diff --git a/.devcontainer/postCreateCommand.sh b/.devcontainer/postCreateCommand.sh index 9cf0b9c3a0..50e03c60c7 100755 --- a/.devcontainer/postCreateCommand.sh +++ b/.devcontainer/postCreateCommand.sh @@ -11,10 +11,10 @@ python3 -m venv /home/inventree/dev/venv --system-site-packages --upgrade-deps invoke update -s # Configure dev environment -invoke setup-dev +invoke dev.setup-dev # Install required frontend packages -invoke frontend-install +invoke dev.frontend-install # remove existing gitconfig created by "Avoiding Dubious Ownership" step # so that it gets copied from host to the container to have your global diff --git a/.github/actions/migration/action.yaml b/.github/actions/migration/action.yaml index 22c5d45864..eddec9a9da 100644 --- a/.github/actions/migration/action.yaml +++ b/.github/actions/migration/action.yaml @@ -9,7 +9,7 @@ runs: shell: bash run: | invoke migrate - invoke import-fixtures + invoke dev.import-fixtures invoke export-records -f data.json python3 ./src/backend/InvenTree/manage.py flush --noinput invoke migrate diff --git a/.github/scripts/check_js_templates.py b/.github/scripts/check_js_templates.py index df5e302605..8b2ff60ad9 100644 --- a/.github/scripts/check_js_templates.py +++ b/.github/scripts/check_js_templates.py @@ -71,7 +71,7 @@ def check_prohibited_tags(data): for filename in pathlib.Path(js_i18n_dir).rglob('*.js'): print(f"Checking file 'translated/{os.path.basename(filename)}':") - with open(filename, 'r') as js_file: + with open(filename, encoding='utf-8') as js_file: data = js_file.readlines() errors += check_invalid_tag(data) @@ -81,7 +81,7 @@ for filename in pathlib.Path(js_dynamic_dir).rglob('*.js'): print(f"Checking file 'dynamic/{os.path.basename(filename)}':") # Check that the 'dynamic' files do not contains any translated strings - with open(filename, 'r') as js_file: + with open(filename, encoding='utf-8') as js_file: data = js_file.readlines() invalid_tags = ['blocktrans', 'blocktranslate', 'trans', 'translate'] diff --git a/.github/scripts/check_migration_files.py b/.github/scripts/check_migration_files.py index d224848f02..8ff44f6d14 100644 --- a/.github/scripts/check_migration_files.py +++ b/.github/scripts/check_migration_files.py @@ -20,9 +20,9 @@ for line in str(out.decode()).split('\n'): if len(migrations) == 0: sys.exit(0) -print('There are {n} unstaged migration files:'.format(n=len(migrations))) +print(f'There are {len(migrations)} unstaged migration files:') for m in migrations: - print(' - {m}'.format(m=m)) + print(f' - {m}') sys.exit(len(migrations)) diff --git a/.github/scripts/check_source_strings.py b/.github/scripts/check_source_strings.py new file mode 100644 index 0000000000..e95fab3998 --- /dev/null +++ b/.github/scripts/check_source_strings.py @@ -0,0 +1,100 @@ +"""Script to check source strings for translations.""" + +import argparse +import os + +import rapidfuzz + +BACKEND_SOURCE_FILE = [ + '..', + '..', + 'src', + 'backend', + 'InvenTree', + 'locale', + 'en', + 'LC_MESSAGES', + 'django.po', +] + +FRONTEND_SOURCE_FILE = [ + '..', + '..', + 'src', + 'frontend', + 'src', + 'locales', + 'en', + 'messages.po', +] + + +def extract_source_strings(file_path): + """Extract source strings from the provided file.""" + here = os.path.abspath(os.path.dirname(__file__)) + abs_file_path = os.path.abspath(os.path.join(here, *file_path)) + + sources = [] + + with open(abs_file_path, encoding='utf-8') as f: + for line in f: + line = line.strip() + if line.startswith('msgid '): + msgid = line[6:].strip() + + if msgid in sources: + print(f'Duplicate source string: {msgid}') + else: + sources.append(msgid) + + return sources + + +def compare_source_strings(sources, threshold): + """Compare source strings to find duplicates (or close matches).""" + issues = 0 + + for i, source in enumerate(sources): + for other in sources[i + 1 :]: + if other.lower() == source.lower(): + print(f'- Duplicate: {source} ~ {other}') + issues += 1 + continue + + ratio = rapidfuzz.fuzz.ratio(source, other) + if ratio > threshold: + print(f'- Close match: {source} ~ {other} ({ratio:.1f}%)') + issues += 1 + + if issues: + print(f' - Found {issues} issues.') + + +if __name__ == '__main__': + parser = argparse.ArgumentParser( + description='Check source strings for translations.' + ) + parser.add_argument( + '--backend', action='store_true', help='Check backend source strings' + ) + parser.add_argument( + '--frontend', action='store_true', help='Check frontend source strings' + ) + parser.add_argument( + '--threshold', + type=int, + help='Set the threshold for string comparison', + default=99, + ) + + args = parser.parse_args() + + if args.backend: + backend_sources = extract_source_strings(BACKEND_SOURCE_FILE) + print('Backend source strings:', len(backend_sources)) + compare_source_strings(backend_sources, args.threshold) + + if args.frontend: + frontend_sources = extract_source_strings(FRONTEND_SOURCE_FILE) + print('Frontend source strings:', len(frontend_sources)) + compare_source_strings(frontend_sources, args.threshold) diff --git a/.github/scripts/version_check.py b/.github/scripts/version_check.py index 5d26b16092..4d596395a3 100644 --- a/.github/scripts/version_check.py +++ b/.github/scripts/version_check.py @@ -89,7 +89,7 @@ def check_version_number(version_string, allow_duplicate=False): if release > version_tuple: highest_release = False - print(f'Found newer release: {str(release)}') + print(f'Found newer release: {release!s}') return highest_release @@ -134,7 +134,7 @@ if __name__ == '__main__': version = None - with open(version_file, 'r') as f: + with open(version_file, encoding='utf-8') as f: text = f.read() # Extract the InvenTree software version @@ -175,10 +175,7 @@ if __name__ == '__main__': print(f"Version number '{version}' does not match tag '{version_tag}'") sys.exit - if highest_release: - docker_tags = [version_tag, 'stable'] - else: - docker_tags = [version_tag] + docker_tags = [version_tag, 'stable'] if highest_release else [version_tag] elif GITHUB_REF_TYPE == 'branch': # Otherwise we know we are targeting the 'master' branch @@ -202,7 +199,7 @@ if __name__ == '__main__': target_repos = [REPO.lower(), f'ghcr.io/{REPO.lower()}'] # Ref: https://getridbug.com/python/how-to-set-environment-variables-in-github-actions-using-python/ - with open(os.getenv('GITHUB_ENV'), 'a') as env_file: + with open(os.getenv('GITHUB_ENV'), 'a', encoding='utf-8') as env_file: # Construct tag string tag_list = [[f'{r}:{t}' for t in docker_tags] for r in target_repos] tags = ','.join(itertools.chain(*tag_list)) diff --git a/.github/workflows/backport.yaml b/.github/workflows/backport.yaml index bb09d65f3b..7ac4bb2d1b 100644 --- a/.github/workflows/backport.yaml +++ b/.github/workflows/backport.yaml @@ -25,7 +25,7 @@ jobs: ) steps: - name: Backport Action - uses: sqren/backport-github-action@f54e19901f2a57f8b82360f2490d47ee82ec82c6 # pin@v9.2.2 + uses: sqren/backport-github-action@ad888e978060bc1b2798690dd9d03c4036560947 # pin@v9.2.2 with: github_token: ${{ secrets.GITHUB_TOKEN }} auto_backport_label_prefix: backport-to- diff --git a/.github/workflows/check_translations.yaml b/.github/workflows/check_translations.yaml index 3377460f6e..5d1b03366a 100644 --- a/.github/workflows/check_translations.yaml +++ b/.github/workflows/check_translations.yaml @@ -30,13 +30,16 @@ jobs: steps: - name: Checkout Code - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # pin@v4.1.7 + uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871 # pin@v4.2.1 - name: Environment Setup uses: ./.github/actions/setup with: install: true apt-dependency: gettext - name: Test Translations - run: invoke translate + run: invoke dev.translate + - name: Check for Duplicates + run: | + python ./.github/scripts/check_source_strings.py --frontend --backend - name: Check Migration Files run: python3 .github/scripts/check_migration_files.py diff --git a/.github/workflows/docker.yaml b/.github/workflows/docker.yaml index a264fdf474..df29716e3e 100644 --- a/.github/workflows/docker.yaml +++ b/.github/workflows/docker.yaml @@ -39,7 +39,7 @@ jobs: docker: ${{ steps.filter.outputs.docker }} steps: - - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # pin@v4.1.7 + - uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871 # pin@v4.2.1 - uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # pin@v3.0.2 id: filter with: @@ -66,9 +66,9 @@ jobs: steps: - name: Check out repo - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # pin@v4.1.7 + uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871 # pin@v4.2.1 - name: Set Up Python ${{ env.python_version }} - uses: actions/setup-python@39cd14951b08e74b54015e9e001cdefcf80e669f # pin@v5.1.1 + uses: actions/setup-python@f677139bbe7f9c59b41e40162b753c062f5d49a3 # pin@v5.2.0 with: python-version: ${{ env.python_version }} - name: Version Check @@ -97,7 +97,7 @@ jobs: run: | docker compose --project-directory . -f contrib/container/dev-docker-compose.yml run inventree-dev-server invoke install docker compose --project-directory . -f contrib/container/dev-docker-compose.yml run inventree-dev-server invoke update - docker compose --project-directory . -f contrib/container/dev-docker-compose.yml run inventree-dev-server invoke setup-dev + docker compose --project-directory . -f contrib/container/dev-docker-compose.yml run inventree-dev-server invoke dev.setup-dev docker compose --project-directory . -f contrib/container/dev-docker-compose.yml up -d docker compose --project-directory . -f contrib/container/dev-docker-compose.yml run inventree-dev-server invoke wait - name: Check Data Directory @@ -115,10 +115,10 @@ jobs: - name: Run Unit Tests run: | echo "GITHUB_TOKEN=${{ secrets.GITHUB_TOKEN }}" >> contrib/container/docker.dev.env - docker compose --project-directory . -f contrib/container/dev-docker-compose.yml run --rm inventree-dev-server invoke test --disable-pty + docker compose --project-directory . -f contrib/container/dev-docker-compose.yml run --rm inventree-dev-server invoke dev.test --disable-pty - name: Run Migration Tests run: | - docker compose --project-directory . -f contrib/container/dev-docker-compose.yml run --rm inventree-dev-server invoke test --migrations + docker compose --project-directory . -f contrib/container/dev-docker-compose.yml run --rm inventree-dev-server invoke dev.test --migrations - name: Clean up test folder run: | rm -rf InvenTree/_testfolder @@ -127,10 +127,10 @@ jobs: uses: docker/setup-qemu-action@49b3bc8e6bdd4a60e6116a5414239cba5943d3cf # pin@v3.2.0 - name: Set up Docker Buildx if: github.event_name != 'pull_request' - uses: docker/setup-buildx-action@988b5a0280414f521da01fcc63a27aeeb4b104db # pin@v3.6.1 + uses: docker/setup-buildx-action@c47758b77c9736f4b2ef4073d4d51994fabfe349 # pin@v3.7.1 - name: Set up cosign if: github.event_name != 'pull_request' - uses: sigstore/cosign-installer@4959ce089c160fddf62f7b42464195ba1a56d382 # pin@v3.6.0 + uses: sigstore/cosign-installer@dc72c7d5c4d10cd6bcb8cf6e3fd625a9e5e537da # pin@v3.7.0 - name: Check if Dockerhub login is required id: docker_login run: | @@ -166,7 +166,7 @@ jobs: - name: Push Docker Images id: push-docker if: github.event_name != 'pull_request' - uses: docker/build-push-action@5cd11c3a4ced054e52742c5fd54dca954e0edd85 # pin@v6.7.0 + uses: docker/build-push-action@4f58ea79222b3b9dc2c8bbdd6debcef730109a75 # pin@v6.9.0 with: context: . file: ./contrib/container/Dockerfile diff --git a/.github/workflows/qc_checks.yaml b/.github/workflows/qc_checks.yaml index ece0cfad8e..0b355b7170 100644 --- a/.github/workflows/qc_checks.yaml +++ b/.github/workflows/qc_checks.yaml @@ -38,7 +38,7 @@ jobs: force: ${{ steps.force.outputs.force }} steps: - - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # pin@v4.1.7 + - uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871 # pin@v4.2.1 - uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # pin@v3.0.2 id: filter with: @@ -70,7 +70,7 @@ jobs: needs: ["pre-commit"] steps: - - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # pin@v4.1.7 + - uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871 # pin@v4.2.1 - name: Environment Setup uses: ./.github/actions/setup with: @@ -92,9 +92,9 @@ jobs: if: needs.paths-filter.outputs.server == 'true' || needs.paths-filter.outputs.frontend == 'true' || needs.paths-filter.outputs.force == 'true' steps: - - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # pin@v4.1.7 + - uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871 # pin@v4.2.1 - name: Set up Python ${{ env.python_version }} - uses: actions/setup-python@39cd14951b08e74b54015e9e001cdefcf80e669f # pin@v5.1.1 + uses: actions/setup-python@f677139bbe7f9c59b41e40162b753c062f5d49a3 # pin@v5.2.0 with: python-version: ${{ env.python_version }} cache: "pip" @@ -113,9 +113,9 @@ jobs: steps: - name: Checkout Code - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # pin@v4.1.7 + uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871 # pin@v4.2.1 - name: Set up Python ${{ env.python_version }} - uses: actions/setup-python@39cd14951b08e74b54015e9e001cdefcf80e669f # pin@v5.1.1 + uses: actions/setup-python@f677139bbe7f9c59b41e40162b753c062f5d49a3 # pin@v5.2.0 with: python-version: ${{ env.python_version }} - name: Check Config @@ -149,7 +149,7 @@ jobs: version: ${{ steps.version.outputs.version }} steps: - - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # pin@v4.1.7 + - uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871 # pin@v4.2.1 - name: Environment Setup uses: ./.github/actions/setup with: @@ -157,9 +157,9 @@ jobs: dev-install: true update: true - name: Export API Documentation - run: invoke schema --ignore-warnings --filename src/backend/InvenTree/schema.yml + run: invoke dev.schema --ignore-warnings --filename src/backend/InvenTree/schema.yml - name: Upload schema - uses: actions/upload-artifact@834a144ee995460fba8ed112a2fc961b36a5ec5a # pin@v4.3.6 + uses: actions/upload-artifact@b4b15b8c7c6ac21ea08fcf65892d2ee8f75cf882 # pin@v4.4.3 with: name: schema.yml path: src/backend/InvenTree/schema.yml @@ -177,7 +177,7 @@ jobs: echo "Downloaded api.yaml" - name: Running OpenAPI Spec diff action id: breaking_changes - uses: oasdiff/oasdiff-action/diff@a2ff6682b27d175162a74c09ace8771bd3d512f8 # pin@main + uses: oasdiff/oasdiff-action/diff@1c611ffb1253a72924624aa4fb662e302b3565d3 # pin@main with: base: 'api.yaml' revision: 'src/backend/InvenTree/schema.yml' @@ -191,7 +191,7 @@ jobs: diff --color -u src/backend/InvenTree/schema.yml api.yaml diff -u src/backend/InvenTree/schema.yml api.yaml && echo "no difference in API schema " || exit 2 - name: Check schema - including warnings - run: invoke schema + run: invoke dev.schema continue-on-error: true - name: Extract version for publishing id: version @@ -211,7 +211,7 @@ jobs: version: ${{ needs.schema.outputs.version }} steps: - - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 + - uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871 # v4.2.1 name: Checkout Code with: repository: inventree/schema @@ -250,7 +250,7 @@ jobs: INVENTREE_SITE_URL: http://127.0.0.1:12345 steps: - - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # pin@v4.1.7 + - uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871 # pin@v4.2.1 - name: Environment Setup uses: ./.github/actions/setup with: @@ -262,9 +262,9 @@ jobs: run: git clone --depth 1 https://github.com/inventree/${{ env.wrapper_name }} ./${{ env.wrapper_name }} - name: Start InvenTree Server run: | - invoke delete-data -f - invoke import-fixtures - invoke server -a 127.0.0.1:12345 & + invoke dev.delete-data -f + invoke dev.import-fixtures + invoke dev.server -a 127.0.0.1:12345 & invoke wait - name: Run Tests For `${{ env.wrapper_name }}` run: | @@ -292,7 +292,7 @@ jobs: python_version: ${{ matrix.python_version }} steps: - - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # pin@v4.1.7 + - uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871 # pin@v4.2.1 - name: Environment Setup uses: ./.github/actions/setup with: @@ -302,13 +302,13 @@ jobs: - name: Data Export Test uses: ./.github/actions/migration - name: Test Translations - run: invoke translate + run: invoke dev.translate - name: Check Migration Files run: python3 .github/scripts/check_migration_files.py - name: Coverage Tests - run: invoke test --coverage + run: invoke dev.test --coverage - name: Upload coverage reports to Codecov - uses: codecov/codecov-action@e28ff129e5465c2c0dcc6f003fc735cb6ae0c673 # pin@v4.5.0 + uses: codecov/codecov-action@b9fd7d16f6d7d1b5d2bec1a2887e65ceed900238 # pin@v4.6.0 if: always() with: token: ${{ secrets.CODECOV_TOKEN }} @@ -346,7 +346,7 @@ jobs: - 6379:6379 steps: - - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # pin@v4.1.7 + - uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871 # pin@v4.2.1 - name: Environment Setup uses: ./.github/actions/setup with: @@ -355,7 +355,7 @@ jobs: dev-install: true update: true - name: Run Tests - run: invoke test + run: invoke dev.test - name: Data Export Test uses: ./.github/actions/migration @@ -390,7 +390,7 @@ jobs: - 3306:3306 steps: - - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # pin@v4.1.7 + - uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871 # pin@v4.2.1 - name: Environment Setup uses: ./.github/actions/setup with: @@ -399,7 +399,7 @@ jobs: dev-install: true update: true - name: Run Tests - run: invoke test + run: invoke dev.test - name: Data Export Test uses: ./.github/actions/migration @@ -429,7 +429,7 @@ jobs: - 5432:5432 steps: - - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # pin@v4.1.7 + - uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871 # pin@v4.2.1 - name: Environment Setup uses: ./.github/actions/setup with: @@ -438,9 +438,9 @@ jobs: dev-install: true update: true - name: Run Tests - run: invoke test --migrations --report --coverage + run: invoke dev.test --migrations --report --coverage - name: Upload coverage reports to Codecov - uses: codecov/codecov-action@e28ff129e5465c2c0dcc6f003fc735cb6ae0c673 # pin@v4.5.0 + uses: codecov/codecov-action@b9fd7d16f6d7d1b5d2bec1a2887e65ceed900238 # pin@v4.6.0 if: always() with: token: ${{ secrets.CODECOV_TOKEN }} @@ -460,7 +460,7 @@ jobs: INVENTREE_PLUGINS_ENABLED: false steps: - - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # pin@v4.1.7 + - uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871 # pin@v4.2.1 name: Checkout Code - name: Environment Setup uses: ./.github/actions/setup @@ -517,7 +517,7 @@ jobs: VITE_COVERAGE: true steps: - - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # pin@v4.1.7 + - uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871 # pin@v4.2.1 - name: Environment Setup uses: ./.github/actions/setup with: @@ -525,17 +525,17 @@ jobs: install: true update: true - name: Set up test data - run: invoke setup-test -i + run: invoke dev.setup-test -i - name: Rebuild thumbnails - run: invoke rebuild-thumbnails + run: invoke int.rebuild-thumbnails - name: Install dependencies - run: inv frontend-compile + run: invoke int.frontend-compile - name: Install Playwright Browsers run: cd src/frontend && npx playwright install --with-deps - name: Run Playwright tests id: tests run: cd src/frontend && npx nyc playwright test - - uses: actions/upload-artifact@834a144ee995460fba8ed112a2fc961b36a5ec5a # pin@v4 + - uses: actions/upload-artifact@b4b15b8c7c6ac21ea08fcf65892d2ee8f75cf882 # pin@v4 if: ${{ !cancelled() && steps.tests.outcome == 'failure' }} with: name: playwright-report @@ -545,12 +545,19 @@ jobs: if: always() run: cd src/frontend && npx nyc report --report-dir ./coverage --temp-dir .nyc_output --reporter=lcov --exclude-after-remap false - name: Upload coverage reports to Codecov - uses: codecov/codecov-action@e28ff129e5465c2c0dcc6f003fc735cb6ae0c673 # pin@v4.5.0 + uses: codecov/codecov-action@b9fd7d16f6d7d1b5d2bec1a2887e65ceed900238 # pin@v4.6.0 if: always() with: token: ${{ secrets.CODECOV_TOKEN }} slug: inventree/InvenTree flags: pui + - name: Upload bundler info + env: + CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} + run: | + cd src/frontend + yarn install + yarn run build platform_ui_build: name: Build - UI Platform @@ -558,7 +565,7 @@ jobs: timeout-minutes: 60 steps: - - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # pin@v4.1.7 + - uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871 # pin@v4.2.1 - name: Environment Setup uses: ./.github/actions/setup with: @@ -573,7 +580,7 @@ jobs: run: | cd src/backend/InvenTree/web/static zip -r frontend-build.zip web/ web/.vite - - uses: actions/upload-artifact@834a144ee995460fba8ed112a2fc961b36a5ec5a # pin@v4.3.6 + - uses: actions/upload-artifact@b4b15b8c7c6ac21ea08fcf65892d2ee8f75cf882 # pin@v4.4.3 with: name: frontend-build path: src/backend/InvenTree/web/static/web diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml index c091b048ba..d5592cc8ef 100644 --- a/.github/workflows/release.yaml +++ b/.github/workflows/release.yaml @@ -18,7 +18,7 @@ jobs: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} steps: - name: Checkout Code - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # pin@v4.1.7 + uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871 # pin@v4.2.1 - name: Version Check run: | pip install --require-hashes -r contrib/dev_reqs/requirements.txt @@ -39,7 +39,7 @@ jobs: contents: write attestations: write steps: - - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # pin@v4.1.7 + - uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871 # pin@v4.2.1 - name: Environment Setup uses: ./.github/actions/setup with: @@ -49,7 +49,7 @@ jobs: - name: Build frontend run: cd src/frontend && npm run compile && npm run build - name: Create SBOM for frontend - uses: anchore/sbom-action@v0 + uses: anchore/sbom-action@8d0a6505bf28ced3e85154d13dc6af83299e13f1 # pin@v0 with: artifact-name: frontend-build.spdx path: src/frontend @@ -63,7 +63,7 @@ jobs: zip -r ../frontend-build.zip * .vite - name: Attest Build Provenance id: attest - uses: actions/attest-build-provenance@v1 + uses: actions/attest-build-provenance@1c608d11d69870c2092266b3f9a6f3abbf17002c # pin@v1 with: subject-path: "${{ github.workspace }}/src/backend/InvenTree/web/static/frontend-build.zip" diff --git a/.github/workflows/scorecard.yaml b/.github/workflows/scorecard.yaml index b011548ce5..c935c8cf02 100644 --- a/.github/workflows/scorecard.yaml +++ b/.github/workflows/scorecard.yaml @@ -32,7 +32,7 @@ jobs: steps: - name: "Checkout code" - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 + uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871 # v4.2.1 with: persist-credentials: false @@ -59,7 +59,7 @@ jobs: # Upload the results as artifacts (optional). Commenting out will disable uploads of run results in SARIF # format to the repository Actions tab. - name: "Upload artifact" - uses: actions/upload-artifact@834a144ee995460fba8ed112a2fc961b36a5ec5a # v4.3.6 + uses: actions/upload-artifact@b4b15b8c7c6ac21ea08fcf65892d2ee8f75cf882 # v4.4.3 with: name: SARIF file path: results.sarif @@ -67,6 +67,6 @@ jobs: # Upload the results to GitHub's code scanning dashboard. - name: "Upload to code-scanning" - uses: github/codeql-action/upload-sarif@883d8588e56d1753a8a58c1c86e88976f0c23449 # v3.26.3 + uses: github/codeql-action/upload-sarif@f779452ac5af1c261dce0346a8f964149f49322b # v3.26.13 with: sarif_file: results.sarif diff --git a/.github/workflows/translations.yaml b/.github/workflows/translations.yaml index 308e171a98..8608b4d6ce 100644 --- a/.github/workflows/translations.yaml +++ b/.github/workflows/translations.yaml @@ -31,7 +31,7 @@ jobs: steps: - name: Checkout Code - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # pin@v4.1.7 + uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871 # pin@v4.2.1 - name: Environment Setup uses: ./.github/actions/setup with: @@ -39,9 +39,19 @@ jobs: npm: true apt-dependency: gettext - name: Make Translations - run: invoke translate + run: invoke dev.translate + - name: Remove compiled static files + run: rm -rf src/backend/InvenTree/static + - name: Remove all local changes that are not *.po files + run: | + git config --local user.email "41898282+github-actions[bot]@users.noreply.github.com" + git config --local user.name "github-actions[bot]" + git add src/backend/InvenTree/locale/en/LC_MESSAGES/django.po src/frontend/src/locales/en/messages.po + git commit -m "add translations" || true + git reset --hard + git reset HEAD~ - name: crowdin action - uses: crowdin/github-action@6ed209d411599a981ccb978df3be9dc9b8a81699 # pin@v2 + uses: crowdin/github-action@95d6e895e871c3c7acf0cfb962f296baa41e63c6 # pin@v2 with: upload_sources: true upload_translations: false @@ -50,7 +60,7 @@ jobs: create_pull_request: true pull_request_title: 'New Crowdin updates' pull_request_body: 'New Crowdin translations by [Crowdin GH Action](https://github.com/crowdin/github-action)' - pull_request_base_branch_name: 'l10' + pull_request_base_branch_name: 'master' pull_request_labels: 'translations' env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/.gitignore b/.gitignore index 8541ce79a3..da5a08bd2a 100644 --- a/.gitignore +++ b/.gitignore @@ -31,6 +31,7 @@ var/ # Django stuff: *.log local_settings.py +*.sqlite *.sqlite3 *.sqlite3-journal *.backup diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index c4d13efeef..302c7d4a69 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -17,17 +17,18 @@ repos: - id: check-yaml - id: mixed-line-ending - repo: https://github.com/astral-sh/ruff-pre-commit - rev: v0.5.1 + rev: v0.7.0 hooks: - id: ruff-format args: [--preview] - id: ruff args: [ --fix, + # --unsafe-fixes, --preview ] - repo: https://github.com/astral-sh/uv-pre-commit - rev: 0.2.13 + rev: 0.4.24 hooks: - id: pip-compile name: pip-compile requirements-dev.in @@ -50,7 +51,7 @@ repos: args: [contrib/container/requirements.in, -o, contrib/container/requirements.txt, --python-version=3.11, --no-strip-extras, --generate-hashes] files: contrib/container/requirements\.(in|txt)$ - repo: https://github.com/Riverside-Healthcare/djLint - rev: v1.34.1 + rev: v1.35.2 hooks: - id: djlint-django - repo: https://github.com/codespell-project/codespell @@ -77,7 +78,7 @@ repos: - "prettier@^2.4.1" - "@trivago/prettier-plugin-sort-imports" - repo: https://github.com/pre-commit/mirrors-eslint - rev: "v9.6.0" + rev: "v9.12.0" hooks: - id: eslint additional_dependencies: @@ -89,7 +90,7 @@ repos: - "@typescript-eslint/parser" files: ^src/frontend/.*\.(js|jsx|ts|tsx)$ - repo: https://github.com/gitleaks/gitleaks - rev: v8.18.4 + rev: v8.21.0 hooks: - id: gitleaks #- repo: https://github.com/jumanjihouse/pre-commit-hooks diff --git a/.vscode/tasks.json b/.vscode/tasks.json index ffa8d8d36b..830889fb44 100644 --- a/.vscode/tasks.json +++ b/.vscode/tasks.json @@ -9,61 +9,61 @@ { "label": "worker", "type": "shell", - "command": "inv worker", + "command": "invoke worker", "problemMatcher": [], }, { "label": "clean-settings", "type": "shell", - "command": "inv clean-settings", + "command": "invoke int.clean-settings", "problemMatcher": [], }, { "label": "delete-data", "type": "shell", - "command": "inv delete-data", + "command": "invoke dev.delete-data", "problemMatcher": [], }, { "label": "migrate", "type": "shell", - "command": "inv migrate", + "command": "invoke migrate", "problemMatcher": [], }, { "label": "server", "type": "shell", - "command": "inv server", + "command": "invoke dev.server", "problemMatcher": [], }, { "label": "setup-dev", "type": "shell", - "command": "inv setup-dev", + "command": "invoke dev.setup-dev", "problemMatcher": [], }, { "label": "setup-test", "type": "shell", - "command": "inv setup-test -i --path dev/inventree-demo-dataset", + "command": "invoke dev.setup-test -i --path dev/inventree-demo-dataset", "problemMatcher": [], }, { "label": "superuser", "type": "shell", - "command": "inv superuser", + "command": "invoke superuser", "problemMatcher": [], }, { "label": "test", "type": "shell", - "command": "inv test", + "command": "invoke dev.test", "problemMatcher": [], }, { "label": "update", "type": "shell", - "command": "inv update", + "command": "invoke update", "problemMatcher": [], }, ] diff --git a/LICENSE b/LICENSE index a07b8befba..3a4626c1c4 100644 --- a/LICENSE +++ b/LICENSE @@ -1,6 +1,6 @@ MIT License -Copyright (c) 2017-2022 InvenTree +Copyright (c) 2017 - InvenTree Developers Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/README.md b/README.md index 3f6b0dd27c..e455ddca49 100644 --- a/README.md +++ b/README.md @@ -4,7 +4,7 @@

Open Source Inventory Management System

-[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)![GitHub tag (latest SemVer)](https://img.shields.io/github/v/tag/inventree/inventree) +[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/license/MIT)![GitHub tag (latest SemVer)](https://img.shields.io/github/v/tag/inventree/inventree) ![CI](https://github.com/inventree/inventree/actions/workflows/qc_checks.yaml/badge.svg) [![Documentation Status](https://readthedocs.org/projects/inventree/badge/?version=latest)](https://inventree.readthedocs.io/en/latest/?badge=latest) ![Docker Build](https://github.com/inventree/inventree/actions/workflows/docker.yaml/badge.svg) @@ -81,7 +81,7 @@ InvenTree is designed to be **extensible**, and provides multiple options for **
- Client + Client - CUI
+
+ Client - PUI + +
+
DevOps
diff --git a/codecov.yml b/codecov.yml index 79d066e93b..a9544d9875 100644 --- a/codecov.yml +++ b/codecov.yml @@ -27,3 +27,11 @@ flag_management: statuses: - type: project target: 45% + +comment: + require_bundle_changes: True + bundle_change_threshold: "1Kb" + +bundle_analysis: + warning_threshold: "5%" + status: "informational" diff --git a/contrib/container/Dockerfile b/contrib/container/Dockerfile index 3ce3d080ed..c8e6126e96 100644 --- a/contrib/container/Dockerfile +++ b/contrib/container/Dockerfile @@ -115,7 +115,7 @@ RUN apk add --no-cache --update nodejs npm yarn RUN yarn config set network-timeout 600000 -g COPY src ${INVENTREE_HOME}/src COPY tasks.py ${INVENTREE_HOME}/tasks.py -RUN cd ${INVENTREE_HOME} && inv frontend-compile +RUN cd ${INVENTREE_HOME} && invoke int.frontend-compile COPY contrib/container/execute.sh ${INVENTREE_HOME}/execute.sh RUN chmod +x ${INVENTREE_HOME}/execute.sh diff --git a/contrib/container/requirements.in b/contrib/container/requirements.in index 47968937a5..1a87893d54 100644 --- a/contrib/container/requirements.in +++ b/contrib/container/requirements.in @@ -17,6 +17,7 @@ gunicorn>=22.0.0 # LDAP required packages django-auth-ldap # Django integration for ldap auth python-ldap # LDAP auth support +django<5.0 # Force lower to match main project # Upgraded python package installer uv diff --git a/contrib/container/requirements.txt b/contrib/container/requirements.txt index f519da636b..1d791af1a8 100644 --- a/contrib/container/requirements.txt +++ b/contrib/container/requirements.txt @@ -4,17 +4,19 @@ asgiref==3.8.1 \ --hash=sha256:3e1e3ecc849832fe52ccf2cb6686b7a55f82bb1d6aee72a58826471390335e47 \ --hash=sha256:c343bd80a0bec947a9860adb4c432ffa7db769836c64238fc34bdc3fec84d590 # via django -django==4.2.15 \ - --hash=sha256:61ee4a130efb8c451ef3467c67ca99fdce400fedd768634efc86a68c18d80d30 \ - --hash=sha256:c77f926b81129493961e19c0e02188f8d07c112a1162df69bfab178ae447f94a - # via django-auth-ldap +django==4.2.16 \ + --hash=sha256:1ddc333a16fc139fd253035a1606bb24261951bbc3a6ca256717fa06cc41a898 \ + --hash=sha256:6f1616c2786c408ce86ab7e10f792b8f15742f7b7b7460243929cb371e7f1dad + # via + # -r contrib/container/requirements.in + # django-auth-ldap django-auth-ldap==4.8.0 \ --hash=sha256:4b4b944f3c28bce362f33fb6e8db68429ed8fd8f12f0c0c4b1a4344a7ef225ce \ --hash=sha256:604250938ddc9fda619f247c7a59b0b2f06e53a7d3f46a156f28aa30dd71a738 # via -r contrib/container/requirements.in -gunicorn==22.0.0 \ - --hash=sha256:350679f91b24062c86e386e198a15438d53a7a8207235a78ba1b53df4c4378d9 \ - --hash=sha256:4a0b436239ff76fb33f11c07a16482c521a7e09c1ce3cc293c2330afe01bec63 +gunicorn==23.0.0 \ + --hash=sha256:ec400d38950de4dfd418cff8328b2c8faed0edb0d517d3394e457c317908ca4d \ + --hash=sha256:f014447a0101dc57e294f6c18ca6b40227a4c90e9bdb586042628030cba004ec # via -r contrib/container/requirements.in invoke==2.2.0 \ --hash=sha256:6ea924cc53d4f78e3d98bc436b08069a03077e6f85ad1ddaa8a116d7dad15820 \ @@ -33,200 +35,201 @@ mariadb==1.1.10 \ --hash=sha256:d7b09ec4abd02ed235257feb769f90cd4066e8f536b55b92f5166103d5b66a63 \ --hash=sha256:dff8b28ce4044574870d7bdd2d9f9f5da8e5f95a7ff6d226185db733060d1a93 # via -r contrib/container/requirements.in -mysqlclient==2.2.4 \ - --hash=sha256:329e4eec086a2336fe3541f1ce095d87a6f169d1cc8ba7b04ac68bcb234c9711 \ - --hash=sha256:33bc9fb3464e7d7c10b1eaf7336c5ff8f2a3d3b88bab432116ad2490beb3bf41 \ - --hash=sha256:3c318755e06df599338dad7625f884b8a71fcf322a9939ef78c9b3db93e1de7a \ - --hash=sha256:4e80dcad884dd6e14949ac6daf769123223a52a6805345608bf49cdaf7bc8b3a \ - --hash=sha256:9d3310295cb682232cadc28abd172f406c718b9ada41d2371259098ae37779d3 \ - --hash=sha256:9d4c015480c4a6b2b1602eccd9846103fc70606244788d04aa14b31c4bd1f0e2 \ - --hash=sha256:ac44777eab0a66c14cb0d38965572f762e193ec2e5c0723bcd11319cc5b693c5 \ - --hash=sha256:d43987bb9626096a302ca6ddcdd81feaeca65ced1d5fe892a6a66b808326aa54 \ - --hash=sha256:e1ebe3f41d152d7cb7c265349fdb7f1eca86ccb0ca24a90036cde48e00ceb2ab +mysqlclient==2.2.5 \ + --hash=sha256:1d2e2ca0fe8405d8d6464edd01bf059951279e4bc27284d39341bd4737b2bc64 \ + --hash=sha256:3f9625bea2b9bcde0ace76b32708762d44597491092c819fd1bff5b4e27f709b \ + --hash=sha256:8012c633aab8c91ea8172ac479807135b171501b9cad1a7cd9b58c4dc8dcdab5 \ + --hash=sha256:add8643c32f738014d252d2bdebb478623b04802e8396d5903905db36474d3ff \ + --hash=sha256:aee14f1872114865679fcb09aac3772de4595fa7dcf2f83a4c7afee15e508854 \ + --hash=sha256:b54511648c1455b43ac28f8b4c1f732c5b0c343e87f7a3bd6fc9f9fe0f91934e \ + --hash=sha256:b78438314199504c64f69e1e3521f2c9b419f19fcd85158b44c997b64409a6af \ + --hash=sha256:e871ede4261d0d42b8ed20a2459db411c7deafedd8e77b7e4ba760be4a6a752b # via -r contrib/container/requirements.in -packaging==24.0 \ - --hash=sha256:2ddfb553fdf02fb784c234c7ba6ccc288296ceabec964ad2eae3777778130bc5 \ - --hash=sha256:eb82c5e3e56209074766e6885bb04b8c38a0c015d0a30036ebe7ece34c9989e9 +packaging==24.1 \ + --hash=sha256:026ed72c8ed3fcce5bf8950572258698927fd1dbda10a5e981cdf0ac37f4f002 \ + --hash=sha256:5b8f2217dbdbd2f7f384c41c628544e6d52f2d0f53c6d0c3ea61aa5d1d7ff124 # via # gunicorn # mariadb -psycopg[binary, pool]==3.1.18 \ - --hash=sha256:31144d3fb4c17d78094d9e579826f047d4af1da6a10427d91dfcfb6ecdf6f12b \ - --hash=sha256:4d5a0a5a8590906daa58ebd5f3cfc34091377354a1acced269dd10faf55da60e +psycopg[binary, pool]==3.2.3 \ + --hash=sha256:644d3973fe26908c73d4be746074f6e5224b03c1101d302d9a53bf565ad64907 \ + --hash=sha256:a5764f67c27bec8bfac85764d23c534af2c27b893550377e37ce59c12aac47a2 # via -r contrib/container/requirements.in -psycopg-binary==3.1.18 \ - --hash=sha256:02bd4da45d5ee9941432e2e9bf36fa71a3ac21c6536fe7366d1bd3dd70d6b1e7 \ - --hash=sha256:0f68ac2364a50d4cf9bb803b4341e83678668f1881a253e1224574921c69868c \ - --hash=sha256:13bcd3742112446037d15e360b27a03af4b5afcf767f5ee374ef8f5dd7571b31 \ - --hash=sha256:1729d0e3dfe2546d823841eb7a3d003144189d6f5e138ee63e5227f8b75276a5 \ - --hash=sha256:1859aeb2133f5ecdd9cbcee155f5e38699afc06a365f903b1512c765fd8d457e \ - --hash=sha256:1c9b6bd7fb5c6638cb32469674707649b526acfe786ba6d5a78ca4293d87bae4 \ - --hash=sha256:247474af262bdd5559ee6e669926c4f23e9cf53dae2d34c4d991723c72196404 \ - --hash=sha256:258d2f0cb45e4574f8b2fe7c6d0a0e2eb58903a4fd1fbaf60954fba82d595ab7 \ - --hash=sha256:2e2484ae835dedc80cdc7f1b1a939377dc967fed862262cfd097aa9f50cade46 \ - --hash=sha256:320047e3d3554b857e16c2b6b615a85e0db6a02426f4d203a4594a2f125dfe57 \ - --hash=sha256:39242546383f6b97032de7af30edb483d237a0616f6050512eee7b218a2aa8ee \ - --hash=sha256:3c2b039ae0c45eee4cd85300ef802c0f97d0afc78350946a5d0ec77dd2d7e834 \ - --hash=sha256:3c7afcd6f1d55992f26d9ff7b0bd4ee6b475eb43aa3f054d67d32e09f18b0065 \ - --hash=sha256:3e4b0bb91da6f2238dbd4fbb4afc40dfb4f045bb611b92fce4d381b26413c686 \ - --hash=sha256:3e7ce4d988112ca6c75765c7f24c83bdc476a6a5ce00878df6c140ca32c3e16d \ - --hash=sha256:4085f56a8d4fc8b455e8f44380705c7795be5317419aa5f8214f315e4205d804 \ - --hash=sha256:4575da95fc441244a0e2ebaf33a2b2f74164603341d2046b5cde0a9aa86aa7e2 \ - --hash=sha256:489aa4fe5a0b653b68341e9e44af247dedbbc655326854aa34c163ef1bcb3143 \ - --hash=sha256:4e4de16a637ec190cbee82e0c2dc4860fed17a23a35f7a1e6dc479a5c6876722 \ - --hash=sha256:531381f6647fc267383dca88dbe8a70d0feff433a8e3d0c4939201fea7ae1b82 \ - --hash=sha256:55ff0948457bfa8c0d35c46e3a75193906d1c275538877ba65907fd67aa059ad \ - --hash=sha256:59701118c7d8842e451f1e562d08e8708b3f5d14974eefbce9374badd723c4ae \ - --hash=sha256:5c323103dfa663b88204cf5f028e83c77d7a715f9b6f51d2bbc8184b99ddd90a \ - --hash=sha256:5d6e860edf877d4413e4a807e837d55e3a7c7df701e9d6943c06e460fa6c058f \ - --hash=sha256:639dd78ac09b144b0119076783cb64e1128cc8612243e9701d1503c816750b2e \ - --hash=sha256:6432047b8b24ef97e3fbee1d1593a0faaa9544c7a41a2c67d1f10e7621374c83 \ - --hash=sha256:67284e2e450dc7a9e4d76e78c0bd357dc946334a3d410defaeb2635607f632cd \ - --hash=sha256:6ebecbf2406cd6875bdd2453e31067d1bd8efe96705a9489ef37e93b50dc6f09 \ - --hash=sha256:7121acc783c4e86d2d320a7fb803460fab158a7f0a04c5e8c5d49065118c1e73 \ - --hash=sha256:74e498586b72fb819ca8ea82107747d0cb6e00ae685ea6d1ab3f929318a8ce2d \ - --hash=sha256:780a90bcb69bf27a8b08bc35b958e974cb6ea7a04cdec69e737f66378a344d68 \ - --hash=sha256:7ac1785d67241d5074f8086705fa68e046becea27964267ab3abd392481d7773 \ - --hash=sha256:812726266ab96de681f2c7dbd6b734d327f493a78357fcc16b2ac86ff4f4e080 \ - --hash=sha256:824a1bfd0db96cc6bef2d1e52d9e0963f5bf653dd5bc3ab519a38f5e6f21c299 \ - --hash=sha256:87dd9154b757a5fbf6d590f6f6ea75f4ad7b764a813ae04b1d91a70713f414a1 \ - --hash=sha256:887f8d856c91510148be942c7acd702ccf761a05f59f8abc123c22ab77b5a16c \ - --hash=sha256:888a72c2aca4316ca6d4a619291b805677bae99bba2f6e31a3c18424a48c7e4d \ - --hash=sha256:8f54978c4b646dec77fefd8485fa82ec1a87807f334004372af1aaa6de9539a5 \ - --hash=sha256:91074f78a9f890af5f2c786691575b6b93a4967ad6b8c5a90101f7b8c1a91d9c \ - --hash=sha256:9d684227ef8212e27da5f2aff9d4d303cc30b27ac1702d4f6881935549486dd5 \ - --hash=sha256:9e24e7b6a68a51cc3b162d0339ae4e1263b253e887987d5c759652f5692b5efe \ - --hash=sha256:9ffcbbd389e486d3fd83d30107bbf8b27845a295051ccabde240f235d04ed921 \ - --hash=sha256:a87e9eeb80ce8ec8c2783f29bce9a50bbcd2e2342a340f159c3326bf4697afa1 \ - --hash=sha256:ad35ac7fd989184bf4d38a87decfb5a262b419e8ba8dcaeec97848817412c64a \ - --hash=sha256:b15e3653c82384b043d820fc637199b5c6a36b37fa4a4943e0652785bb2bad5d \ - --hash=sha256:b293e01057e63c3ac0002aa132a1071ce0fdb13b9ee2b6b45d3abdb3525c597d \ - --hash=sha256:b2f7f95746efd1be2dc240248cc157f4315db3fd09fef2adfcc2a76e24aa5741 \ - --hash=sha256:bd27f713f2e5ef3fd6796e66c1a5203a27a30ecb847be27a78e1df8a9a5ae68c \ - --hash=sha256:c38a4796abf7380f83b1653c2711cb2449dd0b2e5aca1caa75447d6fa5179c69 \ - --hash=sha256:c76659ae29a84f2c14f56aad305dd00eb685bd88f8c0a3281a9a4bc6bd7d2aa7 \ - --hash=sha256:c84a0174109f329eeda169004c7b7ca2e884a6305acab4a39600be67f915ed38 \ - --hash=sha256:cd2a9f7f0d4dacc5b9ce7f0e767ae6cc64153264151f50698898c42cabffec0c \ - --hash=sha256:d322ba72cde4ca2eefc2196dad9ad7e52451acd2f04e3688d590290625d0c970 \ - --hash=sha256:d4422af5232699f14b7266a754da49dc9bcd45eba244cf3812307934cd5d6679 \ - --hash=sha256:d46ae44d66bf6058a812467f6ae84e4e157dee281bfb1cfaeca07dee07452e85 \ - --hash=sha256:da917f6df8c6b2002043193cb0d74cc173b3af7eb5800ad69c4e1fbac2a71c30 \ - --hash=sha256:dea4a59da7850192fdead9da888e6b96166e90608cf39e17b503f45826b16f84 \ - --hash=sha256:e05f6825f8db4428782135e6986fec79b139210398f3710ed4aa6ef41473c008 \ - --hash=sha256:e1cf59e0bb12e031a48bb628aae32df3d0c98fd6c759cb89f464b1047f0ca9c8 \ - --hash=sha256:e252d66276c992319ed6cd69a3ffa17538943954075051e992143ccbf6dc3d3e \ - --hash=sha256:e262398e5d51563093edf30612cd1e20fedd932ad0994697d7781ca4880cdc3d \ - --hash=sha256:e28ff8f3de7b56588c2a398dc135fd9f157d12c612bd3daa7e6ba9872337f6f5 \ - --hash=sha256:eea5f14933177ffe5c40b200f04f814258cc14b14a71024ad109f308e8bad414 \ - --hash=sha256:f876ebbf92db70125f6375f91ab4bc6b27648aa68f90d661b1fc5affb4c9731c \ - --hash=sha256:f8ff3bc08b43f36fdc24fedb86d42749298a458c4724fb588c4d76823ac39f54 +psycopg-binary==3.2.3 \ + --hash=sha256:0463a11b1cace5a6aeffaf167920707b912b8986a9c7920341c75e3686277920 \ + --hash=sha256:05a1bdce30356e70a05428928717765f4a9229999421013f41338d9680d03a63 \ + --hash=sha256:06b5cc915e57621eebf2393f4173793ed7e3387295f07fed93ed3fb6a6ccf585 \ + --hash=sha256:07d019a786eb020c0f984691aa1b994cb79430061065a694cf6f94056c603d26 \ + --hash=sha256:09baa041856b35598d335b1a74e19a49da8500acedf78164600694c0ba8ce21b \ + --hash=sha256:1303bf8347d6be7ad26d1362af2c38b3a90b8293e8d56244296488ee8591058e \ + --hash=sha256:192a5f8496e6e1243fdd9ac20e117e667c0712f148c5f9343483b84435854c78 \ + --hash=sha256:1985ab05e9abebfbdf3163a16ebb37fbc5d49aff2bf5b3d7375ff0920bbb54cd \ + --hash=sha256:1f8b0d0e99d8e19923e6e07379fa00570be5182c201a8c0b5aaa9a4d4a4ea20b \ + --hash=sha256:257c4aea6f70a9aef39b2a77d0658a41bf05c243e2bf41895eb02220ac6306f3 \ + --hash=sha256:261f0031ee6074765096a19b27ed0f75498a8338c3dcd7f4f0d831e38adf12d1 \ + --hash=sha256:2773f850a778575dd7158a6dd072f7925b67f3ba305e2003538e8831fec77a1d \ + --hash=sha256:2a29f5294b0b6360bfda69653697eff70aaf2908f58d1073b0acd6f6ab5b5a4f \ + --hash=sha256:2bb342a01c76f38a12432848e6013c57eb630103e7556cf79b705b53814c3949 \ + --hash=sha256:2c0419cdad8c70eaeb3116bb28e7b42d546f91baf5179d7556f230d40942dc78 \ + --hash=sha256:3bffb61e198a91f712cc3d7f2d176a697cb05b284b2ad150fb8edb308eba9002 \ + --hash=sha256:41fdec0182efac66b27478ac15ef54c9ebcecf0e26ed467eb7d6f262a913318b \ + --hash=sha256:48f8ca6ee8939bab760225b2ab82934d54330eec10afe4394a92d3f2a0c37dd6 \ + --hash=sha256:4926ea5c46da30bec4a85907aa3f7e4ea6313145b2aa9469fdb861798daf1502 \ + --hash=sha256:4c57615791a337378fe5381143259a6c432cdcbb1d3e6428bfb7ce59fff3fb5c \ + --hash=sha256:4e76ce2475ed4885fe13b8254058be710ec0de74ebd8ef8224cf44a9a3358e5f \ + --hash=sha256:5361ea13c241d4f0ec3f95e0bf976c15e2e451e9cc7ef2e5ccfc9d170b197a40 \ + --hash=sha256:5905729668ef1418bd36fbe876322dcb0f90b46811bba96d505af89e6fbdce2f \ + --hash=sha256:5938b257b04c851c2d1e6cb2f8c18318f06017f35be9a5fe761ee1e2e344dfb7 \ + --hash=sha256:5e37d5027e297a627da3551a1e962316d0f88ee4ada74c768f6c9234e26346d9 \ + --hash=sha256:64a607e630d9f4b2797f641884e52b9f8e239d35943f51bef817a384ec1678fe \ + --hash=sha256:64dc6e9ec64f592f19dc01a784e87267a64a743d34f68488924251253da3c818 \ + --hash=sha256:69320f05de8cdf4077ecd7fefdec223890eea232af0d58f2530cbda2871244a0 \ + --hash=sha256:6d8f2144e0d5808c2e2aed40fbebe13869cd00c2ae745aca4b3b16a435edb056 \ + --hash=sha256:700679c02f9348a0d0a2adcd33a0275717cd0d0aee9d4482b47d935023629505 \ + --hash=sha256:709447bd7203b0b2debab1acec23123eb80b386f6c29e7604a5d4326a11e5bd6 \ + --hash=sha256:71adcc8bc80a65b776510bc39992edf942ace35b153ed7a9c6c573a6849ce308 \ + --hash=sha256:71db8896b942770ed7ab4efa59b22eee5203be2dfdee3c5258d60e57605d688c \ + --hash=sha256:74fbf5dd3ef09beafd3557631e282f00f8af4e7a78fbfce8ab06d9cd5a789aae \ + --hash=sha256:79498df398970abcee3d326edd1d4655de7d77aa9aecd578154f8af35ce7bbd2 \ + --hash=sha256:7ad357e426b0ea5c3043b8ec905546fa44b734bf11d33b3da3959f6e4447d350 \ + --hash=sha256:7d784f614e4d53050cbe8abf2ae9d1aaacf8ed31ce57b42ce3bf2a48a66c3a5c \ + --hash=sha256:80a2337e2dfb26950894c8301358961430a0304f7bfe729d34cc036474e9c9b1 \ + --hash=sha256:824c867a38521d61d62b60aca7db7ca013a2b479e428a0db47d25d8ca5067410 \ + --hash=sha256:842da42a63ecb32612bb7f5b9e9f8617eab9bc23bd58679a441f4150fcc51c96 \ + --hash=sha256:8b7be9a6c06518967b641fb15032b1ed682fd3b0443f64078899c61034a0bca6 \ + --hash=sha256:9099e443d4cc24ac6872e6a05f93205ba1a231b1a8917317b07c9ef2b955f1f4 \ + --hash=sha256:94253be2b57ef2fea7ffe08996067aabf56a1eb9648342c9e3bad9e10c46e045 \ + --hash=sha256:949551752930d5e478817e0b49956350d866b26578ced0042a61967e3fcccdea \ + --hash=sha256:96334bb64d054e36fed346c50c4190bad9d7c586376204f50bede21a913bf942 \ + --hash=sha256:965455eac8547f32b3181d5ec9ad8b9be500c10fe06193543efaaebe3e4ce70c \ + --hash=sha256:967b47a0fd237aa17c2748fdb7425015c394a6fb57cdad1562e46a6eb070f96d \ + --hash=sha256:9994f7db390c17fc2bd4c09dca722fd792ff8a49bb3bdace0c50a83f22f1767d \ + --hash=sha256:9b60b465773a52c7d4705b0a751f7f1cdccf81dd12aee3b921b31a6e76b07b0e \ + --hash=sha256:aeddf7b3b3f6e24ccf7d0edfe2d94094ea76b40e831c16eff5230e040ce3b76b \ + --hash=sha256:c64c4cd0d50d5b2288ab1bcb26c7126c772bbdebdfadcd77225a77df01c4a57e \ + --hash=sha256:cb987f14af7da7c24f803111dbc7392f5070fd350146af3345103f76ea82e339 \ + --hash=sha256:dc4fa2240c9fceddaa815a58f29212826fafe43ce80ff666d38c4a03fb036955 \ + --hash=sha256:e56b1fd529e5dde2d1452a7d72907b37ed1b4f07fdced5d8fb1e963acfff6749 \ + --hash=sha256:e8630943143c6d6ca9aefc88bbe5e76c90553f4e1a3b2dc339e67dc34aa86f7e \ + --hash=sha256:e8eb9a4e394926b93ad919cad1b0a918e9b4c846609e8c1cfb6b743683f64da0 \ + --hash=sha256:e90352d7b610b4693fad0feea48549d4315d10f1eba5605421c92bb834e90170 \ + --hash=sha256:f0b018e37608c3bfc6039a1dc4eb461e89334465a19916be0153c757a78ea426 \ + --hash=sha256:f73adc05452fb85e7a12ed3f69c81540a8875960739082e6ea5e28c373a30774 \ + --hash=sha256:fa33ead69ed133210d96af0c63448b1385df48b9c0247eda735c5896b9e6dbbf \ + --hash=sha256:fc6d87a1c44df8d493ef44988a3ded751e284e02cdf785f746c2d357e99782a6 \ + --hash=sha256:fd40af959173ea0d087b6b232b855cfeaa6738f47cb2a0fd10a7f4fa8b74293f \ + --hash=sha256:fd65774ed7d65101b314808b6893e1a75b7664f680c3ef18d2e5c84d570fa393 \ + --hash=sha256:fda0162b0dbfa5eaed6cdc708179fa27e148cb8490c7d62e5cf30713909658ea # via psycopg -psycopg-pool==3.2.1 \ - --hash=sha256:060b551d1b97a8d358c668be58b637780b884de14d861f4f5ecc48b7563aafb7 \ - --hash=sha256:6509a75c073590952915eddbba7ce8b8332a440a31e77bba69561483492829ad +psycopg-pool==3.2.3 \ + --hash=sha256:53bd8e640625e01b2927b2ad96df8ed8e8f91caea4597d45e7673fc7bbb85eb1 \ + --hash=sha256:bb942f123bef4b7fbe4d55421bd3fb01829903c95c0f33fd42b7e94e5ac9b52a # via psycopg -pyasn1==0.6.0 \ - --hash=sha256:3a35ab2c4b5ef98e17dfdec8ab074046fbda76e281c5a706ccd82328cfc8f64c \ - --hash=sha256:cca4bb0f2df5504f02f6f8a775b6e416ff9b0b3b16f7ee80b5a3153d9b804473 +pyasn1==0.6.1 \ + --hash=sha256:0d632f46f2ba09143da3a8afe9e33fb6f92fa2320ab7e886e2d0f7672af84629 \ + --hash=sha256:6f580d2bdd84365380830acf45550f2511469f673cb4a5ae3857a3170128b034 # via # pyasn1-modules # python-ldap -pyasn1-modules==0.4.0 \ - --hash=sha256:831dbcea1b177b28c9baddf4c6d1013c24c3accd14a1873fffaa6a2e905f17b6 \ - --hash=sha256:be04f15b66c206eed667e0bb5ab27e2b1855ea54a842e5037738099e8ca4ae0b +pyasn1-modules==0.4.1 \ + --hash=sha256:49bfa96b45a292b711e986f222502c1c9a5e1f4e568fc30e2574a6c7d07838fd \ + --hash=sha256:c28e2dbf9c06ad61c71a075c7e0f9fd0f1b0bb2d2ad4377f240d33ac2ab60a7c # via python-ldap python-ldap==3.4.4 \ --hash=sha256:7edb0accec4e037797705f3a05cbf36a9fde50d08c8f67f2aef99a2628fab828 # via # -r contrib/container/requirements.in # django-auth-ldap -pyyaml==6.0.1 \ - --hash=sha256:04ac92ad1925b2cff1db0cfebffb6ffc43457495c9b3c39d3fcae417d7125dc5 \ - --hash=sha256:062582fca9fabdd2c8b54a3ef1c978d786e0f6b3a1510e0ac93ef59e0ddae2bc \ - --hash=sha256:0d3304d8c0adc42be59c5f8a4d9e3d7379e6955ad754aa9d6ab7a398b59dd1df \ - --hash=sha256:1635fd110e8d85d55237ab316b5b011de701ea0f29d07611174a1b42f1444741 \ - --hash=sha256:184c5108a2aca3c5b3d3bf9395d50893a7ab82a38004c8f61c258d4428e80206 \ - --hash=sha256:18aeb1bf9a78867dc38b259769503436b7c72f7a1f1f4c93ff9a17de54319b27 \ - --hash=sha256:1d4c7e777c441b20e32f52bd377e0c409713e8bb1386e1099c2415f26e479595 \ - --hash=sha256:1e2722cc9fbb45d9b87631ac70924c11d3a401b2d7f410cc0e3bbf249f2dca62 \ - --hash=sha256:1fe35611261b29bd1de0070f0b2f47cb6ff71fa6595c077e42bd0c419fa27b98 \ - --hash=sha256:28c119d996beec18c05208a8bd78cbe4007878c6dd15091efb73a30e90539696 \ - --hash=sha256:326c013efe8048858a6d312ddd31d56e468118ad4cdeda36c719bf5bb6192290 \ - --hash=sha256:40df9b996c2b73138957fe23a16a4f0ba614f4c0efce1e9406a184b6d07fa3a9 \ - --hash=sha256:42f8152b8dbc4fe7d96729ec2b99c7097d656dc1213a3229ca5383f973a5ed6d \ - --hash=sha256:49a183be227561de579b4a36efbb21b3eab9651dd81b1858589f796549873dd6 \ - --hash=sha256:4fb147e7a67ef577a588a0e2c17b6db51dda102c71de36f8549b6816a96e1867 \ - --hash=sha256:50550eb667afee136e9a77d6dc71ae76a44df8b3e51e41b77f6de2932bfe0f47 \ - --hash=sha256:510c9deebc5c0225e8c96813043e62b680ba2f9c50a08d3724c7f28a747d1486 \ - --hash=sha256:5773183b6446b2c99bb77e77595dd486303b4faab2b086e7b17bc6bef28865f6 \ - --hash=sha256:596106435fa6ad000c2991a98fa58eeb8656ef2325d7e158344fb33864ed87e3 \ - --hash=sha256:6965a7bc3cf88e5a1c3bd2e0b5c22f8d677dc88a455344035f03399034eb3007 \ - --hash=sha256:69b023b2b4daa7548bcfbd4aa3da05b3a74b772db9e23b982788168117739938 \ - --hash=sha256:6c22bec3fbe2524cde73d7ada88f6566758a8f7227bfbf93a408a9d86bcc12a0 \ - --hash=sha256:704219a11b772aea0d8ecd7058d0082713c3562b4e271b849ad7dc4a5c90c13c \ - --hash=sha256:7e07cbde391ba96ab58e532ff4803f79c4129397514e1413a7dc761ccd755735 \ - --hash=sha256:81e0b275a9ecc9c0c0c07b4b90ba548307583c125f54d5b6946cfee6360c733d \ - --hash=sha256:855fb52b0dc35af121542a76b9a84f8d1cd886ea97c84703eaa6d88e37a2ad28 \ - --hash=sha256:8d4e9c88387b0f5c7d5f281e55304de64cf7f9c0021a3525bd3b1c542da3b0e4 \ - --hash=sha256:9046c58c4395dff28dd494285c82ba00b546adfc7ef001486fbf0324bc174fba \ - --hash=sha256:9eb6caa9a297fc2c2fb8862bc5370d0303ddba53ba97e71f08023b6cd73d16a8 \ - --hash=sha256:a08c6f0fe150303c1c6b71ebcd7213c2858041a7e01975da3a99aed1e7a378ef \ - --hash=sha256:a0cd17c15d3bb3fa06978b4e8958dcdc6e0174ccea823003a106c7d4d7899ac5 \ - --hash=sha256:afd7e57eddb1a54f0f1a974bc4391af8bcce0b444685d936840f125cf046d5bd \ - --hash=sha256:b1275ad35a5d18c62a7220633c913e1b42d44b46ee12554e5fd39c70a243d6a3 \ - --hash=sha256:b786eecbdf8499b9ca1d697215862083bd6d2a99965554781d0d8d1ad31e13a0 \ - --hash=sha256:ba336e390cd8e4d1739f42dfe9bb83a3cc2e80f567d8805e11b46f4a943f5515 \ - --hash=sha256:baa90d3f661d43131ca170712d903e6295d1f7a0f595074f151c0aed377c9b9c \ - --hash=sha256:bc1bf2925a1ecd43da378f4db9e4f799775d6367bdb94671027b73b393a7c42c \ - --hash=sha256:bd4af7373a854424dabd882decdc5579653d7868b8fb26dc7d0e99f823aa5924 \ - --hash=sha256:bf07ee2fef7014951eeb99f56f39c9bb4af143d8aa3c21b1677805985307da34 \ - --hash=sha256:bfdf460b1736c775f2ba9f6a92bca30bc2095067b8a9d77876d1fad6cc3b4a43 \ - --hash=sha256:c8098ddcc2a85b61647b2590f825f3db38891662cfc2fc776415143f599bb859 \ - --hash=sha256:d2b04aac4d386b172d5b9692e2d2da8de7bfb6c387fa4f801fbf6fb2e6ba4673 \ - --hash=sha256:d483d2cdf104e7c9fa60c544d92981f12ad66a457afae824d146093b8c294c54 \ - --hash=sha256:d858aa552c999bc8a8d57426ed01e40bef403cd8ccdd0fc5f6f04a00414cac2a \ - --hash=sha256:e7d73685e87afe9f3b36c799222440d6cf362062f78be1013661b00c5c6f678b \ - --hash=sha256:f003ed9ad21d6a4713f0a9b5a7a0a79e08dd0f221aff4525a2be4c346ee60aab \ - --hash=sha256:f22ac1c3cac4dbc50079e965eba2c1058622631e526bd9afd45fedd49ba781fa \ - --hash=sha256:faca3bdcf85b2fc05d06ff3fbc1f83e1391b3e724afa3feba7d13eeab355484c \ - --hash=sha256:fca0e3a251908a499833aa292323f32437106001d436eca0e6e7833256674585 \ - --hash=sha256:fd1592b3fdf65fff2ad0004b5e363300ef59ced41c2e6b3a99d4089fa8c5435d \ - --hash=sha256:fd66fc5d0da6d9815ba2cebeb4205f95818ff4b79c3ebe268e75d961704af52f +pyyaml==6.0.2 \ + --hash=sha256:01179a4a8559ab5de078078f37e5c1a30d76bb88519906844fd7bdea1b7729ff \ + --hash=sha256:0833f8694549e586547b576dcfaba4a6b55b9e96098b36cdc7ebefe667dfed48 \ + --hash=sha256:0a9a2848a5b7feac301353437eb7d5957887edbf81d56e903999a75a3d743086 \ + --hash=sha256:0b69e4ce7a131fe56b7e4d770c67429700908fc0752af059838b1cfb41960e4e \ + --hash=sha256:0ffe8360bab4910ef1b9e87fb812d8bc0a308b0d0eef8c8f44e0254ab3b07133 \ + --hash=sha256:11d8f3dd2b9c1207dcaf2ee0bbbfd5991f571186ec9cc78427ba5bd32afae4b5 \ + --hash=sha256:17e311b6c678207928d649faa7cb0d7b4c26a0ba73d41e99c4fff6b6c3276484 \ + --hash=sha256:1e2120ef853f59c7419231f3bf4e7021f1b936f6ebd222406c3b60212205d2ee \ + --hash=sha256:1f71ea527786de97d1a0cc0eacd1defc0985dcf6b3f17bb77dcfc8c34bec4dc5 \ + --hash=sha256:23502f431948090f597378482b4812b0caae32c22213aecf3b55325e049a6c68 \ + --hash=sha256:24471b829b3bf607e04e88d79542a9d48bb037c2267d7927a874e6c205ca7e9a \ + --hash=sha256:29717114e51c84ddfba879543fb232a6ed60086602313ca38cce623c1d62cfbf \ + --hash=sha256:2e99c6826ffa974fe6e27cdb5ed0021786b03fc98e5ee3c5bfe1fd5015f42b99 \ + --hash=sha256:39693e1f8320ae4f43943590b49779ffb98acb81f788220ea932a6b6c51004d8 \ + --hash=sha256:3ad2a3decf9aaba3d29c8f537ac4b243e36bef957511b4766cb0057d32b0be85 \ + --hash=sha256:3b1fdb9dc17f5a7677423d508ab4f243a726dea51fa5e70992e59a7411c89d19 \ + --hash=sha256:41e4e3953a79407c794916fa277a82531dd93aad34e29c2a514c2c0c5fe971cc \ + --hash=sha256:43fa96a3ca0d6b1812e01ced1044a003533c47f6ee8aca31724f78e93ccc089a \ + --hash=sha256:50187695423ffe49e2deacb8cd10510bc361faac997de9efef88badc3bb9e2d1 \ + --hash=sha256:5ac9328ec4831237bec75defaf839f7d4564be1e6b25ac710bd1a96321cc8317 \ + --hash=sha256:5d225db5a45f21e78dd9358e58a98702a0302f2659a3c6cd320564b75b86f47c \ + --hash=sha256:6395c297d42274772abc367baaa79683958044e5d3835486c16da75d2a694631 \ + --hash=sha256:688ba32a1cffef67fd2e9398a2efebaea461578b0923624778664cc1c914db5d \ + --hash=sha256:68ccc6023a3400877818152ad9a1033e3db8625d899c72eacb5a668902e4d652 \ + --hash=sha256:70b189594dbe54f75ab3a1acec5f1e3faa7e8cf2f1e08d9b561cb41b845f69d5 \ + --hash=sha256:797b4f722ffa07cc8d62053e4cff1486fa6dc094105d13fea7b1de7d8bf71c9e \ + --hash=sha256:7c36280e6fb8385e520936c3cb3b8042851904eba0e58d277dca80a5cfed590b \ + --hash=sha256:7e7401d0de89a9a855c839bc697c079a4af81cf878373abd7dc625847d25cbd8 \ + --hash=sha256:80bab7bfc629882493af4aa31a4cfa43a4c57c83813253626916b8c7ada83476 \ + --hash=sha256:82d09873e40955485746739bcb8b4586983670466c23382c19cffecbf1fd8706 \ + --hash=sha256:8388ee1976c416731879ac16da0aff3f63b286ffdd57cdeb95f3f2e085687563 \ + --hash=sha256:8824b5a04a04a047e72eea5cec3bc266db09e35de6bdfe34c9436ac5ee27d237 \ + --hash=sha256:8b9c7197f7cb2738065c481a0461e50ad02f18c78cd75775628afb4d7137fb3b \ + --hash=sha256:9056c1ecd25795207ad294bcf39f2db3d845767be0ea6e6a34d856f006006083 \ + --hash=sha256:936d68689298c36b53b29f23c6dbb74de12b4ac12ca6cfe0e047bedceea56180 \ + --hash=sha256:9b22676e8097e9e22e36d6b7bda33190d0d400f345f23d4065d48f4ca7ae0425 \ + --hash=sha256:a4d3091415f010369ae4ed1fc6b79def9416358877534caf6a0fdd2146c87a3e \ + --hash=sha256:a8786accb172bd8afb8be14490a16625cbc387036876ab6ba70912730faf8e1f \ + --hash=sha256:a9f8c2e67970f13b16084e04f134610fd1d374bf477b17ec1599185cf611d725 \ + --hash=sha256:bc2fa7c6b47d6bc618dd7fb02ef6fdedb1090ec036abab80d4681424b84c1183 \ + --hash=sha256:c70c95198c015b85feafc136515252a261a84561b7b1d51e3384e0655ddf25ab \ + --hash=sha256:cc1c1159b3d456576af7a3e4d1ba7e6924cb39de8f67111c735f6fc832082774 \ + --hash=sha256:ce826d6ef20b1bc864f0a68340c8b3287705cae2f8b4b1d932177dcc76721725 \ + --hash=sha256:d584d9ec91ad65861cc08d42e834324ef890a082e591037abe114850ff7bbc3e \ + --hash=sha256:d7fded462629cfa4b685c5416b949ebad6cec74af5e2d42905d41e257e0869f5 \ + --hash=sha256:d84a1718ee396f54f3a086ea0a66d8e552b2ab2017ef8b420e92edbc841c352d \ + --hash=sha256:d8e03406cac8513435335dbab54c0d385e4a49e4945d2909a581c83647ca0290 \ + --hash=sha256:e10ce637b18caea04431ce14fabcf5c64a1c61ec9c56b071a4b7ca131ca52d44 \ + --hash=sha256:ec031d5d2feb36d1d1a24380e4db6d43695f3748343d99434e6f5f9156aaa2ed \ + --hash=sha256:ef6107725bd54b262d6dedcc2af448a266975032bc85ef0172c5f059da6325b4 \ + --hash=sha256:efdca5630322a10774e8e98e1af481aad470dd62c3170801852d752aa7a783ba \ + --hash=sha256:f753120cb8181e736c57ef7636e83f31b9c0d1722c516f7e86cf15b7aa57ff12 \ + --hash=sha256:ff3824dc5261f50c9b0dfb3be22b4567a6f938ccce4587b38952d85fd9e9afe4 # via -r contrib/container/requirements.in -setuptools==70.3.0 \ - --hash=sha256:f171bab1dfbc86b132997f26a119f6056a57950d058587841a0082e8830f9dc5 \ - --hash=sha256:fe384da74336c398e0d956d1cae0669bc02eed936cdb1d49b57de1990dc11ffc +setuptools==75.2.0 \ + --hash=sha256:753bb6ebf1f465a1912e19ed1d41f403a79173a9acf66a42e7e6aec45c3c16ec \ + --hash=sha256:a7fcb66f68b4d9e8e66b42f9876150a3371558f98fa32222ffaa5bced76406f8 # via -r contrib/container/requirements.in -sqlparse==0.5.0 \ - --hash=sha256:714d0a4932c059d16189f58ef5411ec2287a4360f17cdd0edd2d09d4c5087c93 \ - --hash=sha256:c204494cd97479d0e39f28c93d46c0b2d5959c7b9ab904762ea6c7af211c8663 +sqlparse==0.5.1 \ + --hash=sha256:773dcbf9a5ab44a090f3441e2180efe2560220203dc2f8c0b0fa141e18b505e4 \ + --hash=sha256:bb6b4df465655ef332548e24f08e205afc81b9ab86cb1c45657a7ff173a3a00e # via django -typing-extensions==4.11.0 \ - --hash=sha256:83f085bd5ca59c80295fc2a82ab5dac679cbe02b9f33f7d83af68e241bea51b0 \ - --hash=sha256:c1f94d72897edaf4ce775bb7558d5b79d8126906a14ea5ed1635921406c0387a +typing-extensions==4.12.2 \ + --hash=sha256:04e5ca0351e0f3f85c6853954072df659d0d13fac324d0072316b67d7794700d \ + --hash=sha256:1a7ead55c7e559dd4dee8856e3a88b41225abfe1ce8df57b7c13915fe121ffb8 # via # psycopg # psycopg-pool -uv==0.1.38 \ - --hash=sha256:03242a734a572733f2b9a5dbb94517e918fe26fc01114b7c51d12296dfbb8f8b \ - --hash=sha256:067af2d986329db4fa3c7373017d49f0e16ddff23e483b7e5bc3a5a18ce08ea6 \ - --hash=sha256:0937ad16ae0e0b6bb6dd3c386f8fb33141ad08d1762eaacffb4d2b27fb466a17 \ - --hash=sha256:0e1d64ac437b0a14fbcec55b1c3f162fa24860711e0d855fcd9c672b149a122a \ - --hash=sha256:1be7aa46936c0351ccb1400ea95e5381b3f05fef772fa3b9f23af728cc175dea \ - --hash=sha256:309e73a3ec3a5a536a3efaf434270fc94b483069f1425765165c1c9d786c27fd \ - --hash=sha256:4251f9771d392d7badc1e5fb934b397b12ca00fef9d955207ade169cc1f7e872 \ - --hash=sha256:43772e7589f70e954b1ae29230e575ef9e4d8d769138a94dfa5ae7eaf1e26ac5 \ - --hash=sha256:4a6024256d38b77151e32876be9fcb99cf75df7a86b26e0161cc202bed558adf \ - --hash=sha256:5a98d6aacd4b57b7e00daf154919e7c9206fefdf40bd28cfb13efe0e0324d491 \ - --hash=sha256:8de6dbd8f348ee90af044f4cc7b6650521d25ba2d20a813c1e157a3f90069dd9 \ - --hash=sha256:9133e24db9bdd4f412eab69586d03294419825432a9a27ee1b510a4c01eb7b0b \ - --hash=sha256:92f65b6e4e5c8126501785af3629dc537d7c82caa56ac9336a86929c73d0e138 \ - --hash=sha256:afd85029923e712b6b2c45ddc1680c785392220876c766521e45778db3f71f8e \ - --hash=sha256:b0b15e51a0f8240969bc412ed0dd60cfe3f664b30173139ef263d71c596d631f \ - --hash=sha256:ea44c07605d1359a7d82bf42706dd86d341f15f4ca2e1f36e51626a7111c2ad5 \ - --hash=sha256:f87c9711493c53d32012a96b49c4d53aabdf7ed666cbf2c3fb55dd402a6b31a8 +uv==0.4.25 \ + --hash=sha256:18100f0f36419a154306ed6211e3490bf18384cdf3f1a0950848bf64b62fa251 \ + --hash=sha256:2d29a78f011ecc2f31c13605acb6574c2894c06d258b0f8d0dbb899986800450 \ + --hash=sha256:2fc35b5273f1e018aecd66b70e0fd7d2eb6698853dde3e2fc644e7ebf9f825b1 \ + --hash=sha256:3d7680795ea78cdbabbcce73d039b2651cf1fa635ddc1aa3082660f6d6255c50 \ + --hash=sha256:4c55040e67470f2b73e95e432aba06f103a0b348ea0b9c6689b1029c8d9e89fd \ + --hash=sha256:50c7d0d9e7f392f81b13bf3b7e37768d1486f2fc9d533a54982aa0ed11e4db23 \ + --hash=sha256:578ae385fad6bd6f3868828e33d54994c716b315b1bc49106ec1f54c640837e4 \ + --hash=sha256:6e981b1465e30102e41946adede9cb08051a5d70c6daf09f91a7ea84f0b75c08 \ + --hash=sha256:7d266e02fefef930609328c31c075084295c3cb472bab3f69549fad4fd9d82b3 \ + --hash=sha256:94fb2b454afa6bdfeeea4b4581c878944ca9cf3a13712e6762f245f5fbaaf952 \ + --hash=sha256:a7022a71ff63a3838796f40e954b76bf7820fc27e96fe002c537e75ff8e34f1d \ + --hash=sha256:a7c3a18c20ddb527d296d1222bddf42b78031c50b5b4609d426569b5fb61f5b0 \ + --hash=sha256:aae9dcafd20d5ba978c8a4939ab942e8e2e155c109e9945207fbbd81d2892c9e \ + --hash=sha256:bdbfd0c476b9e80a3f89af96aed6dd7d2782646311317a9c72614ccce99bb2ad \ + --hash=sha256:be2a4fc4fcade9ea5e67e51738c95644360d6e59b6394b74fc579fb617f902f7 \ + --hash=sha256:d39077cdfe3246885fcdf32e7066ae731a166101d063629f9cea08738f79e6a3 \ + --hash=sha256:e02afb0f6d4b58718347f7d7cfa5a801e985ce42181ba971ed85ef149f6658ca \ + --hash=sha256:ec181be2bda10651a3558156409ac481549983e0276d0e3645e3b1464e7f8715 # via -r contrib/container/requirements.in -wheel==0.43.0 \ - --hash=sha256:465ef92c69fa5c5da2d1cf8ac40559a8c940886afcef87dcf14b9470862f1d85 \ - --hash=sha256:55c570405f142630c6b9f72fe09d9b67cf1477fcf543ae5b8dcb1f5b7377da81 +wheel==0.44.0 \ + --hash=sha256:2376a90c98cc337d18623527a97c31797bd02bad0033d41547043a1cbfbe448f \ + --hash=sha256:a29c3f2817e95ab89aa4660681ad547c0e9547f20e75b0562fe7723c9a2a9d49 # via -r contrib/container/requirements.in diff --git a/contrib/dev_reqs/requirements.txt b/contrib/dev_reqs/requirements.txt index c9d8353ef4..b1f8b7efae 100644 --- a/contrib/dev_reqs/requirements.txt +++ b/contrib/dev_reqs/requirements.txt @@ -104,9 +104,9 @@ jc==1.25.3 \ --hash=sha256:ea17a8578497f2da92f73924d9d403f4563ba59422fbceff7bb4a16cdf84a54f \ --hash=sha256:fa3140ceda6cba1210d1362f363cd79a0514741e8a1dd6167db2b2e2d5f24f7b # via -r contrib/dev_reqs/requirements.in -pygments==2.17.2 \ - --hash=sha256:b27c2826c47d0f3219f29554824c30c5e8945175d888647acd804ddd04af846c \ - --hash=sha256:da46cec9fd2de5be3a8a784f434e4c4ab670b4ff54d605c4c2717e9d49c4c367 +pygments==2.18.0 \ + --hash=sha256:786ff802f32e91311bff3889f6e9a86e81505fe99f2735bb6d60ae0c5004f199 \ + --hash=sha256:b8e6aca0523f3ab76fee51799c488e38782ac06eafcf95e7ba832985c8e7b13a # via jc pyyaml==6.0.2 \ --hash=sha256:01179a4a8559ab5de078078f37e5c1a30d76bb88519906844fd7bdea1b7729ff \ diff --git a/contrib/packager.io/functions.sh b/contrib/packager.io/functions.sh index 29c9d53ff4..5127f4ec90 100755 --- a/contrib/packager.io/functions.sh +++ b/contrib/packager.io/functions.sh @@ -13,6 +13,7 @@ function detect_docker() { else DOCKER="no" fi + echo "# POI04| Running in docker: ${DOCKER}" } function detect_initcmd() { @@ -30,6 +31,7 @@ function detect_initcmd() { if [ "${DOCKER}" == "yes" ]; then INIT_CMD="initctl" fi + echo "# POI05| Using init command: ${INIT_CMD}" } function detect_ip() { @@ -37,36 +39,36 @@ function detect_ip() { if [ "${SETUP_NO_CALLS}" == "true" ]; then # Use local IP address - echo "# Getting the IP address of the first local IP address" + echo "# POI06| Getting the IP address of the first local IP address" export INVENTREE_IP=$(hostname -I | awk '{print $1}') else # Use web service to get the IP address - echo "# Getting the IP address of the server via web service" + echo "# POI06| Getting the IP address of the server via web service" export INVENTREE_IP=$(curl -s https://checkip.amazonaws.com) fi - echo "IP address is ${INVENTREE_IP}" + echo "# POI06| IP address is ${INVENTREE_IP}" } function detect_python() { # Detect if there is already a python version installed in /opt/inventree/env/lib if test -f "${APP_HOME}/env/bin/python"; then - echo "# Python environment already present" + echo "# POI07| Python environment already present" # Extract earliest python version initialised from /opt/inventree/env/lib SETUP_PYTHON=$(ls -1 ${APP_HOME}/env/bin/python* | sort | head -n 1) - echo "# Found earlier used version: ${SETUP_PYTHON}" + echo "# POI07| Found earlier used version: ${SETUP_PYTHON}" else - echo "# No python environment found - using environment variable: ${SETUP_PYTHON}" + echo "# POI07| No python environment found - using environment variable: ${SETUP_PYTHON}" fi # Try to detect a python between 3.9 and 3.12 in reverse order if [ -z "$(which ${SETUP_PYTHON})" ]; then - echo "# Trying to detecting python3.${PYTHON_FROM} to python3.${PYTHON_TO} - using newest version" + echo "# POI07| Trying to detecting python3.${PYTHON_FROM} to python3.${PYTHON_TO} - using newest version" for i in $(seq $PYTHON_TO -1 $PYTHON_FROM); do - echo "# Checking for python3.${i}" + echo "# POI07| Checking for python3.${i}" if [ -n "$(which python3.${i})" ]; then SETUP_PYTHON="python3.${i}" - echo "# Found python3.${i} installed - using for setup ${SETUP_PYTHON}" + echo "# POI07| Found python3.${i} installed - using for setup ${SETUP_PYTHON}" break fi done @@ -75,12 +77,14 @@ function detect_python() { # Ensure python can be executed - abort if not if [ -z "$(which ${SETUP_PYTHON})" ]; then echo "${On_Red}" - echo "# Python ${SETUP_PYTHON} not found - aborting!" - echo "# Please ensure python can be executed with the command '$SETUP_PYTHON' by the current user '$USER'." - echo "# If you are using a different python version, please set the environment variable SETUP_PYTHON to the correct command - eg. 'python3.10'." + echo "# POI07| Python ${SETUP_PYTHON} not found - aborting!" + echo "# POI07| Please ensure python can be executed with the command '$SETUP_PYTHON' by the current user '$USER'." + echo "# POI07| If you are using a different python version, please set the environment variable SETUP_PYTHON to the correct command - eg. 'python3.10'." echo "${Color_Off}" exit 1 fi + + echo "# POI07| Using python command: ${SETUP_PYTHON}" } function get_env() { @@ -95,7 +99,7 @@ function get_env() { done if [ -n "${SETUP_DEBUG}" ]; then - echo "Done getting env $envname: ${!envname}" + echo "# POI02| Done getting env $envname: ${!envname}" fi } @@ -103,7 +107,7 @@ function detect_local_env() { # Get all possible envs for the install if [ -n "${SETUP_DEBUG}" ]; then - echo "# Printing local envs - before #++#" + echo "# POI02| Printing local envs - before #++#" printenv fi @@ -113,7 +117,7 @@ function detect_local_env() { done if [ -n "${SETUP_DEBUG}" ]; then - echo "# Printing local envs - after #++#" + echo "# POI02| Printing local envs - after #++#" printenv fi } @@ -121,15 +125,17 @@ function detect_local_env() { function detect_envs() { # Detect all envs that should be passed to setup commands - echo "# Setting base environment variables" + echo "# POI03| Setting base environment variables" export INVENTREE_CONFIG_FILE=${INVENTREE_CONFIG_FILE:-${CONF_DIR}/config.yaml} if test -f "${INVENTREE_CONFIG_FILE}"; then - echo "# Using existing config file: ${INVENTREE_CONFIG_FILE}" + echo "# POI03| Using existing config file: ${INVENTREE_CONFIG_FILE}" # Install parser + echo "# POI03| Installing requirements" pip install --require-hashes -r ${APP_HOME}/contrib/dev_reqs/requirements.txt -q + echo "# POI03| Installed requirements" # Load config export INVENTREE_CONF_DATA=$(cat ${INVENTREE_CONFIG_FILE} | jc --yaml) @@ -149,10 +155,10 @@ function detect_envs() { export INVENTREE_DB_HOST=$(jq -r '.[].database.HOST' <<< ${INVENTREE_CONF_DATA}) export INVENTREE_DB_PORT=$(jq -r '.[].database.PORT' <<< ${INVENTREE_CONF_DATA}) else - echo "# No config file found: ${INVENTREE_CONFIG_FILE}, using envs or defaults" + echo "# POI03| No config file found: ${INVENTREE_CONFIG_FILE}, using envs or defaults" if [ -n "${SETUP_DEBUG}" ]; then - echo "# Print current envs" + echo "# POI03| Print current envs" printenv | grep INVENTREE_ printenv | grep SETUP_ fi @@ -175,43 +181,43 @@ function detect_envs() { fi # For debugging pass out the envs - echo "# Collected environment variables:" - echo "# INVENTREE_MEDIA_ROOT=${INVENTREE_MEDIA_ROOT}" - echo "# INVENTREE_STATIC_ROOT=${INVENTREE_STATIC_ROOT}" - echo "# INVENTREE_BACKUP_DIR=${INVENTREE_BACKUP_DIR}" - echo "# INVENTREE_PLUGINS_ENABLED=${INVENTREE_PLUGINS_ENABLED}" - echo "# INVENTREE_PLUGIN_FILE=${INVENTREE_PLUGIN_FILE}" - echo "# INVENTREE_SECRET_KEY_FILE=${INVENTREE_SECRET_KEY_FILE}" - echo "# INVENTREE_DB_ENGINE=${INVENTREE_DB_ENGINE}" - echo "# INVENTREE_DB_NAME=${INVENTREE_DB_NAME}" - echo "# INVENTREE_DB_USER=${INVENTREE_DB_USER}" + echo "# POI03| Collected environment variables:" + echo "# POI03| INVENTREE_MEDIA_ROOT=${INVENTREE_MEDIA_ROOT}" + echo "# POI03| INVENTREE_STATIC_ROOT=${INVENTREE_STATIC_ROOT}" + echo "# POI03| INVENTREE_BACKUP_DIR=${INVENTREE_BACKUP_DIR}" + echo "# POI03| INVENTREE_PLUGINS_ENABLED=${INVENTREE_PLUGINS_ENABLED}" + echo "# POI03| INVENTREE_PLUGIN_FILE=${INVENTREE_PLUGIN_FILE}" + echo "# POI03| INVENTREE_SECRET_KEY_FILE=${INVENTREE_SECRET_KEY_FILE}" + echo "# POI03| INVENTREE_DB_ENGINE=${INVENTREE_DB_ENGINE}" + echo "# POI03| INVENTREE_DB_NAME=${INVENTREE_DB_NAME}" + echo "# POI03| INVENTREE_DB_USER=${INVENTREE_DB_USER}" if [ -n "${SETUP_DEBUG}" ]; then - echo "# INVENTREE_DB_PASSWORD=${INVENTREE_DB_PASSWORD}" + echo "# POI03| INVENTREE_DB_PASSWORD=${INVENTREE_DB_PASSWORD}" fi - echo "# INVENTREE_DB_HOST=${INVENTREE_DB_HOST}" - echo "# INVENTREE_DB_PORT=${INVENTREE_DB_PORT}" + echo "# POI03| INVENTREE_DB_HOST=${INVENTREE_DB_HOST}" + echo "# POI03| INVENTREE_DB_PORT=${INVENTREE_DB_PORT}" } function create_initscripts() { # Make sure python env exists if test -f "${APP_HOME}/env"; then - echo "# python environment already present - skipping" + echo "# POI09| python environment already present - skipping" else - echo "# Setting up python environment" + echo "# POI09| Setting up python environment" sudo -u ${APP_USER} --preserve-env=$SETUP_ENVS bash -c "cd ${APP_HOME} && ${SETUP_PYTHON} -m venv env" sudo -u ${APP_USER} --preserve-env=$SETUP_ENVS bash -c "cd ${APP_HOME} && env/bin/pip install invoke wheel" # Check INSTALLER_EXTRA exists and load it if test -f "${APP_HOME}/INSTALLER_EXTRA"; then - echo "# Loading extra packages from INSTALLER_EXTRA" + echo "# POI09| Loading extra packages from INSTALLER_EXTRA" source ${APP_HOME}/INSTALLER_EXTRA fi if [ -n "${SETUP_EXTRA_PIP}" ]; then - echo "# Installing extra pip packages" + echo "# POI09| Installing extra pip packages" if [ -n "${SETUP_DEBUG}" ]; then - echo "# Extra pip packages: ${SETUP_EXTRA_PIP}" + echo "# POI09| Extra pip packages: ${SETUP_EXTRA_PIP}" fi sudo -u ${APP_USER} --preserve-env=$SETUP_ENVS bash -c "cd ${APP_HOME} && env/bin/pip install ${SETUP_EXTRA_PIP}" # Write extra packages to INSTALLER_EXTRA @@ -221,41 +227,45 @@ function create_initscripts() { # Unlink default config if it exists if test -f "/etc/nginx/sites-enabled/default"; then - echo "# Unlinking default nginx config\n# Old file still in /etc/nginx/sites-available/default" + echo "# POI09| Unlinking default nginx config\n# POI09| Old file still in /etc/nginx/sites-available/default" sudo unlink /etc/nginx/sites-enabled/default + echo "# POI09| Unlinked default nginx config" fi # Create InvenTree specific nginx config - echo "# Stopping nginx" + echo "# POI09| Stopping nginx" ${INIT_CMD} stop nginx - echo "# Setting up nginx to ${SETUP_NGINX_FILE}" + echo "# POI09| Stopped nginx" + echo "# POI09| Setting up nginx to ${SETUP_NGINX_FILE}" # Always use the latest nginx config; important if new headers are added / needed for security cp ${APP_HOME}/contrib/packager.io/nginx.prod.conf ${SETUP_NGINX_FILE} sed -i s/inventree-server:8000/localhost:6000/g ${SETUP_NGINX_FILE} sed -i s=var/www=opt/inventree/data=g ${SETUP_NGINX_FILE} # Start nginx - echo "# Starting nginx" + echo "# POI09| Starting nginx" ${INIT_CMD} start nginx + echo "# POI09| Started nginx" - echo "# (Re)creating init scripts" + echo "# POI09| (Re)creating init scripts" # This resets scale parameters to a known state inventree scale web="1" worker="1" - echo "# Enabling InvenTree on boot" + echo "# POI09| Enabling InvenTree on boot" ${INIT_CMD} enable inventree + echo "# POI09| Enabled InvenTree on boot" } function create_admin() { # Create data for admin users - stop with setting SETUP_ADMIN_NOCREATION to true if [ "${SETUP_ADMIN_NOCREATION}" == "true" ]; then - echo "# Admin creation is disabled - skipping" + echo "# POI10| Admin creation is disabled - skipping" return fi if test -f "${SETUP_ADMIN_PASSWORD_FILE}"; then - echo "# Admin data already exists - skipping" + echo "# POI10| Admin data already exists - skipping" else - echo "# Creating admin user data" + echo "# POI10| Creating admin user data" # Static admin data export INVENTREE_ADMIN_USER=${INVENTREE_ADMIN_USER:-admin} @@ -270,13 +280,15 @@ function create_admin() { } function start_inventree() { - echo "# Starting InvenTree" + echo "# POI15| Starting InvenTree" ${INIT_CMD} start inventree + echo "# POI15| Started InvenTree" } function stop_inventree() { - echo "# Stopping InvenTree" + echo "# POI11| Stopping InvenTree" ${INIT_CMD} stop inventree + echo "# POI11| Stopped InvenTree" } function update_or_install() { @@ -285,23 +297,23 @@ function update_or_install() { chown ${APP_USER}:${APP_GROUP} ${APP_HOME} -R # Run update as app user - echo "# Updating InvenTree" - sudo -u ${APP_USER} --preserve-env=$SETUP_ENVS bash -c "cd ${APP_HOME} && pip install wheel" - sudo -u ${APP_USER} --preserve-env=$SETUP_ENVS bash -c "cd ${APP_HOME} && invoke update | sed -e 's/^/# inv update| /;'" + echo "# POI12| Updating InvenTree" + sudo -u ${APP_USER} --preserve-env=$SETUP_ENVS bash -c "cd ${APP_HOME} && pip install uv wheel" + sudo -u ${APP_USER} --preserve-env=$SETUP_ENVS bash -c "cd ${APP_HOME} && invoke update --uv | sed -e 's/^/# POI12| u | /;'" # Make sure permissions are correct again - echo "# Set permissions for data dir and media: ${DATA_DIR}" + echo "# POI12| Set permissions for data dir and media: ${DATA_DIR}" chown ${APP_USER}:${APP_GROUP} ${DATA_DIR} -R chown ${APP_USER}:${APP_GROUP} ${CONF_DIR} -R } function set_env() { - echo "# Setting up InvenTree config values" + echo "# POI13| Setting up InvenTree config values" inventree config:set INVENTREE_CONFIG_FILE=${INVENTREE_CONFIG_FILE} # Changing the config file - echo "# Writing the settings to the config file ${INVENTREE_CONFIG_FILE}" + echo "# POI13| Writing the settings to the config file ${INVENTREE_CONFIG_FILE}" # Media Root sed -i s=#media_root:\ \'/home/inventree/data/media\'=media_root:\ \'${INVENTREE_MEDIA_ROOT}\'=g ${INVENTREE_CONFIG_FILE} # Static Root @@ -332,23 +344,28 @@ function set_env() { # Fixing the permissions chown ${APP_USER}:${APP_GROUP} ${DATA_DIR} ${INVENTREE_CONFIG_FILE} + + echo "# POI13| Done setting up InvenTree config values" } function set_site() { # Ensure IP is known if [ -z "${INVENTREE_IP}" ]; then - echo "# No IP address found - skipping" + echo "# POI14| No IP address found - skipping" return fi # Check if INVENTREE_SITE_URL in inventree config if [ -z "$(inventree config:get INVENTREE_SITE_URL)" ]; then - echo "# Setting up InvenTree site URL" + echo "# POI14| Setting up InvenTree site URL" inventree config:set INVENTREE_SITE_URL=http://${INVENTREE_IP} + else + echo "# POI14| Site URL already set - skipping" fi } function final_message() { + echo "# POI16| Printing Final message" echo -e "####################################################################################" echo -e "This InvenTree install uses nginx, the settings for the webserver can be found in" echo -e "${SETUP_NGINX_FILE}" @@ -362,10 +379,12 @@ function final_message() { function update_checks() { - echo "# Running upgrade" + echo "# POI08| Running upgrade" local old_version=$1 local old_version_rev=$(echo ${old_version} | cut -d'-' -f1 | cut -d'.' -f2) - echo "# Old version is: ${old_version} - release: ${old_version_rev}" + local new_version=$(dpkg-query --show --showformat='${Version}' inventree) + local new_version_rev=$(echo ${new_version} | cut -d'-' -f1 | cut -d'.' -f2) + echo "# POI08| Old version is: ${old_version} | ${old_version_rev} - updating to ${new_version} | ${old_version_rev}" local ABORT=false function check_config_value() { @@ -378,25 +397,25 @@ function update_checks() { value=$(jq -r ".[].${config_key}" <<< ${INVENTREE_CONF_DATA}) fi if [ -z "${value}" ] || [ "$value" == "null" ]; then - echo "# No setting for ${name} found - please set it manually either in ${INVENTREE_CONFIG_FILE} under '${config_key}' or with 'inventree config:set ${env_key}=value'" + echo "# POI08| No setting for ${name} found - please set it manually either in ${INVENTREE_CONFIG_FILE} under '${config_key}' or with 'inventree config:set ${env_key}=value'" ABORT=true else - echo "# Found setting for ${name} - ${value}" + echo "# POI08| Found setting for ${name} - ${value}" fi } # Custom checks if old version is below 0.8.0 if [ "${old_version_rev}" -lt "9" ]; then - echo "# Old version is below 0.9.0 - You might be missing some configs" + echo "# POI08| Old version is below 0.9.0 - You might be missing some configs" # Check for BACKUP_DIR and SITE_URL in INVENTREE_CONF_DATA and config check_config_value "INVENTREE_SITE_URL" "site_url" "site URL" check_config_value "INVENTREE_BACKUP_DIR" "backup_dir" "backup dir" if [ "${ABORT}" = true ]; then - echo "# Aborting - please set the missing values and run the update again" + echo "# POI08| Aborting - please set the missing values and run the update again" exit 1 fi - echo "# All checks passed - continuing with the update" + echo "# POI08| All checks passed - continuing with the update" fi } diff --git a/contrib/packager.io/postinstall.sh b/contrib/packager.io/postinstall.sh index fd1e85a4b1..4e5734fb5a 100755 --- a/contrib/packager.io/postinstall.sh +++ b/contrib/packager.io/postinstall.sh @@ -3,15 +3,18 @@ # packager.io postinstall script # +echo "# POI01| Running postinstall script - start - $(date)" exec > >(tee ${APP_HOME}/log/setup_$(date +"%F_%H_%M_%S").log) 2>&1 PATH=${APP_HOME}/env/bin:${APP_HOME}/:/sbin:/bin:/usr/sbin:/usr/bin: # import functions +echo "# POI01| Importing functions" . ${APP_HOME}/contrib/packager.io/functions.sh +echo "# POI01| Functions imported" # Envs that should be passed to setup commands -export SETUP_ENVS=PATH,APP_HOME,INVENTREE_MEDIA_ROOT,INVENTREE_STATIC_ROOT,INVENTREE_BACKUP_DIR,INVENTREE_PLUGINS_ENABLED,INVENTREE_PLUGIN_FILE,INVENTREE_CONFIG_FILE,INVENTREE_SECRET_KEY_FILE,INVENTREE_DB_ENGINE,INVENTREE_DB_NAME,INVENTREE_DB_USER,INVENTREE_DB_PASSWORD,INVENTREE_DB_HOST,INVENTREE_DB_PORT,INVENTREE_ADMIN_USER,INVENTREE_ADMIN_EMAIL,INVENTREE_ADMIN_PASSWORD,SETUP_NGINX_FILE,SETUP_ADMIN_PASSWORD_FILE,SETUP_NO_CALLS,SETUP_DEBUG,SETUP_EXTRA_PIP,SETUP_PYTHON,SETUP_ADMIN_NOCREATION +export SETUP_ENVS=PATH,APP_HOME,INVENTREE_MEDIA_ROOT,INVENTREE_STATIC_ROOT,INVENTREE_BACKUP_DIR,INVENTREE_SITE_URL,INVENTREE_PLUGINS_ENABLED,INVENTREE_PLUGIN_FILE,INVENTREE_CONFIG_FILE,INVENTREE_SECRET_KEY_FILE,INVENTREE_DB_ENGINE,INVENTREE_DB_NAME,INVENTREE_DB_USER,INVENTREE_DB_PASSWORD,INVENTREE_DB_HOST,INVENTREE_DB_PORT,INVENTREE_ADMIN_USER,INVENTREE_ADMIN_EMAIL,INVENTREE_ADMIN_PASSWORD,SETUP_NGINX_FILE,SETUP_ADMIN_PASSWORD_FILE,SETUP_NO_CALLS,SETUP_DEBUG,SETUP_EXTRA_PIP,SETUP_PYTHON,SETUP_ADMIN_NOCREATION # Get the envs detect_local_env @@ -37,9 +40,9 @@ detect_ip detect_python # Check if we are updating and need to alert -echo "# Checking if update checks are needed" +echo "# POI08| Checking if update checks are needed" if [ -z "$2" ]; then - echo "# Normal install - no need for checks" + echo "# POI08| Normal install - no need for checks" else update_checks $2 fi @@ -60,3 +63,4 @@ start_inventree # show info final_message +echo "# POI17| Running postinstall script - done - $(date)" diff --git a/contrib/packager.io/preinstall.sh b/contrib/packager.io/preinstall.sh index 0e59daebb2..f15fb49e06 100755 --- a/contrib/packager.io/preinstall.sh +++ b/contrib/packager.io/preinstall.sh @@ -2,14 +2,22 @@ # # packager.io preinstall/preremove script # +echo "# PRI01| Running preinstall script - start - $(date)" PATH=${APP_HOME}/env/bin:${APP_HOME}/:/sbin:/bin:/usr/sbin:/usr/bin: # Envs that should be passed to setup commands export SETUP_ENVS=PATH,APP_HOME,INVENTREE_MEDIA_ROOT,INVENTREE_STATIC_ROOT,INVENTREE_BACKUP_DIR,INVENTREE_PLUGINS_ENABLED,INVENTREE_PLUGIN_FILE,INVENTREE_CONFIG_FILE,INVENTREE_SECRET_KEY_FILE,INVENTREE_DB_ENGINE,INVENTREE_DB_NAME,INVENTREE_DB_USER,INVENTREE_DB_PASSWORD,INVENTREE_DB_HOST,INVENTREE_DB_PORT,INVENTREE_ADMIN_USER,INVENTREE_ADMIN_EMAIL,INVENTREE_ADMIN_PASSWORD,SETUP_NGINX_FILE,SETUP_ADMIN_PASSWORD_FILE,SETUP_NO_CALLS,SETUP_DEBUG,SETUP_EXTRA_PIP,SETUP_PYTHON if test -f "${APP_HOME}/env/bin/pip"; then - echo "# Clearing precompiled files" - sudo -u ${APP_USER} --preserve-env=$SETUP_ENVS bash -c "cd ${APP_HOME} && invoke clear-generated" + # Check if clear-generated is available + if sudo -u ${APP_USER} --preserve-env=$SETUP_ENVS bash -c "cd ${APP_HOME} && invoke int.clear-generated --help" > /dev/null 2>&1; then + echo "# PRI02| Clearing precompiled files" + sudo -u ${APP_USER} --preserve-env=$SETUP_ENVS bash -c "cd ${APP_HOME} && invoke int.clear-generated" + else + echo "# PRI02| Clearing precompiled files - skipping" + fi else - echo "# No python environment found - skipping" + echo "# PRI02| No python environment found - skipping" fi + +echo "# PRI03| Running preinstall script - done - $(date)" diff --git a/crowdin.yml b/crowdin.yml index e6851f3632..311bbc8e9b 100644 --- a/crowdin.yml +++ b/crowdin.yml @@ -1,8 +1,14 @@ +# Configuration file for Crowdin project integration +# See: https://crowdin.com/project/inventree + "commit_message": "Fix: New translations %original_file_name% from Crowdin" "append_commit_message": false +"preserve_hierarchy": true files: - source: /src/backend/InvenTree/locale/en/LC_MESSAGES/django.po + dest: /%original_path%/%original_file_name% translation: /src/backend/InvenTree/locale/%two_letters_code%/LC_MESSAGES/%original_file_name% - source: /src/frontend/src/locales/en/messages.po + dest: /%original_path%/%original_file_name% translation: /src/frontend/src/locales/%two_letters_code%/%original_file_name% diff --git a/docs/ci/check_mkdocs_config.py b/docs/ci/check_mkdocs_config.py index 93a3afe0c8..c1f803c7c2 100644 --- a/docs/ci/check_mkdocs_config.py +++ b/docs/ci/check_mkdocs_config.py @@ -10,7 +10,7 @@ tld = os.path.abspath(os.path.join(here, '..')) config_file = os.path.join(tld, 'mkdocs.yml') -with open(config_file, 'r') as f: +with open(config_file, encoding='utf-8') as f: data = yaml.load(f, yaml.BaseLoader) assert data['strict'] == 'true' diff --git a/docs/docs/api/api.md b/docs/docs/api/api.md index 7f2c9328d0..0ac6366b47 100644 --- a/docs/docs/api/api.md +++ b/docs/docs/api/api.md @@ -22,10 +22,10 @@ The API is self-documenting, and the documentation is provided alongside any Inv ### Generating Schema File -If you want to generate the API schema file yourself (for example to use with an external client, use the `invoke schema` command. Run with the `-help` command to see available options. +If you want to generate the API schema file yourself (for example to use with an external client, use the `invoke dev.schema` command. Run with the `-help` command to see available options. ``` -invoke schema -help +invoke dev.schema -help ``` ## Authentication diff --git a/docs/docs/barcodes/barcodes.md b/docs/docs/barcodes/barcodes.md index 22c07cc37f..a51c3dcc96 100644 --- a/docs/docs/barcodes/barcodes.md +++ b/docs/docs/barcodes/barcodes.md @@ -56,3 +56,11 @@ If no match is found for the scanned barcode, the following error message is dis ## App Integration Barcode scanning is a key feature of the [companion mobile app](../app/barcode.md). + +## Barcode History + +If enabled, InvenTree can retain logs of the most recent barcode scans. This can be very useful for debugging or auditing purpopes. + +Refer to the [barcode settings](../settings/global.md#barcodes) to enable barcode history logging. + +The barcode history can be viewed via the admin panel in the web interface. diff --git a/docs/docs/demo.md b/docs/docs/demo.md index 7d097fca25..031a735113 100644 --- a/docs/docs/demo.md +++ b/docs/docs/demo.md @@ -16,6 +16,7 @@ The demo instance has a number of user accounts which you can use to explore the | Username | Password | Staff Access | Enabled | Description | | -------- | -------- | ------------ | ------- | ----------- | +| noaccess | youshallnotpass | No | Yes | Can login, but has no permissions | | allaccess | nolimits | No | Yes | View / create / edit all pages and items | | reader | readonly | No | Yes | Can view all pages but cannot create, edit or delete database records | | engineer | partsonly | No | Yes | Can manage parts, view stock, but no access to purchase orders or sales orders | @@ -23,3 +24,35 @@ The demo instance has a number of user accounts which you can use to explore the | ian | inactive | No | No | Inactive account, cannot log in | | susan | inactive | No | No | Inactive account, cannot log in | | admin | inventree | Yes | Yes | Superuser account, can access all parts of the system | + +### Dataset + +The demo instance is populated with a sample dataset, which is reset every 24 hours. + +The source data used in the demo instance can be found on our [GitHub page](https://github.com/inventree/demo-dataset). + +### Local Setup + +If you wish to install the demo dataset locally (for initial testing), you can run the following command (via [invoke](./start/invoke.md)): + +```bash +invoke dev.setup-test -i +``` + +*(Note: The command above may be slightly different if you are running in docker.)* + +This will install the demo dataset into your local InvenTree instance. + +!!! warning "Warning" + This command will **delete all existing data** in your InvenTree instance! It is not intended to be used on a production system, or loaded into an existing dataset. + +### Clear Data + +To clear demo data from your instance, and start afresh with a clean database, you can run the following command (via [invoke](./start/invoke.md)): + +```bash +invoke dev.delete-data +``` + +!!! warning "Warning" + This command will **delete all existing data** in your InvenTree instance, including any data that you have added yourself. diff --git a/docs/docs/develop/contributing.md b/docs/docs/develop/contributing.md index 931d8111fe..bca21b483a 100644 --- a/docs/docs/develop/contributing.md +++ b/docs/docs/develop/contributing.md @@ -23,7 +23,7 @@ To setup a development environment using [docker](../start/docker.md), run the f ```bash git clone https://github.com/inventree/InvenTree.git && cd InvenTree docker compose --project-directory . -f contrib/container/dev-docker-compose.yml run --rm inventree-dev-server invoke install -docker compose --project-directory . -f contrib/container/dev-docker-compose.yml run --rm inventree-dev-server invoke setup-test --dev +docker compose --project-directory . -f contrib/container/dev-docker-compose.yml run --rm inventree-dev-server invoke dev.setup-test --dev docker compose --project-directory . -f contrib/container/dev-docker-compose.yml up -d ``` @@ -34,25 +34,28 @@ A "bare metal" development setup can be installed as follows: ```bash git clone https://github.com/inventree/InvenTree.git && cd InvenTree python3 -m venv env && source env/bin/activate -pip install invoke && invoke -pip install invoke && invoke setup-dev --tests +pip install django invoke && invoke +invoke dev.setup-dev --tests ``` Read the [InvenTree setup documentation](../start/intro.md) for a complete installation reference guide. +!!! note "Required Packages" + Depending on your system, you may need to install additional software packages as required. + ### Setup Devtools Run the following command to set up all toolsets for development. ```bash -invoke setup-dev +invoke dev.setup-dev ``` *We recommend you run this command before starting to contribute. This will install and set up `pre-commit` to run some checks before each commit and help reduce errors.* ## Branches and Versioning -InvenTree roughly follow the [GitLab flow](https://docs.gitlab.com/ee/topics/gitlab_flow.html) branching style, to allow simple management of multiple tagged releases, short-lived branches, and development on the main branch. +InvenTree roughly follow the [GitLab flow](https://about.gitlab.com/topics/version-control/what-are-gitlab-flow-best-practices/) branching style, to allow simple management of multiple tagged releases, short-lived branches, and development on the main branch. There are nominally 5 active branches: - `master` - The main development branch @@ -169,19 +172,20 @@ The various github actions can be found in the `./github/workflows` directory ### Run tests locally To run test locally, use: + ``` -invoke test +invoke dev.test ``` To run only partial tests, for example for a module use: ``` -invoke test --runtest order +invoke dev.test --runtest order ``` To see all the available options: ``` -invoke test --help +invoke dev.test --help ``` ## Code Style diff --git a/docs/docs/develop/devcontainer.md b/docs/docs/develop/devcontainer.md index 930e9775b9..bb86080ba2 100644 --- a/docs/docs/develop/devcontainer.md +++ b/docs/docs/develop/devcontainer.md @@ -52,7 +52,7 @@ Tasks can help you executing scripts. You can run them by open the command panel #### Setup demo dataset -If you need some demo test-data, run the `setup-test` task. This will import an `admin` user with the password `inventree`. For more info on what this dataset contains see [inventree/demo-dataset](https://github.com/inventree/demo-dataset). +If you need some demo test-data, run the `setup-test` task. This will import an `admin` user with the password `inventree`. For more info on what this dataset contains see [inventree/demo-dataset](../demo.md). #### Setup a superuser diff --git a/docs/docs/develop/react-frontend.md b/docs/docs/develop/react-frontend.md index ead305c912..ab841e9008 100644 --- a/docs/docs/develop/react-frontend.md +++ b/docs/docs/develop/react-frontend.md @@ -1,37 +1,48 @@ --- -title: Platform UI / React +title: React Frontend Development --- ## Setup -The new React-based UI will not be available by default. In order to set your development environment up to view the frontend, follow this guide. -The new UI requires a separate frontend server to run to serve data for the new Frontend. +The following documentation details how to setup and run a development installation of the InvenTree frontend user interface. + +### Prerequisites + +To run the frontend development server, you will need to have the following installed: + +- Node.js +- Yarn + +!!! note "Devcontainer" + The [devcontainer](./devcontainer.md) setup already includes all prerequisite packages, and is ready to run the frontend server. ### Install -The React frontend requires its own packages that aren't installed via the usual invoke tasks. +The React frontend requires its own packages that aren't installed via the usual [invoke](../start/invoke.md) tasks. #### Docker Run the following command: -`docker compose run inventree-dev-server invoke frontend-compile` +`docker compose run inventree-dev-server invoke int.frontend-compile` This will install the required packages for running the React frontend on your InvenTree dev server. #### Devcontainer + !!! warning "This guide assumes you already have a running devcontainer" + !!! info "All these steps are performed within Visual Studio Code" Open a new terminal from the top menu by clicking `Terminal > New Terminal` Make sure this terminal is running within the virtual env. The start of the last line should display `(venv)` -Run the command `invoke frontend-compile`. Wait for this to finish +Run the command `invoke int.frontend-compile`. Wait for this to finish ### Running After finishing the install, you need to launch a frontend server to be able to view the new UI. Using the previously described ways of running commands, execute the following: -`invoke frontend-dev` in your environment +`invoke dev.frontend-server` in your environment This command does not run as a background daemon, and will occupy the window it's ran in. ### Accessing @@ -40,7 +51,7 @@ When the frontend server is running, it will be available on port 5173. i.e: https://localhost:5173/ !!! note "Backend Server" - The InvenTree backend server must also be running, for the frontend interface to have something to connect to! To launch a backend server, use the `invoke server` command. + The InvenTree backend server must also be running, for the frontend interface to have something to connect to! To launch a backend server, use the `invoke dev.server` command. ### Debugging @@ -77,3 +88,27 @@ When running the frontend development server, some features may not work entirel #### SSO Login When logging into the frontend dev server via SSO, the redirect URL may not redirect correctly. + +## Testing + +The frontend codebase it tested using [Playwright](https://playwright.dev/). There are a large number of tests that cover the frontend codebase, which are run automatically as part of the CI pipeline. + +### Install Playwright + +To install the required packages to run the tests, you can use the following command: + +```bash +cd src/frontend +npx playwright install +``` + +### Running Tests + +To run the tests locally, in an interactive editor, you can use the following command: + +```bash +cd src/frontend +npx playwright test --ui +``` + +This will first launch the backend server (at `http://localhost:8000`), and then run the tests against the frontend server (at `http://localhost:5173`). An interactive browser window will open, and you can run the tests individually or as a group. diff --git a/docs/docs/extend/plugins/panel.md b/docs/docs/extend/plugins/panel.md index f91c175ab1..d19c568475 100644 --- a/docs/docs/extend/plugins/panel.md +++ b/docs/docs/extend/plugins/panel.md @@ -4,6 +4,12 @@ title: Panel Mixin ## PanelMixin +!!! warning "Legacy User Interface" + This plugin mixin class is designed specifically for the the *legacy* user interface (which is rendered on the server using django templates). The new user interface (which is rendered on the client using React) does not support this mixin class. Instead, refer to the new [User Interface Mixin](./ui.md) class. + +!!! warning "Deprecated Class" + This mixin class is considered deprecated, and will be removed in the 1.0.0 release. + The `PanelMixin` enables plugins to render custom content to "panels" on individual pages in the web interface. Most pages in the web interface support multiple panels, which are selected via the sidebar menu on the left side of the screen: diff --git a/docs/docs/extend/plugins/ui.md b/docs/docs/extend/plugins/ui.md new file mode 100644 index 0000000000..16988ca2e3 --- /dev/null +++ b/docs/docs/extend/plugins/ui.md @@ -0,0 +1,186 @@ +--- +title: User Interface Mixin +--- + +## User Interface Mixin + +The `UserInterfaceMixin` class provides a set of methods to implement custom functionality for the InvenTree web interface. + +### Enable User Interface Mixin + +To enable user interface plugins, the global setting `ENABLE_PLUGINS_INTERFACE` must be enabled, in the [plugin settings](../../settings/global.md#plugin-settings). + +## Custom UI Features + +The InvenTree user interface functionality can be extended in various ways using plugins. Multiple types of user interface *features* can be added to the InvenTree user interface. + +The entrypoint for user interface plugins is the `UserInterfaceMixin` class, which provides a number of methods which can be overridden to provide custom functionality. The `get_ui_features` method is used to extract available user interface features from the plugin: + +::: plugin.base.ui.mixins.UserInterfaceMixin.get_ui_features + options: + show_bases: False + show_root_heading: False + show_root_toc_entry: False + show_sources: True + summary: False + members: [] + +Note here that the `get_ui_features` calls other methods to extract the available features from the plugin, based on the requested feature type. These methods can be overridden to provide custom functionality. + +!!! info "Implementation" + Your custom plugin does not need to override the `get_ui_features` method. Instead, override one of the other methods to provide custom functionality. + +### UIFeature Return Type + +The `get_ui_features` method should return a list of `UIFeature` objects, which define the available user interface features for the plugin. The `UIFeature` class is defined as follows: + +::: plugin.base.ui.mixins.UIFeature + options: + show_bases: False + show_root_heading: False + show_root_toc_entry: False + show_sources: True + summary: False + members: [] + +Note that the *options* field contains fields which may be specific to a particular feature type - read the documentation below on each feature type for more information. + +### Dynamic Feature Loading + +Each of the provided feature types can be loaded dynamically by the plugin, based on the information provided in the API request. For example, the plugin can choose to show or hide a particular feature based on the user permissions, or the current state of the system. + +For examples of this dynamic feature loading, refer to the [sample plugin](#sample-plugin) implementation which demonstrates how to dynamically load custom panels based on the provided context. + +### Javascript Source Files + +The rendering function for the custom user interface features expect that the plugin provides a Javascript source file which contains the necessary code to render the custom content. The path to this file should be provided in the `source` field of the `UIFeature` object. + +Note that the `source` field can include the name of the function to be called (if this differs from the expected default function name). + +For example: + +``` +"source": "/static/plugins/my_plugin/my_plugin.js:my_custom_function" +``` + +## Available UI Feature Types + +The following user interface feature types are available: + +### Dashboard Items + +The InvenTree dashboard is a collection of "items" which are displayed on the main dashboard page. Custom dashboard items can be added to the dashboard by implementing the `get_ui_dashboard_items` method: + +::: plugin.base.ui.mixins.UserInterfaceMixin.get_ui_dashboard_items + options: + show_bases: False + show_root_heading: False + show_root_toc_entry: False + show_sources: True + summary: False + members: [] + +#### Dashboard Item Options + +The *options* field in the returned `UIFeature` object can contain the following properties: + +::: plugin.base.ui.mixins.CustomDashboardItemOptions + options: + show_bases: False + show_root_heading: False + show_root_toc_entry: False + show_sources: True + summary: False + members: [] + +#### Source Function + +The frontend code expects a path to a javascript file containing a function named `renderDashboardItem` which will be called to render the custom dashboard item. Note that this function name can be overridden by appending the function name in the `source` field of the `UIFeature` object. + +#### Example + +Refer to the [sample plugin](#sample-plugin) for an example of how to implement server side rendering for custom panels. + +### Panels + +Many of the pages in the InvenTree web interface are built using a series of "panels" which are displayed on the page. Custom panels can be added to these pages, by implementing the `get_ui_panels` method: + +::: plugin.base.ui.mixins.UserInterfaceMixin.get_ui_panels + options: + show_bases: False + show_root_heading: False + show_root_toc_entry: False + show_sources: True + summary: False + members: [] + +#### Panel Options + +The *options* field in the returned `UIFeature` object can contain the following properties: + +::: plugin.base.ui.mixins.CustomPanelOptions + options: + show_bases: False + show_root_heading: False + show_root_toc_entry: False + show_sources: True + summary: False + members: [] + +#### Source Function + +The frontend code expects a path to a javascript file containing a function named `renderPanel` which will be called to render the custom panel. Note that this function name can be overridden by appending the function name in the `source` field of the `UIFeature` object. + +#### Example + +Refer to the [sample plugin](#sample-plugin) for an example of how to implement server side rendering for custom panels. + +### Template Editors + +The `get_ui_template_editors` feature type can be used to provide custom template editors. + +::: plugin.base.ui.mixins.UserInterfaceMixin.get_ui_template_editors + options: + show_bases: False + show_root_heading: False + show_root_toc_entry: False + show_sources: True + summary: False + members: [] + +### Template previews + +The `get_ui_template_previews` feature type can be used to provide custom template previews: + +::: plugin.base.ui.mixins.UserInterfaceMixin.get_ui_template_previews + options: + show_bases: False + show_root_heading: False + show_root_toc_entry: False + show_sources: True + summary: False + members: [] + +## Plugin Context + +When rendering certain content in the user interface, the rendering functions are passed a `context` object which contains information about the current page being rendered. The type of the `context` object is defined in the `PluginContext` file: + +{{ includefile("src/frontend/src/components/plugins/PluginContext.tsx", title="Plugin Context", fmt="javascript") }} + +This context data can be used to provide additional information to the rendering functions, and can be used to dynamically render content based on the current state of the system. + +### Additional Context + +Note that additional context can be passed to the rendering functions by adding additional key-value pairs to the `context` field in the `UIFeature` return type (provided by the backend via the API). This field is optional, and can be used at the discretion of the plugin developer. + +## Sample Plugin + +A sample plugin which implements custom user interface functionality is provided in the InvenTree source code, which provides a full working example of how to implement custom user interface functionality. + +::: plugin.samples.integration.user_interface_sample.SampleUserInterfacePlugin + options: + show_bases: False + show_root_heading: False + show_root_toc_entry: False + show_source: True + members: [] diff --git a/docs/docs/faq.md b/docs/docs/faq.md index d8b51ecac6..98cd2cdb1b 100644 --- a/docs/docs/faq.md +++ b/docs/docs/faq.md @@ -14,37 +14,17 @@ InvenTree installation is not officially supported natively on Windows. However ### Command 'invoke' not found -If the `invoke` command does not work, it means that the [invoke](https://pypi.org/project/invoke/) python library has not been correctly installed. +If the `invoke` command does not work, it means that the invoke tool has not been correctly installed. -Update the installed python packages with PIP: +Refer to the [invoke installation guide](./start/invoke.md#installation) for more information. -``` -pip3 install -U --require-hashes -r requirements.txt -``` +### Can't find any collection named tasks + +Refer to the [invoke guide](./start/invoke.md#cant-find-any-collection-named-tasks) for more information. ### Invoke Version -If the installed version of invoke is too old, users may see error messages during the installation procedure, such as: - -- *'update' did not receive all required positional arguments!* -- *Function has keyword-only arguments or annotations* - -As per the [invoke guide](./start/intro.md#invoke), the minimum required version of Invoke is `{{ config.extra.min_invoke_version }}`. - -To determine the version of invoke you have installed, run either: - -``` -invoke --version -``` -``` -python -m invoke --version -``` - -If you are running an older version of invoke, ensure it is updated to the latest version: - -``` -pip install -U invoke -``` +If the installed version of invoke is too old, users may see error messages during the installation procedure. Refer to the [invoke guide](./start/invoke.md#minimum-version) for more information. ### No module named 'django' diff --git a/docs/docs/hooks.py b/docs/docs/hooks.py index bef816cabc..71ab4a963b 100644 --- a/docs/docs/hooks.py +++ b/docs/docs/hooks.py @@ -57,7 +57,7 @@ def fetch_rtd_versions(): versions = sorted(versions, key=lambda x: StrictVersion(x['version']), reverse=True) # Add "latest" version first - if not any((x['title'] == 'latest' for x in versions)): + if not any(x['title'] == 'latest' for x in versions): versions.insert( 0, { @@ -70,7 +70,7 @@ def fetch_rtd_versions(): # Ensure we have the 'latest' version current_version = os.environ.get('READTHEDOCS_VERSION', None) - if current_version and not any((x['title'] == current_version for x in versions)): + if current_version and not any(x['title'] == current_version for x in versions): versions.append({ 'version': current_version, 'title': current_version, @@ -82,7 +82,7 @@ def fetch_rtd_versions(): print('Discovered the following versions:') print(versions) - with open(output_filename, 'w') as file: + with open(output_filename, 'w', encoding='utf-8') as file: json.dump(versions, file, indent=2) @@ -100,7 +100,7 @@ def get_release_data(): # Release information has been cached to file print("Loading release information from 'releases.json'") - with open(json_file) as f: + with open(json_file, encoding='utf-8') as f: return json.loads(f.read()) # Download release information via the GitHub API @@ -127,7 +127,7 @@ def get_release_data(): page += 1 # Cache these results to file - with open(json_file, 'w') as f: + with open(json_file, 'w', encoding='utf-8') as f: print("Saving release information to 'releases.json'") f.write(json.dumps(releases)) @@ -173,7 +173,7 @@ def on_config(config, *args, **kwargs): # Add *all* readthedocs related keys readthedocs = {} - for key in os.environ.keys(): + for key in os.environ: if key.startswith('READTHEDOCS_'): k = key.replace('READTHEDOCS_', '').lower() readthedocs[k] = os.environ[key] diff --git a/docs/docs/order/purchase_order.md b/docs/docs/order/purchase_order.md index 7639ddcb03..349a145936 100644 --- a/docs/docs/order/purchase_order.md +++ b/docs/docs/order/purchase_order.md @@ -93,6 +93,14 @@ There are two options to mark items as "received": !!! note "Permissions" Marking line items as received requires the "Purchase order" ADD permission. +### Item Location + +When receiving items from a purchase order, the location of the items must be specified. There are multiple ways to specify the location: + +* **Order Destination**: The *destination* field of the purchase order can be set to a specific location. When receiving items, the location will default to the destination location. + +* **Line Item Location**: Each line item can have a specific location set. When receiving items, the location will default to the line item location. *Note: A destination specified at the line item level will override the destination specified at the order level.* + ### Received Items Each item marked as "received" is automatically converted into a stock item. diff --git a/docs/docs/report/helpers.md b/docs/docs/report/helpers.md index 3e8f8aff6f..6dc90fb7a6 100644 --- a/docs/docs/report/helpers.md +++ b/docs/docs/report/helpers.md @@ -130,8 +130,8 @@ The following keyword arguments are available to the `render_currency` function: | --- | --- | | currency | Specify the currency code to render in (will attempt conversion if different to provided currency) | | decimal_places | Specify the number of decimal places to render | -| min_decimal_places | Specify the minimum number of decimal places to render (ignored if *decimal_places* is specified) | -| max_decimal_places | Specify the maximum number of decimal places to render (ignored if *decimal_places* is specified) | +| min_decimal_places | Specify the minimum number of decimal places to render | +| max_decimal_places | Specify the maximum number of decimal places to render | | include_symbol | Include currency symbol in rendered value (default = True) | ## Maths Operations diff --git a/docs/docs/report/samples.md b/docs/docs/report/samples.md index d6dff5678b..ed00e5ec43 100644 --- a/docs/docs/report/samples.md +++ b/docs/docs/report/samples.md @@ -19,6 +19,7 @@ The following report templates are provided "out of the box" and can be used as | [Purchase Order](#purchase-order) | [PurchaseOrder](../order/purchase_order.md) | Purchase Order report | | [Return Order](#return-order) | [ReturnOrder](../order/return_order.md) | Return Order report | | [Sales Order](#sales-order) | [SalesOrder](../order/sales_order.md) | Sales Order report | +| [Sales Order Shipment](#sales-order-shipment) | [SalesOrderShipment](../order/sales_order.md) | Sales Order Shipment report | | [Stock Location](#stock-location) | [StockLocation](../stock/stock.md#stock-location) | Stock Location report | | [Test Report](#test-report) | [StockItem](../stock/stock.md#stock-item) | Test Report | @@ -42,6 +43,10 @@ The following report templates are provided "out of the box" and can be used as {{ templatefile("report/inventree_sales_order_report.html") }} +### Sales Order Shipment + +{{ templatefile("report/inventree_sales_order_shipment_report.html") }} + ### Stock Location {{ templatefile("report/inventree_stock_location_report.html") }} diff --git a/docs/docs/settings/global.md b/docs/docs/settings/global.md index 7de1186167..241ac74f0d 100644 --- a/docs/docs/settings/global.md +++ b/docs/docs/settings/global.md @@ -90,6 +90,8 @@ Configuration of barcode functionality: {{ globalsetting("BARCODE_WEBCAM_SUPPORT") }} {{ globalsetting("BARCODE_SHOW_TEXT") }} {{ globalsetting("BARCODE_GENERATION_PLUGIN") }} +{{ globalsetting("BARCODE_STORE_RESULTS") }} +{{ globalsetting("BARCODE_RESULTS_MAX_NUM") }} ### Pricing and Currency @@ -121,8 +123,6 @@ Configuration of report generation: {{ globalsetting("REPORT_DEFAULT_PAGE_SIZE") }} {{ globalsetting("REPORT_DEBUG_MODE") }} {{ globalsetting("REPORT_LOG_ERRORS") }} -{{ globalsetting("REPORT_ENABLE_TEST_REPORT") }} -{{ globalsetting("REPORT_ATTACH_TEST_REPORT") }} ### Parts @@ -188,6 +188,7 @@ Configuration of stock item options {{ globalsetting("STOCK_ENFORCE_BOM_INSTALLATION") }} {{ globalsetting("STOCK_ALLOW_OUT_OF_STOCK_TRANSFER") }} {{ globalsetting("TEST_STATION_DATA") }} +{{ globalsetting("TEST_UPLOAD_CREATE_TEMPLATE") }} ### Build Orders @@ -207,7 +208,6 @@ Refer to the [return order settings](../order/return_order.md#return-order-setti ### Plugin Settings - | Name | Description | Default | Units | | ---- | ----------- | ------- | ----- | {{ globalsetting("PLUGIN_ON_STARTUP") }} @@ -217,3 +217,4 @@ Refer to the [return order settings](../order/return_order.md#return-order-setti {{ globalsetting("ENABLE_PLUGINS_APP") }} {{ globalsetting("ENABLE_PLUGINS_SCHEDULE") }} {{ globalsetting("ENABLE_PLUGINS_EVENTS") }} +{{ globalsetting("ENABLE_PLUGINS_INTERFACE") }} diff --git a/docs/docs/start/accounts.md b/docs/docs/start/accounts.md new file mode 100644 index 0000000000..35c53f6453 --- /dev/null +++ b/docs/docs/start/accounts.md @@ -0,0 +1,49 @@ +--- +title: Account Management +--- + +## User Accounts + +By default, InvenTree does not ship with any user accounts. Configuring user accounts is the first step to login to the InvenTree server. + +### Administrator Account + +You can configure InvenTree to create an administrator account on the first run. This account will have full *superuser* access to the InvenTree server. + +This account is created when you first run the InvenTree server instance. The username / password for this account can be configured in the configuration file, or environment variables. + +!!! info "More Information" + For more information on configuring the administrator account, refer to the [configuration documentation](./config.md#administrator-account). + +### Create Superuser + +Another way to create an administrator account is to use the `superuser` command (via [invoke](./invoke.md)). This will create a new superuser account with the specified username and password. + +```bash +invoke superuser +``` + +Or, if you are running InvenTree in a Docker container: + +```bash +docker exec -rm -it inventree-server invoke superuser +``` + +### User Management + +Once you have created an administrator account, you can create and manage additional user accounts from the InvenTree web interface. + +## Password Management + +### Reset Password via Command Line + +If a password has been lost, and other backup options (such as email recovery) are unavailable, the system administrator can reset the password for a user account from the command line. + +Log into the machine running the InvenTree server, and run the following command (from the top-level source directory): + +```bash +cd src/backend/InvenTree +python ./manage.py changepassword +``` + +The system will prompt you to enter a new password for the specified user account. diff --git a/docs/docs/start/bare_dev.md b/docs/docs/start/bare_dev.md index fdfb02b4cc..41a96b4dd1 100644 --- a/docs/docs/start/bare_dev.md +++ b/docs/docs/start/bare_dev.md @@ -17,7 +17,7 @@ InvenTree includes a simple server application, suitable for use in a developmen To run the development server on a local machine, run the command: ``` -(env) invoke server +(env) invoke dev.server ``` This will launch the InvenTree web interface at `http://127.0.0.1:8000`. @@ -25,7 +25,7 @@ This will launch the InvenTree web interface at `http://127.0.0.1:8000`. A different port can be specified using the `-a` flag: ``` -(env) invoke server -a 127.0.0.1:8123 +(env) invoke dev.server -a 127.0.0.1:8123 ``` Serving on the address `127.0.0.1` means that InvenTree will only be available *on that computer*. The server will be accessible from a web browser on the same computer, but not from any other computers on the local network. @@ -35,12 +35,12 @@ Serving on the address `127.0.0.1` means that InvenTree will only be available * To enable access to the InvenTree server from other computers on a local network, you need to know the IP of the computer running the server. For example, if the server IP address is `192.168.120.1`: ``` -(env) invoke server -a 192.168.120.1:8000 +(env) invoke dev.server -a 192.168.120.1:8000 ``` ## Background Worker -The background task manager must also be started. The InvenTree server is already running in the foreground, so open a *new shell window* to start the server. +The [background task manager](./processes.md#background-worker) must also be started. The InvenTree server is already running in the foreground, so open a *new shell window* to start the server. ### Activate Virtual Environment @@ -55,4 +55,4 @@ source ./env/bin/activate (env) invoke worker ``` -This will start the background process manager in the current shell. +This will start an instance of the background worker in the current shell. diff --git a/docs/docs/start/bare_prod.md b/docs/docs/start/bare_prod.md index 761b324b91..4582eddec4 100644 --- a/docs/docs/start/bare_prod.md +++ b/docs/docs/start/bare_prod.md @@ -19,7 +19,7 @@ The InvenTree web server is hosted using [Gunicorn](https://gunicorn.org/). Guni ### Supervisor -[Supervisor](http://supervisord.org/) is a process control system which monitors and controls multiple background processes. It is used in the InvenTree production setup to ensure that the server and background worker processes are always running. +[Supervisor](http://supervisord.org/) is a process control system which monitors and controls multiple background processes. It is used in the InvenTree production setup to ensure that the [web server](./processes.md#web-server) and [background worker](./processes.md#background-worker) processes are always running. ## Gunicorn @@ -98,11 +98,12 @@ The InvenTree server (and background task manager) should now be running! In addition to the InvenTree server, you will need a method of delivering static and media files (this is *not* handled by the InvenTree server in a production environment). !!! info "Read More" - Refer to the [Serving Files](./serving_files.md) section for more details + Refer to the [proxy server documentation](./processes.md#proxy-server) for more details ### Next Steps -You (or your system administrator) may wish to perform further steps such as placing the InvenTree server behind a reverse-proxy such as [caddy](https://caddyserver.com/), or [nginx](https://www.nginx.com/). +You (or your system administrator) may wish to perform further steps such as placing the InvenTree server behind a [reverse proxy](./processes.md#proxy-server) such as [caddy](https://caddyserver.com/), or [nginx](https://www.nginx.com/). + As production environment options are many and varied, such tasks are outside the scope of this documentation. There are many great online tutorials about running django applications in production! diff --git a/docs/docs/start/config.md b/docs/docs/start/config.md index 5653b8a659..fab396c4d8 100644 --- a/docs/docs/start/config.md +++ b/docs/docs/start/config.md @@ -26,7 +26,7 @@ The InvenTree server tries to locate the `config.yaml` configuration file on sta The configuration file *template* can be found on [GitHub]({{ sourcefile("src/backend/InvenTree/config_template.yaml") }}), and is shown below: -{{ includefile("src/backend/InvenTree/config_template.yaml", "Configuration File Template", format="yaml") }} +{{ includefile("src/backend/InvenTree/config_template.yaml", "Configuration File Template", fmt="yaml") }} !!! info "Template File" The default configuration file (as defined by the template linked above) will be copied to the specified configuration file location on first run, if a configuration file is not found in that location. @@ -107,7 +107,22 @@ Depending on how your InvenTree installation is configured, you will need to pay | INVENTREE_USE_X_FORWARDED_HOST | use_x_forwarded_host | Use forwarded host header | `False` | | INVENTREE_USE_X_FORWARDED_PORT | use_x_forwarded_port | Use forwarded port header | `False` | | INVENTREE_SESSION_COOKIE_SECURE | cookie.secure | Enforce secure session cookies | `False` | -| INVENTREE_COOKIE_SAMESITE | cookie.samesite | Session cookie mode. Must be one of `Strict | Lax | None`. Refer to the [mozilla developer docs](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Set-Cookie) for more information. | `None` | +| INVENTREE_COOKIE_SAMESITE | cookie.samesite | Session cookie mode. Must be one of `Strict | Lax | None | False`. Refer to the [mozilla developer docs](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Set-Cookie) and the [django documentation]({% include "django.html" %}/ref/settings/#std-setting-SESSION_COOKIE_SAMESITE) for more information. | False | + +### Debug Mode + +Note that in [debug mode](./intro.md#debug-mode), some of the above settings are automatically adjusted to allow for easier development: + +| Setting | Value in Debug Mode | Description | +| --- | --- | --- | +| `INVENTREE_ALLOWED_HOSTS` | `*` | Allow all host in debug mode | +| `CSRF_TRUSTED_ORIGINS` | Value is appended to allow `http://*.localhost:*` | Allow all connections from localhost, for development purposes | +| `INVENTREE_COOKIE_SAMESITE` | `False` | Disable all same-site cookie checks in debug mode | +| `INVENTREE_SESSION_COOKIE_SECURE` | `False` | Disable secure session cookies in debug mode (allow non-https cookies) | + +### INVENTREE_COOKIE_SAMESITE vs INVENTREE_SESSION_COOKIE_SECURE + +Note that if you set the `INVENTREE_COOKIE_SAMESITE` to `None`, then `INVENTREE_SESSION_COOKIE_SECURE` is automatically set to `True` to ensure that the session cookie is secure! This means that the session cookie will only be sent over secure (https) connections. ### Proxy Settings @@ -264,12 +279,12 @@ InvenTree requires some external directories for storing files: | Environment Variable | Configuration File | Description | Default | | --- | --- | --- | --- | -| INVENTREE_STATIC_ROOT | static_root | [Static files](./serving_files.md#static-files) directory | *Not specified* | -| INVENTREE_MEDIA_ROOT | media_root | [Media files](./serving_files.md#media-files) directory | *Not specified* | +| INVENTREE_STATIC_ROOT | static_root | [Static files](./processes.md#static-files) directory | *Not specified* | +| INVENTREE_MEDIA_ROOT | media_root | [Media files](./processes.md#media-files) directory | *Not specified* | | INVENTREE_BACKUP_DIR | backup_dir | Backup files directory | *Not specified* | !!! tip "Serving Files" - Read the [Serving Files](./serving_files.md) section for more information on hosting *static* and *media* files + Read the [proxy server documentation](./processes.md#proxy-server) for more information on hosting *static* and *media* files ### Static File Storage @@ -354,6 +369,15 @@ The logo and custom messages can be changed/set: | INVENTREE_CUSTOMIZE | customize.navbar_message | Custom message for navbar | *Not specified* | | INVENTREE_CUSTOMIZE | customize.hide_pui_banner | Disable PUI banner | False | +The INVENTREE_CUSTOMIZE environment variable must contain a json object with the keys from the table above and +the wanted values. Example: + +``` +INVENTREE_CUSTOMIZE={"login_message":"Hallo Michi","hide_pui_banner":"True"} +``` + +This example removes the PUI banner and sets a login message. Take care of the double quotes. + If you want to remove the InvenTree branding as far as possible from your end-user also check the [global server settings](../settings/global.md#server-settings). !!! info "Custom Splash Screen Path" diff --git a/docs/docs/start/docker.md b/docs/docs/start/docker.md index 7ab8c88563..27863f8173 100644 --- a/docs/docs/start/docker.md +++ b/docs/docs/start/docker.md @@ -87,7 +87,7 @@ Plugins are supported natively when running under docker. There are two ways to The production docker compose configuration outlined on this page uses [Caddy](https://caddyserver.com/) to serve static files and media files. If you change this configuration, you will need to ensure that static and media files are served correctly. !!! info "Read More" - Refer to the [Serving Files](./serving_files.md) section for more details + Refer to the [proxy server documentation](./processes.md#proxy-server) for more details ### SSL Certificates @@ -99,45 +99,11 @@ The example docker compose file launches the following containers: | Container | Description | | --- | --- | -| inventree-db | PostgreSQL database | -| inventree-server | Gunicorn web server | -| inventree-worker | django-q background worker | -| inventree-proxy | Caddy file server and reverse proxy | -| *inventree-cache* | *redis cache (optional)* | - -#### PostgreSQL Database - -A PostgreSQL database container which requires a username:password combination (which can be changed). This uses the official [PostgreSQL image](https://hub.docker.com/_/postgres). - -#### Web Server - -Runs an InvenTree web server instance, powered by a Gunicorn web server. - -#### Background Worker - -Runs the InvenTree background worker process. This spins up a second instance of the *inventree* container, with a different entrypoint command. - -#### Proxy Server - -Caddy working as a reverse proxy, separating requests for static and media files, and directing everything else to Gunicorn. - -This container uses the official [caddy image](https://hub.docker.com/_/caddy). - -!!! info "Nginx Proxy" - An alternative is to run nginx as the reverse proxy. A sample configuration file is provided in the `./contrib/container/` source directory. - -#### Redis Cache - -Redis is used as cache storage for the InvenTree server. This provides a more performant caching system which can useful in larger installations. - -This container uses the official [redis image](https://hub.docker.com/_/redis). - -!!! info "Redis on Docker" - Docker adds an additional network layer - that might lead to lower performance than bare metal. - To optimize and configure your redis deployment follow the [official docker guide](https://redis.io/docs/getting-started/install-stack/docker/#configuration). - -!!! tip "Enable Cache" - While a redis container is provided in the default configuration, by default it is not enabled in the Inventree server. You can enable redis cache support by following the [caching configuration guide](./config.md#caching) +| inventree-db | [PostgreSQL database](./processes.md#database) | +| inventree-server | [InvenTree web server](./processes.md#web-server) | +| inventree-worker | [django-q background worker](./processes.md#background-worker) | +| inventree-proxy | [Caddy file server and reverse proxy](./processes.md#proxy-server) | +| *inventree-cache* | [*redis cache (optional)*](./processes.md#cache-server) | ### Data Volume diff --git a/docs/docs/start/docker_install.md b/docs/docs/start/docker_install.md index e2c6d16b26..aa7f9b3f0d 100644 --- a/docs/docs/start/docker_install.md +++ b/docs/docs/start/docker_install.md @@ -37,8 +37,11 @@ The following files required for this setup are provided with the InvenTree sour Download these files to a directory on your local machine. +!!! warning "File Extensions" + If your computer adds *.txt* extensions to any of the downloaded files, rename the file and remove the added extension before continuing! + !!! success "Working Directory" - This tutorial assumes you are working from a direction where all of these files are located. + This tutorial assumes you are working from a directory where all of these files are located. !!! tip "No Source Required" For a production setup you do not need the InvenTree source code. Simply download the three required files from the links above! @@ -101,10 +104,11 @@ docker compose up -d This command launches the following containers: -- `inventree-db` - PostgreSQL database -- `inventree-server` - InvenTree web server -- `inventree-worker` - Background worker -- `inventree-proxy` - Caddy reverse proxy +- `inventree-db` - [PostgreSQL database](./processes.md#database) +- `inventree-server` - [InvenTree web server](./processes.md#web-server) +- `inventree-worker` - [Background worker](./processes.md#background-worker) +- `inventree-proxy` - [Caddy reverse proxy](./processes.md#proxy-server) +- `inventree-cache` - [Redis cache](./processes.md#cache-server) !!! success "Up and Running!" You should now be able to view the InvenTree login screen at [http://inventree.localhost](http://inventree.localhost) (or whatever custom domain you have configured in the `.env` file). @@ -202,7 +206,7 @@ Any persistent files generated by the Caddy container (such as certificates, etc To quickly get started with a [demo dataset](../demo.md), you can run the following command: ``` -docker compose run --rm inventree-server invoke setup-test -i +docker compose run --rm inventree-server invoke dev.setup-test -i ``` This will install the InvenTree demo dataset into your instance. @@ -210,7 +214,7 @@ This will install the InvenTree demo dataset into your instance. To start afresh (and completely remove the existing database), run the following command: ``` -docker compose run --rm inventree-server invoke delete-data +docker compose run --rm inventree-server invoke dev.delete-data ``` ## Install custom packages diff --git a/docs/docs/start/install.md b/docs/docs/start/install.md index 6591d68852..23cb5aae00 100644 --- a/docs/docs/start/install.md +++ b/docs/docs/start/install.md @@ -66,14 +66,14 @@ In addition to the location where the InvenTree source code is located, you will InvenTree requires a directory for storage of [static files](./config.md#static-file-storage). !!! info "Read More" - Refer to the [Serving Files](./serving_files.md) section for more details + Refer to the [proxy server documentation](./processes.md#proxy-server) for more details #### Media Files InvenTree requires a directory for storage of [user uploaded files](./config.md#uploaded-file-storage) !!! info "Read More" - Refer to the [Serving Files](./serving_files.md) section for more details + Refer to the [proxy server documentation](./processes.md#proxy-server) for more details #### Backup Directory diff --git a/docs/docs/start/installer.md b/docs/docs/start/installer.md index 295766e331..6676124478 100644 --- a/docs/docs/start/installer.md +++ b/docs/docs/start/installer.md @@ -132,11 +132,14 @@ To update InvenTree run `apt install --only-upgrade inventree` - this might need ## Controlling InvenTree ### Services + InvenTree installs multiple services that can be controlled with your local system runner (`service` or `systemctl`). -The service `inventree` controls everything, `inventree-web` the (internal) webserver and `inventree-worker` the background worker(s). +The service `inventree` controls everything, `inventree-web` (the [InvenTree web server](./processes.md#web-server)) and `inventree-worker` the [background worker(s)](./processes.md#background-worker). More instances of the worker can be instantiated from the command line. This is only meant for advanced users. + This sample script launches 3 services. By default, 1 is launched. + ```bash inventree scale worker=3 ``` diff --git a/docs/docs/start/intro.md b/docs/docs/start/intro.md index 9b3253aab8..228641b55b 100644 --- a/docs/docs/start/intro.md +++ b/docs/docs/start/intro.md @@ -29,30 +29,7 @@ Independent of the preferred installation method, InvenTree provides a number of ## System Components -The InvenTree server ecosystem consists of the following components: - -### Database - -A persistent database is required for data storage. By default, InvenTree is configured to use [PostgreSQL](https://www.postgresql.org/) - and this is the recommended database backend to use. However, InvenTree can also be configured to connect to any database backend [supported by Django]({% include "django.html" %}/ref/databases/) - - -### Web Server - -The bulk of the InvenTree code base supports the custom web server application. The web server application services user requests and facilitates database access. The webserver provides access to the [API](../api/api.md) for performing database query actions. - -InvenTree uses [Gunicorn](https://gunicorn.org/) as the web server - a Python WSGI HTTP server. - -### Background Tasks - -A separate application handles management of [background tasks](../settings/tasks.md), separate to user-facing web requests. The background task manager is required to perform asynchronous tasks, such as sending emails, generating reports, and other long-running tasks. - -InvenTree uses [django-q2](https://django-q2.readthedocs.io/en/master/) as the background task manager. - -### File Storage - -Uploaded *media* files (images, attachments, reports, etc) and *static* files (javascript, html) are stored to a persistent storage volume. A *file server* is required to serve these files to the user. - -InvenTree uses [Caddy](https://caddyserver.com/) as a file server, which is configured to serve both *static* and *media* files. Additionally, Caddy provides SSL termination and reverse proxy services. +The InvenTree software stack is composed of multiple components, each of which is required for a fully functional server environment. Your can read more about the [InvenTree processes here](./processes.md). ## OS Requirements @@ -70,25 +47,7 @@ InvenTree requires a minimum Python version of {{ config.extra.min_python_versio ### Invoke -InvenTree makes use of the [invoke](https://www.pyinvoke.org/) python toolkit for performing various administrative actions. - -!!! warning "Invoke Version" - InvenTree requires invoke version {{ config.extra.min_invoke_version }} or newer. Some platforms may be shipped with older versions of invoke! - -!!! tip "Updating Invoke" - To update your invoke version, run `pip install -U invoke` - -To display a list of the available InvenTree administration actions, run the following commands from the top level source directory: - -``` -invoke --list -``` - -This provides a list of the available invoke commands - also displayed below: - -``` -{{ invoke_commands() }} -``` +InvenTree makes use of the [invoke](https://www.pyinvoke.org/) python toolkit for performing various administrative actions. You can read [more about out use of the invoke tool here](./invoke.md) ### Virtual Environment @@ -150,4 +109,4 @@ So, for a production setup, you should set `INVENTREE_DEBUG=false` in the [confi Turning off DEBUG mode creates further work for the system administrator. In particular, when running in DEBUG mode, the InvenTree web server natively manages *static* and *media* files, which means that the InvenTree server can run "monolithically" without the need for a separate web server. !!! info "Read More" - Refer to the [Serving Files](./serving_files.md) section for more details + Refer to the [proxy server documentation](./processes.md#proxy-server) for more details diff --git a/docs/docs/start/invoke.md b/docs/docs/start/invoke.md new file mode 100644 index 0000000000..0ec4221724 --- /dev/null +++ b/docs/docs/start/invoke.md @@ -0,0 +1,129 @@ +--- +title: Invoke Tool +--- + +## Invoke Tool + +InvenTree uses the [invoke](https://www.pyinvoke.org/) tool to manage various system administration tasks. Invoke is a powerful python-based task execution tool, which allows for the creation of custom tasks and command-line utilities. + +### Installation + +InvenTree setup and administration requires that the invoke tool is installed. This is usually installed automatically as part of the InvenTree installation process - however (if you are configuring InvenTree from source) you may need to install it manually. + +To install the invoke tool, run the following command: + +``` +pip install -U invoke +``` + +### Minimum Version + +The minimum required version of the invoke tool is `{{ config.extra.min_invoke_version }}`. + +To determine the version of invoke you have installed, run either: + +``` +invoke --version +``` +``` +python -m invoke --version +``` + +If you are running an older version of invoke, ensure it is updated to the latest version: + +``` +pip install -U invoke +``` + +### Running from Command Line + +To run the `invoke` tool from the command line, you must be in the top-level InvenTree source directory. This is the directory that contains the [tasks.py]({{ sourcefile("tasks.py") }}) file. + +### Running in Docker Mode + +If you have installed InvenTree via [docker](./docker_install.md), then you need to ensure that the `invoke` commands are called from within the docker container context. + +For example, to run the `update` task, you might use the following command to run the `invoke` command - using the `docker compose` tool. + +``` +docker compose run --rm inventree-server invoke update +``` + +!!! note "Docker Compose Directory" + The `docker compose` command should be run from the directory where the `docker-compose.yml` file is located. + +Alternatively, to manually run the command within the environment of the running docker container: + +``` +docker exec -it inventree-server invoke update +``` + +!!! note "Container Name" + The container name may be different depending on how you have configured the docker environment. + +### Running in Installer Mode + +If you have installed InvenTree using the [package installer](./installer.md), then you need to prefix all `invoke` commands with `inventree run`. + +For example, to run the `update` task, use: + +``` +inventree run invoke update +``` + +## Available Tasks + +To display a list of the available InvenTree administration actions, run the following commands from the top level source directory: + +``` +invoke --list +``` + +This provides a list of the available invoke commands - also displayed below: + +``` +{{ invoke_commands() }} +``` + +### Task Information + +Each task has a brief description of its purpose, which is displayed when running the `invoke --list` command. To find more detailed information about a specific task, run the command with the `--help` flag. + +For example, to find more information about the `update` task, run: + +``` +invoke update --help +``` + +### Internal Tasks + +Tasks with the `int.` prefix are internal tasks, and are not intended for general use. These are called by other tasks, and should generally not be called directly. + +### Developer Tasks + +Tasks with the `dev.` prefix are tasks intended for InvenTree developers, and are also not intended for general use. + +## Common Issues + +Below are some common issues that users may encounter when using the `invoke` tool, and how to resolve them. + +### Command 'invoke' not found + +If the `invoke` command does not work, it means that the invoke tool has not been [installed correctly](#installation). + +### Invoke Version + +If the installed version of invoke is too old, users may see error messages during the installation procedure, such as: + +- *'update' did not receive all required positional arguments!* +- *Function has keyword-only arguments or annotations* + +Ensure that the installed version of invoke is [up to date](#minimum-version). + +### Can't find any collection named 'tasks' + +It means that the `invoke` tool is not able to locate the InvenTree task collection. + +- If running in docker, ensure that you are running the `invoke` command from within the [docker container](#running-in-docker-mode) +- If running in installer mode, ensure that you are running the `invoke` command with the [correct prefix](#running-in-installer-mode) +- If running via command line, ensure that you are running the `invoke` command from the [correct directory](#running-from-command-line) diff --git a/docs/docs/start/processes.md b/docs/docs/start/processes.md new file mode 100644 index 0000000000..de74df2937 --- /dev/null +++ b/docs/docs/start/processes.md @@ -0,0 +1,103 @@ +--- +title: InvenTree Processes +--- + +## InvenTree Processes + +InvenTree is a complex application, and there are a number of processes which must be running in order for the system to operate correctly. Typically, these processes are started automatically when the InvenTree application stack is launched. However, in some cases, it may be necessary to start these processes manually. + +System administrators should be aware of the following processes when configuring an InvenTree installation: + +### Database + +At the core of the InvenTree application is the SQL database. The database is responsible for storing all of the persistent data which is used by the InvenTree application. + +InvenTree supports a [number of database backends]({% include "django.html" %}/ref/databases) - which typically require their own process to be running. + +Refer to the [database configuration guide](./config.md#database-options) for more information on selecting and configuring the database backend. + +In running InvenTree via [docker compose](./docker_install.md), the database process is managed by the `inventree-db` service which provides a [Postgres docker container](https://hub.docker.com/_/postgres). + +### Web Server + +The InvenTree web server is responsible for serving the InvenTree web interface to users. The web server is a [Django](https://www.djangoproject.com/) application, which is run using the [Gunicorn](https://gunicorn.org/) WSGI server. + +The web server interfaces with the backend database and provides a [REST API](../api/api.md) (via the [Django REST framework](https://www.django-rest-framework.org/)) which is used by the frontend web interface. + +In running InvenTree via [docker compose](./docker_install.md), the web server process is managed by the `inventree-server` service, which runs from a custom docker image. + +### Proxy Server + +In a production installation, the InvenTree web server application *does not* provide hosting of static files, or user-uploaded (media) files. Instead, these files should be served by a separate web server, such as [Caddy](https://caddyserver.com/), [Nginx](https://www.nginx.com/), or [Apache](https://httpd.apache.org/). + +!!! info "Debug Mode" + When running in [production mode](./bare_prod.md) (i.e. the `INVENTREE_DEBUG` flag is disabled), a separate web server is required for serving *static* and *media* files. In `DEBUG` mode, the django webserver facilitates delivery of *static* and *media* files, but this is explicitly not suitable for a production environment. + +!!! tip "Read More" + You can find further information in the [django documentation]({% include "django.html" %}/howto/static-files/deployment/). + +A proxy server is required to store and serve static files (such as images, documents, etc) which are used by the InvenTree application. As django is not designed to serve static files in a production environment, a separate file server is required. For our docker compose setup, we use the `inventree-proxy` service, which runs a [Caddy](https://caddyserver.com/) proxy server to serve static files. + +In addition to serving static files, the proxy server also provides a reverse proxy to the InvenTree web server, allowing the InvenTree web interface to be accessed via a standard HTTP/HTTPS port. + +Further, it provides an authentication endpoint for accessing files in the `/static/` and `/media/` directories. + +Finally, it provides a [Let's Encrypt](https://letsencrypt.org/) endpoint for automatic SSL certificate generation and renewal. + +#### Static Files + +Static files can be served without any need for authentication. In fact, they must be accessible *without* authentication, otherwise the unauthenticated views (such as the login screen) will not function correctly. + +#### Media Files + +It is highly recommended that the *media* files are served behind an authentication layer. This is because the media files are user-uploaded, and may contain sensitive information. Most modern web servers provide a way to serve files behind an authentication layer. + +#### Example Configuration + +The [docker production example](./docker.md) provides an example using [Caddy](https://caddyserver.com) to serve *static* and *media* files, and redirecting other requests to the InvenTree web server itself. + +Caddy is a modern web server which is easy to configure and provides a number of useful features, including automatic SSL certificate generation. + +#### Alternatives to Caddy + +An alternative is to run nginx as the reverse proxy. A sample configuration file is provided in the `./contrib/container/` source directory. + +#### Integrating with Existing Proxy + +You may wish to integrate the InvenTree web server with an existing reverse proxy server. This is possible, but requires careful configuration to ensure that the static and media files are served correctly. + +*Note: A custom configuration of the proxy server is outside the scope of this documentation!* + +### Background Worker + +The InvenTree background worker is responsible for handling [asynchronous tasks](../settings/tasks.md) which are not suitable for the main web server process. This includes tasks such as sending emails, generating reports, and other long-running tasks. + +InvenTree uses the [django-q2](https://django-q2.readthedocs.io/en/master/) package to manage background tasks. + +The background worker process is managed by the `inventree-worker` service in the [docker compose](./docker_install.md) setup. Note that this services runs a duplicate copy of the `inventree-server` container, but with a different entrypoint command which starts the background worker process. + +#### Important Information + +If the background worker process is not running, InvenTree will not be able to perform background tasks. This can lead to issues such as emails not being sent, or reports not being generated. Additionally, certain data may not be updated correctly if the background worker is not running. + +!!! warning "Background Worker" + The background worker process is a critical part of the InvenTree application stack. It is important that this process is running correctly in order for the InvenTree application to operate correctly. + +#### Limitations + +If the [cache server](#cache-server) is not running, the background worker will be limited to running a single threaded worker. This is because the background worker uses the cache server to manage task locking, and without a global cache server to communicate between processes, concurrency issues can occur. + +### Cache Server + +The InvenTree cache server is used to store temporary data which is shared between the InvenTree web server and the background worker processes. The cache server is also used to store task information, and to manage task locking between the background worker processes. + +Using a cache server can significantly improve the performance of the InvenTree application, as it reduces the need to query the database for frequently accessed data. + +InvenTree uses the [Redis](https://redis.io/) cache server to manage cache data. When running in docker, we use the official [redis image](https://hub.docker.com/_/redis). + +!!! info "Redis on Docker" + Docker adds an additional network layer - that might lead to lower performance than bare metal. + To optimize and configure your redis deployment follow the [official docker guide](https://redis.io/docs/getting-started/install-stack/docker/#configuration). + +!!! tip "Enable Cache" + While a redis container is provided in the default configuration, by default it is not enabled in the Inventree server. You can enable redis cache support by following the [caching configuration guide](./config.md#caching) diff --git a/docs/docs/start/serving_files.md b/docs/docs/start/serving_files.md deleted file mode 100644 index a641abda09..0000000000 --- a/docs/docs/start/serving_files.md +++ /dev/null @@ -1,29 +0,0 @@ ---- -title: Serving Static and Media Files ---- - -## Serving Files - -In a production installation, the InvenTree web server application *does not* provide hosting of static files, or user-uploaded (media) files. Instead, these files should be served by a separate web server, such as [Caddy](https://caddyserver.com/), [Nginx](https://www.nginx.com/), or [Apache](https://httpd.apache.org/). - -!!! info "Debug Mode" - When running in [production mode](./bare_prod.md) (i.e. the `INVENTREE_DEBUG` flag is disabled), a separate web server is required for serving *static* and *media* files. In `DEBUG` mode, the django webserver facilitates delivery of *static* and *media* files, but this is explicitly not suitable for a production environment. - -!!! tip "Read More" - You can find further information in the [django documentation]({% include "django.html" %}/howto/static-files/deployment/). - -There are *many* different ways that a sysadmin might wish to handle this - and it depends on your particular installation requirements. - -### Static Files - -Static files can be served without any need for authentication. In fact, they must be accessible *without* authentication, otherwise the unauthenticated views (such as the login screen) will not function correctly. - -### Media Files - -It is highly recommended that the *media* files are served behind an authentication layer. This is because the media files are user-uploaded, and may contain sensitive information. Most modern web servers provide a way to serve files behind an authentication layer. - -### Example Configuration - -The [docker production example](./docker.md) provides an example using [Caddy](https://caddyserver.com) to serve *static* and *media* files, and redirecting other requests to the InvenTree web server itself. - -Caddy is a modern web server which is easy to configure and provides a number of useful features, including automatic SSL certificate generation. diff --git a/docs/extract_schema.py b/docs/extract_schema.py index 1ff883efb9..1a781d76c5 100644 --- a/docs/extract_schema.py +++ b/docs/extract_schema.py @@ -46,7 +46,7 @@ def top_level_path(path: str) -> str: key = path.split('/')[1] - if key in SPECIAL_PATHS.keys(): + if key in SPECIAL_PATHS: return key return GENERAL_PATH @@ -54,9 +54,7 @@ def top_level_path(path: str) -> str: def generate_schema_file(key: str) -> None: """Generate a schema file for the provided key.""" - description = ( - SPECIAL_PATHS[key] if key in SPECIAL_PATHS else 'General API Endpoints' - ) + description = SPECIAL_PATHS.get(key, 'General API Endpoints') output = f""" --- @@ -75,7 +73,7 @@ def generate_schema_file(key: str) -> None: print('Writing schema file to:', output_file) - with open(output_file, 'w') as f: + with open(output_file, 'w', encoding='utf-8') as f: f.write(output) @@ -121,7 +119,7 @@ def generate_index_file(version: str): print('Writing index file to:', output_file) - with open(output_file, 'w') as f: + with open(output_file, 'w', encoding='utf-8') as f: f.write(output) @@ -173,7 +171,7 @@ def parse_api_file(filename: str): The intent is to make the API schema easier to peruse on the documentation. """ - with open(filename, 'r') as f: + with open(filename, encoding='utf-8') as f: data = yaml.safe_load(f) paths = data['paths'] @@ -213,7 +211,7 @@ def parse_api_file(filename: str): output_file = os.path.abspath(output_file) - with open(output_file, 'w') as f: + with open(output_file, 'w', encoding='utf-8') as f: yaml.dump(output, f) # Generate a markdown file for the schema diff --git a/docs/main.py b/docs/main.py index b09b8b0da2..84b91f7ad8 100644 --- a/docs/main.py +++ b/docs/main.py @@ -16,7 +16,7 @@ global USER_SETTINGS here = os.path.dirname(__file__) settings_file = os.path.join(here, 'inventree_settings.json') -with open(settings_file, 'r') as sf: +with open(settings_file, encoding='utf-8') as sf: settings = json.load(sf) GLOBAL_SETTINGS = settings['global'] @@ -27,7 +27,7 @@ def get_repo_url(raw=False): """Return the repository URL for the current project.""" mkdocs_yml = os.path.join(os.path.dirname(__file__), 'mkdocs.yml') - with open(mkdocs_yml, 'r') as f: + with open(mkdocs_yml, encoding='utf-8') as f: mkdocs_config = yaml.safe_load(f) repo_name = mkdocs_config['repo_name'] @@ -47,7 +47,7 @@ def check_link(url) -> bool: # Keep a local cache file of URLs we have already checked if os.path.exists(CACHE_FILE): - with open(CACHE_FILE, 'r') as f: + with open(CACHE_FILE, encoding='utf-8') as f: cache = f.read().splitlines() if url in cache: @@ -59,7 +59,7 @@ def check_link(url) -> bool: response = requests.head(url, timeout=5000) if response.status_code == 200: # Update the cache file - with open(CACHE_FILE, 'a') as f: + with open(CACHE_FILE, 'a', encoding='utf-8') as f: f.write(f'{url}\n') return True @@ -177,7 +177,7 @@ def define_env(env): assert subprocess.call(command, shell=True) == 0 - with open(output, 'r') as f: + with open(output, encoding='utf-8') as f: content = f.read() return content @@ -200,12 +200,13 @@ def define_env(env): return assets @env.macro - def includefile(filename: str, title: str, format: str = ''): + def includefile(filename: str, title: str, fmt: str = ''): """Include a file in the documentation, in a 'collapse' block. Arguments: - filename: The name of the file to include (relative to the top-level directory) - title: + - fmt: """ here = os.path.dirname(__file__) path = os.path.join(here, '..', filename) @@ -214,11 +215,11 @@ def define_env(env): if not os.path.exists(path): raise FileNotFoundError(f'Required file {path} does not exist.') - with open(path, 'r') as f: + with open(path, encoding='utf-8') as f: content = f.read() data = f'??? abstract "{title}"\n\n' - data += f' ```{format}\n' + data += f' ```{fmt}\n' data += textwrap.indent(content, ' ') data += '\n\n' data += ' ```\n\n' @@ -233,15 +234,15 @@ def define_env(env): 'src', 'backend', 'InvenTree', 'report', 'templates', filename ) - return includefile(fn, f'Template: {base}', format='html') + return includefile(fn, f'Template: {base}', fmt='html') @env.macro def rendersetting(setting: dict): """Render a provided setting object into a table row.""" name = setting['name'] description = setting['description'] - default = setting.get('default', None) - units = setting.get('units', None) + default = setting.get('default') + units = setting.get('units') return f'| {name} | {description} | {default if default is not None else ""} | {units if units is not None else ""} |' diff --git a/docs/mkdocs.yml b/docs/mkdocs.yml index 059a7fb10b..f341733627 100644 --- a/docs/mkdocs.yml +++ b/docs/mkdocs.yml @@ -88,6 +88,7 @@ nav: - Security: security.md - Install: - Introduction: start/intro.md + - Processes: start/processes.md - Configuration: start/config.md - Docker: - Introduction: start/docker.md @@ -97,8 +98,9 @@ nav: - Installer: start/installer.md - Production: start/bare_prod.md - Development: start/bare_dev.md - - Serving Files: start/serving_files.md + - User Accounts: start/accounts.md - Data Backup: start/backup.md + - Invoke: start/invoke.md - Migrating Data: start/migrate.md - Advanced Topics: start/advanced.md - Parts: @@ -213,6 +215,7 @@ nav: - Schedule Mixin: extend/plugins/schedule.md - Settings Mixin: extend/plugins/settings.md - URL Mixin: extend/plugins/urls.md + - User Interface Mixin: extend/plugins/ui.md - Validation Mixin: extend/plugins/validation.md - Machines: - Overview: extend/machines/overview.md diff --git a/docs/mlc_config.json b/docs/mlc_config.json index 4146cd4cb2..f9f3bb78d2 100644 --- a/docs/mlc_config.json +++ b/docs/mlc_config.json @@ -6,6 +6,9 @@ { "pattern": "http://localhost" }, + { + "pattern": "https://localhost:5173/" + }, { "pattern": "http://127.0.0.1" }, @@ -14,6 +17,9 @@ }, { "pattern": "https://www.reddit.com/r/InvenTree/" + }, + { + "pattern": "https://opensource.org/license/MIT" } ] } diff --git a/docs/requirements.in b/docs/requirements.in index a2442f3814..eb765da8d6 100644 --- a/docs/requirements.in +++ b/docs/requirements.in @@ -1,4 +1,4 @@ -mkdocs==1.6.0 +mkdocs==1.6.1 mkdocs-macros-plugin>=0.7,<2.0 mkdocs-material>=9.0,<10.0 mkdocs-git-revision-date-localized-plugin>=1.1,<2.0 diff --git a/docs/requirements.txt b/docs/requirements.txt index 5968de15d8..e08a63c3a2 100644 --- a/docs/requirements.txt +++ b/docs/requirements.txt @@ -158,6 +158,12 @@ h11==0.14.0 \ --hash=sha256:8f19fbbe99e72420ff35c00b27a34cb9937e902a8b810e2c88300c6f0a3b699d \ --hash=sha256:e3fe4ac4b851c468cc8363d500db52c2ead036020723024a109d37346efaa761 # via httpcore +hjson==3.1.0 \ + --hash=sha256:55af475a27cf83a7969c808399d7bccdec8fb836a07ddbd574587593b9cdcf75 \ + --hash=sha256:65713cdcf13214fb554eb8b4ef803419733f4f5e551047c9b711098ab7186b89 + # via + # mkdocs-macros-plugin + # super-collections httpcore==1.0.5 \ --hash=sha256:34a38e2f9291467ee3b44e89dd52615370e152954ba21721378a87b2960f7a61 \ --hash=sha256:421f18bac248b25d310f3cacd198d55b8e6125c107797b609ff9b7a6ba7991b5 @@ -173,9 +179,9 @@ idna==3.7 \ # anyio # httpx # requests -importlib-metadata==8.2.0 \ - --hash=sha256:11901fa0c2f97919b288679932bb64febaeacf289d18ac84dd68cb2e74213369 \ - --hash=sha256:72e8d4399996132204f9a16dcc751af254a48f8d1b20b9ff0f98d4a8f901e73d +importlib-metadata==8.5.0 \ + --hash=sha256:45e54197d28b7a7f1559e60b95e7c567032b602131fbd588f1497f47880aa68b \ + --hash=sha256:71522656f0abace1d072b9e5481a48f07c138e00f079c38c8f883823f9c26bd7 # via # markdown # mkdocs @@ -280,9 +286,9 @@ mergedeep==1.3.4 \ # via # mkdocs # mkdocs-get-deps -mkdocs==1.6.0 \ - --hash=sha256:1eb5cb7676b7d89323e62b56235010216319217d4af5ddc543a91beb8d125ea7 \ - --hash=sha256:a73f735824ef83a4f3bcb7a231dcab23f5a838f88b7efc54a0eef5fbdbc3c512 +mkdocs==1.6.1 \ + --hash=sha256:7b432f01d928c084353ab39c57282f29f92136665bdd6abf7c1ec8d822ef86f2 \ + --hash=sha256:db91759624d1647f3f34aa0c3f327dd2601beae39a366d6e064c03468d35c20e # via # -r docs/requirements.in # mkdocs-autorefs @@ -293,29 +299,29 @@ mkdocs==1.6.0 \ # mkdocs-simple-hooks # mkdocstrings # neoteroi-mkdocs -mkdocs-autorefs==1.0.1 \ - --hash=sha256:aacdfae1ab197780fb7a2dac92ad8a3d8f7ca8049a9cbe56a4218cd52e8da570 \ - --hash=sha256:f684edf847eced40b570b57846b15f0bf57fb93ac2c510450775dcf16accb971 +mkdocs-autorefs==1.2.0 \ + --hash=sha256:a86b93abff653521bda71cf3fc5596342b7a23982093915cb74273f67522190f \ + --hash=sha256:d588754ae89bd0ced0c70c06f58566a4ee43471eeeee5202427da7de9ef85a2f # via mkdocstrings mkdocs-get-deps==0.2.0 \ --hash=sha256:162b3d129c7fad9b19abfdcb9c1458a651628e4b1dea628ac68790fb3061c60c \ --hash=sha256:2bf11d0b133e77a0dd036abeeb06dec8775e46efa526dc70667d8863eefc6134 # via mkdocs -mkdocs-git-revision-date-localized-plugin==1.2.7 \ - --hash=sha256:2f83b52b4dad642751a79465f80394672cbad022129286f40d36b03aebee490f \ - --hash=sha256:d2b30ccb74ec8e118298758d75ae4b4f02c620daf776a6c92fcbb58f2b78f19f +mkdocs-git-revision-date-localized-plugin==1.3.0 \ + --hash=sha256:439e2f14582204050a664c258861c325064d97cdc848c541e48bb034a6c4d0cb \ + --hash=sha256:c99377ee119372d57a9e47cff4e68f04cce634a74831c06bc89b33e456e840a1 # via -r docs/requirements.in -mkdocs-include-markdown-plugin==6.2.2 \ - --hash=sha256:d293950f6499d2944291ca7b9bc4a60e652bbfd3e3a42b564f6cceee268694e7 \ - --hash=sha256:f2bd5026650492a581d2fd44be6c22f90391910d76582b96a34c264f2d17875d +mkdocs-include-markdown-plugin==7.0.0 \ + --hash=sha256:a8eac8f2e6aa391d82d1d5e473b819b52393d91464060c02db5741834fe9008b \ + --hash=sha256:bf8d19245ae3fb2eea395888e80c60bc91806a0d879279707d707896c24319c3 # via -r docs/requirements.in -mkdocs-macros-plugin==1.0.5 \ - --hash=sha256:f60e26f711f5a830ddf1e7980865bf5c0f1180db56109803cdd280073c1a050a \ - --hash=sha256:fe348d75f01c911f362b6d998c57b3d85b505876dde69db924f2c512c395c328 +mkdocs-macros-plugin==1.3.7 \ + --hash=sha256:02432033a5b77fb247d6ec7924e72fc4ceec264165b1644ab8d0dc159c22ce59 \ + --hash=sha256:17c7fd1a49b94defcdb502fd453d17a1e730f8836523379d21292eb2be4cb523 # via -r docs/requirements.in -mkdocs-material==9.5.32 \ - --hash=sha256:38ed66e6d6768dde4edde022554553e48b2db0d26d1320b19e2e2b9da0be1120 \ - --hash=sha256:f3704f46b63d31b3cd35c0055a72280bed825786eccaf19c655b44e0cd2c6b3f +mkdocs-material==9.5.43 \ + --hash=sha256:4aae0664c456fd12837a3192e0225c17960ba8bf55d7f0a7daef7e4b0b914a34 \ + --hash=sha256:83be7ff30b65a1e4930dfa4ab911e75780a3afc9583d162692e434581cb46979 # via -r docs/requirements.in mkdocs-material-extensions==1.3.1 \ --hash=sha256:10c9511cea88f568257f960358a467d12b970e1f7b2c0e5fb2bb48cab1928443 \ @@ -325,9 +331,9 @@ mkdocs-simple-hooks==0.1.5 \ --hash=sha256:dddbdf151a18723c9302a133e5cf79538be8eb9d274e8e07d2ac3ac34890837c \ --hash=sha256:efeabdbb98b0850a909adee285f3404535117159d5cb3a34f541d6eaa644d50a # via -r docs/requirements.in -mkdocstrings[python]==0.25.2 \ - --hash=sha256:5cf57ad7f61e8be3111a2458b4e49c2029c9cb35525393b179f9c916ca8042dc \ - --hash=sha256:9e2cda5e2e12db8bb98d21e3410f3f27f8faab685a24b03b06ba7daa5b92abfc +mkdocstrings[python]==0.26.2 \ + --hash=sha256:1248f3228464f3b8d1a15bd91249ce1701fe3104ac517a5f167a0e01ca850ba5 \ + --hash=sha256:34a8b50f1e6cfd29546c6c09fbe02154adfb0b361bb758834bf56aa284ba876e # via # -r docs/requirements.in # mkdocstrings-python @@ -342,14 +348,18 @@ neoteroi-mkdocs==1.1.0 \ packaging==24.0 \ --hash=sha256:2ddfb553fdf02fb784c234c7ba6ccc288296ceabec964ad2eae3777778130bc5 \ --hash=sha256:eb82c5e3e56209074766e6885bb04b8c38a0c015d0a30036ebe7ece34c9989e9 - # via mkdocs + # via + # mkdocs + # mkdocs-macros-plugin paginate==0.5.6 \ --hash=sha256:5e6007b6a9398177a7e1648d04fdd9f8c9766a1a945bceac82f1929e8c78af2d # via mkdocs-material pathspec==0.12.1 \ --hash=sha256:a0d503e138a4c123b27490a4f7beda6a01c6f288df0e4a8b79c7eb0dc7b4cc08 \ --hash=sha256:a482d51503a1ab33b1c67a6c3813a26953dbdc71c31dacaef9a838c4e29f5712 - # via mkdocs + # via + # mkdocs + # mkdocs-macros-plugin platformdirs==4.2.2 \ --hash=sha256:2d7a1657e36a80ea911db832a8a6ece5ee53d8de21edd5cc5879af6530b1bfee \ --hash=sha256:38b7b51f512eed9e84a22788b4bce1de17c0adb134d6becb09836e37d8654cd3 @@ -443,86 +453,101 @@ pyyaml-env-tag==0.1 \ --hash=sha256:70092675bda14fdec33b31ba77e7543de9ddc88f2e5b99160396572d11525bdb \ --hash=sha256:af31106dec8a4d68c60207c1886031cbf839b68aa7abccdb19868200532c2069 # via mkdocs -regex==2024.7.24 \ - --hash=sha256:01b689e887f612610c869421241e075c02f2e3d1ae93a037cb14f88ab6a8934c \ - --hash=sha256:04ce29e2c5fedf296b1a1b0acc1724ba93a36fb14031f3abfb7abda2806c1535 \ - --hash=sha256:0ffe3f9d430cd37d8fa5632ff6fb36d5b24818c5c986893063b4e5bdb84cdf24 \ - --hash=sha256:18300a1d78cf1290fa583cd8b7cde26ecb73e9f5916690cf9d42de569c89b1ce \ - --hash=sha256:185e029368d6f89f36e526764cf12bf8d6f0e3a2a7737da625a76f594bdfcbfc \ - --hash=sha256:19c65b00d42804e3fbea9708f0937d157e53429a39b7c61253ff15670ff62cb5 \ - --hash=sha256:228b0d3f567fafa0633aee87f08b9276c7062da9616931382993c03808bb68ce \ - --hash=sha256:23acc72f0f4e1a9e6e9843d6328177ae3074b4182167e34119ec7233dfeccf53 \ - --hash=sha256:25419b70ba00a16abc90ee5fce061228206173231f004437730b67ac77323f0d \ - --hash=sha256:2dfbb8baf8ba2c2b9aa2807f44ed272f0913eeeba002478c4577b8d29cde215c \ - --hash=sha256:2f1baff13cc2521bea83ab2528e7a80cbe0ebb2c6f0bfad15be7da3aed443908 \ - --hash=sha256:33e2614a7ce627f0cdf2ad104797d1f68342d967de3695678c0cb84f530709f8 \ - --hash=sha256:3426de3b91d1bc73249042742f45c2148803c111d1175b283270177fdf669024 \ - --hash=sha256:382281306e3adaaa7b8b9ebbb3ffb43358a7bbf585fa93821300a418bb975281 \ - --hash=sha256:3d974d24edb231446f708c455fd08f94c41c1ff4f04bcf06e5f36df5ef50b95a \ - --hash=sha256:3f3b6ca8eae6d6c75a6cff525c8530c60e909a71a15e1b731723233331de4169 \ - --hash=sha256:3fac296f99283ac232d8125be932c5cd7644084a30748fda013028c815ba3364 \ - --hash=sha256:416c0e4f56308f34cdb18c3f59849479dde5b19febdcd6e6fa4d04b6c31c9faa \ - --hash=sha256:438d9f0f4bc64e8dea78274caa5af971ceff0f8771e1a2333620969936ba10be \ - --hash=sha256:43affe33137fcd679bdae93fb25924979517e011f9dea99163f80b82eadc7e53 \ - --hash=sha256:44fc61b99035fd9b3b9453f1713234e5a7c92a04f3577252b45feefe1b327759 \ - --hash=sha256:45104baae8b9f67569f0f1dca5e1f1ed77a54ae1cd8b0b07aba89272710db61e \ - --hash=sha256:4fdd1384619f406ad9037fe6b6eaa3de2749e2e12084abc80169e8e075377d3b \ - --hash=sha256:538d30cd96ed7d1416d3956f94d54e426a8daf7c14527f6e0d6d425fcb4cca52 \ - --hash=sha256:558a57cfc32adcf19d3f791f62b5ff564922942e389e3cfdb538a23d65a6b610 \ - --hash=sha256:5eefee9bfe23f6df09ffb6dfb23809f4d74a78acef004aa904dc7c88b9944b05 \ - --hash=sha256:64bd50cf16bcc54b274e20235bf8edbb64184a30e1e53873ff8d444e7ac656b2 \ - --hash=sha256:65fd3d2e228cae024c411c5ccdffae4c315271eee4a8b839291f84f796b34eca \ - --hash=sha256:66b4c0731a5c81921e938dcf1a88e978264e26e6ac4ec96a4d21ae0354581ae0 \ - --hash=sha256:68a8f8c046c6466ac61a36b65bb2395c74451df2ffb8458492ef49900efed293 \ - --hash=sha256:6a1141a1dcc32904c47f6846b040275c6e5de0bf73f17d7a409035d55b76f289 \ - --hash=sha256:6b9fc7e9cc983e75e2518496ba1afc524227c163e43d706688a6bb9eca41617e \ - --hash=sha256:6f51f9556785e5a203713f5efd9c085b4a45aecd2a42573e2b5041881b588d1f \ - --hash=sha256:7214477bf9bd195894cf24005b1e7b496f46833337b5dedb7b2a6e33f66d962c \ - --hash=sha256:731fcd76bbdbf225e2eb85b7c38da9633ad3073822f5ab32379381e8c3c12e94 \ - --hash=sha256:74007a5b25b7a678459f06559504f1eec2f0f17bca218c9d56f6a0a12bfffdad \ - --hash=sha256:7a5486ca56c8869070a966321d5ab416ff0f83f30e0e2da1ab48815c8d165d46 \ - --hash=sha256:7c479f5ae937ec9985ecaf42e2e10631551d909f203e31308c12d703922742f9 \ - --hash=sha256:7df9ea48641da022c2a3c9c641650cd09f0cd15e8908bf931ad538f5ca7919c9 \ - --hash=sha256:7e37e809b9303ec3a179085415cb5f418ecf65ec98cdfe34f6a078b46ef823ee \ - --hash=sha256:80c811cfcb5c331237d9bad3bea2c391114588cf4131707e84d9493064d267f9 \ - --hash=sha256:836d3cc225b3e8a943d0b02633fb2f28a66e281290302a79df0e1eaa984ff7c1 \ - --hash=sha256:84c312cdf839e8b579f504afcd7b65f35d60b6285d892b19adea16355e8343c9 \ - --hash=sha256:86b17ba823ea76256b1885652e3a141a99a5c4422f4a869189db328321b73799 \ - --hash=sha256:871e3ab2838fbcb4e0865a6e01233975df3a15e6fce93b6f99d75cacbd9862d1 \ - --hash=sha256:88ecc3afd7e776967fa16c80f974cb79399ee8dc6c96423321d6f7d4b881c92b \ - --hash=sha256:8bc593dcce679206b60a538c302d03c29b18e3d862609317cb560e18b66d10cf \ - --hash=sha256:8fd5afd101dcf86a270d254364e0e8dddedebe6bd1ab9d5f732f274fa00499a5 \ - --hash=sha256:945352286a541406f99b2655c973852da7911b3f4264e010218bbc1cc73168f2 \ - --hash=sha256:973335b1624859cb0e52f96062a28aa18f3a5fc77a96e4a3d6d76e29811a0e6e \ - --hash=sha256:994448ee01864501912abf2bad9203bffc34158e80fe8bfb5b031f4f8e16da51 \ - --hash=sha256:9cfd009eed1a46b27c14039ad5bbc5e71b6367c5b2e6d5f5da0ea91600817506 \ - --hash=sha256:a2ec4419a3fe6cf8a4795752596dfe0adb4aea40d3683a132bae9c30b81e8d73 \ - --hash=sha256:a4997716674d36a82eab3e86f8fa77080a5d8d96a389a61ea1d0e3a94a582cf7 \ - --hash=sha256:a512eed9dfd4117110b1881ba9a59b31433caed0c4101b361f768e7bcbaf93c5 \ - --hash=sha256:a82465ebbc9b1c5c50738536fdfa7cab639a261a99b469c9d4c7dcbb2b3f1e57 \ - --hash=sha256:ae2757ace61bc4061b69af19e4689fa4416e1a04840f33b441034202b5cd02d4 \ - --hash=sha256:b16582783f44fbca6fcf46f61347340c787d7530d88b4d590a397a47583f31dd \ - --hash=sha256:ba2537ef2163db9e6ccdbeb6f6424282ae4dea43177402152c67ef869cf3978b \ - --hash=sha256:bf7a89eef64b5455835f5ed30254ec19bf41f7541cd94f266ab7cbd463f00c41 \ - --hash=sha256:c0abb5e4e8ce71a61d9446040c1e86d4e6d23f9097275c5bd49ed978755ff0fe \ - --hash=sha256:c414cbda77dbf13c3bc88b073a1a9f375c7b0cb5e115e15d4b73ec3a2fbc6f59 \ - --hash=sha256:c51edc3541e11fbe83f0c4d9412ef6c79f664a3745fab261457e84465ec9d5a8 \ - --hash=sha256:c5e69fd3eb0b409432b537fe3c6f44ac089c458ab6b78dcec14478422879ec5f \ - --hash=sha256:c918b7a1e26b4ab40409820ddccc5d49871a82329640f5005f73572d5eaa9b5e \ - --hash=sha256:c9bb87fdf2ab2370f21e4d5636e5317775e5d51ff32ebff2cf389f71b9b13750 \ - --hash=sha256:ca5b2028c2f7af4e13fb9fc29b28d0ce767c38c7facdf64f6c2cd040413055f1 \ - --hash=sha256:d0a07763776188b4db4c9c7fb1b8c494049f84659bb387b71c73bbc07f189e96 \ - --hash=sha256:d33a0021893ede5969876052796165bab6006559ab845fd7b515a30abdd990dc \ - --hash=sha256:d55588cba7553f0b6ec33130bc3e114b355570b45785cebdc9daed8c637dd440 \ - --hash=sha256:dac8e84fff5d27420f3c1e879ce9929108e873667ec87e0c8eeb413a5311adfe \ - --hash=sha256:eaef80eac3b4cfbdd6de53c6e108b4c534c21ae055d1dbea2de6b3b8ff3def38 \ - --hash=sha256:eb462f0e346fcf41a901a126b50f8781e9a474d3927930f3490f38a6e73b6950 \ - --hash=sha256:eb563dd3aea54c797adf513eeec819c4213d7dbfc311874eb4fd28d10f2ff0f2 \ - --hash=sha256:f273674b445bcb6e4409bf8d1be67bc4b58e8b46fd0d560055d515b8830063cd \ - --hash=sha256:f6442f0f0ff81775eaa5b05af8a0ffa1dda36e9cf6ec1e0d3d245e8564b684ce \ - --hash=sha256:fb168b5924bef397b5ba13aabd8cf5df7d3d93f10218d7b925e360d436863f66 \ - --hash=sha256:fbf8c2f00904eaf63ff37718eb13acf8e178cb940520e47b2f05027f5bb34ce3 \ - --hash=sha256:fe4ebef608553aff8deb845c7f4f1d0740ff76fa672c011cc0bacb2a00fbde86 +regex==2024.9.11 \ + --hash=sha256:01c2acb51f8a7d6494c8c5eafe3d8e06d76563d8a8a4643b37e9b2dd8a2ff623 \ + --hash=sha256:02087ea0a03b4af1ed6ebab2c54d7118127fee8d71b26398e8e4b05b78963199 \ + --hash=sha256:040562757795eeea356394a7fb13076ad4f99d3c62ab0f8bdfb21f99a1f85664 \ + --hash=sha256:042c55879cfeb21a8adacc84ea347721d3d83a159da6acdf1116859e2427c43f \ + --hash=sha256:079400a8269544b955ffa9e31f186f01d96829110a3bf79dc338e9910f794fca \ + --hash=sha256:07f45f287469039ffc2c53caf6803cd506eb5f5f637f1d4acb37a738f71dd066 \ + --hash=sha256:09d77559e80dcc9d24570da3745ab859a9cf91953062e4ab126ba9d5993688ca \ + --hash=sha256:0cbff728659ce4bbf4c30b2a1be040faafaa9eca6ecde40aaff86f7889f4ab39 \ + --hash=sha256:0e12c481ad92d129c78f13a2a3662317e46ee7ef96c94fd332e1c29131875b7d \ + --hash=sha256:0ea51dcc0835eea2ea31d66456210a4e01a076d820e9039b04ae8d17ac11dee6 \ + --hash=sha256:0ffbcf9221e04502fc35e54d1ce9567541979c3fdfb93d2c554f0ca583a19b35 \ + --hash=sha256:1494fa8725c285a81d01dc8c06b55287a1ee5e0e382d8413adc0a9197aac6408 \ + --hash=sha256:16e13a7929791ac1216afde26f712802e3df7bf0360b32e4914dca3ab8baeea5 \ + --hash=sha256:18406efb2f5a0e57e3a5881cd9354c1512d3bb4f5c45d96d110a66114d84d23a \ + --hash=sha256:18e707ce6c92d7282dfce370cd205098384b8ee21544e7cb29b8aab955b66fa9 \ + --hash=sha256:220e92a30b426daf23bb67a7962900ed4613589bab80382be09b48896d211e92 \ + --hash=sha256:23b30c62d0f16827f2ae9f2bb87619bc4fba2044911e2e6c2eb1af0161cdb766 \ + --hash=sha256:23f9985c8784e544d53fc2930fc1ac1a7319f5d5332d228437acc9f418f2f168 \ + --hash=sha256:297f54910247508e6e5cae669f2bc308985c60540a4edd1c77203ef19bfa63ca \ + --hash=sha256:2b08fce89fbd45664d3df6ad93e554b6c16933ffa9d55cb7e01182baaf971508 \ + --hash=sha256:2cce2449e5927a0bf084d346da6cd5eb016b2beca10d0013ab50e3c226ffc0df \ + --hash=sha256:313ea15e5ff2a8cbbad96ccef6be638393041b0a7863183c2d31e0c6116688cf \ + --hash=sha256:323c1f04be6b2968944d730e5c2091c8c89767903ecaa135203eec4565ed2b2b \ + --hash=sha256:35f4a6f96aa6cb3f2f7247027b07b15a374f0d5b912c0001418d1d55024d5cb4 \ + --hash=sha256:3b37fa423beefa44919e009745ccbf353d8c981516e807995b2bd11c2c77d268 \ + --hash=sha256:3ce4f1185db3fbde8ed8aa223fc9620f276c58de8b0d4f8cc86fd1360829edb6 \ + --hash=sha256:46989629904bad940bbec2106528140a218b4a36bb3042d8406980be1941429c \ + --hash=sha256:4838e24ee015101d9f901988001038f7f0d90dc0c3b115541a1365fb439add62 \ + --hash=sha256:49b0e06786ea663f933f3710a51e9385ce0cba0ea56b67107fd841a55d56a231 \ + --hash=sha256:4db21ece84dfeefc5d8a3863f101995de646c6cb0536952c321a2650aa202c36 \ + --hash=sha256:54c4a097b8bc5bb0dfc83ae498061d53ad7b5762e00f4adaa23bee22b012e6ba \ + --hash=sha256:54d9ff35d4515debf14bc27f1e3b38bfc453eff3220f5bce159642fa762fe5d4 \ + --hash=sha256:55b96e7ce3a69a8449a66984c268062fbaa0d8ae437b285428e12797baefce7e \ + --hash=sha256:57fdd2e0b2694ce6fc2e5ccf189789c3e2962916fb38779d3e3521ff8fe7a822 \ + --hash=sha256:587d4af3979376652010e400accc30404e6c16b7df574048ab1f581af82065e4 \ + --hash=sha256:5b513b6997a0b2f10e4fd3a1313568e373926e8c252bd76c960f96fd039cd28d \ + --hash=sha256:5ddcd9a179c0a6fa8add279a4444015acddcd7f232a49071ae57fa6e278f1f71 \ + --hash=sha256:6113c008a7780792efc80f9dfe10ba0cd043cbf8dc9a76ef757850f51b4edc50 \ + --hash=sha256:635a1d96665f84b292e401c3d62775851aedc31d4f8784117b3c68c4fcd4118d \ + --hash=sha256:64ce2799bd75039b480cc0360907c4fb2f50022f030bf9e7a8705b636e408fad \ + --hash=sha256:69dee6a020693d12a3cf892aba4808fe168d2a4cef368eb9bf74f5398bfd4ee8 \ + --hash=sha256:6a2644a93da36c784e546de579ec1806bfd2763ef47babc1b03d765fe560c9f8 \ + --hash=sha256:6b41e1adc61fa347662b09398e31ad446afadff932a24807d3ceb955ed865cc8 \ + --hash=sha256:6c188c307e8433bcb63dc1915022deb553b4203a70722fc542c363bf120a01fd \ + --hash=sha256:6edd623bae6a737f10ce853ea076f56f507fd7726bee96a41ee3d68d347e4d16 \ + --hash=sha256:73d6d2f64f4d894c96626a75578b0bf7d9e56dcda8c3d037a2118fdfe9b1c664 \ + --hash=sha256:7a22ccefd4db3f12b526eccb129390942fe874a3a9fdbdd24cf55773a1faab1a \ + --hash=sha256:7fb89ee5d106e4a7a51bce305ac4efb981536301895f7bdcf93ec92ae0d91c7f \ + --hash=sha256:846bc79ee753acf93aef4184c040d709940c9d001029ceb7b7a52747b80ed2dd \ + --hash=sha256:85ab7824093d8f10d44330fe1e6493f756f252d145323dd17ab6b48733ff6c0a \ + --hash=sha256:8dee5b4810a89447151999428fe096977346cf2f29f4d5e29609d2e19e0199c9 \ + --hash=sha256:8e5fb5f77c8745a60105403a774fe2c1759b71d3e7b4ca237a5e67ad066c7199 \ + --hash=sha256:98eeee2f2e63edae2181c886d7911ce502e1292794f4c5ee71e60e23e8d26b5d \ + --hash=sha256:9d4a76b96f398697fe01117093613166e6aa8195d63f1b4ec3f21ab637632963 \ + --hash=sha256:9e8719792ca63c6b8340380352c24dcb8cd7ec49dae36e963742a275dfae6009 \ + --hash=sha256:a0b2b80321c2ed3fcf0385ec9e51a12253c50f146fddb2abbb10f033fe3d049a \ + --hash=sha256:a4cc92bb6db56ab0c1cbd17294e14f5e9224f0cc6521167ef388332604e92679 \ + --hash=sha256:a738b937d512b30bf75995c0159c0ddf9eec0775c9d72ac0202076c72f24aa96 \ + --hash=sha256:a8f877c89719d759e52783f7fe6e1c67121076b87b40542966c02de5503ace42 \ + --hash=sha256:a906ed5e47a0ce5f04b2c981af1c9acf9e8696066900bf03b9d7879a6f679fc8 \ + --hash=sha256:ae2941333154baff9838e88aa71c1d84f4438189ecc6021a12c7573728b5838e \ + --hash=sha256:b0d0a6c64fcc4ef9c69bd5b3b3626cc3776520a1637d8abaa62b9edc147a58f7 \ + --hash=sha256:b5b029322e6e7b94fff16cd120ab35a253236a5f99a79fb04fda7ae71ca20ae8 \ + --hash=sha256:b7aaa315101c6567a9a45d2839322c51c8d6e81f67683d529512f5bcfb99c802 \ + --hash=sha256:be1c8ed48c4c4065ecb19d882a0ce1afe0745dfad8ce48c49586b90a55f02366 \ + --hash=sha256:c0256beda696edcf7d97ef16b2a33a8e5a875affd6fa6567b54f7c577b30a137 \ + --hash=sha256:c157bb447303070f256e084668b702073db99bbb61d44f85d811025fcf38f784 \ + --hash=sha256:c57d08ad67aba97af57a7263c2d9006d5c404d721c5f7542f077f109ec2a4a29 \ + --hash=sha256:c69ada171c2d0e97a4b5aa78fbb835e0ffbb6b13fc5da968c09811346564f0d3 \ + --hash=sha256:c94bb0a9f1db10a1d16c00880bdebd5f9faf267273b8f5bd1878126e0fbde771 \ + --hash=sha256:cb130fccd1a37ed894824b8c046321540263013da72745d755f2d35114b81a60 \ + --hash=sha256:ced479f601cd2f8ca1fd7b23925a7e0ad512a56d6e9476f79b8f381d9d37090a \ + --hash=sha256:d05ac6fa06959c4172eccd99a222e1fbf17b5670c4d596cb1e5cde99600674c4 \ + --hash=sha256:d552c78411f60b1fdaafd117a1fca2f02e562e309223b9d44b7de8be451ec5e0 \ + --hash=sha256:dd4490a33eb909ef5078ab20f5f000087afa2a4daa27b4c072ccb3cb3050ad84 \ + --hash=sha256:df5cbb1fbc74a8305b6065d4ade43b993be03dbe0f8b30032cced0d7740994bd \ + --hash=sha256:e28f9faeb14b6f23ac55bfbbfd3643f5c7c18ede093977f1df249f73fd22c7b1 \ + --hash=sha256:e464b467f1588e2c42d26814231edecbcfe77f5ac414d92cbf4e7b55b2c2a776 \ + --hash=sha256:e4c22e1ac1f1ec1e09f72e6c44d8f2244173db7eb9629cc3a346a8d7ccc31142 \ + --hash=sha256:e53b5fbab5d675aec9f0c501274c467c0f9a5d23696cfc94247e1fb56501ed89 \ + --hash=sha256:e93f1c331ca8e86fe877a48ad64e77882c0c4da0097f2212873a69bbfea95d0c \ + --hash=sha256:e997fd30430c57138adc06bba4c7c2968fb13d101e57dd5bb9355bf8ce3fa7e8 \ + --hash=sha256:e9a091b0550b3b0207784a7d6d0f1a00d1d1c8a11699c1a4d93db3fbefc3ad35 \ + --hash=sha256:eab4bb380f15e189d1313195b062a6aa908f5bd687a0ceccd47c8211e9cf0d4a \ + --hash=sha256:eb1ae19e64c14c7ec1995f40bd932448713d3c73509e82d8cd7744dc00e29e86 \ + --hash=sha256:ecea58b43a67b1b79805f1a0255730edaf5191ecef84dbc4cc85eb30bc8b63b9 \ + --hash=sha256:ee439691d8c23e76f9802c42a95cfeebf9d47cf4ffd06f18489122dbb0a7ad64 \ + --hash=sha256:eee9130eaad130649fd73e5cd92f60e55708952260ede70da64de420cdcad554 \ + --hash=sha256:f47cd43a5bfa48f86925fe26fbdd0a488ff15b62468abb5d2a1e092a4fb10e85 \ + --hash=sha256:f6fff13ef6b5f29221d6904aa816c34701462956aa72a77f1f151a8ec4f56aeb \ + --hash=sha256:f745ec09bc1b0bd15cfc73df6fa4f726dcc26bb16c23a03f9e3367d357eeedd0 \ + --hash=sha256:f8404bf61298bb6f8224bb9176c1424548ee1181130818fcd2cbffddc768bed8 \ + --hash=sha256:f9268774428ec173654985ce55fc6caf4c6d11ade0f6f914d48ef4719eb05ebb \ + --hash=sha256:faa3c142464efec496967359ca99696c896c591c56c53506bac1ad465f66e919 # via mkdocs-material requests==2.32.3 \ --hash=sha256:55365417734eb18255590a9ff9eb97e9e1da868d4ccd6402399eaf68af20a760 \ @@ -546,6 +571,10 @@ sniffio==1.3.1 \ # via # anyio # httpx +super-collections==0.5.3 \ + --hash=sha256:907d35b25dc4070910e8254bf2f5c928348af1cf8a1f1e8259e06c666e902cff \ + --hash=sha256:94c1ec96c0a0d5e8e7d389ed8cde6882ac246940507c5e6b86e91945c2968d46 + # via mkdocs-macros-plugin termcolor==2.4.0 \ --hash=sha256:9297c0df9c99445c2412e832e882a7884038a25617c60cea2ad69488d4040d63 \ --hash=sha256:aab9e56047c8ac41ed798fa36d892a37aca6b3e9159f3e0c24bc64a9b3ac7b7a @@ -595,7 +624,7 @@ wcmatch==8.5.2 \ --hash=sha256:17d3ad3758f9d0b5b4dedc770b65420d4dac62e680229c287bf24c9db856a478 \ --hash=sha256:a70222b86dea82fb382dd87b73278c10756c138bd6f8f714e2183128887b9eb2 # via mkdocs-include-markdown-plugin -zipp==3.20.0 \ - --hash=sha256:0145e43d89664cfe1a2e533adc75adafed82fe2da404b4bbb6b026c0157bdb31 \ - --hash=sha256:58da6168be89f0be59beb194da1250516fdaa062ccebd30127ac65d30045e10d +zipp==3.20.2 \ + --hash=sha256:a817ac80d6cf4b23bf7f2828b7cabf326f15a001bea8b1f9b49631780ba28350 \ + --hash=sha256:bc9eb26f4506fda01b81bcde0ca78103b6e62f991b381fec825435c836edbc29 # via importlib-metadata diff --git a/pyproject.toml b/pyproject.toml index a8c23e75d8..32e336ba22 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -20,13 +20,30 @@ src = ["src/backend/InvenTree"] "__init__.py" = ["D104"] [tool.ruff.lint] -select = ["A", "B", "C4", "D", "I", "N", "F"] +select = ["A", "B", "C", "C4", "D", "F", "I", "N", "SIM", "PIE", "PLE", "PLW", "RUF", "UP", "W"] # Things that should be enabled in the future: # - LOG # - DJ # for Django stuff # - S # for security stuff (bandit) ignore = [ + "PLE1205", + # - PLE1205 - Too many arguments for logging format string + "PLW2901", + # - PLW2901 - Outer {outer_kind} variable {name} overwritten by inner {inner_kind} target + "PLW0602","PLW0603","PLW0604", # global variable things + "RUF015", + # - RUF015 - Prefer next({iterable}) over single element slice + "RUF012", + # - RUF012 - Mutable class attributes should be annotated with typing.ClassVar + "SIM117", + # - SIM117 - Use a single with statement with multiple contexts instead of nested with statements + "SIM102", + # - SIM102 - Use a single if statement instead of nested if statements + "SIM105", + # - SIM105 - Use contextlib.suppress({exception}) instead of try-except-pass + "C901", + # - C901 - function is too complex "N999", # - N802 - function name should be lowercase "N802", @@ -36,13 +53,15 @@ ignore = [ "N812", # - D417 Missing argument descriptions in the docstring "D417", + # - RUF032 - decimal-from-float-literal + "RUF032", # TODO These should be followed up and fixed # - B904 Within an `except` clause, raise exceptions "B904", # Remove fast - "A001", "A002","A003","B018" + "A002", "B018" ] [tool.ruff.lint.pydocstyle] diff --git a/readthedocs.yml b/readthedocs.yml index f9a08ce2a9..f9f48ec0e2 100644 --- a/readthedocs.yml +++ b/readthedocs.yml @@ -17,6 +17,6 @@ build: - echo "Generating API schema file" - pip install -U invoke - invoke migrate - - invoke export-settings-definitions --filename docs/inventree_settings.json --overwrite - - invoke schema --filename docs/schema.yml --ignore-warnings + - invoke int.export-settings-definitions --filename docs/inventree_settings.json --overwrite + - invoke dev.schema --filename docs/schema.yml --ignore-warnings - python docs/extract_schema.py docs/schema.yml diff --git a/src/backend/InvenTree/InvenTree/admin.py b/src/backend/InvenTree/InvenTree/admin.py index 4920e0038f..66346e9eef 100644 --- a/src/backend/InvenTree/InvenTree/admin.py +++ b/src/backend/InvenTree/InvenTree/admin.py @@ -104,14 +104,16 @@ class InvenTreeResource(ModelResource): attribute = getattr(field, 'attribute', field_name) # Check if the associated database field is a non-nullable string - if db_field := db_fields.get(attribute): - if ( + if ( + (db_field := db_fields.get(attribute)) + and ( isinstance(db_field, CharField) and db_field.blank and not db_field.null - ): - if column not in self.CONVERT_NULL_FIELDS: - self.CONVERT_NULL_FIELDS.append(column) + ) + and column not in self.CONVERT_NULL_FIELDS + ): + self.CONVERT_NULL_FIELDS.append(column) return super().before_import(dataset, using_transactions, dry_run, **kwargs) diff --git a/src/backend/InvenTree/InvenTree/api.py b/src/backend/InvenTree/InvenTree/api.py index 952ddb3ff4..022c9d6628 100644 --- a/src/backend/InvenTree/InvenTree/api.py +++ b/src/backend/InvenTree/InvenTree/api.py @@ -26,7 +26,7 @@ from part.models import Part from plugin.serializers import MetadataSerializer from users.models import ApiToken -from .email import is_email_configured +from .helpers_email import is_email_configured from .mixins import ListAPI, RetrieveUpdateAPI from .status import check_system_health, is_worker_running from .version import inventreeApiText @@ -77,7 +77,7 @@ class LicenseView(APIView): # Ensure we do not have any duplicate 'name' values in the list for entry in data: name = None - for key in entry.keys(): + for key in entry: if key.lower() == 'name': name = entry[key] break @@ -221,6 +221,7 @@ class InfoView(AjaxView): 'instance': InvenTree.version.inventreeInstanceName(), 'apiVersion': InvenTree.version.inventreeApiVersion(), 'worker_running': is_worker_running(), + 'worker_count': settings.BACKGROUND_WORKER_COUNT, 'worker_pending_tasks': self.worker_pending_tasks(), 'plugins_enabled': settings.PLUGINS_ENABLED, 'plugins_install_disabled': settings.PLUGINS_INSTALL_DISABLED, @@ -321,7 +322,6 @@ class BulkDeleteMixin: Raises: ValidationError: If the deletion should not proceed """ - pass def filter_delete_queryset(self, queryset, request): """Provide custom filtering for the queryset *before* it is deleted. @@ -380,11 +380,26 @@ class BulkDeleteMixin: # Filter by provided item ID values if items: - queryset = queryset.filter(id__in=items) + try: + queryset = queryset.filter(id__in=items) + except Exception: + raise ValidationError({ + 'non_field_errors': _('Invalid items list provided') + }) # Filter by provided filters if filters: - queryset = queryset.filter(**filters) + try: + queryset = queryset.filter(**filters) + except Exception: + raise ValidationError({ + 'non_field_errors': _('Invalid filters provided') + }) + + if queryset.count() == 0: + raise ValidationError({ + 'non_field_errors': _('No items found to delete') + }) # Run a final validation step (should raise an error if the deletion should not proceed) self.validate_delete(queryset, request) @@ -398,8 +413,6 @@ class BulkDeleteMixin: class ListCreateDestroyAPIView(BulkDeleteMixin, ListCreateAPI): """Custom API endpoint which provides BulkDelete functionality in addition to List and Create.""" - ... - class APISearchViewSerializer(serializers.Serializer): """Serializer for the APISearchView.""" diff --git a/src/backend/InvenTree/InvenTree/api_version.py b/src/backend/InvenTree/InvenTree/api_version.py index f1df853784..995e0cd4c8 100644 --- a/src/backend/InvenTree/InvenTree/api_version.py +++ b/src/backend/InvenTree/InvenTree/api_version.py @@ -1,12 +1,106 @@ """InvenTree API version information.""" # InvenTree API version -INVENTREE_API_VERSION = 248 +INVENTREE_API_VERSION = 277 """Increment this API version number whenever there is a significant change to the API that any clients need to know about.""" INVENTREE_API_TEXT = """ + +v277 - 2024-11-01 : https://github.com/inventree/InvenTree/pull/8278 + - Allow build order list to be filtered by "outstanding" (alias for "active") + +v276 - 2024-10-31 : https://github.com/inventree/InvenTree/pull/8403 + - Adds 'destination' field to the PurchaseOrder model and API endpoints + +v275 - 2024-10-31 : https://github.com/inventree/InvenTree/pull/8396 + - Adds SKU and MPN fields to the StockItem serializer + - Additional export options for the StockItem serializer + +v274 - 2024-10-29 : https://github.com/inventree/InvenTree/pull/8392 + - Add more detailed information to NotificationEntry API serializer + +v273 - 2024-10-28 : https://github.com/inventree/InvenTree/pull/8376 + - Fixes for the BuildLine API endpoint + +v272 - 2024-10-25 : https://github.com/inventree/InvenTree/pull/8343 + - Adjustments to BuildLine API serializers + +v271 - 2024-10-22 : https://github.com/inventree/InvenTree/pull/8331 + - Fixes for SalesOrderLineItem endpoints + +v270 - 2024-10-19 : https://github.com/inventree/InvenTree/pull/8307 + - Adds missing date fields from order API endpoint(s) + +v269 - 2024-10-16 : https://github.com/inventree/InvenTree/pull/8295 + - Adds "include_variants" filter to the BuildOrder API endpoint + - Adds "include_variants" filter to the SalesOrder API endpoint + - Adds "include_variants" filter to the PurchaseOrderLineItem API endpoint + - Adds "include_variants" filter to the ReturnOrder API endpoint + +268 - 2024-10-11 : https://github.com/inventree/InvenTree/pull/8274 + - Adds "in_stock" attribute to the StockItem serializer + +267 - 2024-10-8 : https://github.com/inventree/InvenTree/pull/8250 + - Remove "allocations" field from the SalesOrderShipment API endpoint(s) + - Add "allocated_items" field to the SalesOrderShipment API endpoint(s) + +266 - 2024-10-07 : https://github.com/inventree/InvenTree/pull/8249 + - Tweak SalesOrderShipment API for more efficient data retrieval + +265 - 2024-10-07 : https://github.com/inventree/InvenTree/pull/8228 + - Adds API endpoint for providing custom admin integration details for plugins + +264 - 2024-10-03 : https://github.com/inventree/InvenTree/pull/8231 + - Adds Sales Order Shipment attachment model type + +263 - 2024-09-30 : https://github.com/inventree/InvenTree/pull/8194 + - Adds Sales Order Shipment report + +262 - 2024-09-30 : https://github.com/inventree/InvenTree/pull/8220 + - Tweak permission requirements for uninstalling plugins via API + +261 - 2024-09-26 : https://github.com/inventree/InvenTree/pull/8184 + - Fixes for BuildOrder API serializers + +v260 - 2024-09-26 : https://github.com/inventree/InvenTree/pull/8190 + - Adds facility for server-side context data to be passed to client-side plugins + +v259 - 2024-09-20 : https://github.com/inventree/InvenTree/pull/8137 + - Implements new API endpoint for enabling custom UI features via plugins + +v258 - 2024-09-24 : https://github.com/inventree/InvenTree/pull/8163 + - Enhances the existing PartScheduling API endpoint + - Adds a formal DRF serializer to the endpoint + +v257 - 2024-09-22 : https://github.com/inventree/InvenTree/pull/8150 + - Adds API endpoint for reporting barcode scan history + +v256 - 2024-09-19 : https://github.com/inventree/InvenTree/pull/7704 + - Adjustments for "stocktake" (stock history) API endpoints + +v255 - 2024-09-19 : https://github.com/inventree/InvenTree/pull/8145 + - Enables copying line items when duplicating an order + +v254 - 2024-09-14 : https://github.com/inventree/InvenTree/pull/7470 + - Implements new API endpoints for enabling custom UI functionality via plugins + +v253 - 2024-09-14 : https://github.com/inventree/InvenTree/pull/7944 + - Adjustments for user API endpoints + +v252 - 2024-09-13 : https://github.com/inventree/InvenTree/pull/8040 + - Add endpoint for listing all known units + +v251 - 2024-09-06 : https://github.com/inventree/InvenTree/pull/8018 + - Adds "attach_to_model" field to the ReporTemplate model + +v250 - 2024-09-04 : https://github.com/inventree/InvenTree/pull/8069 + - Fixes 'revision' field definition in Part serializer + +v249 - 2024-08-23 : https://github.com/inventree/InvenTree/pull/7978 + - Sort status enums + v248 - 2024-08-23 : https://github.com/inventree/InvenTree/pull/7965 - Small adjustments to labels for new custom status fields diff --git a/src/backend/InvenTree/InvenTree/apps.py b/src/backend/InvenTree/InvenTree/apps.py index accd545980..8aed2f09b5 100644 --- a/src/backend/InvenTree/InvenTree/apps.py +++ b/src/backend/InvenTree/InvenTree/apps.py @@ -40,9 +40,14 @@ class InvenTreeConfig(AppConfig): - Adding users set in the current environment """ # skip loading if plugin registry is not loaded or we run in a background thread + + if not InvenTree.ready.isPluginRegistryLoaded(): + return + + # Skip if not in worker or main thread if ( - not InvenTree.ready.isPluginRegistryLoaded() - or not InvenTree.ready.isInMainThread() + not InvenTree.ready.isInMainThread() + and not InvenTree.ready.isInWorkerThread() ): return @@ -52,7 +57,6 @@ class InvenTreeConfig(AppConfig): if InvenTree.ready.canAppAccessDatabase() or settings.TESTING_ENV: self.remove_obsolete_tasks() - self.collect_tasks() self.start_background_tasks() @@ -125,7 +129,7 @@ class InvenTreeConfig(AppConfig): for task in tasks: ref_name = f'{task.func.__module__}.{task.func.__name__}' - if ref_name in existing_tasks.keys(): + if ref_name in existing_tasks: # This task already exists - update the details if required existing_task = existing_tasks[ref_name] diff --git a/src/backend/InvenTree/InvenTree/config.py b/src/backend/InvenTree/InvenTree/config.py index 008da3cccb..5c62fc66c6 100644 --- a/src/backend/InvenTree/InvenTree/config.py +++ b/src/backend/InvenTree/InvenTree/config.py @@ -131,7 +131,7 @@ def load_config_data(set_cache: bool = False) -> map: cfg_file = get_config_file() - with open(cfg_file, 'r') as cfg: + with open(cfg_file, encoding='utf-8') as cfg: data = yaml.safe_load(cfg) # Set the cache if requested diff --git a/src/backend/InvenTree/InvenTree/context.py b/src/backend/InvenTree/InvenTree/context.py index 78a9443130..bbdf5f6eb6 100644 --- a/src/backend/InvenTree/InvenTree/context.py +++ b/src/backend/InvenTree/InvenTree/context.py @@ -1,8 +1,6 @@ -# -*- coding: utf-8 -*- - """Provides extra global data to all templates.""" -import InvenTree.email +import InvenTree.helpers_email import InvenTree.ready import InvenTree.status from generic.states.custom import get_custom_classes @@ -27,7 +25,7 @@ def health_status(request): status = { 'django_q_running': InvenTree.status.is_worker_running(), - 'email_configured': InvenTree.email.is_email_configured(), + 'email_configured': InvenTree.helpers_email.is_email_configured(), } # The following keys are required to denote system health @@ -75,7 +73,7 @@ def user_roles(request): roles = {} - for role in RuleSet.get_ruleset_models().keys(): + for role in RuleSet.get_ruleset_models(): permissions = {} for perm in ['view', 'add', 'change', 'delete']: diff --git a/src/backend/InvenTree/InvenTree/conversion.py b/src/backend/InvenTree/InvenTree/conversion.py index 61f1850899..0701bc3eb2 100644 --- a/src/backend/InvenTree/InvenTree/conversion.py +++ b/src/backend/InvenTree/InvenTree/conversion.py @@ -2,6 +2,7 @@ import logging import re +from typing import Optional from django.core.exceptions import ValidationError from django.utils.translation import gettext_lazy as _ @@ -95,7 +96,7 @@ def from_engineering_notation(value): """ value = str(value).strip() - pattern = '(\d+)([a-zA-Z]+)(\d+)(.*)' + pattern = r'(\d+)([a-zA-Z]+)(\d+)(.*)' if match := re.match(pattern, value): left, prefix, right, suffix = match.groups() @@ -133,7 +134,7 @@ def convert_value(value, unit): return value -def convert_physical_value(value: str, unit: str = None, strip_units=True): +def convert_physical_value(value: str, unit: Optional[str] = None, strip_units=True): """Validate that the provided value is a valid physical quantity. Arguments: @@ -203,7 +204,7 @@ def convert_physical_value(value: str, unit: str = None, strip_units=True): if unit: raise ValidationError(_(f'Could not convert {original} to {unit}')) else: - raise ValidationError(_('Invalid quantity supplied')) + raise ValidationError(_('Invalid quantity provided')) # Calculate the "magnitude" of the value, as a float # If the value is specified strangely (e.g. as a fraction or a dozen), this can cause issues @@ -217,7 +218,7 @@ def convert_physical_value(value: str, unit: str = None, strip_units=True): magnitude = float(ureg.Quantity(magnitude).to_base_units().magnitude) except Exception as exc: - raise ValidationError(_(f'Invalid quantity supplied ({exc})')) + raise ValidationError(_('Invalid quantity provided') + f': ({exc})') if strip_units: return magnitude @@ -245,8 +246,4 @@ def is_dimensionless(value): if value.units == ureg.dimensionless: return True - if value.to_base_units().units == ureg.dimensionless: - return True - - # At this point, the value is not dimensionless - return False + return value.to_base_units().units == ureg.dimensionless diff --git a/src/backend/InvenTree/InvenTree/exceptions.py b/src/backend/InvenTree/InvenTree/exceptions.py index 12328994e7..efe941ddfd 100644 --- a/src/backend/InvenTree/InvenTree/exceptions.py +++ b/src/backend/InvenTree/InvenTree/exceptions.py @@ -1,7 +1,6 @@ """Custom exception handling for the DRF API.""" # -*- coding: utf-8 -*- -from __future__ import unicode_literals import logging import sys @@ -41,10 +40,7 @@ def log_error(path, error_name=None, error_info=None, error_data=None): if kind in settings.IGNORED_ERRORS: return - if error_name: - kind = error_name - else: - kind = getattr(kind, '__name__', 'Unknown Error') + kind = error_name or getattr(kind, '__name__', 'Unknown Error') if error_info: info = error_info diff --git a/src/backend/InvenTree/InvenTree/exchange.py b/src/backend/InvenTree/InvenTree/exchange.py index ab02883058..d53e6ad49a 100644 --- a/src/backend/InvenTree/InvenTree/exchange.py +++ b/src/backend/InvenTree/InvenTree/exchange.py @@ -31,10 +31,7 @@ class InvenTreeExchange(SimpleExchangeBackend): # Find the selected exchange rate plugin slug = get_global_setting('CURRENCY_UPDATE_PLUGIN', create=False) - if slug: - plugin = registry.get_plugin(slug) - else: - plugin = None + plugin = registry.get_plugin(slug) if slug else None if not plugin: # Find the first active currency exchange plugin diff --git a/src/backend/InvenTree/InvenTree/fields.py b/src/backend/InvenTree/InvenTree/fields.py index 01efe65ae1..2029235c7c 100644 --- a/src/backend/InvenTree/InvenTree/fields.py +++ b/src/backend/InvenTree/InvenTree/fields.py @@ -93,9 +93,8 @@ class InvenTreeModelMoneyField(ModelMoneyField): allow_negative = kwargs.pop('allow_negative', False) # If no validators are provided, add some "standard" ones - if len(validators) == 0: - if not allow_negative: - validators.append(MinMoneyValidator(0)) + if len(validators) == 0 and not allow_negative: + validators.append(MinMoneyValidator(0)) kwargs['validators'] = validators @@ -134,9 +133,9 @@ class DatePickerFormField(forms.DateField): def __init__(self, **kwargs): """Set up custom values.""" help_text = kwargs.get('help_text', _('Enter date')) - label = kwargs.get('label', None) + label = kwargs.get('label') required = kwargs.get('required', False) - initial = kwargs.get('initial', None) + initial = kwargs.get('initial') widget = forms.DateInput(attrs={'type': 'date'}) diff --git a/src/backend/InvenTree/InvenTree/filters.py b/src/backend/InvenTree/InvenTree/filters.py index f3182d0931..44b4b6143c 100644 --- a/src/backend/InvenTree/InvenTree/filters.py +++ b/src/backend/InvenTree/InvenTree/filters.py @@ -118,10 +118,7 @@ class InvenTreeOrderingFilter(filters.OrderingFilter): field = field[1:] # Are aliases defined for this field? - if field in aliases: - alias = aliases[field] - else: - alias = field + alias = aliases.get(field, field) """ Potentially, a single field could be "aliased" to multiple field, diff --git a/src/backend/InvenTree/InvenTree/format.py b/src/backend/InvenTree/InvenTree/format.py index 5cdeac1ed1..4d92722167 100644 --- a/src/backend/InvenTree/InvenTree/format.py +++ b/src/backend/InvenTree/InvenTree/format.py @@ -2,6 +2,7 @@ import re import string +from typing import Optional from django.conf import settings from django.utils import translation @@ -106,10 +107,7 @@ def construct_format_regex(fmt_string: str) -> str: # Add a named capture group for the format entry if name: # Check if integer values are required - if _fmt.endswith('d'): - c = '\d' - else: - c = '.' + c = '\\d' if _fmt.endswith('d') else '.' # Specify width # TODO: Introspect required width @@ -160,7 +158,7 @@ def extract_named_group(name: str, value: str, fmt_string: str) -> str: """ info = parse_format_string(fmt_string) - if name not in info.keys(): + if name not in info: raise NameError(_(f"Value '{name}' does not appear in pattern format")) # Construct a regular expression for matching against the provided format string @@ -182,8 +180,8 @@ def extract_named_group(name: str, value: str, fmt_string: str) -> str: def format_money( money: Money, - decimal_places: int = None, - format: str = None, + decimal_places: Optional[int] = None, + fmt: Optional[str] = None, include_symbol: bool = True, ) -> str: """Format money object according to the currently set local. @@ -191,7 +189,7 @@ def format_money( Args: money (Money): The money object to format decimal_places (int): Number of decimal places to use - format (str): Format pattern according LDML / the babel format pattern syntax (https://babel.pocoo.org/en/latest/numbers.html) + fmt (str): Format pattern according LDML / the babel format pattern syntax (https://babel.pocoo.org/en/latest/numbers.html) Returns: str: The formatted string @@ -199,10 +197,10 @@ def format_money( Raises: ValueError: format string is incorrectly specified """ - language = None and translation.get_language() or settings.LANGUAGE_CODE + language = (None) or settings.LANGUAGE_CODE locale = Locale.parse(translation.to_locale(language)) - if format: - pattern = parse_pattern(format) + if fmt: + pattern = parse_pattern(fmt) else: pattern = locale.currency_formats['standard'] if decimal_places is not None: diff --git a/src/backend/InvenTree/InvenTree/forms.py b/src/backend/InvenTree/InvenTree/forms.py index 0997f1a38b..f2e73b253e 100644 --- a/src/backend/InvenTree/InvenTree/forms.py +++ b/src/backend/InvenTree/InvenTree/forms.py @@ -266,9 +266,8 @@ class RegistratonMixin: raise forms.ValidationError( _('The provided primary email address is not valid.') ) - else: - if split_email[1] == option[1:]: - return super().clean_email(email) + elif split_email[1] == option[1:]: + return super().clean_email(email) logger.info('The provided email domain for %s is not approved', email) raise forms.ValidationError(_('The provided email domain is not approved.')) diff --git a/src/backend/InvenTree/InvenTree/helpers.py b/src/backend/InvenTree/InvenTree/helpers.py index 2ddae791cf..94d9952191 100644 --- a/src/backend/InvenTree/InvenTree/helpers.py +++ b/src/backend/InvenTree/InvenTree/helpers.py @@ -2,6 +2,7 @@ import datetime import hashlib +import inspect import io import logging import os @@ -9,17 +10,18 @@ import os.path import re from decimal import Decimal, InvalidOperation from pathlib import Path -from typing import TypeVar, Union +from typing import Optional, TypeVar, Union from wsgiref.util import FileWrapper -import django.utils.timezone as timezone from django.conf import settings from django.contrib.staticfiles.storage import StaticFilesStorage from django.core.exceptions import FieldError, ValidationError from django.core.files.storage import Storage, default_storage from django.http import StreamingHttpResponse +from django.utils import timezone from django.utils.translation import gettext_lazy as _ +import bleach import pytz import regex from bleach import clean @@ -97,10 +99,7 @@ def generateTestKey(test_name: str) -> str: if char.isidentifier(): return True - if char.isalnum(): - return True - - return False + return bool(char.isalnum()) # Remove any characters that cannot be used to represent a variable key = ''.join([c for c in key if valid_char(c)]) @@ -435,7 +434,7 @@ def DownloadFile( return response -def increment_serial_number(serial): +def increment_serial_number(serial, part=None): """Given a serial number, (attempt to) generate the *next* serial number. Note: This method is exposed to custom plugins. @@ -446,6 +445,7 @@ def increment_serial_number(serial): Returns: incremented value, or None if incrementing could not be performed. """ + from InvenTree.exceptions import log_error from plugin.registry import registry # Ensure we start with a string value @@ -454,16 +454,30 @@ def increment_serial_number(serial): # First, let any plugins attempt to increment the serial number for plugin in registry.with_mixin('validation'): - result = plugin.increment_serial_number(serial) - if result is not None: - return str(result) + try: + if not hasattr(plugin, 'increment_serial_number'): + continue + + signature = inspect.signature(plugin.increment_serial_number) + + # Note: 2024-08-21 - The 'part' parameter has been added to the signature + if 'part' in signature.parameters: + result = plugin.increment_serial_number(serial, part=part) + else: + result = plugin.increment_serial_number(serial) + if result is not None: + return str(result) + except Exception: + log_error(f'{plugin.slug}.increment_serial_number') # If we get to here, no plugins were able to "increment" the provided serial value # Attempt to perform increment according to some basic rules return increment(serial) -def extract_serial_numbers(input_string, expected_quantity: int, starting_value=None): +def extract_serial_numbers( + input_string, expected_quantity: int, starting_value=None, part=None +): """Extract a list of serial numbers from a provided input string. The input string can be specified using the following concepts: @@ -483,27 +497,29 @@ def extract_serial_numbers(input_string, expected_quantity: int, starting_value= starting_value: Provide a starting value for the sequence (or None) """ if starting_value is None: - starting_value = increment_serial_number(None) + starting_value = increment_serial_number(None, part=part) try: expected_quantity = int(expected_quantity) except ValueError: raise ValidationError([_('Invalid quantity provided')]) - if input_string: - input_string = str(input_string).strip() - else: - input_string = '' + if expected_quantity > 1000: + raise ValidationError({ + 'quantity': [_('Cannot serialize more than 1000 items at once')] + }) + + input_string = str(input_string).strip() if input_string else '' if len(input_string) == 0: raise ValidationError([_('Empty serial number string')]) - next_value = increment_serial_number(starting_value) + next_value = increment_serial_number(starting_value, part=part) # Substitute ~ character with latest value while '~' in input_string and next_value: input_string = input_string.replace('~', str(next_value), 1) - next_value = increment_serial_number(next_value) + next_value = increment_serial_number(next_value, part=part) # Split input string by whitespace or comma (,) characters groups = re.split(r'[\s,]+', input_string) @@ -557,7 +573,7 @@ def extract_serial_numbers(input_string, expected_quantity: int, starting_value= if a == b: # Invalid group - add_error(_(f'Invalid group range: {group}')) + add_error(_(f'Invalid group: {group}')) continue group_items = [] @@ -600,7 +616,7 @@ def extract_serial_numbers(input_string, expected_quantity: int, starting_value= for item in group_items: add_serial(item) else: - add_error(_(f'Invalid group range: {group}')) + add_error(_(f'Invalid group: {group}')) else: # In the case of a different number of hyphens, simply add the entire group @@ -618,14 +634,14 @@ def extract_serial_numbers(input_string, expected_quantity: int, starting_value= sequence_count = max(0, expected_quantity - len(serials)) if len(items) > 2 or len(items) == 0: - add_error(_(f'Invalid group sequence: {group}')) + add_error(_(f'Invalid group: {group}')) continue elif len(items) == 2: try: if items[1]: sequence_count = int(items[1]) + 1 except ValueError: - add_error(_(f'Invalid group sequence: {group}')) + add_error(_(f'Invalid group: {group}')) continue value = items[0] @@ -644,7 +660,7 @@ def extract_serial_numbers(input_string, expected_quantity: int, starting_value= for item in sequence_items: add_serial(item) else: - add_error(_(f'Invalid group sequence: {group}')) + add_error(_(f'Invalid group: {group}')) else: # At this point, we assume that the 'group' is just a single serial value @@ -800,14 +816,73 @@ def remove_non_printable_characters( if remove_unicode: # Remove Unicode control characters if remove_newline: - cleaned = regex.sub('[^\P{C}]+', '', cleaned) + cleaned = regex.sub(r'[^\P{C}]+', '', cleaned) else: # Use 'negative-lookahead' to exclude newline character - cleaned = regex.sub('(?![\x0a])[^\P{C}]+', '', cleaned) + cleaned = regex.sub('(?![\x0a])[^\\P{C}]+', '', cleaned) return cleaned +def clean_markdown(value: str): + """Clean a markdown string. + + This function will remove javascript and other potentially harmful content from the markdown string. + """ + import markdown + + try: + markdownify_settings = settings.MARKDOWNIFY['default'] + except (AttributeError, KeyError): + markdownify_settings = {} + + extensions = markdownify_settings.get('MARKDOWN_EXTENSIONS', []) + extension_configs = markdownify_settings.get('MARKDOWN_EXTENSION_CONFIGS', {}) + + # Generate raw HTML from provided markdown (without sanitizing) + # Note: The 'html' output_format is required to generate self closing tags, e.g. instead of + html = markdown.markdown( + value or '', + extensions=extensions, + extension_configs=extension_configs, + output_format='html', + ) + + # Bleach settings + whitelist_tags = markdownify_settings.get( + 'WHITELIST_TAGS', bleach.sanitizer.ALLOWED_TAGS + ) + whitelist_attrs = markdownify_settings.get( + 'WHITELIST_ATTRS', bleach.sanitizer.ALLOWED_ATTRIBUTES + ) + whitelist_styles = markdownify_settings.get( + 'WHITELIST_STYLES', bleach.css_sanitizer.ALLOWED_CSS_PROPERTIES + ) + whitelist_protocols = markdownify_settings.get( + 'WHITELIST_PROTOCOLS', bleach.sanitizer.ALLOWED_PROTOCOLS + ) + strip = markdownify_settings.get('STRIP', True) + + css_sanitizer = bleach.css_sanitizer.CSSSanitizer( + allowed_css_properties=whitelist_styles + ) + cleaner = bleach.Cleaner( + tags=whitelist_tags, + attributes=whitelist_attrs, + css_sanitizer=css_sanitizer, + protocols=whitelist_protocols, + strip=strip, + ) + + # Clean the HTML content (for comparison). This must be the same as the original content + clean_html = cleaner.clean(html) + + if html != clean_html: + raise ValidationError(_('Data contains prohibited markdown content')) + + return value + + def hash_barcode(barcode_data): """Calculate a 'unique' hash for a barcode string. @@ -827,7 +902,7 @@ def hash_barcode(barcode_data): def hash_file(filename: Union[str, Path], storage: Union[Storage, None] = None): """Return the MD5 hash of a file.""" content = ( - open(filename, 'rb').read() + open(filename, 'rb').read() # noqa: SIM115 if storage is None else storage.open(str(filename), 'rb').read() ) @@ -865,7 +940,7 @@ def server_timezone() -> str: return settings.TIME_ZONE -def to_local_time(time, target_tz: str = None): +def to_local_time(time, target_tz: Optional[str] = None): """Convert the provided time object to the local timezone. Arguments: @@ -947,7 +1022,14 @@ def get_objectreference( ret = {} if url_fnc: ret['link'] = url_fnc() - return {'name': str(item), 'model': str(model_cls._meta.verbose_name), **ret} + + return { + 'name': str(item), + 'model_name': str(model_cls._meta.verbose_name), + 'model_type': str(model_cls._meta.model_name), + 'model_id': getattr(item, 'pk', None), + **ret, + } Inheritors_T = TypeVar('Inheritors_T') diff --git a/src/backend/InvenTree/InvenTree/email.py b/src/backend/InvenTree/InvenTree/helpers_email.py similarity index 96% rename from src/backend/InvenTree/InvenTree/email.py rename to src/backend/InvenTree/InvenTree/helpers_email.py index a5f7b283df..679a255928 100644 --- a/src/backend/InvenTree/InvenTree/email.py +++ b/src/backend/InvenTree/InvenTree/helpers_email.py @@ -62,7 +62,7 @@ def send_email(subject, body, recipients, from_email=None, html_message=None): # If we are importing data, don't send emails return - if not InvenTree.email.is_email_configured() and not settings.TESTING: + if not is_email_configured() and not settings.TESTING: # Email is not configured / enabled return @@ -86,4 +86,5 @@ def send_email(subject, body, recipients, from_email=None, html_message=None): recipients, fail_silently=False, html_message=html_message, + group='notification', ) diff --git a/src/backend/InvenTree/InvenTree/helpers_model.py b/src/backend/InvenTree/InvenTree/helpers_model.py index 810c44c633..61e66d2900 100644 --- a/src/backend/InvenTree/InvenTree/helpers_model.py +++ b/src/backend/InvenTree/InvenTree/helpers_model.py @@ -114,10 +114,7 @@ def download_image_from_url(remote_url, timeout=2.5): # Add user specified user-agent to request (if specified) user_agent = get_global_setting('INVENTREE_DOWNLOAD_FROM_URL_USER_AGENT') - if user_agent: - headers = {'User-Agent': user_agent} - else: - headers = None + headers = {'User-Agent': user_agent} if user_agent else None try: response = requests.get( @@ -130,7 +127,7 @@ def download_image_from_url(remote_url, timeout=2.5): # Throw an error if anything goes wrong response.raise_for_status() except requests.exceptions.ConnectionError as exc: - raise Exception(_('Connection error') + f': {str(exc)}') + raise Exception(_('Connection error') + f': {exc!s}') except requests.exceptions.Timeout as exc: raise exc except requests.exceptions.HTTPError: @@ -138,7 +135,7 @@ def download_image_from_url(remote_url, timeout=2.5): _('Server responded with invalid status code') + f': {response.status_code}' ) except Exception as exc: - raise Exception(_('Exception occurred') + f': {str(exc)}') + raise Exception(_('Exception occurred') + f': {exc!s}') if response.status_code != 200: raise Exception( @@ -213,9 +210,6 @@ def render_currency( except Exception: pass - if decimal_places is None: - decimal_places = get_global_setting('PRICING_DECIMAL_PLACES', 6) - if min_decimal_places is None: min_decimal_places = get_global_setting('PRICING_DECIMAL_PLACES_MIN', 0) @@ -225,17 +219,19 @@ def render_currency( value = Decimal(str(money.amount)).normalize() value = str(value) - if '.' in value: - decimals = len(value.split('.')[-1]) - - decimals = max(decimals, min_decimal_places) - decimals = min(decimals, decimal_places) - - decimal_places = decimals + if decimal_places is not None: + # Decimal place count is provided, use it + pass + elif '.' in value: + # If the value has a decimal point, use the number of decimal places in the value + decimal_places = len(value.split('.')[-1]) else: - decimal_places = max(decimal_places, 2) + # No decimal point, use 2 as a default + decimal_places = 2 - decimal_places = max(decimal_places, max_decimal_places) + # Clip the decimal places to the specified range + decimal_places = max(decimal_places, min_decimal_places) + decimal_places = min(decimal_places, max_decimal_places) return format_money( money, decimal_places=decimal_places, include_symbol=include_symbol diff --git a/src/backend/InvenTree/InvenTree/locales.py b/src/backend/InvenTree/InvenTree/locales.py index 62e3a8bd9d..f68b0ae148 100644 --- a/src/backend/InvenTree/InvenTree/locales.py +++ b/src/backend/InvenTree/InvenTree/locales.py @@ -10,6 +10,8 @@ Additionally, update the following files with the new locale code: - /src/frontend/.linguirc file - /src/frontend/src/contexts/LanguageContext.tsx + +(and then run "invoke int.frontend-trans") """ from django.utils.translation import gettext_lazy as _ @@ -34,6 +36,7 @@ LOCALES = [ ('it', _('Italian')), ('ja', _('Japanese')), ('ko', _('Korean')), + ('lt', _('Lithuanian')), ('lv', _('Latvian')), ('nl', _('Dutch')), ('no', _('Norwegian')), diff --git a/src/backend/InvenTree/InvenTree/magic_login.py b/src/backend/InvenTree/InvenTree/magic_login.py index 996e0b35d1..bc4e7c6ece 100644 --- a/src/backend/InvenTree/InvenTree/magic_login.py +++ b/src/backend/InvenTree/InvenTree/magic_login.py @@ -25,7 +25,7 @@ def send_simple_login_email(user, link): ) send_mail( - _(f'[{site_name}] Log in to the app'), + f'[{site_name}] ' + _('Log in to the app'), email_plaintext_message, settings.DEFAULT_FROM_EMAIL, [user.email], diff --git a/src/backend/InvenTree/InvenTree/management/commands/collectplugins.py b/src/backend/InvenTree/InvenTree/management/commands/collectplugins.py index 77b00f73b5..ce7df416fc 100644 --- a/src/backend/InvenTree/InvenTree/management/commands/collectplugins.py +++ b/src/backend/InvenTree/InvenTree/management/commands/collectplugins.py @@ -8,6 +8,7 @@ class Command(BaseCommand): def handle(self, *args, **kwargs): """Run the management command.""" - from plugin.staticfiles import collect_plugins_static_files + import plugin.staticfiles - collect_plugins_static_files() + plugin.staticfiles.collect_plugins_static_files() + plugin.staticfiles.clear_plugins_static_files() diff --git a/src/backend/InvenTree/InvenTree/management/commands/export_settings_definitions.py b/src/backend/InvenTree/InvenTree/management/commands/export_settings_definitions.py index 8587e936d0..fef25f676a 100644 --- a/src/backend/InvenTree/InvenTree/management/commands/export_settings_definitions.py +++ b/src/backend/InvenTree/InvenTree/management/commands/export_settings_definitions.py @@ -47,7 +47,7 @@ class Command(BaseCommand): filename = kwargs.get('filename', 'inventree_settings.json') - with open(filename, 'w') as f: + with open(filename, 'w', encoding='utf-8') as f: json.dump(settings, f, indent=4) print(f"Exported InvenTree settings definitions to '{filename}'") diff --git a/src/backend/InvenTree/InvenTree/management/commands/migrate_icons.py b/src/backend/InvenTree/InvenTree/management/commands/migrate_icons.py index c4e1305686..1ff5e6fd62 100644 --- a/src/backend/InvenTree/InvenTree/management/commands/migrate_icons.py +++ b/src/backend/InvenTree/InvenTree/management/commands/migrate_icons.py @@ -103,14 +103,14 @@ class Command(BaseCommand): }) self.stdout.write(f'Writing icon map for {len(icons.keys())} icons') - with open(kwargs['output_file'], 'w') as f: + with open(kwargs['output_file'], 'w', encoding='utf-8') as f: json.dump(icons, f, indent=2) self.stdout.write(f'Icon map written to {kwargs["output_file"]}') # Import icon map file if kwargs['input_file']: - with open(kwargs['input_file'], 'r') as f: + with open(kwargs['input_file'], encoding='utf-8') as f: icons = json.load(f) self.stdout.write(f'Loaded icon map for {len(icons.keys())} icons') diff --git a/src/backend/InvenTree/InvenTree/management/commands/prerender.py b/src/backend/InvenTree/InvenTree/management/commands/prerender.py index 54ed4601a4..aa752e4e1d 100644 --- a/src/backend/InvenTree/InvenTree/management/commands/prerender.py +++ b/src/backend/InvenTree/InvenTree/management/commands/prerender.py @@ -19,10 +19,11 @@ def render_file(file_name, source, target, locales, ctx): target_file = os.path.join(target, locale + '.' + file_name) - with open(target_file, 'w') as localised_file: - with lang_over(locale): - rendered = render_to_string(os.path.join(source, file_name), ctx) - localised_file.write(rendered) + with open(target_file, 'w', encoding='utf-8') as localised_file, lang_over( + locale + ): + rendered = render_to_string(os.path.join(source, file_name), ctx) + localised_file.write(rendered) class Command(BaseCommand): diff --git a/src/backend/InvenTree/InvenTree/management/commands/rebuild_thumbnails.py b/src/backend/InvenTree/InvenTree/management/commands/rebuild_thumbnails.py index 72512f6e44..93f12f3436 100644 --- a/src/backend/InvenTree/InvenTree/management/commands/rebuild_thumbnails.py +++ b/src/backend/InvenTree/InvenTree/management/commands/rebuild_thumbnails.py @@ -35,7 +35,7 @@ class Command(BaseCommand): img_paths.append(x.path) if len(img_paths) > 0: - if all((os.path.exists(path) for path in img_paths)): + if all(os.path.exists(path) for path in img_paths): # All images exist - skip further work return diff --git a/src/backend/InvenTree/InvenTree/management/commands/remove_mfa.py b/src/backend/InvenTree/InvenTree/management/commands/remove_mfa.py index 4cb4f21659..60a7cac51f 100644 --- a/src/backend/InvenTree/InvenTree/management/commands/remove_mfa.py +++ b/src/backend/InvenTree/InvenTree/management/commands/remove_mfa.py @@ -35,4 +35,4 @@ class Command(BaseCommand): mfa_user[0].staticdevice_set.all().delete() # TOTP tokens mfa_user[0].totpdevice_set.all().delete() - print(f'Removed all MFA methods for user {str(mfa_user[0])}') + print(f'Removed all MFA methods for user {mfa_user[0]!s}') diff --git a/src/backend/InvenTree/InvenTree/metadata.py b/src/backend/InvenTree/InvenTree/metadata.py index 15a5f2f079..0670c9b3ac 100644 --- a/src/backend/InvenTree/InvenTree/metadata.py +++ b/src/backend/InvenTree/InvenTree/metadata.py @@ -2,9 +2,13 @@ import logging -from rest_framework import serializers +from django.core.exceptions import PermissionDenied +from django.http import Http404 + +from rest_framework import exceptions, serializers from rest_framework.fields import empty from rest_framework.metadata import SimpleMetadata +from rest_framework.request import clone_request from rest_framework.utils import model_meta import common.models @@ -29,6 +33,40 @@ class InvenTreeMetadata(SimpleMetadata): so we can perform lookup for ForeignKey related fields. """ + def determine_actions(self, request, view): + """Determine the 'actions' available to the user for the given view. + + Note that this differs from the standard DRF implementation, + in that we also allow annotation for the 'GET' method. + + This allows the client to determine what fields are available, + even if they are only for a read (GET) operation. + + See SimpleMetadata.determine_actions for more information. + """ + actions = {} + + for method in {'PUT', 'POST', 'GET'} & set(view.allowed_methods): + view.request = clone_request(request, method) + try: + # Test global permissions + if hasattr(view, 'check_permissions'): + view.check_permissions(view.request) + # Test object permissions + if method == 'PUT' and hasattr(view, 'get_object'): + view.get_object() + except (exceptions.APIException, PermissionDenied, Http404): + pass + else: + # If user has appropriate permissions for the view, include + # appropriate metadata about the fields that should be supplied. + serializer = view.get_serializer() + actions[method] = self.get_serializer_info(serializer) + finally: + view.request = request + + return actions + def determine_metadata(self, request, view): """Overwrite the metadata to adapt to the request user.""" self.request = request @@ -81,6 +119,7 @@ class InvenTreeMetadata(SimpleMetadata): # Map the request method to a permission type rolemap = { + 'GET': 'view', 'POST': 'add', 'PUT': 'change', 'PATCH': 'change', @@ -102,10 +141,6 @@ class InvenTreeMetadata(SimpleMetadata): if 'DELETE' in view.allowed_methods and check(user, table, 'delete'): actions['DELETE'] = {} - # Add a 'VIEW' action if we are allowed to view - if 'GET' in view.allowed_methods and check(user, table, 'view'): - actions['GET'] = {} - metadata['actions'] = actions except AttributeError: @@ -204,7 +239,7 @@ class InvenTreeMetadata(SimpleMetadata): # Iterate through simple fields for name, field in model_fields.fields.items(): - if name in serializer_info.keys(): + if name in serializer_info: if name in read_only_fields: serializer_info[name]['read_only'] = True @@ -236,7 +271,7 @@ class InvenTreeMetadata(SimpleMetadata): # Iterate through relations for name, relation in model_fields.relations.items(): - if name not in serializer_info.keys(): + if name not in serializer_info: # Skip relation not defined in serializer continue @@ -307,12 +342,12 @@ class InvenTreeMetadata(SimpleMetadata): instance_filters = instance.api_instance_filters() for field_name, field_filters in instance_filters.items(): - if field_name not in serializer_info.keys(): + if field_name not in serializer_info: # The field might be missing, but is added later on # This function seems to get called multiple times? continue - if 'instance_filters' not in serializer_info[field_name].keys(): + if 'instance_filters' not in serializer_info[field_name]: serializer_info[field_name]['instance_filters'] = {} for key, value in field_filters.items(): diff --git a/src/backend/InvenTree/InvenTree/middleware.py b/src/backend/InvenTree/InvenTree/middleware.py index 5790c8c9b9..e528f4aa96 100644 --- a/src/backend/InvenTree/InvenTree/middleware.py +++ b/src/backend/InvenTree/InvenTree/middleware.py @@ -36,7 +36,7 @@ def get_token_from_request(request): return None -class AuthRequiredMiddleware(object): +class AuthRequiredMiddleware: """Check for user to be authenticated.""" def __init__(self, get_response): @@ -92,23 +92,18 @@ class AuthRequiredMiddleware(object): # Allow static files to be accessed without auth # Important for e.g. login page - if request.path_info.startswith('/static/'): - authorized = True - - # Unauthorized users can access the login page - elif request.path_info.startswith('/accounts/'): - authorized = True - - elif ( - request.path_info.startswith(f'/{settings.FRONTEND_URL_BASE}/') - or request.path_info.startswith('/assets/') - or request.path_info == f'/{settings.FRONTEND_URL_BASE}' + if ( + request.path_info.startswith('/static/') + or request.path_info.startswith('/accounts/') + or ( + request.path_info.startswith(f'/{settings.FRONTEND_URL_BASE}/') + or request.path_info.startswith('/assets/') + or request.path_info == f'/{settings.FRONTEND_URL_BASE}' + ) + or self.check_token(request) ): authorized = True - elif self.check_token(request): - authorized = True - # No authorization was found for the request if not authorized: path = request.path_info diff --git a/src/backend/InvenTree/InvenTree/mixins.py b/src/backend/InvenTree/InvenTree/mixins.py index fd63726d96..ec4fa11f59 100644 --- a/src/backend/InvenTree/InvenTree/mixins.py +++ b/src/backend/InvenTree/InvenTree/mixins.py @@ -6,7 +6,11 @@ from rest_framework import generics, mixins, status from rest_framework.response import Response from InvenTree.fields import InvenTreeNotesField -from InvenTree.helpers import remove_non_printable_characters, strip_html_tags +from InvenTree.helpers import ( + clean_markdown, + remove_non_printable_characters, + strip_html_tags, +) class CleanMixin: @@ -57,6 +61,7 @@ class CleanMixin: # By default, newline characters are removed remove_newline = True + is_markdown = False try: if hasattr(self, 'serializer_class'): @@ -64,11 +69,12 @@ class CleanMixin: field = model._meta.get_field(field) # The following field types allow newline characters - allow_newline = [InvenTreeNotesField] + allow_newline = [(InvenTreeNotesField, True)] for field_type in allow_newline: - if issubclass(type(field), field_type): + if issubclass(type(field), field_type[0]): remove_newline = False + is_markdown = field_type[1] break except AttributeError: @@ -80,6 +86,9 @@ class CleanMixin: cleaned, remove_newline=remove_newline ) + if is_markdown: + cleaned = clean_markdown(cleaned) + return cleaned def clean_data(self, data: dict) -> dict: @@ -128,14 +137,10 @@ class CreateAPI(CleanMixin, generics.CreateAPIView): class RetrieveAPI(generics.RetrieveAPIView): """View for retrieve API.""" - pass - class RetrieveUpdateAPI(CleanMixin, generics.RetrieveUpdateAPIView): """View for retrieve and update API.""" - pass - class CustomDestroyModelMixin: """This mixin was created pass the kwargs from the API to the models.""" @@ -184,5 +189,9 @@ class RetrieveUpdateDestroyAPI(CleanMixin, generics.RetrieveUpdateDestroyAPIView """View for retrieve, update and destroy API.""" +class RetrieveDestroyAPI(generics.RetrieveDestroyAPIView): + """View for retrieve and destroy API.""" + + class UpdateAPI(CleanMixin, generics.UpdateAPIView): """View for update API.""" diff --git a/src/backend/InvenTree/InvenTree/models.py b/src/backend/InvenTree/InvenTree/models.py index 7430ee5c9f..8b465222b2 100644 --- a/src/backend/InvenTree/InvenTree/models.py +++ b/src/backend/InvenTree/InvenTree/models.py @@ -10,8 +10,10 @@ from django.db import models from django.db.models.signals import post_save from django.dispatch import receiver from django.urls import reverse +from django.urls.exceptions import NoReverseMatch from django.utils.translation import gettext_lazy as _ +from django_q.models import Task from error_report.models import Error from mptt.exceptions import InvalidMove from mptt.models import MPTTModel, TreeForeignKey @@ -390,10 +392,7 @@ class ReferenceIndexingMixin(models.Model): except Exception: # If anything goes wrong, return the most recent reference recent = cls.get_most_recent_item() - if recent: - reference = recent.reference - else: - reference = '' + reference = recent.reference if recent else '' return reference @@ -410,14 +409,14 @@ class ReferenceIndexingMixin(models.Model): }) # Check that only 'allowed' keys are provided - for key in info.keys(): - if key not in ctx.keys(): + for key in info: + if key not in ctx: raise ValidationError({ 'value': _('Unknown format key specified') + f": '{key}'" }) # Check that the 'ref' variable is specified - if 'ref' not in info.keys(): + if 'ref' not in info: raise ValidationError({ 'value': _('Missing required format key') + ": 'ref'" }) @@ -442,7 +441,7 @@ class ReferenceIndexingMixin(models.Model): ) # Check that the reference field can be rebuild - cls.rebuild_reference_field(value, validate=True) + return cls.rebuild_reference_field(value, validate=True) @classmethod def rebuild_reference_field(cls, reference, validate=False): @@ -859,7 +858,7 @@ class InvenTreeTree(MetadataMixin, PluginValidationMixin, MPTTModel): Returns: List of category names from the top level to this category """ - return self.parentpath + [self] + return [*self.parentpath, self] def get_path(self): """Return a list of element in the item tree. @@ -1054,6 +1053,71 @@ class InvenTreeBarcodeMixin(models.Model): self.save() +def notify_staff_users_of_error(instance, label: str, context: dict): + """Helper function to notify staff users of an error.""" + import common.models + import common.notifications + + try: + # Get all staff users + staff_users = get_user_model().objects.filter(is_staff=True) + + target_users = [] + + # Send a notification to each staff user (unless they have disabled error notifications) + for user in staff_users: + if common.models.InvenTreeUserSetting.get_setting( + 'NOTIFICATION_ERROR_REPORT', True, user=user + ): + target_users.append(user) + + if len(target_users) > 0: + common.notifications.trigger_notification( + instance, + label, + context=context, + targets=target_users, + delivery_methods={common.notifications.UIMessageNotification}, + ) + + except Exception as exc: + # We do not want to throw an exception while reporting an exception! + logger.error(exc) + + +@receiver(post_save, sender=Task, dispatch_uid='failure_post_save_notification') +def after_failed_task(sender, instance: Task, created: bool, **kwargs): + """Callback when a new task failure log is generated.""" + from django.conf import settings + + max_attempts = int(settings.Q_CLUSTER.get('max_attempts', 5)) + n = instance.attempt_count + + # Only notify once the maximum number of attempts has been reached + if not instance.success and n >= max_attempts: + try: + url = InvenTree.helpers_model.construct_absolute_url( + reverse( + 'admin:django_q_failure_change', kwargs={'object_id': instance.pk} + ) + ) + except (ValueError, NoReverseMatch): + url = '' + + notify_staff_users_of_error( + instance, + 'inventree.task_failure', + { + 'failure': instance, + 'name': _('Task Failure'), + 'message': _( + f"Background worker task '{instance.func}' failed after {n} attempts" + ), + 'link': url, + }, + ) + + @receiver(post_save, sender=Error, dispatch_uid='error_post_save_notification') def after_error_logged(sender, instance: Error, created: bool, **kwargs): """Callback when a server error is logged. @@ -1062,41 +1126,21 @@ def after_error_logged(sender, instance: Error, created: bool, **kwargs): """ if created: try: - import common.models - import common.notifications - - users = get_user_model().objects.filter(is_staff=True) - - link = InvenTree.helpers_model.construct_absolute_url( + url = InvenTree.helpers_model.construct_absolute_url( reverse( 'admin:error_report_error_change', kwargs={'object_id': instance.pk} ) ) + except NoReverseMatch: + url = '' - context = { + notify_staff_users_of_error( + instance, + 'inventree.error_log', + { 'error': instance, 'name': _('Server Error'), 'message': _('An error has been logged by the server.'), - 'link': link, - } - - target_users = [] - - for user in users: - if common.models.InvenTreeUserSetting.get_setting( - 'NOTIFICATION_ERROR_REPORT', True, user=user - ): - target_users.append(user) - - if len(target_users) > 0: - common.notifications.trigger_notification( - instance, - 'inventree.error_log', - context=context, - targets=target_users, - delivery_methods={common.notifications.UIMessageNotification}, - ) - - except Exception as exc: - """We do not want to throw an exception while reporting an exception""" - logger.error(exc) # noqa: LOG005 + 'link': url, + }, + ) diff --git a/src/backend/InvenTree/InvenTree/permissions.py b/src/backend/InvenTree/InvenTree/permissions.py index 2bbf91c301..42088176ae 100644 --- a/src/backend/InvenTree/InvenTree/permissions.py +++ b/src/backend/InvenTree/InvenTree/permissions.py @@ -79,6 +79,9 @@ class RolePermission(permissions.BasePermission): # Extract the model name associated with this request model = get_model_for_view(view) + if model is None: + return True + app_label = model._meta.app_label model_name = model._meta.model_name @@ -99,14 +102,24 @@ class IsSuperuser(permissions.IsAdminUser): return bool(request.user and request.user.is_superuser) +class IsSuperuserOrReadOnly(permissions.IsAdminUser): + """Allow read-only access to any user, but write access is restricted to superuser users.""" + + def has_permission(self, request, view): + """Check if the user is a superuser.""" + return bool( + (request.user and request.user.is_superuser) + or request.method in permissions.SAFE_METHODS + ) + + class IsStaffOrReadOnly(permissions.IsAdminUser): """Allows read-only access to any user, but write access is restricted to staff users.""" def has_permission(self, request, view): """Check if the user is a superuser.""" return bool( - request.user - and request.user.is_staff + (request.user and request.user.is_staff) or request.method in permissions.SAFE_METHODS ) diff --git a/src/backend/InvenTree/InvenTree/ready.py b/src/backend/InvenTree/InvenTree/ready.py index b08941d1c0..dc83d3caaf 100644 --- a/src/backend/InvenTree/InvenTree/ready.py +++ b/src/backend/InvenTree/InvenTree/ready.py @@ -11,43 +11,37 @@ def isInTestMode(): def isImportingData(): """Returns True if the database is currently importing (or exporting) data, e.g. 'loaddata' command is performed.""" - return any((x in sys.argv for x in ['flush', 'loaddata', 'dumpdata'])) + return any(x in sys.argv for x in ['flush', 'loaddata', 'dumpdata']) def isRunningMigrations(): """Return True if the database is currently running migrations.""" return any( - ( - x in sys.argv - for x in ['migrate', 'makemigrations', 'showmigrations', 'runmigrations'] - ) + x in sys.argv + for x in ['migrate', 'makemigrations', 'showmigrations', 'runmigrations'] ) def isRebuildingData(): """Return true if any of the rebuilding commands are being executed.""" return any( - ( - x in sys.argv - for x in ['prerender', 'rebuild_models', 'rebuild_thumbnails', 'rebuild'] - ) + x in sys.argv + for x in ['prerender', 'rebuild_models', 'rebuild_thumbnails', 'rebuild'] ) def isRunningBackup(): """Return true if any of the backup commands are being executed.""" return any( - ( - x in sys.argv - for x in [ - 'backup', - 'restore', - 'dbbackup', - 'dbresotore', - 'mediabackup', - 'mediarestore', - ] - ) + x in sys.argv + for x in [ + 'backup', + 'restore', + 'dbbackup', + 'dbresotore', + 'mediabackup', + 'mediarestore', + ] ) @@ -64,10 +58,7 @@ def isInServerThread(): if 'runserver' in sys.argv: return True - if 'gunicorn' in sys.argv[0]: - return True - - return False + return 'gunicorn' in sys.argv[0] def isInMainThread(): @@ -128,11 +119,7 @@ def canAppAccessDatabase( if not allow_plugins: excluded_commands.extend(['collectplugins']) - for cmd in excluded_commands: - if cmd in sys.argv: - return False - - return True + return all(cmd not in sys.argv for cmd in excluded_commands) def isPluginRegistryLoaded(): diff --git a/src/backend/InvenTree/InvenTree/sentry.py b/src/backend/InvenTree/InvenTree/sentry.py index 18f65892a2..a6e3b78d32 100644 --- a/src/backend/InvenTree/InvenTree/sentry.py +++ b/src/backend/InvenTree/InvenTree/sentry.py @@ -8,6 +8,7 @@ from django.http import Http404 import rest_framework.exceptions import sentry_sdk +from djmoney.contrib.exchange.exceptions import MissingRate from sentry_sdk.integrations.django import DjangoIntegration import InvenTree.version @@ -27,6 +28,7 @@ def sentry_ignore_errors(): """ return [ Http404, + MissingRate, ValidationError, rest_framework.exceptions.AuthenticationFailed, rest_framework.exceptions.NotAuthenticated, diff --git a/src/backend/InvenTree/InvenTree/serializers.py b/src/backend/InvenTree/InvenTree/serializers.py index b50634d016..2a5f730620 100644 --- a/src/backend/InvenTree/InvenTree/serializers.py +++ b/src/backend/InvenTree/InvenTree/serializers.py @@ -89,7 +89,7 @@ class InvenTreeCurrencySerializer(serializers.ChoiceField): ) if allow_blank: - choices = [('', '---------')] + choices + choices = [('', '---------'), *choices] kwargs['choices'] = choices @@ -379,7 +379,7 @@ class InvenTreeTaggitSerializer(TaggitSerializer): tag_object = super().update(instance, validated_data) - for key in to_be_tagged.keys(): + for key in to_be_tagged: # re-add the tagmanager new_tagobject = tag_object.__class__.objects.get(id=tag_object.id) setattr(tag_object, key, getattr(new_tagobject, key)) @@ -390,8 +390,6 @@ class InvenTreeTaggitSerializer(TaggitSerializer): class InvenTreeTagModelSerializer(InvenTreeTaggitSerializer, InvenTreeModelSerializer): """Combination of InvenTreeTaggitSerializer and InvenTreeModelSerializer.""" - pass - class UserSerializer(InvenTreeModelSerializer): """Serializer for a User.""" @@ -405,18 +403,21 @@ class UserSerializer(InvenTreeModelSerializer): read_only_fields = ['username', 'email'] username = serializers.CharField(label=_('Username'), help_text=_('Username')) + first_name = serializers.CharField( label=_('First Name'), help_text=_('First name of the user'), allow_blank=True ) + last_name = serializers.CharField( label=_('Last Name'), help_text=_('Last name of the user'), allow_blank=True ) + email = serializers.EmailField( label=_('Email'), help_text=_('Email address of the user'), allow_blank=True ) -class ExendedUserSerializer(UserSerializer): +class ExtendedUserSerializer(UserSerializer): """Serializer for a User with a bit more info.""" from users.serializers import GroupSerializer @@ -426,21 +427,24 @@ class ExendedUserSerializer(UserSerializer): class Meta(UserSerializer.Meta): """Metaclass defines serializer fields.""" - fields = UserSerializer.Meta.fields + [ + fields = [ + *UserSerializer.Meta.fields, 'groups', 'is_staff', 'is_superuser', 'is_active', ] - read_only_fields = UserSerializer.Meta.read_only_fields + ['groups'] + read_only_fields = [*UserSerializer.Meta.read_only_fields, 'groups'] is_staff = serializers.BooleanField( label=_('Staff'), help_text=_('Does this user have staff permissions') ) + is_superuser = serializers.BooleanField( label=_('Superuser'), help_text=_('Is this user a superuser') ) + is_active = serializers.BooleanField( label=_('Active'), help_text=_('Is this user account active') ) @@ -465,9 +469,33 @@ class ExendedUserSerializer(UserSerializer): return super().validate(attrs) -class UserCreateSerializer(ExendedUserSerializer): +class MeUserSerializer(ExtendedUserSerializer): + """API serializer specifically for the 'me' endpoint.""" + + class Meta(ExtendedUserSerializer.Meta): + """Metaclass options. + + Extends the ExtendedUserSerializer.Meta options, + but ensures that certain fields are read-only. + """ + + read_only_fields = [ + *ExtendedUserSerializer.Meta.read_only_fields, + 'is_active', + 'is_staff', + 'is_superuser', + ] + + +class UserCreateSerializer(ExtendedUserSerializer): """Serializer for creating a new User.""" + class Meta(ExtendedUserSerializer.Meta): + """Metaclass options for the UserCreateSerializer.""" + + # Prevent creation of users with superuser or staff permissions + read_only_fields = ['groups', 'is_staff', 'is_superuser'] + def validate(self, attrs): """Expanded valiadation for auth.""" # Check that the user trying to create a new user is a superuser @@ -482,6 +510,7 @@ class UserCreateSerializer(ExendedUserSerializer): def create(self, validated_data): """Send an e email to the user after creation.""" from InvenTree.helpers_model import get_base_url + from InvenTree.tasks import email_user, offload_task base_url = get_base_url() @@ -499,8 +528,12 @@ class UserCreateSerializer(ExendedUserSerializer): if base_url: message += f'\n\nURL: {base_url}' + subject = _('Welcome to InvenTree') + # Send the user an onboarding email (from current site) - instance.email_user(subject=_('Welcome to InvenTree'), message=message) + offload_task( + email_user, instance.pk, str(subject), str(message), force_async=True + ) return instance @@ -596,7 +629,7 @@ class DataFileUploadSerializer(serializers.Serializer): accepted_file_types = ['xls', 'xlsx', 'csv', 'tsv', 'xml'] if ext not in accepted_file_types: - raise serializers.ValidationError(_('Unsupported file type')) + raise serializers.ValidationError(_('Unsupported file format')) # Impose a 50MB limit on uploaded BOM files max_upload_file_size = 50 * 1024 * 1024 @@ -704,7 +737,6 @@ class DataFileUploadSerializer(serializers.Serializer): def save(self): """Empty overwrite for save.""" - ... class DataFileExtractSerializer(serializers.Serializer): @@ -806,11 +838,10 @@ class DataFileExtractSerializer(serializers.Serializer): required = field.get('required', False) # Check for missing required columns - if required: - if name not in self.columns: - raise serializers.ValidationError( - _(f"Missing required column: '{name}'") - ) + if required and name not in self.columns: + raise serializers.ValidationError( + _(f"Missing required column: '{name}'") + ) for col in self.columns: if not col: @@ -824,7 +855,6 @@ class DataFileExtractSerializer(serializers.Serializer): def save(self): """No "save" action for this serializer.""" - pass class NotesFieldMixin: @@ -882,8 +912,8 @@ class RemoteImageMixin(metaclass=serializers.SerializerMetaclass): try: self.remote_image_file = download_image_from_url(url) - except Exception as exc: + except Exception: self.remote_image_file = None - raise ValidationError(str(exc)) + raise ValidationError(_('Failed to download image from remote URL')) return url diff --git a/src/backend/InvenTree/InvenTree/settings.py b/src/backend/InvenTree/InvenTree/settings.py index 8112ea0f19..e69094096c 100644 --- a/src/backend/InvenTree/InvenTree/settings.py +++ b/src/backend/InvenTree/InvenTree/settings.py @@ -32,7 +32,8 @@ from . import config, locales checkMinPythonVersion() -INVENTREE_NEWS_URL = 'https://inventree.org/news/feed.atom' +INVENTREE_BASE_URL = 'https://inventree.org' +INVENTREE_NEWS_URL = f'{INVENTREE_BASE_URL}/news/feed.atom' # Determine if we are running in "test" mode e.g. "manage.py test" TESTING = 'test' in sys.argv or 'TESTING' in os.environ @@ -133,6 +134,34 @@ STATIC_URL = '/static/' # Web URL endpoint for served media files MEDIA_URL = '/media/' +# Are plugins enabled? +PLUGINS_ENABLED = get_boolean_setting( + 'INVENTREE_PLUGINS_ENABLED', 'plugins_enabled', False +) + +PLUGINS_INSTALL_DISABLED = get_boolean_setting( + 'INVENTREE_PLUGIN_NOINSTALL', 'plugin_noinstall', False +) + +PLUGIN_FILE = config.get_plugin_file() + +# Plugin test settings +PLUGIN_TESTING = get_setting( + 'INVENTREE_PLUGIN_TESTING', 'PLUGIN_TESTING', TESTING +) # Are plugins being tested? + +PLUGIN_TESTING_SETUP = get_setting( + 'INVENTREE_PLUGIN_TESTING_SETUP', 'PLUGIN_TESTING_SETUP', False +) # Load plugins from setup hooks in testing? + +PLUGIN_TESTING_EVENTS = False # Flag if events are tested right now + +PLUGIN_RETRY = get_setting( + 'INVENTREE_PLUGIN_RETRY', 'PLUGIN_RETRY', 3, typecast=int +) # How often should plugin loading be tried? + +PLUGIN_FILE_CHECKED = False # Was the plugin file checked? + STATICFILES_DIRS = [] # Translated Template settings @@ -153,6 +182,12 @@ if DEBUG and 'collectstatic' not in sys.argv: if web_dir.exists(): STATICFILES_DIRS.append(web_dir) + # Append directory for sample plugin static content (if in debug mode) + if PLUGINS_ENABLED: + print('Adding plugin sample static content') + STATICFILES_DIRS.append(BASE_DIR.joinpath('plugin', 'samples', 'static')) + + print('-', STATICFILES_DIRS[-1]) STATFILES_I18_PROCESSORS = ['InvenTree.context.status_codes'] # Color Themes Directory @@ -169,10 +204,11 @@ DBBACKUP_STORAGE = get_setting( # Default backup configuration DBBACKUP_STORAGE_OPTIONS = get_setting( - 'INVENTREE_BACKUP_OPTIONS', 'backup_options', None + 'INVENTREE_BACKUP_OPTIONS', + 'backup_options', + default_value={'location': config.get_backup_dir()}, + typecast=dict, ) -if DBBACKUP_STORAGE_OPTIONS is None: - DBBACKUP_STORAGE_OPTIONS = {'location': config.get_backup_dir()} INVENTREE_ADMIN_ENABLED = get_boolean_setting( 'INVENTREE_ADMIN_ENABLED', config_key='admin_enabled', default_value=True @@ -281,7 +317,7 @@ QUERYCOUNT = { 'MIN_TIME_TO_LOG': 0.1, 'MIN_QUERY_COUNT_TO_LOG': 25, }, - 'IGNORE_REQUEST_PATTERNS': ['^(?!\/(api)?(plugin)?\/).*'], + 'IGNORE_REQUEST_PATTERNS': [r'^(?!\/(api)?(plugin)?\/).*'], 'IGNORE_SQL_PATTERNS': [], 'DISPLAY_DUPLICATES': 1, 'RESPONSE_HEADER': 'X-Django-Query-Count', @@ -298,7 +334,7 @@ if ( and INVENTREE_ADMIN_ENABLED and not TESTING and get_boolean_setting('INVENTREE_DEBUG_SHELL', 'debug_shell', False) -): # noqa +): try: import django_admin_shell # noqa: F401 @@ -555,6 +591,9 @@ for key in db_keys: # Check that required database configuration options are specified required_keys = ['ENGINE', 'NAME'] +# Ensure all database keys are upper case +db_config = {key.upper(): value for key, value in db_config.items()} + for key in required_keys: if key not in db_config: # pragma: no cover error_msg = f'Missing required database configuration value {key}' @@ -812,13 +851,20 @@ _q_worker_timeout = int( get_setting('INVENTREE_BACKGROUND_TIMEOUT', 'background.timeout', 90) ) + +# Prevent running multiple background workers if global cache is disabled +# This is to prevent scheduling conflicts due to the lack of a shared cache +BACKGROUND_WORKER_COUNT = ( + int(get_setting('INVENTREE_BACKGROUND_WORKERS', 'background.workers', 4)) + if GLOBAL_CACHE_ENABLED + else 1 +) + # django-q background worker configuration Q_CLUSTER = { 'name': 'InvenTree', 'label': 'Background Tasks', - 'workers': int( - get_setting('INVENTREE_BACKGROUND_WORKERS', 'background.workers', 4) - ), + 'workers': BACKGROUND_WORKER_COUNT, 'timeout': _q_worker_timeout, 'retry': max(120, _q_worker_timeout + 30), 'max_attempts': int( @@ -949,10 +995,7 @@ USE_I18N = True # Do not use native timezone support in "test" mode # It generates a *lot* of cruft in the logs -if not TESTING: - USE_TZ = True # pragma: no cover -else: - USE_TZ = False +USE_TZ = bool(not TESTING) DATE_INPUT_FORMATS = ['%Y-%m-%d'] @@ -1058,26 +1101,40 @@ if ( sys.exit(-1) COOKIE_MODE = ( - str(get_setting('INVENTREE_COOKIE_SAMESITE', 'cookie.samesite', 'None')) + str(get_setting('INVENTREE_COOKIE_SAMESITE', 'cookie.samesite', 'False')) .lower() .strip() ) -valid_cookie_modes = {'lax': 'Lax', 'strict': 'Strict', 'none': None, 'null': None} +# Valid modes (as per the django settings documentation) +valid_cookie_modes = ['lax', 'strict', 'none'] -if COOKIE_MODE not in valid_cookie_modes.keys(): - logger.error('Invalid cookie samesite mode: %s', COOKIE_MODE) - sys.exit(-1) - -COOKIE_MODE = valid_cookie_modes[COOKIE_MODE.lower()] +if not DEBUG and not TESTING and COOKIE_MODE in valid_cookie_modes: + # Set the cookie mode (in production mode only) + COOKIE_MODE = COOKIE_MODE.capitalize() +else: + # Default to False, as per the Django settings + COOKIE_MODE = False # Additional CSRF settings CSRF_HEADER_NAME = 'HTTP_X_CSRFTOKEN' CSRF_COOKIE_NAME = 'csrftoken' + CSRF_COOKIE_SAMESITE = COOKIE_MODE SESSION_COOKIE_SAMESITE = COOKIE_MODE -SESSION_COOKIE_SECURE = get_boolean_setting( - 'INVENTREE_SESSION_COOKIE_SECURE', 'cookie.secure', False + +"""Set the SESSION_COOKIE_SECURE value based on the following rules: +- False if the server is running in DEBUG mode +- True if samesite cookie setting is set to 'None' +- Otherwise, use the value specified in the configuration file (or env var) +""" +SESSION_COOKIE_SECURE = ( + False + if DEBUG + else ( + SESSION_COOKIE_SAMESITE == 'None' + or get_boolean_setting('INVENTREE_SESSION_COOKIE_SECURE', 'cookie.secure', True) + ) ) USE_X_FORWARDED_HOST = get_boolean_setting( @@ -1229,23 +1286,29 @@ MARKDOWNIFY = { 'abbr', 'b', 'blockquote', + 'code', 'em', 'h1', 'h2', 'h3', + 'h4', + 'h5', + 'hr', 'i', 'img', 'li', 'ol', 'p', + 'pre', + 's', 'strong', - 'ul', 'table', 'thead', 'tbody', 'th', 'tr', 'td', + 'ul', ], } } @@ -1257,32 +1320,12 @@ IGNORED_ERRORS = [Http404, django.core.exceptions.PermissionDenied] MAINTENANCE_MODE_RETRY_AFTER = 10 MAINTENANCE_MODE_STATE_BACKEND = 'InvenTree.backends.InvenTreeMaintenanceModeBackend' -# Are plugins enabled? -PLUGINS_ENABLED = get_boolean_setting( - 'INVENTREE_PLUGINS_ENABLED', 'plugins_enabled', False -) -PLUGINS_INSTALL_DISABLED = get_boolean_setting( - 'INVENTREE_PLUGIN_NOINSTALL', 'plugin_noinstall', False -) - -PLUGIN_FILE = config.get_plugin_file() - -# Plugin test settings -PLUGIN_TESTING = get_setting( - 'INVENTREE_PLUGIN_TESTING', 'PLUGIN_TESTING', TESTING -) # Are plugins being tested? -PLUGIN_TESTING_SETUP = get_setting( - 'INVENTREE_PLUGIN_TESTING_SETUP', 'PLUGIN_TESTING_SETUP', False -) # Load plugins from setup hooks in testing? -PLUGIN_TESTING_EVENTS = False # Flag if events are tested right now -PLUGIN_RETRY = get_setting( - 'INVENTREE_PLUGIN_RETRY', 'PLUGIN_RETRY', 3, typecast=int -) # How often should plugin loading be tried? -PLUGIN_FILE_CHECKED = False # Was the plugin file checked? - # Flag to allow table events during testing TESTING_TABLE_EVENTS = False +# Flag to allow pricing recalculations during testing +TESTING_PRICING = False + # User interface customization values CUSTOM_LOGO = get_custom_file( 'INVENTREE_CUSTOM_LOGO', 'customize.logo', 'custom logo', lookup_media=True diff --git a/src/backend/InvenTree/InvenTree/social_auth_urls.py b/src/backend/InvenTree/InvenTree/social_auth_urls.py index 9702750b49..4be0b8d09f 100644 --- a/src/backend/InvenTree/InvenTree/social_auth_urls.py +++ b/src/backend/InvenTree/InvenTree/social_auth_urls.py @@ -94,20 +94,19 @@ for name, provider in providers.registry.provider_map.items(): urls = [] if len(adapters) == 1: urls = handle_oauth2(adapter=adapters[0]) + elif provider.id in legacy: + logger.warning( + '`%s` is not supported on platform UI. Use `%s` instead.', + provider.id, + legacy[provider.id], + ) + continue else: - if provider.id in legacy: - logger.warning( - '`%s` is not supported on platform UI. Use `%s` instead.', - provider.id, - legacy[provider.id], - ) - continue - else: - logger.error( - 'Found handler that is not yet ready for platform UI: `%s`. Open an feature request on GitHub if you need it implemented.', - provider.id, - ) - continue + logger.error( + 'Found handler that is not yet ready for platform UI: `%s`. Open an feature request on GitHub if you need it implemented.', + provider.id, + ) + continue provider_urlpatterns += [path(f'{provider.id}/', include(urls))] diff --git a/src/backend/InvenTree/InvenTree/static/script/purify.min.js b/src/backend/InvenTree/InvenTree/static/script/purify.min.js new file mode 100644 index 0000000000..9b01c0d177 --- /dev/null +++ b/src/backend/InvenTree/InvenTree/static/script/purify.min.js @@ -0,0 +1,3 @@ +/*! @license DOMPurify 3.1.7 | (c) Cure53 and other contributors | Released under the Apache license 2.0 and Mozilla Public License 2.0 | github.com/cure53/DOMPurify/blob/3.1.7/LICENSE */ +!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e="undefined"!=typeof globalThis?globalThis:e||self).DOMPurify=t()}(this,(function(){"use strict";const{entries:e,setPrototypeOf:t,isFrozen:n,getPrototypeOf:o,getOwnPropertyDescriptor:r}=Object;let{freeze:i,seal:a,create:l}=Object,{apply:c,construct:s}="undefined"!=typeof Reflect&&Reflect;i||(i=function(e){return e}),a||(a=function(e){return e}),c||(c=function(e,t,n){return e.apply(t,n)}),s||(s=function(e,t){return new e(...t)});const u=b(Array.prototype.forEach),m=b(Array.prototype.pop),p=b(Array.prototype.push),f=b(String.prototype.toLowerCase),d=b(String.prototype.toString),h=b(String.prototype.match),g=b(String.prototype.replace),T=b(String.prototype.indexOf),y=b(String.prototype.trim),E=b(Object.prototype.hasOwnProperty),_=b(RegExp.prototype.test),A=(N=TypeError,function(){for(var e=arguments.length,t=new Array(e),n=0;n1?n-1:0),r=1;r2&&void 0!==arguments[2]?arguments[2]:f;t&&t(e,null);let i=o.length;for(;i--;){let t=o[i];if("string"==typeof t){const e=r(t);e!==t&&(n(o)||(o[i]=e),t=e)}e[t]=!0}return e}function R(e){for(let t=0;t/gm),B=a(/\${[\w\W]*}/gm),W=a(/^data-[\-\w.\u00B7-\uFFFF]/),G=a(/^aria-[\-\w]+$/),Y=a(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i),j=a(/^(?:\w+script|data):/i),X=a(/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205F\u3000]/g),q=a(/^html$/i),$=a(/^[a-z][.\w]*(-[.\w]+)+$/i);var K=Object.freeze({__proto__:null,MUSTACHE_EXPR:H,ERB_EXPR:z,TMPLIT_EXPR:B,DATA_ATTR:W,ARIA_ATTR:G,IS_ALLOWED_URI:Y,IS_SCRIPT_OR_DATA:j,ATTR_WHITESPACE:X,DOCTYPE_NAME:q,CUSTOM_ELEMENT:$});const V=1,Z=3,J=7,Q=8,ee=9,te=function(){return"undefined"==typeof window?null:window};var ne=function t(){let n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:te();const o=e=>t(e);if(o.version="3.1.7",o.removed=[],!n||!n.document||n.document.nodeType!==ee)return o.isSupported=!1,o;let{document:r}=n;const a=r,c=a.currentScript,{DocumentFragment:s,HTMLTemplateElement:N,Node:b,Element:R,NodeFilter:H,NamedNodeMap:z=n.NamedNodeMap||n.MozNamedAttrMap,HTMLFormElement:B,DOMParser:W,trustedTypes:G}=n,j=R.prototype,X=C(j,"cloneNode"),$=C(j,"remove"),ne=C(j,"nextSibling"),oe=C(j,"childNodes"),re=C(j,"parentNode");if("function"==typeof N){const e=r.createElement("template");e.content&&e.content.ownerDocument&&(r=e.content.ownerDocument)}let ie,ae="";const{implementation:le,createNodeIterator:ce,createDocumentFragment:se,getElementsByTagName:ue}=r,{importNode:me}=a;let pe={};o.isSupported="function"==typeof e&&"function"==typeof re&&le&&void 0!==le.createHTMLDocument;const{MUSTACHE_EXPR:fe,ERB_EXPR:de,TMPLIT_EXPR:he,DATA_ATTR:ge,ARIA_ATTR:Te,IS_SCRIPT_OR_DATA:ye,ATTR_WHITESPACE:Ee,CUSTOM_ELEMENT:_e}=K;let{IS_ALLOWED_URI:Ae}=K,Ne=null;const be=S({},[...L,...v,...D,...x,...M]);let Se=null;const Re=S({},[...I,...U,...P,...F]);let we=Object.seal(l(null,{tagNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},allowCustomizedBuiltInElements:{writable:!0,configurable:!1,enumerable:!0,value:!1}})),Ce=null,Le=null,ve=!0,De=!0,Oe=!1,xe=!0,ke=!1,Me=!0,Ie=!1,Ue=!1,Pe=!1,Fe=!1,He=!1,ze=!1,Be=!0,We=!1,Ge=!0,Ye=!1,je={},Xe=null;const qe=S({},["annotation-xml","audio","colgroup","desc","foreignobject","head","iframe","math","mi","mn","mo","ms","mtext","noembed","noframes","noscript","plaintext","script","style","svg","template","thead","title","video","xmp"]);let $e=null;const Ke=S({},["audio","video","img","source","image","track"]);let Ve=null;const Ze=S({},["alt","class","for","id","label","name","pattern","placeholder","role","summary","title","value","style","xmlns"]),Je="http://www.w3.org/1998/Math/MathML",Qe="http://www.w3.org/2000/svg",et="http://www.w3.org/1999/xhtml";let tt=et,nt=!1,ot=null;const rt=S({},[Je,Qe,et],d);let it=null;const at=["application/xhtml+xml","text/html"];let lt=null,ct=null;const st=r.createElement("form"),ut=function(e){return e instanceof RegExp||e instanceof Function},mt=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};if(!ct||ct!==e){if(e&&"object"==typeof e||(e={}),e=w(e),it=-1===at.indexOf(e.PARSER_MEDIA_TYPE)?"text/html":e.PARSER_MEDIA_TYPE,lt="application/xhtml+xml"===it?d:f,Ne=E(e,"ALLOWED_TAGS")?S({},e.ALLOWED_TAGS,lt):be,Se=E(e,"ALLOWED_ATTR")?S({},e.ALLOWED_ATTR,lt):Re,ot=E(e,"ALLOWED_NAMESPACES")?S({},e.ALLOWED_NAMESPACES,d):rt,Ve=E(e,"ADD_URI_SAFE_ATTR")?S(w(Ze),e.ADD_URI_SAFE_ATTR,lt):Ze,$e=E(e,"ADD_DATA_URI_TAGS")?S(w(Ke),e.ADD_DATA_URI_TAGS,lt):Ke,Xe=E(e,"FORBID_CONTENTS")?S({},e.FORBID_CONTENTS,lt):qe,Ce=E(e,"FORBID_TAGS")?S({},e.FORBID_TAGS,lt):{},Le=E(e,"FORBID_ATTR")?S({},e.FORBID_ATTR,lt):{},je=!!E(e,"USE_PROFILES")&&e.USE_PROFILES,ve=!1!==e.ALLOW_ARIA_ATTR,De=!1!==e.ALLOW_DATA_ATTR,Oe=e.ALLOW_UNKNOWN_PROTOCOLS||!1,xe=!1!==e.ALLOW_SELF_CLOSE_IN_ATTR,ke=e.SAFE_FOR_TEMPLATES||!1,Me=!1!==e.SAFE_FOR_XML,Ie=e.WHOLE_DOCUMENT||!1,Fe=e.RETURN_DOM||!1,He=e.RETURN_DOM_FRAGMENT||!1,ze=e.RETURN_TRUSTED_TYPE||!1,Pe=e.FORCE_BODY||!1,Be=!1!==e.SANITIZE_DOM,We=e.SANITIZE_NAMED_PROPS||!1,Ge=!1!==e.KEEP_CONTENT,Ye=e.IN_PLACE||!1,Ae=e.ALLOWED_URI_REGEXP||Y,tt=e.NAMESPACE||et,we=e.CUSTOM_ELEMENT_HANDLING||{},e.CUSTOM_ELEMENT_HANDLING&&ut(e.CUSTOM_ELEMENT_HANDLING.tagNameCheck)&&(we.tagNameCheck=e.CUSTOM_ELEMENT_HANDLING.tagNameCheck),e.CUSTOM_ELEMENT_HANDLING&&ut(e.CUSTOM_ELEMENT_HANDLING.attributeNameCheck)&&(we.attributeNameCheck=e.CUSTOM_ELEMENT_HANDLING.attributeNameCheck),e.CUSTOM_ELEMENT_HANDLING&&"boolean"==typeof e.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements&&(we.allowCustomizedBuiltInElements=e.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements),ke&&(De=!1),He&&(Fe=!0),je&&(Ne=S({},M),Se=[],!0===je.html&&(S(Ne,L),S(Se,I)),!0===je.svg&&(S(Ne,v),S(Se,U),S(Se,F)),!0===je.svgFilters&&(S(Ne,D),S(Se,U),S(Se,F)),!0===je.mathMl&&(S(Ne,x),S(Se,P),S(Se,F))),e.ADD_TAGS&&(Ne===be&&(Ne=w(Ne)),S(Ne,e.ADD_TAGS,lt)),e.ADD_ATTR&&(Se===Re&&(Se=w(Se)),S(Se,e.ADD_ATTR,lt)),e.ADD_URI_SAFE_ATTR&&S(Ve,e.ADD_URI_SAFE_ATTR,lt),e.FORBID_CONTENTS&&(Xe===qe&&(Xe=w(Xe)),S(Xe,e.FORBID_CONTENTS,lt)),Ge&&(Ne["#text"]=!0),Ie&&S(Ne,["html","head","body"]),Ne.table&&(S(Ne,["tbody"]),delete Ce.tbody),e.TRUSTED_TYPES_POLICY){if("function"!=typeof e.TRUSTED_TYPES_POLICY.createHTML)throw A('TRUSTED_TYPES_POLICY configuration option must provide a "createHTML" hook.');if("function"!=typeof e.TRUSTED_TYPES_POLICY.createScriptURL)throw A('TRUSTED_TYPES_POLICY configuration option must provide a "createScriptURL" hook.');ie=e.TRUSTED_TYPES_POLICY,ae=ie.createHTML("")}else void 0===ie&&(ie=function(e,t){if("object"!=typeof e||"function"!=typeof e.createPolicy)return null;let n=null;const o="data-tt-policy-suffix";t&&t.hasAttribute(o)&&(n=t.getAttribute(o));const r="dompurify"+(n?"#"+n:"");try{return e.createPolicy(r,{createHTML:e=>e,createScriptURL:e=>e})}catch(e){return console.warn("TrustedTypes policy "+r+" could not be created."),null}}(G,c)),null!==ie&&"string"==typeof ae&&(ae=ie.createHTML(""));i&&i(e),ct=e}},pt=S({},["mi","mo","mn","ms","mtext"]),ft=S({},["annotation-xml"]),dt=S({},["title","style","font","a","script"]),ht=S({},[...v,...D,...O]),gt=S({},[...x,...k]),Tt=function(e){p(o.removed,{element:e});try{re(e).removeChild(e)}catch(t){$(e)}},yt=function(e,t){try{p(o.removed,{attribute:t.getAttributeNode(e),from:t})}catch(e){p(o.removed,{attribute:null,from:t})}if(t.removeAttribute(e),"is"===e&&!Se[e])if(Fe||He)try{Tt(t)}catch(e){}else try{t.setAttribute(e,"")}catch(e){}},Et=function(e){let t=null,n=null;if(Pe)e=""+e;else{const t=h(e,/^[\r\n\t ]+/);n=t&&t[0]}"application/xhtml+xml"===it&&tt===et&&(e=''+e+"");const o=ie?ie.createHTML(e):e;if(tt===et)try{t=(new W).parseFromString(o,it)}catch(e){}if(!t||!t.documentElement){t=le.createDocument(tt,"template",null);try{t.documentElement.innerHTML=nt?ae:o}catch(e){}}const i=t.body||t.documentElement;return e&&n&&i.insertBefore(r.createTextNode(n),i.childNodes[0]||null),tt===et?ue.call(t,Ie?"html":"body")[0]:Ie?t.documentElement:i},_t=function(e){return ce.call(e.ownerDocument||e,e,H.SHOW_ELEMENT|H.SHOW_COMMENT|H.SHOW_TEXT|H.SHOW_PROCESSING_INSTRUCTION|H.SHOW_CDATA_SECTION,null)},At=function(e){return e instanceof B&&("string"!=typeof e.nodeName||"string"!=typeof e.textContent||"function"!=typeof e.removeChild||!(e.attributes instanceof z)||"function"!=typeof e.removeAttribute||"function"!=typeof e.setAttribute||"string"!=typeof e.namespaceURI||"function"!=typeof e.insertBefore||"function"!=typeof e.hasChildNodes)},Nt=function(e){return"function"==typeof b&&e instanceof b},bt=function(e,t,n){pe[e]&&u(pe[e],(e=>{e.call(o,t,n,ct)}))},St=function(e){let t=null;if(bt("beforeSanitizeElements",e,null),At(e))return Tt(e),!0;const n=lt(e.nodeName);if(bt("uponSanitizeElement",e,{tagName:n,allowedTags:Ne}),e.hasChildNodes()&&!Nt(e.firstElementChild)&&_(/<[/\w]/g,e.innerHTML)&&_(/<[/\w]/g,e.textContent))return Tt(e),!0;if(e.nodeType===J)return Tt(e),!0;if(Me&&e.nodeType===Q&&_(/<[/\w]/g,e.data))return Tt(e),!0;if(!Ne[n]||Ce[n]){if(!Ce[n]&&wt(n)){if(we.tagNameCheck instanceof RegExp&&_(we.tagNameCheck,n))return!1;if(we.tagNameCheck instanceof Function&&we.tagNameCheck(n))return!1}if(Ge&&!Xe[n]){const t=re(e)||e.parentNode,n=oe(e)||e.childNodes;if(n&&t){for(let o=n.length-1;o>=0;--o){const r=X(n[o],!0);r.__removalCount=(e.__removalCount||0)+1,t.insertBefore(r,ne(e))}}}return Tt(e),!0}return e instanceof R&&!function(e){let t=re(e);t&&t.tagName||(t={namespaceURI:tt,tagName:"template"});const n=f(e.tagName),o=f(t.tagName);return!!ot[e.namespaceURI]&&(e.namespaceURI===Qe?t.namespaceURI===et?"svg"===n:t.namespaceURI===Je?"svg"===n&&("annotation-xml"===o||pt[o]):Boolean(ht[n]):e.namespaceURI===Je?t.namespaceURI===et?"math"===n:t.namespaceURI===Qe?"math"===n&&ft[o]:Boolean(gt[n]):e.namespaceURI===et?!(t.namespaceURI===Qe&&!ft[o])&&!(t.namespaceURI===Je&&!pt[o])&&!gt[n]&&(dt[n]||!ht[n]):!("application/xhtml+xml"!==it||!ot[e.namespaceURI]))}(e)?(Tt(e),!0):"noscript"!==n&&"noembed"!==n&&"noframes"!==n||!_(/<\/no(script|embed|frames)/i,e.innerHTML)?(ke&&e.nodeType===Z&&(t=e.textContent,u([fe,de,he],(e=>{t=g(t,e," ")})),e.textContent!==t&&(p(o.removed,{element:e.cloneNode()}),e.textContent=t)),bt("afterSanitizeElements",e,null),!1):(Tt(e),!0)},Rt=function(e,t,n){if(Be&&("id"===t||"name"===t)&&(n in r||n in st))return!1;if(De&&!Le[t]&&_(ge,t));else if(ve&&_(Te,t));else if(!Se[t]||Le[t]){if(!(wt(e)&&(we.tagNameCheck instanceof RegExp&&_(we.tagNameCheck,e)||we.tagNameCheck instanceof Function&&we.tagNameCheck(e))&&(we.attributeNameCheck instanceof RegExp&&_(we.attributeNameCheck,t)||we.attributeNameCheck instanceof Function&&we.attributeNameCheck(t))||"is"===t&&we.allowCustomizedBuiltInElements&&(we.tagNameCheck instanceof RegExp&&_(we.tagNameCheck,n)||we.tagNameCheck instanceof Function&&we.tagNameCheck(n))))return!1}else if(Ve[t]);else if(_(Ae,g(n,Ee,"")));else if("src"!==t&&"xlink:href"!==t&&"href"!==t||"script"===e||0!==T(n,"data:")||!$e[e]){if(Oe&&!_(ye,g(n,Ee,"")));else if(n)return!1}else;return!0},wt=function(e){return"annotation-xml"!==e&&h(e,_e)},Ct=function(e){bt("beforeSanitizeAttributes",e,null);const{attributes:t}=e;if(!t)return;const n={attrName:"",attrValue:"",keepAttr:!0,allowedAttributes:Se};let r=t.length;for(;r--;){const i=t[r],{name:a,namespaceURI:l,value:c}=i,s=lt(a);let p="value"===a?c:y(c);if(n.attrName=s,n.attrValue=p,n.keepAttr=!0,n.forceKeepAttr=void 0,bt("uponSanitizeAttribute",e,n),p=n.attrValue,n.forceKeepAttr)continue;if(yt(a,e),!n.keepAttr)continue;if(!xe&&_(/\/>/i,p)){yt(a,e);continue}ke&&u([fe,de,he],(e=>{p=g(p,e," ")}));const f=lt(e.nodeName);if(Rt(f,s,p))if(!We||"id"!==s&&"name"!==s||(yt(a,e),p="user-content-"+p),Me&&_(/((--!?|])>)|<\/(style|title)/i,p))yt(a,e);else{if(ie&&"object"==typeof G&&"function"==typeof G.getAttributeType)if(l);else switch(G.getAttributeType(f,s)){case"TrustedHTML":p=ie.createHTML(p);break;case"TrustedScriptURL":p=ie.createScriptURL(p)}try{l?e.setAttributeNS(l,a,p):e.setAttribute(a,p),At(e)?Tt(e):m(o.removed)}catch(e){}}}bt("afterSanitizeAttributes",e,null)},Lt=function e(t){let n=null;const o=_t(t);for(bt("beforeSanitizeShadowDOM",t,null);n=o.nextNode();)bt("uponSanitizeShadowNode",n,null),St(n)||(n.content instanceof s&&e(n.content),Ct(n));bt("afterSanitizeShadowDOM",t,null)};return o.sanitize=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=null,r=null,i=null,l=null;if(nt=!e,nt&&(e="\x3c!--\x3e"),"string"!=typeof e&&!Nt(e)){if("function"!=typeof e.toString)throw A("toString is not a function");if("string"!=typeof(e=e.toString()))throw A("dirty is not a string, aborting")}if(!o.isSupported)return e;if(Ue||mt(t),o.removed=[],"string"==typeof e&&(Ye=!1),Ye){if(e.nodeName){const t=lt(e.nodeName);if(!Ne[t]||Ce[t])throw A("root node is forbidden and cannot be sanitized in-place")}}else if(e instanceof b)n=Et("\x3c!----\x3e"),r=n.ownerDocument.importNode(e,!0),r.nodeType===V&&"BODY"===r.nodeName||"HTML"===r.nodeName?n=r:n.appendChild(r);else{if(!Fe&&!ke&&!Ie&&-1===e.indexOf("<"))return ie&&ze?ie.createHTML(e):e;if(n=Et(e),!n)return Fe?null:ze?ae:""}n&&Pe&&Tt(n.firstChild);const c=_t(Ye?e:n);for(;i=c.nextNode();)St(i)||(i.content instanceof s&&Lt(i.content),Ct(i));if(Ye)return e;if(Fe){if(He)for(l=se.call(n.ownerDocument);n.firstChild;)l.appendChild(n.firstChild);else l=n;return(Se.shadowroot||Se.shadowrootmode)&&(l=me.call(a,l,!0)),l}let m=Ie?n.outerHTML:n.innerHTML;return Ie&&Ne["!doctype"]&&n.ownerDocument&&n.ownerDocument.doctype&&n.ownerDocument.doctype.name&&_(q,n.ownerDocument.doctype.name)&&(m="\n"+m),ke&&u([fe,de,he],(e=>{m=g(m,e," ")})),ie&&ze?ie.createHTML(m):m},o.setConfig=function(){mt(arguments.length>0&&void 0!==arguments[0]?arguments[0]:{}),Ue=!0},o.clearConfig=function(){ct=null,Ue=!1},o.isValidAttribute=function(e,t,n){ct||mt({});const o=lt(e),r=lt(t);return Rt(o,r,n)},o.addHook=function(e,t){"function"==typeof t&&(pe[e]=pe[e]||[],p(pe[e],t))},o.removeHook=function(e){if(pe[e])return m(pe[e])},o.removeHooks=function(e){pe[e]&&(pe[e]=[])},o.removeAllHooks=function(){pe={}},o}();return ne})); +//# sourceMappingURL=purify.min.js.map \ No newline at end of file diff --git a/src/backend/InvenTree/InvenTree/status.py b/src/backend/InvenTree/InvenTree/status.py index cd6d357928..500dfcd1ae 100644 --- a/src/backend/InvenTree/InvenTree/status.py +++ b/src/backend/InvenTree/InvenTree/status.py @@ -1,16 +1,14 @@ """Provides system status functionality checks.""" -# -*- coding: utf-8 -*- import logging from datetime import timedelta from django.utils import timezone -from django.utils.translation import gettext_lazy as _ from django_q.models import Success from django_q.status import Stat -import InvenTree.email +import InvenTree.helpers_email import InvenTree.ready logger = logging.getLogger('inventree') @@ -63,13 +61,13 @@ def check_system_health(**kwargs): if not is_worker_running(**kwargs): # pragma: no cover result = False - logger.warning(_('Background worker check failed')) + logger.warning('Background worker check failed') - if not InvenTree.email.is_email_configured(): # pragma: no cover + if not InvenTree.helpers_email.is_email_configured(): # pragma: no cover result = False - logger.warning(_('Email backend not configured')) + logger.warning('Email backend not configured') if not result: # pragma: no cover - logger.warning(_('InvenTree system health checks failed')) + logger.warning('InvenTree system health checks failed') return result diff --git a/src/backend/InvenTree/InvenTree/tasks.py b/src/backend/InvenTree/InvenTree/tasks.py index 21195c9c75..37f8cb2747 100644 --- a/src/backend/InvenTree/InvenTree/tasks.py +++ b/src/backend/InvenTree/InvenTree/tasks.py @@ -9,9 +9,10 @@ import time import warnings from dataclasses import dataclass from datetime import datetime, timedelta -from typing import Callable +from typing import Callable, Optional from django.conf import settings +from django.contrib.auth import get_user_model from django.core.exceptions import AppRegistryNotReady from django.core.management import call_command from django.db import DEFAULT_DB_ALIAS, connections @@ -174,6 +175,9 @@ def offload_task( """ from InvenTree.exceptions import log_error + # Extract group information from kwargs + group = kwargs.pop('group', 'inventree') + try: import importlib @@ -200,13 +204,13 @@ def offload_task( if force_async or (is_worker_running() and not force_sync): # Running as asynchronous task try: - task = AsyncTask(taskname, *args, **kwargs) + task = AsyncTask(taskname, *args, group=group, **kwargs) task.run() except ImportError: raise_warning(f"WARNING: '{taskname}' not offloaded - Function not found") return False except Exception as exc: - raise_warning(f"WARNING: '{taskname}' not offloaded due to {str(exc)}") + raise_warning(f"WARNING: '{taskname}' not offloaded due to {exc!s}") log_error('InvenTree.offload_task') return False else: @@ -256,7 +260,7 @@ def offload_task( _func(*args, **kwargs) except Exception as exc: log_error('InvenTree.offload_task') - raise_warning(f"WARNING: '{taskname}' failed due to {str(exc)}") + raise_warning(f"WARNING: '{taskname}' failed due to {exc!s}") raise exc # Finally, task either completed successfully or was offloaded @@ -291,7 +295,7 @@ class TaskRegister: task_list: list[ScheduledTask] = [] - def register(self, task, schedule, minutes: int = None): + def register(self, task, schedule, minutes: Optional[int] = None): """Register a task with the que.""" self.task_list.append(ScheduledTask(task, schedule, minutes)) @@ -299,7 +303,9 @@ class TaskRegister: tasks = TaskRegister() -def scheduled_task(interval: str, minutes: int = None, tasklist: TaskRegister = None): +def scheduled_task( + interval: str, minutes: Optional[int] = None, tasklist: TaskRegister = None +): """Register the given task as a scheduled task. Example: @@ -688,3 +694,14 @@ def check_for_migrations(force: bool = False, reload_registry: bool = True): # We should be current now - triggering full reload to make sure all models # are loaded fully in their new state. registry.reload_plugins(full_reload=True, force_reload=True, collect=True) + + +def email_user(user_id: int, subject: str, message: str) -> None: + """Send a message to a user.""" + try: + user = get_user_model().objects.get(pk=user_id) + except Exception: + logger.warning('User <%s> not found - cannot send welcome message', user_id) + return + + user.email_user(subject=subject, message=message) diff --git a/src/backend/InvenTree/InvenTree/templatetags/i18n.py b/src/backend/InvenTree/InvenTree/templatetags/i18n.py index a6b66eb9c6..cc85d19e6c 100644 --- a/src/backend/InvenTree/InvenTree/templatetags/i18n.py +++ b/src/backend/InvenTree/InvenTree/templatetags/i18n.py @@ -80,7 +80,7 @@ def do_translate(parser, token): """ bits = token.split_contents() if len(bits) < 2: - raise TemplateSyntaxError("'%s' takes at least one argument" % bits[0]) + raise TemplateSyntaxError(f"'{bits[0]}' takes at least one argument") message_string = parser.compile_filter(bits[1]) remaining = bits[2:] @@ -95,7 +95,7 @@ def do_translate(parser, token): option = remaining.pop(0) if option in seen: raise TemplateSyntaxError( - "The '%s' option was specified more than once." % option + f"The '{option}' option was specified more than once." ) elif option == 'noop': noop = True @@ -104,13 +104,12 @@ def do_translate(parser, token): value = remaining.pop(0) except IndexError: raise TemplateSyntaxError( - "No argument provided to the '%s' tag for the context option." - % bits[0] + f"No argument provided to the '{bits[0]}' tag for the context option." ) if value in invalid_context: raise TemplateSyntaxError( - "Invalid argument '%s' provided to the '%s' tag for the context " - 'option' % (value, bits[0]) + f"Invalid argument '{value}' provided to the '{bits[0]}' tag for the context " + 'option' ) message_context = parser.compile_filter(value) elif option == 'as': @@ -118,16 +117,15 @@ def do_translate(parser, token): value = remaining.pop(0) except IndexError: raise TemplateSyntaxError( - "No argument provided to the '%s' tag for the as option." % bits[0] + f"No argument provided to the '{bits[0]}' tag for the as option." ) asvar = value elif option == 'escape': escape = True else: raise TemplateSyntaxError( - "Unknown argument for '%s' tag: '%s'. The only options " + f"Unknown argument for '{bits[0]}' tag: '{option}'. The only options " "available are 'noop', 'context' \"xxx\", and 'as VAR'." - % (bits[0], option) ) seen.add(option) diff --git a/src/backend/InvenTree/InvenTree/templatetags/inventree_extras.py b/src/backend/InvenTree/InvenTree/templatetags/inventree_extras.py index ad476ba671..cbe8f0463c 100644 --- a/src/backend/InvenTree/InvenTree/templatetags/inventree_extras.py +++ b/src/backend/InvenTree/InvenTree/templatetags/inventree_extras.py @@ -410,10 +410,7 @@ def progress_bar(val, max_val, *args, **kwargs): else: style = '' - if max_val != 0: - percent = float(val / max_val) * 100 - else: - percent = 0 + percent = float(val / max_val) * 100 if max_val != 0 else 0 if percent > 100: percent = 100 @@ -422,7 +419,7 @@ def progress_bar(val, max_val, *args, **kwargs): style_tags = [] - max_width = kwargs.get('max_width', None) + max_width = kwargs.get('max_width') if max_width: style_tags.append(f'max-width: {max_width};') @@ -498,7 +495,7 @@ def primitive_to_javascript(primitive): elif type(primitive) in [int, float]: return primitive # Wrap with quotes - return format_html("'{}'", primitive) # noqa: P103 + return format_html("'{}'", primitive) @register.simple_tag() diff --git a/src/backend/InvenTree/InvenTree/test_api.py b/src/backend/InvenTree/InvenTree/test_api.py index 0ec1f169f2..5081dc07b4 100644 --- a/src/backend/InvenTree/InvenTree/test_api.py +++ b/src/backend/InvenTree/InvenTree/test_api.py @@ -70,11 +70,11 @@ class APITests(InvenTreeAPITestCase): """Helper function to use basic auth.""" # Use basic authentication - authstring = bytes('{u}:{p}'.format(u=self.username, p=self.password), 'ascii') + authstring = bytes(f'{self.username}:{self.password}', 'ascii') # Use "basic" auth by default auth = b64encode(authstring).decode('ascii') - self.client.credentials(HTTP_AUTHORIZATION='Basic {auth}'.format(auth=auth)) + self.client.credentials(HTTP_AUTHORIZATION=f'Basic {auth}') def tokenAuth(self): """Helper function to use token auth.""" diff --git a/src/backend/InvenTree/InvenTree/test_tasks.py b/src/backend/InvenTree/InvenTree/test_tasks.py index 2cb1ae6f51..03e4d6ee0e 100644 --- a/src/backend/InvenTree/InvenTree/test_tasks.py +++ b/src/backend/InvenTree/InvenTree/test_tasks.py @@ -4,12 +4,13 @@ import os from datetime import timedelta from django.conf import settings +from django.contrib.auth.models import User from django.core.management import call_command from django.db.utils import NotSupportedError from django.test import TestCase from django.utils import timezone -from django_q.models import Schedule +from django_q.models import Schedule, Task from error_report.models import Error import InvenTree.tasks @@ -163,3 +164,39 @@ class InvenTreeTaskTests(TestCase): migration_path.unlink() except IndexError: # pragma: no cover pass + + def test_failed_task_notification(self): + """Test that a failed task will generate a notification.""" + from common.models import NotificationEntry, NotificationMessage + + # Create a staff user (to ensure notifications are sent) + User.objects.create_user(username='staff', password='staffpass', is_staff=True) + + n_tasks = Task.objects.count() + n_entries = NotificationEntry.objects.count() + n_messages = NotificationMessage.objects.count() + + # Create a 'failed' task in the database + # Note: The 'attempt count' is set to 10 to ensure that the task is properly marked as 'failed' + Task.objects.create( + id=n_tasks + 1, + name='failed_task', + func='InvenTree.tasks.failed_task', + group='test', + success=False, + started=timezone.now(), + stopped=timezone.now(), + attempt_count=10, + ) + + # A new notification entry should be created + self.assertEqual(NotificationEntry.objects.count(), n_entries + 1) + self.assertEqual(NotificationMessage.objects.count(), n_messages + 1) + + msg = NotificationMessage.objects.last() + + self.assertEqual(msg.name, 'Task Failure') + self.assertEqual( + msg.message, + "Background worker task 'InvenTree.tasks.failed_task' failed after 10 attempts", + ) diff --git a/src/backend/InvenTree/InvenTree/test_urls.py b/src/backend/InvenTree/InvenTree/test_urls.py index 42744e0a16..8c9dea4ab9 100644 --- a/src/backend/InvenTree/InvenTree/test_urls.py +++ b/src/backend/InvenTree/InvenTree/test_urls.py @@ -70,7 +70,7 @@ class URLTest(TestCase): pattern = '{% url [\'"]([^\'"]+)[\'"]([^%]*)%}' - with open(input_file, 'r') as f: + with open(input_file, encoding='utf-8') as f: data = f.read() results = re.findall(pattern, data) diff --git a/src/backend/InvenTree/InvenTree/tests.py b/src/backend/InvenTree/InvenTree/tests.py index 5f2093a8fe..0672e4699d 100644 --- a/src/backend/InvenTree/InvenTree/tests.py +++ b/src/backend/InvenTree/InvenTree/tests.py @@ -543,22 +543,22 @@ class FormatTest(TestCase): def test_currency_formatting(self): """Test that currency formatting works correctly for multiple currencies.""" test_data = ( - (Money(3651.285718, 'USD'), 4, True, '$3,651.2857'), # noqa: E201,E202 - (Money(487587.849178, 'CAD'), 5, True, 'CA$487,587.84918'), # noqa: E201,E202 - (Money(0.348102, 'EUR'), 1, False, '0.3'), # noqa: E201,E202 - (Money(0.916530, 'GBP'), 1, True, '£0.9'), # noqa: E201,E202 - (Money(61.031024, 'JPY'), 3, False, '61.031'), # noqa: E201,E202 - (Money(49609.694602, 'JPY'), 1, True, '¥49,609.7'), # noqa: E201,E202 - (Money(155565.264777, 'AUD'), 2, False, '155,565.26'), # noqa: E201,E202 - (Money(0.820437, 'CNY'), 4, True, 'CN¥0.8204'), # noqa: E201,E202 - (Money(7587.849178, 'EUR'), 0, True, '€7,588'), # noqa: E201,E202 - (Money(0.348102, 'GBP'), 3, False, '0.348'), # noqa: E201,E202 - (Money(0.652923, 'CHF'), 0, True, 'CHF1'), # noqa: E201,E202 - (Money(0.820437, 'CNY'), 1, True, 'CN¥0.8'), # noqa: E201,E202 - (Money(98789.5295680, 'CHF'), 0, False, '98,790'), # noqa: E201,E202 - (Money(0.585787, 'USD'), 1, True, '$0.6'), # noqa: E201,E202 - (Money(0.690541, 'CAD'), 3, True, 'CA$0.691'), # noqa: E201,E202 - (Money(427.814104, 'AUD'), 5, True, 'A$427.81410'), # noqa: E201,E202 + (Money(3651.285718, 'USD'), 4, True, '$3,651.2857'), + (Money(487587.849178, 'CAD'), 5, True, 'CA$487,587.84918'), + (Money(0.348102, 'EUR'), 1, False, '0.3'), + (Money(0.916530, 'GBP'), 1, True, '£0.9'), + (Money(61.031024, 'JPY'), 3, False, '61.031'), + (Money(49609.694602, 'JPY'), 1, True, '¥49,609.7'), + (Money(155565.264777, 'AUD'), 2, False, '155,565.26'), + (Money(0.820437, 'CNY'), 4, True, 'CN¥0.8204'), + (Money(7587.849178, 'EUR'), 0, True, '€7,588'), + (Money(0.348102, 'GBP'), 3, False, '0.348'), + (Money(0.652923, 'CHF'), 0, True, 'CHF1'), + (Money(0.820437, 'CNY'), 1, True, 'CN¥0.8'), + (Money(98789.5295680, 'CHF'), 0, False, '98,790'), + (Money(0.585787, 'USD'), 1, True, '$0.6'), + (Money(0.690541, 'CAD'), 3, True, 'CA$0.691'), + (Money(427.814104, 'AUD'), 5, True, 'A$427.81410'), ) with self.settings(LANGUAGE_CODE='en-us'): @@ -794,7 +794,7 @@ class TestDownloadFile(TestCase): def test_download(self): """Tests for DownloadFile.""" helpers.DownloadFile('hello world', 'out.txt') - helpers.DownloadFile(bytes(b'hello world'), 'out.bin') + helpers.DownloadFile(b'hello world', 'out.bin') class TestMPTT(TestCase): @@ -1033,12 +1033,12 @@ class TestVersionNumber(TestCase): # Check that the current .git values work too - hash = str( + git_hash = str( subprocess.check_output('git rev-parse --short HEAD'.split()), 'utf-8' ).strip() # On some systems the hash is a different length, so just check the first 6 characters - self.assertEqual(hash[:6], version.inventreeCommitHash()[:6]) + self.assertEqual(git_hash[:6], version.inventreeCommitHash()[:6]) d = ( str(subprocess.check_output('git show -s --format=%ci'.split()), 'utf-8') @@ -1438,8 +1438,8 @@ class BarcodeMixinTest(InvenTreeTestCase): '{"part": 17, "stockitem": 12}': 'c88c11ed0628eb7fef0d59b098b96975', } - for barcode, hash in hashing_tests.items(): - self.assertEqual(InvenTree.helpers.hash_barcode(barcode), hash) + for barcode, expected in hashing_tests.items(): + self.assertEqual(InvenTree.helpers.hash_barcode(barcode), expected) class SanitizerTest(TestCase): @@ -1557,15 +1557,12 @@ class ClassValidationMixinTest(TestCase): def test(self): """Test function.""" - ... def test1(self): """Test function.""" - ... def test2(self): """Test function.""" - ... required_attributes = ['NAME'] required_overrides = [test, [test1, test2]] @@ -1573,8 +1570,6 @@ class ClassValidationMixinTest(TestCase): class InvalidClass: """An invalid class that does not inherit from ClassValidationMixin.""" - pass - def test_valid_class(self): """Test that a valid class passes the validation.""" @@ -1585,11 +1580,9 @@ class ClassValidationMixinTest(TestCase): def test(self): """Test function.""" - ... def test2(self): """Test function.""" - ... TestClass.validate() @@ -1612,7 +1605,6 @@ class ClassValidationMixinTest(TestCase): def test2(self): """Test function.""" - ... with self.assertRaisesRegex( NotImplementedError, @@ -1627,8 +1619,6 @@ class ClassProviderMixinTest(TestCase): class TestClass(ClassProviderMixin): """This class is a dummy class to test the ClassProviderMixin.""" - pass - def test_get_provider_file(self): """Test the get_provider_file function.""" self.assertEqual(self.TestClass.get_provider_file(), __file__) diff --git a/src/backend/InvenTree/InvenTree/translation.py b/src/backend/InvenTree/InvenTree/translation.py index bef7448a76..892e362aec 100644 --- a/src/backend/InvenTree/InvenTree/translation.py +++ b/src/backend/InvenTree/InvenTree/translation.py @@ -15,7 +15,7 @@ def reload_translation_stats(): STATS_FILE = settings.BASE_DIR.joinpath('InvenTree/locale_stats.json').absolute() try: - with open(STATS_FILE, 'r') as f: + with open(STATS_FILE, encoding='utf-8') as f: _translation_stats = json.load(f) except Exception: _translation_stats = None diff --git a/src/backend/InvenTree/InvenTree/unit_test.py b/src/backend/InvenTree/InvenTree/unit_test.py index 2b525b9aa5..a5430762b2 100644 --- a/src/backend/InvenTree/InvenTree/unit_test.py +++ b/src/backend/InvenTree/InvenTree/unit_test.py @@ -10,10 +10,11 @@ from pathlib import Path from django.contrib.auth import get_user_model from django.contrib.auth.models import Group, Permission -from django.db import connections +from django.db import connections, models from django.http.response import StreamingHttpResponse from django.test import TestCase from django.test.utils import CaptureQueriesContext +from django.urls import reverse from djmoney.contrib.exchange.models import ExchangeBackend, Rate from rest_framework.test import APITestCase @@ -246,8 +247,6 @@ class ExchangeRateMixin: class InvenTreeTestCase(ExchangeRateMixin, UserMixin, TestCase): """Testcase with user setup build in.""" - pass - class InvenTreeAPITestCase(ExchangeRateMixin, UserMixin, APITestCase): """Base class for running InvenTree API tests.""" @@ -264,7 +263,9 @@ class InvenTreeAPITestCase(ExchangeRateMixin, UserMixin, APITestCase): MAX_QUERY_TIME = 7.5 @contextmanager - def assertNumQueriesLessThan(self, value, using='default', verbose=None, url=None): + def assertNumQueriesLessThan( + self, value, using='default', verbose=False, url=None, log_to_file=False + ): """Context manager to check that the number of queries is less than a certain value. Example: @@ -282,10 +283,14 @@ class InvenTreeAPITestCase(ExchangeRateMixin, UserMixin, APITestCase): f'Query count exceeded at {url}: Expected < {value} queries, got {n}' ) # pragma: no cover - if verbose or n >= value: - msg = '\r\n%s' % json.dumps( - context.captured_queries, indent=4 - ) # pragma: no cover + # Useful for debugging, disabled by default + if log_to_file: + with open('queries.txt', 'w', encoding='utf-8') as f: + for q in context.captured_queries: + f.write(str(q['sql']) + '\n') + + if verbose and n >= value: + msg = f'\r\n{json.dumps(context.captured_queries, indent=4)}' # pragma: no cover else: msg = None @@ -294,6 +299,18 @@ class InvenTreeAPITestCase(ExchangeRateMixin, UserMixin, APITestCase): self.assertLess(n, value, msg=msg) + @classmethod + def setUpTestData(cls): + """Setup for API tests. + + - Ensure that all global settings are assigned default values. + """ + from common.models import InvenTreeSetting + + InvenTreeSetting.build_default_values() + + super().setUpTestData() + def check_response(self, url, response, expected_code=None): """Debug output for an unexpected response.""" # Check that the response returned the expected status code @@ -393,7 +410,7 @@ class InvenTreeAPITestCase(ExchangeRateMixin, UserMixin, APITestCase): def options(self, url, expected_code=None, **kwargs): """Issue an OPTIONS request.""" - kwargs['data'] = kwargs.get('data', None) + kwargs['data'] = kwargs.get('data') return self.query( url, self.client.options, expected_code=expected_code, **kwargs @@ -490,3 +507,30 @@ class InvenTreeAPITestCase(ExchangeRateMixin, UserMixin, APITestCase): def assertDictContainsSubset(self, a, b): """Assert that dictionary 'a' is a subset of dictionary 'b'.""" self.assertEqual(b, b | a) + + +class AdminTestCase(InvenTreeAPITestCase): + """Tests for the admin interface integration.""" + + superuser = True + + def helper(self, model: type[models.Model], model_kwargs=None): + """Test the admin URL.""" + if model_kwargs is None: + model_kwargs = {} + + # Add object + obj = model.objects.create(**model_kwargs) + app_app, app_mdl = model._meta.app_label, model._meta.model_name + + # 'Test listing + response = self.get(reverse(f'admin:{app_app}_{app_mdl}_changelist')) + self.assertEqual(response.status_code, 200) + + # Test change view + response = self.get( + reverse(f'admin:{app_app}_{app_mdl}_change', kwargs={'object_id': obj.pk}) + ) + self.assertEqual(response.status_code, 200) + + return obj diff --git a/src/backend/InvenTree/InvenTree/urls.py b/src/backend/InvenTree/InvenTree/urls.py index 91a6ce35ca..7f6d6c6b37 100644 --- a/src/backend/InvenTree/InvenTree/urls.py +++ b/src/backend/InvenTree/InvenTree/urls.py @@ -456,7 +456,7 @@ urlpatterns = [] if settings.INVENTREE_ADMIN_ENABLED: admin_url = settings.INVENTREE_ADMIN_URL - if settings.ADMIN_SHELL_ENABLE: # noqa + if settings.ADMIN_SHELL_ENABLE: urlpatterns += [path(f'{admin_url}/shell/', include('django_admin_shell.urls'))] urlpatterns += [ @@ -484,7 +484,7 @@ if settings.ENABLE_PLATFORM_FRONTEND: urlpatterns += frontendpatterns -# Append custom plugin URLs (if plugin support is enabled) +# Append custom plugin URLs (if custom plugin support is enabled) if settings.PLUGINS_ENABLED: urlpatterns.append(get_plugin_urls()) diff --git a/src/backend/InvenTree/InvenTree/validators.py b/src/backend/InvenTree/InvenTree/validators.py index f2a85bc18f..c42248e390 100644 --- a/src/backend/InvenTree/InvenTree/validators.py +++ b/src/backend/InvenTree/InvenTree/validators.py @@ -28,9 +28,7 @@ def validate_physical_units(unit): try: ureg(unit) - except AttributeError: - raise ValidationError(_('Invalid physical unit')) - except pint.errors.UndefinedUnitError: + except (AssertionError, AttributeError, pint.errors.UndefinedUnitError): raise ValidationError(_('Invalid physical unit')) @@ -96,7 +94,6 @@ def validate_sales_order_reference(value): def validate_tree_name(value): """Placeholder for legacy function used in migrations.""" - ... def validate_overage(value): diff --git a/src/backend/InvenTree/InvenTree/views.py b/src/backend/InvenTree/InvenTree/views.py index 4f2293b894..b53990be20 100644 --- a/src/backend/InvenTree/InvenTree/views.py +++ b/src/backend/InvenTree/InvenTree/views.py @@ -180,7 +180,7 @@ class InvenTreeRoleMixin(PermissionRequiredMixin): AjaxUpdateView: 'change', } - for view_class in permission_map.keys(): + for view_class in permission_map: if issubclass(type(self), view_class): return permission_map[view_class] @@ -238,7 +238,6 @@ class AjaxMixin(InvenTreeRoleMixin): Ref: https://docs.djangoproject.com/en/dev/topics/forms/ """ # Do nothing by default - pass def renderJsonResponse(self, request, form=None, data=None, context=None): """Render a JSON response based on specific class context. @@ -286,7 +285,7 @@ class AjaxMixin(InvenTreeRoleMixin): # Custom feedback`data fb = self.get_data() - for key in fb.keys(): + for key in fb: data[key] = fb[key] return JsonResponse(data, safe=False) @@ -329,11 +328,11 @@ class AjaxUpdateView(AjaxMixin, UpdateView): request, self.get_form(), context=self.get_context_data() ) - def save(self, object, form, **kwargs): + def save(self, obj, form, **kwargs): """Method for updating the object in the database. Default implementation is very simple, but can be overridden if required. Args: - object: The current object, to be updated + obj: The current object, to be updated form: The validated form Returns: @@ -578,14 +577,10 @@ class UserSessionOverride: class CustomSessionDeleteView(UserSessionOverride, SessionDeleteView): """Revert to settings after session delete.""" - pass - class CustomSessionDeleteOtherView(UserSessionOverride, SessionDeleteOtherView): """Revert to settings after session delete.""" - pass - class CustomLoginView(LoginView): """Custom login view that allows login with urlargs.""" diff --git a/src/backend/InvenTree/build/api.py b/src/backend/InvenTree/build/api.py index 6e2ba21a72..d65d8980b9 100644 --- a/src/backend/InvenTree/build/api.py +++ b/src/backend/InvenTree/build/api.py @@ -6,9 +6,8 @@ from django.urls import include, path from django.utils.translation import gettext_lazy as _ from django.contrib.auth.models import User -from rest_framework.exceptions import ValidationError - from django_filters import rest_framework as rest_filters +from rest_framework.exceptions import ValidationError from importer.mixins import DataExportViewMixin @@ -35,13 +34,15 @@ class BuildFilter(rest_filters.FilterSet): model = Build fields = [ 'sales_order', - 'part', ] status = rest_filters.NumberFilter(label='Status') active = rest_filters.BooleanFilter(label='Build is active', method='filter_active') + # 'outstanding' is an alias for 'active' here + outstanding = rest_filters.BooleanFilter(label='Build is outstanding', method='filter_active') + def filter_active(self, queryset, name, value): """Filter the queryset to either include or exclude orders which are active.""" if str2bool(value): @@ -54,6 +55,39 @@ class BuildFilter(rest_filters.FilterSet): field_name='parent', ) + include_variants = rest_filters.BooleanFilter(label=_('Include Variants'), method='filter_include_variants') + + def filter_include_variants(self, queryset, name, value): + """Filter by whether or not to include variants of the selected part. + + Note: + - This filter does nothing by itself, and requires the 'part' filter to be set. + - Refer to the 'filter_part' method for more information. + """ + + return queryset + + part = rest_filters.ModelChoiceFilter( + queryset=part.models.Part.objects.all(), + field_name='part', + method='filter_part' + ) + + def filter_part(self, queryset, name, part): + """Filter by 'part' which is being built. + + Note: + - If "include_variants" is True, include all variants of the selected part. + - Otherwise, just filter by the selected part. + """ + + include_variants = str2bool(self.data.get('include_variants', False)) + + if include_variants: + return queryset.filter(part__in=part.get_descendants(include_self=True)) + else: + return queryset.filter(part=part) + ancestor = rest_filters.ModelChoiceFilter( queryset=Build.objects.all(), label=_('Ancestor Build'), @@ -117,7 +151,7 @@ class BuildFilter(rest_filters.FilterSet): def filter_responsible(self, queryset, name, owner): """Filter by orders which are assigned to the specified owner.""" - owners = list(Owner.objects.filter(pk=value)) + owners = list(Owner.objects.filter(pk=owner)) # if we query by a user, also find all ownerships through group memberships if len(owners) > 0 and owners[0].label() == 'user': @@ -163,6 +197,7 @@ class BuildMixin: 'build_lines__bom_item', 'build_lines__build', 'part', + 'part__pricing_data' ) return queryset @@ -338,10 +373,10 @@ class BuildLineFilter(rest_filters.FilterSet): To determine this, we need to know: - The quantity required for each BuildLine - - The quantity available for each BuildLine + - The quantity available for each BuildLine (including variants and substitutes) - The quantity allocated for each BuildLine """ - flt = Q(quantity__lte=F('total_available_stock') + F('allocated')) + flt = Q(quantity__lte=F('allocated') + F('available_stock') + F('available_substitute_stock') + F('available_variant_stock')) if str2bool(value): return queryset.filter(flt) @@ -367,10 +402,13 @@ class BuildLineEndpoint: def get_queryset(self): """Override queryset to select-related and annotate""" queryset = super().get_queryset() - source_build = self.get_source_build() - queryset = build.serializers.BuildLineSerializer.annotate_queryset(queryset, build=source_build) - return queryset + if not hasattr(self, 'source_build'): + self.source_build = self.get_source_build() + + source_build = self.source_build + + return build.serializers.BuildLineSerializer.annotate_queryset(queryset, build=source_build) class BuildLineList(BuildLineEndpoint, DataExportViewMixin, ListCreateAPI): @@ -414,15 +452,17 @@ class BuildLineList(BuildLineEndpoint, DataExportViewMixin, ListCreateAPI): def get_source_build(self) -> Build | None: """Return the target build for the BuildLine queryset.""" + source_build = None + try: build_id = self.request.query_params.get('build', None) if build_id: - build = Build.objects.get(pk=build_id) - return build + source_build = Build.objects.filter(pk=build_id).first() except (Build.DoesNotExist, AttributeError, ValueError): pass - return None + return source_build + class BuildLineDetail(BuildLineEndpoint, RetrieveUpdateDestroyAPI): """API endpoint for detail view of a BuildLine object.""" @@ -581,13 +621,45 @@ class BuildItemFilter(rest_filters.FilterSet): 'install_into', ] + include_variants = rest_filters.BooleanFilter( + label=_('Include Variants'), method='filter_include_variants' + ) + + def filter_include_variants(self, queryset, name, value): + """Filter by whether or not to include variants of the selected part. + + Note: + - This filter does nothing by itself, and requires the 'part' filter to be set. + - Refer to the 'filter_part' method for more information. + """ + + return queryset + part = rest_filters.ModelChoiceFilter( queryset=part.models.Part.objects.all(), + label=_('Part'), + method='filter_part', field_name='stock_item__part', ) + def filter_part(self, queryset, name, part): + """Filter by 'part' which is being built. + + Note: + - If "include_variants" is True, include all variants of the selected part. + - Otherwise, just filter by the selected part. + """ + + include_variants = str2bool(self.data.get('include_variants', False)) + + if include_variants: + return queryset.filter(stock_item__part__in=part.get_descendants(include_self=True)) + else: + return queryset.filter(stock_item__part=part) + build = rest_filters.ModelChoiceFilter( queryset=build.models.Build.objects.all(), + label=_('Build Order'), field_name='build_line__build', ) @@ -673,10 +745,12 @@ class BuildItemList(DataExportViewMixin, BulkDeleteMixin, ListCreateAPI): 'quantity', 'location', 'reference', + 'IPN', ] ordering_field_aliases = { 'part': 'stock_item__part__name', + 'IPN': 'stock_item__part__IPN', 'sku': 'stock_item__supplier_part__SKU', 'location': 'stock_item__location__name', 'reference': 'build_line__bom_item__reference', @@ -685,6 +759,7 @@ class BuildItemList(DataExportViewMixin, BulkDeleteMixin, ListCreateAPI): search_fields = [ 'stock_item__supplier_part__SKU', 'stock_item__part__name', + 'stock_item__part__IPN', 'build_line__bom_item__reference', ] diff --git a/src/backend/InvenTree/build/filters.py b/src/backend/InvenTree/build/filters.py new file mode 100644 index 0000000000..ff3c02a523 --- /dev/null +++ b/src/backend/InvenTree/build/filters.py @@ -0,0 +1,25 @@ +"""Queryset filtering helper functions for the Build app.""" + + +from django.db import models +from django.db.models import Sum, Q +from django.db.models.functions import Coalesce + + +def annotate_allocated_quantity(queryset: Q) -> Q: + """ + Annotate the 'allocated' quantity for each build item in the queryset. + + Arguments: + queryset: The BuildLine queryset to annotate + + """ + + queryset = queryset.prefetch_related('allocations') + + return queryset.annotate( + allocated=Coalesce( + Sum('allocations__quantity'), 0, + output_field=models.DecimalField() + ) + ) diff --git a/src/backend/InvenTree/build/migrations/0053_alter_build_part.py b/src/backend/InvenTree/build/migrations/0053_alter_build_part.py new file mode 100644 index 0000000000..d457b9bab2 --- /dev/null +++ b/src/backend/InvenTree/build/migrations/0053_alter_build_part.py @@ -0,0 +1,20 @@ +# Generated by Django 4.2.16 on 2024-10-16 06:19 + +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + dependencies = [ + ('part', '0130_alter_parttesttemplate_part'), + ('build', '0052_build_status_custom_key_alter_build_status'), + ] + + operations = [ + migrations.AlterField( + model_name='build', + name='part', + field=models.ForeignKey(help_text='Select part to build', limit_choices_to={'assembly': True}, on_delete=django.db.models.deletion.CASCADE, related_name='builds', to='part.part', verbose_name='Part'), + ), + ] diff --git a/src/backend/InvenTree/build/models.py b/src/backend/InvenTree/build/models.py index 899145f98d..f5530f074d 100644 --- a/src/backend/InvenTree/build/models.py +++ b/src/backend/InvenTree/build/models.py @@ -9,7 +9,7 @@ from django.contrib.auth.models import User from django.core.exceptions import ValidationError from django.core.validators import MinValueValidator from django.db import models, transaction -from django.db.models import Sum, Q +from django.db.models import F, Sum, Q from django.db.models.functions import Coalesce from django.db.models.signals import post_save from django.dispatch.dispatcher import receiver @@ -24,6 +24,7 @@ from rest_framework import serializers from build.status_codes import BuildStatus, BuildStatusGroups from stock.status_codes import StockStatus, StockHistoryCode +from build.filters import annotate_allocated_quantity from build.validators import generate_next_build_reference, validate_build_order_reference from generic.states import StateTransitionMixin @@ -124,8 +125,7 @@ class Build( def save(self, *args, **kwargs): """Custom save method for the BuildOrder model""" - self.validate_reference_field(self.reference) - self.reference_int = self.rebuild_reference_field(self.reference) + self.reference_int = self.validate_reference_field(self.reference) # Check part when initially creating the build order if not self.pk or self.has_field_changed('part'): @@ -270,8 +270,6 @@ class Build( related_name='builds', limit_choices_to={ 'assembly': True, - 'active': True, - 'virtual': False, }, help_text=_('Select part to build'), ) @@ -647,7 +645,8 @@ class Build( if not InvenTree.tasks.offload_task( build.tasks.complete_build_allocations, self.pk, - user.pk if user else None + user.pk if user else None, + group='build' ): raise ValidationError(_("Failed to offload task to complete build allocations")) @@ -774,7 +773,8 @@ class Build( if not InvenTree.tasks.offload_task( build.tasks.complete_build_allocations, self.pk, - user.pk if user else None + user.pk if user else None, + group='build', ): raise ValidationError(_("Failed to offload task to complete build allocations")) @@ -834,6 +834,16 @@ class Build( location: Override location auto_allocate: Automatically allocate stock with matching serial numbers """ + + trackable_parts = self.part.get_trackable_parts() + + # Create (and cache) a map of valid parts for allocation + valid_parts = {} + + for bom_item in trackable_parts: + parts = bom_item.get_valid_parts_for_allocation() + valid_parts[bom_item.pk] = list([part.pk for part in parts]) + user = kwargs.get('user', None) batch = kwargs.get('batch', self.batch) location = kwargs.get('location', None) @@ -843,81 +853,55 @@ class Build( if location is None: location = self.destination or self.part.get_default_location() - """ - Determine if we can create a single output (with quantity > 0), - or multiple outputs (with quantity = 1) - """ + if self.part.has_trackable_parts and not serials: + raise ValidationError({ + 'serials': _("Serial numbers must be provided for trackable parts") + }) - def _add_tracking_entry(output, user): - """Helper function to add a tracking entry to the newly created output""" - deltas = { - 'quantity': float(output.quantity), - 'buildorder': self.pk, - } - - if output.batch: - deltas['batch'] = output.batch - - if output.serial: - deltas['serial'] = output.serial - - if output.location: - deltas['location'] = output.location.pk - - output.add_tracking_entry(StockHistoryCode.BUILD_OUTPUT_CREATED, user, deltas) - - multiple = False - - # Serial numbers are provided? We need to split! + # We are generating multiple serialized outputs if serials: - multiple = True - - # BOM has trackable parts, so we must split! - if self.part.has_trackable_parts: - multiple = True - - if multiple: """Create multiple build outputs with a single quantity of 1.""" - # Quantity *must* be an integer at this point! - quantity = int(quantity) + # Create tracking entries for each item + tracking = [] + allocations = [] - for ii in range(quantity): + outputs = stock.models.StockItem._create_serial_numbers( + serials, + part=self.part, + build=self, + batch=batch, + is_building=True + ) - if serials: - serial = serials[ii] - else: - serial = None + for output in outputs: + # Generate a new historical tracking entry + if entry := output.add_tracking_entry( + StockHistoryCode.BUILD_OUTPUT_CREATED, + user, + deltas={ + 'quantity': 1, + 'buildorder': self.pk, + 'batch': output.batch, + 'serial': output.serial, + 'location': location.pk if location else None + }, + commit=False + ): + tracking.append(entry) - output = stock.models.StockItem.objects.create( - quantity=1, - location=location, - part=self.part, - build=self, - batch=batch, - serial=serial, - is_building=True, - ) + # Auto-allocate stock based on serial number + if auto_allocate: - _add_tracking_entry(output, user) - - if auto_allocate and serial is not None: - - # Get a list of BomItem objects which point to "trackable" parts - - for bom_item in self.part.get_trackable_parts(): - - parts = bom_item.get_valid_parts_for_allocation() + for bom_item in trackable_parts: + valid_part_ids = valid_parts.get(bom_item.pk, []) items = stock.models.StockItem.objects.filter( - part__in=parts, - serial=str(serial), + part__pk__in=valid_part_ids, + serial=output.serial, quantity=1, ).filter(stock.models.StockItem.IN_STOCK_FILTER) - """ - Test if there is a matching serial number! - """ if items.exists() and items.count() == 1: stock_item = items[0] @@ -929,15 +913,23 @@ class Build( ) # Allocate the stock items against the BuildLine - BuildItem.objects.create( - build_line=build_line, - stock_item=stock_item, - quantity=1, - install_into=output, + allocations.append( + BuildItem( + build_line=build_line, + stock_item=stock_item, + quantity=1, + install_into=output, + ) ) except BuildLine.DoesNotExist: pass + # Bulk create tracking entries + stock.models.StockItemTracking.objects.bulk_create(tracking) + + # Generate stock allocations + BuildItem.objects.bulk_create(allocations) + else: """Create a single build output of the given quantity.""" @@ -950,7 +942,16 @@ class Build( is_building=True ) - _add_tracking_entry(output, user) + output.add_tracking_entry( + StockHistoryCode.BUILD_OUTPUT_CREATED, + user, + deltas={ + 'quantity': float(quantity), + 'buildorder': self.pk, + 'batch': batch, + 'location': location.pk if location else None + } + ) if self.status == BuildStatus.PENDING: self.status = BuildStatus.PRODUCTION.value @@ -987,12 +988,13 @@ class Build( items_to_save = [] items_to_delete = [] - lines = self.untracked_line_items - lines = lines.prefetch_related('allocations') + lines = self.untracked_line_items.all() + lines = lines.exclude(bom_item__consumable=True) + lines = annotate_allocated_quantity(lines) for build_line in lines: - reduce_by = build_line.allocated_quantity() - build_line.quantity + reduce_by = build_line.allocated - build_line.quantity if reduce_by <= 0: continue @@ -1290,18 +1292,20 @@ class Build( """Returns a list of BuildLine objects which have not been fully allocated.""" lines = self.build_lines.all() + # Remove any 'consumable' line items + lines = lines.exclude(bom_item__consumable=True) + if tracked is True: lines = lines.filter(bom_item__sub_part__trackable=True) elif tracked is False: lines = lines.filter(bom_item__sub_part__trackable=False) - unallocated_lines = [] + lines = annotate_allocated_quantity(lines) - for line in lines: - if not line.is_fully_allocated(): - unallocated_lines.append(line) + # Filter out any lines which have been fully allocated + lines = lines.filter(allocated__lt=F('quantity')) - return unallocated_lines + return lines def is_fully_allocated(self, tracked=None): """Test if the BuildOrder has been fully allocated. @@ -1314,19 +1318,24 @@ class Build( Returns: True if the BuildOrder has been fully allocated, otherwise False """ - lines = self.unallocated_lines(tracked=tracked) - return len(lines) == 0 + + return self.unallocated_lines(tracked=tracked).count() == 0 def is_output_fully_allocated(self, output): """Determine if the specified output (StockItem) has been fully allocated for this build Args: - output: StockItem object + output: StockItem object (the "in production" output to test against) To determine if the output has been fully allocated, we need to test all "trackable" BuildLine objects """ - for line in self.build_lines.filter(bom_item__sub_part__trackable=True): + + lines = self.build_lines.filter(bom_item__sub_part__trackable=True) + lines = lines.exclude(bom_item__consumable=True) + + # Find any lines which have not been fully allocated + for line in lines: # Grab all BuildItem objects which point to this output allocations = BuildItem.objects.filter( build_line=line, @@ -1350,11 +1359,14 @@ class Build( Returns: True if any BuildLine has been over-allocated. """ - for line in self.build_lines.all(): - if line.is_overallocated(): - return True - return False + lines = self.build_lines.all().exclude(bom_item__consumable=True) + lines = annotate_allocated_quantity(lines) + + # Find any lines which have been over-allocated + lines = lines.filter(allocated__gt=F('quantity')) + + return lines.count() > 0 @property def is_active(self): @@ -1435,7 +1447,11 @@ def after_save_build(sender, instance: Build, created: bool, **kwargs): instance.create_build_line_items() # Run checks on required parts - InvenTree.tasks.offload_task(build_tasks.check_build_stock, instance) + InvenTree.tasks.offload_task( + build_tasks.check_build_stock, + instance, + group='build' + ) # Notify the responsible users that the build order has been created InvenTree.helpers_model.notify_responsible(instance, sender, exclude=instance.issued_by) @@ -1595,12 +1611,19 @@ class BuildItem(InvenTree.models.InvenTreeMetadataModel): 'quantity': _(f'Allocated quantity ({q}) must not exceed available stock quantity ({a})') }) - # Allocated quantity cannot cause the stock item to be over-allocated + # Ensure that we do not 'over allocate' a stock item available = decimal.Decimal(self.stock_item.quantity) - allocated = decimal.Decimal(self.stock_item.allocation_count()) quantity = decimal.Decimal(self.quantity) + build_allocation_count = decimal.Decimal(self.stock_item.build_allocation_count( + exclude_allocations={'pk': self.pk} + )) + sales_allocation_count = decimal.Decimal(self.stock_item.sales_order_allocation_count()) - if available - allocated + quantity < quantity: + total_allocation = ( + build_allocation_count + sales_allocation_count + quantity + ) + + if total_allocation > available: raise ValidationError({ 'quantity': _('Stock item is over-allocated') }) @@ -1692,6 +1715,9 @@ class BuildItem(InvenTree.models.InvenTreeMetadataModel): - If the referenced part is trackable, the stock item will be *installed* into the build output - If the referenced part is *not* trackable, the stock item will be *consumed* by the build order + + TODO: This is quite expensive (in terms of number of database hits) - and requires some thought + """ item = self.stock_item diff --git a/src/backend/InvenTree/build/serializers.py b/src/backend/InvenTree/build/serializers.py index 473c4b423d..236641b69c 100644 --- a/src/backend/InvenTree/build/serializers.py +++ b/src/backend/InvenTree/build/serializers.py @@ -7,6 +7,7 @@ from django.db import models, transaction from django.db.models import ( BooleanField, Case, + Count, ExpressionWrapper, F, FloatField, @@ -179,6 +180,7 @@ class BuildSerializer(NotesFieldMixin, DataImportExportSerializerMixin, InvenTre return reference + @transaction.atomic def create(self, validated_data): """Save the Build object.""" @@ -191,6 +193,7 @@ class BuildSerializer(NotesFieldMixin, DataImportExportSerializerMixin, InvenTre InvenTree.tasks.offload_task( build.tasks.create_child_builds, build_order.pk, + group='build' ) return build_order @@ -396,7 +399,8 @@ class BuildOutputCreateSerializer(serializers.Serializer): self.serials = InvenTree.helpers.extract_serial_numbers( serial_numbers, quantity, - part.get_latest_serial_number() + part.get_latest_serial_number(), + part=part ) except DjangoValidationError as e: raise ValidationError({ @@ -404,11 +408,7 @@ class BuildOutputCreateSerializer(serializers.Serializer): }) # Check for conflicting serial numbesr - existing = [] - - for serial in self.serials: - if not part.validate_serial_number(serial): - existing.append(serial) + existing = part.find_conflicting_serial_numbers(self.serials) if len(existing) > 0: @@ -555,7 +555,7 @@ class BuildOutputCompleteSerializer(serializers.Serializer): fields = [ 'outputs', 'location', - 'status', + 'status_custom_key', 'accept_incomplete_allocation', 'notes', ] @@ -573,7 +573,7 @@ class BuildOutputCompleteSerializer(serializers.Serializer): help_text=_("Location for completed build outputs"), ) - status = serializers.ChoiceField( + status_custom_key = serializers.ChoiceField( choices=StockStatus.items(), default=StockStatus.OK.value, label=_("Status"), @@ -621,8 +621,8 @@ class BuildOutputCompleteSerializer(serializers.Serializer): data = self.validated_data - location = data['location'] - status = data['status'] + location = data.get('location', None) + status = data.get('status_custom_key', StockStatus.OK.value) notes = data.get('notes', '') outputs = data.get('outputs', []) @@ -891,8 +891,8 @@ class BuildUnallocationSerializer(serializers.Serializer): data = self.validated_data build.deallocate_stock( - build_line=data['build_line'], - output=data['output'] + build_line=data.get('build_line', None), + output=data.get('output', None), ) @@ -1137,7 +1137,8 @@ class BuildAutoAllocationSerializer(serializers.Serializer): exclude_location=data.get('exclude_location', None), interchangeable=data['interchangeable'], substitutes=data['substitutes'], - optional_items=data['optional_items'] + optional_items=data['optional_items'], + group='build' ): raise ValidationError(_("Failed to start auto-allocation task")) @@ -1280,7 +1281,9 @@ class BuildLineSerializer(DataImportExportSerializerMixin, InvenTreeModelSeriali 'bom_item_detail', 'part_detail', 'quantity', - 'allocations', + + # Build detail fields + 'build_reference', # BOM item detail fields 'reference', @@ -1304,9 +1307,11 @@ class BuildLineSerializer(DataImportExportSerializerMixin, InvenTreeModelSeriali 'available_stock', 'available_substitute_stock', 'available_variant_stock', - 'total_available_stock', 'external_stock', + # Related fields + 'allocations', + # Extra fields only for data export 'part_description', 'part_category_name', @@ -1318,6 +1323,9 @@ class BuildLineSerializer(DataImportExportSerializerMixin, InvenTreeModelSeriali 'allocations', ] + # Build info fields + build_reference = serializers.CharField(source='build.reference', label=_('Build Reference'), read_only=True) + # Part info fields part = serializers.PrimaryKeyRelatedField(source='bom_item.sub_part', label=_('Part'), many=False, read_only=True) part_name = serializers.CharField(source='bom_item.sub_part.name', label=_('Part Name'), read_only=True) @@ -1327,6 +1335,8 @@ class BuildLineSerializer(DataImportExportSerializerMixin, InvenTreeModelSeriali part_category_id = serializers.PrimaryKeyRelatedField(source='bom_item.sub_part.category', label=_('Part Category ID'), read_only=True) part_category_name = serializers.CharField(source='bom_item.sub_part.category.name', label=_('Part Category Name'), read_only=True) + allocations = BuildItemSerializer(many=True, read_only=True) + # BOM item info fields reference = serializers.CharField(source='bom_item.reference', label=_('Reference'), read_only=True) consumable = serializers.BooleanField(source='bom_item.consumable', label=_('Consumable'), read_only=True) @@ -1341,11 +1351,21 @@ class BuildLineSerializer(DataImportExportSerializerMixin, InvenTreeModelSeriali bom_item = serializers.PrimaryKeyRelatedField(label=_('BOM Item'), read_only=True) # Foreign key fields - bom_item_detail = part_serializers.BomItemSerializer(source='bom_item', many=False, read_only=True, pricing=False) + bom_item_detail = part_serializers.BomItemSerializer( + source='bom_item', + many=False, + read_only=True, + pricing=False, + substitutes=False, + sub_part_detail=False, + part_detail=False + ) + part_detail = part_serializers.PartBriefSerializer(source='bom_item.sub_part', many=False, read_only=True, pricing=False) - allocations = BuildItemSerializer(many=True, read_only=True) # Annotated (calculated) fields + + # Total quantity of allocated stock allocated = serializers.FloatField( label=_('Allocated Stock'), read_only=True @@ -1361,15 +1381,10 @@ class BuildLineSerializer(DataImportExportSerializerMixin, InvenTreeModelSeriali read_only=True ) - available_stock = serializers.FloatField( - label=_('Available Stock'), - read_only=True - ) - + external_stock = serializers.FloatField(read_only=True, label=_('External Stock')) + available_stock = serializers.FloatField(read_only=True, label=_('Available Stock')) available_substitute_stock = serializers.FloatField(read_only=True, label=_('Available Substitute Stock')) available_variant_stock = serializers.FloatField(read_only=True, label=_('Available Variant Stock')) - total_available_stock = serializers.FloatField(read_only=True, label=_('Total Available Stock')) - external_stock = serializers.FloatField(read_only=True, label=_('External Stock')) @staticmethod def annotate_queryset(queryset, build=None): @@ -1391,14 +1406,16 @@ class BuildLineSerializer(DataImportExportSerializerMixin, InvenTreeModelSeriali 'build', 'bom_item', 'bom_item__part', - 'bom_item__part__pricing_data', 'bom_item__sub_part', - 'bom_item__sub_part__pricing_data', ) # Pre-fetch related fields queryset = queryset.prefetch_related( - 'bom_item__sub_part__tags', + 'allocations', + 'allocations__stock_item', + 'allocations__stock_item__part', + 'allocations__stock_item__location', + 'bom_item__sub_part__stock_items', 'bom_item__sub_part__stock_items__allocations', 'bom_item__sub_part__stock_items__sales_order_allocations', @@ -1407,26 +1424,63 @@ class BuildLineSerializer(DataImportExportSerializerMixin, InvenTreeModelSeriali 'bom_item__substitutes__part__stock_items', 'bom_item__substitutes__part__stock_items__allocations', 'bom_item__substitutes__part__stock_items__sales_order_allocations', + ) - 'allocations', - 'allocations__stock_item', - 'allocations__stock_item__part', - 'allocations__stock_item__location', - 'allocations__stock_item__location__tags', - 'allocations__stock_item__supplier_part', - 'allocations__stock_item__supplier_part__part', - 'allocations__stock_item__supplier_part__supplier', - 'allocations__stock_item__supplier_part__manufacturer_part', - 'allocations__stock_item__supplier_part__manufacturer_part__manufacturer', + # Defer expensive fields which we do not need for this serializer + + queryset = queryset.defer( + 'build__lft', + 'build__rght', + 'build__level', + 'build__tree_id', + 'build__destination', + 'build__take_from', + 'build__completed_by', + 'build__issued_by', + 'build__sales_order', + 'build__parent', + 'build__notes', + 'build__metadata', + 'build__responsible', + 'build__barcode_data', + 'build__barcode_hash', + 'build__project_code', + ).defer( + 'bom_item__metadata' + ).defer( + 'bom_item__part__lft', + 'bom_item__part__rght', + 'bom_item__part__level', + 'bom_item__part__tree_id', + 'bom_item__part__tags', + 'bom_item__part__notes', + 'bom_item__part__variant_of', + 'bom_item__part__revision_of', + 'bom_item__part__creation_user', + 'bom_item__part__bom_checked_by', + 'bom_item__part__default_supplier', + 'bom_item__part__responsible_owner', + ).defer( + 'bom_item__sub_part__lft', + 'bom_item__sub_part__rght', + 'bom_item__sub_part__level', + 'bom_item__sub_part__tree_id', + 'bom_item__sub_part__tags', + 'bom_item__sub_part__notes', + 'bom_item__sub_part__variant_of', + 'bom_item__sub_part__revision_of', + 'bom_item__sub_part__creation_user', + 'bom_item__sub_part__bom_checked_by', + 'bom_item__sub_part__default_supplier', + 'bom_item__sub_part__responsible_owner', ) # Annotate the "allocated" quantity - # Difficulty: Easy queryset = queryset.annotate( allocated=Coalesce( Sum('allocations__quantity'), 0, output_field=models.DecimalField() - ), + ) ) ref = 'bom_item__sub_part__' @@ -1449,7 +1503,6 @@ class BuildLineSerializer(DataImportExportSerializerMixin, InvenTreeModelSeriali ) # Annotate the "on_order" quantity - # Difficulty: Medium queryset = queryset.annotate( on_order=part.filters.annotate_on_order_quantity(reference=ref), ) @@ -1512,12 +1565,4 @@ class BuildLineSerializer(DataImportExportSerializerMixin, InvenTreeModelSeriali ) ) - # Annotate with the 'total available stock' - queryset = queryset.annotate( - total_available_stock=ExpressionWrapper( - F('available_stock') + F('available_substitute_stock') + F('available_variant_stock'), - output_field=FloatField(), - ) - ) - return queryset diff --git a/src/backend/InvenTree/build/status_codes.py b/src/backend/InvenTree/build/status_codes.py index bc7fc47ddc..1c8e66de30 100644 --- a/src/backend/InvenTree/build/status_codes.py +++ b/src/backend/InvenTree/build/status_codes.py @@ -23,3 +23,7 @@ class BuildStatusGroups: BuildStatus.ON_HOLD.value, BuildStatus.PRODUCTION.value, ] + + COMPLETE = [ + BuildStatus.COMPLETE.value, + ] diff --git a/src/backend/InvenTree/build/tasks.py b/src/backend/InvenTree/build/tasks.py index 5c95cfe70e..0df3233179 100644 --- a/src/backend/InvenTree/build/tasks.py +++ b/src/backend/InvenTree/build/tasks.py @@ -1,35 +1,36 @@ -"""Background task definitions for the BuildOrder app""" +"""Background task definitions for the BuildOrder app.""" + +import logging +import random +import time from datetime import timedelta from decimal import Decimal -import logging from django.contrib.auth.models import User -from django.utils.translation import gettext_lazy as _ from django.template.loader import render_to_string +from django.db import transaction +from django.utils.translation import gettext_lazy as _ from allauth.account.models import EmailAddress -from plugin.events import trigger_event +import build.models as build_models import common.notifications -import build.models -import InvenTree.email import InvenTree.helpers +import InvenTree.helpers_email import InvenTree.helpers_model import InvenTree.tasks -from InvenTree.ready import isImportingData -from build.status_codes import BuildStatusGroups - import part.models as part_models - +from build.status_codes import BuildStatusGroups +from InvenTree.ready import isImportingData +from plugin.events import trigger_event logger = logging.getLogger('inventree') def auto_allocate_build(build_id: int, **kwargs): """Run auto-allocation for a specified BuildOrder.""" - - build_order = build.models.Build.objects.filter(pk=build_id).first() + build_order = build_models.Build.objects.filter(pk=build_id).first() if not build_order: logger.warning("Could not auto-allocate BuildOrder <%s> - BuildOrder does not exist", build_id) @@ -40,8 +41,7 @@ def auto_allocate_build(build_id: int, **kwargs): def complete_build_allocations(build_id: int, user_id: int): """Complete build allocations for a specified BuildOrder.""" - - build_order = build.models.Build.objects.filter(pk=build_id).first() + build_order = build_models.Build.objects.filter(pk=build_id).first() if user_id: try: @@ -75,7 +75,7 @@ def update_build_order_lines(bom_item_pk: int): assemblies = bom_item.get_assemblies() # Find all active builds which reference any of the parts - builds = build.models.Build.objects.filter( + builds = build_models.Build.objects.filter( part__in=list(assemblies), status__in=BuildStatusGroups.ACTIVE_CODES ) @@ -83,7 +83,7 @@ def update_build_order_lines(bom_item_pk: int): # Iterate through each build, and update the relevant line items for bo in builds: # Try to find a matching build order line - line = build.models.BuildLine.objects.filter( + line = build_models.BuildLine.objects.filter( build=bo, bom_item=bom_item, ).first() @@ -97,7 +97,7 @@ def update_build_order_lines(bom_item_pk: int): line.save() else: # Create a new line item - build.models.BuildLine.objects.create( + build_models.BuildLine.objects.create( build=bo, bom_item=bom_item, quantity=q, @@ -107,7 +107,7 @@ def update_build_order_lines(bom_item_pk: int): logger.info("Updated %s build orders for part %s", builds.count(), bom_item.part) -def check_build_stock(build: build.models.Build): +def check_build_stock(build: build_models.Build): """Check the required stock for a newly created build order. Send an email out to any subscribed users if stock is low. @@ -185,7 +185,7 @@ def check_build_stock(build: build.models.Build): recipients = emails.values_list('email', flat=True) - InvenTree.email.send_email(subject, '', recipients, html_message=html_message) + InvenTree.helpers_email.send_email(subject, '', recipients, html_message=html_message) def create_child_builds(build_id: int) -> None: @@ -196,36 +196,59 @@ def create_child_builds(build_id: int) -> None: """ try: - build_order = build.models.Build.objects.get(pk=build_id) - except (Build.DoesNotExist, ValueError): + build_order = build_models.Build.objects.get(pk=build_id) + except (build_models.Build.DoesNotExist, ValueError): return assembly_items = build_order.part.get_bom_items().filter(sub_part__assembly=True) - for item in assembly_items: - quantity = item.quantity * build_order.quantity + # Random delay, to reduce likelihood of race conditions from multiple build orders being created simultaneously + time.sleep(random.random()) - sub_order = build.models.Build.objects.create( - part=item.sub_part, - quantity=quantity, - title=build_order.title, - batch=build_order.batch, - parent=build_order, - target_date=build_order.target_date, - sales_order=build_order.sales_order, - issued_by=build_order.issued_by, - responsible=build_order.responsible, - ) + with transaction.atomic(): + # Atomic transaction to ensure that all child build orders are created together, or not at all + # This is critical to prevent duplicate child build orders being created (e.g. if the task is re-run) - # Offload the child build order creation to the background task queue - InvenTree.tasks.offload_task( - create_child_builds, - sub_order.pk - ) + sub_build_ids = [] + + for item in assembly_items: + quantity = item.quantity * build_order.quantity -def notify_overdue_build_order(bo: build.models.Build): - """Notify appropriate users that a Build has just become 'overdue'""" + # Check if the child build order has already been created + if build_models.Build.objects.filter( + part=item.sub_part, + parent=build_order, + quantity=quantity, + status__in=BuildStatusGroups.ACTIVE_CODES + ).exists(): + continue + + sub_order = build_models.Build.objects.create( + part=item.sub_part, + quantity=quantity, + title=build_order.title, + batch=build_order.batch, + parent=build_order, + target_date=build_order.target_date, + sales_order=build_order.sales_order, + issued_by=build_order.issued_by, + responsible=build_order.responsible, + ) + + sub_build_ids.append(sub_order.pk) + + for pk in sub_build_ids: + # Offload the child build order creation to the background task queue + InvenTree.tasks.offload_task( + create_child_builds, + pk, + group='build' + ) + + +def notify_overdue_build_order(bo: build_models.Build): + """Notify appropriate users that a Build has just become 'overdue'.""" targets = [] if bo.issued_by: @@ -265,7 +288,7 @@ def notify_overdue_build_order(bo: build.models.Build): @InvenTree.tasks.scheduled_task(InvenTree.tasks.ScheduledTask.DAILY) def check_overdue_build_orders(): - """Check if any outstanding BuildOrders have just become overdue + """Check if any outstanding BuildOrders have just become overdue. - This check is performed daily - Look at the 'target_date' of any outstanding BuildOrder objects @@ -273,7 +296,7 @@ def check_overdue_build_orders(): """ yesterday = InvenTree.helpers.current_date() - timedelta(days=1) - overdue_orders = build.models.Build.objects.filter( + overdue_orders = build_models.Build.objects.filter( target_date=yesterday, status__in=BuildStatusGroups.ACTIVE_CODES ) diff --git a/src/backend/InvenTree/build/templates/build/build_base.html b/src/backend/InvenTree/build/templates/build/build_base.html index e9c4b5b9d2..a1d798a5ec 100644 --- a/src/backend/InvenTree/build/templates/build/build_base.html +++ b/src/backend/InvenTree/build/templates/build/build_base.html @@ -3,6 +3,7 @@ {% load static %} {% load i18n %} {% load generic %} +{% load barcode %} {% load inventree_extras %} {% block page_title %} @@ -84,7 +85,7 @@ src="{% static 'img/blank_image.png' %}" {% if build.can_issue %} - {% elif build.active %} @@ -310,7 +311,7 @@ src="{% static 'img/blank_image.png' %}" $('#show-qr-code').click(function() { showQRDialog( '{% trans "Build Order QR Code" escape %}', - '{{ build.barcode }}' + `{% clean_barcode build.barcode %}` ); }); diff --git a/src/backend/InvenTree/build/test_api.py b/src/backend/InvenTree/build/test_api.py index 9183e1b436..a6a463fdc3 100644 --- a/src/backend/InvenTree/build/test_api.py +++ b/src/backend/InvenTree/build/test_api.py @@ -7,7 +7,7 @@ from django.urls import reverse from rest_framework import status from part.models import Part, BomItem -from build.models import Build, BuildItem +from build.models import Build, BuildItem, BuildLine from stock.models import StockItem from build.status_codes import BuildStatus @@ -451,6 +451,10 @@ class BuildTest(BuildAPITest): # Now, let's delete each build output individually via the API outputs = bo.build_outputs.all() + # Assert that each output is currently in production + for output in outputs: + self.assertTrue(output.is_building) + delete_url = reverse('api-build-output-delete', kwargs={'pk': 1}) response = self.post( @@ -993,6 +997,65 @@ class BuildAllocationTest(BuildAPITest): expected_code=201, ) +class BuildItemTest(BuildAPITest): + """Unit tests for build items. + + For this test, we will be using Build ID=1; + + - This points to Part 100 (see fixture data in part.yaml) + - This Part already has a BOM with 4 items (see fixture data in bom.yaml) + - There are no BomItem objects yet created for this build + """ + + def setUp(self): + """Basic operation as part of test suite setup""" + super().setUp() + + self.assignRole('build.add') + self.assignRole('build.change') + + self.build = Build.objects.get(pk=1) + + # Regenerate BuildLine objects + self.build.create_build_line_items() + + # Record number of build items which exist at the start of each test + self.n = BuildItem.objects.count() + + def test_update_overallocated(self): + """Test update of overallocated stock items.""" + + si = StockItem.objects.get(pk=2) + + # Find line item + line = self.build.build_lines.all().filter(bom_item__sub_part=si.part).first() + + # Set initial stock item quantity + si.quantity = 100 + si.save() + + # Create build item + bi = BuildItem( + build_line=line, + stock_item=si, + quantity=100 + ) + bi.save() + + # Reduce stock item quantity + si.quantity = 50 + si.save() + + # Reduce build item quantity + url = reverse('api-build-item-detail', kwargs={'pk': bi.pk}) + + self.patch( + url, + { + "quantity": 50, + }, + expected_code=200, + ) class BuildOverallocationTest(BuildAPITest): """Unit tests for over allocation of stock items against a build order. @@ -1039,6 +1102,12 @@ class BuildOverallocationTest(BuildAPITest): outputs = cls.build.build_outputs.all() cls.build.complete_build_output(outputs[0], cls.user) + def setUp(self): + """Basic operation as part of test suite setup""" + super().setUp() + + self.generate_exchange_rates() + def test_setup(self): """Validate expected state after set-up.""" self.assertEqual(self.build.incomplete_outputs.count(), 0) @@ -1067,7 +1136,7 @@ class BuildOverallocationTest(BuildAPITest): 'accept_overallocated': 'accept', }, expected_code=201, - max_query_count=550, # TODO: Come back and refactor this + max_query_count=1000, # TODO: Come back and refactor this ) self.build.refresh_from_db() @@ -1088,9 +1157,11 @@ class BuildOverallocationTest(BuildAPITest): 'accept_overallocated': 'trim', }, expected_code=201, - max_query_count=600, # TODO: Come back and refactor this + max_query_count=1000, # TODO: Come back and refactor this ) + # Note: Large number of queries is due to pricing recalculation for each stock item + self.build.refresh_from_db() # Build should have been marked as complete @@ -1202,6 +1273,86 @@ class BuildListTest(BuildAPITest): self.assertEqual(len(builds), 20) +class BuildOutputCreateTest(BuildAPITest): + """Unit test for creating build output via API.""" + + def test_create_serialized_output(self): + """Create a serialized build output via the API.""" + + build_id = 1 + + url = reverse('api-build-output-create', kwargs={'pk': build_id}) + + build = Build.objects.get(pk=build_id) + part = build.part + + n_outputs = build.output_count + n_items = part.stock_items.count() + + # Post with invalid data + response = self.post( + url, + data={ + 'quantity': 10, + 'serial_numbers': '1-100', + }, + expected_code=400 + ) + + self.assertIn('Group range 1-100 exceeds allowed quantity (10)', str(response.data['serial_numbers'])) + + # Build outputs have not increased + self.assertEqual(n_outputs, build.output_count) + + # Stock items have not increased + self.assertEqual(n_items, part.stock_items.count()) + + response = self.post( + url, + data={ + 'quantity': 5, + 'serial_numbers': '1,2,3-5', + }, + expected_code=201 + ) + + # Build outputs have incdeased + self.assertEqual(n_outputs + 5, build.output_count) + + # Stock items have increased + self.assertEqual(n_items + 5, part.stock_items.count()) + + # Serial numbers have been created + for sn in range(1, 6): + self.assertTrue(part.stock_items.filter(serial=sn).exists()) + + def test_create_unserialized_output(self): + """Create an unserialized build output via the API.""" + + build_id = 1 + url = reverse('api-build-output-create', kwargs={'pk': build_id}) + + build = Build.objects.get(pk=build_id) + part = build.part + + n_outputs = build.output_count + n_items = part.stock_items.count() + + # Create a single new output + self.post( + url, + data={ + 'quantity': 10, + }, + expected_code=201 + ) + + # Build outputs have increased + self.assertEqual(n_outputs + 1, build.output_count) + + # Stock items have increased + self.assertEqual(n_items + 1, part.stock_items.count()) + class BuildOutputScrapTest(BuildAPITest): """Unit tests for scrapping build outputs""" @@ -1324,3 +1475,29 @@ class BuildOutputScrapTest(BuildAPITest): output.refresh_from_db() self.assertEqual(output.status, StockStatus.REJECTED) self.assertFalse(output.is_building) + + +class BuildLineTests(BuildAPITest): + """Unit tests for the BuildLine API endpoints.""" + + def test_filter_available(self): + """Filter BuildLine objects by 'available' status.""" + + url = reverse('api-build-line-list') + + # First *all* BuildLine objects + response = self.get(url) + self.assertEqual(len(response.data), BuildLine.objects.count()) + + # Filter by 'available' status + # Note: The max_query_time is bumped up here, as postgresql backend has some strange issues (only during testing) + response = self.get(url, data={'available': True}, max_query_time=15) + n_t = len(response.data) + self.assertGreater(n_t, 0) + + # Note: The max_query_time is bumped up here, as postgresql backend has some strange issues (only during testing) + response = self.get(url, data={'available': False}, max_query_time=15) + n_f = len(response.data) + self.assertGreater(n_f, 0) + + self.assertEqual(n_t + n_f, BuildLine.objects.count()) diff --git a/src/backend/InvenTree/build/test_build.py b/src/backend/InvenTree/build/test_build.py index 7e190e3e21..2df213b370 100644 --- a/src/backend/InvenTree/build/test_build.py +++ b/src/backend/InvenTree/build/test_build.py @@ -55,6 +55,7 @@ class BuildTestBase(TestCase): description="Why does it matter what my description is?", assembly=True, trackable=True, + testable=True, ) # create one build with one required test template @@ -63,6 +64,7 @@ class BuildTestBase(TestCase): description="Why does it matter what my description is?", assembly=True, trackable=True, + testable=True, ) cls.test_template_required = PartTestTemplate.objects.create( @@ -98,6 +100,7 @@ class BuildTestBase(TestCase): description="Why does it matter what my description is?", assembly=True, trackable=True, + testable=True, ) cls.test_template_non_required = PartTestTemplate.objects.create( diff --git a/src/backend/InvenTree/common/admin.py b/src/backend/InvenTree/common/admin.py index a0719f9ab4..a2b02522db 100644 --- a/src/backend/InvenTree/common/admin.py +++ b/src/backend/InvenTree/common/admin.py @@ -35,6 +35,15 @@ class AttachmentAdmin(admin.ModelAdmin): search_fields = ('content_type', 'comment') +@admin.register(common.models.BarcodeScanResult) +class BarcodeScanResultAdmin(admin.ModelAdmin): + """Admin interface for BarcodeScanResult objects.""" + + list_display = ('data', 'timestamp', 'user', 'endpoint', 'result') + + list_filter = ('user', 'endpoint', 'result') + + @admin.register(common.models.ProjectCode) class ProjectCodeAdmin(ImportExportModelAdmin): """Admin settings for ProjectCode.""" diff --git a/src/backend/InvenTree/common/api.py b/src/backend/InvenTree/common/api.py index fe5e622762..e257c31a2f 100644 --- a/src/backend/InvenTree/common/api.py +++ b/src/backend/InvenTree/common/api.py @@ -1,6 +1,7 @@ """Provides a JSON API for common components.""" import json +from typing import Type from django.conf import settings from django.contrib.contenttypes.models import ContentType @@ -19,6 +20,7 @@ from django_q.tasks import async_task from djmoney.contrib.exchange.models import ExchangeBackend, Rate from drf_spectacular.utils import OpenApiResponse, extend_schema from error_report.models import Error +from pint._typing import UnitLike from rest_framework import permissions, serializers from rest_framework.exceptions import NotAcceptable, NotFound, PermissionDenied from rest_framework.permissions import IsAdminUser @@ -27,6 +29,7 @@ from rest_framework.views import APIView import common.models import common.serializers +import InvenTree.conversion from common.icons import get_icon_packs from common.settings import get_global_setting from generic.states.api import urlpattern as generic_states_api_urls @@ -47,7 +50,7 @@ from plugin.models import NotificationUserSetting from plugin.serializers import NotificationUserSettingSerializer -class CsrfExemptMixin(object): +class CsrfExemptMixin: """Exempts the view from CSRF requirements.""" @method_decorator(csrf_exempt) @@ -136,7 +139,7 @@ class CurrencyExchangeView(APIView): serializer_class = None @extend_schema(responses={200: common.serializers.CurrencyExchangeSerializer}) - def get(self, request, format=None): + def get(self, request, fmt=None): """Return information on available currency conversions.""" # Extract a list of all available rates try: @@ -244,10 +247,7 @@ class GlobalSettingsDetail(RetrieveUpdateAPI): """Attempt to find a global setting object with the provided key.""" key = str(self.kwargs['key']).upper() - if ( - key.startswith('_') - or key not in common.models.InvenTreeSetting.SETTINGS.keys() - ): + if key.startswith('_') or key not in common.models.InvenTreeSetting.SETTINGS: raise NotFound() return common.models.InvenTreeSetting.get_setting_object( @@ -318,7 +318,7 @@ class UserSettingsDetail(RetrieveUpdateAPI): if ( key.startswith('_') - or key not in common.models.InvenTreeUserSetting.SETTINGS.keys() + or key not in common.models.InvenTreeUserSetting.SETTINGS ): raise NotFound() @@ -536,6 +536,36 @@ class CustomUnitDetail(RetrieveUpdateDestroyAPI): permission_classes = [permissions.IsAuthenticated, IsStaffOrReadOnly] +class AllUnitList(ListAPI): + """List of all defined units.""" + + serializer_class = common.serializers.AllUnitListResponseSerializer + permission_classes = [permissions.IsAuthenticated, IsStaffOrReadOnly] + + def get(self, request, *args, **kwargs): + """Return a list of all available units.""" + reg = InvenTree.conversion.get_unit_registry() + all_units = {k: self.get_unit(reg, k) for k in reg} + data = { + 'default_system': reg.default_system, + 'available_systems': dir(reg.sys), + 'available_units': {k: v for k, v in all_units.items() if v}, + } + return Response(data) + + def get_unit(self, reg, k): + """Parse a unit from the registry.""" + if not hasattr(reg, k): + return None + unit: Type[UnitLike] = getattr(reg, k) + return { + 'name': k, + 'is_alias': reg.get_name(k) == k, + 'compatible_units': [str(a) for a in unit.compatible_units()], + 'isdimensionless': unit.dimensionless, + } + + class ErrorMessageList(BulkDeleteMixin, ListAPI): """List view for server error messages.""" @@ -566,7 +596,7 @@ class BackgroundTaskOverview(APIView): permission_classes = [permissions.IsAuthenticated, IsAdminUser] serializer_class = None - def get(self, request, format=None): + def get(self, request, fmt=None): """Return information about the current status of the background task queue.""" import django_q.models as q_models @@ -903,6 +933,7 @@ common_api_urls = [ path('', CustomUnitDetail.as_view(), name='api-custom-unit-detail') ]), ), + path('all/', AllUnitList.as_view(), name='api-all-unit-list'), path('', CustomUnitList.as_view(), name='api-custom-unit-list'), ]), ), diff --git a/src/backend/InvenTree/common/currency.py b/src/backend/InvenTree/common/currency.py index 1769cf8c36..c44d5019aa 100644 --- a/src/backend/InvenTree/common/currency.py +++ b/src/backend/InvenTree/common/currency.py @@ -113,7 +113,9 @@ def after_change_currency(setting) -> None: InvenTree.tasks.update_exchange_rates(force=True) # Offload update of part prices to a background task - InvenTree.tasks.offload_task(part_tasks.check_missing_pricing, force_async=True) + InvenTree.tasks.offload_task( + part_tasks.check_missing_pricing, force_async=True, group='pricing' + ) def validate_currency_codes(value): diff --git a/src/backend/InvenTree/common/files.py b/src/backend/InvenTree/common/files.py index 37d85f46aa..2e1d8872ce 100644 --- a/src/backend/InvenTree/common/files.py +++ b/src/backend/InvenTree/common/files.py @@ -60,7 +60,7 @@ class FileManager: file.seek(0) else: fmt = ext.upper() - raise ValidationError(_(f'Unsupported file format: {fmt}')) + raise ValidationError(_('Unsupported file format') + f': {fmt}') except UnicodeEncodeError: raise ValidationError(_('Error reading file (invalid encoding)')) diff --git a/src/backend/InvenTree/common/forms.py b/src/backend/InvenTree/common/forms.py index 4800149013..113b471acc 100644 --- a/src/backend/InvenTree/common/forms.py +++ b/src/backend/InvenTree/common/forms.py @@ -22,8 +22,8 @@ class UploadFileForm(forms.Form): if name: # Update label and help_text with file name - self.fields['file'].label = _(f'{name.title()} File') - self.fields['file'].help_text = _(f'Select {name} file to upload') + self.fields['file'].label = name.title() + ' ' + _('File') + self.fields['file'].help_text = _('Select file to upload') def clean_file(self): """Run tabular file validation. @@ -65,7 +65,7 @@ class MatchFieldForm(forms.Form): for col in columns: field_name = col['name'] self.fields[field_name] = forms.ChoiceField( - choices=[('', '-' * 10)] + headers_choices, + choices=[('', '-' * 10), *headers_choices], required=False, widget=forms.Select(attrs={'class': 'select fieldselect'}), ) @@ -83,10 +83,7 @@ class MatchItemForm(forms.Form): if 'file_manager' in kwargs: file_manager = kwargs.pop('file_manager') - if 'row_data' in kwargs: - row_data = kwargs.pop('row_data') - else: - row_data = None + row_data = kwargs.pop('row_data') if 'row_data' in kwargs else None super().__init__(*args, **kwargs) @@ -134,7 +131,7 @@ class MatchItemForm(forms.Form): item_match = row['match_' + col_guess] # Set field select box self.fields[field_name] = forms.ChoiceField( - choices=[('', '-' * 10)] + item_options, + choices=[('', '-' * 10), *item_options], required=False, widget=forms.Select(attrs={'class': 'select bomselect'}), ) @@ -154,7 +151,7 @@ class MatchItemForm(forms.Form): field_name = 'item_select-' + str(row['index']) # Set field select box self.fields[field_name] = forms.ChoiceField( - choices=[('', '-' * 10)] + item_options, + choices=[('', '-' * 10), *item_options], required=False, widget=forms.Select(attrs={'class': 'select bomselect'}), ) diff --git a/src/backend/InvenTree/common/icons.py b/src/backend/InvenTree/common/icons.py index 1ba6efe241..46492dd155 100644 --- a/src/backend/InvenTree/common/icons.py +++ b/src/backend/InvenTree/common/icons.py @@ -55,7 +55,7 @@ def get_icon_packs(): tabler_icons_path = Path(__file__).parent.parent.joinpath( 'InvenTree/static/tabler-icons/icons.json' ) - with open(tabler_icons_path, 'r') as tabler_icons_file: + with open(tabler_icons_path, encoding='utf-8') as tabler_icons_file: tabler_icons = json.load(tabler_icons_file) icon_packs = [ diff --git a/src/backend/InvenTree/common/migrations/0005_auto_20190915_1256.py b/src/backend/InvenTree/common/migrations/0005_auto_20190915_1256.py index 5b3205128d..2822fd82c3 100644 --- a/src/backend/InvenTree/common/migrations/0005_auto_20190915_1256.py +++ b/src/backend/InvenTree/common/migrations/0005_auto_20190915_1256.py @@ -18,6 +18,6 @@ class Migration(migrations.Migration): migrations.AlterField( model_name='inventreesetting', name='key', - field=models.CharField(help_text='Settings key (must be unique - case insensitive', max_length=50, unique=True), + field=models.CharField(help_text='Settings key', max_length=50, unique=True), ), ] diff --git a/src/backend/InvenTree/common/migrations/0010_migrate_currency_setting.py b/src/backend/InvenTree/common/migrations/0010_migrate_currency_setting.py index 116d139be8..8d84505f87 100644 --- a/src/backend/InvenTree/common/migrations/0010_migrate_currency_setting.py +++ b/src/backend/InvenTree/common/migrations/0010_migrate_currency_setting.py @@ -29,5 +29,5 @@ class Migration(migrations.Migration): ] operations = [ - migrations.RunPython(set_default_currency), + migrations.RunPython(set_default_currency, reverse_code=migrations.RunPython.noop), ] diff --git a/src/backend/InvenTree/common/migrations/0011_auto_20210722_2114.py b/src/backend/InvenTree/common/migrations/0011_auto_20210722_2114.py index 388117f261..2d7d28343f 100644 --- a/src/backend/InvenTree/common/migrations/0011_auto_20210722_2114.py +++ b/src/backend/InvenTree/common/migrations/0011_auto_20210722_2114.py @@ -18,7 +18,7 @@ class Migration(migrations.Migration): fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('value', models.CharField(blank=True, help_text='Settings value', max_length=200)), - ('key', models.CharField(help_text='Settings key (must be unique - case insensitive', max_length=50)), + ('key', models.CharField(help_text='Settings key', max_length=50)), ('user', models.ForeignKey(blank=True, help_text='User', null=True, on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL, verbose_name='User')), ], options={ diff --git a/src/backend/InvenTree/common/migrations/0030_barcodescanresult.py b/src/backend/InvenTree/common/migrations/0030_barcodescanresult.py new file mode 100644 index 0000000000..fe9ed14c6e --- /dev/null +++ b/src/backend/InvenTree/common/migrations/0030_barcodescanresult.py @@ -0,0 +1,34 @@ +# Generated by Django 4.2.15 on 2024-09-21 06:05 + +import InvenTree.models +from django.conf import settings +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + dependencies = [ + migrations.swappable_dependency(settings.AUTH_USER_MODEL), + ('common', '0029_inventreecustomuserstatemodel'), + ] + + operations = [ + migrations.CreateModel( + name='BarcodeScanResult', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('data', models.CharField(help_text='Barcode data', max_length=250, verbose_name='Data')), + ('timestamp', models.DateTimeField(auto_now_add=True, help_text='Date and time of the barcode scan', verbose_name='Timestamp')), + ('endpoint', models.CharField(blank=True, help_text='URL endpoint which processed the barcode', max_length=250, null=True, verbose_name='Path')), + ('context', models.JSONField(blank=True, help_text='Context data for the barcode scan', max_length=1000, null=True, verbose_name='Context')), + ('response', models.JSONField(blank=True, help_text='Response data from the barcode scan', max_length=1000, null=True, verbose_name='Response')), + ('result', models.BooleanField(default=False, help_text='Was the barcode scan successful?', verbose_name='Result')), + ('user', models.ForeignKey(blank=True, help_text='User who scanned the barcode', null=True, on_delete=django.db.models.deletion.SET_NULL, to=settings.AUTH_USER_MODEL, verbose_name='User')), + ], + options={ + 'verbose_name': 'Barcode Scan', + }, + bases=(InvenTree.models.PluginValidationMixin, models.Model), + ), + ] diff --git a/src/backend/InvenTree/common/migrations/0031_auto_20241026_0024.py b/src/backend/InvenTree/common/migrations/0031_auto_20241026_0024.py new file mode 100644 index 0000000000..75b6c86a67 --- /dev/null +++ b/src/backend/InvenTree/common/migrations/0031_auto_20241026_0024.py @@ -0,0 +1,39 @@ +# Generated by Django 4.2.16 on 2024-10-26 00:24 + +from django.conf import settings +from django.db import migrations + +import logging + +logger = logging.getLogger('inventree') + + +def update_news_feed_urls(apps, schema_editor): + """Update and validate the news feed URLs.""" + + from common.models import NewsFeedEntry + + n = 0 + + for entry in NewsFeedEntry.objects.all(): + if entry.link and entry.link.startswith('/'): + entry.link = settings.INVENTREE_BASE_URL + entry.link + entry.save() + n += 1 + + if n > 0: + logger.info("Updated link for %s NewsFeedEntry objects", n) + + +class Migration(migrations.Migration): + + dependencies = [ + ('common', '0030_barcodescanresult'), + ] + + operations = [ + migrations.RunPython( + update_news_feed_urls, + reverse_code=migrations.RunPython.noop + ) + ] diff --git a/src/backend/InvenTree/common/models.py b/src/backend/InvenTree/common/models.py index 93dd5d11ce..fb57bfa67d 100644 --- a/src/backend/InvenTree/common/models.py +++ b/src/backend/InvenTree/common/models.py @@ -43,6 +43,7 @@ from taggit.managers import TaggableManager import build.validators import common.currency import common.validators +import InvenTree.exceptions import InvenTree.fields import InvenTree.helpers import InvenTree.models @@ -248,7 +249,7 @@ class BaseInvenTreeSetting(models.Model): If a particular setting is not present, create it with the default value """ - cache_key = f'BUILD_DEFAULT_VALUES:{str(cls.__name__)}' + cache_key = f'BUILD_DEFAULT_VALUES:{cls.__name__!s}' try: if InvenTree.helpers.str2bool(cache.get(cache_key, False)): @@ -331,7 +332,7 @@ class BaseInvenTreeSetting(models.Model): - The unique KEY string - Any key:value kwargs associated with the particular setting type (e.g. user-id) """ - key = f'{str(cls.__name__)}:{setting_key}' + key = f'{cls.__name__!s}:{setting_key}' for k, v in kwargs.items(): key += f'_{k}:{v}' @@ -779,10 +780,7 @@ class BaseInvenTreeSetting(models.Model): ) key = models.CharField( - max_length=50, - blank=False, - unique=False, - help_text=_('Settings key (must be unique - case insensitive)'), + max_length=50, blank=False, unique=False, help_text=_('Settings key') ) value = models.CharField( @@ -828,6 +826,9 @@ class BaseInvenTreeSetting(models.Model): elif self.is_bool(): self.value = self.as_bool() + elif self.is_float(): + self.value = self.as_float() + validator = self.__class__.get_setting_validator( self.key, **self.get_filters_for_instance() ) @@ -864,6 +865,14 @@ class BaseInvenTreeSetting(models.Model): except (ValueError, TypeError): raise ValidationError({'value': _('Value must be an integer value')}) + # Floating point validator + if validator is float: + try: + # Coerce into a floating point value + value = float(value) + except (ValueError, TypeError): + raise ValidationError({'value': _('Value must be a valid number')}) + # If a list of validators is supplied, iterate through each one if type(validator) in [list, tuple]: for v in validator: @@ -875,10 +884,20 @@ class BaseInvenTreeSetting(models.Model): if self.is_bool(): value = self.as_bool() - if self.is_int(): + elif self.is_int(): value = self.as_int() - validator(value) + elif self.is_float(): + value = self.as_float() + + try: + validator(value) + except ValidationError as e: + raise e + except Exception: + raise ValidationError({ + 'value': _('Value does not pass validation checks') + }) def validate_unique(self, exclude=None): """Ensure that the key:value pair is unique. In addition to the base validators, this ensures that the 'key' is unique, using a case-insensitive comparison. @@ -972,6 +991,9 @@ class BaseInvenTreeSetting(models.Model): if not model_name: return None + # Enforce lower-case model name + model_name = str(model_name).strip().lower() + try: (app, mdl) = model_name.strip().split('.') except ValueError: @@ -1071,6 +1093,39 @@ class BaseInvenTreeSetting(models.Model): return False + def is_float(self): + """Check if the setting is required to be a float value.""" + validator = self.__class__.get_setting_validator( + self.key, **self.get_filters_for_instance() + ) + + return self.__class__.validator_is_float(validator) + + @classmethod + def validator_is_float(cls, validator): + """Return if validator is for float.""" + if validator == float: + return True + + if type(validator) in [list, tuple]: + for v in validator: + if v == float: + return True + + return False + + def as_float(self): + """Return the value of this setting converted to a float value. + + If an error occurs, return the default value + """ + try: + value = float(self.value) + except (ValueError, TypeError): + value = self.default_value + + return value + def is_int(self): """Check if the setting is required to be an integer value.""" validator = self.__class__.get_setting_validator( @@ -1398,6 +1453,18 @@ class InvenTreeSetting(BaseInvenTreeSetting): 'default': True, 'validator': bool, }, + 'BARCODE_STORE_RESULTS': { + 'name': _('Store Barcode Results'), + 'description': _('Store barcode scan results in the database'), + 'default': False, + 'validator': bool, + }, + 'BARCODE_RESULTS_MAX_NUM': { + 'name': _('Barcode Scans Maximum Count'), + 'description': _('Maximum number of barcode scan results to store'), + 'default': 100, + 'validator': [int, MinValueValidator(1)], + }, 'BARCODE_INPUT_DELAY': { 'name': _('Barcode Input Delay'), 'description': _('Barcode input processing delay time'), @@ -1704,20 +1771,6 @@ class InvenTreeSetting(BaseInvenTreeSetting): 'default': 'A4', 'choices': report.helpers.report_page_size_options, }, - 'REPORT_ENABLE_TEST_REPORT': { - 'name': _('Enable Test Reports'), - 'description': _('Enable generation of test reports'), - 'default': True, - 'validator': bool, - }, - 'REPORT_ATTACH_TEST_REPORT': { - 'name': _('Attach Test Reports'), - 'description': _( - 'When printing a Test Report, attach a copy of the Test Report to the associated Stock Item' - ), - 'default': False, - 'validator': bool, - }, 'SERIAL_NUMBER_GLOBALLY_UNIQUE': { 'name': _('Globally Unique Serials'), 'description': _('Serial numbers for stock items must be globally unique'), @@ -2062,7 +2115,7 @@ class InvenTreeSetting(BaseInvenTreeSetting): 'description': _( 'Check that all plugins are installed on startup - enable in container environments' ), - 'default': str(os.getenv('INVENTREE_DOCKER', False)).lower() + 'default': str(os.getenv('INVENTREE_DOCKER', 'False')).lower() in ['1', 'true'], 'validator': bool, 'requires_restart': True, @@ -2109,6 +2162,13 @@ class InvenTreeSetting(BaseInvenTreeSetting): 'validator': bool, 'after_save': reload_plugin_registry, }, + 'ENABLE_PLUGINS_INTERFACE': { + 'name': _('Enable interface integration'), + 'description': _('Enable plugins to integrate into the user interface'), + 'default': False, + 'validator': bool, + 'after_save': reload_plugin_registry, + }, 'PROJECT_CODES_ENABLED': { 'name': _('Enable project codes'), 'description': _('Enable project codes for tracking projects'), @@ -2160,15 +2220,20 @@ class InvenTreeSetting(BaseInvenTreeSetting): 'default': False, 'validator': bool, }, + 'TEST_UPLOAD_CREATE_TEMPLATE': { + 'name': _('Create Template on Upload'), + 'description': _( + 'Create a new test template when uploading test data which does not match an existing template' + ), + 'default': True, + 'validator': bool, + }, } typ = 'inventree' key = models.CharField( - max_length=50, - blank=False, - unique=True, - help_text=_('Settings key (must be unique - case insensitive'), + max_length=50, blank=False, unique=True, help_text=_('Settings key') ) def to_native_value(self): @@ -2545,10 +2610,7 @@ class InvenTreeUserSetting(BaseInvenTreeSetting): extra_unique_fields = ['user'] key = models.CharField( - max_length=50, - blank=False, - unique=False, - help_text=_('Settings key (must be unique - case insensitive'), + max_length=50, blank=False, unique=False, help_text=_('Settings key') ) user = models.ForeignKey( @@ -3092,13 +3154,10 @@ class CustomUnit(models.Model): """Ensure that the custom unit is unique.""" super().validate_unique(exclude) - if self.symbol: - if ( - CustomUnit.objects.filter(symbol=self.symbol) - .exclude(pk=self.pk) - .exists() - ): - raise ValidationError({'symbol': _('Unit symbol must be unique')}) + if self.symbol and ( + CustomUnit.objects.filter(symbol=self.symbol).exclude(pk=self.pk).exists() + ): + raise ValidationError({'symbol': _('Unit symbol must be unique')}) def clean(self): """Validate that the provided custom unit is indeed valid.""" @@ -3433,13 +3492,13 @@ class InvenTreeCustomUserStateModel(models.Model): 'reference_status': _('Reference status set not found') }) ref_set = ref_set[0] - if self.key in ref_set.keys(): + if self.key in ref_set.keys(): # noqa: SIM118 raise ValidationError({ 'key': _( 'Key must be different from the logical keys of the reference status' ) }) - if self.logical_key not in ref_set.keys(): + if self.logical_key not in ref_set.keys(): # noqa: SIM118 raise ValidationError({ 'logical_key': _( 'Logical key must be in the logical keys of the reference status' @@ -3447,3 +3506,67 @@ class InvenTreeCustomUserStateModel(models.Model): }) return super().clean() + + +class BarcodeScanResult(InvenTree.models.InvenTreeModel): + """Model for storing barcode scans results.""" + + BARCODE_SCAN_MAX_LEN = 250 + + class Meta: + """Model meta options.""" + + verbose_name = _('Barcode Scan') + + data = models.CharField( + max_length=BARCODE_SCAN_MAX_LEN, + verbose_name=_('Data'), + help_text=_('Barcode data'), + blank=False, + null=False, + ) + + user = models.ForeignKey( + User, + on_delete=models.SET_NULL, + blank=True, + null=True, + verbose_name=_('User'), + help_text=_('User who scanned the barcode'), + ) + + timestamp = models.DateTimeField( + auto_now_add=True, + verbose_name=_('Timestamp'), + help_text=_('Date and time of the barcode scan'), + ) + + endpoint = models.CharField( + max_length=250, + verbose_name=_('Path'), + help_text=_('URL endpoint which processed the barcode'), + blank=True, + null=True, + ) + + context = models.JSONField( + max_length=1000, + verbose_name=_('Context'), + help_text=_('Context data for the barcode scan'), + blank=True, + null=True, + ) + + response = models.JSONField( + max_length=1000, + verbose_name=_('Response'), + help_text=_('Response data from the barcode scan'), + blank=True, + null=True, + ) + + result = models.BooleanField( + verbose_name=_('Result'), + help_text=_('Was the barcode scan successful?'), + default=False, + ) diff --git a/src/backend/InvenTree/common/notifications.py b/src/backend/InvenTree/common/notifications.py index 7e3c4016f1..8988f845f3 100644 --- a/src/backend/InvenTree/common/notifications.py +++ b/src/backend/InvenTree/common/notifications.py @@ -10,7 +10,7 @@ from django.utils.translation import gettext_lazy as _ import common.models import InvenTree.helpers -from InvenTree.ready import isImportingData +from InvenTree.ready import isImportingData, isRebuildingData from plugin import registry from plugin.models import NotificationUserSetting, PluginConfig from users.models import Owner @@ -143,11 +143,7 @@ class NotificationMethod: # Check if method globally enabled plg_instance = registry.get_plugin(plg_cls.NAME.lower()) - if plg_instance and not plg_instance.get_setting(self.GLOBAL_SETTING): - return True - - # Lets go! - return False + return plg_instance and not plg_instance.get_setting(self.GLOBAL_SETTING) def usersetting(self, target): """Returns setting for this method for a given user.""" @@ -185,9 +181,20 @@ class MethodStorageClass: Is initialized on startup as one instance named `storage` in this file. """ - liste = None + methods_list = None user_settings = {} + @property + def methods(self): + """Return all available methods. + + This is cached, and stored internally. + """ + if self.methods_list is None: + self.collect() + + return self.methods_list + def collect(self, selected_classes=None): """Collect all classes in the environment that are notification methods. @@ -196,7 +203,8 @@ class MethodStorageClass: Args: selected_classes (class, optional): References to the classes that should be registered. Defaults to None. """ - logger.debug('Collecting notification methods') + logger.debug('Collecting notification methods...') + current_method = ( InvenTree.helpers.inheritors(NotificationMethod) - IGNORED_NOTIFICATION_CLS ) @@ -219,8 +227,12 @@ class MethodStorageClass: item.plugin = plugin() if plugin else None filtered_list[ref] = item - storage.liste = list(filtered_list.values()) - logger.info('Found %s notification methods', len(storage.liste)) + storage.methods_list = list(filtered_list.values()) + + logger.info('Found %s notification methods', len(storage.methods_list)) + + for item in storage.methods_list: + logger.debug(' - %s', str(item)) def get_usersettings(self, user) -> list: """Returns all user settings for a specific user. @@ -234,7 +246,8 @@ class MethodStorageClass: list: All applicablae notification settings. """ methods = [] - for item in storage.liste: + + for item in storage.methods: if item.USER_SETTING: new_key = f'NOTIFICATION_METHOD_{item.METHOD_NAME.upper()}' @@ -250,6 +263,7 @@ class MethodStorageClass: 'icon': getattr(item, 'METHOD_ICON', ''), 'method': item.METHOD_NAME, }) + return methods @@ -343,29 +357,33 @@ class InvenTreeNotificationBodies: def trigger_notification(obj, category=None, obj_ref='pk', **kwargs): """Send out a notification.""" - targets = kwargs.get('targets', None) - target_fnc = kwargs.get('target_fnc', None) + targets = kwargs.get('targets') + target_fnc = kwargs.get('target_fnc') target_args = kwargs.get('target_args', []) target_kwargs = kwargs.get('target_kwargs', {}) - target_exclude = kwargs.get('target_exclude', None) + target_exclude = kwargs.get('target_exclude') context = kwargs.get('context', {}) - delivery_methods = kwargs.get('delivery_methods', None) + delivery_methods = kwargs.get('delivery_methods') # Check if data is importing currently - if isImportingData(): + if isImportingData() or isRebuildingData(): return # Resolve object reference - obj_ref_value = getattr(obj, obj_ref) + refs = [obj_ref, 'pk', 'id', 'uid'] + + obj_ref_value = None + + # Find the first reference that is available + for ref in refs: + if hasattr(obj, ref): + obj_ref_value = getattr(obj, ref) + break # Try with some defaults - if not obj_ref_value: - obj_ref_value = getattr(obj, 'pk', None) - if not obj_ref_value: - obj_ref_value = getattr(obj, 'id', None) if not obj_ref_value: raise KeyError( - f"Could not resolve an object reference for '{str(obj)}' with {obj_ref}, pk, id" + f"Could not resolve an object reference for '{obj!s}' with {','.join(set(refs))}" ) # Check if we have notified recently... @@ -422,7 +440,7 @@ def trigger_notification(obj, category=None, obj_ref='pk', **kwargs): # Collect possible methods if delivery_methods is None: - delivery_methods = storage.liste or [] + delivery_methods = storage.methods or [] else: delivery_methods = delivery_methods - IGNORED_NOTIFICATION_CLS @@ -432,14 +450,14 @@ def trigger_notification(obj, category=None, obj_ref='pk', **kwargs): deliver_notification(method, obj, category, target_users, context) except NotImplementedError as error: # Allow any single notification method to fail, without failing the others - logger.error(error) # noqa: LOG005 + logger.error(error) except Exception as error: - logger.error(error) # noqa: LOG005 + logger.error(error) # Set delivery flag common.models.NotificationEntry.notify(category, obj_ref_value) else: - logger.debug("No possible users for notification '%s'", category) + logger.info("No possible users for notification '%s'", category) def trigger_superuser_notification(plugin: PluginConfig, msg: str): diff --git a/src/backend/InvenTree/common/serializers.py b/src/backend/InvenTree/common/serializers.py index 9f69bbffff..ed134d2707 100644 --- a/src/backend/InvenTree/common/serializers.py +++ b/src/backend/InvenTree/common/serializers.py @@ -234,12 +234,17 @@ class NotificationMessageSerializer(InvenTreeModelSerializer): request = self.context['request'] if request.user and request.user.is_staff: meta = obj.target_object._meta - target['link'] = construct_absolute_url( - reverse( - f'admin:{meta.db_table}_change', - kwargs={'object_id': obj.target_object_id}, + + try: + target['link'] = construct_absolute_url( + reverse( + f'admin:{meta.db_table}_change', + kwargs={'object_id': obj.target_object_id}, + ) ) - ) + except Exception: + # Do not crash if the reverse lookup fails + pass return target @@ -382,6 +387,22 @@ class CustomUnitSerializer(DataImportExportSerializerMixin, InvenTreeModelSerial fields = ['pk', 'name', 'symbol', 'definition'] +class AllUnitListResponseSerializer(serializers.Serializer): + """Serializer for the AllUnitList.""" + + class Unit(serializers.Serializer): + """Serializer for the AllUnitListResponseSerializer.""" + + name = serializers.CharField() + is_alias = serializers.BooleanField() + compatible_units = serializers.ListField(child=serializers.CharField()) + isdimensionless = serializers.BooleanField() + + default_system = serializers.CharField() + available_systems = serializers.ListField(child=serializers.CharField()) + available_units = Unit(many=True) + + class ErrorMessageSerializer(InvenTreeModelSerializer): """DRF serializer for server error messages.""" @@ -574,9 +595,8 @@ class AttachmentSerializer(InvenTreeModelSerializer): model_type = self.validated_data.get('model_type', None) - if model_type is None: - if self.instance: - model_type = self.instance.model_type + if model_type is None and self.instance: + model_type = self.instance.model_type # Ensure that the user has permission to attach files to the specified model user = self.context.get('request').user diff --git a/src/backend/InvenTree/common/tasks.py b/src/backend/InvenTree/common/tasks.py index ffb67311b9..aa58f22cc2 100644 --- a/src/backend/InvenTree/common/tasks.py +++ b/src/backend/InvenTree/common/tasks.py @@ -70,6 +70,10 @@ def update_news_feed(): if entry.id in id_list: continue + # Enforce proper links for the entries + if entry.link and str(entry.link).startswith('/'): + entry.link = settings.INVENTREE_BASE_URL + str(entry.link) + # Create entry try: NewsFeedEntry.objects.create( diff --git a/src/backend/InvenTree/common/tests.py b/src/backend/InvenTree/common/tests.py index 2d6279734d..cdf8ae4a59 100644 --- a/src/backend/InvenTree/common/tests.py +++ b/src/backend/InvenTree/common/tests.py @@ -23,7 +23,12 @@ import PIL import common.validators from common.settings import get_global_setting, set_global_setting from InvenTree.helpers import str2bool -from InvenTree.unit_test import InvenTreeAPITestCase, InvenTreeTestCase, PluginMixin +from InvenTree.unit_test import ( + AdminTestCase, + InvenTreeAPITestCase, + InvenTreeTestCase, + PluginMixin, +) from part.models import Part from plugin import registry from plugin.models import NotificationUserSetting @@ -228,9 +233,6 @@ class SettingsTest(InvenTreeTestCase): report_size_obj = InvenTreeSetting.get_setting_object( 'REPORT_DEFAULT_PAGE_SIZE' ) - report_test_obj = InvenTreeSetting.get_setting_object( - 'REPORT_ENABLE_TEST_REPORT' - ) # check settings base fields self.assertEqual(instance_obj.name, 'Server Instance Name') @@ -260,7 +262,6 @@ class SettingsTest(InvenTreeTestCase): # check setting_type self.assertEqual(instance_obj.setting_type(), 'string') - self.assertEqual(report_test_obj.setting_type(), 'boolean') self.assertEqual(stale_days.setting_type(), 'integer') # check as_int @@ -269,9 +270,6 @@ class SettingsTest(InvenTreeTestCase): instance_obj.as_int(), 'InvenTree' ) # not an int -> return default - # check as_bool - self.assertEqual(report_test_obj.as_bool(), True) - # check to_native_value self.assertEqual(stale_days.to_native_value(), 0) @@ -393,7 +391,7 @@ class SettingsTest(InvenTreeTestCase): 'before_save', ] - for k in setting.keys(): + for k in setting: self.assertIn(k, allowed_keys) # Check default value for boolean settings @@ -431,7 +429,7 @@ class SettingsTest(InvenTreeTestCase): @override_settings(SITE_URL=None, PLUGIN_TESTING=True, PLUGIN_TESTING_SETUP=True) def test_defaults(self): """Populate the settings with default values.""" - for key in InvenTreeSetting.SETTINGS.keys(): + for key in InvenTreeSetting.SETTINGS: value = InvenTreeSetting.get_setting_default(key) try: @@ -520,7 +518,7 @@ class GlobalSettingsApiTest(InvenTreeAPITestCase): response = self.get(url, expected_code=200) n_public_settings = len([ - k for k in InvenTreeSetting.SETTINGS.keys() if not k.startswith('_') + k for k in InvenTreeSetting.SETTINGS if not k.startswith('_') ]) # Number of results should match the number of settings @@ -832,11 +830,9 @@ class PluginSettingsApiTest(PluginMixin, InvenTreeAPITestCase): def test_invalid_setting_key(self): """Test that an invalid setting key returns a 404.""" - ... def test_uninitialized_setting(self): """Test that requesting an uninitialized setting creates the setting.""" - ... class ErrorReportTest(InvenTreeAPITestCase): @@ -934,7 +930,7 @@ class WebhookMessageTests(TestCase): def test_bad_token(self): """Test that a wrong token is not working.""" response = self.client.post( - self.url, content_type=CONTENT_TYPE_JSON, **{'HTTP_TOKEN': '1234567fghj'} + self.url, content_type=CONTENT_TYPE_JSON, HTTP_TOKEN='1234567fghj' ) assert response.status_code == HTTPStatus.FORBIDDEN @@ -957,7 +953,7 @@ class WebhookMessageTests(TestCase): self.url, data="{'this': 123}", content_type=CONTENT_TYPE_JSON, - **{'HTTP_TOKEN': str(self.endpoint_def.token)}, + HTTP_TOKEN=str(self.endpoint_def.token), ) assert response.status_code == HTTPStatus.NOT_ACCEPTABLE @@ -1005,7 +1001,7 @@ class WebhookMessageTests(TestCase): response = self.client.post( self.url, content_type=CONTENT_TYPE_JSON, - **{'HTTP_TOKEN': str('68MXtc/OiXdA5e2Nq9hATEVrZFpLb3Zb0oau7n8s31I=')}, + HTTP_TOKEN='68MXtc/OiXdA5e2Nq9hATEVrZFpLb3Zb0oau7n8s31I=', ) assert response.status_code == HTTPStatus.OK @@ -1020,7 +1016,7 @@ class WebhookMessageTests(TestCase): self.url, data={'this': 'is a message'}, content_type=CONTENT_TYPE_JSON, - **{'HTTP_TOKEN': str(self.endpoint_def.token)}, + HTTP_TOKEN=str(self.endpoint_def.token), ) assert response.status_code == HTTPStatus.OK @@ -1504,6 +1500,14 @@ class CustomUnitAPITest(InvenTreeAPITestCase): for name in invalid_name_values: self.patch(url, {'name': name}, expected_code=400) + def test_api(self): + """Test the CustomUnit API.""" + response = self.get(reverse('api-all-unit-list')) + self.assertIn('default_system', response.data) + self.assertIn('available_systems', response.data) + self.assertIn('available_units', response.data) + self.assertEqual(len(response.data['available_units']) > 100, True) + class ContentTypeAPITest(InvenTreeAPITestCase): """Unit tests for the ContentType API.""" @@ -1677,3 +1681,14 @@ class CustomStatusTest(TestCase): self.assertEqual( instance.__str__(), 'Stock Item (StockStatus): OK - advanced | 11 (10)' ) + + +class AdminTest(AdminTestCase): + """Tests for the admin interface integration.""" + + def test_admin(self): + """Test the admin URL.""" + self.helper( + model=Attachment, + model_kwargs={'link': 'https://aa.example.org', 'model_id': 1}, + ) diff --git a/src/backend/InvenTree/common/views.py b/src/backend/InvenTree/common/views.py index 8f1fbe0e40..53079c1a55 100644 --- a/src/backend/InvenTree/common/views.py +++ b/src/backend/InvenTree/common/views.py @@ -312,7 +312,6 @@ class FileManagementFormView(MultiStepFormView): This method is very specific to the type of data found in the file, therefore overwrite it in the subclass. """ - pass def get_clean_items(self): """Returns dict with all cleaned values.""" @@ -363,10 +362,7 @@ class FileManagementFormView(MultiStepFormView): duplicates = [] for col in self.column_names: - if col in self.column_selections: - guess = self.column_selections[col] - else: - guess = None + guess = self.column_selections.get(col, None) if guess: n = list(self.column_selections.values()).count( diff --git a/src/backend/InvenTree/company/api.py b/src/backend/InvenTree/company/api.py index b0b9fcfe98..5765b11b85 100644 --- a/src/backend/InvenTree/company/api.py +++ b/src/backend/InvenTree/company/api.py @@ -436,6 +436,13 @@ class SupplierPriceBreakList(ListCreateAPI): serializer_class = SupplierPriceBreakSerializer filterset_class = SupplierPriceBreakFilter + def get_queryset(self): + """Return annotated queryset for the SupplierPriceBreak list endpoint.""" + queryset = super().get_queryset() + queryset = SupplierPriceBreakSerializer.annotate_queryset(queryset) + + return queryset + def get_serializer(self, *args, **kwargs): """Return serializer instance for this endpoint.""" try: @@ -468,6 +475,13 @@ class SupplierPriceBreakDetail(RetrieveUpdateDestroyAPI): queryset = SupplierPriceBreak.objects.all() serializer_class = SupplierPriceBreakSerializer + def get_queryset(self): + """Return annotated queryset for the SupplierPriceBreak list endpoint.""" + queryset = super().get_queryset() + queryset = SupplierPriceBreakSerializer.annotate_queryset(queryset) + + return queryset + manufacturer_part_api_urls = [ path( diff --git a/src/backend/InvenTree/company/apps.py b/src/backend/InvenTree/company/apps.py index 5d2443e47e..af37fb3095 100644 --- a/src/backend/InvenTree/company/apps.py +++ b/src/backend/InvenTree/company/apps.py @@ -10,4 +10,3 @@ class CompanyConfig(AppConfig): def ready(self): """This function is called whenever the Company app is loaded.""" - pass diff --git a/src/backend/InvenTree/company/models.py b/src/backend/InvenTree/company/models.py index 9e1c878c57..ec621b0e7a 100644 --- a/src/backend/InvenTree/company/models.py +++ b/src/backend/InvenTree/company/models.py @@ -46,10 +46,7 @@ def rename_company_image(instance, filename): """ base = 'company_images' - if filename.count('.') > 0: - ext = filename.split('.')[-1] - else: - ext = '' + ext = filename.split('.')[-1] if filename.count('.') > 0 else '' fn = f'company_{instance.pk}_img' @@ -1052,7 +1049,10 @@ class SupplierPriceBreak(common.models.PriceBreak): ) def after_save_supplier_price(sender, instance, created, **kwargs): """Callback function when a SupplierPriceBreak is created or updated.""" - if InvenTree.ready.canAppAccessDatabase() and not InvenTree.ready.isImportingData(): + if ( + InvenTree.ready.canAppAccessDatabase(allow_test=settings.TESTING_PRICING) + and not InvenTree.ready.isImportingData() + ): if instance.part and instance.part.part: instance.part.part.schedule_pricing_update(create=True) @@ -1064,6 +1064,9 @@ def after_save_supplier_price(sender, instance, created, **kwargs): ) def after_delete_supplier_price(sender, instance, **kwargs): """Callback function when a SupplierPriceBreak is deleted.""" - if InvenTree.ready.canAppAccessDatabase() and not InvenTree.ready.isImportingData(): + if ( + InvenTree.ready.canAppAccessDatabase(allow_test=settings.TESTING_PRICING) + and not InvenTree.ready.isImportingData() + ): if instance.part and instance.part.part: instance.part.part.schedule_pricing_update(create=False) diff --git a/src/backend/InvenTree/company/serializers.py b/src/backend/InvenTree/company/serializers.py index ba6d845c0a..da763f8d7b 100644 --- a/src/backend/InvenTree/company/serializers.py +++ b/src/backend/InvenTree/company/serializers.py @@ -512,6 +512,13 @@ class SupplierPriceBreakSerializer( if not part_detail: self.fields.pop('part_detail', None) + @staticmethod + def annotate_queryset(queryset): + """Prefetch related fields for the queryset.""" + queryset = queryset.select_related('part', 'part__supplier', 'part__part') + + return queryset + quantity = InvenTreeDecimalField() price = InvenTreeMoneySerializer(allow_null=True, required=True, label=_('Price')) diff --git a/src/backend/InvenTree/company/templates/company/supplier_part.html b/src/backend/InvenTree/company/templates/company/supplier_part.html index b723f1ef8b..daf2ca99d8 100644 --- a/src/backend/InvenTree/company/templates/company/supplier_part.html +++ b/src/backend/InvenTree/company/templates/company/supplier_part.html @@ -1,6 +1,7 @@ {% extends "page_base.html" %} {% load static %} {% load i18n %} +{% load barcode %} {% load inventree_extras %} {% block page_title %} @@ -303,7 +304,7 @@ onPanelLoad('supplier-part-notes', function() { $("#show-qr-code").click(function() { showQRDialog( '{% trans "Supplier Part QR Code" escape %}', - '{{ part.barcode }}' + `{% clean_barcode part.barcode %}` ); }); diff --git a/src/backend/InvenTree/company/test_api.py b/src/backend/InvenTree/company/test_api.py index 4774c9d1a9..63d9a4d0ff 100644 --- a/src/backend/InvenTree/company/test_api.py +++ b/src/backend/InvenTree/company/test_api.py @@ -154,6 +154,52 @@ class CompanyTest(InvenTreeAPITestCase): len(self.get(url, data={'active': False}, expected_code=200).data), 1 ) + def test_company_notes(self): + """Test the markdown 'notes' field for the Company model.""" + pk = Company.objects.first().pk + url = reverse('api-company-detail', kwargs={'pk': pk}) + + # Attempt to inject malicious markdown into the "notes" field + xss = [ + '[Click me](javascript:alert(123))', + '![x](javascript:alert(123))', + '![Uh oh...]("onerror="alert(\'XSS\'))', + ] + + for note in xss: + response = self.patch(url, {'notes': note}, expected_code=400) + + self.assertIn( + 'Data contains prohibited markdown content', str(response.data) + ) + + # Tests with disallowed tags + invalid_tags = [ + '', + 'A disallowed tag!', + ] + + for note in invalid_tags: + response = self.patch(url, {'notes': note}, expected_code=400) + + self.assertIn('Remove HTML tags from this value', str(response.data)) + + # The following markdown is safe, and should be accepted + good = [ + 'This is a **bold** statement', + 'This is a *italic* statement', + 'This is a [link](https://www.google.com)', + 'This is an ![image](https://www.google.com/test.jpg)', + 'This is a `code` block', + 'This text has ~~strikethrough~~ formatting', + 'This text has a raw link - https://www.google.com - and should still pass the test', + ] + + for note in good: + response = self.patch(url, {'notes': note}, expected_code=200) + + self.assertEqual(response.data['notes'], note) + class ContactTest(InvenTreeAPITestCase): """Tests for the Contact models.""" diff --git a/src/backend/InvenTree/config_template.yaml b/src/backend/InvenTree/config_template.yaml index 4ef1bf42bf..fa597167a1 100644 --- a/src/backend/InvenTree/config_template.yaml +++ b/src/backend/InvenTree/config_template.yaml @@ -117,7 +117,7 @@ use_x_forwarded_port: false # Cookie settings cookie: secure: false - samesite: none + samesite: false # Cross Origin Resource Sharing (CORS) settings (see https://github.com/adamchainz/django-cors-headers) cors: diff --git a/src/backend/InvenTree/generic/states/__init__.py b/src/backend/InvenTree/generic/states/__init__.py index a13139b5ff..0389499907 100644 --- a/src/backend/InvenTree/generic/states/__init__.py +++ b/src/backend/InvenTree/generic/states/__init__.py @@ -11,8 +11,8 @@ from .transition import StateTransitionMixin, TransitionMethod, storage __all__ = [ 'ColorEnum', - 'StatusCode', - 'storage', - 'TransitionMethod', 'StateTransitionMixin', + 'StatusCode', + 'TransitionMethod', + 'storage', ] diff --git a/src/backend/InvenTree/generic/states/custom.py b/src/backend/InvenTree/generic/states/custom.py index 2539eb550e..8fc8948c28 100644 --- a/src/backend/InvenTree/generic/states/custom.py +++ b/src/backend/InvenTree/generic/states/custom.py @@ -33,7 +33,8 @@ def state_color_mappings(): def state_reference_mappings(): """Return a list of custom user state references.""" - return [(a.__name__, a.__name__) for a in get_custom_classes(include_custom=False)] + classes = get_custom_classes(include_custom=False) + return [(a.__name__, a.__name__) for a in sorted(classes, key=lambda x: x.__name__)] def get_logical_value(value, model: str): diff --git a/src/backend/InvenTree/generic/states/fields.py b/src/backend/InvenTree/generic/states/fields.py index 99717d4884..7f67f5c14b 100644 --- a/src/backend/InvenTree/generic/states/fields.py +++ b/src/backend/InvenTree/generic/states/fields.py @@ -41,7 +41,7 @@ class CustomChoiceField(serializers.ChoiceField): if self.is_custom: return logical.key return logical.logical_key - except ObjectDoesNotExist: + except (ObjectDoesNotExist, Exception): raise serializers.ValidationError('Invalid choice') def get_field_info(self, field, field_info): @@ -145,24 +145,32 @@ class InvenTreeCustomStatusSerializerMixin: def update(self, instance, validated_data): """Ensure the custom field is updated if the leader was changed.""" self.gather_custom_fields() + # Mirror values from leader to follower for field in self._custom_fields_leader: + follower_field_name = f'{field}_custom_key' if ( field in self.initial_data and self.instance and self.initial_data[field] - != getattr(self.instance, f'{field}_custom_key', None) + != getattr(self.instance, follower_field_name, None) ): - setattr(self.instance, f'{field}_custom_key', self.initial_data[field]) + setattr(self.instance, follower_field_name, self.initial_data[field]) + + # Mirror values from follower to leader for field in self._custom_fields_follower: - if ( - field in validated_data - and field.replace('_custom_key', '') not in self.initial_data - ): - reference = get_logical_value( - validated_data[field], - self.fields[field].choice_mdl._meta.model_name, - ) - validated_data[field.replace('_custom_key', '')] = reference.logical_key + leader_field_name = field.replace('_custom_key', '') + if field in validated_data and leader_field_name not in self.initial_data: + try: + reference = get_logical_value( + validated_data[field], + self.fields[field].choice_mdl._meta.model_name, + ) + validated_data[leader_field_name] = reference.logical_key + except (ObjectDoesNotExist, Exception): + if validated_data[field] in self.fields[leader_field_name].choices: + validated_data[leader_field_name] = validated_data[field] + else: + raise serializers.ValidationError('Invalid choice') return super().update(instance, validated_data) def to_representation(self, instance): diff --git a/src/backend/InvenTree/generic/states/states.py b/src/backend/InvenTree/generic/states/states.py index 1ac7de1174..966ed76210 100644 --- a/src/backend/InvenTree/generic/states/states.py +++ b/src/backend/InvenTree/generic/states/states.py @@ -5,7 +5,7 @@ import re from enum import Enum -class BaseEnum(enum.IntEnum): +class BaseEnum(enum.IntEnum): # noqa: PLW1641 """An `Enum` capabile of having its members have docstrings. Based on https://stackoverflow.com/questions/19330460/how-do-i-put-docstrings-on-enums @@ -100,9 +100,7 @@ class StatusCode(BaseEnum): return False if callable(value): return False - if not isinstance(value.value, int): - return False - return True + return isinstance(value.value, int) @classmethod def values(cls, key=None): diff --git a/src/backend/InvenTree/generic/states/tests.py b/src/backend/InvenTree/generic/states/tests.py index dbba2d14b2..f936cd8012 100644 --- a/src/backend/InvenTree/generic/states/tests.py +++ b/src/backend/InvenTree/generic/states/tests.py @@ -27,7 +27,6 @@ class GeneralStatus(StatusCode): def GHI(self): # This should be ignored """A invalid function.""" - ... class GeneralStateTest(InvenTreeTestCase): diff --git a/src/backend/InvenTree/generic/templatetags/generic.py b/src/backend/InvenTree/generic/templatetags/generic.py index e57bdec201..9ad061dfd7 100644 --- a/src/backend/InvenTree/generic/templatetags/generic.py +++ b/src/backend/InvenTree/generic/templatetags/generic.py @@ -3,6 +3,6 @@ from django import template register = template.Library() -from generic.states.tags import status_label # noqa: E402 +from generic.states.tags import status_label -__all__ = [status_label] +__all__ = ['status_label'] diff --git a/src/backend/InvenTree/importer/api.py b/src/backend/InvenTree/importer/api.py index 6eb4815784..b914e068cb 100644 --- a/src/backend/InvenTree/importer/api.py +++ b/src/backend/InvenTree/importer/api.py @@ -5,6 +5,7 @@ from django.urls import include, path from drf_spectacular.utils import extend_schema from rest_framework import permissions +from rest_framework.exceptions import PermissionDenied from rest_framework.response import Response from rest_framework.views import APIView @@ -20,6 +21,39 @@ from InvenTree.mixins import ( RetrieveUpdateAPI, RetrieveUpdateDestroyAPI, ) +from users.models import check_user_permission + + +class DataImporterPermission(permissions.BasePermission): + """Mixin class for determining if the user has correct permissions.""" + + def has_permission(self, request, view): + """Class level permission checks are handled via permissions.IsAuthenticated.""" + return True + + def has_object_permission(self, request, view, obj): + """Check if the user has permission to access the imported object.""" + # For safe methods (GET, HEAD, OPTIONS), allow access + if request.method in permissions.SAFE_METHODS: + return True + + if isinstance(obj, importer.models.DataImportSession): + session = obj + else: + session = getattr(obj, 'session', None) + + if session: + if model_class := session.model_class: + return check_user_permission(request.user, model_class, 'change') + + return True + + +class DataImporterPermissionMixin: + """Mixin class for checking permissions on DataImporter objects.""" + + # Default permissions: User must be authenticated + permission_classes = [permissions.IsAuthenticated, DataImporterPermission] class DataImporterModelList(APIView): @@ -44,11 +78,9 @@ class DataImporterModelList(APIView): return Response(models) -class DataImportSessionList(BulkDeleteMixin, ListCreateAPI): +class DataImportSessionList(DataImporterPermission, BulkDeleteMixin, ListCreateAPI): """API endpoint for accessing a list of DataImportSession objects.""" - permission_classes = [permissions.IsAuthenticated] - queryset = importer.models.DataImportSession.objects.all() serializer_class = importer.serializers.DataImportSessionSerializer @@ -59,7 +91,7 @@ class DataImportSessionList(BulkDeleteMixin, ListCreateAPI): ordering_fields = ['timestamp', 'status', 'model_type'] -class DataImportSessionDetail(RetrieveUpdateDestroyAPI): +class DataImportSessionDetail(DataImporterPermission, RetrieveUpdateDestroyAPI): """Detail endpoint for a single DataImportSession object.""" queryset = importer.models.DataImportSession.objects.all() @@ -78,13 +110,18 @@ class DataImportSessionAcceptFields(APIView): """Accept the field mapping for a DataImportSession.""" session = get_object_or_404(importer.models.DataImportSession, pk=pk) + # Check that the user has permission to accept the field mapping + if model_class := session.model_class: + if not check_user_permission(request.user, model_class, 'change'): + raise PermissionDenied() + # Attempt to accept the mapping (may raise an exception if the mapping is invalid) session.accept_mapping() return Response(importer.serializers.DataImportSessionSerializer(session).data) -class DataImportSessionAcceptRows(CreateAPI): +class DataImportSessionAcceptRows(DataImporterPermission, CreateAPI): """API endpoint to accept the rows for a DataImportSession.""" queryset = importer.models.DataImportSession.objects.all() @@ -105,7 +142,7 @@ class DataImportSessionAcceptRows(CreateAPI): return ctx -class DataImportColumnMappingList(ListAPI): +class DataImportColumnMappingList(DataImporterPermissionMixin, ListAPI): """API endpoint for accessing a list of DataImportColumnMap objects.""" queryset = importer.models.DataImportColumnMap.objects.all() @@ -116,14 +153,14 @@ class DataImportColumnMappingList(ListAPI): filterset_fields = ['session'] -class DataImportColumnMappingDetail(RetrieveUpdateAPI): +class DataImportColumnMappingDetail(DataImporterPermissionMixin, RetrieveUpdateAPI): """Detail endpoint for a single DataImportColumnMap object.""" queryset = importer.models.DataImportColumnMap.objects.all() serializer_class = importer.serializers.DataImportColumnMapSerializer -class DataImportRowList(BulkDeleteMixin, ListAPI): +class DataImportRowList(DataImporterPermission, BulkDeleteMixin, ListAPI): """API endpoint for accessing a list of DataImportRow objects.""" queryset = importer.models.DataImportRow.objects.all() @@ -138,7 +175,7 @@ class DataImportRowList(BulkDeleteMixin, ListAPI): ordering = 'row_index' -class DataImportRowDetail(RetrieveUpdateDestroyAPI): +class DataImportRowDetail(DataImporterPermission, RetrieveUpdateDestroyAPI): """Detail endpoint for a single DataImportRow object.""" queryset = importer.models.DataImportRow.objects.all() diff --git a/src/backend/InvenTree/importer/mixins.py b/src/backend/InvenTree/importer/mixins.py index e0e064afc4..285a697155 100644 --- a/src/backend/InvenTree/importer/mixins.py +++ b/src/backend/InvenTree/importer/mixins.py @@ -213,8 +213,6 @@ class DataImportExportSerializerMixin( ): """Mixin class for adding data import/export functionality to a DRF serializer.""" - pass - class DataExportViewMixin: """Mixin class for exporting a dataset via the API. diff --git a/src/backend/InvenTree/importer/models.py b/src/backend/InvenTree/importer/models.py index 219e1ac600..d0c5e67cbc 100644 --- a/src/backend/InvenTree/importer/models.py +++ b/src/backend/InvenTree/importer/models.py @@ -2,6 +2,7 @@ import json import logging +from typing import Optional from django.contrib.auth.models import User from django.core.exceptions import ValidationError as DjangoValidationError @@ -117,11 +118,19 @@ class DataImportSession(models.Model): """ mapping = {} - for map in self.column_mappings.all(): - mapping[map.field] = map.column + for i in self.column_mappings.all(): + mapping[i.field] = i.column return mapping + @property + def model_class(self): + """Return the model class for this importer.""" + serializer = self.serializer_class + + if serializer: + return serializer.Meta.model + @property def serializer_class(self): """Return the serializer class for this importer.""" @@ -209,13 +218,13 @@ class DataImportSession(models.Model): missing_fields = [] - for field in required_fields.keys(): + for field in required_fields: # An override value exists if field in field_overrides: continue # A default value exists - if field in field_defaults and field_defaults[field]: + if field_defaults.get(field): continue # The field has been mapped to a data column @@ -537,7 +546,10 @@ class DataImportRow(models.Model): return overrides def extract_data( - self, available_fields: dict = None, field_mapping: dict = None, commit=True + self, + available_fields: Optional[dict] = None, + field_mapping: Optional[dict] = None, + commit=True, ): """Extract row data from the provided data dictionary.""" if not field_mapping: diff --git a/src/backend/InvenTree/importer/operations.py b/src/backend/InvenTree/importer/operations.py index 7b9806d07b..6afa7d08c4 100644 --- a/src/backend/InvenTree/importer/operations.py +++ b/src/backend/InvenTree/importer/operations.py @@ -36,7 +36,7 @@ def load_data_file(data_file, file_format=None): try: data = file_object.read() - except (IOError, FileNotFoundError): + except (OSError, FileNotFoundError): raise ValidationError(_('Failed to open data file')) # Excel formats expect binary data @@ -113,9 +113,8 @@ def get_field_label(field) -> str: Returns: str: Field label """ - if field: - if label := getattr(field, 'label', None): - return label + if field and (label := getattr(field, 'label', None)): + return label # TODO: Check if the field is a model field diff --git a/src/backend/InvenTree/importer/tests.py b/src/backend/InvenTree/importer/tests.py index 179d36dad9..45ea5052c7 100644 --- a/src/backend/InvenTree/importer/tests.py +++ b/src/backend/InvenTree/importer/tests.py @@ -4,11 +4,27 @@ import os from django.core.files.base import ContentFile -from importer.models import DataImportSession -from InvenTree.unit_test import InvenTreeTestCase +from importer.models import DataImportRow, DataImportSession +from InvenTree.unit_test import AdminTestCase, InvenTreeTestCase -class ImporterTest(InvenTreeTestCase): +class ImporterMixin: + """Helpers for import tests.""" + + def helper_file(self): + """Return test data.""" + fn = os.path.join(os.path.dirname(__file__), 'test_data', 'companies.csv') + + with open(fn, encoding='utf-8') as input_file: + data = input_file.read() + return data + + def helper_content(self): + """Return content file.""" + return ContentFile(self.helper_file(), 'companies.csv') + + +class ImporterTest(ImporterMixin, InvenTreeTestCase): """Basic tests for file imports.""" def test_import_session(self): @@ -17,13 +33,8 @@ class ImporterTest(InvenTreeTestCase): n = Company.objects.count() - fn = os.path.join(os.path.dirname(__file__), 'test_data', 'companies.csv') - - with open(fn, 'r') as input_file: - data = input_file.read() - session = DataImportSession.objects.create( - data_file=ContentFile(data, 'companies.csv'), model_type='company' + data_file=self.helper_content(), model_type='company' ) session.extract_columns() @@ -61,4 +72,15 @@ class ImporterTest(InvenTreeTestCase): def test_field_defaults(self): """Test default field values.""" - ... + + +class AdminTest(ImporterMixin, AdminTestCase): + """Tests for the admin interface integration.""" + + def test_admin(self): + """Test the admin URL.""" + session = self.helper( + model=DataImportSession, + model_kwargs={'data_file': self.helper_content(), 'model_type': 'company'}, + ) + self.helper(model=DataImportRow, model_kwargs={'session_id': session.id}) diff --git a/src/backend/InvenTree/importer/validators.py b/src/backend/InvenTree/importer/validators.py index 166c30acc6..4c72f43615 100644 --- a/src/backend/InvenTree/importer/validators.py +++ b/src/backend/InvenTree/importer/validators.py @@ -36,7 +36,7 @@ def validate_importer_model_type(value): """Validate that the given model type is supported for importing.""" from importer.registry import supported_models - if value not in supported_models().keys(): + if value not in supported_models(): raise ValidationError(f"Unsupported model type '{value}'") diff --git a/src/backend/InvenTree/locale/ar/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/ar/LC_MESSAGES/django.po index 41e7bdce1a..d3d7fa1ed6 100644 --- a/src/backend/InvenTree/locale/ar/LC_MESSAGES/django.po +++ b/src/backend/InvenTree/locale/ar/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-08-20 01:22+0000\n" -"PO-Revision-Date: 2024-08-20 19:50\n" +"POT-Creation-Date: 2024-11-04 03:11+0000\n" +"PO-Revision-Date: 2024-11-04 03:14\n" "Last-Translator: \n" "Language-Team: Arabic\n" "Language: ar_SA\n" @@ -14,81 +14,89 @@ msgstr "" "X-Crowdin-Project: inventree\n" "X-Crowdin-Project-ID: 452300\n" "X-Crowdin-Language: ar\n" -"X-Crowdin-File: /[inventree.InvenTree] l10/src/backend/InvenTree/locale/en/LC_MESSAGES/django.po\n" -"X-Crowdin-File-ID: 216\n" +"X-Crowdin-File: /src/backend/InvenTree/locale/en/LC_MESSAGES/django.po\n" +"X-Crowdin-File-ID: 250\n" -#: InvenTree/api.py:269 +#: InvenTree/api.py:270 msgid "API endpoint not found" msgstr "نقطة نهاية API غير موجودة" -#: InvenTree/api.py:502 +#: InvenTree/api.py:387 +msgid "Invalid items list provided" +msgstr "" + +#: InvenTree/api.py:396 +msgid "Invalid filters provided" +msgstr "" + +#: InvenTree/api.py:401 +msgid "No items found to delete" +msgstr "" + +#: InvenTree/api.py:515 msgid "User does not have permission to view this model" msgstr "المستخدم ليس لديه الصلاحية لعرض هذا النموذج" -#: InvenTree/conversion.py:160 +#: InvenTree/conversion.py:161 #, python-brace-format msgid "Invalid unit provided ({unit})" msgstr "الوحدة المقدمة غير صالحة ({unit})" -#: InvenTree/conversion.py:177 +#: InvenTree/conversion.py:178 msgid "No value provided" msgstr "لم يتم تقديم قيمة" -#: InvenTree/conversion.py:204 +#: InvenTree/conversion.py:205 #, python-brace-format msgid "Could not convert {original} to {unit}" msgstr "تعذّر تحويل {original} إلى {unit}" -#: InvenTree/conversion.py:206 -msgid "Invalid quantity supplied" +#: InvenTree/conversion.py:207 InvenTree/conversion.py:221 +#: InvenTree/helpers.py:505 order/models.py:589 order/models.py:832 +msgid "Invalid quantity provided" msgstr "الكمية المقدمة غير صحيحة" -#: InvenTree/conversion.py:220 -#, python-brace-format -msgid "Invalid quantity supplied ({exc})" -msgstr "الكمية المقدمة غير صحيحة ({exc})" - -#: InvenTree/exceptions.py:108 +#: InvenTree/exceptions.py:104 msgid "Error details can be found in the admin panel" msgstr "يمكن العثور على تفاصيل الخطأ في لوحة التحكم" -#: InvenTree/fields.py:136 +#: InvenTree/fields.py:135 msgid "Enter date" msgstr "أدخل التاريخ" -#: InvenTree/fields.py:205 InvenTree/models.py:929 build/serializers.py:468 -#: build/serializers.py:546 build/templates/build/sidebar.html:29 -#: company/models.py:836 +#: InvenTree/fields.py:204 InvenTree/models.py:928 build/serializers.py:512 +#: build/serializers.py:590 build/templates/build/sidebar.html:29 +#: company/models.py:833 #: company/templates/company/manufacturer_part_sidebar.html:11 #: company/templates/company/sidebar.html:37 -#: company/templates/company/supplier_part_sidebar.html:11 order/models.py:1380 +#: company/templates/company/supplier_part_sidebar.html:11 order/models.py:1397 #: order/templates/order/po_sidebar.html:11 #: order/templates/order/return_order_sidebar.html:9 #: order/templates/order/so_sidebar.html:17 part/admin.py:59 -#: part/models.py:3297 part/templates/part/part_sidebar.html:65 +#: part/models.py:3348 part/templates/part/part_sidebar.html:65 #: report/templates/report/inventree_build_order_report.html:172 -#: stock/admin.py:230 stock/models.py:2375 stock/models.py:2563 -#: stock/serializers.py:698 stock/serializers.py:856 stock/serializers.py:982 -#: stock/serializers.py:1032 stock/serializers.py:1343 -#: stock/serializers.py:1432 stock/serializers.py:1597 +#: stock/admin.py:231 stock/models.py:2494 stock/models.py:2679 +#: stock/serializers.py:725 stock/serializers.py:887 stock/serializers.py:1013 +#: stock/serializers.py:1063 stock/serializers.py:1374 +#: stock/serializers.py:1463 stock/serializers.py:1628 #: stock/templates/stock/stock_sidebar.html:25 #: templates/js/translated/barcode.js:143 templates/js/translated/bom.js:1265 -#: templates/js/translated/company.js:1684 templates/js/translated/order.js:372 +#: templates/js/translated/company.js:1685 templates/js/translated/order.js:372 #: templates/js/translated/part.js:1087 -#: templates/js/translated/purchase_order.js:2270 +#: templates/js/translated/purchase_order.js:2254 #: templates/js/translated/return_order.js:774 -#: templates/js/translated/sales_order.js:1103 -#: templates/js/translated/sales_order.js:2018 -#: templates/js/translated/stock.js:1621 templates/js/translated/stock.js:2513 +#: templates/js/translated/sales_order.js:1069 +#: templates/js/translated/sales_order.js:1999 +#: templates/js/translated/stock.js:1621 templates/js/translated/stock.js:2514 msgid "Notes" msgstr "ملاحظات" -#: InvenTree/format.py:164 +#: InvenTree/format.py:162 #, python-brace-format msgid "Value '{name}' does not appear in pattern format" msgstr "القيمة '{name}' لا تظهر في تنسيق النمط" -#: InvenTree/format.py:175 +#: InvenTree/format.py:173 msgid "Provided value does not match required pattern: " msgstr "القيمة المقدمة لا تتطابق مع النمط المطلوب: " @@ -126,403 +134,415 @@ msgstr "يجب عليك كتابة نفس البريد الإلكتروني كل #: InvenTree/forms.py:221 msgid "MFA Registration is disabled." -msgstr "" +msgstr "تسجيل MFA معطل." #: InvenTree/forms.py:259 InvenTree/forms.py:267 msgid "The provided primary email address is not valid." msgstr "عنوان البريد الإلكتروني الرئيسي المقدم غير صالح." -#: InvenTree/forms.py:274 +#: InvenTree/forms.py:273 msgid "The provided email domain is not approved." msgstr "لم تتم الموافقة على نطاق البريد الإلكتروني المقدم." -#: InvenTree/forms.py:403 +#: InvenTree/forms.py:402 msgid "Registration is disabled." msgstr "التسجيل معطل." -#: InvenTree/helpers.py:491 order/models.py:567 order/models.py:810 -msgid "Invalid quantity provided" -msgstr "الكمية المقدمة غير صحيحة" +#: InvenTree/helpers.py:509 +msgid "Cannot serialize more than 1000 items at once" +msgstr "" -#: InvenTree/helpers.py:499 +#: InvenTree/helpers.py:515 msgid "Empty serial number string" msgstr "سلسلة الرقم التسلسلي فارغة" -#: InvenTree/helpers.py:528 +#: InvenTree/helpers.py:544 msgid "Duplicate serial" msgstr "تكرار التسلسل" -#: InvenTree/helpers.py:560 InvenTree/helpers.py:603 +#: InvenTree/helpers.py:576 InvenTree/helpers.py:619 InvenTree/helpers.py:637 +#: InvenTree/helpers.py:644 InvenTree/helpers.py:663 #, python-brace-format -msgid "Invalid group range: {group}" +msgid "Invalid group: {group}" msgstr "" -#: InvenTree/helpers.py:591 +#: InvenTree/helpers.py:607 #, python-brace-format msgid "Group range {group} exceeds allowed quantity ({expected_quantity})" -msgstr "" +msgstr "نطاق المجموعة {group} يتجاوز الكَمّيَّة المسموح بها ({expected_quantity})" -#: InvenTree/helpers.py:621 InvenTree/helpers.py:628 InvenTree/helpers.py:647 -#, python-brace-format -msgid "Invalid group sequence: {group}" -msgstr "" - -#: InvenTree/helpers.py:657 +#: InvenTree/helpers.py:673 msgid "No serial numbers found" -msgstr "" +msgstr "لم يتم العثور على أرقام متسلسلة" -#: InvenTree/helpers.py:662 +#: InvenTree/helpers.py:678 msgid "Number of unique serial numbers ({len(serials)}) must match quantity ({expected_quantity})" msgstr "" -#: InvenTree/helpers.py:780 +#: InvenTree/helpers.py:796 msgid "Remove HTML tags from this value" msgstr "" -#: InvenTree/helpers_model.py:133 +#: InvenTree/helpers.py:881 +msgid "Data contains prohibited markdown content" +msgstr "" + +#: InvenTree/helpers_model.py:130 msgid "Connection error" msgstr "" -#: InvenTree/helpers_model.py:138 InvenTree/helpers_model.py:145 +#: InvenTree/helpers_model.py:135 InvenTree/helpers_model.py:142 msgid "Server responded with invalid status code" msgstr "" -#: InvenTree/helpers_model.py:141 +#: InvenTree/helpers_model.py:138 msgid "Exception occurred" msgstr "" -#: InvenTree/helpers_model.py:151 +#: InvenTree/helpers_model.py:148 msgid "Server responded with invalid Content-Length value" msgstr "" -#: InvenTree/helpers_model.py:154 +#: InvenTree/helpers_model.py:151 msgid "Image size is too large" msgstr "" -#: InvenTree/helpers_model.py:166 +#: InvenTree/helpers_model.py:163 msgid "Image download exceeded maximum size" msgstr "" -#: InvenTree/helpers_model.py:171 +#: InvenTree/helpers_model.py:168 msgid "Remote server returned empty response" msgstr "" -#: InvenTree/helpers_model.py:179 +#: InvenTree/helpers_model.py:176 msgid "Supplied URL is not a valid image file" msgstr "" -#: InvenTree/locales.py:18 +#: InvenTree/locales.py:20 msgid "Arabic" -msgstr "" +msgstr "العربيّة" -#: InvenTree/locales.py:19 +#: InvenTree/locales.py:21 msgid "Bulgarian" msgstr "" -#: InvenTree/locales.py:20 +#: InvenTree/locales.py:22 msgid "Czech" msgstr "" -#: InvenTree/locales.py:21 +#: InvenTree/locales.py:23 msgid "Danish" msgstr "" -#: InvenTree/locales.py:22 +#: InvenTree/locales.py:24 msgid "German" msgstr "" -#: InvenTree/locales.py:23 +#: InvenTree/locales.py:25 msgid "Greek" msgstr "" -#: InvenTree/locales.py:24 +#: InvenTree/locales.py:26 msgid "English" msgstr "" -#: InvenTree/locales.py:25 +#: InvenTree/locales.py:27 msgid "Spanish" msgstr "" -#: InvenTree/locales.py:26 +#: InvenTree/locales.py:28 msgid "Spanish (Mexican)" msgstr "" -#: InvenTree/locales.py:27 +#: InvenTree/locales.py:29 msgid "Estonian" msgstr "" -#: InvenTree/locales.py:28 +#: InvenTree/locales.py:30 msgid "Farsi / Persian" msgstr "" -#: InvenTree/locales.py:29 +#: InvenTree/locales.py:31 msgid "Finnish" msgstr "" -#: InvenTree/locales.py:30 +#: InvenTree/locales.py:32 msgid "French" msgstr "" -#: InvenTree/locales.py:31 +#: InvenTree/locales.py:33 msgid "Hebrew" msgstr "" -#: InvenTree/locales.py:32 +#: InvenTree/locales.py:34 msgid "Hindi" msgstr "" -#: InvenTree/locales.py:33 +#: InvenTree/locales.py:35 msgid "Hungarian" msgstr "" -#: InvenTree/locales.py:34 +#: InvenTree/locales.py:36 msgid "Italian" msgstr "" -#: InvenTree/locales.py:35 +#: InvenTree/locales.py:37 msgid "Japanese" msgstr "" -#: InvenTree/locales.py:36 +#: InvenTree/locales.py:38 msgid "Korean" msgstr "" -#: InvenTree/locales.py:37 -msgid "Latvian" -msgstr "" - -#: InvenTree/locales.py:38 -msgid "Dutch" -msgstr "" - #: InvenTree/locales.py:39 -msgid "Norwegian" +msgid "Lithuanian" msgstr "" #: InvenTree/locales.py:40 -msgid "Polish" +msgid "Latvian" msgstr "" #: InvenTree/locales.py:41 -msgid "Portuguese" +msgid "Dutch" msgstr "" #: InvenTree/locales.py:42 -msgid "Portuguese (Brazilian)" +msgid "Norwegian" msgstr "" #: InvenTree/locales.py:43 -msgid "Romanian" +msgid "Polish" msgstr "" #: InvenTree/locales.py:44 -msgid "Russian" +msgid "Portuguese" msgstr "" #: InvenTree/locales.py:45 -msgid "Slovak" +msgid "Portuguese (Brazilian)" msgstr "" #: InvenTree/locales.py:46 -msgid "Slovenian" +msgid "Romanian" msgstr "" #: InvenTree/locales.py:47 -msgid "Serbian" +msgid "Russian" msgstr "" #: InvenTree/locales.py:48 -msgid "Swedish" +msgid "Slovak" msgstr "" #: InvenTree/locales.py:49 -msgid "Thai" +msgid "Slovenian" msgstr "" #: InvenTree/locales.py:50 -msgid "Turkish" +msgid "Serbian" msgstr "" #: InvenTree/locales.py:51 -msgid "Ukrainian" +msgid "Swedish" msgstr "" #: InvenTree/locales.py:52 -msgid "Vietnamese" +msgid "Thai" msgstr "" #: InvenTree/locales.py:53 -msgid "Chinese (Simplified)" +msgid "Turkish" msgstr "" #: InvenTree/locales.py:54 +msgid "Ukrainian" +msgstr "" + +#: InvenTree/locales.py:55 +msgid "Vietnamese" +msgstr "" + +#: InvenTree/locales.py:56 +msgid "Chinese (Simplified)" +msgstr "" + +#: InvenTree/locales.py:57 msgid "Chinese (Traditional)" msgstr "" #: InvenTree/magic_login.py:28 -#, python-brace-format -msgid "[{site_name}] Log in to the app" +msgid "Log in to the app" msgstr "" -#: InvenTree/magic_login.py:38 InvenTree/serializers.py:415 -#: company/models.py:136 company/templates/company/company_base.html:138 +#: InvenTree/magic_login.py:38 InvenTree/serializers.py:416 +#: company/models.py:133 company/templates/company/company_base.html:138 #: templates/InvenTree/settings/user.html:49 -#: templates/js/translated/company.js:677 +#: templates/js/translated/company.js:678 msgid "Email" msgstr "" -#: InvenTree/models.py:103 +#: InvenTree/models.py:105 msgid "Error running plugin validation" msgstr "" -#: InvenTree/models.py:172 +#: InvenTree/models.py:174 msgid "Metadata must be a python dict object" msgstr "" -#: InvenTree/models.py:178 +#: InvenTree/models.py:180 msgid "Plugin Metadata" msgstr "" -#: InvenTree/models.py:179 +#: InvenTree/models.py:181 msgid "JSON metadata field, for use by external plugins" msgstr "" -#: InvenTree/models.py:409 +#: InvenTree/models.py:408 msgid "Improperly formatted pattern" msgstr "" -#: InvenTree/models.py:416 +#: InvenTree/models.py:415 msgid "Unknown format key specified" msgstr "" -#: InvenTree/models.py:422 +#: InvenTree/models.py:421 msgid "Missing required format key" msgstr "" -#: InvenTree/models.py:433 +#: InvenTree/models.py:432 msgid "Reference field cannot be empty" msgstr "" -#: InvenTree/models.py:441 +#: InvenTree/models.py:440 msgid "Reference must match required pattern" msgstr "" -#: InvenTree/models.py:472 +#: InvenTree/models.py:471 msgid "Reference number is too large" msgstr "" -#: InvenTree/models.py:723 +#: InvenTree/models.py:722 msgid "Duplicate names cannot exist under the same parent" msgstr "" -#: InvenTree/models.py:740 +#: InvenTree/models.py:739 msgid "Invalid choice" msgstr "" -#: InvenTree/models.py:770 common/models.py:2702 common/models.py:3132 -#: common/serializers.py:412 company/models.py:593 machine/models.py:24 -#: part/models.py:983 part/models.py:3764 plugin/models.py:51 -#: report/models.py:149 stock/models.py:77 +#: InvenTree/models.py:769 common/models.py:2766 common/models.py:3193 +#: common/models.py:3413 common/serializers.py:460 company/models.py:590 +#: machine/models.py:24 part/models.py:1044 part/models.py:3815 +#: plugin/models.py:51 report/models.py:149 stock/models.py:83 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/notifications.html:17 #: templates/InvenTree/settings/plugin.html:83 #: templates/InvenTree/settings/plugin_settings.html:22 #: templates/InvenTree/settings/settings_staff_js.html:67 #: templates/InvenTree/settings/settings_staff_js.html:454 -#: templates/js/translated/company.js:676 -#: templates/js/translated/company.js:724 -#: templates/js/translated/company.js:913 -#: templates/js/translated/company.js:1165 -#: templates/js/translated/company.js:1413 templates/js/translated/part.js:1193 +#: templates/js/translated/company.js:677 +#: templates/js/translated/company.js:725 +#: templates/js/translated/company.js:914 +#: templates/js/translated/company.js:1166 +#: templates/js/translated/company.js:1414 templates/js/translated/part.js:1193 #: templates/js/translated/part.js:1481 templates/js/translated/part.js:1617 -#: templates/js/translated/part.js:2768 templates/js/translated/stock.js:2801 +#: templates/js/translated/part.js:2768 templates/js/translated/stock.js:2802 msgid "Name" msgstr "" -#: InvenTree/models.py:776 build/models.py:250 -#: build/templates/build/detail.html:24 common/models.py:156 -#: company/models.py:521 company/models.py:827 +#: InvenTree/models.py:775 build/models.py:251 +#: build/templates/build/detail.html:24 common/models.py:159 +#: company/models.py:518 company/models.py:824 #: company/templates/company/company_base.html:77 #: company/templates/company/manufacturer_part.html:75 -#: company/templates/company/supplier_part.html:107 order/models.py:288 -#: order/models.py:1413 part/admin.py:305 part/admin.py:411 part/models.py:1006 -#: part/models.py:3779 part/templates/part/category.html:79 -#: part/templates/part/part_base.html:170 +#: company/templates/company/supplier_part.html:108 order/models.py:295 +#: order/models.py:1430 part/admin.py:305 part/admin.py:411 part/models.py:1067 +#: part/models.py:3830 part/templates/part/category.html:79 +#: part/templates/part/part_base.html:171 #: part/templates/part/part_scheduling.html:12 report/models.py:155 -#: report/models.py:509 report/models.py:535 +#: report/models.py:517 report/models.py:543 #: report/templates/report/inventree_build_order_report.html:117 -#: stock/admin.py:54 stock/models.py:83 stock/templates/stock/location.html:122 +#: stock/admin.py:54 stock/models.py:89 stock/templates/stock/location.html:123 #: templates/InvenTree/settings/notifications.html:19 #: templates/InvenTree/settings/plugin_settings.html:27 #: templates/InvenTree/settings/settings_staff_js.html:170 #: templates/InvenTree/settings/settings_staff_js.html:459 #: templates/js/translated/bom.js:633 templates/js/translated/bom.js:963 -#: templates/js/translated/build.js:2311 templates/js/translated/company.js:519 -#: templates/js/translated/company.js:1330 -#: templates/js/translated/company.js:1641 templates/js/translated/index.js:119 +#: templates/js/translated/build.js:2314 templates/js/translated/company.js:520 +#: templates/js/translated/company.js:1331 +#: templates/js/translated/company.js:1642 templates/js/translated/index.js:119 #: templates/js/translated/order.js:323 templates/js/translated/part.js:1245 #: templates/js/translated/part.js:1490 templates/js/translated/part.js:1628 #: templates/js/translated/part.js:1965 templates/js/translated/part.js:2361 #: templates/js/translated/part.js:2803 templates/js/translated/part.js:2915 #: templates/js/translated/plugin.js:80 -#: templates/js/translated/purchase_order.js:1776 -#: templates/js/translated/purchase_order.js:1919 -#: templates/js/translated/purchase_order.js:2092 +#: templates/js/translated/purchase_order.js:1760 +#: templates/js/translated/purchase_order.js:1903 +#: templates/js/translated/purchase_order.js:2076 #: templates/js/translated/return_order.js:313 -#: templates/js/translated/sales_order.js:838 -#: templates/js/translated/sales_order.js:1848 -#: templates/js/translated/stock.js:1600 templates/js/translated/stock.js:2143 -#: templates/js/translated/stock.js:2832 templates/js/translated/stock.js:2915 +#: templates/js/translated/sales_order.js:797 +#: templates/js/translated/sales_order.js:1829 +#: templates/js/translated/stock.js:1600 templates/js/translated/stock.js:2144 +#: templates/js/translated/stock.js:2833 templates/js/translated/stock.js:2916 msgid "Description" msgstr "" -#: InvenTree/models.py:777 stock/models.py:84 +#: InvenTree/models.py:776 stock/models.py:90 msgid "Description (optional)" msgstr "" -#: InvenTree/models.py:792 templates/js/translated/part.js:2812 -#: templates/js/translated/stock.js:2841 +#: InvenTree/models.py:791 common/models.py:3546 +#: templates/js/translated/part.js:2812 templates/js/translated/stock.js:2842 msgid "Path" msgstr "" -#: InvenTree/models.py:929 +#: InvenTree/models.py:928 msgid "Markdown notes (optional)" msgstr "" -#: InvenTree/models.py:960 +#: InvenTree/models.py:959 msgid "Barcode Data" msgstr "" -#: InvenTree/models.py:961 +#: InvenTree/models.py:960 msgid "Third party barcode data" msgstr "" -#: InvenTree/models.py:967 +#: InvenTree/models.py:966 msgid "Barcode Hash" msgstr "" -#: InvenTree/models.py:968 +#: InvenTree/models.py:967 msgid "Unique hash of barcode data" msgstr "" -#: InvenTree/models.py:1035 +#: InvenTree/models.py:1034 msgid "Existing barcode found" msgstr "" -#: InvenTree/models.py:1078 +#: InvenTree/models.py:1112 +msgid "Task Failure" +msgstr "" + +#: InvenTree/models.py:1114 +#, python-brace-format +msgid "Background worker task '{instance.func}' failed after {n} attempts" +msgstr "" + +#: InvenTree/models.py:1142 msgid "Server Error" msgstr "" -#: InvenTree/models.py:1079 +#: InvenTree/models.py:1143 msgid "An error has been logged by the server." msgstr "" -#: InvenTree/serializers.py:63 part/models.py:4387 +#: InvenTree/serializers.py:63 part/models.py:4444 msgid "Must be a valid number" msgstr "" -#: InvenTree/serializers.py:100 company/models.py:186 -#: company/templates/company/company_base.html:112 part/models.py:3115 +#: InvenTree/serializers.py:100 company/models.py:183 +#: company/templates/company/company_base.html:112 part/models.py:3166 #: templates/InvenTree/settings/settings_staff_js.html:44 #: templates/currency_data.html:5 msgid "Currency" @@ -532,15 +552,15 @@ msgstr "" msgid "Select currency from available options" msgstr "" -#: InvenTree/serializers.py:407 templates/InvenTree/settings/user.html:33 +#: InvenTree/serializers.py:405 templates/InvenTree/settings/user.html:33 msgid "Username" msgstr "" -#: InvenTree/serializers.py:409 templates/InvenTree/settings/user.html:37 +#: InvenTree/serializers.py:408 templates/InvenTree/settings/user.html:37 msgid "First Name" msgstr "" -#: InvenTree/serializers.py:409 +#: InvenTree/serializers.py:408 msgid "First name of the user" msgstr "" @@ -552,30 +572,30 @@ msgstr "" msgid "Last name of the user" msgstr "" -#: InvenTree/serializers.py:415 +#: InvenTree/serializers.py:416 msgid "Email address of the user" msgstr "" -#: InvenTree/serializers.py:439 +#: InvenTree/serializers.py:441 msgid "Staff" msgstr "" -#: InvenTree/serializers.py:439 +#: InvenTree/serializers.py:441 msgid "Does this user have staff permissions" msgstr "" -#: InvenTree/serializers.py:442 +#: InvenTree/serializers.py:445 msgid "Superuser" msgstr "" -#: InvenTree/serializers.py:442 +#: InvenTree/serializers.py:445 msgid "Is this user a superuser" msgstr "" -#: InvenTree/serializers.py:445 common/models.py:2707 company/models.py:163 -#: company/models.py:801 machine/models.py:39 part/admin.py:88 -#: part/models.py:1189 plugin/models.py:66 -#: templates/js/translated/company.js:523 +#: InvenTree/serializers.py:449 common/models.py:2771 company/models.py:160 +#: company/models.py:798 machine/models.py:39 part/admin.py:88 +#: part/models.py:1250 plugin/models.py:66 +#: templates/js/translated/company.js:524 #: templates/js/translated/table_filters.js:134 #: templates/js/translated/table_filters.js:226 #: templates/js/translated/table_filters.js:513 @@ -585,230 +605,229 @@ msgstr "" msgid "Active" msgstr "" -#: InvenTree/serializers.py:445 +#: InvenTree/serializers.py:449 msgid "Is this user account active" msgstr "" -#: InvenTree/serializers.py:463 +#: InvenTree/serializers.py:467 msgid "You do not have permission to change this user role." msgstr "" -#: InvenTree/serializers.py:475 +#: InvenTree/serializers.py:503 msgid "Only superusers can create new users" msgstr "" -#: InvenTree/serializers.py:494 +#: InvenTree/serializers.py:523 msgid "Your account has been created." msgstr "" -#: InvenTree/serializers.py:496 +#: InvenTree/serializers.py:525 msgid "Please use the password reset function to login" msgstr "" -#: InvenTree/serializers.py:503 +#: InvenTree/serializers.py:531 msgid "Welcome to InvenTree" msgstr "" -#: InvenTree/serializers.py:561 +#: InvenTree/serializers.py:594 msgid "Invalid value" msgstr "" -#: InvenTree/serializers.py:581 importer/models.py:63 +#: InvenTree/serializers.py:614 importer/models.py:64 msgid "Data File" msgstr "" -#: InvenTree/serializers.py:582 +#: InvenTree/serializers.py:615 msgid "Select data file for upload" msgstr "" -#: InvenTree/serializers.py:599 -msgid "Unsupported file type" +#: InvenTree/serializers.py:632 common/files.py:63 +msgid "Unsupported file format" msgstr "" -#: InvenTree/serializers.py:605 +#: InvenTree/serializers.py:638 msgid "File is too large" msgstr "" -#: InvenTree/serializers.py:626 +#: InvenTree/serializers.py:659 msgid "No columns found in file" msgstr "" -#: InvenTree/serializers.py:629 +#: InvenTree/serializers.py:662 msgid "No data rows found in file" msgstr "" -#: InvenTree/serializers.py:742 +#: InvenTree/serializers.py:774 msgid "No data rows provided" msgstr "" -#: InvenTree/serializers.py:745 +#: InvenTree/serializers.py:777 msgid "No data columns supplied" msgstr "" -#: InvenTree/serializers.py:812 +#: InvenTree/serializers.py:843 #, python-brace-format msgid "Missing required column: '{name}'" msgstr "" -#: InvenTree/serializers.py:821 +#: InvenTree/serializers.py:852 #, python-brace-format msgid "Duplicate column: '{col}'" msgstr "" -#: InvenTree/serializers.py:861 +#: InvenTree/serializers.py:891 msgid "Remote Image" msgstr "" -#: InvenTree/serializers.py:862 +#: InvenTree/serializers.py:892 msgid "URL of remote image file" msgstr "" -#: InvenTree/serializers.py:880 +#: InvenTree/serializers.py:910 msgid "Downloading images from remote URL is not enabled" msgstr "" -#: InvenTree/status.py:66 part/serializers.py:1246 -msgid "Background worker check failed" -msgstr "" - -#: InvenTree/status.py:70 -msgid "Email backend not configured" -msgstr "" - -#: InvenTree/status.py:73 -msgid "InvenTree system health checks failed" +#: InvenTree/serializers.py:917 +msgid "Failed to download image from remote URL" msgstr "" #: InvenTree/templatetags/inventree_extras.py:184 msgid "Unknown database" msgstr "" -#: InvenTree/validators.py:32 InvenTree/validators.py:34 +#: InvenTree/validators.py:32 msgid "Invalid physical unit" msgstr "" -#: InvenTree/validators.py:40 +#: InvenTree/validators.py:38 msgid "Not a valid currency code" msgstr "" -#: InvenTree/validators.py:118 InvenTree/validators.py:134 +#: InvenTree/validators.py:115 InvenTree/validators.py:131 msgid "Overage value must not be negative" msgstr "" -#: InvenTree/validators.py:136 +#: InvenTree/validators.py:133 msgid "Overage must not exceed 100%" msgstr "" -#: InvenTree/validators.py:142 +#: InvenTree/validators.py:139 msgid "Invalid value for overage" msgstr "" -#: InvenTree/views.py:400 templates/InvenTree/settings/user.html:23 +#: InvenTree/views.py:399 templates/InvenTree/settings/user.html:23 msgid "Edit User Information" msgstr "" -#: InvenTree/views.py:412 templates/InvenTree/settings/user.html:20 +#: InvenTree/views.py:411 templates/InvenTree/settings/user.html:20 msgid "Set Password" msgstr "" -#: InvenTree/views.py:434 +#: InvenTree/views.py:433 msgid "Password fields must match" msgstr "" -#: InvenTree/views.py:442 +#: InvenTree/views.py:441 msgid "Wrong password provided" msgstr "" -#: InvenTree/views.py:650 templates/navbar.html:160 +#: InvenTree/views.py:645 templates/navbar.html:160 msgid "System Information" msgstr "" -#: InvenTree/views.py:657 templates/navbar.html:171 +#: InvenTree/views.py:652 templates/navbar.html:171 msgid "About InvenTree" msgstr "" -#: build/api.py:51 part/api.py:156 stock/api.py:343 -msgid "Cascade" -msgstr "" - -#: build/api.py:64 build/models.py:261 -#: build/templates/build/build_base.html:191 +#: build/api.py:54 build/models.py:262 +#: build/templates/build/build_base.html:192 #: build/templates/build/detail.html:87 msgid "Parent Build" msgstr "" -#: build/api.py:89 order/api.py:92 templates/js/translated/table_filters.js:101 +#: build/api.py:58 build/api.py:625 order/api.py:396 order/api.py:611 +#: order/api.py:990 order/api.py:1187 +#: templates/js/translated/table_filters.js:372 +msgid "Include Variants" +msgstr "" + +#: build/api.py:93 +msgid "Ancestor Build" +msgstr "" + +#: build/api.py:112 order/api.py:90 +#: templates/js/translated/table_filters.js:101 #: templates/js/translated/table_filters.js:549 #: templates/js/translated/table_filters.js:633 #: templates/js/translated/table_filters.js:674 msgid "Assigned to me" msgstr "" -#: build/api.py:106 build/templates/build/build_base.html:205 +#: build/api.py:129 build/templates/build/build_base.html:206 #: build/templates/build/detail.html:115 #: report/templates/report/inventree_build_order_report.html:152 #: templates/js/translated/table_filters.js:552 msgid "Issued By" msgstr "" -#: build/api.py:125 +#: build/api.py:148 msgid "Assigned To" msgstr "" -#: build/api.py:301 +#: build/api.py:310 msgid "Build must be cancelled before it can be deleted" msgstr "" -#: build/api.py:345 build/serializers.py:1288 part/models.py:4265 +#: build/api.py:354 build/serializers.py:1342 part/models.py:4322 #: templates/js/translated/bom.js:997 templates/js/translated/bom.js:1037 -#: templates/js/translated/build.js:2702 +#: templates/js/translated/build.js:2711 #: templates/js/translated/table_filters.js:197 #: templates/js/translated/table_filters.js:586 msgid "Consumable" msgstr "" -#: build/api.py:346 build/serializers.py:1289 part/models.py:4259 +#: build/api.py:355 build/serializers.py:1343 part/models.py:4316 #: part/templates/part/upload_bom.html:58 templates/js/translated/bom.js:1001 -#: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2693 +#: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2702 #: templates/js/translated/table_filters.js:193 #: templates/js/translated/table_filters.js:222 #: templates/js/translated/table_filters.js:590 msgid "Optional" msgstr "" -#: build/api.py:347 common/models.py:1489 part/admin.py:91 part/admin.py:428 -#: part/models.py:1154 part/serializers.py:1575 +#: build/api.py:356 common/models.py:1558 part/admin.py:91 part/admin.py:428 +#: part/models.py:1215 part/serializers.py:1633 #: templates/js/translated/bom.js:1639 #: templates/js/translated/table_filters.js:337 #: templates/js/translated/table_filters.js:729 msgid "Assembly" msgstr "" -#: build/api.py:348 templates/js/translated/table_filters.js:415 +#: build/api.py:357 templates/js/translated/table_filters.js:415 #: templates/js/translated/table_filters.js:582 msgid "Tracked" msgstr "" -#: build/api.py:349 build/serializers.py:1290 part/models.py:1172 +#: build/api.py:358 build/serializers.py:1344 part/models.py:1233 #: templates/js/translated/table_filters.js:146 #: templates/js/translated/table_filters.js:779 msgid "Testable" msgstr "" -#: build/api.py:351 part/admin.py:144 templates/js/translated/build.js:1917 -#: templates/js/translated/build.js:2820 -#: templates/js/translated/sales_order.js:1965 +#: build/api.py:360 order/api.py:779 part/admin.py:144 +#: templates/js/translated/build.js:1920 templates/js/translated/build.js:2838 +#: templates/js/translated/sales_order.js:1946 #: templates/js/translated/table_filters.js:574 msgid "Allocated" msgstr "" -#: build/api.py:359 company/models.py:891 company/serializers.py:395 -#: company/templates/company/supplier_part.html:114 +#: build/api.py:368 company/models.py:888 company/serializers.py:399 +#: company/templates/company/supplier_part.html:115 #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:17 -#: templates/js/translated/bom.js:1162 templates/js/translated/build.js:2752 +#: templates/js/translated/bom.js:1162 templates/js/translated/build.js:2770 #: templates/js/translated/index.js:123 -#: templates/js/translated/model_renderers.js:235 +#: templates/js/translated/model_renderers.js:238 #: templates/js/translated/part.js:695 templates/js/translated/part.js:697 #: templates/js/translated/part.js:702 #: templates/js/translated/table_filters.js:347 @@ -816,16 +835,68 @@ msgstr "" msgid "Available" msgstr "" -#: build/models.py:86 build/templates/build/build_base.html:9 -#: build/templates/build/build_base.html:27 +#: build/api.py:640 build/models.py:268 build/serializers.py:1330 +#: build/templates/build/build_base.html:106 +#: build/templates/build/detail.html:29 company/models.py:1043 order/api.py:775 +#: order/api.py:1003 order/models.py:1519 order/models.py:1674 +#: order/models.py:1675 part/api.py:1495 part/api.py:1802 part/models.py:419 +#: part/models.py:3177 part/models.py:3321 part/models.py:3469 +#: part/models.py:3490 part/models.py:3512 part/models.py:3648 +#: part/models.py:3995 part/models.py:4158 part/models.py:4288 +#: part/models.py:4654 part/serializers.py:1245 part/serializers.py:1898 +#: part/templates/part/part_app_base.html:8 +#: part/templates/part/part_pricing.html:12 +#: part/templates/part/upload_bom.html:52 +#: report/templates/report/inventree_bill_of_materials_report.html:110 +#: report/templates/report/inventree_bill_of_materials_report.html:137 +#: report/templates/report/inventree_build_order_report.html:109 +#: report/templates/report/inventree_purchase_order_report.html:27 +#: report/templates/report/inventree_return_order_report.html:24 +#: report/templates/report/inventree_sales_order_report.html:27 +#: report/templates/report/inventree_sales_order_shipment_report.html:28 +#: report/templates/report/inventree_stock_location_report.html:102 +#: stock/serializers.py:112 stock/serializers.py:160 stock/serializers.py:456 +#: stock/serializers.py:947 templates/InvenTree/search.html:82 +#: templates/email/build_order_completed.html:17 +#: templates/email/build_order_required_stock.html:17 +#: templates/email/low_stock_notification.html:15 +#: templates/email/overdue_build_order.html:16 +#: templates/js/translated/barcode.js:577 templates/js/translated/bom.js:632 +#: templates/js/translated/bom.js:769 templates/js/translated/bom.js:905 +#: templates/js/translated/build.js:1005 templates/js/translated/build.js:1488 +#: templates/js/translated/build.js:1919 templates/js/translated/build.js:2337 +#: templates/js/translated/build.js:2514 templates/js/translated/company.js:349 +#: templates/js/translated/company.js:1117 +#: templates/js/translated/company.js:1272 +#: templates/js/translated/company.js:1560 templates/js/translated/index.js:109 +#: templates/js/translated/part.js:1950 templates/js/translated/part.js:2022 +#: templates/js/translated/part.js:2330 templates/js/translated/pricing.js:369 +#: templates/js/translated/purchase_order.js:734 +#: templates/js/translated/purchase_order.js:1350 +#: templates/js/translated/purchase_order.js:1902 +#: templates/js/translated/purchase_order.js:2061 +#: templates/js/translated/return_order.js:538 +#: templates/js/translated/return_order.js:708 +#: templates/js/translated/sales_order.js:1199 +#: templates/js/translated/sales_order.js:1608 +#: templates/js/translated/sales_order.js:1813 +#: templates/js/translated/stock.js:682 templates/js/translated/stock.js:848 +#: templates/js/translated/stock.js:1065 templates/js/translated/stock.js:2083 +#: templates/js/translated/stock.js:2942 templates/js/translated/stock.js:3175 +#: templates/js/translated/stock.js:3320 +msgid "Part" +msgstr "" + +#: build/api.py:662 build/models.py:88 build/templates/build/build_base.html:10 +#: build/templates/build/build_base.html:28 #: report/templates/report/inventree_build_order_report.html:105 -#: stock/serializers.py:84 templates/email/build_order_completed.html:16 +#: stock/serializers.py:85 templates/email/build_order_completed.html:16 #: templates/email/overdue_build_order.html:15 -#: templates/js/translated/build.js:1145 templates/js/translated/stock.js:2976 +#: templates/js/translated/build.js:1148 templates/js/translated/stock.js:2977 msgid "Build Order" msgstr "" -#: build/models.py:87 build/templates/build/build_base.html:13 +#: build/models.py:89 build/templates/build/build_base.html:14 #: build/templates/build/index.html:8 build/templates/build/index.html:12 #: order/templates/order/sales_order_detail.html:111 #: order/templates/order/so_sidebar.html:13 @@ -836,268 +907,216 @@ msgstr "" msgid "Build Orders" msgstr "" -#: build/models.py:135 +#: build/models.py:136 msgid "Assembly BOM has not been validated" msgstr "" -#: build/models.py:142 +#: build/models.py:143 msgid "Build order cannot be created for an inactive part" msgstr "" -#: build/models.py:149 +#: build/models.py:150 msgid "Build order cannot be created for an unlocked part" msgstr "" -#: build/models.py:163 +#: build/models.py:164 msgid "Invalid choice for parent build" msgstr "" -#: build/models.py:174 order/models.py:239 +#: build/models.py:175 order/models.py:236 msgid "Responsible user or group must be specified" msgstr "" -#: build/models.py:180 +#: build/models.py:181 msgid "Build order part cannot be changed" msgstr "" -#: build/models.py:241 +#: build/models.py:242 msgid "Build Order Reference" msgstr "" -#: build/models.py:242 build/serializers.py:1287 order/models.py:467 -#: order/models.py:978 order/models.py:1373 order/models.py:2135 -#: part/admin.py:414 part/models.py:4280 part/templates/part/upload_bom.html:54 +#: build/models.py:243 build/serializers.py:1341 order/models.py:479 +#: order/models.py:1005 order/models.py:1390 order/models.py:2174 +#: part/admin.py:414 part/models.py:4337 part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_bill_of_materials_report.html:139 #: report/templates/report/inventree_purchase_order_report.html:28 #: report/templates/report/inventree_return_order_report.html:26 #: report/templates/report/inventree_sales_order_report.html:28 #: templates/js/translated/bom.js:770 templates/js/translated/bom.js:973 -#: templates/js/translated/build.js:1011 templates/js/translated/build.js:2685 +#: templates/js/translated/build.js:1014 templates/js/translated/build.js:2694 #: templates/js/translated/order.js:316 templates/js/translated/pricing.js:386 -#: templates/js/translated/purchase_order.js:2135 +#: templates/js/translated/purchase_order.js:2119 #: templates/js/translated/return_order.js:727 -#: templates/js/translated/sales_order.js:1854 +#: templates/js/translated/sales_order.js:1835 msgid "Reference" msgstr "" -#: build/models.py:253 +#: build/models.py:254 msgid "Brief description of the build (optional)" msgstr "" -#: build/models.py:262 +#: build/models.py:263 msgid "BuildOrder to which this build is allocated" msgstr "" -#: build/models.py:267 build/serializers.py:1278 -#: build/templates/build/build_base.html:105 -#: build/templates/build/detail.html:29 company/models.py:1046 order/api.py:767 -#: order/models.py:1503 order/models.py:1658 order/models.py:1659 -#: part/api.py:1509 part/api.py:1813 part/models.py:424 part/models.py:3126 -#: part/models.py:3270 part/models.py:3418 part/models.py:3439 -#: part/models.py:3461 part/models.py:3597 part/models.py:3937 -#: part/models.py:4100 part/models.py:4231 part/models.py:4592 -#: part/serializers.py:1192 part/serializers.py:1836 -#: part/templates/part/part_app_base.html:8 -#: part/templates/part/part_pricing.html:12 -#: part/templates/part/upload_bom.html:52 -#: report/templates/report/inventree_bill_of_materials_report.html:110 -#: report/templates/report/inventree_bill_of_materials_report.html:137 -#: report/templates/report/inventree_build_order_report.html:109 -#: report/templates/report/inventree_purchase_order_report.html:27 -#: report/templates/report/inventree_return_order_report.html:24 -#: report/templates/report/inventree_sales_order_report.html:27 -#: report/templates/report/inventree_stock_location_report.html:102 -#: stock/serializers.py:111 stock/serializers.py:159 stock/serializers.py:446 -#: stock/serializers.py:916 templates/InvenTree/search.html:82 -#: templates/email/build_order_completed.html:17 -#: templates/email/build_order_required_stock.html:17 -#: templates/email/low_stock_notification.html:15 -#: templates/email/overdue_build_order.html:16 -#: templates/js/translated/barcode.js:577 templates/js/translated/bom.js:632 -#: templates/js/translated/bom.js:769 templates/js/translated/bom.js:905 -#: templates/js/translated/build.js:1002 templates/js/translated/build.js:1485 -#: templates/js/translated/build.js:1916 templates/js/translated/build.js:2334 -#: templates/js/translated/build.js:2507 templates/js/translated/company.js:348 -#: templates/js/translated/company.js:1116 -#: templates/js/translated/company.js:1271 -#: templates/js/translated/company.js:1559 templates/js/translated/index.js:109 -#: templates/js/translated/part.js:1950 templates/js/translated/part.js:2022 -#: templates/js/translated/part.js:2330 templates/js/translated/pricing.js:369 -#: templates/js/translated/purchase_order.js:751 -#: templates/js/translated/purchase_order.js:1367 -#: templates/js/translated/purchase_order.js:1918 -#: templates/js/translated/purchase_order.js:2077 -#: templates/js/translated/return_order.js:538 -#: templates/js/translated/return_order.js:708 -#: templates/js/translated/sales_order.js:300 -#: templates/js/translated/sales_order.js:1233 -#: templates/js/translated/sales_order.js:1634 -#: templates/js/translated/sales_order.js:1832 -#: templates/js/translated/stock.js:682 templates/js/translated/stock.js:848 -#: templates/js/translated/stock.js:1065 templates/js/translated/stock.js:2082 -#: templates/js/translated/stock.js:2941 templates/js/translated/stock.js:3174 -#: templates/js/translated/stock.js:3319 -msgid "Part" -msgstr "" - -#: build/models.py:275 +#: build/models.py:274 msgid "Select part to build" msgstr "" -#: build/models.py:280 +#: build/models.py:279 msgid "Sales Order Reference" msgstr "" -#: build/models.py:284 +#: build/models.py:283 msgid "SalesOrder to which this build is allocated" msgstr "" -#: build/models.py:289 build/serializers.py:1048 -#: templates/js/translated/build.js:1904 -#: templates/js/translated/sales_order.js:1221 +#: build/models.py:288 build/serializers.py:1092 +#: templates/js/translated/build.js:1907 +#: templates/js/translated/sales_order.js:1187 msgid "Source Location" msgstr "" -#: build/models.py:293 +#: build/models.py:292 msgid "Select location to take stock from for this build (leave blank to take from any stock location)" msgstr "" -#: build/models.py:298 +#: build/models.py:297 msgid "Destination Location" msgstr "" -#: build/models.py:302 +#: build/models.py:301 msgid "Select location where the completed items will be stored" msgstr "" -#: build/models.py:306 +#: build/models.py:305 msgid "Build Quantity" msgstr "" -#: build/models.py:309 +#: build/models.py:308 msgid "Number of stock items to build" msgstr "" -#: build/models.py:313 +#: build/models.py:312 msgid "Completed items" msgstr "" -#: build/models.py:315 +#: build/models.py:314 msgid "Number of stock items which have been completed" msgstr "" -#: build/models.py:319 +#: build/models.py:318 msgid "Build Status" msgstr "" -#: build/models.py:323 +#: build/models.py:322 msgid "Build status code" msgstr "" -#: build/models.py:332 build/serializers.py:302 build/serializers.py:1198 -#: order/serializers.py:670 stock/models.py:859 stock/serializers.py:76 -#: stock/serializers.py:1562 templates/js/translated/purchase_order.js:1129 +#: build/models.py:331 build/serializers.py:349 build/serializers.py:1243 +#: order/serializers.py:755 stock/models.py:936 stock/serializers.py:77 +#: stock/serializers.py:1593 templates/js/translated/purchase_order.js:1112 #: templates/js/translated/stock.js:1199 msgid "Batch Code" msgstr "" -#: build/models.py:336 build/serializers.py:303 +#: build/models.py:335 build/serializers.py:350 msgid "Batch code for this build output" msgstr "" -#: build/models.py:339 order/models.py:315 order/serializers.py:126 -#: part/models.py:1229 part/templates/part/part_base.html:319 +#: build/models.py:338 order/models.py:322 order/serializers.py:157 +#: part/models.py:1290 part/templates/part/part_base.html:327 #: templates/js/translated/return_order.js:338 -#: templates/js/translated/sales_order.js:863 +#: templates/js/translated/sales_order.js:822 msgid "Creation Date" msgstr "" -#: build/models.py:343 +#: build/models.py:342 msgid "Target completion date" msgstr "" -#: build/models.py:344 +#: build/models.py:343 msgid "Target date for build completion. Build will be overdue after this date." msgstr "" -#: build/models.py:347 order/models.py:526 order/models.py:2180 -#: templates/js/translated/build.js:2419 +#: build/models.py:346 order/models.py:538 order/models.py:2219 +#: templates/js/translated/build.js:2422 msgid "Completion Date" msgstr "" -#: build/models.py:353 +#: build/models.py:352 msgid "completed by" msgstr "" -#: build/models.py:361 templates/js/translated/build.js:2379 +#: build/models.py:360 templates/js/translated/build.js:2382 msgid "Issued by" msgstr "" -#: build/models.py:362 +#: build/models.py:361 msgid "User who issued this build order" msgstr "" -#: build/models.py:370 build/templates/build/build_base.html:212 -#: build/templates/build/detail.html:122 common/models.py:165 order/api.py:142 -#: order/models.py:333 order/templates/order/order_base.html:222 -#: order/templates/order/return_order_base.html:191 -#: order/templates/order/sales_order_base.html:235 part/models.py:1246 -#: part/templates/part/part_base.html:399 +#: build/models.py:369 build/templates/build/build_base.html:213 +#: build/templates/build/detail.html:122 common/models.py:168 order/api.py:140 +#: order/models.py:340 order/templates/order/order_base.html:231 +#: order/templates/order/return_order_base.html:192 +#: order/templates/order/sales_order_base.html:236 part/models.py:1307 +#: part/templates/part/part_base.html:407 #: report/templates/report/inventree_build_order_report.html:158 #: templates/InvenTree/settings/settings_staff_js.html:150 -#: templates/js/translated/build.js:2391 -#: templates/js/translated/purchase_order.js:1833 +#: templates/js/translated/build.js:2394 +#: templates/js/translated/purchase_order.js:1817 #: templates/js/translated/return_order.js:358 #: templates/js/translated/table_filters.js:551 msgid "Responsible" msgstr "" -#: build/models.py:371 +#: build/models.py:370 msgid "User or group responsible for this build order" msgstr "" -#: build/models.py:376 build/templates/build/detail.html:108 +#: build/models.py:375 build/templates/build/detail.html:108 #: company/templates/company/manufacturer_part.html:107 -#: company/templates/company/supplier_part.html:194 -#: order/templates/order/order_base.html:172 -#: order/templates/order/return_order_base.html:148 -#: order/templates/order/sales_order_base.html:187 -#: part/templates/part/part_base.html:392 stock/models.py:855 -#: stock/templates/stock/item_base.html:200 -#: templates/js/translated/company.js:1019 +#: company/templates/company/supplier_part.html:195 +#: order/templates/order/order_base.html:181 +#: order/templates/order/return_order_base.html:149 +#: order/templates/order/sales_order_base.html:188 +#: part/templates/part/part_base.html:400 stock/models.py:932 +#: stock/templates/stock/item_base.html:197 +#: templates/js/translated/company.js:1020 msgid "External Link" msgstr "" -#: build/models.py:377 common/models.py:3273 part/models.py:1058 -#: stock/models.py:855 +#: build/models.py:376 common/models.py:3334 part/models.py:1119 +#: stock/models.py:932 msgid "Link to external URL" msgstr "" -#: build/models.py:381 +#: build/models.py:380 msgid "Build Priority" msgstr "" -#: build/models.py:384 +#: build/models.py:383 msgid "Priority of this build order" msgstr "" -#: build/models.py:391 common/models.py:135 common/models.py:149 -#: order/admin.py:18 order/api.py:128 order/models.py:297 +#: build/models.py:390 common/models.py:138 common/models.py:152 +#: order/admin.py:18 order/api.py:126 order/models.py:304 #: templates/InvenTree/settings/settings_staff_js.html:146 -#: templates/js/translated/build.js:2316 -#: templates/js/translated/purchase_order.js:1780 +#: templates/js/translated/build.js:2319 +#: templates/js/translated/purchase_order.js:1764 #: templates/js/translated/return_order.js:317 -#: templates/js/translated/sales_order.js:842 +#: templates/js/translated/sales_order.js:801 #: templates/js/translated/table_filters.js:47 #: templates/project_code_data.html:6 msgid "Project Code" msgstr "" -#: build/models.py:392 +#: build/models.py:391 msgid "Project code for this build order" msgstr "" -#: build/models.py:651 build/models.py:778 +#: build/models.py:651 build/models.py:779 msgid "Failed to offload task to complete build allocations" msgstr "" @@ -1110,610 +1129,619 @@ msgstr "" msgid "A build order has been completed" msgstr "" -#: build/models.py:967 build/models.py:1055 +#: build/models.py:858 build/serializers.py:393 +msgid "Serial numbers must be provided for trackable parts" +msgstr "" + +#: build/models.py:969 build/models.py:1058 msgid "No build output specified" msgstr "" -#: build/models.py:970 +#: build/models.py:972 msgid "Build output is already completed" msgstr "" -#: build/models.py:973 +#: build/models.py:975 msgid "Build output does not match Build Order" msgstr "" -#: build/models.py:1059 build/serializers.py:235 build/serializers.py:284 -#: build/serializers.py:915 order/models.py:564 order/serializers.py:499 -#: order/serializers.py:665 part/serializers.py:1569 part/serializers.py:1999 -#: stock/models.py:700 stock/models.py:1520 stock/serializers.py:669 +#: build/models.py:1062 build/serializers.py:282 build/serializers.py:331 +#: build/serializers.py:959 order/models.py:586 order/serializers.py:584 +#: order/serializers.py:750 part/serializers.py:1627 part/serializers.py:2060 +#: stock/models.py:777 stock/models.py:1609 stock/serializers.py:696 msgid "Quantity must be greater than zero" msgstr "" -#: build/models.py:1064 build/serializers.py:240 +#: build/models.py:1067 build/serializers.py:287 msgid "Quantity cannot be greater than the output quantity" msgstr "" -#: build/models.py:1124 build/serializers.py:563 +#: build/models.py:1127 build/serializers.py:607 #, python-brace-format msgid "Build output {serial} has not passed all required tests" msgstr "" -#: build/models.py:1465 +#: build/models.py:1482 msgid "Build Order Line Item" msgstr "" -#: build/models.py:1490 +#: build/models.py:1507 msgid "Build object" msgstr "" -#: build/models.py:1504 build/models.py:1760 build/serializers.py:222 -#: build/serializers.py:269 build/serializers.py:1295 -#: build/templates/build/build_base.html:110 -#: build/templates/build/detail.html:34 common/models.py:2579 -#: order/models.py:1356 order/models.py:2041 order/serializers.py:1460 +#: build/models.py:1521 build/models.py:1787 build/serializers.py:269 +#: build/serializers.py:316 build/serializers.py:1349 +#: build/templates/build/build_base.html:111 +#: build/templates/build/detail.html:34 common/models.py:2643 +#: order/models.py:1373 order/models.py:2074 order/serializers.py:1586 #: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:413 -#: part/forms.py:48 part/models.py:3284 part/models.py:4253 -#: part/templates/part/part_pricing.html:16 +#: part/forms.py:48 part/models.py:3335 part/models.py:4310 +#: part/serializers.py:265 part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_bill_of_materials_report.html:138 #: report/templates/report/inventree_build_order_report.html:113 #: report/templates/report/inventree_purchase_order_report.html:29 #: report/templates/report/inventree_sales_order_report.html:29 +#: report/templates/report/inventree_sales_order_shipment_report.html:47 +#: report/templates/report/inventree_sales_order_shipment_report.html:49 #: report/templates/report/inventree_stock_location_report.html:104 #: report/templates/report/inventree_test_report.html:90 -#: report/templates/report/inventree_test_report.html:169 stock/admin.py:159 -#: stock/serializers.py:127 stock/serializers.py:167 stock/serializers.py:660 -#: stock/templates/stock/item_base.html:287 -#: stock/templates/stock/item_base.html:295 -#: stock/templates/stock/item_base.html:342 +#: report/templates/report/inventree_test_report.html:169 stock/admin.py:160 +#: stock/serializers.py:128 stock/serializers.py:168 stock/serializers.py:687 +#: stock/templates/stock/item_base.html:284 +#: stock/templates/stock/item_base.html:292 +#: stock/templates/stock/item_base.html:339 #: templates/email/build_order_completed.html:18 #: templates/js/translated/barcode.js:579 templates/js/translated/bom.js:771 -#: templates/js/translated/bom.js:981 templates/js/translated/build.js:522 -#: templates/js/translated/build.js:737 templates/js/translated/build.js:1542 -#: templates/js/translated/build.js:1919 templates/js/translated/build.js:2529 -#: templates/js/translated/company.js:1818 -#: templates/js/translated/model_renderers.js:237 +#: templates/js/translated/bom.js:981 templates/js/translated/build.js:525 +#: templates/js/translated/build.js:740 templates/js/translated/build.js:1545 +#: templates/js/translated/build.js:1922 templates/js/translated/build.js:2536 +#: templates/js/translated/company.js:1819 +#: templates/js/translated/model_renderers.js:240 #: templates/js/translated/order.js:329 templates/js/translated/part.js:968 -#: templates/js/translated/part.js:1818 templates/js/translated/part.js:3360 +#: templates/js/translated/part.js:1818 templates/js/translated/part.js:3376 #: templates/js/translated/pricing.js:381 #: templates/js/translated/pricing.js:474 #: templates/js/translated/pricing.js:522 #: templates/js/translated/pricing.js:616 -#: templates/js/translated/purchase_order.js:754 -#: templates/js/translated/purchase_order.js:1922 -#: templates/js/translated/purchase_order.js:2141 -#: templates/js/translated/sales_order.js:317 -#: templates/js/translated/sales_order.js:1235 -#: templates/js/translated/sales_order.js:1554 -#: templates/js/translated/sales_order.js:1644 -#: templates/js/translated/sales_order.js:1734 -#: templates/js/translated/sales_order.js:1860 +#: templates/js/translated/purchase_order.js:737 +#: templates/js/translated/purchase_order.js:1906 +#: templates/js/translated/purchase_order.js:2125 +#: templates/js/translated/sales_order.js:1201 +#: templates/js/translated/sales_order.js:1520 +#: templates/js/translated/sales_order.js:1625 +#: templates/js/translated/sales_order.js:1715 +#: templates/js/translated/sales_order.js:1841 #: templates/js/translated/stock.js:570 templates/js/translated/stock.js:708 -#: templates/js/translated/stock.js:879 templates/js/translated/stock.js:3105 -#: templates/js/translated/stock.js:3188 +#: templates/js/translated/stock.js:879 templates/js/translated/stock.js:3106 +#: templates/js/translated/stock.js:3189 msgid "Quantity" msgstr "" -#: build/models.py:1505 +#: build/models.py:1522 msgid "Required quantity for build order" msgstr "" -#: build/models.py:1585 +#: build/models.py:1602 msgid "Build item must specify a build output, as master part is marked as trackable" msgstr "" -#: build/models.py:1594 +#: build/models.py:1611 #, python-brace-format msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgstr "" -#: build/models.py:1604 order/models.py:1992 +#: build/models.py:1628 order/models.py:2025 msgid "Stock item is over-allocated" msgstr "" -#: build/models.py:1610 order/models.py:1995 +#: build/models.py:1634 order/models.py:2028 msgid "Allocation quantity must be greater than zero" msgstr "" -#: build/models.py:1616 +#: build/models.py:1640 msgid "Quantity must be 1 for serialized stock" msgstr "" -#: build/models.py:1675 +#: build/models.py:1699 msgid "Selected stock item does not match BOM line" msgstr "" -#: build/models.py:1747 build/serializers.py:895 order/serializers.py:1297 -#: order/serializers.py:1318 stock/models.py:376 stock/serializers.py:93 -#: stock/serializers.py:763 stock/serializers.py:1281 stock/serializers.py:1393 -#: stock/templates/stock/item_base.html:10 -#: stock/templates/stock/item_base.html:23 -#: stock/templates/stock/item_base.html:194 -#: templates/js/translated/build.js:1918 -#: templates/js/translated/sales_order.js:301 -#: templates/js/translated/sales_order.js:1234 -#: templates/js/translated/sales_order.js:1535 -#: templates/js/translated/sales_order.js:1540 -#: templates/js/translated/sales_order.js:1641 -#: templates/js/translated/sales_order.js:1728 +#: build/models.py:1774 build/serializers.py:939 order/serializers.py:1423 +#: order/serializers.py:1444 +#: report/templates/report/inventree_sales_order_shipment_report.html:29 +#: stock/models.py:382 stock/serializers.py:94 stock/serializers.py:794 +#: stock/serializers.py:1312 stock/serializers.py:1424 +#: stock/templates/stock/item_base.html:11 +#: stock/templates/stock/item_base.html:24 +#: stock/templates/stock/item_base.html:191 +#: templates/js/translated/build.js:1921 +#: templates/js/translated/sales_order.js:1200 +#: templates/js/translated/sales_order.js:1501 +#: templates/js/translated/sales_order.js:1506 +#: templates/js/translated/sales_order.js:1622 +#: templates/js/translated/sales_order.js:1709 #: templates/js/translated/stock.js:683 templates/js/translated/stock.js:849 -#: templates/js/translated/stock.js:3061 +#: templates/js/translated/stock.js:3062 msgid "Stock Item" msgstr "" -#: build/models.py:1748 +#: build/models.py:1775 msgid "Source stock item" msgstr "" -#: build/models.py:1761 +#: build/models.py:1788 msgid "Stock quantity to allocate to build" msgstr "" -#: build/models.py:1769 +#: build/models.py:1796 msgid "Install into" msgstr "" -#: build/models.py:1770 +#: build/models.py:1797 msgid "Destination stock item" msgstr "" -#: build/serializers.py:91 +#: build/serializers.py:108 msgid "Build Level" msgstr "" -#: build/serializers.py:99 build/serializers.py:1190 build/serializers.py:1279 -#: part/admin.py:41 part/admin.py:408 part/models.py:4102 part/stocktake.py:219 -#: stock/admin.py:156 +#: build/serializers.py:116 build/serializers.py:1235 build/serializers.py:1331 +#: part/admin.py:41 part/admin.py:408 part/models.py:4160 part/stocktake.py:219 +#: stock/admin.py:157 msgid "Part Name" msgstr "" -#: build/serializers.py:111 +#: build/serializers.py:128 msgid "Project Code Label" msgstr "" -#: build/serializers.py:172 build/serializers.py:924 -#: templates/js/translated/build.js:1042 templates/js/translated/build.js:1495 +#: build/serializers.py:134 +msgid "Create Child Builds" +msgstr "" + +#: build/serializers.py:135 +msgid "Automatically generate child build orders" +msgstr "" + +#: build/serializers.py:219 build/serializers.py:968 +#: templates/js/translated/build.js:1045 templates/js/translated/build.js:1498 msgid "Build Output" msgstr "" -#: build/serializers.py:184 +#: build/serializers.py:231 msgid "Build output does not match the parent build" msgstr "" -#: build/serializers.py:188 +#: build/serializers.py:235 msgid "Output part does not match BuildOrder part" msgstr "" -#: build/serializers.py:192 +#: build/serializers.py:239 msgid "This build output has already been completed" msgstr "" -#: build/serializers.py:203 +#: build/serializers.py:250 msgid "This build output is not fully allocated" msgstr "" -#: build/serializers.py:223 build/serializers.py:270 +#: build/serializers.py:270 build/serializers.py:317 msgid "Enter quantity for build output" msgstr "" -#: build/serializers.py:291 +#: build/serializers.py:338 msgid "Integer quantity required for trackable parts" msgstr "" -#: build/serializers.py:294 +#: build/serializers.py:341 msgid "Integer quantity required, as the bill of materials contains trackable parts" msgstr "" -#: build/serializers.py:309 order/serializers.py:678 order/serializers.py:1464 -#: stock/serializers.py:680 templates/js/translated/purchase_order.js:1154 +#: build/serializers.py:356 order/serializers.py:763 order/serializers.py:1590 +#: stock/serializers.py:707 templates/js/translated/purchase_order.js:1137 #: templates/js/translated/stock.js:373 templates/js/translated/stock.js:571 msgid "Serial Numbers" msgstr "" -#: build/serializers.py:310 +#: build/serializers.py:357 msgid "Enter serial numbers for build outputs" msgstr "" -#: build/serializers.py:315 build/serializers.py:456 build/serializers.py:528 -#: order/serializers.py:654 order/serializers.py:778 order/serializers.py:1781 -#: part/serializers.py:1212 stock/serializers.py:102 stock/serializers.py:691 -#: stock/serializers.py:851 stock/serializers.py:977 stock/serializers.py:1425 -#: stock/serializers.py:1681 stock/templates/stock/item_base.html:394 +#: build/serializers.py:362 build/serializers.py:500 build/serializers.py:572 +#: order/serializers.py:739 order/serializers.py:880 order/serializers.py:1933 +#: part/serializers.py:1265 stock/serializers.py:103 stock/serializers.py:718 +#: stock/serializers.py:882 stock/serializers.py:1008 stock/serializers.py:1456 +#: stock/serializers.py:1712 stock/templates/stock/item_base.html:391 #: templates/js/translated/barcode.js:578 -#: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1032 -#: templates/js/translated/build.js:1174 templates/js/translated/build.js:2544 -#: templates/js/translated/purchase_order.js:1210 -#: templates/js/translated/purchase_order.js:1320 -#: templates/js/translated/sales_order.js:1547 -#: templates/js/translated/sales_order.js:1655 -#: templates/js/translated/sales_order.js:1663 -#: templates/js/translated/sales_order.js:1742 +#: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1035 +#: templates/js/translated/build.js:1177 templates/js/translated/build.js:2551 +#: templates/js/translated/purchase_order.js:1193 +#: templates/js/translated/purchase_order.js:1303 +#: templates/js/translated/sales_order.js:1513 +#: templates/js/translated/sales_order.js:1636 +#: templates/js/translated/sales_order.js:1644 +#: templates/js/translated/sales_order.js:1723 #: templates/js/translated/stock.js:684 templates/js/translated/stock.js:850 -#: templates/js/translated/stock.js:1067 templates/js/translated/stock.js:2286 -#: templates/js/translated/stock.js:2955 +#: templates/js/translated/stock.js:1067 templates/js/translated/stock.js:2287 +#: templates/js/translated/stock.js:2956 msgid "Location" msgstr "" -#: build/serializers.py:316 +#: build/serializers.py:363 msgid "Stock location for build output" msgstr "" -#: build/serializers.py:330 +#: build/serializers.py:377 msgid "Auto Allocate Serial Numbers" msgstr "" -#: build/serializers.py:331 +#: build/serializers.py:378 msgid "Automatically allocate required items with matching serial numbers" msgstr "" -#: build/serializers.py:346 -msgid "Serial numbers must be provided for trackable parts" -msgstr "" - -#: build/serializers.py:371 stock/api.py:1031 +#: build/serializers.py:415 order/serializers.py:858 stock/api.py:1017 +#: stock/models.py:1632 msgid "The following serial numbers already exist or are invalid" msgstr "" -#: build/serializers.py:418 build/serializers.py:480 build/serializers.py:569 +#: build/serializers.py:462 build/serializers.py:524 build/serializers.py:613 msgid "A list of build outputs must be provided" msgstr "" -#: build/serializers.py:457 +#: build/serializers.py:501 msgid "Stock location for scrapped outputs" msgstr "" -#: build/serializers.py:463 +#: build/serializers.py:507 msgid "Discard Allocations" msgstr "" -#: build/serializers.py:464 +#: build/serializers.py:508 msgid "Discard any stock allocations for scrapped outputs" msgstr "" -#: build/serializers.py:469 +#: build/serializers.py:513 msgid "Reason for scrapping build output(s)" msgstr "" -#: build/serializers.py:529 +#: build/serializers.py:573 msgid "Location for completed build outputs" msgstr "" -#: build/serializers.py:535 build/templates/build/build_base.html:159 -#: build/templates/build/detail.html:62 order/models.py:476 -#: order/models.py:1002 order/models.py:2159 order/serializers.py:686 -#: stock/admin.py:164 stock/serializers.py:1028 stock/serializers.py:1569 -#: stock/templates/stock/item_base.html:427 -#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2363 -#: templates/js/translated/purchase_order.js:1371 -#: templates/js/translated/purchase_order.js:1792 +#: build/serializers.py:579 build/templates/build/build_base.html:160 +#: build/templates/build/detail.html:62 order/models.py:488 +#: order/models.py:1029 order/models.py:2198 order/serializers.py:771 +#: stock/admin.py:165 stock/serializers.py:581 stock/serializers.py:1059 +#: stock/serializers.py:1600 stock/templates/stock/item_base.html:424 +#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2366 +#: templates/js/translated/purchase_order.js:1354 +#: templates/js/translated/purchase_order.js:1776 #: templates/js/translated/return_order.js:330 -#: templates/js/translated/sales_order.js:855 -#: templates/js/translated/stock.js:2261 templates/js/translated/stock.js:3079 -#: templates/js/translated/stock.js:3204 +#: templates/js/translated/sales_order.js:814 +#: templates/js/translated/stock.js:2262 templates/js/translated/stock.js:3080 +#: templates/js/translated/stock.js:3205 msgid "Status" msgstr "" -#: build/serializers.py:541 +#: build/serializers.py:585 msgid "Accept Incomplete Allocation" msgstr "" -#: build/serializers.py:542 +#: build/serializers.py:586 msgid "Complete outputs if stock has not been fully allocated" msgstr "" -#: build/serializers.py:654 +#: build/serializers.py:698 msgid "Consume Allocated Stock" msgstr "" -#: build/serializers.py:655 +#: build/serializers.py:699 msgid "Consume any stock which has already been allocated to this build" msgstr "" -#: build/serializers.py:661 +#: build/serializers.py:705 msgid "Remove Incomplete Outputs" msgstr "" -#: build/serializers.py:662 +#: build/serializers.py:706 msgid "Delete any build outputs which have not been completed" msgstr "" -#: build/serializers.py:689 +#: build/serializers.py:733 msgid "Not permitted" msgstr "" -#: build/serializers.py:690 +#: build/serializers.py:734 msgid "Accept as consumed by this build order" msgstr "" -#: build/serializers.py:691 +#: build/serializers.py:735 msgid "Deallocate before completing this build order" msgstr "" -#: build/serializers.py:721 +#: build/serializers.py:765 msgid "Overallocated Stock" msgstr "" -#: build/serializers.py:723 +#: build/serializers.py:767 msgid "How do you want to handle extra stock items assigned to the build order" msgstr "" -#: build/serializers.py:733 +#: build/serializers.py:777 msgid "Some stock items have been overallocated" msgstr "" -#: build/serializers.py:738 +#: build/serializers.py:782 msgid "Accept Unallocated" msgstr "" -#: build/serializers.py:739 +#: build/serializers.py:783 msgid "Accept that stock items have not been fully allocated to this build order" msgstr "" -#: build/serializers.py:749 templates/js/translated/build.js:316 +#: build/serializers.py:793 templates/js/translated/build.js:319 msgid "Required stock has not been fully allocated" msgstr "" -#: build/serializers.py:754 order/serializers.py:345 order/serializers.py:1365 +#: build/serializers.py:798 order/serializers.py:430 order/serializers.py:1491 msgid "Accept Incomplete" msgstr "" -#: build/serializers.py:755 +#: build/serializers.py:799 msgid "Accept that the required number of build outputs have not been completed" msgstr "" -#: build/serializers.py:765 templates/js/translated/build.js:320 +#: build/serializers.py:809 templates/js/translated/build.js:323 msgid "Required build quantity has not been completed" msgstr "" -#: build/serializers.py:774 +#: build/serializers.py:818 msgid "Build order has open child build orders" msgstr "" -#: build/serializers.py:777 +#: build/serializers.py:821 msgid "Build order must be in production state" msgstr "" -#: build/serializers.py:780 templates/js/translated/build.js:304 +#: build/serializers.py:824 templates/js/translated/build.js:307 msgid "Build order has incomplete outputs" msgstr "" -#: build/serializers.py:818 +#: build/serializers.py:862 msgid "Build Line" msgstr "" -#: build/serializers.py:828 +#: build/serializers.py:872 msgid "Build output" msgstr "" -#: build/serializers.py:836 +#: build/serializers.py:880 msgid "Build output must point to the same build" msgstr "" -#: build/serializers.py:872 +#: build/serializers.py:916 msgid "Build Line Item" msgstr "" -#: build/serializers.py:886 +#: build/serializers.py:930 msgid "bom_item.part must point to the same part as the build order" msgstr "" -#: build/serializers.py:901 stock/serializers.py:1294 +#: build/serializers.py:945 stock/serializers.py:1325 msgid "Item must be in stock" msgstr "" -#: build/serializers.py:949 order/serializers.py:1351 +#: build/serializers.py:993 order/serializers.py:1477 #, python-brace-format msgid "Available quantity ({q}) exceeded" msgstr "" -#: build/serializers.py:955 +#: build/serializers.py:999 msgid "Build output must be specified for allocation of tracked parts" msgstr "" -#: build/serializers.py:962 +#: build/serializers.py:1006 msgid "Build output cannot be specified for allocation of untracked parts" msgstr "" -#: build/serializers.py:986 order/serializers.py:1610 +#: build/serializers.py:1030 order/serializers.py:1750 msgid "Allocation items must be provided" msgstr "" -#: build/serializers.py:1049 +#: build/serializers.py:1093 msgid "Stock location where parts are to be sourced (leave blank to take from any location)" msgstr "" -#: build/serializers.py:1057 +#: build/serializers.py:1101 msgid "Exclude Location" msgstr "" -#: build/serializers.py:1058 +#: build/serializers.py:1102 msgid "Exclude stock items from this selected location" msgstr "" -#: build/serializers.py:1063 +#: build/serializers.py:1107 msgid "Interchangeable Stock" msgstr "" -#: build/serializers.py:1064 +#: build/serializers.py:1108 msgid "Stock items in multiple locations can be used interchangeably" msgstr "" -#: build/serializers.py:1069 +#: build/serializers.py:1113 msgid "Substitute Stock" msgstr "" -#: build/serializers.py:1070 +#: build/serializers.py:1114 msgid "Allow allocation of substitute parts" msgstr "" -#: build/serializers.py:1075 +#: build/serializers.py:1119 msgid "Optional Items" msgstr "" -#: build/serializers.py:1076 +#: build/serializers.py:1120 msgid "Allocate optional BOM items to build order" msgstr "" -#: build/serializers.py:1098 +#: build/serializers.py:1143 msgid "Failed to start auto-allocation task" msgstr "" -#: build/serializers.py:1181 +#: build/serializers.py:1226 stock/serializers.py:585 msgid "Supplier Part Number" msgstr "" -#: build/serializers.py:1182 company/models.py:506 +#: build/serializers.py:1227 company/models.py:503 stock/serializers.py:591 msgid "Manufacturer Part Number" msgstr "" -#: build/serializers.py:1183 stock/admin.py:53 stock/admin.py:175 -#: stock/serializers.py:457 +#: build/serializers.py:1228 stock/admin.py:53 stock/admin.py:176 +#: stock/serializers.py:467 msgid "Location Name" msgstr "" -#: build/serializers.py:1184 +#: build/serializers.py:1229 build/serializers.py:1327 msgid "Build Reference" msgstr "" -#: build/serializers.py:1185 +#: build/serializers.py:1230 msgid "BOM Reference" msgstr "" -#: build/serializers.py:1186 company/models.py:852 -#: company/templates/company/supplier_part.html:160 order/serializers.py:690 -#: stock/admin.py:228 stock/models.py:818 stock/serializers.py:1579 -#: stock/templates/stock/item_base.html:240 -#: templates/js/translated/company.js:1646 -#: templates/js/translated/purchase_order.js:1169 -#: templates/js/translated/purchase_order.js:1332 +#: build/serializers.py:1231 company/models.py:849 +#: company/templates/company/supplier_part.html:161 order/serializers.py:775 +#: stock/admin.py:229 stock/models.py:895 stock/serializers.py:1610 +#: stock/templates/stock/item_base.html:237 +#: templates/js/translated/company.js:1647 +#: templates/js/translated/purchase_order.js:1152 +#: templates/js/translated/purchase_order.js:1315 #: templates/js/translated/stock.js:1214 templates/js/translated/stock.js:1246 -#: templates/js/translated/stock.js:2509 +#: templates/js/translated/stock.js:2510 msgid "Packaging" msgstr "" -#: build/serializers.py:1189 part/admin.py:39 part/admin.py:398 -#: part/models.py:4101 part/stocktake.py:218 stock/admin.py:152 +#: build/serializers.py:1234 part/admin.py:39 part/admin.py:398 +#: part/models.py:4159 part/stocktake.py:218 stock/admin.py:153 msgid "Part ID" msgstr "" -#: build/serializers.py:1191 build/serializers.py:1280 part/admin.py:402 -#: part/models.py:4103 +#: build/serializers.py:1236 build/serializers.py:1332 part/admin.py:402 +#: part/models.py:4161 msgid "Part IPN" msgstr "" -#: build/serializers.py:1192 build/serializers.py:1282 part/admin.py:45 +#: build/serializers.py:1237 build/serializers.py:1334 part/admin.py:45 #: part/stocktake.py:220 msgid "Part Description" msgstr "" -#: build/serializers.py:1195 +#: build/serializers.py:1240 msgid "BOM Part ID" msgstr "" -#: build/serializers.py:1196 +#: build/serializers.py:1241 msgid "BOM Part Name" msgstr "" -#: build/serializers.py:1199 +#: build/serializers.py:1244 #: report/templates/report/inventree_return_order_report.html:25 -#: report/templates/report/inventree_test_report.html:88 stock/models.py:845 -#: stock/serializers.py:151 stock/templates/stock/item_base.html:311 -#: templates/js/translated/build.js:520 templates/js/translated/build.js:1540 -#: templates/js/translated/build.js:2527 -#: templates/js/translated/model_renderers.js:231 +#: report/templates/report/inventree_sales_order_shipment_report.html:45 +#: report/templates/report/inventree_test_report.html:88 stock/models.py:922 +#: stock/serializers.py:152 stock/templates/stock/item_base.html:308 +#: templates/js/translated/build.js:523 templates/js/translated/build.js:1543 +#: templates/js/translated/build.js:2534 +#: templates/js/translated/model_renderers.js:234 #: templates/js/translated/return_order.js:539 #: templates/js/translated/return_order.js:722 -#: templates/js/translated/sales_order.js:315 -#: templates/js/translated/sales_order.js:1647 -#: templates/js/translated/sales_order.js:1732 +#: templates/js/translated/sales_order.js:1628 +#: templates/js/translated/sales_order.js:1713 #: templates/js/translated/stock.js:602 msgid "Serial Number" msgstr "" -#: build/serializers.py:1212 stock/serializers.py:593 -#: templates/js/translated/build.js:1017 templates/js/translated/build.js:1164 -#: templates/js/translated/build.js:2516 +#: build/serializers.py:1257 stock/serializers.py:620 +#: templates/js/translated/build.js:1020 templates/js/translated/build.js:1167 +#: templates/js/translated/build.js:2523 msgid "Allocated Quantity" msgstr "" -#: build/serializers.py:1213 stock/templates/stock/item_base.html:340 +#: build/serializers.py:1258 stock/templates/stock/item_base.html:337 msgid "Available Quantity" msgstr "" -#: build/serializers.py:1283 +#: build/serializers.py:1335 msgid "Part Category ID" msgstr "" -#: build/serializers.py:1284 +#: build/serializers.py:1336 msgid "Part Category Name" msgstr "" -#: build/serializers.py:1291 common/models.py:1513 part/admin.py:113 -#: part/models.py:1166 templates/js/translated/table_filters.js:150 +#: build/serializers.py:1345 common/models.py:1582 part/admin.py:113 +#: part/models.py:1227 templates/js/translated/build.js:2738 +#: templates/js/translated/table_filters.js:150 #: templates/js/translated/table_filters.js:230 #: templates/js/translated/table_filters.js:783 msgid "Trackable" msgstr "" -#: build/serializers.py:1292 +#: build/serializers.py:1346 msgid "Inherited" msgstr "" -#: build/serializers.py:1293 part/models.py:4313 +#: build/serializers.py:1347 part/models.py:4370 #: part/templates/part/upload_bom.html:56 templates/js/translated/bom.js:1046 -#: templates/js/translated/build.js:2711 +#: templates/js/translated/build.js:2720 msgid "Allow Variants" msgstr "" -#: build/serializers.py:1297 part/models.py:4110 part/models.py:4584 +#: build/serializers.py:1351 part/models.py:4168 part/models.py:4646 #: stock/api.py:794 msgid "BOM Item" msgstr "" -#: build/serializers.py:1306 build/templates/build/detail.html:236 +#: build/serializers.py:1370 build/templates/build/detail.html:236 #: build/templates/build/sidebar.html:16 templates/js/translated/index.js:130 msgid "Allocated Stock" msgstr "" -#: build/serializers.py:1311 order/serializers.py:1175 part/admin.py:132 -#: part/bom.py:181 part/serializers.py:899 part/serializers.py:1602 -#: part/templates/part/part_base.html:210 templates/js/translated/bom.js:1208 -#: templates/js/translated/build.js:2804 templates/js/translated/part.js:712 +#: build/serializers.py:1375 order/serializers.py:1209 part/admin.py:132 +#: part/bom.py:186 part/serializers.py:951 part/serializers.py:1660 +#: part/templates/part/part_base.html:211 templates/js/translated/bom.js:1208 +#: templates/js/translated/build.js:2822 templates/js/translated/part.js:712 #: templates/js/translated/part.js:2155 #: templates/js/translated/table_filters.js:177 msgid "On Order" msgstr "" -#: build/serializers.py:1316 order/serializers.py:1176 part/serializers.py:1604 -#: templates/js/translated/build.js:2808 +#: build/serializers.py:1380 order/serializers.py:1210 part/serializers.py:1662 +#: templates/js/translated/build.js:2826 #: templates/js/translated/table_filters.js:367 msgid "In Production" msgstr "" -#: build/serializers.py:1321 part/bom.py:180 part/serializers.py:1629 -#: part/templates/part/part_base.html:192 -#: templates/js/translated/sales_order.js:1929 -msgid "Available Stock" -msgstr "" - -#: build/serializers.py:1325 -msgid "Available Substitute Stock" -msgstr "" - -#: build/serializers.py:1326 -msgid "Available Variant Stock" -msgstr "" - -#: build/serializers.py:1327 -msgid "Total Available Stock" -msgstr "" - -#: build/serializers.py:1328 part/serializers.py:906 +#: build/serializers.py:1384 part/serializers.py:958 msgid "External Stock" msgstr "" -#: build/status_codes.py:11 generic/states/tests.py:17 order/status_codes.py:12 -#: order/status_codes.py:42 order/status_codes.py:74 order/status_codes.py:98 +#: build/serializers.py:1385 part/bom.py:185 part/serializers.py:1687 +#: part/templates/part/part_base.html:193 +#: templates/js/translated/sales_order.js:1910 +msgid "Available Stock" +msgstr "" + +#: build/serializers.py:1386 +msgid "Available Substitute Stock" +msgstr "" + +#: build/serializers.py:1387 +msgid "Available Variant Stock" +msgstr "" + +#: build/status_codes.py:11 generic/states/tests.py:21 +#: generic/states/tests.py:131 order/status_codes.py:12 +#: order/status_codes.py:44 order/status_codes.py:76 order/status_codes.py:102 #: templates/js/translated/table_filters.js:601 msgid "Pending" msgstr "" @@ -1722,21 +1750,21 @@ msgstr "" msgid "Production" msgstr "" -#: build/status_codes.py:13 order/status_codes.py:14 order/status_codes.py:49 -#: order/status_codes.py:79 +#: build/status_codes.py:13 order/status_codes.py:14 order/status_codes.py:51 +#: order/status_codes.py:81 msgid "On Hold" msgstr "" -#: build/status_codes.py:14 order/status_codes.py:16 order/status_codes.py:51 -#: order/status_codes.py:82 +#: build/status_codes.py:14 order/status_codes.py:16 order/status_codes.py:53 +#: order/status_codes.py:84 msgid "Cancelled" msgstr "" -#: build/status_codes.py:15 generic/states/tests.py:19 importer/models.py:509 -#: importer/status_codes.py:19 order/status_codes.py:15 -#: order/status_codes.py:50 order/status_codes.py:81 -#: order/templates/order/order_base.html:163 -#: order/templates/order/sales_order_base.html:168 report/models.py:443 +#: build/status_codes.py:15 generic/states/tests.py:23 importer/models.py:518 +#: importer/status_codes.py:27 order/status_codes.py:15 +#: order/status_codes.py:52 order/status_codes.py:83 +#: order/templates/order/order_base.html:172 +#: order/templates/order/sales_order_base.html:169 report/models.py:451 msgid "Complete" msgstr "" @@ -1744,165 +1772,162 @@ msgstr "" msgid "Stock required for build order" msgstr "" -#: build/tasks.py:201 +#: build/tasks.py:260 msgid "Overdue Build Order" msgstr "" -#: build/tasks.py:206 +#: build/tasks.py:265 #, python-brace-format msgid "Build order {bo} is now overdue" msgstr "" -#: build/templates/build/build_base.html:18 +#: build/templates/build/build_base.html:19 msgid "Part thumbnail" msgstr "" -#: build/templates/build/build_base.html:38 -#: company/templates/company/supplier_part.html:35 -#: order/templates/order/order_base.html:29 -#: order/templates/order/return_order_base.html:38 -#: order/templates/order/sales_order_base.html:38 -#: part/templates/part/part_base.html:41 -#: stock/templates/stock/item_base.html:40 -#: stock/templates/stock/location.html:52 +#: build/templates/build/build_base.html:39 +#: company/templates/company/supplier_part.html:36 +#: order/templates/order/order_base.html:30 +#: order/templates/order/return_order_base.html:39 +#: order/templates/order/sales_order_base.html:39 +#: part/templates/part/part_base.html:42 +#: stock/templates/stock/item_base.html:41 +#: stock/templates/stock/location.html:53 #: templates/js/translated/filters.js:338 msgid "Barcode actions" msgstr "" -#: build/templates/build/build_base.html:42 -#: company/templates/company/supplier_part.html:39 -#: order/templates/order/order_base.html:33 -#: order/templates/order/return_order_base.html:42 -#: order/templates/order/sales_order_base.html:42 -#: part/templates/part/part_base.html:44 -#: stock/templates/stock/item_base.html:44 -#: stock/templates/stock/location.html:54 templates/qr_button.html:1 +#: build/templates/build/build_base.html:43 +#: company/templates/company/supplier_part.html:40 +#: order/templates/order/order_base.html:34 +#: order/templates/order/return_order_base.html:43 +#: order/templates/order/sales_order_base.html:43 +#: part/templates/part/part_base.html:45 +#: stock/templates/stock/item_base.html:45 +#: stock/templates/stock/location.html:55 templates/qr_button.html:1 msgid "Show QR Code" msgstr "" -#: build/templates/build/build_base.html:45 -#: company/templates/company/supplier_part.html:41 -#: order/templates/order/order_base.html:36 -#: order/templates/order/return_order_base.html:45 -#: order/templates/order/sales_order_base.html:45 -#: part/templates/part/part_base.html:47 -#: stock/templates/stock/item_base.html:47 -#: stock/templates/stock/location.html:56 +#: build/templates/build/build_base.html:46 +#: company/templates/company/supplier_part.html:42 +#: order/templates/order/order_base.html:37 +#: order/templates/order/return_order_base.html:46 +#: order/templates/order/sales_order_base.html:46 +#: part/templates/part/part_base.html:48 +#: stock/templates/stock/item_base.html:48 +#: stock/templates/stock/location.html:57 #: templates/js/translated/barcode.js:527 #: templates/js/translated/barcode.js:532 msgid "Unlink Barcode" msgstr "" -#: build/templates/build/build_base.html:47 -#: company/templates/company/supplier_part.html:43 -#: order/templates/order/order_base.html:38 -#: order/templates/order/return_order_base.html:47 -#: order/templates/order/sales_order_base.html:47 -#: part/templates/part/part_base.html:49 -#: stock/templates/stock/item_base.html:49 -#: stock/templates/stock/location.html:58 +#: build/templates/build/build_base.html:48 +#: company/templates/company/supplier_part.html:44 +#: order/templates/order/order_base.html:39 +#: order/templates/order/return_order_base.html:48 +#: order/templates/order/sales_order_base.html:48 +#: part/templates/part/part_base.html:50 +#: stock/templates/stock/item_base.html:50 +#: stock/templates/stock/location.html:59 msgid "Link Barcode" msgstr "" -#: build/templates/build/build_base.html:56 -#: order/templates/order/order_base.html:46 -#: order/templates/order/return_order_base.html:55 -#: order/templates/order/sales_order_base.html:55 +#: build/templates/build/build_base.html:57 +#: order/templates/order/order_base.html:47 +#: order/templates/order/return_order_base.html:56 +#: order/templates/order/sales_order_base.html:56 msgid "Print actions" msgstr "" -#: build/templates/build/build_base.html:60 +#: build/templates/build/build_base.html:61 msgid "Print build order report" msgstr "" -#: build/templates/build/build_base.html:67 +#: build/templates/build/build_base.html:68 msgid "Build actions" msgstr "" -#: build/templates/build/build_base.html:71 +#: build/templates/build/build_base.html:72 msgid "Edit Build" msgstr "" -#: build/templates/build/build_base.html:73 +#: build/templates/build/build_base.html:74 msgid "Duplicate Build" msgstr "" -#: build/templates/build/build_base.html:76 +#: build/templates/build/build_base.html:77 msgid "Hold Build" msgstr "" -#: build/templates/build/build_base.html:79 +#: build/templates/build/build_base.html:80 msgid "Cancel Build" msgstr "" -#: build/templates/build/build_base.html:82 +#: build/templates/build/build_base.html:83 msgid "Delete Build" msgstr "" -#: build/templates/build/build_base.html:87 -msgid "Isueue Build" -msgstr "" - #: build/templates/build/build_base.html:88 +#: build/templates/build/build_base.html:89 msgid "Issue Build" msgstr "" -#: build/templates/build/build_base.html:91 #: build/templates/build/build_base.html:92 +#: build/templates/build/build_base.html:93 msgid "Complete Build" msgstr "" -#: build/templates/build/build_base.html:115 +#: build/templates/build/build_base.html:116 msgid "Build Description" msgstr "" -#: build/templates/build/build_base.html:125 +#: build/templates/build/build_base.html:126 msgid "No build outputs have been created for this build order" msgstr "" -#: build/templates/build/build_base.html:132 +#: build/templates/build/build_base.html:133 msgid "Build Order is ready to mark as completed" msgstr "" -#: build/templates/build/build_base.html:137 +#: build/templates/build/build_base.html:138 msgid "Build Order cannot be completed as outstanding outputs remain" msgstr "" -#: build/templates/build/build_base.html:142 +#: build/templates/build/build_base.html:143 msgid "Required build quantity has not yet been completed" msgstr "" -#: build/templates/build/build_base.html:147 +#: build/templates/build/build_base.html:148 msgid "Stock has not been fully allocated to this Build Order" msgstr "" -#: build/templates/build/build_base.html:168 -#: build/templates/build/detail.html:138 order/models.py:308 -#: order/models.py:1391 order/serializers.py:174 -#: order/templates/order/order_base.html:191 -#: order/templates/order/return_order_base.html:167 -#: order/templates/order/sales_order_base.html:199 +#: build/templates/build/build_base.html:169 +#: build/templates/build/detail.html:138 order/models.py:315 +#: order/models.py:1408 order/serializers.py:254 +#: order/templates/order/order_base.html:200 +#: order/templates/order/return_order_base.html:168 +#: order/templates/order/sales_order_base.html:200 #: report/templates/report/inventree_build_order_report.html:125 -#: templates/js/translated/build.js:2411 templates/js/translated/part.js:1837 -#: templates/js/translated/purchase_order.js:1809 -#: templates/js/translated/purchase_order.js:2217 +#: templates/js/translated/build.js:2414 templates/js/translated/part.js:1837 +#: templates/js/translated/purchase_order.js:1793 +#: templates/js/translated/purchase_order.js:2201 #: templates/js/translated/return_order.js:346 #: templates/js/translated/return_order.js:749 -#: templates/js/translated/sales_order.js:871 -#: templates/js/translated/sales_order.js:1903 +#: templates/js/translated/sales_order.js:830 +#: templates/js/translated/sales_order.js:1884 msgid "Target Date" msgstr "" -#: build/templates/build/build_base.html:173 +#: build/templates/build/build_base.html:174 #, python-format msgid "This build was due on %(target)s" msgstr "" -#: build/templates/build/build_base.html:173 -#: build/templates/build/build_base.html:230 -#: order/templates/order/order_base.html:127 -#: order/templates/order/return_order_base.html:120 -#: order/templates/order/sales_order_base.html:129 +#: build/templates/build/build_base.html:174 +#: build/templates/build/build_base.html:231 +#: order/templates/order/order_base.html:128 +#: order/templates/order/return_order_base.html:121 +#: order/templates/order/sales_order_base.html:130 #: templates/js/translated/table_filters.js:97 #: templates/js/translated/table_filters.js:545 #: templates/js/translated/table_filters.js:629 @@ -1910,49 +1935,50 @@ msgstr "" msgid "Overdue" msgstr "" -#: build/templates/build/build_base.html:185 +#: build/templates/build/build_base.html:186 #: build/templates/build/detail.html:67 build/templates/build/sidebar.html:13 msgid "Completed Outputs" msgstr "" -#: build/templates/build/build_base.html:198 -#: build/templates/build/detail.html:101 order/api.py:1406 order/models.py:892 -#: order/models.py:1650 order/models.py:1765 order/models.py:1924 -#: order/templates/order/sales_order_base.html:9 -#: order/templates/order/sales_order_base.html:28 +#: build/templates/build/build_base.html:199 +#: build/templates/build/detail.html:101 order/api.py:1528 order/models.py:914 +#: order/models.py:1666 order/models.py:1794 order/models.py:1957 +#: order/templates/order/sales_order_base.html:10 +#: order/templates/order/sales_order_base.html:29 #: report/templates/report/inventree_build_order_report.html:135 #: report/templates/report/inventree_sales_order_report.html:14 -#: stock/templates/stock/item_base.html:369 +#: report/templates/report/inventree_sales_order_shipment_report.html:15 +#: stock/templates/stock/item_base.html:366 #: templates/email/overdue_sales_order.html:15 -#: templates/js/translated/pricing.js:929 -#: templates/js/translated/sales_order.js:805 -#: templates/js/translated/sales_order.js:1028 -#: templates/js/translated/stock.js:3008 +#: templates/js/translated/pricing.js:927 +#: templates/js/translated/sales_order.js:764 +#: templates/js/translated/sales_order.js:1001 +#: templates/js/translated/stock.js:3009 msgid "Sales Order" msgstr "" -#: build/templates/build/build_base.html:219 -#: build/templates/build/detail.html:94 templates/js/translated/build.js:2328 +#: build/templates/build/build_base.html:220 +#: build/templates/build/detail.html:94 templates/js/translated/build.js:2331 msgid "Priority" msgstr "" -#: build/templates/build/build_base.html:267 +#: build/templates/build/build_base.html:268 msgid "Issue Build Order" msgstr "" -#: build/templates/build/build_base.html:271 +#: build/templates/build/build_base.html:272 msgid "Issue this Build Order?" msgstr "" -#: build/templates/build/build_base.html:302 +#: build/templates/build/build_base.html:303 msgid "Delete Build Order" msgstr "" -#: build/templates/build/build_base.html:312 +#: build/templates/build/build_base.html:313 msgid "Build Order QR Code" msgstr "" -#: build/templates/build/build_base.html:324 +#: build/templates/build/build_base.html:325 msgid "Link Barcode to Build Order" msgstr "" @@ -1968,8 +1994,9 @@ msgstr "" msgid "Stock can be taken from any available location." msgstr "" -#: build/templates/build/detail.html:49 order/models.py:1532 -#: templates/js/translated/purchase_order.js:2259 +#: build/templates/build/detail.html:49 order/models.py:548 +#: order/models.py:1548 order/templates/order/order_base.html:135 +#: templates/js/translated/purchase_order.js:2243 msgid "Destination" msgstr "" @@ -1981,23 +2008,24 @@ msgstr "" msgid "Allocated Parts" msgstr "" -#: build/templates/build/detail.html:80 stock/admin.py:162 -#: stock/templates/stock/item_base.html:162 -#: templates/js/translated/build.js:1553 -#: templates/js/translated/model_renderers.js:242 -#: templates/js/translated/purchase_order.js:1326 +#: build/templates/build/detail.html:80 +#: report/templates/report/inventree_sales_order_shipment_report.html:47 +#: stock/admin.py:163 stock/templates/stock/item_base.html:159 +#: templates/js/translated/build.js:1556 +#: templates/js/translated/model_renderers.js:245 +#: templates/js/translated/purchase_order.js:1309 #: templates/js/translated/stock.js:1139 templates/js/translated/stock.js:1240 -#: templates/js/translated/stock.js:2275 templates/js/translated/stock.js:3211 +#: templates/js/translated/stock.js:2276 templates/js/translated/stock.js:3212 #: templates/js/translated/table_filters.js:320 #: templates/js/translated/table_filters.js:411 msgid "Batch" msgstr "" #: build/templates/build/detail.html:133 -#: order/templates/order/order_base.html:178 -#: order/templates/order/return_order_base.html:154 -#: order/templates/order/sales_order_base.html:193 -#: templates/js/translated/build.js:2371 +#: order/templates/order/order_base.html:187 +#: order/templates/order/return_order_base.html:155 +#: order/templates/order/sales_order_base.html:194 +#: templates/js/translated/build.js:2374 msgid "Created" msgstr "" @@ -2005,8 +2033,8 @@ msgstr "" msgid "No target date set" msgstr "" -#: build/templates/build/detail.html:149 -#: order/templates/order/sales_order_base.html:209 +#: build/templates/build/detail.html:149 order/api.py:794 +#: order/templates/order/sales_order_base.html:210 #: templates/js/translated/table_filters.js:692 msgid "Completed" msgstr "" @@ -2052,7 +2080,7 @@ msgid "Order required parts" msgstr "" #: build/templates/build/detail.html:192 -#: templates/js/translated/purchase_order.js:795 +#: templates/js/translated/purchase_order.js:778 msgid "Order Parts" msgstr "" @@ -2120,7 +2148,7 @@ msgstr "" msgid "Build Order Details" msgstr "" -#: build/templates/build/sidebar.html:8 order/serializers.py:82 +#: build/templates/build/sidebar.html:8 order/serializers.py:113 #: order/templates/order/po_sidebar.html:5 #: order/templates/order/return_order_detail.html:18 #: order/templates/order/so_sidebar.html:5 @@ -2139,43 +2167,38 @@ msgstr "" msgid "Test Statistics" msgstr "" -#: common/api.py:693 +#: common/api.py:725 msgid "Is Link" msgstr "" -#: common/api.py:701 +#: common/api.py:733 msgid "Is File" msgstr "" -#: common/api.py:744 +#: common/api.py:776 msgid "User does not have permission to delete these attachments" msgstr "" -#: common/api.py:761 +#: common/api.py:793 msgid "User does not have permission to delete this attachment" msgstr "" -#: common/currency.py:132 +#: common/currency.py:134 msgid "Invalid currency code" msgstr "" -#: common/currency.py:134 +#: common/currency.py:136 msgid "Duplicate currency code" msgstr "" -#: common/currency.py:139 +#: common/currency.py:141 msgid "No valid currency codes provided" msgstr "" -#: common/currency.py:156 +#: common/currency.py:158 msgid "No plugin" msgstr "" -#: common/files.py:63 -#, python-brace-format -msgid "Unsupported file format: {fmt}" -msgstr "" - #: common/files.py:65 msgid "Error reading file (invalid encoding)" msgstr "" @@ -2192,1883 +2215,2039 @@ msgstr "" msgid "Error reading file (data could be corrupted)" msgstr "" -#: common/forms.py:12 +#: common/forms.py:12 common/forms.py:25 msgid "File" msgstr "" -#: common/forms.py:12 +#: common/forms.py:12 common/forms.py:26 msgid "Select file to upload" msgstr "" -#: common/forms.py:25 -msgid "{name.title()} File" -msgstr "" - -#: common/forms.py:26 -#, python-brace-format -msgid "Select {name} file to upload" -msgstr "" - -#: common/models.py:86 +#: common/models.py:89 msgid "Updated" msgstr "" -#: common/models.py:87 +#: common/models.py:90 msgid "Timestamp of last update" msgstr "" -#: common/models.py:120 +#: common/models.py:123 msgid "Site URL is locked by configuration" msgstr "" -#: common/models.py:150 +#: common/models.py:153 msgid "Unique project code" msgstr "" -#: common/models.py:157 +#: common/models.py:160 msgid "Project description" msgstr "" -#: common/models.py:166 +#: common/models.py:169 msgid "User or group responsible for this project" msgstr "" -#: common/models.py:783 -msgid "Settings key (must be unique - case insensitive)" +#: common/models.py:783 common/models.py:2236 common/models.py:2613 +msgid "Settings key" msgstr "" #: common/models.py:787 msgid "Settings value" msgstr "" -#: common/models.py:839 +#: common/models.py:842 msgid "Chosen value is not a valid option" msgstr "" -#: common/models.py:855 +#: common/models.py:858 msgid "Value must be a boolean value" msgstr "" -#: common/models.py:863 +#: common/models.py:866 msgid "Value must be an integer value" msgstr "" -#: common/models.py:900 +#: common/models.py:874 +msgid "Value must be a valid number" +msgstr "" + +#: common/models.py:899 +msgid "Value does not pass validation checks" +msgstr "" + +#: common/models.py:921 msgid "Key string must be unique" msgstr "" -#: common/models.py:1132 +#: common/models.py:1189 msgid "No group" msgstr "" -#: common/models.py:1231 +#: common/models.py:1288 msgid "Restart required" msgstr "" -#: common/models.py:1233 +#: common/models.py:1290 msgid "A setting has been changed which requires a server restart" msgstr "" -#: common/models.py:1240 +#: common/models.py:1297 msgid "Pending migrations" msgstr "" -#: common/models.py:1241 +#: common/models.py:1298 msgid "Number of pending database migrations" msgstr "" -#: common/models.py:1246 +#: common/models.py:1303 msgid "Server Instance Name" msgstr "" -#: common/models.py:1248 +#: common/models.py:1305 msgid "String descriptor for the server instance" msgstr "" -#: common/models.py:1252 +#: common/models.py:1309 msgid "Use instance name" msgstr "" -#: common/models.py:1253 +#: common/models.py:1310 msgid "Use the instance name in the title-bar" msgstr "" -#: common/models.py:1258 +#: common/models.py:1315 msgid "Restrict showing `about`" msgstr "" -#: common/models.py:1259 +#: common/models.py:1316 msgid "Show the `about` modal only to superusers" msgstr "" -#: common/models.py:1264 company/models.py:111 company/models.py:112 +#: common/models.py:1321 company/models.py:108 company/models.py:109 msgid "Company name" msgstr "" -#: common/models.py:1265 +#: common/models.py:1322 msgid "Internal company name" msgstr "" -#: common/models.py:1269 +#: common/models.py:1326 msgid "Base URL" msgstr "" -#: common/models.py:1270 +#: common/models.py:1327 msgid "Base URL for server instance" msgstr "" -#: common/models.py:1276 +#: common/models.py:1333 msgid "Default Currency" msgstr "" -#: common/models.py:1277 +#: common/models.py:1334 msgid "Select base currency for pricing calculations" msgstr "" -#: common/models.py:1283 +#: common/models.py:1340 msgid "Supported Currencies" msgstr "" -#: common/models.py:1284 +#: common/models.py:1341 msgid "List of supported currency codes" msgstr "" -#: common/models.py:1290 +#: common/models.py:1347 msgid "Currency Update Interval" msgstr "" -#: common/models.py:1292 +#: common/models.py:1349 msgid "How often to update exchange rates (set to zero to disable)" msgstr "" -#: common/models.py:1295 common/models.py:1351 common/models.py:1364 -#: common/models.py:1372 common/models.py:1381 common/models.py:1390 -#: common/models.py:1627 common/models.py:1649 common/models.py:1764 -#: common/models.py:2146 +#: common/models.py:1352 common/models.py:1408 common/models.py:1421 +#: common/models.py:1429 common/models.py:1438 common/models.py:1447 +#: common/models.py:1696 common/models.py:1718 common/models.py:1819 +#: common/models.py:2208 msgid "days" msgstr "" -#: common/models.py:1299 +#: common/models.py:1356 msgid "Currency Update Plugin" msgstr "" -#: common/models.py:1300 +#: common/models.py:1357 msgid "Currency update plugin to use" msgstr "" -#: common/models.py:1305 +#: common/models.py:1362 msgid "Download from URL" msgstr "" -#: common/models.py:1307 +#: common/models.py:1364 msgid "Allow download of remote images and files from external URL" msgstr "" -#: common/models.py:1313 +#: common/models.py:1370 msgid "Download Size Limit" msgstr "" -#: common/models.py:1314 +#: common/models.py:1371 msgid "Maximum allowable download size for remote image" msgstr "" -#: common/models.py:1320 +#: common/models.py:1377 msgid "User-agent used to download from URL" msgstr "" -#: common/models.py:1322 +#: common/models.py:1379 msgid "Allow to override the user-agent used to download images and files from external URL (leave blank for the default)" msgstr "" -#: common/models.py:1327 +#: common/models.py:1384 msgid "Strict URL Validation" msgstr "" -#: common/models.py:1328 +#: common/models.py:1385 msgid "Require schema specification when validating URLs" msgstr "" -#: common/models.py:1333 +#: common/models.py:1390 msgid "Require confirm" msgstr "" -#: common/models.py:1334 +#: common/models.py:1391 msgid "Require explicit user confirmation for certain action." msgstr "" -#: common/models.py:1339 +#: common/models.py:1396 msgid "Tree Depth" msgstr "" -#: common/models.py:1341 +#: common/models.py:1398 msgid "Default tree depth for treeview. Deeper levels can be lazy loaded as they are needed." msgstr "" -#: common/models.py:1347 +#: common/models.py:1404 msgid "Update Check Interval" msgstr "" -#: common/models.py:1348 +#: common/models.py:1405 msgid "How often to check for updates (set to zero to disable)" msgstr "" -#: common/models.py:1354 +#: common/models.py:1411 msgid "Automatic Backup" msgstr "" -#: common/models.py:1355 +#: common/models.py:1412 msgid "Enable automatic backup of database and media files" msgstr "" -#: common/models.py:1360 +#: common/models.py:1417 msgid "Auto Backup Interval" msgstr "" -#: common/models.py:1361 +#: common/models.py:1418 msgid "Specify number of days between automated backup events" msgstr "" -#: common/models.py:1367 +#: common/models.py:1424 msgid "Task Deletion Interval" msgstr "" -#: common/models.py:1369 +#: common/models.py:1426 msgid "Background task results will be deleted after specified number of days" msgstr "" -#: common/models.py:1376 +#: common/models.py:1433 msgid "Error Log Deletion Interval" msgstr "" -#: common/models.py:1378 +#: common/models.py:1435 msgid "Error logs will be deleted after specified number of days" msgstr "" -#: common/models.py:1385 +#: common/models.py:1442 msgid "Notification Deletion Interval" msgstr "" -#: common/models.py:1387 +#: common/models.py:1444 msgid "User notifications will be deleted after specified number of days" msgstr "" -#: common/models.py:1394 templates/InvenTree/settings/sidebar.html:31 +#: common/models.py:1451 templates/InvenTree/settings/sidebar.html:31 msgid "Barcode Support" msgstr "" -#: common/models.py:1395 +#: common/models.py:1452 msgid "Enable barcode scanner support in the web interface" msgstr "" -#: common/models.py:1400 +#: common/models.py:1457 +msgid "Store Barcode Results" +msgstr "" + +#: common/models.py:1458 +msgid "Store barcode scan results in the database" +msgstr "" + +#: common/models.py:1463 +msgid "Barcode Scans Maximum Count" +msgstr "" + +#: common/models.py:1464 +msgid "Maximum number of barcode scan results to store" +msgstr "" + +#: common/models.py:1469 msgid "Barcode Input Delay" msgstr "" -#: common/models.py:1401 +#: common/models.py:1470 msgid "Barcode input processing delay time" msgstr "" -#: common/models.py:1407 +#: common/models.py:1476 msgid "Barcode Webcam Support" msgstr "" -#: common/models.py:1408 +#: common/models.py:1477 msgid "Allow barcode scanning via webcam in browser" msgstr "" -#: common/models.py:1413 +#: common/models.py:1482 msgid "Barcode Show Data" msgstr "" -#: common/models.py:1414 +#: common/models.py:1483 msgid "Display barcode data in browser as text" msgstr "" -#: common/models.py:1419 +#: common/models.py:1488 msgid "Barcode Generation Plugin" msgstr "" -#: common/models.py:1420 +#: common/models.py:1489 msgid "Plugin to use for internal barcode data generation" msgstr "" -#: common/models.py:1425 +#: common/models.py:1494 msgid "Part Revisions" msgstr "" -#: common/models.py:1426 +#: common/models.py:1495 msgid "Enable revision field for Part" msgstr "" -#: common/models.py:1431 +#: common/models.py:1500 msgid "Assembly Revision Only" msgstr "" -#: common/models.py:1432 +#: common/models.py:1501 msgid "Only allow revisions for assembly parts" msgstr "" -#: common/models.py:1437 +#: common/models.py:1506 msgid "Allow Deletion from Assembly" msgstr "" -#: common/models.py:1438 +#: common/models.py:1507 msgid "Allow deletion of parts which are used in an assembly" msgstr "" -#: common/models.py:1443 +#: common/models.py:1512 msgid "IPN Regex" msgstr "" -#: common/models.py:1444 +#: common/models.py:1513 msgid "Regular expression pattern for matching Part IPN" msgstr "" -#: common/models.py:1447 +#: common/models.py:1516 msgid "Allow Duplicate IPN" msgstr "" -#: common/models.py:1448 +#: common/models.py:1517 msgid "Allow multiple parts to share the same IPN" msgstr "" -#: common/models.py:1453 +#: common/models.py:1522 msgid "Allow Editing IPN" msgstr "" -#: common/models.py:1454 +#: common/models.py:1523 msgid "Allow changing the IPN value while editing a part" msgstr "" -#: common/models.py:1459 +#: common/models.py:1528 msgid "Copy Part BOM Data" msgstr "" -#: common/models.py:1460 +#: common/models.py:1529 msgid "Copy BOM data by default when duplicating a part" msgstr "" -#: common/models.py:1465 +#: common/models.py:1534 msgid "Copy Part Parameter Data" msgstr "" -#: common/models.py:1466 +#: common/models.py:1535 msgid "Copy parameter data by default when duplicating a part" msgstr "" -#: common/models.py:1471 +#: common/models.py:1540 msgid "Copy Part Test Data" msgstr "" -#: common/models.py:1472 +#: common/models.py:1541 msgid "Copy test data by default when duplicating a part" msgstr "" -#: common/models.py:1477 +#: common/models.py:1546 msgid "Copy Category Parameter Templates" msgstr "" -#: common/models.py:1478 +#: common/models.py:1547 msgid "Copy category parameter templates when creating a part" msgstr "" -#: common/models.py:1483 part/admin.py:108 part/models.py:3945 -#: report/models.py:293 report/models.py:360 report/serializers.py:90 -#: report/serializers.py:131 stock/serializers.py:232 +#: common/models.py:1552 part/admin.py:108 part/models.py:4003 +#: report/models.py:301 report/models.py:368 report/serializers.py:91 +#: report/serializers.py:132 stock/serializers.py:233 #: templates/js/translated/table_filters.js:138 #: templates/js/translated/table_filters.js:775 msgid "Template" msgstr "" -#: common/models.py:1484 +#: common/models.py:1553 msgid "Parts are templates by default" msgstr "" -#: common/models.py:1490 +#: common/models.py:1559 msgid "Parts can be assembled from other components by default" msgstr "" -#: common/models.py:1495 part/admin.py:95 part/models.py:1160 -#: part/serializers.py:1596 templates/js/translated/table_filters.js:737 +#: common/models.py:1564 part/admin.py:95 part/models.py:1221 +#: part/serializers.py:1654 templates/js/translated/table_filters.js:737 msgid "Component" msgstr "" -#: common/models.py:1496 +#: common/models.py:1565 msgid "Parts can be used as sub-components by default" msgstr "" -#: common/models.py:1501 part/admin.py:100 part/models.py:1178 +#: common/models.py:1570 part/admin.py:100 part/models.py:1239 msgid "Purchaseable" msgstr "" -#: common/models.py:1502 +#: common/models.py:1571 msgid "Parts are purchaseable by default" msgstr "" -#: common/models.py:1507 part/admin.py:104 part/models.py:1184 +#: common/models.py:1576 part/admin.py:104 part/models.py:1245 #: templates/js/translated/table_filters.js:763 msgid "Salable" msgstr "" -#: common/models.py:1508 +#: common/models.py:1577 msgid "Parts are salable by default" msgstr "" -#: common/models.py:1514 +#: common/models.py:1583 msgid "Parts are trackable by default" msgstr "" -#: common/models.py:1519 part/admin.py:117 part/models.py:1200 -#: part/templates/part/part_base.html:154 +#: common/models.py:1588 part/admin.py:117 part/models.py:1261 +#: part/templates/part/part_base.html:155 #: templates/js/translated/table_filters.js:142 #: templates/js/translated/table_filters.js:787 msgid "Virtual" msgstr "" -#: common/models.py:1520 +#: common/models.py:1589 msgid "Parts are virtual by default" msgstr "" -#: common/models.py:1525 +#: common/models.py:1594 msgid "Show Import in Views" msgstr "" -#: common/models.py:1526 +#: common/models.py:1595 msgid "Display the import wizard in some part views" msgstr "" -#: common/models.py:1531 +#: common/models.py:1600 msgid "Show related parts" msgstr "" -#: common/models.py:1532 +#: common/models.py:1601 msgid "Display related parts for a part" msgstr "" -#: common/models.py:1537 +#: common/models.py:1606 msgid "Initial Stock Data" msgstr "" -#: common/models.py:1538 +#: common/models.py:1607 msgid "Allow creation of initial stock when adding a new part" msgstr "" -#: common/models.py:1543 templates/js/translated/part.js:108 +#: common/models.py:1612 templates/js/translated/part.js:108 msgid "Initial Supplier Data" msgstr "" -#: common/models.py:1545 +#: common/models.py:1614 msgid "Allow creation of initial supplier data when adding a new part" msgstr "" -#: common/models.py:1551 +#: common/models.py:1620 msgid "Part Name Display Format" msgstr "" -#: common/models.py:1552 +#: common/models.py:1621 msgid "Format to display the part name" msgstr "" -#: common/models.py:1558 +#: common/models.py:1627 msgid "Part Category Default Icon" msgstr "" -#: common/models.py:1559 +#: common/models.py:1628 msgid "Part category default icon (empty means no icon)" msgstr "" -#: common/models.py:1564 +#: common/models.py:1633 msgid "Enforce Parameter Units" msgstr "" -#: common/models.py:1566 +#: common/models.py:1635 msgid "If units are provided, parameter values must match the specified units" msgstr "" -#: common/models.py:1572 +#: common/models.py:1641 msgid "Minimum Pricing Decimal Places" msgstr "" -#: common/models.py:1574 +#: common/models.py:1643 msgid "Minimum number of decimal places to display when rendering pricing data" msgstr "" -#: common/models.py:1585 +#: common/models.py:1654 msgid "Maximum Pricing Decimal Places" msgstr "" -#: common/models.py:1587 +#: common/models.py:1656 msgid "Maximum number of decimal places to display when rendering pricing data" msgstr "" -#: common/models.py:1598 +#: common/models.py:1667 msgid "Use Supplier Pricing" msgstr "" -#: common/models.py:1600 +#: common/models.py:1669 msgid "Include supplier price breaks in overall pricing calculations" msgstr "" -#: common/models.py:1606 +#: common/models.py:1675 msgid "Purchase History Override" msgstr "" -#: common/models.py:1608 +#: common/models.py:1677 msgid "Historical purchase order pricing overrides supplier price breaks" msgstr "" -#: common/models.py:1614 +#: common/models.py:1683 msgid "Use Stock Item Pricing" msgstr "" -#: common/models.py:1616 +#: common/models.py:1685 msgid "Use pricing from manually entered stock data for pricing calculations" msgstr "" -#: common/models.py:1622 +#: common/models.py:1691 msgid "Stock Item Pricing Age" msgstr "" -#: common/models.py:1624 +#: common/models.py:1693 msgid "Exclude stock items older than this number of days from pricing calculations" msgstr "" -#: common/models.py:1631 +#: common/models.py:1700 msgid "Use Variant Pricing" msgstr "" -#: common/models.py:1632 +#: common/models.py:1701 msgid "Include variant pricing in overall pricing calculations" msgstr "" -#: common/models.py:1637 +#: common/models.py:1706 msgid "Active Variants Only" msgstr "" -#: common/models.py:1639 +#: common/models.py:1708 msgid "Only use active variant parts for calculating variant pricing" msgstr "" -#: common/models.py:1645 +#: common/models.py:1714 msgid "Pricing Rebuild Interval" msgstr "" -#: common/models.py:1647 +#: common/models.py:1716 msgid "Number of days before part pricing is automatically updated" msgstr "" -#: common/models.py:1654 +#: common/models.py:1723 msgid "Internal Prices" msgstr "" -#: common/models.py:1655 +#: common/models.py:1724 msgid "Enable internal prices for parts" msgstr "" -#: common/models.py:1660 +#: common/models.py:1729 msgid "Internal Price Override" msgstr "" -#: common/models.py:1662 +#: common/models.py:1731 msgid "If available, internal prices override price range calculations" msgstr "" -#: common/models.py:1668 +#: common/models.py:1737 msgid "Enable label printing" msgstr "" -#: common/models.py:1669 +#: common/models.py:1738 msgid "Enable label printing from the web interface" msgstr "" -#: common/models.py:1674 +#: common/models.py:1743 msgid "Label Image DPI" msgstr "" -#: common/models.py:1676 +#: common/models.py:1745 msgid "DPI resolution when generating image files to supply to label printing plugins" msgstr "" -#: common/models.py:1682 +#: common/models.py:1751 msgid "Enable Reports" msgstr "" -#: common/models.py:1683 +#: common/models.py:1752 msgid "Enable generation of reports" msgstr "" -#: common/models.py:1688 templates/stats.html:25 +#: common/models.py:1757 templates/stats.html:25 msgid "Debug Mode" msgstr "" -#: common/models.py:1689 +#: common/models.py:1758 msgid "Generate reports in debug mode (HTML output)" msgstr "" -#: common/models.py:1694 +#: common/models.py:1763 msgid "Log Report Errors" msgstr "" -#: common/models.py:1695 +#: common/models.py:1764 msgid "Log errors which occur when generating reports" msgstr "" -#: common/models.py:1700 plugin/builtin/labels/label_sheet.py:28 -#: report/models.py:301 +#: common/models.py:1769 plugin/builtin/labels/label_sheet.py:28 +#: report/models.py:309 msgid "Page Size" msgstr "" -#: common/models.py:1701 +#: common/models.py:1770 msgid "Default page size for PDF reports" msgstr "" -#: common/models.py:1706 -msgid "Enable Test Reports" -msgstr "" - -#: common/models.py:1707 -msgid "Enable generation of test reports" -msgstr "" - -#: common/models.py:1712 -msgid "Attach Test Reports" -msgstr "" - -#: common/models.py:1714 -msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item" -msgstr "" - -#: common/models.py:1720 +#: common/models.py:1775 msgid "Globally Unique Serials" msgstr "" -#: common/models.py:1721 +#: common/models.py:1776 msgid "Serial numbers for stock items must be globally unique" msgstr "" -#: common/models.py:1726 +#: common/models.py:1781 msgid "Autofill Serial Numbers" msgstr "" -#: common/models.py:1727 +#: common/models.py:1782 msgid "Autofill serial numbers in forms" msgstr "" -#: common/models.py:1732 +#: common/models.py:1787 msgid "Delete Depleted Stock" msgstr "" -#: common/models.py:1734 +#: common/models.py:1789 msgid "Determines default behavior when a stock item is depleted" msgstr "" -#: common/models.py:1740 +#: common/models.py:1795 msgid "Batch Code Template" msgstr "" -#: common/models.py:1742 +#: common/models.py:1797 msgid "Template for generating default batch codes for stock items" msgstr "" -#: common/models.py:1747 +#: common/models.py:1802 msgid "Stock Expiry" msgstr "" -#: common/models.py:1748 +#: common/models.py:1803 msgid "Enable stock expiry functionality" msgstr "" -#: common/models.py:1753 +#: common/models.py:1808 msgid "Sell Expired Stock" msgstr "" -#: common/models.py:1754 +#: common/models.py:1809 msgid "Allow sale of expired stock" msgstr "" -#: common/models.py:1759 +#: common/models.py:1814 msgid "Stock Stale Time" msgstr "" -#: common/models.py:1761 +#: common/models.py:1816 msgid "Number of days stock items are considered stale before expiring" msgstr "" -#: common/models.py:1768 +#: common/models.py:1823 msgid "Build Expired Stock" msgstr "" -#: common/models.py:1769 +#: common/models.py:1824 msgid "Allow building with expired stock" msgstr "" -#: common/models.py:1774 +#: common/models.py:1829 msgid "Stock Ownership Control" msgstr "" -#: common/models.py:1775 +#: common/models.py:1830 msgid "Enable ownership control over stock locations and items" msgstr "" -#: common/models.py:1780 +#: common/models.py:1835 msgid "Stock Location Default Icon" msgstr "" -#: common/models.py:1781 +#: common/models.py:1836 msgid "Stock location default icon (empty means no icon)" msgstr "" -#: common/models.py:1786 +#: common/models.py:1841 msgid "Show Installed Stock Items" msgstr "" -#: common/models.py:1787 +#: common/models.py:1842 msgid "Display installed stock items in stock tables" msgstr "" -#: common/models.py:1792 +#: common/models.py:1847 msgid "Check BOM when installing items" msgstr "" -#: common/models.py:1794 +#: common/models.py:1849 msgid "Installed stock items must exist in the BOM for the parent part" msgstr "" -#: common/models.py:1800 +#: common/models.py:1855 msgid "Allow Out of Stock Transfer" msgstr "" -#: common/models.py:1802 +#: common/models.py:1857 msgid "Allow stock items which are not in stock to be transferred between stock locations" msgstr "" -#: common/models.py:1808 +#: common/models.py:1863 msgid "Build Order Reference Pattern" msgstr "" -#: common/models.py:1810 +#: common/models.py:1865 msgid "Required pattern for generating Build Order reference field" msgstr "" -#: common/models.py:1816 common/models.py:1872 common/models.py:1894 -#: common/models.py:1930 +#: common/models.py:1871 common/models.py:1927 common/models.py:1949 +#: common/models.py:1985 msgid "Require Responsible Owner" msgstr "" -#: common/models.py:1817 common/models.py:1873 common/models.py:1895 -#: common/models.py:1931 +#: common/models.py:1872 common/models.py:1928 common/models.py:1950 +#: common/models.py:1986 msgid "A responsible owner must be assigned to each order" msgstr "" -#: common/models.py:1822 +#: common/models.py:1877 msgid "Require Active Part" msgstr "" -#: common/models.py:1823 +#: common/models.py:1878 msgid "Prevent build order creation for inactive parts" msgstr "" -#: common/models.py:1828 +#: common/models.py:1883 msgid "Require Locked Part" msgstr "" -#: common/models.py:1829 +#: common/models.py:1884 msgid "Prevent build order creation for unlocked parts" msgstr "" -#: common/models.py:1834 +#: common/models.py:1889 msgid "Require Valid BOM" msgstr "" -#: common/models.py:1836 +#: common/models.py:1891 msgid "Prevent build order creation unless BOM has been validated" msgstr "" -#: common/models.py:1842 +#: common/models.py:1897 msgid "Require Closed Child Orders" msgstr "" -#: common/models.py:1844 +#: common/models.py:1899 msgid "Prevent build order completion until all child orders are closed" msgstr "" -#: common/models.py:1850 +#: common/models.py:1905 msgid "Block Until Tests Pass" msgstr "" -#: common/models.py:1852 +#: common/models.py:1907 msgid "Prevent build outputs from being completed until all required tests pass" msgstr "" -#: common/models.py:1858 +#: common/models.py:1913 msgid "Enable Return Orders" msgstr "" -#: common/models.py:1859 +#: common/models.py:1914 msgid "Enable return order functionality in the user interface" msgstr "" -#: common/models.py:1864 +#: common/models.py:1919 msgid "Return Order Reference Pattern" msgstr "" -#: common/models.py:1866 +#: common/models.py:1921 msgid "Required pattern for generating Return Order reference field" msgstr "" -#: common/models.py:1878 +#: common/models.py:1933 msgid "Edit Completed Return Orders" msgstr "" -#: common/models.py:1880 +#: common/models.py:1935 msgid "Allow editing of return orders after they have been completed" msgstr "" -#: common/models.py:1886 +#: common/models.py:1941 msgid "Sales Order Reference Pattern" msgstr "" -#: common/models.py:1888 +#: common/models.py:1943 msgid "Required pattern for generating Sales Order reference field" msgstr "" -#: common/models.py:1900 +#: common/models.py:1955 msgid "Sales Order Default Shipment" msgstr "" -#: common/models.py:1901 +#: common/models.py:1956 msgid "Enable creation of default shipment with sales orders" msgstr "" -#: common/models.py:1906 +#: common/models.py:1961 msgid "Edit Completed Sales Orders" msgstr "" -#: common/models.py:1908 +#: common/models.py:1963 msgid "Allow editing of sales orders after they have been shipped or completed" msgstr "" -#: common/models.py:1914 +#: common/models.py:1969 msgid "Mark Shipped Orders as Complete" msgstr "" -#: common/models.py:1916 +#: common/models.py:1971 msgid "Sales orders marked as shipped will automatically be completed, bypassing the \"shipped\" status" msgstr "" -#: common/models.py:1922 +#: common/models.py:1977 msgid "Purchase Order Reference Pattern" msgstr "" -#: common/models.py:1924 +#: common/models.py:1979 msgid "Required pattern for generating Purchase Order reference field" msgstr "" -#: common/models.py:1936 +#: common/models.py:1991 msgid "Edit Completed Purchase Orders" msgstr "" -#: common/models.py:1938 +#: common/models.py:1993 msgid "Allow editing of purchase orders after they have been shipped or completed" msgstr "" -#: common/models.py:1944 +#: common/models.py:1999 msgid "Auto Complete Purchase Orders" msgstr "" -#: common/models.py:1946 +#: common/models.py:2001 msgid "Automatically mark purchase orders as complete when all line items are received" msgstr "" -#: common/models.py:1953 +#: common/models.py:2008 msgid "Enable password forgot" msgstr "" -#: common/models.py:1954 +#: common/models.py:2009 msgid "Enable password forgot function on the login pages" msgstr "" -#: common/models.py:1959 +#: common/models.py:2014 msgid "Enable registration" msgstr "" -#: common/models.py:1960 +#: common/models.py:2015 msgid "Enable self-registration for users on the login pages" msgstr "" -#: common/models.py:1965 +#: common/models.py:2020 msgid "Enable SSO" msgstr "" -#: common/models.py:1966 +#: common/models.py:2021 msgid "Enable SSO on the login pages" msgstr "" -#: common/models.py:1971 +#: common/models.py:2026 msgid "Enable SSO registration" msgstr "" -#: common/models.py:1973 +#: common/models.py:2028 msgid "Enable self-registration via SSO for users on the login pages" msgstr "" -#: common/models.py:1979 +#: common/models.py:2034 msgid "Enable SSO group sync" msgstr "" -#: common/models.py:1981 +#: common/models.py:2036 msgid "Enable synchronizing InvenTree groups with groups provided by the IdP" msgstr "" -#: common/models.py:1987 +#: common/models.py:2042 msgid "SSO group key" msgstr "" -#: common/models.py:1989 +#: common/models.py:2044 msgid "The name of the groups claim attribute provided by the IdP" msgstr "" -#: common/models.py:1995 +#: common/models.py:2050 msgid "SSO group map" msgstr "" -#: common/models.py:1997 +#: common/models.py:2052 msgid "A mapping from SSO groups to local InvenTree groups. If the local group does not exist, it will be created." msgstr "" -#: common/models.py:2003 +#: common/models.py:2058 msgid "Remove groups outside of SSO" msgstr "" -#: common/models.py:2005 +#: common/models.py:2060 msgid "Whether groups assigned to the user should be removed if they are not backend by the IdP. Disabling this setting might cause security issues" msgstr "" -#: common/models.py:2011 +#: common/models.py:2066 msgid "Email required" msgstr "" -#: common/models.py:2012 +#: common/models.py:2067 msgid "Require user to supply mail on signup" msgstr "" -#: common/models.py:2017 +#: common/models.py:2072 msgid "Auto-fill SSO users" msgstr "" -#: common/models.py:2019 +#: common/models.py:2074 msgid "Automatically fill out user-details from SSO account-data" msgstr "" -#: common/models.py:2025 +#: common/models.py:2080 msgid "Mail twice" msgstr "" -#: common/models.py:2026 +#: common/models.py:2081 msgid "On signup ask users twice for their mail" msgstr "" -#: common/models.py:2031 +#: common/models.py:2086 msgid "Password twice" msgstr "" -#: common/models.py:2032 +#: common/models.py:2087 msgid "On signup ask users twice for their password" msgstr "" -#: common/models.py:2037 +#: common/models.py:2092 msgid "Allowed domains" msgstr "" -#: common/models.py:2039 +#: common/models.py:2094 msgid "Restrict signup to certain domains (comma-separated, starting with @)" msgstr "" -#: common/models.py:2045 +#: common/models.py:2100 msgid "Group on signup" msgstr "" -#: common/models.py:2047 +#: common/models.py:2102 msgid "Group to which new users are assigned on registration. If SSO group sync is enabled, this group is only set if no group can be assigned from the IdP." msgstr "" -#: common/models.py:2053 +#: common/models.py:2108 msgid "Enforce MFA" msgstr "" -#: common/models.py:2054 +#: common/models.py:2109 msgid "Users must use multifactor security." msgstr "" -#: common/models.py:2059 +#: common/models.py:2114 msgid "Check plugins on startup" msgstr "" -#: common/models.py:2061 +#: common/models.py:2116 msgid "Check that all plugins are installed on startup - enable in container environments" msgstr "" -#: common/models.py:2069 +#: common/models.py:2124 msgid "Check for plugin updates" msgstr "" -#: common/models.py:2070 +#: common/models.py:2125 msgid "Enable periodic checks for updates to installed plugins" msgstr "" -#: common/models.py:2076 +#: common/models.py:2131 msgid "Enable URL integration" msgstr "" -#: common/models.py:2077 +#: common/models.py:2132 msgid "Enable plugins to add URL routes" msgstr "" -#: common/models.py:2083 +#: common/models.py:2138 msgid "Enable navigation integration" msgstr "" -#: common/models.py:2084 +#: common/models.py:2139 msgid "Enable plugins to integrate into navigation" msgstr "" -#: common/models.py:2090 +#: common/models.py:2145 msgid "Enable app integration" msgstr "" -#: common/models.py:2091 +#: common/models.py:2146 msgid "Enable plugins to add apps" msgstr "" -#: common/models.py:2097 +#: common/models.py:2152 msgid "Enable schedule integration" msgstr "" -#: common/models.py:2098 +#: common/models.py:2153 msgid "Enable plugins to run scheduled tasks" msgstr "" -#: common/models.py:2104 +#: common/models.py:2159 msgid "Enable event integration" msgstr "" -#: common/models.py:2105 +#: common/models.py:2160 msgid "Enable plugins to respond to internal events" msgstr "" -#: common/models.py:2111 +#: common/models.py:2166 +msgid "Enable interface integration" +msgstr "" + +#: common/models.py:2167 +msgid "Enable plugins to integrate into the user interface" +msgstr "" + +#: common/models.py:2173 msgid "Enable project codes" msgstr "" -#: common/models.py:2112 +#: common/models.py:2174 msgid "Enable project codes for tracking projects" msgstr "" -#: common/models.py:2117 +#: common/models.py:2179 msgid "Stocktake Functionality" msgstr "" -#: common/models.py:2119 +#: common/models.py:2181 msgid "Enable stocktake functionality for recording stock levels and calculating stock value" msgstr "" -#: common/models.py:2125 +#: common/models.py:2187 msgid "Exclude External Locations" msgstr "" -#: common/models.py:2127 +#: common/models.py:2189 msgid "Exclude stock items in external locations from stocktake calculations" msgstr "" -#: common/models.py:2133 +#: common/models.py:2195 msgid "Automatic Stocktake Period" msgstr "" -#: common/models.py:2135 +#: common/models.py:2197 msgid "Number of days between automatic stocktake recording (set to zero to disable)" msgstr "" -#: common/models.py:2141 +#: common/models.py:2203 msgid "Report Deletion Interval" msgstr "" -#: common/models.py:2143 +#: common/models.py:2205 msgid "Stocktake reports will be deleted after specified number of days" msgstr "" -#: common/models.py:2150 +#: common/models.py:2212 msgid "Display Users full names" msgstr "" -#: common/models.py:2151 +#: common/models.py:2213 msgid "Display Users full names instead of usernames" msgstr "" -#: common/models.py:2156 +#: common/models.py:2218 msgid "Enable Test Station Data" msgstr "" -#: common/models.py:2157 +#: common/models.py:2219 msgid "Enable test station data collection for test results" msgstr "" -#: common/models.py:2169 common/models.py:2549 -msgid "Settings key (must be unique - case insensitive" -msgstr "" - -#: common/models.py:2212 -msgid "Hide inactive parts" -msgstr "" - -#: common/models.py:2214 -msgid "Hide inactive parts in results displayed on the homepage" -msgstr "" - -#: common/models.py:2220 -msgid "Show subscribed parts" -msgstr "" - -#: common/models.py:2221 -msgid "Show subscribed parts on the homepage" +#: common/models.py:2224 +msgid "Create Template on Upload" msgstr "" #: common/models.py:2226 -msgid "Show subscribed categories" +msgid "Create a new test template when uploading test data which does not match an existing template" msgstr "" -#: common/models.py:2227 -msgid "Show subscribed part categories on the homepage" -msgstr "" - -#: common/models.py:2232 -msgid "Show latest parts" -msgstr "" - -#: common/models.py:2233 -msgid "Show latest parts on the homepage" -msgstr "" - -#: common/models.py:2238 -msgid "Show invalid BOMs" -msgstr "" - -#: common/models.py:2239 -msgid "Show BOMs that await validation on the homepage" -msgstr "" - -#: common/models.py:2244 -msgid "Show recent stock changes" -msgstr "" - -#: common/models.py:2245 -msgid "Show recently changed stock items on the homepage" -msgstr "" - -#: common/models.py:2250 -msgid "Show low stock" -msgstr "" - -#: common/models.py:2251 -msgid "Show low stock items on the homepage" -msgstr "" - -#: common/models.py:2256 -msgid "Show depleted stock" -msgstr "" - -#: common/models.py:2257 -msgid "Show depleted stock items on the homepage" -msgstr "" - -#: common/models.py:2262 -msgid "Show needed stock" -msgstr "" - -#: common/models.py:2263 -msgid "Show stock items needed for builds on the homepage" -msgstr "" - -#: common/models.py:2268 -msgid "Show expired stock" -msgstr "" - -#: common/models.py:2269 -msgid "Show expired stock items on the homepage" -msgstr "" - -#: common/models.py:2274 -msgid "Show stale stock" -msgstr "" - -#: common/models.py:2275 -msgid "Show stale stock items on the homepage" -msgstr "" - -#: common/models.py:2280 -msgid "Show pending builds" +#: common/models.py:2279 +msgid "Hide inactive parts" msgstr "" #: common/models.py:2281 -msgid "Show pending builds on the homepage" -msgstr "" - -#: common/models.py:2286 -msgid "Show overdue builds" +msgid "Hide inactive parts in results displayed on the homepage" msgstr "" #: common/models.py:2287 -msgid "Show overdue builds on the homepage" +msgid "Show subscribed parts" msgstr "" -#: common/models.py:2292 -msgid "Show outstanding POs" +#: common/models.py:2288 +msgid "Show subscribed parts on the homepage" msgstr "" #: common/models.py:2293 -msgid "Show outstanding POs on the homepage" +msgid "Show subscribed categories" msgstr "" -#: common/models.py:2298 -msgid "Show overdue POs" +#: common/models.py:2294 +msgid "Show subscribed part categories on the homepage" msgstr "" #: common/models.py:2299 -msgid "Show overdue POs on the homepage" +msgid "Show latest parts" msgstr "" -#: common/models.py:2304 -msgid "Show outstanding SOs" +#: common/models.py:2300 +msgid "Show latest parts on the homepage" msgstr "" #: common/models.py:2305 -msgid "Show outstanding SOs on the homepage" +msgid "Show invalid BOMs" msgstr "" -#: common/models.py:2310 -msgid "Show overdue SOs" +#: common/models.py:2306 +msgid "Show BOMs that await validation on the homepage" msgstr "" #: common/models.py:2311 -msgid "Show overdue SOs on the homepage" +msgid "Show recent stock changes" msgstr "" -#: common/models.py:2316 -msgid "Show pending SO shipments" +#: common/models.py:2312 +msgid "Show recently changed stock items on the homepage" msgstr "" #: common/models.py:2317 -msgid "Show pending SO shipments on the homepage" +msgid "Show low stock" msgstr "" -#: common/models.py:2322 -msgid "Show News" +#: common/models.py:2318 +msgid "Show low stock items on the homepage" msgstr "" #: common/models.py:2323 -msgid "Show news on the homepage" +msgid "Show depleted stock" msgstr "" -#: common/models.py:2328 -msgid "Inline label display" +#: common/models.py:2324 +msgid "Show depleted stock items on the homepage" +msgstr "" + +#: common/models.py:2329 +msgid "Show needed stock" msgstr "" #: common/models.py:2330 -msgid "Display PDF labels in the browser, instead of downloading as a file" +msgid "Show stock items needed for builds on the homepage" +msgstr "" + +#: common/models.py:2335 +msgid "Show expired stock" msgstr "" #: common/models.py:2336 -msgid "Default label printer" +msgid "Show expired stock items on the homepage" msgstr "" -#: common/models.py:2338 -msgid "Configure which label printer should be selected by default" +#: common/models.py:2341 +msgid "Show stale stock" msgstr "" -#: common/models.py:2344 -msgid "Inline report display" +#: common/models.py:2342 +msgid "Show stale stock items on the homepage" msgstr "" -#: common/models.py:2346 -msgid "Display PDF reports in the browser, instead of downloading as a file" +#: common/models.py:2347 +msgid "Show pending builds" msgstr "" -#: common/models.py:2352 -msgid "Search Parts" +#: common/models.py:2348 +msgid "Show pending builds on the homepage" msgstr "" #: common/models.py:2353 -msgid "Display parts in search preview window" +msgid "Show overdue builds" msgstr "" -#: common/models.py:2358 -msgid "Search Supplier Parts" +#: common/models.py:2354 +msgid "Show overdue builds on the homepage" msgstr "" #: common/models.py:2359 -msgid "Display supplier parts in search preview window" +msgid "Show outstanding POs" msgstr "" -#: common/models.py:2364 -msgid "Search Manufacturer Parts" +#: common/models.py:2360 +msgid "Show outstanding POs on the homepage" msgstr "" #: common/models.py:2365 -msgid "Display manufacturer parts in search preview window" +msgid "Show overdue POs" msgstr "" -#: common/models.py:2370 -msgid "Hide Inactive Parts" +#: common/models.py:2366 +msgid "Show overdue POs on the homepage" msgstr "" #: common/models.py:2371 -msgid "Excluded inactive parts from search preview window" +msgid "Show outstanding SOs" msgstr "" -#: common/models.py:2376 -msgid "Search Categories" +#: common/models.py:2372 +msgid "Show outstanding SOs on the homepage" msgstr "" #: common/models.py:2377 -msgid "Display part categories in search preview window" +msgid "Show overdue SOs" msgstr "" -#: common/models.py:2382 -msgid "Search Stock" +#: common/models.py:2378 +msgid "Show overdue SOs on the homepage" msgstr "" #: common/models.py:2383 -msgid "Display stock items in search preview window" +msgid "Show pending SO shipments" msgstr "" -#: common/models.py:2388 -msgid "Hide Unavailable Stock Items" +#: common/models.py:2384 +msgid "Show pending SO shipments on the homepage" +msgstr "" + +#: common/models.py:2389 +msgid "Show News" msgstr "" #: common/models.py:2390 -msgid "Exclude stock items which are not available from the search preview window" +msgid "Show news on the homepage" msgstr "" -#: common/models.py:2396 -msgid "Search Locations" +#: common/models.py:2395 +msgid "Inline label display" msgstr "" #: common/models.py:2397 -msgid "Display stock locations in search preview window" -msgstr "" - -#: common/models.py:2402 -msgid "Search Companies" +msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "" #: common/models.py:2403 -msgid "Display companies in search preview window" +msgid "Default label printer" msgstr "" -#: common/models.py:2408 -msgid "Search Build Orders" +#: common/models.py:2405 +msgid "Configure which label printer should be selected by default" msgstr "" -#: common/models.py:2409 -msgid "Display build orders in search preview window" +#: common/models.py:2411 +msgid "Inline report display" msgstr "" -#: common/models.py:2414 -msgid "Search Purchase Orders" +#: common/models.py:2413 +msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:2415 -msgid "Display purchase orders in search preview window" +#: common/models.py:2419 +msgid "Search Parts" msgstr "" #: common/models.py:2420 -msgid "Exclude Inactive Purchase Orders" +msgid "Display parts in search preview window" msgstr "" -#: common/models.py:2422 -msgid "Exclude inactive purchase orders from search preview window" +#: common/models.py:2425 +msgid "Search Supplier Parts" msgstr "" -#: common/models.py:2428 -msgid "Search Sales Orders" +#: common/models.py:2426 +msgid "Display supplier parts in search preview window" msgstr "" -#: common/models.py:2429 -msgid "Display sales orders in search preview window" +#: common/models.py:2431 +msgid "Search Manufacturer Parts" msgstr "" -#: common/models.py:2434 -msgid "Exclude Inactive Sales Orders" +#: common/models.py:2432 +msgid "Display manufacturer parts in search preview window" msgstr "" -#: common/models.py:2436 -msgid "Exclude inactive sales orders from search preview window" +#: common/models.py:2437 +msgid "Hide Inactive Parts" msgstr "" -#: common/models.py:2442 -msgid "Search Return Orders" +#: common/models.py:2438 +msgid "Excluded inactive parts from search preview window" msgstr "" #: common/models.py:2443 -msgid "Display return orders in search preview window" +msgid "Search Categories" msgstr "" -#: common/models.py:2448 -msgid "Exclude Inactive Return Orders" +#: common/models.py:2444 +msgid "Display part categories in search preview window" +msgstr "" + +#: common/models.py:2449 +msgid "Search Stock" msgstr "" #: common/models.py:2450 -msgid "Exclude inactive return orders from search preview window" +msgid "Display stock items in search preview window" msgstr "" -#: common/models.py:2456 -msgid "Search Preview Results" +#: common/models.py:2455 +msgid "Hide Unavailable Stock Items" msgstr "" -#: common/models.py:2458 -msgid "Number of results to show in each section of the search preview window" +#: common/models.py:2457 +msgid "Exclude stock items which are not available from the search preview window" +msgstr "" + +#: common/models.py:2463 +msgid "Search Locations" msgstr "" #: common/models.py:2464 -msgid "Regex Search" +msgid "Display stock locations in search preview window" msgstr "" -#: common/models.py:2465 -msgid "Enable regular expressions in search queries" +#: common/models.py:2469 +msgid "Search Companies" msgstr "" #: common/models.py:2470 -msgid "Whole Word Search" +msgid "Display companies in search preview window" msgstr "" -#: common/models.py:2471 -msgid "Search queries return results for whole word matches" +#: common/models.py:2475 +msgid "Search Build Orders" msgstr "" #: common/models.py:2476 -msgid "Show Quantity in Forms" +msgid "Display build orders in search preview window" msgstr "" -#: common/models.py:2477 -msgid "Display available part quantity in some forms" +#: common/models.py:2481 +msgid "Search Purchase Orders" msgstr "" #: common/models.py:2482 -msgid "Escape Key Closes Forms" +msgid "Display purchase orders in search preview window" msgstr "" -#: common/models.py:2483 -msgid "Use the escape key to close modal forms" -msgstr "" - -#: common/models.py:2488 -msgid "Fixed Navbar" +#: common/models.py:2487 +msgid "Exclude Inactive Purchase Orders" msgstr "" #: common/models.py:2489 -msgid "The navbar position is fixed to the top of the screen" -msgstr "" - -#: common/models.py:2494 -msgid "Date Format" +msgid "Exclude inactive purchase orders from search preview window" msgstr "" #: common/models.py:2495 -msgid "Preferred format for displaying dates" +msgid "Search Sales Orders" msgstr "" -#: common/models.py:2508 part/templates/part/detail.html:41 -msgid "Part Scheduling" +#: common/models.py:2496 +msgid "Display sales orders in search preview window" +msgstr "" + +#: common/models.py:2501 +msgid "Exclude Inactive Sales Orders" +msgstr "" + +#: common/models.py:2503 +msgid "Exclude inactive sales orders from search preview window" msgstr "" #: common/models.py:2509 -msgid "Display part scheduling information" +msgid "Search Return Orders" msgstr "" -#: common/models.py:2514 part/templates/part/detail.html:62 -msgid "Part Stocktake" +#: common/models.py:2510 +msgid "Display return orders in search preview window" msgstr "" -#: common/models.py:2516 -msgid "Display part stocktake information (if stocktake functionality is enabled)" +#: common/models.py:2515 +msgid "Exclude Inactive Return Orders" msgstr "" -#: common/models.py:2522 -msgid "Table String Length" +#: common/models.py:2517 +msgid "Exclude inactive return orders from search preview window" msgstr "" -#: common/models.py:2524 -msgid "Maximum length limit for strings displayed in table views" +#: common/models.py:2523 +msgid "Search Preview Results" msgstr "" -#: common/models.py:2530 -msgid "Receive error reports" +#: common/models.py:2525 +msgid "Number of results to show in each section of the search preview window" msgstr "" #: common/models.py:2531 -msgid "Receive notifications for system errors" +msgid "Regex Search" msgstr "" -#: common/models.py:2536 -msgid "Last used printing machines" +#: common/models.py:2532 +msgid "Enable regular expressions in search queries" msgstr "" #: common/models.py:2537 +msgid "Whole Word Search" +msgstr "" + +#: common/models.py:2538 +msgid "Search queries return results for whole word matches" +msgstr "" + +#: common/models.py:2543 +msgid "Show Quantity in Forms" +msgstr "" + +#: common/models.py:2544 +msgid "Display available part quantity in some forms" +msgstr "" + +#: common/models.py:2549 +msgid "Escape Key Closes Forms" +msgstr "" + +#: common/models.py:2550 +msgid "Use the escape key to close modal forms" +msgstr "" + +#: common/models.py:2555 +msgid "Fixed Navbar" +msgstr "" + +#: common/models.py:2556 +msgid "The navbar position is fixed to the top of the screen" +msgstr "" + +#: common/models.py:2561 +msgid "Date Format" +msgstr "" + +#: common/models.py:2562 +msgid "Preferred format for displaying dates" +msgstr "" + +#: common/models.py:2575 part/templates/part/detail.html:41 +msgid "Part Scheduling" +msgstr "" + +#: common/models.py:2576 +msgid "Display part scheduling information" +msgstr "" + +#: common/models.py:2581 part/templates/part/detail.html:62 +msgid "Part Stocktake" +msgstr "" + +#: common/models.py:2583 +msgid "Display part stocktake information (if stocktake functionality is enabled)" +msgstr "" + +#: common/models.py:2589 +msgid "Table String Length" +msgstr "" + +#: common/models.py:2591 +msgid "Maximum length limit for strings displayed in table views" +msgstr "" + +#: common/models.py:2597 +msgid "Receive error reports" +msgstr "" + +#: common/models.py:2598 +msgid "Receive notifications for system errors" +msgstr "" + +#: common/models.py:2603 +msgid "Last used printing machines" +msgstr "" + +#: common/models.py:2604 msgid "Save the last used printing machines for a user" msgstr "" -#: common/models.py:2557 common/models.py:2558 common/models.py:2715 -#: common/models.py:2716 common/models.py:2961 common/models.py:2962 -#: common/models.py:3288 common/models.py:3289 importer/models.py:88 -#: part/models.py:3307 part/models.py:3394 part/models.py:3468 -#: part/models.py:3496 plugin/models.py:274 plugin/models.py:275 -#: report/templates/report/inventree_test_report.html:105 -#: templates/js/translated/stock.js:3120 users/models.py:111 +#: common/models.py:2621 common/models.py:2622 common/models.py:2779 +#: common/models.py:2780 common/models.py:3025 common/models.py:3026 +#: common/models.py:3349 common/models.py:3350 common/models.py:3534 +#: importer/models.py:89 part/models.py:3358 part/models.py:3445 +#: part/models.py:3519 part/models.py:3547 plugin/models.py:313 +#: plugin/models.py:314 report/templates/report/inventree_test_report.html:105 +#: templates/js/translated/stock.js:3121 users/models.py:111 msgid "User" msgstr "" -#: common/models.py:2580 +#: common/models.py:2644 msgid "Price break quantity" msgstr "" -#: common/models.py:2587 company/serializers.py:513 order/admin.py:42 -#: order/models.py:1430 order/models.py:2417 -#: templates/js/translated/company.js:1823 templates/js/translated/part.js:1892 +#: common/models.py:2651 company/serializers.py:524 order/admin.py:42 +#: order/models.py:1447 order/models.py:2456 +#: templates/js/translated/company.js:1824 templates/js/translated/part.js:1892 #: templates/js/translated/pricing.js:621 #: templates/js/translated/return_order.js:739 msgid "Price" msgstr "" -#: common/models.py:2588 +#: common/models.py:2652 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:2692 common/models.py:2877 +#: common/models.py:2756 common/models.py:2941 msgid "Endpoint" msgstr "" -#: common/models.py:2693 +#: common/models.py:2757 msgid "Endpoint at which this webhook is received" msgstr "" -#: common/models.py:2703 +#: common/models.py:2767 msgid "Name for this webhook" msgstr "" -#: common/models.py:2707 +#: common/models.py:2771 msgid "Is this webhook active" msgstr "" -#: common/models.py:2723 users/models.py:159 +#: common/models.py:2787 users/models.py:159 msgid "Token" msgstr "" -#: common/models.py:2724 +#: common/models.py:2788 msgid "Token for access" msgstr "" -#: common/models.py:2732 +#: common/models.py:2796 msgid "Secret" msgstr "" -#: common/models.py:2733 +#: common/models.py:2797 msgid "Shared secret for HMAC" msgstr "" -#: common/models.py:2841 +#: common/models.py:2905 msgid "Message ID" msgstr "" -#: common/models.py:2842 +#: common/models.py:2906 msgid "Unique identifier for this message" msgstr "" -#: common/models.py:2850 +#: common/models.py:2914 msgid "Host" msgstr "" -#: common/models.py:2851 +#: common/models.py:2915 msgid "Host from which this message was received" msgstr "" -#: common/models.py:2859 +#: common/models.py:2923 msgid "Header" msgstr "" -#: common/models.py:2860 +#: common/models.py:2924 msgid "Header of this message" msgstr "" -#: common/models.py:2867 +#: common/models.py:2931 msgid "Body" msgstr "" -#: common/models.py:2868 +#: common/models.py:2932 msgid "Body of this message" msgstr "" -#: common/models.py:2878 +#: common/models.py:2942 msgid "Endpoint on which this message was received" msgstr "" -#: common/models.py:2883 +#: common/models.py:2947 msgid "Worked on" msgstr "" -#: common/models.py:2884 +#: common/models.py:2948 msgid "Was the work on this message finished?" msgstr "" -#: common/models.py:3010 +#: common/models.py:3074 msgid "Id" msgstr "" -#: common/models.py:3012 templates/js/translated/company.js:965 -#: templates/js/translated/news.js:44 +#: common/models.py:3076 part/serializers.py:271 +#: templates/js/translated/company.js:966 templates/js/translated/news.js:44 msgid "Title" msgstr "" -#: common/models.py:3014 common/models.py:3272 company/models.py:149 -#: company/models.py:446 company/models.py:512 company/models.py:818 -#: order/models.py:302 order/models.py:1385 order/models.py:1817 -#: part/admin.py:55 part/models.py:1057 +#: common/models.py:3078 common/models.py:3333 company/models.py:146 +#: company/models.py:443 company/models.py:509 company/models.py:815 +#: order/models.py:309 order/models.py:1402 order/models.py:1846 +#: part/admin.py:55 part/models.py:1118 #: part/templates/part/part_scheduling.html:11 #: report/templates/report/inventree_build_order_report.html:164 -#: stock/admin.py:229 templates/js/translated/company.js:1319 -#: templates/js/translated/company.js:1673 templates/js/translated/order.js:376 +#: stock/admin.py:230 templates/js/translated/company.js:1320 +#: templates/js/translated/company.js:1674 templates/js/translated/order.js:376 #: templates/js/translated/part.js:2475 -#: templates/js/translated/purchase_order.js:2110 -#: templates/js/translated/purchase_order.js:2274 +#: templates/js/translated/purchase_order.js:2094 +#: templates/js/translated/purchase_order.js:2258 #: templates/js/translated/return_order.js:778 -#: templates/js/translated/sales_order.js:1092 -#: templates/js/translated/sales_order.js:2023 +#: templates/js/translated/sales_order.js:1058 +#: templates/js/translated/sales_order.js:2004 msgid "Link" msgstr "" -#: common/models.py:3016 templates/js/translated/news.js:60 +#: common/models.py:3080 templates/js/translated/news.js:60 msgid "Published" msgstr "" -#: common/models.py:3018 templates/InvenTree/settings/plugin_settings.html:32 +#: common/models.py:3082 templates/InvenTree/settings/plugin_settings.html:32 #: templates/js/translated/news.js:56 templates/js/translated/plugin.js:103 msgid "Author" msgstr "" -#: common/models.py:3020 templates/js/translated/news.js:52 +#: common/models.py:3084 templates/js/translated/news.js:52 msgid "Summary" msgstr "" -#: common/models.py:3023 +#: common/models.py:3087 msgid "Read" msgstr "" -#: common/models.py:3023 +#: common/models.py:3087 msgid "Was this news item read?" msgstr "" -#: common/models.py:3040 company/models.py:159 part/models.py:1067 +#: common/models.py:3104 company/models.py:156 part/models.py:1128 #: report/templates/report/inventree_bill_of_materials_report.html:126 #: report/templates/report/inventree_bill_of_materials_report.html:148 #: report/templates/report/inventree_return_order_report.html:35 -#: stock/templates/stock/item_base.html:133 templates/503.html:31 +#: stock/templates/stock/item_base.html:130 templates/503.html:31 #: templates/hover_image.html:7 templates/hover_image.html:9 #: templates/modals.html:6 msgid "Image" msgstr "" -#: common/models.py:3040 +#: common/models.py:3104 msgid "Image file" msgstr "" -#: common/models.py:3052 common/models.py:3256 +#: common/models.py:3116 common/models.py:3317 msgid "Target model type for this image" msgstr "" -#: common/models.py:3056 +#: common/models.py:3120 msgid "Target model ID for this image" msgstr "" -#: common/models.py:3078 +#: common/models.py:3142 msgid "Custom Unit" msgstr "" -#: common/models.py:3099 +#: common/models.py:3160 msgid "Unit symbol must be unique" msgstr "" -#: common/models.py:3114 +#: common/models.py:3175 msgid "Unit name must be a valid identifier" msgstr "" -#: common/models.py:3133 +#: common/models.py:3194 msgid "Unit name" msgstr "" -#: common/models.py:3140 templates/InvenTree/settings/settings_staff_js.html:75 +#: common/models.py:3201 templates/InvenTree/settings/settings_staff_js.html:75 msgid "Symbol" msgstr "" -#: common/models.py:3141 +#: common/models.py:3202 msgid "Optional unit symbol" msgstr "" -#: common/models.py:3147 templates/InvenTree/settings/settings_staff_js.html:71 +#: common/models.py:3208 templates/InvenTree/settings/settings_staff_js.html:71 msgid "Definition" msgstr "" -#: common/models.py:3148 +#: common/models.py:3209 msgid "Unit definition" msgstr "" -#: common/models.py:3206 common/models.py:3263 stock/models.py:2558 -#: templates/js/translated/attachment.js:119 +#: common/models.py:3267 common/models.py:3324 stock/models.py:2674 +#: stock/serializers.py:244 templates/js/translated/attachment.js:119 #: templates/js/translated/attachment.js:345 msgid "Attachment" msgstr "" -#: common/models.py:3218 +#: common/models.py:3279 msgid "Missing file" msgstr "" -#: common/models.py:3219 +#: common/models.py:3280 msgid "Missing external link" msgstr "" -#: common/models.py:3264 +#: common/models.py:3325 msgid "Select file to attach" msgstr "" -#: common/models.py:3279 templates/js/translated/attachment.js:120 +#: common/models.py:3340 templates/js/translated/attachment.js:120 #: templates/js/translated/attachment.js:360 msgid "Comment" msgstr "" -#: common/models.py:3280 +#: common/models.py:3341 msgid "Attachment comment" msgstr "" -#: common/models.py:3296 +#: common/models.py:3357 msgid "Upload date" msgstr "" -#: common/models.py:3297 +#: common/models.py:3358 msgid "Date the file was uploaded" msgstr "" -#: common/models.py:3301 +#: common/models.py:3362 msgid "File size" msgstr "" -#: common/models.py:3301 +#: common/models.py:3362 msgid "File size in bytes" msgstr "" -#: common/models.py:3339 common/serializers.py:562 +#: common/models.py:3400 common/serializers.py:609 msgid "Invalid model type specified for attachment" msgstr "" -#: common/notifications.py:314 +#: common/models.py:3409 plugin/models.py:43 users/models.py:100 +msgid "Key" +msgstr "" + +#: common/models.py:3410 +msgid "Value that will be saved in the models database" +msgstr "" + +#: common/models.py:3413 +msgid "Name of the state" +msgstr "" + +#: common/models.py:3417 part/serializers.py:273 +msgid "Label" +msgstr "" + +#: common/models.py:3418 +msgid "Label that will be displayed in the frontend" +msgstr "" + +#: common/models.py:3424 +msgid "Color" +msgstr "" + +#: common/models.py:3425 +msgid "Color that will be displayed in the frontend" +msgstr "" + +#: common/models.py:3428 +msgid "Logical Key" +msgstr "" + +#: common/models.py:3430 +msgid "State logical key that is equal to this custom state in business logic" +msgstr "" + +#: common/models.py:3438 part/serializers.py:275 +msgid "Model" +msgstr "" + +#: common/models.py:3439 +msgid "Model this state is associated with" +msgstr "" + +#: common/models.py:3443 +msgid "Reference Status Set" +msgstr "" + +#: common/models.py:3444 +msgid "Status set that is extended with this custom state" +msgstr "" + +#: common/models.py:3450 +msgid "Custom State" +msgstr "" + +#: common/models.py:3451 +msgid "Custom States" +msgstr "" + +#: common/models.py:3466 +msgid "Model must be selected" +msgstr "" + +#: common/models.py:3469 +msgid "Key must be selected" +msgstr "" + +#: common/models.py:3472 +msgid "Logical key must be selected" +msgstr "" + +#: common/models.py:3476 +msgid "Key must be different from logical key" +msgstr "" + +#: common/models.py:3480 +msgid "Reference status must be selected" +msgstr "" + +#: common/models.py:3492 +msgid "Reference status set not found" +msgstr "" + +#: common/models.py:3498 +msgid "Key must be different from the logical keys of the reference status" +msgstr "" + +#: common/models.py:3504 +msgid "Logical key must be in the logical keys of the reference status" +msgstr "" + +#: common/models.py:3519 +msgid "Barcode Scan" +msgstr "" + +#: common/models.py:3523 importer/models.py:512 part/models.py:4009 +msgid "Data" +msgstr "" + +#: common/models.py:3524 +msgid "Barcode data" +msgstr "" + +#: common/models.py:3535 +msgid "User who scanned the barcode" +msgstr "" + +#: common/models.py:3540 importer/models.py:60 +msgid "Timestamp" +msgstr "" + +#: common/models.py:3541 +msgid "Date and time of the barcode scan" +msgstr "" + +#: common/models.py:3547 +msgid "URL endpoint which processed the barcode" +msgstr "" + +#: common/models.py:3554 order/models.py:1437 plugin/serializers.py:89 +msgid "Context" +msgstr "" + +#: common/models.py:3555 +msgid "Context data for the barcode scan" +msgstr "" + +#: common/models.py:3562 +msgid "Response" +msgstr "" + +#: common/models.py:3563 +msgid "Response data from the barcode scan" +msgstr "" + +#: common/models.py:3569 report/templates/report/inventree_test_report.html:103 +#: stock/models.py:2660 +msgid "Result" +msgstr "" + +#: common/models.py:3570 +msgid "Was the barcode scan successful?" +msgstr "" + +#: common/notifications.py:328 #, python-brace-format msgid "New {verbose_name}" msgstr "" -#: common/notifications.py:316 +#: common/notifications.py:330 msgid "A new order has been created and assigned to you" msgstr "" -#: common/notifications.py:322 +#: common/notifications.py:336 #, python-brace-format msgid "{verbose_name} canceled" msgstr "" -#: common/notifications.py:324 +#: common/notifications.py:338 msgid "A order that is assigned to you was canceled" msgstr "" -#: common/notifications.py:330 common/notifications.py:337 order/api.py:462 +#: common/notifications.py:344 common/notifications.py:351 order/api.py:440 msgid "Items Received" msgstr "" -#: common/notifications.py:332 +#: common/notifications.py:346 msgid "Items have been received against a purchase order" msgstr "" -#: common/notifications.py:339 +#: common/notifications.py:353 msgid "Items have been received against a return order" msgstr "" -#: common/notifications.py:457 +#: common/notifications.py:475 msgid "Error raised by plugin" msgstr "" -#: common/serializers.py:375 +#: common/serializers.py:423 msgid "Is Running" msgstr "" -#: common/serializers.py:381 +#: common/serializers.py:429 msgid "Pending Tasks" msgstr "" -#: common/serializers.py:387 +#: common/serializers.py:435 msgid "Scheduled Tasks" msgstr "" -#: common/serializers.py:393 +#: common/serializers.py:441 msgid "Failed Tasks" msgstr "" -#: common/serializers.py:408 +#: common/serializers.py:456 msgid "Task ID" msgstr "" -#: common/serializers.py:408 +#: common/serializers.py:456 msgid "Unique task ID" msgstr "" -#: common/serializers.py:410 +#: common/serializers.py:458 msgid "Lock" msgstr "" -#: common/serializers.py:410 +#: common/serializers.py:458 msgid "Lock time" msgstr "" -#: common/serializers.py:412 +#: common/serializers.py:460 msgid "Task name" msgstr "" -#: common/serializers.py:414 +#: common/serializers.py:462 msgid "Function" msgstr "" -#: common/serializers.py:414 +#: common/serializers.py:462 msgid "Function name" msgstr "" -#: common/serializers.py:416 +#: common/serializers.py:464 msgid "Arguments" msgstr "" -#: common/serializers.py:416 +#: common/serializers.py:464 msgid "Task arguments" msgstr "" -#: common/serializers.py:419 +#: common/serializers.py:467 msgid "Keyword Arguments" msgstr "" -#: common/serializers.py:419 +#: common/serializers.py:467 msgid "Task keyword arguments" msgstr "" -#: common/serializers.py:529 +#: common/serializers.py:577 msgid "Filename" msgstr "" -#: common/serializers.py:536 report/api.py:100 report/serializers.py:53 +#: common/serializers.py:584 report/api.py:100 report/serializers.py:54 msgid "Model Type" msgstr "" -#: common/serializers.py:565 +#: common/serializers.py:612 msgid "User does not have permission to create or edit attachments for this model" msgstr "" @@ -4116,15 +4295,15 @@ msgstr "" msgid "Match Items" msgstr "" -#: common/views.py:401 +#: common/views.py:397 msgid "Fields matching failed" msgstr "" -#: common/views.py:464 +#: common/views.py:460 msgid "Parts imported" msgstr "" -#: common/views.py:494 order/templates/order/order_wizard/match_fields.html:27 +#: common/views.py:490 order/templates/order/order_wizard/match_fields.html:27 #: order/templates/order/order_wizard/match_parts.html:19 #: order/templates/order/order_wizard/po_upload.html:49 #: part/templates/part/import_wizard/match_fields.html:27 @@ -4155,429 +4334,429 @@ msgstr "" msgid "Supplier is Active" msgstr "" -#: company/models.py:100 company/models.py:371 +#: company/models.py:97 company/models.py:368 #: company/templates/company/company_base.html:8 #: company/templates/company/company_base.html:12 stock/api.py:812 -#: templates/InvenTree/search.html:178 templates/js/translated/company.js:496 +#: templates/InvenTree/search.html:178 templates/js/translated/company.js:497 msgid "Company" msgstr "" -#: company/models.py:101 company/views.py:51 +#: company/models.py:98 company/views.py:51 #: templates/js/translated/search.js:192 msgid "Companies" msgstr "" -#: company/models.py:117 +#: company/models.py:114 msgid "Company description" msgstr "" -#: company/models.py:118 +#: company/models.py:115 msgid "Description of the company" msgstr "" -#: company/models.py:123 company/templates/company/company_base.html:106 +#: company/models.py:120 company/templates/company/company_base.html:106 #: templates/InvenTree/settings/plugin_settings.html:54 -#: templates/js/translated/company.js:532 +#: templates/js/translated/company.js:533 msgid "Website" msgstr "" -#: company/models.py:123 +#: company/models.py:120 msgid "Company website URL" msgstr "" -#: company/models.py:128 +#: company/models.py:125 msgid "Phone number" msgstr "" -#: company/models.py:130 +#: company/models.py:127 msgid "Contact phone number" msgstr "" -#: company/models.py:137 +#: company/models.py:134 msgid "Contact email address" msgstr "" -#: company/models.py:142 company/models.py:275 -#: company/templates/company/company_base.html:145 order/models.py:342 -#: order/templates/order/order_base.html:208 -#: order/templates/order/return_order_base.html:177 -#: order/templates/order/sales_order_base.html:221 +#: company/models.py:139 company/models.py:272 +#: company/templates/company/company_base.html:145 order/models.py:349 +#: order/templates/order/order_base.html:217 +#: order/templates/order/return_order_base.html:178 +#: order/templates/order/sales_order_base.html:222 msgid "Contact" msgstr "" -#: company/models.py:144 +#: company/models.py:141 msgid "Point of contact" msgstr "" -#: company/models.py:150 +#: company/models.py:147 msgid "Link to external company information" msgstr "" -#: company/models.py:163 +#: company/models.py:160 msgid "Is this company active?" msgstr "" -#: company/models.py:168 +#: company/models.py:165 msgid "Is customer" msgstr "" -#: company/models.py:169 +#: company/models.py:166 msgid "Do you sell items to this company?" msgstr "" -#: company/models.py:174 +#: company/models.py:171 msgid "Is supplier" msgstr "" -#: company/models.py:175 +#: company/models.py:172 msgid "Do you purchase items from this company?" msgstr "" -#: company/models.py:180 +#: company/models.py:177 msgid "Is manufacturer" msgstr "" -#: company/models.py:181 +#: company/models.py:178 msgid "Does this company manufacture parts?" msgstr "" -#: company/models.py:189 +#: company/models.py:186 msgid "Default currency used for this company" msgstr "" -#: company/models.py:314 company/templates/company/company_base.html:124 -#: order/models.py:352 order/templates/order/order_base.html:215 -#: order/templates/order/return_order_base.html:184 -#: order/templates/order/sales_order_base.html:228 +#: company/models.py:311 company/templates/company/company_base.html:124 +#: order/models.py:359 order/templates/order/order_base.html:224 +#: order/templates/order/return_order_base.html:185 +#: order/templates/order/sales_order_base.html:229 msgid "Address" msgstr "" -#: company/models.py:315 company/templates/company/sidebar.html:35 +#: company/models.py:312 company/templates/company/sidebar.html:35 msgid "Addresses" msgstr "" -#: company/models.py:372 +#: company/models.py:369 msgid "Select company" msgstr "" -#: company/models.py:377 +#: company/models.py:374 msgid "Address title" msgstr "" -#: company/models.py:378 +#: company/models.py:375 msgid "Title describing the address entry" msgstr "" -#: company/models.py:384 +#: company/models.py:381 msgid "Primary address" msgstr "" -#: company/models.py:385 +#: company/models.py:382 msgid "Set as primary address" msgstr "" -#: company/models.py:390 templates/js/translated/company.js:914 -#: templates/js/translated/company.js:971 +#: company/models.py:387 templates/js/translated/company.js:915 +#: templates/js/translated/company.js:972 msgid "Line 1" msgstr "" -#: company/models.py:391 +#: company/models.py:388 msgid "Address line 1" msgstr "" -#: company/models.py:397 templates/js/translated/company.js:915 -#: templates/js/translated/company.js:977 +#: company/models.py:394 templates/js/translated/company.js:916 +#: templates/js/translated/company.js:978 msgid "Line 2" msgstr "" -#: company/models.py:398 +#: company/models.py:395 msgid "Address line 2" msgstr "" -#: company/models.py:404 company/models.py:405 -#: templates/js/translated/company.js:983 +#: company/models.py:401 company/models.py:402 +#: templates/js/translated/company.js:984 msgid "Postal code" msgstr "" -#: company/models.py:411 +#: company/models.py:408 msgid "City/Region" msgstr "" -#: company/models.py:412 +#: company/models.py:409 msgid "Postal code city/region" msgstr "" -#: company/models.py:418 +#: company/models.py:415 msgid "State/Province" msgstr "" -#: company/models.py:419 +#: company/models.py:416 msgid "State or province" msgstr "" -#: company/models.py:425 templates/js/translated/company.js:1001 +#: company/models.py:422 templates/js/translated/company.js:1002 msgid "Country" msgstr "" -#: company/models.py:426 +#: company/models.py:423 msgid "Address country" msgstr "" -#: company/models.py:432 +#: company/models.py:429 msgid "Courier shipping notes" msgstr "" -#: company/models.py:433 +#: company/models.py:430 msgid "Notes for shipping courier" msgstr "" -#: company/models.py:439 +#: company/models.py:436 msgid "Internal shipping notes" msgstr "" -#: company/models.py:440 +#: company/models.py:437 msgid "Shipping notes for internal use" msgstr "" -#: company/models.py:447 +#: company/models.py:444 msgid "Link to address information (external)" msgstr "" -#: company/models.py:470 company/models.py:587 company/models.py:811 +#: company/models.py:467 company/models.py:584 company/models.py:808 #: company/templates/company/manufacturer_part.html:7 #: company/templates/company/manufacturer_part.html:24 -#: stock/templates/stock/item_base.html:217 +#: stock/templates/stock/item_base.html:214 msgid "Manufacturer Part" msgstr "" -#: company/models.py:487 company/models.py:779 stock/models.py:787 -#: stock/serializers.py:445 stock/templates/stock/item_base.html:142 +#: company/models.py:484 company/models.py:776 stock/models.py:864 +#: stock/serializers.py:455 stock/templates/stock/item_base.html:139 #: templates/js/translated/bom.js:622 msgid "Base Part" msgstr "" -#: company/models.py:489 company/models.py:781 +#: company/models.py:486 company/models.py:778 msgid "Select part" msgstr "" -#: company/models.py:498 company/templates/company/company_base.html:82 +#: company/models.py:495 company/templates/company/company_base.html:82 #: company/templates/company/manufacturer_part.html:90 -#: company/templates/company/supplier_part.html:145 part/serializers.py:554 -#: stock/templates/stock/item_base.html:207 -#: templates/js/translated/company.js:507 -#: templates/js/translated/company.js:1118 -#: templates/js/translated/company.js:1296 -#: templates/js/translated/company.js:1611 +#: company/templates/company/supplier_part.html:146 part/serializers.py:598 +#: stock/templates/stock/item_base.html:204 +#: templates/js/translated/company.js:508 +#: templates/js/translated/company.js:1119 +#: templates/js/translated/company.js:1297 +#: templates/js/translated/company.js:1612 #: templates/js/translated/table_filters.js:812 msgid "Manufacturer" msgstr "" -#: company/models.py:499 +#: company/models.py:496 msgid "Select manufacturer" msgstr "" -#: company/models.py:505 company/templates/company/manufacturer_part.html:101 -#: company/templates/company/supplier_part.html:153 order/serializers.py:556 -#: part/serializers.py:564 templates/js/translated/company.js:351 -#: templates/js/translated/company.js:1117 -#: templates/js/translated/company.js:1312 -#: templates/js/translated/company.js:1630 templates/js/translated/part.js:1807 -#: templates/js/translated/purchase_order.js:1921 -#: templates/js/translated/purchase_order.js:2123 +#: company/models.py:502 company/templates/company/manufacturer_part.html:101 +#: company/templates/company/supplier_part.html:154 order/serializers.py:641 +#: part/serializers.py:608 templates/js/translated/company.js:352 +#: templates/js/translated/company.js:1118 +#: templates/js/translated/company.js:1313 +#: templates/js/translated/company.js:1631 templates/js/translated/part.js:1807 +#: templates/js/translated/purchase_order.js:1905 +#: templates/js/translated/purchase_order.js:2107 msgid "MPN" msgstr "" -#: company/models.py:513 +#: company/models.py:510 msgid "URL for external manufacturer part link" msgstr "" -#: company/models.py:522 +#: company/models.py:519 msgid "Manufacturer part description" msgstr "" -#: company/models.py:575 +#: company/models.py:572 msgid "Manufacturer Part Parameter" msgstr "" -#: company/models.py:594 +#: company/models.py:591 msgid "Parameter name" msgstr "" -#: company/models.py:600 report/templates/report/inventree_test_report.html:104 -#: stock/models.py:2550 templates/js/translated/company.js:1166 -#: templates/js/translated/company.js:1419 templates/js/translated/part.js:1499 +#: company/models.py:597 report/templates/report/inventree_test_report.html:104 +#: stock/models.py:2666 templates/js/translated/company.js:1167 +#: templates/js/translated/company.js:1420 templates/js/translated/part.js:1499 #: templates/js/translated/stock.js:1607 msgid "Value" msgstr "" -#: company/models.py:601 +#: company/models.py:598 msgid "Parameter value" msgstr "" -#: company/models.py:608 company/templates/company/supplier_part.html:168 -#: part/admin.py:57 part/models.py:1147 part/models.py:3771 -#: part/templates/part/part_base.html:293 -#: templates/js/translated/company.js:1425 templates/js/translated/part.js:1518 +#: company/models.py:605 company/templates/company/supplier_part.html:169 +#: part/admin.py:57 part/models.py:1208 part/models.py:3822 +#: part/templates/part/part_base.html:301 +#: templates/js/translated/company.js:1426 templates/js/translated/part.js:1518 #: templates/js/translated/part.js:1622 templates/js/translated/part.js:2376 msgid "Units" msgstr "" -#: company/models.py:609 +#: company/models.py:606 msgid "Parameter units" msgstr "" -#: company/models.py:662 company/templates/company/supplier_part.html:7 -#: company/templates/company/supplier_part.html:24 order/api.py:442 -#: order/serializers.py:491 stock/models.py:798 -#: stock/templates/stock/item_base.html:233 -#: templates/js/translated/build.js:1052 -#: templates/js/translated/company.js:1600 -#: templates/js/translated/purchase_order.js:752 -#: templates/js/translated/stock.js:2365 +#: company/models.py:659 company/templates/company/supplier_part.html:8 +#: company/templates/company/supplier_part.html:25 order/api.py:392 +#: order/serializers.py:576 stock/models.py:875 +#: stock/templates/stock/item_base.html:230 +#: templates/js/translated/build.js:1055 +#: templates/js/translated/company.js:1601 +#: templates/js/translated/purchase_order.js:735 +#: templates/js/translated/stock.js:2366 msgid "Supplier Part" msgstr "" -#: company/models.py:719 +#: company/models.py:716 msgid "Pack units must be compatible with the base part units" msgstr "" -#: company/models.py:726 +#: company/models.py:723 msgid "Pack units must be greater than zero" msgstr "" -#: company/models.py:740 +#: company/models.py:737 msgid "Linked manufacturer part must reference the same base part" msgstr "" -#: company/models.py:789 company/templates/company/company_base.html:87 -#: company/templates/company/supplier_part.html:129 order/models.py:491 -#: order/templates/order/order_base.html:141 part/bom.py:280 part/bom.py:318 -#: part/serializers.py:538 plugin/builtin/suppliers/digikey.py:25 +#: company/models.py:786 company/templates/company/company_base.html:87 +#: company/templates/company/supplier_part.html:130 order/models.py:503 +#: order/templates/order/order_base.html:150 part/bom.py:279 part/bom.py:314 +#: part/serializers.py:582 plugin/builtin/suppliers/digikey.py:25 #: plugin/builtin/suppliers/lcsc.py:26 plugin/builtin/suppliers/mouser.py:24 -#: plugin/builtin/suppliers/tme.py:26 stock/templates/stock/item_base.html:224 +#: plugin/builtin/suppliers/tme.py:26 stock/templates/stock/item_base.html:221 #: templates/email/overdue_purchase_order.html:16 -#: templates/js/translated/company.js:350 -#: templates/js/translated/company.js:511 -#: templates/js/translated/company.js:1584 templates/js/translated/part.js:1775 +#: templates/js/translated/company.js:351 +#: templates/js/translated/company.js:512 +#: templates/js/translated/company.js:1585 templates/js/translated/part.js:1775 #: templates/js/translated/pricing.js:498 -#: templates/js/translated/purchase_order.js:1759 +#: templates/js/translated/purchase_order.js:1743 #: templates/js/translated/table_filters.js:816 msgid "Supplier" msgstr "" -#: company/models.py:790 +#: company/models.py:787 msgid "Select supplier" msgstr "" -#: company/models.py:796 part/serializers.py:549 +#: company/models.py:793 part/serializers.py:593 msgid "Supplier stock keeping unit" msgstr "" -#: company/models.py:802 +#: company/models.py:799 msgid "Is this supplier part active?" msgstr "" -#: company/models.py:812 +#: company/models.py:809 msgid "Select manufacturer part" msgstr "" -#: company/models.py:819 +#: company/models.py:816 msgid "URL for external supplier part link" msgstr "" -#: company/models.py:828 +#: company/models.py:825 msgid "Supplier part description" msgstr "" -#: company/models.py:835 company/templates/company/supplier_part.html:187 -#: order/serializers.py:698 part/admin.py:415 part/models.py:4288 +#: company/models.py:832 company/templates/company/supplier_part.html:188 +#: order/serializers.py:783 part/admin.py:415 part/models.py:4345 #: part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_bill_of_materials_report.html:140 #: report/templates/report/inventree_purchase_order_report.html:32 #: report/templates/report/inventree_return_order_report.html:27 #: report/templates/report/inventree_sales_order_report.html:32 #: report/templates/report/inventree_stock_location_report.html:105 -#: stock/serializers.py:776 templates/js/translated/purchase_order.js:1185 -#: templates/js/translated/purchase_order.js:1344 +#: stock/serializers.py:807 templates/js/translated/purchase_order.js:1168 +#: templates/js/translated/purchase_order.js:1327 msgid "Note" msgstr "" -#: company/models.py:844 part/models.py:2117 +#: company/models.py:841 part/models.py:2177 msgid "base cost" msgstr "" -#: company/models.py:845 part/models.py:2118 +#: company/models.py:842 part/models.py:2178 msgid "Minimum charge (e.g. stocking fee)" msgstr "" -#: company/models.py:853 +#: company/models.py:850 msgid "Part packaging" msgstr "" -#: company/models.py:858 templates/js/translated/company.js:1651 +#: company/models.py:855 templates/js/translated/company.js:1652 #: templates/js/translated/part.js:1828 templates/js/translated/part.js:1884 -#: templates/js/translated/purchase_order.js:311 -#: templates/js/translated/purchase_order.js:841 -#: templates/js/translated/purchase_order.js:1103 -#: templates/js/translated/purchase_order.js:2154 -#: templates/js/translated/purchase_order.js:2171 +#: templates/js/translated/purchase_order.js:294 +#: templates/js/translated/purchase_order.js:824 +#: templates/js/translated/purchase_order.js:1086 +#: templates/js/translated/purchase_order.js:2138 +#: templates/js/translated/purchase_order.js:2155 msgid "Pack Quantity" msgstr "" -#: company/models.py:860 +#: company/models.py:857 msgid "Total quantity supplied in a single pack. Leave empty for single items." msgstr "" -#: company/models.py:879 part/models.py:2124 +#: company/models.py:876 part/models.py:2184 msgid "multiple" msgstr "" -#: company/models.py:880 +#: company/models.py:877 msgid "Order multiple" msgstr "" -#: company/models.py:892 +#: company/models.py:889 msgid "Quantity available from supplier" msgstr "" -#: company/models.py:898 +#: company/models.py:895 msgid "Availability Updated" msgstr "" -#: company/models.py:899 +#: company/models.py:896 msgid "Date of last update of availability data" msgstr "" -#: company/models.py:1027 +#: company/models.py:1024 msgid "Supplier Price Break" msgstr "" -#: company/serializers.py:174 +#: company/serializers.py:178 msgid "Default currency used for this supplier" msgstr "" -#: company/serializers.py:210 +#: company/serializers.py:214 msgid "Company Name" msgstr "" -#: company/serializers.py:393 part/admin.py:126 part/serializers.py:898 -#: part/templates/part/part_base.html:197 -#: templates/js/translated/company.js:1689 +#: company/serializers.py:397 part/admin.py:126 part/serializers.py:950 +#: part/templates/part/part_base.html:198 stock/serializers.py:474 +#: templates/js/translated/company.js:1690 #: templates/js/translated/table_filters.js:362 msgid "In Stock" msgstr "" #: company/templates/company/company_base.html:16 -#: part/templates/part/part_base.html:146 -#: templates/js/translated/company.js:1287 -#: templates/js/translated/company.js:1575 -#: templates/js/translated/model_renderers.js:313 +#: part/templates/part/part_base.html:147 +#: templates/js/translated/company.js:1288 +#: templates/js/translated/company.js:1576 +#: templates/js/translated/model_renderers.js:316 #: templates/js/translated/part.js:817 templates/js/translated/part.js:1225 msgid "Inactive" msgstr "" #: company/templates/company/company_base.html:27 -#: templates/js/translated/purchase_order.js:242 +#: templates/js/translated/purchase_order.js:224 msgid "Create Purchase Order" msgstr "" @@ -4590,7 +4769,7 @@ msgid "Edit company information" msgstr "" #: company/templates/company/company_base.html:39 -#: templates/js/translated/company.js:445 +#: templates/js/translated/company.js:446 msgid "Edit Company" msgstr "" @@ -4605,11 +4784,12 @@ msgstr "" #: company/templates/company/company_base.html:53 #: company/templates/company/manufacturer_part.html:51 -#: company/templates/company/supplier_part.html:83 +#: company/templates/company/supplier_part.html:84 #: part/templates/part/part_thumb.html:20 #: report/templates/report/inventree_build_order_report.html:98 #: report/templates/report/inventree_purchase_order_report.html:40 #: report/templates/report/inventree_sales_order_report.html:40 +#: report/templates/report/inventree_sales_order_shipment_report.html:37 #: report/templates/report/inventree_test_report.html:84 #: report/templates/report/inventree_test_report.html:162 msgid "Part image" @@ -4630,16 +4810,16 @@ msgstr "" msgid "Delete image" msgstr "" -#: company/templates/company/company_base.html:92 order/models.py:990 -#: order/models.py:2147 order/templates/order/return_order_base.html:134 -#: order/templates/order/sales_order_base.html:151 stock/models.py:840 -#: stock/models.py:841 stock/serializers.py:1329 -#: stock/templates/stock/item_base.html:405 +#: company/templates/company/company_base.html:92 order/models.py:1017 +#: order/models.py:2186 order/templates/order/return_order_base.html:135 +#: order/templates/order/sales_order_base.html:152 stock/models.py:917 +#: stock/models.py:918 stock/serializers.py:1360 +#: stock/templates/stock/item_base.html:402 #: templates/email/overdue_sales_order.html:16 -#: templates/js/translated/company.js:503 +#: templates/js/translated/company.js:504 #: templates/js/translated/return_order.js:295 -#: templates/js/translated/sales_order.js:820 -#: templates/js/translated/stock.js:3043 +#: templates/js/translated/sales_order.js:779 +#: templates/js/translated/stock.js:3044 #: templates/js/translated/table_filters.js:820 msgid "Customer" msgstr "" @@ -4653,7 +4833,7 @@ msgid "Phone" msgstr "" #: company/templates/company/company_base.html:211 -#: part/templates/part/part_base.html:536 +#: part/templates/part/part_base.html:544 msgid "Remove Image" msgstr "" @@ -4662,19 +4842,19 @@ msgid "Remove associated image from this company" msgstr "" #: company/templates/company/company_base.html:214 -#: part/templates/part/part_base.html:539 +#: part/templates/part/part_base.html:547 #: templates/InvenTree/settings/user.html:88 #: templates/InvenTree/settings/user_sso.html:43 msgid "Remove" msgstr "" #: company/templates/company/company_base.html:243 -#: part/templates/part/part_base.html:568 +#: part/templates/part/part_base.html:576 msgid "Upload Image" msgstr "" #: company/templates/company/company_base.html:258 -#: part/templates/part/part_base.html:622 +#: part/templates/part/part_base.html:630 msgid "Download Image" msgstr "" @@ -4714,7 +4894,7 @@ msgstr "" #: company/templates/company/detail.html:75 #: company/templates/company/sidebar.html:12 #: company/templates/company/supplier_part_sidebar.html:7 -#: order/templates/order/order_base.html:13 +#: order/templates/order/order_base.html:14 #: order/templates/order/purchase_orders.html:8 #: order/templates/order/purchase_orders.html:12 #: part/templates/part/detail.html:122 part/templates/part/part_sidebar.html:35 @@ -4737,7 +4917,7 @@ msgstr "" #: company/templates/company/detail.html:101 #: company/templates/company/sidebar.html:21 -#: order/templates/order/sales_order_base.html:13 +#: order/templates/order/sales_order_base.html:14 #: order/templates/order/sales_orders.html:8 #: order/templates/order/sales_orders.html:15 #: part/templates/part/detail.html:143 part/templates/part/part_sidebar.html:39 @@ -4764,7 +4944,7 @@ msgstr "" #: company/templates/company/detail.html:142 #: company/templates/company/sidebar.html:29 -#: order/templates/order/return_order_base.html:13 +#: order/templates/order/return_order_base.html:14 #: order/templates/order/return_orders.html:8 #: order/templates/order/return_orders.html:15 #: templates/InvenTree/settings/sidebar.html:61 @@ -4811,24 +4991,24 @@ msgid "Manufacturers" msgstr "" #: company/templates/company/manufacturer_part.html:35 -#: company/templates/company/supplier_part.html:227 -#: part/templates/part/detail.html:125 part/templates/part/part_base.html:83 +#: company/templates/company/supplier_part.html:228 +#: part/templates/part/detail.html:125 part/templates/part/part_base.html:84 msgid "Order part" msgstr "" #: company/templates/company/manufacturer_part.html:39 -#: templates/js/translated/company.js:1343 +#: templates/js/translated/company.js:1344 msgid "Edit manufacturer part" msgstr "" #: company/templates/company/manufacturer_part.html:43 -#: templates/js/translated/company.js:1344 +#: templates/js/translated/company.js:1345 msgid "Delete manufacturer part" msgstr "" #: company/templates/company/manufacturer_part.html:65 -#: company/templates/company/supplier_part.html:97 order/api.py:448 -#: order/serializers.py:564 +#: company/templates/company/supplier_part.html:98 order/api.py:411 +#: order/serializers.py:649 msgid "Internal Part" msgstr "" @@ -4837,8 +5017,8 @@ msgid "No manufacturer information available" msgstr "" #: company/templates/company/manufacturer_part.html:119 -#: company/templates/company/supplier_part.html:15 company/views.py:31 -#: part/admin.py:122 part/serializers.py:904 +#: company/templates/company/supplier_part.html:16 company/views.py:31 +#: part/admin.py:122 part/serializers.py:956 #: part/templates/part/part_sidebar.html:33 templates/InvenTree/search.html:190 #: templates/navbar.html:48 msgid "Suppliers" @@ -4887,112 +5067,113 @@ msgstr "" msgid "Contacts" msgstr "" -#: company/templates/company/supplier_part.html:50 -#: templates/js/translated/company.js:1526 +#: company/templates/company/supplier_part.html:51 +#: templates/js/translated/company.js:1527 msgid "Supplier part actions" msgstr "" -#: company/templates/company/supplier_part.html:55 #: company/templates/company/supplier_part.html:56 -#: company/templates/company/supplier_part.html:228 +#: company/templates/company/supplier_part.html:57 +#: company/templates/company/supplier_part.html:229 #: part/templates/part/detail.html:126 msgid "Order Part" msgstr "" -#: company/templates/company/supplier_part.html:60 #: company/templates/company/supplier_part.html:61 +#: company/templates/company/supplier_part.html:62 msgid "Update Availability" msgstr "" -#: company/templates/company/supplier_part.html:63 #: company/templates/company/supplier_part.html:64 -#: templates/js/translated/company.js:294 +#: company/templates/company/supplier_part.html:65 +#: templates/js/translated/company.js:295 msgid "Edit Supplier Part" msgstr "" -#: company/templates/company/supplier_part.html:68 #: company/templates/company/supplier_part.html:69 -#: templates/js/translated/company.js:269 +#: company/templates/company/supplier_part.html:70 +#: templates/js/translated/company.js:270 msgid "Duplicate Supplier Part" msgstr "" -#: company/templates/company/supplier_part.html:73 +#: company/templates/company/supplier_part.html:74 msgid "Delete Supplier Part" msgstr "" -#: company/templates/company/supplier_part.html:74 +#: company/templates/company/supplier_part.html:75 msgid "Delete Supplier Part" msgstr "" -#: company/templates/company/supplier_part.html:133 +#: company/templates/company/supplier_part.html:134 +#: order/templates/order/order_base.html:155 msgid "No supplier information available" msgstr "" -#: company/templates/company/supplier_part.html:139 order/serializers.py:553 -#: part/bom.py:287 part/bom.py:319 part/serializers.py:548 -#: templates/js/translated/company.js:349 templates/js/translated/part.js:1793 +#: company/templates/company/supplier_part.html:140 order/serializers.py:638 +#: part/bom.py:286 part/bom.py:315 part/serializers.py:592 +#: templates/js/translated/company.js:350 templates/js/translated/part.js:1793 #: templates/js/translated/pricing.js:510 -#: templates/js/translated/purchase_order.js:1920 -#: templates/js/translated/purchase_order.js:2098 +#: templates/js/translated/purchase_order.js:1904 +#: templates/js/translated/purchase_order.js:2082 msgid "SKU" msgstr "" -#: company/templates/company/supplier_part.html:206 +#: company/templates/company/supplier_part.html:207 msgid "Supplier Part Stock" msgstr "" -#: company/templates/company/supplier_part.html:209 -#: part/templates/part/detail.html:24 stock/templates/stock/location.html:204 +#: company/templates/company/supplier_part.html:210 +#: part/templates/part/detail.html:24 stock/templates/stock/location.html:205 msgid "Create new stock item" msgstr "" -#: company/templates/company/supplier_part.html:210 -#: part/templates/part/detail.html:25 stock/templates/stock/location.html:205 +#: company/templates/company/supplier_part.html:211 +#: part/templates/part/detail.html:25 stock/templates/stock/location.html:206 #: templates/js/translated/stock.js:543 msgid "New Stock Item" msgstr "" -#: company/templates/company/supplier_part.html:223 +#: company/templates/company/supplier_part.html:224 msgid "Supplier Part Orders" msgstr "" -#: company/templates/company/supplier_part.html:246 +#: company/templates/company/supplier_part.html:247 msgid "Pricing Information" msgstr "" -#: company/templates/company/supplier_part.html:251 -#: templates/js/translated/company.js:398 +#: company/templates/company/supplier_part.html:252 +#: templates/js/translated/company.js:399 #: templates/js/translated/pricing.js:684 msgid "Add Price Break" msgstr "" -#: company/templates/company/supplier_part.html:270 +#: company/templates/company/supplier_part.html:271 msgid "Supplier Part Notes" msgstr "" -#: company/templates/company/supplier_part.html:305 +#: company/templates/company/supplier_part.html:306 msgid "Supplier Part QR Code" msgstr "" -#: company/templates/company/supplier_part.html:316 +#: company/templates/company/supplier_part.html:317 msgid "Link Barcode to Supplier Part" msgstr "" -#: company/templates/company/supplier_part.html:388 +#: company/templates/company/supplier_part.html:389 msgid "Update Part Availability" msgstr "" #: company/templates/company/supplier_part_sidebar.html:5 -#: part/serializers.py:902 part/stocktake.py:223 +#: part/serializers.py:954 part/stocktake.py:223 #: part/templates/part/category.html:180 #: part/templates/part/category_sidebar.html:17 stock/admin.py:68 -#: stock/serializers.py:1014 stock/serializers.py:1192 -#: stock/templates/stock/location.html:167 -#: stock/templates/stock/location.html:188 -#: stock/templates/stock/location.html:200 +#: stock/serializers.py:1045 stock/serializers.py:1223 +#: stock/templates/stock/location.html:168 +#: stock/templates/stock/location.html:189 +#: stock/templates/stock/location.html:201 #: stock/templates/stock/location_sidebar.html:7 #: templates/InvenTree/search.html:155 templates/js/translated/part.js:1067 -#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2850 +#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2851 #: users/models.py:206 msgid "Stock Items" msgstr "" @@ -5022,99 +5203,99 @@ msgstr "" msgid "New Company" msgstr "" -#: generic/states/tests.py:18 order/status_codes.py:13 +#: generic/states/fields.py:118 +msgid "Custom status key" +msgstr "" + +#: generic/states/fields.py:119 +msgid "Additional status information for this item" +msgstr "" + +#: generic/states/tests.py:22 order/status_codes.py:13 msgid "Placed" msgstr "" -#: importer/mixins.py:263 +#: importer/mixins.py:261 msgid "Invalid export format" msgstr "" -#: importer/models.py:59 -msgid "Timestamp" -msgstr "" - -#: importer/models.py:64 +#: importer/models.py:65 msgid "Data file to import" msgstr "" -#: importer/models.py:73 templates/js/translated/tables.js:558 +#: importer/models.py:74 templates/js/translated/tables.js:558 msgid "Columns" msgstr "" -#: importer/models.py:84 +#: importer/models.py:85 msgid "Import status" msgstr "" -#: importer/models.py:94 +#: importer/models.py:95 msgid "Field Defaults" msgstr "" -#: importer/models.py:101 +#: importer/models.py:102 msgid "Field Overrides" msgstr "" -#: importer/models.py:108 +#: importer/models.py:109 msgid "Field Filters" msgstr "" -#: importer/models.py:230 +#: importer/models.py:239 msgid "Some required fields have not been mapped" msgstr "" -#: importer/models.py:387 +#: importer/models.py:396 msgid "Column is already mapped to a database field" msgstr "" -#: importer/models.py:392 +#: importer/models.py:401 msgid "Field is already mapped to a data column" msgstr "" -#: importer/models.py:401 +#: importer/models.py:410 msgid "Column mapping must be linked to a valid import session" msgstr "" -#: importer/models.py:406 +#: importer/models.py:415 msgid "Column does not exist in the data file" msgstr "" -#: importer/models.py:413 +#: importer/models.py:422 msgid "Field does not exist in the target model" msgstr "" -#: importer/models.py:417 +#: importer/models.py:426 msgid "Selected field is read-only" msgstr "" -#: importer/models.py:422 importer/models.py:493 +#: importer/models.py:431 importer/models.py:502 msgid "Import Session" msgstr "" -#: importer/models.py:426 +#: importer/models.py:435 msgid "Field" msgstr "" -#: importer/models.py:428 +#: importer/models.py:437 msgid "Column" msgstr "" -#: importer/models.py:497 +#: importer/models.py:506 msgid "Row Index" msgstr "" -#: importer/models.py:500 +#: importer/models.py:509 msgid "Original row data" msgstr "" -#: importer/models.py:503 part/models.py:3951 -msgid "Data" -msgstr "" - -#: importer/models.py:505 machine/models.py:110 +#: importer/models.py:514 machine/models.py:110 msgid "Errors" msgstr "" -#: importer/models.py:507 part/api.py:873 +#: importer/models.py:516 part/api.py:857 msgid "Valid" msgstr "" @@ -5166,19 +5347,19 @@ msgstr "" msgid "Row has already been completed" msgstr "" -#: importer/status_codes.py:11 +#: importer/status_codes.py:13 msgid "Initializing" msgstr "" -#: importer/status_codes.py:12 +#: importer/status_codes.py:18 msgid "Mapping Columns" msgstr "" -#: importer/status_codes.py:13 +#: importer/status_codes.py:21 msgid "Importing Data" msgstr "" -#: importer/status_codes.py:16 +#: importer/status_codes.py:24 msgid "Processing Data" msgstr "" @@ -5202,52 +5383,52 @@ msgstr "" msgid "Value must be a valid dictionary object" msgstr "" -#: machine/machine_types/label_printer.py:215 +#: machine/machine_types/label_printer.py:216 msgid "Copies" msgstr "" -#: machine/machine_types/label_printer.py:216 +#: machine/machine_types/label_printer.py:217 msgid "Number of copies to print for each label" msgstr "" -#: machine/machine_types/label_printer.py:231 +#: machine/machine_types/label_printer.py:232 msgid "Connected" msgstr "" -#: machine/machine_types/label_printer.py:232 order/api.py:1410 -#: templates/js/translated/sales_order.js:1078 +#: machine/machine_types/label_printer.py:233 order/api.py:1532 +#: templates/js/translated/sales_order.js:1044 msgid "Unknown" msgstr "" -#: machine/machine_types/label_printer.py:233 +#: machine/machine_types/label_printer.py:234 msgid "Printing" msgstr "" -#: machine/machine_types/label_printer.py:234 +#: machine/machine_types/label_printer.py:235 msgid "No media" msgstr "" -#: machine/machine_types/label_printer.py:235 +#: machine/machine_types/label_printer.py:236 msgid "Paper jam" msgstr "" -#: machine/machine_types/label_printer.py:236 +#: machine/machine_types/label_printer.py:237 msgid "Disconnected" msgstr "" -#: machine/machine_types/label_printer.py:243 +#: machine/machine_types/label_printer.py:244 msgid "Label Printer" msgstr "" -#: machine/machine_types/label_printer.py:244 +#: machine/machine_types/label_printer.py:245 msgid "Directly print labels for various items." msgstr "" -#: machine/machine_types/label_printer.py:250 +#: machine/machine_types/label_printer.py:251 msgid "Printer Location" msgstr "" -#: machine/machine_types/label_printer.py:251 +#: machine/machine_types/label_printer.py:252 msgid "Scope the printer to a specific location" msgstr "" @@ -5307,79 +5488,75 @@ msgstr "" #: report/templates/report/inventree_purchase_order_report.html:31 #: report/templates/report/inventree_sales_order_report.html:31 #: templates/js/translated/order.js:352 -#: templates/js/translated/purchase_order.js:2195 -#: templates/js/translated/sales_order.js:1883 +#: templates/js/translated/purchase_order.js:2179 +#: templates/js/translated/sales_order.js:1864 msgid "Total Price" msgstr "" -#: order/api.py:80 order/api.py:151 order/serializers.py:93 -#: order/templates/order/order_base.html:123 -#: order/templates/order/return_order_base.html:116 -#: order/templates/order/sales_order_base.html:125 +#: order/api.py:78 order/api.py:149 order/serializers.py:124 +#: order/templates/order/order_base.html:124 +#: order/templates/order/return_order_base.html:117 +#: order/templates/order/sales_order_base.html:126 msgid "Order Status" msgstr "" -#: order/api.py:88 order/templates/order/order_base.html:111 -#: order/templates/order/return_order_base.html:104 -#: order/templates/order/sales_order_base.html:113 +#: order/api.py:86 order/templates/order/order_base.html:112 +#: order/templates/order/return_order_base.html:105 +#: order/templates/order/sales_order_base.html:114 msgid "Order Reference" msgstr "" -#: order/api.py:116 templates/js/translated/table_filters.js:93 +#: order/api.py:114 order/api.py:1022 +#: templates/js/translated/table_filters.js:93 #: templates/js/translated/table_filters.js:625 #: templates/js/translated/table_filters.js:651 #: templates/js/translated/table_filters.js:666 msgid "Outstanding" msgstr "" -#: order/api.py:132 +#: order/api.py:130 msgid "Has Project Code" msgstr "" -#: order/api.py:155 templates/js/translated/table_filters.js:201 +#: order/api.py:153 templates/js/translated/table_filters.js:201 #: templates/js/translated/table_filters.js:791 msgid "Has Pricing" msgstr "" -#: order/api.py:230 -msgid "No matching purchase order found" -msgstr "" - -#: order/api.py:425 order/api.py:763 order/models.py:1484 order/models.py:1598 -#: order/models.py:1649 order/models.py:1764 order/models.py:1923 -#: order/models.py:2383 order/models.py:2439 -#: templates/js/translated/sales_order.js:1524 +#: order/api.py:375 order/api.py:771 order/api.py:986 order/models.py:1500 +#: order/models.py:1614 order/models.py:1665 order/models.py:1793 +#: order/models.py:1956 order/models.py:2422 order/models.py:2478 +#: templates/js/translated/sales_order.js:1490 msgid "Order" msgstr "" -#: order/api.py:429 order/api.py:784 +#: order/api.py:379 order/api.py:809 msgid "Order Complete" msgstr "" -#: order/api.py:452 +#: order/api.py:430 msgid "Order Pending" msgstr "" -#: order/api.py:1404 order/models.py:379 order/models.py:1485 -#: order/models.py:1599 order/templates/order/order_base.html:9 -#: order/templates/order/order_base.html:18 +#: order/api.py:1526 order/models.py:386 order/models.py:1501 +#: order/models.py:1615 order/templates/order/order_base.html:10 +#: order/templates/order/order_base.html:19 #: report/templates/report/inventree_purchase_order_report.html:14 -#: stock/serializers.py:120 stock/templates/stock/item_base.html:176 +#: stock/serializers.py:121 stock/templates/stock/item_base.html:173 #: templates/email/overdue_purchase_order.html:15 #: templates/js/translated/part.js:1752 templates/js/translated/pricing.js:804 -#: templates/js/translated/purchase_order.js:168 -#: templates/js/translated/purchase_order.js:753 -#: templates/js/translated/purchase_order.js:1743 -#: templates/js/translated/stock.js:2345 templates/js/translated/stock.js:2991 +#: templates/js/translated/purchase_order.js:736 +#: templates/js/translated/purchase_order.js:1727 +#: templates/js/translated/stock.js:2346 templates/js/translated/stock.js:2992 msgid "Purchase Order" msgstr "" -#: order/api.py:1408 order/models.py:2091 order/models.py:2384 -#: order/models.py:2440 order/templates/order/return_order_base.html:9 -#: order/templates/order/return_order_base.html:28 +#: order/api.py:1530 order/models.py:2124 order/models.py:2423 +#: order/models.py:2479 order/templates/order/return_order_base.html:10 +#: order/templates/order/return_order_base.html:29 #: report/templates/report/inventree_return_order_report.html:13 #: templates/js/translated/return_order.js:280 -#: templates/js/translated/stock.js:3025 +#: templates/js/translated/stock.js:3026 msgid "Return Order" msgstr "" @@ -5387,751 +5564,782 @@ msgstr "" msgid "Total price for this order" msgstr "" -#: order/models.py:95 order/serializers.py:71 +#: order/models.py:95 order/serializers.py:73 msgid "Order Currency" msgstr "" -#: order/models.py:98 order/serializers.py:72 +#: order/models.py:98 order/serializers.py:74 msgid "Currency for this order (leave blank to use company default)" msgstr "" -#: order/models.py:246 +#: order/models.py:243 msgid "Contact does not match selected company" msgstr "" -#: order/models.py:289 +#: order/models.py:296 msgid "Order description (optional)" msgstr "" -#: order/models.py:298 +#: order/models.py:305 msgid "Select project code for this order" msgstr "" -#: order/models.py:302 order/models.py:1385 order/models.py:1817 +#: order/models.py:309 order/models.py:1402 order/models.py:1846 msgid "Link to external page" msgstr "" -#: order/models.py:310 +#: order/models.py:317 msgid "Expected date for order delivery. Order will be overdue after this date." msgstr "" -#: order/models.py:324 +#: order/models.py:331 msgid "Created By" msgstr "" -#: order/models.py:332 +#: order/models.py:339 msgid "User or group responsible for this order" msgstr "" -#: order/models.py:343 +#: order/models.py:350 msgid "Point of contact for this order" msgstr "" -#: order/models.py:353 +#: order/models.py:360 msgid "Company address for this order" msgstr "" -#: order/models.py:468 order/models.py:979 +#: order/models.py:480 order/models.py:1006 msgid "Order reference" msgstr "" -#: order/models.py:477 +#: order/models.py:489 msgid "Purchase order status" msgstr "" -#: order/models.py:492 +#: order/models.py:504 msgid "Company from which the items are being ordered" msgstr "" -#: order/models.py:503 order/templates/order/order_base.html:153 -#: templates/js/translated/purchase_order.js:1772 +#: order/models.py:515 order/templates/order/order_base.html:162 +#: templates/js/translated/purchase_order.js:1756 msgid "Supplier Reference" msgstr "" -#: order/models.py:504 +#: order/models.py:516 msgid "Supplier order reference code" msgstr "" -#: order/models.py:513 +#: order/models.py:525 msgid "received by" msgstr "" -#: order/models.py:519 order/models.py:2173 +#: order/models.py:531 order/models.py:2212 msgid "Issue Date" msgstr "" -#: order/models.py:520 order/models.py:2174 +#: order/models.py:532 order/models.py:2213 msgid "Date order was issued" msgstr "" -#: order/models.py:527 order/models.py:2181 +#: order/models.py:539 order/models.py:2220 msgid "Date order was completed" msgstr "" -#: order/models.py:571 +#: order/models.py:549 order/models.py:1552 +msgid "Destination for received items" +msgstr "" + +#: order/models.py:593 msgid "Part supplier must match PO supplier" msgstr "" -#: order/models.py:806 +#: order/models.py:828 msgid "Quantity must be a positive number" msgstr "" -#: order/models.py:991 +#: order/models.py:1018 msgid "Company to which the items are being sold" msgstr "" -#: order/models.py:1003 +#: order/models.py:1030 msgid "Sales order status" msgstr "" -#: order/models.py:1014 order/models.py:2166 +#: order/models.py:1041 order/models.py:2205 msgid "Customer Reference " msgstr "" -#: order/models.py:1015 order/models.py:2167 +#: order/models.py:1042 order/models.py:2206 msgid "Customer order reference code" msgstr "" -#: order/models.py:1019 order/models.py:1771 -#: templates/js/translated/sales_order.js:879 -#: templates/js/translated/sales_order.js:1060 +#: order/models.py:1046 order/models.py:1800 +#: templates/js/translated/sales_order.js:838 +#: templates/js/translated/sales_order.js:1026 msgid "Shipment Date" msgstr "" -#: order/models.py:1028 +#: order/models.py:1055 msgid "shipped by" msgstr "" -#: order/models.py:1077 +#: order/models.py:1094 msgid "Order is already complete" msgstr "" -#: order/models.py:1080 +#: order/models.py:1097 msgid "Order is already cancelled" msgstr "" -#: order/models.py:1084 +#: order/models.py:1101 msgid "Only an open order can be marked as complete" msgstr "" -#: order/models.py:1088 +#: order/models.py:1105 msgid "Order cannot be completed as there are incomplete shipments" msgstr "" -#: order/models.py:1093 +#: order/models.py:1110 msgid "Order cannot be completed as there are incomplete line items" msgstr "" -#: order/models.py:1357 +#: order/models.py:1374 msgid "Item quantity" msgstr "" -#: order/models.py:1374 +#: order/models.py:1391 msgid "Line item reference" msgstr "" -#: order/models.py:1381 +#: order/models.py:1398 msgid "Line item notes" msgstr "" -#: order/models.py:1393 +#: order/models.py:1410 msgid "Target date for this line item (leave blank to use the target date from the order)" msgstr "" -#: order/models.py:1414 +#: order/models.py:1431 msgid "Line item description (optional)" msgstr "" -#: order/models.py:1420 -msgid "Context" -msgstr "" - -#: order/models.py:1421 +#: order/models.py:1438 msgid "Additional context for this line" msgstr "" -#: order/models.py:1431 +#: order/models.py:1448 msgid "Unit price" msgstr "" -#: order/models.py:1445 +#: order/models.py:1462 msgid "Purchase Order Line Item" msgstr "" -#: order/models.py:1469 +#: order/models.py:1486 msgid "Supplier part must match supplier" msgstr "" -#: order/models.py:1476 -msgid "deleted" -msgstr "" - -#: order/models.py:1504 +#: order/models.py:1520 msgid "Supplier part" msgstr "" -#: order/models.py:1511 order/templates/order/order_base.html:201 +#: order/models.py:1527 order/templates/order/order_base.html:210 #: templates/js/translated/part.js:1876 templates/js/translated/part.js:1908 -#: templates/js/translated/purchase_order.js:1369 -#: templates/js/translated/purchase_order.js:2239 +#: templates/js/translated/purchase_order.js:1352 +#: templates/js/translated/purchase_order.js:2223 #: templates/js/translated/return_order.js:762 #: templates/js/translated/table_filters.js:119 #: templates/js/translated/table_filters.js:605 msgid "Received" msgstr "" -#: order/models.py:1512 +#: order/models.py:1528 msgid "Number of items received" msgstr "" -#: order/models.py:1520 stock/models.py:959 stock/serializers.py:610 -#: stock/templates/stock/item_base.html:183 -#: templates/js/translated/stock.js:2396 +#: order/models.py:1536 stock/models.py:1036 stock/serializers.py:637 +#: stock/templates/stock/item_base.html:180 +#: templates/js/translated/stock.js:2397 msgid "Purchase Price" msgstr "" -#: order/models.py:1521 +#: order/models.py:1537 msgid "Unit purchase price" msgstr "" -#: order/models.py:1536 -msgid "Where does the Purchaser want this item to be stored?" -msgstr "" - -#: order/models.py:1587 +#: order/models.py:1603 msgid "Purchase Order Extra Line" msgstr "" -#: order/models.py:1616 +#: order/models.py:1632 msgid "Sales Order Line Item" msgstr "" -#: order/models.py:1637 +#: order/models.py:1653 msgid "Virtual part cannot be assigned to a sales order" msgstr "" -#: order/models.py:1642 +#: order/models.py:1658 msgid "Only salable parts can be assigned to a sales order" msgstr "" -#: order/models.py:1668 part/templates/part/part_pricing.html:107 -#: part/templates/part/prices.html:139 templates/js/translated/pricing.js:957 +#: order/models.py:1684 part/templates/part/part_pricing.html:107 +#: part/templates/part/prices.html:139 templates/js/translated/pricing.js:955 msgid "Sale Price" msgstr "" -#: order/models.py:1669 +#: order/models.py:1685 msgid "Unit sale price" msgstr "" -#: order/models.py:1678 order/status_codes.py:48 -#: templates/js/translated/sales_order.js:1559 -#: templates/js/translated/sales_order.js:1680 -#: templates/js/translated/sales_order.js:1993 +#: order/models.py:1694 order/status_codes.py:50 +#: templates/js/translated/sales_order.js:1525 +#: templates/js/translated/sales_order.js:1661 +#: templates/js/translated/sales_order.js:1974 msgid "Shipped" msgstr "" -#: order/models.py:1679 +#: order/models.py:1695 msgid "Shipped quantity" msgstr "" -#: order/models.py:1751 +#: order/models.py:1769 msgid "Sales Order Shipment" msgstr "" -#: order/models.py:1772 +#: order/models.py:1801 msgid "Date of shipment" msgstr "" -#: order/models.py:1778 templates/js/translated/sales_order.js:1072 +#: order/models.py:1807 templates/js/translated/sales_order.js:1038 msgid "Delivery Date" msgstr "" -#: order/models.py:1779 +#: order/models.py:1808 msgid "Date of delivery of shipment" msgstr "" -#: order/models.py:1787 +#: order/models.py:1816 msgid "Checked By" msgstr "" -#: order/models.py:1788 +#: order/models.py:1817 msgid "User who checked this shipment" msgstr "" -#: order/models.py:1795 order/models.py:2018 order/serializers.py:1475 -#: order/serializers.py:1585 templates/js/translated/model_renderers.js:455 +#: order/models.py:1824 order/models.py:2051 order/serializers.py:1601 +#: order/serializers.py:1725 +#: report/templates/report/inventree_sales_order_shipment_report.html:14 +#: templates/js/translated/model_renderers.js:458 +#: templates/js/translated/sales_order.js:1615 msgid "Shipment" msgstr "" -#: order/models.py:1796 +#: order/models.py:1825 msgid "Shipment number" msgstr "" -#: order/models.py:1804 +#: order/models.py:1833 msgid "Tracking Number" msgstr "" -#: order/models.py:1805 +#: order/models.py:1834 msgid "Shipment tracking information" msgstr "" -#: order/models.py:1812 +#: order/models.py:1841 msgid "Invoice Number" msgstr "" -#: order/models.py:1813 +#: order/models.py:1842 msgid "Reference number for associated invoice" msgstr "" -#: order/models.py:1833 +#: order/models.py:1862 msgid "Shipment has already been sent" msgstr "" -#: order/models.py:1836 +#: order/models.py:1865 msgid "Shipment has no allocated stock items" msgstr "" -#: order/models.py:1912 +#: order/models.py:1945 msgid "Sales Order Extra Line" msgstr "" -#: order/models.py:1941 +#: order/models.py:1974 msgid "Sales Order Allocation" msgstr "" -#: order/models.py:1964 order/models.py:1966 +#: order/models.py:1997 order/models.py:1999 msgid "Stock item has not been assigned" msgstr "" -#: order/models.py:1973 +#: order/models.py:2006 msgid "Cannot allocate stock item to a line with a different part" msgstr "" -#: order/models.py:1976 +#: order/models.py:2009 msgid "Cannot allocate stock to a line without a part" msgstr "" -#: order/models.py:1979 +#: order/models.py:2012 msgid "Allocation quantity cannot exceed stock quantity" msgstr "" -#: order/models.py:1998 order/serializers.py:1345 +#: order/models.py:2031 order/serializers.py:1471 msgid "Quantity must be 1 for serialized stock item" msgstr "" -#: order/models.py:2001 +#: order/models.py:2034 msgid "Sales order does not match shipment" msgstr "" -#: order/models.py:2002 plugin/base/barcodes/api.py:524 +#: order/models.py:2035 plugin/base/barcodes/api.py:629 msgid "Shipment does not match sales order" msgstr "" -#: order/models.py:2010 +#: order/models.py:2043 msgid "Line" msgstr "" -#: order/models.py:2019 +#: order/models.py:2052 msgid "Sales order shipment reference" msgstr "" -#: order/models.py:2032 order/models.py:2391 +#: order/models.py:2065 order/models.py:2430 #: templates/js/translated/return_order.js:720 msgid "Item" msgstr "" -#: order/models.py:2033 +#: order/models.py:2066 msgid "Select stock item to allocate" msgstr "" -#: order/models.py:2042 +#: order/models.py:2075 msgid "Enter stock allocation quantity" msgstr "" -#: order/models.py:2136 +#: order/models.py:2175 msgid "Return Order reference" msgstr "" -#: order/models.py:2148 +#: order/models.py:2187 msgid "Company from which items are being returned" msgstr "" -#: order/models.py:2160 +#: order/models.py:2199 msgid "Return order status" msgstr "" -#: order/models.py:2362 +#: order/models.py:2401 msgid "Return Order Line Item" msgstr "" -#: order/models.py:2376 +#: order/models.py:2415 msgid "Only serialized items can be assigned to a Return Order" msgstr "" -#: order/models.py:2392 +#: order/models.py:2431 msgid "Select item to return from customer" msgstr "" -#: order/models.py:2398 +#: order/models.py:2437 msgid "Received Date" msgstr "" -#: order/models.py:2399 +#: order/models.py:2438 msgid "The date this this return item was received" msgstr "" -#: order/models.py:2410 templates/js/translated/return_order.js:731 +#: order/models.py:2449 templates/js/translated/return_order.js:731 #: templates/js/translated/table_filters.js:122 msgid "Outcome" msgstr "" -#: order/models.py:2411 +#: order/models.py:2450 msgid "Outcome for this line item" msgstr "" -#: order/models.py:2418 +#: order/models.py:2457 msgid "Cost associated with return or repair for this line item" msgstr "" -#: order/models.py:2428 +#: order/models.py:2467 msgid "Return Order Extra Line" msgstr "" -#: order/serializers.py:86 +#: order/serializers.py:87 +msgid "Order ID" +msgstr "" + +#: order/serializers.py:87 +msgid "ID of the order to duplicate" +msgstr "" + +#: order/serializers.py:93 +msgid "Copy Lines" +msgstr "" + +#: order/serializers.py:94 +msgid "Copy line items from the original order" +msgstr "" + +#: order/serializers.py:100 +msgid "Copy Extra Lines" +msgstr "" + +#: order/serializers.py:101 +msgid "Copy extra line items from the original order" +msgstr "" + +#: order/serializers.py:117 msgid "Completed Lines" msgstr "" -#: order/serializers.py:283 stock/admin.py:195 +#: order/serializers.py:161 +msgid "Duplicate Order" +msgstr "" + +#: order/serializers.py:162 +msgid "Specify options for duplicating this order" +msgstr "" + +#: order/serializers.py:234 +msgid "Invalid order ID" +msgstr "" + +#: order/serializers.py:374 stock/admin.py:196 msgid "Supplier Name" msgstr "" -#: order/serializers.py:331 +#: order/serializers.py:416 msgid "Order cannot be cancelled" msgstr "" -#: order/serializers.py:346 order/serializers.py:1366 +#: order/serializers.py:431 order/serializers.py:1492 msgid "Allow order to be closed with incomplete line items" msgstr "" -#: order/serializers.py:356 order/serializers.py:1376 +#: order/serializers.py:441 order/serializers.py:1502 msgid "Order has incomplete line items" msgstr "" -#: order/serializers.py:506 +#: order/serializers.py:591 msgid "Order is not open" msgstr "" -#: order/serializers.py:527 +#: order/serializers.py:612 msgid "Auto Pricing" msgstr "" -#: order/serializers.py:529 +#: order/serializers.py:614 msgid "Automatically calculate purchase price based on supplier part data" msgstr "" -#: order/serializers.py:539 +#: order/serializers.py:624 msgid "Purchase price currency" msgstr "" -#: order/serializers.py:545 +#: order/serializers.py:630 msgid "Merge Items" msgstr "" -#: order/serializers.py:547 +#: order/serializers.py:632 msgid "Merge items with the same part, destination and target date into one line item" msgstr "" -#: order/serializers.py:560 part/models.py:1033 +#: order/serializers.py:645 part/models.py:1094 part/serializers.py:387 msgid "Internal Part Number" msgstr "" -#: order/serializers.py:568 +#: order/serializers.py:653 msgid "Internal Part Name" msgstr "" -#: order/serializers.py:584 +#: order/serializers.py:669 msgid "Supplier part must be specified" msgstr "" -#: order/serializers.py:587 +#: order/serializers.py:672 msgid "Purchase order must be specified" msgstr "" -#: order/serializers.py:595 +#: order/serializers.py:680 msgid "Supplier must match purchase order" msgstr "" -#: order/serializers.py:596 +#: order/serializers.py:681 msgid "Purchase order must match supplier" msgstr "" -#: order/serializers.py:639 order/serializers.py:1446 +#: order/serializers.py:724 order/serializers.py:1572 msgid "Line Item" msgstr "" -#: order/serializers.py:645 +#: order/serializers.py:730 msgid "Line item does not match purchase order" msgstr "" -#: order/serializers.py:655 order/serializers.py:779 order/serializers.py:1782 +#: order/serializers.py:740 order/serializers.py:881 order/serializers.py:1934 msgid "Select destination location for received items" msgstr "" -#: order/serializers.py:671 templates/js/translated/purchase_order.js:1130 +#: order/serializers.py:756 templates/js/translated/purchase_order.js:1113 #: templates/js/translated/stock.js:1200 msgid "Enter batch code for incoming stock items" msgstr "" -#: order/serializers.py:679 templates/js/translated/purchase_order.js:1155 +#: order/serializers.py:764 templates/js/translated/purchase_order.js:1138 msgid "Enter serial numbers for incoming stock items" msgstr "" -#: order/serializers.py:691 +#: order/serializers.py:776 msgid "Override packaging information for incoming stock items" msgstr "" -#: order/serializers.py:699 +#: order/serializers.py:784 msgid "Additional note for incoming stock items" msgstr "" -#: order/serializers.py:706 templates/js/translated/barcode.js:52 +#: order/serializers.py:791 templates/js/translated/barcode.js:52 msgid "Barcode" msgstr "" -#: order/serializers.py:707 +#: order/serializers.py:792 msgid "Scanned barcode" msgstr "" -#: order/serializers.py:723 +#: order/serializers.py:808 msgid "Barcode is already in use" msgstr "" -#: order/serializers.py:747 +#: order/serializers.py:831 msgid "An integer quantity must be provided for trackable parts" msgstr "" -#: order/serializers.py:795 order/serializers.py:1798 +#: order/serializers.py:898 order/serializers.py:1950 msgid "Line items must be provided" msgstr "" -#: order/serializers.py:811 +#: order/serializers.py:914 msgid "Destination location must be specified" msgstr "" -#: order/serializers.py:822 +#: order/serializers.py:925 msgid "Supplied barcode values must be unique" msgstr "" -#: order/serializers.py:1187 +#: order/serializers.py:1221 msgid "Sale price currency" msgstr "" -#: order/serializers.py:1248 +#: order/serializers.py:1260 +msgid "Allocated Items" +msgstr "" + +#: order/serializers.py:1374 msgid "No shipment details provided" msgstr "" -#: order/serializers.py:1309 order/serializers.py:1455 +#: order/serializers.py:1435 order/serializers.py:1581 msgid "Line item is not associated with this order" msgstr "" -#: order/serializers.py:1328 +#: order/serializers.py:1454 msgid "Quantity must be positive" msgstr "" -#: order/serializers.py:1465 +#: order/serializers.py:1591 msgid "Enter serial numbers to allocate" msgstr "" -#: order/serializers.py:1487 order/serializers.py:1593 +#: order/serializers.py:1613 order/serializers.py:1733 msgid "Shipment has already been shipped" msgstr "" -#: order/serializers.py:1490 order/serializers.py:1596 +#: order/serializers.py:1616 order/serializers.py:1736 msgid "Shipment is not associated with this order" msgstr "" -#: order/serializers.py:1537 +#: order/serializers.py:1671 msgid "No match found for the following serial numbers" msgstr "" -#: order/serializers.py:1544 -msgid "The following serial numbers are already allocated" +#: order/serializers.py:1678 +msgid "The following serial numbers are unavailable" msgstr "" -#: order/serializers.py:1752 +#: order/serializers.py:1904 msgid "Return order line item" msgstr "" -#: order/serializers.py:1758 +#: order/serializers.py:1910 msgid "Line item does not match return order" msgstr "" -#: order/serializers.py:1761 +#: order/serializers.py:1913 msgid "Line item has already been received" msgstr "" -#: order/serializers.py:1790 +#: order/serializers.py:1942 msgid "Items can only be received against orders which are in progress" msgstr "" -#: order/serializers.py:1873 +#: order/serializers.py:2025 msgid "Line price currency" msgstr "" -#: order/status_codes.py:17 order/status_codes.py:52 stock/status_codes.py:16 +#: order/status_codes.py:17 order/status_codes.py:54 stock/status_codes.py:16 msgid "Lost" msgstr "" -#: order/status_codes.py:18 order/status_codes.py:53 stock/status_codes.py:22 +#: order/status_codes.py:18 order/status_codes.py:55 stock/status_codes.py:24 msgid "Returned" msgstr "" -#: order/status_codes.py:45 order/status_codes.py:77 +#: order/status_codes.py:47 order/status_codes.py:79 msgid "In Progress" msgstr "" -#: order/status_codes.py:101 +#: order/status_codes.py:105 msgid "Return" msgstr "" -#: order/status_codes.py:104 +#: order/status_codes.py:108 msgid "Repair" msgstr "" -#: order/status_codes.py:107 +#: order/status_codes.py:111 msgid "Replace" msgstr "" -#: order/status_codes.py:110 +#: order/status_codes.py:114 msgid "Refund" msgstr "" -#: order/status_codes.py:113 +#: order/status_codes.py:117 msgid "Reject" msgstr "" -#: order/tasks.py:25 +#: order/tasks.py:30 msgid "Overdue Purchase Order" msgstr "" -#: order/tasks.py:30 +#: order/tasks.py:35 #, python-brace-format msgid "Purchase order {po} is now overdue" msgstr "" -#: order/tasks.py:75 +#: order/tasks.py:80 msgid "Overdue Sales Order" msgstr "" -#: order/tasks.py:80 +#: order/tasks.py:85 #, python-brace-format msgid "Sales order {so} is now overdue" msgstr "" -#: order/templates/order/order_base.html:51 +#: order/templates/order/order_base.html:52 msgid "Print purchase order report" msgstr "" -#: order/templates/order/order_base.html:53 -#: order/templates/order/return_order_base.html:62 -#: order/templates/order/sales_order_base.html:62 +#: order/templates/order/order_base.html:54 +#: order/templates/order/return_order_base.html:63 +#: order/templates/order/sales_order_base.html:63 msgid "Export order to file" msgstr "" -#: order/templates/order/order_base.html:59 -#: order/templates/order/return_order_base.html:72 -#: order/templates/order/sales_order_base.html:71 +#: order/templates/order/order_base.html:60 +#: order/templates/order/return_order_base.html:73 +#: order/templates/order/sales_order_base.html:72 msgid "Order actions" msgstr "" -#: order/templates/order/order_base.html:64 -#: order/templates/order/return_order_base.html:76 -#: order/templates/order/sales_order_base.html:75 +#: order/templates/order/order_base.html:65 +#: order/templates/order/return_order_base.html:77 +#: order/templates/order/sales_order_base.html:76 msgid "Edit order" msgstr "" -#: order/templates/order/order_base.html:68 +#: order/templates/order/order_base.html:69 msgid "Duplicate order" msgstr "" -#: order/templates/order/order_base.html:73 -#: order/templates/order/return_order_base.html:78 -#: order/templates/order/sales_order_base.html:77 +#: order/templates/order/order_base.html:74 +#: order/templates/order/return_order_base.html:79 +#: order/templates/order/sales_order_base.html:78 msgid "Hold order" msgstr "" -#: order/templates/order/order_base.html:78 -#: order/templates/order/return_order_base.html:81 -#: order/templates/order/sales_order_base.html:80 +#: order/templates/order/order_base.html:79 +#: order/templates/order/return_order_base.html:82 +#: order/templates/order/sales_order_base.html:81 msgid "Cancel order" msgstr "" -#: order/templates/order/order_base.html:84 #: order/templates/order/order_base.html:85 -#: order/templates/order/return_order_base.html:85 +#: order/templates/order/order_base.html:86 #: order/templates/order/return_order_base.html:86 -#: order/templates/order/sales_order_base.html:86 +#: order/templates/order/return_order_base.html:87 #: order/templates/order/sales_order_base.html:87 +#: order/templates/order/sales_order_base.html:88 msgid "Issue Order" msgstr "" -#: order/templates/order/order_base.html:88 -#: order/templates/order/return_order_base.html:89 -msgid "Mark order as complete" -msgstr "" - #: order/templates/order/order_base.html:89 #: order/templates/order/return_order_base.html:90 -#: order/templates/order/sales_order_base.html:100 +msgid "Mark order as complete" +msgstr "" + +#: order/templates/order/order_base.html:90 +#: order/templates/order/return_order_base.html:91 +#: order/templates/order/sales_order_base.html:101 msgid "Complete Order" msgstr "" -#: order/templates/order/order_base.html:96 +#: order/templates/order/order_base.html:97 msgid "Supplier part thumbnail" msgstr "" -#: order/templates/order/order_base.html:116 -#: order/templates/order/return_order_base.html:109 -#: order/templates/order/sales_order_base.html:118 +#: order/templates/order/order_base.html:117 +#: order/templates/order/return_order_base.html:110 +#: order/templates/order/sales_order_base.html:119 msgid "Order Description" msgstr "" -#: order/templates/order/order_base.html:146 -msgid "No suppplier information available" -msgstr "" - -#: order/templates/order/order_base.html:159 -#: order/templates/order/sales_order_base.html:164 +#: order/templates/order/order_base.html:168 +#: order/templates/order/sales_order_base.html:165 msgid "Completed Line Items" msgstr "" -#: order/templates/order/order_base.html:165 -#: order/templates/order/sales_order_base.html:170 -#: order/templates/order/sales_order_base.html:180 +#: order/templates/order/order_base.html:174 +#: order/templates/order/sales_order_base.html:171 +#: order/templates/order/sales_order_base.html:181 msgid "Incomplete" msgstr "" -#: order/templates/order/order_base.html:184 -#: order/templates/order/return_order_base.html:160 +#: order/templates/order/order_base.html:193 +#: order/templates/order/return_order_base.html:161 #: report/templates/report/inventree_build_order_report.html:121 msgid "Issued" msgstr "" -#: order/templates/order/order_base.html:229 +#: order/templates/order/order_base.html:238 msgid "Total cost" msgstr "" -#: order/templates/order/order_base.html:233 -#: order/templates/order/return_order_base.html:202 -#: order/templates/order/sales_order_base.html:246 +#: order/templates/order/order_base.html:242 +#: order/templates/order/return_order_base.html:203 +#: order/templates/order/sales_order_base.html:247 msgid "Total cost could not be calculated" msgstr "" -#: order/templates/order/order_base.html:335 +#: order/templates/order/order_base.html:344 msgid "Purchase Order QR Code" msgstr "" -#: order/templates/order/order_base.html:347 +#: order/templates/order/order_base.html:356 msgid "Link Barcode to Purchase Order" msgstr "" @@ -6184,12 +6392,12 @@ msgstr "" #: part/templates/part/import_wizard/ajax_match_references.html:42 #: part/templates/part/import_wizard/match_fields.html:71 #: part/templates/part/import_wizard/match_references.html:49 -#: templates/js/translated/bom.js:133 templates/js/translated/build.js:530 -#: templates/js/translated/build.js:1802 -#: templates/js/translated/purchase_order.js:696 -#: templates/js/translated/purchase_order.js:1288 +#: templates/js/translated/bom.js:133 templates/js/translated/build.js:533 +#: templates/js/translated/build.js:1805 +#: templates/js/translated/purchase_order.js:679 +#: templates/js/translated/purchase_order.js:1271 #: templates/js/translated/return_order.js:505 -#: templates/js/translated/sales_order.js:1145 +#: templates/js/translated/sales_order.js:1111 #: templates/js/translated/stock.js:720 templates/js/translated/stock.js:889 #: templates/patterns/wizard/match_fields.html:70 msgid "Remove row" @@ -6242,7 +6450,7 @@ msgstr "" #: order/templates/order/purchase_order_detail.html:27 #: order/templates/order/return_order_detail.html:24 #: order/templates/order/sales_order_detail.html:24 -#: templates/js/translated/purchase_order.js:414 +#: templates/js/translated/purchase_order.js:397 #: templates/js/translated/return_order.js:458 #: templates/js/translated/sales_order.js:237 msgid "Add Line Item" @@ -6277,45 +6485,45 @@ msgstr "" msgid "Order Notes" msgstr "" -#: order/templates/order/return_order_base.html:18 -#: order/templates/order/sales_order_base.html:18 +#: order/templates/order/return_order_base.html:19 +#: order/templates/order/sales_order_base.html:19 msgid "Customer logo thumbnail" msgstr "" -#: order/templates/order/return_order_base.html:60 +#: order/templates/order/return_order_base.html:61 msgid "Print return order report" msgstr "" -#: order/templates/order/return_order_base.html:64 -#: order/templates/order/sales_order_base.html:64 +#: order/templates/order/return_order_base.html:65 +#: order/templates/order/sales_order_base.html:65 msgid "Print packing list" msgstr "" -#: order/templates/order/return_order_base.html:141 -#: order/templates/order/sales_order_base.html:158 +#: order/templates/order/return_order_base.html:142 +#: order/templates/order/sales_order_base.html:159 #: templates/js/translated/return_order.js:308 -#: templates/js/translated/sales_order.js:833 +#: templates/js/translated/sales_order.js:792 msgid "Customer Reference" msgstr "" -#: order/templates/order/return_order_base.html:198 -#: order/templates/order/sales_order_base.html:242 +#: order/templates/order/return_order_base.html:199 +#: order/templates/order/sales_order_base.html:243 #: part/templates/part/part_pricing.html:32 #: part/templates/part/part_pricing.html:58 #: part/templates/part/part_pricing.html:99 #: part/templates/part/part_pricing.html:114 #: templates/js/translated/part.js:1079 -#: templates/js/translated/purchase_order.js:1822 +#: templates/js/translated/purchase_order.js:1806 #: templates/js/translated/return_order.js:380 -#: templates/js/translated/sales_order.js:891 +#: templates/js/translated/sales_order.js:850 msgid "Total Cost" msgstr "" -#: order/templates/order/return_order_base.html:273 +#: order/templates/order/return_order_base.html:274 msgid "Return Order QR Code" msgstr "" -#: order/templates/order/return_order_base.html:285 +#: order/templates/order/return_order_base.html:286 msgid "Link Barcode to Return Order" msgstr "" @@ -6323,40 +6531,40 @@ msgstr "" msgid "Order Details" msgstr "" -#: order/templates/order/sales_order_base.html:60 +#: order/templates/order/sales_order_base.html:61 msgid "Print sales order report" msgstr "" -#: order/templates/order/sales_order_base.html:91 #: order/templates/order/sales_order_base.html:92 +#: order/templates/order/sales_order_base.html:93 msgid "Ship Items" msgstr "" -#: order/templates/order/sales_order_base.html:95 #: order/templates/order/sales_order_base.html:96 +#: order/templates/order/sales_order_base.html:97 msgid "Mark As Shipped" msgstr "" -#: order/templates/order/sales_order_base.html:99 -#: templates/js/translated/sales_order.js:536 +#: order/templates/order/sales_order_base.html:100 +#: templates/js/translated/sales_order.js:495 msgid "Complete Sales Order" msgstr "" -#: order/templates/order/sales_order_base.html:138 +#: order/templates/order/sales_order_base.html:139 msgid "This Sales Order has not been fully allocated" msgstr "" -#: order/templates/order/sales_order_base.html:176 +#: order/templates/order/sales_order_base.html:177 #: order/templates/order/sales_order_detail.html:99 #: order/templates/order/so_sidebar.html:11 msgid "Completed Shipments" msgstr "" -#: order/templates/order/sales_order_base.html:339 +#: order/templates/order/sales_order_base.html:340 msgid "Sales Order QR Code" msgstr "" -#: order/templates/order/sales_order_base.html:351 +#: order/templates/order/sales_order_base.html:352 msgid "Link Barcode to Sales Order" msgstr "" @@ -6370,7 +6578,7 @@ msgid "Pending Shipments" msgstr "" #: order/templates/order/sales_order_detail.html:71 -#: templates/js/translated/bom.js:1277 templates/js/translated/build.js:1063 +#: templates/js/translated/bom.js:1277 templates/js/translated/build.js:1066 #: templates/js/translated/filters.js:299 msgid "Actions" msgstr "" @@ -6383,39 +6591,40 @@ msgstr "" msgid "Match Supplier Parts" msgstr "" -#: order/views.py:406 +#: order/views.py:407 msgid "Sales order not found" msgstr "" -#: order/views.py:412 +#: order/views.py:413 msgid "Price not found" msgstr "" -#: order/views.py:415 +#: order/views.py:416 #, python-brace-format msgid "Updated {part} unit-price to {price}" msgstr "" -#: order/views.py:421 +#: order/views.py:422 #, python-brace-format msgid "Updated {part} unit-price to {price} and quantity to {qty}" msgstr "" -#: part/admin.py:48 part/models.py:1032 part/templates/part/part_base.html:269 +#: part/admin.py:48 part/models.py:1093 part/serializers.py:939 +#: part/templates/part/part_base.html:277 #: report/templates/report/inventree_stock_location_report.html:103 #: templates/js/translated/part.js:1233 templates/js/translated/part.js:2347 -#: templates/js/translated/stock.js:2121 +#: templates/js/translated/stock.js:2122 msgid "IPN" msgstr "" -#: part/admin.py:50 part/models.py:1041 part/templates/part/part_base.html:286 +#: part/admin.py:50 part/models.py:1102 part/templates/part/part_base.html:294 #: report/models.py:161 templates/js/translated/part.js:1238 #: templates/js/translated/part.js:2353 msgid "Revision" msgstr "" -#: part/admin.py:53 part/admin.py:319 part/models.py:1014 -#: part/templates/part/category.html:91 part/templates/part/part_base.html:307 +#: part/admin.py:53 part/admin.py:319 part/models.py:1075 +#: part/templates/part/category.html:91 part/templates/part/part_base.html:315 msgid "Keywords" msgstr "" @@ -6427,7 +6636,7 @@ msgstr "" msgid "Category ID" msgstr "" -#: part/admin.py:67 part/admin.py:304 part/serializers.py:880 +#: part/admin.py:67 part/admin.py:304 part/serializers.py:924 #: part/stocktake.py:222 msgid "Category Name" msgstr "" @@ -6440,11 +6649,11 @@ msgstr "" msgid "Default Supplier ID" msgstr "" -#: part/admin.py:81 part/models.py:1000 part/templates/part/part_base.html:177 +#: part/admin.py:81 part/models.py:1061 part/templates/part/part_base.html:178 msgid "Variant Of" msgstr "" -#: part/admin.py:84 part/models.py:1138 part/templates/part/part_base.html:203 +#: part/admin.py:84 part/models.py:1199 part/templates/part/part_base.html:204 msgid "Minimum Stock" msgstr "" @@ -6452,23 +6661,23 @@ msgstr "" msgid "Used In" msgstr "" -#: part/admin.py:150 part/serializers.py:897 -#: part/templates/part/part_base.html:241 stock/admin.py:235 +#: part/admin.py:150 part/serializers.py:949 +#: part/templates/part/part_base.html:249 stock/admin.py:236 #: templates/js/translated/part.js:717 templates/js/translated/part.js:2159 msgid "Building" msgstr "" -#: part/admin.py:155 part/models.py:3202 part/models.py:3216 +#: part/admin.py:155 part/models.py:3253 part/models.py:3267 #: templates/js/translated/part.js:976 msgid "Minimum Cost" msgstr "" -#: part/admin.py:158 part/models.py:3209 part/models.py:3223 +#: part/admin.py:158 part/models.py:3260 part/models.py:3274 #: templates/js/translated/part.js:986 msgid "Maximum Cost" msgstr "" -#: part/admin.py:308 part/admin.py:387 stock/admin.py:57 stock/admin.py:215 +#: part/admin.py:308 part/admin.py:387 stock/admin.py:57 stock/admin.py:216 msgid "Parent ID" msgstr "" @@ -6481,8 +6690,8 @@ msgstr "" msgid "Category Path" msgstr "" -#: part/admin.py:325 part/models.py:425 part/serializers.py:130 -#: part/serializers.py:290 part/serializers.py:415 +#: part/admin.py:325 part/models.py:420 part/serializers.py:130 +#: part/serializers.py:323 part/serializers.py:459 #: part/templates/part/cat_link.html:3 part/templates/part/category.html:20 #: part/templates/part/category.html:138 part/templates/part/category.html:158 #: part/templates/part/category_sidebar.html:9 @@ -6509,15 +6718,15 @@ msgstr "" msgid "Part Revision" msgstr "" -#: part/admin.py:418 part/serializers.py:1346 +#: part/admin.py:418 part/serializers.py:1400 #: templates/js/translated/pricing.js:358 -#: templates/js/translated/pricing.js:1024 +#: templates/js/translated/pricing.js:1022 msgid "Minimum Price" msgstr "" -#: part/admin.py:423 part/serializers.py:1361 +#: part/admin.py:423 part/serializers.py:1415 #: templates/js/translated/pricing.js:353 -#: templates/js/translated/pricing.js:1032 +#: templates/js/translated/pricing.js:1030 msgid "Maximum Price" msgstr "" @@ -6545,94 +6754,98 @@ msgstr "" msgid "Filter by top-level categories" msgstr "" +#: part/api.py:156 stock/api.py:343 +msgid "Cascade" +msgstr "" + #: part/api.py:158 msgid "Include sub-categories in filtered results" msgstr "" -#: part/api.py:179 templates/js/translated/part.js:311 +#: part/api.py:178 templates/js/translated/part.js:311 msgid "Parent" msgstr "" -#: part/api.py:181 +#: part/api.py:180 msgid "Filter by parent category" msgstr "" -#: part/api.py:214 +#: part/api.py:213 msgid "Exclude Tree" msgstr "" -#: part/api.py:216 +#: part/api.py:215 msgid "Exclude sub-categories under the specified category" msgstr "" -#: part/api.py:441 +#: part/api.py:440 msgid "Has Results" msgstr "" -#: part/api.py:608 +#: part/api.py:604 msgid "Incoming Purchase Order" msgstr "" -#: part/api.py:626 +#: part/api.py:618 msgid "Outgoing Sales Order" msgstr "" -#: part/api.py:642 +#: part/api.py:630 msgid "Stock produced by Build Order" msgstr "" -#: part/api.py:726 +#: part/api.py:712 msgid "Stock required for Build Order" msgstr "" -#: part/api.py:874 +#: part/api.py:858 msgid "Validate entire Bill of Materials" msgstr "" -#: part/api.py:880 +#: part/api.py:864 msgid "This option must be selected" msgstr "" -#: part/api.py:916 +#: part/api.py:900 msgid "Is Revision" msgstr "" -#: part/api.py:926 +#: part/api.py:910 msgid "Has Revisions" msgstr "" -#: part/api.py:1117 +#: part/api.py:1101 msgid "BOM Valid" msgstr "" -#: part/api.py:1523 part/models.py:1024 part/models.py:3489 part/models.py:4046 -#: part/serializers.py:430 part/serializers.py:1202 -#: part/templates/part/part_base.html:260 stock/api.py:781 +#: part/api.py:1509 part/models.py:1085 part/models.py:3540 part/models.py:4104 +#: part/serializers.py:474 part/serializers.py:1255 +#: part/templates/part/part_base.html:268 stock/api.py:781 #: templates/InvenTree/settings/settings_staff_js.html:300 #: templates/js/translated/notification.js:60 #: templates/js/translated/part.js:2383 msgid "Category" msgstr "" -#: part/api.py:1761 +#: part/api.py:1750 msgid "Assembly part is testable" msgstr "" -#: part/api.py:1770 +#: part/api.py:1759 msgid "Component part is testable" msgstr "" -#: part/api.py:1821 +#: part/api.py:1810 msgid "Uses" msgstr "" -#: part/bom.py:178 part/models.py:107 part/models.py:1077 -#: part/templates/part/category.html:113 part/templates/part/part_base.html:376 +#: part/bom.py:183 part/models.py:109 part/models.py:1138 +#: part/templates/part/category.html:113 part/templates/part/part_base.html:384 #: templates/js/translated/part.js:2397 msgid "Default Location" msgstr "" -#: part/bom.py:179 part/serializers.py:905 +#: part/bom.py:184 part/serializers.py:957 #: templates/email/low_stock_notification.html:16 msgid "Total Stock" msgstr "" @@ -6641,789 +6854,789 @@ msgstr "" msgid "Input quantity for price calculation" msgstr "" -#: part/models.py:88 part/models.py:4047 part/templates/part/category.html:16 +#: part/models.py:90 part/models.py:4105 part/templates/part/category.html:16 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "" -#: part/models.py:89 part/templates/part/category.html:133 +#: part/models.py:91 part/templates/part/category.html:133 #: templates/InvenTree/search.html:97 templates/js/translated/search.js:158 #: users/models.py:202 msgid "Part Categories" msgstr "" -#: part/models.py:108 +#: part/models.py:110 msgid "Default location for parts in this category" msgstr "" -#: part/models.py:113 stock/models.py:187 templates/js/translated/part.js:2828 -#: templates/js/translated/stock.js:2856 +#: part/models.py:115 stock/models.py:193 templates/js/translated/part.js:2828 +#: templates/js/translated/stock.js:2857 #: templates/js/translated/table_filters.js:246 #: templates/js/translated/table_filters.js:290 msgid "Structural" msgstr "" -#: part/models.py:115 +#: part/models.py:117 msgid "Parts may not be directly assigned to a structural category, but may be assigned to child categories." msgstr "" -#: part/models.py:124 +#: part/models.py:126 msgid "Default keywords" msgstr "" -#: part/models.py:125 +#: part/models.py:127 msgid "Default keywords for parts in this category" msgstr "" -#: part/models.py:131 stock/models.py:90 stock/models.py:169 +#: part/models.py:133 stock/models.py:96 stock/models.py:175 #: templates/InvenTree/settings/settings_staff_js.html:445 msgid "Icon" msgstr "" -#: part/models.py:132 part/serializers.py:143 part/serializers.py:161 -#: stock/models.py:170 +#: part/models.py:134 part/serializers.py:143 part/serializers.py:161 +#: stock/models.py:176 msgid "Icon (optional)" msgstr "" -#: part/models.py:178 +#: part/models.py:180 msgid "You cannot make this part category structural because some parts are already assigned to it!" msgstr "" -#: part/models.py:519 +#: part/models.py:514 msgid "Cannot delete this part as it is locked" msgstr "" -#: part/models.py:522 +#: part/models.py:517 msgid "Cannot delete this part as it is still active" msgstr "" -#: part/models.py:527 +#: part/models.py:522 msgid "Cannot delete this part as it is used in an assembly" msgstr "" -#: part/models.py:565 +#: part/models.py:560 msgid "Invalid choice for parent part" msgstr "" -#: part/models.py:613 part/models.py:620 +#: part/models.py:608 part/models.py:615 #, python-brace-format msgid "Part '{self}' cannot be used in BOM for '{parent}' (recursive)" msgstr "" -#: part/models.py:632 +#: part/models.py:627 #, python-brace-format msgid "Part '{parent}' is used in BOM for '{self}' (recursive)" msgstr "" -#: part/models.py:695 +#: part/models.py:694 #, python-brace-format msgid "IPN must match regex pattern {pattern}" msgstr "" -#: part/models.py:703 +#: part/models.py:702 msgid "Part cannot be a revision of itself" msgstr "" -#: part/models.py:710 +#: part/models.py:709 msgid "Cannot make a revision of a part which is already a revision" msgstr "" -#: part/models.py:717 +#: part/models.py:716 msgid "Revision code must be specified" msgstr "" -#: part/models.py:724 +#: part/models.py:723 msgid "Revisions are only allowed for assembly parts" msgstr "" -#: part/models.py:731 +#: part/models.py:730 msgid "Cannot make a revision of a template part" msgstr "" -#: part/models.py:737 +#: part/models.py:736 msgid "Parent part must point to the same template" msgstr "" -#: part/models.py:816 +#: part/models.py:832 msgid "Stock item with this serial number already exists" msgstr "" -#: part/models.py:917 +#: part/models.py:976 msgid "Duplicate IPN not allowed in part settings" msgstr "" -#: part/models.py:926 +#: part/models.py:988 msgid "Duplicate part revision already exists." msgstr "" -#: part/models.py:936 +#: part/models.py:997 msgid "Part with this Name, IPN and Revision already exists." msgstr "" -#: part/models.py:951 +#: part/models.py:1012 msgid "Parts cannot be assigned to structural part categories!" msgstr "" -#: part/models.py:983 part/models.py:4102 +#: part/models.py:1044 part/models.py:4160 msgid "Part name" msgstr "" -#: part/models.py:988 +#: part/models.py:1049 msgid "Is Template" msgstr "" -#: part/models.py:989 +#: part/models.py:1050 msgid "Is this part a template part?" msgstr "" -#: part/models.py:999 +#: part/models.py:1060 msgid "Is this part a variant of another part?" msgstr "" -#: part/models.py:1007 +#: part/models.py:1068 msgid "Part description (optional)" msgstr "" -#: part/models.py:1015 +#: part/models.py:1076 msgid "Part keywords to improve visibility in search results" msgstr "" -#: part/models.py:1025 +#: part/models.py:1086 msgid "Part category" msgstr "" -#: part/models.py:1040 +#: part/models.py:1101 msgid "Part revision or version number" msgstr "" -#: part/models.py:1050 +#: part/models.py:1111 msgid "Is this part a revision of another part?" msgstr "" -#: part/models.py:1051 part/templates/part/part_base.html:277 +#: part/models.py:1112 part/templates/part/part_base.html:285 msgid "Revision Of" msgstr "" -#: part/models.py:1075 +#: part/models.py:1136 msgid "Where is this item normally stored?" msgstr "" -#: part/models.py:1121 part/templates/part/part_base.html:385 +#: part/models.py:1182 part/templates/part/part_base.html:393 msgid "Default Supplier" msgstr "" -#: part/models.py:1122 +#: part/models.py:1183 msgid "Default supplier part" msgstr "" -#: part/models.py:1129 +#: part/models.py:1190 msgid "Default Expiry" msgstr "" -#: part/models.py:1130 +#: part/models.py:1191 msgid "Expiry time (in days) for stock items of this part" msgstr "" -#: part/models.py:1139 +#: part/models.py:1200 msgid "Minimum allowed stock level" msgstr "" -#: part/models.py:1148 +#: part/models.py:1209 msgid "Units of measure for this part" msgstr "" -#: part/models.py:1155 +#: part/models.py:1216 msgid "Can this part be built from other parts?" msgstr "" -#: part/models.py:1161 +#: part/models.py:1222 msgid "Can this part be used to build other parts?" msgstr "" -#: part/models.py:1167 +#: part/models.py:1228 msgid "Does this part have tracking for unique items?" msgstr "" -#: part/models.py:1173 +#: part/models.py:1234 msgid "Can this part have test results recorded against it?" msgstr "" -#: part/models.py:1179 +#: part/models.py:1240 msgid "Can this part be purchased from external suppliers?" msgstr "" -#: part/models.py:1185 +#: part/models.py:1246 msgid "Can this part be sold to customers?" msgstr "" -#: part/models.py:1189 +#: part/models.py:1250 msgid "Is this part active?" msgstr "" -#: part/models.py:1194 templates/js/translated/part.js:821 +#: part/models.py:1255 templates/js/translated/part.js:821 #: templates/js/translated/table_filters.js:724 msgid "Locked" msgstr "" -#: part/models.py:1195 +#: part/models.py:1256 msgid "Locked parts cannot be edited" msgstr "" -#: part/models.py:1201 +#: part/models.py:1262 msgid "Is this a virtual part, such as a software product or license?" msgstr "" -#: part/models.py:1207 +#: part/models.py:1268 msgid "BOM checksum" msgstr "" -#: part/models.py:1208 +#: part/models.py:1269 msgid "Stored BOM checksum" msgstr "" -#: part/models.py:1216 +#: part/models.py:1277 msgid "BOM checked by" msgstr "" -#: part/models.py:1221 +#: part/models.py:1282 msgid "BOM checked date" msgstr "" -#: part/models.py:1237 +#: part/models.py:1298 msgid "Creation User" msgstr "" -#: part/models.py:1247 +#: part/models.py:1308 msgid "Owner responsible for this part" msgstr "" -#: part/models.py:1252 part/templates/part/part_base.html:348 -#: stock/templates/stock/item_base.html:451 +#: part/models.py:1313 part/templates/part/part_base.html:356 +#: stock/templates/stock/item_base.html:448 #: templates/js/translated/part.js:2490 msgid "Last Stocktake" msgstr "" -#: part/models.py:2125 +#: part/models.py:2185 msgid "Sell multiple" msgstr "" -#: part/models.py:3116 +#: part/models.py:3167 msgid "Currency used to cache pricing calculations" msgstr "" -#: part/models.py:3132 +#: part/models.py:3183 msgid "Minimum BOM Cost" msgstr "" -#: part/models.py:3133 +#: part/models.py:3184 msgid "Minimum cost of component parts" msgstr "" -#: part/models.py:3139 +#: part/models.py:3190 msgid "Maximum BOM Cost" msgstr "" -#: part/models.py:3140 +#: part/models.py:3191 msgid "Maximum cost of component parts" msgstr "" -#: part/models.py:3146 +#: part/models.py:3197 msgid "Minimum Purchase Cost" msgstr "" -#: part/models.py:3147 +#: part/models.py:3198 msgid "Minimum historical purchase cost" msgstr "" -#: part/models.py:3153 +#: part/models.py:3204 msgid "Maximum Purchase Cost" msgstr "" -#: part/models.py:3154 +#: part/models.py:3205 msgid "Maximum historical purchase cost" msgstr "" -#: part/models.py:3160 +#: part/models.py:3211 msgid "Minimum Internal Price" msgstr "" -#: part/models.py:3161 +#: part/models.py:3212 msgid "Minimum cost based on internal price breaks" msgstr "" -#: part/models.py:3167 +#: part/models.py:3218 msgid "Maximum Internal Price" msgstr "" -#: part/models.py:3168 +#: part/models.py:3219 msgid "Maximum cost based on internal price breaks" msgstr "" -#: part/models.py:3174 +#: part/models.py:3225 msgid "Minimum Supplier Price" msgstr "" -#: part/models.py:3175 +#: part/models.py:3226 msgid "Minimum price of part from external suppliers" msgstr "" -#: part/models.py:3181 +#: part/models.py:3232 msgid "Maximum Supplier Price" msgstr "" -#: part/models.py:3182 +#: part/models.py:3233 msgid "Maximum price of part from external suppliers" msgstr "" -#: part/models.py:3188 +#: part/models.py:3239 msgid "Minimum Variant Cost" msgstr "" -#: part/models.py:3189 +#: part/models.py:3240 msgid "Calculated minimum cost of variant parts" msgstr "" -#: part/models.py:3195 +#: part/models.py:3246 msgid "Maximum Variant Cost" msgstr "" -#: part/models.py:3196 +#: part/models.py:3247 msgid "Calculated maximum cost of variant parts" msgstr "" -#: part/models.py:3203 +#: part/models.py:3254 msgid "Override minimum cost" msgstr "" -#: part/models.py:3210 +#: part/models.py:3261 msgid "Override maximum cost" msgstr "" -#: part/models.py:3217 +#: part/models.py:3268 msgid "Calculated overall minimum cost" msgstr "" -#: part/models.py:3224 +#: part/models.py:3275 msgid "Calculated overall maximum cost" msgstr "" -#: part/models.py:3230 +#: part/models.py:3281 msgid "Minimum Sale Price" msgstr "" -#: part/models.py:3231 +#: part/models.py:3282 msgid "Minimum sale price based on price breaks" msgstr "" -#: part/models.py:3237 +#: part/models.py:3288 msgid "Maximum Sale Price" msgstr "" -#: part/models.py:3238 +#: part/models.py:3289 msgid "Maximum sale price based on price breaks" msgstr "" -#: part/models.py:3244 +#: part/models.py:3295 msgid "Minimum Sale Cost" msgstr "" -#: part/models.py:3245 +#: part/models.py:3296 msgid "Minimum historical sale price" msgstr "" -#: part/models.py:3251 +#: part/models.py:3302 msgid "Maximum Sale Cost" msgstr "" -#: part/models.py:3252 +#: part/models.py:3303 msgid "Maximum historical sale price" msgstr "" -#: part/models.py:3271 +#: part/models.py:3322 msgid "Part for stocktake" msgstr "" -#: part/models.py:3276 +#: part/models.py:3327 msgid "Item Count" msgstr "" -#: part/models.py:3277 +#: part/models.py:3328 msgid "Number of individual stock entries at time of stocktake" msgstr "" -#: part/models.py:3285 +#: part/models.py:3336 msgid "Total available stock at time of stocktake" msgstr "" -#: part/models.py:3289 part/models.py:3372 +#: part/models.py:3340 part/models.py:3423 part/serializers.py:263 #: part/templates/part/part_scheduling.html:13 #: report/templates/report/inventree_test_report.html:106 #: templates/InvenTree/settings/plugin_settings.html:37 #: templates/InvenTree/settings/settings_staff_js.html:543 -#: templates/js/translated/part.js:1092 templates/js/translated/pricing.js:826 -#: templates/js/translated/pricing.js:950 -#: templates/js/translated/purchase_order.js:1801 -#: templates/js/translated/stock.js:2905 +#: templates/js/translated/part.js:1092 templates/js/translated/pricing.js:824 +#: templates/js/translated/pricing.js:948 +#: templates/js/translated/purchase_order.js:1785 +#: templates/js/translated/stock.js:2906 msgid "Date" msgstr "" -#: part/models.py:3290 +#: part/models.py:3341 msgid "Date stocktake was performed" msgstr "" -#: part/models.py:3298 +#: part/models.py:3349 msgid "Additional notes" msgstr "" -#: part/models.py:3308 +#: part/models.py:3359 msgid "User who performed this stocktake" msgstr "" -#: part/models.py:3314 +#: part/models.py:3365 msgid "Minimum Stock Cost" msgstr "" -#: part/models.py:3315 +#: part/models.py:3366 msgid "Estimated minimum cost of stock on hand" msgstr "" -#: part/models.py:3321 +#: part/models.py:3372 msgid "Maximum Stock Cost" msgstr "" -#: part/models.py:3322 +#: part/models.py:3373 msgid "Estimated maximum cost of stock on hand" msgstr "" -#: part/models.py:3378 templates/InvenTree/settings/settings_staff_js.html:532 +#: part/models.py:3429 templates/InvenTree/settings/settings_staff_js.html:532 msgid "Report" msgstr "" -#: part/models.py:3379 +#: part/models.py:3430 msgid "Stocktake report file (generated internally)" msgstr "" -#: part/models.py:3384 templates/InvenTree/settings/settings_staff_js.html:539 +#: part/models.py:3435 templates/InvenTree/settings/settings_staff_js.html:539 msgid "Part Count" msgstr "" -#: part/models.py:3385 +#: part/models.py:3436 msgid "Number of parts covered by stocktake" msgstr "" -#: part/models.py:3395 +#: part/models.py:3446 msgid "User who requested this stocktake report" msgstr "" -#: part/models.py:3405 +#: part/models.py:3456 msgid "Part Sale Price Break" msgstr "" -#: part/models.py:3517 +#: part/models.py:3568 msgid "Part Test Template" msgstr "" -#: part/models.py:3543 +#: part/models.py:3594 msgid "Invalid template name - must include at least one alphanumeric character" msgstr "" -#: part/models.py:3564 part/models.py:3733 +#: part/models.py:3615 part/models.py:3784 msgid "Choices must be unique" msgstr "" -#: part/models.py:3575 -msgid "Test templates can only be created for trackable parts" +#: part/models.py:3626 +msgid "Test templates can only be created for testable parts" msgstr "" -#: part/models.py:3586 +#: part/models.py:3637 msgid "Test template with the same key already exists for part" msgstr "" -#: part/models.py:3603 templates/js/translated/part.js:2898 +#: part/models.py:3654 templates/js/translated/part.js:2898 msgid "Test Name" msgstr "" -#: part/models.py:3604 +#: part/models.py:3655 msgid "Enter a name for the test" msgstr "" -#: part/models.py:3610 +#: part/models.py:3661 msgid "Test Key" msgstr "" -#: part/models.py:3611 +#: part/models.py:3662 msgid "Simplified key for the test" msgstr "" -#: part/models.py:3618 +#: part/models.py:3669 msgid "Test Description" msgstr "" -#: part/models.py:3619 +#: part/models.py:3670 msgid "Enter description for this test" msgstr "" -#: part/models.py:3623 report/models.py:208 +#: part/models.py:3674 report/models.py:216 #: templates/js/translated/part.js:2919 #: templates/js/translated/table_filters.js:502 msgid "Enabled" msgstr "" -#: part/models.py:3623 +#: part/models.py:3674 msgid "Is this test enabled?" msgstr "" -#: part/models.py:3628 templates/js/translated/part.js:2927 +#: part/models.py:3679 templates/js/translated/part.js:2927 #: templates/js/translated/table_filters.js:498 msgid "Required" msgstr "" -#: part/models.py:3629 +#: part/models.py:3680 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:3634 templates/js/translated/part.js:2935 +#: part/models.py:3685 templates/js/translated/part.js:2935 msgid "Requires Value" msgstr "" -#: part/models.py:3635 +#: part/models.py:3686 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:3640 templates/js/translated/part.js:2942 +#: part/models.py:3691 templates/js/translated/part.js:2942 msgid "Requires Attachment" msgstr "" -#: part/models.py:3642 +#: part/models.py:3693 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:3648 part/models.py:3792 templates/js/translated/part.js:1643 +#: part/models.py:3699 part/models.py:3843 templates/js/translated/part.js:1643 msgid "Choices" msgstr "" -#: part/models.py:3649 +#: part/models.py:3700 msgid "Valid choices for this test (comma-separated)" msgstr "" -#: part/models.py:3681 +#: part/models.py:3732 msgid "Part Parameter Template" msgstr "" -#: part/models.py:3708 +#: part/models.py:3759 msgid "Checkbox parameters cannot have units" msgstr "" -#: part/models.py:3713 +#: part/models.py:3764 msgid "Checkbox parameters cannot have choices" msgstr "" -#: part/models.py:3750 +#: part/models.py:3801 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:3765 +#: part/models.py:3816 msgid "Parameter Name" msgstr "" -#: part/models.py:3772 +#: part/models.py:3823 msgid "Physical units for this parameter" msgstr "" -#: part/models.py:3780 +#: part/models.py:3831 msgid "Parameter description" msgstr "" -#: part/models.py:3786 templates/js/translated/part.js:1634 +#: part/models.py:3837 templates/js/translated/part.js:1634 #: templates/js/translated/table_filters.js:837 msgid "Checkbox" msgstr "" -#: part/models.py:3787 +#: part/models.py:3838 msgid "Is this parameter a checkbox?" msgstr "" -#: part/models.py:3793 +#: part/models.py:3844 msgid "Valid choices for this parameter (comma-separated)" msgstr "" -#: part/models.py:3827 +#: part/models.py:3881 msgid "Part Parameter" msgstr "" -#: part/models.py:3853 +#: part/models.py:3907 msgid "Parameter cannot be modified - part is locked" msgstr "" -#: part/models.py:3889 +#: part/models.py:3945 msgid "Invalid choice for parameter value" msgstr "" -#: part/models.py:3938 +#: part/models.py:3996 msgid "Parent Part" msgstr "" -#: part/models.py:3946 part/models.py:4054 part/models.py:4055 +#: part/models.py:4004 part/models.py:4112 part/models.py:4113 #: templates/InvenTree/settings/settings_staff_js.html:295 msgid "Parameter Template" msgstr "" -#: part/models.py:3952 +#: part/models.py:4010 msgid "Parameter Value" msgstr "" -#: part/models.py:4002 +#: part/models.py:4060 msgid "Part Category Parameter Template" msgstr "" -#: part/models.py:4061 templates/InvenTree/settings/settings_staff_js.html:304 +#: part/models.py:4119 templates/InvenTree/settings/settings_staff_js.html:304 msgid "Default Value" msgstr "" -#: part/models.py:4062 +#: part/models.py:4120 msgid "Default Parameter Value" msgstr "" -#: part/models.py:4100 +#: part/models.py:4158 msgid "Part ID or part name" msgstr "" -#: part/models.py:4101 +#: part/models.py:4159 msgid "Unique part ID value" msgstr "" -#: part/models.py:4103 +#: part/models.py:4161 msgid "Part IPN value" msgstr "" -#: part/models.py:4104 +#: part/models.py:4162 msgid "Level" msgstr "" -#: part/models.py:4104 +#: part/models.py:4162 msgid "BOM level" msgstr "" -#: part/models.py:4215 +#: part/models.py:4272 msgid "BOM item cannot be modified - assembly is locked" msgstr "" -#: part/models.py:4222 +#: part/models.py:4279 msgid "BOM item cannot be modified - variant assembly is locked" msgstr "" -#: part/models.py:4232 +#: part/models.py:4289 msgid "Select parent part" msgstr "" -#: part/models.py:4242 +#: part/models.py:4299 msgid "Sub part" msgstr "" -#: part/models.py:4243 +#: part/models.py:4300 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:4254 +#: part/models.py:4311 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:4260 +#: part/models.py:4317 msgid "This BOM item is optional" msgstr "" -#: part/models.py:4266 +#: part/models.py:4323 msgid "This BOM item is consumable (it is not tracked in build orders)" msgstr "" -#: part/models.py:4273 part/templates/part/upload_bom.html:55 +#: part/models.py:4330 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "" -#: part/models.py:4274 +#: part/models.py:4331 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:4281 +#: part/models.py:4338 msgid "BOM item reference" msgstr "" -#: part/models.py:4289 +#: part/models.py:4346 msgid "BOM item notes" msgstr "" -#: part/models.py:4295 +#: part/models.py:4352 msgid "Checksum" msgstr "" -#: part/models.py:4296 +#: part/models.py:4353 msgid "BOM line checksum" msgstr "" -#: part/models.py:4301 templates/js/translated/table_filters.js:181 +#: part/models.py:4358 templates/js/translated/table_filters.js:181 msgid "Validated" msgstr "" -#: part/models.py:4302 +#: part/models.py:4359 msgid "This BOM item has been validated" msgstr "" -#: part/models.py:4307 part/templates/part/upload_bom.html:57 +#: part/models.py:4364 part/templates/part/upload_bom.html:57 #: templates/js/translated/bom.js:1054 #: templates/js/translated/table_filters.js:185 #: templates/js/translated/table_filters.js:218 msgid "Gets inherited" msgstr "" -#: part/models.py:4308 +#: part/models.py:4365 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:4314 +#: part/models.py:4371 msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:4399 stock/models.py:685 +#: part/models.py:4456 stock/models.py:762 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:4409 part/models.py:4411 +#: part/models.py:4466 part/models.py:4468 msgid "Sub part must be specified" msgstr "" -#: part/models.py:4551 +#: part/models.py:4613 msgid "BOM Item Substitute" msgstr "" -#: part/models.py:4572 +#: part/models.py:4634 msgid "Substitute part cannot be the same as the master part" msgstr "" -#: part/models.py:4585 +#: part/models.py:4647 msgid "Parent BOM item" msgstr "" -#: part/models.py:4593 +#: part/models.py:4655 msgid "Substitute part" msgstr "" -#: part/models.py:4609 +#: part/models.py:4671 msgid "Part 1" msgstr "" -#: part/models.py:4617 +#: part/models.py:4679 msgid "Part 2" msgstr "" -#: part/models.py:4618 +#: part/models.py:4680 msgid "Select Related Part" msgstr "" -#: part/models.py:4637 +#: part/models.py:4699 msgid "Part relationship cannot be created between a part and itself" msgstr "" -#: part/models.py:4642 +#: part/models.py:4704 msgid "Duplicate relationship already exists" msgstr "" @@ -7449,340 +7662,352 @@ msgstr "" msgid "Number of results recorded against this template" msgstr "" -#: part/serializers.py:225 part/serializers.py:243 stock/serializers.py:616 +#: part/serializers.py:225 part/serializers.py:243 stock/serializers.py:643 msgid "Purchase currency of this stock item" msgstr "" -#: part/serializers.py:291 +#: part/serializers.py:268 +msgid "Speculative Quantity" +msgstr "" + +#: part/serializers.py:277 +msgid "Model ID" +msgstr "" + +#: part/serializers.py:324 msgid "Number of parts using this template" msgstr "" -#: part/serializers.py:421 +#: part/serializers.py:465 msgid "No parts selected" msgstr "" -#: part/serializers.py:431 +#: part/serializers.py:475 msgid "Select category" msgstr "" -#: part/serializers.py:466 +#: part/serializers.py:510 msgid "Original Part" msgstr "" -#: part/serializers.py:467 +#: part/serializers.py:511 msgid "Select original part to duplicate" msgstr "" -#: part/serializers.py:472 +#: part/serializers.py:516 msgid "Copy Image" msgstr "" -#: part/serializers.py:473 +#: part/serializers.py:517 msgid "Copy image from original part" msgstr "" -#: part/serializers.py:479 part/templates/part/detail.html:293 +#: part/serializers.py:523 part/templates/part/detail.html:293 msgid "Copy BOM" msgstr "" -#: part/serializers.py:480 +#: part/serializers.py:524 msgid "Copy bill of materials from original part" msgstr "" -#: part/serializers.py:486 +#: part/serializers.py:530 msgid "Copy Parameters" msgstr "" -#: part/serializers.py:487 +#: part/serializers.py:531 msgid "Copy parameter data from original part" msgstr "" -#: part/serializers.py:493 +#: part/serializers.py:537 msgid "Copy Notes" msgstr "" -#: part/serializers.py:494 +#: part/serializers.py:538 msgid "Copy notes from original part" msgstr "" -#: part/serializers.py:512 +#: part/serializers.py:556 msgid "Initial Stock Quantity" msgstr "" -#: part/serializers.py:514 +#: part/serializers.py:558 msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added." msgstr "" -#: part/serializers.py:521 +#: part/serializers.py:565 msgid "Initial Stock Location" msgstr "" -#: part/serializers.py:522 +#: part/serializers.py:566 msgid "Specify initial stock location for this Part" msgstr "" -#: part/serializers.py:539 +#: part/serializers.py:583 msgid "Select supplier (or leave blank to skip)" msgstr "" -#: part/serializers.py:555 +#: part/serializers.py:599 msgid "Select manufacturer (or leave blank to skip)" msgstr "" -#: part/serializers.py:565 +#: part/serializers.py:609 msgid "Manufacturer part number" msgstr "" -#: part/serializers.py:572 +#: part/serializers.py:616 msgid "Selected company is not a valid supplier" msgstr "" -#: part/serializers.py:581 +#: part/serializers.py:625 msgid "Selected company is not a valid manufacturer" msgstr "" -#: part/serializers.py:592 +#: part/serializers.py:636 msgid "Manufacturer part matching this MPN already exists" msgstr "" -#: part/serializers.py:599 +#: part/serializers.py:643 msgid "Supplier part matching this SKU already exists" msgstr "" -#: part/serializers.py:903 +#: part/serializers.py:955 msgid "Revisions" msgstr "" -#: part/serializers.py:908 +#: part/serializers.py:960 msgid "Unallocated Stock" msgstr "" -#: part/serializers.py:911 +#: part/serializers.py:963 msgid "Variant Stock" msgstr "" -#: part/serializers.py:941 part/templates/part/copy_part.html:9 +#: part/serializers.py:993 part/templates/part/copy_part.html:9 #: templates/js/translated/part.js:474 msgid "Duplicate Part" msgstr "" -#: part/serializers.py:942 +#: part/serializers.py:994 msgid "Copy initial data from another Part" msgstr "" -#: part/serializers.py:948 templates/js/translated/part.js:103 +#: part/serializers.py:1000 templates/js/translated/part.js:103 msgid "Initial Stock" msgstr "" -#: part/serializers.py:949 +#: part/serializers.py:1001 msgid "Create Part with initial stock quantity" msgstr "" -#: part/serializers.py:955 +#: part/serializers.py:1007 msgid "Supplier Information" msgstr "" -#: part/serializers.py:956 +#: part/serializers.py:1008 msgid "Add initial supplier information for this part" msgstr "" -#: part/serializers.py:964 +#: part/serializers.py:1016 msgid "Copy Category Parameters" msgstr "" -#: part/serializers.py:965 +#: part/serializers.py:1017 msgid "Copy parameter templates from selected part category" msgstr "" -#: part/serializers.py:970 +#: part/serializers.py:1022 msgid "Existing Image" msgstr "" -#: part/serializers.py:971 +#: part/serializers.py:1023 msgid "Filename of an existing part image" msgstr "" -#: part/serializers.py:988 +#: part/serializers.py:1040 msgid "Image file does not exist" msgstr "" -#: part/serializers.py:1194 +#: part/serializers.py:1247 msgid "Limit stocktake report to a particular part, and any variant parts" msgstr "" -#: part/serializers.py:1204 +#: part/serializers.py:1257 msgid "Limit stocktake report to a particular part category, and any child categories" msgstr "" -#: part/serializers.py:1214 +#: part/serializers.py:1267 msgid "Limit stocktake report to a particular stock location, and any child locations" msgstr "" -#: part/serializers.py:1220 +#: part/serializers.py:1273 msgid "Exclude External Stock" msgstr "" -#: part/serializers.py:1221 +#: part/serializers.py:1274 msgid "Exclude stock items in external locations" msgstr "" -#: part/serializers.py:1226 +#: part/serializers.py:1279 msgid "Generate Report" msgstr "" -#: part/serializers.py:1227 +#: part/serializers.py:1280 msgid "Generate report file containing calculated stocktake data" msgstr "" -#: part/serializers.py:1232 +#: part/serializers.py:1285 msgid "Update Parts" msgstr "" -#: part/serializers.py:1233 +#: part/serializers.py:1286 msgid "Update specified parts with calculated stocktake data" msgstr "" -#: part/serializers.py:1241 +#: part/serializers.py:1294 msgid "Stocktake functionality is not enabled" msgstr "" -#: part/serializers.py:1347 +#: part/serializers.py:1299 +msgid "Background worker check failed" +msgstr "" + +#: part/serializers.py:1401 msgid "Override calculated value for minimum price" msgstr "" -#: part/serializers.py:1354 +#: part/serializers.py:1408 msgid "Minimum price currency" msgstr "" -#: part/serializers.py:1362 +#: part/serializers.py:1416 msgid "Override calculated value for maximum price" msgstr "" -#: part/serializers.py:1369 +#: part/serializers.py:1423 msgid "Maximum price currency" msgstr "" -#: part/serializers.py:1398 +#: part/serializers.py:1452 msgid "Update" msgstr "" -#: part/serializers.py:1399 +#: part/serializers.py:1453 msgid "Update pricing for this part" msgstr "" -#: part/serializers.py:1422 +#: part/serializers.py:1476 #, python-brace-format msgid "Could not convert from provided currencies to {default_currency}" msgstr "" -#: part/serializers.py:1429 +#: part/serializers.py:1483 msgid "Minimum price must not be greater than maximum price" msgstr "" -#: part/serializers.py:1432 +#: part/serializers.py:1486 msgid "Maximum price must not be less than minimum price" msgstr "" -#: part/serializers.py:1576 +#: part/serializers.py:1634 msgid "Select the parent assembly" msgstr "" -#: part/serializers.py:1585 +#: part/serializers.py:1643 msgid "Component Name" msgstr "" -#: part/serializers.py:1588 +#: part/serializers.py:1646 msgid "Component IPN" msgstr "" -#: part/serializers.py:1591 +#: part/serializers.py:1649 msgid "Component Description" msgstr "" -#: part/serializers.py:1597 +#: part/serializers.py:1655 msgid "Select the component part" msgstr "" -#: part/serializers.py:1606 part/templates/part/part_base.html:235 +#: part/serializers.py:1664 part/templates/part/part_base.html:243 #: templates/js/translated/bom.js:1219 msgid "Can Build" msgstr "" -#: part/serializers.py:1837 +#: part/serializers.py:1899 msgid "Select part to copy BOM from" msgstr "" -#: part/serializers.py:1845 +#: part/serializers.py:1907 msgid "Remove Existing Data" msgstr "" -#: part/serializers.py:1846 +#: part/serializers.py:1908 msgid "Remove existing BOM items before copying" msgstr "" -#: part/serializers.py:1851 +#: part/serializers.py:1913 msgid "Include Inherited" msgstr "" -#: part/serializers.py:1852 +#: part/serializers.py:1914 msgid "Include BOM items which are inherited from templated parts" msgstr "" -#: part/serializers.py:1857 +#: part/serializers.py:1919 msgid "Skip Invalid Rows" msgstr "" -#: part/serializers.py:1858 +#: part/serializers.py:1920 msgid "Enable this option to skip invalid rows" msgstr "" -#: part/serializers.py:1863 +#: part/serializers.py:1925 msgid "Copy Substitute Parts" msgstr "" -#: part/serializers.py:1864 +#: part/serializers.py:1926 msgid "Copy substitute parts when duplicate BOM items" msgstr "" -#: part/serializers.py:1901 +#: part/serializers.py:1963 msgid "Clear Existing BOM" msgstr "" -#: part/serializers.py:1902 +#: part/serializers.py:1964 msgid "Delete existing BOM items before uploading" msgstr "" -#: part/serializers.py:1934 +#: part/serializers.py:1996 msgid "No part column specified" msgstr "" -#: part/serializers.py:1978 +#: part/serializers.py:2040 msgid "Multiple matching parts found" msgstr "" -#: part/serializers.py:1981 +#: part/serializers.py:2043 msgid "No matching part found" msgstr "" -#: part/serializers.py:1984 +#: part/serializers.py:2045 msgid "Part is not designated as a component" msgstr "" -#: part/serializers.py:1993 +#: part/serializers.py:2054 msgid "Quantity not provided" msgstr "" -#: part/serializers.py:2001 +#: part/serializers.py:2062 msgid "Invalid quantity" msgstr "" -#: part/serializers.py:2024 +#: part/serializers.py:2085 msgid "At least one BOM item is required" msgstr "" #: part/stocktake.py:224 templates/js/translated/part.js:1073 #: templates/js/translated/part.js:1828 templates/js/translated/part.js:1884 -#: templates/js/translated/purchase_order.js:2154 +#: templates/js/translated/purchase_order.js:2138 msgid "Total Quantity" msgstr "" @@ -7932,9 +8157,9 @@ msgid "Add stocktake information" msgstr "" #: part/templates/part/detail.html:67 part/templates/part/part_sidebar.html:50 -#: stock/admin.py:255 templates/InvenTree/settings/part_stocktake.html:30 +#: stock/admin.py:256 templates/InvenTree/settings/part_stocktake.html:30 #: templates/InvenTree/settings/sidebar.html:53 -#: templates/js/translated/stock.js:2301 users/models.py:204 +#: templates/js/translated/stock.js:2302 users/models.py:204 msgid "Stocktake" msgstr "" @@ -8093,142 +8318,146 @@ msgstr "" msgid "Part List" msgstr "" -#: part/templates/part/part_base.html:25 part/templates/part/part_base.html:29 +#: part/templates/part/part_base.html:26 part/templates/part/part_base.html:30 msgid "You are subscribed to notifications for this part" msgstr "" -#: part/templates/part/part_base.html:33 +#: part/templates/part/part_base.html:34 msgid "Subscribe to notifications for this part" msgstr "" -#: part/templates/part/part_base.html:52 +#: part/templates/part/part_base.html:53 #: stock/templates/stock/item_base.html:62 -#: stock/templates/stock/location.html:71 templates/js/translated/label.js:136 +#: stock/templates/stock/location.html:72 templates/js/translated/label.js:136 msgid "Print Label" msgstr "" -#: part/templates/part/part_base.html:58 +#: part/templates/part/part_base.html:59 msgid "Show pricing information" msgstr "" -#: part/templates/part/part_base.html:63 -#: stock/templates/stock/item_base.html:110 -#: stock/templates/stock/location.html:80 +#: part/templates/part/part_base.html:64 +#: stock/templates/stock/item_base.html:107 +#: stock/templates/stock/location.html:81 msgid "Stock actions" msgstr "" -#: part/templates/part/part_base.html:70 +#: part/templates/part/part_base.html:71 msgid "Count part stock" msgstr "" -#: part/templates/part/part_base.html:76 +#: part/templates/part/part_base.html:77 msgid "Transfer part stock" msgstr "" -#: part/templates/part/part_base.html:91 templates/js/translated/part.js:2299 +#: part/templates/part/part_base.html:92 templates/js/translated/part.js:2299 msgid "Part actions" msgstr "" -#: part/templates/part/part_base.html:94 +#: part/templates/part/part_base.html:95 msgid "Duplicate part" msgstr "" -#: part/templates/part/part_base.html:97 +#: part/templates/part/part_base.html:98 msgid "Edit part" msgstr "" -#: part/templates/part/part_base.html:100 +#: part/templates/part/part_base.html:101 msgid "Delete part" msgstr "" -#: part/templates/part/part_base.html:119 +#: part/templates/part/part_base.html:120 msgid "Part is a template part (variants can be made from this part)" msgstr "" -#: part/templates/part/part_base.html:123 +#: part/templates/part/part_base.html:124 msgid "Part can be assembled from other parts" msgstr "" -#: part/templates/part/part_base.html:127 +#: part/templates/part/part_base.html:128 msgid "Part can be used in assemblies" msgstr "" -#: part/templates/part/part_base.html:131 +#: part/templates/part/part_base.html:132 msgid "Part stock is tracked by serial number" msgstr "" -#: part/templates/part/part_base.html:135 +#: part/templates/part/part_base.html:136 msgid "Part can be purchased from external suppliers" msgstr "" -#: part/templates/part/part_base.html:139 +#: part/templates/part/part_base.html:140 msgid "Part can be sold to customers" msgstr "" -#: part/templates/part/part_base.html:145 +#: part/templates/part/part_base.html:146 msgid "Part is not active" msgstr "" -#: part/templates/part/part_base.html:153 +#: part/templates/part/part_base.html:154 msgid "Part is virtual (not a physical part)" msgstr "" -#: part/templates/part/part_base.html:163 -#: part/templates/part/part_base.html:690 +#: part/templates/part/part_base.html:164 +#: part/templates/part/part_base.html:698 msgid "Show Part Details" msgstr "" #: part/templates/part/part_base.html:218 -#: stock/templates/stock/item_base.html:388 +msgid "Required for Orders" +msgstr "" + +#: part/templates/part/part_base.html:226 +#: stock/templates/stock/item_base.html:385 msgid "Allocated to Build Orders" msgstr "" -#: part/templates/part/part_base.html:227 -#: stock/templates/stock/item_base.html:381 +#: part/templates/part/part_base.html:235 +#: stock/templates/stock/item_base.html:378 msgid "Allocated to Sales Orders" msgstr "" -#: part/templates/part/part_base.html:300 +#: part/templates/part/part_base.html:308 msgid "Minimum stock level" msgstr "" -#: part/templates/part/part_base.html:331 templates/js/translated/bom.js:1071 +#: part/templates/part/part_base.html:339 templates/js/translated/bom.js:1071 #: templates/js/translated/part.js:1271 templates/js/translated/part.js:2463 #: templates/js/translated/pricing.js:391 -#: templates/js/translated/pricing.js:1054 +#: templates/js/translated/pricing.js:1052 msgid "Price Range" msgstr "" -#: part/templates/part/part_base.html:361 +#: part/templates/part/part_base.html:369 msgid "Latest Serial Number" msgstr "" -#: part/templates/part/part_base.html:365 -#: stock/templates/stock/item_base.html:322 +#: part/templates/part/part_base.html:373 +#: stock/templates/stock/item_base.html:319 msgid "Search for serial number" msgstr "" -#: part/templates/part/part_base.html:453 +#: part/templates/part/part_base.html:461 msgid "Part QR Code" msgstr "" -#: part/templates/part/part_base.html:470 +#: part/templates/part/part_base.html:478 msgid "Link Barcode to Part" msgstr "" -#: part/templates/part/part_base.html:520 +#: part/templates/part/part_base.html:528 msgid "Calculate" msgstr "" -#: part/templates/part/part_base.html:537 +#: part/templates/part/part_base.html:545 msgid "Remove associated image from this part" msgstr "" -#: part/templates/part/part_base.html:588 +#: part/templates/part/part_base.html:596 msgid "No matching images found" msgstr "" -#: part/templates/part/part_base.html:684 +#: part/templates/part/part_base.html:692 msgid "Hide Part Details" msgstr "" @@ -8282,13 +8511,13 @@ msgid "Variants" msgstr "" #: part/templates/part/part_sidebar.html:14 -#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:21 +#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:22 #: stock/templates/stock/stock_app_base.html:10 #: templates/InvenTree/search.html:153 #: templates/InvenTree/settings/sidebar.html:51 #: templates/js/translated/part.js:1249 templates/js/translated/part.js:2152 #: templates/js/translated/part.js:2411 templates/js/translated/stock.js:1066 -#: templates/js/translated/stock.js:2155 templates/navbar.html:31 +#: templates/js/translated/stock.js:2156 templates/navbar.html:31 msgid "Stock" msgstr "" @@ -8324,17 +8553,17 @@ msgstr "" #: part/templates/part/prices.html:18 #: templates/InvenTree/settings/settings_staff_js.html:80 #: templates/InvenTree/settings/user.html:24 -#: templates/js/translated/helpers.js:103 +#: templates/js/translated/helpers.js:104 #: templates/js/translated/pricing.js:628 templates/notes_buttons.html:3 #: templates/notes_buttons.html:4 msgid "Edit" msgstr "" -#: part/templates/part/prices.html:28 stock/admin.py:251 -#: stock/templates/stock/item_base.html:446 -#: templates/js/translated/company.js:1703 -#: templates/js/translated/company.js:1713 -#: templates/js/translated/stock.js:2331 +#: part/templates/part/prices.html:28 stock/admin.py:252 +#: stock/templates/stock/item_base.html:443 +#: templates/js/translated/company.js:1704 +#: templates/js/translated/company.js:1714 +#: templates/js/translated/stock.js:2332 msgid "Last Updated" msgstr "" @@ -8406,7 +8635,7 @@ msgid "Update Pricing" msgstr "" #: part/templates/part/stock_count.html:7 -#: templates/js/translated/model_renderers.js:228 +#: templates/js/translated/model_renderers.js:231 #: templates/js/translated/part.js:707 templates/js/translated/part.js:2147 #: templates/js/translated/part.js:2149 msgid "No Stock" @@ -8486,7 +8715,7 @@ msgstr "" msgid "Part Pricing" msgstr "" -#: plugin/api.py:172 +#: plugin/api.py:175 msgid "Plugin cannot be deleted as it is currently active" msgstr "" @@ -8498,78 +8727,85 @@ msgstr "" msgid "No matching action found" msgstr "" -#: plugin/base/barcodes/api.py:125 plugin/base/barcodes/api.py:371 -#: plugin/base/barcodes/api.py:546 +#: plugin/base/barcodes/api.py:203 msgid "No match found for barcode data" msgstr "" -#: plugin/base/barcodes/api.py:129 +#: plugin/base/barcodes/api.py:207 msgid "Match found for barcode data" msgstr "" -#: plugin/base/barcodes/api.py:163 plugin/base/barcodes/serializers.py:45 +#: plugin/base/barcodes/api.py:245 plugin/base/barcodes/serializers.py:72 msgid "Model is not supported" msgstr "" -#: plugin/base/barcodes/api.py:168 +#: plugin/base/barcodes/api.py:250 msgid "Model instance not found" msgstr "" -#: plugin/base/barcodes/api.py:197 -#: templates/js/translated/purchase_order.js:1468 +#: plugin/base/barcodes/api.py:279 +#: templates/js/translated/purchase_order.js:1452 msgid "Barcode matches existing item" msgstr "" -#: plugin/base/barcodes/api.py:336 +#: plugin/base/barcodes/api.py:418 msgid "No matching part data found" msgstr "" -#: plugin/base/barcodes/api.py:353 +#: plugin/base/barcodes/api.py:434 msgid "No matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:357 +#: plugin/base/barcodes/api.py:437 msgid "Multiple matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:381 +#: plugin/base/barcodes/api.py:450 plugin/base/barcodes/api.py:664 +msgid "No matching plugin found for barcode data" +msgstr "" + +#: plugin/base/barcodes/api.py:460 msgid "Matched supplier part" msgstr "" -#: plugin/base/barcodes/api.py:430 +#: plugin/base/barcodes/api.py:525 msgid "Item has already been received" msgstr "" -#: plugin/base/barcodes/api.py:467 +#: plugin/base/barcodes/api.py:563 msgid "No match for supplier barcode" msgstr "" -#: plugin/base/barcodes/api.py:510 +#: plugin/base/barcodes/api.py:612 msgid "Multiple matching line items found" msgstr "" -#: plugin/base/barcodes/api.py:513 +#: plugin/base/barcodes/api.py:615 msgid "No matching line item found" msgstr "" -#: plugin/base/barcodes/api.py:551 plugin/base/barcodes/api.py:558 +#: plugin/base/barcodes/api.py:661 +msgid "No sales order provided" +msgstr "" + +#: plugin/base/barcodes/api.py:670 msgid "Barcode does not match an existing stock item" msgstr "" -#: plugin/base/barcodes/api.py:569 +#: plugin/base/barcodes/api.py:686 msgid "Stock item does not match line item" msgstr "" -#: plugin/base/barcodes/api.py:593 templates/js/translated/build.js:2780 -#: templates/js/translated/sales_order.js:1953 +#: plugin/base/barcodes/api.py:716 templates/js/translated/build.js:2798 +#: templates/js/translated/sales_order.js:1934 msgid "Insufficient stock available" msgstr "" -#: plugin/base/barcodes/api.py:602 +#: plugin/base/barcodes/api.py:729 msgid "Stock item allocated to sales order" msgstr "" -#: plugin/base/barcodes/api.py:606 +#: plugin/base/barcodes/api.py:732 msgid "Not enough information" msgstr "" @@ -8591,75 +8827,75 @@ msgstr "" msgid "Purchase order does not match supplier" msgstr "" -#: plugin/base/barcodes/mixins.py:465 +#: plugin/base/barcodes/mixins.py:467 msgid "Failed to find pending line item for supplier part" msgstr "" -#: plugin/base/barcodes/mixins.py:496 +#: plugin/base/barcodes/mixins.py:498 msgid "Further information required to receive line item" msgstr "" -#: plugin/base/barcodes/mixins.py:504 +#: plugin/base/barcodes/mixins.py:506 msgid "Received purchase order line item" msgstr "" -#: plugin/base/barcodes/serializers.py:21 +#: plugin/base/barcodes/serializers.py:48 msgid "Scanned barcode data" msgstr "" -#: plugin/base/barcodes/serializers.py:30 +#: plugin/base/barcodes/serializers.py:57 msgid "Model name to generate barcode for" msgstr "" -#: plugin/base/barcodes/serializers.py:35 +#: plugin/base/barcodes/serializers.py:62 msgid "Primary key of model object to generate barcode for" msgstr "" -#: plugin/base/barcodes/serializers.py:105 +#: plugin/base/barcodes/serializers.py:132 msgid "Purchase Order to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:111 +#: plugin/base/barcodes/serializers.py:138 msgid "Purchase order is not pending" msgstr "" -#: plugin/base/barcodes/serializers.py:129 +#: plugin/base/barcodes/serializers.py:156 msgid "PurchaseOrder to receive items against" msgstr "" -#: plugin/base/barcodes/serializers.py:135 +#: plugin/base/barcodes/serializers.py:162 msgid "Purchase order has not been placed" msgstr "" -#: plugin/base/barcodes/serializers.py:143 +#: plugin/base/barcodes/serializers.py:170 msgid "Location to receive items into" msgstr "" -#: plugin/base/barcodes/serializers.py:149 +#: plugin/base/barcodes/serializers.py:176 msgid "Cannot select a structural location" msgstr "" -#: plugin/base/barcodes/serializers.py:163 +#: plugin/base/barcodes/serializers.py:190 msgid "Sales Order to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:169 +#: plugin/base/barcodes/serializers.py:196 msgid "Sales order is not pending" msgstr "" -#: plugin/base/barcodes/serializers.py:177 +#: plugin/base/barcodes/serializers.py:204 msgid "Sales order line item to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:184 +#: plugin/base/barcodes/serializers.py:211 msgid "Sales order shipment to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:190 +#: plugin/base/barcodes/serializers.py:217 msgid "Shipment has already been delivered" msgstr "" -#: plugin/base/barcodes/serializers.py:195 +#: plugin/base/barcodes/serializers.py:222 msgid "Quantity to allocate" msgstr "" @@ -8679,6 +8915,42 @@ msgstr "" msgid "No items provided to print" msgstr "" +#: plugin/base/ui/serializers.py:30 +msgid "Plugin Name" +msgstr "" + +#: plugin/base/ui/serializers.py:34 +msgid "Feature Type" +msgstr "" + +#: plugin/base/ui/serializers.py:39 +msgid "Feature Label" +msgstr "" + +#: plugin/base/ui/serializers.py:44 +msgid "Feature Title" +msgstr "" + +#: plugin/base/ui/serializers.py:49 +msgid "Feature Description" +msgstr "" + +#: plugin/base/ui/serializers.py:54 +msgid "Feature Icon" +msgstr "" + +#: plugin/base/ui/serializers.py:58 +msgid "Feature Options" +msgstr "" + +#: plugin/base/ui/serializers.py:61 +msgid "Feature Context" +msgstr "" + +#: plugin/base/ui/serializers.py:64 +msgid "Feature Source (javascript)" +msgstr "" + #: plugin/builtin/barcodes/inventree_barcode.py:27 msgid "InvenTree Barcodes" msgstr "" @@ -8756,7 +9028,7 @@ msgstr "" msgid "URL that is used to send messages to a slack channel" msgstr "" -#: plugin/builtin/integration/core_notifications.py:164 +#: plugin/builtin/integration/core_notifications.py:166 msgid "Open link" msgstr "" @@ -8794,11 +9066,11 @@ msgstr "" msgid "Provides support for printing using a machine" msgstr "" -#: plugin/builtin/labels/inventree_machine.py:149 +#: plugin/builtin/labels/inventree_machine.py:151 msgid "last used" msgstr "" -#: plugin/builtin/labels/inventree_machine.py:166 +#: plugin/builtin/labels/inventree_machine.py:168 msgid "Options" msgstr "" @@ -8822,7 +9094,7 @@ msgstr "" msgid "Print a border around each label" msgstr "" -#: plugin/builtin/labels/label_sheet.py:47 report/models.py:307 +#: plugin/builtin/labels/label_sheet.py:47 report/models.py:315 msgid "Landscape" msgstr "" @@ -8894,19 +9166,19 @@ msgstr "" msgid "The Supplier which acts as 'TME'" msgstr "" -#: plugin/installer.py:194 plugin/installer.py:282 +#: plugin/installer.py:199 plugin/installer.py:282 msgid "Only staff users can administer plugins" msgstr "" -#: plugin/installer.py:197 +#: plugin/installer.py:202 msgid "Plugin installation is disabled" msgstr "" -#: plugin/installer.py:248 +#: plugin/installer.py:246 msgid "Installed plugin successfully" msgstr "" -#: plugin/installer.py:254 +#: plugin/installer.py:251 #, python-brace-format msgid "Installed plugin into {path}" msgstr "" @@ -8943,10 +9215,6 @@ msgstr "" msgid "Plugin Configurations" msgstr "" -#: plugin/models.py:43 users/models.py:100 -msgid "Key" -msgstr "" - #: plugin/models.py:44 msgid "Key of plugin" msgstr "" @@ -8955,7 +9223,7 @@ msgstr "" msgid "PluginName of the plugin" msgstr "" -#: plugin/models.py:59 plugin/serializers.py:90 +#: plugin/models.py:59 plugin/serializers.py:115 msgid "Package Name" msgstr "" @@ -8984,17 +9252,17 @@ msgstr "" msgid "Package Plugin" msgstr "" -#: plugin/models.py:220 report/models.py:474 +#: plugin/models.py:259 report/models.py:482 #: templates/InvenTree/settings/plugin_settings.html:9 #: templates/js/translated/plugin.js:51 msgid "Plugin" msgstr "" -#: plugin/models.py:267 +#: plugin/models.py:306 msgid "Method" msgstr "" -#: plugin/plugin.py:270 +#: plugin/plugin.py:275 msgid "No author found" msgstr "" @@ -9053,81 +9321,157 @@ msgstr "" msgid "InvenTree Contributors" msgstr "" -#: plugin/serializers.py:81 -msgid "Source URL" +#: plugin/samples/integration/user_interface_sample.py:27 +msgid "Enable Part Panels" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:28 +msgid "Enable custom panels for Part views" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:33 +msgid "Enable Purchase Order Panels" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:34 +msgid "Enable custom panels for Purchase Order views" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:39 +msgid "Enable Broken Panels" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:40 +msgid "Enable broken panels for testing" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:45 +msgid "Enable Dynamic Panel" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:46 +msgid "Enable dynamic panels for testing" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:98 +msgid "Part Panel" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:131 +msgid "Broken Dashboard Item" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:133 +msgid "This is a broken dashboard item - it will not render!" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:139 +msgid "Sample Dashboard Item" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:141 +msgid "This is a sample dashboard item. It renders a simple string of HTML content." +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:147 +msgid "Context Dashboard Item" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:161 +msgid "Admin Dashboard Item" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:162 +msgid "This is an admin-only dashboard item." +msgstr "" + +#: plugin/serializers.py:82 +msgid "Source File" msgstr "" #: plugin/serializers.py:83 +msgid "Path to the source file for admin integration" +msgstr "" + +#: plugin/serializers.py:90 +msgid "Optional context data for the admin integration" +msgstr "" + +#: plugin/serializers.py:106 +msgid "Source URL" +msgstr "" + +#: plugin/serializers.py:108 msgid "Source for the package - this can be a custom registry or a VCS path" msgstr "" -#: plugin/serializers.py:92 +#: plugin/serializers.py:117 msgid "Name for the Plugin Package - can also contain a version indicator" msgstr "" -#: plugin/serializers.py:99 +#: plugin/serializers.py:124 #: templates/InvenTree/settings/plugin_settings.html:42 #: templates/js/translated/plugin.js:86 msgid "Version" msgstr "" -#: plugin/serializers.py:101 +#: plugin/serializers.py:126 msgid "Version specifier for the plugin. Leave blank for latest version." msgstr "" -#: plugin/serializers.py:106 +#: plugin/serializers.py:131 msgid "Confirm plugin installation" msgstr "" -#: plugin/serializers.py:108 +#: plugin/serializers.py:133 msgid "This will install this plugin now into the current instance. The instance will go into maintenance." msgstr "" -#: plugin/serializers.py:121 +#: plugin/serializers.py:146 msgid "Installation not confirmed" msgstr "" -#: plugin/serializers.py:123 +#: plugin/serializers.py:148 msgid "Either packagename of URL must be provided" msgstr "" -#: plugin/serializers.py:161 +#: plugin/serializers.py:184 msgid "Full reload" msgstr "" -#: plugin/serializers.py:162 +#: plugin/serializers.py:185 msgid "Perform a full reload of the plugin registry" msgstr "" -#: plugin/serializers.py:168 +#: plugin/serializers.py:191 msgid "Force reload" msgstr "" -#: plugin/serializers.py:170 +#: plugin/serializers.py:193 msgid "Force a reload of the plugin registry, even if it is already loaded" msgstr "" -#: plugin/serializers.py:177 +#: plugin/serializers.py:200 msgid "Collect plugins" msgstr "" -#: plugin/serializers.py:178 +#: plugin/serializers.py:201 msgid "Collect plugins and add them to the registry" msgstr "" -#: plugin/serializers.py:205 +#: plugin/serializers.py:228 msgid "Activate Plugin" msgstr "" -#: plugin/serializers.py:206 +#: plugin/serializers.py:229 msgid "Activate this plugin" msgstr "" -#: plugin/serializers.py:226 +#: plugin/serializers.py:249 msgid "Delete configuration" msgstr "" -#: plugin/serializers.py:227 +#: plugin/serializers.py:250 msgid "Delete the plugin configuration from the database" msgstr "" @@ -9135,11 +9479,11 @@ msgstr "" msgid "No valid objects provided to template" msgstr "" -#: report/api.py:103 report/models.py:438 report/serializers.py:98 -#: report/serializers.py:148 templates/js/translated/purchase_order.js:1817 +#: report/api.py:103 report/models.py:446 report/serializers.py:99 +#: report/serializers.py:149 templates/js/translated/purchase_order.js:1801 #: templates/js/translated/return_order.js:353 -#: templates/js/translated/sales_order.js:887 -#: templates/js/translated/sales_order.js:1047 +#: templates/js/translated/sales_order.js:846 +#: templates/js/translated/sales_order.js:1020 msgid "Items" msgstr "" @@ -9167,7 +9511,11 @@ msgstr "" msgid "Error printing label" msgstr "" -#: report/api.py:375 report/api.py:411 +#: report/api.py:358 +msgid "Report saved at time of printing" +msgstr "" + +#: report/api.py:384 report/api.py:420 #, python-brace-format msgid "Template file '{template}' is missing or does not exist" msgstr "" @@ -9204,135 +9552,143 @@ msgstr "" msgid "Revision number (auto-increments)" msgstr "" -#: report/models.py:202 +#: report/models.py:168 +msgid "Attach to Model on Print" +msgstr "" + +#: report/models.py:170 +msgid "Save report output as an attachment against linked model instance when printing" +msgstr "" + +#: report/models.py:210 msgid "Filename Pattern" msgstr "" -#: report/models.py:203 +#: report/models.py:211 msgid "Pattern for generating filenames" msgstr "" -#: report/models.py:208 +#: report/models.py:216 msgid "Template is enabled" msgstr "" -#: report/models.py:214 +#: report/models.py:222 msgid "Target model type for template" msgstr "" -#: report/models.py:234 +#: report/models.py:242 msgid "Filters" msgstr "" -#: report/models.py:235 +#: report/models.py:243 msgid "Template query filters (comma-separated list of key=value pairs)" msgstr "" -#: report/models.py:294 report/models.py:361 +#: report/models.py:302 report/models.py:369 msgid "Template file" msgstr "" -#: report/models.py:302 +#: report/models.py:310 msgid "Page size for PDF reports" msgstr "" -#: report/models.py:308 +#: report/models.py:316 msgid "Render report in landscape orientation" msgstr "" -#: report/models.py:367 +#: report/models.py:375 msgid "Width [mm]" msgstr "" -#: report/models.py:368 +#: report/models.py:376 msgid "Label width, specified in mm" msgstr "" -#: report/models.py:374 +#: report/models.py:382 msgid "Height [mm]" msgstr "" -#: report/models.py:375 +#: report/models.py:383 msgid "Label height, specified in mm" msgstr "" -#: report/models.py:438 +#: report/models.py:446 msgid "Number of items to process" msgstr "" -#: report/models.py:444 +#: report/models.py:452 msgid "Report generation is complete" msgstr "" -#: report/models.py:448 templates/js/translated/build.js:2349 +#: report/models.py:456 templates/js/translated/build.js:2352 msgid "Progress" msgstr "" -#: report/models.py:448 +#: report/models.py:456 msgid "Report generation progress" msgstr "" -#: report/models.py:456 +#: report/models.py:464 msgid "Report Template" msgstr "" -#: report/models.py:463 report/models.py:486 +#: report/models.py:471 report/models.py:494 msgid "Output File" msgstr "" -#: report/models.py:464 report/models.py:487 +#: report/models.py:472 report/models.py:495 msgid "Generated output file" msgstr "" -#: report/models.py:475 +#: report/models.py:483 msgid "Label output plugin" msgstr "" -#: report/models.py:479 +#: report/models.py:487 msgid "Label Template" msgstr "" -#: report/models.py:502 +#: report/models.py:510 msgid "Snippet" msgstr "" -#: report/models.py:503 +#: report/models.py:511 msgid "Report snippet file" msgstr "" -#: report/models.py:510 +#: report/models.py:518 msgid "Snippet file description" msgstr "" -#: report/models.py:528 +#: report/models.py:536 msgid "Asset" msgstr "" -#: report/models.py:529 +#: report/models.py:537 msgid "Report asset file" msgstr "" -#: report/models.py:536 +#: report/models.py:544 msgid "Asset file description" msgstr "" -#: report/serializers.py:91 +#: report/serializers.py:92 msgid "Select report template" msgstr "" -#: report/serializers.py:99 report/serializers.py:149 +#: report/serializers.py:100 report/serializers.py:150 msgid "List of item primary keys to include in the report" msgstr "" -#: report/serializers.py:132 +#: report/serializers.py:133 msgid "Select label template" msgstr "" -#: report/serializers.py:140 +#: report/serializers.py:141 msgid "Printing Plugin" msgstr "" -#: report/serializers.py:141 +#: report/serializers.py:142 msgid "Select plugin to use for label printing" msgstr "" @@ -9365,9 +9721,9 @@ msgstr "" #: report/templates/report/inventree_sales_order_report.html:30 #: templates/js/translated/order.js:341 templates/js/translated/pricing.js:527 #: templates/js/translated/pricing.js:596 -#: templates/js/translated/pricing.js:834 -#: templates/js/translated/purchase_order.js:2185 -#: templates/js/translated/sales_order.js:1873 +#: templates/js/translated/pricing.js:832 +#: templates/js/translated/purchase_order.js:2169 +#: templates/js/translated/sales_order.js:1854 msgid "Unit Price" msgstr "" @@ -9379,13 +9735,18 @@ msgstr "" #: report/templates/report/inventree_purchase_order_report.html:72 #: report/templates/report/inventree_sales_order_report.html:72 -#: templates/js/translated/purchase_order.js:2087 -#: templates/js/translated/sales_order.js:1842 +#: templates/js/translated/purchase_order.js:2071 +#: templates/js/translated/sales_order.js:1823 #: templates/test_statistics_table.html:8 #: templates/test_statistics_table.html:19 msgid "Total" msgstr "" +#: report/templates/report/inventree_sales_order_shipment_report.html:23 +#: stock/templates/stock/stock_sidebar.html:8 +msgid "Allocations" +msgstr "" + #: report/templates/report/inventree_stock_location_report.html:97 msgid "Stock location items" msgstr "" @@ -9403,15 +9764,13 @@ msgstr "" msgid "Test" msgstr "" -#: report/templates/report/inventree_test_report.html:103 stock/models.py:2544 -msgid "Result" -msgstr "" - #: report/templates/report/inventree_test_report.html:129 +#: templates/js/translated/stock.js:1448 msgid "Pass" msgstr "" #: report/templates/report/inventree_test_report.html:131 +#: templates/js/translated/stock.js:1450 msgid "Fail" msgstr "" @@ -9420,17 +9779,18 @@ msgid "No result (required)" msgstr "" #: report/templates/report/inventree_test_report.html:140 +#: templates/js/translated/stock.js:1455 msgid "No result" msgstr "" #: report/templates/report/inventree_test_report.html:153 -#: stock/serializers.py:599 stock/templates/stock/stock_sidebar.html:16 +#: stock/serializers.py:626 stock/templates/stock/stock_sidebar.html:16 msgid "Installed Items" msgstr "" -#: report/templates/report/inventree_test_report.html:167 stock/admin.py:161 +#: report/templates/report/inventree_test_report.html:167 stock/admin.py:162 #: templates/js/translated/stock.js:706 templates/js/translated/stock.js:877 -#: templates/js/translated/stock.js:3194 +#: templates/js/translated/stock.js:3195 msgid "Serial" msgstr "" @@ -9450,67 +9810,67 @@ msgstr "" msgid "company_image tag requires a Company instance" msgstr "" -#: stock/admin.py:51 stock/admin.py:171 +#: stock/admin.py:51 stock/admin.py:172 msgid "Location ID" msgstr "" -#: stock/admin.py:63 stock/templates/stock/location.html:128 -#: stock/templates/stock/location.html:134 +#: stock/admin.py:63 stock/templates/stock/location.html:129 +#: stock/templates/stock/location.html:135 msgid "Location Path" msgstr "" -#: stock/admin.py:148 +#: stock/admin.py:149 msgid "Stock Item ID" msgstr "" -#: stock/admin.py:167 +#: stock/admin.py:168 msgid "Status Code" msgstr "" -#: stock/admin.py:179 +#: stock/admin.py:180 msgid "Supplier Part ID" msgstr "" -#: stock/admin.py:184 +#: stock/admin.py:185 msgid "Supplier Part SKU" msgstr "" -#: stock/admin.py:189 +#: stock/admin.py:190 msgid "Supplier ID" msgstr "" -#: stock/admin.py:200 +#: stock/admin.py:201 msgid "Customer ID" msgstr "" -#: stock/admin.py:205 stock/models.py:825 -#: stock/templates/stock/item_base.html:354 +#: stock/admin.py:206 stock/models.py:902 +#: stock/templates/stock/item_base.html:351 msgid "Installed In" msgstr "" -#: stock/admin.py:210 +#: stock/admin.py:211 msgid "Build ID" msgstr "" -#: stock/admin.py:220 +#: stock/admin.py:221 msgid "Sales Order ID" msgstr "" -#: stock/admin.py:225 +#: stock/admin.py:226 msgid "Purchase Order ID" msgstr "" -#: stock/admin.py:240 +#: stock/admin.py:241 msgid "Review Needed" msgstr "" -#: stock/admin.py:245 +#: stock/admin.py:246 msgid "Delete on Deplete" msgstr "" -#: stock/admin.py:260 stock/models.py:919 -#: stock/templates/stock/item_base.html:433 -#: templates/js/translated/stock.js:2315 users/models.py:124 +#: stock/admin.py:261 stock/models.py:996 +#: stock/templates/stock/item_base.html:430 +#: templates/js/translated/stock.js:2316 users/models.py:124 msgid "Expiry Date" msgstr "" @@ -9526,11 +9886,11 @@ msgstr "" msgid "Include sub-locations in filtered results" msgstr "" -#: stock/api.py:367 stock/serializers.py:1186 +#: stock/api.py:366 stock/serializers.py:1217 msgid "Parent Location" msgstr "" -#: stock/api.py:368 +#: stock/api.py:367 msgid "Filter by parent location" msgstr "" @@ -9550,8 +9910,8 @@ msgstr "" msgid "Expiry date after" msgstr "" -#: stock/api.py:840 stock/serializers.py:604 -#: stock/templates/stock/item_base.html:439 +#: stock/api.py:840 stock/serializers.py:631 +#: stock/templates/stock/item_base.html:436 #: templates/js/translated/table_filters.js:448 msgid "Stale" msgstr "" @@ -9560,594 +9920,598 @@ msgstr "" msgid "Quantity is required" msgstr "" -#: stock/api.py:933 +#: stock/api.py:932 msgid "Valid part must be supplied" msgstr "" -#: stock/api.py:964 +#: stock/api.py:959 msgid "The given supplier part does not exist" msgstr "" -#: stock/api.py:974 +#: stock/api.py:969 msgid "The supplier part has a pack size defined, but flag use_pack_size not set" msgstr "" -#: stock/api.py:1005 +#: stock/api.py:996 msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "" -#: stock/models.py:64 +#: stock/models.py:70 msgid "Stock Location type" msgstr "" -#: stock/models.py:65 +#: stock/models.py:71 msgid "Stock Location types" msgstr "" -#: stock/models.py:91 +#: stock/models.py:97 msgid "Default icon for all locations that have no icon set (optional)" msgstr "" -#: stock/models.py:131 stock/models.py:807 -#: stock/templates/stock/location.html:17 +#: stock/models.py:137 stock/models.py:884 +#: stock/templates/stock/location.html:18 #: stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "" -#: stock/models.py:132 stock/templates/stock/location.html:183 +#: stock/models.py:138 stock/templates/stock/location.html:184 #: templates/InvenTree/search.html:166 templates/js/translated/search.js:178 #: users/models.py:205 msgid "Stock Locations" msgstr "" -#: stock/models.py:180 stock/models.py:968 -#: stock/templates/stock/item_base.html:247 +#: stock/models.py:186 stock/models.py:1045 +#: stock/templates/stock/item_base.html:244 msgid "Owner" msgstr "" -#: stock/models.py:181 stock/models.py:969 +#: stock/models.py:187 stock/models.py:1046 msgid "Select Owner" msgstr "" -#: stock/models.py:189 +#: stock/models.py:195 msgid "Stock items may not be directly located into a structural stock locations, but may be located to child locations." msgstr "" -#: stock/models.py:196 templates/js/translated/stock.js:2865 +#: stock/models.py:202 templates/js/translated/stock.js:2866 #: templates/js/translated/table_filters.js:250 msgid "External" msgstr "" -#: stock/models.py:197 +#: stock/models.py:203 msgid "This is an external stock location" msgstr "" -#: stock/models.py:203 templates/js/translated/stock.js:2874 +#: stock/models.py:209 templates/js/translated/stock.js:2875 #: templates/js/translated/table_filters.js:253 msgid "Location type" msgstr "" -#: stock/models.py:207 +#: stock/models.py:213 msgid "Stock location type of this location" msgstr "" -#: stock/models.py:279 +#: stock/models.py:285 msgid "You cannot make this stock location structural because some stock items are already located into it!" msgstr "" -#: stock/models.py:664 +#: stock/models.py:492 +msgid "Part must be specified" +msgstr "" + +#: stock/models.py:741 msgid "Stock items cannot be located into structural stock locations!" msgstr "" -#: stock/models.py:691 stock/serializers.py:480 +#: stock/models.py:768 stock/serializers.py:492 msgid "Stock item cannot be created for virtual parts" msgstr "" -#: stock/models.py:708 +#: stock/models.py:785 #, python-brace-format msgid "Part type ('{self.supplier_part.part}') must be {self.part}" msgstr "" -#: stock/models.py:718 stock/models.py:731 +#: stock/models.py:795 stock/models.py:808 msgid "Quantity must be 1 for item with a serial number" msgstr "" -#: stock/models.py:721 +#: stock/models.py:798 msgid "Serial number cannot be set if quantity greater than 1" msgstr "" -#: stock/models.py:743 +#: stock/models.py:820 msgid "Item cannot belong to itself" msgstr "" -#: stock/models.py:748 +#: stock/models.py:825 msgid "Item must have a build reference if is_building=True" msgstr "" -#: stock/models.py:761 +#: stock/models.py:838 msgid "Build reference does not point to the same part object" msgstr "" -#: stock/models.py:777 +#: stock/models.py:854 msgid "Parent Stock Item" msgstr "" -#: stock/models.py:789 +#: stock/models.py:866 msgid "Base part" msgstr "" -#: stock/models.py:799 +#: stock/models.py:876 msgid "Select a matching supplier part for this stock item" msgstr "" -#: stock/models.py:811 +#: stock/models.py:888 msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:819 stock/serializers.py:1580 +#: stock/models.py:896 stock/serializers.py:1611 msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:830 +#: stock/models.py:907 msgid "Is this item installed in another item?" msgstr "" -#: stock/models.py:849 +#: stock/models.py:926 msgid "Serial number for this item" msgstr "" -#: stock/models.py:863 stock/serializers.py:1563 +#: stock/models.py:940 stock/serializers.py:1594 msgid "Batch code for this stock item" msgstr "" -#: stock/models.py:868 +#: stock/models.py:945 msgid "Stock Quantity" msgstr "" -#: stock/models.py:878 +#: stock/models.py:955 msgid "Source Build" msgstr "" -#: stock/models.py:881 +#: stock/models.py:958 msgid "Build for this stock item" msgstr "" -#: stock/models.py:888 stock/templates/stock/item_base.html:363 +#: stock/models.py:965 stock/templates/stock/item_base.html:360 msgid "Consumed By" msgstr "" -#: stock/models.py:891 +#: stock/models.py:968 msgid "Build order which consumed this stock item" msgstr "" -#: stock/models.py:900 +#: stock/models.py:977 msgid "Source Purchase Order" msgstr "" -#: stock/models.py:904 +#: stock/models.py:981 msgid "Purchase order for this stock item" msgstr "" -#: stock/models.py:910 +#: stock/models.py:987 msgid "Destination Sales Order" msgstr "" -#: stock/models.py:921 +#: stock/models.py:998 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "" -#: stock/models.py:939 +#: stock/models.py:1016 msgid "Delete on deplete" msgstr "" -#: stock/models.py:940 +#: stock/models.py:1017 msgid "Delete this Stock Item when stock is depleted" msgstr "" -#: stock/models.py:960 +#: stock/models.py:1037 msgid "Single unit purchase price at time of purchase" msgstr "" -#: stock/models.py:991 +#: stock/models.py:1068 msgid "Converted to part" msgstr "" -#: stock/models.py:1511 +#: stock/models.py:1600 msgid "Part is not set as trackable" msgstr "" -#: stock/models.py:1517 +#: stock/models.py:1606 msgid "Quantity must be integer" msgstr "" -#: stock/models.py:1525 +#: stock/models.py:1614 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({self.quantity})" msgstr "" -#: stock/models.py:1531 -msgid "Serial numbers must be a list of integers" +#: stock/models.py:1620 +msgid "Serial numbers must be provided as a list" msgstr "" -#: stock/models.py:1536 +#: stock/models.py:1625 msgid "Quantity does not match serial numbers" msgstr "" -#: stock/models.py:1544 stock/serializers.py:726 -msgid "Serial numbers already exist" -msgstr "" - -#: stock/models.py:1641 +#: stock/models.py:1747 stock/models.py:2563 msgid "Test template does not exist" msgstr "" -#: stock/models.py:1659 +#: stock/models.py:1765 msgid "Stock item has been assigned to a sales order" msgstr "" -#: stock/models.py:1663 +#: stock/models.py:1769 msgid "Stock item is installed in another item" msgstr "" -#: stock/models.py:1666 +#: stock/models.py:1772 msgid "Stock item contains other items" msgstr "" -#: stock/models.py:1669 +#: stock/models.py:1775 msgid "Stock item has been assigned to a customer" msgstr "" -#: stock/models.py:1672 +#: stock/models.py:1778 msgid "Stock item is currently in production" msgstr "" -#: stock/models.py:1675 +#: stock/models.py:1781 msgid "Serialized stock cannot be merged" msgstr "" -#: stock/models.py:1682 stock/serializers.py:1469 +#: stock/models.py:1788 stock/serializers.py:1500 msgid "Duplicate stock items" msgstr "" -#: stock/models.py:1686 +#: stock/models.py:1792 msgid "Stock items must refer to the same part" msgstr "" -#: stock/models.py:1694 +#: stock/models.py:1800 msgid "Stock items must refer to the same supplier part" msgstr "" -#: stock/models.py:1699 +#: stock/models.py:1805 msgid "Stock status codes must match" msgstr "" -#: stock/models.py:1960 +#: stock/models.py:2066 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:2343 +#: stock/models.py:2462 msgid "Stock Item Tracking" msgstr "" -#: stock/models.py:2376 +#: stock/models.py:2495 msgid "Entry notes" msgstr "" -#: stock/models.py:2416 +#: stock/models.py:2535 msgid "Stock Item Test Result" msgstr "" -#: stock/models.py:2449 +#: stock/models.py:2566 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:2454 +#: stock/models.py:2570 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:2459 +#: stock/models.py:2575 msgid "Invalid value for this test" msgstr "" -#: stock/models.py:2544 +#: stock/models.py:2660 msgid "Test result" msgstr "" -#: stock/models.py:2551 +#: stock/models.py:2667 msgid "Test output value" msgstr "" -#: stock/models.py:2559 +#: stock/models.py:2675 stock/serializers.py:245 msgid "Test result attachment" msgstr "" -#: stock/models.py:2563 +#: stock/models.py:2679 msgid "Test notes" msgstr "" -#: stock/models.py:2571 templates/js/translated/stock.js:1633 +#: stock/models.py:2687 templates/js/translated/stock.js:1633 msgid "Test station" msgstr "" -#: stock/models.py:2572 +#: stock/models.py:2688 msgid "The identifier of the test station where the test was performed" msgstr "" -#: stock/models.py:2578 +#: stock/models.py:2694 msgid "Started" msgstr "" -#: stock/models.py:2579 +#: stock/models.py:2695 msgid "The timestamp of the test start" msgstr "" -#: stock/models.py:2585 +#: stock/models.py:2701 msgid "Finished" msgstr "" -#: stock/models.py:2586 +#: stock/models.py:2702 msgid "The timestamp of the test finish" msgstr "" -#: stock/serializers.py:76 +#: stock/serializers.py:77 msgid "Generated batch code" msgstr "" -#: stock/serializers.py:85 +#: stock/serializers.py:86 msgid "Select build order" msgstr "" -#: stock/serializers.py:94 +#: stock/serializers.py:95 msgid "Select stock item to generate batch code for" msgstr "" -#: stock/serializers.py:103 +#: stock/serializers.py:104 msgid "Select location to generate batch code for" msgstr "" -#: stock/serializers.py:112 +#: stock/serializers.py:113 msgid "Select part to generate batch code for" msgstr "" -#: stock/serializers.py:121 +#: stock/serializers.py:122 msgid "Select purchase order" msgstr "" -#: stock/serializers.py:128 +#: stock/serializers.py:129 msgid "Enter quantity for batch code" msgstr "" -#: stock/serializers.py:151 +#: stock/serializers.py:152 msgid "Generated serial number" msgstr "" -#: stock/serializers.py:160 +#: stock/serializers.py:161 msgid "Select part to generate serial number for" msgstr "" -#: stock/serializers.py:168 +#: stock/serializers.py:169 msgid "Quantity of serial numbers to generate" msgstr "" -#: stock/serializers.py:233 +#: stock/serializers.py:234 msgid "Test template for this result" msgstr "" -#: stock/serializers.py:254 +#: stock/serializers.py:258 msgid "Template ID or test name must be provided" msgstr "" -#: stock/serializers.py:286 +#: stock/serializers.py:290 msgid "The test finished time cannot be earlier than the test started time" msgstr "" -#: stock/serializers.py:323 +#: stock/serializers.py:327 msgid "Serial number is too large" msgstr "" -#: stock/serializers.py:452 stock/templates/stock/item_base.html:193 +#: stock/serializers.py:462 stock/templates/stock/item_base.html:190 msgid "Parent Item" msgstr "" -#: stock/serializers.py:453 +#: stock/serializers.py:463 msgid "Parent stock item" msgstr "" -#: stock/serializers.py:472 +#: stock/serializers.py:484 msgid "Use pack size when adding: the quantity defined is the number of packs" msgstr "" -#: stock/serializers.py:596 stock/templates/stock/item_base.html:437 +#: stock/serializers.py:623 stock/templates/stock/item_base.html:434 #: templates/js/translated/table_filters.js:442 users/models.py:174 msgid "Expired" msgstr "" -#: stock/serializers.py:602 stock/templates/stock/stock_sidebar.html:20 +#: stock/serializers.py:629 stock/templates/stock/stock_sidebar.html:20 msgid "Child Items" msgstr "" -#: stock/serializers.py:606 +#: stock/serializers.py:633 msgid "Tracking Items" msgstr "" -#: stock/serializers.py:612 +#: stock/serializers.py:639 msgid "Purchase price of this stock item, per unit or pack" msgstr "" -#: stock/serializers.py:631 +#: stock/serializers.py:658 msgid "Minimum Pricing" msgstr "" -#: stock/serializers.py:637 +#: stock/serializers.py:664 msgid "Maximum Pricing" msgstr "" -#: stock/serializers.py:661 +#: stock/serializers.py:688 msgid "Enter number of stock items to serialize" msgstr "" -#: stock/serializers.py:674 +#: stock/serializers.py:701 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({q})" msgstr "" -#: stock/serializers.py:681 +#: stock/serializers.py:708 msgid "Enter serial numbers for new items" msgstr "" -#: stock/serializers.py:692 stock/serializers.py:1426 stock/serializers.py:1682 +#: stock/serializers.py:719 stock/serializers.py:1457 stock/serializers.py:1713 msgid "Destination stock location" msgstr "" -#: stock/serializers.py:699 +#: stock/serializers.py:726 msgid "Optional note field" msgstr "" -#: stock/serializers.py:709 +#: stock/serializers.py:736 msgid "Serial numbers cannot be assigned to this part" msgstr "" -#: stock/serializers.py:764 +#: stock/serializers.py:756 +msgid "Serial numbers already exist" +msgstr "" + +#: stock/serializers.py:795 msgid "Select stock item to install" msgstr "" -#: stock/serializers.py:771 +#: stock/serializers.py:802 msgid "Quantity to Install" msgstr "" -#: stock/serializers.py:772 +#: stock/serializers.py:803 msgid "Enter the quantity of items to install" msgstr "" -#: stock/serializers.py:777 stock/serializers.py:857 stock/serializers.py:983 -#: stock/serializers.py:1033 +#: stock/serializers.py:808 stock/serializers.py:888 stock/serializers.py:1014 +#: stock/serializers.py:1064 msgid "Add transaction note (optional)" msgstr "" -#: stock/serializers.py:785 +#: stock/serializers.py:816 msgid "Quantity to install must be at least 1" msgstr "" -#: stock/serializers.py:793 +#: stock/serializers.py:824 msgid "Stock item is unavailable" msgstr "" -#: stock/serializers.py:804 +#: stock/serializers.py:835 msgid "Selected part is not in the Bill of Materials" msgstr "" -#: stock/serializers.py:817 +#: stock/serializers.py:848 msgid "Quantity to install must not exceed available quantity" msgstr "" -#: stock/serializers.py:852 +#: stock/serializers.py:883 msgid "Destination location for uninstalled item" msgstr "" -#: stock/serializers.py:903 +#: stock/serializers.py:934 msgid "Unsupported statistic type: " msgstr "" -#: stock/serializers.py:917 +#: stock/serializers.py:948 msgid "Select part to convert stock item into" msgstr "" -#: stock/serializers.py:930 +#: stock/serializers.py:961 msgid "Selected part is not a valid option for conversion" msgstr "" -#: stock/serializers.py:947 +#: stock/serializers.py:978 msgid "Cannot convert stock item with assigned SupplierPart" msgstr "" -#: stock/serializers.py:978 +#: stock/serializers.py:1009 msgid "Destination location for returned item" msgstr "" -#: stock/serializers.py:1015 +#: stock/serializers.py:1046 msgid "Select stock items to change status" msgstr "" -#: stock/serializers.py:1021 +#: stock/serializers.py:1052 msgid "No stock items selected" msgstr "" -#: stock/serializers.py:1117 stock/serializers.py:1194 -#: stock/templates/stock/location.html:162 -#: stock/templates/stock/location.html:219 +#: stock/serializers.py:1148 stock/serializers.py:1225 +#: stock/templates/stock/location.html:163 +#: stock/templates/stock/location.html:220 #: stock/templates/stock/location_sidebar.html:5 msgid "Sublocations" msgstr "" -#: stock/serializers.py:1187 templates/js/translated/stock.js:160 +#: stock/serializers.py:1218 templates/js/translated/stock.js:160 msgid "Parent stock location" msgstr "" -#: stock/serializers.py:1298 +#: stock/serializers.py:1329 msgid "Part must be salable" msgstr "" -#: stock/serializers.py:1302 +#: stock/serializers.py:1333 msgid "Item is allocated to a sales order" msgstr "" -#: stock/serializers.py:1306 +#: stock/serializers.py:1337 msgid "Item is allocated to a build order" msgstr "" -#: stock/serializers.py:1330 +#: stock/serializers.py:1361 msgid "Customer to assign stock items" msgstr "" -#: stock/serializers.py:1336 +#: stock/serializers.py:1367 msgid "Selected company is not a customer" msgstr "" -#: stock/serializers.py:1344 +#: stock/serializers.py:1375 msgid "Stock assignment notes" msgstr "" -#: stock/serializers.py:1354 stock/serializers.py:1608 +#: stock/serializers.py:1385 stock/serializers.py:1639 msgid "A list of stock items must be provided" msgstr "" -#: stock/serializers.py:1433 +#: stock/serializers.py:1464 msgid "Stock merging notes" msgstr "" -#: stock/serializers.py:1438 +#: stock/serializers.py:1469 msgid "Allow mismatched suppliers" msgstr "" -#: stock/serializers.py:1439 +#: stock/serializers.py:1470 msgid "Allow stock items with different supplier parts to be merged" msgstr "" -#: stock/serializers.py:1444 +#: stock/serializers.py:1475 msgid "Allow mismatched status" msgstr "" -#: stock/serializers.py:1445 +#: stock/serializers.py:1476 msgid "Allow stock items with different status codes to be merged" msgstr "" -#: stock/serializers.py:1455 +#: stock/serializers.py:1486 msgid "At least two stock items must be provided" msgstr "" -#: stock/serializers.py:1522 +#: stock/serializers.py:1553 msgid "No Change" msgstr "" -#: stock/serializers.py:1551 +#: stock/serializers.py:1582 msgid "StockItem primary key value" msgstr "" -#: stock/serializers.py:1570 +#: stock/serializers.py:1601 msgid "Stock item status code" msgstr "" -#: stock/serializers.py:1598 +#: stock/serializers.py:1629 msgid "Stock transaction notes" msgstr "" @@ -10175,107 +10539,107 @@ msgstr "" msgid "Quarantined" msgstr "" -#: stock/status_codes.py:40 +#: stock/status_codes.py:44 msgid "Legacy stock tracking entry" msgstr "" -#: stock/status_codes.py:42 templates/js/translated/stock.js:550 +#: stock/status_codes.py:46 templates/js/translated/stock.js:550 msgid "Stock item created" msgstr "" -#: stock/status_codes.py:45 +#: stock/status_codes.py:49 msgid "Edited stock item" msgstr "" -#: stock/status_codes.py:46 +#: stock/status_codes.py:50 msgid "Assigned serial number" msgstr "" -#: stock/status_codes.py:49 +#: stock/status_codes.py:53 msgid "Stock counted" msgstr "" -#: stock/status_codes.py:50 +#: stock/status_codes.py:54 msgid "Stock manually added" msgstr "" -#: stock/status_codes.py:51 +#: stock/status_codes.py:55 msgid "Stock manually removed" msgstr "" -#: stock/status_codes.py:54 +#: stock/status_codes.py:58 msgid "Location changed" msgstr "" -#: stock/status_codes.py:55 +#: stock/status_codes.py:59 msgid "Stock updated" msgstr "" -#: stock/status_codes.py:58 +#: stock/status_codes.py:62 msgid "Installed into assembly" msgstr "" -#: stock/status_codes.py:59 +#: stock/status_codes.py:63 msgid "Removed from assembly" msgstr "" -#: stock/status_codes.py:61 +#: stock/status_codes.py:65 msgid "Installed component item" msgstr "" -#: stock/status_codes.py:62 +#: stock/status_codes.py:66 msgid "Removed component item" msgstr "" -#: stock/status_codes.py:65 +#: stock/status_codes.py:69 msgid "Split from parent item" msgstr "" -#: stock/status_codes.py:66 +#: stock/status_codes.py:70 msgid "Split child item" msgstr "" -#: stock/status_codes.py:69 templates/js/translated/stock.js:1943 +#: stock/status_codes.py:73 templates/js/translated/stock.js:1944 msgid "Merged stock items" msgstr "" -#: stock/status_codes.py:72 +#: stock/status_codes.py:76 msgid "Converted to variant" msgstr "" -#: stock/status_codes.py:75 +#: stock/status_codes.py:79 msgid "Build order output created" msgstr "" -#: stock/status_codes.py:76 +#: stock/status_codes.py:80 msgid "Build order output completed" msgstr "" -#: stock/status_codes.py:77 +#: stock/status_codes.py:81 msgid "Build order output rejected" msgstr "" -#: stock/status_codes.py:78 templates/js/translated/stock.js:1849 +#: stock/status_codes.py:82 templates/js/translated/stock.js:1849 msgid "Consumed by build order" msgstr "" -#: stock/status_codes.py:81 +#: stock/status_codes.py:85 msgid "Shipped against Sales Order" msgstr "" -#: stock/status_codes.py:84 +#: stock/status_codes.py:88 msgid "Received against Purchase Order" msgstr "" -#: stock/status_codes.py:87 +#: stock/status_codes.py:91 msgid "Returned against Return Order" msgstr "" -#: stock/status_codes.py:90 templates/js/translated/table_filters.js:382 +#: stock/status_codes.py:94 templates/js/translated/table_filters.js:382 msgid "Sent to customer" msgstr "" -#: stock/status_codes.py:91 +#: stock/status_codes.py:95 msgid "Returned from customer" msgstr "" @@ -10296,7 +10660,7 @@ msgstr "" msgid "Test Data" msgstr "" -#: stock/templates/stock/item.html:85 stock/templates/stock/item_base.html:65 +#: stock/templates/stock/item.html:85 msgid "Test Report" msgstr "" @@ -10316,7 +10680,7 @@ msgstr "" msgid "Installed Stock Items" msgstr "" -#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3354 +#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3355 msgid "Install Stock Item" msgstr "" @@ -10328,208 +10692,212 @@ msgstr "" msgid "Add Test Result" msgstr "" -#: stock/templates/stock/item_base.html:33 +#: stock/templates/stock/item_base.html:34 msgid "Locate stock item" msgstr "" -#: stock/templates/stock/item_base.html:51 +#: stock/templates/stock/item_base.html:52 msgid "Scan to Location" msgstr "" #: stock/templates/stock/item_base.html:59 -#: stock/templates/stock/location.html:67 +#: stock/templates/stock/location.html:68 #: templates/js/translated/filters.js:434 msgid "Printing actions" msgstr "" -#: stock/templates/stock/item_base.html:75 +#: stock/templates/stock/item_base.html:64 templates/js/translated/report.js:49 +msgid "Print Report" +msgstr "" + +#: stock/templates/stock/item_base.html:72 msgid "Stock adjustment actions" msgstr "" -#: stock/templates/stock/item_base.html:79 -#: stock/templates/stock/location.html:87 templates/js/translated/stock.js:1909 +#: stock/templates/stock/item_base.html:76 +#: stock/templates/stock/location.html:88 templates/js/translated/stock.js:1909 msgid "Count stock" msgstr "" -#: stock/templates/stock/item_base.html:81 +#: stock/templates/stock/item_base.html:78 #: templates/js/translated/stock.js:1891 msgid "Add stock" msgstr "" -#: stock/templates/stock/item_base.html:82 +#: stock/templates/stock/item_base.html:79 #: templates/js/translated/stock.js:1900 msgid "Remove stock" msgstr "" -#: stock/templates/stock/item_base.html:85 +#: stock/templates/stock/item_base.html:82 msgid "Serialize stock" msgstr "" -#: stock/templates/stock/item_base.html:88 -#: stock/templates/stock/location.html:93 templates/js/translated/stock.js:1918 +#: stock/templates/stock/item_base.html:85 +#: stock/templates/stock/location.html:94 templates/js/translated/stock.js:1918 msgid "Transfer stock" msgstr "" -#: stock/templates/stock/item_base.html:91 -#: templates/js/translated/stock.js:1972 +#: stock/templates/stock/item_base.html:88 +#: templates/js/translated/stock.js:1973 msgid "Assign to customer" msgstr "" -#: stock/templates/stock/item_base.html:94 +#: stock/templates/stock/item_base.html:91 msgid "Return to stock" msgstr "" -#: stock/templates/stock/item_base.html:97 +#: stock/templates/stock/item_base.html:94 msgid "Uninstall stock item" msgstr "" -#: stock/templates/stock/item_base.html:97 +#: stock/templates/stock/item_base.html:94 msgid "Uninstall" msgstr "" -#: stock/templates/stock/item_base.html:101 +#: stock/templates/stock/item_base.html:98 msgid "Install stock item" msgstr "" -#: stock/templates/stock/item_base.html:101 +#: stock/templates/stock/item_base.html:98 msgid "Install" msgstr "" -#: stock/templates/stock/item_base.html:115 +#: stock/templates/stock/item_base.html:112 msgid "Convert to variant" msgstr "" -#: stock/templates/stock/item_base.html:118 +#: stock/templates/stock/item_base.html:115 msgid "Duplicate stock item" msgstr "" -#: stock/templates/stock/item_base.html:120 +#: stock/templates/stock/item_base.html:117 msgid "Edit stock item" msgstr "" -#: stock/templates/stock/item_base.html:123 +#: stock/templates/stock/item_base.html:120 msgid "Delete stock item" msgstr "" -#: stock/templates/stock/item_base.html:169 templates/InvenTree/search.html:139 -#: templates/js/translated/build.js:2295 templates/navbar.html:38 +#: stock/templates/stock/item_base.html:166 templates/InvenTree/search.html:139 +#: templates/js/translated/build.js:2298 templates/navbar.html:38 msgid "Build" msgstr "" -#: stock/templates/stock/item_base.html:211 +#: stock/templates/stock/item_base.html:208 msgid "No manufacturer set" msgstr "" -#: stock/templates/stock/item_base.html:251 +#: stock/templates/stock/item_base.html:248 msgid "You are not in the list of owners of this item. This stock item cannot be edited." msgstr "" -#: stock/templates/stock/item_base.html:252 -#: stock/templates/stock/location.html:146 +#: stock/templates/stock/item_base.html:249 +#: stock/templates/stock/location.html:147 msgid "Read only" msgstr "" -#: stock/templates/stock/item_base.html:265 +#: stock/templates/stock/item_base.html:262 msgid "This stock item is unavailable" msgstr "" -#: stock/templates/stock/item_base.html:271 +#: stock/templates/stock/item_base.html:268 msgid "This stock item is in production and cannot be edited." msgstr "" -#: stock/templates/stock/item_base.html:272 +#: stock/templates/stock/item_base.html:269 msgid "Edit the stock item from the build view." msgstr "" -#: stock/templates/stock/item_base.html:287 +#: stock/templates/stock/item_base.html:284 msgid "This stock item is allocated to Sales Order" msgstr "" -#: stock/templates/stock/item_base.html:295 +#: stock/templates/stock/item_base.html:292 msgid "This stock item is allocated to Build Order" msgstr "" -#: stock/templates/stock/item_base.html:311 +#: stock/templates/stock/item_base.html:308 msgid "This stock item is serialized. It has a unique serial number and the quantity cannot be adjusted" msgstr "" -#: stock/templates/stock/item_base.html:317 +#: stock/templates/stock/item_base.html:314 msgid "previous page" msgstr "" -#: stock/templates/stock/item_base.html:317 +#: stock/templates/stock/item_base.html:314 msgid "Navigate to previous serial number" msgstr "" -#: stock/templates/stock/item_base.html:326 +#: stock/templates/stock/item_base.html:323 msgid "next page" msgstr "" -#: stock/templates/stock/item_base.html:326 +#: stock/templates/stock/item_base.html:323 msgid "Navigate to next serial number" msgstr "" -#: stock/templates/stock/item_base.html:398 -#: templates/js/translated/build.js:2552 +#: stock/templates/stock/item_base.html:395 +#: templates/js/translated/build.js:2559 msgid "No location set" msgstr "" -#: stock/templates/stock/item_base.html:413 +#: stock/templates/stock/item_base.html:410 msgid "Tests" msgstr "" -#: stock/templates/stock/item_base.html:419 +#: stock/templates/stock/item_base.html:416 msgid "This stock item has not passed all required tests" msgstr "" -#: stock/templates/stock/item_base.html:437 +#: stock/templates/stock/item_base.html:434 #, python-format msgid "This StockItem expired on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:439 +#: stock/templates/stock/item_base.html:436 #, python-format msgid "This StockItem expires on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:455 +#: stock/templates/stock/item_base.html:452 msgid "No stocktake performed" msgstr "" -#: stock/templates/stock/item_base.html:504 -#: templates/js/translated/stock.js:2037 +#: stock/templates/stock/item_base.html:501 +#: templates/js/translated/stock.js:2038 msgid "stock item" msgstr "" -#: stock/templates/stock/item_base.html:527 +#: stock/templates/stock/item_base.html:524 msgid "Edit Stock Status" msgstr "" -#: stock/templates/stock/item_base.html:536 +#: stock/templates/stock/item_base.html:533 msgid "Stock Item QR Code" msgstr "" -#: stock/templates/stock/item_base.html:547 +#: stock/templates/stock/item_base.html:544 msgid "Link Barcode to Stock Item" msgstr "" -#: stock/templates/stock/item_base.html:611 +#: stock/templates/stock/item_base.html:608 msgid "Select one of the part variants listed below." msgstr "" -#: stock/templates/stock/item_base.html:614 +#: stock/templates/stock/item_base.html:611 msgid "Warning" msgstr "" -#: stock/templates/stock/item_base.html:615 +#: stock/templates/stock/item_base.html:612 msgid "This action cannot be easily undone" msgstr "" -#: stock/templates/stock/item_base.html:623 +#: stock/templates/stock/item_base.html:620 msgid "Convert Stock Item" msgstr "" -#: stock/templates/stock/item_base.html:656 +#: stock/templates/stock/item_base.html:653 msgid "Return to Stock" msgstr "" @@ -10541,84 +10909,84 @@ msgstr "" msgid "Select quantity to serialize, and unique serial numbers." msgstr "" -#: stock/templates/stock/location.html:35 +#: stock/templates/stock/location.html:36 msgid "Perform stocktake for this stock location" msgstr "" -#: stock/templates/stock/location.html:42 +#: stock/templates/stock/location.html:43 msgid "Locate stock location" msgstr "" -#: stock/templates/stock/location.html:60 +#: stock/templates/stock/location.html:61 msgid "Scan stock items into this location" msgstr "" -#: stock/templates/stock/location.html:60 +#: stock/templates/stock/location.html:61 msgid "Scan In Stock Items" msgstr "" -#: stock/templates/stock/location.html:61 +#: stock/templates/stock/location.html:62 msgid "Scan stock container into this location" msgstr "" -#: stock/templates/stock/location.html:61 +#: stock/templates/stock/location.html:62 msgid "Scan In Container" msgstr "" -#: stock/templates/stock/location.html:72 +#: stock/templates/stock/location.html:73 msgid "Print Location Report" msgstr "" -#: stock/templates/stock/location.html:101 +#: stock/templates/stock/location.html:102 msgid "Location actions" msgstr "" -#: stock/templates/stock/location.html:103 +#: stock/templates/stock/location.html:104 msgid "Edit location" msgstr "" -#: stock/templates/stock/location.html:105 +#: stock/templates/stock/location.html:106 msgid "Delete location" msgstr "" -#: stock/templates/stock/location.html:135 +#: stock/templates/stock/location.html:136 msgid "Top level stock location" msgstr "" -#: stock/templates/stock/location.html:141 +#: stock/templates/stock/location.html:142 msgid "Location Owner" msgstr "" -#: stock/templates/stock/location.html:145 +#: stock/templates/stock/location.html:146 msgid "You are not in the list of owners of this location. This stock location cannot be edited." msgstr "" -#: stock/templates/stock/location.html:173 +#: stock/templates/stock/location.html:174 msgid "Location Type" msgstr "" -#: stock/templates/stock/location.html:223 +#: stock/templates/stock/location.html:224 msgid "Create new stock location" msgstr "" -#: stock/templates/stock/location.html:224 +#: stock/templates/stock/location.html:225 msgid "New Location" msgstr "" -#: stock/templates/stock/location.html:298 -#: templates/js/translated/stock.js:2657 +#: stock/templates/stock/location.html:299 +#: templates/js/translated/stock.js:2658 msgid "stock location" msgstr "" -#: stock/templates/stock/location.html:320 +#: stock/templates/stock/location.html:321 msgid "Scanned stock container into this location" msgstr "" -#: stock/templates/stock/location.html:393 +#: stock/templates/stock/location.html:394 msgid "Stock Location QR Code" msgstr "" -#: stock/templates/stock/location.html:404 +#: stock/templates/stock/location.html:405 msgid "Link Barcode to Stock Location" msgstr "" @@ -10630,10 +10998,6 @@ msgstr "" msgid "Stock Tracking" msgstr "" -#: stock/templates/stock/stock_sidebar.html:8 -msgid "Allocations" -msgstr "" - #: templates/403.html:6 templates/403.html:12 templates/403_csrf.html:7 msgid "Permission Denied" msgstr "" @@ -11107,9 +11471,9 @@ msgid "Rate" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:81 -#: templates/js/translated/forms.js:548 templates/js/translated/helpers.js:108 +#: templates/js/translated/forms.js:548 templates/js/translated/helpers.js:109 #: templates/js/translated/part.js:395 templates/js/translated/pricing.js:629 -#: templates/js/translated/stock.js:252 users/models.py:406 +#: templates/js/translated/stock.js:252 users/models.py:408 msgid "Delete" msgstr "" @@ -11130,7 +11494,7 @@ msgid "No project codes found" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:158 -#: templates/js/translated/build.js:2400 +#: templates/js/translated/build.js:2403 msgid "group" msgstr "" @@ -11196,7 +11560,7 @@ msgid "Delete Location Type" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:503 -#: templates/InvenTree/settings/stock.html:38 +#: templates/InvenTree/settings/stock.html:39 msgid "New Location Type" msgstr "" @@ -11253,7 +11617,7 @@ msgstr "" msgid "Stock Settings" msgstr "" -#: templates/InvenTree/settings/stock.html:34 +#: templates/InvenTree/settings/stock.html:35 msgid "Stock Location Types" msgstr "" @@ -11280,7 +11644,7 @@ msgid "Unverified" msgstr "" #: templates/InvenTree/settings/user.html:80 -#: templates/js/translated/company.js:957 +#: templates/js/translated/company.js:958 msgid "Primary" msgstr "" @@ -11532,7 +11896,7 @@ msgid "Submit Bug Report" msgstr "" #: templates/about.html:91 templates/clip.html:4 -#: templates/js/translated/helpers.js:592 +#: templates/js/translated/helpers.js:598 msgid "copy to clipboard" msgstr "" @@ -11738,23 +12102,24 @@ msgstr "" msgid "Barcode Identifier" msgstr "" -#: templates/base.html:103 +#: templates/base.html:102 msgid "Server Restart Required" msgstr "" -#: templates/base.html:106 +#: templates/base.html:105 msgid "A configuration option has been changed which requires a server restart" msgstr "" -#: templates/base.html:106 templates/base.html:116 +#: templates/base.html:105 templates/base.html:115 +#: templates/socialaccount/authentication_error.html:13 msgid "Contact your system administrator for further information" msgstr "" -#: templates/base.html:113 +#: templates/base.html:112 msgid "Pending Database Migrations" msgstr "" -#: templates/base.html:116 +#: templates/base.html:115 msgid "There are pending database migrations which require attention" msgstr "" @@ -11787,7 +12152,7 @@ msgid "The following parts are low on required stock" msgstr "" #: templates/email/build_order_required_stock.html:18 -#: templates/js/translated/bom.js:1674 templates/js/translated/build.js:2747 +#: templates/js/translated/bom.js:1674 templates/js/translated/build.js:2765 msgid "Required Quantity" msgstr "" @@ -11801,7 +12166,7 @@ msgid "Click on the following link to view this part" msgstr "" #: templates/email/low_stock_notification.html:18 -#: templates/js/translated/part.js:3237 +#: templates/js/translated/part.js:3253 msgid "Minimum Quantity" msgstr "" @@ -12039,7 +12404,7 @@ msgstr "" #: templates/js/translated/bom.js:189 templates/js/translated/bom.js:700 #: templates/js/translated/modals.js:75 templates/js/translated/modals.js:629 #: templates/js/translated/modals.js:757 templates/js/translated/modals.js:1065 -#: templates/js/translated/purchase_order.js:797 templates/modals.html:15 +#: templates/js/translated/purchase_order.js:780 templates/modals.html:15 #: templates/modals.html:27 templates/modals.html:39 templates/modals.html:50 msgid "Close" msgstr "" @@ -12156,7 +12521,7 @@ msgstr "" msgid "Substitutes Available" msgstr "" -#: templates/js/translated/bom.js:950 templates/js/translated/build.js:2673 +#: templates/js/translated/bom.js:950 templates/js/translated/build.js:2682 msgid "Variant stock allowed" msgstr "" @@ -12176,30 +12541,30 @@ msgstr "" msgid "No pricing available" msgstr "" -#: templates/js/translated/bom.js:1184 templates/js/translated/build.js:2812 +#: templates/js/translated/bom.js:1184 templates/js/translated/build.js:2830 msgid "External stock" msgstr "" -#: templates/js/translated/bom.js:1188 templates/js/translated/build.js:2786 -#: templates/js/translated/sales_order.js:1946 +#: templates/js/translated/bom.js:1188 templates/js/translated/build.js:2804 +#: templates/js/translated/sales_order.js:1927 msgid "No Stock Available" msgstr "" -#: templates/js/translated/bom.js:1193 templates/js/translated/build.js:2790 +#: templates/js/translated/bom.js:1193 templates/js/translated/build.js:2808 msgid "Includes variant and substitute stock" msgstr "" -#: templates/js/translated/bom.js:1195 templates/js/translated/build.js:2792 +#: templates/js/translated/bom.js:1195 templates/js/translated/build.js:2810 #: templates/js/translated/part.js:1263 -#: templates/js/translated/sales_order.js:1943 +#: templates/js/translated/sales_order.js:1924 msgid "Includes variant stock" msgstr "" -#: templates/js/translated/bom.js:1197 templates/js/translated/build.js:2794 +#: templates/js/translated/bom.js:1197 templates/js/translated/build.js:2812 msgid "Includes substitute stock" msgstr "" -#: templates/js/translated/bom.js:1225 templates/js/translated/build.js:2777 +#: templates/js/translated/bom.js:1225 templates/js/translated/build.js:2795 msgid "Consumable item" msgstr "" @@ -12231,7 +12596,7 @@ msgstr "" msgid "No BOM items found" msgstr "" -#: templates/js/translated/bom.js:1657 templates/js/translated/build.js:2658 +#: templates/js/translated/bom.js:1657 templates/js/translated/build.js:2667 msgid "Required Part" msgstr "" @@ -12243,396 +12608,396 @@ msgstr "" msgid "Edit Build Order" msgstr "" -#: templates/js/translated/build.js:191 +#: templates/js/translated/build.js:194 msgid "Create Build Order" msgstr "" -#: templates/js/translated/build.js:223 +#: templates/js/translated/build.js:226 msgid "Cancel Build Order" msgstr "" -#: templates/js/translated/build.js:232 +#: templates/js/translated/build.js:235 msgid "Are you sure you wish to cancel this build?" msgstr "" -#: templates/js/translated/build.js:238 +#: templates/js/translated/build.js:241 msgid "Stock items have been allocated to this build order" msgstr "" -#: templates/js/translated/build.js:245 +#: templates/js/translated/build.js:248 msgid "There are incomplete outputs remaining for this build order" msgstr "" -#: templates/js/translated/build.js:297 +#: templates/js/translated/build.js:300 msgid "Build order is ready to be completed" msgstr "" -#: templates/js/translated/build.js:305 +#: templates/js/translated/build.js:308 msgid "This build order cannot be completed as there are incomplete outputs" msgstr "" -#: templates/js/translated/build.js:310 +#: templates/js/translated/build.js:313 msgid "Build Order is incomplete" msgstr "" -#: templates/js/translated/build.js:328 +#: templates/js/translated/build.js:331 msgid "Complete Build Order" msgstr "" -#: templates/js/translated/build.js:369 templates/js/translated/stock.js:127 +#: templates/js/translated/build.js:372 templates/js/translated/stock.js:127 #: templates/js/translated/stock.js:301 msgid "Next available serial number" msgstr "" -#: templates/js/translated/build.js:371 templates/js/translated/stock.js:129 +#: templates/js/translated/build.js:374 templates/js/translated/stock.js:129 #: templates/js/translated/stock.js:303 msgid "Latest serial number" msgstr "" -#: templates/js/translated/build.js:380 +#: templates/js/translated/build.js:383 msgid "The Bill of Materials contains trackable parts" msgstr "" -#: templates/js/translated/build.js:381 +#: templates/js/translated/build.js:384 msgid "Build outputs must be generated individually" msgstr "" -#: templates/js/translated/build.js:389 +#: templates/js/translated/build.js:392 msgid "Trackable parts can have serial numbers specified" msgstr "" -#: templates/js/translated/build.js:390 +#: templates/js/translated/build.js:393 msgid "Enter serial numbers to generate multiple single build outputs" msgstr "" -#: templates/js/translated/build.js:397 +#: templates/js/translated/build.js:400 msgid "Create Build Output" msgstr "" -#: templates/js/translated/build.js:428 +#: templates/js/translated/build.js:431 msgid "Allocate stock items to this build output" msgstr "" -#: templates/js/translated/build.js:436 +#: templates/js/translated/build.js:439 msgid "Deallocate stock from build output" msgstr "" -#: templates/js/translated/build.js:445 +#: templates/js/translated/build.js:448 msgid "Complete build output" msgstr "" -#: templates/js/translated/build.js:453 +#: templates/js/translated/build.js:456 msgid "Scrap build output" msgstr "" -#: templates/js/translated/build.js:460 +#: templates/js/translated/build.js:463 msgid "Delete build output" msgstr "" -#: templates/js/translated/build.js:480 +#: templates/js/translated/build.js:483 msgid "Are you sure you wish to deallocate the selected stock items from this build?" msgstr "" -#: templates/js/translated/build.js:498 +#: templates/js/translated/build.js:501 msgid "Deallocate Stock Items" msgstr "" -#: templates/js/translated/build.js:584 templates/js/translated/build.js:711 -#: templates/js/translated/build.js:836 +#: templates/js/translated/build.js:587 templates/js/translated/build.js:714 +#: templates/js/translated/build.js:839 msgid "Select Build Outputs" msgstr "" -#: templates/js/translated/build.js:585 templates/js/translated/build.js:712 -#: templates/js/translated/build.js:837 +#: templates/js/translated/build.js:588 templates/js/translated/build.js:715 +#: templates/js/translated/build.js:840 msgid "At least one build output must be selected" msgstr "" -#: templates/js/translated/build.js:599 +#: templates/js/translated/build.js:602 msgid "Selected build outputs will be marked as complete" msgstr "" -#: templates/js/translated/build.js:603 templates/js/translated/build.js:736 -#: templates/js/translated/build.js:859 +#: templates/js/translated/build.js:606 templates/js/translated/build.js:739 +#: templates/js/translated/build.js:862 msgid "Output" msgstr "" -#: templates/js/translated/build.js:630 +#: templates/js/translated/build.js:633 msgid "Complete Build Outputs" msgstr "" -#: templates/js/translated/build.js:727 +#: templates/js/translated/build.js:730 msgid "Selected build outputs will be marked as scrapped" msgstr "" -#: templates/js/translated/build.js:729 +#: templates/js/translated/build.js:732 msgid "Scrapped output are marked as rejected" msgstr "" -#: templates/js/translated/build.js:730 +#: templates/js/translated/build.js:733 msgid "Allocated stock items will no longer be available" msgstr "" -#: templates/js/translated/build.js:731 +#: templates/js/translated/build.js:734 msgid "The completion status of the build order will not be adjusted" msgstr "" -#: templates/js/translated/build.js:761 +#: templates/js/translated/build.js:764 msgid "Scrap Build Outputs" msgstr "" -#: templates/js/translated/build.js:851 +#: templates/js/translated/build.js:854 msgid "Selected build outputs will be deleted" msgstr "" -#: templates/js/translated/build.js:853 +#: templates/js/translated/build.js:856 msgid "Build output data will be permanently deleted" msgstr "" -#: templates/js/translated/build.js:854 +#: templates/js/translated/build.js:857 msgid "Allocated stock items will be returned to stock" msgstr "" -#: templates/js/translated/build.js:872 +#: templates/js/translated/build.js:875 msgid "Delete Build Outputs" msgstr "" -#: templates/js/translated/build.js:959 +#: templates/js/translated/build.js:962 msgid "Delete allocations" msgstr "" -#: templates/js/translated/build.js:966 +#: templates/js/translated/build.js:969 msgid "Delete Stock Allocations" msgstr "" -#: templates/js/translated/build.js:989 +#: templates/js/translated/build.js:992 msgid "No allocated stock" msgstr "" -#: templates/js/translated/build.js:1045 +#: templates/js/translated/build.js:1048 msgid "Stock item" msgstr "" -#: templates/js/translated/build.js:1070 +#: templates/js/translated/build.js:1073 msgid "Edit build allocation" msgstr "" -#: templates/js/translated/build.js:1071 +#: templates/js/translated/build.js:1074 msgid "Delete build allocation" msgstr "" -#: templates/js/translated/build.js:1089 +#: templates/js/translated/build.js:1092 msgid "Edit Build Allocation" msgstr "" -#: templates/js/translated/build.js:1102 +#: templates/js/translated/build.js:1105 msgid "Delete Build Allocation" msgstr "" -#: templates/js/translated/build.js:1133 +#: templates/js/translated/build.js:1136 msgid "No build order allocations found" msgstr "" -#: templates/js/translated/build.js:1178 +#: templates/js/translated/build.js:1181 msgid "Location not specified" msgstr "" -#: templates/js/translated/build.js:1200 +#: templates/js/translated/build.js:1203 msgid "Complete outputs" msgstr "" -#: templates/js/translated/build.js:1218 +#: templates/js/translated/build.js:1221 msgid "Scrap outputs" msgstr "" -#: templates/js/translated/build.js:1236 +#: templates/js/translated/build.js:1239 msgid "Delete outputs" msgstr "" -#: templates/js/translated/build.js:1289 +#: templates/js/translated/build.js:1292 msgid "build output" msgstr "" -#: templates/js/translated/build.js:1290 +#: templates/js/translated/build.js:1293 msgid "build outputs" msgstr "" -#: templates/js/translated/build.js:1294 +#: templates/js/translated/build.js:1297 msgid "Build output actions" msgstr "" -#: templates/js/translated/build.js:1470 +#: templates/js/translated/build.js:1473 msgid "No active build outputs found" msgstr "" -#: templates/js/translated/build.js:1563 +#: templates/js/translated/build.js:1566 msgid "Allocated Lines" msgstr "" -#: templates/js/translated/build.js:1577 +#: templates/js/translated/build.js:1580 msgid "Required Tests" msgstr "" -#: templates/js/translated/build.js:1749 -#: templates/js/translated/purchase_order.js:611 -#: templates/js/translated/sales_order.js:1207 +#: templates/js/translated/build.js:1752 +#: templates/js/translated/purchase_order.js:594 +#: templates/js/translated/sales_order.js:1173 msgid "Select Parts" msgstr "" -#: templates/js/translated/build.js:1750 -#: templates/js/translated/sales_order.js:1208 +#: templates/js/translated/build.js:1753 +#: templates/js/translated/sales_order.js:1174 msgid "You must select at least one part to allocate" msgstr "" -#: templates/js/translated/build.js:1813 -#: templates/js/translated/sales_order.js:1157 +#: templates/js/translated/build.js:1816 +#: templates/js/translated/sales_order.js:1123 msgid "Specify stock allocation quantity" msgstr "" -#: templates/js/translated/build.js:1890 +#: templates/js/translated/build.js:1893 msgid "All Parts Allocated" msgstr "" -#: templates/js/translated/build.js:1891 +#: templates/js/translated/build.js:1894 msgid "All selected parts have been fully allocated" msgstr "" -#: templates/js/translated/build.js:1905 -#: templates/js/translated/sales_order.js:1222 +#: templates/js/translated/build.js:1908 +#: templates/js/translated/sales_order.js:1188 msgid "Select source location (leave blank to take from all locations)" msgstr "" -#: templates/js/translated/build.js:1933 +#: templates/js/translated/build.js:1936 msgid "Allocate Stock Items to Build Order" msgstr "" -#: templates/js/translated/build.js:1944 -#: templates/js/translated/sales_order.js:1319 +#: templates/js/translated/build.js:1947 +#: templates/js/translated/sales_order.js:1285 msgid "No matching stock locations" msgstr "" -#: templates/js/translated/build.js:2017 -#: templates/js/translated/sales_order.js:1398 +#: templates/js/translated/build.js:2020 +#: templates/js/translated/sales_order.js:1364 msgid "No matching stock items" msgstr "" -#: templates/js/translated/build.js:2114 +#: templates/js/translated/build.js:2117 msgid "Automatic Stock Allocation" msgstr "" -#: templates/js/translated/build.js:2115 +#: templates/js/translated/build.js:2118 msgid "Stock items will be automatically allocated to this build order, according to the provided guidelines" msgstr "" -#: templates/js/translated/build.js:2117 +#: templates/js/translated/build.js:2120 msgid "If a location is specified, stock will only be allocated from that location" msgstr "" -#: templates/js/translated/build.js:2118 +#: templates/js/translated/build.js:2121 msgid "If stock is considered interchangeable, it will be allocated from the first location it is found" msgstr "" -#: templates/js/translated/build.js:2119 +#: templates/js/translated/build.js:2122 msgid "If substitute stock is allowed, it will be used where stock of the primary part cannot be found" msgstr "" -#: templates/js/translated/build.js:2149 +#: templates/js/translated/build.js:2152 msgid "Allocate Stock Items" msgstr "" -#: templates/js/translated/build.js:2254 +#: templates/js/translated/build.js:2257 msgid "No builds matching query" msgstr "" -#: templates/js/translated/build.js:2289 templates/js/translated/build.js:2652 +#: templates/js/translated/build.js:2292 templates/js/translated/build.js:2661 #: templates/js/translated/forms.js:2196 templates/js/translated/forms.js:2212 #: templates/js/translated/part.js:2322 templates/js/translated/part.js:2761 -#: templates/js/translated/stock.js:2068 templates/js/translated/stock.js:2795 +#: templates/js/translated/stock.js:2069 templates/js/translated/stock.js:2796 msgid "Select" msgstr "" -#: templates/js/translated/build.js:2303 +#: templates/js/translated/build.js:2306 msgid "Build order is overdue" msgstr "" -#: templates/js/translated/build.js:2385 templates/js/translated/stock.js:3126 +#: templates/js/translated/build.js:2388 templates/js/translated/stock.js:3127 msgid "No user information" msgstr "" -#: templates/js/translated/build.js:2561 -#: templates/js/translated/sales_order.js:1682 +#: templates/js/translated/build.js:2568 +#: templates/js/translated/sales_order.js:1663 msgid "Edit stock allocation" msgstr "" -#: templates/js/translated/build.js:2562 -#: templates/js/translated/sales_order.js:1683 +#: templates/js/translated/build.js:2569 +#: templates/js/translated/sales_order.js:1664 msgid "Delete stock allocation" msgstr "" -#: templates/js/translated/build.js:2577 +#: templates/js/translated/build.js:2584 msgid "Edit Allocation" msgstr "" -#: templates/js/translated/build.js:2589 +#: templates/js/translated/build.js:2596 msgid "Remove Allocation" msgstr "" -#: templates/js/translated/build.js:2628 +#: templates/js/translated/build.js:2636 msgid "build line" msgstr "" -#: templates/js/translated/build.js:2629 +#: templates/js/translated/build.js:2637 msgid "build lines" msgstr "" -#: templates/js/translated/build.js:2647 +#: templates/js/translated/build.js:2656 msgid "No build lines found" msgstr "" -#: templates/js/translated/build.js:2677 templates/js/translated/part.js:793 +#: templates/js/translated/build.js:2686 templates/js/translated/part.js:793 #: templates/js/translated/part.js:1209 msgid "Trackable part" msgstr "" -#: templates/js/translated/build.js:2720 +#: templates/js/translated/build.js:2729 msgid "Gets Inherited" msgstr "" -#: templates/js/translated/build.js:2730 +#: templates/js/translated/build.js:2748 msgid "Unit Quantity" msgstr "" -#: templates/js/translated/build.js:2782 -#: templates/js/translated/sales_order.js:1951 +#: templates/js/translated/build.js:2800 +#: templates/js/translated/sales_order.js:1932 msgid "Sufficient stock available" msgstr "" -#: templates/js/translated/build.js:2837 +#: templates/js/translated/build.js:2855 msgid "Consumable Item" msgstr "" -#: templates/js/translated/build.js:2844 +#: templates/js/translated/build.js:2862 msgid "Tracked item" msgstr "" -#: templates/js/translated/build.js:2845 +#: templates/js/translated/build.js:2863 msgid "Allocate tracked items against individual build outputs" msgstr "" -#: templates/js/translated/build.js:2853 -#: templates/js/translated/sales_order.js:2052 +#: templates/js/translated/build.js:2871 +#: templates/js/translated/sales_order.js:2033 msgid "Build stock" msgstr "" -#: templates/js/translated/build.js:2858 templates/js/translated/stock.js:1953 +#: templates/js/translated/build.js:2876 templates/js/translated/stock.js:1954 msgid "Order stock" msgstr "" -#: templates/js/translated/build.js:2862 -#: templates/js/translated/sales_order.js:2046 +#: templates/js/translated/build.js:2880 +#: templates/js/translated/sales_order.js:2027 msgid "Allocate stock" msgstr "" -#: templates/js/translated/build.js:2866 +#: templates/js/translated/build.js:2884 msgid "Remove stock allocation" msgstr "" @@ -12641,7 +13006,7 @@ msgid "Add Manufacturer" msgstr "" #: templates/js/translated/company.js:111 -#: templates/js/translated/company.js:213 +#: templates/js/translated/company.js:214 msgid "Add Manufacturer Part" msgstr "" @@ -12649,231 +13014,231 @@ msgstr "" msgid "Edit Manufacturer Part" msgstr "" -#: templates/js/translated/company.js:201 +#: templates/js/translated/company.js:202 #: templates/js/translated/purchase_order.js:93 msgid "Add Supplier" msgstr "" -#: templates/js/translated/company.js:243 -#: templates/js/translated/purchase_order.js:318 +#: templates/js/translated/company.js:244 +#: templates/js/translated/purchase_order.js:301 msgid "Add Supplier Part" msgstr "" -#: templates/js/translated/company.js:344 +#: templates/js/translated/company.js:345 msgid "All selected supplier parts will be deleted" msgstr "" -#: templates/js/translated/company.js:360 +#: templates/js/translated/company.js:361 msgid "Delete Supplier Parts" msgstr "" -#: templates/js/translated/company.js:466 +#: templates/js/translated/company.js:467 msgid "Add new Company" msgstr "" -#: templates/js/translated/company.js:546 +#: templates/js/translated/company.js:547 msgid "Parts Supplied" msgstr "" -#: templates/js/translated/company.js:555 +#: templates/js/translated/company.js:556 msgid "Parts Manufactured" msgstr "" -#: templates/js/translated/company.js:570 +#: templates/js/translated/company.js:571 msgid "No company information found" msgstr "" -#: templates/js/translated/company.js:619 +#: templates/js/translated/company.js:620 msgid "Create New Contact" msgstr "" -#: templates/js/translated/company.js:635 -#: templates/js/translated/company.js:758 +#: templates/js/translated/company.js:636 +#: templates/js/translated/company.js:759 msgid "Edit Contact" msgstr "" -#: templates/js/translated/company.js:672 +#: templates/js/translated/company.js:673 msgid "All selected contacts will be deleted" msgstr "" -#: templates/js/translated/company.js:678 -#: templates/js/translated/company.js:742 +#: templates/js/translated/company.js:679 +#: templates/js/translated/company.js:743 msgid "Role" msgstr "" -#: templates/js/translated/company.js:686 +#: templates/js/translated/company.js:687 msgid "Delete Contacts" msgstr "" -#: templates/js/translated/company.js:717 +#: templates/js/translated/company.js:718 msgid "No contacts found" msgstr "" -#: templates/js/translated/company.js:730 +#: templates/js/translated/company.js:731 msgid "Phone Number" msgstr "" -#: templates/js/translated/company.js:736 +#: templates/js/translated/company.js:737 msgid "Email Address" msgstr "" -#: templates/js/translated/company.js:762 +#: templates/js/translated/company.js:763 msgid "Delete Contact" msgstr "" -#: templates/js/translated/company.js:859 +#: templates/js/translated/company.js:860 msgid "Create New Address" msgstr "" -#: templates/js/translated/company.js:874 -#: templates/js/translated/company.js:1035 +#: templates/js/translated/company.js:875 +#: templates/js/translated/company.js:1036 msgid "Edit Address" msgstr "" -#: templates/js/translated/company.js:909 +#: templates/js/translated/company.js:910 msgid "All selected addresses will be deleted" msgstr "" -#: templates/js/translated/company.js:923 +#: templates/js/translated/company.js:924 msgid "Delete Addresses" msgstr "" -#: templates/js/translated/company.js:950 +#: templates/js/translated/company.js:951 msgid "No addresses found" msgstr "" -#: templates/js/translated/company.js:989 +#: templates/js/translated/company.js:990 msgid "Postal city" msgstr "" -#: templates/js/translated/company.js:995 +#: templates/js/translated/company.js:996 msgid "State/province" msgstr "" -#: templates/js/translated/company.js:1007 +#: templates/js/translated/company.js:1008 msgid "Courier notes" msgstr "" -#: templates/js/translated/company.js:1013 +#: templates/js/translated/company.js:1014 msgid "Internal notes" msgstr "" -#: templates/js/translated/company.js:1039 +#: templates/js/translated/company.js:1040 msgid "Delete Address" msgstr "" -#: templates/js/translated/company.js:1112 +#: templates/js/translated/company.js:1113 msgid "All selected manufacturer parts will be deleted" msgstr "" -#: templates/js/translated/company.js:1127 +#: templates/js/translated/company.js:1128 msgid "Delete Manufacturer Parts" msgstr "" -#: templates/js/translated/company.js:1161 +#: templates/js/translated/company.js:1162 msgid "All selected parameters will be deleted" msgstr "" -#: templates/js/translated/company.js:1175 +#: templates/js/translated/company.js:1176 msgid "Delete Parameters" msgstr "" -#: templates/js/translated/company.js:1191 -#: templates/js/translated/company.js:1479 templates/js/translated/part.js:2250 +#: templates/js/translated/company.js:1192 +#: templates/js/translated/company.js:1480 templates/js/translated/part.js:2250 msgid "Order parts" msgstr "" -#: templates/js/translated/company.js:1208 +#: templates/js/translated/company.js:1209 msgid "Delete manufacturer parts" msgstr "" -#: templates/js/translated/company.js:1240 +#: templates/js/translated/company.js:1241 msgid "Manufacturer part actions" msgstr "" -#: templates/js/translated/company.js:1259 +#: templates/js/translated/company.js:1260 msgid "No manufacturer parts found" msgstr "" -#: templates/js/translated/company.js:1279 -#: templates/js/translated/company.js:1567 templates/js/translated/part.js:801 +#: templates/js/translated/company.js:1280 +#: templates/js/translated/company.js:1568 templates/js/translated/part.js:801 #: templates/js/translated/part.js:1217 msgid "Template part" msgstr "" -#: templates/js/translated/company.js:1283 -#: templates/js/translated/company.js:1571 templates/js/translated/part.js:805 +#: templates/js/translated/company.js:1284 +#: templates/js/translated/company.js:1572 templates/js/translated/part.js:805 #: templates/js/translated/part.js:1221 msgid "Assembled part" msgstr "" -#: templates/js/translated/company.js:1403 templates/js/translated/part.js:1471 +#: templates/js/translated/company.js:1404 templates/js/translated/part.js:1471 msgid "No parameters found" msgstr "" -#: templates/js/translated/company.js:1438 templates/js/translated/part.js:1534 +#: templates/js/translated/company.js:1439 templates/js/translated/part.js:1534 msgid "Edit parameter" msgstr "" -#: templates/js/translated/company.js:1439 templates/js/translated/part.js:1535 +#: templates/js/translated/company.js:1440 templates/js/translated/part.js:1535 msgid "Delete parameter" msgstr "" -#: templates/js/translated/company.js:1456 templates/js/translated/part.js:1440 +#: templates/js/translated/company.js:1457 templates/js/translated/part.js:1440 msgid "Edit Parameter" msgstr "" -#: templates/js/translated/company.js:1465 templates/js/translated/part.js:1556 +#: templates/js/translated/company.js:1466 templates/js/translated/part.js:1556 msgid "Delete Parameter" msgstr "" -#: templates/js/translated/company.js:1496 +#: templates/js/translated/company.js:1497 msgid "Delete supplier parts" msgstr "" -#: templates/js/translated/company.js:1546 +#: templates/js/translated/company.js:1547 msgid "No supplier parts found" msgstr "" -#: templates/js/translated/company.js:1664 +#: templates/js/translated/company.js:1665 msgid "Base Units" msgstr "" -#: templates/js/translated/company.js:1694 +#: templates/js/translated/company.js:1695 msgid "Availability" msgstr "" -#: templates/js/translated/company.js:1725 +#: templates/js/translated/company.js:1726 msgid "Edit supplier part" msgstr "" -#: templates/js/translated/company.js:1726 +#: templates/js/translated/company.js:1727 msgid "Delete supplier part" msgstr "" -#: templates/js/translated/company.js:1779 +#: templates/js/translated/company.js:1780 #: templates/js/translated/pricing.js:694 msgid "Delete Price Break" msgstr "" -#: templates/js/translated/company.js:1789 +#: templates/js/translated/company.js:1790 #: templates/js/translated/pricing.js:712 msgid "Edit Price Break" msgstr "" -#: templates/js/translated/company.js:1804 +#: templates/js/translated/company.js:1805 msgid "No price break information found" msgstr "" -#: templates/js/translated/company.js:1833 +#: templates/js/translated/company.js:1834 msgid "Last updated" msgstr "" -#: templates/js/translated/company.js:1840 +#: templates/js/translated/company.js:1841 msgid "Edit price break" msgstr "" -#: templates/js/translated/company.js:1841 +#: templates/js/translated/company.js:1842 msgid "Delete price break" msgstr "" @@ -12977,19 +13342,19 @@ msgstr "" msgid "Select Columns" msgstr "" -#: templates/js/translated/helpers.js:80 +#: templates/js/translated/helpers.js:81 msgid "YES" msgstr "" -#: templates/js/translated/helpers.js:83 +#: templates/js/translated/helpers.js:84 msgid "NO" msgstr "" -#: templates/js/translated/helpers.js:96 +#: templates/js/translated/helpers.js:97 msgid "True" msgstr "" -#: templates/js/translated/helpers.js:97 +#: templates/js/translated/helpers.js:98 msgid "False" msgstr "" @@ -13131,7 +13496,7 @@ msgid "Delete Line" msgstr "" #: templates/js/translated/order.js:306 -#: templates/js/translated/purchase_order.js:2060 +#: templates/js/translated/purchase_order.js:2044 msgid "No line items found" msgstr "" @@ -13366,19 +13731,19 @@ msgid "Delete Part Parameter Template" msgstr "" #: templates/js/translated/part.js:1723 -#: templates/js/translated/purchase_order.js:1724 +#: templates/js/translated/purchase_order.js:1708 msgid "No purchase orders found" msgstr "" #: templates/js/translated/part.js:1867 -#: templates/js/translated/purchase_order.js:2223 +#: templates/js/translated/purchase_order.js:2207 #: templates/js/translated/return_order.js:754 -#: templates/js/translated/sales_order.js:1911 +#: templates/js/translated/sales_order.js:1892 msgid "This line item is overdue" msgstr "" #: templates/js/translated/part.js:1913 -#: templates/js/translated/purchase_order.js:2290 +#: templates/js/translated/purchase_order.js:2274 msgid "Receive line item" msgstr "" @@ -13419,7 +13784,7 @@ msgid "No category" msgstr "" #: templates/js/translated/part.js:2550 templates/js/translated/part.js:2680 -#: templates/js/translated/stock.js:2754 +#: templates/js/translated/stock.js:2755 msgid "Display as list" msgstr "" @@ -13431,7 +13796,7 @@ msgstr "" msgid "No subcategories found" msgstr "" -#: templates/js/translated/part.js:2700 templates/js/translated/stock.js:2774 +#: templates/js/translated/part.js:2700 templates/js/translated/stock.js:2775 msgid "Display as tree" msgstr "" @@ -13483,23 +13848,23 @@ msgstr "" msgid "Speculative" msgstr "" -#: templates/js/translated/part.js:3128 +#: templates/js/translated/part.js:3144 msgid "No scheduling information available for this part" msgstr "" -#: templates/js/translated/part.js:3134 +#: templates/js/translated/part.js:3150 msgid "Error fetching scheduling information for this part" msgstr "" -#: templates/js/translated/part.js:3230 +#: templates/js/translated/part.js:3246 msgid "Scheduled Stock Quantities" msgstr "" -#: templates/js/translated/part.js:3246 +#: templates/js/translated/part.js:3262 msgid "Maximum Quantity" msgstr "" -#: templates/js/translated/part.js:3291 +#: templates/js/translated/part.js:3307 msgid "Minimum Stock Level" msgstr "" @@ -13575,267 +13940,243 @@ msgstr "" msgid "Purchase Price History" msgstr "" -#: templates/js/translated/pricing.js:894 +#: templates/js/translated/pricing.js:892 msgid "No sales history data available" msgstr "" -#: templates/js/translated/pricing.js:916 +#: templates/js/translated/pricing.js:914 msgid "Sale Price History" msgstr "" -#: templates/js/translated/pricing.js:1005 +#: templates/js/translated/pricing.js:1003 msgid "No variant data available" msgstr "" -#: templates/js/translated/pricing.js:1045 +#: templates/js/translated/pricing.js:1043 msgid "Variant Part" msgstr "" -#: templates/js/translated/purchase_order.js:169 -msgid "Select purchase order to duplicate" -msgstr "" - -#: templates/js/translated/purchase_order.js:176 -msgid "Duplicate Line Items" -msgstr "" - -#: templates/js/translated/purchase_order.js:177 -msgid "Duplicate all line items from the selected order" -msgstr "" - -#: templates/js/translated/purchase_order.js:184 -msgid "Duplicate Extra Lines" -msgstr "" - -#: templates/js/translated/purchase_order.js:185 -msgid "Duplicate extra line items from the selected order" -msgstr "" - -#: templates/js/translated/purchase_order.js:206 +#: templates/js/translated/purchase_order.js:188 msgid "Edit Purchase Order" msgstr "" -#: templates/js/translated/purchase_order.js:223 +#: templates/js/translated/purchase_order.js:205 msgid "Duplication Options" msgstr "" -#: templates/js/translated/purchase_order.js:431 +#: templates/js/translated/purchase_order.js:414 msgid "Complete Purchase Order" msgstr "" -#: templates/js/translated/purchase_order.js:448 +#: templates/js/translated/purchase_order.js:431 #: templates/js/translated/return_order.js:210 -#: templates/js/translated/sales_order.js:552 +#: templates/js/translated/sales_order.js:511 msgid "Mark this order as complete?" msgstr "" -#: templates/js/translated/purchase_order.js:454 +#: templates/js/translated/purchase_order.js:437 msgid "All line items have been received" msgstr "" -#: templates/js/translated/purchase_order.js:459 +#: templates/js/translated/purchase_order.js:442 msgid "This order has line items which have not been marked as received." msgstr "" -#: templates/js/translated/purchase_order.js:460 +#: templates/js/translated/purchase_order.js:443 msgid "Completing this order means that the order and line items will no longer be editable." msgstr "" -#: templates/js/translated/purchase_order.js:483 +#: templates/js/translated/purchase_order.js:466 msgid "Cancel Purchase Order" msgstr "" -#: templates/js/translated/purchase_order.js:488 +#: templates/js/translated/purchase_order.js:471 msgid "Are you sure you wish to cancel this purchase order?" msgstr "" -#: templates/js/translated/purchase_order.js:494 +#: templates/js/translated/purchase_order.js:477 msgid "This purchase order can not be cancelled" msgstr "" -#: templates/js/translated/purchase_order.js:515 +#: templates/js/translated/purchase_order.js:498 #: templates/js/translated/return_order.js:164 msgid "After placing this order, line items will no longer be editable." msgstr "" -#: templates/js/translated/purchase_order.js:520 +#: templates/js/translated/purchase_order.js:503 msgid "Issue Purchase Order" msgstr "" -#: templates/js/translated/purchase_order.js:612 +#: templates/js/translated/purchase_order.js:595 msgid "At least one purchaseable part must be selected" msgstr "" -#: templates/js/translated/purchase_order.js:637 +#: templates/js/translated/purchase_order.js:620 msgid "Quantity to order" msgstr "" -#: templates/js/translated/purchase_order.js:646 +#: templates/js/translated/purchase_order.js:629 msgid "New supplier part" msgstr "" -#: templates/js/translated/purchase_order.js:664 +#: templates/js/translated/purchase_order.js:647 msgid "New purchase order" msgstr "" -#: templates/js/translated/purchase_order.js:705 +#: templates/js/translated/purchase_order.js:688 msgid "Add to purchase order" msgstr "" -#: templates/js/translated/purchase_order.js:755 +#: templates/js/translated/purchase_order.js:738 msgid "Merge" msgstr "" -#: templates/js/translated/purchase_order.js:859 +#: templates/js/translated/purchase_order.js:842 msgid "No matching supplier parts" msgstr "" -#: templates/js/translated/purchase_order.js:878 +#: templates/js/translated/purchase_order.js:861 msgid "No matching purchase orders" msgstr "" -#: templates/js/translated/purchase_order.js:1073 +#: templates/js/translated/purchase_order.js:1056 #: templates/js/translated/return_order.js:490 msgid "Select Line Items" msgstr "" -#: templates/js/translated/purchase_order.js:1074 +#: templates/js/translated/purchase_order.js:1057 #: templates/js/translated/return_order.js:491 msgid "At least one line item must be selected" msgstr "" -#: templates/js/translated/purchase_order.js:1104 +#: templates/js/translated/purchase_order.js:1087 msgid "Received Quantity" msgstr "" -#: templates/js/translated/purchase_order.js:1115 +#: templates/js/translated/purchase_order.js:1098 msgid "Quantity to receive" msgstr "" -#: templates/js/translated/purchase_order.js:1170 +#: templates/js/translated/purchase_order.js:1153 #: templates/js/translated/stock.js:1215 msgid "Specify packaging for incoming stock items" msgstr "" -#: templates/js/translated/purchase_order.js:1223 +#: templates/js/translated/purchase_order.js:1206 msgid "Stock Status" msgstr "" -#: templates/js/translated/purchase_order.js:1237 +#: templates/js/translated/purchase_order.js:1220 msgid "Add barcode" msgstr "" -#: templates/js/translated/purchase_order.js:1238 +#: templates/js/translated/purchase_order.js:1221 msgid "Remove barcode" msgstr "" -#: templates/js/translated/purchase_order.js:1241 +#: templates/js/translated/purchase_order.js:1224 msgid "Specify location" msgstr "" -#: templates/js/translated/purchase_order.js:1249 +#: templates/js/translated/purchase_order.js:1232 msgid "Add batch code" msgstr "" -#: templates/js/translated/purchase_order.js:1259 +#: templates/js/translated/purchase_order.js:1242 msgid "Specify packaging" msgstr "" -#: templates/js/translated/purchase_order.js:1270 +#: templates/js/translated/purchase_order.js:1253 msgid "Add serial numbers" msgstr "" -#: templates/js/translated/purchase_order.js:1281 +#: templates/js/translated/purchase_order.js:1264 msgid "Add note" msgstr "" -#: templates/js/translated/purchase_order.js:1338 +#: templates/js/translated/purchase_order.js:1321 msgid "Serials" msgstr "" -#: templates/js/translated/purchase_order.js:1368 +#: templates/js/translated/purchase_order.js:1351 msgid "Order Code" msgstr "" -#: templates/js/translated/purchase_order.js:1370 +#: templates/js/translated/purchase_order.js:1353 msgid "Quantity to Receive" msgstr "" -#: templates/js/translated/purchase_order.js:1395 +#: templates/js/translated/purchase_order.js:1379 #: templates/js/translated/return_order.js:559 msgid "Confirm receipt of items" msgstr "" -#: templates/js/translated/purchase_order.js:1396 +#: templates/js/translated/purchase_order.js:1380 msgid "Receive Purchase Order Items" msgstr "" -#: templates/js/translated/purchase_order.js:1464 +#: templates/js/translated/purchase_order.js:1448 msgid "Scan Item Barcode" msgstr "" -#: templates/js/translated/purchase_order.js:1465 +#: templates/js/translated/purchase_order.js:1449 msgid "Scan barcode on incoming item (must not match any existing stock items)" msgstr "" -#: templates/js/translated/purchase_order.js:1479 +#: templates/js/translated/purchase_order.js:1463 msgid "Invalid barcode data" msgstr "" -#: templates/js/translated/purchase_order.js:1751 +#: templates/js/translated/purchase_order.js:1735 #: templates/js/translated/return_order.js:285 -#: templates/js/translated/sales_order.js:810 -#: templates/js/translated/sales_order.js:1034 +#: templates/js/translated/sales_order.js:769 +#: templates/js/translated/sales_order.js:1007 msgid "Order is overdue" msgstr "" -#: templates/js/translated/purchase_order.js:1913 +#: templates/js/translated/purchase_order.js:1897 msgid "All selected Line items will be deleted" msgstr "" -#: templates/js/translated/purchase_order.js:1931 +#: templates/js/translated/purchase_order.js:1915 msgid "Delete selected Line items?" msgstr "" -#: templates/js/translated/purchase_order.js:1986 -#: templates/js/translated/sales_order.js:2106 +#: templates/js/translated/purchase_order.js:1970 +#: templates/js/translated/sales_order.js:2087 msgid "Duplicate Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2001 +#: templates/js/translated/purchase_order.js:1985 #: templates/js/translated/return_order.js:475 #: templates/js/translated/return_order.js:667 -#: templates/js/translated/sales_order.js:2119 +#: templates/js/translated/sales_order.js:2100 msgid "Edit Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2012 +#: templates/js/translated/purchase_order.js:1996 #: templates/js/translated/return_order.js:680 -#: templates/js/translated/sales_order.js:2130 +#: templates/js/translated/sales_order.js:2111 msgid "Delete Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2294 -#: templates/js/translated/sales_order.js:2060 +#: templates/js/translated/purchase_order.js:2278 +#: templates/js/translated/sales_order.js:2041 msgid "Duplicate line item" msgstr "" -#: templates/js/translated/purchase_order.js:2295 +#: templates/js/translated/purchase_order.js:2279 #: templates/js/translated/return_order.js:799 -#: templates/js/translated/sales_order.js:2061 +#: templates/js/translated/sales_order.js:2042 msgid "Edit line item" msgstr "" -#: templates/js/translated/purchase_order.js:2296 +#: templates/js/translated/purchase_order.js:2280 #: templates/js/translated/return_order.js:803 -#: templates/js/translated/sales_order.js:2067 +#: templates/js/translated/sales_order.js:2048 msgid "Delete line item" msgstr "" -#: templates/js/translated/report.js:49 -msgid "Print Report" -msgstr "" - #: templates/js/translated/report.js:68 msgid "Report print successful" msgstr "" @@ -13878,7 +14219,7 @@ msgid "No return orders found" msgstr "" #: templates/js/translated/return_order.js:299 -#: templates/js/translated/sales_order.js:824 +#: templates/js/translated/sales_order.js:783 msgid "Invalid Customer" msgstr "" @@ -13887,7 +14228,7 @@ msgid "Receive Return Order Items" msgstr "" #: templates/js/translated/return_order.js:691 -#: templates/js/translated/sales_order.js:2267 +#: templates/js/translated/sales_order.js:2248 msgid "No matching line items" msgstr "" @@ -13903,188 +14244,181 @@ msgstr "" msgid "Edit Sales Order" msgstr "" -#: templates/js/translated/sales_order.js:291 +#: templates/js/translated/sales_order.js:288 msgid "No stock items have been allocated to this shipment" msgstr "" -#: templates/js/translated/sales_order.js:296 -msgid "The following stock items will be shipped" -msgstr "" - -#: templates/js/translated/sales_order.js:336 +#: templates/js/translated/sales_order.js:294 msgid "Complete Shipment" msgstr "" -#: templates/js/translated/sales_order.js:360 +#: templates/js/translated/sales_order.js:318 msgid "Confirm Shipment" msgstr "" -#: templates/js/translated/sales_order.js:416 +#: templates/js/translated/sales_order.js:375 msgid "No pending shipments found" msgstr "" -#: templates/js/translated/sales_order.js:420 +#: templates/js/translated/sales_order.js:379 msgid "No stock items have been allocated to pending shipments" msgstr "" -#: templates/js/translated/sales_order.js:430 +#: templates/js/translated/sales_order.js:389 msgid "Complete Shipments" msgstr "" -#: templates/js/translated/sales_order.js:452 +#: templates/js/translated/sales_order.js:411 msgid "Skip" msgstr "" -#: templates/js/translated/sales_order.js:484 +#: templates/js/translated/sales_order.js:443 msgid "Ship Sales Order" msgstr "" -#: templates/js/translated/sales_order.js:500 +#: templates/js/translated/sales_order.js:459 msgid "Ship this order?" msgstr "" -#: templates/js/translated/sales_order.js:506 +#: templates/js/translated/sales_order.js:465 msgid "Order cannot be shipped as there are incomplete shipments" msgstr "" -#: templates/js/translated/sales_order.js:513 +#: templates/js/translated/sales_order.js:472 msgid "This order has line items which have not been completed." msgstr "" -#: templates/js/translated/sales_order.js:514 +#: templates/js/translated/sales_order.js:473 msgid "Shipping this order means that the order and line items will no longer be editable." msgstr "" -#: templates/js/translated/sales_order.js:572 +#: templates/js/translated/sales_order.js:531 msgid "Issue this Sales Order?" msgstr "" -#: templates/js/translated/sales_order.js:577 +#: templates/js/translated/sales_order.js:536 msgid "Issue Sales Order" msgstr "" -#: templates/js/translated/sales_order.js:596 +#: templates/js/translated/sales_order.js:555 msgid "Cancel Sales Order" msgstr "" -#: templates/js/translated/sales_order.js:601 +#: templates/js/translated/sales_order.js:560 msgid "Cancelling this order means that the order will no longer be editable." msgstr "" -#: templates/js/translated/sales_order.js:655 +#: templates/js/translated/sales_order.js:614 msgid "Create New Shipment" msgstr "" -#: templates/js/translated/sales_order.js:764 +#: templates/js/translated/sales_order.js:723 msgid "No sales orders found" msgstr "" -#: templates/js/translated/sales_order.js:944 +#: templates/js/translated/sales_order.js:907 msgid "Edit shipment" msgstr "" -#: templates/js/translated/sales_order.js:947 +#: templates/js/translated/sales_order.js:910 msgid "Complete shipment" msgstr "" -#: templates/js/translated/sales_order.js:952 +#: templates/js/translated/sales_order.js:915 msgid "Delete shipment" msgstr "" -#: templates/js/translated/sales_order.js:969 +#: templates/js/translated/sales_order.js:932 msgid "Edit Shipment" msgstr "" -#: templates/js/translated/sales_order.js:984 +#: templates/js/translated/sales_order.js:947 msgid "Delete Shipment" msgstr "" -#: templates/js/translated/sales_order.js:1017 +#: templates/js/translated/sales_order.js:989 msgid "No matching shipments found" msgstr "" -#: templates/js/translated/sales_order.js:1042 +#: templates/js/translated/sales_order.js:1015 msgid "Shipment Reference" msgstr "" -#: templates/js/translated/sales_order.js:1066 -#: templates/js/translated/sales_order.js:1565 +#: templates/js/translated/sales_order.js:1032 +#: templates/js/translated/sales_order.js:1531 msgid "Not shipped" msgstr "" -#: templates/js/translated/sales_order.js:1084 +#: templates/js/translated/sales_order.js:1050 msgid "Tracking" msgstr "" -#: templates/js/translated/sales_order.js:1088 +#: templates/js/translated/sales_order.js:1054 msgid "Invoice" msgstr "" -#: templates/js/translated/sales_order.js:1255 +#: templates/js/translated/sales_order.js:1221 msgid "Add Shipment" msgstr "" -#: templates/js/translated/sales_order.js:1306 +#: templates/js/translated/sales_order.js:1272 msgid "Confirm stock allocation" msgstr "" -#: templates/js/translated/sales_order.js:1307 +#: templates/js/translated/sales_order.js:1273 msgid "Allocate Stock Items to Sales Order" msgstr "" -#: templates/js/translated/sales_order.js:1513 +#: templates/js/translated/sales_order.js:1479 msgid "No sales order allocations found" msgstr "" -#: templates/js/translated/sales_order.js:1605 +#: templates/js/translated/sales_order.js:1571 msgid "Edit Stock Allocation" msgstr "" -#: templates/js/translated/sales_order.js:1619 +#: templates/js/translated/sales_order.js:1585 msgid "Confirm Delete Operation" msgstr "" -#: templates/js/translated/sales_order.js:1620 +#: templates/js/translated/sales_order.js:1586 msgid "Delete Stock Allocation" msgstr "" -#: templates/js/translated/sales_order.js:1659 -#: templates/js/translated/sales_order.js:1746 +#: templates/js/translated/sales_order.js:1640 +#: templates/js/translated/sales_order.js:1727 #: templates/js/translated/stock.js:1861 msgid "Shipped to customer" msgstr "" -#: templates/js/translated/sales_order.js:1667 -#: templates/js/translated/sales_order.js:1755 +#: templates/js/translated/sales_order.js:1648 +#: templates/js/translated/sales_order.js:1736 msgid "Stock location not specified" msgstr "" -#: templates/js/translated/sales_order.js:2044 -msgid "Allocate serial numbers" -msgstr "" - -#: templates/js/translated/sales_order.js:2048 -msgid "Purchase stock" -msgstr "" - -#: templates/js/translated/sales_order.js:2057 -#: templates/js/translated/sales_order.js:2245 -msgid "Calculate price" -msgstr "" - -#: templates/js/translated/sales_order.js:2071 -msgid "Cannot be deleted as items have been shipped" -msgstr "" - -#: templates/js/translated/sales_order.js:2074 -msgid "Cannot be deleted as items have been allocated" -msgstr "" - -#: templates/js/translated/sales_order.js:2145 +#: templates/js/translated/sales_order.js:2025 +#: templates/js/translated/sales_order.js:2126 msgid "Allocate Serial Numbers" msgstr "" -#: templates/js/translated/sales_order.js:2253 +#: templates/js/translated/sales_order.js:2029 +msgid "Purchase stock" +msgstr "" + +#: templates/js/translated/sales_order.js:2038 +#: templates/js/translated/sales_order.js:2226 +msgid "Calculate price" +msgstr "" + +#: templates/js/translated/sales_order.js:2052 +msgid "Cannot be deleted as items have been shipped" +msgstr "" + +#: templates/js/translated/sales_order.js:2055 +msgid "Cannot be deleted as items have been allocated" +msgstr "" + +#: templates/js/translated/sales_order.js:2234 msgid "Update Unit Price" msgstr "" @@ -14209,11 +14543,8 @@ msgid "Find Serial Number" msgstr "" #: templates/js/translated/stock.js:603 templates/js/translated/stock.js:604 -msgid "Enter serial number" -msgstr "" - #: templates/js/translated/stock.js:620 -msgid "Enter a serial number" +msgid "Enter serial number" msgstr "" #: templates/js/translated/stock.js:640 @@ -14284,7 +14615,7 @@ msgstr "" msgid "Add Stock" msgstr "" -#: templates/js/translated/stock.js:1049 users/models.py:396 +#: templates/js/translated/stock.js:1049 users/models.py:398 msgid "Add" msgstr "" @@ -14308,7 +14639,7 @@ msgstr "" msgid "Adjust packaging" msgstr "" -#: templates/js/translated/stock.js:1256 templates/js/translated/stock.js:3382 +#: templates/js/translated/stock.js:1256 templates/js/translated/stock.js:3383 msgid "Select Stock Items" msgstr "" @@ -14320,18 +14651,6 @@ msgstr "" msgid "Confirm stock adjustment" msgstr "" -#: templates/js/translated/stock.js:1448 -msgid "PASS" -msgstr "" - -#: templates/js/translated/stock.js:1450 -msgid "FAIL" -msgstr "" - -#: templates/js/translated/stock.js:1455 -msgid "NO RESULT" -msgstr "" - #: templates/js/translated/stock.js:1535 msgid "Pass test" msgstr "" @@ -14388,216 +14707,216 @@ msgstr "" msgid "No stock location set" msgstr "" -#: templates/js/translated/stock.js:1927 +#: templates/js/translated/stock.js:1928 msgid "Change stock status" msgstr "" -#: templates/js/translated/stock.js:1936 +#: templates/js/translated/stock.js:1937 msgid "Merge stock" msgstr "" -#: templates/js/translated/stock.js:1985 +#: templates/js/translated/stock.js:1986 msgid "Delete stock" msgstr "" -#: templates/js/translated/stock.js:2038 +#: templates/js/translated/stock.js:2039 msgid "stock items" msgstr "" -#: templates/js/translated/stock.js:2043 +#: templates/js/translated/stock.js:2044 msgid "Scan to location" msgstr "" -#: templates/js/translated/stock.js:2054 +#: templates/js/translated/stock.js:2055 msgid "Stock Actions" msgstr "" -#: templates/js/translated/stock.js:2098 +#: templates/js/translated/stock.js:2099 msgid "Load installed items" msgstr "" -#: templates/js/translated/stock.js:2176 +#: templates/js/translated/stock.js:2177 msgid "Stock item is in production" msgstr "" -#: templates/js/translated/stock.js:2181 +#: templates/js/translated/stock.js:2182 msgid "Stock item assigned to sales order" msgstr "" -#: templates/js/translated/stock.js:2184 +#: templates/js/translated/stock.js:2185 msgid "Stock item assigned to customer" msgstr "" -#: templates/js/translated/stock.js:2187 +#: templates/js/translated/stock.js:2188 msgid "Serialized stock item has been allocated" msgstr "" -#: templates/js/translated/stock.js:2189 +#: templates/js/translated/stock.js:2190 msgid "Stock item has been fully allocated" msgstr "" -#: templates/js/translated/stock.js:2191 +#: templates/js/translated/stock.js:2192 msgid "Stock item has been partially allocated" msgstr "" -#: templates/js/translated/stock.js:2194 +#: templates/js/translated/stock.js:2195 msgid "Stock item has been installed in another item" msgstr "" -#: templates/js/translated/stock.js:2196 +#: templates/js/translated/stock.js:2197 msgid "Stock item has been consumed by a build order" msgstr "" -#: templates/js/translated/stock.js:2200 +#: templates/js/translated/stock.js:2201 msgid "Stock item has expired" msgstr "" -#: templates/js/translated/stock.js:2202 +#: templates/js/translated/stock.js:2203 msgid "Stock item will expire soon" msgstr "" -#: templates/js/translated/stock.js:2207 +#: templates/js/translated/stock.js:2208 msgid "Stock item has been rejected" msgstr "" -#: templates/js/translated/stock.js:2209 +#: templates/js/translated/stock.js:2210 msgid "Stock item is lost" msgstr "" -#: templates/js/translated/stock.js:2211 +#: templates/js/translated/stock.js:2212 msgid "Stock item is destroyed" msgstr "" -#: templates/js/translated/stock.js:2215 +#: templates/js/translated/stock.js:2216 #: templates/js/translated/table_filters.js:357 msgid "Depleted" msgstr "" -#: templates/js/translated/stock.js:2380 +#: templates/js/translated/stock.js:2381 msgid "Supplier part not specified" msgstr "" -#: templates/js/translated/stock.js:2427 +#: templates/js/translated/stock.js:2428 msgid "Stock Value" msgstr "" -#: templates/js/translated/stock.js:2555 +#: templates/js/translated/stock.js:2556 msgid "No stock items matching query" msgstr "" -#: templates/js/translated/stock.js:2658 +#: templates/js/translated/stock.js:2659 msgid "stock locations" msgstr "" -#: templates/js/translated/stock.js:2813 +#: templates/js/translated/stock.js:2814 msgid "Load Sublocations" msgstr "" -#: templates/js/translated/stock.js:2930 +#: templates/js/translated/stock.js:2931 msgid "Details" msgstr "" -#: templates/js/translated/stock.js:2934 +#: templates/js/translated/stock.js:2935 msgid "No changes" msgstr "" -#: templates/js/translated/stock.js:2946 +#: templates/js/translated/stock.js:2947 msgid "Part information unavailable" msgstr "" -#: templates/js/translated/stock.js:2968 +#: templates/js/translated/stock.js:2969 msgid "Location no longer exists" msgstr "" -#: templates/js/translated/stock.js:2985 +#: templates/js/translated/stock.js:2986 msgid "Build order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3000 +#: templates/js/translated/stock.js:3001 msgid "Purchase order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3017 +#: templates/js/translated/stock.js:3018 msgid "Sales Order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3034 +#: templates/js/translated/stock.js:3035 msgid "Return Order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3053 +#: templates/js/translated/stock.js:3054 msgid "Customer no longer exists" msgstr "" -#: templates/js/translated/stock.js:3071 +#: templates/js/translated/stock.js:3072 msgid "Stock item no longer exists" msgstr "" -#: templates/js/translated/stock.js:3089 +#: templates/js/translated/stock.js:3090 msgid "Added" msgstr "" -#: templates/js/translated/stock.js:3097 +#: templates/js/translated/stock.js:3098 msgid "Removed" msgstr "" -#: templates/js/translated/stock.js:3169 +#: templates/js/translated/stock.js:3170 msgid "No installed items" msgstr "" -#: templates/js/translated/stock.js:3223 templates/js/translated/stock.js:3259 +#: templates/js/translated/stock.js:3224 templates/js/translated/stock.js:3260 msgid "Uninstall Stock Item" msgstr "" -#: templates/js/translated/stock.js:3280 +#: templates/js/translated/stock.js:3281 msgid "Select stock item to uninstall" msgstr "" -#: templates/js/translated/stock.js:3301 +#: templates/js/translated/stock.js:3302 msgid "Install another stock item into this item" msgstr "" -#: templates/js/translated/stock.js:3302 +#: templates/js/translated/stock.js:3303 msgid "Stock items can only be installed if they meet the following criteria" msgstr "" -#: templates/js/translated/stock.js:3304 +#: templates/js/translated/stock.js:3305 msgid "The Stock Item links to a Part which is the BOM for this Stock Item" msgstr "" -#: templates/js/translated/stock.js:3305 +#: templates/js/translated/stock.js:3306 msgid "The Stock Item is currently available in stock" msgstr "" -#: templates/js/translated/stock.js:3306 +#: templates/js/translated/stock.js:3307 msgid "The Stock Item is not already installed in another item" msgstr "" -#: templates/js/translated/stock.js:3307 +#: templates/js/translated/stock.js:3308 msgid "The Stock Item is tracked by either a batch code or serial number" msgstr "" -#: templates/js/translated/stock.js:3320 +#: templates/js/translated/stock.js:3321 msgid "Select part to install" msgstr "" -#: templates/js/translated/stock.js:3383 +#: templates/js/translated/stock.js:3384 msgid "Select one or more stock items" msgstr "" -#: templates/js/translated/stock.js:3396 +#: templates/js/translated/stock.js:3397 msgid "Selected stock items" msgstr "" -#: templates/js/translated/stock.js:3400 +#: templates/js/translated/stock.js:3401 msgid "Change Stock Status" msgstr "" -#: templates/js/translated/stock.js:3477 +#: templates/js/translated/stock.js:3478 msgid "This week" msgstr "" -#: templates/js/translated/stock.js:3485 +#: templates/js/translated/stock.js:3486 msgid "This month" msgstr "" @@ -14734,10 +15053,6 @@ msgstr "" msgid "Show items which are in production" msgstr "" -#: templates/js/translated/table_filters.js:372 -msgid "Include Variants" -msgstr "" - #: templates/js/translated/table_filters.js:373 msgid "Include stock items for variant parts" msgstr "" @@ -15012,10 +15327,6 @@ msgstr "" msgid "An error occurred while attempting to login via your social network account." msgstr "" -#: templates/socialaccount/authentication_error.html:13 -msgid "Contact your system administrator for further information." -msgstr "" - #: templates/socialaccount/login.html:13 #, python-format msgid "Connect %(provider)s" @@ -15141,27 +15452,27 @@ msgstr "" msgid "No" msgstr "" -#: users/admin.py:104 +#: users/admin.py:101 msgid "Users" msgstr "" -#: users/admin.py:105 +#: users/admin.py:102 msgid "Select which users are assigned to this group" msgstr "" -#: users/admin.py:249 +#: users/admin.py:246 msgid "The following users are members of multiple groups" msgstr "" -#: users/admin.py:283 +#: users/admin.py:280 msgid "Personal info" msgstr "" -#: users/admin.py:285 +#: users/admin.py:282 msgid "Permissions" msgstr "" -#: users/admin.py:288 +#: users/admin.py:285 msgid "Important dates" msgstr "" @@ -15205,35 +15516,35 @@ msgstr "" msgid "Revoked" msgstr "" -#: users/models.py:379 +#: users/models.py:381 msgid "Permission set" msgstr "" -#: users/models.py:388 +#: users/models.py:390 msgid "Group" msgstr "" -#: users/models.py:392 +#: users/models.py:394 msgid "View" msgstr "" -#: users/models.py:392 +#: users/models.py:394 msgid "Permission to view items" msgstr "" -#: users/models.py:396 +#: users/models.py:398 msgid "Permission to add items" msgstr "" -#: users/models.py:400 +#: users/models.py:402 msgid "Change" msgstr "" -#: users/models.py:402 +#: users/models.py:404 msgid "Permissions to edit items" msgstr "" -#: users/models.py:408 +#: users/models.py:410 msgid "Permission to delete items" msgstr "" diff --git a/src/backend/InvenTree/locale/bg/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/bg/LC_MESSAGES/django.po index c3f135752c..86bf8f3b72 100644 --- a/src/backend/InvenTree/locale/bg/LC_MESSAGES/django.po +++ b/src/backend/InvenTree/locale/bg/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-08-20 01:22+0000\n" -"PO-Revision-Date: 2024-08-20 19:50\n" +"POT-Creation-Date: 2024-11-04 03:11+0000\n" +"PO-Revision-Date: 2024-11-04 03:14\n" "Last-Translator: \n" "Language-Team: Bulgarian\n" "Language: bg_BG\n" @@ -14,81 +14,89 @@ msgstr "" "X-Crowdin-Project: inventree\n" "X-Crowdin-Project-ID: 452300\n" "X-Crowdin-Language: bg\n" -"X-Crowdin-File: /[inventree.InvenTree] l10/src/backend/InvenTree/locale/en/LC_MESSAGES/django.po\n" -"X-Crowdin-File-ID: 216\n" +"X-Crowdin-File: /src/backend/InvenTree/locale/en/LC_MESSAGES/django.po\n" +"X-Crowdin-File-ID: 250\n" -#: InvenTree/api.py:269 +#: InvenTree/api.py:270 msgid "API endpoint not found" msgstr "Не е намерена крайна точка на API" -#: InvenTree/api.py:502 +#: InvenTree/api.py:387 +msgid "Invalid items list provided" +msgstr "" + +#: InvenTree/api.py:396 +msgid "Invalid filters provided" +msgstr "" + +#: InvenTree/api.py:401 +msgid "No items found to delete" +msgstr "" + +#: InvenTree/api.py:515 msgid "User does not have permission to view this model" msgstr "Потребителя няма нужното разрешение, за да вижда този модел" -#: InvenTree/conversion.py:160 +#: InvenTree/conversion.py:161 #, python-brace-format msgid "Invalid unit provided ({unit})" msgstr "" -#: InvenTree/conversion.py:177 +#: InvenTree/conversion.py:178 msgid "No value provided" msgstr "Не е зададена стойност" -#: InvenTree/conversion.py:204 +#: InvenTree/conversion.py:205 #, python-brace-format msgid "Could not convert {original} to {unit}" msgstr "Преобразуването на {original} в {unit} не беше успешно" -#: InvenTree/conversion.py:206 -msgid "Invalid quantity supplied" -msgstr "Зададено е недопустимо количество" +#: InvenTree/conversion.py:207 InvenTree/conversion.py:221 +#: InvenTree/helpers.py:505 order/models.py:589 order/models.py:832 +msgid "Invalid quantity provided" +msgstr "Въведена е недопустима стойност" -#: InvenTree/conversion.py:220 -#, python-brace-format -msgid "Invalid quantity supplied ({exc})" -msgstr "Зададено е недопустимо количество ({exc})" - -#: InvenTree/exceptions.py:108 +#: InvenTree/exceptions.py:104 msgid "Error details can be found in the admin panel" msgstr "Подробности за грешката могат да се намерят в администраторския панел" -#: InvenTree/fields.py:136 +#: InvenTree/fields.py:135 msgid "Enter date" msgstr "Въведи дата" -#: InvenTree/fields.py:205 InvenTree/models.py:929 build/serializers.py:468 -#: build/serializers.py:546 build/templates/build/sidebar.html:29 -#: company/models.py:836 +#: InvenTree/fields.py:204 InvenTree/models.py:928 build/serializers.py:512 +#: build/serializers.py:590 build/templates/build/sidebar.html:29 +#: company/models.py:833 #: company/templates/company/manufacturer_part_sidebar.html:11 #: company/templates/company/sidebar.html:37 -#: company/templates/company/supplier_part_sidebar.html:11 order/models.py:1380 +#: company/templates/company/supplier_part_sidebar.html:11 order/models.py:1397 #: order/templates/order/po_sidebar.html:11 #: order/templates/order/return_order_sidebar.html:9 #: order/templates/order/so_sidebar.html:17 part/admin.py:59 -#: part/models.py:3297 part/templates/part/part_sidebar.html:65 +#: part/models.py:3348 part/templates/part/part_sidebar.html:65 #: report/templates/report/inventree_build_order_report.html:172 -#: stock/admin.py:230 stock/models.py:2375 stock/models.py:2563 -#: stock/serializers.py:698 stock/serializers.py:856 stock/serializers.py:982 -#: stock/serializers.py:1032 stock/serializers.py:1343 -#: stock/serializers.py:1432 stock/serializers.py:1597 +#: stock/admin.py:231 stock/models.py:2494 stock/models.py:2679 +#: stock/serializers.py:725 stock/serializers.py:887 stock/serializers.py:1013 +#: stock/serializers.py:1063 stock/serializers.py:1374 +#: stock/serializers.py:1463 stock/serializers.py:1628 #: stock/templates/stock/stock_sidebar.html:25 #: templates/js/translated/barcode.js:143 templates/js/translated/bom.js:1265 -#: templates/js/translated/company.js:1684 templates/js/translated/order.js:372 +#: templates/js/translated/company.js:1685 templates/js/translated/order.js:372 #: templates/js/translated/part.js:1087 -#: templates/js/translated/purchase_order.js:2270 +#: templates/js/translated/purchase_order.js:2254 #: templates/js/translated/return_order.js:774 -#: templates/js/translated/sales_order.js:1103 -#: templates/js/translated/sales_order.js:2018 -#: templates/js/translated/stock.js:1621 templates/js/translated/stock.js:2513 +#: templates/js/translated/sales_order.js:1069 +#: templates/js/translated/sales_order.js:1999 +#: templates/js/translated/stock.js:1621 templates/js/translated/stock.js:2514 msgid "Notes" msgstr "Бележки" -#: InvenTree/format.py:164 +#: InvenTree/format.py:162 #, python-brace-format msgid "Value '{name}' does not appear in pattern format" msgstr "Значението '{name}' не отговаря на шаблона" -#: InvenTree/format.py:175 +#: InvenTree/format.py:173 msgid "Provided value does not match required pattern: " msgstr "Въведеното значение не отговаря на задължителния шаблон: " @@ -132,397 +140,409 @@ msgstr "" msgid "The provided primary email address is not valid." msgstr "Въведената основна електронна поща е невалидна." -#: InvenTree/forms.py:274 +#: InvenTree/forms.py:273 msgid "The provided email domain is not approved." msgstr "Въведеният домейн на електронната поща не е утвърден." -#: InvenTree/forms.py:403 +#: InvenTree/forms.py:402 msgid "Registration is disabled." msgstr "Регистрацията е деактивирана." -#: InvenTree/helpers.py:491 order/models.py:567 order/models.py:810 -msgid "Invalid quantity provided" -msgstr "Въведена е недопустима стойност" +#: InvenTree/helpers.py:509 +msgid "Cannot serialize more than 1000 items at once" +msgstr "" -#: InvenTree/helpers.py:499 +#: InvenTree/helpers.py:515 msgid "Empty serial number string" msgstr "Липсва сериен номер" -#: InvenTree/helpers.py:528 +#: InvenTree/helpers.py:544 msgid "Duplicate serial" msgstr "Повтарящ се сериен номер" -#: InvenTree/helpers.py:560 InvenTree/helpers.py:603 +#: InvenTree/helpers.py:576 InvenTree/helpers.py:619 InvenTree/helpers.py:637 +#: InvenTree/helpers.py:644 InvenTree/helpers.py:663 #, python-brace-format -msgid "Invalid group range: {group}" -msgstr "Невалиден диапазон от групи: {group}" +msgid "Invalid group: {group}" +msgstr "" -#: InvenTree/helpers.py:591 +#: InvenTree/helpers.py:607 #, python-brace-format msgid "Group range {group} exceeds allowed quantity ({expected_quantity})" msgstr "" -#: InvenTree/helpers.py:621 InvenTree/helpers.py:628 InvenTree/helpers.py:647 -#, python-brace-format -msgid "Invalid group sequence: {group}" -msgstr "" - -#: InvenTree/helpers.py:657 +#: InvenTree/helpers.py:673 msgid "No serial numbers found" msgstr "Не са открити серийни номера" -#: InvenTree/helpers.py:662 +#: InvenTree/helpers.py:678 msgid "Number of unique serial numbers ({len(serials)}) must match quantity ({expected_quantity})" msgstr "" -#: InvenTree/helpers.py:780 +#: InvenTree/helpers.py:796 msgid "Remove HTML tags from this value" msgstr "Премахнете HTML маркерите от тази стойност" -#: InvenTree/helpers_model.py:133 +#: InvenTree/helpers.py:881 +msgid "Data contains prohibited markdown content" +msgstr "" + +#: InvenTree/helpers_model.py:130 msgid "Connection error" msgstr "Грешка при съединението" -#: InvenTree/helpers_model.py:138 InvenTree/helpers_model.py:145 +#: InvenTree/helpers_model.py:135 InvenTree/helpers_model.py:142 msgid "Server responded with invalid status code" msgstr "Сървърът отговари с невалиден статусен код" -#: InvenTree/helpers_model.py:141 +#: InvenTree/helpers_model.py:138 msgid "Exception occurred" msgstr "Възникна изключение" -#: InvenTree/helpers_model.py:151 +#: InvenTree/helpers_model.py:148 msgid "Server responded with invalid Content-Length value" msgstr "Сървърът отговори с невалидна стойност за дължината на съдържанието (Content-Length)" -#: InvenTree/helpers_model.py:154 +#: InvenTree/helpers_model.py:151 msgid "Image size is too large" msgstr "Размерът на изображението е твърде голям" -#: InvenTree/helpers_model.py:166 +#: InvenTree/helpers_model.py:163 msgid "Image download exceeded maximum size" msgstr "Сваляното на изображение превиши максималния размер" -#: InvenTree/helpers_model.py:171 +#: InvenTree/helpers_model.py:168 msgid "Remote server returned empty response" msgstr "Отдалеченият сървър върна празен отговор" -#: InvenTree/helpers_model.py:179 +#: InvenTree/helpers_model.py:176 msgid "Supplied URL is not a valid image file" msgstr "" -#: InvenTree/locales.py:18 +#: InvenTree/locales.py:20 msgid "Arabic" msgstr "" -#: InvenTree/locales.py:19 +#: InvenTree/locales.py:21 msgid "Bulgarian" msgstr "" -#: InvenTree/locales.py:20 +#: InvenTree/locales.py:22 msgid "Czech" msgstr "" -#: InvenTree/locales.py:21 +#: InvenTree/locales.py:23 msgid "Danish" msgstr "" -#: InvenTree/locales.py:22 +#: InvenTree/locales.py:24 msgid "German" msgstr "" -#: InvenTree/locales.py:23 +#: InvenTree/locales.py:25 msgid "Greek" msgstr "" -#: InvenTree/locales.py:24 +#: InvenTree/locales.py:26 msgid "English" msgstr "" -#: InvenTree/locales.py:25 +#: InvenTree/locales.py:27 msgid "Spanish" msgstr "" -#: InvenTree/locales.py:26 +#: InvenTree/locales.py:28 msgid "Spanish (Mexican)" msgstr "" -#: InvenTree/locales.py:27 +#: InvenTree/locales.py:29 msgid "Estonian" msgstr "" -#: InvenTree/locales.py:28 +#: InvenTree/locales.py:30 msgid "Farsi / Persian" msgstr "" -#: InvenTree/locales.py:29 +#: InvenTree/locales.py:31 msgid "Finnish" msgstr "" -#: InvenTree/locales.py:30 +#: InvenTree/locales.py:32 msgid "French" msgstr "" -#: InvenTree/locales.py:31 +#: InvenTree/locales.py:33 msgid "Hebrew" msgstr "" -#: InvenTree/locales.py:32 +#: InvenTree/locales.py:34 msgid "Hindi" msgstr "Хинди" -#: InvenTree/locales.py:33 +#: InvenTree/locales.py:35 msgid "Hungarian" msgstr "Унгарски" -#: InvenTree/locales.py:34 +#: InvenTree/locales.py:36 msgid "Italian" msgstr "Италиански" -#: InvenTree/locales.py:35 +#: InvenTree/locales.py:37 msgid "Japanese" msgstr "Японски" -#: InvenTree/locales.py:36 +#: InvenTree/locales.py:38 msgid "Korean" msgstr "Корейски" -#: InvenTree/locales.py:37 +#: InvenTree/locales.py:39 +msgid "Lithuanian" +msgstr "" + +#: InvenTree/locales.py:40 msgid "Latvian" msgstr "" -#: InvenTree/locales.py:38 +#: InvenTree/locales.py:41 msgid "Dutch" msgstr "Нидерландски" -#: InvenTree/locales.py:39 +#: InvenTree/locales.py:42 msgid "Norwegian" msgstr "Норвежки" -#: InvenTree/locales.py:40 +#: InvenTree/locales.py:43 msgid "Polish" msgstr "Полски" -#: InvenTree/locales.py:41 +#: InvenTree/locales.py:44 msgid "Portuguese" msgstr "Португалски" -#: InvenTree/locales.py:42 +#: InvenTree/locales.py:45 msgid "Portuguese (Brazilian)" msgstr "Португалски (Бразилия)" -#: InvenTree/locales.py:43 +#: InvenTree/locales.py:46 msgid "Romanian" msgstr "" -#: InvenTree/locales.py:44 +#: InvenTree/locales.py:47 msgid "Russian" msgstr "Руски" -#: InvenTree/locales.py:45 +#: InvenTree/locales.py:48 msgid "Slovak" msgstr "" -#: InvenTree/locales.py:46 +#: InvenTree/locales.py:49 msgid "Slovenian" msgstr "Словенски" -#: InvenTree/locales.py:47 +#: InvenTree/locales.py:50 msgid "Serbian" msgstr "" -#: InvenTree/locales.py:48 +#: InvenTree/locales.py:51 msgid "Swedish" msgstr "Шведски" -#: InvenTree/locales.py:49 +#: InvenTree/locales.py:52 msgid "Thai" msgstr "Тайландски" -#: InvenTree/locales.py:50 +#: InvenTree/locales.py:53 msgid "Turkish" msgstr "Турски" -#: InvenTree/locales.py:51 +#: InvenTree/locales.py:54 msgid "Ukrainian" msgstr "" -#: InvenTree/locales.py:52 +#: InvenTree/locales.py:55 msgid "Vietnamese" msgstr "Виетнамски" -#: InvenTree/locales.py:53 +#: InvenTree/locales.py:56 msgid "Chinese (Simplified)" msgstr "Китайски (опростен)" -#: InvenTree/locales.py:54 +#: InvenTree/locales.py:57 msgid "Chinese (Traditional)" msgstr "Китайски (традиционен)" #: InvenTree/magic_login.py:28 -#, python-brace-format -msgid "[{site_name}] Log in to the app" +msgid "Log in to the app" msgstr "" -#: InvenTree/magic_login.py:38 InvenTree/serializers.py:415 -#: company/models.py:136 company/templates/company/company_base.html:138 +#: InvenTree/magic_login.py:38 InvenTree/serializers.py:416 +#: company/models.py:133 company/templates/company/company_base.html:138 #: templates/InvenTree/settings/user.html:49 -#: templates/js/translated/company.js:677 +#: templates/js/translated/company.js:678 msgid "Email" msgstr "" -#: InvenTree/models.py:103 +#: InvenTree/models.py:105 msgid "Error running plugin validation" msgstr "" -#: InvenTree/models.py:172 +#: InvenTree/models.py:174 msgid "Metadata must be a python dict object" msgstr "" -#: InvenTree/models.py:178 +#: InvenTree/models.py:180 msgid "Plugin Metadata" msgstr "" -#: InvenTree/models.py:179 +#: InvenTree/models.py:181 msgid "JSON metadata field, for use by external plugins" msgstr "" -#: InvenTree/models.py:409 +#: InvenTree/models.py:408 msgid "Improperly formatted pattern" msgstr "" -#: InvenTree/models.py:416 +#: InvenTree/models.py:415 msgid "Unknown format key specified" msgstr "" -#: InvenTree/models.py:422 +#: InvenTree/models.py:421 msgid "Missing required format key" msgstr "" -#: InvenTree/models.py:433 +#: InvenTree/models.py:432 msgid "Reference field cannot be empty" msgstr "" -#: InvenTree/models.py:441 +#: InvenTree/models.py:440 msgid "Reference must match required pattern" msgstr "" -#: InvenTree/models.py:472 +#: InvenTree/models.py:471 msgid "Reference number is too large" msgstr "" -#: InvenTree/models.py:723 +#: InvenTree/models.py:722 msgid "Duplicate names cannot exist under the same parent" msgstr "" -#: InvenTree/models.py:740 +#: InvenTree/models.py:739 msgid "Invalid choice" msgstr "" -#: InvenTree/models.py:770 common/models.py:2702 common/models.py:3132 -#: common/serializers.py:412 company/models.py:593 machine/models.py:24 -#: part/models.py:983 part/models.py:3764 plugin/models.py:51 -#: report/models.py:149 stock/models.py:77 +#: InvenTree/models.py:769 common/models.py:2766 common/models.py:3193 +#: common/models.py:3413 common/serializers.py:460 company/models.py:590 +#: machine/models.py:24 part/models.py:1044 part/models.py:3815 +#: plugin/models.py:51 report/models.py:149 stock/models.py:83 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/notifications.html:17 #: templates/InvenTree/settings/plugin.html:83 #: templates/InvenTree/settings/plugin_settings.html:22 #: templates/InvenTree/settings/settings_staff_js.html:67 #: templates/InvenTree/settings/settings_staff_js.html:454 -#: templates/js/translated/company.js:676 -#: templates/js/translated/company.js:724 -#: templates/js/translated/company.js:913 -#: templates/js/translated/company.js:1165 -#: templates/js/translated/company.js:1413 templates/js/translated/part.js:1193 +#: templates/js/translated/company.js:677 +#: templates/js/translated/company.js:725 +#: templates/js/translated/company.js:914 +#: templates/js/translated/company.js:1166 +#: templates/js/translated/company.js:1414 templates/js/translated/part.js:1193 #: templates/js/translated/part.js:1481 templates/js/translated/part.js:1617 -#: templates/js/translated/part.js:2768 templates/js/translated/stock.js:2801 +#: templates/js/translated/part.js:2768 templates/js/translated/stock.js:2802 msgid "Name" msgstr "" -#: InvenTree/models.py:776 build/models.py:250 -#: build/templates/build/detail.html:24 common/models.py:156 -#: company/models.py:521 company/models.py:827 +#: InvenTree/models.py:775 build/models.py:251 +#: build/templates/build/detail.html:24 common/models.py:159 +#: company/models.py:518 company/models.py:824 #: company/templates/company/company_base.html:77 #: company/templates/company/manufacturer_part.html:75 -#: company/templates/company/supplier_part.html:107 order/models.py:288 -#: order/models.py:1413 part/admin.py:305 part/admin.py:411 part/models.py:1006 -#: part/models.py:3779 part/templates/part/category.html:79 -#: part/templates/part/part_base.html:170 +#: company/templates/company/supplier_part.html:108 order/models.py:295 +#: order/models.py:1430 part/admin.py:305 part/admin.py:411 part/models.py:1067 +#: part/models.py:3830 part/templates/part/category.html:79 +#: part/templates/part/part_base.html:171 #: part/templates/part/part_scheduling.html:12 report/models.py:155 -#: report/models.py:509 report/models.py:535 +#: report/models.py:517 report/models.py:543 #: report/templates/report/inventree_build_order_report.html:117 -#: stock/admin.py:54 stock/models.py:83 stock/templates/stock/location.html:122 +#: stock/admin.py:54 stock/models.py:89 stock/templates/stock/location.html:123 #: templates/InvenTree/settings/notifications.html:19 #: templates/InvenTree/settings/plugin_settings.html:27 #: templates/InvenTree/settings/settings_staff_js.html:170 #: templates/InvenTree/settings/settings_staff_js.html:459 #: templates/js/translated/bom.js:633 templates/js/translated/bom.js:963 -#: templates/js/translated/build.js:2311 templates/js/translated/company.js:519 -#: templates/js/translated/company.js:1330 -#: templates/js/translated/company.js:1641 templates/js/translated/index.js:119 +#: templates/js/translated/build.js:2314 templates/js/translated/company.js:520 +#: templates/js/translated/company.js:1331 +#: templates/js/translated/company.js:1642 templates/js/translated/index.js:119 #: templates/js/translated/order.js:323 templates/js/translated/part.js:1245 #: templates/js/translated/part.js:1490 templates/js/translated/part.js:1628 #: templates/js/translated/part.js:1965 templates/js/translated/part.js:2361 #: templates/js/translated/part.js:2803 templates/js/translated/part.js:2915 #: templates/js/translated/plugin.js:80 -#: templates/js/translated/purchase_order.js:1776 -#: templates/js/translated/purchase_order.js:1919 -#: templates/js/translated/purchase_order.js:2092 +#: templates/js/translated/purchase_order.js:1760 +#: templates/js/translated/purchase_order.js:1903 +#: templates/js/translated/purchase_order.js:2076 #: templates/js/translated/return_order.js:313 -#: templates/js/translated/sales_order.js:838 -#: templates/js/translated/sales_order.js:1848 -#: templates/js/translated/stock.js:1600 templates/js/translated/stock.js:2143 -#: templates/js/translated/stock.js:2832 templates/js/translated/stock.js:2915 +#: templates/js/translated/sales_order.js:797 +#: templates/js/translated/sales_order.js:1829 +#: templates/js/translated/stock.js:1600 templates/js/translated/stock.js:2144 +#: templates/js/translated/stock.js:2833 templates/js/translated/stock.js:2916 msgid "Description" msgstr "" -#: InvenTree/models.py:777 stock/models.py:84 +#: InvenTree/models.py:776 stock/models.py:90 msgid "Description (optional)" msgstr "" -#: InvenTree/models.py:792 templates/js/translated/part.js:2812 -#: templates/js/translated/stock.js:2841 +#: InvenTree/models.py:791 common/models.py:3546 +#: templates/js/translated/part.js:2812 templates/js/translated/stock.js:2842 msgid "Path" msgstr "" -#: InvenTree/models.py:929 +#: InvenTree/models.py:928 msgid "Markdown notes (optional)" msgstr "" -#: InvenTree/models.py:960 +#: InvenTree/models.py:959 msgid "Barcode Data" msgstr "" -#: InvenTree/models.py:961 +#: InvenTree/models.py:960 msgid "Third party barcode data" msgstr "" -#: InvenTree/models.py:967 +#: InvenTree/models.py:966 msgid "Barcode Hash" msgstr "" -#: InvenTree/models.py:968 +#: InvenTree/models.py:967 msgid "Unique hash of barcode data" msgstr "" -#: InvenTree/models.py:1035 +#: InvenTree/models.py:1034 msgid "Existing barcode found" msgstr "" -#: InvenTree/models.py:1078 +#: InvenTree/models.py:1112 +msgid "Task Failure" +msgstr "" + +#: InvenTree/models.py:1114 +#, python-brace-format +msgid "Background worker task '{instance.func}' failed after {n} attempts" +msgstr "" + +#: InvenTree/models.py:1142 msgid "Server Error" msgstr "" -#: InvenTree/models.py:1079 +#: InvenTree/models.py:1143 msgid "An error has been logged by the server." msgstr "" -#: InvenTree/serializers.py:63 part/models.py:4387 +#: InvenTree/serializers.py:63 part/models.py:4444 msgid "Must be a valid number" msgstr "" -#: InvenTree/serializers.py:100 company/models.py:186 -#: company/templates/company/company_base.html:112 part/models.py:3115 +#: InvenTree/serializers.py:100 company/models.py:183 +#: company/templates/company/company_base.html:112 part/models.py:3166 #: templates/InvenTree/settings/settings_staff_js.html:44 #: templates/currency_data.html:5 msgid "Currency" @@ -532,15 +552,15 @@ msgstr "" msgid "Select currency from available options" msgstr "" -#: InvenTree/serializers.py:407 templates/InvenTree/settings/user.html:33 +#: InvenTree/serializers.py:405 templates/InvenTree/settings/user.html:33 msgid "Username" msgstr "" -#: InvenTree/serializers.py:409 templates/InvenTree/settings/user.html:37 +#: InvenTree/serializers.py:408 templates/InvenTree/settings/user.html:37 msgid "First Name" msgstr "" -#: InvenTree/serializers.py:409 +#: InvenTree/serializers.py:408 msgid "First name of the user" msgstr "" @@ -552,30 +572,30 @@ msgstr "" msgid "Last name of the user" msgstr "" -#: InvenTree/serializers.py:415 +#: InvenTree/serializers.py:416 msgid "Email address of the user" msgstr "" -#: InvenTree/serializers.py:439 +#: InvenTree/serializers.py:441 msgid "Staff" msgstr "" -#: InvenTree/serializers.py:439 +#: InvenTree/serializers.py:441 msgid "Does this user have staff permissions" msgstr "" -#: InvenTree/serializers.py:442 +#: InvenTree/serializers.py:445 msgid "Superuser" msgstr "" -#: InvenTree/serializers.py:442 +#: InvenTree/serializers.py:445 msgid "Is this user a superuser" msgstr "" -#: InvenTree/serializers.py:445 common/models.py:2707 company/models.py:163 -#: company/models.py:801 machine/models.py:39 part/admin.py:88 -#: part/models.py:1189 plugin/models.py:66 -#: templates/js/translated/company.js:523 +#: InvenTree/serializers.py:449 common/models.py:2771 company/models.py:160 +#: company/models.py:798 machine/models.py:39 part/admin.py:88 +#: part/models.py:1250 plugin/models.py:66 +#: templates/js/translated/company.js:524 #: templates/js/translated/table_filters.js:134 #: templates/js/translated/table_filters.js:226 #: templates/js/translated/table_filters.js:513 @@ -585,230 +605,229 @@ msgstr "" msgid "Active" msgstr "" -#: InvenTree/serializers.py:445 +#: InvenTree/serializers.py:449 msgid "Is this user account active" msgstr "" -#: InvenTree/serializers.py:463 +#: InvenTree/serializers.py:467 msgid "You do not have permission to change this user role." msgstr "" -#: InvenTree/serializers.py:475 +#: InvenTree/serializers.py:503 msgid "Only superusers can create new users" msgstr "" -#: InvenTree/serializers.py:494 +#: InvenTree/serializers.py:523 msgid "Your account has been created." msgstr "" -#: InvenTree/serializers.py:496 +#: InvenTree/serializers.py:525 msgid "Please use the password reset function to login" msgstr "" -#: InvenTree/serializers.py:503 +#: InvenTree/serializers.py:531 msgid "Welcome to InvenTree" msgstr "" -#: InvenTree/serializers.py:561 +#: InvenTree/serializers.py:594 msgid "Invalid value" msgstr "" -#: InvenTree/serializers.py:581 importer/models.py:63 +#: InvenTree/serializers.py:614 importer/models.py:64 msgid "Data File" msgstr "" -#: InvenTree/serializers.py:582 +#: InvenTree/serializers.py:615 msgid "Select data file for upload" msgstr "" -#: InvenTree/serializers.py:599 -msgid "Unsupported file type" +#: InvenTree/serializers.py:632 common/files.py:63 +msgid "Unsupported file format" msgstr "" -#: InvenTree/serializers.py:605 +#: InvenTree/serializers.py:638 msgid "File is too large" msgstr "" -#: InvenTree/serializers.py:626 +#: InvenTree/serializers.py:659 msgid "No columns found in file" msgstr "" -#: InvenTree/serializers.py:629 +#: InvenTree/serializers.py:662 msgid "No data rows found in file" msgstr "" -#: InvenTree/serializers.py:742 +#: InvenTree/serializers.py:774 msgid "No data rows provided" msgstr "" -#: InvenTree/serializers.py:745 +#: InvenTree/serializers.py:777 msgid "No data columns supplied" msgstr "" -#: InvenTree/serializers.py:812 +#: InvenTree/serializers.py:843 #, python-brace-format msgid "Missing required column: '{name}'" msgstr "" -#: InvenTree/serializers.py:821 +#: InvenTree/serializers.py:852 #, python-brace-format msgid "Duplicate column: '{col}'" msgstr "" -#: InvenTree/serializers.py:861 +#: InvenTree/serializers.py:891 msgid "Remote Image" msgstr "" -#: InvenTree/serializers.py:862 +#: InvenTree/serializers.py:892 msgid "URL of remote image file" msgstr "" -#: InvenTree/serializers.py:880 +#: InvenTree/serializers.py:910 msgid "Downloading images from remote URL is not enabled" msgstr "" -#: InvenTree/status.py:66 part/serializers.py:1246 -msgid "Background worker check failed" -msgstr "" - -#: InvenTree/status.py:70 -msgid "Email backend not configured" -msgstr "" - -#: InvenTree/status.py:73 -msgid "InvenTree system health checks failed" +#: InvenTree/serializers.py:917 +msgid "Failed to download image from remote URL" msgstr "" #: InvenTree/templatetags/inventree_extras.py:184 msgid "Unknown database" msgstr "" -#: InvenTree/validators.py:32 InvenTree/validators.py:34 +#: InvenTree/validators.py:32 msgid "Invalid physical unit" msgstr "" -#: InvenTree/validators.py:40 +#: InvenTree/validators.py:38 msgid "Not a valid currency code" msgstr "" -#: InvenTree/validators.py:118 InvenTree/validators.py:134 +#: InvenTree/validators.py:115 InvenTree/validators.py:131 msgid "Overage value must not be negative" msgstr "" -#: InvenTree/validators.py:136 +#: InvenTree/validators.py:133 msgid "Overage must not exceed 100%" msgstr "" -#: InvenTree/validators.py:142 +#: InvenTree/validators.py:139 msgid "Invalid value for overage" msgstr "" -#: InvenTree/views.py:400 templates/InvenTree/settings/user.html:23 +#: InvenTree/views.py:399 templates/InvenTree/settings/user.html:23 msgid "Edit User Information" msgstr "" -#: InvenTree/views.py:412 templates/InvenTree/settings/user.html:20 +#: InvenTree/views.py:411 templates/InvenTree/settings/user.html:20 msgid "Set Password" msgstr "" -#: InvenTree/views.py:434 +#: InvenTree/views.py:433 msgid "Password fields must match" msgstr "" -#: InvenTree/views.py:442 +#: InvenTree/views.py:441 msgid "Wrong password provided" msgstr "" -#: InvenTree/views.py:650 templates/navbar.html:160 +#: InvenTree/views.py:645 templates/navbar.html:160 msgid "System Information" msgstr "" -#: InvenTree/views.py:657 templates/navbar.html:171 +#: InvenTree/views.py:652 templates/navbar.html:171 msgid "About InvenTree" msgstr "" -#: build/api.py:51 part/api.py:156 stock/api.py:343 -msgid "Cascade" -msgstr "" - -#: build/api.py:64 build/models.py:261 -#: build/templates/build/build_base.html:191 +#: build/api.py:54 build/models.py:262 +#: build/templates/build/build_base.html:192 #: build/templates/build/detail.html:87 msgid "Parent Build" msgstr "" -#: build/api.py:89 order/api.py:92 templates/js/translated/table_filters.js:101 +#: build/api.py:58 build/api.py:625 order/api.py:396 order/api.py:611 +#: order/api.py:990 order/api.py:1187 +#: templates/js/translated/table_filters.js:372 +msgid "Include Variants" +msgstr "" + +#: build/api.py:93 +msgid "Ancestor Build" +msgstr "" + +#: build/api.py:112 order/api.py:90 +#: templates/js/translated/table_filters.js:101 #: templates/js/translated/table_filters.js:549 #: templates/js/translated/table_filters.js:633 #: templates/js/translated/table_filters.js:674 msgid "Assigned to me" msgstr "" -#: build/api.py:106 build/templates/build/build_base.html:205 +#: build/api.py:129 build/templates/build/build_base.html:206 #: build/templates/build/detail.html:115 #: report/templates/report/inventree_build_order_report.html:152 #: templates/js/translated/table_filters.js:552 msgid "Issued By" msgstr "" -#: build/api.py:125 +#: build/api.py:148 msgid "Assigned To" msgstr "" -#: build/api.py:301 +#: build/api.py:310 msgid "Build must be cancelled before it can be deleted" msgstr "" -#: build/api.py:345 build/serializers.py:1288 part/models.py:4265 +#: build/api.py:354 build/serializers.py:1342 part/models.py:4322 #: templates/js/translated/bom.js:997 templates/js/translated/bom.js:1037 -#: templates/js/translated/build.js:2702 +#: templates/js/translated/build.js:2711 #: templates/js/translated/table_filters.js:197 #: templates/js/translated/table_filters.js:586 msgid "Consumable" msgstr "" -#: build/api.py:346 build/serializers.py:1289 part/models.py:4259 +#: build/api.py:355 build/serializers.py:1343 part/models.py:4316 #: part/templates/part/upload_bom.html:58 templates/js/translated/bom.js:1001 -#: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2693 +#: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2702 #: templates/js/translated/table_filters.js:193 #: templates/js/translated/table_filters.js:222 #: templates/js/translated/table_filters.js:590 msgid "Optional" msgstr "" -#: build/api.py:347 common/models.py:1489 part/admin.py:91 part/admin.py:428 -#: part/models.py:1154 part/serializers.py:1575 +#: build/api.py:356 common/models.py:1558 part/admin.py:91 part/admin.py:428 +#: part/models.py:1215 part/serializers.py:1633 #: templates/js/translated/bom.js:1639 #: templates/js/translated/table_filters.js:337 #: templates/js/translated/table_filters.js:729 msgid "Assembly" msgstr "" -#: build/api.py:348 templates/js/translated/table_filters.js:415 +#: build/api.py:357 templates/js/translated/table_filters.js:415 #: templates/js/translated/table_filters.js:582 msgid "Tracked" msgstr "" -#: build/api.py:349 build/serializers.py:1290 part/models.py:1172 +#: build/api.py:358 build/serializers.py:1344 part/models.py:1233 #: templates/js/translated/table_filters.js:146 #: templates/js/translated/table_filters.js:779 msgid "Testable" msgstr "" -#: build/api.py:351 part/admin.py:144 templates/js/translated/build.js:1917 -#: templates/js/translated/build.js:2820 -#: templates/js/translated/sales_order.js:1965 +#: build/api.py:360 order/api.py:779 part/admin.py:144 +#: templates/js/translated/build.js:1920 templates/js/translated/build.js:2838 +#: templates/js/translated/sales_order.js:1946 #: templates/js/translated/table_filters.js:574 msgid "Allocated" msgstr "" -#: build/api.py:359 company/models.py:891 company/serializers.py:395 -#: company/templates/company/supplier_part.html:114 +#: build/api.py:368 company/models.py:888 company/serializers.py:399 +#: company/templates/company/supplier_part.html:115 #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:17 -#: templates/js/translated/bom.js:1162 templates/js/translated/build.js:2752 +#: templates/js/translated/bom.js:1162 templates/js/translated/build.js:2770 #: templates/js/translated/index.js:123 -#: templates/js/translated/model_renderers.js:235 +#: templates/js/translated/model_renderers.js:238 #: templates/js/translated/part.js:695 templates/js/translated/part.js:697 #: templates/js/translated/part.js:702 #: templates/js/translated/table_filters.js:347 @@ -816,16 +835,68 @@ msgstr "" msgid "Available" msgstr "" -#: build/models.py:86 build/templates/build/build_base.html:9 -#: build/templates/build/build_base.html:27 +#: build/api.py:640 build/models.py:268 build/serializers.py:1330 +#: build/templates/build/build_base.html:106 +#: build/templates/build/detail.html:29 company/models.py:1043 order/api.py:775 +#: order/api.py:1003 order/models.py:1519 order/models.py:1674 +#: order/models.py:1675 part/api.py:1495 part/api.py:1802 part/models.py:419 +#: part/models.py:3177 part/models.py:3321 part/models.py:3469 +#: part/models.py:3490 part/models.py:3512 part/models.py:3648 +#: part/models.py:3995 part/models.py:4158 part/models.py:4288 +#: part/models.py:4654 part/serializers.py:1245 part/serializers.py:1898 +#: part/templates/part/part_app_base.html:8 +#: part/templates/part/part_pricing.html:12 +#: part/templates/part/upload_bom.html:52 +#: report/templates/report/inventree_bill_of_materials_report.html:110 +#: report/templates/report/inventree_bill_of_materials_report.html:137 +#: report/templates/report/inventree_build_order_report.html:109 +#: report/templates/report/inventree_purchase_order_report.html:27 +#: report/templates/report/inventree_return_order_report.html:24 +#: report/templates/report/inventree_sales_order_report.html:27 +#: report/templates/report/inventree_sales_order_shipment_report.html:28 +#: report/templates/report/inventree_stock_location_report.html:102 +#: stock/serializers.py:112 stock/serializers.py:160 stock/serializers.py:456 +#: stock/serializers.py:947 templates/InvenTree/search.html:82 +#: templates/email/build_order_completed.html:17 +#: templates/email/build_order_required_stock.html:17 +#: templates/email/low_stock_notification.html:15 +#: templates/email/overdue_build_order.html:16 +#: templates/js/translated/barcode.js:577 templates/js/translated/bom.js:632 +#: templates/js/translated/bom.js:769 templates/js/translated/bom.js:905 +#: templates/js/translated/build.js:1005 templates/js/translated/build.js:1488 +#: templates/js/translated/build.js:1919 templates/js/translated/build.js:2337 +#: templates/js/translated/build.js:2514 templates/js/translated/company.js:349 +#: templates/js/translated/company.js:1117 +#: templates/js/translated/company.js:1272 +#: templates/js/translated/company.js:1560 templates/js/translated/index.js:109 +#: templates/js/translated/part.js:1950 templates/js/translated/part.js:2022 +#: templates/js/translated/part.js:2330 templates/js/translated/pricing.js:369 +#: templates/js/translated/purchase_order.js:734 +#: templates/js/translated/purchase_order.js:1350 +#: templates/js/translated/purchase_order.js:1902 +#: templates/js/translated/purchase_order.js:2061 +#: templates/js/translated/return_order.js:538 +#: templates/js/translated/return_order.js:708 +#: templates/js/translated/sales_order.js:1199 +#: templates/js/translated/sales_order.js:1608 +#: templates/js/translated/sales_order.js:1813 +#: templates/js/translated/stock.js:682 templates/js/translated/stock.js:848 +#: templates/js/translated/stock.js:1065 templates/js/translated/stock.js:2083 +#: templates/js/translated/stock.js:2942 templates/js/translated/stock.js:3175 +#: templates/js/translated/stock.js:3320 +msgid "Part" +msgstr "Част" + +#: build/api.py:662 build/models.py:88 build/templates/build/build_base.html:10 +#: build/templates/build/build_base.html:28 #: report/templates/report/inventree_build_order_report.html:105 -#: stock/serializers.py:84 templates/email/build_order_completed.html:16 +#: stock/serializers.py:85 templates/email/build_order_completed.html:16 #: templates/email/overdue_build_order.html:15 -#: templates/js/translated/build.js:1145 templates/js/translated/stock.js:2976 +#: templates/js/translated/build.js:1148 templates/js/translated/stock.js:2977 msgid "Build Order" msgstr "" -#: build/models.py:87 build/templates/build/build_base.html:13 +#: build/models.py:89 build/templates/build/build_base.html:14 #: build/templates/build/index.html:8 build/templates/build/index.html:12 #: order/templates/order/sales_order_detail.html:111 #: order/templates/order/so_sidebar.html:13 @@ -836,268 +907,216 @@ msgstr "" msgid "Build Orders" msgstr "" -#: build/models.py:135 +#: build/models.py:136 msgid "Assembly BOM has not been validated" msgstr "" -#: build/models.py:142 +#: build/models.py:143 msgid "Build order cannot be created for an inactive part" msgstr "" -#: build/models.py:149 +#: build/models.py:150 msgid "Build order cannot be created for an unlocked part" msgstr "" -#: build/models.py:163 +#: build/models.py:164 msgid "Invalid choice for parent build" msgstr "" -#: build/models.py:174 order/models.py:239 +#: build/models.py:175 order/models.py:236 msgid "Responsible user or group must be specified" msgstr "" -#: build/models.py:180 +#: build/models.py:181 msgid "Build order part cannot be changed" msgstr "" -#: build/models.py:241 +#: build/models.py:242 msgid "Build Order Reference" msgstr "" -#: build/models.py:242 build/serializers.py:1287 order/models.py:467 -#: order/models.py:978 order/models.py:1373 order/models.py:2135 -#: part/admin.py:414 part/models.py:4280 part/templates/part/upload_bom.html:54 +#: build/models.py:243 build/serializers.py:1341 order/models.py:479 +#: order/models.py:1005 order/models.py:1390 order/models.py:2174 +#: part/admin.py:414 part/models.py:4337 part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_bill_of_materials_report.html:139 #: report/templates/report/inventree_purchase_order_report.html:28 #: report/templates/report/inventree_return_order_report.html:26 #: report/templates/report/inventree_sales_order_report.html:28 #: templates/js/translated/bom.js:770 templates/js/translated/bom.js:973 -#: templates/js/translated/build.js:1011 templates/js/translated/build.js:2685 +#: templates/js/translated/build.js:1014 templates/js/translated/build.js:2694 #: templates/js/translated/order.js:316 templates/js/translated/pricing.js:386 -#: templates/js/translated/purchase_order.js:2135 +#: templates/js/translated/purchase_order.js:2119 #: templates/js/translated/return_order.js:727 -#: templates/js/translated/sales_order.js:1854 +#: templates/js/translated/sales_order.js:1835 msgid "Reference" msgstr "" -#: build/models.py:253 +#: build/models.py:254 msgid "Brief description of the build (optional)" msgstr "" -#: build/models.py:262 +#: build/models.py:263 msgid "BuildOrder to which this build is allocated" msgstr "" -#: build/models.py:267 build/serializers.py:1278 -#: build/templates/build/build_base.html:105 -#: build/templates/build/detail.html:29 company/models.py:1046 order/api.py:767 -#: order/models.py:1503 order/models.py:1658 order/models.py:1659 -#: part/api.py:1509 part/api.py:1813 part/models.py:424 part/models.py:3126 -#: part/models.py:3270 part/models.py:3418 part/models.py:3439 -#: part/models.py:3461 part/models.py:3597 part/models.py:3937 -#: part/models.py:4100 part/models.py:4231 part/models.py:4592 -#: part/serializers.py:1192 part/serializers.py:1836 -#: part/templates/part/part_app_base.html:8 -#: part/templates/part/part_pricing.html:12 -#: part/templates/part/upload_bom.html:52 -#: report/templates/report/inventree_bill_of_materials_report.html:110 -#: report/templates/report/inventree_bill_of_materials_report.html:137 -#: report/templates/report/inventree_build_order_report.html:109 -#: report/templates/report/inventree_purchase_order_report.html:27 -#: report/templates/report/inventree_return_order_report.html:24 -#: report/templates/report/inventree_sales_order_report.html:27 -#: report/templates/report/inventree_stock_location_report.html:102 -#: stock/serializers.py:111 stock/serializers.py:159 stock/serializers.py:446 -#: stock/serializers.py:916 templates/InvenTree/search.html:82 -#: templates/email/build_order_completed.html:17 -#: templates/email/build_order_required_stock.html:17 -#: templates/email/low_stock_notification.html:15 -#: templates/email/overdue_build_order.html:16 -#: templates/js/translated/barcode.js:577 templates/js/translated/bom.js:632 -#: templates/js/translated/bom.js:769 templates/js/translated/bom.js:905 -#: templates/js/translated/build.js:1002 templates/js/translated/build.js:1485 -#: templates/js/translated/build.js:1916 templates/js/translated/build.js:2334 -#: templates/js/translated/build.js:2507 templates/js/translated/company.js:348 -#: templates/js/translated/company.js:1116 -#: templates/js/translated/company.js:1271 -#: templates/js/translated/company.js:1559 templates/js/translated/index.js:109 -#: templates/js/translated/part.js:1950 templates/js/translated/part.js:2022 -#: templates/js/translated/part.js:2330 templates/js/translated/pricing.js:369 -#: templates/js/translated/purchase_order.js:751 -#: templates/js/translated/purchase_order.js:1367 -#: templates/js/translated/purchase_order.js:1918 -#: templates/js/translated/purchase_order.js:2077 -#: templates/js/translated/return_order.js:538 -#: templates/js/translated/return_order.js:708 -#: templates/js/translated/sales_order.js:300 -#: templates/js/translated/sales_order.js:1233 -#: templates/js/translated/sales_order.js:1634 -#: templates/js/translated/sales_order.js:1832 -#: templates/js/translated/stock.js:682 templates/js/translated/stock.js:848 -#: templates/js/translated/stock.js:1065 templates/js/translated/stock.js:2082 -#: templates/js/translated/stock.js:2941 templates/js/translated/stock.js:3174 -#: templates/js/translated/stock.js:3319 -msgid "Part" -msgstr "Част" - -#: build/models.py:275 +#: build/models.py:274 msgid "Select part to build" msgstr "" -#: build/models.py:280 +#: build/models.py:279 msgid "Sales Order Reference" msgstr "" -#: build/models.py:284 +#: build/models.py:283 msgid "SalesOrder to which this build is allocated" msgstr "" -#: build/models.py:289 build/serializers.py:1048 -#: templates/js/translated/build.js:1904 -#: templates/js/translated/sales_order.js:1221 +#: build/models.py:288 build/serializers.py:1092 +#: templates/js/translated/build.js:1907 +#: templates/js/translated/sales_order.js:1187 msgid "Source Location" msgstr "" -#: build/models.py:293 +#: build/models.py:292 msgid "Select location to take stock from for this build (leave blank to take from any stock location)" msgstr "" -#: build/models.py:298 +#: build/models.py:297 msgid "Destination Location" msgstr "" -#: build/models.py:302 +#: build/models.py:301 msgid "Select location where the completed items will be stored" msgstr "" -#: build/models.py:306 +#: build/models.py:305 msgid "Build Quantity" msgstr "" -#: build/models.py:309 +#: build/models.py:308 msgid "Number of stock items to build" msgstr "" -#: build/models.py:313 +#: build/models.py:312 msgid "Completed items" msgstr "" -#: build/models.py:315 +#: build/models.py:314 msgid "Number of stock items which have been completed" msgstr "" -#: build/models.py:319 +#: build/models.py:318 msgid "Build Status" msgstr "" -#: build/models.py:323 +#: build/models.py:322 msgid "Build status code" msgstr "" -#: build/models.py:332 build/serializers.py:302 build/serializers.py:1198 -#: order/serializers.py:670 stock/models.py:859 stock/serializers.py:76 -#: stock/serializers.py:1562 templates/js/translated/purchase_order.js:1129 +#: build/models.py:331 build/serializers.py:349 build/serializers.py:1243 +#: order/serializers.py:755 stock/models.py:936 stock/serializers.py:77 +#: stock/serializers.py:1593 templates/js/translated/purchase_order.js:1112 #: templates/js/translated/stock.js:1199 msgid "Batch Code" msgstr "" -#: build/models.py:336 build/serializers.py:303 +#: build/models.py:335 build/serializers.py:350 msgid "Batch code for this build output" msgstr "" -#: build/models.py:339 order/models.py:315 order/serializers.py:126 -#: part/models.py:1229 part/templates/part/part_base.html:319 +#: build/models.py:338 order/models.py:322 order/serializers.py:157 +#: part/models.py:1290 part/templates/part/part_base.html:327 #: templates/js/translated/return_order.js:338 -#: templates/js/translated/sales_order.js:863 +#: templates/js/translated/sales_order.js:822 msgid "Creation Date" msgstr "" -#: build/models.py:343 +#: build/models.py:342 msgid "Target completion date" msgstr "" -#: build/models.py:344 +#: build/models.py:343 msgid "Target date for build completion. Build will be overdue after this date." msgstr "" -#: build/models.py:347 order/models.py:526 order/models.py:2180 -#: templates/js/translated/build.js:2419 +#: build/models.py:346 order/models.py:538 order/models.py:2219 +#: templates/js/translated/build.js:2422 msgid "Completion Date" msgstr "" -#: build/models.py:353 +#: build/models.py:352 msgid "completed by" msgstr "" -#: build/models.py:361 templates/js/translated/build.js:2379 +#: build/models.py:360 templates/js/translated/build.js:2382 msgid "Issued by" msgstr "" -#: build/models.py:362 +#: build/models.py:361 msgid "User who issued this build order" msgstr "" -#: build/models.py:370 build/templates/build/build_base.html:212 -#: build/templates/build/detail.html:122 common/models.py:165 order/api.py:142 -#: order/models.py:333 order/templates/order/order_base.html:222 -#: order/templates/order/return_order_base.html:191 -#: order/templates/order/sales_order_base.html:235 part/models.py:1246 -#: part/templates/part/part_base.html:399 +#: build/models.py:369 build/templates/build/build_base.html:213 +#: build/templates/build/detail.html:122 common/models.py:168 order/api.py:140 +#: order/models.py:340 order/templates/order/order_base.html:231 +#: order/templates/order/return_order_base.html:192 +#: order/templates/order/sales_order_base.html:236 part/models.py:1307 +#: part/templates/part/part_base.html:407 #: report/templates/report/inventree_build_order_report.html:158 #: templates/InvenTree/settings/settings_staff_js.html:150 -#: templates/js/translated/build.js:2391 -#: templates/js/translated/purchase_order.js:1833 +#: templates/js/translated/build.js:2394 +#: templates/js/translated/purchase_order.js:1817 #: templates/js/translated/return_order.js:358 #: templates/js/translated/table_filters.js:551 msgid "Responsible" msgstr "" -#: build/models.py:371 +#: build/models.py:370 msgid "User or group responsible for this build order" msgstr "" -#: build/models.py:376 build/templates/build/detail.html:108 +#: build/models.py:375 build/templates/build/detail.html:108 #: company/templates/company/manufacturer_part.html:107 -#: company/templates/company/supplier_part.html:194 -#: order/templates/order/order_base.html:172 -#: order/templates/order/return_order_base.html:148 -#: order/templates/order/sales_order_base.html:187 -#: part/templates/part/part_base.html:392 stock/models.py:855 -#: stock/templates/stock/item_base.html:200 -#: templates/js/translated/company.js:1019 +#: company/templates/company/supplier_part.html:195 +#: order/templates/order/order_base.html:181 +#: order/templates/order/return_order_base.html:149 +#: order/templates/order/sales_order_base.html:188 +#: part/templates/part/part_base.html:400 stock/models.py:932 +#: stock/templates/stock/item_base.html:197 +#: templates/js/translated/company.js:1020 msgid "External Link" msgstr "" -#: build/models.py:377 common/models.py:3273 part/models.py:1058 -#: stock/models.py:855 +#: build/models.py:376 common/models.py:3334 part/models.py:1119 +#: stock/models.py:932 msgid "Link to external URL" msgstr "" -#: build/models.py:381 +#: build/models.py:380 msgid "Build Priority" msgstr "" -#: build/models.py:384 +#: build/models.py:383 msgid "Priority of this build order" msgstr "" -#: build/models.py:391 common/models.py:135 common/models.py:149 -#: order/admin.py:18 order/api.py:128 order/models.py:297 +#: build/models.py:390 common/models.py:138 common/models.py:152 +#: order/admin.py:18 order/api.py:126 order/models.py:304 #: templates/InvenTree/settings/settings_staff_js.html:146 -#: templates/js/translated/build.js:2316 -#: templates/js/translated/purchase_order.js:1780 +#: templates/js/translated/build.js:2319 +#: templates/js/translated/purchase_order.js:1764 #: templates/js/translated/return_order.js:317 -#: templates/js/translated/sales_order.js:842 +#: templates/js/translated/sales_order.js:801 #: templates/js/translated/table_filters.js:47 #: templates/project_code_data.html:6 msgid "Project Code" msgstr "" -#: build/models.py:392 +#: build/models.py:391 msgid "Project code for this build order" msgstr "" -#: build/models.py:651 build/models.py:778 +#: build/models.py:651 build/models.py:779 msgid "Failed to offload task to complete build allocations" msgstr "" @@ -1110,610 +1129,619 @@ msgstr "" msgid "A build order has been completed" msgstr "" -#: build/models.py:967 build/models.py:1055 +#: build/models.py:858 build/serializers.py:393 +msgid "Serial numbers must be provided for trackable parts" +msgstr "" + +#: build/models.py:969 build/models.py:1058 msgid "No build output specified" msgstr "" -#: build/models.py:970 +#: build/models.py:972 msgid "Build output is already completed" msgstr "" -#: build/models.py:973 +#: build/models.py:975 msgid "Build output does not match Build Order" msgstr "" -#: build/models.py:1059 build/serializers.py:235 build/serializers.py:284 -#: build/serializers.py:915 order/models.py:564 order/serializers.py:499 -#: order/serializers.py:665 part/serializers.py:1569 part/serializers.py:1999 -#: stock/models.py:700 stock/models.py:1520 stock/serializers.py:669 +#: build/models.py:1062 build/serializers.py:282 build/serializers.py:331 +#: build/serializers.py:959 order/models.py:586 order/serializers.py:584 +#: order/serializers.py:750 part/serializers.py:1627 part/serializers.py:2060 +#: stock/models.py:777 stock/models.py:1609 stock/serializers.py:696 msgid "Quantity must be greater than zero" msgstr "" -#: build/models.py:1064 build/serializers.py:240 +#: build/models.py:1067 build/serializers.py:287 msgid "Quantity cannot be greater than the output quantity" msgstr "" -#: build/models.py:1124 build/serializers.py:563 +#: build/models.py:1127 build/serializers.py:607 #, python-brace-format msgid "Build output {serial} has not passed all required tests" msgstr "" -#: build/models.py:1465 +#: build/models.py:1482 msgid "Build Order Line Item" msgstr "" -#: build/models.py:1490 +#: build/models.py:1507 msgid "Build object" msgstr "" -#: build/models.py:1504 build/models.py:1760 build/serializers.py:222 -#: build/serializers.py:269 build/serializers.py:1295 -#: build/templates/build/build_base.html:110 -#: build/templates/build/detail.html:34 common/models.py:2579 -#: order/models.py:1356 order/models.py:2041 order/serializers.py:1460 +#: build/models.py:1521 build/models.py:1787 build/serializers.py:269 +#: build/serializers.py:316 build/serializers.py:1349 +#: build/templates/build/build_base.html:111 +#: build/templates/build/detail.html:34 common/models.py:2643 +#: order/models.py:1373 order/models.py:2074 order/serializers.py:1586 #: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:413 -#: part/forms.py:48 part/models.py:3284 part/models.py:4253 -#: part/templates/part/part_pricing.html:16 +#: part/forms.py:48 part/models.py:3335 part/models.py:4310 +#: part/serializers.py:265 part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_bill_of_materials_report.html:138 #: report/templates/report/inventree_build_order_report.html:113 #: report/templates/report/inventree_purchase_order_report.html:29 #: report/templates/report/inventree_sales_order_report.html:29 +#: report/templates/report/inventree_sales_order_shipment_report.html:47 +#: report/templates/report/inventree_sales_order_shipment_report.html:49 #: report/templates/report/inventree_stock_location_report.html:104 #: report/templates/report/inventree_test_report.html:90 -#: report/templates/report/inventree_test_report.html:169 stock/admin.py:159 -#: stock/serializers.py:127 stock/serializers.py:167 stock/serializers.py:660 -#: stock/templates/stock/item_base.html:287 -#: stock/templates/stock/item_base.html:295 -#: stock/templates/stock/item_base.html:342 +#: report/templates/report/inventree_test_report.html:169 stock/admin.py:160 +#: stock/serializers.py:128 stock/serializers.py:168 stock/serializers.py:687 +#: stock/templates/stock/item_base.html:284 +#: stock/templates/stock/item_base.html:292 +#: stock/templates/stock/item_base.html:339 #: templates/email/build_order_completed.html:18 #: templates/js/translated/barcode.js:579 templates/js/translated/bom.js:771 -#: templates/js/translated/bom.js:981 templates/js/translated/build.js:522 -#: templates/js/translated/build.js:737 templates/js/translated/build.js:1542 -#: templates/js/translated/build.js:1919 templates/js/translated/build.js:2529 -#: templates/js/translated/company.js:1818 -#: templates/js/translated/model_renderers.js:237 +#: templates/js/translated/bom.js:981 templates/js/translated/build.js:525 +#: templates/js/translated/build.js:740 templates/js/translated/build.js:1545 +#: templates/js/translated/build.js:1922 templates/js/translated/build.js:2536 +#: templates/js/translated/company.js:1819 +#: templates/js/translated/model_renderers.js:240 #: templates/js/translated/order.js:329 templates/js/translated/part.js:968 -#: templates/js/translated/part.js:1818 templates/js/translated/part.js:3360 +#: templates/js/translated/part.js:1818 templates/js/translated/part.js:3376 #: templates/js/translated/pricing.js:381 #: templates/js/translated/pricing.js:474 #: templates/js/translated/pricing.js:522 #: templates/js/translated/pricing.js:616 -#: templates/js/translated/purchase_order.js:754 -#: templates/js/translated/purchase_order.js:1922 -#: templates/js/translated/purchase_order.js:2141 -#: templates/js/translated/sales_order.js:317 -#: templates/js/translated/sales_order.js:1235 -#: templates/js/translated/sales_order.js:1554 -#: templates/js/translated/sales_order.js:1644 -#: templates/js/translated/sales_order.js:1734 -#: templates/js/translated/sales_order.js:1860 +#: templates/js/translated/purchase_order.js:737 +#: templates/js/translated/purchase_order.js:1906 +#: templates/js/translated/purchase_order.js:2125 +#: templates/js/translated/sales_order.js:1201 +#: templates/js/translated/sales_order.js:1520 +#: templates/js/translated/sales_order.js:1625 +#: templates/js/translated/sales_order.js:1715 +#: templates/js/translated/sales_order.js:1841 #: templates/js/translated/stock.js:570 templates/js/translated/stock.js:708 -#: templates/js/translated/stock.js:879 templates/js/translated/stock.js:3105 -#: templates/js/translated/stock.js:3188 +#: templates/js/translated/stock.js:879 templates/js/translated/stock.js:3106 +#: templates/js/translated/stock.js:3189 msgid "Quantity" msgstr "" -#: build/models.py:1505 +#: build/models.py:1522 msgid "Required quantity for build order" msgstr "" -#: build/models.py:1585 +#: build/models.py:1602 msgid "Build item must specify a build output, as master part is marked as trackable" msgstr "" -#: build/models.py:1594 +#: build/models.py:1611 #, python-brace-format msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgstr "" -#: build/models.py:1604 order/models.py:1992 +#: build/models.py:1628 order/models.py:2025 msgid "Stock item is over-allocated" msgstr "" -#: build/models.py:1610 order/models.py:1995 +#: build/models.py:1634 order/models.py:2028 msgid "Allocation quantity must be greater than zero" msgstr "" -#: build/models.py:1616 +#: build/models.py:1640 msgid "Quantity must be 1 for serialized stock" msgstr "" -#: build/models.py:1675 +#: build/models.py:1699 msgid "Selected stock item does not match BOM line" msgstr "" -#: build/models.py:1747 build/serializers.py:895 order/serializers.py:1297 -#: order/serializers.py:1318 stock/models.py:376 stock/serializers.py:93 -#: stock/serializers.py:763 stock/serializers.py:1281 stock/serializers.py:1393 -#: stock/templates/stock/item_base.html:10 -#: stock/templates/stock/item_base.html:23 -#: stock/templates/stock/item_base.html:194 -#: templates/js/translated/build.js:1918 -#: templates/js/translated/sales_order.js:301 -#: templates/js/translated/sales_order.js:1234 -#: templates/js/translated/sales_order.js:1535 -#: templates/js/translated/sales_order.js:1540 -#: templates/js/translated/sales_order.js:1641 -#: templates/js/translated/sales_order.js:1728 +#: build/models.py:1774 build/serializers.py:939 order/serializers.py:1423 +#: order/serializers.py:1444 +#: report/templates/report/inventree_sales_order_shipment_report.html:29 +#: stock/models.py:382 stock/serializers.py:94 stock/serializers.py:794 +#: stock/serializers.py:1312 stock/serializers.py:1424 +#: stock/templates/stock/item_base.html:11 +#: stock/templates/stock/item_base.html:24 +#: stock/templates/stock/item_base.html:191 +#: templates/js/translated/build.js:1921 +#: templates/js/translated/sales_order.js:1200 +#: templates/js/translated/sales_order.js:1501 +#: templates/js/translated/sales_order.js:1506 +#: templates/js/translated/sales_order.js:1622 +#: templates/js/translated/sales_order.js:1709 #: templates/js/translated/stock.js:683 templates/js/translated/stock.js:849 -#: templates/js/translated/stock.js:3061 +#: templates/js/translated/stock.js:3062 msgid "Stock Item" msgstr "" -#: build/models.py:1748 +#: build/models.py:1775 msgid "Source stock item" msgstr "" -#: build/models.py:1761 +#: build/models.py:1788 msgid "Stock quantity to allocate to build" msgstr "" -#: build/models.py:1769 +#: build/models.py:1796 msgid "Install into" msgstr "" -#: build/models.py:1770 +#: build/models.py:1797 msgid "Destination stock item" msgstr "" -#: build/serializers.py:91 +#: build/serializers.py:108 msgid "Build Level" msgstr "" -#: build/serializers.py:99 build/serializers.py:1190 build/serializers.py:1279 -#: part/admin.py:41 part/admin.py:408 part/models.py:4102 part/stocktake.py:219 -#: stock/admin.py:156 +#: build/serializers.py:116 build/serializers.py:1235 build/serializers.py:1331 +#: part/admin.py:41 part/admin.py:408 part/models.py:4160 part/stocktake.py:219 +#: stock/admin.py:157 msgid "Part Name" msgstr "" -#: build/serializers.py:111 +#: build/serializers.py:128 msgid "Project Code Label" msgstr "" -#: build/serializers.py:172 build/serializers.py:924 -#: templates/js/translated/build.js:1042 templates/js/translated/build.js:1495 +#: build/serializers.py:134 +msgid "Create Child Builds" +msgstr "" + +#: build/serializers.py:135 +msgid "Automatically generate child build orders" +msgstr "" + +#: build/serializers.py:219 build/serializers.py:968 +#: templates/js/translated/build.js:1045 templates/js/translated/build.js:1498 msgid "Build Output" msgstr "" -#: build/serializers.py:184 +#: build/serializers.py:231 msgid "Build output does not match the parent build" msgstr "" -#: build/serializers.py:188 +#: build/serializers.py:235 msgid "Output part does not match BuildOrder part" msgstr "" -#: build/serializers.py:192 +#: build/serializers.py:239 msgid "This build output has already been completed" msgstr "" -#: build/serializers.py:203 +#: build/serializers.py:250 msgid "This build output is not fully allocated" msgstr "" -#: build/serializers.py:223 build/serializers.py:270 +#: build/serializers.py:270 build/serializers.py:317 msgid "Enter quantity for build output" msgstr "" -#: build/serializers.py:291 +#: build/serializers.py:338 msgid "Integer quantity required for trackable parts" msgstr "" -#: build/serializers.py:294 +#: build/serializers.py:341 msgid "Integer quantity required, as the bill of materials contains trackable parts" msgstr "" -#: build/serializers.py:309 order/serializers.py:678 order/serializers.py:1464 -#: stock/serializers.py:680 templates/js/translated/purchase_order.js:1154 +#: build/serializers.py:356 order/serializers.py:763 order/serializers.py:1590 +#: stock/serializers.py:707 templates/js/translated/purchase_order.js:1137 #: templates/js/translated/stock.js:373 templates/js/translated/stock.js:571 msgid "Serial Numbers" msgstr "" -#: build/serializers.py:310 +#: build/serializers.py:357 msgid "Enter serial numbers for build outputs" msgstr "" -#: build/serializers.py:315 build/serializers.py:456 build/serializers.py:528 -#: order/serializers.py:654 order/serializers.py:778 order/serializers.py:1781 -#: part/serializers.py:1212 stock/serializers.py:102 stock/serializers.py:691 -#: stock/serializers.py:851 stock/serializers.py:977 stock/serializers.py:1425 -#: stock/serializers.py:1681 stock/templates/stock/item_base.html:394 +#: build/serializers.py:362 build/serializers.py:500 build/serializers.py:572 +#: order/serializers.py:739 order/serializers.py:880 order/serializers.py:1933 +#: part/serializers.py:1265 stock/serializers.py:103 stock/serializers.py:718 +#: stock/serializers.py:882 stock/serializers.py:1008 stock/serializers.py:1456 +#: stock/serializers.py:1712 stock/templates/stock/item_base.html:391 #: templates/js/translated/barcode.js:578 -#: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1032 -#: templates/js/translated/build.js:1174 templates/js/translated/build.js:2544 -#: templates/js/translated/purchase_order.js:1210 -#: templates/js/translated/purchase_order.js:1320 -#: templates/js/translated/sales_order.js:1547 -#: templates/js/translated/sales_order.js:1655 -#: templates/js/translated/sales_order.js:1663 -#: templates/js/translated/sales_order.js:1742 +#: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1035 +#: templates/js/translated/build.js:1177 templates/js/translated/build.js:2551 +#: templates/js/translated/purchase_order.js:1193 +#: templates/js/translated/purchase_order.js:1303 +#: templates/js/translated/sales_order.js:1513 +#: templates/js/translated/sales_order.js:1636 +#: templates/js/translated/sales_order.js:1644 +#: templates/js/translated/sales_order.js:1723 #: templates/js/translated/stock.js:684 templates/js/translated/stock.js:850 -#: templates/js/translated/stock.js:1067 templates/js/translated/stock.js:2286 -#: templates/js/translated/stock.js:2955 +#: templates/js/translated/stock.js:1067 templates/js/translated/stock.js:2287 +#: templates/js/translated/stock.js:2956 msgid "Location" msgstr "" -#: build/serializers.py:316 +#: build/serializers.py:363 msgid "Stock location for build output" msgstr "" -#: build/serializers.py:330 +#: build/serializers.py:377 msgid "Auto Allocate Serial Numbers" msgstr "" -#: build/serializers.py:331 +#: build/serializers.py:378 msgid "Automatically allocate required items with matching serial numbers" msgstr "" -#: build/serializers.py:346 -msgid "Serial numbers must be provided for trackable parts" -msgstr "" - -#: build/serializers.py:371 stock/api.py:1031 +#: build/serializers.py:415 order/serializers.py:858 stock/api.py:1017 +#: stock/models.py:1632 msgid "The following serial numbers already exist or are invalid" msgstr "" -#: build/serializers.py:418 build/serializers.py:480 build/serializers.py:569 +#: build/serializers.py:462 build/serializers.py:524 build/serializers.py:613 msgid "A list of build outputs must be provided" msgstr "" -#: build/serializers.py:457 +#: build/serializers.py:501 msgid "Stock location for scrapped outputs" msgstr "" -#: build/serializers.py:463 +#: build/serializers.py:507 msgid "Discard Allocations" msgstr "" -#: build/serializers.py:464 +#: build/serializers.py:508 msgid "Discard any stock allocations for scrapped outputs" msgstr "" -#: build/serializers.py:469 +#: build/serializers.py:513 msgid "Reason for scrapping build output(s)" msgstr "" -#: build/serializers.py:529 +#: build/serializers.py:573 msgid "Location for completed build outputs" msgstr "" -#: build/serializers.py:535 build/templates/build/build_base.html:159 -#: build/templates/build/detail.html:62 order/models.py:476 -#: order/models.py:1002 order/models.py:2159 order/serializers.py:686 -#: stock/admin.py:164 stock/serializers.py:1028 stock/serializers.py:1569 -#: stock/templates/stock/item_base.html:427 -#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2363 -#: templates/js/translated/purchase_order.js:1371 -#: templates/js/translated/purchase_order.js:1792 +#: build/serializers.py:579 build/templates/build/build_base.html:160 +#: build/templates/build/detail.html:62 order/models.py:488 +#: order/models.py:1029 order/models.py:2198 order/serializers.py:771 +#: stock/admin.py:165 stock/serializers.py:581 stock/serializers.py:1059 +#: stock/serializers.py:1600 stock/templates/stock/item_base.html:424 +#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2366 +#: templates/js/translated/purchase_order.js:1354 +#: templates/js/translated/purchase_order.js:1776 #: templates/js/translated/return_order.js:330 -#: templates/js/translated/sales_order.js:855 -#: templates/js/translated/stock.js:2261 templates/js/translated/stock.js:3079 -#: templates/js/translated/stock.js:3204 +#: templates/js/translated/sales_order.js:814 +#: templates/js/translated/stock.js:2262 templates/js/translated/stock.js:3080 +#: templates/js/translated/stock.js:3205 msgid "Status" msgstr "" -#: build/serializers.py:541 +#: build/serializers.py:585 msgid "Accept Incomplete Allocation" msgstr "" -#: build/serializers.py:542 +#: build/serializers.py:586 msgid "Complete outputs if stock has not been fully allocated" msgstr "" -#: build/serializers.py:654 +#: build/serializers.py:698 msgid "Consume Allocated Stock" msgstr "" -#: build/serializers.py:655 +#: build/serializers.py:699 msgid "Consume any stock which has already been allocated to this build" msgstr "" -#: build/serializers.py:661 +#: build/serializers.py:705 msgid "Remove Incomplete Outputs" msgstr "" -#: build/serializers.py:662 +#: build/serializers.py:706 msgid "Delete any build outputs which have not been completed" msgstr "" -#: build/serializers.py:689 +#: build/serializers.py:733 msgid "Not permitted" msgstr "" -#: build/serializers.py:690 +#: build/serializers.py:734 msgid "Accept as consumed by this build order" msgstr "" -#: build/serializers.py:691 +#: build/serializers.py:735 msgid "Deallocate before completing this build order" msgstr "" -#: build/serializers.py:721 +#: build/serializers.py:765 msgid "Overallocated Stock" msgstr "" -#: build/serializers.py:723 +#: build/serializers.py:767 msgid "How do you want to handle extra stock items assigned to the build order" msgstr "" -#: build/serializers.py:733 +#: build/serializers.py:777 msgid "Some stock items have been overallocated" msgstr "" -#: build/serializers.py:738 +#: build/serializers.py:782 msgid "Accept Unallocated" msgstr "" -#: build/serializers.py:739 +#: build/serializers.py:783 msgid "Accept that stock items have not been fully allocated to this build order" msgstr "" -#: build/serializers.py:749 templates/js/translated/build.js:316 +#: build/serializers.py:793 templates/js/translated/build.js:319 msgid "Required stock has not been fully allocated" msgstr "" -#: build/serializers.py:754 order/serializers.py:345 order/serializers.py:1365 +#: build/serializers.py:798 order/serializers.py:430 order/serializers.py:1491 msgid "Accept Incomplete" msgstr "" -#: build/serializers.py:755 +#: build/serializers.py:799 msgid "Accept that the required number of build outputs have not been completed" msgstr "" -#: build/serializers.py:765 templates/js/translated/build.js:320 +#: build/serializers.py:809 templates/js/translated/build.js:323 msgid "Required build quantity has not been completed" msgstr "" -#: build/serializers.py:774 +#: build/serializers.py:818 msgid "Build order has open child build orders" msgstr "" -#: build/serializers.py:777 +#: build/serializers.py:821 msgid "Build order must be in production state" msgstr "" -#: build/serializers.py:780 templates/js/translated/build.js:304 +#: build/serializers.py:824 templates/js/translated/build.js:307 msgid "Build order has incomplete outputs" msgstr "" -#: build/serializers.py:818 +#: build/serializers.py:862 msgid "Build Line" msgstr "" -#: build/serializers.py:828 +#: build/serializers.py:872 msgid "Build output" msgstr "" -#: build/serializers.py:836 +#: build/serializers.py:880 msgid "Build output must point to the same build" msgstr "" -#: build/serializers.py:872 +#: build/serializers.py:916 msgid "Build Line Item" msgstr "" -#: build/serializers.py:886 +#: build/serializers.py:930 msgid "bom_item.part must point to the same part as the build order" msgstr "" -#: build/serializers.py:901 stock/serializers.py:1294 +#: build/serializers.py:945 stock/serializers.py:1325 msgid "Item must be in stock" msgstr "" -#: build/serializers.py:949 order/serializers.py:1351 +#: build/serializers.py:993 order/serializers.py:1477 #, python-brace-format msgid "Available quantity ({q}) exceeded" msgstr "" -#: build/serializers.py:955 +#: build/serializers.py:999 msgid "Build output must be specified for allocation of tracked parts" msgstr "" -#: build/serializers.py:962 +#: build/serializers.py:1006 msgid "Build output cannot be specified for allocation of untracked parts" msgstr "" -#: build/serializers.py:986 order/serializers.py:1610 +#: build/serializers.py:1030 order/serializers.py:1750 msgid "Allocation items must be provided" msgstr "" -#: build/serializers.py:1049 +#: build/serializers.py:1093 msgid "Stock location where parts are to be sourced (leave blank to take from any location)" msgstr "" -#: build/serializers.py:1057 +#: build/serializers.py:1101 msgid "Exclude Location" msgstr "" -#: build/serializers.py:1058 +#: build/serializers.py:1102 msgid "Exclude stock items from this selected location" msgstr "" -#: build/serializers.py:1063 +#: build/serializers.py:1107 msgid "Interchangeable Stock" msgstr "" -#: build/serializers.py:1064 +#: build/serializers.py:1108 msgid "Stock items in multiple locations can be used interchangeably" msgstr "" -#: build/serializers.py:1069 +#: build/serializers.py:1113 msgid "Substitute Stock" msgstr "" -#: build/serializers.py:1070 +#: build/serializers.py:1114 msgid "Allow allocation of substitute parts" msgstr "" -#: build/serializers.py:1075 +#: build/serializers.py:1119 msgid "Optional Items" msgstr "" -#: build/serializers.py:1076 +#: build/serializers.py:1120 msgid "Allocate optional BOM items to build order" msgstr "" -#: build/serializers.py:1098 +#: build/serializers.py:1143 msgid "Failed to start auto-allocation task" msgstr "" -#: build/serializers.py:1181 +#: build/serializers.py:1226 stock/serializers.py:585 msgid "Supplier Part Number" msgstr "" -#: build/serializers.py:1182 company/models.py:506 +#: build/serializers.py:1227 company/models.py:503 stock/serializers.py:591 msgid "Manufacturer Part Number" msgstr "" -#: build/serializers.py:1183 stock/admin.py:53 stock/admin.py:175 -#: stock/serializers.py:457 +#: build/serializers.py:1228 stock/admin.py:53 stock/admin.py:176 +#: stock/serializers.py:467 msgid "Location Name" msgstr "" -#: build/serializers.py:1184 +#: build/serializers.py:1229 build/serializers.py:1327 msgid "Build Reference" msgstr "" -#: build/serializers.py:1185 +#: build/serializers.py:1230 msgid "BOM Reference" msgstr "" -#: build/serializers.py:1186 company/models.py:852 -#: company/templates/company/supplier_part.html:160 order/serializers.py:690 -#: stock/admin.py:228 stock/models.py:818 stock/serializers.py:1579 -#: stock/templates/stock/item_base.html:240 -#: templates/js/translated/company.js:1646 -#: templates/js/translated/purchase_order.js:1169 -#: templates/js/translated/purchase_order.js:1332 +#: build/serializers.py:1231 company/models.py:849 +#: company/templates/company/supplier_part.html:161 order/serializers.py:775 +#: stock/admin.py:229 stock/models.py:895 stock/serializers.py:1610 +#: stock/templates/stock/item_base.html:237 +#: templates/js/translated/company.js:1647 +#: templates/js/translated/purchase_order.js:1152 +#: templates/js/translated/purchase_order.js:1315 #: templates/js/translated/stock.js:1214 templates/js/translated/stock.js:1246 -#: templates/js/translated/stock.js:2509 +#: templates/js/translated/stock.js:2510 msgid "Packaging" msgstr "" -#: build/serializers.py:1189 part/admin.py:39 part/admin.py:398 -#: part/models.py:4101 part/stocktake.py:218 stock/admin.py:152 +#: build/serializers.py:1234 part/admin.py:39 part/admin.py:398 +#: part/models.py:4159 part/stocktake.py:218 stock/admin.py:153 msgid "Part ID" msgstr "" -#: build/serializers.py:1191 build/serializers.py:1280 part/admin.py:402 -#: part/models.py:4103 +#: build/serializers.py:1236 build/serializers.py:1332 part/admin.py:402 +#: part/models.py:4161 msgid "Part IPN" msgstr "" -#: build/serializers.py:1192 build/serializers.py:1282 part/admin.py:45 +#: build/serializers.py:1237 build/serializers.py:1334 part/admin.py:45 #: part/stocktake.py:220 msgid "Part Description" msgstr "" -#: build/serializers.py:1195 +#: build/serializers.py:1240 msgid "BOM Part ID" msgstr "" -#: build/serializers.py:1196 +#: build/serializers.py:1241 msgid "BOM Part Name" msgstr "" -#: build/serializers.py:1199 +#: build/serializers.py:1244 #: report/templates/report/inventree_return_order_report.html:25 -#: report/templates/report/inventree_test_report.html:88 stock/models.py:845 -#: stock/serializers.py:151 stock/templates/stock/item_base.html:311 -#: templates/js/translated/build.js:520 templates/js/translated/build.js:1540 -#: templates/js/translated/build.js:2527 -#: templates/js/translated/model_renderers.js:231 +#: report/templates/report/inventree_sales_order_shipment_report.html:45 +#: report/templates/report/inventree_test_report.html:88 stock/models.py:922 +#: stock/serializers.py:152 stock/templates/stock/item_base.html:308 +#: templates/js/translated/build.js:523 templates/js/translated/build.js:1543 +#: templates/js/translated/build.js:2534 +#: templates/js/translated/model_renderers.js:234 #: templates/js/translated/return_order.js:539 #: templates/js/translated/return_order.js:722 -#: templates/js/translated/sales_order.js:315 -#: templates/js/translated/sales_order.js:1647 -#: templates/js/translated/sales_order.js:1732 +#: templates/js/translated/sales_order.js:1628 +#: templates/js/translated/sales_order.js:1713 #: templates/js/translated/stock.js:602 msgid "Serial Number" msgstr "" -#: build/serializers.py:1212 stock/serializers.py:593 -#: templates/js/translated/build.js:1017 templates/js/translated/build.js:1164 -#: templates/js/translated/build.js:2516 +#: build/serializers.py:1257 stock/serializers.py:620 +#: templates/js/translated/build.js:1020 templates/js/translated/build.js:1167 +#: templates/js/translated/build.js:2523 msgid "Allocated Quantity" msgstr "" -#: build/serializers.py:1213 stock/templates/stock/item_base.html:340 +#: build/serializers.py:1258 stock/templates/stock/item_base.html:337 msgid "Available Quantity" msgstr "" -#: build/serializers.py:1283 +#: build/serializers.py:1335 msgid "Part Category ID" msgstr "" -#: build/serializers.py:1284 +#: build/serializers.py:1336 msgid "Part Category Name" msgstr "" -#: build/serializers.py:1291 common/models.py:1513 part/admin.py:113 -#: part/models.py:1166 templates/js/translated/table_filters.js:150 +#: build/serializers.py:1345 common/models.py:1582 part/admin.py:113 +#: part/models.py:1227 templates/js/translated/build.js:2738 +#: templates/js/translated/table_filters.js:150 #: templates/js/translated/table_filters.js:230 #: templates/js/translated/table_filters.js:783 msgid "Trackable" msgstr "" -#: build/serializers.py:1292 +#: build/serializers.py:1346 msgid "Inherited" msgstr "" -#: build/serializers.py:1293 part/models.py:4313 +#: build/serializers.py:1347 part/models.py:4370 #: part/templates/part/upload_bom.html:56 templates/js/translated/bom.js:1046 -#: templates/js/translated/build.js:2711 +#: templates/js/translated/build.js:2720 msgid "Allow Variants" msgstr "" -#: build/serializers.py:1297 part/models.py:4110 part/models.py:4584 +#: build/serializers.py:1351 part/models.py:4168 part/models.py:4646 #: stock/api.py:794 msgid "BOM Item" msgstr "" -#: build/serializers.py:1306 build/templates/build/detail.html:236 +#: build/serializers.py:1370 build/templates/build/detail.html:236 #: build/templates/build/sidebar.html:16 templates/js/translated/index.js:130 msgid "Allocated Stock" msgstr "" -#: build/serializers.py:1311 order/serializers.py:1175 part/admin.py:132 -#: part/bom.py:181 part/serializers.py:899 part/serializers.py:1602 -#: part/templates/part/part_base.html:210 templates/js/translated/bom.js:1208 -#: templates/js/translated/build.js:2804 templates/js/translated/part.js:712 +#: build/serializers.py:1375 order/serializers.py:1209 part/admin.py:132 +#: part/bom.py:186 part/serializers.py:951 part/serializers.py:1660 +#: part/templates/part/part_base.html:211 templates/js/translated/bom.js:1208 +#: templates/js/translated/build.js:2822 templates/js/translated/part.js:712 #: templates/js/translated/part.js:2155 #: templates/js/translated/table_filters.js:177 msgid "On Order" msgstr "" -#: build/serializers.py:1316 order/serializers.py:1176 part/serializers.py:1604 -#: templates/js/translated/build.js:2808 +#: build/serializers.py:1380 order/serializers.py:1210 part/serializers.py:1662 +#: templates/js/translated/build.js:2826 #: templates/js/translated/table_filters.js:367 msgid "In Production" msgstr "" -#: build/serializers.py:1321 part/bom.py:180 part/serializers.py:1629 -#: part/templates/part/part_base.html:192 -#: templates/js/translated/sales_order.js:1929 -msgid "Available Stock" -msgstr "" - -#: build/serializers.py:1325 -msgid "Available Substitute Stock" -msgstr "" - -#: build/serializers.py:1326 -msgid "Available Variant Stock" -msgstr "" - -#: build/serializers.py:1327 -msgid "Total Available Stock" -msgstr "" - -#: build/serializers.py:1328 part/serializers.py:906 +#: build/serializers.py:1384 part/serializers.py:958 msgid "External Stock" msgstr "" -#: build/status_codes.py:11 generic/states/tests.py:17 order/status_codes.py:12 -#: order/status_codes.py:42 order/status_codes.py:74 order/status_codes.py:98 +#: build/serializers.py:1385 part/bom.py:185 part/serializers.py:1687 +#: part/templates/part/part_base.html:193 +#: templates/js/translated/sales_order.js:1910 +msgid "Available Stock" +msgstr "" + +#: build/serializers.py:1386 +msgid "Available Substitute Stock" +msgstr "" + +#: build/serializers.py:1387 +msgid "Available Variant Stock" +msgstr "" + +#: build/status_codes.py:11 generic/states/tests.py:21 +#: generic/states/tests.py:131 order/status_codes.py:12 +#: order/status_codes.py:44 order/status_codes.py:76 order/status_codes.py:102 #: templates/js/translated/table_filters.js:601 msgid "Pending" msgstr "" @@ -1722,21 +1750,21 @@ msgstr "" msgid "Production" msgstr "" -#: build/status_codes.py:13 order/status_codes.py:14 order/status_codes.py:49 -#: order/status_codes.py:79 +#: build/status_codes.py:13 order/status_codes.py:14 order/status_codes.py:51 +#: order/status_codes.py:81 msgid "On Hold" msgstr "" -#: build/status_codes.py:14 order/status_codes.py:16 order/status_codes.py:51 -#: order/status_codes.py:82 +#: build/status_codes.py:14 order/status_codes.py:16 order/status_codes.py:53 +#: order/status_codes.py:84 msgid "Cancelled" msgstr "" -#: build/status_codes.py:15 generic/states/tests.py:19 importer/models.py:509 -#: importer/status_codes.py:19 order/status_codes.py:15 -#: order/status_codes.py:50 order/status_codes.py:81 -#: order/templates/order/order_base.html:163 -#: order/templates/order/sales_order_base.html:168 report/models.py:443 +#: build/status_codes.py:15 generic/states/tests.py:23 importer/models.py:518 +#: importer/status_codes.py:27 order/status_codes.py:15 +#: order/status_codes.py:52 order/status_codes.py:83 +#: order/templates/order/order_base.html:172 +#: order/templates/order/sales_order_base.html:169 report/models.py:451 msgid "Complete" msgstr "" @@ -1744,165 +1772,162 @@ msgstr "" msgid "Stock required for build order" msgstr "" -#: build/tasks.py:201 +#: build/tasks.py:260 msgid "Overdue Build Order" msgstr "" -#: build/tasks.py:206 +#: build/tasks.py:265 #, python-brace-format msgid "Build order {bo} is now overdue" msgstr "" -#: build/templates/build/build_base.html:18 +#: build/templates/build/build_base.html:19 msgid "Part thumbnail" msgstr "" -#: build/templates/build/build_base.html:38 -#: company/templates/company/supplier_part.html:35 -#: order/templates/order/order_base.html:29 -#: order/templates/order/return_order_base.html:38 -#: order/templates/order/sales_order_base.html:38 -#: part/templates/part/part_base.html:41 -#: stock/templates/stock/item_base.html:40 -#: stock/templates/stock/location.html:52 +#: build/templates/build/build_base.html:39 +#: company/templates/company/supplier_part.html:36 +#: order/templates/order/order_base.html:30 +#: order/templates/order/return_order_base.html:39 +#: order/templates/order/sales_order_base.html:39 +#: part/templates/part/part_base.html:42 +#: stock/templates/stock/item_base.html:41 +#: stock/templates/stock/location.html:53 #: templates/js/translated/filters.js:338 msgid "Barcode actions" msgstr "" -#: build/templates/build/build_base.html:42 -#: company/templates/company/supplier_part.html:39 -#: order/templates/order/order_base.html:33 -#: order/templates/order/return_order_base.html:42 -#: order/templates/order/sales_order_base.html:42 -#: part/templates/part/part_base.html:44 -#: stock/templates/stock/item_base.html:44 -#: stock/templates/stock/location.html:54 templates/qr_button.html:1 +#: build/templates/build/build_base.html:43 +#: company/templates/company/supplier_part.html:40 +#: order/templates/order/order_base.html:34 +#: order/templates/order/return_order_base.html:43 +#: order/templates/order/sales_order_base.html:43 +#: part/templates/part/part_base.html:45 +#: stock/templates/stock/item_base.html:45 +#: stock/templates/stock/location.html:55 templates/qr_button.html:1 msgid "Show QR Code" msgstr "" -#: build/templates/build/build_base.html:45 -#: company/templates/company/supplier_part.html:41 -#: order/templates/order/order_base.html:36 -#: order/templates/order/return_order_base.html:45 -#: order/templates/order/sales_order_base.html:45 -#: part/templates/part/part_base.html:47 -#: stock/templates/stock/item_base.html:47 -#: stock/templates/stock/location.html:56 +#: build/templates/build/build_base.html:46 +#: company/templates/company/supplier_part.html:42 +#: order/templates/order/order_base.html:37 +#: order/templates/order/return_order_base.html:46 +#: order/templates/order/sales_order_base.html:46 +#: part/templates/part/part_base.html:48 +#: stock/templates/stock/item_base.html:48 +#: stock/templates/stock/location.html:57 #: templates/js/translated/barcode.js:527 #: templates/js/translated/barcode.js:532 msgid "Unlink Barcode" msgstr "" -#: build/templates/build/build_base.html:47 -#: company/templates/company/supplier_part.html:43 -#: order/templates/order/order_base.html:38 -#: order/templates/order/return_order_base.html:47 -#: order/templates/order/sales_order_base.html:47 -#: part/templates/part/part_base.html:49 -#: stock/templates/stock/item_base.html:49 -#: stock/templates/stock/location.html:58 +#: build/templates/build/build_base.html:48 +#: company/templates/company/supplier_part.html:44 +#: order/templates/order/order_base.html:39 +#: order/templates/order/return_order_base.html:48 +#: order/templates/order/sales_order_base.html:48 +#: part/templates/part/part_base.html:50 +#: stock/templates/stock/item_base.html:50 +#: stock/templates/stock/location.html:59 msgid "Link Barcode" msgstr "" -#: build/templates/build/build_base.html:56 -#: order/templates/order/order_base.html:46 -#: order/templates/order/return_order_base.html:55 -#: order/templates/order/sales_order_base.html:55 +#: build/templates/build/build_base.html:57 +#: order/templates/order/order_base.html:47 +#: order/templates/order/return_order_base.html:56 +#: order/templates/order/sales_order_base.html:56 msgid "Print actions" msgstr "" -#: build/templates/build/build_base.html:60 +#: build/templates/build/build_base.html:61 msgid "Print build order report" msgstr "" -#: build/templates/build/build_base.html:67 +#: build/templates/build/build_base.html:68 msgid "Build actions" msgstr "" -#: build/templates/build/build_base.html:71 +#: build/templates/build/build_base.html:72 msgid "Edit Build" msgstr "" -#: build/templates/build/build_base.html:73 +#: build/templates/build/build_base.html:74 msgid "Duplicate Build" msgstr "" -#: build/templates/build/build_base.html:76 +#: build/templates/build/build_base.html:77 msgid "Hold Build" msgstr "" -#: build/templates/build/build_base.html:79 +#: build/templates/build/build_base.html:80 msgid "Cancel Build" msgstr "" -#: build/templates/build/build_base.html:82 +#: build/templates/build/build_base.html:83 msgid "Delete Build" msgstr "" -#: build/templates/build/build_base.html:87 -msgid "Isueue Build" -msgstr "" - #: build/templates/build/build_base.html:88 +#: build/templates/build/build_base.html:89 msgid "Issue Build" msgstr "" -#: build/templates/build/build_base.html:91 #: build/templates/build/build_base.html:92 +#: build/templates/build/build_base.html:93 msgid "Complete Build" msgstr "" -#: build/templates/build/build_base.html:115 +#: build/templates/build/build_base.html:116 msgid "Build Description" msgstr "" -#: build/templates/build/build_base.html:125 +#: build/templates/build/build_base.html:126 msgid "No build outputs have been created for this build order" msgstr "" -#: build/templates/build/build_base.html:132 +#: build/templates/build/build_base.html:133 msgid "Build Order is ready to mark as completed" msgstr "" -#: build/templates/build/build_base.html:137 +#: build/templates/build/build_base.html:138 msgid "Build Order cannot be completed as outstanding outputs remain" msgstr "" -#: build/templates/build/build_base.html:142 +#: build/templates/build/build_base.html:143 msgid "Required build quantity has not yet been completed" msgstr "" -#: build/templates/build/build_base.html:147 +#: build/templates/build/build_base.html:148 msgid "Stock has not been fully allocated to this Build Order" msgstr "" -#: build/templates/build/build_base.html:168 -#: build/templates/build/detail.html:138 order/models.py:308 -#: order/models.py:1391 order/serializers.py:174 -#: order/templates/order/order_base.html:191 -#: order/templates/order/return_order_base.html:167 -#: order/templates/order/sales_order_base.html:199 +#: build/templates/build/build_base.html:169 +#: build/templates/build/detail.html:138 order/models.py:315 +#: order/models.py:1408 order/serializers.py:254 +#: order/templates/order/order_base.html:200 +#: order/templates/order/return_order_base.html:168 +#: order/templates/order/sales_order_base.html:200 #: report/templates/report/inventree_build_order_report.html:125 -#: templates/js/translated/build.js:2411 templates/js/translated/part.js:1837 -#: templates/js/translated/purchase_order.js:1809 -#: templates/js/translated/purchase_order.js:2217 +#: templates/js/translated/build.js:2414 templates/js/translated/part.js:1837 +#: templates/js/translated/purchase_order.js:1793 +#: templates/js/translated/purchase_order.js:2201 #: templates/js/translated/return_order.js:346 #: templates/js/translated/return_order.js:749 -#: templates/js/translated/sales_order.js:871 -#: templates/js/translated/sales_order.js:1903 +#: templates/js/translated/sales_order.js:830 +#: templates/js/translated/sales_order.js:1884 msgid "Target Date" msgstr "" -#: build/templates/build/build_base.html:173 +#: build/templates/build/build_base.html:174 #, python-format msgid "This build was due on %(target)s" msgstr "" -#: build/templates/build/build_base.html:173 -#: build/templates/build/build_base.html:230 -#: order/templates/order/order_base.html:127 -#: order/templates/order/return_order_base.html:120 -#: order/templates/order/sales_order_base.html:129 +#: build/templates/build/build_base.html:174 +#: build/templates/build/build_base.html:231 +#: order/templates/order/order_base.html:128 +#: order/templates/order/return_order_base.html:121 +#: order/templates/order/sales_order_base.html:130 #: templates/js/translated/table_filters.js:97 #: templates/js/translated/table_filters.js:545 #: templates/js/translated/table_filters.js:629 @@ -1910,49 +1935,50 @@ msgstr "" msgid "Overdue" msgstr "" -#: build/templates/build/build_base.html:185 +#: build/templates/build/build_base.html:186 #: build/templates/build/detail.html:67 build/templates/build/sidebar.html:13 msgid "Completed Outputs" msgstr "" -#: build/templates/build/build_base.html:198 -#: build/templates/build/detail.html:101 order/api.py:1406 order/models.py:892 -#: order/models.py:1650 order/models.py:1765 order/models.py:1924 -#: order/templates/order/sales_order_base.html:9 -#: order/templates/order/sales_order_base.html:28 +#: build/templates/build/build_base.html:199 +#: build/templates/build/detail.html:101 order/api.py:1528 order/models.py:914 +#: order/models.py:1666 order/models.py:1794 order/models.py:1957 +#: order/templates/order/sales_order_base.html:10 +#: order/templates/order/sales_order_base.html:29 #: report/templates/report/inventree_build_order_report.html:135 #: report/templates/report/inventree_sales_order_report.html:14 -#: stock/templates/stock/item_base.html:369 +#: report/templates/report/inventree_sales_order_shipment_report.html:15 +#: stock/templates/stock/item_base.html:366 #: templates/email/overdue_sales_order.html:15 -#: templates/js/translated/pricing.js:929 -#: templates/js/translated/sales_order.js:805 -#: templates/js/translated/sales_order.js:1028 -#: templates/js/translated/stock.js:3008 +#: templates/js/translated/pricing.js:927 +#: templates/js/translated/sales_order.js:764 +#: templates/js/translated/sales_order.js:1001 +#: templates/js/translated/stock.js:3009 msgid "Sales Order" msgstr "" -#: build/templates/build/build_base.html:219 -#: build/templates/build/detail.html:94 templates/js/translated/build.js:2328 +#: build/templates/build/build_base.html:220 +#: build/templates/build/detail.html:94 templates/js/translated/build.js:2331 msgid "Priority" msgstr "" -#: build/templates/build/build_base.html:267 +#: build/templates/build/build_base.html:268 msgid "Issue Build Order" msgstr "" -#: build/templates/build/build_base.html:271 +#: build/templates/build/build_base.html:272 msgid "Issue this Build Order?" msgstr "" -#: build/templates/build/build_base.html:302 +#: build/templates/build/build_base.html:303 msgid "Delete Build Order" msgstr "" -#: build/templates/build/build_base.html:312 +#: build/templates/build/build_base.html:313 msgid "Build Order QR Code" msgstr "" -#: build/templates/build/build_base.html:324 +#: build/templates/build/build_base.html:325 msgid "Link Barcode to Build Order" msgstr "" @@ -1968,8 +1994,9 @@ msgstr "" msgid "Stock can be taken from any available location." msgstr "" -#: build/templates/build/detail.html:49 order/models.py:1532 -#: templates/js/translated/purchase_order.js:2259 +#: build/templates/build/detail.html:49 order/models.py:548 +#: order/models.py:1548 order/templates/order/order_base.html:135 +#: templates/js/translated/purchase_order.js:2243 msgid "Destination" msgstr "" @@ -1981,23 +2008,24 @@ msgstr "" msgid "Allocated Parts" msgstr "" -#: build/templates/build/detail.html:80 stock/admin.py:162 -#: stock/templates/stock/item_base.html:162 -#: templates/js/translated/build.js:1553 -#: templates/js/translated/model_renderers.js:242 -#: templates/js/translated/purchase_order.js:1326 +#: build/templates/build/detail.html:80 +#: report/templates/report/inventree_sales_order_shipment_report.html:47 +#: stock/admin.py:163 stock/templates/stock/item_base.html:159 +#: templates/js/translated/build.js:1556 +#: templates/js/translated/model_renderers.js:245 +#: templates/js/translated/purchase_order.js:1309 #: templates/js/translated/stock.js:1139 templates/js/translated/stock.js:1240 -#: templates/js/translated/stock.js:2275 templates/js/translated/stock.js:3211 +#: templates/js/translated/stock.js:2276 templates/js/translated/stock.js:3212 #: templates/js/translated/table_filters.js:320 #: templates/js/translated/table_filters.js:411 msgid "Batch" msgstr "" #: build/templates/build/detail.html:133 -#: order/templates/order/order_base.html:178 -#: order/templates/order/return_order_base.html:154 -#: order/templates/order/sales_order_base.html:193 -#: templates/js/translated/build.js:2371 +#: order/templates/order/order_base.html:187 +#: order/templates/order/return_order_base.html:155 +#: order/templates/order/sales_order_base.html:194 +#: templates/js/translated/build.js:2374 msgid "Created" msgstr "" @@ -2005,8 +2033,8 @@ msgstr "" msgid "No target date set" msgstr "" -#: build/templates/build/detail.html:149 -#: order/templates/order/sales_order_base.html:209 +#: build/templates/build/detail.html:149 order/api.py:794 +#: order/templates/order/sales_order_base.html:210 #: templates/js/translated/table_filters.js:692 msgid "Completed" msgstr "" @@ -2052,7 +2080,7 @@ msgid "Order required parts" msgstr "" #: build/templates/build/detail.html:192 -#: templates/js/translated/purchase_order.js:795 +#: templates/js/translated/purchase_order.js:778 msgid "Order Parts" msgstr "" @@ -2120,7 +2148,7 @@ msgstr "" msgid "Build Order Details" msgstr "" -#: build/templates/build/sidebar.html:8 order/serializers.py:82 +#: build/templates/build/sidebar.html:8 order/serializers.py:113 #: order/templates/order/po_sidebar.html:5 #: order/templates/order/return_order_detail.html:18 #: order/templates/order/so_sidebar.html:5 @@ -2139,43 +2167,38 @@ msgstr "" msgid "Test Statistics" msgstr "" -#: common/api.py:693 +#: common/api.py:725 msgid "Is Link" msgstr "" -#: common/api.py:701 +#: common/api.py:733 msgid "Is File" msgstr "" -#: common/api.py:744 +#: common/api.py:776 msgid "User does not have permission to delete these attachments" msgstr "" -#: common/api.py:761 +#: common/api.py:793 msgid "User does not have permission to delete this attachment" msgstr "" -#: common/currency.py:132 +#: common/currency.py:134 msgid "Invalid currency code" msgstr "" -#: common/currency.py:134 +#: common/currency.py:136 msgid "Duplicate currency code" msgstr "" -#: common/currency.py:139 +#: common/currency.py:141 msgid "No valid currency codes provided" msgstr "" -#: common/currency.py:156 +#: common/currency.py:158 msgid "No plugin" msgstr "" -#: common/files.py:63 -#, python-brace-format -msgid "Unsupported file format: {fmt}" -msgstr "" - #: common/files.py:65 msgid "Error reading file (invalid encoding)" msgstr "" @@ -2192,1883 +2215,2039 @@ msgstr "" msgid "Error reading file (data could be corrupted)" msgstr "" -#: common/forms.py:12 +#: common/forms.py:12 common/forms.py:25 msgid "File" msgstr "" -#: common/forms.py:12 +#: common/forms.py:12 common/forms.py:26 msgid "Select file to upload" msgstr "" -#: common/forms.py:25 -msgid "{name.title()} File" -msgstr "" - -#: common/forms.py:26 -#, python-brace-format -msgid "Select {name} file to upload" -msgstr "" - -#: common/models.py:86 +#: common/models.py:89 msgid "Updated" msgstr "" -#: common/models.py:87 +#: common/models.py:90 msgid "Timestamp of last update" msgstr "" -#: common/models.py:120 +#: common/models.py:123 msgid "Site URL is locked by configuration" msgstr "" -#: common/models.py:150 +#: common/models.py:153 msgid "Unique project code" msgstr "" -#: common/models.py:157 +#: common/models.py:160 msgid "Project description" msgstr "" -#: common/models.py:166 +#: common/models.py:169 msgid "User or group responsible for this project" msgstr "" -#: common/models.py:783 -msgid "Settings key (must be unique - case insensitive)" +#: common/models.py:783 common/models.py:2236 common/models.py:2613 +msgid "Settings key" msgstr "" #: common/models.py:787 msgid "Settings value" msgstr "" -#: common/models.py:839 +#: common/models.py:842 msgid "Chosen value is not a valid option" msgstr "" -#: common/models.py:855 +#: common/models.py:858 msgid "Value must be a boolean value" msgstr "" -#: common/models.py:863 +#: common/models.py:866 msgid "Value must be an integer value" msgstr "" -#: common/models.py:900 +#: common/models.py:874 +msgid "Value must be a valid number" +msgstr "" + +#: common/models.py:899 +msgid "Value does not pass validation checks" +msgstr "" + +#: common/models.py:921 msgid "Key string must be unique" msgstr "" -#: common/models.py:1132 +#: common/models.py:1189 msgid "No group" msgstr "" -#: common/models.py:1231 +#: common/models.py:1288 msgid "Restart required" msgstr "" -#: common/models.py:1233 +#: common/models.py:1290 msgid "A setting has been changed which requires a server restart" msgstr "" -#: common/models.py:1240 +#: common/models.py:1297 msgid "Pending migrations" msgstr "" -#: common/models.py:1241 +#: common/models.py:1298 msgid "Number of pending database migrations" msgstr "" -#: common/models.py:1246 +#: common/models.py:1303 msgid "Server Instance Name" msgstr "" -#: common/models.py:1248 +#: common/models.py:1305 msgid "String descriptor for the server instance" msgstr "" -#: common/models.py:1252 +#: common/models.py:1309 msgid "Use instance name" msgstr "" -#: common/models.py:1253 +#: common/models.py:1310 msgid "Use the instance name in the title-bar" msgstr "" -#: common/models.py:1258 +#: common/models.py:1315 msgid "Restrict showing `about`" msgstr "" -#: common/models.py:1259 +#: common/models.py:1316 msgid "Show the `about` modal only to superusers" msgstr "" -#: common/models.py:1264 company/models.py:111 company/models.py:112 +#: common/models.py:1321 company/models.py:108 company/models.py:109 msgid "Company name" msgstr "" -#: common/models.py:1265 +#: common/models.py:1322 msgid "Internal company name" msgstr "" -#: common/models.py:1269 +#: common/models.py:1326 msgid "Base URL" msgstr "" -#: common/models.py:1270 +#: common/models.py:1327 msgid "Base URL for server instance" msgstr "" -#: common/models.py:1276 +#: common/models.py:1333 msgid "Default Currency" msgstr "" -#: common/models.py:1277 +#: common/models.py:1334 msgid "Select base currency for pricing calculations" msgstr "" -#: common/models.py:1283 +#: common/models.py:1340 msgid "Supported Currencies" msgstr "" -#: common/models.py:1284 +#: common/models.py:1341 msgid "List of supported currency codes" msgstr "" -#: common/models.py:1290 +#: common/models.py:1347 msgid "Currency Update Interval" msgstr "" -#: common/models.py:1292 +#: common/models.py:1349 msgid "How often to update exchange rates (set to zero to disable)" msgstr "" -#: common/models.py:1295 common/models.py:1351 common/models.py:1364 -#: common/models.py:1372 common/models.py:1381 common/models.py:1390 -#: common/models.py:1627 common/models.py:1649 common/models.py:1764 -#: common/models.py:2146 +#: common/models.py:1352 common/models.py:1408 common/models.py:1421 +#: common/models.py:1429 common/models.py:1438 common/models.py:1447 +#: common/models.py:1696 common/models.py:1718 common/models.py:1819 +#: common/models.py:2208 msgid "days" msgstr "" -#: common/models.py:1299 +#: common/models.py:1356 msgid "Currency Update Plugin" msgstr "" -#: common/models.py:1300 +#: common/models.py:1357 msgid "Currency update plugin to use" msgstr "" -#: common/models.py:1305 +#: common/models.py:1362 msgid "Download from URL" msgstr "" -#: common/models.py:1307 +#: common/models.py:1364 msgid "Allow download of remote images and files from external URL" msgstr "" -#: common/models.py:1313 +#: common/models.py:1370 msgid "Download Size Limit" msgstr "" -#: common/models.py:1314 +#: common/models.py:1371 msgid "Maximum allowable download size for remote image" msgstr "" -#: common/models.py:1320 +#: common/models.py:1377 msgid "User-agent used to download from URL" msgstr "" -#: common/models.py:1322 +#: common/models.py:1379 msgid "Allow to override the user-agent used to download images and files from external URL (leave blank for the default)" msgstr "" -#: common/models.py:1327 +#: common/models.py:1384 msgid "Strict URL Validation" msgstr "" -#: common/models.py:1328 +#: common/models.py:1385 msgid "Require schema specification when validating URLs" msgstr "" -#: common/models.py:1333 +#: common/models.py:1390 msgid "Require confirm" msgstr "" -#: common/models.py:1334 +#: common/models.py:1391 msgid "Require explicit user confirmation for certain action." msgstr "" -#: common/models.py:1339 +#: common/models.py:1396 msgid "Tree Depth" msgstr "" -#: common/models.py:1341 +#: common/models.py:1398 msgid "Default tree depth for treeview. Deeper levels can be lazy loaded as they are needed." msgstr "" -#: common/models.py:1347 +#: common/models.py:1404 msgid "Update Check Interval" msgstr "" -#: common/models.py:1348 +#: common/models.py:1405 msgid "How often to check for updates (set to zero to disable)" msgstr "" -#: common/models.py:1354 +#: common/models.py:1411 msgid "Automatic Backup" msgstr "" -#: common/models.py:1355 +#: common/models.py:1412 msgid "Enable automatic backup of database and media files" msgstr "" -#: common/models.py:1360 +#: common/models.py:1417 msgid "Auto Backup Interval" msgstr "" -#: common/models.py:1361 +#: common/models.py:1418 msgid "Specify number of days between automated backup events" msgstr "" -#: common/models.py:1367 +#: common/models.py:1424 msgid "Task Deletion Interval" msgstr "" -#: common/models.py:1369 +#: common/models.py:1426 msgid "Background task results will be deleted after specified number of days" msgstr "" -#: common/models.py:1376 +#: common/models.py:1433 msgid "Error Log Deletion Interval" msgstr "" -#: common/models.py:1378 +#: common/models.py:1435 msgid "Error logs will be deleted after specified number of days" msgstr "" -#: common/models.py:1385 +#: common/models.py:1442 msgid "Notification Deletion Interval" msgstr "" -#: common/models.py:1387 +#: common/models.py:1444 msgid "User notifications will be deleted after specified number of days" msgstr "" -#: common/models.py:1394 templates/InvenTree/settings/sidebar.html:31 +#: common/models.py:1451 templates/InvenTree/settings/sidebar.html:31 msgid "Barcode Support" msgstr "" -#: common/models.py:1395 +#: common/models.py:1452 msgid "Enable barcode scanner support in the web interface" msgstr "" -#: common/models.py:1400 +#: common/models.py:1457 +msgid "Store Barcode Results" +msgstr "" + +#: common/models.py:1458 +msgid "Store barcode scan results in the database" +msgstr "" + +#: common/models.py:1463 +msgid "Barcode Scans Maximum Count" +msgstr "" + +#: common/models.py:1464 +msgid "Maximum number of barcode scan results to store" +msgstr "" + +#: common/models.py:1469 msgid "Barcode Input Delay" msgstr "" -#: common/models.py:1401 +#: common/models.py:1470 msgid "Barcode input processing delay time" msgstr "" -#: common/models.py:1407 +#: common/models.py:1476 msgid "Barcode Webcam Support" msgstr "" -#: common/models.py:1408 +#: common/models.py:1477 msgid "Allow barcode scanning via webcam in browser" msgstr "" -#: common/models.py:1413 +#: common/models.py:1482 msgid "Barcode Show Data" msgstr "" -#: common/models.py:1414 +#: common/models.py:1483 msgid "Display barcode data in browser as text" msgstr "" -#: common/models.py:1419 +#: common/models.py:1488 msgid "Barcode Generation Plugin" msgstr "" -#: common/models.py:1420 +#: common/models.py:1489 msgid "Plugin to use for internal barcode data generation" msgstr "" -#: common/models.py:1425 +#: common/models.py:1494 msgid "Part Revisions" msgstr "" -#: common/models.py:1426 +#: common/models.py:1495 msgid "Enable revision field for Part" msgstr "" -#: common/models.py:1431 +#: common/models.py:1500 msgid "Assembly Revision Only" msgstr "" -#: common/models.py:1432 +#: common/models.py:1501 msgid "Only allow revisions for assembly parts" msgstr "" -#: common/models.py:1437 +#: common/models.py:1506 msgid "Allow Deletion from Assembly" msgstr "" -#: common/models.py:1438 +#: common/models.py:1507 msgid "Allow deletion of parts which are used in an assembly" msgstr "" -#: common/models.py:1443 +#: common/models.py:1512 msgid "IPN Regex" msgstr "" -#: common/models.py:1444 +#: common/models.py:1513 msgid "Regular expression pattern for matching Part IPN" msgstr "" -#: common/models.py:1447 +#: common/models.py:1516 msgid "Allow Duplicate IPN" msgstr "" -#: common/models.py:1448 +#: common/models.py:1517 msgid "Allow multiple parts to share the same IPN" msgstr "" -#: common/models.py:1453 +#: common/models.py:1522 msgid "Allow Editing IPN" msgstr "" -#: common/models.py:1454 +#: common/models.py:1523 msgid "Allow changing the IPN value while editing a part" msgstr "" -#: common/models.py:1459 +#: common/models.py:1528 msgid "Copy Part BOM Data" msgstr "" -#: common/models.py:1460 +#: common/models.py:1529 msgid "Copy BOM data by default when duplicating a part" msgstr "" -#: common/models.py:1465 +#: common/models.py:1534 msgid "Copy Part Parameter Data" msgstr "" -#: common/models.py:1466 +#: common/models.py:1535 msgid "Copy parameter data by default when duplicating a part" msgstr "" -#: common/models.py:1471 +#: common/models.py:1540 msgid "Copy Part Test Data" msgstr "" -#: common/models.py:1472 +#: common/models.py:1541 msgid "Copy test data by default when duplicating a part" msgstr "" -#: common/models.py:1477 +#: common/models.py:1546 msgid "Copy Category Parameter Templates" msgstr "" -#: common/models.py:1478 +#: common/models.py:1547 msgid "Copy category parameter templates when creating a part" msgstr "" -#: common/models.py:1483 part/admin.py:108 part/models.py:3945 -#: report/models.py:293 report/models.py:360 report/serializers.py:90 -#: report/serializers.py:131 stock/serializers.py:232 +#: common/models.py:1552 part/admin.py:108 part/models.py:4003 +#: report/models.py:301 report/models.py:368 report/serializers.py:91 +#: report/serializers.py:132 stock/serializers.py:233 #: templates/js/translated/table_filters.js:138 #: templates/js/translated/table_filters.js:775 msgid "Template" msgstr "" -#: common/models.py:1484 +#: common/models.py:1553 msgid "Parts are templates by default" msgstr "" -#: common/models.py:1490 +#: common/models.py:1559 msgid "Parts can be assembled from other components by default" msgstr "" -#: common/models.py:1495 part/admin.py:95 part/models.py:1160 -#: part/serializers.py:1596 templates/js/translated/table_filters.js:737 +#: common/models.py:1564 part/admin.py:95 part/models.py:1221 +#: part/serializers.py:1654 templates/js/translated/table_filters.js:737 msgid "Component" msgstr "" -#: common/models.py:1496 +#: common/models.py:1565 msgid "Parts can be used as sub-components by default" msgstr "" -#: common/models.py:1501 part/admin.py:100 part/models.py:1178 +#: common/models.py:1570 part/admin.py:100 part/models.py:1239 msgid "Purchaseable" msgstr "" -#: common/models.py:1502 +#: common/models.py:1571 msgid "Parts are purchaseable by default" msgstr "" -#: common/models.py:1507 part/admin.py:104 part/models.py:1184 +#: common/models.py:1576 part/admin.py:104 part/models.py:1245 #: templates/js/translated/table_filters.js:763 msgid "Salable" msgstr "" -#: common/models.py:1508 +#: common/models.py:1577 msgid "Parts are salable by default" msgstr "" -#: common/models.py:1514 +#: common/models.py:1583 msgid "Parts are trackable by default" msgstr "" -#: common/models.py:1519 part/admin.py:117 part/models.py:1200 -#: part/templates/part/part_base.html:154 +#: common/models.py:1588 part/admin.py:117 part/models.py:1261 +#: part/templates/part/part_base.html:155 #: templates/js/translated/table_filters.js:142 #: templates/js/translated/table_filters.js:787 msgid "Virtual" msgstr "" -#: common/models.py:1520 +#: common/models.py:1589 msgid "Parts are virtual by default" msgstr "" -#: common/models.py:1525 +#: common/models.py:1594 msgid "Show Import in Views" msgstr "" -#: common/models.py:1526 +#: common/models.py:1595 msgid "Display the import wizard in some part views" msgstr "" -#: common/models.py:1531 +#: common/models.py:1600 msgid "Show related parts" msgstr "" -#: common/models.py:1532 +#: common/models.py:1601 msgid "Display related parts for a part" msgstr "" -#: common/models.py:1537 +#: common/models.py:1606 msgid "Initial Stock Data" msgstr "" -#: common/models.py:1538 +#: common/models.py:1607 msgid "Allow creation of initial stock when adding a new part" msgstr "" -#: common/models.py:1543 templates/js/translated/part.js:108 +#: common/models.py:1612 templates/js/translated/part.js:108 msgid "Initial Supplier Data" msgstr "" -#: common/models.py:1545 +#: common/models.py:1614 msgid "Allow creation of initial supplier data when adding a new part" msgstr "" -#: common/models.py:1551 +#: common/models.py:1620 msgid "Part Name Display Format" msgstr "" -#: common/models.py:1552 +#: common/models.py:1621 msgid "Format to display the part name" msgstr "" -#: common/models.py:1558 +#: common/models.py:1627 msgid "Part Category Default Icon" msgstr "" -#: common/models.py:1559 +#: common/models.py:1628 msgid "Part category default icon (empty means no icon)" msgstr "" -#: common/models.py:1564 +#: common/models.py:1633 msgid "Enforce Parameter Units" msgstr "" -#: common/models.py:1566 +#: common/models.py:1635 msgid "If units are provided, parameter values must match the specified units" msgstr "" -#: common/models.py:1572 +#: common/models.py:1641 msgid "Minimum Pricing Decimal Places" msgstr "" -#: common/models.py:1574 +#: common/models.py:1643 msgid "Minimum number of decimal places to display when rendering pricing data" msgstr "" -#: common/models.py:1585 +#: common/models.py:1654 msgid "Maximum Pricing Decimal Places" msgstr "" -#: common/models.py:1587 +#: common/models.py:1656 msgid "Maximum number of decimal places to display when rendering pricing data" msgstr "" -#: common/models.py:1598 +#: common/models.py:1667 msgid "Use Supplier Pricing" msgstr "" -#: common/models.py:1600 +#: common/models.py:1669 msgid "Include supplier price breaks in overall pricing calculations" msgstr "" -#: common/models.py:1606 +#: common/models.py:1675 msgid "Purchase History Override" msgstr "" -#: common/models.py:1608 +#: common/models.py:1677 msgid "Historical purchase order pricing overrides supplier price breaks" msgstr "" -#: common/models.py:1614 +#: common/models.py:1683 msgid "Use Stock Item Pricing" msgstr "" -#: common/models.py:1616 +#: common/models.py:1685 msgid "Use pricing from manually entered stock data for pricing calculations" msgstr "" -#: common/models.py:1622 +#: common/models.py:1691 msgid "Stock Item Pricing Age" msgstr "" -#: common/models.py:1624 +#: common/models.py:1693 msgid "Exclude stock items older than this number of days from pricing calculations" msgstr "" -#: common/models.py:1631 +#: common/models.py:1700 msgid "Use Variant Pricing" msgstr "" -#: common/models.py:1632 +#: common/models.py:1701 msgid "Include variant pricing in overall pricing calculations" msgstr "" -#: common/models.py:1637 +#: common/models.py:1706 msgid "Active Variants Only" msgstr "" -#: common/models.py:1639 +#: common/models.py:1708 msgid "Only use active variant parts for calculating variant pricing" msgstr "" -#: common/models.py:1645 +#: common/models.py:1714 msgid "Pricing Rebuild Interval" msgstr "" -#: common/models.py:1647 +#: common/models.py:1716 msgid "Number of days before part pricing is automatically updated" msgstr "" -#: common/models.py:1654 +#: common/models.py:1723 msgid "Internal Prices" msgstr "" -#: common/models.py:1655 +#: common/models.py:1724 msgid "Enable internal prices for parts" msgstr "" -#: common/models.py:1660 +#: common/models.py:1729 msgid "Internal Price Override" msgstr "" -#: common/models.py:1662 +#: common/models.py:1731 msgid "If available, internal prices override price range calculations" msgstr "" -#: common/models.py:1668 +#: common/models.py:1737 msgid "Enable label printing" msgstr "" -#: common/models.py:1669 +#: common/models.py:1738 msgid "Enable label printing from the web interface" msgstr "" -#: common/models.py:1674 +#: common/models.py:1743 msgid "Label Image DPI" msgstr "" -#: common/models.py:1676 +#: common/models.py:1745 msgid "DPI resolution when generating image files to supply to label printing plugins" msgstr "" -#: common/models.py:1682 +#: common/models.py:1751 msgid "Enable Reports" msgstr "" -#: common/models.py:1683 +#: common/models.py:1752 msgid "Enable generation of reports" msgstr "" -#: common/models.py:1688 templates/stats.html:25 +#: common/models.py:1757 templates/stats.html:25 msgid "Debug Mode" msgstr "" -#: common/models.py:1689 +#: common/models.py:1758 msgid "Generate reports in debug mode (HTML output)" msgstr "" -#: common/models.py:1694 +#: common/models.py:1763 msgid "Log Report Errors" msgstr "" -#: common/models.py:1695 +#: common/models.py:1764 msgid "Log errors which occur when generating reports" msgstr "" -#: common/models.py:1700 plugin/builtin/labels/label_sheet.py:28 -#: report/models.py:301 +#: common/models.py:1769 plugin/builtin/labels/label_sheet.py:28 +#: report/models.py:309 msgid "Page Size" msgstr "" -#: common/models.py:1701 +#: common/models.py:1770 msgid "Default page size for PDF reports" msgstr "" -#: common/models.py:1706 -msgid "Enable Test Reports" -msgstr "" - -#: common/models.py:1707 -msgid "Enable generation of test reports" -msgstr "" - -#: common/models.py:1712 -msgid "Attach Test Reports" -msgstr "" - -#: common/models.py:1714 -msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item" -msgstr "" - -#: common/models.py:1720 +#: common/models.py:1775 msgid "Globally Unique Serials" msgstr "" -#: common/models.py:1721 +#: common/models.py:1776 msgid "Serial numbers for stock items must be globally unique" msgstr "" -#: common/models.py:1726 +#: common/models.py:1781 msgid "Autofill Serial Numbers" msgstr "" -#: common/models.py:1727 +#: common/models.py:1782 msgid "Autofill serial numbers in forms" msgstr "" -#: common/models.py:1732 +#: common/models.py:1787 msgid "Delete Depleted Stock" msgstr "" -#: common/models.py:1734 +#: common/models.py:1789 msgid "Determines default behavior when a stock item is depleted" msgstr "" -#: common/models.py:1740 +#: common/models.py:1795 msgid "Batch Code Template" msgstr "" -#: common/models.py:1742 +#: common/models.py:1797 msgid "Template for generating default batch codes for stock items" msgstr "" -#: common/models.py:1747 +#: common/models.py:1802 msgid "Stock Expiry" msgstr "" -#: common/models.py:1748 +#: common/models.py:1803 msgid "Enable stock expiry functionality" msgstr "" -#: common/models.py:1753 +#: common/models.py:1808 msgid "Sell Expired Stock" msgstr "" -#: common/models.py:1754 +#: common/models.py:1809 msgid "Allow sale of expired stock" msgstr "" -#: common/models.py:1759 +#: common/models.py:1814 msgid "Stock Stale Time" msgstr "" -#: common/models.py:1761 +#: common/models.py:1816 msgid "Number of days stock items are considered stale before expiring" msgstr "" -#: common/models.py:1768 +#: common/models.py:1823 msgid "Build Expired Stock" msgstr "" -#: common/models.py:1769 +#: common/models.py:1824 msgid "Allow building with expired stock" msgstr "" -#: common/models.py:1774 +#: common/models.py:1829 msgid "Stock Ownership Control" msgstr "" -#: common/models.py:1775 +#: common/models.py:1830 msgid "Enable ownership control over stock locations and items" msgstr "" -#: common/models.py:1780 +#: common/models.py:1835 msgid "Stock Location Default Icon" msgstr "" -#: common/models.py:1781 +#: common/models.py:1836 msgid "Stock location default icon (empty means no icon)" msgstr "" -#: common/models.py:1786 +#: common/models.py:1841 msgid "Show Installed Stock Items" msgstr "" -#: common/models.py:1787 +#: common/models.py:1842 msgid "Display installed stock items in stock tables" msgstr "" -#: common/models.py:1792 +#: common/models.py:1847 msgid "Check BOM when installing items" msgstr "" -#: common/models.py:1794 +#: common/models.py:1849 msgid "Installed stock items must exist in the BOM for the parent part" msgstr "" -#: common/models.py:1800 +#: common/models.py:1855 msgid "Allow Out of Stock Transfer" msgstr "" -#: common/models.py:1802 +#: common/models.py:1857 msgid "Allow stock items which are not in stock to be transferred between stock locations" msgstr "" -#: common/models.py:1808 +#: common/models.py:1863 msgid "Build Order Reference Pattern" msgstr "" -#: common/models.py:1810 +#: common/models.py:1865 msgid "Required pattern for generating Build Order reference field" msgstr "" -#: common/models.py:1816 common/models.py:1872 common/models.py:1894 -#: common/models.py:1930 +#: common/models.py:1871 common/models.py:1927 common/models.py:1949 +#: common/models.py:1985 msgid "Require Responsible Owner" msgstr "" -#: common/models.py:1817 common/models.py:1873 common/models.py:1895 -#: common/models.py:1931 +#: common/models.py:1872 common/models.py:1928 common/models.py:1950 +#: common/models.py:1986 msgid "A responsible owner must be assigned to each order" msgstr "" -#: common/models.py:1822 +#: common/models.py:1877 msgid "Require Active Part" msgstr "" -#: common/models.py:1823 +#: common/models.py:1878 msgid "Prevent build order creation for inactive parts" msgstr "" -#: common/models.py:1828 +#: common/models.py:1883 msgid "Require Locked Part" msgstr "" -#: common/models.py:1829 +#: common/models.py:1884 msgid "Prevent build order creation for unlocked parts" msgstr "" -#: common/models.py:1834 +#: common/models.py:1889 msgid "Require Valid BOM" msgstr "" -#: common/models.py:1836 +#: common/models.py:1891 msgid "Prevent build order creation unless BOM has been validated" msgstr "" -#: common/models.py:1842 +#: common/models.py:1897 msgid "Require Closed Child Orders" msgstr "" -#: common/models.py:1844 +#: common/models.py:1899 msgid "Prevent build order completion until all child orders are closed" msgstr "" -#: common/models.py:1850 +#: common/models.py:1905 msgid "Block Until Tests Pass" msgstr "" -#: common/models.py:1852 +#: common/models.py:1907 msgid "Prevent build outputs from being completed until all required tests pass" msgstr "" -#: common/models.py:1858 +#: common/models.py:1913 msgid "Enable Return Orders" msgstr "" -#: common/models.py:1859 +#: common/models.py:1914 msgid "Enable return order functionality in the user interface" msgstr "" -#: common/models.py:1864 +#: common/models.py:1919 msgid "Return Order Reference Pattern" msgstr "" -#: common/models.py:1866 +#: common/models.py:1921 msgid "Required pattern for generating Return Order reference field" msgstr "" -#: common/models.py:1878 +#: common/models.py:1933 msgid "Edit Completed Return Orders" msgstr "" -#: common/models.py:1880 +#: common/models.py:1935 msgid "Allow editing of return orders after they have been completed" msgstr "" -#: common/models.py:1886 +#: common/models.py:1941 msgid "Sales Order Reference Pattern" msgstr "" -#: common/models.py:1888 +#: common/models.py:1943 msgid "Required pattern for generating Sales Order reference field" msgstr "" -#: common/models.py:1900 +#: common/models.py:1955 msgid "Sales Order Default Shipment" msgstr "" -#: common/models.py:1901 +#: common/models.py:1956 msgid "Enable creation of default shipment with sales orders" msgstr "" -#: common/models.py:1906 +#: common/models.py:1961 msgid "Edit Completed Sales Orders" msgstr "" -#: common/models.py:1908 +#: common/models.py:1963 msgid "Allow editing of sales orders after they have been shipped or completed" msgstr "" -#: common/models.py:1914 +#: common/models.py:1969 msgid "Mark Shipped Orders as Complete" msgstr "" -#: common/models.py:1916 +#: common/models.py:1971 msgid "Sales orders marked as shipped will automatically be completed, bypassing the \"shipped\" status" msgstr "" -#: common/models.py:1922 +#: common/models.py:1977 msgid "Purchase Order Reference Pattern" msgstr "" -#: common/models.py:1924 +#: common/models.py:1979 msgid "Required pattern for generating Purchase Order reference field" msgstr "" -#: common/models.py:1936 +#: common/models.py:1991 msgid "Edit Completed Purchase Orders" msgstr "" -#: common/models.py:1938 +#: common/models.py:1993 msgid "Allow editing of purchase orders after they have been shipped or completed" msgstr "" -#: common/models.py:1944 +#: common/models.py:1999 msgid "Auto Complete Purchase Orders" msgstr "" -#: common/models.py:1946 +#: common/models.py:2001 msgid "Automatically mark purchase orders as complete when all line items are received" msgstr "" -#: common/models.py:1953 +#: common/models.py:2008 msgid "Enable password forgot" msgstr "" -#: common/models.py:1954 +#: common/models.py:2009 msgid "Enable password forgot function on the login pages" msgstr "" -#: common/models.py:1959 +#: common/models.py:2014 msgid "Enable registration" msgstr "" -#: common/models.py:1960 +#: common/models.py:2015 msgid "Enable self-registration for users on the login pages" msgstr "" -#: common/models.py:1965 +#: common/models.py:2020 msgid "Enable SSO" msgstr "" -#: common/models.py:1966 +#: common/models.py:2021 msgid "Enable SSO on the login pages" msgstr "" -#: common/models.py:1971 +#: common/models.py:2026 msgid "Enable SSO registration" msgstr "" -#: common/models.py:1973 +#: common/models.py:2028 msgid "Enable self-registration via SSO for users on the login pages" msgstr "" -#: common/models.py:1979 +#: common/models.py:2034 msgid "Enable SSO group sync" msgstr "" -#: common/models.py:1981 +#: common/models.py:2036 msgid "Enable synchronizing InvenTree groups with groups provided by the IdP" msgstr "" -#: common/models.py:1987 +#: common/models.py:2042 msgid "SSO group key" msgstr "" -#: common/models.py:1989 +#: common/models.py:2044 msgid "The name of the groups claim attribute provided by the IdP" msgstr "" -#: common/models.py:1995 +#: common/models.py:2050 msgid "SSO group map" msgstr "" -#: common/models.py:1997 +#: common/models.py:2052 msgid "A mapping from SSO groups to local InvenTree groups. If the local group does not exist, it will be created." msgstr "" -#: common/models.py:2003 +#: common/models.py:2058 msgid "Remove groups outside of SSO" msgstr "" -#: common/models.py:2005 +#: common/models.py:2060 msgid "Whether groups assigned to the user should be removed if they are not backend by the IdP. Disabling this setting might cause security issues" msgstr "" -#: common/models.py:2011 +#: common/models.py:2066 msgid "Email required" msgstr "" -#: common/models.py:2012 +#: common/models.py:2067 msgid "Require user to supply mail on signup" msgstr "" -#: common/models.py:2017 +#: common/models.py:2072 msgid "Auto-fill SSO users" msgstr "" -#: common/models.py:2019 +#: common/models.py:2074 msgid "Automatically fill out user-details from SSO account-data" msgstr "" -#: common/models.py:2025 +#: common/models.py:2080 msgid "Mail twice" msgstr "" -#: common/models.py:2026 +#: common/models.py:2081 msgid "On signup ask users twice for their mail" msgstr "" -#: common/models.py:2031 +#: common/models.py:2086 msgid "Password twice" msgstr "" -#: common/models.py:2032 +#: common/models.py:2087 msgid "On signup ask users twice for their password" msgstr "" -#: common/models.py:2037 +#: common/models.py:2092 msgid "Allowed domains" msgstr "" -#: common/models.py:2039 +#: common/models.py:2094 msgid "Restrict signup to certain domains (comma-separated, starting with @)" msgstr "" -#: common/models.py:2045 +#: common/models.py:2100 msgid "Group on signup" msgstr "" -#: common/models.py:2047 +#: common/models.py:2102 msgid "Group to which new users are assigned on registration. If SSO group sync is enabled, this group is only set if no group can be assigned from the IdP." msgstr "" -#: common/models.py:2053 +#: common/models.py:2108 msgid "Enforce MFA" msgstr "" -#: common/models.py:2054 +#: common/models.py:2109 msgid "Users must use multifactor security." msgstr "" -#: common/models.py:2059 +#: common/models.py:2114 msgid "Check plugins on startup" msgstr "" -#: common/models.py:2061 +#: common/models.py:2116 msgid "Check that all plugins are installed on startup - enable in container environments" msgstr "" -#: common/models.py:2069 +#: common/models.py:2124 msgid "Check for plugin updates" msgstr "" -#: common/models.py:2070 +#: common/models.py:2125 msgid "Enable periodic checks for updates to installed plugins" msgstr "" -#: common/models.py:2076 +#: common/models.py:2131 msgid "Enable URL integration" msgstr "" -#: common/models.py:2077 +#: common/models.py:2132 msgid "Enable plugins to add URL routes" msgstr "" -#: common/models.py:2083 +#: common/models.py:2138 msgid "Enable navigation integration" msgstr "" -#: common/models.py:2084 +#: common/models.py:2139 msgid "Enable plugins to integrate into navigation" msgstr "" -#: common/models.py:2090 +#: common/models.py:2145 msgid "Enable app integration" msgstr "" -#: common/models.py:2091 +#: common/models.py:2146 msgid "Enable plugins to add apps" msgstr "" -#: common/models.py:2097 +#: common/models.py:2152 msgid "Enable schedule integration" msgstr "" -#: common/models.py:2098 +#: common/models.py:2153 msgid "Enable plugins to run scheduled tasks" msgstr "" -#: common/models.py:2104 +#: common/models.py:2159 msgid "Enable event integration" msgstr "" -#: common/models.py:2105 +#: common/models.py:2160 msgid "Enable plugins to respond to internal events" msgstr "" -#: common/models.py:2111 +#: common/models.py:2166 +msgid "Enable interface integration" +msgstr "" + +#: common/models.py:2167 +msgid "Enable plugins to integrate into the user interface" +msgstr "" + +#: common/models.py:2173 msgid "Enable project codes" msgstr "" -#: common/models.py:2112 +#: common/models.py:2174 msgid "Enable project codes for tracking projects" msgstr "" -#: common/models.py:2117 +#: common/models.py:2179 msgid "Stocktake Functionality" msgstr "" -#: common/models.py:2119 +#: common/models.py:2181 msgid "Enable stocktake functionality for recording stock levels and calculating stock value" msgstr "" -#: common/models.py:2125 +#: common/models.py:2187 msgid "Exclude External Locations" msgstr "" -#: common/models.py:2127 +#: common/models.py:2189 msgid "Exclude stock items in external locations from stocktake calculations" msgstr "" -#: common/models.py:2133 +#: common/models.py:2195 msgid "Automatic Stocktake Period" msgstr "" -#: common/models.py:2135 +#: common/models.py:2197 msgid "Number of days between automatic stocktake recording (set to zero to disable)" msgstr "" -#: common/models.py:2141 +#: common/models.py:2203 msgid "Report Deletion Interval" msgstr "" -#: common/models.py:2143 +#: common/models.py:2205 msgid "Stocktake reports will be deleted after specified number of days" msgstr "" -#: common/models.py:2150 +#: common/models.py:2212 msgid "Display Users full names" msgstr "" -#: common/models.py:2151 +#: common/models.py:2213 msgid "Display Users full names instead of usernames" msgstr "" -#: common/models.py:2156 +#: common/models.py:2218 msgid "Enable Test Station Data" msgstr "" -#: common/models.py:2157 +#: common/models.py:2219 msgid "Enable test station data collection for test results" msgstr "" -#: common/models.py:2169 common/models.py:2549 -msgid "Settings key (must be unique - case insensitive" -msgstr "" - -#: common/models.py:2212 -msgid "Hide inactive parts" -msgstr "" - -#: common/models.py:2214 -msgid "Hide inactive parts in results displayed on the homepage" -msgstr "" - -#: common/models.py:2220 -msgid "Show subscribed parts" -msgstr "" - -#: common/models.py:2221 -msgid "Show subscribed parts on the homepage" +#: common/models.py:2224 +msgid "Create Template on Upload" msgstr "" #: common/models.py:2226 -msgid "Show subscribed categories" +msgid "Create a new test template when uploading test data which does not match an existing template" msgstr "" -#: common/models.py:2227 -msgid "Show subscribed part categories on the homepage" -msgstr "" - -#: common/models.py:2232 -msgid "Show latest parts" -msgstr "" - -#: common/models.py:2233 -msgid "Show latest parts on the homepage" -msgstr "" - -#: common/models.py:2238 -msgid "Show invalid BOMs" -msgstr "" - -#: common/models.py:2239 -msgid "Show BOMs that await validation on the homepage" -msgstr "" - -#: common/models.py:2244 -msgid "Show recent stock changes" -msgstr "" - -#: common/models.py:2245 -msgid "Show recently changed stock items on the homepage" -msgstr "" - -#: common/models.py:2250 -msgid "Show low stock" -msgstr "" - -#: common/models.py:2251 -msgid "Show low stock items on the homepage" -msgstr "" - -#: common/models.py:2256 -msgid "Show depleted stock" -msgstr "" - -#: common/models.py:2257 -msgid "Show depleted stock items on the homepage" -msgstr "" - -#: common/models.py:2262 -msgid "Show needed stock" -msgstr "" - -#: common/models.py:2263 -msgid "Show stock items needed for builds on the homepage" -msgstr "" - -#: common/models.py:2268 -msgid "Show expired stock" -msgstr "" - -#: common/models.py:2269 -msgid "Show expired stock items on the homepage" -msgstr "" - -#: common/models.py:2274 -msgid "Show stale stock" -msgstr "" - -#: common/models.py:2275 -msgid "Show stale stock items on the homepage" -msgstr "" - -#: common/models.py:2280 -msgid "Show pending builds" +#: common/models.py:2279 +msgid "Hide inactive parts" msgstr "" #: common/models.py:2281 -msgid "Show pending builds on the homepage" -msgstr "" - -#: common/models.py:2286 -msgid "Show overdue builds" +msgid "Hide inactive parts in results displayed on the homepage" msgstr "" #: common/models.py:2287 -msgid "Show overdue builds on the homepage" +msgid "Show subscribed parts" msgstr "" -#: common/models.py:2292 -msgid "Show outstanding POs" +#: common/models.py:2288 +msgid "Show subscribed parts on the homepage" msgstr "" #: common/models.py:2293 -msgid "Show outstanding POs on the homepage" +msgid "Show subscribed categories" msgstr "" -#: common/models.py:2298 -msgid "Show overdue POs" +#: common/models.py:2294 +msgid "Show subscribed part categories on the homepage" msgstr "" #: common/models.py:2299 -msgid "Show overdue POs on the homepage" +msgid "Show latest parts" msgstr "" -#: common/models.py:2304 -msgid "Show outstanding SOs" +#: common/models.py:2300 +msgid "Show latest parts on the homepage" msgstr "" #: common/models.py:2305 -msgid "Show outstanding SOs on the homepage" +msgid "Show invalid BOMs" msgstr "" -#: common/models.py:2310 -msgid "Show overdue SOs" +#: common/models.py:2306 +msgid "Show BOMs that await validation on the homepage" msgstr "" #: common/models.py:2311 -msgid "Show overdue SOs on the homepage" +msgid "Show recent stock changes" msgstr "" -#: common/models.py:2316 -msgid "Show pending SO shipments" +#: common/models.py:2312 +msgid "Show recently changed stock items on the homepage" msgstr "" #: common/models.py:2317 -msgid "Show pending SO shipments on the homepage" +msgid "Show low stock" msgstr "" -#: common/models.py:2322 -msgid "Show News" +#: common/models.py:2318 +msgid "Show low stock items on the homepage" msgstr "" #: common/models.py:2323 -msgid "Show news on the homepage" +msgid "Show depleted stock" msgstr "" -#: common/models.py:2328 -msgid "Inline label display" +#: common/models.py:2324 +msgid "Show depleted stock items on the homepage" +msgstr "" + +#: common/models.py:2329 +msgid "Show needed stock" msgstr "" #: common/models.py:2330 -msgid "Display PDF labels in the browser, instead of downloading as a file" +msgid "Show stock items needed for builds on the homepage" +msgstr "" + +#: common/models.py:2335 +msgid "Show expired stock" msgstr "" #: common/models.py:2336 -msgid "Default label printer" +msgid "Show expired stock items on the homepage" msgstr "" -#: common/models.py:2338 -msgid "Configure which label printer should be selected by default" +#: common/models.py:2341 +msgid "Show stale stock" msgstr "" -#: common/models.py:2344 -msgid "Inline report display" +#: common/models.py:2342 +msgid "Show stale stock items on the homepage" msgstr "" -#: common/models.py:2346 -msgid "Display PDF reports in the browser, instead of downloading as a file" +#: common/models.py:2347 +msgid "Show pending builds" msgstr "" -#: common/models.py:2352 -msgid "Search Parts" +#: common/models.py:2348 +msgid "Show pending builds on the homepage" msgstr "" #: common/models.py:2353 -msgid "Display parts in search preview window" +msgid "Show overdue builds" msgstr "" -#: common/models.py:2358 -msgid "Search Supplier Parts" +#: common/models.py:2354 +msgid "Show overdue builds on the homepage" msgstr "" #: common/models.py:2359 -msgid "Display supplier parts in search preview window" +msgid "Show outstanding POs" msgstr "" -#: common/models.py:2364 -msgid "Search Manufacturer Parts" +#: common/models.py:2360 +msgid "Show outstanding POs on the homepage" msgstr "" #: common/models.py:2365 -msgid "Display manufacturer parts in search preview window" +msgid "Show overdue POs" msgstr "" -#: common/models.py:2370 -msgid "Hide Inactive Parts" +#: common/models.py:2366 +msgid "Show overdue POs on the homepage" msgstr "" #: common/models.py:2371 -msgid "Excluded inactive parts from search preview window" +msgid "Show outstanding SOs" msgstr "" -#: common/models.py:2376 -msgid "Search Categories" +#: common/models.py:2372 +msgid "Show outstanding SOs on the homepage" msgstr "" #: common/models.py:2377 -msgid "Display part categories in search preview window" +msgid "Show overdue SOs" msgstr "" -#: common/models.py:2382 -msgid "Search Stock" +#: common/models.py:2378 +msgid "Show overdue SOs on the homepage" msgstr "" #: common/models.py:2383 -msgid "Display stock items in search preview window" +msgid "Show pending SO shipments" msgstr "" -#: common/models.py:2388 -msgid "Hide Unavailable Stock Items" +#: common/models.py:2384 +msgid "Show pending SO shipments on the homepage" +msgstr "" + +#: common/models.py:2389 +msgid "Show News" msgstr "" #: common/models.py:2390 -msgid "Exclude stock items which are not available from the search preview window" +msgid "Show news on the homepage" msgstr "" -#: common/models.py:2396 -msgid "Search Locations" +#: common/models.py:2395 +msgid "Inline label display" msgstr "" #: common/models.py:2397 -msgid "Display stock locations in search preview window" -msgstr "" - -#: common/models.py:2402 -msgid "Search Companies" +msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "" #: common/models.py:2403 -msgid "Display companies in search preview window" +msgid "Default label printer" msgstr "" -#: common/models.py:2408 -msgid "Search Build Orders" +#: common/models.py:2405 +msgid "Configure which label printer should be selected by default" msgstr "" -#: common/models.py:2409 -msgid "Display build orders in search preview window" +#: common/models.py:2411 +msgid "Inline report display" msgstr "" -#: common/models.py:2414 -msgid "Search Purchase Orders" +#: common/models.py:2413 +msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:2415 -msgid "Display purchase orders in search preview window" +#: common/models.py:2419 +msgid "Search Parts" msgstr "" #: common/models.py:2420 -msgid "Exclude Inactive Purchase Orders" +msgid "Display parts in search preview window" msgstr "" -#: common/models.py:2422 -msgid "Exclude inactive purchase orders from search preview window" +#: common/models.py:2425 +msgid "Search Supplier Parts" msgstr "" -#: common/models.py:2428 -msgid "Search Sales Orders" +#: common/models.py:2426 +msgid "Display supplier parts in search preview window" msgstr "" -#: common/models.py:2429 -msgid "Display sales orders in search preview window" +#: common/models.py:2431 +msgid "Search Manufacturer Parts" msgstr "" -#: common/models.py:2434 -msgid "Exclude Inactive Sales Orders" +#: common/models.py:2432 +msgid "Display manufacturer parts in search preview window" msgstr "" -#: common/models.py:2436 -msgid "Exclude inactive sales orders from search preview window" +#: common/models.py:2437 +msgid "Hide Inactive Parts" msgstr "" -#: common/models.py:2442 -msgid "Search Return Orders" +#: common/models.py:2438 +msgid "Excluded inactive parts from search preview window" msgstr "" #: common/models.py:2443 -msgid "Display return orders in search preview window" +msgid "Search Categories" msgstr "" -#: common/models.py:2448 -msgid "Exclude Inactive Return Orders" +#: common/models.py:2444 +msgid "Display part categories in search preview window" +msgstr "" + +#: common/models.py:2449 +msgid "Search Stock" msgstr "" #: common/models.py:2450 -msgid "Exclude inactive return orders from search preview window" +msgid "Display stock items in search preview window" msgstr "" -#: common/models.py:2456 -msgid "Search Preview Results" +#: common/models.py:2455 +msgid "Hide Unavailable Stock Items" msgstr "" -#: common/models.py:2458 -msgid "Number of results to show in each section of the search preview window" +#: common/models.py:2457 +msgid "Exclude stock items which are not available from the search preview window" +msgstr "" + +#: common/models.py:2463 +msgid "Search Locations" msgstr "" #: common/models.py:2464 -msgid "Regex Search" +msgid "Display stock locations in search preview window" msgstr "" -#: common/models.py:2465 -msgid "Enable regular expressions in search queries" +#: common/models.py:2469 +msgid "Search Companies" msgstr "" #: common/models.py:2470 -msgid "Whole Word Search" +msgid "Display companies in search preview window" msgstr "" -#: common/models.py:2471 -msgid "Search queries return results for whole word matches" +#: common/models.py:2475 +msgid "Search Build Orders" msgstr "" #: common/models.py:2476 -msgid "Show Quantity in Forms" +msgid "Display build orders in search preview window" msgstr "" -#: common/models.py:2477 -msgid "Display available part quantity in some forms" +#: common/models.py:2481 +msgid "Search Purchase Orders" msgstr "" #: common/models.py:2482 -msgid "Escape Key Closes Forms" +msgid "Display purchase orders in search preview window" msgstr "" -#: common/models.py:2483 -msgid "Use the escape key to close modal forms" -msgstr "" - -#: common/models.py:2488 -msgid "Fixed Navbar" +#: common/models.py:2487 +msgid "Exclude Inactive Purchase Orders" msgstr "" #: common/models.py:2489 -msgid "The navbar position is fixed to the top of the screen" -msgstr "" - -#: common/models.py:2494 -msgid "Date Format" +msgid "Exclude inactive purchase orders from search preview window" msgstr "" #: common/models.py:2495 -msgid "Preferred format for displaying dates" +msgid "Search Sales Orders" msgstr "" -#: common/models.py:2508 part/templates/part/detail.html:41 -msgid "Part Scheduling" +#: common/models.py:2496 +msgid "Display sales orders in search preview window" +msgstr "" + +#: common/models.py:2501 +msgid "Exclude Inactive Sales Orders" +msgstr "" + +#: common/models.py:2503 +msgid "Exclude inactive sales orders from search preview window" msgstr "" #: common/models.py:2509 -msgid "Display part scheduling information" +msgid "Search Return Orders" msgstr "" -#: common/models.py:2514 part/templates/part/detail.html:62 -msgid "Part Stocktake" +#: common/models.py:2510 +msgid "Display return orders in search preview window" msgstr "" -#: common/models.py:2516 -msgid "Display part stocktake information (if stocktake functionality is enabled)" +#: common/models.py:2515 +msgid "Exclude Inactive Return Orders" msgstr "" -#: common/models.py:2522 -msgid "Table String Length" +#: common/models.py:2517 +msgid "Exclude inactive return orders from search preview window" msgstr "" -#: common/models.py:2524 -msgid "Maximum length limit for strings displayed in table views" +#: common/models.py:2523 +msgid "Search Preview Results" msgstr "" -#: common/models.py:2530 -msgid "Receive error reports" +#: common/models.py:2525 +msgid "Number of results to show in each section of the search preview window" msgstr "" #: common/models.py:2531 -msgid "Receive notifications for system errors" +msgid "Regex Search" msgstr "" -#: common/models.py:2536 -msgid "Last used printing machines" +#: common/models.py:2532 +msgid "Enable regular expressions in search queries" msgstr "" #: common/models.py:2537 +msgid "Whole Word Search" +msgstr "" + +#: common/models.py:2538 +msgid "Search queries return results for whole word matches" +msgstr "" + +#: common/models.py:2543 +msgid "Show Quantity in Forms" +msgstr "" + +#: common/models.py:2544 +msgid "Display available part quantity in some forms" +msgstr "" + +#: common/models.py:2549 +msgid "Escape Key Closes Forms" +msgstr "" + +#: common/models.py:2550 +msgid "Use the escape key to close modal forms" +msgstr "" + +#: common/models.py:2555 +msgid "Fixed Navbar" +msgstr "" + +#: common/models.py:2556 +msgid "The navbar position is fixed to the top of the screen" +msgstr "" + +#: common/models.py:2561 +msgid "Date Format" +msgstr "" + +#: common/models.py:2562 +msgid "Preferred format for displaying dates" +msgstr "" + +#: common/models.py:2575 part/templates/part/detail.html:41 +msgid "Part Scheduling" +msgstr "" + +#: common/models.py:2576 +msgid "Display part scheduling information" +msgstr "" + +#: common/models.py:2581 part/templates/part/detail.html:62 +msgid "Part Stocktake" +msgstr "" + +#: common/models.py:2583 +msgid "Display part stocktake information (if stocktake functionality is enabled)" +msgstr "" + +#: common/models.py:2589 +msgid "Table String Length" +msgstr "" + +#: common/models.py:2591 +msgid "Maximum length limit for strings displayed in table views" +msgstr "" + +#: common/models.py:2597 +msgid "Receive error reports" +msgstr "" + +#: common/models.py:2598 +msgid "Receive notifications for system errors" +msgstr "" + +#: common/models.py:2603 +msgid "Last used printing machines" +msgstr "" + +#: common/models.py:2604 msgid "Save the last used printing machines for a user" msgstr "" -#: common/models.py:2557 common/models.py:2558 common/models.py:2715 -#: common/models.py:2716 common/models.py:2961 common/models.py:2962 -#: common/models.py:3288 common/models.py:3289 importer/models.py:88 -#: part/models.py:3307 part/models.py:3394 part/models.py:3468 -#: part/models.py:3496 plugin/models.py:274 plugin/models.py:275 -#: report/templates/report/inventree_test_report.html:105 -#: templates/js/translated/stock.js:3120 users/models.py:111 +#: common/models.py:2621 common/models.py:2622 common/models.py:2779 +#: common/models.py:2780 common/models.py:3025 common/models.py:3026 +#: common/models.py:3349 common/models.py:3350 common/models.py:3534 +#: importer/models.py:89 part/models.py:3358 part/models.py:3445 +#: part/models.py:3519 part/models.py:3547 plugin/models.py:313 +#: plugin/models.py:314 report/templates/report/inventree_test_report.html:105 +#: templates/js/translated/stock.js:3121 users/models.py:111 msgid "User" msgstr "Потребител" -#: common/models.py:2580 +#: common/models.py:2644 msgid "Price break quantity" msgstr "" -#: common/models.py:2587 company/serializers.py:513 order/admin.py:42 -#: order/models.py:1430 order/models.py:2417 -#: templates/js/translated/company.js:1823 templates/js/translated/part.js:1892 +#: common/models.py:2651 company/serializers.py:524 order/admin.py:42 +#: order/models.py:1447 order/models.py:2456 +#: templates/js/translated/company.js:1824 templates/js/translated/part.js:1892 #: templates/js/translated/pricing.js:621 #: templates/js/translated/return_order.js:739 msgid "Price" msgstr "" -#: common/models.py:2588 +#: common/models.py:2652 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:2692 common/models.py:2877 +#: common/models.py:2756 common/models.py:2941 msgid "Endpoint" msgstr "" -#: common/models.py:2693 +#: common/models.py:2757 msgid "Endpoint at which this webhook is received" msgstr "" -#: common/models.py:2703 +#: common/models.py:2767 msgid "Name for this webhook" msgstr "" -#: common/models.py:2707 +#: common/models.py:2771 msgid "Is this webhook active" msgstr "" -#: common/models.py:2723 users/models.py:159 +#: common/models.py:2787 users/models.py:159 msgid "Token" msgstr "" -#: common/models.py:2724 +#: common/models.py:2788 msgid "Token for access" msgstr "" -#: common/models.py:2732 +#: common/models.py:2796 msgid "Secret" msgstr "" -#: common/models.py:2733 +#: common/models.py:2797 msgid "Shared secret for HMAC" msgstr "" -#: common/models.py:2841 +#: common/models.py:2905 msgid "Message ID" msgstr "" -#: common/models.py:2842 +#: common/models.py:2906 msgid "Unique identifier for this message" msgstr "" -#: common/models.py:2850 +#: common/models.py:2914 msgid "Host" msgstr "" -#: common/models.py:2851 +#: common/models.py:2915 msgid "Host from which this message was received" msgstr "" -#: common/models.py:2859 +#: common/models.py:2923 msgid "Header" msgstr "" -#: common/models.py:2860 +#: common/models.py:2924 msgid "Header of this message" msgstr "" -#: common/models.py:2867 +#: common/models.py:2931 msgid "Body" msgstr "" -#: common/models.py:2868 +#: common/models.py:2932 msgid "Body of this message" msgstr "" -#: common/models.py:2878 +#: common/models.py:2942 msgid "Endpoint on which this message was received" msgstr "" -#: common/models.py:2883 +#: common/models.py:2947 msgid "Worked on" msgstr "" -#: common/models.py:2884 +#: common/models.py:2948 msgid "Was the work on this message finished?" msgstr "" -#: common/models.py:3010 +#: common/models.py:3074 msgid "Id" msgstr "" -#: common/models.py:3012 templates/js/translated/company.js:965 -#: templates/js/translated/news.js:44 +#: common/models.py:3076 part/serializers.py:271 +#: templates/js/translated/company.js:966 templates/js/translated/news.js:44 msgid "Title" msgstr "" -#: common/models.py:3014 common/models.py:3272 company/models.py:149 -#: company/models.py:446 company/models.py:512 company/models.py:818 -#: order/models.py:302 order/models.py:1385 order/models.py:1817 -#: part/admin.py:55 part/models.py:1057 +#: common/models.py:3078 common/models.py:3333 company/models.py:146 +#: company/models.py:443 company/models.py:509 company/models.py:815 +#: order/models.py:309 order/models.py:1402 order/models.py:1846 +#: part/admin.py:55 part/models.py:1118 #: part/templates/part/part_scheduling.html:11 #: report/templates/report/inventree_build_order_report.html:164 -#: stock/admin.py:229 templates/js/translated/company.js:1319 -#: templates/js/translated/company.js:1673 templates/js/translated/order.js:376 +#: stock/admin.py:230 templates/js/translated/company.js:1320 +#: templates/js/translated/company.js:1674 templates/js/translated/order.js:376 #: templates/js/translated/part.js:2475 -#: templates/js/translated/purchase_order.js:2110 -#: templates/js/translated/purchase_order.js:2274 +#: templates/js/translated/purchase_order.js:2094 +#: templates/js/translated/purchase_order.js:2258 #: templates/js/translated/return_order.js:778 -#: templates/js/translated/sales_order.js:1092 -#: templates/js/translated/sales_order.js:2023 +#: templates/js/translated/sales_order.js:1058 +#: templates/js/translated/sales_order.js:2004 msgid "Link" msgstr "" -#: common/models.py:3016 templates/js/translated/news.js:60 +#: common/models.py:3080 templates/js/translated/news.js:60 msgid "Published" msgstr "" -#: common/models.py:3018 templates/InvenTree/settings/plugin_settings.html:32 +#: common/models.py:3082 templates/InvenTree/settings/plugin_settings.html:32 #: templates/js/translated/news.js:56 templates/js/translated/plugin.js:103 msgid "Author" msgstr "" -#: common/models.py:3020 templates/js/translated/news.js:52 +#: common/models.py:3084 templates/js/translated/news.js:52 msgid "Summary" msgstr "" -#: common/models.py:3023 +#: common/models.py:3087 msgid "Read" msgstr "" -#: common/models.py:3023 +#: common/models.py:3087 msgid "Was this news item read?" msgstr "" -#: common/models.py:3040 company/models.py:159 part/models.py:1067 +#: common/models.py:3104 company/models.py:156 part/models.py:1128 #: report/templates/report/inventree_bill_of_materials_report.html:126 #: report/templates/report/inventree_bill_of_materials_report.html:148 #: report/templates/report/inventree_return_order_report.html:35 -#: stock/templates/stock/item_base.html:133 templates/503.html:31 +#: stock/templates/stock/item_base.html:130 templates/503.html:31 #: templates/hover_image.html:7 templates/hover_image.html:9 #: templates/modals.html:6 msgid "Image" msgstr "" -#: common/models.py:3040 +#: common/models.py:3104 msgid "Image file" msgstr "" -#: common/models.py:3052 common/models.py:3256 +#: common/models.py:3116 common/models.py:3317 msgid "Target model type for this image" msgstr "" -#: common/models.py:3056 +#: common/models.py:3120 msgid "Target model ID for this image" msgstr "" -#: common/models.py:3078 +#: common/models.py:3142 msgid "Custom Unit" msgstr "" -#: common/models.py:3099 +#: common/models.py:3160 msgid "Unit symbol must be unique" msgstr "" -#: common/models.py:3114 +#: common/models.py:3175 msgid "Unit name must be a valid identifier" msgstr "" -#: common/models.py:3133 +#: common/models.py:3194 msgid "Unit name" msgstr "" -#: common/models.py:3140 templates/InvenTree/settings/settings_staff_js.html:75 +#: common/models.py:3201 templates/InvenTree/settings/settings_staff_js.html:75 msgid "Symbol" msgstr "" -#: common/models.py:3141 +#: common/models.py:3202 msgid "Optional unit symbol" msgstr "" -#: common/models.py:3147 templates/InvenTree/settings/settings_staff_js.html:71 +#: common/models.py:3208 templates/InvenTree/settings/settings_staff_js.html:71 msgid "Definition" msgstr "" -#: common/models.py:3148 +#: common/models.py:3209 msgid "Unit definition" msgstr "" -#: common/models.py:3206 common/models.py:3263 stock/models.py:2558 -#: templates/js/translated/attachment.js:119 +#: common/models.py:3267 common/models.py:3324 stock/models.py:2674 +#: stock/serializers.py:244 templates/js/translated/attachment.js:119 #: templates/js/translated/attachment.js:345 msgid "Attachment" msgstr "" -#: common/models.py:3218 +#: common/models.py:3279 msgid "Missing file" msgstr "" -#: common/models.py:3219 +#: common/models.py:3280 msgid "Missing external link" msgstr "" -#: common/models.py:3264 +#: common/models.py:3325 msgid "Select file to attach" msgstr "" -#: common/models.py:3279 templates/js/translated/attachment.js:120 +#: common/models.py:3340 templates/js/translated/attachment.js:120 #: templates/js/translated/attachment.js:360 msgid "Comment" msgstr "" -#: common/models.py:3280 +#: common/models.py:3341 msgid "Attachment comment" msgstr "" -#: common/models.py:3296 +#: common/models.py:3357 msgid "Upload date" msgstr "" -#: common/models.py:3297 +#: common/models.py:3358 msgid "Date the file was uploaded" msgstr "" -#: common/models.py:3301 +#: common/models.py:3362 msgid "File size" msgstr "" -#: common/models.py:3301 +#: common/models.py:3362 msgid "File size in bytes" msgstr "" -#: common/models.py:3339 common/serializers.py:562 +#: common/models.py:3400 common/serializers.py:609 msgid "Invalid model type specified for attachment" msgstr "" -#: common/notifications.py:314 +#: common/models.py:3409 plugin/models.py:43 users/models.py:100 +msgid "Key" +msgstr "" + +#: common/models.py:3410 +msgid "Value that will be saved in the models database" +msgstr "" + +#: common/models.py:3413 +msgid "Name of the state" +msgstr "" + +#: common/models.py:3417 part/serializers.py:273 +msgid "Label" +msgstr "" + +#: common/models.py:3418 +msgid "Label that will be displayed in the frontend" +msgstr "" + +#: common/models.py:3424 +msgid "Color" +msgstr "" + +#: common/models.py:3425 +msgid "Color that will be displayed in the frontend" +msgstr "" + +#: common/models.py:3428 +msgid "Logical Key" +msgstr "" + +#: common/models.py:3430 +msgid "State logical key that is equal to this custom state in business logic" +msgstr "" + +#: common/models.py:3438 part/serializers.py:275 +msgid "Model" +msgstr "" + +#: common/models.py:3439 +msgid "Model this state is associated with" +msgstr "" + +#: common/models.py:3443 +msgid "Reference Status Set" +msgstr "" + +#: common/models.py:3444 +msgid "Status set that is extended with this custom state" +msgstr "" + +#: common/models.py:3450 +msgid "Custom State" +msgstr "" + +#: common/models.py:3451 +msgid "Custom States" +msgstr "" + +#: common/models.py:3466 +msgid "Model must be selected" +msgstr "" + +#: common/models.py:3469 +msgid "Key must be selected" +msgstr "" + +#: common/models.py:3472 +msgid "Logical key must be selected" +msgstr "" + +#: common/models.py:3476 +msgid "Key must be different from logical key" +msgstr "" + +#: common/models.py:3480 +msgid "Reference status must be selected" +msgstr "" + +#: common/models.py:3492 +msgid "Reference status set not found" +msgstr "" + +#: common/models.py:3498 +msgid "Key must be different from the logical keys of the reference status" +msgstr "" + +#: common/models.py:3504 +msgid "Logical key must be in the logical keys of the reference status" +msgstr "" + +#: common/models.py:3519 +msgid "Barcode Scan" +msgstr "" + +#: common/models.py:3523 importer/models.py:512 part/models.py:4009 +msgid "Data" +msgstr "" + +#: common/models.py:3524 +msgid "Barcode data" +msgstr "" + +#: common/models.py:3535 +msgid "User who scanned the barcode" +msgstr "" + +#: common/models.py:3540 importer/models.py:60 +msgid "Timestamp" +msgstr "" + +#: common/models.py:3541 +msgid "Date and time of the barcode scan" +msgstr "" + +#: common/models.py:3547 +msgid "URL endpoint which processed the barcode" +msgstr "" + +#: common/models.py:3554 order/models.py:1437 plugin/serializers.py:89 +msgid "Context" +msgstr "" + +#: common/models.py:3555 +msgid "Context data for the barcode scan" +msgstr "" + +#: common/models.py:3562 +msgid "Response" +msgstr "" + +#: common/models.py:3563 +msgid "Response data from the barcode scan" +msgstr "" + +#: common/models.py:3569 report/templates/report/inventree_test_report.html:103 +#: stock/models.py:2660 +msgid "Result" +msgstr "" + +#: common/models.py:3570 +msgid "Was the barcode scan successful?" +msgstr "" + +#: common/notifications.py:328 #, python-brace-format msgid "New {verbose_name}" msgstr "" -#: common/notifications.py:316 +#: common/notifications.py:330 msgid "A new order has been created and assigned to you" msgstr "" -#: common/notifications.py:322 +#: common/notifications.py:336 #, python-brace-format msgid "{verbose_name} canceled" msgstr "" -#: common/notifications.py:324 +#: common/notifications.py:338 msgid "A order that is assigned to you was canceled" msgstr "" -#: common/notifications.py:330 common/notifications.py:337 order/api.py:462 +#: common/notifications.py:344 common/notifications.py:351 order/api.py:440 msgid "Items Received" msgstr "" -#: common/notifications.py:332 +#: common/notifications.py:346 msgid "Items have been received against a purchase order" msgstr "" -#: common/notifications.py:339 +#: common/notifications.py:353 msgid "Items have been received against a return order" msgstr "" -#: common/notifications.py:457 +#: common/notifications.py:475 msgid "Error raised by plugin" msgstr "" -#: common/serializers.py:375 +#: common/serializers.py:423 msgid "Is Running" msgstr "" -#: common/serializers.py:381 +#: common/serializers.py:429 msgid "Pending Tasks" msgstr "" -#: common/serializers.py:387 +#: common/serializers.py:435 msgid "Scheduled Tasks" msgstr "" -#: common/serializers.py:393 +#: common/serializers.py:441 msgid "Failed Tasks" msgstr "" -#: common/serializers.py:408 +#: common/serializers.py:456 msgid "Task ID" msgstr "" -#: common/serializers.py:408 +#: common/serializers.py:456 msgid "Unique task ID" msgstr "" -#: common/serializers.py:410 +#: common/serializers.py:458 msgid "Lock" msgstr "" -#: common/serializers.py:410 +#: common/serializers.py:458 msgid "Lock time" msgstr "" -#: common/serializers.py:412 +#: common/serializers.py:460 msgid "Task name" msgstr "" -#: common/serializers.py:414 +#: common/serializers.py:462 msgid "Function" msgstr "" -#: common/serializers.py:414 +#: common/serializers.py:462 msgid "Function name" msgstr "" -#: common/serializers.py:416 +#: common/serializers.py:464 msgid "Arguments" msgstr "" -#: common/serializers.py:416 +#: common/serializers.py:464 msgid "Task arguments" msgstr "" -#: common/serializers.py:419 +#: common/serializers.py:467 msgid "Keyword Arguments" msgstr "" -#: common/serializers.py:419 +#: common/serializers.py:467 msgid "Task keyword arguments" msgstr "" -#: common/serializers.py:529 +#: common/serializers.py:577 msgid "Filename" msgstr "" -#: common/serializers.py:536 report/api.py:100 report/serializers.py:53 +#: common/serializers.py:584 report/api.py:100 report/serializers.py:54 msgid "Model Type" msgstr "" -#: common/serializers.py:565 +#: common/serializers.py:612 msgid "User does not have permission to create or edit attachments for this model" msgstr "" @@ -4116,15 +4295,15 @@ msgstr "" msgid "Match Items" msgstr "" -#: common/views.py:401 +#: common/views.py:397 msgid "Fields matching failed" msgstr "" -#: common/views.py:464 +#: common/views.py:460 msgid "Parts imported" msgstr "" -#: common/views.py:494 order/templates/order/order_wizard/match_fields.html:27 +#: common/views.py:490 order/templates/order/order_wizard/match_fields.html:27 #: order/templates/order/order_wizard/match_parts.html:19 #: order/templates/order/order_wizard/po_upload.html:49 #: part/templates/part/import_wizard/match_fields.html:27 @@ -4155,429 +4334,429 @@ msgstr "" msgid "Supplier is Active" msgstr "" -#: company/models.py:100 company/models.py:371 +#: company/models.py:97 company/models.py:368 #: company/templates/company/company_base.html:8 #: company/templates/company/company_base.html:12 stock/api.py:812 -#: templates/InvenTree/search.html:178 templates/js/translated/company.js:496 +#: templates/InvenTree/search.html:178 templates/js/translated/company.js:497 msgid "Company" msgstr "" -#: company/models.py:101 company/views.py:51 +#: company/models.py:98 company/views.py:51 #: templates/js/translated/search.js:192 msgid "Companies" msgstr "" -#: company/models.py:117 +#: company/models.py:114 msgid "Company description" msgstr "" -#: company/models.py:118 +#: company/models.py:115 msgid "Description of the company" msgstr "" -#: company/models.py:123 company/templates/company/company_base.html:106 +#: company/models.py:120 company/templates/company/company_base.html:106 #: templates/InvenTree/settings/plugin_settings.html:54 -#: templates/js/translated/company.js:532 +#: templates/js/translated/company.js:533 msgid "Website" msgstr "" -#: company/models.py:123 +#: company/models.py:120 msgid "Company website URL" msgstr "" -#: company/models.py:128 +#: company/models.py:125 msgid "Phone number" msgstr "" -#: company/models.py:130 +#: company/models.py:127 msgid "Contact phone number" msgstr "" -#: company/models.py:137 +#: company/models.py:134 msgid "Contact email address" msgstr "" -#: company/models.py:142 company/models.py:275 -#: company/templates/company/company_base.html:145 order/models.py:342 -#: order/templates/order/order_base.html:208 -#: order/templates/order/return_order_base.html:177 -#: order/templates/order/sales_order_base.html:221 +#: company/models.py:139 company/models.py:272 +#: company/templates/company/company_base.html:145 order/models.py:349 +#: order/templates/order/order_base.html:217 +#: order/templates/order/return_order_base.html:178 +#: order/templates/order/sales_order_base.html:222 msgid "Contact" msgstr "" -#: company/models.py:144 +#: company/models.py:141 msgid "Point of contact" msgstr "" -#: company/models.py:150 +#: company/models.py:147 msgid "Link to external company information" msgstr "" -#: company/models.py:163 +#: company/models.py:160 msgid "Is this company active?" msgstr "" -#: company/models.py:168 +#: company/models.py:165 msgid "Is customer" msgstr "" -#: company/models.py:169 +#: company/models.py:166 msgid "Do you sell items to this company?" msgstr "" -#: company/models.py:174 +#: company/models.py:171 msgid "Is supplier" msgstr "" -#: company/models.py:175 +#: company/models.py:172 msgid "Do you purchase items from this company?" msgstr "" -#: company/models.py:180 +#: company/models.py:177 msgid "Is manufacturer" msgstr "" -#: company/models.py:181 +#: company/models.py:178 msgid "Does this company manufacture parts?" msgstr "" -#: company/models.py:189 +#: company/models.py:186 msgid "Default currency used for this company" msgstr "" -#: company/models.py:314 company/templates/company/company_base.html:124 -#: order/models.py:352 order/templates/order/order_base.html:215 -#: order/templates/order/return_order_base.html:184 -#: order/templates/order/sales_order_base.html:228 +#: company/models.py:311 company/templates/company/company_base.html:124 +#: order/models.py:359 order/templates/order/order_base.html:224 +#: order/templates/order/return_order_base.html:185 +#: order/templates/order/sales_order_base.html:229 msgid "Address" msgstr "" -#: company/models.py:315 company/templates/company/sidebar.html:35 +#: company/models.py:312 company/templates/company/sidebar.html:35 msgid "Addresses" msgstr "" -#: company/models.py:372 +#: company/models.py:369 msgid "Select company" msgstr "" -#: company/models.py:377 +#: company/models.py:374 msgid "Address title" msgstr "" -#: company/models.py:378 +#: company/models.py:375 msgid "Title describing the address entry" msgstr "" -#: company/models.py:384 +#: company/models.py:381 msgid "Primary address" msgstr "" -#: company/models.py:385 +#: company/models.py:382 msgid "Set as primary address" msgstr "" -#: company/models.py:390 templates/js/translated/company.js:914 -#: templates/js/translated/company.js:971 +#: company/models.py:387 templates/js/translated/company.js:915 +#: templates/js/translated/company.js:972 msgid "Line 1" msgstr "" -#: company/models.py:391 +#: company/models.py:388 msgid "Address line 1" msgstr "" -#: company/models.py:397 templates/js/translated/company.js:915 -#: templates/js/translated/company.js:977 +#: company/models.py:394 templates/js/translated/company.js:916 +#: templates/js/translated/company.js:978 msgid "Line 2" msgstr "" -#: company/models.py:398 +#: company/models.py:395 msgid "Address line 2" msgstr "" -#: company/models.py:404 company/models.py:405 -#: templates/js/translated/company.js:983 +#: company/models.py:401 company/models.py:402 +#: templates/js/translated/company.js:984 msgid "Postal code" msgstr "" -#: company/models.py:411 +#: company/models.py:408 msgid "City/Region" msgstr "" -#: company/models.py:412 +#: company/models.py:409 msgid "Postal code city/region" msgstr "" -#: company/models.py:418 +#: company/models.py:415 msgid "State/Province" msgstr "" -#: company/models.py:419 +#: company/models.py:416 msgid "State or province" msgstr "" -#: company/models.py:425 templates/js/translated/company.js:1001 +#: company/models.py:422 templates/js/translated/company.js:1002 msgid "Country" msgstr "" -#: company/models.py:426 +#: company/models.py:423 msgid "Address country" msgstr "" -#: company/models.py:432 +#: company/models.py:429 msgid "Courier shipping notes" msgstr "" -#: company/models.py:433 +#: company/models.py:430 msgid "Notes for shipping courier" msgstr "" -#: company/models.py:439 +#: company/models.py:436 msgid "Internal shipping notes" msgstr "" -#: company/models.py:440 +#: company/models.py:437 msgid "Shipping notes for internal use" msgstr "" -#: company/models.py:447 +#: company/models.py:444 msgid "Link to address information (external)" msgstr "" -#: company/models.py:470 company/models.py:587 company/models.py:811 +#: company/models.py:467 company/models.py:584 company/models.py:808 #: company/templates/company/manufacturer_part.html:7 #: company/templates/company/manufacturer_part.html:24 -#: stock/templates/stock/item_base.html:217 +#: stock/templates/stock/item_base.html:214 msgid "Manufacturer Part" msgstr "" -#: company/models.py:487 company/models.py:779 stock/models.py:787 -#: stock/serializers.py:445 stock/templates/stock/item_base.html:142 +#: company/models.py:484 company/models.py:776 stock/models.py:864 +#: stock/serializers.py:455 stock/templates/stock/item_base.html:139 #: templates/js/translated/bom.js:622 msgid "Base Part" msgstr "" -#: company/models.py:489 company/models.py:781 +#: company/models.py:486 company/models.py:778 msgid "Select part" msgstr "" -#: company/models.py:498 company/templates/company/company_base.html:82 +#: company/models.py:495 company/templates/company/company_base.html:82 #: company/templates/company/manufacturer_part.html:90 -#: company/templates/company/supplier_part.html:145 part/serializers.py:554 -#: stock/templates/stock/item_base.html:207 -#: templates/js/translated/company.js:507 -#: templates/js/translated/company.js:1118 -#: templates/js/translated/company.js:1296 -#: templates/js/translated/company.js:1611 +#: company/templates/company/supplier_part.html:146 part/serializers.py:598 +#: stock/templates/stock/item_base.html:204 +#: templates/js/translated/company.js:508 +#: templates/js/translated/company.js:1119 +#: templates/js/translated/company.js:1297 +#: templates/js/translated/company.js:1612 #: templates/js/translated/table_filters.js:812 msgid "Manufacturer" msgstr "" -#: company/models.py:499 +#: company/models.py:496 msgid "Select manufacturer" msgstr "" -#: company/models.py:505 company/templates/company/manufacturer_part.html:101 -#: company/templates/company/supplier_part.html:153 order/serializers.py:556 -#: part/serializers.py:564 templates/js/translated/company.js:351 -#: templates/js/translated/company.js:1117 -#: templates/js/translated/company.js:1312 -#: templates/js/translated/company.js:1630 templates/js/translated/part.js:1807 -#: templates/js/translated/purchase_order.js:1921 -#: templates/js/translated/purchase_order.js:2123 +#: company/models.py:502 company/templates/company/manufacturer_part.html:101 +#: company/templates/company/supplier_part.html:154 order/serializers.py:641 +#: part/serializers.py:608 templates/js/translated/company.js:352 +#: templates/js/translated/company.js:1118 +#: templates/js/translated/company.js:1313 +#: templates/js/translated/company.js:1631 templates/js/translated/part.js:1807 +#: templates/js/translated/purchase_order.js:1905 +#: templates/js/translated/purchase_order.js:2107 msgid "MPN" msgstr "" -#: company/models.py:513 +#: company/models.py:510 msgid "URL for external manufacturer part link" msgstr "" -#: company/models.py:522 +#: company/models.py:519 msgid "Manufacturer part description" msgstr "" -#: company/models.py:575 +#: company/models.py:572 msgid "Manufacturer Part Parameter" msgstr "" -#: company/models.py:594 +#: company/models.py:591 msgid "Parameter name" msgstr "" -#: company/models.py:600 report/templates/report/inventree_test_report.html:104 -#: stock/models.py:2550 templates/js/translated/company.js:1166 -#: templates/js/translated/company.js:1419 templates/js/translated/part.js:1499 +#: company/models.py:597 report/templates/report/inventree_test_report.html:104 +#: stock/models.py:2666 templates/js/translated/company.js:1167 +#: templates/js/translated/company.js:1420 templates/js/translated/part.js:1499 #: templates/js/translated/stock.js:1607 msgid "Value" msgstr "" -#: company/models.py:601 +#: company/models.py:598 msgid "Parameter value" msgstr "" -#: company/models.py:608 company/templates/company/supplier_part.html:168 -#: part/admin.py:57 part/models.py:1147 part/models.py:3771 -#: part/templates/part/part_base.html:293 -#: templates/js/translated/company.js:1425 templates/js/translated/part.js:1518 +#: company/models.py:605 company/templates/company/supplier_part.html:169 +#: part/admin.py:57 part/models.py:1208 part/models.py:3822 +#: part/templates/part/part_base.html:301 +#: templates/js/translated/company.js:1426 templates/js/translated/part.js:1518 #: templates/js/translated/part.js:1622 templates/js/translated/part.js:2376 msgid "Units" msgstr "" -#: company/models.py:609 +#: company/models.py:606 msgid "Parameter units" msgstr "" -#: company/models.py:662 company/templates/company/supplier_part.html:7 -#: company/templates/company/supplier_part.html:24 order/api.py:442 -#: order/serializers.py:491 stock/models.py:798 -#: stock/templates/stock/item_base.html:233 -#: templates/js/translated/build.js:1052 -#: templates/js/translated/company.js:1600 -#: templates/js/translated/purchase_order.js:752 -#: templates/js/translated/stock.js:2365 +#: company/models.py:659 company/templates/company/supplier_part.html:8 +#: company/templates/company/supplier_part.html:25 order/api.py:392 +#: order/serializers.py:576 stock/models.py:875 +#: stock/templates/stock/item_base.html:230 +#: templates/js/translated/build.js:1055 +#: templates/js/translated/company.js:1601 +#: templates/js/translated/purchase_order.js:735 +#: templates/js/translated/stock.js:2366 msgid "Supplier Part" msgstr "" -#: company/models.py:719 +#: company/models.py:716 msgid "Pack units must be compatible with the base part units" msgstr "" -#: company/models.py:726 +#: company/models.py:723 msgid "Pack units must be greater than zero" msgstr "" -#: company/models.py:740 +#: company/models.py:737 msgid "Linked manufacturer part must reference the same base part" msgstr "" -#: company/models.py:789 company/templates/company/company_base.html:87 -#: company/templates/company/supplier_part.html:129 order/models.py:491 -#: order/templates/order/order_base.html:141 part/bom.py:280 part/bom.py:318 -#: part/serializers.py:538 plugin/builtin/suppliers/digikey.py:25 +#: company/models.py:786 company/templates/company/company_base.html:87 +#: company/templates/company/supplier_part.html:130 order/models.py:503 +#: order/templates/order/order_base.html:150 part/bom.py:279 part/bom.py:314 +#: part/serializers.py:582 plugin/builtin/suppliers/digikey.py:25 #: plugin/builtin/suppliers/lcsc.py:26 plugin/builtin/suppliers/mouser.py:24 -#: plugin/builtin/suppliers/tme.py:26 stock/templates/stock/item_base.html:224 +#: plugin/builtin/suppliers/tme.py:26 stock/templates/stock/item_base.html:221 #: templates/email/overdue_purchase_order.html:16 -#: templates/js/translated/company.js:350 -#: templates/js/translated/company.js:511 -#: templates/js/translated/company.js:1584 templates/js/translated/part.js:1775 +#: templates/js/translated/company.js:351 +#: templates/js/translated/company.js:512 +#: templates/js/translated/company.js:1585 templates/js/translated/part.js:1775 #: templates/js/translated/pricing.js:498 -#: templates/js/translated/purchase_order.js:1759 +#: templates/js/translated/purchase_order.js:1743 #: templates/js/translated/table_filters.js:816 msgid "Supplier" msgstr "" -#: company/models.py:790 +#: company/models.py:787 msgid "Select supplier" msgstr "" -#: company/models.py:796 part/serializers.py:549 +#: company/models.py:793 part/serializers.py:593 msgid "Supplier stock keeping unit" msgstr "" -#: company/models.py:802 +#: company/models.py:799 msgid "Is this supplier part active?" msgstr "" -#: company/models.py:812 +#: company/models.py:809 msgid "Select manufacturer part" msgstr "" -#: company/models.py:819 +#: company/models.py:816 msgid "URL for external supplier part link" msgstr "" -#: company/models.py:828 +#: company/models.py:825 msgid "Supplier part description" msgstr "" -#: company/models.py:835 company/templates/company/supplier_part.html:187 -#: order/serializers.py:698 part/admin.py:415 part/models.py:4288 +#: company/models.py:832 company/templates/company/supplier_part.html:188 +#: order/serializers.py:783 part/admin.py:415 part/models.py:4345 #: part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_bill_of_materials_report.html:140 #: report/templates/report/inventree_purchase_order_report.html:32 #: report/templates/report/inventree_return_order_report.html:27 #: report/templates/report/inventree_sales_order_report.html:32 #: report/templates/report/inventree_stock_location_report.html:105 -#: stock/serializers.py:776 templates/js/translated/purchase_order.js:1185 -#: templates/js/translated/purchase_order.js:1344 +#: stock/serializers.py:807 templates/js/translated/purchase_order.js:1168 +#: templates/js/translated/purchase_order.js:1327 msgid "Note" msgstr "" -#: company/models.py:844 part/models.py:2117 +#: company/models.py:841 part/models.py:2177 msgid "base cost" msgstr "" -#: company/models.py:845 part/models.py:2118 +#: company/models.py:842 part/models.py:2178 msgid "Minimum charge (e.g. stocking fee)" msgstr "" -#: company/models.py:853 +#: company/models.py:850 msgid "Part packaging" msgstr "" -#: company/models.py:858 templates/js/translated/company.js:1651 +#: company/models.py:855 templates/js/translated/company.js:1652 #: templates/js/translated/part.js:1828 templates/js/translated/part.js:1884 -#: templates/js/translated/purchase_order.js:311 -#: templates/js/translated/purchase_order.js:841 -#: templates/js/translated/purchase_order.js:1103 -#: templates/js/translated/purchase_order.js:2154 -#: templates/js/translated/purchase_order.js:2171 +#: templates/js/translated/purchase_order.js:294 +#: templates/js/translated/purchase_order.js:824 +#: templates/js/translated/purchase_order.js:1086 +#: templates/js/translated/purchase_order.js:2138 +#: templates/js/translated/purchase_order.js:2155 msgid "Pack Quantity" msgstr "" -#: company/models.py:860 +#: company/models.py:857 msgid "Total quantity supplied in a single pack. Leave empty for single items." msgstr "" -#: company/models.py:879 part/models.py:2124 +#: company/models.py:876 part/models.py:2184 msgid "multiple" msgstr "" -#: company/models.py:880 +#: company/models.py:877 msgid "Order multiple" msgstr "" -#: company/models.py:892 +#: company/models.py:889 msgid "Quantity available from supplier" msgstr "" -#: company/models.py:898 +#: company/models.py:895 msgid "Availability Updated" msgstr "" -#: company/models.py:899 +#: company/models.py:896 msgid "Date of last update of availability data" msgstr "" -#: company/models.py:1027 +#: company/models.py:1024 msgid "Supplier Price Break" msgstr "" -#: company/serializers.py:174 +#: company/serializers.py:178 msgid "Default currency used for this supplier" msgstr "" -#: company/serializers.py:210 +#: company/serializers.py:214 msgid "Company Name" msgstr "" -#: company/serializers.py:393 part/admin.py:126 part/serializers.py:898 -#: part/templates/part/part_base.html:197 -#: templates/js/translated/company.js:1689 +#: company/serializers.py:397 part/admin.py:126 part/serializers.py:950 +#: part/templates/part/part_base.html:198 stock/serializers.py:474 +#: templates/js/translated/company.js:1690 #: templates/js/translated/table_filters.js:362 msgid "In Stock" msgstr "" #: company/templates/company/company_base.html:16 -#: part/templates/part/part_base.html:146 -#: templates/js/translated/company.js:1287 -#: templates/js/translated/company.js:1575 -#: templates/js/translated/model_renderers.js:313 +#: part/templates/part/part_base.html:147 +#: templates/js/translated/company.js:1288 +#: templates/js/translated/company.js:1576 +#: templates/js/translated/model_renderers.js:316 #: templates/js/translated/part.js:817 templates/js/translated/part.js:1225 msgid "Inactive" msgstr "" #: company/templates/company/company_base.html:27 -#: templates/js/translated/purchase_order.js:242 +#: templates/js/translated/purchase_order.js:224 msgid "Create Purchase Order" msgstr "" @@ -4590,7 +4769,7 @@ msgid "Edit company information" msgstr "" #: company/templates/company/company_base.html:39 -#: templates/js/translated/company.js:445 +#: templates/js/translated/company.js:446 msgid "Edit Company" msgstr "" @@ -4605,11 +4784,12 @@ msgstr "" #: company/templates/company/company_base.html:53 #: company/templates/company/manufacturer_part.html:51 -#: company/templates/company/supplier_part.html:83 +#: company/templates/company/supplier_part.html:84 #: part/templates/part/part_thumb.html:20 #: report/templates/report/inventree_build_order_report.html:98 #: report/templates/report/inventree_purchase_order_report.html:40 #: report/templates/report/inventree_sales_order_report.html:40 +#: report/templates/report/inventree_sales_order_shipment_report.html:37 #: report/templates/report/inventree_test_report.html:84 #: report/templates/report/inventree_test_report.html:162 msgid "Part image" @@ -4630,16 +4810,16 @@ msgstr "" msgid "Delete image" msgstr "" -#: company/templates/company/company_base.html:92 order/models.py:990 -#: order/models.py:2147 order/templates/order/return_order_base.html:134 -#: order/templates/order/sales_order_base.html:151 stock/models.py:840 -#: stock/models.py:841 stock/serializers.py:1329 -#: stock/templates/stock/item_base.html:405 +#: company/templates/company/company_base.html:92 order/models.py:1017 +#: order/models.py:2186 order/templates/order/return_order_base.html:135 +#: order/templates/order/sales_order_base.html:152 stock/models.py:917 +#: stock/models.py:918 stock/serializers.py:1360 +#: stock/templates/stock/item_base.html:402 #: templates/email/overdue_sales_order.html:16 -#: templates/js/translated/company.js:503 +#: templates/js/translated/company.js:504 #: templates/js/translated/return_order.js:295 -#: templates/js/translated/sales_order.js:820 -#: templates/js/translated/stock.js:3043 +#: templates/js/translated/sales_order.js:779 +#: templates/js/translated/stock.js:3044 #: templates/js/translated/table_filters.js:820 msgid "Customer" msgstr "" @@ -4653,7 +4833,7 @@ msgid "Phone" msgstr "" #: company/templates/company/company_base.html:211 -#: part/templates/part/part_base.html:536 +#: part/templates/part/part_base.html:544 msgid "Remove Image" msgstr "" @@ -4662,19 +4842,19 @@ msgid "Remove associated image from this company" msgstr "" #: company/templates/company/company_base.html:214 -#: part/templates/part/part_base.html:539 +#: part/templates/part/part_base.html:547 #: templates/InvenTree/settings/user.html:88 #: templates/InvenTree/settings/user_sso.html:43 msgid "Remove" msgstr "" #: company/templates/company/company_base.html:243 -#: part/templates/part/part_base.html:568 +#: part/templates/part/part_base.html:576 msgid "Upload Image" msgstr "" #: company/templates/company/company_base.html:258 -#: part/templates/part/part_base.html:622 +#: part/templates/part/part_base.html:630 msgid "Download Image" msgstr "" @@ -4714,7 +4894,7 @@ msgstr "" #: company/templates/company/detail.html:75 #: company/templates/company/sidebar.html:12 #: company/templates/company/supplier_part_sidebar.html:7 -#: order/templates/order/order_base.html:13 +#: order/templates/order/order_base.html:14 #: order/templates/order/purchase_orders.html:8 #: order/templates/order/purchase_orders.html:12 #: part/templates/part/detail.html:122 part/templates/part/part_sidebar.html:35 @@ -4737,7 +4917,7 @@ msgstr "" #: company/templates/company/detail.html:101 #: company/templates/company/sidebar.html:21 -#: order/templates/order/sales_order_base.html:13 +#: order/templates/order/sales_order_base.html:14 #: order/templates/order/sales_orders.html:8 #: order/templates/order/sales_orders.html:15 #: part/templates/part/detail.html:143 part/templates/part/part_sidebar.html:39 @@ -4764,7 +4944,7 @@ msgstr "" #: company/templates/company/detail.html:142 #: company/templates/company/sidebar.html:29 -#: order/templates/order/return_order_base.html:13 +#: order/templates/order/return_order_base.html:14 #: order/templates/order/return_orders.html:8 #: order/templates/order/return_orders.html:15 #: templates/InvenTree/settings/sidebar.html:61 @@ -4811,24 +4991,24 @@ msgid "Manufacturers" msgstr "" #: company/templates/company/manufacturer_part.html:35 -#: company/templates/company/supplier_part.html:227 -#: part/templates/part/detail.html:125 part/templates/part/part_base.html:83 +#: company/templates/company/supplier_part.html:228 +#: part/templates/part/detail.html:125 part/templates/part/part_base.html:84 msgid "Order part" msgstr "" #: company/templates/company/manufacturer_part.html:39 -#: templates/js/translated/company.js:1343 +#: templates/js/translated/company.js:1344 msgid "Edit manufacturer part" msgstr "" #: company/templates/company/manufacturer_part.html:43 -#: templates/js/translated/company.js:1344 +#: templates/js/translated/company.js:1345 msgid "Delete manufacturer part" msgstr "" #: company/templates/company/manufacturer_part.html:65 -#: company/templates/company/supplier_part.html:97 order/api.py:448 -#: order/serializers.py:564 +#: company/templates/company/supplier_part.html:98 order/api.py:411 +#: order/serializers.py:649 msgid "Internal Part" msgstr "" @@ -4837,8 +5017,8 @@ msgid "No manufacturer information available" msgstr "" #: company/templates/company/manufacturer_part.html:119 -#: company/templates/company/supplier_part.html:15 company/views.py:31 -#: part/admin.py:122 part/serializers.py:904 +#: company/templates/company/supplier_part.html:16 company/views.py:31 +#: part/admin.py:122 part/serializers.py:956 #: part/templates/part/part_sidebar.html:33 templates/InvenTree/search.html:190 #: templates/navbar.html:48 msgid "Suppliers" @@ -4887,112 +5067,113 @@ msgstr "" msgid "Contacts" msgstr "" -#: company/templates/company/supplier_part.html:50 -#: templates/js/translated/company.js:1526 +#: company/templates/company/supplier_part.html:51 +#: templates/js/translated/company.js:1527 msgid "Supplier part actions" msgstr "" -#: company/templates/company/supplier_part.html:55 #: company/templates/company/supplier_part.html:56 -#: company/templates/company/supplier_part.html:228 +#: company/templates/company/supplier_part.html:57 +#: company/templates/company/supplier_part.html:229 #: part/templates/part/detail.html:126 msgid "Order Part" msgstr "" -#: company/templates/company/supplier_part.html:60 #: company/templates/company/supplier_part.html:61 +#: company/templates/company/supplier_part.html:62 msgid "Update Availability" msgstr "" -#: company/templates/company/supplier_part.html:63 #: company/templates/company/supplier_part.html:64 -#: templates/js/translated/company.js:294 +#: company/templates/company/supplier_part.html:65 +#: templates/js/translated/company.js:295 msgid "Edit Supplier Part" msgstr "" -#: company/templates/company/supplier_part.html:68 #: company/templates/company/supplier_part.html:69 -#: templates/js/translated/company.js:269 +#: company/templates/company/supplier_part.html:70 +#: templates/js/translated/company.js:270 msgid "Duplicate Supplier Part" msgstr "" -#: company/templates/company/supplier_part.html:73 +#: company/templates/company/supplier_part.html:74 msgid "Delete Supplier Part" msgstr "" -#: company/templates/company/supplier_part.html:74 +#: company/templates/company/supplier_part.html:75 msgid "Delete Supplier Part" msgstr "" -#: company/templates/company/supplier_part.html:133 +#: company/templates/company/supplier_part.html:134 +#: order/templates/order/order_base.html:155 msgid "No supplier information available" msgstr "" -#: company/templates/company/supplier_part.html:139 order/serializers.py:553 -#: part/bom.py:287 part/bom.py:319 part/serializers.py:548 -#: templates/js/translated/company.js:349 templates/js/translated/part.js:1793 +#: company/templates/company/supplier_part.html:140 order/serializers.py:638 +#: part/bom.py:286 part/bom.py:315 part/serializers.py:592 +#: templates/js/translated/company.js:350 templates/js/translated/part.js:1793 #: templates/js/translated/pricing.js:510 -#: templates/js/translated/purchase_order.js:1920 -#: templates/js/translated/purchase_order.js:2098 +#: templates/js/translated/purchase_order.js:1904 +#: templates/js/translated/purchase_order.js:2082 msgid "SKU" msgstr "" -#: company/templates/company/supplier_part.html:206 +#: company/templates/company/supplier_part.html:207 msgid "Supplier Part Stock" msgstr "" -#: company/templates/company/supplier_part.html:209 -#: part/templates/part/detail.html:24 stock/templates/stock/location.html:204 +#: company/templates/company/supplier_part.html:210 +#: part/templates/part/detail.html:24 stock/templates/stock/location.html:205 msgid "Create new stock item" msgstr "" -#: company/templates/company/supplier_part.html:210 -#: part/templates/part/detail.html:25 stock/templates/stock/location.html:205 +#: company/templates/company/supplier_part.html:211 +#: part/templates/part/detail.html:25 stock/templates/stock/location.html:206 #: templates/js/translated/stock.js:543 msgid "New Stock Item" msgstr "" -#: company/templates/company/supplier_part.html:223 +#: company/templates/company/supplier_part.html:224 msgid "Supplier Part Orders" msgstr "" -#: company/templates/company/supplier_part.html:246 +#: company/templates/company/supplier_part.html:247 msgid "Pricing Information" msgstr "" -#: company/templates/company/supplier_part.html:251 -#: templates/js/translated/company.js:398 +#: company/templates/company/supplier_part.html:252 +#: templates/js/translated/company.js:399 #: templates/js/translated/pricing.js:684 msgid "Add Price Break" msgstr "" -#: company/templates/company/supplier_part.html:270 +#: company/templates/company/supplier_part.html:271 msgid "Supplier Part Notes" msgstr "" -#: company/templates/company/supplier_part.html:305 +#: company/templates/company/supplier_part.html:306 msgid "Supplier Part QR Code" msgstr "" -#: company/templates/company/supplier_part.html:316 +#: company/templates/company/supplier_part.html:317 msgid "Link Barcode to Supplier Part" msgstr "" -#: company/templates/company/supplier_part.html:388 +#: company/templates/company/supplier_part.html:389 msgid "Update Part Availability" msgstr "" #: company/templates/company/supplier_part_sidebar.html:5 -#: part/serializers.py:902 part/stocktake.py:223 +#: part/serializers.py:954 part/stocktake.py:223 #: part/templates/part/category.html:180 #: part/templates/part/category_sidebar.html:17 stock/admin.py:68 -#: stock/serializers.py:1014 stock/serializers.py:1192 -#: stock/templates/stock/location.html:167 -#: stock/templates/stock/location.html:188 -#: stock/templates/stock/location.html:200 +#: stock/serializers.py:1045 stock/serializers.py:1223 +#: stock/templates/stock/location.html:168 +#: stock/templates/stock/location.html:189 +#: stock/templates/stock/location.html:201 #: stock/templates/stock/location_sidebar.html:7 #: templates/InvenTree/search.html:155 templates/js/translated/part.js:1067 -#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2850 +#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2851 #: users/models.py:206 msgid "Stock Items" msgstr "" @@ -5022,99 +5203,99 @@ msgstr "" msgid "New Company" msgstr "" -#: generic/states/tests.py:18 order/status_codes.py:13 +#: generic/states/fields.py:118 +msgid "Custom status key" +msgstr "" + +#: generic/states/fields.py:119 +msgid "Additional status information for this item" +msgstr "" + +#: generic/states/tests.py:22 order/status_codes.py:13 msgid "Placed" msgstr "" -#: importer/mixins.py:263 +#: importer/mixins.py:261 msgid "Invalid export format" msgstr "" -#: importer/models.py:59 -msgid "Timestamp" -msgstr "" - -#: importer/models.py:64 +#: importer/models.py:65 msgid "Data file to import" msgstr "" -#: importer/models.py:73 templates/js/translated/tables.js:558 +#: importer/models.py:74 templates/js/translated/tables.js:558 msgid "Columns" msgstr "" -#: importer/models.py:84 +#: importer/models.py:85 msgid "Import status" msgstr "" -#: importer/models.py:94 +#: importer/models.py:95 msgid "Field Defaults" msgstr "" -#: importer/models.py:101 +#: importer/models.py:102 msgid "Field Overrides" msgstr "" -#: importer/models.py:108 +#: importer/models.py:109 msgid "Field Filters" msgstr "" -#: importer/models.py:230 +#: importer/models.py:239 msgid "Some required fields have not been mapped" msgstr "" -#: importer/models.py:387 +#: importer/models.py:396 msgid "Column is already mapped to a database field" msgstr "" -#: importer/models.py:392 +#: importer/models.py:401 msgid "Field is already mapped to a data column" msgstr "" -#: importer/models.py:401 +#: importer/models.py:410 msgid "Column mapping must be linked to a valid import session" msgstr "" -#: importer/models.py:406 +#: importer/models.py:415 msgid "Column does not exist in the data file" msgstr "" -#: importer/models.py:413 +#: importer/models.py:422 msgid "Field does not exist in the target model" msgstr "" -#: importer/models.py:417 +#: importer/models.py:426 msgid "Selected field is read-only" msgstr "" -#: importer/models.py:422 importer/models.py:493 +#: importer/models.py:431 importer/models.py:502 msgid "Import Session" msgstr "" -#: importer/models.py:426 +#: importer/models.py:435 msgid "Field" msgstr "" -#: importer/models.py:428 +#: importer/models.py:437 msgid "Column" msgstr "" -#: importer/models.py:497 +#: importer/models.py:506 msgid "Row Index" msgstr "" -#: importer/models.py:500 +#: importer/models.py:509 msgid "Original row data" msgstr "" -#: importer/models.py:503 part/models.py:3951 -msgid "Data" -msgstr "" - -#: importer/models.py:505 machine/models.py:110 +#: importer/models.py:514 machine/models.py:110 msgid "Errors" msgstr "" -#: importer/models.py:507 part/api.py:873 +#: importer/models.py:516 part/api.py:857 msgid "Valid" msgstr "" @@ -5166,19 +5347,19 @@ msgstr "" msgid "Row has already been completed" msgstr "" -#: importer/status_codes.py:11 +#: importer/status_codes.py:13 msgid "Initializing" msgstr "" -#: importer/status_codes.py:12 +#: importer/status_codes.py:18 msgid "Mapping Columns" msgstr "" -#: importer/status_codes.py:13 +#: importer/status_codes.py:21 msgid "Importing Data" msgstr "" -#: importer/status_codes.py:16 +#: importer/status_codes.py:24 msgid "Processing Data" msgstr "" @@ -5202,52 +5383,52 @@ msgstr "" msgid "Value must be a valid dictionary object" msgstr "" -#: machine/machine_types/label_printer.py:215 +#: machine/machine_types/label_printer.py:216 msgid "Copies" msgstr "" -#: machine/machine_types/label_printer.py:216 +#: machine/machine_types/label_printer.py:217 msgid "Number of copies to print for each label" msgstr "" -#: machine/machine_types/label_printer.py:231 +#: machine/machine_types/label_printer.py:232 msgid "Connected" msgstr "" -#: machine/machine_types/label_printer.py:232 order/api.py:1410 -#: templates/js/translated/sales_order.js:1078 +#: machine/machine_types/label_printer.py:233 order/api.py:1532 +#: templates/js/translated/sales_order.js:1044 msgid "Unknown" msgstr "" -#: machine/machine_types/label_printer.py:233 +#: machine/machine_types/label_printer.py:234 msgid "Printing" msgstr "" -#: machine/machine_types/label_printer.py:234 +#: machine/machine_types/label_printer.py:235 msgid "No media" msgstr "" -#: machine/machine_types/label_printer.py:235 +#: machine/machine_types/label_printer.py:236 msgid "Paper jam" msgstr "" -#: machine/machine_types/label_printer.py:236 +#: machine/machine_types/label_printer.py:237 msgid "Disconnected" msgstr "" -#: machine/machine_types/label_printer.py:243 +#: machine/machine_types/label_printer.py:244 msgid "Label Printer" msgstr "" -#: machine/machine_types/label_printer.py:244 +#: machine/machine_types/label_printer.py:245 msgid "Directly print labels for various items." msgstr "" -#: machine/machine_types/label_printer.py:250 +#: machine/machine_types/label_printer.py:251 msgid "Printer Location" msgstr "" -#: machine/machine_types/label_printer.py:251 +#: machine/machine_types/label_printer.py:252 msgid "Scope the printer to a specific location" msgstr "" @@ -5307,79 +5488,75 @@ msgstr "" #: report/templates/report/inventree_purchase_order_report.html:31 #: report/templates/report/inventree_sales_order_report.html:31 #: templates/js/translated/order.js:352 -#: templates/js/translated/purchase_order.js:2195 -#: templates/js/translated/sales_order.js:1883 +#: templates/js/translated/purchase_order.js:2179 +#: templates/js/translated/sales_order.js:1864 msgid "Total Price" msgstr "" -#: order/api.py:80 order/api.py:151 order/serializers.py:93 -#: order/templates/order/order_base.html:123 -#: order/templates/order/return_order_base.html:116 -#: order/templates/order/sales_order_base.html:125 +#: order/api.py:78 order/api.py:149 order/serializers.py:124 +#: order/templates/order/order_base.html:124 +#: order/templates/order/return_order_base.html:117 +#: order/templates/order/sales_order_base.html:126 msgid "Order Status" msgstr "" -#: order/api.py:88 order/templates/order/order_base.html:111 -#: order/templates/order/return_order_base.html:104 -#: order/templates/order/sales_order_base.html:113 +#: order/api.py:86 order/templates/order/order_base.html:112 +#: order/templates/order/return_order_base.html:105 +#: order/templates/order/sales_order_base.html:114 msgid "Order Reference" msgstr "" -#: order/api.py:116 templates/js/translated/table_filters.js:93 +#: order/api.py:114 order/api.py:1022 +#: templates/js/translated/table_filters.js:93 #: templates/js/translated/table_filters.js:625 #: templates/js/translated/table_filters.js:651 #: templates/js/translated/table_filters.js:666 msgid "Outstanding" msgstr "" -#: order/api.py:132 +#: order/api.py:130 msgid "Has Project Code" msgstr "" -#: order/api.py:155 templates/js/translated/table_filters.js:201 +#: order/api.py:153 templates/js/translated/table_filters.js:201 #: templates/js/translated/table_filters.js:791 msgid "Has Pricing" msgstr "" -#: order/api.py:230 -msgid "No matching purchase order found" -msgstr "" - -#: order/api.py:425 order/api.py:763 order/models.py:1484 order/models.py:1598 -#: order/models.py:1649 order/models.py:1764 order/models.py:1923 -#: order/models.py:2383 order/models.py:2439 -#: templates/js/translated/sales_order.js:1524 +#: order/api.py:375 order/api.py:771 order/api.py:986 order/models.py:1500 +#: order/models.py:1614 order/models.py:1665 order/models.py:1793 +#: order/models.py:1956 order/models.py:2422 order/models.py:2478 +#: templates/js/translated/sales_order.js:1490 msgid "Order" msgstr "" -#: order/api.py:429 order/api.py:784 +#: order/api.py:379 order/api.py:809 msgid "Order Complete" msgstr "" -#: order/api.py:452 +#: order/api.py:430 msgid "Order Pending" msgstr "" -#: order/api.py:1404 order/models.py:379 order/models.py:1485 -#: order/models.py:1599 order/templates/order/order_base.html:9 -#: order/templates/order/order_base.html:18 +#: order/api.py:1526 order/models.py:386 order/models.py:1501 +#: order/models.py:1615 order/templates/order/order_base.html:10 +#: order/templates/order/order_base.html:19 #: report/templates/report/inventree_purchase_order_report.html:14 -#: stock/serializers.py:120 stock/templates/stock/item_base.html:176 +#: stock/serializers.py:121 stock/templates/stock/item_base.html:173 #: templates/email/overdue_purchase_order.html:15 #: templates/js/translated/part.js:1752 templates/js/translated/pricing.js:804 -#: templates/js/translated/purchase_order.js:168 -#: templates/js/translated/purchase_order.js:753 -#: templates/js/translated/purchase_order.js:1743 -#: templates/js/translated/stock.js:2345 templates/js/translated/stock.js:2991 +#: templates/js/translated/purchase_order.js:736 +#: templates/js/translated/purchase_order.js:1727 +#: templates/js/translated/stock.js:2346 templates/js/translated/stock.js:2992 msgid "Purchase Order" msgstr "" -#: order/api.py:1408 order/models.py:2091 order/models.py:2384 -#: order/models.py:2440 order/templates/order/return_order_base.html:9 -#: order/templates/order/return_order_base.html:28 +#: order/api.py:1530 order/models.py:2124 order/models.py:2423 +#: order/models.py:2479 order/templates/order/return_order_base.html:10 +#: order/templates/order/return_order_base.html:29 #: report/templates/report/inventree_return_order_report.html:13 #: templates/js/translated/return_order.js:280 -#: templates/js/translated/stock.js:3025 +#: templates/js/translated/stock.js:3026 msgid "Return Order" msgstr "" @@ -5387,751 +5564,782 @@ msgstr "" msgid "Total price for this order" msgstr "" -#: order/models.py:95 order/serializers.py:71 +#: order/models.py:95 order/serializers.py:73 msgid "Order Currency" msgstr "" -#: order/models.py:98 order/serializers.py:72 +#: order/models.py:98 order/serializers.py:74 msgid "Currency for this order (leave blank to use company default)" msgstr "" -#: order/models.py:246 +#: order/models.py:243 msgid "Contact does not match selected company" msgstr "" -#: order/models.py:289 +#: order/models.py:296 msgid "Order description (optional)" msgstr "" -#: order/models.py:298 +#: order/models.py:305 msgid "Select project code for this order" msgstr "" -#: order/models.py:302 order/models.py:1385 order/models.py:1817 +#: order/models.py:309 order/models.py:1402 order/models.py:1846 msgid "Link to external page" msgstr "" -#: order/models.py:310 +#: order/models.py:317 msgid "Expected date for order delivery. Order will be overdue after this date." msgstr "" -#: order/models.py:324 +#: order/models.py:331 msgid "Created By" msgstr "" -#: order/models.py:332 +#: order/models.py:339 msgid "User or group responsible for this order" msgstr "" -#: order/models.py:343 +#: order/models.py:350 msgid "Point of contact for this order" msgstr "" -#: order/models.py:353 +#: order/models.py:360 msgid "Company address for this order" msgstr "" -#: order/models.py:468 order/models.py:979 +#: order/models.py:480 order/models.py:1006 msgid "Order reference" msgstr "" -#: order/models.py:477 +#: order/models.py:489 msgid "Purchase order status" msgstr "" -#: order/models.py:492 +#: order/models.py:504 msgid "Company from which the items are being ordered" msgstr "" -#: order/models.py:503 order/templates/order/order_base.html:153 -#: templates/js/translated/purchase_order.js:1772 +#: order/models.py:515 order/templates/order/order_base.html:162 +#: templates/js/translated/purchase_order.js:1756 msgid "Supplier Reference" msgstr "" -#: order/models.py:504 +#: order/models.py:516 msgid "Supplier order reference code" msgstr "" -#: order/models.py:513 +#: order/models.py:525 msgid "received by" msgstr "" -#: order/models.py:519 order/models.py:2173 +#: order/models.py:531 order/models.py:2212 msgid "Issue Date" msgstr "" -#: order/models.py:520 order/models.py:2174 +#: order/models.py:532 order/models.py:2213 msgid "Date order was issued" msgstr "" -#: order/models.py:527 order/models.py:2181 +#: order/models.py:539 order/models.py:2220 msgid "Date order was completed" msgstr "" -#: order/models.py:571 +#: order/models.py:549 order/models.py:1552 +msgid "Destination for received items" +msgstr "" + +#: order/models.py:593 msgid "Part supplier must match PO supplier" msgstr "" -#: order/models.py:806 +#: order/models.py:828 msgid "Quantity must be a positive number" msgstr "" -#: order/models.py:991 +#: order/models.py:1018 msgid "Company to which the items are being sold" msgstr "" -#: order/models.py:1003 +#: order/models.py:1030 msgid "Sales order status" msgstr "" -#: order/models.py:1014 order/models.py:2166 +#: order/models.py:1041 order/models.py:2205 msgid "Customer Reference " msgstr "" -#: order/models.py:1015 order/models.py:2167 +#: order/models.py:1042 order/models.py:2206 msgid "Customer order reference code" msgstr "" -#: order/models.py:1019 order/models.py:1771 -#: templates/js/translated/sales_order.js:879 -#: templates/js/translated/sales_order.js:1060 +#: order/models.py:1046 order/models.py:1800 +#: templates/js/translated/sales_order.js:838 +#: templates/js/translated/sales_order.js:1026 msgid "Shipment Date" msgstr "" -#: order/models.py:1028 +#: order/models.py:1055 msgid "shipped by" msgstr "" -#: order/models.py:1077 +#: order/models.py:1094 msgid "Order is already complete" msgstr "" -#: order/models.py:1080 +#: order/models.py:1097 msgid "Order is already cancelled" msgstr "" -#: order/models.py:1084 +#: order/models.py:1101 msgid "Only an open order can be marked as complete" msgstr "" -#: order/models.py:1088 +#: order/models.py:1105 msgid "Order cannot be completed as there are incomplete shipments" msgstr "" -#: order/models.py:1093 +#: order/models.py:1110 msgid "Order cannot be completed as there are incomplete line items" msgstr "" -#: order/models.py:1357 +#: order/models.py:1374 msgid "Item quantity" msgstr "" -#: order/models.py:1374 +#: order/models.py:1391 msgid "Line item reference" msgstr "" -#: order/models.py:1381 +#: order/models.py:1398 msgid "Line item notes" msgstr "" -#: order/models.py:1393 +#: order/models.py:1410 msgid "Target date for this line item (leave blank to use the target date from the order)" msgstr "" -#: order/models.py:1414 +#: order/models.py:1431 msgid "Line item description (optional)" msgstr "" -#: order/models.py:1420 -msgid "Context" -msgstr "" - -#: order/models.py:1421 +#: order/models.py:1438 msgid "Additional context for this line" msgstr "" -#: order/models.py:1431 +#: order/models.py:1448 msgid "Unit price" msgstr "" -#: order/models.py:1445 +#: order/models.py:1462 msgid "Purchase Order Line Item" msgstr "" -#: order/models.py:1469 +#: order/models.py:1486 msgid "Supplier part must match supplier" msgstr "" -#: order/models.py:1476 -msgid "deleted" -msgstr "" - -#: order/models.py:1504 +#: order/models.py:1520 msgid "Supplier part" msgstr "" -#: order/models.py:1511 order/templates/order/order_base.html:201 +#: order/models.py:1527 order/templates/order/order_base.html:210 #: templates/js/translated/part.js:1876 templates/js/translated/part.js:1908 -#: templates/js/translated/purchase_order.js:1369 -#: templates/js/translated/purchase_order.js:2239 +#: templates/js/translated/purchase_order.js:1352 +#: templates/js/translated/purchase_order.js:2223 #: templates/js/translated/return_order.js:762 #: templates/js/translated/table_filters.js:119 #: templates/js/translated/table_filters.js:605 msgid "Received" msgstr "" -#: order/models.py:1512 +#: order/models.py:1528 msgid "Number of items received" msgstr "" -#: order/models.py:1520 stock/models.py:959 stock/serializers.py:610 -#: stock/templates/stock/item_base.html:183 -#: templates/js/translated/stock.js:2396 +#: order/models.py:1536 stock/models.py:1036 stock/serializers.py:637 +#: stock/templates/stock/item_base.html:180 +#: templates/js/translated/stock.js:2397 msgid "Purchase Price" msgstr "" -#: order/models.py:1521 +#: order/models.py:1537 msgid "Unit purchase price" msgstr "" -#: order/models.py:1536 -msgid "Where does the Purchaser want this item to be stored?" -msgstr "" - -#: order/models.py:1587 +#: order/models.py:1603 msgid "Purchase Order Extra Line" msgstr "" -#: order/models.py:1616 +#: order/models.py:1632 msgid "Sales Order Line Item" msgstr "" -#: order/models.py:1637 +#: order/models.py:1653 msgid "Virtual part cannot be assigned to a sales order" msgstr "" -#: order/models.py:1642 +#: order/models.py:1658 msgid "Only salable parts can be assigned to a sales order" msgstr "" -#: order/models.py:1668 part/templates/part/part_pricing.html:107 -#: part/templates/part/prices.html:139 templates/js/translated/pricing.js:957 +#: order/models.py:1684 part/templates/part/part_pricing.html:107 +#: part/templates/part/prices.html:139 templates/js/translated/pricing.js:955 msgid "Sale Price" msgstr "" -#: order/models.py:1669 +#: order/models.py:1685 msgid "Unit sale price" msgstr "" -#: order/models.py:1678 order/status_codes.py:48 -#: templates/js/translated/sales_order.js:1559 -#: templates/js/translated/sales_order.js:1680 -#: templates/js/translated/sales_order.js:1993 +#: order/models.py:1694 order/status_codes.py:50 +#: templates/js/translated/sales_order.js:1525 +#: templates/js/translated/sales_order.js:1661 +#: templates/js/translated/sales_order.js:1974 msgid "Shipped" msgstr "Изпратено" -#: order/models.py:1679 +#: order/models.py:1695 msgid "Shipped quantity" msgstr "" -#: order/models.py:1751 +#: order/models.py:1769 msgid "Sales Order Shipment" msgstr "" -#: order/models.py:1772 +#: order/models.py:1801 msgid "Date of shipment" msgstr "" -#: order/models.py:1778 templates/js/translated/sales_order.js:1072 +#: order/models.py:1807 templates/js/translated/sales_order.js:1038 msgid "Delivery Date" msgstr "" -#: order/models.py:1779 +#: order/models.py:1808 msgid "Date of delivery of shipment" msgstr "" -#: order/models.py:1787 +#: order/models.py:1816 msgid "Checked By" msgstr "" -#: order/models.py:1788 +#: order/models.py:1817 msgid "User who checked this shipment" msgstr "" -#: order/models.py:1795 order/models.py:2018 order/serializers.py:1475 -#: order/serializers.py:1585 templates/js/translated/model_renderers.js:455 +#: order/models.py:1824 order/models.py:2051 order/serializers.py:1601 +#: order/serializers.py:1725 +#: report/templates/report/inventree_sales_order_shipment_report.html:14 +#: templates/js/translated/model_renderers.js:458 +#: templates/js/translated/sales_order.js:1615 msgid "Shipment" msgstr "" -#: order/models.py:1796 +#: order/models.py:1825 msgid "Shipment number" msgstr "" -#: order/models.py:1804 +#: order/models.py:1833 msgid "Tracking Number" msgstr "" -#: order/models.py:1805 +#: order/models.py:1834 msgid "Shipment tracking information" msgstr "" -#: order/models.py:1812 +#: order/models.py:1841 msgid "Invoice Number" msgstr "" -#: order/models.py:1813 +#: order/models.py:1842 msgid "Reference number for associated invoice" msgstr "" -#: order/models.py:1833 +#: order/models.py:1862 msgid "Shipment has already been sent" msgstr "" -#: order/models.py:1836 +#: order/models.py:1865 msgid "Shipment has no allocated stock items" msgstr "" -#: order/models.py:1912 +#: order/models.py:1945 msgid "Sales Order Extra Line" msgstr "" -#: order/models.py:1941 +#: order/models.py:1974 msgid "Sales Order Allocation" msgstr "" -#: order/models.py:1964 order/models.py:1966 +#: order/models.py:1997 order/models.py:1999 msgid "Stock item has not been assigned" msgstr "" -#: order/models.py:1973 +#: order/models.py:2006 msgid "Cannot allocate stock item to a line with a different part" msgstr "" -#: order/models.py:1976 +#: order/models.py:2009 msgid "Cannot allocate stock to a line without a part" msgstr "" -#: order/models.py:1979 +#: order/models.py:2012 msgid "Allocation quantity cannot exceed stock quantity" msgstr "" -#: order/models.py:1998 order/serializers.py:1345 +#: order/models.py:2031 order/serializers.py:1471 msgid "Quantity must be 1 for serialized stock item" msgstr "" -#: order/models.py:2001 +#: order/models.py:2034 msgid "Sales order does not match shipment" msgstr "" -#: order/models.py:2002 plugin/base/barcodes/api.py:524 +#: order/models.py:2035 plugin/base/barcodes/api.py:629 msgid "Shipment does not match sales order" msgstr "" -#: order/models.py:2010 +#: order/models.py:2043 msgid "Line" msgstr "" -#: order/models.py:2019 +#: order/models.py:2052 msgid "Sales order shipment reference" msgstr "" -#: order/models.py:2032 order/models.py:2391 +#: order/models.py:2065 order/models.py:2430 #: templates/js/translated/return_order.js:720 msgid "Item" msgstr "" -#: order/models.py:2033 +#: order/models.py:2066 msgid "Select stock item to allocate" msgstr "" -#: order/models.py:2042 +#: order/models.py:2075 msgid "Enter stock allocation quantity" msgstr "" -#: order/models.py:2136 +#: order/models.py:2175 msgid "Return Order reference" msgstr "" -#: order/models.py:2148 +#: order/models.py:2187 msgid "Company from which items are being returned" msgstr "" -#: order/models.py:2160 +#: order/models.py:2199 msgid "Return order status" msgstr "" -#: order/models.py:2362 +#: order/models.py:2401 msgid "Return Order Line Item" msgstr "" -#: order/models.py:2376 +#: order/models.py:2415 msgid "Only serialized items can be assigned to a Return Order" msgstr "" -#: order/models.py:2392 +#: order/models.py:2431 msgid "Select item to return from customer" msgstr "" -#: order/models.py:2398 +#: order/models.py:2437 msgid "Received Date" msgstr "" -#: order/models.py:2399 +#: order/models.py:2438 msgid "The date this this return item was received" msgstr "" -#: order/models.py:2410 templates/js/translated/return_order.js:731 +#: order/models.py:2449 templates/js/translated/return_order.js:731 #: templates/js/translated/table_filters.js:122 msgid "Outcome" msgstr "" -#: order/models.py:2411 +#: order/models.py:2450 msgid "Outcome for this line item" msgstr "" -#: order/models.py:2418 +#: order/models.py:2457 msgid "Cost associated with return or repair for this line item" msgstr "" -#: order/models.py:2428 +#: order/models.py:2467 msgid "Return Order Extra Line" msgstr "" -#: order/serializers.py:86 +#: order/serializers.py:87 +msgid "Order ID" +msgstr "" + +#: order/serializers.py:87 +msgid "ID of the order to duplicate" +msgstr "" + +#: order/serializers.py:93 +msgid "Copy Lines" +msgstr "" + +#: order/serializers.py:94 +msgid "Copy line items from the original order" +msgstr "" + +#: order/serializers.py:100 +msgid "Copy Extra Lines" +msgstr "" + +#: order/serializers.py:101 +msgid "Copy extra line items from the original order" +msgstr "" + +#: order/serializers.py:117 msgid "Completed Lines" msgstr "" -#: order/serializers.py:283 stock/admin.py:195 +#: order/serializers.py:161 +msgid "Duplicate Order" +msgstr "" + +#: order/serializers.py:162 +msgid "Specify options for duplicating this order" +msgstr "" + +#: order/serializers.py:234 +msgid "Invalid order ID" +msgstr "" + +#: order/serializers.py:374 stock/admin.py:196 msgid "Supplier Name" msgstr "" -#: order/serializers.py:331 +#: order/serializers.py:416 msgid "Order cannot be cancelled" msgstr "" -#: order/serializers.py:346 order/serializers.py:1366 +#: order/serializers.py:431 order/serializers.py:1492 msgid "Allow order to be closed with incomplete line items" msgstr "" -#: order/serializers.py:356 order/serializers.py:1376 +#: order/serializers.py:441 order/serializers.py:1502 msgid "Order has incomplete line items" msgstr "" -#: order/serializers.py:506 +#: order/serializers.py:591 msgid "Order is not open" msgstr "" -#: order/serializers.py:527 +#: order/serializers.py:612 msgid "Auto Pricing" msgstr "" -#: order/serializers.py:529 +#: order/serializers.py:614 msgid "Automatically calculate purchase price based on supplier part data" msgstr "" -#: order/serializers.py:539 +#: order/serializers.py:624 msgid "Purchase price currency" msgstr "" -#: order/serializers.py:545 +#: order/serializers.py:630 msgid "Merge Items" msgstr "" -#: order/serializers.py:547 +#: order/serializers.py:632 msgid "Merge items with the same part, destination and target date into one line item" msgstr "" -#: order/serializers.py:560 part/models.py:1033 +#: order/serializers.py:645 part/models.py:1094 part/serializers.py:387 msgid "Internal Part Number" msgstr "" -#: order/serializers.py:568 +#: order/serializers.py:653 msgid "Internal Part Name" msgstr "" -#: order/serializers.py:584 +#: order/serializers.py:669 msgid "Supplier part must be specified" msgstr "" -#: order/serializers.py:587 +#: order/serializers.py:672 msgid "Purchase order must be specified" msgstr "" -#: order/serializers.py:595 +#: order/serializers.py:680 msgid "Supplier must match purchase order" msgstr "" -#: order/serializers.py:596 +#: order/serializers.py:681 msgid "Purchase order must match supplier" msgstr "" -#: order/serializers.py:639 order/serializers.py:1446 +#: order/serializers.py:724 order/serializers.py:1572 msgid "Line Item" msgstr "" -#: order/serializers.py:645 +#: order/serializers.py:730 msgid "Line item does not match purchase order" msgstr "" -#: order/serializers.py:655 order/serializers.py:779 order/serializers.py:1782 +#: order/serializers.py:740 order/serializers.py:881 order/serializers.py:1934 msgid "Select destination location for received items" msgstr "" -#: order/serializers.py:671 templates/js/translated/purchase_order.js:1130 +#: order/serializers.py:756 templates/js/translated/purchase_order.js:1113 #: templates/js/translated/stock.js:1200 msgid "Enter batch code for incoming stock items" msgstr "" -#: order/serializers.py:679 templates/js/translated/purchase_order.js:1155 +#: order/serializers.py:764 templates/js/translated/purchase_order.js:1138 msgid "Enter serial numbers for incoming stock items" msgstr "" -#: order/serializers.py:691 +#: order/serializers.py:776 msgid "Override packaging information for incoming stock items" msgstr "" -#: order/serializers.py:699 +#: order/serializers.py:784 msgid "Additional note for incoming stock items" msgstr "" -#: order/serializers.py:706 templates/js/translated/barcode.js:52 +#: order/serializers.py:791 templates/js/translated/barcode.js:52 msgid "Barcode" msgstr "" -#: order/serializers.py:707 +#: order/serializers.py:792 msgid "Scanned barcode" msgstr "" -#: order/serializers.py:723 +#: order/serializers.py:808 msgid "Barcode is already in use" msgstr "" -#: order/serializers.py:747 +#: order/serializers.py:831 msgid "An integer quantity must be provided for trackable parts" msgstr "" -#: order/serializers.py:795 order/serializers.py:1798 +#: order/serializers.py:898 order/serializers.py:1950 msgid "Line items must be provided" msgstr "" -#: order/serializers.py:811 +#: order/serializers.py:914 msgid "Destination location must be specified" msgstr "" -#: order/serializers.py:822 +#: order/serializers.py:925 msgid "Supplied barcode values must be unique" msgstr "" -#: order/serializers.py:1187 +#: order/serializers.py:1221 msgid "Sale price currency" msgstr "" -#: order/serializers.py:1248 +#: order/serializers.py:1260 +msgid "Allocated Items" +msgstr "" + +#: order/serializers.py:1374 msgid "No shipment details provided" msgstr "" -#: order/serializers.py:1309 order/serializers.py:1455 +#: order/serializers.py:1435 order/serializers.py:1581 msgid "Line item is not associated with this order" msgstr "" -#: order/serializers.py:1328 +#: order/serializers.py:1454 msgid "Quantity must be positive" msgstr "" -#: order/serializers.py:1465 +#: order/serializers.py:1591 msgid "Enter serial numbers to allocate" msgstr "" -#: order/serializers.py:1487 order/serializers.py:1593 +#: order/serializers.py:1613 order/serializers.py:1733 msgid "Shipment has already been shipped" msgstr "" -#: order/serializers.py:1490 order/serializers.py:1596 +#: order/serializers.py:1616 order/serializers.py:1736 msgid "Shipment is not associated with this order" msgstr "" -#: order/serializers.py:1537 +#: order/serializers.py:1671 msgid "No match found for the following serial numbers" msgstr "" -#: order/serializers.py:1544 -msgid "The following serial numbers are already allocated" +#: order/serializers.py:1678 +msgid "The following serial numbers are unavailable" msgstr "" -#: order/serializers.py:1752 +#: order/serializers.py:1904 msgid "Return order line item" msgstr "" -#: order/serializers.py:1758 +#: order/serializers.py:1910 msgid "Line item does not match return order" msgstr "" -#: order/serializers.py:1761 +#: order/serializers.py:1913 msgid "Line item has already been received" msgstr "" -#: order/serializers.py:1790 +#: order/serializers.py:1942 msgid "Items can only be received against orders which are in progress" msgstr "" -#: order/serializers.py:1873 +#: order/serializers.py:2025 msgid "Line price currency" msgstr "" -#: order/status_codes.py:17 order/status_codes.py:52 stock/status_codes.py:16 +#: order/status_codes.py:17 order/status_codes.py:54 stock/status_codes.py:16 msgid "Lost" msgstr "Изгубен" -#: order/status_codes.py:18 order/status_codes.py:53 stock/status_codes.py:22 +#: order/status_codes.py:18 order/status_codes.py:55 stock/status_codes.py:24 msgid "Returned" msgstr "Върнат" -#: order/status_codes.py:45 order/status_codes.py:77 +#: order/status_codes.py:47 order/status_codes.py:79 msgid "In Progress" msgstr "Изпълнява се" -#: order/status_codes.py:101 +#: order/status_codes.py:105 msgid "Return" msgstr "" -#: order/status_codes.py:104 +#: order/status_codes.py:108 msgid "Repair" msgstr "" -#: order/status_codes.py:107 +#: order/status_codes.py:111 msgid "Replace" msgstr "" -#: order/status_codes.py:110 +#: order/status_codes.py:114 msgid "Refund" msgstr "" -#: order/status_codes.py:113 +#: order/status_codes.py:117 msgid "Reject" msgstr "" -#: order/tasks.py:25 +#: order/tasks.py:30 msgid "Overdue Purchase Order" msgstr "" -#: order/tasks.py:30 +#: order/tasks.py:35 #, python-brace-format msgid "Purchase order {po} is now overdue" msgstr "" -#: order/tasks.py:75 +#: order/tasks.py:80 msgid "Overdue Sales Order" msgstr "" -#: order/tasks.py:80 +#: order/tasks.py:85 #, python-brace-format msgid "Sales order {so} is now overdue" msgstr "" -#: order/templates/order/order_base.html:51 +#: order/templates/order/order_base.html:52 msgid "Print purchase order report" msgstr "" -#: order/templates/order/order_base.html:53 -#: order/templates/order/return_order_base.html:62 -#: order/templates/order/sales_order_base.html:62 +#: order/templates/order/order_base.html:54 +#: order/templates/order/return_order_base.html:63 +#: order/templates/order/sales_order_base.html:63 msgid "Export order to file" msgstr "" -#: order/templates/order/order_base.html:59 -#: order/templates/order/return_order_base.html:72 -#: order/templates/order/sales_order_base.html:71 +#: order/templates/order/order_base.html:60 +#: order/templates/order/return_order_base.html:73 +#: order/templates/order/sales_order_base.html:72 msgid "Order actions" msgstr "" -#: order/templates/order/order_base.html:64 -#: order/templates/order/return_order_base.html:76 -#: order/templates/order/sales_order_base.html:75 +#: order/templates/order/order_base.html:65 +#: order/templates/order/return_order_base.html:77 +#: order/templates/order/sales_order_base.html:76 msgid "Edit order" msgstr "" -#: order/templates/order/order_base.html:68 +#: order/templates/order/order_base.html:69 msgid "Duplicate order" msgstr "" -#: order/templates/order/order_base.html:73 -#: order/templates/order/return_order_base.html:78 -#: order/templates/order/sales_order_base.html:77 +#: order/templates/order/order_base.html:74 +#: order/templates/order/return_order_base.html:79 +#: order/templates/order/sales_order_base.html:78 msgid "Hold order" msgstr "" -#: order/templates/order/order_base.html:78 -#: order/templates/order/return_order_base.html:81 -#: order/templates/order/sales_order_base.html:80 +#: order/templates/order/order_base.html:79 +#: order/templates/order/return_order_base.html:82 +#: order/templates/order/sales_order_base.html:81 msgid "Cancel order" msgstr "" -#: order/templates/order/order_base.html:84 #: order/templates/order/order_base.html:85 -#: order/templates/order/return_order_base.html:85 +#: order/templates/order/order_base.html:86 #: order/templates/order/return_order_base.html:86 -#: order/templates/order/sales_order_base.html:86 +#: order/templates/order/return_order_base.html:87 #: order/templates/order/sales_order_base.html:87 +#: order/templates/order/sales_order_base.html:88 msgid "Issue Order" msgstr "" -#: order/templates/order/order_base.html:88 -#: order/templates/order/return_order_base.html:89 -msgid "Mark order as complete" -msgstr "" - #: order/templates/order/order_base.html:89 #: order/templates/order/return_order_base.html:90 -#: order/templates/order/sales_order_base.html:100 +msgid "Mark order as complete" +msgstr "" + +#: order/templates/order/order_base.html:90 +#: order/templates/order/return_order_base.html:91 +#: order/templates/order/sales_order_base.html:101 msgid "Complete Order" msgstr "" -#: order/templates/order/order_base.html:96 +#: order/templates/order/order_base.html:97 msgid "Supplier part thumbnail" msgstr "" -#: order/templates/order/order_base.html:116 -#: order/templates/order/return_order_base.html:109 -#: order/templates/order/sales_order_base.html:118 +#: order/templates/order/order_base.html:117 +#: order/templates/order/return_order_base.html:110 +#: order/templates/order/sales_order_base.html:119 msgid "Order Description" msgstr "" -#: order/templates/order/order_base.html:146 -msgid "No suppplier information available" -msgstr "" - -#: order/templates/order/order_base.html:159 -#: order/templates/order/sales_order_base.html:164 +#: order/templates/order/order_base.html:168 +#: order/templates/order/sales_order_base.html:165 msgid "Completed Line Items" msgstr "" -#: order/templates/order/order_base.html:165 -#: order/templates/order/sales_order_base.html:170 -#: order/templates/order/sales_order_base.html:180 +#: order/templates/order/order_base.html:174 +#: order/templates/order/sales_order_base.html:171 +#: order/templates/order/sales_order_base.html:181 msgid "Incomplete" msgstr "" -#: order/templates/order/order_base.html:184 -#: order/templates/order/return_order_base.html:160 +#: order/templates/order/order_base.html:193 +#: order/templates/order/return_order_base.html:161 #: report/templates/report/inventree_build_order_report.html:121 msgid "Issued" msgstr "" -#: order/templates/order/order_base.html:229 +#: order/templates/order/order_base.html:238 msgid "Total cost" msgstr "" -#: order/templates/order/order_base.html:233 -#: order/templates/order/return_order_base.html:202 -#: order/templates/order/sales_order_base.html:246 +#: order/templates/order/order_base.html:242 +#: order/templates/order/return_order_base.html:203 +#: order/templates/order/sales_order_base.html:247 msgid "Total cost could not be calculated" msgstr "" -#: order/templates/order/order_base.html:335 +#: order/templates/order/order_base.html:344 msgid "Purchase Order QR Code" msgstr "" -#: order/templates/order/order_base.html:347 +#: order/templates/order/order_base.html:356 msgid "Link Barcode to Purchase Order" msgstr "" @@ -6184,12 +6392,12 @@ msgstr "" #: part/templates/part/import_wizard/ajax_match_references.html:42 #: part/templates/part/import_wizard/match_fields.html:71 #: part/templates/part/import_wizard/match_references.html:49 -#: templates/js/translated/bom.js:133 templates/js/translated/build.js:530 -#: templates/js/translated/build.js:1802 -#: templates/js/translated/purchase_order.js:696 -#: templates/js/translated/purchase_order.js:1288 +#: templates/js/translated/bom.js:133 templates/js/translated/build.js:533 +#: templates/js/translated/build.js:1805 +#: templates/js/translated/purchase_order.js:679 +#: templates/js/translated/purchase_order.js:1271 #: templates/js/translated/return_order.js:505 -#: templates/js/translated/sales_order.js:1145 +#: templates/js/translated/sales_order.js:1111 #: templates/js/translated/stock.js:720 templates/js/translated/stock.js:889 #: templates/patterns/wizard/match_fields.html:70 msgid "Remove row" @@ -6242,7 +6450,7 @@ msgstr "" #: order/templates/order/purchase_order_detail.html:27 #: order/templates/order/return_order_detail.html:24 #: order/templates/order/sales_order_detail.html:24 -#: templates/js/translated/purchase_order.js:414 +#: templates/js/translated/purchase_order.js:397 #: templates/js/translated/return_order.js:458 #: templates/js/translated/sales_order.js:237 msgid "Add Line Item" @@ -6277,45 +6485,45 @@ msgstr "" msgid "Order Notes" msgstr "" -#: order/templates/order/return_order_base.html:18 -#: order/templates/order/sales_order_base.html:18 +#: order/templates/order/return_order_base.html:19 +#: order/templates/order/sales_order_base.html:19 msgid "Customer logo thumbnail" msgstr "" -#: order/templates/order/return_order_base.html:60 +#: order/templates/order/return_order_base.html:61 msgid "Print return order report" msgstr "" -#: order/templates/order/return_order_base.html:64 -#: order/templates/order/sales_order_base.html:64 +#: order/templates/order/return_order_base.html:65 +#: order/templates/order/sales_order_base.html:65 msgid "Print packing list" msgstr "" -#: order/templates/order/return_order_base.html:141 -#: order/templates/order/sales_order_base.html:158 +#: order/templates/order/return_order_base.html:142 +#: order/templates/order/sales_order_base.html:159 #: templates/js/translated/return_order.js:308 -#: templates/js/translated/sales_order.js:833 +#: templates/js/translated/sales_order.js:792 msgid "Customer Reference" msgstr "" -#: order/templates/order/return_order_base.html:198 -#: order/templates/order/sales_order_base.html:242 +#: order/templates/order/return_order_base.html:199 +#: order/templates/order/sales_order_base.html:243 #: part/templates/part/part_pricing.html:32 #: part/templates/part/part_pricing.html:58 #: part/templates/part/part_pricing.html:99 #: part/templates/part/part_pricing.html:114 #: templates/js/translated/part.js:1079 -#: templates/js/translated/purchase_order.js:1822 +#: templates/js/translated/purchase_order.js:1806 #: templates/js/translated/return_order.js:380 -#: templates/js/translated/sales_order.js:891 +#: templates/js/translated/sales_order.js:850 msgid "Total Cost" msgstr "" -#: order/templates/order/return_order_base.html:273 +#: order/templates/order/return_order_base.html:274 msgid "Return Order QR Code" msgstr "" -#: order/templates/order/return_order_base.html:285 +#: order/templates/order/return_order_base.html:286 msgid "Link Barcode to Return Order" msgstr "" @@ -6323,40 +6531,40 @@ msgstr "" msgid "Order Details" msgstr "" -#: order/templates/order/sales_order_base.html:60 +#: order/templates/order/sales_order_base.html:61 msgid "Print sales order report" msgstr "" -#: order/templates/order/sales_order_base.html:91 #: order/templates/order/sales_order_base.html:92 +#: order/templates/order/sales_order_base.html:93 msgid "Ship Items" msgstr "" -#: order/templates/order/sales_order_base.html:95 #: order/templates/order/sales_order_base.html:96 +#: order/templates/order/sales_order_base.html:97 msgid "Mark As Shipped" msgstr "" -#: order/templates/order/sales_order_base.html:99 -#: templates/js/translated/sales_order.js:536 +#: order/templates/order/sales_order_base.html:100 +#: templates/js/translated/sales_order.js:495 msgid "Complete Sales Order" msgstr "" -#: order/templates/order/sales_order_base.html:138 +#: order/templates/order/sales_order_base.html:139 msgid "This Sales Order has not been fully allocated" msgstr "" -#: order/templates/order/sales_order_base.html:176 +#: order/templates/order/sales_order_base.html:177 #: order/templates/order/sales_order_detail.html:99 #: order/templates/order/so_sidebar.html:11 msgid "Completed Shipments" msgstr "" -#: order/templates/order/sales_order_base.html:339 +#: order/templates/order/sales_order_base.html:340 msgid "Sales Order QR Code" msgstr "" -#: order/templates/order/sales_order_base.html:351 +#: order/templates/order/sales_order_base.html:352 msgid "Link Barcode to Sales Order" msgstr "" @@ -6370,7 +6578,7 @@ msgid "Pending Shipments" msgstr "" #: order/templates/order/sales_order_detail.html:71 -#: templates/js/translated/bom.js:1277 templates/js/translated/build.js:1063 +#: templates/js/translated/bom.js:1277 templates/js/translated/build.js:1066 #: templates/js/translated/filters.js:299 msgid "Actions" msgstr "" @@ -6383,39 +6591,40 @@ msgstr "" msgid "Match Supplier Parts" msgstr "" -#: order/views.py:406 +#: order/views.py:407 msgid "Sales order not found" msgstr "" -#: order/views.py:412 +#: order/views.py:413 msgid "Price not found" msgstr "" -#: order/views.py:415 +#: order/views.py:416 #, python-brace-format msgid "Updated {part} unit-price to {price}" msgstr "" -#: order/views.py:421 +#: order/views.py:422 #, python-brace-format msgid "Updated {part} unit-price to {price} and quantity to {qty}" msgstr "" -#: part/admin.py:48 part/models.py:1032 part/templates/part/part_base.html:269 +#: part/admin.py:48 part/models.py:1093 part/serializers.py:939 +#: part/templates/part/part_base.html:277 #: report/templates/report/inventree_stock_location_report.html:103 #: templates/js/translated/part.js:1233 templates/js/translated/part.js:2347 -#: templates/js/translated/stock.js:2121 +#: templates/js/translated/stock.js:2122 msgid "IPN" msgstr "" -#: part/admin.py:50 part/models.py:1041 part/templates/part/part_base.html:286 +#: part/admin.py:50 part/models.py:1102 part/templates/part/part_base.html:294 #: report/models.py:161 templates/js/translated/part.js:1238 #: templates/js/translated/part.js:2353 msgid "Revision" msgstr "" -#: part/admin.py:53 part/admin.py:319 part/models.py:1014 -#: part/templates/part/category.html:91 part/templates/part/part_base.html:307 +#: part/admin.py:53 part/admin.py:319 part/models.py:1075 +#: part/templates/part/category.html:91 part/templates/part/part_base.html:315 msgid "Keywords" msgstr "" @@ -6427,7 +6636,7 @@ msgstr "" msgid "Category ID" msgstr "" -#: part/admin.py:67 part/admin.py:304 part/serializers.py:880 +#: part/admin.py:67 part/admin.py:304 part/serializers.py:924 #: part/stocktake.py:222 msgid "Category Name" msgstr "" @@ -6440,11 +6649,11 @@ msgstr "" msgid "Default Supplier ID" msgstr "" -#: part/admin.py:81 part/models.py:1000 part/templates/part/part_base.html:177 +#: part/admin.py:81 part/models.py:1061 part/templates/part/part_base.html:178 msgid "Variant Of" msgstr "" -#: part/admin.py:84 part/models.py:1138 part/templates/part/part_base.html:203 +#: part/admin.py:84 part/models.py:1199 part/templates/part/part_base.html:204 msgid "Minimum Stock" msgstr "" @@ -6452,23 +6661,23 @@ msgstr "" msgid "Used In" msgstr "" -#: part/admin.py:150 part/serializers.py:897 -#: part/templates/part/part_base.html:241 stock/admin.py:235 +#: part/admin.py:150 part/serializers.py:949 +#: part/templates/part/part_base.html:249 stock/admin.py:236 #: templates/js/translated/part.js:717 templates/js/translated/part.js:2159 msgid "Building" msgstr "" -#: part/admin.py:155 part/models.py:3202 part/models.py:3216 +#: part/admin.py:155 part/models.py:3253 part/models.py:3267 #: templates/js/translated/part.js:976 msgid "Minimum Cost" msgstr "" -#: part/admin.py:158 part/models.py:3209 part/models.py:3223 +#: part/admin.py:158 part/models.py:3260 part/models.py:3274 #: templates/js/translated/part.js:986 msgid "Maximum Cost" msgstr "" -#: part/admin.py:308 part/admin.py:387 stock/admin.py:57 stock/admin.py:215 +#: part/admin.py:308 part/admin.py:387 stock/admin.py:57 stock/admin.py:216 msgid "Parent ID" msgstr "" @@ -6481,8 +6690,8 @@ msgstr "" msgid "Category Path" msgstr "" -#: part/admin.py:325 part/models.py:425 part/serializers.py:130 -#: part/serializers.py:290 part/serializers.py:415 +#: part/admin.py:325 part/models.py:420 part/serializers.py:130 +#: part/serializers.py:323 part/serializers.py:459 #: part/templates/part/cat_link.html:3 part/templates/part/category.html:20 #: part/templates/part/category.html:138 part/templates/part/category.html:158 #: part/templates/part/category_sidebar.html:9 @@ -6509,15 +6718,15 @@ msgstr "" msgid "Part Revision" msgstr "" -#: part/admin.py:418 part/serializers.py:1346 +#: part/admin.py:418 part/serializers.py:1400 #: templates/js/translated/pricing.js:358 -#: templates/js/translated/pricing.js:1024 +#: templates/js/translated/pricing.js:1022 msgid "Minimum Price" msgstr "" -#: part/admin.py:423 part/serializers.py:1361 +#: part/admin.py:423 part/serializers.py:1415 #: templates/js/translated/pricing.js:353 -#: templates/js/translated/pricing.js:1032 +#: templates/js/translated/pricing.js:1030 msgid "Maximum Price" msgstr "" @@ -6545,94 +6754,98 @@ msgstr "" msgid "Filter by top-level categories" msgstr "" +#: part/api.py:156 stock/api.py:343 +msgid "Cascade" +msgstr "" + #: part/api.py:158 msgid "Include sub-categories in filtered results" msgstr "" -#: part/api.py:179 templates/js/translated/part.js:311 +#: part/api.py:178 templates/js/translated/part.js:311 msgid "Parent" msgstr "" -#: part/api.py:181 +#: part/api.py:180 msgid "Filter by parent category" msgstr "" -#: part/api.py:214 +#: part/api.py:213 msgid "Exclude Tree" msgstr "" -#: part/api.py:216 +#: part/api.py:215 msgid "Exclude sub-categories under the specified category" msgstr "" -#: part/api.py:441 +#: part/api.py:440 msgid "Has Results" msgstr "" -#: part/api.py:608 +#: part/api.py:604 msgid "Incoming Purchase Order" msgstr "" -#: part/api.py:626 +#: part/api.py:618 msgid "Outgoing Sales Order" msgstr "" -#: part/api.py:642 +#: part/api.py:630 msgid "Stock produced by Build Order" msgstr "" -#: part/api.py:726 +#: part/api.py:712 msgid "Stock required for Build Order" msgstr "" -#: part/api.py:874 +#: part/api.py:858 msgid "Validate entire Bill of Materials" msgstr "" -#: part/api.py:880 +#: part/api.py:864 msgid "This option must be selected" msgstr "" -#: part/api.py:916 +#: part/api.py:900 msgid "Is Revision" msgstr "" -#: part/api.py:926 +#: part/api.py:910 msgid "Has Revisions" msgstr "" -#: part/api.py:1117 +#: part/api.py:1101 msgid "BOM Valid" msgstr "" -#: part/api.py:1523 part/models.py:1024 part/models.py:3489 part/models.py:4046 -#: part/serializers.py:430 part/serializers.py:1202 -#: part/templates/part/part_base.html:260 stock/api.py:781 +#: part/api.py:1509 part/models.py:1085 part/models.py:3540 part/models.py:4104 +#: part/serializers.py:474 part/serializers.py:1255 +#: part/templates/part/part_base.html:268 stock/api.py:781 #: templates/InvenTree/settings/settings_staff_js.html:300 #: templates/js/translated/notification.js:60 #: templates/js/translated/part.js:2383 msgid "Category" msgstr "" -#: part/api.py:1761 +#: part/api.py:1750 msgid "Assembly part is testable" msgstr "" -#: part/api.py:1770 +#: part/api.py:1759 msgid "Component part is testable" msgstr "" -#: part/api.py:1821 +#: part/api.py:1810 msgid "Uses" msgstr "" -#: part/bom.py:178 part/models.py:107 part/models.py:1077 -#: part/templates/part/category.html:113 part/templates/part/part_base.html:376 +#: part/bom.py:183 part/models.py:109 part/models.py:1138 +#: part/templates/part/category.html:113 part/templates/part/part_base.html:384 #: templates/js/translated/part.js:2397 msgid "Default Location" msgstr "" -#: part/bom.py:179 part/serializers.py:905 +#: part/bom.py:184 part/serializers.py:957 #: templates/email/low_stock_notification.html:16 msgid "Total Stock" msgstr "Цялостна наличност" @@ -6641,789 +6854,789 @@ msgstr "Цялостна наличност" msgid "Input quantity for price calculation" msgstr "" -#: part/models.py:88 part/models.py:4047 part/templates/part/category.html:16 +#: part/models.py:90 part/models.py:4105 part/templates/part/category.html:16 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "" -#: part/models.py:89 part/templates/part/category.html:133 +#: part/models.py:91 part/templates/part/category.html:133 #: templates/InvenTree/search.html:97 templates/js/translated/search.js:158 #: users/models.py:202 msgid "Part Categories" msgstr "" -#: part/models.py:108 +#: part/models.py:110 msgid "Default location for parts in this category" msgstr "" -#: part/models.py:113 stock/models.py:187 templates/js/translated/part.js:2828 -#: templates/js/translated/stock.js:2856 +#: part/models.py:115 stock/models.py:193 templates/js/translated/part.js:2828 +#: templates/js/translated/stock.js:2857 #: templates/js/translated/table_filters.js:246 #: templates/js/translated/table_filters.js:290 msgid "Structural" msgstr "" -#: part/models.py:115 +#: part/models.py:117 msgid "Parts may not be directly assigned to a structural category, but may be assigned to child categories." msgstr "" -#: part/models.py:124 +#: part/models.py:126 msgid "Default keywords" msgstr "" -#: part/models.py:125 +#: part/models.py:127 msgid "Default keywords for parts in this category" msgstr "" -#: part/models.py:131 stock/models.py:90 stock/models.py:169 +#: part/models.py:133 stock/models.py:96 stock/models.py:175 #: templates/InvenTree/settings/settings_staff_js.html:445 msgid "Icon" msgstr "" -#: part/models.py:132 part/serializers.py:143 part/serializers.py:161 -#: stock/models.py:170 +#: part/models.py:134 part/serializers.py:143 part/serializers.py:161 +#: stock/models.py:176 msgid "Icon (optional)" msgstr "" -#: part/models.py:178 +#: part/models.py:180 msgid "You cannot make this part category structural because some parts are already assigned to it!" msgstr "" -#: part/models.py:519 +#: part/models.py:514 msgid "Cannot delete this part as it is locked" msgstr "" -#: part/models.py:522 +#: part/models.py:517 msgid "Cannot delete this part as it is still active" msgstr "" -#: part/models.py:527 +#: part/models.py:522 msgid "Cannot delete this part as it is used in an assembly" msgstr "" -#: part/models.py:565 +#: part/models.py:560 msgid "Invalid choice for parent part" msgstr "" -#: part/models.py:613 part/models.py:620 +#: part/models.py:608 part/models.py:615 #, python-brace-format msgid "Part '{self}' cannot be used in BOM for '{parent}' (recursive)" msgstr "" -#: part/models.py:632 +#: part/models.py:627 #, python-brace-format msgid "Part '{parent}' is used in BOM for '{self}' (recursive)" msgstr "" -#: part/models.py:695 +#: part/models.py:694 #, python-brace-format msgid "IPN must match regex pattern {pattern}" msgstr "" -#: part/models.py:703 +#: part/models.py:702 msgid "Part cannot be a revision of itself" msgstr "" -#: part/models.py:710 +#: part/models.py:709 msgid "Cannot make a revision of a part which is already a revision" msgstr "" -#: part/models.py:717 +#: part/models.py:716 msgid "Revision code must be specified" msgstr "" -#: part/models.py:724 +#: part/models.py:723 msgid "Revisions are only allowed for assembly parts" msgstr "" -#: part/models.py:731 +#: part/models.py:730 msgid "Cannot make a revision of a template part" msgstr "" -#: part/models.py:737 +#: part/models.py:736 msgid "Parent part must point to the same template" msgstr "" -#: part/models.py:816 +#: part/models.py:832 msgid "Stock item with this serial number already exists" msgstr "" -#: part/models.py:917 +#: part/models.py:976 msgid "Duplicate IPN not allowed in part settings" msgstr "" -#: part/models.py:926 +#: part/models.py:988 msgid "Duplicate part revision already exists." msgstr "" -#: part/models.py:936 +#: part/models.py:997 msgid "Part with this Name, IPN and Revision already exists." msgstr "" -#: part/models.py:951 +#: part/models.py:1012 msgid "Parts cannot be assigned to structural part categories!" msgstr "" -#: part/models.py:983 part/models.py:4102 +#: part/models.py:1044 part/models.py:4160 msgid "Part name" msgstr "" -#: part/models.py:988 +#: part/models.py:1049 msgid "Is Template" msgstr "" -#: part/models.py:989 +#: part/models.py:1050 msgid "Is this part a template part?" msgstr "" -#: part/models.py:999 +#: part/models.py:1060 msgid "Is this part a variant of another part?" msgstr "" -#: part/models.py:1007 +#: part/models.py:1068 msgid "Part description (optional)" msgstr "" -#: part/models.py:1015 +#: part/models.py:1076 msgid "Part keywords to improve visibility in search results" msgstr "" -#: part/models.py:1025 +#: part/models.py:1086 msgid "Part category" msgstr "" -#: part/models.py:1040 +#: part/models.py:1101 msgid "Part revision or version number" msgstr "" -#: part/models.py:1050 +#: part/models.py:1111 msgid "Is this part a revision of another part?" msgstr "" -#: part/models.py:1051 part/templates/part/part_base.html:277 +#: part/models.py:1112 part/templates/part/part_base.html:285 msgid "Revision Of" msgstr "" -#: part/models.py:1075 +#: part/models.py:1136 msgid "Where is this item normally stored?" msgstr "" -#: part/models.py:1121 part/templates/part/part_base.html:385 +#: part/models.py:1182 part/templates/part/part_base.html:393 msgid "Default Supplier" msgstr "" -#: part/models.py:1122 +#: part/models.py:1183 msgid "Default supplier part" msgstr "" -#: part/models.py:1129 +#: part/models.py:1190 msgid "Default Expiry" msgstr "" -#: part/models.py:1130 +#: part/models.py:1191 msgid "Expiry time (in days) for stock items of this part" msgstr "" -#: part/models.py:1139 +#: part/models.py:1200 msgid "Minimum allowed stock level" msgstr "" -#: part/models.py:1148 +#: part/models.py:1209 msgid "Units of measure for this part" msgstr "" -#: part/models.py:1155 +#: part/models.py:1216 msgid "Can this part be built from other parts?" msgstr "" -#: part/models.py:1161 +#: part/models.py:1222 msgid "Can this part be used to build other parts?" msgstr "" -#: part/models.py:1167 +#: part/models.py:1228 msgid "Does this part have tracking for unique items?" msgstr "" -#: part/models.py:1173 +#: part/models.py:1234 msgid "Can this part have test results recorded against it?" msgstr "" -#: part/models.py:1179 +#: part/models.py:1240 msgid "Can this part be purchased from external suppliers?" msgstr "" -#: part/models.py:1185 +#: part/models.py:1246 msgid "Can this part be sold to customers?" msgstr "" -#: part/models.py:1189 +#: part/models.py:1250 msgid "Is this part active?" msgstr "" -#: part/models.py:1194 templates/js/translated/part.js:821 +#: part/models.py:1255 templates/js/translated/part.js:821 #: templates/js/translated/table_filters.js:724 msgid "Locked" msgstr "" -#: part/models.py:1195 +#: part/models.py:1256 msgid "Locked parts cannot be edited" msgstr "" -#: part/models.py:1201 +#: part/models.py:1262 msgid "Is this a virtual part, such as a software product or license?" msgstr "" -#: part/models.py:1207 +#: part/models.py:1268 msgid "BOM checksum" msgstr "" -#: part/models.py:1208 +#: part/models.py:1269 msgid "Stored BOM checksum" msgstr "" -#: part/models.py:1216 +#: part/models.py:1277 msgid "BOM checked by" msgstr "" -#: part/models.py:1221 +#: part/models.py:1282 msgid "BOM checked date" msgstr "" -#: part/models.py:1237 +#: part/models.py:1298 msgid "Creation User" msgstr "" -#: part/models.py:1247 +#: part/models.py:1308 msgid "Owner responsible for this part" msgstr "" -#: part/models.py:1252 part/templates/part/part_base.html:348 -#: stock/templates/stock/item_base.html:451 +#: part/models.py:1313 part/templates/part/part_base.html:356 +#: stock/templates/stock/item_base.html:448 #: templates/js/translated/part.js:2490 msgid "Last Stocktake" msgstr "" -#: part/models.py:2125 +#: part/models.py:2185 msgid "Sell multiple" msgstr "" -#: part/models.py:3116 +#: part/models.py:3167 msgid "Currency used to cache pricing calculations" msgstr "" -#: part/models.py:3132 +#: part/models.py:3183 msgid "Minimum BOM Cost" msgstr "" -#: part/models.py:3133 +#: part/models.py:3184 msgid "Minimum cost of component parts" msgstr "" -#: part/models.py:3139 +#: part/models.py:3190 msgid "Maximum BOM Cost" msgstr "" -#: part/models.py:3140 +#: part/models.py:3191 msgid "Maximum cost of component parts" msgstr "" -#: part/models.py:3146 +#: part/models.py:3197 msgid "Minimum Purchase Cost" msgstr "" -#: part/models.py:3147 +#: part/models.py:3198 msgid "Minimum historical purchase cost" msgstr "" -#: part/models.py:3153 +#: part/models.py:3204 msgid "Maximum Purchase Cost" msgstr "" -#: part/models.py:3154 +#: part/models.py:3205 msgid "Maximum historical purchase cost" msgstr "" -#: part/models.py:3160 +#: part/models.py:3211 msgid "Minimum Internal Price" msgstr "" -#: part/models.py:3161 +#: part/models.py:3212 msgid "Minimum cost based on internal price breaks" msgstr "" -#: part/models.py:3167 +#: part/models.py:3218 msgid "Maximum Internal Price" msgstr "" -#: part/models.py:3168 +#: part/models.py:3219 msgid "Maximum cost based on internal price breaks" msgstr "" -#: part/models.py:3174 +#: part/models.py:3225 msgid "Minimum Supplier Price" msgstr "" -#: part/models.py:3175 +#: part/models.py:3226 msgid "Minimum price of part from external suppliers" msgstr "" -#: part/models.py:3181 +#: part/models.py:3232 msgid "Maximum Supplier Price" msgstr "" -#: part/models.py:3182 +#: part/models.py:3233 msgid "Maximum price of part from external suppliers" msgstr "" -#: part/models.py:3188 +#: part/models.py:3239 msgid "Minimum Variant Cost" msgstr "" -#: part/models.py:3189 +#: part/models.py:3240 msgid "Calculated minimum cost of variant parts" msgstr "" -#: part/models.py:3195 +#: part/models.py:3246 msgid "Maximum Variant Cost" msgstr "" -#: part/models.py:3196 +#: part/models.py:3247 msgid "Calculated maximum cost of variant parts" msgstr "" -#: part/models.py:3203 +#: part/models.py:3254 msgid "Override minimum cost" msgstr "" -#: part/models.py:3210 +#: part/models.py:3261 msgid "Override maximum cost" msgstr "" -#: part/models.py:3217 +#: part/models.py:3268 msgid "Calculated overall minimum cost" msgstr "" -#: part/models.py:3224 +#: part/models.py:3275 msgid "Calculated overall maximum cost" msgstr "" -#: part/models.py:3230 +#: part/models.py:3281 msgid "Minimum Sale Price" msgstr "" -#: part/models.py:3231 +#: part/models.py:3282 msgid "Minimum sale price based on price breaks" msgstr "" -#: part/models.py:3237 +#: part/models.py:3288 msgid "Maximum Sale Price" msgstr "" -#: part/models.py:3238 +#: part/models.py:3289 msgid "Maximum sale price based on price breaks" msgstr "" -#: part/models.py:3244 +#: part/models.py:3295 msgid "Minimum Sale Cost" msgstr "" -#: part/models.py:3245 +#: part/models.py:3296 msgid "Minimum historical sale price" msgstr "" -#: part/models.py:3251 +#: part/models.py:3302 msgid "Maximum Sale Cost" msgstr "" -#: part/models.py:3252 +#: part/models.py:3303 msgid "Maximum historical sale price" msgstr "" -#: part/models.py:3271 +#: part/models.py:3322 msgid "Part for stocktake" msgstr "" -#: part/models.py:3276 +#: part/models.py:3327 msgid "Item Count" msgstr "" -#: part/models.py:3277 +#: part/models.py:3328 msgid "Number of individual stock entries at time of stocktake" msgstr "" -#: part/models.py:3285 +#: part/models.py:3336 msgid "Total available stock at time of stocktake" msgstr "" -#: part/models.py:3289 part/models.py:3372 +#: part/models.py:3340 part/models.py:3423 part/serializers.py:263 #: part/templates/part/part_scheduling.html:13 #: report/templates/report/inventree_test_report.html:106 #: templates/InvenTree/settings/plugin_settings.html:37 #: templates/InvenTree/settings/settings_staff_js.html:543 -#: templates/js/translated/part.js:1092 templates/js/translated/pricing.js:826 -#: templates/js/translated/pricing.js:950 -#: templates/js/translated/purchase_order.js:1801 -#: templates/js/translated/stock.js:2905 +#: templates/js/translated/part.js:1092 templates/js/translated/pricing.js:824 +#: templates/js/translated/pricing.js:948 +#: templates/js/translated/purchase_order.js:1785 +#: templates/js/translated/stock.js:2906 msgid "Date" msgstr "" -#: part/models.py:3290 +#: part/models.py:3341 msgid "Date stocktake was performed" msgstr "" -#: part/models.py:3298 +#: part/models.py:3349 msgid "Additional notes" msgstr "" -#: part/models.py:3308 +#: part/models.py:3359 msgid "User who performed this stocktake" msgstr "" -#: part/models.py:3314 +#: part/models.py:3365 msgid "Minimum Stock Cost" msgstr "" -#: part/models.py:3315 +#: part/models.py:3366 msgid "Estimated minimum cost of stock on hand" msgstr "" -#: part/models.py:3321 +#: part/models.py:3372 msgid "Maximum Stock Cost" msgstr "" -#: part/models.py:3322 +#: part/models.py:3373 msgid "Estimated maximum cost of stock on hand" msgstr "" -#: part/models.py:3378 templates/InvenTree/settings/settings_staff_js.html:532 +#: part/models.py:3429 templates/InvenTree/settings/settings_staff_js.html:532 msgid "Report" msgstr "" -#: part/models.py:3379 +#: part/models.py:3430 msgid "Stocktake report file (generated internally)" msgstr "" -#: part/models.py:3384 templates/InvenTree/settings/settings_staff_js.html:539 +#: part/models.py:3435 templates/InvenTree/settings/settings_staff_js.html:539 msgid "Part Count" msgstr "" -#: part/models.py:3385 +#: part/models.py:3436 msgid "Number of parts covered by stocktake" msgstr "" -#: part/models.py:3395 +#: part/models.py:3446 msgid "User who requested this stocktake report" msgstr "" -#: part/models.py:3405 +#: part/models.py:3456 msgid "Part Sale Price Break" msgstr "" -#: part/models.py:3517 +#: part/models.py:3568 msgid "Part Test Template" msgstr "" -#: part/models.py:3543 +#: part/models.py:3594 msgid "Invalid template name - must include at least one alphanumeric character" msgstr "" -#: part/models.py:3564 part/models.py:3733 +#: part/models.py:3615 part/models.py:3784 msgid "Choices must be unique" msgstr "" -#: part/models.py:3575 -msgid "Test templates can only be created for trackable parts" +#: part/models.py:3626 +msgid "Test templates can only be created for testable parts" msgstr "" -#: part/models.py:3586 +#: part/models.py:3637 msgid "Test template with the same key already exists for part" msgstr "" -#: part/models.py:3603 templates/js/translated/part.js:2898 +#: part/models.py:3654 templates/js/translated/part.js:2898 msgid "Test Name" msgstr "" -#: part/models.py:3604 +#: part/models.py:3655 msgid "Enter a name for the test" msgstr "" -#: part/models.py:3610 +#: part/models.py:3661 msgid "Test Key" msgstr "" -#: part/models.py:3611 +#: part/models.py:3662 msgid "Simplified key for the test" msgstr "" -#: part/models.py:3618 +#: part/models.py:3669 msgid "Test Description" msgstr "" -#: part/models.py:3619 +#: part/models.py:3670 msgid "Enter description for this test" msgstr "" -#: part/models.py:3623 report/models.py:208 +#: part/models.py:3674 report/models.py:216 #: templates/js/translated/part.js:2919 #: templates/js/translated/table_filters.js:502 msgid "Enabled" msgstr "" -#: part/models.py:3623 +#: part/models.py:3674 msgid "Is this test enabled?" msgstr "" -#: part/models.py:3628 templates/js/translated/part.js:2927 +#: part/models.py:3679 templates/js/translated/part.js:2927 #: templates/js/translated/table_filters.js:498 msgid "Required" msgstr "" -#: part/models.py:3629 +#: part/models.py:3680 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:3634 templates/js/translated/part.js:2935 +#: part/models.py:3685 templates/js/translated/part.js:2935 msgid "Requires Value" msgstr "" -#: part/models.py:3635 +#: part/models.py:3686 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:3640 templates/js/translated/part.js:2942 +#: part/models.py:3691 templates/js/translated/part.js:2942 msgid "Requires Attachment" msgstr "" -#: part/models.py:3642 +#: part/models.py:3693 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:3648 part/models.py:3792 templates/js/translated/part.js:1643 +#: part/models.py:3699 part/models.py:3843 templates/js/translated/part.js:1643 msgid "Choices" msgstr "" -#: part/models.py:3649 +#: part/models.py:3700 msgid "Valid choices for this test (comma-separated)" msgstr "" -#: part/models.py:3681 +#: part/models.py:3732 msgid "Part Parameter Template" msgstr "" -#: part/models.py:3708 +#: part/models.py:3759 msgid "Checkbox parameters cannot have units" msgstr "" -#: part/models.py:3713 +#: part/models.py:3764 msgid "Checkbox parameters cannot have choices" msgstr "" -#: part/models.py:3750 +#: part/models.py:3801 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:3765 +#: part/models.py:3816 msgid "Parameter Name" msgstr "" -#: part/models.py:3772 +#: part/models.py:3823 msgid "Physical units for this parameter" msgstr "" -#: part/models.py:3780 +#: part/models.py:3831 msgid "Parameter description" msgstr "" -#: part/models.py:3786 templates/js/translated/part.js:1634 +#: part/models.py:3837 templates/js/translated/part.js:1634 #: templates/js/translated/table_filters.js:837 msgid "Checkbox" msgstr "" -#: part/models.py:3787 +#: part/models.py:3838 msgid "Is this parameter a checkbox?" msgstr "" -#: part/models.py:3793 +#: part/models.py:3844 msgid "Valid choices for this parameter (comma-separated)" msgstr "" -#: part/models.py:3827 +#: part/models.py:3881 msgid "Part Parameter" msgstr "" -#: part/models.py:3853 +#: part/models.py:3907 msgid "Parameter cannot be modified - part is locked" msgstr "" -#: part/models.py:3889 +#: part/models.py:3945 msgid "Invalid choice for parameter value" msgstr "" -#: part/models.py:3938 +#: part/models.py:3996 msgid "Parent Part" msgstr "" -#: part/models.py:3946 part/models.py:4054 part/models.py:4055 +#: part/models.py:4004 part/models.py:4112 part/models.py:4113 #: templates/InvenTree/settings/settings_staff_js.html:295 msgid "Parameter Template" msgstr "" -#: part/models.py:3952 +#: part/models.py:4010 msgid "Parameter Value" msgstr "" -#: part/models.py:4002 +#: part/models.py:4060 msgid "Part Category Parameter Template" msgstr "" -#: part/models.py:4061 templates/InvenTree/settings/settings_staff_js.html:304 +#: part/models.py:4119 templates/InvenTree/settings/settings_staff_js.html:304 msgid "Default Value" msgstr "" -#: part/models.py:4062 +#: part/models.py:4120 msgid "Default Parameter Value" msgstr "" -#: part/models.py:4100 +#: part/models.py:4158 msgid "Part ID or part name" msgstr "" -#: part/models.py:4101 +#: part/models.py:4159 msgid "Unique part ID value" msgstr "" -#: part/models.py:4103 +#: part/models.py:4161 msgid "Part IPN value" msgstr "" -#: part/models.py:4104 +#: part/models.py:4162 msgid "Level" msgstr "" -#: part/models.py:4104 +#: part/models.py:4162 msgid "BOM level" msgstr "" -#: part/models.py:4215 +#: part/models.py:4272 msgid "BOM item cannot be modified - assembly is locked" msgstr "" -#: part/models.py:4222 +#: part/models.py:4279 msgid "BOM item cannot be modified - variant assembly is locked" msgstr "" -#: part/models.py:4232 +#: part/models.py:4289 msgid "Select parent part" msgstr "" -#: part/models.py:4242 +#: part/models.py:4299 msgid "Sub part" msgstr "" -#: part/models.py:4243 +#: part/models.py:4300 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:4254 +#: part/models.py:4311 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:4260 +#: part/models.py:4317 msgid "This BOM item is optional" msgstr "" -#: part/models.py:4266 +#: part/models.py:4323 msgid "This BOM item is consumable (it is not tracked in build orders)" msgstr "" -#: part/models.py:4273 part/templates/part/upload_bom.html:55 +#: part/models.py:4330 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "" -#: part/models.py:4274 +#: part/models.py:4331 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:4281 +#: part/models.py:4338 msgid "BOM item reference" msgstr "" -#: part/models.py:4289 +#: part/models.py:4346 msgid "BOM item notes" msgstr "" -#: part/models.py:4295 +#: part/models.py:4352 msgid "Checksum" msgstr "" -#: part/models.py:4296 +#: part/models.py:4353 msgid "BOM line checksum" msgstr "" -#: part/models.py:4301 templates/js/translated/table_filters.js:181 +#: part/models.py:4358 templates/js/translated/table_filters.js:181 msgid "Validated" msgstr "" -#: part/models.py:4302 +#: part/models.py:4359 msgid "This BOM item has been validated" msgstr "" -#: part/models.py:4307 part/templates/part/upload_bom.html:57 +#: part/models.py:4364 part/templates/part/upload_bom.html:57 #: templates/js/translated/bom.js:1054 #: templates/js/translated/table_filters.js:185 #: templates/js/translated/table_filters.js:218 msgid "Gets inherited" msgstr "" -#: part/models.py:4308 +#: part/models.py:4365 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:4314 +#: part/models.py:4371 msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:4399 stock/models.py:685 +#: part/models.py:4456 stock/models.py:762 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:4409 part/models.py:4411 +#: part/models.py:4466 part/models.py:4468 msgid "Sub part must be specified" msgstr "" -#: part/models.py:4551 +#: part/models.py:4613 msgid "BOM Item Substitute" msgstr "" -#: part/models.py:4572 +#: part/models.py:4634 msgid "Substitute part cannot be the same as the master part" msgstr "" -#: part/models.py:4585 +#: part/models.py:4647 msgid "Parent BOM item" msgstr "" -#: part/models.py:4593 +#: part/models.py:4655 msgid "Substitute part" msgstr "" -#: part/models.py:4609 +#: part/models.py:4671 msgid "Part 1" msgstr "" -#: part/models.py:4617 +#: part/models.py:4679 msgid "Part 2" msgstr "" -#: part/models.py:4618 +#: part/models.py:4680 msgid "Select Related Part" msgstr "" -#: part/models.py:4637 +#: part/models.py:4699 msgid "Part relationship cannot be created between a part and itself" msgstr "" -#: part/models.py:4642 +#: part/models.py:4704 msgid "Duplicate relationship already exists" msgstr "" @@ -7449,340 +7662,352 @@ msgstr "" msgid "Number of results recorded against this template" msgstr "" -#: part/serializers.py:225 part/serializers.py:243 stock/serializers.py:616 +#: part/serializers.py:225 part/serializers.py:243 stock/serializers.py:643 msgid "Purchase currency of this stock item" msgstr "" -#: part/serializers.py:291 +#: part/serializers.py:268 +msgid "Speculative Quantity" +msgstr "" + +#: part/serializers.py:277 +msgid "Model ID" +msgstr "" + +#: part/serializers.py:324 msgid "Number of parts using this template" msgstr "" -#: part/serializers.py:421 +#: part/serializers.py:465 msgid "No parts selected" msgstr "" -#: part/serializers.py:431 +#: part/serializers.py:475 msgid "Select category" msgstr "" -#: part/serializers.py:466 +#: part/serializers.py:510 msgid "Original Part" msgstr "" -#: part/serializers.py:467 +#: part/serializers.py:511 msgid "Select original part to duplicate" msgstr "" -#: part/serializers.py:472 +#: part/serializers.py:516 msgid "Copy Image" msgstr "" -#: part/serializers.py:473 +#: part/serializers.py:517 msgid "Copy image from original part" msgstr "" -#: part/serializers.py:479 part/templates/part/detail.html:293 +#: part/serializers.py:523 part/templates/part/detail.html:293 msgid "Copy BOM" msgstr "" -#: part/serializers.py:480 +#: part/serializers.py:524 msgid "Copy bill of materials from original part" msgstr "" -#: part/serializers.py:486 +#: part/serializers.py:530 msgid "Copy Parameters" msgstr "" -#: part/serializers.py:487 +#: part/serializers.py:531 msgid "Copy parameter data from original part" msgstr "" -#: part/serializers.py:493 +#: part/serializers.py:537 msgid "Copy Notes" msgstr "" -#: part/serializers.py:494 +#: part/serializers.py:538 msgid "Copy notes from original part" msgstr "" -#: part/serializers.py:512 +#: part/serializers.py:556 msgid "Initial Stock Quantity" msgstr "" -#: part/serializers.py:514 +#: part/serializers.py:558 msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added." msgstr "" -#: part/serializers.py:521 +#: part/serializers.py:565 msgid "Initial Stock Location" msgstr "" -#: part/serializers.py:522 +#: part/serializers.py:566 msgid "Specify initial stock location for this Part" msgstr "" -#: part/serializers.py:539 +#: part/serializers.py:583 msgid "Select supplier (or leave blank to skip)" msgstr "" -#: part/serializers.py:555 +#: part/serializers.py:599 msgid "Select manufacturer (or leave blank to skip)" msgstr "" -#: part/serializers.py:565 +#: part/serializers.py:609 msgid "Manufacturer part number" msgstr "" -#: part/serializers.py:572 +#: part/serializers.py:616 msgid "Selected company is not a valid supplier" msgstr "" -#: part/serializers.py:581 +#: part/serializers.py:625 msgid "Selected company is not a valid manufacturer" msgstr "" -#: part/serializers.py:592 +#: part/serializers.py:636 msgid "Manufacturer part matching this MPN already exists" msgstr "" -#: part/serializers.py:599 +#: part/serializers.py:643 msgid "Supplier part matching this SKU already exists" msgstr "" -#: part/serializers.py:903 +#: part/serializers.py:955 msgid "Revisions" msgstr "" -#: part/serializers.py:908 +#: part/serializers.py:960 msgid "Unallocated Stock" msgstr "" -#: part/serializers.py:911 +#: part/serializers.py:963 msgid "Variant Stock" msgstr "" -#: part/serializers.py:941 part/templates/part/copy_part.html:9 +#: part/serializers.py:993 part/templates/part/copy_part.html:9 #: templates/js/translated/part.js:474 msgid "Duplicate Part" msgstr "" -#: part/serializers.py:942 +#: part/serializers.py:994 msgid "Copy initial data from another Part" msgstr "" -#: part/serializers.py:948 templates/js/translated/part.js:103 +#: part/serializers.py:1000 templates/js/translated/part.js:103 msgid "Initial Stock" msgstr "" -#: part/serializers.py:949 +#: part/serializers.py:1001 msgid "Create Part with initial stock quantity" msgstr "" -#: part/serializers.py:955 +#: part/serializers.py:1007 msgid "Supplier Information" msgstr "" -#: part/serializers.py:956 +#: part/serializers.py:1008 msgid "Add initial supplier information for this part" msgstr "" -#: part/serializers.py:964 +#: part/serializers.py:1016 msgid "Copy Category Parameters" msgstr "" -#: part/serializers.py:965 +#: part/serializers.py:1017 msgid "Copy parameter templates from selected part category" msgstr "" -#: part/serializers.py:970 +#: part/serializers.py:1022 msgid "Existing Image" msgstr "" -#: part/serializers.py:971 +#: part/serializers.py:1023 msgid "Filename of an existing part image" msgstr "" -#: part/serializers.py:988 +#: part/serializers.py:1040 msgid "Image file does not exist" msgstr "" -#: part/serializers.py:1194 +#: part/serializers.py:1247 msgid "Limit stocktake report to a particular part, and any variant parts" msgstr "" -#: part/serializers.py:1204 +#: part/serializers.py:1257 msgid "Limit stocktake report to a particular part category, and any child categories" msgstr "" -#: part/serializers.py:1214 +#: part/serializers.py:1267 msgid "Limit stocktake report to a particular stock location, and any child locations" msgstr "" -#: part/serializers.py:1220 +#: part/serializers.py:1273 msgid "Exclude External Stock" msgstr "" -#: part/serializers.py:1221 +#: part/serializers.py:1274 msgid "Exclude stock items in external locations" msgstr "" -#: part/serializers.py:1226 +#: part/serializers.py:1279 msgid "Generate Report" msgstr "" -#: part/serializers.py:1227 +#: part/serializers.py:1280 msgid "Generate report file containing calculated stocktake data" msgstr "" -#: part/serializers.py:1232 +#: part/serializers.py:1285 msgid "Update Parts" msgstr "" -#: part/serializers.py:1233 +#: part/serializers.py:1286 msgid "Update specified parts with calculated stocktake data" msgstr "" -#: part/serializers.py:1241 +#: part/serializers.py:1294 msgid "Stocktake functionality is not enabled" msgstr "" -#: part/serializers.py:1347 +#: part/serializers.py:1299 +msgid "Background worker check failed" +msgstr "" + +#: part/serializers.py:1401 msgid "Override calculated value for minimum price" msgstr "" -#: part/serializers.py:1354 +#: part/serializers.py:1408 msgid "Minimum price currency" msgstr "" -#: part/serializers.py:1362 +#: part/serializers.py:1416 msgid "Override calculated value for maximum price" msgstr "" -#: part/serializers.py:1369 +#: part/serializers.py:1423 msgid "Maximum price currency" msgstr "" -#: part/serializers.py:1398 +#: part/serializers.py:1452 msgid "Update" msgstr "" -#: part/serializers.py:1399 +#: part/serializers.py:1453 msgid "Update pricing for this part" msgstr "" -#: part/serializers.py:1422 +#: part/serializers.py:1476 #, python-brace-format msgid "Could not convert from provided currencies to {default_currency}" msgstr "" -#: part/serializers.py:1429 +#: part/serializers.py:1483 msgid "Minimum price must not be greater than maximum price" msgstr "" -#: part/serializers.py:1432 +#: part/serializers.py:1486 msgid "Maximum price must not be less than minimum price" msgstr "" -#: part/serializers.py:1576 +#: part/serializers.py:1634 msgid "Select the parent assembly" msgstr "" -#: part/serializers.py:1585 +#: part/serializers.py:1643 msgid "Component Name" msgstr "" -#: part/serializers.py:1588 +#: part/serializers.py:1646 msgid "Component IPN" msgstr "" -#: part/serializers.py:1591 +#: part/serializers.py:1649 msgid "Component Description" msgstr "" -#: part/serializers.py:1597 +#: part/serializers.py:1655 msgid "Select the component part" msgstr "" -#: part/serializers.py:1606 part/templates/part/part_base.html:235 +#: part/serializers.py:1664 part/templates/part/part_base.html:243 #: templates/js/translated/bom.js:1219 msgid "Can Build" msgstr "" -#: part/serializers.py:1837 +#: part/serializers.py:1899 msgid "Select part to copy BOM from" msgstr "" -#: part/serializers.py:1845 +#: part/serializers.py:1907 msgid "Remove Existing Data" msgstr "" -#: part/serializers.py:1846 +#: part/serializers.py:1908 msgid "Remove existing BOM items before copying" msgstr "" -#: part/serializers.py:1851 +#: part/serializers.py:1913 msgid "Include Inherited" msgstr "" -#: part/serializers.py:1852 +#: part/serializers.py:1914 msgid "Include BOM items which are inherited from templated parts" msgstr "" -#: part/serializers.py:1857 +#: part/serializers.py:1919 msgid "Skip Invalid Rows" msgstr "" -#: part/serializers.py:1858 +#: part/serializers.py:1920 msgid "Enable this option to skip invalid rows" msgstr "" -#: part/serializers.py:1863 +#: part/serializers.py:1925 msgid "Copy Substitute Parts" msgstr "" -#: part/serializers.py:1864 +#: part/serializers.py:1926 msgid "Copy substitute parts when duplicate BOM items" msgstr "" -#: part/serializers.py:1901 +#: part/serializers.py:1963 msgid "Clear Existing BOM" msgstr "" -#: part/serializers.py:1902 +#: part/serializers.py:1964 msgid "Delete existing BOM items before uploading" msgstr "" -#: part/serializers.py:1934 +#: part/serializers.py:1996 msgid "No part column specified" msgstr "" -#: part/serializers.py:1978 +#: part/serializers.py:2040 msgid "Multiple matching parts found" msgstr "" -#: part/serializers.py:1981 +#: part/serializers.py:2043 msgid "No matching part found" msgstr "" -#: part/serializers.py:1984 +#: part/serializers.py:2045 msgid "Part is not designated as a component" msgstr "" -#: part/serializers.py:1993 +#: part/serializers.py:2054 msgid "Quantity not provided" msgstr "" -#: part/serializers.py:2001 +#: part/serializers.py:2062 msgid "Invalid quantity" msgstr "" -#: part/serializers.py:2024 +#: part/serializers.py:2085 msgid "At least one BOM item is required" msgstr "" #: part/stocktake.py:224 templates/js/translated/part.js:1073 #: templates/js/translated/part.js:1828 templates/js/translated/part.js:1884 -#: templates/js/translated/purchase_order.js:2154 +#: templates/js/translated/purchase_order.js:2138 msgid "Total Quantity" msgstr "" @@ -7932,9 +8157,9 @@ msgid "Add stocktake information" msgstr "" #: part/templates/part/detail.html:67 part/templates/part/part_sidebar.html:50 -#: stock/admin.py:255 templates/InvenTree/settings/part_stocktake.html:30 +#: stock/admin.py:256 templates/InvenTree/settings/part_stocktake.html:30 #: templates/InvenTree/settings/sidebar.html:53 -#: templates/js/translated/stock.js:2301 users/models.py:204 +#: templates/js/translated/stock.js:2302 users/models.py:204 msgid "Stocktake" msgstr "" @@ -8093,142 +8318,146 @@ msgstr "" msgid "Part List" msgstr "" -#: part/templates/part/part_base.html:25 part/templates/part/part_base.html:29 +#: part/templates/part/part_base.html:26 part/templates/part/part_base.html:30 msgid "You are subscribed to notifications for this part" msgstr "" -#: part/templates/part/part_base.html:33 +#: part/templates/part/part_base.html:34 msgid "Subscribe to notifications for this part" msgstr "" -#: part/templates/part/part_base.html:52 +#: part/templates/part/part_base.html:53 #: stock/templates/stock/item_base.html:62 -#: stock/templates/stock/location.html:71 templates/js/translated/label.js:136 +#: stock/templates/stock/location.html:72 templates/js/translated/label.js:136 msgid "Print Label" msgstr "" -#: part/templates/part/part_base.html:58 +#: part/templates/part/part_base.html:59 msgid "Show pricing information" msgstr "" -#: part/templates/part/part_base.html:63 -#: stock/templates/stock/item_base.html:110 -#: stock/templates/stock/location.html:80 +#: part/templates/part/part_base.html:64 +#: stock/templates/stock/item_base.html:107 +#: stock/templates/stock/location.html:81 msgid "Stock actions" msgstr "" -#: part/templates/part/part_base.html:70 +#: part/templates/part/part_base.html:71 msgid "Count part stock" msgstr "" -#: part/templates/part/part_base.html:76 +#: part/templates/part/part_base.html:77 msgid "Transfer part stock" msgstr "" -#: part/templates/part/part_base.html:91 templates/js/translated/part.js:2299 +#: part/templates/part/part_base.html:92 templates/js/translated/part.js:2299 msgid "Part actions" msgstr "" -#: part/templates/part/part_base.html:94 +#: part/templates/part/part_base.html:95 msgid "Duplicate part" msgstr "" -#: part/templates/part/part_base.html:97 +#: part/templates/part/part_base.html:98 msgid "Edit part" msgstr "" -#: part/templates/part/part_base.html:100 +#: part/templates/part/part_base.html:101 msgid "Delete part" msgstr "" -#: part/templates/part/part_base.html:119 +#: part/templates/part/part_base.html:120 msgid "Part is a template part (variants can be made from this part)" msgstr "" -#: part/templates/part/part_base.html:123 +#: part/templates/part/part_base.html:124 msgid "Part can be assembled from other parts" msgstr "" -#: part/templates/part/part_base.html:127 +#: part/templates/part/part_base.html:128 msgid "Part can be used in assemblies" msgstr "" -#: part/templates/part/part_base.html:131 +#: part/templates/part/part_base.html:132 msgid "Part stock is tracked by serial number" msgstr "" -#: part/templates/part/part_base.html:135 +#: part/templates/part/part_base.html:136 msgid "Part can be purchased from external suppliers" msgstr "" -#: part/templates/part/part_base.html:139 +#: part/templates/part/part_base.html:140 msgid "Part can be sold to customers" msgstr "" -#: part/templates/part/part_base.html:145 +#: part/templates/part/part_base.html:146 msgid "Part is not active" msgstr "" -#: part/templates/part/part_base.html:153 +#: part/templates/part/part_base.html:154 msgid "Part is virtual (not a physical part)" msgstr "" -#: part/templates/part/part_base.html:163 -#: part/templates/part/part_base.html:690 +#: part/templates/part/part_base.html:164 +#: part/templates/part/part_base.html:698 msgid "Show Part Details" msgstr "" #: part/templates/part/part_base.html:218 -#: stock/templates/stock/item_base.html:388 +msgid "Required for Orders" +msgstr "" + +#: part/templates/part/part_base.html:226 +#: stock/templates/stock/item_base.html:385 msgid "Allocated to Build Orders" msgstr "" -#: part/templates/part/part_base.html:227 -#: stock/templates/stock/item_base.html:381 +#: part/templates/part/part_base.html:235 +#: stock/templates/stock/item_base.html:378 msgid "Allocated to Sales Orders" msgstr "" -#: part/templates/part/part_base.html:300 +#: part/templates/part/part_base.html:308 msgid "Minimum stock level" msgstr "" -#: part/templates/part/part_base.html:331 templates/js/translated/bom.js:1071 +#: part/templates/part/part_base.html:339 templates/js/translated/bom.js:1071 #: templates/js/translated/part.js:1271 templates/js/translated/part.js:2463 #: templates/js/translated/pricing.js:391 -#: templates/js/translated/pricing.js:1054 +#: templates/js/translated/pricing.js:1052 msgid "Price Range" msgstr "" -#: part/templates/part/part_base.html:361 +#: part/templates/part/part_base.html:369 msgid "Latest Serial Number" msgstr "" -#: part/templates/part/part_base.html:365 -#: stock/templates/stock/item_base.html:322 +#: part/templates/part/part_base.html:373 +#: stock/templates/stock/item_base.html:319 msgid "Search for serial number" msgstr "" -#: part/templates/part/part_base.html:453 +#: part/templates/part/part_base.html:461 msgid "Part QR Code" msgstr "" -#: part/templates/part/part_base.html:470 +#: part/templates/part/part_base.html:478 msgid "Link Barcode to Part" msgstr "" -#: part/templates/part/part_base.html:520 +#: part/templates/part/part_base.html:528 msgid "Calculate" msgstr "" -#: part/templates/part/part_base.html:537 +#: part/templates/part/part_base.html:545 msgid "Remove associated image from this part" msgstr "" -#: part/templates/part/part_base.html:588 +#: part/templates/part/part_base.html:596 msgid "No matching images found" msgstr "" -#: part/templates/part/part_base.html:684 +#: part/templates/part/part_base.html:692 msgid "Hide Part Details" msgstr "" @@ -8282,13 +8511,13 @@ msgid "Variants" msgstr "" #: part/templates/part/part_sidebar.html:14 -#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:21 +#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:22 #: stock/templates/stock/stock_app_base.html:10 #: templates/InvenTree/search.html:153 #: templates/InvenTree/settings/sidebar.html:51 #: templates/js/translated/part.js:1249 templates/js/translated/part.js:2152 #: templates/js/translated/part.js:2411 templates/js/translated/stock.js:1066 -#: templates/js/translated/stock.js:2155 templates/navbar.html:31 +#: templates/js/translated/stock.js:2156 templates/navbar.html:31 msgid "Stock" msgstr "Наличност" @@ -8324,17 +8553,17 @@ msgstr "" #: part/templates/part/prices.html:18 #: templates/InvenTree/settings/settings_staff_js.html:80 #: templates/InvenTree/settings/user.html:24 -#: templates/js/translated/helpers.js:103 +#: templates/js/translated/helpers.js:104 #: templates/js/translated/pricing.js:628 templates/notes_buttons.html:3 #: templates/notes_buttons.html:4 msgid "Edit" msgstr "" -#: part/templates/part/prices.html:28 stock/admin.py:251 -#: stock/templates/stock/item_base.html:446 -#: templates/js/translated/company.js:1703 -#: templates/js/translated/company.js:1713 -#: templates/js/translated/stock.js:2331 +#: part/templates/part/prices.html:28 stock/admin.py:252 +#: stock/templates/stock/item_base.html:443 +#: templates/js/translated/company.js:1704 +#: templates/js/translated/company.js:1714 +#: templates/js/translated/stock.js:2332 msgid "Last Updated" msgstr "" @@ -8406,7 +8635,7 @@ msgid "Update Pricing" msgstr "" #: part/templates/part/stock_count.html:7 -#: templates/js/translated/model_renderers.js:228 +#: templates/js/translated/model_renderers.js:231 #: templates/js/translated/part.js:707 templates/js/translated/part.js:2147 #: templates/js/translated/part.js:2149 msgid "No Stock" @@ -8486,7 +8715,7 @@ msgstr "" msgid "Part Pricing" msgstr "" -#: plugin/api.py:172 +#: plugin/api.py:175 msgid "Plugin cannot be deleted as it is currently active" msgstr "" @@ -8498,78 +8727,85 @@ msgstr "" msgid "No matching action found" msgstr "" -#: plugin/base/barcodes/api.py:125 plugin/base/barcodes/api.py:371 -#: plugin/base/barcodes/api.py:546 +#: plugin/base/barcodes/api.py:203 msgid "No match found for barcode data" msgstr "" -#: plugin/base/barcodes/api.py:129 +#: plugin/base/barcodes/api.py:207 msgid "Match found for barcode data" msgstr "" -#: plugin/base/barcodes/api.py:163 plugin/base/barcodes/serializers.py:45 +#: plugin/base/barcodes/api.py:245 plugin/base/barcodes/serializers.py:72 msgid "Model is not supported" msgstr "" -#: plugin/base/barcodes/api.py:168 +#: plugin/base/barcodes/api.py:250 msgid "Model instance not found" msgstr "" -#: plugin/base/barcodes/api.py:197 -#: templates/js/translated/purchase_order.js:1468 +#: plugin/base/barcodes/api.py:279 +#: templates/js/translated/purchase_order.js:1452 msgid "Barcode matches existing item" msgstr "" -#: plugin/base/barcodes/api.py:336 +#: plugin/base/barcodes/api.py:418 msgid "No matching part data found" msgstr "" -#: plugin/base/barcodes/api.py:353 +#: plugin/base/barcodes/api.py:434 msgid "No matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:357 +#: plugin/base/barcodes/api.py:437 msgid "Multiple matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:381 +#: plugin/base/barcodes/api.py:450 plugin/base/barcodes/api.py:664 +msgid "No matching plugin found for barcode data" +msgstr "" + +#: plugin/base/barcodes/api.py:460 msgid "Matched supplier part" msgstr "" -#: plugin/base/barcodes/api.py:430 +#: plugin/base/barcodes/api.py:525 msgid "Item has already been received" msgstr "" -#: plugin/base/barcodes/api.py:467 +#: plugin/base/barcodes/api.py:563 msgid "No match for supplier barcode" msgstr "" -#: plugin/base/barcodes/api.py:510 +#: plugin/base/barcodes/api.py:612 msgid "Multiple matching line items found" msgstr "" -#: plugin/base/barcodes/api.py:513 +#: plugin/base/barcodes/api.py:615 msgid "No matching line item found" msgstr "" -#: plugin/base/barcodes/api.py:551 plugin/base/barcodes/api.py:558 +#: plugin/base/barcodes/api.py:661 +msgid "No sales order provided" +msgstr "" + +#: plugin/base/barcodes/api.py:670 msgid "Barcode does not match an existing stock item" msgstr "" -#: plugin/base/barcodes/api.py:569 +#: plugin/base/barcodes/api.py:686 msgid "Stock item does not match line item" msgstr "" -#: plugin/base/barcodes/api.py:593 templates/js/translated/build.js:2780 -#: templates/js/translated/sales_order.js:1953 +#: plugin/base/barcodes/api.py:716 templates/js/translated/build.js:2798 +#: templates/js/translated/sales_order.js:1934 msgid "Insufficient stock available" msgstr "" -#: plugin/base/barcodes/api.py:602 +#: plugin/base/barcodes/api.py:729 msgid "Stock item allocated to sales order" msgstr "" -#: plugin/base/barcodes/api.py:606 +#: plugin/base/barcodes/api.py:732 msgid "Not enough information" msgstr "" @@ -8591,75 +8827,75 @@ msgstr "" msgid "Purchase order does not match supplier" msgstr "" -#: plugin/base/barcodes/mixins.py:465 +#: plugin/base/barcodes/mixins.py:467 msgid "Failed to find pending line item for supplier part" msgstr "" -#: plugin/base/barcodes/mixins.py:496 +#: plugin/base/barcodes/mixins.py:498 msgid "Further information required to receive line item" msgstr "" -#: plugin/base/barcodes/mixins.py:504 +#: plugin/base/barcodes/mixins.py:506 msgid "Received purchase order line item" msgstr "" -#: plugin/base/barcodes/serializers.py:21 +#: plugin/base/barcodes/serializers.py:48 msgid "Scanned barcode data" msgstr "" -#: plugin/base/barcodes/serializers.py:30 +#: plugin/base/barcodes/serializers.py:57 msgid "Model name to generate barcode for" msgstr "" -#: plugin/base/barcodes/serializers.py:35 +#: plugin/base/barcodes/serializers.py:62 msgid "Primary key of model object to generate barcode for" msgstr "" -#: plugin/base/barcodes/serializers.py:105 +#: plugin/base/barcodes/serializers.py:132 msgid "Purchase Order to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:111 +#: plugin/base/barcodes/serializers.py:138 msgid "Purchase order is not pending" msgstr "" -#: plugin/base/barcodes/serializers.py:129 +#: plugin/base/barcodes/serializers.py:156 msgid "PurchaseOrder to receive items against" msgstr "" -#: plugin/base/barcodes/serializers.py:135 +#: plugin/base/barcodes/serializers.py:162 msgid "Purchase order has not been placed" msgstr "" -#: plugin/base/barcodes/serializers.py:143 +#: plugin/base/barcodes/serializers.py:170 msgid "Location to receive items into" msgstr "" -#: plugin/base/barcodes/serializers.py:149 +#: plugin/base/barcodes/serializers.py:176 msgid "Cannot select a structural location" msgstr "" -#: plugin/base/barcodes/serializers.py:163 +#: plugin/base/barcodes/serializers.py:190 msgid "Sales Order to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:169 +#: plugin/base/barcodes/serializers.py:196 msgid "Sales order is not pending" msgstr "" -#: plugin/base/barcodes/serializers.py:177 +#: plugin/base/barcodes/serializers.py:204 msgid "Sales order line item to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:184 +#: plugin/base/barcodes/serializers.py:211 msgid "Sales order shipment to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:190 +#: plugin/base/barcodes/serializers.py:217 msgid "Shipment has already been delivered" msgstr "" -#: plugin/base/barcodes/serializers.py:195 +#: plugin/base/barcodes/serializers.py:222 msgid "Quantity to allocate" msgstr "" @@ -8679,6 +8915,42 @@ msgstr "" msgid "No items provided to print" msgstr "" +#: plugin/base/ui/serializers.py:30 +msgid "Plugin Name" +msgstr "" + +#: plugin/base/ui/serializers.py:34 +msgid "Feature Type" +msgstr "" + +#: plugin/base/ui/serializers.py:39 +msgid "Feature Label" +msgstr "" + +#: plugin/base/ui/serializers.py:44 +msgid "Feature Title" +msgstr "" + +#: plugin/base/ui/serializers.py:49 +msgid "Feature Description" +msgstr "" + +#: plugin/base/ui/serializers.py:54 +msgid "Feature Icon" +msgstr "" + +#: plugin/base/ui/serializers.py:58 +msgid "Feature Options" +msgstr "" + +#: plugin/base/ui/serializers.py:61 +msgid "Feature Context" +msgstr "" + +#: plugin/base/ui/serializers.py:64 +msgid "Feature Source (javascript)" +msgstr "" + #: plugin/builtin/barcodes/inventree_barcode.py:27 msgid "InvenTree Barcodes" msgstr "" @@ -8756,7 +9028,7 @@ msgstr "" msgid "URL that is used to send messages to a slack channel" msgstr "" -#: plugin/builtin/integration/core_notifications.py:164 +#: plugin/builtin/integration/core_notifications.py:166 msgid "Open link" msgstr "" @@ -8794,11 +9066,11 @@ msgstr "" msgid "Provides support for printing using a machine" msgstr "" -#: plugin/builtin/labels/inventree_machine.py:149 +#: plugin/builtin/labels/inventree_machine.py:151 msgid "last used" msgstr "" -#: plugin/builtin/labels/inventree_machine.py:166 +#: plugin/builtin/labels/inventree_machine.py:168 msgid "Options" msgstr "" @@ -8822,7 +9094,7 @@ msgstr "" msgid "Print a border around each label" msgstr "" -#: plugin/builtin/labels/label_sheet.py:47 report/models.py:307 +#: plugin/builtin/labels/label_sheet.py:47 report/models.py:315 msgid "Landscape" msgstr "" @@ -8894,19 +9166,19 @@ msgstr "" msgid "The Supplier which acts as 'TME'" msgstr "" -#: plugin/installer.py:194 plugin/installer.py:282 +#: plugin/installer.py:199 plugin/installer.py:282 msgid "Only staff users can administer plugins" msgstr "" -#: plugin/installer.py:197 +#: plugin/installer.py:202 msgid "Plugin installation is disabled" msgstr "" -#: plugin/installer.py:248 +#: plugin/installer.py:246 msgid "Installed plugin successfully" msgstr "" -#: plugin/installer.py:254 +#: plugin/installer.py:251 #, python-brace-format msgid "Installed plugin into {path}" msgstr "" @@ -8943,10 +9215,6 @@ msgstr "" msgid "Plugin Configurations" msgstr "" -#: plugin/models.py:43 users/models.py:100 -msgid "Key" -msgstr "" - #: plugin/models.py:44 msgid "Key of plugin" msgstr "" @@ -8955,7 +9223,7 @@ msgstr "" msgid "PluginName of the plugin" msgstr "" -#: plugin/models.py:59 plugin/serializers.py:90 +#: plugin/models.py:59 plugin/serializers.py:115 msgid "Package Name" msgstr "" @@ -8984,17 +9252,17 @@ msgstr "" msgid "Package Plugin" msgstr "" -#: plugin/models.py:220 report/models.py:474 +#: plugin/models.py:259 report/models.py:482 #: templates/InvenTree/settings/plugin_settings.html:9 #: templates/js/translated/plugin.js:51 msgid "Plugin" msgstr "" -#: plugin/models.py:267 +#: plugin/models.py:306 msgid "Method" msgstr "" -#: plugin/plugin.py:270 +#: plugin/plugin.py:275 msgid "No author found" msgstr "" @@ -9053,81 +9321,157 @@ msgstr "" msgid "InvenTree Contributors" msgstr "" -#: plugin/serializers.py:81 -msgid "Source URL" +#: plugin/samples/integration/user_interface_sample.py:27 +msgid "Enable Part Panels" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:28 +msgid "Enable custom panels for Part views" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:33 +msgid "Enable Purchase Order Panels" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:34 +msgid "Enable custom panels for Purchase Order views" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:39 +msgid "Enable Broken Panels" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:40 +msgid "Enable broken panels for testing" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:45 +msgid "Enable Dynamic Panel" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:46 +msgid "Enable dynamic panels for testing" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:98 +msgid "Part Panel" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:131 +msgid "Broken Dashboard Item" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:133 +msgid "This is a broken dashboard item - it will not render!" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:139 +msgid "Sample Dashboard Item" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:141 +msgid "This is a sample dashboard item. It renders a simple string of HTML content." +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:147 +msgid "Context Dashboard Item" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:161 +msgid "Admin Dashboard Item" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:162 +msgid "This is an admin-only dashboard item." +msgstr "" + +#: plugin/serializers.py:82 +msgid "Source File" msgstr "" #: plugin/serializers.py:83 +msgid "Path to the source file for admin integration" +msgstr "" + +#: plugin/serializers.py:90 +msgid "Optional context data for the admin integration" +msgstr "" + +#: plugin/serializers.py:106 +msgid "Source URL" +msgstr "" + +#: plugin/serializers.py:108 msgid "Source for the package - this can be a custom registry or a VCS path" msgstr "" -#: plugin/serializers.py:92 +#: plugin/serializers.py:117 msgid "Name for the Plugin Package - can also contain a version indicator" msgstr "" -#: plugin/serializers.py:99 +#: plugin/serializers.py:124 #: templates/InvenTree/settings/plugin_settings.html:42 #: templates/js/translated/plugin.js:86 msgid "Version" msgstr "" -#: plugin/serializers.py:101 +#: plugin/serializers.py:126 msgid "Version specifier for the plugin. Leave blank for latest version." msgstr "" -#: plugin/serializers.py:106 +#: plugin/serializers.py:131 msgid "Confirm plugin installation" msgstr "" -#: plugin/serializers.py:108 +#: plugin/serializers.py:133 msgid "This will install this plugin now into the current instance. The instance will go into maintenance." msgstr "" -#: plugin/serializers.py:121 +#: plugin/serializers.py:146 msgid "Installation not confirmed" msgstr "" -#: plugin/serializers.py:123 +#: plugin/serializers.py:148 msgid "Either packagename of URL must be provided" msgstr "" -#: plugin/serializers.py:161 +#: plugin/serializers.py:184 msgid "Full reload" msgstr "" -#: plugin/serializers.py:162 +#: plugin/serializers.py:185 msgid "Perform a full reload of the plugin registry" msgstr "" -#: plugin/serializers.py:168 +#: plugin/serializers.py:191 msgid "Force reload" msgstr "" -#: plugin/serializers.py:170 +#: plugin/serializers.py:193 msgid "Force a reload of the plugin registry, even if it is already loaded" msgstr "" -#: plugin/serializers.py:177 +#: plugin/serializers.py:200 msgid "Collect plugins" msgstr "" -#: plugin/serializers.py:178 +#: plugin/serializers.py:201 msgid "Collect plugins and add them to the registry" msgstr "" -#: plugin/serializers.py:205 +#: plugin/serializers.py:228 msgid "Activate Plugin" msgstr "" -#: plugin/serializers.py:206 +#: plugin/serializers.py:229 msgid "Activate this plugin" msgstr "" -#: plugin/serializers.py:226 +#: plugin/serializers.py:249 msgid "Delete configuration" msgstr "" -#: plugin/serializers.py:227 +#: plugin/serializers.py:250 msgid "Delete the plugin configuration from the database" msgstr "" @@ -9135,11 +9479,11 @@ msgstr "" msgid "No valid objects provided to template" msgstr "" -#: report/api.py:103 report/models.py:438 report/serializers.py:98 -#: report/serializers.py:148 templates/js/translated/purchase_order.js:1817 +#: report/api.py:103 report/models.py:446 report/serializers.py:99 +#: report/serializers.py:149 templates/js/translated/purchase_order.js:1801 #: templates/js/translated/return_order.js:353 -#: templates/js/translated/sales_order.js:887 -#: templates/js/translated/sales_order.js:1047 +#: templates/js/translated/sales_order.js:846 +#: templates/js/translated/sales_order.js:1020 msgid "Items" msgstr "" @@ -9167,7 +9511,11 @@ msgstr "" msgid "Error printing label" msgstr "" -#: report/api.py:375 report/api.py:411 +#: report/api.py:358 +msgid "Report saved at time of printing" +msgstr "" + +#: report/api.py:384 report/api.py:420 #, python-brace-format msgid "Template file '{template}' is missing or does not exist" msgstr "" @@ -9204,135 +9552,143 @@ msgstr "" msgid "Revision number (auto-increments)" msgstr "" -#: report/models.py:202 +#: report/models.py:168 +msgid "Attach to Model on Print" +msgstr "" + +#: report/models.py:170 +msgid "Save report output as an attachment against linked model instance when printing" +msgstr "" + +#: report/models.py:210 msgid "Filename Pattern" msgstr "" -#: report/models.py:203 +#: report/models.py:211 msgid "Pattern for generating filenames" msgstr "" -#: report/models.py:208 +#: report/models.py:216 msgid "Template is enabled" msgstr "" -#: report/models.py:214 +#: report/models.py:222 msgid "Target model type for template" msgstr "" -#: report/models.py:234 +#: report/models.py:242 msgid "Filters" msgstr "" -#: report/models.py:235 +#: report/models.py:243 msgid "Template query filters (comma-separated list of key=value pairs)" msgstr "" -#: report/models.py:294 report/models.py:361 +#: report/models.py:302 report/models.py:369 msgid "Template file" msgstr "" -#: report/models.py:302 +#: report/models.py:310 msgid "Page size for PDF reports" msgstr "" -#: report/models.py:308 +#: report/models.py:316 msgid "Render report in landscape orientation" msgstr "" -#: report/models.py:367 +#: report/models.py:375 msgid "Width [mm]" msgstr "" -#: report/models.py:368 +#: report/models.py:376 msgid "Label width, specified in mm" msgstr "" -#: report/models.py:374 +#: report/models.py:382 msgid "Height [mm]" msgstr "" -#: report/models.py:375 +#: report/models.py:383 msgid "Label height, specified in mm" msgstr "" -#: report/models.py:438 +#: report/models.py:446 msgid "Number of items to process" msgstr "" -#: report/models.py:444 +#: report/models.py:452 msgid "Report generation is complete" msgstr "" -#: report/models.py:448 templates/js/translated/build.js:2349 +#: report/models.py:456 templates/js/translated/build.js:2352 msgid "Progress" msgstr "" -#: report/models.py:448 +#: report/models.py:456 msgid "Report generation progress" msgstr "" -#: report/models.py:456 +#: report/models.py:464 msgid "Report Template" msgstr "" -#: report/models.py:463 report/models.py:486 +#: report/models.py:471 report/models.py:494 msgid "Output File" msgstr "" -#: report/models.py:464 report/models.py:487 +#: report/models.py:472 report/models.py:495 msgid "Generated output file" msgstr "" -#: report/models.py:475 +#: report/models.py:483 msgid "Label output plugin" msgstr "" -#: report/models.py:479 +#: report/models.py:487 msgid "Label Template" msgstr "" -#: report/models.py:502 +#: report/models.py:510 msgid "Snippet" msgstr "" -#: report/models.py:503 +#: report/models.py:511 msgid "Report snippet file" msgstr "" -#: report/models.py:510 +#: report/models.py:518 msgid "Snippet file description" msgstr "" -#: report/models.py:528 +#: report/models.py:536 msgid "Asset" msgstr "" -#: report/models.py:529 +#: report/models.py:537 msgid "Report asset file" msgstr "" -#: report/models.py:536 +#: report/models.py:544 msgid "Asset file description" msgstr "" -#: report/serializers.py:91 +#: report/serializers.py:92 msgid "Select report template" msgstr "" -#: report/serializers.py:99 report/serializers.py:149 +#: report/serializers.py:100 report/serializers.py:150 msgid "List of item primary keys to include in the report" msgstr "" -#: report/serializers.py:132 +#: report/serializers.py:133 msgid "Select label template" msgstr "" -#: report/serializers.py:140 +#: report/serializers.py:141 msgid "Printing Plugin" msgstr "" -#: report/serializers.py:141 +#: report/serializers.py:142 msgid "Select plugin to use for label printing" msgstr "" @@ -9365,9 +9721,9 @@ msgstr "" #: report/templates/report/inventree_sales_order_report.html:30 #: templates/js/translated/order.js:341 templates/js/translated/pricing.js:527 #: templates/js/translated/pricing.js:596 -#: templates/js/translated/pricing.js:834 -#: templates/js/translated/purchase_order.js:2185 -#: templates/js/translated/sales_order.js:1873 +#: templates/js/translated/pricing.js:832 +#: templates/js/translated/purchase_order.js:2169 +#: templates/js/translated/sales_order.js:1854 msgid "Unit Price" msgstr "" @@ -9379,13 +9735,18 @@ msgstr "" #: report/templates/report/inventree_purchase_order_report.html:72 #: report/templates/report/inventree_sales_order_report.html:72 -#: templates/js/translated/purchase_order.js:2087 -#: templates/js/translated/sales_order.js:1842 +#: templates/js/translated/purchase_order.js:2071 +#: templates/js/translated/sales_order.js:1823 #: templates/test_statistics_table.html:8 #: templates/test_statistics_table.html:19 msgid "Total" msgstr "" +#: report/templates/report/inventree_sales_order_shipment_report.html:23 +#: stock/templates/stock/stock_sidebar.html:8 +msgid "Allocations" +msgstr "" + #: report/templates/report/inventree_stock_location_report.html:97 msgid "Stock location items" msgstr "" @@ -9403,15 +9764,13 @@ msgstr "" msgid "Test" msgstr "" -#: report/templates/report/inventree_test_report.html:103 stock/models.py:2544 -msgid "Result" -msgstr "" - #: report/templates/report/inventree_test_report.html:129 +#: templates/js/translated/stock.js:1448 msgid "Pass" msgstr "" #: report/templates/report/inventree_test_report.html:131 +#: templates/js/translated/stock.js:1450 msgid "Fail" msgstr "" @@ -9420,17 +9779,18 @@ msgid "No result (required)" msgstr "" #: report/templates/report/inventree_test_report.html:140 +#: templates/js/translated/stock.js:1455 msgid "No result" msgstr "" #: report/templates/report/inventree_test_report.html:153 -#: stock/serializers.py:599 stock/templates/stock/stock_sidebar.html:16 +#: stock/serializers.py:626 stock/templates/stock/stock_sidebar.html:16 msgid "Installed Items" msgstr "" -#: report/templates/report/inventree_test_report.html:167 stock/admin.py:161 +#: report/templates/report/inventree_test_report.html:167 stock/admin.py:162 #: templates/js/translated/stock.js:706 templates/js/translated/stock.js:877 -#: templates/js/translated/stock.js:3194 +#: templates/js/translated/stock.js:3195 msgid "Serial" msgstr "" @@ -9450,67 +9810,67 @@ msgstr "" msgid "company_image tag requires a Company instance" msgstr "" -#: stock/admin.py:51 stock/admin.py:171 +#: stock/admin.py:51 stock/admin.py:172 msgid "Location ID" msgstr "" -#: stock/admin.py:63 stock/templates/stock/location.html:128 -#: stock/templates/stock/location.html:134 +#: stock/admin.py:63 stock/templates/stock/location.html:129 +#: stock/templates/stock/location.html:135 msgid "Location Path" msgstr "" -#: stock/admin.py:148 +#: stock/admin.py:149 msgid "Stock Item ID" msgstr "" -#: stock/admin.py:167 +#: stock/admin.py:168 msgid "Status Code" msgstr "" -#: stock/admin.py:179 +#: stock/admin.py:180 msgid "Supplier Part ID" msgstr "" -#: stock/admin.py:184 +#: stock/admin.py:185 msgid "Supplier Part SKU" msgstr "" -#: stock/admin.py:189 +#: stock/admin.py:190 msgid "Supplier ID" msgstr "" -#: stock/admin.py:200 +#: stock/admin.py:201 msgid "Customer ID" msgstr "" -#: stock/admin.py:205 stock/models.py:825 -#: stock/templates/stock/item_base.html:354 +#: stock/admin.py:206 stock/models.py:902 +#: stock/templates/stock/item_base.html:351 msgid "Installed In" msgstr "" -#: stock/admin.py:210 +#: stock/admin.py:211 msgid "Build ID" msgstr "" -#: stock/admin.py:220 +#: stock/admin.py:221 msgid "Sales Order ID" msgstr "" -#: stock/admin.py:225 +#: stock/admin.py:226 msgid "Purchase Order ID" msgstr "" -#: stock/admin.py:240 +#: stock/admin.py:241 msgid "Review Needed" msgstr "" -#: stock/admin.py:245 +#: stock/admin.py:246 msgid "Delete on Deplete" msgstr "" -#: stock/admin.py:260 stock/models.py:919 -#: stock/templates/stock/item_base.html:433 -#: templates/js/translated/stock.js:2315 users/models.py:124 +#: stock/admin.py:261 stock/models.py:996 +#: stock/templates/stock/item_base.html:430 +#: templates/js/translated/stock.js:2316 users/models.py:124 msgid "Expiry Date" msgstr "" @@ -9526,11 +9886,11 @@ msgstr "" msgid "Include sub-locations in filtered results" msgstr "" -#: stock/api.py:367 stock/serializers.py:1186 +#: stock/api.py:366 stock/serializers.py:1217 msgid "Parent Location" msgstr "" -#: stock/api.py:368 +#: stock/api.py:367 msgid "Filter by parent location" msgstr "" @@ -9550,8 +9910,8 @@ msgstr "" msgid "Expiry date after" msgstr "" -#: stock/api.py:840 stock/serializers.py:604 -#: stock/templates/stock/item_base.html:439 +#: stock/api.py:840 stock/serializers.py:631 +#: stock/templates/stock/item_base.html:436 #: templates/js/translated/table_filters.js:448 msgid "Stale" msgstr "" @@ -9560,594 +9920,598 @@ msgstr "" msgid "Quantity is required" msgstr "" -#: stock/api.py:933 +#: stock/api.py:932 msgid "Valid part must be supplied" msgstr "" -#: stock/api.py:964 +#: stock/api.py:959 msgid "The given supplier part does not exist" msgstr "" -#: stock/api.py:974 +#: stock/api.py:969 msgid "The supplier part has a pack size defined, but flag use_pack_size not set" msgstr "" -#: stock/api.py:1005 +#: stock/api.py:996 msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "" -#: stock/models.py:64 +#: stock/models.py:70 msgid "Stock Location type" msgstr "" -#: stock/models.py:65 +#: stock/models.py:71 msgid "Stock Location types" msgstr "" -#: stock/models.py:91 +#: stock/models.py:97 msgid "Default icon for all locations that have no icon set (optional)" msgstr "" -#: stock/models.py:131 stock/models.py:807 -#: stock/templates/stock/location.html:17 +#: stock/models.py:137 stock/models.py:884 +#: stock/templates/stock/location.html:18 #: stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "Място в склада" -#: stock/models.py:132 stock/templates/stock/location.html:183 +#: stock/models.py:138 stock/templates/stock/location.html:184 #: templates/InvenTree/search.html:166 templates/js/translated/search.js:178 #: users/models.py:205 msgid "Stock Locations" msgstr "Места в склада" -#: stock/models.py:180 stock/models.py:968 -#: stock/templates/stock/item_base.html:247 +#: stock/models.py:186 stock/models.py:1045 +#: stock/templates/stock/item_base.html:244 msgid "Owner" msgstr "" -#: stock/models.py:181 stock/models.py:969 +#: stock/models.py:187 stock/models.py:1046 msgid "Select Owner" msgstr "" -#: stock/models.py:189 +#: stock/models.py:195 msgid "Stock items may not be directly located into a structural stock locations, but may be located to child locations." msgstr "" -#: stock/models.py:196 templates/js/translated/stock.js:2865 +#: stock/models.py:202 templates/js/translated/stock.js:2866 #: templates/js/translated/table_filters.js:250 msgid "External" msgstr "" -#: stock/models.py:197 +#: stock/models.py:203 msgid "This is an external stock location" msgstr "" -#: stock/models.py:203 templates/js/translated/stock.js:2874 +#: stock/models.py:209 templates/js/translated/stock.js:2875 #: templates/js/translated/table_filters.js:253 msgid "Location type" msgstr "" -#: stock/models.py:207 +#: stock/models.py:213 msgid "Stock location type of this location" msgstr "" -#: stock/models.py:279 +#: stock/models.py:285 msgid "You cannot make this stock location structural because some stock items are already located into it!" msgstr "" -#: stock/models.py:664 +#: stock/models.py:492 +msgid "Part must be specified" +msgstr "" + +#: stock/models.py:741 msgid "Stock items cannot be located into structural stock locations!" msgstr "" -#: stock/models.py:691 stock/serializers.py:480 +#: stock/models.py:768 stock/serializers.py:492 msgid "Stock item cannot be created for virtual parts" msgstr "" -#: stock/models.py:708 +#: stock/models.py:785 #, python-brace-format msgid "Part type ('{self.supplier_part.part}') must be {self.part}" msgstr "" -#: stock/models.py:718 stock/models.py:731 +#: stock/models.py:795 stock/models.py:808 msgid "Quantity must be 1 for item with a serial number" msgstr "" -#: stock/models.py:721 +#: stock/models.py:798 msgid "Serial number cannot be set if quantity greater than 1" msgstr "" -#: stock/models.py:743 +#: stock/models.py:820 msgid "Item cannot belong to itself" msgstr "" -#: stock/models.py:748 +#: stock/models.py:825 msgid "Item must have a build reference if is_building=True" msgstr "" -#: stock/models.py:761 +#: stock/models.py:838 msgid "Build reference does not point to the same part object" msgstr "" -#: stock/models.py:777 +#: stock/models.py:854 msgid "Parent Stock Item" msgstr "" -#: stock/models.py:789 +#: stock/models.py:866 msgid "Base part" msgstr "" -#: stock/models.py:799 +#: stock/models.py:876 msgid "Select a matching supplier part for this stock item" msgstr "" -#: stock/models.py:811 +#: stock/models.py:888 msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:819 stock/serializers.py:1580 +#: stock/models.py:896 stock/serializers.py:1611 msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:830 +#: stock/models.py:907 msgid "Is this item installed in another item?" msgstr "" -#: stock/models.py:849 +#: stock/models.py:926 msgid "Serial number for this item" msgstr "" -#: stock/models.py:863 stock/serializers.py:1563 +#: stock/models.py:940 stock/serializers.py:1594 msgid "Batch code for this stock item" msgstr "" -#: stock/models.py:868 +#: stock/models.py:945 msgid "Stock Quantity" msgstr "" -#: stock/models.py:878 +#: stock/models.py:955 msgid "Source Build" msgstr "" -#: stock/models.py:881 +#: stock/models.py:958 msgid "Build for this stock item" msgstr "" -#: stock/models.py:888 stock/templates/stock/item_base.html:363 +#: stock/models.py:965 stock/templates/stock/item_base.html:360 msgid "Consumed By" msgstr "" -#: stock/models.py:891 +#: stock/models.py:968 msgid "Build order which consumed this stock item" msgstr "" -#: stock/models.py:900 +#: stock/models.py:977 msgid "Source Purchase Order" msgstr "" -#: stock/models.py:904 +#: stock/models.py:981 msgid "Purchase order for this stock item" msgstr "" -#: stock/models.py:910 +#: stock/models.py:987 msgid "Destination Sales Order" msgstr "" -#: stock/models.py:921 +#: stock/models.py:998 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "" -#: stock/models.py:939 +#: stock/models.py:1016 msgid "Delete on deplete" msgstr "" -#: stock/models.py:940 +#: stock/models.py:1017 msgid "Delete this Stock Item when stock is depleted" msgstr "" -#: stock/models.py:960 +#: stock/models.py:1037 msgid "Single unit purchase price at time of purchase" msgstr "" -#: stock/models.py:991 +#: stock/models.py:1068 msgid "Converted to part" msgstr "" -#: stock/models.py:1511 +#: stock/models.py:1600 msgid "Part is not set as trackable" msgstr "" -#: stock/models.py:1517 +#: stock/models.py:1606 msgid "Quantity must be integer" msgstr "" -#: stock/models.py:1525 +#: stock/models.py:1614 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({self.quantity})" msgstr "" -#: stock/models.py:1531 -msgid "Serial numbers must be a list of integers" +#: stock/models.py:1620 +msgid "Serial numbers must be provided as a list" msgstr "" -#: stock/models.py:1536 +#: stock/models.py:1625 msgid "Quantity does not match serial numbers" msgstr "" -#: stock/models.py:1544 stock/serializers.py:726 -msgid "Serial numbers already exist" -msgstr "" - -#: stock/models.py:1641 +#: stock/models.py:1747 stock/models.py:2563 msgid "Test template does not exist" msgstr "" -#: stock/models.py:1659 +#: stock/models.py:1765 msgid "Stock item has been assigned to a sales order" msgstr "" -#: stock/models.py:1663 +#: stock/models.py:1769 msgid "Stock item is installed in another item" msgstr "" -#: stock/models.py:1666 +#: stock/models.py:1772 msgid "Stock item contains other items" msgstr "" -#: stock/models.py:1669 +#: stock/models.py:1775 msgid "Stock item has been assigned to a customer" msgstr "" -#: stock/models.py:1672 +#: stock/models.py:1778 msgid "Stock item is currently in production" msgstr "" -#: stock/models.py:1675 +#: stock/models.py:1781 msgid "Serialized stock cannot be merged" msgstr "" -#: stock/models.py:1682 stock/serializers.py:1469 +#: stock/models.py:1788 stock/serializers.py:1500 msgid "Duplicate stock items" msgstr "" -#: stock/models.py:1686 +#: stock/models.py:1792 msgid "Stock items must refer to the same part" msgstr "" -#: stock/models.py:1694 +#: stock/models.py:1800 msgid "Stock items must refer to the same supplier part" msgstr "" -#: stock/models.py:1699 +#: stock/models.py:1805 msgid "Stock status codes must match" msgstr "" -#: stock/models.py:1960 +#: stock/models.py:2066 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:2343 +#: stock/models.py:2462 msgid "Stock Item Tracking" msgstr "" -#: stock/models.py:2376 +#: stock/models.py:2495 msgid "Entry notes" msgstr "" -#: stock/models.py:2416 +#: stock/models.py:2535 msgid "Stock Item Test Result" msgstr "" -#: stock/models.py:2449 +#: stock/models.py:2566 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:2454 +#: stock/models.py:2570 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:2459 +#: stock/models.py:2575 msgid "Invalid value for this test" msgstr "" -#: stock/models.py:2544 +#: stock/models.py:2660 msgid "Test result" msgstr "" -#: stock/models.py:2551 +#: stock/models.py:2667 msgid "Test output value" msgstr "" -#: stock/models.py:2559 +#: stock/models.py:2675 stock/serializers.py:245 msgid "Test result attachment" msgstr "" -#: stock/models.py:2563 +#: stock/models.py:2679 msgid "Test notes" msgstr "" -#: stock/models.py:2571 templates/js/translated/stock.js:1633 +#: stock/models.py:2687 templates/js/translated/stock.js:1633 msgid "Test station" msgstr "" -#: stock/models.py:2572 +#: stock/models.py:2688 msgid "The identifier of the test station where the test was performed" msgstr "" -#: stock/models.py:2578 +#: stock/models.py:2694 msgid "Started" msgstr "" -#: stock/models.py:2579 +#: stock/models.py:2695 msgid "The timestamp of the test start" msgstr "" -#: stock/models.py:2585 +#: stock/models.py:2701 msgid "Finished" msgstr "" -#: stock/models.py:2586 +#: stock/models.py:2702 msgid "The timestamp of the test finish" msgstr "" -#: stock/serializers.py:76 +#: stock/serializers.py:77 msgid "Generated batch code" msgstr "" -#: stock/serializers.py:85 +#: stock/serializers.py:86 msgid "Select build order" msgstr "" -#: stock/serializers.py:94 +#: stock/serializers.py:95 msgid "Select stock item to generate batch code for" msgstr "" -#: stock/serializers.py:103 +#: stock/serializers.py:104 msgid "Select location to generate batch code for" msgstr "" -#: stock/serializers.py:112 +#: stock/serializers.py:113 msgid "Select part to generate batch code for" msgstr "" -#: stock/serializers.py:121 +#: stock/serializers.py:122 msgid "Select purchase order" msgstr "" -#: stock/serializers.py:128 +#: stock/serializers.py:129 msgid "Enter quantity for batch code" msgstr "" -#: stock/serializers.py:151 +#: stock/serializers.py:152 msgid "Generated serial number" msgstr "" -#: stock/serializers.py:160 +#: stock/serializers.py:161 msgid "Select part to generate serial number for" msgstr "" -#: stock/serializers.py:168 +#: stock/serializers.py:169 msgid "Quantity of serial numbers to generate" msgstr "" -#: stock/serializers.py:233 +#: stock/serializers.py:234 msgid "Test template for this result" msgstr "" -#: stock/serializers.py:254 +#: stock/serializers.py:258 msgid "Template ID or test name must be provided" msgstr "" -#: stock/serializers.py:286 +#: stock/serializers.py:290 msgid "The test finished time cannot be earlier than the test started time" msgstr "" -#: stock/serializers.py:323 +#: stock/serializers.py:327 msgid "Serial number is too large" msgstr "" -#: stock/serializers.py:452 stock/templates/stock/item_base.html:193 +#: stock/serializers.py:462 stock/templates/stock/item_base.html:190 msgid "Parent Item" msgstr "" -#: stock/serializers.py:453 +#: stock/serializers.py:463 msgid "Parent stock item" msgstr "" -#: stock/serializers.py:472 +#: stock/serializers.py:484 msgid "Use pack size when adding: the quantity defined is the number of packs" msgstr "" -#: stock/serializers.py:596 stock/templates/stock/item_base.html:437 +#: stock/serializers.py:623 stock/templates/stock/item_base.html:434 #: templates/js/translated/table_filters.js:442 users/models.py:174 msgid "Expired" msgstr "" -#: stock/serializers.py:602 stock/templates/stock/stock_sidebar.html:20 +#: stock/serializers.py:629 stock/templates/stock/stock_sidebar.html:20 msgid "Child Items" msgstr "" -#: stock/serializers.py:606 +#: stock/serializers.py:633 msgid "Tracking Items" msgstr "" -#: stock/serializers.py:612 +#: stock/serializers.py:639 msgid "Purchase price of this stock item, per unit or pack" msgstr "" -#: stock/serializers.py:631 +#: stock/serializers.py:658 msgid "Minimum Pricing" msgstr "" -#: stock/serializers.py:637 +#: stock/serializers.py:664 msgid "Maximum Pricing" msgstr "" -#: stock/serializers.py:661 +#: stock/serializers.py:688 msgid "Enter number of stock items to serialize" msgstr "" -#: stock/serializers.py:674 +#: stock/serializers.py:701 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({q})" msgstr "" -#: stock/serializers.py:681 +#: stock/serializers.py:708 msgid "Enter serial numbers for new items" msgstr "" -#: stock/serializers.py:692 stock/serializers.py:1426 stock/serializers.py:1682 +#: stock/serializers.py:719 stock/serializers.py:1457 stock/serializers.py:1713 msgid "Destination stock location" msgstr "" -#: stock/serializers.py:699 +#: stock/serializers.py:726 msgid "Optional note field" msgstr "" -#: stock/serializers.py:709 +#: stock/serializers.py:736 msgid "Serial numbers cannot be assigned to this part" msgstr "" -#: stock/serializers.py:764 +#: stock/serializers.py:756 +msgid "Serial numbers already exist" +msgstr "" + +#: stock/serializers.py:795 msgid "Select stock item to install" msgstr "" -#: stock/serializers.py:771 +#: stock/serializers.py:802 msgid "Quantity to Install" msgstr "" -#: stock/serializers.py:772 +#: stock/serializers.py:803 msgid "Enter the quantity of items to install" msgstr "" -#: stock/serializers.py:777 stock/serializers.py:857 stock/serializers.py:983 -#: stock/serializers.py:1033 +#: stock/serializers.py:808 stock/serializers.py:888 stock/serializers.py:1014 +#: stock/serializers.py:1064 msgid "Add transaction note (optional)" msgstr "" -#: stock/serializers.py:785 +#: stock/serializers.py:816 msgid "Quantity to install must be at least 1" msgstr "" -#: stock/serializers.py:793 +#: stock/serializers.py:824 msgid "Stock item is unavailable" msgstr "" -#: stock/serializers.py:804 +#: stock/serializers.py:835 msgid "Selected part is not in the Bill of Materials" msgstr "" -#: stock/serializers.py:817 +#: stock/serializers.py:848 msgid "Quantity to install must not exceed available quantity" msgstr "" -#: stock/serializers.py:852 +#: stock/serializers.py:883 msgid "Destination location for uninstalled item" msgstr "" -#: stock/serializers.py:903 +#: stock/serializers.py:934 msgid "Unsupported statistic type: " msgstr "" -#: stock/serializers.py:917 +#: stock/serializers.py:948 msgid "Select part to convert stock item into" msgstr "" -#: stock/serializers.py:930 +#: stock/serializers.py:961 msgid "Selected part is not a valid option for conversion" msgstr "" -#: stock/serializers.py:947 +#: stock/serializers.py:978 msgid "Cannot convert stock item with assigned SupplierPart" msgstr "" -#: stock/serializers.py:978 +#: stock/serializers.py:1009 msgid "Destination location for returned item" msgstr "" -#: stock/serializers.py:1015 +#: stock/serializers.py:1046 msgid "Select stock items to change status" msgstr "" -#: stock/serializers.py:1021 +#: stock/serializers.py:1052 msgid "No stock items selected" msgstr "" -#: stock/serializers.py:1117 stock/serializers.py:1194 -#: stock/templates/stock/location.html:162 -#: stock/templates/stock/location.html:219 +#: stock/serializers.py:1148 stock/serializers.py:1225 +#: stock/templates/stock/location.html:163 +#: stock/templates/stock/location.html:220 #: stock/templates/stock/location_sidebar.html:5 msgid "Sublocations" msgstr "" -#: stock/serializers.py:1187 templates/js/translated/stock.js:160 +#: stock/serializers.py:1218 templates/js/translated/stock.js:160 msgid "Parent stock location" msgstr "" -#: stock/serializers.py:1298 +#: stock/serializers.py:1329 msgid "Part must be salable" msgstr "" -#: stock/serializers.py:1302 +#: stock/serializers.py:1333 msgid "Item is allocated to a sales order" msgstr "" -#: stock/serializers.py:1306 +#: stock/serializers.py:1337 msgid "Item is allocated to a build order" msgstr "" -#: stock/serializers.py:1330 +#: stock/serializers.py:1361 msgid "Customer to assign stock items" msgstr "" -#: stock/serializers.py:1336 +#: stock/serializers.py:1367 msgid "Selected company is not a customer" msgstr "" -#: stock/serializers.py:1344 +#: stock/serializers.py:1375 msgid "Stock assignment notes" msgstr "" -#: stock/serializers.py:1354 stock/serializers.py:1608 +#: stock/serializers.py:1385 stock/serializers.py:1639 msgid "A list of stock items must be provided" msgstr "" -#: stock/serializers.py:1433 +#: stock/serializers.py:1464 msgid "Stock merging notes" msgstr "" -#: stock/serializers.py:1438 +#: stock/serializers.py:1469 msgid "Allow mismatched suppliers" msgstr "" -#: stock/serializers.py:1439 +#: stock/serializers.py:1470 msgid "Allow stock items with different supplier parts to be merged" msgstr "" -#: stock/serializers.py:1444 +#: stock/serializers.py:1475 msgid "Allow mismatched status" msgstr "" -#: stock/serializers.py:1445 +#: stock/serializers.py:1476 msgid "Allow stock items with different status codes to be merged" msgstr "" -#: stock/serializers.py:1455 +#: stock/serializers.py:1486 msgid "At least two stock items must be provided" msgstr "" -#: stock/serializers.py:1522 +#: stock/serializers.py:1553 msgid "No Change" msgstr "" -#: stock/serializers.py:1551 +#: stock/serializers.py:1582 msgid "StockItem primary key value" msgstr "" -#: stock/serializers.py:1570 +#: stock/serializers.py:1601 msgid "Stock item status code" msgstr "" -#: stock/serializers.py:1598 +#: stock/serializers.py:1629 msgid "Stock transaction notes" msgstr "" @@ -10175,107 +10539,107 @@ msgstr "" msgid "Quarantined" msgstr "" -#: stock/status_codes.py:40 +#: stock/status_codes.py:44 msgid "Legacy stock tracking entry" msgstr "" -#: stock/status_codes.py:42 templates/js/translated/stock.js:550 +#: stock/status_codes.py:46 templates/js/translated/stock.js:550 msgid "Stock item created" msgstr "" -#: stock/status_codes.py:45 +#: stock/status_codes.py:49 msgid "Edited stock item" msgstr "" -#: stock/status_codes.py:46 +#: stock/status_codes.py:50 msgid "Assigned serial number" msgstr "" -#: stock/status_codes.py:49 +#: stock/status_codes.py:53 msgid "Stock counted" msgstr "Наличността е преброена" -#: stock/status_codes.py:50 +#: stock/status_codes.py:54 msgid "Stock manually added" msgstr "" -#: stock/status_codes.py:51 +#: stock/status_codes.py:55 msgid "Stock manually removed" msgstr "" -#: stock/status_codes.py:54 +#: stock/status_codes.py:58 msgid "Location changed" msgstr "" -#: stock/status_codes.py:55 +#: stock/status_codes.py:59 msgid "Stock updated" msgstr "" -#: stock/status_codes.py:58 +#: stock/status_codes.py:62 msgid "Installed into assembly" msgstr "" -#: stock/status_codes.py:59 +#: stock/status_codes.py:63 msgid "Removed from assembly" msgstr "" -#: stock/status_codes.py:61 +#: stock/status_codes.py:65 msgid "Installed component item" msgstr "" -#: stock/status_codes.py:62 +#: stock/status_codes.py:66 msgid "Removed component item" msgstr "" -#: stock/status_codes.py:65 +#: stock/status_codes.py:69 msgid "Split from parent item" msgstr "" -#: stock/status_codes.py:66 +#: stock/status_codes.py:70 msgid "Split child item" msgstr "" -#: stock/status_codes.py:69 templates/js/translated/stock.js:1943 +#: stock/status_codes.py:73 templates/js/translated/stock.js:1944 msgid "Merged stock items" msgstr "" -#: stock/status_codes.py:72 +#: stock/status_codes.py:76 msgid "Converted to variant" msgstr "" -#: stock/status_codes.py:75 +#: stock/status_codes.py:79 msgid "Build order output created" msgstr "" -#: stock/status_codes.py:76 +#: stock/status_codes.py:80 msgid "Build order output completed" msgstr "" -#: stock/status_codes.py:77 +#: stock/status_codes.py:81 msgid "Build order output rejected" msgstr "" -#: stock/status_codes.py:78 templates/js/translated/stock.js:1849 +#: stock/status_codes.py:82 templates/js/translated/stock.js:1849 msgid "Consumed by build order" msgstr "" -#: stock/status_codes.py:81 +#: stock/status_codes.py:85 msgid "Shipped against Sales Order" msgstr "" -#: stock/status_codes.py:84 +#: stock/status_codes.py:88 msgid "Received against Purchase Order" msgstr "" -#: stock/status_codes.py:87 +#: stock/status_codes.py:91 msgid "Returned against Return Order" msgstr "" -#: stock/status_codes.py:90 templates/js/translated/table_filters.js:382 +#: stock/status_codes.py:94 templates/js/translated/table_filters.js:382 msgid "Sent to customer" msgstr "" -#: stock/status_codes.py:91 +#: stock/status_codes.py:95 msgid "Returned from customer" msgstr "" @@ -10296,7 +10660,7 @@ msgstr "" msgid "Test Data" msgstr "" -#: stock/templates/stock/item.html:85 stock/templates/stock/item_base.html:65 +#: stock/templates/stock/item.html:85 msgid "Test Report" msgstr "" @@ -10316,7 +10680,7 @@ msgstr "" msgid "Installed Stock Items" msgstr "" -#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3354 +#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3355 msgid "Install Stock Item" msgstr "" @@ -10328,208 +10692,212 @@ msgstr "" msgid "Add Test Result" msgstr "" -#: stock/templates/stock/item_base.html:33 +#: stock/templates/stock/item_base.html:34 msgid "Locate stock item" msgstr "" -#: stock/templates/stock/item_base.html:51 +#: stock/templates/stock/item_base.html:52 msgid "Scan to Location" msgstr "" #: stock/templates/stock/item_base.html:59 -#: stock/templates/stock/location.html:67 +#: stock/templates/stock/location.html:68 #: templates/js/translated/filters.js:434 msgid "Printing actions" msgstr "" -#: stock/templates/stock/item_base.html:75 +#: stock/templates/stock/item_base.html:64 templates/js/translated/report.js:49 +msgid "Print Report" +msgstr "" + +#: stock/templates/stock/item_base.html:72 msgid "Stock adjustment actions" msgstr "" -#: stock/templates/stock/item_base.html:79 -#: stock/templates/stock/location.html:87 templates/js/translated/stock.js:1909 +#: stock/templates/stock/item_base.html:76 +#: stock/templates/stock/location.html:88 templates/js/translated/stock.js:1909 msgid "Count stock" msgstr "" -#: stock/templates/stock/item_base.html:81 +#: stock/templates/stock/item_base.html:78 #: templates/js/translated/stock.js:1891 msgid "Add stock" msgstr "" -#: stock/templates/stock/item_base.html:82 +#: stock/templates/stock/item_base.html:79 #: templates/js/translated/stock.js:1900 msgid "Remove stock" msgstr "" -#: stock/templates/stock/item_base.html:85 +#: stock/templates/stock/item_base.html:82 msgid "Serialize stock" msgstr "" -#: stock/templates/stock/item_base.html:88 -#: stock/templates/stock/location.html:93 templates/js/translated/stock.js:1918 +#: stock/templates/stock/item_base.html:85 +#: stock/templates/stock/location.html:94 templates/js/translated/stock.js:1918 msgid "Transfer stock" msgstr "" -#: stock/templates/stock/item_base.html:91 -#: templates/js/translated/stock.js:1972 +#: stock/templates/stock/item_base.html:88 +#: templates/js/translated/stock.js:1973 msgid "Assign to customer" msgstr "" -#: stock/templates/stock/item_base.html:94 +#: stock/templates/stock/item_base.html:91 msgid "Return to stock" msgstr "" -#: stock/templates/stock/item_base.html:97 +#: stock/templates/stock/item_base.html:94 msgid "Uninstall stock item" msgstr "" -#: stock/templates/stock/item_base.html:97 +#: stock/templates/stock/item_base.html:94 msgid "Uninstall" msgstr "" -#: stock/templates/stock/item_base.html:101 +#: stock/templates/stock/item_base.html:98 msgid "Install stock item" msgstr "" -#: stock/templates/stock/item_base.html:101 +#: stock/templates/stock/item_base.html:98 msgid "Install" msgstr "" -#: stock/templates/stock/item_base.html:115 +#: stock/templates/stock/item_base.html:112 msgid "Convert to variant" msgstr "" -#: stock/templates/stock/item_base.html:118 +#: stock/templates/stock/item_base.html:115 msgid "Duplicate stock item" msgstr "" -#: stock/templates/stock/item_base.html:120 +#: stock/templates/stock/item_base.html:117 msgid "Edit stock item" msgstr "" -#: stock/templates/stock/item_base.html:123 +#: stock/templates/stock/item_base.html:120 msgid "Delete stock item" msgstr "" -#: stock/templates/stock/item_base.html:169 templates/InvenTree/search.html:139 -#: templates/js/translated/build.js:2295 templates/navbar.html:38 +#: stock/templates/stock/item_base.html:166 templates/InvenTree/search.html:139 +#: templates/js/translated/build.js:2298 templates/navbar.html:38 msgid "Build" msgstr "" -#: stock/templates/stock/item_base.html:211 +#: stock/templates/stock/item_base.html:208 msgid "No manufacturer set" msgstr "" -#: stock/templates/stock/item_base.html:251 +#: stock/templates/stock/item_base.html:248 msgid "You are not in the list of owners of this item. This stock item cannot be edited." msgstr "" -#: stock/templates/stock/item_base.html:252 -#: stock/templates/stock/location.html:146 +#: stock/templates/stock/item_base.html:249 +#: stock/templates/stock/location.html:147 msgid "Read only" msgstr "" -#: stock/templates/stock/item_base.html:265 +#: stock/templates/stock/item_base.html:262 msgid "This stock item is unavailable" msgstr "" -#: stock/templates/stock/item_base.html:271 +#: stock/templates/stock/item_base.html:268 msgid "This stock item is in production and cannot be edited." msgstr "" -#: stock/templates/stock/item_base.html:272 +#: stock/templates/stock/item_base.html:269 msgid "Edit the stock item from the build view." msgstr "" -#: stock/templates/stock/item_base.html:287 +#: stock/templates/stock/item_base.html:284 msgid "This stock item is allocated to Sales Order" msgstr "" -#: stock/templates/stock/item_base.html:295 +#: stock/templates/stock/item_base.html:292 msgid "This stock item is allocated to Build Order" msgstr "" -#: stock/templates/stock/item_base.html:311 +#: stock/templates/stock/item_base.html:308 msgid "This stock item is serialized. It has a unique serial number and the quantity cannot be adjusted" msgstr "" -#: stock/templates/stock/item_base.html:317 +#: stock/templates/stock/item_base.html:314 msgid "previous page" msgstr "" -#: stock/templates/stock/item_base.html:317 +#: stock/templates/stock/item_base.html:314 msgid "Navigate to previous serial number" msgstr "" -#: stock/templates/stock/item_base.html:326 +#: stock/templates/stock/item_base.html:323 msgid "next page" msgstr "" -#: stock/templates/stock/item_base.html:326 +#: stock/templates/stock/item_base.html:323 msgid "Navigate to next serial number" msgstr "" -#: stock/templates/stock/item_base.html:398 -#: templates/js/translated/build.js:2552 +#: stock/templates/stock/item_base.html:395 +#: templates/js/translated/build.js:2559 msgid "No location set" msgstr "" -#: stock/templates/stock/item_base.html:413 +#: stock/templates/stock/item_base.html:410 msgid "Tests" msgstr "" -#: stock/templates/stock/item_base.html:419 +#: stock/templates/stock/item_base.html:416 msgid "This stock item has not passed all required tests" msgstr "" -#: stock/templates/stock/item_base.html:437 +#: stock/templates/stock/item_base.html:434 #, python-format msgid "This StockItem expired on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:439 +#: stock/templates/stock/item_base.html:436 #, python-format msgid "This StockItem expires on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:455 +#: stock/templates/stock/item_base.html:452 msgid "No stocktake performed" msgstr "" -#: stock/templates/stock/item_base.html:504 -#: templates/js/translated/stock.js:2037 +#: stock/templates/stock/item_base.html:501 +#: templates/js/translated/stock.js:2038 msgid "stock item" msgstr "" -#: stock/templates/stock/item_base.html:527 +#: stock/templates/stock/item_base.html:524 msgid "Edit Stock Status" msgstr "" -#: stock/templates/stock/item_base.html:536 +#: stock/templates/stock/item_base.html:533 msgid "Stock Item QR Code" msgstr "" -#: stock/templates/stock/item_base.html:547 +#: stock/templates/stock/item_base.html:544 msgid "Link Barcode to Stock Item" msgstr "" -#: stock/templates/stock/item_base.html:611 +#: stock/templates/stock/item_base.html:608 msgid "Select one of the part variants listed below." msgstr "" -#: stock/templates/stock/item_base.html:614 +#: stock/templates/stock/item_base.html:611 msgid "Warning" msgstr "" -#: stock/templates/stock/item_base.html:615 +#: stock/templates/stock/item_base.html:612 msgid "This action cannot be easily undone" msgstr "" -#: stock/templates/stock/item_base.html:623 +#: stock/templates/stock/item_base.html:620 msgid "Convert Stock Item" msgstr "" -#: stock/templates/stock/item_base.html:656 +#: stock/templates/stock/item_base.html:653 msgid "Return to Stock" msgstr "" @@ -10541,84 +10909,84 @@ msgstr "" msgid "Select quantity to serialize, and unique serial numbers." msgstr "" -#: stock/templates/stock/location.html:35 +#: stock/templates/stock/location.html:36 msgid "Perform stocktake for this stock location" msgstr "" -#: stock/templates/stock/location.html:42 +#: stock/templates/stock/location.html:43 msgid "Locate stock location" msgstr "" -#: stock/templates/stock/location.html:60 +#: stock/templates/stock/location.html:61 msgid "Scan stock items into this location" msgstr "" -#: stock/templates/stock/location.html:60 +#: stock/templates/stock/location.html:61 msgid "Scan In Stock Items" msgstr "" -#: stock/templates/stock/location.html:61 +#: stock/templates/stock/location.html:62 msgid "Scan stock container into this location" msgstr "" -#: stock/templates/stock/location.html:61 +#: stock/templates/stock/location.html:62 msgid "Scan In Container" msgstr "" -#: stock/templates/stock/location.html:72 +#: stock/templates/stock/location.html:73 msgid "Print Location Report" msgstr "" -#: stock/templates/stock/location.html:101 +#: stock/templates/stock/location.html:102 msgid "Location actions" msgstr "" -#: stock/templates/stock/location.html:103 +#: stock/templates/stock/location.html:104 msgid "Edit location" msgstr "" -#: stock/templates/stock/location.html:105 +#: stock/templates/stock/location.html:106 msgid "Delete location" msgstr "" -#: stock/templates/stock/location.html:135 +#: stock/templates/stock/location.html:136 msgid "Top level stock location" msgstr "" -#: stock/templates/stock/location.html:141 +#: stock/templates/stock/location.html:142 msgid "Location Owner" msgstr "" -#: stock/templates/stock/location.html:145 +#: stock/templates/stock/location.html:146 msgid "You are not in the list of owners of this location. This stock location cannot be edited." msgstr "" -#: stock/templates/stock/location.html:173 +#: stock/templates/stock/location.html:174 msgid "Location Type" msgstr "" -#: stock/templates/stock/location.html:223 +#: stock/templates/stock/location.html:224 msgid "Create new stock location" msgstr "" -#: stock/templates/stock/location.html:224 +#: stock/templates/stock/location.html:225 msgid "New Location" msgstr "" -#: stock/templates/stock/location.html:298 -#: templates/js/translated/stock.js:2657 +#: stock/templates/stock/location.html:299 +#: templates/js/translated/stock.js:2658 msgid "stock location" msgstr "" -#: stock/templates/stock/location.html:320 +#: stock/templates/stock/location.html:321 msgid "Scanned stock container into this location" msgstr "" -#: stock/templates/stock/location.html:393 +#: stock/templates/stock/location.html:394 msgid "Stock Location QR Code" msgstr "" -#: stock/templates/stock/location.html:404 +#: stock/templates/stock/location.html:405 msgid "Link Barcode to Stock Location" msgstr "" @@ -10630,10 +10998,6 @@ msgstr "" msgid "Stock Tracking" msgstr "" -#: stock/templates/stock/stock_sidebar.html:8 -msgid "Allocations" -msgstr "" - #: templates/403.html:6 templates/403.html:12 templates/403_csrf.html:7 msgid "Permission Denied" msgstr "" @@ -11107,9 +11471,9 @@ msgid "Rate" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:81 -#: templates/js/translated/forms.js:548 templates/js/translated/helpers.js:108 +#: templates/js/translated/forms.js:548 templates/js/translated/helpers.js:109 #: templates/js/translated/part.js:395 templates/js/translated/pricing.js:629 -#: templates/js/translated/stock.js:252 users/models.py:406 +#: templates/js/translated/stock.js:252 users/models.py:408 msgid "Delete" msgstr "" @@ -11130,7 +11494,7 @@ msgid "No project codes found" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:158 -#: templates/js/translated/build.js:2400 +#: templates/js/translated/build.js:2403 msgid "group" msgstr "" @@ -11196,7 +11560,7 @@ msgid "Delete Location Type" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:503 -#: templates/InvenTree/settings/stock.html:38 +#: templates/InvenTree/settings/stock.html:39 msgid "New Location Type" msgstr "" @@ -11253,7 +11617,7 @@ msgstr "" msgid "Stock Settings" msgstr "" -#: templates/InvenTree/settings/stock.html:34 +#: templates/InvenTree/settings/stock.html:35 msgid "Stock Location Types" msgstr "" @@ -11280,7 +11644,7 @@ msgid "Unverified" msgstr "" #: templates/InvenTree/settings/user.html:80 -#: templates/js/translated/company.js:957 +#: templates/js/translated/company.js:958 msgid "Primary" msgstr "" @@ -11532,7 +11896,7 @@ msgid "Submit Bug Report" msgstr "" #: templates/about.html:91 templates/clip.html:4 -#: templates/js/translated/helpers.js:592 +#: templates/js/translated/helpers.js:598 msgid "copy to clipboard" msgstr "" @@ -11738,23 +12102,24 @@ msgstr "" msgid "Barcode Identifier" msgstr "" -#: templates/base.html:103 +#: templates/base.html:102 msgid "Server Restart Required" msgstr "" -#: templates/base.html:106 +#: templates/base.html:105 msgid "A configuration option has been changed which requires a server restart" msgstr "" -#: templates/base.html:106 templates/base.html:116 +#: templates/base.html:105 templates/base.html:115 +#: templates/socialaccount/authentication_error.html:13 msgid "Contact your system administrator for further information" msgstr "" -#: templates/base.html:113 +#: templates/base.html:112 msgid "Pending Database Migrations" msgstr "" -#: templates/base.html:116 +#: templates/base.html:115 msgid "There are pending database migrations which require attention" msgstr "" @@ -11787,7 +12152,7 @@ msgid "The following parts are low on required stock" msgstr "" #: templates/email/build_order_required_stock.html:18 -#: templates/js/translated/bom.js:1674 templates/js/translated/build.js:2747 +#: templates/js/translated/bom.js:1674 templates/js/translated/build.js:2765 msgid "Required Quantity" msgstr "" @@ -11801,7 +12166,7 @@ msgid "Click on the following link to view this part" msgstr "" #: templates/email/low_stock_notification.html:18 -#: templates/js/translated/part.js:3237 +#: templates/js/translated/part.js:3253 msgid "Minimum Quantity" msgstr "" @@ -12039,7 +12404,7 @@ msgstr "" #: templates/js/translated/bom.js:189 templates/js/translated/bom.js:700 #: templates/js/translated/modals.js:75 templates/js/translated/modals.js:629 #: templates/js/translated/modals.js:757 templates/js/translated/modals.js:1065 -#: templates/js/translated/purchase_order.js:797 templates/modals.html:15 +#: templates/js/translated/purchase_order.js:780 templates/modals.html:15 #: templates/modals.html:27 templates/modals.html:39 templates/modals.html:50 msgid "Close" msgstr "" @@ -12156,7 +12521,7 @@ msgstr "" msgid "Substitutes Available" msgstr "" -#: templates/js/translated/bom.js:950 templates/js/translated/build.js:2673 +#: templates/js/translated/bom.js:950 templates/js/translated/build.js:2682 msgid "Variant stock allowed" msgstr "" @@ -12176,30 +12541,30 @@ msgstr "" msgid "No pricing available" msgstr "" -#: templates/js/translated/bom.js:1184 templates/js/translated/build.js:2812 +#: templates/js/translated/bom.js:1184 templates/js/translated/build.js:2830 msgid "External stock" msgstr "" -#: templates/js/translated/bom.js:1188 templates/js/translated/build.js:2786 -#: templates/js/translated/sales_order.js:1946 +#: templates/js/translated/bom.js:1188 templates/js/translated/build.js:2804 +#: templates/js/translated/sales_order.js:1927 msgid "No Stock Available" msgstr "" -#: templates/js/translated/bom.js:1193 templates/js/translated/build.js:2790 +#: templates/js/translated/bom.js:1193 templates/js/translated/build.js:2808 msgid "Includes variant and substitute stock" msgstr "" -#: templates/js/translated/bom.js:1195 templates/js/translated/build.js:2792 +#: templates/js/translated/bom.js:1195 templates/js/translated/build.js:2810 #: templates/js/translated/part.js:1263 -#: templates/js/translated/sales_order.js:1943 +#: templates/js/translated/sales_order.js:1924 msgid "Includes variant stock" msgstr "" -#: templates/js/translated/bom.js:1197 templates/js/translated/build.js:2794 +#: templates/js/translated/bom.js:1197 templates/js/translated/build.js:2812 msgid "Includes substitute stock" msgstr "" -#: templates/js/translated/bom.js:1225 templates/js/translated/build.js:2777 +#: templates/js/translated/bom.js:1225 templates/js/translated/build.js:2795 msgid "Consumable item" msgstr "" @@ -12231,7 +12596,7 @@ msgstr "" msgid "No BOM items found" msgstr "" -#: templates/js/translated/bom.js:1657 templates/js/translated/build.js:2658 +#: templates/js/translated/bom.js:1657 templates/js/translated/build.js:2667 msgid "Required Part" msgstr "" @@ -12243,396 +12608,396 @@ msgstr "" msgid "Edit Build Order" msgstr "" -#: templates/js/translated/build.js:191 +#: templates/js/translated/build.js:194 msgid "Create Build Order" msgstr "" -#: templates/js/translated/build.js:223 +#: templates/js/translated/build.js:226 msgid "Cancel Build Order" msgstr "" -#: templates/js/translated/build.js:232 +#: templates/js/translated/build.js:235 msgid "Are you sure you wish to cancel this build?" msgstr "" -#: templates/js/translated/build.js:238 +#: templates/js/translated/build.js:241 msgid "Stock items have been allocated to this build order" msgstr "" -#: templates/js/translated/build.js:245 +#: templates/js/translated/build.js:248 msgid "There are incomplete outputs remaining for this build order" msgstr "" -#: templates/js/translated/build.js:297 +#: templates/js/translated/build.js:300 msgid "Build order is ready to be completed" msgstr "" -#: templates/js/translated/build.js:305 +#: templates/js/translated/build.js:308 msgid "This build order cannot be completed as there are incomplete outputs" msgstr "" -#: templates/js/translated/build.js:310 +#: templates/js/translated/build.js:313 msgid "Build Order is incomplete" msgstr "" -#: templates/js/translated/build.js:328 +#: templates/js/translated/build.js:331 msgid "Complete Build Order" msgstr "" -#: templates/js/translated/build.js:369 templates/js/translated/stock.js:127 +#: templates/js/translated/build.js:372 templates/js/translated/stock.js:127 #: templates/js/translated/stock.js:301 msgid "Next available serial number" msgstr "" -#: templates/js/translated/build.js:371 templates/js/translated/stock.js:129 +#: templates/js/translated/build.js:374 templates/js/translated/stock.js:129 #: templates/js/translated/stock.js:303 msgid "Latest serial number" msgstr "" -#: templates/js/translated/build.js:380 +#: templates/js/translated/build.js:383 msgid "The Bill of Materials contains trackable parts" msgstr "" -#: templates/js/translated/build.js:381 +#: templates/js/translated/build.js:384 msgid "Build outputs must be generated individually" msgstr "" -#: templates/js/translated/build.js:389 +#: templates/js/translated/build.js:392 msgid "Trackable parts can have serial numbers specified" msgstr "" -#: templates/js/translated/build.js:390 +#: templates/js/translated/build.js:393 msgid "Enter serial numbers to generate multiple single build outputs" msgstr "" -#: templates/js/translated/build.js:397 +#: templates/js/translated/build.js:400 msgid "Create Build Output" msgstr "" -#: templates/js/translated/build.js:428 +#: templates/js/translated/build.js:431 msgid "Allocate stock items to this build output" msgstr "" -#: templates/js/translated/build.js:436 +#: templates/js/translated/build.js:439 msgid "Deallocate stock from build output" msgstr "" -#: templates/js/translated/build.js:445 +#: templates/js/translated/build.js:448 msgid "Complete build output" msgstr "" -#: templates/js/translated/build.js:453 +#: templates/js/translated/build.js:456 msgid "Scrap build output" msgstr "" -#: templates/js/translated/build.js:460 +#: templates/js/translated/build.js:463 msgid "Delete build output" msgstr "" -#: templates/js/translated/build.js:480 +#: templates/js/translated/build.js:483 msgid "Are you sure you wish to deallocate the selected stock items from this build?" msgstr "" -#: templates/js/translated/build.js:498 +#: templates/js/translated/build.js:501 msgid "Deallocate Stock Items" msgstr "" -#: templates/js/translated/build.js:584 templates/js/translated/build.js:711 -#: templates/js/translated/build.js:836 +#: templates/js/translated/build.js:587 templates/js/translated/build.js:714 +#: templates/js/translated/build.js:839 msgid "Select Build Outputs" msgstr "" -#: templates/js/translated/build.js:585 templates/js/translated/build.js:712 -#: templates/js/translated/build.js:837 +#: templates/js/translated/build.js:588 templates/js/translated/build.js:715 +#: templates/js/translated/build.js:840 msgid "At least one build output must be selected" msgstr "" -#: templates/js/translated/build.js:599 +#: templates/js/translated/build.js:602 msgid "Selected build outputs will be marked as complete" msgstr "" -#: templates/js/translated/build.js:603 templates/js/translated/build.js:736 -#: templates/js/translated/build.js:859 +#: templates/js/translated/build.js:606 templates/js/translated/build.js:739 +#: templates/js/translated/build.js:862 msgid "Output" msgstr "" -#: templates/js/translated/build.js:630 +#: templates/js/translated/build.js:633 msgid "Complete Build Outputs" msgstr "" -#: templates/js/translated/build.js:727 +#: templates/js/translated/build.js:730 msgid "Selected build outputs will be marked as scrapped" msgstr "" -#: templates/js/translated/build.js:729 +#: templates/js/translated/build.js:732 msgid "Scrapped output are marked as rejected" msgstr "" -#: templates/js/translated/build.js:730 +#: templates/js/translated/build.js:733 msgid "Allocated stock items will no longer be available" msgstr "" -#: templates/js/translated/build.js:731 +#: templates/js/translated/build.js:734 msgid "The completion status of the build order will not be adjusted" msgstr "" -#: templates/js/translated/build.js:761 +#: templates/js/translated/build.js:764 msgid "Scrap Build Outputs" msgstr "" -#: templates/js/translated/build.js:851 +#: templates/js/translated/build.js:854 msgid "Selected build outputs will be deleted" msgstr "" -#: templates/js/translated/build.js:853 +#: templates/js/translated/build.js:856 msgid "Build output data will be permanently deleted" msgstr "" -#: templates/js/translated/build.js:854 +#: templates/js/translated/build.js:857 msgid "Allocated stock items will be returned to stock" msgstr "" -#: templates/js/translated/build.js:872 +#: templates/js/translated/build.js:875 msgid "Delete Build Outputs" msgstr "" -#: templates/js/translated/build.js:959 +#: templates/js/translated/build.js:962 msgid "Delete allocations" msgstr "" -#: templates/js/translated/build.js:966 +#: templates/js/translated/build.js:969 msgid "Delete Stock Allocations" msgstr "" -#: templates/js/translated/build.js:989 +#: templates/js/translated/build.js:992 msgid "No allocated stock" msgstr "" -#: templates/js/translated/build.js:1045 +#: templates/js/translated/build.js:1048 msgid "Stock item" msgstr "" -#: templates/js/translated/build.js:1070 +#: templates/js/translated/build.js:1073 msgid "Edit build allocation" msgstr "" -#: templates/js/translated/build.js:1071 +#: templates/js/translated/build.js:1074 msgid "Delete build allocation" msgstr "" -#: templates/js/translated/build.js:1089 +#: templates/js/translated/build.js:1092 msgid "Edit Build Allocation" msgstr "" -#: templates/js/translated/build.js:1102 +#: templates/js/translated/build.js:1105 msgid "Delete Build Allocation" msgstr "" -#: templates/js/translated/build.js:1133 +#: templates/js/translated/build.js:1136 msgid "No build order allocations found" msgstr "" -#: templates/js/translated/build.js:1178 +#: templates/js/translated/build.js:1181 msgid "Location not specified" msgstr "" -#: templates/js/translated/build.js:1200 +#: templates/js/translated/build.js:1203 msgid "Complete outputs" msgstr "" -#: templates/js/translated/build.js:1218 +#: templates/js/translated/build.js:1221 msgid "Scrap outputs" msgstr "" -#: templates/js/translated/build.js:1236 +#: templates/js/translated/build.js:1239 msgid "Delete outputs" msgstr "" -#: templates/js/translated/build.js:1289 +#: templates/js/translated/build.js:1292 msgid "build output" msgstr "" -#: templates/js/translated/build.js:1290 +#: templates/js/translated/build.js:1293 msgid "build outputs" msgstr "" -#: templates/js/translated/build.js:1294 +#: templates/js/translated/build.js:1297 msgid "Build output actions" msgstr "" -#: templates/js/translated/build.js:1470 +#: templates/js/translated/build.js:1473 msgid "No active build outputs found" msgstr "" -#: templates/js/translated/build.js:1563 +#: templates/js/translated/build.js:1566 msgid "Allocated Lines" msgstr "" -#: templates/js/translated/build.js:1577 +#: templates/js/translated/build.js:1580 msgid "Required Tests" msgstr "" -#: templates/js/translated/build.js:1749 -#: templates/js/translated/purchase_order.js:611 -#: templates/js/translated/sales_order.js:1207 +#: templates/js/translated/build.js:1752 +#: templates/js/translated/purchase_order.js:594 +#: templates/js/translated/sales_order.js:1173 msgid "Select Parts" msgstr "" -#: templates/js/translated/build.js:1750 -#: templates/js/translated/sales_order.js:1208 +#: templates/js/translated/build.js:1753 +#: templates/js/translated/sales_order.js:1174 msgid "You must select at least one part to allocate" msgstr "" -#: templates/js/translated/build.js:1813 -#: templates/js/translated/sales_order.js:1157 +#: templates/js/translated/build.js:1816 +#: templates/js/translated/sales_order.js:1123 msgid "Specify stock allocation quantity" msgstr "" -#: templates/js/translated/build.js:1890 +#: templates/js/translated/build.js:1893 msgid "All Parts Allocated" msgstr "" -#: templates/js/translated/build.js:1891 +#: templates/js/translated/build.js:1894 msgid "All selected parts have been fully allocated" msgstr "" -#: templates/js/translated/build.js:1905 -#: templates/js/translated/sales_order.js:1222 +#: templates/js/translated/build.js:1908 +#: templates/js/translated/sales_order.js:1188 msgid "Select source location (leave blank to take from all locations)" msgstr "" -#: templates/js/translated/build.js:1933 +#: templates/js/translated/build.js:1936 msgid "Allocate Stock Items to Build Order" msgstr "" -#: templates/js/translated/build.js:1944 -#: templates/js/translated/sales_order.js:1319 +#: templates/js/translated/build.js:1947 +#: templates/js/translated/sales_order.js:1285 msgid "No matching stock locations" msgstr "" -#: templates/js/translated/build.js:2017 -#: templates/js/translated/sales_order.js:1398 +#: templates/js/translated/build.js:2020 +#: templates/js/translated/sales_order.js:1364 msgid "No matching stock items" msgstr "" -#: templates/js/translated/build.js:2114 +#: templates/js/translated/build.js:2117 msgid "Automatic Stock Allocation" msgstr "" -#: templates/js/translated/build.js:2115 +#: templates/js/translated/build.js:2118 msgid "Stock items will be automatically allocated to this build order, according to the provided guidelines" msgstr "" -#: templates/js/translated/build.js:2117 +#: templates/js/translated/build.js:2120 msgid "If a location is specified, stock will only be allocated from that location" msgstr "" -#: templates/js/translated/build.js:2118 +#: templates/js/translated/build.js:2121 msgid "If stock is considered interchangeable, it will be allocated from the first location it is found" msgstr "" -#: templates/js/translated/build.js:2119 +#: templates/js/translated/build.js:2122 msgid "If substitute stock is allowed, it will be used where stock of the primary part cannot be found" msgstr "" -#: templates/js/translated/build.js:2149 +#: templates/js/translated/build.js:2152 msgid "Allocate Stock Items" msgstr "" -#: templates/js/translated/build.js:2254 +#: templates/js/translated/build.js:2257 msgid "No builds matching query" msgstr "" -#: templates/js/translated/build.js:2289 templates/js/translated/build.js:2652 +#: templates/js/translated/build.js:2292 templates/js/translated/build.js:2661 #: templates/js/translated/forms.js:2196 templates/js/translated/forms.js:2212 #: templates/js/translated/part.js:2322 templates/js/translated/part.js:2761 -#: templates/js/translated/stock.js:2068 templates/js/translated/stock.js:2795 +#: templates/js/translated/stock.js:2069 templates/js/translated/stock.js:2796 msgid "Select" msgstr "" -#: templates/js/translated/build.js:2303 +#: templates/js/translated/build.js:2306 msgid "Build order is overdue" msgstr "" -#: templates/js/translated/build.js:2385 templates/js/translated/stock.js:3126 +#: templates/js/translated/build.js:2388 templates/js/translated/stock.js:3127 msgid "No user information" msgstr "" -#: templates/js/translated/build.js:2561 -#: templates/js/translated/sales_order.js:1682 +#: templates/js/translated/build.js:2568 +#: templates/js/translated/sales_order.js:1663 msgid "Edit stock allocation" msgstr "" -#: templates/js/translated/build.js:2562 -#: templates/js/translated/sales_order.js:1683 +#: templates/js/translated/build.js:2569 +#: templates/js/translated/sales_order.js:1664 msgid "Delete stock allocation" msgstr "" -#: templates/js/translated/build.js:2577 +#: templates/js/translated/build.js:2584 msgid "Edit Allocation" msgstr "" -#: templates/js/translated/build.js:2589 +#: templates/js/translated/build.js:2596 msgid "Remove Allocation" msgstr "" -#: templates/js/translated/build.js:2628 +#: templates/js/translated/build.js:2636 msgid "build line" msgstr "" -#: templates/js/translated/build.js:2629 +#: templates/js/translated/build.js:2637 msgid "build lines" msgstr "" -#: templates/js/translated/build.js:2647 +#: templates/js/translated/build.js:2656 msgid "No build lines found" msgstr "" -#: templates/js/translated/build.js:2677 templates/js/translated/part.js:793 +#: templates/js/translated/build.js:2686 templates/js/translated/part.js:793 #: templates/js/translated/part.js:1209 msgid "Trackable part" msgstr "" -#: templates/js/translated/build.js:2720 +#: templates/js/translated/build.js:2729 msgid "Gets Inherited" msgstr "" -#: templates/js/translated/build.js:2730 +#: templates/js/translated/build.js:2748 msgid "Unit Quantity" msgstr "" -#: templates/js/translated/build.js:2782 -#: templates/js/translated/sales_order.js:1951 +#: templates/js/translated/build.js:2800 +#: templates/js/translated/sales_order.js:1932 msgid "Sufficient stock available" msgstr "" -#: templates/js/translated/build.js:2837 +#: templates/js/translated/build.js:2855 msgid "Consumable Item" msgstr "" -#: templates/js/translated/build.js:2844 +#: templates/js/translated/build.js:2862 msgid "Tracked item" msgstr "" -#: templates/js/translated/build.js:2845 +#: templates/js/translated/build.js:2863 msgid "Allocate tracked items against individual build outputs" msgstr "" -#: templates/js/translated/build.js:2853 -#: templates/js/translated/sales_order.js:2052 +#: templates/js/translated/build.js:2871 +#: templates/js/translated/sales_order.js:2033 msgid "Build stock" msgstr "" -#: templates/js/translated/build.js:2858 templates/js/translated/stock.js:1953 +#: templates/js/translated/build.js:2876 templates/js/translated/stock.js:1954 msgid "Order stock" msgstr "" -#: templates/js/translated/build.js:2862 -#: templates/js/translated/sales_order.js:2046 +#: templates/js/translated/build.js:2880 +#: templates/js/translated/sales_order.js:2027 msgid "Allocate stock" msgstr "" -#: templates/js/translated/build.js:2866 +#: templates/js/translated/build.js:2884 msgid "Remove stock allocation" msgstr "" @@ -12641,7 +13006,7 @@ msgid "Add Manufacturer" msgstr "" #: templates/js/translated/company.js:111 -#: templates/js/translated/company.js:213 +#: templates/js/translated/company.js:214 msgid "Add Manufacturer Part" msgstr "" @@ -12649,231 +13014,231 @@ msgstr "" msgid "Edit Manufacturer Part" msgstr "" -#: templates/js/translated/company.js:201 +#: templates/js/translated/company.js:202 #: templates/js/translated/purchase_order.js:93 msgid "Add Supplier" msgstr "" -#: templates/js/translated/company.js:243 -#: templates/js/translated/purchase_order.js:318 +#: templates/js/translated/company.js:244 +#: templates/js/translated/purchase_order.js:301 msgid "Add Supplier Part" msgstr "" -#: templates/js/translated/company.js:344 +#: templates/js/translated/company.js:345 msgid "All selected supplier parts will be deleted" msgstr "" -#: templates/js/translated/company.js:360 +#: templates/js/translated/company.js:361 msgid "Delete Supplier Parts" msgstr "" -#: templates/js/translated/company.js:466 +#: templates/js/translated/company.js:467 msgid "Add new Company" msgstr "" -#: templates/js/translated/company.js:546 +#: templates/js/translated/company.js:547 msgid "Parts Supplied" msgstr "" -#: templates/js/translated/company.js:555 +#: templates/js/translated/company.js:556 msgid "Parts Manufactured" msgstr "" -#: templates/js/translated/company.js:570 +#: templates/js/translated/company.js:571 msgid "No company information found" msgstr "" -#: templates/js/translated/company.js:619 +#: templates/js/translated/company.js:620 msgid "Create New Contact" msgstr "" -#: templates/js/translated/company.js:635 -#: templates/js/translated/company.js:758 +#: templates/js/translated/company.js:636 +#: templates/js/translated/company.js:759 msgid "Edit Contact" msgstr "" -#: templates/js/translated/company.js:672 +#: templates/js/translated/company.js:673 msgid "All selected contacts will be deleted" msgstr "" -#: templates/js/translated/company.js:678 -#: templates/js/translated/company.js:742 +#: templates/js/translated/company.js:679 +#: templates/js/translated/company.js:743 msgid "Role" msgstr "" -#: templates/js/translated/company.js:686 +#: templates/js/translated/company.js:687 msgid "Delete Contacts" msgstr "" -#: templates/js/translated/company.js:717 +#: templates/js/translated/company.js:718 msgid "No contacts found" msgstr "" -#: templates/js/translated/company.js:730 +#: templates/js/translated/company.js:731 msgid "Phone Number" msgstr "" -#: templates/js/translated/company.js:736 +#: templates/js/translated/company.js:737 msgid "Email Address" msgstr "" -#: templates/js/translated/company.js:762 +#: templates/js/translated/company.js:763 msgid "Delete Contact" msgstr "" -#: templates/js/translated/company.js:859 +#: templates/js/translated/company.js:860 msgid "Create New Address" msgstr "" -#: templates/js/translated/company.js:874 -#: templates/js/translated/company.js:1035 +#: templates/js/translated/company.js:875 +#: templates/js/translated/company.js:1036 msgid "Edit Address" msgstr "" -#: templates/js/translated/company.js:909 +#: templates/js/translated/company.js:910 msgid "All selected addresses will be deleted" msgstr "" -#: templates/js/translated/company.js:923 +#: templates/js/translated/company.js:924 msgid "Delete Addresses" msgstr "" -#: templates/js/translated/company.js:950 +#: templates/js/translated/company.js:951 msgid "No addresses found" msgstr "" -#: templates/js/translated/company.js:989 +#: templates/js/translated/company.js:990 msgid "Postal city" msgstr "" -#: templates/js/translated/company.js:995 +#: templates/js/translated/company.js:996 msgid "State/province" msgstr "" -#: templates/js/translated/company.js:1007 +#: templates/js/translated/company.js:1008 msgid "Courier notes" msgstr "" -#: templates/js/translated/company.js:1013 +#: templates/js/translated/company.js:1014 msgid "Internal notes" msgstr "" -#: templates/js/translated/company.js:1039 +#: templates/js/translated/company.js:1040 msgid "Delete Address" msgstr "" -#: templates/js/translated/company.js:1112 +#: templates/js/translated/company.js:1113 msgid "All selected manufacturer parts will be deleted" msgstr "" -#: templates/js/translated/company.js:1127 +#: templates/js/translated/company.js:1128 msgid "Delete Manufacturer Parts" msgstr "" -#: templates/js/translated/company.js:1161 +#: templates/js/translated/company.js:1162 msgid "All selected parameters will be deleted" msgstr "" -#: templates/js/translated/company.js:1175 +#: templates/js/translated/company.js:1176 msgid "Delete Parameters" msgstr "" -#: templates/js/translated/company.js:1191 -#: templates/js/translated/company.js:1479 templates/js/translated/part.js:2250 +#: templates/js/translated/company.js:1192 +#: templates/js/translated/company.js:1480 templates/js/translated/part.js:2250 msgid "Order parts" msgstr "" -#: templates/js/translated/company.js:1208 +#: templates/js/translated/company.js:1209 msgid "Delete manufacturer parts" msgstr "" -#: templates/js/translated/company.js:1240 +#: templates/js/translated/company.js:1241 msgid "Manufacturer part actions" msgstr "" -#: templates/js/translated/company.js:1259 +#: templates/js/translated/company.js:1260 msgid "No manufacturer parts found" msgstr "" -#: templates/js/translated/company.js:1279 -#: templates/js/translated/company.js:1567 templates/js/translated/part.js:801 +#: templates/js/translated/company.js:1280 +#: templates/js/translated/company.js:1568 templates/js/translated/part.js:801 #: templates/js/translated/part.js:1217 msgid "Template part" msgstr "" -#: templates/js/translated/company.js:1283 -#: templates/js/translated/company.js:1571 templates/js/translated/part.js:805 +#: templates/js/translated/company.js:1284 +#: templates/js/translated/company.js:1572 templates/js/translated/part.js:805 #: templates/js/translated/part.js:1221 msgid "Assembled part" msgstr "" -#: templates/js/translated/company.js:1403 templates/js/translated/part.js:1471 +#: templates/js/translated/company.js:1404 templates/js/translated/part.js:1471 msgid "No parameters found" msgstr "" -#: templates/js/translated/company.js:1438 templates/js/translated/part.js:1534 +#: templates/js/translated/company.js:1439 templates/js/translated/part.js:1534 msgid "Edit parameter" msgstr "" -#: templates/js/translated/company.js:1439 templates/js/translated/part.js:1535 +#: templates/js/translated/company.js:1440 templates/js/translated/part.js:1535 msgid "Delete parameter" msgstr "" -#: templates/js/translated/company.js:1456 templates/js/translated/part.js:1440 +#: templates/js/translated/company.js:1457 templates/js/translated/part.js:1440 msgid "Edit Parameter" msgstr "" -#: templates/js/translated/company.js:1465 templates/js/translated/part.js:1556 +#: templates/js/translated/company.js:1466 templates/js/translated/part.js:1556 msgid "Delete Parameter" msgstr "" -#: templates/js/translated/company.js:1496 +#: templates/js/translated/company.js:1497 msgid "Delete supplier parts" msgstr "" -#: templates/js/translated/company.js:1546 +#: templates/js/translated/company.js:1547 msgid "No supplier parts found" msgstr "" -#: templates/js/translated/company.js:1664 +#: templates/js/translated/company.js:1665 msgid "Base Units" msgstr "" -#: templates/js/translated/company.js:1694 +#: templates/js/translated/company.js:1695 msgid "Availability" msgstr "" -#: templates/js/translated/company.js:1725 +#: templates/js/translated/company.js:1726 msgid "Edit supplier part" msgstr "" -#: templates/js/translated/company.js:1726 +#: templates/js/translated/company.js:1727 msgid "Delete supplier part" msgstr "" -#: templates/js/translated/company.js:1779 +#: templates/js/translated/company.js:1780 #: templates/js/translated/pricing.js:694 msgid "Delete Price Break" msgstr "" -#: templates/js/translated/company.js:1789 +#: templates/js/translated/company.js:1790 #: templates/js/translated/pricing.js:712 msgid "Edit Price Break" msgstr "" -#: templates/js/translated/company.js:1804 +#: templates/js/translated/company.js:1805 msgid "No price break information found" msgstr "" -#: templates/js/translated/company.js:1833 +#: templates/js/translated/company.js:1834 msgid "Last updated" msgstr "" -#: templates/js/translated/company.js:1840 +#: templates/js/translated/company.js:1841 msgid "Edit price break" msgstr "" -#: templates/js/translated/company.js:1841 +#: templates/js/translated/company.js:1842 msgid "Delete price break" msgstr "" @@ -12977,19 +13342,19 @@ msgstr "" msgid "Select Columns" msgstr "" -#: templates/js/translated/helpers.js:80 +#: templates/js/translated/helpers.js:81 msgid "YES" msgstr "" -#: templates/js/translated/helpers.js:83 +#: templates/js/translated/helpers.js:84 msgid "NO" msgstr "" -#: templates/js/translated/helpers.js:96 +#: templates/js/translated/helpers.js:97 msgid "True" msgstr "" -#: templates/js/translated/helpers.js:97 +#: templates/js/translated/helpers.js:98 msgid "False" msgstr "" @@ -13131,7 +13496,7 @@ msgid "Delete Line" msgstr "" #: templates/js/translated/order.js:306 -#: templates/js/translated/purchase_order.js:2060 +#: templates/js/translated/purchase_order.js:2044 msgid "No line items found" msgstr "" @@ -13366,19 +13731,19 @@ msgid "Delete Part Parameter Template" msgstr "" #: templates/js/translated/part.js:1723 -#: templates/js/translated/purchase_order.js:1724 +#: templates/js/translated/purchase_order.js:1708 msgid "No purchase orders found" msgstr "" #: templates/js/translated/part.js:1867 -#: templates/js/translated/purchase_order.js:2223 +#: templates/js/translated/purchase_order.js:2207 #: templates/js/translated/return_order.js:754 -#: templates/js/translated/sales_order.js:1911 +#: templates/js/translated/sales_order.js:1892 msgid "This line item is overdue" msgstr "" #: templates/js/translated/part.js:1913 -#: templates/js/translated/purchase_order.js:2290 +#: templates/js/translated/purchase_order.js:2274 msgid "Receive line item" msgstr "" @@ -13419,7 +13784,7 @@ msgid "No category" msgstr "" #: templates/js/translated/part.js:2550 templates/js/translated/part.js:2680 -#: templates/js/translated/stock.js:2754 +#: templates/js/translated/stock.js:2755 msgid "Display as list" msgstr "" @@ -13431,7 +13796,7 @@ msgstr "" msgid "No subcategories found" msgstr "" -#: templates/js/translated/part.js:2700 templates/js/translated/stock.js:2774 +#: templates/js/translated/part.js:2700 templates/js/translated/stock.js:2775 msgid "Display as tree" msgstr "" @@ -13483,23 +13848,23 @@ msgstr "" msgid "Speculative" msgstr "" -#: templates/js/translated/part.js:3128 +#: templates/js/translated/part.js:3144 msgid "No scheduling information available for this part" msgstr "" -#: templates/js/translated/part.js:3134 +#: templates/js/translated/part.js:3150 msgid "Error fetching scheduling information for this part" msgstr "" -#: templates/js/translated/part.js:3230 +#: templates/js/translated/part.js:3246 msgid "Scheduled Stock Quantities" msgstr "" -#: templates/js/translated/part.js:3246 +#: templates/js/translated/part.js:3262 msgid "Maximum Quantity" msgstr "" -#: templates/js/translated/part.js:3291 +#: templates/js/translated/part.js:3307 msgid "Minimum Stock Level" msgstr "" @@ -13575,267 +13940,243 @@ msgstr "" msgid "Purchase Price History" msgstr "" -#: templates/js/translated/pricing.js:894 +#: templates/js/translated/pricing.js:892 msgid "No sales history data available" msgstr "" -#: templates/js/translated/pricing.js:916 +#: templates/js/translated/pricing.js:914 msgid "Sale Price History" msgstr "" -#: templates/js/translated/pricing.js:1005 +#: templates/js/translated/pricing.js:1003 msgid "No variant data available" msgstr "" -#: templates/js/translated/pricing.js:1045 +#: templates/js/translated/pricing.js:1043 msgid "Variant Part" msgstr "" -#: templates/js/translated/purchase_order.js:169 -msgid "Select purchase order to duplicate" -msgstr "" - -#: templates/js/translated/purchase_order.js:176 -msgid "Duplicate Line Items" -msgstr "" - -#: templates/js/translated/purchase_order.js:177 -msgid "Duplicate all line items from the selected order" -msgstr "" - -#: templates/js/translated/purchase_order.js:184 -msgid "Duplicate Extra Lines" -msgstr "" - -#: templates/js/translated/purchase_order.js:185 -msgid "Duplicate extra line items from the selected order" -msgstr "" - -#: templates/js/translated/purchase_order.js:206 +#: templates/js/translated/purchase_order.js:188 msgid "Edit Purchase Order" msgstr "" -#: templates/js/translated/purchase_order.js:223 +#: templates/js/translated/purchase_order.js:205 msgid "Duplication Options" msgstr "" -#: templates/js/translated/purchase_order.js:431 +#: templates/js/translated/purchase_order.js:414 msgid "Complete Purchase Order" msgstr "" -#: templates/js/translated/purchase_order.js:448 +#: templates/js/translated/purchase_order.js:431 #: templates/js/translated/return_order.js:210 -#: templates/js/translated/sales_order.js:552 +#: templates/js/translated/sales_order.js:511 msgid "Mark this order as complete?" msgstr "" -#: templates/js/translated/purchase_order.js:454 +#: templates/js/translated/purchase_order.js:437 msgid "All line items have been received" msgstr "" -#: templates/js/translated/purchase_order.js:459 +#: templates/js/translated/purchase_order.js:442 msgid "This order has line items which have not been marked as received." msgstr "" -#: templates/js/translated/purchase_order.js:460 +#: templates/js/translated/purchase_order.js:443 msgid "Completing this order means that the order and line items will no longer be editable." msgstr "" -#: templates/js/translated/purchase_order.js:483 +#: templates/js/translated/purchase_order.js:466 msgid "Cancel Purchase Order" msgstr "" -#: templates/js/translated/purchase_order.js:488 +#: templates/js/translated/purchase_order.js:471 msgid "Are you sure you wish to cancel this purchase order?" msgstr "" -#: templates/js/translated/purchase_order.js:494 +#: templates/js/translated/purchase_order.js:477 msgid "This purchase order can not be cancelled" msgstr "" -#: templates/js/translated/purchase_order.js:515 +#: templates/js/translated/purchase_order.js:498 #: templates/js/translated/return_order.js:164 msgid "After placing this order, line items will no longer be editable." msgstr "" -#: templates/js/translated/purchase_order.js:520 +#: templates/js/translated/purchase_order.js:503 msgid "Issue Purchase Order" msgstr "" -#: templates/js/translated/purchase_order.js:612 +#: templates/js/translated/purchase_order.js:595 msgid "At least one purchaseable part must be selected" msgstr "" -#: templates/js/translated/purchase_order.js:637 +#: templates/js/translated/purchase_order.js:620 msgid "Quantity to order" msgstr "" -#: templates/js/translated/purchase_order.js:646 +#: templates/js/translated/purchase_order.js:629 msgid "New supplier part" msgstr "" -#: templates/js/translated/purchase_order.js:664 +#: templates/js/translated/purchase_order.js:647 msgid "New purchase order" msgstr "" -#: templates/js/translated/purchase_order.js:705 +#: templates/js/translated/purchase_order.js:688 msgid "Add to purchase order" msgstr "" -#: templates/js/translated/purchase_order.js:755 +#: templates/js/translated/purchase_order.js:738 msgid "Merge" msgstr "" -#: templates/js/translated/purchase_order.js:859 +#: templates/js/translated/purchase_order.js:842 msgid "No matching supplier parts" msgstr "" -#: templates/js/translated/purchase_order.js:878 +#: templates/js/translated/purchase_order.js:861 msgid "No matching purchase orders" msgstr "" -#: templates/js/translated/purchase_order.js:1073 +#: templates/js/translated/purchase_order.js:1056 #: templates/js/translated/return_order.js:490 msgid "Select Line Items" msgstr "" -#: templates/js/translated/purchase_order.js:1074 +#: templates/js/translated/purchase_order.js:1057 #: templates/js/translated/return_order.js:491 msgid "At least one line item must be selected" msgstr "" -#: templates/js/translated/purchase_order.js:1104 +#: templates/js/translated/purchase_order.js:1087 msgid "Received Quantity" msgstr "" -#: templates/js/translated/purchase_order.js:1115 +#: templates/js/translated/purchase_order.js:1098 msgid "Quantity to receive" msgstr "" -#: templates/js/translated/purchase_order.js:1170 +#: templates/js/translated/purchase_order.js:1153 #: templates/js/translated/stock.js:1215 msgid "Specify packaging for incoming stock items" msgstr "" -#: templates/js/translated/purchase_order.js:1223 +#: templates/js/translated/purchase_order.js:1206 msgid "Stock Status" msgstr "" -#: templates/js/translated/purchase_order.js:1237 +#: templates/js/translated/purchase_order.js:1220 msgid "Add barcode" msgstr "" -#: templates/js/translated/purchase_order.js:1238 +#: templates/js/translated/purchase_order.js:1221 msgid "Remove barcode" msgstr "" -#: templates/js/translated/purchase_order.js:1241 +#: templates/js/translated/purchase_order.js:1224 msgid "Specify location" msgstr "" -#: templates/js/translated/purchase_order.js:1249 +#: templates/js/translated/purchase_order.js:1232 msgid "Add batch code" msgstr "" -#: templates/js/translated/purchase_order.js:1259 +#: templates/js/translated/purchase_order.js:1242 msgid "Specify packaging" msgstr "" -#: templates/js/translated/purchase_order.js:1270 +#: templates/js/translated/purchase_order.js:1253 msgid "Add serial numbers" msgstr "" -#: templates/js/translated/purchase_order.js:1281 +#: templates/js/translated/purchase_order.js:1264 msgid "Add note" msgstr "" -#: templates/js/translated/purchase_order.js:1338 +#: templates/js/translated/purchase_order.js:1321 msgid "Serials" msgstr "" -#: templates/js/translated/purchase_order.js:1368 +#: templates/js/translated/purchase_order.js:1351 msgid "Order Code" msgstr "" -#: templates/js/translated/purchase_order.js:1370 +#: templates/js/translated/purchase_order.js:1353 msgid "Quantity to Receive" msgstr "" -#: templates/js/translated/purchase_order.js:1395 +#: templates/js/translated/purchase_order.js:1379 #: templates/js/translated/return_order.js:559 msgid "Confirm receipt of items" msgstr "" -#: templates/js/translated/purchase_order.js:1396 +#: templates/js/translated/purchase_order.js:1380 msgid "Receive Purchase Order Items" msgstr "" -#: templates/js/translated/purchase_order.js:1464 +#: templates/js/translated/purchase_order.js:1448 msgid "Scan Item Barcode" msgstr "" -#: templates/js/translated/purchase_order.js:1465 +#: templates/js/translated/purchase_order.js:1449 msgid "Scan barcode on incoming item (must not match any existing stock items)" msgstr "" -#: templates/js/translated/purchase_order.js:1479 +#: templates/js/translated/purchase_order.js:1463 msgid "Invalid barcode data" msgstr "" -#: templates/js/translated/purchase_order.js:1751 +#: templates/js/translated/purchase_order.js:1735 #: templates/js/translated/return_order.js:285 -#: templates/js/translated/sales_order.js:810 -#: templates/js/translated/sales_order.js:1034 +#: templates/js/translated/sales_order.js:769 +#: templates/js/translated/sales_order.js:1007 msgid "Order is overdue" msgstr "" -#: templates/js/translated/purchase_order.js:1913 +#: templates/js/translated/purchase_order.js:1897 msgid "All selected Line items will be deleted" msgstr "" -#: templates/js/translated/purchase_order.js:1931 +#: templates/js/translated/purchase_order.js:1915 msgid "Delete selected Line items?" msgstr "" -#: templates/js/translated/purchase_order.js:1986 -#: templates/js/translated/sales_order.js:2106 +#: templates/js/translated/purchase_order.js:1970 +#: templates/js/translated/sales_order.js:2087 msgid "Duplicate Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2001 +#: templates/js/translated/purchase_order.js:1985 #: templates/js/translated/return_order.js:475 #: templates/js/translated/return_order.js:667 -#: templates/js/translated/sales_order.js:2119 +#: templates/js/translated/sales_order.js:2100 msgid "Edit Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2012 +#: templates/js/translated/purchase_order.js:1996 #: templates/js/translated/return_order.js:680 -#: templates/js/translated/sales_order.js:2130 +#: templates/js/translated/sales_order.js:2111 msgid "Delete Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2294 -#: templates/js/translated/sales_order.js:2060 +#: templates/js/translated/purchase_order.js:2278 +#: templates/js/translated/sales_order.js:2041 msgid "Duplicate line item" msgstr "" -#: templates/js/translated/purchase_order.js:2295 +#: templates/js/translated/purchase_order.js:2279 #: templates/js/translated/return_order.js:799 -#: templates/js/translated/sales_order.js:2061 +#: templates/js/translated/sales_order.js:2042 msgid "Edit line item" msgstr "" -#: templates/js/translated/purchase_order.js:2296 +#: templates/js/translated/purchase_order.js:2280 #: templates/js/translated/return_order.js:803 -#: templates/js/translated/sales_order.js:2067 +#: templates/js/translated/sales_order.js:2048 msgid "Delete line item" msgstr "" -#: templates/js/translated/report.js:49 -msgid "Print Report" -msgstr "" - #: templates/js/translated/report.js:68 msgid "Report print successful" msgstr "" @@ -13878,7 +14219,7 @@ msgid "No return orders found" msgstr "" #: templates/js/translated/return_order.js:299 -#: templates/js/translated/sales_order.js:824 +#: templates/js/translated/sales_order.js:783 msgid "Invalid Customer" msgstr "" @@ -13887,7 +14228,7 @@ msgid "Receive Return Order Items" msgstr "" #: templates/js/translated/return_order.js:691 -#: templates/js/translated/sales_order.js:2267 +#: templates/js/translated/sales_order.js:2248 msgid "No matching line items" msgstr "" @@ -13903,188 +14244,181 @@ msgstr "" msgid "Edit Sales Order" msgstr "" -#: templates/js/translated/sales_order.js:291 +#: templates/js/translated/sales_order.js:288 msgid "No stock items have been allocated to this shipment" msgstr "" -#: templates/js/translated/sales_order.js:296 -msgid "The following stock items will be shipped" -msgstr "" - -#: templates/js/translated/sales_order.js:336 +#: templates/js/translated/sales_order.js:294 msgid "Complete Shipment" msgstr "" -#: templates/js/translated/sales_order.js:360 +#: templates/js/translated/sales_order.js:318 msgid "Confirm Shipment" msgstr "" -#: templates/js/translated/sales_order.js:416 +#: templates/js/translated/sales_order.js:375 msgid "No pending shipments found" msgstr "" -#: templates/js/translated/sales_order.js:420 +#: templates/js/translated/sales_order.js:379 msgid "No stock items have been allocated to pending shipments" msgstr "" -#: templates/js/translated/sales_order.js:430 +#: templates/js/translated/sales_order.js:389 msgid "Complete Shipments" msgstr "" -#: templates/js/translated/sales_order.js:452 +#: templates/js/translated/sales_order.js:411 msgid "Skip" msgstr "" -#: templates/js/translated/sales_order.js:484 +#: templates/js/translated/sales_order.js:443 msgid "Ship Sales Order" msgstr "" -#: templates/js/translated/sales_order.js:500 +#: templates/js/translated/sales_order.js:459 msgid "Ship this order?" msgstr "" -#: templates/js/translated/sales_order.js:506 +#: templates/js/translated/sales_order.js:465 msgid "Order cannot be shipped as there are incomplete shipments" msgstr "" -#: templates/js/translated/sales_order.js:513 +#: templates/js/translated/sales_order.js:472 msgid "This order has line items which have not been completed." msgstr "" -#: templates/js/translated/sales_order.js:514 +#: templates/js/translated/sales_order.js:473 msgid "Shipping this order means that the order and line items will no longer be editable." msgstr "" -#: templates/js/translated/sales_order.js:572 +#: templates/js/translated/sales_order.js:531 msgid "Issue this Sales Order?" msgstr "" -#: templates/js/translated/sales_order.js:577 +#: templates/js/translated/sales_order.js:536 msgid "Issue Sales Order" msgstr "" -#: templates/js/translated/sales_order.js:596 +#: templates/js/translated/sales_order.js:555 msgid "Cancel Sales Order" msgstr "" -#: templates/js/translated/sales_order.js:601 +#: templates/js/translated/sales_order.js:560 msgid "Cancelling this order means that the order will no longer be editable." msgstr "" -#: templates/js/translated/sales_order.js:655 +#: templates/js/translated/sales_order.js:614 msgid "Create New Shipment" msgstr "" -#: templates/js/translated/sales_order.js:764 +#: templates/js/translated/sales_order.js:723 msgid "No sales orders found" msgstr "" -#: templates/js/translated/sales_order.js:944 +#: templates/js/translated/sales_order.js:907 msgid "Edit shipment" msgstr "" -#: templates/js/translated/sales_order.js:947 +#: templates/js/translated/sales_order.js:910 msgid "Complete shipment" msgstr "" -#: templates/js/translated/sales_order.js:952 +#: templates/js/translated/sales_order.js:915 msgid "Delete shipment" msgstr "" -#: templates/js/translated/sales_order.js:969 +#: templates/js/translated/sales_order.js:932 msgid "Edit Shipment" msgstr "" -#: templates/js/translated/sales_order.js:984 +#: templates/js/translated/sales_order.js:947 msgid "Delete Shipment" msgstr "" -#: templates/js/translated/sales_order.js:1017 +#: templates/js/translated/sales_order.js:989 msgid "No matching shipments found" msgstr "" -#: templates/js/translated/sales_order.js:1042 +#: templates/js/translated/sales_order.js:1015 msgid "Shipment Reference" msgstr "" -#: templates/js/translated/sales_order.js:1066 -#: templates/js/translated/sales_order.js:1565 +#: templates/js/translated/sales_order.js:1032 +#: templates/js/translated/sales_order.js:1531 msgid "Not shipped" msgstr "" -#: templates/js/translated/sales_order.js:1084 +#: templates/js/translated/sales_order.js:1050 msgid "Tracking" msgstr "" -#: templates/js/translated/sales_order.js:1088 +#: templates/js/translated/sales_order.js:1054 msgid "Invoice" msgstr "" -#: templates/js/translated/sales_order.js:1255 +#: templates/js/translated/sales_order.js:1221 msgid "Add Shipment" msgstr "" -#: templates/js/translated/sales_order.js:1306 +#: templates/js/translated/sales_order.js:1272 msgid "Confirm stock allocation" msgstr "" -#: templates/js/translated/sales_order.js:1307 +#: templates/js/translated/sales_order.js:1273 msgid "Allocate Stock Items to Sales Order" msgstr "" -#: templates/js/translated/sales_order.js:1513 +#: templates/js/translated/sales_order.js:1479 msgid "No sales order allocations found" msgstr "" -#: templates/js/translated/sales_order.js:1605 +#: templates/js/translated/sales_order.js:1571 msgid "Edit Stock Allocation" msgstr "" -#: templates/js/translated/sales_order.js:1619 +#: templates/js/translated/sales_order.js:1585 msgid "Confirm Delete Operation" msgstr "" -#: templates/js/translated/sales_order.js:1620 +#: templates/js/translated/sales_order.js:1586 msgid "Delete Stock Allocation" msgstr "" -#: templates/js/translated/sales_order.js:1659 -#: templates/js/translated/sales_order.js:1746 +#: templates/js/translated/sales_order.js:1640 +#: templates/js/translated/sales_order.js:1727 #: templates/js/translated/stock.js:1861 msgid "Shipped to customer" msgstr "" -#: templates/js/translated/sales_order.js:1667 -#: templates/js/translated/sales_order.js:1755 +#: templates/js/translated/sales_order.js:1648 +#: templates/js/translated/sales_order.js:1736 msgid "Stock location not specified" msgstr "" -#: templates/js/translated/sales_order.js:2044 -msgid "Allocate serial numbers" -msgstr "" - -#: templates/js/translated/sales_order.js:2048 -msgid "Purchase stock" -msgstr "" - -#: templates/js/translated/sales_order.js:2057 -#: templates/js/translated/sales_order.js:2245 -msgid "Calculate price" -msgstr "" - -#: templates/js/translated/sales_order.js:2071 -msgid "Cannot be deleted as items have been shipped" -msgstr "" - -#: templates/js/translated/sales_order.js:2074 -msgid "Cannot be deleted as items have been allocated" -msgstr "" - -#: templates/js/translated/sales_order.js:2145 +#: templates/js/translated/sales_order.js:2025 +#: templates/js/translated/sales_order.js:2126 msgid "Allocate Serial Numbers" msgstr "" -#: templates/js/translated/sales_order.js:2253 +#: templates/js/translated/sales_order.js:2029 +msgid "Purchase stock" +msgstr "" + +#: templates/js/translated/sales_order.js:2038 +#: templates/js/translated/sales_order.js:2226 +msgid "Calculate price" +msgstr "" + +#: templates/js/translated/sales_order.js:2052 +msgid "Cannot be deleted as items have been shipped" +msgstr "" + +#: templates/js/translated/sales_order.js:2055 +msgid "Cannot be deleted as items have been allocated" +msgstr "" + +#: templates/js/translated/sales_order.js:2234 msgid "Update Unit Price" msgstr "" @@ -14209,11 +14543,8 @@ msgid "Find Serial Number" msgstr "" #: templates/js/translated/stock.js:603 templates/js/translated/stock.js:604 -msgid "Enter serial number" -msgstr "" - #: templates/js/translated/stock.js:620 -msgid "Enter a serial number" +msgid "Enter serial number" msgstr "" #: templates/js/translated/stock.js:640 @@ -14284,7 +14615,7 @@ msgstr "" msgid "Add Stock" msgstr "" -#: templates/js/translated/stock.js:1049 users/models.py:396 +#: templates/js/translated/stock.js:1049 users/models.py:398 msgid "Add" msgstr "" @@ -14308,7 +14639,7 @@ msgstr "" msgid "Adjust packaging" msgstr "" -#: templates/js/translated/stock.js:1256 templates/js/translated/stock.js:3382 +#: templates/js/translated/stock.js:1256 templates/js/translated/stock.js:3383 msgid "Select Stock Items" msgstr "" @@ -14320,18 +14651,6 @@ msgstr "" msgid "Confirm stock adjustment" msgstr "" -#: templates/js/translated/stock.js:1448 -msgid "PASS" -msgstr "" - -#: templates/js/translated/stock.js:1450 -msgid "FAIL" -msgstr "" - -#: templates/js/translated/stock.js:1455 -msgid "NO RESULT" -msgstr "" - #: templates/js/translated/stock.js:1535 msgid "Pass test" msgstr "" @@ -14388,216 +14707,216 @@ msgstr "" msgid "No stock location set" msgstr "" -#: templates/js/translated/stock.js:1927 +#: templates/js/translated/stock.js:1928 msgid "Change stock status" msgstr "" -#: templates/js/translated/stock.js:1936 +#: templates/js/translated/stock.js:1937 msgid "Merge stock" msgstr "" -#: templates/js/translated/stock.js:1985 +#: templates/js/translated/stock.js:1986 msgid "Delete stock" msgstr "" -#: templates/js/translated/stock.js:2038 +#: templates/js/translated/stock.js:2039 msgid "stock items" msgstr "" -#: templates/js/translated/stock.js:2043 +#: templates/js/translated/stock.js:2044 msgid "Scan to location" msgstr "" -#: templates/js/translated/stock.js:2054 +#: templates/js/translated/stock.js:2055 msgid "Stock Actions" msgstr "" -#: templates/js/translated/stock.js:2098 +#: templates/js/translated/stock.js:2099 msgid "Load installed items" msgstr "" -#: templates/js/translated/stock.js:2176 +#: templates/js/translated/stock.js:2177 msgid "Stock item is in production" msgstr "" -#: templates/js/translated/stock.js:2181 +#: templates/js/translated/stock.js:2182 msgid "Stock item assigned to sales order" msgstr "" -#: templates/js/translated/stock.js:2184 +#: templates/js/translated/stock.js:2185 msgid "Stock item assigned to customer" msgstr "" -#: templates/js/translated/stock.js:2187 +#: templates/js/translated/stock.js:2188 msgid "Serialized stock item has been allocated" msgstr "" -#: templates/js/translated/stock.js:2189 +#: templates/js/translated/stock.js:2190 msgid "Stock item has been fully allocated" msgstr "" -#: templates/js/translated/stock.js:2191 +#: templates/js/translated/stock.js:2192 msgid "Stock item has been partially allocated" msgstr "" -#: templates/js/translated/stock.js:2194 +#: templates/js/translated/stock.js:2195 msgid "Stock item has been installed in another item" msgstr "" -#: templates/js/translated/stock.js:2196 +#: templates/js/translated/stock.js:2197 msgid "Stock item has been consumed by a build order" msgstr "" -#: templates/js/translated/stock.js:2200 +#: templates/js/translated/stock.js:2201 msgid "Stock item has expired" msgstr "" -#: templates/js/translated/stock.js:2202 +#: templates/js/translated/stock.js:2203 msgid "Stock item will expire soon" msgstr "" -#: templates/js/translated/stock.js:2207 +#: templates/js/translated/stock.js:2208 msgid "Stock item has been rejected" msgstr "" -#: templates/js/translated/stock.js:2209 +#: templates/js/translated/stock.js:2210 msgid "Stock item is lost" msgstr "" -#: templates/js/translated/stock.js:2211 +#: templates/js/translated/stock.js:2212 msgid "Stock item is destroyed" msgstr "" -#: templates/js/translated/stock.js:2215 +#: templates/js/translated/stock.js:2216 #: templates/js/translated/table_filters.js:357 msgid "Depleted" msgstr "" -#: templates/js/translated/stock.js:2380 +#: templates/js/translated/stock.js:2381 msgid "Supplier part not specified" msgstr "" -#: templates/js/translated/stock.js:2427 +#: templates/js/translated/stock.js:2428 msgid "Stock Value" msgstr "" -#: templates/js/translated/stock.js:2555 +#: templates/js/translated/stock.js:2556 msgid "No stock items matching query" msgstr "" -#: templates/js/translated/stock.js:2658 +#: templates/js/translated/stock.js:2659 msgid "stock locations" msgstr "" -#: templates/js/translated/stock.js:2813 +#: templates/js/translated/stock.js:2814 msgid "Load Sublocations" msgstr "" -#: templates/js/translated/stock.js:2930 +#: templates/js/translated/stock.js:2931 msgid "Details" msgstr "" -#: templates/js/translated/stock.js:2934 +#: templates/js/translated/stock.js:2935 msgid "No changes" msgstr "" -#: templates/js/translated/stock.js:2946 +#: templates/js/translated/stock.js:2947 msgid "Part information unavailable" msgstr "" -#: templates/js/translated/stock.js:2968 +#: templates/js/translated/stock.js:2969 msgid "Location no longer exists" msgstr "" -#: templates/js/translated/stock.js:2985 +#: templates/js/translated/stock.js:2986 msgid "Build order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3000 +#: templates/js/translated/stock.js:3001 msgid "Purchase order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3017 +#: templates/js/translated/stock.js:3018 msgid "Sales Order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3034 +#: templates/js/translated/stock.js:3035 msgid "Return Order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3053 +#: templates/js/translated/stock.js:3054 msgid "Customer no longer exists" msgstr "" -#: templates/js/translated/stock.js:3071 +#: templates/js/translated/stock.js:3072 msgid "Stock item no longer exists" msgstr "" -#: templates/js/translated/stock.js:3089 +#: templates/js/translated/stock.js:3090 msgid "Added" msgstr "" -#: templates/js/translated/stock.js:3097 +#: templates/js/translated/stock.js:3098 msgid "Removed" msgstr "" -#: templates/js/translated/stock.js:3169 +#: templates/js/translated/stock.js:3170 msgid "No installed items" msgstr "" -#: templates/js/translated/stock.js:3223 templates/js/translated/stock.js:3259 +#: templates/js/translated/stock.js:3224 templates/js/translated/stock.js:3260 msgid "Uninstall Stock Item" msgstr "" -#: templates/js/translated/stock.js:3280 +#: templates/js/translated/stock.js:3281 msgid "Select stock item to uninstall" msgstr "" -#: templates/js/translated/stock.js:3301 +#: templates/js/translated/stock.js:3302 msgid "Install another stock item into this item" msgstr "" -#: templates/js/translated/stock.js:3302 +#: templates/js/translated/stock.js:3303 msgid "Stock items can only be installed if they meet the following criteria" msgstr "" -#: templates/js/translated/stock.js:3304 +#: templates/js/translated/stock.js:3305 msgid "The Stock Item links to a Part which is the BOM for this Stock Item" msgstr "" -#: templates/js/translated/stock.js:3305 +#: templates/js/translated/stock.js:3306 msgid "The Stock Item is currently available in stock" msgstr "" -#: templates/js/translated/stock.js:3306 +#: templates/js/translated/stock.js:3307 msgid "The Stock Item is not already installed in another item" msgstr "" -#: templates/js/translated/stock.js:3307 +#: templates/js/translated/stock.js:3308 msgid "The Stock Item is tracked by either a batch code or serial number" msgstr "" -#: templates/js/translated/stock.js:3320 +#: templates/js/translated/stock.js:3321 msgid "Select part to install" msgstr "" -#: templates/js/translated/stock.js:3383 +#: templates/js/translated/stock.js:3384 msgid "Select one or more stock items" msgstr "" -#: templates/js/translated/stock.js:3396 +#: templates/js/translated/stock.js:3397 msgid "Selected stock items" msgstr "" -#: templates/js/translated/stock.js:3400 +#: templates/js/translated/stock.js:3401 msgid "Change Stock Status" msgstr "" -#: templates/js/translated/stock.js:3477 +#: templates/js/translated/stock.js:3478 msgid "This week" msgstr "" -#: templates/js/translated/stock.js:3485 +#: templates/js/translated/stock.js:3486 msgid "This month" msgstr "" @@ -14734,10 +15053,6 @@ msgstr "" msgid "Show items which are in production" msgstr "" -#: templates/js/translated/table_filters.js:372 -msgid "Include Variants" -msgstr "" - #: templates/js/translated/table_filters.js:373 msgid "Include stock items for variant parts" msgstr "" @@ -15012,10 +15327,6 @@ msgstr "" msgid "An error occurred while attempting to login via your social network account." msgstr "" -#: templates/socialaccount/authentication_error.html:13 -msgid "Contact your system administrator for further information." -msgstr "" - #: templates/socialaccount/login.html:13 #, python-format msgid "Connect %(provider)s" @@ -15141,27 +15452,27 @@ msgstr "" msgid "No" msgstr "" -#: users/admin.py:104 +#: users/admin.py:101 msgid "Users" msgstr "" -#: users/admin.py:105 +#: users/admin.py:102 msgid "Select which users are assigned to this group" msgstr "" -#: users/admin.py:249 +#: users/admin.py:246 msgid "The following users are members of multiple groups" msgstr "" -#: users/admin.py:283 +#: users/admin.py:280 msgid "Personal info" msgstr "" -#: users/admin.py:285 +#: users/admin.py:282 msgid "Permissions" msgstr "" -#: users/admin.py:288 +#: users/admin.py:285 msgid "Important dates" msgstr "" @@ -15205,35 +15516,35 @@ msgstr "" msgid "Revoked" msgstr "" -#: users/models.py:379 +#: users/models.py:381 msgid "Permission set" msgstr "" -#: users/models.py:388 +#: users/models.py:390 msgid "Group" msgstr "" -#: users/models.py:392 +#: users/models.py:394 msgid "View" msgstr "" -#: users/models.py:392 +#: users/models.py:394 msgid "Permission to view items" msgstr "" -#: users/models.py:396 +#: users/models.py:398 msgid "Permission to add items" msgstr "" -#: users/models.py:400 +#: users/models.py:402 msgid "Change" msgstr "" -#: users/models.py:402 +#: users/models.py:404 msgid "Permissions to edit items" msgstr "" -#: users/models.py:408 +#: users/models.py:410 msgid "Permission to delete items" msgstr "" diff --git a/src/backend/InvenTree/locale/cs/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/cs/LC_MESSAGES/django.po index 7e1e045d22..9657ed0dc9 100644 --- a/src/backend/InvenTree/locale/cs/LC_MESSAGES/django.po +++ b/src/backend/InvenTree/locale/cs/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-08-20 01:22+0000\n" -"PO-Revision-Date: 2024-08-20 19:50\n" +"POT-Creation-Date: 2024-11-04 03:11+0000\n" +"PO-Revision-Date: 2024-11-04 03:14\n" "Last-Translator: \n" "Language-Team: Czech\n" "Language: cs_CZ\n" @@ -14,81 +14,89 @@ msgstr "" "X-Crowdin-Project: inventree\n" "X-Crowdin-Project-ID: 452300\n" "X-Crowdin-Language: cs\n" -"X-Crowdin-File: /[inventree.InvenTree] l10/src/backend/InvenTree/locale/en/LC_MESSAGES/django.po\n" -"X-Crowdin-File-ID: 216\n" +"X-Crowdin-File: /src/backend/InvenTree/locale/en/LC_MESSAGES/django.po\n" +"X-Crowdin-File-ID: 250\n" -#: InvenTree/api.py:269 +#: InvenTree/api.py:270 msgid "API endpoint not found" msgstr "API endpoint nebyl nalezen" -#: InvenTree/api.py:502 +#: InvenTree/api.py:387 +msgid "Invalid items list provided" +msgstr "" + +#: InvenTree/api.py:396 +msgid "Invalid filters provided" +msgstr "" + +#: InvenTree/api.py:401 +msgid "No items found to delete" +msgstr "" + +#: InvenTree/api.py:515 msgid "User does not have permission to view this model" msgstr "Uživatel nemá právo zobrazit tento model" -#: InvenTree/conversion.py:160 +#: InvenTree/conversion.py:161 #, python-brace-format msgid "Invalid unit provided ({unit})" msgstr "Zadaná neplatná jednotka ({unit})" -#: InvenTree/conversion.py:177 +#: InvenTree/conversion.py:178 msgid "No value provided" msgstr "Není k dispozici žádná hodnota" -#: InvenTree/conversion.py:204 +#: InvenTree/conversion.py:205 #, python-brace-format msgid "Could not convert {original} to {unit}" msgstr "Nelze převést {original} na {unit}" -#: InvenTree/conversion.py:206 -msgid "Invalid quantity supplied" +#: InvenTree/conversion.py:207 InvenTree/conversion.py:221 +#: InvenTree/helpers.py:505 order/models.py:589 order/models.py:832 +msgid "Invalid quantity provided" msgstr "Vyplněno neplatné množství" -#: InvenTree/conversion.py:220 -#, python-brace-format -msgid "Invalid quantity supplied ({exc})" -msgstr "Vyplněno neplatné množství ({exc})" - -#: InvenTree/exceptions.py:108 +#: InvenTree/exceptions.py:104 msgid "Error details can be found in the admin panel" msgstr "Podrobnosti o chybě lze nalézt v panelu administrace" -#: InvenTree/fields.py:136 +#: InvenTree/fields.py:135 msgid "Enter date" msgstr "Zadejte datum" -#: InvenTree/fields.py:205 InvenTree/models.py:929 build/serializers.py:468 -#: build/serializers.py:546 build/templates/build/sidebar.html:29 -#: company/models.py:836 +#: InvenTree/fields.py:204 InvenTree/models.py:928 build/serializers.py:512 +#: build/serializers.py:590 build/templates/build/sidebar.html:29 +#: company/models.py:833 #: company/templates/company/manufacturer_part_sidebar.html:11 #: company/templates/company/sidebar.html:37 -#: company/templates/company/supplier_part_sidebar.html:11 order/models.py:1380 +#: company/templates/company/supplier_part_sidebar.html:11 order/models.py:1397 #: order/templates/order/po_sidebar.html:11 #: order/templates/order/return_order_sidebar.html:9 #: order/templates/order/so_sidebar.html:17 part/admin.py:59 -#: part/models.py:3297 part/templates/part/part_sidebar.html:65 +#: part/models.py:3348 part/templates/part/part_sidebar.html:65 #: report/templates/report/inventree_build_order_report.html:172 -#: stock/admin.py:230 stock/models.py:2375 stock/models.py:2563 -#: stock/serializers.py:698 stock/serializers.py:856 stock/serializers.py:982 -#: stock/serializers.py:1032 stock/serializers.py:1343 -#: stock/serializers.py:1432 stock/serializers.py:1597 +#: stock/admin.py:231 stock/models.py:2494 stock/models.py:2679 +#: stock/serializers.py:725 stock/serializers.py:887 stock/serializers.py:1013 +#: stock/serializers.py:1063 stock/serializers.py:1374 +#: stock/serializers.py:1463 stock/serializers.py:1628 #: stock/templates/stock/stock_sidebar.html:25 #: templates/js/translated/barcode.js:143 templates/js/translated/bom.js:1265 -#: templates/js/translated/company.js:1684 templates/js/translated/order.js:372 +#: templates/js/translated/company.js:1685 templates/js/translated/order.js:372 #: templates/js/translated/part.js:1087 -#: templates/js/translated/purchase_order.js:2270 +#: templates/js/translated/purchase_order.js:2254 #: templates/js/translated/return_order.js:774 -#: templates/js/translated/sales_order.js:1103 -#: templates/js/translated/sales_order.js:2018 -#: templates/js/translated/stock.js:1621 templates/js/translated/stock.js:2513 +#: templates/js/translated/sales_order.js:1069 +#: templates/js/translated/sales_order.js:1999 +#: templates/js/translated/stock.js:1621 templates/js/translated/stock.js:2514 msgid "Notes" msgstr "Poznámky" -#: InvenTree/format.py:164 +#: InvenTree/format.py:162 #, python-brace-format msgid "Value '{name}' does not appear in pattern format" msgstr "Hodnota '{name}' neodpovídá formátu vzoru" -#: InvenTree/format.py:175 +#: InvenTree/format.py:173 msgid "Provided value does not match required pattern: " msgstr "Poskytnutá hodnota neodpovídá požadovanému vzoru: " @@ -132,397 +140,409 @@ msgstr "" msgid "The provided primary email address is not valid." msgstr "Zadaná primární e-mailová adresa je neplatná." -#: InvenTree/forms.py:274 +#: InvenTree/forms.py:273 msgid "The provided email domain is not approved." msgstr "Zadaná e-mailová doména není povolena." -#: InvenTree/forms.py:403 +#: InvenTree/forms.py:402 msgid "Registration is disabled." msgstr "Registrace vypnuta." -#: InvenTree/helpers.py:491 order/models.py:567 order/models.py:810 -msgid "Invalid quantity provided" -msgstr "Vyplněno neplatné množství" +#: InvenTree/helpers.py:509 +msgid "Cannot serialize more than 1000 items at once" +msgstr "" -#: InvenTree/helpers.py:499 +#: InvenTree/helpers.py:515 msgid "Empty serial number string" msgstr "Nevyplněné výrobní číslo" -#: InvenTree/helpers.py:528 +#: InvenTree/helpers.py:544 msgid "Duplicate serial" msgstr "Duplicitní výrobní číslo" -#: InvenTree/helpers.py:560 InvenTree/helpers.py:603 +#: InvenTree/helpers.py:576 InvenTree/helpers.py:619 InvenTree/helpers.py:637 +#: InvenTree/helpers.py:644 InvenTree/helpers.py:663 #, python-brace-format -msgid "Invalid group range: {group}" -msgstr "Neplatný rozsah skupiny: {group}" +msgid "Invalid group: {group}" +msgstr "" -#: InvenTree/helpers.py:591 +#: InvenTree/helpers.py:607 #, python-brace-format msgid "Group range {group} exceeds allowed quantity ({expected_quantity})" msgstr "Rozsah skupiny {group} překračuje povolené množství ({expected_quantity})" -#: InvenTree/helpers.py:621 InvenTree/helpers.py:628 InvenTree/helpers.py:647 -#, python-brace-format -msgid "Invalid group sequence: {group}" -msgstr "Neplatná sekvence skupiny: {group}" - -#: InvenTree/helpers.py:657 +#: InvenTree/helpers.py:673 msgid "No serial numbers found" msgstr "Nenalezena žádná výrobní čísla" -#: InvenTree/helpers.py:662 +#: InvenTree/helpers.py:678 msgid "Number of unique serial numbers ({len(serials)}) must match quantity ({expected_quantity})" msgstr "Počet jedinečných sériových čísel ({len(serials)}) musí odpovídat množství ({expected_quantity})" -#: InvenTree/helpers.py:780 +#: InvenTree/helpers.py:796 msgid "Remove HTML tags from this value" msgstr "Odstranit HTML tagy z této hodnoty" -#: InvenTree/helpers_model.py:133 +#: InvenTree/helpers.py:881 +msgid "Data contains prohibited markdown content" +msgstr "" + +#: InvenTree/helpers_model.py:130 msgid "Connection error" msgstr "Chyba spojení" -#: InvenTree/helpers_model.py:138 InvenTree/helpers_model.py:145 +#: InvenTree/helpers_model.py:135 InvenTree/helpers_model.py:142 msgid "Server responded with invalid status code" msgstr "Server odpověděl s neplatným stavovým kódem" -#: InvenTree/helpers_model.py:141 +#: InvenTree/helpers_model.py:138 msgid "Exception occurred" msgstr "Došlo k výjimce" -#: InvenTree/helpers_model.py:151 +#: InvenTree/helpers_model.py:148 msgid "Server responded with invalid Content-Length value" msgstr "Server odpověděl s neplatnou hodnotou Content-Length" -#: InvenTree/helpers_model.py:154 +#: InvenTree/helpers_model.py:151 msgid "Image size is too large" msgstr "Velikost obrázku je příliš velká" -#: InvenTree/helpers_model.py:166 +#: InvenTree/helpers_model.py:163 msgid "Image download exceeded maximum size" msgstr "Stahování obrázku překročilo maximální velikost" -#: InvenTree/helpers_model.py:171 +#: InvenTree/helpers_model.py:168 msgid "Remote server returned empty response" msgstr "Vzdálený server vrátil prázdnou odpověď" -#: InvenTree/helpers_model.py:179 +#: InvenTree/helpers_model.py:176 msgid "Supplied URL is not a valid image file" msgstr "Zadaná URL adresa není platný soubor obrázku" -#: InvenTree/locales.py:18 +#: InvenTree/locales.py:20 msgid "Arabic" msgstr "" -#: InvenTree/locales.py:19 +#: InvenTree/locales.py:21 msgid "Bulgarian" msgstr "Bulharština" -#: InvenTree/locales.py:20 +#: InvenTree/locales.py:22 msgid "Czech" msgstr "Čeština" -#: InvenTree/locales.py:21 +#: InvenTree/locales.py:23 msgid "Danish" msgstr "Dánština" -#: InvenTree/locales.py:22 +#: InvenTree/locales.py:24 msgid "German" msgstr "Němčina" -#: InvenTree/locales.py:23 +#: InvenTree/locales.py:25 msgid "Greek" msgstr "Řečtina" -#: InvenTree/locales.py:24 +#: InvenTree/locales.py:26 msgid "English" msgstr "Angličtina" -#: InvenTree/locales.py:25 +#: InvenTree/locales.py:27 msgid "Spanish" msgstr "Španělština" -#: InvenTree/locales.py:26 +#: InvenTree/locales.py:28 msgid "Spanish (Mexican)" msgstr "Španělština (Mexiko)" -#: InvenTree/locales.py:27 +#: InvenTree/locales.py:29 msgid "Estonian" msgstr "" -#: InvenTree/locales.py:28 +#: InvenTree/locales.py:30 msgid "Farsi / Persian" msgstr "Farsi / Perština" -#: InvenTree/locales.py:29 +#: InvenTree/locales.py:31 msgid "Finnish" msgstr "Finština" -#: InvenTree/locales.py:30 +#: InvenTree/locales.py:32 msgid "French" msgstr "Francouzština" -#: InvenTree/locales.py:31 +#: InvenTree/locales.py:33 msgid "Hebrew" msgstr "Hebrejština" -#: InvenTree/locales.py:32 +#: InvenTree/locales.py:34 msgid "Hindi" msgstr "Hindština" -#: InvenTree/locales.py:33 +#: InvenTree/locales.py:35 msgid "Hungarian" msgstr "Maďarština" -#: InvenTree/locales.py:34 +#: InvenTree/locales.py:36 msgid "Italian" msgstr "Italština" -#: InvenTree/locales.py:35 +#: InvenTree/locales.py:37 msgid "Japanese" msgstr "Japonština" -#: InvenTree/locales.py:36 +#: InvenTree/locales.py:38 msgid "Korean" msgstr "Korejština" -#: InvenTree/locales.py:37 +#: InvenTree/locales.py:39 +msgid "Lithuanian" +msgstr "" + +#: InvenTree/locales.py:40 msgid "Latvian" msgstr "Lotyština" -#: InvenTree/locales.py:38 +#: InvenTree/locales.py:41 msgid "Dutch" msgstr "Nizozemština" -#: InvenTree/locales.py:39 +#: InvenTree/locales.py:42 msgid "Norwegian" msgstr "Norština" -#: InvenTree/locales.py:40 +#: InvenTree/locales.py:43 msgid "Polish" msgstr "Polština" -#: InvenTree/locales.py:41 +#: InvenTree/locales.py:44 msgid "Portuguese" msgstr "Portugalština" -#: InvenTree/locales.py:42 +#: InvenTree/locales.py:45 msgid "Portuguese (Brazilian)" msgstr "Portugalština (Brazilská)" -#: InvenTree/locales.py:43 +#: InvenTree/locales.py:46 msgid "Romanian" msgstr "Rumunština" -#: InvenTree/locales.py:44 +#: InvenTree/locales.py:47 msgid "Russian" msgstr "Ruština" -#: InvenTree/locales.py:45 +#: InvenTree/locales.py:48 msgid "Slovak" msgstr "Slovenština" -#: InvenTree/locales.py:46 +#: InvenTree/locales.py:49 msgid "Slovenian" msgstr "Slovinština" -#: InvenTree/locales.py:47 +#: InvenTree/locales.py:50 msgid "Serbian" msgstr "Srbština" -#: InvenTree/locales.py:48 +#: InvenTree/locales.py:51 msgid "Swedish" msgstr "Švédština" -#: InvenTree/locales.py:49 +#: InvenTree/locales.py:52 msgid "Thai" msgstr "Thajština" -#: InvenTree/locales.py:50 +#: InvenTree/locales.py:53 msgid "Turkish" msgstr "Turečtina" -#: InvenTree/locales.py:51 +#: InvenTree/locales.py:54 msgid "Ukrainian" msgstr "Ukrajinština" -#: InvenTree/locales.py:52 +#: InvenTree/locales.py:55 msgid "Vietnamese" msgstr "Vietnamština" -#: InvenTree/locales.py:53 +#: InvenTree/locales.py:56 msgid "Chinese (Simplified)" msgstr "Čínština (zjednodušená)" -#: InvenTree/locales.py:54 +#: InvenTree/locales.py:57 msgid "Chinese (Traditional)" msgstr "Čínština (tradiční)" #: InvenTree/magic_login.py:28 -#, python-brace-format -msgid "[{site_name}] Log in to the app" -msgstr "[{site_name}] Přihlásit se do aplikace" +msgid "Log in to the app" +msgstr "" -#: InvenTree/magic_login.py:38 InvenTree/serializers.py:415 -#: company/models.py:136 company/templates/company/company_base.html:138 +#: InvenTree/magic_login.py:38 InvenTree/serializers.py:416 +#: company/models.py:133 company/templates/company/company_base.html:138 #: templates/InvenTree/settings/user.html:49 -#: templates/js/translated/company.js:677 +#: templates/js/translated/company.js:678 msgid "Email" msgstr "E-mail" -#: InvenTree/models.py:103 +#: InvenTree/models.py:105 msgid "Error running plugin validation" msgstr "Chyba při ověření pluginu" -#: InvenTree/models.py:172 +#: InvenTree/models.py:174 msgid "Metadata must be a python dict object" msgstr "Metadata musí být objekt python dict" -#: InvenTree/models.py:178 +#: InvenTree/models.py:180 msgid "Plugin Metadata" msgstr "Metadata pluginu" -#: InvenTree/models.py:179 +#: InvenTree/models.py:181 msgid "JSON metadata field, for use by external plugins" msgstr "Pole metadat JSON pro použití externími pluginy" -#: InvenTree/models.py:409 +#: InvenTree/models.py:408 msgid "Improperly formatted pattern" msgstr "Nesprávně naformátovaný vzor" -#: InvenTree/models.py:416 +#: InvenTree/models.py:415 msgid "Unknown format key specified" msgstr "Neznámý formát klíče" -#: InvenTree/models.py:422 +#: InvenTree/models.py:421 msgid "Missing required format key" msgstr "Chybí požadovaný klíč" -#: InvenTree/models.py:433 +#: InvenTree/models.py:432 msgid "Reference field cannot be empty" msgstr "Referenční pole nemůže být prázdné" -#: InvenTree/models.py:441 +#: InvenTree/models.py:440 msgid "Reference must match required pattern" msgstr "Referenční číslo musí odpovídat požadovanému vzoru" -#: InvenTree/models.py:472 +#: InvenTree/models.py:471 msgid "Reference number is too large" msgstr "Referenční číslo je příliš velké" -#: InvenTree/models.py:723 +#: InvenTree/models.py:722 msgid "Duplicate names cannot exist under the same parent" msgstr "Duplicitní názvy nemohou existovat pod stejným nadřazeným názvem" -#: InvenTree/models.py:740 +#: InvenTree/models.py:739 msgid "Invalid choice" msgstr "Neplatný výběr" -#: InvenTree/models.py:770 common/models.py:2702 common/models.py:3132 -#: common/serializers.py:412 company/models.py:593 machine/models.py:24 -#: part/models.py:983 part/models.py:3764 plugin/models.py:51 -#: report/models.py:149 stock/models.py:77 +#: InvenTree/models.py:769 common/models.py:2766 common/models.py:3193 +#: common/models.py:3413 common/serializers.py:460 company/models.py:590 +#: machine/models.py:24 part/models.py:1044 part/models.py:3815 +#: plugin/models.py:51 report/models.py:149 stock/models.py:83 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/notifications.html:17 #: templates/InvenTree/settings/plugin.html:83 #: templates/InvenTree/settings/plugin_settings.html:22 #: templates/InvenTree/settings/settings_staff_js.html:67 #: templates/InvenTree/settings/settings_staff_js.html:454 -#: templates/js/translated/company.js:676 -#: templates/js/translated/company.js:724 -#: templates/js/translated/company.js:913 -#: templates/js/translated/company.js:1165 -#: templates/js/translated/company.js:1413 templates/js/translated/part.js:1193 +#: templates/js/translated/company.js:677 +#: templates/js/translated/company.js:725 +#: templates/js/translated/company.js:914 +#: templates/js/translated/company.js:1166 +#: templates/js/translated/company.js:1414 templates/js/translated/part.js:1193 #: templates/js/translated/part.js:1481 templates/js/translated/part.js:1617 -#: templates/js/translated/part.js:2768 templates/js/translated/stock.js:2801 +#: templates/js/translated/part.js:2768 templates/js/translated/stock.js:2802 msgid "Name" msgstr "Název" -#: InvenTree/models.py:776 build/models.py:250 -#: build/templates/build/detail.html:24 common/models.py:156 -#: company/models.py:521 company/models.py:827 +#: InvenTree/models.py:775 build/models.py:251 +#: build/templates/build/detail.html:24 common/models.py:159 +#: company/models.py:518 company/models.py:824 #: company/templates/company/company_base.html:77 #: company/templates/company/manufacturer_part.html:75 -#: company/templates/company/supplier_part.html:107 order/models.py:288 -#: order/models.py:1413 part/admin.py:305 part/admin.py:411 part/models.py:1006 -#: part/models.py:3779 part/templates/part/category.html:79 -#: part/templates/part/part_base.html:170 +#: company/templates/company/supplier_part.html:108 order/models.py:295 +#: order/models.py:1430 part/admin.py:305 part/admin.py:411 part/models.py:1067 +#: part/models.py:3830 part/templates/part/category.html:79 +#: part/templates/part/part_base.html:171 #: part/templates/part/part_scheduling.html:12 report/models.py:155 -#: report/models.py:509 report/models.py:535 +#: report/models.py:517 report/models.py:543 #: report/templates/report/inventree_build_order_report.html:117 -#: stock/admin.py:54 stock/models.py:83 stock/templates/stock/location.html:122 +#: stock/admin.py:54 stock/models.py:89 stock/templates/stock/location.html:123 #: templates/InvenTree/settings/notifications.html:19 #: templates/InvenTree/settings/plugin_settings.html:27 #: templates/InvenTree/settings/settings_staff_js.html:170 #: templates/InvenTree/settings/settings_staff_js.html:459 #: templates/js/translated/bom.js:633 templates/js/translated/bom.js:963 -#: templates/js/translated/build.js:2311 templates/js/translated/company.js:519 -#: templates/js/translated/company.js:1330 -#: templates/js/translated/company.js:1641 templates/js/translated/index.js:119 +#: templates/js/translated/build.js:2314 templates/js/translated/company.js:520 +#: templates/js/translated/company.js:1331 +#: templates/js/translated/company.js:1642 templates/js/translated/index.js:119 #: templates/js/translated/order.js:323 templates/js/translated/part.js:1245 #: templates/js/translated/part.js:1490 templates/js/translated/part.js:1628 #: templates/js/translated/part.js:1965 templates/js/translated/part.js:2361 #: templates/js/translated/part.js:2803 templates/js/translated/part.js:2915 #: templates/js/translated/plugin.js:80 -#: templates/js/translated/purchase_order.js:1776 -#: templates/js/translated/purchase_order.js:1919 -#: templates/js/translated/purchase_order.js:2092 +#: templates/js/translated/purchase_order.js:1760 +#: templates/js/translated/purchase_order.js:1903 +#: templates/js/translated/purchase_order.js:2076 #: templates/js/translated/return_order.js:313 -#: templates/js/translated/sales_order.js:838 -#: templates/js/translated/sales_order.js:1848 -#: templates/js/translated/stock.js:1600 templates/js/translated/stock.js:2143 -#: templates/js/translated/stock.js:2832 templates/js/translated/stock.js:2915 +#: templates/js/translated/sales_order.js:797 +#: templates/js/translated/sales_order.js:1829 +#: templates/js/translated/stock.js:1600 templates/js/translated/stock.js:2144 +#: templates/js/translated/stock.js:2833 templates/js/translated/stock.js:2916 msgid "Description" msgstr "Popis" -#: InvenTree/models.py:777 stock/models.py:84 +#: InvenTree/models.py:776 stock/models.py:90 msgid "Description (optional)" msgstr "Popis (volitelně)" -#: InvenTree/models.py:792 templates/js/translated/part.js:2812 -#: templates/js/translated/stock.js:2841 +#: InvenTree/models.py:791 common/models.py:3546 +#: templates/js/translated/part.js:2812 templates/js/translated/stock.js:2842 msgid "Path" msgstr "Cesta" -#: InvenTree/models.py:929 +#: InvenTree/models.py:928 msgid "Markdown notes (optional)" msgstr "Poznámky (volitelné)" -#: InvenTree/models.py:960 +#: InvenTree/models.py:959 msgid "Barcode Data" msgstr "Data čárového kódu" -#: InvenTree/models.py:961 +#: InvenTree/models.py:960 msgid "Third party barcode data" msgstr "Data čárového kódu třetí strany" -#: InvenTree/models.py:967 +#: InvenTree/models.py:966 msgid "Barcode Hash" msgstr "Hash čárového kódu" -#: InvenTree/models.py:968 +#: InvenTree/models.py:967 msgid "Unique hash of barcode data" msgstr "Jedinečný hash dat čárového kódu" -#: InvenTree/models.py:1035 +#: InvenTree/models.py:1034 msgid "Existing barcode found" msgstr "Nalezen existující čárový kód" -#: InvenTree/models.py:1078 +#: InvenTree/models.py:1112 +msgid "Task Failure" +msgstr "" + +#: InvenTree/models.py:1114 +#, python-brace-format +msgid "Background worker task '{instance.func}' failed after {n} attempts" +msgstr "" + +#: InvenTree/models.py:1142 msgid "Server Error" msgstr "Chyba serveru" -#: InvenTree/models.py:1079 +#: InvenTree/models.py:1143 msgid "An error has been logged by the server." msgstr "Server zaznamenal chybu." -#: InvenTree/serializers.py:63 part/models.py:4387 +#: InvenTree/serializers.py:63 part/models.py:4444 msgid "Must be a valid number" msgstr "Musí být platné číslo" -#: InvenTree/serializers.py:100 company/models.py:186 -#: company/templates/company/company_base.html:112 part/models.py:3115 +#: InvenTree/serializers.py:100 company/models.py:183 +#: company/templates/company/company_base.html:112 part/models.py:3166 #: templates/InvenTree/settings/settings_staff_js.html:44 #: templates/currency_data.html:5 msgid "Currency" @@ -532,15 +552,15 @@ msgstr "Měna" msgid "Select currency from available options" msgstr "Vyberte měnu z dostupných možností" -#: InvenTree/serializers.py:407 templates/InvenTree/settings/user.html:33 +#: InvenTree/serializers.py:405 templates/InvenTree/settings/user.html:33 msgid "Username" msgstr "Uživatelské jméno" -#: InvenTree/serializers.py:409 templates/InvenTree/settings/user.html:37 +#: InvenTree/serializers.py:408 templates/InvenTree/settings/user.html:37 msgid "First Name" msgstr "Křestní jméno" -#: InvenTree/serializers.py:409 +#: InvenTree/serializers.py:408 msgid "First name of the user" msgstr "Křestní jméno uživatele" @@ -552,30 +572,30 @@ msgstr "Příjmení" msgid "Last name of the user" msgstr "Příjmení uživatele" -#: InvenTree/serializers.py:415 +#: InvenTree/serializers.py:416 msgid "Email address of the user" msgstr "Emailová adresa uživatele" -#: InvenTree/serializers.py:439 +#: InvenTree/serializers.py:441 msgid "Staff" msgstr "Personál" -#: InvenTree/serializers.py:439 +#: InvenTree/serializers.py:441 msgid "Does this user have staff permissions" msgstr "Má tento uživatel oprávnění personálu" -#: InvenTree/serializers.py:442 +#: InvenTree/serializers.py:445 msgid "Superuser" msgstr "Super-uživatel" -#: InvenTree/serializers.py:442 +#: InvenTree/serializers.py:445 msgid "Is this user a superuser" msgstr "Je tento uživatel superuživatel" -#: InvenTree/serializers.py:445 common/models.py:2707 company/models.py:163 -#: company/models.py:801 machine/models.py:39 part/admin.py:88 -#: part/models.py:1189 plugin/models.py:66 -#: templates/js/translated/company.js:523 +#: InvenTree/serializers.py:449 common/models.py:2771 company/models.py:160 +#: company/models.py:798 machine/models.py:39 part/admin.py:88 +#: part/models.py:1250 plugin/models.py:66 +#: templates/js/translated/company.js:524 #: templates/js/translated/table_filters.js:134 #: templates/js/translated/table_filters.js:226 #: templates/js/translated/table_filters.js:513 @@ -585,230 +605,229 @@ msgstr "Je tento uživatel superuživatel" msgid "Active" msgstr "Aktivní" -#: InvenTree/serializers.py:445 +#: InvenTree/serializers.py:449 msgid "Is this user account active" msgstr "Je tento uživatelský účet aktivní" -#: InvenTree/serializers.py:463 +#: InvenTree/serializers.py:467 msgid "You do not have permission to change this user role." msgstr "Nemáte oprávnění měnit tuto uživatelskou roli." -#: InvenTree/serializers.py:475 +#: InvenTree/serializers.py:503 msgid "Only superusers can create new users" msgstr "Pouze superuživatelé mohou vytvářet nové uživatele" -#: InvenTree/serializers.py:494 +#: InvenTree/serializers.py:523 msgid "Your account has been created." msgstr "Váš účet byl vytvořen." -#: InvenTree/serializers.py:496 +#: InvenTree/serializers.py:525 msgid "Please use the password reset function to login" msgstr "Pro přihlášení použijte funkci obnovení hesla" -#: InvenTree/serializers.py:503 +#: InvenTree/serializers.py:531 msgid "Welcome to InvenTree" msgstr "Vítejte v InvenTree" -#: InvenTree/serializers.py:561 +#: InvenTree/serializers.py:594 msgid "Invalid value" msgstr "Neplatná hodnota" -#: InvenTree/serializers.py:581 importer/models.py:63 +#: InvenTree/serializers.py:614 importer/models.py:64 msgid "Data File" msgstr "Datový soubor" -#: InvenTree/serializers.py:582 +#: InvenTree/serializers.py:615 msgid "Select data file for upload" msgstr "Vyberte datový soubor k nahrání" -#: InvenTree/serializers.py:599 -msgid "Unsupported file type" -msgstr "Nepodporovaný typ souboru" +#: InvenTree/serializers.py:632 common/files.py:63 +msgid "Unsupported file format" +msgstr "" -#: InvenTree/serializers.py:605 +#: InvenTree/serializers.py:638 msgid "File is too large" msgstr "Soubor je příliš velký" -#: InvenTree/serializers.py:626 +#: InvenTree/serializers.py:659 msgid "No columns found in file" msgstr "V souboru nebyly nalezeny žádné sloupce" -#: InvenTree/serializers.py:629 +#: InvenTree/serializers.py:662 msgid "No data rows found in file" msgstr "V souboru nebyly nalezeny žádné řádky s daty" -#: InvenTree/serializers.py:742 +#: InvenTree/serializers.py:774 msgid "No data rows provided" msgstr "Nebyly zadány žádné řádky s daty" -#: InvenTree/serializers.py:745 +#: InvenTree/serializers.py:777 msgid "No data columns supplied" msgstr "Nebyly zadány žádné sloupce s daty" -#: InvenTree/serializers.py:812 +#: InvenTree/serializers.py:843 #, python-brace-format msgid "Missing required column: '{name}'" msgstr "Chybí povinný sloupec: '{name}'" -#: InvenTree/serializers.py:821 +#: InvenTree/serializers.py:852 #, python-brace-format msgid "Duplicate column: '{col}'" msgstr "Duplicitní sloupec: '{col}'" -#: InvenTree/serializers.py:861 +#: InvenTree/serializers.py:891 msgid "Remote Image" msgstr "Vzdálený obraz" -#: InvenTree/serializers.py:862 +#: InvenTree/serializers.py:892 msgid "URL of remote image file" msgstr "URL souboru vzdáleného obrázku" -#: InvenTree/serializers.py:880 +#: InvenTree/serializers.py:910 msgid "Downloading images from remote URL is not enabled" msgstr "Stahování obrázků ze vzdálené URL není povoleno" -#: InvenTree/status.py:66 part/serializers.py:1246 -msgid "Background worker check failed" -msgstr "Kontrola procesů na pozadí se nezdařila" - -#: InvenTree/status.py:70 -msgid "Email backend not configured" -msgstr "Email backend není nakonfigurován" - -#: InvenTree/status.py:73 -msgid "InvenTree system health checks failed" -msgstr "Kontroly zdraví systému InvenTree selhaly" +#: InvenTree/serializers.py:917 +msgid "Failed to download image from remote URL" +msgstr "" #: InvenTree/templatetags/inventree_extras.py:184 msgid "Unknown database" msgstr "Neznámá databáze" -#: InvenTree/validators.py:32 InvenTree/validators.py:34 +#: InvenTree/validators.py:32 msgid "Invalid physical unit" msgstr "Neplatná fyzikální jednotka" -#: InvenTree/validators.py:40 +#: InvenTree/validators.py:38 msgid "Not a valid currency code" msgstr "Neplatný kód měny" -#: InvenTree/validators.py:118 InvenTree/validators.py:134 +#: InvenTree/validators.py:115 InvenTree/validators.py:131 msgid "Overage value must not be negative" msgstr "Přidaná hodnota nesmí být záporná" -#: InvenTree/validators.py:136 +#: InvenTree/validators.py:133 msgid "Overage must not exceed 100%" msgstr "Nesmí přesáhnout 100%" -#: InvenTree/validators.py:142 +#: InvenTree/validators.py:139 msgid "Invalid value for overage" msgstr "Neplatná hodnota překročení" -#: InvenTree/views.py:400 templates/InvenTree/settings/user.html:23 +#: InvenTree/views.py:399 templates/InvenTree/settings/user.html:23 msgid "Edit User Information" msgstr "Upravit informace o uživateli" -#: InvenTree/views.py:412 templates/InvenTree/settings/user.html:20 +#: InvenTree/views.py:411 templates/InvenTree/settings/user.html:20 msgid "Set Password" msgstr "Nastavit heslo" -#: InvenTree/views.py:434 +#: InvenTree/views.py:433 msgid "Password fields must match" msgstr "Hesla se musí shodovat" -#: InvenTree/views.py:442 +#: InvenTree/views.py:441 msgid "Wrong password provided" msgstr "Zadáno špatné heslo" -#: InvenTree/views.py:650 templates/navbar.html:160 +#: InvenTree/views.py:645 templates/navbar.html:160 msgid "System Information" msgstr "Informace o systému" -#: InvenTree/views.py:657 templates/navbar.html:171 +#: InvenTree/views.py:652 templates/navbar.html:171 msgid "About InvenTree" msgstr "O InvenTree" -#: build/api.py:51 part/api.py:156 stock/api.py:343 -msgid "Cascade" -msgstr "" - -#: build/api.py:64 build/models.py:261 -#: build/templates/build/build_base.html:191 +#: build/api.py:54 build/models.py:262 +#: build/templates/build/build_base.html:192 #: build/templates/build/detail.html:87 msgid "Parent Build" msgstr "Nadřazená sestava" -#: build/api.py:89 order/api.py:92 templates/js/translated/table_filters.js:101 +#: build/api.py:58 build/api.py:625 order/api.py:396 order/api.py:611 +#: order/api.py:990 order/api.py:1187 +#: templates/js/translated/table_filters.js:372 +msgid "Include Variants" +msgstr "" + +#: build/api.py:93 +msgid "Ancestor Build" +msgstr "" + +#: build/api.py:112 order/api.py:90 +#: templates/js/translated/table_filters.js:101 #: templates/js/translated/table_filters.js:549 #: templates/js/translated/table_filters.js:633 #: templates/js/translated/table_filters.js:674 msgid "Assigned to me" msgstr "" -#: build/api.py:106 build/templates/build/build_base.html:205 +#: build/api.py:129 build/templates/build/build_base.html:206 #: build/templates/build/detail.html:115 #: report/templates/report/inventree_build_order_report.html:152 #: templates/js/translated/table_filters.js:552 msgid "Issued By" msgstr "Vystavil" -#: build/api.py:125 +#: build/api.py:148 msgid "Assigned To" msgstr "" -#: build/api.py:301 +#: build/api.py:310 msgid "Build must be cancelled before it can be deleted" msgstr "Sestavení musí být zrušeno před odstraněním" -#: build/api.py:345 build/serializers.py:1288 part/models.py:4265 +#: build/api.py:354 build/serializers.py:1342 part/models.py:4322 #: templates/js/translated/bom.js:997 templates/js/translated/bom.js:1037 -#: templates/js/translated/build.js:2702 +#: templates/js/translated/build.js:2711 #: templates/js/translated/table_filters.js:197 #: templates/js/translated/table_filters.js:586 msgid "Consumable" msgstr "Spotřební materiál" -#: build/api.py:346 build/serializers.py:1289 part/models.py:4259 +#: build/api.py:355 build/serializers.py:1343 part/models.py:4316 #: part/templates/part/upload_bom.html:58 templates/js/translated/bom.js:1001 -#: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2693 +#: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2702 #: templates/js/translated/table_filters.js:193 #: templates/js/translated/table_filters.js:222 #: templates/js/translated/table_filters.js:590 msgid "Optional" msgstr "Volitelné" -#: build/api.py:347 common/models.py:1489 part/admin.py:91 part/admin.py:428 -#: part/models.py:1154 part/serializers.py:1575 +#: build/api.py:356 common/models.py:1558 part/admin.py:91 part/admin.py:428 +#: part/models.py:1215 part/serializers.py:1633 #: templates/js/translated/bom.js:1639 #: templates/js/translated/table_filters.js:337 #: templates/js/translated/table_filters.js:729 msgid "Assembly" msgstr "Sestava" -#: build/api.py:348 templates/js/translated/table_filters.js:415 +#: build/api.py:357 templates/js/translated/table_filters.js:415 #: templates/js/translated/table_filters.js:582 msgid "Tracked" msgstr "Sledováno" -#: build/api.py:349 build/serializers.py:1290 part/models.py:1172 +#: build/api.py:358 build/serializers.py:1344 part/models.py:1233 #: templates/js/translated/table_filters.js:146 #: templates/js/translated/table_filters.js:779 msgid "Testable" msgstr "" -#: build/api.py:351 part/admin.py:144 templates/js/translated/build.js:1917 -#: templates/js/translated/build.js:2820 -#: templates/js/translated/sales_order.js:1965 +#: build/api.py:360 order/api.py:779 part/admin.py:144 +#: templates/js/translated/build.js:1920 templates/js/translated/build.js:2838 +#: templates/js/translated/sales_order.js:1946 #: templates/js/translated/table_filters.js:574 msgid "Allocated" msgstr "Přiděleno" -#: build/api.py:359 company/models.py:891 company/serializers.py:395 -#: company/templates/company/supplier_part.html:114 +#: build/api.py:368 company/models.py:888 company/serializers.py:399 +#: company/templates/company/supplier_part.html:115 #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:17 -#: templates/js/translated/bom.js:1162 templates/js/translated/build.js:2752 +#: templates/js/translated/bom.js:1162 templates/js/translated/build.js:2770 #: templates/js/translated/index.js:123 -#: templates/js/translated/model_renderers.js:235 +#: templates/js/translated/model_renderers.js:238 #: templates/js/translated/part.js:695 templates/js/translated/part.js:697 #: templates/js/translated/part.js:702 #: templates/js/translated/table_filters.js:347 @@ -816,16 +835,68 @@ msgstr "Přiděleno" msgid "Available" msgstr "Dostupné" -#: build/models.py:86 build/templates/build/build_base.html:9 -#: build/templates/build/build_base.html:27 +#: build/api.py:640 build/models.py:268 build/serializers.py:1330 +#: build/templates/build/build_base.html:106 +#: build/templates/build/detail.html:29 company/models.py:1043 order/api.py:775 +#: order/api.py:1003 order/models.py:1519 order/models.py:1674 +#: order/models.py:1675 part/api.py:1495 part/api.py:1802 part/models.py:419 +#: part/models.py:3177 part/models.py:3321 part/models.py:3469 +#: part/models.py:3490 part/models.py:3512 part/models.py:3648 +#: part/models.py:3995 part/models.py:4158 part/models.py:4288 +#: part/models.py:4654 part/serializers.py:1245 part/serializers.py:1898 +#: part/templates/part/part_app_base.html:8 +#: part/templates/part/part_pricing.html:12 +#: part/templates/part/upload_bom.html:52 +#: report/templates/report/inventree_bill_of_materials_report.html:110 +#: report/templates/report/inventree_bill_of_materials_report.html:137 +#: report/templates/report/inventree_build_order_report.html:109 +#: report/templates/report/inventree_purchase_order_report.html:27 +#: report/templates/report/inventree_return_order_report.html:24 +#: report/templates/report/inventree_sales_order_report.html:27 +#: report/templates/report/inventree_sales_order_shipment_report.html:28 +#: report/templates/report/inventree_stock_location_report.html:102 +#: stock/serializers.py:112 stock/serializers.py:160 stock/serializers.py:456 +#: stock/serializers.py:947 templates/InvenTree/search.html:82 +#: templates/email/build_order_completed.html:17 +#: templates/email/build_order_required_stock.html:17 +#: templates/email/low_stock_notification.html:15 +#: templates/email/overdue_build_order.html:16 +#: templates/js/translated/barcode.js:577 templates/js/translated/bom.js:632 +#: templates/js/translated/bom.js:769 templates/js/translated/bom.js:905 +#: templates/js/translated/build.js:1005 templates/js/translated/build.js:1488 +#: templates/js/translated/build.js:1919 templates/js/translated/build.js:2337 +#: templates/js/translated/build.js:2514 templates/js/translated/company.js:349 +#: templates/js/translated/company.js:1117 +#: templates/js/translated/company.js:1272 +#: templates/js/translated/company.js:1560 templates/js/translated/index.js:109 +#: templates/js/translated/part.js:1950 templates/js/translated/part.js:2022 +#: templates/js/translated/part.js:2330 templates/js/translated/pricing.js:369 +#: templates/js/translated/purchase_order.js:734 +#: templates/js/translated/purchase_order.js:1350 +#: templates/js/translated/purchase_order.js:1902 +#: templates/js/translated/purchase_order.js:2061 +#: templates/js/translated/return_order.js:538 +#: templates/js/translated/return_order.js:708 +#: templates/js/translated/sales_order.js:1199 +#: templates/js/translated/sales_order.js:1608 +#: templates/js/translated/sales_order.js:1813 +#: templates/js/translated/stock.js:682 templates/js/translated/stock.js:848 +#: templates/js/translated/stock.js:1065 templates/js/translated/stock.js:2083 +#: templates/js/translated/stock.js:2942 templates/js/translated/stock.js:3175 +#: templates/js/translated/stock.js:3320 +msgid "Part" +msgstr "Díl" + +#: build/api.py:662 build/models.py:88 build/templates/build/build_base.html:10 +#: build/templates/build/build_base.html:28 #: report/templates/report/inventree_build_order_report.html:105 -#: stock/serializers.py:84 templates/email/build_order_completed.html:16 +#: stock/serializers.py:85 templates/email/build_order_completed.html:16 #: templates/email/overdue_build_order.html:15 -#: templates/js/translated/build.js:1145 templates/js/translated/stock.js:2976 +#: templates/js/translated/build.js:1148 templates/js/translated/stock.js:2977 msgid "Build Order" msgstr "Vytvořit objednávku" -#: build/models.py:87 build/templates/build/build_base.html:13 +#: build/models.py:89 build/templates/build/build_base.html:14 #: build/templates/build/index.html:8 build/templates/build/index.html:12 #: order/templates/order/sales_order_detail.html:111 #: order/templates/order/so_sidebar.html:13 @@ -836,268 +907,216 @@ msgstr "Vytvořit objednávku" msgid "Build Orders" msgstr "Vytvořené objednávky" -#: build/models.py:135 +#: build/models.py:136 msgid "Assembly BOM has not been validated" msgstr "" -#: build/models.py:142 +#: build/models.py:143 msgid "Build order cannot be created for an inactive part" msgstr "" -#: build/models.py:149 +#: build/models.py:150 msgid "Build order cannot be created for an unlocked part" msgstr "" -#: build/models.py:163 +#: build/models.py:164 msgid "Invalid choice for parent build" msgstr "Neplatná volba nadřazeného sestavení" -#: build/models.py:174 order/models.py:239 +#: build/models.py:175 order/models.py:236 msgid "Responsible user or group must be specified" msgstr "Musí být specifikován odpovědný uživatel nebo skupina" -#: build/models.py:180 +#: build/models.py:181 msgid "Build order part cannot be changed" msgstr "Díly obědnávky sestavení nemohou být změněny" -#: build/models.py:241 +#: build/models.py:242 msgid "Build Order Reference" msgstr "Referenční číslo objednávky" -#: build/models.py:242 build/serializers.py:1287 order/models.py:467 -#: order/models.py:978 order/models.py:1373 order/models.py:2135 -#: part/admin.py:414 part/models.py:4280 part/templates/part/upload_bom.html:54 +#: build/models.py:243 build/serializers.py:1341 order/models.py:479 +#: order/models.py:1005 order/models.py:1390 order/models.py:2174 +#: part/admin.py:414 part/models.py:4337 part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_bill_of_materials_report.html:139 #: report/templates/report/inventree_purchase_order_report.html:28 #: report/templates/report/inventree_return_order_report.html:26 #: report/templates/report/inventree_sales_order_report.html:28 #: templates/js/translated/bom.js:770 templates/js/translated/bom.js:973 -#: templates/js/translated/build.js:1011 templates/js/translated/build.js:2685 +#: templates/js/translated/build.js:1014 templates/js/translated/build.js:2694 #: templates/js/translated/order.js:316 templates/js/translated/pricing.js:386 -#: templates/js/translated/purchase_order.js:2135 +#: templates/js/translated/purchase_order.js:2119 #: templates/js/translated/return_order.js:727 -#: templates/js/translated/sales_order.js:1854 +#: templates/js/translated/sales_order.js:1835 msgid "Reference" msgstr "Reference" -#: build/models.py:253 +#: build/models.py:254 msgid "Brief description of the build (optional)" msgstr "Stručný popis sestavení (nepovinné)" -#: build/models.py:262 +#: build/models.py:263 msgid "BuildOrder to which this build is allocated" msgstr "Příkaz sestavení pro který je toto sestavení přiděleno" -#: build/models.py:267 build/serializers.py:1278 -#: build/templates/build/build_base.html:105 -#: build/templates/build/detail.html:29 company/models.py:1046 order/api.py:767 -#: order/models.py:1503 order/models.py:1658 order/models.py:1659 -#: part/api.py:1509 part/api.py:1813 part/models.py:424 part/models.py:3126 -#: part/models.py:3270 part/models.py:3418 part/models.py:3439 -#: part/models.py:3461 part/models.py:3597 part/models.py:3937 -#: part/models.py:4100 part/models.py:4231 part/models.py:4592 -#: part/serializers.py:1192 part/serializers.py:1836 -#: part/templates/part/part_app_base.html:8 -#: part/templates/part/part_pricing.html:12 -#: part/templates/part/upload_bom.html:52 -#: report/templates/report/inventree_bill_of_materials_report.html:110 -#: report/templates/report/inventree_bill_of_materials_report.html:137 -#: report/templates/report/inventree_build_order_report.html:109 -#: report/templates/report/inventree_purchase_order_report.html:27 -#: report/templates/report/inventree_return_order_report.html:24 -#: report/templates/report/inventree_sales_order_report.html:27 -#: report/templates/report/inventree_stock_location_report.html:102 -#: stock/serializers.py:111 stock/serializers.py:159 stock/serializers.py:446 -#: stock/serializers.py:916 templates/InvenTree/search.html:82 -#: templates/email/build_order_completed.html:17 -#: templates/email/build_order_required_stock.html:17 -#: templates/email/low_stock_notification.html:15 -#: templates/email/overdue_build_order.html:16 -#: templates/js/translated/barcode.js:577 templates/js/translated/bom.js:632 -#: templates/js/translated/bom.js:769 templates/js/translated/bom.js:905 -#: templates/js/translated/build.js:1002 templates/js/translated/build.js:1485 -#: templates/js/translated/build.js:1916 templates/js/translated/build.js:2334 -#: templates/js/translated/build.js:2507 templates/js/translated/company.js:348 -#: templates/js/translated/company.js:1116 -#: templates/js/translated/company.js:1271 -#: templates/js/translated/company.js:1559 templates/js/translated/index.js:109 -#: templates/js/translated/part.js:1950 templates/js/translated/part.js:2022 -#: templates/js/translated/part.js:2330 templates/js/translated/pricing.js:369 -#: templates/js/translated/purchase_order.js:751 -#: templates/js/translated/purchase_order.js:1367 -#: templates/js/translated/purchase_order.js:1918 -#: templates/js/translated/purchase_order.js:2077 -#: templates/js/translated/return_order.js:538 -#: templates/js/translated/return_order.js:708 -#: templates/js/translated/sales_order.js:300 -#: templates/js/translated/sales_order.js:1233 -#: templates/js/translated/sales_order.js:1634 -#: templates/js/translated/sales_order.js:1832 -#: templates/js/translated/stock.js:682 templates/js/translated/stock.js:848 -#: templates/js/translated/stock.js:1065 templates/js/translated/stock.js:2082 -#: templates/js/translated/stock.js:2941 templates/js/translated/stock.js:3174 -#: templates/js/translated/stock.js:3319 -msgid "Part" -msgstr "Díl" - -#: build/models.py:275 +#: build/models.py:274 msgid "Select part to build" msgstr "Vyber téma, které chceš stavět" -#: build/models.py:280 +#: build/models.py:279 msgid "Sales Order Reference" msgstr "Referenční číslo prodejní objednávky" -#: build/models.py:284 +#: build/models.py:283 msgid "SalesOrder to which this build is allocated" msgstr "Prodejní příkaz, kterému je tato verze přidělena" -#: build/models.py:289 build/serializers.py:1048 -#: templates/js/translated/build.js:1904 -#: templates/js/translated/sales_order.js:1221 +#: build/models.py:288 build/serializers.py:1092 +#: templates/js/translated/build.js:1907 +#: templates/js/translated/sales_order.js:1187 msgid "Source Location" msgstr "Umístění lokace" -#: build/models.py:293 +#: build/models.py:292 msgid "Select location to take stock from for this build (leave blank to take from any stock location)" msgstr "Vyberte lokaci, ze které chcete provést inventuru pro sestavu. (nechte prázdné, chcete-li provést inventuru z libovolné lokace)" -#: build/models.py:298 +#: build/models.py:297 msgid "Destination Location" msgstr "Cílová lokace" -#: build/models.py:302 +#: build/models.py:301 msgid "Select location where the completed items will be stored" msgstr "Vyberte lokaci, kde budou dokončené položky uloženy" -#: build/models.py:306 +#: build/models.py:305 msgid "Build Quantity" msgstr "Množství sestav" -#: build/models.py:309 +#: build/models.py:308 msgid "Number of stock items to build" msgstr "Počet skladových položek k sestavení" -#: build/models.py:313 +#: build/models.py:312 msgid "Completed items" msgstr "Dokončené položky" -#: build/models.py:315 +#: build/models.py:314 msgid "Number of stock items which have been completed" msgstr "Počet skladových položek, které byly dokončeny" -#: build/models.py:319 +#: build/models.py:318 msgid "Build Status" msgstr "Stav sestavení" -#: build/models.py:323 +#: build/models.py:322 msgid "Build status code" msgstr "Stavový kód sestavení" -#: build/models.py:332 build/serializers.py:302 build/serializers.py:1198 -#: order/serializers.py:670 stock/models.py:859 stock/serializers.py:76 -#: stock/serializers.py:1562 templates/js/translated/purchase_order.js:1129 +#: build/models.py:331 build/serializers.py:349 build/serializers.py:1243 +#: order/serializers.py:755 stock/models.py:936 stock/serializers.py:77 +#: stock/serializers.py:1593 templates/js/translated/purchase_order.js:1112 #: templates/js/translated/stock.js:1199 msgid "Batch Code" msgstr "Kód dávky" -#: build/models.py:336 build/serializers.py:303 +#: build/models.py:335 build/serializers.py:350 msgid "Batch code for this build output" msgstr "Dávkový kód pro tento výstup sestavení" -#: build/models.py:339 order/models.py:315 order/serializers.py:126 -#: part/models.py:1229 part/templates/part/part_base.html:319 +#: build/models.py:338 order/models.py:322 order/serializers.py:157 +#: part/models.py:1290 part/templates/part/part_base.html:327 #: templates/js/translated/return_order.js:338 -#: templates/js/translated/sales_order.js:863 +#: templates/js/translated/sales_order.js:822 msgid "Creation Date" msgstr "Datum vytvoření" -#: build/models.py:343 +#: build/models.py:342 msgid "Target completion date" msgstr "Cílové datum dokončení" -#: build/models.py:344 +#: build/models.py:343 msgid "Target date for build completion. Build will be overdue after this date." msgstr "Cílové datum dokončení sestavení. Sestavení bude po tomto datu v prodlení." -#: build/models.py:347 order/models.py:526 order/models.py:2180 -#: templates/js/translated/build.js:2419 +#: build/models.py:346 order/models.py:538 order/models.py:2219 +#: templates/js/translated/build.js:2422 msgid "Completion Date" msgstr "Datum dokončení" -#: build/models.py:353 +#: build/models.py:352 msgid "completed by" msgstr "dokončil" -#: build/models.py:361 templates/js/translated/build.js:2379 +#: build/models.py:360 templates/js/translated/build.js:2382 msgid "Issued by" msgstr "Vystavil" -#: build/models.py:362 +#: build/models.py:361 msgid "User who issued this build order" msgstr "Uživatel, který vydal tento příkaz k sestavení" -#: build/models.py:370 build/templates/build/build_base.html:212 -#: build/templates/build/detail.html:122 common/models.py:165 order/api.py:142 -#: order/models.py:333 order/templates/order/order_base.html:222 -#: order/templates/order/return_order_base.html:191 -#: order/templates/order/sales_order_base.html:235 part/models.py:1246 -#: part/templates/part/part_base.html:399 +#: build/models.py:369 build/templates/build/build_base.html:213 +#: build/templates/build/detail.html:122 common/models.py:168 order/api.py:140 +#: order/models.py:340 order/templates/order/order_base.html:231 +#: order/templates/order/return_order_base.html:192 +#: order/templates/order/sales_order_base.html:236 part/models.py:1307 +#: part/templates/part/part_base.html:407 #: report/templates/report/inventree_build_order_report.html:158 #: templates/InvenTree/settings/settings_staff_js.html:150 -#: templates/js/translated/build.js:2391 -#: templates/js/translated/purchase_order.js:1833 +#: templates/js/translated/build.js:2394 +#: templates/js/translated/purchase_order.js:1817 #: templates/js/translated/return_order.js:358 #: templates/js/translated/table_filters.js:551 msgid "Responsible" msgstr "Odpovědný" -#: build/models.py:371 +#: build/models.py:370 msgid "User or group responsible for this build order" msgstr "Uživatel nebo skupina odpovědná za tento příkaz k sestavení" -#: build/models.py:376 build/templates/build/detail.html:108 +#: build/models.py:375 build/templates/build/detail.html:108 #: company/templates/company/manufacturer_part.html:107 -#: company/templates/company/supplier_part.html:194 -#: order/templates/order/order_base.html:172 -#: order/templates/order/return_order_base.html:148 -#: order/templates/order/sales_order_base.html:187 -#: part/templates/part/part_base.html:392 stock/models.py:855 -#: stock/templates/stock/item_base.html:200 -#: templates/js/translated/company.js:1019 +#: company/templates/company/supplier_part.html:195 +#: order/templates/order/order_base.html:181 +#: order/templates/order/return_order_base.html:149 +#: order/templates/order/sales_order_base.html:188 +#: part/templates/part/part_base.html:400 stock/models.py:932 +#: stock/templates/stock/item_base.html:197 +#: templates/js/translated/company.js:1020 msgid "External Link" msgstr "Externí odkaz" -#: build/models.py:377 common/models.py:3273 part/models.py:1058 -#: stock/models.py:855 +#: build/models.py:376 common/models.py:3334 part/models.py:1119 +#: stock/models.py:932 msgid "Link to external URL" msgstr "Odkaz na externí URL" -#: build/models.py:381 +#: build/models.py:380 msgid "Build Priority" msgstr "Priorita sestavení" -#: build/models.py:384 +#: build/models.py:383 msgid "Priority of this build order" msgstr "Priorita tohoto příkazu k sestavení" -#: build/models.py:391 common/models.py:135 common/models.py:149 -#: order/admin.py:18 order/api.py:128 order/models.py:297 +#: build/models.py:390 common/models.py:138 common/models.py:152 +#: order/admin.py:18 order/api.py:126 order/models.py:304 #: templates/InvenTree/settings/settings_staff_js.html:146 -#: templates/js/translated/build.js:2316 -#: templates/js/translated/purchase_order.js:1780 +#: templates/js/translated/build.js:2319 +#: templates/js/translated/purchase_order.js:1764 #: templates/js/translated/return_order.js:317 -#: templates/js/translated/sales_order.js:842 +#: templates/js/translated/sales_order.js:801 #: templates/js/translated/table_filters.js:47 #: templates/project_code_data.html:6 msgid "Project Code" msgstr "Kód projektu" -#: build/models.py:392 +#: build/models.py:391 msgid "Project code for this build order" msgstr "Kód projektu pro objednávku sestavení" -#: build/models.py:651 build/models.py:778 +#: build/models.py:651 build/models.py:779 msgid "Failed to offload task to complete build allocations" msgstr "Nepodařilo se uvolnit úlohu pro dokončení přidělení sestavy" @@ -1110,610 +1129,619 @@ msgstr "Příkaz k sestavení {build} byl dokončen" msgid "A build order has been completed" msgstr "Příkaz k sestavení byl dokončen" -#: build/models.py:967 build/models.py:1055 +#: build/models.py:858 build/serializers.py:393 +msgid "Serial numbers must be provided for trackable parts" +msgstr "U sledovatelných dílů musí být uvedena sériová čísla" + +#: build/models.py:969 build/models.py:1058 msgid "No build output specified" msgstr "Nebyl specifikováno žádný výstup sestavení" -#: build/models.py:970 +#: build/models.py:972 msgid "Build output is already completed" msgstr "Výstup sestavení je již dokončen" -#: build/models.py:973 +#: build/models.py:975 msgid "Build output does not match Build Order" msgstr "Výstup sestavení neodpovídá příkazu sestavení" -#: build/models.py:1059 build/serializers.py:235 build/serializers.py:284 -#: build/serializers.py:915 order/models.py:564 order/serializers.py:499 -#: order/serializers.py:665 part/serializers.py:1569 part/serializers.py:1999 -#: stock/models.py:700 stock/models.py:1520 stock/serializers.py:669 +#: build/models.py:1062 build/serializers.py:282 build/serializers.py:331 +#: build/serializers.py:959 order/models.py:586 order/serializers.py:584 +#: order/serializers.py:750 part/serializers.py:1627 part/serializers.py:2060 +#: stock/models.py:777 stock/models.py:1609 stock/serializers.py:696 msgid "Quantity must be greater than zero" msgstr "Množství musí být vyšší než nula" -#: build/models.py:1064 build/serializers.py:240 +#: build/models.py:1067 build/serializers.py:287 msgid "Quantity cannot be greater than the output quantity" msgstr "Množství nemůže být větší než výstupní množství" -#: build/models.py:1124 build/serializers.py:563 +#: build/models.py:1127 build/serializers.py:607 #, python-brace-format msgid "Build output {serial} has not passed all required tests" msgstr "Výstup sestavy {serial} neprošel všemi požadavky" -#: build/models.py:1465 +#: build/models.py:1482 msgid "Build Order Line Item" msgstr "Vytvořit položku řádku objednávky" -#: build/models.py:1490 +#: build/models.py:1507 msgid "Build object" msgstr "Vytvořit objekt" -#: build/models.py:1504 build/models.py:1760 build/serializers.py:222 -#: build/serializers.py:269 build/serializers.py:1295 -#: build/templates/build/build_base.html:110 -#: build/templates/build/detail.html:34 common/models.py:2579 -#: order/models.py:1356 order/models.py:2041 order/serializers.py:1460 +#: build/models.py:1521 build/models.py:1787 build/serializers.py:269 +#: build/serializers.py:316 build/serializers.py:1349 +#: build/templates/build/build_base.html:111 +#: build/templates/build/detail.html:34 common/models.py:2643 +#: order/models.py:1373 order/models.py:2074 order/serializers.py:1586 #: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:413 -#: part/forms.py:48 part/models.py:3284 part/models.py:4253 -#: part/templates/part/part_pricing.html:16 +#: part/forms.py:48 part/models.py:3335 part/models.py:4310 +#: part/serializers.py:265 part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_bill_of_materials_report.html:138 #: report/templates/report/inventree_build_order_report.html:113 #: report/templates/report/inventree_purchase_order_report.html:29 #: report/templates/report/inventree_sales_order_report.html:29 +#: report/templates/report/inventree_sales_order_shipment_report.html:47 +#: report/templates/report/inventree_sales_order_shipment_report.html:49 #: report/templates/report/inventree_stock_location_report.html:104 #: report/templates/report/inventree_test_report.html:90 -#: report/templates/report/inventree_test_report.html:169 stock/admin.py:159 -#: stock/serializers.py:127 stock/serializers.py:167 stock/serializers.py:660 -#: stock/templates/stock/item_base.html:287 -#: stock/templates/stock/item_base.html:295 -#: stock/templates/stock/item_base.html:342 +#: report/templates/report/inventree_test_report.html:169 stock/admin.py:160 +#: stock/serializers.py:128 stock/serializers.py:168 stock/serializers.py:687 +#: stock/templates/stock/item_base.html:284 +#: stock/templates/stock/item_base.html:292 +#: stock/templates/stock/item_base.html:339 #: templates/email/build_order_completed.html:18 #: templates/js/translated/barcode.js:579 templates/js/translated/bom.js:771 -#: templates/js/translated/bom.js:981 templates/js/translated/build.js:522 -#: templates/js/translated/build.js:737 templates/js/translated/build.js:1542 -#: templates/js/translated/build.js:1919 templates/js/translated/build.js:2529 -#: templates/js/translated/company.js:1818 -#: templates/js/translated/model_renderers.js:237 +#: templates/js/translated/bom.js:981 templates/js/translated/build.js:525 +#: templates/js/translated/build.js:740 templates/js/translated/build.js:1545 +#: templates/js/translated/build.js:1922 templates/js/translated/build.js:2536 +#: templates/js/translated/company.js:1819 +#: templates/js/translated/model_renderers.js:240 #: templates/js/translated/order.js:329 templates/js/translated/part.js:968 -#: templates/js/translated/part.js:1818 templates/js/translated/part.js:3360 +#: templates/js/translated/part.js:1818 templates/js/translated/part.js:3376 #: templates/js/translated/pricing.js:381 #: templates/js/translated/pricing.js:474 #: templates/js/translated/pricing.js:522 #: templates/js/translated/pricing.js:616 -#: templates/js/translated/purchase_order.js:754 -#: templates/js/translated/purchase_order.js:1922 -#: templates/js/translated/purchase_order.js:2141 -#: templates/js/translated/sales_order.js:317 -#: templates/js/translated/sales_order.js:1235 -#: templates/js/translated/sales_order.js:1554 -#: templates/js/translated/sales_order.js:1644 -#: templates/js/translated/sales_order.js:1734 -#: templates/js/translated/sales_order.js:1860 +#: templates/js/translated/purchase_order.js:737 +#: templates/js/translated/purchase_order.js:1906 +#: templates/js/translated/purchase_order.js:2125 +#: templates/js/translated/sales_order.js:1201 +#: templates/js/translated/sales_order.js:1520 +#: templates/js/translated/sales_order.js:1625 +#: templates/js/translated/sales_order.js:1715 +#: templates/js/translated/sales_order.js:1841 #: templates/js/translated/stock.js:570 templates/js/translated/stock.js:708 -#: templates/js/translated/stock.js:879 templates/js/translated/stock.js:3105 -#: templates/js/translated/stock.js:3188 +#: templates/js/translated/stock.js:879 templates/js/translated/stock.js:3106 +#: templates/js/translated/stock.js:3189 msgid "Quantity" msgstr "Množství" -#: build/models.py:1505 +#: build/models.py:1522 msgid "Required quantity for build order" msgstr "Vyžadované množství pro objednávku" -#: build/models.py:1585 +#: build/models.py:1602 msgid "Build item must specify a build output, as master part is marked as trackable" msgstr "Položka sestavení musí specifikovat výstup sestavení, protože hlavní díl je označen jako sledovatelný" -#: build/models.py:1594 +#: build/models.py:1611 #, python-brace-format msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgstr "Zabrané množství ({q}) nesmí překročit dostupné skladové množství ({a})" -#: build/models.py:1604 order/models.py:1992 +#: build/models.py:1628 order/models.py:2025 msgid "Stock item is over-allocated" msgstr "Skladová položka je nadměrně zabrána" -#: build/models.py:1610 order/models.py:1995 +#: build/models.py:1634 order/models.py:2028 msgid "Allocation quantity must be greater than zero" msgstr "Zabrané množství musí být větší než nula" -#: build/models.py:1616 +#: build/models.py:1640 msgid "Quantity must be 1 for serialized stock" msgstr "Množství musí být 1 pro zřetězený sklad" -#: build/models.py:1675 +#: build/models.py:1699 msgid "Selected stock item does not match BOM line" msgstr "Vybraná položka zásob neodpovídá řádku BOM" -#: build/models.py:1747 build/serializers.py:895 order/serializers.py:1297 -#: order/serializers.py:1318 stock/models.py:376 stock/serializers.py:93 -#: stock/serializers.py:763 stock/serializers.py:1281 stock/serializers.py:1393 -#: stock/templates/stock/item_base.html:10 -#: stock/templates/stock/item_base.html:23 -#: stock/templates/stock/item_base.html:194 -#: templates/js/translated/build.js:1918 -#: templates/js/translated/sales_order.js:301 -#: templates/js/translated/sales_order.js:1234 -#: templates/js/translated/sales_order.js:1535 -#: templates/js/translated/sales_order.js:1540 -#: templates/js/translated/sales_order.js:1641 -#: templates/js/translated/sales_order.js:1728 +#: build/models.py:1774 build/serializers.py:939 order/serializers.py:1423 +#: order/serializers.py:1444 +#: report/templates/report/inventree_sales_order_shipment_report.html:29 +#: stock/models.py:382 stock/serializers.py:94 stock/serializers.py:794 +#: stock/serializers.py:1312 stock/serializers.py:1424 +#: stock/templates/stock/item_base.html:11 +#: stock/templates/stock/item_base.html:24 +#: stock/templates/stock/item_base.html:191 +#: templates/js/translated/build.js:1921 +#: templates/js/translated/sales_order.js:1200 +#: templates/js/translated/sales_order.js:1501 +#: templates/js/translated/sales_order.js:1506 +#: templates/js/translated/sales_order.js:1622 +#: templates/js/translated/sales_order.js:1709 #: templates/js/translated/stock.js:683 templates/js/translated/stock.js:849 -#: templates/js/translated/stock.js:3061 +#: templates/js/translated/stock.js:3062 msgid "Stock Item" msgstr "Skladové položky" -#: build/models.py:1748 +#: build/models.py:1775 msgid "Source stock item" msgstr "Zdrojová skladová položka" -#: build/models.py:1761 +#: build/models.py:1788 msgid "Stock quantity to allocate to build" msgstr "Skladové množství pro sestavení" -#: build/models.py:1769 +#: build/models.py:1796 msgid "Install into" msgstr "Instalovat do" -#: build/models.py:1770 +#: build/models.py:1797 msgid "Destination stock item" msgstr "Cílová skladová položka" -#: build/serializers.py:91 +#: build/serializers.py:108 msgid "Build Level" msgstr "" -#: build/serializers.py:99 build/serializers.py:1190 build/serializers.py:1279 -#: part/admin.py:41 part/admin.py:408 part/models.py:4102 part/stocktake.py:219 -#: stock/admin.py:156 +#: build/serializers.py:116 build/serializers.py:1235 build/serializers.py:1331 +#: part/admin.py:41 part/admin.py:408 part/models.py:4160 part/stocktake.py:219 +#: stock/admin.py:157 msgid "Part Name" msgstr "Název dílu" -#: build/serializers.py:111 +#: build/serializers.py:128 msgid "Project Code Label" msgstr "" -#: build/serializers.py:172 build/serializers.py:924 -#: templates/js/translated/build.js:1042 templates/js/translated/build.js:1495 +#: build/serializers.py:134 +msgid "Create Child Builds" +msgstr "" + +#: build/serializers.py:135 +msgid "Automatically generate child build orders" +msgstr "" + +#: build/serializers.py:219 build/serializers.py:968 +#: templates/js/translated/build.js:1045 templates/js/translated/build.js:1498 msgid "Build Output" msgstr "Vytvořit výstup" -#: build/serializers.py:184 +#: build/serializers.py:231 msgid "Build output does not match the parent build" msgstr "Vytvořený výstup neodpovídá nadřazenému sestavení" -#: build/serializers.py:188 +#: build/serializers.py:235 msgid "Output part does not match BuildOrder part" msgstr "Výstupní část se neshoduje s částí příkazu sestavení" -#: build/serializers.py:192 +#: build/serializers.py:239 msgid "This build output has already been completed" msgstr "Výstup sestavení je již dokončen" -#: build/serializers.py:203 +#: build/serializers.py:250 msgid "This build output is not fully allocated" msgstr "Tento stavební výstup není plně přiřazen" -#: build/serializers.py:223 build/serializers.py:270 +#: build/serializers.py:270 build/serializers.py:317 msgid "Enter quantity for build output" msgstr "Zadejte množství pro výstup sestavení" -#: build/serializers.py:291 +#: build/serializers.py:338 msgid "Integer quantity required for trackable parts" msgstr "Celé množství požadované pro sledovatelné díly" -#: build/serializers.py:294 +#: build/serializers.py:341 msgid "Integer quantity required, as the bill of materials contains trackable parts" msgstr "Je vyžadována celočíselná hodnota množství, protože kusovník obsahuje sledovatelné díly" -#: build/serializers.py:309 order/serializers.py:678 order/serializers.py:1464 -#: stock/serializers.py:680 templates/js/translated/purchase_order.js:1154 +#: build/serializers.py:356 order/serializers.py:763 order/serializers.py:1590 +#: stock/serializers.py:707 templates/js/translated/purchase_order.js:1137 #: templates/js/translated/stock.js:373 templates/js/translated/stock.js:571 msgid "Serial Numbers" msgstr "Sériová čísla" -#: build/serializers.py:310 +#: build/serializers.py:357 msgid "Enter serial numbers for build outputs" msgstr "Zadejte sériová čísla pro sestavení výstupů" -#: build/serializers.py:315 build/serializers.py:456 build/serializers.py:528 -#: order/serializers.py:654 order/serializers.py:778 order/serializers.py:1781 -#: part/serializers.py:1212 stock/serializers.py:102 stock/serializers.py:691 -#: stock/serializers.py:851 stock/serializers.py:977 stock/serializers.py:1425 -#: stock/serializers.py:1681 stock/templates/stock/item_base.html:394 +#: build/serializers.py:362 build/serializers.py:500 build/serializers.py:572 +#: order/serializers.py:739 order/serializers.py:880 order/serializers.py:1933 +#: part/serializers.py:1265 stock/serializers.py:103 stock/serializers.py:718 +#: stock/serializers.py:882 stock/serializers.py:1008 stock/serializers.py:1456 +#: stock/serializers.py:1712 stock/templates/stock/item_base.html:391 #: templates/js/translated/barcode.js:578 -#: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1032 -#: templates/js/translated/build.js:1174 templates/js/translated/build.js:2544 -#: templates/js/translated/purchase_order.js:1210 -#: templates/js/translated/purchase_order.js:1320 -#: templates/js/translated/sales_order.js:1547 -#: templates/js/translated/sales_order.js:1655 -#: templates/js/translated/sales_order.js:1663 -#: templates/js/translated/sales_order.js:1742 +#: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1035 +#: templates/js/translated/build.js:1177 templates/js/translated/build.js:2551 +#: templates/js/translated/purchase_order.js:1193 +#: templates/js/translated/purchase_order.js:1303 +#: templates/js/translated/sales_order.js:1513 +#: templates/js/translated/sales_order.js:1636 +#: templates/js/translated/sales_order.js:1644 +#: templates/js/translated/sales_order.js:1723 #: templates/js/translated/stock.js:684 templates/js/translated/stock.js:850 -#: templates/js/translated/stock.js:1067 templates/js/translated/stock.js:2286 -#: templates/js/translated/stock.js:2955 +#: templates/js/translated/stock.js:1067 templates/js/translated/stock.js:2287 +#: templates/js/translated/stock.js:2956 msgid "Location" msgstr "Lokace" -#: build/serializers.py:316 +#: build/serializers.py:363 msgid "Stock location for build output" msgstr "Skladové umístění pro výstup sestavy" -#: build/serializers.py:330 +#: build/serializers.py:377 msgid "Auto Allocate Serial Numbers" msgstr "Automaticky zvolit sériová čísla" -#: build/serializers.py:331 +#: build/serializers.py:378 msgid "Automatically allocate required items with matching serial numbers" msgstr "Automaticky přidělit požadované položky s odpovídajícími sériovými čísly" -#: build/serializers.py:346 -msgid "Serial numbers must be provided for trackable parts" -msgstr "U sledovatelných dílů musí být uvedena sériová čísla" - -#: build/serializers.py:371 stock/api.py:1031 +#: build/serializers.py:415 order/serializers.py:858 stock/api.py:1017 +#: stock/models.py:1632 msgid "The following serial numbers already exist or are invalid" msgstr "Následující sériová čísla již existují nebo jsou neplatná" -#: build/serializers.py:418 build/serializers.py:480 build/serializers.py:569 +#: build/serializers.py:462 build/serializers.py:524 build/serializers.py:613 msgid "A list of build outputs must be provided" msgstr "Musí být uveden seznam výstupů sestavy" -#: build/serializers.py:457 +#: build/serializers.py:501 msgid "Stock location for scrapped outputs" msgstr "Umístění zásob pro seškrábnuté výstupy" -#: build/serializers.py:463 +#: build/serializers.py:507 msgid "Discard Allocations" msgstr "Zahodit alokace" -#: build/serializers.py:464 +#: build/serializers.py:508 msgid "Discard any stock allocations for scrapped outputs" msgstr "Vyřadit všechny přidělené zásoby pro vyřazené výstupy" -#: build/serializers.py:469 +#: build/serializers.py:513 msgid "Reason for scrapping build output(s)" msgstr "Důvod vyřazení výstupu(ů) sestavy" -#: build/serializers.py:529 +#: build/serializers.py:573 msgid "Location for completed build outputs" msgstr "Umístění dokončených výstupů sestavy" -#: build/serializers.py:535 build/templates/build/build_base.html:159 -#: build/templates/build/detail.html:62 order/models.py:476 -#: order/models.py:1002 order/models.py:2159 order/serializers.py:686 -#: stock/admin.py:164 stock/serializers.py:1028 stock/serializers.py:1569 -#: stock/templates/stock/item_base.html:427 -#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2363 -#: templates/js/translated/purchase_order.js:1371 -#: templates/js/translated/purchase_order.js:1792 +#: build/serializers.py:579 build/templates/build/build_base.html:160 +#: build/templates/build/detail.html:62 order/models.py:488 +#: order/models.py:1029 order/models.py:2198 order/serializers.py:771 +#: stock/admin.py:165 stock/serializers.py:581 stock/serializers.py:1059 +#: stock/serializers.py:1600 stock/templates/stock/item_base.html:424 +#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2366 +#: templates/js/translated/purchase_order.js:1354 +#: templates/js/translated/purchase_order.js:1776 #: templates/js/translated/return_order.js:330 -#: templates/js/translated/sales_order.js:855 -#: templates/js/translated/stock.js:2261 templates/js/translated/stock.js:3079 -#: templates/js/translated/stock.js:3204 +#: templates/js/translated/sales_order.js:814 +#: templates/js/translated/stock.js:2262 templates/js/translated/stock.js:3080 +#: templates/js/translated/stock.js:3205 msgid "Status" msgstr "Stav" -#: build/serializers.py:541 +#: build/serializers.py:585 msgid "Accept Incomplete Allocation" msgstr "Přijmout neúplné přidělení" -#: build/serializers.py:542 +#: build/serializers.py:586 msgid "Complete outputs if stock has not been fully allocated" msgstr "Dokončit výstupy pokud zásoby nebyly plně přiděleny" -#: build/serializers.py:654 +#: build/serializers.py:698 msgid "Consume Allocated Stock" msgstr "Spotřebovat přidělené zásoby" -#: build/serializers.py:655 +#: build/serializers.py:699 msgid "Consume any stock which has already been allocated to this build" msgstr "Spotřebovat všechny zásoby, které již byly přiděleny této sestavě" -#: build/serializers.py:661 +#: build/serializers.py:705 msgid "Remove Incomplete Outputs" msgstr "Odstranit neúplné výstupy" -#: build/serializers.py:662 +#: build/serializers.py:706 msgid "Delete any build outputs which have not been completed" msgstr "Odstranit všechny výstupy sestavy, které nebyly dokončeny" -#: build/serializers.py:689 +#: build/serializers.py:733 msgid "Not permitted" msgstr "Není povoleno" -#: build/serializers.py:690 +#: build/serializers.py:734 msgid "Accept as consumed by this build order" msgstr "Přijmout jako spotřebované touto objednávkou sestavy" -#: build/serializers.py:691 +#: build/serializers.py:735 msgid "Deallocate before completing this build order" msgstr "Uvolnit před dokončením této objednávky sestavy" -#: build/serializers.py:721 +#: build/serializers.py:765 msgid "Overallocated Stock" msgstr "Nadměrně přidělené zásoby" -#: build/serializers.py:723 +#: build/serializers.py:767 msgid "How do you want to handle extra stock items assigned to the build order" msgstr "Jak chcete zacházet s extra skladovými položkami přiřazenými k objednávce na sestavu" -#: build/serializers.py:733 +#: build/serializers.py:777 msgid "Some stock items have been overallocated" msgstr "Některé skladové položky byly nadměrně přiděleny" -#: build/serializers.py:738 +#: build/serializers.py:782 msgid "Accept Unallocated" msgstr "Přijmout nepřidělené" -#: build/serializers.py:739 +#: build/serializers.py:783 msgid "Accept that stock items have not been fully allocated to this build order" msgstr "Přijmout, že skladové položky nebyly plně přiřazeny k této objednávce sestavy" -#: build/serializers.py:749 templates/js/translated/build.js:316 +#: build/serializers.py:793 templates/js/translated/build.js:319 msgid "Required stock has not been fully allocated" msgstr "Požadované zásoby nebyly plně přiděleny" -#: build/serializers.py:754 order/serializers.py:345 order/serializers.py:1365 +#: build/serializers.py:798 order/serializers.py:430 order/serializers.py:1491 msgid "Accept Incomplete" msgstr "Přijmout neúplné" -#: build/serializers.py:755 +#: build/serializers.py:799 msgid "Accept that the required number of build outputs have not been completed" msgstr "Přijmout, že nebyl dokončen požadovaný počet výstupů sestavy" -#: build/serializers.py:765 templates/js/translated/build.js:320 +#: build/serializers.py:809 templates/js/translated/build.js:323 msgid "Required build quantity has not been completed" msgstr "Požadované množství sestavy nebylo dokončeno" -#: build/serializers.py:774 +#: build/serializers.py:818 msgid "Build order has open child build orders" msgstr "" -#: build/serializers.py:777 +#: build/serializers.py:821 msgid "Build order must be in production state" msgstr "" -#: build/serializers.py:780 templates/js/translated/build.js:304 +#: build/serializers.py:824 templates/js/translated/build.js:307 msgid "Build order has incomplete outputs" msgstr "Objednávka sestavy má neúplné výstupy" -#: build/serializers.py:818 +#: build/serializers.py:862 msgid "Build Line" msgstr "Linka sestavy" -#: build/serializers.py:828 +#: build/serializers.py:872 msgid "Build output" msgstr "Výstup sestavy" -#: build/serializers.py:836 +#: build/serializers.py:880 msgid "Build output must point to the same build" msgstr "Výstup sestavy musí odkazovat na stejnou sestavu" -#: build/serializers.py:872 +#: build/serializers.py:916 msgid "Build Line Item" msgstr "Řádková položka sestavy" -#: build/serializers.py:886 +#: build/serializers.py:930 msgid "bom_item.part must point to the same part as the build order" msgstr "bom_item.part musí ukazovat na stejný díl jako objednávka sestavy" -#: build/serializers.py:901 stock/serializers.py:1294 +#: build/serializers.py:945 stock/serializers.py:1325 msgid "Item must be in stock" msgstr "Položka musí být skladem" -#: build/serializers.py:949 order/serializers.py:1351 +#: build/serializers.py:993 order/serializers.py:1477 #, python-brace-format msgid "Available quantity ({q}) exceeded" msgstr "Dostupné množství ({q}) překročeno" -#: build/serializers.py:955 +#: build/serializers.py:999 msgid "Build output must be specified for allocation of tracked parts" msgstr "Pro přidělení sledovaných dílů musí být zadán výstup sestavy" -#: build/serializers.py:962 +#: build/serializers.py:1006 msgid "Build output cannot be specified for allocation of untracked parts" msgstr "Výstup sestavy nelze zadat pro přidělení nesledovaných dílů" -#: build/serializers.py:986 order/serializers.py:1610 +#: build/serializers.py:1030 order/serializers.py:1750 msgid "Allocation items must be provided" msgstr "Položky přidělení musí být poskytnuty" -#: build/serializers.py:1049 +#: build/serializers.py:1093 msgid "Stock location where parts are to be sourced (leave blank to take from any location)" msgstr "Skladové místo, odkud se mají díly odebírat (ponechte prázdné, pokud chcete odebírat z libovolného místa)" -#: build/serializers.py:1057 +#: build/serializers.py:1101 msgid "Exclude Location" msgstr "Vynechat lokace" -#: build/serializers.py:1058 +#: build/serializers.py:1102 msgid "Exclude stock items from this selected location" msgstr "Vyloučit skladové položky z tohoto vybraného umístění" -#: build/serializers.py:1063 +#: build/serializers.py:1107 msgid "Interchangeable Stock" msgstr "Zaměnitelné zásoby" -#: build/serializers.py:1064 +#: build/serializers.py:1108 msgid "Stock items in multiple locations can be used interchangeably" msgstr "Skladové položky na více místech lze používat zaměnitelně" -#: build/serializers.py:1069 +#: build/serializers.py:1113 msgid "Substitute Stock" msgstr "Náhradní zásoby" -#: build/serializers.py:1070 +#: build/serializers.py:1114 msgid "Allow allocation of substitute parts" msgstr "Povolit přidělování náhradních dílů" -#: build/serializers.py:1075 +#: build/serializers.py:1119 msgid "Optional Items" msgstr "Volitelné položky" -#: build/serializers.py:1076 +#: build/serializers.py:1120 msgid "Allocate optional BOM items to build order" msgstr "Přiřazení volitelných BOM položek k objednávce sestavy" -#: build/serializers.py:1098 +#: build/serializers.py:1143 msgid "Failed to start auto-allocation task" msgstr "Nepodařilo se spustit úlohu automatického přidělování" -#: build/serializers.py:1181 +#: build/serializers.py:1226 stock/serializers.py:585 msgid "Supplier Part Number" msgstr "" -#: build/serializers.py:1182 company/models.py:506 +#: build/serializers.py:1227 company/models.py:503 stock/serializers.py:591 msgid "Manufacturer Part Number" msgstr "Číslo dílu výrobce" -#: build/serializers.py:1183 stock/admin.py:53 stock/admin.py:175 -#: stock/serializers.py:457 +#: build/serializers.py:1228 stock/admin.py:53 stock/admin.py:176 +#: stock/serializers.py:467 msgid "Location Name" msgstr "" -#: build/serializers.py:1184 +#: build/serializers.py:1229 build/serializers.py:1327 msgid "Build Reference" msgstr "" -#: build/serializers.py:1185 +#: build/serializers.py:1230 msgid "BOM Reference" msgstr "" -#: build/serializers.py:1186 company/models.py:852 -#: company/templates/company/supplier_part.html:160 order/serializers.py:690 -#: stock/admin.py:228 stock/models.py:818 stock/serializers.py:1579 -#: stock/templates/stock/item_base.html:240 -#: templates/js/translated/company.js:1646 -#: templates/js/translated/purchase_order.js:1169 -#: templates/js/translated/purchase_order.js:1332 +#: build/serializers.py:1231 company/models.py:849 +#: company/templates/company/supplier_part.html:161 order/serializers.py:775 +#: stock/admin.py:229 stock/models.py:895 stock/serializers.py:1610 +#: stock/templates/stock/item_base.html:237 +#: templates/js/translated/company.js:1647 +#: templates/js/translated/purchase_order.js:1152 +#: templates/js/translated/purchase_order.js:1315 #: templates/js/translated/stock.js:1214 templates/js/translated/stock.js:1246 -#: templates/js/translated/stock.js:2509 +#: templates/js/translated/stock.js:2510 msgid "Packaging" msgstr "Balení" -#: build/serializers.py:1189 part/admin.py:39 part/admin.py:398 -#: part/models.py:4101 part/stocktake.py:218 stock/admin.py:152 +#: build/serializers.py:1234 part/admin.py:39 part/admin.py:398 +#: part/models.py:4159 part/stocktake.py:218 stock/admin.py:153 msgid "Part ID" msgstr "ID dílu" -#: build/serializers.py:1191 build/serializers.py:1280 part/admin.py:402 -#: part/models.py:4103 +#: build/serializers.py:1236 build/serializers.py:1332 part/admin.py:402 +#: part/models.py:4161 msgid "Part IPN" msgstr "IPN dílu" -#: build/serializers.py:1192 build/serializers.py:1282 part/admin.py:45 +#: build/serializers.py:1237 build/serializers.py:1334 part/admin.py:45 #: part/stocktake.py:220 msgid "Part Description" msgstr "Popis dílu" -#: build/serializers.py:1195 +#: build/serializers.py:1240 msgid "BOM Part ID" msgstr "" -#: build/serializers.py:1196 +#: build/serializers.py:1241 msgid "BOM Part Name" msgstr "" -#: build/serializers.py:1199 +#: build/serializers.py:1244 #: report/templates/report/inventree_return_order_report.html:25 -#: report/templates/report/inventree_test_report.html:88 stock/models.py:845 -#: stock/serializers.py:151 stock/templates/stock/item_base.html:311 -#: templates/js/translated/build.js:520 templates/js/translated/build.js:1540 -#: templates/js/translated/build.js:2527 -#: templates/js/translated/model_renderers.js:231 +#: report/templates/report/inventree_sales_order_shipment_report.html:45 +#: report/templates/report/inventree_test_report.html:88 stock/models.py:922 +#: stock/serializers.py:152 stock/templates/stock/item_base.html:308 +#: templates/js/translated/build.js:523 templates/js/translated/build.js:1543 +#: templates/js/translated/build.js:2534 +#: templates/js/translated/model_renderers.js:234 #: templates/js/translated/return_order.js:539 #: templates/js/translated/return_order.js:722 -#: templates/js/translated/sales_order.js:315 -#: templates/js/translated/sales_order.js:1647 -#: templates/js/translated/sales_order.js:1732 +#: templates/js/translated/sales_order.js:1628 +#: templates/js/translated/sales_order.js:1713 #: templates/js/translated/stock.js:602 msgid "Serial Number" msgstr "" -#: build/serializers.py:1212 stock/serializers.py:593 -#: templates/js/translated/build.js:1017 templates/js/translated/build.js:1164 -#: templates/js/translated/build.js:2516 +#: build/serializers.py:1257 stock/serializers.py:620 +#: templates/js/translated/build.js:1020 templates/js/translated/build.js:1167 +#: templates/js/translated/build.js:2523 msgid "Allocated Quantity" msgstr "" -#: build/serializers.py:1213 stock/templates/stock/item_base.html:340 +#: build/serializers.py:1258 stock/templates/stock/item_base.html:337 msgid "Available Quantity" msgstr "" -#: build/serializers.py:1283 +#: build/serializers.py:1335 msgid "Part Category ID" msgstr "" -#: build/serializers.py:1284 +#: build/serializers.py:1336 msgid "Part Category Name" msgstr "" -#: build/serializers.py:1291 common/models.py:1513 part/admin.py:113 -#: part/models.py:1166 templates/js/translated/table_filters.js:150 +#: build/serializers.py:1345 common/models.py:1582 part/admin.py:113 +#: part/models.py:1227 templates/js/translated/build.js:2738 +#: templates/js/translated/table_filters.js:150 #: templates/js/translated/table_filters.js:230 #: templates/js/translated/table_filters.js:783 msgid "Trackable" msgstr "Sledovatelné" -#: build/serializers.py:1292 +#: build/serializers.py:1346 msgid "Inherited" msgstr "" -#: build/serializers.py:1293 part/models.py:4313 +#: build/serializers.py:1347 part/models.py:4370 #: part/templates/part/upload_bom.html:56 templates/js/translated/bom.js:1046 -#: templates/js/translated/build.js:2711 +#: templates/js/translated/build.js:2720 msgid "Allow Variants" msgstr "" -#: build/serializers.py:1297 part/models.py:4110 part/models.py:4584 +#: build/serializers.py:1351 part/models.py:4168 part/models.py:4646 #: stock/api.py:794 msgid "BOM Item" msgstr "BOM Položka" -#: build/serializers.py:1306 build/templates/build/detail.html:236 +#: build/serializers.py:1370 build/templates/build/detail.html:236 #: build/templates/build/sidebar.html:16 templates/js/translated/index.js:130 msgid "Allocated Stock" msgstr "Přidělené zásoby" -#: build/serializers.py:1311 order/serializers.py:1175 part/admin.py:132 -#: part/bom.py:181 part/serializers.py:899 part/serializers.py:1602 -#: part/templates/part/part_base.html:210 templates/js/translated/bom.js:1208 -#: templates/js/translated/build.js:2804 templates/js/translated/part.js:712 +#: build/serializers.py:1375 order/serializers.py:1209 part/admin.py:132 +#: part/bom.py:186 part/serializers.py:951 part/serializers.py:1660 +#: part/templates/part/part_base.html:211 templates/js/translated/bom.js:1208 +#: templates/js/translated/build.js:2822 templates/js/translated/part.js:712 #: templates/js/translated/part.js:2155 #: templates/js/translated/table_filters.js:177 msgid "On Order" msgstr "Na objednávku" -#: build/serializers.py:1316 order/serializers.py:1176 part/serializers.py:1604 -#: templates/js/translated/build.js:2808 +#: build/serializers.py:1380 order/serializers.py:1210 part/serializers.py:1662 +#: templates/js/translated/build.js:2826 #: templates/js/translated/table_filters.js:367 msgid "In Production" msgstr "Ve výrobě" -#: build/serializers.py:1321 part/bom.py:180 part/serializers.py:1629 -#: part/templates/part/part_base.html:192 -#: templates/js/translated/sales_order.js:1929 -msgid "Available Stock" -msgstr "Dostupné zásoby" - -#: build/serializers.py:1325 -msgid "Available Substitute Stock" -msgstr "" - -#: build/serializers.py:1326 -msgid "Available Variant Stock" -msgstr "" - -#: build/serializers.py:1327 -msgid "Total Available Stock" -msgstr "" - -#: build/serializers.py:1328 part/serializers.py:906 +#: build/serializers.py:1384 part/serializers.py:958 msgid "External Stock" msgstr "" -#: build/status_codes.py:11 generic/states/tests.py:17 order/status_codes.py:12 -#: order/status_codes.py:42 order/status_codes.py:74 order/status_codes.py:98 +#: build/serializers.py:1385 part/bom.py:185 part/serializers.py:1687 +#: part/templates/part/part_base.html:193 +#: templates/js/translated/sales_order.js:1910 +msgid "Available Stock" +msgstr "Dostupné zásoby" + +#: build/serializers.py:1386 +msgid "Available Substitute Stock" +msgstr "" + +#: build/serializers.py:1387 +msgid "Available Variant Stock" +msgstr "" + +#: build/status_codes.py:11 generic/states/tests.py:21 +#: generic/states/tests.py:131 order/status_codes.py:12 +#: order/status_codes.py:44 order/status_codes.py:76 order/status_codes.py:102 #: templates/js/translated/table_filters.js:601 msgid "Pending" msgstr "Nevyřízeno" @@ -1722,21 +1750,21 @@ msgstr "Nevyřízeno" msgid "Production" msgstr "Výroba" -#: build/status_codes.py:13 order/status_codes.py:14 order/status_codes.py:49 -#: order/status_codes.py:79 +#: build/status_codes.py:13 order/status_codes.py:14 order/status_codes.py:51 +#: order/status_codes.py:81 msgid "On Hold" msgstr "" -#: build/status_codes.py:14 order/status_codes.py:16 order/status_codes.py:51 -#: order/status_codes.py:82 +#: build/status_codes.py:14 order/status_codes.py:16 order/status_codes.py:53 +#: order/status_codes.py:84 msgid "Cancelled" msgstr "Zrušeno" -#: build/status_codes.py:15 generic/states/tests.py:19 importer/models.py:509 -#: importer/status_codes.py:19 order/status_codes.py:15 -#: order/status_codes.py:50 order/status_codes.py:81 -#: order/templates/order/order_base.html:163 -#: order/templates/order/sales_order_base.html:168 report/models.py:443 +#: build/status_codes.py:15 generic/states/tests.py:23 importer/models.py:518 +#: importer/status_codes.py:27 order/status_codes.py:15 +#: order/status_codes.py:52 order/status_codes.py:83 +#: order/templates/order/order_base.html:172 +#: order/templates/order/sales_order_base.html:169 report/models.py:451 msgid "Complete" msgstr "Hotovo" @@ -1744,165 +1772,162 @@ msgstr "Hotovo" msgid "Stock required for build order" msgstr "Zásoby potřebné pro objednávku sestavy" -#: build/tasks.py:201 +#: build/tasks.py:260 msgid "Overdue Build Order" msgstr "Opožděná objednávka sestavy" -#: build/tasks.py:206 +#: build/tasks.py:265 #, python-brace-format msgid "Build order {bo} is now overdue" msgstr "Objednávka sestavy {bo} je nyní opožděná" -#: build/templates/build/build_base.html:18 +#: build/templates/build/build_base.html:19 msgid "Part thumbnail" msgstr "Miniatura dílu" -#: build/templates/build/build_base.html:38 -#: company/templates/company/supplier_part.html:35 -#: order/templates/order/order_base.html:29 -#: order/templates/order/return_order_base.html:38 -#: order/templates/order/sales_order_base.html:38 -#: part/templates/part/part_base.html:41 -#: stock/templates/stock/item_base.html:40 -#: stock/templates/stock/location.html:52 +#: build/templates/build/build_base.html:39 +#: company/templates/company/supplier_part.html:36 +#: order/templates/order/order_base.html:30 +#: order/templates/order/return_order_base.html:39 +#: order/templates/order/sales_order_base.html:39 +#: part/templates/part/part_base.html:42 +#: stock/templates/stock/item_base.html:41 +#: stock/templates/stock/location.html:53 #: templates/js/translated/filters.js:338 msgid "Barcode actions" msgstr "Akce čárového kódu" -#: build/templates/build/build_base.html:42 -#: company/templates/company/supplier_part.html:39 -#: order/templates/order/order_base.html:33 -#: order/templates/order/return_order_base.html:42 -#: order/templates/order/sales_order_base.html:42 -#: part/templates/part/part_base.html:44 -#: stock/templates/stock/item_base.html:44 -#: stock/templates/stock/location.html:54 templates/qr_button.html:1 +#: build/templates/build/build_base.html:43 +#: company/templates/company/supplier_part.html:40 +#: order/templates/order/order_base.html:34 +#: order/templates/order/return_order_base.html:43 +#: order/templates/order/sales_order_base.html:43 +#: part/templates/part/part_base.html:45 +#: stock/templates/stock/item_base.html:45 +#: stock/templates/stock/location.html:55 templates/qr_button.html:1 msgid "Show QR Code" msgstr "Zobrazit QR kód" -#: build/templates/build/build_base.html:45 -#: company/templates/company/supplier_part.html:41 -#: order/templates/order/order_base.html:36 -#: order/templates/order/return_order_base.html:45 -#: order/templates/order/sales_order_base.html:45 -#: part/templates/part/part_base.html:47 -#: stock/templates/stock/item_base.html:47 -#: stock/templates/stock/location.html:56 +#: build/templates/build/build_base.html:46 +#: company/templates/company/supplier_part.html:42 +#: order/templates/order/order_base.html:37 +#: order/templates/order/return_order_base.html:46 +#: order/templates/order/sales_order_base.html:46 +#: part/templates/part/part_base.html:48 +#: stock/templates/stock/item_base.html:48 +#: stock/templates/stock/location.html:57 #: templates/js/translated/barcode.js:527 #: templates/js/translated/barcode.js:532 msgid "Unlink Barcode" msgstr "Odstranit čárový kód" -#: build/templates/build/build_base.html:47 -#: company/templates/company/supplier_part.html:43 -#: order/templates/order/order_base.html:38 -#: order/templates/order/return_order_base.html:47 -#: order/templates/order/sales_order_base.html:47 -#: part/templates/part/part_base.html:49 -#: stock/templates/stock/item_base.html:49 -#: stock/templates/stock/location.html:58 +#: build/templates/build/build_base.html:48 +#: company/templates/company/supplier_part.html:44 +#: order/templates/order/order_base.html:39 +#: order/templates/order/return_order_base.html:48 +#: order/templates/order/sales_order_base.html:48 +#: part/templates/part/part_base.html:50 +#: stock/templates/stock/item_base.html:50 +#: stock/templates/stock/location.html:59 msgid "Link Barcode" msgstr "Přiřadit čárový kód" -#: build/templates/build/build_base.html:56 -#: order/templates/order/order_base.html:46 -#: order/templates/order/return_order_base.html:55 -#: order/templates/order/sales_order_base.html:55 +#: build/templates/build/build_base.html:57 +#: order/templates/order/order_base.html:47 +#: order/templates/order/return_order_base.html:56 +#: order/templates/order/sales_order_base.html:56 msgid "Print actions" msgstr "Akce tisku" -#: build/templates/build/build_base.html:60 +#: build/templates/build/build_base.html:61 msgid "Print build order report" msgstr "Tisk reportu o objednávce sestavy" -#: build/templates/build/build_base.html:67 +#: build/templates/build/build_base.html:68 msgid "Build actions" msgstr "Akce sestavy" -#: build/templates/build/build_base.html:71 +#: build/templates/build/build_base.html:72 msgid "Edit Build" msgstr "Upravit sestavu" -#: build/templates/build/build_base.html:73 +#: build/templates/build/build_base.html:74 msgid "Duplicate Build" msgstr "Duplikovat sestavu" -#: build/templates/build/build_base.html:76 +#: build/templates/build/build_base.html:77 msgid "Hold Build" msgstr "" -#: build/templates/build/build_base.html:79 +#: build/templates/build/build_base.html:80 msgid "Cancel Build" msgstr "Zrušit sestavu" -#: build/templates/build/build_base.html:82 +#: build/templates/build/build_base.html:83 msgid "Delete Build" msgstr "Smazat sestavu" -#: build/templates/build/build_base.html:87 -msgid "Isueue Build" -msgstr "" - #: build/templates/build/build_base.html:88 +#: build/templates/build/build_base.html:89 msgid "Issue Build" msgstr "" -#: build/templates/build/build_base.html:91 #: build/templates/build/build_base.html:92 +#: build/templates/build/build_base.html:93 msgid "Complete Build" msgstr "Dokončit sestavu" -#: build/templates/build/build_base.html:115 +#: build/templates/build/build_base.html:116 msgid "Build Description" msgstr "Popis sestavy" -#: build/templates/build/build_base.html:125 +#: build/templates/build/build_base.html:126 msgid "No build outputs have been created for this build order" msgstr "Pro tuto objednávku sestavy nebyly vytvořeny žádné výstupy sestavy" -#: build/templates/build/build_base.html:132 +#: build/templates/build/build_base.html:133 msgid "Build Order is ready to mark as completed" msgstr "Objednávka sestavy je připravena k označení jako dokončená" -#: build/templates/build/build_base.html:137 +#: build/templates/build/build_base.html:138 msgid "Build Order cannot be completed as outstanding outputs remain" msgstr "Objednávku sestavy nelze dokončit, protože zbývají nevyřízené výstupy" -#: build/templates/build/build_base.html:142 +#: build/templates/build/build_base.html:143 msgid "Required build quantity has not yet been completed" msgstr "Požadované množství sestavy ještě nebylo dokončeno" -#: build/templates/build/build_base.html:147 +#: build/templates/build/build_base.html:148 msgid "Stock has not been fully allocated to this Build Order" msgstr "Zásoby nebyly plně přiřazeny k této objednávce na sestavu" -#: build/templates/build/build_base.html:168 -#: build/templates/build/detail.html:138 order/models.py:308 -#: order/models.py:1391 order/serializers.py:174 -#: order/templates/order/order_base.html:191 -#: order/templates/order/return_order_base.html:167 -#: order/templates/order/sales_order_base.html:199 +#: build/templates/build/build_base.html:169 +#: build/templates/build/detail.html:138 order/models.py:315 +#: order/models.py:1408 order/serializers.py:254 +#: order/templates/order/order_base.html:200 +#: order/templates/order/return_order_base.html:168 +#: order/templates/order/sales_order_base.html:200 #: report/templates/report/inventree_build_order_report.html:125 -#: templates/js/translated/build.js:2411 templates/js/translated/part.js:1837 -#: templates/js/translated/purchase_order.js:1809 -#: templates/js/translated/purchase_order.js:2217 +#: templates/js/translated/build.js:2414 templates/js/translated/part.js:1837 +#: templates/js/translated/purchase_order.js:1793 +#: templates/js/translated/purchase_order.js:2201 #: templates/js/translated/return_order.js:346 #: templates/js/translated/return_order.js:749 -#: templates/js/translated/sales_order.js:871 -#: templates/js/translated/sales_order.js:1903 +#: templates/js/translated/sales_order.js:830 +#: templates/js/translated/sales_order.js:1884 msgid "Target Date" msgstr "Cílené datum" -#: build/templates/build/build_base.html:173 +#: build/templates/build/build_base.html:174 #, python-format msgid "This build was due on %(target)s" msgstr "Tato sestava byla splatná v %(target)s" -#: build/templates/build/build_base.html:173 -#: build/templates/build/build_base.html:230 -#: order/templates/order/order_base.html:127 -#: order/templates/order/return_order_base.html:120 -#: order/templates/order/sales_order_base.html:129 +#: build/templates/build/build_base.html:174 +#: build/templates/build/build_base.html:231 +#: order/templates/order/order_base.html:128 +#: order/templates/order/return_order_base.html:121 +#: order/templates/order/sales_order_base.html:130 #: templates/js/translated/table_filters.js:97 #: templates/js/translated/table_filters.js:545 #: templates/js/translated/table_filters.js:629 @@ -1910,49 +1935,50 @@ msgstr "Tato sestava byla splatná v %(target)s" msgid "Overdue" msgstr "Po splatnosti" -#: build/templates/build/build_base.html:185 +#: build/templates/build/build_base.html:186 #: build/templates/build/detail.html:67 build/templates/build/sidebar.html:13 msgid "Completed Outputs" msgstr "Dokončené výstupy" -#: build/templates/build/build_base.html:198 -#: build/templates/build/detail.html:101 order/api.py:1406 order/models.py:892 -#: order/models.py:1650 order/models.py:1765 order/models.py:1924 -#: order/templates/order/sales_order_base.html:9 -#: order/templates/order/sales_order_base.html:28 +#: build/templates/build/build_base.html:199 +#: build/templates/build/detail.html:101 order/api.py:1528 order/models.py:914 +#: order/models.py:1666 order/models.py:1794 order/models.py:1957 +#: order/templates/order/sales_order_base.html:10 +#: order/templates/order/sales_order_base.html:29 #: report/templates/report/inventree_build_order_report.html:135 #: report/templates/report/inventree_sales_order_report.html:14 -#: stock/templates/stock/item_base.html:369 +#: report/templates/report/inventree_sales_order_shipment_report.html:15 +#: stock/templates/stock/item_base.html:366 #: templates/email/overdue_sales_order.html:15 -#: templates/js/translated/pricing.js:929 -#: templates/js/translated/sales_order.js:805 -#: templates/js/translated/sales_order.js:1028 -#: templates/js/translated/stock.js:3008 +#: templates/js/translated/pricing.js:927 +#: templates/js/translated/sales_order.js:764 +#: templates/js/translated/sales_order.js:1001 +#: templates/js/translated/stock.js:3009 msgid "Sales Order" msgstr "Prodejní objednávka" -#: build/templates/build/build_base.html:219 -#: build/templates/build/detail.html:94 templates/js/translated/build.js:2328 +#: build/templates/build/build_base.html:220 +#: build/templates/build/detail.html:94 templates/js/translated/build.js:2331 msgid "Priority" msgstr "Priorita" -#: build/templates/build/build_base.html:267 +#: build/templates/build/build_base.html:268 msgid "Issue Build Order" msgstr "" -#: build/templates/build/build_base.html:271 +#: build/templates/build/build_base.html:272 msgid "Issue this Build Order?" msgstr "" -#: build/templates/build/build_base.html:302 +#: build/templates/build/build_base.html:303 msgid "Delete Build Order" msgstr "Odstranit objednávku sestavy" -#: build/templates/build/build_base.html:312 +#: build/templates/build/build_base.html:313 msgid "Build Order QR Code" msgstr "QR kód objednávky sestavy" -#: build/templates/build/build_base.html:324 +#: build/templates/build/build_base.html:325 msgid "Link Barcode to Build Order" msgstr "Propojit čárový kód s objednávkou sestavy" @@ -1968,8 +1994,9 @@ msgstr "Zdroj zásob" msgid "Stock can be taken from any available location." msgstr "Zásoby lze odebírat z jakéhokoli dostupného umístění." -#: build/templates/build/detail.html:49 order/models.py:1532 -#: templates/js/translated/purchase_order.js:2259 +#: build/templates/build/detail.html:49 order/models.py:548 +#: order/models.py:1548 order/templates/order/order_base.html:135 +#: templates/js/translated/purchase_order.js:2243 msgid "Destination" msgstr "Místo určení" @@ -1981,23 +2008,24 @@ msgstr "Místo určení není specifikováno" msgid "Allocated Parts" msgstr "Přidělené díly" -#: build/templates/build/detail.html:80 stock/admin.py:162 -#: stock/templates/stock/item_base.html:162 -#: templates/js/translated/build.js:1553 -#: templates/js/translated/model_renderers.js:242 -#: templates/js/translated/purchase_order.js:1326 +#: build/templates/build/detail.html:80 +#: report/templates/report/inventree_sales_order_shipment_report.html:47 +#: stock/admin.py:163 stock/templates/stock/item_base.html:159 +#: templates/js/translated/build.js:1556 +#: templates/js/translated/model_renderers.js:245 +#: templates/js/translated/purchase_order.js:1309 #: templates/js/translated/stock.js:1139 templates/js/translated/stock.js:1240 -#: templates/js/translated/stock.js:2275 templates/js/translated/stock.js:3211 +#: templates/js/translated/stock.js:2276 templates/js/translated/stock.js:3212 #: templates/js/translated/table_filters.js:320 #: templates/js/translated/table_filters.js:411 msgid "Batch" msgstr "Šarže" #: build/templates/build/detail.html:133 -#: order/templates/order/order_base.html:178 -#: order/templates/order/return_order_base.html:154 -#: order/templates/order/sales_order_base.html:193 -#: templates/js/translated/build.js:2371 +#: order/templates/order/order_base.html:187 +#: order/templates/order/return_order_base.html:155 +#: order/templates/order/sales_order_base.html:194 +#: templates/js/translated/build.js:2374 msgid "Created" msgstr "Vytvořeno" @@ -2005,8 +2033,8 @@ msgstr "Vytvořeno" msgid "No target date set" msgstr "Nenastaveno cílené datum" -#: build/templates/build/detail.html:149 -#: order/templates/order/sales_order_base.html:209 +#: build/templates/build/detail.html:149 order/api.py:794 +#: order/templates/order/sales_order_base.html:210 #: templates/js/translated/table_filters.js:692 msgid "Completed" msgstr "Dokončeno" @@ -2052,7 +2080,7 @@ msgid "Order required parts" msgstr "Objednat požadované díly" #: build/templates/build/detail.html:192 -#: templates/js/translated/purchase_order.js:795 +#: templates/js/translated/purchase_order.js:778 msgid "Order Parts" msgstr "Objednat díly" @@ -2120,7 +2148,7 @@ msgstr "Objednávka nové sestavy" msgid "Build Order Details" msgstr "Podrobnosti o objednávce sestavy" -#: build/templates/build/sidebar.html:8 order/serializers.py:82 +#: build/templates/build/sidebar.html:8 order/serializers.py:113 #: order/templates/order/po_sidebar.html:5 #: order/templates/order/return_order_detail.html:18 #: order/templates/order/so_sidebar.html:5 @@ -2139,43 +2167,38 @@ msgstr "Neúplné výstupy" msgid "Test Statistics" msgstr "" -#: common/api.py:693 +#: common/api.py:725 msgid "Is Link" msgstr "Je odkaz" -#: common/api.py:701 +#: common/api.py:733 msgid "Is File" msgstr "Je soubor" -#: common/api.py:744 +#: common/api.py:776 msgid "User does not have permission to delete these attachments" msgstr "" -#: common/api.py:761 +#: common/api.py:793 msgid "User does not have permission to delete this attachment" msgstr "Uživatel nemá oprávnění k odstranění této přílohy" -#: common/currency.py:132 +#: common/currency.py:134 msgid "Invalid currency code" msgstr "Neplatný kód měny" -#: common/currency.py:134 +#: common/currency.py:136 msgid "Duplicate currency code" msgstr "Duplicitní kód měny" -#: common/currency.py:139 +#: common/currency.py:141 msgid "No valid currency codes provided" msgstr "Nejsou uvedeny žádné platné kódy měn" -#: common/currency.py:156 +#: common/currency.py:158 msgid "No plugin" msgstr "Žádný plugin" -#: common/files.py:63 -#, python-brace-format -msgid "Unsupported file format: {fmt}" -msgstr "Nepodporovaný formát souboru: {fmt}" - #: common/files.py:65 msgid "Error reading file (invalid encoding)" msgstr "Chyba při čtení souboru (neplatné kódování)" @@ -2192,1883 +2215,2039 @@ msgstr "Chyba při čtení souboru (nesprávný rozměr)" msgid "Error reading file (data could be corrupted)" msgstr "Chyba při čtení souboru (data mohou být poškozena)" -#: common/forms.py:12 +#: common/forms.py:12 common/forms.py:25 msgid "File" msgstr "Soubor" -#: common/forms.py:12 +#: common/forms.py:12 common/forms.py:26 msgid "Select file to upload" msgstr "Vybrat soubor k nahrání" -#: common/forms.py:25 -msgid "{name.title()} File" -msgstr "{name.title()} Soubor" - -#: common/forms.py:26 -#, python-brace-format -msgid "Select {name} file to upload" -msgstr "Vyberte {name} soubor k nahrání" - -#: common/models.py:86 +#: common/models.py:89 msgid "Updated" msgstr "Aktualizováno" -#: common/models.py:87 +#: common/models.py:90 msgid "Timestamp of last update" msgstr "Časové razítko poslední aktualizace" -#: common/models.py:120 +#: common/models.py:123 msgid "Site URL is locked by configuration" msgstr "Adresa URL webu je uzamčena konfigurací" -#: common/models.py:150 +#: common/models.py:153 msgid "Unique project code" msgstr "Jedinečný kód projektu" -#: common/models.py:157 +#: common/models.py:160 msgid "Project description" msgstr "Popis projektu" -#: common/models.py:166 +#: common/models.py:169 msgid "User or group responsible for this project" msgstr "Uživatel nebo skupina odpovědná za tento projekt" -#: common/models.py:783 -msgid "Settings key (must be unique - case insensitive)" -msgstr "Klíč nastavení (musí být unikátní - rozlišuje malá a velká písmena)" +#: common/models.py:783 common/models.py:2236 common/models.py:2613 +msgid "Settings key" +msgstr "" #: common/models.py:787 msgid "Settings value" msgstr "Hodnota nastavení" -#: common/models.py:839 +#: common/models.py:842 msgid "Chosen value is not a valid option" msgstr "Zvolená hodnota není platnou možností" -#: common/models.py:855 +#: common/models.py:858 msgid "Value must be a boolean value" msgstr "Hodnota musí být logická hodnota" -#: common/models.py:863 +#: common/models.py:866 msgid "Value must be an integer value" msgstr "Hodnota musí být celé číslo" -#: common/models.py:900 +#: common/models.py:874 +msgid "Value must be a valid number" +msgstr "" + +#: common/models.py:899 +msgid "Value does not pass validation checks" +msgstr "" + +#: common/models.py:921 msgid "Key string must be unique" msgstr "Klíčový text musí být jedinečný" -#: common/models.py:1132 +#: common/models.py:1189 msgid "No group" msgstr "Žádná skupina" -#: common/models.py:1231 +#: common/models.py:1288 msgid "Restart required" msgstr "Je vyžadován restart" -#: common/models.py:1233 +#: common/models.py:1290 msgid "A setting has been changed which requires a server restart" msgstr "Bylo změněno nastavení, které vyžaduje restart serveru" -#: common/models.py:1240 +#: common/models.py:1297 msgid "Pending migrations" msgstr "Nevyřízené migrace" -#: common/models.py:1241 +#: common/models.py:1298 msgid "Number of pending database migrations" msgstr "Počet nevyřízených migrací databáze" -#: common/models.py:1246 +#: common/models.py:1303 msgid "Server Instance Name" msgstr "Název instance serveru" -#: common/models.py:1248 +#: common/models.py:1305 msgid "String descriptor for the server instance" msgstr "Textový popisovač pro instanci serveru" -#: common/models.py:1252 +#: common/models.py:1309 msgid "Use instance name" msgstr "Použít název instance" -#: common/models.py:1253 +#: common/models.py:1310 msgid "Use the instance name in the title-bar" msgstr "Použít název instance v liště" -#: common/models.py:1258 +#: common/models.py:1315 msgid "Restrict showing `about`" msgstr "Omezit zobrazování `o aplikaci`" -#: common/models.py:1259 +#: common/models.py:1316 msgid "Show the `about` modal only to superusers" msgstr "Zobrazovat okno `o aplikaci` pouze superuživatelům" -#: common/models.py:1264 company/models.py:111 company/models.py:112 +#: common/models.py:1321 company/models.py:108 company/models.py:109 msgid "Company name" msgstr "Jméno společnosti" -#: common/models.py:1265 +#: common/models.py:1322 msgid "Internal company name" msgstr "Interní název společnosti" -#: common/models.py:1269 +#: common/models.py:1326 msgid "Base URL" msgstr "Základní URL" -#: common/models.py:1270 +#: common/models.py:1327 msgid "Base URL for server instance" msgstr "Základní URL pro instanci serveru" -#: common/models.py:1276 +#: common/models.py:1333 msgid "Default Currency" msgstr "Výchozí měna" -#: common/models.py:1277 +#: common/models.py:1334 msgid "Select base currency for pricing calculations" msgstr "Vyberte základní měnu pro cenové kalkulace" -#: common/models.py:1283 +#: common/models.py:1340 msgid "Supported Currencies" msgstr "Podporované měny" -#: common/models.py:1284 +#: common/models.py:1341 msgid "List of supported currency codes" msgstr "Seznam podporovaných kódů měn" -#: common/models.py:1290 +#: common/models.py:1347 msgid "Currency Update Interval" msgstr "Interval aktualizace měny" -#: common/models.py:1292 +#: common/models.py:1349 msgid "How often to update exchange rates (set to zero to disable)" msgstr "Jak často aktualizovat směnné kurzy (pro vypnutí nastavte na nulu)" -#: common/models.py:1295 common/models.py:1351 common/models.py:1364 -#: common/models.py:1372 common/models.py:1381 common/models.py:1390 -#: common/models.py:1627 common/models.py:1649 common/models.py:1764 -#: common/models.py:2146 +#: common/models.py:1352 common/models.py:1408 common/models.py:1421 +#: common/models.py:1429 common/models.py:1438 common/models.py:1447 +#: common/models.py:1696 common/models.py:1718 common/models.py:1819 +#: common/models.py:2208 msgid "days" msgstr "dny" -#: common/models.py:1299 +#: common/models.py:1356 msgid "Currency Update Plugin" msgstr "Plugin aktualizace měny" -#: common/models.py:1300 +#: common/models.py:1357 msgid "Currency update plugin to use" msgstr "Plugin pro aktualizaci měn k použití" -#: common/models.py:1305 +#: common/models.py:1362 msgid "Download from URL" msgstr "Stáhnout z URL" -#: common/models.py:1307 +#: common/models.py:1364 msgid "Allow download of remote images and files from external URL" msgstr "Povolit stahování vzdálených obrázků a souborů z externích URL" -#: common/models.py:1313 +#: common/models.py:1370 msgid "Download Size Limit" msgstr "Limit velikosti stahování" -#: common/models.py:1314 +#: common/models.py:1371 msgid "Maximum allowable download size for remote image" msgstr "Maximální povolená velikost stahování vzdáleného obrázku" -#: common/models.py:1320 +#: common/models.py:1377 msgid "User-agent used to download from URL" msgstr "User-agent použitý ke stažení z adresy URL" -#: common/models.py:1322 +#: common/models.py:1379 msgid "Allow to override the user-agent used to download images and files from external URL (leave blank for the default)" msgstr "Povolit přepsání user-agenta používaného ke stahování obrázků a souborů z externí adresy URL (ponechte prázdné pro výchozí)" -#: common/models.py:1327 +#: common/models.py:1384 msgid "Strict URL Validation" msgstr "Přísná validace URL" -#: common/models.py:1328 +#: common/models.py:1385 msgid "Require schema specification when validating URLs" msgstr "Vyžadovat specifikaci schématu při ověřování adres URL" -#: common/models.py:1333 +#: common/models.py:1390 msgid "Require confirm" msgstr "Vyžadovat potvrzení" -#: common/models.py:1334 +#: common/models.py:1391 msgid "Require explicit user confirmation for certain action." msgstr "Vyžadovat výslovné potvrzení uživatele pro určitou akci." -#: common/models.py:1339 +#: common/models.py:1396 msgid "Tree Depth" msgstr "Hloubka stromu" -#: common/models.py:1341 +#: common/models.py:1398 msgid "Default tree depth for treeview. Deeper levels can be lazy loaded as they are needed." msgstr "Výchozí hloubka stromu pro zobrazení stromu. Hlubší úrovně lze načítat líně podle potřeby." -#: common/models.py:1347 +#: common/models.py:1404 msgid "Update Check Interval" msgstr "Interval kontroly aktualizací" -#: common/models.py:1348 +#: common/models.py:1405 msgid "How often to check for updates (set to zero to disable)" msgstr "Jak často kontrolovat aktualizace (nastavte na nulu pro vypnutí)" -#: common/models.py:1354 +#: common/models.py:1411 msgid "Automatic Backup" msgstr "Automatické Zálohování" -#: common/models.py:1355 +#: common/models.py:1412 msgid "Enable automatic backup of database and media files" msgstr "Povolit automatické zálohování databáze a mediálních souborů" -#: common/models.py:1360 +#: common/models.py:1417 msgid "Auto Backup Interval" msgstr "Interval automatického zálohování" -#: common/models.py:1361 +#: common/models.py:1418 msgid "Specify number of days between automated backup events" msgstr "Zadejte počet dní mezi automatickými zálohovými událostmi" -#: common/models.py:1367 +#: common/models.py:1424 msgid "Task Deletion Interval" msgstr "Interval mazání úloh" -#: common/models.py:1369 +#: common/models.py:1426 msgid "Background task results will be deleted after specified number of days" msgstr "Výsledky úloh na pozadí budou odstraněny po zadaném počtu dní" -#: common/models.py:1376 +#: common/models.py:1433 msgid "Error Log Deletion Interval" msgstr "Interval odstranění protokolu chyb" -#: common/models.py:1378 +#: common/models.py:1435 msgid "Error logs will be deleted after specified number of days" msgstr "Záznamy chyb budou odstraněny po zadaném počtu dní" -#: common/models.py:1385 +#: common/models.py:1442 msgid "Notification Deletion Interval" msgstr "Interval pro odstranění oznámení" -#: common/models.py:1387 +#: common/models.py:1444 msgid "User notifications will be deleted after specified number of days" msgstr "Uživatelská oznámení budou smazána po zadaném počtu dní" -#: common/models.py:1394 templates/InvenTree/settings/sidebar.html:31 +#: common/models.py:1451 templates/InvenTree/settings/sidebar.html:31 msgid "Barcode Support" msgstr "Podpora čárových kódů" -#: common/models.py:1395 +#: common/models.py:1452 msgid "Enable barcode scanner support in the web interface" msgstr "Povolit podporu pro skenování čárových kódů ve webovém rozhraní" -#: common/models.py:1400 +#: common/models.py:1457 +msgid "Store Barcode Results" +msgstr "" + +#: common/models.py:1458 +msgid "Store barcode scan results in the database" +msgstr "" + +#: common/models.py:1463 +msgid "Barcode Scans Maximum Count" +msgstr "" + +#: common/models.py:1464 +msgid "Maximum number of barcode scan results to store" +msgstr "" + +#: common/models.py:1469 msgid "Barcode Input Delay" msgstr "Zpoždění vstupu čárového kódu" -#: common/models.py:1401 +#: common/models.py:1470 msgid "Barcode input processing delay time" msgstr "Doba zpoždění zpracování vstupu čárového kódu" -#: common/models.py:1407 +#: common/models.py:1476 msgid "Barcode Webcam Support" msgstr "Podpora webové kamery pro čárové kódy" -#: common/models.py:1408 +#: common/models.py:1477 msgid "Allow barcode scanning via webcam in browser" msgstr "Povolit skenování čárových kódů přes webovou kameru v prohlížeči" -#: common/models.py:1413 +#: common/models.py:1482 msgid "Barcode Show Data" msgstr "" -#: common/models.py:1414 +#: common/models.py:1483 msgid "Display barcode data in browser as text" msgstr "" -#: common/models.py:1419 +#: common/models.py:1488 msgid "Barcode Generation Plugin" msgstr "" -#: common/models.py:1420 +#: common/models.py:1489 msgid "Plugin to use for internal barcode data generation" msgstr "" -#: common/models.py:1425 +#: common/models.py:1494 msgid "Part Revisions" msgstr "Revize dílu" -#: common/models.py:1426 +#: common/models.py:1495 msgid "Enable revision field for Part" msgstr "Povolit pole revize pro díl" -#: common/models.py:1431 +#: common/models.py:1500 msgid "Assembly Revision Only" msgstr "" -#: common/models.py:1432 +#: common/models.py:1501 msgid "Only allow revisions for assembly parts" msgstr "" -#: common/models.py:1437 +#: common/models.py:1506 msgid "Allow Deletion from Assembly" msgstr "Povolit odstranění ze sestavy" -#: common/models.py:1438 +#: common/models.py:1507 msgid "Allow deletion of parts which are used in an assembly" msgstr "Povolit odstranění dílů, které jsou použity v sestavě" -#: common/models.py:1443 +#: common/models.py:1512 msgid "IPN Regex" msgstr "IPN Regex" -#: common/models.py:1444 +#: common/models.py:1513 msgid "Regular expression pattern for matching Part IPN" msgstr "Regulární vzorec výrazu pro odpovídající IPN dílu" -#: common/models.py:1447 +#: common/models.py:1516 msgid "Allow Duplicate IPN" msgstr "Povolit duplicitní IPN" -#: common/models.py:1448 +#: common/models.py:1517 msgid "Allow multiple parts to share the same IPN" msgstr "Povolit více dílům sdílet stejný IPN" -#: common/models.py:1453 +#: common/models.py:1522 msgid "Allow Editing IPN" msgstr "Povolit editaci IPN" -#: common/models.py:1454 +#: common/models.py:1523 msgid "Allow changing the IPN value while editing a part" msgstr "Povolit změnu IPN při úpravách dílu" -#: common/models.py:1459 +#: common/models.py:1528 msgid "Copy Part BOM Data" msgstr "Kopírovat data BOM dílu" -#: common/models.py:1460 +#: common/models.py:1529 msgid "Copy BOM data by default when duplicating a part" msgstr "Kopírovat data BOM ve výchozím nastavení při duplikování dílu" -#: common/models.py:1465 +#: common/models.py:1534 msgid "Copy Part Parameter Data" msgstr "Kopírovat data parametrů dílu" -#: common/models.py:1466 +#: common/models.py:1535 msgid "Copy parameter data by default when duplicating a part" msgstr "Kopírovat data parametrů ve výchozím nastavení při duplikování dílu" -#: common/models.py:1471 +#: common/models.py:1540 msgid "Copy Part Test Data" msgstr "Kopírovat zkušební data dílu" -#: common/models.py:1472 +#: common/models.py:1541 msgid "Copy test data by default when duplicating a part" msgstr "Kopírovat testovací data ve výchozím nastavení při duplikování dílu" -#: common/models.py:1477 +#: common/models.py:1546 msgid "Copy Category Parameter Templates" msgstr "Kopírovat šablony parametrů kategorie" -#: common/models.py:1478 +#: common/models.py:1547 msgid "Copy category parameter templates when creating a part" msgstr "Kopírování šablon parametrů kategorie při vytváření dílu" -#: common/models.py:1483 part/admin.py:108 part/models.py:3945 -#: report/models.py:293 report/models.py:360 report/serializers.py:90 -#: report/serializers.py:131 stock/serializers.py:232 +#: common/models.py:1552 part/admin.py:108 part/models.py:4003 +#: report/models.py:301 report/models.py:368 report/serializers.py:91 +#: report/serializers.py:132 stock/serializers.py:233 #: templates/js/translated/table_filters.js:138 #: templates/js/translated/table_filters.js:775 msgid "Template" msgstr "Šablona" -#: common/models.py:1484 +#: common/models.py:1553 msgid "Parts are templates by default" msgstr "Díly jsou ve výchozím nastavení šablony" -#: common/models.py:1490 +#: common/models.py:1559 msgid "Parts can be assembled from other components by default" msgstr "Díly lze ve výchozím nastavení sestavit z jiných komponentů" -#: common/models.py:1495 part/admin.py:95 part/models.py:1160 -#: part/serializers.py:1596 templates/js/translated/table_filters.js:737 +#: common/models.py:1564 part/admin.py:95 part/models.py:1221 +#: part/serializers.py:1654 templates/js/translated/table_filters.js:737 msgid "Component" msgstr "Komponent" -#: common/models.py:1496 +#: common/models.py:1565 msgid "Parts can be used as sub-components by default" msgstr "Díly lze ve výchozím nastavení použít jako dílčí komponenty" -#: common/models.py:1501 part/admin.py:100 part/models.py:1178 +#: common/models.py:1570 part/admin.py:100 part/models.py:1239 msgid "Purchaseable" msgstr "Možné zakoupit" -#: common/models.py:1502 +#: common/models.py:1571 msgid "Parts are purchaseable by default" msgstr "Díly jsou zakoupitelné ve výchozím nastavení" -#: common/models.py:1507 part/admin.py:104 part/models.py:1184 +#: common/models.py:1576 part/admin.py:104 part/models.py:1245 #: templates/js/translated/table_filters.js:763 msgid "Salable" msgstr "Prodejné" -#: common/models.py:1508 +#: common/models.py:1577 msgid "Parts are salable by default" msgstr "Díly jsou prodejné ve výchozím nastavení" -#: common/models.py:1514 +#: common/models.py:1583 msgid "Parts are trackable by default" msgstr "Díly jsou sledovatelné ve výchozím nastavení" -#: common/models.py:1519 part/admin.py:117 part/models.py:1200 -#: part/templates/part/part_base.html:154 +#: common/models.py:1588 part/admin.py:117 part/models.py:1261 +#: part/templates/part/part_base.html:155 #: templates/js/translated/table_filters.js:142 #: templates/js/translated/table_filters.js:787 msgid "Virtual" msgstr "Nehmotné (virtuální)" -#: common/models.py:1520 +#: common/models.py:1589 msgid "Parts are virtual by default" msgstr "Díly jsou nehmotné (virtuální) ve výchozím nastavení" -#: common/models.py:1525 +#: common/models.py:1594 msgid "Show Import in Views" msgstr "Zobrazit Import v zobrazeních" -#: common/models.py:1526 +#: common/models.py:1595 msgid "Display the import wizard in some part views" msgstr "Zobrazit průvodce importem v některých zobrazeních dílu" -#: common/models.py:1531 +#: common/models.py:1600 msgid "Show related parts" msgstr "Zobrazit související díly" -#: common/models.py:1532 +#: common/models.py:1601 msgid "Display related parts for a part" msgstr "Zobrazit související díly pro díl" -#: common/models.py:1537 +#: common/models.py:1606 msgid "Initial Stock Data" msgstr "Počáteční údaje zásob" -#: common/models.py:1538 +#: common/models.py:1607 msgid "Allow creation of initial stock when adding a new part" msgstr "Povolit vytvoření počátečního skladu při přidání nové části" -#: common/models.py:1543 templates/js/translated/part.js:108 +#: common/models.py:1612 templates/js/translated/part.js:108 msgid "Initial Supplier Data" msgstr "Počáteční údaje dodavatele" -#: common/models.py:1545 +#: common/models.py:1614 msgid "Allow creation of initial supplier data when adding a new part" msgstr "Povolit vytvoření počátečních dat dodavatele při přidávání nového dílu" -#: common/models.py:1551 +#: common/models.py:1620 msgid "Part Name Display Format" msgstr "Formát zobrazení jména dílu" -#: common/models.py:1552 +#: common/models.py:1621 msgid "Format to display the part name" msgstr "Formát pro zobrazení názvu dílu" -#: common/models.py:1558 +#: common/models.py:1627 msgid "Part Category Default Icon" msgstr "Výchozí ikona kategorie dílu" -#: common/models.py:1559 +#: common/models.py:1628 msgid "Part category default icon (empty means no icon)" msgstr "Výchozí ikona kategorie dílu (prázdné znamená bez ikony)" -#: common/models.py:1564 +#: common/models.py:1633 msgid "Enforce Parameter Units" msgstr "Vynutit jednotky parametru" -#: common/models.py:1566 +#: common/models.py:1635 msgid "If units are provided, parameter values must match the specified units" msgstr "Pokud jsou uvedeny jednotky, musí hodnoty parametrů odpovídat zadaným jednotkám" -#: common/models.py:1572 +#: common/models.py:1641 msgid "Minimum Pricing Decimal Places" msgstr "Minimální počet desetinných míst u cen" -#: common/models.py:1574 +#: common/models.py:1643 msgid "Minimum number of decimal places to display when rendering pricing data" msgstr "Minimální počet desetinných míst k zobrazení u cenových údajů" -#: common/models.py:1585 +#: common/models.py:1654 msgid "Maximum Pricing Decimal Places" msgstr "Maximální počet desetinných míst u cen" -#: common/models.py:1587 +#: common/models.py:1656 msgid "Maximum number of decimal places to display when rendering pricing data" msgstr "Maximální počet desetinných míst k zobrazení u cenových údajů" -#: common/models.py:1598 +#: common/models.py:1667 msgid "Use Supplier Pricing" msgstr "Použít ceny dodavatele" -#: common/models.py:1600 +#: common/models.py:1669 msgid "Include supplier price breaks in overall pricing calculations" msgstr "Zahrnout cenová zvýhodnění dodavatelů do celkových cenových kalkulací" -#: common/models.py:1606 +#: common/models.py:1675 msgid "Purchase History Override" msgstr "Přepsání historie nákupu" -#: common/models.py:1608 +#: common/models.py:1677 msgid "Historical purchase order pricing overrides supplier price breaks" msgstr "Historické ceny nákupních objednávek mají přednost před cenovými zvýhodněními dodavatele" -#: common/models.py:1614 +#: common/models.py:1683 msgid "Use Stock Item Pricing" msgstr "Použít ceny skladových položek" -#: common/models.py:1616 +#: common/models.py:1685 msgid "Use pricing from manually entered stock data for pricing calculations" msgstr "Použít ceny z ručně zadaných skladových údajů pro cenové kalkulace" -#: common/models.py:1622 +#: common/models.py:1691 msgid "Stock Item Pricing Age" msgstr "Stáří cen skladových položek" -#: common/models.py:1624 +#: common/models.py:1693 msgid "Exclude stock items older than this number of days from pricing calculations" msgstr "Vyloučit skladové položky starší než tento počet dní z cenových kalkulací" -#: common/models.py:1631 +#: common/models.py:1700 msgid "Use Variant Pricing" msgstr "Použít cenu varianty" -#: common/models.py:1632 +#: common/models.py:1701 msgid "Include variant pricing in overall pricing calculations" msgstr "Zahrnutí cen variant do celkových cenových kalkulací" -#: common/models.py:1637 +#: common/models.py:1706 msgid "Active Variants Only" msgstr "Pouze aktivní varianty" -#: common/models.py:1639 +#: common/models.py:1708 msgid "Only use active variant parts for calculating variant pricing" msgstr "Pro výpočet ceny varianty použijte pouze aktivní díly varianty" -#: common/models.py:1645 +#: common/models.py:1714 msgid "Pricing Rebuild Interval" msgstr "Interval přestavby cen" -#: common/models.py:1647 +#: common/models.py:1716 msgid "Number of days before part pricing is automatically updated" msgstr "Počet dní před automatickou aktualizací cen dílů" -#: common/models.py:1654 +#: common/models.py:1723 msgid "Internal Prices" msgstr "Interní ceny" -#: common/models.py:1655 +#: common/models.py:1724 msgid "Enable internal prices for parts" msgstr "Povolit interní ceny pro díly" -#: common/models.py:1660 +#: common/models.py:1729 msgid "Internal Price Override" msgstr "Přepis interní ceny" -#: common/models.py:1662 +#: common/models.py:1731 msgid "If available, internal prices override price range calculations" msgstr "Pokud jsou k dispozici, interní ceny mají přednost před výpočty cenového rozpětí" -#: common/models.py:1668 +#: common/models.py:1737 msgid "Enable label printing" msgstr "Povolit tisk štítků" -#: common/models.py:1669 +#: common/models.py:1738 msgid "Enable label printing from the web interface" msgstr "Povolit tisk štítků z webového rozhraní" -#: common/models.py:1674 +#: common/models.py:1743 msgid "Label Image DPI" msgstr "DPI rozlišení štítků" -#: common/models.py:1676 +#: common/models.py:1745 msgid "DPI resolution when generating image files to supply to label printing plugins" msgstr "Rozlišení DPI při generování obrazových souborů, které se dodávají do zásuvných modulů pro tisk štítků" -#: common/models.py:1682 +#: common/models.py:1751 msgid "Enable Reports" msgstr "Povolit reporty" -#: common/models.py:1683 +#: common/models.py:1752 msgid "Enable generation of reports" msgstr "Povolit generování reportů" -#: common/models.py:1688 templates/stats.html:25 +#: common/models.py:1757 templates/stats.html:25 msgid "Debug Mode" msgstr "Režim ladění chyb" -#: common/models.py:1689 +#: common/models.py:1758 msgid "Generate reports in debug mode (HTML output)" msgstr "Generovat reporty v režimu ladění (HTML výstup)" -#: common/models.py:1694 +#: common/models.py:1763 msgid "Log Report Errors" msgstr "Zaznamenávat chyby reportů" -#: common/models.py:1695 +#: common/models.py:1764 msgid "Log errors which occur when generating reports" msgstr "Zaznamenávat chyby, které se vyskytnou při vytváření reportů" -#: common/models.py:1700 plugin/builtin/labels/label_sheet.py:28 -#: report/models.py:301 +#: common/models.py:1769 plugin/builtin/labels/label_sheet.py:28 +#: report/models.py:309 msgid "Page Size" msgstr "Velikost stránky" -#: common/models.py:1701 +#: common/models.py:1770 msgid "Default page size for PDF reports" msgstr "Výchozí velikost stránky pro PDF reporty" -#: common/models.py:1706 -msgid "Enable Test Reports" -msgstr "Povolit testovací reporty" - -#: common/models.py:1707 -msgid "Enable generation of test reports" -msgstr "Povolit generování zkušebních reportů" - -#: common/models.py:1712 -msgid "Attach Test Reports" -msgstr "Připojit testovací reporty" - -#: common/models.py:1714 -msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item" -msgstr "Při tisku testovacího reportu, připojte kopii reportu k přidružené skladové položce" - -#: common/models.py:1720 +#: common/models.py:1775 msgid "Globally Unique Serials" msgstr "Globálně unikátní sériová čísla" -#: common/models.py:1721 +#: common/models.py:1776 msgid "Serial numbers for stock items must be globally unique" msgstr "Sériová čísla pro skladové položky musí být globálně unikátní" -#: common/models.py:1726 +#: common/models.py:1781 msgid "Autofill Serial Numbers" msgstr "Automaticky vyplnit sériová čísla" -#: common/models.py:1727 +#: common/models.py:1782 msgid "Autofill serial numbers in forms" msgstr "Automaticky vyplnit sériová čísla ve formulářích" -#: common/models.py:1732 +#: common/models.py:1787 msgid "Delete Depleted Stock" msgstr "Odstranit vyčerpané zásoby" -#: common/models.py:1734 +#: common/models.py:1789 msgid "Determines default behavior when a stock item is depleted" msgstr "Určuje výchozí chování při vyčerpání zásoby položky" -#: common/models.py:1740 +#: common/models.py:1795 msgid "Batch Code Template" msgstr "Šablona kódu dávky" -#: common/models.py:1742 +#: common/models.py:1797 msgid "Template for generating default batch codes for stock items" msgstr "Šablona pro generování výchozích kódů dávky pro skladové položky" -#: common/models.py:1747 +#: common/models.py:1802 msgid "Stock Expiry" msgstr "Expirace zásob" -#: common/models.py:1748 +#: common/models.py:1803 msgid "Enable stock expiry functionality" msgstr "Povolit funkci expirace zásob" -#: common/models.py:1753 +#: common/models.py:1808 msgid "Sell Expired Stock" msgstr "Prodat prošlé zásoby" -#: common/models.py:1754 +#: common/models.py:1809 msgid "Allow sale of expired stock" msgstr "Povolit prodej prošlých zásob" -#: common/models.py:1759 +#: common/models.py:1814 msgid "Stock Stale Time" msgstr "Čas stáří zásob" -#: common/models.py:1761 +#: common/models.py:1816 msgid "Number of days stock items are considered stale before expiring" msgstr "Počet dnů, po které jsou skladové položky považovány za nevyužité před uplynutím doby expirace" -#: common/models.py:1768 +#: common/models.py:1823 msgid "Build Expired Stock" msgstr "Sestavit prošlé zásoby" -#: common/models.py:1769 +#: common/models.py:1824 msgid "Allow building with expired stock" msgstr "Povolit sestavování s prošlými zásobami" -#: common/models.py:1774 +#: common/models.py:1829 msgid "Stock Ownership Control" msgstr "Kontrola vlastnictví zásob" -#: common/models.py:1775 +#: common/models.py:1830 msgid "Enable ownership control over stock locations and items" msgstr "Umožnit kontrolu vlastnictví nad skladovými místy a položkami" -#: common/models.py:1780 +#: common/models.py:1835 msgid "Stock Location Default Icon" msgstr "Výchozí ikona umístění zásob" -#: common/models.py:1781 +#: common/models.py:1836 msgid "Stock location default icon (empty means no icon)" msgstr "Výchozí ikona umístění zásob (prázdné znamená bez ikony)" -#: common/models.py:1786 +#: common/models.py:1841 msgid "Show Installed Stock Items" msgstr "Zobrazit nainstalované skladové položky" -#: common/models.py:1787 +#: common/models.py:1842 msgid "Display installed stock items in stock tables" msgstr "Zobrazit nainstalované skladové položky ve skladových tabulkách" -#: common/models.py:1792 +#: common/models.py:1847 msgid "Check BOM when installing items" msgstr "Zkontrolovat BOM při instalaci položek" -#: common/models.py:1794 +#: common/models.py:1849 msgid "Installed stock items must exist in the BOM for the parent part" msgstr "Nainstalované skladové položky musí existovat v BOM pro nadřazený díl" -#: common/models.py:1800 +#: common/models.py:1855 msgid "Allow Out of Stock Transfer" msgstr "Povolit převod mimo sklad" -#: common/models.py:1802 +#: common/models.py:1857 msgid "Allow stock items which are not in stock to be transferred between stock locations" msgstr "Umožnit přesun skladových položek, které nejsou na skladě, mezi skladovými místy" -#: common/models.py:1808 +#: common/models.py:1863 msgid "Build Order Reference Pattern" msgstr "Referenční vzor objednávky sestavy" -#: common/models.py:1810 +#: common/models.py:1865 msgid "Required pattern for generating Build Order reference field" msgstr "Požadovaný vzor pro generování referenčního pole Objednávka sestavy" -#: common/models.py:1816 common/models.py:1872 common/models.py:1894 -#: common/models.py:1930 +#: common/models.py:1871 common/models.py:1927 common/models.py:1949 +#: common/models.py:1985 msgid "Require Responsible Owner" msgstr "Vyžadovat odpovědného vlastníka" -#: common/models.py:1817 common/models.py:1873 common/models.py:1895 -#: common/models.py:1931 +#: common/models.py:1872 common/models.py:1928 common/models.py:1950 +#: common/models.py:1986 msgid "A responsible owner must be assigned to each order" msgstr "Ke každé objednávce musí být přiřazen odpovědný vlastník" -#: common/models.py:1822 +#: common/models.py:1877 msgid "Require Active Part" msgstr "" -#: common/models.py:1823 +#: common/models.py:1878 msgid "Prevent build order creation for inactive parts" msgstr "" -#: common/models.py:1828 +#: common/models.py:1883 msgid "Require Locked Part" msgstr "" -#: common/models.py:1829 +#: common/models.py:1884 msgid "Prevent build order creation for unlocked parts" msgstr "" -#: common/models.py:1834 +#: common/models.py:1889 msgid "Require Valid BOM" msgstr "" -#: common/models.py:1836 +#: common/models.py:1891 msgid "Prevent build order creation unless BOM has been validated" msgstr "" -#: common/models.py:1842 +#: common/models.py:1897 msgid "Require Closed Child Orders" msgstr "" -#: common/models.py:1844 +#: common/models.py:1899 msgid "Prevent build order completion until all child orders are closed" msgstr "" -#: common/models.py:1850 +#: common/models.py:1905 msgid "Block Until Tests Pass" msgstr "Blokovat, dokud testy neprojdou" -#: common/models.py:1852 +#: common/models.py:1907 msgid "Prevent build outputs from being completed until all required tests pass" msgstr "Zabránit dokončení výstupů sestavy, dokud neprojdou všechny požadované testy" -#: common/models.py:1858 +#: common/models.py:1913 msgid "Enable Return Orders" msgstr "Povolit vracení objednávek" -#: common/models.py:1859 +#: common/models.py:1914 msgid "Enable return order functionality in the user interface" msgstr "Povolit funkci vrácení objednávky v uživatelském rozhraní" -#: common/models.py:1864 +#: common/models.py:1919 msgid "Return Order Reference Pattern" msgstr "Referenční vzor návratové objednávky" -#: common/models.py:1866 +#: common/models.py:1921 msgid "Required pattern for generating Return Order reference field" msgstr "Požadovaný vzor pro vygenerování referenčního pole Návratová objednávka" -#: common/models.py:1878 +#: common/models.py:1933 msgid "Edit Completed Return Orders" msgstr "Úprava dokončených návratových objednávek" -#: common/models.py:1880 +#: common/models.py:1935 msgid "Allow editing of return orders after they have been completed" msgstr "Umožnit úpravu návratových objednávek po jejich dokončení" -#: common/models.py:1886 +#: common/models.py:1941 msgid "Sales Order Reference Pattern" msgstr "Referenční vzor prodejní objednávky" -#: common/models.py:1888 +#: common/models.py:1943 msgid "Required pattern for generating Sales Order reference field" msgstr "Požadovaný vzor pro generování referenčního pole prodejní objednávky" -#: common/models.py:1900 +#: common/models.py:1955 msgid "Sales Order Default Shipment" msgstr "Výchozí přeprava prodejní objednávky" -#: common/models.py:1901 +#: common/models.py:1956 msgid "Enable creation of default shipment with sales orders" msgstr "Povolit vytvoření výchozí přepravy s prodejními objednávkami" -#: common/models.py:1906 +#: common/models.py:1961 msgid "Edit Completed Sales Orders" msgstr "Úprava dokončených prodejních objednávek" -#: common/models.py:1908 +#: common/models.py:1963 msgid "Allow editing of sales orders after they have been shipped or completed" msgstr "Umožnit úpravy prodejních objednávek po jejich odeslání nebo dokončení" -#: common/models.py:1914 +#: common/models.py:1969 msgid "Mark Shipped Orders as Complete" msgstr "Označit odeslané objednávky jako dokončené" -#: common/models.py:1916 +#: common/models.py:1971 msgid "Sales orders marked as shipped will automatically be completed, bypassing the \"shipped\" status" msgstr "Prodejní objednávky označené jako odeslané se automaticky dokončí a obejdou stav „odesláno“" -#: common/models.py:1922 +#: common/models.py:1977 msgid "Purchase Order Reference Pattern" msgstr "Referenční vzor nákupní objednávky" -#: common/models.py:1924 +#: common/models.py:1979 msgid "Required pattern for generating Purchase Order reference field" msgstr "Požadovaný vzor pro generování referenčního pole nákupní objednávky" -#: common/models.py:1936 +#: common/models.py:1991 msgid "Edit Completed Purchase Orders" msgstr "Úprava dokončených nákupních objednávek" -#: common/models.py:1938 +#: common/models.py:1993 msgid "Allow editing of purchase orders after they have been shipped or completed" msgstr "Umožnit úpravy nákupních objednávek po jejich odeslání nebo dokončení" -#: common/models.py:1944 +#: common/models.py:1999 msgid "Auto Complete Purchase Orders" msgstr "Automatické dokončování nákupních objednávek" -#: common/models.py:1946 +#: common/models.py:2001 msgid "Automatically mark purchase orders as complete when all line items are received" msgstr "Automaticky označit nákupní objednávky jako kompletní, jakmile jsou přijaty všechny řádkové položky" -#: common/models.py:1953 +#: common/models.py:2008 msgid "Enable password forgot" msgstr "Povolit pole zapomenutého hesla" -#: common/models.py:1954 +#: common/models.py:2009 msgid "Enable password forgot function on the login pages" msgstr "Povolení funkce zapomenutého hesla na přihlašovacích stránkách" -#: common/models.py:1959 +#: common/models.py:2014 msgid "Enable registration" msgstr "Povolit registrace" -#: common/models.py:1960 +#: common/models.py:2015 msgid "Enable self-registration for users on the login pages" msgstr "Povolit samoregistraci uživatelů na přihlašovacích stránkách" -#: common/models.py:1965 +#: common/models.py:2020 msgid "Enable SSO" msgstr "Povolit SSO" -#: common/models.py:1966 +#: common/models.py:2021 msgid "Enable SSO on the login pages" msgstr "Povolit SSO na přihlašovacích stránkách" -#: common/models.py:1971 +#: common/models.py:2026 msgid "Enable SSO registration" msgstr "Povolit SSO registraci" -#: common/models.py:1973 +#: common/models.py:2028 msgid "Enable self-registration via SSO for users on the login pages" msgstr "Povolit samoregistraci uživatelů prostřednictvím SSO na přihlašovacích stránkách" -#: common/models.py:1979 +#: common/models.py:2034 msgid "Enable SSO group sync" msgstr "" -#: common/models.py:1981 +#: common/models.py:2036 msgid "Enable synchronizing InvenTree groups with groups provided by the IdP" msgstr "" -#: common/models.py:1987 +#: common/models.py:2042 msgid "SSO group key" msgstr "" -#: common/models.py:1989 +#: common/models.py:2044 msgid "The name of the groups claim attribute provided by the IdP" msgstr "" -#: common/models.py:1995 +#: common/models.py:2050 msgid "SSO group map" msgstr "" -#: common/models.py:1997 +#: common/models.py:2052 msgid "A mapping from SSO groups to local InvenTree groups. If the local group does not exist, it will be created." msgstr "" -#: common/models.py:2003 +#: common/models.py:2058 msgid "Remove groups outside of SSO" msgstr "" -#: common/models.py:2005 +#: common/models.py:2060 msgid "Whether groups assigned to the user should be removed if they are not backend by the IdP. Disabling this setting might cause security issues" msgstr "" -#: common/models.py:2011 +#: common/models.py:2066 msgid "Email required" msgstr "Vyžadován e-mail" -#: common/models.py:2012 +#: common/models.py:2067 msgid "Require user to supply mail on signup" msgstr "Požadovat, aby uživatel při registraci zadal e-mail" -#: common/models.py:2017 +#: common/models.py:2072 msgid "Auto-fill SSO users" msgstr "Automaticky vyplnit SSO uživatele" -#: common/models.py:2019 +#: common/models.py:2074 msgid "Automatically fill out user-details from SSO account-data" msgstr "Automaticky vyplnit údaje o uživateli z údajů o účtu SSO" -#: common/models.py:2025 +#: common/models.py:2080 msgid "Mail twice" msgstr "Mail dvakrát" -#: common/models.py:2026 +#: common/models.py:2081 msgid "On signup ask users twice for their mail" msgstr "Při registraci dvakrát požádat uživatele o zadání e-mailu" -#: common/models.py:2031 +#: common/models.py:2086 msgid "Password twice" msgstr "Heslo dvakrát" -#: common/models.py:2032 +#: common/models.py:2087 msgid "On signup ask users twice for their password" msgstr "Při registraci dvakrát požádat uživatele o heslo" -#: common/models.py:2037 +#: common/models.py:2092 msgid "Allowed domains" msgstr "Povolené domény" -#: common/models.py:2039 +#: common/models.py:2094 msgid "Restrict signup to certain domains (comma-separated, starting with @)" msgstr "Omezit registraci na určité domény (oddělené čárkou a začínající @)" -#: common/models.py:2045 +#: common/models.py:2100 msgid "Group on signup" msgstr "Skupina při registraci" -#: common/models.py:2047 +#: common/models.py:2102 msgid "Group to which new users are assigned on registration. If SSO group sync is enabled, this group is only set if no group can be assigned from the IdP." msgstr "" -#: common/models.py:2053 +#: common/models.py:2108 msgid "Enforce MFA" msgstr "Vynutit MFA" -#: common/models.py:2054 +#: common/models.py:2109 msgid "Users must use multifactor security." msgstr "Uživatelé musí používat vícefaktorové zabezpečení." -#: common/models.py:2059 +#: common/models.py:2114 msgid "Check plugins on startup" msgstr "Zkontrolovat pluginy při spuštění" -#: common/models.py:2061 +#: common/models.py:2116 msgid "Check that all plugins are installed on startup - enable in container environments" msgstr "Zkontrolujte, zda jsou při spuštění nainstalovány všechny pluginy - povolit v kontejnerových prostředích" -#: common/models.py:2069 +#: common/models.py:2124 msgid "Check for plugin updates" msgstr "Zkontrolovat aktualizace pluginů" -#: common/models.py:2070 +#: common/models.py:2125 msgid "Enable periodic checks for updates to installed plugins" msgstr "Povolit pravidelné kontroly aktualizací nainstalovaných pluginů" -#: common/models.py:2076 +#: common/models.py:2131 msgid "Enable URL integration" msgstr "Povolit integraci URL" -#: common/models.py:2077 +#: common/models.py:2132 msgid "Enable plugins to add URL routes" msgstr "Povolit plug-inům přidávat trasy URL" -#: common/models.py:2083 +#: common/models.py:2138 msgid "Enable navigation integration" msgstr "Povolit integraci navigace" -#: common/models.py:2084 +#: common/models.py:2139 msgid "Enable plugins to integrate into navigation" msgstr "Povolit integrování pluginů do navigace" -#: common/models.py:2090 +#: common/models.py:2145 msgid "Enable app integration" msgstr "Povolit integraci aplikací" -#: common/models.py:2091 +#: common/models.py:2146 msgid "Enable plugins to add apps" msgstr "Povolit pluginům přidávát aplikace" -#: common/models.py:2097 +#: common/models.py:2152 msgid "Enable schedule integration" msgstr "Povolit integraci plánu" -#: common/models.py:2098 +#: common/models.py:2153 msgid "Enable plugins to run scheduled tasks" msgstr "Povolit pluginům spouštění naplánovaných úloh" -#: common/models.py:2104 +#: common/models.py:2159 msgid "Enable event integration" msgstr "Povolit integraci událostí" -#: common/models.py:2105 +#: common/models.py:2160 msgid "Enable plugins to respond to internal events" msgstr "Povolit pluginům reagovat na interní události" -#: common/models.py:2111 +#: common/models.py:2166 +msgid "Enable interface integration" +msgstr "" + +#: common/models.py:2167 +msgid "Enable plugins to integrate into the user interface" +msgstr "" + +#: common/models.py:2173 msgid "Enable project codes" msgstr "Povolit kódy projektů" -#: common/models.py:2112 +#: common/models.py:2174 msgid "Enable project codes for tracking projects" msgstr "Povolit kódy projektů pro sledování projektů" -#: common/models.py:2117 +#: common/models.py:2179 msgid "Stocktake Functionality" msgstr "Funkce inventury" -#: common/models.py:2119 +#: common/models.py:2181 msgid "Enable stocktake functionality for recording stock levels and calculating stock value" msgstr "Povolit funkci inventury pro evidenci stavu zásob a výpočet hodnoty zásob" -#: common/models.py:2125 +#: common/models.py:2187 msgid "Exclude External Locations" msgstr "Vyloučit externí umístění" -#: common/models.py:2127 +#: common/models.py:2189 msgid "Exclude stock items in external locations from stocktake calculations" msgstr "Vyloučit skladové položky na externích místech z výpočtů inventury" -#: common/models.py:2133 +#: common/models.py:2195 msgid "Automatic Stocktake Period" msgstr "Perioda automatické inventury" -#: common/models.py:2135 +#: common/models.py:2197 msgid "Number of days between automatic stocktake recording (set to zero to disable)" msgstr "Počet dní mezi automatickým záznamem inventury (pro vypnutí nastavte nulu)" -#: common/models.py:2141 +#: common/models.py:2203 msgid "Report Deletion Interval" msgstr "Interval mazání reportů" -#: common/models.py:2143 +#: common/models.py:2205 msgid "Stocktake reports will be deleted after specified number of days" msgstr "Reporty o inventuře se po určitém počtu dní vymažou" -#: common/models.py:2150 +#: common/models.py:2212 msgid "Display Users full names" msgstr "Zobrazit celá jména uživatelů" -#: common/models.py:2151 +#: common/models.py:2213 msgid "Display Users full names instead of usernames" msgstr "Zobrazit plná jména uživatelů namísto uživatelských jmen" -#: common/models.py:2156 +#: common/models.py:2218 msgid "Enable Test Station Data" msgstr "Povolit data zkušební stanice" -#: common/models.py:2157 +#: common/models.py:2219 msgid "Enable test station data collection for test results" msgstr "Povolit sběr dat ze zkušební stanice pro výsledky testů" -#: common/models.py:2169 common/models.py:2549 -msgid "Settings key (must be unique - case insensitive" -msgstr "Klíč nastavení (musí být unikátní - rozlišuje malá a velká písmena" +#: common/models.py:2224 +msgid "Create Template on Upload" +msgstr "" -#: common/models.py:2212 +#: common/models.py:2226 +msgid "Create a new test template when uploading test data which does not match an existing template" +msgstr "" + +#: common/models.py:2279 msgid "Hide inactive parts" msgstr "Skrýt neaktivní díly" -#: common/models.py:2214 +#: common/models.py:2281 msgid "Hide inactive parts in results displayed on the homepage" msgstr "Skrýt neaktivní díly ve výsledcích zobrazených na domovské stránce" -#: common/models.py:2220 +#: common/models.py:2287 msgid "Show subscribed parts" msgstr "Zobrazit odebírané díly" -#: common/models.py:2221 +#: common/models.py:2288 msgid "Show subscribed parts on the homepage" msgstr "Zobrazit odebírané díly na domovské stránce" -#: common/models.py:2226 +#: common/models.py:2293 msgid "Show subscribed categories" msgstr "Zobrazit odebírané kategorie" -#: common/models.py:2227 +#: common/models.py:2294 msgid "Show subscribed part categories on the homepage" msgstr "Zobrazit kategorie odebíraných dílů na hlavní stránce" -#: common/models.py:2232 +#: common/models.py:2299 msgid "Show latest parts" msgstr "Zobrazit nejnovější díly" -#: common/models.py:2233 +#: common/models.py:2300 msgid "Show latest parts on the homepage" msgstr "Zobrazit nejnovější díly na domovské stránce" -#: common/models.py:2238 +#: common/models.py:2305 msgid "Show invalid BOMs" msgstr "Zobrazit neplatné kusovníky (BOMy)" -#: common/models.py:2239 +#: common/models.py:2306 msgid "Show BOMs that await validation on the homepage" msgstr "Zobrazit kusovníky (BOMy), které čekají na ověření, na domovské stránce" -#: common/models.py:2244 +#: common/models.py:2311 msgid "Show recent stock changes" msgstr "Zobrazit nedávné změny zásob" -#: common/models.py:2245 +#: common/models.py:2312 msgid "Show recently changed stock items on the homepage" msgstr "Zobrazit nedávno změněné skladové položky na domovské stránce" -#: common/models.py:2250 +#: common/models.py:2317 msgid "Show low stock" msgstr "Zobrazit nízký stav zásob" -#: common/models.py:2251 +#: common/models.py:2318 msgid "Show low stock items on the homepage" msgstr "Zobrazit na domovské stránce položky s nízkou skladovou zásobou" -#: common/models.py:2256 +#: common/models.py:2323 msgid "Show depleted stock" msgstr "Zobrazit vyčerpané zásoby" -#: common/models.py:2257 +#: common/models.py:2324 msgid "Show depleted stock items on the homepage" msgstr "Zobrazit vyčerpané položky na domovské stránce" -#: common/models.py:2262 +#: common/models.py:2329 msgid "Show needed stock" msgstr "Zobrazit potřebné zásoby" -#: common/models.py:2263 +#: common/models.py:2330 msgid "Show stock items needed for builds on the homepage" msgstr "Zobrazit skladové položky potřebné pro sestavy na domovské stránce" -#: common/models.py:2268 +#: common/models.py:2335 msgid "Show expired stock" msgstr "Zobrazit expirované zásoby" -#: common/models.py:2269 +#: common/models.py:2336 msgid "Show expired stock items on the homepage" msgstr "Zobrazit expirované skladové položky na domovské stránce" -#: common/models.py:2274 +#: common/models.py:2341 msgid "Show stale stock" msgstr "Zobrazit neaktuální zásoby" -#: common/models.py:2275 +#: common/models.py:2342 msgid "Show stale stock items on the homepage" msgstr "Zobrazit neaktuální skladové položky na domovské stránce" -#: common/models.py:2280 +#: common/models.py:2347 msgid "Show pending builds" msgstr "Zobrazit nevyřízené sestavy" -#: common/models.py:2281 +#: common/models.py:2348 msgid "Show pending builds on the homepage" msgstr "Zobrazit nevyřízené sestavy na domovské stránce" -#: common/models.py:2286 +#: common/models.py:2353 msgid "Show overdue builds" msgstr "Zobrazit sestavy po splatnosti" -#: common/models.py:2287 +#: common/models.py:2354 msgid "Show overdue builds on the homepage" msgstr "Zobrazit sestavy po splatnosti na domovské stránce" -#: common/models.py:2292 +#: common/models.py:2359 msgid "Show outstanding POs" msgstr "Zobrazit nevyřízené PO" -#: common/models.py:2293 +#: common/models.py:2360 msgid "Show outstanding POs on the homepage" msgstr "Zobrazit nevyřízené PO na domovské stránce" -#: common/models.py:2298 +#: common/models.py:2365 msgid "Show overdue POs" msgstr "Zobrazit PO po splatnosti" -#: common/models.py:2299 +#: common/models.py:2366 msgid "Show overdue POs on the homepage" msgstr "Zobrazit PO po splatnosti na domovské stránce" -#: common/models.py:2304 +#: common/models.py:2371 msgid "Show outstanding SOs" msgstr "Zobrazit nevyřízené SO" -#: common/models.py:2305 +#: common/models.py:2372 msgid "Show outstanding SOs on the homepage" msgstr "Zobrazit nevyřízené SO na domovské stránce" -#: common/models.py:2310 +#: common/models.py:2377 msgid "Show overdue SOs" msgstr "Zobrazit SO po splatnosti" -#: common/models.py:2311 +#: common/models.py:2378 msgid "Show overdue SOs on the homepage" msgstr "Zobrazit SO po splatnosti na domovské stránce" -#: common/models.py:2316 +#: common/models.py:2383 msgid "Show pending SO shipments" msgstr "Zobrazit čekající zásilky SO" -#: common/models.py:2317 +#: common/models.py:2384 msgid "Show pending SO shipments on the homepage" msgstr "Zobrazit čekající zásilky SO na domovské stránce" -#: common/models.py:2322 +#: common/models.py:2389 msgid "Show News" msgstr "Zobrazit novinky" -#: common/models.py:2323 +#: common/models.py:2390 msgid "Show news on the homepage" msgstr "Zobrazit novinky na domovské stránce" -#: common/models.py:2328 +#: common/models.py:2395 msgid "Inline label display" msgstr "Zobrazení štítků na řádku" -#: common/models.py:2330 +#: common/models.py:2397 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "Zobrazit štítky PDF v prohlížeči namísto stahování jako soubor" -#: common/models.py:2336 +#: common/models.py:2403 msgid "Default label printer" msgstr "Výchozí tiskárna štítků" -#: common/models.py:2338 +#: common/models.py:2405 msgid "Configure which label printer should be selected by default" msgstr "Konfigurovat tiskárnu štítků, která má být vybrána jako výchozí" -#: common/models.py:2344 +#: common/models.py:2411 msgid "Inline report display" msgstr "Zobrazení reportů na řádku" -#: common/models.py:2346 +#: common/models.py:2413 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "Zobrazit reporty PDF v prohlížeči namísto stahování jako soubor" -#: common/models.py:2352 +#: common/models.py:2419 msgid "Search Parts" msgstr "Hledat díly" -#: common/models.py:2353 +#: common/models.py:2420 msgid "Display parts in search preview window" msgstr "Zobrazit díly v náhledu hledání" -#: common/models.py:2358 +#: common/models.py:2425 msgid "Search Supplier Parts" msgstr "Hledat díly dodavatele" -#: common/models.py:2359 +#: common/models.py:2426 msgid "Display supplier parts in search preview window" msgstr "Zobrazit díly dodavatele v náhledu hledání" -#: common/models.py:2364 +#: common/models.py:2431 msgid "Search Manufacturer Parts" msgstr "Vyhledávání dílů výrobce" -#: common/models.py:2365 +#: common/models.py:2432 msgid "Display manufacturer parts in search preview window" msgstr "Zobrazit díly výrobce v náhledu hledání" -#: common/models.py:2370 +#: common/models.py:2437 msgid "Hide Inactive Parts" msgstr "Skrýt neaktivní díly" -#: common/models.py:2371 +#: common/models.py:2438 msgid "Excluded inactive parts from search preview window" msgstr "Vyloučené neaktivní části z okna náhledu vyhledávání" -#: common/models.py:2376 +#: common/models.py:2443 msgid "Search Categories" msgstr "Hledat kategorie" -#: common/models.py:2377 +#: common/models.py:2444 msgid "Display part categories in search preview window" msgstr "Zobrazit kategorie dílů v náhledu hledání" -#: common/models.py:2382 +#: common/models.py:2449 msgid "Search Stock" msgstr "Hledat zásoby" -#: common/models.py:2383 +#: common/models.py:2450 msgid "Display stock items in search preview window" msgstr "Zobrazit skladové položky v náhledu hledání" -#: common/models.py:2388 +#: common/models.py:2455 msgid "Hide Unavailable Stock Items" msgstr "Skrýt nedostupné skladové položky" -#: common/models.py:2390 +#: common/models.py:2457 msgid "Exclude stock items which are not available from the search preview window" msgstr "Vyloučit skladové položky, které nejsou dostupné z okna náhledu hledání" -#: common/models.py:2396 +#: common/models.py:2463 msgid "Search Locations" msgstr "Hledat umístění" -#: common/models.py:2397 +#: common/models.py:2464 msgid "Display stock locations in search preview window" msgstr "Zobrazit skladová umístění v náhledu hledání" -#: common/models.py:2402 +#: common/models.py:2469 msgid "Search Companies" msgstr "Hledat společnosti" -#: common/models.py:2403 +#: common/models.py:2470 msgid "Display companies in search preview window" msgstr "Zobrazit společnosti v náhledu hledání" -#: common/models.py:2408 +#: common/models.py:2475 msgid "Search Build Orders" msgstr "Hledat objednávky sestav" -#: common/models.py:2409 +#: common/models.py:2476 msgid "Display build orders in search preview window" msgstr "Zobrazit objednávky sestav v náhledu hledání" -#: common/models.py:2414 +#: common/models.py:2481 msgid "Search Purchase Orders" msgstr "Hledat nákupní objednávky" -#: common/models.py:2415 +#: common/models.py:2482 msgid "Display purchase orders in search preview window" msgstr "Zobrazit nákupní objednávky v náhledu hledání" -#: common/models.py:2420 +#: common/models.py:2487 msgid "Exclude Inactive Purchase Orders" msgstr "Vyloučit neaktivní nákupní objednávky" -#: common/models.py:2422 +#: common/models.py:2489 msgid "Exclude inactive purchase orders from search preview window" msgstr "Vyloučit neaktivní nákupní objednávky z okna náhledu vyhledávání" -#: common/models.py:2428 +#: common/models.py:2495 msgid "Search Sales Orders" msgstr "Hledat prodejní objednávky" -#: common/models.py:2429 +#: common/models.py:2496 msgid "Display sales orders in search preview window" msgstr "Zobrazit prodejní objednávky v náhledu hledání" -#: common/models.py:2434 +#: common/models.py:2501 msgid "Exclude Inactive Sales Orders" msgstr "Vyloučit neaktivní prodejní objednávky" -#: common/models.py:2436 +#: common/models.py:2503 msgid "Exclude inactive sales orders from search preview window" msgstr "Vyloučit neaktivní prodejní objednávky z okna náhledu vyhledávání" -#: common/models.py:2442 +#: common/models.py:2509 msgid "Search Return Orders" msgstr "Vyhledávání vrácených objednávek" -#: common/models.py:2443 +#: common/models.py:2510 msgid "Display return orders in search preview window" msgstr "Zobrazit vrácené objednávky v okně náhledu vyhledávání" -#: common/models.py:2448 +#: common/models.py:2515 msgid "Exclude Inactive Return Orders" msgstr "Vyloučit neaktivní vrácené objednávky" -#: common/models.py:2450 +#: common/models.py:2517 msgid "Exclude inactive return orders from search preview window" msgstr "Vyloučit neaktivní vrácené objednávky z okna náhledu vyhledávání" -#: common/models.py:2456 +#: common/models.py:2523 msgid "Search Preview Results" msgstr "Náhled výsledků vyhledávání" -#: common/models.py:2458 +#: common/models.py:2525 msgid "Number of results to show in each section of the search preview window" msgstr "Počet výsledků, které se mají zobrazit v každé části okna náhledu vyhledávání" -#: common/models.py:2464 +#: common/models.py:2531 msgid "Regex Search" msgstr "Regex hledání" -#: common/models.py:2465 +#: common/models.py:2532 msgid "Enable regular expressions in search queries" msgstr "Povolit regulární výrazy ve vyhledávacích dotazech" -#: common/models.py:2470 +#: common/models.py:2537 msgid "Whole Word Search" msgstr "Vyhledávání celého slova" -#: common/models.py:2471 +#: common/models.py:2538 msgid "Search queries return results for whole word matches" msgstr "Vyhledávací dotazy vracejí výsledky pro shody celých slov" -#: common/models.py:2476 +#: common/models.py:2543 msgid "Show Quantity in Forms" msgstr "Zobrazit množství ve formulářích" -#: common/models.py:2477 +#: common/models.py:2544 msgid "Display available part quantity in some forms" msgstr "Zobrazit dostupné množství dílů v některých formulářích" -#: common/models.py:2482 +#: common/models.py:2549 msgid "Escape Key Closes Forms" msgstr "Klávesa Escape zavře formuláře" -#: common/models.py:2483 +#: common/models.py:2550 msgid "Use the escape key to close modal forms" msgstr "Zavřít modální formuláře pomocí klávesy escape" -#: common/models.py:2488 +#: common/models.py:2555 msgid "Fixed Navbar" msgstr "Pevná navigační lišta" -#: common/models.py:2489 +#: common/models.py:2556 msgid "The navbar position is fixed to the top of the screen" msgstr "Pozice navigační lišty je pevně nastavena na horní okraj obrazovky" -#: common/models.py:2494 +#: common/models.py:2561 msgid "Date Format" msgstr "Formát data" -#: common/models.py:2495 +#: common/models.py:2562 msgid "Preferred format for displaying dates" msgstr "Preferovaný formát pro zobrazení datumů" -#: common/models.py:2508 part/templates/part/detail.html:41 +#: common/models.py:2575 part/templates/part/detail.html:41 msgid "Part Scheduling" msgstr "Plánování dílů" -#: common/models.py:2509 +#: common/models.py:2576 msgid "Display part scheduling information" msgstr "Zobrazit informace o plánování dílů" -#: common/models.py:2514 part/templates/part/detail.html:62 +#: common/models.py:2581 part/templates/part/detail.html:62 msgid "Part Stocktake" msgstr "Inventura dílu" -#: common/models.py:2516 +#: common/models.py:2583 msgid "Display part stocktake information (if stocktake functionality is enabled)" msgstr "Zobrazit informace o skladových zásobách dílů (pokud je povolena funkce inventury)" -#: common/models.py:2522 +#: common/models.py:2589 msgid "Table String Length" msgstr "Délka textu v tabulce" -#: common/models.py:2524 +#: common/models.py:2591 msgid "Maximum length limit for strings displayed in table views" msgstr "Maximální délka textu v zobrazeních tabulek" -#: common/models.py:2530 +#: common/models.py:2597 msgid "Receive error reports" msgstr "Přijímat zprávy o chybách" -#: common/models.py:2531 +#: common/models.py:2598 msgid "Receive notifications for system errors" msgstr "Dostávat oznámení o systémových chybách" -#: common/models.py:2536 +#: common/models.py:2603 msgid "Last used printing machines" msgstr "Poslední použité tiskárny" -#: common/models.py:2537 +#: common/models.py:2604 msgid "Save the last used printing machines for a user" msgstr "Uložte poslední použité tiskárny pro uživatele" -#: common/models.py:2557 common/models.py:2558 common/models.py:2715 -#: common/models.py:2716 common/models.py:2961 common/models.py:2962 -#: common/models.py:3288 common/models.py:3289 importer/models.py:88 -#: part/models.py:3307 part/models.py:3394 part/models.py:3468 -#: part/models.py:3496 plugin/models.py:274 plugin/models.py:275 -#: report/templates/report/inventree_test_report.html:105 -#: templates/js/translated/stock.js:3120 users/models.py:111 +#: common/models.py:2621 common/models.py:2622 common/models.py:2779 +#: common/models.py:2780 common/models.py:3025 common/models.py:3026 +#: common/models.py:3349 common/models.py:3350 common/models.py:3534 +#: importer/models.py:89 part/models.py:3358 part/models.py:3445 +#: part/models.py:3519 part/models.py:3547 plugin/models.py:313 +#: plugin/models.py:314 report/templates/report/inventree_test_report.html:105 +#: templates/js/translated/stock.js:3121 users/models.py:111 msgid "User" msgstr "Uživatel" -#: common/models.py:2580 +#: common/models.py:2644 msgid "Price break quantity" msgstr "Množství cenové slevy" -#: common/models.py:2587 company/serializers.py:513 order/admin.py:42 -#: order/models.py:1430 order/models.py:2417 -#: templates/js/translated/company.js:1823 templates/js/translated/part.js:1892 +#: common/models.py:2651 company/serializers.py:524 order/admin.py:42 +#: order/models.py:1447 order/models.py:2456 +#: templates/js/translated/company.js:1824 templates/js/translated/part.js:1892 #: templates/js/translated/pricing.js:621 #: templates/js/translated/return_order.js:739 msgid "Price" msgstr "Cena" -#: common/models.py:2588 +#: common/models.py:2652 msgid "Unit price at specified quantity" msgstr "Jednotková cena při stanoveném množství" -#: common/models.py:2692 common/models.py:2877 +#: common/models.py:2756 common/models.py:2941 msgid "Endpoint" msgstr "Koncový bod" -#: common/models.py:2693 +#: common/models.py:2757 msgid "Endpoint at which this webhook is received" msgstr "Koncový bod, ve kterém je tento webhook přijímán" -#: common/models.py:2703 +#: common/models.py:2767 msgid "Name for this webhook" msgstr "Název tohoto webhooku" -#: common/models.py:2707 +#: common/models.py:2771 msgid "Is this webhook active" msgstr "Je tento webhook aktivní" -#: common/models.py:2723 users/models.py:159 +#: common/models.py:2787 users/models.py:159 msgid "Token" msgstr "Token" -#: common/models.py:2724 +#: common/models.py:2788 msgid "Token for access" msgstr "Token pro přístup" -#: common/models.py:2732 +#: common/models.py:2796 msgid "Secret" msgstr "Tajný klíč" -#: common/models.py:2733 +#: common/models.py:2797 msgid "Shared secret for HMAC" msgstr "Sdílený tajný klíč pro HMAC" -#: common/models.py:2841 +#: common/models.py:2905 msgid "Message ID" msgstr "ID zprávy" -#: common/models.py:2842 +#: common/models.py:2906 msgid "Unique identifier for this message" msgstr "Unikátní identifikátor pro tuto zprávu" -#: common/models.py:2850 +#: common/models.py:2914 msgid "Host" msgstr "Hostitel" -#: common/models.py:2851 +#: common/models.py:2915 msgid "Host from which this message was received" msgstr "Hostitel, od kterého byla tato zpráva přijata" -#: common/models.py:2859 +#: common/models.py:2923 msgid "Header" msgstr "Záhlaví" -#: common/models.py:2860 +#: common/models.py:2924 msgid "Header of this message" msgstr "Záhlaví této zprávy" -#: common/models.py:2867 +#: common/models.py:2931 msgid "Body" msgstr "Tělo" -#: common/models.py:2868 +#: common/models.py:2932 msgid "Body of this message" msgstr "Tělo zprávy" -#: common/models.py:2878 +#: common/models.py:2942 msgid "Endpoint on which this message was received" msgstr "Koncový bod, na kterém byla zpráva přijata" -#: common/models.py:2883 +#: common/models.py:2947 msgid "Worked on" msgstr "Pracoval na" -#: common/models.py:2884 +#: common/models.py:2948 msgid "Was the work on this message finished?" msgstr "Byla práce na této zprávě dokončena?" -#: common/models.py:3010 +#: common/models.py:3074 msgid "Id" msgstr "ID" -#: common/models.py:3012 templates/js/translated/company.js:965 -#: templates/js/translated/news.js:44 +#: common/models.py:3076 part/serializers.py:271 +#: templates/js/translated/company.js:966 templates/js/translated/news.js:44 msgid "Title" msgstr "Název" -#: common/models.py:3014 common/models.py:3272 company/models.py:149 -#: company/models.py:446 company/models.py:512 company/models.py:818 -#: order/models.py:302 order/models.py:1385 order/models.py:1817 -#: part/admin.py:55 part/models.py:1057 +#: common/models.py:3078 common/models.py:3333 company/models.py:146 +#: company/models.py:443 company/models.py:509 company/models.py:815 +#: order/models.py:309 order/models.py:1402 order/models.py:1846 +#: part/admin.py:55 part/models.py:1118 #: part/templates/part/part_scheduling.html:11 #: report/templates/report/inventree_build_order_report.html:164 -#: stock/admin.py:229 templates/js/translated/company.js:1319 -#: templates/js/translated/company.js:1673 templates/js/translated/order.js:376 +#: stock/admin.py:230 templates/js/translated/company.js:1320 +#: templates/js/translated/company.js:1674 templates/js/translated/order.js:376 #: templates/js/translated/part.js:2475 -#: templates/js/translated/purchase_order.js:2110 -#: templates/js/translated/purchase_order.js:2274 +#: templates/js/translated/purchase_order.js:2094 +#: templates/js/translated/purchase_order.js:2258 #: templates/js/translated/return_order.js:778 -#: templates/js/translated/sales_order.js:1092 -#: templates/js/translated/sales_order.js:2023 +#: templates/js/translated/sales_order.js:1058 +#: templates/js/translated/sales_order.js:2004 msgid "Link" msgstr "Odkaz" -#: common/models.py:3016 templates/js/translated/news.js:60 +#: common/models.py:3080 templates/js/translated/news.js:60 msgid "Published" msgstr "Zveřejněno" -#: common/models.py:3018 templates/InvenTree/settings/plugin_settings.html:32 +#: common/models.py:3082 templates/InvenTree/settings/plugin_settings.html:32 #: templates/js/translated/news.js:56 templates/js/translated/plugin.js:103 msgid "Author" msgstr "Autor" -#: common/models.py:3020 templates/js/translated/news.js:52 +#: common/models.py:3084 templates/js/translated/news.js:52 msgid "Summary" msgstr "Souhrn" -#: common/models.py:3023 +#: common/models.py:3087 msgid "Read" msgstr "Přečteno" -#: common/models.py:3023 +#: common/models.py:3087 msgid "Was this news item read?" msgstr "Byla tato novinka přečtena?" -#: common/models.py:3040 company/models.py:159 part/models.py:1067 +#: common/models.py:3104 company/models.py:156 part/models.py:1128 #: report/templates/report/inventree_bill_of_materials_report.html:126 #: report/templates/report/inventree_bill_of_materials_report.html:148 #: report/templates/report/inventree_return_order_report.html:35 -#: stock/templates/stock/item_base.html:133 templates/503.html:31 +#: stock/templates/stock/item_base.html:130 templates/503.html:31 #: templates/hover_image.html:7 templates/hover_image.html:9 #: templates/modals.html:6 msgid "Image" msgstr "Obrazek" -#: common/models.py:3040 +#: common/models.py:3104 msgid "Image file" msgstr "Soubor obrázku" -#: common/models.py:3052 common/models.py:3256 +#: common/models.py:3116 common/models.py:3317 msgid "Target model type for this image" msgstr "Cílový typ modelu pro tento obrázek" -#: common/models.py:3056 +#: common/models.py:3120 msgid "Target model ID for this image" msgstr "Cílové ID modelu pro tento obrázek" -#: common/models.py:3078 +#: common/models.py:3142 msgid "Custom Unit" msgstr "" -#: common/models.py:3099 +#: common/models.py:3160 msgid "Unit symbol must be unique" msgstr "" -#: common/models.py:3114 +#: common/models.py:3175 msgid "Unit name must be a valid identifier" msgstr "Název jednotky musí být platný identifikátor" -#: common/models.py:3133 +#: common/models.py:3194 msgid "Unit name" msgstr "Název jednotky" -#: common/models.py:3140 templates/InvenTree/settings/settings_staff_js.html:75 +#: common/models.py:3201 templates/InvenTree/settings/settings_staff_js.html:75 msgid "Symbol" msgstr "Symbol" -#: common/models.py:3141 +#: common/models.py:3202 msgid "Optional unit symbol" msgstr "Volitelný symbol jednotky" -#: common/models.py:3147 templates/InvenTree/settings/settings_staff_js.html:71 +#: common/models.py:3208 templates/InvenTree/settings/settings_staff_js.html:71 msgid "Definition" msgstr "Definice" -#: common/models.py:3148 +#: common/models.py:3209 msgid "Unit definition" msgstr "Definice jednotky" -#: common/models.py:3206 common/models.py:3263 stock/models.py:2558 -#: templates/js/translated/attachment.js:119 +#: common/models.py:3267 common/models.py:3324 stock/models.py:2674 +#: stock/serializers.py:244 templates/js/translated/attachment.js:119 #: templates/js/translated/attachment.js:345 msgid "Attachment" msgstr "Příloha" -#: common/models.py:3218 +#: common/models.py:3279 msgid "Missing file" msgstr "Chybějící soubor" -#: common/models.py:3219 +#: common/models.py:3280 msgid "Missing external link" msgstr "Chybějící externí odkaz" -#: common/models.py:3264 +#: common/models.py:3325 msgid "Select file to attach" msgstr "Vyberte soubor k přiložení" -#: common/models.py:3279 templates/js/translated/attachment.js:120 +#: common/models.py:3340 templates/js/translated/attachment.js:120 #: templates/js/translated/attachment.js:360 msgid "Comment" msgstr "Komentář" -#: common/models.py:3280 +#: common/models.py:3341 msgid "Attachment comment" msgstr "Komentář přílohy" -#: common/models.py:3296 +#: common/models.py:3357 msgid "Upload date" msgstr "Datum nahrání" -#: common/models.py:3297 +#: common/models.py:3358 msgid "Date the file was uploaded" msgstr "Datum, kdy byl soubor nahrán" -#: common/models.py:3301 +#: common/models.py:3362 msgid "File size" msgstr "Velikost souboru" -#: common/models.py:3301 +#: common/models.py:3362 msgid "File size in bytes" msgstr "Velikost souboru v bytech" -#: common/models.py:3339 common/serializers.py:562 +#: common/models.py:3400 common/serializers.py:609 msgid "Invalid model type specified for attachment" msgstr "Uveden neplatný typ modelu pro přílohu" -#: common/notifications.py:314 +#: common/models.py:3409 plugin/models.py:43 users/models.py:100 +msgid "Key" +msgstr "" + +#: common/models.py:3410 +msgid "Value that will be saved in the models database" +msgstr "" + +#: common/models.py:3413 +msgid "Name of the state" +msgstr "" + +#: common/models.py:3417 part/serializers.py:273 +msgid "Label" +msgstr "" + +#: common/models.py:3418 +msgid "Label that will be displayed in the frontend" +msgstr "" + +#: common/models.py:3424 +msgid "Color" +msgstr "" + +#: common/models.py:3425 +msgid "Color that will be displayed in the frontend" +msgstr "" + +#: common/models.py:3428 +msgid "Logical Key" +msgstr "" + +#: common/models.py:3430 +msgid "State logical key that is equal to this custom state in business logic" +msgstr "" + +#: common/models.py:3438 part/serializers.py:275 +msgid "Model" +msgstr "" + +#: common/models.py:3439 +msgid "Model this state is associated with" +msgstr "" + +#: common/models.py:3443 +msgid "Reference Status Set" +msgstr "" + +#: common/models.py:3444 +msgid "Status set that is extended with this custom state" +msgstr "" + +#: common/models.py:3450 +msgid "Custom State" +msgstr "" + +#: common/models.py:3451 +msgid "Custom States" +msgstr "" + +#: common/models.py:3466 +msgid "Model must be selected" +msgstr "" + +#: common/models.py:3469 +msgid "Key must be selected" +msgstr "" + +#: common/models.py:3472 +msgid "Logical key must be selected" +msgstr "" + +#: common/models.py:3476 +msgid "Key must be different from logical key" +msgstr "" + +#: common/models.py:3480 +msgid "Reference status must be selected" +msgstr "" + +#: common/models.py:3492 +msgid "Reference status set not found" +msgstr "" + +#: common/models.py:3498 +msgid "Key must be different from the logical keys of the reference status" +msgstr "" + +#: common/models.py:3504 +msgid "Logical key must be in the logical keys of the reference status" +msgstr "" + +#: common/models.py:3519 +msgid "Barcode Scan" +msgstr "" + +#: common/models.py:3523 importer/models.py:512 part/models.py:4009 +msgid "Data" +msgstr "" + +#: common/models.py:3524 +msgid "Barcode data" +msgstr "" + +#: common/models.py:3535 +msgid "User who scanned the barcode" +msgstr "" + +#: common/models.py:3540 importer/models.py:60 +msgid "Timestamp" +msgstr "" + +#: common/models.py:3541 +msgid "Date and time of the barcode scan" +msgstr "" + +#: common/models.py:3547 +msgid "URL endpoint which processed the barcode" +msgstr "" + +#: common/models.py:3554 order/models.py:1437 plugin/serializers.py:89 +msgid "Context" +msgstr "Kontext" + +#: common/models.py:3555 +msgid "Context data for the barcode scan" +msgstr "" + +#: common/models.py:3562 +msgid "Response" +msgstr "" + +#: common/models.py:3563 +msgid "Response data from the barcode scan" +msgstr "" + +#: common/models.py:3569 report/templates/report/inventree_test_report.html:103 +#: stock/models.py:2660 +msgid "Result" +msgstr "" + +#: common/models.py:3570 +msgid "Was the barcode scan successful?" +msgstr "" + +#: common/notifications.py:328 #, python-brace-format msgid "New {verbose_name}" msgstr "Nový {verbose_name}" -#: common/notifications.py:316 +#: common/notifications.py:330 msgid "A new order has been created and assigned to you" msgstr "Byla vytvořena nová objednávka a přiřazena k vám" -#: common/notifications.py:322 +#: common/notifications.py:336 #, python-brace-format msgid "{verbose_name} canceled" msgstr "{verbose_name} zrušeno" -#: common/notifications.py:324 +#: common/notifications.py:338 msgid "A order that is assigned to you was canceled" msgstr "Objednávka, která je vám přidělena, byla zrušena" -#: common/notifications.py:330 common/notifications.py:337 order/api.py:462 +#: common/notifications.py:344 common/notifications.py:351 order/api.py:440 msgid "Items Received" msgstr "" -#: common/notifications.py:332 +#: common/notifications.py:346 msgid "Items have been received against a purchase order" msgstr "" -#: common/notifications.py:339 +#: common/notifications.py:353 msgid "Items have been received against a return order" msgstr "" -#: common/notifications.py:457 +#: common/notifications.py:475 msgid "Error raised by plugin" msgstr "" -#: common/serializers.py:375 +#: common/serializers.py:423 msgid "Is Running" msgstr "" -#: common/serializers.py:381 +#: common/serializers.py:429 msgid "Pending Tasks" msgstr "" -#: common/serializers.py:387 +#: common/serializers.py:435 msgid "Scheduled Tasks" msgstr "" -#: common/serializers.py:393 +#: common/serializers.py:441 msgid "Failed Tasks" msgstr "" -#: common/serializers.py:408 +#: common/serializers.py:456 msgid "Task ID" msgstr "" -#: common/serializers.py:408 +#: common/serializers.py:456 msgid "Unique task ID" msgstr "" -#: common/serializers.py:410 +#: common/serializers.py:458 msgid "Lock" msgstr "" -#: common/serializers.py:410 +#: common/serializers.py:458 msgid "Lock time" msgstr "Čas uzamčení" -#: common/serializers.py:412 +#: common/serializers.py:460 msgid "Task name" msgstr "Jméno úkolu" -#: common/serializers.py:414 +#: common/serializers.py:462 msgid "Function" msgstr "Funkce" -#: common/serializers.py:414 +#: common/serializers.py:462 msgid "Function name" msgstr "Název funkce" -#: common/serializers.py:416 +#: common/serializers.py:464 msgid "Arguments" msgstr "Argumenty" -#: common/serializers.py:416 +#: common/serializers.py:464 msgid "Task arguments" msgstr "Argumenty úlohy" -#: common/serializers.py:419 +#: common/serializers.py:467 msgid "Keyword Arguments" msgstr "Argumenty klíčových slov" -#: common/serializers.py:419 +#: common/serializers.py:467 msgid "Task keyword arguments" msgstr "Argumenty klíčových slov úlohy" -#: common/serializers.py:529 +#: common/serializers.py:577 msgid "Filename" msgstr "Název souboru" -#: common/serializers.py:536 report/api.py:100 report/serializers.py:53 +#: common/serializers.py:584 report/api.py:100 report/serializers.py:54 msgid "Model Type" msgstr "Typ modelu" -#: common/serializers.py:565 +#: common/serializers.py:612 msgid "User does not have permission to create or edit attachments for this model" msgstr "Uživatel nemá oprávnění k vytváření nebo úpravám příloh pro tento model" @@ -4116,15 +4295,15 @@ msgstr "Přiřadit pole" msgid "Match Items" msgstr "Přiřadit položky" -#: common/views.py:401 +#: common/views.py:397 msgid "Fields matching failed" msgstr "Shoda polí se nezdařila" -#: common/views.py:464 +#: common/views.py:460 msgid "Parts imported" msgstr "Importované díly" -#: common/views.py:494 order/templates/order/order_wizard/match_fields.html:27 +#: common/views.py:490 order/templates/order/order_wizard/match_fields.html:27 #: order/templates/order/order_wizard/match_parts.html:19 #: order/templates/order/order_wizard/po_upload.html:49 #: part/templates/part/import_wizard/match_fields.html:27 @@ -4155,429 +4334,429 @@ msgstr "Interní díl je aktivní" msgid "Supplier is Active" msgstr "Dodavatel je aktivní" -#: company/models.py:100 company/models.py:371 +#: company/models.py:97 company/models.py:368 #: company/templates/company/company_base.html:8 #: company/templates/company/company_base.html:12 stock/api.py:812 -#: templates/InvenTree/search.html:178 templates/js/translated/company.js:496 +#: templates/InvenTree/search.html:178 templates/js/translated/company.js:497 msgid "Company" msgstr "Společnost" -#: company/models.py:101 company/views.py:51 +#: company/models.py:98 company/views.py:51 #: templates/js/translated/search.js:192 msgid "Companies" msgstr "Společnosti" -#: company/models.py:117 +#: company/models.py:114 msgid "Company description" msgstr "Popis společnosti" -#: company/models.py:118 +#: company/models.py:115 msgid "Description of the company" msgstr "Popis společnosti" -#: company/models.py:123 company/templates/company/company_base.html:106 +#: company/models.py:120 company/templates/company/company_base.html:106 #: templates/InvenTree/settings/plugin_settings.html:54 -#: templates/js/translated/company.js:532 +#: templates/js/translated/company.js:533 msgid "Website" msgstr "Webová stránka" -#: company/models.py:123 +#: company/models.py:120 msgid "Company website URL" msgstr "Webové stránky společnosti" -#: company/models.py:128 +#: company/models.py:125 msgid "Phone number" msgstr "Telefonní číslo" -#: company/models.py:130 +#: company/models.py:127 msgid "Contact phone number" msgstr "Kontaktní telefonní číslo" -#: company/models.py:137 +#: company/models.py:134 msgid "Contact email address" msgstr "Kontaktní e-mailová adresa" -#: company/models.py:142 company/models.py:275 -#: company/templates/company/company_base.html:145 order/models.py:342 -#: order/templates/order/order_base.html:208 -#: order/templates/order/return_order_base.html:177 -#: order/templates/order/sales_order_base.html:221 +#: company/models.py:139 company/models.py:272 +#: company/templates/company/company_base.html:145 order/models.py:349 +#: order/templates/order/order_base.html:217 +#: order/templates/order/return_order_base.html:178 +#: order/templates/order/sales_order_base.html:222 msgid "Contact" msgstr "Kontakt" -#: company/models.py:144 +#: company/models.py:141 msgid "Point of contact" msgstr "Kontaktní místo" -#: company/models.py:150 +#: company/models.py:147 msgid "Link to external company information" msgstr "Odkaz na externí informace o společnosti" -#: company/models.py:163 +#: company/models.py:160 msgid "Is this company active?" msgstr "Je tato společnost aktivní?" -#: company/models.py:168 +#: company/models.py:165 msgid "Is customer" msgstr "" -#: company/models.py:169 +#: company/models.py:166 msgid "Do you sell items to this company?" msgstr "Prodáváte zboží této společnosti?" -#: company/models.py:174 +#: company/models.py:171 msgid "Is supplier" msgstr "" -#: company/models.py:175 +#: company/models.py:172 msgid "Do you purchase items from this company?" msgstr "Zakupujete zboží od této společnosti?" -#: company/models.py:180 +#: company/models.py:177 msgid "Is manufacturer" msgstr "" -#: company/models.py:181 +#: company/models.py:178 msgid "Does this company manufacture parts?" msgstr "Vyrábí tato společnost díly?" -#: company/models.py:189 +#: company/models.py:186 msgid "Default currency used for this company" msgstr "Výchozí měna používaná pro tuto společnost" -#: company/models.py:314 company/templates/company/company_base.html:124 -#: order/models.py:352 order/templates/order/order_base.html:215 -#: order/templates/order/return_order_base.html:184 -#: order/templates/order/sales_order_base.html:228 +#: company/models.py:311 company/templates/company/company_base.html:124 +#: order/models.py:359 order/templates/order/order_base.html:224 +#: order/templates/order/return_order_base.html:185 +#: order/templates/order/sales_order_base.html:229 msgid "Address" msgstr "Adresa" -#: company/models.py:315 company/templates/company/sidebar.html:35 +#: company/models.py:312 company/templates/company/sidebar.html:35 msgid "Addresses" msgstr "Adresy" -#: company/models.py:372 +#: company/models.py:369 msgid "Select company" msgstr "Vyberte společnost" -#: company/models.py:377 +#: company/models.py:374 msgid "Address title" msgstr "Název adresy" -#: company/models.py:378 +#: company/models.py:375 msgid "Title describing the address entry" msgstr "Název popisující záznam adresy" -#: company/models.py:384 +#: company/models.py:381 msgid "Primary address" msgstr "Primární adresa" -#: company/models.py:385 +#: company/models.py:382 msgid "Set as primary address" msgstr "Nastavit jako primární adresu" -#: company/models.py:390 templates/js/translated/company.js:914 -#: templates/js/translated/company.js:971 +#: company/models.py:387 templates/js/translated/company.js:915 +#: templates/js/translated/company.js:972 msgid "Line 1" msgstr "Řádek 1" -#: company/models.py:391 +#: company/models.py:388 msgid "Address line 1" msgstr "1. řádek adresy" -#: company/models.py:397 templates/js/translated/company.js:915 -#: templates/js/translated/company.js:977 +#: company/models.py:394 templates/js/translated/company.js:916 +#: templates/js/translated/company.js:978 msgid "Line 2" msgstr "Řádek 2" -#: company/models.py:398 +#: company/models.py:395 msgid "Address line 2" msgstr "2. řádek adresy" -#: company/models.py:404 company/models.py:405 -#: templates/js/translated/company.js:983 +#: company/models.py:401 company/models.py:402 +#: templates/js/translated/company.js:984 msgid "Postal code" msgstr "PSČ" -#: company/models.py:411 +#: company/models.py:408 msgid "City/Region" msgstr "Město/Region" -#: company/models.py:412 +#: company/models.py:409 msgid "Postal code city/region" msgstr "PSČ město/region" -#: company/models.py:418 +#: company/models.py:415 msgid "State/Province" msgstr "Stát/kraj" -#: company/models.py:419 +#: company/models.py:416 msgid "State or province" msgstr "Stát nebo provincie" -#: company/models.py:425 templates/js/translated/company.js:1001 +#: company/models.py:422 templates/js/translated/company.js:1002 msgid "Country" msgstr "Země" -#: company/models.py:426 +#: company/models.py:423 msgid "Address country" msgstr "Adresovaná země" -#: company/models.py:432 +#: company/models.py:429 msgid "Courier shipping notes" msgstr "Doručovací poznámky pro kurýra" -#: company/models.py:433 +#: company/models.py:430 msgid "Notes for shipping courier" msgstr "Poznámky pro kurýra" -#: company/models.py:439 +#: company/models.py:436 msgid "Internal shipping notes" msgstr "Interní přepravní poznámky" -#: company/models.py:440 +#: company/models.py:437 msgid "Shipping notes for internal use" msgstr "Doručovací poznámky pro interní použití" -#: company/models.py:447 +#: company/models.py:444 msgid "Link to address information (external)" msgstr "Odkaz na informace o adrese (externí)" -#: company/models.py:470 company/models.py:587 company/models.py:811 +#: company/models.py:467 company/models.py:584 company/models.py:808 #: company/templates/company/manufacturer_part.html:7 #: company/templates/company/manufacturer_part.html:24 -#: stock/templates/stock/item_base.html:217 +#: stock/templates/stock/item_base.html:214 msgid "Manufacturer Part" msgstr "Výrobce dílu" -#: company/models.py:487 company/models.py:779 stock/models.py:787 -#: stock/serializers.py:445 stock/templates/stock/item_base.html:142 +#: company/models.py:484 company/models.py:776 stock/models.py:864 +#: stock/serializers.py:455 stock/templates/stock/item_base.html:139 #: templates/js/translated/bom.js:622 msgid "Base Part" msgstr "Základní díl" -#: company/models.py:489 company/models.py:781 +#: company/models.py:486 company/models.py:778 msgid "Select part" msgstr "Zvolte díl" -#: company/models.py:498 company/templates/company/company_base.html:82 +#: company/models.py:495 company/templates/company/company_base.html:82 #: company/templates/company/manufacturer_part.html:90 -#: company/templates/company/supplier_part.html:145 part/serializers.py:554 -#: stock/templates/stock/item_base.html:207 -#: templates/js/translated/company.js:507 -#: templates/js/translated/company.js:1118 -#: templates/js/translated/company.js:1296 -#: templates/js/translated/company.js:1611 +#: company/templates/company/supplier_part.html:146 part/serializers.py:598 +#: stock/templates/stock/item_base.html:204 +#: templates/js/translated/company.js:508 +#: templates/js/translated/company.js:1119 +#: templates/js/translated/company.js:1297 +#: templates/js/translated/company.js:1612 #: templates/js/translated/table_filters.js:812 msgid "Manufacturer" msgstr "Výrobce" -#: company/models.py:499 +#: company/models.py:496 msgid "Select manufacturer" msgstr "Vyberte výrobce" -#: company/models.py:505 company/templates/company/manufacturer_part.html:101 -#: company/templates/company/supplier_part.html:153 order/serializers.py:556 -#: part/serializers.py:564 templates/js/translated/company.js:351 -#: templates/js/translated/company.js:1117 -#: templates/js/translated/company.js:1312 -#: templates/js/translated/company.js:1630 templates/js/translated/part.js:1807 -#: templates/js/translated/purchase_order.js:1921 -#: templates/js/translated/purchase_order.js:2123 +#: company/models.py:502 company/templates/company/manufacturer_part.html:101 +#: company/templates/company/supplier_part.html:154 order/serializers.py:641 +#: part/serializers.py:608 templates/js/translated/company.js:352 +#: templates/js/translated/company.js:1118 +#: templates/js/translated/company.js:1313 +#: templates/js/translated/company.js:1631 templates/js/translated/part.js:1807 +#: templates/js/translated/purchase_order.js:1905 +#: templates/js/translated/purchase_order.js:2107 msgid "MPN" msgstr "MPN" -#: company/models.py:513 +#: company/models.py:510 msgid "URL for external manufacturer part link" msgstr "URL pro odkaz na díl externího výrobce" -#: company/models.py:522 +#: company/models.py:519 msgid "Manufacturer part description" msgstr "Popis dílu výrobce" -#: company/models.py:575 +#: company/models.py:572 msgid "Manufacturer Part Parameter" msgstr "" -#: company/models.py:594 +#: company/models.py:591 msgid "Parameter name" msgstr "Název parametru" -#: company/models.py:600 report/templates/report/inventree_test_report.html:104 -#: stock/models.py:2550 templates/js/translated/company.js:1166 -#: templates/js/translated/company.js:1419 templates/js/translated/part.js:1499 +#: company/models.py:597 report/templates/report/inventree_test_report.html:104 +#: stock/models.py:2666 templates/js/translated/company.js:1167 +#: templates/js/translated/company.js:1420 templates/js/translated/part.js:1499 #: templates/js/translated/stock.js:1607 msgid "Value" msgstr "Hodnota" -#: company/models.py:601 +#: company/models.py:598 msgid "Parameter value" msgstr "Hodnota parametru" -#: company/models.py:608 company/templates/company/supplier_part.html:168 -#: part/admin.py:57 part/models.py:1147 part/models.py:3771 -#: part/templates/part/part_base.html:293 -#: templates/js/translated/company.js:1425 templates/js/translated/part.js:1518 +#: company/models.py:605 company/templates/company/supplier_part.html:169 +#: part/admin.py:57 part/models.py:1208 part/models.py:3822 +#: part/templates/part/part_base.html:301 +#: templates/js/translated/company.js:1426 templates/js/translated/part.js:1518 #: templates/js/translated/part.js:1622 templates/js/translated/part.js:2376 msgid "Units" msgstr "Jednotky" -#: company/models.py:609 +#: company/models.py:606 msgid "Parameter units" msgstr "Jednotky parametru" -#: company/models.py:662 company/templates/company/supplier_part.html:7 -#: company/templates/company/supplier_part.html:24 order/api.py:442 -#: order/serializers.py:491 stock/models.py:798 -#: stock/templates/stock/item_base.html:233 -#: templates/js/translated/build.js:1052 -#: templates/js/translated/company.js:1600 -#: templates/js/translated/purchase_order.js:752 -#: templates/js/translated/stock.js:2365 +#: company/models.py:659 company/templates/company/supplier_part.html:8 +#: company/templates/company/supplier_part.html:25 order/api.py:392 +#: order/serializers.py:576 stock/models.py:875 +#: stock/templates/stock/item_base.html:230 +#: templates/js/translated/build.js:1055 +#: templates/js/translated/company.js:1601 +#: templates/js/translated/purchase_order.js:735 +#: templates/js/translated/stock.js:2366 msgid "Supplier Part" msgstr "Díl dodavatele" -#: company/models.py:719 +#: company/models.py:716 msgid "Pack units must be compatible with the base part units" msgstr "Jednotky balení musí být kompatibilní s jednotkami základních dílů" -#: company/models.py:726 +#: company/models.py:723 msgid "Pack units must be greater than zero" msgstr "Jednotky balení musí být větší než nula" -#: company/models.py:740 +#: company/models.py:737 msgid "Linked manufacturer part must reference the same base part" msgstr "Odkazovaný díl výrobce musí odkazovat na stejný základní díl" -#: company/models.py:789 company/templates/company/company_base.html:87 -#: company/templates/company/supplier_part.html:129 order/models.py:491 -#: order/templates/order/order_base.html:141 part/bom.py:280 part/bom.py:318 -#: part/serializers.py:538 plugin/builtin/suppliers/digikey.py:25 +#: company/models.py:786 company/templates/company/company_base.html:87 +#: company/templates/company/supplier_part.html:130 order/models.py:503 +#: order/templates/order/order_base.html:150 part/bom.py:279 part/bom.py:314 +#: part/serializers.py:582 plugin/builtin/suppliers/digikey.py:25 #: plugin/builtin/suppliers/lcsc.py:26 plugin/builtin/suppliers/mouser.py:24 -#: plugin/builtin/suppliers/tme.py:26 stock/templates/stock/item_base.html:224 +#: plugin/builtin/suppliers/tme.py:26 stock/templates/stock/item_base.html:221 #: templates/email/overdue_purchase_order.html:16 -#: templates/js/translated/company.js:350 -#: templates/js/translated/company.js:511 -#: templates/js/translated/company.js:1584 templates/js/translated/part.js:1775 +#: templates/js/translated/company.js:351 +#: templates/js/translated/company.js:512 +#: templates/js/translated/company.js:1585 templates/js/translated/part.js:1775 #: templates/js/translated/pricing.js:498 -#: templates/js/translated/purchase_order.js:1759 +#: templates/js/translated/purchase_order.js:1743 #: templates/js/translated/table_filters.js:816 msgid "Supplier" msgstr "Dodavatel" -#: company/models.py:790 +#: company/models.py:787 msgid "Select supplier" msgstr "Vyberte dodavatele" -#: company/models.py:796 part/serializers.py:549 +#: company/models.py:793 part/serializers.py:593 msgid "Supplier stock keeping unit" msgstr "Skladová evidence dodavatele" -#: company/models.py:802 +#: company/models.py:799 msgid "Is this supplier part active?" msgstr "Je tento díl dodavatele aktivní?" -#: company/models.py:812 +#: company/models.py:809 msgid "Select manufacturer part" msgstr "Vyberte díl výrobce" -#: company/models.py:819 +#: company/models.py:816 msgid "URL for external supplier part link" msgstr "Adresa URL pro odkaz na externí díl dodavatele" -#: company/models.py:828 +#: company/models.py:825 msgid "Supplier part description" msgstr "Popis dílu dodavatele" -#: company/models.py:835 company/templates/company/supplier_part.html:187 -#: order/serializers.py:698 part/admin.py:415 part/models.py:4288 +#: company/models.py:832 company/templates/company/supplier_part.html:188 +#: order/serializers.py:783 part/admin.py:415 part/models.py:4345 #: part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_bill_of_materials_report.html:140 #: report/templates/report/inventree_purchase_order_report.html:32 #: report/templates/report/inventree_return_order_report.html:27 #: report/templates/report/inventree_sales_order_report.html:32 #: report/templates/report/inventree_stock_location_report.html:105 -#: stock/serializers.py:776 templates/js/translated/purchase_order.js:1185 -#: templates/js/translated/purchase_order.js:1344 +#: stock/serializers.py:807 templates/js/translated/purchase_order.js:1168 +#: templates/js/translated/purchase_order.js:1327 msgid "Note" msgstr "Poznámka" -#: company/models.py:844 part/models.py:2117 +#: company/models.py:841 part/models.py:2177 msgid "base cost" msgstr "základní cena" -#: company/models.py:845 part/models.py:2118 +#: company/models.py:842 part/models.py:2178 msgid "Minimum charge (e.g. stocking fee)" msgstr "Minimální poplatek (např. poplatek za skladování)" -#: company/models.py:853 +#: company/models.py:850 msgid "Part packaging" msgstr "Balení dílu" -#: company/models.py:858 templates/js/translated/company.js:1651 +#: company/models.py:855 templates/js/translated/company.js:1652 #: templates/js/translated/part.js:1828 templates/js/translated/part.js:1884 -#: templates/js/translated/purchase_order.js:311 -#: templates/js/translated/purchase_order.js:841 -#: templates/js/translated/purchase_order.js:1103 -#: templates/js/translated/purchase_order.js:2154 -#: templates/js/translated/purchase_order.js:2171 +#: templates/js/translated/purchase_order.js:294 +#: templates/js/translated/purchase_order.js:824 +#: templates/js/translated/purchase_order.js:1086 +#: templates/js/translated/purchase_order.js:2138 +#: templates/js/translated/purchase_order.js:2155 msgid "Pack Quantity" msgstr "Počet kusů v balení" -#: company/models.py:860 +#: company/models.py:857 msgid "Total quantity supplied in a single pack. Leave empty for single items." msgstr "Celkové množství dodávané v jednom balení. Pro jednotlivé položky ponechte prázdné." -#: company/models.py:879 part/models.py:2124 +#: company/models.py:876 part/models.py:2184 msgid "multiple" msgstr "více" -#: company/models.py:880 +#: company/models.py:877 msgid "Order multiple" msgstr "Objednat více" -#: company/models.py:892 +#: company/models.py:889 msgid "Quantity available from supplier" msgstr "Množství dostupné od dodavatele" -#: company/models.py:898 +#: company/models.py:895 msgid "Availability Updated" msgstr "Dostupnost aktualizována" -#: company/models.py:899 +#: company/models.py:896 msgid "Date of last update of availability data" msgstr "Datum poslední aktualizace údajů o dostupnosti" -#: company/models.py:1027 +#: company/models.py:1024 msgid "Supplier Price Break" msgstr "" -#: company/serializers.py:174 +#: company/serializers.py:178 msgid "Default currency used for this supplier" msgstr "Výchozí měna používaná pro tohoto dodavatele" -#: company/serializers.py:210 +#: company/serializers.py:214 msgid "Company Name" msgstr "" -#: company/serializers.py:393 part/admin.py:126 part/serializers.py:898 -#: part/templates/part/part_base.html:197 -#: templates/js/translated/company.js:1689 +#: company/serializers.py:397 part/admin.py:126 part/serializers.py:950 +#: part/templates/part/part_base.html:198 stock/serializers.py:474 +#: templates/js/translated/company.js:1690 #: templates/js/translated/table_filters.js:362 msgid "In Stock" msgstr "Skladem" #: company/templates/company/company_base.html:16 -#: part/templates/part/part_base.html:146 -#: templates/js/translated/company.js:1287 -#: templates/js/translated/company.js:1575 -#: templates/js/translated/model_renderers.js:313 +#: part/templates/part/part_base.html:147 +#: templates/js/translated/company.js:1288 +#: templates/js/translated/company.js:1576 +#: templates/js/translated/model_renderers.js:316 #: templates/js/translated/part.js:817 templates/js/translated/part.js:1225 msgid "Inactive" msgstr "Neaktivní" #: company/templates/company/company_base.html:27 -#: templates/js/translated/purchase_order.js:242 +#: templates/js/translated/purchase_order.js:224 msgid "Create Purchase Order" msgstr "Vytvořit nákupní objednávku" @@ -4590,7 +4769,7 @@ msgid "Edit company information" msgstr "Upravit údaje o společnosti" #: company/templates/company/company_base.html:39 -#: templates/js/translated/company.js:445 +#: templates/js/translated/company.js:446 msgid "Edit Company" msgstr "Upravit společnost" @@ -4605,11 +4784,12 @@ msgstr "Odstranit společnost" #: company/templates/company/company_base.html:53 #: company/templates/company/manufacturer_part.html:51 -#: company/templates/company/supplier_part.html:83 +#: company/templates/company/supplier_part.html:84 #: part/templates/part/part_thumb.html:20 #: report/templates/report/inventree_build_order_report.html:98 #: report/templates/report/inventree_purchase_order_report.html:40 #: report/templates/report/inventree_sales_order_report.html:40 +#: report/templates/report/inventree_sales_order_shipment_report.html:37 #: report/templates/report/inventree_test_report.html:84 #: report/templates/report/inventree_test_report.html:162 msgid "Part image" @@ -4630,16 +4810,16 @@ msgstr "Stáhnout obrázek z URL" msgid "Delete image" msgstr "Smazat obrázek" -#: company/templates/company/company_base.html:92 order/models.py:990 -#: order/models.py:2147 order/templates/order/return_order_base.html:134 -#: order/templates/order/sales_order_base.html:151 stock/models.py:840 -#: stock/models.py:841 stock/serializers.py:1329 -#: stock/templates/stock/item_base.html:405 +#: company/templates/company/company_base.html:92 order/models.py:1017 +#: order/models.py:2186 order/templates/order/return_order_base.html:135 +#: order/templates/order/sales_order_base.html:152 stock/models.py:917 +#: stock/models.py:918 stock/serializers.py:1360 +#: stock/templates/stock/item_base.html:402 #: templates/email/overdue_sales_order.html:16 -#: templates/js/translated/company.js:503 +#: templates/js/translated/company.js:504 #: templates/js/translated/return_order.js:295 -#: templates/js/translated/sales_order.js:820 -#: templates/js/translated/stock.js:3043 +#: templates/js/translated/sales_order.js:779 +#: templates/js/translated/stock.js:3044 #: templates/js/translated/table_filters.js:820 msgid "Customer" msgstr "Zákazník" @@ -4653,7 +4833,7 @@ msgid "Phone" msgstr "Telefon" #: company/templates/company/company_base.html:211 -#: part/templates/part/part_base.html:536 +#: part/templates/part/part_base.html:544 msgid "Remove Image" msgstr "Odstranit obrázek" @@ -4662,19 +4842,19 @@ msgid "Remove associated image from this company" msgstr "Odstranit přidružený obrázek z této společnosti" #: company/templates/company/company_base.html:214 -#: part/templates/part/part_base.html:539 +#: part/templates/part/part_base.html:547 #: templates/InvenTree/settings/user.html:88 #: templates/InvenTree/settings/user_sso.html:43 msgid "Remove" msgstr "Odstranit" #: company/templates/company/company_base.html:243 -#: part/templates/part/part_base.html:568 +#: part/templates/part/part_base.html:576 msgid "Upload Image" msgstr "Nahrát obrázek" #: company/templates/company/company_base.html:258 -#: part/templates/part/part_base.html:622 +#: part/templates/part/part_base.html:630 msgid "Download Image" msgstr "Stáhnout obrázek" @@ -4714,7 +4894,7 @@ msgstr "Dodavatelský sklad" #: company/templates/company/detail.html:75 #: company/templates/company/sidebar.html:12 #: company/templates/company/supplier_part_sidebar.html:7 -#: order/templates/order/order_base.html:13 +#: order/templates/order/order_base.html:14 #: order/templates/order/purchase_orders.html:8 #: order/templates/order/purchase_orders.html:12 #: part/templates/part/detail.html:122 part/templates/part/part_sidebar.html:35 @@ -4737,7 +4917,7 @@ msgstr "Nová nákupní objednávka" #: company/templates/company/detail.html:101 #: company/templates/company/sidebar.html:21 -#: order/templates/order/sales_order_base.html:13 +#: order/templates/order/sales_order_base.html:14 #: order/templates/order/sales_orders.html:8 #: order/templates/order/sales_orders.html:15 #: part/templates/part/detail.html:143 part/templates/part/part_sidebar.html:39 @@ -4764,7 +4944,7 @@ msgstr "Přiřazené zásoby" #: company/templates/company/detail.html:142 #: company/templates/company/sidebar.html:29 -#: order/templates/order/return_order_base.html:13 +#: order/templates/order/return_order_base.html:14 #: order/templates/order/return_orders.html:8 #: order/templates/order/return_orders.html:15 #: templates/InvenTree/settings/sidebar.html:61 @@ -4811,24 +4991,24 @@ msgid "Manufacturers" msgstr "Výrobci" #: company/templates/company/manufacturer_part.html:35 -#: company/templates/company/supplier_part.html:227 -#: part/templates/part/detail.html:125 part/templates/part/part_base.html:83 +#: company/templates/company/supplier_part.html:228 +#: part/templates/part/detail.html:125 part/templates/part/part_base.html:84 msgid "Order part" msgstr "Objednávka dílů" #: company/templates/company/manufacturer_part.html:39 -#: templates/js/translated/company.js:1343 +#: templates/js/translated/company.js:1344 msgid "Edit manufacturer part" msgstr "Upravit díl výrobce" #: company/templates/company/manufacturer_part.html:43 -#: templates/js/translated/company.js:1344 +#: templates/js/translated/company.js:1345 msgid "Delete manufacturer part" msgstr "Odstranit díl výrobce" #: company/templates/company/manufacturer_part.html:65 -#: company/templates/company/supplier_part.html:97 order/api.py:448 -#: order/serializers.py:564 +#: company/templates/company/supplier_part.html:98 order/api.py:411 +#: order/serializers.py:649 msgid "Internal Part" msgstr "Interní díl" @@ -4837,8 +5017,8 @@ msgid "No manufacturer information available" msgstr "Nejsou k dispozici žádné informace o výrobci" #: company/templates/company/manufacturer_part.html:119 -#: company/templates/company/supplier_part.html:15 company/views.py:31 -#: part/admin.py:122 part/serializers.py:904 +#: company/templates/company/supplier_part.html:16 company/views.py:31 +#: part/admin.py:122 part/serializers.py:956 #: part/templates/part/part_sidebar.html:33 templates/InvenTree/search.html:190 #: templates/navbar.html:48 msgid "Suppliers" @@ -4887,112 +5067,113 @@ msgstr "Přiřazené skladové položky" msgid "Contacts" msgstr "Kontakty" -#: company/templates/company/supplier_part.html:50 -#: templates/js/translated/company.js:1526 +#: company/templates/company/supplier_part.html:51 +#: templates/js/translated/company.js:1527 msgid "Supplier part actions" msgstr "Akce týkající se dílu dodavatele" -#: company/templates/company/supplier_part.html:55 #: company/templates/company/supplier_part.html:56 -#: company/templates/company/supplier_part.html:228 +#: company/templates/company/supplier_part.html:57 +#: company/templates/company/supplier_part.html:229 #: part/templates/part/detail.html:126 msgid "Order Part" msgstr "Objednávka dílů" -#: company/templates/company/supplier_part.html:60 #: company/templates/company/supplier_part.html:61 +#: company/templates/company/supplier_part.html:62 msgid "Update Availability" msgstr "Aktualizovat dostupnost" -#: company/templates/company/supplier_part.html:63 #: company/templates/company/supplier_part.html:64 -#: templates/js/translated/company.js:294 +#: company/templates/company/supplier_part.html:65 +#: templates/js/translated/company.js:295 msgid "Edit Supplier Part" msgstr "Upravit dodavatele dílu" -#: company/templates/company/supplier_part.html:68 #: company/templates/company/supplier_part.html:69 -#: templates/js/translated/company.js:269 +#: company/templates/company/supplier_part.html:70 +#: templates/js/translated/company.js:270 msgid "Duplicate Supplier Part" msgstr "Duplikovat dodavatele dílu" -#: company/templates/company/supplier_part.html:73 +#: company/templates/company/supplier_part.html:74 msgid "Delete Supplier Part" msgstr "Vymazat dodavatele dílu" -#: company/templates/company/supplier_part.html:74 +#: company/templates/company/supplier_part.html:75 msgid "Delete Supplier Part" msgstr "Vymazat dodavatele dílu" -#: company/templates/company/supplier_part.html:133 +#: company/templates/company/supplier_part.html:134 +#: order/templates/order/order_base.html:155 msgid "No supplier information available" msgstr "Nejsou k dispozici žádné informace o dodavateli" -#: company/templates/company/supplier_part.html:139 order/serializers.py:553 -#: part/bom.py:287 part/bom.py:319 part/serializers.py:548 -#: templates/js/translated/company.js:349 templates/js/translated/part.js:1793 +#: company/templates/company/supplier_part.html:140 order/serializers.py:638 +#: part/bom.py:286 part/bom.py:315 part/serializers.py:592 +#: templates/js/translated/company.js:350 templates/js/translated/part.js:1793 #: templates/js/translated/pricing.js:510 -#: templates/js/translated/purchase_order.js:1920 -#: templates/js/translated/purchase_order.js:2098 +#: templates/js/translated/purchase_order.js:1904 +#: templates/js/translated/purchase_order.js:2082 msgid "SKU" msgstr "Číslo zboží (SKU)" -#: company/templates/company/supplier_part.html:206 +#: company/templates/company/supplier_part.html:207 msgid "Supplier Part Stock" msgstr "Sklad dílu dodavatele" -#: company/templates/company/supplier_part.html:209 -#: part/templates/part/detail.html:24 stock/templates/stock/location.html:204 +#: company/templates/company/supplier_part.html:210 +#: part/templates/part/detail.html:24 stock/templates/stock/location.html:205 msgid "Create new stock item" msgstr "Vytvořit novou položku skladu" -#: company/templates/company/supplier_part.html:210 -#: part/templates/part/detail.html:25 stock/templates/stock/location.html:205 +#: company/templates/company/supplier_part.html:211 +#: part/templates/part/detail.html:25 stock/templates/stock/location.html:206 #: templates/js/translated/stock.js:543 msgid "New Stock Item" msgstr "Nová skladová položka" -#: company/templates/company/supplier_part.html:223 +#: company/templates/company/supplier_part.html:224 msgid "Supplier Part Orders" msgstr "Objednávky dílu dodavatele" -#: company/templates/company/supplier_part.html:246 +#: company/templates/company/supplier_part.html:247 msgid "Pricing Information" msgstr "Informace o cenách" -#: company/templates/company/supplier_part.html:251 -#: templates/js/translated/company.js:398 +#: company/templates/company/supplier_part.html:252 +#: templates/js/translated/company.js:399 #: templates/js/translated/pricing.js:684 msgid "Add Price Break" msgstr "Přidat cenovou slevu" -#: company/templates/company/supplier_part.html:270 +#: company/templates/company/supplier_part.html:271 msgid "Supplier Part Notes" msgstr "" -#: company/templates/company/supplier_part.html:305 +#: company/templates/company/supplier_part.html:306 msgid "Supplier Part QR Code" msgstr "QR kód dílu dodavatele" -#: company/templates/company/supplier_part.html:316 +#: company/templates/company/supplier_part.html:317 msgid "Link Barcode to Supplier Part" msgstr "Propojit čárový kód s dílem dodavatele" -#: company/templates/company/supplier_part.html:388 +#: company/templates/company/supplier_part.html:389 msgid "Update Part Availability" msgstr "Aktualizovat dostupnost dílu" #: company/templates/company/supplier_part_sidebar.html:5 -#: part/serializers.py:902 part/stocktake.py:223 +#: part/serializers.py:954 part/stocktake.py:223 #: part/templates/part/category.html:180 #: part/templates/part/category_sidebar.html:17 stock/admin.py:68 -#: stock/serializers.py:1014 stock/serializers.py:1192 -#: stock/templates/stock/location.html:167 -#: stock/templates/stock/location.html:188 -#: stock/templates/stock/location.html:200 +#: stock/serializers.py:1045 stock/serializers.py:1223 +#: stock/templates/stock/location.html:168 +#: stock/templates/stock/location.html:189 +#: stock/templates/stock/location.html:201 #: stock/templates/stock/location_sidebar.html:7 #: templates/InvenTree/search.html:155 templates/js/translated/part.js:1067 -#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2850 +#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2851 #: users/models.py:206 msgid "Stock Items" msgstr "Skladové položky" @@ -5022,99 +5203,99 @@ msgstr "Nový zákazník" msgid "New Company" msgstr "Nová společnost" -#: generic/states/tests.py:18 order/status_codes.py:13 +#: generic/states/fields.py:118 +msgid "Custom status key" +msgstr "" + +#: generic/states/fields.py:119 +msgid "Additional status information for this item" +msgstr "" + +#: generic/states/tests.py:22 order/status_codes.py:13 msgid "Placed" msgstr "Umístěno" -#: importer/mixins.py:263 +#: importer/mixins.py:261 msgid "Invalid export format" msgstr "" -#: importer/models.py:59 -msgid "Timestamp" -msgstr "" - -#: importer/models.py:64 +#: importer/models.py:65 msgid "Data file to import" msgstr "" -#: importer/models.py:73 templates/js/translated/tables.js:558 +#: importer/models.py:74 templates/js/translated/tables.js:558 msgid "Columns" msgstr "" -#: importer/models.py:84 +#: importer/models.py:85 msgid "Import status" msgstr "" -#: importer/models.py:94 +#: importer/models.py:95 msgid "Field Defaults" msgstr "" -#: importer/models.py:101 +#: importer/models.py:102 msgid "Field Overrides" msgstr "" -#: importer/models.py:108 +#: importer/models.py:109 msgid "Field Filters" msgstr "" -#: importer/models.py:230 +#: importer/models.py:239 msgid "Some required fields have not been mapped" msgstr "" -#: importer/models.py:387 +#: importer/models.py:396 msgid "Column is already mapped to a database field" msgstr "" -#: importer/models.py:392 +#: importer/models.py:401 msgid "Field is already mapped to a data column" msgstr "" -#: importer/models.py:401 +#: importer/models.py:410 msgid "Column mapping must be linked to a valid import session" msgstr "" -#: importer/models.py:406 +#: importer/models.py:415 msgid "Column does not exist in the data file" msgstr "" -#: importer/models.py:413 +#: importer/models.py:422 msgid "Field does not exist in the target model" msgstr "" -#: importer/models.py:417 +#: importer/models.py:426 msgid "Selected field is read-only" msgstr "" -#: importer/models.py:422 importer/models.py:493 +#: importer/models.py:431 importer/models.py:502 msgid "Import Session" msgstr "" -#: importer/models.py:426 +#: importer/models.py:435 msgid "Field" msgstr "" -#: importer/models.py:428 +#: importer/models.py:437 msgid "Column" msgstr "" -#: importer/models.py:497 +#: importer/models.py:506 msgid "Row Index" msgstr "" -#: importer/models.py:500 +#: importer/models.py:509 msgid "Original row data" msgstr "" -#: importer/models.py:503 part/models.py:3951 -msgid "Data" -msgstr "" - -#: importer/models.py:505 machine/models.py:110 +#: importer/models.py:514 machine/models.py:110 msgid "Errors" msgstr "" -#: importer/models.py:507 part/api.py:873 +#: importer/models.py:516 part/api.py:857 msgid "Valid" msgstr "" @@ -5166,19 +5347,19 @@ msgstr "" msgid "Row has already been completed" msgstr "" -#: importer/status_codes.py:11 +#: importer/status_codes.py:13 msgid "Initializing" msgstr "" -#: importer/status_codes.py:12 +#: importer/status_codes.py:18 msgid "Mapping Columns" msgstr "" -#: importer/status_codes.py:13 +#: importer/status_codes.py:21 msgid "Importing Data" msgstr "" -#: importer/status_codes.py:16 +#: importer/status_codes.py:24 msgid "Processing Data" msgstr "" @@ -5202,52 +5383,52 @@ msgstr "" msgid "Value must be a valid dictionary object" msgstr "" -#: machine/machine_types/label_printer.py:215 +#: machine/machine_types/label_printer.py:216 msgid "Copies" msgstr "Kopie" -#: machine/machine_types/label_printer.py:216 +#: machine/machine_types/label_printer.py:217 msgid "Number of copies to print for each label" msgstr "Počet kopií, které se mají tisknout pro každý štítek" -#: machine/machine_types/label_printer.py:231 +#: machine/machine_types/label_printer.py:232 msgid "Connected" msgstr "Připojeno" -#: machine/machine_types/label_printer.py:232 order/api.py:1410 -#: templates/js/translated/sales_order.js:1078 +#: machine/machine_types/label_printer.py:233 order/api.py:1532 +#: templates/js/translated/sales_order.js:1044 msgid "Unknown" msgstr "Neznámý" -#: machine/machine_types/label_printer.py:233 +#: machine/machine_types/label_printer.py:234 msgid "Printing" msgstr "Tisk" -#: machine/machine_types/label_printer.py:234 +#: machine/machine_types/label_printer.py:235 msgid "No media" msgstr "Žádná média" -#: machine/machine_types/label_printer.py:235 +#: machine/machine_types/label_printer.py:236 msgid "Paper jam" msgstr "" -#: machine/machine_types/label_printer.py:236 +#: machine/machine_types/label_printer.py:237 msgid "Disconnected" msgstr "Odpojeno" -#: machine/machine_types/label_printer.py:243 +#: machine/machine_types/label_printer.py:244 msgid "Label Printer" msgstr "Tiskárna štítků" -#: machine/machine_types/label_printer.py:244 +#: machine/machine_types/label_printer.py:245 msgid "Directly print labels for various items." msgstr "Přímo vytisknout štítky pro různé položky." -#: machine/machine_types/label_printer.py:250 +#: machine/machine_types/label_printer.py:251 msgid "Printer Location" msgstr "Umístění tiskárny" -#: machine/machine_types/label_printer.py:251 +#: machine/machine_types/label_printer.py:252 msgid "Scope the printer to a specific location" msgstr "Určení rozsahu tiskárny na konkrétní místo" @@ -5307,79 +5488,75 @@ msgstr "" #: report/templates/report/inventree_purchase_order_report.html:31 #: report/templates/report/inventree_sales_order_report.html:31 #: templates/js/translated/order.js:352 -#: templates/js/translated/purchase_order.js:2195 -#: templates/js/translated/sales_order.js:1883 +#: templates/js/translated/purchase_order.js:2179 +#: templates/js/translated/sales_order.js:1864 msgid "Total Price" msgstr "" -#: order/api.py:80 order/api.py:151 order/serializers.py:93 -#: order/templates/order/order_base.html:123 -#: order/templates/order/return_order_base.html:116 -#: order/templates/order/sales_order_base.html:125 +#: order/api.py:78 order/api.py:149 order/serializers.py:124 +#: order/templates/order/order_base.html:124 +#: order/templates/order/return_order_base.html:117 +#: order/templates/order/sales_order_base.html:126 msgid "Order Status" msgstr "" -#: order/api.py:88 order/templates/order/order_base.html:111 -#: order/templates/order/return_order_base.html:104 -#: order/templates/order/sales_order_base.html:113 +#: order/api.py:86 order/templates/order/order_base.html:112 +#: order/templates/order/return_order_base.html:105 +#: order/templates/order/sales_order_base.html:114 msgid "Order Reference" msgstr "" -#: order/api.py:116 templates/js/translated/table_filters.js:93 +#: order/api.py:114 order/api.py:1022 +#: templates/js/translated/table_filters.js:93 #: templates/js/translated/table_filters.js:625 #: templates/js/translated/table_filters.js:651 #: templates/js/translated/table_filters.js:666 msgid "Outstanding" msgstr "" -#: order/api.py:132 +#: order/api.py:130 msgid "Has Project Code" msgstr "" -#: order/api.py:155 templates/js/translated/table_filters.js:201 +#: order/api.py:153 templates/js/translated/table_filters.js:201 #: templates/js/translated/table_filters.js:791 msgid "Has Pricing" msgstr "" -#: order/api.py:230 -msgid "No matching purchase order found" -msgstr "" - -#: order/api.py:425 order/api.py:763 order/models.py:1484 order/models.py:1598 -#: order/models.py:1649 order/models.py:1764 order/models.py:1923 -#: order/models.py:2383 order/models.py:2439 -#: templates/js/translated/sales_order.js:1524 +#: order/api.py:375 order/api.py:771 order/api.py:986 order/models.py:1500 +#: order/models.py:1614 order/models.py:1665 order/models.py:1793 +#: order/models.py:1956 order/models.py:2422 order/models.py:2478 +#: templates/js/translated/sales_order.js:1490 msgid "Order" msgstr "" -#: order/api.py:429 order/api.py:784 +#: order/api.py:379 order/api.py:809 msgid "Order Complete" msgstr "" -#: order/api.py:452 +#: order/api.py:430 msgid "Order Pending" msgstr "" -#: order/api.py:1404 order/models.py:379 order/models.py:1485 -#: order/models.py:1599 order/templates/order/order_base.html:9 -#: order/templates/order/order_base.html:18 +#: order/api.py:1526 order/models.py:386 order/models.py:1501 +#: order/models.py:1615 order/templates/order/order_base.html:10 +#: order/templates/order/order_base.html:19 #: report/templates/report/inventree_purchase_order_report.html:14 -#: stock/serializers.py:120 stock/templates/stock/item_base.html:176 +#: stock/serializers.py:121 stock/templates/stock/item_base.html:173 #: templates/email/overdue_purchase_order.html:15 #: templates/js/translated/part.js:1752 templates/js/translated/pricing.js:804 -#: templates/js/translated/purchase_order.js:168 -#: templates/js/translated/purchase_order.js:753 -#: templates/js/translated/purchase_order.js:1743 -#: templates/js/translated/stock.js:2345 templates/js/translated/stock.js:2991 +#: templates/js/translated/purchase_order.js:736 +#: templates/js/translated/purchase_order.js:1727 +#: templates/js/translated/stock.js:2346 templates/js/translated/stock.js:2992 msgid "Purchase Order" msgstr "" -#: order/api.py:1408 order/models.py:2091 order/models.py:2384 -#: order/models.py:2440 order/templates/order/return_order_base.html:9 -#: order/templates/order/return_order_base.html:28 +#: order/api.py:1530 order/models.py:2124 order/models.py:2423 +#: order/models.py:2479 order/templates/order/return_order_base.html:10 +#: order/templates/order/return_order_base.html:29 #: report/templates/report/inventree_return_order_report.html:13 #: templates/js/translated/return_order.js:280 -#: templates/js/translated/stock.js:3025 +#: templates/js/translated/stock.js:3026 msgid "Return Order" msgstr "" @@ -5387,751 +5564,782 @@ msgstr "" msgid "Total price for this order" msgstr "" -#: order/models.py:95 order/serializers.py:71 +#: order/models.py:95 order/serializers.py:73 msgid "Order Currency" msgstr "" -#: order/models.py:98 order/serializers.py:72 +#: order/models.py:98 order/serializers.py:74 msgid "Currency for this order (leave blank to use company default)" msgstr "" -#: order/models.py:246 +#: order/models.py:243 msgid "Contact does not match selected company" msgstr "" -#: order/models.py:289 +#: order/models.py:296 msgid "Order description (optional)" msgstr "" -#: order/models.py:298 +#: order/models.py:305 msgid "Select project code for this order" msgstr "" -#: order/models.py:302 order/models.py:1385 order/models.py:1817 +#: order/models.py:309 order/models.py:1402 order/models.py:1846 msgid "Link to external page" msgstr "" -#: order/models.py:310 +#: order/models.py:317 msgid "Expected date for order delivery. Order will be overdue after this date." msgstr "" -#: order/models.py:324 +#: order/models.py:331 msgid "Created By" msgstr "" -#: order/models.py:332 +#: order/models.py:339 msgid "User or group responsible for this order" msgstr "" -#: order/models.py:343 +#: order/models.py:350 msgid "Point of contact for this order" msgstr "" -#: order/models.py:353 +#: order/models.py:360 msgid "Company address for this order" msgstr "" -#: order/models.py:468 order/models.py:979 +#: order/models.py:480 order/models.py:1006 msgid "Order reference" msgstr "" -#: order/models.py:477 +#: order/models.py:489 msgid "Purchase order status" msgstr "" -#: order/models.py:492 +#: order/models.py:504 msgid "Company from which the items are being ordered" msgstr "Společnost, od které se položky objednávají" -#: order/models.py:503 order/templates/order/order_base.html:153 -#: templates/js/translated/purchase_order.js:1772 +#: order/models.py:515 order/templates/order/order_base.html:162 +#: templates/js/translated/purchase_order.js:1756 msgid "Supplier Reference" msgstr "Reference dodavatele" -#: order/models.py:504 +#: order/models.py:516 msgid "Supplier order reference code" msgstr "Referenční kód objednávky dodavatele" -#: order/models.py:513 +#: order/models.py:525 msgid "received by" msgstr "přijal" -#: order/models.py:519 order/models.py:2173 +#: order/models.py:531 order/models.py:2212 msgid "Issue Date" msgstr "Datum vystavení" -#: order/models.py:520 order/models.py:2174 +#: order/models.py:532 order/models.py:2213 msgid "Date order was issued" msgstr "Datum vystavení objednávky" -#: order/models.py:527 order/models.py:2181 +#: order/models.py:539 order/models.py:2220 msgid "Date order was completed" msgstr "Datum dokončení objednávky" -#: order/models.py:571 +#: order/models.py:549 order/models.py:1552 +msgid "Destination for received items" +msgstr "" + +#: order/models.py:593 msgid "Part supplier must match PO supplier" msgstr "Dodavatel dílu se musí shodovat s dodavatelem PO" -#: order/models.py:806 +#: order/models.py:828 msgid "Quantity must be a positive number" msgstr "Množství musí být kladné" -#: order/models.py:991 +#: order/models.py:1018 msgid "Company to which the items are being sold" msgstr "Společnost, jíž se položky prodávají" -#: order/models.py:1003 +#: order/models.py:1030 msgid "Sales order status" msgstr "" -#: order/models.py:1014 order/models.py:2166 +#: order/models.py:1041 order/models.py:2205 msgid "Customer Reference " msgstr "Reference zákazníka " -#: order/models.py:1015 order/models.py:2167 +#: order/models.py:1042 order/models.py:2206 msgid "Customer order reference code" msgstr "Referenční kód objednávky zákazníka" -#: order/models.py:1019 order/models.py:1771 -#: templates/js/translated/sales_order.js:879 -#: templates/js/translated/sales_order.js:1060 +#: order/models.py:1046 order/models.py:1800 +#: templates/js/translated/sales_order.js:838 +#: templates/js/translated/sales_order.js:1026 msgid "Shipment Date" msgstr "Datum odeslání" -#: order/models.py:1028 +#: order/models.py:1055 msgid "shipped by" msgstr "odesláno společností" -#: order/models.py:1077 +#: order/models.py:1094 msgid "Order is already complete" msgstr "Objednávka je již dokončena" -#: order/models.py:1080 +#: order/models.py:1097 msgid "Order is already cancelled" msgstr "Objednávka je již zrušena" -#: order/models.py:1084 +#: order/models.py:1101 msgid "Only an open order can be marked as complete" msgstr "Pouze otevřená objednávka může být označena jako kompletní" -#: order/models.py:1088 +#: order/models.py:1105 msgid "Order cannot be completed as there are incomplete shipments" msgstr "Objednávku nelze dokončit, protože dodávky jsou nekompletní" -#: order/models.py:1093 +#: order/models.py:1110 msgid "Order cannot be completed as there are incomplete line items" msgstr "Objednávka nemůže být dokončena, protože jsou neúplné řádkové položky" -#: order/models.py:1357 +#: order/models.py:1374 msgid "Item quantity" msgstr "Množství položky" -#: order/models.py:1374 +#: order/models.py:1391 msgid "Line item reference" msgstr "Odkaz na řádkovou položku" -#: order/models.py:1381 +#: order/models.py:1398 msgid "Line item notes" msgstr "Poznámky k řádkovým položkám" -#: order/models.py:1393 +#: order/models.py:1410 msgid "Target date for this line item (leave blank to use the target date from the order)" msgstr "Cílové datum pro tuto řádkovou položku (pro použití cílového data z objednávky ponechte prázdné)" -#: order/models.py:1414 +#: order/models.py:1431 msgid "Line item description (optional)" msgstr "Popis řádkové položky (nepovinné)" -#: order/models.py:1420 -msgid "Context" -msgstr "Kontext" - -#: order/models.py:1421 +#: order/models.py:1438 msgid "Additional context for this line" msgstr "Dodatečný kontext pro tento řádek" -#: order/models.py:1431 +#: order/models.py:1448 msgid "Unit price" msgstr "Cena za jednotku" -#: order/models.py:1445 +#: order/models.py:1462 msgid "Purchase Order Line Item" msgstr "" -#: order/models.py:1469 +#: order/models.py:1486 msgid "Supplier part must match supplier" msgstr "Dodavatelský díl musí odpovídat dodavateli" -#: order/models.py:1476 -msgid "deleted" -msgstr "smazáno" - -#: order/models.py:1504 +#: order/models.py:1520 msgid "Supplier part" msgstr "Díl dodavatele" -#: order/models.py:1511 order/templates/order/order_base.html:201 +#: order/models.py:1527 order/templates/order/order_base.html:210 #: templates/js/translated/part.js:1876 templates/js/translated/part.js:1908 -#: templates/js/translated/purchase_order.js:1369 -#: templates/js/translated/purchase_order.js:2239 +#: templates/js/translated/purchase_order.js:1352 +#: templates/js/translated/purchase_order.js:2223 #: templates/js/translated/return_order.js:762 #: templates/js/translated/table_filters.js:119 #: templates/js/translated/table_filters.js:605 msgid "Received" msgstr "Doručeno" -#: order/models.py:1512 +#: order/models.py:1528 msgid "Number of items received" msgstr "Počet přijatých položek" -#: order/models.py:1520 stock/models.py:959 stock/serializers.py:610 -#: stock/templates/stock/item_base.html:183 -#: templates/js/translated/stock.js:2396 +#: order/models.py:1536 stock/models.py:1036 stock/serializers.py:637 +#: stock/templates/stock/item_base.html:180 +#: templates/js/translated/stock.js:2397 msgid "Purchase Price" msgstr "Nákupní cena" -#: order/models.py:1521 +#: order/models.py:1537 msgid "Unit purchase price" msgstr "Jednotková nákupní cena" -#: order/models.py:1536 -msgid "Where does the Purchaser want this item to be stored?" -msgstr "Kde si kupující přeje, aby byla tato položka uložena?" - -#: order/models.py:1587 +#: order/models.py:1603 msgid "Purchase Order Extra Line" msgstr "" -#: order/models.py:1616 +#: order/models.py:1632 msgid "Sales Order Line Item" msgstr "" -#: order/models.py:1637 +#: order/models.py:1653 msgid "Virtual part cannot be assigned to a sales order" msgstr "Virtuální díl nelze přiřadit k prodejní objednávce" -#: order/models.py:1642 +#: order/models.py:1658 msgid "Only salable parts can be assigned to a sales order" msgstr "K prodejní objednávce lze přiřadit pouze prodejné díly" -#: order/models.py:1668 part/templates/part/part_pricing.html:107 -#: part/templates/part/prices.html:139 templates/js/translated/pricing.js:957 +#: order/models.py:1684 part/templates/part/part_pricing.html:107 +#: part/templates/part/prices.html:139 templates/js/translated/pricing.js:955 msgid "Sale Price" msgstr "Prodejní cena" -#: order/models.py:1669 +#: order/models.py:1685 msgid "Unit sale price" msgstr "Jednotková prodejní cena" -#: order/models.py:1678 order/status_codes.py:48 -#: templates/js/translated/sales_order.js:1559 -#: templates/js/translated/sales_order.js:1680 -#: templates/js/translated/sales_order.js:1993 +#: order/models.py:1694 order/status_codes.py:50 +#: templates/js/translated/sales_order.js:1525 +#: templates/js/translated/sales_order.js:1661 +#: templates/js/translated/sales_order.js:1974 msgid "Shipped" msgstr "Odesláno" -#: order/models.py:1679 +#: order/models.py:1695 msgid "Shipped quantity" msgstr "Odeslané množství" -#: order/models.py:1751 +#: order/models.py:1769 msgid "Sales Order Shipment" msgstr "" -#: order/models.py:1772 +#: order/models.py:1801 msgid "Date of shipment" msgstr "Datum odeslání" -#: order/models.py:1778 templates/js/translated/sales_order.js:1072 +#: order/models.py:1807 templates/js/translated/sales_order.js:1038 msgid "Delivery Date" msgstr "Datum doručení" -#: order/models.py:1779 +#: order/models.py:1808 msgid "Date of delivery of shipment" msgstr "Datum doručení zásilky" -#: order/models.py:1787 +#: order/models.py:1816 msgid "Checked By" msgstr "Kontroloval(a)" -#: order/models.py:1788 +#: order/models.py:1817 msgid "User who checked this shipment" msgstr "Uživatel, který zkontroloval tuto zásilku" -#: order/models.py:1795 order/models.py:2018 order/serializers.py:1475 -#: order/serializers.py:1585 templates/js/translated/model_renderers.js:455 +#: order/models.py:1824 order/models.py:2051 order/serializers.py:1601 +#: order/serializers.py:1725 +#: report/templates/report/inventree_sales_order_shipment_report.html:14 +#: templates/js/translated/model_renderers.js:458 +#: templates/js/translated/sales_order.js:1615 msgid "Shipment" msgstr "Doprava" -#: order/models.py:1796 +#: order/models.py:1825 msgid "Shipment number" msgstr "Číslo zásilky" -#: order/models.py:1804 +#: order/models.py:1833 msgid "Tracking Number" msgstr "Sledovací číslo" -#: order/models.py:1805 +#: order/models.py:1834 msgid "Shipment tracking information" msgstr "Informace o sledování zásilky" -#: order/models.py:1812 +#: order/models.py:1841 msgid "Invoice Number" msgstr "Číslo faktury" -#: order/models.py:1813 +#: order/models.py:1842 msgid "Reference number for associated invoice" msgstr "Referenční číslo přiřazené faktury" -#: order/models.py:1833 +#: order/models.py:1862 msgid "Shipment has already been sent" msgstr "Zásilka již byla odeslána" -#: order/models.py:1836 +#: order/models.py:1865 msgid "Shipment has no allocated stock items" msgstr "Zásilka nemá žádné přidělené skladové položky" -#: order/models.py:1912 +#: order/models.py:1945 msgid "Sales Order Extra Line" msgstr "" -#: order/models.py:1941 +#: order/models.py:1974 msgid "Sales Order Allocation" msgstr "" -#: order/models.py:1964 order/models.py:1966 +#: order/models.py:1997 order/models.py:1999 msgid "Stock item has not been assigned" msgstr "Zásobní položka nebyla přiřazena" -#: order/models.py:1973 +#: order/models.py:2006 msgid "Cannot allocate stock item to a line with a different part" msgstr "Nelze přidělit skladovou položku na řádek s jiným dílem" -#: order/models.py:1976 +#: order/models.py:2009 msgid "Cannot allocate stock to a line without a part" msgstr "Nelze přidělit skladovou položku na řádek bez dílu" -#: order/models.py:1979 +#: order/models.py:2012 msgid "Allocation quantity cannot exceed stock quantity" msgstr "Přidělené množství nesmí překročit množství zásob" -#: order/models.py:1998 order/serializers.py:1345 +#: order/models.py:2031 order/serializers.py:1471 msgid "Quantity must be 1 for serialized stock item" msgstr "Množství musí být 1 pro serializovanou skladovou položku" -#: order/models.py:2001 +#: order/models.py:2034 msgid "Sales order does not match shipment" msgstr "Prodejní objednávka neodpovídá zásilce" -#: order/models.py:2002 plugin/base/barcodes/api.py:524 +#: order/models.py:2035 plugin/base/barcodes/api.py:629 msgid "Shipment does not match sales order" msgstr "Zásilka neodpovídá prodejní objednávce" -#: order/models.py:2010 +#: order/models.py:2043 msgid "Line" msgstr "Řádek" -#: order/models.py:2019 +#: order/models.py:2052 msgid "Sales order shipment reference" msgstr "Odkaz na zásilku z prodejní objednávky" -#: order/models.py:2032 order/models.py:2391 +#: order/models.py:2065 order/models.py:2430 #: templates/js/translated/return_order.js:720 msgid "Item" msgstr "Položka" -#: order/models.py:2033 +#: order/models.py:2066 msgid "Select stock item to allocate" msgstr "Vyberte skladovou položku pro přidělení" -#: order/models.py:2042 +#: order/models.py:2075 msgid "Enter stock allocation quantity" msgstr "Zadejte množství pro přidělení zásob" -#: order/models.py:2136 +#: order/models.py:2175 msgid "Return Order reference" msgstr "Reference návratové objednávky" -#: order/models.py:2148 +#: order/models.py:2187 msgid "Company from which items are being returned" msgstr "Společnost, od které se vrací položky" -#: order/models.py:2160 +#: order/models.py:2199 msgid "Return order status" msgstr "Stav návratové objednávky" -#: order/models.py:2362 +#: order/models.py:2401 msgid "Return Order Line Item" msgstr "" -#: order/models.py:2376 +#: order/models.py:2415 msgid "Only serialized items can be assigned to a Return Order" msgstr "K návratové objednávce lze přiřadit pouze serializované položky" -#: order/models.py:2392 +#: order/models.py:2431 msgid "Select item to return from customer" msgstr "Vyberte položku pro vrácení od zákazníka" -#: order/models.py:2398 +#: order/models.py:2437 msgid "Received Date" msgstr "Datum přijetí" -#: order/models.py:2399 +#: order/models.py:2438 msgid "The date this this return item was received" msgstr "Datum přijetí této vrácené položky" -#: order/models.py:2410 templates/js/translated/return_order.js:731 +#: order/models.py:2449 templates/js/translated/return_order.js:731 #: templates/js/translated/table_filters.js:122 msgid "Outcome" msgstr "Výsledek" -#: order/models.py:2411 +#: order/models.py:2450 msgid "Outcome for this line item" msgstr "Výsledky pro tuto položku" -#: order/models.py:2418 +#: order/models.py:2457 msgid "Cost associated with return or repair for this line item" msgstr "Náklady spojené s návratem nebo opravou této položky" -#: order/models.py:2428 +#: order/models.py:2467 msgid "Return Order Extra Line" msgstr "" -#: order/serializers.py:86 +#: order/serializers.py:87 +msgid "Order ID" +msgstr "" + +#: order/serializers.py:87 +msgid "ID of the order to duplicate" +msgstr "" + +#: order/serializers.py:93 +msgid "Copy Lines" +msgstr "" + +#: order/serializers.py:94 +msgid "Copy line items from the original order" +msgstr "" + +#: order/serializers.py:100 +msgid "Copy Extra Lines" +msgstr "" + +#: order/serializers.py:101 +msgid "Copy extra line items from the original order" +msgstr "" + +#: order/serializers.py:117 msgid "Completed Lines" msgstr "Dokončené řádky" -#: order/serializers.py:283 stock/admin.py:195 +#: order/serializers.py:161 +msgid "Duplicate Order" +msgstr "" + +#: order/serializers.py:162 +msgid "Specify options for duplicating this order" +msgstr "" + +#: order/serializers.py:234 +msgid "Invalid order ID" +msgstr "" + +#: order/serializers.py:374 stock/admin.py:196 msgid "Supplier Name" msgstr "" -#: order/serializers.py:331 +#: order/serializers.py:416 msgid "Order cannot be cancelled" msgstr "Objednávku nelze zrušit" -#: order/serializers.py:346 order/serializers.py:1366 +#: order/serializers.py:431 order/serializers.py:1492 msgid "Allow order to be closed with incomplete line items" msgstr "Povolit uzavření objednávky s neúplnými řádkovými položkami" -#: order/serializers.py:356 order/serializers.py:1376 +#: order/serializers.py:441 order/serializers.py:1502 msgid "Order has incomplete line items" msgstr "Objednávka má nedokončené řádkové položky" -#: order/serializers.py:506 +#: order/serializers.py:591 msgid "Order is not open" msgstr "Objednávka není otevřena" -#: order/serializers.py:527 +#: order/serializers.py:612 msgid "Auto Pricing" msgstr "Automatická cena" -#: order/serializers.py:529 +#: order/serializers.py:614 msgid "Automatically calculate purchase price based on supplier part data" msgstr "Automaticky vypočítat nákupní cenu na základě údajů o dílech dodavatele" -#: order/serializers.py:539 +#: order/serializers.py:624 msgid "Purchase price currency" msgstr "Měna nákupní ceny" -#: order/serializers.py:545 +#: order/serializers.py:630 msgid "Merge Items" msgstr "Sloučit položky" -#: order/serializers.py:547 +#: order/serializers.py:632 msgid "Merge items with the same part, destination and target date into one line item" msgstr "Sloučit položky se stejným dílem, místem určení a cílovým datem do jedné řádkové položky" -#: order/serializers.py:560 part/models.py:1033 +#: order/serializers.py:645 part/models.py:1094 part/serializers.py:387 msgid "Internal Part Number" msgstr "Interní číslo dílu" -#: order/serializers.py:568 +#: order/serializers.py:653 msgid "Internal Part Name" msgstr "" -#: order/serializers.py:584 +#: order/serializers.py:669 msgid "Supplier part must be specified" msgstr "Musí být uveden díl dodavatele" -#: order/serializers.py:587 +#: order/serializers.py:672 msgid "Purchase order must be specified" msgstr "Objednávka musí být zadána" -#: order/serializers.py:595 +#: order/serializers.py:680 msgid "Supplier must match purchase order" msgstr "Dodavatel musí odpovídat objednávce" -#: order/serializers.py:596 +#: order/serializers.py:681 msgid "Purchase order must match supplier" msgstr "Objednávka musí odpovídat dodavateli" -#: order/serializers.py:639 order/serializers.py:1446 +#: order/serializers.py:724 order/serializers.py:1572 msgid "Line Item" msgstr "Řádková položka" -#: order/serializers.py:645 +#: order/serializers.py:730 msgid "Line item does not match purchase order" msgstr "Řádková položka neodpovídá nákupní objednávce" -#: order/serializers.py:655 order/serializers.py:779 order/serializers.py:1782 +#: order/serializers.py:740 order/serializers.py:881 order/serializers.py:1934 msgid "Select destination location for received items" msgstr "Vyberte cílové umístění pro přijaté položky" -#: order/serializers.py:671 templates/js/translated/purchase_order.js:1130 +#: order/serializers.py:756 templates/js/translated/purchase_order.js:1113 #: templates/js/translated/stock.js:1200 msgid "Enter batch code for incoming stock items" msgstr "Zadat kód dávky pro příchozí položky skladu" -#: order/serializers.py:679 templates/js/translated/purchase_order.js:1155 +#: order/serializers.py:764 templates/js/translated/purchase_order.js:1138 msgid "Enter serial numbers for incoming stock items" msgstr "Zadat sériová čísla pro příchozí skladové položky" -#: order/serializers.py:691 +#: order/serializers.py:776 msgid "Override packaging information for incoming stock items" msgstr "" -#: order/serializers.py:699 +#: order/serializers.py:784 msgid "Additional note for incoming stock items" msgstr "" -#: order/serializers.py:706 templates/js/translated/barcode.js:52 +#: order/serializers.py:791 templates/js/translated/barcode.js:52 msgid "Barcode" msgstr "Čárový kód" -#: order/serializers.py:707 +#: order/serializers.py:792 msgid "Scanned barcode" msgstr "Naskenovaný čárový kód" -#: order/serializers.py:723 +#: order/serializers.py:808 msgid "Barcode is already in use" msgstr "Tento čárový kód se již používá" -#: order/serializers.py:747 +#: order/serializers.py:831 msgid "An integer quantity must be provided for trackable parts" msgstr "U sledovatelných dílů musí být uvedeno celočíselné množství" -#: order/serializers.py:795 order/serializers.py:1798 +#: order/serializers.py:898 order/serializers.py:1950 msgid "Line items must be provided" msgstr "Musí být uvedeny řádkové položky" -#: order/serializers.py:811 +#: order/serializers.py:914 msgid "Destination location must be specified" msgstr "Místo určení musí být specifikováno" -#: order/serializers.py:822 +#: order/serializers.py:925 msgid "Supplied barcode values must be unique" msgstr "Hodnoty dodaných čárových kódů musí být unikátní" -#: order/serializers.py:1187 +#: order/serializers.py:1221 msgid "Sale price currency" msgstr "" -#: order/serializers.py:1248 +#: order/serializers.py:1260 +msgid "Allocated Items" +msgstr "" + +#: order/serializers.py:1374 msgid "No shipment details provided" msgstr "" -#: order/serializers.py:1309 order/serializers.py:1455 +#: order/serializers.py:1435 order/serializers.py:1581 msgid "Line item is not associated with this order" msgstr "" -#: order/serializers.py:1328 +#: order/serializers.py:1454 msgid "Quantity must be positive" msgstr "" -#: order/serializers.py:1465 +#: order/serializers.py:1591 msgid "Enter serial numbers to allocate" msgstr "" -#: order/serializers.py:1487 order/serializers.py:1593 +#: order/serializers.py:1613 order/serializers.py:1733 msgid "Shipment has already been shipped" msgstr "" -#: order/serializers.py:1490 order/serializers.py:1596 +#: order/serializers.py:1616 order/serializers.py:1736 msgid "Shipment is not associated with this order" msgstr "" -#: order/serializers.py:1537 +#: order/serializers.py:1671 msgid "No match found for the following serial numbers" msgstr "" -#: order/serializers.py:1544 -msgid "The following serial numbers are already allocated" +#: order/serializers.py:1678 +msgid "The following serial numbers are unavailable" msgstr "" -#: order/serializers.py:1752 +#: order/serializers.py:1904 msgid "Return order line item" msgstr "" -#: order/serializers.py:1758 +#: order/serializers.py:1910 msgid "Line item does not match return order" msgstr "" -#: order/serializers.py:1761 +#: order/serializers.py:1913 msgid "Line item has already been received" msgstr "" -#: order/serializers.py:1790 +#: order/serializers.py:1942 msgid "Items can only be received against orders which are in progress" msgstr "" -#: order/serializers.py:1873 +#: order/serializers.py:2025 msgid "Line price currency" msgstr "" -#: order/status_codes.py:17 order/status_codes.py:52 stock/status_codes.py:16 +#: order/status_codes.py:17 order/status_codes.py:54 stock/status_codes.py:16 msgid "Lost" msgstr "Ztraceno" -#: order/status_codes.py:18 order/status_codes.py:53 stock/status_codes.py:22 +#: order/status_codes.py:18 order/status_codes.py:55 stock/status_codes.py:24 msgid "Returned" msgstr "Vráceno" -#: order/status_codes.py:45 order/status_codes.py:77 +#: order/status_codes.py:47 order/status_codes.py:79 msgid "In Progress" msgstr "Zpracovává se" -#: order/status_codes.py:101 +#: order/status_codes.py:105 msgid "Return" msgstr "Vrátit zpět" -#: order/status_codes.py:104 +#: order/status_codes.py:108 msgid "Repair" msgstr "Oprava" -#: order/status_codes.py:107 +#: order/status_codes.py:111 msgid "Replace" msgstr "Náhrada" -#: order/status_codes.py:110 +#: order/status_codes.py:114 msgid "Refund" msgstr "Vrácení peněz" -#: order/status_codes.py:113 +#: order/status_codes.py:117 msgid "Reject" msgstr "Odmítnout" -#: order/tasks.py:25 +#: order/tasks.py:30 msgid "Overdue Purchase Order" msgstr "" -#: order/tasks.py:30 +#: order/tasks.py:35 #, python-brace-format msgid "Purchase order {po} is now overdue" msgstr "" -#: order/tasks.py:75 +#: order/tasks.py:80 msgid "Overdue Sales Order" msgstr "" -#: order/tasks.py:80 +#: order/tasks.py:85 #, python-brace-format msgid "Sales order {so} is now overdue" msgstr "" -#: order/templates/order/order_base.html:51 +#: order/templates/order/order_base.html:52 msgid "Print purchase order report" msgstr "" -#: order/templates/order/order_base.html:53 -#: order/templates/order/return_order_base.html:62 -#: order/templates/order/sales_order_base.html:62 +#: order/templates/order/order_base.html:54 +#: order/templates/order/return_order_base.html:63 +#: order/templates/order/sales_order_base.html:63 msgid "Export order to file" msgstr "" -#: order/templates/order/order_base.html:59 -#: order/templates/order/return_order_base.html:72 -#: order/templates/order/sales_order_base.html:71 +#: order/templates/order/order_base.html:60 +#: order/templates/order/return_order_base.html:73 +#: order/templates/order/sales_order_base.html:72 msgid "Order actions" msgstr "" -#: order/templates/order/order_base.html:64 -#: order/templates/order/return_order_base.html:76 -#: order/templates/order/sales_order_base.html:75 +#: order/templates/order/order_base.html:65 +#: order/templates/order/return_order_base.html:77 +#: order/templates/order/sales_order_base.html:76 msgid "Edit order" msgstr "" -#: order/templates/order/order_base.html:68 +#: order/templates/order/order_base.html:69 msgid "Duplicate order" msgstr "" -#: order/templates/order/order_base.html:73 -#: order/templates/order/return_order_base.html:78 -#: order/templates/order/sales_order_base.html:77 +#: order/templates/order/order_base.html:74 +#: order/templates/order/return_order_base.html:79 +#: order/templates/order/sales_order_base.html:78 msgid "Hold order" msgstr "" -#: order/templates/order/order_base.html:78 -#: order/templates/order/return_order_base.html:81 -#: order/templates/order/sales_order_base.html:80 +#: order/templates/order/order_base.html:79 +#: order/templates/order/return_order_base.html:82 +#: order/templates/order/sales_order_base.html:81 msgid "Cancel order" msgstr "" -#: order/templates/order/order_base.html:84 #: order/templates/order/order_base.html:85 -#: order/templates/order/return_order_base.html:85 +#: order/templates/order/order_base.html:86 #: order/templates/order/return_order_base.html:86 -#: order/templates/order/sales_order_base.html:86 +#: order/templates/order/return_order_base.html:87 #: order/templates/order/sales_order_base.html:87 +#: order/templates/order/sales_order_base.html:88 msgid "Issue Order" msgstr "" -#: order/templates/order/order_base.html:88 -#: order/templates/order/return_order_base.html:89 -msgid "Mark order as complete" -msgstr "" - #: order/templates/order/order_base.html:89 #: order/templates/order/return_order_base.html:90 -#: order/templates/order/sales_order_base.html:100 +msgid "Mark order as complete" +msgstr "" + +#: order/templates/order/order_base.html:90 +#: order/templates/order/return_order_base.html:91 +#: order/templates/order/sales_order_base.html:101 msgid "Complete Order" msgstr "" -#: order/templates/order/order_base.html:96 +#: order/templates/order/order_base.html:97 msgid "Supplier part thumbnail" msgstr "" -#: order/templates/order/order_base.html:116 -#: order/templates/order/return_order_base.html:109 -#: order/templates/order/sales_order_base.html:118 +#: order/templates/order/order_base.html:117 +#: order/templates/order/return_order_base.html:110 +#: order/templates/order/sales_order_base.html:119 msgid "Order Description" msgstr "" -#: order/templates/order/order_base.html:146 -msgid "No suppplier information available" -msgstr "" - -#: order/templates/order/order_base.html:159 -#: order/templates/order/sales_order_base.html:164 +#: order/templates/order/order_base.html:168 +#: order/templates/order/sales_order_base.html:165 msgid "Completed Line Items" msgstr "" -#: order/templates/order/order_base.html:165 -#: order/templates/order/sales_order_base.html:170 -#: order/templates/order/sales_order_base.html:180 +#: order/templates/order/order_base.html:174 +#: order/templates/order/sales_order_base.html:171 +#: order/templates/order/sales_order_base.html:181 msgid "Incomplete" msgstr "" -#: order/templates/order/order_base.html:184 -#: order/templates/order/return_order_base.html:160 +#: order/templates/order/order_base.html:193 +#: order/templates/order/return_order_base.html:161 #: report/templates/report/inventree_build_order_report.html:121 msgid "Issued" msgstr "" -#: order/templates/order/order_base.html:229 +#: order/templates/order/order_base.html:238 msgid "Total cost" msgstr "" -#: order/templates/order/order_base.html:233 -#: order/templates/order/return_order_base.html:202 -#: order/templates/order/sales_order_base.html:246 +#: order/templates/order/order_base.html:242 +#: order/templates/order/return_order_base.html:203 +#: order/templates/order/sales_order_base.html:247 msgid "Total cost could not be calculated" msgstr "" -#: order/templates/order/order_base.html:335 +#: order/templates/order/order_base.html:344 msgid "Purchase Order QR Code" msgstr "" -#: order/templates/order/order_base.html:347 +#: order/templates/order/order_base.html:356 msgid "Link Barcode to Purchase Order" msgstr "" @@ -6184,12 +6392,12 @@ msgstr "" #: part/templates/part/import_wizard/ajax_match_references.html:42 #: part/templates/part/import_wizard/match_fields.html:71 #: part/templates/part/import_wizard/match_references.html:49 -#: templates/js/translated/bom.js:133 templates/js/translated/build.js:530 -#: templates/js/translated/build.js:1802 -#: templates/js/translated/purchase_order.js:696 -#: templates/js/translated/purchase_order.js:1288 +#: templates/js/translated/bom.js:133 templates/js/translated/build.js:533 +#: templates/js/translated/build.js:1805 +#: templates/js/translated/purchase_order.js:679 +#: templates/js/translated/purchase_order.js:1271 #: templates/js/translated/return_order.js:505 -#: templates/js/translated/sales_order.js:1145 +#: templates/js/translated/sales_order.js:1111 #: templates/js/translated/stock.js:720 templates/js/translated/stock.js:889 #: templates/patterns/wizard/match_fields.html:70 msgid "Remove row" @@ -6242,7 +6450,7 @@ msgstr "Položky nákupní objednávky" #: order/templates/order/purchase_order_detail.html:27 #: order/templates/order/return_order_detail.html:24 #: order/templates/order/sales_order_detail.html:24 -#: templates/js/translated/purchase_order.js:414 +#: templates/js/translated/purchase_order.js:397 #: templates/js/translated/return_order.js:458 #: templates/js/translated/sales_order.js:237 msgid "Add Line Item" @@ -6277,45 +6485,45 @@ msgstr "Přijaté položky" msgid "Order Notes" msgstr "Poznámky k objednávce" -#: order/templates/order/return_order_base.html:18 -#: order/templates/order/sales_order_base.html:18 +#: order/templates/order/return_order_base.html:19 +#: order/templates/order/sales_order_base.html:19 msgid "Customer logo thumbnail" msgstr "Náhled loga zákazníka" -#: order/templates/order/return_order_base.html:60 +#: order/templates/order/return_order_base.html:61 msgid "Print return order report" msgstr "" -#: order/templates/order/return_order_base.html:64 -#: order/templates/order/sales_order_base.html:64 +#: order/templates/order/return_order_base.html:65 +#: order/templates/order/sales_order_base.html:65 msgid "Print packing list" msgstr "" -#: order/templates/order/return_order_base.html:141 -#: order/templates/order/sales_order_base.html:158 +#: order/templates/order/return_order_base.html:142 +#: order/templates/order/sales_order_base.html:159 #: templates/js/translated/return_order.js:308 -#: templates/js/translated/sales_order.js:833 +#: templates/js/translated/sales_order.js:792 msgid "Customer Reference" msgstr "" -#: order/templates/order/return_order_base.html:198 -#: order/templates/order/sales_order_base.html:242 +#: order/templates/order/return_order_base.html:199 +#: order/templates/order/sales_order_base.html:243 #: part/templates/part/part_pricing.html:32 #: part/templates/part/part_pricing.html:58 #: part/templates/part/part_pricing.html:99 #: part/templates/part/part_pricing.html:114 #: templates/js/translated/part.js:1079 -#: templates/js/translated/purchase_order.js:1822 +#: templates/js/translated/purchase_order.js:1806 #: templates/js/translated/return_order.js:380 -#: templates/js/translated/sales_order.js:891 +#: templates/js/translated/sales_order.js:850 msgid "Total Cost" msgstr "" -#: order/templates/order/return_order_base.html:273 +#: order/templates/order/return_order_base.html:274 msgid "Return Order QR Code" msgstr "" -#: order/templates/order/return_order_base.html:285 +#: order/templates/order/return_order_base.html:286 msgid "Link Barcode to Return Order" msgstr "" @@ -6323,40 +6531,40 @@ msgstr "" msgid "Order Details" msgstr "" -#: order/templates/order/sales_order_base.html:60 +#: order/templates/order/sales_order_base.html:61 msgid "Print sales order report" msgstr "" -#: order/templates/order/sales_order_base.html:91 #: order/templates/order/sales_order_base.html:92 +#: order/templates/order/sales_order_base.html:93 msgid "Ship Items" msgstr "" -#: order/templates/order/sales_order_base.html:95 #: order/templates/order/sales_order_base.html:96 +#: order/templates/order/sales_order_base.html:97 msgid "Mark As Shipped" msgstr "" -#: order/templates/order/sales_order_base.html:99 -#: templates/js/translated/sales_order.js:536 +#: order/templates/order/sales_order_base.html:100 +#: templates/js/translated/sales_order.js:495 msgid "Complete Sales Order" msgstr "" -#: order/templates/order/sales_order_base.html:138 +#: order/templates/order/sales_order_base.html:139 msgid "This Sales Order has not been fully allocated" msgstr "" -#: order/templates/order/sales_order_base.html:176 +#: order/templates/order/sales_order_base.html:177 #: order/templates/order/sales_order_detail.html:99 #: order/templates/order/so_sidebar.html:11 msgid "Completed Shipments" msgstr "" -#: order/templates/order/sales_order_base.html:339 +#: order/templates/order/sales_order_base.html:340 msgid "Sales Order QR Code" msgstr "" -#: order/templates/order/sales_order_base.html:351 +#: order/templates/order/sales_order_base.html:352 msgid "Link Barcode to Sales Order" msgstr "" @@ -6370,7 +6578,7 @@ msgid "Pending Shipments" msgstr "" #: order/templates/order/sales_order_detail.html:71 -#: templates/js/translated/bom.js:1277 templates/js/translated/build.js:1063 +#: templates/js/translated/bom.js:1277 templates/js/translated/build.js:1066 #: templates/js/translated/filters.js:299 msgid "Actions" msgstr "" @@ -6383,39 +6591,40 @@ msgstr "" msgid "Match Supplier Parts" msgstr "" -#: order/views.py:406 +#: order/views.py:407 msgid "Sales order not found" msgstr "" -#: order/views.py:412 +#: order/views.py:413 msgid "Price not found" msgstr "" -#: order/views.py:415 +#: order/views.py:416 #, python-brace-format msgid "Updated {part} unit-price to {price}" msgstr "" -#: order/views.py:421 +#: order/views.py:422 #, python-brace-format msgid "Updated {part} unit-price to {price} and quantity to {qty}" msgstr "" -#: part/admin.py:48 part/models.py:1032 part/templates/part/part_base.html:269 +#: part/admin.py:48 part/models.py:1093 part/serializers.py:939 +#: part/templates/part/part_base.html:277 #: report/templates/report/inventree_stock_location_report.html:103 #: templates/js/translated/part.js:1233 templates/js/translated/part.js:2347 -#: templates/js/translated/stock.js:2121 +#: templates/js/translated/stock.js:2122 msgid "IPN" msgstr "" -#: part/admin.py:50 part/models.py:1041 part/templates/part/part_base.html:286 +#: part/admin.py:50 part/models.py:1102 part/templates/part/part_base.html:294 #: report/models.py:161 templates/js/translated/part.js:1238 #: templates/js/translated/part.js:2353 msgid "Revision" msgstr "" -#: part/admin.py:53 part/admin.py:319 part/models.py:1014 -#: part/templates/part/category.html:91 part/templates/part/part_base.html:307 +#: part/admin.py:53 part/admin.py:319 part/models.py:1075 +#: part/templates/part/category.html:91 part/templates/part/part_base.html:315 msgid "Keywords" msgstr "" @@ -6427,7 +6636,7 @@ msgstr "" msgid "Category ID" msgstr "" -#: part/admin.py:67 part/admin.py:304 part/serializers.py:880 +#: part/admin.py:67 part/admin.py:304 part/serializers.py:924 #: part/stocktake.py:222 msgid "Category Name" msgstr "" @@ -6440,11 +6649,11 @@ msgstr "" msgid "Default Supplier ID" msgstr "" -#: part/admin.py:81 part/models.py:1000 part/templates/part/part_base.html:177 +#: part/admin.py:81 part/models.py:1061 part/templates/part/part_base.html:178 msgid "Variant Of" msgstr "" -#: part/admin.py:84 part/models.py:1138 part/templates/part/part_base.html:203 +#: part/admin.py:84 part/models.py:1199 part/templates/part/part_base.html:204 msgid "Minimum Stock" msgstr "" @@ -6452,23 +6661,23 @@ msgstr "" msgid "Used In" msgstr "" -#: part/admin.py:150 part/serializers.py:897 -#: part/templates/part/part_base.html:241 stock/admin.py:235 +#: part/admin.py:150 part/serializers.py:949 +#: part/templates/part/part_base.html:249 stock/admin.py:236 #: templates/js/translated/part.js:717 templates/js/translated/part.js:2159 msgid "Building" msgstr "" -#: part/admin.py:155 part/models.py:3202 part/models.py:3216 +#: part/admin.py:155 part/models.py:3253 part/models.py:3267 #: templates/js/translated/part.js:976 msgid "Minimum Cost" msgstr "" -#: part/admin.py:158 part/models.py:3209 part/models.py:3223 +#: part/admin.py:158 part/models.py:3260 part/models.py:3274 #: templates/js/translated/part.js:986 msgid "Maximum Cost" msgstr "" -#: part/admin.py:308 part/admin.py:387 stock/admin.py:57 stock/admin.py:215 +#: part/admin.py:308 part/admin.py:387 stock/admin.py:57 stock/admin.py:216 msgid "Parent ID" msgstr "" @@ -6481,8 +6690,8 @@ msgstr "" msgid "Category Path" msgstr "" -#: part/admin.py:325 part/models.py:425 part/serializers.py:130 -#: part/serializers.py:290 part/serializers.py:415 +#: part/admin.py:325 part/models.py:420 part/serializers.py:130 +#: part/serializers.py:323 part/serializers.py:459 #: part/templates/part/cat_link.html:3 part/templates/part/category.html:20 #: part/templates/part/category.html:138 part/templates/part/category.html:158 #: part/templates/part/category_sidebar.html:9 @@ -6509,15 +6718,15 @@ msgstr "" msgid "Part Revision" msgstr "" -#: part/admin.py:418 part/serializers.py:1346 +#: part/admin.py:418 part/serializers.py:1400 #: templates/js/translated/pricing.js:358 -#: templates/js/translated/pricing.js:1024 +#: templates/js/translated/pricing.js:1022 msgid "Minimum Price" msgstr "" -#: part/admin.py:423 part/serializers.py:1361 +#: part/admin.py:423 part/serializers.py:1415 #: templates/js/translated/pricing.js:353 -#: templates/js/translated/pricing.js:1032 +#: templates/js/translated/pricing.js:1030 msgid "Maximum Price" msgstr "" @@ -6545,94 +6754,98 @@ msgstr "" msgid "Filter by top-level categories" msgstr "" +#: part/api.py:156 stock/api.py:343 +msgid "Cascade" +msgstr "" + #: part/api.py:158 msgid "Include sub-categories in filtered results" msgstr "" -#: part/api.py:179 templates/js/translated/part.js:311 +#: part/api.py:178 templates/js/translated/part.js:311 msgid "Parent" msgstr "" -#: part/api.py:181 +#: part/api.py:180 msgid "Filter by parent category" msgstr "" -#: part/api.py:214 +#: part/api.py:213 msgid "Exclude Tree" msgstr "" -#: part/api.py:216 +#: part/api.py:215 msgid "Exclude sub-categories under the specified category" msgstr "" -#: part/api.py:441 +#: part/api.py:440 msgid "Has Results" msgstr "" -#: part/api.py:608 +#: part/api.py:604 msgid "Incoming Purchase Order" msgstr "" -#: part/api.py:626 +#: part/api.py:618 msgid "Outgoing Sales Order" msgstr "" -#: part/api.py:642 +#: part/api.py:630 msgid "Stock produced by Build Order" msgstr "" -#: part/api.py:726 +#: part/api.py:712 msgid "Stock required for Build Order" msgstr "" -#: part/api.py:874 +#: part/api.py:858 msgid "Validate entire Bill of Materials" msgstr "" -#: part/api.py:880 +#: part/api.py:864 msgid "This option must be selected" msgstr "" -#: part/api.py:916 +#: part/api.py:900 msgid "Is Revision" msgstr "" -#: part/api.py:926 +#: part/api.py:910 msgid "Has Revisions" msgstr "" -#: part/api.py:1117 +#: part/api.py:1101 msgid "BOM Valid" msgstr "" -#: part/api.py:1523 part/models.py:1024 part/models.py:3489 part/models.py:4046 -#: part/serializers.py:430 part/serializers.py:1202 -#: part/templates/part/part_base.html:260 stock/api.py:781 +#: part/api.py:1509 part/models.py:1085 part/models.py:3540 part/models.py:4104 +#: part/serializers.py:474 part/serializers.py:1255 +#: part/templates/part/part_base.html:268 stock/api.py:781 #: templates/InvenTree/settings/settings_staff_js.html:300 #: templates/js/translated/notification.js:60 #: templates/js/translated/part.js:2383 msgid "Category" msgstr "" -#: part/api.py:1761 +#: part/api.py:1750 msgid "Assembly part is testable" msgstr "" -#: part/api.py:1770 +#: part/api.py:1759 msgid "Component part is testable" msgstr "" -#: part/api.py:1821 +#: part/api.py:1810 msgid "Uses" msgstr "" -#: part/bom.py:178 part/models.py:107 part/models.py:1077 -#: part/templates/part/category.html:113 part/templates/part/part_base.html:376 +#: part/bom.py:183 part/models.py:109 part/models.py:1138 +#: part/templates/part/category.html:113 part/templates/part/part_base.html:384 #: templates/js/translated/part.js:2397 msgid "Default Location" msgstr "" -#: part/bom.py:179 part/serializers.py:905 +#: part/bom.py:184 part/serializers.py:957 #: templates/email/low_stock_notification.html:16 msgid "Total Stock" msgstr "" @@ -6641,789 +6854,789 @@ msgstr "" msgid "Input quantity for price calculation" msgstr "" -#: part/models.py:88 part/models.py:4047 part/templates/part/category.html:16 +#: part/models.py:90 part/models.py:4105 part/templates/part/category.html:16 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "Kategorie dílu" -#: part/models.py:89 part/templates/part/category.html:133 +#: part/models.py:91 part/templates/part/category.html:133 #: templates/InvenTree/search.html:97 templates/js/translated/search.js:158 #: users/models.py:202 msgid "Part Categories" msgstr "Kategorie dílů" -#: part/models.py:108 +#: part/models.py:110 msgid "Default location for parts in this category" msgstr "Výchozí umístění dílů v této kategorii" -#: part/models.py:113 stock/models.py:187 templates/js/translated/part.js:2828 -#: templates/js/translated/stock.js:2856 +#: part/models.py:115 stock/models.py:193 templates/js/translated/part.js:2828 +#: templates/js/translated/stock.js:2857 #: templates/js/translated/table_filters.js:246 #: templates/js/translated/table_filters.js:290 msgid "Structural" msgstr "" -#: part/models.py:115 +#: part/models.py:117 msgid "Parts may not be directly assigned to a structural category, but may be assigned to child categories." msgstr "Díly nesmějí být přímo zařazeny do strukturované kategorie, ale mohou být zařazeny jako podkategorie." -#: part/models.py:124 +#: part/models.py:126 msgid "Default keywords" msgstr "" -#: part/models.py:125 +#: part/models.py:127 msgid "Default keywords for parts in this category" msgstr "Výchozí klíčová slova pro díly v této kategorii" -#: part/models.py:131 stock/models.py:90 stock/models.py:169 +#: part/models.py:133 stock/models.py:96 stock/models.py:175 #: templates/InvenTree/settings/settings_staff_js.html:445 msgid "Icon" msgstr "" -#: part/models.py:132 part/serializers.py:143 part/serializers.py:161 -#: stock/models.py:170 +#: part/models.py:134 part/serializers.py:143 part/serializers.py:161 +#: stock/models.py:176 msgid "Icon (optional)" msgstr "" -#: part/models.py:178 +#: part/models.py:180 msgid "You cannot make this part category structural because some parts are already assigned to it!" msgstr "" -#: part/models.py:519 +#: part/models.py:514 msgid "Cannot delete this part as it is locked" msgstr "" -#: part/models.py:522 +#: part/models.py:517 msgid "Cannot delete this part as it is still active" msgstr "" -#: part/models.py:527 +#: part/models.py:522 msgid "Cannot delete this part as it is used in an assembly" msgstr "" -#: part/models.py:565 +#: part/models.py:560 msgid "Invalid choice for parent part" msgstr "" -#: part/models.py:613 part/models.py:620 +#: part/models.py:608 part/models.py:615 #, python-brace-format msgid "Part '{self}' cannot be used in BOM for '{parent}' (recursive)" msgstr "" -#: part/models.py:632 +#: part/models.py:627 #, python-brace-format msgid "Part '{parent}' is used in BOM for '{self}' (recursive)" msgstr "" -#: part/models.py:695 +#: part/models.py:694 #, python-brace-format msgid "IPN must match regex pattern {pattern}" msgstr "" -#: part/models.py:703 +#: part/models.py:702 msgid "Part cannot be a revision of itself" msgstr "" -#: part/models.py:710 +#: part/models.py:709 msgid "Cannot make a revision of a part which is already a revision" msgstr "" -#: part/models.py:717 +#: part/models.py:716 msgid "Revision code must be specified" msgstr "" -#: part/models.py:724 +#: part/models.py:723 msgid "Revisions are only allowed for assembly parts" msgstr "" -#: part/models.py:731 +#: part/models.py:730 msgid "Cannot make a revision of a template part" msgstr "" -#: part/models.py:737 +#: part/models.py:736 msgid "Parent part must point to the same template" msgstr "" -#: part/models.py:816 +#: part/models.py:832 msgid "Stock item with this serial number already exists" msgstr "" -#: part/models.py:917 +#: part/models.py:976 msgid "Duplicate IPN not allowed in part settings" msgstr "" -#: part/models.py:926 +#: part/models.py:988 msgid "Duplicate part revision already exists." msgstr "" -#: part/models.py:936 +#: part/models.py:997 msgid "Part with this Name, IPN and Revision already exists." msgstr "" -#: part/models.py:951 +#: part/models.py:1012 msgid "Parts cannot be assigned to structural part categories!" msgstr "" -#: part/models.py:983 part/models.py:4102 +#: part/models.py:1044 part/models.py:4160 msgid "Part name" msgstr "Název dílu" -#: part/models.py:988 +#: part/models.py:1049 msgid "Is Template" msgstr "" -#: part/models.py:989 +#: part/models.py:1050 msgid "Is this part a template part?" msgstr "" -#: part/models.py:999 +#: part/models.py:1060 msgid "Is this part a variant of another part?" msgstr "" -#: part/models.py:1007 +#: part/models.py:1068 msgid "Part description (optional)" msgstr "" -#: part/models.py:1015 +#: part/models.py:1076 msgid "Part keywords to improve visibility in search results" msgstr "" -#: part/models.py:1025 +#: part/models.py:1086 msgid "Part category" msgstr "Kategorie dílu" -#: part/models.py:1040 +#: part/models.py:1101 msgid "Part revision or version number" msgstr "" -#: part/models.py:1050 +#: part/models.py:1111 msgid "Is this part a revision of another part?" msgstr "" -#: part/models.py:1051 part/templates/part/part_base.html:277 +#: part/models.py:1112 part/templates/part/part_base.html:285 msgid "Revision Of" msgstr "" -#: part/models.py:1075 +#: part/models.py:1136 msgid "Where is this item normally stored?" msgstr "" -#: part/models.py:1121 part/templates/part/part_base.html:385 +#: part/models.py:1182 part/templates/part/part_base.html:393 msgid "Default Supplier" msgstr "" -#: part/models.py:1122 +#: part/models.py:1183 msgid "Default supplier part" msgstr "" -#: part/models.py:1129 +#: part/models.py:1190 msgid "Default Expiry" msgstr "" -#: part/models.py:1130 +#: part/models.py:1191 msgid "Expiry time (in days) for stock items of this part" msgstr "" -#: part/models.py:1139 +#: part/models.py:1200 msgid "Minimum allowed stock level" msgstr "" -#: part/models.py:1148 +#: part/models.py:1209 msgid "Units of measure for this part" msgstr "" -#: part/models.py:1155 +#: part/models.py:1216 msgid "Can this part be built from other parts?" msgstr "" -#: part/models.py:1161 +#: part/models.py:1222 msgid "Can this part be used to build other parts?" msgstr "" -#: part/models.py:1167 +#: part/models.py:1228 msgid "Does this part have tracking for unique items?" msgstr "" -#: part/models.py:1173 +#: part/models.py:1234 msgid "Can this part have test results recorded against it?" msgstr "" -#: part/models.py:1179 +#: part/models.py:1240 msgid "Can this part be purchased from external suppliers?" msgstr "" -#: part/models.py:1185 +#: part/models.py:1246 msgid "Can this part be sold to customers?" msgstr "" -#: part/models.py:1189 +#: part/models.py:1250 msgid "Is this part active?" msgstr "" -#: part/models.py:1194 templates/js/translated/part.js:821 +#: part/models.py:1255 templates/js/translated/part.js:821 #: templates/js/translated/table_filters.js:724 msgid "Locked" msgstr "" -#: part/models.py:1195 +#: part/models.py:1256 msgid "Locked parts cannot be edited" msgstr "" -#: part/models.py:1201 +#: part/models.py:1262 msgid "Is this a virtual part, such as a software product or license?" msgstr "" -#: part/models.py:1207 +#: part/models.py:1268 msgid "BOM checksum" msgstr "" -#: part/models.py:1208 +#: part/models.py:1269 msgid "Stored BOM checksum" msgstr "" -#: part/models.py:1216 +#: part/models.py:1277 msgid "BOM checked by" msgstr "" -#: part/models.py:1221 +#: part/models.py:1282 msgid "BOM checked date" msgstr "" -#: part/models.py:1237 +#: part/models.py:1298 msgid "Creation User" msgstr "" -#: part/models.py:1247 +#: part/models.py:1308 msgid "Owner responsible for this part" msgstr "" -#: part/models.py:1252 part/templates/part/part_base.html:348 -#: stock/templates/stock/item_base.html:451 +#: part/models.py:1313 part/templates/part/part_base.html:356 +#: stock/templates/stock/item_base.html:448 #: templates/js/translated/part.js:2490 msgid "Last Stocktake" msgstr "" -#: part/models.py:2125 +#: part/models.py:2185 msgid "Sell multiple" msgstr "" -#: part/models.py:3116 +#: part/models.py:3167 msgid "Currency used to cache pricing calculations" msgstr "" -#: part/models.py:3132 +#: part/models.py:3183 msgid "Minimum BOM Cost" msgstr "" -#: part/models.py:3133 +#: part/models.py:3184 msgid "Minimum cost of component parts" msgstr "" -#: part/models.py:3139 +#: part/models.py:3190 msgid "Maximum BOM Cost" msgstr "" -#: part/models.py:3140 +#: part/models.py:3191 msgid "Maximum cost of component parts" msgstr "" -#: part/models.py:3146 +#: part/models.py:3197 msgid "Minimum Purchase Cost" msgstr "" -#: part/models.py:3147 +#: part/models.py:3198 msgid "Minimum historical purchase cost" msgstr "" -#: part/models.py:3153 +#: part/models.py:3204 msgid "Maximum Purchase Cost" msgstr "" -#: part/models.py:3154 +#: part/models.py:3205 msgid "Maximum historical purchase cost" msgstr "" -#: part/models.py:3160 +#: part/models.py:3211 msgid "Minimum Internal Price" msgstr "" -#: part/models.py:3161 +#: part/models.py:3212 msgid "Minimum cost based on internal price breaks" msgstr "" -#: part/models.py:3167 +#: part/models.py:3218 msgid "Maximum Internal Price" msgstr "" -#: part/models.py:3168 +#: part/models.py:3219 msgid "Maximum cost based on internal price breaks" msgstr "" -#: part/models.py:3174 +#: part/models.py:3225 msgid "Minimum Supplier Price" msgstr "" -#: part/models.py:3175 +#: part/models.py:3226 msgid "Minimum price of part from external suppliers" msgstr "" -#: part/models.py:3181 +#: part/models.py:3232 msgid "Maximum Supplier Price" msgstr "" -#: part/models.py:3182 +#: part/models.py:3233 msgid "Maximum price of part from external suppliers" msgstr "" -#: part/models.py:3188 +#: part/models.py:3239 msgid "Minimum Variant Cost" msgstr "" -#: part/models.py:3189 +#: part/models.py:3240 msgid "Calculated minimum cost of variant parts" msgstr "" -#: part/models.py:3195 +#: part/models.py:3246 msgid "Maximum Variant Cost" msgstr "" -#: part/models.py:3196 +#: part/models.py:3247 msgid "Calculated maximum cost of variant parts" msgstr "" -#: part/models.py:3203 +#: part/models.py:3254 msgid "Override minimum cost" msgstr "" -#: part/models.py:3210 +#: part/models.py:3261 msgid "Override maximum cost" msgstr "" -#: part/models.py:3217 +#: part/models.py:3268 msgid "Calculated overall minimum cost" msgstr "" -#: part/models.py:3224 +#: part/models.py:3275 msgid "Calculated overall maximum cost" msgstr "" -#: part/models.py:3230 +#: part/models.py:3281 msgid "Minimum Sale Price" msgstr "" -#: part/models.py:3231 +#: part/models.py:3282 msgid "Minimum sale price based on price breaks" msgstr "" -#: part/models.py:3237 +#: part/models.py:3288 msgid "Maximum Sale Price" msgstr "" -#: part/models.py:3238 +#: part/models.py:3289 msgid "Maximum sale price based on price breaks" msgstr "" -#: part/models.py:3244 +#: part/models.py:3295 msgid "Minimum Sale Cost" msgstr "" -#: part/models.py:3245 +#: part/models.py:3296 msgid "Minimum historical sale price" msgstr "" -#: part/models.py:3251 +#: part/models.py:3302 msgid "Maximum Sale Cost" msgstr "" -#: part/models.py:3252 +#: part/models.py:3303 msgid "Maximum historical sale price" msgstr "" -#: part/models.py:3271 +#: part/models.py:3322 msgid "Part for stocktake" msgstr "" -#: part/models.py:3276 +#: part/models.py:3327 msgid "Item Count" msgstr "" -#: part/models.py:3277 +#: part/models.py:3328 msgid "Number of individual stock entries at time of stocktake" msgstr "" -#: part/models.py:3285 +#: part/models.py:3336 msgid "Total available stock at time of stocktake" msgstr "" -#: part/models.py:3289 part/models.py:3372 +#: part/models.py:3340 part/models.py:3423 part/serializers.py:263 #: part/templates/part/part_scheduling.html:13 #: report/templates/report/inventree_test_report.html:106 #: templates/InvenTree/settings/plugin_settings.html:37 #: templates/InvenTree/settings/settings_staff_js.html:543 -#: templates/js/translated/part.js:1092 templates/js/translated/pricing.js:826 -#: templates/js/translated/pricing.js:950 -#: templates/js/translated/purchase_order.js:1801 -#: templates/js/translated/stock.js:2905 +#: templates/js/translated/part.js:1092 templates/js/translated/pricing.js:824 +#: templates/js/translated/pricing.js:948 +#: templates/js/translated/purchase_order.js:1785 +#: templates/js/translated/stock.js:2906 msgid "Date" msgstr "" -#: part/models.py:3290 +#: part/models.py:3341 msgid "Date stocktake was performed" msgstr "" -#: part/models.py:3298 +#: part/models.py:3349 msgid "Additional notes" msgstr "" -#: part/models.py:3308 +#: part/models.py:3359 msgid "User who performed this stocktake" msgstr "" -#: part/models.py:3314 +#: part/models.py:3365 msgid "Minimum Stock Cost" msgstr "" -#: part/models.py:3315 +#: part/models.py:3366 msgid "Estimated minimum cost of stock on hand" msgstr "" -#: part/models.py:3321 +#: part/models.py:3372 msgid "Maximum Stock Cost" msgstr "" -#: part/models.py:3322 +#: part/models.py:3373 msgid "Estimated maximum cost of stock on hand" msgstr "" -#: part/models.py:3378 templates/InvenTree/settings/settings_staff_js.html:532 +#: part/models.py:3429 templates/InvenTree/settings/settings_staff_js.html:532 msgid "Report" msgstr "" -#: part/models.py:3379 +#: part/models.py:3430 msgid "Stocktake report file (generated internally)" msgstr "" -#: part/models.py:3384 templates/InvenTree/settings/settings_staff_js.html:539 +#: part/models.py:3435 templates/InvenTree/settings/settings_staff_js.html:539 msgid "Part Count" msgstr "" -#: part/models.py:3385 +#: part/models.py:3436 msgid "Number of parts covered by stocktake" msgstr "" -#: part/models.py:3395 +#: part/models.py:3446 msgid "User who requested this stocktake report" msgstr "" -#: part/models.py:3405 +#: part/models.py:3456 msgid "Part Sale Price Break" msgstr "" -#: part/models.py:3517 +#: part/models.py:3568 msgid "Part Test Template" msgstr "" -#: part/models.py:3543 +#: part/models.py:3594 msgid "Invalid template name - must include at least one alphanumeric character" msgstr "" -#: part/models.py:3564 part/models.py:3733 +#: part/models.py:3615 part/models.py:3784 msgid "Choices must be unique" msgstr "" -#: part/models.py:3575 -msgid "Test templates can only be created for trackable parts" +#: part/models.py:3626 +msgid "Test templates can only be created for testable parts" msgstr "" -#: part/models.py:3586 +#: part/models.py:3637 msgid "Test template with the same key already exists for part" msgstr "" -#: part/models.py:3603 templates/js/translated/part.js:2898 +#: part/models.py:3654 templates/js/translated/part.js:2898 msgid "Test Name" msgstr "" -#: part/models.py:3604 +#: part/models.py:3655 msgid "Enter a name for the test" msgstr "" -#: part/models.py:3610 +#: part/models.py:3661 msgid "Test Key" msgstr "" -#: part/models.py:3611 +#: part/models.py:3662 msgid "Simplified key for the test" msgstr "" -#: part/models.py:3618 +#: part/models.py:3669 msgid "Test Description" msgstr "" -#: part/models.py:3619 +#: part/models.py:3670 msgid "Enter description for this test" msgstr "" -#: part/models.py:3623 report/models.py:208 +#: part/models.py:3674 report/models.py:216 #: templates/js/translated/part.js:2919 #: templates/js/translated/table_filters.js:502 msgid "Enabled" msgstr "" -#: part/models.py:3623 +#: part/models.py:3674 msgid "Is this test enabled?" msgstr "" -#: part/models.py:3628 templates/js/translated/part.js:2927 +#: part/models.py:3679 templates/js/translated/part.js:2927 #: templates/js/translated/table_filters.js:498 msgid "Required" msgstr "" -#: part/models.py:3629 +#: part/models.py:3680 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:3634 templates/js/translated/part.js:2935 +#: part/models.py:3685 templates/js/translated/part.js:2935 msgid "Requires Value" msgstr "" -#: part/models.py:3635 +#: part/models.py:3686 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:3640 templates/js/translated/part.js:2942 +#: part/models.py:3691 templates/js/translated/part.js:2942 msgid "Requires Attachment" msgstr "" -#: part/models.py:3642 +#: part/models.py:3693 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:3648 part/models.py:3792 templates/js/translated/part.js:1643 +#: part/models.py:3699 part/models.py:3843 templates/js/translated/part.js:1643 msgid "Choices" msgstr "" -#: part/models.py:3649 +#: part/models.py:3700 msgid "Valid choices for this test (comma-separated)" msgstr "" -#: part/models.py:3681 +#: part/models.py:3732 msgid "Part Parameter Template" msgstr "" -#: part/models.py:3708 +#: part/models.py:3759 msgid "Checkbox parameters cannot have units" msgstr "" -#: part/models.py:3713 +#: part/models.py:3764 msgid "Checkbox parameters cannot have choices" msgstr "" -#: part/models.py:3750 +#: part/models.py:3801 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:3765 +#: part/models.py:3816 msgid "Parameter Name" msgstr "" -#: part/models.py:3772 +#: part/models.py:3823 msgid "Physical units for this parameter" msgstr "" -#: part/models.py:3780 +#: part/models.py:3831 msgid "Parameter description" msgstr "" -#: part/models.py:3786 templates/js/translated/part.js:1634 +#: part/models.py:3837 templates/js/translated/part.js:1634 #: templates/js/translated/table_filters.js:837 msgid "Checkbox" msgstr "" -#: part/models.py:3787 +#: part/models.py:3838 msgid "Is this parameter a checkbox?" msgstr "" -#: part/models.py:3793 +#: part/models.py:3844 msgid "Valid choices for this parameter (comma-separated)" msgstr "" -#: part/models.py:3827 +#: part/models.py:3881 msgid "Part Parameter" msgstr "" -#: part/models.py:3853 +#: part/models.py:3907 msgid "Parameter cannot be modified - part is locked" msgstr "" -#: part/models.py:3889 +#: part/models.py:3945 msgid "Invalid choice for parameter value" msgstr "" -#: part/models.py:3938 +#: part/models.py:3996 msgid "Parent Part" msgstr "" -#: part/models.py:3946 part/models.py:4054 part/models.py:4055 +#: part/models.py:4004 part/models.py:4112 part/models.py:4113 #: templates/InvenTree/settings/settings_staff_js.html:295 msgid "Parameter Template" msgstr "" -#: part/models.py:3952 +#: part/models.py:4010 msgid "Parameter Value" msgstr "" -#: part/models.py:4002 +#: part/models.py:4060 msgid "Part Category Parameter Template" msgstr "" -#: part/models.py:4061 templates/InvenTree/settings/settings_staff_js.html:304 +#: part/models.py:4119 templates/InvenTree/settings/settings_staff_js.html:304 msgid "Default Value" msgstr "" -#: part/models.py:4062 +#: part/models.py:4120 msgid "Default Parameter Value" msgstr "" -#: part/models.py:4100 +#: part/models.py:4158 msgid "Part ID or part name" msgstr "ID dílu nebo název dílu" -#: part/models.py:4101 +#: part/models.py:4159 msgid "Unique part ID value" msgstr "Jedinečná hodnota ID dílu" -#: part/models.py:4103 +#: part/models.py:4161 msgid "Part IPN value" msgstr "Hodnota IPN dílu" -#: part/models.py:4104 +#: part/models.py:4162 msgid "Level" msgstr "" -#: part/models.py:4104 +#: part/models.py:4162 msgid "BOM level" msgstr "" -#: part/models.py:4215 +#: part/models.py:4272 msgid "BOM item cannot be modified - assembly is locked" msgstr "" -#: part/models.py:4222 +#: part/models.py:4279 msgid "BOM item cannot be modified - variant assembly is locked" msgstr "" -#: part/models.py:4232 +#: part/models.py:4289 msgid "Select parent part" msgstr "Vyberte nadřazený díl" -#: part/models.py:4242 +#: part/models.py:4299 msgid "Sub part" msgstr "" -#: part/models.py:4243 +#: part/models.py:4300 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:4254 +#: part/models.py:4311 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:4260 +#: part/models.py:4317 msgid "This BOM item is optional" msgstr "" -#: part/models.py:4266 +#: part/models.py:4323 msgid "This BOM item is consumable (it is not tracked in build orders)" msgstr "" -#: part/models.py:4273 part/templates/part/upload_bom.html:55 +#: part/models.py:4330 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "" -#: part/models.py:4274 +#: part/models.py:4331 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:4281 +#: part/models.py:4338 msgid "BOM item reference" msgstr "" -#: part/models.py:4289 +#: part/models.py:4346 msgid "BOM item notes" msgstr "" -#: part/models.py:4295 +#: part/models.py:4352 msgid "Checksum" msgstr "" -#: part/models.py:4296 +#: part/models.py:4353 msgid "BOM line checksum" msgstr "" -#: part/models.py:4301 templates/js/translated/table_filters.js:181 +#: part/models.py:4358 templates/js/translated/table_filters.js:181 msgid "Validated" msgstr "" -#: part/models.py:4302 +#: part/models.py:4359 msgid "This BOM item has been validated" msgstr "" -#: part/models.py:4307 part/templates/part/upload_bom.html:57 +#: part/models.py:4364 part/templates/part/upload_bom.html:57 #: templates/js/translated/bom.js:1054 #: templates/js/translated/table_filters.js:185 #: templates/js/translated/table_filters.js:218 msgid "Gets inherited" msgstr "" -#: part/models.py:4308 +#: part/models.py:4365 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:4314 +#: part/models.py:4371 msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:4399 stock/models.py:685 +#: part/models.py:4456 stock/models.py:762 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:4409 part/models.py:4411 +#: part/models.py:4466 part/models.py:4468 msgid "Sub part must be specified" msgstr "" -#: part/models.py:4551 +#: part/models.py:4613 msgid "BOM Item Substitute" msgstr "" -#: part/models.py:4572 +#: part/models.py:4634 msgid "Substitute part cannot be the same as the master part" msgstr "" -#: part/models.py:4585 +#: part/models.py:4647 msgid "Parent BOM item" msgstr "" -#: part/models.py:4593 +#: part/models.py:4655 msgid "Substitute part" msgstr "" -#: part/models.py:4609 +#: part/models.py:4671 msgid "Part 1" msgstr "" -#: part/models.py:4617 +#: part/models.py:4679 msgid "Part 2" msgstr "" -#: part/models.py:4618 +#: part/models.py:4680 msgid "Select Related Part" msgstr "" -#: part/models.py:4637 +#: part/models.py:4699 msgid "Part relationship cannot be created between a part and itself" msgstr "" -#: part/models.py:4642 +#: part/models.py:4704 msgid "Duplicate relationship already exists" msgstr "" @@ -7449,340 +7662,352 @@ msgstr "" msgid "Number of results recorded against this template" msgstr "" -#: part/serializers.py:225 part/serializers.py:243 stock/serializers.py:616 +#: part/serializers.py:225 part/serializers.py:243 stock/serializers.py:643 msgid "Purchase currency of this stock item" msgstr "" -#: part/serializers.py:291 +#: part/serializers.py:268 +msgid "Speculative Quantity" +msgstr "" + +#: part/serializers.py:277 +msgid "Model ID" +msgstr "" + +#: part/serializers.py:324 msgid "Number of parts using this template" msgstr "" -#: part/serializers.py:421 +#: part/serializers.py:465 msgid "No parts selected" msgstr "" -#: part/serializers.py:431 +#: part/serializers.py:475 msgid "Select category" msgstr "" -#: part/serializers.py:466 +#: part/serializers.py:510 msgid "Original Part" msgstr "" -#: part/serializers.py:467 +#: part/serializers.py:511 msgid "Select original part to duplicate" msgstr "" -#: part/serializers.py:472 +#: part/serializers.py:516 msgid "Copy Image" msgstr "" -#: part/serializers.py:473 +#: part/serializers.py:517 msgid "Copy image from original part" msgstr "" -#: part/serializers.py:479 part/templates/part/detail.html:293 +#: part/serializers.py:523 part/templates/part/detail.html:293 msgid "Copy BOM" msgstr "" -#: part/serializers.py:480 +#: part/serializers.py:524 msgid "Copy bill of materials from original part" msgstr "" -#: part/serializers.py:486 +#: part/serializers.py:530 msgid "Copy Parameters" msgstr "" -#: part/serializers.py:487 +#: part/serializers.py:531 msgid "Copy parameter data from original part" msgstr "" -#: part/serializers.py:493 +#: part/serializers.py:537 msgid "Copy Notes" msgstr "" -#: part/serializers.py:494 +#: part/serializers.py:538 msgid "Copy notes from original part" msgstr "" -#: part/serializers.py:512 +#: part/serializers.py:556 msgid "Initial Stock Quantity" msgstr "" -#: part/serializers.py:514 +#: part/serializers.py:558 msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added." msgstr "" -#: part/serializers.py:521 +#: part/serializers.py:565 msgid "Initial Stock Location" msgstr "" -#: part/serializers.py:522 +#: part/serializers.py:566 msgid "Specify initial stock location for this Part" msgstr "" -#: part/serializers.py:539 +#: part/serializers.py:583 msgid "Select supplier (or leave blank to skip)" msgstr "" -#: part/serializers.py:555 +#: part/serializers.py:599 msgid "Select manufacturer (or leave blank to skip)" msgstr "" -#: part/serializers.py:565 +#: part/serializers.py:609 msgid "Manufacturer part number" msgstr "" -#: part/serializers.py:572 +#: part/serializers.py:616 msgid "Selected company is not a valid supplier" msgstr "" -#: part/serializers.py:581 +#: part/serializers.py:625 msgid "Selected company is not a valid manufacturer" msgstr "" -#: part/serializers.py:592 +#: part/serializers.py:636 msgid "Manufacturer part matching this MPN already exists" msgstr "" -#: part/serializers.py:599 +#: part/serializers.py:643 msgid "Supplier part matching this SKU already exists" msgstr "" -#: part/serializers.py:903 +#: part/serializers.py:955 msgid "Revisions" msgstr "" -#: part/serializers.py:908 +#: part/serializers.py:960 msgid "Unallocated Stock" msgstr "" -#: part/serializers.py:911 +#: part/serializers.py:963 msgid "Variant Stock" msgstr "" -#: part/serializers.py:941 part/templates/part/copy_part.html:9 +#: part/serializers.py:993 part/templates/part/copy_part.html:9 #: templates/js/translated/part.js:474 msgid "Duplicate Part" msgstr "" -#: part/serializers.py:942 +#: part/serializers.py:994 msgid "Copy initial data from another Part" msgstr "" -#: part/serializers.py:948 templates/js/translated/part.js:103 +#: part/serializers.py:1000 templates/js/translated/part.js:103 msgid "Initial Stock" msgstr "" -#: part/serializers.py:949 +#: part/serializers.py:1001 msgid "Create Part with initial stock quantity" msgstr "" -#: part/serializers.py:955 +#: part/serializers.py:1007 msgid "Supplier Information" msgstr "" -#: part/serializers.py:956 +#: part/serializers.py:1008 msgid "Add initial supplier information for this part" msgstr "" -#: part/serializers.py:964 +#: part/serializers.py:1016 msgid "Copy Category Parameters" msgstr "" -#: part/serializers.py:965 +#: part/serializers.py:1017 msgid "Copy parameter templates from selected part category" msgstr "" -#: part/serializers.py:970 +#: part/serializers.py:1022 msgid "Existing Image" msgstr "" -#: part/serializers.py:971 +#: part/serializers.py:1023 msgid "Filename of an existing part image" msgstr "" -#: part/serializers.py:988 +#: part/serializers.py:1040 msgid "Image file does not exist" msgstr "" -#: part/serializers.py:1194 +#: part/serializers.py:1247 msgid "Limit stocktake report to a particular part, and any variant parts" msgstr "" -#: part/serializers.py:1204 +#: part/serializers.py:1257 msgid "Limit stocktake report to a particular part category, and any child categories" msgstr "" -#: part/serializers.py:1214 +#: part/serializers.py:1267 msgid "Limit stocktake report to a particular stock location, and any child locations" msgstr "" -#: part/serializers.py:1220 +#: part/serializers.py:1273 msgid "Exclude External Stock" msgstr "" -#: part/serializers.py:1221 +#: part/serializers.py:1274 msgid "Exclude stock items in external locations" msgstr "" -#: part/serializers.py:1226 +#: part/serializers.py:1279 msgid "Generate Report" msgstr "" -#: part/serializers.py:1227 +#: part/serializers.py:1280 msgid "Generate report file containing calculated stocktake data" msgstr "" -#: part/serializers.py:1232 +#: part/serializers.py:1285 msgid "Update Parts" msgstr "Aktualizovat díly" -#: part/serializers.py:1233 +#: part/serializers.py:1286 msgid "Update specified parts with calculated stocktake data" msgstr "" -#: part/serializers.py:1241 +#: part/serializers.py:1294 msgid "Stocktake functionality is not enabled" msgstr "" -#: part/serializers.py:1347 +#: part/serializers.py:1299 +msgid "Background worker check failed" +msgstr "Kontrola procesů na pozadí se nezdařila" + +#: part/serializers.py:1401 msgid "Override calculated value for minimum price" msgstr "" -#: part/serializers.py:1354 +#: part/serializers.py:1408 msgid "Minimum price currency" msgstr "" -#: part/serializers.py:1362 +#: part/serializers.py:1416 msgid "Override calculated value for maximum price" msgstr "" -#: part/serializers.py:1369 +#: part/serializers.py:1423 msgid "Maximum price currency" msgstr "" -#: part/serializers.py:1398 +#: part/serializers.py:1452 msgid "Update" msgstr "" -#: part/serializers.py:1399 +#: part/serializers.py:1453 msgid "Update pricing for this part" msgstr "Aktualizovat cenu pro díl" -#: part/serializers.py:1422 +#: part/serializers.py:1476 #, python-brace-format msgid "Could not convert from provided currencies to {default_currency}" msgstr "" -#: part/serializers.py:1429 +#: part/serializers.py:1483 msgid "Minimum price must not be greater than maximum price" msgstr "" -#: part/serializers.py:1432 +#: part/serializers.py:1486 msgid "Maximum price must not be less than minimum price" msgstr "" -#: part/serializers.py:1576 +#: part/serializers.py:1634 msgid "Select the parent assembly" msgstr "" -#: part/serializers.py:1585 +#: part/serializers.py:1643 msgid "Component Name" msgstr "" -#: part/serializers.py:1588 +#: part/serializers.py:1646 msgid "Component IPN" msgstr "" -#: part/serializers.py:1591 +#: part/serializers.py:1649 msgid "Component Description" msgstr "" -#: part/serializers.py:1597 +#: part/serializers.py:1655 msgid "Select the component part" msgstr "" -#: part/serializers.py:1606 part/templates/part/part_base.html:235 +#: part/serializers.py:1664 part/templates/part/part_base.html:243 #: templates/js/translated/bom.js:1219 msgid "Can Build" msgstr "" -#: part/serializers.py:1837 +#: part/serializers.py:1899 msgid "Select part to copy BOM from" msgstr "" -#: part/serializers.py:1845 +#: part/serializers.py:1907 msgid "Remove Existing Data" msgstr "" -#: part/serializers.py:1846 +#: part/serializers.py:1908 msgid "Remove existing BOM items before copying" msgstr "" -#: part/serializers.py:1851 +#: part/serializers.py:1913 msgid "Include Inherited" msgstr "" -#: part/serializers.py:1852 +#: part/serializers.py:1914 msgid "Include BOM items which are inherited from templated parts" msgstr "" -#: part/serializers.py:1857 +#: part/serializers.py:1919 msgid "Skip Invalid Rows" msgstr "" -#: part/serializers.py:1858 +#: part/serializers.py:1920 msgid "Enable this option to skip invalid rows" msgstr "" -#: part/serializers.py:1863 +#: part/serializers.py:1925 msgid "Copy Substitute Parts" msgstr "" -#: part/serializers.py:1864 +#: part/serializers.py:1926 msgid "Copy substitute parts when duplicate BOM items" msgstr "" -#: part/serializers.py:1901 +#: part/serializers.py:1963 msgid "Clear Existing BOM" msgstr "" -#: part/serializers.py:1902 +#: part/serializers.py:1964 msgid "Delete existing BOM items before uploading" msgstr "" -#: part/serializers.py:1934 +#: part/serializers.py:1996 msgid "No part column specified" msgstr "" -#: part/serializers.py:1978 +#: part/serializers.py:2040 msgid "Multiple matching parts found" msgstr "" -#: part/serializers.py:1981 +#: part/serializers.py:2043 msgid "No matching part found" msgstr "" -#: part/serializers.py:1984 +#: part/serializers.py:2045 msgid "Part is not designated as a component" msgstr "" -#: part/serializers.py:1993 +#: part/serializers.py:2054 msgid "Quantity not provided" msgstr "" -#: part/serializers.py:2001 +#: part/serializers.py:2062 msgid "Invalid quantity" msgstr "" -#: part/serializers.py:2024 +#: part/serializers.py:2085 msgid "At least one BOM item is required" msgstr "" #: part/stocktake.py:224 templates/js/translated/part.js:1073 #: templates/js/translated/part.js:1828 templates/js/translated/part.js:1884 -#: templates/js/translated/purchase_order.js:2154 +#: templates/js/translated/purchase_order.js:2138 msgid "Total Quantity" msgstr "" @@ -7932,9 +8157,9 @@ msgid "Add stocktake information" msgstr "" #: part/templates/part/detail.html:67 part/templates/part/part_sidebar.html:50 -#: stock/admin.py:255 templates/InvenTree/settings/part_stocktake.html:30 +#: stock/admin.py:256 templates/InvenTree/settings/part_stocktake.html:30 #: templates/InvenTree/settings/sidebar.html:53 -#: templates/js/translated/stock.js:2301 users/models.py:204 +#: templates/js/translated/stock.js:2302 users/models.py:204 msgid "Stocktake" msgstr "" @@ -8093,142 +8318,146 @@ msgstr "" msgid "Part List" msgstr "" -#: part/templates/part/part_base.html:25 part/templates/part/part_base.html:29 +#: part/templates/part/part_base.html:26 part/templates/part/part_base.html:30 msgid "You are subscribed to notifications for this part" msgstr "" -#: part/templates/part/part_base.html:33 +#: part/templates/part/part_base.html:34 msgid "Subscribe to notifications for this part" msgstr "" -#: part/templates/part/part_base.html:52 +#: part/templates/part/part_base.html:53 #: stock/templates/stock/item_base.html:62 -#: stock/templates/stock/location.html:71 templates/js/translated/label.js:136 +#: stock/templates/stock/location.html:72 templates/js/translated/label.js:136 msgid "Print Label" msgstr "" -#: part/templates/part/part_base.html:58 +#: part/templates/part/part_base.html:59 msgid "Show pricing information" msgstr "" -#: part/templates/part/part_base.html:63 -#: stock/templates/stock/item_base.html:110 -#: stock/templates/stock/location.html:80 +#: part/templates/part/part_base.html:64 +#: stock/templates/stock/item_base.html:107 +#: stock/templates/stock/location.html:81 msgid "Stock actions" msgstr "" -#: part/templates/part/part_base.html:70 +#: part/templates/part/part_base.html:71 msgid "Count part stock" msgstr "" -#: part/templates/part/part_base.html:76 +#: part/templates/part/part_base.html:77 msgid "Transfer part stock" msgstr "" -#: part/templates/part/part_base.html:91 templates/js/translated/part.js:2299 +#: part/templates/part/part_base.html:92 templates/js/translated/part.js:2299 msgid "Part actions" msgstr "" -#: part/templates/part/part_base.html:94 +#: part/templates/part/part_base.html:95 msgid "Duplicate part" msgstr "" -#: part/templates/part/part_base.html:97 +#: part/templates/part/part_base.html:98 msgid "Edit part" msgstr "" -#: part/templates/part/part_base.html:100 +#: part/templates/part/part_base.html:101 msgid "Delete part" msgstr "" -#: part/templates/part/part_base.html:119 +#: part/templates/part/part_base.html:120 msgid "Part is a template part (variants can be made from this part)" msgstr "" -#: part/templates/part/part_base.html:123 +#: part/templates/part/part_base.html:124 msgid "Part can be assembled from other parts" msgstr "" -#: part/templates/part/part_base.html:127 +#: part/templates/part/part_base.html:128 msgid "Part can be used in assemblies" msgstr "" -#: part/templates/part/part_base.html:131 +#: part/templates/part/part_base.html:132 msgid "Part stock is tracked by serial number" msgstr "" -#: part/templates/part/part_base.html:135 +#: part/templates/part/part_base.html:136 msgid "Part can be purchased from external suppliers" msgstr "" -#: part/templates/part/part_base.html:139 +#: part/templates/part/part_base.html:140 msgid "Part can be sold to customers" msgstr "" -#: part/templates/part/part_base.html:145 +#: part/templates/part/part_base.html:146 msgid "Part is not active" msgstr "" -#: part/templates/part/part_base.html:153 +#: part/templates/part/part_base.html:154 msgid "Part is virtual (not a physical part)" msgstr "" -#: part/templates/part/part_base.html:163 -#: part/templates/part/part_base.html:690 +#: part/templates/part/part_base.html:164 +#: part/templates/part/part_base.html:698 msgid "Show Part Details" msgstr "" #: part/templates/part/part_base.html:218 -#: stock/templates/stock/item_base.html:388 +msgid "Required for Orders" +msgstr "" + +#: part/templates/part/part_base.html:226 +#: stock/templates/stock/item_base.html:385 msgid "Allocated to Build Orders" msgstr "" -#: part/templates/part/part_base.html:227 -#: stock/templates/stock/item_base.html:381 +#: part/templates/part/part_base.html:235 +#: stock/templates/stock/item_base.html:378 msgid "Allocated to Sales Orders" msgstr "" -#: part/templates/part/part_base.html:300 +#: part/templates/part/part_base.html:308 msgid "Minimum stock level" msgstr "" -#: part/templates/part/part_base.html:331 templates/js/translated/bom.js:1071 +#: part/templates/part/part_base.html:339 templates/js/translated/bom.js:1071 #: templates/js/translated/part.js:1271 templates/js/translated/part.js:2463 #: templates/js/translated/pricing.js:391 -#: templates/js/translated/pricing.js:1054 +#: templates/js/translated/pricing.js:1052 msgid "Price Range" msgstr "" -#: part/templates/part/part_base.html:361 +#: part/templates/part/part_base.html:369 msgid "Latest Serial Number" msgstr "" -#: part/templates/part/part_base.html:365 -#: stock/templates/stock/item_base.html:322 +#: part/templates/part/part_base.html:373 +#: stock/templates/stock/item_base.html:319 msgid "Search for serial number" msgstr "" -#: part/templates/part/part_base.html:453 +#: part/templates/part/part_base.html:461 msgid "Part QR Code" msgstr "" -#: part/templates/part/part_base.html:470 +#: part/templates/part/part_base.html:478 msgid "Link Barcode to Part" msgstr "" -#: part/templates/part/part_base.html:520 +#: part/templates/part/part_base.html:528 msgid "Calculate" msgstr "" -#: part/templates/part/part_base.html:537 +#: part/templates/part/part_base.html:545 msgid "Remove associated image from this part" msgstr "" -#: part/templates/part/part_base.html:588 +#: part/templates/part/part_base.html:596 msgid "No matching images found" msgstr "" -#: part/templates/part/part_base.html:684 +#: part/templates/part/part_base.html:692 msgid "Hide Part Details" msgstr "" @@ -8282,13 +8511,13 @@ msgid "Variants" msgstr "" #: part/templates/part/part_sidebar.html:14 -#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:21 +#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:22 #: stock/templates/stock/stock_app_base.html:10 #: templates/InvenTree/search.html:153 #: templates/InvenTree/settings/sidebar.html:51 #: templates/js/translated/part.js:1249 templates/js/translated/part.js:2152 #: templates/js/translated/part.js:2411 templates/js/translated/stock.js:1066 -#: templates/js/translated/stock.js:2155 templates/navbar.html:31 +#: templates/js/translated/stock.js:2156 templates/navbar.html:31 msgid "Stock" msgstr "" @@ -8324,17 +8553,17 @@ msgstr "" #: part/templates/part/prices.html:18 #: templates/InvenTree/settings/settings_staff_js.html:80 #: templates/InvenTree/settings/user.html:24 -#: templates/js/translated/helpers.js:103 +#: templates/js/translated/helpers.js:104 #: templates/js/translated/pricing.js:628 templates/notes_buttons.html:3 #: templates/notes_buttons.html:4 msgid "Edit" msgstr "" -#: part/templates/part/prices.html:28 stock/admin.py:251 -#: stock/templates/stock/item_base.html:446 -#: templates/js/translated/company.js:1703 -#: templates/js/translated/company.js:1713 -#: templates/js/translated/stock.js:2331 +#: part/templates/part/prices.html:28 stock/admin.py:252 +#: stock/templates/stock/item_base.html:443 +#: templates/js/translated/company.js:1704 +#: templates/js/translated/company.js:1714 +#: templates/js/translated/stock.js:2332 msgid "Last Updated" msgstr "" @@ -8406,7 +8635,7 @@ msgid "Update Pricing" msgstr "" #: part/templates/part/stock_count.html:7 -#: templates/js/translated/model_renderers.js:228 +#: templates/js/translated/model_renderers.js:231 #: templates/js/translated/part.js:707 templates/js/translated/part.js:2147 #: templates/js/translated/part.js:2149 msgid "No Stock" @@ -8486,7 +8715,7 @@ msgstr "" msgid "Part Pricing" msgstr "" -#: plugin/api.py:172 +#: plugin/api.py:175 msgid "Plugin cannot be deleted as it is currently active" msgstr "" @@ -8498,78 +8727,85 @@ msgstr "Činnost nebyla specifikována" msgid "No matching action found" msgstr "Nebyla nalezena odpovídající činnost" -#: plugin/base/barcodes/api.py:125 plugin/base/barcodes/api.py:371 -#: plugin/base/barcodes/api.py:546 +#: plugin/base/barcodes/api.py:203 msgid "No match found for barcode data" msgstr "Pro data čárového kódu nebyla nalezena shoda" -#: plugin/base/barcodes/api.py:129 +#: plugin/base/barcodes/api.py:207 msgid "Match found for barcode data" msgstr "Pro data čárového kódu byla nalezena shoda" -#: plugin/base/barcodes/api.py:163 plugin/base/barcodes/serializers.py:45 +#: plugin/base/barcodes/api.py:245 plugin/base/barcodes/serializers.py:72 msgid "Model is not supported" msgstr "" -#: plugin/base/barcodes/api.py:168 +#: plugin/base/barcodes/api.py:250 msgid "Model instance not found" msgstr "" -#: plugin/base/barcodes/api.py:197 -#: templates/js/translated/purchase_order.js:1468 +#: plugin/base/barcodes/api.py:279 +#: templates/js/translated/purchase_order.js:1452 msgid "Barcode matches existing item" msgstr "" -#: plugin/base/barcodes/api.py:336 +#: plugin/base/barcodes/api.py:418 msgid "No matching part data found" msgstr "" -#: plugin/base/barcodes/api.py:353 +#: plugin/base/barcodes/api.py:434 msgid "No matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:357 +#: plugin/base/barcodes/api.py:437 msgid "Multiple matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:381 +#: plugin/base/barcodes/api.py:450 plugin/base/barcodes/api.py:664 +msgid "No matching plugin found for barcode data" +msgstr "" + +#: plugin/base/barcodes/api.py:460 msgid "Matched supplier part" msgstr "" -#: plugin/base/barcodes/api.py:430 +#: plugin/base/barcodes/api.py:525 msgid "Item has already been received" msgstr "" -#: plugin/base/barcodes/api.py:467 +#: plugin/base/barcodes/api.py:563 msgid "No match for supplier barcode" msgstr "" -#: plugin/base/barcodes/api.py:510 +#: plugin/base/barcodes/api.py:612 msgid "Multiple matching line items found" msgstr "" -#: plugin/base/barcodes/api.py:513 +#: plugin/base/barcodes/api.py:615 msgid "No matching line item found" msgstr "" -#: plugin/base/barcodes/api.py:551 plugin/base/barcodes/api.py:558 +#: plugin/base/barcodes/api.py:661 +msgid "No sales order provided" +msgstr "" + +#: plugin/base/barcodes/api.py:670 msgid "Barcode does not match an existing stock item" msgstr "" -#: plugin/base/barcodes/api.py:569 +#: plugin/base/barcodes/api.py:686 msgid "Stock item does not match line item" msgstr "" -#: plugin/base/barcodes/api.py:593 templates/js/translated/build.js:2780 -#: templates/js/translated/sales_order.js:1953 +#: plugin/base/barcodes/api.py:716 templates/js/translated/build.js:2798 +#: templates/js/translated/sales_order.js:1934 msgid "Insufficient stock available" msgstr "" -#: plugin/base/barcodes/api.py:602 +#: plugin/base/barcodes/api.py:729 msgid "Stock item allocated to sales order" msgstr "" -#: plugin/base/barcodes/api.py:606 +#: plugin/base/barcodes/api.py:732 msgid "Not enough information" msgstr "" @@ -8591,75 +8827,75 @@ msgstr "" msgid "Purchase order does not match supplier" msgstr "" -#: plugin/base/barcodes/mixins.py:465 +#: plugin/base/barcodes/mixins.py:467 msgid "Failed to find pending line item for supplier part" msgstr "" -#: plugin/base/barcodes/mixins.py:496 +#: plugin/base/barcodes/mixins.py:498 msgid "Further information required to receive line item" msgstr "" -#: plugin/base/barcodes/mixins.py:504 +#: plugin/base/barcodes/mixins.py:506 msgid "Received purchase order line item" msgstr "" -#: plugin/base/barcodes/serializers.py:21 +#: plugin/base/barcodes/serializers.py:48 msgid "Scanned barcode data" msgstr "" -#: plugin/base/barcodes/serializers.py:30 +#: plugin/base/barcodes/serializers.py:57 msgid "Model name to generate barcode for" msgstr "" -#: plugin/base/barcodes/serializers.py:35 +#: plugin/base/barcodes/serializers.py:62 msgid "Primary key of model object to generate barcode for" msgstr "" -#: plugin/base/barcodes/serializers.py:105 +#: plugin/base/barcodes/serializers.py:132 msgid "Purchase Order to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:111 +#: plugin/base/barcodes/serializers.py:138 msgid "Purchase order is not pending" msgstr "" -#: plugin/base/barcodes/serializers.py:129 +#: plugin/base/barcodes/serializers.py:156 msgid "PurchaseOrder to receive items against" msgstr "" -#: plugin/base/barcodes/serializers.py:135 +#: plugin/base/barcodes/serializers.py:162 msgid "Purchase order has not been placed" msgstr "" -#: plugin/base/barcodes/serializers.py:143 +#: plugin/base/barcodes/serializers.py:170 msgid "Location to receive items into" msgstr "" -#: plugin/base/barcodes/serializers.py:149 +#: plugin/base/barcodes/serializers.py:176 msgid "Cannot select a structural location" msgstr "" -#: plugin/base/barcodes/serializers.py:163 +#: plugin/base/barcodes/serializers.py:190 msgid "Sales Order to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:169 +#: plugin/base/barcodes/serializers.py:196 msgid "Sales order is not pending" msgstr "" -#: plugin/base/barcodes/serializers.py:177 +#: plugin/base/barcodes/serializers.py:204 msgid "Sales order line item to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:184 +#: plugin/base/barcodes/serializers.py:211 msgid "Sales order shipment to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:190 +#: plugin/base/barcodes/serializers.py:217 msgid "Shipment has already been delivered" msgstr "" -#: plugin/base/barcodes/serializers.py:195 +#: plugin/base/barcodes/serializers.py:222 msgid "Quantity to allocate" msgstr "" @@ -8679,6 +8915,42 @@ msgstr "" msgid "No items provided to print" msgstr "" +#: plugin/base/ui/serializers.py:30 +msgid "Plugin Name" +msgstr "" + +#: plugin/base/ui/serializers.py:34 +msgid "Feature Type" +msgstr "" + +#: plugin/base/ui/serializers.py:39 +msgid "Feature Label" +msgstr "" + +#: plugin/base/ui/serializers.py:44 +msgid "Feature Title" +msgstr "" + +#: plugin/base/ui/serializers.py:49 +msgid "Feature Description" +msgstr "" + +#: plugin/base/ui/serializers.py:54 +msgid "Feature Icon" +msgstr "" + +#: plugin/base/ui/serializers.py:58 +msgid "Feature Options" +msgstr "" + +#: plugin/base/ui/serializers.py:61 +msgid "Feature Context" +msgstr "" + +#: plugin/base/ui/serializers.py:64 +msgid "Feature Source (javascript)" +msgstr "" + #: plugin/builtin/barcodes/inventree_barcode.py:27 msgid "InvenTree Barcodes" msgstr "" @@ -8756,7 +9028,7 @@ msgstr "" msgid "URL that is used to send messages to a slack channel" msgstr "" -#: plugin/builtin/integration/core_notifications.py:164 +#: plugin/builtin/integration/core_notifications.py:166 msgid "Open link" msgstr "" @@ -8794,11 +9066,11 @@ msgstr "" msgid "Provides support for printing using a machine" msgstr "" -#: plugin/builtin/labels/inventree_machine.py:149 +#: plugin/builtin/labels/inventree_machine.py:151 msgid "last used" msgstr "" -#: plugin/builtin/labels/inventree_machine.py:166 +#: plugin/builtin/labels/inventree_machine.py:168 msgid "Options" msgstr "" @@ -8822,7 +9094,7 @@ msgstr "" msgid "Print a border around each label" msgstr "" -#: plugin/builtin/labels/label_sheet.py:47 report/models.py:307 +#: plugin/builtin/labels/label_sheet.py:47 report/models.py:315 msgid "Landscape" msgstr "" @@ -8894,19 +9166,19 @@ msgstr "" msgid "The Supplier which acts as 'TME'" msgstr "" -#: plugin/installer.py:194 plugin/installer.py:282 +#: plugin/installer.py:199 plugin/installer.py:282 msgid "Only staff users can administer plugins" msgstr "" -#: plugin/installer.py:197 +#: plugin/installer.py:202 msgid "Plugin installation is disabled" msgstr "" -#: plugin/installer.py:248 +#: plugin/installer.py:246 msgid "Installed plugin successfully" msgstr "" -#: plugin/installer.py:254 +#: plugin/installer.py:251 #, python-brace-format msgid "Installed plugin into {path}" msgstr "" @@ -8943,10 +9215,6 @@ msgstr "" msgid "Plugin Configurations" msgstr "" -#: plugin/models.py:43 users/models.py:100 -msgid "Key" -msgstr "" - #: plugin/models.py:44 msgid "Key of plugin" msgstr "" @@ -8955,7 +9223,7 @@ msgstr "" msgid "PluginName of the plugin" msgstr "" -#: plugin/models.py:59 plugin/serializers.py:90 +#: plugin/models.py:59 plugin/serializers.py:115 msgid "Package Name" msgstr "" @@ -8984,17 +9252,17 @@ msgstr "" msgid "Package Plugin" msgstr "" -#: plugin/models.py:220 report/models.py:474 +#: plugin/models.py:259 report/models.py:482 #: templates/InvenTree/settings/plugin_settings.html:9 #: templates/js/translated/plugin.js:51 msgid "Plugin" msgstr "" -#: plugin/models.py:267 +#: plugin/models.py:306 msgid "Method" msgstr "" -#: plugin/plugin.py:270 +#: plugin/plugin.py:275 msgid "No author found" msgstr "" @@ -9053,81 +9321,157 @@ msgstr "" msgid "InvenTree Contributors" msgstr "" -#: plugin/serializers.py:81 -msgid "Source URL" +#: plugin/samples/integration/user_interface_sample.py:27 +msgid "Enable Part Panels" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:28 +msgid "Enable custom panels for Part views" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:33 +msgid "Enable Purchase Order Panels" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:34 +msgid "Enable custom panels for Purchase Order views" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:39 +msgid "Enable Broken Panels" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:40 +msgid "Enable broken panels for testing" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:45 +msgid "Enable Dynamic Panel" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:46 +msgid "Enable dynamic panels for testing" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:98 +msgid "Part Panel" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:131 +msgid "Broken Dashboard Item" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:133 +msgid "This is a broken dashboard item - it will not render!" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:139 +msgid "Sample Dashboard Item" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:141 +msgid "This is a sample dashboard item. It renders a simple string of HTML content." +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:147 +msgid "Context Dashboard Item" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:161 +msgid "Admin Dashboard Item" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:162 +msgid "This is an admin-only dashboard item." +msgstr "" + +#: plugin/serializers.py:82 +msgid "Source File" msgstr "" #: plugin/serializers.py:83 +msgid "Path to the source file for admin integration" +msgstr "" + +#: plugin/serializers.py:90 +msgid "Optional context data for the admin integration" +msgstr "" + +#: plugin/serializers.py:106 +msgid "Source URL" +msgstr "" + +#: plugin/serializers.py:108 msgid "Source for the package - this can be a custom registry or a VCS path" msgstr "" -#: plugin/serializers.py:92 +#: plugin/serializers.py:117 msgid "Name for the Plugin Package - can also contain a version indicator" msgstr "" -#: plugin/serializers.py:99 +#: plugin/serializers.py:124 #: templates/InvenTree/settings/plugin_settings.html:42 #: templates/js/translated/plugin.js:86 msgid "Version" msgstr "" -#: plugin/serializers.py:101 +#: plugin/serializers.py:126 msgid "Version specifier for the plugin. Leave blank for latest version." msgstr "" -#: plugin/serializers.py:106 +#: plugin/serializers.py:131 msgid "Confirm plugin installation" msgstr "" -#: plugin/serializers.py:108 +#: plugin/serializers.py:133 msgid "This will install this plugin now into the current instance. The instance will go into maintenance." msgstr "" -#: plugin/serializers.py:121 +#: plugin/serializers.py:146 msgid "Installation not confirmed" msgstr "" -#: plugin/serializers.py:123 +#: plugin/serializers.py:148 msgid "Either packagename of URL must be provided" msgstr "" -#: plugin/serializers.py:161 +#: plugin/serializers.py:184 msgid "Full reload" msgstr "" -#: plugin/serializers.py:162 +#: plugin/serializers.py:185 msgid "Perform a full reload of the plugin registry" msgstr "" -#: plugin/serializers.py:168 +#: plugin/serializers.py:191 msgid "Force reload" msgstr "" -#: plugin/serializers.py:170 +#: plugin/serializers.py:193 msgid "Force a reload of the plugin registry, even if it is already loaded" msgstr "" -#: plugin/serializers.py:177 +#: plugin/serializers.py:200 msgid "Collect plugins" msgstr "" -#: plugin/serializers.py:178 +#: plugin/serializers.py:201 msgid "Collect plugins and add them to the registry" msgstr "" -#: plugin/serializers.py:205 +#: plugin/serializers.py:228 msgid "Activate Plugin" msgstr "" -#: plugin/serializers.py:206 +#: plugin/serializers.py:229 msgid "Activate this plugin" msgstr "" -#: plugin/serializers.py:226 +#: plugin/serializers.py:249 msgid "Delete configuration" msgstr "" -#: plugin/serializers.py:227 +#: plugin/serializers.py:250 msgid "Delete the plugin configuration from the database" msgstr "" @@ -9135,11 +9479,11 @@ msgstr "" msgid "No valid objects provided to template" msgstr "" -#: report/api.py:103 report/models.py:438 report/serializers.py:98 -#: report/serializers.py:148 templates/js/translated/purchase_order.js:1817 +#: report/api.py:103 report/models.py:446 report/serializers.py:99 +#: report/serializers.py:149 templates/js/translated/purchase_order.js:1801 #: templates/js/translated/return_order.js:353 -#: templates/js/translated/sales_order.js:887 -#: templates/js/translated/sales_order.js:1047 +#: templates/js/translated/sales_order.js:846 +#: templates/js/translated/sales_order.js:1020 msgid "Items" msgstr "" @@ -9167,7 +9511,11 @@ msgstr "" msgid "Error printing label" msgstr "" -#: report/api.py:375 report/api.py:411 +#: report/api.py:358 +msgid "Report saved at time of printing" +msgstr "" + +#: report/api.py:384 report/api.py:420 #, python-brace-format msgid "Template file '{template}' is missing or does not exist" msgstr "" @@ -9204,135 +9552,143 @@ msgstr "" msgid "Revision number (auto-increments)" msgstr "" -#: report/models.py:202 +#: report/models.py:168 +msgid "Attach to Model on Print" +msgstr "" + +#: report/models.py:170 +msgid "Save report output as an attachment against linked model instance when printing" +msgstr "" + +#: report/models.py:210 msgid "Filename Pattern" msgstr "" -#: report/models.py:203 +#: report/models.py:211 msgid "Pattern for generating filenames" msgstr "" -#: report/models.py:208 +#: report/models.py:216 msgid "Template is enabled" msgstr "" -#: report/models.py:214 +#: report/models.py:222 msgid "Target model type for template" msgstr "" -#: report/models.py:234 +#: report/models.py:242 msgid "Filters" msgstr "" -#: report/models.py:235 +#: report/models.py:243 msgid "Template query filters (comma-separated list of key=value pairs)" msgstr "" -#: report/models.py:294 report/models.py:361 +#: report/models.py:302 report/models.py:369 msgid "Template file" msgstr "" -#: report/models.py:302 +#: report/models.py:310 msgid "Page size for PDF reports" msgstr "" -#: report/models.py:308 +#: report/models.py:316 msgid "Render report in landscape orientation" msgstr "" -#: report/models.py:367 +#: report/models.py:375 msgid "Width [mm]" msgstr "" -#: report/models.py:368 +#: report/models.py:376 msgid "Label width, specified in mm" msgstr "" -#: report/models.py:374 +#: report/models.py:382 msgid "Height [mm]" msgstr "" -#: report/models.py:375 +#: report/models.py:383 msgid "Label height, specified in mm" msgstr "" -#: report/models.py:438 +#: report/models.py:446 msgid "Number of items to process" msgstr "" -#: report/models.py:444 +#: report/models.py:452 msgid "Report generation is complete" msgstr "" -#: report/models.py:448 templates/js/translated/build.js:2349 +#: report/models.py:456 templates/js/translated/build.js:2352 msgid "Progress" msgstr "" -#: report/models.py:448 +#: report/models.py:456 msgid "Report generation progress" msgstr "" -#: report/models.py:456 +#: report/models.py:464 msgid "Report Template" msgstr "" -#: report/models.py:463 report/models.py:486 +#: report/models.py:471 report/models.py:494 msgid "Output File" msgstr "" -#: report/models.py:464 report/models.py:487 +#: report/models.py:472 report/models.py:495 msgid "Generated output file" msgstr "" -#: report/models.py:475 +#: report/models.py:483 msgid "Label output plugin" msgstr "" -#: report/models.py:479 +#: report/models.py:487 msgid "Label Template" msgstr "" -#: report/models.py:502 +#: report/models.py:510 msgid "Snippet" msgstr "" -#: report/models.py:503 +#: report/models.py:511 msgid "Report snippet file" msgstr "" -#: report/models.py:510 +#: report/models.py:518 msgid "Snippet file description" msgstr "" -#: report/models.py:528 +#: report/models.py:536 msgid "Asset" msgstr "" -#: report/models.py:529 +#: report/models.py:537 msgid "Report asset file" msgstr "" -#: report/models.py:536 +#: report/models.py:544 msgid "Asset file description" msgstr "" -#: report/serializers.py:91 +#: report/serializers.py:92 msgid "Select report template" msgstr "" -#: report/serializers.py:99 report/serializers.py:149 +#: report/serializers.py:100 report/serializers.py:150 msgid "List of item primary keys to include in the report" msgstr "" -#: report/serializers.py:132 +#: report/serializers.py:133 msgid "Select label template" msgstr "" -#: report/serializers.py:140 +#: report/serializers.py:141 msgid "Printing Plugin" msgstr "" -#: report/serializers.py:141 +#: report/serializers.py:142 msgid "Select plugin to use for label printing" msgstr "" @@ -9365,9 +9721,9 @@ msgstr "" #: report/templates/report/inventree_sales_order_report.html:30 #: templates/js/translated/order.js:341 templates/js/translated/pricing.js:527 #: templates/js/translated/pricing.js:596 -#: templates/js/translated/pricing.js:834 -#: templates/js/translated/purchase_order.js:2185 -#: templates/js/translated/sales_order.js:1873 +#: templates/js/translated/pricing.js:832 +#: templates/js/translated/purchase_order.js:2169 +#: templates/js/translated/sales_order.js:1854 msgid "Unit Price" msgstr "" @@ -9379,13 +9735,18 @@ msgstr "" #: report/templates/report/inventree_purchase_order_report.html:72 #: report/templates/report/inventree_sales_order_report.html:72 -#: templates/js/translated/purchase_order.js:2087 -#: templates/js/translated/sales_order.js:1842 +#: templates/js/translated/purchase_order.js:2071 +#: templates/js/translated/sales_order.js:1823 #: templates/test_statistics_table.html:8 #: templates/test_statistics_table.html:19 msgid "Total" msgstr "" +#: report/templates/report/inventree_sales_order_shipment_report.html:23 +#: stock/templates/stock/stock_sidebar.html:8 +msgid "Allocations" +msgstr "" + #: report/templates/report/inventree_stock_location_report.html:97 msgid "Stock location items" msgstr "" @@ -9403,15 +9764,13 @@ msgstr "" msgid "Test" msgstr "" -#: report/templates/report/inventree_test_report.html:103 stock/models.py:2544 -msgid "Result" -msgstr "" - #: report/templates/report/inventree_test_report.html:129 +#: templates/js/translated/stock.js:1448 msgid "Pass" msgstr "" #: report/templates/report/inventree_test_report.html:131 +#: templates/js/translated/stock.js:1450 msgid "Fail" msgstr "" @@ -9420,17 +9779,18 @@ msgid "No result (required)" msgstr "" #: report/templates/report/inventree_test_report.html:140 +#: templates/js/translated/stock.js:1455 msgid "No result" msgstr "" #: report/templates/report/inventree_test_report.html:153 -#: stock/serializers.py:599 stock/templates/stock/stock_sidebar.html:16 +#: stock/serializers.py:626 stock/templates/stock/stock_sidebar.html:16 msgid "Installed Items" msgstr "" -#: report/templates/report/inventree_test_report.html:167 stock/admin.py:161 +#: report/templates/report/inventree_test_report.html:167 stock/admin.py:162 #: templates/js/translated/stock.js:706 templates/js/translated/stock.js:877 -#: templates/js/translated/stock.js:3194 +#: templates/js/translated/stock.js:3195 msgid "Serial" msgstr "" @@ -9450,67 +9810,67 @@ msgstr "" msgid "company_image tag requires a Company instance" msgstr "" -#: stock/admin.py:51 stock/admin.py:171 +#: stock/admin.py:51 stock/admin.py:172 msgid "Location ID" msgstr "" -#: stock/admin.py:63 stock/templates/stock/location.html:128 -#: stock/templates/stock/location.html:134 +#: stock/admin.py:63 stock/templates/stock/location.html:129 +#: stock/templates/stock/location.html:135 msgid "Location Path" msgstr "" -#: stock/admin.py:148 +#: stock/admin.py:149 msgid "Stock Item ID" msgstr "" -#: stock/admin.py:167 +#: stock/admin.py:168 msgid "Status Code" msgstr "" -#: stock/admin.py:179 +#: stock/admin.py:180 msgid "Supplier Part ID" msgstr "" -#: stock/admin.py:184 +#: stock/admin.py:185 msgid "Supplier Part SKU" msgstr "" -#: stock/admin.py:189 +#: stock/admin.py:190 msgid "Supplier ID" msgstr "" -#: stock/admin.py:200 +#: stock/admin.py:201 msgid "Customer ID" msgstr "" -#: stock/admin.py:205 stock/models.py:825 -#: stock/templates/stock/item_base.html:354 +#: stock/admin.py:206 stock/models.py:902 +#: stock/templates/stock/item_base.html:351 msgid "Installed In" msgstr "" -#: stock/admin.py:210 +#: stock/admin.py:211 msgid "Build ID" msgstr "" -#: stock/admin.py:220 +#: stock/admin.py:221 msgid "Sales Order ID" msgstr "" -#: stock/admin.py:225 +#: stock/admin.py:226 msgid "Purchase Order ID" msgstr "" -#: stock/admin.py:240 +#: stock/admin.py:241 msgid "Review Needed" msgstr "" -#: stock/admin.py:245 +#: stock/admin.py:246 msgid "Delete on Deplete" msgstr "" -#: stock/admin.py:260 stock/models.py:919 -#: stock/templates/stock/item_base.html:433 -#: templates/js/translated/stock.js:2315 users/models.py:124 +#: stock/admin.py:261 stock/models.py:996 +#: stock/templates/stock/item_base.html:430 +#: templates/js/translated/stock.js:2316 users/models.py:124 msgid "Expiry Date" msgstr "" @@ -9526,11 +9886,11 @@ msgstr "" msgid "Include sub-locations in filtered results" msgstr "" -#: stock/api.py:367 stock/serializers.py:1186 +#: stock/api.py:366 stock/serializers.py:1217 msgid "Parent Location" msgstr "" -#: stock/api.py:368 +#: stock/api.py:367 msgid "Filter by parent location" msgstr "" @@ -9550,8 +9910,8 @@ msgstr "" msgid "Expiry date after" msgstr "" -#: stock/api.py:840 stock/serializers.py:604 -#: stock/templates/stock/item_base.html:439 +#: stock/api.py:840 stock/serializers.py:631 +#: stock/templates/stock/item_base.html:436 #: templates/js/translated/table_filters.js:448 msgid "Stale" msgstr "" @@ -9560,594 +9920,598 @@ msgstr "" msgid "Quantity is required" msgstr "" -#: stock/api.py:933 +#: stock/api.py:932 msgid "Valid part must be supplied" msgstr "" -#: stock/api.py:964 +#: stock/api.py:959 msgid "The given supplier part does not exist" msgstr "" -#: stock/api.py:974 +#: stock/api.py:969 msgid "The supplier part has a pack size defined, but flag use_pack_size not set" msgstr "" -#: stock/api.py:1005 +#: stock/api.py:996 msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "" -#: stock/models.py:64 +#: stock/models.py:70 msgid "Stock Location type" msgstr "" -#: stock/models.py:65 +#: stock/models.py:71 msgid "Stock Location types" msgstr "" -#: stock/models.py:91 +#: stock/models.py:97 msgid "Default icon for all locations that have no icon set (optional)" msgstr "" -#: stock/models.py:131 stock/models.py:807 -#: stock/templates/stock/location.html:17 +#: stock/models.py:137 stock/models.py:884 +#: stock/templates/stock/location.html:18 #: stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "" -#: stock/models.py:132 stock/templates/stock/location.html:183 +#: stock/models.py:138 stock/templates/stock/location.html:184 #: templates/InvenTree/search.html:166 templates/js/translated/search.js:178 #: users/models.py:205 msgid "Stock Locations" msgstr "" -#: stock/models.py:180 stock/models.py:968 -#: stock/templates/stock/item_base.html:247 +#: stock/models.py:186 stock/models.py:1045 +#: stock/templates/stock/item_base.html:244 msgid "Owner" msgstr "" -#: stock/models.py:181 stock/models.py:969 +#: stock/models.py:187 stock/models.py:1046 msgid "Select Owner" msgstr "" -#: stock/models.py:189 +#: stock/models.py:195 msgid "Stock items may not be directly located into a structural stock locations, but may be located to child locations." msgstr "" -#: stock/models.py:196 templates/js/translated/stock.js:2865 +#: stock/models.py:202 templates/js/translated/stock.js:2866 #: templates/js/translated/table_filters.js:250 msgid "External" msgstr "" -#: stock/models.py:197 +#: stock/models.py:203 msgid "This is an external stock location" msgstr "" -#: stock/models.py:203 templates/js/translated/stock.js:2874 +#: stock/models.py:209 templates/js/translated/stock.js:2875 #: templates/js/translated/table_filters.js:253 msgid "Location type" msgstr "" -#: stock/models.py:207 +#: stock/models.py:213 msgid "Stock location type of this location" msgstr "" -#: stock/models.py:279 +#: stock/models.py:285 msgid "You cannot make this stock location structural because some stock items are already located into it!" msgstr "" -#: stock/models.py:664 +#: stock/models.py:492 +msgid "Part must be specified" +msgstr "" + +#: stock/models.py:741 msgid "Stock items cannot be located into structural stock locations!" msgstr "" -#: stock/models.py:691 stock/serializers.py:480 +#: stock/models.py:768 stock/serializers.py:492 msgid "Stock item cannot be created for virtual parts" msgstr "" -#: stock/models.py:708 +#: stock/models.py:785 #, python-brace-format msgid "Part type ('{self.supplier_part.part}') must be {self.part}" msgstr "" -#: stock/models.py:718 stock/models.py:731 +#: stock/models.py:795 stock/models.py:808 msgid "Quantity must be 1 for item with a serial number" msgstr "" -#: stock/models.py:721 +#: stock/models.py:798 msgid "Serial number cannot be set if quantity greater than 1" msgstr "" -#: stock/models.py:743 +#: stock/models.py:820 msgid "Item cannot belong to itself" msgstr "" -#: stock/models.py:748 +#: stock/models.py:825 msgid "Item must have a build reference if is_building=True" msgstr "" -#: stock/models.py:761 +#: stock/models.py:838 msgid "Build reference does not point to the same part object" msgstr "" -#: stock/models.py:777 +#: stock/models.py:854 msgid "Parent Stock Item" msgstr "" -#: stock/models.py:789 +#: stock/models.py:866 msgid "Base part" msgstr "" -#: stock/models.py:799 +#: stock/models.py:876 msgid "Select a matching supplier part for this stock item" msgstr "" -#: stock/models.py:811 +#: stock/models.py:888 msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:819 stock/serializers.py:1580 +#: stock/models.py:896 stock/serializers.py:1611 msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:830 +#: stock/models.py:907 msgid "Is this item installed in another item?" msgstr "" -#: stock/models.py:849 +#: stock/models.py:926 msgid "Serial number for this item" msgstr "" -#: stock/models.py:863 stock/serializers.py:1563 +#: stock/models.py:940 stock/serializers.py:1594 msgid "Batch code for this stock item" msgstr "" -#: stock/models.py:868 +#: stock/models.py:945 msgid "Stock Quantity" msgstr "" -#: stock/models.py:878 +#: stock/models.py:955 msgid "Source Build" msgstr "" -#: stock/models.py:881 +#: stock/models.py:958 msgid "Build for this stock item" msgstr "" -#: stock/models.py:888 stock/templates/stock/item_base.html:363 +#: stock/models.py:965 stock/templates/stock/item_base.html:360 msgid "Consumed By" msgstr "" -#: stock/models.py:891 +#: stock/models.py:968 msgid "Build order which consumed this stock item" msgstr "" -#: stock/models.py:900 +#: stock/models.py:977 msgid "Source Purchase Order" msgstr "" -#: stock/models.py:904 +#: stock/models.py:981 msgid "Purchase order for this stock item" msgstr "" -#: stock/models.py:910 +#: stock/models.py:987 msgid "Destination Sales Order" msgstr "" -#: stock/models.py:921 +#: stock/models.py:998 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "" -#: stock/models.py:939 +#: stock/models.py:1016 msgid "Delete on deplete" msgstr "" -#: stock/models.py:940 +#: stock/models.py:1017 msgid "Delete this Stock Item when stock is depleted" msgstr "" -#: stock/models.py:960 +#: stock/models.py:1037 msgid "Single unit purchase price at time of purchase" msgstr "" -#: stock/models.py:991 +#: stock/models.py:1068 msgid "Converted to part" msgstr "" -#: stock/models.py:1511 +#: stock/models.py:1600 msgid "Part is not set as trackable" msgstr "" -#: stock/models.py:1517 +#: stock/models.py:1606 msgid "Quantity must be integer" msgstr "" -#: stock/models.py:1525 +#: stock/models.py:1614 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({self.quantity})" msgstr "" -#: stock/models.py:1531 -msgid "Serial numbers must be a list of integers" +#: stock/models.py:1620 +msgid "Serial numbers must be provided as a list" msgstr "" -#: stock/models.py:1536 +#: stock/models.py:1625 msgid "Quantity does not match serial numbers" msgstr "" -#: stock/models.py:1544 stock/serializers.py:726 -msgid "Serial numbers already exist" -msgstr "" - -#: stock/models.py:1641 +#: stock/models.py:1747 stock/models.py:2563 msgid "Test template does not exist" msgstr "" -#: stock/models.py:1659 +#: stock/models.py:1765 msgid "Stock item has been assigned to a sales order" msgstr "" -#: stock/models.py:1663 +#: stock/models.py:1769 msgid "Stock item is installed in another item" msgstr "" -#: stock/models.py:1666 +#: stock/models.py:1772 msgid "Stock item contains other items" msgstr "" -#: stock/models.py:1669 +#: stock/models.py:1775 msgid "Stock item has been assigned to a customer" msgstr "" -#: stock/models.py:1672 +#: stock/models.py:1778 msgid "Stock item is currently in production" msgstr "" -#: stock/models.py:1675 +#: stock/models.py:1781 msgid "Serialized stock cannot be merged" msgstr "" -#: stock/models.py:1682 stock/serializers.py:1469 +#: stock/models.py:1788 stock/serializers.py:1500 msgid "Duplicate stock items" msgstr "" -#: stock/models.py:1686 +#: stock/models.py:1792 msgid "Stock items must refer to the same part" msgstr "" -#: stock/models.py:1694 +#: stock/models.py:1800 msgid "Stock items must refer to the same supplier part" msgstr "" -#: stock/models.py:1699 +#: stock/models.py:1805 msgid "Stock status codes must match" msgstr "" -#: stock/models.py:1960 +#: stock/models.py:2066 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:2343 +#: stock/models.py:2462 msgid "Stock Item Tracking" msgstr "" -#: stock/models.py:2376 +#: stock/models.py:2495 msgid "Entry notes" msgstr "" -#: stock/models.py:2416 +#: stock/models.py:2535 msgid "Stock Item Test Result" msgstr "" -#: stock/models.py:2449 +#: stock/models.py:2566 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:2454 +#: stock/models.py:2570 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:2459 +#: stock/models.py:2575 msgid "Invalid value for this test" msgstr "" -#: stock/models.py:2544 +#: stock/models.py:2660 msgid "Test result" msgstr "" -#: stock/models.py:2551 +#: stock/models.py:2667 msgid "Test output value" msgstr "" -#: stock/models.py:2559 +#: stock/models.py:2675 stock/serializers.py:245 msgid "Test result attachment" msgstr "" -#: stock/models.py:2563 +#: stock/models.py:2679 msgid "Test notes" msgstr "" -#: stock/models.py:2571 templates/js/translated/stock.js:1633 +#: stock/models.py:2687 templates/js/translated/stock.js:1633 msgid "Test station" msgstr "" -#: stock/models.py:2572 +#: stock/models.py:2688 msgid "The identifier of the test station where the test was performed" msgstr "" -#: stock/models.py:2578 +#: stock/models.py:2694 msgid "Started" msgstr "" -#: stock/models.py:2579 +#: stock/models.py:2695 msgid "The timestamp of the test start" msgstr "" -#: stock/models.py:2585 +#: stock/models.py:2701 msgid "Finished" msgstr "" -#: stock/models.py:2586 +#: stock/models.py:2702 msgid "The timestamp of the test finish" msgstr "" -#: stock/serializers.py:76 +#: stock/serializers.py:77 msgid "Generated batch code" msgstr "" -#: stock/serializers.py:85 +#: stock/serializers.py:86 msgid "Select build order" msgstr "" -#: stock/serializers.py:94 +#: stock/serializers.py:95 msgid "Select stock item to generate batch code for" msgstr "" -#: stock/serializers.py:103 +#: stock/serializers.py:104 msgid "Select location to generate batch code for" msgstr "" -#: stock/serializers.py:112 +#: stock/serializers.py:113 msgid "Select part to generate batch code for" msgstr "" -#: stock/serializers.py:121 +#: stock/serializers.py:122 msgid "Select purchase order" msgstr "" -#: stock/serializers.py:128 +#: stock/serializers.py:129 msgid "Enter quantity for batch code" msgstr "" -#: stock/serializers.py:151 +#: stock/serializers.py:152 msgid "Generated serial number" msgstr "" -#: stock/serializers.py:160 +#: stock/serializers.py:161 msgid "Select part to generate serial number for" msgstr "" -#: stock/serializers.py:168 +#: stock/serializers.py:169 msgid "Quantity of serial numbers to generate" msgstr "" -#: stock/serializers.py:233 +#: stock/serializers.py:234 msgid "Test template for this result" msgstr "" -#: stock/serializers.py:254 +#: stock/serializers.py:258 msgid "Template ID or test name must be provided" msgstr "" -#: stock/serializers.py:286 +#: stock/serializers.py:290 msgid "The test finished time cannot be earlier than the test started time" msgstr "" -#: stock/serializers.py:323 +#: stock/serializers.py:327 msgid "Serial number is too large" msgstr "" -#: stock/serializers.py:452 stock/templates/stock/item_base.html:193 +#: stock/serializers.py:462 stock/templates/stock/item_base.html:190 msgid "Parent Item" msgstr "" -#: stock/serializers.py:453 +#: stock/serializers.py:463 msgid "Parent stock item" msgstr "" -#: stock/serializers.py:472 +#: stock/serializers.py:484 msgid "Use pack size when adding: the quantity defined is the number of packs" msgstr "" -#: stock/serializers.py:596 stock/templates/stock/item_base.html:437 +#: stock/serializers.py:623 stock/templates/stock/item_base.html:434 #: templates/js/translated/table_filters.js:442 users/models.py:174 msgid "Expired" msgstr "" -#: stock/serializers.py:602 stock/templates/stock/stock_sidebar.html:20 +#: stock/serializers.py:629 stock/templates/stock/stock_sidebar.html:20 msgid "Child Items" msgstr "" -#: stock/serializers.py:606 +#: stock/serializers.py:633 msgid "Tracking Items" msgstr "" -#: stock/serializers.py:612 +#: stock/serializers.py:639 msgid "Purchase price of this stock item, per unit or pack" msgstr "" -#: stock/serializers.py:631 +#: stock/serializers.py:658 msgid "Minimum Pricing" msgstr "" -#: stock/serializers.py:637 +#: stock/serializers.py:664 msgid "Maximum Pricing" msgstr "" -#: stock/serializers.py:661 +#: stock/serializers.py:688 msgid "Enter number of stock items to serialize" msgstr "" -#: stock/serializers.py:674 +#: stock/serializers.py:701 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({q})" msgstr "" -#: stock/serializers.py:681 +#: stock/serializers.py:708 msgid "Enter serial numbers for new items" msgstr "" -#: stock/serializers.py:692 stock/serializers.py:1426 stock/serializers.py:1682 +#: stock/serializers.py:719 stock/serializers.py:1457 stock/serializers.py:1713 msgid "Destination stock location" msgstr "" -#: stock/serializers.py:699 +#: stock/serializers.py:726 msgid "Optional note field" msgstr "" -#: stock/serializers.py:709 +#: stock/serializers.py:736 msgid "Serial numbers cannot be assigned to this part" msgstr "" -#: stock/serializers.py:764 +#: stock/serializers.py:756 +msgid "Serial numbers already exist" +msgstr "" + +#: stock/serializers.py:795 msgid "Select stock item to install" msgstr "" -#: stock/serializers.py:771 +#: stock/serializers.py:802 msgid "Quantity to Install" msgstr "" -#: stock/serializers.py:772 +#: stock/serializers.py:803 msgid "Enter the quantity of items to install" msgstr "" -#: stock/serializers.py:777 stock/serializers.py:857 stock/serializers.py:983 -#: stock/serializers.py:1033 +#: stock/serializers.py:808 stock/serializers.py:888 stock/serializers.py:1014 +#: stock/serializers.py:1064 msgid "Add transaction note (optional)" msgstr "" -#: stock/serializers.py:785 +#: stock/serializers.py:816 msgid "Quantity to install must be at least 1" msgstr "" -#: stock/serializers.py:793 +#: stock/serializers.py:824 msgid "Stock item is unavailable" msgstr "" -#: stock/serializers.py:804 +#: stock/serializers.py:835 msgid "Selected part is not in the Bill of Materials" msgstr "" -#: stock/serializers.py:817 +#: stock/serializers.py:848 msgid "Quantity to install must not exceed available quantity" msgstr "" -#: stock/serializers.py:852 +#: stock/serializers.py:883 msgid "Destination location for uninstalled item" msgstr "" -#: stock/serializers.py:903 +#: stock/serializers.py:934 msgid "Unsupported statistic type: " msgstr "" -#: stock/serializers.py:917 +#: stock/serializers.py:948 msgid "Select part to convert stock item into" msgstr "" -#: stock/serializers.py:930 +#: stock/serializers.py:961 msgid "Selected part is not a valid option for conversion" msgstr "" -#: stock/serializers.py:947 +#: stock/serializers.py:978 msgid "Cannot convert stock item with assigned SupplierPart" msgstr "" -#: stock/serializers.py:978 +#: stock/serializers.py:1009 msgid "Destination location for returned item" msgstr "" -#: stock/serializers.py:1015 +#: stock/serializers.py:1046 msgid "Select stock items to change status" msgstr "" -#: stock/serializers.py:1021 +#: stock/serializers.py:1052 msgid "No stock items selected" msgstr "" -#: stock/serializers.py:1117 stock/serializers.py:1194 -#: stock/templates/stock/location.html:162 -#: stock/templates/stock/location.html:219 +#: stock/serializers.py:1148 stock/serializers.py:1225 +#: stock/templates/stock/location.html:163 +#: stock/templates/stock/location.html:220 #: stock/templates/stock/location_sidebar.html:5 msgid "Sublocations" msgstr "" -#: stock/serializers.py:1187 templates/js/translated/stock.js:160 +#: stock/serializers.py:1218 templates/js/translated/stock.js:160 msgid "Parent stock location" msgstr "" -#: stock/serializers.py:1298 +#: stock/serializers.py:1329 msgid "Part must be salable" msgstr "" -#: stock/serializers.py:1302 +#: stock/serializers.py:1333 msgid "Item is allocated to a sales order" msgstr "" -#: stock/serializers.py:1306 +#: stock/serializers.py:1337 msgid "Item is allocated to a build order" msgstr "" -#: stock/serializers.py:1330 +#: stock/serializers.py:1361 msgid "Customer to assign stock items" msgstr "" -#: stock/serializers.py:1336 +#: stock/serializers.py:1367 msgid "Selected company is not a customer" msgstr "" -#: stock/serializers.py:1344 +#: stock/serializers.py:1375 msgid "Stock assignment notes" msgstr "" -#: stock/serializers.py:1354 stock/serializers.py:1608 +#: stock/serializers.py:1385 stock/serializers.py:1639 msgid "A list of stock items must be provided" msgstr "" -#: stock/serializers.py:1433 +#: stock/serializers.py:1464 msgid "Stock merging notes" msgstr "" -#: stock/serializers.py:1438 +#: stock/serializers.py:1469 msgid "Allow mismatched suppliers" msgstr "" -#: stock/serializers.py:1439 +#: stock/serializers.py:1470 msgid "Allow stock items with different supplier parts to be merged" msgstr "" -#: stock/serializers.py:1444 +#: stock/serializers.py:1475 msgid "Allow mismatched status" msgstr "" -#: stock/serializers.py:1445 +#: stock/serializers.py:1476 msgid "Allow stock items with different status codes to be merged" msgstr "" -#: stock/serializers.py:1455 +#: stock/serializers.py:1486 msgid "At least two stock items must be provided" msgstr "" -#: stock/serializers.py:1522 +#: stock/serializers.py:1553 msgid "No Change" msgstr "" -#: stock/serializers.py:1551 +#: stock/serializers.py:1582 msgid "StockItem primary key value" msgstr "" -#: stock/serializers.py:1570 +#: stock/serializers.py:1601 msgid "Stock item status code" msgstr "" -#: stock/serializers.py:1598 +#: stock/serializers.py:1629 msgid "Stock transaction notes" msgstr "" @@ -10175,107 +10539,107 @@ msgstr "Odmítnuto" msgid "Quarantined" msgstr "V karanténě" -#: stock/status_codes.py:40 +#: stock/status_codes.py:44 msgid "Legacy stock tracking entry" msgstr "Původní položka sledování zásob" -#: stock/status_codes.py:42 templates/js/translated/stock.js:550 +#: stock/status_codes.py:46 templates/js/translated/stock.js:550 msgid "Stock item created" msgstr "Položka zásob vytvořena" -#: stock/status_codes.py:45 +#: stock/status_codes.py:49 msgid "Edited stock item" msgstr "Položka zásob upravena" -#: stock/status_codes.py:46 +#: stock/status_codes.py:50 msgid "Assigned serial number" msgstr "Přiřazeno výrobní číslo" -#: stock/status_codes.py:49 +#: stock/status_codes.py:53 msgid "Stock counted" msgstr "Stav zásob sečten" -#: stock/status_codes.py:50 +#: stock/status_codes.py:54 msgid "Stock manually added" msgstr "Zásoba přidána ručně" -#: stock/status_codes.py:51 +#: stock/status_codes.py:55 msgid "Stock manually removed" msgstr "Zásoba odebrána ručně" -#: stock/status_codes.py:54 +#: stock/status_codes.py:58 msgid "Location changed" msgstr "Umístění změněno" -#: stock/status_codes.py:55 +#: stock/status_codes.py:59 msgid "Stock updated" msgstr "Stav zásob byl aktualizován" -#: stock/status_codes.py:58 +#: stock/status_codes.py:62 msgid "Installed into assembly" msgstr "Nainstalováno do sestavy" -#: stock/status_codes.py:59 +#: stock/status_codes.py:63 msgid "Removed from assembly" msgstr "Odstraněno ze sestavy" -#: stock/status_codes.py:61 +#: stock/status_codes.py:65 msgid "Installed component item" msgstr "Instalovaná položka komponenty" -#: stock/status_codes.py:62 +#: stock/status_codes.py:66 msgid "Removed component item" msgstr "Odstraněná komponenta" -#: stock/status_codes.py:65 +#: stock/status_codes.py:69 msgid "Split from parent item" msgstr "Rozdělit od nadřazené položky" -#: stock/status_codes.py:66 +#: stock/status_codes.py:70 msgid "Split child item" msgstr "Rozdělit podřazený předmět" -#: stock/status_codes.py:69 templates/js/translated/stock.js:1943 +#: stock/status_codes.py:73 templates/js/translated/stock.js:1944 msgid "Merged stock items" msgstr "Sloučené položky zásob" -#: stock/status_codes.py:72 +#: stock/status_codes.py:76 msgid "Converted to variant" msgstr "Převedeno na variantu" -#: stock/status_codes.py:75 +#: stock/status_codes.py:79 msgid "Build order output created" msgstr "Výstup objednávky byl vytvořen" -#: stock/status_codes.py:76 +#: stock/status_codes.py:80 msgid "Build order output completed" msgstr "Výstup objednávky sestavení dokončen" -#: stock/status_codes.py:77 +#: stock/status_codes.py:81 msgid "Build order output rejected" msgstr "Výstup objednávky sestavení byl odmítnut" -#: stock/status_codes.py:78 templates/js/translated/stock.js:1849 +#: stock/status_codes.py:82 templates/js/translated/stock.js:1849 msgid "Consumed by build order" msgstr "Spotřebováno podle objednávky" -#: stock/status_codes.py:81 +#: stock/status_codes.py:85 msgid "Shipped against Sales Order" msgstr "Odesláno v souladu se zákaznickou objednávkou" -#: stock/status_codes.py:84 +#: stock/status_codes.py:88 msgid "Received against Purchase Order" msgstr "Přijato proti objednávce" -#: stock/status_codes.py:87 +#: stock/status_codes.py:91 msgid "Returned against Return Order" msgstr "Vráceno proti vratce" -#: stock/status_codes.py:90 templates/js/translated/table_filters.js:382 +#: stock/status_codes.py:94 templates/js/translated/table_filters.js:382 msgid "Sent to customer" msgstr "Odesláno zákazníkovi" -#: stock/status_codes.py:91 +#: stock/status_codes.py:95 msgid "Returned from customer" msgstr "Vráceno od zákazníka" @@ -10296,7 +10660,7 @@ msgstr "" msgid "Test Data" msgstr "" -#: stock/templates/stock/item.html:85 stock/templates/stock/item_base.html:65 +#: stock/templates/stock/item.html:85 msgid "Test Report" msgstr "" @@ -10316,7 +10680,7 @@ msgstr "" msgid "Installed Stock Items" msgstr "" -#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3354 +#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3355 msgid "Install Stock Item" msgstr "" @@ -10328,208 +10692,212 @@ msgstr "" msgid "Add Test Result" msgstr "" -#: stock/templates/stock/item_base.html:33 +#: stock/templates/stock/item_base.html:34 msgid "Locate stock item" msgstr "" -#: stock/templates/stock/item_base.html:51 +#: stock/templates/stock/item_base.html:52 msgid "Scan to Location" msgstr "" #: stock/templates/stock/item_base.html:59 -#: stock/templates/stock/location.html:67 +#: stock/templates/stock/location.html:68 #: templates/js/translated/filters.js:434 msgid "Printing actions" msgstr "" -#: stock/templates/stock/item_base.html:75 +#: stock/templates/stock/item_base.html:64 templates/js/translated/report.js:49 +msgid "Print Report" +msgstr "" + +#: stock/templates/stock/item_base.html:72 msgid "Stock adjustment actions" msgstr "" -#: stock/templates/stock/item_base.html:79 -#: stock/templates/stock/location.html:87 templates/js/translated/stock.js:1909 +#: stock/templates/stock/item_base.html:76 +#: stock/templates/stock/location.html:88 templates/js/translated/stock.js:1909 msgid "Count stock" msgstr "" -#: stock/templates/stock/item_base.html:81 +#: stock/templates/stock/item_base.html:78 #: templates/js/translated/stock.js:1891 msgid "Add stock" msgstr "" -#: stock/templates/stock/item_base.html:82 +#: stock/templates/stock/item_base.html:79 #: templates/js/translated/stock.js:1900 msgid "Remove stock" msgstr "" -#: stock/templates/stock/item_base.html:85 +#: stock/templates/stock/item_base.html:82 msgid "Serialize stock" msgstr "" -#: stock/templates/stock/item_base.html:88 -#: stock/templates/stock/location.html:93 templates/js/translated/stock.js:1918 +#: stock/templates/stock/item_base.html:85 +#: stock/templates/stock/location.html:94 templates/js/translated/stock.js:1918 msgid "Transfer stock" msgstr "" -#: stock/templates/stock/item_base.html:91 -#: templates/js/translated/stock.js:1972 +#: stock/templates/stock/item_base.html:88 +#: templates/js/translated/stock.js:1973 msgid "Assign to customer" msgstr "" -#: stock/templates/stock/item_base.html:94 +#: stock/templates/stock/item_base.html:91 msgid "Return to stock" msgstr "" -#: stock/templates/stock/item_base.html:97 +#: stock/templates/stock/item_base.html:94 msgid "Uninstall stock item" msgstr "" -#: stock/templates/stock/item_base.html:97 +#: stock/templates/stock/item_base.html:94 msgid "Uninstall" msgstr "" -#: stock/templates/stock/item_base.html:101 +#: stock/templates/stock/item_base.html:98 msgid "Install stock item" msgstr "" -#: stock/templates/stock/item_base.html:101 +#: stock/templates/stock/item_base.html:98 msgid "Install" msgstr "" -#: stock/templates/stock/item_base.html:115 +#: stock/templates/stock/item_base.html:112 msgid "Convert to variant" msgstr "" -#: stock/templates/stock/item_base.html:118 +#: stock/templates/stock/item_base.html:115 msgid "Duplicate stock item" msgstr "" -#: stock/templates/stock/item_base.html:120 +#: stock/templates/stock/item_base.html:117 msgid "Edit stock item" msgstr "" -#: stock/templates/stock/item_base.html:123 +#: stock/templates/stock/item_base.html:120 msgid "Delete stock item" msgstr "" -#: stock/templates/stock/item_base.html:169 templates/InvenTree/search.html:139 -#: templates/js/translated/build.js:2295 templates/navbar.html:38 +#: stock/templates/stock/item_base.html:166 templates/InvenTree/search.html:139 +#: templates/js/translated/build.js:2298 templates/navbar.html:38 msgid "Build" msgstr "Sestavení" -#: stock/templates/stock/item_base.html:211 +#: stock/templates/stock/item_base.html:208 msgid "No manufacturer set" msgstr "" -#: stock/templates/stock/item_base.html:251 +#: stock/templates/stock/item_base.html:248 msgid "You are not in the list of owners of this item. This stock item cannot be edited." msgstr "" -#: stock/templates/stock/item_base.html:252 -#: stock/templates/stock/location.html:146 +#: stock/templates/stock/item_base.html:249 +#: stock/templates/stock/location.html:147 msgid "Read only" msgstr "" -#: stock/templates/stock/item_base.html:265 +#: stock/templates/stock/item_base.html:262 msgid "This stock item is unavailable" msgstr "" -#: stock/templates/stock/item_base.html:271 +#: stock/templates/stock/item_base.html:268 msgid "This stock item is in production and cannot be edited." msgstr "" -#: stock/templates/stock/item_base.html:272 +#: stock/templates/stock/item_base.html:269 msgid "Edit the stock item from the build view." msgstr "" -#: stock/templates/stock/item_base.html:287 +#: stock/templates/stock/item_base.html:284 msgid "This stock item is allocated to Sales Order" msgstr "" -#: stock/templates/stock/item_base.html:295 +#: stock/templates/stock/item_base.html:292 msgid "This stock item is allocated to Build Order" msgstr "" -#: stock/templates/stock/item_base.html:311 +#: stock/templates/stock/item_base.html:308 msgid "This stock item is serialized. It has a unique serial number and the quantity cannot be adjusted" msgstr "" -#: stock/templates/stock/item_base.html:317 +#: stock/templates/stock/item_base.html:314 msgid "previous page" msgstr "" -#: stock/templates/stock/item_base.html:317 +#: stock/templates/stock/item_base.html:314 msgid "Navigate to previous serial number" msgstr "" -#: stock/templates/stock/item_base.html:326 +#: stock/templates/stock/item_base.html:323 msgid "next page" msgstr "" -#: stock/templates/stock/item_base.html:326 +#: stock/templates/stock/item_base.html:323 msgid "Navigate to next serial number" msgstr "" -#: stock/templates/stock/item_base.html:398 -#: templates/js/translated/build.js:2552 +#: stock/templates/stock/item_base.html:395 +#: templates/js/translated/build.js:2559 msgid "No location set" msgstr "" -#: stock/templates/stock/item_base.html:413 +#: stock/templates/stock/item_base.html:410 msgid "Tests" msgstr "" -#: stock/templates/stock/item_base.html:419 +#: stock/templates/stock/item_base.html:416 msgid "This stock item has not passed all required tests" msgstr "" -#: stock/templates/stock/item_base.html:437 +#: stock/templates/stock/item_base.html:434 #, python-format msgid "This StockItem expired on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:439 +#: stock/templates/stock/item_base.html:436 #, python-format msgid "This StockItem expires on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:455 +#: stock/templates/stock/item_base.html:452 msgid "No stocktake performed" msgstr "" -#: stock/templates/stock/item_base.html:504 -#: templates/js/translated/stock.js:2037 +#: stock/templates/stock/item_base.html:501 +#: templates/js/translated/stock.js:2038 msgid "stock item" msgstr "" -#: stock/templates/stock/item_base.html:527 +#: stock/templates/stock/item_base.html:524 msgid "Edit Stock Status" msgstr "" -#: stock/templates/stock/item_base.html:536 +#: stock/templates/stock/item_base.html:533 msgid "Stock Item QR Code" msgstr "" -#: stock/templates/stock/item_base.html:547 +#: stock/templates/stock/item_base.html:544 msgid "Link Barcode to Stock Item" msgstr "" -#: stock/templates/stock/item_base.html:611 +#: stock/templates/stock/item_base.html:608 msgid "Select one of the part variants listed below." msgstr "" -#: stock/templates/stock/item_base.html:614 +#: stock/templates/stock/item_base.html:611 msgid "Warning" msgstr "" -#: stock/templates/stock/item_base.html:615 +#: stock/templates/stock/item_base.html:612 msgid "This action cannot be easily undone" msgstr "" -#: stock/templates/stock/item_base.html:623 +#: stock/templates/stock/item_base.html:620 msgid "Convert Stock Item" msgstr "" -#: stock/templates/stock/item_base.html:656 +#: stock/templates/stock/item_base.html:653 msgid "Return to Stock" msgstr "" @@ -10541,84 +10909,84 @@ msgstr "" msgid "Select quantity to serialize, and unique serial numbers." msgstr "" -#: stock/templates/stock/location.html:35 +#: stock/templates/stock/location.html:36 msgid "Perform stocktake for this stock location" msgstr "" -#: stock/templates/stock/location.html:42 +#: stock/templates/stock/location.html:43 msgid "Locate stock location" msgstr "" -#: stock/templates/stock/location.html:60 +#: stock/templates/stock/location.html:61 msgid "Scan stock items into this location" msgstr "" -#: stock/templates/stock/location.html:60 +#: stock/templates/stock/location.html:61 msgid "Scan In Stock Items" msgstr "" -#: stock/templates/stock/location.html:61 +#: stock/templates/stock/location.html:62 msgid "Scan stock container into this location" msgstr "" -#: stock/templates/stock/location.html:61 +#: stock/templates/stock/location.html:62 msgid "Scan In Container" msgstr "" -#: stock/templates/stock/location.html:72 +#: stock/templates/stock/location.html:73 msgid "Print Location Report" msgstr "" -#: stock/templates/stock/location.html:101 +#: stock/templates/stock/location.html:102 msgid "Location actions" msgstr "" -#: stock/templates/stock/location.html:103 +#: stock/templates/stock/location.html:104 msgid "Edit location" msgstr "" -#: stock/templates/stock/location.html:105 +#: stock/templates/stock/location.html:106 msgid "Delete location" msgstr "" -#: stock/templates/stock/location.html:135 +#: stock/templates/stock/location.html:136 msgid "Top level stock location" msgstr "" -#: stock/templates/stock/location.html:141 +#: stock/templates/stock/location.html:142 msgid "Location Owner" msgstr "" -#: stock/templates/stock/location.html:145 +#: stock/templates/stock/location.html:146 msgid "You are not in the list of owners of this location. This stock location cannot be edited." msgstr "" -#: stock/templates/stock/location.html:173 +#: stock/templates/stock/location.html:174 msgid "Location Type" msgstr "" -#: stock/templates/stock/location.html:223 +#: stock/templates/stock/location.html:224 msgid "Create new stock location" msgstr "" -#: stock/templates/stock/location.html:224 +#: stock/templates/stock/location.html:225 msgid "New Location" msgstr "" -#: stock/templates/stock/location.html:298 -#: templates/js/translated/stock.js:2657 +#: stock/templates/stock/location.html:299 +#: templates/js/translated/stock.js:2658 msgid "stock location" msgstr "" -#: stock/templates/stock/location.html:320 +#: stock/templates/stock/location.html:321 msgid "Scanned stock container into this location" msgstr "" -#: stock/templates/stock/location.html:393 +#: stock/templates/stock/location.html:394 msgid "Stock Location QR Code" msgstr "" -#: stock/templates/stock/location.html:404 +#: stock/templates/stock/location.html:405 msgid "Link Barcode to Stock Location" msgstr "" @@ -10630,10 +10998,6 @@ msgstr "" msgid "Stock Tracking" msgstr "" -#: stock/templates/stock/stock_sidebar.html:8 -msgid "Allocations" -msgstr "" - #: templates/403.html:6 templates/403.html:12 templates/403_csrf.html:7 msgid "Permission Denied" msgstr "" @@ -11107,9 +11471,9 @@ msgid "Rate" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:81 -#: templates/js/translated/forms.js:548 templates/js/translated/helpers.js:108 +#: templates/js/translated/forms.js:548 templates/js/translated/helpers.js:109 #: templates/js/translated/part.js:395 templates/js/translated/pricing.js:629 -#: templates/js/translated/stock.js:252 users/models.py:406 +#: templates/js/translated/stock.js:252 users/models.py:408 msgid "Delete" msgstr "Odstranit" @@ -11130,7 +11494,7 @@ msgid "No project codes found" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:158 -#: templates/js/translated/build.js:2400 +#: templates/js/translated/build.js:2403 msgid "group" msgstr "" @@ -11196,7 +11560,7 @@ msgid "Delete Location Type" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:503 -#: templates/InvenTree/settings/stock.html:38 +#: templates/InvenTree/settings/stock.html:39 msgid "New Location Type" msgstr "" @@ -11253,7 +11617,7 @@ msgstr "" msgid "Stock Settings" msgstr "" -#: templates/InvenTree/settings/stock.html:34 +#: templates/InvenTree/settings/stock.html:35 msgid "Stock Location Types" msgstr "" @@ -11280,7 +11644,7 @@ msgid "Unverified" msgstr "" #: templates/InvenTree/settings/user.html:80 -#: templates/js/translated/company.js:957 +#: templates/js/translated/company.js:958 msgid "Primary" msgstr "" @@ -11532,7 +11896,7 @@ msgid "Submit Bug Report" msgstr "" #: templates/about.html:91 templates/clip.html:4 -#: templates/js/translated/helpers.js:592 +#: templates/js/translated/helpers.js:598 msgid "copy to clipboard" msgstr "" @@ -11738,23 +12102,24 @@ msgstr "" msgid "Barcode Identifier" msgstr "" -#: templates/base.html:103 +#: templates/base.html:102 msgid "Server Restart Required" msgstr "" -#: templates/base.html:106 +#: templates/base.html:105 msgid "A configuration option has been changed which requires a server restart" msgstr "" -#: templates/base.html:106 templates/base.html:116 +#: templates/base.html:105 templates/base.html:115 +#: templates/socialaccount/authentication_error.html:13 msgid "Contact your system administrator for further information" msgstr "" -#: templates/base.html:113 +#: templates/base.html:112 msgid "Pending Database Migrations" msgstr "" -#: templates/base.html:116 +#: templates/base.html:115 msgid "There are pending database migrations which require attention" msgstr "" @@ -11787,7 +12152,7 @@ msgid "The following parts are low on required stock" msgstr "" #: templates/email/build_order_required_stock.html:18 -#: templates/js/translated/bom.js:1674 templates/js/translated/build.js:2747 +#: templates/js/translated/bom.js:1674 templates/js/translated/build.js:2765 msgid "Required Quantity" msgstr "" @@ -11801,7 +12166,7 @@ msgid "Click on the following link to view this part" msgstr "" #: templates/email/low_stock_notification.html:18 -#: templates/js/translated/part.js:3237 +#: templates/js/translated/part.js:3253 msgid "Minimum Quantity" msgstr "" @@ -12039,7 +12404,7 @@ msgstr "" #: templates/js/translated/bom.js:189 templates/js/translated/bom.js:700 #: templates/js/translated/modals.js:75 templates/js/translated/modals.js:629 #: templates/js/translated/modals.js:757 templates/js/translated/modals.js:1065 -#: templates/js/translated/purchase_order.js:797 templates/modals.html:15 +#: templates/js/translated/purchase_order.js:780 templates/modals.html:15 #: templates/modals.html:27 templates/modals.html:39 templates/modals.html:50 msgid "Close" msgstr "" @@ -12156,7 +12521,7 @@ msgstr "" msgid "Substitutes Available" msgstr "" -#: templates/js/translated/bom.js:950 templates/js/translated/build.js:2673 +#: templates/js/translated/bom.js:950 templates/js/translated/build.js:2682 msgid "Variant stock allowed" msgstr "" @@ -12176,30 +12541,30 @@ msgstr "" msgid "No pricing available" msgstr "" -#: templates/js/translated/bom.js:1184 templates/js/translated/build.js:2812 +#: templates/js/translated/bom.js:1184 templates/js/translated/build.js:2830 msgid "External stock" msgstr "" -#: templates/js/translated/bom.js:1188 templates/js/translated/build.js:2786 -#: templates/js/translated/sales_order.js:1946 +#: templates/js/translated/bom.js:1188 templates/js/translated/build.js:2804 +#: templates/js/translated/sales_order.js:1927 msgid "No Stock Available" msgstr "" -#: templates/js/translated/bom.js:1193 templates/js/translated/build.js:2790 +#: templates/js/translated/bom.js:1193 templates/js/translated/build.js:2808 msgid "Includes variant and substitute stock" msgstr "" -#: templates/js/translated/bom.js:1195 templates/js/translated/build.js:2792 +#: templates/js/translated/bom.js:1195 templates/js/translated/build.js:2810 #: templates/js/translated/part.js:1263 -#: templates/js/translated/sales_order.js:1943 +#: templates/js/translated/sales_order.js:1924 msgid "Includes variant stock" msgstr "" -#: templates/js/translated/bom.js:1197 templates/js/translated/build.js:2794 +#: templates/js/translated/bom.js:1197 templates/js/translated/build.js:2812 msgid "Includes substitute stock" msgstr "" -#: templates/js/translated/bom.js:1225 templates/js/translated/build.js:2777 +#: templates/js/translated/bom.js:1225 templates/js/translated/build.js:2795 msgid "Consumable item" msgstr "" @@ -12231,7 +12596,7 @@ msgstr "" msgid "No BOM items found" msgstr "" -#: templates/js/translated/bom.js:1657 templates/js/translated/build.js:2658 +#: templates/js/translated/bom.js:1657 templates/js/translated/build.js:2667 msgid "Required Part" msgstr "" @@ -12243,396 +12608,396 @@ msgstr "" msgid "Edit Build Order" msgstr "" -#: templates/js/translated/build.js:191 +#: templates/js/translated/build.js:194 msgid "Create Build Order" msgstr "" -#: templates/js/translated/build.js:223 +#: templates/js/translated/build.js:226 msgid "Cancel Build Order" msgstr "" -#: templates/js/translated/build.js:232 +#: templates/js/translated/build.js:235 msgid "Are you sure you wish to cancel this build?" msgstr "" -#: templates/js/translated/build.js:238 +#: templates/js/translated/build.js:241 msgid "Stock items have been allocated to this build order" msgstr "" -#: templates/js/translated/build.js:245 +#: templates/js/translated/build.js:248 msgid "There are incomplete outputs remaining for this build order" msgstr "" -#: templates/js/translated/build.js:297 +#: templates/js/translated/build.js:300 msgid "Build order is ready to be completed" msgstr "" -#: templates/js/translated/build.js:305 +#: templates/js/translated/build.js:308 msgid "This build order cannot be completed as there are incomplete outputs" msgstr "" -#: templates/js/translated/build.js:310 +#: templates/js/translated/build.js:313 msgid "Build Order is incomplete" msgstr "" -#: templates/js/translated/build.js:328 +#: templates/js/translated/build.js:331 msgid "Complete Build Order" msgstr "" -#: templates/js/translated/build.js:369 templates/js/translated/stock.js:127 +#: templates/js/translated/build.js:372 templates/js/translated/stock.js:127 #: templates/js/translated/stock.js:301 msgid "Next available serial number" msgstr "" -#: templates/js/translated/build.js:371 templates/js/translated/stock.js:129 +#: templates/js/translated/build.js:374 templates/js/translated/stock.js:129 #: templates/js/translated/stock.js:303 msgid "Latest serial number" msgstr "" -#: templates/js/translated/build.js:380 +#: templates/js/translated/build.js:383 msgid "The Bill of Materials contains trackable parts" msgstr "" -#: templates/js/translated/build.js:381 +#: templates/js/translated/build.js:384 msgid "Build outputs must be generated individually" msgstr "" -#: templates/js/translated/build.js:389 +#: templates/js/translated/build.js:392 msgid "Trackable parts can have serial numbers specified" msgstr "" -#: templates/js/translated/build.js:390 +#: templates/js/translated/build.js:393 msgid "Enter serial numbers to generate multiple single build outputs" msgstr "" -#: templates/js/translated/build.js:397 +#: templates/js/translated/build.js:400 msgid "Create Build Output" msgstr "" -#: templates/js/translated/build.js:428 +#: templates/js/translated/build.js:431 msgid "Allocate stock items to this build output" msgstr "" -#: templates/js/translated/build.js:436 +#: templates/js/translated/build.js:439 msgid "Deallocate stock from build output" msgstr "" -#: templates/js/translated/build.js:445 +#: templates/js/translated/build.js:448 msgid "Complete build output" msgstr "" -#: templates/js/translated/build.js:453 +#: templates/js/translated/build.js:456 msgid "Scrap build output" msgstr "" -#: templates/js/translated/build.js:460 +#: templates/js/translated/build.js:463 msgid "Delete build output" msgstr "" -#: templates/js/translated/build.js:480 +#: templates/js/translated/build.js:483 msgid "Are you sure you wish to deallocate the selected stock items from this build?" msgstr "" -#: templates/js/translated/build.js:498 +#: templates/js/translated/build.js:501 msgid "Deallocate Stock Items" msgstr "" -#: templates/js/translated/build.js:584 templates/js/translated/build.js:711 -#: templates/js/translated/build.js:836 +#: templates/js/translated/build.js:587 templates/js/translated/build.js:714 +#: templates/js/translated/build.js:839 msgid "Select Build Outputs" msgstr "" -#: templates/js/translated/build.js:585 templates/js/translated/build.js:712 -#: templates/js/translated/build.js:837 +#: templates/js/translated/build.js:588 templates/js/translated/build.js:715 +#: templates/js/translated/build.js:840 msgid "At least one build output must be selected" msgstr "" -#: templates/js/translated/build.js:599 +#: templates/js/translated/build.js:602 msgid "Selected build outputs will be marked as complete" msgstr "" -#: templates/js/translated/build.js:603 templates/js/translated/build.js:736 -#: templates/js/translated/build.js:859 +#: templates/js/translated/build.js:606 templates/js/translated/build.js:739 +#: templates/js/translated/build.js:862 msgid "Output" msgstr "" -#: templates/js/translated/build.js:630 +#: templates/js/translated/build.js:633 msgid "Complete Build Outputs" msgstr "" -#: templates/js/translated/build.js:727 +#: templates/js/translated/build.js:730 msgid "Selected build outputs will be marked as scrapped" msgstr "" -#: templates/js/translated/build.js:729 +#: templates/js/translated/build.js:732 msgid "Scrapped output are marked as rejected" msgstr "" -#: templates/js/translated/build.js:730 +#: templates/js/translated/build.js:733 msgid "Allocated stock items will no longer be available" msgstr "" -#: templates/js/translated/build.js:731 +#: templates/js/translated/build.js:734 msgid "The completion status of the build order will not be adjusted" msgstr "" -#: templates/js/translated/build.js:761 +#: templates/js/translated/build.js:764 msgid "Scrap Build Outputs" msgstr "" -#: templates/js/translated/build.js:851 +#: templates/js/translated/build.js:854 msgid "Selected build outputs will be deleted" msgstr "" -#: templates/js/translated/build.js:853 +#: templates/js/translated/build.js:856 msgid "Build output data will be permanently deleted" msgstr "" -#: templates/js/translated/build.js:854 +#: templates/js/translated/build.js:857 msgid "Allocated stock items will be returned to stock" msgstr "" -#: templates/js/translated/build.js:872 +#: templates/js/translated/build.js:875 msgid "Delete Build Outputs" msgstr "" -#: templates/js/translated/build.js:959 +#: templates/js/translated/build.js:962 msgid "Delete allocations" msgstr "" -#: templates/js/translated/build.js:966 +#: templates/js/translated/build.js:969 msgid "Delete Stock Allocations" msgstr "" -#: templates/js/translated/build.js:989 +#: templates/js/translated/build.js:992 msgid "No allocated stock" msgstr "" -#: templates/js/translated/build.js:1045 +#: templates/js/translated/build.js:1048 msgid "Stock item" msgstr "" -#: templates/js/translated/build.js:1070 +#: templates/js/translated/build.js:1073 msgid "Edit build allocation" msgstr "" -#: templates/js/translated/build.js:1071 +#: templates/js/translated/build.js:1074 msgid "Delete build allocation" msgstr "" -#: templates/js/translated/build.js:1089 +#: templates/js/translated/build.js:1092 msgid "Edit Build Allocation" msgstr "" -#: templates/js/translated/build.js:1102 +#: templates/js/translated/build.js:1105 msgid "Delete Build Allocation" msgstr "" -#: templates/js/translated/build.js:1133 +#: templates/js/translated/build.js:1136 msgid "No build order allocations found" msgstr "" -#: templates/js/translated/build.js:1178 +#: templates/js/translated/build.js:1181 msgid "Location not specified" msgstr "" -#: templates/js/translated/build.js:1200 +#: templates/js/translated/build.js:1203 msgid "Complete outputs" msgstr "" -#: templates/js/translated/build.js:1218 +#: templates/js/translated/build.js:1221 msgid "Scrap outputs" msgstr "" -#: templates/js/translated/build.js:1236 +#: templates/js/translated/build.js:1239 msgid "Delete outputs" msgstr "" -#: templates/js/translated/build.js:1289 +#: templates/js/translated/build.js:1292 msgid "build output" msgstr "" -#: templates/js/translated/build.js:1290 +#: templates/js/translated/build.js:1293 msgid "build outputs" msgstr "" -#: templates/js/translated/build.js:1294 +#: templates/js/translated/build.js:1297 msgid "Build output actions" msgstr "" -#: templates/js/translated/build.js:1470 +#: templates/js/translated/build.js:1473 msgid "No active build outputs found" msgstr "" -#: templates/js/translated/build.js:1563 +#: templates/js/translated/build.js:1566 msgid "Allocated Lines" msgstr "" -#: templates/js/translated/build.js:1577 +#: templates/js/translated/build.js:1580 msgid "Required Tests" msgstr "" -#: templates/js/translated/build.js:1749 -#: templates/js/translated/purchase_order.js:611 -#: templates/js/translated/sales_order.js:1207 +#: templates/js/translated/build.js:1752 +#: templates/js/translated/purchase_order.js:594 +#: templates/js/translated/sales_order.js:1173 msgid "Select Parts" msgstr "" -#: templates/js/translated/build.js:1750 -#: templates/js/translated/sales_order.js:1208 +#: templates/js/translated/build.js:1753 +#: templates/js/translated/sales_order.js:1174 msgid "You must select at least one part to allocate" msgstr "" -#: templates/js/translated/build.js:1813 -#: templates/js/translated/sales_order.js:1157 +#: templates/js/translated/build.js:1816 +#: templates/js/translated/sales_order.js:1123 msgid "Specify stock allocation quantity" msgstr "" -#: templates/js/translated/build.js:1890 +#: templates/js/translated/build.js:1893 msgid "All Parts Allocated" msgstr "" -#: templates/js/translated/build.js:1891 +#: templates/js/translated/build.js:1894 msgid "All selected parts have been fully allocated" msgstr "" -#: templates/js/translated/build.js:1905 -#: templates/js/translated/sales_order.js:1222 +#: templates/js/translated/build.js:1908 +#: templates/js/translated/sales_order.js:1188 msgid "Select source location (leave blank to take from all locations)" msgstr "" -#: templates/js/translated/build.js:1933 +#: templates/js/translated/build.js:1936 msgid "Allocate Stock Items to Build Order" msgstr "" -#: templates/js/translated/build.js:1944 -#: templates/js/translated/sales_order.js:1319 +#: templates/js/translated/build.js:1947 +#: templates/js/translated/sales_order.js:1285 msgid "No matching stock locations" msgstr "" -#: templates/js/translated/build.js:2017 -#: templates/js/translated/sales_order.js:1398 +#: templates/js/translated/build.js:2020 +#: templates/js/translated/sales_order.js:1364 msgid "No matching stock items" msgstr "" -#: templates/js/translated/build.js:2114 +#: templates/js/translated/build.js:2117 msgid "Automatic Stock Allocation" msgstr "" -#: templates/js/translated/build.js:2115 +#: templates/js/translated/build.js:2118 msgid "Stock items will be automatically allocated to this build order, according to the provided guidelines" msgstr "" -#: templates/js/translated/build.js:2117 +#: templates/js/translated/build.js:2120 msgid "If a location is specified, stock will only be allocated from that location" msgstr "" -#: templates/js/translated/build.js:2118 +#: templates/js/translated/build.js:2121 msgid "If stock is considered interchangeable, it will be allocated from the first location it is found" msgstr "" -#: templates/js/translated/build.js:2119 +#: templates/js/translated/build.js:2122 msgid "If substitute stock is allowed, it will be used where stock of the primary part cannot be found" msgstr "" -#: templates/js/translated/build.js:2149 +#: templates/js/translated/build.js:2152 msgid "Allocate Stock Items" msgstr "" -#: templates/js/translated/build.js:2254 +#: templates/js/translated/build.js:2257 msgid "No builds matching query" msgstr "" -#: templates/js/translated/build.js:2289 templates/js/translated/build.js:2652 +#: templates/js/translated/build.js:2292 templates/js/translated/build.js:2661 #: templates/js/translated/forms.js:2196 templates/js/translated/forms.js:2212 #: templates/js/translated/part.js:2322 templates/js/translated/part.js:2761 -#: templates/js/translated/stock.js:2068 templates/js/translated/stock.js:2795 +#: templates/js/translated/stock.js:2069 templates/js/translated/stock.js:2796 msgid "Select" msgstr "" -#: templates/js/translated/build.js:2303 +#: templates/js/translated/build.js:2306 msgid "Build order is overdue" msgstr "" -#: templates/js/translated/build.js:2385 templates/js/translated/stock.js:3126 +#: templates/js/translated/build.js:2388 templates/js/translated/stock.js:3127 msgid "No user information" msgstr "" -#: templates/js/translated/build.js:2561 -#: templates/js/translated/sales_order.js:1682 +#: templates/js/translated/build.js:2568 +#: templates/js/translated/sales_order.js:1663 msgid "Edit stock allocation" msgstr "" -#: templates/js/translated/build.js:2562 -#: templates/js/translated/sales_order.js:1683 +#: templates/js/translated/build.js:2569 +#: templates/js/translated/sales_order.js:1664 msgid "Delete stock allocation" msgstr "" -#: templates/js/translated/build.js:2577 +#: templates/js/translated/build.js:2584 msgid "Edit Allocation" msgstr "" -#: templates/js/translated/build.js:2589 +#: templates/js/translated/build.js:2596 msgid "Remove Allocation" msgstr "" -#: templates/js/translated/build.js:2628 +#: templates/js/translated/build.js:2636 msgid "build line" msgstr "" -#: templates/js/translated/build.js:2629 +#: templates/js/translated/build.js:2637 msgid "build lines" msgstr "" -#: templates/js/translated/build.js:2647 +#: templates/js/translated/build.js:2656 msgid "No build lines found" msgstr "" -#: templates/js/translated/build.js:2677 templates/js/translated/part.js:793 +#: templates/js/translated/build.js:2686 templates/js/translated/part.js:793 #: templates/js/translated/part.js:1209 msgid "Trackable part" msgstr "" -#: templates/js/translated/build.js:2720 +#: templates/js/translated/build.js:2729 msgid "Gets Inherited" msgstr "" -#: templates/js/translated/build.js:2730 +#: templates/js/translated/build.js:2748 msgid "Unit Quantity" msgstr "" -#: templates/js/translated/build.js:2782 -#: templates/js/translated/sales_order.js:1951 +#: templates/js/translated/build.js:2800 +#: templates/js/translated/sales_order.js:1932 msgid "Sufficient stock available" msgstr "" -#: templates/js/translated/build.js:2837 +#: templates/js/translated/build.js:2855 msgid "Consumable Item" msgstr "" -#: templates/js/translated/build.js:2844 +#: templates/js/translated/build.js:2862 msgid "Tracked item" msgstr "" -#: templates/js/translated/build.js:2845 +#: templates/js/translated/build.js:2863 msgid "Allocate tracked items against individual build outputs" msgstr "" -#: templates/js/translated/build.js:2853 -#: templates/js/translated/sales_order.js:2052 +#: templates/js/translated/build.js:2871 +#: templates/js/translated/sales_order.js:2033 msgid "Build stock" msgstr "" -#: templates/js/translated/build.js:2858 templates/js/translated/stock.js:1953 +#: templates/js/translated/build.js:2876 templates/js/translated/stock.js:1954 msgid "Order stock" msgstr "" -#: templates/js/translated/build.js:2862 -#: templates/js/translated/sales_order.js:2046 +#: templates/js/translated/build.js:2880 +#: templates/js/translated/sales_order.js:2027 msgid "Allocate stock" msgstr "" -#: templates/js/translated/build.js:2866 +#: templates/js/translated/build.js:2884 msgid "Remove stock allocation" msgstr "" @@ -12641,7 +13006,7 @@ msgid "Add Manufacturer" msgstr "" #: templates/js/translated/company.js:111 -#: templates/js/translated/company.js:213 +#: templates/js/translated/company.js:214 msgid "Add Manufacturer Part" msgstr "" @@ -12649,231 +13014,231 @@ msgstr "" msgid "Edit Manufacturer Part" msgstr "" -#: templates/js/translated/company.js:201 +#: templates/js/translated/company.js:202 #: templates/js/translated/purchase_order.js:93 msgid "Add Supplier" msgstr "" -#: templates/js/translated/company.js:243 -#: templates/js/translated/purchase_order.js:318 +#: templates/js/translated/company.js:244 +#: templates/js/translated/purchase_order.js:301 msgid "Add Supplier Part" msgstr "" -#: templates/js/translated/company.js:344 +#: templates/js/translated/company.js:345 msgid "All selected supplier parts will be deleted" msgstr "" -#: templates/js/translated/company.js:360 +#: templates/js/translated/company.js:361 msgid "Delete Supplier Parts" msgstr "" -#: templates/js/translated/company.js:466 +#: templates/js/translated/company.js:467 msgid "Add new Company" msgstr "" -#: templates/js/translated/company.js:546 +#: templates/js/translated/company.js:547 msgid "Parts Supplied" msgstr "" -#: templates/js/translated/company.js:555 +#: templates/js/translated/company.js:556 msgid "Parts Manufactured" msgstr "" -#: templates/js/translated/company.js:570 +#: templates/js/translated/company.js:571 msgid "No company information found" msgstr "" -#: templates/js/translated/company.js:619 +#: templates/js/translated/company.js:620 msgid "Create New Contact" msgstr "" -#: templates/js/translated/company.js:635 -#: templates/js/translated/company.js:758 +#: templates/js/translated/company.js:636 +#: templates/js/translated/company.js:759 msgid "Edit Contact" msgstr "" -#: templates/js/translated/company.js:672 +#: templates/js/translated/company.js:673 msgid "All selected contacts will be deleted" msgstr "" -#: templates/js/translated/company.js:678 -#: templates/js/translated/company.js:742 +#: templates/js/translated/company.js:679 +#: templates/js/translated/company.js:743 msgid "Role" msgstr "" -#: templates/js/translated/company.js:686 +#: templates/js/translated/company.js:687 msgid "Delete Contacts" msgstr "" -#: templates/js/translated/company.js:717 +#: templates/js/translated/company.js:718 msgid "No contacts found" msgstr "" -#: templates/js/translated/company.js:730 +#: templates/js/translated/company.js:731 msgid "Phone Number" msgstr "" -#: templates/js/translated/company.js:736 +#: templates/js/translated/company.js:737 msgid "Email Address" msgstr "" -#: templates/js/translated/company.js:762 +#: templates/js/translated/company.js:763 msgid "Delete Contact" msgstr "" -#: templates/js/translated/company.js:859 +#: templates/js/translated/company.js:860 msgid "Create New Address" msgstr "" -#: templates/js/translated/company.js:874 -#: templates/js/translated/company.js:1035 +#: templates/js/translated/company.js:875 +#: templates/js/translated/company.js:1036 msgid "Edit Address" msgstr "" -#: templates/js/translated/company.js:909 +#: templates/js/translated/company.js:910 msgid "All selected addresses will be deleted" msgstr "" -#: templates/js/translated/company.js:923 +#: templates/js/translated/company.js:924 msgid "Delete Addresses" msgstr "" -#: templates/js/translated/company.js:950 +#: templates/js/translated/company.js:951 msgid "No addresses found" msgstr "" -#: templates/js/translated/company.js:989 +#: templates/js/translated/company.js:990 msgid "Postal city" msgstr "" -#: templates/js/translated/company.js:995 +#: templates/js/translated/company.js:996 msgid "State/province" msgstr "" -#: templates/js/translated/company.js:1007 +#: templates/js/translated/company.js:1008 msgid "Courier notes" msgstr "" -#: templates/js/translated/company.js:1013 +#: templates/js/translated/company.js:1014 msgid "Internal notes" msgstr "" -#: templates/js/translated/company.js:1039 +#: templates/js/translated/company.js:1040 msgid "Delete Address" msgstr "" -#: templates/js/translated/company.js:1112 +#: templates/js/translated/company.js:1113 msgid "All selected manufacturer parts will be deleted" msgstr "" -#: templates/js/translated/company.js:1127 +#: templates/js/translated/company.js:1128 msgid "Delete Manufacturer Parts" msgstr "" -#: templates/js/translated/company.js:1161 +#: templates/js/translated/company.js:1162 msgid "All selected parameters will be deleted" msgstr "" -#: templates/js/translated/company.js:1175 +#: templates/js/translated/company.js:1176 msgid "Delete Parameters" msgstr "" -#: templates/js/translated/company.js:1191 -#: templates/js/translated/company.js:1479 templates/js/translated/part.js:2250 +#: templates/js/translated/company.js:1192 +#: templates/js/translated/company.js:1480 templates/js/translated/part.js:2250 msgid "Order parts" msgstr "" -#: templates/js/translated/company.js:1208 +#: templates/js/translated/company.js:1209 msgid "Delete manufacturer parts" msgstr "" -#: templates/js/translated/company.js:1240 +#: templates/js/translated/company.js:1241 msgid "Manufacturer part actions" msgstr "" -#: templates/js/translated/company.js:1259 +#: templates/js/translated/company.js:1260 msgid "No manufacturer parts found" msgstr "" -#: templates/js/translated/company.js:1279 -#: templates/js/translated/company.js:1567 templates/js/translated/part.js:801 +#: templates/js/translated/company.js:1280 +#: templates/js/translated/company.js:1568 templates/js/translated/part.js:801 #: templates/js/translated/part.js:1217 msgid "Template part" msgstr "" -#: templates/js/translated/company.js:1283 -#: templates/js/translated/company.js:1571 templates/js/translated/part.js:805 +#: templates/js/translated/company.js:1284 +#: templates/js/translated/company.js:1572 templates/js/translated/part.js:805 #: templates/js/translated/part.js:1221 msgid "Assembled part" msgstr "" -#: templates/js/translated/company.js:1403 templates/js/translated/part.js:1471 +#: templates/js/translated/company.js:1404 templates/js/translated/part.js:1471 msgid "No parameters found" msgstr "" -#: templates/js/translated/company.js:1438 templates/js/translated/part.js:1534 +#: templates/js/translated/company.js:1439 templates/js/translated/part.js:1534 msgid "Edit parameter" msgstr "" -#: templates/js/translated/company.js:1439 templates/js/translated/part.js:1535 +#: templates/js/translated/company.js:1440 templates/js/translated/part.js:1535 msgid "Delete parameter" msgstr "" -#: templates/js/translated/company.js:1456 templates/js/translated/part.js:1440 +#: templates/js/translated/company.js:1457 templates/js/translated/part.js:1440 msgid "Edit Parameter" msgstr "" -#: templates/js/translated/company.js:1465 templates/js/translated/part.js:1556 +#: templates/js/translated/company.js:1466 templates/js/translated/part.js:1556 msgid "Delete Parameter" msgstr "" -#: templates/js/translated/company.js:1496 +#: templates/js/translated/company.js:1497 msgid "Delete supplier parts" msgstr "" -#: templates/js/translated/company.js:1546 +#: templates/js/translated/company.js:1547 msgid "No supplier parts found" msgstr "" -#: templates/js/translated/company.js:1664 +#: templates/js/translated/company.js:1665 msgid "Base Units" msgstr "" -#: templates/js/translated/company.js:1694 +#: templates/js/translated/company.js:1695 msgid "Availability" msgstr "" -#: templates/js/translated/company.js:1725 +#: templates/js/translated/company.js:1726 msgid "Edit supplier part" msgstr "" -#: templates/js/translated/company.js:1726 +#: templates/js/translated/company.js:1727 msgid "Delete supplier part" msgstr "" -#: templates/js/translated/company.js:1779 +#: templates/js/translated/company.js:1780 #: templates/js/translated/pricing.js:694 msgid "Delete Price Break" msgstr "" -#: templates/js/translated/company.js:1789 +#: templates/js/translated/company.js:1790 #: templates/js/translated/pricing.js:712 msgid "Edit Price Break" msgstr "" -#: templates/js/translated/company.js:1804 +#: templates/js/translated/company.js:1805 msgid "No price break information found" msgstr "" -#: templates/js/translated/company.js:1833 +#: templates/js/translated/company.js:1834 msgid "Last updated" msgstr "" -#: templates/js/translated/company.js:1840 +#: templates/js/translated/company.js:1841 msgid "Edit price break" msgstr "" -#: templates/js/translated/company.js:1841 +#: templates/js/translated/company.js:1842 msgid "Delete price break" msgstr "" @@ -12977,19 +13342,19 @@ msgstr "" msgid "Select Columns" msgstr "" -#: templates/js/translated/helpers.js:80 +#: templates/js/translated/helpers.js:81 msgid "YES" msgstr "" -#: templates/js/translated/helpers.js:83 +#: templates/js/translated/helpers.js:84 msgid "NO" msgstr "" -#: templates/js/translated/helpers.js:96 +#: templates/js/translated/helpers.js:97 msgid "True" msgstr "" -#: templates/js/translated/helpers.js:97 +#: templates/js/translated/helpers.js:98 msgid "False" msgstr "" @@ -13131,7 +13496,7 @@ msgid "Delete Line" msgstr "" #: templates/js/translated/order.js:306 -#: templates/js/translated/purchase_order.js:2060 +#: templates/js/translated/purchase_order.js:2044 msgid "No line items found" msgstr "" @@ -13366,19 +13731,19 @@ msgid "Delete Part Parameter Template" msgstr "" #: templates/js/translated/part.js:1723 -#: templates/js/translated/purchase_order.js:1724 +#: templates/js/translated/purchase_order.js:1708 msgid "No purchase orders found" msgstr "" #: templates/js/translated/part.js:1867 -#: templates/js/translated/purchase_order.js:2223 +#: templates/js/translated/purchase_order.js:2207 #: templates/js/translated/return_order.js:754 -#: templates/js/translated/sales_order.js:1911 +#: templates/js/translated/sales_order.js:1892 msgid "This line item is overdue" msgstr "" #: templates/js/translated/part.js:1913 -#: templates/js/translated/purchase_order.js:2290 +#: templates/js/translated/purchase_order.js:2274 msgid "Receive line item" msgstr "" @@ -13419,7 +13784,7 @@ msgid "No category" msgstr "" #: templates/js/translated/part.js:2550 templates/js/translated/part.js:2680 -#: templates/js/translated/stock.js:2754 +#: templates/js/translated/stock.js:2755 msgid "Display as list" msgstr "" @@ -13431,7 +13796,7 @@ msgstr "" msgid "No subcategories found" msgstr "" -#: templates/js/translated/part.js:2700 templates/js/translated/stock.js:2774 +#: templates/js/translated/part.js:2700 templates/js/translated/stock.js:2775 msgid "Display as tree" msgstr "" @@ -13483,23 +13848,23 @@ msgstr "" msgid "Speculative" msgstr "" -#: templates/js/translated/part.js:3128 +#: templates/js/translated/part.js:3144 msgid "No scheduling information available for this part" msgstr "" -#: templates/js/translated/part.js:3134 +#: templates/js/translated/part.js:3150 msgid "Error fetching scheduling information for this part" msgstr "" -#: templates/js/translated/part.js:3230 +#: templates/js/translated/part.js:3246 msgid "Scheduled Stock Quantities" msgstr "" -#: templates/js/translated/part.js:3246 +#: templates/js/translated/part.js:3262 msgid "Maximum Quantity" msgstr "" -#: templates/js/translated/part.js:3291 +#: templates/js/translated/part.js:3307 msgid "Minimum Stock Level" msgstr "" @@ -13575,267 +13940,243 @@ msgstr "" msgid "Purchase Price History" msgstr "" -#: templates/js/translated/pricing.js:894 +#: templates/js/translated/pricing.js:892 msgid "No sales history data available" msgstr "" -#: templates/js/translated/pricing.js:916 +#: templates/js/translated/pricing.js:914 msgid "Sale Price History" msgstr "" -#: templates/js/translated/pricing.js:1005 +#: templates/js/translated/pricing.js:1003 msgid "No variant data available" msgstr "" -#: templates/js/translated/pricing.js:1045 +#: templates/js/translated/pricing.js:1043 msgid "Variant Part" msgstr "" -#: templates/js/translated/purchase_order.js:169 -msgid "Select purchase order to duplicate" -msgstr "" - -#: templates/js/translated/purchase_order.js:176 -msgid "Duplicate Line Items" -msgstr "" - -#: templates/js/translated/purchase_order.js:177 -msgid "Duplicate all line items from the selected order" -msgstr "" - -#: templates/js/translated/purchase_order.js:184 -msgid "Duplicate Extra Lines" -msgstr "" - -#: templates/js/translated/purchase_order.js:185 -msgid "Duplicate extra line items from the selected order" -msgstr "" - -#: templates/js/translated/purchase_order.js:206 +#: templates/js/translated/purchase_order.js:188 msgid "Edit Purchase Order" msgstr "" -#: templates/js/translated/purchase_order.js:223 +#: templates/js/translated/purchase_order.js:205 msgid "Duplication Options" msgstr "" -#: templates/js/translated/purchase_order.js:431 +#: templates/js/translated/purchase_order.js:414 msgid "Complete Purchase Order" msgstr "" -#: templates/js/translated/purchase_order.js:448 +#: templates/js/translated/purchase_order.js:431 #: templates/js/translated/return_order.js:210 -#: templates/js/translated/sales_order.js:552 +#: templates/js/translated/sales_order.js:511 msgid "Mark this order as complete?" msgstr "" -#: templates/js/translated/purchase_order.js:454 +#: templates/js/translated/purchase_order.js:437 msgid "All line items have been received" msgstr "" -#: templates/js/translated/purchase_order.js:459 +#: templates/js/translated/purchase_order.js:442 msgid "This order has line items which have not been marked as received." msgstr "" -#: templates/js/translated/purchase_order.js:460 +#: templates/js/translated/purchase_order.js:443 msgid "Completing this order means that the order and line items will no longer be editable." msgstr "" -#: templates/js/translated/purchase_order.js:483 +#: templates/js/translated/purchase_order.js:466 msgid "Cancel Purchase Order" msgstr "" -#: templates/js/translated/purchase_order.js:488 +#: templates/js/translated/purchase_order.js:471 msgid "Are you sure you wish to cancel this purchase order?" msgstr "" -#: templates/js/translated/purchase_order.js:494 +#: templates/js/translated/purchase_order.js:477 msgid "This purchase order can not be cancelled" msgstr "" -#: templates/js/translated/purchase_order.js:515 +#: templates/js/translated/purchase_order.js:498 #: templates/js/translated/return_order.js:164 msgid "After placing this order, line items will no longer be editable." msgstr "" -#: templates/js/translated/purchase_order.js:520 +#: templates/js/translated/purchase_order.js:503 msgid "Issue Purchase Order" msgstr "" -#: templates/js/translated/purchase_order.js:612 +#: templates/js/translated/purchase_order.js:595 msgid "At least one purchaseable part must be selected" msgstr "" -#: templates/js/translated/purchase_order.js:637 +#: templates/js/translated/purchase_order.js:620 msgid "Quantity to order" msgstr "" -#: templates/js/translated/purchase_order.js:646 +#: templates/js/translated/purchase_order.js:629 msgid "New supplier part" msgstr "" -#: templates/js/translated/purchase_order.js:664 +#: templates/js/translated/purchase_order.js:647 msgid "New purchase order" msgstr "" -#: templates/js/translated/purchase_order.js:705 +#: templates/js/translated/purchase_order.js:688 msgid "Add to purchase order" msgstr "" -#: templates/js/translated/purchase_order.js:755 +#: templates/js/translated/purchase_order.js:738 msgid "Merge" msgstr "" -#: templates/js/translated/purchase_order.js:859 +#: templates/js/translated/purchase_order.js:842 msgid "No matching supplier parts" msgstr "" -#: templates/js/translated/purchase_order.js:878 +#: templates/js/translated/purchase_order.js:861 msgid "No matching purchase orders" msgstr "" -#: templates/js/translated/purchase_order.js:1073 +#: templates/js/translated/purchase_order.js:1056 #: templates/js/translated/return_order.js:490 msgid "Select Line Items" msgstr "" -#: templates/js/translated/purchase_order.js:1074 +#: templates/js/translated/purchase_order.js:1057 #: templates/js/translated/return_order.js:491 msgid "At least one line item must be selected" msgstr "" -#: templates/js/translated/purchase_order.js:1104 +#: templates/js/translated/purchase_order.js:1087 msgid "Received Quantity" msgstr "" -#: templates/js/translated/purchase_order.js:1115 +#: templates/js/translated/purchase_order.js:1098 msgid "Quantity to receive" msgstr "" -#: templates/js/translated/purchase_order.js:1170 +#: templates/js/translated/purchase_order.js:1153 #: templates/js/translated/stock.js:1215 msgid "Specify packaging for incoming stock items" msgstr "" -#: templates/js/translated/purchase_order.js:1223 +#: templates/js/translated/purchase_order.js:1206 msgid "Stock Status" msgstr "" -#: templates/js/translated/purchase_order.js:1237 +#: templates/js/translated/purchase_order.js:1220 msgid "Add barcode" msgstr "" -#: templates/js/translated/purchase_order.js:1238 +#: templates/js/translated/purchase_order.js:1221 msgid "Remove barcode" msgstr "" -#: templates/js/translated/purchase_order.js:1241 +#: templates/js/translated/purchase_order.js:1224 msgid "Specify location" msgstr "" -#: templates/js/translated/purchase_order.js:1249 +#: templates/js/translated/purchase_order.js:1232 msgid "Add batch code" msgstr "" -#: templates/js/translated/purchase_order.js:1259 +#: templates/js/translated/purchase_order.js:1242 msgid "Specify packaging" msgstr "" -#: templates/js/translated/purchase_order.js:1270 +#: templates/js/translated/purchase_order.js:1253 msgid "Add serial numbers" msgstr "" -#: templates/js/translated/purchase_order.js:1281 +#: templates/js/translated/purchase_order.js:1264 msgid "Add note" msgstr "" -#: templates/js/translated/purchase_order.js:1338 +#: templates/js/translated/purchase_order.js:1321 msgid "Serials" msgstr "" -#: templates/js/translated/purchase_order.js:1368 +#: templates/js/translated/purchase_order.js:1351 msgid "Order Code" msgstr "" -#: templates/js/translated/purchase_order.js:1370 +#: templates/js/translated/purchase_order.js:1353 msgid "Quantity to Receive" msgstr "" -#: templates/js/translated/purchase_order.js:1395 +#: templates/js/translated/purchase_order.js:1379 #: templates/js/translated/return_order.js:559 msgid "Confirm receipt of items" msgstr "" -#: templates/js/translated/purchase_order.js:1396 +#: templates/js/translated/purchase_order.js:1380 msgid "Receive Purchase Order Items" msgstr "" -#: templates/js/translated/purchase_order.js:1464 +#: templates/js/translated/purchase_order.js:1448 msgid "Scan Item Barcode" msgstr "" -#: templates/js/translated/purchase_order.js:1465 +#: templates/js/translated/purchase_order.js:1449 msgid "Scan barcode on incoming item (must not match any existing stock items)" msgstr "" -#: templates/js/translated/purchase_order.js:1479 +#: templates/js/translated/purchase_order.js:1463 msgid "Invalid barcode data" msgstr "" -#: templates/js/translated/purchase_order.js:1751 +#: templates/js/translated/purchase_order.js:1735 #: templates/js/translated/return_order.js:285 -#: templates/js/translated/sales_order.js:810 -#: templates/js/translated/sales_order.js:1034 +#: templates/js/translated/sales_order.js:769 +#: templates/js/translated/sales_order.js:1007 msgid "Order is overdue" msgstr "" -#: templates/js/translated/purchase_order.js:1913 +#: templates/js/translated/purchase_order.js:1897 msgid "All selected Line items will be deleted" msgstr "" -#: templates/js/translated/purchase_order.js:1931 +#: templates/js/translated/purchase_order.js:1915 msgid "Delete selected Line items?" msgstr "" -#: templates/js/translated/purchase_order.js:1986 -#: templates/js/translated/sales_order.js:2106 +#: templates/js/translated/purchase_order.js:1970 +#: templates/js/translated/sales_order.js:2087 msgid "Duplicate Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2001 +#: templates/js/translated/purchase_order.js:1985 #: templates/js/translated/return_order.js:475 #: templates/js/translated/return_order.js:667 -#: templates/js/translated/sales_order.js:2119 +#: templates/js/translated/sales_order.js:2100 msgid "Edit Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2012 +#: templates/js/translated/purchase_order.js:1996 #: templates/js/translated/return_order.js:680 -#: templates/js/translated/sales_order.js:2130 +#: templates/js/translated/sales_order.js:2111 msgid "Delete Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2294 -#: templates/js/translated/sales_order.js:2060 +#: templates/js/translated/purchase_order.js:2278 +#: templates/js/translated/sales_order.js:2041 msgid "Duplicate line item" msgstr "" -#: templates/js/translated/purchase_order.js:2295 +#: templates/js/translated/purchase_order.js:2279 #: templates/js/translated/return_order.js:799 -#: templates/js/translated/sales_order.js:2061 +#: templates/js/translated/sales_order.js:2042 msgid "Edit line item" msgstr "" -#: templates/js/translated/purchase_order.js:2296 +#: templates/js/translated/purchase_order.js:2280 #: templates/js/translated/return_order.js:803 -#: templates/js/translated/sales_order.js:2067 +#: templates/js/translated/sales_order.js:2048 msgid "Delete line item" msgstr "" -#: templates/js/translated/report.js:49 -msgid "Print Report" -msgstr "" - #: templates/js/translated/report.js:68 msgid "Report print successful" msgstr "" @@ -13878,7 +14219,7 @@ msgid "No return orders found" msgstr "" #: templates/js/translated/return_order.js:299 -#: templates/js/translated/sales_order.js:824 +#: templates/js/translated/sales_order.js:783 msgid "Invalid Customer" msgstr "" @@ -13887,7 +14228,7 @@ msgid "Receive Return Order Items" msgstr "" #: templates/js/translated/return_order.js:691 -#: templates/js/translated/sales_order.js:2267 +#: templates/js/translated/sales_order.js:2248 msgid "No matching line items" msgstr "" @@ -13903,188 +14244,181 @@ msgstr "" msgid "Edit Sales Order" msgstr "" -#: templates/js/translated/sales_order.js:291 +#: templates/js/translated/sales_order.js:288 msgid "No stock items have been allocated to this shipment" msgstr "" -#: templates/js/translated/sales_order.js:296 -msgid "The following stock items will be shipped" -msgstr "" - -#: templates/js/translated/sales_order.js:336 +#: templates/js/translated/sales_order.js:294 msgid "Complete Shipment" msgstr "" -#: templates/js/translated/sales_order.js:360 +#: templates/js/translated/sales_order.js:318 msgid "Confirm Shipment" msgstr "" -#: templates/js/translated/sales_order.js:416 +#: templates/js/translated/sales_order.js:375 msgid "No pending shipments found" msgstr "" -#: templates/js/translated/sales_order.js:420 +#: templates/js/translated/sales_order.js:379 msgid "No stock items have been allocated to pending shipments" msgstr "" -#: templates/js/translated/sales_order.js:430 +#: templates/js/translated/sales_order.js:389 msgid "Complete Shipments" msgstr "" -#: templates/js/translated/sales_order.js:452 +#: templates/js/translated/sales_order.js:411 msgid "Skip" msgstr "" -#: templates/js/translated/sales_order.js:484 +#: templates/js/translated/sales_order.js:443 msgid "Ship Sales Order" msgstr "" -#: templates/js/translated/sales_order.js:500 +#: templates/js/translated/sales_order.js:459 msgid "Ship this order?" msgstr "" -#: templates/js/translated/sales_order.js:506 +#: templates/js/translated/sales_order.js:465 msgid "Order cannot be shipped as there are incomplete shipments" msgstr "" -#: templates/js/translated/sales_order.js:513 +#: templates/js/translated/sales_order.js:472 msgid "This order has line items which have not been completed." msgstr "" -#: templates/js/translated/sales_order.js:514 +#: templates/js/translated/sales_order.js:473 msgid "Shipping this order means that the order and line items will no longer be editable." msgstr "" -#: templates/js/translated/sales_order.js:572 +#: templates/js/translated/sales_order.js:531 msgid "Issue this Sales Order?" msgstr "" -#: templates/js/translated/sales_order.js:577 +#: templates/js/translated/sales_order.js:536 msgid "Issue Sales Order" msgstr "" -#: templates/js/translated/sales_order.js:596 +#: templates/js/translated/sales_order.js:555 msgid "Cancel Sales Order" msgstr "" -#: templates/js/translated/sales_order.js:601 +#: templates/js/translated/sales_order.js:560 msgid "Cancelling this order means that the order will no longer be editable." msgstr "" -#: templates/js/translated/sales_order.js:655 +#: templates/js/translated/sales_order.js:614 msgid "Create New Shipment" msgstr "" -#: templates/js/translated/sales_order.js:764 +#: templates/js/translated/sales_order.js:723 msgid "No sales orders found" msgstr "" -#: templates/js/translated/sales_order.js:944 +#: templates/js/translated/sales_order.js:907 msgid "Edit shipment" msgstr "" -#: templates/js/translated/sales_order.js:947 +#: templates/js/translated/sales_order.js:910 msgid "Complete shipment" msgstr "" -#: templates/js/translated/sales_order.js:952 +#: templates/js/translated/sales_order.js:915 msgid "Delete shipment" msgstr "" -#: templates/js/translated/sales_order.js:969 +#: templates/js/translated/sales_order.js:932 msgid "Edit Shipment" msgstr "" -#: templates/js/translated/sales_order.js:984 +#: templates/js/translated/sales_order.js:947 msgid "Delete Shipment" msgstr "" -#: templates/js/translated/sales_order.js:1017 +#: templates/js/translated/sales_order.js:989 msgid "No matching shipments found" msgstr "" -#: templates/js/translated/sales_order.js:1042 +#: templates/js/translated/sales_order.js:1015 msgid "Shipment Reference" msgstr "" -#: templates/js/translated/sales_order.js:1066 -#: templates/js/translated/sales_order.js:1565 +#: templates/js/translated/sales_order.js:1032 +#: templates/js/translated/sales_order.js:1531 msgid "Not shipped" msgstr "" -#: templates/js/translated/sales_order.js:1084 +#: templates/js/translated/sales_order.js:1050 msgid "Tracking" msgstr "" -#: templates/js/translated/sales_order.js:1088 +#: templates/js/translated/sales_order.js:1054 msgid "Invoice" msgstr "" -#: templates/js/translated/sales_order.js:1255 +#: templates/js/translated/sales_order.js:1221 msgid "Add Shipment" msgstr "" -#: templates/js/translated/sales_order.js:1306 +#: templates/js/translated/sales_order.js:1272 msgid "Confirm stock allocation" msgstr "" -#: templates/js/translated/sales_order.js:1307 +#: templates/js/translated/sales_order.js:1273 msgid "Allocate Stock Items to Sales Order" msgstr "" -#: templates/js/translated/sales_order.js:1513 +#: templates/js/translated/sales_order.js:1479 msgid "No sales order allocations found" msgstr "" -#: templates/js/translated/sales_order.js:1605 +#: templates/js/translated/sales_order.js:1571 msgid "Edit Stock Allocation" msgstr "" -#: templates/js/translated/sales_order.js:1619 +#: templates/js/translated/sales_order.js:1585 msgid "Confirm Delete Operation" msgstr "" -#: templates/js/translated/sales_order.js:1620 +#: templates/js/translated/sales_order.js:1586 msgid "Delete Stock Allocation" msgstr "" -#: templates/js/translated/sales_order.js:1659 -#: templates/js/translated/sales_order.js:1746 +#: templates/js/translated/sales_order.js:1640 +#: templates/js/translated/sales_order.js:1727 #: templates/js/translated/stock.js:1861 msgid "Shipped to customer" msgstr "" -#: templates/js/translated/sales_order.js:1667 -#: templates/js/translated/sales_order.js:1755 +#: templates/js/translated/sales_order.js:1648 +#: templates/js/translated/sales_order.js:1736 msgid "Stock location not specified" msgstr "" -#: templates/js/translated/sales_order.js:2044 -msgid "Allocate serial numbers" -msgstr "" - -#: templates/js/translated/sales_order.js:2048 -msgid "Purchase stock" -msgstr "" - -#: templates/js/translated/sales_order.js:2057 -#: templates/js/translated/sales_order.js:2245 -msgid "Calculate price" -msgstr "" - -#: templates/js/translated/sales_order.js:2071 -msgid "Cannot be deleted as items have been shipped" -msgstr "" - -#: templates/js/translated/sales_order.js:2074 -msgid "Cannot be deleted as items have been allocated" -msgstr "" - -#: templates/js/translated/sales_order.js:2145 +#: templates/js/translated/sales_order.js:2025 +#: templates/js/translated/sales_order.js:2126 msgid "Allocate Serial Numbers" msgstr "" -#: templates/js/translated/sales_order.js:2253 +#: templates/js/translated/sales_order.js:2029 +msgid "Purchase stock" +msgstr "" + +#: templates/js/translated/sales_order.js:2038 +#: templates/js/translated/sales_order.js:2226 +msgid "Calculate price" +msgstr "" + +#: templates/js/translated/sales_order.js:2052 +msgid "Cannot be deleted as items have been shipped" +msgstr "" + +#: templates/js/translated/sales_order.js:2055 +msgid "Cannot be deleted as items have been allocated" +msgstr "" + +#: templates/js/translated/sales_order.js:2234 msgid "Update Unit Price" msgstr "" @@ -14209,11 +14543,8 @@ msgid "Find Serial Number" msgstr "" #: templates/js/translated/stock.js:603 templates/js/translated/stock.js:604 -msgid "Enter serial number" -msgstr "" - #: templates/js/translated/stock.js:620 -msgid "Enter a serial number" +msgid "Enter serial number" msgstr "" #: templates/js/translated/stock.js:640 @@ -14284,7 +14615,7 @@ msgstr "" msgid "Add Stock" msgstr "" -#: templates/js/translated/stock.js:1049 users/models.py:396 +#: templates/js/translated/stock.js:1049 users/models.py:398 msgid "Add" msgstr "" @@ -14308,7 +14639,7 @@ msgstr "" msgid "Adjust packaging" msgstr "" -#: templates/js/translated/stock.js:1256 templates/js/translated/stock.js:3382 +#: templates/js/translated/stock.js:1256 templates/js/translated/stock.js:3383 msgid "Select Stock Items" msgstr "" @@ -14320,18 +14651,6 @@ msgstr "" msgid "Confirm stock adjustment" msgstr "" -#: templates/js/translated/stock.js:1448 -msgid "PASS" -msgstr "" - -#: templates/js/translated/stock.js:1450 -msgid "FAIL" -msgstr "" - -#: templates/js/translated/stock.js:1455 -msgid "NO RESULT" -msgstr "" - #: templates/js/translated/stock.js:1535 msgid "Pass test" msgstr "" @@ -14388,216 +14707,216 @@ msgstr "" msgid "No stock location set" msgstr "" -#: templates/js/translated/stock.js:1927 +#: templates/js/translated/stock.js:1928 msgid "Change stock status" msgstr "" -#: templates/js/translated/stock.js:1936 +#: templates/js/translated/stock.js:1937 msgid "Merge stock" msgstr "" -#: templates/js/translated/stock.js:1985 +#: templates/js/translated/stock.js:1986 msgid "Delete stock" msgstr "" -#: templates/js/translated/stock.js:2038 +#: templates/js/translated/stock.js:2039 msgid "stock items" msgstr "" -#: templates/js/translated/stock.js:2043 +#: templates/js/translated/stock.js:2044 msgid "Scan to location" msgstr "" -#: templates/js/translated/stock.js:2054 +#: templates/js/translated/stock.js:2055 msgid "Stock Actions" msgstr "" -#: templates/js/translated/stock.js:2098 +#: templates/js/translated/stock.js:2099 msgid "Load installed items" msgstr "" -#: templates/js/translated/stock.js:2176 +#: templates/js/translated/stock.js:2177 msgid "Stock item is in production" msgstr "" -#: templates/js/translated/stock.js:2181 +#: templates/js/translated/stock.js:2182 msgid "Stock item assigned to sales order" msgstr "" -#: templates/js/translated/stock.js:2184 +#: templates/js/translated/stock.js:2185 msgid "Stock item assigned to customer" msgstr "" -#: templates/js/translated/stock.js:2187 +#: templates/js/translated/stock.js:2188 msgid "Serialized stock item has been allocated" msgstr "" -#: templates/js/translated/stock.js:2189 +#: templates/js/translated/stock.js:2190 msgid "Stock item has been fully allocated" msgstr "" -#: templates/js/translated/stock.js:2191 +#: templates/js/translated/stock.js:2192 msgid "Stock item has been partially allocated" msgstr "" -#: templates/js/translated/stock.js:2194 +#: templates/js/translated/stock.js:2195 msgid "Stock item has been installed in another item" msgstr "" -#: templates/js/translated/stock.js:2196 +#: templates/js/translated/stock.js:2197 msgid "Stock item has been consumed by a build order" msgstr "" -#: templates/js/translated/stock.js:2200 +#: templates/js/translated/stock.js:2201 msgid "Stock item has expired" msgstr "" -#: templates/js/translated/stock.js:2202 +#: templates/js/translated/stock.js:2203 msgid "Stock item will expire soon" msgstr "" -#: templates/js/translated/stock.js:2207 +#: templates/js/translated/stock.js:2208 msgid "Stock item has been rejected" msgstr "" -#: templates/js/translated/stock.js:2209 +#: templates/js/translated/stock.js:2210 msgid "Stock item is lost" msgstr "" -#: templates/js/translated/stock.js:2211 +#: templates/js/translated/stock.js:2212 msgid "Stock item is destroyed" msgstr "" -#: templates/js/translated/stock.js:2215 +#: templates/js/translated/stock.js:2216 #: templates/js/translated/table_filters.js:357 msgid "Depleted" msgstr "" -#: templates/js/translated/stock.js:2380 +#: templates/js/translated/stock.js:2381 msgid "Supplier part not specified" msgstr "" -#: templates/js/translated/stock.js:2427 +#: templates/js/translated/stock.js:2428 msgid "Stock Value" msgstr "" -#: templates/js/translated/stock.js:2555 +#: templates/js/translated/stock.js:2556 msgid "No stock items matching query" msgstr "" -#: templates/js/translated/stock.js:2658 +#: templates/js/translated/stock.js:2659 msgid "stock locations" msgstr "" -#: templates/js/translated/stock.js:2813 +#: templates/js/translated/stock.js:2814 msgid "Load Sublocations" msgstr "" -#: templates/js/translated/stock.js:2930 +#: templates/js/translated/stock.js:2931 msgid "Details" msgstr "" -#: templates/js/translated/stock.js:2934 +#: templates/js/translated/stock.js:2935 msgid "No changes" msgstr "" -#: templates/js/translated/stock.js:2946 +#: templates/js/translated/stock.js:2947 msgid "Part information unavailable" msgstr "" -#: templates/js/translated/stock.js:2968 +#: templates/js/translated/stock.js:2969 msgid "Location no longer exists" msgstr "" -#: templates/js/translated/stock.js:2985 +#: templates/js/translated/stock.js:2986 msgid "Build order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3000 +#: templates/js/translated/stock.js:3001 msgid "Purchase order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3017 +#: templates/js/translated/stock.js:3018 msgid "Sales Order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3034 +#: templates/js/translated/stock.js:3035 msgid "Return Order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3053 +#: templates/js/translated/stock.js:3054 msgid "Customer no longer exists" msgstr "" -#: templates/js/translated/stock.js:3071 +#: templates/js/translated/stock.js:3072 msgid "Stock item no longer exists" msgstr "" -#: templates/js/translated/stock.js:3089 +#: templates/js/translated/stock.js:3090 msgid "Added" msgstr "" -#: templates/js/translated/stock.js:3097 +#: templates/js/translated/stock.js:3098 msgid "Removed" msgstr "" -#: templates/js/translated/stock.js:3169 +#: templates/js/translated/stock.js:3170 msgid "No installed items" msgstr "" -#: templates/js/translated/stock.js:3223 templates/js/translated/stock.js:3259 +#: templates/js/translated/stock.js:3224 templates/js/translated/stock.js:3260 msgid "Uninstall Stock Item" msgstr "" -#: templates/js/translated/stock.js:3280 +#: templates/js/translated/stock.js:3281 msgid "Select stock item to uninstall" msgstr "" -#: templates/js/translated/stock.js:3301 +#: templates/js/translated/stock.js:3302 msgid "Install another stock item into this item" msgstr "" -#: templates/js/translated/stock.js:3302 +#: templates/js/translated/stock.js:3303 msgid "Stock items can only be installed if they meet the following criteria" msgstr "" -#: templates/js/translated/stock.js:3304 +#: templates/js/translated/stock.js:3305 msgid "The Stock Item links to a Part which is the BOM for this Stock Item" msgstr "" -#: templates/js/translated/stock.js:3305 +#: templates/js/translated/stock.js:3306 msgid "The Stock Item is currently available in stock" msgstr "" -#: templates/js/translated/stock.js:3306 +#: templates/js/translated/stock.js:3307 msgid "The Stock Item is not already installed in another item" msgstr "" -#: templates/js/translated/stock.js:3307 +#: templates/js/translated/stock.js:3308 msgid "The Stock Item is tracked by either a batch code or serial number" msgstr "" -#: templates/js/translated/stock.js:3320 +#: templates/js/translated/stock.js:3321 msgid "Select part to install" msgstr "" -#: templates/js/translated/stock.js:3383 +#: templates/js/translated/stock.js:3384 msgid "Select one or more stock items" msgstr "" -#: templates/js/translated/stock.js:3396 +#: templates/js/translated/stock.js:3397 msgid "Selected stock items" msgstr "" -#: templates/js/translated/stock.js:3400 +#: templates/js/translated/stock.js:3401 msgid "Change Stock Status" msgstr "" -#: templates/js/translated/stock.js:3477 +#: templates/js/translated/stock.js:3478 msgid "This week" msgstr "" -#: templates/js/translated/stock.js:3485 +#: templates/js/translated/stock.js:3486 msgid "This month" msgstr "" @@ -14734,10 +15053,6 @@ msgstr "" msgid "Show items which are in production" msgstr "" -#: templates/js/translated/table_filters.js:372 -msgid "Include Variants" -msgstr "" - #: templates/js/translated/table_filters.js:373 msgid "Include stock items for variant parts" msgstr "" @@ -15012,10 +15327,6 @@ msgstr "" msgid "An error occurred while attempting to login via your social network account." msgstr "" -#: templates/socialaccount/authentication_error.html:13 -msgid "Contact your system administrator for further information." -msgstr "" - #: templates/socialaccount/login.html:13 #, python-format msgid "Connect %(provider)s" @@ -15141,27 +15452,27 @@ msgstr "Ano" msgid "No" msgstr "Ne" -#: users/admin.py:104 +#: users/admin.py:101 msgid "Users" msgstr "Uživatelé" -#: users/admin.py:105 +#: users/admin.py:102 msgid "Select which users are assigned to this group" msgstr "" -#: users/admin.py:249 +#: users/admin.py:246 msgid "The following users are members of multiple groups" msgstr "" -#: users/admin.py:283 +#: users/admin.py:280 msgid "Personal info" msgstr "Osobní údaje" -#: users/admin.py:285 +#: users/admin.py:282 msgid "Permissions" msgstr "Oprávnění" -#: users/admin.py:288 +#: users/admin.py:285 msgid "Important dates" msgstr "" @@ -15205,35 +15516,35 @@ msgstr "" msgid "Revoked" msgstr "" -#: users/models.py:379 +#: users/models.py:381 msgid "Permission set" msgstr "Nastavení oprávnění" -#: users/models.py:388 +#: users/models.py:390 msgid "Group" msgstr "Skupina" -#: users/models.py:392 +#: users/models.py:394 msgid "View" msgstr "Zobrazit" -#: users/models.py:392 +#: users/models.py:394 msgid "Permission to view items" msgstr "Oprávnění k zobrazení položek" -#: users/models.py:396 +#: users/models.py:398 msgid "Permission to add items" msgstr "Oprávnění přidat položky" -#: users/models.py:400 +#: users/models.py:402 msgid "Change" msgstr "Změnit" -#: users/models.py:402 +#: users/models.py:404 msgid "Permissions to edit items" msgstr "Oprávnění k úpravě položek" -#: users/models.py:408 +#: users/models.py:410 msgid "Permission to delete items" msgstr "Oprávnění k odstranění položek" diff --git a/src/backend/InvenTree/locale/da/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/da/LC_MESSAGES/django.po index 20a7c3cccb..b3b9ae3901 100644 --- a/src/backend/InvenTree/locale/da/LC_MESSAGES/django.po +++ b/src/backend/InvenTree/locale/da/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-08-20 01:22+0000\n" -"PO-Revision-Date: 2024-08-20 19:50\n" +"POT-Creation-Date: 2024-11-04 03:11+0000\n" +"PO-Revision-Date: 2024-11-04 03:14\n" "Last-Translator: \n" "Language-Team: Danish\n" "Language: da_DK\n" @@ -14,81 +14,89 @@ msgstr "" "X-Crowdin-Project: inventree\n" "X-Crowdin-Project-ID: 452300\n" "X-Crowdin-Language: da\n" -"X-Crowdin-File: /[inventree.InvenTree] l10/src/backend/InvenTree/locale/en/LC_MESSAGES/django.po\n" -"X-Crowdin-File-ID: 216\n" +"X-Crowdin-File: /src/backend/InvenTree/locale/en/LC_MESSAGES/django.po\n" +"X-Crowdin-File-ID: 250\n" -#: InvenTree/api.py:269 +#: InvenTree/api.py:270 msgid "API endpoint not found" msgstr "API endpoint ikke fundet" -#: InvenTree/api.py:502 +#: InvenTree/api.py:387 +msgid "Invalid items list provided" +msgstr "" + +#: InvenTree/api.py:396 +msgid "Invalid filters provided" +msgstr "" + +#: InvenTree/api.py:401 +msgid "No items found to delete" +msgstr "" + +#: InvenTree/api.py:515 msgid "User does not have permission to view this model" msgstr "Bruger har ikke tilladelse til at se denne model" -#: InvenTree/conversion.py:160 +#: InvenTree/conversion.py:161 #, python-brace-format msgid "Invalid unit provided ({unit})" msgstr "" -#: InvenTree/conversion.py:177 +#: InvenTree/conversion.py:178 msgid "No value provided" msgstr "Ingen værdi angivet" -#: InvenTree/conversion.py:204 +#: InvenTree/conversion.py:205 #, python-brace-format msgid "Could not convert {original} to {unit}" msgstr "Kunne ikke konvertere {original} til {unit}" -#: InvenTree/conversion.py:206 -msgid "Invalid quantity supplied" +#: InvenTree/conversion.py:207 InvenTree/conversion.py:221 +#: InvenTree/helpers.py:505 order/models.py:589 order/models.py:832 +msgid "Invalid quantity provided" msgstr "Ugyldigt antal angivet" -#: InvenTree/conversion.py:220 -#, python-brace-format -msgid "Invalid quantity supplied ({exc})" -msgstr "Ugyldigt antal angivet ({exc})" - -#: InvenTree/exceptions.py:108 +#: InvenTree/exceptions.py:104 msgid "Error details can be found in the admin panel" msgstr "Fejloplysninger kan findes i admin panelet" -#: InvenTree/fields.py:136 +#: InvenTree/fields.py:135 msgid "Enter date" msgstr "Angiv dato" -#: InvenTree/fields.py:205 InvenTree/models.py:929 build/serializers.py:468 -#: build/serializers.py:546 build/templates/build/sidebar.html:29 -#: company/models.py:836 +#: InvenTree/fields.py:204 InvenTree/models.py:928 build/serializers.py:512 +#: build/serializers.py:590 build/templates/build/sidebar.html:29 +#: company/models.py:833 #: company/templates/company/manufacturer_part_sidebar.html:11 #: company/templates/company/sidebar.html:37 -#: company/templates/company/supplier_part_sidebar.html:11 order/models.py:1380 +#: company/templates/company/supplier_part_sidebar.html:11 order/models.py:1397 #: order/templates/order/po_sidebar.html:11 #: order/templates/order/return_order_sidebar.html:9 #: order/templates/order/so_sidebar.html:17 part/admin.py:59 -#: part/models.py:3297 part/templates/part/part_sidebar.html:65 +#: part/models.py:3348 part/templates/part/part_sidebar.html:65 #: report/templates/report/inventree_build_order_report.html:172 -#: stock/admin.py:230 stock/models.py:2375 stock/models.py:2563 -#: stock/serializers.py:698 stock/serializers.py:856 stock/serializers.py:982 -#: stock/serializers.py:1032 stock/serializers.py:1343 -#: stock/serializers.py:1432 stock/serializers.py:1597 +#: stock/admin.py:231 stock/models.py:2494 stock/models.py:2679 +#: stock/serializers.py:725 stock/serializers.py:887 stock/serializers.py:1013 +#: stock/serializers.py:1063 stock/serializers.py:1374 +#: stock/serializers.py:1463 stock/serializers.py:1628 #: stock/templates/stock/stock_sidebar.html:25 #: templates/js/translated/barcode.js:143 templates/js/translated/bom.js:1265 -#: templates/js/translated/company.js:1684 templates/js/translated/order.js:372 +#: templates/js/translated/company.js:1685 templates/js/translated/order.js:372 #: templates/js/translated/part.js:1087 -#: templates/js/translated/purchase_order.js:2270 +#: templates/js/translated/purchase_order.js:2254 #: templates/js/translated/return_order.js:774 -#: templates/js/translated/sales_order.js:1103 -#: templates/js/translated/sales_order.js:2018 -#: templates/js/translated/stock.js:1621 templates/js/translated/stock.js:2513 +#: templates/js/translated/sales_order.js:1069 +#: templates/js/translated/sales_order.js:1999 +#: templates/js/translated/stock.js:1621 templates/js/translated/stock.js:2514 msgid "Notes" msgstr "Bemærkninger" -#: InvenTree/format.py:164 +#: InvenTree/format.py:162 #, python-brace-format msgid "Value '{name}' does not appear in pattern format" msgstr "Værdi '{name}' vises ikke i mønsterformat" -#: InvenTree/format.py:175 +#: InvenTree/format.py:173 msgid "Provided value does not match required pattern: " msgstr "Den angivne værdi matcher ikke det påkrævede mønster: " @@ -132,397 +140,409 @@ msgstr "" msgid "The provided primary email address is not valid." msgstr "Den indtastede email adresse er ikke gyldig." -#: InvenTree/forms.py:274 +#: InvenTree/forms.py:273 msgid "The provided email domain is not approved." msgstr "Det angivne e-mail domæne er ikke godkendt." -#: InvenTree/forms.py:403 +#: InvenTree/forms.py:402 msgid "Registration is disabled." msgstr "Registrering er deaktiveret." -#: InvenTree/helpers.py:491 order/models.py:567 order/models.py:810 -msgid "Invalid quantity provided" -msgstr "Ugyldigt antal angivet" +#: InvenTree/helpers.py:509 +msgid "Cannot serialize more than 1000 items at once" +msgstr "" -#: InvenTree/helpers.py:499 +#: InvenTree/helpers.py:515 msgid "Empty serial number string" msgstr "Serienummer streng er tom" -#: InvenTree/helpers.py:528 +#: InvenTree/helpers.py:544 msgid "Duplicate serial" msgstr "Duplikeret serienummer" -#: InvenTree/helpers.py:560 InvenTree/helpers.py:603 +#: InvenTree/helpers.py:576 InvenTree/helpers.py:619 InvenTree/helpers.py:637 +#: InvenTree/helpers.py:644 InvenTree/helpers.py:663 #, python-brace-format -msgid "Invalid group range: {group}" +msgid "Invalid group: {group}" msgstr "" -#: InvenTree/helpers.py:591 +#: InvenTree/helpers.py:607 #, python-brace-format msgid "Group range {group} exceeds allowed quantity ({expected_quantity})" msgstr "" -#: InvenTree/helpers.py:621 InvenTree/helpers.py:628 InvenTree/helpers.py:647 -#, python-brace-format -msgid "Invalid group sequence: {group}" -msgstr "Ugyldig gruppesekvens: {group}" - -#: InvenTree/helpers.py:657 +#: InvenTree/helpers.py:673 msgid "No serial numbers found" msgstr "Ingen serienumre fundet" -#: InvenTree/helpers.py:662 +#: InvenTree/helpers.py:678 msgid "Number of unique serial numbers ({len(serials)}) must match quantity ({expected_quantity})" msgstr "" -#: InvenTree/helpers.py:780 +#: InvenTree/helpers.py:796 msgid "Remove HTML tags from this value" msgstr "Fjern HTML-tags fra denne værdi" -#: InvenTree/helpers_model.py:133 +#: InvenTree/helpers.py:881 +msgid "Data contains prohibited markdown content" +msgstr "" + +#: InvenTree/helpers_model.py:130 msgid "Connection error" msgstr "Forbindelsesfejl" -#: InvenTree/helpers_model.py:138 InvenTree/helpers_model.py:145 +#: InvenTree/helpers_model.py:135 InvenTree/helpers_model.py:142 msgid "Server responded with invalid status code" msgstr "Serveren svarede med ugyldig statuskode" -#: InvenTree/helpers_model.py:141 +#: InvenTree/helpers_model.py:138 msgid "Exception occurred" msgstr "Der opstod en fejl" -#: InvenTree/helpers_model.py:151 +#: InvenTree/helpers_model.py:148 msgid "Server responded with invalid Content-Length value" msgstr "Serveren svarede med ugyldig Content-Length værdi" -#: InvenTree/helpers_model.py:154 +#: InvenTree/helpers_model.py:151 msgid "Image size is too large" msgstr "Billedstørrelsen er for stor" -#: InvenTree/helpers_model.py:166 +#: InvenTree/helpers_model.py:163 msgid "Image download exceeded maximum size" msgstr "Billeddownload overskred maksimumstørrelsen" -#: InvenTree/helpers_model.py:171 +#: InvenTree/helpers_model.py:168 msgid "Remote server returned empty response" msgstr "Fjernserver returnerede tomt svar" -#: InvenTree/helpers_model.py:179 +#: InvenTree/helpers_model.py:176 msgid "Supplied URL is not a valid image file" msgstr "Angivet URL er ikke en gyldig billedfil" -#: InvenTree/locales.py:18 +#: InvenTree/locales.py:20 msgid "Arabic" msgstr "" -#: InvenTree/locales.py:19 +#: InvenTree/locales.py:21 msgid "Bulgarian" msgstr "Bulgarsk" -#: InvenTree/locales.py:20 +#: InvenTree/locales.py:22 msgid "Czech" msgstr "Tjekkisk" -#: InvenTree/locales.py:21 +#: InvenTree/locales.py:23 msgid "Danish" msgstr "Dansk" -#: InvenTree/locales.py:22 +#: InvenTree/locales.py:24 msgid "German" msgstr "Tysk" -#: InvenTree/locales.py:23 +#: InvenTree/locales.py:25 msgid "Greek" msgstr "Græsk" -#: InvenTree/locales.py:24 +#: InvenTree/locales.py:26 msgid "English" msgstr "Engelsk" -#: InvenTree/locales.py:25 +#: InvenTree/locales.py:27 msgid "Spanish" msgstr "Spansk" -#: InvenTree/locales.py:26 +#: InvenTree/locales.py:28 msgid "Spanish (Mexican)" msgstr "Spansk (Mexikansk)" -#: InvenTree/locales.py:27 +#: InvenTree/locales.py:29 msgid "Estonian" msgstr "" -#: InvenTree/locales.py:28 +#: InvenTree/locales.py:30 msgid "Farsi / Persian" msgstr "Farsi / Persisk" -#: InvenTree/locales.py:29 +#: InvenTree/locales.py:31 msgid "Finnish" msgstr "Finsk" -#: InvenTree/locales.py:30 +#: InvenTree/locales.py:32 msgid "French" msgstr "Fransk" -#: InvenTree/locales.py:31 +#: InvenTree/locales.py:33 msgid "Hebrew" msgstr "Hebraisk" -#: InvenTree/locales.py:32 +#: InvenTree/locales.py:34 msgid "Hindi" msgstr "" -#: InvenTree/locales.py:33 +#: InvenTree/locales.py:35 msgid "Hungarian" msgstr "Ungarsk" -#: InvenTree/locales.py:34 +#: InvenTree/locales.py:36 msgid "Italian" msgstr "Italiensk" -#: InvenTree/locales.py:35 +#: InvenTree/locales.py:37 msgid "Japanese" msgstr "Japansk" -#: InvenTree/locales.py:36 +#: InvenTree/locales.py:38 msgid "Korean" msgstr "Koreansk" -#: InvenTree/locales.py:37 +#: InvenTree/locales.py:39 +msgid "Lithuanian" +msgstr "" + +#: InvenTree/locales.py:40 msgid "Latvian" msgstr "" -#: InvenTree/locales.py:38 +#: InvenTree/locales.py:41 msgid "Dutch" msgstr "Hollandsk" -#: InvenTree/locales.py:39 +#: InvenTree/locales.py:42 msgid "Norwegian" msgstr "Norsk" -#: InvenTree/locales.py:40 +#: InvenTree/locales.py:43 msgid "Polish" msgstr "Polsk" -#: InvenTree/locales.py:41 +#: InvenTree/locales.py:44 msgid "Portuguese" msgstr "Portugisisk" -#: InvenTree/locales.py:42 +#: InvenTree/locales.py:45 msgid "Portuguese (Brazilian)" msgstr "Portugisisk (Brasilien)" -#: InvenTree/locales.py:43 +#: InvenTree/locales.py:46 msgid "Romanian" msgstr "" -#: InvenTree/locales.py:44 +#: InvenTree/locales.py:47 msgid "Russian" msgstr "Russisk" -#: InvenTree/locales.py:45 +#: InvenTree/locales.py:48 msgid "Slovak" msgstr "" -#: InvenTree/locales.py:46 +#: InvenTree/locales.py:49 msgid "Slovenian" msgstr "Slovensk" -#: InvenTree/locales.py:47 +#: InvenTree/locales.py:50 msgid "Serbian" msgstr "Serbisk" -#: InvenTree/locales.py:48 +#: InvenTree/locales.py:51 msgid "Swedish" msgstr "Svensk" -#: InvenTree/locales.py:49 +#: InvenTree/locales.py:52 msgid "Thai" msgstr "Thailandsk" -#: InvenTree/locales.py:50 +#: InvenTree/locales.py:53 msgid "Turkish" msgstr "Tyrkisk" -#: InvenTree/locales.py:51 +#: InvenTree/locales.py:54 msgid "Ukrainian" msgstr "" -#: InvenTree/locales.py:52 +#: InvenTree/locales.py:55 msgid "Vietnamese" msgstr "Vietnamesisk" -#: InvenTree/locales.py:53 +#: InvenTree/locales.py:56 msgid "Chinese (Simplified)" msgstr "Kinesisk (forenklet)" -#: InvenTree/locales.py:54 +#: InvenTree/locales.py:57 msgid "Chinese (Traditional)" msgstr "Kinesisk (traditionelt)" #: InvenTree/magic_login.py:28 -#, python-brace-format -msgid "[{site_name}] Log in to the app" +msgid "Log in to the app" msgstr "" -#: InvenTree/magic_login.py:38 InvenTree/serializers.py:415 -#: company/models.py:136 company/templates/company/company_base.html:138 +#: InvenTree/magic_login.py:38 InvenTree/serializers.py:416 +#: company/models.py:133 company/templates/company/company_base.html:138 #: templates/InvenTree/settings/user.html:49 -#: templates/js/translated/company.js:677 +#: templates/js/translated/company.js:678 msgid "Email" msgstr "E-mail" -#: InvenTree/models.py:103 +#: InvenTree/models.py:105 msgid "Error running plugin validation" msgstr "" -#: InvenTree/models.py:172 +#: InvenTree/models.py:174 msgid "Metadata must be a python dict object" msgstr "Metadata skal være et python dict objekt" -#: InvenTree/models.py:178 +#: InvenTree/models.py:180 msgid "Plugin Metadata" msgstr "" -#: InvenTree/models.py:179 +#: InvenTree/models.py:181 msgid "JSON metadata field, for use by external plugins" msgstr "JSON metadata felt, til brug af eksterne plugins" -#: InvenTree/models.py:409 +#: InvenTree/models.py:408 msgid "Improperly formatted pattern" msgstr "Forkert formateret mønster" -#: InvenTree/models.py:416 +#: InvenTree/models.py:415 msgid "Unknown format key specified" msgstr "Ukendt formatnøgle angivet" -#: InvenTree/models.py:422 +#: InvenTree/models.py:421 msgid "Missing required format key" msgstr "Mangler nødvendig formatnøgle" -#: InvenTree/models.py:433 +#: InvenTree/models.py:432 msgid "Reference field cannot be empty" msgstr "Referencefelt må ikke være tomt" -#: InvenTree/models.py:441 +#: InvenTree/models.py:440 msgid "Reference must match required pattern" msgstr "Reference skal matche det påkrævede mønster" -#: InvenTree/models.py:472 +#: InvenTree/models.py:471 msgid "Reference number is too large" msgstr "Referencenummer er for stort" -#: InvenTree/models.py:723 +#: InvenTree/models.py:722 msgid "Duplicate names cannot exist under the same parent" msgstr "" -#: InvenTree/models.py:740 +#: InvenTree/models.py:739 msgid "Invalid choice" msgstr "Ugyldigt valg" -#: InvenTree/models.py:770 common/models.py:2702 common/models.py:3132 -#: common/serializers.py:412 company/models.py:593 machine/models.py:24 -#: part/models.py:983 part/models.py:3764 plugin/models.py:51 -#: report/models.py:149 stock/models.py:77 +#: InvenTree/models.py:769 common/models.py:2766 common/models.py:3193 +#: common/models.py:3413 common/serializers.py:460 company/models.py:590 +#: machine/models.py:24 part/models.py:1044 part/models.py:3815 +#: plugin/models.py:51 report/models.py:149 stock/models.py:83 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/notifications.html:17 #: templates/InvenTree/settings/plugin.html:83 #: templates/InvenTree/settings/plugin_settings.html:22 #: templates/InvenTree/settings/settings_staff_js.html:67 #: templates/InvenTree/settings/settings_staff_js.html:454 -#: templates/js/translated/company.js:676 -#: templates/js/translated/company.js:724 -#: templates/js/translated/company.js:913 -#: templates/js/translated/company.js:1165 -#: templates/js/translated/company.js:1413 templates/js/translated/part.js:1193 +#: templates/js/translated/company.js:677 +#: templates/js/translated/company.js:725 +#: templates/js/translated/company.js:914 +#: templates/js/translated/company.js:1166 +#: templates/js/translated/company.js:1414 templates/js/translated/part.js:1193 #: templates/js/translated/part.js:1481 templates/js/translated/part.js:1617 -#: templates/js/translated/part.js:2768 templates/js/translated/stock.js:2801 +#: templates/js/translated/part.js:2768 templates/js/translated/stock.js:2802 msgid "Name" msgstr "Navn" -#: InvenTree/models.py:776 build/models.py:250 -#: build/templates/build/detail.html:24 common/models.py:156 -#: company/models.py:521 company/models.py:827 +#: InvenTree/models.py:775 build/models.py:251 +#: build/templates/build/detail.html:24 common/models.py:159 +#: company/models.py:518 company/models.py:824 #: company/templates/company/company_base.html:77 #: company/templates/company/manufacturer_part.html:75 -#: company/templates/company/supplier_part.html:107 order/models.py:288 -#: order/models.py:1413 part/admin.py:305 part/admin.py:411 part/models.py:1006 -#: part/models.py:3779 part/templates/part/category.html:79 -#: part/templates/part/part_base.html:170 +#: company/templates/company/supplier_part.html:108 order/models.py:295 +#: order/models.py:1430 part/admin.py:305 part/admin.py:411 part/models.py:1067 +#: part/models.py:3830 part/templates/part/category.html:79 +#: part/templates/part/part_base.html:171 #: part/templates/part/part_scheduling.html:12 report/models.py:155 -#: report/models.py:509 report/models.py:535 +#: report/models.py:517 report/models.py:543 #: report/templates/report/inventree_build_order_report.html:117 -#: stock/admin.py:54 stock/models.py:83 stock/templates/stock/location.html:122 +#: stock/admin.py:54 stock/models.py:89 stock/templates/stock/location.html:123 #: templates/InvenTree/settings/notifications.html:19 #: templates/InvenTree/settings/plugin_settings.html:27 #: templates/InvenTree/settings/settings_staff_js.html:170 #: templates/InvenTree/settings/settings_staff_js.html:459 #: templates/js/translated/bom.js:633 templates/js/translated/bom.js:963 -#: templates/js/translated/build.js:2311 templates/js/translated/company.js:519 -#: templates/js/translated/company.js:1330 -#: templates/js/translated/company.js:1641 templates/js/translated/index.js:119 +#: templates/js/translated/build.js:2314 templates/js/translated/company.js:520 +#: templates/js/translated/company.js:1331 +#: templates/js/translated/company.js:1642 templates/js/translated/index.js:119 #: templates/js/translated/order.js:323 templates/js/translated/part.js:1245 #: templates/js/translated/part.js:1490 templates/js/translated/part.js:1628 #: templates/js/translated/part.js:1965 templates/js/translated/part.js:2361 #: templates/js/translated/part.js:2803 templates/js/translated/part.js:2915 #: templates/js/translated/plugin.js:80 -#: templates/js/translated/purchase_order.js:1776 -#: templates/js/translated/purchase_order.js:1919 -#: templates/js/translated/purchase_order.js:2092 +#: templates/js/translated/purchase_order.js:1760 +#: templates/js/translated/purchase_order.js:1903 +#: templates/js/translated/purchase_order.js:2076 #: templates/js/translated/return_order.js:313 -#: templates/js/translated/sales_order.js:838 -#: templates/js/translated/sales_order.js:1848 -#: templates/js/translated/stock.js:1600 templates/js/translated/stock.js:2143 -#: templates/js/translated/stock.js:2832 templates/js/translated/stock.js:2915 +#: templates/js/translated/sales_order.js:797 +#: templates/js/translated/sales_order.js:1829 +#: templates/js/translated/stock.js:1600 templates/js/translated/stock.js:2144 +#: templates/js/translated/stock.js:2833 templates/js/translated/stock.js:2916 msgid "Description" msgstr "Beskrivelse" -#: InvenTree/models.py:777 stock/models.py:84 +#: InvenTree/models.py:776 stock/models.py:90 msgid "Description (optional)" msgstr "Beskrivelse (valgfri)" -#: InvenTree/models.py:792 templates/js/translated/part.js:2812 -#: templates/js/translated/stock.js:2841 +#: InvenTree/models.py:791 common/models.py:3546 +#: templates/js/translated/part.js:2812 templates/js/translated/stock.js:2842 msgid "Path" msgstr "Sti" -#: InvenTree/models.py:929 +#: InvenTree/models.py:928 msgid "Markdown notes (optional)" msgstr "Markdown noter (valgfri)" -#: InvenTree/models.py:960 +#: InvenTree/models.py:959 msgid "Barcode Data" msgstr "Stregkode Data" -#: InvenTree/models.py:961 +#: InvenTree/models.py:960 msgid "Third party barcode data" msgstr "Tredjeparts stregkode data" -#: InvenTree/models.py:967 +#: InvenTree/models.py:966 msgid "Barcode Hash" msgstr "Stregkode Hash" -#: InvenTree/models.py:968 +#: InvenTree/models.py:967 msgid "Unique hash of barcode data" msgstr "Unik hash af stregkode data" -#: InvenTree/models.py:1035 +#: InvenTree/models.py:1034 msgid "Existing barcode found" msgstr "Eksisterende stregkode fundet" -#: InvenTree/models.py:1078 +#: InvenTree/models.py:1112 +msgid "Task Failure" +msgstr "" + +#: InvenTree/models.py:1114 +#, python-brace-format +msgid "Background worker task '{instance.func}' failed after {n} attempts" +msgstr "" + +#: InvenTree/models.py:1142 msgid "Server Error" msgstr "Serverfejl" -#: InvenTree/models.py:1079 +#: InvenTree/models.py:1143 msgid "An error has been logged by the server." msgstr "En fejl blev logget af serveren." -#: InvenTree/serializers.py:63 part/models.py:4387 +#: InvenTree/serializers.py:63 part/models.py:4444 msgid "Must be a valid number" msgstr "Skal være et gyldigt tal" -#: InvenTree/serializers.py:100 company/models.py:186 -#: company/templates/company/company_base.html:112 part/models.py:3115 +#: InvenTree/serializers.py:100 company/models.py:183 +#: company/templates/company/company_base.html:112 part/models.py:3166 #: templates/InvenTree/settings/settings_staff_js.html:44 #: templates/currency_data.html:5 msgid "Currency" @@ -532,15 +552,15 @@ msgstr "Valuta" msgid "Select currency from available options" msgstr "Vælg valuta fra tilgængelige muligheder" -#: InvenTree/serializers.py:407 templates/InvenTree/settings/user.html:33 +#: InvenTree/serializers.py:405 templates/InvenTree/settings/user.html:33 msgid "Username" msgstr "" -#: InvenTree/serializers.py:409 templates/InvenTree/settings/user.html:37 +#: InvenTree/serializers.py:408 templates/InvenTree/settings/user.html:37 msgid "First Name" msgstr "" -#: InvenTree/serializers.py:409 +#: InvenTree/serializers.py:408 msgid "First name of the user" msgstr "" @@ -552,30 +572,30 @@ msgstr "" msgid "Last name of the user" msgstr "" -#: InvenTree/serializers.py:415 +#: InvenTree/serializers.py:416 msgid "Email address of the user" msgstr "" -#: InvenTree/serializers.py:439 +#: InvenTree/serializers.py:441 msgid "Staff" msgstr "" -#: InvenTree/serializers.py:439 +#: InvenTree/serializers.py:441 msgid "Does this user have staff permissions" msgstr "" -#: InvenTree/serializers.py:442 +#: InvenTree/serializers.py:445 msgid "Superuser" msgstr "" -#: InvenTree/serializers.py:442 +#: InvenTree/serializers.py:445 msgid "Is this user a superuser" msgstr "" -#: InvenTree/serializers.py:445 common/models.py:2707 company/models.py:163 -#: company/models.py:801 machine/models.py:39 part/admin.py:88 -#: part/models.py:1189 plugin/models.py:66 -#: templates/js/translated/company.js:523 +#: InvenTree/serializers.py:449 common/models.py:2771 company/models.py:160 +#: company/models.py:798 machine/models.py:39 part/admin.py:88 +#: part/models.py:1250 plugin/models.py:66 +#: templates/js/translated/company.js:524 #: templates/js/translated/table_filters.js:134 #: templates/js/translated/table_filters.js:226 #: templates/js/translated/table_filters.js:513 @@ -585,230 +605,229 @@ msgstr "" msgid "Active" msgstr "" -#: InvenTree/serializers.py:445 +#: InvenTree/serializers.py:449 msgid "Is this user account active" msgstr "" -#: InvenTree/serializers.py:463 +#: InvenTree/serializers.py:467 msgid "You do not have permission to change this user role." msgstr "Du har ikke tilladelse til at ændre denne brugerrolle." -#: InvenTree/serializers.py:475 +#: InvenTree/serializers.py:503 msgid "Only superusers can create new users" msgstr "Kun superbrugere kan oprette nye brugere" -#: InvenTree/serializers.py:494 +#: InvenTree/serializers.py:523 msgid "Your account has been created." msgstr "" -#: InvenTree/serializers.py:496 +#: InvenTree/serializers.py:525 msgid "Please use the password reset function to login" msgstr "" -#: InvenTree/serializers.py:503 +#: InvenTree/serializers.py:531 msgid "Welcome to InvenTree" msgstr "" -#: InvenTree/serializers.py:561 +#: InvenTree/serializers.py:594 msgid "Invalid value" msgstr "Ugyldig værdi" -#: InvenTree/serializers.py:581 importer/models.py:63 +#: InvenTree/serializers.py:614 importer/models.py:64 msgid "Data File" msgstr "Datafil" -#: InvenTree/serializers.py:582 +#: InvenTree/serializers.py:615 msgid "Select data file for upload" msgstr "Vælg datafilen til upload" -#: InvenTree/serializers.py:599 -msgid "Unsupported file type" -msgstr "Filtype ikke understøttet" +#: InvenTree/serializers.py:632 common/files.py:63 +msgid "Unsupported file format" +msgstr "" -#: InvenTree/serializers.py:605 +#: InvenTree/serializers.py:638 msgid "File is too large" msgstr "Filen er for stor" -#: InvenTree/serializers.py:626 +#: InvenTree/serializers.py:659 msgid "No columns found in file" msgstr "Ingen kolonner fundet i fil" -#: InvenTree/serializers.py:629 +#: InvenTree/serializers.py:662 msgid "No data rows found in file" msgstr "Ingen datarækker fundet i fil" -#: InvenTree/serializers.py:742 +#: InvenTree/serializers.py:774 msgid "No data rows provided" msgstr "Ingen data-rækker angivet" -#: InvenTree/serializers.py:745 +#: InvenTree/serializers.py:777 msgid "No data columns supplied" msgstr "Ingen data-kolonner angivet" -#: InvenTree/serializers.py:812 +#: InvenTree/serializers.py:843 #, python-brace-format msgid "Missing required column: '{name}'" msgstr "Mangler påkrævet kolonne: '{name}'" -#: InvenTree/serializers.py:821 +#: InvenTree/serializers.py:852 #, python-brace-format msgid "Duplicate column: '{col}'" msgstr "Duplikeret kolonne: '{col}'" -#: InvenTree/serializers.py:861 +#: InvenTree/serializers.py:891 msgid "Remote Image" msgstr "Eksternt billede" -#: InvenTree/serializers.py:862 +#: InvenTree/serializers.py:892 msgid "URL of remote image file" msgstr "URL til ekstern billedfil" -#: InvenTree/serializers.py:880 +#: InvenTree/serializers.py:910 msgid "Downloading images from remote URL is not enabled" msgstr "Download af billeder fra ekstern URL er ikke aktiveret" -#: InvenTree/status.py:66 part/serializers.py:1246 -msgid "Background worker check failed" -msgstr "Kontrol af baggrundstjeneste mislykkedes" - -#: InvenTree/status.py:70 -msgid "Email backend not configured" -msgstr "E-mail backend ej konfigureret" - -#: InvenTree/status.py:73 -msgid "InvenTree system health checks failed" -msgstr "Helbredstjek af InvenTree system mislykkedes" +#: InvenTree/serializers.py:917 +msgid "Failed to download image from remote URL" +msgstr "" #: InvenTree/templatetags/inventree_extras.py:184 msgid "Unknown database" msgstr "Ukendt database" -#: InvenTree/validators.py:32 InvenTree/validators.py:34 +#: InvenTree/validators.py:32 msgid "Invalid physical unit" msgstr "Ugyldig fysisk enhed" -#: InvenTree/validators.py:40 +#: InvenTree/validators.py:38 msgid "Not a valid currency code" msgstr "Ikke en gyldig valutakode" -#: InvenTree/validators.py:118 InvenTree/validators.py:134 +#: InvenTree/validators.py:115 InvenTree/validators.py:131 msgid "Overage value must not be negative" msgstr "Overskud må ikke være negativ" -#: InvenTree/validators.py:136 +#: InvenTree/validators.py:133 msgid "Overage must not exceed 100%" msgstr "Overskuddet må ikke overstige 100%" -#: InvenTree/validators.py:142 +#: InvenTree/validators.py:139 msgid "Invalid value for overage" msgstr "Ugyldig værdi for overskud" -#: InvenTree/views.py:400 templates/InvenTree/settings/user.html:23 +#: InvenTree/views.py:399 templates/InvenTree/settings/user.html:23 msgid "Edit User Information" msgstr "Rediger brugerinformation" -#: InvenTree/views.py:412 templates/InvenTree/settings/user.html:20 +#: InvenTree/views.py:411 templates/InvenTree/settings/user.html:20 msgid "Set Password" msgstr "Vælg adgangskode" -#: InvenTree/views.py:434 +#: InvenTree/views.py:433 msgid "Password fields must match" msgstr "De indtastede adgangskoder skal være ens" -#: InvenTree/views.py:442 +#: InvenTree/views.py:441 msgid "Wrong password provided" msgstr "Forkert adgangskode indtastet" -#: InvenTree/views.py:650 templates/navbar.html:160 +#: InvenTree/views.py:645 templates/navbar.html:160 msgid "System Information" msgstr "Systemoplysninger" -#: InvenTree/views.py:657 templates/navbar.html:171 +#: InvenTree/views.py:652 templates/navbar.html:171 msgid "About InvenTree" msgstr "Om InvenTree" -#: build/api.py:51 part/api.py:156 stock/api.py:343 -msgid "Cascade" -msgstr "" - -#: build/api.py:64 build/models.py:261 -#: build/templates/build/build_base.html:191 +#: build/api.py:54 build/models.py:262 +#: build/templates/build/build_base.html:192 #: build/templates/build/detail.html:87 msgid "Parent Build" msgstr "Overordnet produktion" -#: build/api.py:89 order/api.py:92 templates/js/translated/table_filters.js:101 +#: build/api.py:58 build/api.py:625 order/api.py:396 order/api.py:611 +#: order/api.py:990 order/api.py:1187 +#: templates/js/translated/table_filters.js:372 +msgid "Include Variants" +msgstr "" + +#: build/api.py:93 +msgid "Ancestor Build" +msgstr "" + +#: build/api.py:112 order/api.py:90 +#: templates/js/translated/table_filters.js:101 #: templates/js/translated/table_filters.js:549 #: templates/js/translated/table_filters.js:633 #: templates/js/translated/table_filters.js:674 msgid "Assigned to me" msgstr "" -#: build/api.py:106 build/templates/build/build_base.html:205 +#: build/api.py:129 build/templates/build/build_base.html:206 #: build/templates/build/detail.html:115 #: report/templates/report/inventree_build_order_report.html:152 #: templates/js/translated/table_filters.js:552 msgid "Issued By" msgstr "" -#: build/api.py:125 +#: build/api.py:148 msgid "Assigned To" msgstr "" -#: build/api.py:301 +#: build/api.py:310 msgid "Build must be cancelled before it can be deleted" msgstr "Produktion skal anulleres, før den kan slettes" -#: build/api.py:345 build/serializers.py:1288 part/models.py:4265 +#: build/api.py:354 build/serializers.py:1342 part/models.py:4322 #: templates/js/translated/bom.js:997 templates/js/translated/bom.js:1037 -#: templates/js/translated/build.js:2702 +#: templates/js/translated/build.js:2711 #: templates/js/translated/table_filters.js:197 #: templates/js/translated/table_filters.js:586 msgid "Consumable" msgstr "Forbrugsvare" -#: build/api.py:346 build/serializers.py:1289 part/models.py:4259 +#: build/api.py:355 build/serializers.py:1343 part/models.py:4316 #: part/templates/part/upload_bom.html:58 templates/js/translated/bom.js:1001 -#: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2693 +#: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2702 #: templates/js/translated/table_filters.js:193 #: templates/js/translated/table_filters.js:222 #: templates/js/translated/table_filters.js:590 msgid "Optional" msgstr "Valgfri" -#: build/api.py:347 common/models.py:1489 part/admin.py:91 part/admin.py:428 -#: part/models.py:1154 part/serializers.py:1575 +#: build/api.py:356 common/models.py:1558 part/admin.py:91 part/admin.py:428 +#: part/models.py:1215 part/serializers.py:1633 #: templates/js/translated/bom.js:1639 #: templates/js/translated/table_filters.js:337 #: templates/js/translated/table_filters.js:729 msgid "Assembly" msgstr "" -#: build/api.py:348 templates/js/translated/table_filters.js:415 +#: build/api.py:357 templates/js/translated/table_filters.js:415 #: templates/js/translated/table_filters.js:582 msgid "Tracked" msgstr "Sporet" -#: build/api.py:349 build/serializers.py:1290 part/models.py:1172 +#: build/api.py:358 build/serializers.py:1344 part/models.py:1233 #: templates/js/translated/table_filters.js:146 #: templates/js/translated/table_filters.js:779 msgid "Testable" msgstr "" -#: build/api.py:351 part/admin.py:144 templates/js/translated/build.js:1917 -#: templates/js/translated/build.js:2820 -#: templates/js/translated/sales_order.js:1965 +#: build/api.py:360 order/api.py:779 part/admin.py:144 +#: templates/js/translated/build.js:1920 templates/js/translated/build.js:2838 +#: templates/js/translated/sales_order.js:1946 #: templates/js/translated/table_filters.js:574 msgid "Allocated" msgstr "Allokeret" -#: build/api.py:359 company/models.py:891 company/serializers.py:395 -#: company/templates/company/supplier_part.html:114 +#: build/api.py:368 company/models.py:888 company/serializers.py:399 +#: company/templates/company/supplier_part.html:115 #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:17 -#: templates/js/translated/bom.js:1162 templates/js/translated/build.js:2752 +#: templates/js/translated/bom.js:1162 templates/js/translated/build.js:2770 #: templates/js/translated/index.js:123 -#: templates/js/translated/model_renderers.js:235 +#: templates/js/translated/model_renderers.js:238 #: templates/js/translated/part.js:695 templates/js/translated/part.js:697 #: templates/js/translated/part.js:702 #: templates/js/translated/table_filters.js:347 @@ -816,16 +835,68 @@ msgstr "Allokeret" msgid "Available" msgstr "Tilgængelig" -#: build/models.py:86 build/templates/build/build_base.html:9 -#: build/templates/build/build_base.html:27 +#: build/api.py:640 build/models.py:268 build/serializers.py:1330 +#: build/templates/build/build_base.html:106 +#: build/templates/build/detail.html:29 company/models.py:1043 order/api.py:775 +#: order/api.py:1003 order/models.py:1519 order/models.py:1674 +#: order/models.py:1675 part/api.py:1495 part/api.py:1802 part/models.py:419 +#: part/models.py:3177 part/models.py:3321 part/models.py:3469 +#: part/models.py:3490 part/models.py:3512 part/models.py:3648 +#: part/models.py:3995 part/models.py:4158 part/models.py:4288 +#: part/models.py:4654 part/serializers.py:1245 part/serializers.py:1898 +#: part/templates/part/part_app_base.html:8 +#: part/templates/part/part_pricing.html:12 +#: part/templates/part/upload_bom.html:52 +#: report/templates/report/inventree_bill_of_materials_report.html:110 +#: report/templates/report/inventree_bill_of_materials_report.html:137 +#: report/templates/report/inventree_build_order_report.html:109 +#: report/templates/report/inventree_purchase_order_report.html:27 +#: report/templates/report/inventree_return_order_report.html:24 +#: report/templates/report/inventree_sales_order_report.html:27 +#: report/templates/report/inventree_sales_order_shipment_report.html:28 +#: report/templates/report/inventree_stock_location_report.html:102 +#: stock/serializers.py:112 stock/serializers.py:160 stock/serializers.py:456 +#: stock/serializers.py:947 templates/InvenTree/search.html:82 +#: templates/email/build_order_completed.html:17 +#: templates/email/build_order_required_stock.html:17 +#: templates/email/low_stock_notification.html:15 +#: templates/email/overdue_build_order.html:16 +#: templates/js/translated/barcode.js:577 templates/js/translated/bom.js:632 +#: templates/js/translated/bom.js:769 templates/js/translated/bom.js:905 +#: templates/js/translated/build.js:1005 templates/js/translated/build.js:1488 +#: templates/js/translated/build.js:1919 templates/js/translated/build.js:2337 +#: templates/js/translated/build.js:2514 templates/js/translated/company.js:349 +#: templates/js/translated/company.js:1117 +#: templates/js/translated/company.js:1272 +#: templates/js/translated/company.js:1560 templates/js/translated/index.js:109 +#: templates/js/translated/part.js:1950 templates/js/translated/part.js:2022 +#: templates/js/translated/part.js:2330 templates/js/translated/pricing.js:369 +#: templates/js/translated/purchase_order.js:734 +#: templates/js/translated/purchase_order.js:1350 +#: templates/js/translated/purchase_order.js:1902 +#: templates/js/translated/purchase_order.js:2061 +#: templates/js/translated/return_order.js:538 +#: templates/js/translated/return_order.js:708 +#: templates/js/translated/sales_order.js:1199 +#: templates/js/translated/sales_order.js:1608 +#: templates/js/translated/sales_order.js:1813 +#: templates/js/translated/stock.js:682 templates/js/translated/stock.js:848 +#: templates/js/translated/stock.js:1065 templates/js/translated/stock.js:2083 +#: templates/js/translated/stock.js:2942 templates/js/translated/stock.js:3175 +#: templates/js/translated/stock.js:3320 +msgid "Part" +msgstr "Del" + +#: build/api.py:662 build/models.py:88 build/templates/build/build_base.html:10 +#: build/templates/build/build_base.html:28 #: report/templates/report/inventree_build_order_report.html:105 -#: stock/serializers.py:84 templates/email/build_order_completed.html:16 +#: stock/serializers.py:85 templates/email/build_order_completed.html:16 #: templates/email/overdue_build_order.html:15 -#: templates/js/translated/build.js:1145 templates/js/translated/stock.js:2976 +#: templates/js/translated/build.js:1148 templates/js/translated/stock.js:2977 msgid "Build Order" msgstr "Produktionsordre" -#: build/models.py:87 build/templates/build/build_base.html:13 +#: build/models.py:89 build/templates/build/build_base.html:14 #: build/templates/build/index.html:8 build/templates/build/index.html:12 #: order/templates/order/sales_order_detail.html:111 #: order/templates/order/so_sidebar.html:13 @@ -836,268 +907,216 @@ msgstr "Produktionsordre" msgid "Build Orders" msgstr "Produktionsordrer" -#: build/models.py:135 +#: build/models.py:136 msgid "Assembly BOM has not been validated" msgstr "" -#: build/models.py:142 +#: build/models.py:143 msgid "Build order cannot be created for an inactive part" msgstr "" -#: build/models.py:149 +#: build/models.py:150 msgid "Build order cannot be created for an unlocked part" msgstr "" -#: build/models.py:163 +#: build/models.py:164 msgid "Invalid choice for parent build" msgstr "Ugyldigt valg for overordnet produktion" -#: build/models.py:174 order/models.py:239 +#: build/models.py:175 order/models.py:236 msgid "Responsible user or group must be specified" msgstr "" -#: build/models.py:180 +#: build/models.py:181 msgid "Build order part cannot be changed" msgstr "Byggeordre enhed kan ikke ændres" -#: build/models.py:241 +#: build/models.py:242 msgid "Build Order Reference" msgstr "Produktionsordre reference" -#: build/models.py:242 build/serializers.py:1287 order/models.py:467 -#: order/models.py:978 order/models.py:1373 order/models.py:2135 -#: part/admin.py:414 part/models.py:4280 part/templates/part/upload_bom.html:54 +#: build/models.py:243 build/serializers.py:1341 order/models.py:479 +#: order/models.py:1005 order/models.py:1390 order/models.py:2174 +#: part/admin.py:414 part/models.py:4337 part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_bill_of_materials_report.html:139 #: report/templates/report/inventree_purchase_order_report.html:28 #: report/templates/report/inventree_return_order_report.html:26 #: report/templates/report/inventree_sales_order_report.html:28 #: templates/js/translated/bom.js:770 templates/js/translated/bom.js:973 -#: templates/js/translated/build.js:1011 templates/js/translated/build.js:2685 +#: templates/js/translated/build.js:1014 templates/js/translated/build.js:2694 #: templates/js/translated/order.js:316 templates/js/translated/pricing.js:386 -#: templates/js/translated/purchase_order.js:2135 +#: templates/js/translated/purchase_order.js:2119 #: templates/js/translated/return_order.js:727 -#: templates/js/translated/sales_order.js:1854 +#: templates/js/translated/sales_order.js:1835 msgid "Reference" msgstr "" -#: build/models.py:253 +#: build/models.py:254 msgid "Brief description of the build (optional)" msgstr "" -#: build/models.py:262 +#: build/models.py:263 msgid "BuildOrder to which this build is allocated" msgstr "Produktionsordre som er tildelt denne produktion" -#: build/models.py:267 build/serializers.py:1278 -#: build/templates/build/build_base.html:105 -#: build/templates/build/detail.html:29 company/models.py:1046 order/api.py:767 -#: order/models.py:1503 order/models.py:1658 order/models.py:1659 -#: part/api.py:1509 part/api.py:1813 part/models.py:424 part/models.py:3126 -#: part/models.py:3270 part/models.py:3418 part/models.py:3439 -#: part/models.py:3461 part/models.py:3597 part/models.py:3937 -#: part/models.py:4100 part/models.py:4231 part/models.py:4592 -#: part/serializers.py:1192 part/serializers.py:1836 -#: part/templates/part/part_app_base.html:8 -#: part/templates/part/part_pricing.html:12 -#: part/templates/part/upload_bom.html:52 -#: report/templates/report/inventree_bill_of_materials_report.html:110 -#: report/templates/report/inventree_bill_of_materials_report.html:137 -#: report/templates/report/inventree_build_order_report.html:109 -#: report/templates/report/inventree_purchase_order_report.html:27 -#: report/templates/report/inventree_return_order_report.html:24 -#: report/templates/report/inventree_sales_order_report.html:27 -#: report/templates/report/inventree_stock_location_report.html:102 -#: stock/serializers.py:111 stock/serializers.py:159 stock/serializers.py:446 -#: stock/serializers.py:916 templates/InvenTree/search.html:82 -#: templates/email/build_order_completed.html:17 -#: templates/email/build_order_required_stock.html:17 -#: templates/email/low_stock_notification.html:15 -#: templates/email/overdue_build_order.html:16 -#: templates/js/translated/barcode.js:577 templates/js/translated/bom.js:632 -#: templates/js/translated/bom.js:769 templates/js/translated/bom.js:905 -#: templates/js/translated/build.js:1002 templates/js/translated/build.js:1485 -#: templates/js/translated/build.js:1916 templates/js/translated/build.js:2334 -#: templates/js/translated/build.js:2507 templates/js/translated/company.js:348 -#: templates/js/translated/company.js:1116 -#: templates/js/translated/company.js:1271 -#: templates/js/translated/company.js:1559 templates/js/translated/index.js:109 -#: templates/js/translated/part.js:1950 templates/js/translated/part.js:2022 -#: templates/js/translated/part.js:2330 templates/js/translated/pricing.js:369 -#: templates/js/translated/purchase_order.js:751 -#: templates/js/translated/purchase_order.js:1367 -#: templates/js/translated/purchase_order.js:1918 -#: templates/js/translated/purchase_order.js:2077 -#: templates/js/translated/return_order.js:538 -#: templates/js/translated/return_order.js:708 -#: templates/js/translated/sales_order.js:300 -#: templates/js/translated/sales_order.js:1233 -#: templates/js/translated/sales_order.js:1634 -#: templates/js/translated/sales_order.js:1832 -#: templates/js/translated/stock.js:682 templates/js/translated/stock.js:848 -#: templates/js/translated/stock.js:1065 templates/js/translated/stock.js:2082 -#: templates/js/translated/stock.js:2941 templates/js/translated/stock.js:3174 -#: templates/js/translated/stock.js:3319 -msgid "Part" -msgstr "Del" - -#: build/models.py:275 +#: build/models.py:274 msgid "Select part to build" msgstr "Vælg dele til produktion" -#: build/models.py:280 +#: build/models.py:279 msgid "Sales Order Reference" msgstr "Salgsordrereference" -#: build/models.py:284 +#: build/models.py:283 msgid "SalesOrder to which this build is allocated" msgstr "Salgsordre, som er tildelt denne produktion" -#: build/models.py:289 build/serializers.py:1048 -#: templates/js/translated/build.js:1904 -#: templates/js/translated/sales_order.js:1221 +#: build/models.py:288 build/serializers.py:1092 +#: templates/js/translated/build.js:1907 +#: templates/js/translated/sales_order.js:1187 msgid "Source Location" msgstr "Kilde Lokation" -#: build/models.py:293 +#: build/models.py:292 msgid "Select location to take stock from for this build (leave blank to take from any stock location)" msgstr "Vælg lokation for lager, som skal benyttes til denne produktion (lad feltet stå tomt for at benytte vilkårligt lager)" -#: build/models.py:298 +#: build/models.py:297 msgid "Destination Location" msgstr "Destinations Placering" -#: build/models.py:302 +#: build/models.py:301 msgid "Select location where the completed items will be stored" msgstr "Vælg placering, hvor de færdige elementer vil blive gemt" -#: build/models.py:306 +#: build/models.py:305 msgid "Build Quantity" msgstr "Produktions antal" -#: build/models.py:309 +#: build/models.py:308 msgid "Number of stock items to build" msgstr "Antal lagervarer som skal produceres" -#: build/models.py:313 +#: build/models.py:312 msgid "Completed items" msgstr "Afsluttede elementer" -#: build/models.py:315 +#: build/models.py:314 msgid "Number of stock items which have been completed" msgstr "Antal lagervarer som er færdiggjort" -#: build/models.py:319 +#: build/models.py:318 msgid "Build Status" msgstr "Produktions Status" -#: build/models.py:323 +#: build/models.py:322 msgid "Build status code" msgstr "Produktions statuskode" -#: build/models.py:332 build/serializers.py:302 build/serializers.py:1198 -#: order/serializers.py:670 stock/models.py:859 stock/serializers.py:76 -#: stock/serializers.py:1562 templates/js/translated/purchase_order.js:1129 +#: build/models.py:331 build/serializers.py:349 build/serializers.py:1243 +#: order/serializers.py:755 stock/models.py:936 stock/serializers.py:77 +#: stock/serializers.py:1593 templates/js/translated/purchase_order.js:1112 #: templates/js/translated/stock.js:1199 msgid "Batch Code" msgstr "Batch Kode" -#: build/models.py:336 build/serializers.py:303 +#: build/models.py:335 build/serializers.py:350 msgid "Batch code for this build output" msgstr "Batch kode til dette produktions output" -#: build/models.py:339 order/models.py:315 order/serializers.py:126 -#: part/models.py:1229 part/templates/part/part_base.html:319 +#: build/models.py:338 order/models.py:322 order/serializers.py:157 +#: part/models.py:1290 part/templates/part/part_base.html:327 #: templates/js/translated/return_order.js:338 -#: templates/js/translated/sales_order.js:863 +#: templates/js/translated/sales_order.js:822 msgid "Creation Date" msgstr "Oprettelsesdato" -#: build/models.py:343 +#: build/models.py:342 msgid "Target completion date" msgstr "Projekteret afslutningsdato" -#: build/models.py:344 +#: build/models.py:343 msgid "Target date for build completion. Build will be overdue after this date." msgstr "" -#: build/models.py:347 order/models.py:526 order/models.py:2180 -#: templates/js/translated/build.js:2419 +#: build/models.py:346 order/models.py:538 order/models.py:2219 +#: templates/js/translated/build.js:2422 msgid "Completion Date" msgstr "Dato for afslutning" -#: build/models.py:353 +#: build/models.py:352 msgid "completed by" msgstr "udført af" -#: build/models.py:361 templates/js/translated/build.js:2379 +#: build/models.py:360 templates/js/translated/build.js:2382 msgid "Issued by" msgstr "Udstedt af" -#: build/models.py:362 +#: build/models.py:361 msgid "User who issued this build order" msgstr "Bruger som udstedte denne byggeordre" -#: build/models.py:370 build/templates/build/build_base.html:212 -#: build/templates/build/detail.html:122 common/models.py:165 order/api.py:142 -#: order/models.py:333 order/templates/order/order_base.html:222 -#: order/templates/order/return_order_base.html:191 -#: order/templates/order/sales_order_base.html:235 part/models.py:1246 -#: part/templates/part/part_base.html:399 +#: build/models.py:369 build/templates/build/build_base.html:213 +#: build/templates/build/detail.html:122 common/models.py:168 order/api.py:140 +#: order/models.py:340 order/templates/order/order_base.html:231 +#: order/templates/order/return_order_base.html:192 +#: order/templates/order/sales_order_base.html:236 part/models.py:1307 +#: part/templates/part/part_base.html:407 #: report/templates/report/inventree_build_order_report.html:158 #: templates/InvenTree/settings/settings_staff_js.html:150 -#: templates/js/translated/build.js:2391 -#: templates/js/translated/purchase_order.js:1833 +#: templates/js/translated/build.js:2394 +#: templates/js/translated/purchase_order.js:1817 #: templates/js/translated/return_order.js:358 #: templates/js/translated/table_filters.js:551 msgid "Responsible" msgstr "Ansvarlig" -#: build/models.py:371 +#: build/models.py:370 msgid "User or group responsible for this build order" msgstr "Bruger eller gruppe ansvarlig for denne byggeordre" -#: build/models.py:376 build/templates/build/detail.html:108 +#: build/models.py:375 build/templates/build/detail.html:108 #: company/templates/company/manufacturer_part.html:107 -#: company/templates/company/supplier_part.html:194 -#: order/templates/order/order_base.html:172 -#: order/templates/order/return_order_base.html:148 -#: order/templates/order/sales_order_base.html:187 -#: part/templates/part/part_base.html:392 stock/models.py:855 -#: stock/templates/stock/item_base.html:200 -#: templates/js/translated/company.js:1019 +#: company/templates/company/supplier_part.html:195 +#: order/templates/order/order_base.html:181 +#: order/templates/order/return_order_base.html:149 +#: order/templates/order/sales_order_base.html:188 +#: part/templates/part/part_base.html:400 stock/models.py:932 +#: stock/templates/stock/item_base.html:197 +#: templates/js/translated/company.js:1020 msgid "External Link" msgstr "Ekstern link" -#: build/models.py:377 common/models.py:3273 part/models.py:1058 -#: stock/models.py:855 +#: build/models.py:376 common/models.py:3334 part/models.py:1119 +#: stock/models.py:932 msgid "Link to external URL" msgstr "Link til ekstern URL" -#: build/models.py:381 +#: build/models.py:380 msgid "Build Priority" msgstr "Bygge Prioritet" -#: build/models.py:384 +#: build/models.py:383 msgid "Priority of this build order" msgstr "Prioritet af denne byggeordre" -#: build/models.py:391 common/models.py:135 common/models.py:149 -#: order/admin.py:18 order/api.py:128 order/models.py:297 +#: build/models.py:390 common/models.py:138 common/models.py:152 +#: order/admin.py:18 order/api.py:126 order/models.py:304 #: templates/InvenTree/settings/settings_staff_js.html:146 -#: templates/js/translated/build.js:2316 -#: templates/js/translated/purchase_order.js:1780 +#: templates/js/translated/build.js:2319 +#: templates/js/translated/purchase_order.js:1764 #: templates/js/translated/return_order.js:317 -#: templates/js/translated/sales_order.js:842 +#: templates/js/translated/sales_order.js:801 #: templates/js/translated/table_filters.js:47 #: templates/project_code_data.html:6 msgid "Project Code" msgstr "" -#: build/models.py:392 +#: build/models.py:391 msgid "Project code for this build order" msgstr "" -#: build/models.py:651 build/models.py:778 +#: build/models.py:651 build/models.py:779 msgid "Failed to offload task to complete build allocations" msgstr "" @@ -1110,610 +1129,619 @@ msgstr "Bygningsordre {build} er fuldført" msgid "A build order has been completed" msgstr "En byggeordre er fuldført" -#: build/models.py:967 build/models.py:1055 +#: build/models.py:858 build/serializers.py:393 +msgid "Serial numbers must be provided for trackable parts" +msgstr "" + +#: build/models.py:969 build/models.py:1058 msgid "No build output specified" msgstr "" -#: build/models.py:970 +#: build/models.py:972 msgid "Build output is already completed" msgstr "" -#: build/models.py:973 +#: build/models.py:975 msgid "Build output does not match Build Order" msgstr "" -#: build/models.py:1059 build/serializers.py:235 build/serializers.py:284 -#: build/serializers.py:915 order/models.py:564 order/serializers.py:499 -#: order/serializers.py:665 part/serializers.py:1569 part/serializers.py:1999 -#: stock/models.py:700 stock/models.py:1520 stock/serializers.py:669 +#: build/models.py:1062 build/serializers.py:282 build/serializers.py:331 +#: build/serializers.py:959 order/models.py:586 order/serializers.py:584 +#: order/serializers.py:750 part/serializers.py:1627 part/serializers.py:2060 +#: stock/models.py:777 stock/models.py:1609 stock/serializers.py:696 msgid "Quantity must be greater than zero" msgstr "" -#: build/models.py:1064 build/serializers.py:240 +#: build/models.py:1067 build/serializers.py:287 msgid "Quantity cannot be greater than the output quantity" msgstr "" -#: build/models.py:1124 build/serializers.py:563 +#: build/models.py:1127 build/serializers.py:607 #, python-brace-format msgid "Build output {serial} has not passed all required tests" msgstr "" -#: build/models.py:1465 +#: build/models.py:1482 msgid "Build Order Line Item" msgstr "" -#: build/models.py:1490 +#: build/models.py:1507 msgid "Build object" msgstr "" -#: build/models.py:1504 build/models.py:1760 build/serializers.py:222 -#: build/serializers.py:269 build/serializers.py:1295 -#: build/templates/build/build_base.html:110 -#: build/templates/build/detail.html:34 common/models.py:2579 -#: order/models.py:1356 order/models.py:2041 order/serializers.py:1460 +#: build/models.py:1521 build/models.py:1787 build/serializers.py:269 +#: build/serializers.py:316 build/serializers.py:1349 +#: build/templates/build/build_base.html:111 +#: build/templates/build/detail.html:34 common/models.py:2643 +#: order/models.py:1373 order/models.py:2074 order/serializers.py:1586 #: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:413 -#: part/forms.py:48 part/models.py:3284 part/models.py:4253 -#: part/templates/part/part_pricing.html:16 +#: part/forms.py:48 part/models.py:3335 part/models.py:4310 +#: part/serializers.py:265 part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_bill_of_materials_report.html:138 #: report/templates/report/inventree_build_order_report.html:113 #: report/templates/report/inventree_purchase_order_report.html:29 #: report/templates/report/inventree_sales_order_report.html:29 +#: report/templates/report/inventree_sales_order_shipment_report.html:47 +#: report/templates/report/inventree_sales_order_shipment_report.html:49 #: report/templates/report/inventree_stock_location_report.html:104 #: report/templates/report/inventree_test_report.html:90 -#: report/templates/report/inventree_test_report.html:169 stock/admin.py:159 -#: stock/serializers.py:127 stock/serializers.py:167 stock/serializers.py:660 -#: stock/templates/stock/item_base.html:287 -#: stock/templates/stock/item_base.html:295 -#: stock/templates/stock/item_base.html:342 +#: report/templates/report/inventree_test_report.html:169 stock/admin.py:160 +#: stock/serializers.py:128 stock/serializers.py:168 stock/serializers.py:687 +#: stock/templates/stock/item_base.html:284 +#: stock/templates/stock/item_base.html:292 +#: stock/templates/stock/item_base.html:339 #: templates/email/build_order_completed.html:18 #: templates/js/translated/barcode.js:579 templates/js/translated/bom.js:771 -#: templates/js/translated/bom.js:981 templates/js/translated/build.js:522 -#: templates/js/translated/build.js:737 templates/js/translated/build.js:1542 -#: templates/js/translated/build.js:1919 templates/js/translated/build.js:2529 -#: templates/js/translated/company.js:1818 -#: templates/js/translated/model_renderers.js:237 +#: templates/js/translated/bom.js:981 templates/js/translated/build.js:525 +#: templates/js/translated/build.js:740 templates/js/translated/build.js:1545 +#: templates/js/translated/build.js:1922 templates/js/translated/build.js:2536 +#: templates/js/translated/company.js:1819 +#: templates/js/translated/model_renderers.js:240 #: templates/js/translated/order.js:329 templates/js/translated/part.js:968 -#: templates/js/translated/part.js:1818 templates/js/translated/part.js:3360 +#: templates/js/translated/part.js:1818 templates/js/translated/part.js:3376 #: templates/js/translated/pricing.js:381 #: templates/js/translated/pricing.js:474 #: templates/js/translated/pricing.js:522 #: templates/js/translated/pricing.js:616 -#: templates/js/translated/purchase_order.js:754 -#: templates/js/translated/purchase_order.js:1922 -#: templates/js/translated/purchase_order.js:2141 -#: templates/js/translated/sales_order.js:317 -#: templates/js/translated/sales_order.js:1235 -#: templates/js/translated/sales_order.js:1554 -#: templates/js/translated/sales_order.js:1644 -#: templates/js/translated/sales_order.js:1734 -#: templates/js/translated/sales_order.js:1860 +#: templates/js/translated/purchase_order.js:737 +#: templates/js/translated/purchase_order.js:1906 +#: templates/js/translated/purchase_order.js:2125 +#: templates/js/translated/sales_order.js:1201 +#: templates/js/translated/sales_order.js:1520 +#: templates/js/translated/sales_order.js:1625 +#: templates/js/translated/sales_order.js:1715 +#: templates/js/translated/sales_order.js:1841 #: templates/js/translated/stock.js:570 templates/js/translated/stock.js:708 -#: templates/js/translated/stock.js:879 templates/js/translated/stock.js:3105 -#: templates/js/translated/stock.js:3188 +#: templates/js/translated/stock.js:879 templates/js/translated/stock.js:3106 +#: templates/js/translated/stock.js:3189 msgid "Quantity" msgstr "" -#: build/models.py:1505 +#: build/models.py:1522 msgid "Required quantity for build order" msgstr "" -#: build/models.py:1585 +#: build/models.py:1602 msgid "Build item must specify a build output, as master part is marked as trackable" msgstr "" -#: build/models.py:1594 +#: build/models.py:1611 #, python-brace-format msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgstr "" -#: build/models.py:1604 order/models.py:1992 +#: build/models.py:1628 order/models.py:2025 msgid "Stock item is over-allocated" msgstr "" -#: build/models.py:1610 order/models.py:1995 +#: build/models.py:1634 order/models.py:2028 msgid "Allocation quantity must be greater than zero" msgstr "" -#: build/models.py:1616 +#: build/models.py:1640 msgid "Quantity must be 1 for serialized stock" msgstr "" -#: build/models.py:1675 +#: build/models.py:1699 msgid "Selected stock item does not match BOM line" msgstr "" -#: build/models.py:1747 build/serializers.py:895 order/serializers.py:1297 -#: order/serializers.py:1318 stock/models.py:376 stock/serializers.py:93 -#: stock/serializers.py:763 stock/serializers.py:1281 stock/serializers.py:1393 -#: stock/templates/stock/item_base.html:10 -#: stock/templates/stock/item_base.html:23 -#: stock/templates/stock/item_base.html:194 -#: templates/js/translated/build.js:1918 -#: templates/js/translated/sales_order.js:301 -#: templates/js/translated/sales_order.js:1234 -#: templates/js/translated/sales_order.js:1535 -#: templates/js/translated/sales_order.js:1540 -#: templates/js/translated/sales_order.js:1641 -#: templates/js/translated/sales_order.js:1728 +#: build/models.py:1774 build/serializers.py:939 order/serializers.py:1423 +#: order/serializers.py:1444 +#: report/templates/report/inventree_sales_order_shipment_report.html:29 +#: stock/models.py:382 stock/serializers.py:94 stock/serializers.py:794 +#: stock/serializers.py:1312 stock/serializers.py:1424 +#: stock/templates/stock/item_base.html:11 +#: stock/templates/stock/item_base.html:24 +#: stock/templates/stock/item_base.html:191 +#: templates/js/translated/build.js:1921 +#: templates/js/translated/sales_order.js:1200 +#: templates/js/translated/sales_order.js:1501 +#: templates/js/translated/sales_order.js:1506 +#: templates/js/translated/sales_order.js:1622 +#: templates/js/translated/sales_order.js:1709 #: templates/js/translated/stock.js:683 templates/js/translated/stock.js:849 -#: templates/js/translated/stock.js:3061 +#: templates/js/translated/stock.js:3062 msgid "Stock Item" msgstr "" -#: build/models.py:1748 +#: build/models.py:1775 msgid "Source stock item" msgstr "" -#: build/models.py:1761 +#: build/models.py:1788 msgid "Stock quantity to allocate to build" msgstr "" -#: build/models.py:1769 +#: build/models.py:1796 msgid "Install into" msgstr "" -#: build/models.py:1770 +#: build/models.py:1797 msgid "Destination stock item" msgstr "" -#: build/serializers.py:91 +#: build/serializers.py:108 msgid "Build Level" msgstr "" -#: build/serializers.py:99 build/serializers.py:1190 build/serializers.py:1279 -#: part/admin.py:41 part/admin.py:408 part/models.py:4102 part/stocktake.py:219 -#: stock/admin.py:156 +#: build/serializers.py:116 build/serializers.py:1235 build/serializers.py:1331 +#: part/admin.py:41 part/admin.py:408 part/models.py:4160 part/stocktake.py:219 +#: stock/admin.py:157 msgid "Part Name" msgstr "" -#: build/serializers.py:111 +#: build/serializers.py:128 msgid "Project Code Label" msgstr "" -#: build/serializers.py:172 build/serializers.py:924 -#: templates/js/translated/build.js:1042 templates/js/translated/build.js:1495 +#: build/serializers.py:134 +msgid "Create Child Builds" +msgstr "" + +#: build/serializers.py:135 +msgid "Automatically generate child build orders" +msgstr "" + +#: build/serializers.py:219 build/serializers.py:968 +#: templates/js/translated/build.js:1045 templates/js/translated/build.js:1498 msgid "Build Output" msgstr "" -#: build/serializers.py:184 +#: build/serializers.py:231 msgid "Build output does not match the parent build" msgstr "" -#: build/serializers.py:188 +#: build/serializers.py:235 msgid "Output part does not match BuildOrder part" msgstr "" -#: build/serializers.py:192 +#: build/serializers.py:239 msgid "This build output has already been completed" msgstr "" -#: build/serializers.py:203 +#: build/serializers.py:250 msgid "This build output is not fully allocated" msgstr "" -#: build/serializers.py:223 build/serializers.py:270 +#: build/serializers.py:270 build/serializers.py:317 msgid "Enter quantity for build output" msgstr "" -#: build/serializers.py:291 +#: build/serializers.py:338 msgid "Integer quantity required for trackable parts" msgstr "" -#: build/serializers.py:294 +#: build/serializers.py:341 msgid "Integer quantity required, as the bill of materials contains trackable parts" msgstr "" -#: build/serializers.py:309 order/serializers.py:678 order/serializers.py:1464 -#: stock/serializers.py:680 templates/js/translated/purchase_order.js:1154 +#: build/serializers.py:356 order/serializers.py:763 order/serializers.py:1590 +#: stock/serializers.py:707 templates/js/translated/purchase_order.js:1137 #: templates/js/translated/stock.js:373 templates/js/translated/stock.js:571 msgid "Serial Numbers" msgstr "" -#: build/serializers.py:310 +#: build/serializers.py:357 msgid "Enter serial numbers for build outputs" msgstr "" -#: build/serializers.py:315 build/serializers.py:456 build/serializers.py:528 -#: order/serializers.py:654 order/serializers.py:778 order/serializers.py:1781 -#: part/serializers.py:1212 stock/serializers.py:102 stock/serializers.py:691 -#: stock/serializers.py:851 stock/serializers.py:977 stock/serializers.py:1425 -#: stock/serializers.py:1681 stock/templates/stock/item_base.html:394 +#: build/serializers.py:362 build/serializers.py:500 build/serializers.py:572 +#: order/serializers.py:739 order/serializers.py:880 order/serializers.py:1933 +#: part/serializers.py:1265 stock/serializers.py:103 stock/serializers.py:718 +#: stock/serializers.py:882 stock/serializers.py:1008 stock/serializers.py:1456 +#: stock/serializers.py:1712 stock/templates/stock/item_base.html:391 #: templates/js/translated/barcode.js:578 -#: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1032 -#: templates/js/translated/build.js:1174 templates/js/translated/build.js:2544 -#: templates/js/translated/purchase_order.js:1210 -#: templates/js/translated/purchase_order.js:1320 -#: templates/js/translated/sales_order.js:1547 -#: templates/js/translated/sales_order.js:1655 -#: templates/js/translated/sales_order.js:1663 -#: templates/js/translated/sales_order.js:1742 +#: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1035 +#: templates/js/translated/build.js:1177 templates/js/translated/build.js:2551 +#: templates/js/translated/purchase_order.js:1193 +#: templates/js/translated/purchase_order.js:1303 +#: templates/js/translated/sales_order.js:1513 +#: templates/js/translated/sales_order.js:1636 +#: templates/js/translated/sales_order.js:1644 +#: templates/js/translated/sales_order.js:1723 #: templates/js/translated/stock.js:684 templates/js/translated/stock.js:850 -#: templates/js/translated/stock.js:1067 templates/js/translated/stock.js:2286 -#: templates/js/translated/stock.js:2955 +#: templates/js/translated/stock.js:1067 templates/js/translated/stock.js:2287 +#: templates/js/translated/stock.js:2956 msgid "Location" msgstr "" -#: build/serializers.py:316 +#: build/serializers.py:363 msgid "Stock location for build output" msgstr "" -#: build/serializers.py:330 +#: build/serializers.py:377 msgid "Auto Allocate Serial Numbers" msgstr "" -#: build/serializers.py:331 +#: build/serializers.py:378 msgid "Automatically allocate required items with matching serial numbers" msgstr "" -#: build/serializers.py:346 -msgid "Serial numbers must be provided for trackable parts" -msgstr "" - -#: build/serializers.py:371 stock/api.py:1031 +#: build/serializers.py:415 order/serializers.py:858 stock/api.py:1017 +#: stock/models.py:1632 msgid "The following serial numbers already exist or are invalid" msgstr "" -#: build/serializers.py:418 build/serializers.py:480 build/serializers.py:569 +#: build/serializers.py:462 build/serializers.py:524 build/serializers.py:613 msgid "A list of build outputs must be provided" msgstr "" -#: build/serializers.py:457 +#: build/serializers.py:501 msgid "Stock location for scrapped outputs" msgstr "" -#: build/serializers.py:463 +#: build/serializers.py:507 msgid "Discard Allocations" msgstr "" -#: build/serializers.py:464 +#: build/serializers.py:508 msgid "Discard any stock allocations for scrapped outputs" msgstr "" -#: build/serializers.py:469 +#: build/serializers.py:513 msgid "Reason for scrapping build output(s)" msgstr "" -#: build/serializers.py:529 +#: build/serializers.py:573 msgid "Location for completed build outputs" msgstr "" -#: build/serializers.py:535 build/templates/build/build_base.html:159 -#: build/templates/build/detail.html:62 order/models.py:476 -#: order/models.py:1002 order/models.py:2159 order/serializers.py:686 -#: stock/admin.py:164 stock/serializers.py:1028 stock/serializers.py:1569 -#: stock/templates/stock/item_base.html:427 -#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2363 -#: templates/js/translated/purchase_order.js:1371 -#: templates/js/translated/purchase_order.js:1792 +#: build/serializers.py:579 build/templates/build/build_base.html:160 +#: build/templates/build/detail.html:62 order/models.py:488 +#: order/models.py:1029 order/models.py:2198 order/serializers.py:771 +#: stock/admin.py:165 stock/serializers.py:581 stock/serializers.py:1059 +#: stock/serializers.py:1600 stock/templates/stock/item_base.html:424 +#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2366 +#: templates/js/translated/purchase_order.js:1354 +#: templates/js/translated/purchase_order.js:1776 #: templates/js/translated/return_order.js:330 -#: templates/js/translated/sales_order.js:855 -#: templates/js/translated/stock.js:2261 templates/js/translated/stock.js:3079 -#: templates/js/translated/stock.js:3204 +#: templates/js/translated/sales_order.js:814 +#: templates/js/translated/stock.js:2262 templates/js/translated/stock.js:3080 +#: templates/js/translated/stock.js:3205 msgid "Status" msgstr "" -#: build/serializers.py:541 +#: build/serializers.py:585 msgid "Accept Incomplete Allocation" msgstr "" -#: build/serializers.py:542 +#: build/serializers.py:586 msgid "Complete outputs if stock has not been fully allocated" msgstr "" -#: build/serializers.py:654 +#: build/serializers.py:698 msgid "Consume Allocated Stock" msgstr "" -#: build/serializers.py:655 +#: build/serializers.py:699 msgid "Consume any stock which has already been allocated to this build" msgstr "" -#: build/serializers.py:661 +#: build/serializers.py:705 msgid "Remove Incomplete Outputs" msgstr "" -#: build/serializers.py:662 +#: build/serializers.py:706 msgid "Delete any build outputs which have not been completed" msgstr "" -#: build/serializers.py:689 +#: build/serializers.py:733 msgid "Not permitted" msgstr "Ikke tilladt" -#: build/serializers.py:690 +#: build/serializers.py:734 msgid "Accept as consumed by this build order" msgstr "Accepter som forbrugt af denne byggeordre" -#: build/serializers.py:691 +#: build/serializers.py:735 msgid "Deallocate before completing this build order" msgstr "" -#: build/serializers.py:721 +#: build/serializers.py:765 msgid "Overallocated Stock" msgstr "" -#: build/serializers.py:723 +#: build/serializers.py:767 msgid "How do you want to handle extra stock items assigned to the build order" msgstr "" -#: build/serializers.py:733 +#: build/serializers.py:777 msgid "Some stock items have been overallocated" msgstr "" -#: build/serializers.py:738 +#: build/serializers.py:782 msgid "Accept Unallocated" msgstr "Accepter Ikke tildelt" -#: build/serializers.py:739 +#: build/serializers.py:783 msgid "Accept that stock items have not been fully allocated to this build order" msgstr "Accepter at lagervarer ikke er fuldt tildelt til denne byggeordre" -#: build/serializers.py:749 templates/js/translated/build.js:316 +#: build/serializers.py:793 templates/js/translated/build.js:319 msgid "Required stock has not been fully allocated" msgstr "" -#: build/serializers.py:754 order/serializers.py:345 order/serializers.py:1365 +#: build/serializers.py:798 order/serializers.py:430 order/serializers.py:1491 msgid "Accept Incomplete" msgstr "Accepter ufuldført" -#: build/serializers.py:755 +#: build/serializers.py:799 msgid "Accept that the required number of build outputs have not been completed" msgstr "" -#: build/serializers.py:765 templates/js/translated/build.js:320 +#: build/serializers.py:809 templates/js/translated/build.js:323 msgid "Required build quantity has not been completed" msgstr "" -#: build/serializers.py:774 +#: build/serializers.py:818 msgid "Build order has open child build orders" msgstr "" -#: build/serializers.py:777 +#: build/serializers.py:821 msgid "Build order must be in production state" msgstr "" -#: build/serializers.py:780 templates/js/translated/build.js:304 +#: build/serializers.py:824 templates/js/translated/build.js:307 msgid "Build order has incomplete outputs" msgstr "" -#: build/serializers.py:818 +#: build/serializers.py:862 msgid "Build Line" msgstr "Bygge linje" -#: build/serializers.py:828 +#: build/serializers.py:872 msgid "Build output" msgstr "" -#: build/serializers.py:836 +#: build/serializers.py:880 msgid "Build output must point to the same build" msgstr "" -#: build/serializers.py:872 +#: build/serializers.py:916 msgid "Build Line Item" msgstr "" -#: build/serializers.py:886 +#: build/serializers.py:930 msgid "bom_item.part must point to the same part as the build order" msgstr "" -#: build/serializers.py:901 stock/serializers.py:1294 +#: build/serializers.py:945 stock/serializers.py:1325 msgid "Item must be in stock" msgstr "" -#: build/serializers.py:949 order/serializers.py:1351 +#: build/serializers.py:993 order/serializers.py:1477 #, python-brace-format msgid "Available quantity ({q}) exceeded" msgstr "" -#: build/serializers.py:955 +#: build/serializers.py:999 msgid "Build output must be specified for allocation of tracked parts" msgstr "" -#: build/serializers.py:962 +#: build/serializers.py:1006 msgid "Build output cannot be specified for allocation of untracked parts" msgstr "" -#: build/serializers.py:986 order/serializers.py:1610 +#: build/serializers.py:1030 order/serializers.py:1750 msgid "Allocation items must be provided" msgstr "" -#: build/serializers.py:1049 +#: build/serializers.py:1093 msgid "Stock location where parts are to be sourced (leave blank to take from any location)" msgstr "" -#: build/serializers.py:1057 +#: build/serializers.py:1101 msgid "Exclude Location" msgstr "" -#: build/serializers.py:1058 +#: build/serializers.py:1102 msgid "Exclude stock items from this selected location" msgstr "" -#: build/serializers.py:1063 +#: build/serializers.py:1107 msgid "Interchangeable Stock" msgstr "" -#: build/serializers.py:1064 +#: build/serializers.py:1108 msgid "Stock items in multiple locations can be used interchangeably" msgstr "" -#: build/serializers.py:1069 +#: build/serializers.py:1113 msgid "Substitute Stock" msgstr "" -#: build/serializers.py:1070 +#: build/serializers.py:1114 msgid "Allow allocation of substitute parts" msgstr "" -#: build/serializers.py:1075 +#: build/serializers.py:1119 msgid "Optional Items" msgstr "" -#: build/serializers.py:1076 +#: build/serializers.py:1120 msgid "Allocate optional BOM items to build order" msgstr "" -#: build/serializers.py:1098 +#: build/serializers.py:1143 msgid "Failed to start auto-allocation task" msgstr "" -#: build/serializers.py:1181 +#: build/serializers.py:1226 stock/serializers.py:585 msgid "Supplier Part Number" msgstr "" -#: build/serializers.py:1182 company/models.py:506 +#: build/serializers.py:1227 company/models.py:503 stock/serializers.py:591 msgid "Manufacturer Part Number" msgstr "" -#: build/serializers.py:1183 stock/admin.py:53 stock/admin.py:175 -#: stock/serializers.py:457 +#: build/serializers.py:1228 stock/admin.py:53 stock/admin.py:176 +#: stock/serializers.py:467 msgid "Location Name" msgstr "" -#: build/serializers.py:1184 +#: build/serializers.py:1229 build/serializers.py:1327 msgid "Build Reference" msgstr "" -#: build/serializers.py:1185 +#: build/serializers.py:1230 msgid "BOM Reference" msgstr "" -#: build/serializers.py:1186 company/models.py:852 -#: company/templates/company/supplier_part.html:160 order/serializers.py:690 -#: stock/admin.py:228 stock/models.py:818 stock/serializers.py:1579 -#: stock/templates/stock/item_base.html:240 -#: templates/js/translated/company.js:1646 -#: templates/js/translated/purchase_order.js:1169 -#: templates/js/translated/purchase_order.js:1332 +#: build/serializers.py:1231 company/models.py:849 +#: company/templates/company/supplier_part.html:161 order/serializers.py:775 +#: stock/admin.py:229 stock/models.py:895 stock/serializers.py:1610 +#: stock/templates/stock/item_base.html:237 +#: templates/js/translated/company.js:1647 +#: templates/js/translated/purchase_order.js:1152 +#: templates/js/translated/purchase_order.js:1315 #: templates/js/translated/stock.js:1214 templates/js/translated/stock.js:1246 -#: templates/js/translated/stock.js:2509 +#: templates/js/translated/stock.js:2510 msgid "Packaging" msgstr "" -#: build/serializers.py:1189 part/admin.py:39 part/admin.py:398 -#: part/models.py:4101 part/stocktake.py:218 stock/admin.py:152 +#: build/serializers.py:1234 part/admin.py:39 part/admin.py:398 +#: part/models.py:4159 part/stocktake.py:218 stock/admin.py:153 msgid "Part ID" msgstr "" -#: build/serializers.py:1191 build/serializers.py:1280 part/admin.py:402 -#: part/models.py:4103 +#: build/serializers.py:1236 build/serializers.py:1332 part/admin.py:402 +#: part/models.py:4161 msgid "Part IPN" msgstr "" -#: build/serializers.py:1192 build/serializers.py:1282 part/admin.py:45 +#: build/serializers.py:1237 build/serializers.py:1334 part/admin.py:45 #: part/stocktake.py:220 msgid "Part Description" msgstr "" -#: build/serializers.py:1195 +#: build/serializers.py:1240 msgid "BOM Part ID" msgstr "" -#: build/serializers.py:1196 +#: build/serializers.py:1241 msgid "BOM Part Name" msgstr "" -#: build/serializers.py:1199 +#: build/serializers.py:1244 #: report/templates/report/inventree_return_order_report.html:25 -#: report/templates/report/inventree_test_report.html:88 stock/models.py:845 -#: stock/serializers.py:151 stock/templates/stock/item_base.html:311 -#: templates/js/translated/build.js:520 templates/js/translated/build.js:1540 -#: templates/js/translated/build.js:2527 -#: templates/js/translated/model_renderers.js:231 +#: report/templates/report/inventree_sales_order_shipment_report.html:45 +#: report/templates/report/inventree_test_report.html:88 stock/models.py:922 +#: stock/serializers.py:152 stock/templates/stock/item_base.html:308 +#: templates/js/translated/build.js:523 templates/js/translated/build.js:1543 +#: templates/js/translated/build.js:2534 +#: templates/js/translated/model_renderers.js:234 #: templates/js/translated/return_order.js:539 #: templates/js/translated/return_order.js:722 -#: templates/js/translated/sales_order.js:315 -#: templates/js/translated/sales_order.js:1647 -#: templates/js/translated/sales_order.js:1732 +#: templates/js/translated/sales_order.js:1628 +#: templates/js/translated/sales_order.js:1713 #: templates/js/translated/stock.js:602 msgid "Serial Number" msgstr "" -#: build/serializers.py:1212 stock/serializers.py:593 -#: templates/js/translated/build.js:1017 templates/js/translated/build.js:1164 -#: templates/js/translated/build.js:2516 +#: build/serializers.py:1257 stock/serializers.py:620 +#: templates/js/translated/build.js:1020 templates/js/translated/build.js:1167 +#: templates/js/translated/build.js:2523 msgid "Allocated Quantity" msgstr "" -#: build/serializers.py:1213 stock/templates/stock/item_base.html:340 +#: build/serializers.py:1258 stock/templates/stock/item_base.html:337 msgid "Available Quantity" msgstr "" -#: build/serializers.py:1283 +#: build/serializers.py:1335 msgid "Part Category ID" msgstr "" -#: build/serializers.py:1284 +#: build/serializers.py:1336 msgid "Part Category Name" msgstr "" -#: build/serializers.py:1291 common/models.py:1513 part/admin.py:113 -#: part/models.py:1166 templates/js/translated/table_filters.js:150 +#: build/serializers.py:1345 common/models.py:1582 part/admin.py:113 +#: part/models.py:1227 templates/js/translated/build.js:2738 +#: templates/js/translated/table_filters.js:150 #: templates/js/translated/table_filters.js:230 #: templates/js/translated/table_filters.js:783 msgid "Trackable" msgstr "" -#: build/serializers.py:1292 +#: build/serializers.py:1346 msgid "Inherited" msgstr "" -#: build/serializers.py:1293 part/models.py:4313 +#: build/serializers.py:1347 part/models.py:4370 #: part/templates/part/upload_bom.html:56 templates/js/translated/bom.js:1046 -#: templates/js/translated/build.js:2711 +#: templates/js/translated/build.js:2720 msgid "Allow Variants" msgstr "" -#: build/serializers.py:1297 part/models.py:4110 part/models.py:4584 +#: build/serializers.py:1351 part/models.py:4168 part/models.py:4646 #: stock/api.py:794 msgid "BOM Item" msgstr "" -#: build/serializers.py:1306 build/templates/build/detail.html:236 +#: build/serializers.py:1370 build/templates/build/detail.html:236 #: build/templates/build/sidebar.html:16 templates/js/translated/index.js:130 msgid "Allocated Stock" msgstr "" -#: build/serializers.py:1311 order/serializers.py:1175 part/admin.py:132 -#: part/bom.py:181 part/serializers.py:899 part/serializers.py:1602 -#: part/templates/part/part_base.html:210 templates/js/translated/bom.js:1208 -#: templates/js/translated/build.js:2804 templates/js/translated/part.js:712 +#: build/serializers.py:1375 order/serializers.py:1209 part/admin.py:132 +#: part/bom.py:186 part/serializers.py:951 part/serializers.py:1660 +#: part/templates/part/part_base.html:211 templates/js/translated/bom.js:1208 +#: templates/js/translated/build.js:2822 templates/js/translated/part.js:712 #: templates/js/translated/part.js:2155 #: templates/js/translated/table_filters.js:177 msgid "On Order" msgstr "" -#: build/serializers.py:1316 order/serializers.py:1176 part/serializers.py:1604 -#: templates/js/translated/build.js:2808 +#: build/serializers.py:1380 order/serializers.py:1210 part/serializers.py:1662 +#: templates/js/translated/build.js:2826 #: templates/js/translated/table_filters.js:367 msgid "In Production" msgstr "" -#: build/serializers.py:1321 part/bom.py:180 part/serializers.py:1629 -#: part/templates/part/part_base.html:192 -#: templates/js/translated/sales_order.js:1929 -msgid "Available Stock" -msgstr "" - -#: build/serializers.py:1325 -msgid "Available Substitute Stock" -msgstr "" - -#: build/serializers.py:1326 -msgid "Available Variant Stock" -msgstr "" - -#: build/serializers.py:1327 -msgid "Total Available Stock" -msgstr "" - -#: build/serializers.py:1328 part/serializers.py:906 +#: build/serializers.py:1384 part/serializers.py:958 msgid "External Stock" msgstr "" -#: build/status_codes.py:11 generic/states/tests.py:17 order/status_codes.py:12 -#: order/status_codes.py:42 order/status_codes.py:74 order/status_codes.py:98 +#: build/serializers.py:1385 part/bom.py:185 part/serializers.py:1687 +#: part/templates/part/part_base.html:193 +#: templates/js/translated/sales_order.js:1910 +msgid "Available Stock" +msgstr "" + +#: build/serializers.py:1386 +msgid "Available Substitute Stock" +msgstr "" + +#: build/serializers.py:1387 +msgid "Available Variant Stock" +msgstr "" + +#: build/status_codes.py:11 generic/states/tests.py:21 +#: generic/states/tests.py:131 order/status_codes.py:12 +#: order/status_codes.py:44 order/status_codes.py:76 order/status_codes.py:102 #: templates/js/translated/table_filters.js:601 msgid "Pending" msgstr "Afventende" @@ -1722,21 +1750,21 @@ msgstr "Afventende" msgid "Production" msgstr "Produktion" -#: build/status_codes.py:13 order/status_codes.py:14 order/status_codes.py:49 -#: order/status_codes.py:79 +#: build/status_codes.py:13 order/status_codes.py:14 order/status_codes.py:51 +#: order/status_codes.py:81 msgid "On Hold" msgstr "" -#: build/status_codes.py:14 order/status_codes.py:16 order/status_codes.py:51 -#: order/status_codes.py:82 +#: build/status_codes.py:14 order/status_codes.py:16 order/status_codes.py:53 +#: order/status_codes.py:84 msgid "Cancelled" msgstr "Annulleret" -#: build/status_codes.py:15 generic/states/tests.py:19 importer/models.py:509 -#: importer/status_codes.py:19 order/status_codes.py:15 -#: order/status_codes.py:50 order/status_codes.py:81 -#: order/templates/order/order_base.html:163 -#: order/templates/order/sales_order_base.html:168 report/models.py:443 +#: build/status_codes.py:15 generic/states/tests.py:23 importer/models.py:518 +#: importer/status_codes.py:27 order/status_codes.py:15 +#: order/status_codes.py:52 order/status_codes.py:83 +#: order/templates/order/order_base.html:172 +#: order/templates/order/sales_order_base.html:169 report/models.py:451 msgid "Complete" msgstr "Fuldført" @@ -1744,165 +1772,162 @@ msgstr "Fuldført" msgid "Stock required for build order" msgstr "" -#: build/tasks.py:201 +#: build/tasks.py:260 msgid "Overdue Build Order" msgstr "" -#: build/tasks.py:206 +#: build/tasks.py:265 #, python-brace-format msgid "Build order {bo} is now overdue" msgstr "" -#: build/templates/build/build_base.html:18 +#: build/templates/build/build_base.html:19 msgid "Part thumbnail" msgstr "" -#: build/templates/build/build_base.html:38 -#: company/templates/company/supplier_part.html:35 -#: order/templates/order/order_base.html:29 -#: order/templates/order/return_order_base.html:38 -#: order/templates/order/sales_order_base.html:38 -#: part/templates/part/part_base.html:41 -#: stock/templates/stock/item_base.html:40 -#: stock/templates/stock/location.html:52 +#: build/templates/build/build_base.html:39 +#: company/templates/company/supplier_part.html:36 +#: order/templates/order/order_base.html:30 +#: order/templates/order/return_order_base.html:39 +#: order/templates/order/sales_order_base.html:39 +#: part/templates/part/part_base.html:42 +#: stock/templates/stock/item_base.html:41 +#: stock/templates/stock/location.html:53 #: templates/js/translated/filters.js:338 msgid "Barcode actions" msgstr "" -#: build/templates/build/build_base.html:42 -#: company/templates/company/supplier_part.html:39 -#: order/templates/order/order_base.html:33 -#: order/templates/order/return_order_base.html:42 -#: order/templates/order/sales_order_base.html:42 -#: part/templates/part/part_base.html:44 -#: stock/templates/stock/item_base.html:44 -#: stock/templates/stock/location.html:54 templates/qr_button.html:1 +#: build/templates/build/build_base.html:43 +#: company/templates/company/supplier_part.html:40 +#: order/templates/order/order_base.html:34 +#: order/templates/order/return_order_base.html:43 +#: order/templates/order/sales_order_base.html:43 +#: part/templates/part/part_base.html:45 +#: stock/templates/stock/item_base.html:45 +#: stock/templates/stock/location.html:55 templates/qr_button.html:1 msgid "Show QR Code" msgstr "Vis QR-kode" -#: build/templates/build/build_base.html:45 -#: company/templates/company/supplier_part.html:41 -#: order/templates/order/order_base.html:36 -#: order/templates/order/return_order_base.html:45 -#: order/templates/order/sales_order_base.html:45 -#: part/templates/part/part_base.html:47 -#: stock/templates/stock/item_base.html:47 -#: stock/templates/stock/location.html:56 +#: build/templates/build/build_base.html:46 +#: company/templates/company/supplier_part.html:42 +#: order/templates/order/order_base.html:37 +#: order/templates/order/return_order_base.html:46 +#: order/templates/order/sales_order_base.html:46 +#: part/templates/part/part_base.html:48 +#: stock/templates/stock/item_base.html:48 +#: stock/templates/stock/location.html:57 #: templates/js/translated/barcode.js:527 #: templates/js/translated/barcode.js:532 msgid "Unlink Barcode" msgstr "" -#: build/templates/build/build_base.html:47 -#: company/templates/company/supplier_part.html:43 -#: order/templates/order/order_base.html:38 -#: order/templates/order/return_order_base.html:47 -#: order/templates/order/sales_order_base.html:47 -#: part/templates/part/part_base.html:49 -#: stock/templates/stock/item_base.html:49 -#: stock/templates/stock/location.html:58 +#: build/templates/build/build_base.html:48 +#: company/templates/company/supplier_part.html:44 +#: order/templates/order/order_base.html:39 +#: order/templates/order/return_order_base.html:48 +#: order/templates/order/sales_order_base.html:48 +#: part/templates/part/part_base.html:50 +#: stock/templates/stock/item_base.html:50 +#: stock/templates/stock/location.html:59 msgid "Link Barcode" msgstr "" -#: build/templates/build/build_base.html:56 -#: order/templates/order/order_base.html:46 -#: order/templates/order/return_order_base.html:55 -#: order/templates/order/sales_order_base.html:55 +#: build/templates/build/build_base.html:57 +#: order/templates/order/order_base.html:47 +#: order/templates/order/return_order_base.html:56 +#: order/templates/order/sales_order_base.html:56 msgid "Print actions" msgstr "" -#: build/templates/build/build_base.html:60 +#: build/templates/build/build_base.html:61 msgid "Print build order report" msgstr "" -#: build/templates/build/build_base.html:67 +#: build/templates/build/build_base.html:68 msgid "Build actions" msgstr "" -#: build/templates/build/build_base.html:71 +#: build/templates/build/build_base.html:72 msgid "Edit Build" msgstr "" -#: build/templates/build/build_base.html:73 +#: build/templates/build/build_base.html:74 msgid "Duplicate Build" msgstr "" -#: build/templates/build/build_base.html:76 +#: build/templates/build/build_base.html:77 msgid "Hold Build" msgstr "" -#: build/templates/build/build_base.html:79 +#: build/templates/build/build_base.html:80 msgid "Cancel Build" msgstr "" -#: build/templates/build/build_base.html:82 +#: build/templates/build/build_base.html:83 msgid "Delete Build" msgstr "" -#: build/templates/build/build_base.html:87 -msgid "Isueue Build" -msgstr "" - #: build/templates/build/build_base.html:88 +#: build/templates/build/build_base.html:89 msgid "Issue Build" msgstr "" -#: build/templates/build/build_base.html:91 #: build/templates/build/build_base.html:92 +#: build/templates/build/build_base.html:93 msgid "Complete Build" msgstr "" -#: build/templates/build/build_base.html:115 +#: build/templates/build/build_base.html:116 msgid "Build Description" msgstr "" -#: build/templates/build/build_base.html:125 +#: build/templates/build/build_base.html:126 msgid "No build outputs have been created for this build order" msgstr "" -#: build/templates/build/build_base.html:132 +#: build/templates/build/build_base.html:133 msgid "Build Order is ready to mark as completed" msgstr "" -#: build/templates/build/build_base.html:137 +#: build/templates/build/build_base.html:138 msgid "Build Order cannot be completed as outstanding outputs remain" msgstr "" -#: build/templates/build/build_base.html:142 +#: build/templates/build/build_base.html:143 msgid "Required build quantity has not yet been completed" msgstr "" -#: build/templates/build/build_base.html:147 +#: build/templates/build/build_base.html:148 msgid "Stock has not been fully allocated to this Build Order" msgstr "" -#: build/templates/build/build_base.html:168 -#: build/templates/build/detail.html:138 order/models.py:308 -#: order/models.py:1391 order/serializers.py:174 -#: order/templates/order/order_base.html:191 -#: order/templates/order/return_order_base.html:167 -#: order/templates/order/sales_order_base.html:199 +#: build/templates/build/build_base.html:169 +#: build/templates/build/detail.html:138 order/models.py:315 +#: order/models.py:1408 order/serializers.py:254 +#: order/templates/order/order_base.html:200 +#: order/templates/order/return_order_base.html:168 +#: order/templates/order/sales_order_base.html:200 #: report/templates/report/inventree_build_order_report.html:125 -#: templates/js/translated/build.js:2411 templates/js/translated/part.js:1837 -#: templates/js/translated/purchase_order.js:1809 -#: templates/js/translated/purchase_order.js:2217 +#: templates/js/translated/build.js:2414 templates/js/translated/part.js:1837 +#: templates/js/translated/purchase_order.js:1793 +#: templates/js/translated/purchase_order.js:2201 #: templates/js/translated/return_order.js:346 #: templates/js/translated/return_order.js:749 -#: templates/js/translated/sales_order.js:871 -#: templates/js/translated/sales_order.js:1903 +#: templates/js/translated/sales_order.js:830 +#: templates/js/translated/sales_order.js:1884 msgid "Target Date" msgstr "" -#: build/templates/build/build_base.html:173 +#: build/templates/build/build_base.html:174 #, python-format msgid "This build was due on %(target)s" msgstr "" -#: build/templates/build/build_base.html:173 -#: build/templates/build/build_base.html:230 -#: order/templates/order/order_base.html:127 -#: order/templates/order/return_order_base.html:120 -#: order/templates/order/sales_order_base.html:129 +#: build/templates/build/build_base.html:174 +#: build/templates/build/build_base.html:231 +#: order/templates/order/order_base.html:128 +#: order/templates/order/return_order_base.html:121 +#: order/templates/order/sales_order_base.html:130 #: templates/js/translated/table_filters.js:97 #: templates/js/translated/table_filters.js:545 #: templates/js/translated/table_filters.js:629 @@ -1910,49 +1935,50 @@ msgstr "" msgid "Overdue" msgstr "" -#: build/templates/build/build_base.html:185 +#: build/templates/build/build_base.html:186 #: build/templates/build/detail.html:67 build/templates/build/sidebar.html:13 msgid "Completed Outputs" msgstr "" -#: build/templates/build/build_base.html:198 -#: build/templates/build/detail.html:101 order/api.py:1406 order/models.py:892 -#: order/models.py:1650 order/models.py:1765 order/models.py:1924 -#: order/templates/order/sales_order_base.html:9 -#: order/templates/order/sales_order_base.html:28 +#: build/templates/build/build_base.html:199 +#: build/templates/build/detail.html:101 order/api.py:1528 order/models.py:914 +#: order/models.py:1666 order/models.py:1794 order/models.py:1957 +#: order/templates/order/sales_order_base.html:10 +#: order/templates/order/sales_order_base.html:29 #: report/templates/report/inventree_build_order_report.html:135 #: report/templates/report/inventree_sales_order_report.html:14 -#: stock/templates/stock/item_base.html:369 +#: report/templates/report/inventree_sales_order_shipment_report.html:15 +#: stock/templates/stock/item_base.html:366 #: templates/email/overdue_sales_order.html:15 -#: templates/js/translated/pricing.js:929 -#: templates/js/translated/sales_order.js:805 -#: templates/js/translated/sales_order.js:1028 -#: templates/js/translated/stock.js:3008 +#: templates/js/translated/pricing.js:927 +#: templates/js/translated/sales_order.js:764 +#: templates/js/translated/sales_order.js:1001 +#: templates/js/translated/stock.js:3009 msgid "Sales Order" msgstr "" -#: build/templates/build/build_base.html:219 -#: build/templates/build/detail.html:94 templates/js/translated/build.js:2328 +#: build/templates/build/build_base.html:220 +#: build/templates/build/detail.html:94 templates/js/translated/build.js:2331 msgid "Priority" msgstr "" -#: build/templates/build/build_base.html:267 +#: build/templates/build/build_base.html:268 msgid "Issue Build Order" msgstr "" -#: build/templates/build/build_base.html:271 +#: build/templates/build/build_base.html:272 msgid "Issue this Build Order?" msgstr "" -#: build/templates/build/build_base.html:302 +#: build/templates/build/build_base.html:303 msgid "Delete Build Order" msgstr "" -#: build/templates/build/build_base.html:312 +#: build/templates/build/build_base.html:313 msgid "Build Order QR Code" msgstr "" -#: build/templates/build/build_base.html:324 +#: build/templates/build/build_base.html:325 msgid "Link Barcode to Build Order" msgstr "" @@ -1968,8 +1994,9 @@ msgstr "" msgid "Stock can be taken from any available location." msgstr "" -#: build/templates/build/detail.html:49 order/models.py:1532 -#: templates/js/translated/purchase_order.js:2259 +#: build/templates/build/detail.html:49 order/models.py:548 +#: order/models.py:1548 order/templates/order/order_base.html:135 +#: templates/js/translated/purchase_order.js:2243 msgid "Destination" msgstr "" @@ -1981,23 +2008,24 @@ msgstr "" msgid "Allocated Parts" msgstr "" -#: build/templates/build/detail.html:80 stock/admin.py:162 -#: stock/templates/stock/item_base.html:162 -#: templates/js/translated/build.js:1553 -#: templates/js/translated/model_renderers.js:242 -#: templates/js/translated/purchase_order.js:1326 +#: build/templates/build/detail.html:80 +#: report/templates/report/inventree_sales_order_shipment_report.html:47 +#: stock/admin.py:163 stock/templates/stock/item_base.html:159 +#: templates/js/translated/build.js:1556 +#: templates/js/translated/model_renderers.js:245 +#: templates/js/translated/purchase_order.js:1309 #: templates/js/translated/stock.js:1139 templates/js/translated/stock.js:1240 -#: templates/js/translated/stock.js:2275 templates/js/translated/stock.js:3211 +#: templates/js/translated/stock.js:2276 templates/js/translated/stock.js:3212 #: templates/js/translated/table_filters.js:320 #: templates/js/translated/table_filters.js:411 msgid "Batch" msgstr "" #: build/templates/build/detail.html:133 -#: order/templates/order/order_base.html:178 -#: order/templates/order/return_order_base.html:154 -#: order/templates/order/sales_order_base.html:193 -#: templates/js/translated/build.js:2371 +#: order/templates/order/order_base.html:187 +#: order/templates/order/return_order_base.html:155 +#: order/templates/order/sales_order_base.html:194 +#: templates/js/translated/build.js:2374 msgid "Created" msgstr "" @@ -2005,8 +2033,8 @@ msgstr "" msgid "No target date set" msgstr "" -#: build/templates/build/detail.html:149 -#: order/templates/order/sales_order_base.html:209 +#: build/templates/build/detail.html:149 order/api.py:794 +#: order/templates/order/sales_order_base.html:210 #: templates/js/translated/table_filters.js:692 msgid "Completed" msgstr "" @@ -2052,7 +2080,7 @@ msgid "Order required parts" msgstr "" #: build/templates/build/detail.html:192 -#: templates/js/translated/purchase_order.js:795 +#: templates/js/translated/purchase_order.js:778 msgid "Order Parts" msgstr "" @@ -2120,7 +2148,7 @@ msgstr "" msgid "Build Order Details" msgstr "" -#: build/templates/build/sidebar.html:8 order/serializers.py:82 +#: build/templates/build/sidebar.html:8 order/serializers.py:113 #: order/templates/order/po_sidebar.html:5 #: order/templates/order/return_order_detail.html:18 #: order/templates/order/so_sidebar.html:5 @@ -2139,43 +2167,38 @@ msgstr "" msgid "Test Statistics" msgstr "" -#: common/api.py:693 +#: common/api.py:725 msgid "Is Link" msgstr "" -#: common/api.py:701 +#: common/api.py:733 msgid "Is File" msgstr "" -#: common/api.py:744 +#: common/api.py:776 msgid "User does not have permission to delete these attachments" msgstr "" -#: common/api.py:761 +#: common/api.py:793 msgid "User does not have permission to delete this attachment" msgstr "" -#: common/currency.py:132 +#: common/currency.py:134 msgid "Invalid currency code" msgstr "" -#: common/currency.py:134 +#: common/currency.py:136 msgid "Duplicate currency code" msgstr "" -#: common/currency.py:139 +#: common/currency.py:141 msgid "No valid currency codes provided" msgstr "" -#: common/currency.py:156 +#: common/currency.py:158 msgid "No plugin" msgstr "" -#: common/files.py:63 -#, python-brace-format -msgid "Unsupported file format: {fmt}" -msgstr "" - #: common/files.py:65 msgid "Error reading file (invalid encoding)" msgstr "" @@ -2192,1883 +2215,2039 @@ msgstr "" msgid "Error reading file (data could be corrupted)" msgstr "" -#: common/forms.py:12 +#: common/forms.py:12 common/forms.py:25 msgid "File" msgstr "" -#: common/forms.py:12 +#: common/forms.py:12 common/forms.py:26 msgid "Select file to upload" msgstr "" -#: common/forms.py:25 -msgid "{name.title()} File" -msgstr "" - -#: common/forms.py:26 -#, python-brace-format -msgid "Select {name} file to upload" -msgstr "" - -#: common/models.py:86 +#: common/models.py:89 msgid "Updated" msgstr "" -#: common/models.py:87 +#: common/models.py:90 msgid "Timestamp of last update" msgstr "" -#: common/models.py:120 +#: common/models.py:123 msgid "Site URL is locked by configuration" msgstr "" -#: common/models.py:150 +#: common/models.py:153 msgid "Unique project code" msgstr "" -#: common/models.py:157 +#: common/models.py:160 msgid "Project description" msgstr "" -#: common/models.py:166 +#: common/models.py:169 msgid "User or group responsible for this project" msgstr "" -#: common/models.py:783 -msgid "Settings key (must be unique - case insensitive)" +#: common/models.py:783 common/models.py:2236 common/models.py:2613 +msgid "Settings key" msgstr "" #: common/models.py:787 msgid "Settings value" msgstr "" -#: common/models.py:839 +#: common/models.py:842 msgid "Chosen value is not a valid option" msgstr "" -#: common/models.py:855 +#: common/models.py:858 msgid "Value must be a boolean value" msgstr "" -#: common/models.py:863 +#: common/models.py:866 msgid "Value must be an integer value" msgstr "" -#: common/models.py:900 +#: common/models.py:874 +msgid "Value must be a valid number" +msgstr "" + +#: common/models.py:899 +msgid "Value does not pass validation checks" +msgstr "" + +#: common/models.py:921 msgid "Key string must be unique" msgstr "" -#: common/models.py:1132 +#: common/models.py:1189 msgid "No group" msgstr "" -#: common/models.py:1231 +#: common/models.py:1288 msgid "Restart required" msgstr "" -#: common/models.py:1233 +#: common/models.py:1290 msgid "A setting has been changed which requires a server restart" msgstr "" -#: common/models.py:1240 +#: common/models.py:1297 msgid "Pending migrations" msgstr "" -#: common/models.py:1241 +#: common/models.py:1298 msgid "Number of pending database migrations" msgstr "" -#: common/models.py:1246 +#: common/models.py:1303 msgid "Server Instance Name" msgstr "" -#: common/models.py:1248 +#: common/models.py:1305 msgid "String descriptor for the server instance" msgstr "" -#: common/models.py:1252 +#: common/models.py:1309 msgid "Use instance name" msgstr "" -#: common/models.py:1253 +#: common/models.py:1310 msgid "Use the instance name in the title-bar" msgstr "" -#: common/models.py:1258 +#: common/models.py:1315 msgid "Restrict showing `about`" msgstr "" -#: common/models.py:1259 +#: common/models.py:1316 msgid "Show the `about` modal only to superusers" msgstr "" -#: common/models.py:1264 company/models.py:111 company/models.py:112 +#: common/models.py:1321 company/models.py:108 company/models.py:109 msgid "Company name" msgstr "" -#: common/models.py:1265 +#: common/models.py:1322 msgid "Internal company name" msgstr "" -#: common/models.py:1269 +#: common/models.py:1326 msgid "Base URL" msgstr "" -#: common/models.py:1270 +#: common/models.py:1327 msgid "Base URL for server instance" msgstr "" -#: common/models.py:1276 +#: common/models.py:1333 msgid "Default Currency" msgstr "" -#: common/models.py:1277 +#: common/models.py:1334 msgid "Select base currency for pricing calculations" msgstr "" -#: common/models.py:1283 +#: common/models.py:1340 msgid "Supported Currencies" msgstr "" -#: common/models.py:1284 +#: common/models.py:1341 msgid "List of supported currency codes" msgstr "" -#: common/models.py:1290 +#: common/models.py:1347 msgid "Currency Update Interval" msgstr "" -#: common/models.py:1292 +#: common/models.py:1349 msgid "How often to update exchange rates (set to zero to disable)" msgstr "" -#: common/models.py:1295 common/models.py:1351 common/models.py:1364 -#: common/models.py:1372 common/models.py:1381 common/models.py:1390 -#: common/models.py:1627 common/models.py:1649 common/models.py:1764 -#: common/models.py:2146 +#: common/models.py:1352 common/models.py:1408 common/models.py:1421 +#: common/models.py:1429 common/models.py:1438 common/models.py:1447 +#: common/models.py:1696 common/models.py:1718 common/models.py:1819 +#: common/models.py:2208 msgid "days" msgstr "" -#: common/models.py:1299 +#: common/models.py:1356 msgid "Currency Update Plugin" msgstr "" -#: common/models.py:1300 +#: common/models.py:1357 msgid "Currency update plugin to use" msgstr "" -#: common/models.py:1305 +#: common/models.py:1362 msgid "Download from URL" msgstr "" -#: common/models.py:1307 +#: common/models.py:1364 msgid "Allow download of remote images and files from external URL" msgstr "" -#: common/models.py:1313 +#: common/models.py:1370 msgid "Download Size Limit" msgstr "" -#: common/models.py:1314 +#: common/models.py:1371 msgid "Maximum allowable download size for remote image" msgstr "" -#: common/models.py:1320 +#: common/models.py:1377 msgid "User-agent used to download from URL" msgstr "" -#: common/models.py:1322 +#: common/models.py:1379 msgid "Allow to override the user-agent used to download images and files from external URL (leave blank for the default)" msgstr "" -#: common/models.py:1327 +#: common/models.py:1384 msgid "Strict URL Validation" msgstr "" -#: common/models.py:1328 +#: common/models.py:1385 msgid "Require schema specification when validating URLs" msgstr "" -#: common/models.py:1333 +#: common/models.py:1390 msgid "Require confirm" msgstr "" -#: common/models.py:1334 +#: common/models.py:1391 msgid "Require explicit user confirmation for certain action." msgstr "" -#: common/models.py:1339 +#: common/models.py:1396 msgid "Tree Depth" msgstr "" -#: common/models.py:1341 +#: common/models.py:1398 msgid "Default tree depth for treeview. Deeper levels can be lazy loaded as they are needed." msgstr "" -#: common/models.py:1347 +#: common/models.py:1404 msgid "Update Check Interval" msgstr "" -#: common/models.py:1348 +#: common/models.py:1405 msgid "How often to check for updates (set to zero to disable)" msgstr "" -#: common/models.py:1354 +#: common/models.py:1411 msgid "Automatic Backup" msgstr "" -#: common/models.py:1355 +#: common/models.py:1412 msgid "Enable automatic backup of database and media files" msgstr "" -#: common/models.py:1360 +#: common/models.py:1417 msgid "Auto Backup Interval" msgstr "" -#: common/models.py:1361 +#: common/models.py:1418 msgid "Specify number of days between automated backup events" msgstr "" -#: common/models.py:1367 +#: common/models.py:1424 msgid "Task Deletion Interval" msgstr "" -#: common/models.py:1369 +#: common/models.py:1426 msgid "Background task results will be deleted after specified number of days" msgstr "" -#: common/models.py:1376 +#: common/models.py:1433 msgid "Error Log Deletion Interval" msgstr "" -#: common/models.py:1378 +#: common/models.py:1435 msgid "Error logs will be deleted after specified number of days" msgstr "" -#: common/models.py:1385 +#: common/models.py:1442 msgid "Notification Deletion Interval" msgstr "" -#: common/models.py:1387 +#: common/models.py:1444 msgid "User notifications will be deleted after specified number of days" msgstr "" -#: common/models.py:1394 templates/InvenTree/settings/sidebar.html:31 +#: common/models.py:1451 templates/InvenTree/settings/sidebar.html:31 msgid "Barcode Support" msgstr "" -#: common/models.py:1395 +#: common/models.py:1452 msgid "Enable barcode scanner support in the web interface" msgstr "" -#: common/models.py:1400 +#: common/models.py:1457 +msgid "Store Barcode Results" +msgstr "" + +#: common/models.py:1458 +msgid "Store barcode scan results in the database" +msgstr "" + +#: common/models.py:1463 +msgid "Barcode Scans Maximum Count" +msgstr "" + +#: common/models.py:1464 +msgid "Maximum number of barcode scan results to store" +msgstr "" + +#: common/models.py:1469 msgid "Barcode Input Delay" msgstr "" -#: common/models.py:1401 +#: common/models.py:1470 msgid "Barcode input processing delay time" msgstr "" -#: common/models.py:1407 +#: common/models.py:1476 msgid "Barcode Webcam Support" msgstr "" -#: common/models.py:1408 +#: common/models.py:1477 msgid "Allow barcode scanning via webcam in browser" msgstr "" -#: common/models.py:1413 +#: common/models.py:1482 msgid "Barcode Show Data" msgstr "" -#: common/models.py:1414 +#: common/models.py:1483 msgid "Display barcode data in browser as text" msgstr "" -#: common/models.py:1419 +#: common/models.py:1488 msgid "Barcode Generation Plugin" msgstr "" -#: common/models.py:1420 +#: common/models.py:1489 msgid "Plugin to use for internal barcode data generation" msgstr "" -#: common/models.py:1425 +#: common/models.py:1494 msgid "Part Revisions" msgstr "" -#: common/models.py:1426 +#: common/models.py:1495 msgid "Enable revision field for Part" msgstr "" -#: common/models.py:1431 +#: common/models.py:1500 msgid "Assembly Revision Only" msgstr "" -#: common/models.py:1432 +#: common/models.py:1501 msgid "Only allow revisions for assembly parts" msgstr "" -#: common/models.py:1437 +#: common/models.py:1506 msgid "Allow Deletion from Assembly" msgstr "" -#: common/models.py:1438 +#: common/models.py:1507 msgid "Allow deletion of parts which are used in an assembly" msgstr "" -#: common/models.py:1443 +#: common/models.py:1512 msgid "IPN Regex" msgstr "" -#: common/models.py:1444 +#: common/models.py:1513 msgid "Regular expression pattern for matching Part IPN" msgstr "" -#: common/models.py:1447 +#: common/models.py:1516 msgid "Allow Duplicate IPN" msgstr "" -#: common/models.py:1448 +#: common/models.py:1517 msgid "Allow multiple parts to share the same IPN" msgstr "" -#: common/models.py:1453 +#: common/models.py:1522 msgid "Allow Editing IPN" msgstr "" -#: common/models.py:1454 +#: common/models.py:1523 msgid "Allow changing the IPN value while editing a part" msgstr "" -#: common/models.py:1459 +#: common/models.py:1528 msgid "Copy Part BOM Data" msgstr "" -#: common/models.py:1460 +#: common/models.py:1529 msgid "Copy BOM data by default when duplicating a part" msgstr "" -#: common/models.py:1465 +#: common/models.py:1534 msgid "Copy Part Parameter Data" msgstr "" -#: common/models.py:1466 +#: common/models.py:1535 msgid "Copy parameter data by default when duplicating a part" msgstr "" -#: common/models.py:1471 +#: common/models.py:1540 msgid "Copy Part Test Data" msgstr "" -#: common/models.py:1472 +#: common/models.py:1541 msgid "Copy test data by default when duplicating a part" msgstr "" -#: common/models.py:1477 +#: common/models.py:1546 msgid "Copy Category Parameter Templates" msgstr "" -#: common/models.py:1478 +#: common/models.py:1547 msgid "Copy category parameter templates when creating a part" msgstr "" -#: common/models.py:1483 part/admin.py:108 part/models.py:3945 -#: report/models.py:293 report/models.py:360 report/serializers.py:90 -#: report/serializers.py:131 stock/serializers.py:232 +#: common/models.py:1552 part/admin.py:108 part/models.py:4003 +#: report/models.py:301 report/models.py:368 report/serializers.py:91 +#: report/serializers.py:132 stock/serializers.py:233 #: templates/js/translated/table_filters.js:138 #: templates/js/translated/table_filters.js:775 msgid "Template" msgstr "" -#: common/models.py:1484 +#: common/models.py:1553 msgid "Parts are templates by default" msgstr "" -#: common/models.py:1490 +#: common/models.py:1559 msgid "Parts can be assembled from other components by default" msgstr "" -#: common/models.py:1495 part/admin.py:95 part/models.py:1160 -#: part/serializers.py:1596 templates/js/translated/table_filters.js:737 +#: common/models.py:1564 part/admin.py:95 part/models.py:1221 +#: part/serializers.py:1654 templates/js/translated/table_filters.js:737 msgid "Component" msgstr "" -#: common/models.py:1496 +#: common/models.py:1565 msgid "Parts can be used as sub-components by default" msgstr "" -#: common/models.py:1501 part/admin.py:100 part/models.py:1178 +#: common/models.py:1570 part/admin.py:100 part/models.py:1239 msgid "Purchaseable" msgstr "" -#: common/models.py:1502 +#: common/models.py:1571 msgid "Parts are purchaseable by default" msgstr "" -#: common/models.py:1507 part/admin.py:104 part/models.py:1184 +#: common/models.py:1576 part/admin.py:104 part/models.py:1245 #: templates/js/translated/table_filters.js:763 msgid "Salable" msgstr "" -#: common/models.py:1508 +#: common/models.py:1577 msgid "Parts are salable by default" msgstr "" -#: common/models.py:1514 +#: common/models.py:1583 msgid "Parts are trackable by default" msgstr "" -#: common/models.py:1519 part/admin.py:117 part/models.py:1200 -#: part/templates/part/part_base.html:154 +#: common/models.py:1588 part/admin.py:117 part/models.py:1261 +#: part/templates/part/part_base.html:155 #: templates/js/translated/table_filters.js:142 #: templates/js/translated/table_filters.js:787 msgid "Virtual" msgstr "" -#: common/models.py:1520 +#: common/models.py:1589 msgid "Parts are virtual by default" msgstr "" -#: common/models.py:1525 +#: common/models.py:1594 msgid "Show Import in Views" msgstr "" -#: common/models.py:1526 +#: common/models.py:1595 msgid "Display the import wizard in some part views" msgstr "" -#: common/models.py:1531 +#: common/models.py:1600 msgid "Show related parts" msgstr "" -#: common/models.py:1532 +#: common/models.py:1601 msgid "Display related parts for a part" msgstr "" -#: common/models.py:1537 +#: common/models.py:1606 msgid "Initial Stock Data" msgstr "" -#: common/models.py:1538 +#: common/models.py:1607 msgid "Allow creation of initial stock when adding a new part" msgstr "" -#: common/models.py:1543 templates/js/translated/part.js:108 +#: common/models.py:1612 templates/js/translated/part.js:108 msgid "Initial Supplier Data" msgstr "" -#: common/models.py:1545 +#: common/models.py:1614 msgid "Allow creation of initial supplier data when adding a new part" msgstr "" -#: common/models.py:1551 +#: common/models.py:1620 msgid "Part Name Display Format" msgstr "" -#: common/models.py:1552 +#: common/models.py:1621 msgid "Format to display the part name" msgstr "" -#: common/models.py:1558 +#: common/models.py:1627 msgid "Part Category Default Icon" msgstr "" -#: common/models.py:1559 +#: common/models.py:1628 msgid "Part category default icon (empty means no icon)" msgstr "" -#: common/models.py:1564 +#: common/models.py:1633 msgid "Enforce Parameter Units" msgstr "" -#: common/models.py:1566 +#: common/models.py:1635 msgid "If units are provided, parameter values must match the specified units" msgstr "" -#: common/models.py:1572 +#: common/models.py:1641 msgid "Minimum Pricing Decimal Places" msgstr "" -#: common/models.py:1574 +#: common/models.py:1643 msgid "Minimum number of decimal places to display when rendering pricing data" msgstr "" -#: common/models.py:1585 +#: common/models.py:1654 msgid "Maximum Pricing Decimal Places" msgstr "" -#: common/models.py:1587 +#: common/models.py:1656 msgid "Maximum number of decimal places to display when rendering pricing data" msgstr "" -#: common/models.py:1598 +#: common/models.py:1667 msgid "Use Supplier Pricing" msgstr "" -#: common/models.py:1600 +#: common/models.py:1669 msgid "Include supplier price breaks in overall pricing calculations" msgstr "" -#: common/models.py:1606 +#: common/models.py:1675 msgid "Purchase History Override" msgstr "" -#: common/models.py:1608 +#: common/models.py:1677 msgid "Historical purchase order pricing overrides supplier price breaks" msgstr "" -#: common/models.py:1614 +#: common/models.py:1683 msgid "Use Stock Item Pricing" msgstr "" -#: common/models.py:1616 +#: common/models.py:1685 msgid "Use pricing from manually entered stock data for pricing calculations" msgstr "" -#: common/models.py:1622 +#: common/models.py:1691 msgid "Stock Item Pricing Age" msgstr "" -#: common/models.py:1624 +#: common/models.py:1693 msgid "Exclude stock items older than this number of days from pricing calculations" msgstr "" -#: common/models.py:1631 +#: common/models.py:1700 msgid "Use Variant Pricing" msgstr "" -#: common/models.py:1632 +#: common/models.py:1701 msgid "Include variant pricing in overall pricing calculations" msgstr "" -#: common/models.py:1637 +#: common/models.py:1706 msgid "Active Variants Only" msgstr "" -#: common/models.py:1639 +#: common/models.py:1708 msgid "Only use active variant parts for calculating variant pricing" msgstr "" -#: common/models.py:1645 +#: common/models.py:1714 msgid "Pricing Rebuild Interval" msgstr "" -#: common/models.py:1647 +#: common/models.py:1716 msgid "Number of days before part pricing is automatically updated" msgstr "" -#: common/models.py:1654 +#: common/models.py:1723 msgid "Internal Prices" msgstr "" -#: common/models.py:1655 +#: common/models.py:1724 msgid "Enable internal prices for parts" msgstr "" -#: common/models.py:1660 +#: common/models.py:1729 msgid "Internal Price Override" msgstr "" -#: common/models.py:1662 +#: common/models.py:1731 msgid "If available, internal prices override price range calculations" msgstr "" -#: common/models.py:1668 +#: common/models.py:1737 msgid "Enable label printing" msgstr "" -#: common/models.py:1669 +#: common/models.py:1738 msgid "Enable label printing from the web interface" msgstr "" -#: common/models.py:1674 +#: common/models.py:1743 msgid "Label Image DPI" msgstr "" -#: common/models.py:1676 +#: common/models.py:1745 msgid "DPI resolution when generating image files to supply to label printing plugins" msgstr "" -#: common/models.py:1682 +#: common/models.py:1751 msgid "Enable Reports" msgstr "" -#: common/models.py:1683 +#: common/models.py:1752 msgid "Enable generation of reports" msgstr "" -#: common/models.py:1688 templates/stats.html:25 +#: common/models.py:1757 templates/stats.html:25 msgid "Debug Mode" msgstr "" -#: common/models.py:1689 +#: common/models.py:1758 msgid "Generate reports in debug mode (HTML output)" msgstr "" -#: common/models.py:1694 +#: common/models.py:1763 msgid "Log Report Errors" msgstr "" -#: common/models.py:1695 +#: common/models.py:1764 msgid "Log errors which occur when generating reports" msgstr "" -#: common/models.py:1700 plugin/builtin/labels/label_sheet.py:28 -#: report/models.py:301 +#: common/models.py:1769 plugin/builtin/labels/label_sheet.py:28 +#: report/models.py:309 msgid "Page Size" msgstr "" -#: common/models.py:1701 +#: common/models.py:1770 msgid "Default page size for PDF reports" msgstr "" -#: common/models.py:1706 -msgid "Enable Test Reports" -msgstr "" - -#: common/models.py:1707 -msgid "Enable generation of test reports" -msgstr "" - -#: common/models.py:1712 -msgid "Attach Test Reports" -msgstr "" - -#: common/models.py:1714 -msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item" -msgstr "" - -#: common/models.py:1720 +#: common/models.py:1775 msgid "Globally Unique Serials" msgstr "" -#: common/models.py:1721 +#: common/models.py:1776 msgid "Serial numbers for stock items must be globally unique" msgstr "" -#: common/models.py:1726 +#: common/models.py:1781 msgid "Autofill Serial Numbers" msgstr "" -#: common/models.py:1727 +#: common/models.py:1782 msgid "Autofill serial numbers in forms" msgstr "" -#: common/models.py:1732 +#: common/models.py:1787 msgid "Delete Depleted Stock" msgstr "" -#: common/models.py:1734 +#: common/models.py:1789 msgid "Determines default behavior when a stock item is depleted" msgstr "" -#: common/models.py:1740 +#: common/models.py:1795 msgid "Batch Code Template" msgstr "" -#: common/models.py:1742 +#: common/models.py:1797 msgid "Template for generating default batch codes for stock items" msgstr "" -#: common/models.py:1747 +#: common/models.py:1802 msgid "Stock Expiry" msgstr "" -#: common/models.py:1748 +#: common/models.py:1803 msgid "Enable stock expiry functionality" msgstr "" -#: common/models.py:1753 +#: common/models.py:1808 msgid "Sell Expired Stock" msgstr "" -#: common/models.py:1754 +#: common/models.py:1809 msgid "Allow sale of expired stock" msgstr "" -#: common/models.py:1759 +#: common/models.py:1814 msgid "Stock Stale Time" msgstr "" -#: common/models.py:1761 +#: common/models.py:1816 msgid "Number of days stock items are considered stale before expiring" msgstr "" -#: common/models.py:1768 +#: common/models.py:1823 msgid "Build Expired Stock" msgstr "" -#: common/models.py:1769 +#: common/models.py:1824 msgid "Allow building with expired stock" msgstr "" -#: common/models.py:1774 +#: common/models.py:1829 msgid "Stock Ownership Control" msgstr "" -#: common/models.py:1775 +#: common/models.py:1830 msgid "Enable ownership control over stock locations and items" msgstr "" -#: common/models.py:1780 +#: common/models.py:1835 msgid "Stock Location Default Icon" msgstr "" -#: common/models.py:1781 +#: common/models.py:1836 msgid "Stock location default icon (empty means no icon)" msgstr "" -#: common/models.py:1786 +#: common/models.py:1841 msgid "Show Installed Stock Items" msgstr "" -#: common/models.py:1787 +#: common/models.py:1842 msgid "Display installed stock items in stock tables" msgstr "" -#: common/models.py:1792 +#: common/models.py:1847 msgid "Check BOM when installing items" msgstr "" -#: common/models.py:1794 +#: common/models.py:1849 msgid "Installed stock items must exist in the BOM for the parent part" msgstr "" -#: common/models.py:1800 +#: common/models.py:1855 msgid "Allow Out of Stock Transfer" msgstr "" -#: common/models.py:1802 +#: common/models.py:1857 msgid "Allow stock items which are not in stock to be transferred between stock locations" msgstr "" -#: common/models.py:1808 +#: common/models.py:1863 msgid "Build Order Reference Pattern" msgstr "" -#: common/models.py:1810 +#: common/models.py:1865 msgid "Required pattern for generating Build Order reference field" msgstr "" -#: common/models.py:1816 common/models.py:1872 common/models.py:1894 -#: common/models.py:1930 +#: common/models.py:1871 common/models.py:1927 common/models.py:1949 +#: common/models.py:1985 msgid "Require Responsible Owner" msgstr "" -#: common/models.py:1817 common/models.py:1873 common/models.py:1895 -#: common/models.py:1931 +#: common/models.py:1872 common/models.py:1928 common/models.py:1950 +#: common/models.py:1986 msgid "A responsible owner must be assigned to each order" msgstr "" -#: common/models.py:1822 +#: common/models.py:1877 msgid "Require Active Part" msgstr "" -#: common/models.py:1823 +#: common/models.py:1878 msgid "Prevent build order creation for inactive parts" msgstr "" -#: common/models.py:1828 +#: common/models.py:1883 msgid "Require Locked Part" msgstr "" -#: common/models.py:1829 +#: common/models.py:1884 msgid "Prevent build order creation for unlocked parts" msgstr "" -#: common/models.py:1834 +#: common/models.py:1889 msgid "Require Valid BOM" msgstr "" -#: common/models.py:1836 +#: common/models.py:1891 msgid "Prevent build order creation unless BOM has been validated" msgstr "" -#: common/models.py:1842 +#: common/models.py:1897 msgid "Require Closed Child Orders" msgstr "" -#: common/models.py:1844 +#: common/models.py:1899 msgid "Prevent build order completion until all child orders are closed" msgstr "" -#: common/models.py:1850 +#: common/models.py:1905 msgid "Block Until Tests Pass" msgstr "" -#: common/models.py:1852 +#: common/models.py:1907 msgid "Prevent build outputs from being completed until all required tests pass" msgstr "" -#: common/models.py:1858 +#: common/models.py:1913 msgid "Enable Return Orders" msgstr "" -#: common/models.py:1859 +#: common/models.py:1914 msgid "Enable return order functionality in the user interface" msgstr "" -#: common/models.py:1864 +#: common/models.py:1919 msgid "Return Order Reference Pattern" msgstr "" -#: common/models.py:1866 +#: common/models.py:1921 msgid "Required pattern for generating Return Order reference field" msgstr "" -#: common/models.py:1878 +#: common/models.py:1933 msgid "Edit Completed Return Orders" msgstr "" -#: common/models.py:1880 +#: common/models.py:1935 msgid "Allow editing of return orders after they have been completed" msgstr "" -#: common/models.py:1886 +#: common/models.py:1941 msgid "Sales Order Reference Pattern" msgstr "" -#: common/models.py:1888 +#: common/models.py:1943 msgid "Required pattern for generating Sales Order reference field" msgstr "" -#: common/models.py:1900 +#: common/models.py:1955 msgid "Sales Order Default Shipment" msgstr "" -#: common/models.py:1901 +#: common/models.py:1956 msgid "Enable creation of default shipment with sales orders" msgstr "" -#: common/models.py:1906 +#: common/models.py:1961 msgid "Edit Completed Sales Orders" msgstr "" -#: common/models.py:1908 +#: common/models.py:1963 msgid "Allow editing of sales orders after they have been shipped or completed" msgstr "" -#: common/models.py:1914 +#: common/models.py:1969 msgid "Mark Shipped Orders as Complete" msgstr "" -#: common/models.py:1916 +#: common/models.py:1971 msgid "Sales orders marked as shipped will automatically be completed, bypassing the \"shipped\" status" msgstr "" -#: common/models.py:1922 +#: common/models.py:1977 msgid "Purchase Order Reference Pattern" msgstr "" -#: common/models.py:1924 +#: common/models.py:1979 msgid "Required pattern for generating Purchase Order reference field" msgstr "" -#: common/models.py:1936 +#: common/models.py:1991 msgid "Edit Completed Purchase Orders" msgstr "" -#: common/models.py:1938 +#: common/models.py:1993 msgid "Allow editing of purchase orders after they have been shipped or completed" msgstr "" -#: common/models.py:1944 +#: common/models.py:1999 msgid "Auto Complete Purchase Orders" msgstr "" -#: common/models.py:1946 +#: common/models.py:2001 msgid "Automatically mark purchase orders as complete when all line items are received" msgstr "" -#: common/models.py:1953 +#: common/models.py:2008 msgid "Enable password forgot" msgstr "" -#: common/models.py:1954 +#: common/models.py:2009 msgid "Enable password forgot function on the login pages" msgstr "" -#: common/models.py:1959 +#: common/models.py:2014 msgid "Enable registration" msgstr "" -#: common/models.py:1960 +#: common/models.py:2015 msgid "Enable self-registration for users on the login pages" msgstr "" -#: common/models.py:1965 +#: common/models.py:2020 msgid "Enable SSO" msgstr "" -#: common/models.py:1966 +#: common/models.py:2021 msgid "Enable SSO on the login pages" msgstr "" -#: common/models.py:1971 +#: common/models.py:2026 msgid "Enable SSO registration" msgstr "" -#: common/models.py:1973 +#: common/models.py:2028 msgid "Enable self-registration via SSO for users on the login pages" msgstr "" -#: common/models.py:1979 +#: common/models.py:2034 msgid "Enable SSO group sync" msgstr "" -#: common/models.py:1981 +#: common/models.py:2036 msgid "Enable synchronizing InvenTree groups with groups provided by the IdP" msgstr "" -#: common/models.py:1987 +#: common/models.py:2042 msgid "SSO group key" msgstr "" -#: common/models.py:1989 +#: common/models.py:2044 msgid "The name of the groups claim attribute provided by the IdP" msgstr "" -#: common/models.py:1995 +#: common/models.py:2050 msgid "SSO group map" msgstr "" -#: common/models.py:1997 +#: common/models.py:2052 msgid "A mapping from SSO groups to local InvenTree groups. If the local group does not exist, it will be created." msgstr "" -#: common/models.py:2003 +#: common/models.py:2058 msgid "Remove groups outside of SSO" msgstr "" -#: common/models.py:2005 +#: common/models.py:2060 msgid "Whether groups assigned to the user should be removed if they are not backend by the IdP. Disabling this setting might cause security issues" msgstr "" -#: common/models.py:2011 +#: common/models.py:2066 msgid "Email required" msgstr "" -#: common/models.py:2012 +#: common/models.py:2067 msgid "Require user to supply mail on signup" msgstr "" -#: common/models.py:2017 +#: common/models.py:2072 msgid "Auto-fill SSO users" msgstr "" -#: common/models.py:2019 +#: common/models.py:2074 msgid "Automatically fill out user-details from SSO account-data" msgstr "" -#: common/models.py:2025 +#: common/models.py:2080 msgid "Mail twice" msgstr "" -#: common/models.py:2026 +#: common/models.py:2081 msgid "On signup ask users twice for their mail" msgstr "" -#: common/models.py:2031 +#: common/models.py:2086 msgid "Password twice" msgstr "" -#: common/models.py:2032 +#: common/models.py:2087 msgid "On signup ask users twice for their password" msgstr "" -#: common/models.py:2037 +#: common/models.py:2092 msgid "Allowed domains" msgstr "" -#: common/models.py:2039 +#: common/models.py:2094 msgid "Restrict signup to certain domains (comma-separated, starting with @)" msgstr "" -#: common/models.py:2045 +#: common/models.py:2100 msgid "Group on signup" msgstr "" -#: common/models.py:2047 +#: common/models.py:2102 msgid "Group to which new users are assigned on registration. If SSO group sync is enabled, this group is only set if no group can be assigned from the IdP." msgstr "" -#: common/models.py:2053 +#: common/models.py:2108 msgid "Enforce MFA" msgstr "" -#: common/models.py:2054 +#: common/models.py:2109 msgid "Users must use multifactor security." msgstr "" -#: common/models.py:2059 +#: common/models.py:2114 msgid "Check plugins on startup" msgstr "" -#: common/models.py:2061 +#: common/models.py:2116 msgid "Check that all plugins are installed on startup - enable in container environments" msgstr "" -#: common/models.py:2069 +#: common/models.py:2124 msgid "Check for plugin updates" msgstr "" -#: common/models.py:2070 +#: common/models.py:2125 msgid "Enable periodic checks for updates to installed plugins" msgstr "" -#: common/models.py:2076 +#: common/models.py:2131 msgid "Enable URL integration" msgstr "" -#: common/models.py:2077 +#: common/models.py:2132 msgid "Enable plugins to add URL routes" msgstr "" -#: common/models.py:2083 +#: common/models.py:2138 msgid "Enable navigation integration" msgstr "" -#: common/models.py:2084 +#: common/models.py:2139 msgid "Enable plugins to integrate into navigation" msgstr "" -#: common/models.py:2090 +#: common/models.py:2145 msgid "Enable app integration" msgstr "" -#: common/models.py:2091 +#: common/models.py:2146 msgid "Enable plugins to add apps" msgstr "" -#: common/models.py:2097 +#: common/models.py:2152 msgid "Enable schedule integration" msgstr "" -#: common/models.py:2098 +#: common/models.py:2153 msgid "Enable plugins to run scheduled tasks" msgstr "" -#: common/models.py:2104 +#: common/models.py:2159 msgid "Enable event integration" msgstr "" -#: common/models.py:2105 +#: common/models.py:2160 msgid "Enable plugins to respond to internal events" msgstr "" -#: common/models.py:2111 +#: common/models.py:2166 +msgid "Enable interface integration" +msgstr "" + +#: common/models.py:2167 +msgid "Enable plugins to integrate into the user interface" +msgstr "" + +#: common/models.py:2173 msgid "Enable project codes" msgstr "" -#: common/models.py:2112 +#: common/models.py:2174 msgid "Enable project codes for tracking projects" msgstr "" -#: common/models.py:2117 +#: common/models.py:2179 msgid "Stocktake Functionality" msgstr "" -#: common/models.py:2119 +#: common/models.py:2181 msgid "Enable stocktake functionality for recording stock levels and calculating stock value" msgstr "" -#: common/models.py:2125 +#: common/models.py:2187 msgid "Exclude External Locations" msgstr "" -#: common/models.py:2127 +#: common/models.py:2189 msgid "Exclude stock items in external locations from stocktake calculations" msgstr "" -#: common/models.py:2133 +#: common/models.py:2195 msgid "Automatic Stocktake Period" msgstr "" -#: common/models.py:2135 +#: common/models.py:2197 msgid "Number of days between automatic stocktake recording (set to zero to disable)" msgstr "" -#: common/models.py:2141 +#: common/models.py:2203 msgid "Report Deletion Interval" msgstr "" -#: common/models.py:2143 +#: common/models.py:2205 msgid "Stocktake reports will be deleted after specified number of days" msgstr "" -#: common/models.py:2150 +#: common/models.py:2212 msgid "Display Users full names" msgstr "" -#: common/models.py:2151 +#: common/models.py:2213 msgid "Display Users full names instead of usernames" msgstr "" -#: common/models.py:2156 +#: common/models.py:2218 msgid "Enable Test Station Data" msgstr "" -#: common/models.py:2157 +#: common/models.py:2219 msgid "Enable test station data collection for test results" msgstr "" -#: common/models.py:2169 common/models.py:2549 -msgid "Settings key (must be unique - case insensitive" -msgstr "" - -#: common/models.py:2212 -msgid "Hide inactive parts" -msgstr "" - -#: common/models.py:2214 -msgid "Hide inactive parts in results displayed on the homepage" -msgstr "" - -#: common/models.py:2220 -msgid "Show subscribed parts" -msgstr "" - -#: common/models.py:2221 -msgid "Show subscribed parts on the homepage" +#: common/models.py:2224 +msgid "Create Template on Upload" msgstr "" #: common/models.py:2226 -msgid "Show subscribed categories" +msgid "Create a new test template when uploading test data which does not match an existing template" msgstr "" -#: common/models.py:2227 -msgid "Show subscribed part categories on the homepage" -msgstr "" - -#: common/models.py:2232 -msgid "Show latest parts" -msgstr "" - -#: common/models.py:2233 -msgid "Show latest parts on the homepage" -msgstr "" - -#: common/models.py:2238 -msgid "Show invalid BOMs" -msgstr "" - -#: common/models.py:2239 -msgid "Show BOMs that await validation on the homepage" -msgstr "" - -#: common/models.py:2244 -msgid "Show recent stock changes" -msgstr "" - -#: common/models.py:2245 -msgid "Show recently changed stock items on the homepage" -msgstr "" - -#: common/models.py:2250 -msgid "Show low stock" -msgstr "" - -#: common/models.py:2251 -msgid "Show low stock items on the homepage" -msgstr "" - -#: common/models.py:2256 -msgid "Show depleted stock" -msgstr "" - -#: common/models.py:2257 -msgid "Show depleted stock items on the homepage" -msgstr "" - -#: common/models.py:2262 -msgid "Show needed stock" -msgstr "" - -#: common/models.py:2263 -msgid "Show stock items needed for builds on the homepage" -msgstr "" - -#: common/models.py:2268 -msgid "Show expired stock" -msgstr "" - -#: common/models.py:2269 -msgid "Show expired stock items on the homepage" -msgstr "" - -#: common/models.py:2274 -msgid "Show stale stock" -msgstr "" - -#: common/models.py:2275 -msgid "Show stale stock items on the homepage" -msgstr "" - -#: common/models.py:2280 -msgid "Show pending builds" +#: common/models.py:2279 +msgid "Hide inactive parts" msgstr "" #: common/models.py:2281 -msgid "Show pending builds on the homepage" -msgstr "" - -#: common/models.py:2286 -msgid "Show overdue builds" +msgid "Hide inactive parts in results displayed on the homepage" msgstr "" #: common/models.py:2287 -msgid "Show overdue builds on the homepage" +msgid "Show subscribed parts" msgstr "" -#: common/models.py:2292 -msgid "Show outstanding POs" +#: common/models.py:2288 +msgid "Show subscribed parts on the homepage" msgstr "" #: common/models.py:2293 -msgid "Show outstanding POs on the homepage" +msgid "Show subscribed categories" msgstr "" -#: common/models.py:2298 -msgid "Show overdue POs" +#: common/models.py:2294 +msgid "Show subscribed part categories on the homepage" msgstr "" #: common/models.py:2299 -msgid "Show overdue POs on the homepage" +msgid "Show latest parts" msgstr "" -#: common/models.py:2304 -msgid "Show outstanding SOs" +#: common/models.py:2300 +msgid "Show latest parts on the homepage" msgstr "" #: common/models.py:2305 -msgid "Show outstanding SOs on the homepage" +msgid "Show invalid BOMs" msgstr "" -#: common/models.py:2310 -msgid "Show overdue SOs" +#: common/models.py:2306 +msgid "Show BOMs that await validation on the homepage" msgstr "" #: common/models.py:2311 -msgid "Show overdue SOs on the homepage" +msgid "Show recent stock changes" msgstr "" -#: common/models.py:2316 -msgid "Show pending SO shipments" +#: common/models.py:2312 +msgid "Show recently changed stock items on the homepage" msgstr "" #: common/models.py:2317 -msgid "Show pending SO shipments on the homepage" +msgid "Show low stock" msgstr "" -#: common/models.py:2322 -msgid "Show News" +#: common/models.py:2318 +msgid "Show low stock items on the homepage" msgstr "" #: common/models.py:2323 -msgid "Show news on the homepage" +msgid "Show depleted stock" msgstr "" -#: common/models.py:2328 -msgid "Inline label display" +#: common/models.py:2324 +msgid "Show depleted stock items on the homepage" +msgstr "" + +#: common/models.py:2329 +msgid "Show needed stock" msgstr "" #: common/models.py:2330 -msgid "Display PDF labels in the browser, instead of downloading as a file" +msgid "Show stock items needed for builds on the homepage" +msgstr "" + +#: common/models.py:2335 +msgid "Show expired stock" msgstr "" #: common/models.py:2336 -msgid "Default label printer" +msgid "Show expired stock items on the homepage" msgstr "" -#: common/models.py:2338 -msgid "Configure which label printer should be selected by default" +#: common/models.py:2341 +msgid "Show stale stock" msgstr "" -#: common/models.py:2344 -msgid "Inline report display" +#: common/models.py:2342 +msgid "Show stale stock items on the homepage" msgstr "" -#: common/models.py:2346 -msgid "Display PDF reports in the browser, instead of downloading as a file" +#: common/models.py:2347 +msgid "Show pending builds" msgstr "" -#: common/models.py:2352 -msgid "Search Parts" +#: common/models.py:2348 +msgid "Show pending builds on the homepage" msgstr "" #: common/models.py:2353 -msgid "Display parts in search preview window" +msgid "Show overdue builds" msgstr "" -#: common/models.py:2358 -msgid "Search Supplier Parts" +#: common/models.py:2354 +msgid "Show overdue builds on the homepage" msgstr "" #: common/models.py:2359 -msgid "Display supplier parts in search preview window" +msgid "Show outstanding POs" msgstr "" -#: common/models.py:2364 -msgid "Search Manufacturer Parts" +#: common/models.py:2360 +msgid "Show outstanding POs on the homepage" msgstr "" #: common/models.py:2365 -msgid "Display manufacturer parts in search preview window" +msgid "Show overdue POs" msgstr "" -#: common/models.py:2370 -msgid "Hide Inactive Parts" +#: common/models.py:2366 +msgid "Show overdue POs on the homepage" msgstr "" #: common/models.py:2371 -msgid "Excluded inactive parts from search preview window" +msgid "Show outstanding SOs" msgstr "" -#: common/models.py:2376 -msgid "Search Categories" +#: common/models.py:2372 +msgid "Show outstanding SOs on the homepage" msgstr "" #: common/models.py:2377 -msgid "Display part categories in search preview window" +msgid "Show overdue SOs" msgstr "" -#: common/models.py:2382 -msgid "Search Stock" +#: common/models.py:2378 +msgid "Show overdue SOs on the homepage" msgstr "" #: common/models.py:2383 -msgid "Display stock items in search preview window" +msgid "Show pending SO shipments" msgstr "" -#: common/models.py:2388 -msgid "Hide Unavailable Stock Items" +#: common/models.py:2384 +msgid "Show pending SO shipments on the homepage" +msgstr "" + +#: common/models.py:2389 +msgid "Show News" msgstr "" #: common/models.py:2390 -msgid "Exclude stock items which are not available from the search preview window" +msgid "Show news on the homepage" msgstr "" -#: common/models.py:2396 -msgid "Search Locations" +#: common/models.py:2395 +msgid "Inline label display" msgstr "" #: common/models.py:2397 -msgid "Display stock locations in search preview window" -msgstr "" - -#: common/models.py:2402 -msgid "Search Companies" +msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "" #: common/models.py:2403 -msgid "Display companies in search preview window" +msgid "Default label printer" msgstr "" -#: common/models.py:2408 -msgid "Search Build Orders" +#: common/models.py:2405 +msgid "Configure which label printer should be selected by default" msgstr "" -#: common/models.py:2409 -msgid "Display build orders in search preview window" +#: common/models.py:2411 +msgid "Inline report display" msgstr "" -#: common/models.py:2414 -msgid "Search Purchase Orders" +#: common/models.py:2413 +msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:2415 -msgid "Display purchase orders in search preview window" +#: common/models.py:2419 +msgid "Search Parts" msgstr "" #: common/models.py:2420 -msgid "Exclude Inactive Purchase Orders" +msgid "Display parts in search preview window" msgstr "" -#: common/models.py:2422 -msgid "Exclude inactive purchase orders from search preview window" +#: common/models.py:2425 +msgid "Search Supplier Parts" msgstr "" -#: common/models.py:2428 -msgid "Search Sales Orders" +#: common/models.py:2426 +msgid "Display supplier parts in search preview window" msgstr "" -#: common/models.py:2429 -msgid "Display sales orders in search preview window" +#: common/models.py:2431 +msgid "Search Manufacturer Parts" msgstr "" -#: common/models.py:2434 -msgid "Exclude Inactive Sales Orders" +#: common/models.py:2432 +msgid "Display manufacturer parts in search preview window" msgstr "" -#: common/models.py:2436 -msgid "Exclude inactive sales orders from search preview window" +#: common/models.py:2437 +msgid "Hide Inactive Parts" msgstr "" -#: common/models.py:2442 -msgid "Search Return Orders" +#: common/models.py:2438 +msgid "Excluded inactive parts from search preview window" msgstr "" #: common/models.py:2443 -msgid "Display return orders in search preview window" +msgid "Search Categories" msgstr "" -#: common/models.py:2448 -msgid "Exclude Inactive Return Orders" +#: common/models.py:2444 +msgid "Display part categories in search preview window" +msgstr "" + +#: common/models.py:2449 +msgid "Search Stock" msgstr "" #: common/models.py:2450 -msgid "Exclude inactive return orders from search preview window" +msgid "Display stock items in search preview window" msgstr "" -#: common/models.py:2456 -msgid "Search Preview Results" +#: common/models.py:2455 +msgid "Hide Unavailable Stock Items" msgstr "" -#: common/models.py:2458 -msgid "Number of results to show in each section of the search preview window" +#: common/models.py:2457 +msgid "Exclude stock items which are not available from the search preview window" +msgstr "" + +#: common/models.py:2463 +msgid "Search Locations" msgstr "" #: common/models.py:2464 -msgid "Regex Search" +msgid "Display stock locations in search preview window" msgstr "" -#: common/models.py:2465 -msgid "Enable regular expressions in search queries" +#: common/models.py:2469 +msgid "Search Companies" msgstr "" #: common/models.py:2470 -msgid "Whole Word Search" +msgid "Display companies in search preview window" msgstr "" -#: common/models.py:2471 -msgid "Search queries return results for whole word matches" +#: common/models.py:2475 +msgid "Search Build Orders" msgstr "" #: common/models.py:2476 -msgid "Show Quantity in Forms" +msgid "Display build orders in search preview window" msgstr "" -#: common/models.py:2477 -msgid "Display available part quantity in some forms" +#: common/models.py:2481 +msgid "Search Purchase Orders" msgstr "" #: common/models.py:2482 -msgid "Escape Key Closes Forms" +msgid "Display purchase orders in search preview window" msgstr "" -#: common/models.py:2483 -msgid "Use the escape key to close modal forms" -msgstr "" - -#: common/models.py:2488 -msgid "Fixed Navbar" +#: common/models.py:2487 +msgid "Exclude Inactive Purchase Orders" msgstr "" #: common/models.py:2489 -msgid "The navbar position is fixed to the top of the screen" -msgstr "" - -#: common/models.py:2494 -msgid "Date Format" +msgid "Exclude inactive purchase orders from search preview window" msgstr "" #: common/models.py:2495 -msgid "Preferred format for displaying dates" +msgid "Search Sales Orders" msgstr "" -#: common/models.py:2508 part/templates/part/detail.html:41 -msgid "Part Scheduling" +#: common/models.py:2496 +msgid "Display sales orders in search preview window" +msgstr "" + +#: common/models.py:2501 +msgid "Exclude Inactive Sales Orders" +msgstr "" + +#: common/models.py:2503 +msgid "Exclude inactive sales orders from search preview window" msgstr "" #: common/models.py:2509 -msgid "Display part scheduling information" +msgid "Search Return Orders" msgstr "" -#: common/models.py:2514 part/templates/part/detail.html:62 -msgid "Part Stocktake" +#: common/models.py:2510 +msgid "Display return orders in search preview window" msgstr "" -#: common/models.py:2516 -msgid "Display part stocktake information (if stocktake functionality is enabled)" +#: common/models.py:2515 +msgid "Exclude Inactive Return Orders" msgstr "" -#: common/models.py:2522 -msgid "Table String Length" +#: common/models.py:2517 +msgid "Exclude inactive return orders from search preview window" msgstr "" -#: common/models.py:2524 -msgid "Maximum length limit for strings displayed in table views" +#: common/models.py:2523 +msgid "Search Preview Results" msgstr "" -#: common/models.py:2530 -msgid "Receive error reports" +#: common/models.py:2525 +msgid "Number of results to show in each section of the search preview window" msgstr "" #: common/models.py:2531 -msgid "Receive notifications for system errors" +msgid "Regex Search" msgstr "" -#: common/models.py:2536 -msgid "Last used printing machines" +#: common/models.py:2532 +msgid "Enable regular expressions in search queries" msgstr "" #: common/models.py:2537 +msgid "Whole Word Search" +msgstr "" + +#: common/models.py:2538 +msgid "Search queries return results for whole word matches" +msgstr "" + +#: common/models.py:2543 +msgid "Show Quantity in Forms" +msgstr "" + +#: common/models.py:2544 +msgid "Display available part quantity in some forms" +msgstr "" + +#: common/models.py:2549 +msgid "Escape Key Closes Forms" +msgstr "" + +#: common/models.py:2550 +msgid "Use the escape key to close modal forms" +msgstr "" + +#: common/models.py:2555 +msgid "Fixed Navbar" +msgstr "" + +#: common/models.py:2556 +msgid "The navbar position is fixed to the top of the screen" +msgstr "" + +#: common/models.py:2561 +msgid "Date Format" +msgstr "" + +#: common/models.py:2562 +msgid "Preferred format for displaying dates" +msgstr "" + +#: common/models.py:2575 part/templates/part/detail.html:41 +msgid "Part Scheduling" +msgstr "" + +#: common/models.py:2576 +msgid "Display part scheduling information" +msgstr "" + +#: common/models.py:2581 part/templates/part/detail.html:62 +msgid "Part Stocktake" +msgstr "" + +#: common/models.py:2583 +msgid "Display part stocktake information (if stocktake functionality is enabled)" +msgstr "" + +#: common/models.py:2589 +msgid "Table String Length" +msgstr "" + +#: common/models.py:2591 +msgid "Maximum length limit for strings displayed in table views" +msgstr "" + +#: common/models.py:2597 +msgid "Receive error reports" +msgstr "" + +#: common/models.py:2598 +msgid "Receive notifications for system errors" +msgstr "" + +#: common/models.py:2603 +msgid "Last used printing machines" +msgstr "" + +#: common/models.py:2604 msgid "Save the last used printing machines for a user" msgstr "" -#: common/models.py:2557 common/models.py:2558 common/models.py:2715 -#: common/models.py:2716 common/models.py:2961 common/models.py:2962 -#: common/models.py:3288 common/models.py:3289 importer/models.py:88 -#: part/models.py:3307 part/models.py:3394 part/models.py:3468 -#: part/models.py:3496 plugin/models.py:274 plugin/models.py:275 -#: report/templates/report/inventree_test_report.html:105 -#: templates/js/translated/stock.js:3120 users/models.py:111 +#: common/models.py:2621 common/models.py:2622 common/models.py:2779 +#: common/models.py:2780 common/models.py:3025 common/models.py:3026 +#: common/models.py:3349 common/models.py:3350 common/models.py:3534 +#: importer/models.py:89 part/models.py:3358 part/models.py:3445 +#: part/models.py:3519 part/models.py:3547 plugin/models.py:313 +#: plugin/models.py:314 report/templates/report/inventree_test_report.html:105 +#: templates/js/translated/stock.js:3121 users/models.py:111 msgid "User" msgstr "Bruger" -#: common/models.py:2580 +#: common/models.py:2644 msgid "Price break quantity" msgstr "" -#: common/models.py:2587 company/serializers.py:513 order/admin.py:42 -#: order/models.py:1430 order/models.py:2417 -#: templates/js/translated/company.js:1823 templates/js/translated/part.js:1892 +#: common/models.py:2651 company/serializers.py:524 order/admin.py:42 +#: order/models.py:1447 order/models.py:2456 +#: templates/js/translated/company.js:1824 templates/js/translated/part.js:1892 #: templates/js/translated/pricing.js:621 #: templates/js/translated/return_order.js:739 msgid "Price" msgstr "" -#: common/models.py:2588 +#: common/models.py:2652 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:2692 common/models.py:2877 +#: common/models.py:2756 common/models.py:2941 msgid "Endpoint" msgstr "" -#: common/models.py:2693 +#: common/models.py:2757 msgid "Endpoint at which this webhook is received" msgstr "" -#: common/models.py:2703 +#: common/models.py:2767 msgid "Name for this webhook" msgstr "" -#: common/models.py:2707 +#: common/models.py:2771 msgid "Is this webhook active" msgstr "" -#: common/models.py:2723 users/models.py:159 +#: common/models.py:2787 users/models.py:159 msgid "Token" msgstr "" -#: common/models.py:2724 +#: common/models.py:2788 msgid "Token for access" msgstr "" -#: common/models.py:2732 +#: common/models.py:2796 msgid "Secret" msgstr "" -#: common/models.py:2733 +#: common/models.py:2797 msgid "Shared secret for HMAC" msgstr "" -#: common/models.py:2841 +#: common/models.py:2905 msgid "Message ID" msgstr "" -#: common/models.py:2842 +#: common/models.py:2906 msgid "Unique identifier for this message" msgstr "" -#: common/models.py:2850 +#: common/models.py:2914 msgid "Host" msgstr "" -#: common/models.py:2851 +#: common/models.py:2915 msgid "Host from which this message was received" msgstr "" -#: common/models.py:2859 +#: common/models.py:2923 msgid "Header" msgstr "" -#: common/models.py:2860 +#: common/models.py:2924 msgid "Header of this message" msgstr "" -#: common/models.py:2867 +#: common/models.py:2931 msgid "Body" msgstr "" -#: common/models.py:2868 +#: common/models.py:2932 msgid "Body of this message" msgstr "" -#: common/models.py:2878 +#: common/models.py:2942 msgid "Endpoint on which this message was received" msgstr "" -#: common/models.py:2883 +#: common/models.py:2947 msgid "Worked on" msgstr "" -#: common/models.py:2884 +#: common/models.py:2948 msgid "Was the work on this message finished?" msgstr "" -#: common/models.py:3010 +#: common/models.py:3074 msgid "Id" msgstr "" -#: common/models.py:3012 templates/js/translated/company.js:965 -#: templates/js/translated/news.js:44 +#: common/models.py:3076 part/serializers.py:271 +#: templates/js/translated/company.js:966 templates/js/translated/news.js:44 msgid "Title" msgstr "" -#: common/models.py:3014 common/models.py:3272 company/models.py:149 -#: company/models.py:446 company/models.py:512 company/models.py:818 -#: order/models.py:302 order/models.py:1385 order/models.py:1817 -#: part/admin.py:55 part/models.py:1057 +#: common/models.py:3078 common/models.py:3333 company/models.py:146 +#: company/models.py:443 company/models.py:509 company/models.py:815 +#: order/models.py:309 order/models.py:1402 order/models.py:1846 +#: part/admin.py:55 part/models.py:1118 #: part/templates/part/part_scheduling.html:11 #: report/templates/report/inventree_build_order_report.html:164 -#: stock/admin.py:229 templates/js/translated/company.js:1319 -#: templates/js/translated/company.js:1673 templates/js/translated/order.js:376 +#: stock/admin.py:230 templates/js/translated/company.js:1320 +#: templates/js/translated/company.js:1674 templates/js/translated/order.js:376 #: templates/js/translated/part.js:2475 -#: templates/js/translated/purchase_order.js:2110 -#: templates/js/translated/purchase_order.js:2274 +#: templates/js/translated/purchase_order.js:2094 +#: templates/js/translated/purchase_order.js:2258 #: templates/js/translated/return_order.js:778 -#: templates/js/translated/sales_order.js:1092 -#: templates/js/translated/sales_order.js:2023 +#: templates/js/translated/sales_order.js:1058 +#: templates/js/translated/sales_order.js:2004 msgid "Link" msgstr "" -#: common/models.py:3016 templates/js/translated/news.js:60 +#: common/models.py:3080 templates/js/translated/news.js:60 msgid "Published" msgstr "" -#: common/models.py:3018 templates/InvenTree/settings/plugin_settings.html:32 +#: common/models.py:3082 templates/InvenTree/settings/plugin_settings.html:32 #: templates/js/translated/news.js:56 templates/js/translated/plugin.js:103 msgid "Author" msgstr "" -#: common/models.py:3020 templates/js/translated/news.js:52 +#: common/models.py:3084 templates/js/translated/news.js:52 msgid "Summary" msgstr "" -#: common/models.py:3023 +#: common/models.py:3087 msgid "Read" msgstr "" -#: common/models.py:3023 +#: common/models.py:3087 msgid "Was this news item read?" msgstr "" -#: common/models.py:3040 company/models.py:159 part/models.py:1067 +#: common/models.py:3104 company/models.py:156 part/models.py:1128 #: report/templates/report/inventree_bill_of_materials_report.html:126 #: report/templates/report/inventree_bill_of_materials_report.html:148 #: report/templates/report/inventree_return_order_report.html:35 -#: stock/templates/stock/item_base.html:133 templates/503.html:31 +#: stock/templates/stock/item_base.html:130 templates/503.html:31 #: templates/hover_image.html:7 templates/hover_image.html:9 #: templates/modals.html:6 msgid "Image" msgstr "" -#: common/models.py:3040 +#: common/models.py:3104 msgid "Image file" msgstr "" -#: common/models.py:3052 common/models.py:3256 +#: common/models.py:3116 common/models.py:3317 msgid "Target model type for this image" msgstr "" -#: common/models.py:3056 +#: common/models.py:3120 msgid "Target model ID for this image" msgstr "" -#: common/models.py:3078 +#: common/models.py:3142 msgid "Custom Unit" msgstr "" -#: common/models.py:3099 +#: common/models.py:3160 msgid "Unit symbol must be unique" msgstr "" -#: common/models.py:3114 +#: common/models.py:3175 msgid "Unit name must be a valid identifier" msgstr "" -#: common/models.py:3133 +#: common/models.py:3194 msgid "Unit name" msgstr "" -#: common/models.py:3140 templates/InvenTree/settings/settings_staff_js.html:75 +#: common/models.py:3201 templates/InvenTree/settings/settings_staff_js.html:75 msgid "Symbol" msgstr "" -#: common/models.py:3141 +#: common/models.py:3202 msgid "Optional unit symbol" msgstr "" -#: common/models.py:3147 templates/InvenTree/settings/settings_staff_js.html:71 +#: common/models.py:3208 templates/InvenTree/settings/settings_staff_js.html:71 msgid "Definition" msgstr "" -#: common/models.py:3148 +#: common/models.py:3209 msgid "Unit definition" msgstr "" -#: common/models.py:3206 common/models.py:3263 stock/models.py:2558 -#: templates/js/translated/attachment.js:119 +#: common/models.py:3267 common/models.py:3324 stock/models.py:2674 +#: stock/serializers.py:244 templates/js/translated/attachment.js:119 #: templates/js/translated/attachment.js:345 msgid "Attachment" msgstr "Vedhæftning" -#: common/models.py:3218 +#: common/models.py:3279 msgid "Missing file" msgstr "Manglende fil" -#: common/models.py:3219 +#: common/models.py:3280 msgid "Missing external link" msgstr "Manglende eksternt link" -#: common/models.py:3264 +#: common/models.py:3325 msgid "Select file to attach" msgstr "Vælg fil, der skal vedhæftes" -#: common/models.py:3279 templates/js/translated/attachment.js:120 +#: common/models.py:3340 templates/js/translated/attachment.js:120 #: templates/js/translated/attachment.js:360 msgid "Comment" msgstr "Kommentar" -#: common/models.py:3280 +#: common/models.py:3341 msgid "Attachment comment" msgstr "" -#: common/models.py:3296 +#: common/models.py:3357 msgid "Upload date" msgstr "" -#: common/models.py:3297 +#: common/models.py:3358 msgid "Date the file was uploaded" msgstr "" -#: common/models.py:3301 +#: common/models.py:3362 msgid "File size" msgstr "" -#: common/models.py:3301 +#: common/models.py:3362 msgid "File size in bytes" msgstr "" -#: common/models.py:3339 common/serializers.py:562 +#: common/models.py:3400 common/serializers.py:609 msgid "Invalid model type specified for attachment" msgstr "" -#: common/notifications.py:314 +#: common/models.py:3409 plugin/models.py:43 users/models.py:100 +msgid "Key" +msgstr "" + +#: common/models.py:3410 +msgid "Value that will be saved in the models database" +msgstr "" + +#: common/models.py:3413 +msgid "Name of the state" +msgstr "" + +#: common/models.py:3417 part/serializers.py:273 +msgid "Label" +msgstr "" + +#: common/models.py:3418 +msgid "Label that will be displayed in the frontend" +msgstr "" + +#: common/models.py:3424 +msgid "Color" +msgstr "" + +#: common/models.py:3425 +msgid "Color that will be displayed in the frontend" +msgstr "" + +#: common/models.py:3428 +msgid "Logical Key" +msgstr "" + +#: common/models.py:3430 +msgid "State logical key that is equal to this custom state in business logic" +msgstr "" + +#: common/models.py:3438 part/serializers.py:275 +msgid "Model" +msgstr "" + +#: common/models.py:3439 +msgid "Model this state is associated with" +msgstr "" + +#: common/models.py:3443 +msgid "Reference Status Set" +msgstr "" + +#: common/models.py:3444 +msgid "Status set that is extended with this custom state" +msgstr "" + +#: common/models.py:3450 +msgid "Custom State" +msgstr "" + +#: common/models.py:3451 +msgid "Custom States" +msgstr "" + +#: common/models.py:3466 +msgid "Model must be selected" +msgstr "" + +#: common/models.py:3469 +msgid "Key must be selected" +msgstr "" + +#: common/models.py:3472 +msgid "Logical key must be selected" +msgstr "" + +#: common/models.py:3476 +msgid "Key must be different from logical key" +msgstr "" + +#: common/models.py:3480 +msgid "Reference status must be selected" +msgstr "" + +#: common/models.py:3492 +msgid "Reference status set not found" +msgstr "" + +#: common/models.py:3498 +msgid "Key must be different from the logical keys of the reference status" +msgstr "" + +#: common/models.py:3504 +msgid "Logical key must be in the logical keys of the reference status" +msgstr "" + +#: common/models.py:3519 +msgid "Barcode Scan" +msgstr "" + +#: common/models.py:3523 importer/models.py:512 part/models.py:4009 +msgid "Data" +msgstr "" + +#: common/models.py:3524 +msgid "Barcode data" +msgstr "" + +#: common/models.py:3535 +msgid "User who scanned the barcode" +msgstr "" + +#: common/models.py:3540 importer/models.py:60 +msgid "Timestamp" +msgstr "" + +#: common/models.py:3541 +msgid "Date and time of the barcode scan" +msgstr "" + +#: common/models.py:3547 +msgid "URL endpoint which processed the barcode" +msgstr "" + +#: common/models.py:3554 order/models.py:1437 plugin/serializers.py:89 +msgid "Context" +msgstr "" + +#: common/models.py:3555 +msgid "Context data for the barcode scan" +msgstr "" + +#: common/models.py:3562 +msgid "Response" +msgstr "" + +#: common/models.py:3563 +msgid "Response data from the barcode scan" +msgstr "" + +#: common/models.py:3569 report/templates/report/inventree_test_report.html:103 +#: stock/models.py:2660 +msgid "Result" +msgstr "" + +#: common/models.py:3570 +msgid "Was the barcode scan successful?" +msgstr "" + +#: common/notifications.py:328 #, python-brace-format msgid "New {verbose_name}" msgstr "" -#: common/notifications.py:316 +#: common/notifications.py:330 msgid "A new order has been created and assigned to you" msgstr "" -#: common/notifications.py:322 +#: common/notifications.py:336 #, python-brace-format msgid "{verbose_name} canceled" msgstr "" -#: common/notifications.py:324 +#: common/notifications.py:338 msgid "A order that is assigned to you was canceled" msgstr "" -#: common/notifications.py:330 common/notifications.py:337 order/api.py:462 +#: common/notifications.py:344 common/notifications.py:351 order/api.py:440 msgid "Items Received" msgstr "" -#: common/notifications.py:332 +#: common/notifications.py:346 msgid "Items have been received against a purchase order" msgstr "" -#: common/notifications.py:339 +#: common/notifications.py:353 msgid "Items have been received against a return order" msgstr "" -#: common/notifications.py:457 +#: common/notifications.py:475 msgid "Error raised by plugin" msgstr "" -#: common/serializers.py:375 +#: common/serializers.py:423 msgid "Is Running" msgstr "" -#: common/serializers.py:381 +#: common/serializers.py:429 msgid "Pending Tasks" msgstr "" -#: common/serializers.py:387 +#: common/serializers.py:435 msgid "Scheduled Tasks" msgstr "" -#: common/serializers.py:393 +#: common/serializers.py:441 msgid "Failed Tasks" msgstr "" -#: common/serializers.py:408 +#: common/serializers.py:456 msgid "Task ID" msgstr "" -#: common/serializers.py:408 +#: common/serializers.py:456 msgid "Unique task ID" msgstr "" -#: common/serializers.py:410 +#: common/serializers.py:458 msgid "Lock" msgstr "" -#: common/serializers.py:410 +#: common/serializers.py:458 msgid "Lock time" msgstr "" -#: common/serializers.py:412 +#: common/serializers.py:460 msgid "Task name" msgstr "" -#: common/serializers.py:414 +#: common/serializers.py:462 msgid "Function" msgstr "" -#: common/serializers.py:414 +#: common/serializers.py:462 msgid "Function name" msgstr "" -#: common/serializers.py:416 +#: common/serializers.py:464 msgid "Arguments" msgstr "" -#: common/serializers.py:416 +#: common/serializers.py:464 msgid "Task arguments" msgstr "" -#: common/serializers.py:419 +#: common/serializers.py:467 msgid "Keyword Arguments" msgstr "" -#: common/serializers.py:419 +#: common/serializers.py:467 msgid "Task keyword arguments" msgstr "" -#: common/serializers.py:529 +#: common/serializers.py:577 msgid "Filename" msgstr "Filnavn" -#: common/serializers.py:536 report/api.py:100 report/serializers.py:53 +#: common/serializers.py:584 report/api.py:100 report/serializers.py:54 msgid "Model Type" msgstr "" -#: common/serializers.py:565 +#: common/serializers.py:612 msgid "User does not have permission to create or edit attachments for this model" msgstr "" @@ -4116,15 +4295,15 @@ msgstr "" msgid "Match Items" msgstr "" -#: common/views.py:401 +#: common/views.py:397 msgid "Fields matching failed" msgstr "" -#: common/views.py:464 +#: common/views.py:460 msgid "Parts imported" msgstr "" -#: common/views.py:494 order/templates/order/order_wizard/match_fields.html:27 +#: common/views.py:490 order/templates/order/order_wizard/match_fields.html:27 #: order/templates/order/order_wizard/match_parts.html:19 #: order/templates/order/order_wizard/po_upload.html:49 #: part/templates/part/import_wizard/match_fields.html:27 @@ -4155,429 +4334,429 @@ msgstr "" msgid "Supplier is Active" msgstr "" -#: company/models.py:100 company/models.py:371 +#: company/models.py:97 company/models.py:368 #: company/templates/company/company_base.html:8 #: company/templates/company/company_base.html:12 stock/api.py:812 -#: templates/InvenTree/search.html:178 templates/js/translated/company.js:496 +#: templates/InvenTree/search.html:178 templates/js/translated/company.js:497 msgid "Company" msgstr "" -#: company/models.py:101 company/views.py:51 +#: company/models.py:98 company/views.py:51 #: templates/js/translated/search.js:192 msgid "Companies" msgstr "" -#: company/models.py:117 +#: company/models.py:114 msgid "Company description" msgstr "" -#: company/models.py:118 +#: company/models.py:115 msgid "Description of the company" msgstr "" -#: company/models.py:123 company/templates/company/company_base.html:106 +#: company/models.py:120 company/templates/company/company_base.html:106 #: templates/InvenTree/settings/plugin_settings.html:54 -#: templates/js/translated/company.js:532 +#: templates/js/translated/company.js:533 msgid "Website" msgstr "" -#: company/models.py:123 +#: company/models.py:120 msgid "Company website URL" msgstr "" -#: company/models.py:128 +#: company/models.py:125 msgid "Phone number" msgstr "" -#: company/models.py:130 +#: company/models.py:127 msgid "Contact phone number" msgstr "" -#: company/models.py:137 +#: company/models.py:134 msgid "Contact email address" msgstr "" -#: company/models.py:142 company/models.py:275 -#: company/templates/company/company_base.html:145 order/models.py:342 -#: order/templates/order/order_base.html:208 -#: order/templates/order/return_order_base.html:177 -#: order/templates/order/sales_order_base.html:221 +#: company/models.py:139 company/models.py:272 +#: company/templates/company/company_base.html:145 order/models.py:349 +#: order/templates/order/order_base.html:217 +#: order/templates/order/return_order_base.html:178 +#: order/templates/order/sales_order_base.html:222 msgid "Contact" msgstr "" -#: company/models.py:144 +#: company/models.py:141 msgid "Point of contact" msgstr "" -#: company/models.py:150 +#: company/models.py:147 msgid "Link to external company information" msgstr "" -#: company/models.py:163 +#: company/models.py:160 msgid "Is this company active?" msgstr "" -#: company/models.py:168 +#: company/models.py:165 msgid "Is customer" msgstr "" -#: company/models.py:169 +#: company/models.py:166 msgid "Do you sell items to this company?" msgstr "" -#: company/models.py:174 +#: company/models.py:171 msgid "Is supplier" msgstr "" -#: company/models.py:175 +#: company/models.py:172 msgid "Do you purchase items from this company?" msgstr "" -#: company/models.py:180 +#: company/models.py:177 msgid "Is manufacturer" msgstr "" -#: company/models.py:181 +#: company/models.py:178 msgid "Does this company manufacture parts?" msgstr "" -#: company/models.py:189 +#: company/models.py:186 msgid "Default currency used for this company" msgstr "" -#: company/models.py:314 company/templates/company/company_base.html:124 -#: order/models.py:352 order/templates/order/order_base.html:215 -#: order/templates/order/return_order_base.html:184 -#: order/templates/order/sales_order_base.html:228 +#: company/models.py:311 company/templates/company/company_base.html:124 +#: order/models.py:359 order/templates/order/order_base.html:224 +#: order/templates/order/return_order_base.html:185 +#: order/templates/order/sales_order_base.html:229 msgid "Address" msgstr "" -#: company/models.py:315 company/templates/company/sidebar.html:35 +#: company/models.py:312 company/templates/company/sidebar.html:35 msgid "Addresses" msgstr "" -#: company/models.py:372 +#: company/models.py:369 msgid "Select company" msgstr "" -#: company/models.py:377 +#: company/models.py:374 msgid "Address title" msgstr "" -#: company/models.py:378 +#: company/models.py:375 msgid "Title describing the address entry" msgstr "" -#: company/models.py:384 +#: company/models.py:381 msgid "Primary address" msgstr "" -#: company/models.py:385 +#: company/models.py:382 msgid "Set as primary address" msgstr "" -#: company/models.py:390 templates/js/translated/company.js:914 -#: templates/js/translated/company.js:971 +#: company/models.py:387 templates/js/translated/company.js:915 +#: templates/js/translated/company.js:972 msgid "Line 1" msgstr "" -#: company/models.py:391 +#: company/models.py:388 msgid "Address line 1" msgstr "" -#: company/models.py:397 templates/js/translated/company.js:915 -#: templates/js/translated/company.js:977 +#: company/models.py:394 templates/js/translated/company.js:916 +#: templates/js/translated/company.js:978 msgid "Line 2" msgstr "" -#: company/models.py:398 +#: company/models.py:395 msgid "Address line 2" msgstr "" -#: company/models.py:404 company/models.py:405 -#: templates/js/translated/company.js:983 +#: company/models.py:401 company/models.py:402 +#: templates/js/translated/company.js:984 msgid "Postal code" msgstr "" -#: company/models.py:411 +#: company/models.py:408 msgid "City/Region" msgstr "" -#: company/models.py:412 +#: company/models.py:409 msgid "Postal code city/region" msgstr "" -#: company/models.py:418 +#: company/models.py:415 msgid "State/Province" msgstr "" -#: company/models.py:419 +#: company/models.py:416 msgid "State or province" msgstr "" -#: company/models.py:425 templates/js/translated/company.js:1001 +#: company/models.py:422 templates/js/translated/company.js:1002 msgid "Country" msgstr "" -#: company/models.py:426 +#: company/models.py:423 msgid "Address country" msgstr "" -#: company/models.py:432 +#: company/models.py:429 msgid "Courier shipping notes" msgstr "" -#: company/models.py:433 +#: company/models.py:430 msgid "Notes for shipping courier" msgstr "" -#: company/models.py:439 +#: company/models.py:436 msgid "Internal shipping notes" msgstr "" -#: company/models.py:440 +#: company/models.py:437 msgid "Shipping notes for internal use" msgstr "" -#: company/models.py:447 +#: company/models.py:444 msgid "Link to address information (external)" msgstr "" -#: company/models.py:470 company/models.py:587 company/models.py:811 +#: company/models.py:467 company/models.py:584 company/models.py:808 #: company/templates/company/manufacturer_part.html:7 #: company/templates/company/manufacturer_part.html:24 -#: stock/templates/stock/item_base.html:217 +#: stock/templates/stock/item_base.html:214 msgid "Manufacturer Part" msgstr "" -#: company/models.py:487 company/models.py:779 stock/models.py:787 -#: stock/serializers.py:445 stock/templates/stock/item_base.html:142 +#: company/models.py:484 company/models.py:776 stock/models.py:864 +#: stock/serializers.py:455 stock/templates/stock/item_base.html:139 #: templates/js/translated/bom.js:622 msgid "Base Part" msgstr "" -#: company/models.py:489 company/models.py:781 +#: company/models.py:486 company/models.py:778 msgid "Select part" msgstr "" -#: company/models.py:498 company/templates/company/company_base.html:82 +#: company/models.py:495 company/templates/company/company_base.html:82 #: company/templates/company/manufacturer_part.html:90 -#: company/templates/company/supplier_part.html:145 part/serializers.py:554 -#: stock/templates/stock/item_base.html:207 -#: templates/js/translated/company.js:507 -#: templates/js/translated/company.js:1118 -#: templates/js/translated/company.js:1296 -#: templates/js/translated/company.js:1611 +#: company/templates/company/supplier_part.html:146 part/serializers.py:598 +#: stock/templates/stock/item_base.html:204 +#: templates/js/translated/company.js:508 +#: templates/js/translated/company.js:1119 +#: templates/js/translated/company.js:1297 +#: templates/js/translated/company.js:1612 #: templates/js/translated/table_filters.js:812 msgid "Manufacturer" msgstr "" -#: company/models.py:499 +#: company/models.py:496 msgid "Select manufacturer" msgstr "" -#: company/models.py:505 company/templates/company/manufacturer_part.html:101 -#: company/templates/company/supplier_part.html:153 order/serializers.py:556 -#: part/serializers.py:564 templates/js/translated/company.js:351 -#: templates/js/translated/company.js:1117 -#: templates/js/translated/company.js:1312 -#: templates/js/translated/company.js:1630 templates/js/translated/part.js:1807 -#: templates/js/translated/purchase_order.js:1921 -#: templates/js/translated/purchase_order.js:2123 +#: company/models.py:502 company/templates/company/manufacturer_part.html:101 +#: company/templates/company/supplier_part.html:154 order/serializers.py:641 +#: part/serializers.py:608 templates/js/translated/company.js:352 +#: templates/js/translated/company.js:1118 +#: templates/js/translated/company.js:1313 +#: templates/js/translated/company.js:1631 templates/js/translated/part.js:1807 +#: templates/js/translated/purchase_order.js:1905 +#: templates/js/translated/purchase_order.js:2107 msgid "MPN" msgstr "" -#: company/models.py:513 +#: company/models.py:510 msgid "URL for external manufacturer part link" msgstr "" -#: company/models.py:522 +#: company/models.py:519 msgid "Manufacturer part description" msgstr "" -#: company/models.py:575 +#: company/models.py:572 msgid "Manufacturer Part Parameter" msgstr "" -#: company/models.py:594 +#: company/models.py:591 msgid "Parameter name" msgstr "" -#: company/models.py:600 report/templates/report/inventree_test_report.html:104 -#: stock/models.py:2550 templates/js/translated/company.js:1166 -#: templates/js/translated/company.js:1419 templates/js/translated/part.js:1499 +#: company/models.py:597 report/templates/report/inventree_test_report.html:104 +#: stock/models.py:2666 templates/js/translated/company.js:1167 +#: templates/js/translated/company.js:1420 templates/js/translated/part.js:1499 #: templates/js/translated/stock.js:1607 msgid "Value" msgstr "" -#: company/models.py:601 +#: company/models.py:598 msgid "Parameter value" msgstr "" -#: company/models.py:608 company/templates/company/supplier_part.html:168 -#: part/admin.py:57 part/models.py:1147 part/models.py:3771 -#: part/templates/part/part_base.html:293 -#: templates/js/translated/company.js:1425 templates/js/translated/part.js:1518 +#: company/models.py:605 company/templates/company/supplier_part.html:169 +#: part/admin.py:57 part/models.py:1208 part/models.py:3822 +#: part/templates/part/part_base.html:301 +#: templates/js/translated/company.js:1426 templates/js/translated/part.js:1518 #: templates/js/translated/part.js:1622 templates/js/translated/part.js:2376 msgid "Units" msgstr "" -#: company/models.py:609 +#: company/models.py:606 msgid "Parameter units" msgstr "" -#: company/models.py:662 company/templates/company/supplier_part.html:7 -#: company/templates/company/supplier_part.html:24 order/api.py:442 -#: order/serializers.py:491 stock/models.py:798 -#: stock/templates/stock/item_base.html:233 -#: templates/js/translated/build.js:1052 -#: templates/js/translated/company.js:1600 -#: templates/js/translated/purchase_order.js:752 -#: templates/js/translated/stock.js:2365 +#: company/models.py:659 company/templates/company/supplier_part.html:8 +#: company/templates/company/supplier_part.html:25 order/api.py:392 +#: order/serializers.py:576 stock/models.py:875 +#: stock/templates/stock/item_base.html:230 +#: templates/js/translated/build.js:1055 +#: templates/js/translated/company.js:1601 +#: templates/js/translated/purchase_order.js:735 +#: templates/js/translated/stock.js:2366 msgid "Supplier Part" msgstr "" -#: company/models.py:719 +#: company/models.py:716 msgid "Pack units must be compatible with the base part units" msgstr "" -#: company/models.py:726 +#: company/models.py:723 msgid "Pack units must be greater than zero" msgstr "" -#: company/models.py:740 +#: company/models.py:737 msgid "Linked manufacturer part must reference the same base part" msgstr "" -#: company/models.py:789 company/templates/company/company_base.html:87 -#: company/templates/company/supplier_part.html:129 order/models.py:491 -#: order/templates/order/order_base.html:141 part/bom.py:280 part/bom.py:318 -#: part/serializers.py:538 plugin/builtin/suppliers/digikey.py:25 +#: company/models.py:786 company/templates/company/company_base.html:87 +#: company/templates/company/supplier_part.html:130 order/models.py:503 +#: order/templates/order/order_base.html:150 part/bom.py:279 part/bom.py:314 +#: part/serializers.py:582 plugin/builtin/suppliers/digikey.py:25 #: plugin/builtin/suppliers/lcsc.py:26 plugin/builtin/suppliers/mouser.py:24 -#: plugin/builtin/suppliers/tme.py:26 stock/templates/stock/item_base.html:224 +#: plugin/builtin/suppliers/tme.py:26 stock/templates/stock/item_base.html:221 #: templates/email/overdue_purchase_order.html:16 -#: templates/js/translated/company.js:350 -#: templates/js/translated/company.js:511 -#: templates/js/translated/company.js:1584 templates/js/translated/part.js:1775 +#: templates/js/translated/company.js:351 +#: templates/js/translated/company.js:512 +#: templates/js/translated/company.js:1585 templates/js/translated/part.js:1775 #: templates/js/translated/pricing.js:498 -#: templates/js/translated/purchase_order.js:1759 +#: templates/js/translated/purchase_order.js:1743 #: templates/js/translated/table_filters.js:816 msgid "Supplier" msgstr "" -#: company/models.py:790 +#: company/models.py:787 msgid "Select supplier" msgstr "" -#: company/models.py:796 part/serializers.py:549 +#: company/models.py:793 part/serializers.py:593 msgid "Supplier stock keeping unit" msgstr "" -#: company/models.py:802 +#: company/models.py:799 msgid "Is this supplier part active?" msgstr "" -#: company/models.py:812 +#: company/models.py:809 msgid "Select manufacturer part" msgstr "" -#: company/models.py:819 +#: company/models.py:816 msgid "URL for external supplier part link" msgstr "" -#: company/models.py:828 +#: company/models.py:825 msgid "Supplier part description" msgstr "" -#: company/models.py:835 company/templates/company/supplier_part.html:187 -#: order/serializers.py:698 part/admin.py:415 part/models.py:4288 +#: company/models.py:832 company/templates/company/supplier_part.html:188 +#: order/serializers.py:783 part/admin.py:415 part/models.py:4345 #: part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_bill_of_materials_report.html:140 #: report/templates/report/inventree_purchase_order_report.html:32 #: report/templates/report/inventree_return_order_report.html:27 #: report/templates/report/inventree_sales_order_report.html:32 #: report/templates/report/inventree_stock_location_report.html:105 -#: stock/serializers.py:776 templates/js/translated/purchase_order.js:1185 -#: templates/js/translated/purchase_order.js:1344 +#: stock/serializers.py:807 templates/js/translated/purchase_order.js:1168 +#: templates/js/translated/purchase_order.js:1327 msgid "Note" msgstr "" -#: company/models.py:844 part/models.py:2117 +#: company/models.py:841 part/models.py:2177 msgid "base cost" msgstr "" -#: company/models.py:845 part/models.py:2118 +#: company/models.py:842 part/models.py:2178 msgid "Minimum charge (e.g. stocking fee)" msgstr "" -#: company/models.py:853 +#: company/models.py:850 msgid "Part packaging" msgstr "" -#: company/models.py:858 templates/js/translated/company.js:1651 +#: company/models.py:855 templates/js/translated/company.js:1652 #: templates/js/translated/part.js:1828 templates/js/translated/part.js:1884 -#: templates/js/translated/purchase_order.js:311 -#: templates/js/translated/purchase_order.js:841 -#: templates/js/translated/purchase_order.js:1103 -#: templates/js/translated/purchase_order.js:2154 -#: templates/js/translated/purchase_order.js:2171 +#: templates/js/translated/purchase_order.js:294 +#: templates/js/translated/purchase_order.js:824 +#: templates/js/translated/purchase_order.js:1086 +#: templates/js/translated/purchase_order.js:2138 +#: templates/js/translated/purchase_order.js:2155 msgid "Pack Quantity" msgstr "" -#: company/models.py:860 +#: company/models.py:857 msgid "Total quantity supplied in a single pack. Leave empty for single items." msgstr "" -#: company/models.py:879 part/models.py:2124 +#: company/models.py:876 part/models.py:2184 msgid "multiple" msgstr "" -#: company/models.py:880 +#: company/models.py:877 msgid "Order multiple" msgstr "" -#: company/models.py:892 +#: company/models.py:889 msgid "Quantity available from supplier" msgstr "" -#: company/models.py:898 +#: company/models.py:895 msgid "Availability Updated" msgstr "" -#: company/models.py:899 +#: company/models.py:896 msgid "Date of last update of availability data" msgstr "" -#: company/models.py:1027 +#: company/models.py:1024 msgid "Supplier Price Break" msgstr "" -#: company/serializers.py:174 +#: company/serializers.py:178 msgid "Default currency used for this supplier" msgstr "" -#: company/serializers.py:210 +#: company/serializers.py:214 msgid "Company Name" msgstr "" -#: company/serializers.py:393 part/admin.py:126 part/serializers.py:898 -#: part/templates/part/part_base.html:197 -#: templates/js/translated/company.js:1689 +#: company/serializers.py:397 part/admin.py:126 part/serializers.py:950 +#: part/templates/part/part_base.html:198 stock/serializers.py:474 +#: templates/js/translated/company.js:1690 #: templates/js/translated/table_filters.js:362 msgid "In Stock" msgstr "" #: company/templates/company/company_base.html:16 -#: part/templates/part/part_base.html:146 -#: templates/js/translated/company.js:1287 -#: templates/js/translated/company.js:1575 -#: templates/js/translated/model_renderers.js:313 +#: part/templates/part/part_base.html:147 +#: templates/js/translated/company.js:1288 +#: templates/js/translated/company.js:1576 +#: templates/js/translated/model_renderers.js:316 #: templates/js/translated/part.js:817 templates/js/translated/part.js:1225 msgid "Inactive" msgstr "" #: company/templates/company/company_base.html:27 -#: templates/js/translated/purchase_order.js:242 +#: templates/js/translated/purchase_order.js:224 msgid "Create Purchase Order" msgstr "" @@ -4590,7 +4769,7 @@ msgid "Edit company information" msgstr "" #: company/templates/company/company_base.html:39 -#: templates/js/translated/company.js:445 +#: templates/js/translated/company.js:446 msgid "Edit Company" msgstr "" @@ -4605,11 +4784,12 @@ msgstr "" #: company/templates/company/company_base.html:53 #: company/templates/company/manufacturer_part.html:51 -#: company/templates/company/supplier_part.html:83 +#: company/templates/company/supplier_part.html:84 #: part/templates/part/part_thumb.html:20 #: report/templates/report/inventree_build_order_report.html:98 #: report/templates/report/inventree_purchase_order_report.html:40 #: report/templates/report/inventree_sales_order_report.html:40 +#: report/templates/report/inventree_sales_order_shipment_report.html:37 #: report/templates/report/inventree_test_report.html:84 #: report/templates/report/inventree_test_report.html:162 msgid "Part image" @@ -4630,16 +4810,16 @@ msgstr "" msgid "Delete image" msgstr "" -#: company/templates/company/company_base.html:92 order/models.py:990 -#: order/models.py:2147 order/templates/order/return_order_base.html:134 -#: order/templates/order/sales_order_base.html:151 stock/models.py:840 -#: stock/models.py:841 stock/serializers.py:1329 -#: stock/templates/stock/item_base.html:405 +#: company/templates/company/company_base.html:92 order/models.py:1017 +#: order/models.py:2186 order/templates/order/return_order_base.html:135 +#: order/templates/order/sales_order_base.html:152 stock/models.py:917 +#: stock/models.py:918 stock/serializers.py:1360 +#: stock/templates/stock/item_base.html:402 #: templates/email/overdue_sales_order.html:16 -#: templates/js/translated/company.js:503 +#: templates/js/translated/company.js:504 #: templates/js/translated/return_order.js:295 -#: templates/js/translated/sales_order.js:820 -#: templates/js/translated/stock.js:3043 +#: templates/js/translated/sales_order.js:779 +#: templates/js/translated/stock.js:3044 #: templates/js/translated/table_filters.js:820 msgid "Customer" msgstr "" @@ -4653,7 +4833,7 @@ msgid "Phone" msgstr "" #: company/templates/company/company_base.html:211 -#: part/templates/part/part_base.html:536 +#: part/templates/part/part_base.html:544 msgid "Remove Image" msgstr "" @@ -4662,19 +4842,19 @@ msgid "Remove associated image from this company" msgstr "" #: company/templates/company/company_base.html:214 -#: part/templates/part/part_base.html:539 +#: part/templates/part/part_base.html:547 #: templates/InvenTree/settings/user.html:88 #: templates/InvenTree/settings/user_sso.html:43 msgid "Remove" msgstr "" #: company/templates/company/company_base.html:243 -#: part/templates/part/part_base.html:568 +#: part/templates/part/part_base.html:576 msgid "Upload Image" msgstr "" #: company/templates/company/company_base.html:258 -#: part/templates/part/part_base.html:622 +#: part/templates/part/part_base.html:630 msgid "Download Image" msgstr "" @@ -4714,7 +4894,7 @@ msgstr "" #: company/templates/company/detail.html:75 #: company/templates/company/sidebar.html:12 #: company/templates/company/supplier_part_sidebar.html:7 -#: order/templates/order/order_base.html:13 +#: order/templates/order/order_base.html:14 #: order/templates/order/purchase_orders.html:8 #: order/templates/order/purchase_orders.html:12 #: part/templates/part/detail.html:122 part/templates/part/part_sidebar.html:35 @@ -4737,7 +4917,7 @@ msgstr "" #: company/templates/company/detail.html:101 #: company/templates/company/sidebar.html:21 -#: order/templates/order/sales_order_base.html:13 +#: order/templates/order/sales_order_base.html:14 #: order/templates/order/sales_orders.html:8 #: order/templates/order/sales_orders.html:15 #: part/templates/part/detail.html:143 part/templates/part/part_sidebar.html:39 @@ -4764,7 +4944,7 @@ msgstr "" #: company/templates/company/detail.html:142 #: company/templates/company/sidebar.html:29 -#: order/templates/order/return_order_base.html:13 +#: order/templates/order/return_order_base.html:14 #: order/templates/order/return_orders.html:8 #: order/templates/order/return_orders.html:15 #: templates/InvenTree/settings/sidebar.html:61 @@ -4811,24 +4991,24 @@ msgid "Manufacturers" msgstr "" #: company/templates/company/manufacturer_part.html:35 -#: company/templates/company/supplier_part.html:227 -#: part/templates/part/detail.html:125 part/templates/part/part_base.html:83 +#: company/templates/company/supplier_part.html:228 +#: part/templates/part/detail.html:125 part/templates/part/part_base.html:84 msgid "Order part" msgstr "" #: company/templates/company/manufacturer_part.html:39 -#: templates/js/translated/company.js:1343 +#: templates/js/translated/company.js:1344 msgid "Edit manufacturer part" msgstr "" #: company/templates/company/manufacturer_part.html:43 -#: templates/js/translated/company.js:1344 +#: templates/js/translated/company.js:1345 msgid "Delete manufacturer part" msgstr "" #: company/templates/company/manufacturer_part.html:65 -#: company/templates/company/supplier_part.html:97 order/api.py:448 -#: order/serializers.py:564 +#: company/templates/company/supplier_part.html:98 order/api.py:411 +#: order/serializers.py:649 msgid "Internal Part" msgstr "" @@ -4837,8 +5017,8 @@ msgid "No manufacturer information available" msgstr "" #: company/templates/company/manufacturer_part.html:119 -#: company/templates/company/supplier_part.html:15 company/views.py:31 -#: part/admin.py:122 part/serializers.py:904 +#: company/templates/company/supplier_part.html:16 company/views.py:31 +#: part/admin.py:122 part/serializers.py:956 #: part/templates/part/part_sidebar.html:33 templates/InvenTree/search.html:190 #: templates/navbar.html:48 msgid "Suppliers" @@ -4887,112 +5067,113 @@ msgstr "" msgid "Contacts" msgstr "" -#: company/templates/company/supplier_part.html:50 -#: templates/js/translated/company.js:1526 +#: company/templates/company/supplier_part.html:51 +#: templates/js/translated/company.js:1527 msgid "Supplier part actions" msgstr "" -#: company/templates/company/supplier_part.html:55 #: company/templates/company/supplier_part.html:56 -#: company/templates/company/supplier_part.html:228 +#: company/templates/company/supplier_part.html:57 +#: company/templates/company/supplier_part.html:229 #: part/templates/part/detail.html:126 msgid "Order Part" msgstr "" -#: company/templates/company/supplier_part.html:60 #: company/templates/company/supplier_part.html:61 +#: company/templates/company/supplier_part.html:62 msgid "Update Availability" msgstr "" -#: company/templates/company/supplier_part.html:63 #: company/templates/company/supplier_part.html:64 -#: templates/js/translated/company.js:294 +#: company/templates/company/supplier_part.html:65 +#: templates/js/translated/company.js:295 msgid "Edit Supplier Part" msgstr "" -#: company/templates/company/supplier_part.html:68 #: company/templates/company/supplier_part.html:69 -#: templates/js/translated/company.js:269 +#: company/templates/company/supplier_part.html:70 +#: templates/js/translated/company.js:270 msgid "Duplicate Supplier Part" msgstr "" -#: company/templates/company/supplier_part.html:73 +#: company/templates/company/supplier_part.html:74 msgid "Delete Supplier Part" msgstr "" -#: company/templates/company/supplier_part.html:74 +#: company/templates/company/supplier_part.html:75 msgid "Delete Supplier Part" msgstr "" -#: company/templates/company/supplier_part.html:133 +#: company/templates/company/supplier_part.html:134 +#: order/templates/order/order_base.html:155 msgid "No supplier information available" msgstr "" -#: company/templates/company/supplier_part.html:139 order/serializers.py:553 -#: part/bom.py:287 part/bom.py:319 part/serializers.py:548 -#: templates/js/translated/company.js:349 templates/js/translated/part.js:1793 +#: company/templates/company/supplier_part.html:140 order/serializers.py:638 +#: part/bom.py:286 part/bom.py:315 part/serializers.py:592 +#: templates/js/translated/company.js:350 templates/js/translated/part.js:1793 #: templates/js/translated/pricing.js:510 -#: templates/js/translated/purchase_order.js:1920 -#: templates/js/translated/purchase_order.js:2098 +#: templates/js/translated/purchase_order.js:1904 +#: templates/js/translated/purchase_order.js:2082 msgid "SKU" msgstr "" -#: company/templates/company/supplier_part.html:206 +#: company/templates/company/supplier_part.html:207 msgid "Supplier Part Stock" msgstr "" -#: company/templates/company/supplier_part.html:209 -#: part/templates/part/detail.html:24 stock/templates/stock/location.html:204 +#: company/templates/company/supplier_part.html:210 +#: part/templates/part/detail.html:24 stock/templates/stock/location.html:205 msgid "Create new stock item" msgstr "" -#: company/templates/company/supplier_part.html:210 -#: part/templates/part/detail.html:25 stock/templates/stock/location.html:205 +#: company/templates/company/supplier_part.html:211 +#: part/templates/part/detail.html:25 stock/templates/stock/location.html:206 #: templates/js/translated/stock.js:543 msgid "New Stock Item" msgstr "" -#: company/templates/company/supplier_part.html:223 +#: company/templates/company/supplier_part.html:224 msgid "Supplier Part Orders" msgstr "" -#: company/templates/company/supplier_part.html:246 +#: company/templates/company/supplier_part.html:247 msgid "Pricing Information" msgstr "" -#: company/templates/company/supplier_part.html:251 -#: templates/js/translated/company.js:398 +#: company/templates/company/supplier_part.html:252 +#: templates/js/translated/company.js:399 #: templates/js/translated/pricing.js:684 msgid "Add Price Break" msgstr "" -#: company/templates/company/supplier_part.html:270 +#: company/templates/company/supplier_part.html:271 msgid "Supplier Part Notes" msgstr "" -#: company/templates/company/supplier_part.html:305 +#: company/templates/company/supplier_part.html:306 msgid "Supplier Part QR Code" msgstr "" -#: company/templates/company/supplier_part.html:316 +#: company/templates/company/supplier_part.html:317 msgid "Link Barcode to Supplier Part" msgstr "" -#: company/templates/company/supplier_part.html:388 +#: company/templates/company/supplier_part.html:389 msgid "Update Part Availability" msgstr "" #: company/templates/company/supplier_part_sidebar.html:5 -#: part/serializers.py:902 part/stocktake.py:223 +#: part/serializers.py:954 part/stocktake.py:223 #: part/templates/part/category.html:180 #: part/templates/part/category_sidebar.html:17 stock/admin.py:68 -#: stock/serializers.py:1014 stock/serializers.py:1192 -#: stock/templates/stock/location.html:167 -#: stock/templates/stock/location.html:188 -#: stock/templates/stock/location.html:200 +#: stock/serializers.py:1045 stock/serializers.py:1223 +#: stock/templates/stock/location.html:168 +#: stock/templates/stock/location.html:189 +#: stock/templates/stock/location.html:201 #: stock/templates/stock/location_sidebar.html:7 #: templates/InvenTree/search.html:155 templates/js/translated/part.js:1067 -#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2850 +#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2851 #: users/models.py:206 msgid "Stock Items" msgstr "" @@ -5022,99 +5203,99 @@ msgstr "" msgid "New Company" msgstr "" -#: generic/states/tests.py:18 order/status_codes.py:13 +#: generic/states/fields.py:118 +msgid "Custom status key" +msgstr "" + +#: generic/states/fields.py:119 +msgid "Additional status information for this item" +msgstr "" + +#: generic/states/tests.py:22 order/status_codes.py:13 msgid "Placed" msgstr "Placeret" -#: importer/mixins.py:263 +#: importer/mixins.py:261 msgid "Invalid export format" msgstr "" -#: importer/models.py:59 -msgid "Timestamp" -msgstr "" - -#: importer/models.py:64 +#: importer/models.py:65 msgid "Data file to import" msgstr "" -#: importer/models.py:73 templates/js/translated/tables.js:558 +#: importer/models.py:74 templates/js/translated/tables.js:558 msgid "Columns" msgstr "" -#: importer/models.py:84 +#: importer/models.py:85 msgid "Import status" msgstr "" -#: importer/models.py:94 +#: importer/models.py:95 msgid "Field Defaults" msgstr "" -#: importer/models.py:101 +#: importer/models.py:102 msgid "Field Overrides" msgstr "" -#: importer/models.py:108 +#: importer/models.py:109 msgid "Field Filters" msgstr "" -#: importer/models.py:230 +#: importer/models.py:239 msgid "Some required fields have not been mapped" msgstr "" -#: importer/models.py:387 +#: importer/models.py:396 msgid "Column is already mapped to a database field" msgstr "" -#: importer/models.py:392 +#: importer/models.py:401 msgid "Field is already mapped to a data column" msgstr "" -#: importer/models.py:401 +#: importer/models.py:410 msgid "Column mapping must be linked to a valid import session" msgstr "" -#: importer/models.py:406 +#: importer/models.py:415 msgid "Column does not exist in the data file" msgstr "" -#: importer/models.py:413 +#: importer/models.py:422 msgid "Field does not exist in the target model" msgstr "" -#: importer/models.py:417 +#: importer/models.py:426 msgid "Selected field is read-only" msgstr "" -#: importer/models.py:422 importer/models.py:493 +#: importer/models.py:431 importer/models.py:502 msgid "Import Session" msgstr "" -#: importer/models.py:426 +#: importer/models.py:435 msgid "Field" msgstr "" -#: importer/models.py:428 +#: importer/models.py:437 msgid "Column" msgstr "" -#: importer/models.py:497 +#: importer/models.py:506 msgid "Row Index" msgstr "" -#: importer/models.py:500 +#: importer/models.py:509 msgid "Original row data" msgstr "" -#: importer/models.py:503 part/models.py:3951 -msgid "Data" -msgstr "" - -#: importer/models.py:505 machine/models.py:110 +#: importer/models.py:514 machine/models.py:110 msgid "Errors" msgstr "" -#: importer/models.py:507 part/api.py:873 +#: importer/models.py:516 part/api.py:857 msgid "Valid" msgstr "" @@ -5166,19 +5347,19 @@ msgstr "" msgid "Row has already been completed" msgstr "" -#: importer/status_codes.py:11 +#: importer/status_codes.py:13 msgid "Initializing" msgstr "" -#: importer/status_codes.py:12 +#: importer/status_codes.py:18 msgid "Mapping Columns" msgstr "" -#: importer/status_codes.py:13 +#: importer/status_codes.py:21 msgid "Importing Data" msgstr "" -#: importer/status_codes.py:16 +#: importer/status_codes.py:24 msgid "Processing Data" msgstr "" @@ -5202,52 +5383,52 @@ msgstr "" msgid "Value must be a valid dictionary object" msgstr "" -#: machine/machine_types/label_printer.py:215 +#: machine/machine_types/label_printer.py:216 msgid "Copies" msgstr "" -#: machine/machine_types/label_printer.py:216 +#: machine/machine_types/label_printer.py:217 msgid "Number of copies to print for each label" msgstr "" -#: machine/machine_types/label_printer.py:231 +#: machine/machine_types/label_printer.py:232 msgid "Connected" msgstr "" -#: machine/machine_types/label_printer.py:232 order/api.py:1410 -#: templates/js/translated/sales_order.js:1078 +#: machine/machine_types/label_printer.py:233 order/api.py:1532 +#: templates/js/translated/sales_order.js:1044 msgid "Unknown" msgstr "" -#: machine/machine_types/label_printer.py:233 +#: machine/machine_types/label_printer.py:234 msgid "Printing" msgstr "" -#: machine/machine_types/label_printer.py:234 +#: machine/machine_types/label_printer.py:235 msgid "No media" msgstr "" -#: machine/machine_types/label_printer.py:235 +#: machine/machine_types/label_printer.py:236 msgid "Paper jam" msgstr "" -#: machine/machine_types/label_printer.py:236 +#: machine/machine_types/label_printer.py:237 msgid "Disconnected" msgstr "" -#: machine/machine_types/label_printer.py:243 +#: machine/machine_types/label_printer.py:244 msgid "Label Printer" msgstr "" -#: machine/machine_types/label_printer.py:244 +#: machine/machine_types/label_printer.py:245 msgid "Directly print labels for various items." msgstr "" -#: machine/machine_types/label_printer.py:250 +#: machine/machine_types/label_printer.py:251 msgid "Printer Location" msgstr "" -#: machine/machine_types/label_printer.py:251 +#: machine/machine_types/label_printer.py:252 msgid "Scope the printer to a specific location" msgstr "" @@ -5307,79 +5488,75 @@ msgstr "" #: report/templates/report/inventree_purchase_order_report.html:31 #: report/templates/report/inventree_sales_order_report.html:31 #: templates/js/translated/order.js:352 -#: templates/js/translated/purchase_order.js:2195 -#: templates/js/translated/sales_order.js:1883 +#: templates/js/translated/purchase_order.js:2179 +#: templates/js/translated/sales_order.js:1864 msgid "Total Price" msgstr "" -#: order/api.py:80 order/api.py:151 order/serializers.py:93 -#: order/templates/order/order_base.html:123 -#: order/templates/order/return_order_base.html:116 -#: order/templates/order/sales_order_base.html:125 +#: order/api.py:78 order/api.py:149 order/serializers.py:124 +#: order/templates/order/order_base.html:124 +#: order/templates/order/return_order_base.html:117 +#: order/templates/order/sales_order_base.html:126 msgid "Order Status" msgstr "" -#: order/api.py:88 order/templates/order/order_base.html:111 -#: order/templates/order/return_order_base.html:104 -#: order/templates/order/sales_order_base.html:113 +#: order/api.py:86 order/templates/order/order_base.html:112 +#: order/templates/order/return_order_base.html:105 +#: order/templates/order/sales_order_base.html:114 msgid "Order Reference" msgstr "" -#: order/api.py:116 templates/js/translated/table_filters.js:93 +#: order/api.py:114 order/api.py:1022 +#: templates/js/translated/table_filters.js:93 #: templates/js/translated/table_filters.js:625 #: templates/js/translated/table_filters.js:651 #: templates/js/translated/table_filters.js:666 msgid "Outstanding" msgstr "" -#: order/api.py:132 +#: order/api.py:130 msgid "Has Project Code" msgstr "" -#: order/api.py:155 templates/js/translated/table_filters.js:201 +#: order/api.py:153 templates/js/translated/table_filters.js:201 #: templates/js/translated/table_filters.js:791 msgid "Has Pricing" msgstr "" -#: order/api.py:230 -msgid "No matching purchase order found" -msgstr "" - -#: order/api.py:425 order/api.py:763 order/models.py:1484 order/models.py:1598 -#: order/models.py:1649 order/models.py:1764 order/models.py:1923 -#: order/models.py:2383 order/models.py:2439 -#: templates/js/translated/sales_order.js:1524 +#: order/api.py:375 order/api.py:771 order/api.py:986 order/models.py:1500 +#: order/models.py:1614 order/models.py:1665 order/models.py:1793 +#: order/models.py:1956 order/models.py:2422 order/models.py:2478 +#: templates/js/translated/sales_order.js:1490 msgid "Order" msgstr "" -#: order/api.py:429 order/api.py:784 +#: order/api.py:379 order/api.py:809 msgid "Order Complete" msgstr "" -#: order/api.py:452 +#: order/api.py:430 msgid "Order Pending" msgstr "" -#: order/api.py:1404 order/models.py:379 order/models.py:1485 -#: order/models.py:1599 order/templates/order/order_base.html:9 -#: order/templates/order/order_base.html:18 +#: order/api.py:1526 order/models.py:386 order/models.py:1501 +#: order/models.py:1615 order/templates/order/order_base.html:10 +#: order/templates/order/order_base.html:19 #: report/templates/report/inventree_purchase_order_report.html:14 -#: stock/serializers.py:120 stock/templates/stock/item_base.html:176 +#: stock/serializers.py:121 stock/templates/stock/item_base.html:173 #: templates/email/overdue_purchase_order.html:15 #: templates/js/translated/part.js:1752 templates/js/translated/pricing.js:804 -#: templates/js/translated/purchase_order.js:168 -#: templates/js/translated/purchase_order.js:753 -#: templates/js/translated/purchase_order.js:1743 -#: templates/js/translated/stock.js:2345 templates/js/translated/stock.js:2991 +#: templates/js/translated/purchase_order.js:736 +#: templates/js/translated/purchase_order.js:1727 +#: templates/js/translated/stock.js:2346 templates/js/translated/stock.js:2992 msgid "Purchase Order" msgstr "" -#: order/api.py:1408 order/models.py:2091 order/models.py:2384 -#: order/models.py:2440 order/templates/order/return_order_base.html:9 -#: order/templates/order/return_order_base.html:28 +#: order/api.py:1530 order/models.py:2124 order/models.py:2423 +#: order/models.py:2479 order/templates/order/return_order_base.html:10 +#: order/templates/order/return_order_base.html:29 #: report/templates/report/inventree_return_order_report.html:13 #: templates/js/translated/return_order.js:280 -#: templates/js/translated/stock.js:3025 +#: templates/js/translated/stock.js:3026 msgid "Return Order" msgstr "" @@ -5387,751 +5564,782 @@ msgstr "" msgid "Total price for this order" msgstr "" -#: order/models.py:95 order/serializers.py:71 +#: order/models.py:95 order/serializers.py:73 msgid "Order Currency" msgstr "" -#: order/models.py:98 order/serializers.py:72 +#: order/models.py:98 order/serializers.py:74 msgid "Currency for this order (leave blank to use company default)" msgstr "" -#: order/models.py:246 +#: order/models.py:243 msgid "Contact does not match selected company" msgstr "" -#: order/models.py:289 +#: order/models.py:296 msgid "Order description (optional)" msgstr "" -#: order/models.py:298 +#: order/models.py:305 msgid "Select project code for this order" msgstr "" -#: order/models.py:302 order/models.py:1385 order/models.py:1817 +#: order/models.py:309 order/models.py:1402 order/models.py:1846 msgid "Link to external page" msgstr "" -#: order/models.py:310 +#: order/models.py:317 msgid "Expected date for order delivery. Order will be overdue after this date." msgstr "" -#: order/models.py:324 +#: order/models.py:331 msgid "Created By" msgstr "" -#: order/models.py:332 +#: order/models.py:339 msgid "User or group responsible for this order" msgstr "" -#: order/models.py:343 +#: order/models.py:350 msgid "Point of contact for this order" msgstr "" -#: order/models.py:353 +#: order/models.py:360 msgid "Company address for this order" msgstr "" -#: order/models.py:468 order/models.py:979 +#: order/models.py:480 order/models.py:1006 msgid "Order reference" msgstr "" -#: order/models.py:477 +#: order/models.py:489 msgid "Purchase order status" msgstr "" -#: order/models.py:492 +#: order/models.py:504 msgid "Company from which the items are being ordered" msgstr "" -#: order/models.py:503 order/templates/order/order_base.html:153 -#: templates/js/translated/purchase_order.js:1772 +#: order/models.py:515 order/templates/order/order_base.html:162 +#: templates/js/translated/purchase_order.js:1756 msgid "Supplier Reference" msgstr "" -#: order/models.py:504 +#: order/models.py:516 msgid "Supplier order reference code" msgstr "" -#: order/models.py:513 +#: order/models.py:525 msgid "received by" msgstr "" -#: order/models.py:519 order/models.py:2173 +#: order/models.py:531 order/models.py:2212 msgid "Issue Date" msgstr "" -#: order/models.py:520 order/models.py:2174 +#: order/models.py:532 order/models.py:2213 msgid "Date order was issued" msgstr "" -#: order/models.py:527 order/models.py:2181 +#: order/models.py:539 order/models.py:2220 msgid "Date order was completed" msgstr "" -#: order/models.py:571 +#: order/models.py:549 order/models.py:1552 +msgid "Destination for received items" +msgstr "" + +#: order/models.py:593 msgid "Part supplier must match PO supplier" msgstr "" -#: order/models.py:806 +#: order/models.py:828 msgid "Quantity must be a positive number" msgstr "" -#: order/models.py:991 +#: order/models.py:1018 msgid "Company to which the items are being sold" msgstr "" -#: order/models.py:1003 +#: order/models.py:1030 msgid "Sales order status" msgstr "" -#: order/models.py:1014 order/models.py:2166 +#: order/models.py:1041 order/models.py:2205 msgid "Customer Reference " msgstr "" -#: order/models.py:1015 order/models.py:2167 +#: order/models.py:1042 order/models.py:2206 msgid "Customer order reference code" msgstr "" -#: order/models.py:1019 order/models.py:1771 -#: templates/js/translated/sales_order.js:879 -#: templates/js/translated/sales_order.js:1060 +#: order/models.py:1046 order/models.py:1800 +#: templates/js/translated/sales_order.js:838 +#: templates/js/translated/sales_order.js:1026 msgid "Shipment Date" msgstr "" -#: order/models.py:1028 +#: order/models.py:1055 msgid "shipped by" msgstr "" -#: order/models.py:1077 +#: order/models.py:1094 msgid "Order is already complete" msgstr "" -#: order/models.py:1080 +#: order/models.py:1097 msgid "Order is already cancelled" msgstr "" -#: order/models.py:1084 +#: order/models.py:1101 msgid "Only an open order can be marked as complete" msgstr "" -#: order/models.py:1088 +#: order/models.py:1105 msgid "Order cannot be completed as there are incomplete shipments" msgstr "" -#: order/models.py:1093 +#: order/models.py:1110 msgid "Order cannot be completed as there are incomplete line items" msgstr "" -#: order/models.py:1357 +#: order/models.py:1374 msgid "Item quantity" msgstr "" -#: order/models.py:1374 +#: order/models.py:1391 msgid "Line item reference" msgstr "" -#: order/models.py:1381 +#: order/models.py:1398 msgid "Line item notes" msgstr "" -#: order/models.py:1393 +#: order/models.py:1410 msgid "Target date for this line item (leave blank to use the target date from the order)" msgstr "" -#: order/models.py:1414 +#: order/models.py:1431 msgid "Line item description (optional)" msgstr "" -#: order/models.py:1420 -msgid "Context" -msgstr "" - -#: order/models.py:1421 +#: order/models.py:1438 msgid "Additional context for this line" msgstr "" -#: order/models.py:1431 +#: order/models.py:1448 msgid "Unit price" msgstr "" -#: order/models.py:1445 +#: order/models.py:1462 msgid "Purchase Order Line Item" msgstr "" -#: order/models.py:1469 +#: order/models.py:1486 msgid "Supplier part must match supplier" msgstr "" -#: order/models.py:1476 -msgid "deleted" -msgstr "" - -#: order/models.py:1504 +#: order/models.py:1520 msgid "Supplier part" msgstr "" -#: order/models.py:1511 order/templates/order/order_base.html:201 +#: order/models.py:1527 order/templates/order/order_base.html:210 #: templates/js/translated/part.js:1876 templates/js/translated/part.js:1908 -#: templates/js/translated/purchase_order.js:1369 -#: templates/js/translated/purchase_order.js:2239 +#: templates/js/translated/purchase_order.js:1352 +#: templates/js/translated/purchase_order.js:2223 #: templates/js/translated/return_order.js:762 #: templates/js/translated/table_filters.js:119 #: templates/js/translated/table_filters.js:605 msgid "Received" msgstr "" -#: order/models.py:1512 +#: order/models.py:1528 msgid "Number of items received" msgstr "" -#: order/models.py:1520 stock/models.py:959 stock/serializers.py:610 -#: stock/templates/stock/item_base.html:183 -#: templates/js/translated/stock.js:2396 +#: order/models.py:1536 stock/models.py:1036 stock/serializers.py:637 +#: stock/templates/stock/item_base.html:180 +#: templates/js/translated/stock.js:2397 msgid "Purchase Price" msgstr "" -#: order/models.py:1521 +#: order/models.py:1537 msgid "Unit purchase price" msgstr "" -#: order/models.py:1536 -msgid "Where does the Purchaser want this item to be stored?" -msgstr "" - -#: order/models.py:1587 +#: order/models.py:1603 msgid "Purchase Order Extra Line" msgstr "" -#: order/models.py:1616 +#: order/models.py:1632 msgid "Sales Order Line Item" msgstr "" -#: order/models.py:1637 +#: order/models.py:1653 msgid "Virtual part cannot be assigned to a sales order" msgstr "" -#: order/models.py:1642 +#: order/models.py:1658 msgid "Only salable parts can be assigned to a sales order" msgstr "" -#: order/models.py:1668 part/templates/part/part_pricing.html:107 -#: part/templates/part/prices.html:139 templates/js/translated/pricing.js:957 +#: order/models.py:1684 part/templates/part/part_pricing.html:107 +#: part/templates/part/prices.html:139 templates/js/translated/pricing.js:955 msgid "Sale Price" msgstr "" -#: order/models.py:1669 +#: order/models.py:1685 msgid "Unit sale price" msgstr "" -#: order/models.py:1678 order/status_codes.py:48 -#: templates/js/translated/sales_order.js:1559 -#: templates/js/translated/sales_order.js:1680 -#: templates/js/translated/sales_order.js:1993 +#: order/models.py:1694 order/status_codes.py:50 +#: templates/js/translated/sales_order.js:1525 +#: templates/js/translated/sales_order.js:1661 +#: templates/js/translated/sales_order.js:1974 msgid "Shipped" msgstr "Afsendt" -#: order/models.py:1679 +#: order/models.py:1695 msgid "Shipped quantity" msgstr "" -#: order/models.py:1751 +#: order/models.py:1769 msgid "Sales Order Shipment" msgstr "" -#: order/models.py:1772 +#: order/models.py:1801 msgid "Date of shipment" msgstr "" -#: order/models.py:1778 templates/js/translated/sales_order.js:1072 +#: order/models.py:1807 templates/js/translated/sales_order.js:1038 msgid "Delivery Date" msgstr "" -#: order/models.py:1779 +#: order/models.py:1808 msgid "Date of delivery of shipment" msgstr "" -#: order/models.py:1787 +#: order/models.py:1816 msgid "Checked By" msgstr "" -#: order/models.py:1788 +#: order/models.py:1817 msgid "User who checked this shipment" msgstr "" -#: order/models.py:1795 order/models.py:2018 order/serializers.py:1475 -#: order/serializers.py:1585 templates/js/translated/model_renderers.js:455 +#: order/models.py:1824 order/models.py:2051 order/serializers.py:1601 +#: order/serializers.py:1725 +#: report/templates/report/inventree_sales_order_shipment_report.html:14 +#: templates/js/translated/model_renderers.js:458 +#: templates/js/translated/sales_order.js:1615 msgid "Shipment" msgstr "" -#: order/models.py:1796 +#: order/models.py:1825 msgid "Shipment number" msgstr "" -#: order/models.py:1804 +#: order/models.py:1833 msgid "Tracking Number" msgstr "" -#: order/models.py:1805 +#: order/models.py:1834 msgid "Shipment tracking information" msgstr "" -#: order/models.py:1812 +#: order/models.py:1841 msgid "Invoice Number" msgstr "" -#: order/models.py:1813 +#: order/models.py:1842 msgid "Reference number for associated invoice" msgstr "" -#: order/models.py:1833 +#: order/models.py:1862 msgid "Shipment has already been sent" msgstr "" -#: order/models.py:1836 +#: order/models.py:1865 msgid "Shipment has no allocated stock items" msgstr "" -#: order/models.py:1912 +#: order/models.py:1945 msgid "Sales Order Extra Line" msgstr "" -#: order/models.py:1941 +#: order/models.py:1974 msgid "Sales Order Allocation" msgstr "" -#: order/models.py:1964 order/models.py:1966 +#: order/models.py:1997 order/models.py:1999 msgid "Stock item has not been assigned" msgstr "" -#: order/models.py:1973 +#: order/models.py:2006 msgid "Cannot allocate stock item to a line with a different part" msgstr "" -#: order/models.py:1976 +#: order/models.py:2009 msgid "Cannot allocate stock to a line without a part" msgstr "" -#: order/models.py:1979 +#: order/models.py:2012 msgid "Allocation quantity cannot exceed stock quantity" msgstr "" -#: order/models.py:1998 order/serializers.py:1345 +#: order/models.py:2031 order/serializers.py:1471 msgid "Quantity must be 1 for serialized stock item" msgstr "" -#: order/models.py:2001 +#: order/models.py:2034 msgid "Sales order does not match shipment" msgstr "" -#: order/models.py:2002 plugin/base/barcodes/api.py:524 +#: order/models.py:2035 plugin/base/barcodes/api.py:629 msgid "Shipment does not match sales order" msgstr "" -#: order/models.py:2010 +#: order/models.py:2043 msgid "Line" msgstr "" -#: order/models.py:2019 +#: order/models.py:2052 msgid "Sales order shipment reference" msgstr "" -#: order/models.py:2032 order/models.py:2391 +#: order/models.py:2065 order/models.py:2430 #: templates/js/translated/return_order.js:720 msgid "Item" msgstr "" -#: order/models.py:2033 +#: order/models.py:2066 msgid "Select stock item to allocate" msgstr "" -#: order/models.py:2042 +#: order/models.py:2075 msgid "Enter stock allocation quantity" msgstr "" -#: order/models.py:2136 +#: order/models.py:2175 msgid "Return Order reference" msgstr "" -#: order/models.py:2148 +#: order/models.py:2187 msgid "Company from which items are being returned" msgstr "" -#: order/models.py:2160 +#: order/models.py:2199 msgid "Return order status" msgstr "" -#: order/models.py:2362 +#: order/models.py:2401 msgid "Return Order Line Item" msgstr "" -#: order/models.py:2376 +#: order/models.py:2415 msgid "Only serialized items can be assigned to a Return Order" msgstr "" -#: order/models.py:2392 +#: order/models.py:2431 msgid "Select item to return from customer" msgstr "" -#: order/models.py:2398 +#: order/models.py:2437 msgid "Received Date" msgstr "" -#: order/models.py:2399 +#: order/models.py:2438 msgid "The date this this return item was received" msgstr "" -#: order/models.py:2410 templates/js/translated/return_order.js:731 +#: order/models.py:2449 templates/js/translated/return_order.js:731 #: templates/js/translated/table_filters.js:122 msgid "Outcome" msgstr "" -#: order/models.py:2411 +#: order/models.py:2450 msgid "Outcome for this line item" msgstr "" -#: order/models.py:2418 +#: order/models.py:2457 msgid "Cost associated with return or repair for this line item" msgstr "" -#: order/models.py:2428 +#: order/models.py:2467 msgid "Return Order Extra Line" msgstr "" -#: order/serializers.py:86 +#: order/serializers.py:87 +msgid "Order ID" +msgstr "" + +#: order/serializers.py:87 +msgid "ID of the order to duplicate" +msgstr "" + +#: order/serializers.py:93 +msgid "Copy Lines" +msgstr "" + +#: order/serializers.py:94 +msgid "Copy line items from the original order" +msgstr "" + +#: order/serializers.py:100 +msgid "Copy Extra Lines" +msgstr "" + +#: order/serializers.py:101 +msgid "Copy extra line items from the original order" +msgstr "" + +#: order/serializers.py:117 msgid "Completed Lines" msgstr "" -#: order/serializers.py:283 stock/admin.py:195 +#: order/serializers.py:161 +msgid "Duplicate Order" +msgstr "" + +#: order/serializers.py:162 +msgid "Specify options for duplicating this order" +msgstr "" + +#: order/serializers.py:234 +msgid "Invalid order ID" +msgstr "" + +#: order/serializers.py:374 stock/admin.py:196 msgid "Supplier Name" msgstr "" -#: order/serializers.py:331 +#: order/serializers.py:416 msgid "Order cannot be cancelled" msgstr "" -#: order/serializers.py:346 order/serializers.py:1366 +#: order/serializers.py:431 order/serializers.py:1492 msgid "Allow order to be closed with incomplete line items" msgstr "" -#: order/serializers.py:356 order/serializers.py:1376 +#: order/serializers.py:441 order/serializers.py:1502 msgid "Order has incomplete line items" msgstr "" -#: order/serializers.py:506 +#: order/serializers.py:591 msgid "Order is not open" msgstr "" -#: order/serializers.py:527 +#: order/serializers.py:612 msgid "Auto Pricing" msgstr "" -#: order/serializers.py:529 +#: order/serializers.py:614 msgid "Automatically calculate purchase price based on supplier part data" msgstr "" -#: order/serializers.py:539 +#: order/serializers.py:624 msgid "Purchase price currency" msgstr "" -#: order/serializers.py:545 +#: order/serializers.py:630 msgid "Merge Items" msgstr "" -#: order/serializers.py:547 +#: order/serializers.py:632 msgid "Merge items with the same part, destination and target date into one line item" msgstr "" -#: order/serializers.py:560 part/models.py:1033 +#: order/serializers.py:645 part/models.py:1094 part/serializers.py:387 msgid "Internal Part Number" msgstr "" -#: order/serializers.py:568 +#: order/serializers.py:653 msgid "Internal Part Name" msgstr "" -#: order/serializers.py:584 +#: order/serializers.py:669 msgid "Supplier part must be specified" msgstr "" -#: order/serializers.py:587 +#: order/serializers.py:672 msgid "Purchase order must be specified" msgstr "" -#: order/serializers.py:595 +#: order/serializers.py:680 msgid "Supplier must match purchase order" msgstr "" -#: order/serializers.py:596 +#: order/serializers.py:681 msgid "Purchase order must match supplier" msgstr "" -#: order/serializers.py:639 order/serializers.py:1446 +#: order/serializers.py:724 order/serializers.py:1572 msgid "Line Item" msgstr "" -#: order/serializers.py:645 +#: order/serializers.py:730 msgid "Line item does not match purchase order" msgstr "" -#: order/serializers.py:655 order/serializers.py:779 order/serializers.py:1782 +#: order/serializers.py:740 order/serializers.py:881 order/serializers.py:1934 msgid "Select destination location for received items" msgstr "" -#: order/serializers.py:671 templates/js/translated/purchase_order.js:1130 +#: order/serializers.py:756 templates/js/translated/purchase_order.js:1113 #: templates/js/translated/stock.js:1200 msgid "Enter batch code for incoming stock items" msgstr "" -#: order/serializers.py:679 templates/js/translated/purchase_order.js:1155 +#: order/serializers.py:764 templates/js/translated/purchase_order.js:1138 msgid "Enter serial numbers for incoming stock items" msgstr "" -#: order/serializers.py:691 +#: order/serializers.py:776 msgid "Override packaging information for incoming stock items" msgstr "" -#: order/serializers.py:699 +#: order/serializers.py:784 msgid "Additional note for incoming stock items" msgstr "" -#: order/serializers.py:706 templates/js/translated/barcode.js:52 +#: order/serializers.py:791 templates/js/translated/barcode.js:52 msgid "Barcode" msgstr "" -#: order/serializers.py:707 +#: order/serializers.py:792 msgid "Scanned barcode" msgstr "" -#: order/serializers.py:723 +#: order/serializers.py:808 msgid "Barcode is already in use" msgstr "" -#: order/serializers.py:747 +#: order/serializers.py:831 msgid "An integer quantity must be provided for trackable parts" msgstr "" -#: order/serializers.py:795 order/serializers.py:1798 +#: order/serializers.py:898 order/serializers.py:1950 msgid "Line items must be provided" msgstr "" -#: order/serializers.py:811 +#: order/serializers.py:914 msgid "Destination location must be specified" msgstr "" -#: order/serializers.py:822 +#: order/serializers.py:925 msgid "Supplied barcode values must be unique" msgstr "" -#: order/serializers.py:1187 +#: order/serializers.py:1221 msgid "Sale price currency" msgstr "" -#: order/serializers.py:1248 +#: order/serializers.py:1260 +msgid "Allocated Items" +msgstr "" + +#: order/serializers.py:1374 msgid "No shipment details provided" msgstr "" -#: order/serializers.py:1309 order/serializers.py:1455 +#: order/serializers.py:1435 order/serializers.py:1581 msgid "Line item is not associated with this order" msgstr "" -#: order/serializers.py:1328 +#: order/serializers.py:1454 msgid "Quantity must be positive" msgstr "" -#: order/serializers.py:1465 +#: order/serializers.py:1591 msgid "Enter serial numbers to allocate" msgstr "" -#: order/serializers.py:1487 order/serializers.py:1593 +#: order/serializers.py:1613 order/serializers.py:1733 msgid "Shipment has already been shipped" msgstr "" -#: order/serializers.py:1490 order/serializers.py:1596 +#: order/serializers.py:1616 order/serializers.py:1736 msgid "Shipment is not associated with this order" msgstr "" -#: order/serializers.py:1537 +#: order/serializers.py:1671 msgid "No match found for the following serial numbers" msgstr "" -#: order/serializers.py:1544 -msgid "The following serial numbers are already allocated" +#: order/serializers.py:1678 +msgid "The following serial numbers are unavailable" msgstr "" -#: order/serializers.py:1752 +#: order/serializers.py:1904 msgid "Return order line item" msgstr "" -#: order/serializers.py:1758 +#: order/serializers.py:1910 msgid "Line item does not match return order" msgstr "" -#: order/serializers.py:1761 +#: order/serializers.py:1913 msgid "Line item has already been received" msgstr "" -#: order/serializers.py:1790 +#: order/serializers.py:1942 msgid "Items can only be received against orders which are in progress" msgstr "" -#: order/serializers.py:1873 +#: order/serializers.py:2025 msgid "Line price currency" msgstr "" -#: order/status_codes.py:17 order/status_codes.py:52 stock/status_codes.py:16 +#: order/status_codes.py:17 order/status_codes.py:54 stock/status_codes.py:16 msgid "Lost" msgstr "Mistet" -#: order/status_codes.py:18 order/status_codes.py:53 stock/status_codes.py:22 +#: order/status_codes.py:18 order/status_codes.py:55 stock/status_codes.py:24 msgid "Returned" msgstr "Returneret" -#: order/status_codes.py:45 order/status_codes.py:77 +#: order/status_codes.py:47 order/status_codes.py:79 msgid "In Progress" msgstr "Igangværende" -#: order/status_codes.py:101 +#: order/status_codes.py:105 msgid "Return" msgstr "Retur" -#: order/status_codes.py:104 +#: order/status_codes.py:108 msgid "Repair" msgstr "Reparér" -#: order/status_codes.py:107 +#: order/status_codes.py:111 msgid "Replace" msgstr "Erstat" -#: order/status_codes.py:110 +#: order/status_codes.py:114 msgid "Refund" msgstr "Refusion" -#: order/status_codes.py:113 +#: order/status_codes.py:117 msgid "Reject" msgstr "Afvis" -#: order/tasks.py:25 +#: order/tasks.py:30 msgid "Overdue Purchase Order" msgstr "" -#: order/tasks.py:30 +#: order/tasks.py:35 #, python-brace-format msgid "Purchase order {po} is now overdue" msgstr "" -#: order/tasks.py:75 +#: order/tasks.py:80 msgid "Overdue Sales Order" msgstr "" -#: order/tasks.py:80 +#: order/tasks.py:85 #, python-brace-format msgid "Sales order {so} is now overdue" msgstr "" -#: order/templates/order/order_base.html:51 +#: order/templates/order/order_base.html:52 msgid "Print purchase order report" msgstr "" -#: order/templates/order/order_base.html:53 -#: order/templates/order/return_order_base.html:62 -#: order/templates/order/sales_order_base.html:62 +#: order/templates/order/order_base.html:54 +#: order/templates/order/return_order_base.html:63 +#: order/templates/order/sales_order_base.html:63 msgid "Export order to file" msgstr "" -#: order/templates/order/order_base.html:59 -#: order/templates/order/return_order_base.html:72 -#: order/templates/order/sales_order_base.html:71 +#: order/templates/order/order_base.html:60 +#: order/templates/order/return_order_base.html:73 +#: order/templates/order/sales_order_base.html:72 msgid "Order actions" msgstr "" -#: order/templates/order/order_base.html:64 -#: order/templates/order/return_order_base.html:76 -#: order/templates/order/sales_order_base.html:75 +#: order/templates/order/order_base.html:65 +#: order/templates/order/return_order_base.html:77 +#: order/templates/order/sales_order_base.html:76 msgid "Edit order" msgstr "" -#: order/templates/order/order_base.html:68 +#: order/templates/order/order_base.html:69 msgid "Duplicate order" msgstr "" -#: order/templates/order/order_base.html:73 -#: order/templates/order/return_order_base.html:78 -#: order/templates/order/sales_order_base.html:77 +#: order/templates/order/order_base.html:74 +#: order/templates/order/return_order_base.html:79 +#: order/templates/order/sales_order_base.html:78 msgid "Hold order" msgstr "" -#: order/templates/order/order_base.html:78 -#: order/templates/order/return_order_base.html:81 -#: order/templates/order/sales_order_base.html:80 +#: order/templates/order/order_base.html:79 +#: order/templates/order/return_order_base.html:82 +#: order/templates/order/sales_order_base.html:81 msgid "Cancel order" msgstr "" -#: order/templates/order/order_base.html:84 #: order/templates/order/order_base.html:85 -#: order/templates/order/return_order_base.html:85 +#: order/templates/order/order_base.html:86 #: order/templates/order/return_order_base.html:86 -#: order/templates/order/sales_order_base.html:86 +#: order/templates/order/return_order_base.html:87 #: order/templates/order/sales_order_base.html:87 +#: order/templates/order/sales_order_base.html:88 msgid "Issue Order" msgstr "" -#: order/templates/order/order_base.html:88 -#: order/templates/order/return_order_base.html:89 -msgid "Mark order as complete" -msgstr "" - #: order/templates/order/order_base.html:89 #: order/templates/order/return_order_base.html:90 -#: order/templates/order/sales_order_base.html:100 +msgid "Mark order as complete" +msgstr "" + +#: order/templates/order/order_base.html:90 +#: order/templates/order/return_order_base.html:91 +#: order/templates/order/sales_order_base.html:101 msgid "Complete Order" msgstr "" -#: order/templates/order/order_base.html:96 +#: order/templates/order/order_base.html:97 msgid "Supplier part thumbnail" msgstr "" -#: order/templates/order/order_base.html:116 -#: order/templates/order/return_order_base.html:109 -#: order/templates/order/sales_order_base.html:118 +#: order/templates/order/order_base.html:117 +#: order/templates/order/return_order_base.html:110 +#: order/templates/order/sales_order_base.html:119 msgid "Order Description" msgstr "" -#: order/templates/order/order_base.html:146 -msgid "No suppplier information available" -msgstr "" - -#: order/templates/order/order_base.html:159 -#: order/templates/order/sales_order_base.html:164 +#: order/templates/order/order_base.html:168 +#: order/templates/order/sales_order_base.html:165 msgid "Completed Line Items" msgstr "" -#: order/templates/order/order_base.html:165 -#: order/templates/order/sales_order_base.html:170 -#: order/templates/order/sales_order_base.html:180 +#: order/templates/order/order_base.html:174 +#: order/templates/order/sales_order_base.html:171 +#: order/templates/order/sales_order_base.html:181 msgid "Incomplete" msgstr "" -#: order/templates/order/order_base.html:184 -#: order/templates/order/return_order_base.html:160 +#: order/templates/order/order_base.html:193 +#: order/templates/order/return_order_base.html:161 #: report/templates/report/inventree_build_order_report.html:121 msgid "Issued" msgstr "" -#: order/templates/order/order_base.html:229 +#: order/templates/order/order_base.html:238 msgid "Total cost" msgstr "" -#: order/templates/order/order_base.html:233 -#: order/templates/order/return_order_base.html:202 -#: order/templates/order/sales_order_base.html:246 +#: order/templates/order/order_base.html:242 +#: order/templates/order/return_order_base.html:203 +#: order/templates/order/sales_order_base.html:247 msgid "Total cost could not be calculated" msgstr "" -#: order/templates/order/order_base.html:335 +#: order/templates/order/order_base.html:344 msgid "Purchase Order QR Code" msgstr "" -#: order/templates/order/order_base.html:347 +#: order/templates/order/order_base.html:356 msgid "Link Barcode to Purchase Order" msgstr "" @@ -6184,12 +6392,12 @@ msgstr "" #: part/templates/part/import_wizard/ajax_match_references.html:42 #: part/templates/part/import_wizard/match_fields.html:71 #: part/templates/part/import_wizard/match_references.html:49 -#: templates/js/translated/bom.js:133 templates/js/translated/build.js:530 -#: templates/js/translated/build.js:1802 -#: templates/js/translated/purchase_order.js:696 -#: templates/js/translated/purchase_order.js:1288 +#: templates/js/translated/bom.js:133 templates/js/translated/build.js:533 +#: templates/js/translated/build.js:1805 +#: templates/js/translated/purchase_order.js:679 +#: templates/js/translated/purchase_order.js:1271 #: templates/js/translated/return_order.js:505 -#: templates/js/translated/sales_order.js:1145 +#: templates/js/translated/sales_order.js:1111 #: templates/js/translated/stock.js:720 templates/js/translated/stock.js:889 #: templates/patterns/wizard/match_fields.html:70 msgid "Remove row" @@ -6242,7 +6450,7 @@ msgstr "" #: order/templates/order/purchase_order_detail.html:27 #: order/templates/order/return_order_detail.html:24 #: order/templates/order/sales_order_detail.html:24 -#: templates/js/translated/purchase_order.js:414 +#: templates/js/translated/purchase_order.js:397 #: templates/js/translated/return_order.js:458 #: templates/js/translated/sales_order.js:237 msgid "Add Line Item" @@ -6277,45 +6485,45 @@ msgstr "" msgid "Order Notes" msgstr "" -#: order/templates/order/return_order_base.html:18 -#: order/templates/order/sales_order_base.html:18 +#: order/templates/order/return_order_base.html:19 +#: order/templates/order/sales_order_base.html:19 msgid "Customer logo thumbnail" msgstr "" -#: order/templates/order/return_order_base.html:60 +#: order/templates/order/return_order_base.html:61 msgid "Print return order report" msgstr "" -#: order/templates/order/return_order_base.html:64 -#: order/templates/order/sales_order_base.html:64 +#: order/templates/order/return_order_base.html:65 +#: order/templates/order/sales_order_base.html:65 msgid "Print packing list" msgstr "" -#: order/templates/order/return_order_base.html:141 -#: order/templates/order/sales_order_base.html:158 +#: order/templates/order/return_order_base.html:142 +#: order/templates/order/sales_order_base.html:159 #: templates/js/translated/return_order.js:308 -#: templates/js/translated/sales_order.js:833 +#: templates/js/translated/sales_order.js:792 msgid "Customer Reference" msgstr "" -#: order/templates/order/return_order_base.html:198 -#: order/templates/order/sales_order_base.html:242 +#: order/templates/order/return_order_base.html:199 +#: order/templates/order/sales_order_base.html:243 #: part/templates/part/part_pricing.html:32 #: part/templates/part/part_pricing.html:58 #: part/templates/part/part_pricing.html:99 #: part/templates/part/part_pricing.html:114 #: templates/js/translated/part.js:1079 -#: templates/js/translated/purchase_order.js:1822 +#: templates/js/translated/purchase_order.js:1806 #: templates/js/translated/return_order.js:380 -#: templates/js/translated/sales_order.js:891 +#: templates/js/translated/sales_order.js:850 msgid "Total Cost" msgstr "" -#: order/templates/order/return_order_base.html:273 +#: order/templates/order/return_order_base.html:274 msgid "Return Order QR Code" msgstr "" -#: order/templates/order/return_order_base.html:285 +#: order/templates/order/return_order_base.html:286 msgid "Link Barcode to Return Order" msgstr "" @@ -6323,40 +6531,40 @@ msgstr "" msgid "Order Details" msgstr "" -#: order/templates/order/sales_order_base.html:60 +#: order/templates/order/sales_order_base.html:61 msgid "Print sales order report" msgstr "" -#: order/templates/order/sales_order_base.html:91 #: order/templates/order/sales_order_base.html:92 +#: order/templates/order/sales_order_base.html:93 msgid "Ship Items" msgstr "" -#: order/templates/order/sales_order_base.html:95 #: order/templates/order/sales_order_base.html:96 +#: order/templates/order/sales_order_base.html:97 msgid "Mark As Shipped" msgstr "" -#: order/templates/order/sales_order_base.html:99 -#: templates/js/translated/sales_order.js:536 +#: order/templates/order/sales_order_base.html:100 +#: templates/js/translated/sales_order.js:495 msgid "Complete Sales Order" msgstr "" -#: order/templates/order/sales_order_base.html:138 +#: order/templates/order/sales_order_base.html:139 msgid "This Sales Order has not been fully allocated" msgstr "" -#: order/templates/order/sales_order_base.html:176 +#: order/templates/order/sales_order_base.html:177 #: order/templates/order/sales_order_detail.html:99 #: order/templates/order/so_sidebar.html:11 msgid "Completed Shipments" msgstr "" -#: order/templates/order/sales_order_base.html:339 +#: order/templates/order/sales_order_base.html:340 msgid "Sales Order QR Code" msgstr "" -#: order/templates/order/sales_order_base.html:351 +#: order/templates/order/sales_order_base.html:352 msgid "Link Barcode to Sales Order" msgstr "" @@ -6370,7 +6578,7 @@ msgid "Pending Shipments" msgstr "" #: order/templates/order/sales_order_detail.html:71 -#: templates/js/translated/bom.js:1277 templates/js/translated/build.js:1063 +#: templates/js/translated/bom.js:1277 templates/js/translated/build.js:1066 #: templates/js/translated/filters.js:299 msgid "Actions" msgstr "" @@ -6383,39 +6591,40 @@ msgstr "" msgid "Match Supplier Parts" msgstr "" -#: order/views.py:406 +#: order/views.py:407 msgid "Sales order not found" msgstr "" -#: order/views.py:412 +#: order/views.py:413 msgid "Price not found" msgstr "" -#: order/views.py:415 +#: order/views.py:416 #, python-brace-format msgid "Updated {part} unit-price to {price}" msgstr "" -#: order/views.py:421 +#: order/views.py:422 #, python-brace-format msgid "Updated {part} unit-price to {price} and quantity to {qty}" msgstr "" -#: part/admin.py:48 part/models.py:1032 part/templates/part/part_base.html:269 +#: part/admin.py:48 part/models.py:1093 part/serializers.py:939 +#: part/templates/part/part_base.html:277 #: report/templates/report/inventree_stock_location_report.html:103 #: templates/js/translated/part.js:1233 templates/js/translated/part.js:2347 -#: templates/js/translated/stock.js:2121 +#: templates/js/translated/stock.js:2122 msgid "IPN" msgstr "" -#: part/admin.py:50 part/models.py:1041 part/templates/part/part_base.html:286 +#: part/admin.py:50 part/models.py:1102 part/templates/part/part_base.html:294 #: report/models.py:161 templates/js/translated/part.js:1238 #: templates/js/translated/part.js:2353 msgid "Revision" msgstr "" -#: part/admin.py:53 part/admin.py:319 part/models.py:1014 -#: part/templates/part/category.html:91 part/templates/part/part_base.html:307 +#: part/admin.py:53 part/admin.py:319 part/models.py:1075 +#: part/templates/part/category.html:91 part/templates/part/part_base.html:315 msgid "Keywords" msgstr "" @@ -6427,7 +6636,7 @@ msgstr "" msgid "Category ID" msgstr "" -#: part/admin.py:67 part/admin.py:304 part/serializers.py:880 +#: part/admin.py:67 part/admin.py:304 part/serializers.py:924 #: part/stocktake.py:222 msgid "Category Name" msgstr "" @@ -6440,11 +6649,11 @@ msgstr "" msgid "Default Supplier ID" msgstr "" -#: part/admin.py:81 part/models.py:1000 part/templates/part/part_base.html:177 +#: part/admin.py:81 part/models.py:1061 part/templates/part/part_base.html:178 msgid "Variant Of" msgstr "" -#: part/admin.py:84 part/models.py:1138 part/templates/part/part_base.html:203 +#: part/admin.py:84 part/models.py:1199 part/templates/part/part_base.html:204 msgid "Minimum Stock" msgstr "" @@ -6452,23 +6661,23 @@ msgstr "" msgid "Used In" msgstr "" -#: part/admin.py:150 part/serializers.py:897 -#: part/templates/part/part_base.html:241 stock/admin.py:235 +#: part/admin.py:150 part/serializers.py:949 +#: part/templates/part/part_base.html:249 stock/admin.py:236 #: templates/js/translated/part.js:717 templates/js/translated/part.js:2159 msgid "Building" msgstr "" -#: part/admin.py:155 part/models.py:3202 part/models.py:3216 +#: part/admin.py:155 part/models.py:3253 part/models.py:3267 #: templates/js/translated/part.js:976 msgid "Minimum Cost" msgstr "" -#: part/admin.py:158 part/models.py:3209 part/models.py:3223 +#: part/admin.py:158 part/models.py:3260 part/models.py:3274 #: templates/js/translated/part.js:986 msgid "Maximum Cost" msgstr "" -#: part/admin.py:308 part/admin.py:387 stock/admin.py:57 stock/admin.py:215 +#: part/admin.py:308 part/admin.py:387 stock/admin.py:57 stock/admin.py:216 msgid "Parent ID" msgstr "" @@ -6481,8 +6690,8 @@ msgstr "" msgid "Category Path" msgstr "" -#: part/admin.py:325 part/models.py:425 part/serializers.py:130 -#: part/serializers.py:290 part/serializers.py:415 +#: part/admin.py:325 part/models.py:420 part/serializers.py:130 +#: part/serializers.py:323 part/serializers.py:459 #: part/templates/part/cat_link.html:3 part/templates/part/category.html:20 #: part/templates/part/category.html:138 part/templates/part/category.html:158 #: part/templates/part/category_sidebar.html:9 @@ -6509,15 +6718,15 @@ msgstr "" msgid "Part Revision" msgstr "" -#: part/admin.py:418 part/serializers.py:1346 +#: part/admin.py:418 part/serializers.py:1400 #: templates/js/translated/pricing.js:358 -#: templates/js/translated/pricing.js:1024 +#: templates/js/translated/pricing.js:1022 msgid "Minimum Price" msgstr "" -#: part/admin.py:423 part/serializers.py:1361 +#: part/admin.py:423 part/serializers.py:1415 #: templates/js/translated/pricing.js:353 -#: templates/js/translated/pricing.js:1032 +#: templates/js/translated/pricing.js:1030 msgid "Maximum Price" msgstr "" @@ -6545,94 +6754,98 @@ msgstr "" msgid "Filter by top-level categories" msgstr "" +#: part/api.py:156 stock/api.py:343 +msgid "Cascade" +msgstr "" + #: part/api.py:158 msgid "Include sub-categories in filtered results" msgstr "" -#: part/api.py:179 templates/js/translated/part.js:311 +#: part/api.py:178 templates/js/translated/part.js:311 msgid "Parent" msgstr "" -#: part/api.py:181 +#: part/api.py:180 msgid "Filter by parent category" msgstr "" -#: part/api.py:214 +#: part/api.py:213 msgid "Exclude Tree" msgstr "" -#: part/api.py:216 +#: part/api.py:215 msgid "Exclude sub-categories under the specified category" msgstr "" -#: part/api.py:441 +#: part/api.py:440 msgid "Has Results" msgstr "" -#: part/api.py:608 +#: part/api.py:604 msgid "Incoming Purchase Order" msgstr "" -#: part/api.py:626 +#: part/api.py:618 msgid "Outgoing Sales Order" msgstr "" -#: part/api.py:642 +#: part/api.py:630 msgid "Stock produced by Build Order" msgstr "" -#: part/api.py:726 +#: part/api.py:712 msgid "Stock required for Build Order" msgstr "" -#: part/api.py:874 +#: part/api.py:858 msgid "Validate entire Bill of Materials" msgstr "" -#: part/api.py:880 +#: part/api.py:864 msgid "This option must be selected" msgstr "" -#: part/api.py:916 +#: part/api.py:900 msgid "Is Revision" msgstr "" -#: part/api.py:926 +#: part/api.py:910 msgid "Has Revisions" msgstr "" -#: part/api.py:1117 +#: part/api.py:1101 msgid "BOM Valid" msgstr "" -#: part/api.py:1523 part/models.py:1024 part/models.py:3489 part/models.py:4046 -#: part/serializers.py:430 part/serializers.py:1202 -#: part/templates/part/part_base.html:260 stock/api.py:781 +#: part/api.py:1509 part/models.py:1085 part/models.py:3540 part/models.py:4104 +#: part/serializers.py:474 part/serializers.py:1255 +#: part/templates/part/part_base.html:268 stock/api.py:781 #: templates/InvenTree/settings/settings_staff_js.html:300 #: templates/js/translated/notification.js:60 #: templates/js/translated/part.js:2383 msgid "Category" msgstr "" -#: part/api.py:1761 +#: part/api.py:1750 msgid "Assembly part is testable" msgstr "" -#: part/api.py:1770 +#: part/api.py:1759 msgid "Component part is testable" msgstr "" -#: part/api.py:1821 +#: part/api.py:1810 msgid "Uses" msgstr "" -#: part/bom.py:178 part/models.py:107 part/models.py:1077 -#: part/templates/part/category.html:113 part/templates/part/part_base.html:376 +#: part/bom.py:183 part/models.py:109 part/models.py:1138 +#: part/templates/part/category.html:113 part/templates/part/part_base.html:384 #: templates/js/translated/part.js:2397 msgid "Default Location" msgstr "" -#: part/bom.py:179 part/serializers.py:905 +#: part/bom.py:184 part/serializers.py:957 #: templates/email/low_stock_notification.html:16 msgid "Total Stock" msgstr "" @@ -6641,789 +6854,789 @@ msgstr "" msgid "Input quantity for price calculation" msgstr "" -#: part/models.py:88 part/models.py:4047 part/templates/part/category.html:16 +#: part/models.py:90 part/models.py:4105 part/templates/part/category.html:16 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "" -#: part/models.py:89 part/templates/part/category.html:133 +#: part/models.py:91 part/templates/part/category.html:133 #: templates/InvenTree/search.html:97 templates/js/translated/search.js:158 #: users/models.py:202 msgid "Part Categories" msgstr "" -#: part/models.py:108 +#: part/models.py:110 msgid "Default location for parts in this category" msgstr "" -#: part/models.py:113 stock/models.py:187 templates/js/translated/part.js:2828 -#: templates/js/translated/stock.js:2856 +#: part/models.py:115 stock/models.py:193 templates/js/translated/part.js:2828 +#: templates/js/translated/stock.js:2857 #: templates/js/translated/table_filters.js:246 #: templates/js/translated/table_filters.js:290 msgid "Structural" msgstr "" -#: part/models.py:115 +#: part/models.py:117 msgid "Parts may not be directly assigned to a structural category, but may be assigned to child categories." msgstr "" -#: part/models.py:124 +#: part/models.py:126 msgid "Default keywords" msgstr "" -#: part/models.py:125 +#: part/models.py:127 msgid "Default keywords for parts in this category" msgstr "" -#: part/models.py:131 stock/models.py:90 stock/models.py:169 +#: part/models.py:133 stock/models.py:96 stock/models.py:175 #: templates/InvenTree/settings/settings_staff_js.html:445 msgid "Icon" msgstr "" -#: part/models.py:132 part/serializers.py:143 part/serializers.py:161 -#: stock/models.py:170 +#: part/models.py:134 part/serializers.py:143 part/serializers.py:161 +#: stock/models.py:176 msgid "Icon (optional)" msgstr "" -#: part/models.py:178 +#: part/models.py:180 msgid "You cannot make this part category structural because some parts are already assigned to it!" msgstr "" -#: part/models.py:519 +#: part/models.py:514 msgid "Cannot delete this part as it is locked" msgstr "" -#: part/models.py:522 +#: part/models.py:517 msgid "Cannot delete this part as it is still active" msgstr "" -#: part/models.py:527 +#: part/models.py:522 msgid "Cannot delete this part as it is used in an assembly" msgstr "" -#: part/models.py:565 +#: part/models.py:560 msgid "Invalid choice for parent part" msgstr "" -#: part/models.py:613 part/models.py:620 +#: part/models.py:608 part/models.py:615 #, python-brace-format msgid "Part '{self}' cannot be used in BOM for '{parent}' (recursive)" msgstr "" -#: part/models.py:632 +#: part/models.py:627 #, python-brace-format msgid "Part '{parent}' is used in BOM for '{self}' (recursive)" msgstr "" -#: part/models.py:695 +#: part/models.py:694 #, python-brace-format msgid "IPN must match regex pattern {pattern}" msgstr "" -#: part/models.py:703 +#: part/models.py:702 msgid "Part cannot be a revision of itself" msgstr "" -#: part/models.py:710 +#: part/models.py:709 msgid "Cannot make a revision of a part which is already a revision" msgstr "" -#: part/models.py:717 +#: part/models.py:716 msgid "Revision code must be specified" msgstr "" -#: part/models.py:724 +#: part/models.py:723 msgid "Revisions are only allowed for assembly parts" msgstr "" -#: part/models.py:731 +#: part/models.py:730 msgid "Cannot make a revision of a template part" msgstr "" -#: part/models.py:737 +#: part/models.py:736 msgid "Parent part must point to the same template" msgstr "" -#: part/models.py:816 +#: part/models.py:832 msgid "Stock item with this serial number already exists" msgstr "" -#: part/models.py:917 +#: part/models.py:976 msgid "Duplicate IPN not allowed in part settings" msgstr "" -#: part/models.py:926 +#: part/models.py:988 msgid "Duplicate part revision already exists." msgstr "" -#: part/models.py:936 +#: part/models.py:997 msgid "Part with this Name, IPN and Revision already exists." msgstr "" -#: part/models.py:951 +#: part/models.py:1012 msgid "Parts cannot be assigned to structural part categories!" msgstr "" -#: part/models.py:983 part/models.py:4102 +#: part/models.py:1044 part/models.py:4160 msgid "Part name" msgstr "" -#: part/models.py:988 +#: part/models.py:1049 msgid "Is Template" msgstr "" -#: part/models.py:989 +#: part/models.py:1050 msgid "Is this part a template part?" msgstr "" -#: part/models.py:999 +#: part/models.py:1060 msgid "Is this part a variant of another part?" msgstr "" -#: part/models.py:1007 +#: part/models.py:1068 msgid "Part description (optional)" msgstr "" -#: part/models.py:1015 +#: part/models.py:1076 msgid "Part keywords to improve visibility in search results" msgstr "" -#: part/models.py:1025 +#: part/models.py:1086 msgid "Part category" msgstr "" -#: part/models.py:1040 +#: part/models.py:1101 msgid "Part revision or version number" msgstr "" -#: part/models.py:1050 +#: part/models.py:1111 msgid "Is this part a revision of another part?" msgstr "" -#: part/models.py:1051 part/templates/part/part_base.html:277 +#: part/models.py:1112 part/templates/part/part_base.html:285 msgid "Revision Of" msgstr "" -#: part/models.py:1075 +#: part/models.py:1136 msgid "Where is this item normally stored?" msgstr "" -#: part/models.py:1121 part/templates/part/part_base.html:385 +#: part/models.py:1182 part/templates/part/part_base.html:393 msgid "Default Supplier" msgstr "" -#: part/models.py:1122 +#: part/models.py:1183 msgid "Default supplier part" msgstr "" -#: part/models.py:1129 +#: part/models.py:1190 msgid "Default Expiry" msgstr "" -#: part/models.py:1130 +#: part/models.py:1191 msgid "Expiry time (in days) for stock items of this part" msgstr "" -#: part/models.py:1139 +#: part/models.py:1200 msgid "Minimum allowed stock level" msgstr "" -#: part/models.py:1148 +#: part/models.py:1209 msgid "Units of measure for this part" msgstr "" -#: part/models.py:1155 +#: part/models.py:1216 msgid "Can this part be built from other parts?" msgstr "" -#: part/models.py:1161 +#: part/models.py:1222 msgid "Can this part be used to build other parts?" msgstr "" -#: part/models.py:1167 +#: part/models.py:1228 msgid "Does this part have tracking for unique items?" msgstr "" -#: part/models.py:1173 +#: part/models.py:1234 msgid "Can this part have test results recorded against it?" msgstr "" -#: part/models.py:1179 +#: part/models.py:1240 msgid "Can this part be purchased from external suppliers?" msgstr "" -#: part/models.py:1185 +#: part/models.py:1246 msgid "Can this part be sold to customers?" msgstr "" -#: part/models.py:1189 +#: part/models.py:1250 msgid "Is this part active?" msgstr "" -#: part/models.py:1194 templates/js/translated/part.js:821 +#: part/models.py:1255 templates/js/translated/part.js:821 #: templates/js/translated/table_filters.js:724 msgid "Locked" msgstr "" -#: part/models.py:1195 +#: part/models.py:1256 msgid "Locked parts cannot be edited" msgstr "" -#: part/models.py:1201 +#: part/models.py:1262 msgid "Is this a virtual part, such as a software product or license?" msgstr "" -#: part/models.py:1207 +#: part/models.py:1268 msgid "BOM checksum" msgstr "" -#: part/models.py:1208 +#: part/models.py:1269 msgid "Stored BOM checksum" msgstr "" -#: part/models.py:1216 +#: part/models.py:1277 msgid "BOM checked by" msgstr "" -#: part/models.py:1221 +#: part/models.py:1282 msgid "BOM checked date" msgstr "" -#: part/models.py:1237 +#: part/models.py:1298 msgid "Creation User" msgstr "" -#: part/models.py:1247 +#: part/models.py:1308 msgid "Owner responsible for this part" msgstr "" -#: part/models.py:1252 part/templates/part/part_base.html:348 -#: stock/templates/stock/item_base.html:451 +#: part/models.py:1313 part/templates/part/part_base.html:356 +#: stock/templates/stock/item_base.html:448 #: templates/js/translated/part.js:2490 msgid "Last Stocktake" msgstr "" -#: part/models.py:2125 +#: part/models.py:2185 msgid "Sell multiple" msgstr "" -#: part/models.py:3116 +#: part/models.py:3167 msgid "Currency used to cache pricing calculations" msgstr "" -#: part/models.py:3132 +#: part/models.py:3183 msgid "Minimum BOM Cost" msgstr "" -#: part/models.py:3133 +#: part/models.py:3184 msgid "Minimum cost of component parts" msgstr "" -#: part/models.py:3139 +#: part/models.py:3190 msgid "Maximum BOM Cost" msgstr "" -#: part/models.py:3140 +#: part/models.py:3191 msgid "Maximum cost of component parts" msgstr "" -#: part/models.py:3146 +#: part/models.py:3197 msgid "Minimum Purchase Cost" msgstr "" -#: part/models.py:3147 +#: part/models.py:3198 msgid "Minimum historical purchase cost" msgstr "" -#: part/models.py:3153 +#: part/models.py:3204 msgid "Maximum Purchase Cost" msgstr "" -#: part/models.py:3154 +#: part/models.py:3205 msgid "Maximum historical purchase cost" msgstr "" -#: part/models.py:3160 +#: part/models.py:3211 msgid "Minimum Internal Price" msgstr "" -#: part/models.py:3161 +#: part/models.py:3212 msgid "Minimum cost based on internal price breaks" msgstr "" -#: part/models.py:3167 +#: part/models.py:3218 msgid "Maximum Internal Price" msgstr "" -#: part/models.py:3168 +#: part/models.py:3219 msgid "Maximum cost based on internal price breaks" msgstr "" -#: part/models.py:3174 +#: part/models.py:3225 msgid "Minimum Supplier Price" msgstr "" -#: part/models.py:3175 +#: part/models.py:3226 msgid "Minimum price of part from external suppliers" msgstr "" -#: part/models.py:3181 +#: part/models.py:3232 msgid "Maximum Supplier Price" msgstr "" -#: part/models.py:3182 +#: part/models.py:3233 msgid "Maximum price of part from external suppliers" msgstr "" -#: part/models.py:3188 +#: part/models.py:3239 msgid "Minimum Variant Cost" msgstr "" -#: part/models.py:3189 +#: part/models.py:3240 msgid "Calculated minimum cost of variant parts" msgstr "" -#: part/models.py:3195 +#: part/models.py:3246 msgid "Maximum Variant Cost" msgstr "" -#: part/models.py:3196 +#: part/models.py:3247 msgid "Calculated maximum cost of variant parts" msgstr "" -#: part/models.py:3203 +#: part/models.py:3254 msgid "Override minimum cost" msgstr "" -#: part/models.py:3210 +#: part/models.py:3261 msgid "Override maximum cost" msgstr "" -#: part/models.py:3217 +#: part/models.py:3268 msgid "Calculated overall minimum cost" msgstr "" -#: part/models.py:3224 +#: part/models.py:3275 msgid "Calculated overall maximum cost" msgstr "" -#: part/models.py:3230 +#: part/models.py:3281 msgid "Minimum Sale Price" msgstr "" -#: part/models.py:3231 +#: part/models.py:3282 msgid "Minimum sale price based on price breaks" msgstr "" -#: part/models.py:3237 +#: part/models.py:3288 msgid "Maximum Sale Price" msgstr "" -#: part/models.py:3238 +#: part/models.py:3289 msgid "Maximum sale price based on price breaks" msgstr "" -#: part/models.py:3244 +#: part/models.py:3295 msgid "Minimum Sale Cost" msgstr "" -#: part/models.py:3245 +#: part/models.py:3296 msgid "Minimum historical sale price" msgstr "" -#: part/models.py:3251 +#: part/models.py:3302 msgid "Maximum Sale Cost" msgstr "" -#: part/models.py:3252 +#: part/models.py:3303 msgid "Maximum historical sale price" msgstr "" -#: part/models.py:3271 +#: part/models.py:3322 msgid "Part for stocktake" msgstr "" -#: part/models.py:3276 +#: part/models.py:3327 msgid "Item Count" msgstr "" -#: part/models.py:3277 +#: part/models.py:3328 msgid "Number of individual stock entries at time of stocktake" msgstr "" -#: part/models.py:3285 +#: part/models.py:3336 msgid "Total available stock at time of stocktake" msgstr "" -#: part/models.py:3289 part/models.py:3372 +#: part/models.py:3340 part/models.py:3423 part/serializers.py:263 #: part/templates/part/part_scheduling.html:13 #: report/templates/report/inventree_test_report.html:106 #: templates/InvenTree/settings/plugin_settings.html:37 #: templates/InvenTree/settings/settings_staff_js.html:543 -#: templates/js/translated/part.js:1092 templates/js/translated/pricing.js:826 -#: templates/js/translated/pricing.js:950 -#: templates/js/translated/purchase_order.js:1801 -#: templates/js/translated/stock.js:2905 +#: templates/js/translated/part.js:1092 templates/js/translated/pricing.js:824 +#: templates/js/translated/pricing.js:948 +#: templates/js/translated/purchase_order.js:1785 +#: templates/js/translated/stock.js:2906 msgid "Date" msgstr "" -#: part/models.py:3290 +#: part/models.py:3341 msgid "Date stocktake was performed" msgstr "" -#: part/models.py:3298 +#: part/models.py:3349 msgid "Additional notes" msgstr "" -#: part/models.py:3308 +#: part/models.py:3359 msgid "User who performed this stocktake" msgstr "" -#: part/models.py:3314 +#: part/models.py:3365 msgid "Minimum Stock Cost" msgstr "" -#: part/models.py:3315 +#: part/models.py:3366 msgid "Estimated minimum cost of stock on hand" msgstr "" -#: part/models.py:3321 +#: part/models.py:3372 msgid "Maximum Stock Cost" msgstr "" -#: part/models.py:3322 +#: part/models.py:3373 msgid "Estimated maximum cost of stock on hand" msgstr "" -#: part/models.py:3378 templates/InvenTree/settings/settings_staff_js.html:532 +#: part/models.py:3429 templates/InvenTree/settings/settings_staff_js.html:532 msgid "Report" msgstr "" -#: part/models.py:3379 +#: part/models.py:3430 msgid "Stocktake report file (generated internally)" msgstr "" -#: part/models.py:3384 templates/InvenTree/settings/settings_staff_js.html:539 +#: part/models.py:3435 templates/InvenTree/settings/settings_staff_js.html:539 msgid "Part Count" msgstr "" -#: part/models.py:3385 +#: part/models.py:3436 msgid "Number of parts covered by stocktake" msgstr "" -#: part/models.py:3395 +#: part/models.py:3446 msgid "User who requested this stocktake report" msgstr "" -#: part/models.py:3405 +#: part/models.py:3456 msgid "Part Sale Price Break" msgstr "" -#: part/models.py:3517 +#: part/models.py:3568 msgid "Part Test Template" msgstr "" -#: part/models.py:3543 +#: part/models.py:3594 msgid "Invalid template name - must include at least one alphanumeric character" msgstr "" -#: part/models.py:3564 part/models.py:3733 +#: part/models.py:3615 part/models.py:3784 msgid "Choices must be unique" msgstr "" -#: part/models.py:3575 -msgid "Test templates can only be created for trackable parts" +#: part/models.py:3626 +msgid "Test templates can only be created for testable parts" msgstr "" -#: part/models.py:3586 +#: part/models.py:3637 msgid "Test template with the same key already exists for part" msgstr "" -#: part/models.py:3603 templates/js/translated/part.js:2898 +#: part/models.py:3654 templates/js/translated/part.js:2898 msgid "Test Name" msgstr "" -#: part/models.py:3604 +#: part/models.py:3655 msgid "Enter a name for the test" msgstr "" -#: part/models.py:3610 +#: part/models.py:3661 msgid "Test Key" msgstr "" -#: part/models.py:3611 +#: part/models.py:3662 msgid "Simplified key for the test" msgstr "" -#: part/models.py:3618 +#: part/models.py:3669 msgid "Test Description" msgstr "" -#: part/models.py:3619 +#: part/models.py:3670 msgid "Enter description for this test" msgstr "" -#: part/models.py:3623 report/models.py:208 +#: part/models.py:3674 report/models.py:216 #: templates/js/translated/part.js:2919 #: templates/js/translated/table_filters.js:502 msgid "Enabled" msgstr "" -#: part/models.py:3623 +#: part/models.py:3674 msgid "Is this test enabled?" msgstr "" -#: part/models.py:3628 templates/js/translated/part.js:2927 +#: part/models.py:3679 templates/js/translated/part.js:2927 #: templates/js/translated/table_filters.js:498 msgid "Required" msgstr "" -#: part/models.py:3629 +#: part/models.py:3680 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:3634 templates/js/translated/part.js:2935 +#: part/models.py:3685 templates/js/translated/part.js:2935 msgid "Requires Value" msgstr "" -#: part/models.py:3635 +#: part/models.py:3686 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:3640 templates/js/translated/part.js:2942 +#: part/models.py:3691 templates/js/translated/part.js:2942 msgid "Requires Attachment" msgstr "" -#: part/models.py:3642 +#: part/models.py:3693 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:3648 part/models.py:3792 templates/js/translated/part.js:1643 +#: part/models.py:3699 part/models.py:3843 templates/js/translated/part.js:1643 msgid "Choices" msgstr "" -#: part/models.py:3649 +#: part/models.py:3700 msgid "Valid choices for this test (comma-separated)" msgstr "" -#: part/models.py:3681 +#: part/models.py:3732 msgid "Part Parameter Template" msgstr "" -#: part/models.py:3708 +#: part/models.py:3759 msgid "Checkbox parameters cannot have units" msgstr "" -#: part/models.py:3713 +#: part/models.py:3764 msgid "Checkbox parameters cannot have choices" msgstr "" -#: part/models.py:3750 +#: part/models.py:3801 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:3765 +#: part/models.py:3816 msgid "Parameter Name" msgstr "" -#: part/models.py:3772 +#: part/models.py:3823 msgid "Physical units for this parameter" msgstr "" -#: part/models.py:3780 +#: part/models.py:3831 msgid "Parameter description" msgstr "" -#: part/models.py:3786 templates/js/translated/part.js:1634 +#: part/models.py:3837 templates/js/translated/part.js:1634 #: templates/js/translated/table_filters.js:837 msgid "Checkbox" msgstr "" -#: part/models.py:3787 +#: part/models.py:3838 msgid "Is this parameter a checkbox?" msgstr "" -#: part/models.py:3793 +#: part/models.py:3844 msgid "Valid choices for this parameter (comma-separated)" msgstr "" -#: part/models.py:3827 +#: part/models.py:3881 msgid "Part Parameter" msgstr "" -#: part/models.py:3853 +#: part/models.py:3907 msgid "Parameter cannot be modified - part is locked" msgstr "" -#: part/models.py:3889 +#: part/models.py:3945 msgid "Invalid choice for parameter value" msgstr "" -#: part/models.py:3938 +#: part/models.py:3996 msgid "Parent Part" msgstr "" -#: part/models.py:3946 part/models.py:4054 part/models.py:4055 +#: part/models.py:4004 part/models.py:4112 part/models.py:4113 #: templates/InvenTree/settings/settings_staff_js.html:295 msgid "Parameter Template" msgstr "" -#: part/models.py:3952 +#: part/models.py:4010 msgid "Parameter Value" msgstr "" -#: part/models.py:4002 +#: part/models.py:4060 msgid "Part Category Parameter Template" msgstr "" -#: part/models.py:4061 templates/InvenTree/settings/settings_staff_js.html:304 +#: part/models.py:4119 templates/InvenTree/settings/settings_staff_js.html:304 msgid "Default Value" msgstr "" -#: part/models.py:4062 +#: part/models.py:4120 msgid "Default Parameter Value" msgstr "" -#: part/models.py:4100 +#: part/models.py:4158 msgid "Part ID or part name" msgstr "" -#: part/models.py:4101 +#: part/models.py:4159 msgid "Unique part ID value" msgstr "" -#: part/models.py:4103 +#: part/models.py:4161 msgid "Part IPN value" msgstr "" -#: part/models.py:4104 +#: part/models.py:4162 msgid "Level" msgstr "" -#: part/models.py:4104 +#: part/models.py:4162 msgid "BOM level" msgstr "" -#: part/models.py:4215 +#: part/models.py:4272 msgid "BOM item cannot be modified - assembly is locked" msgstr "" -#: part/models.py:4222 +#: part/models.py:4279 msgid "BOM item cannot be modified - variant assembly is locked" msgstr "" -#: part/models.py:4232 +#: part/models.py:4289 msgid "Select parent part" msgstr "" -#: part/models.py:4242 +#: part/models.py:4299 msgid "Sub part" msgstr "" -#: part/models.py:4243 +#: part/models.py:4300 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:4254 +#: part/models.py:4311 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:4260 +#: part/models.py:4317 msgid "This BOM item is optional" msgstr "" -#: part/models.py:4266 +#: part/models.py:4323 msgid "This BOM item is consumable (it is not tracked in build orders)" msgstr "" -#: part/models.py:4273 part/templates/part/upload_bom.html:55 +#: part/models.py:4330 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "" -#: part/models.py:4274 +#: part/models.py:4331 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:4281 +#: part/models.py:4338 msgid "BOM item reference" msgstr "" -#: part/models.py:4289 +#: part/models.py:4346 msgid "BOM item notes" msgstr "" -#: part/models.py:4295 +#: part/models.py:4352 msgid "Checksum" msgstr "" -#: part/models.py:4296 +#: part/models.py:4353 msgid "BOM line checksum" msgstr "" -#: part/models.py:4301 templates/js/translated/table_filters.js:181 +#: part/models.py:4358 templates/js/translated/table_filters.js:181 msgid "Validated" msgstr "" -#: part/models.py:4302 +#: part/models.py:4359 msgid "This BOM item has been validated" msgstr "" -#: part/models.py:4307 part/templates/part/upload_bom.html:57 +#: part/models.py:4364 part/templates/part/upload_bom.html:57 #: templates/js/translated/bom.js:1054 #: templates/js/translated/table_filters.js:185 #: templates/js/translated/table_filters.js:218 msgid "Gets inherited" msgstr "" -#: part/models.py:4308 +#: part/models.py:4365 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:4314 +#: part/models.py:4371 msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:4399 stock/models.py:685 +#: part/models.py:4456 stock/models.py:762 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:4409 part/models.py:4411 +#: part/models.py:4466 part/models.py:4468 msgid "Sub part must be specified" msgstr "" -#: part/models.py:4551 +#: part/models.py:4613 msgid "BOM Item Substitute" msgstr "" -#: part/models.py:4572 +#: part/models.py:4634 msgid "Substitute part cannot be the same as the master part" msgstr "" -#: part/models.py:4585 +#: part/models.py:4647 msgid "Parent BOM item" msgstr "" -#: part/models.py:4593 +#: part/models.py:4655 msgid "Substitute part" msgstr "" -#: part/models.py:4609 +#: part/models.py:4671 msgid "Part 1" msgstr "" -#: part/models.py:4617 +#: part/models.py:4679 msgid "Part 2" msgstr "" -#: part/models.py:4618 +#: part/models.py:4680 msgid "Select Related Part" msgstr "" -#: part/models.py:4637 +#: part/models.py:4699 msgid "Part relationship cannot be created between a part and itself" msgstr "" -#: part/models.py:4642 +#: part/models.py:4704 msgid "Duplicate relationship already exists" msgstr "" @@ -7449,340 +7662,352 @@ msgstr "" msgid "Number of results recorded against this template" msgstr "" -#: part/serializers.py:225 part/serializers.py:243 stock/serializers.py:616 +#: part/serializers.py:225 part/serializers.py:243 stock/serializers.py:643 msgid "Purchase currency of this stock item" msgstr "" -#: part/serializers.py:291 +#: part/serializers.py:268 +msgid "Speculative Quantity" +msgstr "" + +#: part/serializers.py:277 +msgid "Model ID" +msgstr "" + +#: part/serializers.py:324 msgid "Number of parts using this template" msgstr "" -#: part/serializers.py:421 +#: part/serializers.py:465 msgid "No parts selected" msgstr "" -#: part/serializers.py:431 +#: part/serializers.py:475 msgid "Select category" msgstr "" -#: part/serializers.py:466 +#: part/serializers.py:510 msgid "Original Part" msgstr "" -#: part/serializers.py:467 +#: part/serializers.py:511 msgid "Select original part to duplicate" msgstr "" -#: part/serializers.py:472 +#: part/serializers.py:516 msgid "Copy Image" msgstr "" -#: part/serializers.py:473 +#: part/serializers.py:517 msgid "Copy image from original part" msgstr "" -#: part/serializers.py:479 part/templates/part/detail.html:293 +#: part/serializers.py:523 part/templates/part/detail.html:293 msgid "Copy BOM" msgstr "" -#: part/serializers.py:480 +#: part/serializers.py:524 msgid "Copy bill of materials from original part" msgstr "" -#: part/serializers.py:486 +#: part/serializers.py:530 msgid "Copy Parameters" msgstr "" -#: part/serializers.py:487 +#: part/serializers.py:531 msgid "Copy parameter data from original part" msgstr "" -#: part/serializers.py:493 +#: part/serializers.py:537 msgid "Copy Notes" msgstr "" -#: part/serializers.py:494 +#: part/serializers.py:538 msgid "Copy notes from original part" msgstr "" -#: part/serializers.py:512 +#: part/serializers.py:556 msgid "Initial Stock Quantity" msgstr "" -#: part/serializers.py:514 +#: part/serializers.py:558 msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added." msgstr "" -#: part/serializers.py:521 +#: part/serializers.py:565 msgid "Initial Stock Location" msgstr "" -#: part/serializers.py:522 +#: part/serializers.py:566 msgid "Specify initial stock location for this Part" msgstr "" -#: part/serializers.py:539 +#: part/serializers.py:583 msgid "Select supplier (or leave blank to skip)" msgstr "" -#: part/serializers.py:555 +#: part/serializers.py:599 msgid "Select manufacturer (or leave blank to skip)" msgstr "" -#: part/serializers.py:565 +#: part/serializers.py:609 msgid "Manufacturer part number" msgstr "" -#: part/serializers.py:572 +#: part/serializers.py:616 msgid "Selected company is not a valid supplier" msgstr "" -#: part/serializers.py:581 +#: part/serializers.py:625 msgid "Selected company is not a valid manufacturer" msgstr "" -#: part/serializers.py:592 +#: part/serializers.py:636 msgid "Manufacturer part matching this MPN already exists" msgstr "" -#: part/serializers.py:599 +#: part/serializers.py:643 msgid "Supplier part matching this SKU already exists" msgstr "" -#: part/serializers.py:903 +#: part/serializers.py:955 msgid "Revisions" msgstr "" -#: part/serializers.py:908 +#: part/serializers.py:960 msgid "Unallocated Stock" msgstr "" -#: part/serializers.py:911 +#: part/serializers.py:963 msgid "Variant Stock" msgstr "" -#: part/serializers.py:941 part/templates/part/copy_part.html:9 +#: part/serializers.py:993 part/templates/part/copy_part.html:9 #: templates/js/translated/part.js:474 msgid "Duplicate Part" msgstr "" -#: part/serializers.py:942 +#: part/serializers.py:994 msgid "Copy initial data from another Part" msgstr "" -#: part/serializers.py:948 templates/js/translated/part.js:103 +#: part/serializers.py:1000 templates/js/translated/part.js:103 msgid "Initial Stock" msgstr "" -#: part/serializers.py:949 +#: part/serializers.py:1001 msgid "Create Part with initial stock quantity" msgstr "" -#: part/serializers.py:955 +#: part/serializers.py:1007 msgid "Supplier Information" msgstr "" -#: part/serializers.py:956 +#: part/serializers.py:1008 msgid "Add initial supplier information for this part" msgstr "" -#: part/serializers.py:964 +#: part/serializers.py:1016 msgid "Copy Category Parameters" msgstr "" -#: part/serializers.py:965 +#: part/serializers.py:1017 msgid "Copy parameter templates from selected part category" msgstr "" -#: part/serializers.py:970 +#: part/serializers.py:1022 msgid "Existing Image" msgstr "" -#: part/serializers.py:971 +#: part/serializers.py:1023 msgid "Filename of an existing part image" msgstr "" -#: part/serializers.py:988 +#: part/serializers.py:1040 msgid "Image file does not exist" msgstr "" -#: part/serializers.py:1194 +#: part/serializers.py:1247 msgid "Limit stocktake report to a particular part, and any variant parts" msgstr "" -#: part/serializers.py:1204 +#: part/serializers.py:1257 msgid "Limit stocktake report to a particular part category, and any child categories" msgstr "" -#: part/serializers.py:1214 +#: part/serializers.py:1267 msgid "Limit stocktake report to a particular stock location, and any child locations" msgstr "" -#: part/serializers.py:1220 +#: part/serializers.py:1273 msgid "Exclude External Stock" msgstr "" -#: part/serializers.py:1221 +#: part/serializers.py:1274 msgid "Exclude stock items in external locations" msgstr "" -#: part/serializers.py:1226 +#: part/serializers.py:1279 msgid "Generate Report" msgstr "" -#: part/serializers.py:1227 +#: part/serializers.py:1280 msgid "Generate report file containing calculated stocktake data" msgstr "" -#: part/serializers.py:1232 +#: part/serializers.py:1285 msgid "Update Parts" msgstr "" -#: part/serializers.py:1233 +#: part/serializers.py:1286 msgid "Update specified parts with calculated stocktake data" msgstr "" -#: part/serializers.py:1241 +#: part/serializers.py:1294 msgid "Stocktake functionality is not enabled" msgstr "" -#: part/serializers.py:1347 +#: part/serializers.py:1299 +msgid "Background worker check failed" +msgstr "Kontrol af baggrundstjeneste mislykkedes" + +#: part/serializers.py:1401 msgid "Override calculated value for minimum price" msgstr "" -#: part/serializers.py:1354 +#: part/serializers.py:1408 msgid "Minimum price currency" msgstr "" -#: part/serializers.py:1362 +#: part/serializers.py:1416 msgid "Override calculated value for maximum price" msgstr "" -#: part/serializers.py:1369 +#: part/serializers.py:1423 msgid "Maximum price currency" msgstr "" -#: part/serializers.py:1398 +#: part/serializers.py:1452 msgid "Update" msgstr "" -#: part/serializers.py:1399 +#: part/serializers.py:1453 msgid "Update pricing for this part" msgstr "" -#: part/serializers.py:1422 +#: part/serializers.py:1476 #, python-brace-format msgid "Could not convert from provided currencies to {default_currency}" msgstr "" -#: part/serializers.py:1429 +#: part/serializers.py:1483 msgid "Minimum price must not be greater than maximum price" msgstr "" -#: part/serializers.py:1432 +#: part/serializers.py:1486 msgid "Maximum price must not be less than minimum price" msgstr "" -#: part/serializers.py:1576 +#: part/serializers.py:1634 msgid "Select the parent assembly" msgstr "" -#: part/serializers.py:1585 +#: part/serializers.py:1643 msgid "Component Name" msgstr "" -#: part/serializers.py:1588 +#: part/serializers.py:1646 msgid "Component IPN" msgstr "" -#: part/serializers.py:1591 +#: part/serializers.py:1649 msgid "Component Description" msgstr "" -#: part/serializers.py:1597 +#: part/serializers.py:1655 msgid "Select the component part" msgstr "" -#: part/serializers.py:1606 part/templates/part/part_base.html:235 +#: part/serializers.py:1664 part/templates/part/part_base.html:243 #: templates/js/translated/bom.js:1219 msgid "Can Build" msgstr "" -#: part/serializers.py:1837 +#: part/serializers.py:1899 msgid "Select part to copy BOM from" msgstr "" -#: part/serializers.py:1845 +#: part/serializers.py:1907 msgid "Remove Existing Data" msgstr "" -#: part/serializers.py:1846 +#: part/serializers.py:1908 msgid "Remove existing BOM items before copying" msgstr "" -#: part/serializers.py:1851 +#: part/serializers.py:1913 msgid "Include Inherited" msgstr "" -#: part/serializers.py:1852 +#: part/serializers.py:1914 msgid "Include BOM items which are inherited from templated parts" msgstr "" -#: part/serializers.py:1857 +#: part/serializers.py:1919 msgid "Skip Invalid Rows" msgstr "" -#: part/serializers.py:1858 +#: part/serializers.py:1920 msgid "Enable this option to skip invalid rows" msgstr "" -#: part/serializers.py:1863 +#: part/serializers.py:1925 msgid "Copy Substitute Parts" msgstr "" -#: part/serializers.py:1864 +#: part/serializers.py:1926 msgid "Copy substitute parts when duplicate BOM items" msgstr "" -#: part/serializers.py:1901 +#: part/serializers.py:1963 msgid "Clear Existing BOM" msgstr "" -#: part/serializers.py:1902 +#: part/serializers.py:1964 msgid "Delete existing BOM items before uploading" msgstr "" -#: part/serializers.py:1934 +#: part/serializers.py:1996 msgid "No part column specified" msgstr "" -#: part/serializers.py:1978 +#: part/serializers.py:2040 msgid "Multiple matching parts found" msgstr "" -#: part/serializers.py:1981 +#: part/serializers.py:2043 msgid "No matching part found" msgstr "" -#: part/serializers.py:1984 +#: part/serializers.py:2045 msgid "Part is not designated as a component" msgstr "" -#: part/serializers.py:1993 +#: part/serializers.py:2054 msgid "Quantity not provided" msgstr "" -#: part/serializers.py:2001 +#: part/serializers.py:2062 msgid "Invalid quantity" msgstr "" -#: part/serializers.py:2024 +#: part/serializers.py:2085 msgid "At least one BOM item is required" msgstr "" #: part/stocktake.py:224 templates/js/translated/part.js:1073 #: templates/js/translated/part.js:1828 templates/js/translated/part.js:1884 -#: templates/js/translated/purchase_order.js:2154 +#: templates/js/translated/purchase_order.js:2138 msgid "Total Quantity" msgstr "" @@ -7932,9 +8157,9 @@ msgid "Add stocktake information" msgstr "" #: part/templates/part/detail.html:67 part/templates/part/part_sidebar.html:50 -#: stock/admin.py:255 templates/InvenTree/settings/part_stocktake.html:30 +#: stock/admin.py:256 templates/InvenTree/settings/part_stocktake.html:30 #: templates/InvenTree/settings/sidebar.html:53 -#: templates/js/translated/stock.js:2301 users/models.py:204 +#: templates/js/translated/stock.js:2302 users/models.py:204 msgid "Stocktake" msgstr "" @@ -8093,142 +8318,146 @@ msgstr "" msgid "Part List" msgstr "" -#: part/templates/part/part_base.html:25 part/templates/part/part_base.html:29 +#: part/templates/part/part_base.html:26 part/templates/part/part_base.html:30 msgid "You are subscribed to notifications for this part" msgstr "" -#: part/templates/part/part_base.html:33 +#: part/templates/part/part_base.html:34 msgid "Subscribe to notifications for this part" msgstr "" -#: part/templates/part/part_base.html:52 +#: part/templates/part/part_base.html:53 #: stock/templates/stock/item_base.html:62 -#: stock/templates/stock/location.html:71 templates/js/translated/label.js:136 +#: stock/templates/stock/location.html:72 templates/js/translated/label.js:136 msgid "Print Label" msgstr "" -#: part/templates/part/part_base.html:58 +#: part/templates/part/part_base.html:59 msgid "Show pricing information" msgstr "" -#: part/templates/part/part_base.html:63 -#: stock/templates/stock/item_base.html:110 -#: stock/templates/stock/location.html:80 +#: part/templates/part/part_base.html:64 +#: stock/templates/stock/item_base.html:107 +#: stock/templates/stock/location.html:81 msgid "Stock actions" msgstr "" -#: part/templates/part/part_base.html:70 +#: part/templates/part/part_base.html:71 msgid "Count part stock" msgstr "" -#: part/templates/part/part_base.html:76 +#: part/templates/part/part_base.html:77 msgid "Transfer part stock" msgstr "" -#: part/templates/part/part_base.html:91 templates/js/translated/part.js:2299 +#: part/templates/part/part_base.html:92 templates/js/translated/part.js:2299 msgid "Part actions" msgstr "" -#: part/templates/part/part_base.html:94 +#: part/templates/part/part_base.html:95 msgid "Duplicate part" msgstr "" -#: part/templates/part/part_base.html:97 +#: part/templates/part/part_base.html:98 msgid "Edit part" msgstr "" -#: part/templates/part/part_base.html:100 +#: part/templates/part/part_base.html:101 msgid "Delete part" msgstr "" -#: part/templates/part/part_base.html:119 +#: part/templates/part/part_base.html:120 msgid "Part is a template part (variants can be made from this part)" msgstr "" -#: part/templates/part/part_base.html:123 +#: part/templates/part/part_base.html:124 msgid "Part can be assembled from other parts" msgstr "" -#: part/templates/part/part_base.html:127 +#: part/templates/part/part_base.html:128 msgid "Part can be used in assemblies" msgstr "" -#: part/templates/part/part_base.html:131 +#: part/templates/part/part_base.html:132 msgid "Part stock is tracked by serial number" msgstr "" -#: part/templates/part/part_base.html:135 +#: part/templates/part/part_base.html:136 msgid "Part can be purchased from external suppliers" msgstr "" -#: part/templates/part/part_base.html:139 +#: part/templates/part/part_base.html:140 msgid "Part can be sold to customers" msgstr "" -#: part/templates/part/part_base.html:145 +#: part/templates/part/part_base.html:146 msgid "Part is not active" msgstr "" -#: part/templates/part/part_base.html:153 +#: part/templates/part/part_base.html:154 msgid "Part is virtual (not a physical part)" msgstr "" -#: part/templates/part/part_base.html:163 -#: part/templates/part/part_base.html:690 +#: part/templates/part/part_base.html:164 +#: part/templates/part/part_base.html:698 msgid "Show Part Details" msgstr "" #: part/templates/part/part_base.html:218 -#: stock/templates/stock/item_base.html:388 +msgid "Required for Orders" +msgstr "" + +#: part/templates/part/part_base.html:226 +#: stock/templates/stock/item_base.html:385 msgid "Allocated to Build Orders" msgstr "" -#: part/templates/part/part_base.html:227 -#: stock/templates/stock/item_base.html:381 +#: part/templates/part/part_base.html:235 +#: stock/templates/stock/item_base.html:378 msgid "Allocated to Sales Orders" msgstr "" -#: part/templates/part/part_base.html:300 +#: part/templates/part/part_base.html:308 msgid "Minimum stock level" msgstr "" -#: part/templates/part/part_base.html:331 templates/js/translated/bom.js:1071 +#: part/templates/part/part_base.html:339 templates/js/translated/bom.js:1071 #: templates/js/translated/part.js:1271 templates/js/translated/part.js:2463 #: templates/js/translated/pricing.js:391 -#: templates/js/translated/pricing.js:1054 +#: templates/js/translated/pricing.js:1052 msgid "Price Range" msgstr "" -#: part/templates/part/part_base.html:361 +#: part/templates/part/part_base.html:369 msgid "Latest Serial Number" msgstr "" -#: part/templates/part/part_base.html:365 -#: stock/templates/stock/item_base.html:322 +#: part/templates/part/part_base.html:373 +#: stock/templates/stock/item_base.html:319 msgid "Search for serial number" msgstr "" -#: part/templates/part/part_base.html:453 +#: part/templates/part/part_base.html:461 msgid "Part QR Code" msgstr "" -#: part/templates/part/part_base.html:470 +#: part/templates/part/part_base.html:478 msgid "Link Barcode to Part" msgstr "" -#: part/templates/part/part_base.html:520 +#: part/templates/part/part_base.html:528 msgid "Calculate" msgstr "" -#: part/templates/part/part_base.html:537 +#: part/templates/part/part_base.html:545 msgid "Remove associated image from this part" msgstr "" -#: part/templates/part/part_base.html:588 +#: part/templates/part/part_base.html:596 msgid "No matching images found" msgstr "" -#: part/templates/part/part_base.html:684 +#: part/templates/part/part_base.html:692 msgid "Hide Part Details" msgstr "" @@ -8282,13 +8511,13 @@ msgid "Variants" msgstr "" #: part/templates/part/part_sidebar.html:14 -#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:21 +#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:22 #: stock/templates/stock/stock_app_base.html:10 #: templates/InvenTree/search.html:153 #: templates/InvenTree/settings/sidebar.html:51 #: templates/js/translated/part.js:1249 templates/js/translated/part.js:2152 #: templates/js/translated/part.js:2411 templates/js/translated/stock.js:1066 -#: templates/js/translated/stock.js:2155 templates/navbar.html:31 +#: templates/js/translated/stock.js:2156 templates/navbar.html:31 msgid "Stock" msgstr "" @@ -8324,17 +8553,17 @@ msgstr "" #: part/templates/part/prices.html:18 #: templates/InvenTree/settings/settings_staff_js.html:80 #: templates/InvenTree/settings/user.html:24 -#: templates/js/translated/helpers.js:103 +#: templates/js/translated/helpers.js:104 #: templates/js/translated/pricing.js:628 templates/notes_buttons.html:3 #: templates/notes_buttons.html:4 msgid "Edit" msgstr "" -#: part/templates/part/prices.html:28 stock/admin.py:251 -#: stock/templates/stock/item_base.html:446 -#: templates/js/translated/company.js:1703 -#: templates/js/translated/company.js:1713 -#: templates/js/translated/stock.js:2331 +#: part/templates/part/prices.html:28 stock/admin.py:252 +#: stock/templates/stock/item_base.html:443 +#: templates/js/translated/company.js:1704 +#: templates/js/translated/company.js:1714 +#: templates/js/translated/stock.js:2332 msgid "Last Updated" msgstr "" @@ -8406,7 +8635,7 @@ msgid "Update Pricing" msgstr "" #: part/templates/part/stock_count.html:7 -#: templates/js/translated/model_renderers.js:228 +#: templates/js/translated/model_renderers.js:231 #: templates/js/translated/part.js:707 templates/js/translated/part.js:2147 #: templates/js/translated/part.js:2149 msgid "No Stock" @@ -8486,7 +8715,7 @@ msgstr "" msgid "Part Pricing" msgstr "" -#: plugin/api.py:172 +#: plugin/api.py:175 msgid "Plugin cannot be deleted as it is currently active" msgstr "" @@ -8498,78 +8727,85 @@ msgstr "" msgid "No matching action found" msgstr "" -#: plugin/base/barcodes/api.py:125 plugin/base/barcodes/api.py:371 -#: plugin/base/barcodes/api.py:546 +#: plugin/base/barcodes/api.py:203 msgid "No match found for barcode data" msgstr "" -#: plugin/base/barcodes/api.py:129 +#: plugin/base/barcodes/api.py:207 msgid "Match found for barcode data" msgstr "" -#: plugin/base/barcodes/api.py:163 plugin/base/barcodes/serializers.py:45 +#: plugin/base/barcodes/api.py:245 plugin/base/barcodes/serializers.py:72 msgid "Model is not supported" msgstr "" -#: plugin/base/barcodes/api.py:168 +#: plugin/base/barcodes/api.py:250 msgid "Model instance not found" msgstr "" -#: plugin/base/barcodes/api.py:197 -#: templates/js/translated/purchase_order.js:1468 +#: plugin/base/barcodes/api.py:279 +#: templates/js/translated/purchase_order.js:1452 msgid "Barcode matches existing item" msgstr "" -#: plugin/base/barcodes/api.py:336 +#: plugin/base/barcodes/api.py:418 msgid "No matching part data found" msgstr "" -#: plugin/base/barcodes/api.py:353 +#: plugin/base/barcodes/api.py:434 msgid "No matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:357 +#: plugin/base/barcodes/api.py:437 msgid "Multiple matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:381 +#: plugin/base/barcodes/api.py:450 plugin/base/barcodes/api.py:664 +msgid "No matching plugin found for barcode data" +msgstr "" + +#: plugin/base/barcodes/api.py:460 msgid "Matched supplier part" msgstr "" -#: plugin/base/barcodes/api.py:430 +#: plugin/base/barcodes/api.py:525 msgid "Item has already been received" msgstr "" -#: plugin/base/barcodes/api.py:467 +#: plugin/base/barcodes/api.py:563 msgid "No match for supplier barcode" msgstr "" -#: plugin/base/barcodes/api.py:510 +#: plugin/base/barcodes/api.py:612 msgid "Multiple matching line items found" msgstr "" -#: plugin/base/barcodes/api.py:513 +#: plugin/base/barcodes/api.py:615 msgid "No matching line item found" msgstr "" -#: plugin/base/barcodes/api.py:551 plugin/base/barcodes/api.py:558 +#: plugin/base/barcodes/api.py:661 +msgid "No sales order provided" +msgstr "" + +#: plugin/base/barcodes/api.py:670 msgid "Barcode does not match an existing stock item" msgstr "" -#: plugin/base/barcodes/api.py:569 +#: plugin/base/barcodes/api.py:686 msgid "Stock item does not match line item" msgstr "" -#: plugin/base/barcodes/api.py:593 templates/js/translated/build.js:2780 -#: templates/js/translated/sales_order.js:1953 +#: plugin/base/barcodes/api.py:716 templates/js/translated/build.js:2798 +#: templates/js/translated/sales_order.js:1934 msgid "Insufficient stock available" msgstr "" -#: plugin/base/barcodes/api.py:602 +#: plugin/base/barcodes/api.py:729 msgid "Stock item allocated to sales order" msgstr "" -#: plugin/base/barcodes/api.py:606 +#: plugin/base/barcodes/api.py:732 msgid "Not enough information" msgstr "" @@ -8591,75 +8827,75 @@ msgstr "" msgid "Purchase order does not match supplier" msgstr "" -#: plugin/base/barcodes/mixins.py:465 +#: plugin/base/barcodes/mixins.py:467 msgid "Failed to find pending line item for supplier part" msgstr "" -#: plugin/base/barcodes/mixins.py:496 +#: plugin/base/barcodes/mixins.py:498 msgid "Further information required to receive line item" msgstr "" -#: plugin/base/barcodes/mixins.py:504 +#: plugin/base/barcodes/mixins.py:506 msgid "Received purchase order line item" msgstr "" -#: plugin/base/barcodes/serializers.py:21 +#: plugin/base/barcodes/serializers.py:48 msgid "Scanned barcode data" msgstr "" -#: plugin/base/barcodes/serializers.py:30 +#: plugin/base/barcodes/serializers.py:57 msgid "Model name to generate barcode for" msgstr "" -#: plugin/base/barcodes/serializers.py:35 +#: plugin/base/barcodes/serializers.py:62 msgid "Primary key of model object to generate barcode for" msgstr "" -#: plugin/base/barcodes/serializers.py:105 +#: plugin/base/barcodes/serializers.py:132 msgid "Purchase Order to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:111 +#: plugin/base/barcodes/serializers.py:138 msgid "Purchase order is not pending" msgstr "" -#: plugin/base/barcodes/serializers.py:129 +#: plugin/base/barcodes/serializers.py:156 msgid "PurchaseOrder to receive items against" msgstr "" -#: plugin/base/barcodes/serializers.py:135 +#: plugin/base/barcodes/serializers.py:162 msgid "Purchase order has not been placed" msgstr "" -#: plugin/base/barcodes/serializers.py:143 +#: plugin/base/barcodes/serializers.py:170 msgid "Location to receive items into" msgstr "" -#: plugin/base/barcodes/serializers.py:149 +#: plugin/base/barcodes/serializers.py:176 msgid "Cannot select a structural location" msgstr "" -#: plugin/base/barcodes/serializers.py:163 +#: plugin/base/barcodes/serializers.py:190 msgid "Sales Order to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:169 +#: plugin/base/barcodes/serializers.py:196 msgid "Sales order is not pending" msgstr "" -#: plugin/base/barcodes/serializers.py:177 +#: plugin/base/barcodes/serializers.py:204 msgid "Sales order line item to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:184 +#: plugin/base/barcodes/serializers.py:211 msgid "Sales order shipment to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:190 +#: plugin/base/barcodes/serializers.py:217 msgid "Shipment has already been delivered" msgstr "" -#: plugin/base/barcodes/serializers.py:195 +#: plugin/base/barcodes/serializers.py:222 msgid "Quantity to allocate" msgstr "" @@ -8679,6 +8915,42 @@ msgstr "" msgid "No items provided to print" msgstr "" +#: plugin/base/ui/serializers.py:30 +msgid "Plugin Name" +msgstr "" + +#: plugin/base/ui/serializers.py:34 +msgid "Feature Type" +msgstr "" + +#: plugin/base/ui/serializers.py:39 +msgid "Feature Label" +msgstr "" + +#: plugin/base/ui/serializers.py:44 +msgid "Feature Title" +msgstr "" + +#: plugin/base/ui/serializers.py:49 +msgid "Feature Description" +msgstr "" + +#: plugin/base/ui/serializers.py:54 +msgid "Feature Icon" +msgstr "" + +#: plugin/base/ui/serializers.py:58 +msgid "Feature Options" +msgstr "" + +#: plugin/base/ui/serializers.py:61 +msgid "Feature Context" +msgstr "" + +#: plugin/base/ui/serializers.py:64 +msgid "Feature Source (javascript)" +msgstr "" + #: plugin/builtin/barcodes/inventree_barcode.py:27 msgid "InvenTree Barcodes" msgstr "" @@ -8756,7 +9028,7 @@ msgstr "" msgid "URL that is used to send messages to a slack channel" msgstr "" -#: plugin/builtin/integration/core_notifications.py:164 +#: plugin/builtin/integration/core_notifications.py:166 msgid "Open link" msgstr "" @@ -8794,11 +9066,11 @@ msgstr "" msgid "Provides support for printing using a machine" msgstr "" -#: plugin/builtin/labels/inventree_machine.py:149 +#: plugin/builtin/labels/inventree_machine.py:151 msgid "last used" msgstr "" -#: plugin/builtin/labels/inventree_machine.py:166 +#: plugin/builtin/labels/inventree_machine.py:168 msgid "Options" msgstr "" @@ -8822,7 +9094,7 @@ msgstr "" msgid "Print a border around each label" msgstr "" -#: plugin/builtin/labels/label_sheet.py:47 report/models.py:307 +#: plugin/builtin/labels/label_sheet.py:47 report/models.py:315 msgid "Landscape" msgstr "" @@ -8894,19 +9166,19 @@ msgstr "" msgid "The Supplier which acts as 'TME'" msgstr "" -#: plugin/installer.py:194 plugin/installer.py:282 +#: plugin/installer.py:199 plugin/installer.py:282 msgid "Only staff users can administer plugins" msgstr "" -#: plugin/installer.py:197 +#: plugin/installer.py:202 msgid "Plugin installation is disabled" msgstr "" -#: plugin/installer.py:248 +#: plugin/installer.py:246 msgid "Installed plugin successfully" msgstr "" -#: plugin/installer.py:254 +#: plugin/installer.py:251 #, python-brace-format msgid "Installed plugin into {path}" msgstr "" @@ -8943,10 +9215,6 @@ msgstr "" msgid "Plugin Configurations" msgstr "" -#: plugin/models.py:43 users/models.py:100 -msgid "Key" -msgstr "" - #: plugin/models.py:44 msgid "Key of plugin" msgstr "" @@ -8955,7 +9223,7 @@ msgstr "" msgid "PluginName of the plugin" msgstr "" -#: plugin/models.py:59 plugin/serializers.py:90 +#: plugin/models.py:59 plugin/serializers.py:115 msgid "Package Name" msgstr "" @@ -8984,17 +9252,17 @@ msgstr "" msgid "Package Plugin" msgstr "" -#: plugin/models.py:220 report/models.py:474 +#: plugin/models.py:259 report/models.py:482 #: templates/InvenTree/settings/plugin_settings.html:9 #: templates/js/translated/plugin.js:51 msgid "Plugin" msgstr "" -#: plugin/models.py:267 +#: plugin/models.py:306 msgid "Method" msgstr "" -#: plugin/plugin.py:270 +#: plugin/plugin.py:275 msgid "No author found" msgstr "" @@ -9053,81 +9321,157 @@ msgstr "" msgid "InvenTree Contributors" msgstr "" -#: plugin/serializers.py:81 -msgid "Source URL" +#: plugin/samples/integration/user_interface_sample.py:27 +msgid "Enable Part Panels" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:28 +msgid "Enable custom panels for Part views" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:33 +msgid "Enable Purchase Order Panels" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:34 +msgid "Enable custom panels for Purchase Order views" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:39 +msgid "Enable Broken Panels" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:40 +msgid "Enable broken panels for testing" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:45 +msgid "Enable Dynamic Panel" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:46 +msgid "Enable dynamic panels for testing" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:98 +msgid "Part Panel" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:131 +msgid "Broken Dashboard Item" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:133 +msgid "This is a broken dashboard item - it will not render!" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:139 +msgid "Sample Dashboard Item" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:141 +msgid "This is a sample dashboard item. It renders a simple string of HTML content." +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:147 +msgid "Context Dashboard Item" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:161 +msgid "Admin Dashboard Item" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:162 +msgid "This is an admin-only dashboard item." +msgstr "" + +#: plugin/serializers.py:82 +msgid "Source File" msgstr "" #: plugin/serializers.py:83 +msgid "Path to the source file for admin integration" +msgstr "" + +#: plugin/serializers.py:90 +msgid "Optional context data for the admin integration" +msgstr "" + +#: plugin/serializers.py:106 +msgid "Source URL" +msgstr "" + +#: plugin/serializers.py:108 msgid "Source for the package - this can be a custom registry or a VCS path" msgstr "" -#: plugin/serializers.py:92 +#: plugin/serializers.py:117 msgid "Name for the Plugin Package - can also contain a version indicator" msgstr "" -#: plugin/serializers.py:99 +#: plugin/serializers.py:124 #: templates/InvenTree/settings/plugin_settings.html:42 #: templates/js/translated/plugin.js:86 msgid "Version" msgstr "" -#: plugin/serializers.py:101 +#: plugin/serializers.py:126 msgid "Version specifier for the plugin. Leave blank for latest version." msgstr "" -#: plugin/serializers.py:106 +#: plugin/serializers.py:131 msgid "Confirm plugin installation" msgstr "" -#: plugin/serializers.py:108 +#: plugin/serializers.py:133 msgid "This will install this plugin now into the current instance. The instance will go into maintenance." msgstr "" -#: plugin/serializers.py:121 +#: plugin/serializers.py:146 msgid "Installation not confirmed" msgstr "" -#: plugin/serializers.py:123 +#: plugin/serializers.py:148 msgid "Either packagename of URL must be provided" msgstr "" -#: plugin/serializers.py:161 +#: plugin/serializers.py:184 msgid "Full reload" msgstr "" -#: plugin/serializers.py:162 +#: plugin/serializers.py:185 msgid "Perform a full reload of the plugin registry" msgstr "" -#: plugin/serializers.py:168 +#: plugin/serializers.py:191 msgid "Force reload" msgstr "" -#: plugin/serializers.py:170 +#: plugin/serializers.py:193 msgid "Force a reload of the plugin registry, even if it is already loaded" msgstr "" -#: plugin/serializers.py:177 +#: plugin/serializers.py:200 msgid "Collect plugins" msgstr "" -#: plugin/serializers.py:178 +#: plugin/serializers.py:201 msgid "Collect plugins and add them to the registry" msgstr "" -#: plugin/serializers.py:205 +#: plugin/serializers.py:228 msgid "Activate Plugin" msgstr "" -#: plugin/serializers.py:206 +#: plugin/serializers.py:229 msgid "Activate this plugin" msgstr "" -#: plugin/serializers.py:226 +#: plugin/serializers.py:249 msgid "Delete configuration" msgstr "" -#: plugin/serializers.py:227 +#: plugin/serializers.py:250 msgid "Delete the plugin configuration from the database" msgstr "" @@ -9135,11 +9479,11 @@ msgstr "" msgid "No valid objects provided to template" msgstr "" -#: report/api.py:103 report/models.py:438 report/serializers.py:98 -#: report/serializers.py:148 templates/js/translated/purchase_order.js:1817 +#: report/api.py:103 report/models.py:446 report/serializers.py:99 +#: report/serializers.py:149 templates/js/translated/purchase_order.js:1801 #: templates/js/translated/return_order.js:353 -#: templates/js/translated/sales_order.js:887 -#: templates/js/translated/sales_order.js:1047 +#: templates/js/translated/sales_order.js:846 +#: templates/js/translated/sales_order.js:1020 msgid "Items" msgstr "" @@ -9167,7 +9511,11 @@ msgstr "" msgid "Error printing label" msgstr "" -#: report/api.py:375 report/api.py:411 +#: report/api.py:358 +msgid "Report saved at time of printing" +msgstr "" + +#: report/api.py:384 report/api.py:420 #, python-brace-format msgid "Template file '{template}' is missing or does not exist" msgstr "" @@ -9204,135 +9552,143 @@ msgstr "" msgid "Revision number (auto-increments)" msgstr "" -#: report/models.py:202 +#: report/models.py:168 +msgid "Attach to Model on Print" +msgstr "" + +#: report/models.py:170 +msgid "Save report output as an attachment against linked model instance when printing" +msgstr "" + +#: report/models.py:210 msgid "Filename Pattern" msgstr "" -#: report/models.py:203 +#: report/models.py:211 msgid "Pattern for generating filenames" msgstr "" -#: report/models.py:208 +#: report/models.py:216 msgid "Template is enabled" msgstr "" -#: report/models.py:214 +#: report/models.py:222 msgid "Target model type for template" msgstr "" -#: report/models.py:234 +#: report/models.py:242 msgid "Filters" msgstr "" -#: report/models.py:235 +#: report/models.py:243 msgid "Template query filters (comma-separated list of key=value pairs)" msgstr "" -#: report/models.py:294 report/models.py:361 +#: report/models.py:302 report/models.py:369 msgid "Template file" msgstr "" -#: report/models.py:302 +#: report/models.py:310 msgid "Page size for PDF reports" msgstr "" -#: report/models.py:308 +#: report/models.py:316 msgid "Render report in landscape orientation" msgstr "" -#: report/models.py:367 +#: report/models.py:375 msgid "Width [mm]" msgstr "" -#: report/models.py:368 +#: report/models.py:376 msgid "Label width, specified in mm" msgstr "" -#: report/models.py:374 +#: report/models.py:382 msgid "Height [mm]" msgstr "" -#: report/models.py:375 +#: report/models.py:383 msgid "Label height, specified in mm" msgstr "" -#: report/models.py:438 +#: report/models.py:446 msgid "Number of items to process" msgstr "" -#: report/models.py:444 +#: report/models.py:452 msgid "Report generation is complete" msgstr "" -#: report/models.py:448 templates/js/translated/build.js:2349 +#: report/models.py:456 templates/js/translated/build.js:2352 msgid "Progress" msgstr "" -#: report/models.py:448 +#: report/models.py:456 msgid "Report generation progress" msgstr "" -#: report/models.py:456 +#: report/models.py:464 msgid "Report Template" msgstr "" -#: report/models.py:463 report/models.py:486 +#: report/models.py:471 report/models.py:494 msgid "Output File" msgstr "" -#: report/models.py:464 report/models.py:487 +#: report/models.py:472 report/models.py:495 msgid "Generated output file" msgstr "" -#: report/models.py:475 +#: report/models.py:483 msgid "Label output plugin" msgstr "" -#: report/models.py:479 +#: report/models.py:487 msgid "Label Template" msgstr "" -#: report/models.py:502 +#: report/models.py:510 msgid "Snippet" msgstr "" -#: report/models.py:503 +#: report/models.py:511 msgid "Report snippet file" msgstr "" -#: report/models.py:510 +#: report/models.py:518 msgid "Snippet file description" msgstr "" -#: report/models.py:528 +#: report/models.py:536 msgid "Asset" msgstr "" -#: report/models.py:529 +#: report/models.py:537 msgid "Report asset file" msgstr "" -#: report/models.py:536 +#: report/models.py:544 msgid "Asset file description" msgstr "" -#: report/serializers.py:91 +#: report/serializers.py:92 msgid "Select report template" msgstr "" -#: report/serializers.py:99 report/serializers.py:149 +#: report/serializers.py:100 report/serializers.py:150 msgid "List of item primary keys to include in the report" msgstr "" -#: report/serializers.py:132 +#: report/serializers.py:133 msgid "Select label template" msgstr "" -#: report/serializers.py:140 +#: report/serializers.py:141 msgid "Printing Plugin" msgstr "" -#: report/serializers.py:141 +#: report/serializers.py:142 msgid "Select plugin to use for label printing" msgstr "" @@ -9365,9 +9721,9 @@ msgstr "" #: report/templates/report/inventree_sales_order_report.html:30 #: templates/js/translated/order.js:341 templates/js/translated/pricing.js:527 #: templates/js/translated/pricing.js:596 -#: templates/js/translated/pricing.js:834 -#: templates/js/translated/purchase_order.js:2185 -#: templates/js/translated/sales_order.js:1873 +#: templates/js/translated/pricing.js:832 +#: templates/js/translated/purchase_order.js:2169 +#: templates/js/translated/sales_order.js:1854 msgid "Unit Price" msgstr "" @@ -9379,13 +9735,18 @@ msgstr "" #: report/templates/report/inventree_purchase_order_report.html:72 #: report/templates/report/inventree_sales_order_report.html:72 -#: templates/js/translated/purchase_order.js:2087 -#: templates/js/translated/sales_order.js:1842 +#: templates/js/translated/purchase_order.js:2071 +#: templates/js/translated/sales_order.js:1823 #: templates/test_statistics_table.html:8 #: templates/test_statistics_table.html:19 msgid "Total" msgstr "" +#: report/templates/report/inventree_sales_order_shipment_report.html:23 +#: stock/templates/stock/stock_sidebar.html:8 +msgid "Allocations" +msgstr "" + #: report/templates/report/inventree_stock_location_report.html:97 msgid "Stock location items" msgstr "" @@ -9403,15 +9764,13 @@ msgstr "" msgid "Test" msgstr "" -#: report/templates/report/inventree_test_report.html:103 stock/models.py:2544 -msgid "Result" -msgstr "" - #: report/templates/report/inventree_test_report.html:129 +#: templates/js/translated/stock.js:1448 msgid "Pass" msgstr "" #: report/templates/report/inventree_test_report.html:131 +#: templates/js/translated/stock.js:1450 msgid "Fail" msgstr "" @@ -9420,17 +9779,18 @@ msgid "No result (required)" msgstr "" #: report/templates/report/inventree_test_report.html:140 +#: templates/js/translated/stock.js:1455 msgid "No result" msgstr "" #: report/templates/report/inventree_test_report.html:153 -#: stock/serializers.py:599 stock/templates/stock/stock_sidebar.html:16 +#: stock/serializers.py:626 stock/templates/stock/stock_sidebar.html:16 msgid "Installed Items" msgstr "" -#: report/templates/report/inventree_test_report.html:167 stock/admin.py:161 +#: report/templates/report/inventree_test_report.html:167 stock/admin.py:162 #: templates/js/translated/stock.js:706 templates/js/translated/stock.js:877 -#: templates/js/translated/stock.js:3194 +#: templates/js/translated/stock.js:3195 msgid "Serial" msgstr "" @@ -9450,67 +9810,67 @@ msgstr "" msgid "company_image tag requires a Company instance" msgstr "" -#: stock/admin.py:51 stock/admin.py:171 +#: stock/admin.py:51 stock/admin.py:172 msgid "Location ID" msgstr "" -#: stock/admin.py:63 stock/templates/stock/location.html:128 -#: stock/templates/stock/location.html:134 +#: stock/admin.py:63 stock/templates/stock/location.html:129 +#: stock/templates/stock/location.html:135 msgid "Location Path" msgstr "" -#: stock/admin.py:148 +#: stock/admin.py:149 msgid "Stock Item ID" msgstr "" -#: stock/admin.py:167 +#: stock/admin.py:168 msgid "Status Code" msgstr "" -#: stock/admin.py:179 +#: stock/admin.py:180 msgid "Supplier Part ID" msgstr "" -#: stock/admin.py:184 +#: stock/admin.py:185 msgid "Supplier Part SKU" msgstr "" -#: stock/admin.py:189 +#: stock/admin.py:190 msgid "Supplier ID" msgstr "" -#: stock/admin.py:200 +#: stock/admin.py:201 msgid "Customer ID" msgstr "" -#: stock/admin.py:205 stock/models.py:825 -#: stock/templates/stock/item_base.html:354 +#: stock/admin.py:206 stock/models.py:902 +#: stock/templates/stock/item_base.html:351 msgid "Installed In" msgstr "" -#: stock/admin.py:210 +#: stock/admin.py:211 msgid "Build ID" msgstr "" -#: stock/admin.py:220 +#: stock/admin.py:221 msgid "Sales Order ID" msgstr "" -#: stock/admin.py:225 +#: stock/admin.py:226 msgid "Purchase Order ID" msgstr "" -#: stock/admin.py:240 +#: stock/admin.py:241 msgid "Review Needed" msgstr "" -#: stock/admin.py:245 +#: stock/admin.py:246 msgid "Delete on Deplete" msgstr "" -#: stock/admin.py:260 stock/models.py:919 -#: stock/templates/stock/item_base.html:433 -#: templates/js/translated/stock.js:2315 users/models.py:124 +#: stock/admin.py:261 stock/models.py:996 +#: stock/templates/stock/item_base.html:430 +#: templates/js/translated/stock.js:2316 users/models.py:124 msgid "Expiry Date" msgstr "" @@ -9526,11 +9886,11 @@ msgstr "" msgid "Include sub-locations in filtered results" msgstr "" -#: stock/api.py:367 stock/serializers.py:1186 +#: stock/api.py:366 stock/serializers.py:1217 msgid "Parent Location" msgstr "" -#: stock/api.py:368 +#: stock/api.py:367 msgid "Filter by parent location" msgstr "" @@ -9550,8 +9910,8 @@ msgstr "" msgid "Expiry date after" msgstr "" -#: stock/api.py:840 stock/serializers.py:604 -#: stock/templates/stock/item_base.html:439 +#: stock/api.py:840 stock/serializers.py:631 +#: stock/templates/stock/item_base.html:436 #: templates/js/translated/table_filters.js:448 msgid "Stale" msgstr "" @@ -9560,594 +9920,598 @@ msgstr "" msgid "Quantity is required" msgstr "" -#: stock/api.py:933 +#: stock/api.py:932 msgid "Valid part must be supplied" msgstr "" -#: stock/api.py:964 +#: stock/api.py:959 msgid "The given supplier part does not exist" msgstr "" -#: stock/api.py:974 +#: stock/api.py:969 msgid "The supplier part has a pack size defined, but flag use_pack_size not set" msgstr "" -#: stock/api.py:1005 +#: stock/api.py:996 msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "" -#: stock/models.py:64 +#: stock/models.py:70 msgid "Stock Location type" msgstr "" -#: stock/models.py:65 +#: stock/models.py:71 msgid "Stock Location types" msgstr "" -#: stock/models.py:91 +#: stock/models.py:97 msgid "Default icon for all locations that have no icon set (optional)" msgstr "" -#: stock/models.py:131 stock/models.py:807 -#: stock/templates/stock/location.html:17 +#: stock/models.py:137 stock/models.py:884 +#: stock/templates/stock/location.html:18 #: stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "" -#: stock/models.py:132 stock/templates/stock/location.html:183 +#: stock/models.py:138 stock/templates/stock/location.html:184 #: templates/InvenTree/search.html:166 templates/js/translated/search.js:178 #: users/models.py:205 msgid "Stock Locations" msgstr "" -#: stock/models.py:180 stock/models.py:968 -#: stock/templates/stock/item_base.html:247 +#: stock/models.py:186 stock/models.py:1045 +#: stock/templates/stock/item_base.html:244 msgid "Owner" msgstr "" -#: stock/models.py:181 stock/models.py:969 +#: stock/models.py:187 stock/models.py:1046 msgid "Select Owner" msgstr "" -#: stock/models.py:189 +#: stock/models.py:195 msgid "Stock items may not be directly located into a structural stock locations, but may be located to child locations." msgstr "" -#: stock/models.py:196 templates/js/translated/stock.js:2865 +#: stock/models.py:202 templates/js/translated/stock.js:2866 #: templates/js/translated/table_filters.js:250 msgid "External" msgstr "" -#: stock/models.py:197 +#: stock/models.py:203 msgid "This is an external stock location" msgstr "" -#: stock/models.py:203 templates/js/translated/stock.js:2874 +#: stock/models.py:209 templates/js/translated/stock.js:2875 #: templates/js/translated/table_filters.js:253 msgid "Location type" msgstr "" -#: stock/models.py:207 +#: stock/models.py:213 msgid "Stock location type of this location" msgstr "" -#: stock/models.py:279 +#: stock/models.py:285 msgid "You cannot make this stock location structural because some stock items are already located into it!" msgstr "" -#: stock/models.py:664 +#: stock/models.py:492 +msgid "Part must be specified" +msgstr "" + +#: stock/models.py:741 msgid "Stock items cannot be located into structural stock locations!" msgstr "" -#: stock/models.py:691 stock/serializers.py:480 +#: stock/models.py:768 stock/serializers.py:492 msgid "Stock item cannot be created for virtual parts" msgstr "" -#: stock/models.py:708 +#: stock/models.py:785 #, python-brace-format msgid "Part type ('{self.supplier_part.part}') must be {self.part}" msgstr "" -#: stock/models.py:718 stock/models.py:731 +#: stock/models.py:795 stock/models.py:808 msgid "Quantity must be 1 for item with a serial number" msgstr "" -#: stock/models.py:721 +#: stock/models.py:798 msgid "Serial number cannot be set if quantity greater than 1" msgstr "" -#: stock/models.py:743 +#: stock/models.py:820 msgid "Item cannot belong to itself" msgstr "" -#: stock/models.py:748 +#: stock/models.py:825 msgid "Item must have a build reference if is_building=True" msgstr "" -#: stock/models.py:761 +#: stock/models.py:838 msgid "Build reference does not point to the same part object" msgstr "" -#: stock/models.py:777 +#: stock/models.py:854 msgid "Parent Stock Item" msgstr "" -#: stock/models.py:789 +#: stock/models.py:866 msgid "Base part" msgstr "" -#: stock/models.py:799 +#: stock/models.py:876 msgid "Select a matching supplier part for this stock item" msgstr "" -#: stock/models.py:811 +#: stock/models.py:888 msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:819 stock/serializers.py:1580 +#: stock/models.py:896 stock/serializers.py:1611 msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:830 +#: stock/models.py:907 msgid "Is this item installed in another item?" msgstr "" -#: stock/models.py:849 +#: stock/models.py:926 msgid "Serial number for this item" msgstr "" -#: stock/models.py:863 stock/serializers.py:1563 +#: stock/models.py:940 stock/serializers.py:1594 msgid "Batch code for this stock item" msgstr "" -#: stock/models.py:868 +#: stock/models.py:945 msgid "Stock Quantity" msgstr "" -#: stock/models.py:878 +#: stock/models.py:955 msgid "Source Build" msgstr "" -#: stock/models.py:881 +#: stock/models.py:958 msgid "Build for this stock item" msgstr "" -#: stock/models.py:888 stock/templates/stock/item_base.html:363 +#: stock/models.py:965 stock/templates/stock/item_base.html:360 msgid "Consumed By" msgstr "" -#: stock/models.py:891 +#: stock/models.py:968 msgid "Build order which consumed this stock item" msgstr "" -#: stock/models.py:900 +#: stock/models.py:977 msgid "Source Purchase Order" msgstr "" -#: stock/models.py:904 +#: stock/models.py:981 msgid "Purchase order for this stock item" msgstr "" -#: stock/models.py:910 +#: stock/models.py:987 msgid "Destination Sales Order" msgstr "" -#: stock/models.py:921 +#: stock/models.py:998 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "" -#: stock/models.py:939 +#: stock/models.py:1016 msgid "Delete on deplete" msgstr "" -#: stock/models.py:940 +#: stock/models.py:1017 msgid "Delete this Stock Item when stock is depleted" msgstr "" -#: stock/models.py:960 +#: stock/models.py:1037 msgid "Single unit purchase price at time of purchase" msgstr "" -#: stock/models.py:991 +#: stock/models.py:1068 msgid "Converted to part" msgstr "" -#: stock/models.py:1511 +#: stock/models.py:1600 msgid "Part is not set as trackable" msgstr "" -#: stock/models.py:1517 +#: stock/models.py:1606 msgid "Quantity must be integer" msgstr "" -#: stock/models.py:1525 +#: stock/models.py:1614 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({self.quantity})" msgstr "" -#: stock/models.py:1531 -msgid "Serial numbers must be a list of integers" +#: stock/models.py:1620 +msgid "Serial numbers must be provided as a list" msgstr "" -#: stock/models.py:1536 +#: stock/models.py:1625 msgid "Quantity does not match serial numbers" msgstr "" -#: stock/models.py:1544 stock/serializers.py:726 -msgid "Serial numbers already exist" -msgstr "" - -#: stock/models.py:1641 +#: stock/models.py:1747 stock/models.py:2563 msgid "Test template does not exist" msgstr "" -#: stock/models.py:1659 +#: stock/models.py:1765 msgid "Stock item has been assigned to a sales order" msgstr "" -#: stock/models.py:1663 +#: stock/models.py:1769 msgid "Stock item is installed in another item" msgstr "" -#: stock/models.py:1666 +#: stock/models.py:1772 msgid "Stock item contains other items" msgstr "" -#: stock/models.py:1669 +#: stock/models.py:1775 msgid "Stock item has been assigned to a customer" msgstr "" -#: stock/models.py:1672 +#: stock/models.py:1778 msgid "Stock item is currently in production" msgstr "" -#: stock/models.py:1675 +#: stock/models.py:1781 msgid "Serialized stock cannot be merged" msgstr "" -#: stock/models.py:1682 stock/serializers.py:1469 +#: stock/models.py:1788 stock/serializers.py:1500 msgid "Duplicate stock items" msgstr "" -#: stock/models.py:1686 +#: stock/models.py:1792 msgid "Stock items must refer to the same part" msgstr "" -#: stock/models.py:1694 +#: stock/models.py:1800 msgid "Stock items must refer to the same supplier part" msgstr "" -#: stock/models.py:1699 +#: stock/models.py:1805 msgid "Stock status codes must match" msgstr "" -#: stock/models.py:1960 +#: stock/models.py:2066 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:2343 +#: stock/models.py:2462 msgid "Stock Item Tracking" msgstr "" -#: stock/models.py:2376 +#: stock/models.py:2495 msgid "Entry notes" msgstr "" -#: stock/models.py:2416 +#: stock/models.py:2535 msgid "Stock Item Test Result" msgstr "" -#: stock/models.py:2449 +#: stock/models.py:2566 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:2454 +#: stock/models.py:2570 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:2459 +#: stock/models.py:2575 msgid "Invalid value for this test" msgstr "" -#: stock/models.py:2544 +#: stock/models.py:2660 msgid "Test result" msgstr "" -#: stock/models.py:2551 +#: stock/models.py:2667 msgid "Test output value" msgstr "" -#: stock/models.py:2559 +#: stock/models.py:2675 stock/serializers.py:245 msgid "Test result attachment" msgstr "" -#: stock/models.py:2563 +#: stock/models.py:2679 msgid "Test notes" msgstr "" -#: stock/models.py:2571 templates/js/translated/stock.js:1633 +#: stock/models.py:2687 templates/js/translated/stock.js:1633 msgid "Test station" msgstr "" -#: stock/models.py:2572 +#: stock/models.py:2688 msgid "The identifier of the test station where the test was performed" msgstr "" -#: stock/models.py:2578 +#: stock/models.py:2694 msgid "Started" msgstr "" -#: stock/models.py:2579 +#: stock/models.py:2695 msgid "The timestamp of the test start" msgstr "" -#: stock/models.py:2585 +#: stock/models.py:2701 msgid "Finished" msgstr "" -#: stock/models.py:2586 +#: stock/models.py:2702 msgid "The timestamp of the test finish" msgstr "" -#: stock/serializers.py:76 +#: stock/serializers.py:77 msgid "Generated batch code" msgstr "" -#: stock/serializers.py:85 +#: stock/serializers.py:86 msgid "Select build order" msgstr "" -#: stock/serializers.py:94 +#: stock/serializers.py:95 msgid "Select stock item to generate batch code for" msgstr "" -#: stock/serializers.py:103 +#: stock/serializers.py:104 msgid "Select location to generate batch code for" msgstr "" -#: stock/serializers.py:112 +#: stock/serializers.py:113 msgid "Select part to generate batch code for" msgstr "" -#: stock/serializers.py:121 +#: stock/serializers.py:122 msgid "Select purchase order" msgstr "" -#: stock/serializers.py:128 +#: stock/serializers.py:129 msgid "Enter quantity for batch code" msgstr "" -#: stock/serializers.py:151 +#: stock/serializers.py:152 msgid "Generated serial number" msgstr "" -#: stock/serializers.py:160 +#: stock/serializers.py:161 msgid "Select part to generate serial number for" msgstr "" -#: stock/serializers.py:168 +#: stock/serializers.py:169 msgid "Quantity of serial numbers to generate" msgstr "" -#: stock/serializers.py:233 +#: stock/serializers.py:234 msgid "Test template for this result" msgstr "" -#: stock/serializers.py:254 +#: stock/serializers.py:258 msgid "Template ID or test name must be provided" msgstr "" -#: stock/serializers.py:286 +#: stock/serializers.py:290 msgid "The test finished time cannot be earlier than the test started time" msgstr "" -#: stock/serializers.py:323 +#: stock/serializers.py:327 msgid "Serial number is too large" msgstr "" -#: stock/serializers.py:452 stock/templates/stock/item_base.html:193 +#: stock/serializers.py:462 stock/templates/stock/item_base.html:190 msgid "Parent Item" msgstr "" -#: stock/serializers.py:453 +#: stock/serializers.py:463 msgid "Parent stock item" msgstr "" -#: stock/serializers.py:472 +#: stock/serializers.py:484 msgid "Use pack size when adding: the quantity defined is the number of packs" msgstr "" -#: stock/serializers.py:596 stock/templates/stock/item_base.html:437 +#: stock/serializers.py:623 stock/templates/stock/item_base.html:434 #: templates/js/translated/table_filters.js:442 users/models.py:174 msgid "Expired" msgstr "" -#: stock/serializers.py:602 stock/templates/stock/stock_sidebar.html:20 +#: stock/serializers.py:629 stock/templates/stock/stock_sidebar.html:20 msgid "Child Items" msgstr "" -#: stock/serializers.py:606 +#: stock/serializers.py:633 msgid "Tracking Items" msgstr "" -#: stock/serializers.py:612 +#: stock/serializers.py:639 msgid "Purchase price of this stock item, per unit or pack" msgstr "" -#: stock/serializers.py:631 +#: stock/serializers.py:658 msgid "Minimum Pricing" msgstr "" -#: stock/serializers.py:637 +#: stock/serializers.py:664 msgid "Maximum Pricing" msgstr "" -#: stock/serializers.py:661 +#: stock/serializers.py:688 msgid "Enter number of stock items to serialize" msgstr "" -#: stock/serializers.py:674 +#: stock/serializers.py:701 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({q})" msgstr "" -#: stock/serializers.py:681 +#: stock/serializers.py:708 msgid "Enter serial numbers for new items" msgstr "" -#: stock/serializers.py:692 stock/serializers.py:1426 stock/serializers.py:1682 +#: stock/serializers.py:719 stock/serializers.py:1457 stock/serializers.py:1713 msgid "Destination stock location" msgstr "" -#: stock/serializers.py:699 +#: stock/serializers.py:726 msgid "Optional note field" msgstr "" -#: stock/serializers.py:709 +#: stock/serializers.py:736 msgid "Serial numbers cannot be assigned to this part" msgstr "" -#: stock/serializers.py:764 +#: stock/serializers.py:756 +msgid "Serial numbers already exist" +msgstr "" + +#: stock/serializers.py:795 msgid "Select stock item to install" msgstr "" -#: stock/serializers.py:771 +#: stock/serializers.py:802 msgid "Quantity to Install" msgstr "" -#: stock/serializers.py:772 +#: stock/serializers.py:803 msgid "Enter the quantity of items to install" msgstr "" -#: stock/serializers.py:777 stock/serializers.py:857 stock/serializers.py:983 -#: stock/serializers.py:1033 +#: stock/serializers.py:808 stock/serializers.py:888 stock/serializers.py:1014 +#: stock/serializers.py:1064 msgid "Add transaction note (optional)" msgstr "" -#: stock/serializers.py:785 +#: stock/serializers.py:816 msgid "Quantity to install must be at least 1" msgstr "" -#: stock/serializers.py:793 +#: stock/serializers.py:824 msgid "Stock item is unavailable" msgstr "" -#: stock/serializers.py:804 +#: stock/serializers.py:835 msgid "Selected part is not in the Bill of Materials" msgstr "" -#: stock/serializers.py:817 +#: stock/serializers.py:848 msgid "Quantity to install must not exceed available quantity" msgstr "" -#: stock/serializers.py:852 +#: stock/serializers.py:883 msgid "Destination location for uninstalled item" msgstr "" -#: stock/serializers.py:903 +#: stock/serializers.py:934 msgid "Unsupported statistic type: " msgstr "" -#: stock/serializers.py:917 +#: stock/serializers.py:948 msgid "Select part to convert stock item into" msgstr "" -#: stock/serializers.py:930 +#: stock/serializers.py:961 msgid "Selected part is not a valid option for conversion" msgstr "" -#: stock/serializers.py:947 +#: stock/serializers.py:978 msgid "Cannot convert stock item with assigned SupplierPart" msgstr "" -#: stock/serializers.py:978 +#: stock/serializers.py:1009 msgid "Destination location for returned item" msgstr "" -#: stock/serializers.py:1015 +#: stock/serializers.py:1046 msgid "Select stock items to change status" msgstr "" -#: stock/serializers.py:1021 +#: stock/serializers.py:1052 msgid "No stock items selected" msgstr "" -#: stock/serializers.py:1117 stock/serializers.py:1194 -#: stock/templates/stock/location.html:162 -#: stock/templates/stock/location.html:219 +#: stock/serializers.py:1148 stock/serializers.py:1225 +#: stock/templates/stock/location.html:163 +#: stock/templates/stock/location.html:220 #: stock/templates/stock/location_sidebar.html:5 msgid "Sublocations" msgstr "" -#: stock/serializers.py:1187 templates/js/translated/stock.js:160 +#: stock/serializers.py:1218 templates/js/translated/stock.js:160 msgid "Parent stock location" msgstr "" -#: stock/serializers.py:1298 +#: stock/serializers.py:1329 msgid "Part must be salable" msgstr "" -#: stock/serializers.py:1302 +#: stock/serializers.py:1333 msgid "Item is allocated to a sales order" msgstr "" -#: stock/serializers.py:1306 +#: stock/serializers.py:1337 msgid "Item is allocated to a build order" msgstr "" -#: stock/serializers.py:1330 +#: stock/serializers.py:1361 msgid "Customer to assign stock items" msgstr "" -#: stock/serializers.py:1336 +#: stock/serializers.py:1367 msgid "Selected company is not a customer" msgstr "" -#: stock/serializers.py:1344 +#: stock/serializers.py:1375 msgid "Stock assignment notes" msgstr "" -#: stock/serializers.py:1354 stock/serializers.py:1608 +#: stock/serializers.py:1385 stock/serializers.py:1639 msgid "A list of stock items must be provided" msgstr "" -#: stock/serializers.py:1433 +#: stock/serializers.py:1464 msgid "Stock merging notes" msgstr "" -#: stock/serializers.py:1438 +#: stock/serializers.py:1469 msgid "Allow mismatched suppliers" msgstr "" -#: stock/serializers.py:1439 +#: stock/serializers.py:1470 msgid "Allow stock items with different supplier parts to be merged" msgstr "" -#: stock/serializers.py:1444 +#: stock/serializers.py:1475 msgid "Allow mismatched status" msgstr "" -#: stock/serializers.py:1445 +#: stock/serializers.py:1476 msgid "Allow stock items with different status codes to be merged" msgstr "" -#: stock/serializers.py:1455 +#: stock/serializers.py:1486 msgid "At least two stock items must be provided" msgstr "" -#: stock/serializers.py:1522 +#: stock/serializers.py:1553 msgid "No Change" msgstr "" -#: stock/serializers.py:1551 +#: stock/serializers.py:1582 msgid "StockItem primary key value" msgstr "" -#: stock/serializers.py:1570 +#: stock/serializers.py:1601 msgid "Stock item status code" msgstr "" -#: stock/serializers.py:1598 +#: stock/serializers.py:1629 msgid "Stock transaction notes" msgstr "" @@ -10175,107 +10539,107 @@ msgstr "Afvist" msgid "Quarantined" msgstr "I karantæne" -#: stock/status_codes.py:40 +#: stock/status_codes.py:44 msgid "Legacy stock tracking entry" msgstr "Forældet lager sporings post" -#: stock/status_codes.py:42 templates/js/translated/stock.js:550 +#: stock/status_codes.py:46 templates/js/translated/stock.js:550 msgid "Stock item created" msgstr "Lager-element oprettet" -#: stock/status_codes.py:45 +#: stock/status_codes.py:49 msgid "Edited stock item" msgstr "Redigeret lager-element" -#: stock/status_codes.py:46 +#: stock/status_codes.py:50 msgid "Assigned serial number" msgstr "Serienummer tildelt" -#: stock/status_codes.py:49 +#: stock/status_codes.py:53 msgid "Stock counted" msgstr "Lagerbeholdning optalt" -#: stock/status_codes.py:50 +#: stock/status_codes.py:54 msgid "Stock manually added" msgstr "Lagerbeholdning tilføjet manuelt" -#: stock/status_codes.py:51 +#: stock/status_codes.py:55 msgid "Stock manually removed" msgstr "Lagerbeholdning fjernet manuelt" -#: stock/status_codes.py:54 +#: stock/status_codes.py:58 msgid "Location changed" msgstr "Lokation ændret" -#: stock/status_codes.py:55 +#: stock/status_codes.py:59 msgid "Stock updated" msgstr "Lager opdateret" -#: stock/status_codes.py:58 +#: stock/status_codes.py:62 msgid "Installed into assembly" msgstr "Monteret i samling" -#: stock/status_codes.py:59 +#: stock/status_codes.py:63 msgid "Removed from assembly" msgstr "Fjernet fra samling" -#: stock/status_codes.py:61 +#: stock/status_codes.py:65 msgid "Installed component item" msgstr "Installeret komponent element" -#: stock/status_codes.py:62 +#: stock/status_codes.py:66 msgid "Removed component item" msgstr "Fjernet komponent element" -#: stock/status_codes.py:65 +#: stock/status_codes.py:69 msgid "Split from parent item" msgstr "Opdel fra overordnet element" -#: stock/status_codes.py:66 +#: stock/status_codes.py:70 msgid "Split child item" msgstr "Opdel underordnet element" -#: stock/status_codes.py:69 templates/js/translated/stock.js:1943 +#: stock/status_codes.py:73 templates/js/translated/stock.js:1944 msgid "Merged stock items" msgstr "Flettede lagervarer" -#: stock/status_codes.py:72 +#: stock/status_codes.py:76 msgid "Converted to variant" msgstr "Konverteret til variant" -#: stock/status_codes.py:75 +#: stock/status_codes.py:79 msgid "Build order output created" msgstr "Byggeordre output genereret" -#: stock/status_codes.py:76 +#: stock/status_codes.py:80 msgid "Build order output completed" msgstr "Byggeorder output fuldført" -#: stock/status_codes.py:77 +#: stock/status_codes.py:81 msgid "Build order output rejected" msgstr "" -#: stock/status_codes.py:78 templates/js/translated/stock.js:1849 +#: stock/status_codes.py:82 templates/js/translated/stock.js:1849 msgid "Consumed by build order" msgstr "Brugt efter byggeordre" -#: stock/status_codes.py:81 +#: stock/status_codes.py:85 msgid "Shipped against Sales Order" msgstr "Afsendt mod salgsordre" -#: stock/status_codes.py:84 +#: stock/status_codes.py:88 msgid "Received against Purchase Order" msgstr "Modtaget mod indkøbsordre" -#: stock/status_codes.py:87 +#: stock/status_codes.py:91 msgid "Returned against Return Order" msgstr "Returneret mod returordre" -#: stock/status_codes.py:90 templates/js/translated/table_filters.js:382 +#: stock/status_codes.py:94 templates/js/translated/table_filters.js:382 msgid "Sent to customer" msgstr "Sendt til kunde" -#: stock/status_codes.py:91 +#: stock/status_codes.py:95 msgid "Returned from customer" msgstr "Returneret fra kunde" @@ -10296,7 +10660,7 @@ msgstr "" msgid "Test Data" msgstr "" -#: stock/templates/stock/item.html:85 stock/templates/stock/item_base.html:65 +#: stock/templates/stock/item.html:85 msgid "Test Report" msgstr "" @@ -10316,7 +10680,7 @@ msgstr "" msgid "Installed Stock Items" msgstr "" -#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3354 +#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3355 msgid "Install Stock Item" msgstr "" @@ -10328,208 +10692,212 @@ msgstr "" msgid "Add Test Result" msgstr "" -#: stock/templates/stock/item_base.html:33 +#: stock/templates/stock/item_base.html:34 msgid "Locate stock item" msgstr "" -#: stock/templates/stock/item_base.html:51 +#: stock/templates/stock/item_base.html:52 msgid "Scan to Location" msgstr "" #: stock/templates/stock/item_base.html:59 -#: stock/templates/stock/location.html:67 +#: stock/templates/stock/location.html:68 #: templates/js/translated/filters.js:434 msgid "Printing actions" msgstr "" -#: stock/templates/stock/item_base.html:75 +#: stock/templates/stock/item_base.html:64 templates/js/translated/report.js:49 +msgid "Print Report" +msgstr "" + +#: stock/templates/stock/item_base.html:72 msgid "Stock adjustment actions" msgstr "" -#: stock/templates/stock/item_base.html:79 -#: stock/templates/stock/location.html:87 templates/js/translated/stock.js:1909 +#: stock/templates/stock/item_base.html:76 +#: stock/templates/stock/location.html:88 templates/js/translated/stock.js:1909 msgid "Count stock" msgstr "" -#: stock/templates/stock/item_base.html:81 +#: stock/templates/stock/item_base.html:78 #: templates/js/translated/stock.js:1891 msgid "Add stock" msgstr "" -#: stock/templates/stock/item_base.html:82 +#: stock/templates/stock/item_base.html:79 #: templates/js/translated/stock.js:1900 msgid "Remove stock" msgstr "" -#: stock/templates/stock/item_base.html:85 +#: stock/templates/stock/item_base.html:82 msgid "Serialize stock" msgstr "" -#: stock/templates/stock/item_base.html:88 -#: stock/templates/stock/location.html:93 templates/js/translated/stock.js:1918 +#: stock/templates/stock/item_base.html:85 +#: stock/templates/stock/location.html:94 templates/js/translated/stock.js:1918 msgid "Transfer stock" msgstr "" -#: stock/templates/stock/item_base.html:91 -#: templates/js/translated/stock.js:1972 +#: stock/templates/stock/item_base.html:88 +#: templates/js/translated/stock.js:1973 msgid "Assign to customer" msgstr "" -#: stock/templates/stock/item_base.html:94 +#: stock/templates/stock/item_base.html:91 msgid "Return to stock" msgstr "" -#: stock/templates/stock/item_base.html:97 +#: stock/templates/stock/item_base.html:94 msgid "Uninstall stock item" msgstr "" -#: stock/templates/stock/item_base.html:97 +#: stock/templates/stock/item_base.html:94 msgid "Uninstall" msgstr "" -#: stock/templates/stock/item_base.html:101 +#: stock/templates/stock/item_base.html:98 msgid "Install stock item" msgstr "" -#: stock/templates/stock/item_base.html:101 +#: stock/templates/stock/item_base.html:98 msgid "Install" msgstr "" -#: stock/templates/stock/item_base.html:115 +#: stock/templates/stock/item_base.html:112 msgid "Convert to variant" msgstr "" -#: stock/templates/stock/item_base.html:118 +#: stock/templates/stock/item_base.html:115 msgid "Duplicate stock item" msgstr "" -#: stock/templates/stock/item_base.html:120 +#: stock/templates/stock/item_base.html:117 msgid "Edit stock item" msgstr "" -#: stock/templates/stock/item_base.html:123 +#: stock/templates/stock/item_base.html:120 msgid "Delete stock item" msgstr "" -#: stock/templates/stock/item_base.html:169 templates/InvenTree/search.html:139 -#: templates/js/translated/build.js:2295 templates/navbar.html:38 +#: stock/templates/stock/item_base.html:166 templates/InvenTree/search.html:139 +#: templates/js/translated/build.js:2298 templates/navbar.html:38 msgid "Build" msgstr "" -#: stock/templates/stock/item_base.html:211 +#: stock/templates/stock/item_base.html:208 msgid "No manufacturer set" msgstr "" -#: stock/templates/stock/item_base.html:251 +#: stock/templates/stock/item_base.html:248 msgid "You are not in the list of owners of this item. This stock item cannot be edited." msgstr "" -#: stock/templates/stock/item_base.html:252 -#: stock/templates/stock/location.html:146 +#: stock/templates/stock/item_base.html:249 +#: stock/templates/stock/location.html:147 msgid "Read only" msgstr "" -#: stock/templates/stock/item_base.html:265 +#: stock/templates/stock/item_base.html:262 msgid "This stock item is unavailable" msgstr "" -#: stock/templates/stock/item_base.html:271 +#: stock/templates/stock/item_base.html:268 msgid "This stock item is in production and cannot be edited." msgstr "" -#: stock/templates/stock/item_base.html:272 +#: stock/templates/stock/item_base.html:269 msgid "Edit the stock item from the build view." msgstr "" -#: stock/templates/stock/item_base.html:287 +#: stock/templates/stock/item_base.html:284 msgid "This stock item is allocated to Sales Order" msgstr "" -#: stock/templates/stock/item_base.html:295 +#: stock/templates/stock/item_base.html:292 msgid "This stock item is allocated to Build Order" msgstr "" -#: stock/templates/stock/item_base.html:311 +#: stock/templates/stock/item_base.html:308 msgid "This stock item is serialized. It has a unique serial number and the quantity cannot be adjusted" msgstr "" -#: stock/templates/stock/item_base.html:317 +#: stock/templates/stock/item_base.html:314 msgid "previous page" msgstr "" -#: stock/templates/stock/item_base.html:317 +#: stock/templates/stock/item_base.html:314 msgid "Navigate to previous serial number" msgstr "" -#: stock/templates/stock/item_base.html:326 +#: stock/templates/stock/item_base.html:323 msgid "next page" msgstr "" -#: stock/templates/stock/item_base.html:326 +#: stock/templates/stock/item_base.html:323 msgid "Navigate to next serial number" msgstr "" -#: stock/templates/stock/item_base.html:398 -#: templates/js/translated/build.js:2552 +#: stock/templates/stock/item_base.html:395 +#: templates/js/translated/build.js:2559 msgid "No location set" msgstr "" -#: stock/templates/stock/item_base.html:413 +#: stock/templates/stock/item_base.html:410 msgid "Tests" msgstr "" -#: stock/templates/stock/item_base.html:419 +#: stock/templates/stock/item_base.html:416 msgid "This stock item has not passed all required tests" msgstr "" -#: stock/templates/stock/item_base.html:437 +#: stock/templates/stock/item_base.html:434 #, python-format msgid "This StockItem expired on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:439 +#: stock/templates/stock/item_base.html:436 #, python-format msgid "This StockItem expires on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:455 +#: stock/templates/stock/item_base.html:452 msgid "No stocktake performed" msgstr "" -#: stock/templates/stock/item_base.html:504 -#: templates/js/translated/stock.js:2037 +#: stock/templates/stock/item_base.html:501 +#: templates/js/translated/stock.js:2038 msgid "stock item" msgstr "" -#: stock/templates/stock/item_base.html:527 +#: stock/templates/stock/item_base.html:524 msgid "Edit Stock Status" msgstr "" -#: stock/templates/stock/item_base.html:536 +#: stock/templates/stock/item_base.html:533 msgid "Stock Item QR Code" msgstr "" -#: stock/templates/stock/item_base.html:547 +#: stock/templates/stock/item_base.html:544 msgid "Link Barcode to Stock Item" msgstr "" -#: stock/templates/stock/item_base.html:611 +#: stock/templates/stock/item_base.html:608 msgid "Select one of the part variants listed below." msgstr "" -#: stock/templates/stock/item_base.html:614 +#: stock/templates/stock/item_base.html:611 msgid "Warning" msgstr "" -#: stock/templates/stock/item_base.html:615 +#: stock/templates/stock/item_base.html:612 msgid "This action cannot be easily undone" msgstr "" -#: stock/templates/stock/item_base.html:623 +#: stock/templates/stock/item_base.html:620 msgid "Convert Stock Item" msgstr "" -#: stock/templates/stock/item_base.html:656 +#: stock/templates/stock/item_base.html:653 msgid "Return to Stock" msgstr "" @@ -10541,84 +10909,84 @@ msgstr "" msgid "Select quantity to serialize, and unique serial numbers." msgstr "" -#: stock/templates/stock/location.html:35 +#: stock/templates/stock/location.html:36 msgid "Perform stocktake for this stock location" msgstr "" -#: stock/templates/stock/location.html:42 +#: stock/templates/stock/location.html:43 msgid "Locate stock location" msgstr "" -#: stock/templates/stock/location.html:60 +#: stock/templates/stock/location.html:61 msgid "Scan stock items into this location" msgstr "" -#: stock/templates/stock/location.html:60 +#: stock/templates/stock/location.html:61 msgid "Scan In Stock Items" msgstr "" -#: stock/templates/stock/location.html:61 +#: stock/templates/stock/location.html:62 msgid "Scan stock container into this location" msgstr "" -#: stock/templates/stock/location.html:61 +#: stock/templates/stock/location.html:62 msgid "Scan In Container" msgstr "" -#: stock/templates/stock/location.html:72 +#: stock/templates/stock/location.html:73 msgid "Print Location Report" msgstr "" -#: stock/templates/stock/location.html:101 +#: stock/templates/stock/location.html:102 msgid "Location actions" msgstr "" -#: stock/templates/stock/location.html:103 +#: stock/templates/stock/location.html:104 msgid "Edit location" msgstr "" -#: stock/templates/stock/location.html:105 +#: stock/templates/stock/location.html:106 msgid "Delete location" msgstr "" -#: stock/templates/stock/location.html:135 +#: stock/templates/stock/location.html:136 msgid "Top level stock location" msgstr "" -#: stock/templates/stock/location.html:141 +#: stock/templates/stock/location.html:142 msgid "Location Owner" msgstr "" -#: stock/templates/stock/location.html:145 +#: stock/templates/stock/location.html:146 msgid "You are not in the list of owners of this location. This stock location cannot be edited." msgstr "" -#: stock/templates/stock/location.html:173 +#: stock/templates/stock/location.html:174 msgid "Location Type" msgstr "" -#: stock/templates/stock/location.html:223 +#: stock/templates/stock/location.html:224 msgid "Create new stock location" msgstr "" -#: stock/templates/stock/location.html:224 +#: stock/templates/stock/location.html:225 msgid "New Location" msgstr "" -#: stock/templates/stock/location.html:298 -#: templates/js/translated/stock.js:2657 +#: stock/templates/stock/location.html:299 +#: templates/js/translated/stock.js:2658 msgid "stock location" msgstr "" -#: stock/templates/stock/location.html:320 +#: stock/templates/stock/location.html:321 msgid "Scanned stock container into this location" msgstr "" -#: stock/templates/stock/location.html:393 +#: stock/templates/stock/location.html:394 msgid "Stock Location QR Code" msgstr "" -#: stock/templates/stock/location.html:404 +#: stock/templates/stock/location.html:405 msgid "Link Barcode to Stock Location" msgstr "" @@ -10630,10 +10998,6 @@ msgstr "" msgid "Stock Tracking" msgstr "" -#: stock/templates/stock/stock_sidebar.html:8 -msgid "Allocations" -msgstr "" - #: templates/403.html:6 templates/403.html:12 templates/403_csrf.html:7 msgid "Permission Denied" msgstr "" @@ -11107,9 +11471,9 @@ msgid "Rate" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:81 -#: templates/js/translated/forms.js:548 templates/js/translated/helpers.js:108 +#: templates/js/translated/forms.js:548 templates/js/translated/helpers.js:109 #: templates/js/translated/part.js:395 templates/js/translated/pricing.js:629 -#: templates/js/translated/stock.js:252 users/models.py:406 +#: templates/js/translated/stock.js:252 users/models.py:408 msgid "Delete" msgstr "" @@ -11130,7 +11494,7 @@ msgid "No project codes found" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:158 -#: templates/js/translated/build.js:2400 +#: templates/js/translated/build.js:2403 msgid "group" msgstr "" @@ -11196,7 +11560,7 @@ msgid "Delete Location Type" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:503 -#: templates/InvenTree/settings/stock.html:38 +#: templates/InvenTree/settings/stock.html:39 msgid "New Location Type" msgstr "" @@ -11253,7 +11617,7 @@ msgstr "" msgid "Stock Settings" msgstr "" -#: templates/InvenTree/settings/stock.html:34 +#: templates/InvenTree/settings/stock.html:35 msgid "Stock Location Types" msgstr "" @@ -11280,7 +11644,7 @@ msgid "Unverified" msgstr "" #: templates/InvenTree/settings/user.html:80 -#: templates/js/translated/company.js:957 +#: templates/js/translated/company.js:958 msgid "Primary" msgstr "" @@ -11532,7 +11896,7 @@ msgid "Submit Bug Report" msgstr "" #: templates/about.html:91 templates/clip.html:4 -#: templates/js/translated/helpers.js:592 +#: templates/js/translated/helpers.js:598 msgid "copy to clipboard" msgstr "" @@ -11738,23 +12102,24 @@ msgstr "" msgid "Barcode Identifier" msgstr "" -#: templates/base.html:103 +#: templates/base.html:102 msgid "Server Restart Required" msgstr "" -#: templates/base.html:106 +#: templates/base.html:105 msgid "A configuration option has been changed which requires a server restart" msgstr "" -#: templates/base.html:106 templates/base.html:116 +#: templates/base.html:105 templates/base.html:115 +#: templates/socialaccount/authentication_error.html:13 msgid "Contact your system administrator for further information" msgstr "" -#: templates/base.html:113 +#: templates/base.html:112 msgid "Pending Database Migrations" msgstr "" -#: templates/base.html:116 +#: templates/base.html:115 msgid "There are pending database migrations which require attention" msgstr "" @@ -11787,7 +12152,7 @@ msgid "The following parts are low on required stock" msgstr "" #: templates/email/build_order_required_stock.html:18 -#: templates/js/translated/bom.js:1674 templates/js/translated/build.js:2747 +#: templates/js/translated/bom.js:1674 templates/js/translated/build.js:2765 msgid "Required Quantity" msgstr "" @@ -11801,7 +12166,7 @@ msgid "Click on the following link to view this part" msgstr "" #: templates/email/low_stock_notification.html:18 -#: templates/js/translated/part.js:3237 +#: templates/js/translated/part.js:3253 msgid "Minimum Quantity" msgstr "" @@ -12039,7 +12404,7 @@ msgstr "" #: templates/js/translated/bom.js:189 templates/js/translated/bom.js:700 #: templates/js/translated/modals.js:75 templates/js/translated/modals.js:629 #: templates/js/translated/modals.js:757 templates/js/translated/modals.js:1065 -#: templates/js/translated/purchase_order.js:797 templates/modals.html:15 +#: templates/js/translated/purchase_order.js:780 templates/modals.html:15 #: templates/modals.html:27 templates/modals.html:39 templates/modals.html:50 msgid "Close" msgstr "" @@ -12156,7 +12521,7 @@ msgstr "" msgid "Substitutes Available" msgstr "" -#: templates/js/translated/bom.js:950 templates/js/translated/build.js:2673 +#: templates/js/translated/bom.js:950 templates/js/translated/build.js:2682 msgid "Variant stock allowed" msgstr "" @@ -12176,30 +12541,30 @@ msgstr "" msgid "No pricing available" msgstr "" -#: templates/js/translated/bom.js:1184 templates/js/translated/build.js:2812 +#: templates/js/translated/bom.js:1184 templates/js/translated/build.js:2830 msgid "External stock" msgstr "" -#: templates/js/translated/bom.js:1188 templates/js/translated/build.js:2786 -#: templates/js/translated/sales_order.js:1946 +#: templates/js/translated/bom.js:1188 templates/js/translated/build.js:2804 +#: templates/js/translated/sales_order.js:1927 msgid "No Stock Available" msgstr "" -#: templates/js/translated/bom.js:1193 templates/js/translated/build.js:2790 +#: templates/js/translated/bom.js:1193 templates/js/translated/build.js:2808 msgid "Includes variant and substitute stock" msgstr "" -#: templates/js/translated/bom.js:1195 templates/js/translated/build.js:2792 +#: templates/js/translated/bom.js:1195 templates/js/translated/build.js:2810 #: templates/js/translated/part.js:1263 -#: templates/js/translated/sales_order.js:1943 +#: templates/js/translated/sales_order.js:1924 msgid "Includes variant stock" msgstr "" -#: templates/js/translated/bom.js:1197 templates/js/translated/build.js:2794 +#: templates/js/translated/bom.js:1197 templates/js/translated/build.js:2812 msgid "Includes substitute stock" msgstr "" -#: templates/js/translated/bom.js:1225 templates/js/translated/build.js:2777 +#: templates/js/translated/bom.js:1225 templates/js/translated/build.js:2795 msgid "Consumable item" msgstr "" @@ -12231,7 +12596,7 @@ msgstr "" msgid "No BOM items found" msgstr "" -#: templates/js/translated/bom.js:1657 templates/js/translated/build.js:2658 +#: templates/js/translated/bom.js:1657 templates/js/translated/build.js:2667 msgid "Required Part" msgstr "" @@ -12243,396 +12608,396 @@ msgstr "" msgid "Edit Build Order" msgstr "" -#: templates/js/translated/build.js:191 +#: templates/js/translated/build.js:194 msgid "Create Build Order" msgstr "" -#: templates/js/translated/build.js:223 +#: templates/js/translated/build.js:226 msgid "Cancel Build Order" msgstr "" -#: templates/js/translated/build.js:232 +#: templates/js/translated/build.js:235 msgid "Are you sure you wish to cancel this build?" msgstr "" -#: templates/js/translated/build.js:238 +#: templates/js/translated/build.js:241 msgid "Stock items have been allocated to this build order" msgstr "" -#: templates/js/translated/build.js:245 +#: templates/js/translated/build.js:248 msgid "There are incomplete outputs remaining for this build order" msgstr "" -#: templates/js/translated/build.js:297 +#: templates/js/translated/build.js:300 msgid "Build order is ready to be completed" msgstr "" -#: templates/js/translated/build.js:305 +#: templates/js/translated/build.js:308 msgid "This build order cannot be completed as there are incomplete outputs" msgstr "" -#: templates/js/translated/build.js:310 +#: templates/js/translated/build.js:313 msgid "Build Order is incomplete" msgstr "" -#: templates/js/translated/build.js:328 +#: templates/js/translated/build.js:331 msgid "Complete Build Order" msgstr "" -#: templates/js/translated/build.js:369 templates/js/translated/stock.js:127 +#: templates/js/translated/build.js:372 templates/js/translated/stock.js:127 #: templates/js/translated/stock.js:301 msgid "Next available serial number" msgstr "" -#: templates/js/translated/build.js:371 templates/js/translated/stock.js:129 +#: templates/js/translated/build.js:374 templates/js/translated/stock.js:129 #: templates/js/translated/stock.js:303 msgid "Latest serial number" msgstr "" -#: templates/js/translated/build.js:380 +#: templates/js/translated/build.js:383 msgid "The Bill of Materials contains trackable parts" msgstr "" -#: templates/js/translated/build.js:381 +#: templates/js/translated/build.js:384 msgid "Build outputs must be generated individually" msgstr "" -#: templates/js/translated/build.js:389 +#: templates/js/translated/build.js:392 msgid "Trackable parts can have serial numbers specified" msgstr "" -#: templates/js/translated/build.js:390 +#: templates/js/translated/build.js:393 msgid "Enter serial numbers to generate multiple single build outputs" msgstr "" -#: templates/js/translated/build.js:397 +#: templates/js/translated/build.js:400 msgid "Create Build Output" msgstr "" -#: templates/js/translated/build.js:428 +#: templates/js/translated/build.js:431 msgid "Allocate stock items to this build output" msgstr "" -#: templates/js/translated/build.js:436 +#: templates/js/translated/build.js:439 msgid "Deallocate stock from build output" msgstr "" -#: templates/js/translated/build.js:445 +#: templates/js/translated/build.js:448 msgid "Complete build output" msgstr "" -#: templates/js/translated/build.js:453 +#: templates/js/translated/build.js:456 msgid "Scrap build output" msgstr "" -#: templates/js/translated/build.js:460 +#: templates/js/translated/build.js:463 msgid "Delete build output" msgstr "" -#: templates/js/translated/build.js:480 +#: templates/js/translated/build.js:483 msgid "Are you sure you wish to deallocate the selected stock items from this build?" msgstr "" -#: templates/js/translated/build.js:498 +#: templates/js/translated/build.js:501 msgid "Deallocate Stock Items" msgstr "" -#: templates/js/translated/build.js:584 templates/js/translated/build.js:711 -#: templates/js/translated/build.js:836 +#: templates/js/translated/build.js:587 templates/js/translated/build.js:714 +#: templates/js/translated/build.js:839 msgid "Select Build Outputs" msgstr "" -#: templates/js/translated/build.js:585 templates/js/translated/build.js:712 -#: templates/js/translated/build.js:837 +#: templates/js/translated/build.js:588 templates/js/translated/build.js:715 +#: templates/js/translated/build.js:840 msgid "At least one build output must be selected" msgstr "" -#: templates/js/translated/build.js:599 +#: templates/js/translated/build.js:602 msgid "Selected build outputs will be marked as complete" msgstr "" -#: templates/js/translated/build.js:603 templates/js/translated/build.js:736 -#: templates/js/translated/build.js:859 +#: templates/js/translated/build.js:606 templates/js/translated/build.js:739 +#: templates/js/translated/build.js:862 msgid "Output" msgstr "" -#: templates/js/translated/build.js:630 +#: templates/js/translated/build.js:633 msgid "Complete Build Outputs" msgstr "" -#: templates/js/translated/build.js:727 +#: templates/js/translated/build.js:730 msgid "Selected build outputs will be marked as scrapped" msgstr "" -#: templates/js/translated/build.js:729 +#: templates/js/translated/build.js:732 msgid "Scrapped output are marked as rejected" msgstr "" -#: templates/js/translated/build.js:730 +#: templates/js/translated/build.js:733 msgid "Allocated stock items will no longer be available" msgstr "" -#: templates/js/translated/build.js:731 +#: templates/js/translated/build.js:734 msgid "The completion status of the build order will not be adjusted" msgstr "" -#: templates/js/translated/build.js:761 +#: templates/js/translated/build.js:764 msgid "Scrap Build Outputs" msgstr "" -#: templates/js/translated/build.js:851 +#: templates/js/translated/build.js:854 msgid "Selected build outputs will be deleted" msgstr "" -#: templates/js/translated/build.js:853 +#: templates/js/translated/build.js:856 msgid "Build output data will be permanently deleted" msgstr "" -#: templates/js/translated/build.js:854 +#: templates/js/translated/build.js:857 msgid "Allocated stock items will be returned to stock" msgstr "" -#: templates/js/translated/build.js:872 +#: templates/js/translated/build.js:875 msgid "Delete Build Outputs" msgstr "" -#: templates/js/translated/build.js:959 +#: templates/js/translated/build.js:962 msgid "Delete allocations" msgstr "" -#: templates/js/translated/build.js:966 +#: templates/js/translated/build.js:969 msgid "Delete Stock Allocations" msgstr "" -#: templates/js/translated/build.js:989 +#: templates/js/translated/build.js:992 msgid "No allocated stock" msgstr "" -#: templates/js/translated/build.js:1045 +#: templates/js/translated/build.js:1048 msgid "Stock item" msgstr "" -#: templates/js/translated/build.js:1070 +#: templates/js/translated/build.js:1073 msgid "Edit build allocation" msgstr "" -#: templates/js/translated/build.js:1071 +#: templates/js/translated/build.js:1074 msgid "Delete build allocation" msgstr "" -#: templates/js/translated/build.js:1089 +#: templates/js/translated/build.js:1092 msgid "Edit Build Allocation" msgstr "" -#: templates/js/translated/build.js:1102 +#: templates/js/translated/build.js:1105 msgid "Delete Build Allocation" msgstr "" -#: templates/js/translated/build.js:1133 +#: templates/js/translated/build.js:1136 msgid "No build order allocations found" msgstr "" -#: templates/js/translated/build.js:1178 +#: templates/js/translated/build.js:1181 msgid "Location not specified" msgstr "" -#: templates/js/translated/build.js:1200 +#: templates/js/translated/build.js:1203 msgid "Complete outputs" msgstr "" -#: templates/js/translated/build.js:1218 +#: templates/js/translated/build.js:1221 msgid "Scrap outputs" msgstr "" -#: templates/js/translated/build.js:1236 +#: templates/js/translated/build.js:1239 msgid "Delete outputs" msgstr "" -#: templates/js/translated/build.js:1289 +#: templates/js/translated/build.js:1292 msgid "build output" msgstr "" -#: templates/js/translated/build.js:1290 +#: templates/js/translated/build.js:1293 msgid "build outputs" msgstr "" -#: templates/js/translated/build.js:1294 +#: templates/js/translated/build.js:1297 msgid "Build output actions" msgstr "" -#: templates/js/translated/build.js:1470 +#: templates/js/translated/build.js:1473 msgid "No active build outputs found" msgstr "" -#: templates/js/translated/build.js:1563 +#: templates/js/translated/build.js:1566 msgid "Allocated Lines" msgstr "" -#: templates/js/translated/build.js:1577 +#: templates/js/translated/build.js:1580 msgid "Required Tests" msgstr "" -#: templates/js/translated/build.js:1749 -#: templates/js/translated/purchase_order.js:611 -#: templates/js/translated/sales_order.js:1207 +#: templates/js/translated/build.js:1752 +#: templates/js/translated/purchase_order.js:594 +#: templates/js/translated/sales_order.js:1173 msgid "Select Parts" msgstr "" -#: templates/js/translated/build.js:1750 -#: templates/js/translated/sales_order.js:1208 +#: templates/js/translated/build.js:1753 +#: templates/js/translated/sales_order.js:1174 msgid "You must select at least one part to allocate" msgstr "" -#: templates/js/translated/build.js:1813 -#: templates/js/translated/sales_order.js:1157 +#: templates/js/translated/build.js:1816 +#: templates/js/translated/sales_order.js:1123 msgid "Specify stock allocation quantity" msgstr "" -#: templates/js/translated/build.js:1890 +#: templates/js/translated/build.js:1893 msgid "All Parts Allocated" msgstr "" -#: templates/js/translated/build.js:1891 +#: templates/js/translated/build.js:1894 msgid "All selected parts have been fully allocated" msgstr "" -#: templates/js/translated/build.js:1905 -#: templates/js/translated/sales_order.js:1222 +#: templates/js/translated/build.js:1908 +#: templates/js/translated/sales_order.js:1188 msgid "Select source location (leave blank to take from all locations)" msgstr "" -#: templates/js/translated/build.js:1933 +#: templates/js/translated/build.js:1936 msgid "Allocate Stock Items to Build Order" msgstr "" -#: templates/js/translated/build.js:1944 -#: templates/js/translated/sales_order.js:1319 +#: templates/js/translated/build.js:1947 +#: templates/js/translated/sales_order.js:1285 msgid "No matching stock locations" msgstr "" -#: templates/js/translated/build.js:2017 -#: templates/js/translated/sales_order.js:1398 +#: templates/js/translated/build.js:2020 +#: templates/js/translated/sales_order.js:1364 msgid "No matching stock items" msgstr "" -#: templates/js/translated/build.js:2114 +#: templates/js/translated/build.js:2117 msgid "Automatic Stock Allocation" msgstr "" -#: templates/js/translated/build.js:2115 +#: templates/js/translated/build.js:2118 msgid "Stock items will be automatically allocated to this build order, according to the provided guidelines" msgstr "" -#: templates/js/translated/build.js:2117 +#: templates/js/translated/build.js:2120 msgid "If a location is specified, stock will only be allocated from that location" msgstr "" -#: templates/js/translated/build.js:2118 +#: templates/js/translated/build.js:2121 msgid "If stock is considered interchangeable, it will be allocated from the first location it is found" msgstr "" -#: templates/js/translated/build.js:2119 +#: templates/js/translated/build.js:2122 msgid "If substitute stock is allowed, it will be used where stock of the primary part cannot be found" msgstr "" -#: templates/js/translated/build.js:2149 +#: templates/js/translated/build.js:2152 msgid "Allocate Stock Items" msgstr "" -#: templates/js/translated/build.js:2254 +#: templates/js/translated/build.js:2257 msgid "No builds matching query" msgstr "" -#: templates/js/translated/build.js:2289 templates/js/translated/build.js:2652 +#: templates/js/translated/build.js:2292 templates/js/translated/build.js:2661 #: templates/js/translated/forms.js:2196 templates/js/translated/forms.js:2212 #: templates/js/translated/part.js:2322 templates/js/translated/part.js:2761 -#: templates/js/translated/stock.js:2068 templates/js/translated/stock.js:2795 +#: templates/js/translated/stock.js:2069 templates/js/translated/stock.js:2796 msgid "Select" msgstr "" -#: templates/js/translated/build.js:2303 +#: templates/js/translated/build.js:2306 msgid "Build order is overdue" msgstr "" -#: templates/js/translated/build.js:2385 templates/js/translated/stock.js:3126 +#: templates/js/translated/build.js:2388 templates/js/translated/stock.js:3127 msgid "No user information" msgstr "" -#: templates/js/translated/build.js:2561 -#: templates/js/translated/sales_order.js:1682 +#: templates/js/translated/build.js:2568 +#: templates/js/translated/sales_order.js:1663 msgid "Edit stock allocation" msgstr "" -#: templates/js/translated/build.js:2562 -#: templates/js/translated/sales_order.js:1683 +#: templates/js/translated/build.js:2569 +#: templates/js/translated/sales_order.js:1664 msgid "Delete stock allocation" msgstr "" -#: templates/js/translated/build.js:2577 +#: templates/js/translated/build.js:2584 msgid "Edit Allocation" msgstr "" -#: templates/js/translated/build.js:2589 +#: templates/js/translated/build.js:2596 msgid "Remove Allocation" msgstr "" -#: templates/js/translated/build.js:2628 +#: templates/js/translated/build.js:2636 msgid "build line" msgstr "" -#: templates/js/translated/build.js:2629 +#: templates/js/translated/build.js:2637 msgid "build lines" msgstr "" -#: templates/js/translated/build.js:2647 +#: templates/js/translated/build.js:2656 msgid "No build lines found" msgstr "" -#: templates/js/translated/build.js:2677 templates/js/translated/part.js:793 +#: templates/js/translated/build.js:2686 templates/js/translated/part.js:793 #: templates/js/translated/part.js:1209 msgid "Trackable part" msgstr "" -#: templates/js/translated/build.js:2720 +#: templates/js/translated/build.js:2729 msgid "Gets Inherited" msgstr "" -#: templates/js/translated/build.js:2730 +#: templates/js/translated/build.js:2748 msgid "Unit Quantity" msgstr "" -#: templates/js/translated/build.js:2782 -#: templates/js/translated/sales_order.js:1951 +#: templates/js/translated/build.js:2800 +#: templates/js/translated/sales_order.js:1932 msgid "Sufficient stock available" msgstr "" -#: templates/js/translated/build.js:2837 +#: templates/js/translated/build.js:2855 msgid "Consumable Item" msgstr "" -#: templates/js/translated/build.js:2844 +#: templates/js/translated/build.js:2862 msgid "Tracked item" msgstr "" -#: templates/js/translated/build.js:2845 +#: templates/js/translated/build.js:2863 msgid "Allocate tracked items against individual build outputs" msgstr "" -#: templates/js/translated/build.js:2853 -#: templates/js/translated/sales_order.js:2052 +#: templates/js/translated/build.js:2871 +#: templates/js/translated/sales_order.js:2033 msgid "Build stock" msgstr "" -#: templates/js/translated/build.js:2858 templates/js/translated/stock.js:1953 +#: templates/js/translated/build.js:2876 templates/js/translated/stock.js:1954 msgid "Order stock" msgstr "" -#: templates/js/translated/build.js:2862 -#: templates/js/translated/sales_order.js:2046 +#: templates/js/translated/build.js:2880 +#: templates/js/translated/sales_order.js:2027 msgid "Allocate stock" msgstr "" -#: templates/js/translated/build.js:2866 +#: templates/js/translated/build.js:2884 msgid "Remove stock allocation" msgstr "" @@ -12641,7 +13006,7 @@ msgid "Add Manufacturer" msgstr "" #: templates/js/translated/company.js:111 -#: templates/js/translated/company.js:213 +#: templates/js/translated/company.js:214 msgid "Add Manufacturer Part" msgstr "" @@ -12649,231 +13014,231 @@ msgstr "" msgid "Edit Manufacturer Part" msgstr "" -#: templates/js/translated/company.js:201 +#: templates/js/translated/company.js:202 #: templates/js/translated/purchase_order.js:93 msgid "Add Supplier" msgstr "" -#: templates/js/translated/company.js:243 -#: templates/js/translated/purchase_order.js:318 +#: templates/js/translated/company.js:244 +#: templates/js/translated/purchase_order.js:301 msgid "Add Supplier Part" msgstr "" -#: templates/js/translated/company.js:344 +#: templates/js/translated/company.js:345 msgid "All selected supplier parts will be deleted" msgstr "" -#: templates/js/translated/company.js:360 +#: templates/js/translated/company.js:361 msgid "Delete Supplier Parts" msgstr "" -#: templates/js/translated/company.js:466 +#: templates/js/translated/company.js:467 msgid "Add new Company" msgstr "" -#: templates/js/translated/company.js:546 +#: templates/js/translated/company.js:547 msgid "Parts Supplied" msgstr "" -#: templates/js/translated/company.js:555 +#: templates/js/translated/company.js:556 msgid "Parts Manufactured" msgstr "" -#: templates/js/translated/company.js:570 +#: templates/js/translated/company.js:571 msgid "No company information found" msgstr "" -#: templates/js/translated/company.js:619 +#: templates/js/translated/company.js:620 msgid "Create New Contact" msgstr "" -#: templates/js/translated/company.js:635 -#: templates/js/translated/company.js:758 +#: templates/js/translated/company.js:636 +#: templates/js/translated/company.js:759 msgid "Edit Contact" msgstr "" -#: templates/js/translated/company.js:672 +#: templates/js/translated/company.js:673 msgid "All selected contacts will be deleted" msgstr "" -#: templates/js/translated/company.js:678 -#: templates/js/translated/company.js:742 +#: templates/js/translated/company.js:679 +#: templates/js/translated/company.js:743 msgid "Role" msgstr "" -#: templates/js/translated/company.js:686 +#: templates/js/translated/company.js:687 msgid "Delete Contacts" msgstr "" -#: templates/js/translated/company.js:717 +#: templates/js/translated/company.js:718 msgid "No contacts found" msgstr "" -#: templates/js/translated/company.js:730 +#: templates/js/translated/company.js:731 msgid "Phone Number" msgstr "" -#: templates/js/translated/company.js:736 +#: templates/js/translated/company.js:737 msgid "Email Address" msgstr "" -#: templates/js/translated/company.js:762 +#: templates/js/translated/company.js:763 msgid "Delete Contact" msgstr "" -#: templates/js/translated/company.js:859 +#: templates/js/translated/company.js:860 msgid "Create New Address" msgstr "" -#: templates/js/translated/company.js:874 -#: templates/js/translated/company.js:1035 +#: templates/js/translated/company.js:875 +#: templates/js/translated/company.js:1036 msgid "Edit Address" msgstr "" -#: templates/js/translated/company.js:909 +#: templates/js/translated/company.js:910 msgid "All selected addresses will be deleted" msgstr "" -#: templates/js/translated/company.js:923 +#: templates/js/translated/company.js:924 msgid "Delete Addresses" msgstr "" -#: templates/js/translated/company.js:950 +#: templates/js/translated/company.js:951 msgid "No addresses found" msgstr "" -#: templates/js/translated/company.js:989 +#: templates/js/translated/company.js:990 msgid "Postal city" msgstr "" -#: templates/js/translated/company.js:995 +#: templates/js/translated/company.js:996 msgid "State/province" msgstr "" -#: templates/js/translated/company.js:1007 +#: templates/js/translated/company.js:1008 msgid "Courier notes" msgstr "" -#: templates/js/translated/company.js:1013 +#: templates/js/translated/company.js:1014 msgid "Internal notes" msgstr "" -#: templates/js/translated/company.js:1039 +#: templates/js/translated/company.js:1040 msgid "Delete Address" msgstr "" -#: templates/js/translated/company.js:1112 +#: templates/js/translated/company.js:1113 msgid "All selected manufacturer parts will be deleted" msgstr "" -#: templates/js/translated/company.js:1127 +#: templates/js/translated/company.js:1128 msgid "Delete Manufacturer Parts" msgstr "" -#: templates/js/translated/company.js:1161 +#: templates/js/translated/company.js:1162 msgid "All selected parameters will be deleted" msgstr "" -#: templates/js/translated/company.js:1175 +#: templates/js/translated/company.js:1176 msgid "Delete Parameters" msgstr "" -#: templates/js/translated/company.js:1191 -#: templates/js/translated/company.js:1479 templates/js/translated/part.js:2250 +#: templates/js/translated/company.js:1192 +#: templates/js/translated/company.js:1480 templates/js/translated/part.js:2250 msgid "Order parts" msgstr "" -#: templates/js/translated/company.js:1208 +#: templates/js/translated/company.js:1209 msgid "Delete manufacturer parts" msgstr "" -#: templates/js/translated/company.js:1240 +#: templates/js/translated/company.js:1241 msgid "Manufacturer part actions" msgstr "" -#: templates/js/translated/company.js:1259 +#: templates/js/translated/company.js:1260 msgid "No manufacturer parts found" msgstr "" -#: templates/js/translated/company.js:1279 -#: templates/js/translated/company.js:1567 templates/js/translated/part.js:801 +#: templates/js/translated/company.js:1280 +#: templates/js/translated/company.js:1568 templates/js/translated/part.js:801 #: templates/js/translated/part.js:1217 msgid "Template part" msgstr "" -#: templates/js/translated/company.js:1283 -#: templates/js/translated/company.js:1571 templates/js/translated/part.js:805 +#: templates/js/translated/company.js:1284 +#: templates/js/translated/company.js:1572 templates/js/translated/part.js:805 #: templates/js/translated/part.js:1221 msgid "Assembled part" msgstr "" -#: templates/js/translated/company.js:1403 templates/js/translated/part.js:1471 +#: templates/js/translated/company.js:1404 templates/js/translated/part.js:1471 msgid "No parameters found" msgstr "" -#: templates/js/translated/company.js:1438 templates/js/translated/part.js:1534 +#: templates/js/translated/company.js:1439 templates/js/translated/part.js:1534 msgid "Edit parameter" msgstr "" -#: templates/js/translated/company.js:1439 templates/js/translated/part.js:1535 +#: templates/js/translated/company.js:1440 templates/js/translated/part.js:1535 msgid "Delete parameter" msgstr "" -#: templates/js/translated/company.js:1456 templates/js/translated/part.js:1440 +#: templates/js/translated/company.js:1457 templates/js/translated/part.js:1440 msgid "Edit Parameter" msgstr "" -#: templates/js/translated/company.js:1465 templates/js/translated/part.js:1556 +#: templates/js/translated/company.js:1466 templates/js/translated/part.js:1556 msgid "Delete Parameter" msgstr "" -#: templates/js/translated/company.js:1496 +#: templates/js/translated/company.js:1497 msgid "Delete supplier parts" msgstr "" -#: templates/js/translated/company.js:1546 +#: templates/js/translated/company.js:1547 msgid "No supplier parts found" msgstr "" -#: templates/js/translated/company.js:1664 +#: templates/js/translated/company.js:1665 msgid "Base Units" msgstr "" -#: templates/js/translated/company.js:1694 +#: templates/js/translated/company.js:1695 msgid "Availability" msgstr "" -#: templates/js/translated/company.js:1725 +#: templates/js/translated/company.js:1726 msgid "Edit supplier part" msgstr "" -#: templates/js/translated/company.js:1726 +#: templates/js/translated/company.js:1727 msgid "Delete supplier part" msgstr "" -#: templates/js/translated/company.js:1779 +#: templates/js/translated/company.js:1780 #: templates/js/translated/pricing.js:694 msgid "Delete Price Break" msgstr "" -#: templates/js/translated/company.js:1789 +#: templates/js/translated/company.js:1790 #: templates/js/translated/pricing.js:712 msgid "Edit Price Break" msgstr "" -#: templates/js/translated/company.js:1804 +#: templates/js/translated/company.js:1805 msgid "No price break information found" msgstr "" -#: templates/js/translated/company.js:1833 +#: templates/js/translated/company.js:1834 msgid "Last updated" msgstr "" -#: templates/js/translated/company.js:1840 +#: templates/js/translated/company.js:1841 msgid "Edit price break" msgstr "" -#: templates/js/translated/company.js:1841 +#: templates/js/translated/company.js:1842 msgid "Delete price break" msgstr "" @@ -12977,19 +13342,19 @@ msgstr "" msgid "Select Columns" msgstr "" -#: templates/js/translated/helpers.js:80 +#: templates/js/translated/helpers.js:81 msgid "YES" msgstr "" -#: templates/js/translated/helpers.js:83 +#: templates/js/translated/helpers.js:84 msgid "NO" msgstr "" -#: templates/js/translated/helpers.js:96 +#: templates/js/translated/helpers.js:97 msgid "True" msgstr "" -#: templates/js/translated/helpers.js:97 +#: templates/js/translated/helpers.js:98 msgid "False" msgstr "" @@ -13131,7 +13496,7 @@ msgid "Delete Line" msgstr "" #: templates/js/translated/order.js:306 -#: templates/js/translated/purchase_order.js:2060 +#: templates/js/translated/purchase_order.js:2044 msgid "No line items found" msgstr "" @@ -13366,19 +13731,19 @@ msgid "Delete Part Parameter Template" msgstr "" #: templates/js/translated/part.js:1723 -#: templates/js/translated/purchase_order.js:1724 +#: templates/js/translated/purchase_order.js:1708 msgid "No purchase orders found" msgstr "" #: templates/js/translated/part.js:1867 -#: templates/js/translated/purchase_order.js:2223 +#: templates/js/translated/purchase_order.js:2207 #: templates/js/translated/return_order.js:754 -#: templates/js/translated/sales_order.js:1911 +#: templates/js/translated/sales_order.js:1892 msgid "This line item is overdue" msgstr "" #: templates/js/translated/part.js:1913 -#: templates/js/translated/purchase_order.js:2290 +#: templates/js/translated/purchase_order.js:2274 msgid "Receive line item" msgstr "" @@ -13419,7 +13784,7 @@ msgid "No category" msgstr "" #: templates/js/translated/part.js:2550 templates/js/translated/part.js:2680 -#: templates/js/translated/stock.js:2754 +#: templates/js/translated/stock.js:2755 msgid "Display as list" msgstr "" @@ -13431,7 +13796,7 @@ msgstr "" msgid "No subcategories found" msgstr "" -#: templates/js/translated/part.js:2700 templates/js/translated/stock.js:2774 +#: templates/js/translated/part.js:2700 templates/js/translated/stock.js:2775 msgid "Display as tree" msgstr "" @@ -13483,23 +13848,23 @@ msgstr "" msgid "Speculative" msgstr "" -#: templates/js/translated/part.js:3128 +#: templates/js/translated/part.js:3144 msgid "No scheduling information available for this part" msgstr "" -#: templates/js/translated/part.js:3134 +#: templates/js/translated/part.js:3150 msgid "Error fetching scheduling information for this part" msgstr "" -#: templates/js/translated/part.js:3230 +#: templates/js/translated/part.js:3246 msgid "Scheduled Stock Quantities" msgstr "" -#: templates/js/translated/part.js:3246 +#: templates/js/translated/part.js:3262 msgid "Maximum Quantity" msgstr "" -#: templates/js/translated/part.js:3291 +#: templates/js/translated/part.js:3307 msgid "Minimum Stock Level" msgstr "" @@ -13575,267 +13940,243 @@ msgstr "" msgid "Purchase Price History" msgstr "" -#: templates/js/translated/pricing.js:894 +#: templates/js/translated/pricing.js:892 msgid "No sales history data available" msgstr "" -#: templates/js/translated/pricing.js:916 +#: templates/js/translated/pricing.js:914 msgid "Sale Price History" msgstr "" -#: templates/js/translated/pricing.js:1005 +#: templates/js/translated/pricing.js:1003 msgid "No variant data available" msgstr "" -#: templates/js/translated/pricing.js:1045 +#: templates/js/translated/pricing.js:1043 msgid "Variant Part" msgstr "" -#: templates/js/translated/purchase_order.js:169 -msgid "Select purchase order to duplicate" -msgstr "" - -#: templates/js/translated/purchase_order.js:176 -msgid "Duplicate Line Items" -msgstr "" - -#: templates/js/translated/purchase_order.js:177 -msgid "Duplicate all line items from the selected order" -msgstr "" - -#: templates/js/translated/purchase_order.js:184 -msgid "Duplicate Extra Lines" -msgstr "" - -#: templates/js/translated/purchase_order.js:185 -msgid "Duplicate extra line items from the selected order" -msgstr "" - -#: templates/js/translated/purchase_order.js:206 +#: templates/js/translated/purchase_order.js:188 msgid "Edit Purchase Order" msgstr "" -#: templates/js/translated/purchase_order.js:223 +#: templates/js/translated/purchase_order.js:205 msgid "Duplication Options" msgstr "" -#: templates/js/translated/purchase_order.js:431 +#: templates/js/translated/purchase_order.js:414 msgid "Complete Purchase Order" msgstr "" -#: templates/js/translated/purchase_order.js:448 +#: templates/js/translated/purchase_order.js:431 #: templates/js/translated/return_order.js:210 -#: templates/js/translated/sales_order.js:552 +#: templates/js/translated/sales_order.js:511 msgid "Mark this order as complete?" msgstr "" -#: templates/js/translated/purchase_order.js:454 +#: templates/js/translated/purchase_order.js:437 msgid "All line items have been received" msgstr "" -#: templates/js/translated/purchase_order.js:459 +#: templates/js/translated/purchase_order.js:442 msgid "This order has line items which have not been marked as received." msgstr "" -#: templates/js/translated/purchase_order.js:460 +#: templates/js/translated/purchase_order.js:443 msgid "Completing this order means that the order and line items will no longer be editable." msgstr "" -#: templates/js/translated/purchase_order.js:483 +#: templates/js/translated/purchase_order.js:466 msgid "Cancel Purchase Order" msgstr "" -#: templates/js/translated/purchase_order.js:488 +#: templates/js/translated/purchase_order.js:471 msgid "Are you sure you wish to cancel this purchase order?" msgstr "" -#: templates/js/translated/purchase_order.js:494 +#: templates/js/translated/purchase_order.js:477 msgid "This purchase order can not be cancelled" msgstr "" -#: templates/js/translated/purchase_order.js:515 +#: templates/js/translated/purchase_order.js:498 #: templates/js/translated/return_order.js:164 msgid "After placing this order, line items will no longer be editable." msgstr "" -#: templates/js/translated/purchase_order.js:520 +#: templates/js/translated/purchase_order.js:503 msgid "Issue Purchase Order" msgstr "" -#: templates/js/translated/purchase_order.js:612 +#: templates/js/translated/purchase_order.js:595 msgid "At least one purchaseable part must be selected" msgstr "" -#: templates/js/translated/purchase_order.js:637 +#: templates/js/translated/purchase_order.js:620 msgid "Quantity to order" msgstr "" -#: templates/js/translated/purchase_order.js:646 +#: templates/js/translated/purchase_order.js:629 msgid "New supplier part" msgstr "" -#: templates/js/translated/purchase_order.js:664 +#: templates/js/translated/purchase_order.js:647 msgid "New purchase order" msgstr "" -#: templates/js/translated/purchase_order.js:705 +#: templates/js/translated/purchase_order.js:688 msgid "Add to purchase order" msgstr "" -#: templates/js/translated/purchase_order.js:755 +#: templates/js/translated/purchase_order.js:738 msgid "Merge" msgstr "" -#: templates/js/translated/purchase_order.js:859 +#: templates/js/translated/purchase_order.js:842 msgid "No matching supplier parts" msgstr "" -#: templates/js/translated/purchase_order.js:878 +#: templates/js/translated/purchase_order.js:861 msgid "No matching purchase orders" msgstr "" -#: templates/js/translated/purchase_order.js:1073 +#: templates/js/translated/purchase_order.js:1056 #: templates/js/translated/return_order.js:490 msgid "Select Line Items" msgstr "" -#: templates/js/translated/purchase_order.js:1074 +#: templates/js/translated/purchase_order.js:1057 #: templates/js/translated/return_order.js:491 msgid "At least one line item must be selected" msgstr "" -#: templates/js/translated/purchase_order.js:1104 +#: templates/js/translated/purchase_order.js:1087 msgid "Received Quantity" msgstr "" -#: templates/js/translated/purchase_order.js:1115 +#: templates/js/translated/purchase_order.js:1098 msgid "Quantity to receive" msgstr "" -#: templates/js/translated/purchase_order.js:1170 +#: templates/js/translated/purchase_order.js:1153 #: templates/js/translated/stock.js:1215 msgid "Specify packaging for incoming stock items" msgstr "" -#: templates/js/translated/purchase_order.js:1223 +#: templates/js/translated/purchase_order.js:1206 msgid "Stock Status" msgstr "" -#: templates/js/translated/purchase_order.js:1237 +#: templates/js/translated/purchase_order.js:1220 msgid "Add barcode" msgstr "" -#: templates/js/translated/purchase_order.js:1238 +#: templates/js/translated/purchase_order.js:1221 msgid "Remove barcode" msgstr "" -#: templates/js/translated/purchase_order.js:1241 +#: templates/js/translated/purchase_order.js:1224 msgid "Specify location" msgstr "" -#: templates/js/translated/purchase_order.js:1249 +#: templates/js/translated/purchase_order.js:1232 msgid "Add batch code" msgstr "" -#: templates/js/translated/purchase_order.js:1259 +#: templates/js/translated/purchase_order.js:1242 msgid "Specify packaging" msgstr "" -#: templates/js/translated/purchase_order.js:1270 +#: templates/js/translated/purchase_order.js:1253 msgid "Add serial numbers" msgstr "" -#: templates/js/translated/purchase_order.js:1281 +#: templates/js/translated/purchase_order.js:1264 msgid "Add note" msgstr "" -#: templates/js/translated/purchase_order.js:1338 +#: templates/js/translated/purchase_order.js:1321 msgid "Serials" msgstr "" -#: templates/js/translated/purchase_order.js:1368 +#: templates/js/translated/purchase_order.js:1351 msgid "Order Code" msgstr "" -#: templates/js/translated/purchase_order.js:1370 +#: templates/js/translated/purchase_order.js:1353 msgid "Quantity to Receive" msgstr "" -#: templates/js/translated/purchase_order.js:1395 +#: templates/js/translated/purchase_order.js:1379 #: templates/js/translated/return_order.js:559 msgid "Confirm receipt of items" msgstr "" -#: templates/js/translated/purchase_order.js:1396 +#: templates/js/translated/purchase_order.js:1380 msgid "Receive Purchase Order Items" msgstr "" -#: templates/js/translated/purchase_order.js:1464 +#: templates/js/translated/purchase_order.js:1448 msgid "Scan Item Barcode" msgstr "" -#: templates/js/translated/purchase_order.js:1465 +#: templates/js/translated/purchase_order.js:1449 msgid "Scan barcode on incoming item (must not match any existing stock items)" msgstr "" -#: templates/js/translated/purchase_order.js:1479 +#: templates/js/translated/purchase_order.js:1463 msgid "Invalid barcode data" msgstr "" -#: templates/js/translated/purchase_order.js:1751 +#: templates/js/translated/purchase_order.js:1735 #: templates/js/translated/return_order.js:285 -#: templates/js/translated/sales_order.js:810 -#: templates/js/translated/sales_order.js:1034 +#: templates/js/translated/sales_order.js:769 +#: templates/js/translated/sales_order.js:1007 msgid "Order is overdue" msgstr "" -#: templates/js/translated/purchase_order.js:1913 +#: templates/js/translated/purchase_order.js:1897 msgid "All selected Line items will be deleted" msgstr "" -#: templates/js/translated/purchase_order.js:1931 +#: templates/js/translated/purchase_order.js:1915 msgid "Delete selected Line items?" msgstr "" -#: templates/js/translated/purchase_order.js:1986 -#: templates/js/translated/sales_order.js:2106 +#: templates/js/translated/purchase_order.js:1970 +#: templates/js/translated/sales_order.js:2087 msgid "Duplicate Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2001 +#: templates/js/translated/purchase_order.js:1985 #: templates/js/translated/return_order.js:475 #: templates/js/translated/return_order.js:667 -#: templates/js/translated/sales_order.js:2119 +#: templates/js/translated/sales_order.js:2100 msgid "Edit Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2012 +#: templates/js/translated/purchase_order.js:1996 #: templates/js/translated/return_order.js:680 -#: templates/js/translated/sales_order.js:2130 +#: templates/js/translated/sales_order.js:2111 msgid "Delete Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2294 -#: templates/js/translated/sales_order.js:2060 +#: templates/js/translated/purchase_order.js:2278 +#: templates/js/translated/sales_order.js:2041 msgid "Duplicate line item" msgstr "" -#: templates/js/translated/purchase_order.js:2295 +#: templates/js/translated/purchase_order.js:2279 #: templates/js/translated/return_order.js:799 -#: templates/js/translated/sales_order.js:2061 +#: templates/js/translated/sales_order.js:2042 msgid "Edit line item" msgstr "" -#: templates/js/translated/purchase_order.js:2296 +#: templates/js/translated/purchase_order.js:2280 #: templates/js/translated/return_order.js:803 -#: templates/js/translated/sales_order.js:2067 +#: templates/js/translated/sales_order.js:2048 msgid "Delete line item" msgstr "" -#: templates/js/translated/report.js:49 -msgid "Print Report" -msgstr "" - #: templates/js/translated/report.js:68 msgid "Report print successful" msgstr "" @@ -13878,7 +14219,7 @@ msgid "No return orders found" msgstr "" #: templates/js/translated/return_order.js:299 -#: templates/js/translated/sales_order.js:824 +#: templates/js/translated/sales_order.js:783 msgid "Invalid Customer" msgstr "" @@ -13887,7 +14228,7 @@ msgid "Receive Return Order Items" msgstr "" #: templates/js/translated/return_order.js:691 -#: templates/js/translated/sales_order.js:2267 +#: templates/js/translated/sales_order.js:2248 msgid "No matching line items" msgstr "" @@ -13903,188 +14244,181 @@ msgstr "" msgid "Edit Sales Order" msgstr "" -#: templates/js/translated/sales_order.js:291 +#: templates/js/translated/sales_order.js:288 msgid "No stock items have been allocated to this shipment" msgstr "" -#: templates/js/translated/sales_order.js:296 -msgid "The following stock items will be shipped" -msgstr "" - -#: templates/js/translated/sales_order.js:336 +#: templates/js/translated/sales_order.js:294 msgid "Complete Shipment" msgstr "" -#: templates/js/translated/sales_order.js:360 +#: templates/js/translated/sales_order.js:318 msgid "Confirm Shipment" msgstr "" -#: templates/js/translated/sales_order.js:416 +#: templates/js/translated/sales_order.js:375 msgid "No pending shipments found" msgstr "" -#: templates/js/translated/sales_order.js:420 +#: templates/js/translated/sales_order.js:379 msgid "No stock items have been allocated to pending shipments" msgstr "" -#: templates/js/translated/sales_order.js:430 +#: templates/js/translated/sales_order.js:389 msgid "Complete Shipments" msgstr "" -#: templates/js/translated/sales_order.js:452 +#: templates/js/translated/sales_order.js:411 msgid "Skip" msgstr "" -#: templates/js/translated/sales_order.js:484 +#: templates/js/translated/sales_order.js:443 msgid "Ship Sales Order" msgstr "" -#: templates/js/translated/sales_order.js:500 +#: templates/js/translated/sales_order.js:459 msgid "Ship this order?" msgstr "" -#: templates/js/translated/sales_order.js:506 +#: templates/js/translated/sales_order.js:465 msgid "Order cannot be shipped as there are incomplete shipments" msgstr "" -#: templates/js/translated/sales_order.js:513 +#: templates/js/translated/sales_order.js:472 msgid "This order has line items which have not been completed." msgstr "" -#: templates/js/translated/sales_order.js:514 +#: templates/js/translated/sales_order.js:473 msgid "Shipping this order means that the order and line items will no longer be editable." msgstr "" -#: templates/js/translated/sales_order.js:572 +#: templates/js/translated/sales_order.js:531 msgid "Issue this Sales Order?" msgstr "" -#: templates/js/translated/sales_order.js:577 +#: templates/js/translated/sales_order.js:536 msgid "Issue Sales Order" msgstr "" -#: templates/js/translated/sales_order.js:596 +#: templates/js/translated/sales_order.js:555 msgid "Cancel Sales Order" msgstr "" -#: templates/js/translated/sales_order.js:601 +#: templates/js/translated/sales_order.js:560 msgid "Cancelling this order means that the order will no longer be editable." msgstr "" -#: templates/js/translated/sales_order.js:655 +#: templates/js/translated/sales_order.js:614 msgid "Create New Shipment" msgstr "" -#: templates/js/translated/sales_order.js:764 +#: templates/js/translated/sales_order.js:723 msgid "No sales orders found" msgstr "" -#: templates/js/translated/sales_order.js:944 +#: templates/js/translated/sales_order.js:907 msgid "Edit shipment" msgstr "" -#: templates/js/translated/sales_order.js:947 +#: templates/js/translated/sales_order.js:910 msgid "Complete shipment" msgstr "" -#: templates/js/translated/sales_order.js:952 +#: templates/js/translated/sales_order.js:915 msgid "Delete shipment" msgstr "" -#: templates/js/translated/sales_order.js:969 +#: templates/js/translated/sales_order.js:932 msgid "Edit Shipment" msgstr "" -#: templates/js/translated/sales_order.js:984 +#: templates/js/translated/sales_order.js:947 msgid "Delete Shipment" msgstr "" -#: templates/js/translated/sales_order.js:1017 +#: templates/js/translated/sales_order.js:989 msgid "No matching shipments found" msgstr "" -#: templates/js/translated/sales_order.js:1042 +#: templates/js/translated/sales_order.js:1015 msgid "Shipment Reference" msgstr "" -#: templates/js/translated/sales_order.js:1066 -#: templates/js/translated/sales_order.js:1565 +#: templates/js/translated/sales_order.js:1032 +#: templates/js/translated/sales_order.js:1531 msgid "Not shipped" msgstr "" -#: templates/js/translated/sales_order.js:1084 +#: templates/js/translated/sales_order.js:1050 msgid "Tracking" msgstr "" -#: templates/js/translated/sales_order.js:1088 +#: templates/js/translated/sales_order.js:1054 msgid "Invoice" msgstr "" -#: templates/js/translated/sales_order.js:1255 +#: templates/js/translated/sales_order.js:1221 msgid "Add Shipment" msgstr "" -#: templates/js/translated/sales_order.js:1306 +#: templates/js/translated/sales_order.js:1272 msgid "Confirm stock allocation" msgstr "" -#: templates/js/translated/sales_order.js:1307 +#: templates/js/translated/sales_order.js:1273 msgid "Allocate Stock Items to Sales Order" msgstr "" -#: templates/js/translated/sales_order.js:1513 +#: templates/js/translated/sales_order.js:1479 msgid "No sales order allocations found" msgstr "" -#: templates/js/translated/sales_order.js:1605 +#: templates/js/translated/sales_order.js:1571 msgid "Edit Stock Allocation" msgstr "" -#: templates/js/translated/sales_order.js:1619 +#: templates/js/translated/sales_order.js:1585 msgid "Confirm Delete Operation" msgstr "" -#: templates/js/translated/sales_order.js:1620 +#: templates/js/translated/sales_order.js:1586 msgid "Delete Stock Allocation" msgstr "" -#: templates/js/translated/sales_order.js:1659 -#: templates/js/translated/sales_order.js:1746 +#: templates/js/translated/sales_order.js:1640 +#: templates/js/translated/sales_order.js:1727 #: templates/js/translated/stock.js:1861 msgid "Shipped to customer" msgstr "" -#: templates/js/translated/sales_order.js:1667 -#: templates/js/translated/sales_order.js:1755 +#: templates/js/translated/sales_order.js:1648 +#: templates/js/translated/sales_order.js:1736 msgid "Stock location not specified" msgstr "" -#: templates/js/translated/sales_order.js:2044 -msgid "Allocate serial numbers" -msgstr "" - -#: templates/js/translated/sales_order.js:2048 -msgid "Purchase stock" -msgstr "" - -#: templates/js/translated/sales_order.js:2057 -#: templates/js/translated/sales_order.js:2245 -msgid "Calculate price" -msgstr "" - -#: templates/js/translated/sales_order.js:2071 -msgid "Cannot be deleted as items have been shipped" -msgstr "" - -#: templates/js/translated/sales_order.js:2074 -msgid "Cannot be deleted as items have been allocated" -msgstr "" - -#: templates/js/translated/sales_order.js:2145 +#: templates/js/translated/sales_order.js:2025 +#: templates/js/translated/sales_order.js:2126 msgid "Allocate Serial Numbers" msgstr "" -#: templates/js/translated/sales_order.js:2253 +#: templates/js/translated/sales_order.js:2029 +msgid "Purchase stock" +msgstr "" + +#: templates/js/translated/sales_order.js:2038 +#: templates/js/translated/sales_order.js:2226 +msgid "Calculate price" +msgstr "" + +#: templates/js/translated/sales_order.js:2052 +msgid "Cannot be deleted as items have been shipped" +msgstr "" + +#: templates/js/translated/sales_order.js:2055 +msgid "Cannot be deleted as items have been allocated" +msgstr "" + +#: templates/js/translated/sales_order.js:2234 msgid "Update Unit Price" msgstr "" @@ -14209,11 +14543,8 @@ msgid "Find Serial Number" msgstr "" #: templates/js/translated/stock.js:603 templates/js/translated/stock.js:604 -msgid "Enter serial number" -msgstr "" - #: templates/js/translated/stock.js:620 -msgid "Enter a serial number" +msgid "Enter serial number" msgstr "" #: templates/js/translated/stock.js:640 @@ -14284,7 +14615,7 @@ msgstr "" msgid "Add Stock" msgstr "" -#: templates/js/translated/stock.js:1049 users/models.py:396 +#: templates/js/translated/stock.js:1049 users/models.py:398 msgid "Add" msgstr "" @@ -14308,7 +14639,7 @@ msgstr "" msgid "Adjust packaging" msgstr "" -#: templates/js/translated/stock.js:1256 templates/js/translated/stock.js:3382 +#: templates/js/translated/stock.js:1256 templates/js/translated/stock.js:3383 msgid "Select Stock Items" msgstr "" @@ -14320,18 +14651,6 @@ msgstr "" msgid "Confirm stock adjustment" msgstr "" -#: templates/js/translated/stock.js:1448 -msgid "PASS" -msgstr "" - -#: templates/js/translated/stock.js:1450 -msgid "FAIL" -msgstr "" - -#: templates/js/translated/stock.js:1455 -msgid "NO RESULT" -msgstr "" - #: templates/js/translated/stock.js:1535 msgid "Pass test" msgstr "" @@ -14388,216 +14707,216 @@ msgstr "" msgid "No stock location set" msgstr "" -#: templates/js/translated/stock.js:1927 +#: templates/js/translated/stock.js:1928 msgid "Change stock status" msgstr "" -#: templates/js/translated/stock.js:1936 +#: templates/js/translated/stock.js:1937 msgid "Merge stock" msgstr "" -#: templates/js/translated/stock.js:1985 +#: templates/js/translated/stock.js:1986 msgid "Delete stock" msgstr "" -#: templates/js/translated/stock.js:2038 +#: templates/js/translated/stock.js:2039 msgid "stock items" msgstr "" -#: templates/js/translated/stock.js:2043 +#: templates/js/translated/stock.js:2044 msgid "Scan to location" msgstr "" -#: templates/js/translated/stock.js:2054 +#: templates/js/translated/stock.js:2055 msgid "Stock Actions" msgstr "" -#: templates/js/translated/stock.js:2098 +#: templates/js/translated/stock.js:2099 msgid "Load installed items" msgstr "" -#: templates/js/translated/stock.js:2176 +#: templates/js/translated/stock.js:2177 msgid "Stock item is in production" msgstr "" -#: templates/js/translated/stock.js:2181 +#: templates/js/translated/stock.js:2182 msgid "Stock item assigned to sales order" msgstr "" -#: templates/js/translated/stock.js:2184 +#: templates/js/translated/stock.js:2185 msgid "Stock item assigned to customer" msgstr "" -#: templates/js/translated/stock.js:2187 +#: templates/js/translated/stock.js:2188 msgid "Serialized stock item has been allocated" msgstr "" -#: templates/js/translated/stock.js:2189 +#: templates/js/translated/stock.js:2190 msgid "Stock item has been fully allocated" msgstr "" -#: templates/js/translated/stock.js:2191 +#: templates/js/translated/stock.js:2192 msgid "Stock item has been partially allocated" msgstr "" -#: templates/js/translated/stock.js:2194 +#: templates/js/translated/stock.js:2195 msgid "Stock item has been installed in another item" msgstr "" -#: templates/js/translated/stock.js:2196 +#: templates/js/translated/stock.js:2197 msgid "Stock item has been consumed by a build order" msgstr "" -#: templates/js/translated/stock.js:2200 +#: templates/js/translated/stock.js:2201 msgid "Stock item has expired" msgstr "" -#: templates/js/translated/stock.js:2202 +#: templates/js/translated/stock.js:2203 msgid "Stock item will expire soon" msgstr "" -#: templates/js/translated/stock.js:2207 +#: templates/js/translated/stock.js:2208 msgid "Stock item has been rejected" msgstr "" -#: templates/js/translated/stock.js:2209 +#: templates/js/translated/stock.js:2210 msgid "Stock item is lost" msgstr "" -#: templates/js/translated/stock.js:2211 +#: templates/js/translated/stock.js:2212 msgid "Stock item is destroyed" msgstr "" -#: templates/js/translated/stock.js:2215 +#: templates/js/translated/stock.js:2216 #: templates/js/translated/table_filters.js:357 msgid "Depleted" msgstr "" -#: templates/js/translated/stock.js:2380 +#: templates/js/translated/stock.js:2381 msgid "Supplier part not specified" msgstr "" -#: templates/js/translated/stock.js:2427 +#: templates/js/translated/stock.js:2428 msgid "Stock Value" msgstr "" -#: templates/js/translated/stock.js:2555 +#: templates/js/translated/stock.js:2556 msgid "No stock items matching query" msgstr "" -#: templates/js/translated/stock.js:2658 +#: templates/js/translated/stock.js:2659 msgid "stock locations" msgstr "" -#: templates/js/translated/stock.js:2813 +#: templates/js/translated/stock.js:2814 msgid "Load Sublocations" msgstr "" -#: templates/js/translated/stock.js:2930 +#: templates/js/translated/stock.js:2931 msgid "Details" msgstr "" -#: templates/js/translated/stock.js:2934 +#: templates/js/translated/stock.js:2935 msgid "No changes" msgstr "" -#: templates/js/translated/stock.js:2946 +#: templates/js/translated/stock.js:2947 msgid "Part information unavailable" msgstr "" -#: templates/js/translated/stock.js:2968 +#: templates/js/translated/stock.js:2969 msgid "Location no longer exists" msgstr "" -#: templates/js/translated/stock.js:2985 +#: templates/js/translated/stock.js:2986 msgid "Build order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3000 +#: templates/js/translated/stock.js:3001 msgid "Purchase order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3017 +#: templates/js/translated/stock.js:3018 msgid "Sales Order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3034 +#: templates/js/translated/stock.js:3035 msgid "Return Order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3053 +#: templates/js/translated/stock.js:3054 msgid "Customer no longer exists" msgstr "" -#: templates/js/translated/stock.js:3071 +#: templates/js/translated/stock.js:3072 msgid "Stock item no longer exists" msgstr "" -#: templates/js/translated/stock.js:3089 +#: templates/js/translated/stock.js:3090 msgid "Added" msgstr "" -#: templates/js/translated/stock.js:3097 +#: templates/js/translated/stock.js:3098 msgid "Removed" msgstr "" -#: templates/js/translated/stock.js:3169 +#: templates/js/translated/stock.js:3170 msgid "No installed items" msgstr "" -#: templates/js/translated/stock.js:3223 templates/js/translated/stock.js:3259 +#: templates/js/translated/stock.js:3224 templates/js/translated/stock.js:3260 msgid "Uninstall Stock Item" msgstr "" -#: templates/js/translated/stock.js:3280 +#: templates/js/translated/stock.js:3281 msgid "Select stock item to uninstall" msgstr "" -#: templates/js/translated/stock.js:3301 +#: templates/js/translated/stock.js:3302 msgid "Install another stock item into this item" msgstr "" -#: templates/js/translated/stock.js:3302 +#: templates/js/translated/stock.js:3303 msgid "Stock items can only be installed if they meet the following criteria" msgstr "" -#: templates/js/translated/stock.js:3304 +#: templates/js/translated/stock.js:3305 msgid "The Stock Item links to a Part which is the BOM for this Stock Item" msgstr "" -#: templates/js/translated/stock.js:3305 +#: templates/js/translated/stock.js:3306 msgid "The Stock Item is currently available in stock" msgstr "" -#: templates/js/translated/stock.js:3306 +#: templates/js/translated/stock.js:3307 msgid "The Stock Item is not already installed in another item" msgstr "" -#: templates/js/translated/stock.js:3307 +#: templates/js/translated/stock.js:3308 msgid "The Stock Item is tracked by either a batch code or serial number" msgstr "" -#: templates/js/translated/stock.js:3320 +#: templates/js/translated/stock.js:3321 msgid "Select part to install" msgstr "" -#: templates/js/translated/stock.js:3383 +#: templates/js/translated/stock.js:3384 msgid "Select one or more stock items" msgstr "" -#: templates/js/translated/stock.js:3396 +#: templates/js/translated/stock.js:3397 msgid "Selected stock items" msgstr "" -#: templates/js/translated/stock.js:3400 +#: templates/js/translated/stock.js:3401 msgid "Change Stock Status" msgstr "" -#: templates/js/translated/stock.js:3477 +#: templates/js/translated/stock.js:3478 msgid "This week" msgstr "" -#: templates/js/translated/stock.js:3485 +#: templates/js/translated/stock.js:3486 msgid "This month" msgstr "" @@ -14734,10 +15053,6 @@ msgstr "" msgid "Show items which are in production" msgstr "" -#: templates/js/translated/table_filters.js:372 -msgid "Include Variants" -msgstr "" - #: templates/js/translated/table_filters.js:373 msgid "Include stock items for variant parts" msgstr "" @@ -15012,10 +15327,6 @@ msgstr "" msgid "An error occurred while attempting to login via your social network account." msgstr "" -#: templates/socialaccount/authentication_error.html:13 -msgid "Contact your system administrator for further information." -msgstr "" - #: templates/socialaccount/login.html:13 #, python-format msgid "Connect %(provider)s" @@ -15141,27 +15452,27 @@ msgstr "" msgid "No" msgstr "" -#: users/admin.py:104 +#: users/admin.py:101 msgid "Users" msgstr "" -#: users/admin.py:105 +#: users/admin.py:102 msgid "Select which users are assigned to this group" msgstr "" -#: users/admin.py:249 +#: users/admin.py:246 msgid "The following users are members of multiple groups" msgstr "" -#: users/admin.py:283 +#: users/admin.py:280 msgid "Personal info" msgstr "" -#: users/admin.py:285 +#: users/admin.py:282 msgid "Permissions" msgstr "" -#: users/admin.py:288 +#: users/admin.py:285 msgid "Important dates" msgstr "" @@ -15205,35 +15516,35 @@ msgstr "" msgid "Revoked" msgstr "" -#: users/models.py:379 +#: users/models.py:381 msgid "Permission set" msgstr "" -#: users/models.py:388 +#: users/models.py:390 msgid "Group" msgstr "" -#: users/models.py:392 +#: users/models.py:394 msgid "View" msgstr "" -#: users/models.py:392 +#: users/models.py:394 msgid "Permission to view items" msgstr "" -#: users/models.py:396 +#: users/models.py:398 msgid "Permission to add items" msgstr "" -#: users/models.py:400 +#: users/models.py:402 msgid "Change" msgstr "" -#: users/models.py:402 +#: users/models.py:404 msgid "Permissions to edit items" msgstr "" -#: users/models.py:408 +#: users/models.py:410 msgid "Permission to delete items" msgstr "" diff --git a/src/backend/InvenTree/locale/de/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/de/LC_MESSAGES/django.po index c5b448f007..915b0c4555 100644 --- a/src/backend/InvenTree/locale/de/LC_MESSAGES/django.po +++ b/src/backend/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: 2024-08-20 01:22+0000\n" -"PO-Revision-Date: 2024-08-20 19:50\n" +"POT-Creation-Date: 2024-11-04 03:11+0000\n" +"PO-Revision-Date: 2024-11-04 03:14\n" "Last-Translator: \n" "Language-Team: German\n" "Language: de_DE\n" @@ -14,81 +14,89 @@ msgstr "" "X-Crowdin-Project: inventree\n" "X-Crowdin-Project-ID: 452300\n" "X-Crowdin-Language: de\n" -"X-Crowdin-File: /[inventree.InvenTree] l10/src/backend/InvenTree/locale/en/LC_MESSAGES/django.po\n" -"X-Crowdin-File-ID: 216\n" +"X-Crowdin-File: /src/backend/InvenTree/locale/en/LC_MESSAGES/django.po\n" +"X-Crowdin-File-ID: 250\n" -#: InvenTree/api.py:269 +#: InvenTree/api.py:270 msgid "API endpoint not found" msgstr "API-Endpunkt nicht gefunden" -#: InvenTree/api.py:502 +#: InvenTree/api.py:387 +msgid "Invalid items list provided" +msgstr "" + +#: InvenTree/api.py:396 +msgid "Invalid filters provided" +msgstr "" + +#: InvenTree/api.py:401 +msgid "No items found to delete" +msgstr "" + +#: InvenTree/api.py:515 msgid "User does not have permission to view this model" msgstr "Benutzer hat keine Berechtigung, dieses Modell anzuzeigen" -#: InvenTree/conversion.py:160 +#: InvenTree/conversion.py:161 #, python-brace-format msgid "Invalid unit provided ({unit})" msgstr "Ungültige Einheit angegeben ({unit})" -#: InvenTree/conversion.py:177 +#: InvenTree/conversion.py:178 msgid "No value provided" msgstr "Kein Wert angegeben" -#: InvenTree/conversion.py:204 +#: InvenTree/conversion.py:205 #, python-brace-format msgid "Could not convert {original} to {unit}" msgstr "Konnte {original} nicht in {unit} umwandeln" -#: InvenTree/conversion.py:206 -msgid "Invalid quantity supplied" -msgstr "Ungültige Menge" +#: InvenTree/conversion.py:207 InvenTree/conversion.py:221 +#: InvenTree/helpers.py:505 order/models.py:589 order/models.py:832 +msgid "Invalid quantity provided" +msgstr "Keine gültige Menge" -#: InvenTree/conversion.py:220 -#, python-brace-format -msgid "Invalid quantity supplied ({exc})" -msgstr "Ungültige Menge ({exc})" - -#: InvenTree/exceptions.py:108 +#: InvenTree/exceptions.py:104 msgid "Error details can be found in the admin panel" msgstr "Fehlerdetails finden Sie im Admin-Panel" -#: InvenTree/fields.py:136 +#: InvenTree/fields.py:135 msgid "Enter date" msgstr "Datum eingeben" -#: InvenTree/fields.py:205 InvenTree/models.py:929 build/serializers.py:468 -#: build/serializers.py:546 build/templates/build/sidebar.html:29 -#: company/models.py:836 +#: InvenTree/fields.py:204 InvenTree/models.py:928 build/serializers.py:512 +#: build/serializers.py:590 build/templates/build/sidebar.html:29 +#: company/models.py:833 #: company/templates/company/manufacturer_part_sidebar.html:11 #: company/templates/company/sidebar.html:37 -#: company/templates/company/supplier_part_sidebar.html:11 order/models.py:1380 +#: company/templates/company/supplier_part_sidebar.html:11 order/models.py:1397 #: order/templates/order/po_sidebar.html:11 #: order/templates/order/return_order_sidebar.html:9 #: order/templates/order/so_sidebar.html:17 part/admin.py:59 -#: part/models.py:3297 part/templates/part/part_sidebar.html:65 +#: part/models.py:3348 part/templates/part/part_sidebar.html:65 #: report/templates/report/inventree_build_order_report.html:172 -#: stock/admin.py:230 stock/models.py:2375 stock/models.py:2563 -#: stock/serializers.py:698 stock/serializers.py:856 stock/serializers.py:982 -#: stock/serializers.py:1032 stock/serializers.py:1343 -#: stock/serializers.py:1432 stock/serializers.py:1597 +#: stock/admin.py:231 stock/models.py:2494 stock/models.py:2679 +#: stock/serializers.py:725 stock/serializers.py:887 stock/serializers.py:1013 +#: stock/serializers.py:1063 stock/serializers.py:1374 +#: stock/serializers.py:1463 stock/serializers.py:1628 #: stock/templates/stock/stock_sidebar.html:25 #: templates/js/translated/barcode.js:143 templates/js/translated/bom.js:1265 -#: templates/js/translated/company.js:1684 templates/js/translated/order.js:372 +#: templates/js/translated/company.js:1685 templates/js/translated/order.js:372 #: templates/js/translated/part.js:1087 -#: templates/js/translated/purchase_order.js:2270 +#: templates/js/translated/purchase_order.js:2254 #: templates/js/translated/return_order.js:774 -#: templates/js/translated/sales_order.js:1103 -#: templates/js/translated/sales_order.js:2018 -#: templates/js/translated/stock.js:1621 templates/js/translated/stock.js:2513 +#: templates/js/translated/sales_order.js:1069 +#: templates/js/translated/sales_order.js:1999 +#: templates/js/translated/stock.js:1621 templates/js/translated/stock.js:2514 msgid "Notes" msgstr "Notizen" -#: InvenTree/format.py:164 +#: InvenTree/format.py:162 #, python-brace-format msgid "Value '{name}' does not appear in pattern format" msgstr "Wert '{name}' hält das Musterformat nicht ein" -#: InvenTree/format.py:175 +#: InvenTree/format.py:173 msgid "Provided value does not match required pattern: " msgstr "Angegebener Wert entspricht nicht dem benötigten Muster: " @@ -132,397 +140,409 @@ msgstr "MFA Registrierung ist deaktiviert." msgid "The provided primary email address is not valid." msgstr "Die angegebene primäre E-Mail-Adresse ist ungültig." -#: InvenTree/forms.py:274 +#: InvenTree/forms.py:273 msgid "The provided email domain is not approved." msgstr "Die angegebene E-Mail-Domain ist nicht freigegeben." -#: InvenTree/forms.py:403 +#: InvenTree/forms.py:402 msgid "Registration is disabled." msgstr "Registrierung ist deaktiviert." -#: InvenTree/helpers.py:491 order/models.py:567 order/models.py:810 -msgid "Invalid quantity provided" -msgstr "Keine gültige Menge" +#: InvenTree/helpers.py:509 +msgid "Cannot serialize more than 1000 items at once" +msgstr "" -#: InvenTree/helpers.py:499 +#: InvenTree/helpers.py:515 msgid "Empty serial number string" msgstr "Keine Seriennummer angegeben" -#: InvenTree/helpers.py:528 +#: InvenTree/helpers.py:544 msgid "Duplicate serial" msgstr "Duplizierter Seriennummer" -#: InvenTree/helpers.py:560 InvenTree/helpers.py:603 +#: InvenTree/helpers.py:576 InvenTree/helpers.py:619 InvenTree/helpers.py:637 +#: InvenTree/helpers.py:644 InvenTree/helpers.py:663 #, python-brace-format -msgid "Invalid group range: {group}" -msgstr "Ungültiger Gruppenbereich: {group}" +msgid "Invalid group: {group}" +msgstr "" -#: InvenTree/helpers.py:591 +#: InvenTree/helpers.py:607 #, python-brace-format msgid "Group range {group} exceeds allowed quantity ({expected_quantity})" msgstr "Gruppenbereich {group} überschreitet die zulässige Menge ({expected_quantity})" -#: InvenTree/helpers.py:621 InvenTree/helpers.py:628 InvenTree/helpers.py:647 -#, python-brace-format -msgid "Invalid group sequence: {group}" -msgstr "Ungültige Gruppensequenz: {group}" - -#: InvenTree/helpers.py:657 +#: InvenTree/helpers.py:673 msgid "No serial numbers found" msgstr "Keine Seriennummern gefunden" -#: InvenTree/helpers.py:662 +#: InvenTree/helpers.py:678 msgid "Number of unique serial numbers ({len(serials)}) must match quantity ({expected_quantity})" msgstr "Anzahl der eindeutigen Seriennummern ({len(serials)}) muss mit der Menge übereinstimmen ({expected_quantity})" -#: InvenTree/helpers.py:780 +#: InvenTree/helpers.py:796 msgid "Remove HTML tags from this value" msgstr "Entferne HTML-Tags von diesem Wert" -#: InvenTree/helpers_model.py:133 +#: InvenTree/helpers.py:881 +msgid "Data contains prohibited markdown content" +msgstr "" + +#: InvenTree/helpers_model.py:130 msgid "Connection error" msgstr "Verbindungsfehler" -#: InvenTree/helpers_model.py:138 InvenTree/helpers_model.py:145 +#: InvenTree/helpers_model.py:135 InvenTree/helpers_model.py:142 msgid "Server responded with invalid status code" msgstr "Server antwortete mit ungültigem Statuscode" -#: InvenTree/helpers_model.py:141 +#: InvenTree/helpers_model.py:138 msgid "Exception occurred" msgstr "Ausnahme aufgetreten" -#: InvenTree/helpers_model.py:151 +#: InvenTree/helpers_model.py:148 msgid "Server responded with invalid Content-Length value" msgstr "Server antwortete mit ungültigem Wert für die Inhaltslänge" -#: InvenTree/helpers_model.py:154 +#: InvenTree/helpers_model.py:151 msgid "Image size is too large" msgstr "Bild ist zu groß" -#: InvenTree/helpers_model.py:166 +#: InvenTree/helpers_model.py:163 msgid "Image download exceeded maximum size" msgstr "Bilddownload überschreitet maximale Größe" -#: InvenTree/helpers_model.py:171 +#: InvenTree/helpers_model.py:168 msgid "Remote server returned empty response" msgstr "Remote-Server gab leere Antwort zurück" -#: InvenTree/helpers_model.py:179 +#: InvenTree/helpers_model.py:176 msgid "Supplied URL is not a valid image file" msgstr "Angegebene URL ist kein gültiges Bild" -#: InvenTree/locales.py:18 +#: InvenTree/locales.py:20 msgid "Arabic" msgstr "Arabisch" -#: InvenTree/locales.py:19 +#: InvenTree/locales.py:21 msgid "Bulgarian" msgstr "Bulgarisch" -#: InvenTree/locales.py:20 +#: InvenTree/locales.py:22 msgid "Czech" msgstr "Tschechisch" -#: InvenTree/locales.py:21 +#: InvenTree/locales.py:23 msgid "Danish" msgstr "Dänisch" -#: InvenTree/locales.py:22 +#: InvenTree/locales.py:24 msgid "German" msgstr "Deutsch" -#: InvenTree/locales.py:23 +#: InvenTree/locales.py:25 msgid "Greek" msgstr "Griechisch" -#: InvenTree/locales.py:24 +#: InvenTree/locales.py:26 msgid "English" msgstr "Englisch" -#: InvenTree/locales.py:25 +#: InvenTree/locales.py:27 msgid "Spanish" msgstr "Spanisch" -#: InvenTree/locales.py:26 +#: InvenTree/locales.py:28 msgid "Spanish (Mexican)" msgstr "Spanisch (Mexikanisch)" -#: InvenTree/locales.py:27 +#: InvenTree/locales.py:29 msgid "Estonian" msgstr "Estnisch" -#: InvenTree/locales.py:28 +#: InvenTree/locales.py:30 msgid "Farsi / Persian" msgstr "Persisch" -#: InvenTree/locales.py:29 +#: InvenTree/locales.py:31 msgid "Finnish" msgstr "Beenden" -#: InvenTree/locales.py:30 +#: InvenTree/locales.py:32 msgid "French" msgstr "Französisch" -#: InvenTree/locales.py:31 +#: InvenTree/locales.py:33 msgid "Hebrew" msgstr "Hebräisch" -#: InvenTree/locales.py:32 +#: InvenTree/locales.py:34 msgid "Hindi" msgstr "Hinduistisch" -#: InvenTree/locales.py:33 +#: InvenTree/locales.py:35 msgid "Hungarian" msgstr "Ungarisch" -#: InvenTree/locales.py:34 +#: InvenTree/locales.py:36 msgid "Italian" msgstr "Italienisch" -#: InvenTree/locales.py:35 +#: InvenTree/locales.py:37 msgid "Japanese" msgstr "Japanisch" -#: InvenTree/locales.py:36 +#: InvenTree/locales.py:38 msgid "Korean" msgstr "Koreanisch" -#: InvenTree/locales.py:37 +#: InvenTree/locales.py:39 +msgid "Lithuanian" +msgstr "" + +#: InvenTree/locales.py:40 msgid "Latvian" msgstr "Lettisch" -#: InvenTree/locales.py:38 +#: InvenTree/locales.py:41 msgid "Dutch" msgstr "Niederländisch" -#: InvenTree/locales.py:39 +#: InvenTree/locales.py:42 msgid "Norwegian" msgstr "Norwegisch" -#: InvenTree/locales.py:40 +#: InvenTree/locales.py:43 msgid "Polish" msgstr "Polnisch" -#: InvenTree/locales.py:41 +#: InvenTree/locales.py:44 msgid "Portuguese" msgstr "Portugiesisch" -#: InvenTree/locales.py:42 +#: InvenTree/locales.py:45 msgid "Portuguese (Brazilian)" msgstr "Portugiesisch (Brasilien)" -#: InvenTree/locales.py:43 +#: InvenTree/locales.py:46 msgid "Romanian" msgstr "Rumänisch" -#: InvenTree/locales.py:44 +#: InvenTree/locales.py:47 msgid "Russian" msgstr "Russisch" -#: InvenTree/locales.py:45 +#: InvenTree/locales.py:48 msgid "Slovak" msgstr "Slowakisch" -#: InvenTree/locales.py:46 +#: InvenTree/locales.py:49 msgid "Slovenian" msgstr "Slowenisch" -#: InvenTree/locales.py:47 +#: InvenTree/locales.py:50 msgid "Serbian" msgstr "Serbisch" -#: InvenTree/locales.py:48 +#: InvenTree/locales.py:51 msgid "Swedish" msgstr "Schwedisch" -#: InvenTree/locales.py:49 +#: InvenTree/locales.py:52 msgid "Thai" msgstr "Thailändisch" -#: InvenTree/locales.py:50 +#: InvenTree/locales.py:53 msgid "Turkish" msgstr "Türkisch" -#: InvenTree/locales.py:51 +#: InvenTree/locales.py:54 msgid "Ukrainian" msgstr "Ukrainisch" -#: InvenTree/locales.py:52 +#: InvenTree/locales.py:55 msgid "Vietnamese" msgstr "Vietnamesisch" -#: InvenTree/locales.py:53 +#: InvenTree/locales.py:56 msgid "Chinese (Simplified)" msgstr "Chinesisch (Vereinfacht)" -#: InvenTree/locales.py:54 +#: InvenTree/locales.py:57 msgid "Chinese (Traditional)" msgstr "Chinesisch (Traditionell)" #: InvenTree/magic_login.py:28 -#, python-brace-format -msgid "[{site_name}] Log in to the app" -msgstr "[{site_name}] In App einloggen" +msgid "Log in to the app" +msgstr "" -#: InvenTree/magic_login.py:38 InvenTree/serializers.py:415 -#: company/models.py:136 company/templates/company/company_base.html:138 +#: InvenTree/magic_login.py:38 InvenTree/serializers.py:416 +#: company/models.py:133 company/templates/company/company_base.html:138 #: templates/InvenTree/settings/user.html:49 -#: templates/js/translated/company.js:677 +#: templates/js/translated/company.js:678 msgid "Email" msgstr "Email" -#: InvenTree/models.py:103 +#: InvenTree/models.py:105 msgid "Error running plugin validation" msgstr "Fehler beim Ausführen der Plugin Validierung" -#: InvenTree/models.py:172 +#: InvenTree/models.py:174 msgid "Metadata must be a python dict object" msgstr "Metadaten müssen ein Python-Dict Objekt sein" -#: InvenTree/models.py:178 +#: InvenTree/models.py:180 msgid "Plugin Metadata" msgstr "Plugin Metadaten" -#: InvenTree/models.py:179 +#: InvenTree/models.py:181 msgid "JSON metadata field, for use by external plugins" msgstr "JSON-Metadatenfeld, für die Verwendung durch externe Plugins" -#: InvenTree/models.py:409 +#: InvenTree/models.py:408 msgid "Improperly formatted pattern" msgstr "Falsch formatiertes Muster" -#: InvenTree/models.py:416 +#: InvenTree/models.py:415 msgid "Unknown format key specified" msgstr "Unbekannter Formatschlüssel angegeben" -#: InvenTree/models.py:422 +#: InvenTree/models.py:421 msgid "Missing required format key" msgstr "Erforderlicher Formatschlüssel fehlt" -#: InvenTree/models.py:433 +#: InvenTree/models.py:432 msgid "Reference field cannot be empty" msgstr "Referenz-Feld darf nicht leer sein" -#: InvenTree/models.py:441 +#: InvenTree/models.py:440 msgid "Reference must match required pattern" msgstr "Referenz muss erforderlichem Muster entsprechen" -#: InvenTree/models.py:472 +#: InvenTree/models.py:471 msgid "Reference number is too large" msgstr "Referenznummer ist zu groß" -#: InvenTree/models.py:723 +#: InvenTree/models.py:722 msgid "Duplicate names cannot exist under the same parent" msgstr "Doppelte Namen können nicht unter dem selben Elternteil existieren" -#: InvenTree/models.py:740 +#: InvenTree/models.py:739 msgid "Invalid choice" msgstr "Ungültige Auswahl" -#: InvenTree/models.py:770 common/models.py:2702 common/models.py:3132 -#: common/serializers.py:412 company/models.py:593 machine/models.py:24 -#: part/models.py:983 part/models.py:3764 plugin/models.py:51 -#: report/models.py:149 stock/models.py:77 +#: InvenTree/models.py:769 common/models.py:2766 common/models.py:3193 +#: common/models.py:3413 common/serializers.py:460 company/models.py:590 +#: machine/models.py:24 part/models.py:1044 part/models.py:3815 +#: plugin/models.py:51 report/models.py:149 stock/models.py:83 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/notifications.html:17 #: templates/InvenTree/settings/plugin.html:83 #: templates/InvenTree/settings/plugin_settings.html:22 #: templates/InvenTree/settings/settings_staff_js.html:67 #: templates/InvenTree/settings/settings_staff_js.html:454 -#: templates/js/translated/company.js:676 -#: templates/js/translated/company.js:724 -#: templates/js/translated/company.js:913 -#: templates/js/translated/company.js:1165 -#: templates/js/translated/company.js:1413 templates/js/translated/part.js:1193 +#: templates/js/translated/company.js:677 +#: templates/js/translated/company.js:725 +#: templates/js/translated/company.js:914 +#: templates/js/translated/company.js:1166 +#: templates/js/translated/company.js:1414 templates/js/translated/part.js:1193 #: templates/js/translated/part.js:1481 templates/js/translated/part.js:1617 -#: templates/js/translated/part.js:2768 templates/js/translated/stock.js:2801 +#: templates/js/translated/part.js:2768 templates/js/translated/stock.js:2802 msgid "Name" msgstr "Name" -#: InvenTree/models.py:776 build/models.py:250 -#: build/templates/build/detail.html:24 common/models.py:156 -#: company/models.py:521 company/models.py:827 +#: InvenTree/models.py:775 build/models.py:251 +#: build/templates/build/detail.html:24 common/models.py:159 +#: company/models.py:518 company/models.py:824 #: company/templates/company/company_base.html:77 #: company/templates/company/manufacturer_part.html:75 -#: company/templates/company/supplier_part.html:107 order/models.py:288 -#: order/models.py:1413 part/admin.py:305 part/admin.py:411 part/models.py:1006 -#: part/models.py:3779 part/templates/part/category.html:79 -#: part/templates/part/part_base.html:170 +#: company/templates/company/supplier_part.html:108 order/models.py:295 +#: order/models.py:1430 part/admin.py:305 part/admin.py:411 part/models.py:1067 +#: part/models.py:3830 part/templates/part/category.html:79 +#: part/templates/part/part_base.html:171 #: part/templates/part/part_scheduling.html:12 report/models.py:155 -#: report/models.py:509 report/models.py:535 +#: report/models.py:517 report/models.py:543 #: report/templates/report/inventree_build_order_report.html:117 -#: stock/admin.py:54 stock/models.py:83 stock/templates/stock/location.html:122 +#: stock/admin.py:54 stock/models.py:89 stock/templates/stock/location.html:123 #: templates/InvenTree/settings/notifications.html:19 #: templates/InvenTree/settings/plugin_settings.html:27 #: templates/InvenTree/settings/settings_staff_js.html:170 #: templates/InvenTree/settings/settings_staff_js.html:459 #: templates/js/translated/bom.js:633 templates/js/translated/bom.js:963 -#: templates/js/translated/build.js:2311 templates/js/translated/company.js:519 -#: templates/js/translated/company.js:1330 -#: templates/js/translated/company.js:1641 templates/js/translated/index.js:119 +#: templates/js/translated/build.js:2314 templates/js/translated/company.js:520 +#: templates/js/translated/company.js:1331 +#: templates/js/translated/company.js:1642 templates/js/translated/index.js:119 #: templates/js/translated/order.js:323 templates/js/translated/part.js:1245 #: templates/js/translated/part.js:1490 templates/js/translated/part.js:1628 #: templates/js/translated/part.js:1965 templates/js/translated/part.js:2361 #: templates/js/translated/part.js:2803 templates/js/translated/part.js:2915 #: templates/js/translated/plugin.js:80 -#: templates/js/translated/purchase_order.js:1776 -#: templates/js/translated/purchase_order.js:1919 -#: templates/js/translated/purchase_order.js:2092 +#: templates/js/translated/purchase_order.js:1760 +#: templates/js/translated/purchase_order.js:1903 +#: templates/js/translated/purchase_order.js:2076 #: templates/js/translated/return_order.js:313 -#: templates/js/translated/sales_order.js:838 -#: templates/js/translated/sales_order.js:1848 -#: templates/js/translated/stock.js:1600 templates/js/translated/stock.js:2143 -#: templates/js/translated/stock.js:2832 templates/js/translated/stock.js:2915 +#: templates/js/translated/sales_order.js:797 +#: templates/js/translated/sales_order.js:1829 +#: templates/js/translated/stock.js:1600 templates/js/translated/stock.js:2144 +#: templates/js/translated/stock.js:2833 templates/js/translated/stock.js:2916 msgid "Description" msgstr "Beschreibung" -#: InvenTree/models.py:777 stock/models.py:84 +#: InvenTree/models.py:776 stock/models.py:90 msgid "Description (optional)" msgstr "Beschreibung (optional)" -#: InvenTree/models.py:792 templates/js/translated/part.js:2812 -#: templates/js/translated/stock.js:2841 +#: InvenTree/models.py:791 common/models.py:3546 +#: templates/js/translated/part.js:2812 templates/js/translated/stock.js:2842 msgid "Path" msgstr "Pfad" -#: InvenTree/models.py:929 +#: InvenTree/models.py:928 msgid "Markdown notes (optional)" msgstr "Markdown Notizen (optional)" -#: InvenTree/models.py:960 +#: InvenTree/models.py:959 msgid "Barcode Data" msgstr "Barcode-Daten" -#: InvenTree/models.py:961 +#: InvenTree/models.py:960 msgid "Third party barcode data" msgstr "Drittanbieter-Barcode-Daten" -#: InvenTree/models.py:967 +#: InvenTree/models.py:966 msgid "Barcode Hash" msgstr "Barcode-Hash" -#: InvenTree/models.py:968 +#: InvenTree/models.py:967 msgid "Unique hash of barcode data" msgstr "Eindeutiger Hash der Barcode-Daten" -#: InvenTree/models.py:1035 +#: InvenTree/models.py:1034 msgid "Existing barcode found" msgstr "Bestehender Barcode gefunden" -#: InvenTree/models.py:1078 +#: InvenTree/models.py:1112 +msgid "Task Failure" +msgstr "" + +#: InvenTree/models.py:1114 +#, python-brace-format +msgid "Background worker task '{instance.func}' failed after {n} attempts" +msgstr "" + +#: InvenTree/models.py:1142 msgid "Server Error" msgstr "Serverfehler" -#: InvenTree/models.py:1079 +#: InvenTree/models.py:1143 msgid "An error has been logged by the server." msgstr "Ein Fehler wurde vom Server protokolliert." -#: InvenTree/serializers.py:63 part/models.py:4387 +#: InvenTree/serializers.py:63 part/models.py:4444 msgid "Must be a valid number" msgstr "Muss eine gültige Nummer sein" -#: InvenTree/serializers.py:100 company/models.py:186 -#: company/templates/company/company_base.html:112 part/models.py:3115 +#: InvenTree/serializers.py:100 company/models.py:183 +#: company/templates/company/company_base.html:112 part/models.py:3166 #: templates/InvenTree/settings/settings_staff_js.html:44 #: templates/currency_data.html:5 msgid "Currency" @@ -532,15 +552,15 @@ msgstr "Währung" msgid "Select currency from available options" msgstr "Währung aus verfügbaren Optionen auswählen" -#: InvenTree/serializers.py:407 templates/InvenTree/settings/user.html:33 +#: InvenTree/serializers.py:405 templates/InvenTree/settings/user.html:33 msgid "Username" msgstr "Benutzername" -#: InvenTree/serializers.py:409 templates/InvenTree/settings/user.html:37 +#: InvenTree/serializers.py:408 templates/InvenTree/settings/user.html:37 msgid "First Name" msgstr "Vorname" -#: InvenTree/serializers.py:409 +#: InvenTree/serializers.py:408 msgid "First name of the user" msgstr "Vorname des Benutzers" @@ -552,30 +572,30 @@ msgstr "Nachname" msgid "Last name of the user" msgstr "Nachname des Benutzers" -#: InvenTree/serializers.py:415 +#: InvenTree/serializers.py:416 msgid "Email address of the user" msgstr "E-Mailadresse des Benutzers" -#: InvenTree/serializers.py:439 +#: InvenTree/serializers.py:441 msgid "Staff" msgstr "Mitarbeiter" -#: InvenTree/serializers.py:439 +#: InvenTree/serializers.py:441 msgid "Does this user have staff permissions" msgstr "Hat der Benutzer die Mitarbeiter Berechtigung" -#: InvenTree/serializers.py:442 +#: InvenTree/serializers.py:445 msgid "Superuser" msgstr "Administrator" -#: InvenTree/serializers.py:442 +#: InvenTree/serializers.py:445 msgid "Is this user a superuser" msgstr "Ist dieser Benutzer ein Administrator" -#: InvenTree/serializers.py:445 common/models.py:2707 company/models.py:163 -#: company/models.py:801 machine/models.py:39 part/admin.py:88 -#: part/models.py:1189 plugin/models.py:66 -#: templates/js/translated/company.js:523 +#: InvenTree/serializers.py:449 common/models.py:2771 company/models.py:160 +#: company/models.py:798 machine/models.py:39 part/admin.py:88 +#: part/models.py:1250 plugin/models.py:66 +#: templates/js/translated/company.js:524 #: templates/js/translated/table_filters.js:134 #: templates/js/translated/table_filters.js:226 #: templates/js/translated/table_filters.js:513 @@ -585,230 +605,229 @@ msgstr "Ist dieser Benutzer ein Administrator" msgid "Active" msgstr "Aktiv" -#: InvenTree/serializers.py:445 +#: InvenTree/serializers.py:449 msgid "Is this user account active" msgstr "Ist dieses Benutzerkonto aktiv" -#: InvenTree/serializers.py:463 +#: InvenTree/serializers.py:467 msgid "You do not have permission to change this user role." msgstr "Sie haben keine Berechtigung, diese Benutzerrolle zu ändern." -#: InvenTree/serializers.py:475 +#: InvenTree/serializers.py:503 msgid "Only superusers can create new users" msgstr "Nur Superuser können neue Benutzer erstellen" -#: InvenTree/serializers.py:494 +#: InvenTree/serializers.py:523 msgid "Your account has been created." msgstr "Ihr Konto wurde erstellt." -#: InvenTree/serializers.py:496 +#: InvenTree/serializers.py:525 msgid "Please use the password reset function to login" msgstr "Bitte benutzen Sie die Passwort-zurücksetzen-Funktion, um sich anzumelden" -#: InvenTree/serializers.py:503 +#: InvenTree/serializers.py:531 msgid "Welcome to InvenTree" msgstr "Willkommen bei InvenTree" -#: InvenTree/serializers.py:561 +#: InvenTree/serializers.py:594 msgid "Invalid value" msgstr "Ungültiger Wert" -#: InvenTree/serializers.py:581 importer/models.py:63 +#: InvenTree/serializers.py:614 importer/models.py:64 msgid "Data File" msgstr "Datendatei" -#: InvenTree/serializers.py:582 +#: InvenTree/serializers.py:615 msgid "Select data file for upload" msgstr "Neue Datei zum Hochladen auswählen" -#: InvenTree/serializers.py:599 -msgid "Unsupported file type" -msgstr "Nicht unterstütztes Dateiformat" +#: InvenTree/serializers.py:632 common/files.py:63 +msgid "Unsupported file format" +msgstr "" -#: InvenTree/serializers.py:605 +#: InvenTree/serializers.py:638 msgid "File is too large" msgstr "Datei ist zu groß" -#: InvenTree/serializers.py:626 +#: InvenTree/serializers.py:659 msgid "No columns found in file" msgstr "Keine Spalten in der Datei gefunden" -#: InvenTree/serializers.py:629 +#: InvenTree/serializers.py:662 msgid "No data rows found in file" msgstr "Keine Datensätze in der Datei gefunden" -#: InvenTree/serializers.py:742 +#: InvenTree/serializers.py:774 msgid "No data rows provided" msgstr "Keine Zeilen ausgewählt" -#: InvenTree/serializers.py:745 +#: InvenTree/serializers.py:777 msgid "No data columns supplied" msgstr "Keine Spalten angegeben" -#: InvenTree/serializers.py:812 +#: InvenTree/serializers.py:843 #, python-brace-format msgid "Missing required column: '{name}'" msgstr "Erforderliche Spalte '{name}' fehlt" -#: InvenTree/serializers.py:821 +#: InvenTree/serializers.py:852 #, python-brace-format msgid "Duplicate column: '{col}'" msgstr "Doppelte Spalte: '{col}'" -#: InvenTree/serializers.py:861 +#: InvenTree/serializers.py:891 msgid "Remote Image" msgstr "Grafiken aus externen Quellen" -#: InvenTree/serializers.py:862 +#: InvenTree/serializers.py:892 msgid "URL of remote image file" msgstr "URL der Remote-Bilddatei" -#: InvenTree/serializers.py:880 +#: InvenTree/serializers.py:910 msgid "Downloading images from remote URL is not enabled" msgstr "Das Herunterladen von Bildern von Remote-URLs ist nicht aktiviert" -#: InvenTree/status.py:66 part/serializers.py:1246 -msgid "Background worker check failed" -msgstr "Hintergrund-Prozess-Kontrolle fehlgeschlagen" - -#: InvenTree/status.py:70 -msgid "Email backend not configured" -msgstr "E-Mail-Backend nicht konfiguriert" - -#: InvenTree/status.py:73 -msgid "InvenTree system health checks failed" -msgstr "InvenTree Status-Überprüfung fehlgeschlagen" +#: InvenTree/serializers.py:917 +msgid "Failed to download image from remote URL" +msgstr "" #: InvenTree/templatetags/inventree_extras.py:184 msgid "Unknown database" msgstr "Unbekannte Datenbank" -#: InvenTree/validators.py:32 InvenTree/validators.py:34 +#: InvenTree/validators.py:32 msgid "Invalid physical unit" msgstr "Ungültige physikalische Einheit" -#: InvenTree/validators.py:40 +#: InvenTree/validators.py:38 msgid "Not a valid currency code" msgstr "Kein gültiger Währungscode" -#: InvenTree/validators.py:118 InvenTree/validators.py:134 +#: InvenTree/validators.py:115 InvenTree/validators.py:131 msgid "Overage value must not be negative" msgstr "Überschuss-Wert darf nicht negativ sein" -#: InvenTree/validators.py:136 +#: InvenTree/validators.py:133 msgid "Overage must not exceed 100%" msgstr "Überschuss darf 100% nicht überschreiten" -#: InvenTree/validators.py:142 +#: InvenTree/validators.py:139 msgid "Invalid value for overage" msgstr "Ungültiger Wert für Ausschuss" -#: InvenTree/views.py:400 templates/InvenTree/settings/user.html:23 +#: InvenTree/views.py:399 templates/InvenTree/settings/user.html:23 msgid "Edit User Information" msgstr "Benutzerinformationen bearbeiten" -#: InvenTree/views.py:412 templates/InvenTree/settings/user.html:20 +#: InvenTree/views.py:411 templates/InvenTree/settings/user.html:20 msgid "Set Password" msgstr "Passwort setzen" -#: InvenTree/views.py:434 +#: InvenTree/views.py:433 msgid "Password fields must match" msgstr "Passwörter stimmen nicht überein" -#: InvenTree/views.py:442 +#: InvenTree/views.py:441 msgid "Wrong password provided" msgstr "Falsches Passwort angegeben" -#: InvenTree/views.py:650 templates/navbar.html:160 +#: InvenTree/views.py:645 templates/navbar.html:160 msgid "System Information" msgstr "Systeminformationen" -#: InvenTree/views.py:657 templates/navbar.html:171 +#: InvenTree/views.py:652 templates/navbar.html:171 msgid "About InvenTree" msgstr "Über InvenTree" -#: build/api.py:51 part/api.py:156 stock/api.py:343 -msgid "Cascade" -msgstr "Mehrstufig" - -#: build/api.py:64 build/models.py:261 -#: build/templates/build/build_base.html:191 +#: build/api.py:54 build/models.py:262 +#: build/templates/build/build_base.html:192 #: build/templates/build/detail.html:87 msgid "Parent Build" msgstr "Eltern-Bauauftrag" -#: build/api.py:89 order/api.py:92 templates/js/translated/table_filters.js:101 +#: build/api.py:58 build/api.py:625 order/api.py:396 order/api.py:611 +#: order/api.py:990 order/api.py:1187 +#: templates/js/translated/table_filters.js:372 +msgid "Include Variants" +msgstr "Varianten einschließen" + +#: build/api.py:93 +msgid "Ancestor Build" +msgstr "Vorgänger-Build" + +#: build/api.py:112 order/api.py:90 +#: templates/js/translated/table_filters.js:101 #: templates/js/translated/table_filters.js:549 #: templates/js/translated/table_filters.js:633 #: templates/js/translated/table_filters.js:674 msgid "Assigned to me" msgstr "Mir zugewiesen" -#: build/api.py:106 build/templates/build/build_base.html:205 +#: build/api.py:129 build/templates/build/build_base.html:206 #: build/templates/build/detail.html:115 #: report/templates/report/inventree_build_order_report.html:152 #: templates/js/translated/table_filters.js:552 msgid "Issued By" msgstr "Aufgegeben von" -#: build/api.py:125 +#: build/api.py:148 msgid "Assigned To" -msgstr "" +msgstr "Zugewiesen zu" -#: build/api.py:301 +#: build/api.py:310 msgid "Build must be cancelled before it can be deleted" msgstr "Bauauftrag muss abgebrochen werden, bevor er gelöscht werden kann" -#: build/api.py:345 build/serializers.py:1288 part/models.py:4265 +#: build/api.py:354 build/serializers.py:1342 part/models.py:4322 #: templates/js/translated/bom.js:997 templates/js/translated/bom.js:1037 -#: templates/js/translated/build.js:2702 +#: templates/js/translated/build.js:2711 #: templates/js/translated/table_filters.js:197 #: templates/js/translated/table_filters.js:586 msgid "Consumable" msgstr "Verbrauchsmaterial" -#: build/api.py:346 build/serializers.py:1289 part/models.py:4259 +#: build/api.py:355 build/serializers.py:1343 part/models.py:4316 #: part/templates/part/upload_bom.html:58 templates/js/translated/bom.js:1001 -#: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2693 +#: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2702 #: templates/js/translated/table_filters.js:193 #: templates/js/translated/table_filters.js:222 #: templates/js/translated/table_filters.js:590 msgid "Optional" msgstr "Optional" -#: build/api.py:347 common/models.py:1489 part/admin.py:91 part/admin.py:428 -#: part/models.py:1154 part/serializers.py:1575 +#: build/api.py:356 common/models.py:1558 part/admin.py:91 part/admin.py:428 +#: part/models.py:1215 part/serializers.py:1633 #: templates/js/translated/bom.js:1639 #: templates/js/translated/table_filters.js:337 #: templates/js/translated/table_filters.js:729 msgid "Assembly" msgstr "Baugruppe" -#: build/api.py:348 templates/js/translated/table_filters.js:415 +#: build/api.py:357 templates/js/translated/table_filters.js:415 #: templates/js/translated/table_filters.js:582 msgid "Tracked" msgstr "Nachverfolgt" -#: build/api.py:349 build/serializers.py:1290 part/models.py:1172 +#: build/api.py:358 build/serializers.py:1344 part/models.py:1233 #: templates/js/translated/table_filters.js:146 #: templates/js/translated/table_filters.js:779 msgid "Testable" -msgstr "" +msgstr "Prüfbar" -#: build/api.py:351 part/admin.py:144 templates/js/translated/build.js:1917 -#: templates/js/translated/build.js:2820 -#: templates/js/translated/sales_order.js:1965 +#: build/api.py:360 order/api.py:779 part/admin.py:144 +#: templates/js/translated/build.js:1920 templates/js/translated/build.js:2838 +#: templates/js/translated/sales_order.js:1946 #: templates/js/translated/table_filters.js:574 msgid "Allocated" msgstr "Zugeordnet" -#: build/api.py:359 company/models.py:891 company/serializers.py:395 -#: company/templates/company/supplier_part.html:114 +#: build/api.py:368 company/models.py:888 company/serializers.py:399 +#: company/templates/company/supplier_part.html:115 #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:17 -#: templates/js/translated/bom.js:1162 templates/js/translated/build.js:2752 +#: templates/js/translated/bom.js:1162 templates/js/translated/build.js:2770 #: templates/js/translated/index.js:123 -#: templates/js/translated/model_renderers.js:235 +#: templates/js/translated/model_renderers.js:238 #: templates/js/translated/part.js:695 templates/js/translated/part.js:697 #: templates/js/translated/part.js:702 #: templates/js/translated/table_filters.js:347 @@ -816,16 +835,68 @@ msgstr "Zugeordnet" msgid "Available" msgstr "Verfügbar" -#: build/models.py:86 build/templates/build/build_base.html:9 -#: build/templates/build/build_base.html:27 +#: build/api.py:640 build/models.py:268 build/serializers.py:1330 +#: build/templates/build/build_base.html:106 +#: build/templates/build/detail.html:29 company/models.py:1043 order/api.py:775 +#: order/api.py:1003 order/models.py:1519 order/models.py:1674 +#: order/models.py:1675 part/api.py:1495 part/api.py:1802 part/models.py:419 +#: part/models.py:3177 part/models.py:3321 part/models.py:3469 +#: part/models.py:3490 part/models.py:3512 part/models.py:3648 +#: part/models.py:3995 part/models.py:4158 part/models.py:4288 +#: part/models.py:4654 part/serializers.py:1245 part/serializers.py:1898 +#: part/templates/part/part_app_base.html:8 +#: part/templates/part/part_pricing.html:12 +#: part/templates/part/upload_bom.html:52 +#: report/templates/report/inventree_bill_of_materials_report.html:110 +#: report/templates/report/inventree_bill_of_materials_report.html:137 +#: report/templates/report/inventree_build_order_report.html:109 +#: report/templates/report/inventree_purchase_order_report.html:27 +#: report/templates/report/inventree_return_order_report.html:24 +#: report/templates/report/inventree_sales_order_report.html:27 +#: report/templates/report/inventree_sales_order_shipment_report.html:28 +#: report/templates/report/inventree_stock_location_report.html:102 +#: stock/serializers.py:112 stock/serializers.py:160 stock/serializers.py:456 +#: stock/serializers.py:947 templates/InvenTree/search.html:82 +#: templates/email/build_order_completed.html:17 +#: templates/email/build_order_required_stock.html:17 +#: templates/email/low_stock_notification.html:15 +#: templates/email/overdue_build_order.html:16 +#: templates/js/translated/barcode.js:577 templates/js/translated/bom.js:632 +#: templates/js/translated/bom.js:769 templates/js/translated/bom.js:905 +#: templates/js/translated/build.js:1005 templates/js/translated/build.js:1488 +#: templates/js/translated/build.js:1919 templates/js/translated/build.js:2337 +#: templates/js/translated/build.js:2514 templates/js/translated/company.js:349 +#: templates/js/translated/company.js:1117 +#: templates/js/translated/company.js:1272 +#: templates/js/translated/company.js:1560 templates/js/translated/index.js:109 +#: templates/js/translated/part.js:1950 templates/js/translated/part.js:2022 +#: templates/js/translated/part.js:2330 templates/js/translated/pricing.js:369 +#: templates/js/translated/purchase_order.js:734 +#: templates/js/translated/purchase_order.js:1350 +#: templates/js/translated/purchase_order.js:1902 +#: templates/js/translated/purchase_order.js:2061 +#: templates/js/translated/return_order.js:538 +#: templates/js/translated/return_order.js:708 +#: templates/js/translated/sales_order.js:1199 +#: templates/js/translated/sales_order.js:1608 +#: templates/js/translated/sales_order.js:1813 +#: templates/js/translated/stock.js:682 templates/js/translated/stock.js:848 +#: templates/js/translated/stock.js:1065 templates/js/translated/stock.js:2083 +#: templates/js/translated/stock.js:2942 templates/js/translated/stock.js:3175 +#: templates/js/translated/stock.js:3320 +msgid "Part" +msgstr "Teil" + +#: build/api.py:662 build/models.py:88 build/templates/build/build_base.html:10 +#: build/templates/build/build_base.html:28 #: report/templates/report/inventree_build_order_report.html:105 -#: stock/serializers.py:84 templates/email/build_order_completed.html:16 +#: stock/serializers.py:85 templates/email/build_order_completed.html:16 #: templates/email/overdue_build_order.html:15 -#: templates/js/translated/build.js:1145 templates/js/translated/stock.js:2976 +#: templates/js/translated/build.js:1148 templates/js/translated/stock.js:2977 msgid "Build Order" msgstr "Bauauftrag" -#: build/models.py:87 build/templates/build/build_base.html:13 +#: build/models.py:89 build/templates/build/build_base.html:14 #: build/templates/build/index.html:8 build/templates/build/index.html:12 #: order/templates/order/sales_order_detail.html:111 #: order/templates/order/so_sidebar.html:13 @@ -836,268 +907,216 @@ msgstr "Bauauftrag" msgid "Build Orders" msgstr "Bauaufträge" -#: build/models.py:135 +#: build/models.py:136 msgid "Assembly BOM has not been validated" -msgstr "" +msgstr "Die Stückliste wurde noch nicht kontrolliert" -#: build/models.py:142 +#: build/models.py:143 msgid "Build order cannot be created for an inactive part" -msgstr "" +msgstr "Baureihenfolge kann nicht für ein inaktives Teil erstellt werden" -#: build/models.py:149 +#: build/models.py:150 msgid "Build order cannot be created for an unlocked part" -msgstr "" +msgstr "Baureihenfolge kann nicht für ein inaktives Teil erstellt werden" -#: build/models.py:163 +#: build/models.py:164 msgid "Invalid choice for parent build" msgstr "Ungültige Wahl für übergeordneten Bauauftrag" -#: build/models.py:174 order/models.py:239 +#: build/models.py:175 order/models.py:236 msgid "Responsible user or group must be specified" msgstr "Verantwortlicher Benutzer oder Gruppe muss angegeben werden" -#: build/models.py:180 +#: build/models.py:181 msgid "Build order part cannot be changed" msgstr "Teil in Bauauftrag kann nicht geändert werden" -#: build/models.py:241 +#: build/models.py:242 msgid "Build Order Reference" msgstr "Bauauftragsreferenz" -#: build/models.py:242 build/serializers.py:1287 order/models.py:467 -#: order/models.py:978 order/models.py:1373 order/models.py:2135 -#: part/admin.py:414 part/models.py:4280 part/templates/part/upload_bom.html:54 +#: build/models.py:243 build/serializers.py:1341 order/models.py:479 +#: order/models.py:1005 order/models.py:1390 order/models.py:2174 +#: part/admin.py:414 part/models.py:4337 part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_bill_of_materials_report.html:139 #: report/templates/report/inventree_purchase_order_report.html:28 #: report/templates/report/inventree_return_order_report.html:26 #: report/templates/report/inventree_sales_order_report.html:28 #: templates/js/translated/bom.js:770 templates/js/translated/bom.js:973 -#: templates/js/translated/build.js:1011 templates/js/translated/build.js:2685 +#: templates/js/translated/build.js:1014 templates/js/translated/build.js:2694 #: templates/js/translated/order.js:316 templates/js/translated/pricing.js:386 -#: templates/js/translated/purchase_order.js:2135 +#: templates/js/translated/purchase_order.js:2119 #: templates/js/translated/return_order.js:727 -#: templates/js/translated/sales_order.js:1854 +#: templates/js/translated/sales_order.js:1835 msgid "Reference" msgstr "Referenz" -#: build/models.py:253 +#: build/models.py:254 msgid "Brief description of the build (optional)" msgstr "Kurze Beschreibung des Baus (optional)" -#: build/models.py:262 +#: build/models.py:263 msgid "BuildOrder to which this build is allocated" msgstr "Bauauftrag, zu dem dieser Bauauftrag zugwiesen ist" -#: build/models.py:267 build/serializers.py:1278 -#: build/templates/build/build_base.html:105 -#: build/templates/build/detail.html:29 company/models.py:1046 order/api.py:767 -#: order/models.py:1503 order/models.py:1658 order/models.py:1659 -#: part/api.py:1509 part/api.py:1813 part/models.py:424 part/models.py:3126 -#: part/models.py:3270 part/models.py:3418 part/models.py:3439 -#: part/models.py:3461 part/models.py:3597 part/models.py:3937 -#: part/models.py:4100 part/models.py:4231 part/models.py:4592 -#: part/serializers.py:1192 part/serializers.py:1836 -#: part/templates/part/part_app_base.html:8 -#: part/templates/part/part_pricing.html:12 -#: part/templates/part/upload_bom.html:52 -#: report/templates/report/inventree_bill_of_materials_report.html:110 -#: report/templates/report/inventree_bill_of_materials_report.html:137 -#: report/templates/report/inventree_build_order_report.html:109 -#: report/templates/report/inventree_purchase_order_report.html:27 -#: report/templates/report/inventree_return_order_report.html:24 -#: report/templates/report/inventree_sales_order_report.html:27 -#: report/templates/report/inventree_stock_location_report.html:102 -#: stock/serializers.py:111 stock/serializers.py:159 stock/serializers.py:446 -#: stock/serializers.py:916 templates/InvenTree/search.html:82 -#: templates/email/build_order_completed.html:17 -#: templates/email/build_order_required_stock.html:17 -#: templates/email/low_stock_notification.html:15 -#: templates/email/overdue_build_order.html:16 -#: templates/js/translated/barcode.js:577 templates/js/translated/bom.js:632 -#: templates/js/translated/bom.js:769 templates/js/translated/bom.js:905 -#: templates/js/translated/build.js:1002 templates/js/translated/build.js:1485 -#: templates/js/translated/build.js:1916 templates/js/translated/build.js:2334 -#: templates/js/translated/build.js:2507 templates/js/translated/company.js:348 -#: templates/js/translated/company.js:1116 -#: templates/js/translated/company.js:1271 -#: templates/js/translated/company.js:1559 templates/js/translated/index.js:109 -#: templates/js/translated/part.js:1950 templates/js/translated/part.js:2022 -#: templates/js/translated/part.js:2330 templates/js/translated/pricing.js:369 -#: templates/js/translated/purchase_order.js:751 -#: templates/js/translated/purchase_order.js:1367 -#: templates/js/translated/purchase_order.js:1918 -#: templates/js/translated/purchase_order.js:2077 -#: templates/js/translated/return_order.js:538 -#: templates/js/translated/return_order.js:708 -#: templates/js/translated/sales_order.js:300 -#: templates/js/translated/sales_order.js:1233 -#: templates/js/translated/sales_order.js:1634 -#: templates/js/translated/sales_order.js:1832 -#: templates/js/translated/stock.js:682 templates/js/translated/stock.js:848 -#: templates/js/translated/stock.js:1065 templates/js/translated/stock.js:2082 -#: templates/js/translated/stock.js:2941 templates/js/translated/stock.js:3174 -#: templates/js/translated/stock.js:3319 -msgid "Part" -msgstr "Teil" - -#: build/models.py:275 +#: build/models.py:274 msgid "Select part to build" msgstr "Teil für den Bauauftrag wählen" -#: build/models.py:280 +#: build/models.py:279 msgid "Sales Order Reference" msgstr "Auftrag Referenz" -#: build/models.py:284 +#: build/models.py:283 msgid "SalesOrder to which this build is allocated" msgstr "Bestellung, die diesem Bauauftrag zugewiesen ist" -#: build/models.py:289 build/serializers.py:1048 -#: templates/js/translated/build.js:1904 -#: templates/js/translated/sales_order.js:1221 +#: build/models.py:288 build/serializers.py:1092 +#: templates/js/translated/build.js:1907 +#: templates/js/translated/sales_order.js:1187 msgid "Source Location" msgstr "Quell-Lagerort" -#: build/models.py:293 +#: build/models.py:292 msgid "Select location to take stock from for this build (leave blank to take from any stock location)" msgstr "Entnahme-Lagerort für diesen Bauauftrag wählen (oder leer lassen für einen beliebigen Lagerort)" -#: build/models.py:298 +#: build/models.py:297 msgid "Destination Location" msgstr "Ziel-Lagerort" -#: build/models.py:302 +#: build/models.py:301 msgid "Select location where the completed items will be stored" msgstr "Lagerort an dem fertige Objekte gelagert werden auswählen" -#: build/models.py:306 +#: build/models.py:305 msgid "Build Quantity" msgstr "Bau-Anzahl" -#: build/models.py:309 +#: build/models.py:308 msgid "Number of stock items to build" msgstr "Anzahl der zu bauenden Lagerartikel" -#: build/models.py:313 +#: build/models.py:312 msgid "Completed items" msgstr "Fertiggestellte Teile" -#: build/models.py:315 +#: build/models.py:314 msgid "Number of stock items which have been completed" msgstr "Anzahl der fertigen Lagerartikel" -#: build/models.py:319 +#: build/models.py:318 msgid "Build Status" msgstr "Bauauftrags-Status" -#: build/models.py:323 +#: build/models.py:322 msgid "Build status code" msgstr "Bau-Statuscode" -#: build/models.py:332 build/serializers.py:302 build/serializers.py:1198 -#: order/serializers.py:670 stock/models.py:859 stock/serializers.py:76 -#: stock/serializers.py:1562 templates/js/translated/purchase_order.js:1129 +#: build/models.py:331 build/serializers.py:349 build/serializers.py:1243 +#: order/serializers.py:755 stock/models.py:936 stock/serializers.py:77 +#: stock/serializers.py:1593 templates/js/translated/purchase_order.js:1112 #: templates/js/translated/stock.js:1199 msgid "Batch Code" msgstr "Losnummer" -#: build/models.py:336 build/serializers.py:303 +#: build/models.py:335 build/serializers.py:350 msgid "Batch code for this build output" msgstr "Losnummer für dieses Endprodukt" -#: build/models.py:339 order/models.py:315 order/serializers.py:126 -#: part/models.py:1229 part/templates/part/part_base.html:319 +#: build/models.py:338 order/models.py:322 order/serializers.py:157 +#: part/models.py:1290 part/templates/part/part_base.html:327 #: templates/js/translated/return_order.js:338 -#: templates/js/translated/sales_order.js:863 +#: templates/js/translated/sales_order.js:822 msgid "Creation Date" msgstr "Erstelldatum" -#: build/models.py:343 +#: build/models.py:342 msgid "Target completion date" msgstr "geplantes Fertigstellungsdatum" -#: build/models.py:344 +#: build/models.py:343 msgid "Target date for build completion. Build will be overdue after this date." msgstr "Zieldatum für Bauauftrag-Fertigstellung." -#: build/models.py:347 order/models.py:526 order/models.py:2180 -#: templates/js/translated/build.js:2419 +#: build/models.py:346 order/models.py:538 order/models.py:2219 +#: templates/js/translated/build.js:2422 msgid "Completion Date" msgstr "Fertigstellungsdatum" -#: build/models.py:353 +#: build/models.py:352 msgid "completed by" msgstr "Fertiggestellt von" -#: build/models.py:361 templates/js/translated/build.js:2379 +#: build/models.py:360 templates/js/translated/build.js:2382 msgid "Issued by" msgstr "Aufgegeben von" -#: build/models.py:362 +#: build/models.py:361 msgid "User who issued this build order" msgstr "Nutzer der diesen Bauauftrag erstellt hat" -#: build/models.py:370 build/templates/build/build_base.html:212 -#: build/templates/build/detail.html:122 common/models.py:165 order/api.py:142 -#: order/models.py:333 order/templates/order/order_base.html:222 -#: order/templates/order/return_order_base.html:191 -#: order/templates/order/sales_order_base.html:235 part/models.py:1246 -#: part/templates/part/part_base.html:399 +#: build/models.py:369 build/templates/build/build_base.html:213 +#: build/templates/build/detail.html:122 common/models.py:168 order/api.py:140 +#: order/models.py:340 order/templates/order/order_base.html:231 +#: order/templates/order/return_order_base.html:192 +#: order/templates/order/sales_order_base.html:236 part/models.py:1307 +#: part/templates/part/part_base.html:407 #: report/templates/report/inventree_build_order_report.html:158 #: templates/InvenTree/settings/settings_staff_js.html:150 -#: templates/js/translated/build.js:2391 -#: templates/js/translated/purchase_order.js:1833 +#: templates/js/translated/build.js:2394 +#: templates/js/translated/purchase_order.js:1817 #: templates/js/translated/return_order.js:358 #: templates/js/translated/table_filters.js:551 msgid "Responsible" msgstr "Verantwortlicher Benutzer" -#: build/models.py:371 +#: build/models.py:370 msgid "User or group responsible for this build order" msgstr "Benutzer oder Gruppe verantwortlich für diesen Bauauftrag" -#: build/models.py:376 build/templates/build/detail.html:108 +#: build/models.py:375 build/templates/build/detail.html:108 #: company/templates/company/manufacturer_part.html:107 -#: company/templates/company/supplier_part.html:194 -#: order/templates/order/order_base.html:172 -#: order/templates/order/return_order_base.html:148 -#: order/templates/order/sales_order_base.html:187 -#: part/templates/part/part_base.html:392 stock/models.py:855 -#: stock/templates/stock/item_base.html:200 -#: templates/js/translated/company.js:1019 +#: company/templates/company/supplier_part.html:195 +#: order/templates/order/order_base.html:181 +#: order/templates/order/return_order_base.html:149 +#: order/templates/order/sales_order_base.html:188 +#: part/templates/part/part_base.html:400 stock/models.py:932 +#: stock/templates/stock/item_base.html:197 +#: templates/js/translated/company.js:1020 msgid "External Link" msgstr "Externer Link" -#: build/models.py:377 common/models.py:3273 part/models.py:1058 -#: stock/models.py:855 +#: build/models.py:376 common/models.py:3334 part/models.py:1119 +#: stock/models.py:932 msgid "Link to external URL" msgstr "Link zu einer externen URL" -#: build/models.py:381 +#: build/models.py:380 msgid "Build Priority" msgstr "Bauauftrags-Priorität" -#: build/models.py:384 +#: build/models.py:383 msgid "Priority of this build order" msgstr "Priorität dieses Bauauftrags" -#: build/models.py:391 common/models.py:135 common/models.py:149 -#: order/admin.py:18 order/api.py:128 order/models.py:297 +#: build/models.py:390 common/models.py:138 common/models.py:152 +#: order/admin.py:18 order/api.py:126 order/models.py:304 #: templates/InvenTree/settings/settings_staff_js.html:146 -#: templates/js/translated/build.js:2316 -#: templates/js/translated/purchase_order.js:1780 +#: templates/js/translated/build.js:2319 +#: templates/js/translated/purchase_order.js:1764 #: templates/js/translated/return_order.js:317 -#: templates/js/translated/sales_order.js:842 +#: templates/js/translated/sales_order.js:801 #: templates/js/translated/table_filters.js:47 #: templates/project_code_data.html:6 msgid "Project Code" msgstr "Projektcode" -#: build/models.py:392 +#: build/models.py:391 msgid "Project code for this build order" msgstr "Projektcode für diesen Auftrag" -#: build/models.py:651 build/models.py:778 +#: build/models.py:651 build/models.py:779 msgid "Failed to offload task to complete build allocations" msgstr "Fehler beim Abladen der Aufgabe, um die Build-Allokation abzuschließen" @@ -1110,610 +1129,619 @@ msgstr "Bauauftrag {build} wurde fertiggestellt" msgid "A build order has been completed" msgstr "Ein Bauauftrag wurde fertiggestellt" -#: build/models.py:967 build/models.py:1055 +#: build/models.py:858 build/serializers.py:393 +msgid "Serial numbers must be provided for trackable parts" +msgstr "Seriennummern müssen für nachverfolgbare Teile angegeben werden" + +#: build/models.py:969 build/models.py:1058 msgid "No build output specified" msgstr "kein Endprodukt angegeben" -#: build/models.py:970 +#: build/models.py:972 msgid "Build output is already completed" msgstr "Endprodukt bereits hergstellt" -#: build/models.py:973 +#: build/models.py:975 msgid "Build output does not match Build Order" msgstr "Endprodukt stimmt nicht mit dem Bauauftrag überein" -#: build/models.py:1059 build/serializers.py:235 build/serializers.py:284 -#: build/serializers.py:915 order/models.py:564 order/serializers.py:499 -#: order/serializers.py:665 part/serializers.py:1569 part/serializers.py:1999 -#: stock/models.py:700 stock/models.py:1520 stock/serializers.py:669 +#: build/models.py:1062 build/serializers.py:282 build/serializers.py:331 +#: build/serializers.py:959 order/models.py:586 order/serializers.py:584 +#: order/serializers.py:750 part/serializers.py:1627 part/serializers.py:2060 +#: stock/models.py:777 stock/models.py:1609 stock/serializers.py:696 msgid "Quantity must be greater than zero" msgstr "Anzahl muss größer Null sein" -#: build/models.py:1064 build/serializers.py:240 +#: build/models.py:1067 build/serializers.py:287 msgid "Quantity cannot be greater than the output quantity" msgstr "Menge kann nicht größer als die Ausgangsmenge sein" -#: build/models.py:1124 build/serializers.py:563 +#: build/models.py:1127 build/serializers.py:607 #, python-brace-format msgid "Build output {serial} has not passed all required tests" msgstr "Build Ausgabe {serial} hat nicht alle erforderlichen Tests bestanden" -#: build/models.py:1465 +#: build/models.py:1482 msgid "Build Order Line Item" msgstr "" -#: build/models.py:1490 +#: build/models.py:1507 msgid "Build object" msgstr "Objekt bauen" -#: build/models.py:1504 build/models.py:1760 build/serializers.py:222 -#: build/serializers.py:269 build/serializers.py:1295 -#: build/templates/build/build_base.html:110 -#: build/templates/build/detail.html:34 common/models.py:2579 -#: order/models.py:1356 order/models.py:2041 order/serializers.py:1460 +#: build/models.py:1521 build/models.py:1787 build/serializers.py:269 +#: build/serializers.py:316 build/serializers.py:1349 +#: build/templates/build/build_base.html:111 +#: build/templates/build/detail.html:34 common/models.py:2643 +#: order/models.py:1373 order/models.py:2074 order/serializers.py:1586 #: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:413 -#: part/forms.py:48 part/models.py:3284 part/models.py:4253 -#: part/templates/part/part_pricing.html:16 +#: part/forms.py:48 part/models.py:3335 part/models.py:4310 +#: part/serializers.py:265 part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_bill_of_materials_report.html:138 #: report/templates/report/inventree_build_order_report.html:113 #: report/templates/report/inventree_purchase_order_report.html:29 #: report/templates/report/inventree_sales_order_report.html:29 +#: report/templates/report/inventree_sales_order_shipment_report.html:47 +#: report/templates/report/inventree_sales_order_shipment_report.html:49 #: report/templates/report/inventree_stock_location_report.html:104 #: report/templates/report/inventree_test_report.html:90 -#: report/templates/report/inventree_test_report.html:169 stock/admin.py:159 -#: stock/serializers.py:127 stock/serializers.py:167 stock/serializers.py:660 -#: stock/templates/stock/item_base.html:287 -#: stock/templates/stock/item_base.html:295 -#: stock/templates/stock/item_base.html:342 +#: report/templates/report/inventree_test_report.html:169 stock/admin.py:160 +#: stock/serializers.py:128 stock/serializers.py:168 stock/serializers.py:687 +#: stock/templates/stock/item_base.html:284 +#: stock/templates/stock/item_base.html:292 +#: stock/templates/stock/item_base.html:339 #: templates/email/build_order_completed.html:18 #: templates/js/translated/barcode.js:579 templates/js/translated/bom.js:771 -#: templates/js/translated/bom.js:981 templates/js/translated/build.js:522 -#: templates/js/translated/build.js:737 templates/js/translated/build.js:1542 -#: templates/js/translated/build.js:1919 templates/js/translated/build.js:2529 -#: templates/js/translated/company.js:1818 -#: templates/js/translated/model_renderers.js:237 +#: templates/js/translated/bom.js:981 templates/js/translated/build.js:525 +#: templates/js/translated/build.js:740 templates/js/translated/build.js:1545 +#: templates/js/translated/build.js:1922 templates/js/translated/build.js:2536 +#: templates/js/translated/company.js:1819 +#: templates/js/translated/model_renderers.js:240 #: templates/js/translated/order.js:329 templates/js/translated/part.js:968 -#: templates/js/translated/part.js:1818 templates/js/translated/part.js:3360 +#: templates/js/translated/part.js:1818 templates/js/translated/part.js:3376 #: templates/js/translated/pricing.js:381 #: templates/js/translated/pricing.js:474 #: templates/js/translated/pricing.js:522 #: templates/js/translated/pricing.js:616 -#: templates/js/translated/purchase_order.js:754 -#: templates/js/translated/purchase_order.js:1922 -#: templates/js/translated/purchase_order.js:2141 -#: templates/js/translated/sales_order.js:317 -#: templates/js/translated/sales_order.js:1235 -#: templates/js/translated/sales_order.js:1554 -#: templates/js/translated/sales_order.js:1644 -#: templates/js/translated/sales_order.js:1734 -#: templates/js/translated/sales_order.js:1860 +#: templates/js/translated/purchase_order.js:737 +#: templates/js/translated/purchase_order.js:1906 +#: templates/js/translated/purchase_order.js:2125 +#: templates/js/translated/sales_order.js:1201 +#: templates/js/translated/sales_order.js:1520 +#: templates/js/translated/sales_order.js:1625 +#: templates/js/translated/sales_order.js:1715 +#: templates/js/translated/sales_order.js:1841 #: templates/js/translated/stock.js:570 templates/js/translated/stock.js:708 -#: templates/js/translated/stock.js:879 templates/js/translated/stock.js:3105 -#: templates/js/translated/stock.js:3188 +#: templates/js/translated/stock.js:879 templates/js/translated/stock.js:3106 +#: templates/js/translated/stock.js:3189 msgid "Quantity" msgstr "Anzahl" -#: build/models.py:1505 +#: build/models.py:1522 msgid "Required quantity for build order" msgstr "Erforderliche Menge für Auftrag" -#: build/models.py:1585 +#: build/models.py:1602 msgid "Build item must specify a build output, as master part is marked as trackable" msgstr "Bauauftragsposition muss ein Endprodukt festlegen, da der übergeordnete Teil verfolgbar ist" -#: build/models.py:1594 +#: build/models.py:1611 #, python-brace-format msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgstr "Zugewiesene Menge ({q}) darf nicht verfügbare Menge ({a}) übersteigen" -#: build/models.py:1604 order/models.py:1992 +#: build/models.py:1628 order/models.py:2025 msgid "Stock item is over-allocated" msgstr "BestandObjekt ist zu oft zugewiesen" -#: build/models.py:1610 order/models.py:1995 +#: build/models.py:1634 order/models.py:2028 msgid "Allocation quantity must be greater than zero" msgstr "Reserviermenge muss größer null sein" -#: build/models.py:1616 +#: build/models.py:1640 msgid "Quantity must be 1 for serialized stock" msgstr "Anzahl muss 1 für Objekte mit Seriennummer sein" -#: build/models.py:1675 +#: build/models.py:1699 msgid "Selected stock item does not match BOM line" msgstr "Ausgewählter Lagerbestand stimmt nicht mit BOM-Linie überein" -#: build/models.py:1747 build/serializers.py:895 order/serializers.py:1297 -#: order/serializers.py:1318 stock/models.py:376 stock/serializers.py:93 -#: stock/serializers.py:763 stock/serializers.py:1281 stock/serializers.py:1393 -#: stock/templates/stock/item_base.html:10 -#: stock/templates/stock/item_base.html:23 -#: stock/templates/stock/item_base.html:194 -#: templates/js/translated/build.js:1918 -#: templates/js/translated/sales_order.js:301 -#: templates/js/translated/sales_order.js:1234 -#: templates/js/translated/sales_order.js:1535 -#: templates/js/translated/sales_order.js:1540 -#: templates/js/translated/sales_order.js:1641 -#: templates/js/translated/sales_order.js:1728 +#: build/models.py:1774 build/serializers.py:939 order/serializers.py:1423 +#: order/serializers.py:1444 +#: report/templates/report/inventree_sales_order_shipment_report.html:29 +#: stock/models.py:382 stock/serializers.py:94 stock/serializers.py:794 +#: stock/serializers.py:1312 stock/serializers.py:1424 +#: stock/templates/stock/item_base.html:11 +#: stock/templates/stock/item_base.html:24 +#: stock/templates/stock/item_base.html:191 +#: templates/js/translated/build.js:1921 +#: templates/js/translated/sales_order.js:1200 +#: templates/js/translated/sales_order.js:1501 +#: templates/js/translated/sales_order.js:1506 +#: templates/js/translated/sales_order.js:1622 +#: templates/js/translated/sales_order.js:1709 #: templates/js/translated/stock.js:683 templates/js/translated/stock.js:849 -#: templates/js/translated/stock.js:3061 +#: templates/js/translated/stock.js:3062 msgid "Stock Item" msgstr "Lagerartikel" -#: build/models.py:1748 +#: build/models.py:1775 msgid "Source stock item" msgstr "Quell-Lagerartikel" -#: build/models.py:1761 +#: build/models.py:1788 msgid "Stock quantity to allocate to build" msgstr "Anzahl an Lagerartikel dem Bauauftrag zuweisen" -#: build/models.py:1769 +#: build/models.py:1796 msgid "Install into" msgstr "Installiere in" -#: build/models.py:1770 +#: build/models.py:1797 msgid "Destination stock item" msgstr "Ziel-Lagerartikel" -#: build/serializers.py:91 +#: build/serializers.py:108 msgid "Build Level" msgstr "" -#: build/serializers.py:99 build/serializers.py:1190 build/serializers.py:1279 -#: part/admin.py:41 part/admin.py:408 part/models.py:4102 part/stocktake.py:219 -#: stock/admin.py:156 +#: build/serializers.py:116 build/serializers.py:1235 build/serializers.py:1331 +#: part/admin.py:41 part/admin.py:408 part/models.py:4160 part/stocktake.py:219 +#: stock/admin.py:157 msgid "Part Name" msgstr "Name des Teils" -#: build/serializers.py:111 +#: build/serializers.py:128 msgid "Project Code Label" msgstr "" -#: build/serializers.py:172 build/serializers.py:924 -#: templates/js/translated/build.js:1042 templates/js/translated/build.js:1495 +#: build/serializers.py:134 +msgid "Create Child Builds" +msgstr "" + +#: build/serializers.py:135 +msgid "Automatically generate child build orders" +msgstr "" + +#: build/serializers.py:219 build/serializers.py:968 +#: templates/js/translated/build.js:1045 templates/js/translated/build.js:1498 msgid "Build Output" msgstr "Endprodukt" -#: build/serializers.py:184 +#: build/serializers.py:231 msgid "Build output does not match the parent build" msgstr "Endprodukt stimmt nicht mit übergeordnetem Bauauftrag überein" -#: build/serializers.py:188 +#: build/serializers.py:235 msgid "Output part does not match BuildOrder part" msgstr "Endprodukt entspricht nicht dem Teil des Bauauftrags" -#: build/serializers.py:192 +#: build/serializers.py:239 msgid "This build output has already been completed" msgstr "Dieses Endprodukt wurde bereits fertiggestellt" -#: build/serializers.py:203 +#: build/serializers.py:250 msgid "This build output is not fully allocated" msgstr "Dieses Endprodukt ist nicht vollständig zugewiesen" -#: build/serializers.py:223 build/serializers.py:270 +#: build/serializers.py:270 build/serializers.py:317 msgid "Enter quantity for build output" msgstr "Menge der Endprodukte angeben" -#: build/serializers.py:291 +#: build/serializers.py:338 msgid "Integer quantity required for trackable parts" msgstr "Ganzzahl für verfolgbare Teile erforderlich" -#: build/serializers.py:294 +#: build/serializers.py:341 msgid "Integer quantity required, as the bill of materials contains trackable parts" msgstr "Ganzzahl erforderlich da die Stückliste nachverfolgbare Teile enthält" -#: build/serializers.py:309 order/serializers.py:678 order/serializers.py:1464 -#: stock/serializers.py:680 templates/js/translated/purchase_order.js:1154 +#: build/serializers.py:356 order/serializers.py:763 order/serializers.py:1590 +#: stock/serializers.py:707 templates/js/translated/purchase_order.js:1137 #: templates/js/translated/stock.js:373 templates/js/translated/stock.js:571 msgid "Serial Numbers" msgstr "Seriennummer" -#: build/serializers.py:310 +#: build/serializers.py:357 msgid "Enter serial numbers for build outputs" msgstr "Seriennummer für dieses Endprodukt eingeben" -#: build/serializers.py:315 build/serializers.py:456 build/serializers.py:528 -#: order/serializers.py:654 order/serializers.py:778 order/serializers.py:1781 -#: part/serializers.py:1212 stock/serializers.py:102 stock/serializers.py:691 -#: stock/serializers.py:851 stock/serializers.py:977 stock/serializers.py:1425 -#: stock/serializers.py:1681 stock/templates/stock/item_base.html:394 +#: build/serializers.py:362 build/serializers.py:500 build/serializers.py:572 +#: order/serializers.py:739 order/serializers.py:880 order/serializers.py:1933 +#: part/serializers.py:1265 stock/serializers.py:103 stock/serializers.py:718 +#: stock/serializers.py:882 stock/serializers.py:1008 stock/serializers.py:1456 +#: stock/serializers.py:1712 stock/templates/stock/item_base.html:391 #: templates/js/translated/barcode.js:578 -#: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1032 -#: templates/js/translated/build.js:1174 templates/js/translated/build.js:2544 -#: templates/js/translated/purchase_order.js:1210 -#: templates/js/translated/purchase_order.js:1320 -#: templates/js/translated/sales_order.js:1547 -#: templates/js/translated/sales_order.js:1655 -#: templates/js/translated/sales_order.js:1663 -#: templates/js/translated/sales_order.js:1742 +#: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1035 +#: templates/js/translated/build.js:1177 templates/js/translated/build.js:2551 +#: templates/js/translated/purchase_order.js:1193 +#: templates/js/translated/purchase_order.js:1303 +#: templates/js/translated/sales_order.js:1513 +#: templates/js/translated/sales_order.js:1636 +#: templates/js/translated/sales_order.js:1644 +#: templates/js/translated/sales_order.js:1723 #: templates/js/translated/stock.js:684 templates/js/translated/stock.js:850 -#: templates/js/translated/stock.js:1067 templates/js/translated/stock.js:2286 -#: templates/js/translated/stock.js:2955 +#: templates/js/translated/stock.js:1067 templates/js/translated/stock.js:2287 +#: templates/js/translated/stock.js:2956 msgid "Location" msgstr "Lagerort" -#: build/serializers.py:316 +#: build/serializers.py:363 msgid "Stock location for build output" msgstr "Lagerort für Bauprodukt" -#: build/serializers.py:330 +#: build/serializers.py:377 msgid "Auto Allocate Serial Numbers" msgstr "Seriennummern automatisch zuweisen" -#: build/serializers.py:331 +#: build/serializers.py:378 msgid "Automatically allocate required items with matching serial numbers" msgstr "Benötigte Lagerartikel automatisch mit passenden Seriennummern zuweisen" -#: build/serializers.py:346 -msgid "Serial numbers must be provided for trackable parts" -msgstr "Seriennummern müssen für nachverfolgbare Teile angegeben werden" - -#: build/serializers.py:371 stock/api.py:1031 +#: build/serializers.py:415 order/serializers.py:858 stock/api.py:1017 +#: stock/models.py:1632 msgid "The following serial numbers already exist or are invalid" msgstr "Die folgenden Seriennummern existieren bereits oder sind ungültig" -#: build/serializers.py:418 build/serializers.py:480 build/serializers.py:569 +#: build/serializers.py:462 build/serializers.py:524 build/serializers.py:613 msgid "A list of build outputs must be provided" msgstr "Eine Liste von Endprodukten muss angegeben werden" -#: build/serializers.py:457 +#: build/serializers.py:501 msgid "Stock location for scrapped outputs" msgstr "Lagerort für ausgemusterte Ausgänge" -#: build/serializers.py:463 +#: build/serializers.py:507 msgid "Discard Allocations" msgstr "Zuteilungen verwerfen" -#: build/serializers.py:464 +#: build/serializers.py:508 msgid "Discard any stock allocations for scrapped outputs" msgstr "Bestandszuteilung für ausgemusterte Endprodukte verwerfen" -#: build/serializers.py:469 +#: build/serializers.py:513 msgid "Reason for scrapping build output(s)" msgstr "Grund für das Verwerfen des Bauauftrages/der Bauaufträge" -#: build/serializers.py:529 +#: build/serializers.py:573 msgid "Location for completed build outputs" msgstr "Lagerort für fertige Endprodukte" -#: build/serializers.py:535 build/templates/build/build_base.html:159 -#: build/templates/build/detail.html:62 order/models.py:476 -#: order/models.py:1002 order/models.py:2159 order/serializers.py:686 -#: stock/admin.py:164 stock/serializers.py:1028 stock/serializers.py:1569 -#: stock/templates/stock/item_base.html:427 -#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2363 -#: templates/js/translated/purchase_order.js:1371 -#: templates/js/translated/purchase_order.js:1792 +#: build/serializers.py:579 build/templates/build/build_base.html:160 +#: build/templates/build/detail.html:62 order/models.py:488 +#: order/models.py:1029 order/models.py:2198 order/serializers.py:771 +#: stock/admin.py:165 stock/serializers.py:581 stock/serializers.py:1059 +#: stock/serializers.py:1600 stock/templates/stock/item_base.html:424 +#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2366 +#: templates/js/translated/purchase_order.js:1354 +#: templates/js/translated/purchase_order.js:1776 #: templates/js/translated/return_order.js:330 -#: templates/js/translated/sales_order.js:855 -#: templates/js/translated/stock.js:2261 templates/js/translated/stock.js:3079 -#: templates/js/translated/stock.js:3204 +#: templates/js/translated/sales_order.js:814 +#: templates/js/translated/stock.js:2262 templates/js/translated/stock.js:3080 +#: templates/js/translated/stock.js:3205 msgid "Status" msgstr "Status" -#: build/serializers.py:541 +#: build/serializers.py:585 msgid "Accept Incomplete Allocation" msgstr "Unvollständige Zuweisung akzeptieren" -#: build/serializers.py:542 +#: build/serializers.py:586 msgid "Complete outputs if stock has not been fully allocated" msgstr "Endprodukte fertigstellen, auch wenn Bestand nicht fertig zugewiesen wurde" -#: build/serializers.py:654 +#: build/serializers.py:698 msgid "Consume Allocated Stock" msgstr "Zugewiesen Bestand verbrauchen" -#: build/serializers.py:655 +#: build/serializers.py:699 msgid "Consume any stock which has already been allocated to this build" msgstr "Verbrauche alle Bestände, die diesem Bauauftrag bereits zugewiesen wurden" -#: build/serializers.py:661 +#: build/serializers.py:705 msgid "Remove Incomplete Outputs" msgstr "Unfertige Endprodukte entfernen" -#: build/serializers.py:662 +#: build/serializers.py:706 msgid "Delete any build outputs which have not been completed" msgstr "Lösche alle noch nicht abgeschlossenen Endprodukte" -#: build/serializers.py:689 +#: build/serializers.py:733 msgid "Not permitted" msgstr "Nicht erlaubt" -#: build/serializers.py:690 +#: build/serializers.py:734 msgid "Accept as consumed by this build order" msgstr "Als von diesem Bauauftrag verbraucht setzen" -#: build/serializers.py:691 +#: build/serializers.py:735 msgid "Deallocate before completing this build order" msgstr "Bestandszuordnung vor dem Abschluss dieses Bauauftrags freigeben" -#: build/serializers.py:721 +#: build/serializers.py:765 msgid "Overallocated Stock" msgstr "Überbelegter Lagerbestand" -#: build/serializers.py:723 +#: build/serializers.py:767 msgid "How do you want to handle extra stock items assigned to the build order" msgstr "Wie sollen zusätzliche Lagerbestandteile, die dem Bauauftrag zugewiesen wurden, behandelt werden" -#: build/serializers.py:733 +#: build/serializers.py:777 msgid "Some stock items have been overallocated" msgstr "Der Bestand einiger Lagerartikel ist überbelegt" -#: build/serializers.py:738 +#: build/serializers.py:782 msgid "Accept Unallocated" msgstr "Nicht zugewiesene akzeptieren" -#: build/serializers.py:739 +#: build/serializers.py:783 msgid "Accept that stock items have not been fully allocated to this build order" msgstr "Akzeptieren, dass Lagerartikel diesem Bauauftrag nicht vollständig zugewiesen wurden" -#: build/serializers.py:749 templates/js/translated/build.js:316 +#: build/serializers.py:793 templates/js/translated/build.js:319 msgid "Required stock has not been fully allocated" msgstr "Benötigter Bestand wurde nicht vollständig zugewiesen" -#: build/serializers.py:754 order/serializers.py:345 order/serializers.py:1365 +#: build/serializers.py:798 order/serializers.py:430 order/serializers.py:1491 msgid "Accept Incomplete" msgstr "Unvollständig Zuweisung akzeptieren" -#: build/serializers.py:755 +#: build/serializers.py:799 msgid "Accept that the required number of build outputs have not been completed" msgstr "Akzeptieren, dass die erforderliche Anzahl der Bauaufträge nicht abgeschlossen ist" -#: build/serializers.py:765 templates/js/translated/build.js:320 +#: build/serializers.py:809 templates/js/translated/build.js:323 msgid "Required build quantity has not been completed" msgstr "Benötigte Teil-Anzahl wurde noch nicht fertiggestellt" -#: build/serializers.py:774 +#: build/serializers.py:818 msgid "Build order has open child build orders" msgstr "" -#: build/serializers.py:777 +#: build/serializers.py:821 msgid "Build order must be in production state" msgstr "" -#: build/serializers.py:780 templates/js/translated/build.js:304 +#: build/serializers.py:824 templates/js/translated/build.js:307 msgid "Build order has incomplete outputs" msgstr "Bauauftrag hat unvollständige Aufbauten" -#: build/serializers.py:818 +#: build/serializers.py:862 msgid "Build Line" msgstr "Bauauftragsposition" -#: build/serializers.py:828 +#: build/serializers.py:872 msgid "Build output" msgstr "Endprodukt" -#: build/serializers.py:836 +#: build/serializers.py:880 msgid "Build output must point to the same build" msgstr "Endprodukt muss auf den gleichen Bauauftrag verweisen" -#: build/serializers.py:872 +#: build/serializers.py:916 msgid "Build Line Item" msgstr "Bauauftragspositionsartikel" -#: build/serializers.py:886 +#: build/serializers.py:930 msgid "bom_item.part must point to the same part as the build order" msgstr "bom_item.part muss auf dasselbe Teil verweisen wie der Bauauftrag" -#: build/serializers.py:901 stock/serializers.py:1294 +#: build/serializers.py:945 stock/serializers.py:1325 msgid "Item must be in stock" msgstr "Teil muss auf Lager sein" -#: build/serializers.py:949 order/serializers.py:1351 +#: build/serializers.py:993 order/serializers.py:1477 #, python-brace-format msgid "Available quantity ({q}) exceeded" msgstr "Verfügbare Menge ({q}) überschritten" -#: build/serializers.py:955 +#: build/serializers.py:999 msgid "Build output must be specified for allocation of tracked parts" msgstr "Für Zuweisung von verfolgten Teilen muss ein Endprodukt angegeben sein" -#: build/serializers.py:962 +#: build/serializers.py:1006 msgid "Build output cannot be specified for allocation of untracked parts" msgstr "Endprodukt kann bei Zuweisung nicht-verfolgter Teile nicht angegeben werden" -#: build/serializers.py:986 order/serializers.py:1610 +#: build/serializers.py:1030 order/serializers.py:1750 msgid "Allocation items must be provided" msgstr "Zuweisungen müssen angegeben werden" -#: build/serializers.py:1049 +#: build/serializers.py:1093 msgid "Stock location where parts are to be sourced (leave blank to take from any location)" msgstr "Lagerort, von dem Teile bezogen werden sollen (leer lassen, um sie von jedem Lagerort zu nehmen)" -#: build/serializers.py:1057 +#: build/serializers.py:1101 msgid "Exclude Location" msgstr "Lagerort ausschließen" -#: build/serializers.py:1058 +#: build/serializers.py:1102 msgid "Exclude stock items from this selected location" msgstr "Lagerartikel vom ausgewählten Ort ausschließen" -#: build/serializers.py:1063 +#: build/serializers.py:1107 msgid "Interchangeable Stock" msgstr "Wechselbares Lagerbestand" -#: build/serializers.py:1064 +#: build/serializers.py:1108 msgid "Stock items in multiple locations can be used interchangeably" msgstr "Lagerartikel an mehreren Standorten können austauschbar verwendet werden" -#: build/serializers.py:1069 +#: build/serializers.py:1113 msgid "Substitute Stock" msgstr "Ersatzbestand" -#: build/serializers.py:1070 +#: build/serializers.py:1114 msgid "Allow allocation of substitute parts" msgstr "Zuordnung von Ersatzteilen erlauben" -#: build/serializers.py:1075 +#: build/serializers.py:1119 msgid "Optional Items" msgstr "Optionale Positionen" -#: build/serializers.py:1076 +#: build/serializers.py:1120 msgid "Allocate optional BOM items to build order" msgstr "Optionale Stücklisten-Positionen dem Bauauftrag hinzufügen" -#: build/serializers.py:1098 +#: build/serializers.py:1143 msgid "Failed to start auto-allocation task" msgstr "Fehler beim Starten der automatischen Zuweisung" -#: build/serializers.py:1181 +#: build/serializers.py:1226 stock/serializers.py:585 msgid "Supplier Part Number" msgstr "" -#: build/serializers.py:1182 company/models.py:506 +#: build/serializers.py:1227 company/models.py:503 stock/serializers.py:591 msgid "Manufacturer Part Number" msgstr "Hersteller-Teilenummer" -#: build/serializers.py:1183 stock/admin.py:53 stock/admin.py:175 -#: stock/serializers.py:457 +#: build/serializers.py:1228 stock/admin.py:53 stock/admin.py:176 +#: stock/serializers.py:467 msgid "Location Name" msgstr "Ortsname" -#: build/serializers.py:1184 +#: build/serializers.py:1229 build/serializers.py:1327 msgid "Build Reference" msgstr "" -#: build/serializers.py:1185 +#: build/serializers.py:1230 msgid "BOM Reference" msgstr "" -#: build/serializers.py:1186 company/models.py:852 -#: company/templates/company/supplier_part.html:160 order/serializers.py:690 -#: stock/admin.py:228 stock/models.py:818 stock/serializers.py:1579 -#: stock/templates/stock/item_base.html:240 -#: templates/js/translated/company.js:1646 -#: templates/js/translated/purchase_order.js:1169 -#: templates/js/translated/purchase_order.js:1332 +#: build/serializers.py:1231 company/models.py:849 +#: company/templates/company/supplier_part.html:161 order/serializers.py:775 +#: stock/admin.py:229 stock/models.py:895 stock/serializers.py:1610 +#: stock/templates/stock/item_base.html:237 +#: templates/js/translated/company.js:1647 +#: templates/js/translated/purchase_order.js:1152 +#: templates/js/translated/purchase_order.js:1315 #: templates/js/translated/stock.js:1214 templates/js/translated/stock.js:1246 -#: templates/js/translated/stock.js:2509 +#: templates/js/translated/stock.js:2510 msgid "Packaging" msgstr "Verpackungen" -#: build/serializers.py:1189 part/admin.py:39 part/admin.py:398 -#: part/models.py:4101 part/stocktake.py:218 stock/admin.py:152 +#: build/serializers.py:1234 part/admin.py:39 part/admin.py:398 +#: part/models.py:4159 part/stocktake.py:218 stock/admin.py:153 msgid "Part ID" msgstr "Teil-ID" -#: build/serializers.py:1191 build/serializers.py:1280 part/admin.py:402 -#: part/models.py:4103 +#: build/serializers.py:1236 build/serializers.py:1332 part/admin.py:402 +#: part/models.py:4161 msgid "Part IPN" msgstr "Teil IPN" -#: build/serializers.py:1192 build/serializers.py:1282 part/admin.py:45 +#: build/serializers.py:1237 build/serializers.py:1334 part/admin.py:45 #: part/stocktake.py:220 msgid "Part Description" msgstr "Beschreibung des Teils" -#: build/serializers.py:1195 +#: build/serializers.py:1240 msgid "BOM Part ID" msgstr "" -#: build/serializers.py:1196 +#: build/serializers.py:1241 msgid "BOM Part Name" msgstr "" -#: build/serializers.py:1199 +#: build/serializers.py:1244 #: report/templates/report/inventree_return_order_report.html:25 -#: report/templates/report/inventree_test_report.html:88 stock/models.py:845 -#: stock/serializers.py:151 stock/templates/stock/item_base.html:311 -#: templates/js/translated/build.js:520 templates/js/translated/build.js:1540 -#: templates/js/translated/build.js:2527 -#: templates/js/translated/model_renderers.js:231 +#: report/templates/report/inventree_sales_order_shipment_report.html:45 +#: report/templates/report/inventree_test_report.html:88 stock/models.py:922 +#: stock/serializers.py:152 stock/templates/stock/item_base.html:308 +#: templates/js/translated/build.js:523 templates/js/translated/build.js:1543 +#: templates/js/translated/build.js:2534 +#: templates/js/translated/model_renderers.js:234 #: templates/js/translated/return_order.js:539 #: templates/js/translated/return_order.js:722 -#: templates/js/translated/sales_order.js:315 -#: templates/js/translated/sales_order.js:1647 -#: templates/js/translated/sales_order.js:1732 +#: templates/js/translated/sales_order.js:1628 +#: templates/js/translated/sales_order.js:1713 #: templates/js/translated/stock.js:602 msgid "Serial Number" msgstr "Seriennummer" -#: build/serializers.py:1212 stock/serializers.py:593 -#: templates/js/translated/build.js:1017 templates/js/translated/build.js:1164 -#: templates/js/translated/build.js:2516 +#: build/serializers.py:1257 stock/serializers.py:620 +#: templates/js/translated/build.js:1020 templates/js/translated/build.js:1167 +#: templates/js/translated/build.js:2523 msgid "Allocated Quantity" msgstr "Zugewiesene Menge" -#: build/serializers.py:1213 stock/templates/stock/item_base.html:340 +#: build/serializers.py:1258 stock/templates/stock/item_base.html:337 msgid "Available Quantity" msgstr "Verfügbare Menge" -#: build/serializers.py:1283 +#: build/serializers.py:1335 msgid "Part Category ID" msgstr "" -#: build/serializers.py:1284 +#: build/serializers.py:1336 msgid "Part Category Name" msgstr "" -#: build/serializers.py:1291 common/models.py:1513 part/admin.py:113 -#: part/models.py:1166 templates/js/translated/table_filters.js:150 +#: build/serializers.py:1345 common/models.py:1582 part/admin.py:113 +#: part/models.py:1227 templates/js/translated/build.js:2738 +#: templates/js/translated/table_filters.js:150 #: templates/js/translated/table_filters.js:230 #: templates/js/translated/table_filters.js:783 msgid "Trackable" msgstr "Nachverfolgbar" -#: build/serializers.py:1292 +#: build/serializers.py:1346 msgid "Inherited" msgstr "Vererbt" -#: build/serializers.py:1293 part/models.py:4313 +#: build/serializers.py:1347 part/models.py:4370 #: part/templates/part/upload_bom.html:56 templates/js/translated/bom.js:1046 -#: templates/js/translated/build.js:2711 +#: templates/js/translated/build.js:2720 msgid "Allow Variants" msgstr "Varianten zulassen" -#: build/serializers.py:1297 part/models.py:4110 part/models.py:4584 +#: build/serializers.py:1351 part/models.py:4168 part/models.py:4646 #: stock/api.py:794 msgid "BOM Item" msgstr "Stücklisten-Position" -#: build/serializers.py:1306 build/templates/build/detail.html:236 +#: build/serializers.py:1370 build/templates/build/detail.html:236 #: build/templates/build/sidebar.html:16 templates/js/translated/index.js:130 msgid "Allocated Stock" msgstr "Zugewiesener Bestand" -#: build/serializers.py:1311 order/serializers.py:1175 part/admin.py:132 -#: part/bom.py:181 part/serializers.py:899 part/serializers.py:1602 -#: part/templates/part/part_base.html:210 templates/js/translated/bom.js:1208 -#: templates/js/translated/build.js:2804 templates/js/translated/part.js:712 +#: build/serializers.py:1375 order/serializers.py:1209 part/admin.py:132 +#: part/bom.py:186 part/serializers.py:951 part/serializers.py:1660 +#: part/templates/part/part_base.html:211 templates/js/translated/bom.js:1208 +#: templates/js/translated/build.js:2822 templates/js/translated/part.js:712 #: templates/js/translated/part.js:2155 #: templates/js/translated/table_filters.js:177 msgid "On Order" msgstr "Bestellt" -#: build/serializers.py:1316 order/serializers.py:1176 part/serializers.py:1604 -#: templates/js/translated/build.js:2808 +#: build/serializers.py:1380 order/serializers.py:1210 part/serializers.py:1662 +#: templates/js/translated/build.js:2826 #: templates/js/translated/table_filters.js:367 msgid "In Production" msgstr "In Produktion" -#: build/serializers.py:1321 part/bom.py:180 part/serializers.py:1629 -#: part/templates/part/part_base.html:192 -#: templates/js/translated/sales_order.js:1929 -msgid "Available Stock" -msgstr "Verfügbarer Bestand" - -#: build/serializers.py:1325 -msgid "Available Substitute Stock" -msgstr "Verfügbares Ersatzmaterial" - -#: build/serializers.py:1326 -msgid "Available Variant Stock" -msgstr "" - -#: build/serializers.py:1327 -msgid "Total Available Stock" -msgstr "" - -#: build/serializers.py:1328 part/serializers.py:906 +#: build/serializers.py:1384 part/serializers.py:958 msgid "External Stock" msgstr "Externes Lager" -#: build/status_codes.py:11 generic/states/tests.py:17 order/status_codes.py:12 -#: order/status_codes.py:42 order/status_codes.py:74 order/status_codes.py:98 +#: build/serializers.py:1385 part/bom.py:185 part/serializers.py:1687 +#: part/templates/part/part_base.html:193 +#: templates/js/translated/sales_order.js:1910 +msgid "Available Stock" +msgstr "Verfügbarer Bestand" + +#: build/serializers.py:1386 +msgid "Available Substitute Stock" +msgstr "Verfügbares Ersatzmaterial" + +#: build/serializers.py:1387 +msgid "Available Variant Stock" +msgstr "" + +#: build/status_codes.py:11 generic/states/tests.py:21 +#: generic/states/tests.py:131 order/status_codes.py:12 +#: order/status_codes.py:44 order/status_codes.py:76 order/status_codes.py:102 #: templates/js/translated/table_filters.js:601 msgid "Pending" msgstr "Ausstehend" @@ -1722,21 +1750,21 @@ msgstr "Ausstehend" msgid "Production" msgstr "in Arbeit" -#: build/status_codes.py:13 order/status_codes.py:14 order/status_codes.py:49 -#: order/status_codes.py:79 +#: build/status_codes.py:13 order/status_codes.py:14 order/status_codes.py:51 +#: order/status_codes.py:81 msgid "On Hold" msgstr "" -#: build/status_codes.py:14 order/status_codes.py:16 order/status_codes.py:51 -#: order/status_codes.py:82 +#: build/status_codes.py:14 order/status_codes.py:16 order/status_codes.py:53 +#: order/status_codes.py:84 msgid "Cancelled" msgstr "Storniert" -#: build/status_codes.py:15 generic/states/tests.py:19 importer/models.py:509 -#: importer/status_codes.py:19 order/status_codes.py:15 -#: order/status_codes.py:50 order/status_codes.py:81 -#: order/templates/order/order_base.html:163 -#: order/templates/order/sales_order_base.html:168 report/models.py:443 +#: build/status_codes.py:15 generic/states/tests.py:23 importer/models.py:518 +#: importer/status_codes.py:27 order/status_codes.py:15 +#: order/status_codes.py:52 order/status_codes.py:83 +#: order/templates/order/order_base.html:172 +#: order/templates/order/sales_order_base.html:169 report/models.py:451 msgid "Complete" msgstr "Fertig" @@ -1744,165 +1772,162 @@ msgstr "Fertig" msgid "Stock required for build order" msgstr "Bestand für Bauauftrag erforderlich" -#: build/tasks.py:201 +#: build/tasks.py:260 msgid "Overdue Build Order" msgstr "Überfälliger Bauauftrag" -#: build/tasks.py:206 +#: build/tasks.py:265 #, python-brace-format msgid "Build order {bo} is now overdue" msgstr "Bauauftrag {bo} ist jetzt überfällig" -#: build/templates/build/build_base.html:18 +#: build/templates/build/build_base.html:19 msgid "Part thumbnail" msgstr "Miniaturansicht" -#: build/templates/build/build_base.html:38 -#: company/templates/company/supplier_part.html:35 -#: order/templates/order/order_base.html:29 -#: order/templates/order/return_order_base.html:38 -#: order/templates/order/sales_order_base.html:38 -#: part/templates/part/part_base.html:41 -#: stock/templates/stock/item_base.html:40 -#: stock/templates/stock/location.html:52 +#: build/templates/build/build_base.html:39 +#: company/templates/company/supplier_part.html:36 +#: order/templates/order/order_base.html:30 +#: order/templates/order/return_order_base.html:39 +#: order/templates/order/sales_order_base.html:39 +#: part/templates/part/part_base.html:42 +#: stock/templates/stock/item_base.html:41 +#: stock/templates/stock/location.html:53 #: templates/js/translated/filters.js:338 msgid "Barcode actions" msgstr "Barcode Aktionen" -#: build/templates/build/build_base.html:42 -#: company/templates/company/supplier_part.html:39 -#: order/templates/order/order_base.html:33 -#: order/templates/order/return_order_base.html:42 -#: order/templates/order/sales_order_base.html:42 -#: part/templates/part/part_base.html:44 -#: stock/templates/stock/item_base.html:44 -#: stock/templates/stock/location.html:54 templates/qr_button.html:1 +#: build/templates/build/build_base.html:43 +#: company/templates/company/supplier_part.html:40 +#: order/templates/order/order_base.html:34 +#: order/templates/order/return_order_base.html:43 +#: order/templates/order/sales_order_base.html:43 +#: part/templates/part/part_base.html:45 +#: stock/templates/stock/item_base.html:45 +#: stock/templates/stock/location.html:55 templates/qr_button.html:1 msgid "Show QR Code" msgstr "QR-Code anzeigen" -#: build/templates/build/build_base.html:45 -#: company/templates/company/supplier_part.html:41 -#: order/templates/order/order_base.html:36 -#: order/templates/order/return_order_base.html:45 -#: order/templates/order/sales_order_base.html:45 -#: part/templates/part/part_base.html:47 -#: stock/templates/stock/item_base.html:47 -#: stock/templates/stock/location.html:56 +#: build/templates/build/build_base.html:46 +#: company/templates/company/supplier_part.html:42 +#: order/templates/order/order_base.html:37 +#: order/templates/order/return_order_base.html:46 +#: order/templates/order/sales_order_base.html:46 +#: part/templates/part/part_base.html:48 +#: stock/templates/stock/item_base.html:48 +#: stock/templates/stock/location.html:57 #: templates/js/translated/barcode.js:527 #: templates/js/translated/barcode.js:532 msgid "Unlink Barcode" msgstr "Barcode abhängen" -#: build/templates/build/build_base.html:47 -#: company/templates/company/supplier_part.html:43 -#: order/templates/order/order_base.html:38 -#: order/templates/order/return_order_base.html:47 -#: order/templates/order/sales_order_base.html:47 -#: part/templates/part/part_base.html:49 -#: stock/templates/stock/item_base.html:49 -#: stock/templates/stock/location.html:58 +#: build/templates/build/build_base.html:48 +#: company/templates/company/supplier_part.html:44 +#: order/templates/order/order_base.html:39 +#: order/templates/order/return_order_base.html:48 +#: order/templates/order/sales_order_base.html:48 +#: part/templates/part/part_base.html:50 +#: stock/templates/stock/item_base.html:50 +#: stock/templates/stock/location.html:59 msgid "Link Barcode" msgstr "Barcode anhängen" -#: build/templates/build/build_base.html:56 -#: order/templates/order/order_base.html:46 -#: order/templates/order/return_order_base.html:55 -#: order/templates/order/sales_order_base.html:55 +#: build/templates/build/build_base.html:57 +#: order/templates/order/order_base.html:47 +#: order/templates/order/return_order_base.html:56 +#: order/templates/order/sales_order_base.html:56 msgid "Print actions" msgstr "Aktionen drucken" -#: build/templates/build/build_base.html:60 +#: build/templates/build/build_base.html:61 msgid "Print build order report" msgstr "Bauauftragsbericht drucken" -#: build/templates/build/build_base.html:67 +#: build/templates/build/build_base.html:68 msgid "Build actions" msgstr "Bau-Auftrag Aktionen" -#: build/templates/build/build_base.html:71 +#: build/templates/build/build_base.html:72 msgid "Edit Build" msgstr "Bauauftrag bearbeiten" -#: build/templates/build/build_base.html:73 +#: build/templates/build/build_base.html:74 msgid "Duplicate Build" msgstr "Bauauftrag duplizieren" -#: build/templates/build/build_base.html:76 +#: build/templates/build/build_base.html:77 msgid "Hold Build" msgstr "" -#: build/templates/build/build_base.html:79 +#: build/templates/build/build_base.html:80 msgid "Cancel Build" msgstr "Bauauftrag abbrechen" -#: build/templates/build/build_base.html:82 +#: build/templates/build/build_base.html:83 msgid "Delete Build" msgstr "Bauauftrag löschen" -#: build/templates/build/build_base.html:87 -msgid "Isueue Build" -msgstr "" - #: build/templates/build/build_base.html:88 +#: build/templates/build/build_base.html:89 msgid "Issue Build" msgstr "" -#: build/templates/build/build_base.html:91 #: build/templates/build/build_base.html:92 +#: build/templates/build/build_base.html:93 msgid "Complete Build" msgstr "Bauauftrag fertigstellen" -#: build/templates/build/build_base.html:115 +#: build/templates/build/build_base.html:116 msgid "Build Description" msgstr "Baubeschreibung" -#: build/templates/build/build_base.html:125 +#: build/templates/build/build_base.html:126 msgid "No build outputs have been created for this build order" msgstr "Es wurden keine Endprodukte für diesen Bauauftrag erstellt" -#: build/templates/build/build_base.html:132 +#: build/templates/build/build_base.html:133 msgid "Build Order is ready to mark as completed" msgstr "Bauauftrag ist bereit abgeschlossen zu werden" -#: build/templates/build/build_base.html:137 +#: build/templates/build/build_base.html:138 msgid "Build Order cannot be completed as outstanding outputs remain" msgstr "Bauauftrag kann nicht abgeschlossen werden, da es noch ausstehende Endprodukte gibt" -#: build/templates/build/build_base.html:142 +#: build/templates/build/build_base.html:143 msgid "Required build quantity has not yet been completed" msgstr "Benötigte Teil-Anzahl wurde noch nicht fertiggestellt" -#: build/templates/build/build_base.html:147 +#: build/templates/build/build_base.html:148 msgid "Stock has not been fully allocated to this Build Order" msgstr "Bestand wurde Bauauftrag noch nicht vollständig zugewiesen" -#: build/templates/build/build_base.html:168 -#: build/templates/build/detail.html:138 order/models.py:308 -#: order/models.py:1391 order/serializers.py:174 -#: order/templates/order/order_base.html:191 -#: order/templates/order/return_order_base.html:167 -#: order/templates/order/sales_order_base.html:199 +#: build/templates/build/build_base.html:169 +#: build/templates/build/detail.html:138 order/models.py:315 +#: order/models.py:1408 order/serializers.py:254 +#: order/templates/order/order_base.html:200 +#: order/templates/order/return_order_base.html:168 +#: order/templates/order/sales_order_base.html:200 #: report/templates/report/inventree_build_order_report.html:125 -#: templates/js/translated/build.js:2411 templates/js/translated/part.js:1837 -#: templates/js/translated/purchase_order.js:1809 -#: templates/js/translated/purchase_order.js:2217 +#: templates/js/translated/build.js:2414 templates/js/translated/part.js:1837 +#: templates/js/translated/purchase_order.js:1793 +#: templates/js/translated/purchase_order.js:2201 #: templates/js/translated/return_order.js:346 #: templates/js/translated/return_order.js:749 -#: templates/js/translated/sales_order.js:871 -#: templates/js/translated/sales_order.js:1903 +#: templates/js/translated/sales_order.js:830 +#: templates/js/translated/sales_order.js:1884 msgid "Target Date" msgstr "Zieldatum" -#: build/templates/build/build_base.html:173 +#: build/templates/build/build_base.html:174 #, python-format msgid "This build was due on %(target)s" msgstr "Bauauftrag war fällig am %(target)s" -#: build/templates/build/build_base.html:173 -#: build/templates/build/build_base.html:230 -#: order/templates/order/order_base.html:127 -#: order/templates/order/return_order_base.html:120 -#: order/templates/order/sales_order_base.html:129 +#: build/templates/build/build_base.html:174 +#: build/templates/build/build_base.html:231 +#: order/templates/order/order_base.html:128 +#: order/templates/order/return_order_base.html:121 +#: order/templates/order/sales_order_base.html:130 #: templates/js/translated/table_filters.js:97 #: templates/js/translated/table_filters.js:545 #: templates/js/translated/table_filters.js:629 @@ -1910,49 +1935,50 @@ msgstr "Bauauftrag war fällig am %(target)s" msgid "Overdue" msgstr "Überfällig" -#: build/templates/build/build_base.html:185 +#: build/templates/build/build_base.html:186 #: build/templates/build/detail.html:67 build/templates/build/sidebar.html:13 msgid "Completed Outputs" msgstr "Fertiggestellte Endprodukte" -#: build/templates/build/build_base.html:198 -#: build/templates/build/detail.html:101 order/api.py:1406 order/models.py:892 -#: order/models.py:1650 order/models.py:1765 order/models.py:1924 -#: order/templates/order/sales_order_base.html:9 -#: order/templates/order/sales_order_base.html:28 +#: build/templates/build/build_base.html:199 +#: build/templates/build/detail.html:101 order/api.py:1528 order/models.py:914 +#: order/models.py:1666 order/models.py:1794 order/models.py:1957 +#: order/templates/order/sales_order_base.html:10 +#: order/templates/order/sales_order_base.html:29 #: report/templates/report/inventree_build_order_report.html:135 #: report/templates/report/inventree_sales_order_report.html:14 -#: stock/templates/stock/item_base.html:369 +#: report/templates/report/inventree_sales_order_shipment_report.html:15 +#: stock/templates/stock/item_base.html:366 #: templates/email/overdue_sales_order.html:15 -#: templates/js/translated/pricing.js:929 -#: templates/js/translated/sales_order.js:805 -#: templates/js/translated/sales_order.js:1028 -#: templates/js/translated/stock.js:3008 +#: templates/js/translated/pricing.js:927 +#: templates/js/translated/sales_order.js:764 +#: templates/js/translated/sales_order.js:1001 +#: templates/js/translated/stock.js:3009 msgid "Sales Order" msgstr "Auftrag" -#: build/templates/build/build_base.html:219 -#: build/templates/build/detail.html:94 templates/js/translated/build.js:2328 +#: build/templates/build/build_base.html:220 +#: build/templates/build/detail.html:94 templates/js/translated/build.js:2331 msgid "Priority" msgstr "Priorität" -#: build/templates/build/build_base.html:267 +#: build/templates/build/build_base.html:268 msgid "Issue Build Order" msgstr "" -#: build/templates/build/build_base.html:271 +#: build/templates/build/build_base.html:272 msgid "Issue this Build Order?" msgstr "" -#: build/templates/build/build_base.html:302 +#: build/templates/build/build_base.html:303 msgid "Delete Build Order" msgstr "Bauauftrag löschen" -#: build/templates/build/build_base.html:312 +#: build/templates/build/build_base.html:313 msgid "Build Order QR Code" msgstr "Bauftrags-QR-Code" -#: build/templates/build/build_base.html:324 +#: build/templates/build/build_base.html:325 msgid "Link Barcode to Build Order" msgstr "Barcode mit Bauauftrag verknüpfen" @@ -1968,8 +1994,9 @@ msgstr "Ausgangs-Lager" msgid "Stock can be taken from any available location." msgstr "Bestand kann jedem verfügbaren Lagerort entnommen werden." -#: build/templates/build/detail.html:49 order/models.py:1532 -#: templates/js/translated/purchase_order.js:2259 +#: build/templates/build/detail.html:49 order/models.py:548 +#: order/models.py:1548 order/templates/order/order_base.html:135 +#: templates/js/translated/purchase_order.js:2243 msgid "Destination" msgstr "Ziel-Lager" @@ -1981,23 +2008,24 @@ msgstr "Ziel-Lagerort nicht angegeben" msgid "Allocated Parts" msgstr "Zugewiesene Teile" -#: build/templates/build/detail.html:80 stock/admin.py:162 -#: stock/templates/stock/item_base.html:162 -#: templates/js/translated/build.js:1553 -#: templates/js/translated/model_renderers.js:242 -#: templates/js/translated/purchase_order.js:1326 +#: build/templates/build/detail.html:80 +#: report/templates/report/inventree_sales_order_shipment_report.html:47 +#: stock/admin.py:163 stock/templates/stock/item_base.html:159 +#: templates/js/translated/build.js:1556 +#: templates/js/translated/model_renderers.js:245 +#: templates/js/translated/purchase_order.js:1309 #: templates/js/translated/stock.js:1139 templates/js/translated/stock.js:1240 -#: templates/js/translated/stock.js:2275 templates/js/translated/stock.js:3211 +#: templates/js/translated/stock.js:2276 templates/js/translated/stock.js:3212 #: templates/js/translated/table_filters.js:320 #: templates/js/translated/table_filters.js:411 msgid "Batch" msgstr "Losnummer" #: build/templates/build/detail.html:133 -#: order/templates/order/order_base.html:178 -#: order/templates/order/return_order_base.html:154 -#: order/templates/order/sales_order_base.html:193 -#: templates/js/translated/build.js:2371 +#: order/templates/order/order_base.html:187 +#: order/templates/order/return_order_base.html:155 +#: order/templates/order/sales_order_base.html:194 +#: templates/js/translated/build.js:2374 msgid "Created" msgstr "Erstellt" @@ -2005,8 +2033,8 @@ msgstr "Erstellt" msgid "No target date set" msgstr "Kein Ziel-Datum gesetzt" -#: build/templates/build/detail.html:149 -#: order/templates/order/sales_order_base.html:209 +#: build/templates/build/detail.html:149 order/api.py:794 +#: order/templates/order/sales_order_base.html:210 #: templates/js/translated/table_filters.js:692 msgid "Completed" msgstr "Fertig" @@ -2052,7 +2080,7 @@ msgid "Order required parts" msgstr "Benötigte Teile bestellen" #: build/templates/build/detail.html:192 -#: templates/js/translated/purchase_order.js:795 +#: templates/js/translated/purchase_order.js:778 msgid "Order Parts" msgstr "Teile bestellen" @@ -2120,7 +2148,7 @@ msgstr "Neuer Bauauftrag" msgid "Build Order Details" msgstr "Bauauftragdetails" -#: build/templates/build/sidebar.html:8 order/serializers.py:82 +#: build/templates/build/sidebar.html:8 order/serializers.py:113 #: order/templates/order/po_sidebar.html:5 #: order/templates/order/return_order_detail.html:18 #: order/templates/order/so_sidebar.html:5 @@ -2139,43 +2167,38 @@ msgstr "Unfertige Endprodukte" msgid "Test Statistics" msgstr "" -#: common/api.py:693 +#: common/api.py:725 msgid "Is Link" msgstr "Link" -#: common/api.py:701 +#: common/api.py:733 msgid "Is File" msgstr "Datei" -#: common/api.py:744 +#: common/api.py:776 msgid "User does not have permission to delete these attachments" msgstr "" -#: common/api.py:761 +#: common/api.py:793 msgid "User does not have permission to delete this attachment" msgstr "Benutzer hat keine Berechtigung zum Löschen des Anhangs" -#: common/currency.py:132 +#: common/currency.py:134 msgid "Invalid currency code" msgstr "Ungültiges Währungskürzel" -#: common/currency.py:134 +#: common/currency.py:136 msgid "Duplicate currency code" msgstr "Doppeltes Währungskürzel" -#: common/currency.py:139 +#: common/currency.py:141 msgid "No valid currency codes provided" msgstr "" -#: common/currency.py:156 +#: common/currency.py:158 msgid "No plugin" msgstr "Kein Plugin" -#: common/files.py:63 -#, python-brace-format -msgid "Unsupported file format: {fmt}" -msgstr "Nicht unterstütztes Dateiformat: {fmt}" - #: common/files.py:65 msgid "Error reading file (invalid encoding)" msgstr "Fehler beim Lesen der Datei (ungültige Kodierung)" @@ -2192,1883 +2215,2039 @@ msgstr "Fehler beim Lesen der Datei (falsche Größe)" msgid "Error reading file (data could be corrupted)" msgstr "Fehler beim Lesen der Datei (Daten könnten beschädigt sein)" -#: common/forms.py:12 +#: common/forms.py:12 common/forms.py:25 msgid "File" msgstr "Datei" -#: common/forms.py:12 +#: common/forms.py:12 common/forms.py:26 msgid "Select file to upload" msgstr "Datei zum Hochladen auswählen" -#: common/forms.py:25 -msgid "{name.title()} File" -msgstr "{name.title()} Datei" - -#: common/forms.py:26 -#, python-brace-format -msgid "Select {name} file to upload" -msgstr "{name} Datei zum Hochladen auswählen" - -#: common/models.py:86 +#: common/models.py:89 msgid "Updated" msgstr "Aktualisiert" -#: common/models.py:87 +#: common/models.py:90 msgid "Timestamp of last update" msgstr "Zeitstempel der letzten Aktualisierung" -#: common/models.py:120 +#: common/models.py:123 msgid "Site URL is locked by configuration" msgstr "Seiten-URL ist durch die Konfiguration gesperrt" -#: common/models.py:150 +#: common/models.py:153 msgid "Unique project code" msgstr "Eindeutiger Projektcode" -#: common/models.py:157 +#: common/models.py:160 msgid "Project description" msgstr "Projektbeschreibung" -#: common/models.py:166 +#: common/models.py:169 msgid "User or group responsible for this project" msgstr "Benutzer oder Gruppe verantwortlich für dieses Projekt" -#: common/models.py:783 -msgid "Settings key (must be unique - case insensitive)" -msgstr "Einstellungs-Schlüssel (muss einzigartig sein, Groß-/ Kleinschreibung wird nicht beachtet)" +#: common/models.py:783 common/models.py:2236 common/models.py:2613 +msgid "Settings key" +msgstr "" #: common/models.py:787 msgid "Settings value" msgstr "Einstellungs-Wert" -#: common/models.py:839 +#: common/models.py:842 msgid "Chosen value is not a valid option" msgstr "Wert ist keine gültige Option" -#: common/models.py:855 +#: common/models.py:858 msgid "Value must be a boolean value" msgstr "Wahrheitswert erforderlich" -#: common/models.py:863 +#: common/models.py:866 msgid "Value must be an integer value" msgstr "Nur Ganzzahl eingeben" -#: common/models.py:900 +#: common/models.py:874 +msgid "Value must be a valid number" +msgstr "" + +#: common/models.py:899 +msgid "Value does not pass validation checks" +msgstr "" + +#: common/models.py:921 msgid "Key string must be unique" msgstr "Schlüsseltext muss eindeutig sein" -#: common/models.py:1132 +#: common/models.py:1189 msgid "No group" msgstr "Keine Gruppe" -#: common/models.py:1231 +#: common/models.py:1288 msgid "Restart required" msgstr "Neustart erforderlich" -#: common/models.py:1233 +#: common/models.py:1290 msgid "A setting has been changed which requires a server restart" msgstr "Eine Einstellung wurde geändert, die einen Neustart des Servers erfordert" -#: common/models.py:1240 +#: common/models.py:1297 msgid "Pending migrations" msgstr "Ausstehende Migrationen" -#: common/models.py:1241 +#: common/models.py:1298 msgid "Number of pending database migrations" msgstr "Anzahl der ausstehenden Datenbankmigrationen" -#: common/models.py:1246 +#: common/models.py:1303 msgid "Server Instance Name" msgstr "Name der Serverinstanz" -#: common/models.py:1248 +#: common/models.py:1305 msgid "String descriptor for the server instance" msgstr "Kurze Beschreibung der Instanz" -#: common/models.py:1252 +#: common/models.py:1309 msgid "Use instance name" msgstr "Name der Instanz verwenden" -#: common/models.py:1253 +#: common/models.py:1310 msgid "Use the instance name in the title-bar" msgstr "Den Namen der Instanz in der Titelleiste verwenden" -#: common/models.py:1258 +#: common/models.py:1315 msgid "Restrict showing `about`" msgstr "Anzeige von `Über` einschränken" -#: common/models.py:1259 +#: common/models.py:1316 msgid "Show the `about` modal only to superusers" msgstr "Zeige das `Über` Fenster nur Administratoren" -#: common/models.py:1264 company/models.py:111 company/models.py:112 +#: common/models.py:1321 company/models.py:108 company/models.py:109 msgid "Company name" msgstr "Firmenname" -#: common/models.py:1265 +#: common/models.py:1322 msgid "Internal company name" msgstr "interner Firmenname" -#: common/models.py:1269 +#: common/models.py:1326 msgid "Base URL" msgstr "Basis-URL" -#: common/models.py:1270 +#: common/models.py:1327 msgid "Base URL for server instance" msgstr "Basis-URL für dieses Instanz" -#: common/models.py:1276 +#: common/models.py:1333 msgid "Default Currency" msgstr "Standardwährung" -#: common/models.py:1277 +#: common/models.py:1334 msgid "Select base currency for pricing calculations" msgstr "Wählen Sie die Basiswährung für Preisberechnungen aus" -#: common/models.py:1283 +#: common/models.py:1340 msgid "Supported Currencies" msgstr "Verfügbare Währungen" -#: common/models.py:1284 +#: common/models.py:1341 msgid "List of supported currency codes" msgstr "Liste der unterstützten Währungskürzel" -#: common/models.py:1290 +#: common/models.py:1347 msgid "Currency Update Interval" msgstr "Währungsaktualisierungsintervall" -#: common/models.py:1292 +#: common/models.py:1349 msgid "How often to update exchange rates (set to zero to disable)" msgstr "Wie oft Wechselkurse aktualisiert werden sollen (auf Null zum Deaktivieren setzen)" -#: common/models.py:1295 common/models.py:1351 common/models.py:1364 -#: common/models.py:1372 common/models.py:1381 common/models.py:1390 -#: common/models.py:1627 common/models.py:1649 common/models.py:1764 -#: common/models.py:2146 +#: common/models.py:1352 common/models.py:1408 common/models.py:1421 +#: common/models.py:1429 common/models.py:1438 common/models.py:1447 +#: common/models.py:1696 common/models.py:1718 common/models.py:1819 +#: common/models.py:2208 msgid "days" msgstr "Tage" -#: common/models.py:1299 +#: common/models.py:1356 msgid "Currency Update Plugin" msgstr "Währungs-Aktualisierungs-Plugin" -#: common/models.py:1300 +#: common/models.py:1357 msgid "Currency update plugin to use" msgstr "Zu verwendendes Währungs-Aktualisierungs-Plugin" -#: common/models.py:1305 +#: common/models.py:1362 msgid "Download from URL" msgstr "Von URL herunterladen" -#: common/models.py:1307 +#: common/models.py:1364 msgid "Allow download of remote images and files from external URL" msgstr "Herunterladen von externen Bildern und Dateien von URLs erlaubt" -#: common/models.py:1313 +#: common/models.py:1370 msgid "Download Size Limit" msgstr "Download-Größenlimit" -#: common/models.py:1314 +#: common/models.py:1371 msgid "Maximum allowable download size for remote image" msgstr "Maximal zulässige Größe für heruntergeladene Bilder" -#: common/models.py:1320 +#: common/models.py:1377 msgid "User-agent used to download from URL" msgstr "Benutzer-Agent zum Herunterladen von Daten" -#: common/models.py:1322 +#: common/models.py:1379 msgid "Allow to override the user-agent used to download images and files from external URL (leave blank for the default)" msgstr "Überschreiben des Benutzer-Agenten, der verwendet wird, um Bilder und Dateien von externer Servern herunterzuladen (leer für die Standardeinstellung)" -#: common/models.py:1327 +#: common/models.py:1384 msgid "Strict URL Validation" msgstr "Strenge URL-Prüfung" -#: common/models.py:1328 +#: common/models.py:1385 msgid "Require schema specification when validating URLs" msgstr "Erfordert die Schema-Spezifikation bei der Validierung von URLs" -#: common/models.py:1333 +#: common/models.py:1390 msgid "Require confirm" msgstr "Bestätigung verpflichtend" -#: common/models.py:1334 +#: common/models.py:1391 msgid "Require explicit user confirmation for certain action." msgstr "Eine ausdrückliche Benutzerbestätigung für bestimmte Aktionen erfordern." -#: common/models.py:1339 +#: common/models.py:1396 msgid "Tree Depth" msgstr "Baumtiefe" -#: common/models.py:1341 +#: common/models.py:1398 msgid "Default tree depth for treeview. Deeper levels can be lazy loaded as they are needed." msgstr "Standard Ebene für Baumansicht. Tiefere Ebenen können bei Bedarf nachgeladen werden." -#: common/models.py:1347 +#: common/models.py:1404 msgid "Update Check Interval" msgstr "Prüfungsintervall aktualisieren" -#: common/models.py:1348 +#: common/models.py:1405 msgid "How often to check for updates (set to zero to disable)" msgstr "Wie oft soll nach Updates gesucht werden? (auf 0 setzen zum Deaktivieren)" -#: common/models.py:1354 +#: common/models.py:1411 msgid "Automatic Backup" msgstr "Automatische Sicherung" -#: common/models.py:1355 +#: common/models.py:1412 msgid "Enable automatic backup of database and media files" msgstr "Automatische Sicherung der Datenbank- und Mediendateien aktivieren" -#: common/models.py:1360 +#: common/models.py:1417 msgid "Auto Backup Interval" msgstr "Intervall für automatische Sicherung" -#: common/models.py:1361 +#: common/models.py:1418 msgid "Specify number of days between automated backup events" msgstr "Anzahl der Tage zwischen automatischen Sicherungen" -#: common/models.py:1367 +#: common/models.py:1424 msgid "Task Deletion Interval" msgstr "Aufgabenlöschinterval" -#: common/models.py:1369 +#: common/models.py:1426 msgid "Background task results will be deleted after specified number of days" msgstr "Ergebnisse der Hintergrundaufgabe werden nach der angegebenen Anzahl von Tagen gelöscht" -#: common/models.py:1376 +#: common/models.py:1433 msgid "Error Log Deletion Interval" msgstr "Löschintervall für Fehlerprotokolle" -#: common/models.py:1378 +#: common/models.py:1435 msgid "Error logs will be deleted after specified number of days" msgstr "Fehlerprotokolle werden nach der angegebenen Anzahl von Tagen gelöscht" -#: common/models.py:1385 +#: common/models.py:1442 msgid "Notification Deletion Interval" msgstr "Löschintervall für Benachrichtigungen" -#: common/models.py:1387 +#: common/models.py:1444 msgid "User notifications will be deleted after specified number of days" msgstr "Benutzerbenachrichtigungen werden nach der angegebenen Anzahl von Tagen gelöscht" -#: common/models.py:1394 templates/InvenTree/settings/sidebar.html:31 +#: common/models.py:1451 templates/InvenTree/settings/sidebar.html:31 msgid "Barcode Support" msgstr "Bacode-Feature verwenden" -#: common/models.py:1395 +#: common/models.py:1452 msgid "Enable barcode scanner support in the web interface" msgstr "Barcode-Scanner Unterstützung im Webinterface aktivieren" -#: common/models.py:1400 +#: common/models.py:1457 +msgid "Store Barcode Results" +msgstr "" + +#: common/models.py:1458 +msgid "Store barcode scan results in the database" +msgstr "" + +#: common/models.py:1463 +msgid "Barcode Scans Maximum Count" +msgstr "" + +#: common/models.py:1464 +msgid "Maximum number of barcode scan results to store" +msgstr "" + +#: common/models.py:1469 msgid "Barcode Input Delay" msgstr "Barcode-Eingabeverzögerung" -#: common/models.py:1401 +#: common/models.py:1470 msgid "Barcode input processing delay time" msgstr "Verzögerungszeit bei Barcode-Eingabe" -#: common/models.py:1407 +#: common/models.py:1476 msgid "Barcode Webcam Support" msgstr "Barcode Webcam-Unterstützung" -#: common/models.py:1408 +#: common/models.py:1477 msgid "Allow barcode scanning via webcam in browser" msgstr "Barcode-Scannen über Webcam im Browser erlauben" -#: common/models.py:1413 +#: common/models.py:1482 msgid "Barcode Show Data" msgstr "" -#: common/models.py:1414 +#: common/models.py:1483 msgid "Display barcode data in browser as text" msgstr "" -#: common/models.py:1419 +#: common/models.py:1488 msgid "Barcode Generation Plugin" msgstr "" -#: common/models.py:1420 +#: common/models.py:1489 msgid "Plugin to use for internal barcode data generation" msgstr "" -#: common/models.py:1425 +#: common/models.py:1494 msgid "Part Revisions" msgstr "Artikelrevisionen" -#: common/models.py:1426 +#: common/models.py:1495 msgid "Enable revision field for Part" msgstr "Revisions-Feld für Artikel aktivieren" -#: common/models.py:1431 +#: common/models.py:1500 msgid "Assembly Revision Only" msgstr "" -#: common/models.py:1432 +#: common/models.py:1501 msgid "Only allow revisions for assembly parts" msgstr "" -#: common/models.py:1437 +#: common/models.py:1506 msgid "Allow Deletion from Assembly" msgstr "Löschen aus Baugruppe erlauben" -#: common/models.py:1438 +#: common/models.py:1507 msgid "Allow deletion of parts which are used in an assembly" msgstr "Erlaube das Löschen von Teilen, die in einer Baugruppe verwendet werden" -#: common/models.py:1443 +#: common/models.py:1512 msgid "IPN Regex" msgstr "IPN Regex" -#: common/models.py:1444 +#: common/models.py:1513 msgid "Regular expression pattern for matching Part IPN" msgstr "RegEx Muster für die Zuordnung von Teil-IPN" -#: common/models.py:1447 +#: common/models.py:1516 msgid "Allow Duplicate IPN" msgstr "Mehrere Artikel mit gleicher IPN erlaubt" -#: common/models.py:1448 +#: common/models.py:1517 msgid "Allow multiple parts to share the same IPN" msgstr "Mehrere Artikel mit gleicher IPN erlaubt" -#: common/models.py:1453 +#: common/models.py:1522 msgid "Allow Editing IPN" msgstr "Ändern von IPN erlaubt" -#: common/models.py:1454 +#: common/models.py:1523 msgid "Allow changing the IPN value while editing a part" msgstr "Ändern der IPN während des Bearbeiten eines Teils erlaubt" -#: common/models.py:1459 +#: common/models.py:1528 msgid "Copy Part BOM Data" msgstr "Teil-Stückliste kopieren" -#: common/models.py:1460 +#: common/models.py:1529 msgid "Copy BOM data by default when duplicating a part" msgstr "Stückliste von Teil kopieren wenn das Teil dupliziert wird " -#: common/models.py:1465 +#: common/models.py:1534 msgid "Copy Part Parameter Data" msgstr "Teil-Parameter kopieren" -#: common/models.py:1466 +#: common/models.py:1535 msgid "Copy parameter data by default when duplicating a part" msgstr "Parameter-Daten für dieses Teil kopieren wenn das Teil dupliziert wird" -#: common/models.py:1471 +#: common/models.py:1540 msgid "Copy Part Test Data" msgstr "Teil-Testdaten kopieren" -#: common/models.py:1472 +#: common/models.py:1541 msgid "Copy test data by default when duplicating a part" msgstr "Test-Daten für dieses Teil kopieren wenn das Teil dupliziert wird" -#: common/models.py:1477 +#: common/models.py:1546 msgid "Copy Category Parameter Templates" msgstr "Kategorie-Parametervorlage kopieren" -#: common/models.py:1478 +#: common/models.py:1547 msgid "Copy category parameter templates when creating a part" msgstr "Kategorie-Parameter Vorlagen kopieren wenn ein Teil angelegt wird" -#: common/models.py:1483 part/admin.py:108 part/models.py:3945 -#: report/models.py:293 report/models.py:360 report/serializers.py:90 -#: report/serializers.py:131 stock/serializers.py:232 +#: common/models.py:1552 part/admin.py:108 part/models.py:4003 +#: report/models.py:301 report/models.py:368 report/serializers.py:91 +#: report/serializers.py:132 stock/serializers.py:233 #: templates/js/translated/table_filters.js:138 #: templates/js/translated/table_filters.js:775 msgid "Template" msgstr "Vorlage" -#: common/models.py:1484 +#: common/models.py:1553 msgid "Parts are templates by default" msgstr "Teile sind standardmäßig Vorlagen" -#: common/models.py:1490 +#: common/models.py:1559 msgid "Parts can be assembled from other components by default" msgstr "Teile können standardmäßig aus anderen Teilen angefertigt werden" -#: common/models.py:1495 part/admin.py:95 part/models.py:1160 -#: part/serializers.py:1596 templates/js/translated/table_filters.js:737 +#: common/models.py:1564 part/admin.py:95 part/models.py:1221 +#: part/serializers.py:1654 templates/js/translated/table_filters.js:737 msgid "Component" msgstr "Komponente" -#: common/models.py:1496 +#: common/models.py:1565 msgid "Parts can be used as sub-components by default" msgstr "Teile können standardmäßig in Baugruppen benutzt werden" -#: common/models.py:1501 part/admin.py:100 part/models.py:1178 +#: common/models.py:1570 part/admin.py:100 part/models.py:1239 msgid "Purchaseable" msgstr "Kaufbar" -#: common/models.py:1502 +#: common/models.py:1571 msgid "Parts are purchaseable by default" msgstr "Artikel sind grundsätzlich kaufbar" -#: common/models.py:1507 part/admin.py:104 part/models.py:1184 +#: common/models.py:1576 part/admin.py:104 part/models.py:1245 #: templates/js/translated/table_filters.js:763 msgid "Salable" msgstr "Verkäuflich" -#: common/models.py:1508 +#: common/models.py:1577 msgid "Parts are salable by default" msgstr "Artikel sind grundsätzlich verkaufbar" -#: common/models.py:1514 +#: common/models.py:1583 msgid "Parts are trackable by default" msgstr "Artikel sind grundsätzlich verfolgbar" -#: common/models.py:1519 part/admin.py:117 part/models.py:1200 -#: part/templates/part/part_base.html:154 +#: common/models.py:1588 part/admin.py:117 part/models.py:1261 +#: part/templates/part/part_base.html:155 #: templates/js/translated/table_filters.js:142 #: templates/js/translated/table_filters.js:787 msgid "Virtual" msgstr "Virtuell" -#: common/models.py:1520 +#: common/models.py:1589 msgid "Parts are virtual by default" msgstr "Teile sind grundsätzlich virtuell" -#: common/models.py:1525 +#: common/models.py:1594 msgid "Show Import in Views" msgstr "Import in Ansichten anzeigen" -#: common/models.py:1526 +#: common/models.py:1595 msgid "Display the import wizard in some part views" msgstr "Importassistent in einigen Teil-Ansichten anzeigen" -#: common/models.py:1531 +#: common/models.py:1600 msgid "Show related parts" msgstr "Verwandte Teile anzeigen" -#: common/models.py:1532 +#: common/models.py:1601 msgid "Display related parts for a part" msgstr "Verwandte Teile eines Teils anzeigen" -#: common/models.py:1537 +#: common/models.py:1606 msgid "Initial Stock Data" msgstr "Initialer Lagerbestand" -#: common/models.py:1538 +#: common/models.py:1607 msgid "Allow creation of initial stock when adding a new part" msgstr "Erstellen von Lagerbestand beim Hinzufügen eines neuen Teils erlauben" -#: common/models.py:1543 templates/js/translated/part.js:108 +#: common/models.py:1612 templates/js/translated/part.js:108 msgid "Initial Supplier Data" msgstr "Initiale Lieferantendaten" -#: common/models.py:1545 +#: common/models.py:1614 msgid "Allow creation of initial supplier data when adding a new part" msgstr "Erstellen von Lieferantendaten beim Hinzufügen eines neuen Teils erlauben" -#: common/models.py:1551 +#: common/models.py:1620 msgid "Part Name Display Format" msgstr "Anzeigeformat für Teilenamen" -#: common/models.py:1552 +#: common/models.py:1621 msgid "Format to display the part name" msgstr "Format für den Namen eines Teiles" -#: common/models.py:1558 +#: common/models.py:1627 msgid "Part Category Default Icon" msgstr "Standardsymbol der Teilkategorie" -#: common/models.py:1559 +#: common/models.py:1628 msgid "Part category default icon (empty means no icon)" msgstr "Standardsymbol der Teilkategorie (leer bedeutet kein Symbol)" -#: common/models.py:1564 +#: common/models.py:1633 msgid "Enforce Parameter Units" msgstr "Parameter Einheiten durchsetzen" -#: common/models.py:1566 +#: common/models.py:1635 msgid "If units are provided, parameter values must match the specified units" msgstr "Wenn Einheiten angegeben werden, müssen die Parameterwerte mit den angegebenen Einheiten übereinstimmen" -#: common/models.py:1572 +#: common/models.py:1641 msgid "Minimum Pricing Decimal Places" msgstr "Dezimalstellen für minimalen Preis" -#: common/models.py:1574 +#: common/models.py:1643 msgid "Minimum number of decimal places to display when rendering pricing data" msgstr "Mindestanzahl der Dezimalstellen bei der Darstellung der Preisdaten" -#: common/models.py:1585 +#: common/models.py:1654 msgid "Maximum Pricing Decimal Places" msgstr "Dezimalstellen für maximalen Preis" -#: common/models.py:1587 +#: common/models.py:1656 msgid "Maximum number of decimal places to display when rendering pricing data" msgstr "Maximale Anzahl der Dezimalstellen bei der Darstellung der Preisdaten" -#: common/models.py:1598 +#: common/models.py:1667 msgid "Use Supplier Pricing" msgstr "Zulieferer-Preise verwenden" -#: common/models.py:1600 +#: common/models.py:1669 msgid "Include supplier price breaks in overall pricing calculations" msgstr "Lieferanten-Staffelpreise in die Gesamt-Preisberechnungen einbeziehen" -#: common/models.py:1606 +#: common/models.py:1675 msgid "Purchase History Override" msgstr "Kaufverlauf überschreiben" -#: common/models.py:1608 +#: common/models.py:1677 msgid "Historical purchase order pricing overrides supplier price breaks" msgstr "Historische Bestellungspreise überschreiben die Lieferanten-Staffelpreise" -#: common/models.py:1614 +#: common/models.py:1683 msgid "Use Stock Item Pricing" msgstr "Lagerartikel-Preis verwenden" -#: common/models.py:1616 +#: common/models.py:1685 msgid "Use pricing from manually entered stock data for pricing calculations" msgstr "Preise aus manuell eingegebenen Lagerdaten für Preisberechnungen verwenden" -#: common/models.py:1622 +#: common/models.py:1691 msgid "Stock Item Pricing Age" msgstr "Lagerartikelpreis Alter" -#: common/models.py:1624 +#: common/models.py:1693 msgid "Exclude stock items older than this number of days from pricing calculations" msgstr "Lagerartikel, die älter als diese Anzahl an Tagen sind, von der Preisberechnung ausschließen" -#: common/models.py:1631 +#: common/models.py:1700 msgid "Use Variant Pricing" msgstr "Variantenpreise verwenden" -#: common/models.py:1632 +#: common/models.py:1701 msgid "Include variant pricing in overall pricing calculations" msgstr "Variantenpreise in die Gesamt-Preisberechnungen einbeziehen" -#: common/models.py:1637 +#: common/models.py:1706 msgid "Active Variants Only" msgstr "Nur aktive Varianten" -#: common/models.py:1639 +#: common/models.py:1708 msgid "Only use active variant parts for calculating variant pricing" msgstr "Nur aktive Variantenteile zur Berechnung der Variantenbepreisung verwenden" -#: common/models.py:1645 +#: common/models.py:1714 msgid "Pricing Rebuild Interval" msgstr "Intervall für Neuberechnung von Preisen" -#: common/models.py:1647 +#: common/models.py:1716 msgid "Number of days before part pricing is automatically updated" msgstr "Anzahl der Tage bis die Teile-Preisberechnungen automatisch aktualisiert werden" -#: common/models.py:1654 +#: common/models.py:1723 msgid "Internal Prices" msgstr "Interne Preise" -#: common/models.py:1655 +#: common/models.py:1724 msgid "Enable internal prices for parts" msgstr "Interne Preise für Teile aktivieren" -#: common/models.py:1660 +#: common/models.py:1729 msgid "Internal Price Override" msgstr "Interne Preisüberschreibung" -#: common/models.py:1662 +#: common/models.py:1731 msgid "If available, internal prices override price range calculations" msgstr "Falls verfügbar, überschreiben interne Preise Preispannenberechnungen" -#: common/models.py:1668 +#: common/models.py:1737 msgid "Enable label printing" msgstr "Labeldruck aktivieren" -#: common/models.py:1669 +#: common/models.py:1738 msgid "Enable label printing from the web interface" msgstr "Labeldruck über die Website aktivieren" -#: common/models.py:1674 +#: common/models.py:1743 msgid "Label Image DPI" msgstr "Label Bild DPI" -#: common/models.py:1676 +#: common/models.py:1745 msgid "DPI resolution when generating image files to supply to label printing plugins" msgstr "DPI-Auflösung bei der Erstellung von Bilddateien für Etikettendruck-Plugins" -#: common/models.py:1682 +#: common/models.py:1751 msgid "Enable Reports" msgstr "Berichte aktivieren" -#: common/models.py:1683 +#: common/models.py:1752 msgid "Enable generation of reports" msgstr "Berichterstellung aktivieren" -#: common/models.py:1688 templates/stats.html:25 +#: common/models.py:1757 templates/stats.html:25 msgid "Debug Mode" msgstr "Entwickler-Modus" -#: common/models.py:1689 +#: common/models.py:1758 msgid "Generate reports in debug mode (HTML output)" msgstr "Berichte im Entwickler-Modus generieren (als HTML)" -#: common/models.py:1694 +#: common/models.py:1763 msgid "Log Report Errors" msgstr "Berichtsfehler protokollieren" -#: common/models.py:1695 +#: common/models.py:1764 msgid "Log errors which occur when generating reports" msgstr "Fehler, die beim Erstellen von Berichten auftreten, protokollieren" -#: common/models.py:1700 plugin/builtin/labels/label_sheet.py:28 -#: report/models.py:301 +#: common/models.py:1769 plugin/builtin/labels/label_sheet.py:28 +#: report/models.py:309 msgid "Page Size" msgstr "Seitengröße" -#: common/models.py:1701 +#: common/models.py:1770 msgid "Default page size for PDF reports" msgstr "Standardseitenformat für PDF-Bericht" -#: common/models.py:1706 -msgid "Enable Test Reports" -msgstr "Testberichte aktivieren" - -#: common/models.py:1707 -msgid "Enable generation of test reports" -msgstr "Erstellung von Test-Berichten aktivieren" - -#: common/models.py:1712 -msgid "Attach Test Reports" -msgstr "Testberichte anhängen" - -#: common/models.py:1714 -msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item" -msgstr "Beim Drucken eines Testberichts dem zugehörigen Lagerbestand eine Kopie des Testberichts beifügen" - -#: common/models.py:1720 +#: common/models.py:1775 msgid "Globally Unique Serials" msgstr "Global einzigartige Seriennummern" -#: common/models.py:1721 +#: common/models.py:1776 msgid "Serial numbers for stock items must be globally unique" msgstr "Seriennummern für Lagerartikel müssen global eindeutig sein" -#: common/models.py:1726 +#: common/models.py:1781 msgid "Autofill Serial Numbers" msgstr "Seriennummern automatisch ausfüllen" -#: common/models.py:1727 +#: common/models.py:1782 msgid "Autofill serial numbers in forms" msgstr "Seriennummern in Formularen automatisch ausfüllen" -#: common/models.py:1732 +#: common/models.py:1787 msgid "Delete Depleted Stock" msgstr "Erschöpften Lagerartikel löschen" -#: common/models.py:1734 +#: common/models.py:1789 msgid "Determines default behavior when a stock item is depleted" msgstr "Legt das Standardverhalten fest, wenn ein Lagerartikel aufgebraucht ist" -#: common/models.py:1740 +#: common/models.py:1795 msgid "Batch Code Template" msgstr "Losnummer Vorlage" -#: common/models.py:1742 +#: common/models.py:1797 msgid "Template for generating default batch codes for stock items" msgstr "Vorlage für die Generierung von Standard-Losnummern für Lagerbestände" -#: common/models.py:1747 +#: common/models.py:1802 msgid "Stock Expiry" msgstr "Bestands-Ablauf" -#: common/models.py:1748 +#: common/models.py:1803 msgid "Enable stock expiry functionality" msgstr "Ablaufen von Bestand ermöglichen" -#: common/models.py:1753 +#: common/models.py:1808 msgid "Sell Expired Stock" msgstr "Abgelaufenen Bestand verkaufen" -#: common/models.py:1754 +#: common/models.py:1809 msgid "Allow sale of expired stock" msgstr "Verkauf von abgelaufenem Bestand erlaubt" -#: common/models.py:1759 +#: common/models.py:1814 msgid "Stock Stale Time" msgstr "Bestands-Stehzeit" -#: common/models.py:1761 +#: common/models.py:1816 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:1768 +#: common/models.py:1823 msgid "Build Expired Stock" msgstr "Abgelaufenen Bestand verbauen" -#: common/models.py:1769 +#: common/models.py:1824 msgid "Allow building with expired stock" msgstr "Verbauen von abgelaufenen Bestand erlaubt" -#: common/models.py:1774 +#: common/models.py:1829 msgid "Stock Ownership Control" msgstr "Bestands-Eigentümerkontrolle" -#: common/models.py:1775 +#: common/models.py:1830 msgid "Enable ownership control over stock locations and items" msgstr "Eigentümerkontrolle für Lagerorte und Teile aktivieren" -#: common/models.py:1780 +#: common/models.py:1835 msgid "Stock Location Default Icon" msgstr "Standardsymbol für Lagerort" -#: common/models.py:1781 +#: common/models.py:1836 msgid "Stock location default icon (empty means no icon)" msgstr "Standardsymbol für Lagerstandort (leer bedeutet kein Symbol)" -#: common/models.py:1786 +#: common/models.py:1841 msgid "Show Installed Stock Items" msgstr "Zeige installierte Lagerartikel" -#: common/models.py:1787 +#: common/models.py:1842 msgid "Display installed stock items in stock tables" msgstr "Anzeige der installierten Lagerartikel in Bestandstabellen" -#: common/models.py:1792 +#: common/models.py:1847 msgid "Check BOM when installing items" msgstr "Prüfe BOM bei der Installation von Elementen" -#: common/models.py:1794 +#: common/models.py:1849 msgid "Installed stock items must exist in the BOM for the parent part" msgstr "Installierte Lagerbestandteile müssen im BOM für den übergeordneten Teil vorhanden sein" -#: common/models.py:1800 +#: common/models.py:1855 msgid "Allow Out of Stock Transfer" msgstr "Erlaube Verschieben von \"nicht auf Lager\" Bestand" -#: common/models.py:1802 +#: common/models.py:1857 msgid "Allow stock items which are not in stock to be transferred between stock locations" msgstr "Lagerartikel, die nicht auf Lager sind, können zwischen Lagerstandorten übertragen werden" -#: common/models.py:1808 +#: common/models.py:1863 msgid "Build Order Reference Pattern" msgstr "Bauauftragsreferenz-Muster" -#: common/models.py:1810 +#: common/models.py:1865 msgid "Required pattern for generating Build Order reference field" msgstr "Benötigtes Muster für die Generierung des Referenzfeldes für Bauaufträge" -#: common/models.py:1816 common/models.py:1872 common/models.py:1894 -#: common/models.py:1930 +#: common/models.py:1871 common/models.py:1927 common/models.py:1949 +#: common/models.py:1985 msgid "Require Responsible Owner" msgstr "Verantwortlicher Besitzer erforderlich" -#: common/models.py:1817 common/models.py:1873 common/models.py:1895 -#: common/models.py:1931 +#: common/models.py:1872 common/models.py:1928 common/models.py:1950 +#: common/models.py:1986 msgid "A responsible owner must be assigned to each order" msgstr "Jeder Bestellung muss ein verantwortlicher Besitzer zugewiesen werden" -#: common/models.py:1822 +#: common/models.py:1877 msgid "Require Active Part" msgstr "" -#: common/models.py:1823 +#: common/models.py:1878 msgid "Prevent build order creation for inactive parts" msgstr "" -#: common/models.py:1828 +#: common/models.py:1883 msgid "Require Locked Part" msgstr "" -#: common/models.py:1829 +#: common/models.py:1884 msgid "Prevent build order creation for unlocked parts" msgstr "" -#: common/models.py:1834 +#: common/models.py:1889 msgid "Require Valid BOM" msgstr "" -#: common/models.py:1836 +#: common/models.py:1891 msgid "Prevent build order creation unless BOM has been validated" msgstr "" -#: common/models.py:1842 +#: common/models.py:1897 msgid "Require Closed Child Orders" msgstr "" -#: common/models.py:1844 +#: common/models.py:1899 msgid "Prevent build order completion until all child orders are closed" msgstr "" -#: common/models.py:1850 +#: common/models.py:1905 msgid "Block Until Tests Pass" msgstr "Blockieren bis Test bestanden" -#: common/models.py:1852 +#: common/models.py:1907 msgid "Prevent build outputs from being completed until all required tests pass" msgstr "Verhindert die Fertigstellung bis alle erforderlichen Tests bestanden sind" -#: common/models.py:1858 +#: common/models.py:1913 msgid "Enable Return Orders" msgstr "Rücksendungen aktivieren" -#: common/models.py:1859 +#: common/models.py:1914 msgid "Enable return order functionality in the user interface" msgstr "Aktivieren der Rücksendung-Funktion in der Benutzeroberfläche" -#: common/models.py:1864 +#: common/models.py:1919 msgid "Return Order Reference Pattern" msgstr "Referenz Muster für Rücksendungen" -#: common/models.py:1866 +#: common/models.py:1921 msgid "Required pattern for generating Return Order reference field" msgstr "Benötigtes Muster für die Generierung des Referenzfeldes für Rücksendungen" -#: common/models.py:1878 +#: common/models.py:1933 msgid "Edit Completed Return Orders" msgstr "Abgeschlossene Rücksendungen bearbeiten" -#: common/models.py:1880 +#: common/models.py:1935 msgid "Allow editing of return orders after they have been completed" msgstr "Bearbeitung von Rücksendungen nach Abschluss erlauben" -#: common/models.py:1886 +#: common/models.py:1941 msgid "Sales Order Reference Pattern" msgstr "Auftragsreferenz-Muster" -#: common/models.py:1888 +#: common/models.py:1943 msgid "Required pattern for generating Sales Order reference field" msgstr "Benötigtes Muster für die Generierung des Referenzfeldes für Aufträge" -#: common/models.py:1900 +#: common/models.py:1955 msgid "Sales Order Default Shipment" msgstr "Auftrag Standardsendung" -#: common/models.py:1901 +#: common/models.py:1956 msgid "Enable creation of default shipment with sales orders" msgstr "Erstelle eine Standardsendung für Aufträge" -#: common/models.py:1906 +#: common/models.py:1961 msgid "Edit Completed Sales Orders" msgstr "Abgeschlossene Aufträge bearbeiten" -#: common/models.py:1908 +#: common/models.py:1963 msgid "Allow editing of sales orders after they have been shipped or completed" msgstr "Bearbeitung von Aufträgen nach Versand oder Abschluss erlauben" -#: common/models.py:1914 +#: common/models.py:1969 msgid "Mark Shipped Orders as Complete" msgstr "Versendete Bestellungen als abgeschlossen markieren" -#: common/models.py:1916 +#: common/models.py:1971 msgid "Sales orders marked as shipped will automatically be completed, bypassing the \"shipped\" status" msgstr "Als versendet markierte Aufträge werden automatisch abgeschlossen und überspringen den Status \"Versandt\"" -#: common/models.py:1922 +#: common/models.py:1977 msgid "Purchase Order Reference Pattern" msgstr "Bestellungsreferenz-Muster" -#: common/models.py:1924 +#: common/models.py:1979 msgid "Required pattern for generating Purchase Order reference field" msgstr "Benötigtes Muster für die Generierung des Referenzfeldes für Bestellungen" -#: common/models.py:1936 +#: common/models.py:1991 msgid "Edit Completed Purchase Orders" msgstr "Abgeschlossene Einkaufsaufträge bearbeiten" -#: common/models.py:1938 +#: common/models.py:1993 msgid "Allow editing of purchase orders after they have been shipped or completed" msgstr "Bearbeitung von Einkaufsaufträgen nach Versand oder Abschluss erlauben" -#: common/models.py:1944 +#: common/models.py:1999 msgid "Auto Complete Purchase Orders" msgstr "Bestellungen automatisch abschließen" -#: common/models.py:1946 +#: common/models.py:2001 msgid "Automatically mark purchase orders as complete when all line items are received" msgstr "Bestellung automatisch als abgeschlossen markieren, wenn der Empfang aller Artikel bestätigt wurde" -#: common/models.py:1953 +#: common/models.py:2008 msgid "Enable password forgot" msgstr "Passwort vergessen aktivieren" -#: common/models.py:1954 +#: common/models.py:2009 msgid "Enable password forgot function on the login pages" msgstr "Passwort-vergessen-Funktion auf den Anmeldeseiten aktivieren" -#: common/models.py:1959 +#: common/models.py:2014 msgid "Enable registration" msgstr "Registrierung erlauben" -#: common/models.py:1960 +#: common/models.py:2015 msgid "Enable self-registration for users on the login pages" msgstr "Selbstregistrierung für Benutzer auf den Anmeldeseiten aktivieren" -#: common/models.py:1965 +#: common/models.py:2020 msgid "Enable SSO" msgstr "SSO aktivieren" -#: common/models.py:1966 +#: common/models.py:2021 msgid "Enable SSO on the login pages" msgstr "SSO auf den Anmeldeseiten aktivieren" -#: common/models.py:1971 +#: common/models.py:2026 msgid "Enable SSO registration" msgstr "SSO Selbstregistrierung aktivieren" -#: common/models.py:1973 +#: common/models.py:2028 msgid "Enable self-registration via SSO for users on the login pages" msgstr "Selbstregistrierung über SSO für Benutzer auf den Anmeldeseiten aktivieren" -#: common/models.py:1979 +#: common/models.py:2034 msgid "Enable SSO group sync" msgstr "SSO Gruppensynchronisation aktivieren" -#: common/models.py:1981 +#: common/models.py:2036 msgid "Enable synchronizing InvenTree groups with groups provided by the IdP" msgstr "" -#: common/models.py:1987 +#: common/models.py:2042 msgid "SSO group key" msgstr "SSO Gruppenschlüssel" -#: common/models.py:1989 +#: common/models.py:2044 msgid "The name of the groups claim attribute provided by the IdP" msgstr "" -#: common/models.py:1995 +#: common/models.py:2050 msgid "SSO group map" msgstr "" -#: common/models.py:1997 +#: common/models.py:2052 msgid "A mapping from SSO groups to local InvenTree groups. If the local group does not exist, it will be created." msgstr "" -#: common/models.py:2003 +#: common/models.py:2058 msgid "Remove groups outside of SSO" msgstr "" -#: common/models.py:2005 +#: common/models.py:2060 msgid "Whether groups assigned to the user should be removed if they are not backend by the IdP. Disabling this setting might cause security issues" msgstr "" -#: common/models.py:2011 +#: common/models.py:2066 msgid "Email required" msgstr "Email-Adresse erforderlich" -#: common/models.py:2012 +#: common/models.py:2067 msgid "Require user to supply mail on signup" msgstr "Benutzer müssen bei der Registrierung eine E-Mail angeben" -#: common/models.py:2017 +#: common/models.py:2072 msgid "Auto-fill SSO users" msgstr "SSO-Benutzer automatisch ausfüllen" -#: common/models.py:2019 +#: common/models.py:2074 msgid "Automatically fill out user-details from SSO account-data" msgstr "Benutzer-Details automatisch aus SSO-Konto ausfüllen" -#: common/models.py:2025 +#: common/models.py:2080 msgid "Mail twice" msgstr "E-Mail zweimal" -#: common/models.py:2026 +#: common/models.py:2081 msgid "On signup ask users twice for their mail" msgstr "Bei der Registrierung den Benutzer zweimal nach der E-Mail-Adresse fragen" -#: common/models.py:2031 +#: common/models.py:2086 msgid "Password twice" msgstr "Passwort zweimal" -#: common/models.py:2032 +#: common/models.py:2087 msgid "On signup ask users twice for their password" msgstr "Bei der Registrierung den Benutzer zweimal nach dem Passwort fragen" -#: common/models.py:2037 +#: common/models.py:2092 msgid "Allowed domains" msgstr "Erlaubte Domains" -#: common/models.py:2039 +#: common/models.py:2094 msgid "Restrict signup to certain domains (comma-separated, starting with @)" msgstr "Anmeldung auf bestimmte Domänen beschränken (kommagetrennt, beginnend mit @)" -#: common/models.py:2045 +#: common/models.py:2100 msgid "Group on signup" msgstr "Gruppe bei Registrierung" -#: common/models.py:2047 +#: common/models.py:2102 msgid "Group to which new users are assigned on registration. If SSO group sync is enabled, this group is only set if no group can be assigned from the IdP." msgstr "" -#: common/models.py:2053 +#: common/models.py:2108 msgid "Enforce MFA" msgstr "MFA erzwingen" -#: common/models.py:2054 +#: common/models.py:2109 msgid "Users must use multifactor security." msgstr "Benutzer müssen Multifaktor-Authentifizierung verwenden." -#: common/models.py:2059 +#: common/models.py:2114 msgid "Check plugins on startup" msgstr "Plugins beim Start prüfen" -#: common/models.py:2061 +#: common/models.py:2116 msgid "Check that all plugins are installed on startup - enable in container environments" msgstr "Beim Start überprüfen, ob alle Plugins installiert sind - Für Container aktivieren" -#: common/models.py:2069 +#: common/models.py:2124 msgid "Check for plugin updates" msgstr "Nach Plugin-Aktualisierungen suchen" -#: common/models.py:2070 +#: common/models.py:2125 msgid "Enable periodic checks for updates to installed plugins" msgstr "Periodische Überprüfungen auf Updates für installierte Plugins aktivieren" -#: common/models.py:2076 +#: common/models.py:2131 msgid "Enable URL integration" msgstr "URL-Integration aktivieren" -#: common/models.py:2077 +#: common/models.py:2132 msgid "Enable plugins to add URL routes" msgstr "Plugins zum Hinzufügen von URLs aktivieren" -#: common/models.py:2083 +#: common/models.py:2138 msgid "Enable navigation integration" msgstr "Navigations-Integration aktivieren" -#: common/models.py:2084 +#: common/models.py:2139 msgid "Enable plugins to integrate into navigation" msgstr "Plugins zur Integration in die Navigation aktivieren" -#: common/models.py:2090 +#: common/models.py:2145 msgid "Enable app integration" msgstr "App-Integration aktivieren" -#: common/models.py:2091 +#: common/models.py:2146 msgid "Enable plugins to add apps" msgstr "Plugins zum Hinzufügen von Apps aktivieren" -#: common/models.py:2097 +#: common/models.py:2152 msgid "Enable schedule integration" msgstr "Terminplan-Integration aktivieren" -#: common/models.py:2098 +#: common/models.py:2153 msgid "Enable plugins to run scheduled tasks" msgstr "Geplante Aufgaben aktivieren" -#: common/models.py:2104 +#: common/models.py:2159 msgid "Enable event integration" msgstr "Ereignis-Integration aktivieren" -#: common/models.py:2105 +#: common/models.py:2160 msgid "Enable plugins to respond to internal events" msgstr "Plugins ermöglichen auf interne Ereignisse zu reagieren" -#: common/models.py:2111 +#: common/models.py:2166 +msgid "Enable interface integration" +msgstr "" + +#: common/models.py:2167 +msgid "Enable plugins to integrate into the user interface" +msgstr "" + +#: common/models.py:2173 msgid "Enable project codes" msgstr "Projektcodes aktivieren" -#: common/models.py:2112 +#: common/models.py:2174 msgid "Enable project codes for tracking projects" msgstr "Aktiviere Projektcodes für die Verfolgung von Projekten" -#: common/models.py:2117 +#: common/models.py:2179 msgid "Stocktake Functionality" msgstr "Inventurfunktionen" -#: common/models.py:2119 +#: common/models.py:2181 msgid "Enable stocktake functionality for recording stock levels and calculating stock value" msgstr "Inventur-Funktionen zur Aufzeichnung von Lagerbeständen und zur Berechnung des Lagerwerts aktivieren" -#: common/models.py:2125 +#: common/models.py:2187 msgid "Exclude External Locations" msgstr "Externe Standorte ausschließen" -#: common/models.py:2127 +#: common/models.py:2189 msgid "Exclude stock items in external locations from stocktake calculations" msgstr "Lagerartikeln in externen Standorten in der Berechnungen zur Bestandsaufnahme ausschließen" -#: common/models.py:2133 +#: common/models.py:2195 msgid "Automatic Stocktake Period" msgstr "Automatische Inventur-Periode" -#: common/models.py:2135 +#: common/models.py:2197 msgid "Number of days between automatic stocktake recording (set to zero to disable)" msgstr "Anzahl der Tage zwischen automatischen Bestandsaufnahmen (zum Deaktivieren auf Null setzen)" -#: common/models.py:2141 +#: common/models.py:2203 msgid "Report Deletion Interval" msgstr "Löschintervall für Berichte" -#: common/models.py:2143 +#: common/models.py:2205 msgid "Stocktake reports will be deleted after specified number of days" msgstr "Inventurberichte werden nach der angegebenen Anzahl von Tagen gelöscht" -#: common/models.py:2150 +#: common/models.py:2212 msgid "Display Users full names" msgstr "Vollständige Namen von Benutzern anzeigen" -#: common/models.py:2151 +#: common/models.py:2213 msgid "Display Users full names instead of usernames" msgstr "Vollständigen Namen von Benutzern anstatt Benutzername anzeigen" -#: common/models.py:2156 +#: common/models.py:2218 msgid "Enable Test Station Data" msgstr "Teststation-Daten aktivieren" -#: common/models.py:2157 +#: common/models.py:2219 msgid "Enable test station data collection for test results" msgstr "Teststation-Datenerfassung für Testergebnisse aktivieren" -#: common/models.py:2169 common/models.py:2549 -msgid "Settings key (must be unique - case insensitive" -msgstr "Einstellungs-Schlüssel (muss einzigartig sein, Groß-/ Kleinschreibung wird nicht beachtet)" +#: common/models.py:2224 +msgid "Create Template on Upload" +msgstr "" -#: common/models.py:2212 +#: common/models.py:2226 +msgid "Create a new test template when uploading test data which does not match an existing template" +msgstr "" + +#: common/models.py:2279 msgid "Hide inactive parts" msgstr "Inaktive Teile ausblenden" -#: common/models.py:2214 +#: common/models.py:2281 msgid "Hide inactive parts in results displayed on the homepage" msgstr "Ausblenden inaktiver Teile in den auf der Startseite angezeigten Ergebnissen" -#: common/models.py:2220 +#: common/models.py:2287 msgid "Show subscribed parts" msgstr "Abonnierte Teile anzeigen" -#: common/models.py:2221 +#: common/models.py:2288 msgid "Show subscribed parts on the homepage" msgstr "Zeige abonnierte Teile auf der Startseite" -#: common/models.py:2226 +#: common/models.py:2293 msgid "Show subscribed categories" msgstr "Abonnierte Kategorien anzeigen" -#: common/models.py:2227 +#: common/models.py:2294 msgid "Show subscribed part categories on the homepage" msgstr "Zeige abonnierte Teilkategorien auf der Startseite" -#: common/models.py:2232 +#: common/models.py:2299 msgid "Show latest parts" msgstr "Neueste Teile anzeigen" -#: common/models.py:2233 +#: common/models.py:2300 msgid "Show latest parts on the homepage" msgstr "Zeige neueste Teile auf der Startseite" -#: common/models.py:2238 +#: common/models.py:2305 msgid "Show invalid BOMs" msgstr "Zeige ungültige Stücklisten" -#: common/models.py:2239 +#: common/models.py:2306 msgid "Show BOMs that await validation on the homepage" msgstr "Zeige Stücklisten, die noch nicht validiert sind, auf der Startseite" -#: common/models.py:2244 +#: common/models.py:2311 msgid "Show recent stock changes" msgstr "Neueste Bestandänderungen anzeigen" -#: common/models.py:2245 +#: common/models.py:2312 msgid "Show recently changed stock items on the homepage" msgstr "Zeige zuletzt geänderte Lagerbestände auf der Startseite" -#: common/models.py:2250 +#: common/models.py:2317 msgid "Show low stock" msgstr "Niedrigen Bestand anzeigen" -#: common/models.py:2251 +#: common/models.py:2318 msgid "Show low stock items on the homepage" msgstr "Zeige geringen Bestand auf der Startseite" -#: common/models.py:2256 +#: common/models.py:2323 msgid "Show depleted stock" msgstr "Lerren Bestand anzeigen" -#: common/models.py:2257 +#: common/models.py:2324 msgid "Show depleted stock items on the homepage" msgstr "Zeige aufgebrauchte Lagerartikel auf der Startseite" -#: common/models.py:2262 +#: common/models.py:2329 msgid "Show needed stock" msgstr "Benötigten Bestand anzeigen" -#: common/models.py:2263 +#: common/models.py:2330 msgid "Show stock items needed for builds on the homepage" msgstr "Zeige Bestand für Bauaufträge auf der Startseite" -#: common/models.py:2268 +#: common/models.py:2335 msgid "Show expired stock" msgstr "Abgelaufenen Bestand anzeigen" -#: common/models.py:2269 +#: common/models.py:2336 msgid "Show expired stock items on the homepage" msgstr "Zeige abgelaufene Lagerbestände auf der Startseite" -#: common/models.py:2274 +#: common/models.py:2341 msgid "Show stale stock" msgstr "Alten Bestand anzeigen" -#: common/models.py:2275 +#: common/models.py:2342 msgid "Show stale stock items on the homepage" msgstr "Zeige überfällige Lagerartikel auf der Startseite" -#: common/models.py:2280 +#: common/models.py:2347 msgid "Show pending builds" msgstr "Ausstehende Bauaufträge anzeigen" -#: common/models.py:2281 +#: common/models.py:2348 msgid "Show pending builds on the homepage" msgstr "Zeige ausstehende Bauaufträge auf der Startseite" -#: common/models.py:2286 +#: common/models.py:2353 msgid "Show overdue builds" msgstr "Zeige überfällige Bauaufträge" -#: common/models.py:2287 +#: common/models.py:2354 msgid "Show overdue builds on the homepage" msgstr "Zeige überfällige Bauaufträge auf der Startseite" -#: common/models.py:2292 +#: common/models.py:2359 msgid "Show outstanding POs" msgstr "Ausstehende POs anzeigen" -#: common/models.py:2293 +#: common/models.py:2360 msgid "Show outstanding POs on the homepage" msgstr "Zeige ausstehende POs auf der Startseite" -#: common/models.py:2298 +#: common/models.py:2365 msgid "Show overdue POs" msgstr "Überfällige POs anzeigen" -#: common/models.py:2299 +#: common/models.py:2366 msgid "Show overdue POs on the homepage" msgstr "Zeige überfällige POs auf der Startseite" -#: common/models.py:2304 +#: common/models.py:2371 msgid "Show outstanding SOs" msgstr "Ausstehende SOs anzeigen" -#: common/models.py:2305 +#: common/models.py:2372 msgid "Show outstanding SOs on the homepage" msgstr "Zeige ausstehende SOs auf der Startseite" -#: common/models.py:2310 +#: common/models.py:2377 msgid "Show overdue SOs" msgstr "Überfällige SOs anzeigen" -#: common/models.py:2311 +#: common/models.py:2378 msgid "Show overdue SOs on the homepage" msgstr "Zeige überfällige SOs auf der Startseite" -#: common/models.py:2316 +#: common/models.py:2383 msgid "Show pending SO shipments" msgstr "Ausstehende Versandaufträge anzeigen" -#: common/models.py:2317 +#: common/models.py:2384 msgid "Show pending SO shipments on the homepage" msgstr "Ausstehende Versandaufträge auf der Startseite anzeigen" -#: common/models.py:2322 +#: common/models.py:2389 msgid "Show News" msgstr "Zeige Neuigkeiten" -#: common/models.py:2323 +#: common/models.py:2390 msgid "Show news on the homepage" msgstr "Neuigkeiten auf der Startseite anzeigen" -#: common/models.py:2328 +#: common/models.py:2395 msgid "Inline label display" msgstr "Label inline anzeigen" -#: common/models.py:2330 +#: common/models.py:2397 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "PDF-Labels im Browser anzeigen, anstatt als Datei herunterzuladen" -#: common/models.py:2336 +#: common/models.py:2403 msgid "Default label printer" msgstr "Standard-Etikettendrucker" -#: common/models.py:2338 +#: common/models.py:2405 msgid "Configure which label printer should be selected by default" msgstr "Einen standardmäßig ausgewählten Etikettendrucker konfigurieren" -#: common/models.py:2344 +#: common/models.py:2411 msgid "Inline report display" msgstr "Berichte inline anzeigen" -#: common/models.py:2346 +#: common/models.py:2413 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "PDF-Berichte im Browser anzeigen, anstatt als Datei herunterzuladen" -#: common/models.py:2352 +#: common/models.py:2419 msgid "Search Parts" msgstr "Teile suchen" -#: common/models.py:2353 +#: common/models.py:2420 msgid "Display parts in search preview window" msgstr "Teile in der Suchvorschau anzeigen" -#: common/models.py:2358 +#: common/models.py:2425 msgid "Search Supplier Parts" msgstr "Zulieferteile durchsuchen" -#: common/models.py:2359 +#: common/models.py:2426 msgid "Display supplier parts in search preview window" msgstr "Zuliefererteile in der Suchvorschau anzeigen" -#: common/models.py:2364 +#: common/models.py:2431 msgid "Search Manufacturer Parts" msgstr "Herstellerteile durchsuchen" -#: common/models.py:2365 +#: common/models.py:2432 msgid "Display manufacturer parts in search preview window" msgstr "Herstellerteile in der Suchvorschau anzeigen" -#: common/models.py:2370 +#: common/models.py:2437 msgid "Hide Inactive Parts" msgstr "Inaktive Teile ausblenden" -#: common/models.py:2371 +#: common/models.py:2438 msgid "Excluded inactive parts from search preview window" msgstr "Inaktive Teile in der Suchvorschau ausblenden" -#: common/models.py:2376 +#: common/models.py:2443 msgid "Search Categories" msgstr "Kategorien durchsuchen" -#: common/models.py:2377 +#: common/models.py:2444 msgid "Display part categories in search preview window" msgstr "Teilekategorien in der Suchvorschau anzeigen" -#: common/models.py:2382 +#: common/models.py:2449 msgid "Search Stock" msgstr "Bestand durchsuchen" -#: common/models.py:2383 +#: common/models.py:2450 msgid "Display stock items in search preview window" msgstr "Lagerartikel in Suchvorschau anzeigen" -#: common/models.py:2388 +#: common/models.py:2455 msgid "Hide Unavailable Stock Items" msgstr "Nicht verfügbare Artikel ausblenden" -#: common/models.py:2390 +#: common/models.py:2457 msgid "Exclude stock items which are not available from the search preview window" msgstr "Nicht verfügbare Lagerartikel aus der Suchvorschau ausschließen" -#: common/models.py:2396 +#: common/models.py:2463 msgid "Search Locations" msgstr "Lagerorte durchsuchen" -#: common/models.py:2397 +#: common/models.py:2464 msgid "Display stock locations in search preview window" msgstr "Lagerorte in Suchvorschau anzeigen" -#: common/models.py:2402 +#: common/models.py:2469 msgid "Search Companies" msgstr "Firmen durchsuchen" -#: common/models.py:2403 +#: common/models.py:2470 msgid "Display companies in search preview window" msgstr "Firmen in der Suchvorschau anzeigen" -#: common/models.py:2408 +#: common/models.py:2475 msgid "Search Build Orders" msgstr "Bauaufträge durchsuchen" -#: common/models.py:2409 +#: common/models.py:2476 msgid "Display build orders in search preview window" msgstr "Bauaufträge in der Suchvorschau anzeigen" -#: common/models.py:2414 +#: common/models.py:2481 msgid "Search Purchase Orders" msgstr "Bestellungen durchsuchen" -#: common/models.py:2415 +#: common/models.py:2482 msgid "Display purchase orders in search preview window" msgstr "Bestellungen in der Suchvorschau anzeigen" -#: common/models.py:2420 +#: common/models.py:2487 msgid "Exclude Inactive Purchase Orders" msgstr "Inaktive Bestellungen ausblenden" -#: common/models.py:2422 +#: common/models.py:2489 msgid "Exclude inactive purchase orders from search preview window" msgstr "Inaktive Bestellungen in der Suchvorschau ausblenden" -#: common/models.py:2428 +#: common/models.py:2495 msgid "Search Sales Orders" msgstr "Aufträge durchsuchen" -#: common/models.py:2429 +#: common/models.py:2496 msgid "Display sales orders in search preview window" msgstr "Aufträge in der Suchvorschau anzeigen" -#: common/models.py:2434 +#: common/models.py:2501 msgid "Exclude Inactive Sales Orders" msgstr "Inaktive Aufträge ausblenden" -#: common/models.py:2436 +#: common/models.py:2503 msgid "Exclude inactive sales orders from search preview window" msgstr "Inaktive Aufträge in der Suchvorschau ausblenden" -#: common/models.py:2442 +#: common/models.py:2509 msgid "Search Return Orders" msgstr "Suche nach Rücksendungen" -#: common/models.py:2443 +#: common/models.py:2510 msgid "Display return orders in search preview window" msgstr "Rücksendungen in der Suchvorschau anzeigen" -#: common/models.py:2448 +#: common/models.py:2515 msgid "Exclude Inactive Return Orders" msgstr "Inaktive Rücksendungen ausblenden" -#: common/models.py:2450 +#: common/models.py:2517 msgid "Exclude inactive return orders from search preview window" msgstr "Inaktive Rücksendungen in der Suchvorschau ausblenden" -#: common/models.py:2456 +#: common/models.py:2523 msgid "Search Preview Results" msgstr "Anzahl Suchergebnisse" -#: common/models.py:2458 +#: common/models.py:2525 msgid "Number of results to show in each section of the search preview window" msgstr "Anzahl der Ergebnisse, die in der Vorschau pro Sektion angezeigt werden sollen" -#: common/models.py:2464 +#: common/models.py:2531 msgid "Regex Search" msgstr "Regex Suche" -#: common/models.py:2465 +#: common/models.py:2532 msgid "Enable regular expressions in search queries" msgstr "Reguläre Ausdrücke in Suchabfragen aktivieren" -#: common/models.py:2470 +#: common/models.py:2537 msgid "Whole Word Search" msgstr "Ganzes Wort suchen" -#: common/models.py:2471 +#: common/models.py:2538 msgid "Search queries return results for whole word matches" msgstr "Suchabfragen liefern Ergebnisse für ganze Wortkombinationen" -#: common/models.py:2476 +#: common/models.py:2543 msgid "Show Quantity in Forms" msgstr "zeige Bestand in Eingabemasken" -#: common/models.py:2477 +#: common/models.py:2544 msgid "Display available part quantity in some forms" msgstr "Zeige den verfügbaren Bestand in einigen Eingabemasken" -#: common/models.py:2482 +#: common/models.py:2549 msgid "Escape Key Closes Forms" msgstr "Esc-Taste schließt Formulare" -#: common/models.py:2483 +#: common/models.py:2550 msgid "Use the escape key to close modal forms" msgstr "Benutze die Esc-Taste, um Formulare zu schließen" -#: common/models.py:2488 +#: common/models.py:2555 msgid "Fixed Navbar" msgstr "Fixierter Navigationsleiste" -#: common/models.py:2489 +#: common/models.py:2556 msgid "The navbar position is fixed to the top of the screen" msgstr "Position der Navigationsleiste am oberen Bildschirmrand fixieren" -#: common/models.py:2494 +#: common/models.py:2561 msgid "Date Format" msgstr "Datumsformat" -#: common/models.py:2495 +#: common/models.py:2562 msgid "Preferred format for displaying dates" msgstr "Bevorzugtes Format für die Anzeige von Daten" -#: common/models.py:2508 part/templates/part/detail.html:41 +#: common/models.py:2575 part/templates/part/detail.html:41 msgid "Part Scheduling" msgstr "Teilzeitplanung" -#: common/models.py:2509 +#: common/models.py:2576 msgid "Display part scheduling information" msgstr "Zeige Zeitplanung für Teile" -#: common/models.py:2514 part/templates/part/detail.html:62 +#: common/models.py:2581 part/templates/part/detail.html:62 msgid "Part Stocktake" msgstr "Inventur" -#: common/models.py:2516 +#: common/models.py:2583 msgid "Display part stocktake information (if stocktake functionality is enabled)" msgstr "Zeigt Inventur-Informationen an (falls die Inventurfunktion aktiviert ist)" -#: common/models.py:2522 +#: common/models.py:2589 msgid "Table String Length" msgstr "Zeichenkettenlänge in Tabellen" -#: common/models.py:2524 +#: common/models.py:2591 msgid "Maximum length limit for strings displayed in table views" msgstr "Maximale Länge für Zeichenketten, die in Tabellenansichten angezeigt werden" -#: common/models.py:2530 +#: common/models.py:2597 msgid "Receive error reports" msgstr "Fehlerberichte empfangen" -#: common/models.py:2531 +#: common/models.py:2598 msgid "Receive notifications for system errors" msgstr "Benachrichtigungen bei Systemfehlern erhalten" -#: common/models.py:2536 +#: common/models.py:2603 msgid "Last used printing machines" msgstr "Zuletzt verwendete Druckmaschinen" -#: common/models.py:2537 +#: common/models.py:2604 msgid "Save the last used printing machines for a user" msgstr "Die zuletzt benutzten Druckmaschinen für einen Benutzer speichern" -#: common/models.py:2557 common/models.py:2558 common/models.py:2715 -#: common/models.py:2716 common/models.py:2961 common/models.py:2962 -#: common/models.py:3288 common/models.py:3289 importer/models.py:88 -#: part/models.py:3307 part/models.py:3394 part/models.py:3468 -#: part/models.py:3496 plugin/models.py:274 plugin/models.py:275 -#: report/templates/report/inventree_test_report.html:105 -#: templates/js/translated/stock.js:3120 users/models.py:111 +#: common/models.py:2621 common/models.py:2622 common/models.py:2779 +#: common/models.py:2780 common/models.py:3025 common/models.py:3026 +#: common/models.py:3349 common/models.py:3350 common/models.py:3534 +#: importer/models.py:89 part/models.py:3358 part/models.py:3445 +#: part/models.py:3519 part/models.py:3547 plugin/models.py:313 +#: plugin/models.py:314 report/templates/report/inventree_test_report.html:105 +#: templates/js/translated/stock.js:3121 users/models.py:111 msgid "User" msgstr "Benutzer" -#: common/models.py:2580 +#: common/models.py:2644 msgid "Price break quantity" msgstr "Preisstaffelungs Anzahl" -#: common/models.py:2587 company/serializers.py:513 order/admin.py:42 -#: order/models.py:1430 order/models.py:2417 -#: templates/js/translated/company.js:1823 templates/js/translated/part.js:1892 +#: common/models.py:2651 company/serializers.py:524 order/admin.py:42 +#: order/models.py:1447 order/models.py:2456 +#: templates/js/translated/company.js:1824 templates/js/translated/part.js:1892 #: templates/js/translated/pricing.js:621 #: templates/js/translated/return_order.js:739 msgid "Price" msgstr "Preis" -#: common/models.py:2588 +#: common/models.py:2652 msgid "Unit price at specified quantity" msgstr "Stückpreis für die angegebene Anzahl" -#: common/models.py:2692 common/models.py:2877 +#: common/models.py:2756 common/models.py:2941 msgid "Endpoint" msgstr "Endpunkt" -#: common/models.py:2693 +#: common/models.py:2757 msgid "Endpoint at which this webhook is received" msgstr "Endpunkt, an dem dieser Webhook empfangen wird" -#: common/models.py:2703 +#: common/models.py:2767 msgid "Name for this webhook" msgstr "Name für diesen Webhook" -#: common/models.py:2707 +#: common/models.py:2771 msgid "Is this webhook active" msgstr "Ist dieser Webhook aktiv" -#: common/models.py:2723 users/models.py:159 +#: common/models.py:2787 users/models.py:159 msgid "Token" msgstr "Token" -#: common/models.py:2724 +#: common/models.py:2788 msgid "Token for access" msgstr "Token für Zugang" -#: common/models.py:2732 +#: common/models.py:2796 msgid "Secret" msgstr "Geheimnis" -#: common/models.py:2733 +#: common/models.py:2797 msgid "Shared secret for HMAC" msgstr "Shared Secret für HMAC" -#: common/models.py:2841 +#: common/models.py:2905 msgid "Message ID" msgstr "Nachrichten-ID" -#: common/models.py:2842 +#: common/models.py:2906 msgid "Unique identifier for this message" msgstr "Eindeutige Kennung für diese Nachricht" -#: common/models.py:2850 +#: common/models.py:2914 msgid "Host" msgstr "Host" -#: common/models.py:2851 +#: common/models.py:2915 msgid "Host from which this message was received" msgstr "Host von dem diese Nachricht empfangen wurde" -#: common/models.py:2859 +#: common/models.py:2923 msgid "Header" msgstr "Kopfzeile" -#: common/models.py:2860 +#: common/models.py:2924 msgid "Header of this message" msgstr "Header dieser Nachricht" -#: common/models.py:2867 +#: common/models.py:2931 msgid "Body" msgstr "Body" -#: common/models.py:2868 +#: common/models.py:2932 msgid "Body of this message" msgstr "Body dieser Nachricht" -#: common/models.py:2878 +#: common/models.py:2942 msgid "Endpoint on which this message was received" msgstr "Endpunkt, über den diese Nachricht empfangen wurde" -#: common/models.py:2883 +#: common/models.py:2947 msgid "Worked on" msgstr "Bearbeitet" -#: common/models.py:2884 +#: common/models.py:2948 msgid "Was the work on this message finished?" msgstr "Wurde die Arbeit an dieser Nachricht abgeschlossen?" -#: common/models.py:3010 +#: common/models.py:3074 msgid "Id" msgstr "ID" -#: common/models.py:3012 templates/js/translated/company.js:965 -#: templates/js/translated/news.js:44 +#: common/models.py:3076 part/serializers.py:271 +#: templates/js/translated/company.js:966 templates/js/translated/news.js:44 msgid "Title" msgstr "Titel" -#: common/models.py:3014 common/models.py:3272 company/models.py:149 -#: company/models.py:446 company/models.py:512 company/models.py:818 -#: order/models.py:302 order/models.py:1385 order/models.py:1817 -#: part/admin.py:55 part/models.py:1057 +#: common/models.py:3078 common/models.py:3333 company/models.py:146 +#: company/models.py:443 company/models.py:509 company/models.py:815 +#: order/models.py:309 order/models.py:1402 order/models.py:1846 +#: part/admin.py:55 part/models.py:1118 #: part/templates/part/part_scheduling.html:11 #: report/templates/report/inventree_build_order_report.html:164 -#: stock/admin.py:229 templates/js/translated/company.js:1319 -#: templates/js/translated/company.js:1673 templates/js/translated/order.js:376 +#: stock/admin.py:230 templates/js/translated/company.js:1320 +#: templates/js/translated/company.js:1674 templates/js/translated/order.js:376 #: templates/js/translated/part.js:2475 -#: templates/js/translated/purchase_order.js:2110 -#: templates/js/translated/purchase_order.js:2274 +#: templates/js/translated/purchase_order.js:2094 +#: templates/js/translated/purchase_order.js:2258 #: templates/js/translated/return_order.js:778 -#: templates/js/translated/sales_order.js:1092 -#: templates/js/translated/sales_order.js:2023 +#: templates/js/translated/sales_order.js:1058 +#: templates/js/translated/sales_order.js:2004 msgid "Link" msgstr "Link" -#: common/models.py:3016 templates/js/translated/news.js:60 +#: common/models.py:3080 templates/js/translated/news.js:60 msgid "Published" msgstr "Veröffentlicht" -#: common/models.py:3018 templates/InvenTree/settings/plugin_settings.html:32 +#: common/models.py:3082 templates/InvenTree/settings/plugin_settings.html:32 #: templates/js/translated/news.js:56 templates/js/translated/plugin.js:103 msgid "Author" msgstr "Autor" -#: common/models.py:3020 templates/js/translated/news.js:52 +#: common/models.py:3084 templates/js/translated/news.js:52 msgid "Summary" msgstr "Zusammenfassung" -#: common/models.py:3023 +#: common/models.py:3087 msgid "Read" msgstr "Gelesen" -#: common/models.py:3023 +#: common/models.py:3087 msgid "Was this news item read?" msgstr "Wurde diese Nachricht gelesen?" -#: common/models.py:3040 company/models.py:159 part/models.py:1067 +#: common/models.py:3104 company/models.py:156 part/models.py:1128 #: report/templates/report/inventree_bill_of_materials_report.html:126 #: report/templates/report/inventree_bill_of_materials_report.html:148 #: report/templates/report/inventree_return_order_report.html:35 -#: stock/templates/stock/item_base.html:133 templates/503.html:31 +#: stock/templates/stock/item_base.html:130 templates/503.html:31 #: templates/hover_image.html:7 templates/hover_image.html:9 #: templates/modals.html:6 msgid "Image" msgstr "Bild" -#: common/models.py:3040 +#: common/models.py:3104 msgid "Image file" msgstr "Bilddatei" -#: common/models.py:3052 common/models.py:3256 +#: common/models.py:3116 common/models.py:3317 msgid "Target model type for this image" msgstr "" -#: common/models.py:3056 +#: common/models.py:3120 msgid "Target model ID for this image" msgstr "" -#: common/models.py:3078 +#: common/models.py:3142 msgid "Custom Unit" msgstr "" -#: common/models.py:3099 +#: common/models.py:3160 msgid "Unit symbol must be unique" msgstr "" -#: common/models.py:3114 +#: common/models.py:3175 msgid "Unit name must be a valid identifier" msgstr "Einheitsname muss eine gültige Kennung sein" -#: common/models.py:3133 +#: common/models.py:3194 msgid "Unit name" msgstr "Einheitsname" -#: common/models.py:3140 templates/InvenTree/settings/settings_staff_js.html:75 +#: common/models.py:3201 templates/InvenTree/settings/settings_staff_js.html:75 msgid "Symbol" msgstr "Symbol" -#: common/models.py:3141 +#: common/models.py:3202 msgid "Optional unit symbol" msgstr "Optionales Einheitssymbol" -#: common/models.py:3147 templates/InvenTree/settings/settings_staff_js.html:71 +#: common/models.py:3208 templates/InvenTree/settings/settings_staff_js.html:71 msgid "Definition" msgstr "Definition" -#: common/models.py:3148 +#: common/models.py:3209 msgid "Unit definition" msgstr "Einheitsdefinition" -#: common/models.py:3206 common/models.py:3263 stock/models.py:2558 -#: templates/js/translated/attachment.js:119 +#: common/models.py:3267 common/models.py:3324 stock/models.py:2674 +#: stock/serializers.py:244 templates/js/translated/attachment.js:119 #: templates/js/translated/attachment.js:345 msgid "Attachment" msgstr "Anhang" -#: common/models.py:3218 +#: common/models.py:3279 msgid "Missing file" msgstr "Fehlende Datei" -#: common/models.py:3219 +#: common/models.py:3280 msgid "Missing external link" msgstr "Fehlender externer Link" -#: common/models.py:3264 +#: common/models.py:3325 msgid "Select file to attach" msgstr "Datei zum Anhängen auswählen" -#: common/models.py:3279 templates/js/translated/attachment.js:120 +#: common/models.py:3340 templates/js/translated/attachment.js:120 #: templates/js/translated/attachment.js:360 msgid "Comment" msgstr "Kommentar" -#: common/models.py:3280 +#: common/models.py:3341 msgid "Attachment comment" msgstr "" -#: common/models.py:3296 +#: common/models.py:3357 msgid "Upload date" msgstr "Upload Datum" -#: common/models.py:3297 +#: common/models.py:3358 msgid "Date the file was uploaded" msgstr "Datum der hochgeladenen Datei" -#: common/models.py:3301 +#: common/models.py:3362 msgid "File size" msgstr "Dateigröße" -#: common/models.py:3301 +#: common/models.py:3362 msgid "File size in bytes" msgstr "Dateigröße in Bytes" -#: common/models.py:3339 common/serializers.py:562 +#: common/models.py:3400 common/serializers.py:609 msgid "Invalid model type specified for attachment" msgstr "Ungültiger Modelltyp für Anhang angegeben" -#: common/notifications.py:314 +#: common/models.py:3409 plugin/models.py:43 users/models.py:100 +msgid "Key" +msgstr "Schlüssel" + +#: common/models.py:3410 +msgid "Value that will be saved in the models database" +msgstr "" + +#: common/models.py:3413 +msgid "Name of the state" +msgstr "" + +#: common/models.py:3417 part/serializers.py:273 +msgid "Label" +msgstr "" + +#: common/models.py:3418 +msgid "Label that will be displayed in the frontend" +msgstr "" + +#: common/models.py:3424 +msgid "Color" +msgstr "" + +#: common/models.py:3425 +msgid "Color that will be displayed in the frontend" +msgstr "" + +#: common/models.py:3428 +msgid "Logical Key" +msgstr "" + +#: common/models.py:3430 +msgid "State logical key that is equal to this custom state in business logic" +msgstr "" + +#: common/models.py:3438 part/serializers.py:275 +msgid "Model" +msgstr "" + +#: common/models.py:3439 +msgid "Model this state is associated with" +msgstr "" + +#: common/models.py:3443 +msgid "Reference Status Set" +msgstr "" + +#: common/models.py:3444 +msgid "Status set that is extended with this custom state" +msgstr "" + +#: common/models.py:3450 +msgid "Custom State" +msgstr "" + +#: common/models.py:3451 +msgid "Custom States" +msgstr "" + +#: common/models.py:3466 +msgid "Model must be selected" +msgstr "" + +#: common/models.py:3469 +msgid "Key must be selected" +msgstr "" + +#: common/models.py:3472 +msgid "Logical key must be selected" +msgstr "" + +#: common/models.py:3476 +msgid "Key must be different from logical key" +msgstr "" + +#: common/models.py:3480 +msgid "Reference status must be selected" +msgstr "" + +#: common/models.py:3492 +msgid "Reference status set not found" +msgstr "" + +#: common/models.py:3498 +msgid "Key must be different from the logical keys of the reference status" +msgstr "" + +#: common/models.py:3504 +msgid "Logical key must be in the logical keys of the reference status" +msgstr "" + +#: common/models.py:3519 +msgid "Barcode Scan" +msgstr "" + +#: common/models.py:3523 importer/models.py:512 part/models.py:4009 +msgid "Data" +msgstr "Wert" + +#: common/models.py:3524 +msgid "Barcode data" +msgstr "" + +#: common/models.py:3535 +msgid "User who scanned the barcode" +msgstr "" + +#: common/models.py:3540 importer/models.py:60 +msgid "Timestamp" +msgstr "Zeitstempel" + +#: common/models.py:3541 +msgid "Date and time of the barcode scan" +msgstr "" + +#: common/models.py:3547 +msgid "URL endpoint which processed the barcode" +msgstr "" + +#: common/models.py:3554 order/models.py:1437 plugin/serializers.py:89 +msgid "Context" +msgstr "Kontext" + +#: common/models.py:3555 +msgid "Context data for the barcode scan" +msgstr "" + +#: common/models.py:3562 +msgid "Response" +msgstr "" + +#: common/models.py:3563 +msgid "Response data from the barcode scan" +msgstr "" + +#: common/models.py:3569 report/templates/report/inventree_test_report.html:103 +#: stock/models.py:2660 +msgid "Result" +msgstr "Ergebnis" + +#: common/models.py:3570 +msgid "Was the barcode scan successful?" +msgstr "" + +#: common/notifications.py:328 #, python-brace-format msgid "New {verbose_name}" msgstr "Neue {verbose_name}" -#: common/notifications.py:316 +#: common/notifications.py:330 msgid "A new order has been created and assigned to you" msgstr "Eine neue Bestellung wurde erstellt und Ihnen zugewiesen" -#: common/notifications.py:322 +#: common/notifications.py:336 #, python-brace-format msgid "{verbose_name} canceled" msgstr "{verbose_name} storniert" -#: common/notifications.py:324 +#: common/notifications.py:338 msgid "A order that is assigned to you was canceled" msgstr "Eine Bestellung, die Ihnen zugewiesen war, wurde storniert" -#: common/notifications.py:330 common/notifications.py:337 order/api.py:462 +#: common/notifications.py:344 common/notifications.py:351 order/api.py:440 msgid "Items Received" msgstr "Artikel erhalten" -#: common/notifications.py:332 +#: common/notifications.py:346 msgid "Items have been received against a purchase order" msgstr "Artikel wurden aus einer Bestellung erhalten" -#: common/notifications.py:339 +#: common/notifications.py:353 msgid "Items have been received against a return order" msgstr "Artikel wurden aus einer Rücksendung erhalten" -#: common/notifications.py:457 +#: common/notifications.py:475 msgid "Error raised by plugin" msgstr "Fehler in Plugin aufgetreten" -#: common/serializers.py:375 +#: common/serializers.py:423 msgid "Is Running" msgstr "Wird ausgeführt" -#: common/serializers.py:381 +#: common/serializers.py:429 msgid "Pending Tasks" msgstr "Anstehende Aufgaben" -#: common/serializers.py:387 +#: common/serializers.py:435 msgid "Scheduled Tasks" msgstr "Geplante Aufgaben" -#: common/serializers.py:393 +#: common/serializers.py:441 msgid "Failed Tasks" msgstr "Fehlgeschlagene Aufgaben" -#: common/serializers.py:408 +#: common/serializers.py:456 msgid "Task ID" msgstr "Aufgabe-ID" -#: common/serializers.py:408 +#: common/serializers.py:456 msgid "Unique task ID" msgstr "Eindeutige Aufgaben-ID" -#: common/serializers.py:410 +#: common/serializers.py:458 msgid "Lock" msgstr "Sperren" -#: common/serializers.py:410 +#: common/serializers.py:458 msgid "Lock time" msgstr "Sperrzeit" -#: common/serializers.py:412 +#: common/serializers.py:460 msgid "Task name" msgstr "Aufgabenname" -#: common/serializers.py:414 +#: common/serializers.py:462 msgid "Function" msgstr "Funktion" -#: common/serializers.py:414 +#: common/serializers.py:462 msgid "Function name" msgstr "Funktionsname" -#: common/serializers.py:416 +#: common/serializers.py:464 msgid "Arguments" msgstr "Parameter" -#: common/serializers.py:416 +#: common/serializers.py:464 msgid "Task arguments" msgstr "Aufgaben-Parameter" -#: common/serializers.py:419 +#: common/serializers.py:467 msgid "Keyword Arguments" msgstr "Schlüsselwort Parameter" -#: common/serializers.py:419 +#: common/serializers.py:467 msgid "Task keyword arguments" msgstr "Schlüsselwort Parameter für Aufgaben" -#: common/serializers.py:529 +#: common/serializers.py:577 msgid "Filename" msgstr "Dateiname" -#: common/serializers.py:536 report/api.py:100 report/serializers.py:53 +#: common/serializers.py:584 report/api.py:100 report/serializers.py:54 msgid "Model Type" msgstr "Modelltyp" -#: common/serializers.py:565 +#: common/serializers.py:612 msgid "User does not have permission to create or edit attachments for this model" msgstr "Benutzer hat keine Berechtigung, Anhänge für dieses Modell zu erstellen oder zu bearbeiten" @@ -4116,15 +4295,15 @@ msgstr "Übereinstimmende Felder" msgid "Match Items" msgstr "Positionen zuordnen" -#: common/views.py:401 +#: common/views.py:397 msgid "Fields matching failed" msgstr "Felder zuteilen fehlgeschlagen" -#: common/views.py:464 +#: common/views.py:460 msgid "Parts imported" msgstr "Teile importiert" -#: common/views.py:494 order/templates/order/order_wizard/match_fields.html:27 +#: common/views.py:490 order/templates/order/order_wizard/match_fields.html:27 #: order/templates/order/order_wizard/match_parts.html:19 #: order/templates/order/order_wizard/po_upload.html:49 #: part/templates/part/import_wizard/match_fields.html:27 @@ -4155,429 +4334,429 @@ msgstr "Internes Teil ist aktiv" msgid "Supplier is Active" msgstr "Lieferant ist aktiv" -#: company/models.py:100 company/models.py:371 +#: company/models.py:97 company/models.py:368 #: company/templates/company/company_base.html:8 #: company/templates/company/company_base.html:12 stock/api.py:812 -#: templates/InvenTree/search.html:178 templates/js/translated/company.js:496 +#: templates/InvenTree/search.html:178 templates/js/translated/company.js:497 msgid "Company" msgstr "Firma" -#: company/models.py:101 company/views.py:51 +#: company/models.py:98 company/views.py:51 #: templates/js/translated/search.js:192 msgid "Companies" msgstr "Firmen" -#: company/models.py:117 +#: company/models.py:114 msgid "Company description" msgstr "Firmenbeschreibung" -#: company/models.py:118 +#: company/models.py:115 msgid "Description of the company" msgstr "Firmenbeschreibung" -#: company/models.py:123 company/templates/company/company_base.html:106 +#: company/models.py:120 company/templates/company/company_base.html:106 #: templates/InvenTree/settings/plugin_settings.html:54 -#: templates/js/translated/company.js:532 +#: templates/js/translated/company.js:533 msgid "Website" msgstr "Webseite" -#: company/models.py:123 +#: company/models.py:120 msgid "Company website URL" msgstr "Firmenwebsite Adresse/URL" -#: company/models.py:128 +#: company/models.py:125 msgid "Phone number" msgstr "Kontakt-Tel." -#: company/models.py:130 +#: company/models.py:127 msgid "Contact phone number" msgstr "Kontakt-Telefon" -#: company/models.py:137 +#: company/models.py:134 msgid "Contact email address" msgstr "Kontakt-Email" -#: company/models.py:142 company/models.py:275 -#: company/templates/company/company_base.html:145 order/models.py:342 -#: order/templates/order/order_base.html:208 -#: order/templates/order/return_order_base.html:177 -#: order/templates/order/sales_order_base.html:221 +#: company/models.py:139 company/models.py:272 +#: company/templates/company/company_base.html:145 order/models.py:349 +#: order/templates/order/order_base.html:217 +#: order/templates/order/return_order_base.html:178 +#: order/templates/order/sales_order_base.html:222 msgid "Contact" msgstr "Kontakt" -#: company/models.py:144 +#: company/models.py:141 msgid "Point of contact" msgstr "Anlaufstelle" -#: company/models.py:150 +#: company/models.py:147 msgid "Link to external company information" msgstr "Link auf externe Firmeninformation" -#: company/models.py:163 +#: company/models.py:160 msgid "Is this company active?" msgstr "Ist dieses Unternehmen aktiv?" -#: company/models.py:168 +#: company/models.py:165 msgid "Is customer" msgstr "Ist Kunde" -#: company/models.py:169 +#: company/models.py:166 msgid "Do you sell items to this company?" msgstr "Verkaufen Sie Teile an diese Firma?" -#: company/models.py:174 +#: company/models.py:171 msgid "Is supplier" msgstr "Ist Zulieferer" -#: company/models.py:175 +#: company/models.py:172 msgid "Do you purchase items from this company?" msgstr "Kaufen Sie Teile von dieser Firma?" -#: company/models.py:180 +#: company/models.py:177 msgid "Is manufacturer" msgstr "Ist Hersteller" -#: company/models.py:181 +#: company/models.py:178 msgid "Does this company manufacture parts?" msgstr "Produziert diese Firma Teile?" -#: company/models.py:189 +#: company/models.py:186 msgid "Default currency used for this company" msgstr "Standard-Währung für diese Firma" -#: company/models.py:314 company/templates/company/company_base.html:124 -#: order/models.py:352 order/templates/order/order_base.html:215 -#: order/templates/order/return_order_base.html:184 -#: order/templates/order/sales_order_base.html:228 +#: company/models.py:311 company/templates/company/company_base.html:124 +#: order/models.py:359 order/templates/order/order_base.html:224 +#: order/templates/order/return_order_base.html:185 +#: order/templates/order/sales_order_base.html:229 msgid "Address" msgstr "Adresse" -#: company/models.py:315 company/templates/company/sidebar.html:35 +#: company/models.py:312 company/templates/company/sidebar.html:35 msgid "Addresses" msgstr "Adressen" -#: company/models.py:372 +#: company/models.py:369 msgid "Select company" msgstr "Firma auswählen" -#: company/models.py:377 +#: company/models.py:374 msgid "Address title" msgstr "Adresstitel" -#: company/models.py:378 +#: company/models.py:375 msgid "Title describing the address entry" msgstr "Titel zur Beschreibung des Adresseintrages" -#: company/models.py:384 +#: company/models.py:381 msgid "Primary address" msgstr "Primäre Adresse" -#: company/models.py:385 +#: company/models.py:382 msgid "Set as primary address" msgstr "Als primäre Adresse festlegen" -#: company/models.py:390 templates/js/translated/company.js:914 -#: templates/js/translated/company.js:971 +#: company/models.py:387 templates/js/translated/company.js:915 +#: templates/js/translated/company.js:972 msgid "Line 1" msgstr "Linie 1" -#: company/models.py:391 +#: company/models.py:388 msgid "Address line 1" msgstr "Adresszeile 1" -#: company/models.py:397 templates/js/translated/company.js:915 -#: templates/js/translated/company.js:977 +#: company/models.py:394 templates/js/translated/company.js:916 +#: templates/js/translated/company.js:978 msgid "Line 2" msgstr "Linie 2" -#: company/models.py:398 +#: company/models.py:395 msgid "Address line 2" msgstr "Adresszeile 2" -#: company/models.py:404 company/models.py:405 -#: templates/js/translated/company.js:983 +#: company/models.py:401 company/models.py:402 +#: templates/js/translated/company.js:984 msgid "Postal code" msgstr "Postleitzahl" -#: company/models.py:411 +#: company/models.py:408 msgid "City/Region" msgstr "Stadt/Region" -#: company/models.py:412 +#: company/models.py:409 msgid "Postal code city/region" msgstr "Postleitzahl Stadt/Region" -#: company/models.py:418 +#: company/models.py:415 msgid "State/Province" msgstr "Staat/Provinz" -#: company/models.py:419 +#: company/models.py:416 msgid "State or province" msgstr "Bundesland" -#: company/models.py:425 templates/js/translated/company.js:1001 +#: company/models.py:422 templates/js/translated/company.js:1002 msgid "Country" msgstr "Land" -#: company/models.py:426 +#: company/models.py:423 msgid "Address country" msgstr "Adresse Land" -#: company/models.py:432 +#: company/models.py:429 msgid "Courier shipping notes" msgstr "Versandnotizen" -#: company/models.py:433 +#: company/models.py:430 msgid "Notes for shipping courier" msgstr "Notizen für Versandkurier" -#: company/models.py:439 +#: company/models.py:436 msgid "Internal shipping notes" msgstr "Interne Versandnotizen" -#: company/models.py:440 +#: company/models.py:437 msgid "Shipping notes for internal use" msgstr "Versandnotizen für interne Verwendung" -#: company/models.py:447 +#: company/models.py:444 msgid "Link to address information (external)" msgstr "Link zu Adressinformationen (extern)" -#: company/models.py:470 company/models.py:587 company/models.py:811 +#: company/models.py:467 company/models.py:584 company/models.py:808 #: company/templates/company/manufacturer_part.html:7 #: company/templates/company/manufacturer_part.html:24 -#: stock/templates/stock/item_base.html:217 +#: stock/templates/stock/item_base.html:214 msgid "Manufacturer Part" msgstr "Herstellerteil" -#: company/models.py:487 company/models.py:779 stock/models.py:787 -#: stock/serializers.py:445 stock/templates/stock/item_base.html:142 +#: company/models.py:484 company/models.py:776 stock/models.py:864 +#: stock/serializers.py:455 stock/templates/stock/item_base.html:139 #: templates/js/translated/bom.js:622 msgid "Base Part" msgstr "Basisteil" -#: company/models.py:489 company/models.py:781 +#: company/models.py:486 company/models.py:778 msgid "Select part" msgstr "Teil auswählen" -#: company/models.py:498 company/templates/company/company_base.html:82 +#: company/models.py:495 company/templates/company/company_base.html:82 #: company/templates/company/manufacturer_part.html:90 -#: company/templates/company/supplier_part.html:145 part/serializers.py:554 -#: stock/templates/stock/item_base.html:207 -#: templates/js/translated/company.js:507 -#: templates/js/translated/company.js:1118 -#: templates/js/translated/company.js:1296 -#: templates/js/translated/company.js:1611 +#: company/templates/company/supplier_part.html:146 part/serializers.py:598 +#: stock/templates/stock/item_base.html:204 +#: templates/js/translated/company.js:508 +#: templates/js/translated/company.js:1119 +#: templates/js/translated/company.js:1297 +#: templates/js/translated/company.js:1612 #: templates/js/translated/table_filters.js:812 msgid "Manufacturer" msgstr "Hersteller" -#: company/models.py:499 +#: company/models.py:496 msgid "Select manufacturer" msgstr "Hersteller auswählen" -#: company/models.py:505 company/templates/company/manufacturer_part.html:101 -#: company/templates/company/supplier_part.html:153 order/serializers.py:556 -#: part/serializers.py:564 templates/js/translated/company.js:351 -#: templates/js/translated/company.js:1117 -#: templates/js/translated/company.js:1312 -#: templates/js/translated/company.js:1630 templates/js/translated/part.js:1807 -#: templates/js/translated/purchase_order.js:1921 -#: templates/js/translated/purchase_order.js:2123 +#: company/models.py:502 company/templates/company/manufacturer_part.html:101 +#: company/templates/company/supplier_part.html:154 order/serializers.py:641 +#: part/serializers.py:608 templates/js/translated/company.js:352 +#: templates/js/translated/company.js:1118 +#: templates/js/translated/company.js:1313 +#: templates/js/translated/company.js:1631 templates/js/translated/part.js:1807 +#: templates/js/translated/purchase_order.js:1905 +#: templates/js/translated/purchase_order.js:2107 msgid "MPN" msgstr "MPN" -#: company/models.py:513 +#: company/models.py:510 msgid "URL for external manufacturer part link" msgstr "Externe URL für das Herstellerteil" -#: company/models.py:522 +#: company/models.py:519 msgid "Manufacturer part description" msgstr "Teilbeschreibung des Herstellers" -#: company/models.py:575 +#: company/models.py:572 msgid "Manufacturer Part Parameter" msgstr "Teilenummer des Herstellers" -#: company/models.py:594 +#: company/models.py:591 msgid "Parameter name" msgstr "Parametername" -#: company/models.py:600 report/templates/report/inventree_test_report.html:104 -#: stock/models.py:2550 templates/js/translated/company.js:1166 -#: templates/js/translated/company.js:1419 templates/js/translated/part.js:1499 +#: company/models.py:597 report/templates/report/inventree_test_report.html:104 +#: stock/models.py:2666 templates/js/translated/company.js:1167 +#: templates/js/translated/company.js:1420 templates/js/translated/part.js:1499 #: templates/js/translated/stock.js:1607 msgid "Value" msgstr "Wert" -#: company/models.py:601 +#: company/models.py:598 msgid "Parameter value" msgstr "Parameterwert" -#: company/models.py:608 company/templates/company/supplier_part.html:168 -#: part/admin.py:57 part/models.py:1147 part/models.py:3771 -#: part/templates/part/part_base.html:293 -#: templates/js/translated/company.js:1425 templates/js/translated/part.js:1518 +#: company/models.py:605 company/templates/company/supplier_part.html:169 +#: part/admin.py:57 part/models.py:1208 part/models.py:3822 +#: part/templates/part/part_base.html:301 +#: templates/js/translated/company.js:1426 templates/js/translated/part.js:1518 #: templates/js/translated/part.js:1622 templates/js/translated/part.js:2376 msgid "Units" msgstr "Einheiten" -#: company/models.py:609 +#: company/models.py:606 msgid "Parameter units" msgstr "Parametereinheit" -#: company/models.py:662 company/templates/company/supplier_part.html:7 -#: company/templates/company/supplier_part.html:24 order/api.py:442 -#: order/serializers.py:491 stock/models.py:798 -#: stock/templates/stock/item_base.html:233 -#: templates/js/translated/build.js:1052 -#: templates/js/translated/company.js:1600 -#: templates/js/translated/purchase_order.js:752 -#: templates/js/translated/stock.js:2365 +#: company/models.py:659 company/templates/company/supplier_part.html:8 +#: company/templates/company/supplier_part.html:25 order/api.py:392 +#: order/serializers.py:576 stock/models.py:875 +#: stock/templates/stock/item_base.html:230 +#: templates/js/translated/build.js:1055 +#: templates/js/translated/company.js:1601 +#: templates/js/translated/purchase_order.js:735 +#: templates/js/translated/stock.js:2366 msgid "Supplier Part" msgstr "Zuliefererteil" -#: company/models.py:719 +#: company/models.py:716 msgid "Pack units must be compatible with the base part units" msgstr "Packeinheiten müssen mit den Basisteileinheiten kompatibel sein" -#: company/models.py:726 +#: company/models.py:723 msgid "Pack units must be greater than zero" msgstr "Packeinheiten müssen größer als Null sein" -#: company/models.py:740 +#: company/models.py:737 msgid "Linked manufacturer part must reference the same base part" msgstr "Verlinktes Herstellerteil muss dasselbe Basisteil referenzieren" -#: company/models.py:789 company/templates/company/company_base.html:87 -#: company/templates/company/supplier_part.html:129 order/models.py:491 -#: order/templates/order/order_base.html:141 part/bom.py:280 part/bom.py:318 -#: part/serializers.py:538 plugin/builtin/suppliers/digikey.py:25 +#: company/models.py:786 company/templates/company/company_base.html:87 +#: company/templates/company/supplier_part.html:130 order/models.py:503 +#: order/templates/order/order_base.html:150 part/bom.py:279 part/bom.py:314 +#: part/serializers.py:582 plugin/builtin/suppliers/digikey.py:25 #: plugin/builtin/suppliers/lcsc.py:26 plugin/builtin/suppliers/mouser.py:24 -#: plugin/builtin/suppliers/tme.py:26 stock/templates/stock/item_base.html:224 +#: plugin/builtin/suppliers/tme.py:26 stock/templates/stock/item_base.html:221 #: templates/email/overdue_purchase_order.html:16 -#: templates/js/translated/company.js:350 -#: templates/js/translated/company.js:511 -#: templates/js/translated/company.js:1584 templates/js/translated/part.js:1775 +#: templates/js/translated/company.js:351 +#: templates/js/translated/company.js:512 +#: templates/js/translated/company.js:1585 templates/js/translated/part.js:1775 #: templates/js/translated/pricing.js:498 -#: templates/js/translated/purchase_order.js:1759 +#: templates/js/translated/purchase_order.js:1743 #: templates/js/translated/table_filters.js:816 msgid "Supplier" msgstr "Zulieferer" -#: company/models.py:790 +#: company/models.py:787 msgid "Select supplier" msgstr "Zulieferer auswählen" -#: company/models.py:796 part/serializers.py:549 +#: company/models.py:793 part/serializers.py:593 msgid "Supplier stock keeping unit" msgstr "Lagerbestandseinheit (SKU) des Zulieferers" -#: company/models.py:802 +#: company/models.py:799 msgid "Is this supplier part active?" msgstr "Ist dieser Lieferantenteil aktiv?" -#: company/models.py:812 +#: company/models.py:809 msgid "Select manufacturer part" msgstr "Herstellerteil auswählen" -#: company/models.py:819 +#: company/models.py:816 msgid "URL for external supplier part link" msgstr "Teil-URL des Zulieferers" -#: company/models.py:828 +#: company/models.py:825 msgid "Supplier part description" msgstr "Zuliefererbeschreibung des Teils" -#: company/models.py:835 company/templates/company/supplier_part.html:187 -#: order/serializers.py:698 part/admin.py:415 part/models.py:4288 +#: company/models.py:832 company/templates/company/supplier_part.html:188 +#: order/serializers.py:783 part/admin.py:415 part/models.py:4345 #: part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_bill_of_materials_report.html:140 #: report/templates/report/inventree_purchase_order_report.html:32 #: report/templates/report/inventree_return_order_report.html:27 #: report/templates/report/inventree_sales_order_report.html:32 #: report/templates/report/inventree_stock_location_report.html:105 -#: stock/serializers.py:776 templates/js/translated/purchase_order.js:1185 -#: templates/js/translated/purchase_order.js:1344 +#: stock/serializers.py:807 templates/js/translated/purchase_order.js:1168 +#: templates/js/translated/purchase_order.js:1327 msgid "Note" msgstr "Notiz" -#: company/models.py:844 part/models.py:2117 +#: company/models.py:841 part/models.py:2177 msgid "base cost" msgstr "Basiskosten" -#: company/models.py:845 part/models.py:2118 +#: company/models.py:842 part/models.py:2178 msgid "Minimum charge (e.g. stocking fee)" msgstr "Mindestpreis" -#: company/models.py:853 +#: company/models.py:850 msgid "Part packaging" msgstr "Teile-Verpackungen" -#: company/models.py:858 templates/js/translated/company.js:1651 +#: company/models.py:855 templates/js/translated/company.js:1652 #: templates/js/translated/part.js:1828 templates/js/translated/part.js:1884 -#: templates/js/translated/purchase_order.js:311 -#: templates/js/translated/purchase_order.js:841 -#: templates/js/translated/purchase_order.js:1103 -#: templates/js/translated/purchase_order.js:2154 -#: templates/js/translated/purchase_order.js:2171 +#: templates/js/translated/purchase_order.js:294 +#: templates/js/translated/purchase_order.js:824 +#: templates/js/translated/purchase_order.js:1086 +#: templates/js/translated/purchase_order.js:2138 +#: templates/js/translated/purchase_order.js:2155 msgid "Pack Quantity" msgstr "Packmenge" -#: company/models.py:860 +#: company/models.py:857 msgid "Total quantity supplied in a single pack. Leave empty for single items." msgstr "Gesamtmenge, die in einer einzelnen Packung geliefert wird. Für Einzelstücke leer lassen." -#: company/models.py:879 part/models.py:2124 +#: company/models.py:876 part/models.py:2184 msgid "multiple" msgstr "Vielfache" -#: company/models.py:880 +#: company/models.py:877 msgid "Order multiple" msgstr "Mehrere bestellen" -#: company/models.py:892 +#: company/models.py:889 msgid "Quantity available from supplier" msgstr "Verfügbare Menge von Lieferanten" -#: company/models.py:898 +#: company/models.py:895 msgid "Availability Updated" msgstr "Verfügbarkeit aktualisiert" -#: company/models.py:899 +#: company/models.py:896 msgid "Date of last update of availability data" msgstr "Datum des letzten Updates der Verfügbarkeitsdaten" -#: company/models.py:1027 +#: company/models.py:1024 msgid "Supplier Price Break" msgstr "" -#: company/serializers.py:174 +#: company/serializers.py:178 msgid "Default currency used for this supplier" msgstr "Standard-Währung für diesen Zulieferer" -#: company/serializers.py:210 +#: company/serializers.py:214 msgid "Company Name" msgstr "Firmenname" -#: company/serializers.py:393 part/admin.py:126 part/serializers.py:898 -#: part/templates/part/part_base.html:197 -#: templates/js/translated/company.js:1689 +#: company/serializers.py:397 part/admin.py:126 part/serializers.py:950 +#: part/templates/part/part_base.html:198 stock/serializers.py:474 +#: templates/js/translated/company.js:1690 #: templates/js/translated/table_filters.js:362 msgid "In Stock" msgstr "Auf Lager" #: company/templates/company/company_base.html:16 -#: part/templates/part/part_base.html:146 -#: templates/js/translated/company.js:1287 -#: templates/js/translated/company.js:1575 -#: templates/js/translated/model_renderers.js:313 +#: part/templates/part/part_base.html:147 +#: templates/js/translated/company.js:1288 +#: templates/js/translated/company.js:1576 +#: templates/js/translated/model_renderers.js:316 #: templates/js/translated/part.js:817 templates/js/translated/part.js:1225 msgid "Inactive" msgstr "Inaktiv" #: company/templates/company/company_base.html:27 -#: templates/js/translated/purchase_order.js:242 +#: templates/js/translated/purchase_order.js:224 msgid "Create Purchase Order" msgstr "Bestellung anlegen" @@ -4590,7 +4769,7 @@ msgid "Edit company information" msgstr "Firmeninformation bearbeiten" #: company/templates/company/company_base.html:39 -#: templates/js/translated/company.js:445 +#: templates/js/translated/company.js:446 msgid "Edit Company" msgstr "Firma bearbeiten" @@ -4605,11 +4784,12 @@ msgstr "Firma löschen" #: company/templates/company/company_base.html:53 #: company/templates/company/manufacturer_part.html:51 -#: company/templates/company/supplier_part.html:83 +#: company/templates/company/supplier_part.html:84 #: part/templates/part/part_thumb.html:20 #: report/templates/report/inventree_build_order_report.html:98 #: report/templates/report/inventree_purchase_order_report.html:40 #: report/templates/report/inventree_sales_order_report.html:40 +#: report/templates/report/inventree_sales_order_shipment_report.html:37 #: report/templates/report/inventree_test_report.html:84 #: report/templates/report/inventree_test_report.html:162 msgid "Part image" @@ -4630,16 +4810,16 @@ msgstr "Bild von URL herunterladen" msgid "Delete image" msgstr "Bild löschen" -#: company/templates/company/company_base.html:92 order/models.py:990 -#: order/models.py:2147 order/templates/order/return_order_base.html:134 -#: order/templates/order/sales_order_base.html:151 stock/models.py:840 -#: stock/models.py:841 stock/serializers.py:1329 -#: stock/templates/stock/item_base.html:405 +#: company/templates/company/company_base.html:92 order/models.py:1017 +#: order/models.py:2186 order/templates/order/return_order_base.html:135 +#: order/templates/order/sales_order_base.html:152 stock/models.py:917 +#: stock/models.py:918 stock/serializers.py:1360 +#: stock/templates/stock/item_base.html:402 #: templates/email/overdue_sales_order.html:16 -#: templates/js/translated/company.js:503 +#: templates/js/translated/company.js:504 #: templates/js/translated/return_order.js:295 -#: templates/js/translated/sales_order.js:820 -#: templates/js/translated/stock.js:3043 +#: templates/js/translated/sales_order.js:779 +#: templates/js/translated/stock.js:3044 #: templates/js/translated/table_filters.js:820 msgid "Customer" msgstr "Kunde" @@ -4653,7 +4833,7 @@ msgid "Phone" msgstr "Telefon" #: company/templates/company/company_base.html:211 -#: part/templates/part/part_base.html:536 +#: part/templates/part/part_base.html:544 msgid "Remove Image" msgstr "Bild entfernen" @@ -4662,19 +4842,19 @@ msgid "Remove associated image from this company" msgstr "Verknüpftes Bild von dieser Firma entfernen" #: company/templates/company/company_base.html:214 -#: part/templates/part/part_base.html:539 +#: part/templates/part/part_base.html:547 #: templates/InvenTree/settings/user.html:88 #: templates/InvenTree/settings/user_sso.html:43 msgid "Remove" msgstr "Entfernen" #: company/templates/company/company_base.html:243 -#: part/templates/part/part_base.html:568 +#: part/templates/part/part_base.html:576 msgid "Upload Image" msgstr "Bild hochladen" #: company/templates/company/company_base.html:258 -#: part/templates/part/part_base.html:622 +#: part/templates/part/part_base.html:630 msgid "Download Image" msgstr "Bild herunterladen" @@ -4714,7 +4894,7 @@ msgstr "Zulieferer-Bestand" #: company/templates/company/detail.html:75 #: company/templates/company/sidebar.html:12 #: company/templates/company/supplier_part_sidebar.html:7 -#: order/templates/order/order_base.html:13 +#: order/templates/order/order_base.html:14 #: order/templates/order/purchase_orders.html:8 #: order/templates/order/purchase_orders.html:12 #: part/templates/part/detail.html:122 part/templates/part/part_sidebar.html:35 @@ -4737,7 +4917,7 @@ msgstr "Neue Bestellung" #: company/templates/company/detail.html:101 #: company/templates/company/sidebar.html:21 -#: order/templates/order/sales_order_base.html:13 +#: order/templates/order/sales_order_base.html:14 #: order/templates/order/sales_orders.html:8 #: order/templates/order/sales_orders.html:15 #: part/templates/part/detail.html:143 part/templates/part/part_sidebar.html:39 @@ -4764,7 +4944,7 @@ msgstr "Zugeordneter Bestand" #: company/templates/company/detail.html:142 #: company/templates/company/sidebar.html:29 -#: order/templates/order/return_order_base.html:13 +#: order/templates/order/return_order_base.html:14 #: order/templates/order/return_orders.html:8 #: order/templates/order/return_orders.html:15 #: templates/InvenTree/settings/sidebar.html:61 @@ -4811,24 +4991,24 @@ msgid "Manufacturers" msgstr "Hersteller" #: company/templates/company/manufacturer_part.html:35 -#: company/templates/company/supplier_part.html:227 -#: part/templates/part/detail.html:125 part/templates/part/part_base.html:83 +#: company/templates/company/supplier_part.html:228 +#: part/templates/part/detail.html:125 part/templates/part/part_base.html:84 msgid "Order part" msgstr "Teil bestellen" #: company/templates/company/manufacturer_part.html:39 -#: templates/js/translated/company.js:1343 +#: templates/js/translated/company.js:1344 msgid "Edit manufacturer part" msgstr "Herstellerteil bearbeiten" #: company/templates/company/manufacturer_part.html:43 -#: templates/js/translated/company.js:1344 +#: templates/js/translated/company.js:1345 msgid "Delete manufacturer part" msgstr "Herstellerteil löschen" #: company/templates/company/manufacturer_part.html:65 -#: company/templates/company/supplier_part.html:97 order/api.py:448 -#: order/serializers.py:564 +#: company/templates/company/supplier_part.html:98 order/api.py:411 +#: order/serializers.py:649 msgid "Internal Part" msgstr "Internes Teil" @@ -4837,8 +5017,8 @@ msgid "No manufacturer information available" msgstr "Keine Herstellerdaten verfügbar" #: company/templates/company/manufacturer_part.html:119 -#: company/templates/company/supplier_part.html:15 company/views.py:31 -#: part/admin.py:122 part/serializers.py:904 +#: company/templates/company/supplier_part.html:16 company/views.py:31 +#: part/admin.py:122 part/serializers.py:956 #: part/templates/part/part_sidebar.html:33 templates/InvenTree/search.html:190 #: templates/navbar.html:48 msgid "Suppliers" @@ -4887,112 +5067,113 @@ msgstr "Zugewiesene Lagerartikel" msgid "Contacts" msgstr "Kontakte" -#: company/templates/company/supplier_part.html:50 -#: templates/js/translated/company.js:1526 +#: company/templates/company/supplier_part.html:51 +#: templates/js/translated/company.js:1527 msgid "Supplier part actions" msgstr "Zulieferer-Teil Aktionen" -#: company/templates/company/supplier_part.html:55 #: company/templates/company/supplier_part.html:56 -#: company/templates/company/supplier_part.html:228 +#: company/templates/company/supplier_part.html:57 +#: company/templates/company/supplier_part.html:229 #: part/templates/part/detail.html:126 msgid "Order Part" msgstr "Teil bestellen" -#: company/templates/company/supplier_part.html:60 #: company/templates/company/supplier_part.html:61 +#: company/templates/company/supplier_part.html:62 msgid "Update Availability" msgstr "Verfügbarkeit aktualisieren" -#: company/templates/company/supplier_part.html:63 #: company/templates/company/supplier_part.html:64 -#: templates/js/translated/company.js:294 +#: company/templates/company/supplier_part.html:65 +#: templates/js/translated/company.js:295 msgid "Edit Supplier Part" msgstr "Zuliefererteil bearbeiten" -#: company/templates/company/supplier_part.html:68 #: company/templates/company/supplier_part.html:69 -#: templates/js/translated/company.js:269 +#: company/templates/company/supplier_part.html:70 +#: templates/js/translated/company.js:270 msgid "Duplicate Supplier Part" msgstr "Zulieferer-Teil duplizieren" -#: company/templates/company/supplier_part.html:73 +#: company/templates/company/supplier_part.html:74 msgid "Delete Supplier Part" msgstr "Zuliefererteil entfernen" -#: company/templates/company/supplier_part.html:74 +#: company/templates/company/supplier_part.html:75 msgid "Delete Supplier Part" msgstr "Zuliefererteil entfernen" -#: company/templates/company/supplier_part.html:133 +#: company/templates/company/supplier_part.html:134 +#: order/templates/order/order_base.html:155 msgid "No supplier information available" msgstr "Keine Lieferanteninformationen verfügbar" -#: company/templates/company/supplier_part.html:139 order/serializers.py:553 -#: part/bom.py:287 part/bom.py:319 part/serializers.py:548 -#: templates/js/translated/company.js:349 templates/js/translated/part.js:1793 +#: company/templates/company/supplier_part.html:140 order/serializers.py:638 +#: part/bom.py:286 part/bom.py:315 part/serializers.py:592 +#: templates/js/translated/company.js:350 templates/js/translated/part.js:1793 #: templates/js/translated/pricing.js:510 -#: templates/js/translated/purchase_order.js:1920 -#: templates/js/translated/purchase_order.js:2098 +#: templates/js/translated/purchase_order.js:1904 +#: templates/js/translated/purchase_order.js:2082 msgid "SKU" msgstr "Lieferanten-Teilenummer" -#: company/templates/company/supplier_part.html:206 +#: company/templates/company/supplier_part.html:207 msgid "Supplier Part Stock" msgstr "Zulieferer-Bestand" -#: company/templates/company/supplier_part.html:209 -#: part/templates/part/detail.html:24 stock/templates/stock/location.html:204 +#: company/templates/company/supplier_part.html:210 +#: part/templates/part/detail.html:24 stock/templates/stock/location.html:205 msgid "Create new stock item" msgstr "Neuen Lagerartikel hinzufügen" -#: company/templates/company/supplier_part.html:210 -#: part/templates/part/detail.html:25 stock/templates/stock/location.html:205 +#: company/templates/company/supplier_part.html:211 +#: part/templates/part/detail.html:25 stock/templates/stock/location.html:206 #: templates/js/translated/stock.js:543 msgid "New Stock Item" msgstr "Neuer Lagerartikel" -#: company/templates/company/supplier_part.html:223 +#: company/templates/company/supplier_part.html:224 msgid "Supplier Part Orders" msgstr "Zulieferer-Bestellungen" -#: company/templates/company/supplier_part.html:246 +#: company/templates/company/supplier_part.html:247 msgid "Pricing Information" msgstr "Preisinformationen ansehen" -#: company/templates/company/supplier_part.html:251 -#: templates/js/translated/company.js:398 +#: company/templates/company/supplier_part.html:252 +#: templates/js/translated/company.js:399 #: templates/js/translated/pricing.js:684 msgid "Add Price Break" msgstr "Preisstaffel hinzufügen" -#: company/templates/company/supplier_part.html:270 +#: company/templates/company/supplier_part.html:271 msgid "Supplier Part Notes" msgstr "" -#: company/templates/company/supplier_part.html:305 +#: company/templates/company/supplier_part.html:306 msgid "Supplier Part QR Code" msgstr "Zulieferteil QR-Code" -#: company/templates/company/supplier_part.html:316 +#: company/templates/company/supplier_part.html:317 msgid "Link Barcode to Supplier Part" msgstr "Barcode mit Zulieferteil verknüpfen" -#: company/templates/company/supplier_part.html:388 +#: company/templates/company/supplier_part.html:389 msgid "Update Part Availability" msgstr "Verfügbarkeit der Teile aktualisieren" #: company/templates/company/supplier_part_sidebar.html:5 -#: part/serializers.py:902 part/stocktake.py:223 +#: part/serializers.py:954 part/stocktake.py:223 #: part/templates/part/category.html:180 #: part/templates/part/category_sidebar.html:17 stock/admin.py:68 -#: stock/serializers.py:1014 stock/serializers.py:1192 -#: stock/templates/stock/location.html:167 -#: stock/templates/stock/location.html:188 -#: stock/templates/stock/location.html:200 +#: stock/serializers.py:1045 stock/serializers.py:1223 +#: stock/templates/stock/location.html:168 +#: stock/templates/stock/location.html:189 +#: stock/templates/stock/location.html:201 #: stock/templates/stock/location_sidebar.html:7 #: templates/InvenTree/search.html:155 templates/js/translated/part.js:1067 -#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2850 +#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2851 #: users/models.py:206 msgid "Stock Items" msgstr "Lagerartikel" @@ -5022,99 +5203,99 @@ msgstr "Neuer Kunde" msgid "New Company" msgstr "Neue Firma" -#: generic/states/tests.py:18 order/status_codes.py:13 +#: generic/states/fields.py:118 +msgid "Custom status key" +msgstr "" + +#: generic/states/fields.py:119 +msgid "Additional status information for this item" +msgstr "" + +#: generic/states/tests.py:22 order/status_codes.py:13 msgid "Placed" msgstr "Platziert" -#: importer/mixins.py:263 +#: importer/mixins.py:261 msgid "Invalid export format" msgstr "Ungültiges Exportformat" -#: importer/models.py:59 -msgid "Timestamp" -msgstr "Zeitstempel" - -#: importer/models.py:64 +#: importer/models.py:65 msgid "Data file to import" msgstr "Zu importierende Datei" -#: importer/models.py:73 templates/js/translated/tables.js:558 +#: importer/models.py:74 templates/js/translated/tables.js:558 msgid "Columns" msgstr "Spalten" -#: importer/models.py:84 +#: importer/models.py:85 msgid "Import status" msgstr "Importstatus" -#: importer/models.py:94 +#: importer/models.py:95 msgid "Field Defaults" msgstr "Standardwerte" -#: importer/models.py:101 +#: importer/models.py:102 msgid "Field Overrides" msgstr "" -#: importer/models.py:108 +#: importer/models.py:109 msgid "Field Filters" msgstr "" -#: importer/models.py:230 +#: importer/models.py:239 msgid "Some required fields have not been mapped" msgstr "" -#: importer/models.py:387 +#: importer/models.py:396 msgid "Column is already mapped to a database field" msgstr "" -#: importer/models.py:392 +#: importer/models.py:401 msgid "Field is already mapped to a data column" msgstr "" -#: importer/models.py:401 +#: importer/models.py:410 msgid "Column mapping must be linked to a valid import session" msgstr "" -#: importer/models.py:406 +#: importer/models.py:415 msgid "Column does not exist in the data file" msgstr "" -#: importer/models.py:413 +#: importer/models.py:422 msgid "Field does not exist in the target model" msgstr "" -#: importer/models.py:417 +#: importer/models.py:426 msgid "Selected field is read-only" msgstr "" -#: importer/models.py:422 importer/models.py:493 +#: importer/models.py:431 importer/models.py:502 msgid "Import Session" msgstr "" -#: importer/models.py:426 +#: importer/models.py:435 msgid "Field" msgstr "" -#: importer/models.py:428 +#: importer/models.py:437 msgid "Column" msgstr "" -#: importer/models.py:497 +#: importer/models.py:506 msgid "Row Index" msgstr "" -#: importer/models.py:500 +#: importer/models.py:509 msgid "Original row data" msgstr "" -#: importer/models.py:503 part/models.py:3951 -msgid "Data" -msgstr "Wert" - -#: importer/models.py:505 machine/models.py:110 +#: importer/models.py:514 machine/models.py:110 msgid "Errors" msgstr "Fehler" -#: importer/models.py:507 part/api.py:873 +#: importer/models.py:516 part/api.py:857 msgid "Valid" msgstr "Gültig" @@ -5166,19 +5347,19 @@ msgstr "" msgid "Row has already been completed" msgstr "" -#: importer/status_codes.py:11 +#: importer/status_codes.py:13 msgid "Initializing" msgstr "" -#: importer/status_codes.py:12 +#: importer/status_codes.py:18 msgid "Mapping Columns" msgstr "" -#: importer/status_codes.py:13 +#: importer/status_codes.py:21 msgid "Importing Data" msgstr "" -#: importer/status_codes.py:16 +#: importer/status_codes.py:24 msgid "Processing Data" msgstr "" @@ -5202,52 +5383,52 @@ msgstr "" msgid "Value must be a valid dictionary object" msgstr "" -#: machine/machine_types/label_printer.py:215 +#: machine/machine_types/label_printer.py:216 msgid "Copies" msgstr "Kopien" -#: machine/machine_types/label_printer.py:216 +#: machine/machine_types/label_printer.py:217 msgid "Number of copies to print for each label" msgstr "Anzahl der zu druckenden Kopien für jedes Label" -#: machine/machine_types/label_printer.py:231 +#: machine/machine_types/label_printer.py:232 msgid "Connected" msgstr "Verbunden" -#: machine/machine_types/label_printer.py:232 order/api.py:1410 -#: templates/js/translated/sales_order.js:1078 +#: machine/machine_types/label_printer.py:233 order/api.py:1532 +#: templates/js/translated/sales_order.js:1044 msgid "Unknown" msgstr "Unbekannt" -#: machine/machine_types/label_printer.py:233 +#: machine/machine_types/label_printer.py:234 msgid "Printing" msgstr "Drucken" -#: machine/machine_types/label_printer.py:234 +#: machine/machine_types/label_printer.py:235 msgid "No media" msgstr "Keine Medien" -#: machine/machine_types/label_printer.py:235 +#: machine/machine_types/label_printer.py:236 msgid "Paper jam" msgstr "" -#: machine/machine_types/label_printer.py:236 +#: machine/machine_types/label_printer.py:237 msgid "Disconnected" msgstr "Verbindung getrennt" -#: machine/machine_types/label_printer.py:243 +#: machine/machine_types/label_printer.py:244 msgid "Label Printer" msgstr "Etikettendrucker" -#: machine/machine_types/label_printer.py:244 +#: machine/machine_types/label_printer.py:245 msgid "Directly print labels for various items." msgstr "Drucken Sie Etiketten direkt für verschiedene Artikel." -#: machine/machine_types/label_printer.py:250 +#: machine/machine_types/label_printer.py:251 msgid "Printer Location" msgstr "Druckerstandort" -#: machine/machine_types/label_printer.py:251 +#: machine/machine_types/label_printer.py:252 msgid "Scope the printer to a specific location" msgstr "Den Drucker an einen bestimmten Ort aufstellen" @@ -5307,79 +5488,75 @@ msgstr "Konfigurationstyp" #: report/templates/report/inventree_purchase_order_report.html:31 #: report/templates/report/inventree_sales_order_report.html:31 #: templates/js/translated/order.js:352 -#: templates/js/translated/purchase_order.js:2195 -#: templates/js/translated/sales_order.js:1883 +#: templates/js/translated/purchase_order.js:2179 +#: templates/js/translated/sales_order.js:1864 msgid "Total Price" msgstr "Gesamtpreis" -#: order/api.py:80 order/api.py:151 order/serializers.py:93 -#: order/templates/order/order_base.html:123 -#: order/templates/order/return_order_base.html:116 -#: order/templates/order/sales_order_base.html:125 +#: order/api.py:78 order/api.py:149 order/serializers.py:124 +#: order/templates/order/order_base.html:124 +#: order/templates/order/return_order_base.html:117 +#: order/templates/order/sales_order_base.html:126 msgid "Order Status" msgstr "Bestellstatus" -#: order/api.py:88 order/templates/order/order_base.html:111 -#: order/templates/order/return_order_base.html:104 -#: order/templates/order/sales_order_base.html:113 +#: order/api.py:86 order/templates/order/order_base.html:112 +#: order/templates/order/return_order_base.html:105 +#: order/templates/order/sales_order_base.html:114 msgid "Order Reference" msgstr "Bestellreferenz" -#: order/api.py:116 templates/js/translated/table_filters.js:93 +#: order/api.py:114 order/api.py:1022 +#: templates/js/translated/table_filters.js:93 #: templates/js/translated/table_filters.js:625 #: templates/js/translated/table_filters.js:651 #: templates/js/translated/table_filters.js:666 msgid "Outstanding" msgstr "Ausstehend" -#: order/api.py:132 +#: order/api.py:130 msgid "Has Project Code" msgstr "" -#: order/api.py:155 templates/js/translated/table_filters.js:201 +#: order/api.py:153 templates/js/translated/table_filters.js:201 #: templates/js/translated/table_filters.js:791 msgid "Has Pricing" msgstr "Hat Preise" -#: order/api.py:230 -msgid "No matching purchase order found" -msgstr "Keine passende Bestellung gefunden" - -#: order/api.py:425 order/api.py:763 order/models.py:1484 order/models.py:1598 -#: order/models.py:1649 order/models.py:1764 order/models.py:1923 -#: order/models.py:2383 order/models.py:2439 -#: templates/js/translated/sales_order.js:1524 +#: order/api.py:375 order/api.py:771 order/api.py:986 order/models.py:1500 +#: order/models.py:1614 order/models.py:1665 order/models.py:1793 +#: order/models.py:1956 order/models.py:2422 order/models.py:2478 +#: templates/js/translated/sales_order.js:1490 msgid "Order" msgstr "Bestellung" -#: order/api.py:429 order/api.py:784 +#: order/api.py:379 order/api.py:809 msgid "Order Complete" msgstr "Bestellung abgeschlossen" -#: order/api.py:452 +#: order/api.py:430 msgid "Order Pending" msgstr "Bestellung ausstehend" -#: order/api.py:1404 order/models.py:379 order/models.py:1485 -#: order/models.py:1599 order/templates/order/order_base.html:9 -#: order/templates/order/order_base.html:18 +#: order/api.py:1526 order/models.py:386 order/models.py:1501 +#: order/models.py:1615 order/templates/order/order_base.html:10 +#: order/templates/order/order_base.html:19 #: report/templates/report/inventree_purchase_order_report.html:14 -#: stock/serializers.py:120 stock/templates/stock/item_base.html:176 +#: stock/serializers.py:121 stock/templates/stock/item_base.html:173 #: templates/email/overdue_purchase_order.html:15 #: templates/js/translated/part.js:1752 templates/js/translated/pricing.js:804 -#: templates/js/translated/purchase_order.js:168 -#: templates/js/translated/purchase_order.js:753 -#: templates/js/translated/purchase_order.js:1743 -#: templates/js/translated/stock.js:2345 templates/js/translated/stock.js:2991 +#: templates/js/translated/purchase_order.js:736 +#: templates/js/translated/purchase_order.js:1727 +#: templates/js/translated/stock.js:2346 templates/js/translated/stock.js:2992 msgid "Purchase Order" msgstr "Bestellung" -#: order/api.py:1408 order/models.py:2091 order/models.py:2384 -#: order/models.py:2440 order/templates/order/return_order_base.html:9 -#: order/templates/order/return_order_base.html:28 +#: order/api.py:1530 order/models.py:2124 order/models.py:2423 +#: order/models.py:2479 order/templates/order/return_order_base.html:10 +#: order/templates/order/return_order_base.html:29 #: report/templates/report/inventree_return_order_report.html:13 #: templates/js/translated/return_order.js:280 -#: templates/js/translated/stock.js:3025 +#: templates/js/translated/stock.js:3026 msgid "Return Order" msgstr "Rücksendeauftrag" @@ -5387,751 +5564,782 @@ msgstr "Rücksendeauftrag" msgid "Total price for this order" msgstr "Gesamtpreis für diese Bestellung" -#: order/models.py:95 order/serializers.py:71 +#: order/models.py:95 order/serializers.py:73 msgid "Order Currency" msgstr "Auftragswährung" -#: order/models.py:98 order/serializers.py:72 +#: order/models.py:98 order/serializers.py:74 msgid "Currency for this order (leave blank to use company default)" msgstr "Währung für diesen Auftrag (leer lassen, um Firmenstandard zu verwenden)" -#: order/models.py:246 +#: order/models.py:243 msgid "Contact does not match selected company" msgstr "Kontakt stimmt nicht mit der ausgewählten Firma überein" -#: order/models.py:289 +#: order/models.py:296 msgid "Order description (optional)" msgstr "Auftragsbeschreibung (optional)" -#: order/models.py:298 +#: order/models.py:305 msgid "Select project code for this order" msgstr "Projektcode für diesen Auftrag auswählen" -#: order/models.py:302 order/models.py:1385 order/models.py:1817 +#: order/models.py:309 order/models.py:1402 order/models.py:1846 msgid "Link to external page" msgstr "Link auf externe Seite" -#: order/models.py:310 +#: order/models.py:317 msgid "Expected date for order delivery. Order will be overdue after this date." msgstr "Geplantes Lieferdatum für Auftrag." -#: order/models.py:324 +#: order/models.py:331 msgid "Created By" msgstr "Erstellt von" -#: order/models.py:332 +#: order/models.py:339 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:343 +#: order/models.py:350 msgid "Point of contact for this order" msgstr "Ansprechpartner für diesen Auftrag" -#: order/models.py:353 +#: order/models.py:360 msgid "Company address for this order" msgstr "Firmenadresse für diesen Auftrag" -#: order/models.py:468 order/models.py:979 +#: order/models.py:480 order/models.py:1006 msgid "Order reference" msgstr "Bestell-Referenz" -#: order/models.py:477 +#: order/models.py:489 msgid "Purchase order status" msgstr "Bestellungs-Status" -#: order/models.py:492 +#: order/models.py:504 msgid "Company from which the items are being ordered" msgstr "Firma bei der die Teile bestellt werden" -#: order/models.py:503 order/templates/order/order_base.html:153 -#: templates/js/translated/purchase_order.js:1772 +#: order/models.py:515 order/templates/order/order_base.html:162 +#: templates/js/translated/purchase_order.js:1756 msgid "Supplier Reference" msgstr "Zulieferer-Referenz" -#: order/models.py:504 +#: order/models.py:516 msgid "Supplier order reference code" msgstr "Zulieferer Bestellreferenz" -#: order/models.py:513 +#: order/models.py:525 msgid "received by" msgstr "Empfangen von" -#: order/models.py:519 order/models.py:2173 +#: order/models.py:531 order/models.py:2212 msgid "Issue Date" msgstr "Aufgabedatum" -#: order/models.py:520 order/models.py:2174 +#: order/models.py:532 order/models.py:2213 msgid "Date order was issued" msgstr "Datum an dem die Bestellung aufgegeben wurde" -#: order/models.py:527 order/models.py:2181 +#: order/models.py:539 order/models.py:2220 msgid "Date order was completed" msgstr "Datum an dem der Auftrag fertigstellt wurde" -#: order/models.py:571 +#: order/models.py:549 order/models.py:1552 +msgid "Destination for received items" +msgstr "" + +#: order/models.py:593 msgid "Part supplier must match PO supplier" msgstr "Teile-Zulieferer muss dem Zulieferer der Bestellung entsprechen" -#: order/models.py:806 +#: order/models.py:828 msgid "Quantity must be a positive number" msgstr "Anzahl muss eine positive Zahl sein" -#: order/models.py:991 +#: order/models.py:1018 msgid "Company to which the items are being sold" msgstr "Firma an die die Teile verkauft werden" -#: order/models.py:1003 +#: order/models.py:1030 msgid "Sales order status" msgstr "" -#: order/models.py:1014 order/models.py:2166 +#: order/models.py:1041 order/models.py:2205 msgid "Customer Reference " msgstr "Kundenreferenz" -#: order/models.py:1015 order/models.py:2167 +#: order/models.py:1042 order/models.py:2206 msgid "Customer order reference code" msgstr "Bestellreferenz" -#: order/models.py:1019 order/models.py:1771 -#: templates/js/translated/sales_order.js:879 -#: templates/js/translated/sales_order.js:1060 +#: order/models.py:1046 order/models.py:1800 +#: templates/js/translated/sales_order.js:838 +#: templates/js/translated/sales_order.js:1026 msgid "Shipment Date" msgstr "Versanddatum" -#: order/models.py:1028 +#: order/models.py:1055 msgid "shipped by" msgstr "Versand von" -#: order/models.py:1077 +#: order/models.py:1094 msgid "Order is already complete" msgstr "Bestellung ist bereits abgeschlossen" -#: order/models.py:1080 +#: order/models.py:1097 msgid "Order is already cancelled" msgstr "Bestellung ist bereits storniert" -#: order/models.py:1084 +#: order/models.py:1101 msgid "Only an open order can be marked as complete" msgstr "Nur ein offener Auftrag kann als abgeschlossen markiert werden" -#: order/models.py:1088 +#: order/models.py:1105 msgid "Order cannot be completed as there are incomplete shipments" msgstr "Auftrag kann nicht abgeschlossen werden, da unvollständige Sendungen vorhanden sind" -#: order/models.py:1093 +#: order/models.py:1110 msgid "Order cannot be completed as there are incomplete line items" msgstr "Auftrag kann nicht abgeschlossen werden, da es unvollständige Positionen gibt" -#: order/models.py:1357 +#: order/models.py:1374 msgid "Item quantity" msgstr "Anzahl" -#: order/models.py:1374 +#: order/models.py:1391 msgid "Line item reference" msgstr "Position - Referenz" -#: order/models.py:1381 +#: order/models.py:1398 msgid "Line item notes" msgstr "Position - Notizen" -#: order/models.py:1393 +#: order/models.py:1410 msgid "Target date for this line item (leave blank to use the target date from the order)" msgstr "Zieldatum für diesen Einzelposten (leer lassen, um das Zieldatum des Auftrags zu verwenden)" -#: order/models.py:1414 +#: order/models.py:1431 msgid "Line item description (optional)" msgstr "Positionsbeschreibung (optional)" -#: order/models.py:1420 -msgid "Context" -msgstr "Kontext" - -#: order/models.py:1421 +#: order/models.py:1438 msgid "Additional context for this line" msgstr "Zusätzlicher Kontext für diese Zeile" -#: order/models.py:1431 +#: order/models.py:1448 msgid "Unit price" msgstr "Stückpreis" -#: order/models.py:1445 +#: order/models.py:1462 msgid "Purchase Order Line Item" msgstr "" -#: order/models.py:1469 +#: order/models.py:1486 msgid "Supplier part must match supplier" msgstr "Lieferantenteil muss mit Lieferant übereinstimmen" -#: order/models.py:1476 -msgid "deleted" -msgstr "gelöscht" - -#: order/models.py:1504 +#: order/models.py:1520 msgid "Supplier part" msgstr "Zuliefererteil" -#: order/models.py:1511 order/templates/order/order_base.html:201 +#: order/models.py:1527 order/templates/order/order_base.html:210 #: templates/js/translated/part.js:1876 templates/js/translated/part.js:1908 -#: templates/js/translated/purchase_order.js:1369 -#: templates/js/translated/purchase_order.js:2239 +#: templates/js/translated/purchase_order.js:1352 +#: templates/js/translated/purchase_order.js:2223 #: templates/js/translated/return_order.js:762 #: templates/js/translated/table_filters.js:119 #: templates/js/translated/table_filters.js:605 msgid "Received" msgstr "Empfangen" -#: order/models.py:1512 +#: order/models.py:1528 msgid "Number of items received" msgstr "Empfangene Objekt-Anzahl" -#: order/models.py:1520 stock/models.py:959 stock/serializers.py:610 -#: stock/templates/stock/item_base.html:183 -#: templates/js/translated/stock.js:2396 +#: order/models.py:1536 stock/models.py:1036 stock/serializers.py:637 +#: stock/templates/stock/item_base.html:180 +#: templates/js/translated/stock.js:2397 msgid "Purchase Price" msgstr "Preis" -#: order/models.py:1521 +#: order/models.py:1537 msgid "Unit purchase price" msgstr "Preis pro Einheit" -#: order/models.py:1536 -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:1587 +#: order/models.py:1603 msgid "Purchase Order Extra Line" msgstr "" -#: order/models.py:1616 +#: order/models.py:1632 msgid "Sales Order Line Item" msgstr "" -#: order/models.py:1637 +#: order/models.py:1653 msgid "Virtual part cannot be assigned to a sales order" msgstr "Ein virtuelles Teil kann nicht einem Auftrag zugeordnet werden" -#: order/models.py:1642 +#: order/models.py:1658 msgid "Only salable parts can be assigned to a sales order" msgstr "Nur verkaufbare Teile können einem Auftrag zugewiesen werden" -#: order/models.py:1668 part/templates/part/part_pricing.html:107 -#: part/templates/part/prices.html:139 templates/js/translated/pricing.js:957 +#: order/models.py:1684 part/templates/part/part_pricing.html:107 +#: part/templates/part/prices.html:139 templates/js/translated/pricing.js:955 msgid "Sale Price" msgstr "Verkaufspreis" -#: order/models.py:1669 +#: order/models.py:1685 msgid "Unit sale price" msgstr "Stückverkaufspreis" -#: order/models.py:1678 order/status_codes.py:48 -#: templates/js/translated/sales_order.js:1559 -#: templates/js/translated/sales_order.js:1680 -#: templates/js/translated/sales_order.js:1993 +#: order/models.py:1694 order/status_codes.py:50 +#: templates/js/translated/sales_order.js:1525 +#: templates/js/translated/sales_order.js:1661 +#: templates/js/translated/sales_order.js:1974 msgid "Shipped" msgstr "Versendet" -#: order/models.py:1679 +#: order/models.py:1695 msgid "Shipped quantity" msgstr "Versendete Menge" -#: order/models.py:1751 +#: order/models.py:1769 msgid "Sales Order Shipment" msgstr "" -#: order/models.py:1772 +#: order/models.py:1801 msgid "Date of shipment" msgstr "Versanddatum" -#: order/models.py:1778 templates/js/translated/sales_order.js:1072 +#: order/models.py:1807 templates/js/translated/sales_order.js:1038 msgid "Delivery Date" msgstr "Lieferdatum" -#: order/models.py:1779 +#: order/models.py:1808 msgid "Date of delivery of shipment" msgstr "Versanddatum" -#: order/models.py:1787 +#: order/models.py:1816 msgid "Checked By" msgstr "Kontrolliert von" -#: order/models.py:1788 +#: order/models.py:1817 msgid "User who checked this shipment" msgstr "Benutzer, der diese Sendung kontrolliert hat" -#: order/models.py:1795 order/models.py:2018 order/serializers.py:1475 -#: order/serializers.py:1585 templates/js/translated/model_renderers.js:455 +#: order/models.py:1824 order/models.py:2051 order/serializers.py:1601 +#: order/serializers.py:1725 +#: report/templates/report/inventree_sales_order_shipment_report.html:14 +#: templates/js/translated/model_renderers.js:458 +#: templates/js/translated/sales_order.js:1615 msgid "Shipment" msgstr "Sendung" -#: order/models.py:1796 +#: order/models.py:1825 msgid "Shipment number" msgstr "Sendungsnummer" -#: order/models.py:1804 +#: order/models.py:1833 msgid "Tracking Number" msgstr "Sendungsverfolgungsnummer" -#: order/models.py:1805 +#: order/models.py:1834 msgid "Shipment tracking information" msgstr "Informationen zur Sendungsverfolgung" -#: order/models.py:1812 +#: order/models.py:1841 msgid "Invoice Number" msgstr "Rechnungsnummer" -#: order/models.py:1813 +#: order/models.py:1842 msgid "Reference number for associated invoice" msgstr "Referenznummer für zugehörige Rechnung" -#: order/models.py:1833 +#: order/models.py:1862 msgid "Shipment has already been sent" msgstr "Sendung wurde bereits versandt" -#: order/models.py:1836 +#: order/models.py:1865 msgid "Shipment has no allocated stock items" msgstr "Sendung hat keine zugewiesene Lagerartikel" -#: order/models.py:1912 +#: order/models.py:1945 msgid "Sales Order Extra Line" msgstr "" -#: order/models.py:1941 +#: order/models.py:1974 msgid "Sales Order Allocation" msgstr "" -#: order/models.py:1964 order/models.py:1966 +#: order/models.py:1997 order/models.py:1999 msgid "Stock item has not been assigned" msgstr "Lagerartikel wurde nicht zugewiesen" -#: order/models.py:1973 +#: order/models.py:2006 msgid "Cannot allocate stock item to a line with a different part" msgstr "Kann Lagerartikel keiner Zeile mit einem anderen Teil hinzufügen" -#: order/models.py:1976 +#: order/models.py:2009 msgid "Cannot allocate stock to a line without a part" msgstr "Kann Lagerartikel keiner Zeile ohne Teil hinzufügen" -#: order/models.py:1979 +#: order/models.py:2012 msgid "Allocation quantity cannot exceed stock quantity" msgstr "Die zugeordnete Anzahl darf nicht die verfügbare Anzahl überschreiten" -#: order/models.py:1998 order/serializers.py:1345 +#: order/models.py:2031 order/serializers.py:1471 msgid "Quantity must be 1 for serialized stock item" msgstr "Anzahl für serialisierte Lagerartikel muss 1 sein" -#: order/models.py:2001 +#: order/models.py:2034 msgid "Sales order does not match shipment" msgstr "Auftrag gehört nicht zu Sendung" -#: order/models.py:2002 plugin/base/barcodes/api.py:524 +#: order/models.py:2035 plugin/base/barcodes/api.py:629 msgid "Shipment does not match sales order" msgstr "Sendung gehört nicht zu Auftrag" -#: order/models.py:2010 +#: order/models.py:2043 msgid "Line" msgstr "Position" -#: order/models.py:2019 +#: order/models.py:2052 msgid "Sales order shipment reference" msgstr "Sendungsnummer-Referenz" -#: order/models.py:2032 order/models.py:2391 +#: order/models.py:2065 order/models.py:2430 #: templates/js/translated/return_order.js:720 msgid "Item" msgstr "Position" -#: order/models.py:2033 +#: order/models.py:2066 msgid "Select stock item to allocate" msgstr "Lagerartikel für Zuordnung auswählen" -#: order/models.py:2042 +#: order/models.py:2075 msgid "Enter stock allocation quantity" msgstr "Anzahl für Bestandszuordnung eingeben" -#: order/models.py:2136 +#: order/models.py:2175 msgid "Return Order reference" msgstr "Rücksendungsreferenz" -#: order/models.py:2148 +#: order/models.py:2187 msgid "Company from which items are being returned" msgstr "Firma von der die Artikel zurückgeschickt werden" -#: order/models.py:2160 +#: order/models.py:2199 msgid "Return order status" msgstr "Status der Rücksendung" -#: order/models.py:2362 +#: order/models.py:2401 msgid "Return Order Line Item" msgstr "" -#: order/models.py:2376 +#: order/models.py:2415 msgid "Only serialized items can be assigned to a Return Order" msgstr "Nur serialisierte Artikel können einer Rücksendung zugeordnet werden" -#: order/models.py:2392 +#: order/models.py:2431 msgid "Select item to return from customer" msgstr "Artikel zur Rücksendung auswählen" -#: order/models.py:2398 +#: order/models.py:2437 msgid "Received Date" msgstr "Empfangsdatum" -#: order/models.py:2399 +#: order/models.py:2438 msgid "The date this this return item was received" msgstr "Das Datum des Empfangs dieses Rücksendeartikels" -#: order/models.py:2410 templates/js/translated/return_order.js:731 +#: order/models.py:2449 templates/js/translated/return_order.js:731 #: templates/js/translated/table_filters.js:122 msgid "Outcome" msgstr "Ergebnis" -#: order/models.py:2411 +#: order/models.py:2450 msgid "Outcome for this line item" msgstr "Ergebnis für dieses Zeilenelement" -#: order/models.py:2418 +#: order/models.py:2457 msgid "Cost associated with return or repair for this line item" msgstr "Kosten für die Rückgabe oder Reparatur dieses Objektes" -#: order/models.py:2428 +#: order/models.py:2467 msgid "Return Order Extra Line" msgstr "" -#: order/serializers.py:86 +#: order/serializers.py:87 +msgid "Order ID" +msgstr "" + +#: order/serializers.py:87 +msgid "ID of the order to duplicate" +msgstr "" + +#: order/serializers.py:93 +msgid "Copy Lines" +msgstr "" + +#: order/serializers.py:94 +msgid "Copy line items from the original order" +msgstr "" + +#: order/serializers.py:100 +msgid "Copy Extra Lines" +msgstr "" + +#: order/serializers.py:101 +msgid "Copy extra line items from the original order" +msgstr "" + +#: order/serializers.py:117 msgid "Completed Lines" msgstr "Abgeschlossene Positionen" -#: order/serializers.py:283 stock/admin.py:195 +#: order/serializers.py:161 +msgid "Duplicate Order" +msgstr "" + +#: order/serializers.py:162 +msgid "Specify options for duplicating this order" +msgstr "" + +#: order/serializers.py:234 +msgid "Invalid order ID" +msgstr "" + +#: order/serializers.py:374 stock/admin.py:196 msgid "Supplier Name" msgstr "Lieferant" -#: order/serializers.py:331 +#: order/serializers.py:416 msgid "Order cannot be cancelled" msgstr "Bestellung kann nicht verworfen werden" -#: order/serializers.py:346 order/serializers.py:1366 +#: order/serializers.py:431 order/serializers.py:1492 msgid "Allow order to be closed with incomplete line items" msgstr "Erlaube das Schließen des Auftrags mit unvollständigen Positionen" -#: order/serializers.py:356 order/serializers.py:1376 +#: order/serializers.py:441 order/serializers.py:1502 msgid "Order has incomplete line items" msgstr "Auftrag hat unvollständige Positionen" -#: order/serializers.py:506 +#: order/serializers.py:591 msgid "Order is not open" msgstr "Der Auftrag ist nicht offen" -#: order/serializers.py:527 +#: order/serializers.py:612 msgid "Auto Pricing" msgstr "Automatische Preisgestaltung" -#: order/serializers.py:529 +#: order/serializers.py:614 msgid "Automatically calculate purchase price based on supplier part data" msgstr "Kaufpreis automatisch basierend auf Lieferantenbestandsdaten berechnen" -#: order/serializers.py:539 +#: order/serializers.py:624 msgid "Purchase price currency" msgstr "Kaufpreiswährung" -#: order/serializers.py:545 +#: order/serializers.py:630 msgid "Merge Items" msgstr "Elemente zusammenfügen" -#: order/serializers.py:547 +#: order/serializers.py:632 msgid "Merge items with the same part, destination and target date into one line item" msgstr "Zusammenführen von Elementen mit dem gleichen Teil, Ziel- und Zieldatum zu einem Zeilenelement" -#: order/serializers.py:560 part/models.py:1033 +#: order/serializers.py:645 part/models.py:1094 part/serializers.py:387 msgid "Internal Part Number" msgstr "Interne Teilenummer" -#: order/serializers.py:568 +#: order/serializers.py:653 msgid "Internal Part Name" msgstr "" -#: order/serializers.py:584 +#: order/serializers.py:669 msgid "Supplier part must be specified" msgstr "Zuliefererteil muss ausgewählt werden" -#: order/serializers.py:587 +#: order/serializers.py:672 msgid "Purchase order must be specified" msgstr "Bestellung muss angegeben sein" -#: order/serializers.py:595 +#: order/serializers.py:680 msgid "Supplier must match purchase order" msgstr "Lieferant muss mit der Bestellung übereinstimmen" -#: order/serializers.py:596 +#: order/serializers.py:681 msgid "Purchase order must match supplier" msgstr "Die Bestellung muss mit dem Lieferant übereinstimmen" -#: order/serializers.py:639 order/serializers.py:1446 +#: order/serializers.py:724 order/serializers.py:1572 msgid "Line Item" msgstr "Position" -#: order/serializers.py:645 +#: order/serializers.py:730 msgid "Line item does not match purchase order" msgstr "Position stimmt nicht mit Kaufauftrag überein" -#: order/serializers.py:655 order/serializers.py:779 order/serializers.py:1782 +#: order/serializers.py:740 order/serializers.py:881 order/serializers.py:1934 msgid "Select destination location for received items" msgstr "Zielort für empfangene Teile auswählen" -#: order/serializers.py:671 templates/js/translated/purchase_order.js:1130 +#: order/serializers.py:756 templates/js/translated/purchase_order.js:1113 #: templates/js/translated/stock.js:1200 msgid "Enter batch code for incoming stock items" msgstr "Losnummer für eingehende Lagerartikel" -#: order/serializers.py:679 templates/js/translated/purchase_order.js:1155 +#: order/serializers.py:764 templates/js/translated/purchase_order.js:1138 msgid "Enter serial numbers for incoming stock items" msgstr "Seriennummern für eingehende Lagerartikel" -#: order/serializers.py:691 +#: order/serializers.py:776 msgid "Override packaging information for incoming stock items" msgstr "" -#: order/serializers.py:699 +#: order/serializers.py:784 msgid "Additional note for incoming stock items" msgstr "" -#: order/serializers.py:706 templates/js/translated/barcode.js:52 +#: order/serializers.py:791 templates/js/translated/barcode.js:52 msgid "Barcode" msgstr "Barcode" -#: order/serializers.py:707 +#: order/serializers.py:792 msgid "Scanned barcode" msgstr "Gescannter Barcode" -#: order/serializers.py:723 +#: order/serializers.py:808 msgid "Barcode is already in use" msgstr "Barcode ist bereits in Verwendung" -#: order/serializers.py:747 +#: order/serializers.py:831 msgid "An integer quantity must be provided for trackable parts" msgstr "Ganzzahl für verfolgbare Teile erforderlich" -#: order/serializers.py:795 order/serializers.py:1798 +#: order/serializers.py:898 order/serializers.py:1950 msgid "Line items must be provided" msgstr "Positionen müssen angegeben werden" -#: order/serializers.py:811 +#: order/serializers.py:914 msgid "Destination location must be specified" msgstr "Ziel-Lagerort muss angegeben werden" -#: order/serializers.py:822 +#: order/serializers.py:925 msgid "Supplied barcode values must be unique" msgstr "Barcode muss eindeutig sein" -#: order/serializers.py:1187 +#: order/serializers.py:1221 msgid "Sale price currency" msgstr "Verkaufspreis-Währung" -#: order/serializers.py:1248 +#: order/serializers.py:1260 +msgid "Allocated Items" +msgstr "" + +#: order/serializers.py:1374 msgid "No shipment details provided" msgstr "Keine Sendungsdetails angegeben" -#: order/serializers.py:1309 order/serializers.py:1455 +#: order/serializers.py:1435 order/serializers.py:1581 msgid "Line item is not associated with this order" msgstr "Position ist nicht diesem Auftrag zugeordnet" -#: order/serializers.py:1328 +#: order/serializers.py:1454 msgid "Quantity must be positive" msgstr "Anzahl muss positiv sein" -#: order/serializers.py:1465 +#: order/serializers.py:1591 msgid "Enter serial numbers to allocate" msgstr "Seriennummern zum Zuweisen eingeben" -#: order/serializers.py:1487 order/serializers.py:1593 +#: order/serializers.py:1613 order/serializers.py:1733 msgid "Shipment has already been shipped" msgstr "Sendung wurde bereits versandt" -#: order/serializers.py:1490 order/serializers.py:1596 +#: order/serializers.py:1616 order/serializers.py:1736 msgid "Shipment is not associated with this order" msgstr "Sendung ist nicht diesem Auftrag zugeordnet" -#: order/serializers.py:1537 +#: order/serializers.py:1671 msgid "No match found for the following serial numbers" msgstr "Folgende Serienummern konnten nicht gefunden werden" -#: order/serializers.py:1544 -msgid "The following serial numbers are already allocated" -msgstr "Folgende Seriennummern sind bereits zugewiesen" +#: order/serializers.py:1678 +msgid "The following serial numbers are unavailable" +msgstr "" -#: order/serializers.py:1752 +#: order/serializers.py:1904 msgid "Return order line item" msgstr "Artikel der Bestellzeile zurücksenden" -#: order/serializers.py:1758 +#: order/serializers.py:1910 msgid "Line item does not match return order" msgstr "Artikel entspricht nicht der Rücksendeschrift" -#: order/serializers.py:1761 +#: order/serializers.py:1913 msgid "Line item has already been received" msgstr "Artikel wurde bereits erhalten" -#: order/serializers.py:1790 +#: order/serializers.py:1942 msgid "Items can only be received against orders which are in progress" msgstr "Artikel können nur bei laufenden Bestellungen empfangen werden" -#: order/serializers.py:1873 +#: order/serializers.py:2025 msgid "Line price currency" msgstr "Verkaufspreis-Währung" -#: order/status_codes.py:17 order/status_codes.py:52 stock/status_codes.py:16 +#: order/status_codes.py:17 order/status_codes.py:54 stock/status_codes.py:16 msgid "Lost" msgstr "Verloren" -#: order/status_codes.py:18 order/status_codes.py:53 stock/status_codes.py:22 +#: order/status_codes.py:18 order/status_codes.py:55 stock/status_codes.py:24 msgid "Returned" msgstr "Zurückgegeben" -#: order/status_codes.py:45 order/status_codes.py:77 +#: order/status_codes.py:47 order/status_codes.py:79 msgid "In Progress" msgstr "In Bearbeitung" -#: order/status_codes.py:101 +#: order/status_codes.py:105 msgid "Return" msgstr "Zurück" -#: order/status_codes.py:104 +#: order/status_codes.py:108 msgid "Repair" msgstr "Reparatur" -#: order/status_codes.py:107 +#: order/status_codes.py:111 msgid "Replace" msgstr "Ersetzen" -#: order/status_codes.py:110 +#: order/status_codes.py:114 msgid "Refund" msgstr "Rückerstattung" -#: order/status_codes.py:113 +#: order/status_codes.py:117 msgid "Reject" msgstr "Ablehnen" -#: order/tasks.py:25 +#: order/tasks.py:30 msgid "Overdue Purchase Order" msgstr "Überfällige Bestellung" -#: order/tasks.py:30 +#: order/tasks.py:35 #, python-brace-format msgid "Purchase order {po} is now overdue" msgstr "Bestellung {po} ist jetzt überfällig" -#: order/tasks.py:75 +#: order/tasks.py:80 msgid "Overdue Sales Order" msgstr "Überfälliger Auftrag" -#: order/tasks.py:80 +#: order/tasks.py:85 #, python-brace-format msgid "Sales order {so} is now overdue" msgstr "Auftrag {so} ist jetzt überfällig" -#: order/templates/order/order_base.html:51 +#: order/templates/order/order_base.html:52 msgid "Print purchase order report" msgstr "Bestellbericht drucken" -#: order/templates/order/order_base.html:53 -#: order/templates/order/return_order_base.html:62 -#: order/templates/order/sales_order_base.html:62 +#: order/templates/order/order_base.html:54 +#: order/templates/order/return_order_base.html:63 +#: order/templates/order/sales_order_base.html:63 msgid "Export order to file" msgstr "Exportiere Bestellung in Datei" -#: order/templates/order/order_base.html:59 -#: order/templates/order/return_order_base.html:72 -#: order/templates/order/sales_order_base.html:71 +#: order/templates/order/order_base.html:60 +#: order/templates/order/return_order_base.html:73 +#: order/templates/order/sales_order_base.html:72 msgid "Order actions" msgstr "Bestell-Aktionen" -#: order/templates/order/order_base.html:64 -#: order/templates/order/return_order_base.html:76 -#: order/templates/order/sales_order_base.html:75 +#: order/templates/order/order_base.html:65 +#: order/templates/order/return_order_base.html:77 +#: order/templates/order/sales_order_base.html:76 msgid "Edit order" msgstr "Auftrag bearbeiten" -#: order/templates/order/order_base.html:68 +#: order/templates/order/order_base.html:69 msgid "Duplicate order" msgstr "Bestellung duplizieren" -#: order/templates/order/order_base.html:73 -#: order/templates/order/return_order_base.html:78 -#: order/templates/order/sales_order_base.html:77 +#: order/templates/order/order_base.html:74 +#: order/templates/order/return_order_base.html:79 +#: order/templates/order/sales_order_base.html:78 msgid "Hold order" msgstr "" -#: order/templates/order/order_base.html:78 -#: order/templates/order/return_order_base.html:81 -#: order/templates/order/sales_order_base.html:80 +#: order/templates/order/order_base.html:79 +#: order/templates/order/return_order_base.html:82 +#: order/templates/order/sales_order_base.html:81 msgid "Cancel order" msgstr "Bestellung stornieren" -#: order/templates/order/order_base.html:84 #: order/templates/order/order_base.html:85 -#: order/templates/order/return_order_base.html:85 +#: order/templates/order/order_base.html:86 #: order/templates/order/return_order_base.html:86 -#: order/templates/order/sales_order_base.html:86 +#: order/templates/order/return_order_base.html:87 #: order/templates/order/sales_order_base.html:87 +#: order/templates/order/sales_order_base.html:88 msgid "Issue Order" msgstr "Bestellung aufgeben" -#: order/templates/order/order_base.html:88 -#: order/templates/order/return_order_base.html:89 +#: order/templates/order/order_base.html:89 +#: order/templates/order/return_order_base.html:90 msgid "Mark order as complete" msgstr "Bestellung als vollständig markieren" -#: order/templates/order/order_base.html:89 -#: order/templates/order/return_order_base.html:90 -#: order/templates/order/sales_order_base.html:100 +#: order/templates/order/order_base.html:90 +#: order/templates/order/return_order_base.html:91 +#: order/templates/order/sales_order_base.html:101 msgid "Complete Order" msgstr "Auftrag fertigstellen" -#: order/templates/order/order_base.html:96 +#: order/templates/order/order_base.html:97 msgid "Supplier part thumbnail" msgstr "Vorschaubild des Lieferanten" -#: order/templates/order/order_base.html:116 -#: order/templates/order/return_order_base.html:109 -#: order/templates/order/sales_order_base.html:118 +#: order/templates/order/order_base.html:117 +#: order/templates/order/return_order_base.html:110 +#: order/templates/order/sales_order_base.html:119 msgid "Order Description" msgstr "Bestellungsbeschreibung" -#: order/templates/order/order_base.html:146 -msgid "No suppplier information available" -msgstr "Keine Lieferanteninformationen verfügbar" - -#: order/templates/order/order_base.html:159 -#: order/templates/order/sales_order_base.html:164 +#: order/templates/order/order_base.html:168 +#: order/templates/order/sales_order_base.html:165 msgid "Completed Line Items" msgstr "Abgeschlossene Positionen" -#: order/templates/order/order_base.html:165 -#: order/templates/order/sales_order_base.html:170 -#: order/templates/order/sales_order_base.html:180 +#: order/templates/order/order_base.html:174 +#: order/templates/order/sales_order_base.html:171 +#: order/templates/order/sales_order_base.html:181 msgid "Incomplete" msgstr "Unvollständig" -#: order/templates/order/order_base.html:184 -#: order/templates/order/return_order_base.html:160 +#: order/templates/order/order_base.html:193 +#: order/templates/order/return_order_base.html:161 #: report/templates/report/inventree_build_order_report.html:121 msgid "Issued" msgstr "Aufgegeben" -#: order/templates/order/order_base.html:229 +#: order/templates/order/order_base.html:238 msgid "Total cost" msgstr "Gesamtsumme" -#: order/templates/order/order_base.html:233 -#: order/templates/order/return_order_base.html:202 -#: order/templates/order/sales_order_base.html:246 +#: order/templates/order/order_base.html:242 +#: order/templates/order/return_order_base.html:203 +#: order/templates/order/sales_order_base.html:247 msgid "Total cost could not be calculated" msgstr "Gesamtkosten konnten nicht berechnet werden" -#: order/templates/order/order_base.html:335 +#: order/templates/order/order_base.html:344 msgid "Purchase Order QR Code" msgstr "Bestellung QR-Code" -#: order/templates/order/order_base.html:347 +#: order/templates/order/order_base.html:356 msgid "Link Barcode to Purchase Order" msgstr "Barcode mit Bestellung verknüpfen" @@ -6184,12 +6392,12 @@ msgstr "Auswahl duplizieren" #: part/templates/part/import_wizard/ajax_match_references.html:42 #: part/templates/part/import_wizard/match_fields.html:71 #: part/templates/part/import_wizard/match_references.html:49 -#: templates/js/translated/bom.js:133 templates/js/translated/build.js:530 -#: templates/js/translated/build.js:1802 -#: templates/js/translated/purchase_order.js:696 -#: templates/js/translated/purchase_order.js:1288 +#: templates/js/translated/bom.js:133 templates/js/translated/build.js:533 +#: templates/js/translated/build.js:1805 +#: templates/js/translated/purchase_order.js:679 +#: templates/js/translated/purchase_order.js:1271 #: templates/js/translated/return_order.js:505 -#: templates/js/translated/sales_order.js:1145 +#: templates/js/translated/sales_order.js:1111 #: templates/js/translated/stock.js:720 templates/js/translated/stock.js:889 #: templates/patterns/wizard/match_fields.html:70 msgid "Remove row" @@ -6242,7 +6450,7 @@ msgstr "Bestellungs-Positionen" #: order/templates/order/purchase_order_detail.html:27 #: order/templates/order/return_order_detail.html:24 #: order/templates/order/sales_order_detail.html:24 -#: templates/js/translated/purchase_order.js:414 +#: templates/js/translated/purchase_order.js:397 #: templates/js/translated/return_order.js:458 #: templates/js/translated/sales_order.js:237 msgid "Add Line Item" @@ -6277,45 +6485,45 @@ msgstr "Empfangene Teile" msgid "Order Notes" msgstr "Notizen zur Bestellung" -#: order/templates/order/return_order_base.html:18 -#: order/templates/order/sales_order_base.html:18 +#: order/templates/order/return_order_base.html:19 +#: order/templates/order/sales_order_base.html:19 msgid "Customer logo thumbnail" msgstr "Kundenlogo Miniaturansicht" -#: order/templates/order/return_order_base.html:60 +#: order/templates/order/return_order_base.html:61 msgid "Print return order report" msgstr "Rücksendebericht drucken" -#: order/templates/order/return_order_base.html:64 -#: order/templates/order/sales_order_base.html:64 +#: order/templates/order/return_order_base.html:65 +#: order/templates/order/sales_order_base.html:65 msgid "Print packing list" msgstr "Paketliste drucken" -#: order/templates/order/return_order_base.html:141 -#: order/templates/order/sales_order_base.html:158 +#: order/templates/order/return_order_base.html:142 +#: order/templates/order/sales_order_base.html:159 #: templates/js/translated/return_order.js:308 -#: templates/js/translated/sales_order.js:833 +#: templates/js/translated/sales_order.js:792 msgid "Customer Reference" msgstr "Kundenreferenz" -#: order/templates/order/return_order_base.html:198 -#: order/templates/order/sales_order_base.html:242 +#: order/templates/order/return_order_base.html:199 +#: order/templates/order/sales_order_base.html:243 #: part/templates/part/part_pricing.html:32 #: part/templates/part/part_pricing.html:58 #: part/templates/part/part_pricing.html:99 #: part/templates/part/part_pricing.html:114 #: templates/js/translated/part.js:1079 -#: templates/js/translated/purchase_order.js:1822 +#: templates/js/translated/purchase_order.js:1806 #: templates/js/translated/return_order.js:380 -#: templates/js/translated/sales_order.js:891 +#: templates/js/translated/sales_order.js:850 msgid "Total Cost" msgstr "Gesamtkosten" -#: order/templates/order/return_order_base.html:273 +#: order/templates/order/return_order_base.html:274 msgid "Return Order QR Code" msgstr "QR-Code Bestellung zurückgeben" -#: order/templates/order/return_order_base.html:285 +#: order/templates/order/return_order_base.html:286 msgid "Link Barcode to Return Order" msgstr "Barcode mit Rücksendung verknüpfen" @@ -6323,40 +6531,40 @@ msgstr "Barcode mit Rücksendung verknüpfen" msgid "Order Details" msgstr "Bestelldetails" -#: order/templates/order/sales_order_base.html:60 +#: order/templates/order/sales_order_base.html:61 msgid "Print sales order report" msgstr "Auftragsbericht drucken" -#: order/templates/order/sales_order_base.html:91 #: order/templates/order/sales_order_base.html:92 +#: order/templates/order/sales_order_base.html:93 msgid "Ship Items" msgstr "Versandartikel" -#: order/templates/order/sales_order_base.html:95 #: order/templates/order/sales_order_base.html:96 +#: order/templates/order/sales_order_base.html:97 msgid "Mark As Shipped" msgstr "Als verschickt markieren" -#: order/templates/order/sales_order_base.html:99 -#: templates/js/translated/sales_order.js:536 +#: order/templates/order/sales_order_base.html:100 +#: templates/js/translated/sales_order.js:495 msgid "Complete Sales Order" msgstr "Auftrag abschließen" -#: order/templates/order/sales_order_base.html:138 +#: order/templates/order/sales_order_base.html:139 msgid "This Sales Order has not been fully allocated" msgstr "Dieser Auftrag ist nicht vollständig zugeordnet" -#: order/templates/order/sales_order_base.html:176 +#: order/templates/order/sales_order_base.html:177 #: order/templates/order/sales_order_detail.html:99 #: order/templates/order/so_sidebar.html:11 msgid "Completed Shipments" msgstr "Abgeschlossene Sendungen" -#: order/templates/order/sales_order_base.html:339 +#: order/templates/order/sales_order_base.html:340 msgid "Sales Order QR Code" msgstr "Auftrag QR-Code" -#: order/templates/order/sales_order_base.html:351 +#: order/templates/order/sales_order_base.html:352 msgid "Link Barcode to Sales Order" msgstr "Barcode mit Verkaufsauftrag verknüpfen" @@ -6370,7 +6578,7 @@ msgid "Pending Shipments" msgstr "Ausstehende Sendungen" #: order/templates/order/sales_order_detail.html:71 -#: templates/js/translated/bom.js:1277 templates/js/translated/build.js:1063 +#: templates/js/translated/bom.js:1277 templates/js/translated/build.js:1066 #: templates/js/translated/filters.js:299 msgid "Actions" msgstr "Aktionen" @@ -6383,39 +6591,40 @@ msgstr "Neue Sendung" msgid "Match Supplier Parts" msgstr "Zuliefererteile zuordnen" -#: order/views.py:406 +#: order/views.py:407 msgid "Sales order not found" msgstr "Auftrag nicht gefunden" -#: order/views.py:412 +#: order/views.py:413 msgid "Price not found" msgstr "Preis nicht gefunden" -#: order/views.py:415 +#: order/views.py:416 #, python-brace-format msgid "Updated {part} unit-price to {price}" msgstr "Stückpreis für {part} auf {price} aktualisiert" -#: order/views.py:421 +#: order/views.py:422 #, 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/admin.py:48 part/models.py:1032 part/templates/part/part_base.html:269 +#: part/admin.py:48 part/models.py:1093 part/serializers.py:939 +#: part/templates/part/part_base.html:277 #: report/templates/report/inventree_stock_location_report.html:103 #: templates/js/translated/part.js:1233 templates/js/translated/part.js:2347 -#: templates/js/translated/stock.js:2121 +#: templates/js/translated/stock.js:2122 msgid "IPN" msgstr "IPN (Interne Produktnummer)" -#: part/admin.py:50 part/models.py:1041 part/templates/part/part_base.html:286 +#: part/admin.py:50 part/models.py:1102 part/templates/part/part_base.html:294 #: report/models.py:161 templates/js/translated/part.js:1238 #: templates/js/translated/part.js:2353 msgid "Revision" msgstr "Version" -#: part/admin.py:53 part/admin.py:319 part/models.py:1014 -#: part/templates/part/category.html:91 part/templates/part/part_base.html:307 +#: part/admin.py:53 part/admin.py:319 part/models.py:1075 +#: part/templates/part/category.html:91 part/templates/part/part_base.html:315 msgid "Keywords" msgstr "Schlüsselwörter" @@ -6427,7 +6636,7 @@ msgstr "Artikelbild" msgid "Category ID" msgstr "Kategorie-ID" -#: part/admin.py:67 part/admin.py:304 part/serializers.py:880 +#: part/admin.py:67 part/admin.py:304 part/serializers.py:924 #: part/stocktake.py:222 msgid "Category Name" msgstr "Kategoriename" @@ -6440,11 +6649,11 @@ msgstr "Standard-Standortnummer" msgid "Default Supplier ID" msgstr "Standard-Lieferantennummer" -#: part/admin.py:81 part/models.py:1000 part/templates/part/part_base.html:177 +#: part/admin.py:81 part/models.py:1061 part/templates/part/part_base.html:178 msgid "Variant Of" msgstr "Variante von" -#: part/admin.py:84 part/models.py:1138 part/templates/part/part_base.html:203 +#: part/admin.py:84 part/models.py:1199 part/templates/part/part_base.html:204 msgid "Minimum Stock" msgstr "Minimaler Bestand" @@ -6452,23 +6661,23 @@ msgstr "Minimaler Bestand" msgid "Used In" msgstr "Benutzt in" -#: part/admin.py:150 part/serializers.py:897 -#: part/templates/part/part_base.html:241 stock/admin.py:235 +#: part/admin.py:150 part/serializers.py:949 +#: part/templates/part/part_base.html:249 stock/admin.py:236 #: templates/js/translated/part.js:717 templates/js/translated/part.js:2159 msgid "Building" msgstr "Im Bau" -#: part/admin.py:155 part/models.py:3202 part/models.py:3216 +#: part/admin.py:155 part/models.py:3253 part/models.py:3267 #: templates/js/translated/part.js:976 msgid "Minimum Cost" msgstr "Minimale Kosten" -#: part/admin.py:158 part/models.py:3209 part/models.py:3223 +#: part/admin.py:158 part/models.py:3260 part/models.py:3274 #: templates/js/translated/part.js:986 msgid "Maximum Cost" msgstr "Maximale Kosten" -#: part/admin.py:308 part/admin.py:387 stock/admin.py:57 stock/admin.py:215 +#: part/admin.py:308 part/admin.py:387 stock/admin.py:57 stock/admin.py:216 msgid "Parent ID" msgstr "Eltern ID" @@ -6481,8 +6690,8 @@ msgstr "Name des übergeordneten Teils" msgid "Category Path" msgstr "Pfad zur Kategorie" -#: part/admin.py:325 part/models.py:425 part/serializers.py:130 -#: part/serializers.py:290 part/serializers.py:415 +#: part/admin.py:325 part/models.py:420 part/serializers.py:130 +#: part/serializers.py:323 part/serializers.py:459 #: part/templates/part/cat_link.html:3 part/templates/part/category.html:20 #: part/templates/part/category.html:138 part/templates/part/category.html:158 #: part/templates/part/category_sidebar.html:9 @@ -6509,15 +6718,15 @@ msgstr "Übergeordnete IPN" msgid "Part Revision" msgstr "" -#: part/admin.py:418 part/serializers.py:1346 +#: part/admin.py:418 part/serializers.py:1400 #: templates/js/translated/pricing.js:358 -#: templates/js/translated/pricing.js:1024 +#: templates/js/translated/pricing.js:1022 msgid "Minimum Price" msgstr "Niedrigster Preis" -#: part/admin.py:423 part/serializers.py:1361 +#: part/admin.py:423 part/serializers.py:1415 #: templates/js/translated/pricing.js:353 -#: templates/js/translated/pricing.js:1032 +#: templates/js/translated/pricing.js:1030 msgid "Maximum Price" msgstr "Höchster Preis" @@ -6545,94 +6754,98 @@ msgstr "Oberste Ebene" msgid "Filter by top-level categories" msgstr "" +#: part/api.py:156 stock/api.py:343 +msgid "Cascade" +msgstr "Mehrstufig" + #: part/api.py:158 msgid "Include sub-categories in filtered results" msgstr "Unterkategorien in gefilterte Ergebnisse einbeziehen" -#: part/api.py:179 templates/js/translated/part.js:311 +#: part/api.py:178 templates/js/translated/part.js:311 msgid "Parent" msgstr "Übergeordnetes" -#: part/api.py:181 +#: part/api.py:180 msgid "Filter by parent category" msgstr "Nach übergeordneter Kategorie filtern" -#: part/api.py:214 +#: part/api.py:213 msgid "Exclude Tree" msgstr "Baum ausschließen" -#: part/api.py:216 +#: part/api.py:215 msgid "Exclude sub-categories under the specified category" msgstr "Unterkategorien in der angegebenen Kategorie ausschließen" -#: part/api.py:441 +#: part/api.py:440 msgid "Has Results" msgstr "Ergebnisse" -#: part/api.py:608 +#: part/api.py:604 msgid "Incoming Purchase Order" msgstr "Eingehende Bestellung" -#: part/api.py:626 +#: part/api.py:618 msgid "Outgoing Sales Order" msgstr "Ausgehender Auftrag" -#: part/api.py:642 +#: part/api.py:630 msgid "Stock produced by Build Order" msgstr "Lagerartikel produziert von Bauauftrag" -#: part/api.py:726 +#: part/api.py:712 msgid "Stock required for Build Order" msgstr "Lagerartikel für Bauauftrag benötigt" -#: part/api.py:874 +#: part/api.py:858 msgid "Validate entire Bill of Materials" msgstr "Gesamte Stückliste validieren" -#: part/api.py:880 +#: part/api.py:864 msgid "This option must be selected" msgstr "Diese Option muss ausgewählt werden" -#: part/api.py:916 +#: part/api.py:900 msgid "Is Revision" msgstr "" -#: part/api.py:926 +#: part/api.py:910 msgid "Has Revisions" msgstr "" -#: part/api.py:1117 +#: part/api.py:1101 msgid "BOM Valid" msgstr "" -#: part/api.py:1523 part/models.py:1024 part/models.py:3489 part/models.py:4046 -#: part/serializers.py:430 part/serializers.py:1202 -#: part/templates/part/part_base.html:260 stock/api.py:781 +#: part/api.py:1509 part/models.py:1085 part/models.py:3540 part/models.py:4104 +#: part/serializers.py:474 part/serializers.py:1255 +#: part/templates/part/part_base.html:268 stock/api.py:781 #: templates/InvenTree/settings/settings_staff_js.html:300 #: templates/js/translated/notification.js:60 #: templates/js/translated/part.js:2383 msgid "Category" msgstr "Kategorie" -#: part/api.py:1761 +#: part/api.py:1750 msgid "Assembly part is testable" msgstr "" -#: part/api.py:1770 +#: part/api.py:1759 msgid "Component part is testable" msgstr "" -#: part/api.py:1821 +#: part/api.py:1810 msgid "Uses" msgstr "Verwendet" -#: part/bom.py:178 part/models.py:107 part/models.py:1077 -#: part/templates/part/category.html:113 part/templates/part/part_base.html:376 +#: part/bom.py:183 part/models.py:109 part/models.py:1138 +#: part/templates/part/category.html:113 part/templates/part/part_base.html:384 #: templates/js/translated/part.js:2397 msgid "Default Location" msgstr "Standard-Lagerort" -#: part/bom.py:179 part/serializers.py:905 +#: part/bom.py:184 part/serializers.py:957 #: templates/email/low_stock_notification.html:16 msgid "Total Stock" msgstr "Gesamtbestand" @@ -6641,789 +6854,789 @@ msgstr "Gesamtbestand" msgid "Input quantity for price calculation" msgstr "Menge für die Preisberechnung" -#: part/models.py:88 part/models.py:4047 part/templates/part/category.html:16 +#: part/models.py:90 part/models.py:4105 part/templates/part/category.html:16 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "Teil-Kategorie" -#: part/models.py:89 part/templates/part/category.html:133 +#: part/models.py:91 part/templates/part/category.html:133 #: templates/InvenTree/search.html:97 templates/js/translated/search.js:158 #: users/models.py:202 msgid "Part Categories" msgstr "Teil-Kategorien" -#: part/models.py:108 +#: part/models.py:110 msgid "Default location for parts in this category" msgstr "Standard-Lagerort für Teile dieser Kategorie" -#: part/models.py:113 stock/models.py:187 templates/js/translated/part.js:2828 -#: templates/js/translated/stock.js:2856 +#: part/models.py:115 stock/models.py:193 templates/js/translated/part.js:2828 +#: templates/js/translated/stock.js:2857 #: templates/js/translated/table_filters.js:246 #: templates/js/translated/table_filters.js:290 msgid "Structural" msgstr "Strukturell" -#: part/models.py:115 +#: part/models.py:117 msgid "Parts may not be directly assigned to a structural category, but may be assigned to child categories." msgstr "Teile können nicht direkt einer strukturellen Kategorie zugeordnet werden, können aber untergeordneten Kategorien zugeordnet werden." -#: part/models.py:124 +#: part/models.py:126 msgid "Default keywords" msgstr "Standard Stichwörter" -#: part/models.py:125 +#: part/models.py:127 msgid "Default keywords for parts in this category" msgstr "Standard-Stichworte für Teile dieser Kategorie" -#: part/models.py:131 stock/models.py:90 stock/models.py:169 +#: part/models.py:133 stock/models.py:96 stock/models.py:175 #: templates/InvenTree/settings/settings_staff_js.html:445 msgid "Icon" msgstr "Symbol" -#: part/models.py:132 part/serializers.py:143 part/serializers.py:161 -#: stock/models.py:170 +#: part/models.py:134 part/serializers.py:143 part/serializers.py:161 +#: stock/models.py:176 msgid "Icon (optional)" msgstr "Symbol (optional)" -#: part/models.py:178 +#: part/models.py:180 msgid "You cannot make this part category structural because some parts are already assigned to it!" msgstr "Sie können diese Teilekategorie nicht als strukturell festlegen, da ihr bereits Teile zugewiesen sind!" -#: part/models.py:519 +#: part/models.py:514 msgid "Cannot delete this part as it is locked" msgstr "" -#: part/models.py:522 +#: part/models.py:517 msgid "Cannot delete this part as it is still active" msgstr "Dieses Teil kann nicht gelöscht werden, da es noch aktiv ist" -#: part/models.py:527 +#: part/models.py:522 msgid "Cannot delete this part as it is used in an assembly" msgstr "Dieses Teil kann nicht gelöscht werden, da es in einem Bauauftrag verwendet wird" -#: part/models.py:565 +#: part/models.py:560 msgid "Invalid choice for parent part" msgstr "Ungültige Auswahl für übergeordnetes Teil" -#: part/models.py:613 part/models.py:620 +#: part/models.py:608 part/models.py:615 #, python-brace-format msgid "Part '{self}' cannot be used in BOM for '{parent}' (recursive)" msgstr "Teil '{self}' kann in der Stückliste nicht für '{parent}' (rekursiv) verwendet werden" -#: part/models.py:632 +#: part/models.py:627 #, python-brace-format msgid "Part '{parent}' is used in BOM for '{self}' (recursive)" msgstr "Teil '{parent}' wird in der Stückliste für '{self}' (rekursiv) verwendet" -#: part/models.py:695 +#: part/models.py:694 #, python-brace-format msgid "IPN must match regex pattern {pattern}" msgstr "IPN muss mit Regex-Muster {pattern} übereinstimmen" -#: part/models.py:703 +#: part/models.py:702 msgid "Part cannot be a revision of itself" msgstr "" -#: part/models.py:710 +#: part/models.py:709 msgid "Cannot make a revision of a part which is already a revision" msgstr "" -#: part/models.py:717 +#: part/models.py:716 msgid "Revision code must be specified" msgstr "" -#: part/models.py:724 +#: part/models.py:723 msgid "Revisions are only allowed for assembly parts" msgstr "" -#: part/models.py:731 +#: part/models.py:730 msgid "Cannot make a revision of a template part" msgstr "" -#: part/models.py:737 +#: part/models.py:736 msgid "Parent part must point to the same template" msgstr "" -#: part/models.py:816 +#: part/models.py:832 msgid "Stock item with this serial number already exists" msgstr "Ein Lagerartikel mit dieser Seriennummer existiert bereits" -#: part/models.py:917 +#: part/models.py:976 msgid "Duplicate IPN not allowed in part settings" msgstr "Doppelte IPN in den Teil-Einstellungen nicht erlaubt" -#: part/models.py:926 +#: part/models.py:988 msgid "Duplicate part revision already exists." msgstr "" -#: part/models.py:936 +#: part/models.py:997 msgid "Part with this Name, IPN and Revision already exists." msgstr "Teil mit diesem Namen, IPN und Revision existiert bereits." -#: part/models.py:951 +#: part/models.py:1012 msgid "Parts cannot be assigned to structural part categories!" msgstr "Strukturellen Teilekategorien können keine Teile zugewiesen werden!" -#: part/models.py:983 part/models.py:4102 +#: part/models.py:1044 part/models.py:4160 msgid "Part name" msgstr "Name des Teils" -#: part/models.py:988 +#: part/models.py:1049 msgid "Is Template" msgstr "Ist eine Vorlage" -#: part/models.py:989 +#: part/models.py:1050 msgid "Is this part a template part?" msgstr "Ist dieses Teil eine Vorlage?" -#: part/models.py:999 +#: part/models.py:1060 msgid "Is this part a variant of another part?" msgstr "Ist dieses Teil eine Variante eines anderen Teils?" -#: part/models.py:1007 +#: part/models.py:1068 msgid "Part description (optional)" msgstr "Artikelbeschreibung (optional)" -#: part/models.py:1015 +#: part/models.py:1076 msgid "Part keywords to improve visibility in search results" msgstr "Schlüsselworte um die Sichtbarkeit in Suchergebnissen zu verbessern" -#: part/models.py:1025 +#: part/models.py:1086 msgid "Part category" msgstr "Teile-Kategorie" -#: part/models.py:1040 +#: part/models.py:1101 msgid "Part revision or version number" msgstr "Revisions- oder Versionsnummer" -#: part/models.py:1050 +#: part/models.py:1111 msgid "Is this part a revision of another part?" msgstr "" -#: part/models.py:1051 part/templates/part/part_base.html:277 +#: part/models.py:1112 part/templates/part/part_base.html:285 msgid "Revision Of" msgstr "" -#: part/models.py:1075 +#: part/models.py:1136 msgid "Where is this item normally stored?" msgstr "Wo wird dieses Teil normalerweise gelagert?" -#: part/models.py:1121 part/templates/part/part_base.html:385 +#: part/models.py:1182 part/templates/part/part_base.html:393 msgid "Default Supplier" msgstr "Standard Zulieferer" -#: part/models.py:1122 +#: part/models.py:1183 msgid "Default supplier part" msgstr "Standard Zuliefererteil" -#: part/models.py:1129 +#: part/models.py:1190 msgid "Default Expiry" msgstr "Standard Ablaufzeit" -#: part/models.py:1130 +#: part/models.py:1191 msgid "Expiry time (in days) for stock items of this part" msgstr "Ablauf-Zeit (in Tagen) für Bestand dieses Teils" -#: part/models.py:1139 +#: part/models.py:1200 msgid "Minimum allowed stock level" msgstr "Minimal zulässiger Bestand" -#: part/models.py:1148 +#: part/models.py:1209 msgid "Units of measure for this part" msgstr "Maßeinheit für diesen Teil" -#: part/models.py:1155 +#: part/models.py:1216 msgid "Can this part be built from other parts?" msgstr "Kann dieses Teil aus anderen Teilen angefertigt werden?" -#: part/models.py:1161 +#: part/models.py:1222 msgid "Can this part be used to build other parts?" msgstr "Kann dieses Teil zum Bauauftrag von anderen genutzt werden?" -#: part/models.py:1167 +#: part/models.py:1228 msgid "Does this part have tracking for unique items?" msgstr "Hat dieses Teil Tracking für einzelne Objekte?" -#: part/models.py:1173 +#: part/models.py:1234 msgid "Can this part have test results recorded against it?" msgstr "" -#: part/models.py:1179 +#: part/models.py:1240 msgid "Can this part be purchased from external suppliers?" msgstr "Kann dieses Teil von externen Zulieferern gekauft werden?" -#: part/models.py:1185 +#: part/models.py:1246 msgid "Can this part be sold to customers?" msgstr "Kann dieses Teil an Kunden verkauft werden?" -#: part/models.py:1189 +#: part/models.py:1250 msgid "Is this part active?" msgstr "Ist dieses Teil aktiv?" -#: part/models.py:1194 templates/js/translated/part.js:821 +#: part/models.py:1255 templates/js/translated/part.js:821 #: templates/js/translated/table_filters.js:724 msgid "Locked" msgstr "" -#: part/models.py:1195 +#: part/models.py:1256 msgid "Locked parts cannot be edited" msgstr "" -#: part/models.py:1201 +#: part/models.py:1262 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:1207 +#: part/models.py:1268 msgid "BOM checksum" msgstr "Prüfsumme der Stückliste" -#: part/models.py:1208 +#: part/models.py:1269 msgid "Stored BOM checksum" msgstr "Prüfsumme der Stückliste gespeichert" -#: part/models.py:1216 +#: part/models.py:1277 msgid "BOM checked by" msgstr "Stückliste kontrolliert von" -#: part/models.py:1221 +#: part/models.py:1282 msgid "BOM checked date" msgstr "BOM Kontrolldatum" -#: part/models.py:1237 +#: part/models.py:1298 msgid "Creation User" msgstr "Erstellungs-Nutzer" -#: part/models.py:1247 +#: part/models.py:1308 msgid "Owner responsible for this part" msgstr "Verantwortlicher Besitzer für dieses Teil" -#: part/models.py:1252 part/templates/part/part_base.html:348 -#: stock/templates/stock/item_base.html:451 +#: part/models.py:1313 part/templates/part/part_base.html:356 +#: stock/templates/stock/item_base.html:448 #: templates/js/translated/part.js:2490 msgid "Last Stocktake" msgstr "Letzte Inventur" -#: part/models.py:2125 +#: part/models.py:2185 msgid "Sell multiple" msgstr "Mehrere verkaufen" -#: part/models.py:3116 +#: part/models.py:3167 msgid "Currency used to cache pricing calculations" msgstr "Währung für die Berechnung der Preise im Cache" -#: part/models.py:3132 +#: part/models.py:3183 msgid "Minimum BOM Cost" msgstr "Minimale Stücklisten Kosten" -#: part/models.py:3133 +#: part/models.py:3184 msgid "Minimum cost of component parts" msgstr "Minimale Kosten für Teile" -#: part/models.py:3139 +#: part/models.py:3190 msgid "Maximum BOM Cost" msgstr "Maximale Stücklisten Kosten" -#: part/models.py:3140 +#: part/models.py:3191 msgid "Maximum cost of component parts" msgstr "Maximale Kosten für Teile" -#: part/models.py:3146 +#: part/models.py:3197 msgid "Minimum Purchase Cost" msgstr "Minimale Einkaufskosten" -#: part/models.py:3147 +#: part/models.py:3198 msgid "Minimum historical purchase cost" msgstr "Minimale historische Kaufkosten" -#: part/models.py:3153 +#: part/models.py:3204 msgid "Maximum Purchase Cost" msgstr "Maximale Einkaufskosten" -#: part/models.py:3154 +#: part/models.py:3205 msgid "Maximum historical purchase cost" msgstr "Maximale historische Einkaufskosten" -#: part/models.py:3160 +#: part/models.py:3211 msgid "Minimum Internal Price" msgstr "Minimaler interner Preis" -#: part/models.py:3161 +#: part/models.py:3212 msgid "Minimum cost based on internal price breaks" msgstr "Minimale Kosten basierend auf den internen Staffelpreisen" -#: part/models.py:3167 +#: part/models.py:3218 msgid "Maximum Internal Price" msgstr "Maximaler interner Preis" -#: part/models.py:3168 +#: part/models.py:3219 msgid "Maximum cost based on internal price breaks" msgstr "Maximale Kosten basierend auf internen Preisstaffeln" -#: part/models.py:3174 +#: part/models.py:3225 msgid "Minimum Supplier Price" msgstr "Minimaler Lieferantenpreis" -#: part/models.py:3175 +#: part/models.py:3226 msgid "Minimum price of part from external suppliers" msgstr "Mindestpreis für Teil von externen Lieferanten" -#: part/models.py:3181 +#: part/models.py:3232 msgid "Maximum Supplier Price" msgstr "Maximaler Lieferantenpreis" -#: part/models.py:3182 +#: part/models.py:3233 msgid "Maximum price of part from external suppliers" msgstr "Maximaler Preis für Teil von externen Lieferanten" -#: part/models.py:3188 +#: part/models.py:3239 msgid "Minimum Variant Cost" msgstr "Minimale Variantenkosten" -#: part/models.py:3189 +#: part/models.py:3240 msgid "Calculated minimum cost of variant parts" msgstr "Berechnete minimale Kosten für Variantenteile" -#: part/models.py:3195 +#: part/models.py:3246 msgid "Maximum Variant Cost" msgstr "Maximale Variantenkosten" -#: part/models.py:3196 +#: part/models.py:3247 msgid "Calculated maximum cost of variant parts" msgstr "Berechnete maximale Kosten für Variantenteile" -#: part/models.py:3203 +#: part/models.py:3254 msgid "Override minimum cost" msgstr "Mindestkosten überschreiben" -#: part/models.py:3210 +#: part/models.py:3261 msgid "Override maximum cost" msgstr "Maximale Kosten überschreiben" -#: part/models.py:3217 +#: part/models.py:3268 msgid "Calculated overall minimum cost" msgstr "Berechnete Mindestkosten" -#: part/models.py:3224 +#: part/models.py:3275 msgid "Calculated overall maximum cost" msgstr "Berechnete Maximalkosten" -#: part/models.py:3230 +#: part/models.py:3281 msgid "Minimum Sale Price" msgstr "Mindestverkaufspreis" -#: part/models.py:3231 +#: part/models.py:3282 msgid "Minimum sale price based on price breaks" msgstr "Mindestverkaufspreis basierend auf Staffelpreisen" -#: part/models.py:3237 +#: part/models.py:3288 msgid "Maximum Sale Price" msgstr "Maximaler Verkaufspreis" -#: part/models.py:3238 +#: part/models.py:3289 msgid "Maximum sale price based on price breaks" msgstr "Maximalverkaufspreis basierend auf Staffelpreisen" -#: part/models.py:3244 +#: part/models.py:3295 msgid "Minimum Sale Cost" msgstr "Mindestverkaufskosten" -#: part/models.py:3245 +#: part/models.py:3296 msgid "Minimum historical sale price" msgstr "Minimaler historischer Verkaufspreis" -#: part/models.py:3251 +#: part/models.py:3302 msgid "Maximum Sale Cost" msgstr "Maximale Verkaufskosten" -#: part/models.py:3252 +#: part/models.py:3303 msgid "Maximum historical sale price" msgstr "Maximaler historischer Verkaufspreis" -#: part/models.py:3271 +#: part/models.py:3322 msgid "Part for stocktake" msgstr "Teil für die Inventur" -#: part/models.py:3276 +#: part/models.py:3327 msgid "Item Count" msgstr "Stückzahl" -#: part/models.py:3277 +#: part/models.py:3328 msgid "Number of individual stock entries at time of stocktake" msgstr "Anzahl einzelner Bestandseinträge zum Zeitpunkt der Inventur" -#: part/models.py:3285 +#: part/models.py:3336 msgid "Total available stock at time of stocktake" msgstr "Insgesamt verfügbarer Lagerbestand zum Zeitpunkt der Inventur" -#: part/models.py:3289 part/models.py:3372 +#: part/models.py:3340 part/models.py:3423 part/serializers.py:263 #: part/templates/part/part_scheduling.html:13 #: report/templates/report/inventree_test_report.html:106 #: templates/InvenTree/settings/plugin_settings.html:37 #: templates/InvenTree/settings/settings_staff_js.html:543 -#: templates/js/translated/part.js:1092 templates/js/translated/pricing.js:826 -#: templates/js/translated/pricing.js:950 -#: templates/js/translated/purchase_order.js:1801 -#: templates/js/translated/stock.js:2905 +#: templates/js/translated/part.js:1092 templates/js/translated/pricing.js:824 +#: templates/js/translated/pricing.js:948 +#: templates/js/translated/purchase_order.js:1785 +#: templates/js/translated/stock.js:2906 msgid "Date" msgstr "Datum" -#: part/models.py:3290 +#: part/models.py:3341 msgid "Date stocktake was performed" msgstr "Datum der Inventur" -#: part/models.py:3298 +#: part/models.py:3349 msgid "Additional notes" msgstr "Zusätzliche Notizen" -#: part/models.py:3308 +#: part/models.py:3359 msgid "User who performed this stocktake" msgstr "Benutzer, der diese Inventur durchgeführt hat" -#: part/models.py:3314 +#: part/models.py:3365 msgid "Minimum Stock Cost" msgstr "Mindestbestandswert" -#: part/models.py:3315 +#: part/models.py:3366 msgid "Estimated minimum cost of stock on hand" msgstr "Geschätzter Mindestwert des vorhandenen Bestands" -#: part/models.py:3321 +#: part/models.py:3372 msgid "Maximum Stock Cost" msgstr "Maximaler Bestandswert" -#: part/models.py:3322 +#: part/models.py:3373 msgid "Estimated maximum cost of stock on hand" msgstr "Geschätzter Maximalwert des vorhandenen Bestands" -#: part/models.py:3378 templates/InvenTree/settings/settings_staff_js.html:532 +#: part/models.py:3429 templates/InvenTree/settings/settings_staff_js.html:532 msgid "Report" msgstr "Bericht" -#: part/models.py:3379 +#: part/models.py:3430 msgid "Stocktake report file (generated internally)" msgstr "Inventur-Berichtsdatei (intern generiert)" -#: part/models.py:3384 templates/InvenTree/settings/settings_staff_js.html:539 +#: part/models.py:3435 templates/InvenTree/settings/settings_staff_js.html:539 msgid "Part Count" msgstr "Anzahl der Teile" -#: part/models.py:3385 +#: part/models.py:3436 msgid "Number of parts covered by stocktake" msgstr "Anzahl der Teile, die von der Inventur abgedeckt werden" -#: part/models.py:3395 +#: part/models.py:3446 msgid "User who requested this stocktake report" msgstr "Benutzer, der diesen Inventurbericht angefordert hat" -#: part/models.py:3405 +#: part/models.py:3456 msgid "Part Sale Price Break" msgstr "" -#: part/models.py:3517 +#: part/models.py:3568 msgid "Part Test Template" msgstr "" -#: part/models.py:3543 +#: part/models.py:3594 msgid "Invalid template name - must include at least one alphanumeric character" msgstr "Ungültiger Vorlagenname - es muss mindestens ein alphanumerisches Zeichen enthalten sein" -#: part/models.py:3564 part/models.py:3733 +#: part/models.py:3615 part/models.py:3784 msgid "Choices must be unique" msgstr "Auswahl muss einzigartig sein" -#: part/models.py:3575 -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:3626 +msgid "Test templates can only be created for testable parts" +msgstr "" -#: part/models.py:3586 +#: part/models.py:3637 msgid "Test template with the same key already exists for part" msgstr "Testvorlage mit demselben Schlüssel existiert bereits für Teil" -#: part/models.py:3603 templates/js/translated/part.js:2898 +#: part/models.py:3654 templates/js/translated/part.js:2898 msgid "Test Name" msgstr "Test-Name" -#: part/models.py:3604 +#: part/models.py:3655 msgid "Enter a name for the test" msgstr "Namen für diesen Test eingeben" -#: part/models.py:3610 +#: part/models.py:3661 msgid "Test Key" msgstr "Testschlüssel" -#: part/models.py:3611 +#: part/models.py:3662 msgid "Simplified key for the test" msgstr "Vereinfachter Schlüssel zum Test" -#: part/models.py:3618 +#: part/models.py:3669 msgid "Test Description" msgstr "Test-Beschreibung" -#: part/models.py:3619 +#: part/models.py:3670 msgid "Enter description for this test" msgstr "Beschreibung für diesen Test eingeben" -#: part/models.py:3623 report/models.py:208 +#: part/models.py:3674 report/models.py:216 #: templates/js/translated/part.js:2919 #: templates/js/translated/table_filters.js:502 msgid "Enabled" msgstr "Aktiviert" -#: part/models.py:3623 +#: part/models.py:3674 msgid "Is this test enabled?" msgstr "Ist dieser Test aktiviert?" -#: part/models.py:3628 templates/js/translated/part.js:2927 +#: part/models.py:3679 templates/js/translated/part.js:2927 #: templates/js/translated/table_filters.js:498 msgid "Required" msgstr "Benötigt" -#: part/models.py:3629 +#: part/models.py:3680 msgid "Is this test required to pass?" msgstr "Muss dieser Test erfolgreich sein?" -#: part/models.py:3634 templates/js/translated/part.js:2935 +#: part/models.py:3685 templates/js/translated/part.js:2935 msgid "Requires Value" msgstr "Erfordert Wert" -#: part/models.py:3635 +#: part/models.py:3686 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:3640 templates/js/translated/part.js:2942 +#: part/models.py:3691 templates/js/translated/part.js:2942 msgid "Requires Attachment" msgstr "Anhang muss eingegeben werden" -#: part/models.py:3642 +#: part/models.py:3693 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:3648 part/models.py:3792 templates/js/translated/part.js:1643 +#: part/models.py:3699 part/models.py:3843 templates/js/translated/part.js:1643 msgid "Choices" msgstr "Auswahlmöglichkeiten" -#: part/models.py:3649 +#: part/models.py:3700 msgid "Valid choices for this test (comma-separated)" msgstr "Gültige Optionen für diesen Test (durch Komma getrennt)" -#: part/models.py:3681 +#: part/models.py:3732 msgid "Part Parameter Template" msgstr "" -#: part/models.py:3708 +#: part/models.py:3759 msgid "Checkbox parameters cannot have units" msgstr "Checkbox-Parameter können keine Einheiten haben" -#: part/models.py:3713 +#: part/models.py:3764 msgid "Checkbox parameters cannot have choices" msgstr "Checkbox-Parameter können keine Auswahl haben" -#: part/models.py:3750 +#: part/models.py:3801 msgid "Parameter template name must be unique" msgstr "Vorlagen-Name des Parameters muss eindeutig sein" -#: part/models.py:3765 +#: part/models.py:3816 msgid "Parameter Name" msgstr "Name des Parameters" -#: part/models.py:3772 +#: part/models.py:3823 msgid "Physical units for this parameter" msgstr "Physikalische Einheiten für diesen Parameter" -#: part/models.py:3780 +#: part/models.py:3831 msgid "Parameter description" msgstr "Parameter-Beschreibung" -#: part/models.py:3786 templates/js/translated/part.js:1634 +#: part/models.py:3837 templates/js/translated/part.js:1634 #: templates/js/translated/table_filters.js:837 msgid "Checkbox" msgstr "Checkbox" -#: part/models.py:3787 +#: part/models.py:3838 msgid "Is this parameter a checkbox?" msgstr "Ist dieser Parameter eine Checkbox?" -#: part/models.py:3793 +#: part/models.py:3844 msgid "Valid choices for this parameter (comma-separated)" msgstr "Gültige Optionen für diesen Parameter (durch Kommas getrennt)" -#: part/models.py:3827 +#: part/models.py:3881 msgid "Part Parameter" msgstr "" -#: part/models.py:3853 +#: part/models.py:3907 msgid "Parameter cannot be modified - part is locked" msgstr "" -#: part/models.py:3889 +#: part/models.py:3945 msgid "Invalid choice for parameter value" msgstr "Ungültige Auswahl für Parameterwert" -#: part/models.py:3938 +#: part/models.py:3996 msgid "Parent Part" msgstr "Ausgangsteil" -#: part/models.py:3946 part/models.py:4054 part/models.py:4055 +#: part/models.py:4004 part/models.py:4112 part/models.py:4113 #: templates/InvenTree/settings/settings_staff_js.html:295 msgid "Parameter Template" msgstr "Parameter Vorlage" -#: part/models.py:3952 +#: part/models.py:4010 msgid "Parameter Value" msgstr "Parameter Wert" -#: part/models.py:4002 +#: part/models.py:4060 msgid "Part Category Parameter Template" msgstr "" -#: part/models.py:4061 templates/InvenTree/settings/settings_staff_js.html:304 +#: part/models.py:4119 templates/InvenTree/settings/settings_staff_js.html:304 msgid "Default Value" msgstr "Standard-Wert" -#: part/models.py:4062 +#: part/models.py:4120 msgid "Default Parameter Value" msgstr "Standard Parameter Wert" -#: part/models.py:4100 +#: part/models.py:4158 msgid "Part ID or part name" msgstr "Teilnummer oder Teilname" -#: part/models.py:4101 +#: part/models.py:4159 msgid "Unique part ID value" msgstr "Eindeutige Teil-ID" -#: part/models.py:4103 +#: part/models.py:4161 msgid "Part IPN value" msgstr "IPN-Wert des Teils" -#: part/models.py:4104 +#: part/models.py:4162 msgid "Level" msgstr "Stufe" -#: part/models.py:4104 +#: part/models.py:4162 msgid "BOM level" msgstr "Stücklistenebene" -#: part/models.py:4215 +#: part/models.py:4272 msgid "BOM item cannot be modified - assembly is locked" msgstr "" -#: part/models.py:4222 +#: part/models.py:4279 msgid "BOM item cannot be modified - variant assembly is locked" msgstr "" -#: part/models.py:4232 +#: part/models.py:4289 msgid "Select parent part" msgstr "Ausgangsteil auswählen" -#: part/models.py:4242 +#: part/models.py:4299 msgid "Sub part" msgstr "Untergeordnetes Teil" -#: part/models.py:4243 +#: part/models.py:4300 msgid "Select part to be used in BOM" msgstr "Teil für die Nutzung in der Stückliste auswählen" -#: part/models.py:4254 +#: part/models.py:4311 msgid "BOM quantity for this BOM item" msgstr "Stücklisten-Anzahl für dieses Stücklisten-Teil" -#: part/models.py:4260 +#: part/models.py:4317 msgid "This BOM item is optional" msgstr "Diese Stücklisten-Position ist optional" -#: part/models.py:4266 +#: part/models.py:4323 msgid "This BOM item is consumable (it is not tracked in build orders)" msgstr "Diese Stücklisten-Position ist ein Verbrauchsartikel (sie wird nicht in Bauaufträgen verfolgt)" -#: part/models.py:4273 part/templates/part/upload_bom.html:55 +#: part/models.py:4330 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "Überschuss" -#: part/models.py:4274 +#: part/models.py:4331 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "Geschätzter Ausschuss (absolut oder prozentual)" -#: part/models.py:4281 +#: part/models.py:4338 msgid "BOM item reference" msgstr "Referenz der Postion auf der Stückliste" -#: part/models.py:4289 +#: part/models.py:4346 msgid "BOM item notes" msgstr "Notizen zur Stücklisten-Position" -#: part/models.py:4295 +#: part/models.py:4352 msgid "Checksum" msgstr "Prüfsumme" -#: part/models.py:4296 +#: part/models.py:4353 msgid "BOM line checksum" msgstr "Prüfsumme der Stückliste" -#: part/models.py:4301 templates/js/translated/table_filters.js:181 +#: part/models.py:4358 templates/js/translated/table_filters.js:181 msgid "Validated" msgstr "überprüft" -#: part/models.py:4302 +#: part/models.py:4359 msgid "This BOM item has been validated" msgstr "Diese Stücklistenposition wurde validiert" -#: part/models.py:4307 part/templates/part/upload_bom.html:57 +#: part/models.py:4364 part/templates/part/upload_bom.html:57 #: templates/js/translated/bom.js:1054 #: templates/js/translated/table_filters.js:185 #: templates/js/translated/table_filters.js:218 msgid "Gets inherited" msgstr "Wird vererbt" -#: part/models.py:4308 +#: part/models.py:4365 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:4314 +#: part/models.py:4371 msgid "Stock items for variant parts can be used for this BOM item" msgstr "Bestand von Varianten kann für diese Stücklisten-Position verwendet werden" -#: part/models.py:4399 stock/models.py:685 +#: part/models.py:4456 stock/models.py:762 msgid "Quantity must be integer value for trackable parts" msgstr "Menge muss eine Ganzzahl sein" -#: part/models.py:4409 part/models.py:4411 +#: part/models.py:4466 part/models.py:4468 msgid "Sub part must be specified" msgstr "Zuliefererteil muss festgelegt sein" -#: part/models.py:4551 +#: part/models.py:4613 msgid "BOM Item Substitute" msgstr "Stücklisten Ersatzteile" -#: part/models.py:4572 +#: part/models.py:4634 msgid "Substitute part cannot be the same as the master part" msgstr "Ersatzteil kann nicht identisch mit dem Hauptteil sein" -#: part/models.py:4585 +#: part/models.py:4647 msgid "Parent BOM item" msgstr "Übergeordnete Stücklisten Position" -#: part/models.py:4593 +#: part/models.py:4655 msgid "Substitute part" msgstr "Ersatzteil" -#: part/models.py:4609 +#: part/models.py:4671 msgid "Part 1" msgstr "Teil 1" -#: part/models.py:4617 +#: part/models.py:4679 msgid "Part 2" msgstr "Teil 2" -#: part/models.py:4618 +#: part/models.py:4680 msgid "Select Related Part" msgstr "verknüpftes Teil auswählen" -#: part/models.py:4637 +#: part/models.py:4699 msgid "Part relationship cannot be created between a part and itself" msgstr "Teil-Beziehung kann nicht zwischen einem Teil und sich selbst erstellt werden" -#: part/models.py:4642 +#: part/models.py:4704 msgid "Duplicate relationship already exists" msgstr "Doppelte Beziehung existiert bereits" @@ -7449,340 +7662,352 @@ msgstr "Ergebnisse" msgid "Number of results recorded against this template" msgstr "Anzahl der Ergebnisse, die in dieser Vorlage aufgezeichnet wurden" -#: part/serializers.py:225 part/serializers.py:243 stock/serializers.py:616 +#: part/serializers.py:225 part/serializers.py:243 stock/serializers.py:643 msgid "Purchase currency of this stock item" msgstr "Kaufwährung dieses Lagerartikels" -#: part/serializers.py:291 +#: part/serializers.py:268 +msgid "Speculative Quantity" +msgstr "" + +#: part/serializers.py:277 +msgid "Model ID" +msgstr "" + +#: part/serializers.py:324 msgid "Number of parts using this template" msgstr "Anzahl der Teile, die diese Vorlage verwenden" -#: part/serializers.py:421 +#: part/serializers.py:465 msgid "No parts selected" msgstr "Keine Teile ausgewählt" -#: part/serializers.py:431 +#: part/serializers.py:475 msgid "Select category" msgstr "Kategorie auswählen" -#: part/serializers.py:466 +#: part/serializers.py:510 msgid "Original Part" msgstr "Originalteil" -#: part/serializers.py:467 +#: part/serializers.py:511 msgid "Select original part to duplicate" msgstr "Originalteil zum Duplizieren auswählen" -#: part/serializers.py:472 +#: part/serializers.py:516 msgid "Copy Image" msgstr "Bild kopieren" -#: part/serializers.py:473 +#: part/serializers.py:517 msgid "Copy image from original part" msgstr "Bild vom Originalteil kopieren" -#: part/serializers.py:479 part/templates/part/detail.html:293 +#: part/serializers.py:523 part/templates/part/detail.html:293 msgid "Copy BOM" msgstr "Stückliste kopieren" -#: part/serializers.py:480 +#: part/serializers.py:524 msgid "Copy bill of materials from original part" msgstr "Stückliste vom Originalteil kopieren" -#: part/serializers.py:486 +#: part/serializers.py:530 msgid "Copy Parameters" msgstr "Parameter kopieren" -#: part/serializers.py:487 +#: part/serializers.py:531 msgid "Copy parameter data from original part" msgstr "Parameterdaten vom Originalteil kopieren" -#: part/serializers.py:493 +#: part/serializers.py:537 msgid "Copy Notes" msgstr "Anmerkungen kopieren" -#: part/serializers.py:494 +#: part/serializers.py:538 msgid "Copy notes from original part" msgstr "Notizen aus Originalteil kopieren" -#: part/serializers.py:512 +#: part/serializers.py:556 msgid "Initial Stock Quantity" msgstr "Start-Bestandsmenge" -#: part/serializers.py:514 +#: part/serializers.py:558 msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added." msgstr "Initiale Lagermenge für dieses Teil. Wenn die Menge null ist, wird kein Lagerbestand hinzugefügt." -#: part/serializers.py:521 +#: part/serializers.py:565 msgid "Initial Stock Location" msgstr "Initialer Lagerort" -#: part/serializers.py:522 +#: part/serializers.py:566 msgid "Specify initial stock location for this Part" msgstr "Lagerstandort für dieses Teil angeben" -#: part/serializers.py:539 +#: part/serializers.py:583 msgid "Select supplier (or leave blank to skip)" msgstr "Lieferant auswählen (oder leer lassen, um zu überspringen)" -#: part/serializers.py:555 +#: part/serializers.py:599 msgid "Select manufacturer (or leave blank to skip)" msgstr "Hersteller auswählen (oder leer lassen, um zu überspringen)" -#: part/serializers.py:565 +#: part/serializers.py:609 msgid "Manufacturer part number" msgstr "Hersteller-Teilenummer" -#: part/serializers.py:572 +#: part/serializers.py:616 msgid "Selected company is not a valid supplier" msgstr "Ausgewählte Firma ist kein gültiger Lieferant" -#: part/serializers.py:581 +#: part/serializers.py:625 msgid "Selected company is not a valid manufacturer" msgstr "Ausgewählte Firma ist kein gültiger Hersteller" -#: part/serializers.py:592 +#: part/serializers.py:636 msgid "Manufacturer part matching this MPN already exists" msgstr "Herstellerteil mit dieser MPN existiert bereits" -#: part/serializers.py:599 +#: part/serializers.py:643 msgid "Supplier part matching this SKU already exists" msgstr "Lieferantenteil mit dieser SKU existiert bereits" -#: part/serializers.py:903 +#: part/serializers.py:955 msgid "Revisions" msgstr "" -#: part/serializers.py:908 +#: part/serializers.py:960 msgid "Unallocated Stock" msgstr "Nicht zugewiesenes Lager" -#: part/serializers.py:911 +#: part/serializers.py:963 msgid "Variant Stock" msgstr "Alternatives Lager" -#: part/serializers.py:941 part/templates/part/copy_part.html:9 +#: part/serializers.py:993 part/templates/part/copy_part.html:9 #: templates/js/translated/part.js:474 msgid "Duplicate Part" msgstr "Teil duplizieren" -#: part/serializers.py:942 +#: part/serializers.py:994 msgid "Copy initial data from another Part" msgstr "Initiale Daten von anderem Teil kopieren" -#: part/serializers.py:948 templates/js/translated/part.js:103 +#: part/serializers.py:1000 templates/js/translated/part.js:103 msgid "Initial Stock" msgstr "Initialer Lagerbestand" -#: part/serializers.py:949 +#: part/serializers.py:1001 msgid "Create Part with initial stock quantity" msgstr "Erstelle Teil mit Ausgangsbestand" -#: part/serializers.py:955 +#: part/serializers.py:1007 msgid "Supplier Information" msgstr "Lieferanteninformationen" -#: part/serializers.py:956 +#: part/serializers.py:1008 msgid "Add initial supplier information for this part" msgstr "Lieferanteninformationen zu diesem Teil hinzufügen" -#: part/serializers.py:964 +#: part/serializers.py:1016 msgid "Copy Category Parameters" msgstr "Kategorieparameter kopieren" -#: part/serializers.py:965 +#: part/serializers.py:1017 msgid "Copy parameter templates from selected part category" msgstr "Parametervorlagen aus der ausgewählten Teilkategorie kopieren" -#: part/serializers.py:970 +#: part/serializers.py:1022 msgid "Existing Image" msgstr "Vorhandenes Bild" -#: part/serializers.py:971 +#: part/serializers.py:1023 msgid "Filename of an existing part image" msgstr "Dateiname eines vorhandenen Teilbildes" -#: part/serializers.py:988 +#: part/serializers.py:1040 msgid "Image file does not exist" msgstr "Bilddatei existiert nicht" -#: part/serializers.py:1194 +#: part/serializers.py:1247 msgid "Limit stocktake report to a particular part, and any variant parts" msgstr "Inventurbericht auf ein bestimmtes Teil und alle Variantenteile beschränken" -#: part/serializers.py:1204 +#: part/serializers.py:1257 msgid "Limit stocktake report to a particular part category, and any child categories" msgstr "Inventurbericht auf eine bestimmte Teilekategorie und alle untergeordneten Kategorien beschränken" -#: part/serializers.py:1214 +#: part/serializers.py:1267 msgid "Limit stocktake report to a particular stock location, and any child locations" msgstr "Inventurbericht auf einen bestimmten Lagerort und alle untergeordneten Lagerorte beschränken" -#: part/serializers.py:1220 +#: part/serializers.py:1273 msgid "Exclude External Stock" msgstr "Externen Bestand ausschließen" -#: part/serializers.py:1221 +#: part/serializers.py:1274 msgid "Exclude stock items in external locations" msgstr "Lagerartikel an externen Orten ausschließen" -#: part/serializers.py:1226 +#: part/serializers.py:1279 msgid "Generate Report" msgstr "Bericht generieren" -#: part/serializers.py:1227 +#: part/serializers.py:1280 msgid "Generate report file containing calculated stocktake data" msgstr "Erstelle Berichtsdatei mit berechneten Inventurdaten" -#: part/serializers.py:1232 +#: part/serializers.py:1285 msgid "Update Parts" msgstr "Teile aktualisieren" -#: part/serializers.py:1233 +#: part/serializers.py:1286 msgid "Update specified parts with calculated stocktake data" msgstr "Angegebene Teile mit berechneten Inventurdaten aktualisieren" -#: part/serializers.py:1241 +#: part/serializers.py:1294 msgid "Stocktake functionality is not enabled" msgstr "Inventur-Funktionalität ist nicht aktiviert" -#: part/serializers.py:1347 +#: part/serializers.py:1299 +msgid "Background worker check failed" +msgstr "Hintergrund-Prozess-Kontrolle fehlgeschlagen" + +#: part/serializers.py:1401 msgid "Override calculated value for minimum price" msgstr "Berechneten Wert für Mindestpreis überschreiben" -#: part/serializers.py:1354 +#: part/serializers.py:1408 msgid "Minimum price currency" msgstr "Mindestpreis Währung" -#: part/serializers.py:1362 +#: part/serializers.py:1416 msgid "Override calculated value for maximum price" msgstr "Berechneten Wert für maximalen Preis überschreiben" -#: part/serializers.py:1369 +#: part/serializers.py:1423 msgid "Maximum price currency" msgstr "Maximalpreis Währung" -#: part/serializers.py:1398 +#: part/serializers.py:1452 msgid "Update" msgstr "Aktualisieren" -#: part/serializers.py:1399 +#: part/serializers.py:1453 msgid "Update pricing for this part" msgstr "Preis für dieses Teil aktualisieren" -#: part/serializers.py:1422 +#: part/serializers.py:1476 #, python-brace-format msgid "Could not convert from provided currencies to {default_currency}" msgstr "Konnte nicht von den angegebenen Währungen in {default_currency} umrechnen" -#: part/serializers.py:1429 +#: part/serializers.py:1483 msgid "Minimum price must not be greater than maximum price" msgstr "Mindestpreis darf nicht größer als der Maximalpreis sein" -#: part/serializers.py:1432 +#: part/serializers.py:1486 msgid "Maximum price must not be less than minimum price" msgstr "Der Maximalpreis darf nicht kleiner als der Mindestpreis sein" -#: part/serializers.py:1576 +#: part/serializers.py:1634 msgid "Select the parent assembly" msgstr "" -#: part/serializers.py:1585 +#: part/serializers.py:1643 msgid "Component Name" msgstr "" -#: part/serializers.py:1588 +#: part/serializers.py:1646 msgid "Component IPN" msgstr "" -#: part/serializers.py:1591 +#: part/serializers.py:1649 msgid "Component Description" msgstr "" -#: part/serializers.py:1597 +#: part/serializers.py:1655 msgid "Select the component part" msgstr "" -#: part/serializers.py:1606 part/templates/part/part_base.html:235 +#: part/serializers.py:1664 part/templates/part/part_base.html:243 #: templates/js/translated/bom.js:1219 msgid "Can Build" msgstr "Herstellbar" -#: part/serializers.py:1837 +#: part/serializers.py:1899 msgid "Select part to copy BOM from" msgstr "Teil auswählen, von dem Stückliste kopiert wird" -#: part/serializers.py:1845 +#: part/serializers.py:1907 msgid "Remove Existing Data" msgstr "Bestehende Daten entfernen" -#: part/serializers.py:1846 +#: part/serializers.py:1908 msgid "Remove existing BOM items before copying" msgstr "Bestehende Stücklisten-Positionen vor dem Kopieren entfernen" -#: part/serializers.py:1851 +#: part/serializers.py:1913 msgid "Include Inherited" msgstr "Vererbtes einschließen" -#: part/serializers.py:1852 +#: part/serializers.py:1914 msgid "Include BOM items which are inherited from templated parts" msgstr "Stücklisten-Positionen einbeziehen, die von Vorlage-Teilen geerbt werden" -#: part/serializers.py:1857 +#: part/serializers.py:1919 msgid "Skip Invalid Rows" msgstr "Ungültige Zeilen überspringen" -#: part/serializers.py:1858 +#: part/serializers.py:1920 msgid "Enable this option to skip invalid rows" msgstr "Aktiviere diese Option, um ungültige Zeilen zu überspringen" -#: part/serializers.py:1863 +#: part/serializers.py:1925 msgid "Copy Substitute Parts" msgstr "Ersatzteile kopieren" -#: part/serializers.py:1864 +#: part/serializers.py:1926 msgid "Copy substitute parts when duplicate BOM items" msgstr "Ersatzteile beim Duplizieren von Stücklisten-Positionen kopieren" -#: part/serializers.py:1901 +#: part/serializers.py:1963 msgid "Clear Existing BOM" msgstr "Bestehende Stückliste löschen" -#: part/serializers.py:1902 +#: part/serializers.py:1964 msgid "Delete existing BOM items before uploading" msgstr "Bestehende Stücklisten-Positionen vor dem Importieren entfernen" -#: part/serializers.py:1934 +#: part/serializers.py:1996 msgid "No part column specified" msgstr "Keine Teilspalte angegeben" -#: part/serializers.py:1978 +#: part/serializers.py:2040 msgid "Multiple matching parts found" msgstr "Mehrere übereinstimmende Teile gefunden" -#: part/serializers.py:1981 +#: part/serializers.py:2043 msgid "No matching part found" msgstr "Keine passenden Teile gefunden" -#: part/serializers.py:1984 +#: part/serializers.py:2045 msgid "Part is not designated as a component" msgstr "Teil ist nicht als Komponente angelegt" -#: part/serializers.py:1993 +#: part/serializers.py:2054 msgid "Quantity not provided" msgstr "Menge nicht angegeben" -#: part/serializers.py:2001 +#: part/serializers.py:2062 msgid "Invalid quantity" msgstr "Ungültige Menge" -#: part/serializers.py:2024 +#: part/serializers.py:2085 msgid "At least one BOM item is required" msgstr "Mindestens eine Stückliste-Position ist erforderlich" #: part/stocktake.py:224 templates/js/translated/part.js:1073 #: templates/js/translated/part.js:1828 templates/js/translated/part.js:1884 -#: templates/js/translated/purchase_order.js:2154 +#: templates/js/translated/purchase_order.js:2138 msgid "Total Quantity" msgstr "Gesamtstückzahl" @@ -7932,9 +8157,9 @@ msgid "Add stocktake information" msgstr "Inventurinformationen hinzufügen" #: part/templates/part/detail.html:67 part/templates/part/part_sidebar.html:50 -#: stock/admin.py:255 templates/InvenTree/settings/part_stocktake.html:30 +#: stock/admin.py:256 templates/InvenTree/settings/part_stocktake.html:30 #: templates/InvenTree/settings/sidebar.html:53 -#: templates/js/translated/stock.js:2301 users/models.py:204 +#: templates/js/translated/stock.js:2302 users/models.py:204 msgid "Stocktake" msgstr "Inventur" @@ -8093,142 +8318,146 @@ msgstr "Dateiformat auswählen" msgid "Part List" msgstr "Teileliste" -#: part/templates/part/part_base.html:25 part/templates/part/part_base.html:29 +#: part/templates/part/part_base.html:26 part/templates/part/part_base.html:30 msgid "You are subscribed to notifications for this part" msgstr "Sie haben Benachrichtigungen für dieses Teil abonniert" -#: part/templates/part/part_base.html:33 +#: part/templates/part/part_base.html:34 msgid "Subscribe to notifications for this part" msgstr "Benachrichtigungen für dieses Teil abonnieren" -#: part/templates/part/part_base.html:52 +#: part/templates/part/part_base.html:53 #: stock/templates/stock/item_base.html:62 -#: stock/templates/stock/location.html:71 templates/js/translated/label.js:136 +#: stock/templates/stock/location.html:72 templates/js/translated/label.js:136 msgid "Print Label" msgstr "Label drucken" -#: part/templates/part/part_base.html:58 +#: part/templates/part/part_base.html:59 msgid "Show pricing information" msgstr "Kosteninformationen ansehen" -#: part/templates/part/part_base.html:63 -#: stock/templates/stock/item_base.html:110 -#: stock/templates/stock/location.html:80 +#: part/templates/part/part_base.html:64 +#: stock/templates/stock/item_base.html:107 +#: stock/templates/stock/location.html:81 msgid "Stock actions" msgstr "Bestands-Aktionen" -#: part/templates/part/part_base.html:70 +#: part/templates/part/part_base.html:71 msgid "Count part stock" msgstr "Bestand zählen" -#: part/templates/part/part_base.html:76 +#: part/templates/part/part_base.html:77 msgid "Transfer part stock" msgstr "Teilbestand verschieben" -#: part/templates/part/part_base.html:91 templates/js/translated/part.js:2299 +#: part/templates/part/part_base.html:92 templates/js/translated/part.js:2299 msgid "Part actions" msgstr "Teile Aktionen" -#: part/templates/part/part_base.html:94 +#: part/templates/part/part_base.html:95 msgid "Duplicate part" msgstr "Teil duplizieren" -#: part/templates/part/part_base.html:97 +#: part/templates/part/part_base.html:98 msgid "Edit part" msgstr "Teil bearbeiten" -#: part/templates/part/part_base.html:100 +#: part/templates/part/part_base.html:101 msgid "Delete part" msgstr "Teil löschen" -#: part/templates/part/part_base.html:119 +#: part/templates/part/part_base.html:120 msgid "Part is a template part (variants can be made from this part)" msgstr "Teil ist Vorlage (Varianten können von diesem Teil erstellt werden)" -#: part/templates/part/part_base.html:123 +#: part/templates/part/part_base.html:124 msgid "Part can be assembled from other parts" msgstr "Teil kann aus anderen Teilen angefertigt werden" -#: part/templates/part/part_base.html:127 +#: part/templates/part/part_base.html:128 msgid "Part can be used in assemblies" msgstr "Teil kann in Baugruppen benutzt werden" -#: part/templates/part/part_base.html:131 +#: part/templates/part/part_base.html:132 msgid "Part stock is tracked by serial number" msgstr "Teil wird per Seriennummer verfolgt" -#: part/templates/part/part_base.html:135 +#: part/templates/part/part_base.html:136 msgid "Part can be purchased from external suppliers" msgstr "Teil kann von externen Zulieferern gekauft werden" -#: part/templates/part/part_base.html:139 +#: part/templates/part/part_base.html:140 msgid "Part can be sold to customers" msgstr "Teil kann an Kunden verkauft werden" -#: part/templates/part/part_base.html:145 +#: part/templates/part/part_base.html:146 msgid "Part is not active" msgstr "Teil ist nicht aktiv" -#: part/templates/part/part_base.html:153 +#: part/templates/part/part_base.html:154 msgid "Part is virtual (not a physical part)" msgstr "Teil ist virtuell (kein physisches Teil)" -#: part/templates/part/part_base.html:163 -#: part/templates/part/part_base.html:690 +#: part/templates/part/part_base.html:164 +#: part/templates/part/part_base.html:698 msgid "Show Part Details" msgstr "Teildetails anzeigen" #: part/templates/part/part_base.html:218 -#: stock/templates/stock/item_base.html:388 +msgid "Required for Orders" +msgstr "" + +#: part/templates/part/part_base.html:226 +#: stock/templates/stock/item_base.html:385 msgid "Allocated to Build Orders" msgstr "Zu Bauaufträgen zugeordnet" -#: part/templates/part/part_base.html:227 -#: stock/templates/stock/item_base.html:381 +#: part/templates/part/part_base.html:235 +#: stock/templates/stock/item_base.html:378 msgid "Allocated to Sales Orders" msgstr "Zur Bestellung zugeordnet" -#: part/templates/part/part_base.html:300 +#: part/templates/part/part_base.html:308 msgid "Minimum stock level" msgstr "Minimaler Bestand" -#: part/templates/part/part_base.html:331 templates/js/translated/bom.js:1071 +#: part/templates/part/part_base.html:339 templates/js/translated/bom.js:1071 #: templates/js/translated/part.js:1271 templates/js/translated/part.js:2463 #: templates/js/translated/pricing.js:391 -#: templates/js/translated/pricing.js:1054 +#: templates/js/translated/pricing.js:1052 msgid "Price Range" msgstr "Preisspanne" -#: part/templates/part/part_base.html:361 +#: part/templates/part/part_base.html:369 msgid "Latest Serial Number" msgstr "letzte Seriennummer" -#: part/templates/part/part_base.html:365 -#: stock/templates/stock/item_base.html:322 +#: part/templates/part/part_base.html:373 +#: stock/templates/stock/item_base.html:319 msgid "Search for serial number" msgstr "Nach Seriennummer suchen" -#: part/templates/part/part_base.html:453 +#: part/templates/part/part_base.html:461 msgid "Part QR Code" msgstr "QR-Code Teil" -#: part/templates/part/part_base.html:470 +#: part/templates/part/part_base.html:478 msgid "Link Barcode to Part" msgstr "Barcode mit Teil verknüpfen" -#: part/templates/part/part_base.html:520 +#: part/templates/part/part_base.html:528 msgid "Calculate" msgstr "Berechnen" -#: part/templates/part/part_base.html:537 +#: part/templates/part/part_base.html:545 msgid "Remove associated image from this part" msgstr "Verknüpftes Bild von diesem Teil entfernen" -#: part/templates/part/part_base.html:588 +#: part/templates/part/part_base.html:596 msgid "No matching images found" msgstr "Keine passenden Bilder gefunden" -#: part/templates/part/part_base.html:684 +#: part/templates/part/part_base.html:692 msgid "Hide Part Details" msgstr "Teildetails ausblenden" @@ -8282,13 +8511,13 @@ msgid "Variants" msgstr "Varianten" #: part/templates/part/part_sidebar.html:14 -#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:21 +#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:22 #: stock/templates/stock/stock_app_base.html:10 #: templates/InvenTree/search.html:153 #: templates/InvenTree/settings/sidebar.html:51 #: templates/js/translated/part.js:1249 templates/js/translated/part.js:2152 #: templates/js/translated/part.js:2411 templates/js/translated/stock.js:1066 -#: templates/js/translated/stock.js:2155 templates/navbar.html:31 +#: templates/js/translated/stock.js:2156 templates/navbar.html:31 msgid "Stock" msgstr "Bestand" @@ -8324,17 +8553,17 @@ msgstr "Artikelpreise überschreiben" #: part/templates/part/prices.html:18 #: templates/InvenTree/settings/settings_staff_js.html:80 #: templates/InvenTree/settings/user.html:24 -#: templates/js/translated/helpers.js:103 +#: templates/js/translated/helpers.js:104 #: templates/js/translated/pricing.js:628 templates/notes_buttons.html:3 #: templates/notes_buttons.html:4 msgid "Edit" msgstr "Bearbeiten" -#: part/templates/part/prices.html:28 stock/admin.py:251 -#: stock/templates/stock/item_base.html:446 -#: templates/js/translated/company.js:1703 -#: templates/js/translated/company.js:1713 -#: templates/js/translated/stock.js:2331 +#: part/templates/part/prices.html:28 stock/admin.py:252 +#: stock/templates/stock/item_base.html:443 +#: templates/js/translated/company.js:1704 +#: templates/js/translated/company.js:1714 +#: templates/js/translated/stock.js:2332 msgid "Last Updated" msgstr "Zuletzt aktualisiert" @@ -8406,7 +8635,7 @@ msgid "Update Pricing" msgstr "Preise aktualisieren" #: part/templates/part/stock_count.html:7 -#: templates/js/translated/model_renderers.js:228 +#: templates/js/translated/model_renderers.js:231 #: templates/js/translated/part.js:707 templates/js/translated/part.js:2147 #: templates/js/translated/part.js:2149 msgid "No Stock" @@ -8486,7 +8715,7 @@ msgstr "Teilbild nicht gefunden" msgid "Part Pricing" msgstr "Teilbepreisung" -#: plugin/api.py:172 +#: plugin/api.py:175 msgid "Plugin cannot be deleted as it is currently active" msgstr "Das Plugin kann nicht gelöscht werden, da es derzeit aktiv ist" @@ -8498,78 +8727,85 @@ msgstr "Keine Aktion angegeben" msgid "No matching action found" msgstr "Keine passende Aktion gefunden" -#: plugin/base/barcodes/api.py:125 plugin/base/barcodes/api.py:371 -#: plugin/base/barcodes/api.py:546 +#: plugin/base/barcodes/api.py:203 msgid "No match found for barcode data" msgstr "Keine Treffer für Barcode" -#: plugin/base/barcodes/api.py:129 +#: plugin/base/barcodes/api.py:207 msgid "Match found for barcode data" msgstr "Treffer für Barcode gefunden" -#: plugin/base/barcodes/api.py:163 plugin/base/barcodes/serializers.py:45 +#: plugin/base/barcodes/api.py:245 plugin/base/barcodes/serializers.py:72 msgid "Model is not supported" msgstr "" -#: plugin/base/barcodes/api.py:168 +#: plugin/base/barcodes/api.py:250 msgid "Model instance not found" msgstr "" -#: plugin/base/barcodes/api.py:197 -#: templates/js/translated/purchase_order.js:1468 +#: plugin/base/barcodes/api.py:279 +#: templates/js/translated/purchase_order.js:1452 msgid "Barcode matches existing item" msgstr "Barcode entspricht einem bereits vorhandenen Artikel" -#: plugin/base/barcodes/api.py:336 +#: plugin/base/barcodes/api.py:418 msgid "No matching part data found" msgstr "Keine passenden Teiledaten gefunden" -#: plugin/base/barcodes/api.py:353 +#: plugin/base/barcodes/api.py:434 msgid "No matching supplier parts found" msgstr "Keine passenden Zulieferteile gefunden" -#: plugin/base/barcodes/api.py:357 +#: plugin/base/barcodes/api.py:437 msgid "Multiple matching supplier parts found" msgstr "Mehrere passende Zulieferteile gefunden" -#: plugin/base/barcodes/api.py:381 +#: plugin/base/barcodes/api.py:450 plugin/base/barcodes/api.py:664 +msgid "No matching plugin found for barcode data" +msgstr "" + +#: plugin/base/barcodes/api.py:460 msgid "Matched supplier part" msgstr "Zulieferteil zugeordnet" -#: plugin/base/barcodes/api.py:430 +#: plugin/base/barcodes/api.py:525 msgid "Item has already been received" msgstr "Artikel wurde bereits erhalten" -#: plugin/base/barcodes/api.py:467 +#: plugin/base/barcodes/api.py:563 msgid "No match for supplier barcode" msgstr "Keine Übereinstimmung für Zulieferbarcode" -#: plugin/base/barcodes/api.py:510 +#: plugin/base/barcodes/api.py:612 msgid "Multiple matching line items found" msgstr "Mehrere passende Elemente gefunden" -#: plugin/base/barcodes/api.py:513 +#: plugin/base/barcodes/api.py:615 msgid "No matching line item found" msgstr "Kein passendes Element gefunden" -#: plugin/base/barcodes/api.py:551 plugin/base/barcodes/api.py:558 +#: plugin/base/barcodes/api.py:661 +msgid "No sales order provided" +msgstr "" + +#: plugin/base/barcodes/api.py:670 msgid "Barcode does not match an existing stock item" msgstr "Barcode stimmt nicht mit einem vorhandenen Lagerartikel überein" -#: plugin/base/barcodes/api.py:569 +#: plugin/base/barcodes/api.py:686 msgid "Stock item does not match line item" msgstr "Lagerartikel stimmt nicht mit dem Element überein" -#: plugin/base/barcodes/api.py:593 templates/js/translated/build.js:2780 -#: templates/js/translated/sales_order.js:1953 +#: plugin/base/barcodes/api.py:716 templates/js/translated/build.js:2798 +#: templates/js/translated/sales_order.js:1934 msgid "Insufficient stock available" msgstr "Unzureichender Bestand verfügbar" -#: plugin/base/barcodes/api.py:602 +#: plugin/base/barcodes/api.py:729 msgid "Stock item allocated to sales order" msgstr "Lagerartikel der Bestellung zugeordnet" -#: plugin/base/barcodes/api.py:606 +#: plugin/base/barcodes/api.py:732 msgid "Not enough information" msgstr "Nicht genügend Informationen" @@ -8591,75 +8827,75 @@ msgstr "Keine passende Bestellung für '{order}'" msgid "Purchase order does not match supplier" msgstr "Bestellung entspricht nicht dem Lieferanten" -#: plugin/base/barcodes/mixins.py:465 +#: plugin/base/barcodes/mixins.py:467 msgid "Failed to find pending line item for supplier part" msgstr "Ausstehender Artikel für Lieferantenteil konnte nicht gefunden werden" -#: plugin/base/barcodes/mixins.py:496 +#: plugin/base/barcodes/mixins.py:498 msgid "Further information required to receive line item" msgstr "Weitere Informationen zum Empfang des Zeilenelements erforderlich" -#: plugin/base/barcodes/mixins.py:504 +#: plugin/base/barcodes/mixins.py:506 msgid "Received purchase order line item" msgstr "Erhaltene Bestellartikel" -#: plugin/base/barcodes/serializers.py:21 +#: plugin/base/barcodes/serializers.py:48 msgid "Scanned barcode data" msgstr "Gescannte Barcode Daten" -#: plugin/base/barcodes/serializers.py:30 +#: plugin/base/barcodes/serializers.py:57 msgid "Model name to generate barcode for" msgstr "" -#: plugin/base/barcodes/serializers.py:35 +#: plugin/base/barcodes/serializers.py:62 msgid "Primary key of model object to generate barcode for" msgstr "" -#: plugin/base/barcodes/serializers.py:105 +#: plugin/base/barcodes/serializers.py:132 msgid "Purchase Order to allocate items against" msgstr "Ordne Artikel Bestellung zu" -#: plugin/base/barcodes/serializers.py:111 +#: plugin/base/barcodes/serializers.py:138 msgid "Purchase order is not pending" msgstr "Bestellung ist nicht ausstehend" -#: plugin/base/barcodes/serializers.py:129 +#: plugin/base/barcodes/serializers.py:156 msgid "PurchaseOrder to receive items against" msgstr "Ordne erhaltene Artikel Bestellung zu" -#: plugin/base/barcodes/serializers.py:135 +#: plugin/base/barcodes/serializers.py:162 msgid "Purchase order has not been placed" msgstr "Bestellung wurde nicht aufgegeben" -#: plugin/base/barcodes/serializers.py:143 +#: plugin/base/barcodes/serializers.py:170 msgid "Location to receive items into" msgstr "Ort für den Empfang von Artikeln" -#: plugin/base/barcodes/serializers.py:149 +#: plugin/base/barcodes/serializers.py:176 msgid "Cannot select a structural location" msgstr "Kann keinen strukturellen Standort auswählen" -#: plugin/base/barcodes/serializers.py:163 +#: plugin/base/barcodes/serializers.py:190 msgid "Sales Order to allocate items against" msgstr "Kundenauftrag zum Zuordnen von Artikeln zu" -#: plugin/base/barcodes/serializers.py:169 +#: plugin/base/barcodes/serializers.py:196 msgid "Sales order is not pending" msgstr "Bestellung ist nicht ausstehend" -#: plugin/base/barcodes/serializers.py:177 +#: plugin/base/barcodes/serializers.py:204 msgid "Sales order line item to allocate items against" msgstr "Artikel der Verkaufsbestellung zuweisen" -#: plugin/base/barcodes/serializers.py:184 +#: plugin/base/barcodes/serializers.py:211 msgid "Sales order shipment to allocate items against" msgstr "Sendung des Verkaufsauftrags zur Zuweisung von Artikeln gegen" -#: plugin/base/barcodes/serializers.py:190 +#: plugin/base/barcodes/serializers.py:217 msgid "Shipment has already been delivered" msgstr "Sendung wurde bereits geliefert" -#: plugin/base/barcodes/serializers.py:195 +#: plugin/base/barcodes/serializers.py:222 msgid "Quantity to allocate" msgstr "Zugewiesene Menge" @@ -8679,6 +8915,42 @@ msgstr "Fehler beim Rendern des Etikett als HTML" msgid "No items provided to print" msgstr "Keine Elemente zum Drucken übergeben" +#: plugin/base/ui/serializers.py:30 +msgid "Plugin Name" +msgstr "" + +#: plugin/base/ui/serializers.py:34 +msgid "Feature Type" +msgstr "" + +#: plugin/base/ui/serializers.py:39 +msgid "Feature Label" +msgstr "" + +#: plugin/base/ui/serializers.py:44 +msgid "Feature Title" +msgstr "" + +#: plugin/base/ui/serializers.py:49 +msgid "Feature Description" +msgstr "" + +#: plugin/base/ui/serializers.py:54 +msgid "Feature Icon" +msgstr "" + +#: plugin/base/ui/serializers.py:58 +msgid "Feature Options" +msgstr "" + +#: plugin/base/ui/serializers.py:61 +msgid "Feature Context" +msgstr "" + +#: plugin/base/ui/serializers.py:64 +msgid "Feature Source (javascript)" +msgstr "" + #: plugin/builtin/barcodes/inventree_barcode.py:27 msgid "InvenTree Barcodes" msgstr "InvenTree Barcodes" @@ -8756,7 +9028,7 @@ msgstr "Eingehender Webhook-URL für Slack" msgid "URL that is used to send messages to a slack channel" msgstr "URL, die verwendet wird, um Nachrichten an einen Slack-Kanal zu senden" -#: plugin/builtin/integration/core_notifications.py:164 +#: plugin/builtin/integration/core_notifications.py:166 msgid "Open link" msgstr "Link öffnen" @@ -8794,11 +9066,11 @@ msgstr "InvenTree Maschinen-Etikettendrucker" msgid "Provides support for printing using a machine" msgstr "Unterstützt das Drucken mit einer Maschine" -#: plugin/builtin/labels/inventree_machine.py:149 +#: plugin/builtin/labels/inventree_machine.py:151 msgid "last used" msgstr "Zuletzt benutzt" -#: plugin/builtin/labels/inventree_machine.py:166 +#: plugin/builtin/labels/inventree_machine.py:168 msgid "Options" msgstr "Optionen" @@ -8822,7 +9094,7 @@ msgstr "Rand" msgid "Print a border around each label" msgstr "Einen Rahmen um jedes Label drucken" -#: plugin/builtin/labels/label_sheet.py:47 report/models.py:307 +#: plugin/builtin/labels/label_sheet.py:47 report/models.py:315 msgid "Landscape" msgstr "Querformat" @@ -8894,19 +9166,19 @@ msgstr "Unterstützt das Scannen von TME-Barcodes" msgid "The Supplier which acts as 'TME'" msgstr "Der Lieferant, der als 'TME' fungiert" -#: plugin/installer.py:194 plugin/installer.py:282 +#: plugin/installer.py:199 plugin/installer.py:282 msgid "Only staff users can administer plugins" msgstr "Nur Mitarbeiter können Plugins verwalten" -#: plugin/installer.py:197 +#: plugin/installer.py:202 msgid "Plugin installation is disabled" msgstr "Plugin-Installation ist deaktiviert" -#: plugin/installer.py:248 +#: plugin/installer.py:246 msgid "Installed plugin successfully" msgstr "Plugin wurde erfolgreich installiert" -#: plugin/installer.py:254 +#: plugin/installer.py:251 #, python-brace-format msgid "Installed plugin into {path}" msgstr "Plugin installiert in {path}" @@ -8943,10 +9215,6 @@ msgstr "Plugin-Konfiguration" msgid "Plugin Configurations" msgstr "Plugin-Konfigurationen" -#: plugin/models.py:43 users/models.py:100 -msgid "Key" -msgstr "Schlüssel" - #: plugin/models.py:44 msgid "Key of plugin" msgstr "Schlüssel des Plugins" @@ -8955,7 +9223,7 @@ msgstr "Schlüssel des Plugins" msgid "PluginName of the plugin" msgstr "Name des Plugins" -#: plugin/models.py:59 plugin/serializers.py:90 +#: plugin/models.py:59 plugin/serializers.py:115 msgid "Package Name" msgstr "Paket-Name" @@ -8984,17 +9252,17 @@ msgstr "Integriertes Plugin" msgid "Package Plugin" msgstr "Paket-Plugin" -#: plugin/models.py:220 report/models.py:474 +#: plugin/models.py:259 report/models.py:482 #: templates/InvenTree/settings/plugin_settings.html:9 #: templates/js/translated/plugin.js:51 msgid "Plugin" msgstr "Plugin" -#: plugin/models.py:267 +#: plugin/models.py:306 msgid "Method" msgstr "Methode" -#: plugin/plugin.py:270 +#: plugin/plugin.py:275 msgid "No author found" msgstr "Kein Autor gefunden" @@ -9053,81 +9321,157 @@ msgstr "Beispiel-Währungswechsel-Plugin" msgid "InvenTree Contributors" msgstr "InvenTree Mitwirkende" -#: plugin/serializers.py:81 +#: plugin/samples/integration/user_interface_sample.py:27 +msgid "Enable Part Panels" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:28 +msgid "Enable custom panels for Part views" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:33 +msgid "Enable Purchase Order Panels" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:34 +msgid "Enable custom panels for Purchase Order views" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:39 +msgid "Enable Broken Panels" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:40 +msgid "Enable broken panels for testing" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:45 +msgid "Enable Dynamic Panel" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:46 +msgid "Enable dynamic panels for testing" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:98 +msgid "Part Panel" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:131 +msgid "Broken Dashboard Item" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:133 +msgid "This is a broken dashboard item - it will not render!" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:139 +msgid "Sample Dashboard Item" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:141 +msgid "This is a sample dashboard item. It renders a simple string of HTML content." +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:147 +msgid "Context Dashboard Item" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:161 +msgid "Admin Dashboard Item" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:162 +msgid "This is an admin-only dashboard item." +msgstr "" + +#: plugin/serializers.py:82 +msgid "Source File" +msgstr "" + +#: plugin/serializers.py:83 +msgid "Path to the source file for admin integration" +msgstr "" + +#: plugin/serializers.py:90 +msgid "Optional context data for the admin integration" +msgstr "" + +#: plugin/serializers.py:106 msgid "Source URL" msgstr "Quell-URL" -#: plugin/serializers.py:83 +#: plugin/serializers.py:108 msgid "Source for the package - this can be a custom registry or a VCS path" msgstr "Quelle für das Paket - dies kann eine eigene Registry oder ein VCS-Pfad sein" -#: plugin/serializers.py:92 +#: plugin/serializers.py:117 msgid "Name for the Plugin Package - can also contain a version indicator" msgstr "Name für das Plugin-Paket - kann auch einen Versionstext enthalten" -#: plugin/serializers.py:99 +#: plugin/serializers.py:124 #: templates/InvenTree/settings/plugin_settings.html:42 #: templates/js/translated/plugin.js:86 msgid "Version" msgstr "Version" -#: plugin/serializers.py:101 +#: plugin/serializers.py:126 msgid "Version specifier for the plugin. Leave blank for latest version." msgstr "Versionsangabe für das Plugin. Leer lassen für die neueste Version." -#: plugin/serializers.py:106 +#: plugin/serializers.py:131 msgid "Confirm plugin installation" msgstr "Plugin-Installation bestätigen" -#: plugin/serializers.py:108 +#: plugin/serializers.py:133 msgid "This will install this plugin now into the current instance. The instance will go into maintenance." msgstr "Dies wird dieses Plugin sofort in die aktuelle Instanz installieren. Die Instanz wird sofort in Wartung gehen." -#: plugin/serializers.py:121 +#: plugin/serializers.py:146 msgid "Installation not confirmed" msgstr "Installation nicht bestätigt" -#: plugin/serializers.py:123 +#: plugin/serializers.py:148 msgid "Either packagename of URL must be provided" msgstr "Entweder Paketname oder URL muss angegeben werden" -#: plugin/serializers.py:161 +#: plugin/serializers.py:184 msgid "Full reload" msgstr "Komplett neu laden" -#: plugin/serializers.py:162 +#: plugin/serializers.py:185 msgid "Perform a full reload of the plugin registry" msgstr "Führe ein vollständiges Nachladen der Plugin-Registrierung durch" -#: plugin/serializers.py:168 +#: plugin/serializers.py:191 msgid "Force reload" msgstr "Neuladen erzwingen" -#: plugin/serializers.py:170 +#: plugin/serializers.py:193 msgid "Force a reload of the plugin registry, even if it is already loaded" msgstr "Erzwinge ein erneutes Laden der Plugin-Registrierung, auch wenn sie bereits geladen ist" -#: plugin/serializers.py:177 +#: plugin/serializers.py:200 msgid "Collect plugins" msgstr "Plugins sammeln" -#: plugin/serializers.py:178 +#: plugin/serializers.py:201 msgid "Collect plugins and add them to the registry" msgstr "Plugins sammeln und zur Registrierung hinzufügen" -#: plugin/serializers.py:205 +#: plugin/serializers.py:228 msgid "Activate Plugin" msgstr "Plugin aktivieren" -#: plugin/serializers.py:206 +#: plugin/serializers.py:229 msgid "Activate this plugin" msgstr "Dieses Plugin aktivieren" -#: plugin/serializers.py:226 +#: plugin/serializers.py:249 msgid "Delete configuration" msgstr "Konfiguration löschen" -#: plugin/serializers.py:227 +#: plugin/serializers.py:250 msgid "Delete the plugin configuration from the database" msgstr "Plugin-Konfiguration aus der Datenbank löschen" @@ -9135,11 +9479,11 @@ msgstr "Plugin-Konfiguration aus der Datenbank löschen" msgid "No valid objects provided to template" msgstr "Keine korrekten Objekte für Vorlage gegeben" -#: report/api.py:103 report/models.py:438 report/serializers.py:98 -#: report/serializers.py:148 templates/js/translated/purchase_order.js:1817 +#: report/api.py:103 report/models.py:446 report/serializers.py:99 +#: report/serializers.py:149 templates/js/translated/purchase_order.js:1801 #: templates/js/translated/return_order.js:353 -#: templates/js/translated/sales_order.js:887 -#: templates/js/translated/sales_order.js:1047 +#: templates/js/translated/sales_order.js:846 +#: templates/js/translated/sales_order.js:1020 msgid "Items" msgstr "Teile" @@ -9167,7 +9511,11 @@ msgstr "" msgid "Error printing label" msgstr "Fehler beim Drucken des Labels" -#: report/api.py:375 report/api.py:411 +#: report/api.py:358 +msgid "Report saved at time of printing" +msgstr "" + +#: report/api.py:384 report/api.py:420 #, python-brace-format msgid "Template file '{template}' is missing or does not exist" msgstr "Vorlagendatei '{template}' fehlt oder existiert nicht" @@ -9204,135 +9552,143 @@ msgstr "" msgid "Revision number (auto-increments)" msgstr "" -#: report/models.py:202 +#: report/models.py:168 +msgid "Attach to Model on Print" +msgstr "" + +#: report/models.py:170 +msgid "Save report output as an attachment against linked model instance when printing" +msgstr "" + +#: report/models.py:210 msgid "Filename Pattern" msgstr "Dateinamen-Muster" -#: report/models.py:203 +#: report/models.py:211 msgid "Pattern for generating filenames" msgstr "" -#: report/models.py:208 +#: report/models.py:216 msgid "Template is enabled" msgstr "" -#: report/models.py:214 +#: report/models.py:222 msgid "Target model type for template" msgstr "" -#: report/models.py:234 +#: report/models.py:242 msgid "Filters" msgstr "Filter" -#: report/models.py:235 +#: report/models.py:243 msgid "Template query filters (comma-separated list of key=value pairs)" msgstr "" -#: report/models.py:294 report/models.py:361 +#: report/models.py:302 report/models.py:369 msgid "Template file" msgstr "" -#: report/models.py:302 +#: report/models.py:310 msgid "Page size for PDF reports" msgstr "Seitengröße für PDF-Berichte" -#: report/models.py:308 +#: report/models.py:316 msgid "Render report in landscape orientation" msgstr "Bericht in Querformat anzeigen" -#: report/models.py:367 +#: report/models.py:375 msgid "Width [mm]" msgstr "Breite [mm]" -#: report/models.py:368 +#: report/models.py:376 msgid "Label width, specified in mm" msgstr "Label-Breite in mm" -#: report/models.py:374 +#: report/models.py:382 msgid "Height [mm]" msgstr "Höhe [mm]" -#: report/models.py:375 +#: report/models.py:383 msgid "Label height, specified in mm" msgstr "Label-Höhe in mm" -#: report/models.py:438 +#: report/models.py:446 msgid "Number of items to process" msgstr "" -#: report/models.py:444 +#: report/models.py:452 msgid "Report generation is complete" msgstr "" -#: report/models.py:448 templates/js/translated/build.js:2349 +#: report/models.py:456 templates/js/translated/build.js:2352 msgid "Progress" msgstr "Fortschritt" -#: report/models.py:448 +#: report/models.py:456 msgid "Report generation progress" msgstr "" -#: report/models.py:456 +#: report/models.py:464 msgid "Report Template" msgstr "" -#: report/models.py:463 report/models.py:486 +#: report/models.py:471 report/models.py:494 msgid "Output File" msgstr "Ausgabedatei" -#: report/models.py:464 report/models.py:487 +#: report/models.py:472 report/models.py:495 msgid "Generated output file" msgstr "" -#: report/models.py:475 +#: report/models.py:483 msgid "Label output plugin" msgstr "" -#: report/models.py:479 +#: report/models.py:487 msgid "Label Template" msgstr "" -#: report/models.py:502 +#: report/models.py:510 msgid "Snippet" msgstr "Schnipsel" -#: report/models.py:503 +#: report/models.py:511 msgid "Report snippet file" msgstr "Berichts-Snippet" -#: report/models.py:510 +#: report/models.py:518 msgid "Snippet file description" msgstr "Snippet-Beschreibung" -#: report/models.py:528 +#: report/models.py:536 msgid "Asset" msgstr "Ressource" -#: report/models.py:529 +#: report/models.py:537 msgid "Report asset file" msgstr "Berichts-Ressource" -#: report/models.py:536 +#: report/models.py:544 msgid "Asset file description" msgstr "Ressource-Beschreibung" -#: report/serializers.py:91 +#: report/serializers.py:92 msgid "Select report template" msgstr "" -#: report/serializers.py:99 report/serializers.py:149 +#: report/serializers.py:100 report/serializers.py:150 msgid "List of item primary keys to include in the report" msgstr "" -#: report/serializers.py:132 +#: report/serializers.py:133 msgid "Select label template" msgstr "Etiketten-Vorlage auswählen" -#: report/serializers.py:140 +#: report/serializers.py:141 msgid "Printing Plugin" msgstr "" -#: report/serializers.py:141 +#: report/serializers.py:142 msgid "Select plugin to use for label printing" msgstr "" @@ -9365,9 +9721,9 @@ msgstr "Lieferant gelöscht" #: report/templates/report/inventree_sales_order_report.html:30 #: templates/js/translated/order.js:341 templates/js/translated/pricing.js:527 #: templates/js/translated/pricing.js:596 -#: templates/js/translated/pricing.js:834 -#: templates/js/translated/purchase_order.js:2185 -#: templates/js/translated/sales_order.js:1873 +#: templates/js/translated/pricing.js:832 +#: templates/js/translated/purchase_order.js:2169 +#: templates/js/translated/sales_order.js:1854 msgid "Unit Price" msgstr "Stück-Preis" @@ -9379,13 +9735,18 @@ msgstr "Zusätzliche Positionen" #: report/templates/report/inventree_purchase_order_report.html:72 #: report/templates/report/inventree_sales_order_report.html:72 -#: templates/js/translated/purchase_order.js:2087 -#: templates/js/translated/sales_order.js:1842 +#: templates/js/translated/purchase_order.js:2071 +#: templates/js/translated/sales_order.js:1823 #: templates/test_statistics_table.html:8 #: templates/test_statistics_table.html:19 msgid "Total" msgstr "Summe" +#: report/templates/report/inventree_sales_order_shipment_report.html:23 +#: stock/templates/stock/stock_sidebar.html:8 +msgid "Allocations" +msgstr "Zuweisungen" + #: report/templates/report/inventree_stock_location_report.html:97 msgid "Stock location items" msgstr "Lagerstandorte" @@ -9403,15 +9764,13 @@ msgstr "Testergebnisse" msgid "Test" msgstr "Test" -#: report/templates/report/inventree_test_report.html:103 stock/models.py:2544 -msgid "Result" -msgstr "Ergebnis" - #: report/templates/report/inventree_test_report.html:129 +#: templates/js/translated/stock.js:1448 msgid "Pass" msgstr "bestanden" #: report/templates/report/inventree_test_report.html:131 +#: templates/js/translated/stock.js:1450 msgid "Fail" msgstr "fehlgeschlagen" @@ -9420,17 +9779,18 @@ msgid "No result (required)" msgstr "Kein Ergebnis (erforderlich)" #: report/templates/report/inventree_test_report.html:140 +#: templates/js/translated/stock.js:1455 msgid "No result" msgstr "Kein Ergebnis" #: report/templates/report/inventree_test_report.html:153 -#: stock/serializers.py:599 stock/templates/stock/stock_sidebar.html:16 +#: stock/serializers.py:626 stock/templates/stock/stock_sidebar.html:16 msgid "Installed Items" msgstr "Verbaute Objekte" -#: report/templates/report/inventree_test_report.html:167 stock/admin.py:161 +#: report/templates/report/inventree_test_report.html:167 stock/admin.py:162 #: templates/js/translated/stock.js:706 templates/js/translated/stock.js:877 -#: templates/js/translated/stock.js:3194 +#: templates/js/translated/stock.js:3195 msgid "Serial" msgstr "Seriennummer" @@ -9450,67 +9810,67 @@ msgstr "part_image tag benötigt eine Bauteilinstanz" msgid "company_image tag requires a Company instance" msgstr "company_image tag erfordert eine Firmeninstanz" -#: stock/admin.py:51 stock/admin.py:171 +#: stock/admin.py:51 stock/admin.py:172 msgid "Location ID" msgstr "Standort-ID" -#: stock/admin.py:63 stock/templates/stock/location.html:128 -#: stock/templates/stock/location.html:134 +#: stock/admin.py:63 stock/templates/stock/location.html:129 +#: stock/templates/stock/location.html:135 msgid "Location Path" msgstr "Lagerortpfad" -#: stock/admin.py:148 +#: stock/admin.py:149 msgid "Stock Item ID" msgstr "Lagerartikel ID" -#: stock/admin.py:167 +#: stock/admin.py:168 msgid "Status Code" msgstr "Statuscode" -#: stock/admin.py:179 +#: stock/admin.py:180 msgid "Supplier Part ID" msgstr "Zuliefererteil-ID" -#: stock/admin.py:184 +#: stock/admin.py:185 msgid "Supplier Part SKU" msgstr "" -#: stock/admin.py:189 +#: stock/admin.py:190 msgid "Supplier ID" msgstr "Zulieferer ID" -#: stock/admin.py:200 +#: stock/admin.py:201 msgid "Customer ID" msgstr "Kunden ID" -#: stock/admin.py:205 stock/models.py:825 -#: stock/templates/stock/item_base.html:354 +#: stock/admin.py:206 stock/models.py:902 +#: stock/templates/stock/item_base.html:351 msgid "Installed In" msgstr "verbaut in" -#: stock/admin.py:210 +#: stock/admin.py:211 msgid "Build ID" msgstr "Bauauftrag-ID" -#: stock/admin.py:220 +#: stock/admin.py:221 msgid "Sales Order ID" msgstr "Auftrags-ID" -#: stock/admin.py:225 +#: stock/admin.py:226 msgid "Purchase Order ID" msgstr "Bestellungs-ID" -#: stock/admin.py:240 +#: stock/admin.py:241 msgid "Review Needed" msgstr "Überprüfung erforderlich" -#: stock/admin.py:245 +#: stock/admin.py:246 msgid "Delete on Deplete" msgstr "Löschen wenn leer" -#: stock/admin.py:260 stock/models.py:919 -#: stock/templates/stock/item_base.html:433 -#: templates/js/translated/stock.js:2315 users/models.py:124 +#: stock/admin.py:261 stock/models.py:996 +#: stock/templates/stock/item_base.html:430 +#: templates/js/translated/stock.js:2316 users/models.py:124 msgid "Expiry Date" msgstr "Ablaufdatum" @@ -9526,11 +9886,11 @@ msgstr "" msgid "Include sub-locations in filtered results" msgstr "Unterorte in gefilterte Ergebnisse einbeziehen" -#: stock/api.py:367 stock/serializers.py:1186 +#: stock/api.py:366 stock/serializers.py:1217 msgid "Parent Location" msgstr "Übergeordneter Ort" -#: stock/api.py:368 +#: stock/api.py:367 msgid "Filter by parent location" msgstr "Filtern nach übergeordnetem Ort" @@ -9550,8 +9910,8 @@ msgstr "Gültigkeitsdauer vor" msgid "Expiry date after" msgstr "Gültigkeitsdauer nach" -#: stock/api.py:840 stock/serializers.py:604 -#: stock/templates/stock/item_base.html:439 +#: stock/api.py:840 stock/serializers.py:631 +#: stock/templates/stock/item_base.html:436 #: templates/js/translated/table_filters.js:448 msgid "Stale" msgstr "überfällig" @@ -9560,594 +9920,598 @@ msgstr "überfällig" msgid "Quantity is required" msgstr "Menge ist erforderlich" -#: stock/api.py:933 +#: stock/api.py:932 msgid "Valid part must be supplied" msgstr "Gültiges Teil muss angegeben werden" -#: stock/api.py:964 +#: stock/api.py:959 msgid "The given supplier part does not exist" msgstr "Der angegebene Lieferantenartikel existiert nicht" -#: stock/api.py:974 +#: stock/api.py:969 msgid "The supplier part has a pack size defined, but flag use_pack_size not set" msgstr "Das Zulieferteil hat eine Packungsgröße definiert, aber das Kennzeichen use_pack_size ist nicht gesetzt" -#: stock/api.py:1005 +#: stock/api.py:996 msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "Seriennummern können für nicht verfolgbare Teile nicht angegeben werden" -#: stock/models.py:64 +#: stock/models.py:70 msgid "Stock Location type" msgstr "Lagerstandort Typ" -#: stock/models.py:65 +#: stock/models.py:71 msgid "Stock Location types" msgstr "Lagerstandorte Typen" -#: stock/models.py:91 +#: stock/models.py:97 msgid "Default icon for all locations that have no icon set (optional)" msgstr "Standardsymbol für alle Orte, die kein Icon gesetzt haben (optional)" -#: stock/models.py:131 stock/models.py:807 -#: stock/templates/stock/location.html:17 +#: stock/models.py:137 stock/models.py:884 +#: stock/templates/stock/location.html:18 #: stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "Bestand-Lagerort" -#: stock/models.py:132 stock/templates/stock/location.html:183 +#: stock/models.py:138 stock/templates/stock/location.html:184 #: templates/InvenTree/search.html:166 templates/js/translated/search.js:178 #: users/models.py:205 msgid "Stock Locations" msgstr "Bestand-Lagerorte" -#: stock/models.py:180 stock/models.py:968 -#: stock/templates/stock/item_base.html:247 +#: stock/models.py:186 stock/models.py:1045 +#: stock/templates/stock/item_base.html:244 msgid "Owner" msgstr "Besitzer" -#: stock/models.py:181 stock/models.py:969 +#: stock/models.py:187 stock/models.py:1046 msgid "Select Owner" msgstr "Besitzer auswählen" -#: stock/models.py:189 +#: stock/models.py:195 msgid "Stock items may not be directly located into a structural stock locations, but may be located to child locations." msgstr "Lagerartikel können nicht direkt an einen strukturellen Lagerort verlegt werden, können aber an einen untergeordneten Lagerort verlegt werden." -#: stock/models.py:196 templates/js/translated/stock.js:2865 +#: stock/models.py:202 templates/js/translated/stock.js:2866 #: templates/js/translated/table_filters.js:250 msgid "External" msgstr "Extern" -#: stock/models.py:197 +#: stock/models.py:203 msgid "This is an external stock location" msgstr "Dies ist ein externer Lagerort" -#: stock/models.py:203 templates/js/translated/stock.js:2874 +#: stock/models.py:209 templates/js/translated/stock.js:2875 #: templates/js/translated/table_filters.js:253 msgid "Location type" msgstr "Standorttyp" -#: stock/models.py:207 +#: stock/models.py:213 msgid "Stock location type of this location" msgstr "Standortart dieses Standortes" -#: stock/models.py:279 +#: stock/models.py:285 msgid "You cannot make this stock location structural because some stock items are already located into it!" msgstr "Sie können diesen Lagerort nicht als strukturell markieren, da sich bereits Lagerartikel darin befinden!" -#: stock/models.py:664 +#: stock/models.py:492 +msgid "Part must be specified" +msgstr "" + +#: stock/models.py:741 msgid "Stock items cannot be located into structural stock locations!" msgstr "Lagerartikel können nicht in strukturelle Lagerorte abgelegt werden!" -#: stock/models.py:691 stock/serializers.py:480 +#: stock/models.py:768 stock/serializers.py:492 msgid "Stock item cannot be created for virtual parts" msgstr "Für virtuelle Teile können keine Lagerartikel erstellt werden" -#: stock/models.py:708 +#: stock/models.py:785 #, python-brace-format msgid "Part type ('{self.supplier_part.part}') must be {self.part}" msgstr "Artikeltyp ('{self.supplier_part.part}') muss {self.part} sein" -#: stock/models.py:718 stock/models.py:731 +#: stock/models.py:795 stock/models.py:808 msgid "Quantity must be 1 for item with a serial number" msgstr "Anzahl muss für Objekte mit Seriennummer 1 sein" -#: stock/models.py:721 +#: stock/models.py:798 msgid "Serial number cannot be set if quantity greater than 1" msgstr "Seriennummer kann nicht gesetzt werden wenn die Anzahl größer als 1 ist" -#: stock/models.py:743 +#: stock/models.py:820 msgid "Item cannot belong to itself" msgstr "Teil kann nicht zu sich selbst gehören" -#: stock/models.py:748 +#: stock/models.py:825 msgid "Item must have a build reference if is_building=True" msgstr "Teil muss eine Referenz haben wenn is_building wahr ist" -#: stock/models.py:761 +#: stock/models.py:838 msgid "Build reference does not point to the same part object" msgstr "Referenz verweist nicht auf das gleiche Teil" -#: stock/models.py:777 +#: stock/models.py:854 msgid "Parent Stock Item" msgstr "Eltern-Lagerartikel" -#: stock/models.py:789 +#: stock/models.py:866 msgid "Base part" msgstr "Basis-Teil" -#: stock/models.py:799 +#: stock/models.py:876 msgid "Select a matching supplier part for this stock item" msgstr "Passendes Zuliefererteil für diesen Lagerartikel auswählen" -#: stock/models.py:811 +#: stock/models.py:888 msgid "Where is this stock item located?" msgstr "Wo wird dieses Teil normalerweise gelagert?" -#: stock/models.py:819 stock/serializers.py:1580 +#: stock/models.py:896 stock/serializers.py:1611 msgid "Packaging this stock item is stored in" msgstr "Verpackung, in der dieser Lagerartikel gelagert ist" -#: stock/models.py:830 +#: stock/models.py:907 msgid "Is this item installed in another item?" msgstr "Ist dieses Teil in einem anderen verbaut?" -#: stock/models.py:849 +#: stock/models.py:926 msgid "Serial number for this item" msgstr "Seriennummer für dieses Teil" -#: stock/models.py:863 stock/serializers.py:1563 +#: stock/models.py:940 stock/serializers.py:1594 msgid "Batch code for this stock item" msgstr "Losnummer für diesen Lagerartikel" -#: stock/models.py:868 +#: stock/models.py:945 msgid "Stock Quantity" msgstr "Bestand" -#: stock/models.py:878 +#: stock/models.py:955 msgid "Source Build" msgstr "Quellbau" -#: stock/models.py:881 +#: stock/models.py:958 msgid "Build for this stock item" msgstr "Bauauftrag für diesen Lagerartikel" -#: stock/models.py:888 stock/templates/stock/item_base.html:363 +#: stock/models.py:965 stock/templates/stock/item_base.html:360 msgid "Consumed By" msgstr "Verbraucht von" -#: stock/models.py:891 +#: stock/models.py:968 msgid "Build order which consumed this stock item" msgstr "Bauauftrag der diesen Lagerartikel verbrauchte" -#: stock/models.py:900 +#: stock/models.py:977 msgid "Source Purchase Order" msgstr "Quelle Bestellung" -#: stock/models.py:904 +#: stock/models.py:981 msgid "Purchase order for this stock item" msgstr "Bestellung für diesen Lagerartikel" -#: stock/models.py:910 +#: stock/models.py:987 msgid "Destination Sales Order" msgstr "Ziel-Auftrag" -#: stock/models.py:921 +#: stock/models.py:998 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "Ablaufdatum für Lagerartikel. Bestand wird danach als abgelaufen gekennzeichnet" -#: stock/models.py:939 +#: stock/models.py:1016 msgid "Delete on deplete" msgstr "Löschen wenn leer" -#: stock/models.py:940 +#: stock/models.py:1017 msgid "Delete this Stock Item when stock is depleted" msgstr "Diesen Lagerartikel löschen wenn der Bestand aufgebraucht ist" -#: stock/models.py:960 +#: stock/models.py:1037 msgid "Single unit purchase price at time of purchase" msgstr "Preis für eine Einheit bei Einkauf" -#: stock/models.py:991 +#: stock/models.py:1068 msgid "Converted to part" msgstr "In Teil umgewandelt" -#: stock/models.py:1511 +#: stock/models.py:1600 msgid "Part is not set as trackable" msgstr "Teil ist nicht verfolgbar" -#: stock/models.py:1517 +#: stock/models.py:1606 msgid "Quantity must be integer" msgstr "Anzahl muss eine Ganzzahl sein" -#: stock/models.py:1525 +#: stock/models.py:1614 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({self.quantity})" msgstr "Menge darf die verfügbare Lagermenge ({self.quantity}) nicht überschreiten" -#: stock/models.py:1531 -msgid "Serial numbers must be a list of integers" -msgstr "Seriennummern muss eine Liste von Ganzzahlen sein" +#: stock/models.py:1620 +msgid "Serial numbers must be provided as a list" +msgstr "" -#: stock/models.py:1536 +#: stock/models.py:1625 msgid "Quantity does not match serial numbers" msgstr "Anzahl stimmt nicht mit den Seriennummern überein" -#: stock/models.py:1544 stock/serializers.py:726 -msgid "Serial numbers already exist" -msgstr "Seriennummern existieren bereits" - -#: stock/models.py:1641 +#: stock/models.py:1747 stock/models.py:2563 msgid "Test template does not exist" msgstr "Testvorlage existiert nicht" -#: stock/models.py:1659 +#: stock/models.py:1765 msgid "Stock item has been assigned to a sales order" msgstr "Artikel wurde einem Kundenauftrag zugewiesen" -#: stock/models.py:1663 +#: stock/models.py:1769 msgid "Stock item is installed in another item" msgstr "Lagerartikel ist in anderem Element verbaut" -#: stock/models.py:1666 +#: stock/models.py:1772 msgid "Stock item contains other items" msgstr "Lagerartikel enthält andere Artikel" -#: stock/models.py:1669 +#: stock/models.py:1775 msgid "Stock item has been assigned to a customer" msgstr "Artikel wurde einem Kunden zugewiesen" -#: stock/models.py:1672 +#: stock/models.py:1778 msgid "Stock item is currently in production" msgstr "Lagerartikel wird aktuell produziert" -#: stock/models.py:1675 +#: stock/models.py:1781 msgid "Serialized stock cannot be merged" msgstr "Nachverfolgbare Lagerartikel können nicht zusammengeführt werden" -#: stock/models.py:1682 stock/serializers.py:1469 +#: stock/models.py:1788 stock/serializers.py:1500 msgid "Duplicate stock items" msgstr "Artikel duplizeren" -#: stock/models.py:1686 +#: stock/models.py:1792 msgid "Stock items must refer to the same part" msgstr "Lagerartikel müssen auf dasselbe Teil verweisen" -#: stock/models.py:1694 +#: stock/models.py:1800 msgid "Stock items must refer to the same supplier part" msgstr "Lagerartikel müssen auf dasselbe Lieferantenteil verweisen" -#: stock/models.py:1699 +#: stock/models.py:1805 msgid "Stock status codes must match" msgstr "Status-Codes müssen zusammenpassen" -#: stock/models.py:1960 +#: stock/models.py:2066 msgid "StockItem cannot be moved as it is not in stock" msgstr "Lagerartikel kann nicht bewegt werden, da kein Bestand vorhanden ist" -#: stock/models.py:2343 +#: stock/models.py:2462 msgid "Stock Item Tracking" msgstr "" -#: stock/models.py:2376 +#: stock/models.py:2495 msgid "Entry notes" msgstr "Eintrags-Notizen" -#: stock/models.py:2416 +#: stock/models.py:2535 msgid "Stock Item Test Result" msgstr "" -#: stock/models.py:2449 +#: stock/models.py:2566 msgid "Value must be provided for this test" msgstr "Wert muss für diesen Test angegeben werden" -#: stock/models.py:2454 +#: stock/models.py:2570 msgid "Attachment must be uploaded for this test" msgstr "Anhang muss für diesen Test hochgeladen werden" -#: stock/models.py:2459 +#: stock/models.py:2575 msgid "Invalid value for this test" msgstr "" -#: stock/models.py:2544 +#: stock/models.py:2660 msgid "Test result" msgstr "Testergebnis" -#: stock/models.py:2551 +#: stock/models.py:2667 msgid "Test output value" msgstr "Test Ausgabe Wert" -#: stock/models.py:2559 +#: stock/models.py:2675 stock/serializers.py:245 msgid "Test result attachment" msgstr "Test Ergebnis Anhang" -#: stock/models.py:2563 +#: stock/models.py:2679 msgid "Test notes" msgstr "Test Notizen" -#: stock/models.py:2571 templates/js/translated/stock.js:1633 +#: stock/models.py:2687 templates/js/translated/stock.js:1633 msgid "Test station" msgstr "Teststation" -#: stock/models.py:2572 +#: stock/models.py:2688 msgid "The identifier of the test station where the test was performed" msgstr "Der Bezeichner der Teststation, in der der Test durchgeführt wurde" -#: stock/models.py:2578 +#: stock/models.py:2694 msgid "Started" msgstr "Gestartet" -#: stock/models.py:2579 +#: stock/models.py:2695 msgid "The timestamp of the test start" msgstr "Der Zeitstempel des Teststarts" -#: stock/models.py:2585 +#: stock/models.py:2701 msgid "Finished" msgstr "Fertiggestellt" -#: stock/models.py:2586 +#: stock/models.py:2702 msgid "The timestamp of the test finish" msgstr "Der Zeitstempel der Test-Beendigung" -#: stock/serializers.py:76 +#: stock/serializers.py:77 msgid "Generated batch code" msgstr "" -#: stock/serializers.py:85 +#: stock/serializers.py:86 msgid "Select build order" msgstr "" -#: stock/serializers.py:94 +#: stock/serializers.py:95 msgid "Select stock item to generate batch code for" msgstr "" -#: stock/serializers.py:103 +#: stock/serializers.py:104 msgid "Select location to generate batch code for" msgstr "" -#: stock/serializers.py:112 +#: stock/serializers.py:113 msgid "Select part to generate batch code for" msgstr "" -#: stock/serializers.py:121 +#: stock/serializers.py:122 msgid "Select purchase order" msgstr "" -#: stock/serializers.py:128 +#: stock/serializers.py:129 msgid "Enter quantity for batch code" msgstr "" -#: stock/serializers.py:151 +#: stock/serializers.py:152 msgid "Generated serial number" msgstr "" -#: stock/serializers.py:160 +#: stock/serializers.py:161 msgid "Select part to generate serial number for" msgstr "" -#: stock/serializers.py:168 +#: stock/serializers.py:169 msgid "Quantity of serial numbers to generate" msgstr "" -#: stock/serializers.py:233 +#: stock/serializers.py:234 msgid "Test template for this result" msgstr "Testvorlage für dieses Ergebnis" -#: stock/serializers.py:254 +#: stock/serializers.py:258 msgid "Template ID or test name must be provided" msgstr "Vorlagen-ID oder Testname muss angegeben werden" -#: stock/serializers.py:286 +#: stock/serializers.py:290 msgid "The test finished time cannot be earlier than the test started time" msgstr "Die Test-Endzeit kann nicht früher als die Startzeit des Tests sein" -#: stock/serializers.py:323 +#: stock/serializers.py:327 msgid "Serial number is too large" msgstr "Seriennummer ist zu lang" -#: stock/serializers.py:452 stock/templates/stock/item_base.html:193 +#: stock/serializers.py:462 stock/templates/stock/item_base.html:190 msgid "Parent Item" msgstr "Elternposition" -#: stock/serializers.py:453 +#: stock/serializers.py:463 msgid "Parent stock item" msgstr "" -#: stock/serializers.py:472 +#: stock/serializers.py:484 msgid "Use pack size when adding: the quantity defined is the number of packs" msgstr "Packungsgröße beim Hinzufügen verwenden: Die definierte Menge ist die Anzahl der Pakete" -#: stock/serializers.py:596 stock/templates/stock/item_base.html:437 +#: stock/serializers.py:623 stock/templates/stock/item_base.html:434 #: templates/js/translated/table_filters.js:442 users/models.py:174 msgid "Expired" msgstr "abgelaufen" -#: stock/serializers.py:602 stock/templates/stock/stock_sidebar.html:20 +#: stock/serializers.py:629 stock/templates/stock/stock_sidebar.html:20 msgid "Child Items" msgstr "Untergeordnete Objekte" -#: stock/serializers.py:606 +#: stock/serializers.py:633 msgid "Tracking Items" msgstr "" -#: stock/serializers.py:612 +#: stock/serializers.py:639 msgid "Purchase price of this stock item, per unit or pack" msgstr "Einkaufspreis dieses Lagerartikels, pro Einheit oder Verpackungseinheit" -#: stock/serializers.py:631 +#: stock/serializers.py:658 msgid "Minimum Pricing" msgstr "" -#: stock/serializers.py:637 +#: stock/serializers.py:664 msgid "Maximum Pricing" msgstr "" -#: stock/serializers.py:661 +#: stock/serializers.py:688 msgid "Enter number of stock items to serialize" msgstr "Anzahl der zu serialisierenden Lagerartikel eingeben" -#: stock/serializers.py:674 +#: stock/serializers.py:701 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({q})" msgstr "Anzahl darf nicht die verfügbare Menge überschreiten ({q})" -#: stock/serializers.py:681 +#: stock/serializers.py:708 msgid "Enter serial numbers for new items" msgstr "Seriennummern für neue Teile eingeben" -#: stock/serializers.py:692 stock/serializers.py:1426 stock/serializers.py:1682 +#: stock/serializers.py:719 stock/serializers.py:1457 stock/serializers.py:1713 msgid "Destination stock location" msgstr "Ziel-Bestand" -#: stock/serializers.py:699 +#: stock/serializers.py:726 msgid "Optional note field" msgstr "Optionales Notizfeld" -#: stock/serializers.py:709 +#: stock/serializers.py:736 msgid "Serial numbers cannot be assigned to this part" msgstr "Seriennummern können diesem Teil nicht zugewiesen werden" -#: stock/serializers.py:764 +#: stock/serializers.py:756 +msgid "Serial numbers already exist" +msgstr "Seriennummern existieren bereits" + +#: stock/serializers.py:795 msgid "Select stock item to install" msgstr "Lagerartikel für Installation auswählen" -#: stock/serializers.py:771 +#: stock/serializers.py:802 msgid "Quantity to Install" msgstr "Zu installierende Menge" -#: stock/serializers.py:772 +#: stock/serializers.py:803 msgid "Enter the quantity of items to install" msgstr "Anzahl der zu verwendenden Artikel eingeben" -#: stock/serializers.py:777 stock/serializers.py:857 stock/serializers.py:983 -#: stock/serializers.py:1033 +#: stock/serializers.py:808 stock/serializers.py:888 stock/serializers.py:1014 +#: stock/serializers.py:1064 msgid "Add transaction note (optional)" msgstr " Transaktionsnotizen hinzufügen (optional)" -#: stock/serializers.py:785 +#: stock/serializers.py:816 msgid "Quantity to install must be at least 1" msgstr "Die zu verwendende Menge muss mindestens 1 sein" -#: stock/serializers.py:793 +#: stock/serializers.py:824 msgid "Stock item is unavailable" msgstr "Lagerartikel ist nicht verfügbar" -#: stock/serializers.py:804 +#: stock/serializers.py:835 msgid "Selected part is not in the Bill of Materials" msgstr "Ausgewähltes Teil ist nicht in der Stückliste" -#: stock/serializers.py:817 +#: stock/serializers.py:848 msgid "Quantity to install must not exceed available quantity" msgstr "Die zu verwendende Menge darf die verfügbare Menge nicht überschreiten" -#: stock/serializers.py:852 +#: stock/serializers.py:883 msgid "Destination location for uninstalled item" msgstr "Ziel Lagerort für unverbautes Objekt" -#: stock/serializers.py:903 +#: stock/serializers.py:934 msgid "Unsupported statistic type: " msgstr "" -#: stock/serializers.py:917 +#: stock/serializers.py:948 msgid "Select part to convert stock item into" msgstr "Wählen Sie einen Teil aus, zu dem dieser Lagerartikel geändert werden soll" -#: stock/serializers.py:930 +#: stock/serializers.py:961 msgid "Selected part is not a valid option for conversion" msgstr "Das ausgewählte Teil ist keine gültige Option für die Umwandlung" -#: stock/serializers.py:947 +#: stock/serializers.py:978 msgid "Cannot convert stock item with assigned SupplierPart" msgstr "Lagerartikel konnte nicht mit Zulieferteil zugewiesen werden" -#: stock/serializers.py:978 +#: stock/serializers.py:1009 msgid "Destination location for returned item" msgstr "Ziel Lagerort für zurückgegebene Artikel" -#: stock/serializers.py:1015 +#: stock/serializers.py:1046 msgid "Select stock items to change status" msgstr "Lagerartikel auswählen, um den Status zu ändern" -#: stock/serializers.py:1021 +#: stock/serializers.py:1052 msgid "No stock items selected" msgstr "Keine Lagerartikel ausgewählt" -#: stock/serializers.py:1117 stock/serializers.py:1194 -#: stock/templates/stock/location.html:162 -#: stock/templates/stock/location.html:219 +#: stock/serializers.py:1148 stock/serializers.py:1225 +#: stock/templates/stock/location.html:163 +#: stock/templates/stock/location.html:220 #: stock/templates/stock/location_sidebar.html:5 msgid "Sublocations" msgstr "Unter-Lagerorte" -#: stock/serializers.py:1187 templates/js/translated/stock.js:160 +#: stock/serializers.py:1218 templates/js/translated/stock.js:160 msgid "Parent stock location" msgstr "Übergeordneter Lagerort" -#: stock/serializers.py:1298 +#: stock/serializers.py:1329 msgid "Part must be salable" msgstr "Teil muss verkaufbar sein" -#: stock/serializers.py:1302 +#: stock/serializers.py:1333 msgid "Item is allocated to a sales order" msgstr "Artikel ist einem Kundenauftrag zugeordnet" -#: stock/serializers.py:1306 +#: stock/serializers.py:1337 msgid "Item is allocated to a build order" msgstr "Artikel ist einem Fertigungsauftrag zugeordnet" -#: stock/serializers.py:1330 +#: stock/serializers.py:1361 msgid "Customer to assign stock items" msgstr "Kunde zum Zuweisen von Lagerartikel" -#: stock/serializers.py:1336 +#: stock/serializers.py:1367 msgid "Selected company is not a customer" msgstr "Ausgewählte Firma ist kein Kunde" -#: stock/serializers.py:1344 +#: stock/serializers.py:1375 msgid "Stock assignment notes" msgstr "Notizen zur Lagerzuordnung" -#: stock/serializers.py:1354 stock/serializers.py:1608 +#: stock/serializers.py:1385 stock/serializers.py:1639 msgid "A list of stock items must be provided" msgstr "Eine Liste der Lagerbestände muss angegeben werden" -#: stock/serializers.py:1433 +#: stock/serializers.py:1464 msgid "Stock merging notes" msgstr "Notizen zur Lagerartikelzusammenführung" -#: stock/serializers.py:1438 +#: stock/serializers.py:1469 msgid "Allow mismatched suppliers" msgstr "Unterschiedliche Lieferanten erlauben" -#: stock/serializers.py:1439 +#: stock/serializers.py:1470 msgid "Allow stock items with different supplier parts to be merged" msgstr "Zusammenführen von Lagerartikeln mit unterschiedlichen Lieferanten erlauben" -#: stock/serializers.py:1444 +#: stock/serializers.py:1475 msgid "Allow mismatched status" msgstr "Unterschiedliche Status erlauben" -#: stock/serializers.py:1445 +#: stock/serializers.py:1476 msgid "Allow stock items with different status codes to be merged" msgstr "Zusammenführen von Lagerartikeln mit unterschiedlichen Status-Codes erlauben" -#: stock/serializers.py:1455 +#: stock/serializers.py:1486 msgid "At least two stock items must be provided" msgstr "Mindestens zwei Lagerartikel müssen angegeben werden" -#: stock/serializers.py:1522 +#: stock/serializers.py:1553 msgid "No Change" msgstr "Keine Änderung" -#: stock/serializers.py:1551 +#: stock/serializers.py:1582 msgid "StockItem primary key value" msgstr "Primärschlüssel Lagerelement" -#: stock/serializers.py:1570 +#: stock/serializers.py:1601 msgid "Stock item status code" msgstr "Lagerartikel Status-Code" -#: stock/serializers.py:1598 +#: stock/serializers.py:1629 msgid "Stock transaction notes" msgstr "Bestandsbewegungsnotizen" @@ -10175,107 +10539,107 @@ msgstr "Zurückgewiesen" msgid "Quarantined" msgstr "In Quarantäne" -#: stock/status_codes.py:40 +#: stock/status_codes.py:44 msgid "Legacy stock tracking entry" msgstr "Alter Bestand-Verfolgungs-Eintrag" -#: stock/status_codes.py:42 templates/js/translated/stock.js:550 +#: stock/status_codes.py:46 templates/js/translated/stock.js:550 msgid "Stock item created" msgstr "Lagerartikel erstellt" -#: stock/status_codes.py:45 +#: stock/status_codes.py:49 msgid "Edited stock item" msgstr "Lagerartikel bearbeitet" -#: stock/status_codes.py:46 +#: stock/status_codes.py:50 msgid "Assigned serial number" msgstr "Seriennummer hinzugefügt" -#: stock/status_codes.py:49 +#: stock/status_codes.py:53 msgid "Stock counted" msgstr "Bestand gezählt" -#: stock/status_codes.py:50 +#: stock/status_codes.py:54 msgid "Stock manually added" msgstr "Bestand manuell hinzugefügt" -#: stock/status_codes.py:51 +#: stock/status_codes.py:55 msgid "Stock manually removed" msgstr "Bestand manuell entfernt" -#: stock/status_codes.py:54 +#: stock/status_codes.py:58 msgid "Location changed" msgstr "Standort geändert" -#: stock/status_codes.py:55 +#: stock/status_codes.py:59 msgid "Stock updated" msgstr "Lagerbestand aktualisiert" -#: stock/status_codes.py:58 +#: stock/status_codes.py:62 msgid "Installed into assembly" msgstr "In Baugruppe installiert" -#: stock/status_codes.py:59 +#: stock/status_codes.py:63 msgid "Removed from assembly" msgstr "Aus Baugruppe entfernt" -#: stock/status_codes.py:61 +#: stock/status_codes.py:65 msgid "Installed component item" msgstr "Komponente installiert" -#: stock/status_codes.py:62 +#: stock/status_codes.py:66 msgid "Removed component item" msgstr "Komponente entfernt" -#: stock/status_codes.py:65 +#: stock/status_codes.py:69 msgid "Split from parent item" msgstr "Vom übergeordneten Element geteilt" -#: stock/status_codes.py:66 +#: stock/status_codes.py:70 msgid "Split child item" msgstr "Unterobjekt geteilt" -#: stock/status_codes.py:69 templates/js/translated/stock.js:1943 +#: stock/status_codes.py:73 templates/js/translated/stock.js:1944 msgid "Merged stock items" msgstr "Lagerartikel zusammengeführt" -#: stock/status_codes.py:72 +#: stock/status_codes.py:76 msgid "Converted to variant" msgstr "In Variante umgewandelt" -#: stock/status_codes.py:75 +#: stock/status_codes.py:79 msgid "Build order output created" msgstr "Endprodukt erstellt" -#: stock/status_codes.py:76 +#: stock/status_codes.py:80 msgid "Build order output completed" msgstr "Endprodukt fertiggestellt" -#: stock/status_codes.py:77 +#: stock/status_codes.py:81 msgid "Build order output rejected" msgstr "Endprodukt abgelehnt" -#: stock/status_codes.py:78 templates/js/translated/stock.js:1849 +#: stock/status_codes.py:82 templates/js/translated/stock.js:1849 msgid "Consumed by build order" msgstr "Durch Bauauftrag verbraucht" -#: stock/status_codes.py:81 +#: stock/status_codes.py:85 msgid "Shipped against Sales Order" msgstr "Versandt gegen Verkaufsauftrag" -#: stock/status_codes.py:84 +#: stock/status_codes.py:88 msgid "Received against Purchase Order" msgstr "Gegen Bestellung empfangen" -#: stock/status_codes.py:87 +#: stock/status_codes.py:91 msgid "Returned against Return Order" msgstr "Zurückgeschickt gegen Rücksendeauftrag" -#: stock/status_codes.py:90 templates/js/translated/table_filters.js:382 +#: stock/status_codes.py:94 templates/js/translated/table_filters.js:382 msgid "Sent to customer" msgstr "Zum Kunden geschickt" -#: stock/status_codes.py:91 +#: stock/status_codes.py:95 msgid "Returned from customer" msgstr "Rücksendung vom Kunden" @@ -10296,7 +10660,7 @@ msgstr "Dieser Lagerartikel hat keine Kinder" msgid "Test Data" msgstr "Testdaten" -#: stock/templates/stock/item.html:85 stock/templates/stock/item_base.html:65 +#: stock/templates/stock/item.html:85 msgid "Test Report" msgstr "Test-Bericht" @@ -10316,7 +10680,7 @@ msgstr "Lagerartikel-Notizen" msgid "Installed Stock Items" msgstr "Installierte Lagerartikel" -#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3354 +#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3355 msgid "Install Stock Item" msgstr "Lagerartikel installieren" @@ -10328,208 +10692,212 @@ msgstr "Alle Testergebnisse für diesen Lagerartikel löschen" msgid "Add Test Result" msgstr "Testergebnis hinzufügen" -#: stock/templates/stock/item_base.html:33 +#: stock/templates/stock/item_base.html:34 msgid "Locate stock item" msgstr "Lagerbestand lokalisieren" -#: stock/templates/stock/item_base.html:51 +#: stock/templates/stock/item_base.html:52 msgid "Scan to Location" msgstr "zu Lagerort einscannen" #: stock/templates/stock/item_base.html:59 -#: stock/templates/stock/location.html:67 +#: stock/templates/stock/location.html:68 #: templates/js/translated/filters.js:434 msgid "Printing actions" msgstr "Druck Aktionen" -#: stock/templates/stock/item_base.html:75 +#: stock/templates/stock/item_base.html:64 templates/js/translated/report.js:49 +msgid "Print Report" +msgstr "" + +#: stock/templates/stock/item_base.html:72 msgid "Stock adjustment actions" msgstr "Bestands-Anpassungs Aktionen" -#: stock/templates/stock/item_base.html:79 -#: stock/templates/stock/location.html:87 templates/js/translated/stock.js:1909 +#: stock/templates/stock/item_base.html:76 +#: stock/templates/stock/location.html:88 templates/js/translated/stock.js:1909 msgid "Count stock" msgstr "Bestand zählen" -#: stock/templates/stock/item_base.html:81 +#: stock/templates/stock/item_base.html:78 #: templates/js/translated/stock.js:1891 msgid "Add stock" msgstr "Bestand hinzufügen" -#: stock/templates/stock/item_base.html:82 +#: stock/templates/stock/item_base.html:79 #: templates/js/translated/stock.js:1900 msgid "Remove stock" msgstr "Bestand entfernen" -#: stock/templates/stock/item_base.html:85 +#: stock/templates/stock/item_base.html:82 msgid "Serialize stock" msgstr "Bestand serialisieren" -#: stock/templates/stock/item_base.html:88 -#: stock/templates/stock/location.html:93 templates/js/translated/stock.js:1918 +#: stock/templates/stock/item_base.html:85 +#: stock/templates/stock/location.html:94 templates/js/translated/stock.js:1918 msgid "Transfer stock" msgstr "Bestand verschieben" -#: stock/templates/stock/item_base.html:91 -#: templates/js/translated/stock.js:1972 +#: stock/templates/stock/item_base.html:88 +#: templates/js/translated/stock.js:1973 msgid "Assign to customer" msgstr "Kunden zuweisen" -#: stock/templates/stock/item_base.html:94 +#: stock/templates/stock/item_base.html:91 msgid "Return to stock" msgstr "zu Bestand zurückgeben" -#: stock/templates/stock/item_base.html:97 +#: stock/templates/stock/item_base.html:94 msgid "Uninstall stock item" msgstr "Lagerartikel deinstallieren" -#: stock/templates/stock/item_base.html:97 +#: stock/templates/stock/item_base.html:94 msgid "Uninstall" msgstr "Deinstallieren" -#: stock/templates/stock/item_base.html:101 +#: stock/templates/stock/item_base.html:98 msgid "Install stock item" msgstr "Lagerartikel installieren" -#: stock/templates/stock/item_base.html:101 +#: stock/templates/stock/item_base.html:98 msgid "Install" msgstr "Installieren" -#: stock/templates/stock/item_base.html:115 +#: stock/templates/stock/item_base.html:112 msgid "Convert to variant" msgstr "in Variante ändern" -#: stock/templates/stock/item_base.html:118 +#: stock/templates/stock/item_base.html:115 msgid "Duplicate stock item" msgstr "Lagerartikel duplizieren" -#: stock/templates/stock/item_base.html:120 +#: stock/templates/stock/item_base.html:117 msgid "Edit stock item" msgstr "Lagerartikel bearbeiten" -#: stock/templates/stock/item_base.html:123 +#: stock/templates/stock/item_base.html:120 msgid "Delete stock item" msgstr "Lagerartikel löschen" -#: stock/templates/stock/item_base.html:169 templates/InvenTree/search.html:139 -#: templates/js/translated/build.js:2295 templates/navbar.html:38 +#: stock/templates/stock/item_base.html:166 templates/InvenTree/search.html:139 +#: templates/js/translated/build.js:2298 templates/navbar.html:38 msgid "Build" msgstr "Bauauftrag" -#: stock/templates/stock/item_base.html:211 +#: stock/templates/stock/item_base.html:208 msgid "No manufacturer set" msgstr "Kein Hersteller ausgewählt" -#: stock/templates/stock/item_base.html:251 +#: stock/templates/stock/item_base.html:248 msgid "You are not in the list of owners of this item. This stock item cannot be edited." msgstr "Sie gehören nicht zu den Eigentümern dieses Objekts und können es nicht ändern." -#: stock/templates/stock/item_base.html:252 -#: stock/templates/stock/location.html:146 +#: stock/templates/stock/item_base.html:249 +#: stock/templates/stock/location.html:147 msgid "Read only" msgstr "Nur Leserechte" -#: stock/templates/stock/item_base.html:265 +#: stock/templates/stock/item_base.html:262 msgid "This stock item is unavailable" msgstr "Dieser Lagerartikel ist nicht verfügbar" -#: stock/templates/stock/item_base.html:271 +#: stock/templates/stock/item_base.html:268 msgid "This stock item is in production and cannot be edited." msgstr "Dieser Lagerartikel wird gerade hergestellt und kann nicht geändert werden." -#: stock/templates/stock/item_base.html:272 +#: stock/templates/stock/item_base.html:269 msgid "Edit the stock item from the build view." msgstr "Ändern des Lagerartikel in der Bauauftrag-Ansicht." -#: stock/templates/stock/item_base.html:287 +#: stock/templates/stock/item_base.html:284 msgid "This stock item is allocated to Sales Order" msgstr "Dieser Lagerartikel ist einem Auftrag zugewiesen" -#: stock/templates/stock/item_base.html:295 +#: stock/templates/stock/item_base.html:292 msgid "This stock item is allocated to Build Order" msgstr "Dieser Lagerartikel ist einem Bauauftrag zugewiesen" -#: stock/templates/stock/item_base.html:311 +#: stock/templates/stock/item_base.html:308 msgid "This stock item is serialized. It has a unique serial number and the quantity cannot be adjusted" msgstr "Dieser Lagerartikel hat eine eindeutige Seriennummer, der Bestand kann nicht geändert werden" -#: stock/templates/stock/item_base.html:317 +#: stock/templates/stock/item_base.html:314 msgid "previous page" msgstr "vorherige Seite" -#: stock/templates/stock/item_base.html:317 +#: stock/templates/stock/item_base.html:314 msgid "Navigate to previous serial number" msgstr "Zur vorherigen Seriennummer wechseln" -#: stock/templates/stock/item_base.html:326 +#: stock/templates/stock/item_base.html:323 msgid "next page" msgstr "nächste Seite" -#: stock/templates/stock/item_base.html:326 +#: stock/templates/stock/item_base.html:323 msgid "Navigate to next serial number" msgstr "Zur nächsten Seriennummer wechseln" -#: stock/templates/stock/item_base.html:398 -#: templates/js/translated/build.js:2552 +#: stock/templates/stock/item_base.html:395 +#: templates/js/translated/build.js:2559 msgid "No location set" msgstr "Kein Lagerort gesetzt" -#: stock/templates/stock/item_base.html:413 +#: stock/templates/stock/item_base.html:410 msgid "Tests" msgstr "Tests" -#: stock/templates/stock/item_base.html:419 +#: stock/templates/stock/item_base.html:416 msgid "This stock item has not passed all required tests" msgstr "Dieser Lagerartikel hat nicht alle Tests bestanden" -#: stock/templates/stock/item_base.html:437 +#: stock/templates/stock/item_base.html:434 #, python-format msgid "This StockItem expired on %(item.expiry_date)s" msgstr "Dieser Lagerartikel lief am %(item.expiry_date)s ab" -#: stock/templates/stock/item_base.html:439 +#: stock/templates/stock/item_base.html:436 #, python-format msgid "This StockItem expires on %(item.expiry_date)s" msgstr "Dieser Lagerartikel läuft am %(item.expiry_date)s ab" -#: stock/templates/stock/item_base.html:455 +#: stock/templates/stock/item_base.html:452 msgid "No stocktake performed" msgstr "Keine Inventur ausgeführt" -#: stock/templates/stock/item_base.html:504 -#: templates/js/translated/stock.js:2037 +#: stock/templates/stock/item_base.html:501 +#: templates/js/translated/stock.js:2038 msgid "stock item" msgstr "Lagerartikel" -#: stock/templates/stock/item_base.html:527 +#: stock/templates/stock/item_base.html:524 msgid "Edit Stock Status" msgstr "Lagerstatus bearbeiten" -#: stock/templates/stock/item_base.html:536 +#: stock/templates/stock/item_base.html:533 msgid "Stock Item QR Code" msgstr "Lagerartikel QR-Code" -#: stock/templates/stock/item_base.html:547 +#: stock/templates/stock/item_base.html:544 msgid "Link Barcode to Stock Item" msgstr "Barcode mit Lagerartikel verknüpfen" -#: stock/templates/stock/item_base.html:611 +#: stock/templates/stock/item_base.html:608 msgid "Select one of the part variants listed below." msgstr "Wählen Sie eine der unten aufgeführten Teilvarianten aus." -#: stock/templates/stock/item_base.html:614 +#: stock/templates/stock/item_base.html:611 msgid "Warning" msgstr "Warnung" -#: stock/templates/stock/item_base.html:615 +#: stock/templates/stock/item_base.html:612 msgid "This action cannot be easily undone" msgstr "Diese Aktion kann nicht einfach rückgängig gemacht werden" -#: stock/templates/stock/item_base.html:623 +#: stock/templates/stock/item_base.html:620 msgid "Convert Stock Item" msgstr "Lagerartikel umwandeln" -#: stock/templates/stock/item_base.html:656 +#: stock/templates/stock/item_base.html:653 msgid "Return to Stock" msgstr "Zurück ins Lager" @@ -10541,84 +10909,84 @@ msgstr "Teile mit Seriennummern mit diesem BestandObjekt anlegen." msgid "Select quantity to serialize, and unique serial numbers." msgstr "Zu serialisierende Anzahl und eindeutige Seriennummern angeben." -#: stock/templates/stock/location.html:35 +#: stock/templates/stock/location.html:36 msgid "Perform stocktake for this stock location" msgstr "Inventur für diesen Lagerort durchführen" -#: stock/templates/stock/location.html:42 +#: stock/templates/stock/location.html:43 msgid "Locate stock location" msgstr "Lagerort lokalisieren" -#: stock/templates/stock/location.html:60 +#: stock/templates/stock/location.html:61 msgid "Scan stock items into this location" msgstr "Lagerartikel per Barcode-Scan zu diesem Lagerort hinzufügen" -#: stock/templates/stock/location.html:60 +#: stock/templates/stock/location.html:61 msgid "Scan In Stock Items" msgstr "Lagerartikel einscannen" -#: stock/templates/stock/location.html:61 +#: stock/templates/stock/location.html:62 msgid "Scan stock container into this location" msgstr "Lagerort hierher einscannen" -#: stock/templates/stock/location.html:61 +#: stock/templates/stock/location.html:62 msgid "Scan In Container" msgstr "Lagerort scannen" -#: stock/templates/stock/location.html:72 +#: stock/templates/stock/location.html:73 msgid "Print Location Report" msgstr "Standortbericht drucken" -#: stock/templates/stock/location.html:101 +#: stock/templates/stock/location.html:102 msgid "Location actions" msgstr "Lagerort-Aktionen" -#: stock/templates/stock/location.html:103 +#: stock/templates/stock/location.html:104 msgid "Edit location" msgstr "Lagerort bearbeiten" -#: stock/templates/stock/location.html:105 +#: stock/templates/stock/location.html:106 msgid "Delete location" msgstr "Lagerort löschen" -#: stock/templates/stock/location.html:135 +#: stock/templates/stock/location.html:136 msgid "Top level stock location" msgstr "Oberster Lagerstandort" -#: stock/templates/stock/location.html:141 +#: stock/templates/stock/location.html:142 msgid "Location Owner" msgstr "Standortbesitzer" -#: stock/templates/stock/location.html:145 +#: stock/templates/stock/location.html:146 msgid "You are not in the list of owners of this location. This stock location cannot be edited." msgstr "Sie sind nicht auf der Liste der Besitzer dieses Lagerorts. Der Bestands-Lagerort kann nicht verändert werden." -#: stock/templates/stock/location.html:173 +#: stock/templates/stock/location.html:174 msgid "Location Type" msgstr "Lagerort Typ" -#: stock/templates/stock/location.html:223 +#: stock/templates/stock/location.html:224 msgid "Create new stock location" msgstr "Neuen Lagerort anlegen" -#: stock/templates/stock/location.html:224 +#: stock/templates/stock/location.html:225 msgid "New Location" msgstr "Neuer Lagerort" -#: stock/templates/stock/location.html:298 -#: templates/js/translated/stock.js:2657 +#: stock/templates/stock/location.html:299 +#: templates/js/translated/stock.js:2658 msgid "stock location" msgstr "Lagerort" -#: stock/templates/stock/location.html:320 +#: stock/templates/stock/location.html:321 msgid "Scanned stock container into this location" msgstr "Lagerbehälter an diesen Ort eingescannt" -#: stock/templates/stock/location.html:393 +#: stock/templates/stock/location.html:394 msgid "Stock Location QR Code" msgstr "Lagerort QR-Code" -#: stock/templates/stock/location.html:404 +#: stock/templates/stock/location.html:405 msgid "Link Barcode to Stock Location" msgstr "Barcode mit Lagerort verknüpfen" @@ -10630,10 +10998,6 @@ msgstr "Lade..." msgid "Stock Tracking" msgstr "Lagerartikel-Verfolgung" -#: stock/templates/stock/stock_sidebar.html:8 -msgid "Allocations" -msgstr "Zuweisungen" - #: templates/403.html:6 templates/403.html:12 templates/403_csrf.html:7 msgid "Permission Denied" msgstr "Zugriff verweigert" @@ -11107,9 +11471,9 @@ msgid "Rate" msgstr "Bewerten" #: templates/InvenTree/settings/settings_staff_js.html:81 -#: templates/js/translated/forms.js:548 templates/js/translated/helpers.js:108 +#: templates/js/translated/forms.js:548 templates/js/translated/helpers.js:109 #: templates/js/translated/part.js:395 templates/js/translated/pricing.js:629 -#: templates/js/translated/stock.js:252 users/models.py:406 +#: templates/js/translated/stock.js:252 users/models.py:408 msgid "Delete" msgstr "Löschen" @@ -11130,7 +11494,7 @@ msgid "No project codes found" msgstr "Keine Projektcodes gefunden" #: templates/InvenTree/settings/settings_staff_js.html:158 -#: templates/js/translated/build.js:2400 +#: templates/js/translated/build.js:2403 msgid "group" msgstr "gruppieren" @@ -11196,7 +11560,7 @@ msgid "Delete Location Type" msgstr "Standorttyp löschen" #: templates/InvenTree/settings/settings_staff_js.html:503 -#: templates/InvenTree/settings/stock.html:38 +#: templates/InvenTree/settings/stock.html:39 msgid "New Location Type" msgstr "Neuer Standorttyp" @@ -11253,7 +11617,7 @@ msgstr "Auftrags-Einstellungen" msgid "Stock Settings" msgstr "Bestands-Einstellungen" -#: templates/InvenTree/settings/stock.html:34 +#: templates/InvenTree/settings/stock.html:35 msgid "Stock Location Types" msgstr "Lagerstandort Elemente" @@ -11280,7 +11644,7 @@ msgid "Unverified" msgstr "Nicht verifiziert" #: templates/InvenTree/settings/user.html:80 -#: templates/js/translated/company.js:957 +#: templates/js/translated/company.js:958 msgid "Primary" msgstr "Primär" @@ -11532,7 +11896,7 @@ msgid "Submit Bug Report" msgstr "Fehlerbericht senden" #: templates/about.html:91 templates/clip.html:4 -#: templates/js/translated/helpers.js:592 +#: templates/js/translated/helpers.js:598 msgid "copy to clipboard" msgstr "In die Zwischenablage kopieren" @@ -11738,23 +12102,24 @@ msgstr "Anhang hinzufügen" msgid "Barcode Identifier" msgstr "Barcode-Bezeichner" -#: templates/base.html:103 +#: templates/base.html:102 msgid "Server Restart Required" msgstr "Server-Neustart erforderlich" -#: templates/base.html:106 +#: templates/base.html:105 msgid "A configuration option has been changed which requires a server restart" msgstr "Eine Konfigurationsoption wurde geändert, die einen Neustart des Servers erfordert" -#: templates/base.html:106 templates/base.html:116 +#: templates/base.html:105 templates/base.html:115 +#: templates/socialaccount/authentication_error.html:13 msgid "Contact your system administrator for further information" msgstr "Bitte kontaktieren Sie Ihren Administrator für mehr Informationen" -#: templates/base.html:113 +#: templates/base.html:112 msgid "Pending Database Migrations" msgstr "Ausstehende Datenbankmigrationen" -#: templates/base.html:116 +#: templates/base.html:115 msgid "There are pending database migrations which require attention" msgstr "Es gibt ausstehende Datenbankmigrationen, die Ihre Aufmerksamkeit erfordern" @@ -11787,7 +12152,7 @@ msgid "The following parts are low on required stock" msgstr "Bei den folgenden Teilen gibt es wenige Lagerartikel" #: templates/email/build_order_required_stock.html:18 -#: templates/js/translated/bom.js:1674 templates/js/translated/build.js:2747 +#: templates/js/translated/bom.js:1674 templates/js/translated/build.js:2765 msgid "Required Quantity" msgstr "Benötigte Menge" @@ -11801,7 +12166,7 @@ msgid "Click on the following link to view this part" msgstr "Klicken Sie auf den folgenden Link, um diesen Teil anzuzeigen" #: templates/email/low_stock_notification.html:18 -#: templates/js/translated/part.js:3237 +#: templates/js/translated/part.js:3253 msgid "Minimum Quantity" msgstr "Mindestmenge" @@ -12039,7 +12404,7 @@ msgstr "Zeilendaten" #: templates/js/translated/bom.js:189 templates/js/translated/bom.js:700 #: templates/js/translated/modals.js:75 templates/js/translated/modals.js:629 #: templates/js/translated/modals.js:757 templates/js/translated/modals.js:1065 -#: templates/js/translated/purchase_order.js:797 templates/modals.html:15 +#: templates/js/translated/purchase_order.js:780 templates/modals.html:15 #: templates/modals.html:27 templates/modals.html:39 templates/modals.html:50 msgid "Close" msgstr "Schliessen" @@ -12156,7 +12521,7 @@ msgstr "Stückliste für Bauteile laden" msgid "Substitutes Available" msgstr "Ersatzteile verfügbar" -#: templates/js/translated/bom.js:950 templates/js/translated/build.js:2673 +#: templates/js/translated/bom.js:950 templates/js/translated/build.js:2682 msgid "Variant stock allowed" msgstr "Alternatives Lager erlaubt" @@ -12176,30 +12541,30 @@ msgstr "Stücklistenpreise sind vollständig" msgid "No pricing available" msgstr "Keine Preisinformation verfügbar" -#: templates/js/translated/bom.js:1184 templates/js/translated/build.js:2812 +#: templates/js/translated/bom.js:1184 templates/js/translated/build.js:2830 msgid "External stock" msgstr "Externes Lager" -#: templates/js/translated/bom.js:1188 templates/js/translated/build.js:2786 -#: templates/js/translated/sales_order.js:1946 +#: templates/js/translated/bom.js:1188 templates/js/translated/build.js:2804 +#: templates/js/translated/sales_order.js:1927 msgid "No Stock Available" msgstr "Kein Lagerbestand verfügbar" -#: templates/js/translated/bom.js:1193 templates/js/translated/build.js:2790 +#: templates/js/translated/bom.js:1193 templates/js/translated/build.js:2808 msgid "Includes variant and substitute stock" msgstr "Alternatives Lager und Ersatzteillager einschließen" -#: templates/js/translated/bom.js:1195 templates/js/translated/build.js:2792 +#: templates/js/translated/bom.js:1195 templates/js/translated/build.js:2810 #: templates/js/translated/part.js:1263 -#: templates/js/translated/sales_order.js:1943 +#: templates/js/translated/sales_order.js:1924 msgid "Includes variant stock" msgstr "Alternatives Lager einschließen" -#: templates/js/translated/bom.js:1197 templates/js/translated/build.js:2794 +#: templates/js/translated/bom.js:1197 templates/js/translated/build.js:2812 msgid "Includes substitute stock" msgstr "Ersatzteillager einschließen" -#: templates/js/translated/bom.js:1225 templates/js/translated/build.js:2777 +#: templates/js/translated/bom.js:1225 templates/js/translated/build.js:2795 msgid "Consumable item" msgstr "Verbrauchsartikel" @@ -12231,7 +12596,7 @@ msgstr "Stückliste anzeigen" msgid "No BOM items found" msgstr "Keine Stücklisten-Position(en) gefunden" -#: templates/js/translated/bom.js:1657 templates/js/translated/build.js:2658 +#: templates/js/translated/bom.js:1657 templates/js/translated/build.js:2667 msgid "Required Part" msgstr "Benötigtes Teil" @@ -12243,396 +12608,396 @@ msgstr "Von übergeordneter Stückliste geerbt" msgid "Edit Build Order" msgstr "Bauauftrag bearbeiten" -#: templates/js/translated/build.js:191 +#: templates/js/translated/build.js:194 msgid "Create Build Order" msgstr "Bauauftrag erstellen" -#: templates/js/translated/build.js:223 +#: templates/js/translated/build.js:226 msgid "Cancel Build Order" msgstr "Bauauftrag abbrechen" -#: templates/js/translated/build.js:232 +#: templates/js/translated/build.js:235 msgid "Are you sure you wish to cancel this build?" msgstr "Sind Sie sicher, dass sie diesen Bauauftrag abbrechen möchten?" -#: templates/js/translated/build.js:238 +#: templates/js/translated/build.js:241 msgid "Stock items have been allocated to this build order" msgstr "Lagerartikel wurden zu diesem Bauauftrag hinzugefügt" -#: templates/js/translated/build.js:245 +#: templates/js/translated/build.js:248 msgid "There are incomplete outputs remaining for this build order" msgstr "Es sind noch unvollständige Artikel für diesen Bauauftrag vorhanden" -#: templates/js/translated/build.js:297 +#: templates/js/translated/build.js:300 msgid "Build order is ready to be completed" msgstr "Bauauftrag ist bereit abgeschlossen zu werden" -#: templates/js/translated/build.js:305 +#: templates/js/translated/build.js:308 msgid "This build order cannot be completed as there are incomplete outputs" msgstr "Dieser Bauauftrag kann nicht abgeschlossen werden, da es unfertige Endprodukte gibt" -#: templates/js/translated/build.js:310 +#: templates/js/translated/build.js:313 msgid "Build Order is incomplete" msgstr "Bauauftrag ist unvollständig" -#: templates/js/translated/build.js:328 +#: templates/js/translated/build.js:331 msgid "Complete Build Order" msgstr "Bauauftrag fertigstellen" -#: templates/js/translated/build.js:369 templates/js/translated/stock.js:127 +#: templates/js/translated/build.js:372 templates/js/translated/stock.js:127 #: templates/js/translated/stock.js:301 msgid "Next available serial number" msgstr "Nächste verfügbare Seriennummer" -#: templates/js/translated/build.js:371 templates/js/translated/stock.js:129 +#: templates/js/translated/build.js:374 templates/js/translated/stock.js:129 #: templates/js/translated/stock.js:303 msgid "Latest serial number" msgstr "Letzte Seriennummer" -#: templates/js/translated/build.js:380 +#: templates/js/translated/build.js:383 msgid "The Bill of Materials contains trackable parts" msgstr "Die Stückliste enthält verfolgbare Teile" -#: templates/js/translated/build.js:381 +#: templates/js/translated/build.js:384 msgid "Build outputs must be generated individually" msgstr "Endprodukte müssen individuell angelegt werden" -#: templates/js/translated/build.js:389 +#: templates/js/translated/build.js:392 msgid "Trackable parts can have serial numbers specified" msgstr "Nachverfolgbare Teile können Seriennummern haben" -#: templates/js/translated/build.js:390 +#: templates/js/translated/build.js:393 msgid "Enter serial numbers to generate multiple single build outputs" msgstr "Seriennummern für mehrere einzelne Endprodukte angeben" -#: templates/js/translated/build.js:397 +#: templates/js/translated/build.js:400 msgid "Create Build Output" msgstr "Endprodukt anlegen" -#: templates/js/translated/build.js:428 +#: templates/js/translated/build.js:431 msgid "Allocate stock items to this build output" msgstr "Lagerartikel zu diesem Endprodukt zuweisen" -#: templates/js/translated/build.js:436 +#: templates/js/translated/build.js:439 msgid "Deallocate stock from build output" msgstr "Bestand von Endprodukt entfernen" -#: templates/js/translated/build.js:445 +#: templates/js/translated/build.js:448 msgid "Complete build output" msgstr "Endprodukt fertigstellen" -#: templates/js/translated/build.js:453 +#: templates/js/translated/build.js:456 msgid "Scrap build output" msgstr "Ausschuss Endprodukt" -#: templates/js/translated/build.js:460 +#: templates/js/translated/build.js:463 msgid "Delete build output" msgstr "Endprodukt entfernen" -#: templates/js/translated/build.js:480 +#: templates/js/translated/build.js:483 msgid "Are you sure you wish to deallocate the selected stock items from this build?" msgstr "Sind Sie sicher, dass sie alle Lagerartikel von diesem Bauauftrag entfernen möchten?" -#: templates/js/translated/build.js:498 +#: templates/js/translated/build.js:501 msgid "Deallocate Stock Items" msgstr "Lagerartikel entfernen" -#: templates/js/translated/build.js:584 templates/js/translated/build.js:711 -#: templates/js/translated/build.js:836 +#: templates/js/translated/build.js:587 templates/js/translated/build.js:714 +#: templates/js/translated/build.js:839 msgid "Select Build Outputs" msgstr "Endprodukte auswählen" -#: templates/js/translated/build.js:585 templates/js/translated/build.js:712 -#: templates/js/translated/build.js:837 +#: templates/js/translated/build.js:588 templates/js/translated/build.js:715 +#: templates/js/translated/build.js:840 msgid "At least one build output must be selected" msgstr "Mindestens ein Endprodukt muss ausgewählt werden" -#: templates/js/translated/build.js:599 +#: templates/js/translated/build.js:602 msgid "Selected build outputs will be marked as complete" msgstr "Ausgewählte Endprodukte werden als vollständig markiert" -#: templates/js/translated/build.js:603 templates/js/translated/build.js:736 -#: templates/js/translated/build.js:859 +#: templates/js/translated/build.js:606 templates/js/translated/build.js:739 +#: templates/js/translated/build.js:862 msgid "Output" msgstr "Endprodukt" -#: templates/js/translated/build.js:630 +#: templates/js/translated/build.js:633 msgid "Complete Build Outputs" msgstr "Endprodukte fertigstellen" -#: templates/js/translated/build.js:727 +#: templates/js/translated/build.js:730 msgid "Selected build outputs will be marked as scrapped" msgstr "Ausgewählte Endprodukte werden als Ausschuss markiert" -#: templates/js/translated/build.js:729 +#: templates/js/translated/build.js:732 msgid "Scrapped output are marked as rejected" msgstr "Ausschuss wird als verworfen markiert" -#: templates/js/translated/build.js:730 +#: templates/js/translated/build.js:733 msgid "Allocated stock items will no longer be available" msgstr "Zugewiesene Lagerbestände werden nicht mehr verfügbar sein" -#: templates/js/translated/build.js:731 +#: templates/js/translated/build.js:734 msgid "The completion status of the build order will not be adjusted" msgstr "Der Fertigstellungsstatus des Bauauftrags wird nicht angepasst" -#: templates/js/translated/build.js:761 +#: templates/js/translated/build.js:764 msgid "Scrap Build Outputs" msgstr "Ausschuss Endprodukte" -#: templates/js/translated/build.js:851 +#: templates/js/translated/build.js:854 msgid "Selected build outputs will be deleted" msgstr "Ausgewählte Endprodukte werden gelöscht" -#: templates/js/translated/build.js:853 +#: templates/js/translated/build.js:856 msgid "Build output data will be permanently deleted" msgstr "Endprodukte werden dauerhaft gelöscht" -#: templates/js/translated/build.js:854 +#: templates/js/translated/build.js:857 msgid "Allocated stock items will be returned to stock" msgstr "Zugewiesene Lagerartikel werden in den Bestand zurückgeführt" -#: templates/js/translated/build.js:872 +#: templates/js/translated/build.js:875 msgid "Delete Build Outputs" msgstr "Endprodukte entfernen" -#: templates/js/translated/build.js:959 +#: templates/js/translated/build.js:962 msgid "Delete allocations" msgstr "" -#: templates/js/translated/build.js:966 +#: templates/js/translated/build.js:969 msgid "Delete Stock Allocations" msgstr "" -#: templates/js/translated/build.js:989 +#: templates/js/translated/build.js:992 msgid "No allocated stock" msgstr "" -#: templates/js/translated/build.js:1045 +#: templates/js/translated/build.js:1048 msgid "Stock item" msgstr "" -#: templates/js/translated/build.js:1070 +#: templates/js/translated/build.js:1073 msgid "Edit build allocation" msgstr "" -#: templates/js/translated/build.js:1071 +#: templates/js/translated/build.js:1074 msgid "Delete build allocation" msgstr "" -#: templates/js/translated/build.js:1089 +#: templates/js/translated/build.js:1092 msgid "Edit Build Allocation" msgstr "" -#: templates/js/translated/build.js:1102 +#: templates/js/translated/build.js:1105 msgid "Delete Build Allocation" msgstr "" -#: templates/js/translated/build.js:1133 +#: templates/js/translated/build.js:1136 msgid "No build order allocations found" msgstr "Keine Allokationen für Bauauftrag gefunden" -#: templates/js/translated/build.js:1178 +#: templates/js/translated/build.js:1181 msgid "Location not specified" msgstr "Standort nicht angegeben" -#: templates/js/translated/build.js:1200 +#: templates/js/translated/build.js:1203 msgid "Complete outputs" msgstr "Endprodukte fertigstellen" -#: templates/js/translated/build.js:1218 +#: templates/js/translated/build.js:1221 msgid "Scrap outputs" msgstr "Ausschuss" -#: templates/js/translated/build.js:1236 +#: templates/js/translated/build.js:1239 msgid "Delete outputs" msgstr "Endprodukte löschen" -#: templates/js/translated/build.js:1289 +#: templates/js/translated/build.js:1292 msgid "build output" msgstr "Endprodukt" -#: templates/js/translated/build.js:1290 +#: templates/js/translated/build.js:1293 msgid "build outputs" msgstr "Endprodukte" -#: templates/js/translated/build.js:1294 +#: templates/js/translated/build.js:1297 msgid "Build output actions" msgstr "Endprodukt-Aktionen" -#: templates/js/translated/build.js:1470 +#: templates/js/translated/build.js:1473 msgid "No active build outputs found" msgstr "Keine aktiven Endprodukte gefunden" -#: templates/js/translated/build.js:1563 +#: templates/js/translated/build.js:1566 msgid "Allocated Lines" msgstr "Zugewiesene Positionen" -#: templates/js/translated/build.js:1577 +#: templates/js/translated/build.js:1580 msgid "Required Tests" msgstr "Erforderliche Prüfungen" -#: templates/js/translated/build.js:1749 -#: templates/js/translated/purchase_order.js:611 -#: templates/js/translated/sales_order.js:1207 +#: templates/js/translated/build.js:1752 +#: templates/js/translated/purchase_order.js:594 +#: templates/js/translated/sales_order.js:1173 msgid "Select Parts" msgstr "Teile auswählen" -#: templates/js/translated/build.js:1750 -#: templates/js/translated/sales_order.js:1208 +#: templates/js/translated/build.js:1753 +#: templates/js/translated/sales_order.js:1174 msgid "You must select at least one part to allocate" msgstr "Sie müssen mindestens einen Teil für die Zuweisung auswählen" -#: templates/js/translated/build.js:1813 -#: templates/js/translated/sales_order.js:1157 +#: templates/js/translated/build.js:1816 +#: templates/js/translated/sales_order.js:1123 msgid "Specify stock allocation quantity" msgstr "Anzahl für Bestandszuordnung eingeben" -#: templates/js/translated/build.js:1890 +#: templates/js/translated/build.js:1893 msgid "All Parts Allocated" msgstr "Alle Teile zugeordnet" -#: templates/js/translated/build.js:1891 +#: templates/js/translated/build.js:1894 msgid "All selected parts have been fully allocated" msgstr "Alle ausgewählten Teile wurden vollständig zugeordnet" -#: templates/js/translated/build.js:1905 -#: templates/js/translated/sales_order.js:1222 +#: templates/js/translated/build.js:1908 +#: templates/js/translated/sales_order.js:1188 msgid "Select source location (leave blank to take from all locations)" msgstr "Wählen Sie den Quellort aus (leer lassen, um von allen Standorten zu nehmen)" -#: templates/js/translated/build.js:1933 +#: templates/js/translated/build.js:1936 msgid "Allocate Stock Items to Build Order" msgstr "Lagerartikel für Bauauftrag zuweisen" -#: templates/js/translated/build.js:1944 -#: templates/js/translated/sales_order.js:1319 +#: templates/js/translated/build.js:1947 +#: templates/js/translated/sales_order.js:1285 msgid "No matching stock locations" msgstr "Keine passenden Lagerstandorte" -#: templates/js/translated/build.js:2017 -#: templates/js/translated/sales_order.js:1398 +#: templates/js/translated/build.js:2020 +#: templates/js/translated/sales_order.js:1364 msgid "No matching stock items" msgstr "Keine passenden Lagerartikel" -#: templates/js/translated/build.js:2114 +#: templates/js/translated/build.js:2117 msgid "Automatic Stock Allocation" msgstr "Automatische Lagerzuordnung" -#: templates/js/translated/build.js:2115 +#: templates/js/translated/build.js:2118 msgid "Stock items will be automatically allocated to this build order, according to the provided guidelines" msgstr "Lagerartikel werden automatisch diesem Bauauftrag zugewiesen, entsprechend den angegebenen Richtlinien" -#: templates/js/translated/build.js:2117 +#: templates/js/translated/build.js:2120 msgid "If a location is specified, stock will only be allocated from that location" msgstr "Wenn ein Lagerort angegeben ist, wird der Lagerbestand nur von diesem Ort zugewiesen" -#: templates/js/translated/build.js:2118 +#: templates/js/translated/build.js:2121 msgid "If stock is considered interchangeable, it will be allocated from the first location it is found" msgstr "Wenn der Lagerbestand als austauschbar gilt, wird er vom ersten Standort zugewiesen, an dem er gefunden wird" -#: templates/js/translated/build.js:2119 +#: templates/js/translated/build.js:2122 msgid "If substitute stock is allowed, it will be used where stock of the primary part cannot be found" msgstr "Wenn ein Ersatzlager zugelassen ist, wird dieses verwendet, wenn das Primärteil nicht vorrätig ist" -#: templates/js/translated/build.js:2149 +#: templates/js/translated/build.js:2152 msgid "Allocate Stock Items" msgstr "Lagerartikel zuordnen" -#: templates/js/translated/build.js:2254 +#: templates/js/translated/build.js:2257 msgid "No builds matching query" msgstr "Keine Bauaufträge zur Suchanfrage" -#: templates/js/translated/build.js:2289 templates/js/translated/build.js:2652 +#: templates/js/translated/build.js:2292 templates/js/translated/build.js:2661 #: templates/js/translated/forms.js:2196 templates/js/translated/forms.js:2212 #: templates/js/translated/part.js:2322 templates/js/translated/part.js:2761 -#: templates/js/translated/stock.js:2068 templates/js/translated/stock.js:2795 +#: templates/js/translated/stock.js:2069 templates/js/translated/stock.js:2796 msgid "Select" msgstr "Auswählen" -#: templates/js/translated/build.js:2303 +#: templates/js/translated/build.js:2306 msgid "Build order is overdue" msgstr "Bauauftrag ist überfällig" -#: templates/js/translated/build.js:2385 templates/js/translated/stock.js:3126 +#: templates/js/translated/build.js:2388 templates/js/translated/stock.js:3127 msgid "No user information" msgstr "Keine Benutzerinformation" -#: templates/js/translated/build.js:2561 -#: templates/js/translated/sales_order.js:1682 +#: templates/js/translated/build.js:2568 +#: templates/js/translated/sales_order.js:1663 msgid "Edit stock allocation" msgstr "Bestands-Zuordnung bearbeiten" -#: templates/js/translated/build.js:2562 -#: templates/js/translated/sales_order.js:1683 +#: templates/js/translated/build.js:2569 +#: templates/js/translated/sales_order.js:1664 msgid "Delete stock allocation" msgstr "Bestands-Zuordnung löschen" -#: templates/js/translated/build.js:2577 +#: templates/js/translated/build.js:2584 msgid "Edit Allocation" msgstr "Zuordnung bearbeiten" -#: templates/js/translated/build.js:2589 +#: templates/js/translated/build.js:2596 msgid "Remove Allocation" msgstr "Zuordnung entfernen" -#: templates/js/translated/build.js:2628 +#: templates/js/translated/build.js:2636 msgid "build line" msgstr "Bauauftragsposition" -#: templates/js/translated/build.js:2629 +#: templates/js/translated/build.js:2637 msgid "build lines" msgstr "Bauauftragspositionen" -#: templates/js/translated/build.js:2647 +#: templates/js/translated/build.js:2656 msgid "No build lines found" msgstr "Keine Bauauftragspositionen gefunden" -#: templates/js/translated/build.js:2677 templates/js/translated/part.js:793 +#: templates/js/translated/build.js:2686 templates/js/translated/part.js:793 #: templates/js/translated/part.js:1209 msgid "Trackable part" msgstr "Nachverfolgbares Teil" -#: templates/js/translated/build.js:2720 +#: templates/js/translated/build.js:2729 msgid "Gets Inherited" msgstr "" -#: templates/js/translated/build.js:2730 +#: templates/js/translated/build.js:2748 msgid "Unit Quantity" msgstr "Menge" -#: templates/js/translated/build.js:2782 -#: templates/js/translated/sales_order.js:1951 +#: templates/js/translated/build.js:2800 +#: templates/js/translated/sales_order.js:1932 msgid "Sufficient stock available" msgstr "Ausreichender Bestand vorhanden" -#: templates/js/translated/build.js:2837 +#: templates/js/translated/build.js:2855 msgid "Consumable Item" msgstr "Verbrauchsartikel" -#: templates/js/translated/build.js:2844 +#: templates/js/translated/build.js:2862 msgid "Tracked item" msgstr "Verfolgtes Objekt" -#: templates/js/translated/build.js:2845 +#: templates/js/translated/build.js:2863 msgid "Allocate tracked items against individual build outputs" msgstr "Zuweisung von nachverfolgbaren Artikeln zu einzelnen Bauprodukten" -#: templates/js/translated/build.js:2853 -#: templates/js/translated/sales_order.js:2052 +#: templates/js/translated/build.js:2871 +#: templates/js/translated/sales_order.js:2033 msgid "Build stock" msgstr "Bestand bauen" -#: templates/js/translated/build.js:2858 templates/js/translated/stock.js:1953 +#: templates/js/translated/build.js:2876 templates/js/translated/stock.js:1954 msgid "Order stock" msgstr "Bestand bestellen" -#: templates/js/translated/build.js:2862 -#: templates/js/translated/sales_order.js:2046 +#: templates/js/translated/build.js:2880 +#: templates/js/translated/sales_order.js:2027 msgid "Allocate stock" msgstr "Bestand zuweisen" -#: templates/js/translated/build.js:2866 +#: templates/js/translated/build.js:2884 msgid "Remove stock allocation" msgstr "Bestands-Zuordnung löschen" @@ -12641,7 +13006,7 @@ msgid "Add Manufacturer" msgstr "Hersteller hinzufügen" #: templates/js/translated/company.js:111 -#: templates/js/translated/company.js:213 +#: templates/js/translated/company.js:214 msgid "Add Manufacturer Part" msgstr "Herstellerteil hinzufügen" @@ -12649,231 +13014,231 @@ msgstr "Herstellerteil hinzufügen" msgid "Edit Manufacturer Part" msgstr "Herstellerteil ändern" -#: templates/js/translated/company.js:201 +#: templates/js/translated/company.js:202 #: templates/js/translated/purchase_order.js:93 msgid "Add Supplier" msgstr "Zulieferer hinzufügen" -#: templates/js/translated/company.js:243 -#: templates/js/translated/purchase_order.js:318 +#: templates/js/translated/company.js:244 +#: templates/js/translated/purchase_order.js:301 msgid "Add Supplier Part" msgstr "Zuliefererteil hinzufügen" -#: templates/js/translated/company.js:344 +#: templates/js/translated/company.js:345 msgid "All selected supplier parts will be deleted" msgstr "Alle ausgewählten Zulieferteile werden gelöscht" -#: templates/js/translated/company.js:360 +#: templates/js/translated/company.js:361 msgid "Delete Supplier Parts" msgstr "Zuliefererteil entfernen" -#: templates/js/translated/company.js:466 +#: templates/js/translated/company.js:467 msgid "Add new Company" msgstr "Neue Firma hinzufügen" -#: templates/js/translated/company.js:546 +#: templates/js/translated/company.js:547 msgid "Parts Supplied" msgstr "Teile geliefert" -#: templates/js/translated/company.js:555 +#: templates/js/translated/company.js:556 msgid "Parts Manufactured" msgstr "Hersteller-Teile" -#: templates/js/translated/company.js:570 +#: templates/js/translated/company.js:571 msgid "No company information found" msgstr "Keine Firmeninformation gefunden" -#: templates/js/translated/company.js:619 +#: templates/js/translated/company.js:620 msgid "Create New Contact" msgstr "Neuen Kontakt erstellen" -#: templates/js/translated/company.js:635 -#: templates/js/translated/company.js:758 +#: templates/js/translated/company.js:636 +#: templates/js/translated/company.js:759 msgid "Edit Contact" msgstr "Kontakt bearbeiten" -#: templates/js/translated/company.js:672 +#: templates/js/translated/company.js:673 msgid "All selected contacts will be deleted" msgstr "Alle ausgewählten Kontakte werden gelöscht" -#: templates/js/translated/company.js:678 -#: templates/js/translated/company.js:742 +#: templates/js/translated/company.js:679 +#: templates/js/translated/company.js:743 msgid "Role" msgstr "Rolle" -#: templates/js/translated/company.js:686 +#: templates/js/translated/company.js:687 msgid "Delete Contacts" msgstr "Kontakte löschen" -#: templates/js/translated/company.js:717 +#: templates/js/translated/company.js:718 msgid "No contacts found" msgstr "Keine Kontakte gefunden" -#: templates/js/translated/company.js:730 +#: templates/js/translated/company.js:731 msgid "Phone Number" msgstr "Telefonnummer" -#: templates/js/translated/company.js:736 +#: templates/js/translated/company.js:737 msgid "Email Address" msgstr "E-Mail-Adresse" -#: templates/js/translated/company.js:762 +#: templates/js/translated/company.js:763 msgid "Delete Contact" msgstr "Kontakt löschen" -#: templates/js/translated/company.js:859 +#: templates/js/translated/company.js:860 msgid "Create New Address" msgstr "Neue Adresse erstellen" -#: templates/js/translated/company.js:874 -#: templates/js/translated/company.js:1035 +#: templates/js/translated/company.js:875 +#: templates/js/translated/company.js:1036 msgid "Edit Address" msgstr "Adresse bearbeiten" -#: templates/js/translated/company.js:909 +#: templates/js/translated/company.js:910 msgid "All selected addresses will be deleted" msgstr "Alle ausgewählten Adressen werden gelöscht" -#: templates/js/translated/company.js:923 +#: templates/js/translated/company.js:924 msgid "Delete Addresses" msgstr "Adressen löschen" -#: templates/js/translated/company.js:950 +#: templates/js/translated/company.js:951 msgid "No addresses found" msgstr "Keine Adressen gefunden" -#: templates/js/translated/company.js:989 +#: templates/js/translated/company.js:990 msgid "Postal city" msgstr "Postleitzahl" -#: templates/js/translated/company.js:995 +#: templates/js/translated/company.js:996 msgid "State/province" msgstr "Bundesland" -#: templates/js/translated/company.js:1007 +#: templates/js/translated/company.js:1008 msgid "Courier notes" msgstr "Kurierhinweise" -#: templates/js/translated/company.js:1013 +#: templates/js/translated/company.js:1014 msgid "Internal notes" msgstr "Interne Hinweise" -#: templates/js/translated/company.js:1039 +#: templates/js/translated/company.js:1040 msgid "Delete Address" msgstr "Adresse löschen" -#: templates/js/translated/company.js:1112 +#: templates/js/translated/company.js:1113 msgid "All selected manufacturer parts will be deleted" msgstr "Alle ausgewählten Herstellerteile werden gelöscht" -#: templates/js/translated/company.js:1127 +#: templates/js/translated/company.js:1128 msgid "Delete Manufacturer Parts" msgstr "Herstellerteile löschen" -#: templates/js/translated/company.js:1161 +#: templates/js/translated/company.js:1162 msgid "All selected parameters will be deleted" msgstr "Alle ausgewählten Parameter werden gelöscht" -#: templates/js/translated/company.js:1175 +#: templates/js/translated/company.js:1176 msgid "Delete Parameters" msgstr "Parameter löschen" -#: templates/js/translated/company.js:1191 -#: templates/js/translated/company.js:1479 templates/js/translated/part.js:2250 +#: templates/js/translated/company.js:1192 +#: templates/js/translated/company.js:1480 templates/js/translated/part.js:2250 msgid "Order parts" msgstr "Teile bestellen" -#: templates/js/translated/company.js:1208 +#: templates/js/translated/company.js:1209 msgid "Delete manufacturer parts" msgstr "Herstellerteile löschen" -#: templates/js/translated/company.js:1240 +#: templates/js/translated/company.js:1241 msgid "Manufacturer part actions" msgstr "Herstellerteil-Aktionen" -#: templates/js/translated/company.js:1259 +#: templates/js/translated/company.js:1260 msgid "No manufacturer parts found" msgstr "Keine Herstellerteile gefunden" -#: templates/js/translated/company.js:1279 -#: templates/js/translated/company.js:1567 templates/js/translated/part.js:801 +#: templates/js/translated/company.js:1280 +#: templates/js/translated/company.js:1568 templates/js/translated/part.js:801 #: templates/js/translated/part.js:1217 msgid "Template part" msgstr "Vorlagenteil" -#: templates/js/translated/company.js:1283 -#: templates/js/translated/company.js:1571 templates/js/translated/part.js:805 +#: templates/js/translated/company.js:1284 +#: templates/js/translated/company.js:1572 templates/js/translated/part.js:805 #: templates/js/translated/part.js:1221 msgid "Assembled part" msgstr "Baugruppe" -#: templates/js/translated/company.js:1403 templates/js/translated/part.js:1471 +#: templates/js/translated/company.js:1404 templates/js/translated/part.js:1471 msgid "No parameters found" msgstr "Keine Parameter gefunden" -#: templates/js/translated/company.js:1438 templates/js/translated/part.js:1534 +#: templates/js/translated/company.js:1439 templates/js/translated/part.js:1534 msgid "Edit parameter" msgstr "Parameter bearbeiten" -#: templates/js/translated/company.js:1439 templates/js/translated/part.js:1535 +#: templates/js/translated/company.js:1440 templates/js/translated/part.js:1535 msgid "Delete parameter" msgstr "Parameter löschen" -#: templates/js/translated/company.js:1456 templates/js/translated/part.js:1440 +#: templates/js/translated/company.js:1457 templates/js/translated/part.js:1440 msgid "Edit Parameter" msgstr "Parameter bearbeiten" -#: templates/js/translated/company.js:1465 templates/js/translated/part.js:1556 +#: templates/js/translated/company.js:1466 templates/js/translated/part.js:1556 msgid "Delete Parameter" msgstr "Parameter löschen" -#: templates/js/translated/company.js:1496 +#: templates/js/translated/company.js:1497 msgid "Delete supplier parts" msgstr "Zulieferteile löschen" -#: templates/js/translated/company.js:1546 +#: templates/js/translated/company.js:1547 msgid "No supplier parts found" msgstr "Keine Zulieferteile gefunden" -#: templates/js/translated/company.js:1664 +#: templates/js/translated/company.js:1665 msgid "Base Units" msgstr "Basiseinheit" -#: templates/js/translated/company.js:1694 +#: templates/js/translated/company.js:1695 msgid "Availability" msgstr "Verfügbarkeit" -#: templates/js/translated/company.js:1725 +#: templates/js/translated/company.js:1726 msgid "Edit supplier part" msgstr "Zulieferteile bearbeiten" -#: templates/js/translated/company.js:1726 +#: templates/js/translated/company.js:1727 msgid "Delete supplier part" msgstr "Zuliefererteil löschen" -#: templates/js/translated/company.js:1779 +#: templates/js/translated/company.js:1780 #: templates/js/translated/pricing.js:694 msgid "Delete Price Break" msgstr "Staffelpreis löschen" -#: templates/js/translated/company.js:1789 +#: templates/js/translated/company.js:1790 #: templates/js/translated/pricing.js:712 msgid "Edit Price Break" msgstr "Staffelpreis bearbeiten" -#: templates/js/translated/company.js:1804 +#: templates/js/translated/company.js:1805 msgid "No price break information found" msgstr "Keine Staffelpreisinformation gefunden" -#: templates/js/translated/company.js:1833 +#: templates/js/translated/company.js:1834 msgid "Last updated" msgstr "Zuletzt aktualisiert" -#: templates/js/translated/company.js:1840 +#: templates/js/translated/company.js:1841 msgid "Edit price break" msgstr "Staffelpreis bearbeiten" -#: templates/js/translated/company.js:1841 +#: templates/js/translated/company.js:1842 msgid "Delete price break" msgstr "Staffelpreis löschen" @@ -12977,19 +13342,19 @@ msgstr "Feldname" msgid "Select Columns" msgstr "Spalten auswählen" -#: templates/js/translated/helpers.js:80 +#: templates/js/translated/helpers.js:81 msgid "YES" msgstr "JA" -#: templates/js/translated/helpers.js:83 +#: templates/js/translated/helpers.js:84 msgid "NO" msgstr "NEIN" -#: templates/js/translated/helpers.js:96 +#: templates/js/translated/helpers.js:97 msgid "True" msgstr "Wahr" -#: templates/js/translated/helpers.js:97 +#: templates/js/translated/helpers.js:98 msgid "False" msgstr "Falsch" @@ -13131,7 +13496,7 @@ msgid "Delete Line" msgstr "Position löschen" #: templates/js/translated/order.js:306 -#: templates/js/translated/purchase_order.js:2060 +#: templates/js/translated/purchase_order.js:2044 msgid "No line items found" msgstr "Keine Postionen gefunden" @@ -13366,19 +13731,19 @@ msgid "Delete Part Parameter Template" msgstr "Teileparametervorlage löschen" #: templates/js/translated/part.js:1723 -#: templates/js/translated/purchase_order.js:1724 +#: templates/js/translated/purchase_order.js:1708 msgid "No purchase orders found" msgstr "Keine Bestellungen gefunden" #: templates/js/translated/part.js:1867 -#: templates/js/translated/purchase_order.js:2223 +#: templates/js/translated/purchase_order.js:2207 #: templates/js/translated/return_order.js:754 -#: templates/js/translated/sales_order.js:1911 +#: templates/js/translated/sales_order.js:1892 msgid "This line item is overdue" msgstr "Diese Position ist überfällig" #: templates/js/translated/part.js:1913 -#: templates/js/translated/purchase_order.js:2290 +#: templates/js/translated/purchase_order.js:2274 msgid "Receive line item" msgstr "Position empfangen" @@ -13419,7 +13784,7 @@ msgid "No category" msgstr "Keine Kategorien" #: templates/js/translated/part.js:2550 templates/js/translated/part.js:2680 -#: templates/js/translated/stock.js:2754 +#: templates/js/translated/stock.js:2755 msgid "Display as list" msgstr "Als Liste anzeigen" @@ -13431,7 +13796,7 @@ msgstr "Als Raster anzeigen" msgid "No subcategories found" msgstr "Keine Unterkategorien gefunden" -#: templates/js/translated/part.js:2700 templates/js/translated/stock.js:2774 +#: templates/js/translated/part.js:2700 templates/js/translated/stock.js:2775 msgid "Display as tree" msgstr "Als Baum anzeigen" @@ -13483,23 +13848,23 @@ msgstr "Das angegebene Datum liegt in der Vergangenheit" msgid "Speculative" msgstr "Spekulativ" -#: templates/js/translated/part.js:3128 +#: templates/js/translated/part.js:3144 msgid "No scheduling information available for this part" msgstr "Keine Zeitplanung für dieses Teil vorhanden" -#: templates/js/translated/part.js:3134 +#: templates/js/translated/part.js:3150 msgid "Error fetching scheduling information for this part" msgstr "Fehler beim Abrufen der Zeitplanungsinformationen für dieses Teil" -#: templates/js/translated/part.js:3230 +#: templates/js/translated/part.js:3246 msgid "Scheduled Stock Quantities" msgstr "Geplante Lagermengen" -#: templates/js/translated/part.js:3246 +#: templates/js/translated/part.js:3262 msgid "Maximum Quantity" msgstr "Maximale Menge" -#: templates/js/translated/part.js:3291 +#: templates/js/translated/part.js:3307 msgid "Minimum Stock Level" msgstr "Minimaler Lagerbestand" @@ -13575,267 +13940,243 @@ msgstr "Keine Einkaufshistorie verfügbar" msgid "Purchase Price History" msgstr "Kaufpreisverlauf" -#: templates/js/translated/pricing.js:894 +#: templates/js/translated/pricing.js:892 msgid "No sales history data available" msgstr "Keine Verkaufshistorie verfügbar" -#: templates/js/translated/pricing.js:916 +#: templates/js/translated/pricing.js:914 msgid "Sale Price History" msgstr "Verkaufspreisverlauf" -#: templates/js/translated/pricing.js:1005 +#: templates/js/translated/pricing.js:1003 msgid "No variant data available" msgstr "Keine Variantendaten verfügbar" -#: templates/js/translated/pricing.js:1045 +#: templates/js/translated/pricing.js:1043 msgid "Variant Part" msgstr "Variantenteil" -#: templates/js/translated/purchase_order.js:169 -msgid "Select purchase order to duplicate" -msgstr "Bestellung zum Duplizieren auswählen" - -#: templates/js/translated/purchase_order.js:176 -msgid "Duplicate Line Items" -msgstr "Positionen duplizieren" - -#: templates/js/translated/purchase_order.js:177 -msgid "Duplicate all line items from the selected order" -msgstr "Alle Positionen der ausgewählten Bestellung duplizieren" - -#: templates/js/translated/purchase_order.js:184 -msgid "Duplicate Extra Lines" -msgstr "Zusätzliche Positionen duplizieren" - -#: templates/js/translated/purchase_order.js:185 -msgid "Duplicate extra line items from the selected order" -msgstr "Zusätzliche Positionen der ausgewählten Bestellung duplizieren" - -#: templates/js/translated/purchase_order.js:206 +#: templates/js/translated/purchase_order.js:188 msgid "Edit Purchase Order" msgstr "Bestellung bearbeiten" -#: templates/js/translated/purchase_order.js:223 +#: templates/js/translated/purchase_order.js:205 msgid "Duplication Options" msgstr "Duplizierungsoptionen" -#: templates/js/translated/purchase_order.js:431 +#: templates/js/translated/purchase_order.js:414 msgid "Complete Purchase Order" msgstr "Bestellung abschließen" -#: templates/js/translated/purchase_order.js:448 +#: templates/js/translated/purchase_order.js:431 #: templates/js/translated/return_order.js:210 -#: templates/js/translated/sales_order.js:552 +#: templates/js/translated/sales_order.js:511 msgid "Mark this order as complete?" msgstr "Diese Bestellung als vollständig markieren?" -#: templates/js/translated/purchase_order.js:454 +#: templates/js/translated/purchase_order.js:437 msgid "All line items have been received" msgstr "Alle Positionen wurden erhalten" -#: templates/js/translated/purchase_order.js:459 +#: templates/js/translated/purchase_order.js:442 msgid "This order has line items which have not been marked as received." msgstr "Diese Bestellung enthält Positionen, die nicht als empfangen markiert wurden." -#: templates/js/translated/purchase_order.js:460 +#: templates/js/translated/purchase_order.js:443 msgid "Completing this order means that the order and line items will no longer be editable." msgstr "Fertigstellen dieser Bestellung bedeutet, dass sie ihre Positionen nicht länger bearbeiten können." -#: templates/js/translated/purchase_order.js:483 +#: templates/js/translated/purchase_order.js:466 msgid "Cancel Purchase Order" msgstr "Bestellung stornieren" -#: templates/js/translated/purchase_order.js:488 +#: templates/js/translated/purchase_order.js:471 msgid "Are you sure you wish to cancel this purchase order?" msgstr "Soll die Bestellung storniert werden?" -#: templates/js/translated/purchase_order.js:494 +#: templates/js/translated/purchase_order.js:477 msgid "This purchase order can not be cancelled" msgstr "Diese Bestellung kann nicht storniert werden" -#: templates/js/translated/purchase_order.js:515 +#: templates/js/translated/purchase_order.js:498 #: templates/js/translated/return_order.js:164 msgid "After placing this order, line items will no longer be editable." msgstr "Nachdem diese Bestellung platziert ist, können die Positionen nicht länger bearbeitet werden." -#: templates/js/translated/purchase_order.js:520 +#: templates/js/translated/purchase_order.js:503 msgid "Issue Purchase Order" msgstr "Bestellung aufgeben" -#: templates/js/translated/purchase_order.js:612 +#: templates/js/translated/purchase_order.js:595 msgid "At least one purchaseable part must be selected" msgstr "Mindestens ein kaufbares Teil muss ausgewählt werden" -#: templates/js/translated/purchase_order.js:637 +#: templates/js/translated/purchase_order.js:620 msgid "Quantity to order" msgstr "Zu bestellende Menge" -#: templates/js/translated/purchase_order.js:646 +#: templates/js/translated/purchase_order.js:629 msgid "New supplier part" msgstr "Neues Zuliefererteil" -#: templates/js/translated/purchase_order.js:664 +#: templates/js/translated/purchase_order.js:647 msgid "New purchase order" msgstr "Neue Bestellung" -#: templates/js/translated/purchase_order.js:705 +#: templates/js/translated/purchase_order.js:688 msgid "Add to purchase order" msgstr "Zur Bestellung hinzufügen" -#: templates/js/translated/purchase_order.js:755 +#: templates/js/translated/purchase_order.js:738 msgid "Merge" msgstr "Zusammenfügen" -#: templates/js/translated/purchase_order.js:859 +#: templates/js/translated/purchase_order.js:842 msgid "No matching supplier parts" msgstr "Keine passenden Lieferantenteile" -#: templates/js/translated/purchase_order.js:878 +#: templates/js/translated/purchase_order.js:861 msgid "No matching purchase orders" msgstr "Keine passenden Bestellungen" -#: templates/js/translated/purchase_order.js:1073 +#: templates/js/translated/purchase_order.js:1056 #: templates/js/translated/return_order.js:490 msgid "Select Line Items" msgstr "Positionen auswählen" -#: templates/js/translated/purchase_order.js:1074 +#: templates/js/translated/purchase_order.js:1057 #: templates/js/translated/return_order.js:491 msgid "At least one line item must be selected" msgstr "Mindestens eine Position muss ausgewählt werden" -#: templates/js/translated/purchase_order.js:1104 +#: templates/js/translated/purchase_order.js:1087 msgid "Received Quantity" msgstr "Erhaltene Menge" -#: templates/js/translated/purchase_order.js:1115 +#: templates/js/translated/purchase_order.js:1098 msgid "Quantity to receive" msgstr "Zu erhaltende Menge" -#: templates/js/translated/purchase_order.js:1170 +#: templates/js/translated/purchase_order.js:1153 #: templates/js/translated/stock.js:1215 msgid "Specify packaging for incoming stock items" msgstr "" -#: templates/js/translated/purchase_order.js:1223 +#: templates/js/translated/purchase_order.js:1206 msgid "Stock Status" msgstr "Bestandsstatus" -#: templates/js/translated/purchase_order.js:1237 +#: templates/js/translated/purchase_order.js:1220 msgid "Add barcode" msgstr "Barcode hinzufügen" -#: templates/js/translated/purchase_order.js:1238 +#: templates/js/translated/purchase_order.js:1221 msgid "Remove barcode" msgstr "Barcode entfernen" -#: templates/js/translated/purchase_order.js:1241 +#: templates/js/translated/purchase_order.js:1224 msgid "Specify location" msgstr "Lagerort angeben" -#: templates/js/translated/purchase_order.js:1249 +#: templates/js/translated/purchase_order.js:1232 msgid "Add batch code" msgstr "Losnummer hinzufügen" -#: templates/js/translated/purchase_order.js:1259 +#: templates/js/translated/purchase_order.js:1242 msgid "Specify packaging" msgstr "" -#: templates/js/translated/purchase_order.js:1270 +#: templates/js/translated/purchase_order.js:1253 msgid "Add serial numbers" msgstr "Seriennummern hinzufügen" -#: templates/js/translated/purchase_order.js:1281 +#: templates/js/translated/purchase_order.js:1264 msgid "Add note" msgstr "" -#: templates/js/translated/purchase_order.js:1338 +#: templates/js/translated/purchase_order.js:1321 msgid "Serials" msgstr "Seriennummern" -#: templates/js/translated/purchase_order.js:1368 +#: templates/js/translated/purchase_order.js:1351 msgid "Order Code" msgstr "Bestellnummer" -#: templates/js/translated/purchase_order.js:1370 +#: templates/js/translated/purchase_order.js:1353 msgid "Quantity to Receive" msgstr "Zu erhaltende Menge" -#: templates/js/translated/purchase_order.js:1395 +#: templates/js/translated/purchase_order.js:1379 #: templates/js/translated/return_order.js:559 msgid "Confirm receipt of items" msgstr "Empfang der Artikel bestätigen" -#: templates/js/translated/purchase_order.js:1396 +#: templates/js/translated/purchase_order.js:1380 msgid "Receive Purchase Order Items" msgstr "Bestellartikel erhalten" -#: templates/js/translated/purchase_order.js:1464 +#: templates/js/translated/purchase_order.js:1448 msgid "Scan Item Barcode" msgstr "Artikel-Barcode scannen" -#: templates/js/translated/purchase_order.js:1465 +#: templates/js/translated/purchase_order.js:1449 msgid "Scan barcode on incoming item (must not match any existing stock items)" msgstr "Scanne den Barcode am erhaltenen Artikel (darf nicht mit einem existierenden Lagerartikel übereinstimmen)" -#: templates/js/translated/purchase_order.js:1479 +#: templates/js/translated/purchase_order.js:1463 msgid "Invalid barcode data" msgstr "Ungültige Barcode-Daten" -#: templates/js/translated/purchase_order.js:1751 +#: templates/js/translated/purchase_order.js:1735 #: templates/js/translated/return_order.js:285 -#: templates/js/translated/sales_order.js:810 -#: templates/js/translated/sales_order.js:1034 +#: templates/js/translated/sales_order.js:769 +#: templates/js/translated/sales_order.js:1007 msgid "Order is overdue" msgstr "Bestellung ist überfällig" -#: templates/js/translated/purchase_order.js:1913 +#: templates/js/translated/purchase_order.js:1897 msgid "All selected Line items will be deleted" msgstr "Alle ausgewählten Positionen werden gelöscht" -#: templates/js/translated/purchase_order.js:1931 +#: templates/js/translated/purchase_order.js:1915 msgid "Delete selected Line items?" msgstr "Ausgewählte Positionen löschen?" -#: templates/js/translated/purchase_order.js:1986 -#: templates/js/translated/sales_order.js:2106 +#: templates/js/translated/purchase_order.js:1970 +#: templates/js/translated/sales_order.js:2087 msgid "Duplicate Line Item" msgstr "Position duplizieren" -#: templates/js/translated/purchase_order.js:2001 +#: templates/js/translated/purchase_order.js:1985 #: templates/js/translated/return_order.js:475 #: templates/js/translated/return_order.js:667 -#: templates/js/translated/sales_order.js:2119 +#: templates/js/translated/sales_order.js:2100 msgid "Edit Line Item" msgstr "Position bearbeiten" -#: templates/js/translated/purchase_order.js:2012 +#: templates/js/translated/purchase_order.js:1996 #: templates/js/translated/return_order.js:680 -#: templates/js/translated/sales_order.js:2130 +#: templates/js/translated/sales_order.js:2111 msgid "Delete Line Item" msgstr "Position löschen" -#: templates/js/translated/purchase_order.js:2294 -#: templates/js/translated/sales_order.js:2060 +#: templates/js/translated/purchase_order.js:2278 +#: templates/js/translated/sales_order.js:2041 msgid "Duplicate line item" msgstr "Position duplizieren" -#: templates/js/translated/purchase_order.js:2295 +#: templates/js/translated/purchase_order.js:2279 #: templates/js/translated/return_order.js:799 -#: templates/js/translated/sales_order.js:2061 +#: templates/js/translated/sales_order.js:2042 msgid "Edit line item" msgstr "Position bearbeiten" -#: templates/js/translated/purchase_order.js:2296 +#: templates/js/translated/purchase_order.js:2280 #: templates/js/translated/return_order.js:803 -#: templates/js/translated/sales_order.js:2067 +#: templates/js/translated/sales_order.js:2048 msgid "Delete line item" msgstr "Position löschen" -#: templates/js/translated/report.js:49 -msgid "Print Report" -msgstr "" - #: templates/js/translated/report.js:68 msgid "Report print successful" msgstr "" @@ -13878,7 +14219,7 @@ msgid "No return orders found" msgstr "Kein Rücksendeauftrag gefunden" #: templates/js/translated/return_order.js:299 -#: templates/js/translated/sales_order.js:824 +#: templates/js/translated/sales_order.js:783 msgid "Invalid Customer" msgstr "Ungültiger Kunde" @@ -13887,7 +14228,7 @@ msgid "Receive Return Order Items" msgstr "Rücksendeauftragspositionen erhalten" #: templates/js/translated/return_order.js:691 -#: templates/js/translated/sales_order.js:2267 +#: templates/js/translated/sales_order.js:2248 msgid "No matching line items" msgstr "Keine passenden Positionen gefunden" @@ -13903,188 +14244,181 @@ msgstr "Auftrag anlegen" msgid "Edit Sales Order" msgstr "Auftrag bearbeiten" -#: templates/js/translated/sales_order.js:291 +#: templates/js/translated/sales_order.js:288 msgid "No stock items have been allocated to this shipment" msgstr "Dieser Sendung wurden keine Lagerartikel zugewiesen" -#: templates/js/translated/sales_order.js:296 -msgid "The following stock items will be shipped" -msgstr "Die folgenden Lagerartikel werden verschickt" - -#: templates/js/translated/sales_order.js:336 +#: templates/js/translated/sales_order.js:294 msgid "Complete Shipment" msgstr "Lieferung fertigstellen" -#: templates/js/translated/sales_order.js:360 +#: templates/js/translated/sales_order.js:318 msgid "Confirm Shipment" msgstr "Lieferung bestätigen" -#: templates/js/translated/sales_order.js:416 +#: templates/js/translated/sales_order.js:375 msgid "No pending shipments found" msgstr "Keine ausstehenden Sendungen gefunden" -#: templates/js/translated/sales_order.js:420 +#: templates/js/translated/sales_order.js:379 msgid "No stock items have been allocated to pending shipments" msgstr "Keine Lagerartikel wurden offenen Sendungen zugewiesen" -#: templates/js/translated/sales_order.js:430 +#: templates/js/translated/sales_order.js:389 msgid "Complete Shipments" msgstr "Lieferung fertigstellen" -#: templates/js/translated/sales_order.js:452 +#: templates/js/translated/sales_order.js:411 msgid "Skip" msgstr "Überspringen" -#: templates/js/translated/sales_order.js:484 +#: templates/js/translated/sales_order.js:443 msgid "Ship Sales Order" msgstr "Auftrag versenden" -#: templates/js/translated/sales_order.js:500 +#: templates/js/translated/sales_order.js:459 msgid "Ship this order?" msgstr "Bestellung versenden?" -#: templates/js/translated/sales_order.js:506 +#: templates/js/translated/sales_order.js:465 msgid "Order cannot be shipped as there are incomplete shipments" msgstr "Auftrag kann nicht abgeschlossen werden, da unvollständige Sendungen vorhanden sind" -#: templates/js/translated/sales_order.js:513 +#: templates/js/translated/sales_order.js:472 msgid "This order has line items which have not been completed." msgstr "Dieser Auftrag enthält Positionen, die noch nicht abgeschlossen sind." -#: templates/js/translated/sales_order.js:514 +#: templates/js/translated/sales_order.js:473 msgid "Shipping this order means that the order and line items will no longer be editable." msgstr "Versenden dieses Auftrags bedeutet, dass der Auftrag und seine Positionen nicht mehr bearbeitbar sind." -#: templates/js/translated/sales_order.js:572 +#: templates/js/translated/sales_order.js:531 msgid "Issue this Sales Order?" msgstr "Diesen Auftrag aufgeben?" -#: templates/js/translated/sales_order.js:577 +#: templates/js/translated/sales_order.js:536 msgid "Issue Sales Order" msgstr "Auftrag aufgeben" -#: templates/js/translated/sales_order.js:596 +#: templates/js/translated/sales_order.js:555 msgid "Cancel Sales Order" msgstr "Auftrag stornieren" -#: templates/js/translated/sales_order.js:601 +#: templates/js/translated/sales_order.js:560 msgid "Cancelling this order means that the order will no longer be editable." msgstr "Stornieren dieser Bestellung bedeutet, dass sie nicht länger bearbeitbar ist." -#: templates/js/translated/sales_order.js:655 +#: templates/js/translated/sales_order.js:614 msgid "Create New Shipment" msgstr "Neue Lieferung erstellen" -#: templates/js/translated/sales_order.js:764 +#: templates/js/translated/sales_order.js:723 msgid "No sales orders found" msgstr "Keine Aufträge gefunden" -#: templates/js/translated/sales_order.js:944 +#: templates/js/translated/sales_order.js:907 msgid "Edit shipment" msgstr "Lieferung bearbeiten" -#: templates/js/translated/sales_order.js:947 +#: templates/js/translated/sales_order.js:910 msgid "Complete shipment" msgstr "Lieferung fertigstellen" -#: templates/js/translated/sales_order.js:952 +#: templates/js/translated/sales_order.js:915 msgid "Delete shipment" msgstr "Lieferung löschen" -#: templates/js/translated/sales_order.js:969 +#: templates/js/translated/sales_order.js:932 msgid "Edit Shipment" msgstr "Lieferung bearbeiten" -#: templates/js/translated/sales_order.js:984 +#: templates/js/translated/sales_order.js:947 msgid "Delete Shipment" msgstr "Lieferung löschen" -#: templates/js/translated/sales_order.js:1017 +#: templates/js/translated/sales_order.js:989 msgid "No matching shipments found" msgstr "Keine passende Lieferung gefunden" -#: templates/js/translated/sales_order.js:1042 +#: templates/js/translated/sales_order.js:1015 msgid "Shipment Reference" msgstr "Sendungsreferenz" -#: templates/js/translated/sales_order.js:1066 -#: templates/js/translated/sales_order.js:1565 +#: templates/js/translated/sales_order.js:1032 +#: templates/js/translated/sales_order.js:1531 msgid "Not shipped" msgstr "Nicht versandt" -#: templates/js/translated/sales_order.js:1084 +#: templates/js/translated/sales_order.js:1050 msgid "Tracking" msgstr "Nachverfolgen" -#: templates/js/translated/sales_order.js:1088 +#: templates/js/translated/sales_order.js:1054 msgid "Invoice" msgstr "Rechnung" -#: templates/js/translated/sales_order.js:1255 +#: templates/js/translated/sales_order.js:1221 msgid "Add Shipment" msgstr "Lieferung hinzufügen" -#: templates/js/translated/sales_order.js:1306 +#: templates/js/translated/sales_order.js:1272 msgid "Confirm stock allocation" msgstr "Bestandszuordnung bestätigen" -#: templates/js/translated/sales_order.js:1307 +#: templates/js/translated/sales_order.js:1273 msgid "Allocate Stock Items to Sales Order" msgstr "Lagerartikel Auftrag zuweisen" -#: templates/js/translated/sales_order.js:1513 +#: templates/js/translated/sales_order.js:1479 msgid "No sales order allocations found" msgstr "Keine Allokationen für Auftrag gefunden" -#: templates/js/translated/sales_order.js:1605 +#: templates/js/translated/sales_order.js:1571 msgid "Edit Stock Allocation" msgstr "Bestandszuordnung bearbeiten" -#: templates/js/translated/sales_order.js:1619 +#: templates/js/translated/sales_order.js:1585 msgid "Confirm Delete Operation" msgstr "Löschvorgang bestätigen" -#: templates/js/translated/sales_order.js:1620 +#: templates/js/translated/sales_order.js:1586 msgid "Delete Stock Allocation" msgstr "Bestandszuordnung löschen" -#: templates/js/translated/sales_order.js:1659 -#: templates/js/translated/sales_order.js:1746 +#: templates/js/translated/sales_order.js:1640 +#: templates/js/translated/sales_order.js:1727 #: templates/js/translated/stock.js:1861 msgid "Shipped to customer" msgstr "An den Kunden versandt" -#: templates/js/translated/sales_order.js:1667 -#: templates/js/translated/sales_order.js:1755 +#: templates/js/translated/sales_order.js:1648 +#: templates/js/translated/sales_order.js:1736 msgid "Stock location not specified" msgstr "Lagerort nicht angegeben" -#: templates/js/translated/sales_order.js:2044 -msgid "Allocate serial numbers" -msgstr "Seriennummern zuweisen" - -#: templates/js/translated/sales_order.js:2048 -msgid "Purchase stock" -msgstr "Bestand kaufen" - -#: templates/js/translated/sales_order.js:2057 -#: templates/js/translated/sales_order.js:2245 -msgid "Calculate price" -msgstr "Preis berechnen" - -#: templates/js/translated/sales_order.js:2071 -msgid "Cannot be deleted as items have been shipped" -msgstr "Kann nicht gelöscht werden, da Artikel versandt wurden" - -#: templates/js/translated/sales_order.js:2074 -msgid "Cannot be deleted as items have been allocated" -msgstr "Kann nicht gelöscht werden, da Artikel zugewiesen sind" - -#: templates/js/translated/sales_order.js:2145 +#: templates/js/translated/sales_order.js:2025 +#: templates/js/translated/sales_order.js:2126 msgid "Allocate Serial Numbers" msgstr "Seriennummern zuweisen" -#: templates/js/translated/sales_order.js:2253 +#: templates/js/translated/sales_order.js:2029 +msgid "Purchase stock" +msgstr "Bestand kaufen" + +#: templates/js/translated/sales_order.js:2038 +#: templates/js/translated/sales_order.js:2226 +msgid "Calculate price" +msgstr "Preis berechnen" + +#: templates/js/translated/sales_order.js:2052 +msgid "Cannot be deleted as items have been shipped" +msgstr "Kann nicht gelöscht werden, da Artikel versandt wurden" + +#: templates/js/translated/sales_order.js:2055 +msgid "Cannot be deleted as items have been allocated" +msgstr "Kann nicht gelöscht werden, da Artikel zugewiesen sind" + +#: templates/js/translated/sales_order.js:2234 msgid "Update Unit Price" msgstr "Stückpreis aktualisieren" @@ -14209,13 +14543,10 @@ msgid "Find Serial Number" msgstr "Seriennummer finden" #: templates/js/translated/stock.js:603 templates/js/translated/stock.js:604 +#: templates/js/translated/stock.js:620 msgid "Enter serial number" msgstr "Seriennummer eingeben" -#: templates/js/translated/stock.js:620 -msgid "Enter a serial number" -msgstr "Eine Seriennummer eingeben" - #: templates/js/translated/stock.js:640 msgid "No matching serial number" msgstr "Keine passende Seriennummer" @@ -14284,7 +14615,7 @@ msgstr "Entnehmen" msgid "Add Stock" msgstr "Bestand hinzufügen" -#: templates/js/translated/stock.js:1049 users/models.py:396 +#: templates/js/translated/stock.js:1049 users/models.py:398 msgid "Add" msgstr "Hinzufügen" @@ -14308,7 +14639,7 @@ msgstr "" msgid "Adjust packaging" msgstr "" -#: templates/js/translated/stock.js:1256 templates/js/translated/stock.js:3382 +#: templates/js/translated/stock.js:1256 templates/js/translated/stock.js:3383 msgid "Select Stock Items" msgstr "Lagerartikel auswählen" @@ -14320,18 +14651,6 @@ msgstr "Wähle mindestens einen verfügbaren Lagerartikel aus" msgid "Confirm stock adjustment" msgstr "Bestandsanpassung bestätigen" -#: templates/js/translated/stock.js:1448 -msgid "PASS" -msgstr "ERFOLGREICH" - -#: templates/js/translated/stock.js:1450 -msgid "FAIL" -msgstr "FEHLGESCHLAGEN" - -#: templates/js/translated/stock.js:1455 -msgid "NO RESULT" -msgstr "KEIN ERGEBNIS" - #: templates/js/translated/stock.js:1535 msgid "Pass test" msgstr "Test bestanden" @@ -14388,216 +14707,216 @@ msgstr "Auftrag zugewiesen" msgid "No stock location set" msgstr "Kein Lagerort gesetzt" -#: templates/js/translated/stock.js:1927 +#: templates/js/translated/stock.js:1928 msgid "Change stock status" msgstr "Bestandsstatus ändern" -#: templates/js/translated/stock.js:1936 +#: templates/js/translated/stock.js:1937 msgid "Merge stock" msgstr "Bestand zusammenführen" -#: templates/js/translated/stock.js:1985 +#: templates/js/translated/stock.js:1986 msgid "Delete stock" msgstr "Bestand löschen" -#: templates/js/translated/stock.js:2038 +#: templates/js/translated/stock.js:2039 msgid "stock items" msgstr "Lagerartikel" -#: templates/js/translated/stock.js:2043 +#: templates/js/translated/stock.js:2044 msgid "Scan to location" msgstr "Zu Lagerort einscannen" -#: templates/js/translated/stock.js:2054 +#: templates/js/translated/stock.js:2055 msgid "Stock Actions" msgstr "Lager-Aktionen" -#: templates/js/translated/stock.js:2098 +#: templates/js/translated/stock.js:2099 msgid "Load installed items" msgstr "Installierte Artikel laden" -#: templates/js/translated/stock.js:2176 +#: templates/js/translated/stock.js:2177 msgid "Stock item is in production" msgstr "Lagerartikel wird produziert" -#: templates/js/translated/stock.js:2181 +#: templates/js/translated/stock.js:2182 msgid "Stock item assigned to sales order" msgstr "Lagerartikel wurde Auftrag zugewiesen" -#: templates/js/translated/stock.js:2184 +#: templates/js/translated/stock.js:2185 msgid "Stock item assigned to customer" msgstr "Lagerartikel wurde Kunden zugewiesen" -#: templates/js/translated/stock.js:2187 +#: templates/js/translated/stock.js:2188 msgid "Serialized stock item has been allocated" msgstr "Serialisierter Lagerartikel wurde zugewiesen" -#: templates/js/translated/stock.js:2189 +#: templates/js/translated/stock.js:2190 msgid "Stock item has been fully allocated" msgstr "Lagerartikel wurde vollständig zugewiesen" -#: templates/js/translated/stock.js:2191 +#: templates/js/translated/stock.js:2192 msgid "Stock item has been partially allocated" msgstr "Lagerartikel wurde teilweise zugewiesen" -#: templates/js/translated/stock.js:2194 +#: templates/js/translated/stock.js:2195 msgid "Stock item has been installed in another item" msgstr "Lagerartikel in anderem Artikel verbaut" -#: templates/js/translated/stock.js:2196 +#: templates/js/translated/stock.js:2197 msgid "Stock item has been consumed by a build order" msgstr "Lagerbestand wurde durch einen Bauauftrag verbraucht" -#: templates/js/translated/stock.js:2200 +#: templates/js/translated/stock.js:2201 msgid "Stock item has expired" msgstr "Lagerartikel ist abgelaufen" -#: templates/js/translated/stock.js:2202 +#: templates/js/translated/stock.js:2203 msgid "Stock item will expire soon" msgstr "Lagerartikel läuft demnächst ab" -#: templates/js/translated/stock.js:2207 +#: templates/js/translated/stock.js:2208 msgid "Stock item has been rejected" msgstr "Lagerartikel wurde zurückgewiesen" -#: templates/js/translated/stock.js:2209 +#: templates/js/translated/stock.js:2210 msgid "Stock item is lost" msgstr "Lagerartikel ist verloren" -#: templates/js/translated/stock.js:2211 +#: templates/js/translated/stock.js:2212 msgid "Stock item is destroyed" msgstr "Lagerartikel ist zerstört" -#: templates/js/translated/stock.js:2215 +#: templates/js/translated/stock.js:2216 #: templates/js/translated/table_filters.js:357 msgid "Depleted" msgstr "Aufgebraucht" -#: templates/js/translated/stock.js:2380 +#: templates/js/translated/stock.js:2381 msgid "Supplier part not specified" msgstr "Zuliefererteil nicht angegeben" -#: templates/js/translated/stock.js:2427 +#: templates/js/translated/stock.js:2428 msgid "Stock Value" msgstr "Bestandswert" -#: templates/js/translated/stock.js:2555 +#: templates/js/translated/stock.js:2556 msgid "No stock items matching query" msgstr "Keine zur Anfrage passenden Lagerartikel gefunden" -#: templates/js/translated/stock.js:2658 +#: templates/js/translated/stock.js:2659 msgid "stock locations" msgstr "Lagerorte" -#: templates/js/translated/stock.js:2813 +#: templates/js/translated/stock.js:2814 msgid "Load Sublocations" msgstr "Untergeordnete Lagerorte laden" -#: templates/js/translated/stock.js:2930 +#: templates/js/translated/stock.js:2931 msgid "Details" msgstr "Details" -#: templates/js/translated/stock.js:2934 +#: templates/js/translated/stock.js:2935 msgid "No changes" msgstr "Keine Änderungen" -#: templates/js/translated/stock.js:2946 +#: templates/js/translated/stock.js:2947 msgid "Part information unavailable" msgstr "Teileinformationen nicht verfügbar" -#: templates/js/translated/stock.js:2968 +#: templates/js/translated/stock.js:2969 msgid "Location no longer exists" msgstr "Lagerort existiert nicht mehr" -#: templates/js/translated/stock.js:2985 +#: templates/js/translated/stock.js:2986 msgid "Build order no longer exists" msgstr "Bauauftrag existiert nicht mehr" -#: templates/js/translated/stock.js:3000 +#: templates/js/translated/stock.js:3001 msgid "Purchase order no longer exists" msgstr "Bestellung existiert nicht mehr" -#: templates/js/translated/stock.js:3017 +#: templates/js/translated/stock.js:3018 msgid "Sales Order no longer exists" msgstr "Auftrag existiert nicht mehr" -#: templates/js/translated/stock.js:3034 +#: templates/js/translated/stock.js:3035 msgid "Return Order no longer exists" msgstr "Rücksendebestellung existiert nicht mehr" -#: templates/js/translated/stock.js:3053 +#: templates/js/translated/stock.js:3054 msgid "Customer no longer exists" msgstr "Kunde existiert nicht mehr" -#: templates/js/translated/stock.js:3071 +#: templates/js/translated/stock.js:3072 msgid "Stock item no longer exists" msgstr "Lagerartikel existiert nicht mehr" -#: templates/js/translated/stock.js:3089 +#: templates/js/translated/stock.js:3090 msgid "Added" msgstr "Hinzugefügt" -#: templates/js/translated/stock.js:3097 +#: templates/js/translated/stock.js:3098 msgid "Removed" msgstr "Entfernt" -#: templates/js/translated/stock.js:3169 +#: templates/js/translated/stock.js:3170 msgid "No installed items" msgstr "Keine installierten Artikel" -#: templates/js/translated/stock.js:3223 templates/js/translated/stock.js:3259 +#: templates/js/translated/stock.js:3224 templates/js/translated/stock.js:3260 msgid "Uninstall Stock Item" msgstr "Lagerartikel deinstallieren" -#: templates/js/translated/stock.js:3280 +#: templates/js/translated/stock.js:3281 msgid "Select stock item to uninstall" msgstr "Zu deinstallierende Lagerartikel auswählen" -#: templates/js/translated/stock.js:3301 +#: templates/js/translated/stock.js:3302 msgid "Install another stock item into this item" msgstr "Einen anderen Lagerartikel in dieses Teil installieren" -#: templates/js/translated/stock.js:3302 +#: templates/js/translated/stock.js:3303 msgid "Stock items can only be installed if they meet the following criteria" msgstr "Lagerartikel können nur installiert werden wenn folgende Kriterien erfüllt werden" -#: templates/js/translated/stock.js:3304 +#: templates/js/translated/stock.js:3305 msgid "The Stock Item links to a Part which is the BOM for this Stock Item" msgstr "Der Lagerartikel ist mit einem Teil verknüpft das in der Stückliste für diesen Lagerartikel ist" -#: templates/js/translated/stock.js:3305 +#: templates/js/translated/stock.js:3306 msgid "The Stock Item is currently available in stock" msgstr "Dieser Lagerartikel ist aktuell vorhanden" -#: templates/js/translated/stock.js:3306 +#: templates/js/translated/stock.js:3307 msgid "The Stock Item is not already installed in another item" msgstr "Der Lagerbestand ist nicht bereits in einem anderen Bestand installiert" -#: templates/js/translated/stock.js:3307 +#: templates/js/translated/stock.js:3308 msgid "The Stock Item is tracked by either a batch code or serial number" msgstr "Der Lagerbestand wird entweder mit einem Batch-Code oder mit Seriennummer verfolgt" -#: templates/js/translated/stock.js:3320 +#: templates/js/translated/stock.js:3321 msgid "Select part to install" msgstr "Teil zur Installation auswählen" -#: templates/js/translated/stock.js:3383 +#: templates/js/translated/stock.js:3384 msgid "Select one or more stock items" msgstr "Wählen Sie einen oder mehrere Bestandteile aus" -#: templates/js/translated/stock.js:3396 +#: templates/js/translated/stock.js:3397 msgid "Selected stock items" msgstr "Lagerartikel auswählen" -#: templates/js/translated/stock.js:3400 +#: templates/js/translated/stock.js:3401 msgid "Change Stock Status" msgstr "Bestandsstatus ändern" -#: templates/js/translated/stock.js:3477 +#: templates/js/translated/stock.js:3478 msgid "This week" msgstr "" -#: templates/js/translated/stock.js:3485 +#: templates/js/translated/stock.js:3486 msgid "This month" msgstr "" @@ -14734,10 +15053,6 @@ msgstr "Zeige Teile welche im Lager sind" msgid "Show items which are in production" msgstr "Zeige Teile welche in Produktion sind" -#: templates/js/translated/table_filters.js:372 -msgid "Include Variants" -msgstr "Varianten einschließen" - #: templates/js/translated/table_filters.js:373 msgid "Include stock items for variant parts" msgstr "Lagerartikel für Teile-Varianten einschließen" @@ -15012,10 +15327,6 @@ msgstr "Account Login fehlgeschlagen" msgid "An error occurred while attempting to login via your social network account." msgstr "Beim Versuch, sich über Ihr soziales Netzwerkkonto anzumelden, ist ein Fehler aufgetreten." -#: templates/socialaccount/authentication_error.html:13 -msgid "Contact your system administrator for further information." -msgstr "Bitte kontaktieren Sie Ihren Administrator für mehr Informationen." - #: templates/socialaccount/login.html:13 #, python-format msgid "Connect %(provider)s" @@ -15141,27 +15452,27 @@ msgstr "Ja" msgid "No" msgstr "Nein" -#: users/admin.py:104 +#: users/admin.py:101 msgid "Users" msgstr "Benutzer" -#: users/admin.py:105 +#: users/admin.py:102 msgid "Select which users are assigned to this group" msgstr "Welche Benutzer gehören zu dieser Gruppe" -#: users/admin.py:249 +#: users/admin.py:246 msgid "The following users are members of multiple groups" msgstr "Folgende Benutzer gehören zu mehreren Gruppen" -#: users/admin.py:283 +#: users/admin.py:280 msgid "Personal info" msgstr "Persöhnliche Informationen" -#: users/admin.py:285 +#: users/admin.py:282 msgid "Permissions" msgstr "Berechtigungen" -#: users/admin.py:288 +#: users/admin.py:285 msgid "Important dates" msgstr "wichtige Daten" @@ -15205,35 +15516,35 @@ msgstr "Das letzte Mal, wo das Token verwendet wurde" msgid "Revoked" msgstr "Widerrufen" -#: users/models.py:379 +#: users/models.py:381 msgid "Permission set" msgstr "Berechtigung geändert" -#: users/models.py:388 +#: users/models.py:390 msgid "Group" msgstr "Gruppe" -#: users/models.py:392 +#: users/models.py:394 msgid "View" msgstr "Ansicht" -#: users/models.py:392 +#: users/models.py:394 msgid "Permission to view items" msgstr "Berechtigung Einträge anzuzeigen" -#: users/models.py:396 +#: users/models.py:398 msgid "Permission to add items" msgstr "Berechtigung Einträge zu erstellen" -#: users/models.py:400 +#: users/models.py:402 msgid "Change" msgstr "Ändern" -#: users/models.py:402 +#: users/models.py:404 msgid "Permissions to edit items" msgstr "Berechtigungen Einträge zu ändern" -#: users/models.py:408 +#: users/models.py:410 msgid "Permission to delete items" msgstr "Berechtigung Einträge zu löschen" diff --git a/src/backend/InvenTree/locale/el/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/el/LC_MESSAGES/django.po index 4fc2989b76..7b02ba52f6 100644 --- a/src/backend/InvenTree/locale/el/LC_MESSAGES/django.po +++ b/src/backend/InvenTree/locale/el/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-08-20 01:22+0000\n" -"PO-Revision-Date: 2024-08-20 19:50\n" +"POT-Creation-Date: 2024-11-04 03:11+0000\n" +"PO-Revision-Date: 2024-11-04 03:14\n" "Last-Translator: \n" "Language-Team: Greek\n" "Language: el_GR\n" @@ -14,81 +14,89 @@ msgstr "" "X-Crowdin-Project: inventree\n" "X-Crowdin-Project-ID: 452300\n" "X-Crowdin-Language: el\n" -"X-Crowdin-File: /[inventree.InvenTree] l10/src/backend/InvenTree/locale/en/LC_MESSAGES/django.po\n" -"X-Crowdin-File-ID: 216\n" +"X-Crowdin-File: /src/backend/InvenTree/locale/en/LC_MESSAGES/django.po\n" +"X-Crowdin-File-ID: 250\n" -#: InvenTree/api.py:269 +#: InvenTree/api.py:270 msgid "API endpoint not found" msgstr "Το API endpoint δε βρέθηκε" -#: InvenTree/api.py:502 +#: InvenTree/api.py:387 +msgid "Invalid items list provided" +msgstr "" + +#: InvenTree/api.py:396 +msgid "Invalid filters provided" +msgstr "" + +#: InvenTree/api.py:401 +msgid "No items found to delete" +msgstr "" + +#: InvenTree/api.py:515 msgid "User does not have permission to view this model" msgstr "Δεν έχετε δικαιώματα να το δείτε αυτό" -#: InvenTree/conversion.py:160 +#: InvenTree/conversion.py:161 #, python-brace-format msgid "Invalid unit provided ({unit})" msgstr "Η μονάδα μέτρησης δεν είναι έγκυρη ({unit})" -#: InvenTree/conversion.py:177 +#: InvenTree/conversion.py:178 msgid "No value provided" msgstr "Δεν εισήχθη τιμή" -#: InvenTree/conversion.py:204 +#: InvenTree/conversion.py:205 #, python-brace-format msgid "Could not convert {original} to {unit}" msgstr "Δεν ήταν δυνατή η μετατροπή από {original} σε {unit}" -#: InvenTree/conversion.py:206 -msgid "Invalid quantity supplied" -msgstr "Δόθηκε μη έγκυρη ποσότητα" +#: InvenTree/conversion.py:207 InvenTree/conversion.py:221 +#: InvenTree/helpers.py:505 order/models.py:589 order/models.py:832 +msgid "Invalid quantity provided" +msgstr "Μη έγκυρη ποσότητα" -#: InvenTree/conversion.py:220 -#, python-brace-format -msgid "Invalid quantity supplied ({exc})" -msgstr "Δόθηκε μη έγκυρη ποσότητα ({exc})" - -#: InvenTree/exceptions.py:108 +#: InvenTree/exceptions.py:104 msgid "Error details can be found in the admin panel" msgstr "Μπορείτε να βρείτε λεπτομέρειες σφάλματος στον πίνακα διαχείρισης" -#: InvenTree/fields.py:136 +#: InvenTree/fields.py:135 msgid "Enter date" msgstr "Εισάγετε ημερομηνία" -#: InvenTree/fields.py:205 InvenTree/models.py:929 build/serializers.py:468 -#: build/serializers.py:546 build/templates/build/sidebar.html:29 -#: company/models.py:836 +#: InvenTree/fields.py:204 InvenTree/models.py:928 build/serializers.py:512 +#: build/serializers.py:590 build/templates/build/sidebar.html:29 +#: company/models.py:833 #: company/templates/company/manufacturer_part_sidebar.html:11 #: company/templates/company/sidebar.html:37 -#: company/templates/company/supplier_part_sidebar.html:11 order/models.py:1380 +#: company/templates/company/supplier_part_sidebar.html:11 order/models.py:1397 #: order/templates/order/po_sidebar.html:11 #: order/templates/order/return_order_sidebar.html:9 #: order/templates/order/so_sidebar.html:17 part/admin.py:59 -#: part/models.py:3297 part/templates/part/part_sidebar.html:65 +#: part/models.py:3348 part/templates/part/part_sidebar.html:65 #: report/templates/report/inventree_build_order_report.html:172 -#: stock/admin.py:230 stock/models.py:2375 stock/models.py:2563 -#: stock/serializers.py:698 stock/serializers.py:856 stock/serializers.py:982 -#: stock/serializers.py:1032 stock/serializers.py:1343 -#: stock/serializers.py:1432 stock/serializers.py:1597 +#: stock/admin.py:231 stock/models.py:2494 stock/models.py:2679 +#: stock/serializers.py:725 stock/serializers.py:887 stock/serializers.py:1013 +#: stock/serializers.py:1063 stock/serializers.py:1374 +#: stock/serializers.py:1463 stock/serializers.py:1628 #: stock/templates/stock/stock_sidebar.html:25 #: templates/js/translated/barcode.js:143 templates/js/translated/bom.js:1265 -#: templates/js/translated/company.js:1684 templates/js/translated/order.js:372 +#: templates/js/translated/company.js:1685 templates/js/translated/order.js:372 #: templates/js/translated/part.js:1087 -#: templates/js/translated/purchase_order.js:2270 +#: templates/js/translated/purchase_order.js:2254 #: templates/js/translated/return_order.js:774 -#: templates/js/translated/sales_order.js:1103 -#: templates/js/translated/sales_order.js:2018 -#: templates/js/translated/stock.js:1621 templates/js/translated/stock.js:2513 +#: templates/js/translated/sales_order.js:1069 +#: templates/js/translated/sales_order.js:1999 +#: templates/js/translated/stock.js:1621 templates/js/translated/stock.js:2514 msgid "Notes" msgstr "Σημειώσεις" -#: InvenTree/format.py:164 +#: InvenTree/format.py:162 #, python-brace-format msgid "Value '{name}' does not appear in pattern format" msgstr "Η τιμή '{name}' δεν εμφανίζεται σε μορφή μοτίβου" -#: InvenTree/format.py:175 +#: InvenTree/format.py:173 msgid "Provided value does not match required pattern: " msgstr "Η παρεχόμενη τιμή δεν ταιριάζει με το απαιτούμενο απαραραίητη μοτίβο: " @@ -132,397 +140,409 @@ msgstr "" msgid "The provided primary email address is not valid." msgstr "Η παρεχόμενη κύρια διεύθυνση ηλεκτρονικού ταχυδρομείου δεν είναι έγκυρη." -#: InvenTree/forms.py:274 +#: InvenTree/forms.py:273 msgid "The provided email domain is not approved." msgstr "Ο παρεχόμενος τομέας ηλεκτρονικού ταχυδρομείου δεν έχει εγκριθεί." -#: InvenTree/forms.py:403 +#: InvenTree/forms.py:402 msgid "Registration is disabled." msgstr "Η εγγραφή είναι απενεργοποιημένη." -#: InvenTree/helpers.py:491 order/models.py:567 order/models.py:810 -msgid "Invalid quantity provided" -msgstr "Μη έγκυρη ποσότητα" +#: InvenTree/helpers.py:509 +msgid "Cannot serialize more than 1000 items at once" +msgstr "" -#: InvenTree/helpers.py:499 +#: InvenTree/helpers.py:515 msgid "Empty serial number string" msgstr "Κενό σειριακό αριθμό συμβολοσειράς" -#: InvenTree/helpers.py:528 +#: InvenTree/helpers.py:544 msgid "Duplicate serial" msgstr "Διπλότυπο serial number" -#: InvenTree/helpers.py:560 InvenTree/helpers.py:603 +#: InvenTree/helpers.py:576 InvenTree/helpers.py:619 InvenTree/helpers.py:637 +#: InvenTree/helpers.py:644 InvenTree/helpers.py:663 #, python-brace-format -msgid "Invalid group range: {group}" -msgstr "Μη έγκυρο εύρος ομάδας: {group}" +msgid "Invalid group: {group}" +msgstr "" -#: InvenTree/helpers.py:591 +#: InvenTree/helpers.py:607 #, python-brace-format msgid "Group range {group} exceeds allowed quantity ({expected_quantity})" msgstr "Το εύρος της ομάδας {group} υπερβαίνει την επιτρεπόμενη ποσότητα ({expected_quantity})" -#: InvenTree/helpers.py:621 InvenTree/helpers.py:628 InvenTree/helpers.py:647 -#, python-brace-format -msgid "Invalid group sequence: {group}" -msgstr "Μη έγκυρη ακολουθία ομάδας: {group}" - -#: InvenTree/helpers.py:657 +#: InvenTree/helpers.py:673 msgid "No serial numbers found" msgstr "Δεν βρέθηκαν σειριακοί αριθμοί" -#: InvenTree/helpers.py:662 +#: InvenTree/helpers.py:678 msgid "Number of unique serial numbers ({len(serials)}) must match quantity ({expected_quantity})" msgstr "Ο αριθμός μοναδικών σειριακών αριθμών ({len(serials)}) πρέπει να αντιστοιχεί στην ποσότητα ({expected_quantity})" -#: InvenTree/helpers.py:780 +#: InvenTree/helpers.py:796 msgid "Remove HTML tags from this value" msgstr "Αφαιρέστε τα HTML tags από την τιμή που εισάγατε" -#: InvenTree/helpers_model.py:133 +#: InvenTree/helpers.py:881 +msgid "Data contains prohibited markdown content" +msgstr "" + +#: InvenTree/helpers_model.py:130 msgid "Connection error" msgstr "Σφάλμα σύνδεσης" -#: InvenTree/helpers_model.py:138 InvenTree/helpers_model.py:145 +#: InvenTree/helpers_model.py:135 InvenTree/helpers_model.py:142 msgid "Server responded with invalid status code" msgstr "Ο διακομιστής απάντησε με μη έγκυρο κωδικό κατάστασης" -#: InvenTree/helpers_model.py:141 +#: InvenTree/helpers_model.py:138 msgid "Exception occurred" msgstr "Προέκυψε σφάλμα" -#: InvenTree/helpers_model.py:151 +#: InvenTree/helpers_model.py:148 msgid "Server responded with invalid Content-Length value" msgstr "Ο διακομιστής ανταποκρίθηκε με \"Invalid Content-Length value\"" -#: InvenTree/helpers_model.py:154 +#: InvenTree/helpers_model.py:151 msgid "Image size is too large" msgstr "Η εικόνα είναι πολύ μεγάλη σε μέγεθος" -#: InvenTree/helpers_model.py:166 +#: InvenTree/helpers_model.py:163 msgid "Image download exceeded maximum size" msgstr "Η λήψη εικόνας ξεπέρασε το μέγιστο μέγεθος" -#: InvenTree/helpers_model.py:171 +#: InvenTree/helpers_model.py:168 msgid "Remote server returned empty response" msgstr "Ο διακομιστής επέστρεψε σφάλμα %1$d %2$s" -#: InvenTree/helpers_model.py:179 +#: InvenTree/helpers_model.py:176 msgid "Supplied URL is not a valid image file" msgstr "Το URL δεν είναι έγκυρο αρχείο εικόνας" -#: InvenTree/locales.py:18 +#: InvenTree/locales.py:20 msgid "Arabic" msgstr "" -#: InvenTree/locales.py:19 +#: InvenTree/locales.py:21 msgid "Bulgarian" msgstr "Βουλγάρικα" -#: InvenTree/locales.py:20 +#: InvenTree/locales.py:22 msgid "Czech" msgstr "Τσέχικα" -#: InvenTree/locales.py:21 +#: InvenTree/locales.py:23 msgid "Danish" msgstr "Δανέζικα" -#: InvenTree/locales.py:22 +#: InvenTree/locales.py:24 msgid "German" msgstr "Γερμανικά" -#: InvenTree/locales.py:23 +#: InvenTree/locales.py:25 msgid "Greek" msgstr "Ελληνικά" -#: InvenTree/locales.py:24 +#: InvenTree/locales.py:26 msgid "English" msgstr "Αγγλικά" -#: InvenTree/locales.py:25 +#: InvenTree/locales.py:27 msgid "Spanish" msgstr "Ισπανικά" -#: InvenTree/locales.py:26 +#: InvenTree/locales.py:28 msgid "Spanish (Mexican)" msgstr "Ισπανικά (Μεξικό)" -#: InvenTree/locales.py:27 +#: InvenTree/locales.py:29 msgid "Estonian" msgstr "" -#: InvenTree/locales.py:28 +#: InvenTree/locales.py:30 msgid "Farsi / Persian" msgstr "Φαρσί / Περσικά" -#: InvenTree/locales.py:29 +#: InvenTree/locales.py:31 msgid "Finnish" msgstr "Φινλανδικά" -#: InvenTree/locales.py:30 +#: InvenTree/locales.py:32 msgid "French" msgstr "Γαλλικά" -#: InvenTree/locales.py:31 +#: InvenTree/locales.py:33 msgid "Hebrew" msgstr "Εβραϊκά" -#: InvenTree/locales.py:32 +#: InvenTree/locales.py:34 msgid "Hindi" msgstr "Ινδικά" -#: InvenTree/locales.py:33 +#: InvenTree/locales.py:35 msgid "Hungarian" msgstr "Ούγγρικα" -#: InvenTree/locales.py:34 +#: InvenTree/locales.py:36 msgid "Italian" msgstr "Ιταλικά" -#: InvenTree/locales.py:35 +#: InvenTree/locales.py:37 msgid "Japanese" msgstr "Ιαπωνικά" -#: InvenTree/locales.py:36 +#: InvenTree/locales.py:38 msgid "Korean" msgstr "Κορεάτικα" -#: InvenTree/locales.py:37 +#: InvenTree/locales.py:39 +msgid "Lithuanian" +msgstr "" + +#: InvenTree/locales.py:40 msgid "Latvian" msgstr "" -#: InvenTree/locales.py:38 +#: InvenTree/locales.py:41 msgid "Dutch" msgstr "" -#: InvenTree/locales.py:39 +#: InvenTree/locales.py:42 msgid "Norwegian" msgstr "Νορβηγικά" -#: InvenTree/locales.py:40 +#: InvenTree/locales.py:43 msgid "Polish" msgstr "Πολωνικά" -#: InvenTree/locales.py:41 +#: InvenTree/locales.py:44 msgid "Portuguese" msgstr "Πορτογαλικά" -#: InvenTree/locales.py:42 +#: InvenTree/locales.py:45 msgid "Portuguese (Brazilian)" msgstr "Πορτογαλικά (Βραζιλίας)" -#: InvenTree/locales.py:43 +#: InvenTree/locales.py:46 msgid "Romanian" msgstr "" -#: InvenTree/locales.py:44 +#: InvenTree/locales.py:47 msgid "Russian" msgstr "Ρωσικά" -#: InvenTree/locales.py:45 +#: InvenTree/locales.py:48 msgid "Slovak" msgstr "Σλοβάκικα" -#: InvenTree/locales.py:46 +#: InvenTree/locales.py:49 msgid "Slovenian" msgstr "Σλοβενικά" -#: InvenTree/locales.py:47 +#: InvenTree/locales.py:50 msgid "Serbian" msgstr "Σερβικά" -#: InvenTree/locales.py:48 +#: InvenTree/locales.py:51 msgid "Swedish" msgstr "Σουηδικά" -#: InvenTree/locales.py:49 +#: InvenTree/locales.py:52 msgid "Thai" msgstr "Ταϊλανδέζικα" -#: InvenTree/locales.py:50 +#: InvenTree/locales.py:53 msgid "Turkish" msgstr "Τούρκικα" -#: InvenTree/locales.py:51 +#: InvenTree/locales.py:54 msgid "Ukrainian" msgstr "" -#: InvenTree/locales.py:52 +#: InvenTree/locales.py:55 msgid "Vietnamese" msgstr "Βιετναμέζικα" -#: InvenTree/locales.py:53 +#: InvenTree/locales.py:56 msgid "Chinese (Simplified)" msgstr "Κινέζικα (απλοποιημένα)" -#: InvenTree/locales.py:54 +#: InvenTree/locales.py:57 msgid "Chinese (Traditional)" msgstr "Κινέζικα (Παραδοσιακά)" #: InvenTree/magic_login.py:28 -#, python-brace-format -msgid "[{site_name}] Log in to the app" -msgstr "[{site_name}] Σύνδεση στην εφαρμογή" +msgid "Log in to the app" +msgstr "" -#: InvenTree/magic_login.py:38 InvenTree/serializers.py:415 -#: company/models.py:136 company/templates/company/company_base.html:138 +#: InvenTree/magic_login.py:38 InvenTree/serializers.py:416 +#: company/models.py:133 company/templates/company/company_base.html:138 #: templates/InvenTree/settings/user.html:49 -#: templates/js/translated/company.js:677 +#: templates/js/translated/company.js:678 msgid "Email" msgstr "" -#: InvenTree/models.py:103 +#: InvenTree/models.py:105 msgid "Error running plugin validation" msgstr "Σφάλμα κατά την εκτέλεση επικύρωσης προσθέτου" -#: InvenTree/models.py:172 +#: InvenTree/models.py:174 msgid "Metadata must be a python dict object" msgstr "Τα μεταδεδομένα πρέπει να είναι ένα αντικείμενο dict python" -#: InvenTree/models.py:178 +#: InvenTree/models.py:180 msgid "Plugin Metadata" msgstr "Μεταδεδομένα Πρόσθετου" -#: InvenTree/models.py:179 +#: InvenTree/models.py:181 msgid "JSON metadata field, for use by external plugins" msgstr "JSON πεδίο μεταδεδομένων, για χρήση από εξωτερικά πρόσθετα" -#: InvenTree/models.py:409 +#: InvenTree/models.py:408 msgid "Improperly formatted pattern" msgstr "Λανθασμένο μοτίβο" -#: InvenTree/models.py:416 +#: InvenTree/models.py:415 msgid "Unknown format key specified" msgstr "Δώσατε λάθος μορφή κλειδιού" -#: InvenTree/models.py:422 +#: InvenTree/models.py:421 msgid "Missing required format key" msgstr "Λείπει το απαραίτητο κλειδί" -#: InvenTree/models.py:433 +#: InvenTree/models.py:432 msgid "Reference field cannot be empty" msgstr "Το πεδίο δεν μπορεί να είναι άδειο" -#: InvenTree/models.py:441 +#: InvenTree/models.py:440 msgid "Reference must match required pattern" msgstr "Η αναφορά πρέπει να ταιριάζει με το απαιτούμενο μοτίβο" -#: InvenTree/models.py:472 +#: InvenTree/models.py:471 msgid "Reference number is too large" msgstr "Ο αριθμός αναφοράς είναι πολύ μεγάλος" -#: InvenTree/models.py:723 +#: InvenTree/models.py:722 msgid "Duplicate names cannot exist under the same parent" msgstr "Διπλότυπα ονόματα δεν μπορούν να υπάρχουν στον ίδιο γονέα" -#: InvenTree/models.py:740 +#: InvenTree/models.py:739 msgid "Invalid choice" msgstr "Μη έγκυρη επιλογή" -#: InvenTree/models.py:770 common/models.py:2702 common/models.py:3132 -#: common/serializers.py:412 company/models.py:593 machine/models.py:24 -#: part/models.py:983 part/models.py:3764 plugin/models.py:51 -#: report/models.py:149 stock/models.py:77 +#: InvenTree/models.py:769 common/models.py:2766 common/models.py:3193 +#: common/models.py:3413 common/serializers.py:460 company/models.py:590 +#: machine/models.py:24 part/models.py:1044 part/models.py:3815 +#: plugin/models.py:51 report/models.py:149 stock/models.py:83 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/notifications.html:17 #: templates/InvenTree/settings/plugin.html:83 #: templates/InvenTree/settings/plugin_settings.html:22 #: templates/InvenTree/settings/settings_staff_js.html:67 #: templates/InvenTree/settings/settings_staff_js.html:454 -#: templates/js/translated/company.js:676 -#: templates/js/translated/company.js:724 -#: templates/js/translated/company.js:913 -#: templates/js/translated/company.js:1165 -#: templates/js/translated/company.js:1413 templates/js/translated/part.js:1193 +#: templates/js/translated/company.js:677 +#: templates/js/translated/company.js:725 +#: templates/js/translated/company.js:914 +#: templates/js/translated/company.js:1166 +#: templates/js/translated/company.js:1414 templates/js/translated/part.js:1193 #: templates/js/translated/part.js:1481 templates/js/translated/part.js:1617 -#: templates/js/translated/part.js:2768 templates/js/translated/stock.js:2801 +#: templates/js/translated/part.js:2768 templates/js/translated/stock.js:2802 msgid "Name" msgstr "Όνομα" -#: InvenTree/models.py:776 build/models.py:250 -#: build/templates/build/detail.html:24 common/models.py:156 -#: company/models.py:521 company/models.py:827 +#: InvenTree/models.py:775 build/models.py:251 +#: build/templates/build/detail.html:24 common/models.py:159 +#: company/models.py:518 company/models.py:824 #: company/templates/company/company_base.html:77 #: company/templates/company/manufacturer_part.html:75 -#: company/templates/company/supplier_part.html:107 order/models.py:288 -#: order/models.py:1413 part/admin.py:305 part/admin.py:411 part/models.py:1006 -#: part/models.py:3779 part/templates/part/category.html:79 -#: part/templates/part/part_base.html:170 +#: company/templates/company/supplier_part.html:108 order/models.py:295 +#: order/models.py:1430 part/admin.py:305 part/admin.py:411 part/models.py:1067 +#: part/models.py:3830 part/templates/part/category.html:79 +#: part/templates/part/part_base.html:171 #: part/templates/part/part_scheduling.html:12 report/models.py:155 -#: report/models.py:509 report/models.py:535 +#: report/models.py:517 report/models.py:543 #: report/templates/report/inventree_build_order_report.html:117 -#: stock/admin.py:54 stock/models.py:83 stock/templates/stock/location.html:122 +#: stock/admin.py:54 stock/models.py:89 stock/templates/stock/location.html:123 #: templates/InvenTree/settings/notifications.html:19 #: templates/InvenTree/settings/plugin_settings.html:27 #: templates/InvenTree/settings/settings_staff_js.html:170 #: templates/InvenTree/settings/settings_staff_js.html:459 #: templates/js/translated/bom.js:633 templates/js/translated/bom.js:963 -#: templates/js/translated/build.js:2311 templates/js/translated/company.js:519 -#: templates/js/translated/company.js:1330 -#: templates/js/translated/company.js:1641 templates/js/translated/index.js:119 +#: templates/js/translated/build.js:2314 templates/js/translated/company.js:520 +#: templates/js/translated/company.js:1331 +#: templates/js/translated/company.js:1642 templates/js/translated/index.js:119 #: templates/js/translated/order.js:323 templates/js/translated/part.js:1245 #: templates/js/translated/part.js:1490 templates/js/translated/part.js:1628 #: templates/js/translated/part.js:1965 templates/js/translated/part.js:2361 #: templates/js/translated/part.js:2803 templates/js/translated/part.js:2915 #: templates/js/translated/plugin.js:80 -#: templates/js/translated/purchase_order.js:1776 -#: templates/js/translated/purchase_order.js:1919 -#: templates/js/translated/purchase_order.js:2092 +#: templates/js/translated/purchase_order.js:1760 +#: templates/js/translated/purchase_order.js:1903 +#: templates/js/translated/purchase_order.js:2076 #: templates/js/translated/return_order.js:313 -#: templates/js/translated/sales_order.js:838 -#: templates/js/translated/sales_order.js:1848 -#: templates/js/translated/stock.js:1600 templates/js/translated/stock.js:2143 -#: templates/js/translated/stock.js:2832 templates/js/translated/stock.js:2915 +#: templates/js/translated/sales_order.js:797 +#: templates/js/translated/sales_order.js:1829 +#: templates/js/translated/stock.js:1600 templates/js/translated/stock.js:2144 +#: templates/js/translated/stock.js:2833 templates/js/translated/stock.js:2916 msgid "Description" msgstr "Περιγραφή" -#: InvenTree/models.py:777 stock/models.py:84 +#: InvenTree/models.py:776 stock/models.py:90 msgid "Description (optional)" msgstr "Περιγραφή (προαιρετική)" -#: InvenTree/models.py:792 templates/js/translated/part.js:2812 -#: templates/js/translated/stock.js:2841 +#: InvenTree/models.py:791 common/models.py:3546 +#: templates/js/translated/part.js:2812 templates/js/translated/stock.js:2842 msgid "Path" msgstr "Μονοπάτι" -#: InvenTree/models.py:929 +#: InvenTree/models.py:928 msgid "Markdown notes (optional)" msgstr "Σημειώσεις Markdown (προαιρετικό)" -#: InvenTree/models.py:960 +#: InvenTree/models.py:959 msgid "Barcode Data" msgstr "Στοιχεία Barcode" -#: InvenTree/models.py:961 +#: InvenTree/models.py:960 msgid "Third party barcode data" msgstr "Δεδομένα barcode τρίτων" -#: InvenTree/models.py:967 +#: InvenTree/models.py:966 msgid "Barcode Hash" msgstr "" -#: InvenTree/models.py:968 +#: InvenTree/models.py:967 msgid "Unique hash of barcode data" msgstr "Μοναδικό hash δεδομένων barcode" -#: InvenTree/models.py:1035 +#: InvenTree/models.py:1034 msgid "Existing barcode found" msgstr "Βρέθηκε υπάρχων barcode" -#: InvenTree/models.py:1078 +#: InvenTree/models.py:1112 +msgid "Task Failure" +msgstr "" + +#: InvenTree/models.py:1114 +#, python-brace-format +msgid "Background worker task '{instance.func}' failed after {n} attempts" +msgstr "" + +#: InvenTree/models.py:1142 msgid "Server Error" msgstr "Σφάλμα διακομιστή" -#: InvenTree/models.py:1079 +#: InvenTree/models.py:1143 msgid "An error has been logged by the server." msgstr "Ένα σφάλμα έχει καταγραφεί από το διακομιστή." -#: InvenTree/serializers.py:63 part/models.py:4387 +#: InvenTree/serializers.py:63 part/models.py:4444 msgid "Must be a valid number" msgstr "Πρέπει να είναι αριθμός" -#: InvenTree/serializers.py:100 company/models.py:186 -#: company/templates/company/company_base.html:112 part/models.py:3115 +#: InvenTree/serializers.py:100 company/models.py:183 +#: company/templates/company/company_base.html:112 part/models.py:3166 #: templates/InvenTree/settings/settings_staff_js.html:44 #: templates/currency_data.html:5 msgid "Currency" @@ -532,15 +552,15 @@ msgstr "Νόμισμα" msgid "Select currency from available options" msgstr "Επιλέξτε νόμισμα από τις διαθέσιμες επιλογές" -#: InvenTree/serializers.py:407 templates/InvenTree/settings/user.html:33 +#: InvenTree/serializers.py:405 templates/InvenTree/settings/user.html:33 msgid "Username" msgstr "" -#: InvenTree/serializers.py:409 templates/InvenTree/settings/user.html:37 +#: InvenTree/serializers.py:408 templates/InvenTree/settings/user.html:37 msgid "First Name" msgstr "" -#: InvenTree/serializers.py:409 +#: InvenTree/serializers.py:408 msgid "First name of the user" msgstr "" @@ -552,30 +572,30 @@ msgstr "" msgid "Last name of the user" msgstr "" -#: InvenTree/serializers.py:415 +#: InvenTree/serializers.py:416 msgid "Email address of the user" msgstr "" -#: InvenTree/serializers.py:439 +#: InvenTree/serializers.py:441 msgid "Staff" msgstr "" -#: InvenTree/serializers.py:439 +#: InvenTree/serializers.py:441 msgid "Does this user have staff permissions" msgstr "" -#: InvenTree/serializers.py:442 +#: InvenTree/serializers.py:445 msgid "Superuser" msgstr "" -#: InvenTree/serializers.py:442 +#: InvenTree/serializers.py:445 msgid "Is this user a superuser" msgstr "" -#: InvenTree/serializers.py:445 common/models.py:2707 company/models.py:163 -#: company/models.py:801 machine/models.py:39 part/admin.py:88 -#: part/models.py:1189 plugin/models.py:66 -#: templates/js/translated/company.js:523 +#: InvenTree/serializers.py:449 common/models.py:2771 company/models.py:160 +#: company/models.py:798 machine/models.py:39 part/admin.py:88 +#: part/models.py:1250 plugin/models.py:66 +#: templates/js/translated/company.js:524 #: templates/js/translated/table_filters.js:134 #: templates/js/translated/table_filters.js:226 #: templates/js/translated/table_filters.js:513 @@ -585,230 +605,229 @@ msgstr "" msgid "Active" msgstr "" -#: InvenTree/serializers.py:445 +#: InvenTree/serializers.py:449 msgid "Is this user account active" msgstr "" -#: InvenTree/serializers.py:463 +#: InvenTree/serializers.py:467 msgid "You do not have permission to change this user role." msgstr "Δεν έχετε άδεια να αλλάξετε αυτόν τον ρόλο χρήστη." -#: InvenTree/serializers.py:475 +#: InvenTree/serializers.py:503 msgid "Only superusers can create new users" msgstr "Μόνο υπερχρήστες (superusers) μπορούν να δημιουργήσουν νέους χρήστες" -#: InvenTree/serializers.py:494 +#: InvenTree/serializers.py:523 msgid "Your account has been created." msgstr "Ο λογαριασμός σας δημιουργήθηκε." -#: InvenTree/serializers.py:496 +#: InvenTree/serializers.py:525 msgid "Please use the password reset function to login" msgstr "Παρακαλούμε χρησιμοποιήστε τη λειτουργία επαναφοράς κωδικού πρόσβασης για να συνδεθείτε" -#: InvenTree/serializers.py:503 +#: InvenTree/serializers.py:531 msgid "Welcome to InvenTree" msgstr "Καλώς ήρθατε στο InvenTree" -#: InvenTree/serializers.py:561 +#: InvenTree/serializers.py:594 msgid "Invalid value" msgstr "Μη έγκυρη τιμή" -#: InvenTree/serializers.py:581 importer/models.py:63 +#: InvenTree/serializers.py:614 importer/models.py:64 msgid "Data File" msgstr "Αρχείο Δεδομένων" -#: InvenTree/serializers.py:582 +#: InvenTree/serializers.py:615 msgid "Select data file for upload" msgstr "Επιλέξτε ένα αρχείο για ανέβασμα" -#: InvenTree/serializers.py:599 -msgid "Unsupported file type" -msgstr "Μη υποστηριζόμενος τύπος αρχείου" +#: InvenTree/serializers.py:632 common/files.py:63 +msgid "Unsupported file format" +msgstr "" -#: InvenTree/serializers.py:605 +#: InvenTree/serializers.py:638 msgid "File is too large" msgstr "Το αρχείο είναι πολύ μεγάλο" -#: InvenTree/serializers.py:626 +#: InvenTree/serializers.py:659 msgid "No columns found in file" msgstr "Δεν βρέθηκαν στήλες στο αρχείο" -#: InvenTree/serializers.py:629 +#: InvenTree/serializers.py:662 msgid "No data rows found in file" msgstr "Δεν βρέθηκαν γραμμές δεδομένων στο αρχείο" -#: InvenTree/serializers.py:742 +#: InvenTree/serializers.py:774 msgid "No data rows provided" msgstr "Δεν παρασχέθηκαν σειρές δεδομένων" -#: InvenTree/serializers.py:745 +#: InvenTree/serializers.py:777 msgid "No data columns supplied" msgstr "Δεν δόθηκαν στήλες δεδομένων" -#: InvenTree/serializers.py:812 +#: InvenTree/serializers.py:843 #, python-brace-format msgid "Missing required column: '{name}'" msgstr "Λείπει απαιτούμενη στήλη: '{name}'" -#: InvenTree/serializers.py:821 +#: InvenTree/serializers.py:852 #, python-brace-format msgid "Duplicate column: '{col}'" msgstr "Διπλή στήλη: '{col}'" -#: InvenTree/serializers.py:861 +#: InvenTree/serializers.py:891 msgid "Remote Image" msgstr "Απομακρυσμένες Εικόνες" -#: InvenTree/serializers.py:862 +#: InvenTree/serializers.py:892 msgid "URL of remote image file" msgstr "Διεύθυνση URL του αρχείου απομακρυσμένης εικόνας" -#: InvenTree/serializers.py:880 +#: InvenTree/serializers.py:910 msgid "Downloading images from remote URL is not enabled" msgstr "Η λήψη εικόνων από απομακρυσμένο URL δεν είναι ενεργοποιημένη" -#: InvenTree/status.py:66 part/serializers.py:1246 -msgid "Background worker check failed" -msgstr "Ο έλεγχος εργασίας στο παρασκήνιο απέτυχε" - -#: InvenTree/status.py:70 -msgid "Email backend not configured" -msgstr "Δεν έχει ρυθμιστεί διεύθυνση ηλεκτρονικού ταχυδρομείου" - -#: InvenTree/status.py:73 -msgid "InvenTree system health checks failed" -msgstr "Ο έλεγχος συστήματος για το Inventree απέτυχε" +#: InvenTree/serializers.py:917 +msgid "Failed to download image from remote URL" +msgstr "" #: InvenTree/templatetags/inventree_extras.py:184 msgid "Unknown database" msgstr "Άγνωστη βάση δεδομένων" -#: InvenTree/validators.py:32 InvenTree/validators.py:34 +#: InvenTree/validators.py:32 msgid "Invalid physical unit" msgstr "Μη έγκυρη φυσική μονάδα" -#: InvenTree/validators.py:40 +#: InvenTree/validators.py:38 msgid "Not a valid currency code" msgstr "Μη έγκυρος κωδικός συναλλάγματος" -#: InvenTree/validators.py:118 InvenTree/validators.py:134 +#: InvenTree/validators.py:115 InvenTree/validators.py:131 msgid "Overage value must not be negative" msgstr "Η μέση τιμή δεν πρέπει να είναι αρνητική" -#: InvenTree/validators.py:136 +#: InvenTree/validators.py:133 msgid "Overage must not exceed 100%" msgstr "Η μέση τιμή δεν πρέπει να υπερβαίνει το 100%" -#: InvenTree/validators.py:142 +#: InvenTree/validators.py:139 msgid "Invalid value for overage" msgstr "Μη έγκυρη τιμή για υπέρβαση" -#: InvenTree/views.py:400 templates/InvenTree/settings/user.html:23 +#: InvenTree/views.py:399 templates/InvenTree/settings/user.html:23 msgid "Edit User Information" msgstr "Τροποποίηση πληροφοριών χρήστη" -#: InvenTree/views.py:412 templates/InvenTree/settings/user.html:20 +#: InvenTree/views.py:411 templates/InvenTree/settings/user.html:20 msgid "Set Password" msgstr "Ορισμός Κωδικού Πρόσβασης" -#: InvenTree/views.py:434 +#: InvenTree/views.py:433 msgid "Password fields must match" msgstr "Τα πεδία κωδικού πρόσβασης πρέπει να ταιριάζουν" -#: InvenTree/views.py:442 +#: InvenTree/views.py:441 msgid "Wrong password provided" msgstr "Δόθηκε λάθος κωδικός πρόσβασης" -#: InvenTree/views.py:650 templates/navbar.html:160 +#: InvenTree/views.py:645 templates/navbar.html:160 msgid "System Information" msgstr "Πληροφορίες συστήματος" -#: InvenTree/views.py:657 templates/navbar.html:171 +#: InvenTree/views.py:652 templates/navbar.html:171 msgid "About InvenTree" msgstr "Σχετικά με το InvenTree" -#: build/api.py:51 part/api.py:156 stock/api.py:343 -msgid "Cascade" -msgstr "" - -#: build/api.py:64 build/models.py:261 -#: build/templates/build/build_base.html:191 +#: build/api.py:54 build/models.py:262 +#: build/templates/build/build_base.html:192 #: build/templates/build/detail.html:87 msgid "Parent Build" msgstr "Γονική Κατασκευή" -#: build/api.py:89 order/api.py:92 templates/js/translated/table_filters.js:101 +#: build/api.py:58 build/api.py:625 order/api.py:396 order/api.py:611 +#: order/api.py:990 order/api.py:1187 +#: templates/js/translated/table_filters.js:372 +msgid "Include Variants" +msgstr "" + +#: build/api.py:93 +msgid "Ancestor Build" +msgstr "" + +#: build/api.py:112 order/api.py:90 +#: templates/js/translated/table_filters.js:101 #: templates/js/translated/table_filters.js:549 #: templates/js/translated/table_filters.js:633 #: templates/js/translated/table_filters.js:674 msgid "Assigned to me" msgstr "" -#: build/api.py:106 build/templates/build/build_base.html:205 +#: build/api.py:129 build/templates/build/build_base.html:206 #: build/templates/build/detail.html:115 #: report/templates/report/inventree_build_order_report.html:152 #: templates/js/translated/table_filters.js:552 msgid "Issued By" msgstr "Εκδόθηκε από" -#: build/api.py:125 +#: build/api.py:148 msgid "Assigned To" msgstr "" -#: build/api.py:301 +#: build/api.py:310 msgid "Build must be cancelled before it can be deleted" msgstr "Η έκδοση πρέπει να ακυρωθεί πριν διαγραφεί" -#: build/api.py:345 build/serializers.py:1288 part/models.py:4265 +#: build/api.py:354 build/serializers.py:1342 part/models.py:4322 #: templates/js/translated/bom.js:997 templates/js/translated/bom.js:1037 -#: templates/js/translated/build.js:2702 +#: templates/js/translated/build.js:2711 #: templates/js/translated/table_filters.js:197 #: templates/js/translated/table_filters.js:586 msgid "Consumable" msgstr "Αναλώσιμο" -#: build/api.py:346 build/serializers.py:1289 part/models.py:4259 +#: build/api.py:355 build/serializers.py:1343 part/models.py:4316 #: part/templates/part/upload_bom.html:58 templates/js/translated/bom.js:1001 -#: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2693 +#: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2702 #: templates/js/translated/table_filters.js:193 #: templates/js/translated/table_filters.js:222 #: templates/js/translated/table_filters.js:590 msgid "Optional" msgstr "Προαιρετικό" -#: build/api.py:347 common/models.py:1489 part/admin.py:91 part/admin.py:428 -#: part/models.py:1154 part/serializers.py:1575 +#: build/api.py:356 common/models.py:1558 part/admin.py:91 part/admin.py:428 +#: part/models.py:1215 part/serializers.py:1633 #: templates/js/translated/bom.js:1639 #: templates/js/translated/table_filters.js:337 #: templates/js/translated/table_filters.js:729 msgid "Assembly" msgstr "" -#: build/api.py:348 templates/js/translated/table_filters.js:415 +#: build/api.py:357 templates/js/translated/table_filters.js:415 #: templates/js/translated/table_filters.js:582 msgid "Tracked" msgstr "Υπό παρακολούθηση" -#: build/api.py:349 build/serializers.py:1290 part/models.py:1172 +#: build/api.py:358 build/serializers.py:1344 part/models.py:1233 #: templates/js/translated/table_filters.js:146 #: templates/js/translated/table_filters.js:779 msgid "Testable" msgstr "" -#: build/api.py:351 part/admin.py:144 templates/js/translated/build.js:1917 -#: templates/js/translated/build.js:2820 -#: templates/js/translated/sales_order.js:1965 +#: build/api.py:360 order/api.py:779 part/admin.py:144 +#: templates/js/translated/build.js:1920 templates/js/translated/build.js:2838 +#: templates/js/translated/sales_order.js:1946 #: templates/js/translated/table_filters.js:574 msgid "Allocated" msgstr "Κατανεμημένο" -#: build/api.py:359 company/models.py:891 company/serializers.py:395 -#: company/templates/company/supplier_part.html:114 +#: build/api.py:368 company/models.py:888 company/serializers.py:399 +#: company/templates/company/supplier_part.html:115 #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:17 -#: templates/js/translated/bom.js:1162 templates/js/translated/build.js:2752 +#: templates/js/translated/bom.js:1162 templates/js/translated/build.js:2770 #: templates/js/translated/index.js:123 -#: templates/js/translated/model_renderers.js:235 +#: templates/js/translated/model_renderers.js:238 #: templates/js/translated/part.js:695 templates/js/translated/part.js:697 #: templates/js/translated/part.js:702 #: templates/js/translated/table_filters.js:347 @@ -816,16 +835,68 @@ msgstr "Κατανεμημένο" msgid "Available" msgstr "Διαθέσιμο" -#: build/models.py:86 build/templates/build/build_base.html:9 -#: build/templates/build/build_base.html:27 +#: build/api.py:640 build/models.py:268 build/serializers.py:1330 +#: build/templates/build/build_base.html:106 +#: build/templates/build/detail.html:29 company/models.py:1043 order/api.py:775 +#: order/api.py:1003 order/models.py:1519 order/models.py:1674 +#: order/models.py:1675 part/api.py:1495 part/api.py:1802 part/models.py:419 +#: part/models.py:3177 part/models.py:3321 part/models.py:3469 +#: part/models.py:3490 part/models.py:3512 part/models.py:3648 +#: part/models.py:3995 part/models.py:4158 part/models.py:4288 +#: part/models.py:4654 part/serializers.py:1245 part/serializers.py:1898 +#: part/templates/part/part_app_base.html:8 +#: part/templates/part/part_pricing.html:12 +#: part/templates/part/upload_bom.html:52 +#: report/templates/report/inventree_bill_of_materials_report.html:110 +#: report/templates/report/inventree_bill_of_materials_report.html:137 +#: report/templates/report/inventree_build_order_report.html:109 +#: report/templates/report/inventree_purchase_order_report.html:27 +#: report/templates/report/inventree_return_order_report.html:24 +#: report/templates/report/inventree_sales_order_report.html:27 +#: report/templates/report/inventree_sales_order_shipment_report.html:28 +#: report/templates/report/inventree_stock_location_report.html:102 +#: stock/serializers.py:112 stock/serializers.py:160 stock/serializers.py:456 +#: stock/serializers.py:947 templates/InvenTree/search.html:82 +#: templates/email/build_order_completed.html:17 +#: templates/email/build_order_required_stock.html:17 +#: templates/email/low_stock_notification.html:15 +#: templates/email/overdue_build_order.html:16 +#: templates/js/translated/barcode.js:577 templates/js/translated/bom.js:632 +#: templates/js/translated/bom.js:769 templates/js/translated/bom.js:905 +#: templates/js/translated/build.js:1005 templates/js/translated/build.js:1488 +#: templates/js/translated/build.js:1919 templates/js/translated/build.js:2337 +#: templates/js/translated/build.js:2514 templates/js/translated/company.js:349 +#: templates/js/translated/company.js:1117 +#: templates/js/translated/company.js:1272 +#: templates/js/translated/company.js:1560 templates/js/translated/index.js:109 +#: templates/js/translated/part.js:1950 templates/js/translated/part.js:2022 +#: templates/js/translated/part.js:2330 templates/js/translated/pricing.js:369 +#: templates/js/translated/purchase_order.js:734 +#: templates/js/translated/purchase_order.js:1350 +#: templates/js/translated/purchase_order.js:1902 +#: templates/js/translated/purchase_order.js:2061 +#: templates/js/translated/return_order.js:538 +#: templates/js/translated/return_order.js:708 +#: templates/js/translated/sales_order.js:1199 +#: templates/js/translated/sales_order.js:1608 +#: templates/js/translated/sales_order.js:1813 +#: templates/js/translated/stock.js:682 templates/js/translated/stock.js:848 +#: templates/js/translated/stock.js:1065 templates/js/translated/stock.js:2083 +#: templates/js/translated/stock.js:2942 templates/js/translated/stock.js:3175 +#: templates/js/translated/stock.js:3320 +msgid "Part" +msgstr "Εξάρτημα" + +#: build/api.py:662 build/models.py:88 build/templates/build/build_base.html:10 +#: build/templates/build/build_base.html:28 #: report/templates/report/inventree_build_order_report.html:105 -#: stock/serializers.py:84 templates/email/build_order_completed.html:16 +#: stock/serializers.py:85 templates/email/build_order_completed.html:16 #: templates/email/overdue_build_order.html:15 -#: templates/js/translated/build.js:1145 templates/js/translated/stock.js:2976 +#: templates/js/translated/build.js:1148 templates/js/translated/stock.js:2977 msgid "Build Order" msgstr "Σειρά Κατασκευής" -#: build/models.py:87 build/templates/build/build_base.html:13 +#: build/models.py:89 build/templates/build/build_base.html:14 #: build/templates/build/index.html:8 build/templates/build/index.html:12 #: order/templates/order/sales_order_detail.html:111 #: order/templates/order/so_sidebar.html:13 @@ -836,268 +907,216 @@ msgstr "Σειρά Κατασκευής" msgid "Build Orders" msgstr "Δημιουργία Παραγγελιών" -#: build/models.py:135 +#: build/models.py:136 msgid "Assembly BOM has not been validated" msgstr "" -#: build/models.py:142 +#: build/models.py:143 msgid "Build order cannot be created for an inactive part" msgstr "" -#: build/models.py:149 +#: build/models.py:150 msgid "Build order cannot be created for an unlocked part" msgstr "" -#: build/models.py:163 +#: build/models.py:164 msgid "Invalid choice for parent build" msgstr "Μη έγκυρη επιλογή για γονική κατασκευή" -#: build/models.py:174 order/models.py:239 +#: build/models.py:175 order/models.py:236 msgid "Responsible user or group must be specified" msgstr "" -#: build/models.py:180 +#: build/models.py:181 msgid "Build order part cannot be changed" msgstr "Εξάρτημα από εντολή κατασκευής δεν μπορεί να αλλάξει" -#: build/models.py:241 +#: build/models.py:242 msgid "Build Order Reference" msgstr "Αναφορά Παραγγελίας Κατασκευής" -#: build/models.py:242 build/serializers.py:1287 order/models.py:467 -#: order/models.py:978 order/models.py:1373 order/models.py:2135 -#: part/admin.py:414 part/models.py:4280 part/templates/part/upload_bom.html:54 +#: build/models.py:243 build/serializers.py:1341 order/models.py:479 +#: order/models.py:1005 order/models.py:1390 order/models.py:2174 +#: part/admin.py:414 part/models.py:4337 part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_bill_of_materials_report.html:139 #: report/templates/report/inventree_purchase_order_report.html:28 #: report/templates/report/inventree_return_order_report.html:26 #: report/templates/report/inventree_sales_order_report.html:28 #: templates/js/translated/bom.js:770 templates/js/translated/bom.js:973 -#: templates/js/translated/build.js:1011 templates/js/translated/build.js:2685 +#: templates/js/translated/build.js:1014 templates/js/translated/build.js:2694 #: templates/js/translated/order.js:316 templates/js/translated/pricing.js:386 -#: templates/js/translated/purchase_order.js:2135 +#: templates/js/translated/purchase_order.js:2119 #: templates/js/translated/return_order.js:727 -#: templates/js/translated/sales_order.js:1854 +#: templates/js/translated/sales_order.js:1835 msgid "Reference" msgstr "Αναφορά" -#: build/models.py:253 +#: build/models.py:254 msgid "Brief description of the build (optional)" msgstr "Σύντομη περιγραφή της κατασκευής (προαιρετικό)" -#: build/models.py:262 +#: build/models.py:263 msgid "BuildOrder to which this build is allocated" msgstr "BuildOrder στην οποία έχει δοθεί αυτή η κατασκευή" -#: build/models.py:267 build/serializers.py:1278 -#: build/templates/build/build_base.html:105 -#: build/templates/build/detail.html:29 company/models.py:1046 order/api.py:767 -#: order/models.py:1503 order/models.py:1658 order/models.py:1659 -#: part/api.py:1509 part/api.py:1813 part/models.py:424 part/models.py:3126 -#: part/models.py:3270 part/models.py:3418 part/models.py:3439 -#: part/models.py:3461 part/models.py:3597 part/models.py:3937 -#: part/models.py:4100 part/models.py:4231 part/models.py:4592 -#: part/serializers.py:1192 part/serializers.py:1836 -#: part/templates/part/part_app_base.html:8 -#: part/templates/part/part_pricing.html:12 -#: part/templates/part/upload_bom.html:52 -#: report/templates/report/inventree_bill_of_materials_report.html:110 -#: report/templates/report/inventree_bill_of_materials_report.html:137 -#: report/templates/report/inventree_build_order_report.html:109 -#: report/templates/report/inventree_purchase_order_report.html:27 -#: report/templates/report/inventree_return_order_report.html:24 -#: report/templates/report/inventree_sales_order_report.html:27 -#: report/templates/report/inventree_stock_location_report.html:102 -#: stock/serializers.py:111 stock/serializers.py:159 stock/serializers.py:446 -#: stock/serializers.py:916 templates/InvenTree/search.html:82 -#: templates/email/build_order_completed.html:17 -#: templates/email/build_order_required_stock.html:17 -#: templates/email/low_stock_notification.html:15 -#: templates/email/overdue_build_order.html:16 -#: templates/js/translated/barcode.js:577 templates/js/translated/bom.js:632 -#: templates/js/translated/bom.js:769 templates/js/translated/bom.js:905 -#: templates/js/translated/build.js:1002 templates/js/translated/build.js:1485 -#: templates/js/translated/build.js:1916 templates/js/translated/build.js:2334 -#: templates/js/translated/build.js:2507 templates/js/translated/company.js:348 -#: templates/js/translated/company.js:1116 -#: templates/js/translated/company.js:1271 -#: templates/js/translated/company.js:1559 templates/js/translated/index.js:109 -#: templates/js/translated/part.js:1950 templates/js/translated/part.js:2022 -#: templates/js/translated/part.js:2330 templates/js/translated/pricing.js:369 -#: templates/js/translated/purchase_order.js:751 -#: templates/js/translated/purchase_order.js:1367 -#: templates/js/translated/purchase_order.js:1918 -#: templates/js/translated/purchase_order.js:2077 -#: templates/js/translated/return_order.js:538 -#: templates/js/translated/return_order.js:708 -#: templates/js/translated/sales_order.js:300 -#: templates/js/translated/sales_order.js:1233 -#: templates/js/translated/sales_order.js:1634 -#: templates/js/translated/sales_order.js:1832 -#: templates/js/translated/stock.js:682 templates/js/translated/stock.js:848 -#: templates/js/translated/stock.js:1065 templates/js/translated/stock.js:2082 -#: templates/js/translated/stock.js:2941 templates/js/translated/stock.js:3174 -#: templates/js/translated/stock.js:3319 -msgid "Part" -msgstr "Εξάρτημα" - -#: build/models.py:275 +#: build/models.py:274 msgid "Select part to build" msgstr "Επιλέξτε τμήμα για κατασκευή" -#: build/models.py:280 +#: build/models.py:279 msgid "Sales Order Reference" msgstr "Κωδικός Παραγγελίας Πωλήσεων" -#: build/models.py:284 +#: build/models.py:283 msgid "SalesOrder to which this build is allocated" msgstr "SalesOrder στην οποία έχει διατεθεί αυτό το build" -#: build/models.py:289 build/serializers.py:1048 -#: templates/js/translated/build.js:1904 -#: templates/js/translated/sales_order.js:1221 +#: build/models.py:288 build/serializers.py:1092 +#: templates/js/translated/build.js:1907 +#: templates/js/translated/sales_order.js:1187 msgid "Source Location" msgstr "Τοποθεσία Προέλευσης" -#: build/models.py:293 +#: build/models.py:292 msgid "Select location to take stock from for this build (leave blank to take from any stock location)" msgstr "Επιλέξτε τοποθεσία από την οποία θα γίνει απόθεμα, για αυτή την κατασκευή (αφήστε κενό για να πάρετε από οποιαδήποτε θέση αποθήκευσης)" -#: build/models.py:298 +#: build/models.py:297 msgid "Destination Location" msgstr "Τοποθεσία Προορισμού" -#: build/models.py:302 +#: build/models.py:301 msgid "Select location where the completed items will be stored" msgstr "Επιλέξτε την τοποθεσία όπου θα αποθηκευτούν τα ολοκληρωμένα στοιχεία" -#: build/models.py:306 +#: build/models.py:305 msgid "Build Quantity" msgstr "Ποσότητα Κατασκευής" -#: build/models.py:309 +#: build/models.py:308 msgid "Number of stock items to build" msgstr "Αριθμός αντικειμένων για κατασκευή" -#: build/models.py:313 +#: build/models.py:312 msgid "Completed items" msgstr "Ολοκληρωμένα αντικείμενα" -#: build/models.py:315 +#: build/models.py:314 msgid "Number of stock items which have been completed" msgstr "Αριθμός αντικειμένων αποθέματος που έχουν ολοκληρωθεί" -#: build/models.py:319 +#: build/models.py:318 msgid "Build Status" msgstr "Κατάσταση Κατασκευής" -#: build/models.py:323 +#: build/models.py:322 msgid "Build status code" msgstr "Κωδικός κατάστασης κατασκευής" -#: build/models.py:332 build/serializers.py:302 build/serializers.py:1198 -#: order/serializers.py:670 stock/models.py:859 stock/serializers.py:76 -#: stock/serializers.py:1562 templates/js/translated/purchase_order.js:1129 +#: build/models.py:331 build/serializers.py:349 build/serializers.py:1243 +#: order/serializers.py:755 stock/models.py:936 stock/serializers.py:77 +#: stock/serializers.py:1593 templates/js/translated/purchase_order.js:1112 #: templates/js/translated/stock.js:1199 msgid "Batch Code" msgstr "Κωδικός Παρτίδας" -#: build/models.py:336 build/serializers.py:303 +#: build/models.py:335 build/serializers.py:350 msgid "Batch code for this build output" msgstr "Κωδικός παρτίδας για αυτήν την κατασκευή" -#: build/models.py:339 order/models.py:315 order/serializers.py:126 -#: part/models.py:1229 part/templates/part/part_base.html:319 +#: build/models.py:338 order/models.py:322 order/serializers.py:157 +#: part/models.py:1290 part/templates/part/part_base.html:327 #: templates/js/translated/return_order.js:338 -#: templates/js/translated/sales_order.js:863 +#: templates/js/translated/sales_order.js:822 msgid "Creation Date" msgstr "Ημερομηνία Δημιουργίας" -#: build/models.py:343 +#: build/models.py:342 msgid "Target completion date" msgstr "Ημερομηνία ολοκλήρωσης στόχου" -#: build/models.py:344 +#: build/models.py:343 msgid "Target date for build completion. Build will be overdue after this date." msgstr "Ημερομηνία ολοκλήρωσης της κατασκευής. Η κατασκευή θα καθυστερήσει μετά από αυτή την ημερομηνία." -#: build/models.py:347 order/models.py:526 order/models.py:2180 -#: templates/js/translated/build.js:2419 +#: build/models.py:346 order/models.py:538 order/models.py:2219 +#: templates/js/translated/build.js:2422 msgid "Completion Date" msgstr "Ημερομηνία ολοκλήρωσης" -#: build/models.py:353 +#: build/models.py:352 msgid "completed by" msgstr "ολοκληρώθηκε από" -#: build/models.py:361 templates/js/translated/build.js:2379 +#: build/models.py:360 templates/js/translated/build.js:2382 msgid "Issued by" msgstr "Εκδόθηκε από" -#: build/models.py:362 +#: build/models.py:361 msgid "User who issued this build order" msgstr "Χρήστης που εξέδωσε αυτήν την παραγγελία κατασκευής" -#: build/models.py:370 build/templates/build/build_base.html:212 -#: build/templates/build/detail.html:122 common/models.py:165 order/api.py:142 -#: order/models.py:333 order/templates/order/order_base.html:222 -#: order/templates/order/return_order_base.html:191 -#: order/templates/order/sales_order_base.html:235 part/models.py:1246 -#: part/templates/part/part_base.html:399 +#: build/models.py:369 build/templates/build/build_base.html:213 +#: build/templates/build/detail.html:122 common/models.py:168 order/api.py:140 +#: order/models.py:340 order/templates/order/order_base.html:231 +#: order/templates/order/return_order_base.html:192 +#: order/templates/order/sales_order_base.html:236 part/models.py:1307 +#: part/templates/part/part_base.html:407 #: report/templates/report/inventree_build_order_report.html:158 #: templates/InvenTree/settings/settings_staff_js.html:150 -#: templates/js/translated/build.js:2391 -#: templates/js/translated/purchase_order.js:1833 +#: templates/js/translated/build.js:2394 +#: templates/js/translated/purchase_order.js:1817 #: templates/js/translated/return_order.js:358 #: templates/js/translated/table_filters.js:551 msgid "Responsible" msgstr "Υπεύθυνος" -#: build/models.py:371 +#: build/models.py:370 msgid "User or group responsible for this build order" msgstr "Χρήστης ή ομάδα υπεύθυνη για αυτή την εντολή κατασκευής" -#: build/models.py:376 build/templates/build/detail.html:108 +#: build/models.py:375 build/templates/build/detail.html:108 #: company/templates/company/manufacturer_part.html:107 -#: company/templates/company/supplier_part.html:194 -#: order/templates/order/order_base.html:172 -#: order/templates/order/return_order_base.html:148 -#: order/templates/order/sales_order_base.html:187 -#: part/templates/part/part_base.html:392 stock/models.py:855 -#: stock/templates/stock/item_base.html:200 -#: templates/js/translated/company.js:1019 +#: company/templates/company/supplier_part.html:195 +#: order/templates/order/order_base.html:181 +#: order/templates/order/return_order_base.html:149 +#: order/templates/order/sales_order_base.html:188 +#: part/templates/part/part_base.html:400 stock/models.py:932 +#: stock/templates/stock/item_base.html:197 +#: templates/js/translated/company.js:1020 msgid "External Link" msgstr "Εξωτερικοί σύνδεσμοι" -#: build/models.py:377 common/models.py:3273 part/models.py:1058 -#: stock/models.py:855 +#: build/models.py:376 common/models.py:3334 part/models.py:1119 +#: stock/models.py:932 msgid "Link to external URL" msgstr "Σύνδεσμος προς εξωτερική διεύθυνση URL" -#: build/models.py:381 +#: build/models.py:380 msgid "Build Priority" msgstr "Προτεραιότητα Κατασκευής" -#: build/models.py:384 +#: build/models.py:383 msgid "Priority of this build order" msgstr "Προτεραιότητα αυτής της εντολής κατασκευής" -#: build/models.py:391 common/models.py:135 common/models.py:149 -#: order/admin.py:18 order/api.py:128 order/models.py:297 +#: build/models.py:390 common/models.py:138 common/models.py:152 +#: order/admin.py:18 order/api.py:126 order/models.py:304 #: templates/InvenTree/settings/settings_staff_js.html:146 -#: templates/js/translated/build.js:2316 -#: templates/js/translated/purchase_order.js:1780 +#: templates/js/translated/build.js:2319 +#: templates/js/translated/purchase_order.js:1764 #: templates/js/translated/return_order.js:317 -#: templates/js/translated/sales_order.js:842 +#: templates/js/translated/sales_order.js:801 #: templates/js/translated/table_filters.js:47 #: templates/project_code_data.html:6 msgid "Project Code" msgstr "Κωδικός Έργου" -#: build/models.py:392 +#: build/models.py:391 msgid "Project code for this build order" msgstr "Κωδικός έργου για αυτήν την εντολή κατασκευής" -#: build/models.py:651 build/models.py:778 +#: build/models.py:651 build/models.py:779 msgid "Failed to offload task to complete build allocations" msgstr "" @@ -1110,610 +1129,619 @@ msgstr "Η παραγγελία κατασκευής {build} έχει ολοκλ msgid "A build order has been completed" msgstr "Η παραγγελία κατασκευής έχει ολοκληρωθεί" -#: build/models.py:967 build/models.py:1055 +#: build/models.py:858 build/serializers.py:393 +msgid "Serial numbers must be provided for trackable parts" +msgstr "" + +#: build/models.py:969 build/models.py:1058 msgid "No build output specified" msgstr "Δεν καθορίστηκε έξοδος κατασκευής" -#: build/models.py:970 +#: build/models.py:972 msgid "Build output is already completed" msgstr "Η παραγγελία κατασκευής έχει ολοκληρωθεί" -#: build/models.py:973 +#: build/models.py:975 msgid "Build output does not match Build Order" msgstr "Η έξοδος κατασκευής δεν ταιριάζει με την παραγγελία κατασκευής" -#: build/models.py:1059 build/serializers.py:235 build/serializers.py:284 -#: build/serializers.py:915 order/models.py:564 order/serializers.py:499 -#: order/serializers.py:665 part/serializers.py:1569 part/serializers.py:1999 -#: stock/models.py:700 stock/models.py:1520 stock/serializers.py:669 +#: build/models.py:1062 build/serializers.py:282 build/serializers.py:331 +#: build/serializers.py:959 order/models.py:586 order/serializers.py:584 +#: order/serializers.py:750 part/serializers.py:1627 part/serializers.py:2060 +#: stock/models.py:777 stock/models.py:1609 stock/serializers.py:696 msgid "Quantity must be greater than zero" msgstr "Η ποσότητα πρέπει να είναι μεγαλύτερη από 0" -#: build/models.py:1064 build/serializers.py:240 +#: build/models.py:1067 build/serializers.py:287 msgid "Quantity cannot be greater than the output quantity" msgstr "Η ποσότητα δεν μπορεί να είναι μεγαλύτερη από την παραγόμενη ποσότητα" -#: build/models.py:1124 build/serializers.py:563 +#: build/models.py:1127 build/serializers.py:607 #, python-brace-format msgid "Build output {serial} has not passed all required tests" msgstr "Το προϊόν κατασκευής {serial} δεν έχει περάσει όλες τις απαιτούμενες δοκιμές" -#: build/models.py:1465 +#: build/models.py:1482 msgid "Build Order Line Item" msgstr "" -#: build/models.py:1490 +#: build/models.py:1507 msgid "Build object" msgstr "Αντικείμενο κατασκευής" -#: build/models.py:1504 build/models.py:1760 build/serializers.py:222 -#: build/serializers.py:269 build/serializers.py:1295 -#: build/templates/build/build_base.html:110 -#: build/templates/build/detail.html:34 common/models.py:2579 -#: order/models.py:1356 order/models.py:2041 order/serializers.py:1460 +#: build/models.py:1521 build/models.py:1787 build/serializers.py:269 +#: build/serializers.py:316 build/serializers.py:1349 +#: build/templates/build/build_base.html:111 +#: build/templates/build/detail.html:34 common/models.py:2643 +#: order/models.py:1373 order/models.py:2074 order/serializers.py:1586 #: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:413 -#: part/forms.py:48 part/models.py:3284 part/models.py:4253 -#: part/templates/part/part_pricing.html:16 +#: part/forms.py:48 part/models.py:3335 part/models.py:4310 +#: part/serializers.py:265 part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_bill_of_materials_report.html:138 #: report/templates/report/inventree_build_order_report.html:113 #: report/templates/report/inventree_purchase_order_report.html:29 #: report/templates/report/inventree_sales_order_report.html:29 +#: report/templates/report/inventree_sales_order_shipment_report.html:47 +#: report/templates/report/inventree_sales_order_shipment_report.html:49 #: report/templates/report/inventree_stock_location_report.html:104 #: report/templates/report/inventree_test_report.html:90 -#: report/templates/report/inventree_test_report.html:169 stock/admin.py:159 -#: stock/serializers.py:127 stock/serializers.py:167 stock/serializers.py:660 -#: stock/templates/stock/item_base.html:287 -#: stock/templates/stock/item_base.html:295 -#: stock/templates/stock/item_base.html:342 +#: report/templates/report/inventree_test_report.html:169 stock/admin.py:160 +#: stock/serializers.py:128 stock/serializers.py:168 stock/serializers.py:687 +#: stock/templates/stock/item_base.html:284 +#: stock/templates/stock/item_base.html:292 +#: stock/templates/stock/item_base.html:339 #: templates/email/build_order_completed.html:18 #: templates/js/translated/barcode.js:579 templates/js/translated/bom.js:771 -#: templates/js/translated/bom.js:981 templates/js/translated/build.js:522 -#: templates/js/translated/build.js:737 templates/js/translated/build.js:1542 -#: templates/js/translated/build.js:1919 templates/js/translated/build.js:2529 -#: templates/js/translated/company.js:1818 -#: templates/js/translated/model_renderers.js:237 +#: templates/js/translated/bom.js:981 templates/js/translated/build.js:525 +#: templates/js/translated/build.js:740 templates/js/translated/build.js:1545 +#: templates/js/translated/build.js:1922 templates/js/translated/build.js:2536 +#: templates/js/translated/company.js:1819 +#: templates/js/translated/model_renderers.js:240 #: templates/js/translated/order.js:329 templates/js/translated/part.js:968 -#: templates/js/translated/part.js:1818 templates/js/translated/part.js:3360 +#: templates/js/translated/part.js:1818 templates/js/translated/part.js:3376 #: templates/js/translated/pricing.js:381 #: templates/js/translated/pricing.js:474 #: templates/js/translated/pricing.js:522 #: templates/js/translated/pricing.js:616 -#: templates/js/translated/purchase_order.js:754 -#: templates/js/translated/purchase_order.js:1922 -#: templates/js/translated/purchase_order.js:2141 -#: templates/js/translated/sales_order.js:317 -#: templates/js/translated/sales_order.js:1235 -#: templates/js/translated/sales_order.js:1554 -#: templates/js/translated/sales_order.js:1644 -#: templates/js/translated/sales_order.js:1734 -#: templates/js/translated/sales_order.js:1860 +#: templates/js/translated/purchase_order.js:737 +#: templates/js/translated/purchase_order.js:1906 +#: templates/js/translated/purchase_order.js:2125 +#: templates/js/translated/sales_order.js:1201 +#: templates/js/translated/sales_order.js:1520 +#: templates/js/translated/sales_order.js:1625 +#: templates/js/translated/sales_order.js:1715 +#: templates/js/translated/sales_order.js:1841 #: templates/js/translated/stock.js:570 templates/js/translated/stock.js:708 -#: templates/js/translated/stock.js:879 templates/js/translated/stock.js:3105 -#: templates/js/translated/stock.js:3188 +#: templates/js/translated/stock.js:879 templates/js/translated/stock.js:3106 +#: templates/js/translated/stock.js:3189 msgid "Quantity" msgstr "Ποσότητα" -#: build/models.py:1505 +#: build/models.py:1522 msgid "Required quantity for build order" msgstr "Απαιτούμενη ποσότητα για την εντολή κατασκευής" -#: build/models.py:1585 +#: build/models.py:1602 msgid "Build item must specify a build output, as master part is marked as trackable" msgstr "Το στοιχείο κατασκευής πρέπει να ορίζει μια έξοδο κατασκευής, καθώς το κύριο τμήμα επισημαίνεται ως ανιχνεύσιμο" -#: build/models.py:1594 +#: build/models.py:1611 #, python-brace-format msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgstr "Η καταχωρημένη ποσότητα ({q}) δεν πρέπει να υπερβαίνει τη διαθέσιμη ποσότητα αποθέματος ({a})" -#: build/models.py:1604 order/models.py:1992 +#: build/models.py:1628 order/models.py:2025 msgid "Stock item is over-allocated" msgstr "Στοιχείο αποθέματος είναι υπερ-κατανεμημένο" -#: build/models.py:1610 order/models.py:1995 +#: build/models.py:1634 order/models.py:2028 msgid "Allocation quantity must be greater than zero" msgstr "Η ποσότητα πρέπει να είναι μεγαλύτερη από 0" -#: build/models.py:1616 +#: build/models.py:1640 msgid "Quantity must be 1 for serialized stock" msgstr "Η ποσότητα πρέπει να είναι 1 για σειριακό απόθεμα" -#: build/models.py:1675 +#: build/models.py:1699 msgid "Selected stock item does not match BOM line" msgstr "Το επιλεγμένο στοιχείο αποθέματος δεν ταιριάζει με τη γραμμή ΤΥ" -#: build/models.py:1747 build/serializers.py:895 order/serializers.py:1297 -#: order/serializers.py:1318 stock/models.py:376 stock/serializers.py:93 -#: stock/serializers.py:763 stock/serializers.py:1281 stock/serializers.py:1393 -#: stock/templates/stock/item_base.html:10 -#: stock/templates/stock/item_base.html:23 -#: stock/templates/stock/item_base.html:194 -#: templates/js/translated/build.js:1918 -#: templates/js/translated/sales_order.js:301 -#: templates/js/translated/sales_order.js:1234 -#: templates/js/translated/sales_order.js:1535 -#: templates/js/translated/sales_order.js:1540 -#: templates/js/translated/sales_order.js:1641 -#: templates/js/translated/sales_order.js:1728 +#: build/models.py:1774 build/serializers.py:939 order/serializers.py:1423 +#: order/serializers.py:1444 +#: report/templates/report/inventree_sales_order_shipment_report.html:29 +#: stock/models.py:382 stock/serializers.py:94 stock/serializers.py:794 +#: stock/serializers.py:1312 stock/serializers.py:1424 +#: stock/templates/stock/item_base.html:11 +#: stock/templates/stock/item_base.html:24 +#: stock/templates/stock/item_base.html:191 +#: templates/js/translated/build.js:1921 +#: templates/js/translated/sales_order.js:1200 +#: templates/js/translated/sales_order.js:1501 +#: templates/js/translated/sales_order.js:1506 +#: templates/js/translated/sales_order.js:1622 +#: templates/js/translated/sales_order.js:1709 #: templates/js/translated/stock.js:683 templates/js/translated/stock.js:849 -#: templates/js/translated/stock.js:3061 +#: templates/js/translated/stock.js:3062 msgid "Stock Item" msgstr "Στοιχείο Αποθέματος" -#: build/models.py:1748 +#: build/models.py:1775 msgid "Source stock item" msgstr "Στοιχείο πηγαίου αποθέματος" -#: build/models.py:1761 +#: build/models.py:1788 msgid "Stock quantity to allocate to build" msgstr "Ποσότητα αποθέματος για διάθεση για κατασκευή" -#: build/models.py:1769 +#: build/models.py:1796 msgid "Install into" msgstr "Εγκατάσταση σε" -#: build/models.py:1770 +#: build/models.py:1797 msgid "Destination stock item" msgstr "Αποθήκη προορισμού" -#: build/serializers.py:91 +#: build/serializers.py:108 msgid "Build Level" msgstr "" -#: build/serializers.py:99 build/serializers.py:1190 build/serializers.py:1279 -#: part/admin.py:41 part/admin.py:408 part/models.py:4102 part/stocktake.py:219 -#: stock/admin.py:156 +#: build/serializers.py:116 build/serializers.py:1235 build/serializers.py:1331 +#: part/admin.py:41 part/admin.py:408 part/models.py:4160 part/stocktake.py:219 +#: stock/admin.py:157 msgid "Part Name" msgstr "" -#: build/serializers.py:111 +#: build/serializers.py:128 msgid "Project Code Label" msgstr "" -#: build/serializers.py:172 build/serializers.py:924 -#: templates/js/translated/build.js:1042 templates/js/translated/build.js:1495 +#: build/serializers.py:134 +msgid "Create Child Builds" +msgstr "" + +#: build/serializers.py:135 +msgid "Automatically generate child build orders" +msgstr "" + +#: build/serializers.py:219 build/serializers.py:968 +#: templates/js/translated/build.js:1045 templates/js/translated/build.js:1498 msgid "Build Output" msgstr "Κατασκευή Εξόδου" -#: build/serializers.py:184 +#: build/serializers.py:231 msgid "Build output does not match the parent build" msgstr "Η έξοδος κατασκευής δεν ταιριάζει με την παραγγελία κατασκευής" -#: build/serializers.py:188 +#: build/serializers.py:235 msgid "Output part does not match BuildOrder part" msgstr "Το εξερχόμενο μέρος δεν ταιριάζει με το μέρος BuildOrder" -#: build/serializers.py:192 +#: build/serializers.py:239 msgid "This build output has already been completed" msgstr "Η παραγγελία κατασκευής έχει ολοκληρωθεί" -#: build/serializers.py:203 +#: build/serializers.py:250 msgid "This build output is not fully allocated" msgstr "Αυτή η έξοδος κατασκευής δεν έχει εκχωρηθεί πλήρως" -#: build/serializers.py:223 build/serializers.py:270 +#: build/serializers.py:270 build/serializers.py:317 msgid "Enter quantity for build output" msgstr "Εισάγετε ποσότητα για την έξοδο κατασκευής" -#: build/serializers.py:291 +#: build/serializers.py:338 msgid "Integer quantity required for trackable parts" msgstr "Ακέραιη ποσότητα που απαιτείται για ανιχνεύσιμα μέρη" -#: build/serializers.py:294 +#: build/serializers.py:341 msgid "Integer quantity required, as the bill of materials contains trackable parts" msgstr "Ακέραιη ποσότητα που απαιτείται, καθώς ο λογαριασμός των υλικών περιέχει ανιχνεύσιμα μέρη" -#: build/serializers.py:309 order/serializers.py:678 order/serializers.py:1464 -#: stock/serializers.py:680 templates/js/translated/purchase_order.js:1154 +#: build/serializers.py:356 order/serializers.py:763 order/serializers.py:1590 +#: stock/serializers.py:707 templates/js/translated/purchase_order.js:1137 #: templates/js/translated/stock.js:373 templates/js/translated/stock.js:571 msgid "Serial Numbers" msgstr "Σειριακοί αριθμοί" -#: build/serializers.py:310 +#: build/serializers.py:357 msgid "Enter serial numbers for build outputs" msgstr "Εισάγετε ποσότητα για την έξοδο κατασκευής" -#: build/serializers.py:315 build/serializers.py:456 build/serializers.py:528 -#: order/serializers.py:654 order/serializers.py:778 order/serializers.py:1781 -#: part/serializers.py:1212 stock/serializers.py:102 stock/serializers.py:691 -#: stock/serializers.py:851 stock/serializers.py:977 stock/serializers.py:1425 -#: stock/serializers.py:1681 stock/templates/stock/item_base.html:394 +#: build/serializers.py:362 build/serializers.py:500 build/serializers.py:572 +#: order/serializers.py:739 order/serializers.py:880 order/serializers.py:1933 +#: part/serializers.py:1265 stock/serializers.py:103 stock/serializers.py:718 +#: stock/serializers.py:882 stock/serializers.py:1008 stock/serializers.py:1456 +#: stock/serializers.py:1712 stock/templates/stock/item_base.html:391 #: templates/js/translated/barcode.js:578 -#: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1032 -#: templates/js/translated/build.js:1174 templates/js/translated/build.js:2544 -#: templates/js/translated/purchase_order.js:1210 -#: templates/js/translated/purchase_order.js:1320 -#: templates/js/translated/sales_order.js:1547 -#: templates/js/translated/sales_order.js:1655 -#: templates/js/translated/sales_order.js:1663 -#: templates/js/translated/sales_order.js:1742 +#: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1035 +#: templates/js/translated/build.js:1177 templates/js/translated/build.js:2551 +#: templates/js/translated/purchase_order.js:1193 +#: templates/js/translated/purchase_order.js:1303 +#: templates/js/translated/sales_order.js:1513 +#: templates/js/translated/sales_order.js:1636 +#: templates/js/translated/sales_order.js:1644 +#: templates/js/translated/sales_order.js:1723 #: templates/js/translated/stock.js:684 templates/js/translated/stock.js:850 -#: templates/js/translated/stock.js:1067 templates/js/translated/stock.js:2286 -#: templates/js/translated/stock.js:2955 +#: templates/js/translated/stock.js:1067 templates/js/translated/stock.js:2287 +#: templates/js/translated/stock.js:2956 msgid "Location" msgstr "Τοποθεσία" -#: build/serializers.py:316 +#: build/serializers.py:363 msgid "Stock location for build output" msgstr "" -#: build/serializers.py:330 +#: build/serializers.py:377 msgid "Auto Allocate Serial Numbers" msgstr "Αυτόματη Κατανομή Σειριακών Αριθμών" -#: build/serializers.py:331 +#: build/serializers.py:378 msgid "Automatically allocate required items with matching serial numbers" msgstr "Αυτόματη κατανομή των απαιτούμενων στοιχείων με τους αντίστοιχους σειριακούς αριθμούς" -#: build/serializers.py:346 -msgid "Serial numbers must be provided for trackable parts" -msgstr "" - -#: build/serializers.py:371 stock/api.py:1031 +#: build/serializers.py:415 order/serializers.py:858 stock/api.py:1017 +#: stock/models.py:1632 msgid "The following serial numbers already exist or are invalid" msgstr "Οι παρακάτω σειριακοί αριθμοί υπάρχουν ήδη ή δεν είναι έγκυροι" -#: build/serializers.py:418 build/serializers.py:480 build/serializers.py:569 +#: build/serializers.py:462 build/serializers.py:524 build/serializers.py:613 msgid "A list of build outputs must be provided" msgstr "Πρέπει να παρέχεται μια λίστα με τα αποτελέσματα κατασκευής" -#: build/serializers.py:457 +#: build/serializers.py:501 msgid "Stock location for scrapped outputs" msgstr "Θέση αποθέματος για απορριφθείσες παραγωγές" -#: build/serializers.py:463 +#: build/serializers.py:507 msgid "Discard Allocations" msgstr "Απόρριψη Κατανομών" -#: build/serializers.py:464 +#: build/serializers.py:508 msgid "Discard any stock allocations for scrapped outputs" msgstr "Απορρίψτε τυχόν κατανομές αποθέματος για παραγωγές που έχουν απορριφθεί" -#: build/serializers.py:469 +#: build/serializers.py:513 msgid "Reason for scrapping build output(s)" msgstr "Αιτία απόρριψης προϊόντων κατασκευής" -#: build/serializers.py:529 +#: build/serializers.py:573 msgid "Location for completed build outputs" msgstr "Τοποθεσία για ολοκληρωμένα προϊόντα κατασκευής" -#: build/serializers.py:535 build/templates/build/build_base.html:159 -#: build/templates/build/detail.html:62 order/models.py:476 -#: order/models.py:1002 order/models.py:2159 order/serializers.py:686 -#: stock/admin.py:164 stock/serializers.py:1028 stock/serializers.py:1569 -#: stock/templates/stock/item_base.html:427 -#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2363 -#: templates/js/translated/purchase_order.js:1371 -#: templates/js/translated/purchase_order.js:1792 +#: build/serializers.py:579 build/templates/build/build_base.html:160 +#: build/templates/build/detail.html:62 order/models.py:488 +#: order/models.py:1029 order/models.py:2198 order/serializers.py:771 +#: stock/admin.py:165 stock/serializers.py:581 stock/serializers.py:1059 +#: stock/serializers.py:1600 stock/templates/stock/item_base.html:424 +#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2366 +#: templates/js/translated/purchase_order.js:1354 +#: templates/js/translated/purchase_order.js:1776 #: templates/js/translated/return_order.js:330 -#: templates/js/translated/sales_order.js:855 -#: templates/js/translated/stock.js:2261 templates/js/translated/stock.js:3079 -#: templates/js/translated/stock.js:3204 +#: templates/js/translated/sales_order.js:814 +#: templates/js/translated/stock.js:2262 templates/js/translated/stock.js:3080 +#: templates/js/translated/stock.js:3205 msgid "Status" msgstr "Κατάσταση" -#: build/serializers.py:541 +#: build/serializers.py:585 msgid "Accept Incomplete Allocation" msgstr "Αποδοχή Ελλιπούς Δέσμευσης" -#: build/serializers.py:542 +#: build/serializers.py:586 msgid "Complete outputs if stock has not been fully allocated" msgstr "Ολοκλήρωσε τα προϊόντα εάν το απόθεμα δεν έχει δεσμευτεί πλήρως" -#: build/serializers.py:654 +#: build/serializers.py:698 msgid "Consume Allocated Stock" msgstr "" -#: build/serializers.py:655 +#: build/serializers.py:699 msgid "Consume any stock which has already been allocated to this build" msgstr "" -#: build/serializers.py:661 +#: build/serializers.py:705 msgid "Remove Incomplete Outputs" msgstr "Αφαίρεση Ατελείωτων Προϊόντων" -#: build/serializers.py:662 +#: build/serializers.py:706 msgid "Delete any build outputs which have not been completed" msgstr "Διαγράψτε τυχόν προϊόντα κατασκευής που δεν έχουν ολοκληρωθεί" -#: build/serializers.py:689 +#: build/serializers.py:733 msgid "Not permitted" msgstr "Δεν επιτρέπεται" -#: build/serializers.py:690 +#: build/serializers.py:734 msgid "Accept as consumed by this build order" msgstr "Αποδοχή ως κατανάλωση για αυτή την παραγγελία κατασκευής" -#: build/serializers.py:691 +#: build/serializers.py:735 msgid "Deallocate before completing this build order" msgstr "Αποδέσμευση πριν από την ολοκλήρωση αυτής της παραγγελίας κατασκευής" -#: build/serializers.py:721 +#: build/serializers.py:765 msgid "Overallocated Stock" msgstr "Υπερ-δεσμευμένο Απόθεμα" -#: build/serializers.py:723 +#: build/serializers.py:767 msgid "How do you want to handle extra stock items assigned to the build order" msgstr "Πώς θέλετε να χειριστείτε το επιπλέον απόθεμα που έχει δεσμευτεί στην παραγγελία κατασκευής" -#: build/serializers.py:733 +#: build/serializers.py:777 msgid "Some stock items have been overallocated" msgstr "Μερικά στοιχεία αποθέματος έχουν υπερ-δεσμευτεί" -#: build/serializers.py:738 +#: build/serializers.py:782 msgid "Accept Unallocated" msgstr "Αποδοχή Μη Δεσμευμένων" -#: build/serializers.py:739 +#: build/serializers.py:783 msgid "Accept that stock items have not been fully allocated to this build order" msgstr "Αποδεχτείτε ότι αντικείμενα αποθέματος δεν έχουν δεσμευτεί πλήρως σε αυτή την παραγγελία κατασκευής" -#: build/serializers.py:749 templates/js/translated/build.js:316 +#: build/serializers.py:793 templates/js/translated/build.js:319 msgid "Required stock has not been fully allocated" msgstr "Το απαιτούμενο απόθεμα δεν έχει δεσμευτεί πλήρως" -#: build/serializers.py:754 order/serializers.py:345 order/serializers.py:1365 +#: build/serializers.py:798 order/serializers.py:430 order/serializers.py:1491 msgid "Accept Incomplete" msgstr "Αποδοχή Μη Ολοκληρωμένων" -#: build/serializers.py:755 +#: build/serializers.py:799 msgid "Accept that the required number of build outputs have not been completed" msgstr "Αποδεχτείτε ότι ο απαιτούμενος αριθμός προϊόντων κατασκευής δεν έχει ολοκληρωθεί" -#: build/serializers.py:765 templates/js/translated/build.js:320 +#: build/serializers.py:809 templates/js/translated/build.js:323 msgid "Required build quantity has not been completed" msgstr "Ο απαιτούμενος αριθμός προϊόντων δεν έχει ολοκληρωθεί" -#: build/serializers.py:774 +#: build/serializers.py:818 msgid "Build order has open child build orders" msgstr "" -#: build/serializers.py:777 +#: build/serializers.py:821 msgid "Build order must be in production state" msgstr "" -#: build/serializers.py:780 templates/js/translated/build.js:304 +#: build/serializers.py:824 templates/js/translated/build.js:307 msgid "Build order has incomplete outputs" msgstr "Η παραγγελία κατασκευής έχει ελλιπή προϊόντα" -#: build/serializers.py:818 +#: build/serializers.py:862 msgid "Build Line" msgstr "Γραμμή Κατασκευής" -#: build/serializers.py:828 +#: build/serializers.py:872 msgid "Build output" msgstr "Προϊόν Κατασκευής" -#: build/serializers.py:836 +#: build/serializers.py:880 msgid "Build output must point to the same build" msgstr "Το προϊόν κατασκευής πρέπει να δείχνει στην ίδια κατασκευή" -#: build/serializers.py:872 +#: build/serializers.py:916 msgid "Build Line Item" msgstr "Αντικείμενο Γραμμής Κατασκευής" -#: build/serializers.py:886 +#: build/serializers.py:930 msgid "bom_item.part must point to the same part as the build order" msgstr "bom_item.part πρέπει να δείχνει στο ίδιο εξάρτημα με τη εντολή κατασκευής" -#: build/serializers.py:901 stock/serializers.py:1294 +#: build/serializers.py:945 stock/serializers.py:1325 msgid "Item must be in stock" msgstr "" -#: build/serializers.py:949 order/serializers.py:1351 +#: build/serializers.py:993 order/serializers.py:1477 #, python-brace-format msgid "Available quantity ({q}) exceeded" msgstr "" -#: build/serializers.py:955 +#: build/serializers.py:999 msgid "Build output must be specified for allocation of tracked parts" msgstr "" -#: build/serializers.py:962 +#: build/serializers.py:1006 msgid "Build output cannot be specified for allocation of untracked parts" msgstr "" -#: build/serializers.py:986 order/serializers.py:1610 +#: build/serializers.py:1030 order/serializers.py:1750 msgid "Allocation items must be provided" msgstr "" -#: build/serializers.py:1049 +#: build/serializers.py:1093 msgid "Stock location where parts are to be sourced (leave blank to take from any location)" msgstr "" -#: build/serializers.py:1057 +#: build/serializers.py:1101 msgid "Exclude Location" msgstr "" -#: build/serializers.py:1058 +#: build/serializers.py:1102 msgid "Exclude stock items from this selected location" msgstr "" -#: build/serializers.py:1063 +#: build/serializers.py:1107 msgid "Interchangeable Stock" msgstr "" -#: build/serializers.py:1064 +#: build/serializers.py:1108 msgid "Stock items in multiple locations can be used interchangeably" msgstr "" -#: build/serializers.py:1069 +#: build/serializers.py:1113 msgid "Substitute Stock" msgstr "" -#: build/serializers.py:1070 +#: build/serializers.py:1114 msgid "Allow allocation of substitute parts" msgstr "" -#: build/serializers.py:1075 +#: build/serializers.py:1119 msgid "Optional Items" msgstr "" -#: build/serializers.py:1076 +#: build/serializers.py:1120 msgid "Allocate optional BOM items to build order" msgstr "" -#: build/serializers.py:1098 +#: build/serializers.py:1143 msgid "Failed to start auto-allocation task" msgstr "" -#: build/serializers.py:1181 +#: build/serializers.py:1226 stock/serializers.py:585 msgid "Supplier Part Number" msgstr "" -#: build/serializers.py:1182 company/models.py:506 +#: build/serializers.py:1227 company/models.py:503 stock/serializers.py:591 msgid "Manufacturer Part Number" msgstr "" -#: build/serializers.py:1183 stock/admin.py:53 stock/admin.py:175 -#: stock/serializers.py:457 +#: build/serializers.py:1228 stock/admin.py:53 stock/admin.py:176 +#: stock/serializers.py:467 msgid "Location Name" msgstr "" -#: build/serializers.py:1184 +#: build/serializers.py:1229 build/serializers.py:1327 msgid "Build Reference" msgstr "" -#: build/serializers.py:1185 +#: build/serializers.py:1230 msgid "BOM Reference" msgstr "" -#: build/serializers.py:1186 company/models.py:852 -#: company/templates/company/supplier_part.html:160 order/serializers.py:690 -#: stock/admin.py:228 stock/models.py:818 stock/serializers.py:1579 -#: stock/templates/stock/item_base.html:240 -#: templates/js/translated/company.js:1646 -#: templates/js/translated/purchase_order.js:1169 -#: templates/js/translated/purchase_order.js:1332 +#: build/serializers.py:1231 company/models.py:849 +#: company/templates/company/supplier_part.html:161 order/serializers.py:775 +#: stock/admin.py:229 stock/models.py:895 stock/serializers.py:1610 +#: stock/templates/stock/item_base.html:237 +#: templates/js/translated/company.js:1647 +#: templates/js/translated/purchase_order.js:1152 +#: templates/js/translated/purchase_order.js:1315 #: templates/js/translated/stock.js:1214 templates/js/translated/stock.js:1246 -#: templates/js/translated/stock.js:2509 +#: templates/js/translated/stock.js:2510 msgid "Packaging" msgstr "" -#: build/serializers.py:1189 part/admin.py:39 part/admin.py:398 -#: part/models.py:4101 part/stocktake.py:218 stock/admin.py:152 +#: build/serializers.py:1234 part/admin.py:39 part/admin.py:398 +#: part/models.py:4159 part/stocktake.py:218 stock/admin.py:153 msgid "Part ID" msgstr "" -#: build/serializers.py:1191 build/serializers.py:1280 part/admin.py:402 -#: part/models.py:4103 +#: build/serializers.py:1236 build/serializers.py:1332 part/admin.py:402 +#: part/models.py:4161 msgid "Part IPN" msgstr "" -#: build/serializers.py:1192 build/serializers.py:1282 part/admin.py:45 +#: build/serializers.py:1237 build/serializers.py:1334 part/admin.py:45 #: part/stocktake.py:220 msgid "Part Description" msgstr "" -#: build/serializers.py:1195 +#: build/serializers.py:1240 msgid "BOM Part ID" msgstr "" -#: build/serializers.py:1196 +#: build/serializers.py:1241 msgid "BOM Part Name" msgstr "" -#: build/serializers.py:1199 +#: build/serializers.py:1244 #: report/templates/report/inventree_return_order_report.html:25 -#: report/templates/report/inventree_test_report.html:88 stock/models.py:845 -#: stock/serializers.py:151 stock/templates/stock/item_base.html:311 -#: templates/js/translated/build.js:520 templates/js/translated/build.js:1540 -#: templates/js/translated/build.js:2527 -#: templates/js/translated/model_renderers.js:231 +#: report/templates/report/inventree_sales_order_shipment_report.html:45 +#: report/templates/report/inventree_test_report.html:88 stock/models.py:922 +#: stock/serializers.py:152 stock/templates/stock/item_base.html:308 +#: templates/js/translated/build.js:523 templates/js/translated/build.js:1543 +#: templates/js/translated/build.js:2534 +#: templates/js/translated/model_renderers.js:234 #: templates/js/translated/return_order.js:539 #: templates/js/translated/return_order.js:722 -#: templates/js/translated/sales_order.js:315 -#: templates/js/translated/sales_order.js:1647 -#: templates/js/translated/sales_order.js:1732 +#: templates/js/translated/sales_order.js:1628 +#: templates/js/translated/sales_order.js:1713 #: templates/js/translated/stock.js:602 msgid "Serial Number" msgstr "" -#: build/serializers.py:1212 stock/serializers.py:593 -#: templates/js/translated/build.js:1017 templates/js/translated/build.js:1164 -#: templates/js/translated/build.js:2516 +#: build/serializers.py:1257 stock/serializers.py:620 +#: templates/js/translated/build.js:1020 templates/js/translated/build.js:1167 +#: templates/js/translated/build.js:2523 msgid "Allocated Quantity" msgstr "" -#: build/serializers.py:1213 stock/templates/stock/item_base.html:340 +#: build/serializers.py:1258 stock/templates/stock/item_base.html:337 msgid "Available Quantity" msgstr "" -#: build/serializers.py:1283 +#: build/serializers.py:1335 msgid "Part Category ID" msgstr "" -#: build/serializers.py:1284 +#: build/serializers.py:1336 msgid "Part Category Name" msgstr "" -#: build/serializers.py:1291 common/models.py:1513 part/admin.py:113 -#: part/models.py:1166 templates/js/translated/table_filters.js:150 +#: build/serializers.py:1345 common/models.py:1582 part/admin.py:113 +#: part/models.py:1227 templates/js/translated/build.js:2738 +#: templates/js/translated/table_filters.js:150 #: templates/js/translated/table_filters.js:230 #: templates/js/translated/table_filters.js:783 msgid "Trackable" msgstr "" -#: build/serializers.py:1292 +#: build/serializers.py:1346 msgid "Inherited" msgstr "" -#: build/serializers.py:1293 part/models.py:4313 +#: build/serializers.py:1347 part/models.py:4370 #: part/templates/part/upload_bom.html:56 templates/js/translated/bom.js:1046 -#: templates/js/translated/build.js:2711 +#: templates/js/translated/build.js:2720 msgid "Allow Variants" msgstr "" -#: build/serializers.py:1297 part/models.py:4110 part/models.py:4584 +#: build/serializers.py:1351 part/models.py:4168 part/models.py:4646 #: stock/api.py:794 msgid "BOM Item" msgstr "" -#: build/serializers.py:1306 build/templates/build/detail.html:236 +#: build/serializers.py:1370 build/templates/build/detail.html:236 #: build/templates/build/sidebar.html:16 templates/js/translated/index.js:130 msgid "Allocated Stock" msgstr "" -#: build/serializers.py:1311 order/serializers.py:1175 part/admin.py:132 -#: part/bom.py:181 part/serializers.py:899 part/serializers.py:1602 -#: part/templates/part/part_base.html:210 templates/js/translated/bom.js:1208 -#: templates/js/translated/build.js:2804 templates/js/translated/part.js:712 +#: build/serializers.py:1375 order/serializers.py:1209 part/admin.py:132 +#: part/bom.py:186 part/serializers.py:951 part/serializers.py:1660 +#: part/templates/part/part_base.html:211 templates/js/translated/bom.js:1208 +#: templates/js/translated/build.js:2822 templates/js/translated/part.js:712 #: templates/js/translated/part.js:2155 #: templates/js/translated/table_filters.js:177 msgid "On Order" msgstr "" -#: build/serializers.py:1316 order/serializers.py:1176 part/serializers.py:1604 -#: templates/js/translated/build.js:2808 +#: build/serializers.py:1380 order/serializers.py:1210 part/serializers.py:1662 +#: templates/js/translated/build.js:2826 #: templates/js/translated/table_filters.js:367 msgid "In Production" msgstr "" -#: build/serializers.py:1321 part/bom.py:180 part/serializers.py:1629 -#: part/templates/part/part_base.html:192 -#: templates/js/translated/sales_order.js:1929 -msgid "Available Stock" -msgstr "" - -#: build/serializers.py:1325 -msgid "Available Substitute Stock" -msgstr "" - -#: build/serializers.py:1326 -msgid "Available Variant Stock" -msgstr "" - -#: build/serializers.py:1327 -msgid "Total Available Stock" -msgstr "" - -#: build/serializers.py:1328 part/serializers.py:906 +#: build/serializers.py:1384 part/serializers.py:958 msgid "External Stock" msgstr "" -#: build/status_codes.py:11 generic/states/tests.py:17 order/status_codes.py:12 -#: order/status_codes.py:42 order/status_codes.py:74 order/status_codes.py:98 +#: build/serializers.py:1385 part/bom.py:185 part/serializers.py:1687 +#: part/templates/part/part_base.html:193 +#: templates/js/translated/sales_order.js:1910 +msgid "Available Stock" +msgstr "" + +#: build/serializers.py:1386 +msgid "Available Substitute Stock" +msgstr "" + +#: build/serializers.py:1387 +msgid "Available Variant Stock" +msgstr "" + +#: build/status_codes.py:11 generic/states/tests.py:21 +#: generic/states/tests.py:131 order/status_codes.py:12 +#: order/status_codes.py:44 order/status_codes.py:76 order/status_codes.py:102 #: templates/js/translated/table_filters.js:601 msgid "Pending" msgstr "Σε εκκρεμότητα" @@ -1722,21 +1750,21 @@ msgstr "Σε εκκρεμότητα" msgid "Production" msgstr "Παραγωγή" -#: build/status_codes.py:13 order/status_codes.py:14 order/status_codes.py:49 -#: order/status_codes.py:79 +#: build/status_codes.py:13 order/status_codes.py:14 order/status_codes.py:51 +#: order/status_codes.py:81 msgid "On Hold" msgstr "" -#: build/status_codes.py:14 order/status_codes.py:16 order/status_codes.py:51 -#: order/status_codes.py:82 +#: build/status_codes.py:14 order/status_codes.py:16 order/status_codes.py:53 +#: order/status_codes.py:84 msgid "Cancelled" msgstr "Ακυρώθηκε" -#: build/status_codes.py:15 generic/states/tests.py:19 importer/models.py:509 -#: importer/status_codes.py:19 order/status_codes.py:15 -#: order/status_codes.py:50 order/status_codes.py:81 -#: order/templates/order/order_base.html:163 -#: order/templates/order/sales_order_base.html:168 report/models.py:443 +#: build/status_codes.py:15 generic/states/tests.py:23 importer/models.py:518 +#: importer/status_codes.py:27 order/status_codes.py:15 +#: order/status_codes.py:52 order/status_codes.py:83 +#: order/templates/order/order_base.html:172 +#: order/templates/order/sales_order_base.html:169 report/models.py:451 msgid "Complete" msgstr "Ολοκληρώθηκε" @@ -1744,165 +1772,162 @@ msgstr "Ολοκληρώθηκε" msgid "Stock required for build order" msgstr "" -#: build/tasks.py:201 +#: build/tasks.py:260 msgid "Overdue Build Order" msgstr "" -#: build/tasks.py:206 +#: build/tasks.py:265 #, python-brace-format msgid "Build order {bo} is now overdue" msgstr "" -#: build/templates/build/build_base.html:18 +#: build/templates/build/build_base.html:19 msgid "Part thumbnail" msgstr "" -#: build/templates/build/build_base.html:38 -#: company/templates/company/supplier_part.html:35 -#: order/templates/order/order_base.html:29 -#: order/templates/order/return_order_base.html:38 -#: order/templates/order/sales_order_base.html:38 -#: part/templates/part/part_base.html:41 -#: stock/templates/stock/item_base.html:40 -#: stock/templates/stock/location.html:52 +#: build/templates/build/build_base.html:39 +#: company/templates/company/supplier_part.html:36 +#: order/templates/order/order_base.html:30 +#: order/templates/order/return_order_base.html:39 +#: order/templates/order/sales_order_base.html:39 +#: part/templates/part/part_base.html:42 +#: stock/templates/stock/item_base.html:41 +#: stock/templates/stock/location.html:53 #: templates/js/translated/filters.js:338 msgid "Barcode actions" msgstr "" -#: build/templates/build/build_base.html:42 -#: company/templates/company/supplier_part.html:39 -#: order/templates/order/order_base.html:33 -#: order/templates/order/return_order_base.html:42 -#: order/templates/order/sales_order_base.html:42 -#: part/templates/part/part_base.html:44 -#: stock/templates/stock/item_base.html:44 -#: stock/templates/stock/location.html:54 templates/qr_button.html:1 +#: build/templates/build/build_base.html:43 +#: company/templates/company/supplier_part.html:40 +#: order/templates/order/order_base.html:34 +#: order/templates/order/return_order_base.html:43 +#: order/templates/order/sales_order_base.html:43 +#: part/templates/part/part_base.html:45 +#: stock/templates/stock/item_base.html:45 +#: stock/templates/stock/location.html:55 templates/qr_button.html:1 msgid "Show QR Code" msgstr "" -#: build/templates/build/build_base.html:45 -#: company/templates/company/supplier_part.html:41 -#: order/templates/order/order_base.html:36 -#: order/templates/order/return_order_base.html:45 -#: order/templates/order/sales_order_base.html:45 -#: part/templates/part/part_base.html:47 -#: stock/templates/stock/item_base.html:47 -#: stock/templates/stock/location.html:56 +#: build/templates/build/build_base.html:46 +#: company/templates/company/supplier_part.html:42 +#: order/templates/order/order_base.html:37 +#: order/templates/order/return_order_base.html:46 +#: order/templates/order/sales_order_base.html:46 +#: part/templates/part/part_base.html:48 +#: stock/templates/stock/item_base.html:48 +#: stock/templates/stock/location.html:57 #: templates/js/translated/barcode.js:527 #: templates/js/translated/barcode.js:532 msgid "Unlink Barcode" msgstr "Αποσύνδεση Barcode" -#: build/templates/build/build_base.html:47 -#: company/templates/company/supplier_part.html:43 -#: order/templates/order/order_base.html:38 -#: order/templates/order/return_order_base.html:47 -#: order/templates/order/sales_order_base.html:47 -#: part/templates/part/part_base.html:49 -#: stock/templates/stock/item_base.html:49 -#: stock/templates/stock/location.html:58 +#: build/templates/build/build_base.html:48 +#: company/templates/company/supplier_part.html:44 +#: order/templates/order/order_base.html:39 +#: order/templates/order/return_order_base.html:48 +#: order/templates/order/sales_order_base.html:48 +#: part/templates/part/part_base.html:50 +#: stock/templates/stock/item_base.html:50 +#: stock/templates/stock/location.html:59 msgid "Link Barcode" msgstr "Σύνδεση Barcode" -#: build/templates/build/build_base.html:56 -#: order/templates/order/order_base.html:46 -#: order/templates/order/return_order_base.html:55 -#: order/templates/order/sales_order_base.html:55 +#: build/templates/build/build_base.html:57 +#: order/templates/order/order_base.html:47 +#: order/templates/order/return_order_base.html:56 +#: order/templates/order/sales_order_base.html:56 msgid "Print actions" msgstr "Ενέργειες εκτύπωσης" -#: build/templates/build/build_base.html:60 +#: build/templates/build/build_base.html:61 msgid "Print build order report" msgstr "Εκτύπωση αναφοράς εντολών κατασκευής" -#: build/templates/build/build_base.html:67 +#: build/templates/build/build_base.html:68 msgid "Build actions" msgstr "Εντολές κατασκευής" -#: build/templates/build/build_base.html:71 +#: build/templates/build/build_base.html:72 msgid "Edit Build" msgstr "Επεξεργασία Κατασκευής" -#: build/templates/build/build_base.html:73 +#: build/templates/build/build_base.html:74 msgid "Duplicate Build" msgstr "Αντιγραφή Κατασκευής" -#: build/templates/build/build_base.html:76 +#: build/templates/build/build_base.html:77 msgid "Hold Build" msgstr "" -#: build/templates/build/build_base.html:79 +#: build/templates/build/build_base.html:80 msgid "Cancel Build" msgstr "Ακύρωση κατασκευής" -#: build/templates/build/build_base.html:82 +#: build/templates/build/build_base.html:83 msgid "Delete Build" msgstr "Διαγραφή Κατασκευής" -#: build/templates/build/build_base.html:87 -msgid "Isueue Build" -msgstr "" - #: build/templates/build/build_base.html:88 +#: build/templates/build/build_base.html:89 msgid "Issue Build" msgstr "" -#: build/templates/build/build_base.html:91 #: build/templates/build/build_base.html:92 +#: build/templates/build/build_base.html:93 msgid "Complete Build" msgstr "Ολοκλήρωση Κατασκευής" -#: build/templates/build/build_base.html:115 +#: build/templates/build/build_base.html:116 msgid "Build Description" msgstr "Περιγραφή Κατασκευής" -#: build/templates/build/build_base.html:125 +#: build/templates/build/build_base.html:126 msgid "No build outputs have been created for this build order" msgstr "Δεν έχουν δημιουργηθεί προϊόντα για αυτήν την εντολή κατασκευής" -#: build/templates/build/build_base.html:132 +#: build/templates/build/build_base.html:133 msgid "Build Order is ready to mark as completed" msgstr "Η εντολή Κατασκευής είναι έτοιμη για να επισημανθεί ως ολοκληρωμένη" -#: build/templates/build/build_base.html:137 +#: build/templates/build/build_base.html:138 msgid "Build Order cannot be completed as outstanding outputs remain" msgstr "Η Εντολή Κατασκευής δεν μπορεί να ολοκληρωθεί καθώς υπάρχουν εκκρεμή προϊόντα" -#: build/templates/build/build_base.html:142 +#: build/templates/build/build_base.html:143 msgid "Required build quantity has not yet been completed" msgstr "Ο απαιτούμενος αριθμός προϊόντων δεν έχει ακόμα ολοκληρωθεί" -#: build/templates/build/build_base.html:147 +#: build/templates/build/build_base.html:148 msgid "Stock has not been fully allocated to this Build Order" msgstr "Το Απόθεμα δεν έχει κατανεμηθεί πλήρως σε αυτή την Εντολή Κατασκευής" -#: build/templates/build/build_base.html:168 -#: build/templates/build/detail.html:138 order/models.py:308 -#: order/models.py:1391 order/serializers.py:174 -#: order/templates/order/order_base.html:191 -#: order/templates/order/return_order_base.html:167 -#: order/templates/order/sales_order_base.html:199 +#: build/templates/build/build_base.html:169 +#: build/templates/build/detail.html:138 order/models.py:315 +#: order/models.py:1408 order/serializers.py:254 +#: order/templates/order/order_base.html:200 +#: order/templates/order/return_order_base.html:168 +#: order/templates/order/sales_order_base.html:200 #: report/templates/report/inventree_build_order_report.html:125 -#: templates/js/translated/build.js:2411 templates/js/translated/part.js:1837 -#: templates/js/translated/purchase_order.js:1809 -#: templates/js/translated/purchase_order.js:2217 +#: templates/js/translated/build.js:2414 templates/js/translated/part.js:1837 +#: templates/js/translated/purchase_order.js:1793 +#: templates/js/translated/purchase_order.js:2201 #: templates/js/translated/return_order.js:346 #: templates/js/translated/return_order.js:749 -#: templates/js/translated/sales_order.js:871 -#: templates/js/translated/sales_order.js:1903 +#: templates/js/translated/sales_order.js:830 +#: templates/js/translated/sales_order.js:1884 msgid "Target Date" msgstr "Επιθυμητή Προθεσμία" -#: build/templates/build/build_base.html:173 +#: build/templates/build/build_base.html:174 #, python-format msgid "This build was due on %(target)s" msgstr "Αυτή η κατασκευή είχε προθεσμία %(target)s" -#: build/templates/build/build_base.html:173 -#: build/templates/build/build_base.html:230 -#: order/templates/order/order_base.html:127 -#: order/templates/order/return_order_base.html:120 -#: order/templates/order/sales_order_base.html:129 +#: build/templates/build/build_base.html:174 +#: build/templates/build/build_base.html:231 +#: order/templates/order/order_base.html:128 +#: order/templates/order/return_order_base.html:121 +#: order/templates/order/sales_order_base.html:130 #: templates/js/translated/table_filters.js:97 #: templates/js/translated/table_filters.js:545 #: templates/js/translated/table_filters.js:629 @@ -1910,49 +1935,50 @@ msgstr "Αυτή η κατασκευή είχε προθεσμία %(target)s" msgid "Overdue" msgstr "Εκπρόθεσμη" -#: build/templates/build/build_base.html:185 +#: build/templates/build/build_base.html:186 #: build/templates/build/detail.html:67 build/templates/build/sidebar.html:13 msgid "Completed Outputs" msgstr "Ολοκληρωμένα Προϊόντα" -#: build/templates/build/build_base.html:198 -#: build/templates/build/detail.html:101 order/api.py:1406 order/models.py:892 -#: order/models.py:1650 order/models.py:1765 order/models.py:1924 -#: order/templates/order/sales_order_base.html:9 -#: order/templates/order/sales_order_base.html:28 +#: build/templates/build/build_base.html:199 +#: build/templates/build/detail.html:101 order/api.py:1528 order/models.py:914 +#: order/models.py:1666 order/models.py:1794 order/models.py:1957 +#: order/templates/order/sales_order_base.html:10 +#: order/templates/order/sales_order_base.html:29 #: report/templates/report/inventree_build_order_report.html:135 #: report/templates/report/inventree_sales_order_report.html:14 -#: stock/templates/stock/item_base.html:369 +#: report/templates/report/inventree_sales_order_shipment_report.html:15 +#: stock/templates/stock/item_base.html:366 #: templates/email/overdue_sales_order.html:15 -#: templates/js/translated/pricing.js:929 -#: templates/js/translated/sales_order.js:805 -#: templates/js/translated/sales_order.js:1028 -#: templates/js/translated/stock.js:3008 +#: templates/js/translated/pricing.js:927 +#: templates/js/translated/sales_order.js:764 +#: templates/js/translated/sales_order.js:1001 +#: templates/js/translated/stock.js:3009 msgid "Sales Order" msgstr "Εντολές Πώλησης" -#: build/templates/build/build_base.html:219 -#: build/templates/build/detail.html:94 templates/js/translated/build.js:2328 +#: build/templates/build/build_base.html:220 +#: build/templates/build/detail.html:94 templates/js/translated/build.js:2331 msgid "Priority" msgstr "Προτεραιότητα" -#: build/templates/build/build_base.html:267 +#: build/templates/build/build_base.html:268 msgid "Issue Build Order" msgstr "" -#: build/templates/build/build_base.html:271 +#: build/templates/build/build_base.html:272 msgid "Issue this Build Order?" msgstr "" -#: build/templates/build/build_base.html:302 +#: build/templates/build/build_base.html:303 msgid "Delete Build Order" msgstr "Διαγραφή Εντολής Κατασκευής" -#: build/templates/build/build_base.html:312 +#: build/templates/build/build_base.html:313 msgid "Build Order QR Code" msgstr "Κωδικός QR Εντολής Κατασκευής" -#: build/templates/build/build_base.html:324 +#: build/templates/build/build_base.html:325 msgid "Link Barcode to Build Order" msgstr "Σύνδεση Barcode με την Εντολή Κατασκευής" @@ -1968,8 +1994,9 @@ msgstr "Προέλευση Αποθέματος" msgid "Stock can be taken from any available location." msgstr "Το απόθεμα μπορεί να ληφθεί από οποιαδήποτε διαθέσιμη τοποθεσία." -#: build/templates/build/detail.html:49 order/models.py:1532 -#: templates/js/translated/purchase_order.js:2259 +#: build/templates/build/detail.html:49 order/models.py:548 +#: order/models.py:1548 order/templates/order/order_base.html:135 +#: templates/js/translated/purchase_order.js:2243 msgid "Destination" msgstr "Προορισμός" @@ -1981,23 +2008,24 @@ msgstr "" msgid "Allocated Parts" msgstr "" -#: build/templates/build/detail.html:80 stock/admin.py:162 -#: stock/templates/stock/item_base.html:162 -#: templates/js/translated/build.js:1553 -#: templates/js/translated/model_renderers.js:242 -#: templates/js/translated/purchase_order.js:1326 +#: build/templates/build/detail.html:80 +#: report/templates/report/inventree_sales_order_shipment_report.html:47 +#: stock/admin.py:163 stock/templates/stock/item_base.html:159 +#: templates/js/translated/build.js:1556 +#: templates/js/translated/model_renderers.js:245 +#: templates/js/translated/purchase_order.js:1309 #: templates/js/translated/stock.js:1139 templates/js/translated/stock.js:1240 -#: templates/js/translated/stock.js:2275 templates/js/translated/stock.js:3211 +#: templates/js/translated/stock.js:2276 templates/js/translated/stock.js:3212 #: templates/js/translated/table_filters.js:320 #: templates/js/translated/table_filters.js:411 msgid "Batch" msgstr "" #: build/templates/build/detail.html:133 -#: order/templates/order/order_base.html:178 -#: order/templates/order/return_order_base.html:154 -#: order/templates/order/sales_order_base.html:193 -#: templates/js/translated/build.js:2371 +#: order/templates/order/order_base.html:187 +#: order/templates/order/return_order_base.html:155 +#: order/templates/order/sales_order_base.html:194 +#: templates/js/translated/build.js:2374 msgid "Created" msgstr "" @@ -2005,8 +2033,8 @@ msgstr "" msgid "No target date set" msgstr "" -#: build/templates/build/detail.html:149 -#: order/templates/order/sales_order_base.html:209 +#: build/templates/build/detail.html:149 order/api.py:794 +#: order/templates/order/sales_order_base.html:210 #: templates/js/translated/table_filters.js:692 msgid "Completed" msgstr "" @@ -2052,7 +2080,7 @@ msgid "Order required parts" msgstr "" #: build/templates/build/detail.html:192 -#: templates/js/translated/purchase_order.js:795 +#: templates/js/translated/purchase_order.js:778 msgid "Order Parts" msgstr "" @@ -2120,7 +2148,7 @@ msgstr "" msgid "Build Order Details" msgstr "" -#: build/templates/build/sidebar.html:8 order/serializers.py:82 +#: build/templates/build/sidebar.html:8 order/serializers.py:113 #: order/templates/order/po_sidebar.html:5 #: order/templates/order/return_order_detail.html:18 #: order/templates/order/so_sidebar.html:5 @@ -2139,43 +2167,38 @@ msgstr "" msgid "Test Statistics" msgstr "" -#: common/api.py:693 +#: common/api.py:725 msgid "Is Link" msgstr "" -#: common/api.py:701 +#: common/api.py:733 msgid "Is File" msgstr "" -#: common/api.py:744 +#: common/api.py:776 msgid "User does not have permission to delete these attachments" msgstr "" -#: common/api.py:761 +#: common/api.py:793 msgid "User does not have permission to delete this attachment" msgstr "" -#: common/currency.py:132 +#: common/currency.py:134 msgid "Invalid currency code" msgstr "" -#: common/currency.py:134 +#: common/currency.py:136 msgid "Duplicate currency code" msgstr "" -#: common/currency.py:139 +#: common/currency.py:141 msgid "No valid currency codes provided" msgstr "" -#: common/currency.py:156 +#: common/currency.py:158 msgid "No plugin" msgstr "" -#: common/files.py:63 -#, python-brace-format -msgid "Unsupported file format: {fmt}" -msgstr "" - #: common/files.py:65 msgid "Error reading file (invalid encoding)" msgstr "" @@ -2192,1883 +2215,2039 @@ msgstr "" msgid "Error reading file (data could be corrupted)" msgstr "" -#: common/forms.py:12 +#: common/forms.py:12 common/forms.py:25 msgid "File" msgstr "" -#: common/forms.py:12 +#: common/forms.py:12 common/forms.py:26 msgid "Select file to upload" msgstr "" -#: common/forms.py:25 -msgid "{name.title()} File" -msgstr "" - -#: common/forms.py:26 -#, python-brace-format -msgid "Select {name} file to upload" -msgstr "" - -#: common/models.py:86 +#: common/models.py:89 msgid "Updated" msgstr "" -#: common/models.py:87 +#: common/models.py:90 msgid "Timestamp of last update" msgstr "" -#: common/models.py:120 +#: common/models.py:123 msgid "Site URL is locked by configuration" msgstr "" -#: common/models.py:150 +#: common/models.py:153 msgid "Unique project code" msgstr "" -#: common/models.py:157 +#: common/models.py:160 msgid "Project description" msgstr "" -#: common/models.py:166 +#: common/models.py:169 msgid "User or group responsible for this project" msgstr "" -#: common/models.py:783 -msgid "Settings key (must be unique - case insensitive)" +#: common/models.py:783 common/models.py:2236 common/models.py:2613 +msgid "Settings key" msgstr "" #: common/models.py:787 msgid "Settings value" msgstr "" -#: common/models.py:839 +#: common/models.py:842 msgid "Chosen value is not a valid option" msgstr "" -#: common/models.py:855 +#: common/models.py:858 msgid "Value must be a boolean value" msgstr "" -#: common/models.py:863 +#: common/models.py:866 msgid "Value must be an integer value" msgstr "" -#: common/models.py:900 +#: common/models.py:874 +msgid "Value must be a valid number" +msgstr "" + +#: common/models.py:899 +msgid "Value does not pass validation checks" +msgstr "" + +#: common/models.py:921 msgid "Key string must be unique" msgstr "" -#: common/models.py:1132 +#: common/models.py:1189 msgid "No group" msgstr "" -#: common/models.py:1231 +#: common/models.py:1288 msgid "Restart required" msgstr "" -#: common/models.py:1233 +#: common/models.py:1290 msgid "A setting has been changed which requires a server restart" msgstr "" -#: common/models.py:1240 +#: common/models.py:1297 msgid "Pending migrations" msgstr "" -#: common/models.py:1241 +#: common/models.py:1298 msgid "Number of pending database migrations" msgstr "" -#: common/models.py:1246 +#: common/models.py:1303 msgid "Server Instance Name" msgstr "" -#: common/models.py:1248 +#: common/models.py:1305 msgid "String descriptor for the server instance" msgstr "" -#: common/models.py:1252 +#: common/models.py:1309 msgid "Use instance name" msgstr "" -#: common/models.py:1253 +#: common/models.py:1310 msgid "Use the instance name in the title-bar" msgstr "" -#: common/models.py:1258 +#: common/models.py:1315 msgid "Restrict showing `about`" msgstr "" -#: common/models.py:1259 +#: common/models.py:1316 msgid "Show the `about` modal only to superusers" msgstr "" -#: common/models.py:1264 company/models.py:111 company/models.py:112 +#: common/models.py:1321 company/models.py:108 company/models.py:109 msgid "Company name" msgstr "" -#: common/models.py:1265 +#: common/models.py:1322 msgid "Internal company name" msgstr "" -#: common/models.py:1269 +#: common/models.py:1326 msgid "Base URL" msgstr "" -#: common/models.py:1270 +#: common/models.py:1327 msgid "Base URL for server instance" msgstr "" -#: common/models.py:1276 +#: common/models.py:1333 msgid "Default Currency" msgstr "" -#: common/models.py:1277 +#: common/models.py:1334 msgid "Select base currency for pricing calculations" msgstr "" -#: common/models.py:1283 +#: common/models.py:1340 msgid "Supported Currencies" msgstr "" -#: common/models.py:1284 +#: common/models.py:1341 msgid "List of supported currency codes" msgstr "" -#: common/models.py:1290 +#: common/models.py:1347 msgid "Currency Update Interval" msgstr "" -#: common/models.py:1292 +#: common/models.py:1349 msgid "How often to update exchange rates (set to zero to disable)" msgstr "" -#: common/models.py:1295 common/models.py:1351 common/models.py:1364 -#: common/models.py:1372 common/models.py:1381 common/models.py:1390 -#: common/models.py:1627 common/models.py:1649 common/models.py:1764 -#: common/models.py:2146 +#: common/models.py:1352 common/models.py:1408 common/models.py:1421 +#: common/models.py:1429 common/models.py:1438 common/models.py:1447 +#: common/models.py:1696 common/models.py:1718 common/models.py:1819 +#: common/models.py:2208 msgid "days" msgstr "" -#: common/models.py:1299 +#: common/models.py:1356 msgid "Currency Update Plugin" msgstr "" -#: common/models.py:1300 +#: common/models.py:1357 msgid "Currency update plugin to use" msgstr "" -#: common/models.py:1305 +#: common/models.py:1362 msgid "Download from URL" msgstr "" -#: common/models.py:1307 +#: common/models.py:1364 msgid "Allow download of remote images and files from external URL" msgstr "" -#: common/models.py:1313 +#: common/models.py:1370 msgid "Download Size Limit" msgstr "" -#: common/models.py:1314 +#: common/models.py:1371 msgid "Maximum allowable download size for remote image" msgstr "" -#: common/models.py:1320 +#: common/models.py:1377 msgid "User-agent used to download from URL" msgstr "" -#: common/models.py:1322 +#: common/models.py:1379 msgid "Allow to override the user-agent used to download images and files from external URL (leave blank for the default)" msgstr "" -#: common/models.py:1327 +#: common/models.py:1384 msgid "Strict URL Validation" msgstr "" -#: common/models.py:1328 +#: common/models.py:1385 msgid "Require schema specification when validating URLs" msgstr "" -#: common/models.py:1333 +#: common/models.py:1390 msgid "Require confirm" msgstr "" -#: common/models.py:1334 +#: common/models.py:1391 msgid "Require explicit user confirmation for certain action." msgstr "" -#: common/models.py:1339 +#: common/models.py:1396 msgid "Tree Depth" msgstr "" -#: common/models.py:1341 +#: common/models.py:1398 msgid "Default tree depth for treeview. Deeper levels can be lazy loaded as they are needed." msgstr "" -#: common/models.py:1347 +#: common/models.py:1404 msgid "Update Check Interval" msgstr "" -#: common/models.py:1348 +#: common/models.py:1405 msgid "How often to check for updates (set to zero to disable)" msgstr "" -#: common/models.py:1354 +#: common/models.py:1411 msgid "Automatic Backup" msgstr "" -#: common/models.py:1355 +#: common/models.py:1412 msgid "Enable automatic backup of database and media files" msgstr "" -#: common/models.py:1360 +#: common/models.py:1417 msgid "Auto Backup Interval" msgstr "" -#: common/models.py:1361 +#: common/models.py:1418 msgid "Specify number of days between automated backup events" msgstr "" -#: common/models.py:1367 +#: common/models.py:1424 msgid "Task Deletion Interval" msgstr "" -#: common/models.py:1369 +#: common/models.py:1426 msgid "Background task results will be deleted after specified number of days" msgstr "" -#: common/models.py:1376 +#: common/models.py:1433 msgid "Error Log Deletion Interval" msgstr "" -#: common/models.py:1378 +#: common/models.py:1435 msgid "Error logs will be deleted after specified number of days" msgstr "" -#: common/models.py:1385 +#: common/models.py:1442 msgid "Notification Deletion Interval" msgstr "" -#: common/models.py:1387 +#: common/models.py:1444 msgid "User notifications will be deleted after specified number of days" msgstr "" -#: common/models.py:1394 templates/InvenTree/settings/sidebar.html:31 +#: common/models.py:1451 templates/InvenTree/settings/sidebar.html:31 msgid "Barcode Support" msgstr "" -#: common/models.py:1395 +#: common/models.py:1452 msgid "Enable barcode scanner support in the web interface" msgstr "" -#: common/models.py:1400 +#: common/models.py:1457 +msgid "Store Barcode Results" +msgstr "" + +#: common/models.py:1458 +msgid "Store barcode scan results in the database" +msgstr "" + +#: common/models.py:1463 +msgid "Barcode Scans Maximum Count" +msgstr "" + +#: common/models.py:1464 +msgid "Maximum number of barcode scan results to store" +msgstr "" + +#: common/models.py:1469 msgid "Barcode Input Delay" msgstr "" -#: common/models.py:1401 +#: common/models.py:1470 msgid "Barcode input processing delay time" msgstr "" -#: common/models.py:1407 +#: common/models.py:1476 msgid "Barcode Webcam Support" msgstr "" -#: common/models.py:1408 +#: common/models.py:1477 msgid "Allow barcode scanning via webcam in browser" msgstr "" -#: common/models.py:1413 +#: common/models.py:1482 msgid "Barcode Show Data" msgstr "" -#: common/models.py:1414 +#: common/models.py:1483 msgid "Display barcode data in browser as text" msgstr "" -#: common/models.py:1419 +#: common/models.py:1488 msgid "Barcode Generation Plugin" msgstr "" -#: common/models.py:1420 +#: common/models.py:1489 msgid "Plugin to use for internal barcode data generation" msgstr "" -#: common/models.py:1425 +#: common/models.py:1494 msgid "Part Revisions" msgstr "" -#: common/models.py:1426 +#: common/models.py:1495 msgid "Enable revision field for Part" msgstr "" -#: common/models.py:1431 +#: common/models.py:1500 msgid "Assembly Revision Only" msgstr "" -#: common/models.py:1432 +#: common/models.py:1501 msgid "Only allow revisions for assembly parts" msgstr "" -#: common/models.py:1437 +#: common/models.py:1506 msgid "Allow Deletion from Assembly" msgstr "" -#: common/models.py:1438 +#: common/models.py:1507 msgid "Allow deletion of parts which are used in an assembly" msgstr "" -#: common/models.py:1443 +#: common/models.py:1512 msgid "IPN Regex" msgstr "" -#: common/models.py:1444 +#: common/models.py:1513 msgid "Regular expression pattern for matching Part IPN" msgstr "" -#: common/models.py:1447 +#: common/models.py:1516 msgid "Allow Duplicate IPN" msgstr "" -#: common/models.py:1448 +#: common/models.py:1517 msgid "Allow multiple parts to share the same IPN" msgstr "" -#: common/models.py:1453 +#: common/models.py:1522 msgid "Allow Editing IPN" msgstr "" -#: common/models.py:1454 +#: common/models.py:1523 msgid "Allow changing the IPN value while editing a part" msgstr "" -#: common/models.py:1459 +#: common/models.py:1528 msgid "Copy Part BOM Data" msgstr "" -#: common/models.py:1460 +#: common/models.py:1529 msgid "Copy BOM data by default when duplicating a part" msgstr "" -#: common/models.py:1465 +#: common/models.py:1534 msgid "Copy Part Parameter Data" msgstr "" -#: common/models.py:1466 +#: common/models.py:1535 msgid "Copy parameter data by default when duplicating a part" msgstr "" -#: common/models.py:1471 +#: common/models.py:1540 msgid "Copy Part Test Data" msgstr "" -#: common/models.py:1472 +#: common/models.py:1541 msgid "Copy test data by default when duplicating a part" msgstr "" -#: common/models.py:1477 +#: common/models.py:1546 msgid "Copy Category Parameter Templates" msgstr "" -#: common/models.py:1478 +#: common/models.py:1547 msgid "Copy category parameter templates when creating a part" msgstr "" -#: common/models.py:1483 part/admin.py:108 part/models.py:3945 -#: report/models.py:293 report/models.py:360 report/serializers.py:90 -#: report/serializers.py:131 stock/serializers.py:232 +#: common/models.py:1552 part/admin.py:108 part/models.py:4003 +#: report/models.py:301 report/models.py:368 report/serializers.py:91 +#: report/serializers.py:132 stock/serializers.py:233 #: templates/js/translated/table_filters.js:138 #: templates/js/translated/table_filters.js:775 msgid "Template" msgstr "" -#: common/models.py:1484 +#: common/models.py:1553 msgid "Parts are templates by default" msgstr "" -#: common/models.py:1490 +#: common/models.py:1559 msgid "Parts can be assembled from other components by default" msgstr "" -#: common/models.py:1495 part/admin.py:95 part/models.py:1160 -#: part/serializers.py:1596 templates/js/translated/table_filters.js:737 +#: common/models.py:1564 part/admin.py:95 part/models.py:1221 +#: part/serializers.py:1654 templates/js/translated/table_filters.js:737 msgid "Component" msgstr "" -#: common/models.py:1496 +#: common/models.py:1565 msgid "Parts can be used as sub-components by default" msgstr "" -#: common/models.py:1501 part/admin.py:100 part/models.py:1178 +#: common/models.py:1570 part/admin.py:100 part/models.py:1239 msgid "Purchaseable" msgstr "" -#: common/models.py:1502 +#: common/models.py:1571 msgid "Parts are purchaseable by default" msgstr "" -#: common/models.py:1507 part/admin.py:104 part/models.py:1184 +#: common/models.py:1576 part/admin.py:104 part/models.py:1245 #: templates/js/translated/table_filters.js:763 msgid "Salable" msgstr "" -#: common/models.py:1508 +#: common/models.py:1577 msgid "Parts are salable by default" msgstr "" -#: common/models.py:1514 +#: common/models.py:1583 msgid "Parts are trackable by default" msgstr "" -#: common/models.py:1519 part/admin.py:117 part/models.py:1200 -#: part/templates/part/part_base.html:154 +#: common/models.py:1588 part/admin.py:117 part/models.py:1261 +#: part/templates/part/part_base.html:155 #: templates/js/translated/table_filters.js:142 #: templates/js/translated/table_filters.js:787 msgid "Virtual" msgstr "" -#: common/models.py:1520 +#: common/models.py:1589 msgid "Parts are virtual by default" msgstr "" -#: common/models.py:1525 +#: common/models.py:1594 msgid "Show Import in Views" msgstr "" -#: common/models.py:1526 +#: common/models.py:1595 msgid "Display the import wizard in some part views" msgstr "" -#: common/models.py:1531 +#: common/models.py:1600 msgid "Show related parts" msgstr "" -#: common/models.py:1532 +#: common/models.py:1601 msgid "Display related parts for a part" msgstr "" -#: common/models.py:1537 +#: common/models.py:1606 msgid "Initial Stock Data" msgstr "" -#: common/models.py:1538 +#: common/models.py:1607 msgid "Allow creation of initial stock when adding a new part" msgstr "" -#: common/models.py:1543 templates/js/translated/part.js:108 +#: common/models.py:1612 templates/js/translated/part.js:108 msgid "Initial Supplier Data" msgstr "" -#: common/models.py:1545 +#: common/models.py:1614 msgid "Allow creation of initial supplier data when adding a new part" msgstr "" -#: common/models.py:1551 +#: common/models.py:1620 msgid "Part Name Display Format" msgstr "" -#: common/models.py:1552 +#: common/models.py:1621 msgid "Format to display the part name" msgstr "" -#: common/models.py:1558 +#: common/models.py:1627 msgid "Part Category Default Icon" msgstr "" -#: common/models.py:1559 +#: common/models.py:1628 msgid "Part category default icon (empty means no icon)" msgstr "" -#: common/models.py:1564 +#: common/models.py:1633 msgid "Enforce Parameter Units" msgstr "" -#: common/models.py:1566 +#: common/models.py:1635 msgid "If units are provided, parameter values must match the specified units" msgstr "" -#: common/models.py:1572 +#: common/models.py:1641 msgid "Minimum Pricing Decimal Places" msgstr "" -#: common/models.py:1574 +#: common/models.py:1643 msgid "Minimum number of decimal places to display when rendering pricing data" msgstr "" -#: common/models.py:1585 +#: common/models.py:1654 msgid "Maximum Pricing Decimal Places" msgstr "" -#: common/models.py:1587 +#: common/models.py:1656 msgid "Maximum number of decimal places to display when rendering pricing data" msgstr "" -#: common/models.py:1598 +#: common/models.py:1667 msgid "Use Supplier Pricing" msgstr "" -#: common/models.py:1600 +#: common/models.py:1669 msgid "Include supplier price breaks in overall pricing calculations" msgstr "" -#: common/models.py:1606 +#: common/models.py:1675 msgid "Purchase History Override" msgstr "" -#: common/models.py:1608 +#: common/models.py:1677 msgid "Historical purchase order pricing overrides supplier price breaks" msgstr "" -#: common/models.py:1614 +#: common/models.py:1683 msgid "Use Stock Item Pricing" msgstr "" -#: common/models.py:1616 +#: common/models.py:1685 msgid "Use pricing from manually entered stock data for pricing calculations" msgstr "" -#: common/models.py:1622 +#: common/models.py:1691 msgid "Stock Item Pricing Age" msgstr "" -#: common/models.py:1624 +#: common/models.py:1693 msgid "Exclude stock items older than this number of days from pricing calculations" msgstr "" -#: common/models.py:1631 +#: common/models.py:1700 msgid "Use Variant Pricing" msgstr "" -#: common/models.py:1632 +#: common/models.py:1701 msgid "Include variant pricing in overall pricing calculations" msgstr "" -#: common/models.py:1637 +#: common/models.py:1706 msgid "Active Variants Only" msgstr "" -#: common/models.py:1639 +#: common/models.py:1708 msgid "Only use active variant parts for calculating variant pricing" msgstr "" -#: common/models.py:1645 +#: common/models.py:1714 msgid "Pricing Rebuild Interval" msgstr "" -#: common/models.py:1647 +#: common/models.py:1716 msgid "Number of days before part pricing is automatically updated" msgstr "" -#: common/models.py:1654 +#: common/models.py:1723 msgid "Internal Prices" msgstr "" -#: common/models.py:1655 +#: common/models.py:1724 msgid "Enable internal prices for parts" msgstr "" -#: common/models.py:1660 +#: common/models.py:1729 msgid "Internal Price Override" msgstr "" -#: common/models.py:1662 +#: common/models.py:1731 msgid "If available, internal prices override price range calculations" msgstr "" -#: common/models.py:1668 +#: common/models.py:1737 msgid "Enable label printing" msgstr "" -#: common/models.py:1669 +#: common/models.py:1738 msgid "Enable label printing from the web interface" msgstr "" -#: common/models.py:1674 +#: common/models.py:1743 msgid "Label Image DPI" msgstr "" -#: common/models.py:1676 +#: common/models.py:1745 msgid "DPI resolution when generating image files to supply to label printing plugins" msgstr "" -#: common/models.py:1682 +#: common/models.py:1751 msgid "Enable Reports" msgstr "" -#: common/models.py:1683 +#: common/models.py:1752 msgid "Enable generation of reports" msgstr "" -#: common/models.py:1688 templates/stats.html:25 +#: common/models.py:1757 templates/stats.html:25 msgid "Debug Mode" msgstr "" -#: common/models.py:1689 +#: common/models.py:1758 msgid "Generate reports in debug mode (HTML output)" msgstr "" -#: common/models.py:1694 +#: common/models.py:1763 msgid "Log Report Errors" msgstr "" -#: common/models.py:1695 +#: common/models.py:1764 msgid "Log errors which occur when generating reports" msgstr "" -#: common/models.py:1700 plugin/builtin/labels/label_sheet.py:28 -#: report/models.py:301 +#: common/models.py:1769 plugin/builtin/labels/label_sheet.py:28 +#: report/models.py:309 msgid "Page Size" msgstr "" -#: common/models.py:1701 +#: common/models.py:1770 msgid "Default page size for PDF reports" msgstr "" -#: common/models.py:1706 -msgid "Enable Test Reports" -msgstr "" - -#: common/models.py:1707 -msgid "Enable generation of test reports" -msgstr "" - -#: common/models.py:1712 -msgid "Attach Test Reports" -msgstr "" - -#: common/models.py:1714 -msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item" -msgstr "" - -#: common/models.py:1720 +#: common/models.py:1775 msgid "Globally Unique Serials" msgstr "" -#: common/models.py:1721 +#: common/models.py:1776 msgid "Serial numbers for stock items must be globally unique" msgstr "" -#: common/models.py:1726 +#: common/models.py:1781 msgid "Autofill Serial Numbers" msgstr "" -#: common/models.py:1727 +#: common/models.py:1782 msgid "Autofill serial numbers in forms" msgstr "" -#: common/models.py:1732 +#: common/models.py:1787 msgid "Delete Depleted Stock" msgstr "" -#: common/models.py:1734 +#: common/models.py:1789 msgid "Determines default behavior when a stock item is depleted" msgstr "" -#: common/models.py:1740 +#: common/models.py:1795 msgid "Batch Code Template" msgstr "" -#: common/models.py:1742 +#: common/models.py:1797 msgid "Template for generating default batch codes for stock items" msgstr "" -#: common/models.py:1747 +#: common/models.py:1802 msgid "Stock Expiry" msgstr "" -#: common/models.py:1748 +#: common/models.py:1803 msgid "Enable stock expiry functionality" msgstr "" -#: common/models.py:1753 +#: common/models.py:1808 msgid "Sell Expired Stock" msgstr "" -#: common/models.py:1754 +#: common/models.py:1809 msgid "Allow sale of expired stock" msgstr "" -#: common/models.py:1759 +#: common/models.py:1814 msgid "Stock Stale Time" msgstr "" -#: common/models.py:1761 +#: common/models.py:1816 msgid "Number of days stock items are considered stale before expiring" msgstr "" -#: common/models.py:1768 +#: common/models.py:1823 msgid "Build Expired Stock" msgstr "" -#: common/models.py:1769 +#: common/models.py:1824 msgid "Allow building with expired stock" msgstr "" -#: common/models.py:1774 +#: common/models.py:1829 msgid "Stock Ownership Control" msgstr "" -#: common/models.py:1775 +#: common/models.py:1830 msgid "Enable ownership control over stock locations and items" msgstr "" -#: common/models.py:1780 +#: common/models.py:1835 msgid "Stock Location Default Icon" msgstr "" -#: common/models.py:1781 +#: common/models.py:1836 msgid "Stock location default icon (empty means no icon)" msgstr "" -#: common/models.py:1786 +#: common/models.py:1841 msgid "Show Installed Stock Items" msgstr "" -#: common/models.py:1787 +#: common/models.py:1842 msgid "Display installed stock items in stock tables" msgstr "" -#: common/models.py:1792 +#: common/models.py:1847 msgid "Check BOM when installing items" msgstr "" -#: common/models.py:1794 +#: common/models.py:1849 msgid "Installed stock items must exist in the BOM for the parent part" msgstr "" -#: common/models.py:1800 +#: common/models.py:1855 msgid "Allow Out of Stock Transfer" msgstr "" -#: common/models.py:1802 +#: common/models.py:1857 msgid "Allow stock items which are not in stock to be transferred between stock locations" msgstr "" -#: common/models.py:1808 +#: common/models.py:1863 msgid "Build Order Reference Pattern" msgstr "" -#: common/models.py:1810 +#: common/models.py:1865 msgid "Required pattern for generating Build Order reference field" msgstr "" -#: common/models.py:1816 common/models.py:1872 common/models.py:1894 -#: common/models.py:1930 +#: common/models.py:1871 common/models.py:1927 common/models.py:1949 +#: common/models.py:1985 msgid "Require Responsible Owner" msgstr "" -#: common/models.py:1817 common/models.py:1873 common/models.py:1895 -#: common/models.py:1931 +#: common/models.py:1872 common/models.py:1928 common/models.py:1950 +#: common/models.py:1986 msgid "A responsible owner must be assigned to each order" msgstr "" -#: common/models.py:1822 +#: common/models.py:1877 msgid "Require Active Part" msgstr "" -#: common/models.py:1823 +#: common/models.py:1878 msgid "Prevent build order creation for inactive parts" msgstr "" -#: common/models.py:1828 +#: common/models.py:1883 msgid "Require Locked Part" msgstr "" -#: common/models.py:1829 +#: common/models.py:1884 msgid "Prevent build order creation for unlocked parts" msgstr "" -#: common/models.py:1834 +#: common/models.py:1889 msgid "Require Valid BOM" msgstr "" -#: common/models.py:1836 +#: common/models.py:1891 msgid "Prevent build order creation unless BOM has been validated" msgstr "" -#: common/models.py:1842 +#: common/models.py:1897 msgid "Require Closed Child Orders" msgstr "" -#: common/models.py:1844 +#: common/models.py:1899 msgid "Prevent build order completion until all child orders are closed" msgstr "" -#: common/models.py:1850 +#: common/models.py:1905 msgid "Block Until Tests Pass" msgstr "" -#: common/models.py:1852 +#: common/models.py:1907 msgid "Prevent build outputs from being completed until all required tests pass" msgstr "" -#: common/models.py:1858 +#: common/models.py:1913 msgid "Enable Return Orders" msgstr "" -#: common/models.py:1859 +#: common/models.py:1914 msgid "Enable return order functionality in the user interface" msgstr "" -#: common/models.py:1864 +#: common/models.py:1919 msgid "Return Order Reference Pattern" msgstr "" -#: common/models.py:1866 +#: common/models.py:1921 msgid "Required pattern for generating Return Order reference field" msgstr "" -#: common/models.py:1878 +#: common/models.py:1933 msgid "Edit Completed Return Orders" msgstr "" -#: common/models.py:1880 +#: common/models.py:1935 msgid "Allow editing of return orders after they have been completed" msgstr "" -#: common/models.py:1886 +#: common/models.py:1941 msgid "Sales Order Reference Pattern" msgstr "" -#: common/models.py:1888 +#: common/models.py:1943 msgid "Required pattern for generating Sales Order reference field" msgstr "" -#: common/models.py:1900 +#: common/models.py:1955 msgid "Sales Order Default Shipment" msgstr "" -#: common/models.py:1901 +#: common/models.py:1956 msgid "Enable creation of default shipment with sales orders" msgstr "" -#: common/models.py:1906 +#: common/models.py:1961 msgid "Edit Completed Sales Orders" msgstr "" -#: common/models.py:1908 +#: common/models.py:1963 msgid "Allow editing of sales orders after they have been shipped or completed" msgstr "" -#: common/models.py:1914 +#: common/models.py:1969 msgid "Mark Shipped Orders as Complete" msgstr "" -#: common/models.py:1916 +#: common/models.py:1971 msgid "Sales orders marked as shipped will automatically be completed, bypassing the \"shipped\" status" msgstr "" -#: common/models.py:1922 +#: common/models.py:1977 msgid "Purchase Order Reference Pattern" msgstr "" -#: common/models.py:1924 +#: common/models.py:1979 msgid "Required pattern for generating Purchase Order reference field" msgstr "" -#: common/models.py:1936 +#: common/models.py:1991 msgid "Edit Completed Purchase Orders" msgstr "" -#: common/models.py:1938 +#: common/models.py:1993 msgid "Allow editing of purchase orders after they have been shipped or completed" msgstr "" -#: common/models.py:1944 +#: common/models.py:1999 msgid "Auto Complete Purchase Orders" msgstr "" -#: common/models.py:1946 +#: common/models.py:2001 msgid "Automatically mark purchase orders as complete when all line items are received" msgstr "" -#: common/models.py:1953 +#: common/models.py:2008 msgid "Enable password forgot" msgstr "" -#: common/models.py:1954 +#: common/models.py:2009 msgid "Enable password forgot function on the login pages" msgstr "" -#: common/models.py:1959 +#: common/models.py:2014 msgid "Enable registration" msgstr "" -#: common/models.py:1960 +#: common/models.py:2015 msgid "Enable self-registration for users on the login pages" msgstr "" -#: common/models.py:1965 +#: common/models.py:2020 msgid "Enable SSO" msgstr "" -#: common/models.py:1966 +#: common/models.py:2021 msgid "Enable SSO on the login pages" msgstr "" -#: common/models.py:1971 +#: common/models.py:2026 msgid "Enable SSO registration" msgstr "" -#: common/models.py:1973 +#: common/models.py:2028 msgid "Enable self-registration via SSO for users on the login pages" msgstr "" -#: common/models.py:1979 +#: common/models.py:2034 msgid "Enable SSO group sync" msgstr "" -#: common/models.py:1981 +#: common/models.py:2036 msgid "Enable synchronizing InvenTree groups with groups provided by the IdP" msgstr "" -#: common/models.py:1987 +#: common/models.py:2042 msgid "SSO group key" msgstr "" -#: common/models.py:1989 +#: common/models.py:2044 msgid "The name of the groups claim attribute provided by the IdP" msgstr "" -#: common/models.py:1995 +#: common/models.py:2050 msgid "SSO group map" msgstr "" -#: common/models.py:1997 +#: common/models.py:2052 msgid "A mapping from SSO groups to local InvenTree groups. If the local group does not exist, it will be created." msgstr "" -#: common/models.py:2003 +#: common/models.py:2058 msgid "Remove groups outside of SSO" msgstr "" -#: common/models.py:2005 +#: common/models.py:2060 msgid "Whether groups assigned to the user should be removed if they are not backend by the IdP. Disabling this setting might cause security issues" msgstr "" -#: common/models.py:2011 +#: common/models.py:2066 msgid "Email required" msgstr "" -#: common/models.py:2012 +#: common/models.py:2067 msgid "Require user to supply mail on signup" msgstr "" -#: common/models.py:2017 +#: common/models.py:2072 msgid "Auto-fill SSO users" msgstr "" -#: common/models.py:2019 +#: common/models.py:2074 msgid "Automatically fill out user-details from SSO account-data" msgstr "" -#: common/models.py:2025 +#: common/models.py:2080 msgid "Mail twice" msgstr "" -#: common/models.py:2026 +#: common/models.py:2081 msgid "On signup ask users twice for their mail" msgstr "" -#: common/models.py:2031 +#: common/models.py:2086 msgid "Password twice" msgstr "" -#: common/models.py:2032 +#: common/models.py:2087 msgid "On signup ask users twice for their password" msgstr "" -#: common/models.py:2037 +#: common/models.py:2092 msgid "Allowed domains" msgstr "" -#: common/models.py:2039 +#: common/models.py:2094 msgid "Restrict signup to certain domains (comma-separated, starting with @)" msgstr "" -#: common/models.py:2045 +#: common/models.py:2100 msgid "Group on signup" msgstr "" -#: common/models.py:2047 +#: common/models.py:2102 msgid "Group to which new users are assigned on registration. If SSO group sync is enabled, this group is only set if no group can be assigned from the IdP." msgstr "" -#: common/models.py:2053 +#: common/models.py:2108 msgid "Enforce MFA" msgstr "" -#: common/models.py:2054 +#: common/models.py:2109 msgid "Users must use multifactor security." msgstr "" -#: common/models.py:2059 +#: common/models.py:2114 msgid "Check plugins on startup" msgstr "" -#: common/models.py:2061 +#: common/models.py:2116 msgid "Check that all plugins are installed on startup - enable in container environments" msgstr "" -#: common/models.py:2069 +#: common/models.py:2124 msgid "Check for plugin updates" msgstr "" -#: common/models.py:2070 +#: common/models.py:2125 msgid "Enable periodic checks for updates to installed plugins" msgstr "" -#: common/models.py:2076 +#: common/models.py:2131 msgid "Enable URL integration" msgstr "" -#: common/models.py:2077 +#: common/models.py:2132 msgid "Enable plugins to add URL routes" msgstr "" -#: common/models.py:2083 +#: common/models.py:2138 msgid "Enable navigation integration" msgstr "" -#: common/models.py:2084 +#: common/models.py:2139 msgid "Enable plugins to integrate into navigation" msgstr "" -#: common/models.py:2090 +#: common/models.py:2145 msgid "Enable app integration" msgstr "" -#: common/models.py:2091 +#: common/models.py:2146 msgid "Enable plugins to add apps" msgstr "" -#: common/models.py:2097 +#: common/models.py:2152 msgid "Enable schedule integration" msgstr "" -#: common/models.py:2098 +#: common/models.py:2153 msgid "Enable plugins to run scheduled tasks" msgstr "" -#: common/models.py:2104 +#: common/models.py:2159 msgid "Enable event integration" msgstr "" -#: common/models.py:2105 +#: common/models.py:2160 msgid "Enable plugins to respond to internal events" msgstr "" -#: common/models.py:2111 +#: common/models.py:2166 +msgid "Enable interface integration" +msgstr "" + +#: common/models.py:2167 +msgid "Enable plugins to integrate into the user interface" +msgstr "" + +#: common/models.py:2173 msgid "Enable project codes" msgstr "" -#: common/models.py:2112 +#: common/models.py:2174 msgid "Enable project codes for tracking projects" msgstr "" -#: common/models.py:2117 +#: common/models.py:2179 msgid "Stocktake Functionality" msgstr "" -#: common/models.py:2119 +#: common/models.py:2181 msgid "Enable stocktake functionality for recording stock levels and calculating stock value" msgstr "" -#: common/models.py:2125 +#: common/models.py:2187 msgid "Exclude External Locations" msgstr "" -#: common/models.py:2127 +#: common/models.py:2189 msgid "Exclude stock items in external locations from stocktake calculations" msgstr "" -#: common/models.py:2133 +#: common/models.py:2195 msgid "Automatic Stocktake Period" msgstr "" -#: common/models.py:2135 +#: common/models.py:2197 msgid "Number of days between automatic stocktake recording (set to zero to disable)" msgstr "" -#: common/models.py:2141 +#: common/models.py:2203 msgid "Report Deletion Interval" msgstr "" -#: common/models.py:2143 +#: common/models.py:2205 msgid "Stocktake reports will be deleted after specified number of days" msgstr "" -#: common/models.py:2150 +#: common/models.py:2212 msgid "Display Users full names" msgstr "" -#: common/models.py:2151 +#: common/models.py:2213 msgid "Display Users full names instead of usernames" msgstr "" -#: common/models.py:2156 +#: common/models.py:2218 msgid "Enable Test Station Data" msgstr "" -#: common/models.py:2157 +#: common/models.py:2219 msgid "Enable test station data collection for test results" msgstr "" -#: common/models.py:2169 common/models.py:2549 -msgid "Settings key (must be unique - case insensitive" -msgstr "" - -#: common/models.py:2212 -msgid "Hide inactive parts" -msgstr "" - -#: common/models.py:2214 -msgid "Hide inactive parts in results displayed on the homepage" -msgstr "" - -#: common/models.py:2220 -msgid "Show subscribed parts" -msgstr "" - -#: common/models.py:2221 -msgid "Show subscribed parts on the homepage" +#: common/models.py:2224 +msgid "Create Template on Upload" msgstr "" #: common/models.py:2226 -msgid "Show subscribed categories" +msgid "Create a new test template when uploading test data which does not match an existing template" msgstr "" -#: common/models.py:2227 -msgid "Show subscribed part categories on the homepage" -msgstr "" - -#: common/models.py:2232 -msgid "Show latest parts" -msgstr "" - -#: common/models.py:2233 -msgid "Show latest parts on the homepage" -msgstr "" - -#: common/models.py:2238 -msgid "Show invalid BOMs" -msgstr "" - -#: common/models.py:2239 -msgid "Show BOMs that await validation on the homepage" -msgstr "" - -#: common/models.py:2244 -msgid "Show recent stock changes" -msgstr "" - -#: common/models.py:2245 -msgid "Show recently changed stock items on the homepage" -msgstr "" - -#: common/models.py:2250 -msgid "Show low stock" -msgstr "" - -#: common/models.py:2251 -msgid "Show low stock items on the homepage" -msgstr "" - -#: common/models.py:2256 -msgid "Show depleted stock" -msgstr "" - -#: common/models.py:2257 -msgid "Show depleted stock items on the homepage" -msgstr "" - -#: common/models.py:2262 -msgid "Show needed stock" -msgstr "" - -#: common/models.py:2263 -msgid "Show stock items needed for builds on the homepage" -msgstr "" - -#: common/models.py:2268 -msgid "Show expired stock" -msgstr "" - -#: common/models.py:2269 -msgid "Show expired stock items on the homepage" -msgstr "" - -#: common/models.py:2274 -msgid "Show stale stock" -msgstr "" - -#: common/models.py:2275 -msgid "Show stale stock items on the homepage" -msgstr "" - -#: common/models.py:2280 -msgid "Show pending builds" +#: common/models.py:2279 +msgid "Hide inactive parts" msgstr "" #: common/models.py:2281 -msgid "Show pending builds on the homepage" -msgstr "" - -#: common/models.py:2286 -msgid "Show overdue builds" +msgid "Hide inactive parts in results displayed on the homepage" msgstr "" #: common/models.py:2287 -msgid "Show overdue builds on the homepage" +msgid "Show subscribed parts" msgstr "" -#: common/models.py:2292 -msgid "Show outstanding POs" +#: common/models.py:2288 +msgid "Show subscribed parts on the homepage" msgstr "" #: common/models.py:2293 -msgid "Show outstanding POs on the homepage" +msgid "Show subscribed categories" msgstr "" -#: common/models.py:2298 -msgid "Show overdue POs" +#: common/models.py:2294 +msgid "Show subscribed part categories on the homepage" msgstr "" #: common/models.py:2299 -msgid "Show overdue POs on the homepage" +msgid "Show latest parts" msgstr "" -#: common/models.py:2304 -msgid "Show outstanding SOs" +#: common/models.py:2300 +msgid "Show latest parts on the homepage" msgstr "" #: common/models.py:2305 -msgid "Show outstanding SOs on the homepage" +msgid "Show invalid BOMs" msgstr "" -#: common/models.py:2310 -msgid "Show overdue SOs" +#: common/models.py:2306 +msgid "Show BOMs that await validation on the homepage" msgstr "" #: common/models.py:2311 -msgid "Show overdue SOs on the homepage" +msgid "Show recent stock changes" msgstr "" -#: common/models.py:2316 -msgid "Show pending SO shipments" +#: common/models.py:2312 +msgid "Show recently changed stock items on the homepage" msgstr "" #: common/models.py:2317 -msgid "Show pending SO shipments on the homepage" +msgid "Show low stock" msgstr "" -#: common/models.py:2322 -msgid "Show News" +#: common/models.py:2318 +msgid "Show low stock items on the homepage" msgstr "" #: common/models.py:2323 -msgid "Show news on the homepage" +msgid "Show depleted stock" msgstr "" -#: common/models.py:2328 -msgid "Inline label display" +#: common/models.py:2324 +msgid "Show depleted stock items on the homepage" +msgstr "" + +#: common/models.py:2329 +msgid "Show needed stock" msgstr "" #: common/models.py:2330 -msgid "Display PDF labels in the browser, instead of downloading as a file" +msgid "Show stock items needed for builds on the homepage" +msgstr "" + +#: common/models.py:2335 +msgid "Show expired stock" msgstr "" #: common/models.py:2336 -msgid "Default label printer" +msgid "Show expired stock items on the homepage" msgstr "" -#: common/models.py:2338 -msgid "Configure which label printer should be selected by default" +#: common/models.py:2341 +msgid "Show stale stock" msgstr "" -#: common/models.py:2344 -msgid "Inline report display" +#: common/models.py:2342 +msgid "Show stale stock items on the homepage" msgstr "" -#: common/models.py:2346 -msgid "Display PDF reports in the browser, instead of downloading as a file" +#: common/models.py:2347 +msgid "Show pending builds" msgstr "" -#: common/models.py:2352 -msgid "Search Parts" +#: common/models.py:2348 +msgid "Show pending builds on the homepage" msgstr "" #: common/models.py:2353 -msgid "Display parts in search preview window" +msgid "Show overdue builds" msgstr "" -#: common/models.py:2358 -msgid "Search Supplier Parts" +#: common/models.py:2354 +msgid "Show overdue builds on the homepage" msgstr "" #: common/models.py:2359 -msgid "Display supplier parts in search preview window" +msgid "Show outstanding POs" msgstr "" -#: common/models.py:2364 -msgid "Search Manufacturer Parts" +#: common/models.py:2360 +msgid "Show outstanding POs on the homepage" msgstr "" #: common/models.py:2365 -msgid "Display manufacturer parts in search preview window" +msgid "Show overdue POs" msgstr "" -#: common/models.py:2370 -msgid "Hide Inactive Parts" +#: common/models.py:2366 +msgid "Show overdue POs on the homepage" msgstr "" #: common/models.py:2371 -msgid "Excluded inactive parts from search preview window" +msgid "Show outstanding SOs" msgstr "" -#: common/models.py:2376 -msgid "Search Categories" +#: common/models.py:2372 +msgid "Show outstanding SOs on the homepage" msgstr "" #: common/models.py:2377 -msgid "Display part categories in search preview window" +msgid "Show overdue SOs" msgstr "" -#: common/models.py:2382 -msgid "Search Stock" +#: common/models.py:2378 +msgid "Show overdue SOs on the homepage" msgstr "" #: common/models.py:2383 -msgid "Display stock items in search preview window" +msgid "Show pending SO shipments" msgstr "" -#: common/models.py:2388 -msgid "Hide Unavailable Stock Items" +#: common/models.py:2384 +msgid "Show pending SO shipments on the homepage" +msgstr "" + +#: common/models.py:2389 +msgid "Show News" msgstr "" #: common/models.py:2390 -msgid "Exclude stock items which are not available from the search preview window" +msgid "Show news on the homepage" msgstr "" -#: common/models.py:2396 -msgid "Search Locations" +#: common/models.py:2395 +msgid "Inline label display" msgstr "" #: common/models.py:2397 -msgid "Display stock locations in search preview window" -msgstr "" - -#: common/models.py:2402 -msgid "Search Companies" +msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "" #: common/models.py:2403 -msgid "Display companies in search preview window" +msgid "Default label printer" msgstr "" -#: common/models.py:2408 -msgid "Search Build Orders" +#: common/models.py:2405 +msgid "Configure which label printer should be selected by default" msgstr "" -#: common/models.py:2409 -msgid "Display build orders in search preview window" +#: common/models.py:2411 +msgid "Inline report display" msgstr "" -#: common/models.py:2414 -msgid "Search Purchase Orders" +#: common/models.py:2413 +msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:2415 -msgid "Display purchase orders in search preview window" +#: common/models.py:2419 +msgid "Search Parts" msgstr "" #: common/models.py:2420 -msgid "Exclude Inactive Purchase Orders" +msgid "Display parts in search preview window" msgstr "" -#: common/models.py:2422 -msgid "Exclude inactive purchase orders from search preview window" +#: common/models.py:2425 +msgid "Search Supplier Parts" msgstr "" -#: common/models.py:2428 -msgid "Search Sales Orders" +#: common/models.py:2426 +msgid "Display supplier parts in search preview window" msgstr "" -#: common/models.py:2429 -msgid "Display sales orders in search preview window" +#: common/models.py:2431 +msgid "Search Manufacturer Parts" msgstr "" -#: common/models.py:2434 -msgid "Exclude Inactive Sales Orders" +#: common/models.py:2432 +msgid "Display manufacturer parts in search preview window" msgstr "" -#: common/models.py:2436 -msgid "Exclude inactive sales orders from search preview window" +#: common/models.py:2437 +msgid "Hide Inactive Parts" msgstr "" -#: common/models.py:2442 -msgid "Search Return Orders" +#: common/models.py:2438 +msgid "Excluded inactive parts from search preview window" msgstr "" #: common/models.py:2443 -msgid "Display return orders in search preview window" +msgid "Search Categories" msgstr "" -#: common/models.py:2448 -msgid "Exclude Inactive Return Orders" +#: common/models.py:2444 +msgid "Display part categories in search preview window" +msgstr "" + +#: common/models.py:2449 +msgid "Search Stock" msgstr "" #: common/models.py:2450 -msgid "Exclude inactive return orders from search preview window" +msgid "Display stock items in search preview window" msgstr "" -#: common/models.py:2456 -msgid "Search Preview Results" +#: common/models.py:2455 +msgid "Hide Unavailable Stock Items" msgstr "" -#: common/models.py:2458 -msgid "Number of results to show in each section of the search preview window" +#: common/models.py:2457 +msgid "Exclude stock items which are not available from the search preview window" +msgstr "" + +#: common/models.py:2463 +msgid "Search Locations" msgstr "" #: common/models.py:2464 -msgid "Regex Search" +msgid "Display stock locations in search preview window" msgstr "" -#: common/models.py:2465 -msgid "Enable regular expressions in search queries" +#: common/models.py:2469 +msgid "Search Companies" msgstr "" #: common/models.py:2470 -msgid "Whole Word Search" +msgid "Display companies in search preview window" msgstr "" -#: common/models.py:2471 -msgid "Search queries return results for whole word matches" +#: common/models.py:2475 +msgid "Search Build Orders" msgstr "" #: common/models.py:2476 -msgid "Show Quantity in Forms" +msgid "Display build orders in search preview window" msgstr "" -#: common/models.py:2477 -msgid "Display available part quantity in some forms" +#: common/models.py:2481 +msgid "Search Purchase Orders" msgstr "" #: common/models.py:2482 -msgid "Escape Key Closes Forms" +msgid "Display purchase orders in search preview window" msgstr "" -#: common/models.py:2483 -msgid "Use the escape key to close modal forms" -msgstr "" - -#: common/models.py:2488 -msgid "Fixed Navbar" +#: common/models.py:2487 +msgid "Exclude Inactive Purchase Orders" msgstr "" #: common/models.py:2489 -msgid "The navbar position is fixed to the top of the screen" -msgstr "" - -#: common/models.py:2494 -msgid "Date Format" +msgid "Exclude inactive purchase orders from search preview window" msgstr "" #: common/models.py:2495 -msgid "Preferred format for displaying dates" +msgid "Search Sales Orders" msgstr "" -#: common/models.py:2508 part/templates/part/detail.html:41 -msgid "Part Scheduling" +#: common/models.py:2496 +msgid "Display sales orders in search preview window" +msgstr "" + +#: common/models.py:2501 +msgid "Exclude Inactive Sales Orders" +msgstr "" + +#: common/models.py:2503 +msgid "Exclude inactive sales orders from search preview window" msgstr "" #: common/models.py:2509 -msgid "Display part scheduling information" +msgid "Search Return Orders" msgstr "" -#: common/models.py:2514 part/templates/part/detail.html:62 -msgid "Part Stocktake" +#: common/models.py:2510 +msgid "Display return orders in search preview window" msgstr "" -#: common/models.py:2516 -msgid "Display part stocktake information (if stocktake functionality is enabled)" +#: common/models.py:2515 +msgid "Exclude Inactive Return Orders" msgstr "" -#: common/models.py:2522 -msgid "Table String Length" +#: common/models.py:2517 +msgid "Exclude inactive return orders from search preview window" msgstr "" -#: common/models.py:2524 -msgid "Maximum length limit for strings displayed in table views" +#: common/models.py:2523 +msgid "Search Preview Results" msgstr "" -#: common/models.py:2530 -msgid "Receive error reports" +#: common/models.py:2525 +msgid "Number of results to show in each section of the search preview window" msgstr "" #: common/models.py:2531 -msgid "Receive notifications for system errors" +msgid "Regex Search" msgstr "" -#: common/models.py:2536 -msgid "Last used printing machines" +#: common/models.py:2532 +msgid "Enable regular expressions in search queries" msgstr "" #: common/models.py:2537 +msgid "Whole Word Search" +msgstr "" + +#: common/models.py:2538 +msgid "Search queries return results for whole word matches" +msgstr "" + +#: common/models.py:2543 +msgid "Show Quantity in Forms" +msgstr "" + +#: common/models.py:2544 +msgid "Display available part quantity in some forms" +msgstr "" + +#: common/models.py:2549 +msgid "Escape Key Closes Forms" +msgstr "" + +#: common/models.py:2550 +msgid "Use the escape key to close modal forms" +msgstr "" + +#: common/models.py:2555 +msgid "Fixed Navbar" +msgstr "" + +#: common/models.py:2556 +msgid "The navbar position is fixed to the top of the screen" +msgstr "" + +#: common/models.py:2561 +msgid "Date Format" +msgstr "" + +#: common/models.py:2562 +msgid "Preferred format for displaying dates" +msgstr "" + +#: common/models.py:2575 part/templates/part/detail.html:41 +msgid "Part Scheduling" +msgstr "" + +#: common/models.py:2576 +msgid "Display part scheduling information" +msgstr "" + +#: common/models.py:2581 part/templates/part/detail.html:62 +msgid "Part Stocktake" +msgstr "" + +#: common/models.py:2583 +msgid "Display part stocktake information (if stocktake functionality is enabled)" +msgstr "" + +#: common/models.py:2589 +msgid "Table String Length" +msgstr "" + +#: common/models.py:2591 +msgid "Maximum length limit for strings displayed in table views" +msgstr "" + +#: common/models.py:2597 +msgid "Receive error reports" +msgstr "" + +#: common/models.py:2598 +msgid "Receive notifications for system errors" +msgstr "" + +#: common/models.py:2603 +msgid "Last used printing machines" +msgstr "" + +#: common/models.py:2604 msgid "Save the last used printing machines for a user" msgstr "" -#: common/models.py:2557 common/models.py:2558 common/models.py:2715 -#: common/models.py:2716 common/models.py:2961 common/models.py:2962 -#: common/models.py:3288 common/models.py:3289 importer/models.py:88 -#: part/models.py:3307 part/models.py:3394 part/models.py:3468 -#: part/models.py:3496 plugin/models.py:274 plugin/models.py:275 -#: report/templates/report/inventree_test_report.html:105 -#: templates/js/translated/stock.js:3120 users/models.py:111 +#: common/models.py:2621 common/models.py:2622 common/models.py:2779 +#: common/models.py:2780 common/models.py:3025 common/models.py:3026 +#: common/models.py:3349 common/models.py:3350 common/models.py:3534 +#: importer/models.py:89 part/models.py:3358 part/models.py:3445 +#: part/models.py:3519 part/models.py:3547 plugin/models.py:313 +#: plugin/models.py:314 report/templates/report/inventree_test_report.html:105 +#: templates/js/translated/stock.js:3121 users/models.py:111 msgid "User" msgstr "Χρήστης" -#: common/models.py:2580 +#: common/models.py:2644 msgid "Price break quantity" msgstr "" -#: common/models.py:2587 company/serializers.py:513 order/admin.py:42 -#: order/models.py:1430 order/models.py:2417 -#: templates/js/translated/company.js:1823 templates/js/translated/part.js:1892 +#: common/models.py:2651 company/serializers.py:524 order/admin.py:42 +#: order/models.py:1447 order/models.py:2456 +#: templates/js/translated/company.js:1824 templates/js/translated/part.js:1892 #: templates/js/translated/pricing.js:621 #: templates/js/translated/return_order.js:739 msgid "Price" msgstr "" -#: common/models.py:2588 +#: common/models.py:2652 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:2692 common/models.py:2877 +#: common/models.py:2756 common/models.py:2941 msgid "Endpoint" msgstr "" -#: common/models.py:2693 +#: common/models.py:2757 msgid "Endpoint at which this webhook is received" msgstr "" -#: common/models.py:2703 +#: common/models.py:2767 msgid "Name for this webhook" msgstr "" -#: common/models.py:2707 +#: common/models.py:2771 msgid "Is this webhook active" msgstr "" -#: common/models.py:2723 users/models.py:159 +#: common/models.py:2787 users/models.py:159 msgid "Token" msgstr "" -#: common/models.py:2724 +#: common/models.py:2788 msgid "Token for access" msgstr "" -#: common/models.py:2732 +#: common/models.py:2796 msgid "Secret" msgstr "" -#: common/models.py:2733 +#: common/models.py:2797 msgid "Shared secret for HMAC" msgstr "" -#: common/models.py:2841 +#: common/models.py:2905 msgid "Message ID" msgstr "" -#: common/models.py:2842 +#: common/models.py:2906 msgid "Unique identifier for this message" msgstr "" -#: common/models.py:2850 +#: common/models.py:2914 msgid "Host" msgstr "" -#: common/models.py:2851 +#: common/models.py:2915 msgid "Host from which this message was received" msgstr "" -#: common/models.py:2859 +#: common/models.py:2923 msgid "Header" msgstr "" -#: common/models.py:2860 +#: common/models.py:2924 msgid "Header of this message" msgstr "" -#: common/models.py:2867 +#: common/models.py:2931 msgid "Body" msgstr "" -#: common/models.py:2868 +#: common/models.py:2932 msgid "Body of this message" msgstr "" -#: common/models.py:2878 +#: common/models.py:2942 msgid "Endpoint on which this message was received" msgstr "" -#: common/models.py:2883 +#: common/models.py:2947 msgid "Worked on" msgstr "" -#: common/models.py:2884 +#: common/models.py:2948 msgid "Was the work on this message finished?" msgstr "" -#: common/models.py:3010 +#: common/models.py:3074 msgid "Id" msgstr "" -#: common/models.py:3012 templates/js/translated/company.js:965 -#: templates/js/translated/news.js:44 +#: common/models.py:3076 part/serializers.py:271 +#: templates/js/translated/company.js:966 templates/js/translated/news.js:44 msgid "Title" msgstr "" -#: common/models.py:3014 common/models.py:3272 company/models.py:149 -#: company/models.py:446 company/models.py:512 company/models.py:818 -#: order/models.py:302 order/models.py:1385 order/models.py:1817 -#: part/admin.py:55 part/models.py:1057 +#: common/models.py:3078 common/models.py:3333 company/models.py:146 +#: company/models.py:443 company/models.py:509 company/models.py:815 +#: order/models.py:309 order/models.py:1402 order/models.py:1846 +#: part/admin.py:55 part/models.py:1118 #: part/templates/part/part_scheduling.html:11 #: report/templates/report/inventree_build_order_report.html:164 -#: stock/admin.py:229 templates/js/translated/company.js:1319 -#: templates/js/translated/company.js:1673 templates/js/translated/order.js:376 +#: stock/admin.py:230 templates/js/translated/company.js:1320 +#: templates/js/translated/company.js:1674 templates/js/translated/order.js:376 #: templates/js/translated/part.js:2475 -#: templates/js/translated/purchase_order.js:2110 -#: templates/js/translated/purchase_order.js:2274 +#: templates/js/translated/purchase_order.js:2094 +#: templates/js/translated/purchase_order.js:2258 #: templates/js/translated/return_order.js:778 -#: templates/js/translated/sales_order.js:1092 -#: templates/js/translated/sales_order.js:2023 +#: templates/js/translated/sales_order.js:1058 +#: templates/js/translated/sales_order.js:2004 msgid "Link" msgstr "Σύνδεσμος" -#: common/models.py:3016 templates/js/translated/news.js:60 +#: common/models.py:3080 templates/js/translated/news.js:60 msgid "Published" msgstr "" -#: common/models.py:3018 templates/InvenTree/settings/plugin_settings.html:32 +#: common/models.py:3082 templates/InvenTree/settings/plugin_settings.html:32 #: templates/js/translated/news.js:56 templates/js/translated/plugin.js:103 msgid "Author" msgstr "" -#: common/models.py:3020 templates/js/translated/news.js:52 +#: common/models.py:3084 templates/js/translated/news.js:52 msgid "Summary" msgstr "" -#: common/models.py:3023 +#: common/models.py:3087 msgid "Read" msgstr "" -#: common/models.py:3023 +#: common/models.py:3087 msgid "Was this news item read?" msgstr "" -#: common/models.py:3040 company/models.py:159 part/models.py:1067 +#: common/models.py:3104 company/models.py:156 part/models.py:1128 #: report/templates/report/inventree_bill_of_materials_report.html:126 #: report/templates/report/inventree_bill_of_materials_report.html:148 #: report/templates/report/inventree_return_order_report.html:35 -#: stock/templates/stock/item_base.html:133 templates/503.html:31 +#: stock/templates/stock/item_base.html:130 templates/503.html:31 #: templates/hover_image.html:7 templates/hover_image.html:9 #: templates/modals.html:6 msgid "Image" msgstr "" -#: common/models.py:3040 +#: common/models.py:3104 msgid "Image file" msgstr "" -#: common/models.py:3052 common/models.py:3256 +#: common/models.py:3116 common/models.py:3317 msgid "Target model type for this image" msgstr "" -#: common/models.py:3056 +#: common/models.py:3120 msgid "Target model ID for this image" msgstr "" -#: common/models.py:3078 +#: common/models.py:3142 msgid "Custom Unit" msgstr "" -#: common/models.py:3099 +#: common/models.py:3160 msgid "Unit symbol must be unique" msgstr "" -#: common/models.py:3114 +#: common/models.py:3175 msgid "Unit name must be a valid identifier" msgstr "" -#: common/models.py:3133 +#: common/models.py:3194 msgid "Unit name" msgstr "" -#: common/models.py:3140 templates/InvenTree/settings/settings_staff_js.html:75 +#: common/models.py:3201 templates/InvenTree/settings/settings_staff_js.html:75 msgid "Symbol" msgstr "" -#: common/models.py:3141 +#: common/models.py:3202 msgid "Optional unit symbol" msgstr "" -#: common/models.py:3147 templates/InvenTree/settings/settings_staff_js.html:71 +#: common/models.py:3208 templates/InvenTree/settings/settings_staff_js.html:71 msgid "Definition" msgstr "" -#: common/models.py:3148 +#: common/models.py:3209 msgid "Unit definition" msgstr "" -#: common/models.py:3206 common/models.py:3263 stock/models.py:2558 -#: templates/js/translated/attachment.js:119 +#: common/models.py:3267 common/models.py:3324 stock/models.py:2674 +#: stock/serializers.py:244 templates/js/translated/attachment.js:119 #: templates/js/translated/attachment.js:345 msgid "Attachment" msgstr "Συνημμένο" -#: common/models.py:3218 +#: common/models.py:3279 msgid "Missing file" msgstr "Το αρχείο λείπει" -#: common/models.py:3219 +#: common/models.py:3280 msgid "Missing external link" msgstr "Λείπει ο εξωτερικός σύνδεσμος" -#: common/models.py:3264 +#: common/models.py:3325 msgid "Select file to attach" msgstr "Επιλέξτε αρχείο για επισύναψη" -#: common/models.py:3279 templates/js/translated/attachment.js:120 +#: common/models.py:3340 templates/js/translated/attachment.js:120 #: templates/js/translated/attachment.js:360 msgid "Comment" msgstr "Σχόλιο" -#: common/models.py:3280 +#: common/models.py:3341 msgid "Attachment comment" msgstr "" -#: common/models.py:3296 +#: common/models.py:3357 msgid "Upload date" msgstr "" -#: common/models.py:3297 +#: common/models.py:3358 msgid "Date the file was uploaded" msgstr "" -#: common/models.py:3301 +#: common/models.py:3362 msgid "File size" msgstr "" -#: common/models.py:3301 +#: common/models.py:3362 msgid "File size in bytes" msgstr "" -#: common/models.py:3339 common/serializers.py:562 +#: common/models.py:3400 common/serializers.py:609 msgid "Invalid model type specified for attachment" msgstr "" -#: common/notifications.py:314 +#: common/models.py:3409 plugin/models.py:43 users/models.py:100 +msgid "Key" +msgstr "" + +#: common/models.py:3410 +msgid "Value that will be saved in the models database" +msgstr "" + +#: common/models.py:3413 +msgid "Name of the state" +msgstr "" + +#: common/models.py:3417 part/serializers.py:273 +msgid "Label" +msgstr "" + +#: common/models.py:3418 +msgid "Label that will be displayed in the frontend" +msgstr "" + +#: common/models.py:3424 +msgid "Color" +msgstr "" + +#: common/models.py:3425 +msgid "Color that will be displayed in the frontend" +msgstr "" + +#: common/models.py:3428 +msgid "Logical Key" +msgstr "" + +#: common/models.py:3430 +msgid "State logical key that is equal to this custom state in business logic" +msgstr "" + +#: common/models.py:3438 part/serializers.py:275 +msgid "Model" +msgstr "" + +#: common/models.py:3439 +msgid "Model this state is associated with" +msgstr "" + +#: common/models.py:3443 +msgid "Reference Status Set" +msgstr "" + +#: common/models.py:3444 +msgid "Status set that is extended with this custom state" +msgstr "" + +#: common/models.py:3450 +msgid "Custom State" +msgstr "" + +#: common/models.py:3451 +msgid "Custom States" +msgstr "" + +#: common/models.py:3466 +msgid "Model must be selected" +msgstr "" + +#: common/models.py:3469 +msgid "Key must be selected" +msgstr "" + +#: common/models.py:3472 +msgid "Logical key must be selected" +msgstr "" + +#: common/models.py:3476 +msgid "Key must be different from logical key" +msgstr "" + +#: common/models.py:3480 +msgid "Reference status must be selected" +msgstr "" + +#: common/models.py:3492 +msgid "Reference status set not found" +msgstr "" + +#: common/models.py:3498 +msgid "Key must be different from the logical keys of the reference status" +msgstr "" + +#: common/models.py:3504 +msgid "Logical key must be in the logical keys of the reference status" +msgstr "" + +#: common/models.py:3519 +msgid "Barcode Scan" +msgstr "" + +#: common/models.py:3523 importer/models.py:512 part/models.py:4009 +msgid "Data" +msgstr "" + +#: common/models.py:3524 +msgid "Barcode data" +msgstr "" + +#: common/models.py:3535 +msgid "User who scanned the barcode" +msgstr "" + +#: common/models.py:3540 importer/models.py:60 +msgid "Timestamp" +msgstr "" + +#: common/models.py:3541 +msgid "Date and time of the barcode scan" +msgstr "" + +#: common/models.py:3547 +msgid "URL endpoint which processed the barcode" +msgstr "" + +#: common/models.py:3554 order/models.py:1437 plugin/serializers.py:89 +msgid "Context" +msgstr "" + +#: common/models.py:3555 +msgid "Context data for the barcode scan" +msgstr "" + +#: common/models.py:3562 +msgid "Response" +msgstr "" + +#: common/models.py:3563 +msgid "Response data from the barcode scan" +msgstr "" + +#: common/models.py:3569 report/templates/report/inventree_test_report.html:103 +#: stock/models.py:2660 +msgid "Result" +msgstr "" + +#: common/models.py:3570 +msgid "Was the barcode scan successful?" +msgstr "" + +#: common/notifications.py:328 #, python-brace-format msgid "New {verbose_name}" msgstr "" -#: common/notifications.py:316 +#: common/notifications.py:330 msgid "A new order has been created and assigned to you" msgstr "" -#: common/notifications.py:322 +#: common/notifications.py:336 #, python-brace-format msgid "{verbose_name} canceled" msgstr "" -#: common/notifications.py:324 +#: common/notifications.py:338 msgid "A order that is assigned to you was canceled" msgstr "" -#: common/notifications.py:330 common/notifications.py:337 order/api.py:462 +#: common/notifications.py:344 common/notifications.py:351 order/api.py:440 msgid "Items Received" msgstr "" -#: common/notifications.py:332 +#: common/notifications.py:346 msgid "Items have been received against a purchase order" msgstr "" -#: common/notifications.py:339 +#: common/notifications.py:353 msgid "Items have been received against a return order" msgstr "" -#: common/notifications.py:457 +#: common/notifications.py:475 msgid "Error raised by plugin" msgstr "" -#: common/serializers.py:375 +#: common/serializers.py:423 msgid "Is Running" msgstr "" -#: common/serializers.py:381 +#: common/serializers.py:429 msgid "Pending Tasks" msgstr "" -#: common/serializers.py:387 +#: common/serializers.py:435 msgid "Scheduled Tasks" msgstr "" -#: common/serializers.py:393 +#: common/serializers.py:441 msgid "Failed Tasks" msgstr "" -#: common/serializers.py:408 +#: common/serializers.py:456 msgid "Task ID" msgstr "" -#: common/serializers.py:408 +#: common/serializers.py:456 msgid "Unique task ID" msgstr "" -#: common/serializers.py:410 +#: common/serializers.py:458 msgid "Lock" msgstr "" -#: common/serializers.py:410 +#: common/serializers.py:458 msgid "Lock time" msgstr "" -#: common/serializers.py:412 +#: common/serializers.py:460 msgid "Task name" msgstr "" -#: common/serializers.py:414 +#: common/serializers.py:462 msgid "Function" msgstr "" -#: common/serializers.py:414 +#: common/serializers.py:462 msgid "Function name" msgstr "" -#: common/serializers.py:416 +#: common/serializers.py:464 msgid "Arguments" msgstr "" -#: common/serializers.py:416 +#: common/serializers.py:464 msgid "Task arguments" msgstr "" -#: common/serializers.py:419 +#: common/serializers.py:467 msgid "Keyword Arguments" msgstr "" -#: common/serializers.py:419 +#: common/serializers.py:467 msgid "Task keyword arguments" msgstr "" -#: common/serializers.py:529 +#: common/serializers.py:577 msgid "Filename" msgstr "Όνομα αρχείου" -#: common/serializers.py:536 report/api.py:100 report/serializers.py:53 +#: common/serializers.py:584 report/api.py:100 report/serializers.py:54 msgid "Model Type" msgstr "" -#: common/serializers.py:565 +#: common/serializers.py:612 msgid "User does not have permission to create or edit attachments for this model" msgstr "" @@ -4116,15 +4295,15 @@ msgstr "" msgid "Match Items" msgstr "" -#: common/views.py:401 +#: common/views.py:397 msgid "Fields matching failed" msgstr "" -#: common/views.py:464 +#: common/views.py:460 msgid "Parts imported" msgstr "" -#: common/views.py:494 order/templates/order/order_wizard/match_fields.html:27 +#: common/views.py:490 order/templates/order/order_wizard/match_fields.html:27 #: order/templates/order/order_wizard/match_parts.html:19 #: order/templates/order/order_wizard/po_upload.html:49 #: part/templates/part/import_wizard/match_fields.html:27 @@ -4155,429 +4334,429 @@ msgstr "" msgid "Supplier is Active" msgstr "" -#: company/models.py:100 company/models.py:371 +#: company/models.py:97 company/models.py:368 #: company/templates/company/company_base.html:8 #: company/templates/company/company_base.html:12 stock/api.py:812 -#: templates/InvenTree/search.html:178 templates/js/translated/company.js:496 +#: templates/InvenTree/search.html:178 templates/js/translated/company.js:497 msgid "Company" msgstr "" -#: company/models.py:101 company/views.py:51 +#: company/models.py:98 company/views.py:51 #: templates/js/translated/search.js:192 msgid "Companies" msgstr "" -#: company/models.py:117 +#: company/models.py:114 msgid "Company description" msgstr "" -#: company/models.py:118 +#: company/models.py:115 msgid "Description of the company" msgstr "" -#: company/models.py:123 company/templates/company/company_base.html:106 +#: company/models.py:120 company/templates/company/company_base.html:106 #: templates/InvenTree/settings/plugin_settings.html:54 -#: templates/js/translated/company.js:532 +#: templates/js/translated/company.js:533 msgid "Website" msgstr "" -#: company/models.py:123 +#: company/models.py:120 msgid "Company website URL" msgstr "" -#: company/models.py:128 +#: company/models.py:125 msgid "Phone number" msgstr "" -#: company/models.py:130 +#: company/models.py:127 msgid "Contact phone number" msgstr "" -#: company/models.py:137 +#: company/models.py:134 msgid "Contact email address" msgstr "" -#: company/models.py:142 company/models.py:275 -#: company/templates/company/company_base.html:145 order/models.py:342 -#: order/templates/order/order_base.html:208 -#: order/templates/order/return_order_base.html:177 -#: order/templates/order/sales_order_base.html:221 +#: company/models.py:139 company/models.py:272 +#: company/templates/company/company_base.html:145 order/models.py:349 +#: order/templates/order/order_base.html:217 +#: order/templates/order/return_order_base.html:178 +#: order/templates/order/sales_order_base.html:222 msgid "Contact" msgstr "" -#: company/models.py:144 +#: company/models.py:141 msgid "Point of contact" msgstr "" -#: company/models.py:150 +#: company/models.py:147 msgid "Link to external company information" msgstr "" -#: company/models.py:163 +#: company/models.py:160 msgid "Is this company active?" msgstr "" -#: company/models.py:168 +#: company/models.py:165 msgid "Is customer" msgstr "" -#: company/models.py:169 +#: company/models.py:166 msgid "Do you sell items to this company?" msgstr "" -#: company/models.py:174 +#: company/models.py:171 msgid "Is supplier" msgstr "" -#: company/models.py:175 +#: company/models.py:172 msgid "Do you purchase items from this company?" msgstr "" -#: company/models.py:180 +#: company/models.py:177 msgid "Is manufacturer" msgstr "" -#: company/models.py:181 +#: company/models.py:178 msgid "Does this company manufacture parts?" msgstr "" -#: company/models.py:189 +#: company/models.py:186 msgid "Default currency used for this company" msgstr "" -#: company/models.py:314 company/templates/company/company_base.html:124 -#: order/models.py:352 order/templates/order/order_base.html:215 -#: order/templates/order/return_order_base.html:184 -#: order/templates/order/sales_order_base.html:228 +#: company/models.py:311 company/templates/company/company_base.html:124 +#: order/models.py:359 order/templates/order/order_base.html:224 +#: order/templates/order/return_order_base.html:185 +#: order/templates/order/sales_order_base.html:229 msgid "Address" msgstr "" -#: company/models.py:315 company/templates/company/sidebar.html:35 +#: company/models.py:312 company/templates/company/sidebar.html:35 msgid "Addresses" msgstr "" -#: company/models.py:372 +#: company/models.py:369 msgid "Select company" msgstr "" -#: company/models.py:377 +#: company/models.py:374 msgid "Address title" msgstr "" -#: company/models.py:378 +#: company/models.py:375 msgid "Title describing the address entry" msgstr "" -#: company/models.py:384 +#: company/models.py:381 msgid "Primary address" msgstr "" -#: company/models.py:385 +#: company/models.py:382 msgid "Set as primary address" msgstr "" -#: company/models.py:390 templates/js/translated/company.js:914 -#: templates/js/translated/company.js:971 +#: company/models.py:387 templates/js/translated/company.js:915 +#: templates/js/translated/company.js:972 msgid "Line 1" msgstr "" -#: company/models.py:391 +#: company/models.py:388 msgid "Address line 1" msgstr "" -#: company/models.py:397 templates/js/translated/company.js:915 -#: templates/js/translated/company.js:977 +#: company/models.py:394 templates/js/translated/company.js:916 +#: templates/js/translated/company.js:978 msgid "Line 2" msgstr "" -#: company/models.py:398 +#: company/models.py:395 msgid "Address line 2" msgstr "" -#: company/models.py:404 company/models.py:405 -#: templates/js/translated/company.js:983 +#: company/models.py:401 company/models.py:402 +#: templates/js/translated/company.js:984 msgid "Postal code" msgstr "" -#: company/models.py:411 +#: company/models.py:408 msgid "City/Region" msgstr "" -#: company/models.py:412 +#: company/models.py:409 msgid "Postal code city/region" msgstr "" -#: company/models.py:418 +#: company/models.py:415 msgid "State/Province" msgstr "" -#: company/models.py:419 +#: company/models.py:416 msgid "State or province" msgstr "" -#: company/models.py:425 templates/js/translated/company.js:1001 +#: company/models.py:422 templates/js/translated/company.js:1002 msgid "Country" msgstr "" -#: company/models.py:426 +#: company/models.py:423 msgid "Address country" msgstr "" -#: company/models.py:432 +#: company/models.py:429 msgid "Courier shipping notes" msgstr "" -#: company/models.py:433 +#: company/models.py:430 msgid "Notes for shipping courier" msgstr "" -#: company/models.py:439 +#: company/models.py:436 msgid "Internal shipping notes" msgstr "" -#: company/models.py:440 +#: company/models.py:437 msgid "Shipping notes for internal use" msgstr "" -#: company/models.py:447 +#: company/models.py:444 msgid "Link to address information (external)" msgstr "" -#: company/models.py:470 company/models.py:587 company/models.py:811 +#: company/models.py:467 company/models.py:584 company/models.py:808 #: company/templates/company/manufacturer_part.html:7 #: company/templates/company/manufacturer_part.html:24 -#: stock/templates/stock/item_base.html:217 +#: stock/templates/stock/item_base.html:214 msgid "Manufacturer Part" msgstr "" -#: company/models.py:487 company/models.py:779 stock/models.py:787 -#: stock/serializers.py:445 stock/templates/stock/item_base.html:142 +#: company/models.py:484 company/models.py:776 stock/models.py:864 +#: stock/serializers.py:455 stock/templates/stock/item_base.html:139 #: templates/js/translated/bom.js:622 msgid "Base Part" msgstr "" -#: company/models.py:489 company/models.py:781 +#: company/models.py:486 company/models.py:778 msgid "Select part" msgstr "" -#: company/models.py:498 company/templates/company/company_base.html:82 +#: company/models.py:495 company/templates/company/company_base.html:82 #: company/templates/company/manufacturer_part.html:90 -#: company/templates/company/supplier_part.html:145 part/serializers.py:554 -#: stock/templates/stock/item_base.html:207 -#: templates/js/translated/company.js:507 -#: templates/js/translated/company.js:1118 -#: templates/js/translated/company.js:1296 -#: templates/js/translated/company.js:1611 +#: company/templates/company/supplier_part.html:146 part/serializers.py:598 +#: stock/templates/stock/item_base.html:204 +#: templates/js/translated/company.js:508 +#: templates/js/translated/company.js:1119 +#: templates/js/translated/company.js:1297 +#: templates/js/translated/company.js:1612 #: templates/js/translated/table_filters.js:812 msgid "Manufacturer" msgstr "" -#: company/models.py:499 +#: company/models.py:496 msgid "Select manufacturer" msgstr "" -#: company/models.py:505 company/templates/company/manufacturer_part.html:101 -#: company/templates/company/supplier_part.html:153 order/serializers.py:556 -#: part/serializers.py:564 templates/js/translated/company.js:351 -#: templates/js/translated/company.js:1117 -#: templates/js/translated/company.js:1312 -#: templates/js/translated/company.js:1630 templates/js/translated/part.js:1807 -#: templates/js/translated/purchase_order.js:1921 -#: templates/js/translated/purchase_order.js:2123 +#: company/models.py:502 company/templates/company/manufacturer_part.html:101 +#: company/templates/company/supplier_part.html:154 order/serializers.py:641 +#: part/serializers.py:608 templates/js/translated/company.js:352 +#: templates/js/translated/company.js:1118 +#: templates/js/translated/company.js:1313 +#: templates/js/translated/company.js:1631 templates/js/translated/part.js:1807 +#: templates/js/translated/purchase_order.js:1905 +#: templates/js/translated/purchase_order.js:2107 msgid "MPN" msgstr "" -#: company/models.py:513 +#: company/models.py:510 msgid "URL for external manufacturer part link" msgstr "" -#: company/models.py:522 +#: company/models.py:519 msgid "Manufacturer part description" msgstr "" -#: company/models.py:575 +#: company/models.py:572 msgid "Manufacturer Part Parameter" msgstr "" -#: company/models.py:594 +#: company/models.py:591 msgid "Parameter name" msgstr "" -#: company/models.py:600 report/templates/report/inventree_test_report.html:104 -#: stock/models.py:2550 templates/js/translated/company.js:1166 -#: templates/js/translated/company.js:1419 templates/js/translated/part.js:1499 +#: company/models.py:597 report/templates/report/inventree_test_report.html:104 +#: stock/models.py:2666 templates/js/translated/company.js:1167 +#: templates/js/translated/company.js:1420 templates/js/translated/part.js:1499 #: templates/js/translated/stock.js:1607 msgid "Value" msgstr "" -#: company/models.py:601 +#: company/models.py:598 msgid "Parameter value" msgstr "" -#: company/models.py:608 company/templates/company/supplier_part.html:168 -#: part/admin.py:57 part/models.py:1147 part/models.py:3771 -#: part/templates/part/part_base.html:293 -#: templates/js/translated/company.js:1425 templates/js/translated/part.js:1518 +#: company/models.py:605 company/templates/company/supplier_part.html:169 +#: part/admin.py:57 part/models.py:1208 part/models.py:3822 +#: part/templates/part/part_base.html:301 +#: templates/js/translated/company.js:1426 templates/js/translated/part.js:1518 #: templates/js/translated/part.js:1622 templates/js/translated/part.js:2376 msgid "Units" msgstr "" -#: company/models.py:609 +#: company/models.py:606 msgid "Parameter units" msgstr "" -#: company/models.py:662 company/templates/company/supplier_part.html:7 -#: company/templates/company/supplier_part.html:24 order/api.py:442 -#: order/serializers.py:491 stock/models.py:798 -#: stock/templates/stock/item_base.html:233 -#: templates/js/translated/build.js:1052 -#: templates/js/translated/company.js:1600 -#: templates/js/translated/purchase_order.js:752 -#: templates/js/translated/stock.js:2365 +#: company/models.py:659 company/templates/company/supplier_part.html:8 +#: company/templates/company/supplier_part.html:25 order/api.py:392 +#: order/serializers.py:576 stock/models.py:875 +#: stock/templates/stock/item_base.html:230 +#: templates/js/translated/build.js:1055 +#: templates/js/translated/company.js:1601 +#: templates/js/translated/purchase_order.js:735 +#: templates/js/translated/stock.js:2366 msgid "Supplier Part" msgstr "" -#: company/models.py:719 +#: company/models.py:716 msgid "Pack units must be compatible with the base part units" msgstr "" -#: company/models.py:726 +#: company/models.py:723 msgid "Pack units must be greater than zero" msgstr "" -#: company/models.py:740 +#: company/models.py:737 msgid "Linked manufacturer part must reference the same base part" msgstr "" -#: company/models.py:789 company/templates/company/company_base.html:87 -#: company/templates/company/supplier_part.html:129 order/models.py:491 -#: order/templates/order/order_base.html:141 part/bom.py:280 part/bom.py:318 -#: part/serializers.py:538 plugin/builtin/suppliers/digikey.py:25 +#: company/models.py:786 company/templates/company/company_base.html:87 +#: company/templates/company/supplier_part.html:130 order/models.py:503 +#: order/templates/order/order_base.html:150 part/bom.py:279 part/bom.py:314 +#: part/serializers.py:582 plugin/builtin/suppliers/digikey.py:25 #: plugin/builtin/suppliers/lcsc.py:26 plugin/builtin/suppliers/mouser.py:24 -#: plugin/builtin/suppliers/tme.py:26 stock/templates/stock/item_base.html:224 +#: plugin/builtin/suppliers/tme.py:26 stock/templates/stock/item_base.html:221 #: templates/email/overdue_purchase_order.html:16 -#: templates/js/translated/company.js:350 -#: templates/js/translated/company.js:511 -#: templates/js/translated/company.js:1584 templates/js/translated/part.js:1775 +#: templates/js/translated/company.js:351 +#: templates/js/translated/company.js:512 +#: templates/js/translated/company.js:1585 templates/js/translated/part.js:1775 #: templates/js/translated/pricing.js:498 -#: templates/js/translated/purchase_order.js:1759 +#: templates/js/translated/purchase_order.js:1743 #: templates/js/translated/table_filters.js:816 msgid "Supplier" msgstr "" -#: company/models.py:790 +#: company/models.py:787 msgid "Select supplier" msgstr "" -#: company/models.py:796 part/serializers.py:549 +#: company/models.py:793 part/serializers.py:593 msgid "Supplier stock keeping unit" msgstr "" -#: company/models.py:802 +#: company/models.py:799 msgid "Is this supplier part active?" msgstr "" -#: company/models.py:812 +#: company/models.py:809 msgid "Select manufacturer part" msgstr "" -#: company/models.py:819 +#: company/models.py:816 msgid "URL for external supplier part link" msgstr "" -#: company/models.py:828 +#: company/models.py:825 msgid "Supplier part description" msgstr "" -#: company/models.py:835 company/templates/company/supplier_part.html:187 -#: order/serializers.py:698 part/admin.py:415 part/models.py:4288 +#: company/models.py:832 company/templates/company/supplier_part.html:188 +#: order/serializers.py:783 part/admin.py:415 part/models.py:4345 #: part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_bill_of_materials_report.html:140 #: report/templates/report/inventree_purchase_order_report.html:32 #: report/templates/report/inventree_return_order_report.html:27 #: report/templates/report/inventree_sales_order_report.html:32 #: report/templates/report/inventree_stock_location_report.html:105 -#: stock/serializers.py:776 templates/js/translated/purchase_order.js:1185 -#: templates/js/translated/purchase_order.js:1344 +#: stock/serializers.py:807 templates/js/translated/purchase_order.js:1168 +#: templates/js/translated/purchase_order.js:1327 msgid "Note" msgstr "" -#: company/models.py:844 part/models.py:2117 +#: company/models.py:841 part/models.py:2177 msgid "base cost" msgstr "" -#: company/models.py:845 part/models.py:2118 +#: company/models.py:842 part/models.py:2178 msgid "Minimum charge (e.g. stocking fee)" msgstr "" -#: company/models.py:853 +#: company/models.py:850 msgid "Part packaging" msgstr "" -#: company/models.py:858 templates/js/translated/company.js:1651 +#: company/models.py:855 templates/js/translated/company.js:1652 #: templates/js/translated/part.js:1828 templates/js/translated/part.js:1884 -#: templates/js/translated/purchase_order.js:311 -#: templates/js/translated/purchase_order.js:841 -#: templates/js/translated/purchase_order.js:1103 -#: templates/js/translated/purchase_order.js:2154 -#: templates/js/translated/purchase_order.js:2171 +#: templates/js/translated/purchase_order.js:294 +#: templates/js/translated/purchase_order.js:824 +#: templates/js/translated/purchase_order.js:1086 +#: templates/js/translated/purchase_order.js:2138 +#: templates/js/translated/purchase_order.js:2155 msgid "Pack Quantity" msgstr "" -#: company/models.py:860 +#: company/models.py:857 msgid "Total quantity supplied in a single pack. Leave empty for single items." msgstr "" -#: company/models.py:879 part/models.py:2124 +#: company/models.py:876 part/models.py:2184 msgid "multiple" msgstr "" -#: company/models.py:880 +#: company/models.py:877 msgid "Order multiple" msgstr "" -#: company/models.py:892 +#: company/models.py:889 msgid "Quantity available from supplier" msgstr "" -#: company/models.py:898 +#: company/models.py:895 msgid "Availability Updated" msgstr "" -#: company/models.py:899 +#: company/models.py:896 msgid "Date of last update of availability data" msgstr "" -#: company/models.py:1027 +#: company/models.py:1024 msgid "Supplier Price Break" msgstr "" -#: company/serializers.py:174 +#: company/serializers.py:178 msgid "Default currency used for this supplier" msgstr "" -#: company/serializers.py:210 +#: company/serializers.py:214 msgid "Company Name" msgstr "" -#: company/serializers.py:393 part/admin.py:126 part/serializers.py:898 -#: part/templates/part/part_base.html:197 -#: templates/js/translated/company.js:1689 +#: company/serializers.py:397 part/admin.py:126 part/serializers.py:950 +#: part/templates/part/part_base.html:198 stock/serializers.py:474 +#: templates/js/translated/company.js:1690 #: templates/js/translated/table_filters.js:362 msgid "In Stock" msgstr "" #: company/templates/company/company_base.html:16 -#: part/templates/part/part_base.html:146 -#: templates/js/translated/company.js:1287 -#: templates/js/translated/company.js:1575 -#: templates/js/translated/model_renderers.js:313 +#: part/templates/part/part_base.html:147 +#: templates/js/translated/company.js:1288 +#: templates/js/translated/company.js:1576 +#: templates/js/translated/model_renderers.js:316 #: templates/js/translated/part.js:817 templates/js/translated/part.js:1225 msgid "Inactive" msgstr "" #: company/templates/company/company_base.html:27 -#: templates/js/translated/purchase_order.js:242 +#: templates/js/translated/purchase_order.js:224 msgid "Create Purchase Order" msgstr "" @@ -4590,7 +4769,7 @@ msgid "Edit company information" msgstr "" #: company/templates/company/company_base.html:39 -#: templates/js/translated/company.js:445 +#: templates/js/translated/company.js:446 msgid "Edit Company" msgstr "" @@ -4605,11 +4784,12 @@ msgstr "" #: company/templates/company/company_base.html:53 #: company/templates/company/manufacturer_part.html:51 -#: company/templates/company/supplier_part.html:83 +#: company/templates/company/supplier_part.html:84 #: part/templates/part/part_thumb.html:20 #: report/templates/report/inventree_build_order_report.html:98 #: report/templates/report/inventree_purchase_order_report.html:40 #: report/templates/report/inventree_sales_order_report.html:40 +#: report/templates/report/inventree_sales_order_shipment_report.html:37 #: report/templates/report/inventree_test_report.html:84 #: report/templates/report/inventree_test_report.html:162 msgid "Part image" @@ -4630,16 +4810,16 @@ msgstr "" msgid "Delete image" msgstr "" -#: company/templates/company/company_base.html:92 order/models.py:990 -#: order/models.py:2147 order/templates/order/return_order_base.html:134 -#: order/templates/order/sales_order_base.html:151 stock/models.py:840 -#: stock/models.py:841 stock/serializers.py:1329 -#: stock/templates/stock/item_base.html:405 +#: company/templates/company/company_base.html:92 order/models.py:1017 +#: order/models.py:2186 order/templates/order/return_order_base.html:135 +#: order/templates/order/sales_order_base.html:152 stock/models.py:917 +#: stock/models.py:918 stock/serializers.py:1360 +#: stock/templates/stock/item_base.html:402 #: templates/email/overdue_sales_order.html:16 -#: templates/js/translated/company.js:503 +#: templates/js/translated/company.js:504 #: templates/js/translated/return_order.js:295 -#: templates/js/translated/sales_order.js:820 -#: templates/js/translated/stock.js:3043 +#: templates/js/translated/sales_order.js:779 +#: templates/js/translated/stock.js:3044 #: templates/js/translated/table_filters.js:820 msgid "Customer" msgstr "" @@ -4653,7 +4833,7 @@ msgid "Phone" msgstr "" #: company/templates/company/company_base.html:211 -#: part/templates/part/part_base.html:536 +#: part/templates/part/part_base.html:544 msgid "Remove Image" msgstr "" @@ -4662,19 +4842,19 @@ msgid "Remove associated image from this company" msgstr "" #: company/templates/company/company_base.html:214 -#: part/templates/part/part_base.html:539 +#: part/templates/part/part_base.html:547 #: templates/InvenTree/settings/user.html:88 #: templates/InvenTree/settings/user_sso.html:43 msgid "Remove" msgstr "" #: company/templates/company/company_base.html:243 -#: part/templates/part/part_base.html:568 +#: part/templates/part/part_base.html:576 msgid "Upload Image" msgstr "" #: company/templates/company/company_base.html:258 -#: part/templates/part/part_base.html:622 +#: part/templates/part/part_base.html:630 msgid "Download Image" msgstr "" @@ -4714,7 +4894,7 @@ msgstr "" #: company/templates/company/detail.html:75 #: company/templates/company/sidebar.html:12 #: company/templates/company/supplier_part_sidebar.html:7 -#: order/templates/order/order_base.html:13 +#: order/templates/order/order_base.html:14 #: order/templates/order/purchase_orders.html:8 #: order/templates/order/purchase_orders.html:12 #: part/templates/part/detail.html:122 part/templates/part/part_sidebar.html:35 @@ -4737,7 +4917,7 @@ msgstr "" #: company/templates/company/detail.html:101 #: company/templates/company/sidebar.html:21 -#: order/templates/order/sales_order_base.html:13 +#: order/templates/order/sales_order_base.html:14 #: order/templates/order/sales_orders.html:8 #: order/templates/order/sales_orders.html:15 #: part/templates/part/detail.html:143 part/templates/part/part_sidebar.html:39 @@ -4764,7 +4944,7 @@ msgstr "" #: company/templates/company/detail.html:142 #: company/templates/company/sidebar.html:29 -#: order/templates/order/return_order_base.html:13 +#: order/templates/order/return_order_base.html:14 #: order/templates/order/return_orders.html:8 #: order/templates/order/return_orders.html:15 #: templates/InvenTree/settings/sidebar.html:61 @@ -4811,24 +4991,24 @@ msgid "Manufacturers" msgstr "" #: company/templates/company/manufacturer_part.html:35 -#: company/templates/company/supplier_part.html:227 -#: part/templates/part/detail.html:125 part/templates/part/part_base.html:83 +#: company/templates/company/supplier_part.html:228 +#: part/templates/part/detail.html:125 part/templates/part/part_base.html:84 msgid "Order part" msgstr "" #: company/templates/company/manufacturer_part.html:39 -#: templates/js/translated/company.js:1343 +#: templates/js/translated/company.js:1344 msgid "Edit manufacturer part" msgstr "" #: company/templates/company/manufacturer_part.html:43 -#: templates/js/translated/company.js:1344 +#: templates/js/translated/company.js:1345 msgid "Delete manufacturer part" msgstr "" #: company/templates/company/manufacturer_part.html:65 -#: company/templates/company/supplier_part.html:97 order/api.py:448 -#: order/serializers.py:564 +#: company/templates/company/supplier_part.html:98 order/api.py:411 +#: order/serializers.py:649 msgid "Internal Part" msgstr "" @@ -4837,8 +5017,8 @@ msgid "No manufacturer information available" msgstr "" #: company/templates/company/manufacturer_part.html:119 -#: company/templates/company/supplier_part.html:15 company/views.py:31 -#: part/admin.py:122 part/serializers.py:904 +#: company/templates/company/supplier_part.html:16 company/views.py:31 +#: part/admin.py:122 part/serializers.py:956 #: part/templates/part/part_sidebar.html:33 templates/InvenTree/search.html:190 #: templates/navbar.html:48 msgid "Suppliers" @@ -4887,112 +5067,113 @@ msgstr "" msgid "Contacts" msgstr "" -#: company/templates/company/supplier_part.html:50 -#: templates/js/translated/company.js:1526 +#: company/templates/company/supplier_part.html:51 +#: templates/js/translated/company.js:1527 msgid "Supplier part actions" msgstr "" -#: company/templates/company/supplier_part.html:55 #: company/templates/company/supplier_part.html:56 -#: company/templates/company/supplier_part.html:228 +#: company/templates/company/supplier_part.html:57 +#: company/templates/company/supplier_part.html:229 #: part/templates/part/detail.html:126 msgid "Order Part" msgstr "" -#: company/templates/company/supplier_part.html:60 #: company/templates/company/supplier_part.html:61 +#: company/templates/company/supplier_part.html:62 msgid "Update Availability" msgstr "" -#: company/templates/company/supplier_part.html:63 #: company/templates/company/supplier_part.html:64 -#: templates/js/translated/company.js:294 +#: company/templates/company/supplier_part.html:65 +#: templates/js/translated/company.js:295 msgid "Edit Supplier Part" msgstr "" -#: company/templates/company/supplier_part.html:68 #: company/templates/company/supplier_part.html:69 -#: templates/js/translated/company.js:269 +#: company/templates/company/supplier_part.html:70 +#: templates/js/translated/company.js:270 msgid "Duplicate Supplier Part" msgstr "" -#: company/templates/company/supplier_part.html:73 +#: company/templates/company/supplier_part.html:74 msgid "Delete Supplier Part" msgstr "" -#: company/templates/company/supplier_part.html:74 +#: company/templates/company/supplier_part.html:75 msgid "Delete Supplier Part" msgstr "" -#: company/templates/company/supplier_part.html:133 +#: company/templates/company/supplier_part.html:134 +#: order/templates/order/order_base.html:155 msgid "No supplier information available" msgstr "" -#: company/templates/company/supplier_part.html:139 order/serializers.py:553 -#: part/bom.py:287 part/bom.py:319 part/serializers.py:548 -#: templates/js/translated/company.js:349 templates/js/translated/part.js:1793 +#: company/templates/company/supplier_part.html:140 order/serializers.py:638 +#: part/bom.py:286 part/bom.py:315 part/serializers.py:592 +#: templates/js/translated/company.js:350 templates/js/translated/part.js:1793 #: templates/js/translated/pricing.js:510 -#: templates/js/translated/purchase_order.js:1920 -#: templates/js/translated/purchase_order.js:2098 +#: templates/js/translated/purchase_order.js:1904 +#: templates/js/translated/purchase_order.js:2082 msgid "SKU" msgstr "" -#: company/templates/company/supplier_part.html:206 +#: company/templates/company/supplier_part.html:207 msgid "Supplier Part Stock" msgstr "" -#: company/templates/company/supplier_part.html:209 -#: part/templates/part/detail.html:24 stock/templates/stock/location.html:204 +#: company/templates/company/supplier_part.html:210 +#: part/templates/part/detail.html:24 stock/templates/stock/location.html:205 msgid "Create new stock item" msgstr "" -#: company/templates/company/supplier_part.html:210 -#: part/templates/part/detail.html:25 stock/templates/stock/location.html:205 +#: company/templates/company/supplier_part.html:211 +#: part/templates/part/detail.html:25 stock/templates/stock/location.html:206 #: templates/js/translated/stock.js:543 msgid "New Stock Item" msgstr "" -#: company/templates/company/supplier_part.html:223 +#: company/templates/company/supplier_part.html:224 msgid "Supplier Part Orders" msgstr "" -#: company/templates/company/supplier_part.html:246 +#: company/templates/company/supplier_part.html:247 msgid "Pricing Information" msgstr "" -#: company/templates/company/supplier_part.html:251 -#: templates/js/translated/company.js:398 +#: company/templates/company/supplier_part.html:252 +#: templates/js/translated/company.js:399 #: templates/js/translated/pricing.js:684 msgid "Add Price Break" msgstr "" -#: company/templates/company/supplier_part.html:270 +#: company/templates/company/supplier_part.html:271 msgid "Supplier Part Notes" msgstr "" -#: company/templates/company/supplier_part.html:305 +#: company/templates/company/supplier_part.html:306 msgid "Supplier Part QR Code" msgstr "" -#: company/templates/company/supplier_part.html:316 +#: company/templates/company/supplier_part.html:317 msgid "Link Barcode to Supplier Part" msgstr "" -#: company/templates/company/supplier_part.html:388 +#: company/templates/company/supplier_part.html:389 msgid "Update Part Availability" msgstr "" #: company/templates/company/supplier_part_sidebar.html:5 -#: part/serializers.py:902 part/stocktake.py:223 +#: part/serializers.py:954 part/stocktake.py:223 #: part/templates/part/category.html:180 #: part/templates/part/category_sidebar.html:17 stock/admin.py:68 -#: stock/serializers.py:1014 stock/serializers.py:1192 -#: stock/templates/stock/location.html:167 -#: stock/templates/stock/location.html:188 -#: stock/templates/stock/location.html:200 +#: stock/serializers.py:1045 stock/serializers.py:1223 +#: stock/templates/stock/location.html:168 +#: stock/templates/stock/location.html:189 +#: stock/templates/stock/location.html:201 #: stock/templates/stock/location_sidebar.html:7 #: templates/InvenTree/search.html:155 templates/js/translated/part.js:1067 -#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2850 +#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2851 #: users/models.py:206 msgid "Stock Items" msgstr "" @@ -5022,99 +5203,99 @@ msgstr "" msgid "New Company" msgstr "" -#: generic/states/tests.py:18 order/status_codes.py:13 +#: generic/states/fields.py:118 +msgid "Custom status key" +msgstr "" + +#: generic/states/fields.py:119 +msgid "Additional status information for this item" +msgstr "" + +#: generic/states/tests.py:22 order/status_codes.py:13 msgid "Placed" msgstr "Τοποθετήθηκε" -#: importer/mixins.py:263 +#: importer/mixins.py:261 msgid "Invalid export format" msgstr "" -#: importer/models.py:59 -msgid "Timestamp" -msgstr "" - -#: importer/models.py:64 +#: importer/models.py:65 msgid "Data file to import" msgstr "" -#: importer/models.py:73 templates/js/translated/tables.js:558 +#: importer/models.py:74 templates/js/translated/tables.js:558 msgid "Columns" msgstr "" -#: importer/models.py:84 +#: importer/models.py:85 msgid "Import status" msgstr "" -#: importer/models.py:94 +#: importer/models.py:95 msgid "Field Defaults" msgstr "" -#: importer/models.py:101 +#: importer/models.py:102 msgid "Field Overrides" msgstr "" -#: importer/models.py:108 +#: importer/models.py:109 msgid "Field Filters" msgstr "" -#: importer/models.py:230 +#: importer/models.py:239 msgid "Some required fields have not been mapped" msgstr "" -#: importer/models.py:387 +#: importer/models.py:396 msgid "Column is already mapped to a database field" msgstr "" -#: importer/models.py:392 +#: importer/models.py:401 msgid "Field is already mapped to a data column" msgstr "" -#: importer/models.py:401 +#: importer/models.py:410 msgid "Column mapping must be linked to a valid import session" msgstr "" -#: importer/models.py:406 +#: importer/models.py:415 msgid "Column does not exist in the data file" msgstr "" -#: importer/models.py:413 +#: importer/models.py:422 msgid "Field does not exist in the target model" msgstr "" -#: importer/models.py:417 +#: importer/models.py:426 msgid "Selected field is read-only" msgstr "" -#: importer/models.py:422 importer/models.py:493 +#: importer/models.py:431 importer/models.py:502 msgid "Import Session" msgstr "" -#: importer/models.py:426 +#: importer/models.py:435 msgid "Field" msgstr "" -#: importer/models.py:428 +#: importer/models.py:437 msgid "Column" msgstr "" -#: importer/models.py:497 +#: importer/models.py:506 msgid "Row Index" msgstr "" -#: importer/models.py:500 +#: importer/models.py:509 msgid "Original row data" msgstr "" -#: importer/models.py:503 part/models.py:3951 -msgid "Data" -msgstr "" - -#: importer/models.py:505 machine/models.py:110 +#: importer/models.py:514 machine/models.py:110 msgid "Errors" msgstr "" -#: importer/models.py:507 part/api.py:873 +#: importer/models.py:516 part/api.py:857 msgid "Valid" msgstr "" @@ -5166,19 +5347,19 @@ msgstr "" msgid "Row has already been completed" msgstr "" -#: importer/status_codes.py:11 +#: importer/status_codes.py:13 msgid "Initializing" msgstr "" -#: importer/status_codes.py:12 +#: importer/status_codes.py:18 msgid "Mapping Columns" msgstr "" -#: importer/status_codes.py:13 +#: importer/status_codes.py:21 msgid "Importing Data" msgstr "" -#: importer/status_codes.py:16 +#: importer/status_codes.py:24 msgid "Processing Data" msgstr "" @@ -5202,52 +5383,52 @@ msgstr "" msgid "Value must be a valid dictionary object" msgstr "" -#: machine/machine_types/label_printer.py:215 +#: machine/machine_types/label_printer.py:216 msgid "Copies" msgstr "" -#: machine/machine_types/label_printer.py:216 +#: machine/machine_types/label_printer.py:217 msgid "Number of copies to print for each label" msgstr "" -#: machine/machine_types/label_printer.py:231 +#: machine/machine_types/label_printer.py:232 msgid "Connected" msgstr "" -#: machine/machine_types/label_printer.py:232 order/api.py:1410 -#: templates/js/translated/sales_order.js:1078 +#: machine/machine_types/label_printer.py:233 order/api.py:1532 +#: templates/js/translated/sales_order.js:1044 msgid "Unknown" msgstr "" -#: machine/machine_types/label_printer.py:233 +#: machine/machine_types/label_printer.py:234 msgid "Printing" msgstr "" -#: machine/machine_types/label_printer.py:234 +#: machine/machine_types/label_printer.py:235 msgid "No media" msgstr "" -#: machine/machine_types/label_printer.py:235 +#: machine/machine_types/label_printer.py:236 msgid "Paper jam" msgstr "" -#: machine/machine_types/label_printer.py:236 +#: machine/machine_types/label_printer.py:237 msgid "Disconnected" msgstr "" -#: machine/machine_types/label_printer.py:243 +#: machine/machine_types/label_printer.py:244 msgid "Label Printer" msgstr "" -#: machine/machine_types/label_printer.py:244 +#: machine/machine_types/label_printer.py:245 msgid "Directly print labels for various items." msgstr "" -#: machine/machine_types/label_printer.py:250 +#: machine/machine_types/label_printer.py:251 msgid "Printer Location" msgstr "" -#: machine/machine_types/label_printer.py:251 +#: machine/machine_types/label_printer.py:252 msgid "Scope the printer to a specific location" msgstr "" @@ -5307,79 +5488,75 @@ msgstr "" #: report/templates/report/inventree_purchase_order_report.html:31 #: report/templates/report/inventree_sales_order_report.html:31 #: templates/js/translated/order.js:352 -#: templates/js/translated/purchase_order.js:2195 -#: templates/js/translated/sales_order.js:1883 +#: templates/js/translated/purchase_order.js:2179 +#: templates/js/translated/sales_order.js:1864 msgid "Total Price" msgstr "" -#: order/api.py:80 order/api.py:151 order/serializers.py:93 -#: order/templates/order/order_base.html:123 -#: order/templates/order/return_order_base.html:116 -#: order/templates/order/sales_order_base.html:125 +#: order/api.py:78 order/api.py:149 order/serializers.py:124 +#: order/templates/order/order_base.html:124 +#: order/templates/order/return_order_base.html:117 +#: order/templates/order/sales_order_base.html:126 msgid "Order Status" msgstr "" -#: order/api.py:88 order/templates/order/order_base.html:111 -#: order/templates/order/return_order_base.html:104 -#: order/templates/order/sales_order_base.html:113 +#: order/api.py:86 order/templates/order/order_base.html:112 +#: order/templates/order/return_order_base.html:105 +#: order/templates/order/sales_order_base.html:114 msgid "Order Reference" msgstr "" -#: order/api.py:116 templates/js/translated/table_filters.js:93 +#: order/api.py:114 order/api.py:1022 +#: templates/js/translated/table_filters.js:93 #: templates/js/translated/table_filters.js:625 #: templates/js/translated/table_filters.js:651 #: templates/js/translated/table_filters.js:666 msgid "Outstanding" msgstr "" -#: order/api.py:132 +#: order/api.py:130 msgid "Has Project Code" msgstr "" -#: order/api.py:155 templates/js/translated/table_filters.js:201 +#: order/api.py:153 templates/js/translated/table_filters.js:201 #: templates/js/translated/table_filters.js:791 msgid "Has Pricing" msgstr "" -#: order/api.py:230 -msgid "No matching purchase order found" -msgstr "" - -#: order/api.py:425 order/api.py:763 order/models.py:1484 order/models.py:1598 -#: order/models.py:1649 order/models.py:1764 order/models.py:1923 -#: order/models.py:2383 order/models.py:2439 -#: templates/js/translated/sales_order.js:1524 +#: order/api.py:375 order/api.py:771 order/api.py:986 order/models.py:1500 +#: order/models.py:1614 order/models.py:1665 order/models.py:1793 +#: order/models.py:1956 order/models.py:2422 order/models.py:2478 +#: templates/js/translated/sales_order.js:1490 msgid "Order" msgstr "" -#: order/api.py:429 order/api.py:784 +#: order/api.py:379 order/api.py:809 msgid "Order Complete" msgstr "" -#: order/api.py:452 +#: order/api.py:430 msgid "Order Pending" msgstr "" -#: order/api.py:1404 order/models.py:379 order/models.py:1485 -#: order/models.py:1599 order/templates/order/order_base.html:9 -#: order/templates/order/order_base.html:18 +#: order/api.py:1526 order/models.py:386 order/models.py:1501 +#: order/models.py:1615 order/templates/order/order_base.html:10 +#: order/templates/order/order_base.html:19 #: report/templates/report/inventree_purchase_order_report.html:14 -#: stock/serializers.py:120 stock/templates/stock/item_base.html:176 +#: stock/serializers.py:121 stock/templates/stock/item_base.html:173 #: templates/email/overdue_purchase_order.html:15 #: templates/js/translated/part.js:1752 templates/js/translated/pricing.js:804 -#: templates/js/translated/purchase_order.js:168 -#: templates/js/translated/purchase_order.js:753 -#: templates/js/translated/purchase_order.js:1743 -#: templates/js/translated/stock.js:2345 templates/js/translated/stock.js:2991 +#: templates/js/translated/purchase_order.js:736 +#: templates/js/translated/purchase_order.js:1727 +#: templates/js/translated/stock.js:2346 templates/js/translated/stock.js:2992 msgid "Purchase Order" msgstr "" -#: order/api.py:1408 order/models.py:2091 order/models.py:2384 -#: order/models.py:2440 order/templates/order/return_order_base.html:9 -#: order/templates/order/return_order_base.html:28 +#: order/api.py:1530 order/models.py:2124 order/models.py:2423 +#: order/models.py:2479 order/templates/order/return_order_base.html:10 +#: order/templates/order/return_order_base.html:29 #: report/templates/report/inventree_return_order_report.html:13 #: templates/js/translated/return_order.js:280 -#: templates/js/translated/stock.js:3025 +#: templates/js/translated/stock.js:3026 msgid "Return Order" msgstr "" @@ -5387,751 +5564,782 @@ msgstr "" msgid "Total price for this order" msgstr "" -#: order/models.py:95 order/serializers.py:71 +#: order/models.py:95 order/serializers.py:73 msgid "Order Currency" msgstr "" -#: order/models.py:98 order/serializers.py:72 +#: order/models.py:98 order/serializers.py:74 msgid "Currency for this order (leave blank to use company default)" msgstr "" -#: order/models.py:246 +#: order/models.py:243 msgid "Contact does not match selected company" msgstr "" -#: order/models.py:289 +#: order/models.py:296 msgid "Order description (optional)" msgstr "" -#: order/models.py:298 +#: order/models.py:305 msgid "Select project code for this order" msgstr "" -#: order/models.py:302 order/models.py:1385 order/models.py:1817 +#: order/models.py:309 order/models.py:1402 order/models.py:1846 msgid "Link to external page" msgstr "" -#: order/models.py:310 +#: order/models.py:317 msgid "Expected date for order delivery. Order will be overdue after this date." msgstr "" -#: order/models.py:324 +#: order/models.py:331 msgid "Created By" msgstr "" -#: order/models.py:332 +#: order/models.py:339 msgid "User or group responsible for this order" msgstr "" -#: order/models.py:343 +#: order/models.py:350 msgid "Point of contact for this order" msgstr "" -#: order/models.py:353 +#: order/models.py:360 msgid "Company address for this order" msgstr "" -#: order/models.py:468 order/models.py:979 +#: order/models.py:480 order/models.py:1006 msgid "Order reference" msgstr "" -#: order/models.py:477 +#: order/models.py:489 msgid "Purchase order status" msgstr "" -#: order/models.py:492 +#: order/models.py:504 msgid "Company from which the items are being ordered" msgstr "" -#: order/models.py:503 order/templates/order/order_base.html:153 -#: templates/js/translated/purchase_order.js:1772 +#: order/models.py:515 order/templates/order/order_base.html:162 +#: templates/js/translated/purchase_order.js:1756 msgid "Supplier Reference" msgstr "" -#: order/models.py:504 +#: order/models.py:516 msgid "Supplier order reference code" msgstr "" -#: order/models.py:513 +#: order/models.py:525 msgid "received by" msgstr "" -#: order/models.py:519 order/models.py:2173 +#: order/models.py:531 order/models.py:2212 msgid "Issue Date" msgstr "" -#: order/models.py:520 order/models.py:2174 +#: order/models.py:532 order/models.py:2213 msgid "Date order was issued" msgstr "" -#: order/models.py:527 order/models.py:2181 +#: order/models.py:539 order/models.py:2220 msgid "Date order was completed" msgstr "" -#: order/models.py:571 +#: order/models.py:549 order/models.py:1552 +msgid "Destination for received items" +msgstr "" + +#: order/models.py:593 msgid "Part supplier must match PO supplier" msgstr "" -#: order/models.py:806 +#: order/models.py:828 msgid "Quantity must be a positive number" msgstr "" -#: order/models.py:991 +#: order/models.py:1018 msgid "Company to which the items are being sold" msgstr "" -#: order/models.py:1003 +#: order/models.py:1030 msgid "Sales order status" msgstr "" -#: order/models.py:1014 order/models.py:2166 +#: order/models.py:1041 order/models.py:2205 msgid "Customer Reference " msgstr "" -#: order/models.py:1015 order/models.py:2167 +#: order/models.py:1042 order/models.py:2206 msgid "Customer order reference code" msgstr "" -#: order/models.py:1019 order/models.py:1771 -#: templates/js/translated/sales_order.js:879 -#: templates/js/translated/sales_order.js:1060 +#: order/models.py:1046 order/models.py:1800 +#: templates/js/translated/sales_order.js:838 +#: templates/js/translated/sales_order.js:1026 msgid "Shipment Date" msgstr "" -#: order/models.py:1028 +#: order/models.py:1055 msgid "shipped by" msgstr "" -#: order/models.py:1077 +#: order/models.py:1094 msgid "Order is already complete" msgstr "" -#: order/models.py:1080 +#: order/models.py:1097 msgid "Order is already cancelled" msgstr "" -#: order/models.py:1084 +#: order/models.py:1101 msgid "Only an open order can be marked as complete" msgstr "" -#: order/models.py:1088 +#: order/models.py:1105 msgid "Order cannot be completed as there are incomplete shipments" msgstr "" -#: order/models.py:1093 +#: order/models.py:1110 msgid "Order cannot be completed as there are incomplete line items" msgstr "" -#: order/models.py:1357 +#: order/models.py:1374 msgid "Item quantity" msgstr "" -#: order/models.py:1374 +#: order/models.py:1391 msgid "Line item reference" msgstr "" -#: order/models.py:1381 +#: order/models.py:1398 msgid "Line item notes" msgstr "" -#: order/models.py:1393 +#: order/models.py:1410 msgid "Target date for this line item (leave blank to use the target date from the order)" msgstr "" -#: order/models.py:1414 +#: order/models.py:1431 msgid "Line item description (optional)" msgstr "" -#: order/models.py:1420 -msgid "Context" -msgstr "" - -#: order/models.py:1421 +#: order/models.py:1438 msgid "Additional context for this line" msgstr "" -#: order/models.py:1431 +#: order/models.py:1448 msgid "Unit price" msgstr "" -#: order/models.py:1445 +#: order/models.py:1462 msgid "Purchase Order Line Item" msgstr "" -#: order/models.py:1469 +#: order/models.py:1486 msgid "Supplier part must match supplier" msgstr "" -#: order/models.py:1476 -msgid "deleted" -msgstr "" - -#: order/models.py:1504 +#: order/models.py:1520 msgid "Supplier part" msgstr "" -#: order/models.py:1511 order/templates/order/order_base.html:201 +#: order/models.py:1527 order/templates/order/order_base.html:210 #: templates/js/translated/part.js:1876 templates/js/translated/part.js:1908 -#: templates/js/translated/purchase_order.js:1369 -#: templates/js/translated/purchase_order.js:2239 +#: templates/js/translated/purchase_order.js:1352 +#: templates/js/translated/purchase_order.js:2223 #: templates/js/translated/return_order.js:762 #: templates/js/translated/table_filters.js:119 #: templates/js/translated/table_filters.js:605 msgid "Received" msgstr "" -#: order/models.py:1512 +#: order/models.py:1528 msgid "Number of items received" msgstr "" -#: order/models.py:1520 stock/models.py:959 stock/serializers.py:610 -#: stock/templates/stock/item_base.html:183 -#: templates/js/translated/stock.js:2396 +#: order/models.py:1536 stock/models.py:1036 stock/serializers.py:637 +#: stock/templates/stock/item_base.html:180 +#: templates/js/translated/stock.js:2397 msgid "Purchase Price" msgstr "" -#: order/models.py:1521 +#: order/models.py:1537 msgid "Unit purchase price" msgstr "" -#: order/models.py:1536 -msgid "Where does the Purchaser want this item to be stored?" -msgstr "" - -#: order/models.py:1587 +#: order/models.py:1603 msgid "Purchase Order Extra Line" msgstr "" -#: order/models.py:1616 +#: order/models.py:1632 msgid "Sales Order Line Item" msgstr "" -#: order/models.py:1637 +#: order/models.py:1653 msgid "Virtual part cannot be assigned to a sales order" msgstr "" -#: order/models.py:1642 +#: order/models.py:1658 msgid "Only salable parts can be assigned to a sales order" msgstr "" -#: order/models.py:1668 part/templates/part/part_pricing.html:107 -#: part/templates/part/prices.html:139 templates/js/translated/pricing.js:957 +#: order/models.py:1684 part/templates/part/part_pricing.html:107 +#: part/templates/part/prices.html:139 templates/js/translated/pricing.js:955 msgid "Sale Price" msgstr "" -#: order/models.py:1669 +#: order/models.py:1685 msgid "Unit sale price" msgstr "" -#: order/models.py:1678 order/status_codes.py:48 -#: templates/js/translated/sales_order.js:1559 -#: templates/js/translated/sales_order.js:1680 -#: templates/js/translated/sales_order.js:1993 +#: order/models.py:1694 order/status_codes.py:50 +#: templates/js/translated/sales_order.js:1525 +#: templates/js/translated/sales_order.js:1661 +#: templates/js/translated/sales_order.js:1974 msgid "Shipped" msgstr "Αποστάλθηκε" -#: order/models.py:1679 +#: order/models.py:1695 msgid "Shipped quantity" msgstr "" -#: order/models.py:1751 +#: order/models.py:1769 msgid "Sales Order Shipment" msgstr "" -#: order/models.py:1772 +#: order/models.py:1801 msgid "Date of shipment" msgstr "" -#: order/models.py:1778 templates/js/translated/sales_order.js:1072 +#: order/models.py:1807 templates/js/translated/sales_order.js:1038 msgid "Delivery Date" msgstr "" -#: order/models.py:1779 +#: order/models.py:1808 msgid "Date of delivery of shipment" msgstr "" -#: order/models.py:1787 +#: order/models.py:1816 msgid "Checked By" msgstr "" -#: order/models.py:1788 +#: order/models.py:1817 msgid "User who checked this shipment" msgstr "" -#: order/models.py:1795 order/models.py:2018 order/serializers.py:1475 -#: order/serializers.py:1585 templates/js/translated/model_renderers.js:455 +#: order/models.py:1824 order/models.py:2051 order/serializers.py:1601 +#: order/serializers.py:1725 +#: report/templates/report/inventree_sales_order_shipment_report.html:14 +#: templates/js/translated/model_renderers.js:458 +#: templates/js/translated/sales_order.js:1615 msgid "Shipment" msgstr "" -#: order/models.py:1796 +#: order/models.py:1825 msgid "Shipment number" msgstr "" -#: order/models.py:1804 +#: order/models.py:1833 msgid "Tracking Number" msgstr "" -#: order/models.py:1805 +#: order/models.py:1834 msgid "Shipment tracking information" msgstr "" -#: order/models.py:1812 +#: order/models.py:1841 msgid "Invoice Number" msgstr "" -#: order/models.py:1813 +#: order/models.py:1842 msgid "Reference number for associated invoice" msgstr "" -#: order/models.py:1833 +#: order/models.py:1862 msgid "Shipment has already been sent" msgstr "" -#: order/models.py:1836 +#: order/models.py:1865 msgid "Shipment has no allocated stock items" msgstr "" -#: order/models.py:1912 +#: order/models.py:1945 msgid "Sales Order Extra Line" msgstr "" -#: order/models.py:1941 +#: order/models.py:1974 msgid "Sales Order Allocation" msgstr "" -#: order/models.py:1964 order/models.py:1966 +#: order/models.py:1997 order/models.py:1999 msgid "Stock item has not been assigned" msgstr "" -#: order/models.py:1973 +#: order/models.py:2006 msgid "Cannot allocate stock item to a line with a different part" msgstr "" -#: order/models.py:1976 +#: order/models.py:2009 msgid "Cannot allocate stock to a line without a part" msgstr "" -#: order/models.py:1979 +#: order/models.py:2012 msgid "Allocation quantity cannot exceed stock quantity" msgstr "" -#: order/models.py:1998 order/serializers.py:1345 +#: order/models.py:2031 order/serializers.py:1471 msgid "Quantity must be 1 for serialized stock item" msgstr "" -#: order/models.py:2001 +#: order/models.py:2034 msgid "Sales order does not match shipment" msgstr "" -#: order/models.py:2002 plugin/base/barcodes/api.py:524 +#: order/models.py:2035 plugin/base/barcodes/api.py:629 msgid "Shipment does not match sales order" msgstr "" -#: order/models.py:2010 +#: order/models.py:2043 msgid "Line" msgstr "" -#: order/models.py:2019 +#: order/models.py:2052 msgid "Sales order shipment reference" msgstr "" -#: order/models.py:2032 order/models.py:2391 +#: order/models.py:2065 order/models.py:2430 #: templates/js/translated/return_order.js:720 msgid "Item" msgstr "" -#: order/models.py:2033 +#: order/models.py:2066 msgid "Select stock item to allocate" msgstr "" -#: order/models.py:2042 +#: order/models.py:2075 msgid "Enter stock allocation quantity" msgstr "" -#: order/models.py:2136 +#: order/models.py:2175 msgid "Return Order reference" msgstr "" -#: order/models.py:2148 +#: order/models.py:2187 msgid "Company from which items are being returned" msgstr "" -#: order/models.py:2160 +#: order/models.py:2199 msgid "Return order status" msgstr "" -#: order/models.py:2362 +#: order/models.py:2401 msgid "Return Order Line Item" msgstr "" -#: order/models.py:2376 +#: order/models.py:2415 msgid "Only serialized items can be assigned to a Return Order" msgstr "" -#: order/models.py:2392 +#: order/models.py:2431 msgid "Select item to return from customer" msgstr "" -#: order/models.py:2398 +#: order/models.py:2437 msgid "Received Date" msgstr "" -#: order/models.py:2399 +#: order/models.py:2438 msgid "The date this this return item was received" msgstr "" -#: order/models.py:2410 templates/js/translated/return_order.js:731 +#: order/models.py:2449 templates/js/translated/return_order.js:731 #: templates/js/translated/table_filters.js:122 msgid "Outcome" msgstr "" -#: order/models.py:2411 +#: order/models.py:2450 msgid "Outcome for this line item" msgstr "" -#: order/models.py:2418 +#: order/models.py:2457 msgid "Cost associated with return or repair for this line item" msgstr "" -#: order/models.py:2428 +#: order/models.py:2467 msgid "Return Order Extra Line" msgstr "" -#: order/serializers.py:86 +#: order/serializers.py:87 +msgid "Order ID" +msgstr "" + +#: order/serializers.py:87 +msgid "ID of the order to duplicate" +msgstr "" + +#: order/serializers.py:93 +msgid "Copy Lines" +msgstr "" + +#: order/serializers.py:94 +msgid "Copy line items from the original order" +msgstr "" + +#: order/serializers.py:100 +msgid "Copy Extra Lines" +msgstr "" + +#: order/serializers.py:101 +msgid "Copy extra line items from the original order" +msgstr "" + +#: order/serializers.py:117 msgid "Completed Lines" msgstr "" -#: order/serializers.py:283 stock/admin.py:195 +#: order/serializers.py:161 +msgid "Duplicate Order" +msgstr "" + +#: order/serializers.py:162 +msgid "Specify options for duplicating this order" +msgstr "" + +#: order/serializers.py:234 +msgid "Invalid order ID" +msgstr "" + +#: order/serializers.py:374 stock/admin.py:196 msgid "Supplier Name" msgstr "" -#: order/serializers.py:331 +#: order/serializers.py:416 msgid "Order cannot be cancelled" msgstr "" -#: order/serializers.py:346 order/serializers.py:1366 +#: order/serializers.py:431 order/serializers.py:1492 msgid "Allow order to be closed with incomplete line items" msgstr "" -#: order/serializers.py:356 order/serializers.py:1376 +#: order/serializers.py:441 order/serializers.py:1502 msgid "Order has incomplete line items" msgstr "" -#: order/serializers.py:506 +#: order/serializers.py:591 msgid "Order is not open" msgstr "" -#: order/serializers.py:527 +#: order/serializers.py:612 msgid "Auto Pricing" msgstr "" -#: order/serializers.py:529 +#: order/serializers.py:614 msgid "Automatically calculate purchase price based on supplier part data" msgstr "" -#: order/serializers.py:539 +#: order/serializers.py:624 msgid "Purchase price currency" msgstr "" -#: order/serializers.py:545 +#: order/serializers.py:630 msgid "Merge Items" msgstr "" -#: order/serializers.py:547 +#: order/serializers.py:632 msgid "Merge items with the same part, destination and target date into one line item" msgstr "" -#: order/serializers.py:560 part/models.py:1033 +#: order/serializers.py:645 part/models.py:1094 part/serializers.py:387 msgid "Internal Part Number" msgstr "" -#: order/serializers.py:568 +#: order/serializers.py:653 msgid "Internal Part Name" msgstr "" -#: order/serializers.py:584 +#: order/serializers.py:669 msgid "Supplier part must be specified" msgstr "" -#: order/serializers.py:587 +#: order/serializers.py:672 msgid "Purchase order must be specified" msgstr "" -#: order/serializers.py:595 +#: order/serializers.py:680 msgid "Supplier must match purchase order" msgstr "" -#: order/serializers.py:596 +#: order/serializers.py:681 msgid "Purchase order must match supplier" msgstr "" -#: order/serializers.py:639 order/serializers.py:1446 +#: order/serializers.py:724 order/serializers.py:1572 msgid "Line Item" msgstr "" -#: order/serializers.py:645 +#: order/serializers.py:730 msgid "Line item does not match purchase order" msgstr "" -#: order/serializers.py:655 order/serializers.py:779 order/serializers.py:1782 +#: order/serializers.py:740 order/serializers.py:881 order/serializers.py:1934 msgid "Select destination location for received items" msgstr "" -#: order/serializers.py:671 templates/js/translated/purchase_order.js:1130 +#: order/serializers.py:756 templates/js/translated/purchase_order.js:1113 #: templates/js/translated/stock.js:1200 msgid "Enter batch code for incoming stock items" msgstr "" -#: order/serializers.py:679 templates/js/translated/purchase_order.js:1155 +#: order/serializers.py:764 templates/js/translated/purchase_order.js:1138 msgid "Enter serial numbers for incoming stock items" msgstr "" -#: order/serializers.py:691 +#: order/serializers.py:776 msgid "Override packaging information for incoming stock items" msgstr "" -#: order/serializers.py:699 +#: order/serializers.py:784 msgid "Additional note for incoming stock items" msgstr "" -#: order/serializers.py:706 templates/js/translated/barcode.js:52 +#: order/serializers.py:791 templates/js/translated/barcode.js:52 msgid "Barcode" msgstr "" -#: order/serializers.py:707 +#: order/serializers.py:792 msgid "Scanned barcode" msgstr "" -#: order/serializers.py:723 +#: order/serializers.py:808 msgid "Barcode is already in use" msgstr "" -#: order/serializers.py:747 +#: order/serializers.py:831 msgid "An integer quantity must be provided for trackable parts" msgstr "" -#: order/serializers.py:795 order/serializers.py:1798 +#: order/serializers.py:898 order/serializers.py:1950 msgid "Line items must be provided" msgstr "" -#: order/serializers.py:811 +#: order/serializers.py:914 msgid "Destination location must be specified" msgstr "" -#: order/serializers.py:822 +#: order/serializers.py:925 msgid "Supplied barcode values must be unique" msgstr "" -#: order/serializers.py:1187 +#: order/serializers.py:1221 msgid "Sale price currency" msgstr "" -#: order/serializers.py:1248 +#: order/serializers.py:1260 +msgid "Allocated Items" +msgstr "" + +#: order/serializers.py:1374 msgid "No shipment details provided" msgstr "" -#: order/serializers.py:1309 order/serializers.py:1455 +#: order/serializers.py:1435 order/serializers.py:1581 msgid "Line item is not associated with this order" msgstr "" -#: order/serializers.py:1328 +#: order/serializers.py:1454 msgid "Quantity must be positive" msgstr "" -#: order/serializers.py:1465 +#: order/serializers.py:1591 msgid "Enter serial numbers to allocate" msgstr "" -#: order/serializers.py:1487 order/serializers.py:1593 +#: order/serializers.py:1613 order/serializers.py:1733 msgid "Shipment has already been shipped" msgstr "" -#: order/serializers.py:1490 order/serializers.py:1596 +#: order/serializers.py:1616 order/serializers.py:1736 msgid "Shipment is not associated with this order" msgstr "" -#: order/serializers.py:1537 +#: order/serializers.py:1671 msgid "No match found for the following serial numbers" msgstr "" -#: order/serializers.py:1544 -msgid "The following serial numbers are already allocated" +#: order/serializers.py:1678 +msgid "The following serial numbers are unavailable" msgstr "" -#: order/serializers.py:1752 +#: order/serializers.py:1904 msgid "Return order line item" msgstr "" -#: order/serializers.py:1758 +#: order/serializers.py:1910 msgid "Line item does not match return order" msgstr "" -#: order/serializers.py:1761 +#: order/serializers.py:1913 msgid "Line item has already been received" msgstr "" -#: order/serializers.py:1790 +#: order/serializers.py:1942 msgid "Items can only be received against orders which are in progress" msgstr "" -#: order/serializers.py:1873 +#: order/serializers.py:2025 msgid "Line price currency" msgstr "" -#: order/status_codes.py:17 order/status_codes.py:52 stock/status_codes.py:16 +#: order/status_codes.py:17 order/status_codes.py:54 stock/status_codes.py:16 msgid "Lost" msgstr "Χάθηκε" -#: order/status_codes.py:18 order/status_codes.py:53 stock/status_codes.py:22 +#: order/status_codes.py:18 order/status_codes.py:55 stock/status_codes.py:24 msgid "Returned" msgstr "Επιστράφηκε" -#: order/status_codes.py:45 order/status_codes.py:77 +#: order/status_codes.py:47 order/status_codes.py:79 msgid "In Progress" msgstr "Σε Εξέλιξη" -#: order/status_codes.py:101 +#: order/status_codes.py:105 msgid "Return" msgstr "Επιστροφή" -#: order/status_codes.py:104 +#: order/status_codes.py:108 msgid "Repair" msgstr "Επισκευή" -#: order/status_codes.py:107 +#: order/status_codes.py:111 msgid "Replace" msgstr "Αντικατάσταση" -#: order/status_codes.py:110 +#: order/status_codes.py:114 msgid "Refund" msgstr "Επιστροφή χρημάτων" -#: order/status_codes.py:113 +#: order/status_codes.py:117 msgid "Reject" msgstr "Απόρριψη" -#: order/tasks.py:25 +#: order/tasks.py:30 msgid "Overdue Purchase Order" msgstr "" -#: order/tasks.py:30 +#: order/tasks.py:35 #, python-brace-format msgid "Purchase order {po} is now overdue" msgstr "" -#: order/tasks.py:75 +#: order/tasks.py:80 msgid "Overdue Sales Order" msgstr "" -#: order/tasks.py:80 +#: order/tasks.py:85 #, python-brace-format msgid "Sales order {so} is now overdue" msgstr "" -#: order/templates/order/order_base.html:51 +#: order/templates/order/order_base.html:52 msgid "Print purchase order report" msgstr "" -#: order/templates/order/order_base.html:53 -#: order/templates/order/return_order_base.html:62 -#: order/templates/order/sales_order_base.html:62 +#: order/templates/order/order_base.html:54 +#: order/templates/order/return_order_base.html:63 +#: order/templates/order/sales_order_base.html:63 msgid "Export order to file" msgstr "" -#: order/templates/order/order_base.html:59 -#: order/templates/order/return_order_base.html:72 -#: order/templates/order/sales_order_base.html:71 +#: order/templates/order/order_base.html:60 +#: order/templates/order/return_order_base.html:73 +#: order/templates/order/sales_order_base.html:72 msgid "Order actions" msgstr "" -#: order/templates/order/order_base.html:64 -#: order/templates/order/return_order_base.html:76 -#: order/templates/order/sales_order_base.html:75 +#: order/templates/order/order_base.html:65 +#: order/templates/order/return_order_base.html:77 +#: order/templates/order/sales_order_base.html:76 msgid "Edit order" msgstr "" -#: order/templates/order/order_base.html:68 +#: order/templates/order/order_base.html:69 msgid "Duplicate order" msgstr "" -#: order/templates/order/order_base.html:73 -#: order/templates/order/return_order_base.html:78 -#: order/templates/order/sales_order_base.html:77 +#: order/templates/order/order_base.html:74 +#: order/templates/order/return_order_base.html:79 +#: order/templates/order/sales_order_base.html:78 msgid "Hold order" msgstr "" -#: order/templates/order/order_base.html:78 -#: order/templates/order/return_order_base.html:81 -#: order/templates/order/sales_order_base.html:80 +#: order/templates/order/order_base.html:79 +#: order/templates/order/return_order_base.html:82 +#: order/templates/order/sales_order_base.html:81 msgid "Cancel order" msgstr "" -#: order/templates/order/order_base.html:84 #: order/templates/order/order_base.html:85 -#: order/templates/order/return_order_base.html:85 +#: order/templates/order/order_base.html:86 #: order/templates/order/return_order_base.html:86 -#: order/templates/order/sales_order_base.html:86 +#: order/templates/order/return_order_base.html:87 #: order/templates/order/sales_order_base.html:87 +#: order/templates/order/sales_order_base.html:88 msgid "Issue Order" msgstr "" -#: order/templates/order/order_base.html:88 -#: order/templates/order/return_order_base.html:89 -msgid "Mark order as complete" -msgstr "" - #: order/templates/order/order_base.html:89 #: order/templates/order/return_order_base.html:90 -#: order/templates/order/sales_order_base.html:100 +msgid "Mark order as complete" +msgstr "" + +#: order/templates/order/order_base.html:90 +#: order/templates/order/return_order_base.html:91 +#: order/templates/order/sales_order_base.html:101 msgid "Complete Order" msgstr "" -#: order/templates/order/order_base.html:96 +#: order/templates/order/order_base.html:97 msgid "Supplier part thumbnail" msgstr "" -#: order/templates/order/order_base.html:116 -#: order/templates/order/return_order_base.html:109 -#: order/templates/order/sales_order_base.html:118 +#: order/templates/order/order_base.html:117 +#: order/templates/order/return_order_base.html:110 +#: order/templates/order/sales_order_base.html:119 msgid "Order Description" msgstr "" -#: order/templates/order/order_base.html:146 -msgid "No suppplier information available" -msgstr "" - -#: order/templates/order/order_base.html:159 -#: order/templates/order/sales_order_base.html:164 +#: order/templates/order/order_base.html:168 +#: order/templates/order/sales_order_base.html:165 msgid "Completed Line Items" msgstr "" -#: order/templates/order/order_base.html:165 -#: order/templates/order/sales_order_base.html:170 -#: order/templates/order/sales_order_base.html:180 +#: order/templates/order/order_base.html:174 +#: order/templates/order/sales_order_base.html:171 +#: order/templates/order/sales_order_base.html:181 msgid "Incomplete" msgstr "" -#: order/templates/order/order_base.html:184 -#: order/templates/order/return_order_base.html:160 +#: order/templates/order/order_base.html:193 +#: order/templates/order/return_order_base.html:161 #: report/templates/report/inventree_build_order_report.html:121 msgid "Issued" msgstr "" -#: order/templates/order/order_base.html:229 +#: order/templates/order/order_base.html:238 msgid "Total cost" msgstr "" -#: order/templates/order/order_base.html:233 -#: order/templates/order/return_order_base.html:202 -#: order/templates/order/sales_order_base.html:246 +#: order/templates/order/order_base.html:242 +#: order/templates/order/return_order_base.html:203 +#: order/templates/order/sales_order_base.html:247 msgid "Total cost could not be calculated" msgstr "" -#: order/templates/order/order_base.html:335 +#: order/templates/order/order_base.html:344 msgid "Purchase Order QR Code" msgstr "" -#: order/templates/order/order_base.html:347 +#: order/templates/order/order_base.html:356 msgid "Link Barcode to Purchase Order" msgstr "" @@ -6184,12 +6392,12 @@ msgstr "" #: part/templates/part/import_wizard/ajax_match_references.html:42 #: part/templates/part/import_wizard/match_fields.html:71 #: part/templates/part/import_wizard/match_references.html:49 -#: templates/js/translated/bom.js:133 templates/js/translated/build.js:530 -#: templates/js/translated/build.js:1802 -#: templates/js/translated/purchase_order.js:696 -#: templates/js/translated/purchase_order.js:1288 +#: templates/js/translated/bom.js:133 templates/js/translated/build.js:533 +#: templates/js/translated/build.js:1805 +#: templates/js/translated/purchase_order.js:679 +#: templates/js/translated/purchase_order.js:1271 #: templates/js/translated/return_order.js:505 -#: templates/js/translated/sales_order.js:1145 +#: templates/js/translated/sales_order.js:1111 #: templates/js/translated/stock.js:720 templates/js/translated/stock.js:889 #: templates/patterns/wizard/match_fields.html:70 msgid "Remove row" @@ -6242,7 +6450,7 @@ msgstr "" #: order/templates/order/purchase_order_detail.html:27 #: order/templates/order/return_order_detail.html:24 #: order/templates/order/sales_order_detail.html:24 -#: templates/js/translated/purchase_order.js:414 +#: templates/js/translated/purchase_order.js:397 #: templates/js/translated/return_order.js:458 #: templates/js/translated/sales_order.js:237 msgid "Add Line Item" @@ -6277,45 +6485,45 @@ msgstr "" msgid "Order Notes" msgstr "" -#: order/templates/order/return_order_base.html:18 -#: order/templates/order/sales_order_base.html:18 +#: order/templates/order/return_order_base.html:19 +#: order/templates/order/sales_order_base.html:19 msgid "Customer logo thumbnail" msgstr "" -#: order/templates/order/return_order_base.html:60 +#: order/templates/order/return_order_base.html:61 msgid "Print return order report" msgstr "" -#: order/templates/order/return_order_base.html:64 -#: order/templates/order/sales_order_base.html:64 +#: order/templates/order/return_order_base.html:65 +#: order/templates/order/sales_order_base.html:65 msgid "Print packing list" msgstr "" -#: order/templates/order/return_order_base.html:141 -#: order/templates/order/sales_order_base.html:158 +#: order/templates/order/return_order_base.html:142 +#: order/templates/order/sales_order_base.html:159 #: templates/js/translated/return_order.js:308 -#: templates/js/translated/sales_order.js:833 +#: templates/js/translated/sales_order.js:792 msgid "Customer Reference" msgstr "" -#: order/templates/order/return_order_base.html:198 -#: order/templates/order/sales_order_base.html:242 +#: order/templates/order/return_order_base.html:199 +#: order/templates/order/sales_order_base.html:243 #: part/templates/part/part_pricing.html:32 #: part/templates/part/part_pricing.html:58 #: part/templates/part/part_pricing.html:99 #: part/templates/part/part_pricing.html:114 #: templates/js/translated/part.js:1079 -#: templates/js/translated/purchase_order.js:1822 +#: templates/js/translated/purchase_order.js:1806 #: templates/js/translated/return_order.js:380 -#: templates/js/translated/sales_order.js:891 +#: templates/js/translated/sales_order.js:850 msgid "Total Cost" msgstr "" -#: order/templates/order/return_order_base.html:273 +#: order/templates/order/return_order_base.html:274 msgid "Return Order QR Code" msgstr "" -#: order/templates/order/return_order_base.html:285 +#: order/templates/order/return_order_base.html:286 msgid "Link Barcode to Return Order" msgstr "" @@ -6323,40 +6531,40 @@ msgstr "" msgid "Order Details" msgstr "" -#: order/templates/order/sales_order_base.html:60 +#: order/templates/order/sales_order_base.html:61 msgid "Print sales order report" msgstr "" -#: order/templates/order/sales_order_base.html:91 #: order/templates/order/sales_order_base.html:92 +#: order/templates/order/sales_order_base.html:93 msgid "Ship Items" msgstr "" -#: order/templates/order/sales_order_base.html:95 #: order/templates/order/sales_order_base.html:96 +#: order/templates/order/sales_order_base.html:97 msgid "Mark As Shipped" msgstr "" -#: order/templates/order/sales_order_base.html:99 -#: templates/js/translated/sales_order.js:536 +#: order/templates/order/sales_order_base.html:100 +#: templates/js/translated/sales_order.js:495 msgid "Complete Sales Order" msgstr "" -#: order/templates/order/sales_order_base.html:138 +#: order/templates/order/sales_order_base.html:139 msgid "This Sales Order has not been fully allocated" msgstr "" -#: order/templates/order/sales_order_base.html:176 +#: order/templates/order/sales_order_base.html:177 #: order/templates/order/sales_order_detail.html:99 #: order/templates/order/so_sidebar.html:11 msgid "Completed Shipments" msgstr "" -#: order/templates/order/sales_order_base.html:339 +#: order/templates/order/sales_order_base.html:340 msgid "Sales Order QR Code" msgstr "" -#: order/templates/order/sales_order_base.html:351 +#: order/templates/order/sales_order_base.html:352 msgid "Link Barcode to Sales Order" msgstr "" @@ -6370,7 +6578,7 @@ msgid "Pending Shipments" msgstr "" #: order/templates/order/sales_order_detail.html:71 -#: templates/js/translated/bom.js:1277 templates/js/translated/build.js:1063 +#: templates/js/translated/bom.js:1277 templates/js/translated/build.js:1066 #: templates/js/translated/filters.js:299 msgid "Actions" msgstr "" @@ -6383,39 +6591,40 @@ msgstr "" msgid "Match Supplier Parts" msgstr "" -#: order/views.py:406 +#: order/views.py:407 msgid "Sales order not found" msgstr "" -#: order/views.py:412 +#: order/views.py:413 msgid "Price not found" msgstr "" -#: order/views.py:415 +#: order/views.py:416 #, python-brace-format msgid "Updated {part} unit-price to {price}" msgstr "" -#: order/views.py:421 +#: order/views.py:422 #, python-brace-format msgid "Updated {part} unit-price to {price} and quantity to {qty}" msgstr "" -#: part/admin.py:48 part/models.py:1032 part/templates/part/part_base.html:269 +#: part/admin.py:48 part/models.py:1093 part/serializers.py:939 +#: part/templates/part/part_base.html:277 #: report/templates/report/inventree_stock_location_report.html:103 #: templates/js/translated/part.js:1233 templates/js/translated/part.js:2347 -#: templates/js/translated/stock.js:2121 +#: templates/js/translated/stock.js:2122 msgid "IPN" msgstr "" -#: part/admin.py:50 part/models.py:1041 part/templates/part/part_base.html:286 +#: part/admin.py:50 part/models.py:1102 part/templates/part/part_base.html:294 #: report/models.py:161 templates/js/translated/part.js:1238 #: templates/js/translated/part.js:2353 msgid "Revision" msgstr "" -#: part/admin.py:53 part/admin.py:319 part/models.py:1014 -#: part/templates/part/category.html:91 part/templates/part/part_base.html:307 +#: part/admin.py:53 part/admin.py:319 part/models.py:1075 +#: part/templates/part/category.html:91 part/templates/part/part_base.html:315 msgid "Keywords" msgstr "" @@ -6427,7 +6636,7 @@ msgstr "" msgid "Category ID" msgstr "" -#: part/admin.py:67 part/admin.py:304 part/serializers.py:880 +#: part/admin.py:67 part/admin.py:304 part/serializers.py:924 #: part/stocktake.py:222 msgid "Category Name" msgstr "" @@ -6440,11 +6649,11 @@ msgstr "" msgid "Default Supplier ID" msgstr "" -#: part/admin.py:81 part/models.py:1000 part/templates/part/part_base.html:177 +#: part/admin.py:81 part/models.py:1061 part/templates/part/part_base.html:178 msgid "Variant Of" msgstr "" -#: part/admin.py:84 part/models.py:1138 part/templates/part/part_base.html:203 +#: part/admin.py:84 part/models.py:1199 part/templates/part/part_base.html:204 msgid "Minimum Stock" msgstr "" @@ -6452,23 +6661,23 @@ msgstr "" msgid "Used In" msgstr "" -#: part/admin.py:150 part/serializers.py:897 -#: part/templates/part/part_base.html:241 stock/admin.py:235 +#: part/admin.py:150 part/serializers.py:949 +#: part/templates/part/part_base.html:249 stock/admin.py:236 #: templates/js/translated/part.js:717 templates/js/translated/part.js:2159 msgid "Building" msgstr "" -#: part/admin.py:155 part/models.py:3202 part/models.py:3216 +#: part/admin.py:155 part/models.py:3253 part/models.py:3267 #: templates/js/translated/part.js:976 msgid "Minimum Cost" msgstr "" -#: part/admin.py:158 part/models.py:3209 part/models.py:3223 +#: part/admin.py:158 part/models.py:3260 part/models.py:3274 #: templates/js/translated/part.js:986 msgid "Maximum Cost" msgstr "" -#: part/admin.py:308 part/admin.py:387 stock/admin.py:57 stock/admin.py:215 +#: part/admin.py:308 part/admin.py:387 stock/admin.py:57 stock/admin.py:216 msgid "Parent ID" msgstr "" @@ -6481,8 +6690,8 @@ msgstr "" msgid "Category Path" msgstr "" -#: part/admin.py:325 part/models.py:425 part/serializers.py:130 -#: part/serializers.py:290 part/serializers.py:415 +#: part/admin.py:325 part/models.py:420 part/serializers.py:130 +#: part/serializers.py:323 part/serializers.py:459 #: part/templates/part/cat_link.html:3 part/templates/part/category.html:20 #: part/templates/part/category.html:138 part/templates/part/category.html:158 #: part/templates/part/category_sidebar.html:9 @@ -6509,15 +6718,15 @@ msgstr "" msgid "Part Revision" msgstr "" -#: part/admin.py:418 part/serializers.py:1346 +#: part/admin.py:418 part/serializers.py:1400 #: templates/js/translated/pricing.js:358 -#: templates/js/translated/pricing.js:1024 +#: templates/js/translated/pricing.js:1022 msgid "Minimum Price" msgstr "" -#: part/admin.py:423 part/serializers.py:1361 +#: part/admin.py:423 part/serializers.py:1415 #: templates/js/translated/pricing.js:353 -#: templates/js/translated/pricing.js:1032 +#: templates/js/translated/pricing.js:1030 msgid "Maximum Price" msgstr "" @@ -6545,94 +6754,98 @@ msgstr "" msgid "Filter by top-level categories" msgstr "" +#: part/api.py:156 stock/api.py:343 +msgid "Cascade" +msgstr "" + #: part/api.py:158 msgid "Include sub-categories in filtered results" msgstr "" -#: part/api.py:179 templates/js/translated/part.js:311 +#: part/api.py:178 templates/js/translated/part.js:311 msgid "Parent" msgstr "" -#: part/api.py:181 +#: part/api.py:180 msgid "Filter by parent category" msgstr "" -#: part/api.py:214 +#: part/api.py:213 msgid "Exclude Tree" msgstr "" -#: part/api.py:216 +#: part/api.py:215 msgid "Exclude sub-categories under the specified category" msgstr "" -#: part/api.py:441 +#: part/api.py:440 msgid "Has Results" msgstr "" -#: part/api.py:608 +#: part/api.py:604 msgid "Incoming Purchase Order" msgstr "" -#: part/api.py:626 +#: part/api.py:618 msgid "Outgoing Sales Order" msgstr "" -#: part/api.py:642 +#: part/api.py:630 msgid "Stock produced by Build Order" msgstr "" -#: part/api.py:726 +#: part/api.py:712 msgid "Stock required for Build Order" msgstr "" -#: part/api.py:874 +#: part/api.py:858 msgid "Validate entire Bill of Materials" msgstr "" -#: part/api.py:880 +#: part/api.py:864 msgid "This option must be selected" msgstr "" -#: part/api.py:916 +#: part/api.py:900 msgid "Is Revision" msgstr "" -#: part/api.py:926 +#: part/api.py:910 msgid "Has Revisions" msgstr "" -#: part/api.py:1117 +#: part/api.py:1101 msgid "BOM Valid" msgstr "" -#: part/api.py:1523 part/models.py:1024 part/models.py:3489 part/models.py:4046 -#: part/serializers.py:430 part/serializers.py:1202 -#: part/templates/part/part_base.html:260 stock/api.py:781 +#: part/api.py:1509 part/models.py:1085 part/models.py:3540 part/models.py:4104 +#: part/serializers.py:474 part/serializers.py:1255 +#: part/templates/part/part_base.html:268 stock/api.py:781 #: templates/InvenTree/settings/settings_staff_js.html:300 #: templates/js/translated/notification.js:60 #: templates/js/translated/part.js:2383 msgid "Category" msgstr "" -#: part/api.py:1761 +#: part/api.py:1750 msgid "Assembly part is testable" msgstr "" -#: part/api.py:1770 +#: part/api.py:1759 msgid "Component part is testable" msgstr "" -#: part/api.py:1821 +#: part/api.py:1810 msgid "Uses" msgstr "" -#: part/bom.py:178 part/models.py:107 part/models.py:1077 -#: part/templates/part/category.html:113 part/templates/part/part_base.html:376 +#: part/bom.py:183 part/models.py:109 part/models.py:1138 +#: part/templates/part/category.html:113 part/templates/part/part_base.html:384 #: templates/js/translated/part.js:2397 msgid "Default Location" msgstr "" -#: part/bom.py:179 part/serializers.py:905 +#: part/bom.py:184 part/serializers.py:957 #: templates/email/low_stock_notification.html:16 msgid "Total Stock" msgstr "" @@ -6641,789 +6854,789 @@ msgstr "" msgid "Input quantity for price calculation" msgstr "" -#: part/models.py:88 part/models.py:4047 part/templates/part/category.html:16 +#: part/models.py:90 part/models.py:4105 part/templates/part/category.html:16 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "" -#: part/models.py:89 part/templates/part/category.html:133 +#: part/models.py:91 part/templates/part/category.html:133 #: templates/InvenTree/search.html:97 templates/js/translated/search.js:158 #: users/models.py:202 msgid "Part Categories" msgstr "" -#: part/models.py:108 +#: part/models.py:110 msgid "Default location for parts in this category" msgstr "" -#: part/models.py:113 stock/models.py:187 templates/js/translated/part.js:2828 -#: templates/js/translated/stock.js:2856 +#: part/models.py:115 stock/models.py:193 templates/js/translated/part.js:2828 +#: templates/js/translated/stock.js:2857 #: templates/js/translated/table_filters.js:246 #: templates/js/translated/table_filters.js:290 msgid "Structural" msgstr "" -#: part/models.py:115 +#: part/models.py:117 msgid "Parts may not be directly assigned to a structural category, but may be assigned to child categories." msgstr "" -#: part/models.py:124 +#: part/models.py:126 msgid "Default keywords" msgstr "" -#: part/models.py:125 +#: part/models.py:127 msgid "Default keywords for parts in this category" msgstr "" -#: part/models.py:131 stock/models.py:90 stock/models.py:169 +#: part/models.py:133 stock/models.py:96 stock/models.py:175 #: templates/InvenTree/settings/settings_staff_js.html:445 msgid "Icon" msgstr "" -#: part/models.py:132 part/serializers.py:143 part/serializers.py:161 -#: stock/models.py:170 +#: part/models.py:134 part/serializers.py:143 part/serializers.py:161 +#: stock/models.py:176 msgid "Icon (optional)" msgstr "" -#: part/models.py:178 +#: part/models.py:180 msgid "You cannot make this part category structural because some parts are already assigned to it!" msgstr "" -#: part/models.py:519 +#: part/models.py:514 msgid "Cannot delete this part as it is locked" msgstr "" -#: part/models.py:522 +#: part/models.py:517 msgid "Cannot delete this part as it is still active" msgstr "" -#: part/models.py:527 +#: part/models.py:522 msgid "Cannot delete this part as it is used in an assembly" msgstr "" -#: part/models.py:565 +#: part/models.py:560 msgid "Invalid choice for parent part" msgstr "" -#: part/models.py:613 part/models.py:620 +#: part/models.py:608 part/models.py:615 #, python-brace-format msgid "Part '{self}' cannot be used in BOM for '{parent}' (recursive)" msgstr "" -#: part/models.py:632 +#: part/models.py:627 #, python-brace-format msgid "Part '{parent}' is used in BOM for '{self}' (recursive)" msgstr "" -#: part/models.py:695 +#: part/models.py:694 #, python-brace-format msgid "IPN must match regex pattern {pattern}" msgstr "" -#: part/models.py:703 +#: part/models.py:702 msgid "Part cannot be a revision of itself" msgstr "" -#: part/models.py:710 +#: part/models.py:709 msgid "Cannot make a revision of a part which is already a revision" msgstr "" -#: part/models.py:717 +#: part/models.py:716 msgid "Revision code must be specified" msgstr "" -#: part/models.py:724 +#: part/models.py:723 msgid "Revisions are only allowed for assembly parts" msgstr "" -#: part/models.py:731 +#: part/models.py:730 msgid "Cannot make a revision of a template part" msgstr "" -#: part/models.py:737 +#: part/models.py:736 msgid "Parent part must point to the same template" msgstr "" -#: part/models.py:816 +#: part/models.py:832 msgid "Stock item with this serial number already exists" msgstr "" -#: part/models.py:917 +#: part/models.py:976 msgid "Duplicate IPN not allowed in part settings" msgstr "" -#: part/models.py:926 +#: part/models.py:988 msgid "Duplicate part revision already exists." msgstr "" -#: part/models.py:936 +#: part/models.py:997 msgid "Part with this Name, IPN and Revision already exists." msgstr "" -#: part/models.py:951 +#: part/models.py:1012 msgid "Parts cannot be assigned to structural part categories!" msgstr "" -#: part/models.py:983 part/models.py:4102 +#: part/models.py:1044 part/models.py:4160 msgid "Part name" msgstr "" -#: part/models.py:988 +#: part/models.py:1049 msgid "Is Template" msgstr "" -#: part/models.py:989 +#: part/models.py:1050 msgid "Is this part a template part?" msgstr "" -#: part/models.py:999 +#: part/models.py:1060 msgid "Is this part a variant of another part?" msgstr "" -#: part/models.py:1007 +#: part/models.py:1068 msgid "Part description (optional)" msgstr "" -#: part/models.py:1015 +#: part/models.py:1076 msgid "Part keywords to improve visibility in search results" msgstr "" -#: part/models.py:1025 +#: part/models.py:1086 msgid "Part category" msgstr "" -#: part/models.py:1040 +#: part/models.py:1101 msgid "Part revision or version number" msgstr "" -#: part/models.py:1050 +#: part/models.py:1111 msgid "Is this part a revision of another part?" msgstr "" -#: part/models.py:1051 part/templates/part/part_base.html:277 +#: part/models.py:1112 part/templates/part/part_base.html:285 msgid "Revision Of" msgstr "" -#: part/models.py:1075 +#: part/models.py:1136 msgid "Where is this item normally stored?" msgstr "" -#: part/models.py:1121 part/templates/part/part_base.html:385 +#: part/models.py:1182 part/templates/part/part_base.html:393 msgid "Default Supplier" msgstr "" -#: part/models.py:1122 +#: part/models.py:1183 msgid "Default supplier part" msgstr "" -#: part/models.py:1129 +#: part/models.py:1190 msgid "Default Expiry" msgstr "" -#: part/models.py:1130 +#: part/models.py:1191 msgid "Expiry time (in days) for stock items of this part" msgstr "" -#: part/models.py:1139 +#: part/models.py:1200 msgid "Minimum allowed stock level" msgstr "" -#: part/models.py:1148 +#: part/models.py:1209 msgid "Units of measure for this part" msgstr "" -#: part/models.py:1155 +#: part/models.py:1216 msgid "Can this part be built from other parts?" msgstr "" -#: part/models.py:1161 +#: part/models.py:1222 msgid "Can this part be used to build other parts?" msgstr "" -#: part/models.py:1167 +#: part/models.py:1228 msgid "Does this part have tracking for unique items?" msgstr "" -#: part/models.py:1173 +#: part/models.py:1234 msgid "Can this part have test results recorded against it?" msgstr "" -#: part/models.py:1179 +#: part/models.py:1240 msgid "Can this part be purchased from external suppliers?" msgstr "" -#: part/models.py:1185 +#: part/models.py:1246 msgid "Can this part be sold to customers?" msgstr "" -#: part/models.py:1189 +#: part/models.py:1250 msgid "Is this part active?" msgstr "" -#: part/models.py:1194 templates/js/translated/part.js:821 +#: part/models.py:1255 templates/js/translated/part.js:821 #: templates/js/translated/table_filters.js:724 msgid "Locked" msgstr "" -#: part/models.py:1195 +#: part/models.py:1256 msgid "Locked parts cannot be edited" msgstr "" -#: part/models.py:1201 +#: part/models.py:1262 msgid "Is this a virtual part, such as a software product or license?" msgstr "" -#: part/models.py:1207 +#: part/models.py:1268 msgid "BOM checksum" msgstr "" -#: part/models.py:1208 +#: part/models.py:1269 msgid "Stored BOM checksum" msgstr "" -#: part/models.py:1216 +#: part/models.py:1277 msgid "BOM checked by" msgstr "" -#: part/models.py:1221 +#: part/models.py:1282 msgid "BOM checked date" msgstr "" -#: part/models.py:1237 +#: part/models.py:1298 msgid "Creation User" msgstr "" -#: part/models.py:1247 +#: part/models.py:1308 msgid "Owner responsible for this part" msgstr "" -#: part/models.py:1252 part/templates/part/part_base.html:348 -#: stock/templates/stock/item_base.html:451 +#: part/models.py:1313 part/templates/part/part_base.html:356 +#: stock/templates/stock/item_base.html:448 #: templates/js/translated/part.js:2490 msgid "Last Stocktake" msgstr "" -#: part/models.py:2125 +#: part/models.py:2185 msgid "Sell multiple" msgstr "" -#: part/models.py:3116 +#: part/models.py:3167 msgid "Currency used to cache pricing calculations" msgstr "" -#: part/models.py:3132 +#: part/models.py:3183 msgid "Minimum BOM Cost" msgstr "" -#: part/models.py:3133 +#: part/models.py:3184 msgid "Minimum cost of component parts" msgstr "" -#: part/models.py:3139 +#: part/models.py:3190 msgid "Maximum BOM Cost" msgstr "" -#: part/models.py:3140 +#: part/models.py:3191 msgid "Maximum cost of component parts" msgstr "" -#: part/models.py:3146 +#: part/models.py:3197 msgid "Minimum Purchase Cost" msgstr "" -#: part/models.py:3147 +#: part/models.py:3198 msgid "Minimum historical purchase cost" msgstr "" -#: part/models.py:3153 +#: part/models.py:3204 msgid "Maximum Purchase Cost" msgstr "" -#: part/models.py:3154 +#: part/models.py:3205 msgid "Maximum historical purchase cost" msgstr "" -#: part/models.py:3160 +#: part/models.py:3211 msgid "Minimum Internal Price" msgstr "" -#: part/models.py:3161 +#: part/models.py:3212 msgid "Minimum cost based on internal price breaks" msgstr "" -#: part/models.py:3167 +#: part/models.py:3218 msgid "Maximum Internal Price" msgstr "" -#: part/models.py:3168 +#: part/models.py:3219 msgid "Maximum cost based on internal price breaks" msgstr "" -#: part/models.py:3174 +#: part/models.py:3225 msgid "Minimum Supplier Price" msgstr "" -#: part/models.py:3175 +#: part/models.py:3226 msgid "Minimum price of part from external suppliers" msgstr "" -#: part/models.py:3181 +#: part/models.py:3232 msgid "Maximum Supplier Price" msgstr "" -#: part/models.py:3182 +#: part/models.py:3233 msgid "Maximum price of part from external suppliers" msgstr "" -#: part/models.py:3188 +#: part/models.py:3239 msgid "Minimum Variant Cost" msgstr "" -#: part/models.py:3189 +#: part/models.py:3240 msgid "Calculated minimum cost of variant parts" msgstr "" -#: part/models.py:3195 +#: part/models.py:3246 msgid "Maximum Variant Cost" msgstr "" -#: part/models.py:3196 +#: part/models.py:3247 msgid "Calculated maximum cost of variant parts" msgstr "" -#: part/models.py:3203 +#: part/models.py:3254 msgid "Override minimum cost" msgstr "" -#: part/models.py:3210 +#: part/models.py:3261 msgid "Override maximum cost" msgstr "" -#: part/models.py:3217 +#: part/models.py:3268 msgid "Calculated overall minimum cost" msgstr "" -#: part/models.py:3224 +#: part/models.py:3275 msgid "Calculated overall maximum cost" msgstr "" -#: part/models.py:3230 +#: part/models.py:3281 msgid "Minimum Sale Price" msgstr "" -#: part/models.py:3231 +#: part/models.py:3282 msgid "Minimum sale price based on price breaks" msgstr "" -#: part/models.py:3237 +#: part/models.py:3288 msgid "Maximum Sale Price" msgstr "" -#: part/models.py:3238 +#: part/models.py:3289 msgid "Maximum sale price based on price breaks" msgstr "" -#: part/models.py:3244 +#: part/models.py:3295 msgid "Minimum Sale Cost" msgstr "" -#: part/models.py:3245 +#: part/models.py:3296 msgid "Minimum historical sale price" msgstr "" -#: part/models.py:3251 +#: part/models.py:3302 msgid "Maximum Sale Cost" msgstr "" -#: part/models.py:3252 +#: part/models.py:3303 msgid "Maximum historical sale price" msgstr "" -#: part/models.py:3271 +#: part/models.py:3322 msgid "Part for stocktake" msgstr "" -#: part/models.py:3276 +#: part/models.py:3327 msgid "Item Count" msgstr "" -#: part/models.py:3277 +#: part/models.py:3328 msgid "Number of individual stock entries at time of stocktake" msgstr "" -#: part/models.py:3285 +#: part/models.py:3336 msgid "Total available stock at time of stocktake" msgstr "" -#: part/models.py:3289 part/models.py:3372 +#: part/models.py:3340 part/models.py:3423 part/serializers.py:263 #: part/templates/part/part_scheduling.html:13 #: report/templates/report/inventree_test_report.html:106 #: templates/InvenTree/settings/plugin_settings.html:37 #: templates/InvenTree/settings/settings_staff_js.html:543 -#: templates/js/translated/part.js:1092 templates/js/translated/pricing.js:826 -#: templates/js/translated/pricing.js:950 -#: templates/js/translated/purchase_order.js:1801 -#: templates/js/translated/stock.js:2905 +#: templates/js/translated/part.js:1092 templates/js/translated/pricing.js:824 +#: templates/js/translated/pricing.js:948 +#: templates/js/translated/purchase_order.js:1785 +#: templates/js/translated/stock.js:2906 msgid "Date" msgstr "" -#: part/models.py:3290 +#: part/models.py:3341 msgid "Date stocktake was performed" msgstr "" -#: part/models.py:3298 +#: part/models.py:3349 msgid "Additional notes" msgstr "" -#: part/models.py:3308 +#: part/models.py:3359 msgid "User who performed this stocktake" msgstr "" -#: part/models.py:3314 +#: part/models.py:3365 msgid "Minimum Stock Cost" msgstr "" -#: part/models.py:3315 +#: part/models.py:3366 msgid "Estimated minimum cost of stock on hand" msgstr "" -#: part/models.py:3321 +#: part/models.py:3372 msgid "Maximum Stock Cost" msgstr "" -#: part/models.py:3322 +#: part/models.py:3373 msgid "Estimated maximum cost of stock on hand" msgstr "" -#: part/models.py:3378 templates/InvenTree/settings/settings_staff_js.html:532 +#: part/models.py:3429 templates/InvenTree/settings/settings_staff_js.html:532 msgid "Report" msgstr "" -#: part/models.py:3379 +#: part/models.py:3430 msgid "Stocktake report file (generated internally)" msgstr "" -#: part/models.py:3384 templates/InvenTree/settings/settings_staff_js.html:539 +#: part/models.py:3435 templates/InvenTree/settings/settings_staff_js.html:539 msgid "Part Count" msgstr "" -#: part/models.py:3385 +#: part/models.py:3436 msgid "Number of parts covered by stocktake" msgstr "" -#: part/models.py:3395 +#: part/models.py:3446 msgid "User who requested this stocktake report" msgstr "" -#: part/models.py:3405 +#: part/models.py:3456 msgid "Part Sale Price Break" msgstr "" -#: part/models.py:3517 +#: part/models.py:3568 msgid "Part Test Template" msgstr "" -#: part/models.py:3543 +#: part/models.py:3594 msgid "Invalid template name - must include at least one alphanumeric character" msgstr "" -#: part/models.py:3564 part/models.py:3733 +#: part/models.py:3615 part/models.py:3784 msgid "Choices must be unique" msgstr "" -#: part/models.py:3575 -msgid "Test templates can only be created for trackable parts" +#: part/models.py:3626 +msgid "Test templates can only be created for testable parts" msgstr "" -#: part/models.py:3586 +#: part/models.py:3637 msgid "Test template with the same key already exists for part" msgstr "" -#: part/models.py:3603 templates/js/translated/part.js:2898 +#: part/models.py:3654 templates/js/translated/part.js:2898 msgid "Test Name" msgstr "" -#: part/models.py:3604 +#: part/models.py:3655 msgid "Enter a name for the test" msgstr "" -#: part/models.py:3610 +#: part/models.py:3661 msgid "Test Key" msgstr "" -#: part/models.py:3611 +#: part/models.py:3662 msgid "Simplified key for the test" msgstr "" -#: part/models.py:3618 +#: part/models.py:3669 msgid "Test Description" msgstr "" -#: part/models.py:3619 +#: part/models.py:3670 msgid "Enter description for this test" msgstr "" -#: part/models.py:3623 report/models.py:208 +#: part/models.py:3674 report/models.py:216 #: templates/js/translated/part.js:2919 #: templates/js/translated/table_filters.js:502 msgid "Enabled" msgstr "" -#: part/models.py:3623 +#: part/models.py:3674 msgid "Is this test enabled?" msgstr "" -#: part/models.py:3628 templates/js/translated/part.js:2927 +#: part/models.py:3679 templates/js/translated/part.js:2927 #: templates/js/translated/table_filters.js:498 msgid "Required" msgstr "" -#: part/models.py:3629 +#: part/models.py:3680 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:3634 templates/js/translated/part.js:2935 +#: part/models.py:3685 templates/js/translated/part.js:2935 msgid "Requires Value" msgstr "" -#: part/models.py:3635 +#: part/models.py:3686 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:3640 templates/js/translated/part.js:2942 +#: part/models.py:3691 templates/js/translated/part.js:2942 msgid "Requires Attachment" msgstr "" -#: part/models.py:3642 +#: part/models.py:3693 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:3648 part/models.py:3792 templates/js/translated/part.js:1643 +#: part/models.py:3699 part/models.py:3843 templates/js/translated/part.js:1643 msgid "Choices" msgstr "" -#: part/models.py:3649 +#: part/models.py:3700 msgid "Valid choices for this test (comma-separated)" msgstr "" -#: part/models.py:3681 +#: part/models.py:3732 msgid "Part Parameter Template" msgstr "" -#: part/models.py:3708 +#: part/models.py:3759 msgid "Checkbox parameters cannot have units" msgstr "" -#: part/models.py:3713 +#: part/models.py:3764 msgid "Checkbox parameters cannot have choices" msgstr "" -#: part/models.py:3750 +#: part/models.py:3801 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:3765 +#: part/models.py:3816 msgid "Parameter Name" msgstr "" -#: part/models.py:3772 +#: part/models.py:3823 msgid "Physical units for this parameter" msgstr "" -#: part/models.py:3780 +#: part/models.py:3831 msgid "Parameter description" msgstr "" -#: part/models.py:3786 templates/js/translated/part.js:1634 +#: part/models.py:3837 templates/js/translated/part.js:1634 #: templates/js/translated/table_filters.js:837 msgid "Checkbox" msgstr "" -#: part/models.py:3787 +#: part/models.py:3838 msgid "Is this parameter a checkbox?" msgstr "" -#: part/models.py:3793 +#: part/models.py:3844 msgid "Valid choices for this parameter (comma-separated)" msgstr "" -#: part/models.py:3827 +#: part/models.py:3881 msgid "Part Parameter" msgstr "" -#: part/models.py:3853 +#: part/models.py:3907 msgid "Parameter cannot be modified - part is locked" msgstr "" -#: part/models.py:3889 +#: part/models.py:3945 msgid "Invalid choice for parameter value" msgstr "" -#: part/models.py:3938 +#: part/models.py:3996 msgid "Parent Part" msgstr "" -#: part/models.py:3946 part/models.py:4054 part/models.py:4055 +#: part/models.py:4004 part/models.py:4112 part/models.py:4113 #: templates/InvenTree/settings/settings_staff_js.html:295 msgid "Parameter Template" msgstr "" -#: part/models.py:3952 +#: part/models.py:4010 msgid "Parameter Value" msgstr "" -#: part/models.py:4002 +#: part/models.py:4060 msgid "Part Category Parameter Template" msgstr "" -#: part/models.py:4061 templates/InvenTree/settings/settings_staff_js.html:304 +#: part/models.py:4119 templates/InvenTree/settings/settings_staff_js.html:304 msgid "Default Value" msgstr "" -#: part/models.py:4062 +#: part/models.py:4120 msgid "Default Parameter Value" msgstr "" -#: part/models.py:4100 +#: part/models.py:4158 msgid "Part ID or part name" msgstr "" -#: part/models.py:4101 +#: part/models.py:4159 msgid "Unique part ID value" msgstr "" -#: part/models.py:4103 +#: part/models.py:4161 msgid "Part IPN value" msgstr "" -#: part/models.py:4104 +#: part/models.py:4162 msgid "Level" msgstr "" -#: part/models.py:4104 +#: part/models.py:4162 msgid "BOM level" msgstr "" -#: part/models.py:4215 +#: part/models.py:4272 msgid "BOM item cannot be modified - assembly is locked" msgstr "" -#: part/models.py:4222 +#: part/models.py:4279 msgid "BOM item cannot be modified - variant assembly is locked" msgstr "" -#: part/models.py:4232 +#: part/models.py:4289 msgid "Select parent part" msgstr "" -#: part/models.py:4242 +#: part/models.py:4299 msgid "Sub part" msgstr "" -#: part/models.py:4243 +#: part/models.py:4300 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:4254 +#: part/models.py:4311 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:4260 +#: part/models.py:4317 msgid "This BOM item is optional" msgstr "" -#: part/models.py:4266 +#: part/models.py:4323 msgid "This BOM item is consumable (it is not tracked in build orders)" msgstr "" -#: part/models.py:4273 part/templates/part/upload_bom.html:55 +#: part/models.py:4330 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "" -#: part/models.py:4274 +#: part/models.py:4331 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:4281 +#: part/models.py:4338 msgid "BOM item reference" msgstr "" -#: part/models.py:4289 +#: part/models.py:4346 msgid "BOM item notes" msgstr "" -#: part/models.py:4295 +#: part/models.py:4352 msgid "Checksum" msgstr "" -#: part/models.py:4296 +#: part/models.py:4353 msgid "BOM line checksum" msgstr "" -#: part/models.py:4301 templates/js/translated/table_filters.js:181 +#: part/models.py:4358 templates/js/translated/table_filters.js:181 msgid "Validated" msgstr "" -#: part/models.py:4302 +#: part/models.py:4359 msgid "This BOM item has been validated" msgstr "" -#: part/models.py:4307 part/templates/part/upload_bom.html:57 +#: part/models.py:4364 part/templates/part/upload_bom.html:57 #: templates/js/translated/bom.js:1054 #: templates/js/translated/table_filters.js:185 #: templates/js/translated/table_filters.js:218 msgid "Gets inherited" msgstr "" -#: part/models.py:4308 +#: part/models.py:4365 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:4314 +#: part/models.py:4371 msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:4399 stock/models.py:685 +#: part/models.py:4456 stock/models.py:762 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:4409 part/models.py:4411 +#: part/models.py:4466 part/models.py:4468 msgid "Sub part must be specified" msgstr "" -#: part/models.py:4551 +#: part/models.py:4613 msgid "BOM Item Substitute" msgstr "" -#: part/models.py:4572 +#: part/models.py:4634 msgid "Substitute part cannot be the same as the master part" msgstr "" -#: part/models.py:4585 +#: part/models.py:4647 msgid "Parent BOM item" msgstr "" -#: part/models.py:4593 +#: part/models.py:4655 msgid "Substitute part" msgstr "" -#: part/models.py:4609 +#: part/models.py:4671 msgid "Part 1" msgstr "" -#: part/models.py:4617 +#: part/models.py:4679 msgid "Part 2" msgstr "" -#: part/models.py:4618 +#: part/models.py:4680 msgid "Select Related Part" msgstr "" -#: part/models.py:4637 +#: part/models.py:4699 msgid "Part relationship cannot be created between a part and itself" msgstr "" -#: part/models.py:4642 +#: part/models.py:4704 msgid "Duplicate relationship already exists" msgstr "" @@ -7449,340 +7662,352 @@ msgstr "" msgid "Number of results recorded against this template" msgstr "" -#: part/serializers.py:225 part/serializers.py:243 stock/serializers.py:616 +#: part/serializers.py:225 part/serializers.py:243 stock/serializers.py:643 msgid "Purchase currency of this stock item" msgstr "" -#: part/serializers.py:291 +#: part/serializers.py:268 +msgid "Speculative Quantity" +msgstr "" + +#: part/serializers.py:277 +msgid "Model ID" +msgstr "" + +#: part/serializers.py:324 msgid "Number of parts using this template" msgstr "" -#: part/serializers.py:421 +#: part/serializers.py:465 msgid "No parts selected" msgstr "" -#: part/serializers.py:431 +#: part/serializers.py:475 msgid "Select category" msgstr "" -#: part/serializers.py:466 +#: part/serializers.py:510 msgid "Original Part" msgstr "" -#: part/serializers.py:467 +#: part/serializers.py:511 msgid "Select original part to duplicate" msgstr "" -#: part/serializers.py:472 +#: part/serializers.py:516 msgid "Copy Image" msgstr "" -#: part/serializers.py:473 +#: part/serializers.py:517 msgid "Copy image from original part" msgstr "" -#: part/serializers.py:479 part/templates/part/detail.html:293 +#: part/serializers.py:523 part/templates/part/detail.html:293 msgid "Copy BOM" msgstr "" -#: part/serializers.py:480 +#: part/serializers.py:524 msgid "Copy bill of materials from original part" msgstr "" -#: part/serializers.py:486 +#: part/serializers.py:530 msgid "Copy Parameters" msgstr "" -#: part/serializers.py:487 +#: part/serializers.py:531 msgid "Copy parameter data from original part" msgstr "" -#: part/serializers.py:493 +#: part/serializers.py:537 msgid "Copy Notes" msgstr "" -#: part/serializers.py:494 +#: part/serializers.py:538 msgid "Copy notes from original part" msgstr "" -#: part/serializers.py:512 +#: part/serializers.py:556 msgid "Initial Stock Quantity" msgstr "" -#: part/serializers.py:514 +#: part/serializers.py:558 msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added." msgstr "" -#: part/serializers.py:521 +#: part/serializers.py:565 msgid "Initial Stock Location" msgstr "" -#: part/serializers.py:522 +#: part/serializers.py:566 msgid "Specify initial stock location for this Part" msgstr "" -#: part/serializers.py:539 +#: part/serializers.py:583 msgid "Select supplier (or leave blank to skip)" msgstr "" -#: part/serializers.py:555 +#: part/serializers.py:599 msgid "Select manufacturer (or leave blank to skip)" msgstr "" -#: part/serializers.py:565 +#: part/serializers.py:609 msgid "Manufacturer part number" msgstr "" -#: part/serializers.py:572 +#: part/serializers.py:616 msgid "Selected company is not a valid supplier" msgstr "" -#: part/serializers.py:581 +#: part/serializers.py:625 msgid "Selected company is not a valid manufacturer" msgstr "" -#: part/serializers.py:592 +#: part/serializers.py:636 msgid "Manufacturer part matching this MPN already exists" msgstr "" -#: part/serializers.py:599 +#: part/serializers.py:643 msgid "Supplier part matching this SKU already exists" msgstr "" -#: part/serializers.py:903 +#: part/serializers.py:955 msgid "Revisions" msgstr "" -#: part/serializers.py:908 +#: part/serializers.py:960 msgid "Unallocated Stock" msgstr "" -#: part/serializers.py:911 +#: part/serializers.py:963 msgid "Variant Stock" msgstr "" -#: part/serializers.py:941 part/templates/part/copy_part.html:9 +#: part/serializers.py:993 part/templates/part/copy_part.html:9 #: templates/js/translated/part.js:474 msgid "Duplicate Part" msgstr "" -#: part/serializers.py:942 +#: part/serializers.py:994 msgid "Copy initial data from another Part" msgstr "" -#: part/serializers.py:948 templates/js/translated/part.js:103 +#: part/serializers.py:1000 templates/js/translated/part.js:103 msgid "Initial Stock" msgstr "" -#: part/serializers.py:949 +#: part/serializers.py:1001 msgid "Create Part with initial stock quantity" msgstr "" -#: part/serializers.py:955 +#: part/serializers.py:1007 msgid "Supplier Information" msgstr "" -#: part/serializers.py:956 +#: part/serializers.py:1008 msgid "Add initial supplier information for this part" msgstr "" -#: part/serializers.py:964 +#: part/serializers.py:1016 msgid "Copy Category Parameters" msgstr "" -#: part/serializers.py:965 +#: part/serializers.py:1017 msgid "Copy parameter templates from selected part category" msgstr "" -#: part/serializers.py:970 +#: part/serializers.py:1022 msgid "Existing Image" msgstr "" -#: part/serializers.py:971 +#: part/serializers.py:1023 msgid "Filename of an existing part image" msgstr "" -#: part/serializers.py:988 +#: part/serializers.py:1040 msgid "Image file does not exist" msgstr "" -#: part/serializers.py:1194 +#: part/serializers.py:1247 msgid "Limit stocktake report to a particular part, and any variant parts" msgstr "" -#: part/serializers.py:1204 +#: part/serializers.py:1257 msgid "Limit stocktake report to a particular part category, and any child categories" msgstr "" -#: part/serializers.py:1214 +#: part/serializers.py:1267 msgid "Limit stocktake report to a particular stock location, and any child locations" msgstr "" -#: part/serializers.py:1220 +#: part/serializers.py:1273 msgid "Exclude External Stock" msgstr "" -#: part/serializers.py:1221 +#: part/serializers.py:1274 msgid "Exclude stock items in external locations" msgstr "" -#: part/serializers.py:1226 +#: part/serializers.py:1279 msgid "Generate Report" msgstr "" -#: part/serializers.py:1227 +#: part/serializers.py:1280 msgid "Generate report file containing calculated stocktake data" msgstr "" -#: part/serializers.py:1232 +#: part/serializers.py:1285 msgid "Update Parts" msgstr "" -#: part/serializers.py:1233 +#: part/serializers.py:1286 msgid "Update specified parts with calculated stocktake data" msgstr "" -#: part/serializers.py:1241 +#: part/serializers.py:1294 msgid "Stocktake functionality is not enabled" msgstr "" -#: part/serializers.py:1347 +#: part/serializers.py:1299 +msgid "Background worker check failed" +msgstr "Ο έλεγχος εργασίας στο παρασκήνιο απέτυχε" + +#: part/serializers.py:1401 msgid "Override calculated value for minimum price" msgstr "" -#: part/serializers.py:1354 +#: part/serializers.py:1408 msgid "Minimum price currency" msgstr "" -#: part/serializers.py:1362 +#: part/serializers.py:1416 msgid "Override calculated value for maximum price" msgstr "" -#: part/serializers.py:1369 +#: part/serializers.py:1423 msgid "Maximum price currency" msgstr "" -#: part/serializers.py:1398 +#: part/serializers.py:1452 msgid "Update" msgstr "" -#: part/serializers.py:1399 +#: part/serializers.py:1453 msgid "Update pricing for this part" msgstr "" -#: part/serializers.py:1422 +#: part/serializers.py:1476 #, python-brace-format msgid "Could not convert from provided currencies to {default_currency}" msgstr "" -#: part/serializers.py:1429 +#: part/serializers.py:1483 msgid "Minimum price must not be greater than maximum price" msgstr "" -#: part/serializers.py:1432 +#: part/serializers.py:1486 msgid "Maximum price must not be less than minimum price" msgstr "" -#: part/serializers.py:1576 +#: part/serializers.py:1634 msgid "Select the parent assembly" msgstr "" -#: part/serializers.py:1585 +#: part/serializers.py:1643 msgid "Component Name" msgstr "" -#: part/serializers.py:1588 +#: part/serializers.py:1646 msgid "Component IPN" msgstr "" -#: part/serializers.py:1591 +#: part/serializers.py:1649 msgid "Component Description" msgstr "" -#: part/serializers.py:1597 +#: part/serializers.py:1655 msgid "Select the component part" msgstr "" -#: part/serializers.py:1606 part/templates/part/part_base.html:235 +#: part/serializers.py:1664 part/templates/part/part_base.html:243 #: templates/js/translated/bom.js:1219 msgid "Can Build" msgstr "" -#: part/serializers.py:1837 +#: part/serializers.py:1899 msgid "Select part to copy BOM from" msgstr "" -#: part/serializers.py:1845 +#: part/serializers.py:1907 msgid "Remove Existing Data" msgstr "" -#: part/serializers.py:1846 +#: part/serializers.py:1908 msgid "Remove existing BOM items before copying" msgstr "" -#: part/serializers.py:1851 +#: part/serializers.py:1913 msgid "Include Inherited" msgstr "" -#: part/serializers.py:1852 +#: part/serializers.py:1914 msgid "Include BOM items which are inherited from templated parts" msgstr "" -#: part/serializers.py:1857 +#: part/serializers.py:1919 msgid "Skip Invalid Rows" msgstr "" -#: part/serializers.py:1858 +#: part/serializers.py:1920 msgid "Enable this option to skip invalid rows" msgstr "" -#: part/serializers.py:1863 +#: part/serializers.py:1925 msgid "Copy Substitute Parts" msgstr "" -#: part/serializers.py:1864 +#: part/serializers.py:1926 msgid "Copy substitute parts when duplicate BOM items" msgstr "" -#: part/serializers.py:1901 +#: part/serializers.py:1963 msgid "Clear Existing BOM" msgstr "" -#: part/serializers.py:1902 +#: part/serializers.py:1964 msgid "Delete existing BOM items before uploading" msgstr "" -#: part/serializers.py:1934 +#: part/serializers.py:1996 msgid "No part column specified" msgstr "" -#: part/serializers.py:1978 +#: part/serializers.py:2040 msgid "Multiple matching parts found" msgstr "" -#: part/serializers.py:1981 +#: part/serializers.py:2043 msgid "No matching part found" msgstr "" -#: part/serializers.py:1984 +#: part/serializers.py:2045 msgid "Part is not designated as a component" msgstr "" -#: part/serializers.py:1993 +#: part/serializers.py:2054 msgid "Quantity not provided" msgstr "" -#: part/serializers.py:2001 +#: part/serializers.py:2062 msgid "Invalid quantity" msgstr "" -#: part/serializers.py:2024 +#: part/serializers.py:2085 msgid "At least one BOM item is required" msgstr "" #: part/stocktake.py:224 templates/js/translated/part.js:1073 #: templates/js/translated/part.js:1828 templates/js/translated/part.js:1884 -#: templates/js/translated/purchase_order.js:2154 +#: templates/js/translated/purchase_order.js:2138 msgid "Total Quantity" msgstr "" @@ -7932,9 +8157,9 @@ msgid "Add stocktake information" msgstr "" #: part/templates/part/detail.html:67 part/templates/part/part_sidebar.html:50 -#: stock/admin.py:255 templates/InvenTree/settings/part_stocktake.html:30 +#: stock/admin.py:256 templates/InvenTree/settings/part_stocktake.html:30 #: templates/InvenTree/settings/sidebar.html:53 -#: templates/js/translated/stock.js:2301 users/models.py:204 +#: templates/js/translated/stock.js:2302 users/models.py:204 msgid "Stocktake" msgstr "" @@ -8093,142 +8318,146 @@ msgstr "" msgid "Part List" msgstr "" -#: part/templates/part/part_base.html:25 part/templates/part/part_base.html:29 +#: part/templates/part/part_base.html:26 part/templates/part/part_base.html:30 msgid "You are subscribed to notifications for this part" msgstr "" -#: part/templates/part/part_base.html:33 +#: part/templates/part/part_base.html:34 msgid "Subscribe to notifications for this part" msgstr "" -#: part/templates/part/part_base.html:52 +#: part/templates/part/part_base.html:53 #: stock/templates/stock/item_base.html:62 -#: stock/templates/stock/location.html:71 templates/js/translated/label.js:136 +#: stock/templates/stock/location.html:72 templates/js/translated/label.js:136 msgid "Print Label" msgstr "" -#: part/templates/part/part_base.html:58 +#: part/templates/part/part_base.html:59 msgid "Show pricing information" msgstr "" -#: part/templates/part/part_base.html:63 -#: stock/templates/stock/item_base.html:110 -#: stock/templates/stock/location.html:80 +#: part/templates/part/part_base.html:64 +#: stock/templates/stock/item_base.html:107 +#: stock/templates/stock/location.html:81 msgid "Stock actions" msgstr "" -#: part/templates/part/part_base.html:70 +#: part/templates/part/part_base.html:71 msgid "Count part stock" msgstr "" -#: part/templates/part/part_base.html:76 +#: part/templates/part/part_base.html:77 msgid "Transfer part stock" msgstr "" -#: part/templates/part/part_base.html:91 templates/js/translated/part.js:2299 +#: part/templates/part/part_base.html:92 templates/js/translated/part.js:2299 msgid "Part actions" msgstr "" -#: part/templates/part/part_base.html:94 +#: part/templates/part/part_base.html:95 msgid "Duplicate part" msgstr "" -#: part/templates/part/part_base.html:97 +#: part/templates/part/part_base.html:98 msgid "Edit part" msgstr "" -#: part/templates/part/part_base.html:100 +#: part/templates/part/part_base.html:101 msgid "Delete part" msgstr "" -#: part/templates/part/part_base.html:119 +#: part/templates/part/part_base.html:120 msgid "Part is a template part (variants can be made from this part)" msgstr "" -#: part/templates/part/part_base.html:123 +#: part/templates/part/part_base.html:124 msgid "Part can be assembled from other parts" msgstr "" -#: part/templates/part/part_base.html:127 +#: part/templates/part/part_base.html:128 msgid "Part can be used in assemblies" msgstr "" -#: part/templates/part/part_base.html:131 +#: part/templates/part/part_base.html:132 msgid "Part stock is tracked by serial number" msgstr "" -#: part/templates/part/part_base.html:135 +#: part/templates/part/part_base.html:136 msgid "Part can be purchased from external suppliers" msgstr "" -#: part/templates/part/part_base.html:139 +#: part/templates/part/part_base.html:140 msgid "Part can be sold to customers" msgstr "" -#: part/templates/part/part_base.html:145 +#: part/templates/part/part_base.html:146 msgid "Part is not active" msgstr "" -#: part/templates/part/part_base.html:153 +#: part/templates/part/part_base.html:154 msgid "Part is virtual (not a physical part)" msgstr "" -#: part/templates/part/part_base.html:163 -#: part/templates/part/part_base.html:690 +#: part/templates/part/part_base.html:164 +#: part/templates/part/part_base.html:698 msgid "Show Part Details" msgstr "" #: part/templates/part/part_base.html:218 -#: stock/templates/stock/item_base.html:388 +msgid "Required for Orders" +msgstr "" + +#: part/templates/part/part_base.html:226 +#: stock/templates/stock/item_base.html:385 msgid "Allocated to Build Orders" msgstr "" -#: part/templates/part/part_base.html:227 -#: stock/templates/stock/item_base.html:381 +#: part/templates/part/part_base.html:235 +#: stock/templates/stock/item_base.html:378 msgid "Allocated to Sales Orders" msgstr "" -#: part/templates/part/part_base.html:300 +#: part/templates/part/part_base.html:308 msgid "Minimum stock level" msgstr "" -#: part/templates/part/part_base.html:331 templates/js/translated/bom.js:1071 +#: part/templates/part/part_base.html:339 templates/js/translated/bom.js:1071 #: templates/js/translated/part.js:1271 templates/js/translated/part.js:2463 #: templates/js/translated/pricing.js:391 -#: templates/js/translated/pricing.js:1054 +#: templates/js/translated/pricing.js:1052 msgid "Price Range" msgstr "" -#: part/templates/part/part_base.html:361 +#: part/templates/part/part_base.html:369 msgid "Latest Serial Number" msgstr "" -#: part/templates/part/part_base.html:365 -#: stock/templates/stock/item_base.html:322 +#: part/templates/part/part_base.html:373 +#: stock/templates/stock/item_base.html:319 msgid "Search for serial number" msgstr "" -#: part/templates/part/part_base.html:453 +#: part/templates/part/part_base.html:461 msgid "Part QR Code" msgstr "" -#: part/templates/part/part_base.html:470 +#: part/templates/part/part_base.html:478 msgid "Link Barcode to Part" msgstr "" -#: part/templates/part/part_base.html:520 +#: part/templates/part/part_base.html:528 msgid "Calculate" msgstr "" -#: part/templates/part/part_base.html:537 +#: part/templates/part/part_base.html:545 msgid "Remove associated image from this part" msgstr "" -#: part/templates/part/part_base.html:588 +#: part/templates/part/part_base.html:596 msgid "No matching images found" msgstr "" -#: part/templates/part/part_base.html:684 +#: part/templates/part/part_base.html:692 msgid "Hide Part Details" msgstr "" @@ -8282,13 +8511,13 @@ msgid "Variants" msgstr "" #: part/templates/part/part_sidebar.html:14 -#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:21 +#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:22 #: stock/templates/stock/stock_app_base.html:10 #: templates/InvenTree/search.html:153 #: templates/InvenTree/settings/sidebar.html:51 #: templates/js/translated/part.js:1249 templates/js/translated/part.js:2152 #: templates/js/translated/part.js:2411 templates/js/translated/stock.js:1066 -#: templates/js/translated/stock.js:2155 templates/navbar.html:31 +#: templates/js/translated/stock.js:2156 templates/navbar.html:31 msgid "Stock" msgstr "" @@ -8324,17 +8553,17 @@ msgstr "" #: part/templates/part/prices.html:18 #: templates/InvenTree/settings/settings_staff_js.html:80 #: templates/InvenTree/settings/user.html:24 -#: templates/js/translated/helpers.js:103 +#: templates/js/translated/helpers.js:104 #: templates/js/translated/pricing.js:628 templates/notes_buttons.html:3 #: templates/notes_buttons.html:4 msgid "Edit" msgstr "" -#: part/templates/part/prices.html:28 stock/admin.py:251 -#: stock/templates/stock/item_base.html:446 -#: templates/js/translated/company.js:1703 -#: templates/js/translated/company.js:1713 -#: templates/js/translated/stock.js:2331 +#: part/templates/part/prices.html:28 stock/admin.py:252 +#: stock/templates/stock/item_base.html:443 +#: templates/js/translated/company.js:1704 +#: templates/js/translated/company.js:1714 +#: templates/js/translated/stock.js:2332 msgid "Last Updated" msgstr "" @@ -8406,7 +8635,7 @@ msgid "Update Pricing" msgstr "" #: part/templates/part/stock_count.html:7 -#: templates/js/translated/model_renderers.js:228 +#: templates/js/translated/model_renderers.js:231 #: templates/js/translated/part.js:707 templates/js/translated/part.js:2147 #: templates/js/translated/part.js:2149 msgid "No Stock" @@ -8486,7 +8715,7 @@ msgstr "" msgid "Part Pricing" msgstr "" -#: plugin/api.py:172 +#: plugin/api.py:175 msgid "Plugin cannot be deleted as it is currently active" msgstr "" @@ -8498,78 +8727,85 @@ msgstr "" msgid "No matching action found" msgstr "" -#: plugin/base/barcodes/api.py:125 plugin/base/barcodes/api.py:371 -#: plugin/base/barcodes/api.py:546 +#: plugin/base/barcodes/api.py:203 msgid "No match found for barcode data" msgstr "" -#: plugin/base/barcodes/api.py:129 +#: plugin/base/barcodes/api.py:207 msgid "Match found for barcode data" msgstr "" -#: plugin/base/barcodes/api.py:163 plugin/base/barcodes/serializers.py:45 +#: plugin/base/barcodes/api.py:245 plugin/base/barcodes/serializers.py:72 msgid "Model is not supported" msgstr "" -#: plugin/base/barcodes/api.py:168 +#: plugin/base/barcodes/api.py:250 msgid "Model instance not found" msgstr "" -#: plugin/base/barcodes/api.py:197 -#: templates/js/translated/purchase_order.js:1468 +#: plugin/base/barcodes/api.py:279 +#: templates/js/translated/purchase_order.js:1452 msgid "Barcode matches existing item" msgstr "" -#: plugin/base/barcodes/api.py:336 +#: plugin/base/barcodes/api.py:418 msgid "No matching part data found" msgstr "" -#: plugin/base/barcodes/api.py:353 +#: plugin/base/barcodes/api.py:434 msgid "No matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:357 +#: plugin/base/barcodes/api.py:437 msgid "Multiple matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:381 +#: plugin/base/barcodes/api.py:450 plugin/base/barcodes/api.py:664 +msgid "No matching plugin found for barcode data" +msgstr "" + +#: plugin/base/barcodes/api.py:460 msgid "Matched supplier part" msgstr "" -#: plugin/base/barcodes/api.py:430 +#: plugin/base/barcodes/api.py:525 msgid "Item has already been received" msgstr "" -#: plugin/base/barcodes/api.py:467 +#: plugin/base/barcodes/api.py:563 msgid "No match for supplier barcode" msgstr "" -#: plugin/base/barcodes/api.py:510 +#: plugin/base/barcodes/api.py:612 msgid "Multiple matching line items found" msgstr "" -#: plugin/base/barcodes/api.py:513 +#: plugin/base/barcodes/api.py:615 msgid "No matching line item found" msgstr "" -#: plugin/base/barcodes/api.py:551 plugin/base/barcodes/api.py:558 +#: plugin/base/barcodes/api.py:661 +msgid "No sales order provided" +msgstr "" + +#: plugin/base/barcodes/api.py:670 msgid "Barcode does not match an existing stock item" msgstr "" -#: plugin/base/barcodes/api.py:569 +#: plugin/base/barcodes/api.py:686 msgid "Stock item does not match line item" msgstr "" -#: plugin/base/barcodes/api.py:593 templates/js/translated/build.js:2780 -#: templates/js/translated/sales_order.js:1953 +#: plugin/base/barcodes/api.py:716 templates/js/translated/build.js:2798 +#: templates/js/translated/sales_order.js:1934 msgid "Insufficient stock available" msgstr "" -#: plugin/base/barcodes/api.py:602 +#: plugin/base/barcodes/api.py:729 msgid "Stock item allocated to sales order" msgstr "" -#: plugin/base/barcodes/api.py:606 +#: plugin/base/barcodes/api.py:732 msgid "Not enough information" msgstr "" @@ -8591,75 +8827,75 @@ msgstr "" msgid "Purchase order does not match supplier" msgstr "" -#: plugin/base/barcodes/mixins.py:465 +#: plugin/base/barcodes/mixins.py:467 msgid "Failed to find pending line item for supplier part" msgstr "" -#: plugin/base/barcodes/mixins.py:496 +#: plugin/base/barcodes/mixins.py:498 msgid "Further information required to receive line item" msgstr "" -#: plugin/base/barcodes/mixins.py:504 +#: plugin/base/barcodes/mixins.py:506 msgid "Received purchase order line item" msgstr "" -#: plugin/base/barcodes/serializers.py:21 +#: plugin/base/barcodes/serializers.py:48 msgid "Scanned barcode data" msgstr "" -#: plugin/base/barcodes/serializers.py:30 +#: plugin/base/barcodes/serializers.py:57 msgid "Model name to generate barcode for" msgstr "" -#: plugin/base/barcodes/serializers.py:35 +#: plugin/base/barcodes/serializers.py:62 msgid "Primary key of model object to generate barcode for" msgstr "" -#: plugin/base/barcodes/serializers.py:105 +#: plugin/base/barcodes/serializers.py:132 msgid "Purchase Order to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:111 +#: plugin/base/barcodes/serializers.py:138 msgid "Purchase order is not pending" msgstr "" -#: plugin/base/barcodes/serializers.py:129 +#: plugin/base/barcodes/serializers.py:156 msgid "PurchaseOrder to receive items against" msgstr "" -#: plugin/base/barcodes/serializers.py:135 +#: plugin/base/barcodes/serializers.py:162 msgid "Purchase order has not been placed" msgstr "" -#: plugin/base/barcodes/serializers.py:143 +#: plugin/base/barcodes/serializers.py:170 msgid "Location to receive items into" msgstr "" -#: plugin/base/barcodes/serializers.py:149 +#: plugin/base/barcodes/serializers.py:176 msgid "Cannot select a structural location" msgstr "" -#: plugin/base/barcodes/serializers.py:163 +#: plugin/base/barcodes/serializers.py:190 msgid "Sales Order to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:169 +#: plugin/base/barcodes/serializers.py:196 msgid "Sales order is not pending" msgstr "" -#: plugin/base/barcodes/serializers.py:177 +#: plugin/base/barcodes/serializers.py:204 msgid "Sales order line item to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:184 +#: plugin/base/barcodes/serializers.py:211 msgid "Sales order shipment to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:190 +#: plugin/base/barcodes/serializers.py:217 msgid "Shipment has already been delivered" msgstr "" -#: plugin/base/barcodes/serializers.py:195 +#: plugin/base/barcodes/serializers.py:222 msgid "Quantity to allocate" msgstr "" @@ -8679,6 +8915,42 @@ msgstr "" msgid "No items provided to print" msgstr "" +#: plugin/base/ui/serializers.py:30 +msgid "Plugin Name" +msgstr "" + +#: plugin/base/ui/serializers.py:34 +msgid "Feature Type" +msgstr "" + +#: plugin/base/ui/serializers.py:39 +msgid "Feature Label" +msgstr "" + +#: plugin/base/ui/serializers.py:44 +msgid "Feature Title" +msgstr "" + +#: plugin/base/ui/serializers.py:49 +msgid "Feature Description" +msgstr "" + +#: plugin/base/ui/serializers.py:54 +msgid "Feature Icon" +msgstr "" + +#: plugin/base/ui/serializers.py:58 +msgid "Feature Options" +msgstr "" + +#: plugin/base/ui/serializers.py:61 +msgid "Feature Context" +msgstr "" + +#: plugin/base/ui/serializers.py:64 +msgid "Feature Source (javascript)" +msgstr "" + #: plugin/builtin/barcodes/inventree_barcode.py:27 msgid "InvenTree Barcodes" msgstr "" @@ -8756,7 +9028,7 @@ msgstr "" msgid "URL that is used to send messages to a slack channel" msgstr "" -#: plugin/builtin/integration/core_notifications.py:164 +#: plugin/builtin/integration/core_notifications.py:166 msgid "Open link" msgstr "" @@ -8794,11 +9066,11 @@ msgstr "" msgid "Provides support for printing using a machine" msgstr "" -#: plugin/builtin/labels/inventree_machine.py:149 +#: plugin/builtin/labels/inventree_machine.py:151 msgid "last used" msgstr "" -#: plugin/builtin/labels/inventree_machine.py:166 +#: plugin/builtin/labels/inventree_machine.py:168 msgid "Options" msgstr "" @@ -8822,7 +9094,7 @@ msgstr "" msgid "Print a border around each label" msgstr "" -#: plugin/builtin/labels/label_sheet.py:47 report/models.py:307 +#: plugin/builtin/labels/label_sheet.py:47 report/models.py:315 msgid "Landscape" msgstr "" @@ -8894,19 +9166,19 @@ msgstr "" msgid "The Supplier which acts as 'TME'" msgstr "" -#: plugin/installer.py:194 plugin/installer.py:282 +#: plugin/installer.py:199 plugin/installer.py:282 msgid "Only staff users can administer plugins" msgstr "" -#: plugin/installer.py:197 +#: plugin/installer.py:202 msgid "Plugin installation is disabled" msgstr "" -#: plugin/installer.py:248 +#: plugin/installer.py:246 msgid "Installed plugin successfully" msgstr "" -#: plugin/installer.py:254 +#: plugin/installer.py:251 #, python-brace-format msgid "Installed plugin into {path}" msgstr "" @@ -8943,10 +9215,6 @@ msgstr "" msgid "Plugin Configurations" msgstr "" -#: plugin/models.py:43 users/models.py:100 -msgid "Key" -msgstr "" - #: plugin/models.py:44 msgid "Key of plugin" msgstr "" @@ -8955,7 +9223,7 @@ msgstr "" msgid "PluginName of the plugin" msgstr "" -#: plugin/models.py:59 plugin/serializers.py:90 +#: plugin/models.py:59 plugin/serializers.py:115 msgid "Package Name" msgstr "" @@ -8984,17 +9252,17 @@ msgstr "" msgid "Package Plugin" msgstr "" -#: plugin/models.py:220 report/models.py:474 +#: plugin/models.py:259 report/models.py:482 #: templates/InvenTree/settings/plugin_settings.html:9 #: templates/js/translated/plugin.js:51 msgid "Plugin" msgstr "" -#: plugin/models.py:267 +#: plugin/models.py:306 msgid "Method" msgstr "" -#: plugin/plugin.py:270 +#: plugin/plugin.py:275 msgid "No author found" msgstr "" @@ -9053,81 +9321,157 @@ msgstr "" msgid "InvenTree Contributors" msgstr "" -#: plugin/serializers.py:81 -msgid "Source URL" +#: plugin/samples/integration/user_interface_sample.py:27 +msgid "Enable Part Panels" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:28 +msgid "Enable custom panels for Part views" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:33 +msgid "Enable Purchase Order Panels" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:34 +msgid "Enable custom panels for Purchase Order views" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:39 +msgid "Enable Broken Panels" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:40 +msgid "Enable broken panels for testing" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:45 +msgid "Enable Dynamic Panel" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:46 +msgid "Enable dynamic panels for testing" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:98 +msgid "Part Panel" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:131 +msgid "Broken Dashboard Item" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:133 +msgid "This is a broken dashboard item - it will not render!" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:139 +msgid "Sample Dashboard Item" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:141 +msgid "This is a sample dashboard item. It renders a simple string of HTML content." +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:147 +msgid "Context Dashboard Item" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:161 +msgid "Admin Dashboard Item" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:162 +msgid "This is an admin-only dashboard item." +msgstr "" + +#: plugin/serializers.py:82 +msgid "Source File" msgstr "" #: plugin/serializers.py:83 +msgid "Path to the source file for admin integration" +msgstr "" + +#: plugin/serializers.py:90 +msgid "Optional context data for the admin integration" +msgstr "" + +#: plugin/serializers.py:106 +msgid "Source URL" +msgstr "" + +#: plugin/serializers.py:108 msgid "Source for the package - this can be a custom registry or a VCS path" msgstr "" -#: plugin/serializers.py:92 +#: plugin/serializers.py:117 msgid "Name for the Plugin Package - can also contain a version indicator" msgstr "" -#: plugin/serializers.py:99 +#: plugin/serializers.py:124 #: templates/InvenTree/settings/plugin_settings.html:42 #: templates/js/translated/plugin.js:86 msgid "Version" msgstr "" -#: plugin/serializers.py:101 +#: plugin/serializers.py:126 msgid "Version specifier for the plugin. Leave blank for latest version." msgstr "" -#: plugin/serializers.py:106 +#: plugin/serializers.py:131 msgid "Confirm plugin installation" msgstr "" -#: plugin/serializers.py:108 +#: plugin/serializers.py:133 msgid "This will install this plugin now into the current instance. The instance will go into maintenance." msgstr "" -#: plugin/serializers.py:121 +#: plugin/serializers.py:146 msgid "Installation not confirmed" msgstr "" -#: plugin/serializers.py:123 +#: plugin/serializers.py:148 msgid "Either packagename of URL must be provided" msgstr "" -#: plugin/serializers.py:161 +#: plugin/serializers.py:184 msgid "Full reload" msgstr "" -#: plugin/serializers.py:162 +#: plugin/serializers.py:185 msgid "Perform a full reload of the plugin registry" msgstr "" -#: plugin/serializers.py:168 +#: plugin/serializers.py:191 msgid "Force reload" msgstr "" -#: plugin/serializers.py:170 +#: plugin/serializers.py:193 msgid "Force a reload of the plugin registry, even if it is already loaded" msgstr "" -#: plugin/serializers.py:177 +#: plugin/serializers.py:200 msgid "Collect plugins" msgstr "" -#: plugin/serializers.py:178 +#: plugin/serializers.py:201 msgid "Collect plugins and add them to the registry" msgstr "" -#: plugin/serializers.py:205 +#: plugin/serializers.py:228 msgid "Activate Plugin" msgstr "" -#: plugin/serializers.py:206 +#: plugin/serializers.py:229 msgid "Activate this plugin" msgstr "" -#: plugin/serializers.py:226 +#: plugin/serializers.py:249 msgid "Delete configuration" msgstr "" -#: plugin/serializers.py:227 +#: plugin/serializers.py:250 msgid "Delete the plugin configuration from the database" msgstr "" @@ -9135,11 +9479,11 @@ msgstr "" msgid "No valid objects provided to template" msgstr "" -#: report/api.py:103 report/models.py:438 report/serializers.py:98 -#: report/serializers.py:148 templates/js/translated/purchase_order.js:1817 +#: report/api.py:103 report/models.py:446 report/serializers.py:99 +#: report/serializers.py:149 templates/js/translated/purchase_order.js:1801 #: templates/js/translated/return_order.js:353 -#: templates/js/translated/sales_order.js:887 -#: templates/js/translated/sales_order.js:1047 +#: templates/js/translated/sales_order.js:846 +#: templates/js/translated/sales_order.js:1020 msgid "Items" msgstr "" @@ -9167,7 +9511,11 @@ msgstr "" msgid "Error printing label" msgstr "" -#: report/api.py:375 report/api.py:411 +#: report/api.py:358 +msgid "Report saved at time of printing" +msgstr "" + +#: report/api.py:384 report/api.py:420 #, python-brace-format msgid "Template file '{template}' is missing or does not exist" msgstr "" @@ -9204,135 +9552,143 @@ msgstr "" msgid "Revision number (auto-increments)" msgstr "" -#: report/models.py:202 +#: report/models.py:168 +msgid "Attach to Model on Print" +msgstr "" + +#: report/models.py:170 +msgid "Save report output as an attachment against linked model instance when printing" +msgstr "" + +#: report/models.py:210 msgid "Filename Pattern" msgstr "" -#: report/models.py:203 +#: report/models.py:211 msgid "Pattern for generating filenames" msgstr "" -#: report/models.py:208 +#: report/models.py:216 msgid "Template is enabled" msgstr "" -#: report/models.py:214 +#: report/models.py:222 msgid "Target model type for template" msgstr "" -#: report/models.py:234 +#: report/models.py:242 msgid "Filters" msgstr "" -#: report/models.py:235 +#: report/models.py:243 msgid "Template query filters (comma-separated list of key=value pairs)" msgstr "" -#: report/models.py:294 report/models.py:361 +#: report/models.py:302 report/models.py:369 msgid "Template file" msgstr "" -#: report/models.py:302 +#: report/models.py:310 msgid "Page size for PDF reports" msgstr "" -#: report/models.py:308 +#: report/models.py:316 msgid "Render report in landscape orientation" msgstr "" -#: report/models.py:367 +#: report/models.py:375 msgid "Width [mm]" msgstr "" -#: report/models.py:368 +#: report/models.py:376 msgid "Label width, specified in mm" msgstr "" -#: report/models.py:374 +#: report/models.py:382 msgid "Height [mm]" msgstr "" -#: report/models.py:375 +#: report/models.py:383 msgid "Label height, specified in mm" msgstr "" -#: report/models.py:438 +#: report/models.py:446 msgid "Number of items to process" msgstr "" -#: report/models.py:444 +#: report/models.py:452 msgid "Report generation is complete" msgstr "" -#: report/models.py:448 templates/js/translated/build.js:2349 +#: report/models.py:456 templates/js/translated/build.js:2352 msgid "Progress" msgstr "" -#: report/models.py:448 +#: report/models.py:456 msgid "Report generation progress" msgstr "" -#: report/models.py:456 +#: report/models.py:464 msgid "Report Template" msgstr "" -#: report/models.py:463 report/models.py:486 +#: report/models.py:471 report/models.py:494 msgid "Output File" msgstr "" -#: report/models.py:464 report/models.py:487 +#: report/models.py:472 report/models.py:495 msgid "Generated output file" msgstr "" -#: report/models.py:475 +#: report/models.py:483 msgid "Label output plugin" msgstr "" -#: report/models.py:479 +#: report/models.py:487 msgid "Label Template" msgstr "" -#: report/models.py:502 +#: report/models.py:510 msgid "Snippet" msgstr "" -#: report/models.py:503 +#: report/models.py:511 msgid "Report snippet file" msgstr "" -#: report/models.py:510 +#: report/models.py:518 msgid "Snippet file description" msgstr "" -#: report/models.py:528 +#: report/models.py:536 msgid "Asset" msgstr "" -#: report/models.py:529 +#: report/models.py:537 msgid "Report asset file" msgstr "" -#: report/models.py:536 +#: report/models.py:544 msgid "Asset file description" msgstr "" -#: report/serializers.py:91 +#: report/serializers.py:92 msgid "Select report template" msgstr "" -#: report/serializers.py:99 report/serializers.py:149 +#: report/serializers.py:100 report/serializers.py:150 msgid "List of item primary keys to include in the report" msgstr "" -#: report/serializers.py:132 +#: report/serializers.py:133 msgid "Select label template" msgstr "" -#: report/serializers.py:140 +#: report/serializers.py:141 msgid "Printing Plugin" msgstr "" -#: report/serializers.py:141 +#: report/serializers.py:142 msgid "Select plugin to use for label printing" msgstr "" @@ -9365,9 +9721,9 @@ msgstr "" #: report/templates/report/inventree_sales_order_report.html:30 #: templates/js/translated/order.js:341 templates/js/translated/pricing.js:527 #: templates/js/translated/pricing.js:596 -#: templates/js/translated/pricing.js:834 -#: templates/js/translated/purchase_order.js:2185 -#: templates/js/translated/sales_order.js:1873 +#: templates/js/translated/pricing.js:832 +#: templates/js/translated/purchase_order.js:2169 +#: templates/js/translated/sales_order.js:1854 msgid "Unit Price" msgstr "" @@ -9379,13 +9735,18 @@ msgstr "" #: report/templates/report/inventree_purchase_order_report.html:72 #: report/templates/report/inventree_sales_order_report.html:72 -#: templates/js/translated/purchase_order.js:2087 -#: templates/js/translated/sales_order.js:1842 +#: templates/js/translated/purchase_order.js:2071 +#: templates/js/translated/sales_order.js:1823 #: templates/test_statistics_table.html:8 #: templates/test_statistics_table.html:19 msgid "Total" msgstr "" +#: report/templates/report/inventree_sales_order_shipment_report.html:23 +#: stock/templates/stock/stock_sidebar.html:8 +msgid "Allocations" +msgstr "" + #: report/templates/report/inventree_stock_location_report.html:97 msgid "Stock location items" msgstr "" @@ -9403,15 +9764,13 @@ msgstr "" msgid "Test" msgstr "" -#: report/templates/report/inventree_test_report.html:103 stock/models.py:2544 -msgid "Result" -msgstr "" - #: report/templates/report/inventree_test_report.html:129 +#: templates/js/translated/stock.js:1448 msgid "Pass" msgstr "" #: report/templates/report/inventree_test_report.html:131 +#: templates/js/translated/stock.js:1450 msgid "Fail" msgstr "" @@ -9420,17 +9779,18 @@ msgid "No result (required)" msgstr "" #: report/templates/report/inventree_test_report.html:140 +#: templates/js/translated/stock.js:1455 msgid "No result" msgstr "" #: report/templates/report/inventree_test_report.html:153 -#: stock/serializers.py:599 stock/templates/stock/stock_sidebar.html:16 +#: stock/serializers.py:626 stock/templates/stock/stock_sidebar.html:16 msgid "Installed Items" msgstr "" -#: report/templates/report/inventree_test_report.html:167 stock/admin.py:161 +#: report/templates/report/inventree_test_report.html:167 stock/admin.py:162 #: templates/js/translated/stock.js:706 templates/js/translated/stock.js:877 -#: templates/js/translated/stock.js:3194 +#: templates/js/translated/stock.js:3195 msgid "Serial" msgstr "" @@ -9450,67 +9810,67 @@ msgstr "" msgid "company_image tag requires a Company instance" msgstr "" -#: stock/admin.py:51 stock/admin.py:171 +#: stock/admin.py:51 stock/admin.py:172 msgid "Location ID" msgstr "" -#: stock/admin.py:63 stock/templates/stock/location.html:128 -#: stock/templates/stock/location.html:134 +#: stock/admin.py:63 stock/templates/stock/location.html:129 +#: stock/templates/stock/location.html:135 msgid "Location Path" msgstr "" -#: stock/admin.py:148 +#: stock/admin.py:149 msgid "Stock Item ID" msgstr "" -#: stock/admin.py:167 +#: stock/admin.py:168 msgid "Status Code" msgstr "" -#: stock/admin.py:179 +#: stock/admin.py:180 msgid "Supplier Part ID" msgstr "" -#: stock/admin.py:184 +#: stock/admin.py:185 msgid "Supplier Part SKU" msgstr "" -#: stock/admin.py:189 +#: stock/admin.py:190 msgid "Supplier ID" msgstr "" -#: stock/admin.py:200 +#: stock/admin.py:201 msgid "Customer ID" msgstr "" -#: stock/admin.py:205 stock/models.py:825 -#: stock/templates/stock/item_base.html:354 +#: stock/admin.py:206 stock/models.py:902 +#: stock/templates/stock/item_base.html:351 msgid "Installed In" msgstr "" -#: stock/admin.py:210 +#: stock/admin.py:211 msgid "Build ID" msgstr "" -#: stock/admin.py:220 +#: stock/admin.py:221 msgid "Sales Order ID" msgstr "" -#: stock/admin.py:225 +#: stock/admin.py:226 msgid "Purchase Order ID" msgstr "" -#: stock/admin.py:240 +#: stock/admin.py:241 msgid "Review Needed" msgstr "" -#: stock/admin.py:245 +#: stock/admin.py:246 msgid "Delete on Deplete" msgstr "" -#: stock/admin.py:260 stock/models.py:919 -#: stock/templates/stock/item_base.html:433 -#: templates/js/translated/stock.js:2315 users/models.py:124 +#: stock/admin.py:261 stock/models.py:996 +#: stock/templates/stock/item_base.html:430 +#: templates/js/translated/stock.js:2316 users/models.py:124 msgid "Expiry Date" msgstr "" @@ -9526,11 +9886,11 @@ msgstr "" msgid "Include sub-locations in filtered results" msgstr "" -#: stock/api.py:367 stock/serializers.py:1186 +#: stock/api.py:366 stock/serializers.py:1217 msgid "Parent Location" msgstr "" -#: stock/api.py:368 +#: stock/api.py:367 msgid "Filter by parent location" msgstr "" @@ -9550,8 +9910,8 @@ msgstr "" msgid "Expiry date after" msgstr "" -#: stock/api.py:840 stock/serializers.py:604 -#: stock/templates/stock/item_base.html:439 +#: stock/api.py:840 stock/serializers.py:631 +#: stock/templates/stock/item_base.html:436 #: templates/js/translated/table_filters.js:448 msgid "Stale" msgstr "" @@ -9560,594 +9920,598 @@ msgstr "" msgid "Quantity is required" msgstr "" -#: stock/api.py:933 +#: stock/api.py:932 msgid "Valid part must be supplied" msgstr "" -#: stock/api.py:964 +#: stock/api.py:959 msgid "The given supplier part does not exist" msgstr "" -#: stock/api.py:974 +#: stock/api.py:969 msgid "The supplier part has a pack size defined, but flag use_pack_size not set" msgstr "" -#: stock/api.py:1005 +#: stock/api.py:996 msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "" -#: stock/models.py:64 +#: stock/models.py:70 msgid "Stock Location type" msgstr "" -#: stock/models.py:65 +#: stock/models.py:71 msgid "Stock Location types" msgstr "" -#: stock/models.py:91 +#: stock/models.py:97 msgid "Default icon for all locations that have no icon set (optional)" msgstr "" -#: stock/models.py:131 stock/models.py:807 -#: stock/templates/stock/location.html:17 +#: stock/models.py:137 stock/models.py:884 +#: stock/templates/stock/location.html:18 #: stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "" -#: stock/models.py:132 stock/templates/stock/location.html:183 +#: stock/models.py:138 stock/templates/stock/location.html:184 #: templates/InvenTree/search.html:166 templates/js/translated/search.js:178 #: users/models.py:205 msgid "Stock Locations" msgstr "" -#: stock/models.py:180 stock/models.py:968 -#: stock/templates/stock/item_base.html:247 +#: stock/models.py:186 stock/models.py:1045 +#: stock/templates/stock/item_base.html:244 msgid "Owner" msgstr "" -#: stock/models.py:181 stock/models.py:969 +#: stock/models.py:187 stock/models.py:1046 msgid "Select Owner" msgstr "" -#: stock/models.py:189 +#: stock/models.py:195 msgid "Stock items may not be directly located into a structural stock locations, but may be located to child locations." msgstr "" -#: stock/models.py:196 templates/js/translated/stock.js:2865 +#: stock/models.py:202 templates/js/translated/stock.js:2866 #: templates/js/translated/table_filters.js:250 msgid "External" msgstr "" -#: stock/models.py:197 +#: stock/models.py:203 msgid "This is an external stock location" msgstr "" -#: stock/models.py:203 templates/js/translated/stock.js:2874 +#: stock/models.py:209 templates/js/translated/stock.js:2875 #: templates/js/translated/table_filters.js:253 msgid "Location type" msgstr "" -#: stock/models.py:207 +#: stock/models.py:213 msgid "Stock location type of this location" msgstr "" -#: stock/models.py:279 +#: stock/models.py:285 msgid "You cannot make this stock location structural because some stock items are already located into it!" msgstr "" -#: stock/models.py:664 +#: stock/models.py:492 +msgid "Part must be specified" +msgstr "" + +#: stock/models.py:741 msgid "Stock items cannot be located into structural stock locations!" msgstr "" -#: stock/models.py:691 stock/serializers.py:480 +#: stock/models.py:768 stock/serializers.py:492 msgid "Stock item cannot be created for virtual parts" msgstr "" -#: stock/models.py:708 +#: stock/models.py:785 #, python-brace-format msgid "Part type ('{self.supplier_part.part}') must be {self.part}" msgstr "" -#: stock/models.py:718 stock/models.py:731 +#: stock/models.py:795 stock/models.py:808 msgid "Quantity must be 1 for item with a serial number" msgstr "" -#: stock/models.py:721 +#: stock/models.py:798 msgid "Serial number cannot be set if quantity greater than 1" msgstr "" -#: stock/models.py:743 +#: stock/models.py:820 msgid "Item cannot belong to itself" msgstr "" -#: stock/models.py:748 +#: stock/models.py:825 msgid "Item must have a build reference if is_building=True" msgstr "" -#: stock/models.py:761 +#: stock/models.py:838 msgid "Build reference does not point to the same part object" msgstr "" -#: stock/models.py:777 +#: stock/models.py:854 msgid "Parent Stock Item" msgstr "" -#: stock/models.py:789 +#: stock/models.py:866 msgid "Base part" msgstr "" -#: stock/models.py:799 +#: stock/models.py:876 msgid "Select a matching supplier part for this stock item" msgstr "" -#: stock/models.py:811 +#: stock/models.py:888 msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:819 stock/serializers.py:1580 +#: stock/models.py:896 stock/serializers.py:1611 msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:830 +#: stock/models.py:907 msgid "Is this item installed in another item?" msgstr "" -#: stock/models.py:849 +#: stock/models.py:926 msgid "Serial number for this item" msgstr "" -#: stock/models.py:863 stock/serializers.py:1563 +#: stock/models.py:940 stock/serializers.py:1594 msgid "Batch code for this stock item" msgstr "" -#: stock/models.py:868 +#: stock/models.py:945 msgid "Stock Quantity" msgstr "" -#: stock/models.py:878 +#: stock/models.py:955 msgid "Source Build" msgstr "" -#: stock/models.py:881 +#: stock/models.py:958 msgid "Build for this stock item" msgstr "" -#: stock/models.py:888 stock/templates/stock/item_base.html:363 +#: stock/models.py:965 stock/templates/stock/item_base.html:360 msgid "Consumed By" msgstr "" -#: stock/models.py:891 +#: stock/models.py:968 msgid "Build order which consumed this stock item" msgstr "" -#: stock/models.py:900 +#: stock/models.py:977 msgid "Source Purchase Order" msgstr "" -#: stock/models.py:904 +#: stock/models.py:981 msgid "Purchase order for this stock item" msgstr "" -#: stock/models.py:910 +#: stock/models.py:987 msgid "Destination Sales Order" msgstr "" -#: stock/models.py:921 +#: stock/models.py:998 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "" -#: stock/models.py:939 +#: stock/models.py:1016 msgid "Delete on deplete" msgstr "" -#: stock/models.py:940 +#: stock/models.py:1017 msgid "Delete this Stock Item when stock is depleted" msgstr "" -#: stock/models.py:960 +#: stock/models.py:1037 msgid "Single unit purchase price at time of purchase" msgstr "" -#: stock/models.py:991 +#: stock/models.py:1068 msgid "Converted to part" msgstr "" -#: stock/models.py:1511 +#: stock/models.py:1600 msgid "Part is not set as trackable" msgstr "" -#: stock/models.py:1517 +#: stock/models.py:1606 msgid "Quantity must be integer" msgstr "" -#: stock/models.py:1525 +#: stock/models.py:1614 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({self.quantity})" msgstr "" -#: stock/models.py:1531 -msgid "Serial numbers must be a list of integers" +#: stock/models.py:1620 +msgid "Serial numbers must be provided as a list" msgstr "" -#: stock/models.py:1536 +#: stock/models.py:1625 msgid "Quantity does not match serial numbers" msgstr "" -#: stock/models.py:1544 stock/serializers.py:726 -msgid "Serial numbers already exist" -msgstr "" - -#: stock/models.py:1641 +#: stock/models.py:1747 stock/models.py:2563 msgid "Test template does not exist" msgstr "" -#: stock/models.py:1659 +#: stock/models.py:1765 msgid "Stock item has been assigned to a sales order" msgstr "" -#: stock/models.py:1663 +#: stock/models.py:1769 msgid "Stock item is installed in another item" msgstr "" -#: stock/models.py:1666 +#: stock/models.py:1772 msgid "Stock item contains other items" msgstr "" -#: stock/models.py:1669 +#: stock/models.py:1775 msgid "Stock item has been assigned to a customer" msgstr "" -#: stock/models.py:1672 +#: stock/models.py:1778 msgid "Stock item is currently in production" msgstr "" -#: stock/models.py:1675 +#: stock/models.py:1781 msgid "Serialized stock cannot be merged" msgstr "" -#: stock/models.py:1682 stock/serializers.py:1469 +#: stock/models.py:1788 stock/serializers.py:1500 msgid "Duplicate stock items" msgstr "" -#: stock/models.py:1686 +#: stock/models.py:1792 msgid "Stock items must refer to the same part" msgstr "" -#: stock/models.py:1694 +#: stock/models.py:1800 msgid "Stock items must refer to the same supplier part" msgstr "" -#: stock/models.py:1699 +#: stock/models.py:1805 msgid "Stock status codes must match" msgstr "" -#: stock/models.py:1960 +#: stock/models.py:2066 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:2343 +#: stock/models.py:2462 msgid "Stock Item Tracking" msgstr "" -#: stock/models.py:2376 +#: stock/models.py:2495 msgid "Entry notes" msgstr "" -#: stock/models.py:2416 +#: stock/models.py:2535 msgid "Stock Item Test Result" msgstr "" -#: stock/models.py:2449 +#: stock/models.py:2566 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:2454 +#: stock/models.py:2570 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:2459 +#: stock/models.py:2575 msgid "Invalid value for this test" msgstr "" -#: stock/models.py:2544 +#: stock/models.py:2660 msgid "Test result" msgstr "" -#: stock/models.py:2551 +#: stock/models.py:2667 msgid "Test output value" msgstr "" -#: stock/models.py:2559 +#: stock/models.py:2675 stock/serializers.py:245 msgid "Test result attachment" msgstr "" -#: stock/models.py:2563 +#: stock/models.py:2679 msgid "Test notes" msgstr "" -#: stock/models.py:2571 templates/js/translated/stock.js:1633 +#: stock/models.py:2687 templates/js/translated/stock.js:1633 msgid "Test station" msgstr "" -#: stock/models.py:2572 +#: stock/models.py:2688 msgid "The identifier of the test station where the test was performed" msgstr "" -#: stock/models.py:2578 +#: stock/models.py:2694 msgid "Started" msgstr "" -#: stock/models.py:2579 +#: stock/models.py:2695 msgid "The timestamp of the test start" msgstr "" -#: stock/models.py:2585 +#: stock/models.py:2701 msgid "Finished" msgstr "" -#: stock/models.py:2586 +#: stock/models.py:2702 msgid "The timestamp of the test finish" msgstr "" -#: stock/serializers.py:76 +#: stock/serializers.py:77 msgid "Generated batch code" msgstr "" -#: stock/serializers.py:85 +#: stock/serializers.py:86 msgid "Select build order" msgstr "" -#: stock/serializers.py:94 +#: stock/serializers.py:95 msgid "Select stock item to generate batch code for" msgstr "" -#: stock/serializers.py:103 +#: stock/serializers.py:104 msgid "Select location to generate batch code for" msgstr "" -#: stock/serializers.py:112 +#: stock/serializers.py:113 msgid "Select part to generate batch code for" msgstr "" -#: stock/serializers.py:121 +#: stock/serializers.py:122 msgid "Select purchase order" msgstr "" -#: stock/serializers.py:128 +#: stock/serializers.py:129 msgid "Enter quantity for batch code" msgstr "" -#: stock/serializers.py:151 +#: stock/serializers.py:152 msgid "Generated serial number" msgstr "" -#: stock/serializers.py:160 +#: stock/serializers.py:161 msgid "Select part to generate serial number for" msgstr "" -#: stock/serializers.py:168 +#: stock/serializers.py:169 msgid "Quantity of serial numbers to generate" msgstr "" -#: stock/serializers.py:233 +#: stock/serializers.py:234 msgid "Test template for this result" msgstr "" -#: stock/serializers.py:254 +#: stock/serializers.py:258 msgid "Template ID or test name must be provided" msgstr "" -#: stock/serializers.py:286 +#: stock/serializers.py:290 msgid "The test finished time cannot be earlier than the test started time" msgstr "" -#: stock/serializers.py:323 +#: stock/serializers.py:327 msgid "Serial number is too large" msgstr "" -#: stock/serializers.py:452 stock/templates/stock/item_base.html:193 +#: stock/serializers.py:462 stock/templates/stock/item_base.html:190 msgid "Parent Item" msgstr "" -#: stock/serializers.py:453 +#: stock/serializers.py:463 msgid "Parent stock item" msgstr "" -#: stock/serializers.py:472 +#: stock/serializers.py:484 msgid "Use pack size when adding: the quantity defined is the number of packs" msgstr "" -#: stock/serializers.py:596 stock/templates/stock/item_base.html:437 +#: stock/serializers.py:623 stock/templates/stock/item_base.html:434 #: templates/js/translated/table_filters.js:442 users/models.py:174 msgid "Expired" msgstr "" -#: stock/serializers.py:602 stock/templates/stock/stock_sidebar.html:20 +#: stock/serializers.py:629 stock/templates/stock/stock_sidebar.html:20 msgid "Child Items" msgstr "" -#: stock/serializers.py:606 +#: stock/serializers.py:633 msgid "Tracking Items" msgstr "" -#: stock/serializers.py:612 +#: stock/serializers.py:639 msgid "Purchase price of this stock item, per unit or pack" msgstr "" -#: stock/serializers.py:631 +#: stock/serializers.py:658 msgid "Minimum Pricing" msgstr "" -#: stock/serializers.py:637 +#: stock/serializers.py:664 msgid "Maximum Pricing" msgstr "" -#: stock/serializers.py:661 +#: stock/serializers.py:688 msgid "Enter number of stock items to serialize" msgstr "" -#: stock/serializers.py:674 +#: stock/serializers.py:701 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({q})" msgstr "" -#: stock/serializers.py:681 +#: stock/serializers.py:708 msgid "Enter serial numbers for new items" msgstr "" -#: stock/serializers.py:692 stock/serializers.py:1426 stock/serializers.py:1682 +#: stock/serializers.py:719 stock/serializers.py:1457 stock/serializers.py:1713 msgid "Destination stock location" msgstr "" -#: stock/serializers.py:699 +#: stock/serializers.py:726 msgid "Optional note field" msgstr "" -#: stock/serializers.py:709 +#: stock/serializers.py:736 msgid "Serial numbers cannot be assigned to this part" msgstr "" -#: stock/serializers.py:764 +#: stock/serializers.py:756 +msgid "Serial numbers already exist" +msgstr "" + +#: stock/serializers.py:795 msgid "Select stock item to install" msgstr "" -#: stock/serializers.py:771 +#: stock/serializers.py:802 msgid "Quantity to Install" msgstr "" -#: stock/serializers.py:772 +#: stock/serializers.py:803 msgid "Enter the quantity of items to install" msgstr "" -#: stock/serializers.py:777 stock/serializers.py:857 stock/serializers.py:983 -#: stock/serializers.py:1033 +#: stock/serializers.py:808 stock/serializers.py:888 stock/serializers.py:1014 +#: stock/serializers.py:1064 msgid "Add transaction note (optional)" msgstr "" -#: stock/serializers.py:785 +#: stock/serializers.py:816 msgid "Quantity to install must be at least 1" msgstr "" -#: stock/serializers.py:793 +#: stock/serializers.py:824 msgid "Stock item is unavailable" msgstr "" -#: stock/serializers.py:804 +#: stock/serializers.py:835 msgid "Selected part is not in the Bill of Materials" msgstr "" -#: stock/serializers.py:817 +#: stock/serializers.py:848 msgid "Quantity to install must not exceed available quantity" msgstr "" -#: stock/serializers.py:852 +#: stock/serializers.py:883 msgid "Destination location for uninstalled item" msgstr "" -#: stock/serializers.py:903 +#: stock/serializers.py:934 msgid "Unsupported statistic type: " msgstr "" -#: stock/serializers.py:917 +#: stock/serializers.py:948 msgid "Select part to convert stock item into" msgstr "" -#: stock/serializers.py:930 +#: stock/serializers.py:961 msgid "Selected part is not a valid option for conversion" msgstr "" -#: stock/serializers.py:947 +#: stock/serializers.py:978 msgid "Cannot convert stock item with assigned SupplierPart" msgstr "" -#: stock/serializers.py:978 +#: stock/serializers.py:1009 msgid "Destination location for returned item" msgstr "" -#: stock/serializers.py:1015 +#: stock/serializers.py:1046 msgid "Select stock items to change status" msgstr "" -#: stock/serializers.py:1021 +#: stock/serializers.py:1052 msgid "No stock items selected" msgstr "" -#: stock/serializers.py:1117 stock/serializers.py:1194 -#: stock/templates/stock/location.html:162 -#: stock/templates/stock/location.html:219 +#: stock/serializers.py:1148 stock/serializers.py:1225 +#: stock/templates/stock/location.html:163 +#: stock/templates/stock/location.html:220 #: stock/templates/stock/location_sidebar.html:5 msgid "Sublocations" msgstr "" -#: stock/serializers.py:1187 templates/js/translated/stock.js:160 +#: stock/serializers.py:1218 templates/js/translated/stock.js:160 msgid "Parent stock location" msgstr "" -#: stock/serializers.py:1298 +#: stock/serializers.py:1329 msgid "Part must be salable" msgstr "" -#: stock/serializers.py:1302 +#: stock/serializers.py:1333 msgid "Item is allocated to a sales order" msgstr "" -#: stock/serializers.py:1306 +#: stock/serializers.py:1337 msgid "Item is allocated to a build order" msgstr "" -#: stock/serializers.py:1330 +#: stock/serializers.py:1361 msgid "Customer to assign stock items" msgstr "" -#: stock/serializers.py:1336 +#: stock/serializers.py:1367 msgid "Selected company is not a customer" msgstr "" -#: stock/serializers.py:1344 +#: stock/serializers.py:1375 msgid "Stock assignment notes" msgstr "" -#: stock/serializers.py:1354 stock/serializers.py:1608 +#: stock/serializers.py:1385 stock/serializers.py:1639 msgid "A list of stock items must be provided" msgstr "" -#: stock/serializers.py:1433 +#: stock/serializers.py:1464 msgid "Stock merging notes" msgstr "" -#: stock/serializers.py:1438 +#: stock/serializers.py:1469 msgid "Allow mismatched suppliers" msgstr "" -#: stock/serializers.py:1439 +#: stock/serializers.py:1470 msgid "Allow stock items with different supplier parts to be merged" msgstr "" -#: stock/serializers.py:1444 +#: stock/serializers.py:1475 msgid "Allow mismatched status" msgstr "" -#: stock/serializers.py:1445 +#: stock/serializers.py:1476 msgid "Allow stock items with different status codes to be merged" msgstr "" -#: stock/serializers.py:1455 +#: stock/serializers.py:1486 msgid "At least two stock items must be provided" msgstr "" -#: stock/serializers.py:1522 +#: stock/serializers.py:1553 msgid "No Change" msgstr "" -#: stock/serializers.py:1551 +#: stock/serializers.py:1582 msgid "StockItem primary key value" msgstr "" -#: stock/serializers.py:1570 +#: stock/serializers.py:1601 msgid "Stock item status code" msgstr "" -#: stock/serializers.py:1598 +#: stock/serializers.py:1629 msgid "Stock transaction notes" msgstr "" @@ -10175,107 +10539,107 @@ msgstr "Απορρίφθηκε" msgid "Quarantined" msgstr "Σε Καραντίνα" -#: stock/status_codes.py:40 +#: stock/status_codes.py:44 msgid "Legacy stock tracking entry" msgstr "Καταχώρηση παλαιού αποθέματος" -#: stock/status_codes.py:42 templates/js/translated/stock.js:550 +#: stock/status_codes.py:46 templates/js/translated/stock.js:550 msgid "Stock item created" msgstr "Το αντικείμενο αποθεμάτων δημιουργήθηκε" -#: stock/status_codes.py:45 +#: stock/status_codes.py:49 msgid "Edited stock item" msgstr "Έγινε συγχώνευση αποθεμάτων" -#: stock/status_codes.py:46 +#: stock/status_codes.py:50 msgid "Assigned serial number" msgstr "Εκχωρημένος σειριακός κωδικός" -#: stock/status_codes.py:49 +#: stock/status_codes.py:53 msgid "Stock counted" msgstr "Απόθεμα που μετρήθηκε" -#: stock/status_codes.py:50 +#: stock/status_codes.py:54 msgid "Stock manually added" msgstr "Προστέθηκε απόθεμα χειροκίνητα" -#: stock/status_codes.py:51 +#: stock/status_codes.py:55 msgid "Stock manually removed" msgstr "Αφαιρέθηκε απόθεμα χειροκίνητα" -#: stock/status_codes.py:54 +#: stock/status_codes.py:58 msgid "Location changed" msgstr "Η τοποθεσία τροποποιήθηκε" -#: stock/status_codes.py:55 +#: stock/status_codes.py:59 msgid "Stock updated" msgstr "Το απόθεμα ενημερώθηκε" -#: stock/status_codes.py:58 +#: stock/status_codes.py:62 msgid "Installed into assembly" msgstr "Εγκαταστάθηκε στη συναρμολόγηση" -#: stock/status_codes.py:59 +#: stock/status_codes.py:63 msgid "Removed from assembly" msgstr "Αφαιρέθηκε από τη συναρμολόγηση" -#: stock/status_codes.py:61 +#: stock/status_codes.py:65 msgid "Installed component item" msgstr "Εγκαταστάθηκε αντικείμενο" -#: stock/status_codes.py:62 +#: stock/status_codes.py:66 msgid "Removed component item" msgstr "Αφαιρέθηκε αντικείμενο" -#: stock/status_codes.py:65 +#: stock/status_codes.py:69 msgid "Split from parent item" msgstr "Έγινε διαχωρισμός από το γονεϊκό αρχείο" -#: stock/status_codes.py:66 +#: stock/status_codes.py:70 msgid "Split child item" msgstr "Διαχωρίστηκε θυγατρικό στοιχείο" -#: stock/status_codes.py:69 templates/js/translated/stock.js:1943 +#: stock/status_codes.py:73 templates/js/translated/stock.js:1944 msgid "Merged stock items" msgstr "Έγινε συγχώνευση αποθεμάτων" -#: stock/status_codes.py:72 +#: stock/status_codes.py:76 msgid "Converted to variant" msgstr "Μετατράπηκε σε παραλλαγή" -#: stock/status_codes.py:75 +#: stock/status_codes.py:79 msgid "Build order output created" msgstr "Δημιουργήθηκε η έξοδος παραγγελίας" -#: stock/status_codes.py:76 +#: stock/status_codes.py:80 msgid "Build order output completed" msgstr "Η έξοδος της σειράς κατασκευής ολοκληρώθηκε" -#: stock/status_codes.py:77 +#: stock/status_codes.py:81 msgid "Build order output rejected" msgstr "Η εντολή κατασκευής απορρίφθηκε" -#: stock/status_codes.py:78 templates/js/translated/stock.js:1849 +#: stock/status_codes.py:82 templates/js/translated/stock.js:1849 msgid "Consumed by build order" msgstr "Κατανάλωση με εντολή κατασκευής" -#: stock/status_codes.py:81 +#: stock/status_codes.py:85 msgid "Shipped against Sales Order" msgstr "Αποστολή έναντι Εντολής Πώλησης" -#: stock/status_codes.py:84 +#: stock/status_codes.py:88 msgid "Received against Purchase Order" msgstr "Λήφθηκε έναντι Εντολής Αγοράς" -#: stock/status_codes.py:87 +#: stock/status_codes.py:91 msgid "Returned against Return Order" msgstr "Επιστράφηκε έναντι Εντολής Αγοράς" -#: stock/status_codes.py:90 templates/js/translated/table_filters.js:382 +#: stock/status_codes.py:94 templates/js/translated/table_filters.js:382 msgid "Sent to customer" msgstr "Απεστάλη στον πελάτη" -#: stock/status_codes.py:91 +#: stock/status_codes.py:95 msgid "Returned from customer" msgstr "Επιστράφηκε από πελάτη" @@ -10296,7 +10660,7 @@ msgstr "" msgid "Test Data" msgstr "" -#: stock/templates/stock/item.html:85 stock/templates/stock/item_base.html:65 +#: stock/templates/stock/item.html:85 msgid "Test Report" msgstr "" @@ -10316,7 +10680,7 @@ msgstr "" msgid "Installed Stock Items" msgstr "" -#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3354 +#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3355 msgid "Install Stock Item" msgstr "" @@ -10328,208 +10692,212 @@ msgstr "" msgid "Add Test Result" msgstr "" -#: stock/templates/stock/item_base.html:33 +#: stock/templates/stock/item_base.html:34 msgid "Locate stock item" msgstr "" -#: stock/templates/stock/item_base.html:51 +#: stock/templates/stock/item_base.html:52 msgid "Scan to Location" msgstr "" #: stock/templates/stock/item_base.html:59 -#: stock/templates/stock/location.html:67 +#: stock/templates/stock/location.html:68 #: templates/js/translated/filters.js:434 msgid "Printing actions" msgstr "" -#: stock/templates/stock/item_base.html:75 +#: stock/templates/stock/item_base.html:64 templates/js/translated/report.js:49 +msgid "Print Report" +msgstr "" + +#: stock/templates/stock/item_base.html:72 msgid "Stock adjustment actions" msgstr "" -#: stock/templates/stock/item_base.html:79 -#: stock/templates/stock/location.html:87 templates/js/translated/stock.js:1909 +#: stock/templates/stock/item_base.html:76 +#: stock/templates/stock/location.html:88 templates/js/translated/stock.js:1909 msgid "Count stock" msgstr "" -#: stock/templates/stock/item_base.html:81 +#: stock/templates/stock/item_base.html:78 #: templates/js/translated/stock.js:1891 msgid "Add stock" msgstr "" -#: stock/templates/stock/item_base.html:82 +#: stock/templates/stock/item_base.html:79 #: templates/js/translated/stock.js:1900 msgid "Remove stock" msgstr "" -#: stock/templates/stock/item_base.html:85 +#: stock/templates/stock/item_base.html:82 msgid "Serialize stock" msgstr "" -#: stock/templates/stock/item_base.html:88 -#: stock/templates/stock/location.html:93 templates/js/translated/stock.js:1918 +#: stock/templates/stock/item_base.html:85 +#: stock/templates/stock/location.html:94 templates/js/translated/stock.js:1918 msgid "Transfer stock" msgstr "" -#: stock/templates/stock/item_base.html:91 -#: templates/js/translated/stock.js:1972 +#: stock/templates/stock/item_base.html:88 +#: templates/js/translated/stock.js:1973 msgid "Assign to customer" msgstr "" -#: stock/templates/stock/item_base.html:94 +#: stock/templates/stock/item_base.html:91 msgid "Return to stock" msgstr "" -#: stock/templates/stock/item_base.html:97 +#: stock/templates/stock/item_base.html:94 msgid "Uninstall stock item" msgstr "" -#: stock/templates/stock/item_base.html:97 +#: stock/templates/stock/item_base.html:94 msgid "Uninstall" msgstr "" -#: stock/templates/stock/item_base.html:101 +#: stock/templates/stock/item_base.html:98 msgid "Install stock item" msgstr "" -#: stock/templates/stock/item_base.html:101 +#: stock/templates/stock/item_base.html:98 msgid "Install" msgstr "" -#: stock/templates/stock/item_base.html:115 +#: stock/templates/stock/item_base.html:112 msgid "Convert to variant" msgstr "" -#: stock/templates/stock/item_base.html:118 +#: stock/templates/stock/item_base.html:115 msgid "Duplicate stock item" msgstr "" -#: stock/templates/stock/item_base.html:120 +#: stock/templates/stock/item_base.html:117 msgid "Edit stock item" msgstr "" -#: stock/templates/stock/item_base.html:123 +#: stock/templates/stock/item_base.html:120 msgid "Delete stock item" msgstr "" -#: stock/templates/stock/item_base.html:169 templates/InvenTree/search.html:139 -#: templates/js/translated/build.js:2295 templates/navbar.html:38 +#: stock/templates/stock/item_base.html:166 templates/InvenTree/search.html:139 +#: templates/js/translated/build.js:2298 templates/navbar.html:38 msgid "Build" msgstr "Κατασκευή" -#: stock/templates/stock/item_base.html:211 +#: stock/templates/stock/item_base.html:208 msgid "No manufacturer set" msgstr "" -#: stock/templates/stock/item_base.html:251 +#: stock/templates/stock/item_base.html:248 msgid "You are not in the list of owners of this item. This stock item cannot be edited." msgstr "" -#: stock/templates/stock/item_base.html:252 -#: stock/templates/stock/location.html:146 +#: stock/templates/stock/item_base.html:249 +#: stock/templates/stock/location.html:147 msgid "Read only" msgstr "" -#: stock/templates/stock/item_base.html:265 +#: stock/templates/stock/item_base.html:262 msgid "This stock item is unavailable" msgstr "" -#: stock/templates/stock/item_base.html:271 +#: stock/templates/stock/item_base.html:268 msgid "This stock item is in production and cannot be edited." msgstr "" -#: stock/templates/stock/item_base.html:272 +#: stock/templates/stock/item_base.html:269 msgid "Edit the stock item from the build view." msgstr "" -#: stock/templates/stock/item_base.html:287 +#: stock/templates/stock/item_base.html:284 msgid "This stock item is allocated to Sales Order" msgstr "" -#: stock/templates/stock/item_base.html:295 +#: stock/templates/stock/item_base.html:292 msgid "This stock item is allocated to Build Order" msgstr "" -#: stock/templates/stock/item_base.html:311 +#: stock/templates/stock/item_base.html:308 msgid "This stock item is serialized. It has a unique serial number and the quantity cannot be adjusted" msgstr "" -#: stock/templates/stock/item_base.html:317 +#: stock/templates/stock/item_base.html:314 msgid "previous page" msgstr "" -#: stock/templates/stock/item_base.html:317 +#: stock/templates/stock/item_base.html:314 msgid "Navigate to previous serial number" msgstr "" -#: stock/templates/stock/item_base.html:326 +#: stock/templates/stock/item_base.html:323 msgid "next page" msgstr "" -#: stock/templates/stock/item_base.html:326 +#: stock/templates/stock/item_base.html:323 msgid "Navigate to next serial number" msgstr "" -#: stock/templates/stock/item_base.html:398 -#: templates/js/translated/build.js:2552 +#: stock/templates/stock/item_base.html:395 +#: templates/js/translated/build.js:2559 msgid "No location set" msgstr "" -#: stock/templates/stock/item_base.html:413 +#: stock/templates/stock/item_base.html:410 msgid "Tests" msgstr "" -#: stock/templates/stock/item_base.html:419 +#: stock/templates/stock/item_base.html:416 msgid "This stock item has not passed all required tests" msgstr "" -#: stock/templates/stock/item_base.html:437 +#: stock/templates/stock/item_base.html:434 #, python-format msgid "This StockItem expired on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:439 +#: stock/templates/stock/item_base.html:436 #, python-format msgid "This StockItem expires on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:455 +#: stock/templates/stock/item_base.html:452 msgid "No stocktake performed" msgstr "" -#: stock/templates/stock/item_base.html:504 -#: templates/js/translated/stock.js:2037 +#: stock/templates/stock/item_base.html:501 +#: templates/js/translated/stock.js:2038 msgid "stock item" msgstr "" -#: stock/templates/stock/item_base.html:527 +#: stock/templates/stock/item_base.html:524 msgid "Edit Stock Status" msgstr "" -#: stock/templates/stock/item_base.html:536 +#: stock/templates/stock/item_base.html:533 msgid "Stock Item QR Code" msgstr "" -#: stock/templates/stock/item_base.html:547 +#: stock/templates/stock/item_base.html:544 msgid "Link Barcode to Stock Item" msgstr "" -#: stock/templates/stock/item_base.html:611 +#: stock/templates/stock/item_base.html:608 msgid "Select one of the part variants listed below." msgstr "" -#: stock/templates/stock/item_base.html:614 +#: stock/templates/stock/item_base.html:611 msgid "Warning" msgstr "" -#: stock/templates/stock/item_base.html:615 +#: stock/templates/stock/item_base.html:612 msgid "This action cannot be easily undone" msgstr "" -#: stock/templates/stock/item_base.html:623 +#: stock/templates/stock/item_base.html:620 msgid "Convert Stock Item" msgstr "" -#: stock/templates/stock/item_base.html:656 +#: stock/templates/stock/item_base.html:653 msgid "Return to Stock" msgstr "" @@ -10541,84 +10909,84 @@ msgstr "" msgid "Select quantity to serialize, and unique serial numbers." msgstr "" -#: stock/templates/stock/location.html:35 +#: stock/templates/stock/location.html:36 msgid "Perform stocktake for this stock location" msgstr "" -#: stock/templates/stock/location.html:42 +#: stock/templates/stock/location.html:43 msgid "Locate stock location" msgstr "" -#: stock/templates/stock/location.html:60 +#: stock/templates/stock/location.html:61 msgid "Scan stock items into this location" msgstr "" -#: stock/templates/stock/location.html:60 +#: stock/templates/stock/location.html:61 msgid "Scan In Stock Items" msgstr "" -#: stock/templates/stock/location.html:61 +#: stock/templates/stock/location.html:62 msgid "Scan stock container into this location" msgstr "" -#: stock/templates/stock/location.html:61 +#: stock/templates/stock/location.html:62 msgid "Scan In Container" msgstr "" -#: stock/templates/stock/location.html:72 +#: stock/templates/stock/location.html:73 msgid "Print Location Report" msgstr "" -#: stock/templates/stock/location.html:101 +#: stock/templates/stock/location.html:102 msgid "Location actions" msgstr "" -#: stock/templates/stock/location.html:103 +#: stock/templates/stock/location.html:104 msgid "Edit location" msgstr "" -#: stock/templates/stock/location.html:105 +#: stock/templates/stock/location.html:106 msgid "Delete location" msgstr "" -#: stock/templates/stock/location.html:135 +#: stock/templates/stock/location.html:136 msgid "Top level stock location" msgstr "" -#: stock/templates/stock/location.html:141 +#: stock/templates/stock/location.html:142 msgid "Location Owner" msgstr "" -#: stock/templates/stock/location.html:145 +#: stock/templates/stock/location.html:146 msgid "You are not in the list of owners of this location. This stock location cannot be edited." msgstr "" -#: stock/templates/stock/location.html:173 +#: stock/templates/stock/location.html:174 msgid "Location Type" msgstr "" -#: stock/templates/stock/location.html:223 +#: stock/templates/stock/location.html:224 msgid "Create new stock location" msgstr "" -#: stock/templates/stock/location.html:224 +#: stock/templates/stock/location.html:225 msgid "New Location" msgstr "" -#: stock/templates/stock/location.html:298 -#: templates/js/translated/stock.js:2657 +#: stock/templates/stock/location.html:299 +#: templates/js/translated/stock.js:2658 msgid "stock location" msgstr "" -#: stock/templates/stock/location.html:320 +#: stock/templates/stock/location.html:321 msgid "Scanned stock container into this location" msgstr "" -#: stock/templates/stock/location.html:393 +#: stock/templates/stock/location.html:394 msgid "Stock Location QR Code" msgstr "" -#: stock/templates/stock/location.html:404 +#: stock/templates/stock/location.html:405 msgid "Link Barcode to Stock Location" msgstr "" @@ -10630,10 +10998,6 @@ msgstr "" msgid "Stock Tracking" msgstr "" -#: stock/templates/stock/stock_sidebar.html:8 -msgid "Allocations" -msgstr "" - #: templates/403.html:6 templates/403.html:12 templates/403_csrf.html:7 msgid "Permission Denied" msgstr "" @@ -11107,9 +11471,9 @@ msgid "Rate" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:81 -#: templates/js/translated/forms.js:548 templates/js/translated/helpers.js:108 +#: templates/js/translated/forms.js:548 templates/js/translated/helpers.js:109 #: templates/js/translated/part.js:395 templates/js/translated/pricing.js:629 -#: templates/js/translated/stock.js:252 users/models.py:406 +#: templates/js/translated/stock.js:252 users/models.py:408 msgid "Delete" msgstr "" @@ -11130,7 +11494,7 @@ msgid "No project codes found" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:158 -#: templates/js/translated/build.js:2400 +#: templates/js/translated/build.js:2403 msgid "group" msgstr "" @@ -11196,7 +11560,7 @@ msgid "Delete Location Type" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:503 -#: templates/InvenTree/settings/stock.html:38 +#: templates/InvenTree/settings/stock.html:39 msgid "New Location Type" msgstr "" @@ -11253,7 +11617,7 @@ msgstr "" msgid "Stock Settings" msgstr "" -#: templates/InvenTree/settings/stock.html:34 +#: templates/InvenTree/settings/stock.html:35 msgid "Stock Location Types" msgstr "" @@ -11280,7 +11644,7 @@ msgid "Unverified" msgstr "" #: templates/InvenTree/settings/user.html:80 -#: templates/js/translated/company.js:957 +#: templates/js/translated/company.js:958 msgid "Primary" msgstr "" @@ -11532,7 +11896,7 @@ msgid "Submit Bug Report" msgstr "" #: templates/about.html:91 templates/clip.html:4 -#: templates/js/translated/helpers.js:592 +#: templates/js/translated/helpers.js:598 msgid "copy to clipboard" msgstr "" @@ -11738,23 +12102,24 @@ msgstr "" msgid "Barcode Identifier" msgstr "" -#: templates/base.html:103 +#: templates/base.html:102 msgid "Server Restart Required" msgstr "" -#: templates/base.html:106 +#: templates/base.html:105 msgid "A configuration option has been changed which requires a server restart" msgstr "" -#: templates/base.html:106 templates/base.html:116 +#: templates/base.html:105 templates/base.html:115 +#: templates/socialaccount/authentication_error.html:13 msgid "Contact your system administrator for further information" msgstr "" -#: templates/base.html:113 +#: templates/base.html:112 msgid "Pending Database Migrations" msgstr "" -#: templates/base.html:116 +#: templates/base.html:115 msgid "There are pending database migrations which require attention" msgstr "" @@ -11787,7 +12152,7 @@ msgid "The following parts are low on required stock" msgstr "" #: templates/email/build_order_required_stock.html:18 -#: templates/js/translated/bom.js:1674 templates/js/translated/build.js:2747 +#: templates/js/translated/bom.js:1674 templates/js/translated/build.js:2765 msgid "Required Quantity" msgstr "" @@ -11801,7 +12166,7 @@ msgid "Click on the following link to view this part" msgstr "" #: templates/email/low_stock_notification.html:18 -#: templates/js/translated/part.js:3237 +#: templates/js/translated/part.js:3253 msgid "Minimum Quantity" msgstr "" @@ -12039,7 +12404,7 @@ msgstr "" #: templates/js/translated/bom.js:189 templates/js/translated/bom.js:700 #: templates/js/translated/modals.js:75 templates/js/translated/modals.js:629 #: templates/js/translated/modals.js:757 templates/js/translated/modals.js:1065 -#: templates/js/translated/purchase_order.js:797 templates/modals.html:15 +#: templates/js/translated/purchase_order.js:780 templates/modals.html:15 #: templates/modals.html:27 templates/modals.html:39 templates/modals.html:50 msgid "Close" msgstr "" @@ -12156,7 +12521,7 @@ msgstr "" msgid "Substitutes Available" msgstr "" -#: templates/js/translated/bom.js:950 templates/js/translated/build.js:2673 +#: templates/js/translated/bom.js:950 templates/js/translated/build.js:2682 msgid "Variant stock allowed" msgstr "" @@ -12176,30 +12541,30 @@ msgstr "" msgid "No pricing available" msgstr "" -#: templates/js/translated/bom.js:1184 templates/js/translated/build.js:2812 +#: templates/js/translated/bom.js:1184 templates/js/translated/build.js:2830 msgid "External stock" msgstr "" -#: templates/js/translated/bom.js:1188 templates/js/translated/build.js:2786 -#: templates/js/translated/sales_order.js:1946 +#: templates/js/translated/bom.js:1188 templates/js/translated/build.js:2804 +#: templates/js/translated/sales_order.js:1927 msgid "No Stock Available" msgstr "" -#: templates/js/translated/bom.js:1193 templates/js/translated/build.js:2790 +#: templates/js/translated/bom.js:1193 templates/js/translated/build.js:2808 msgid "Includes variant and substitute stock" msgstr "" -#: templates/js/translated/bom.js:1195 templates/js/translated/build.js:2792 +#: templates/js/translated/bom.js:1195 templates/js/translated/build.js:2810 #: templates/js/translated/part.js:1263 -#: templates/js/translated/sales_order.js:1943 +#: templates/js/translated/sales_order.js:1924 msgid "Includes variant stock" msgstr "" -#: templates/js/translated/bom.js:1197 templates/js/translated/build.js:2794 +#: templates/js/translated/bom.js:1197 templates/js/translated/build.js:2812 msgid "Includes substitute stock" msgstr "" -#: templates/js/translated/bom.js:1225 templates/js/translated/build.js:2777 +#: templates/js/translated/bom.js:1225 templates/js/translated/build.js:2795 msgid "Consumable item" msgstr "" @@ -12231,7 +12596,7 @@ msgstr "" msgid "No BOM items found" msgstr "" -#: templates/js/translated/bom.js:1657 templates/js/translated/build.js:2658 +#: templates/js/translated/bom.js:1657 templates/js/translated/build.js:2667 msgid "Required Part" msgstr "" @@ -12243,396 +12608,396 @@ msgstr "" msgid "Edit Build Order" msgstr "" -#: templates/js/translated/build.js:191 +#: templates/js/translated/build.js:194 msgid "Create Build Order" msgstr "" -#: templates/js/translated/build.js:223 +#: templates/js/translated/build.js:226 msgid "Cancel Build Order" msgstr "" -#: templates/js/translated/build.js:232 +#: templates/js/translated/build.js:235 msgid "Are you sure you wish to cancel this build?" msgstr "" -#: templates/js/translated/build.js:238 +#: templates/js/translated/build.js:241 msgid "Stock items have been allocated to this build order" msgstr "" -#: templates/js/translated/build.js:245 +#: templates/js/translated/build.js:248 msgid "There are incomplete outputs remaining for this build order" msgstr "" -#: templates/js/translated/build.js:297 +#: templates/js/translated/build.js:300 msgid "Build order is ready to be completed" msgstr "" -#: templates/js/translated/build.js:305 +#: templates/js/translated/build.js:308 msgid "This build order cannot be completed as there are incomplete outputs" msgstr "" -#: templates/js/translated/build.js:310 +#: templates/js/translated/build.js:313 msgid "Build Order is incomplete" msgstr "" -#: templates/js/translated/build.js:328 +#: templates/js/translated/build.js:331 msgid "Complete Build Order" msgstr "" -#: templates/js/translated/build.js:369 templates/js/translated/stock.js:127 +#: templates/js/translated/build.js:372 templates/js/translated/stock.js:127 #: templates/js/translated/stock.js:301 msgid "Next available serial number" msgstr "" -#: templates/js/translated/build.js:371 templates/js/translated/stock.js:129 +#: templates/js/translated/build.js:374 templates/js/translated/stock.js:129 #: templates/js/translated/stock.js:303 msgid "Latest serial number" msgstr "" -#: templates/js/translated/build.js:380 +#: templates/js/translated/build.js:383 msgid "The Bill of Materials contains trackable parts" msgstr "" -#: templates/js/translated/build.js:381 +#: templates/js/translated/build.js:384 msgid "Build outputs must be generated individually" msgstr "" -#: templates/js/translated/build.js:389 +#: templates/js/translated/build.js:392 msgid "Trackable parts can have serial numbers specified" msgstr "" -#: templates/js/translated/build.js:390 +#: templates/js/translated/build.js:393 msgid "Enter serial numbers to generate multiple single build outputs" msgstr "" -#: templates/js/translated/build.js:397 +#: templates/js/translated/build.js:400 msgid "Create Build Output" msgstr "" -#: templates/js/translated/build.js:428 +#: templates/js/translated/build.js:431 msgid "Allocate stock items to this build output" msgstr "" -#: templates/js/translated/build.js:436 +#: templates/js/translated/build.js:439 msgid "Deallocate stock from build output" msgstr "" -#: templates/js/translated/build.js:445 +#: templates/js/translated/build.js:448 msgid "Complete build output" msgstr "" -#: templates/js/translated/build.js:453 +#: templates/js/translated/build.js:456 msgid "Scrap build output" msgstr "" -#: templates/js/translated/build.js:460 +#: templates/js/translated/build.js:463 msgid "Delete build output" msgstr "" -#: templates/js/translated/build.js:480 +#: templates/js/translated/build.js:483 msgid "Are you sure you wish to deallocate the selected stock items from this build?" msgstr "" -#: templates/js/translated/build.js:498 +#: templates/js/translated/build.js:501 msgid "Deallocate Stock Items" msgstr "" -#: templates/js/translated/build.js:584 templates/js/translated/build.js:711 -#: templates/js/translated/build.js:836 +#: templates/js/translated/build.js:587 templates/js/translated/build.js:714 +#: templates/js/translated/build.js:839 msgid "Select Build Outputs" msgstr "" -#: templates/js/translated/build.js:585 templates/js/translated/build.js:712 -#: templates/js/translated/build.js:837 +#: templates/js/translated/build.js:588 templates/js/translated/build.js:715 +#: templates/js/translated/build.js:840 msgid "At least one build output must be selected" msgstr "" -#: templates/js/translated/build.js:599 +#: templates/js/translated/build.js:602 msgid "Selected build outputs will be marked as complete" msgstr "" -#: templates/js/translated/build.js:603 templates/js/translated/build.js:736 -#: templates/js/translated/build.js:859 +#: templates/js/translated/build.js:606 templates/js/translated/build.js:739 +#: templates/js/translated/build.js:862 msgid "Output" msgstr "" -#: templates/js/translated/build.js:630 +#: templates/js/translated/build.js:633 msgid "Complete Build Outputs" msgstr "" -#: templates/js/translated/build.js:727 +#: templates/js/translated/build.js:730 msgid "Selected build outputs will be marked as scrapped" msgstr "" -#: templates/js/translated/build.js:729 +#: templates/js/translated/build.js:732 msgid "Scrapped output are marked as rejected" msgstr "" -#: templates/js/translated/build.js:730 +#: templates/js/translated/build.js:733 msgid "Allocated stock items will no longer be available" msgstr "" -#: templates/js/translated/build.js:731 +#: templates/js/translated/build.js:734 msgid "The completion status of the build order will not be adjusted" msgstr "" -#: templates/js/translated/build.js:761 +#: templates/js/translated/build.js:764 msgid "Scrap Build Outputs" msgstr "" -#: templates/js/translated/build.js:851 +#: templates/js/translated/build.js:854 msgid "Selected build outputs will be deleted" msgstr "" -#: templates/js/translated/build.js:853 +#: templates/js/translated/build.js:856 msgid "Build output data will be permanently deleted" msgstr "" -#: templates/js/translated/build.js:854 +#: templates/js/translated/build.js:857 msgid "Allocated stock items will be returned to stock" msgstr "" -#: templates/js/translated/build.js:872 +#: templates/js/translated/build.js:875 msgid "Delete Build Outputs" msgstr "" -#: templates/js/translated/build.js:959 +#: templates/js/translated/build.js:962 msgid "Delete allocations" msgstr "" -#: templates/js/translated/build.js:966 +#: templates/js/translated/build.js:969 msgid "Delete Stock Allocations" msgstr "" -#: templates/js/translated/build.js:989 +#: templates/js/translated/build.js:992 msgid "No allocated stock" msgstr "" -#: templates/js/translated/build.js:1045 +#: templates/js/translated/build.js:1048 msgid "Stock item" msgstr "" -#: templates/js/translated/build.js:1070 +#: templates/js/translated/build.js:1073 msgid "Edit build allocation" msgstr "" -#: templates/js/translated/build.js:1071 +#: templates/js/translated/build.js:1074 msgid "Delete build allocation" msgstr "" -#: templates/js/translated/build.js:1089 +#: templates/js/translated/build.js:1092 msgid "Edit Build Allocation" msgstr "" -#: templates/js/translated/build.js:1102 +#: templates/js/translated/build.js:1105 msgid "Delete Build Allocation" msgstr "" -#: templates/js/translated/build.js:1133 +#: templates/js/translated/build.js:1136 msgid "No build order allocations found" msgstr "" -#: templates/js/translated/build.js:1178 +#: templates/js/translated/build.js:1181 msgid "Location not specified" msgstr "" -#: templates/js/translated/build.js:1200 +#: templates/js/translated/build.js:1203 msgid "Complete outputs" msgstr "" -#: templates/js/translated/build.js:1218 +#: templates/js/translated/build.js:1221 msgid "Scrap outputs" msgstr "" -#: templates/js/translated/build.js:1236 +#: templates/js/translated/build.js:1239 msgid "Delete outputs" msgstr "" -#: templates/js/translated/build.js:1289 +#: templates/js/translated/build.js:1292 msgid "build output" msgstr "" -#: templates/js/translated/build.js:1290 +#: templates/js/translated/build.js:1293 msgid "build outputs" msgstr "" -#: templates/js/translated/build.js:1294 +#: templates/js/translated/build.js:1297 msgid "Build output actions" msgstr "" -#: templates/js/translated/build.js:1470 +#: templates/js/translated/build.js:1473 msgid "No active build outputs found" msgstr "" -#: templates/js/translated/build.js:1563 +#: templates/js/translated/build.js:1566 msgid "Allocated Lines" msgstr "" -#: templates/js/translated/build.js:1577 +#: templates/js/translated/build.js:1580 msgid "Required Tests" msgstr "" -#: templates/js/translated/build.js:1749 -#: templates/js/translated/purchase_order.js:611 -#: templates/js/translated/sales_order.js:1207 +#: templates/js/translated/build.js:1752 +#: templates/js/translated/purchase_order.js:594 +#: templates/js/translated/sales_order.js:1173 msgid "Select Parts" msgstr "" -#: templates/js/translated/build.js:1750 -#: templates/js/translated/sales_order.js:1208 +#: templates/js/translated/build.js:1753 +#: templates/js/translated/sales_order.js:1174 msgid "You must select at least one part to allocate" msgstr "" -#: templates/js/translated/build.js:1813 -#: templates/js/translated/sales_order.js:1157 +#: templates/js/translated/build.js:1816 +#: templates/js/translated/sales_order.js:1123 msgid "Specify stock allocation quantity" msgstr "" -#: templates/js/translated/build.js:1890 +#: templates/js/translated/build.js:1893 msgid "All Parts Allocated" msgstr "" -#: templates/js/translated/build.js:1891 +#: templates/js/translated/build.js:1894 msgid "All selected parts have been fully allocated" msgstr "" -#: templates/js/translated/build.js:1905 -#: templates/js/translated/sales_order.js:1222 +#: templates/js/translated/build.js:1908 +#: templates/js/translated/sales_order.js:1188 msgid "Select source location (leave blank to take from all locations)" msgstr "" -#: templates/js/translated/build.js:1933 +#: templates/js/translated/build.js:1936 msgid "Allocate Stock Items to Build Order" msgstr "" -#: templates/js/translated/build.js:1944 -#: templates/js/translated/sales_order.js:1319 +#: templates/js/translated/build.js:1947 +#: templates/js/translated/sales_order.js:1285 msgid "No matching stock locations" msgstr "" -#: templates/js/translated/build.js:2017 -#: templates/js/translated/sales_order.js:1398 +#: templates/js/translated/build.js:2020 +#: templates/js/translated/sales_order.js:1364 msgid "No matching stock items" msgstr "" -#: templates/js/translated/build.js:2114 +#: templates/js/translated/build.js:2117 msgid "Automatic Stock Allocation" msgstr "" -#: templates/js/translated/build.js:2115 +#: templates/js/translated/build.js:2118 msgid "Stock items will be automatically allocated to this build order, according to the provided guidelines" msgstr "" -#: templates/js/translated/build.js:2117 +#: templates/js/translated/build.js:2120 msgid "If a location is specified, stock will only be allocated from that location" msgstr "" -#: templates/js/translated/build.js:2118 +#: templates/js/translated/build.js:2121 msgid "If stock is considered interchangeable, it will be allocated from the first location it is found" msgstr "" -#: templates/js/translated/build.js:2119 +#: templates/js/translated/build.js:2122 msgid "If substitute stock is allowed, it will be used where stock of the primary part cannot be found" msgstr "" -#: templates/js/translated/build.js:2149 +#: templates/js/translated/build.js:2152 msgid "Allocate Stock Items" msgstr "" -#: templates/js/translated/build.js:2254 +#: templates/js/translated/build.js:2257 msgid "No builds matching query" msgstr "" -#: templates/js/translated/build.js:2289 templates/js/translated/build.js:2652 +#: templates/js/translated/build.js:2292 templates/js/translated/build.js:2661 #: templates/js/translated/forms.js:2196 templates/js/translated/forms.js:2212 #: templates/js/translated/part.js:2322 templates/js/translated/part.js:2761 -#: templates/js/translated/stock.js:2068 templates/js/translated/stock.js:2795 +#: templates/js/translated/stock.js:2069 templates/js/translated/stock.js:2796 msgid "Select" msgstr "" -#: templates/js/translated/build.js:2303 +#: templates/js/translated/build.js:2306 msgid "Build order is overdue" msgstr "" -#: templates/js/translated/build.js:2385 templates/js/translated/stock.js:3126 +#: templates/js/translated/build.js:2388 templates/js/translated/stock.js:3127 msgid "No user information" msgstr "" -#: templates/js/translated/build.js:2561 -#: templates/js/translated/sales_order.js:1682 +#: templates/js/translated/build.js:2568 +#: templates/js/translated/sales_order.js:1663 msgid "Edit stock allocation" msgstr "" -#: templates/js/translated/build.js:2562 -#: templates/js/translated/sales_order.js:1683 +#: templates/js/translated/build.js:2569 +#: templates/js/translated/sales_order.js:1664 msgid "Delete stock allocation" msgstr "" -#: templates/js/translated/build.js:2577 +#: templates/js/translated/build.js:2584 msgid "Edit Allocation" msgstr "" -#: templates/js/translated/build.js:2589 +#: templates/js/translated/build.js:2596 msgid "Remove Allocation" msgstr "" -#: templates/js/translated/build.js:2628 +#: templates/js/translated/build.js:2636 msgid "build line" msgstr "" -#: templates/js/translated/build.js:2629 +#: templates/js/translated/build.js:2637 msgid "build lines" msgstr "" -#: templates/js/translated/build.js:2647 +#: templates/js/translated/build.js:2656 msgid "No build lines found" msgstr "" -#: templates/js/translated/build.js:2677 templates/js/translated/part.js:793 +#: templates/js/translated/build.js:2686 templates/js/translated/part.js:793 #: templates/js/translated/part.js:1209 msgid "Trackable part" msgstr "" -#: templates/js/translated/build.js:2720 +#: templates/js/translated/build.js:2729 msgid "Gets Inherited" msgstr "" -#: templates/js/translated/build.js:2730 +#: templates/js/translated/build.js:2748 msgid "Unit Quantity" msgstr "" -#: templates/js/translated/build.js:2782 -#: templates/js/translated/sales_order.js:1951 +#: templates/js/translated/build.js:2800 +#: templates/js/translated/sales_order.js:1932 msgid "Sufficient stock available" msgstr "" -#: templates/js/translated/build.js:2837 +#: templates/js/translated/build.js:2855 msgid "Consumable Item" msgstr "" -#: templates/js/translated/build.js:2844 +#: templates/js/translated/build.js:2862 msgid "Tracked item" msgstr "" -#: templates/js/translated/build.js:2845 +#: templates/js/translated/build.js:2863 msgid "Allocate tracked items against individual build outputs" msgstr "" -#: templates/js/translated/build.js:2853 -#: templates/js/translated/sales_order.js:2052 +#: templates/js/translated/build.js:2871 +#: templates/js/translated/sales_order.js:2033 msgid "Build stock" msgstr "" -#: templates/js/translated/build.js:2858 templates/js/translated/stock.js:1953 +#: templates/js/translated/build.js:2876 templates/js/translated/stock.js:1954 msgid "Order stock" msgstr "" -#: templates/js/translated/build.js:2862 -#: templates/js/translated/sales_order.js:2046 +#: templates/js/translated/build.js:2880 +#: templates/js/translated/sales_order.js:2027 msgid "Allocate stock" msgstr "" -#: templates/js/translated/build.js:2866 +#: templates/js/translated/build.js:2884 msgid "Remove stock allocation" msgstr "" @@ -12641,7 +13006,7 @@ msgid "Add Manufacturer" msgstr "" #: templates/js/translated/company.js:111 -#: templates/js/translated/company.js:213 +#: templates/js/translated/company.js:214 msgid "Add Manufacturer Part" msgstr "" @@ -12649,231 +13014,231 @@ msgstr "" msgid "Edit Manufacturer Part" msgstr "" -#: templates/js/translated/company.js:201 +#: templates/js/translated/company.js:202 #: templates/js/translated/purchase_order.js:93 msgid "Add Supplier" msgstr "" -#: templates/js/translated/company.js:243 -#: templates/js/translated/purchase_order.js:318 +#: templates/js/translated/company.js:244 +#: templates/js/translated/purchase_order.js:301 msgid "Add Supplier Part" msgstr "" -#: templates/js/translated/company.js:344 +#: templates/js/translated/company.js:345 msgid "All selected supplier parts will be deleted" msgstr "" -#: templates/js/translated/company.js:360 +#: templates/js/translated/company.js:361 msgid "Delete Supplier Parts" msgstr "" -#: templates/js/translated/company.js:466 +#: templates/js/translated/company.js:467 msgid "Add new Company" msgstr "" -#: templates/js/translated/company.js:546 +#: templates/js/translated/company.js:547 msgid "Parts Supplied" msgstr "" -#: templates/js/translated/company.js:555 +#: templates/js/translated/company.js:556 msgid "Parts Manufactured" msgstr "" -#: templates/js/translated/company.js:570 +#: templates/js/translated/company.js:571 msgid "No company information found" msgstr "" -#: templates/js/translated/company.js:619 +#: templates/js/translated/company.js:620 msgid "Create New Contact" msgstr "" -#: templates/js/translated/company.js:635 -#: templates/js/translated/company.js:758 +#: templates/js/translated/company.js:636 +#: templates/js/translated/company.js:759 msgid "Edit Contact" msgstr "" -#: templates/js/translated/company.js:672 +#: templates/js/translated/company.js:673 msgid "All selected contacts will be deleted" msgstr "" -#: templates/js/translated/company.js:678 -#: templates/js/translated/company.js:742 +#: templates/js/translated/company.js:679 +#: templates/js/translated/company.js:743 msgid "Role" msgstr "" -#: templates/js/translated/company.js:686 +#: templates/js/translated/company.js:687 msgid "Delete Contacts" msgstr "" -#: templates/js/translated/company.js:717 +#: templates/js/translated/company.js:718 msgid "No contacts found" msgstr "" -#: templates/js/translated/company.js:730 +#: templates/js/translated/company.js:731 msgid "Phone Number" msgstr "" -#: templates/js/translated/company.js:736 +#: templates/js/translated/company.js:737 msgid "Email Address" msgstr "" -#: templates/js/translated/company.js:762 +#: templates/js/translated/company.js:763 msgid "Delete Contact" msgstr "" -#: templates/js/translated/company.js:859 +#: templates/js/translated/company.js:860 msgid "Create New Address" msgstr "" -#: templates/js/translated/company.js:874 -#: templates/js/translated/company.js:1035 +#: templates/js/translated/company.js:875 +#: templates/js/translated/company.js:1036 msgid "Edit Address" msgstr "" -#: templates/js/translated/company.js:909 +#: templates/js/translated/company.js:910 msgid "All selected addresses will be deleted" msgstr "" -#: templates/js/translated/company.js:923 +#: templates/js/translated/company.js:924 msgid "Delete Addresses" msgstr "" -#: templates/js/translated/company.js:950 +#: templates/js/translated/company.js:951 msgid "No addresses found" msgstr "" -#: templates/js/translated/company.js:989 +#: templates/js/translated/company.js:990 msgid "Postal city" msgstr "" -#: templates/js/translated/company.js:995 +#: templates/js/translated/company.js:996 msgid "State/province" msgstr "" -#: templates/js/translated/company.js:1007 +#: templates/js/translated/company.js:1008 msgid "Courier notes" msgstr "" -#: templates/js/translated/company.js:1013 +#: templates/js/translated/company.js:1014 msgid "Internal notes" msgstr "" -#: templates/js/translated/company.js:1039 +#: templates/js/translated/company.js:1040 msgid "Delete Address" msgstr "" -#: templates/js/translated/company.js:1112 +#: templates/js/translated/company.js:1113 msgid "All selected manufacturer parts will be deleted" msgstr "" -#: templates/js/translated/company.js:1127 +#: templates/js/translated/company.js:1128 msgid "Delete Manufacturer Parts" msgstr "" -#: templates/js/translated/company.js:1161 +#: templates/js/translated/company.js:1162 msgid "All selected parameters will be deleted" msgstr "" -#: templates/js/translated/company.js:1175 +#: templates/js/translated/company.js:1176 msgid "Delete Parameters" msgstr "" -#: templates/js/translated/company.js:1191 -#: templates/js/translated/company.js:1479 templates/js/translated/part.js:2250 +#: templates/js/translated/company.js:1192 +#: templates/js/translated/company.js:1480 templates/js/translated/part.js:2250 msgid "Order parts" msgstr "" -#: templates/js/translated/company.js:1208 +#: templates/js/translated/company.js:1209 msgid "Delete manufacturer parts" msgstr "" -#: templates/js/translated/company.js:1240 +#: templates/js/translated/company.js:1241 msgid "Manufacturer part actions" msgstr "" -#: templates/js/translated/company.js:1259 +#: templates/js/translated/company.js:1260 msgid "No manufacturer parts found" msgstr "" -#: templates/js/translated/company.js:1279 -#: templates/js/translated/company.js:1567 templates/js/translated/part.js:801 +#: templates/js/translated/company.js:1280 +#: templates/js/translated/company.js:1568 templates/js/translated/part.js:801 #: templates/js/translated/part.js:1217 msgid "Template part" msgstr "" -#: templates/js/translated/company.js:1283 -#: templates/js/translated/company.js:1571 templates/js/translated/part.js:805 +#: templates/js/translated/company.js:1284 +#: templates/js/translated/company.js:1572 templates/js/translated/part.js:805 #: templates/js/translated/part.js:1221 msgid "Assembled part" msgstr "" -#: templates/js/translated/company.js:1403 templates/js/translated/part.js:1471 +#: templates/js/translated/company.js:1404 templates/js/translated/part.js:1471 msgid "No parameters found" msgstr "" -#: templates/js/translated/company.js:1438 templates/js/translated/part.js:1534 +#: templates/js/translated/company.js:1439 templates/js/translated/part.js:1534 msgid "Edit parameter" msgstr "" -#: templates/js/translated/company.js:1439 templates/js/translated/part.js:1535 +#: templates/js/translated/company.js:1440 templates/js/translated/part.js:1535 msgid "Delete parameter" msgstr "" -#: templates/js/translated/company.js:1456 templates/js/translated/part.js:1440 +#: templates/js/translated/company.js:1457 templates/js/translated/part.js:1440 msgid "Edit Parameter" msgstr "" -#: templates/js/translated/company.js:1465 templates/js/translated/part.js:1556 +#: templates/js/translated/company.js:1466 templates/js/translated/part.js:1556 msgid "Delete Parameter" msgstr "" -#: templates/js/translated/company.js:1496 +#: templates/js/translated/company.js:1497 msgid "Delete supplier parts" msgstr "" -#: templates/js/translated/company.js:1546 +#: templates/js/translated/company.js:1547 msgid "No supplier parts found" msgstr "" -#: templates/js/translated/company.js:1664 +#: templates/js/translated/company.js:1665 msgid "Base Units" msgstr "" -#: templates/js/translated/company.js:1694 +#: templates/js/translated/company.js:1695 msgid "Availability" msgstr "" -#: templates/js/translated/company.js:1725 +#: templates/js/translated/company.js:1726 msgid "Edit supplier part" msgstr "" -#: templates/js/translated/company.js:1726 +#: templates/js/translated/company.js:1727 msgid "Delete supplier part" msgstr "" -#: templates/js/translated/company.js:1779 +#: templates/js/translated/company.js:1780 #: templates/js/translated/pricing.js:694 msgid "Delete Price Break" msgstr "" -#: templates/js/translated/company.js:1789 +#: templates/js/translated/company.js:1790 #: templates/js/translated/pricing.js:712 msgid "Edit Price Break" msgstr "" -#: templates/js/translated/company.js:1804 +#: templates/js/translated/company.js:1805 msgid "No price break information found" msgstr "" -#: templates/js/translated/company.js:1833 +#: templates/js/translated/company.js:1834 msgid "Last updated" msgstr "" -#: templates/js/translated/company.js:1840 +#: templates/js/translated/company.js:1841 msgid "Edit price break" msgstr "" -#: templates/js/translated/company.js:1841 +#: templates/js/translated/company.js:1842 msgid "Delete price break" msgstr "" @@ -12977,19 +13342,19 @@ msgstr "" msgid "Select Columns" msgstr "" -#: templates/js/translated/helpers.js:80 +#: templates/js/translated/helpers.js:81 msgid "YES" msgstr "" -#: templates/js/translated/helpers.js:83 +#: templates/js/translated/helpers.js:84 msgid "NO" msgstr "" -#: templates/js/translated/helpers.js:96 +#: templates/js/translated/helpers.js:97 msgid "True" msgstr "" -#: templates/js/translated/helpers.js:97 +#: templates/js/translated/helpers.js:98 msgid "False" msgstr "" @@ -13131,7 +13496,7 @@ msgid "Delete Line" msgstr "" #: templates/js/translated/order.js:306 -#: templates/js/translated/purchase_order.js:2060 +#: templates/js/translated/purchase_order.js:2044 msgid "No line items found" msgstr "" @@ -13366,19 +13731,19 @@ msgid "Delete Part Parameter Template" msgstr "" #: templates/js/translated/part.js:1723 -#: templates/js/translated/purchase_order.js:1724 +#: templates/js/translated/purchase_order.js:1708 msgid "No purchase orders found" msgstr "" #: templates/js/translated/part.js:1867 -#: templates/js/translated/purchase_order.js:2223 +#: templates/js/translated/purchase_order.js:2207 #: templates/js/translated/return_order.js:754 -#: templates/js/translated/sales_order.js:1911 +#: templates/js/translated/sales_order.js:1892 msgid "This line item is overdue" msgstr "" #: templates/js/translated/part.js:1913 -#: templates/js/translated/purchase_order.js:2290 +#: templates/js/translated/purchase_order.js:2274 msgid "Receive line item" msgstr "" @@ -13419,7 +13784,7 @@ msgid "No category" msgstr "" #: templates/js/translated/part.js:2550 templates/js/translated/part.js:2680 -#: templates/js/translated/stock.js:2754 +#: templates/js/translated/stock.js:2755 msgid "Display as list" msgstr "" @@ -13431,7 +13796,7 @@ msgstr "" msgid "No subcategories found" msgstr "" -#: templates/js/translated/part.js:2700 templates/js/translated/stock.js:2774 +#: templates/js/translated/part.js:2700 templates/js/translated/stock.js:2775 msgid "Display as tree" msgstr "" @@ -13483,23 +13848,23 @@ msgstr "" msgid "Speculative" msgstr "" -#: templates/js/translated/part.js:3128 +#: templates/js/translated/part.js:3144 msgid "No scheduling information available for this part" msgstr "" -#: templates/js/translated/part.js:3134 +#: templates/js/translated/part.js:3150 msgid "Error fetching scheduling information for this part" msgstr "" -#: templates/js/translated/part.js:3230 +#: templates/js/translated/part.js:3246 msgid "Scheduled Stock Quantities" msgstr "" -#: templates/js/translated/part.js:3246 +#: templates/js/translated/part.js:3262 msgid "Maximum Quantity" msgstr "" -#: templates/js/translated/part.js:3291 +#: templates/js/translated/part.js:3307 msgid "Minimum Stock Level" msgstr "" @@ -13575,267 +13940,243 @@ msgstr "" msgid "Purchase Price History" msgstr "" -#: templates/js/translated/pricing.js:894 +#: templates/js/translated/pricing.js:892 msgid "No sales history data available" msgstr "" -#: templates/js/translated/pricing.js:916 +#: templates/js/translated/pricing.js:914 msgid "Sale Price History" msgstr "" -#: templates/js/translated/pricing.js:1005 +#: templates/js/translated/pricing.js:1003 msgid "No variant data available" msgstr "" -#: templates/js/translated/pricing.js:1045 +#: templates/js/translated/pricing.js:1043 msgid "Variant Part" msgstr "" -#: templates/js/translated/purchase_order.js:169 -msgid "Select purchase order to duplicate" -msgstr "" - -#: templates/js/translated/purchase_order.js:176 -msgid "Duplicate Line Items" -msgstr "" - -#: templates/js/translated/purchase_order.js:177 -msgid "Duplicate all line items from the selected order" -msgstr "" - -#: templates/js/translated/purchase_order.js:184 -msgid "Duplicate Extra Lines" -msgstr "" - -#: templates/js/translated/purchase_order.js:185 -msgid "Duplicate extra line items from the selected order" -msgstr "" - -#: templates/js/translated/purchase_order.js:206 +#: templates/js/translated/purchase_order.js:188 msgid "Edit Purchase Order" msgstr "" -#: templates/js/translated/purchase_order.js:223 +#: templates/js/translated/purchase_order.js:205 msgid "Duplication Options" msgstr "" -#: templates/js/translated/purchase_order.js:431 +#: templates/js/translated/purchase_order.js:414 msgid "Complete Purchase Order" msgstr "" -#: templates/js/translated/purchase_order.js:448 +#: templates/js/translated/purchase_order.js:431 #: templates/js/translated/return_order.js:210 -#: templates/js/translated/sales_order.js:552 +#: templates/js/translated/sales_order.js:511 msgid "Mark this order as complete?" msgstr "" -#: templates/js/translated/purchase_order.js:454 +#: templates/js/translated/purchase_order.js:437 msgid "All line items have been received" msgstr "" -#: templates/js/translated/purchase_order.js:459 +#: templates/js/translated/purchase_order.js:442 msgid "This order has line items which have not been marked as received." msgstr "" -#: templates/js/translated/purchase_order.js:460 +#: templates/js/translated/purchase_order.js:443 msgid "Completing this order means that the order and line items will no longer be editable." msgstr "" -#: templates/js/translated/purchase_order.js:483 +#: templates/js/translated/purchase_order.js:466 msgid "Cancel Purchase Order" msgstr "" -#: templates/js/translated/purchase_order.js:488 +#: templates/js/translated/purchase_order.js:471 msgid "Are you sure you wish to cancel this purchase order?" msgstr "" -#: templates/js/translated/purchase_order.js:494 +#: templates/js/translated/purchase_order.js:477 msgid "This purchase order can not be cancelled" msgstr "" -#: templates/js/translated/purchase_order.js:515 +#: templates/js/translated/purchase_order.js:498 #: templates/js/translated/return_order.js:164 msgid "After placing this order, line items will no longer be editable." msgstr "" -#: templates/js/translated/purchase_order.js:520 +#: templates/js/translated/purchase_order.js:503 msgid "Issue Purchase Order" msgstr "" -#: templates/js/translated/purchase_order.js:612 +#: templates/js/translated/purchase_order.js:595 msgid "At least one purchaseable part must be selected" msgstr "" -#: templates/js/translated/purchase_order.js:637 +#: templates/js/translated/purchase_order.js:620 msgid "Quantity to order" msgstr "" -#: templates/js/translated/purchase_order.js:646 +#: templates/js/translated/purchase_order.js:629 msgid "New supplier part" msgstr "" -#: templates/js/translated/purchase_order.js:664 +#: templates/js/translated/purchase_order.js:647 msgid "New purchase order" msgstr "" -#: templates/js/translated/purchase_order.js:705 +#: templates/js/translated/purchase_order.js:688 msgid "Add to purchase order" msgstr "" -#: templates/js/translated/purchase_order.js:755 +#: templates/js/translated/purchase_order.js:738 msgid "Merge" msgstr "" -#: templates/js/translated/purchase_order.js:859 +#: templates/js/translated/purchase_order.js:842 msgid "No matching supplier parts" msgstr "" -#: templates/js/translated/purchase_order.js:878 +#: templates/js/translated/purchase_order.js:861 msgid "No matching purchase orders" msgstr "" -#: templates/js/translated/purchase_order.js:1073 +#: templates/js/translated/purchase_order.js:1056 #: templates/js/translated/return_order.js:490 msgid "Select Line Items" msgstr "" -#: templates/js/translated/purchase_order.js:1074 +#: templates/js/translated/purchase_order.js:1057 #: templates/js/translated/return_order.js:491 msgid "At least one line item must be selected" msgstr "" -#: templates/js/translated/purchase_order.js:1104 +#: templates/js/translated/purchase_order.js:1087 msgid "Received Quantity" msgstr "" -#: templates/js/translated/purchase_order.js:1115 +#: templates/js/translated/purchase_order.js:1098 msgid "Quantity to receive" msgstr "" -#: templates/js/translated/purchase_order.js:1170 +#: templates/js/translated/purchase_order.js:1153 #: templates/js/translated/stock.js:1215 msgid "Specify packaging for incoming stock items" msgstr "" -#: templates/js/translated/purchase_order.js:1223 +#: templates/js/translated/purchase_order.js:1206 msgid "Stock Status" msgstr "" -#: templates/js/translated/purchase_order.js:1237 +#: templates/js/translated/purchase_order.js:1220 msgid "Add barcode" msgstr "" -#: templates/js/translated/purchase_order.js:1238 +#: templates/js/translated/purchase_order.js:1221 msgid "Remove barcode" msgstr "" -#: templates/js/translated/purchase_order.js:1241 +#: templates/js/translated/purchase_order.js:1224 msgid "Specify location" msgstr "" -#: templates/js/translated/purchase_order.js:1249 +#: templates/js/translated/purchase_order.js:1232 msgid "Add batch code" msgstr "" -#: templates/js/translated/purchase_order.js:1259 +#: templates/js/translated/purchase_order.js:1242 msgid "Specify packaging" msgstr "" -#: templates/js/translated/purchase_order.js:1270 +#: templates/js/translated/purchase_order.js:1253 msgid "Add serial numbers" msgstr "" -#: templates/js/translated/purchase_order.js:1281 +#: templates/js/translated/purchase_order.js:1264 msgid "Add note" msgstr "" -#: templates/js/translated/purchase_order.js:1338 +#: templates/js/translated/purchase_order.js:1321 msgid "Serials" msgstr "" -#: templates/js/translated/purchase_order.js:1368 +#: templates/js/translated/purchase_order.js:1351 msgid "Order Code" msgstr "" -#: templates/js/translated/purchase_order.js:1370 +#: templates/js/translated/purchase_order.js:1353 msgid "Quantity to Receive" msgstr "" -#: templates/js/translated/purchase_order.js:1395 +#: templates/js/translated/purchase_order.js:1379 #: templates/js/translated/return_order.js:559 msgid "Confirm receipt of items" msgstr "" -#: templates/js/translated/purchase_order.js:1396 +#: templates/js/translated/purchase_order.js:1380 msgid "Receive Purchase Order Items" msgstr "" -#: templates/js/translated/purchase_order.js:1464 +#: templates/js/translated/purchase_order.js:1448 msgid "Scan Item Barcode" msgstr "" -#: templates/js/translated/purchase_order.js:1465 +#: templates/js/translated/purchase_order.js:1449 msgid "Scan barcode on incoming item (must not match any existing stock items)" msgstr "" -#: templates/js/translated/purchase_order.js:1479 +#: templates/js/translated/purchase_order.js:1463 msgid "Invalid barcode data" msgstr "" -#: templates/js/translated/purchase_order.js:1751 +#: templates/js/translated/purchase_order.js:1735 #: templates/js/translated/return_order.js:285 -#: templates/js/translated/sales_order.js:810 -#: templates/js/translated/sales_order.js:1034 +#: templates/js/translated/sales_order.js:769 +#: templates/js/translated/sales_order.js:1007 msgid "Order is overdue" msgstr "" -#: templates/js/translated/purchase_order.js:1913 +#: templates/js/translated/purchase_order.js:1897 msgid "All selected Line items will be deleted" msgstr "" -#: templates/js/translated/purchase_order.js:1931 +#: templates/js/translated/purchase_order.js:1915 msgid "Delete selected Line items?" msgstr "" -#: templates/js/translated/purchase_order.js:1986 -#: templates/js/translated/sales_order.js:2106 +#: templates/js/translated/purchase_order.js:1970 +#: templates/js/translated/sales_order.js:2087 msgid "Duplicate Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2001 +#: templates/js/translated/purchase_order.js:1985 #: templates/js/translated/return_order.js:475 #: templates/js/translated/return_order.js:667 -#: templates/js/translated/sales_order.js:2119 +#: templates/js/translated/sales_order.js:2100 msgid "Edit Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2012 +#: templates/js/translated/purchase_order.js:1996 #: templates/js/translated/return_order.js:680 -#: templates/js/translated/sales_order.js:2130 +#: templates/js/translated/sales_order.js:2111 msgid "Delete Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2294 -#: templates/js/translated/sales_order.js:2060 +#: templates/js/translated/purchase_order.js:2278 +#: templates/js/translated/sales_order.js:2041 msgid "Duplicate line item" msgstr "" -#: templates/js/translated/purchase_order.js:2295 +#: templates/js/translated/purchase_order.js:2279 #: templates/js/translated/return_order.js:799 -#: templates/js/translated/sales_order.js:2061 +#: templates/js/translated/sales_order.js:2042 msgid "Edit line item" msgstr "" -#: templates/js/translated/purchase_order.js:2296 +#: templates/js/translated/purchase_order.js:2280 #: templates/js/translated/return_order.js:803 -#: templates/js/translated/sales_order.js:2067 +#: templates/js/translated/sales_order.js:2048 msgid "Delete line item" msgstr "" -#: templates/js/translated/report.js:49 -msgid "Print Report" -msgstr "" - #: templates/js/translated/report.js:68 msgid "Report print successful" msgstr "" @@ -13878,7 +14219,7 @@ msgid "No return orders found" msgstr "" #: templates/js/translated/return_order.js:299 -#: templates/js/translated/sales_order.js:824 +#: templates/js/translated/sales_order.js:783 msgid "Invalid Customer" msgstr "" @@ -13887,7 +14228,7 @@ msgid "Receive Return Order Items" msgstr "" #: templates/js/translated/return_order.js:691 -#: templates/js/translated/sales_order.js:2267 +#: templates/js/translated/sales_order.js:2248 msgid "No matching line items" msgstr "" @@ -13903,188 +14244,181 @@ msgstr "" msgid "Edit Sales Order" msgstr "" -#: templates/js/translated/sales_order.js:291 +#: templates/js/translated/sales_order.js:288 msgid "No stock items have been allocated to this shipment" msgstr "" -#: templates/js/translated/sales_order.js:296 -msgid "The following stock items will be shipped" -msgstr "" - -#: templates/js/translated/sales_order.js:336 +#: templates/js/translated/sales_order.js:294 msgid "Complete Shipment" msgstr "" -#: templates/js/translated/sales_order.js:360 +#: templates/js/translated/sales_order.js:318 msgid "Confirm Shipment" msgstr "" -#: templates/js/translated/sales_order.js:416 +#: templates/js/translated/sales_order.js:375 msgid "No pending shipments found" msgstr "" -#: templates/js/translated/sales_order.js:420 +#: templates/js/translated/sales_order.js:379 msgid "No stock items have been allocated to pending shipments" msgstr "" -#: templates/js/translated/sales_order.js:430 +#: templates/js/translated/sales_order.js:389 msgid "Complete Shipments" msgstr "" -#: templates/js/translated/sales_order.js:452 +#: templates/js/translated/sales_order.js:411 msgid "Skip" msgstr "" -#: templates/js/translated/sales_order.js:484 +#: templates/js/translated/sales_order.js:443 msgid "Ship Sales Order" msgstr "" -#: templates/js/translated/sales_order.js:500 +#: templates/js/translated/sales_order.js:459 msgid "Ship this order?" msgstr "" -#: templates/js/translated/sales_order.js:506 +#: templates/js/translated/sales_order.js:465 msgid "Order cannot be shipped as there are incomplete shipments" msgstr "" -#: templates/js/translated/sales_order.js:513 +#: templates/js/translated/sales_order.js:472 msgid "This order has line items which have not been completed." msgstr "" -#: templates/js/translated/sales_order.js:514 +#: templates/js/translated/sales_order.js:473 msgid "Shipping this order means that the order and line items will no longer be editable." msgstr "" -#: templates/js/translated/sales_order.js:572 +#: templates/js/translated/sales_order.js:531 msgid "Issue this Sales Order?" msgstr "" -#: templates/js/translated/sales_order.js:577 +#: templates/js/translated/sales_order.js:536 msgid "Issue Sales Order" msgstr "" -#: templates/js/translated/sales_order.js:596 +#: templates/js/translated/sales_order.js:555 msgid "Cancel Sales Order" msgstr "" -#: templates/js/translated/sales_order.js:601 +#: templates/js/translated/sales_order.js:560 msgid "Cancelling this order means that the order will no longer be editable." msgstr "" -#: templates/js/translated/sales_order.js:655 +#: templates/js/translated/sales_order.js:614 msgid "Create New Shipment" msgstr "" -#: templates/js/translated/sales_order.js:764 +#: templates/js/translated/sales_order.js:723 msgid "No sales orders found" msgstr "" -#: templates/js/translated/sales_order.js:944 +#: templates/js/translated/sales_order.js:907 msgid "Edit shipment" msgstr "" -#: templates/js/translated/sales_order.js:947 +#: templates/js/translated/sales_order.js:910 msgid "Complete shipment" msgstr "" -#: templates/js/translated/sales_order.js:952 +#: templates/js/translated/sales_order.js:915 msgid "Delete shipment" msgstr "" -#: templates/js/translated/sales_order.js:969 +#: templates/js/translated/sales_order.js:932 msgid "Edit Shipment" msgstr "" -#: templates/js/translated/sales_order.js:984 +#: templates/js/translated/sales_order.js:947 msgid "Delete Shipment" msgstr "" -#: templates/js/translated/sales_order.js:1017 +#: templates/js/translated/sales_order.js:989 msgid "No matching shipments found" msgstr "" -#: templates/js/translated/sales_order.js:1042 +#: templates/js/translated/sales_order.js:1015 msgid "Shipment Reference" msgstr "" -#: templates/js/translated/sales_order.js:1066 -#: templates/js/translated/sales_order.js:1565 +#: templates/js/translated/sales_order.js:1032 +#: templates/js/translated/sales_order.js:1531 msgid "Not shipped" msgstr "" -#: templates/js/translated/sales_order.js:1084 +#: templates/js/translated/sales_order.js:1050 msgid "Tracking" msgstr "" -#: templates/js/translated/sales_order.js:1088 +#: templates/js/translated/sales_order.js:1054 msgid "Invoice" msgstr "" -#: templates/js/translated/sales_order.js:1255 +#: templates/js/translated/sales_order.js:1221 msgid "Add Shipment" msgstr "" -#: templates/js/translated/sales_order.js:1306 +#: templates/js/translated/sales_order.js:1272 msgid "Confirm stock allocation" msgstr "" -#: templates/js/translated/sales_order.js:1307 +#: templates/js/translated/sales_order.js:1273 msgid "Allocate Stock Items to Sales Order" msgstr "" -#: templates/js/translated/sales_order.js:1513 +#: templates/js/translated/sales_order.js:1479 msgid "No sales order allocations found" msgstr "" -#: templates/js/translated/sales_order.js:1605 +#: templates/js/translated/sales_order.js:1571 msgid "Edit Stock Allocation" msgstr "" -#: templates/js/translated/sales_order.js:1619 +#: templates/js/translated/sales_order.js:1585 msgid "Confirm Delete Operation" msgstr "" -#: templates/js/translated/sales_order.js:1620 +#: templates/js/translated/sales_order.js:1586 msgid "Delete Stock Allocation" msgstr "" -#: templates/js/translated/sales_order.js:1659 -#: templates/js/translated/sales_order.js:1746 +#: templates/js/translated/sales_order.js:1640 +#: templates/js/translated/sales_order.js:1727 #: templates/js/translated/stock.js:1861 msgid "Shipped to customer" msgstr "" -#: templates/js/translated/sales_order.js:1667 -#: templates/js/translated/sales_order.js:1755 +#: templates/js/translated/sales_order.js:1648 +#: templates/js/translated/sales_order.js:1736 msgid "Stock location not specified" msgstr "" -#: templates/js/translated/sales_order.js:2044 -msgid "Allocate serial numbers" -msgstr "" - -#: templates/js/translated/sales_order.js:2048 -msgid "Purchase stock" -msgstr "" - -#: templates/js/translated/sales_order.js:2057 -#: templates/js/translated/sales_order.js:2245 -msgid "Calculate price" -msgstr "" - -#: templates/js/translated/sales_order.js:2071 -msgid "Cannot be deleted as items have been shipped" -msgstr "" - -#: templates/js/translated/sales_order.js:2074 -msgid "Cannot be deleted as items have been allocated" -msgstr "" - -#: templates/js/translated/sales_order.js:2145 +#: templates/js/translated/sales_order.js:2025 +#: templates/js/translated/sales_order.js:2126 msgid "Allocate Serial Numbers" msgstr "" -#: templates/js/translated/sales_order.js:2253 +#: templates/js/translated/sales_order.js:2029 +msgid "Purchase stock" +msgstr "" + +#: templates/js/translated/sales_order.js:2038 +#: templates/js/translated/sales_order.js:2226 +msgid "Calculate price" +msgstr "" + +#: templates/js/translated/sales_order.js:2052 +msgid "Cannot be deleted as items have been shipped" +msgstr "" + +#: templates/js/translated/sales_order.js:2055 +msgid "Cannot be deleted as items have been allocated" +msgstr "" + +#: templates/js/translated/sales_order.js:2234 msgid "Update Unit Price" msgstr "" @@ -14209,11 +14543,8 @@ msgid "Find Serial Number" msgstr "" #: templates/js/translated/stock.js:603 templates/js/translated/stock.js:604 -msgid "Enter serial number" -msgstr "" - #: templates/js/translated/stock.js:620 -msgid "Enter a serial number" +msgid "Enter serial number" msgstr "" #: templates/js/translated/stock.js:640 @@ -14284,7 +14615,7 @@ msgstr "" msgid "Add Stock" msgstr "" -#: templates/js/translated/stock.js:1049 users/models.py:396 +#: templates/js/translated/stock.js:1049 users/models.py:398 msgid "Add" msgstr "" @@ -14308,7 +14639,7 @@ msgstr "" msgid "Adjust packaging" msgstr "" -#: templates/js/translated/stock.js:1256 templates/js/translated/stock.js:3382 +#: templates/js/translated/stock.js:1256 templates/js/translated/stock.js:3383 msgid "Select Stock Items" msgstr "" @@ -14320,18 +14651,6 @@ msgstr "" msgid "Confirm stock adjustment" msgstr "" -#: templates/js/translated/stock.js:1448 -msgid "PASS" -msgstr "" - -#: templates/js/translated/stock.js:1450 -msgid "FAIL" -msgstr "" - -#: templates/js/translated/stock.js:1455 -msgid "NO RESULT" -msgstr "" - #: templates/js/translated/stock.js:1535 msgid "Pass test" msgstr "" @@ -14388,216 +14707,216 @@ msgstr "" msgid "No stock location set" msgstr "" -#: templates/js/translated/stock.js:1927 +#: templates/js/translated/stock.js:1928 msgid "Change stock status" msgstr "" -#: templates/js/translated/stock.js:1936 +#: templates/js/translated/stock.js:1937 msgid "Merge stock" msgstr "" -#: templates/js/translated/stock.js:1985 +#: templates/js/translated/stock.js:1986 msgid "Delete stock" msgstr "" -#: templates/js/translated/stock.js:2038 +#: templates/js/translated/stock.js:2039 msgid "stock items" msgstr "" -#: templates/js/translated/stock.js:2043 +#: templates/js/translated/stock.js:2044 msgid "Scan to location" msgstr "" -#: templates/js/translated/stock.js:2054 +#: templates/js/translated/stock.js:2055 msgid "Stock Actions" msgstr "" -#: templates/js/translated/stock.js:2098 +#: templates/js/translated/stock.js:2099 msgid "Load installed items" msgstr "" -#: templates/js/translated/stock.js:2176 +#: templates/js/translated/stock.js:2177 msgid "Stock item is in production" msgstr "" -#: templates/js/translated/stock.js:2181 +#: templates/js/translated/stock.js:2182 msgid "Stock item assigned to sales order" msgstr "" -#: templates/js/translated/stock.js:2184 +#: templates/js/translated/stock.js:2185 msgid "Stock item assigned to customer" msgstr "" -#: templates/js/translated/stock.js:2187 +#: templates/js/translated/stock.js:2188 msgid "Serialized stock item has been allocated" msgstr "" -#: templates/js/translated/stock.js:2189 +#: templates/js/translated/stock.js:2190 msgid "Stock item has been fully allocated" msgstr "" -#: templates/js/translated/stock.js:2191 +#: templates/js/translated/stock.js:2192 msgid "Stock item has been partially allocated" msgstr "" -#: templates/js/translated/stock.js:2194 +#: templates/js/translated/stock.js:2195 msgid "Stock item has been installed in another item" msgstr "" -#: templates/js/translated/stock.js:2196 +#: templates/js/translated/stock.js:2197 msgid "Stock item has been consumed by a build order" msgstr "" -#: templates/js/translated/stock.js:2200 +#: templates/js/translated/stock.js:2201 msgid "Stock item has expired" msgstr "" -#: templates/js/translated/stock.js:2202 +#: templates/js/translated/stock.js:2203 msgid "Stock item will expire soon" msgstr "" -#: templates/js/translated/stock.js:2207 +#: templates/js/translated/stock.js:2208 msgid "Stock item has been rejected" msgstr "" -#: templates/js/translated/stock.js:2209 +#: templates/js/translated/stock.js:2210 msgid "Stock item is lost" msgstr "" -#: templates/js/translated/stock.js:2211 +#: templates/js/translated/stock.js:2212 msgid "Stock item is destroyed" msgstr "" -#: templates/js/translated/stock.js:2215 +#: templates/js/translated/stock.js:2216 #: templates/js/translated/table_filters.js:357 msgid "Depleted" msgstr "" -#: templates/js/translated/stock.js:2380 +#: templates/js/translated/stock.js:2381 msgid "Supplier part not specified" msgstr "" -#: templates/js/translated/stock.js:2427 +#: templates/js/translated/stock.js:2428 msgid "Stock Value" msgstr "" -#: templates/js/translated/stock.js:2555 +#: templates/js/translated/stock.js:2556 msgid "No stock items matching query" msgstr "" -#: templates/js/translated/stock.js:2658 +#: templates/js/translated/stock.js:2659 msgid "stock locations" msgstr "" -#: templates/js/translated/stock.js:2813 +#: templates/js/translated/stock.js:2814 msgid "Load Sublocations" msgstr "" -#: templates/js/translated/stock.js:2930 +#: templates/js/translated/stock.js:2931 msgid "Details" msgstr "" -#: templates/js/translated/stock.js:2934 +#: templates/js/translated/stock.js:2935 msgid "No changes" msgstr "" -#: templates/js/translated/stock.js:2946 +#: templates/js/translated/stock.js:2947 msgid "Part information unavailable" msgstr "" -#: templates/js/translated/stock.js:2968 +#: templates/js/translated/stock.js:2969 msgid "Location no longer exists" msgstr "" -#: templates/js/translated/stock.js:2985 +#: templates/js/translated/stock.js:2986 msgid "Build order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3000 +#: templates/js/translated/stock.js:3001 msgid "Purchase order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3017 +#: templates/js/translated/stock.js:3018 msgid "Sales Order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3034 +#: templates/js/translated/stock.js:3035 msgid "Return Order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3053 +#: templates/js/translated/stock.js:3054 msgid "Customer no longer exists" msgstr "" -#: templates/js/translated/stock.js:3071 +#: templates/js/translated/stock.js:3072 msgid "Stock item no longer exists" msgstr "" -#: templates/js/translated/stock.js:3089 +#: templates/js/translated/stock.js:3090 msgid "Added" msgstr "" -#: templates/js/translated/stock.js:3097 +#: templates/js/translated/stock.js:3098 msgid "Removed" msgstr "" -#: templates/js/translated/stock.js:3169 +#: templates/js/translated/stock.js:3170 msgid "No installed items" msgstr "" -#: templates/js/translated/stock.js:3223 templates/js/translated/stock.js:3259 +#: templates/js/translated/stock.js:3224 templates/js/translated/stock.js:3260 msgid "Uninstall Stock Item" msgstr "" -#: templates/js/translated/stock.js:3280 +#: templates/js/translated/stock.js:3281 msgid "Select stock item to uninstall" msgstr "" -#: templates/js/translated/stock.js:3301 +#: templates/js/translated/stock.js:3302 msgid "Install another stock item into this item" msgstr "" -#: templates/js/translated/stock.js:3302 +#: templates/js/translated/stock.js:3303 msgid "Stock items can only be installed if they meet the following criteria" msgstr "" -#: templates/js/translated/stock.js:3304 +#: templates/js/translated/stock.js:3305 msgid "The Stock Item links to a Part which is the BOM for this Stock Item" msgstr "" -#: templates/js/translated/stock.js:3305 +#: templates/js/translated/stock.js:3306 msgid "The Stock Item is currently available in stock" msgstr "" -#: templates/js/translated/stock.js:3306 +#: templates/js/translated/stock.js:3307 msgid "The Stock Item is not already installed in another item" msgstr "" -#: templates/js/translated/stock.js:3307 +#: templates/js/translated/stock.js:3308 msgid "The Stock Item is tracked by either a batch code or serial number" msgstr "" -#: templates/js/translated/stock.js:3320 +#: templates/js/translated/stock.js:3321 msgid "Select part to install" msgstr "" -#: templates/js/translated/stock.js:3383 +#: templates/js/translated/stock.js:3384 msgid "Select one or more stock items" msgstr "" -#: templates/js/translated/stock.js:3396 +#: templates/js/translated/stock.js:3397 msgid "Selected stock items" msgstr "" -#: templates/js/translated/stock.js:3400 +#: templates/js/translated/stock.js:3401 msgid "Change Stock Status" msgstr "" -#: templates/js/translated/stock.js:3477 +#: templates/js/translated/stock.js:3478 msgid "This week" msgstr "" -#: templates/js/translated/stock.js:3485 +#: templates/js/translated/stock.js:3486 msgid "This month" msgstr "" @@ -14734,10 +15053,6 @@ msgstr "" msgid "Show items which are in production" msgstr "" -#: templates/js/translated/table_filters.js:372 -msgid "Include Variants" -msgstr "" - #: templates/js/translated/table_filters.js:373 msgid "Include stock items for variant parts" msgstr "" @@ -15012,10 +15327,6 @@ msgstr "" msgid "An error occurred while attempting to login via your social network account." msgstr "" -#: templates/socialaccount/authentication_error.html:13 -msgid "Contact your system administrator for further information." -msgstr "" - #: templates/socialaccount/login.html:13 #, python-format msgid "Connect %(provider)s" @@ -15141,27 +15452,27 @@ msgstr "" msgid "No" msgstr "" -#: users/admin.py:104 +#: users/admin.py:101 msgid "Users" msgstr "" -#: users/admin.py:105 +#: users/admin.py:102 msgid "Select which users are assigned to this group" msgstr "" -#: users/admin.py:249 +#: users/admin.py:246 msgid "The following users are members of multiple groups" msgstr "" -#: users/admin.py:283 +#: users/admin.py:280 msgid "Personal info" msgstr "" -#: users/admin.py:285 +#: users/admin.py:282 msgid "Permissions" msgstr "" -#: users/admin.py:288 +#: users/admin.py:285 msgid "Important dates" msgstr "" @@ -15205,35 +15516,35 @@ msgstr "" msgid "Revoked" msgstr "" -#: users/models.py:379 +#: users/models.py:381 msgid "Permission set" msgstr "" -#: users/models.py:388 +#: users/models.py:390 msgid "Group" msgstr "" -#: users/models.py:392 +#: users/models.py:394 msgid "View" msgstr "" -#: users/models.py:392 +#: users/models.py:394 msgid "Permission to view items" msgstr "" -#: users/models.py:396 +#: users/models.py:398 msgid "Permission to add items" msgstr "" -#: users/models.py:400 +#: users/models.py:402 msgid "Change" msgstr "" -#: users/models.py:402 +#: users/models.py:404 msgid "Permissions to edit items" msgstr "" -#: users/models.py:408 +#: users/models.py:410 msgid "Permission to delete items" msgstr "" diff --git a/src/backend/InvenTree/locale/en/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/en/LC_MESSAGES/django.po index 7821b27066..0ad7995204 100644 --- a/src/backend/InvenTree/locale/en/LC_MESSAGES/django.po +++ b/src/backend/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: 2024-08-20 08:21+0000\n" +"POT-Creation-Date: 2024-11-04 10:24+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -18,78 +18,86 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: InvenTree/api.py:269 +#: InvenTree/api.py:270 msgid "API endpoint not found" msgstr "" -#: InvenTree/api.py:502 +#: InvenTree/api.py:387 +msgid "Invalid items list provided" +msgstr "" + +#: InvenTree/api.py:396 +msgid "Invalid filters provided" +msgstr "" + +#: InvenTree/api.py:401 +msgid "No items found to delete" +msgstr "" + +#: InvenTree/api.py:515 msgid "User does not have permission to view this model" msgstr "" -#: InvenTree/conversion.py:160 +#: InvenTree/conversion.py:161 #, python-brace-format msgid "Invalid unit provided ({unit})" msgstr "" -#: InvenTree/conversion.py:177 +#: InvenTree/conversion.py:178 msgid "No value provided" msgstr "" -#: InvenTree/conversion.py:204 +#: InvenTree/conversion.py:205 #, python-brace-format msgid "Could not convert {original} to {unit}" msgstr "" -#: InvenTree/conversion.py:206 -msgid "Invalid quantity supplied" +#: InvenTree/conversion.py:207 InvenTree/conversion.py:221 +#: InvenTree/helpers.py:505 order/models.py:589 order/models.py:832 +msgid "Invalid quantity provided" msgstr "" -#: InvenTree/conversion.py:220 -#, python-brace-format -msgid "Invalid quantity supplied ({exc})" -msgstr "" - -#: InvenTree/exceptions.py:108 +#: InvenTree/exceptions.py:104 msgid "Error details can be found in the admin panel" msgstr "" -#: InvenTree/fields.py:136 +#: InvenTree/fields.py:135 msgid "Enter date" msgstr "" -#: InvenTree/fields.py:205 InvenTree/models.py:929 build/serializers.py:468 -#: build/serializers.py:546 build/templates/build/sidebar.html:29 -#: company/models.py:836 +#: InvenTree/fields.py:204 InvenTree/models.py:928 build/serializers.py:512 +#: build/serializers.py:590 build/templates/build/sidebar.html:29 +#: company/models.py:833 #: company/templates/company/manufacturer_part_sidebar.html:11 #: company/templates/company/sidebar.html:37 -#: company/templates/company/supplier_part_sidebar.html:11 order/models.py:1380 +#: company/templates/company/supplier_part_sidebar.html:11 order/models.py:1397 #: order/templates/order/po_sidebar.html:11 #: order/templates/order/return_order_sidebar.html:9 #: order/templates/order/so_sidebar.html:17 part/admin.py:59 -#: part/models.py:3297 part/templates/part/part_sidebar.html:65 +#: part/models.py:3348 part/templates/part/part_sidebar.html:65 #: report/templates/report/inventree_build_order_report.html:172 -#: stock/admin.py:230 stock/models.py:2375 stock/models.py:2563 -#: stock/serializers.py:698 stock/serializers.py:856 stock/serializers.py:982 -#: stock/serializers.py:1032 stock/serializers.py:1343 -#: stock/serializers.py:1432 stock/serializers.py:1597 +#: stock/admin.py:231 stock/models.py:2494 stock/models.py:2679 +#: stock/serializers.py:725 stock/serializers.py:887 stock/serializers.py:1013 +#: stock/serializers.py:1063 stock/serializers.py:1374 +#: stock/serializers.py:1463 stock/serializers.py:1628 #: stock/templates/stock/stock_sidebar.html:25 #: templates/js/translated/barcode.js:143 templates/js/translated/bom.js:1265 -#: templates/js/translated/company.js:1684 templates/js/translated/order.js:372 +#: templates/js/translated/company.js:1685 templates/js/translated/order.js:372 #: templates/js/translated/part.js:1087 -#: templates/js/translated/purchase_order.js:2270 +#: templates/js/translated/purchase_order.js:2254 #: templates/js/translated/return_order.js:774 -#: templates/js/translated/sales_order.js:1103 -#: templates/js/translated/sales_order.js:2018 -#: templates/js/translated/stock.js:1621 templates/js/translated/stock.js:2513 +#: templates/js/translated/sales_order.js:1069 +#: templates/js/translated/sales_order.js:1999 +#: templates/js/translated/stock.js:1621 templates/js/translated/stock.js:2514 msgid "Notes" msgstr "" -#: InvenTree/format.py:164 +#: InvenTree/format.py:162 #, python-brace-format msgid "Value '{name}' does not appear in pattern format" msgstr "" -#: InvenTree/format.py:175 +#: InvenTree/format.py:173 msgid "Provided value does not match required pattern: " msgstr "" @@ -133,397 +141,409 @@ msgstr "" msgid "The provided primary email address is not valid." msgstr "" -#: InvenTree/forms.py:274 +#: InvenTree/forms.py:273 msgid "The provided email domain is not approved." msgstr "" -#: InvenTree/forms.py:403 +#: InvenTree/forms.py:402 msgid "Registration is disabled." msgstr "" -#: InvenTree/helpers.py:491 order/models.py:567 order/models.py:810 -msgid "Invalid quantity provided" +#: InvenTree/helpers.py:509 +msgid "Cannot serialize more than 1000 items at once" msgstr "" -#: InvenTree/helpers.py:499 +#: InvenTree/helpers.py:515 msgid "Empty serial number string" msgstr "" -#: InvenTree/helpers.py:528 +#: InvenTree/helpers.py:544 msgid "Duplicate serial" msgstr "" -#: InvenTree/helpers.py:560 InvenTree/helpers.py:603 +#: InvenTree/helpers.py:576 InvenTree/helpers.py:619 InvenTree/helpers.py:637 +#: InvenTree/helpers.py:644 InvenTree/helpers.py:663 #, python-brace-format -msgid "Invalid group range: {group}" +msgid "Invalid group: {group}" msgstr "" -#: InvenTree/helpers.py:591 +#: InvenTree/helpers.py:607 #, python-brace-format msgid "Group range {group} exceeds allowed quantity ({expected_quantity})" msgstr "" -#: InvenTree/helpers.py:621 InvenTree/helpers.py:628 InvenTree/helpers.py:647 -#, python-brace-format -msgid "Invalid group sequence: {group}" -msgstr "" - -#: InvenTree/helpers.py:657 +#: InvenTree/helpers.py:673 msgid "No serial numbers found" msgstr "" -#: InvenTree/helpers.py:662 +#: InvenTree/helpers.py:678 msgid "Number of unique serial numbers ({len(serials)}) must match quantity ({expected_quantity})" msgstr "" -#: InvenTree/helpers.py:780 +#: InvenTree/helpers.py:796 msgid "Remove HTML tags from this value" msgstr "" -#: InvenTree/helpers_model.py:133 +#: InvenTree/helpers.py:881 +msgid "Data contains prohibited markdown content" +msgstr "" + +#: InvenTree/helpers_model.py:130 msgid "Connection error" msgstr "" -#: InvenTree/helpers_model.py:138 InvenTree/helpers_model.py:145 +#: InvenTree/helpers_model.py:135 InvenTree/helpers_model.py:142 msgid "Server responded with invalid status code" msgstr "" -#: InvenTree/helpers_model.py:141 +#: InvenTree/helpers_model.py:138 msgid "Exception occurred" msgstr "" -#: InvenTree/helpers_model.py:151 +#: InvenTree/helpers_model.py:148 msgid "Server responded with invalid Content-Length value" msgstr "" -#: InvenTree/helpers_model.py:154 +#: InvenTree/helpers_model.py:151 msgid "Image size is too large" msgstr "" -#: InvenTree/helpers_model.py:166 +#: InvenTree/helpers_model.py:163 msgid "Image download exceeded maximum size" msgstr "" -#: InvenTree/helpers_model.py:171 +#: InvenTree/helpers_model.py:168 msgid "Remote server returned empty response" msgstr "" -#: InvenTree/helpers_model.py:179 +#: InvenTree/helpers_model.py:176 msgid "Supplied URL is not a valid image file" msgstr "" -#: InvenTree/locales.py:18 +#: InvenTree/locales.py:20 msgid "Arabic" msgstr "" -#: InvenTree/locales.py:19 +#: InvenTree/locales.py:21 msgid "Bulgarian" msgstr "" -#: InvenTree/locales.py:20 +#: InvenTree/locales.py:22 msgid "Czech" msgstr "" -#: InvenTree/locales.py:21 +#: InvenTree/locales.py:23 msgid "Danish" msgstr "" -#: InvenTree/locales.py:22 +#: InvenTree/locales.py:24 msgid "German" msgstr "" -#: InvenTree/locales.py:23 +#: InvenTree/locales.py:25 msgid "Greek" msgstr "" -#: InvenTree/locales.py:24 +#: InvenTree/locales.py:26 msgid "English" msgstr "" -#: InvenTree/locales.py:25 +#: InvenTree/locales.py:27 msgid "Spanish" msgstr "" -#: InvenTree/locales.py:26 +#: InvenTree/locales.py:28 msgid "Spanish (Mexican)" msgstr "" -#: InvenTree/locales.py:27 +#: InvenTree/locales.py:29 msgid "Estonian" msgstr "" -#: InvenTree/locales.py:28 +#: InvenTree/locales.py:30 msgid "Farsi / Persian" msgstr "" -#: InvenTree/locales.py:29 +#: InvenTree/locales.py:31 msgid "Finnish" msgstr "" -#: InvenTree/locales.py:30 +#: InvenTree/locales.py:32 msgid "French" msgstr "" -#: InvenTree/locales.py:31 +#: InvenTree/locales.py:33 msgid "Hebrew" msgstr "" -#: InvenTree/locales.py:32 +#: InvenTree/locales.py:34 msgid "Hindi" msgstr "" -#: InvenTree/locales.py:33 +#: InvenTree/locales.py:35 msgid "Hungarian" msgstr "" -#: InvenTree/locales.py:34 +#: InvenTree/locales.py:36 msgid "Italian" msgstr "" -#: InvenTree/locales.py:35 +#: InvenTree/locales.py:37 msgid "Japanese" msgstr "" -#: InvenTree/locales.py:36 +#: InvenTree/locales.py:38 msgid "Korean" msgstr "" -#: InvenTree/locales.py:37 -msgid "Latvian" -msgstr "" - -#: InvenTree/locales.py:38 -msgid "Dutch" -msgstr "" - #: InvenTree/locales.py:39 -msgid "Norwegian" +msgid "Lithuanian" msgstr "" #: InvenTree/locales.py:40 -msgid "Polish" +msgid "Latvian" msgstr "" #: InvenTree/locales.py:41 -msgid "Portuguese" +msgid "Dutch" msgstr "" #: InvenTree/locales.py:42 -msgid "Portuguese (Brazilian)" +msgid "Norwegian" msgstr "" #: InvenTree/locales.py:43 -msgid "Romanian" +msgid "Polish" msgstr "" #: InvenTree/locales.py:44 -msgid "Russian" +msgid "Portuguese" msgstr "" #: InvenTree/locales.py:45 -msgid "Slovak" +msgid "Portuguese (Brazilian)" msgstr "" #: InvenTree/locales.py:46 -msgid "Slovenian" +msgid "Romanian" msgstr "" #: InvenTree/locales.py:47 -msgid "Serbian" +msgid "Russian" msgstr "" #: InvenTree/locales.py:48 -msgid "Swedish" +msgid "Slovak" msgstr "" #: InvenTree/locales.py:49 -msgid "Thai" +msgid "Slovenian" msgstr "" #: InvenTree/locales.py:50 -msgid "Turkish" +msgid "Serbian" msgstr "" #: InvenTree/locales.py:51 -msgid "Ukrainian" +msgid "Swedish" msgstr "" #: InvenTree/locales.py:52 -msgid "Vietnamese" +msgid "Thai" msgstr "" #: InvenTree/locales.py:53 -msgid "Chinese (Simplified)" +msgid "Turkish" msgstr "" #: InvenTree/locales.py:54 +msgid "Ukrainian" +msgstr "" + +#: InvenTree/locales.py:55 +msgid "Vietnamese" +msgstr "" + +#: InvenTree/locales.py:56 +msgid "Chinese (Simplified)" +msgstr "" + +#: InvenTree/locales.py:57 msgid "Chinese (Traditional)" msgstr "" #: InvenTree/magic_login.py:28 -#, python-brace-format -msgid "[{site_name}] Log in to the app" +msgid "Log in to the app" msgstr "" -#: InvenTree/magic_login.py:38 InvenTree/serializers.py:415 -#: company/models.py:136 company/templates/company/company_base.html:138 +#: InvenTree/magic_login.py:38 InvenTree/serializers.py:416 +#: company/models.py:133 company/templates/company/company_base.html:138 #: templates/InvenTree/settings/user.html:49 -#: templates/js/translated/company.js:677 +#: templates/js/translated/company.js:678 msgid "Email" msgstr "" -#: InvenTree/models.py:103 +#: InvenTree/models.py:105 msgid "Error running plugin validation" msgstr "" -#: InvenTree/models.py:172 +#: InvenTree/models.py:174 msgid "Metadata must be a python dict object" msgstr "" -#: InvenTree/models.py:178 +#: InvenTree/models.py:180 msgid "Plugin Metadata" msgstr "" -#: InvenTree/models.py:179 +#: InvenTree/models.py:181 msgid "JSON metadata field, for use by external plugins" msgstr "" -#: InvenTree/models.py:409 +#: InvenTree/models.py:408 msgid "Improperly formatted pattern" msgstr "" -#: InvenTree/models.py:416 +#: InvenTree/models.py:415 msgid "Unknown format key specified" msgstr "" -#: InvenTree/models.py:422 +#: InvenTree/models.py:421 msgid "Missing required format key" msgstr "" -#: InvenTree/models.py:433 +#: InvenTree/models.py:432 msgid "Reference field cannot be empty" msgstr "" -#: InvenTree/models.py:441 +#: InvenTree/models.py:440 msgid "Reference must match required pattern" msgstr "" -#: InvenTree/models.py:472 +#: InvenTree/models.py:471 msgid "Reference number is too large" msgstr "" -#: InvenTree/models.py:723 +#: InvenTree/models.py:722 msgid "Duplicate names cannot exist under the same parent" msgstr "" -#: InvenTree/models.py:740 +#: InvenTree/models.py:739 msgid "Invalid choice" msgstr "" -#: InvenTree/models.py:770 common/models.py:2702 common/models.py:3132 -#: common/serializers.py:412 company/models.py:593 machine/models.py:24 -#: part/models.py:983 part/models.py:3764 plugin/models.py:51 -#: report/models.py:149 stock/models.py:77 +#: InvenTree/models.py:769 common/models.py:2766 common/models.py:3193 +#: common/models.py:3413 common/serializers.py:460 company/models.py:590 +#: machine/models.py:24 part/models.py:1044 part/models.py:3815 +#: plugin/models.py:51 report/models.py:149 stock/models.py:83 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/notifications.html:17 #: templates/InvenTree/settings/plugin.html:83 #: templates/InvenTree/settings/plugin_settings.html:22 #: templates/InvenTree/settings/settings_staff_js.html:67 #: templates/InvenTree/settings/settings_staff_js.html:454 -#: templates/js/translated/company.js:676 -#: templates/js/translated/company.js:724 -#: templates/js/translated/company.js:913 -#: templates/js/translated/company.js:1165 -#: templates/js/translated/company.js:1413 templates/js/translated/part.js:1193 +#: templates/js/translated/company.js:677 +#: templates/js/translated/company.js:725 +#: templates/js/translated/company.js:914 +#: templates/js/translated/company.js:1166 +#: templates/js/translated/company.js:1414 templates/js/translated/part.js:1193 #: templates/js/translated/part.js:1481 templates/js/translated/part.js:1617 -#: templates/js/translated/part.js:2768 templates/js/translated/stock.js:2801 +#: templates/js/translated/part.js:2768 templates/js/translated/stock.js:2802 msgid "Name" msgstr "" -#: InvenTree/models.py:776 build/models.py:250 -#: build/templates/build/detail.html:24 common/models.py:156 -#: company/models.py:521 company/models.py:827 +#: InvenTree/models.py:775 build/models.py:251 +#: build/templates/build/detail.html:24 common/models.py:159 +#: company/models.py:518 company/models.py:824 #: company/templates/company/company_base.html:77 #: company/templates/company/manufacturer_part.html:75 -#: company/templates/company/supplier_part.html:107 order/models.py:288 -#: order/models.py:1413 part/admin.py:305 part/admin.py:411 part/models.py:1006 -#: part/models.py:3779 part/templates/part/category.html:79 -#: part/templates/part/part_base.html:170 +#: company/templates/company/supplier_part.html:108 order/models.py:295 +#: order/models.py:1430 part/admin.py:305 part/admin.py:411 part/models.py:1067 +#: part/models.py:3830 part/templates/part/category.html:79 +#: part/templates/part/part_base.html:171 #: part/templates/part/part_scheduling.html:12 report/models.py:155 -#: report/models.py:509 report/models.py:535 +#: report/models.py:517 report/models.py:543 #: report/templates/report/inventree_build_order_report.html:117 -#: stock/admin.py:54 stock/models.py:83 stock/templates/stock/location.html:122 +#: stock/admin.py:54 stock/models.py:89 stock/templates/stock/location.html:123 #: templates/InvenTree/settings/notifications.html:19 #: templates/InvenTree/settings/plugin_settings.html:27 #: templates/InvenTree/settings/settings_staff_js.html:170 #: templates/InvenTree/settings/settings_staff_js.html:459 #: templates/js/translated/bom.js:633 templates/js/translated/bom.js:963 -#: templates/js/translated/build.js:2311 templates/js/translated/company.js:519 -#: templates/js/translated/company.js:1330 -#: templates/js/translated/company.js:1641 templates/js/translated/index.js:119 +#: templates/js/translated/build.js:2314 templates/js/translated/company.js:520 +#: templates/js/translated/company.js:1331 +#: templates/js/translated/company.js:1642 templates/js/translated/index.js:119 #: templates/js/translated/order.js:323 templates/js/translated/part.js:1245 #: templates/js/translated/part.js:1490 templates/js/translated/part.js:1628 #: templates/js/translated/part.js:1965 templates/js/translated/part.js:2361 #: templates/js/translated/part.js:2803 templates/js/translated/part.js:2915 #: templates/js/translated/plugin.js:80 -#: templates/js/translated/purchase_order.js:1776 -#: templates/js/translated/purchase_order.js:1919 -#: templates/js/translated/purchase_order.js:2092 +#: templates/js/translated/purchase_order.js:1760 +#: templates/js/translated/purchase_order.js:1903 +#: templates/js/translated/purchase_order.js:2076 #: templates/js/translated/return_order.js:313 -#: templates/js/translated/sales_order.js:838 -#: templates/js/translated/sales_order.js:1848 -#: templates/js/translated/stock.js:1600 templates/js/translated/stock.js:2143 -#: templates/js/translated/stock.js:2832 templates/js/translated/stock.js:2915 +#: templates/js/translated/sales_order.js:797 +#: templates/js/translated/sales_order.js:1829 +#: templates/js/translated/stock.js:1600 templates/js/translated/stock.js:2144 +#: templates/js/translated/stock.js:2833 templates/js/translated/stock.js:2916 msgid "Description" msgstr "" -#: InvenTree/models.py:777 stock/models.py:84 +#: InvenTree/models.py:776 stock/models.py:90 msgid "Description (optional)" msgstr "" -#: InvenTree/models.py:792 templates/js/translated/part.js:2812 -#: templates/js/translated/stock.js:2841 +#: InvenTree/models.py:791 common/models.py:3546 +#: templates/js/translated/part.js:2812 templates/js/translated/stock.js:2842 msgid "Path" msgstr "" -#: InvenTree/models.py:929 +#: InvenTree/models.py:928 msgid "Markdown notes (optional)" msgstr "" -#: InvenTree/models.py:960 +#: InvenTree/models.py:959 msgid "Barcode Data" msgstr "" -#: InvenTree/models.py:961 +#: InvenTree/models.py:960 msgid "Third party barcode data" msgstr "" -#: InvenTree/models.py:967 +#: InvenTree/models.py:966 msgid "Barcode Hash" msgstr "" -#: InvenTree/models.py:968 +#: InvenTree/models.py:967 msgid "Unique hash of barcode data" msgstr "" -#: InvenTree/models.py:1035 +#: InvenTree/models.py:1034 msgid "Existing barcode found" msgstr "" -#: InvenTree/models.py:1078 +#: InvenTree/models.py:1112 +msgid "Task Failure" +msgstr "" + +#: InvenTree/models.py:1114 +#, python-brace-format +msgid "Background worker task '{instance.func}' failed after {n} attempts" +msgstr "" + +#: InvenTree/models.py:1142 msgid "Server Error" msgstr "" -#: InvenTree/models.py:1079 +#: InvenTree/models.py:1143 msgid "An error has been logged by the server." msgstr "" -#: InvenTree/serializers.py:63 part/models.py:4387 +#: InvenTree/serializers.py:63 part/models.py:4444 msgid "Must be a valid number" msgstr "" -#: InvenTree/serializers.py:100 company/models.py:186 -#: company/templates/company/company_base.html:112 part/models.py:3115 +#: InvenTree/serializers.py:100 company/models.py:183 +#: company/templates/company/company_base.html:112 part/models.py:3166 #: templates/InvenTree/settings/settings_staff_js.html:44 #: templates/currency_data.html:5 msgid "Currency" @@ -533,15 +553,15 @@ msgstr "" msgid "Select currency from available options" msgstr "" -#: InvenTree/serializers.py:407 templates/InvenTree/settings/user.html:33 +#: InvenTree/serializers.py:405 templates/InvenTree/settings/user.html:33 msgid "Username" msgstr "" -#: InvenTree/serializers.py:409 templates/InvenTree/settings/user.html:37 +#: InvenTree/serializers.py:408 templates/InvenTree/settings/user.html:37 msgid "First Name" msgstr "" -#: InvenTree/serializers.py:409 +#: InvenTree/serializers.py:408 msgid "First name of the user" msgstr "" @@ -553,30 +573,30 @@ msgstr "" msgid "Last name of the user" msgstr "" -#: InvenTree/serializers.py:415 +#: InvenTree/serializers.py:416 msgid "Email address of the user" msgstr "" -#: InvenTree/serializers.py:439 +#: InvenTree/serializers.py:441 msgid "Staff" msgstr "" -#: InvenTree/serializers.py:439 +#: InvenTree/serializers.py:441 msgid "Does this user have staff permissions" msgstr "" -#: InvenTree/serializers.py:442 +#: InvenTree/serializers.py:445 msgid "Superuser" msgstr "" -#: InvenTree/serializers.py:442 +#: InvenTree/serializers.py:445 msgid "Is this user a superuser" msgstr "" -#: InvenTree/serializers.py:445 common/models.py:2707 company/models.py:163 -#: company/models.py:801 machine/models.py:39 part/admin.py:88 -#: part/models.py:1189 plugin/models.py:66 -#: templates/js/translated/company.js:523 +#: InvenTree/serializers.py:449 common/models.py:2771 company/models.py:160 +#: company/models.py:798 machine/models.py:39 part/admin.py:88 +#: part/models.py:1250 plugin/models.py:66 +#: templates/js/translated/company.js:524 #: templates/js/translated/table_filters.js:134 #: templates/js/translated/table_filters.js:226 #: templates/js/translated/table_filters.js:513 @@ -586,230 +606,229 @@ msgstr "" msgid "Active" msgstr "" -#: InvenTree/serializers.py:445 +#: InvenTree/serializers.py:449 msgid "Is this user account active" msgstr "" -#: InvenTree/serializers.py:463 +#: InvenTree/serializers.py:467 msgid "You do not have permission to change this user role." msgstr "" -#: InvenTree/serializers.py:475 +#: InvenTree/serializers.py:503 msgid "Only superusers can create new users" msgstr "" -#: InvenTree/serializers.py:494 +#: InvenTree/serializers.py:523 msgid "Your account has been created." msgstr "" -#: InvenTree/serializers.py:496 +#: InvenTree/serializers.py:525 msgid "Please use the password reset function to login" msgstr "" -#: InvenTree/serializers.py:503 +#: InvenTree/serializers.py:531 msgid "Welcome to InvenTree" msgstr "" -#: InvenTree/serializers.py:561 +#: InvenTree/serializers.py:594 msgid "Invalid value" msgstr "" -#: InvenTree/serializers.py:581 importer/models.py:63 +#: InvenTree/serializers.py:614 importer/models.py:64 msgid "Data File" msgstr "" -#: InvenTree/serializers.py:582 +#: InvenTree/serializers.py:615 msgid "Select data file for upload" msgstr "" -#: InvenTree/serializers.py:599 -msgid "Unsupported file type" +#: InvenTree/serializers.py:632 common/files.py:63 +msgid "Unsupported file format" msgstr "" -#: InvenTree/serializers.py:605 +#: InvenTree/serializers.py:638 msgid "File is too large" msgstr "" -#: InvenTree/serializers.py:626 +#: InvenTree/serializers.py:659 msgid "No columns found in file" msgstr "" -#: InvenTree/serializers.py:629 +#: InvenTree/serializers.py:662 msgid "No data rows found in file" msgstr "" -#: InvenTree/serializers.py:742 +#: InvenTree/serializers.py:774 msgid "No data rows provided" msgstr "" -#: InvenTree/serializers.py:745 +#: InvenTree/serializers.py:777 msgid "No data columns supplied" msgstr "" -#: InvenTree/serializers.py:812 +#: InvenTree/serializers.py:843 #, python-brace-format msgid "Missing required column: '{name}'" msgstr "" -#: InvenTree/serializers.py:821 +#: InvenTree/serializers.py:852 #, python-brace-format msgid "Duplicate column: '{col}'" msgstr "" -#: InvenTree/serializers.py:861 +#: InvenTree/serializers.py:891 msgid "Remote Image" msgstr "" -#: InvenTree/serializers.py:862 +#: InvenTree/serializers.py:892 msgid "URL of remote image file" msgstr "" -#: InvenTree/serializers.py:880 +#: InvenTree/serializers.py:910 msgid "Downloading images from remote URL is not enabled" msgstr "" -#: InvenTree/status.py:66 part/serializers.py:1246 -msgid "Background worker check failed" -msgstr "" - -#: InvenTree/status.py:70 -msgid "Email backend not configured" -msgstr "" - -#: InvenTree/status.py:73 -msgid "InvenTree system health checks failed" +#: InvenTree/serializers.py:917 +msgid "Failed to download image from remote URL" msgstr "" #: InvenTree/templatetags/inventree_extras.py:184 msgid "Unknown database" msgstr "" -#: InvenTree/validators.py:32 InvenTree/validators.py:34 +#: InvenTree/validators.py:32 msgid "Invalid physical unit" msgstr "" -#: InvenTree/validators.py:40 +#: InvenTree/validators.py:38 msgid "Not a valid currency code" msgstr "" -#: InvenTree/validators.py:118 InvenTree/validators.py:134 +#: InvenTree/validators.py:115 InvenTree/validators.py:131 msgid "Overage value must not be negative" msgstr "" -#: InvenTree/validators.py:136 +#: InvenTree/validators.py:133 msgid "Overage must not exceed 100%" msgstr "" -#: InvenTree/validators.py:142 +#: InvenTree/validators.py:139 msgid "Invalid value for overage" msgstr "" -#: InvenTree/views.py:400 templates/InvenTree/settings/user.html:23 +#: InvenTree/views.py:399 templates/InvenTree/settings/user.html:23 msgid "Edit User Information" msgstr "" -#: InvenTree/views.py:412 templates/InvenTree/settings/user.html:20 +#: InvenTree/views.py:411 templates/InvenTree/settings/user.html:20 msgid "Set Password" msgstr "" -#: InvenTree/views.py:434 +#: InvenTree/views.py:433 msgid "Password fields must match" msgstr "" -#: InvenTree/views.py:442 +#: InvenTree/views.py:441 msgid "Wrong password provided" msgstr "" -#: InvenTree/views.py:650 templates/navbar.html:160 +#: InvenTree/views.py:645 templates/navbar.html:160 msgid "System Information" msgstr "" -#: InvenTree/views.py:657 templates/navbar.html:171 +#: InvenTree/views.py:652 templates/navbar.html:171 msgid "About InvenTree" msgstr "" -#: build/api.py:51 part/api.py:156 stock/api.py:343 -msgid "Cascade" -msgstr "" - -#: build/api.py:64 build/models.py:261 -#: build/templates/build/build_base.html:191 +#: build/api.py:54 build/models.py:262 +#: build/templates/build/build_base.html:192 #: build/templates/build/detail.html:87 msgid "Parent Build" msgstr "" -#: build/api.py:89 order/api.py:92 templates/js/translated/table_filters.js:101 +#: build/api.py:58 build/api.py:625 order/api.py:396 order/api.py:611 +#: order/api.py:990 order/api.py:1187 +#: templates/js/translated/table_filters.js:372 +msgid "Include Variants" +msgstr "" + +#: build/api.py:93 +msgid "Ancestor Build" +msgstr "" + +#: build/api.py:112 order/api.py:90 +#: templates/js/translated/table_filters.js:101 #: templates/js/translated/table_filters.js:549 #: templates/js/translated/table_filters.js:633 #: templates/js/translated/table_filters.js:674 msgid "Assigned to me" msgstr "" -#: build/api.py:106 build/templates/build/build_base.html:205 +#: build/api.py:129 build/templates/build/build_base.html:206 #: build/templates/build/detail.html:115 #: report/templates/report/inventree_build_order_report.html:152 #: templates/js/translated/table_filters.js:552 msgid "Issued By" msgstr "" -#: build/api.py:125 +#: build/api.py:148 msgid "Assigned To" msgstr "" -#: build/api.py:301 +#: build/api.py:310 msgid "Build must be cancelled before it can be deleted" msgstr "" -#: build/api.py:345 build/serializers.py:1288 part/models.py:4265 +#: build/api.py:354 build/serializers.py:1342 part/models.py:4322 #: templates/js/translated/bom.js:997 templates/js/translated/bom.js:1037 -#: templates/js/translated/build.js:2702 +#: templates/js/translated/build.js:2711 #: templates/js/translated/table_filters.js:197 #: templates/js/translated/table_filters.js:586 msgid "Consumable" msgstr "" -#: build/api.py:346 build/serializers.py:1289 part/models.py:4259 +#: build/api.py:355 build/serializers.py:1343 part/models.py:4316 #: part/templates/part/upload_bom.html:58 templates/js/translated/bom.js:1001 -#: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2693 +#: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2702 #: templates/js/translated/table_filters.js:193 #: templates/js/translated/table_filters.js:222 #: templates/js/translated/table_filters.js:590 msgid "Optional" msgstr "" -#: build/api.py:347 common/models.py:1489 part/admin.py:91 part/admin.py:428 -#: part/models.py:1154 part/serializers.py:1575 +#: build/api.py:356 common/models.py:1558 part/admin.py:91 part/admin.py:428 +#: part/models.py:1215 part/serializers.py:1633 #: templates/js/translated/bom.js:1639 #: templates/js/translated/table_filters.js:337 #: templates/js/translated/table_filters.js:729 msgid "Assembly" msgstr "" -#: build/api.py:348 templates/js/translated/table_filters.js:415 +#: build/api.py:357 templates/js/translated/table_filters.js:415 #: templates/js/translated/table_filters.js:582 msgid "Tracked" msgstr "" -#: build/api.py:349 build/serializers.py:1290 part/models.py:1172 +#: build/api.py:358 build/serializers.py:1344 part/models.py:1233 #: templates/js/translated/table_filters.js:146 #: templates/js/translated/table_filters.js:779 msgid "Testable" msgstr "" -#: build/api.py:351 part/admin.py:144 templates/js/translated/build.js:1917 -#: templates/js/translated/build.js:2820 -#: templates/js/translated/sales_order.js:1965 +#: build/api.py:360 order/api.py:779 part/admin.py:144 +#: templates/js/translated/build.js:1920 templates/js/translated/build.js:2838 +#: templates/js/translated/sales_order.js:1946 #: templates/js/translated/table_filters.js:574 msgid "Allocated" msgstr "" -#: build/api.py:359 company/models.py:891 company/serializers.py:395 -#: company/templates/company/supplier_part.html:114 +#: build/api.py:368 company/models.py:888 company/serializers.py:399 +#: company/templates/company/supplier_part.html:115 #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:17 -#: templates/js/translated/bom.js:1162 templates/js/translated/build.js:2752 +#: templates/js/translated/bom.js:1162 templates/js/translated/build.js:2770 #: templates/js/translated/index.js:123 -#: templates/js/translated/model_renderers.js:235 +#: templates/js/translated/model_renderers.js:238 #: templates/js/translated/part.js:695 templates/js/translated/part.js:697 #: templates/js/translated/part.js:702 #: templates/js/translated/table_filters.js:347 @@ -817,16 +836,68 @@ msgstr "" msgid "Available" msgstr "" -#: build/models.py:86 build/templates/build/build_base.html:9 -#: build/templates/build/build_base.html:27 +#: build/api.py:640 build/models.py:268 build/serializers.py:1330 +#: build/templates/build/build_base.html:106 +#: build/templates/build/detail.html:29 company/models.py:1043 order/api.py:775 +#: order/api.py:1003 order/models.py:1519 order/models.py:1674 +#: order/models.py:1675 part/api.py:1495 part/api.py:1802 part/models.py:419 +#: part/models.py:3177 part/models.py:3321 part/models.py:3469 +#: part/models.py:3490 part/models.py:3512 part/models.py:3648 +#: part/models.py:3995 part/models.py:4158 part/models.py:4288 +#: part/models.py:4654 part/serializers.py:1245 part/serializers.py:1898 +#: part/templates/part/part_app_base.html:8 +#: part/templates/part/part_pricing.html:12 +#: part/templates/part/upload_bom.html:52 +#: report/templates/report/inventree_bill_of_materials_report.html:110 +#: report/templates/report/inventree_bill_of_materials_report.html:137 +#: report/templates/report/inventree_build_order_report.html:109 +#: report/templates/report/inventree_purchase_order_report.html:27 +#: report/templates/report/inventree_return_order_report.html:24 +#: report/templates/report/inventree_sales_order_report.html:27 +#: report/templates/report/inventree_sales_order_shipment_report.html:28 +#: report/templates/report/inventree_stock_location_report.html:102 +#: stock/serializers.py:112 stock/serializers.py:160 stock/serializers.py:456 +#: stock/serializers.py:947 templates/InvenTree/search.html:82 +#: templates/email/build_order_completed.html:17 +#: templates/email/build_order_required_stock.html:17 +#: templates/email/low_stock_notification.html:15 +#: templates/email/overdue_build_order.html:16 +#: templates/js/translated/barcode.js:577 templates/js/translated/bom.js:632 +#: templates/js/translated/bom.js:769 templates/js/translated/bom.js:905 +#: templates/js/translated/build.js:1005 templates/js/translated/build.js:1488 +#: templates/js/translated/build.js:1919 templates/js/translated/build.js:2337 +#: templates/js/translated/build.js:2514 templates/js/translated/company.js:349 +#: templates/js/translated/company.js:1117 +#: templates/js/translated/company.js:1272 +#: templates/js/translated/company.js:1560 templates/js/translated/index.js:109 +#: templates/js/translated/part.js:1950 templates/js/translated/part.js:2022 +#: templates/js/translated/part.js:2330 templates/js/translated/pricing.js:369 +#: templates/js/translated/purchase_order.js:734 +#: templates/js/translated/purchase_order.js:1350 +#: templates/js/translated/purchase_order.js:1902 +#: templates/js/translated/purchase_order.js:2061 +#: templates/js/translated/return_order.js:538 +#: templates/js/translated/return_order.js:708 +#: templates/js/translated/sales_order.js:1199 +#: templates/js/translated/sales_order.js:1608 +#: templates/js/translated/sales_order.js:1813 +#: templates/js/translated/stock.js:682 templates/js/translated/stock.js:848 +#: templates/js/translated/stock.js:1065 templates/js/translated/stock.js:2083 +#: templates/js/translated/stock.js:2942 templates/js/translated/stock.js:3175 +#: templates/js/translated/stock.js:3320 +msgid "Part" +msgstr "" + +#: build/api.py:662 build/models.py:88 build/templates/build/build_base.html:10 +#: build/templates/build/build_base.html:28 #: report/templates/report/inventree_build_order_report.html:105 -#: stock/serializers.py:84 templates/email/build_order_completed.html:16 +#: stock/serializers.py:85 templates/email/build_order_completed.html:16 #: templates/email/overdue_build_order.html:15 -#: templates/js/translated/build.js:1145 templates/js/translated/stock.js:2976 +#: templates/js/translated/build.js:1148 templates/js/translated/stock.js:2977 msgid "Build Order" msgstr "" -#: build/models.py:87 build/templates/build/build_base.html:13 +#: build/models.py:89 build/templates/build/build_base.html:14 #: build/templates/build/index.html:8 build/templates/build/index.html:12 #: order/templates/order/sales_order_detail.html:111 #: order/templates/order/so_sidebar.html:13 @@ -837,268 +908,216 @@ msgstr "" msgid "Build Orders" msgstr "" -#: build/models.py:135 +#: build/models.py:136 msgid "Assembly BOM has not been validated" msgstr "" -#: build/models.py:142 +#: build/models.py:143 msgid "Build order cannot be created for an inactive part" msgstr "" -#: build/models.py:149 +#: build/models.py:150 msgid "Build order cannot be created for an unlocked part" msgstr "" -#: build/models.py:163 +#: build/models.py:164 msgid "Invalid choice for parent build" msgstr "" -#: build/models.py:174 order/models.py:239 +#: build/models.py:175 order/models.py:236 msgid "Responsible user or group must be specified" msgstr "" -#: build/models.py:180 +#: build/models.py:181 msgid "Build order part cannot be changed" msgstr "" -#: build/models.py:241 +#: build/models.py:242 msgid "Build Order Reference" msgstr "" -#: build/models.py:242 build/serializers.py:1287 order/models.py:467 -#: order/models.py:978 order/models.py:1373 order/models.py:2135 -#: part/admin.py:414 part/models.py:4280 part/templates/part/upload_bom.html:54 +#: build/models.py:243 build/serializers.py:1341 order/models.py:479 +#: order/models.py:1005 order/models.py:1390 order/models.py:2174 +#: part/admin.py:414 part/models.py:4337 part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_bill_of_materials_report.html:139 #: report/templates/report/inventree_purchase_order_report.html:28 #: report/templates/report/inventree_return_order_report.html:26 #: report/templates/report/inventree_sales_order_report.html:28 #: templates/js/translated/bom.js:770 templates/js/translated/bom.js:973 -#: templates/js/translated/build.js:1011 templates/js/translated/build.js:2685 +#: templates/js/translated/build.js:1014 templates/js/translated/build.js:2694 #: templates/js/translated/order.js:316 templates/js/translated/pricing.js:386 -#: templates/js/translated/purchase_order.js:2135 +#: templates/js/translated/purchase_order.js:2119 #: templates/js/translated/return_order.js:727 -#: templates/js/translated/sales_order.js:1854 +#: templates/js/translated/sales_order.js:1835 msgid "Reference" msgstr "" -#: build/models.py:253 +#: build/models.py:254 msgid "Brief description of the build (optional)" msgstr "" -#: build/models.py:262 +#: build/models.py:263 msgid "BuildOrder to which this build is allocated" msgstr "" -#: build/models.py:267 build/serializers.py:1278 -#: build/templates/build/build_base.html:105 -#: build/templates/build/detail.html:29 company/models.py:1046 order/api.py:767 -#: order/models.py:1503 order/models.py:1658 order/models.py:1659 -#: part/api.py:1509 part/api.py:1813 part/models.py:424 part/models.py:3126 -#: part/models.py:3270 part/models.py:3418 part/models.py:3439 -#: part/models.py:3461 part/models.py:3597 part/models.py:3937 -#: part/models.py:4100 part/models.py:4231 part/models.py:4592 -#: part/serializers.py:1192 part/serializers.py:1836 -#: part/templates/part/part_app_base.html:8 -#: part/templates/part/part_pricing.html:12 -#: part/templates/part/upload_bom.html:52 -#: report/templates/report/inventree_bill_of_materials_report.html:110 -#: report/templates/report/inventree_bill_of_materials_report.html:137 -#: report/templates/report/inventree_build_order_report.html:109 -#: report/templates/report/inventree_purchase_order_report.html:27 -#: report/templates/report/inventree_return_order_report.html:24 -#: report/templates/report/inventree_sales_order_report.html:27 -#: report/templates/report/inventree_stock_location_report.html:102 -#: stock/serializers.py:111 stock/serializers.py:159 stock/serializers.py:446 -#: stock/serializers.py:916 templates/InvenTree/search.html:82 -#: templates/email/build_order_completed.html:17 -#: templates/email/build_order_required_stock.html:17 -#: templates/email/low_stock_notification.html:15 -#: templates/email/overdue_build_order.html:16 -#: templates/js/translated/barcode.js:577 templates/js/translated/bom.js:632 -#: templates/js/translated/bom.js:769 templates/js/translated/bom.js:905 -#: templates/js/translated/build.js:1002 templates/js/translated/build.js:1485 -#: templates/js/translated/build.js:1916 templates/js/translated/build.js:2334 -#: templates/js/translated/build.js:2507 templates/js/translated/company.js:348 -#: templates/js/translated/company.js:1116 -#: templates/js/translated/company.js:1271 -#: templates/js/translated/company.js:1559 templates/js/translated/index.js:109 -#: templates/js/translated/part.js:1950 templates/js/translated/part.js:2022 -#: templates/js/translated/part.js:2330 templates/js/translated/pricing.js:369 -#: templates/js/translated/purchase_order.js:751 -#: templates/js/translated/purchase_order.js:1367 -#: templates/js/translated/purchase_order.js:1918 -#: templates/js/translated/purchase_order.js:2077 -#: templates/js/translated/return_order.js:538 -#: templates/js/translated/return_order.js:708 -#: templates/js/translated/sales_order.js:300 -#: templates/js/translated/sales_order.js:1233 -#: templates/js/translated/sales_order.js:1634 -#: templates/js/translated/sales_order.js:1832 -#: templates/js/translated/stock.js:682 templates/js/translated/stock.js:848 -#: templates/js/translated/stock.js:1065 templates/js/translated/stock.js:2082 -#: templates/js/translated/stock.js:2941 templates/js/translated/stock.js:3174 -#: templates/js/translated/stock.js:3319 -msgid "Part" -msgstr "" - -#: build/models.py:275 +#: build/models.py:274 msgid "Select part to build" msgstr "" -#: build/models.py:280 +#: build/models.py:279 msgid "Sales Order Reference" msgstr "" -#: build/models.py:284 +#: build/models.py:283 msgid "SalesOrder to which this build is allocated" msgstr "" -#: build/models.py:289 build/serializers.py:1048 -#: templates/js/translated/build.js:1904 -#: templates/js/translated/sales_order.js:1221 +#: build/models.py:288 build/serializers.py:1092 +#: templates/js/translated/build.js:1907 +#: templates/js/translated/sales_order.js:1187 msgid "Source Location" msgstr "" -#: build/models.py:293 +#: build/models.py:292 msgid "Select location to take stock from for this build (leave blank to take from any stock location)" msgstr "" -#: build/models.py:298 +#: build/models.py:297 msgid "Destination Location" msgstr "" -#: build/models.py:302 +#: build/models.py:301 msgid "Select location where the completed items will be stored" msgstr "" -#: build/models.py:306 +#: build/models.py:305 msgid "Build Quantity" msgstr "" -#: build/models.py:309 +#: build/models.py:308 msgid "Number of stock items to build" msgstr "" -#: build/models.py:313 +#: build/models.py:312 msgid "Completed items" msgstr "" -#: build/models.py:315 +#: build/models.py:314 msgid "Number of stock items which have been completed" msgstr "" -#: build/models.py:319 +#: build/models.py:318 msgid "Build Status" msgstr "" -#: build/models.py:323 +#: build/models.py:322 msgid "Build status code" msgstr "" -#: build/models.py:332 build/serializers.py:302 build/serializers.py:1198 -#: order/serializers.py:670 stock/models.py:859 stock/serializers.py:76 -#: stock/serializers.py:1562 templates/js/translated/purchase_order.js:1129 +#: build/models.py:331 build/serializers.py:349 build/serializers.py:1243 +#: order/serializers.py:755 stock/models.py:936 stock/serializers.py:77 +#: stock/serializers.py:1593 templates/js/translated/purchase_order.js:1112 #: templates/js/translated/stock.js:1199 msgid "Batch Code" msgstr "" -#: build/models.py:336 build/serializers.py:303 +#: build/models.py:335 build/serializers.py:350 msgid "Batch code for this build output" msgstr "" -#: build/models.py:339 order/models.py:315 order/serializers.py:126 -#: part/models.py:1229 part/templates/part/part_base.html:319 +#: build/models.py:338 order/models.py:322 order/serializers.py:157 +#: part/models.py:1290 part/templates/part/part_base.html:327 #: templates/js/translated/return_order.js:338 -#: templates/js/translated/sales_order.js:863 +#: templates/js/translated/sales_order.js:822 msgid "Creation Date" msgstr "" -#: build/models.py:343 +#: build/models.py:342 msgid "Target completion date" msgstr "" -#: build/models.py:344 +#: build/models.py:343 msgid "Target date for build completion. Build will be overdue after this date." msgstr "" -#: build/models.py:347 order/models.py:526 order/models.py:2180 -#: templates/js/translated/build.js:2419 +#: build/models.py:346 order/models.py:538 order/models.py:2219 +#: templates/js/translated/build.js:2422 msgid "Completion Date" msgstr "" -#: build/models.py:353 +#: build/models.py:352 msgid "completed by" msgstr "" -#: build/models.py:361 templates/js/translated/build.js:2379 +#: build/models.py:360 templates/js/translated/build.js:2382 msgid "Issued by" msgstr "" -#: build/models.py:362 +#: build/models.py:361 msgid "User who issued this build order" msgstr "" -#: build/models.py:370 build/templates/build/build_base.html:212 -#: build/templates/build/detail.html:122 common/models.py:165 order/api.py:142 -#: order/models.py:333 order/templates/order/order_base.html:222 -#: order/templates/order/return_order_base.html:191 -#: order/templates/order/sales_order_base.html:235 part/models.py:1246 -#: part/templates/part/part_base.html:399 +#: build/models.py:369 build/templates/build/build_base.html:213 +#: build/templates/build/detail.html:122 common/models.py:168 order/api.py:140 +#: order/models.py:340 order/templates/order/order_base.html:231 +#: order/templates/order/return_order_base.html:192 +#: order/templates/order/sales_order_base.html:236 part/models.py:1307 +#: part/templates/part/part_base.html:407 #: report/templates/report/inventree_build_order_report.html:158 #: templates/InvenTree/settings/settings_staff_js.html:150 -#: templates/js/translated/build.js:2391 -#: templates/js/translated/purchase_order.js:1833 +#: templates/js/translated/build.js:2394 +#: templates/js/translated/purchase_order.js:1817 #: templates/js/translated/return_order.js:358 #: templates/js/translated/table_filters.js:551 msgid "Responsible" msgstr "" -#: build/models.py:371 +#: build/models.py:370 msgid "User or group responsible for this build order" msgstr "" -#: build/models.py:376 build/templates/build/detail.html:108 +#: build/models.py:375 build/templates/build/detail.html:108 #: company/templates/company/manufacturer_part.html:107 -#: company/templates/company/supplier_part.html:194 -#: order/templates/order/order_base.html:172 -#: order/templates/order/return_order_base.html:148 -#: order/templates/order/sales_order_base.html:187 -#: part/templates/part/part_base.html:392 stock/models.py:855 -#: stock/templates/stock/item_base.html:200 -#: templates/js/translated/company.js:1019 +#: company/templates/company/supplier_part.html:195 +#: order/templates/order/order_base.html:181 +#: order/templates/order/return_order_base.html:149 +#: order/templates/order/sales_order_base.html:188 +#: part/templates/part/part_base.html:400 stock/models.py:932 +#: stock/templates/stock/item_base.html:197 +#: templates/js/translated/company.js:1020 msgid "External Link" msgstr "" -#: build/models.py:377 common/models.py:3273 part/models.py:1058 -#: stock/models.py:855 +#: build/models.py:376 common/models.py:3334 part/models.py:1119 +#: stock/models.py:932 msgid "Link to external URL" msgstr "" -#: build/models.py:381 +#: build/models.py:380 msgid "Build Priority" msgstr "" -#: build/models.py:384 +#: build/models.py:383 msgid "Priority of this build order" msgstr "" -#: build/models.py:391 common/models.py:135 common/models.py:149 -#: order/admin.py:18 order/api.py:128 order/models.py:297 +#: build/models.py:390 common/models.py:138 common/models.py:152 +#: order/admin.py:18 order/api.py:126 order/models.py:304 #: templates/InvenTree/settings/settings_staff_js.html:146 -#: templates/js/translated/build.js:2316 -#: templates/js/translated/purchase_order.js:1780 +#: templates/js/translated/build.js:2319 +#: templates/js/translated/purchase_order.js:1764 #: templates/js/translated/return_order.js:317 -#: templates/js/translated/sales_order.js:842 +#: templates/js/translated/sales_order.js:801 #: templates/js/translated/table_filters.js:47 #: templates/project_code_data.html:6 msgid "Project Code" msgstr "" -#: build/models.py:392 +#: build/models.py:391 msgid "Project code for this build order" msgstr "" -#: build/models.py:651 build/models.py:778 +#: build/models.py:651 build/models.py:779 msgid "Failed to offload task to complete build allocations" msgstr "" @@ -1111,610 +1130,619 @@ msgstr "" msgid "A build order has been completed" msgstr "" -#: build/models.py:967 build/models.py:1055 +#: build/models.py:858 build/serializers.py:393 +msgid "Serial numbers must be provided for trackable parts" +msgstr "" + +#: build/models.py:969 build/models.py:1058 msgid "No build output specified" msgstr "" -#: build/models.py:970 +#: build/models.py:972 msgid "Build output is already completed" msgstr "" -#: build/models.py:973 +#: build/models.py:975 msgid "Build output does not match Build Order" msgstr "" -#: build/models.py:1059 build/serializers.py:235 build/serializers.py:284 -#: build/serializers.py:915 order/models.py:564 order/serializers.py:499 -#: order/serializers.py:665 part/serializers.py:1569 part/serializers.py:1999 -#: stock/models.py:700 stock/models.py:1520 stock/serializers.py:669 +#: build/models.py:1062 build/serializers.py:282 build/serializers.py:331 +#: build/serializers.py:959 order/models.py:586 order/serializers.py:584 +#: order/serializers.py:750 part/serializers.py:1627 part/serializers.py:2060 +#: stock/models.py:777 stock/models.py:1609 stock/serializers.py:696 msgid "Quantity must be greater than zero" msgstr "" -#: build/models.py:1064 build/serializers.py:240 +#: build/models.py:1067 build/serializers.py:287 msgid "Quantity cannot be greater than the output quantity" msgstr "" -#: build/models.py:1124 build/serializers.py:563 +#: build/models.py:1127 build/serializers.py:607 #, python-brace-format msgid "Build output {serial} has not passed all required tests" msgstr "" -#: build/models.py:1465 +#: build/models.py:1482 msgid "Build Order Line Item" msgstr "" -#: build/models.py:1490 +#: build/models.py:1507 msgid "Build object" msgstr "" -#: build/models.py:1504 build/models.py:1760 build/serializers.py:222 -#: build/serializers.py:269 build/serializers.py:1295 -#: build/templates/build/build_base.html:110 -#: build/templates/build/detail.html:34 common/models.py:2579 -#: order/models.py:1356 order/models.py:2041 order/serializers.py:1460 +#: build/models.py:1521 build/models.py:1787 build/serializers.py:269 +#: build/serializers.py:316 build/serializers.py:1349 +#: build/templates/build/build_base.html:111 +#: build/templates/build/detail.html:34 common/models.py:2643 +#: order/models.py:1373 order/models.py:2074 order/serializers.py:1586 #: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:413 -#: part/forms.py:48 part/models.py:3284 part/models.py:4253 -#: part/templates/part/part_pricing.html:16 +#: part/forms.py:48 part/models.py:3335 part/models.py:4310 +#: part/serializers.py:265 part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_bill_of_materials_report.html:138 #: report/templates/report/inventree_build_order_report.html:113 #: report/templates/report/inventree_purchase_order_report.html:29 #: report/templates/report/inventree_sales_order_report.html:29 +#: report/templates/report/inventree_sales_order_shipment_report.html:47 +#: report/templates/report/inventree_sales_order_shipment_report.html:49 #: report/templates/report/inventree_stock_location_report.html:104 #: report/templates/report/inventree_test_report.html:90 -#: report/templates/report/inventree_test_report.html:169 stock/admin.py:159 -#: stock/serializers.py:127 stock/serializers.py:167 stock/serializers.py:660 -#: stock/templates/stock/item_base.html:287 -#: stock/templates/stock/item_base.html:295 -#: stock/templates/stock/item_base.html:342 +#: report/templates/report/inventree_test_report.html:169 stock/admin.py:160 +#: stock/serializers.py:128 stock/serializers.py:168 stock/serializers.py:687 +#: stock/templates/stock/item_base.html:284 +#: stock/templates/stock/item_base.html:292 +#: stock/templates/stock/item_base.html:339 #: templates/email/build_order_completed.html:18 #: templates/js/translated/barcode.js:579 templates/js/translated/bom.js:771 -#: templates/js/translated/bom.js:981 templates/js/translated/build.js:522 -#: templates/js/translated/build.js:737 templates/js/translated/build.js:1542 -#: templates/js/translated/build.js:1919 templates/js/translated/build.js:2529 -#: templates/js/translated/company.js:1818 -#: templates/js/translated/model_renderers.js:237 +#: templates/js/translated/bom.js:981 templates/js/translated/build.js:525 +#: templates/js/translated/build.js:740 templates/js/translated/build.js:1545 +#: templates/js/translated/build.js:1922 templates/js/translated/build.js:2536 +#: templates/js/translated/company.js:1819 +#: templates/js/translated/model_renderers.js:240 #: templates/js/translated/order.js:329 templates/js/translated/part.js:968 -#: templates/js/translated/part.js:1818 templates/js/translated/part.js:3360 +#: templates/js/translated/part.js:1818 templates/js/translated/part.js:3376 #: templates/js/translated/pricing.js:381 #: templates/js/translated/pricing.js:474 #: templates/js/translated/pricing.js:522 #: templates/js/translated/pricing.js:616 -#: templates/js/translated/purchase_order.js:754 -#: templates/js/translated/purchase_order.js:1922 -#: templates/js/translated/purchase_order.js:2141 -#: templates/js/translated/sales_order.js:317 -#: templates/js/translated/sales_order.js:1235 -#: templates/js/translated/sales_order.js:1554 -#: templates/js/translated/sales_order.js:1644 -#: templates/js/translated/sales_order.js:1734 -#: templates/js/translated/sales_order.js:1860 +#: templates/js/translated/purchase_order.js:737 +#: templates/js/translated/purchase_order.js:1906 +#: templates/js/translated/purchase_order.js:2125 +#: templates/js/translated/sales_order.js:1201 +#: templates/js/translated/sales_order.js:1520 +#: templates/js/translated/sales_order.js:1625 +#: templates/js/translated/sales_order.js:1715 +#: templates/js/translated/sales_order.js:1841 #: templates/js/translated/stock.js:570 templates/js/translated/stock.js:708 -#: templates/js/translated/stock.js:879 templates/js/translated/stock.js:3105 -#: templates/js/translated/stock.js:3188 +#: templates/js/translated/stock.js:879 templates/js/translated/stock.js:3106 +#: templates/js/translated/stock.js:3189 msgid "Quantity" msgstr "" -#: build/models.py:1505 +#: build/models.py:1522 msgid "Required quantity for build order" msgstr "" -#: build/models.py:1585 +#: build/models.py:1602 msgid "Build item must specify a build output, as master part is marked as trackable" msgstr "" -#: build/models.py:1594 +#: build/models.py:1611 #, python-brace-format msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgstr "" -#: build/models.py:1604 order/models.py:1992 +#: build/models.py:1628 order/models.py:2025 msgid "Stock item is over-allocated" msgstr "" -#: build/models.py:1610 order/models.py:1995 +#: build/models.py:1634 order/models.py:2028 msgid "Allocation quantity must be greater than zero" msgstr "" -#: build/models.py:1616 +#: build/models.py:1640 msgid "Quantity must be 1 for serialized stock" msgstr "" -#: build/models.py:1675 +#: build/models.py:1699 msgid "Selected stock item does not match BOM line" msgstr "" -#: build/models.py:1747 build/serializers.py:895 order/serializers.py:1297 -#: order/serializers.py:1318 stock/models.py:376 stock/serializers.py:93 -#: stock/serializers.py:763 stock/serializers.py:1281 stock/serializers.py:1393 -#: stock/templates/stock/item_base.html:10 -#: stock/templates/stock/item_base.html:23 -#: stock/templates/stock/item_base.html:194 -#: templates/js/translated/build.js:1918 -#: templates/js/translated/sales_order.js:301 -#: templates/js/translated/sales_order.js:1234 -#: templates/js/translated/sales_order.js:1535 -#: templates/js/translated/sales_order.js:1540 -#: templates/js/translated/sales_order.js:1641 -#: templates/js/translated/sales_order.js:1728 +#: build/models.py:1774 build/serializers.py:939 order/serializers.py:1423 +#: order/serializers.py:1444 +#: report/templates/report/inventree_sales_order_shipment_report.html:29 +#: stock/models.py:382 stock/serializers.py:94 stock/serializers.py:794 +#: stock/serializers.py:1312 stock/serializers.py:1424 +#: stock/templates/stock/item_base.html:11 +#: stock/templates/stock/item_base.html:24 +#: stock/templates/stock/item_base.html:191 +#: templates/js/translated/build.js:1921 +#: templates/js/translated/sales_order.js:1200 +#: templates/js/translated/sales_order.js:1501 +#: templates/js/translated/sales_order.js:1506 +#: templates/js/translated/sales_order.js:1622 +#: templates/js/translated/sales_order.js:1709 #: templates/js/translated/stock.js:683 templates/js/translated/stock.js:849 -#: templates/js/translated/stock.js:3061 +#: templates/js/translated/stock.js:3062 msgid "Stock Item" msgstr "" -#: build/models.py:1748 +#: build/models.py:1775 msgid "Source stock item" msgstr "" -#: build/models.py:1761 +#: build/models.py:1788 msgid "Stock quantity to allocate to build" msgstr "" -#: build/models.py:1769 +#: build/models.py:1796 msgid "Install into" msgstr "" -#: build/models.py:1770 +#: build/models.py:1797 msgid "Destination stock item" msgstr "" -#: build/serializers.py:91 +#: build/serializers.py:108 msgid "Build Level" msgstr "" -#: build/serializers.py:99 build/serializers.py:1190 build/serializers.py:1279 -#: part/admin.py:41 part/admin.py:408 part/models.py:4102 part/stocktake.py:219 -#: stock/admin.py:156 +#: build/serializers.py:116 build/serializers.py:1235 build/serializers.py:1331 +#: part/admin.py:41 part/admin.py:408 part/models.py:4160 part/stocktake.py:219 +#: stock/admin.py:157 msgid "Part Name" msgstr "" -#: build/serializers.py:111 +#: build/serializers.py:128 msgid "Project Code Label" msgstr "" -#: build/serializers.py:172 build/serializers.py:924 -#: templates/js/translated/build.js:1042 templates/js/translated/build.js:1495 +#: build/serializers.py:134 +msgid "Create Child Builds" +msgstr "" + +#: build/serializers.py:135 +msgid "Automatically generate child build orders" +msgstr "" + +#: build/serializers.py:219 build/serializers.py:968 +#: templates/js/translated/build.js:1045 templates/js/translated/build.js:1498 msgid "Build Output" msgstr "" -#: build/serializers.py:184 +#: build/serializers.py:231 msgid "Build output does not match the parent build" msgstr "" -#: build/serializers.py:188 +#: build/serializers.py:235 msgid "Output part does not match BuildOrder part" msgstr "" -#: build/serializers.py:192 +#: build/serializers.py:239 msgid "This build output has already been completed" msgstr "" -#: build/serializers.py:203 +#: build/serializers.py:250 msgid "This build output is not fully allocated" msgstr "" -#: build/serializers.py:223 build/serializers.py:270 +#: build/serializers.py:270 build/serializers.py:317 msgid "Enter quantity for build output" msgstr "" -#: build/serializers.py:291 +#: build/serializers.py:338 msgid "Integer quantity required for trackable parts" msgstr "" -#: build/serializers.py:294 +#: build/serializers.py:341 msgid "Integer quantity required, as the bill of materials contains trackable parts" msgstr "" -#: build/serializers.py:309 order/serializers.py:678 order/serializers.py:1464 -#: stock/serializers.py:680 templates/js/translated/purchase_order.js:1154 +#: build/serializers.py:356 order/serializers.py:763 order/serializers.py:1590 +#: stock/serializers.py:707 templates/js/translated/purchase_order.js:1137 #: templates/js/translated/stock.js:373 templates/js/translated/stock.js:571 msgid "Serial Numbers" msgstr "" -#: build/serializers.py:310 +#: build/serializers.py:357 msgid "Enter serial numbers for build outputs" msgstr "" -#: build/serializers.py:315 build/serializers.py:456 build/serializers.py:528 -#: order/serializers.py:654 order/serializers.py:778 order/serializers.py:1781 -#: part/serializers.py:1212 stock/serializers.py:102 stock/serializers.py:691 -#: stock/serializers.py:851 stock/serializers.py:977 stock/serializers.py:1425 -#: stock/serializers.py:1681 stock/templates/stock/item_base.html:394 +#: build/serializers.py:362 build/serializers.py:500 build/serializers.py:572 +#: order/serializers.py:739 order/serializers.py:880 order/serializers.py:1933 +#: part/serializers.py:1265 stock/serializers.py:103 stock/serializers.py:718 +#: stock/serializers.py:882 stock/serializers.py:1008 stock/serializers.py:1456 +#: stock/serializers.py:1712 stock/templates/stock/item_base.html:391 #: templates/js/translated/barcode.js:578 -#: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1032 -#: templates/js/translated/build.js:1174 templates/js/translated/build.js:2544 -#: templates/js/translated/purchase_order.js:1210 -#: templates/js/translated/purchase_order.js:1320 -#: templates/js/translated/sales_order.js:1547 -#: templates/js/translated/sales_order.js:1655 -#: templates/js/translated/sales_order.js:1663 -#: templates/js/translated/sales_order.js:1742 +#: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1035 +#: templates/js/translated/build.js:1177 templates/js/translated/build.js:2551 +#: templates/js/translated/purchase_order.js:1193 +#: templates/js/translated/purchase_order.js:1303 +#: templates/js/translated/sales_order.js:1513 +#: templates/js/translated/sales_order.js:1636 +#: templates/js/translated/sales_order.js:1644 +#: templates/js/translated/sales_order.js:1723 #: templates/js/translated/stock.js:684 templates/js/translated/stock.js:850 -#: templates/js/translated/stock.js:1067 templates/js/translated/stock.js:2286 -#: templates/js/translated/stock.js:2955 +#: templates/js/translated/stock.js:1067 templates/js/translated/stock.js:2287 +#: templates/js/translated/stock.js:2956 msgid "Location" msgstr "" -#: build/serializers.py:316 +#: build/serializers.py:363 msgid "Stock location for build output" msgstr "" -#: build/serializers.py:330 +#: build/serializers.py:377 msgid "Auto Allocate Serial Numbers" msgstr "" -#: build/serializers.py:331 +#: build/serializers.py:378 msgid "Automatically allocate required items with matching serial numbers" msgstr "" -#: build/serializers.py:346 -msgid "Serial numbers must be provided for trackable parts" -msgstr "" - -#: build/serializers.py:371 stock/api.py:1031 +#: build/serializers.py:415 order/serializers.py:858 stock/api.py:1017 +#: stock/models.py:1632 msgid "The following serial numbers already exist or are invalid" msgstr "" -#: build/serializers.py:418 build/serializers.py:480 build/serializers.py:569 +#: build/serializers.py:462 build/serializers.py:524 build/serializers.py:613 msgid "A list of build outputs must be provided" msgstr "" -#: build/serializers.py:457 +#: build/serializers.py:501 msgid "Stock location for scrapped outputs" msgstr "" -#: build/serializers.py:463 +#: build/serializers.py:507 msgid "Discard Allocations" msgstr "" -#: build/serializers.py:464 +#: build/serializers.py:508 msgid "Discard any stock allocations for scrapped outputs" msgstr "" -#: build/serializers.py:469 +#: build/serializers.py:513 msgid "Reason for scrapping build output(s)" msgstr "" -#: build/serializers.py:529 +#: build/serializers.py:573 msgid "Location for completed build outputs" msgstr "" -#: build/serializers.py:535 build/templates/build/build_base.html:159 -#: build/templates/build/detail.html:62 order/models.py:476 -#: order/models.py:1002 order/models.py:2159 order/serializers.py:686 -#: stock/admin.py:164 stock/serializers.py:1028 stock/serializers.py:1569 -#: stock/templates/stock/item_base.html:427 -#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2363 -#: templates/js/translated/purchase_order.js:1371 -#: templates/js/translated/purchase_order.js:1792 +#: build/serializers.py:579 build/templates/build/build_base.html:160 +#: build/templates/build/detail.html:62 order/models.py:488 +#: order/models.py:1029 order/models.py:2198 order/serializers.py:771 +#: stock/admin.py:165 stock/serializers.py:581 stock/serializers.py:1059 +#: stock/serializers.py:1600 stock/templates/stock/item_base.html:424 +#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2366 +#: templates/js/translated/purchase_order.js:1354 +#: templates/js/translated/purchase_order.js:1776 #: templates/js/translated/return_order.js:330 -#: templates/js/translated/sales_order.js:855 -#: templates/js/translated/stock.js:2261 templates/js/translated/stock.js:3079 -#: templates/js/translated/stock.js:3204 +#: templates/js/translated/sales_order.js:814 +#: templates/js/translated/stock.js:2262 templates/js/translated/stock.js:3080 +#: templates/js/translated/stock.js:3205 msgid "Status" msgstr "" -#: build/serializers.py:541 +#: build/serializers.py:585 msgid "Accept Incomplete Allocation" msgstr "" -#: build/serializers.py:542 +#: build/serializers.py:586 msgid "Complete outputs if stock has not been fully allocated" msgstr "" -#: build/serializers.py:654 +#: build/serializers.py:698 msgid "Consume Allocated Stock" msgstr "" -#: build/serializers.py:655 +#: build/serializers.py:699 msgid "Consume any stock which has already been allocated to this build" msgstr "" -#: build/serializers.py:661 +#: build/serializers.py:705 msgid "Remove Incomplete Outputs" msgstr "" -#: build/serializers.py:662 +#: build/serializers.py:706 msgid "Delete any build outputs which have not been completed" msgstr "" -#: build/serializers.py:689 +#: build/serializers.py:733 msgid "Not permitted" msgstr "" -#: build/serializers.py:690 +#: build/serializers.py:734 msgid "Accept as consumed by this build order" msgstr "" -#: build/serializers.py:691 +#: build/serializers.py:735 msgid "Deallocate before completing this build order" msgstr "" -#: build/serializers.py:721 +#: build/serializers.py:765 msgid "Overallocated Stock" msgstr "" -#: build/serializers.py:723 +#: build/serializers.py:767 msgid "How do you want to handle extra stock items assigned to the build order" msgstr "" -#: build/serializers.py:733 +#: build/serializers.py:777 msgid "Some stock items have been overallocated" msgstr "" -#: build/serializers.py:738 +#: build/serializers.py:782 msgid "Accept Unallocated" msgstr "" -#: build/serializers.py:739 +#: build/serializers.py:783 msgid "Accept that stock items have not been fully allocated to this build order" msgstr "" -#: build/serializers.py:749 templates/js/translated/build.js:316 +#: build/serializers.py:793 templates/js/translated/build.js:319 msgid "Required stock has not been fully allocated" msgstr "" -#: build/serializers.py:754 order/serializers.py:345 order/serializers.py:1365 +#: build/serializers.py:798 order/serializers.py:430 order/serializers.py:1491 msgid "Accept Incomplete" msgstr "" -#: build/serializers.py:755 +#: build/serializers.py:799 msgid "Accept that the required number of build outputs have not been completed" msgstr "" -#: build/serializers.py:765 templates/js/translated/build.js:320 +#: build/serializers.py:809 templates/js/translated/build.js:323 msgid "Required build quantity has not been completed" msgstr "" -#: build/serializers.py:774 +#: build/serializers.py:818 msgid "Build order has open child build orders" msgstr "" -#: build/serializers.py:777 +#: build/serializers.py:821 msgid "Build order must be in production state" msgstr "" -#: build/serializers.py:780 templates/js/translated/build.js:304 +#: build/serializers.py:824 templates/js/translated/build.js:307 msgid "Build order has incomplete outputs" msgstr "" -#: build/serializers.py:818 +#: build/serializers.py:862 msgid "Build Line" msgstr "" -#: build/serializers.py:828 +#: build/serializers.py:872 msgid "Build output" msgstr "" -#: build/serializers.py:836 +#: build/serializers.py:880 msgid "Build output must point to the same build" msgstr "" -#: build/serializers.py:872 +#: build/serializers.py:916 msgid "Build Line Item" msgstr "" -#: build/serializers.py:886 +#: build/serializers.py:930 msgid "bom_item.part must point to the same part as the build order" msgstr "" -#: build/serializers.py:901 stock/serializers.py:1294 +#: build/serializers.py:945 stock/serializers.py:1325 msgid "Item must be in stock" msgstr "" -#: build/serializers.py:949 order/serializers.py:1351 +#: build/serializers.py:993 order/serializers.py:1477 #, python-brace-format msgid "Available quantity ({q}) exceeded" msgstr "" -#: build/serializers.py:955 +#: build/serializers.py:999 msgid "Build output must be specified for allocation of tracked parts" msgstr "" -#: build/serializers.py:962 +#: build/serializers.py:1006 msgid "Build output cannot be specified for allocation of untracked parts" msgstr "" -#: build/serializers.py:986 order/serializers.py:1610 +#: build/serializers.py:1030 order/serializers.py:1750 msgid "Allocation items must be provided" msgstr "" -#: build/serializers.py:1049 +#: build/serializers.py:1093 msgid "Stock location where parts are to be sourced (leave blank to take from any location)" msgstr "" -#: build/serializers.py:1057 +#: build/serializers.py:1101 msgid "Exclude Location" msgstr "" -#: build/serializers.py:1058 +#: build/serializers.py:1102 msgid "Exclude stock items from this selected location" msgstr "" -#: build/serializers.py:1063 +#: build/serializers.py:1107 msgid "Interchangeable Stock" msgstr "" -#: build/serializers.py:1064 +#: build/serializers.py:1108 msgid "Stock items in multiple locations can be used interchangeably" msgstr "" -#: build/serializers.py:1069 +#: build/serializers.py:1113 msgid "Substitute Stock" msgstr "" -#: build/serializers.py:1070 +#: build/serializers.py:1114 msgid "Allow allocation of substitute parts" msgstr "" -#: build/serializers.py:1075 +#: build/serializers.py:1119 msgid "Optional Items" msgstr "" -#: build/serializers.py:1076 +#: build/serializers.py:1120 msgid "Allocate optional BOM items to build order" msgstr "" -#: build/serializers.py:1098 +#: build/serializers.py:1143 msgid "Failed to start auto-allocation task" msgstr "" -#: build/serializers.py:1181 +#: build/serializers.py:1226 stock/serializers.py:585 msgid "Supplier Part Number" msgstr "" -#: build/serializers.py:1182 company/models.py:506 +#: build/serializers.py:1227 company/models.py:503 stock/serializers.py:591 msgid "Manufacturer Part Number" msgstr "" -#: build/serializers.py:1183 stock/admin.py:53 stock/admin.py:175 -#: stock/serializers.py:457 +#: build/serializers.py:1228 stock/admin.py:53 stock/admin.py:176 +#: stock/serializers.py:467 msgid "Location Name" msgstr "" -#: build/serializers.py:1184 +#: build/serializers.py:1229 build/serializers.py:1327 msgid "Build Reference" msgstr "" -#: build/serializers.py:1185 +#: build/serializers.py:1230 msgid "BOM Reference" msgstr "" -#: build/serializers.py:1186 company/models.py:852 -#: company/templates/company/supplier_part.html:160 order/serializers.py:690 -#: stock/admin.py:228 stock/models.py:818 stock/serializers.py:1579 -#: stock/templates/stock/item_base.html:240 -#: templates/js/translated/company.js:1646 -#: templates/js/translated/purchase_order.js:1169 -#: templates/js/translated/purchase_order.js:1332 +#: build/serializers.py:1231 company/models.py:849 +#: company/templates/company/supplier_part.html:161 order/serializers.py:775 +#: stock/admin.py:229 stock/models.py:895 stock/serializers.py:1610 +#: stock/templates/stock/item_base.html:237 +#: templates/js/translated/company.js:1647 +#: templates/js/translated/purchase_order.js:1152 +#: templates/js/translated/purchase_order.js:1315 #: templates/js/translated/stock.js:1214 templates/js/translated/stock.js:1246 -#: templates/js/translated/stock.js:2509 +#: templates/js/translated/stock.js:2510 msgid "Packaging" msgstr "" -#: build/serializers.py:1189 part/admin.py:39 part/admin.py:398 -#: part/models.py:4101 part/stocktake.py:218 stock/admin.py:152 +#: build/serializers.py:1234 part/admin.py:39 part/admin.py:398 +#: part/models.py:4159 part/stocktake.py:218 stock/admin.py:153 msgid "Part ID" msgstr "" -#: build/serializers.py:1191 build/serializers.py:1280 part/admin.py:402 -#: part/models.py:4103 +#: build/serializers.py:1236 build/serializers.py:1332 part/admin.py:402 +#: part/models.py:4161 msgid "Part IPN" msgstr "" -#: build/serializers.py:1192 build/serializers.py:1282 part/admin.py:45 +#: build/serializers.py:1237 build/serializers.py:1334 part/admin.py:45 #: part/stocktake.py:220 msgid "Part Description" msgstr "" -#: build/serializers.py:1195 +#: build/serializers.py:1240 msgid "BOM Part ID" msgstr "" -#: build/serializers.py:1196 +#: build/serializers.py:1241 msgid "BOM Part Name" msgstr "" -#: build/serializers.py:1199 +#: build/serializers.py:1244 #: report/templates/report/inventree_return_order_report.html:25 -#: report/templates/report/inventree_test_report.html:88 stock/models.py:845 -#: stock/serializers.py:151 stock/templates/stock/item_base.html:311 -#: templates/js/translated/build.js:520 templates/js/translated/build.js:1540 -#: templates/js/translated/build.js:2527 -#: templates/js/translated/model_renderers.js:231 +#: report/templates/report/inventree_sales_order_shipment_report.html:45 +#: report/templates/report/inventree_test_report.html:88 stock/models.py:922 +#: stock/serializers.py:152 stock/templates/stock/item_base.html:308 +#: templates/js/translated/build.js:523 templates/js/translated/build.js:1543 +#: templates/js/translated/build.js:2534 +#: templates/js/translated/model_renderers.js:234 #: templates/js/translated/return_order.js:539 #: templates/js/translated/return_order.js:722 -#: templates/js/translated/sales_order.js:315 -#: templates/js/translated/sales_order.js:1647 -#: templates/js/translated/sales_order.js:1732 +#: templates/js/translated/sales_order.js:1628 +#: templates/js/translated/sales_order.js:1713 #: templates/js/translated/stock.js:602 msgid "Serial Number" msgstr "" -#: build/serializers.py:1212 stock/serializers.py:593 -#: templates/js/translated/build.js:1017 templates/js/translated/build.js:1164 -#: templates/js/translated/build.js:2516 +#: build/serializers.py:1257 stock/serializers.py:620 +#: templates/js/translated/build.js:1020 templates/js/translated/build.js:1167 +#: templates/js/translated/build.js:2523 msgid "Allocated Quantity" msgstr "" -#: build/serializers.py:1213 stock/templates/stock/item_base.html:340 +#: build/serializers.py:1258 stock/templates/stock/item_base.html:337 msgid "Available Quantity" msgstr "" -#: build/serializers.py:1283 +#: build/serializers.py:1335 msgid "Part Category ID" msgstr "" -#: build/serializers.py:1284 +#: build/serializers.py:1336 msgid "Part Category Name" msgstr "" -#: build/serializers.py:1291 common/models.py:1513 part/admin.py:113 -#: part/models.py:1166 templates/js/translated/table_filters.js:150 +#: build/serializers.py:1345 common/models.py:1582 part/admin.py:113 +#: part/models.py:1227 templates/js/translated/build.js:2738 +#: templates/js/translated/table_filters.js:150 #: templates/js/translated/table_filters.js:230 #: templates/js/translated/table_filters.js:783 msgid "Trackable" msgstr "" -#: build/serializers.py:1292 +#: build/serializers.py:1346 msgid "Inherited" msgstr "" -#: build/serializers.py:1293 part/models.py:4313 +#: build/serializers.py:1347 part/models.py:4370 #: part/templates/part/upload_bom.html:56 templates/js/translated/bom.js:1046 -#: templates/js/translated/build.js:2711 +#: templates/js/translated/build.js:2720 msgid "Allow Variants" msgstr "" -#: build/serializers.py:1297 part/models.py:4110 part/models.py:4584 +#: build/serializers.py:1351 part/models.py:4168 part/models.py:4646 #: stock/api.py:794 msgid "BOM Item" msgstr "" -#: build/serializers.py:1306 build/templates/build/detail.html:236 +#: build/serializers.py:1370 build/templates/build/detail.html:236 #: build/templates/build/sidebar.html:16 templates/js/translated/index.js:130 msgid "Allocated Stock" msgstr "" -#: build/serializers.py:1311 order/serializers.py:1175 part/admin.py:132 -#: part/bom.py:181 part/serializers.py:899 part/serializers.py:1602 -#: part/templates/part/part_base.html:210 templates/js/translated/bom.js:1208 -#: templates/js/translated/build.js:2804 templates/js/translated/part.js:712 +#: build/serializers.py:1375 order/serializers.py:1209 part/admin.py:132 +#: part/bom.py:186 part/serializers.py:951 part/serializers.py:1660 +#: part/templates/part/part_base.html:211 templates/js/translated/bom.js:1208 +#: templates/js/translated/build.js:2822 templates/js/translated/part.js:712 #: templates/js/translated/part.js:2155 #: templates/js/translated/table_filters.js:177 msgid "On Order" msgstr "" -#: build/serializers.py:1316 order/serializers.py:1176 part/serializers.py:1604 -#: templates/js/translated/build.js:2808 +#: build/serializers.py:1380 order/serializers.py:1210 part/serializers.py:1662 +#: templates/js/translated/build.js:2826 #: templates/js/translated/table_filters.js:367 msgid "In Production" msgstr "" -#: build/serializers.py:1321 part/bom.py:180 part/serializers.py:1629 -#: part/templates/part/part_base.html:192 -#: templates/js/translated/sales_order.js:1929 -msgid "Available Stock" -msgstr "" - -#: build/serializers.py:1325 -msgid "Available Substitute Stock" -msgstr "" - -#: build/serializers.py:1326 -msgid "Available Variant Stock" -msgstr "" - -#: build/serializers.py:1327 -msgid "Total Available Stock" -msgstr "" - -#: build/serializers.py:1328 part/serializers.py:906 +#: build/serializers.py:1384 part/serializers.py:958 msgid "External Stock" msgstr "" -#: build/status_codes.py:11 generic/states/tests.py:17 order/status_codes.py:12 -#: order/status_codes.py:42 order/status_codes.py:74 order/status_codes.py:98 +#: build/serializers.py:1385 part/bom.py:185 part/serializers.py:1687 +#: part/templates/part/part_base.html:193 +#: templates/js/translated/sales_order.js:1910 +msgid "Available Stock" +msgstr "" + +#: build/serializers.py:1386 +msgid "Available Substitute Stock" +msgstr "" + +#: build/serializers.py:1387 +msgid "Available Variant Stock" +msgstr "" + +#: build/status_codes.py:11 generic/states/tests.py:21 +#: generic/states/tests.py:131 order/status_codes.py:12 +#: order/status_codes.py:44 order/status_codes.py:76 order/status_codes.py:102 #: templates/js/translated/table_filters.js:601 msgid "Pending" msgstr "" @@ -1723,21 +1751,21 @@ msgstr "" msgid "Production" msgstr "" -#: build/status_codes.py:13 order/status_codes.py:14 order/status_codes.py:49 -#: order/status_codes.py:79 +#: build/status_codes.py:13 order/status_codes.py:14 order/status_codes.py:51 +#: order/status_codes.py:81 msgid "On Hold" msgstr "" -#: build/status_codes.py:14 order/status_codes.py:16 order/status_codes.py:51 -#: order/status_codes.py:82 +#: build/status_codes.py:14 order/status_codes.py:16 order/status_codes.py:53 +#: order/status_codes.py:84 msgid "Cancelled" msgstr "" -#: build/status_codes.py:15 generic/states/tests.py:19 importer/models.py:509 -#: importer/status_codes.py:19 order/status_codes.py:15 -#: order/status_codes.py:50 order/status_codes.py:81 -#: order/templates/order/order_base.html:163 -#: order/templates/order/sales_order_base.html:168 report/models.py:443 +#: build/status_codes.py:15 generic/states/tests.py:23 importer/models.py:518 +#: importer/status_codes.py:27 order/status_codes.py:15 +#: order/status_codes.py:52 order/status_codes.py:83 +#: order/templates/order/order_base.html:172 +#: order/templates/order/sales_order_base.html:169 report/models.py:451 msgid "Complete" msgstr "" @@ -1745,165 +1773,162 @@ msgstr "" msgid "Stock required for build order" msgstr "" -#: build/tasks.py:201 +#: build/tasks.py:260 msgid "Overdue Build Order" msgstr "" -#: build/tasks.py:206 +#: build/tasks.py:265 #, python-brace-format msgid "Build order {bo} is now overdue" msgstr "" -#: build/templates/build/build_base.html:18 +#: build/templates/build/build_base.html:19 msgid "Part thumbnail" msgstr "" -#: build/templates/build/build_base.html:38 -#: company/templates/company/supplier_part.html:35 -#: order/templates/order/order_base.html:29 -#: order/templates/order/return_order_base.html:38 -#: order/templates/order/sales_order_base.html:38 -#: part/templates/part/part_base.html:41 -#: stock/templates/stock/item_base.html:40 -#: stock/templates/stock/location.html:52 +#: build/templates/build/build_base.html:39 +#: company/templates/company/supplier_part.html:36 +#: order/templates/order/order_base.html:30 +#: order/templates/order/return_order_base.html:39 +#: order/templates/order/sales_order_base.html:39 +#: part/templates/part/part_base.html:42 +#: stock/templates/stock/item_base.html:41 +#: stock/templates/stock/location.html:53 #: templates/js/translated/filters.js:338 msgid "Barcode actions" msgstr "" -#: build/templates/build/build_base.html:42 -#: company/templates/company/supplier_part.html:39 -#: order/templates/order/order_base.html:33 -#: order/templates/order/return_order_base.html:42 -#: order/templates/order/sales_order_base.html:42 -#: part/templates/part/part_base.html:44 -#: stock/templates/stock/item_base.html:44 -#: stock/templates/stock/location.html:54 templates/qr_button.html:1 +#: build/templates/build/build_base.html:43 +#: company/templates/company/supplier_part.html:40 +#: order/templates/order/order_base.html:34 +#: order/templates/order/return_order_base.html:43 +#: order/templates/order/sales_order_base.html:43 +#: part/templates/part/part_base.html:45 +#: stock/templates/stock/item_base.html:45 +#: stock/templates/stock/location.html:55 templates/qr_button.html:1 msgid "Show QR Code" msgstr "" -#: build/templates/build/build_base.html:45 -#: company/templates/company/supplier_part.html:41 -#: order/templates/order/order_base.html:36 -#: order/templates/order/return_order_base.html:45 -#: order/templates/order/sales_order_base.html:45 -#: part/templates/part/part_base.html:47 -#: stock/templates/stock/item_base.html:47 -#: stock/templates/stock/location.html:56 +#: build/templates/build/build_base.html:46 +#: company/templates/company/supplier_part.html:42 +#: order/templates/order/order_base.html:37 +#: order/templates/order/return_order_base.html:46 +#: order/templates/order/sales_order_base.html:46 +#: part/templates/part/part_base.html:48 +#: stock/templates/stock/item_base.html:48 +#: stock/templates/stock/location.html:57 #: templates/js/translated/barcode.js:527 #: templates/js/translated/barcode.js:532 msgid "Unlink Barcode" msgstr "" -#: build/templates/build/build_base.html:47 -#: company/templates/company/supplier_part.html:43 -#: order/templates/order/order_base.html:38 -#: order/templates/order/return_order_base.html:47 -#: order/templates/order/sales_order_base.html:47 -#: part/templates/part/part_base.html:49 -#: stock/templates/stock/item_base.html:49 -#: stock/templates/stock/location.html:58 +#: build/templates/build/build_base.html:48 +#: company/templates/company/supplier_part.html:44 +#: order/templates/order/order_base.html:39 +#: order/templates/order/return_order_base.html:48 +#: order/templates/order/sales_order_base.html:48 +#: part/templates/part/part_base.html:50 +#: stock/templates/stock/item_base.html:50 +#: stock/templates/stock/location.html:59 msgid "Link Barcode" msgstr "" -#: build/templates/build/build_base.html:56 -#: order/templates/order/order_base.html:46 -#: order/templates/order/return_order_base.html:55 -#: order/templates/order/sales_order_base.html:55 +#: build/templates/build/build_base.html:57 +#: order/templates/order/order_base.html:47 +#: order/templates/order/return_order_base.html:56 +#: order/templates/order/sales_order_base.html:56 msgid "Print actions" msgstr "" -#: build/templates/build/build_base.html:60 +#: build/templates/build/build_base.html:61 msgid "Print build order report" msgstr "" -#: build/templates/build/build_base.html:67 +#: build/templates/build/build_base.html:68 msgid "Build actions" msgstr "" -#: build/templates/build/build_base.html:71 +#: build/templates/build/build_base.html:72 msgid "Edit Build" msgstr "" -#: build/templates/build/build_base.html:73 +#: build/templates/build/build_base.html:74 msgid "Duplicate Build" msgstr "" -#: build/templates/build/build_base.html:76 +#: build/templates/build/build_base.html:77 msgid "Hold Build" msgstr "" -#: build/templates/build/build_base.html:79 +#: build/templates/build/build_base.html:80 msgid "Cancel Build" msgstr "" -#: build/templates/build/build_base.html:82 +#: build/templates/build/build_base.html:83 msgid "Delete Build" msgstr "" -#: build/templates/build/build_base.html:87 -msgid "Isueue Build" -msgstr "" - #: build/templates/build/build_base.html:88 +#: build/templates/build/build_base.html:89 msgid "Issue Build" msgstr "" -#: build/templates/build/build_base.html:91 #: build/templates/build/build_base.html:92 +#: build/templates/build/build_base.html:93 msgid "Complete Build" msgstr "" -#: build/templates/build/build_base.html:115 +#: build/templates/build/build_base.html:116 msgid "Build Description" msgstr "" -#: build/templates/build/build_base.html:125 +#: build/templates/build/build_base.html:126 msgid "No build outputs have been created for this build order" msgstr "" -#: build/templates/build/build_base.html:132 +#: build/templates/build/build_base.html:133 msgid "Build Order is ready to mark as completed" msgstr "" -#: build/templates/build/build_base.html:137 +#: build/templates/build/build_base.html:138 msgid "Build Order cannot be completed as outstanding outputs remain" msgstr "" -#: build/templates/build/build_base.html:142 +#: build/templates/build/build_base.html:143 msgid "Required build quantity has not yet been completed" msgstr "" -#: build/templates/build/build_base.html:147 +#: build/templates/build/build_base.html:148 msgid "Stock has not been fully allocated to this Build Order" msgstr "" -#: build/templates/build/build_base.html:168 -#: build/templates/build/detail.html:138 order/models.py:308 -#: order/models.py:1391 order/serializers.py:174 -#: order/templates/order/order_base.html:191 -#: order/templates/order/return_order_base.html:167 -#: order/templates/order/sales_order_base.html:199 +#: build/templates/build/build_base.html:169 +#: build/templates/build/detail.html:138 order/models.py:315 +#: order/models.py:1408 order/serializers.py:254 +#: order/templates/order/order_base.html:200 +#: order/templates/order/return_order_base.html:168 +#: order/templates/order/sales_order_base.html:200 #: report/templates/report/inventree_build_order_report.html:125 -#: templates/js/translated/build.js:2411 templates/js/translated/part.js:1837 -#: templates/js/translated/purchase_order.js:1809 -#: templates/js/translated/purchase_order.js:2217 +#: templates/js/translated/build.js:2414 templates/js/translated/part.js:1837 +#: templates/js/translated/purchase_order.js:1793 +#: templates/js/translated/purchase_order.js:2201 #: templates/js/translated/return_order.js:346 #: templates/js/translated/return_order.js:749 -#: templates/js/translated/sales_order.js:871 -#: templates/js/translated/sales_order.js:1903 +#: templates/js/translated/sales_order.js:830 +#: templates/js/translated/sales_order.js:1884 msgid "Target Date" msgstr "" -#: build/templates/build/build_base.html:173 +#: build/templates/build/build_base.html:174 #, python-format msgid "This build was due on %(target)s" msgstr "" -#: build/templates/build/build_base.html:173 -#: build/templates/build/build_base.html:230 -#: order/templates/order/order_base.html:127 -#: order/templates/order/return_order_base.html:120 -#: order/templates/order/sales_order_base.html:129 +#: build/templates/build/build_base.html:174 +#: build/templates/build/build_base.html:231 +#: order/templates/order/order_base.html:128 +#: order/templates/order/return_order_base.html:121 +#: order/templates/order/sales_order_base.html:130 #: templates/js/translated/table_filters.js:97 #: templates/js/translated/table_filters.js:545 #: templates/js/translated/table_filters.js:629 @@ -1911,49 +1936,50 @@ msgstr "" msgid "Overdue" msgstr "" -#: build/templates/build/build_base.html:185 +#: build/templates/build/build_base.html:186 #: build/templates/build/detail.html:67 build/templates/build/sidebar.html:13 msgid "Completed Outputs" msgstr "" -#: build/templates/build/build_base.html:198 -#: build/templates/build/detail.html:101 order/api.py:1406 order/models.py:892 -#: order/models.py:1650 order/models.py:1765 order/models.py:1924 -#: order/templates/order/sales_order_base.html:9 -#: order/templates/order/sales_order_base.html:28 +#: build/templates/build/build_base.html:199 +#: build/templates/build/detail.html:101 order/api.py:1528 order/models.py:914 +#: order/models.py:1666 order/models.py:1794 order/models.py:1957 +#: order/templates/order/sales_order_base.html:10 +#: order/templates/order/sales_order_base.html:29 #: report/templates/report/inventree_build_order_report.html:135 #: report/templates/report/inventree_sales_order_report.html:14 -#: stock/templates/stock/item_base.html:369 +#: report/templates/report/inventree_sales_order_shipment_report.html:15 +#: stock/templates/stock/item_base.html:366 #: templates/email/overdue_sales_order.html:15 -#: templates/js/translated/pricing.js:929 -#: templates/js/translated/sales_order.js:805 -#: templates/js/translated/sales_order.js:1028 -#: templates/js/translated/stock.js:3008 +#: templates/js/translated/pricing.js:927 +#: templates/js/translated/sales_order.js:764 +#: templates/js/translated/sales_order.js:1001 +#: templates/js/translated/stock.js:3009 msgid "Sales Order" msgstr "" -#: build/templates/build/build_base.html:219 -#: build/templates/build/detail.html:94 templates/js/translated/build.js:2328 +#: build/templates/build/build_base.html:220 +#: build/templates/build/detail.html:94 templates/js/translated/build.js:2331 msgid "Priority" msgstr "" -#: build/templates/build/build_base.html:267 +#: build/templates/build/build_base.html:268 msgid "Issue Build Order" msgstr "" -#: build/templates/build/build_base.html:271 +#: build/templates/build/build_base.html:272 msgid "Issue this Build Order?" msgstr "" -#: build/templates/build/build_base.html:302 +#: build/templates/build/build_base.html:303 msgid "Delete Build Order" msgstr "" -#: build/templates/build/build_base.html:312 +#: build/templates/build/build_base.html:313 msgid "Build Order QR Code" msgstr "" -#: build/templates/build/build_base.html:324 +#: build/templates/build/build_base.html:325 msgid "Link Barcode to Build Order" msgstr "" @@ -1969,8 +1995,9 @@ msgstr "" msgid "Stock can be taken from any available location." msgstr "" -#: build/templates/build/detail.html:49 order/models.py:1532 -#: templates/js/translated/purchase_order.js:2259 +#: build/templates/build/detail.html:49 order/models.py:548 +#: order/models.py:1548 order/templates/order/order_base.html:135 +#: templates/js/translated/purchase_order.js:2243 msgid "Destination" msgstr "" @@ -1982,23 +2009,24 @@ msgstr "" msgid "Allocated Parts" msgstr "" -#: build/templates/build/detail.html:80 stock/admin.py:162 -#: stock/templates/stock/item_base.html:162 -#: templates/js/translated/build.js:1553 -#: templates/js/translated/model_renderers.js:242 -#: templates/js/translated/purchase_order.js:1326 +#: build/templates/build/detail.html:80 +#: report/templates/report/inventree_sales_order_shipment_report.html:47 +#: stock/admin.py:163 stock/templates/stock/item_base.html:159 +#: templates/js/translated/build.js:1556 +#: templates/js/translated/model_renderers.js:245 +#: templates/js/translated/purchase_order.js:1309 #: templates/js/translated/stock.js:1139 templates/js/translated/stock.js:1240 -#: templates/js/translated/stock.js:2275 templates/js/translated/stock.js:3211 +#: templates/js/translated/stock.js:2276 templates/js/translated/stock.js:3212 #: templates/js/translated/table_filters.js:320 #: templates/js/translated/table_filters.js:411 msgid "Batch" msgstr "" #: build/templates/build/detail.html:133 -#: order/templates/order/order_base.html:178 -#: order/templates/order/return_order_base.html:154 -#: order/templates/order/sales_order_base.html:193 -#: templates/js/translated/build.js:2371 +#: order/templates/order/order_base.html:187 +#: order/templates/order/return_order_base.html:155 +#: order/templates/order/sales_order_base.html:194 +#: templates/js/translated/build.js:2374 msgid "Created" msgstr "" @@ -2006,8 +2034,8 @@ msgstr "" msgid "No target date set" msgstr "" -#: build/templates/build/detail.html:149 -#: order/templates/order/sales_order_base.html:209 +#: build/templates/build/detail.html:149 order/api.py:794 +#: order/templates/order/sales_order_base.html:210 #: templates/js/translated/table_filters.js:692 msgid "Completed" msgstr "" @@ -2053,7 +2081,7 @@ msgid "Order required parts" msgstr "" #: build/templates/build/detail.html:192 -#: templates/js/translated/purchase_order.js:795 +#: templates/js/translated/purchase_order.js:778 msgid "Order Parts" msgstr "" @@ -2121,7 +2149,7 @@ msgstr "" msgid "Build Order Details" msgstr "" -#: build/templates/build/sidebar.html:8 order/serializers.py:82 +#: build/templates/build/sidebar.html:8 order/serializers.py:113 #: order/templates/order/po_sidebar.html:5 #: order/templates/order/return_order_detail.html:18 #: order/templates/order/so_sidebar.html:5 @@ -2140,43 +2168,38 @@ msgstr "" msgid "Test Statistics" msgstr "" -#: common/api.py:693 +#: common/api.py:725 msgid "Is Link" msgstr "" -#: common/api.py:701 +#: common/api.py:733 msgid "Is File" msgstr "" -#: common/api.py:744 +#: common/api.py:776 msgid "User does not have permission to delete these attachments" msgstr "" -#: common/api.py:761 +#: common/api.py:793 msgid "User does not have permission to delete this attachment" msgstr "" -#: common/currency.py:132 +#: common/currency.py:134 msgid "Invalid currency code" msgstr "" -#: common/currency.py:134 +#: common/currency.py:136 msgid "Duplicate currency code" msgstr "" -#: common/currency.py:139 +#: common/currency.py:141 msgid "No valid currency codes provided" msgstr "" -#: common/currency.py:156 +#: common/currency.py:158 msgid "No plugin" msgstr "" -#: common/files.py:63 -#, python-brace-format -msgid "Unsupported file format: {fmt}" -msgstr "" - #: common/files.py:65 msgid "Error reading file (invalid encoding)" msgstr "" @@ -2193,1883 +2216,2039 @@ msgstr "" msgid "Error reading file (data could be corrupted)" msgstr "" -#: common/forms.py:12 +#: common/forms.py:12 common/forms.py:25 msgid "File" msgstr "" -#: common/forms.py:12 +#: common/forms.py:12 common/forms.py:26 msgid "Select file to upload" msgstr "" -#: common/forms.py:25 -msgid "{name.title()} File" -msgstr "" - -#: common/forms.py:26 -#, python-brace-format -msgid "Select {name} file to upload" -msgstr "" - -#: common/models.py:86 +#: common/models.py:89 msgid "Updated" msgstr "" -#: common/models.py:87 +#: common/models.py:90 msgid "Timestamp of last update" msgstr "" -#: common/models.py:120 +#: common/models.py:123 msgid "Site URL is locked by configuration" msgstr "" -#: common/models.py:150 +#: common/models.py:153 msgid "Unique project code" msgstr "" -#: common/models.py:157 +#: common/models.py:160 msgid "Project description" msgstr "" -#: common/models.py:166 +#: common/models.py:169 msgid "User or group responsible for this project" msgstr "" -#: common/models.py:783 -msgid "Settings key (must be unique - case insensitive)" +#: common/models.py:783 common/models.py:2236 common/models.py:2613 +msgid "Settings key" msgstr "" #: common/models.py:787 msgid "Settings value" msgstr "" -#: common/models.py:839 +#: common/models.py:842 msgid "Chosen value is not a valid option" msgstr "" -#: common/models.py:855 +#: common/models.py:858 msgid "Value must be a boolean value" msgstr "" -#: common/models.py:863 +#: common/models.py:866 msgid "Value must be an integer value" msgstr "" -#: common/models.py:900 +#: common/models.py:874 +msgid "Value must be a valid number" +msgstr "" + +#: common/models.py:899 +msgid "Value does not pass validation checks" +msgstr "" + +#: common/models.py:921 msgid "Key string must be unique" msgstr "" -#: common/models.py:1132 +#: common/models.py:1189 msgid "No group" msgstr "" -#: common/models.py:1231 +#: common/models.py:1288 msgid "Restart required" msgstr "" -#: common/models.py:1233 +#: common/models.py:1290 msgid "A setting has been changed which requires a server restart" msgstr "" -#: common/models.py:1240 +#: common/models.py:1297 msgid "Pending migrations" msgstr "" -#: common/models.py:1241 +#: common/models.py:1298 msgid "Number of pending database migrations" msgstr "" -#: common/models.py:1246 +#: common/models.py:1303 msgid "Server Instance Name" msgstr "" -#: common/models.py:1248 +#: common/models.py:1305 msgid "String descriptor for the server instance" msgstr "" -#: common/models.py:1252 +#: common/models.py:1309 msgid "Use instance name" msgstr "" -#: common/models.py:1253 +#: common/models.py:1310 msgid "Use the instance name in the title-bar" msgstr "" -#: common/models.py:1258 +#: common/models.py:1315 msgid "Restrict showing `about`" msgstr "" -#: common/models.py:1259 +#: common/models.py:1316 msgid "Show the `about` modal only to superusers" msgstr "" -#: common/models.py:1264 company/models.py:111 company/models.py:112 +#: common/models.py:1321 company/models.py:108 company/models.py:109 msgid "Company name" msgstr "" -#: common/models.py:1265 +#: common/models.py:1322 msgid "Internal company name" msgstr "" -#: common/models.py:1269 +#: common/models.py:1326 msgid "Base URL" msgstr "" -#: common/models.py:1270 +#: common/models.py:1327 msgid "Base URL for server instance" msgstr "" -#: common/models.py:1276 +#: common/models.py:1333 msgid "Default Currency" msgstr "" -#: common/models.py:1277 +#: common/models.py:1334 msgid "Select base currency for pricing calculations" msgstr "" -#: common/models.py:1283 +#: common/models.py:1340 msgid "Supported Currencies" msgstr "" -#: common/models.py:1284 +#: common/models.py:1341 msgid "List of supported currency codes" msgstr "" -#: common/models.py:1290 +#: common/models.py:1347 msgid "Currency Update Interval" msgstr "" -#: common/models.py:1292 +#: common/models.py:1349 msgid "How often to update exchange rates (set to zero to disable)" msgstr "" -#: common/models.py:1295 common/models.py:1351 common/models.py:1364 -#: common/models.py:1372 common/models.py:1381 common/models.py:1390 -#: common/models.py:1627 common/models.py:1649 common/models.py:1764 -#: common/models.py:2146 +#: common/models.py:1352 common/models.py:1408 common/models.py:1421 +#: common/models.py:1429 common/models.py:1438 common/models.py:1447 +#: common/models.py:1696 common/models.py:1718 common/models.py:1819 +#: common/models.py:2208 msgid "days" msgstr "" -#: common/models.py:1299 +#: common/models.py:1356 msgid "Currency Update Plugin" msgstr "" -#: common/models.py:1300 +#: common/models.py:1357 msgid "Currency update plugin to use" msgstr "" -#: common/models.py:1305 +#: common/models.py:1362 msgid "Download from URL" msgstr "" -#: common/models.py:1307 +#: common/models.py:1364 msgid "Allow download of remote images and files from external URL" msgstr "" -#: common/models.py:1313 +#: common/models.py:1370 msgid "Download Size Limit" msgstr "" -#: common/models.py:1314 +#: common/models.py:1371 msgid "Maximum allowable download size for remote image" msgstr "" -#: common/models.py:1320 +#: common/models.py:1377 msgid "User-agent used to download from URL" msgstr "" -#: common/models.py:1322 +#: common/models.py:1379 msgid "Allow to override the user-agent used to download images and files from external URL (leave blank for the default)" msgstr "" -#: common/models.py:1327 +#: common/models.py:1384 msgid "Strict URL Validation" msgstr "" -#: common/models.py:1328 +#: common/models.py:1385 msgid "Require schema specification when validating URLs" msgstr "" -#: common/models.py:1333 +#: common/models.py:1390 msgid "Require confirm" msgstr "" -#: common/models.py:1334 +#: common/models.py:1391 msgid "Require explicit user confirmation for certain action." msgstr "" -#: common/models.py:1339 +#: common/models.py:1396 msgid "Tree Depth" msgstr "" -#: common/models.py:1341 +#: common/models.py:1398 msgid "Default tree depth for treeview. Deeper levels can be lazy loaded as they are needed." msgstr "" -#: common/models.py:1347 +#: common/models.py:1404 msgid "Update Check Interval" msgstr "" -#: common/models.py:1348 +#: common/models.py:1405 msgid "How often to check for updates (set to zero to disable)" msgstr "" -#: common/models.py:1354 +#: common/models.py:1411 msgid "Automatic Backup" msgstr "" -#: common/models.py:1355 +#: common/models.py:1412 msgid "Enable automatic backup of database and media files" msgstr "" -#: common/models.py:1360 +#: common/models.py:1417 msgid "Auto Backup Interval" msgstr "" -#: common/models.py:1361 +#: common/models.py:1418 msgid "Specify number of days between automated backup events" msgstr "" -#: common/models.py:1367 +#: common/models.py:1424 msgid "Task Deletion Interval" msgstr "" -#: common/models.py:1369 +#: common/models.py:1426 msgid "Background task results will be deleted after specified number of days" msgstr "" -#: common/models.py:1376 +#: common/models.py:1433 msgid "Error Log Deletion Interval" msgstr "" -#: common/models.py:1378 +#: common/models.py:1435 msgid "Error logs will be deleted after specified number of days" msgstr "" -#: common/models.py:1385 +#: common/models.py:1442 msgid "Notification Deletion Interval" msgstr "" -#: common/models.py:1387 +#: common/models.py:1444 msgid "User notifications will be deleted after specified number of days" msgstr "" -#: common/models.py:1394 templates/InvenTree/settings/sidebar.html:31 +#: common/models.py:1451 templates/InvenTree/settings/sidebar.html:31 msgid "Barcode Support" msgstr "" -#: common/models.py:1395 +#: common/models.py:1452 msgid "Enable barcode scanner support in the web interface" msgstr "" -#: common/models.py:1400 +#: common/models.py:1457 +msgid "Store Barcode Results" +msgstr "" + +#: common/models.py:1458 +msgid "Store barcode scan results in the database" +msgstr "" + +#: common/models.py:1463 +msgid "Barcode Scans Maximum Count" +msgstr "" + +#: common/models.py:1464 +msgid "Maximum number of barcode scan results to store" +msgstr "" + +#: common/models.py:1469 msgid "Barcode Input Delay" msgstr "" -#: common/models.py:1401 +#: common/models.py:1470 msgid "Barcode input processing delay time" msgstr "" -#: common/models.py:1407 +#: common/models.py:1476 msgid "Barcode Webcam Support" msgstr "" -#: common/models.py:1408 +#: common/models.py:1477 msgid "Allow barcode scanning via webcam in browser" msgstr "" -#: common/models.py:1413 +#: common/models.py:1482 msgid "Barcode Show Data" msgstr "" -#: common/models.py:1414 +#: common/models.py:1483 msgid "Display barcode data in browser as text" msgstr "" -#: common/models.py:1419 +#: common/models.py:1488 msgid "Barcode Generation Plugin" msgstr "" -#: common/models.py:1420 +#: common/models.py:1489 msgid "Plugin to use for internal barcode data generation" msgstr "" -#: common/models.py:1425 +#: common/models.py:1494 msgid "Part Revisions" msgstr "" -#: common/models.py:1426 +#: common/models.py:1495 msgid "Enable revision field for Part" msgstr "" -#: common/models.py:1431 +#: common/models.py:1500 msgid "Assembly Revision Only" msgstr "" -#: common/models.py:1432 +#: common/models.py:1501 msgid "Only allow revisions for assembly parts" msgstr "" -#: common/models.py:1437 +#: common/models.py:1506 msgid "Allow Deletion from Assembly" msgstr "" -#: common/models.py:1438 +#: common/models.py:1507 msgid "Allow deletion of parts which are used in an assembly" msgstr "" -#: common/models.py:1443 +#: common/models.py:1512 msgid "IPN Regex" msgstr "" -#: common/models.py:1444 +#: common/models.py:1513 msgid "Regular expression pattern for matching Part IPN" msgstr "" -#: common/models.py:1447 +#: common/models.py:1516 msgid "Allow Duplicate IPN" msgstr "" -#: common/models.py:1448 +#: common/models.py:1517 msgid "Allow multiple parts to share the same IPN" msgstr "" -#: common/models.py:1453 +#: common/models.py:1522 msgid "Allow Editing IPN" msgstr "" -#: common/models.py:1454 +#: common/models.py:1523 msgid "Allow changing the IPN value while editing a part" msgstr "" -#: common/models.py:1459 +#: common/models.py:1528 msgid "Copy Part BOM Data" msgstr "" -#: common/models.py:1460 +#: common/models.py:1529 msgid "Copy BOM data by default when duplicating a part" msgstr "" -#: common/models.py:1465 +#: common/models.py:1534 msgid "Copy Part Parameter Data" msgstr "" -#: common/models.py:1466 +#: common/models.py:1535 msgid "Copy parameter data by default when duplicating a part" msgstr "" -#: common/models.py:1471 +#: common/models.py:1540 msgid "Copy Part Test Data" msgstr "" -#: common/models.py:1472 +#: common/models.py:1541 msgid "Copy test data by default when duplicating a part" msgstr "" -#: common/models.py:1477 +#: common/models.py:1546 msgid "Copy Category Parameter Templates" msgstr "" -#: common/models.py:1478 +#: common/models.py:1547 msgid "Copy category parameter templates when creating a part" msgstr "" -#: common/models.py:1483 part/admin.py:108 part/models.py:3945 -#: report/models.py:293 report/models.py:360 report/serializers.py:90 -#: report/serializers.py:131 stock/serializers.py:232 +#: common/models.py:1552 part/admin.py:108 part/models.py:4003 +#: report/models.py:301 report/models.py:368 report/serializers.py:91 +#: report/serializers.py:132 stock/serializers.py:233 #: templates/js/translated/table_filters.js:138 #: templates/js/translated/table_filters.js:775 msgid "Template" msgstr "" -#: common/models.py:1484 +#: common/models.py:1553 msgid "Parts are templates by default" msgstr "" -#: common/models.py:1490 +#: common/models.py:1559 msgid "Parts can be assembled from other components by default" msgstr "" -#: common/models.py:1495 part/admin.py:95 part/models.py:1160 -#: part/serializers.py:1596 templates/js/translated/table_filters.js:737 +#: common/models.py:1564 part/admin.py:95 part/models.py:1221 +#: part/serializers.py:1654 templates/js/translated/table_filters.js:737 msgid "Component" msgstr "" -#: common/models.py:1496 +#: common/models.py:1565 msgid "Parts can be used as sub-components by default" msgstr "" -#: common/models.py:1501 part/admin.py:100 part/models.py:1178 +#: common/models.py:1570 part/admin.py:100 part/models.py:1239 msgid "Purchaseable" msgstr "" -#: common/models.py:1502 +#: common/models.py:1571 msgid "Parts are purchaseable by default" msgstr "" -#: common/models.py:1507 part/admin.py:104 part/models.py:1184 +#: common/models.py:1576 part/admin.py:104 part/models.py:1245 #: templates/js/translated/table_filters.js:763 msgid "Salable" msgstr "" -#: common/models.py:1508 +#: common/models.py:1577 msgid "Parts are salable by default" msgstr "" -#: common/models.py:1514 +#: common/models.py:1583 msgid "Parts are trackable by default" msgstr "" -#: common/models.py:1519 part/admin.py:117 part/models.py:1200 -#: part/templates/part/part_base.html:154 +#: common/models.py:1588 part/admin.py:117 part/models.py:1261 +#: part/templates/part/part_base.html:155 #: templates/js/translated/table_filters.js:142 #: templates/js/translated/table_filters.js:787 msgid "Virtual" msgstr "" -#: common/models.py:1520 +#: common/models.py:1589 msgid "Parts are virtual by default" msgstr "" -#: common/models.py:1525 +#: common/models.py:1594 msgid "Show Import in Views" msgstr "" -#: common/models.py:1526 +#: common/models.py:1595 msgid "Display the import wizard in some part views" msgstr "" -#: common/models.py:1531 +#: common/models.py:1600 msgid "Show related parts" msgstr "" -#: common/models.py:1532 +#: common/models.py:1601 msgid "Display related parts for a part" msgstr "" -#: common/models.py:1537 +#: common/models.py:1606 msgid "Initial Stock Data" msgstr "" -#: common/models.py:1538 +#: common/models.py:1607 msgid "Allow creation of initial stock when adding a new part" msgstr "" -#: common/models.py:1543 templates/js/translated/part.js:108 +#: common/models.py:1612 templates/js/translated/part.js:108 msgid "Initial Supplier Data" msgstr "" -#: common/models.py:1545 +#: common/models.py:1614 msgid "Allow creation of initial supplier data when adding a new part" msgstr "" -#: common/models.py:1551 +#: common/models.py:1620 msgid "Part Name Display Format" msgstr "" -#: common/models.py:1552 +#: common/models.py:1621 msgid "Format to display the part name" msgstr "" -#: common/models.py:1558 +#: common/models.py:1627 msgid "Part Category Default Icon" msgstr "" -#: common/models.py:1559 +#: common/models.py:1628 msgid "Part category default icon (empty means no icon)" msgstr "" -#: common/models.py:1564 +#: common/models.py:1633 msgid "Enforce Parameter Units" msgstr "" -#: common/models.py:1566 +#: common/models.py:1635 msgid "If units are provided, parameter values must match the specified units" msgstr "" -#: common/models.py:1572 +#: common/models.py:1641 msgid "Minimum Pricing Decimal Places" msgstr "" -#: common/models.py:1574 +#: common/models.py:1643 msgid "Minimum number of decimal places to display when rendering pricing data" msgstr "" -#: common/models.py:1585 +#: common/models.py:1654 msgid "Maximum Pricing Decimal Places" msgstr "" -#: common/models.py:1587 +#: common/models.py:1656 msgid "Maximum number of decimal places to display when rendering pricing data" msgstr "" -#: common/models.py:1598 +#: common/models.py:1667 msgid "Use Supplier Pricing" msgstr "" -#: common/models.py:1600 +#: common/models.py:1669 msgid "Include supplier price breaks in overall pricing calculations" msgstr "" -#: common/models.py:1606 +#: common/models.py:1675 msgid "Purchase History Override" msgstr "" -#: common/models.py:1608 +#: common/models.py:1677 msgid "Historical purchase order pricing overrides supplier price breaks" msgstr "" -#: common/models.py:1614 +#: common/models.py:1683 msgid "Use Stock Item Pricing" msgstr "" -#: common/models.py:1616 +#: common/models.py:1685 msgid "Use pricing from manually entered stock data for pricing calculations" msgstr "" -#: common/models.py:1622 +#: common/models.py:1691 msgid "Stock Item Pricing Age" msgstr "" -#: common/models.py:1624 +#: common/models.py:1693 msgid "Exclude stock items older than this number of days from pricing calculations" msgstr "" -#: common/models.py:1631 +#: common/models.py:1700 msgid "Use Variant Pricing" msgstr "" -#: common/models.py:1632 +#: common/models.py:1701 msgid "Include variant pricing in overall pricing calculations" msgstr "" -#: common/models.py:1637 +#: common/models.py:1706 msgid "Active Variants Only" msgstr "" -#: common/models.py:1639 +#: common/models.py:1708 msgid "Only use active variant parts for calculating variant pricing" msgstr "" -#: common/models.py:1645 +#: common/models.py:1714 msgid "Pricing Rebuild Interval" msgstr "" -#: common/models.py:1647 +#: common/models.py:1716 msgid "Number of days before part pricing is automatically updated" msgstr "" -#: common/models.py:1654 +#: common/models.py:1723 msgid "Internal Prices" msgstr "" -#: common/models.py:1655 +#: common/models.py:1724 msgid "Enable internal prices for parts" msgstr "" -#: common/models.py:1660 +#: common/models.py:1729 msgid "Internal Price Override" msgstr "" -#: common/models.py:1662 +#: common/models.py:1731 msgid "If available, internal prices override price range calculations" msgstr "" -#: common/models.py:1668 +#: common/models.py:1737 msgid "Enable label printing" msgstr "" -#: common/models.py:1669 +#: common/models.py:1738 msgid "Enable label printing from the web interface" msgstr "" -#: common/models.py:1674 +#: common/models.py:1743 msgid "Label Image DPI" msgstr "" -#: common/models.py:1676 +#: common/models.py:1745 msgid "DPI resolution when generating image files to supply to label printing plugins" msgstr "" -#: common/models.py:1682 +#: common/models.py:1751 msgid "Enable Reports" msgstr "" -#: common/models.py:1683 +#: common/models.py:1752 msgid "Enable generation of reports" msgstr "" -#: common/models.py:1688 templates/stats.html:25 +#: common/models.py:1757 templates/stats.html:25 msgid "Debug Mode" msgstr "" -#: common/models.py:1689 +#: common/models.py:1758 msgid "Generate reports in debug mode (HTML output)" msgstr "" -#: common/models.py:1694 +#: common/models.py:1763 msgid "Log Report Errors" msgstr "" -#: common/models.py:1695 +#: common/models.py:1764 msgid "Log errors which occur when generating reports" msgstr "" -#: common/models.py:1700 plugin/builtin/labels/label_sheet.py:28 -#: report/models.py:301 +#: common/models.py:1769 plugin/builtin/labels/label_sheet.py:28 +#: report/models.py:309 msgid "Page Size" msgstr "" -#: common/models.py:1701 +#: common/models.py:1770 msgid "Default page size for PDF reports" msgstr "" -#: common/models.py:1706 -msgid "Enable Test Reports" -msgstr "" - -#: common/models.py:1707 -msgid "Enable generation of test reports" -msgstr "" - -#: common/models.py:1712 -msgid "Attach Test Reports" -msgstr "" - -#: common/models.py:1714 -msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item" -msgstr "" - -#: common/models.py:1720 +#: common/models.py:1775 msgid "Globally Unique Serials" msgstr "" -#: common/models.py:1721 +#: common/models.py:1776 msgid "Serial numbers for stock items must be globally unique" msgstr "" -#: common/models.py:1726 +#: common/models.py:1781 msgid "Autofill Serial Numbers" msgstr "" -#: common/models.py:1727 +#: common/models.py:1782 msgid "Autofill serial numbers in forms" msgstr "" -#: common/models.py:1732 +#: common/models.py:1787 msgid "Delete Depleted Stock" msgstr "" -#: common/models.py:1734 +#: common/models.py:1789 msgid "Determines default behavior when a stock item is depleted" msgstr "" -#: common/models.py:1740 +#: common/models.py:1795 msgid "Batch Code Template" msgstr "" -#: common/models.py:1742 +#: common/models.py:1797 msgid "Template for generating default batch codes for stock items" msgstr "" -#: common/models.py:1747 +#: common/models.py:1802 msgid "Stock Expiry" msgstr "" -#: common/models.py:1748 +#: common/models.py:1803 msgid "Enable stock expiry functionality" msgstr "" -#: common/models.py:1753 +#: common/models.py:1808 msgid "Sell Expired Stock" msgstr "" -#: common/models.py:1754 +#: common/models.py:1809 msgid "Allow sale of expired stock" msgstr "" -#: common/models.py:1759 +#: common/models.py:1814 msgid "Stock Stale Time" msgstr "" -#: common/models.py:1761 +#: common/models.py:1816 msgid "Number of days stock items are considered stale before expiring" msgstr "" -#: common/models.py:1768 +#: common/models.py:1823 msgid "Build Expired Stock" msgstr "" -#: common/models.py:1769 +#: common/models.py:1824 msgid "Allow building with expired stock" msgstr "" -#: common/models.py:1774 +#: common/models.py:1829 msgid "Stock Ownership Control" msgstr "" -#: common/models.py:1775 +#: common/models.py:1830 msgid "Enable ownership control over stock locations and items" msgstr "" -#: common/models.py:1780 +#: common/models.py:1835 msgid "Stock Location Default Icon" msgstr "" -#: common/models.py:1781 +#: common/models.py:1836 msgid "Stock location default icon (empty means no icon)" msgstr "" -#: common/models.py:1786 +#: common/models.py:1841 msgid "Show Installed Stock Items" msgstr "" -#: common/models.py:1787 +#: common/models.py:1842 msgid "Display installed stock items in stock tables" msgstr "" -#: common/models.py:1792 +#: common/models.py:1847 msgid "Check BOM when installing items" msgstr "" -#: common/models.py:1794 +#: common/models.py:1849 msgid "Installed stock items must exist in the BOM for the parent part" msgstr "" -#: common/models.py:1800 +#: common/models.py:1855 msgid "Allow Out of Stock Transfer" msgstr "" -#: common/models.py:1802 +#: common/models.py:1857 msgid "Allow stock items which are not in stock to be transferred between stock locations" msgstr "" -#: common/models.py:1808 +#: common/models.py:1863 msgid "Build Order Reference Pattern" msgstr "" -#: common/models.py:1810 +#: common/models.py:1865 msgid "Required pattern for generating Build Order reference field" msgstr "" -#: common/models.py:1816 common/models.py:1872 common/models.py:1894 -#: common/models.py:1930 +#: common/models.py:1871 common/models.py:1927 common/models.py:1949 +#: common/models.py:1985 msgid "Require Responsible Owner" msgstr "" -#: common/models.py:1817 common/models.py:1873 common/models.py:1895 -#: common/models.py:1931 +#: common/models.py:1872 common/models.py:1928 common/models.py:1950 +#: common/models.py:1986 msgid "A responsible owner must be assigned to each order" msgstr "" -#: common/models.py:1822 +#: common/models.py:1877 msgid "Require Active Part" msgstr "" -#: common/models.py:1823 +#: common/models.py:1878 msgid "Prevent build order creation for inactive parts" msgstr "" -#: common/models.py:1828 +#: common/models.py:1883 msgid "Require Locked Part" msgstr "" -#: common/models.py:1829 +#: common/models.py:1884 msgid "Prevent build order creation for unlocked parts" msgstr "" -#: common/models.py:1834 +#: common/models.py:1889 msgid "Require Valid BOM" msgstr "" -#: common/models.py:1836 +#: common/models.py:1891 msgid "Prevent build order creation unless BOM has been validated" msgstr "" -#: common/models.py:1842 +#: common/models.py:1897 msgid "Require Closed Child Orders" msgstr "" -#: common/models.py:1844 +#: common/models.py:1899 msgid "Prevent build order completion until all child orders are closed" msgstr "" -#: common/models.py:1850 +#: common/models.py:1905 msgid "Block Until Tests Pass" msgstr "" -#: common/models.py:1852 +#: common/models.py:1907 msgid "Prevent build outputs from being completed until all required tests pass" msgstr "" -#: common/models.py:1858 +#: common/models.py:1913 msgid "Enable Return Orders" msgstr "" -#: common/models.py:1859 +#: common/models.py:1914 msgid "Enable return order functionality in the user interface" msgstr "" -#: common/models.py:1864 +#: common/models.py:1919 msgid "Return Order Reference Pattern" msgstr "" -#: common/models.py:1866 +#: common/models.py:1921 msgid "Required pattern for generating Return Order reference field" msgstr "" -#: common/models.py:1878 +#: common/models.py:1933 msgid "Edit Completed Return Orders" msgstr "" -#: common/models.py:1880 +#: common/models.py:1935 msgid "Allow editing of return orders after they have been completed" msgstr "" -#: common/models.py:1886 +#: common/models.py:1941 msgid "Sales Order Reference Pattern" msgstr "" -#: common/models.py:1888 +#: common/models.py:1943 msgid "Required pattern for generating Sales Order reference field" msgstr "" -#: common/models.py:1900 +#: common/models.py:1955 msgid "Sales Order Default Shipment" msgstr "" -#: common/models.py:1901 +#: common/models.py:1956 msgid "Enable creation of default shipment with sales orders" msgstr "" -#: common/models.py:1906 +#: common/models.py:1961 msgid "Edit Completed Sales Orders" msgstr "" -#: common/models.py:1908 +#: common/models.py:1963 msgid "Allow editing of sales orders after they have been shipped or completed" msgstr "" -#: common/models.py:1914 +#: common/models.py:1969 msgid "Mark Shipped Orders as Complete" msgstr "" -#: common/models.py:1916 +#: common/models.py:1971 msgid "Sales orders marked as shipped will automatically be completed, bypassing the \"shipped\" status" msgstr "" -#: common/models.py:1922 +#: common/models.py:1977 msgid "Purchase Order Reference Pattern" msgstr "" -#: common/models.py:1924 +#: common/models.py:1979 msgid "Required pattern for generating Purchase Order reference field" msgstr "" -#: common/models.py:1936 +#: common/models.py:1991 msgid "Edit Completed Purchase Orders" msgstr "" -#: common/models.py:1938 +#: common/models.py:1993 msgid "Allow editing of purchase orders after they have been shipped or completed" msgstr "" -#: common/models.py:1944 +#: common/models.py:1999 msgid "Auto Complete Purchase Orders" msgstr "" -#: common/models.py:1946 +#: common/models.py:2001 msgid "Automatically mark purchase orders as complete when all line items are received" msgstr "" -#: common/models.py:1953 +#: common/models.py:2008 msgid "Enable password forgot" msgstr "" -#: common/models.py:1954 +#: common/models.py:2009 msgid "Enable password forgot function on the login pages" msgstr "" -#: common/models.py:1959 +#: common/models.py:2014 msgid "Enable registration" msgstr "" -#: common/models.py:1960 +#: common/models.py:2015 msgid "Enable self-registration for users on the login pages" msgstr "" -#: common/models.py:1965 +#: common/models.py:2020 msgid "Enable SSO" msgstr "" -#: common/models.py:1966 +#: common/models.py:2021 msgid "Enable SSO on the login pages" msgstr "" -#: common/models.py:1971 +#: common/models.py:2026 msgid "Enable SSO registration" msgstr "" -#: common/models.py:1973 +#: common/models.py:2028 msgid "Enable self-registration via SSO for users on the login pages" msgstr "" -#: common/models.py:1979 +#: common/models.py:2034 msgid "Enable SSO group sync" msgstr "" -#: common/models.py:1981 +#: common/models.py:2036 msgid "Enable synchronizing InvenTree groups with groups provided by the IdP" msgstr "" -#: common/models.py:1987 +#: common/models.py:2042 msgid "SSO group key" msgstr "" -#: common/models.py:1989 +#: common/models.py:2044 msgid "The name of the groups claim attribute provided by the IdP" msgstr "" -#: common/models.py:1995 +#: common/models.py:2050 msgid "SSO group map" msgstr "" -#: common/models.py:1997 +#: common/models.py:2052 msgid "A mapping from SSO groups to local InvenTree groups. If the local group does not exist, it will be created." msgstr "" -#: common/models.py:2003 +#: common/models.py:2058 msgid "Remove groups outside of SSO" msgstr "" -#: common/models.py:2005 +#: common/models.py:2060 msgid "Whether groups assigned to the user should be removed if they are not backend by the IdP. Disabling this setting might cause security issues" msgstr "" -#: common/models.py:2011 +#: common/models.py:2066 msgid "Email required" msgstr "" -#: common/models.py:2012 +#: common/models.py:2067 msgid "Require user to supply mail on signup" msgstr "" -#: common/models.py:2017 +#: common/models.py:2072 msgid "Auto-fill SSO users" msgstr "" -#: common/models.py:2019 +#: common/models.py:2074 msgid "Automatically fill out user-details from SSO account-data" msgstr "" -#: common/models.py:2025 +#: common/models.py:2080 msgid "Mail twice" msgstr "" -#: common/models.py:2026 +#: common/models.py:2081 msgid "On signup ask users twice for their mail" msgstr "" -#: common/models.py:2031 +#: common/models.py:2086 msgid "Password twice" msgstr "" -#: common/models.py:2032 +#: common/models.py:2087 msgid "On signup ask users twice for their password" msgstr "" -#: common/models.py:2037 +#: common/models.py:2092 msgid "Allowed domains" msgstr "" -#: common/models.py:2039 +#: common/models.py:2094 msgid "Restrict signup to certain domains (comma-separated, starting with @)" msgstr "" -#: common/models.py:2045 +#: common/models.py:2100 msgid "Group on signup" msgstr "" -#: common/models.py:2047 +#: common/models.py:2102 msgid "Group to which new users are assigned on registration. If SSO group sync is enabled, this group is only set if no group can be assigned from the IdP." msgstr "" -#: common/models.py:2053 +#: common/models.py:2108 msgid "Enforce MFA" msgstr "" -#: common/models.py:2054 +#: common/models.py:2109 msgid "Users must use multifactor security." msgstr "" -#: common/models.py:2059 +#: common/models.py:2114 msgid "Check plugins on startup" msgstr "" -#: common/models.py:2061 +#: common/models.py:2116 msgid "Check that all plugins are installed on startup - enable in container environments" msgstr "" -#: common/models.py:2069 +#: common/models.py:2124 msgid "Check for plugin updates" msgstr "" -#: common/models.py:2070 +#: common/models.py:2125 msgid "Enable periodic checks for updates to installed plugins" msgstr "" -#: common/models.py:2076 +#: common/models.py:2131 msgid "Enable URL integration" msgstr "" -#: common/models.py:2077 +#: common/models.py:2132 msgid "Enable plugins to add URL routes" msgstr "" -#: common/models.py:2083 +#: common/models.py:2138 msgid "Enable navigation integration" msgstr "" -#: common/models.py:2084 +#: common/models.py:2139 msgid "Enable plugins to integrate into navigation" msgstr "" -#: common/models.py:2090 +#: common/models.py:2145 msgid "Enable app integration" msgstr "" -#: common/models.py:2091 +#: common/models.py:2146 msgid "Enable plugins to add apps" msgstr "" -#: common/models.py:2097 +#: common/models.py:2152 msgid "Enable schedule integration" msgstr "" -#: common/models.py:2098 +#: common/models.py:2153 msgid "Enable plugins to run scheduled tasks" msgstr "" -#: common/models.py:2104 +#: common/models.py:2159 msgid "Enable event integration" msgstr "" -#: common/models.py:2105 +#: common/models.py:2160 msgid "Enable plugins to respond to internal events" msgstr "" -#: common/models.py:2111 +#: common/models.py:2166 +msgid "Enable interface integration" +msgstr "" + +#: common/models.py:2167 +msgid "Enable plugins to integrate into the user interface" +msgstr "" + +#: common/models.py:2173 msgid "Enable project codes" msgstr "" -#: common/models.py:2112 +#: common/models.py:2174 msgid "Enable project codes for tracking projects" msgstr "" -#: common/models.py:2117 +#: common/models.py:2179 msgid "Stocktake Functionality" msgstr "" -#: common/models.py:2119 +#: common/models.py:2181 msgid "Enable stocktake functionality for recording stock levels and calculating stock value" msgstr "" -#: common/models.py:2125 +#: common/models.py:2187 msgid "Exclude External Locations" msgstr "" -#: common/models.py:2127 +#: common/models.py:2189 msgid "Exclude stock items in external locations from stocktake calculations" msgstr "" -#: common/models.py:2133 +#: common/models.py:2195 msgid "Automatic Stocktake Period" msgstr "" -#: common/models.py:2135 +#: common/models.py:2197 msgid "Number of days between automatic stocktake recording (set to zero to disable)" msgstr "" -#: common/models.py:2141 +#: common/models.py:2203 msgid "Report Deletion Interval" msgstr "" -#: common/models.py:2143 +#: common/models.py:2205 msgid "Stocktake reports will be deleted after specified number of days" msgstr "" -#: common/models.py:2150 +#: common/models.py:2212 msgid "Display Users full names" msgstr "" -#: common/models.py:2151 +#: common/models.py:2213 msgid "Display Users full names instead of usernames" msgstr "" -#: common/models.py:2156 +#: common/models.py:2218 msgid "Enable Test Station Data" msgstr "" -#: common/models.py:2157 +#: common/models.py:2219 msgid "Enable test station data collection for test results" msgstr "" -#: common/models.py:2169 common/models.py:2549 -msgid "Settings key (must be unique - case insensitive" -msgstr "" - -#: common/models.py:2212 -msgid "Hide inactive parts" -msgstr "" - -#: common/models.py:2214 -msgid "Hide inactive parts in results displayed on the homepage" -msgstr "" - -#: common/models.py:2220 -msgid "Show subscribed parts" -msgstr "" - -#: common/models.py:2221 -msgid "Show subscribed parts on the homepage" +#: common/models.py:2224 +msgid "Create Template on Upload" msgstr "" #: common/models.py:2226 -msgid "Show subscribed categories" +msgid "Create a new test template when uploading test data which does not match an existing template" msgstr "" -#: common/models.py:2227 -msgid "Show subscribed part categories on the homepage" -msgstr "" - -#: common/models.py:2232 -msgid "Show latest parts" -msgstr "" - -#: common/models.py:2233 -msgid "Show latest parts on the homepage" -msgstr "" - -#: common/models.py:2238 -msgid "Show invalid BOMs" -msgstr "" - -#: common/models.py:2239 -msgid "Show BOMs that await validation on the homepage" -msgstr "" - -#: common/models.py:2244 -msgid "Show recent stock changes" -msgstr "" - -#: common/models.py:2245 -msgid "Show recently changed stock items on the homepage" -msgstr "" - -#: common/models.py:2250 -msgid "Show low stock" -msgstr "" - -#: common/models.py:2251 -msgid "Show low stock items on the homepage" -msgstr "" - -#: common/models.py:2256 -msgid "Show depleted stock" -msgstr "" - -#: common/models.py:2257 -msgid "Show depleted stock items on the homepage" -msgstr "" - -#: common/models.py:2262 -msgid "Show needed stock" -msgstr "" - -#: common/models.py:2263 -msgid "Show stock items needed for builds on the homepage" -msgstr "" - -#: common/models.py:2268 -msgid "Show expired stock" -msgstr "" - -#: common/models.py:2269 -msgid "Show expired stock items on the homepage" -msgstr "" - -#: common/models.py:2274 -msgid "Show stale stock" -msgstr "" - -#: common/models.py:2275 -msgid "Show stale stock items on the homepage" -msgstr "" - -#: common/models.py:2280 -msgid "Show pending builds" +#: common/models.py:2279 +msgid "Hide inactive parts" msgstr "" #: common/models.py:2281 -msgid "Show pending builds on the homepage" -msgstr "" - -#: common/models.py:2286 -msgid "Show overdue builds" +msgid "Hide inactive parts in results displayed on the homepage" msgstr "" #: common/models.py:2287 -msgid "Show overdue builds on the homepage" +msgid "Show subscribed parts" msgstr "" -#: common/models.py:2292 -msgid "Show outstanding POs" +#: common/models.py:2288 +msgid "Show subscribed parts on the homepage" msgstr "" #: common/models.py:2293 -msgid "Show outstanding POs on the homepage" +msgid "Show subscribed categories" msgstr "" -#: common/models.py:2298 -msgid "Show overdue POs" +#: common/models.py:2294 +msgid "Show subscribed part categories on the homepage" msgstr "" #: common/models.py:2299 -msgid "Show overdue POs on the homepage" +msgid "Show latest parts" msgstr "" -#: common/models.py:2304 -msgid "Show outstanding SOs" +#: common/models.py:2300 +msgid "Show latest parts on the homepage" msgstr "" #: common/models.py:2305 -msgid "Show outstanding SOs on the homepage" +msgid "Show invalid BOMs" msgstr "" -#: common/models.py:2310 -msgid "Show overdue SOs" +#: common/models.py:2306 +msgid "Show BOMs that await validation on the homepage" msgstr "" #: common/models.py:2311 -msgid "Show overdue SOs on the homepage" +msgid "Show recent stock changes" msgstr "" -#: common/models.py:2316 -msgid "Show pending SO shipments" +#: common/models.py:2312 +msgid "Show recently changed stock items on the homepage" msgstr "" #: common/models.py:2317 -msgid "Show pending SO shipments on the homepage" +msgid "Show low stock" msgstr "" -#: common/models.py:2322 -msgid "Show News" +#: common/models.py:2318 +msgid "Show low stock items on the homepage" msgstr "" #: common/models.py:2323 -msgid "Show news on the homepage" +msgid "Show depleted stock" msgstr "" -#: common/models.py:2328 -msgid "Inline label display" +#: common/models.py:2324 +msgid "Show depleted stock items on the homepage" +msgstr "" + +#: common/models.py:2329 +msgid "Show needed stock" msgstr "" #: common/models.py:2330 -msgid "Display PDF labels in the browser, instead of downloading as a file" +msgid "Show stock items needed for builds on the homepage" +msgstr "" + +#: common/models.py:2335 +msgid "Show expired stock" msgstr "" #: common/models.py:2336 -msgid "Default label printer" +msgid "Show expired stock items on the homepage" msgstr "" -#: common/models.py:2338 -msgid "Configure which label printer should be selected by default" +#: common/models.py:2341 +msgid "Show stale stock" msgstr "" -#: common/models.py:2344 -msgid "Inline report display" +#: common/models.py:2342 +msgid "Show stale stock items on the homepage" msgstr "" -#: common/models.py:2346 -msgid "Display PDF reports in the browser, instead of downloading as a file" +#: common/models.py:2347 +msgid "Show pending builds" msgstr "" -#: common/models.py:2352 -msgid "Search Parts" +#: common/models.py:2348 +msgid "Show pending builds on the homepage" msgstr "" #: common/models.py:2353 -msgid "Display parts in search preview window" +msgid "Show overdue builds" msgstr "" -#: common/models.py:2358 -msgid "Search Supplier Parts" +#: common/models.py:2354 +msgid "Show overdue builds on the homepage" msgstr "" #: common/models.py:2359 -msgid "Display supplier parts in search preview window" +msgid "Show outstanding POs" msgstr "" -#: common/models.py:2364 -msgid "Search Manufacturer Parts" +#: common/models.py:2360 +msgid "Show outstanding POs on the homepage" msgstr "" #: common/models.py:2365 -msgid "Display manufacturer parts in search preview window" +msgid "Show overdue POs" msgstr "" -#: common/models.py:2370 -msgid "Hide Inactive Parts" +#: common/models.py:2366 +msgid "Show overdue POs on the homepage" msgstr "" #: common/models.py:2371 -msgid "Excluded inactive parts from search preview window" +msgid "Show outstanding SOs" msgstr "" -#: common/models.py:2376 -msgid "Search Categories" +#: common/models.py:2372 +msgid "Show outstanding SOs on the homepage" msgstr "" #: common/models.py:2377 -msgid "Display part categories in search preview window" +msgid "Show overdue SOs" msgstr "" -#: common/models.py:2382 -msgid "Search Stock" +#: common/models.py:2378 +msgid "Show overdue SOs on the homepage" msgstr "" #: common/models.py:2383 -msgid "Display stock items in search preview window" +msgid "Show pending SO shipments" msgstr "" -#: common/models.py:2388 -msgid "Hide Unavailable Stock Items" +#: common/models.py:2384 +msgid "Show pending SO shipments on the homepage" +msgstr "" + +#: common/models.py:2389 +msgid "Show News" msgstr "" #: common/models.py:2390 -msgid "Exclude stock items which are not available from the search preview window" +msgid "Show news on the homepage" msgstr "" -#: common/models.py:2396 -msgid "Search Locations" +#: common/models.py:2395 +msgid "Inline label display" msgstr "" #: common/models.py:2397 -msgid "Display stock locations in search preview window" -msgstr "" - -#: common/models.py:2402 -msgid "Search Companies" +msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "" #: common/models.py:2403 -msgid "Display companies in search preview window" +msgid "Default label printer" msgstr "" -#: common/models.py:2408 -msgid "Search Build Orders" +#: common/models.py:2405 +msgid "Configure which label printer should be selected by default" msgstr "" -#: common/models.py:2409 -msgid "Display build orders in search preview window" +#: common/models.py:2411 +msgid "Inline report display" msgstr "" -#: common/models.py:2414 -msgid "Search Purchase Orders" +#: common/models.py:2413 +msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:2415 -msgid "Display purchase orders in search preview window" +#: common/models.py:2419 +msgid "Search Parts" msgstr "" #: common/models.py:2420 -msgid "Exclude Inactive Purchase Orders" +msgid "Display parts in search preview window" msgstr "" -#: common/models.py:2422 -msgid "Exclude inactive purchase orders from search preview window" +#: common/models.py:2425 +msgid "Search Supplier Parts" msgstr "" -#: common/models.py:2428 -msgid "Search Sales Orders" +#: common/models.py:2426 +msgid "Display supplier parts in search preview window" msgstr "" -#: common/models.py:2429 -msgid "Display sales orders in search preview window" +#: common/models.py:2431 +msgid "Search Manufacturer Parts" msgstr "" -#: common/models.py:2434 -msgid "Exclude Inactive Sales Orders" +#: common/models.py:2432 +msgid "Display manufacturer parts in search preview window" msgstr "" -#: common/models.py:2436 -msgid "Exclude inactive sales orders from search preview window" +#: common/models.py:2437 +msgid "Hide Inactive Parts" msgstr "" -#: common/models.py:2442 -msgid "Search Return Orders" +#: common/models.py:2438 +msgid "Excluded inactive parts from search preview window" msgstr "" #: common/models.py:2443 -msgid "Display return orders in search preview window" +msgid "Search Categories" msgstr "" -#: common/models.py:2448 -msgid "Exclude Inactive Return Orders" +#: common/models.py:2444 +msgid "Display part categories in search preview window" +msgstr "" + +#: common/models.py:2449 +msgid "Search Stock" msgstr "" #: common/models.py:2450 -msgid "Exclude inactive return orders from search preview window" +msgid "Display stock items in search preview window" msgstr "" -#: common/models.py:2456 -msgid "Search Preview Results" +#: common/models.py:2455 +msgid "Hide Unavailable Stock Items" msgstr "" -#: common/models.py:2458 -msgid "Number of results to show in each section of the search preview window" +#: common/models.py:2457 +msgid "Exclude stock items which are not available from the search preview window" +msgstr "" + +#: common/models.py:2463 +msgid "Search Locations" msgstr "" #: common/models.py:2464 -msgid "Regex Search" +msgid "Display stock locations in search preview window" msgstr "" -#: common/models.py:2465 -msgid "Enable regular expressions in search queries" +#: common/models.py:2469 +msgid "Search Companies" msgstr "" #: common/models.py:2470 -msgid "Whole Word Search" +msgid "Display companies in search preview window" msgstr "" -#: common/models.py:2471 -msgid "Search queries return results for whole word matches" +#: common/models.py:2475 +msgid "Search Build Orders" msgstr "" #: common/models.py:2476 -msgid "Show Quantity in Forms" +msgid "Display build orders in search preview window" msgstr "" -#: common/models.py:2477 -msgid "Display available part quantity in some forms" +#: common/models.py:2481 +msgid "Search Purchase Orders" msgstr "" #: common/models.py:2482 -msgid "Escape Key Closes Forms" +msgid "Display purchase orders in search preview window" msgstr "" -#: common/models.py:2483 -msgid "Use the escape key to close modal forms" -msgstr "" - -#: common/models.py:2488 -msgid "Fixed Navbar" +#: common/models.py:2487 +msgid "Exclude Inactive Purchase Orders" msgstr "" #: common/models.py:2489 -msgid "The navbar position is fixed to the top of the screen" -msgstr "" - -#: common/models.py:2494 -msgid "Date Format" +msgid "Exclude inactive purchase orders from search preview window" msgstr "" #: common/models.py:2495 -msgid "Preferred format for displaying dates" +msgid "Search Sales Orders" msgstr "" -#: common/models.py:2508 part/templates/part/detail.html:41 -msgid "Part Scheduling" +#: common/models.py:2496 +msgid "Display sales orders in search preview window" +msgstr "" + +#: common/models.py:2501 +msgid "Exclude Inactive Sales Orders" +msgstr "" + +#: common/models.py:2503 +msgid "Exclude inactive sales orders from search preview window" msgstr "" #: common/models.py:2509 -msgid "Display part scheduling information" +msgid "Search Return Orders" msgstr "" -#: common/models.py:2514 part/templates/part/detail.html:62 -msgid "Part Stocktake" +#: common/models.py:2510 +msgid "Display return orders in search preview window" msgstr "" -#: common/models.py:2516 -msgid "Display part stocktake information (if stocktake functionality is enabled)" +#: common/models.py:2515 +msgid "Exclude Inactive Return Orders" msgstr "" -#: common/models.py:2522 -msgid "Table String Length" +#: common/models.py:2517 +msgid "Exclude inactive return orders from search preview window" msgstr "" -#: common/models.py:2524 -msgid "Maximum length limit for strings displayed in table views" +#: common/models.py:2523 +msgid "Search Preview Results" msgstr "" -#: common/models.py:2530 -msgid "Receive error reports" +#: common/models.py:2525 +msgid "Number of results to show in each section of the search preview window" msgstr "" #: common/models.py:2531 -msgid "Receive notifications for system errors" +msgid "Regex Search" msgstr "" -#: common/models.py:2536 -msgid "Last used printing machines" +#: common/models.py:2532 +msgid "Enable regular expressions in search queries" msgstr "" #: common/models.py:2537 +msgid "Whole Word Search" +msgstr "" + +#: common/models.py:2538 +msgid "Search queries return results for whole word matches" +msgstr "" + +#: common/models.py:2543 +msgid "Show Quantity in Forms" +msgstr "" + +#: common/models.py:2544 +msgid "Display available part quantity in some forms" +msgstr "" + +#: common/models.py:2549 +msgid "Escape Key Closes Forms" +msgstr "" + +#: common/models.py:2550 +msgid "Use the escape key to close modal forms" +msgstr "" + +#: common/models.py:2555 +msgid "Fixed Navbar" +msgstr "" + +#: common/models.py:2556 +msgid "The navbar position is fixed to the top of the screen" +msgstr "" + +#: common/models.py:2561 +msgid "Date Format" +msgstr "" + +#: common/models.py:2562 +msgid "Preferred format for displaying dates" +msgstr "" + +#: common/models.py:2575 part/templates/part/detail.html:41 +msgid "Part Scheduling" +msgstr "" + +#: common/models.py:2576 +msgid "Display part scheduling information" +msgstr "" + +#: common/models.py:2581 part/templates/part/detail.html:62 +msgid "Part Stocktake" +msgstr "" + +#: common/models.py:2583 +msgid "Display part stocktake information (if stocktake functionality is enabled)" +msgstr "" + +#: common/models.py:2589 +msgid "Table String Length" +msgstr "" + +#: common/models.py:2591 +msgid "Maximum length limit for strings displayed in table views" +msgstr "" + +#: common/models.py:2597 +msgid "Receive error reports" +msgstr "" + +#: common/models.py:2598 +msgid "Receive notifications for system errors" +msgstr "" + +#: common/models.py:2603 +msgid "Last used printing machines" +msgstr "" + +#: common/models.py:2604 msgid "Save the last used printing machines for a user" msgstr "" -#: common/models.py:2557 common/models.py:2558 common/models.py:2715 -#: common/models.py:2716 common/models.py:2961 common/models.py:2962 -#: common/models.py:3288 common/models.py:3289 importer/models.py:88 -#: part/models.py:3307 part/models.py:3394 part/models.py:3468 -#: part/models.py:3496 plugin/models.py:274 plugin/models.py:275 -#: report/templates/report/inventree_test_report.html:105 -#: templates/js/translated/stock.js:3120 users/models.py:111 +#: common/models.py:2621 common/models.py:2622 common/models.py:2779 +#: common/models.py:2780 common/models.py:3025 common/models.py:3026 +#: common/models.py:3349 common/models.py:3350 common/models.py:3534 +#: importer/models.py:89 part/models.py:3358 part/models.py:3445 +#: part/models.py:3519 part/models.py:3547 plugin/models.py:313 +#: plugin/models.py:314 report/templates/report/inventree_test_report.html:105 +#: templates/js/translated/stock.js:3121 users/models.py:111 msgid "User" msgstr "" -#: common/models.py:2580 +#: common/models.py:2644 msgid "Price break quantity" msgstr "" -#: common/models.py:2587 company/serializers.py:513 order/admin.py:42 -#: order/models.py:1430 order/models.py:2417 -#: templates/js/translated/company.js:1823 templates/js/translated/part.js:1892 +#: common/models.py:2651 company/serializers.py:524 order/admin.py:42 +#: order/models.py:1447 order/models.py:2456 +#: templates/js/translated/company.js:1824 templates/js/translated/part.js:1892 #: templates/js/translated/pricing.js:621 #: templates/js/translated/return_order.js:739 msgid "Price" msgstr "" -#: common/models.py:2588 +#: common/models.py:2652 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:2692 common/models.py:2877 +#: common/models.py:2756 common/models.py:2941 msgid "Endpoint" msgstr "" -#: common/models.py:2693 +#: common/models.py:2757 msgid "Endpoint at which this webhook is received" msgstr "" -#: common/models.py:2703 +#: common/models.py:2767 msgid "Name for this webhook" msgstr "" -#: common/models.py:2707 +#: common/models.py:2771 msgid "Is this webhook active" msgstr "" -#: common/models.py:2723 users/models.py:159 +#: common/models.py:2787 users/models.py:159 msgid "Token" msgstr "" -#: common/models.py:2724 +#: common/models.py:2788 msgid "Token for access" msgstr "" -#: common/models.py:2732 +#: common/models.py:2796 msgid "Secret" msgstr "" -#: common/models.py:2733 +#: common/models.py:2797 msgid "Shared secret for HMAC" msgstr "" -#: common/models.py:2841 +#: common/models.py:2905 msgid "Message ID" msgstr "" -#: common/models.py:2842 +#: common/models.py:2906 msgid "Unique identifier for this message" msgstr "" -#: common/models.py:2850 +#: common/models.py:2914 msgid "Host" msgstr "" -#: common/models.py:2851 +#: common/models.py:2915 msgid "Host from which this message was received" msgstr "" -#: common/models.py:2859 +#: common/models.py:2923 msgid "Header" msgstr "" -#: common/models.py:2860 +#: common/models.py:2924 msgid "Header of this message" msgstr "" -#: common/models.py:2867 +#: common/models.py:2931 msgid "Body" msgstr "" -#: common/models.py:2868 +#: common/models.py:2932 msgid "Body of this message" msgstr "" -#: common/models.py:2878 +#: common/models.py:2942 msgid "Endpoint on which this message was received" msgstr "" -#: common/models.py:2883 +#: common/models.py:2947 msgid "Worked on" msgstr "" -#: common/models.py:2884 +#: common/models.py:2948 msgid "Was the work on this message finished?" msgstr "" -#: common/models.py:3010 +#: common/models.py:3074 msgid "Id" msgstr "" -#: common/models.py:3012 templates/js/translated/company.js:965 -#: templates/js/translated/news.js:44 +#: common/models.py:3076 part/serializers.py:271 +#: templates/js/translated/company.js:966 templates/js/translated/news.js:44 msgid "Title" msgstr "" -#: common/models.py:3014 common/models.py:3272 company/models.py:149 -#: company/models.py:446 company/models.py:512 company/models.py:818 -#: order/models.py:302 order/models.py:1385 order/models.py:1817 -#: part/admin.py:55 part/models.py:1057 +#: common/models.py:3078 common/models.py:3333 company/models.py:146 +#: company/models.py:443 company/models.py:509 company/models.py:815 +#: order/models.py:309 order/models.py:1402 order/models.py:1846 +#: part/admin.py:55 part/models.py:1118 #: part/templates/part/part_scheduling.html:11 #: report/templates/report/inventree_build_order_report.html:164 -#: stock/admin.py:229 templates/js/translated/company.js:1319 -#: templates/js/translated/company.js:1673 templates/js/translated/order.js:376 +#: stock/admin.py:230 templates/js/translated/company.js:1320 +#: templates/js/translated/company.js:1674 templates/js/translated/order.js:376 #: templates/js/translated/part.js:2475 -#: templates/js/translated/purchase_order.js:2110 -#: templates/js/translated/purchase_order.js:2274 +#: templates/js/translated/purchase_order.js:2094 +#: templates/js/translated/purchase_order.js:2258 #: templates/js/translated/return_order.js:778 -#: templates/js/translated/sales_order.js:1092 -#: templates/js/translated/sales_order.js:2023 +#: templates/js/translated/sales_order.js:1058 +#: templates/js/translated/sales_order.js:2004 msgid "Link" msgstr "" -#: common/models.py:3016 templates/js/translated/news.js:60 +#: common/models.py:3080 templates/js/translated/news.js:60 msgid "Published" msgstr "" -#: common/models.py:3018 templates/InvenTree/settings/plugin_settings.html:32 +#: common/models.py:3082 templates/InvenTree/settings/plugin_settings.html:32 #: templates/js/translated/news.js:56 templates/js/translated/plugin.js:103 msgid "Author" msgstr "" -#: common/models.py:3020 templates/js/translated/news.js:52 +#: common/models.py:3084 templates/js/translated/news.js:52 msgid "Summary" msgstr "" -#: common/models.py:3023 +#: common/models.py:3087 msgid "Read" msgstr "" -#: common/models.py:3023 +#: common/models.py:3087 msgid "Was this news item read?" msgstr "" -#: common/models.py:3040 company/models.py:159 part/models.py:1067 +#: common/models.py:3104 company/models.py:156 part/models.py:1128 #: report/templates/report/inventree_bill_of_materials_report.html:126 #: report/templates/report/inventree_bill_of_materials_report.html:148 #: report/templates/report/inventree_return_order_report.html:35 -#: stock/templates/stock/item_base.html:133 templates/503.html:31 +#: stock/templates/stock/item_base.html:130 templates/503.html:31 #: templates/hover_image.html:7 templates/hover_image.html:9 #: templates/modals.html:6 msgid "Image" msgstr "" -#: common/models.py:3040 +#: common/models.py:3104 msgid "Image file" msgstr "" -#: common/models.py:3052 common/models.py:3256 +#: common/models.py:3116 common/models.py:3317 msgid "Target model type for this image" msgstr "" -#: common/models.py:3056 +#: common/models.py:3120 msgid "Target model ID for this image" msgstr "" -#: common/models.py:3078 +#: common/models.py:3142 msgid "Custom Unit" msgstr "" -#: common/models.py:3099 +#: common/models.py:3160 msgid "Unit symbol must be unique" msgstr "" -#: common/models.py:3114 +#: common/models.py:3175 msgid "Unit name must be a valid identifier" msgstr "" -#: common/models.py:3133 +#: common/models.py:3194 msgid "Unit name" msgstr "" -#: common/models.py:3140 templates/InvenTree/settings/settings_staff_js.html:75 +#: common/models.py:3201 templates/InvenTree/settings/settings_staff_js.html:75 msgid "Symbol" msgstr "" -#: common/models.py:3141 +#: common/models.py:3202 msgid "Optional unit symbol" msgstr "" -#: common/models.py:3147 templates/InvenTree/settings/settings_staff_js.html:71 +#: common/models.py:3208 templates/InvenTree/settings/settings_staff_js.html:71 msgid "Definition" msgstr "" -#: common/models.py:3148 +#: common/models.py:3209 msgid "Unit definition" msgstr "" -#: common/models.py:3206 common/models.py:3263 stock/models.py:2558 -#: templates/js/translated/attachment.js:119 +#: common/models.py:3267 common/models.py:3324 stock/models.py:2674 +#: stock/serializers.py:244 templates/js/translated/attachment.js:119 #: templates/js/translated/attachment.js:345 msgid "Attachment" msgstr "" -#: common/models.py:3218 +#: common/models.py:3279 msgid "Missing file" msgstr "" -#: common/models.py:3219 +#: common/models.py:3280 msgid "Missing external link" msgstr "" -#: common/models.py:3264 +#: common/models.py:3325 msgid "Select file to attach" msgstr "" -#: common/models.py:3279 templates/js/translated/attachment.js:120 +#: common/models.py:3340 templates/js/translated/attachment.js:120 #: templates/js/translated/attachment.js:360 msgid "Comment" msgstr "" -#: common/models.py:3280 +#: common/models.py:3341 msgid "Attachment comment" msgstr "" -#: common/models.py:3296 +#: common/models.py:3357 msgid "Upload date" msgstr "" -#: common/models.py:3297 +#: common/models.py:3358 msgid "Date the file was uploaded" msgstr "" -#: common/models.py:3301 +#: common/models.py:3362 msgid "File size" msgstr "" -#: common/models.py:3301 +#: common/models.py:3362 msgid "File size in bytes" msgstr "" -#: common/models.py:3339 common/serializers.py:562 +#: common/models.py:3400 common/serializers.py:609 msgid "Invalid model type specified for attachment" msgstr "" -#: common/notifications.py:314 +#: common/models.py:3409 plugin/models.py:43 users/models.py:100 +msgid "Key" +msgstr "" + +#: common/models.py:3410 +msgid "Value that will be saved in the models database" +msgstr "" + +#: common/models.py:3413 +msgid "Name of the state" +msgstr "" + +#: common/models.py:3417 part/serializers.py:273 +msgid "Label" +msgstr "" + +#: common/models.py:3418 +msgid "Label that will be displayed in the frontend" +msgstr "" + +#: common/models.py:3424 +msgid "Color" +msgstr "" + +#: common/models.py:3425 +msgid "Color that will be displayed in the frontend" +msgstr "" + +#: common/models.py:3428 +msgid "Logical Key" +msgstr "" + +#: common/models.py:3430 +msgid "State logical key that is equal to this custom state in business logic" +msgstr "" + +#: common/models.py:3438 part/serializers.py:275 +msgid "Model" +msgstr "" + +#: common/models.py:3439 +msgid "Model this state is associated with" +msgstr "" + +#: common/models.py:3443 +msgid "Reference Status Set" +msgstr "" + +#: common/models.py:3444 +msgid "Status set that is extended with this custom state" +msgstr "" + +#: common/models.py:3450 +msgid "Custom State" +msgstr "" + +#: common/models.py:3451 +msgid "Custom States" +msgstr "" + +#: common/models.py:3466 +msgid "Model must be selected" +msgstr "" + +#: common/models.py:3469 +msgid "Key must be selected" +msgstr "" + +#: common/models.py:3472 +msgid "Logical key must be selected" +msgstr "" + +#: common/models.py:3476 +msgid "Key must be different from logical key" +msgstr "" + +#: common/models.py:3480 +msgid "Reference status must be selected" +msgstr "" + +#: common/models.py:3492 +msgid "Reference status set not found" +msgstr "" + +#: common/models.py:3498 +msgid "Key must be different from the logical keys of the reference status" +msgstr "" + +#: common/models.py:3504 +msgid "Logical key must be in the logical keys of the reference status" +msgstr "" + +#: common/models.py:3519 +msgid "Barcode Scan" +msgstr "" + +#: common/models.py:3523 importer/models.py:512 part/models.py:4009 +msgid "Data" +msgstr "" + +#: common/models.py:3524 +msgid "Barcode data" +msgstr "" + +#: common/models.py:3535 +msgid "User who scanned the barcode" +msgstr "" + +#: common/models.py:3540 importer/models.py:60 +msgid "Timestamp" +msgstr "" + +#: common/models.py:3541 +msgid "Date and time of the barcode scan" +msgstr "" + +#: common/models.py:3547 +msgid "URL endpoint which processed the barcode" +msgstr "" + +#: common/models.py:3554 order/models.py:1437 plugin/serializers.py:89 +msgid "Context" +msgstr "" + +#: common/models.py:3555 +msgid "Context data for the barcode scan" +msgstr "" + +#: common/models.py:3562 +msgid "Response" +msgstr "" + +#: common/models.py:3563 +msgid "Response data from the barcode scan" +msgstr "" + +#: common/models.py:3569 report/templates/report/inventree_test_report.html:103 +#: stock/models.py:2660 +msgid "Result" +msgstr "" + +#: common/models.py:3570 +msgid "Was the barcode scan successful?" +msgstr "" + +#: common/notifications.py:328 #, python-brace-format msgid "New {verbose_name}" msgstr "" -#: common/notifications.py:316 +#: common/notifications.py:330 msgid "A new order has been created and assigned to you" msgstr "" -#: common/notifications.py:322 +#: common/notifications.py:336 #, python-brace-format msgid "{verbose_name} canceled" msgstr "" -#: common/notifications.py:324 +#: common/notifications.py:338 msgid "A order that is assigned to you was canceled" msgstr "" -#: common/notifications.py:330 common/notifications.py:337 order/api.py:462 +#: common/notifications.py:344 common/notifications.py:351 order/api.py:440 msgid "Items Received" msgstr "" -#: common/notifications.py:332 +#: common/notifications.py:346 msgid "Items have been received against a purchase order" msgstr "" -#: common/notifications.py:339 +#: common/notifications.py:353 msgid "Items have been received against a return order" msgstr "" -#: common/notifications.py:457 +#: common/notifications.py:475 msgid "Error raised by plugin" msgstr "" -#: common/serializers.py:375 +#: common/serializers.py:423 msgid "Is Running" msgstr "" -#: common/serializers.py:381 +#: common/serializers.py:429 msgid "Pending Tasks" msgstr "" -#: common/serializers.py:387 +#: common/serializers.py:435 msgid "Scheduled Tasks" msgstr "" -#: common/serializers.py:393 +#: common/serializers.py:441 msgid "Failed Tasks" msgstr "" -#: common/serializers.py:408 +#: common/serializers.py:456 msgid "Task ID" msgstr "" -#: common/serializers.py:408 +#: common/serializers.py:456 msgid "Unique task ID" msgstr "" -#: common/serializers.py:410 +#: common/serializers.py:458 msgid "Lock" msgstr "" -#: common/serializers.py:410 +#: common/serializers.py:458 msgid "Lock time" msgstr "" -#: common/serializers.py:412 +#: common/serializers.py:460 msgid "Task name" msgstr "" -#: common/serializers.py:414 +#: common/serializers.py:462 msgid "Function" msgstr "" -#: common/serializers.py:414 +#: common/serializers.py:462 msgid "Function name" msgstr "" -#: common/serializers.py:416 +#: common/serializers.py:464 msgid "Arguments" msgstr "" -#: common/serializers.py:416 +#: common/serializers.py:464 msgid "Task arguments" msgstr "" -#: common/serializers.py:419 +#: common/serializers.py:467 msgid "Keyword Arguments" msgstr "" -#: common/serializers.py:419 +#: common/serializers.py:467 msgid "Task keyword arguments" msgstr "" -#: common/serializers.py:529 +#: common/serializers.py:577 msgid "Filename" msgstr "" -#: common/serializers.py:536 report/api.py:100 report/serializers.py:53 +#: common/serializers.py:584 report/api.py:100 report/serializers.py:54 msgid "Model Type" msgstr "" -#: common/serializers.py:565 +#: common/serializers.py:612 msgid "User does not have permission to create or edit attachments for this model" msgstr "" @@ -4117,15 +4296,15 @@ msgstr "" msgid "Match Items" msgstr "" -#: common/views.py:401 +#: common/views.py:397 msgid "Fields matching failed" msgstr "" -#: common/views.py:464 +#: common/views.py:460 msgid "Parts imported" msgstr "" -#: common/views.py:494 order/templates/order/order_wizard/match_fields.html:27 +#: common/views.py:490 order/templates/order/order_wizard/match_fields.html:27 #: order/templates/order/order_wizard/match_parts.html:19 #: order/templates/order/order_wizard/po_upload.html:49 #: part/templates/part/import_wizard/match_fields.html:27 @@ -4156,429 +4335,429 @@ msgstr "" msgid "Supplier is Active" msgstr "" -#: company/models.py:100 company/models.py:371 +#: company/models.py:97 company/models.py:368 #: company/templates/company/company_base.html:8 #: company/templates/company/company_base.html:12 stock/api.py:812 -#: templates/InvenTree/search.html:178 templates/js/translated/company.js:496 +#: templates/InvenTree/search.html:178 templates/js/translated/company.js:497 msgid "Company" msgstr "" -#: company/models.py:101 company/views.py:51 +#: company/models.py:98 company/views.py:51 #: templates/js/translated/search.js:192 msgid "Companies" msgstr "" -#: company/models.py:117 +#: company/models.py:114 msgid "Company description" msgstr "" -#: company/models.py:118 +#: company/models.py:115 msgid "Description of the company" msgstr "" -#: company/models.py:123 company/templates/company/company_base.html:106 +#: company/models.py:120 company/templates/company/company_base.html:106 #: templates/InvenTree/settings/plugin_settings.html:54 -#: templates/js/translated/company.js:532 +#: templates/js/translated/company.js:533 msgid "Website" msgstr "" -#: company/models.py:123 +#: company/models.py:120 msgid "Company website URL" msgstr "" -#: company/models.py:128 +#: company/models.py:125 msgid "Phone number" msgstr "" -#: company/models.py:130 +#: company/models.py:127 msgid "Contact phone number" msgstr "" -#: company/models.py:137 +#: company/models.py:134 msgid "Contact email address" msgstr "" -#: company/models.py:142 company/models.py:275 -#: company/templates/company/company_base.html:145 order/models.py:342 -#: order/templates/order/order_base.html:208 -#: order/templates/order/return_order_base.html:177 -#: order/templates/order/sales_order_base.html:221 +#: company/models.py:139 company/models.py:272 +#: company/templates/company/company_base.html:145 order/models.py:349 +#: order/templates/order/order_base.html:217 +#: order/templates/order/return_order_base.html:178 +#: order/templates/order/sales_order_base.html:222 msgid "Contact" msgstr "" -#: company/models.py:144 +#: company/models.py:141 msgid "Point of contact" msgstr "" -#: company/models.py:150 +#: company/models.py:147 msgid "Link to external company information" msgstr "" -#: company/models.py:163 +#: company/models.py:160 msgid "Is this company active?" msgstr "" -#: company/models.py:168 +#: company/models.py:165 msgid "Is customer" msgstr "" -#: company/models.py:169 +#: company/models.py:166 msgid "Do you sell items to this company?" msgstr "" -#: company/models.py:174 +#: company/models.py:171 msgid "Is supplier" msgstr "" -#: company/models.py:175 +#: company/models.py:172 msgid "Do you purchase items from this company?" msgstr "" -#: company/models.py:180 +#: company/models.py:177 msgid "Is manufacturer" msgstr "" -#: company/models.py:181 +#: company/models.py:178 msgid "Does this company manufacture parts?" msgstr "" -#: company/models.py:189 +#: company/models.py:186 msgid "Default currency used for this company" msgstr "" -#: company/models.py:314 company/templates/company/company_base.html:124 -#: order/models.py:352 order/templates/order/order_base.html:215 -#: order/templates/order/return_order_base.html:184 -#: order/templates/order/sales_order_base.html:228 +#: company/models.py:311 company/templates/company/company_base.html:124 +#: order/models.py:359 order/templates/order/order_base.html:224 +#: order/templates/order/return_order_base.html:185 +#: order/templates/order/sales_order_base.html:229 msgid "Address" msgstr "" -#: company/models.py:315 company/templates/company/sidebar.html:35 +#: company/models.py:312 company/templates/company/sidebar.html:35 msgid "Addresses" msgstr "" -#: company/models.py:372 +#: company/models.py:369 msgid "Select company" msgstr "" -#: company/models.py:377 +#: company/models.py:374 msgid "Address title" msgstr "" -#: company/models.py:378 +#: company/models.py:375 msgid "Title describing the address entry" msgstr "" -#: company/models.py:384 +#: company/models.py:381 msgid "Primary address" msgstr "" -#: company/models.py:385 +#: company/models.py:382 msgid "Set as primary address" msgstr "" -#: company/models.py:390 templates/js/translated/company.js:914 -#: templates/js/translated/company.js:971 +#: company/models.py:387 templates/js/translated/company.js:915 +#: templates/js/translated/company.js:972 msgid "Line 1" msgstr "" -#: company/models.py:391 +#: company/models.py:388 msgid "Address line 1" msgstr "" -#: company/models.py:397 templates/js/translated/company.js:915 -#: templates/js/translated/company.js:977 +#: company/models.py:394 templates/js/translated/company.js:916 +#: templates/js/translated/company.js:978 msgid "Line 2" msgstr "" -#: company/models.py:398 +#: company/models.py:395 msgid "Address line 2" msgstr "" -#: company/models.py:404 company/models.py:405 -#: templates/js/translated/company.js:983 +#: company/models.py:401 company/models.py:402 +#: templates/js/translated/company.js:984 msgid "Postal code" msgstr "" -#: company/models.py:411 +#: company/models.py:408 msgid "City/Region" msgstr "" -#: company/models.py:412 +#: company/models.py:409 msgid "Postal code city/region" msgstr "" -#: company/models.py:418 +#: company/models.py:415 msgid "State/Province" msgstr "" -#: company/models.py:419 +#: company/models.py:416 msgid "State or province" msgstr "" -#: company/models.py:425 templates/js/translated/company.js:1001 +#: company/models.py:422 templates/js/translated/company.js:1002 msgid "Country" msgstr "" -#: company/models.py:426 +#: company/models.py:423 msgid "Address country" msgstr "" -#: company/models.py:432 +#: company/models.py:429 msgid "Courier shipping notes" msgstr "" -#: company/models.py:433 +#: company/models.py:430 msgid "Notes for shipping courier" msgstr "" -#: company/models.py:439 +#: company/models.py:436 msgid "Internal shipping notes" msgstr "" -#: company/models.py:440 +#: company/models.py:437 msgid "Shipping notes for internal use" msgstr "" -#: company/models.py:447 +#: company/models.py:444 msgid "Link to address information (external)" msgstr "" -#: company/models.py:470 company/models.py:587 company/models.py:811 +#: company/models.py:467 company/models.py:584 company/models.py:808 #: company/templates/company/manufacturer_part.html:7 #: company/templates/company/manufacturer_part.html:24 -#: stock/templates/stock/item_base.html:217 +#: stock/templates/stock/item_base.html:214 msgid "Manufacturer Part" msgstr "" -#: company/models.py:487 company/models.py:779 stock/models.py:787 -#: stock/serializers.py:445 stock/templates/stock/item_base.html:142 +#: company/models.py:484 company/models.py:776 stock/models.py:864 +#: stock/serializers.py:455 stock/templates/stock/item_base.html:139 #: templates/js/translated/bom.js:622 msgid "Base Part" msgstr "" -#: company/models.py:489 company/models.py:781 +#: company/models.py:486 company/models.py:778 msgid "Select part" msgstr "" -#: company/models.py:498 company/templates/company/company_base.html:82 +#: company/models.py:495 company/templates/company/company_base.html:82 #: company/templates/company/manufacturer_part.html:90 -#: company/templates/company/supplier_part.html:145 part/serializers.py:554 -#: stock/templates/stock/item_base.html:207 -#: templates/js/translated/company.js:507 -#: templates/js/translated/company.js:1118 -#: templates/js/translated/company.js:1296 -#: templates/js/translated/company.js:1611 +#: company/templates/company/supplier_part.html:146 part/serializers.py:598 +#: stock/templates/stock/item_base.html:204 +#: templates/js/translated/company.js:508 +#: templates/js/translated/company.js:1119 +#: templates/js/translated/company.js:1297 +#: templates/js/translated/company.js:1612 #: templates/js/translated/table_filters.js:812 msgid "Manufacturer" msgstr "" -#: company/models.py:499 +#: company/models.py:496 msgid "Select manufacturer" msgstr "" -#: company/models.py:505 company/templates/company/manufacturer_part.html:101 -#: company/templates/company/supplier_part.html:153 order/serializers.py:556 -#: part/serializers.py:564 templates/js/translated/company.js:351 -#: templates/js/translated/company.js:1117 -#: templates/js/translated/company.js:1312 -#: templates/js/translated/company.js:1630 templates/js/translated/part.js:1807 -#: templates/js/translated/purchase_order.js:1921 -#: templates/js/translated/purchase_order.js:2123 +#: company/models.py:502 company/templates/company/manufacturer_part.html:101 +#: company/templates/company/supplier_part.html:154 order/serializers.py:641 +#: part/serializers.py:608 templates/js/translated/company.js:352 +#: templates/js/translated/company.js:1118 +#: templates/js/translated/company.js:1313 +#: templates/js/translated/company.js:1631 templates/js/translated/part.js:1807 +#: templates/js/translated/purchase_order.js:1905 +#: templates/js/translated/purchase_order.js:2107 msgid "MPN" msgstr "" -#: company/models.py:513 +#: company/models.py:510 msgid "URL for external manufacturer part link" msgstr "" -#: company/models.py:522 +#: company/models.py:519 msgid "Manufacturer part description" msgstr "" -#: company/models.py:575 +#: company/models.py:572 msgid "Manufacturer Part Parameter" msgstr "" -#: company/models.py:594 +#: company/models.py:591 msgid "Parameter name" msgstr "" -#: company/models.py:600 report/templates/report/inventree_test_report.html:104 -#: stock/models.py:2550 templates/js/translated/company.js:1166 -#: templates/js/translated/company.js:1419 templates/js/translated/part.js:1499 +#: company/models.py:597 report/templates/report/inventree_test_report.html:104 +#: stock/models.py:2666 templates/js/translated/company.js:1167 +#: templates/js/translated/company.js:1420 templates/js/translated/part.js:1499 #: templates/js/translated/stock.js:1607 msgid "Value" msgstr "" -#: company/models.py:601 +#: company/models.py:598 msgid "Parameter value" msgstr "" -#: company/models.py:608 company/templates/company/supplier_part.html:168 -#: part/admin.py:57 part/models.py:1147 part/models.py:3771 -#: part/templates/part/part_base.html:293 -#: templates/js/translated/company.js:1425 templates/js/translated/part.js:1518 +#: company/models.py:605 company/templates/company/supplier_part.html:169 +#: part/admin.py:57 part/models.py:1208 part/models.py:3822 +#: part/templates/part/part_base.html:301 +#: templates/js/translated/company.js:1426 templates/js/translated/part.js:1518 #: templates/js/translated/part.js:1622 templates/js/translated/part.js:2376 msgid "Units" msgstr "" -#: company/models.py:609 +#: company/models.py:606 msgid "Parameter units" msgstr "" -#: company/models.py:662 company/templates/company/supplier_part.html:7 -#: company/templates/company/supplier_part.html:24 order/api.py:442 -#: order/serializers.py:491 stock/models.py:798 -#: stock/templates/stock/item_base.html:233 -#: templates/js/translated/build.js:1052 -#: templates/js/translated/company.js:1600 -#: templates/js/translated/purchase_order.js:752 -#: templates/js/translated/stock.js:2365 +#: company/models.py:659 company/templates/company/supplier_part.html:8 +#: company/templates/company/supplier_part.html:25 order/api.py:392 +#: order/serializers.py:576 stock/models.py:875 +#: stock/templates/stock/item_base.html:230 +#: templates/js/translated/build.js:1055 +#: templates/js/translated/company.js:1601 +#: templates/js/translated/purchase_order.js:735 +#: templates/js/translated/stock.js:2366 msgid "Supplier Part" msgstr "" -#: company/models.py:719 +#: company/models.py:716 msgid "Pack units must be compatible with the base part units" msgstr "" -#: company/models.py:726 +#: company/models.py:723 msgid "Pack units must be greater than zero" msgstr "" -#: company/models.py:740 +#: company/models.py:737 msgid "Linked manufacturer part must reference the same base part" msgstr "" -#: company/models.py:789 company/templates/company/company_base.html:87 -#: company/templates/company/supplier_part.html:129 order/models.py:491 -#: order/templates/order/order_base.html:141 part/bom.py:280 part/bom.py:318 -#: part/serializers.py:538 plugin/builtin/suppliers/digikey.py:25 +#: company/models.py:786 company/templates/company/company_base.html:87 +#: company/templates/company/supplier_part.html:130 order/models.py:503 +#: order/templates/order/order_base.html:150 part/bom.py:279 part/bom.py:314 +#: part/serializers.py:582 plugin/builtin/suppliers/digikey.py:25 #: plugin/builtin/suppliers/lcsc.py:26 plugin/builtin/suppliers/mouser.py:24 -#: plugin/builtin/suppliers/tme.py:26 stock/templates/stock/item_base.html:224 +#: plugin/builtin/suppliers/tme.py:26 stock/templates/stock/item_base.html:221 #: templates/email/overdue_purchase_order.html:16 -#: templates/js/translated/company.js:350 -#: templates/js/translated/company.js:511 -#: templates/js/translated/company.js:1584 templates/js/translated/part.js:1775 +#: templates/js/translated/company.js:351 +#: templates/js/translated/company.js:512 +#: templates/js/translated/company.js:1585 templates/js/translated/part.js:1775 #: templates/js/translated/pricing.js:498 -#: templates/js/translated/purchase_order.js:1759 +#: templates/js/translated/purchase_order.js:1743 #: templates/js/translated/table_filters.js:816 msgid "Supplier" msgstr "" -#: company/models.py:790 +#: company/models.py:787 msgid "Select supplier" msgstr "" -#: company/models.py:796 part/serializers.py:549 +#: company/models.py:793 part/serializers.py:593 msgid "Supplier stock keeping unit" msgstr "" -#: company/models.py:802 +#: company/models.py:799 msgid "Is this supplier part active?" msgstr "" -#: company/models.py:812 +#: company/models.py:809 msgid "Select manufacturer part" msgstr "" -#: company/models.py:819 +#: company/models.py:816 msgid "URL for external supplier part link" msgstr "" -#: company/models.py:828 +#: company/models.py:825 msgid "Supplier part description" msgstr "" -#: company/models.py:835 company/templates/company/supplier_part.html:187 -#: order/serializers.py:698 part/admin.py:415 part/models.py:4288 +#: company/models.py:832 company/templates/company/supplier_part.html:188 +#: order/serializers.py:783 part/admin.py:415 part/models.py:4345 #: part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_bill_of_materials_report.html:140 #: report/templates/report/inventree_purchase_order_report.html:32 #: report/templates/report/inventree_return_order_report.html:27 #: report/templates/report/inventree_sales_order_report.html:32 #: report/templates/report/inventree_stock_location_report.html:105 -#: stock/serializers.py:776 templates/js/translated/purchase_order.js:1185 -#: templates/js/translated/purchase_order.js:1344 +#: stock/serializers.py:807 templates/js/translated/purchase_order.js:1168 +#: templates/js/translated/purchase_order.js:1327 msgid "Note" msgstr "" -#: company/models.py:844 part/models.py:2117 +#: company/models.py:841 part/models.py:2177 msgid "base cost" msgstr "" -#: company/models.py:845 part/models.py:2118 +#: company/models.py:842 part/models.py:2178 msgid "Minimum charge (e.g. stocking fee)" msgstr "" -#: company/models.py:853 +#: company/models.py:850 msgid "Part packaging" msgstr "" -#: company/models.py:858 templates/js/translated/company.js:1651 +#: company/models.py:855 templates/js/translated/company.js:1652 #: templates/js/translated/part.js:1828 templates/js/translated/part.js:1884 -#: templates/js/translated/purchase_order.js:311 -#: templates/js/translated/purchase_order.js:841 -#: templates/js/translated/purchase_order.js:1103 -#: templates/js/translated/purchase_order.js:2154 -#: templates/js/translated/purchase_order.js:2171 +#: templates/js/translated/purchase_order.js:294 +#: templates/js/translated/purchase_order.js:824 +#: templates/js/translated/purchase_order.js:1086 +#: templates/js/translated/purchase_order.js:2138 +#: templates/js/translated/purchase_order.js:2155 msgid "Pack Quantity" msgstr "" -#: company/models.py:860 +#: company/models.py:857 msgid "Total quantity supplied in a single pack. Leave empty for single items." msgstr "" -#: company/models.py:879 part/models.py:2124 +#: company/models.py:876 part/models.py:2184 msgid "multiple" msgstr "" -#: company/models.py:880 +#: company/models.py:877 msgid "Order multiple" msgstr "" -#: company/models.py:892 +#: company/models.py:889 msgid "Quantity available from supplier" msgstr "" -#: company/models.py:898 +#: company/models.py:895 msgid "Availability Updated" msgstr "" -#: company/models.py:899 +#: company/models.py:896 msgid "Date of last update of availability data" msgstr "" -#: company/models.py:1027 +#: company/models.py:1024 msgid "Supplier Price Break" msgstr "" -#: company/serializers.py:174 +#: company/serializers.py:178 msgid "Default currency used for this supplier" msgstr "" -#: company/serializers.py:210 +#: company/serializers.py:214 msgid "Company Name" msgstr "" -#: company/serializers.py:393 part/admin.py:126 part/serializers.py:898 -#: part/templates/part/part_base.html:197 -#: templates/js/translated/company.js:1689 +#: company/serializers.py:397 part/admin.py:126 part/serializers.py:950 +#: part/templates/part/part_base.html:198 stock/serializers.py:474 +#: templates/js/translated/company.js:1690 #: templates/js/translated/table_filters.js:362 msgid "In Stock" msgstr "" #: company/templates/company/company_base.html:16 -#: part/templates/part/part_base.html:146 -#: templates/js/translated/company.js:1287 -#: templates/js/translated/company.js:1575 -#: templates/js/translated/model_renderers.js:313 +#: part/templates/part/part_base.html:147 +#: templates/js/translated/company.js:1288 +#: templates/js/translated/company.js:1576 +#: templates/js/translated/model_renderers.js:316 #: templates/js/translated/part.js:817 templates/js/translated/part.js:1225 msgid "Inactive" msgstr "" #: company/templates/company/company_base.html:27 -#: templates/js/translated/purchase_order.js:242 +#: templates/js/translated/purchase_order.js:224 msgid "Create Purchase Order" msgstr "" @@ -4591,7 +4770,7 @@ msgid "Edit company information" msgstr "" #: company/templates/company/company_base.html:39 -#: templates/js/translated/company.js:445 +#: templates/js/translated/company.js:446 msgid "Edit Company" msgstr "" @@ -4606,11 +4785,12 @@ msgstr "" #: company/templates/company/company_base.html:53 #: company/templates/company/manufacturer_part.html:51 -#: company/templates/company/supplier_part.html:83 +#: company/templates/company/supplier_part.html:84 #: part/templates/part/part_thumb.html:20 #: report/templates/report/inventree_build_order_report.html:98 #: report/templates/report/inventree_purchase_order_report.html:40 #: report/templates/report/inventree_sales_order_report.html:40 +#: report/templates/report/inventree_sales_order_shipment_report.html:37 #: report/templates/report/inventree_test_report.html:84 #: report/templates/report/inventree_test_report.html:162 msgid "Part image" @@ -4631,16 +4811,16 @@ msgstr "" msgid "Delete image" msgstr "" -#: company/templates/company/company_base.html:92 order/models.py:990 -#: order/models.py:2147 order/templates/order/return_order_base.html:134 -#: order/templates/order/sales_order_base.html:151 stock/models.py:840 -#: stock/models.py:841 stock/serializers.py:1329 -#: stock/templates/stock/item_base.html:405 +#: company/templates/company/company_base.html:92 order/models.py:1017 +#: order/models.py:2186 order/templates/order/return_order_base.html:135 +#: order/templates/order/sales_order_base.html:152 stock/models.py:917 +#: stock/models.py:918 stock/serializers.py:1360 +#: stock/templates/stock/item_base.html:402 #: templates/email/overdue_sales_order.html:16 -#: templates/js/translated/company.js:503 +#: templates/js/translated/company.js:504 #: templates/js/translated/return_order.js:295 -#: templates/js/translated/sales_order.js:820 -#: templates/js/translated/stock.js:3043 +#: templates/js/translated/sales_order.js:779 +#: templates/js/translated/stock.js:3044 #: templates/js/translated/table_filters.js:820 msgid "Customer" msgstr "" @@ -4654,7 +4834,7 @@ msgid "Phone" msgstr "" #: company/templates/company/company_base.html:211 -#: part/templates/part/part_base.html:536 +#: part/templates/part/part_base.html:544 msgid "Remove Image" msgstr "" @@ -4663,19 +4843,19 @@ msgid "Remove associated image from this company" msgstr "" #: company/templates/company/company_base.html:214 -#: part/templates/part/part_base.html:539 +#: part/templates/part/part_base.html:547 #: templates/InvenTree/settings/user.html:88 #: templates/InvenTree/settings/user_sso.html:43 msgid "Remove" msgstr "" #: company/templates/company/company_base.html:243 -#: part/templates/part/part_base.html:568 +#: part/templates/part/part_base.html:576 msgid "Upload Image" msgstr "" #: company/templates/company/company_base.html:258 -#: part/templates/part/part_base.html:622 +#: part/templates/part/part_base.html:630 msgid "Download Image" msgstr "" @@ -4715,7 +4895,7 @@ msgstr "" #: company/templates/company/detail.html:75 #: company/templates/company/sidebar.html:12 #: company/templates/company/supplier_part_sidebar.html:7 -#: order/templates/order/order_base.html:13 +#: order/templates/order/order_base.html:14 #: order/templates/order/purchase_orders.html:8 #: order/templates/order/purchase_orders.html:12 #: part/templates/part/detail.html:122 part/templates/part/part_sidebar.html:35 @@ -4738,7 +4918,7 @@ msgstr "" #: company/templates/company/detail.html:101 #: company/templates/company/sidebar.html:21 -#: order/templates/order/sales_order_base.html:13 +#: order/templates/order/sales_order_base.html:14 #: order/templates/order/sales_orders.html:8 #: order/templates/order/sales_orders.html:15 #: part/templates/part/detail.html:143 part/templates/part/part_sidebar.html:39 @@ -4765,7 +4945,7 @@ msgstr "" #: company/templates/company/detail.html:142 #: company/templates/company/sidebar.html:29 -#: order/templates/order/return_order_base.html:13 +#: order/templates/order/return_order_base.html:14 #: order/templates/order/return_orders.html:8 #: order/templates/order/return_orders.html:15 #: templates/InvenTree/settings/sidebar.html:61 @@ -4812,24 +4992,24 @@ msgid "Manufacturers" msgstr "" #: company/templates/company/manufacturer_part.html:35 -#: company/templates/company/supplier_part.html:227 -#: part/templates/part/detail.html:125 part/templates/part/part_base.html:83 +#: company/templates/company/supplier_part.html:228 +#: part/templates/part/detail.html:125 part/templates/part/part_base.html:84 msgid "Order part" msgstr "" #: company/templates/company/manufacturer_part.html:39 -#: templates/js/translated/company.js:1343 +#: templates/js/translated/company.js:1344 msgid "Edit manufacturer part" msgstr "" #: company/templates/company/manufacturer_part.html:43 -#: templates/js/translated/company.js:1344 +#: templates/js/translated/company.js:1345 msgid "Delete manufacturer part" msgstr "" #: company/templates/company/manufacturer_part.html:65 -#: company/templates/company/supplier_part.html:97 order/api.py:448 -#: order/serializers.py:564 +#: company/templates/company/supplier_part.html:98 order/api.py:411 +#: order/serializers.py:649 msgid "Internal Part" msgstr "" @@ -4838,8 +5018,8 @@ msgid "No manufacturer information available" msgstr "" #: company/templates/company/manufacturer_part.html:119 -#: company/templates/company/supplier_part.html:15 company/views.py:31 -#: part/admin.py:122 part/serializers.py:904 +#: company/templates/company/supplier_part.html:16 company/views.py:31 +#: part/admin.py:122 part/serializers.py:956 #: part/templates/part/part_sidebar.html:33 templates/InvenTree/search.html:190 #: templates/navbar.html:48 msgid "Suppliers" @@ -4888,112 +5068,113 @@ msgstr "" msgid "Contacts" msgstr "" -#: company/templates/company/supplier_part.html:50 -#: templates/js/translated/company.js:1526 +#: company/templates/company/supplier_part.html:51 +#: templates/js/translated/company.js:1527 msgid "Supplier part actions" msgstr "" -#: company/templates/company/supplier_part.html:55 #: company/templates/company/supplier_part.html:56 -#: company/templates/company/supplier_part.html:228 +#: company/templates/company/supplier_part.html:57 +#: company/templates/company/supplier_part.html:229 #: part/templates/part/detail.html:126 msgid "Order Part" msgstr "" -#: company/templates/company/supplier_part.html:60 #: company/templates/company/supplier_part.html:61 +#: company/templates/company/supplier_part.html:62 msgid "Update Availability" msgstr "" -#: company/templates/company/supplier_part.html:63 #: company/templates/company/supplier_part.html:64 -#: templates/js/translated/company.js:294 +#: company/templates/company/supplier_part.html:65 +#: templates/js/translated/company.js:295 msgid "Edit Supplier Part" msgstr "" -#: company/templates/company/supplier_part.html:68 #: company/templates/company/supplier_part.html:69 -#: templates/js/translated/company.js:269 +#: company/templates/company/supplier_part.html:70 +#: templates/js/translated/company.js:270 msgid "Duplicate Supplier Part" msgstr "" -#: company/templates/company/supplier_part.html:73 +#: company/templates/company/supplier_part.html:74 msgid "Delete Supplier Part" msgstr "" -#: company/templates/company/supplier_part.html:74 +#: company/templates/company/supplier_part.html:75 msgid "Delete Supplier Part" msgstr "" -#: company/templates/company/supplier_part.html:133 +#: company/templates/company/supplier_part.html:134 +#: order/templates/order/order_base.html:155 msgid "No supplier information available" msgstr "" -#: company/templates/company/supplier_part.html:139 order/serializers.py:553 -#: part/bom.py:287 part/bom.py:319 part/serializers.py:548 -#: templates/js/translated/company.js:349 templates/js/translated/part.js:1793 +#: company/templates/company/supplier_part.html:140 order/serializers.py:638 +#: part/bom.py:286 part/bom.py:315 part/serializers.py:592 +#: templates/js/translated/company.js:350 templates/js/translated/part.js:1793 #: templates/js/translated/pricing.js:510 -#: templates/js/translated/purchase_order.js:1920 -#: templates/js/translated/purchase_order.js:2098 +#: templates/js/translated/purchase_order.js:1904 +#: templates/js/translated/purchase_order.js:2082 msgid "SKU" msgstr "" -#: company/templates/company/supplier_part.html:206 +#: company/templates/company/supplier_part.html:207 msgid "Supplier Part Stock" msgstr "" -#: company/templates/company/supplier_part.html:209 -#: part/templates/part/detail.html:24 stock/templates/stock/location.html:204 +#: company/templates/company/supplier_part.html:210 +#: part/templates/part/detail.html:24 stock/templates/stock/location.html:205 msgid "Create new stock item" msgstr "" -#: company/templates/company/supplier_part.html:210 -#: part/templates/part/detail.html:25 stock/templates/stock/location.html:205 +#: company/templates/company/supplier_part.html:211 +#: part/templates/part/detail.html:25 stock/templates/stock/location.html:206 #: templates/js/translated/stock.js:543 msgid "New Stock Item" msgstr "" -#: company/templates/company/supplier_part.html:223 +#: company/templates/company/supplier_part.html:224 msgid "Supplier Part Orders" msgstr "" -#: company/templates/company/supplier_part.html:246 +#: company/templates/company/supplier_part.html:247 msgid "Pricing Information" msgstr "" -#: company/templates/company/supplier_part.html:251 -#: templates/js/translated/company.js:398 +#: company/templates/company/supplier_part.html:252 +#: templates/js/translated/company.js:399 #: templates/js/translated/pricing.js:684 msgid "Add Price Break" msgstr "" -#: company/templates/company/supplier_part.html:270 +#: company/templates/company/supplier_part.html:271 msgid "Supplier Part Notes" msgstr "" -#: company/templates/company/supplier_part.html:305 +#: company/templates/company/supplier_part.html:306 msgid "Supplier Part QR Code" msgstr "" -#: company/templates/company/supplier_part.html:316 +#: company/templates/company/supplier_part.html:317 msgid "Link Barcode to Supplier Part" msgstr "" -#: company/templates/company/supplier_part.html:388 +#: company/templates/company/supplier_part.html:389 msgid "Update Part Availability" msgstr "" #: company/templates/company/supplier_part_sidebar.html:5 -#: part/serializers.py:902 part/stocktake.py:223 +#: part/serializers.py:954 part/stocktake.py:223 #: part/templates/part/category.html:180 #: part/templates/part/category_sidebar.html:17 stock/admin.py:68 -#: stock/serializers.py:1014 stock/serializers.py:1192 -#: stock/templates/stock/location.html:167 -#: stock/templates/stock/location.html:188 -#: stock/templates/stock/location.html:200 +#: stock/serializers.py:1045 stock/serializers.py:1223 +#: stock/templates/stock/location.html:168 +#: stock/templates/stock/location.html:189 +#: stock/templates/stock/location.html:201 #: stock/templates/stock/location_sidebar.html:7 #: templates/InvenTree/search.html:155 templates/js/translated/part.js:1067 -#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2850 +#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2851 #: users/models.py:206 msgid "Stock Items" msgstr "" @@ -5023,99 +5204,99 @@ msgstr "" msgid "New Company" msgstr "" -#: generic/states/tests.py:18 order/status_codes.py:13 +#: generic/states/fields.py:118 +msgid "Custom status key" +msgstr "" + +#: generic/states/fields.py:119 +msgid "Additional status information for this item" +msgstr "" + +#: generic/states/tests.py:22 order/status_codes.py:13 msgid "Placed" msgstr "" -#: importer/mixins.py:263 +#: importer/mixins.py:261 msgid "Invalid export format" msgstr "" -#: importer/models.py:59 -msgid "Timestamp" -msgstr "" - -#: importer/models.py:64 +#: importer/models.py:65 msgid "Data file to import" msgstr "" -#: importer/models.py:73 templates/js/translated/tables.js:558 +#: importer/models.py:74 templates/js/translated/tables.js:558 msgid "Columns" msgstr "" -#: importer/models.py:84 +#: importer/models.py:85 msgid "Import status" msgstr "" -#: importer/models.py:94 +#: importer/models.py:95 msgid "Field Defaults" msgstr "" -#: importer/models.py:101 +#: importer/models.py:102 msgid "Field Overrides" msgstr "" -#: importer/models.py:108 +#: importer/models.py:109 msgid "Field Filters" msgstr "" -#: importer/models.py:230 +#: importer/models.py:239 msgid "Some required fields have not been mapped" msgstr "" -#: importer/models.py:387 +#: importer/models.py:396 msgid "Column is already mapped to a database field" msgstr "" -#: importer/models.py:392 +#: importer/models.py:401 msgid "Field is already mapped to a data column" msgstr "" -#: importer/models.py:401 +#: importer/models.py:410 msgid "Column mapping must be linked to a valid import session" msgstr "" -#: importer/models.py:406 +#: importer/models.py:415 msgid "Column does not exist in the data file" msgstr "" -#: importer/models.py:413 +#: importer/models.py:422 msgid "Field does not exist in the target model" msgstr "" -#: importer/models.py:417 +#: importer/models.py:426 msgid "Selected field is read-only" msgstr "" -#: importer/models.py:422 importer/models.py:493 +#: importer/models.py:431 importer/models.py:502 msgid "Import Session" msgstr "" -#: importer/models.py:426 +#: importer/models.py:435 msgid "Field" msgstr "" -#: importer/models.py:428 +#: importer/models.py:437 msgid "Column" msgstr "" -#: importer/models.py:497 +#: importer/models.py:506 msgid "Row Index" msgstr "" -#: importer/models.py:500 +#: importer/models.py:509 msgid "Original row data" msgstr "" -#: importer/models.py:503 part/models.py:3951 -msgid "Data" -msgstr "" - -#: importer/models.py:505 machine/models.py:110 +#: importer/models.py:514 machine/models.py:110 msgid "Errors" msgstr "" -#: importer/models.py:507 part/api.py:873 +#: importer/models.py:516 part/api.py:857 msgid "Valid" msgstr "" @@ -5167,19 +5348,19 @@ msgstr "" msgid "Row has already been completed" msgstr "" -#: importer/status_codes.py:11 +#: importer/status_codes.py:13 msgid "Initializing" msgstr "" -#: importer/status_codes.py:12 +#: importer/status_codes.py:18 msgid "Mapping Columns" msgstr "" -#: importer/status_codes.py:13 +#: importer/status_codes.py:21 msgid "Importing Data" msgstr "" -#: importer/status_codes.py:16 +#: importer/status_codes.py:24 msgid "Processing Data" msgstr "" @@ -5203,52 +5384,52 @@ msgstr "" msgid "Value must be a valid dictionary object" msgstr "" -#: machine/machine_types/label_printer.py:215 +#: machine/machine_types/label_printer.py:216 msgid "Copies" msgstr "" -#: machine/machine_types/label_printer.py:216 +#: machine/machine_types/label_printer.py:217 msgid "Number of copies to print for each label" msgstr "" -#: machine/machine_types/label_printer.py:231 +#: machine/machine_types/label_printer.py:232 msgid "Connected" msgstr "" -#: machine/machine_types/label_printer.py:232 order/api.py:1410 -#: templates/js/translated/sales_order.js:1078 +#: machine/machine_types/label_printer.py:233 order/api.py:1532 +#: templates/js/translated/sales_order.js:1044 msgid "Unknown" msgstr "" -#: machine/machine_types/label_printer.py:233 +#: machine/machine_types/label_printer.py:234 msgid "Printing" msgstr "" -#: machine/machine_types/label_printer.py:234 +#: machine/machine_types/label_printer.py:235 msgid "No media" msgstr "" -#: machine/machine_types/label_printer.py:235 +#: machine/machine_types/label_printer.py:236 msgid "Paper jam" msgstr "" -#: machine/machine_types/label_printer.py:236 +#: machine/machine_types/label_printer.py:237 msgid "Disconnected" msgstr "" -#: machine/machine_types/label_printer.py:243 +#: machine/machine_types/label_printer.py:244 msgid "Label Printer" msgstr "" -#: machine/machine_types/label_printer.py:244 +#: machine/machine_types/label_printer.py:245 msgid "Directly print labels for various items." msgstr "" -#: machine/machine_types/label_printer.py:250 +#: machine/machine_types/label_printer.py:251 msgid "Printer Location" msgstr "" -#: machine/machine_types/label_printer.py:251 +#: machine/machine_types/label_printer.py:252 msgid "Scope the printer to a specific location" msgstr "" @@ -5308,79 +5489,75 @@ msgstr "" #: report/templates/report/inventree_purchase_order_report.html:31 #: report/templates/report/inventree_sales_order_report.html:31 #: templates/js/translated/order.js:352 -#: templates/js/translated/purchase_order.js:2195 -#: templates/js/translated/sales_order.js:1883 +#: templates/js/translated/purchase_order.js:2179 +#: templates/js/translated/sales_order.js:1864 msgid "Total Price" msgstr "" -#: order/api.py:80 order/api.py:151 order/serializers.py:93 -#: order/templates/order/order_base.html:123 -#: order/templates/order/return_order_base.html:116 -#: order/templates/order/sales_order_base.html:125 +#: order/api.py:78 order/api.py:149 order/serializers.py:124 +#: order/templates/order/order_base.html:124 +#: order/templates/order/return_order_base.html:117 +#: order/templates/order/sales_order_base.html:126 msgid "Order Status" msgstr "" -#: order/api.py:88 order/templates/order/order_base.html:111 -#: order/templates/order/return_order_base.html:104 -#: order/templates/order/sales_order_base.html:113 +#: order/api.py:86 order/templates/order/order_base.html:112 +#: order/templates/order/return_order_base.html:105 +#: order/templates/order/sales_order_base.html:114 msgid "Order Reference" msgstr "" -#: order/api.py:116 templates/js/translated/table_filters.js:93 +#: order/api.py:114 order/api.py:1022 +#: templates/js/translated/table_filters.js:93 #: templates/js/translated/table_filters.js:625 #: templates/js/translated/table_filters.js:651 #: templates/js/translated/table_filters.js:666 msgid "Outstanding" msgstr "" -#: order/api.py:132 +#: order/api.py:130 msgid "Has Project Code" msgstr "" -#: order/api.py:155 templates/js/translated/table_filters.js:201 +#: order/api.py:153 templates/js/translated/table_filters.js:201 #: templates/js/translated/table_filters.js:791 msgid "Has Pricing" msgstr "" -#: order/api.py:230 -msgid "No matching purchase order found" -msgstr "" - -#: order/api.py:425 order/api.py:763 order/models.py:1484 order/models.py:1598 -#: order/models.py:1649 order/models.py:1764 order/models.py:1923 -#: order/models.py:2383 order/models.py:2439 -#: templates/js/translated/sales_order.js:1524 +#: order/api.py:375 order/api.py:771 order/api.py:986 order/models.py:1500 +#: order/models.py:1614 order/models.py:1665 order/models.py:1793 +#: order/models.py:1956 order/models.py:2422 order/models.py:2478 +#: templates/js/translated/sales_order.js:1490 msgid "Order" msgstr "" -#: order/api.py:429 order/api.py:784 +#: order/api.py:379 order/api.py:809 msgid "Order Complete" msgstr "" -#: order/api.py:452 +#: order/api.py:430 msgid "Order Pending" msgstr "" -#: order/api.py:1404 order/models.py:379 order/models.py:1485 -#: order/models.py:1599 order/templates/order/order_base.html:9 -#: order/templates/order/order_base.html:18 +#: order/api.py:1526 order/models.py:386 order/models.py:1501 +#: order/models.py:1615 order/templates/order/order_base.html:10 +#: order/templates/order/order_base.html:19 #: report/templates/report/inventree_purchase_order_report.html:14 -#: stock/serializers.py:120 stock/templates/stock/item_base.html:176 +#: stock/serializers.py:121 stock/templates/stock/item_base.html:173 #: templates/email/overdue_purchase_order.html:15 #: templates/js/translated/part.js:1752 templates/js/translated/pricing.js:804 -#: templates/js/translated/purchase_order.js:168 -#: templates/js/translated/purchase_order.js:753 -#: templates/js/translated/purchase_order.js:1743 -#: templates/js/translated/stock.js:2345 templates/js/translated/stock.js:2991 +#: templates/js/translated/purchase_order.js:736 +#: templates/js/translated/purchase_order.js:1727 +#: templates/js/translated/stock.js:2346 templates/js/translated/stock.js:2992 msgid "Purchase Order" msgstr "" -#: order/api.py:1408 order/models.py:2091 order/models.py:2384 -#: order/models.py:2440 order/templates/order/return_order_base.html:9 -#: order/templates/order/return_order_base.html:28 +#: order/api.py:1530 order/models.py:2124 order/models.py:2423 +#: order/models.py:2479 order/templates/order/return_order_base.html:10 +#: order/templates/order/return_order_base.html:29 #: report/templates/report/inventree_return_order_report.html:13 #: templates/js/translated/return_order.js:280 -#: templates/js/translated/stock.js:3025 +#: templates/js/translated/stock.js:3026 msgid "Return Order" msgstr "" @@ -5388,751 +5565,782 @@ msgstr "" msgid "Total price for this order" msgstr "" -#: order/models.py:95 order/serializers.py:71 +#: order/models.py:95 order/serializers.py:73 msgid "Order Currency" msgstr "" -#: order/models.py:98 order/serializers.py:72 +#: order/models.py:98 order/serializers.py:74 msgid "Currency for this order (leave blank to use company default)" msgstr "" -#: order/models.py:246 +#: order/models.py:243 msgid "Contact does not match selected company" msgstr "" -#: order/models.py:289 +#: order/models.py:296 msgid "Order description (optional)" msgstr "" -#: order/models.py:298 +#: order/models.py:305 msgid "Select project code for this order" msgstr "" -#: order/models.py:302 order/models.py:1385 order/models.py:1817 +#: order/models.py:309 order/models.py:1402 order/models.py:1846 msgid "Link to external page" msgstr "" -#: order/models.py:310 +#: order/models.py:317 msgid "Expected date for order delivery. Order will be overdue after this date." msgstr "" -#: order/models.py:324 +#: order/models.py:331 msgid "Created By" msgstr "" -#: order/models.py:332 +#: order/models.py:339 msgid "User or group responsible for this order" msgstr "" -#: order/models.py:343 +#: order/models.py:350 msgid "Point of contact for this order" msgstr "" -#: order/models.py:353 +#: order/models.py:360 msgid "Company address for this order" msgstr "" -#: order/models.py:468 order/models.py:979 +#: order/models.py:480 order/models.py:1006 msgid "Order reference" msgstr "" -#: order/models.py:477 +#: order/models.py:489 msgid "Purchase order status" msgstr "" -#: order/models.py:492 +#: order/models.py:504 msgid "Company from which the items are being ordered" msgstr "" -#: order/models.py:503 order/templates/order/order_base.html:153 -#: templates/js/translated/purchase_order.js:1772 +#: order/models.py:515 order/templates/order/order_base.html:162 +#: templates/js/translated/purchase_order.js:1756 msgid "Supplier Reference" msgstr "" -#: order/models.py:504 +#: order/models.py:516 msgid "Supplier order reference code" msgstr "" -#: order/models.py:513 +#: order/models.py:525 msgid "received by" msgstr "" -#: order/models.py:519 order/models.py:2173 +#: order/models.py:531 order/models.py:2212 msgid "Issue Date" msgstr "" -#: order/models.py:520 order/models.py:2174 +#: order/models.py:532 order/models.py:2213 msgid "Date order was issued" msgstr "" -#: order/models.py:527 order/models.py:2181 +#: order/models.py:539 order/models.py:2220 msgid "Date order was completed" msgstr "" -#: order/models.py:571 +#: order/models.py:549 order/models.py:1552 +msgid "Destination for received items" +msgstr "" + +#: order/models.py:593 msgid "Part supplier must match PO supplier" msgstr "" -#: order/models.py:806 +#: order/models.py:828 msgid "Quantity must be a positive number" msgstr "" -#: order/models.py:991 +#: order/models.py:1018 msgid "Company to which the items are being sold" msgstr "" -#: order/models.py:1003 +#: order/models.py:1030 msgid "Sales order status" msgstr "" -#: order/models.py:1014 order/models.py:2166 +#: order/models.py:1041 order/models.py:2205 msgid "Customer Reference " msgstr "" -#: order/models.py:1015 order/models.py:2167 +#: order/models.py:1042 order/models.py:2206 msgid "Customer order reference code" msgstr "" -#: order/models.py:1019 order/models.py:1771 -#: templates/js/translated/sales_order.js:879 -#: templates/js/translated/sales_order.js:1060 +#: order/models.py:1046 order/models.py:1800 +#: templates/js/translated/sales_order.js:838 +#: templates/js/translated/sales_order.js:1026 msgid "Shipment Date" msgstr "" -#: order/models.py:1028 +#: order/models.py:1055 msgid "shipped by" msgstr "" -#: order/models.py:1077 +#: order/models.py:1094 msgid "Order is already complete" msgstr "" -#: order/models.py:1080 +#: order/models.py:1097 msgid "Order is already cancelled" msgstr "" -#: order/models.py:1084 +#: order/models.py:1101 msgid "Only an open order can be marked as complete" msgstr "" -#: order/models.py:1088 +#: order/models.py:1105 msgid "Order cannot be completed as there are incomplete shipments" msgstr "" -#: order/models.py:1093 +#: order/models.py:1110 msgid "Order cannot be completed as there are incomplete line items" msgstr "" -#: order/models.py:1357 +#: order/models.py:1374 msgid "Item quantity" msgstr "" -#: order/models.py:1374 +#: order/models.py:1391 msgid "Line item reference" msgstr "" -#: order/models.py:1381 +#: order/models.py:1398 msgid "Line item notes" msgstr "" -#: order/models.py:1393 +#: order/models.py:1410 msgid "Target date for this line item (leave blank to use the target date from the order)" msgstr "" -#: order/models.py:1414 +#: order/models.py:1431 msgid "Line item description (optional)" msgstr "" -#: order/models.py:1420 -msgid "Context" -msgstr "" - -#: order/models.py:1421 +#: order/models.py:1438 msgid "Additional context for this line" msgstr "" -#: order/models.py:1431 +#: order/models.py:1448 msgid "Unit price" msgstr "" -#: order/models.py:1445 +#: order/models.py:1462 msgid "Purchase Order Line Item" msgstr "" -#: order/models.py:1469 +#: order/models.py:1486 msgid "Supplier part must match supplier" msgstr "" -#: order/models.py:1476 -msgid "deleted" -msgstr "" - -#: order/models.py:1504 +#: order/models.py:1520 msgid "Supplier part" msgstr "" -#: order/models.py:1511 order/templates/order/order_base.html:201 +#: order/models.py:1527 order/templates/order/order_base.html:210 #: templates/js/translated/part.js:1876 templates/js/translated/part.js:1908 -#: templates/js/translated/purchase_order.js:1369 -#: templates/js/translated/purchase_order.js:2239 +#: templates/js/translated/purchase_order.js:1352 +#: templates/js/translated/purchase_order.js:2223 #: templates/js/translated/return_order.js:762 #: templates/js/translated/table_filters.js:119 #: templates/js/translated/table_filters.js:605 msgid "Received" msgstr "" -#: order/models.py:1512 +#: order/models.py:1528 msgid "Number of items received" msgstr "" -#: order/models.py:1520 stock/models.py:959 stock/serializers.py:610 -#: stock/templates/stock/item_base.html:183 -#: templates/js/translated/stock.js:2396 +#: order/models.py:1536 stock/models.py:1036 stock/serializers.py:637 +#: stock/templates/stock/item_base.html:180 +#: templates/js/translated/stock.js:2397 msgid "Purchase Price" msgstr "" -#: order/models.py:1521 +#: order/models.py:1537 msgid "Unit purchase price" msgstr "" -#: order/models.py:1536 -msgid "Where does the Purchaser want this item to be stored?" -msgstr "" - -#: order/models.py:1587 +#: order/models.py:1603 msgid "Purchase Order Extra Line" msgstr "" -#: order/models.py:1616 +#: order/models.py:1632 msgid "Sales Order Line Item" msgstr "" -#: order/models.py:1637 +#: order/models.py:1653 msgid "Virtual part cannot be assigned to a sales order" msgstr "" -#: order/models.py:1642 +#: order/models.py:1658 msgid "Only salable parts can be assigned to a sales order" msgstr "" -#: order/models.py:1668 part/templates/part/part_pricing.html:107 -#: part/templates/part/prices.html:139 templates/js/translated/pricing.js:957 +#: order/models.py:1684 part/templates/part/part_pricing.html:107 +#: part/templates/part/prices.html:139 templates/js/translated/pricing.js:955 msgid "Sale Price" msgstr "" -#: order/models.py:1669 +#: order/models.py:1685 msgid "Unit sale price" msgstr "" -#: order/models.py:1678 order/status_codes.py:48 -#: templates/js/translated/sales_order.js:1559 -#: templates/js/translated/sales_order.js:1680 -#: templates/js/translated/sales_order.js:1993 +#: order/models.py:1694 order/status_codes.py:50 +#: templates/js/translated/sales_order.js:1525 +#: templates/js/translated/sales_order.js:1661 +#: templates/js/translated/sales_order.js:1974 msgid "Shipped" msgstr "" -#: order/models.py:1679 +#: order/models.py:1695 msgid "Shipped quantity" msgstr "" -#: order/models.py:1751 +#: order/models.py:1769 msgid "Sales Order Shipment" msgstr "" -#: order/models.py:1772 +#: order/models.py:1801 msgid "Date of shipment" msgstr "" -#: order/models.py:1778 templates/js/translated/sales_order.js:1072 +#: order/models.py:1807 templates/js/translated/sales_order.js:1038 msgid "Delivery Date" msgstr "" -#: order/models.py:1779 +#: order/models.py:1808 msgid "Date of delivery of shipment" msgstr "" -#: order/models.py:1787 +#: order/models.py:1816 msgid "Checked By" msgstr "" -#: order/models.py:1788 +#: order/models.py:1817 msgid "User who checked this shipment" msgstr "" -#: order/models.py:1795 order/models.py:2018 order/serializers.py:1475 -#: order/serializers.py:1585 templates/js/translated/model_renderers.js:455 +#: order/models.py:1824 order/models.py:2051 order/serializers.py:1601 +#: order/serializers.py:1725 +#: report/templates/report/inventree_sales_order_shipment_report.html:14 +#: templates/js/translated/model_renderers.js:458 +#: templates/js/translated/sales_order.js:1615 msgid "Shipment" msgstr "" -#: order/models.py:1796 +#: order/models.py:1825 msgid "Shipment number" msgstr "" -#: order/models.py:1804 +#: order/models.py:1833 msgid "Tracking Number" msgstr "" -#: order/models.py:1805 +#: order/models.py:1834 msgid "Shipment tracking information" msgstr "" -#: order/models.py:1812 +#: order/models.py:1841 msgid "Invoice Number" msgstr "" -#: order/models.py:1813 +#: order/models.py:1842 msgid "Reference number for associated invoice" msgstr "" -#: order/models.py:1833 +#: order/models.py:1862 msgid "Shipment has already been sent" msgstr "" -#: order/models.py:1836 +#: order/models.py:1865 msgid "Shipment has no allocated stock items" msgstr "" -#: order/models.py:1912 +#: order/models.py:1945 msgid "Sales Order Extra Line" msgstr "" -#: order/models.py:1941 +#: order/models.py:1974 msgid "Sales Order Allocation" msgstr "" -#: order/models.py:1964 order/models.py:1966 +#: order/models.py:1997 order/models.py:1999 msgid "Stock item has not been assigned" msgstr "" -#: order/models.py:1973 +#: order/models.py:2006 msgid "Cannot allocate stock item to a line with a different part" msgstr "" -#: order/models.py:1976 +#: order/models.py:2009 msgid "Cannot allocate stock to a line without a part" msgstr "" -#: order/models.py:1979 +#: order/models.py:2012 msgid "Allocation quantity cannot exceed stock quantity" msgstr "" -#: order/models.py:1998 order/serializers.py:1345 +#: order/models.py:2031 order/serializers.py:1471 msgid "Quantity must be 1 for serialized stock item" msgstr "" -#: order/models.py:2001 +#: order/models.py:2034 msgid "Sales order does not match shipment" msgstr "" -#: order/models.py:2002 plugin/base/barcodes/api.py:524 +#: order/models.py:2035 plugin/base/barcodes/api.py:629 msgid "Shipment does not match sales order" msgstr "" -#: order/models.py:2010 +#: order/models.py:2043 msgid "Line" msgstr "" -#: order/models.py:2019 +#: order/models.py:2052 msgid "Sales order shipment reference" msgstr "" -#: order/models.py:2032 order/models.py:2391 +#: order/models.py:2065 order/models.py:2430 #: templates/js/translated/return_order.js:720 msgid "Item" msgstr "" -#: order/models.py:2033 +#: order/models.py:2066 msgid "Select stock item to allocate" msgstr "" -#: order/models.py:2042 +#: order/models.py:2075 msgid "Enter stock allocation quantity" msgstr "" -#: order/models.py:2136 +#: order/models.py:2175 msgid "Return Order reference" msgstr "" -#: order/models.py:2148 +#: order/models.py:2187 msgid "Company from which items are being returned" msgstr "" -#: order/models.py:2160 +#: order/models.py:2199 msgid "Return order status" msgstr "" -#: order/models.py:2362 +#: order/models.py:2401 msgid "Return Order Line Item" msgstr "" -#: order/models.py:2376 +#: order/models.py:2415 msgid "Only serialized items can be assigned to a Return Order" msgstr "" -#: order/models.py:2392 +#: order/models.py:2431 msgid "Select item to return from customer" msgstr "" -#: order/models.py:2398 +#: order/models.py:2437 msgid "Received Date" msgstr "" -#: order/models.py:2399 +#: order/models.py:2438 msgid "The date this this return item was received" msgstr "" -#: order/models.py:2410 templates/js/translated/return_order.js:731 +#: order/models.py:2449 templates/js/translated/return_order.js:731 #: templates/js/translated/table_filters.js:122 msgid "Outcome" msgstr "" -#: order/models.py:2411 +#: order/models.py:2450 msgid "Outcome for this line item" msgstr "" -#: order/models.py:2418 +#: order/models.py:2457 msgid "Cost associated with return or repair for this line item" msgstr "" -#: order/models.py:2428 +#: order/models.py:2467 msgid "Return Order Extra Line" msgstr "" -#: order/serializers.py:86 +#: order/serializers.py:87 +msgid "Order ID" +msgstr "" + +#: order/serializers.py:87 +msgid "ID of the order to duplicate" +msgstr "" + +#: order/serializers.py:93 +msgid "Copy Lines" +msgstr "" + +#: order/serializers.py:94 +msgid "Copy line items from the original order" +msgstr "" + +#: order/serializers.py:100 +msgid "Copy Extra Lines" +msgstr "" + +#: order/serializers.py:101 +msgid "Copy extra line items from the original order" +msgstr "" + +#: order/serializers.py:117 msgid "Completed Lines" msgstr "" -#: order/serializers.py:283 stock/admin.py:195 +#: order/serializers.py:161 +msgid "Duplicate Order" +msgstr "" + +#: order/serializers.py:162 +msgid "Specify options for duplicating this order" +msgstr "" + +#: order/serializers.py:234 +msgid "Invalid order ID" +msgstr "" + +#: order/serializers.py:374 stock/admin.py:196 msgid "Supplier Name" msgstr "" -#: order/serializers.py:331 +#: order/serializers.py:416 msgid "Order cannot be cancelled" msgstr "" -#: order/serializers.py:346 order/serializers.py:1366 +#: order/serializers.py:431 order/serializers.py:1492 msgid "Allow order to be closed with incomplete line items" msgstr "" -#: order/serializers.py:356 order/serializers.py:1376 +#: order/serializers.py:441 order/serializers.py:1502 msgid "Order has incomplete line items" msgstr "" -#: order/serializers.py:506 +#: order/serializers.py:591 msgid "Order is not open" msgstr "" -#: order/serializers.py:527 +#: order/serializers.py:612 msgid "Auto Pricing" msgstr "" -#: order/serializers.py:529 +#: order/serializers.py:614 msgid "Automatically calculate purchase price based on supplier part data" msgstr "" -#: order/serializers.py:539 +#: order/serializers.py:624 msgid "Purchase price currency" msgstr "" -#: order/serializers.py:545 +#: order/serializers.py:630 msgid "Merge Items" msgstr "" -#: order/serializers.py:547 +#: order/serializers.py:632 msgid "Merge items with the same part, destination and target date into one line item" msgstr "" -#: order/serializers.py:560 part/models.py:1033 +#: order/serializers.py:645 part/models.py:1094 part/serializers.py:387 msgid "Internal Part Number" msgstr "" -#: order/serializers.py:568 +#: order/serializers.py:653 msgid "Internal Part Name" msgstr "" -#: order/serializers.py:584 +#: order/serializers.py:669 msgid "Supplier part must be specified" msgstr "" -#: order/serializers.py:587 +#: order/serializers.py:672 msgid "Purchase order must be specified" msgstr "" -#: order/serializers.py:595 +#: order/serializers.py:680 msgid "Supplier must match purchase order" msgstr "" -#: order/serializers.py:596 +#: order/serializers.py:681 msgid "Purchase order must match supplier" msgstr "" -#: order/serializers.py:639 order/serializers.py:1446 +#: order/serializers.py:724 order/serializers.py:1572 msgid "Line Item" msgstr "" -#: order/serializers.py:645 +#: order/serializers.py:730 msgid "Line item does not match purchase order" msgstr "" -#: order/serializers.py:655 order/serializers.py:779 order/serializers.py:1782 +#: order/serializers.py:740 order/serializers.py:881 order/serializers.py:1934 msgid "Select destination location for received items" msgstr "" -#: order/serializers.py:671 templates/js/translated/purchase_order.js:1130 +#: order/serializers.py:756 templates/js/translated/purchase_order.js:1113 #: templates/js/translated/stock.js:1200 msgid "Enter batch code for incoming stock items" msgstr "" -#: order/serializers.py:679 templates/js/translated/purchase_order.js:1155 +#: order/serializers.py:764 templates/js/translated/purchase_order.js:1138 msgid "Enter serial numbers for incoming stock items" msgstr "" -#: order/serializers.py:691 +#: order/serializers.py:776 msgid "Override packaging information for incoming stock items" msgstr "" -#: order/serializers.py:699 +#: order/serializers.py:784 msgid "Additional note for incoming stock items" msgstr "" -#: order/serializers.py:706 templates/js/translated/barcode.js:52 +#: order/serializers.py:791 templates/js/translated/barcode.js:52 msgid "Barcode" msgstr "" -#: order/serializers.py:707 +#: order/serializers.py:792 msgid "Scanned barcode" msgstr "" -#: order/serializers.py:723 +#: order/serializers.py:808 msgid "Barcode is already in use" msgstr "" -#: order/serializers.py:747 +#: order/serializers.py:831 msgid "An integer quantity must be provided for trackable parts" msgstr "" -#: order/serializers.py:795 order/serializers.py:1798 +#: order/serializers.py:898 order/serializers.py:1950 msgid "Line items must be provided" msgstr "" -#: order/serializers.py:811 +#: order/serializers.py:914 msgid "Destination location must be specified" msgstr "" -#: order/serializers.py:822 +#: order/serializers.py:925 msgid "Supplied barcode values must be unique" msgstr "" -#: order/serializers.py:1187 +#: order/serializers.py:1221 msgid "Sale price currency" msgstr "" -#: order/serializers.py:1248 +#: order/serializers.py:1260 +msgid "Allocated Items" +msgstr "" + +#: order/serializers.py:1374 msgid "No shipment details provided" msgstr "" -#: order/serializers.py:1309 order/serializers.py:1455 +#: order/serializers.py:1435 order/serializers.py:1581 msgid "Line item is not associated with this order" msgstr "" -#: order/serializers.py:1328 +#: order/serializers.py:1454 msgid "Quantity must be positive" msgstr "" -#: order/serializers.py:1465 +#: order/serializers.py:1591 msgid "Enter serial numbers to allocate" msgstr "" -#: order/serializers.py:1487 order/serializers.py:1593 +#: order/serializers.py:1613 order/serializers.py:1733 msgid "Shipment has already been shipped" msgstr "" -#: order/serializers.py:1490 order/serializers.py:1596 +#: order/serializers.py:1616 order/serializers.py:1736 msgid "Shipment is not associated with this order" msgstr "" -#: order/serializers.py:1537 +#: order/serializers.py:1671 msgid "No match found for the following serial numbers" msgstr "" -#: order/serializers.py:1544 -msgid "The following serial numbers are already allocated" +#: order/serializers.py:1678 +msgid "The following serial numbers are unavailable" msgstr "" -#: order/serializers.py:1752 +#: order/serializers.py:1904 msgid "Return order line item" msgstr "" -#: order/serializers.py:1758 +#: order/serializers.py:1910 msgid "Line item does not match return order" msgstr "" -#: order/serializers.py:1761 +#: order/serializers.py:1913 msgid "Line item has already been received" msgstr "" -#: order/serializers.py:1790 +#: order/serializers.py:1942 msgid "Items can only be received against orders which are in progress" msgstr "" -#: order/serializers.py:1873 +#: order/serializers.py:2025 msgid "Line price currency" msgstr "" -#: order/status_codes.py:17 order/status_codes.py:52 stock/status_codes.py:16 +#: order/status_codes.py:17 order/status_codes.py:54 stock/status_codes.py:16 msgid "Lost" msgstr "" -#: order/status_codes.py:18 order/status_codes.py:53 stock/status_codes.py:22 +#: order/status_codes.py:18 order/status_codes.py:55 stock/status_codes.py:24 msgid "Returned" msgstr "" -#: order/status_codes.py:45 order/status_codes.py:77 +#: order/status_codes.py:47 order/status_codes.py:79 msgid "In Progress" msgstr "" -#: order/status_codes.py:101 +#: order/status_codes.py:105 msgid "Return" msgstr "" -#: order/status_codes.py:104 +#: order/status_codes.py:108 msgid "Repair" msgstr "" -#: order/status_codes.py:107 +#: order/status_codes.py:111 msgid "Replace" msgstr "" -#: order/status_codes.py:110 +#: order/status_codes.py:114 msgid "Refund" msgstr "" -#: order/status_codes.py:113 +#: order/status_codes.py:117 msgid "Reject" msgstr "" -#: order/tasks.py:25 +#: order/tasks.py:30 msgid "Overdue Purchase Order" msgstr "" -#: order/tasks.py:30 +#: order/tasks.py:35 #, python-brace-format msgid "Purchase order {po} is now overdue" msgstr "" -#: order/tasks.py:75 +#: order/tasks.py:80 msgid "Overdue Sales Order" msgstr "" -#: order/tasks.py:80 +#: order/tasks.py:85 #, python-brace-format msgid "Sales order {so} is now overdue" msgstr "" -#: order/templates/order/order_base.html:51 +#: order/templates/order/order_base.html:52 msgid "Print purchase order report" msgstr "" -#: order/templates/order/order_base.html:53 -#: order/templates/order/return_order_base.html:62 -#: order/templates/order/sales_order_base.html:62 +#: order/templates/order/order_base.html:54 +#: order/templates/order/return_order_base.html:63 +#: order/templates/order/sales_order_base.html:63 msgid "Export order to file" msgstr "" -#: order/templates/order/order_base.html:59 -#: order/templates/order/return_order_base.html:72 -#: order/templates/order/sales_order_base.html:71 +#: order/templates/order/order_base.html:60 +#: order/templates/order/return_order_base.html:73 +#: order/templates/order/sales_order_base.html:72 msgid "Order actions" msgstr "" -#: order/templates/order/order_base.html:64 -#: order/templates/order/return_order_base.html:76 -#: order/templates/order/sales_order_base.html:75 +#: order/templates/order/order_base.html:65 +#: order/templates/order/return_order_base.html:77 +#: order/templates/order/sales_order_base.html:76 msgid "Edit order" msgstr "" -#: order/templates/order/order_base.html:68 +#: order/templates/order/order_base.html:69 msgid "Duplicate order" msgstr "" -#: order/templates/order/order_base.html:73 -#: order/templates/order/return_order_base.html:78 -#: order/templates/order/sales_order_base.html:77 +#: order/templates/order/order_base.html:74 +#: order/templates/order/return_order_base.html:79 +#: order/templates/order/sales_order_base.html:78 msgid "Hold order" msgstr "" -#: order/templates/order/order_base.html:78 -#: order/templates/order/return_order_base.html:81 -#: order/templates/order/sales_order_base.html:80 +#: order/templates/order/order_base.html:79 +#: order/templates/order/return_order_base.html:82 +#: order/templates/order/sales_order_base.html:81 msgid "Cancel order" msgstr "" -#: order/templates/order/order_base.html:84 #: order/templates/order/order_base.html:85 -#: order/templates/order/return_order_base.html:85 +#: order/templates/order/order_base.html:86 #: order/templates/order/return_order_base.html:86 -#: order/templates/order/sales_order_base.html:86 +#: order/templates/order/return_order_base.html:87 #: order/templates/order/sales_order_base.html:87 +#: order/templates/order/sales_order_base.html:88 msgid "Issue Order" msgstr "" -#: order/templates/order/order_base.html:88 -#: order/templates/order/return_order_base.html:89 -msgid "Mark order as complete" -msgstr "" - #: order/templates/order/order_base.html:89 #: order/templates/order/return_order_base.html:90 -#: order/templates/order/sales_order_base.html:100 +msgid "Mark order as complete" +msgstr "" + +#: order/templates/order/order_base.html:90 +#: order/templates/order/return_order_base.html:91 +#: order/templates/order/sales_order_base.html:101 msgid "Complete Order" msgstr "" -#: order/templates/order/order_base.html:96 +#: order/templates/order/order_base.html:97 msgid "Supplier part thumbnail" msgstr "" -#: order/templates/order/order_base.html:116 -#: order/templates/order/return_order_base.html:109 -#: order/templates/order/sales_order_base.html:118 +#: order/templates/order/order_base.html:117 +#: order/templates/order/return_order_base.html:110 +#: order/templates/order/sales_order_base.html:119 msgid "Order Description" msgstr "" -#: order/templates/order/order_base.html:146 -msgid "No suppplier information available" -msgstr "" - -#: order/templates/order/order_base.html:159 -#: order/templates/order/sales_order_base.html:164 +#: order/templates/order/order_base.html:168 +#: order/templates/order/sales_order_base.html:165 msgid "Completed Line Items" msgstr "" -#: order/templates/order/order_base.html:165 -#: order/templates/order/sales_order_base.html:170 -#: order/templates/order/sales_order_base.html:180 +#: order/templates/order/order_base.html:174 +#: order/templates/order/sales_order_base.html:171 +#: order/templates/order/sales_order_base.html:181 msgid "Incomplete" msgstr "" -#: order/templates/order/order_base.html:184 -#: order/templates/order/return_order_base.html:160 +#: order/templates/order/order_base.html:193 +#: order/templates/order/return_order_base.html:161 #: report/templates/report/inventree_build_order_report.html:121 msgid "Issued" msgstr "" -#: order/templates/order/order_base.html:229 +#: order/templates/order/order_base.html:238 msgid "Total cost" msgstr "" -#: order/templates/order/order_base.html:233 -#: order/templates/order/return_order_base.html:202 -#: order/templates/order/sales_order_base.html:246 +#: order/templates/order/order_base.html:242 +#: order/templates/order/return_order_base.html:203 +#: order/templates/order/sales_order_base.html:247 msgid "Total cost could not be calculated" msgstr "" -#: order/templates/order/order_base.html:335 +#: order/templates/order/order_base.html:344 msgid "Purchase Order QR Code" msgstr "" -#: order/templates/order/order_base.html:347 +#: order/templates/order/order_base.html:356 msgid "Link Barcode to Purchase Order" msgstr "" @@ -6185,12 +6393,12 @@ msgstr "" #: part/templates/part/import_wizard/ajax_match_references.html:42 #: part/templates/part/import_wizard/match_fields.html:71 #: part/templates/part/import_wizard/match_references.html:49 -#: templates/js/translated/bom.js:133 templates/js/translated/build.js:530 -#: templates/js/translated/build.js:1802 -#: templates/js/translated/purchase_order.js:696 -#: templates/js/translated/purchase_order.js:1288 +#: templates/js/translated/bom.js:133 templates/js/translated/build.js:533 +#: templates/js/translated/build.js:1805 +#: templates/js/translated/purchase_order.js:679 +#: templates/js/translated/purchase_order.js:1271 #: templates/js/translated/return_order.js:505 -#: templates/js/translated/sales_order.js:1145 +#: templates/js/translated/sales_order.js:1111 #: templates/js/translated/stock.js:720 templates/js/translated/stock.js:889 #: templates/patterns/wizard/match_fields.html:70 msgid "Remove row" @@ -6243,7 +6451,7 @@ msgstr "" #: order/templates/order/purchase_order_detail.html:27 #: order/templates/order/return_order_detail.html:24 #: order/templates/order/sales_order_detail.html:24 -#: templates/js/translated/purchase_order.js:414 +#: templates/js/translated/purchase_order.js:397 #: templates/js/translated/return_order.js:458 #: templates/js/translated/sales_order.js:237 msgid "Add Line Item" @@ -6278,45 +6486,45 @@ msgstr "" msgid "Order Notes" msgstr "" -#: order/templates/order/return_order_base.html:18 -#: order/templates/order/sales_order_base.html:18 +#: order/templates/order/return_order_base.html:19 +#: order/templates/order/sales_order_base.html:19 msgid "Customer logo thumbnail" msgstr "" -#: order/templates/order/return_order_base.html:60 +#: order/templates/order/return_order_base.html:61 msgid "Print return order report" msgstr "" -#: order/templates/order/return_order_base.html:64 -#: order/templates/order/sales_order_base.html:64 +#: order/templates/order/return_order_base.html:65 +#: order/templates/order/sales_order_base.html:65 msgid "Print packing list" msgstr "" -#: order/templates/order/return_order_base.html:141 -#: order/templates/order/sales_order_base.html:158 +#: order/templates/order/return_order_base.html:142 +#: order/templates/order/sales_order_base.html:159 #: templates/js/translated/return_order.js:308 -#: templates/js/translated/sales_order.js:833 +#: templates/js/translated/sales_order.js:792 msgid "Customer Reference" msgstr "" -#: order/templates/order/return_order_base.html:198 -#: order/templates/order/sales_order_base.html:242 +#: order/templates/order/return_order_base.html:199 +#: order/templates/order/sales_order_base.html:243 #: part/templates/part/part_pricing.html:32 #: part/templates/part/part_pricing.html:58 #: part/templates/part/part_pricing.html:99 #: part/templates/part/part_pricing.html:114 #: templates/js/translated/part.js:1079 -#: templates/js/translated/purchase_order.js:1822 +#: templates/js/translated/purchase_order.js:1806 #: templates/js/translated/return_order.js:380 -#: templates/js/translated/sales_order.js:891 +#: templates/js/translated/sales_order.js:850 msgid "Total Cost" msgstr "" -#: order/templates/order/return_order_base.html:273 +#: order/templates/order/return_order_base.html:274 msgid "Return Order QR Code" msgstr "" -#: order/templates/order/return_order_base.html:285 +#: order/templates/order/return_order_base.html:286 msgid "Link Barcode to Return Order" msgstr "" @@ -6324,40 +6532,40 @@ msgstr "" msgid "Order Details" msgstr "" -#: order/templates/order/sales_order_base.html:60 +#: order/templates/order/sales_order_base.html:61 msgid "Print sales order report" msgstr "" -#: order/templates/order/sales_order_base.html:91 #: order/templates/order/sales_order_base.html:92 +#: order/templates/order/sales_order_base.html:93 msgid "Ship Items" msgstr "" -#: order/templates/order/sales_order_base.html:95 #: order/templates/order/sales_order_base.html:96 +#: order/templates/order/sales_order_base.html:97 msgid "Mark As Shipped" msgstr "" -#: order/templates/order/sales_order_base.html:99 -#: templates/js/translated/sales_order.js:536 +#: order/templates/order/sales_order_base.html:100 +#: templates/js/translated/sales_order.js:495 msgid "Complete Sales Order" msgstr "" -#: order/templates/order/sales_order_base.html:138 +#: order/templates/order/sales_order_base.html:139 msgid "This Sales Order has not been fully allocated" msgstr "" -#: order/templates/order/sales_order_base.html:176 +#: order/templates/order/sales_order_base.html:177 #: order/templates/order/sales_order_detail.html:99 #: order/templates/order/so_sidebar.html:11 msgid "Completed Shipments" msgstr "" -#: order/templates/order/sales_order_base.html:339 +#: order/templates/order/sales_order_base.html:340 msgid "Sales Order QR Code" msgstr "" -#: order/templates/order/sales_order_base.html:351 +#: order/templates/order/sales_order_base.html:352 msgid "Link Barcode to Sales Order" msgstr "" @@ -6371,7 +6579,7 @@ msgid "Pending Shipments" msgstr "" #: order/templates/order/sales_order_detail.html:71 -#: templates/js/translated/bom.js:1277 templates/js/translated/build.js:1063 +#: templates/js/translated/bom.js:1277 templates/js/translated/build.js:1066 #: templates/js/translated/filters.js:299 msgid "Actions" msgstr "" @@ -6384,39 +6592,40 @@ msgstr "" msgid "Match Supplier Parts" msgstr "" -#: order/views.py:406 +#: order/views.py:407 msgid "Sales order not found" msgstr "" -#: order/views.py:412 +#: order/views.py:413 msgid "Price not found" msgstr "" -#: order/views.py:415 +#: order/views.py:416 #, python-brace-format msgid "Updated {part} unit-price to {price}" msgstr "" -#: order/views.py:421 +#: order/views.py:422 #, python-brace-format msgid "Updated {part} unit-price to {price} and quantity to {qty}" msgstr "" -#: part/admin.py:48 part/models.py:1032 part/templates/part/part_base.html:269 +#: part/admin.py:48 part/models.py:1093 part/serializers.py:939 +#: part/templates/part/part_base.html:277 #: report/templates/report/inventree_stock_location_report.html:103 #: templates/js/translated/part.js:1233 templates/js/translated/part.js:2347 -#: templates/js/translated/stock.js:2121 +#: templates/js/translated/stock.js:2122 msgid "IPN" msgstr "" -#: part/admin.py:50 part/models.py:1041 part/templates/part/part_base.html:286 +#: part/admin.py:50 part/models.py:1102 part/templates/part/part_base.html:294 #: report/models.py:161 templates/js/translated/part.js:1238 #: templates/js/translated/part.js:2353 msgid "Revision" msgstr "" -#: part/admin.py:53 part/admin.py:319 part/models.py:1014 -#: part/templates/part/category.html:91 part/templates/part/part_base.html:307 +#: part/admin.py:53 part/admin.py:319 part/models.py:1075 +#: part/templates/part/category.html:91 part/templates/part/part_base.html:315 msgid "Keywords" msgstr "" @@ -6428,7 +6637,7 @@ msgstr "" msgid "Category ID" msgstr "" -#: part/admin.py:67 part/admin.py:304 part/serializers.py:880 +#: part/admin.py:67 part/admin.py:304 part/serializers.py:924 #: part/stocktake.py:222 msgid "Category Name" msgstr "" @@ -6441,11 +6650,11 @@ msgstr "" msgid "Default Supplier ID" msgstr "" -#: part/admin.py:81 part/models.py:1000 part/templates/part/part_base.html:177 +#: part/admin.py:81 part/models.py:1061 part/templates/part/part_base.html:178 msgid "Variant Of" msgstr "" -#: part/admin.py:84 part/models.py:1138 part/templates/part/part_base.html:203 +#: part/admin.py:84 part/models.py:1199 part/templates/part/part_base.html:204 msgid "Minimum Stock" msgstr "" @@ -6453,23 +6662,23 @@ msgstr "" msgid "Used In" msgstr "" -#: part/admin.py:150 part/serializers.py:897 -#: part/templates/part/part_base.html:241 stock/admin.py:235 +#: part/admin.py:150 part/serializers.py:949 +#: part/templates/part/part_base.html:249 stock/admin.py:236 #: templates/js/translated/part.js:717 templates/js/translated/part.js:2159 msgid "Building" msgstr "" -#: part/admin.py:155 part/models.py:3202 part/models.py:3216 +#: part/admin.py:155 part/models.py:3253 part/models.py:3267 #: templates/js/translated/part.js:976 msgid "Minimum Cost" msgstr "" -#: part/admin.py:158 part/models.py:3209 part/models.py:3223 +#: part/admin.py:158 part/models.py:3260 part/models.py:3274 #: templates/js/translated/part.js:986 msgid "Maximum Cost" msgstr "" -#: part/admin.py:308 part/admin.py:387 stock/admin.py:57 stock/admin.py:215 +#: part/admin.py:308 part/admin.py:387 stock/admin.py:57 stock/admin.py:216 msgid "Parent ID" msgstr "" @@ -6482,8 +6691,8 @@ msgstr "" msgid "Category Path" msgstr "" -#: part/admin.py:325 part/models.py:425 part/serializers.py:130 -#: part/serializers.py:290 part/serializers.py:415 +#: part/admin.py:325 part/models.py:420 part/serializers.py:130 +#: part/serializers.py:323 part/serializers.py:459 #: part/templates/part/cat_link.html:3 part/templates/part/category.html:20 #: part/templates/part/category.html:138 part/templates/part/category.html:158 #: part/templates/part/category_sidebar.html:9 @@ -6510,15 +6719,15 @@ msgstr "" msgid "Part Revision" msgstr "" -#: part/admin.py:418 part/serializers.py:1346 +#: part/admin.py:418 part/serializers.py:1400 #: templates/js/translated/pricing.js:358 -#: templates/js/translated/pricing.js:1024 +#: templates/js/translated/pricing.js:1022 msgid "Minimum Price" msgstr "" -#: part/admin.py:423 part/serializers.py:1361 +#: part/admin.py:423 part/serializers.py:1415 #: templates/js/translated/pricing.js:353 -#: templates/js/translated/pricing.js:1032 +#: templates/js/translated/pricing.js:1030 msgid "Maximum Price" msgstr "" @@ -6546,94 +6755,98 @@ msgstr "" msgid "Filter by top-level categories" msgstr "" +#: part/api.py:156 stock/api.py:343 +msgid "Cascade" +msgstr "" + #: part/api.py:158 msgid "Include sub-categories in filtered results" msgstr "" -#: part/api.py:179 templates/js/translated/part.js:311 +#: part/api.py:178 templates/js/translated/part.js:311 msgid "Parent" msgstr "" -#: part/api.py:181 +#: part/api.py:180 msgid "Filter by parent category" msgstr "" -#: part/api.py:214 +#: part/api.py:213 msgid "Exclude Tree" msgstr "" -#: part/api.py:216 +#: part/api.py:215 msgid "Exclude sub-categories under the specified category" msgstr "" -#: part/api.py:441 +#: part/api.py:440 msgid "Has Results" msgstr "" -#: part/api.py:608 +#: part/api.py:604 msgid "Incoming Purchase Order" msgstr "" -#: part/api.py:626 +#: part/api.py:618 msgid "Outgoing Sales Order" msgstr "" -#: part/api.py:642 +#: part/api.py:630 msgid "Stock produced by Build Order" msgstr "" -#: part/api.py:726 +#: part/api.py:712 msgid "Stock required for Build Order" msgstr "" -#: part/api.py:874 +#: part/api.py:858 msgid "Validate entire Bill of Materials" msgstr "" -#: part/api.py:880 +#: part/api.py:864 msgid "This option must be selected" msgstr "" -#: part/api.py:916 +#: part/api.py:900 msgid "Is Revision" msgstr "" -#: part/api.py:926 +#: part/api.py:910 msgid "Has Revisions" msgstr "" -#: part/api.py:1117 +#: part/api.py:1101 msgid "BOM Valid" msgstr "" -#: part/api.py:1523 part/models.py:1024 part/models.py:3489 part/models.py:4046 -#: part/serializers.py:430 part/serializers.py:1202 -#: part/templates/part/part_base.html:260 stock/api.py:781 +#: part/api.py:1509 part/models.py:1085 part/models.py:3540 part/models.py:4104 +#: part/serializers.py:474 part/serializers.py:1255 +#: part/templates/part/part_base.html:268 stock/api.py:781 #: templates/InvenTree/settings/settings_staff_js.html:300 #: templates/js/translated/notification.js:60 #: templates/js/translated/part.js:2383 msgid "Category" msgstr "" -#: part/api.py:1761 +#: part/api.py:1750 msgid "Assembly part is testable" msgstr "" -#: part/api.py:1770 +#: part/api.py:1759 msgid "Component part is testable" msgstr "" -#: part/api.py:1821 +#: part/api.py:1810 msgid "Uses" msgstr "" -#: part/bom.py:178 part/models.py:107 part/models.py:1077 -#: part/templates/part/category.html:113 part/templates/part/part_base.html:376 +#: part/bom.py:183 part/models.py:109 part/models.py:1138 +#: part/templates/part/category.html:113 part/templates/part/part_base.html:384 #: templates/js/translated/part.js:2397 msgid "Default Location" msgstr "" -#: part/bom.py:179 part/serializers.py:905 +#: part/bom.py:184 part/serializers.py:957 #: templates/email/low_stock_notification.html:16 msgid "Total Stock" msgstr "" @@ -6642,789 +6855,789 @@ msgstr "" msgid "Input quantity for price calculation" msgstr "" -#: part/models.py:88 part/models.py:4047 part/templates/part/category.html:16 +#: part/models.py:90 part/models.py:4105 part/templates/part/category.html:16 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "" -#: part/models.py:89 part/templates/part/category.html:133 +#: part/models.py:91 part/templates/part/category.html:133 #: templates/InvenTree/search.html:97 templates/js/translated/search.js:158 #: users/models.py:202 msgid "Part Categories" msgstr "" -#: part/models.py:108 +#: part/models.py:110 msgid "Default location for parts in this category" msgstr "" -#: part/models.py:113 stock/models.py:187 templates/js/translated/part.js:2828 -#: templates/js/translated/stock.js:2856 +#: part/models.py:115 stock/models.py:193 templates/js/translated/part.js:2828 +#: templates/js/translated/stock.js:2857 #: templates/js/translated/table_filters.js:246 #: templates/js/translated/table_filters.js:290 msgid "Structural" msgstr "" -#: part/models.py:115 +#: part/models.py:117 msgid "Parts may not be directly assigned to a structural category, but may be assigned to child categories." msgstr "" -#: part/models.py:124 +#: part/models.py:126 msgid "Default keywords" msgstr "" -#: part/models.py:125 +#: part/models.py:127 msgid "Default keywords for parts in this category" msgstr "" -#: part/models.py:131 stock/models.py:90 stock/models.py:169 +#: part/models.py:133 stock/models.py:96 stock/models.py:175 #: templates/InvenTree/settings/settings_staff_js.html:445 msgid "Icon" msgstr "" -#: part/models.py:132 part/serializers.py:143 part/serializers.py:161 -#: stock/models.py:170 +#: part/models.py:134 part/serializers.py:143 part/serializers.py:161 +#: stock/models.py:176 msgid "Icon (optional)" msgstr "" -#: part/models.py:178 +#: part/models.py:180 msgid "You cannot make this part category structural because some parts are already assigned to it!" msgstr "" -#: part/models.py:519 +#: part/models.py:514 msgid "Cannot delete this part as it is locked" msgstr "" -#: part/models.py:522 +#: part/models.py:517 msgid "Cannot delete this part as it is still active" msgstr "" -#: part/models.py:527 +#: part/models.py:522 msgid "Cannot delete this part as it is used in an assembly" msgstr "" -#: part/models.py:565 +#: part/models.py:560 msgid "Invalid choice for parent part" msgstr "" -#: part/models.py:613 part/models.py:620 +#: part/models.py:608 part/models.py:615 #, python-brace-format msgid "Part '{self}' cannot be used in BOM for '{parent}' (recursive)" msgstr "" -#: part/models.py:632 +#: part/models.py:627 #, python-brace-format msgid "Part '{parent}' is used in BOM for '{self}' (recursive)" msgstr "" -#: part/models.py:695 +#: part/models.py:694 #, python-brace-format msgid "IPN must match regex pattern {pattern}" msgstr "" -#: part/models.py:703 +#: part/models.py:702 msgid "Part cannot be a revision of itself" msgstr "" -#: part/models.py:710 +#: part/models.py:709 msgid "Cannot make a revision of a part which is already a revision" msgstr "" -#: part/models.py:717 +#: part/models.py:716 msgid "Revision code must be specified" msgstr "" -#: part/models.py:724 +#: part/models.py:723 msgid "Revisions are only allowed for assembly parts" msgstr "" -#: part/models.py:731 +#: part/models.py:730 msgid "Cannot make a revision of a template part" msgstr "" -#: part/models.py:737 +#: part/models.py:736 msgid "Parent part must point to the same template" msgstr "" -#: part/models.py:816 +#: part/models.py:832 msgid "Stock item with this serial number already exists" msgstr "" -#: part/models.py:917 +#: part/models.py:976 msgid "Duplicate IPN not allowed in part settings" msgstr "" -#: part/models.py:926 +#: part/models.py:988 msgid "Duplicate part revision already exists." msgstr "" -#: part/models.py:936 +#: part/models.py:997 msgid "Part with this Name, IPN and Revision already exists." msgstr "" -#: part/models.py:951 +#: part/models.py:1012 msgid "Parts cannot be assigned to structural part categories!" msgstr "" -#: part/models.py:983 part/models.py:4102 +#: part/models.py:1044 part/models.py:4160 msgid "Part name" msgstr "" -#: part/models.py:988 +#: part/models.py:1049 msgid "Is Template" msgstr "" -#: part/models.py:989 +#: part/models.py:1050 msgid "Is this part a template part?" msgstr "" -#: part/models.py:999 +#: part/models.py:1060 msgid "Is this part a variant of another part?" msgstr "" -#: part/models.py:1007 +#: part/models.py:1068 msgid "Part description (optional)" msgstr "" -#: part/models.py:1015 +#: part/models.py:1076 msgid "Part keywords to improve visibility in search results" msgstr "" -#: part/models.py:1025 +#: part/models.py:1086 msgid "Part category" msgstr "" -#: part/models.py:1040 +#: part/models.py:1101 msgid "Part revision or version number" msgstr "" -#: part/models.py:1050 +#: part/models.py:1111 msgid "Is this part a revision of another part?" msgstr "" -#: part/models.py:1051 part/templates/part/part_base.html:277 +#: part/models.py:1112 part/templates/part/part_base.html:285 msgid "Revision Of" msgstr "" -#: part/models.py:1075 +#: part/models.py:1136 msgid "Where is this item normally stored?" msgstr "" -#: part/models.py:1121 part/templates/part/part_base.html:385 +#: part/models.py:1182 part/templates/part/part_base.html:393 msgid "Default Supplier" msgstr "" -#: part/models.py:1122 +#: part/models.py:1183 msgid "Default supplier part" msgstr "" -#: part/models.py:1129 +#: part/models.py:1190 msgid "Default Expiry" msgstr "" -#: part/models.py:1130 +#: part/models.py:1191 msgid "Expiry time (in days) for stock items of this part" msgstr "" -#: part/models.py:1139 +#: part/models.py:1200 msgid "Minimum allowed stock level" msgstr "" -#: part/models.py:1148 +#: part/models.py:1209 msgid "Units of measure for this part" msgstr "" -#: part/models.py:1155 +#: part/models.py:1216 msgid "Can this part be built from other parts?" msgstr "" -#: part/models.py:1161 +#: part/models.py:1222 msgid "Can this part be used to build other parts?" msgstr "" -#: part/models.py:1167 +#: part/models.py:1228 msgid "Does this part have tracking for unique items?" msgstr "" -#: part/models.py:1173 +#: part/models.py:1234 msgid "Can this part have test results recorded against it?" msgstr "" -#: part/models.py:1179 +#: part/models.py:1240 msgid "Can this part be purchased from external suppliers?" msgstr "" -#: part/models.py:1185 +#: part/models.py:1246 msgid "Can this part be sold to customers?" msgstr "" -#: part/models.py:1189 +#: part/models.py:1250 msgid "Is this part active?" msgstr "" -#: part/models.py:1194 templates/js/translated/part.js:821 +#: part/models.py:1255 templates/js/translated/part.js:821 #: templates/js/translated/table_filters.js:724 msgid "Locked" msgstr "" -#: part/models.py:1195 +#: part/models.py:1256 msgid "Locked parts cannot be edited" msgstr "" -#: part/models.py:1201 +#: part/models.py:1262 msgid "Is this a virtual part, such as a software product or license?" msgstr "" -#: part/models.py:1207 +#: part/models.py:1268 msgid "BOM checksum" msgstr "" -#: part/models.py:1208 +#: part/models.py:1269 msgid "Stored BOM checksum" msgstr "" -#: part/models.py:1216 +#: part/models.py:1277 msgid "BOM checked by" msgstr "" -#: part/models.py:1221 +#: part/models.py:1282 msgid "BOM checked date" msgstr "" -#: part/models.py:1237 +#: part/models.py:1298 msgid "Creation User" msgstr "" -#: part/models.py:1247 +#: part/models.py:1308 msgid "Owner responsible for this part" msgstr "" -#: part/models.py:1252 part/templates/part/part_base.html:348 -#: stock/templates/stock/item_base.html:451 +#: part/models.py:1313 part/templates/part/part_base.html:356 +#: stock/templates/stock/item_base.html:448 #: templates/js/translated/part.js:2490 msgid "Last Stocktake" msgstr "" -#: part/models.py:2125 +#: part/models.py:2185 msgid "Sell multiple" msgstr "" -#: part/models.py:3116 +#: part/models.py:3167 msgid "Currency used to cache pricing calculations" msgstr "" -#: part/models.py:3132 +#: part/models.py:3183 msgid "Minimum BOM Cost" msgstr "" -#: part/models.py:3133 +#: part/models.py:3184 msgid "Minimum cost of component parts" msgstr "" -#: part/models.py:3139 +#: part/models.py:3190 msgid "Maximum BOM Cost" msgstr "" -#: part/models.py:3140 +#: part/models.py:3191 msgid "Maximum cost of component parts" msgstr "" -#: part/models.py:3146 +#: part/models.py:3197 msgid "Minimum Purchase Cost" msgstr "" -#: part/models.py:3147 +#: part/models.py:3198 msgid "Minimum historical purchase cost" msgstr "" -#: part/models.py:3153 +#: part/models.py:3204 msgid "Maximum Purchase Cost" msgstr "" -#: part/models.py:3154 +#: part/models.py:3205 msgid "Maximum historical purchase cost" msgstr "" -#: part/models.py:3160 +#: part/models.py:3211 msgid "Minimum Internal Price" msgstr "" -#: part/models.py:3161 +#: part/models.py:3212 msgid "Minimum cost based on internal price breaks" msgstr "" -#: part/models.py:3167 +#: part/models.py:3218 msgid "Maximum Internal Price" msgstr "" -#: part/models.py:3168 +#: part/models.py:3219 msgid "Maximum cost based on internal price breaks" msgstr "" -#: part/models.py:3174 +#: part/models.py:3225 msgid "Minimum Supplier Price" msgstr "" -#: part/models.py:3175 +#: part/models.py:3226 msgid "Minimum price of part from external suppliers" msgstr "" -#: part/models.py:3181 +#: part/models.py:3232 msgid "Maximum Supplier Price" msgstr "" -#: part/models.py:3182 +#: part/models.py:3233 msgid "Maximum price of part from external suppliers" msgstr "" -#: part/models.py:3188 +#: part/models.py:3239 msgid "Minimum Variant Cost" msgstr "" -#: part/models.py:3189 +#: part/models.py:3240 msgid "Calculated minimum cost of variant parts" msgstr "" -#: part/models.py:3195 +#: part/models.py:3246 msgid "Maximum Variant Cost" msgstr "" -#: part/models.py:3196 +#: part/models.py:3247 msgid "Calculated maximum cost of variant parts" msgstr "" -#: part/models.py:3203 +#: part/models.py:3254 msgid "Override minimum cost" msgstr "" -#: part/models.py:3210 +#: part/models.py:3261 msgid "Override maximum cost" msgstr "" -#: part/models.py:3217 +#: part/models.py:3268 msgid "Calculated overall minimum cost" msgstr "" -#: part/models.py:3224 +#: part/models.py:3275 msgid "Calculated overall maximum cost" msgstr "" -#: part/models.py:3230 +#: part/models.py:3281 msgid "Minimum Sale Price" msgstr "" -#: part/models.py:3231 +#: part/models.py:3282 msgid "Minimum sale price based on price breaks" msgstr "" -#: part/models.py:3237 +#: part/models.py:3288 msgid "Maximum Sale Price" msgstr "" -#: part/models.py:3238 +#: part/models.py:3289 msgid "Maximum sale price based on price breaks" msgstr "" -#: part/models.py:3244 +#: part/models.py:3295 msgid "Minimum Sale Cost" msgstr "" -#: part/models.py:3245 +#: part/models.py:3296 msgid "Minimum historical sale price" msgstr "" -#: part/models.py:3251 +#: part/models.py:3302 msgid "Maximum Sale Cost" msgstr "" -#: part/models.py:3252 +#: part/models.py:3303 msgid "Maximum historical sale price" msgstr "" -#: part/models.py:3271 +#: part/models.py:3322 msgid "Part for stocktake" msgstr "" -#: part/models.py:3276 +#: part/models.py:3327 msgid "Item Count" msgstr "" -#: part/models.py:3277 +#: part/models.py:3328 msgid "Number of individual stock entries at time of stocktake" msgstr "" -#: part/models.py:3285 +#: part/models.py:3336 msgid "Total available stock at time of stocktake" msgstr "" -#: part/models.py:3289 part/models.py:3372 +#: part/models.py:3340 part/models.py:3423 part/serializers.py:263 #: part/templates/part/part_scheduling.html:13 #: report/templates/report/inventree_test_report.html:106 #: templates/InvenTree/settings/plugin_settings.html:37 #: templates/InvenTree/settings/settings_staff_js.html:543 -#: templates/js/translated/part.js:1092 templates/js/translated/pricing.js:826 -#: templates/js/translated/pricing.js:950 -#: templates/js/translated/purchase_order.js:1801 -#: templates/js/translated/stock.js:2905 +#: templates/js/translated/part.js:1092 templates/js/translated/pricing.js:824 +#: templates/js/translated/pricing.js:948 +#: templates/js/translated/purchase_order.js:1785 +#: templates/js/translated/stock.js:2906 msgid "Date" msgstr "" -#: part/models.py:3290 +#: part/models.py:3341 msgid "Date stocktake was performed" msgstr "" -#: part/models.py:3298 +#: part/models.py:3349 msgid "Additional notes" msgstr "" -#: part/models.py:3308 +#: part/models.py:3359 msgid "User who performed this stocktake" msgstr "" -#: part/models.py:3314 +#: part/models.py:3365 msgid "Minimum Stock Cost" msgstr "" -#: part/models.py:3315 +#: part/models.py:3366 msgid "Estimated minimum cost of stock on hand" msgstr "" -#: part/models.py:3321 +#: part/models.py:3372 msgid "Maximum Stock Cost" msgstr "" -#: part/models.py:3322 +#: part/models.py:3373 msgid "Estimated maximum cost of stock on hand" msgstr "" -#: part/models.py:3378 templates/InvenTree/settings/settings_staff_js.html:532 +#: part/models.py:3429 templates/InvenTree/settings/settings_staff_js.html:532 msgid "Report" msgstr "" -#: part/models.py:3379 +#: part/models.py:3430 msgid "Stocktake report file (generated internally)" msgstr "" -#: part/models.py:3384 templates/InvenTree/settings/settings_staff_js.html:539 +#: part/models.py:3435 templates/InvenTree/settings/settings_staff_js.html:539 msgid "Part Count" msgstr "" -#: part/models.py:3385 +#: part/models.py:3436 msgid "Number of parts covered by stocktake" msgstr "" -#: part/models.py:3395 +#: part/models.py:3446 msgid "User who requested this stocktake report" msgstr "" -#: part/models.py:3405 +#: part/models.py:3456 msgid "Part Sale Price Break" msgstr "" -#: part/models.py:3517 +#: part/models.py:3568 msgid "Part Test Template" msgstr "" -#: part/models.py:3543 +#: part/models.py:3594 msgid "Invalid template name - must include at least one alphanumeric character" msgstr "" -#: part/models.py:3564 part/models.py:3733 +#: part/models.py:3615 part/models.py:3784 msgid "Choices must be unique" msgstr "" -#: part/models.py:3575 -msgid "Test templates can only be created for trackable parts" +#: part/models.py:3626 +msgid "Test templates can only be created for testable parts" msgstr "" -#: part/models.py:3586 +#: part/models.py:3637 msgid "Test template with the same key already exists for part" msgstr "" -#: part/models.py:3603 templates/js/translated/part.js:2898 +#: part/models.py:3654 templates/js/translated/part.js:2898 msgid "Test Name" msgstr "" -#: part/models.py:3604 +#: part/models.py:3655 msgid "Enter a name for the test" msgstr "" -#: part/models.py:3610 +#: part/models.py:3661 msgid "Test Key" msgstr "" -#: part/models.py:3611 +#: part/models.py:3662 msgid "Simplified key for the test" msgstr "" -#: part/models.py:3618 +#: part/models.py:3669 msgid "Test Description" msgstr "" -#: part/models.py:3619 +#: part/models.py:3670 msgid "Enter description for this test" msgstr "" -#: part/models.py:3623 report/models.py:208 +#: part/models.py:3674 report/models.py:216 #: templates/js/translated/part.js:2919 #: templates/js/translated/table_filters.js:502 msgid "Enabled" msgstr "" -#: part/models.py:3623 +#: part/models.py:3674 msgid "Is this test enabled?" msgstr "" -#: part/models.py:3628 templates/js/translated/part.js:2927 +#: part/models.py:3679 templates/js/translated/part.js:2927 #: templates/js/translated/table_filters.js:498 msgid "Required" msgstr "" -#: part/models.py:3629 +#: part/models.py:3680 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:3634 templates/js/translated/part.js:2935 +#: part/models.py:3685 templates/js/translated/part.js:2935 msgid "Requires Value" msgstr "" -#: part/models.py:3635 +#: part/models.py:3686 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:3640 templates/js/translated/part.js:2942 +#: part/models.py:3691 templates/js/translated/part.js:2942 msgid "Requires Attachment" msgstr "" -#: part/models.py:3642 +#: part/models.py:3693 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:3648 part/models.py:3792 templates/js/translated/part.js:1643 +#: part/models.py:3699 part/models.py:3843 templates/js/translated/part.js:1643 msgid "Choices" msgstr "" -#: part/models.py:3649 +#: part/models.py:3700 msgid "Valid choices for this test (comma-separated)" msgstr "" -#: part/models.py:3681 +#: part/models.py:3732 msgid "Part Parameter Template" msgstr "" -#: part/models.py:3708 +#: part/models.py:3759 msgid "Checkbox parameters cannot have units" msgstr "" -#: part/models.py:3713 +#: part/models.py:3764 msgid "Checkbox parameters cannot have choices" msgstr "" -#: part/models.py:3750 +#: part/models.py:3801 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:3765 +#: part/models.py:3816 msgid "Parameter Name" msgstr "" -#: part/models.py:3772 +#: part/models.py:3823 msgid "Physical units for this parameter" msgstr "" -#: part/models.py:3780 +#: part/models.py:3831 msgid "Parameter description" msgstr "" -#: part/models.py:3786 templates/js/translated/part.js:1634 +#: part/models.py:3837 templates/js/translated/part.js:1634 #: templates/js/translated/table_filters.js:837 msgid "Checkbox" msgstr "" -#: part/models.py:3787 +#: part/models.py:3838 msgid "Is this parameter a checkbox?" msgstr "" -#: part/models.py:3793 +#: part/models.py:3844 msgid "Valid choices for this parameter (comma-separated)" msgstr "" -#: part/models.py:3827 +#: part/models.py:3881 msgid "Part Parameter" msgstr "" -#: part/models.py:3853 +#: part/models.py:3907 msgid "Parameter cannot be modified - part is locked" msgstr "" -#: part/models.py:3889 +#: part/models.py:3945 msgid "Invalid choice for parameter value" msgstr "" -#: part/models.py:3938 +#: part/models.py:3996 msgid "Parent Part" msgstr "" -#: part/models.py:3946 part/models.py:4054 part/models.py:4055 +#: part/models.py:4004 part/models.py:4112 part/models.py:4113 #: templates/InvenTree/settings/settings_staff_js.html:295 msgid "Parameter Template" msgstr "" -#: part/models.py:3952 +#: part/models.py:4010 msgid "Parameter Value" msgstr "" -#: part/models.py:4002 +#: part/models.py:4060 msgid "Part Category Parameter Template" msgstr "" -#: part/models.py:4061 templates/InvenTree/settings/settings_staff_js.html:304 +#: part/models.py:4119 templates/InvenTree/settings/settings_staff_js.html:304 msgid "Default Value" msgstr "" -#: part/models.py:4062 +#: part/models.py:4120 msgid "Default Parameter Value" msgstr "" -#: part/models.py:4100 +#: part/models.py:4158 msgid "Part ID or part name" msgstr "" -#: part/models.py:4101 +#: part/models.py:4159 msgid "Unique part ID value" msgstr "" -#: part/models.py:4103 +#: part/models.py:4161 msgid "Part IPN value" msgstr "" -#: part/models.py:4104 +#: part/models.py:4162 msgid "Level" msgstr "" -#: part/models.py:4104 +#: part/models.py:4162 msgid "BOM level" msgstr "" -#: part/models.py:4215 +#: part/models.py:4272 msgid "BOM item cannot be modified - assembly is locked" msgstr "" -#: part/models.py:4222 +#: part/models.py:4279 msgid "BOM item cannot be modified - variant assembly is locked" msgstr "" -#: part/models.py:4232 +#: part/models.py:4289 msgid "Select parent part" msgstr "" -#: part/models.py:4242 +#: part/models.py:4299 msgid "Sub part" msgstr "" -#: part/models.py:4243 +#: part/models.py:4300 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:4254 +#: part/models.py:4311 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:4260 +#: part/models.py:4317 msgid "This BOM item is optional" msgstr "" -#: part/models.py:4266 +#: part/models.py:4323 msgid "This BOM item is consumable (it is not tracked in build orders)" msgstr "" -#: part/models.py:4273 part/templates/part/upload_bom.html:55 +#: part/models.py:4330 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "" -#: part/models.py:4274 +#: part/models.py:4331 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:4281 +#: part/models.py:4338 msgid "BOM item reference" msgstr "" -#: part/models.py:4289 +#: part/models.py:4346 msgid "BOM item notes" msgstr "" -#: part/models.py:4295 +#: part/models.py:4352 msgid "Checksum" msgstr "" -#: part/models.py:4296 +#: part/models.py:4353 msgid "BOM line checksum" msgstr "" -#: part/models.py:4301 templates/js/translated/table_filters.js:181 +#: part/models.py:4358 templates/js/translated/table_filters.js:181 msgid "Validated" msgstr "" -#: part/models.py:4302 +#: part/models.py:4359 msgid "This BOM item has been validated" msgstr "" -#: part/models.py:4307 part/templates/part/upload_bom.html:57 +#: part/models.py:4364 part/templates/part/upload_bom.html:57 #: templates/js/translated/bom.js:1054 #: templates/js/translated/table_filters.js:185 #: templates/js/translated/table_filters.js:218 msgid "Gets inherited" msgstr "" -#: part/models.py:4308 +#: part/models.py:4365 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:4314 +#: part/models.py:4371 msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:4399 stock/models.py:685 +#: part/models.py:4456 stock/models.py:762 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:4409 part/models.py:4411 +#: part/models.py:4466 part/models.py:4468 msgid "Sub part must be specified" msgstr "" -#: part/models.py:4551 +#: part/models.py:4613 msgid "BOM Item Substitute" msgstr "" -#: part/models.py:4572 +#: part/models.py:4634 msgid "Substitute part cannot be the same as the master part" msgstr "" -#: part/models.py:4585 +#: part/models.py:4647 msgid "Parent BOM item" msgstr "" -#: part/models.py:4593 +#: part/models.py:4655 msgid "Substitute part" msgstr "" -#: part/models.py:4609 +#: part/models.py:4671 msgid "Part 1" msgstr "" -#: part/models.py:4617 +#: part/models.py:4679 msgid "Part 2" msgstr "" -#: part/models.py:4618 +#: part/models.py:4680 msgid "Select Related Part" msgstr "" -#: part/models.py:4637 +#: part/models.py:4699 msgid "Part relationship cannot be created between a part and itself" msgstr "" -#: part/models.py:4642 +#: part/models.py:4704 msgid "Duplicate relationship already exists" msgstr "" @@ -7450,340 +7663,352 @@ msgstr "" msgid "Number of results recorded against this template" msgstr "" -#: part/serializers.py:225 part/serializers.py:243 stock/serializers.py:616 +#: part/serializers.py:225 part/serializers.py:243 stock/serializers.py:643 msgid "Purchase currency of this stock item" msgstr "" -#: part/serializers.py:291 +#: part/serializers.py:268 +msgid "Speculative Quantity" +msgstr "" + +#: part/serializers.py:277 +msgid "Model ID" +msgstr "" + +#: part/serializers.py:324 msgid "Number of parts using this template" msgstr "" -#: part/serializers.py:421 +#: part/serializers.py:465 msgid "No parts selected" msgstr "" -#: part/serializers.py:431 +#: part/serializers.py:475 msgid "Select category" msgstr "" -#: part/serializers.py:466 +#: part/serializers.py:510 msgid "Original Part" msgstr "" -#: part/serializers.py:467 +#: part/serializers.py:511 msgid "Select original part to duplicate" msgstr "" -#: part/serializers.py:472 +#: part/serializers.py:516 msgid "Copy Image" msgstr "" -#: part/serializers.py:473 +#: part/serializers.py:517 msgid "Copy image from original part" msgstr "" -#: part/serializers.py:479 part/templates/part/detail.html:293 +#: part/serializers.py:523 part/templates/part/detail.html:293 msgid "Copy BOM" msgstr "" -#: part/serializers.py:480 +#: part/serializers.py:524 msgid "Copy bill of materials from original part" msgstr "" -#: part/serializers.py:486 +#: part/serializers.py:530 msgid "Copy Parameters" msgstr "" -#: part/serializers.py:487 +#: part/serializers.py:531 msgid "Copy parameter data from original part" msgstr "" -#: part/serializers.py:493 +#: part/serializers.py:537 msgid "Copy Notes" msgstr "" -#: part/serializers.py:494 +#: part/serializers.py:538 msgid "Copy notes from original part" msgstr "" -#: part/serializers.py:512 +#: part/serializers.py:556 msgid "Initial Stock Quantity" msgstr "" -#: part/serializers.py:514 +#: part/serializers.py:558 msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added." msgstr "" -#: part/serializers.py:521 +#: part/serializers.py:565 msgid "Initial Stock Location" msgstr "" -#: part/serializers.py:522 +#: part/serializers.py:566 msgid "Specify initial stock location for this Part" msgstr "" -#: part/serializers.py:539 +#: part/serializers.py:583 msgid "Select supplier (or leave blank to skip)" msgstr "" -#: part/serializers.py:555 +#: part/serializers.py:599 msgid "Select manufacturer (or leave blank to skip)" msgstr "" -#: part/serializers.py:565 +#: part/serializers.py:609 msgid "Manufacturer part number" msgstr "" -#: part/serializers.py:572 +#: part/serializers.py:616 msgid "Selected company is not a valid supplier" msgstr "" -#: part/serializers.py:581 +#: part/serializers.py:625 msgid "Selected company is not a valid manufacturer" msgstr "" -#: part/serializers.py:592 +#: part/serializers.py:636 msgid "Manufacturer part matching this MPN already exists" msgstr "" -#: part/serializers.py:599 +#: part/serializers.py:643 msgid "Supplier part matching this SKU already exists" msgstr "" -#: part/serializers.py:903 +#: part/serializers.py:955 msgid "Revisions" msgstr "" -#: part/serializers.py:908 +#: part/serializers.py:960 msgid "Unallocated Stock" msgstr "" -#: part/serializers.py:911 +#: part/serializers.py:963 msgid "Variant Stock" msgstr "" -#: part/serializers.py:941 part/templates/part/copy_part.html:9 +#: part/serializers.py:993 part/templates/part/copy_part.html:9 #: templates/js/translated/part.js:474 msgid "Duplicate Part" msgstr "" -#: part/serializers.py:942 +#: part/serializers.py:994 msgid "Copy initial data from another Part" msgstr "" -#: part/serializers.py:948 templates/js/translated/part.js:103 +#: part/serializers.py:1000 templates/js/translated/part.js:103 msgid "Initial Stock" msgstr "" -#: part/serializers.py:949 +#: part/serializers.py:1001 msgid "Create Part with initial stock quantity" msgstr "" -#: part/serializers.py:955 +#: part/serializers.py:1007 msgid "Supplier Information" msgstr "" -#: part/serializers.py:956 +#: part/serializers.py:1008 msgid "Add initial supplier information for this part" msgstr "" -#: part/serializers.py:964 +#: part/serializers.py:1016 msgid "Copy Category Parameters" msgstr "" -#: part/serializers.py:965 +#: part/serializers.py:1017 msgid "Copy parameter templates from selected part category" msgstr "" -#: part/serializers.py:970 +#: part/serializers.py:1022 msgid "Existing Image" msgstr "" -#: part/serializers.py:971 +#: part/serializers.py:1023 msgid "Filename of an existing part image" msgstr "" -#: part/serializers.py:988 +#: part/serializers.py:1040 msgid "Image file does not exist" msgstr "" -#: part/serializers.py:1194 +#: part/serializers.py:1247 msgid "Limit stocktake report to a particular part, and any variant parts" msgstr "" -#: part/serializers.py:1204 +#: part/serializers.py:1257 msgid "Limit stocktake report to a particular part category, and any child categories" msgstr "" -#: part/serializers.py:1214 +#: part/serializers.py:1267 msgid "Limit stocktake report to a particular stock location, and any child locations" msgstr "" -#: part/serializers.py:1220 +#: part/serializers.py:1273 msgid "Exclude External Stock" msgstr "" -#: part/serializers.py:1221 +#: part/serializers.py:1274 msgid "Exclude stock items in external locations" msgstr "" -#: part/serializers.py:1226 +#: part/serializers.py:1279 msgid "Generate Report" msgstr "" -#: part/serializers.py:1227 +#: part/serializers.py:1280 msgid "Generate report file containing calculated stocktake data" msgstr "" -#: part/serializers.py:1232 +#: part/serializers.py:1285 msgid "Update Parts" msgstr "" -#: part/serializers.py:1233 +#: part/serializers.py:1286 msgid "Update specified parts with calculated stocktake data" msgstr "" -#: part/serializers.py:1241 +#: part/serializers.py:1294 msgid "Stocktake functionality is not enabled" msgstr "" -#: part/serializers.py:1347 +#: part/serializers.py:1299 +msgid "Background worker check failed" +msgstr "" + +#: part/serializers.py:1401 msgid "Override calculated value for minimum price" msgstr "" -#: part/serializers.py:1354 +#: part/serializers.py:1408 msgid "Minimum price currency" msgstr "" -#: part/serializers.py:1362 +#: part/serializers.py:1416 msgid "Override calculated value for maximum price" msgstr "" -#: part/serializers.py:1369 +#: part/serializers.py:1423 msgid "Maximum price currency" msgstr "" -#: part/serializers.py:1398 +#: part/serializers.py:1452 msgid "Update" msgstr "" -#: part/serializers.py:1399 +#: part/serializers.py:1453 msgid "Update pricing for this part" msgstr "" -#: part/serializers.py:1422 +#: part/serializers.py:1476 #, python-brace-format msgid "Could not convert from provided currencies to {default_currency}" msgstr "" -#: part/serializers.py:1429 +#: part/serializers.py:1483 msgid "Minimum price must not be greater than maximum price" msgstr "" -#: part/serializers.py:1432 +#: part/serializers.py:1486 msgid "Maximum price must not be less than minimum price" msgstr "" -#: part/serializers.py:1576 +#: part/serializers.py:1634 msgid "Select the parent assembly" msgstr "" -#: part/serializers.py:1585 +#: part/serializers.py:1643 msgid "Component Name" msgstr "" -#: part/serializers.py:1588 +#: part/serializers.py:1646 msgid "Component IPN" msgstr "" -#: part/serializers.py:1591 +#: part/serializers.py:1649 msgid "Component Description" msgstr "" -#: part/serializers.py:1597 +#: part/serializers.py:1655 msgid "Select the component part" msgstr "" -#: part/serializers.py:1606 part/templates/part/part_base.html:235 +#: part/serializers.py:1664 part/templates/part/part_base.html:243 #: templates/js/translated/bom.js:1219 msgid "Can Build" msgstr "" -#: part/serializers.py:1837 +#: part/serializers.py:1899 msgid "Select part to copy BOM from" msgstr "" -#: part/serializers.py:1845 +#: part/serializers.py:1907 msgid "Remove Existing Data" msgstr "" -#: part/serializers.py:1846 +#: part/serializers.py:1908 msgid "Remove existing BOM items before copying" msgstr "" -#: part/serializers.py:1851 +#: part/serializers.py:1913 msgid "Include Inherited" msgstr "" -#: part/serializers.py:1852 +#: part/serializers.py:1914 msgid "Include BOM items which are inherited from templated parts" msgstr "" -#: part/serializers.py:1857 +#: part/serializers.py:1919 msgid "Skip Invalid Rows" msgstr "" -#: part/serializers.py:1858 +#: part/serializers.py:1920 msgid "Enable this option to skip invalid rows" msgstr "" -#: part/serializers.py:1863 +#: part/serializers.py:1925 msgid "Copy Substitute Parts" msgstr "" -#: part/serializers.py:1864 +#: part/serializers.py:1926 msgid "Copy substitute parts when duplicate BOM items" msgstr "" -#: part/serializers.py:1901 +#: part/serializers.py:1963 msgid "Clear Existing BOM" msgstr "" -#: part/serializers.py:1902 +#: part/serializers.py:1964 msgid "Delete existing BOM items before uploading" msgstr "" -#: part/serializers.py:1934 +#: part/serializers.py:1996 msgid "No part column specified" msgstr "" -#: part/serializers.py:1978 +#: part/serializers.py:2040 msgid "Multiple matching parts found" msgstr "" -#: part/serializers.py:1981 +#: part/serializers.py:2043 msgid "No matching part found" msgstr "" -#: part/serializers.py:1984 +#: part/serializers.py:2045 msgid "Part is not designated as a component" msgstr "" -#: part/serializers.py:1993 +#: part/serializers.py:2054 msgid "Quantity not provided" msgstr "" -#: part/serializers.py:2001 +#: part/serializers.py:2062 msgid "Invalid quantity" msgstr "" -#: part/serializers.py:2024 +#: part/serializers.py:2085 msgid "At least one BOM item is required" msgstr "" #: part/stocktake.py:224 templates/js/translated/part.js:1073 #: templates/js/translated/part.js:1828 templates/js/translated/part.js:1884 -#: templates/js/translated/purchase_order.js:2154 +#: templates/js/translated/purchase_order.js:2138 msgid "Total Quantity" msgstr "" @@ -7933,9 +8158,9 @@ msgid "Add stocktake information" msgstr "" #: part/templates/part/detail.html:67 part/templates/part/part_sidebar.html:50 -#: stock/admin.py:255 templates/InvenTree/settings/part_stocktake.html:30 +#: stock/admin.py:256 templates/InvenTree/settings/part_stocktake.html:30 #: templates/InvenTree/settings/sidebar.html:53 -#: templates/js/translated/stock.js:2301 users/models.py:204 +#: templates/js/translated/stock.js:2302 users/models.py:204 msgid "Stocktake" msgstr "" @@ -8094,142 +8319,146 @@ msgstr "" msgid "Part List" msgstr "" -#: part/templates/part/part_base.html:25 part/templates/part/part_base.html:29 +#: part/templates/part/part_base.html:26 part/templates/part/part_base.html:30 msgid "You are subscribed to notifications for this part" msgstr "" -#: part/templates/part/part_base.html:33 +#: part/templates/part/part_base.html:34 msgid "Subscribe to notifications for this part" msgstr "" -#: part/templates/part/part_base.html:52 +#: part/templates/part/part_base.html:53 #: stock/templates/stock/item_base.html:62 -#: stock/templates/stock/location.html:71 templates/js/translated/label.js:136 +#: stock/templates/stock/location.html:72 templates/js/translated/label.js:136 msgid "Print Label" msgstr "" -#: part/templates/part/part_base.html:58 +#: part/templates/part/part_base.html:59 msgid "Show pricing information" msgstr "" -#: part/templates/part/part_base.html:63 -#: stock/templates/stock/item_base.html:110 -#: stock/templates/stock/location.html:80 +#: part/templates/part/part_base.html:64 +#: stock/templates/stock/item_base.html:107 +#: stock/templates/stock/location.html:81 msgid "Stock actions" msgstr "" -#: part/templates/part/part_base.html:70 +#: part/templates/part/part_base.html:71 msgid "Count part stock" msgstr "" -#: part/templates/part/part_base.html:76 +#: part/templates/part/part_base.html:77 msgid "Transfer part stock" msgstr "" -#: part/templates/part/part_base.html:91 templates/js/translated/part.js:2299 +#: part/templates/part/part_base.html:92 templates/js/translated/part.js:2299 msgid "Part actions" msgstr "" -#: part/templates/part/part_base.html:94 +#: part/templates/part/part_base.html:95 msgid "Duplicate part" msgstr "" -#: part/templates/part/part_base.html:97 +#: part/templates/part/part_base.html:98 msgid "Edit part" msgstr "" -#: part/templates/part/part_base.html:100 +#: part/templates/part/part_base.html:101 msgid "Delete part" msgstr "" -#: part/templates/part/part_base.html:119 +#: part/templates/part/part_base.html:120 msgid "Part is a template part (variants can be made from this part)" msgstr "" -#: part/templates/part/part_base.html:123 +#: part/templates/part/part_base.html:124 msgid "Part can be assembled from other parts" msgstr "" -#: part/templates/part/part_base.html:127 +#: part/templates/part/part_base.html:128 msgid "Part can be used in assemblies" msgstr "" -#: part/templates/part/part_base.html:131 +#: part/templates/part/part_base.html:132 msgid "Part stock is tracked by serial number" msgstr "" -#: part/templates/part/part_base.html:135 +#: part/templates/part/part_base.html:136 msgid "Part can be purchased from external suppliers" msgstr "" -#: part/templates/part/part_base.html:139 +#: part/templates/part/part_base.html:140 msgid "Part can be sold to customers" msgstr "" -#: part/templates/part/part_base.html:145 +#: part/templates/part/part_base.html:146 msgid "Part is not active" msgstr "" -#: part/templates/part/part_base.html:153 +#: part/templates/part/part_base.html:154 msgid "Part is virtual (not a physical part)" msgstr "" -#: part/templates/part/part_base.html:163 -#: part/templates/part/part_base.html:690 +#: part/templates/part/part_base.html:164 +#: part/templates/part/part_base.html:698 msgid "Show Part Details" msgstr "" #: part/templates/part/part_base.html:218 -#: stock/templates/stock/item_base.html:388 +msgid "Required for Orders" +msgstr "" + +#: part/templates/part/part_base.html:226 +#: stock/templates/stock/item_base.html:385 msgid "Allocated to Build Orders" msgstr "" -#: part/templates/part/part_base.html:227 -#: stock/templates/stock/item_base.html:381 +#: part/templates/part/part_base.html:235 +#: stock/templates/stock/item_base.html:378 msgid "Allocated to Sales Orders" msgstr "" -#: part/templates/part/part_base.html:300 +#: part/templates/part/part_base.html:308 msgid "Minimum stock level" msgstr "" -#: part/templates/part/part_base.html:331 templates/js/translated/bom.js:1071 +#: part/templates/part/part_base.html:339 templates/js/translated/bom.js:1071 #: templates/js/translated/part.js:1271 templates/js/translated/part.js:2463 #: templates/js/translated/pricing.js:391 -#: templates/js/translated/pricing.js:1054 +#: templates/js/translated/pricing.js:1052 msgid "Price Range" msgstr "" -#: part/templates/part/part_base.html:361 +#: part/templates/part/part_base.html:369 msgid "Latest Serial Number" msgstr "" -#: part/templates/part/part_base.html:365 -#: stock/templates/stock/item_base.html:322 +#: part/templates/part/part_base.html:373 +#: stock/templates/stock/item_base.html:319 msgid "Search for serial number" msgstr "" -#: part/templates/part/part_base.html:453 +#: part/templates/part/part_base.html:461 msgid "Part QR Code" msgstr "" -#: part/templates/part/part_base.html:470 +#: part/templates/part/part_base.html:478 msgid "Link Barcode to Part" msgstr "" -#: part/templates/part/part_base.html:520 +#: part/templates/part/part_base.html:528 msgid "Calculate" msgstr "" -#: part/templates/part/part_base.html:537 +#: part/templates/part/part_base.html:545 msgid "Remove associated image from this part" msgstr "" -#: part/templates/part/part_base.html:588 +#: part/templates/part/part_base.html:596 msgid "No matching images found" msgstr "" -#: part/templates/part/part_base.html:684 +#: part/templates/part/part_base.html:692 msgid "Hide Part Details" msgstr "" @@ -8283,13 +8512,13 @@ msgid "Variants" msgstr "" #: part/templates/part/part_sidebar.html:14 -#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:21 +#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:22 #: stock/templates/stock/stock_app_base.html:10 #: templates/InvenTree/search.html:153 #: templates/InvenTree/settings/sidebar.html:51 #: templates/js/translated/part.js:1249 templates/js/translated/part.js:2152 #: templates/js/translated/part.js:2411 templates/js/translated/stock.js:1066 -#: templates/js/translated/stock.js:2155 templates/navbar.html:31 +#: templates/js/translated/stock.js:2156 templates/navbar.html:31 msgid "Stock" msgstr "" @@ -8325,17 +8554,17 @@ msgstr "" #: part/templates/part/prices.html:18 #: templates/InvenTree/settings/settings_staff_js.html:80 #: templates/InvenTree/settings/user.html:24 -#: templates/js/translated/helpers.js:103 +#: templates/js/translated/helpers.js:104 #: templates/js/translated/pricing.js:628 templates/notes_buttons.html:3 #: templates/notes_buttons.html:4 msgid "Edit" msgstr "" -#: part/templates/part/prices.html:28 stock/admin.py:251 -#: stock/templates/stock/item_base.html:446 -#: templates/js/translated/company.js:1703 -#: templates/js/translated/company.js:1713 -#: templates/js/translated/stock.js:2331 +#: part/templates/part/prices.html:28 stock/admin.py:252 +#: stock/templates/stock/item_base.html:443 +#: templates/js/translated/company.js:1704 +#: templates/js/translated/company.js:1714 +#: templates/js/translated/stock.js:2332 msgid "Last Updated" msgstr "" @@ -8407,7 +8636,7 @@ msgid "Update Pricing" msgstr "" #: part/templates/part/stock_count.html:7 -#: templates/js/translated/model_renderers.js:228 +#: templates/js/translated/model_renderers.js:231 #: templates/js/translated/part.js:707 templates/js/translated/part.js:2147 #: templates/js/translated/part.js:2149 msgid "No Stock" @@ -8487,7 +8716,7 @@ msgstr "" msgid "Part Pricing" msgstr "" -#: plugin/api.py:172 +#: plugin/api.py:175 msgid "Plugin cannot be deleted as it is currently active" msgstr "" @@ -8499,78 +8728,85 @@ msgstr "" msgid "No matching action found" msgstr "" -#: plugin/base/barcodes/api.py:125 plugin/base/barcodes/api.py:371 -#: plugin/base/barcodes/api.py:546 +#: plugin/base/barcodes/api.py:203 msgid "No match found for barcode data" msgstr "" -#: plugin/base/barcodes/api.py:129 +#: plugin/base/barcodes/api.py:207 msgid "Match found for barcode data" msgstr "" -#: plugin/base/barcodes/api.py:163 plugin/base/barcodes/serializers.py:45 +#: plugin/base/barcodes/api.py:245 plugin/base/barcodes/serializers.py:72 msgid "Model is not supported" msgstr "" -#: plugin/base/barcodes/api.py:168 +#: plugin/base/barcodes/api.py:250 msgid "Model instance not found" msgstr "" -#: plugin/base/barcodes/api.py:197 -#: templates/js/translated/purchase_order.js:1468 +#: plugin/base/barcodes/api.py:279 +#: templates/js/translated/purchase_order.js:1452 msgid "Barcode matches existing item" msgstr "" -#: plugin/base/barcodes/api.py:336 +#: plugin/base/barcodes/api.py:418 msgid "No matching part data found" msgstr "" -#: plugin/base/barcodes/api.py:353 +#: plugin/base/barcodes/api.py:434 msgid "No matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:357 +#: plugin/base/barcodes/api.py:437 msgid "Multiple matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:381 +#: plugin/base/barcodes/api.py:450 plugin/base/barcodes/api.py:664 +msgid "No matching plugin found for barcode data" +msgstr "" + +#: plugin/base/barcodes/api.py:460 msgid "Matched supplier part" msgstr "" -#: plugin/base/barcodes/api.py:430 +#: plugin/base/barcodes/api.py:525 msgid "Item has already been received" msgstr "" -#: plugin/base/barcodes/api.py:467 +#: plugin/base/barcodes/api.py:563 msgid "No match for supplier barcode" msgstr "" -#: plugin/base/barcodes/api.py:510 +#: plugin/base/barcodes/api.py:612 msgid "Multiple matching line items found" msgstr "" -#: plugin/base/barcodes/api.py:513 +#: plugin/base/barcodes/api.py:615 msgid "No matching line item found" msgstr "" -#: plugin/base/barcodes/api.py:551 plugin/base/barcodes/api.py:558 +#: plugin/base/barcodes/api.py:661 +msgid "No sales order provided" +msgstr "" + +#: plugin/base/barcodes/api.py:670 msgid "Barcode does not match an existing stock item" msgstr "" -#: plugin/base/barcodes/api.py:569 +#: plugin/base/barcodes/api.py:686 msgid "Stock item does not match line item" msgstr "" -#: plugin/base/barcodes/api.py:593 templates/js/translated/build.js:2780 -#: templates/js/translated/sales_order.js:1953 +#: plugin/base/barcodes/api.py:716 templates/js/translated/build.js:2798 +#: templates/js/translated/sales_order.js:1934 msgid "Insufficient stock available" msgstr "" -#: plugin/base/barcodes/api.py:602 +#: plugin/base/barcodes/api.py:729 msgid "Stock item allocated to sales order" msgstr "" -#: plugin/base/barcodes/api.py:606 +#: plugin/base/barcodes/api.py:732 msgid "Not enough information" msgstr "" @@ -8592,75 +8828,75 @@ msgstr "" msgid "Purchase order does not match supplier" msgstr "" -#: plugin/base/barcodes/mixins.py:465 +#: plugin/base/barcodes/mixins.py:467 msgid "Failed to find pending line item for supplier part" msgstr "" -#: plugin/base/barcodes/mixins.py:496 +#: plugin/base/barcodes/mixins.py:498 msgid "Further information required to receive line item" msgstr "" -#: plugin/base/barcodes/mixins.py:504 +#: plugin/base/barcodes/mixins.py:506 msgid "Received purchase order line item" msgstr "" -#: plugin/base/barcodes/serializers.py:21 +#: plugin/base/barcodes/serializers.py:48 msgid "Scanned barcode data" msgstr "" -#: plugin/base/barcodes/serializers.py:30 +#: plugin/base/barcodes/serializers.py:57 msgid "Model name to generate barcode for" msgstr "" -#: plugin/base/barcodes/serializers.py:35 +#: plugin/base/barcodes/serializers.py:62 msgid "Primary key of model object to generate barcode for" msgstr "" -#: plugin/base/barcodes/serializers.py:105 +#: plugin/base/barcodes/serializers.py:132 msgid "Purchase Order to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:111 +#: plugin/base/barcodes/serializers.py:138 msgid "Purchase order is not pending" msgstr "" -#: plugin/base/barcodes/serializers.py:129 +#: plugin/base/barcodes/serializers.py:156 msgid "PurchaseOrder to receive items against" msgstr "" -#: plugin/base/barcodes/serializers.py:135 +#: plugin/base/barcodes/serializers.py:162 msgid "Purchase order has not been placed" msgstr "" -#: plugin/base/barcodes/serializers.py:143 +#: plugin/base/barcodes/serializers.py:170 msgid "Location to receive items into" msgstr "" -#: plugin/base/barcodes/serializers.py:149 +#: plugin/base/barcodes/serializers.py:176 msgid "Cannot select a structural location" msgstr "" -#: plugin/base/barcodes/serializers.py:163 +#: plugin/base/barcodes/serializers.py:190 msgid "Sales Order to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:169 +#: plugin/base/barcodes/serializers.py:196 msgid "Sales order is not pending" msgstr "" -#: plugin/base/barcodes/serializers.py:177 +#: plugin/base/barcodes/serializers.py:204 msgid "Sales order line item to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:184 +#: plugin/base/barcodes/serializers.py:211 msgid "Sales order shipment to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:190 +#: plugin/base/barcodes/serializers.py:217 msgid "Shipment has already been delivered" msgstr "" -#: plugin/base/barcodes/serializers.py:195 +#: plugin/base/barcodes/serializers.py:222 msgid "Quantity to allocate" msgstr "" @@ -8680,6 +8916,42 @@ msgstr "" msgid "No items provided to print" msgstr "" +#: plugin/base/ui/serializers.py:30 +msgid "Plugin Name" +msgstr "" + +#: plugin/base/ui/serializers.py:34 +msgid "Feature Type" +msgstr "" + +#: plugin/base/ui/serializers.py:39 +msgid "Feature Label" +msgstr "" + +#: plugin/base/ui/serializers.py:44 +msgid "Feature Title" +msgstr "" + +#: plugin/base/ui/serializers.py:49 +msgid "Feature Description" +msgstr "" + +#: plugin/base/ui/serializers.py:54 +msgid "Feature Icon" +msgstr "" + +#: plugin/base/ui/serializers.py:58 +msgid "Feature Options" +msgstr "" + +#: plugin/base/ui/serializers.py:61 +msgid "Feature Context" +msgstr "" + +#: plugin/base/ui/serializers.py:64 +msgid "Feature Source (javascript)" +msgstr "" + #: plugin/builtin/barcodes/inventree_barcode.py:27 msgid "InvenTree Barcodes" msgstr "" @@ -8757,7 +9029,7 @@ msgstr "" msgid "URL that is used to send messages to a slack channel" msgstr "" -#: plugin/builtin/integration/core_notifications.py:164 +#: plugin/builtin/integration/core_notifications.py:166 msgid "Open link" msgstr "" @@ -8795,11 +9067,11 @@ msgstr "" msgid "Provides support for printing using a machine" msgstr "" -#: plugin/builtin/labels/inventree_machine.py:149 +#: plugin/builtin/labels/inventree_machine.py:151 msgid "last used" msgstr "" -#: plugin/builtin/labels/inventree_machine.py:166 +#: plugin/builtin/labels/inventree_machine.py:168 msgid "Options" msgstr "" @@ -8823,7 +9095,7 @@ msgstr "" msgid "Print a border around each label" msgstr "" -#: plugin/builtin/labels/label_sheet.py:47 report/models.py:307 +#: plugin/builtin/labels/label_sheet.py:47 report/models.py:315 msgid "Landscape" msgstr "" @@ -8895,19 +9167,19 @@ msgstr "" msgid "The Supplier which acts as 'TME'" msgstr "" -#: plugin/installer.py:194 plugin/installer.py:282 +#: plugin/installer.py:199 plugin/installer.py:282 msgid "Only staff users can administer plugins" msgstr "" -#: plugin/installer.py:197 +#: plugin/installer.py:202 msgid "Plugin installation is disabled" msgstr "" -#: plugin/installer.py:248 +#: plugin/installer.py:246 msgid "Installed plugin successfully" msgstr "" -#: plugin/installer.py:254 +#: plugin/installer.py:251 #, python-brace-format msgid "Installed plugin into {path}" msgstr "" @@ -8944,10 +9216,6 @@ msgstr "" msgid "Plugin Configurations" msgstr "" -#: plugin/models.py:43 users/models.py:100 -msgid "Key" -msgstr "" - #: plugin/models.py:44 msgid "Key of plugin" msgstr "" @@ -8956,7 +9224,7 @@ msgstr "" msgid "PluginName of the plugin" msgstr "" -#: plugin/models.py:59 plugin/serializers.py:90 +#: plugin/models.py:59 plugin/serializers.py:115 msgid "Package Name" msgstr "" @@ -8985,17 +9253,17 @@ msgstr "" msgid "Package Plugin" msgstr "" -#: plugin/models.py:220 report/models.py:474 +#: plugin/models.py:259 report/models.py:482 #: templates/InvenTree/settings/plugin_settings.html:9 #: templates/js/translated/plugin.js:51 msgid "Plugin" msgstr "" -#: plugin/models.py:267 +#: plugin/models.py:306 msgid "Method" msgstr "" -#: plugin/plugin.py:270 +#: plugin/plugin.py:275 msgid "No author found" msgstr "" @@ -9054,81 +9322,157 @@ msgstr "" msgid "InvenTree Contributors" msgstr "" -#: plugin/serializers.py:81 -msgid "Source URL" +#: plugin/samples/integration/user_interface_sample.py:27 +msgid "Enable Part Panels" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:28 +msgid "Enable custom panels for Part views" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:33 +msgid "Enable Purchase Order Panels" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:34 +msgid "Enable custom panels for Purchase Order views" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:39 +msgid "Enable Broken Panels" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:40 +msgid "Enable broken panels for testing" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:45 +msgid "Enable Dynamic Panel" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:46 +msgid "Enable dynamic panels for testing" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:98 +msgid "Part Panel" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:131 +msgid "Broken Dashboard Item" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:133 +msgid "This is a broken dashboard item - it will not render!" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:139 +msgid "Sample Dashboard Item" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:141 +msgid "This is a sample dashboard item. It renders a simple string of HTML content." +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:147 +msgid "Context Dashboard Item" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:161 +msgid "Admin Dashboard Item" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:162 +msgid "This is an admin-only dashboard item." +msgstr "" + +#: plugin/serializers.py:82 +msgid "Source File" msgstr "" #: plugin/serializers.py:83 +msgid "Path to the source file for admin integration" +msgstr "" + +#: plugin/serializers.py:90 +msgid "Optional context data for the admin integration" +msgstr "" + +#: plugin/serializers.py:106 +msgid "Source URL" +msgstr "" + +#: plugin/serializers.py:108 msgid "Source for the package - this can be a custom registry or a VCS path" msgstr "" -#: plugin/serializers.py:92 +#: plugin/serializers.py:117 msgid "Name for the Plugin Package - can also contain a version indicator" msgstr "" -#: plugin/serializers.py:99 +#: plugin/serializers.py:124 #: templates/InvenTree/settings/plugin_settings.html:42 #: templates/js/translated/plugin.js:86 msgid "Version" msgstr "" -#: plugin/serializers.py:101 +#: plugin/serializers.py:126 msgid "Version specifier for the plugin. Leave blank for latest version." msgstr "" -#: plugin/serializers.py:106 +#: plugin/serializers.py:131 msgid "Confirm plugin installation" msgstr "" -#: plugin/serializers.py:108 +#: plugin/serializers.py:133 msgid "This will install this plugin now into the current instance. The instance will go into maintenance." msgstr "" -#: plugin/serializers.py:121 +#: plugin/serializers.py:146 msgid "Installation not confirmed" msgstr "" -#: plugin/serializers.py:123 +#: plugin/serializers.py:148 msgid "Either packagename of URL must be provided" msgstr "" -#: plugin/serializers.py:161 +#: plugin/serializers.py:184 msgid "Full reload" msgstr "" -#: plugin/serializers.py:162 +#: plugin/serializers.py:185 msgid "Perform a full reload of the plugin registry" msgstr "" -#: plugin/serializers.py:168 +#: plugin/serializers.py:191 msgid "Force reload" msgstr "" -#: plugin/serializers.py:170 +#: plugin/serializers.py:193 msgid "Force a reload of the plugin registry, even if it is already loaded" msgstr "" -#: plugin/serializers.py:177 +#: plugin/serializers.py:200 msgid "Collect plugins" msgstr "" -#: plugin/serializers.py:178 +#: plugin/serializers.py:201 msgid "Collect plugins and add them to the registry" msgstr "" -#: plugin/serializers.py:205 +#: plugin/serializers.py:228 msgid "Activate Plugin" msgstr "" -#: plugin/serializers.py:206 +#: plugin/serializers.py:229 msgid "Activate this plugin" msgstr "" -#: plugin/serializers.py:226 +#: plugin/serializers.py:249 msgid "Delete configuration" msgstr "" -#: plugin/serializers.py:227 +#: plugin/serializers.py:250 msgid "Delete the plugin configuration from the database" msgstr "" @@ -9136,11 +9480,11 @@ msgstr "" msgid "No valid objects provided to template" msgstr "" -#: report/api.py:103 report/models.py:438 report/serializers.py:98 -#: report/serializers.py:148 templates/js/translated/purchase_order.js:1817 +#: report/api.py:103 report/models.py:446 report/serializers.py:99 +#: report/serializers.py:149 templates/js/translated/purchase_order.js:1801 #: templates/js/translated/return_order.js:353 -#: templates/js/translated/sales_order.js:887 -#: templates/js/translated/sales_order.js:1047 +#: templates/js/translated/sales_order.js:846 +#: templates/js/translated/sales_order.js:1020 msgid "Items" msgstr "" @@ -9168,7 +9512,11 @@ msgstr "" msgid "Error printing label" msgstr "" -#: report/api.py:375 report/api.py:411 +#: report/api.py:358 +msgid "Report saved at time of printing" +msgstr "" + +#: report/api.py:384 report/api.py:420 #, python-brace-format msgid "Template file '{template}' is missing or does not exist" msgstr "" @@ -9205,135 +9553,143 @@ msgstr "" msgid "Revision number (auto-increments)" msgstr "" -#: report/models.py:202 +#: report/models.py:168 +msgid "Attach to Model on Print" +msgstr "" + +#: report/models.py:170 +msgid "Save report output as an attachment against linked model instance when printing" +msgstr "" + +#: report/models.py:210 msgid "Filename Pattern" msgstr "" -#: report/models.py:203 +#: report/models.py:211 msgid "Pattern for generating filenames" msgstr "" -#: report/models.py:208 +#: report/models.py:216 msgid "Template is enabled" msgstr "" -#: report/models.py:214 +#: report/models.py:222 msgid "Target model type for template" msgstr "" -#: report/models.py:234 +#: report/models.py:242 msgid "Filters" msgstr "" -#: report/models.py:235 +#: report/models.py:243 msgid "Template query filters (comma-separated list of key=value pairs)" msgstr "" -#: report/models.py:294 report/models.py:361 +#: report/models.py:302 report/models.py:369 msgid "Template file" msgstr "" -#: report/models.py:302 +#: report/models.py:310 msgid "Page size for PDF reports" msgstr "" -#: report/models.py:308 +#: report/models.py:316 msgid "Render report in landscape orientation" msgstr "" -#: report/models.py:367 +#: report/models.py:375 msgid "Width [mm]" msgstr "" -#: report/models.py:368 +#: report/models.py:376 msgid "Label width, specified in mm" msgstr "" -#: report/models.py:374 +#: report/models.py:382 msgid "Height [mm]" msgstr "" -#: report/models.py:375 +#: report/models.py:383 msgid "Label height, specified in mm" msgstr "" -#: report/models.py:438 +#: report/models.py:446 msgid "Number of items to process" msgstr "" -#: report/models.py:444 +#: report/models.py:452 msgid "Report generation is complete" msgstr "" -#: report/models.py:448 templates/js/translated/build.js:2349 +#: report/models.py:456 templates/js/translated/build.js:2352 msgid "Progress" msgstr "" -#: report/models.py:448 +#: report/models.py:456 msgid "Report generation progress" msgstr "" -#: report/models.py:456 +#: report/models.py:464 msgid "Report Template" msgstr "" -#: report/models.py:463 report/models.py:486 +#: report/models.py:471 report/models.py:494 msgid "Output File" msgstr "" -#: report/models.py:464 report/models.py:487 +#: report/models.py:472 report/models.py:495 msgid "Generated output file" msgstr "" -#: report/models.py:475 +#: report/models.py:483 msgid "Label output plugin" msgstr "" -#: report/models.py:479 +#: report/models.py:487 msgid "Label Template" msgstr "" -#: report/models.py:502 +#: report/models.py:510 msgid "Snippet" msgstr "" -#: report/models.py:503 +#: report/models.py:511 msgid "Report snippet file" msgstr "" -#: report/models.py:510 +#: report/models.py:518 msgid "Snippet file description" msgstr "" -#: report/models.py:528 +#: report/models.py:536 msgid "Asset" msgstr "" -#: report/models.py:529 +#: report/models.py:537 msgid "Report asset file" msgstr "" -#: report/models.py:536 +#: report/models.py:544 msgid "Asset file description" msgstr "" -#: report/serializers.py:91 +#: report/serializers.py:92 msgid "Select report template" msgstr "" -#: report/serializers.py:99 report/serializers.py:149 +#: report/serializers.py:100 report/serializers.py:150 msgid "List of item primary keys to include in the report" msgstr "" -#: report/serializers.py:132 +#: report/serializers.py:133 msgid "Select label template" msgstr "" -#: report/serializers.py:140 +#: report/serializers.py:141 msgid "Printing Plugin" msgstr "" -#: report/serializers.py:141 +#: report/serializers.py:142 msgid "Select plugin to use for label printing" msgstr "" @@ -9366,9 +9722,9 @@ msgstr "" #: report/templates/report/inventree_sales_order_report.html:30 #: templates/js/translated/order.js:341 templates/js/translated/pricing.js:527 #: templates/js/translated/pricing.js:596 -#: templates/js/translated/pricing.js:834 -#: templates/js/translated/purchase_order.js:2185 -#: templates/js/translated/sales_order.js:1873 +#: templates/js/translated/pricing.js:832 +#: templates/js/translated/purchase_order.js:2169 +#: templates/js/translated/sales_order.js:1854 msgid "Unit Price" msgstr "" @@ -9380,13 +9736,18 @@ msgstr "" #: report/templates/report/inventree_purchase_order_report.html:72 #: report/templates/report/inventree_sales_order_report.html:72 -#: templates/js/translated/purchase_order.js:2087 -#: templates/js/translated/sales_order.js:1842 +#: templates/js/translated/purchase_order.js:2071 +#: templates/js/translated/sales_order.js:1823 #: templates/test_statistics_table.html:8 #: templates/test_statistics_table.html:19 msgid "Total" msgstr "" +#: report/templates/report/inventree_sales_order_shipment_report.html:23 +#: stock/templates/stock/stock_sidebar.html:8 +msgid "Allocations" +msgstr "" + #: report/templates/report/inventree_stock_location_report.html:97 msgid "Stock location items" msgstr "" @@ -9404,15 +9765,13 @@ msgstr "" msgid "Test" msgstr "" -#: report/templates/report/inventree_test_report.html:103 stock/models.py:2544 -msgid "Result" -msgstr "" - #: report/templates/report/inventree_test_report.html:129 +#: templates/js/translated/stock.js:1448 msgid "Pass" msgstr "" #: report/templates/report/inventree_test_report.html:131 +#: templates/js/translated/stock.js:1450 msgid "Fail" msgstr "" @@ -9421,17 +9780,18 @@ msgid "No result (required)" msgstr "" #: report/templates/report/inventree_test_report.html:140 +#: templates/js/translated/stock.js:1455 msgid "No result" msgstr "" #: report/templates/report/inventree_test_report.html:153 -#: stock/serializers.py:599 stock/templates/stock/stock_sidebar.html:16 +#: stock/serializers.py:626 stock/templates/stock/stock_sidebar.html:16 msgid "Installed Items" msgstr "" -#: report/templates/report/inventree_test_report.html:167 stock/admin.py:161 +#: report/templates/report/inventree_test_report.html:167 stock/admin.py:162 #: templates/js/translated/stock.js:706 templates/js/translated/stock.js:877 -#: templates/js/translated/stock.js:3194 +#: templates/js/translated/stock.js:3195 msgid "Serial" msgstr "" @@ -9451,67 +9811,67 @@ msgstr "" msgid "company_image tag requires a Company instance" msgstr "" -#: stock/admin.py:51 stock/admin.py:171 +#: stock/admin.py:51 stock/admin.py:172 msgid "Location ID" msgstr "" -#: stock/admin.py:63 stock/templates/stock/location.html:128 -#: stock/templates/stock/location.html:134 +#: stock/admin.py:63 stock/templates/stock/location.html:129 +#: stock/templates/stock/location.html:135 msgid "Location Path" msgstr "" -#: stock/admin.py:148 +#: stock/admin.py:149 msgid "Stock Item ID" msgstr "" -#: stock/admin.py:167 +#: stock/admin.py:168 msgid "Status Code" msgstr "" -#: stock/admin.py:179 +#: stock/admin.py:180 msgid "Supplier Part ID" msgstr "" -#: stock/admin.py:184 +#: stock/admin.py:185 msgid "Supplier Part SKU" msgstr "" -#: stock/admin.py:189 +#: stock/admin.py:190 msgid "Supplier ID" msgstr "" -#: stock/admin.py:200 +#: stock/admin.py:201 msgid "Customer ID" msgstr "" -#: stock/admin.py:205 stock/models.py:825 -#: stock/templates/stock/item_base.html:354 +#: stock/admin.py:206 stock/models.py:902 +#: stock/templates/stock/item_base.html:351 msgid "Installed In" msgstr "" -#: stock/admin.py:210 +#: stock/admin.py:211 msgid "Build ID" msgstr "" -#: stock/admin.py:220 +#: stock/admin.py:221 msgid "Sales Order ID" msgstr "" -#: stock/admin.py:225 +#: stock/admin.py:226 msgid "Purchase Order ID" msgstr "" -#: stock/admin.py:240 +#: stock/admin.py:241 msgid "Review Needed" msgstr "" -#: stock/admin.py:245 +#: stock/admin.py:246 msgid "Delete on Deplete" msgstr "" -#: stock/admin.py:260 stock/models.py:919 -#: stock/templates/stock/item_base.html:433 -#: templates/js/translated/stock.js:2315 users/models.py:124 +#: stock/admin.py:261 stock/models.py:996 +#: stock/templates/stock/item_base.html:430 +#: templates/js/translated/stock.js:2316 users/models.py:124 msgid "Expiry Date" msgstr "" @@ -9527,11 +9887,11 @@ msgstr "" msgid "Include sub-locations in filtered results" msgstr "" -#: stock/api.py:367 stock/serializers.py:1186 +#: stock/api.py:366 stock/serializers.py:1217 msgid "Parent Location" msgstr "" -#: stock/api.py:368 +#: stock/api.py:367 msgid "Filter by parent location" msgstr "" @@ -9551,8 +9911,8 @@ msgstr "" msgid "Expiry date after" msgstr "" -#: stock/api.py:840 stock/serializers.py:604 -#: stock/templates/stock/item_base.html:439 +#: stock/api.py:840 stock/serializers.py:631 +#: stock/templates/stock/item_base.html:436 #: templates/js/translated/table_filters.js:448 msgid "Stale" msgstr "" @@ -9561,594 +9921,598 @@ msgstr "" msgid "Quantity is required" msgstr "" -#: stock/api.py:933 +#: stock/api.py:932 msgid "Valid part must be supplied" msgstr "" -#: stock/api.py:964 +#: stock/api.py:959 msgid "The given supplier part does not exist" msgstr "" -#: stock/api.py:974 +#: stock/api.py:969 msgid "The supplier part has a pack size defined, but flag use_pack_size not set" msgstr "" -#: stock/api.py:1005 +#: stock/api.py:996 msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "" -#: stock/models.py:64 +#: stock/models.py:70 msgid "Stock Location type" msgstr "" -#: stock/models.py:65 +#: stock/models.py:71 msgid "Stock Location types" msgstr "" -#: stock/models.py:91 +#: stock/models.py:97 msgid "Default icon for all locations that have no icon set (optional)" msgstr "" -#: stock/models.py:131 stock/models.py:807 -#: stock/templates/stock/location.html:17 +#: stock/models.py:137 stock/models.py:884 +#: stock/templates/stock/location.html:18 #: stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "" -#: stock/models.py:132 stock/templates/stock/location.html:183 +#: stock/models.py:138 stock/templates/stock/location.html:184 #: templates/InvenTree/search.html:166 templates/js/translated/search.js:178 #: users/models.py:205 msgid "Stock Locations" msgstr "" -#: stock/models.py:180 stock/models.py:968 -#: stock/templates/stock/item_base.html:247 +#: stock/models.py:186 stock/models.py:1045 +#: stock/templates/stock/item_base.html:244 msgid "Owner" msgstr "" -#: stock/models.py:181 stock/models.py:969 +#: stock/models.py:187 stock/models.py:1046 msgid "Select Owner" msgstr "" -#: stock/models.py:189 +#: stock/models.py:195 msgid "Stock items may not be directly located into a structural stock locations, but may be located to child locations." msgstr "" -#: stock/models.py:196 templates/js/translated/stock.js:2865 +#: stock/models.py:202 templates/js/translated/stock.js:2866 #: templates/js/translated/table_filters.js:250 msgid "External" msgstr "" -#: stock/models.py:197 +#: stock/models.py:203 msgid "This is an external stock location" msgstr "" -#: stock/models.py:203 templates/js/translated/stock.js:2874 +#: stock/models.py:209 templates/js/translated/stock.js:2875 #: templates/js/translated/table_filters.js:253 msgid "Location type" msgstr "" -#: stock/models.py:207 +#: stock/models.py:213 msgid "Stock location type of this location" msgstr "" -#: stock/models.py:279 +#: stock/models.py:285 msgid "You cannot make this stock location structural because some stock items are already located into it!" msgstr "" -#: stock/models.py:664 +#: stock/models.py:492 +msgid "Part must be specified" +msgstr "" + +#: stock/models.py:741 msgid "Stock items cannot be located into structural stock locations!" msgstr "" -#: stock/models.py:691 stock/serializers.py:480 +#: stock/models.py:768 stock/serializers.py:492 msgid "Stock item cannot be created for virtual parts" msgstr "" -#: stock/models.py:708 +#: stock/models.py:785 #, python-brace-format msgid "Part type ('{self.supplier_part.part}') must be {self.part}" msgstr "" -#: stock/models.py:718 stock/models.py:731 +#: stock/models.py:795 stock/models.py:808 msgid "Quantity must be 1 for item with a serial number" msgstr "" -#: stock/models.py:721 +#: stock/models.py:798 msgid "Serial number cannot be set if quantity greater than 1" msgstr "" -#: stock/models.py:743 +#: stock/models.py:820 msgid "Item cannot belong to itself" msgstr "" -#: stock/models.py:748 +#: stock/models.py:825 msgid "Item must have a build reference if is_building=True" msgstr "" -#: stock/models.py:761 +#: stock/models.py:838 msgid "Build reference does not point to the same part object" msgstr "" -#: stock/models.py:777 +#: stock/models.py:854 msgid "Parent Stock Item" msgstr "" -#: stock/models.py:789 +#: stock/models.py:866 msgid "Base part" msgstr "" -#: stock/models.py:799 +#: stock/models.py:876 msgid "Select a matching supplier part for this stock item" msgstr "" -#: stock/models.py:811 +#: stock/models.py:888 msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:819 stock/serializers.py:1580 +#: stock/models.py:896 stock/serializers.py:1611 msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:830 +#: stock/models.py:907 msgid "Is this item installed in another item?" msgstr "" -#: stock/models.py:849 +#: stock/models.py:926 msgid "Serial number for this item" msgstr "" -#: stock/models.py:863 stock/serializers.py:1563 +#: stock/models.py:940 stock/serializers.py:1594 msgid "Batch code for this stock item" msgstr "" -#: stock/models.py:868 +#: stock/models.py:945 msgid "Stock Quantity" msgstr "" -#: stock/models.py:878 +#: stock/models.py:955 msgid "Source Build" msgstr "" -#: stock/models.py:881 +#: stock/models.py:958 msgid "Build for this stock item" msgstr "" -#: stock/models.py:888 stock/templates/stock/item_base.html:363 +#: stock/models.py:965 stock/templates/stock/item_base.html:360 msgid "Consumed By" msgstr "" -#: stock/models.py:891 +#: stock/models.py:968 msgid "Build order which consumed this stock item" msgstr "" -#: stock/models.py:900 +#: stock/models.py:977 msgid "Source Purchase Order" msgstr "" -#: stock/models.py:904 +#: stock/models.py:981 msgid "Purchase order for this stock item" msgstr "" -#: stock/models.py:910 +#: stock/models.py:987 msgid "Destination Sales Order" msgstr "" -#: stock/models.py:921 +#: stock/models.py:998 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "" -#: stock/models.py:939 +#: stock/models.py:1016 msgid "Delete on deplete" msgstr "" -#: stock/models.py:940 +#: stock/models.py:1017 msgid "Delete this Stock Item when stock is depleted" msgstr "" -#: stock/models.py:960 +#: stock/models.py:1037 msgid "Single unit purchase price at time of purchase" msgstr "" -#: stock/models.py:991 +#: stock/models.py:1068 msgid "Converted to part" msgstr "" -#: stock/models.py:1511 +#: stock/models.py:1600 msgid "Part is not set as trackable" msgstr "" -#: stock/models.py:1517 +#: stock/models.py:1606 msgid "Quantity must be integer" msgstr "" -#: stock/models.py:1525 +#: stock/models.py:1614 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({self.quantity})" msgstr "" -#: stock/models.py:1531 -msgid "Serial numbers must be a list of integers" +#: stock/models.py:1620 +msgid "Serial numbers must be provided as a list" msgstr "" -#: stock/models.py:1536 +#: stock/models.py:1625 msgid "Quantity does not match serial numbers" msgstr "" -#: stock/models.py:1544 stock/serializers.py:726 -msgid "Serial numbers already exist" -msgstr "" - -#: stock/models.py:1641 +#: stock/models.py:1747 stock/models.py:2563 msgid "Test template does not exist" msgstr "" -#: stock/models.py:1659 +#: stock/models.py:1765 msgid "Stock item has been assigned to a sales order" msgstr "" -#: stock/models.py:1663 +#: stock/models.py:1769 msgid "Stock item is installed in another item" msgstr "" -#: stock/models.py:1666 +#: stock/models.py:1772 msgid "Stock item contains other items" msgstr "" -#: stock/models.py:1669 +#: stock/models.py:1775 msgid "Stock item has been assigned to a customer" msgstr "" -#: stock/models.py:1672 +#: stock/models.py:1778 msgid "Stock item is currently in production" msgstr "" -#: stock/models.py:1675 +#: stock/models.py:1781 msgid "Serialized stock cannot be merged" msgstr "" -#: stock/models.py:1682 stock/serializers.py:1469 +#: stock/models.py:1788 stock/serializers.py:1500 msgid "Duplicate stock items" msgstr "" -#: stock/models.py:1686 +#: stock/models.py:1792 msgid "Stock items must refer to the same part" msgstr "" -#: stock/models.py:1694 +#: stock/models.py:1800 msgid "Stock items must refer to the same supplier part" msgstr "" -#: stock/models.py:1699 +#: stock/models.py:1805 msgid "Stock status codes must match" msgstr "" -#: stock/models.py:1960 +#: stock/models.py:2066 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:2343 +#: stock/models.py:2462 msgid "Stock Item Tracking" msgstr "" -#: stock/models.py:2376 +#: stock/models.py:2495 msgid "Entry notes" msgstr "" -#: stock/models.py:2416 +#: stock/models.py:2535 msgid "Stock Item Test Result" msgstr "" -#: stock/models.py:2449 +#: stock/models.py:2566 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:2454 +#: stock/models.py:2570 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:2459 +#: stock/models.py:2575 msgid "Invalid value for this test" msgstr "" -#: stock/models.py:2544 +#: stock/models.py:2660 msgid "Test result" msgstr "" -#: stock/models.py:2551 +#: stock/models.py:2667 msgid "Test output value" msgstr "" -#: stock/models.py:2559 +#: stock/models.py:2675 stock/serializers.py:245 msgid "Test result attachment" msgstr "" -#: stock/models.py:2563 +#: stock/models.py:2679 msgid "Test notes" msgstr "" -#: stock/models.py:2571 templates/js/translated/stock.js:1633 +#: stock/models.py:2687 templates/js/translated/stock.js:1633 msgid "Test station" msgstr "" -#: stock/models.py:2572 +#: stock/models.py:2688 msgid "The identifier of the test station where the test was performed" msgstr "" -#: stock/models.py:2578 +#: stock/models.py:2694 msgid "Started" msgstr "" -#: stock/models.py:2579 +#: stock/models.py:2695 msgid "The timestamp of the test start" msgstr "" -#: stock/models.py:2585 +#: stock/models.py:2701 msgid "Finished" msgstr "" -#: stock/models.py:2586 +#: stock/models.py:2702 msgid "The timestamp of the test finish" msgstr "" -#: stock/serializers.py:76 +#: stock/serializers.py:77 msgid "Generated batch code" msgstr "" -#: stock/serializers.py:85 +#: stock/serializers.py:86 msgid "Select build order" msgstr "" -#: stock/serializers.py:94 +#: stock/serializers.py:95 msgid "Select stock item to generate batch code for" msgstr "" -#: stock/serializers.py:103 +#: stock/serializers.py:104 msgid "Select location to generate batch code for" msgstr "" -#: stock/serializers.py:112 +#: stock/serializers.py:113 msgid "Select part to generate batch code for" msgstr "" -#: stock/serializers.py:121 +#: stock/serializers.py:122 msgid "Select purchase order" msgstr "" -#: stock/serializers.py:128 +#: stock/serializers.py:129 msgid "Enter quantity for batch code" msgstr "" -#: stock/serializers.py:151 +#: stock/serializers.py:152 msgid "Generated serial number" msgstr "" -#: stock/serializers.py:160 +#: stock/serializers.py:161 msgid "Select part to generate serial number for" msgstr "" -#: stock/serializers.py:168 +#: stock/serializers.py:169 msgid "Quantity of serial numbers to generate" msgstr "" -#: stock/serializers.py:233 +#: stock/serializers.py:234 msgid "Test template for this result" msgstr "" -#: stock/serializers.py:254 +#: stock/serializers.py:258 msgid "Template ID or test name must be provided" msgstr "" -#: stock/serializers.py:286 +#: stock/serializers.py:290 msgid "The test finished time cannot be earlier than the test started time" msgstr "" -#: stock/serializers.py:323 +#: stock/serializers.py:327 msgid "Serial number is too large" msgstr "" -#: stock/serializers.py:452 stock/templates/stock/item_base.html:193 +#: stock/serializers.py:462 stock/templates/stock/item_base.html:190 msgid "Parent Item" msgstr "" -#: stock/serializers.py:453 +#: stock/serializers.py:463 msgid "Parent stock item" msgstr "" -#: stock/serializers.py:472 +#: stock/serializers.py:484 msgid "Use pack size when adding: the quantity defined is the number of packs" msgstr "" -#: stock/serializers.py:596 stock/templates/stock/item_base.html:437 +#: stock/serializers.py:623 stock/templates/stock/item_base.html:434 #: templates/js/translated/table_filters.js:442 users/models.py:174 msgid "Expired" msgstr "" -#: stock/serializers.py:602 stock/templates/stock/stock_sidebar.html:20 +#: stock/serializers.py:629 stock/templates/stock/stock_sidebar.html:20 msgid "Child Items" msgstr "" -#: stock/serializers.py:606 +#: stock/serializers.py:633 msgid "Tracking Items" msgstr "" -#: stock/serializers.py:612 +#: stock/serializers.py:639 msgid "Purchase price of this stock item, per unit or pack" msgstr "" -#: stock/serializers.py:631 +#: stock/serializers.py:658 msgid "Minimum Pricing" msgstr "" -#: stock/serializers.py:637 +#: stock/serializers.py:664 msgid "Maximum Pricing" msgstr "" -#: stock/serializers.py:661 +#: stock/serializers.py:688 msgid "Enter number of stock items to serialize" msgstr "" -#: stock/serializers.py:674 +#: stock/serializers.py:701 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({q})" msgstr "" -#: stock/serializers.py:681 +#: stock/serializers.py:708 msgid "Enter serial numbers for new items" msgstr "" -#: stock/serializers.py:692 stock/serializers.py:1426 stock/serializers.py:1682 +#: stock/serializers.py:719 stock/serializers.py:1457 stock/serializers.py:1713 msgid "Destination stock location" msgstr "" -#: stock/serializers.py:699 +#: stock/serializers.py:726 msgid "Optional note field" msgstr "" -#: stock/serializers.py:709 +#: stock/serializers.py:736 msgid "Serial numbers cannot be assigned to this part" msgstr "" -#: stock/serializers.py:764 +#: stock/serializers.py:756 +msgid "Serial numbers already exist" +msgstr "" + +#: stock/serializers.py:795 msgid "Select stock item to install" msgstr "" -#: stock/serializers.py:771 +#: stock/serializers.py:802 msgid "Quantity to Install" msgstr "" -#: stock/serializers.py:772 +#: stock/serializers.py:803 msgid "Enter the quantity of items to install" msgstr "" -#: stock/serializers.py:777 stock/serializers.py:857 stock/serializers.py:983 -#: stock/serializers.py:1033 +#: stock/serializers.py:808 stock/serializers.py:888 stock/serializers.py:1014 +#: stock/serializers.py:1064 msgid "Add transaction note (optional)" msgstr "" -#: stock/serializers.py:785 +#: stock/serializers.py:816 msgid "Quantity to install must be at least 1" msgstr "" -#: stock/serializers.py:793 +#: stock/serializers.py:824 msgid "Stock item is unavailable" msgstr "" -#: stock/serializers.py:804 +#: stock/serializers.py:835 msgid "Selected part is not in the Bill of Materials" msgstr "" -#: stock/serializers.py:817 +#: stock/serializers.py:848 msgid "Quantity to install must not exceed available quantity" msgstr "" -#: stock/serializers.py:852 +#: stock/serializers.py:883 msgid "Destination location for uninstalled item" msgstr "" -#: stock/serializers.py:903 +#: stock/serializers.py:934 msgid "Unsupported statistic type: " msgstr "" -#: stock/serializers.py:917 +#: stock/serializers.py:948 msgid "Select part to convert stock item into" msgstr "" -#: stock/serializers.py:930 +#: stock/serializers.py:961 msgid "Selected part is not a valid option for conversion" msgstr "" -#: stock/serializers.py:947 +#: stock/serializers.py:978 msgid "Cannot convert stock item with assigned SupplierPart" msgstr "" -#: stock/serializers.py:978 +#: stock/serializers.py:1009 msgid "Destination location for returned item" msgstr "" -#: stock/serializers.py:1015 +#: stock/serializers.py:1046 msgid "Select stock items to change status" msgstr "" -#: stock/serializers.py:1021 +#: stock/serializers.py:1052 msgid "No stock items selected" msgstr "" -#: stock/serializers.py:1117 stock/serializers.py:1194 -#: stock/templates/stock/location.html:162 -#: stock/templates/stock/location.html:219 +#: stock/serializers.py:1148 stock/serializers.py:1225 +#: stock/templates/stock/location.html:163 +#: stock/templates/stock/location.html:220 #: stock/templates/stock/location_sidebar.html:5 msgid "Sublocations" msgstr "" -#: stock/serializers.py:1187 templates/js/translated/stock.js:160 +#: stock/serializers.py:1218 templates/js/translated/stock.js:160 msgid "Parent stock location" msgstr "" -#: stock/serializers.py:1298 +#: stock/serializers.py:1329 msgid "Part must be salable" msgstr "" -#: stock/serializers.py:1302 +#: stock/serializers.py:1333 msgid "Item is allocated to a sales order" msgstr "" -#: stock/serializers.py:1306 +#: stock/serializers.py:1337 msgid "Item is allocated to a build order" msgstr "" -#: stock/serializers.py:1330 +#: stock/serializers.py:1361 msgid "Customer to assign stock items" msgstr "" -#: stock/serializers.py:1336 +#: stock/serializers.py:1367 msgid "Selected company is not a customer" msgstr "" -#: stock/serializers.py:1344 +#: stock/serializers.py:1375 msgid "Stock assignment notes" msgstr "" -#: stock/serializers.py:1354 stock/serializers.py:1608 +#: stock/serializers.py:1385 stock/serializers.py:1639 msgid "A list of stock items must be provided" msgstr "" -#: stock/serializers.py:1433 +#: stock/serializers.py:1464 msgid "Stock merging notes" msgstr "" -#: stock/serializers.py:1438 +#: stock/serializers.py:1469 msgid "Allow mismatched suppliers" msgstr "" -#: stock/serializers.py:1439 +#: stock/serializers.py:1470 msgid "Allow stock items with different supplier parts to be merged" msgstr "" -#: stock/serializers.py:1444 +#: stock/serializers.py:1475 msgid "Allow mismatched status" msgstr "" -#: stock/serializers.py:1445 +#: stock/serializers.py:1476 msgid "Allow stock items with different status codes to be merged" msgstr "" -#: stock/serializers.py:1455 +#: stock/serializers.py:1486 msgid "At least two stock items must be provided" msgstr "" -#: stock/serializers.py:1522 +#: stock/serializers.py:1553 msgid "No Change" msgstr "" -#: stock/serializers.py:1551 +#: stock/serializers.py:1582 msgid "StockItem primary key value" msgstr "" -#: stock/serializers.py:1570 +#: stock/serializers.py:1601 msgid "Stock item status code" msgstr "" -#: stock/serializers.py:1598 +#: stock/serializers.py:1629 msgid "Stock transaction notes" msgstr "" @@ -10176,107 +10540,107 @@ msgstr "" msgid "Quarantined" msgstr "" -#: stock/status_codes.py:40 +#: stock/status_codes.py:44 msgid "Legacy stock tracking entry" msgstr "" -#: stock/status_codes.py:42 templates/js/translated/stock.js:550 +#: stock/status_codes.py:46 templates/js/translated/stock.js:550 msgid "Stock item created" msgstr "" -#: stock/status_codes.py:45 +#: stock/status_codes.py:49 msgid "Edited stock item" msgstr "" -#: stock/status_codes.py:46 +#: stock/status_codes.py:50 msgid "Assigned serial number" msgstr "" -#: stock/status_codes.py:49 +#: stock/status_codes.py:53 msgid "Stock counted" msgstr "" -#: stock/status_codes.py:50 +#: stock/status_codes.py:54 msgid "Stock manually added" msgstr "" -#: stock/status_codes.py:51 +#: stock/status_codes.py:55 msgid "Stock manually removed" msgstr "" -#: stock/status_codes.py:54 +#: stock/status_codes.py:58 msgid "Location changed" msgstr "" -#: stock/status_codes.py:55 +#: stock/status_codes.py:59 msgid "Stock updated" msgstr "" -#: stock/status_codes.py:58 +#: stock/status_codes.py:62 msgid "Installed into assembly" msgstr "" -#: stock/status_codes.py:59 +#: stock/status_codes.py:63 msgid "Removed from assembly" msgstr "" -#: stock/status_codes.py:61 +#: stock/status_codes.py:65 msgid "Installed component item" msgstr "" -#: stock/status_codes.py:62 +#: stock/status_codes.py:66 msgid "Removed component item" msgstr "" -#: stock/status_codes.py:65 +#: stock/status_codes.py:69 msgid "Split from parent item" msgstr "" -#: stock/status_codes.py:66 +#: stock/status_codes.py:70 msgid "Split child item" msgstr "" -#: stock/status_codes.py:69 templates/js/translated/stock.js:1943 +#: stock/status_codes.py:73 templates/js/translated/stock.js:1944 msgid "Merged stock items" msgstr "" -#: stock/status_codes.py:72 +#: stock/status_codes.py:76 msgid "Converted to variant" msgstr "" -#: stock/status_codes.py:75 +#: stock/status_codes.py:79 msgid "Build order output created" msgstr "" -#: stock/status_codes.py:76 +#: stock/status_codes.py:80 msgid "Build order output completed" msgstr "" -#: stock/status_codes.py:77 +#: stock/status_codes.py:81 msgid "Build order output rejected" msgstr "" -#: stock/status_codes.py:78 templates/js/translated/stock.js:1849 +#: stock/status_codes.py:82 templates/js/translated/stock.js:1849 msgid "Consumed by build order" msgstr "" -#: stock/status_codes.py:81 +#: stock/status_codes.py:85 msgid "Shipped against Sales Order" msgstr "" -#: stock/status_codes.py:84 +#: stock/status_codes.py:88 msgid "Received against Purchase Order" msgstr "" -#: stock/status_codes.py:87 +#: stock/status_codes.py:91 msgid "Returned against Return Order" msgstr "" -#: stock/status_codes.py:90 templates/js/translated/table_filters.js:382 +#: stock/status_codes.py:94 templates/js/translated/table_filters.js:382 msgid "Sent to customer" msgstr "" -#: stock/status_codes.py:91 +#: stock/status_codes.py:95 msgid "Returned from customer" msgstr "" @@ -10297,7 +10661,7 @@ msgstr "" msgid "Test Data" msgstr "" -#: stock/templates/stock/item.html:85 stock/templates/stock/item_base.html:65 +#: stock/templates/stock/item.html:85 msgid "Test Report" msgstr "" @@ -10317,7 +10681,7 @@ msgstr "" msgid "Installed Stock Items" msgstr "" -#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3354 +#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3355 msgid "Install Stock Item" msgstr "" @@ -10329,208 +10693,212 @@ msgstr "" msgid "Add Test Result" msgstr "" -#: stock/templates/stock/item_base.html:33 +#: stock/templates/stock/item_base.html:34 msgid "Locate stock item" msgstr "" -#: stock/templates/stock/item_base.html:51 +#: stock/templates/stock/item_base.html:52 msgid "Scan to Location" msgstr "" #: stock/templates/stock/item_base.html:59 -#: stock/templates/stock/location.html:67 +#: stock/templates/stock/location.html:68 #: templates/js/translated/filters.js:434 msgid "Printing actions" msgstr "" -#: stock/templates/stock/item_base.html:75 +#: stock/templates/stock/item_base.html:64 templates/js/translated/report.js:49 +msgid "Print Report" +msgstr "" + +#: stock/templates/stock/item_base.html:72 msgid "Stock adjustment actions" msgstr "" -#: stock/templates/stock/item_base.html:79 -#: stock/templates/stock/location.html:87 templates/js/translated/stock.js:1909 +#: stock/templates/stock/item_base.html:76 +#: stock/templates/stock/location.html:88 templates/js/translated/stock.js:1909 msgid "Count stock" msgstr "" -#: stock/templates/stock/item_base.html:81 +#: stock/templates/stock/item_base.html:78 #: templates/js/translated/stock.js:1891 msgid "Add stock" msgstr "" -#: stock/templates/stock/item_base.html:82 +#: stock/templates/stock/item_base.html:79 #: templates/js/translated/stock.js:1900 msgid "Remove stock" msgstr "" -#: stock/templates/stock/item_base.html:85 +#: stock/templates/stock/item_base.html:82 msgid "Serialize stock" msgstr "" -#: stock/templates/stock/item_base.html:88 -#: stock/templates/stock/location.html:93 templates/js/translated/stock.js:1918 +#: stock/templates/stock/item_base.html:85 +#: stock/templates/stock/location.html:94 templates/js/translated/stock.js:1918 msgid "Transfer stock" msgstr "" -#: stock/templates/stock/item_base.html:91 -#: templates/js/translated/stock.js:1972 +#: stock/templates/stock/item_base.html:88 +#: templates/js/translated/stock.js:1973 msgid "Assign to customer" msgstr "" -#: stock/templates/stock/item_base.html:94 +#: stock/templates/stock/item_base.html:91 msgid "Return to stock" msgstr "" -#: stock/templates/stock/item_base.html:97 +#: stock/templates/stock/item_base.html:94 msgid "Uninstall stock item" msgstr "" -#: stock/templates/stock/item_base.html:97 +#: stock/templates/stock/item_base.html:94 msgid "Uninstall" msgstr "" -#: stock/templates/stock/item_base.html:101 +#: stock/templates/stock/item_base.html:98 msgid "Install stock item" msgstr "" -#: stock/templates/stock/item_base.html:101 +#: stock/templates/stock/item_base.html:98 msgid "Install" msgstr "" -#: stock/templates/stock/item_base.html:115 +#: stock/templates/stock/item_base.html:112 msgid "Convert to variant" msgstr "" -#: stock/templates/stock/item_base.html:118 +#: stock/templates/stock/item_base.html:115 msgid "Duplicate stock item" msgstr "" -#: stock/templates/stock/item_base.html:120 +#: stock/templates/stock/item_base.html:117 msgid "Edit stock item" msgstr "" -#: stock/templates/stock/item_base.html:123 +#: stock/templates/stock/item_base.html:120 msgid "Delete stock item" msgstr "" -#: stock/templates/stock/item_base.html:169 templates/InvenTree/search.html:139 -#: templates/js/translated/build.js:2295 templates/navbar.html:38 +#: stock/templates/stock/item_base.html:166 templates/InvenTree/search.html:139 +#: templates/js/translated/build.js:2298 templates/navbar.html:38 msgid "Build" msgstr "" -#: stock/templates/stock/item_base.html:211 +#: stock/templates/stock/item_base.html:208 msgid "No manufacturer set" msgstr "" -#: stock/templates/stock/item_base.html:251 +#: stock/templates/stock/item_base.html:248 msgid "You are not in the list of owners of this item. This stock item cannot be edited." msgstr "" -#: stock/templates/stock/item_base.html:252 -#: stock/templates/stock/location.html:146 +#: stock/templates/stock/item_base.html:249 +#: stock/templates/stock/location.html:147 msgid "Read only" msgstr "" -#: stock/templates/stock/item_base.html:265 +#: stock/templates/stock/item_base.html:262 msgid "This stock item is unavailable" msgstr "" -#: stock/templates/stock/item_base.html:271 +#: stock/templates/stock/item_base.html:268 msgid "This stock item is in production and cannot be edited." msgstr "" -#: stock/templates/stock/item_base.html:272 +#: stock/templates/stock/item_base.html:269 msgid "Edit the stock item from the build view." msgstr "" -#: stock/templates/stock/item_base.html:287 +#: stock/templates/stock/item_base.html:284 msgid "This stock item is allocated to Sales Order" msgstr "" -#: stock/templates/stock/item_base.html:295 +#: stock/templates/stock/item_base.html:292 msgid "This stock item is allocated to Build Order" msgstr "" -#: stock/templates/stock/item_base.html:311 +#: stock/templates/stock/item_base.html:308 msgid "This stock item is serialized. It has a unique serial number and the quantity cannot be adjusted" msgstr "" -#: stock/templates/stock/item_base.html:317 +#: stock/templates/stock/item_base.html:314 msgid "previous page" msgstr "" -#: stock/templates/stock/item_base.html:317 +#: stock/templates/stock/item_base.html:314 msgid "Navigate to previous serial number" msgstr "" -#: stock/templates/stock/item_base.html:326 +#: stock/templates/stock/item_base.html:323 msgid "next page" msgstr "" -#: stock/templates/stock/item_base.html:326 +#: stock/templates/stock/item_base.html:323 msgid "Navigate to next serial number" msgstr "" -#: stock/templates/stock/item_base.html:398 -#: templates/js/translated/build.js:2552 +#: stock/templates/stock/item_base.html:395 +#: templates/js/translated/build.js:2559 msgid "No location set" msgstr "" -#: stock/templates/stock/item_base.html:413 +#: stock/templates/stock/item_base.html:410 msgid "Tests" msgstr "" -#: stock/templates/stock/item_base.html:419 +#: stock/templates/stock/item_base.html:416 msgid "This stock item has not passed all required tests" msgstr "" -#: stock/templates/stock/item_base.html:437 +#: stock/templates/stock/item_base.html:434 #, python-format msgid "This StockItem expired on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:439 +#: stock/templates/stock/item_base.html:436 #, python-format msgid "This StockItem expires on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:455 +#: stock/templates/stock/item_base.html:452 msgid "No stocktake performed" msgstr "" -#: stock/templates/stock/item_base.html:504 -#: templates/js/translated/stock.js:2037 +#: stock/templates/stock/item_base.html:501 +#: templates/js/translated/stock.js:2038 msgid "stock item" msgstr "" -#: stock/templates/stock/item_base.html:527 +#: stock/templates/stock/item_base.html:524 msgid "Edit Stock Status" msgstr "" -#: stock/templates/stock/item_base.html:536 +#: stock/templates/stock/item_base.html:533 msgid "Stock Item QR Code" msgstr "" -#: stock/templates/stock/item_base.html:547 +#: stock/templates/stock/item_base.html:544 msgid "Link Barcode to Stock Item" msgstr "" -#: stock/templates/stock/item_base.html:611 +#: stock/templates/stock/item_base.html:608 msgid "Select one of the part variants listed below." msgstr "" -#: stock/templates/stock/item_base.html:614 +#: stock/templates/stock/item_base.html:611 msgid "Warning" msgstr "" -#: stock/templates/stock/item_base.html:615 +#: stock/templates/stock/item_base.html:612 msgid "This action cannot be easily undone" msgstr "" -#: stock/templates/stock/item_base.html:623 +#: stock/templates/stock/item_base.html:620 msgid "Convert Stock Item" msgstr "" -#: stock/templates/stock/item_base.html:656 +#: stock/templates/stock/item_base.html:653 msgid "Return to Stock" msgstr "" @@ -10542,84 +10910,84 @@ msgstr "" msgid "Select quantity to serialize, and unique serial numbers." msgstr "" -#: stock/templates/stock/location.html:35 +#: stock/templates/stock/location.html:36 msgid "Perform stocktake for this stock location" msgstr "" -#: stock/templates/stock/location.html:42 +#: stock/templates/stock/location.html:43 msgid "Locate stock location" msgstr "" -#: stock/templates/stock/location.html:60 +#: stock/templates/stock/location.html:61 msgid "Scan stock items into this location" msgstr "" -#: stock/templates/stock/location.html:60 +#: stock/templates/stock/location.html:61 msgid "Scan In Stock Items" msgstr "" -#: stock/templates/stock/location.html:61 +#: stock/templates/stock/location.html:62 msgid "Scan stock container into this location" msgstr "" -#: stock/templates/stock/location.html:61 +#: stock/templates/stock/location.html:62 msgid "Scan In Container" msgstr "" -#: stock/templates/stock/location.html:72 +#: stock/templates/stock/location.html:73 msgid "Print Location Report" msgstr "" -#: stock/templates/stock/location.html:101 +#: stock/templates/stock/location.html:102 msgid "Location actions" msgstr "" -#: stock/templates/stock/location.html:103 +#: stock/templates/stock/location.html:104 msgid "Edit location" msgstr "" -#: stock/templates/stock/location.html:105 +#: stock/templates/stock/location.html:106 msgid "Delete location" msgstr "" -#: stock/templates/stock/location.html:135 +#: stock/templates/stock/location.html:136 msgid "Top level stock location" msgstr "" -#: stock/templates/stock/location.html:141 +#: stock/templates/stock/location.html:142 msgid "Location Owner" msgstr "" -#: stock/templates/stock/location.html:145 +#: stock/templates/stock/location.html:146 msgid "You are not in the list of owners of this location. This stock location cannot be edited." msgstr "" -#: stock/templates/stock/location.html:173 +#: stock/templates/stock/location.html:174 msgid "Location Type" msgstr "" -#: stock/templates/stock/location.html:223 +#: stock/templates/stock/location.html:224 msgid "Create new stock location" msgstr "" -#: stock/templates/stock/location.html:224 +#: stock/templates/stock/location.html:225 msgid "New Location" msgstr "" -#: stock/templates/stock/location.html:298 -#: templates/js/translated/stock.js:2657 +#: stock/templates/stock/location.html:299 +#: templates/js/translated/stock.js:2658 msgid "stock location" msgstr "" -#: stock/templates/stock/location.html:320 +#: stock/templates/stock/location.html:321 msgid "Scanned stock container into this location" msgstr "" -#: stock/templates/stock/location.html:393 +#: stock/templates/stock/location.html:394 msgid "Stock Location QR Code" msgstr "" -#: stock/templates/stock/location.html:404 +#: stock/templates/stock/location.html:405 msgid "Link Barcode to Stock Location" msgstr "" @@ -10631,10 +10999,6 @@ msgstr "" msgid "Stock Tracking" msgstr "" -#: stock/templates/stock/stock_sidebar.html:8 -msgid "Allocations" -msgstr "" - #: templates/403.html:6 templates/403.html:12 templates/403_csrf.html:7 msgid "Permission Denied" msgstr "" @@ -11108,9 +11472,9 @@ msgid "Rate" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:81 -#: templates/js/translated/forms.js:548 templates/js/translated/helpers.js:108 +#: templates/js/translated/forms.js:548 templates/js/translated/helpers.js:109 #: templates/js/translated/part.js:395 templates/js/translated/pricing.js:629 -#: templates/js/translated/stock.js:252 users/models.py:406 +#: templates/js/translated/stock.js:252 users/models.py:408 msgid "Delete" msgstr "" @@ -11131,7 +11495,7 @@ msgid "No project codes found" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:158 -#: templates/js/translated/build.js:2400 +#: templates/js/translated/build.js:2403 msgid "group" msgstr "" @@ -11197,7 +11561,7 @@ msgid "Delete Location Type" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:503 -#: templates/InvenTree/settings/stock.html:38 +#: templates/InvenTree/settings/stock.html:39 msgid "New Location Type" msgstr "" @@ -11254,7 +11618,7 @@ msgstr "" msgid "Stock Settings" msgstr "" -#: templates/InvenTree/settings/stock.html:34 +#: templates/InvenTree/settings/stock.html:35 msgid "Stock Location Types" msgstr "" @@ -11281,7 +11645,7 @@ msgid "Unverified" msgstr "" #: templates/InvenTree/settings/user.html:80 -#: templates/js/translated/company.js:957 +#: templates/js/translated/company.js:958 msgid "Primary" msgstr "" @@ -11533,7 +11897,7 @@ msgid "Submit Bug Report" msgstr "" #: templates/about.html:91 templates/clip.html:4 -#: templates/js/translated/helpers.js:592 +#: templates/js/translated/helpers.js:598 msgid "copy to clipboard" msgstr "" @@ -11739,23 +12103,24 @@ msgstr "" msgid "Barcode Identifier" msgstr "" -#: templates/base.html:103 +#: templates/base.html:102 msgid "Server Restart Required" msgstr "" -#: templates/base.html:106 +#: templates/base.html:105 msgid "A configuration option has been changed which requires a server restart" msgstr "" -#: templates/base.html:106 templates/base.html:116 +#: templates/base.html:105 templates/base.html:115 +#: templates/socialaccount/authentication_error.html:13 msgid "Contact your system administrator for further information" msgstr "" -#: templates/base.html:113 +#: templates/base.html:112 msgid "Pending Database Migrations" msgstr "" -#: templates/base.html:116 +#: templates/base.html:115 msgid "There are pending database migrations which require attention" msgstr "" @@ -11788,7 +12153,7 @@ msgid "The following parts are low on required stock" msgstr "" #: templates/email/build_order_required_stock.html:18 -#: templates/js/translated/bom.js:1674 templates/js/translated/build.js:2747 +#: templates/js/translated/bom.js:1674 templates/js/translated/build.js:2765 msgid "Required Quantity" msgstr "" @@ -11802,7 +12167,7 @@ msgid "Click on the following link to view this part" msgstr "" #: templates/email/low_stock_notification.html:18 -#: templates/js/translated/part.js:3237 +#: templates/js/translated/part.js:3253 msgid "Minimum Quantity" msgstr "" @@ -12040,7 +12405,7 @@ msgstr "" #: templates/js/translated/bom.js:189 templates/js/translated/bom.js:700 #: templates/js/translated/modals.js:75 templates/js/translated/modals.js:629 #: templates/js/translated/modals.js:757 templates/js/translated/modals.js:1065 -#: templates/js/translated/purchase_order.js:797 templates/modals.html:15 +#: templates/js/translated/purchase_order.js:780 templates/modals.html:15 #: templates/modals.html:27 templates/modals.html:39 templates/modals.html:50 msgid "Close" msgstr "" @@ -12157,7 +12522,7 @@ msgstr "" msgid "Substitutes Available" msgstr "" -#: templates/js/translated/bom.js:950 templates/js/translated/build.js:2673 +#: templates/js/translated/bom.js:950 templates/js/translated/build.js:2682 msgid "Variant stock allowed" msgstr "" @@ -12177,30 +12542,30 @@ msgstr "" msgid "No pricing available" msgstr "" -#: templates/js/translated/bom.js:1184 templates/js/translated/build.js:2812 +#: templates/js/translated/bom.js:1184 templates/js/translated/build.js:2830 msgid "External stock" msgstr "" -#: templates/js/translated/bom.js:1188 templates/js/translated/build.js:2786 -#: templates/js/translated/sales_order.js:1946 +#: templates/js/translated/bom.js:1188 templates/js/translated/build.js:2804 +#: templates/js/translated/sales_order.js:1927 msgid "No Stock Available" msgstr "" -#: templates/js/translated/bom.js:1193 templates/js/translated/build.js:2790 +#: templates/js/translated/bom.js:1193 templates/js/translated/build.js:2808 msgid "Includes variant and substitute stock" msgstr "" -#: templates/js/translated/bom.js:1195 templates/js/translated/build.js:2792 +#: templates/js/translated/bom.js:1195 templates/js/translated/build.js:2810 #: templates/js/translated/part.js:1263 -#: templates/js/translated/sales_order.js:1943 +#: templates/js/translated/sales_order.js:1924 msgid "Includes variant stock" msgstr "" -#: templates/js/translated/bom.js:1197 templates/js/translated/build.js:2794 +#: templates/js/translated/bom.js:1197 templates/js/translated/build.js:2812 msgid "Includes substitute stock" msgstr "" -#: templates/js/translated/bom.js:1225 templates/js/translated/build.js:2777 +#: templates/js/translated/bom.js:1225 templates/js/translated/build.js:2795 msgid "Consumable item" msgstr "" @@ -12232,7 +12597,7 @@ msgstr "" msgid "No BOM items found" msgstr "" -#: templates/js/translated/bom.js:1657 templates/js/translated/build.js:2658 +#: templates/js/translated/bom.js:1657 templates/js/translated/build.js:2667 msgid "Required Part" msgstr "" @@ -12244,396 +12609,396 @@ msgstr "" msgid "Edit Build Order" msgstr "" -#: templates/js/translated/build.js:191 +#: templates/js/translated/build.js:194 msgid "Create Build Order" msgstr "" -#: templates/js/translated/build.js:223 +#: templates/js/translated/build.js:226 msgid "Cancel Build Order" msgstr "" -#: templates/js/translated/build.js:232 +#: templates/js/translated/build.js:235 msgid "Are you sure you wish to cancel this build?" msgstr "" -#: templates/js/translated/build.js:238 +#: templates/js/translated/build.js:241 msgid "Stock items have been allocated to this build order" msgstr "" -#: templates/js/translated/build.js:245 +#: templates/js/translated/build.js:248 msgid "There are incomplete outputs remaining for this build order" msgstr "" -#: templates/js/translated/build.js:297 +#: templates/js/translated/build.js:300 msgid "Build order is ready to be completed" msgstr "" -#: templates/js/translated/build.js:305 +#: templates/js/translated/build.js:308 msgid "This build order cannot be completed as there are incomplete outputs" msgstr "" -#: templates/js/translated/build.js:310 +#: templates/js/translated/build.js:313 msgid "Build Order is incomplete" msgstr "" -#: templates/js/translated/build.js:328 +#: templates/js/translated/build.js:331 msgid "Complete Build Order" msgstr "" -#: templates/js/translated/build.js:369 templates/js/translated/stock.js:127 +#: templates/js/translated/build.js:372 templates/js/translated/stock.js:127 #: templates/js/translated/stock.js:301 msgid "Next available serial number" msgstr "" -#: templates/js/translated/build.js:371 templates/js/translated/stock.js:129 +#: templates/js/translated/build.js:374 templates/js/translated/stock.js:129 #: templates/js/translated/stock.js:303 msgid "Latest serial number" msgstr "" -#: templates/js/translated/build.js:380 +#: templates/js/translated/build.js:383 msgid "The Bill of Materials contains trackable parts" msgstr "" -#: templates/js/translated/build.js:381 +#: templates/js/translated/build.js:384 msgid "Build outputs must be generated individually" msgstr "" -#: templates/js/translated/build.js:389 +#: templates/js/translated/build.js:392 msgid "Trackable parts can have serial numbers specified" msgstr "" -#: templates/js/translated/build.js:390 +#: templates/js/translated/build.js:393 msgid "Enter serial numbers to generate multiple single build outputs" msgstr "" -#: templates/js/translated/build.js:397 +#: templates/js/translated/build.js:400 msgid "Create Build Output" msgstr "" -#: templates/js/translated/build.js:428 +#: templates/js/translated/build.js:431 msgid "Allocate stock items to this build output" msgstr "" -#: templates/js/translated/build.js:436 +#: templates/js/translated/build.js:439 msgid "Deallocate stock from build output" msgstr "" -#: templates/js/translated/build.js:445 +#: templates/js/translated/build.js:448 msgid "Complete build output" msgstr "" -#: templates/js/translated/build.js:453 +#: templates/js/translated/build.js:456 msgid "Scrap build output" msgstr "" -#: templates/js/translated/build.js:460 +#: templates/js/translated/build.js:463 msgid "Delete build output" msgstr "" -#: templates/js/translated/build.js:480 +#: templates/js/translated/build.js:483 msgid "Are you sure you wish to deallocate the selected stock items from this build?" msgstr "" -#: templates/js/translated/build.js:498 +#: templates/js/translated/build.js:501 msgid "Deallocate Stock Items" msgstr "" -#: templates/js/translated/build.js:584 templates/js/translated/build.js:711 -#: templates/js/translated/build.js:836 +#: templates/js/translated/build.js:587 templates/js/translated/build.js:714 +#: templates/js/translated/build.js:839 msgid "Select Build Outputs" msgstr "" -#: templates/js/translated/build.js:585 templates/js/translated/build.js:712 -#: templates/js/translated/build.js:837 +#: templates/js/translated/build.js:588 templates/js/translated/build.js:715 +#: templates/js/translated/build.js:840 msgid "At least one build output must be selected" msgstr "" -#: templates/js/translated/build.js:599 +#: templates/js/translated/build.js:602 msgid "Selected build outputs will be marked as complete" msgstr "" -#: templates/js/translated/build.js:603 templates/js/translated/build.js:736 -#: templates/js/translated/build.js:859 +#: templates/js/translated/build.js:606 templates/js/translated/build.js:739 +#: templates/js/translated/build.js:862 msgid "Output" msgstr "" -#: templates/js/translated/build.js:630 +#: templates/js/translated/build.js:633 msgid "Complete Build Outputs" msgstr "" -#: templates/js/translated/build.js:727 +#: templates/js/translated/build.js:730 msgid "Selected build outputs will be marked as scrapped" msgstr "" -#: templates/js/translated/build.js:729 +#: templates/js/translated/build.js:732 msgid "Scrapped output are marked as rejected" msgstr "" -#: templates/js/translated/build.js:730 +#: templates/js/translated/build.js:733 msgid "Allocated stock items will no longer be available" msgstr "" -#: templates/js/translated/build.js:731 +#: templates/js/translated/build.js:734 msgid "The completion status of the build order will not be adjusted" msgstr "" -#: templates/js/translated/build.js:761 +#: templates/js/translated/build.js:764 msgid "Scrap Build Outputs" msgstr "" -#: templates/js/translated/build.js:851 +#: templates/js/translated/build.js:854 msgid "Selected build outputs will be deleted" msgstr "" -#: templates/js/translated/build.js:853 +#: templates/js/translated/build.js:856 msgid "Build output data will be permanently deleted" msgstr "" -#: templates/js/translated/build.js:854 +#: templates/js/translated/build.js:857 msgid "Allocated stock items will be returned to stock" msgstr "" -#: templates/js/translated/build.js:872 +#: templates/js/translated/build.js:875 msgid "Delete Build Outputs" msgstr "" -#: templates/js/translated/build.js:959 +#: templates/js/translated/build.js:962 msgid "Delete allocations" msgstr "" -#: templates/js/translated/build.js:966 +#: templates/js/translated/build.js:969 msgid "Delete Stock Allocations" msgstr "" -#: templates/js/translated/build.js:989 +#: templates/js/translated/build.js:992 msgid "No allocated stock" msgstr "" -#: templates/js/translated/build.js:1045 +#: templates/js/translated/build.js:1048 msgid "Stock item" msgstr "" -#: templates/js/translated/build.js:1070 +#: templates/js/translated/build.js:1073 msgid "Edit build allocation" msgstr "" -#: templates/js/translated/build.js:1071 +#: templates/js/translated/build.js:1074 msgid "Delete build allocation" msgstr "" -#: templates/js/translated/build.js:1089 +#: templates/js/translated/build.js:1092 msgid "Edit Build Allocation" msgstr "" -#: templates/js/translated/build.js:1102 +#: templates/js/translated/build.js:1105 msgid "Delete Build Allocation" msgstr "" -#: templates/js/translated/build.js:1133 +#: templates/js/translated/build.js:1136 msgid "No build order allocations found" msgstr "" -#: templates/js/translated/build.js:1178 +#: templates/js/translated/build.js:1181 msgid "Location not specified" msgstr "" -#: templates/js/translated/build.js:1200 +#: templates/js/translated/build.js:1203 msgid "Complete outputs" msgstr "" -#: templates/js/translated/build.js:1218 +#: templates/js/translated/build.js:1221 msgid "Scrap outputs" msgstr "" -#: templates/js/translated/build.js:1236 +#: templates/js/translated/build.js:1239 msgid "Delete outputs" msgstr "" -#: templates/js/translated/build.js:1289 +#: templates/js/translated/build.js:1292 msgid "build output" msgstr "" -#: templates/js/translated/build.js:1290 +#: templates/js/translated/build.js:1293 msgid "build outputs" msgstr "" -#: templates/js/translated/build.js:1294 +#: templates/js/translated/build.js:1297 msgid "Build output actions" msgstr "" -#: templates/js/translated/build.js:1470 +#: templates/js/translated/build.js:1473 msgid "No active build outputs found" msgstr "" -#: templates/js/translated/build.js:1563 +#: templates/js/translated/build.js:1566 msgid "Allocated Lines" msgstr "" -#: templates/js/translated/build.js:1577 +#: templates/js/translated/build.js:1580 msgid "Required Tests" msgstr "" -#: templates/js/translated/build.js:1749 -#: templates/js/translated/purchase_order.js:611 -#: templates/js/translated/sales_order.js:1207 +#: templates/js/translated/build.js:1752 +#: templates/js/translated/purchase_order.js:594 +#: templates/js/translated/sales_order.js:1173 msgid "Select Parts" msgstr "" -#: templates/js/translated/build.js:1750 -#: templates/js/translated/sales_order.js:1208 +#: templates/js/translated/build.js:1753 +#: templates/js/translated/sales_order.js:1174 msgid "You must select at least one part to allocate" msgstr "" -#: templates/js/translated/build.js:1813 -#: templates/js/translated/sales_order.js:1157 +#: templates/js/translated/build.js:1816 +#: templates/js/translated/sales_order.js:1123 msgid "Specify stock allocation quantity" msgstr "" -#: templates/js/translated/build.js:1890 +#: templates/js/translated/build.js:1893 msgid "All Parts Allocated" msgstr "" -#: templates/js/translated/build.js:1891 +#: templates/js/translated/build.js:1894 msgid "All selected parts have been fully allocated" msgstr "" -#: templates/js/translated/build.js:1905 -#: templates/js/translated/sales_order.js:1222 +#: templates/js/translated/build.js:1908 +#: templates/js/translated/sales_order.js:1188 msgid "Select source location (leave blank to take from all locations)" msgstr "" -#: templates/js/translated/build.js:1933 +#: templates/js/translated/build.js:1936 msgid "Allocate Stock Items to Build Order" msgstr "" -#: templates/js/translated/build.js:1944 -#: templates/js/translated/sales_order.js:1319 +#: templates/js/translated/build.js:1947 +#: templates/js/translated/sales_order.js:1285 msgid "No matching stock locations" msgstr "" -#: templates/js/translated/build.js:2017 -#: templates/js/translated/sales_order.js:1398 +#: templates/js/translated/build.js:2020 +#: templates/js/translated/sales_order.js:1364 msgid "No matching stock items" msgstr "" -#: templates/js/translated/build.js:2114 +#: templates/js/translated/build.js:2117 msgid "Automatic Stock Allocation" msgstr "" -#: templates/js/translated/build.js:2115 +#: templates/js/translated/build.js:2118 msgid "Stock items will be automatically allocated to this build order, according to the provided guidelines" msgstr "" -#: templates/js/translated/build.js:2117 +#: templates/js/translated/build.js:2120 msgid "If a location is specified, stock will only be allocated from that location" msgstr "" -#: templates/js/translated/build.js:2118 +#: templates/js/translated/build.js:2121 msgid "If stock is considered interchangeable, it will be allocated from the first location it is found" msgstr "" -#: templates/js/translated/build.js:2119 +#: templates/js/translated/build.js:2122 msgid "If substitute stock is allowed, it will be used where stock of the primary part cannot be found" msgstr "" -#: templates/js/translated/build.js:2149 +#: templates/js/translated/build.js:2152 msgid "Allocate Stock Items" msgstr "" -#: templates/js/translated/build.js:2254 +#: templates/js/translated/build.js:2257 msgid "No builds matching query" msgstr "" -#: templates/js/translated/build.js:2289 templates/js/translated/build.js:2652 +#: templates/js/translated/build.js:2292 templates/js/translated/build.js:2661 #: templates/js/translated/forms.js:2196 templates/js/translated/forms.js:2212 #: templates/js/translated/part.js:2322 templates/js/translated/part.js:2761 -#: templates/js/translated/stock.js:2068 templates/js/translated/stock.js:2795 +#: templates/js/translated/stock.js:2069 templates/js/translated/stock.js:2796 msgid "Select" msgstr "" -#: templates/js/translated/build.js:2303 +#: templates/js/translated/build.js:2306 msgid "Build order is overdue" msgstr "" -#: templates/js/translated/build.js:2385 templates/js/translated/stock.js:3126 +#: templates/js/translated/build.js:2388 templates/js/translated/stock.js:3127 msgid "No user information" msgstr "" -#: templates/js/translated/build.js:2561 -#: templates/js/translated/sales_order.js:1682 +#: templates/js/translated/build.js:2568 +#: templates/js/translated/sales_order.js:1663 msgid "Edit stock allocation" msgstr "" -#: templates/js/translated/build.js:2562 -#: templates/js/translated/sales_order.js:1683 +#: templates/js/translated/build.js:2569 +#: templates/js/translated/sales_order.js:1664 msgid "Delete stock allocation" msgstr "" -#: templates/js/translated/build.js:2577 +#: templates/js/translated/build.js:2584 msgid "Edit Allocation" msgstr "" -#: templates/js/translated/build.js:2589 +#: templates/js/translated/build.js:2596 msgid "Remove Allocation" msgstr "" -#: templates/js/translated/build.js:2628 +#: templates/js/translated/build.js:2636 msgid "build line" msgstr "" -#: templates/js/translated/build.js:2629 +#: templates/js/translated/build.js:2637 msgid "build lines" msgstr "" -#: templates/js/translated/build.js:2647 +#: templates/js/translated/build.js:2656 msgid "No build lines found" msgstr "" -#: templates/js/translated/build.js:2677 templates/js/translated/part.js:793 +#: templates/js/translated/build.js:2686 templates/js/translated/part.js:793 #: templates/js/translated/part.js:1209 msgid "Trackable part" msgstr "" -#: templates/js/translated/build.js:2720 +#: templates/js/translated/build.js:2729 msgid "Gets Inherited" msgstr "" -#: templates/js/translated/build.js:2730 +#: templates/js/translated/build.js:2748 msgid "Unit Quantity" msgstr "" -#: templates/js/translated/build.js:2782 -#: templates/js/translated/sales_order.js:1951 +#: templates/js/translated/build.js:2800 +#: templates/js/translated/sales_order.js:1932 msgid "Sufficient stock available" msgstr "" -#: templates/js/translated/build.js:2837 +#: templates/js/translated/build.js:2855 msgid "Consumable Item" msgstr "" -#: templates/js/translated/build.js:2844 +#: templates/js/translated/build.js:2862 msgid "Tracked item" msgstr "" -#: templates/js/translated/build.js:2845 +#: templates/js/translated/build.js:2863 msgid "Allocate tracked items against individual build outputs" msgstr "" -#: templates/js/translated/build.js:2853 -#: templates/js/translated/sales_order.js:2052 +#: templates/js/translated/build.js:2871 +#: templates/js/translated/sales_order.js:2033 msgid "Build stock" msgstr "" -#: templates/js/translated/build.js:2858 templates/js/translated/stock.js:1953 +#: templates/js/translated/build.js:2876 templates/js/translated/stock.js:1954 msgid "Order stock" msgstr "" -#: templates/js/translated/build.js:2862 -#: templates/js/translated/sales_order.js:2046 +#: templates/js/translated/build.js:2880 +#: templates/js/translated/sales_order.js:2027 msgid "Allocate stock" msgstr "" -#: templates/js/translated/build.js:2866 +#: templates/js/translated/build.js:2884 msgid "Remove stock allocation" msgstr "" @@ -12642,7 +13007,7 @@ msgid "Add Manufacturer" msgstr "" #: templates/js/translated/company.js:111 -#: templates/js/translated/company.js:213 +#: templates/js/translated/company.js:214 msgid "Add Manufacturer Part" msgstr "" @@ -12650,231 +13015,231 @@ msgstr "" msgid "Edit Manufacturer Part" msgstr "" -#: templates/js/translated/company.js:201 +#: templates/js/translated/company.js:202 #: templates/js/translated/purchase_order.js:93 msgid "Add Supplier" msgstr "" -#: templates/js/translated/company.js:243 -#: templates/js/translated/purchase_order.js:318 +#: templates/js/translated/company.js:244 +#: templates/js/translated/purchase_order.js:301 msgid "Add Supplier Part" msgstr "" -#: templates/js/translated/company.js:344 +#: templates/js/translated/company.js:345 msgid "All selected supplier parts will be deleted" msgstr "" -#: templates/js/translated/company.js:360 +#: templates/js/translated/company.js:361 msgid "Delete Supplier Parts" msgstr "" -#: templates/js/translated/company.js:466 +#: templates/js/translated/company.js:467 msgid "Add new Company" msgstr "" -#: templates/js/translated/company.js:546 +#: templates/js/translated/company.js:547 msgid "Parts Supplied" msgstr "" -#: templates/js/translated/company.js:555 +#: templates/js/translated/company.js:556 msgid "Parts Manufactured" msgstr "" -#: templates/js/translated/company.js:570 +#: templates/js/translated/company.js:571 msgid "No company information found" msgstr "" -#: templates/js/translated/company.js:619 +#: templates/js/translated/company.js:620 msgid "Create New Contact" msgstr "" -#: templates/js/translated/company.js:635 -#: templates/js/translated/company.js:758 +#: templates/js/translated/company.js:636 +#: templates/js/translated/company.js:759 msgid "Edit Contact" msgstr "" -#: templates/js/translated/company.js:672 +#: templates/js/translated/company.js:673 msgid "All selected contacts will be deleted" msgstr "" -#: templates/js/translated/company.js:678 -#: templates/js/translated/company.js:742 +#: templates/js/translated/company.js:679 +#: templates/js/translated/company.js:743 msgid "Role" msgstr "" -#: templates/js/translated/company.js:686 +#: templates/js/translated/company.js:687 msgid "Delete Contacts" msgstr "" -#: templates/js/translated/company.js:717 +#: templates/js/translated/company.js:718 msgid "No contacts found" msgstr "" -#: templates/js/translated/company.js:730 +#: templates/js/translated/company.js:731 msgid "Phone Number" msgstr "" -#: templates/js/translated/company.js:736 +#: templates/js/translated/company.js:737 msgid "Email Address" msgstr "" -#: templates/js/translated/company.js:762 +#: templates/js/translated/company.js:763 msgid "Delete Contact" msgstr "" -#: templates/js/translated/company.js:859 +#: templates/js/translated/company.js:860 msgid "Create New Address" msgstr "" -#: templates/js/translated/company.js:874 -#: templates/js/translated/company.js:1035 +#: templates/js/translated/company.js:875 +#: templates/js/translated/company.js:1036 msgid "Edit Address" msgstr "" -#: templates/js/translated/company.js:909 +#: templates/js/translated/company.js:910 msgid "All selected addresses will be deleted" msgstr "" -#: templates/js/translated/company.js:923 +#: templates/js/translated/company.js:924 msgid "Delete Addresses" msgstr "" -#: templates/js/translated/company.js:950 +#: templates/js/translated/company.js:951 msgid "No addresses found" msgstr "" -#: templates/js/translated/company.js:989 +#: templates/js/translated/company.js:990 msgid "Postal city" msgstr "" -#: templates/js/translated/company.js:995 +#: templates/js/translated/company.js:996 msgid "State/province" msgstr "" -#: templates/js/translated/company.js:1007 +#: templates/js/translated/company.js:1008 msgid "Courier notes" msgstr "" -#: templates/js/translated/company.js:1013 +#: templates/js/translated/company.js:1014 msgid "Internal notes" msgstr "" -#: templates/js/translated/company.js:1039 +#: templates/js/translated/company.js:1040 msgid "Delete Address" msgstr "" -#: templates/js/translated/company.js:1112 +#: templates/js/translated/company.js:1113 msgid "All selected manufacturer parts will be deleted" msgstr "" -#: templates/js/translated/company.js:1127 +#: templates/js/translated/company.js:1128 msgid "Delete Manufacturer Parts" msgstr "" -#: templates/js/translated/company.js:1161 +#: templates/js/translated/company.js:1162 msgid "All selected parameters will be deleted" msgstr "" -#: templates/js/translated/company.js:1175 +#: templates/js/translated/company.js:1176 msgid "Delete Parameters" msgstr "" -#: templates/js/translated/company.js:1191 -#: templates/js/translated/company.js:1479 templates/js/translated/part.js:2250 +#: templates/js/translated/company.js:1192 +#: templates/js/translated/company.js:1480 templates/js/translated/part.js:2250 msgid "Order parts" msgstr "" -#: templates/js/translated/company.js:1208 +#: templates/js/translated/company.js:1209 msgid "Delete manufacturer parts" msgstr "" -#: templates/js/translated/company.js:1240 +#: templates/js/translated/company.js:1241 msgid "Manufacturer part actions" msgstr "" -#: templates/js/translated/company.js:1259 +#: templates/js/translated/company.js:1260 msgid "No manufacturer parts found" msgstr "" -#: templates/js/translated/company.js:1279 -#: templates/js/translated/company.js:1567 templates/js/translated/part.js:801 +#: templates/js/translated/company.js:1280 +#: templates/js/translated/company.js:1568 templates/js/translated/part.js:801 #: templates/js/translated/part.js:1217 msgid "Template part" msgstr "" -#: templates/js/translated/company.js:1283 -#: templates/js/translated/company.js:1571 templates/js/translated/part.js:805 +#: templates/js/translated/company.js:1284 +#: templates/js/translated/company.js:1572 templates/js/translated/part.js:805 #: templates/js/translated/part.js:1221 msgid "Assembled part" msgstr "" -#: templates/js/translated/company.js:1403 templates/js/translated/part.js:1471 +#: templates/js/translated/company.js:1404 templates/js/translated/part.js:1471 msgid "No parameters found" msgstr "" -#: templates/js/translated/company.js:1438 templates/js/translated/part.js:1534 +#: templates/js/translated/company.js:1439 templates/js/translated/part.js:1534 msgid "Edit parameter" msgstr "" -#: templates/js/translated/company.js:1439 templates/js/translated/part.js:1535 +#: templates/js/translated/company.js:1440 templates/js/translated/part.js:1535 msgid "Delete parameter" msgstr "" -#: templates/js/translated/company.js:1456 templates/js/translated/part.js:1440 +#: templates/js/translated/company.js:1457 templates/js/translated/part.js:1440 msgid "Edit Parameter" msgstr "" -#: templates/js/translated/company.js:1465 templates/js/translated/part.js:1556 +#: templates/js/translated/company.js:1466 templates/js/translated/part.js:1556 msgid "Delete Parameter" msgstr "" -#: templates/js/translated/company.js:1496 +#: templates/js/translated/company.js:1497 msgid "Delete supplier parts" msgstr "" -#: templates/js/translated/company.js:1546 +#: templates/js/translated/company.js:1547 msgid "No supplier parts found" msgstr "" -#: templates/js/translated/company.js:1664 +#: templates/js/translated/company.js:1665 msgid "Base Units" msgstr "" -#: templates/js/translated/company.js:1694 +#: templates/js/translated/company.js:1695 msgid "Availability" msgstr "" -#: templates/js/translated/company.js:1725 +#: templates/js/translated/company.js:1726 msgid "Edit supplier part" msgstr "" -#: templates/js/translated/company.js:1726 +#: templates/js/translated/company.js:1727 msgid "Delete supplier part" msgstr "" -#: templates/js/translated/company.js:1779 +#: templates/js/translated/company.js:1780 #: templates/js/translated/pricing.js:694 msgid "Delete Price Break" msgstr "" -#: templates/js/translated/company.js:1789 +#: templates/js/translated/company.js:1790 #: templates/js/translated/pricing.js:712 msgid "Edit Price Break" msgstr "" -#: templates/js/translated/company.js:1804 +#: templates/js/translated/company.js:1805 msgid "No price break information found" msgstr "" -#: templates/js/translated/company.js:1833 +#: templates/js/translated/company.js:1834 msgid "Last updated" msgstr "" -#: templates/js/translated/company.js:1840 +#: templates/js/translated/company.js:1841 msgid "Edit price break" msgstr "" -#: templates/js/translated/company.js:1841 +#: templates/js/translated/company.js:1842 msgid "Delete price break" msgstr "" @@ -12978,19 +13343,19 @@ msgstr "" msgid "Select Columns" msgstr "" -#: templates/js/translated/helpers.js:80 +#: templates/js/translated/helpers.js:81 msgid "YES" msgstr "" -#: templates/js/translated/helpers.js:83 +#: templates/js/translated/helpers.js:84 msgid "NO" msgstr "" -#: templates/js/translated/helpers.js:96 +#: templates/js/translated/helpers.js:97 msgid "True" msgstr "" -#: templates/js/translated/helpers.js:97 +#: templates/js/translated/helpers.js:98 msgid "False" msgstr "" @@ -13132,7 +13497,7 @@ msgid "Delete Line" msgstr "" #: templates/js/translated/order.js:306 -#: templates/js/translated/purchase_order.js:2060 +#: templates/js/translated/purchase_order.js:2044 msgid "No line items found" msgstr "" @@ -13367,19 +13732,19 @@ msgid "Delete Part Parameter Template" msgstr "" #: templates/js/translated/part.js:1723 -#: templates/js/translated/purchase_order.js:1724 +#: templates/js/translated/purchase_order.js:1708 msgid "No purchase orders found" msgstr "" #: templates/js/translated/part.js:1867 -#: templates/js/translated/purchase_order.js:2223 +#: templates/js/translated/purchase_order.js:2207 #: templates/js/translated/return_order.js:754 -#: templates/js/translated/sales_order.js:1911 +#: templates/js/translated/sales_order.js:1892 msgid "This line item is overdue" msgstr "" #: templates/js/translated/part.js:1913 -#: templates/js/translated/purchase_order.js:2290 +#: templates/js/translated/purchase_order.js:2274 msgid "Receive line item" msgstr "" @@ -13420,7 +13785,7 @@ msgid "No category" msgstr "" #: templates/js/translated/part.js:2550 templates/js/translated/part.js:2680 -#: templates/js/translated/stock.js:2754 +#: templates/js/translated/stock.js:2755 msgid "Display as list" msgstr "" @@ -13432,7 +13797,7 @@ msgstr "" msgid "No subcategories found" msgstr "" -#: templates/js/translated/part.js:2700 templates/js/translated/stock.js:2774 +#: templates/js/translated/part.js:2700 templates/js/translated/stock.js:2775 msgid "Display as tree" msgstr "" @@ -13484,23 +13849,23 @@ msgstr "" msgid "Speculative" msgstr "" -#: templates/js/translated/part.js:3128 +#: templates/js/translated/part.js:3144 msgid "No scheduling information available for this part" msgstr "" -#: templates/js/translated/part.js:3134 +#: templates/js/translated/part.js:3150 msgid "Error fetching scheduling information for this part" msgstr "" -#: templates/js/translated/part.js:3230 +#: templates/js/translated/part.js:3246 msgid "Scheduled Stock Quantities" msgstr "" -#: templates/js/translated/part.js:3246 +#: templates/js/translated/part.js:3262 msgid "Maximum Quantity" msgstr "" -#: templates/js/translated/part.js:3291 +#: templates/js/translated/part.js:3307 msgid "Minimum Stock Level" msgstr "" @@ -13576,267 +13941,243 @@ msgstr "" msgid "Purchase Price History" msgstr "" -#: templates/js/translated/pricing.js:894 +#: templates/js/translated/pricing.js:892 msgid "No sales history data available" msgstr "" -#: templates/js/translated/pricing.js:916 +#: templates/js/translated/pricing.js:914 msgid "Sale Price History" msgstr "" -#: templates/js/translated/pricing.js:1005 +#: templates/js/translated/pricing.js:1003 msgid "No variant data available" msgstr "" -#: templates/js/translated/pricing.js:1045 +#: templates/js/translated/pricing.js:1043 msgid "Variant Part" msgstr "" -#: templates/js/translated/purchase_order.js:169 -msgid "Select purchase order to duplicate" -msgstr "" - -#: templates/js/translated/purchase_order.js:176 -msgid "Duplicate Line Items" -msgstr "" - -#: templates/js/translated/purchase_order.js:177 -msgid "Duplicate all line items from the selected order" -msgstr "" - -#: templates/js/translated/purchase_order.js:184 -msgid "Duplicate Extra Lines" -msgstr "" - -#: templates/js/translated/purchase_order.js:185 -msgid "Duplicate extra line items from the selected order" -msgstr "" - -#: templates/js/translated/purchase_order.js:206 +#: templates/js/translated/purchase_order.js:188 msgid "Edit Purchase Order" msgstr "" -#: templates/js/translated/purchase_order.js:223 +#: templates/js/translated/purchase_order.js:205 msgid "Duplication Options" msgstr "" -#: templates/js/translated/purchase_order.js:431 +#: templates/js/translated/purchase_order.js:414 msgid "Complete Purchase Order" msgstr "" -#: templates/js/translated/purchase_order.js:448 +#: templates/js/translated/purchase_order.js:431 #: templates/js/translated/return_order.js:210 -#: templates/js/translated/sales_order.js:552 +#: templates/js/translated/sales_order.js:511 msgid "Mark this order as complete?" msgstr "" -#: templates/js/translated/purchase_order.js:454 +#: templates/js/translated/purchase_order.js:437 msgid "All line items have been received" msgstr "" -#: templates/js/translated/purchase_order.js:459 +#: templates/js/translated/purchase_order.js:442 msgid "This order has line items which have not been marked as received." msgstr "" -#: templates/js/translated/purchase_order.js:460 +#: templates/js/translated/purchase_order.js:443 msgid "Completing this order means that the order and line items will no longer be editable." msgstr "" -#: templates/js/translated/purchase_order.js:483 +#: templates/js/translated/purchase_order.js:466 msgid "Cancel Purchase Order" msgstr "" -#: templates/js/translated/purchase_order.js:488 +#: templates/js/translated/purchase_order.js:471 msgid "Are you sure you wish to cancel this purchase order?" msgstr "" -#: templates/js/translated/purchase_order.js:494 +#: templates/js/translated/purchase_order.js:477 msgid "This purchase order can not be cancelled" msgstr "" -#: templates/js/translated/purchase_order.js:515 +#: templates/js/translated/purchase_order.js:498 #: templates/js/translated/return_order.js:164 msgid "After placing this order, line items will no longer be editable." msgstr "" -#: templates/js/translated/purchase_order.js:520 +#: templates/js/translated/purchase_order.js:503 msgid "Issue Purchase Order" msgstr "" -#: templates/js/translated/purchase_order.js:612 +#: templates/js/translated/purchase_order.js:595 msgid "At least one purchaseable part must be selected" msgstr "" -#: templates/js/translated/purchase_order.js:637 +#: templates/js/translated/purchase_order.js:620 msgid "Quantity to order" msgstr "" -#: templates/js/translated/purchase_order.js:646 +#: templates/js/translated/purchase_order.js:629 msgid "New supplier part" msgstr "" -#: templates/js/translated/purchase_order.js:664 +#: templates/js/translated/purchase_order.js:647 msgid "New purchase order" msgstr "" -#: templates/js/translated/purchase_order.js:705 +#: templates/js/translated/purchase_order.js:688 msgid "Add to purchase order" msgstr "" -#: templates/js/translated/purchase_order.js:755 +#: templates/js/translated/purchase_order.js:738 msgid "Merge" msgstr "" -#: templates/js/translated/purchase_order.js:859 +#: templates/js/translated/purchase_order.js:842 msgid "No matching supplier parts" msgstr "" -#: templates/js/translated/purchase_order.js:878 +#: templates/js/translated/purchase_order.js:861 msgid "No matching purchase orders" msgstr "" -#: templates/js/translated/purchase_order.js:1073 +#: templates/js/translated/purchase_order.js:1056 #: templates/js/translated/return_order.js:490 msgid "Select Line Items" msgstr "" -#: templates/js/translated/purchase_order.js:1074 +#: templates/js/translated/purchase_order.js:1057 #: templates/js/translated/return_order.js:491 msgid "At least one line item must be selected" msgstr "" -#: templates/js/translated/purchase_order.js:1104 +#: templates/js/translated/purchase_order.js:1087 msgid "Received Quantity" msgstr "" -#: templates/js/translated/purchase_order.js:1115 +#: templates/js/translated/purchase_order.js:1098 msgid "Quantity to receive" msgstr "" -#: templates/js/translated/purchase_order.js:1170 +#: templates/js/translated/purchase_order.js:1153 #: templates/js/translated/stock.js:1215 msgid "Specify packaging for incoming stock items" msgstr "" -#: templates/js/translated/purchase_order.js:1223 +#: templates/js/translated/purchase_order.js:1206 msgid "Stock Status" msgstr "" -#: templates/js/translated/purchase_order.js:1237 +#: templates/js/translated/purchase_order.js:1220 msgid "Add barcode" msgstr "" -#: templates/js/translated/purchase_order.js:1238 +#: templates/js/translated/purchase_order.js:1221 msgid "Remove barcode" msgstr "" -#: templates/js/translated/purchase_order.js:1241 +#: templates/js/translated/purchase_order.js:1224 msgid "Specify location" msgstr "" -#: templates/js/translated/purchase_order.js:1249 +#: templates/js/translated/purchase_order.js:1232 msgid "Add batch code" msgstr "" -#: templates/js/translated/purchase_order.js:1259 +#: templates/js/translated/purchase_order.js:1242 msgid "Specify packaging" msgstr "" -#: templates/js/translated/purchase_order.js:1270 +#: templates/js/translated/purchase_order.js:1253 msgid "Add serial numbers" msgstr "" -#: templates/js/translated/purchase_order.js:1281 +#: templates/js/translated/purchase_order.js:1264 msgid "Add note" msgstr "" -#: templates/js/translated/purchase_order.js:1338 +#: templates/js/translated/purchase_order.js:1321 msgid "Serials" msgstr "" -#: templates/js/translated/purchase_order.js:1368 +#: templates/js/translated/purchase_order.js:1351 msgid "Order Code" msgstr "" -#: templates/js/translated/purchase_order.js:1370 +#: templates/js/translated/purchase_order.js:1353 msgid "Quantity to Receive" msgstr "" -#: templates/js/translated/purchase_order.js:1395 +#: templates/js/translated/purchase_order.js:1379 #: templates/js/translated/return_order.js:559 msgid "Confirm receipt of items" msgstr "" -#: templates/js/translated/purchase_order.js:1396 +#: templates/js/translated/purchase_order.js:1380 msgid "Receive Purchase Order Items" msgstr "" -#: templates/js/translated/purchase_order.js:1464 +#: templates/js/translated/purchase_order.js:1448 msgid "Scan Item Barcode" msgstr "" -#: templates/js/translated/purchase_order.js:1465 +#: templates/js/translated/purchase_order.js:1449 msgid "Scan barcode on incoming item (must not match any existing stock items)" msgstr "" -#: templates/js/translated/purchase_order.js:1479 +#: templates/js/translated/purchase_order.js:1463 msgid "Invalid barcode data" msgstr "" -#: templates/js/translated/purchase_order.js:1751 +#: templates/js/translated/purchase_order.js:1735 #: templates/js/translated/return_order.js:285 -#: templates/js/translated/sales_order.js:810 -#: templates/js/translated/sales_order.js:1034 +#: templates/js/translated/sales_order.js:769 +#: templates/js/translated/sales_order.js:1007 msgid "Order is overdue" msgstr "" -#: templates/js/translated/purchase_order.js:1913 +#: templates/js/translated/purchase_order.js:1897 msgid "All selected Line items will be deleted" msgstr "" -#: templates/js/translated/purchase_order.js:1931 +#: templates/js/translated/purchase_order.js:1915 msgid "Delete selected Line items?" msgstr "" -#: templates/js/translated/purchase_order.js:1986 -#: templates/js/translated/sales_order.js:2106 +#: templates/js/translated/purchase_order.js:1970 +#: templates/js/translated/sales_order.js:2087 msgid "Duplicate Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2001 +#: templates/js/translated/purchase_order.js:1985 #: templates/js/translated/return_order.js:475 #: templates/js/translated/return_order.js:667 -#: templates/js/translated/sales_order.js:2119 +#: templates/js/translated/sales_order.js:2100 msgid "Edit Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2012 +#: templates/js/translated/purchase_order.js:1996 #: templates/js/translated/return_order.js:680 -#: templates/js/translated/sales_order.js:2130 +#: templates/js/translated/sales_order.js:2111 msgid "Delete Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2294 -#: templates/js/translated/sales_order.js:2060 +#: templates/js/translated/purchase_order.js:2278 +#: templates/js/translated/sales_order.js:2041 msgid "Duplicate line item" msgstr "" -#: templates/js/translated/purchase_order.js:2295 +#: templates/js/translated/purchase_order.js:2279 #: templates/js/translated/return_order.js:799 -#: templates/js/translated/sales_order.js:2061 +#: templates/js/translated/sales_order.js:2042 msgid "Edit line item" msgstr "" -#: templates/js/translated/purchase_order.js:2296 +#: templates/js/translated/purchase_order.js:2280 #: templates/js/translated/return_order.js:803 -#: templates/js/translated/sales_order.js:2067 +#: templates/js/translated/sales_order.js:2048 msgid "Delete line item" msgstr "" -#: templates/js/translated/report.js:49 -msgid "Print Report" -msgstr "" - #: templates/js/translated/report.js:68 msgid "Report print successful" msgstr "" @@ -13879,7 +14220,7 @@ msgid "No return orders found" msgstr "" #: templates/js/translated/return_order.js:299 -#: templates/js/translated/sales_order.js:824 +#: templates/js/translated/sales_order.js:783 msgid "Invalid Customer" msgstr "" @@ -13888,7 +14229,7 @@ msgid "Receive Return Order Items" msgstr "" #: templates/js/translated/return_order.js:691 -#: templates/js/translated/sales_order.js:2267 +#: templates/js/translated/sales_order.js:2248 msgid "No matching line items" msgstr "" @@ -13904,188 +14245,181 @@ msgstr "" msgid "Edit Sales Order" msgstr "" -#: templates/js/translated/sales_order.js:291 +#: templates/js/translated/sales_order.js:288 msgid "No stock items have been allocated to this shipment" msgstr "" -#: templates/js/translated/sales_order.js:296 -msgid "The following stock items will be shipped" -msgstr "" - -#: templates/js/translated/sales_order.js:336 +#: templates/js/translated/sales_order.js:294 msgid "Complete Shipment" msgstr "" -#: templates/js/translated/sales_order.js:360 +#: templates/js/translated/sales_order.js:318 msgid "Confirm Shipment" msgstr "" -#: templates/js/translated/sales_order.js:416 +#: templates/js/translated/sales_order.js:375 msgid "No pending shipments found" msgstr "" -#: templates/js/translated/sales_order.js:420 +#: templates/js/translated/sales_order.js:379 msgid "No stock items have been allocated to pending shipments" msgstr "" -#: templates/js/translated/sales_order.js:430 +#: templates/js/translated/sales_order.js:389 msgid "Complete Shipments" msgstr "" -#: templates/js/translated/sales_order.js:452 +#: templates/js/translated/sales_order.js:411 msgid "Skip" msgstr "" -#: templates/js/translated/sales_order.js:484 +#: templates/js/translated/sales_order.js:443 msgid "Ship Sales Order" msgstr "" -#: templates/js/translated/sales_order.js:500 +#: templates/js/translated/sales_order.js:459 msgid "Ship this order?" msgstr "" -#: templates/js/translated/sales_order.js:506 +#: templates/js/translated/sales_order.js:465 msgid "Order cannot be shipped as there are incomplete shipments" msgstr "" -#: templates/js/translated/sales_order.js:513 +#: templates/js/translated/sales_order.js:472 msgid "This order has line items which have not been completed." msgstr "" -#: templates/js/translated/sales_order.js:514 +#: templates/js/translated/sales_order.js:473 msgid "Shipping this order means that the order and line items will no longer be editable." msgstr "" -#: templates/js/translated/sales_order.js:572 +#: templates/js/translated/sales_order.js:531 msgid "Issue this Sales Order?" msgstr "" -#: templates/js/translated/sales_order.js:577 +#: templates/js/translated/sales_order.js:536 msgid "Issue Sales Order" msgstr "" -#: templates/js/translated/sales_order.js:596 +#: templates/js/translated/sales_order.js:555 msgid "Cancel Sales Order" msgstr "" -#: templates/js/translated/sales_order.js:601 +#: templates/js/translated/sales_order.js:560 msgid "Cancelling this order means that the order will no longer be editable." msgstr "" -#: templates/js/translated/sales_order.js:655 +#: templates/js/translated/sales_order.js:614 msgid "Create New Shipment" msgstr "" -#: templates/js/translated/sales_order.js:764 +#: templates/js/translated/sales_order.js:723 msgid "No sales orders found" msgstr "" -#: templates/js/translated/sales_order.js:944 +#: templates/js/translated/sales_order.js:907 msgid "Edit shipment" msgstr "" -#: templates/js/translated/sales_order.js:947 +#: templates/js/translated/sales_order.js:910 msgid "Complete shipment" msgstr "" -#: templates/js/translated/sales_order.js:952 +#: templates/js/translated/sales_order.js:915 msgid "Delete shipment" msgstr "" -#: templates/js/translated/sales_order.js:969 +#: templates/js/translated/sales_order.js:932 msgid "Edit Shipment" msgstr "" -#: templates/js/translated/sales_order.js:984 +#: templates/js/translated/sales_order.js:947 msgid "Delete Shipment" msgstr "" -#: templates/js/translated/sales_order.js:1017 +#: templates/js/translated/sales_order.js:989 msgid "No matching shipments found" msgstr "" -#: templates/js/translated/sales_order.js:1042 +#: templates/js/translated/sales_order.js:1015 msgid "Shipment Reference" msgstr "" -#: templates/js/translated/sales_order.js:1066 -#: templates/js/translated/sales_order.js:1565 +#: templates/js/translated/sales_order.js:1032 +#: templates/js/translated/sales_order.js:1531 msgid "Not shipped" msgstr "" -#: templates/js/translated/sales_order.js:1084 +#: templates/js/translated/sales_order.js:1050 msgid "Tracking" msgstr "" -#: templates/js/translated/sales_order.js:1088 +#: templates/js/translated/sales_order.js:1054 msgid "Invoice" msgstr "" -#: templates/js/translated/sales_order.js:1255 +#: templates/js/translated/sales_order.js:1221 msgid "Add Shipment" msgstr "" -#: templates/js/translated/sales_order.js:1306 +#: templates/js/translated/sales_order.js:1272 msgid "Confirm stock allocation" msgstr "" -#: templates/js/translated/sales_order.js:1307 +#: templates/js/translated/sales_order.js:1273 msgid "Allocate Stock Items to Sales Order" msgstr "" -#: templates/js/translated/sales_order.js:1513 +#: templates/js/translated/sales_order.js:1479 msgid "No sales order allocations found" msgstr "" -#: templates/js/translated/sales_order.js:1605 +#: templates/js/translated/sales_order.js:1571 msgid "Edit Stock Allocation" msgstr "" -#: templates/js/translated/sales_order.js:1619 +#: templates/js/translated/sales_order.js:1585 msgid "Confirm Delete Operation" msgstr "" -#: templates/js/translated/sales_order.js:1620 +#: templates/js/translated/sales_order.js:1586 msgid "Delete Stock Allocation" msgstr "" -#: templates/js/translated/sales_order.js:1659 -#: templates/js/translated/sales_order.js:1746 +#: templates/js/translated/sales_order.js:1640 +#: templates/js/translated/sales_order.js:1727 #: templates/js/translated/stock.js:1861 msgid "Shipped to customer" msgstr "" -#: templates/js/translated/sales_order.js:1667 -#: templates/js/translated/sales_order.js:1755 +#: templates/js/translated/sales_order.js:1648 +#: templates/js/translated/sales_order.js:1736 msgid "Stock location not specified" msgstr "" -#: templates/js/translated/sales_order.js:2044 -msgid "Allocate serial numbers" -msgstr "" - -#: templates/js/translated/sales_order.js:2048 -msgid "Purchase stock" -msgstr "" - -#: templates/js/translated/sales_order.js:2057 -#: templates/js/translated/sales_order.js:2245 -msgid "Calculate price" -msgstr "" - -#: templates/js/translated/sales_order.js:2071 -msgid "Cannot be deleted as items have been shipped" -msgstr "" - -#: templates/js/translated/sales_order.js:2074 -msgid "Cannot be deleted as items have been allocated" -msgstr "" - -#: templates/js/translated/sales_order.js:2145 +#: templates/js/translated/sales_order.js:2025 +#: templates/js/translated/sales_order.js:2126 msgid "Allocate Serial Numbers" msgstr "" -#: templates/js/translated/sales_order.js:2253 +#: templates/js/translated/sales_order.js:2029 +msgid "Purchase stock" +msgstr "" + +#: templates/js/translated/sales_order.js:2038 +#: templates/js/translated/sales_order.js:2226 +msgid "Calculate price" +msgstr "" + +#: templates/js/translated/sales_order.js:2052 +msgid "Cannot be deleted as items have been shipped" +msgstr "" + +#: templates/js/translated/sales_order.js:2055 +msgid "Cannot be deleted as items have been allocated" +msgstr "" + +#: templates/js/translated/sales_order.js:2234 msgid "Update Unit Price" msgstr "" @@ -14210,11 +14544,8 @@ msgid "Find Serial Number" msgstr "" #: templates/js/translated/stock.js:603 templates/js/translated/stock.js:604 -msgid "Enter serial number" -msgstr "" - #: templates/js/translated/stock.js:620 -msgid "Enter a serial number" +msgid "Enter serial number" msgstr "" #: templates/js/translated/stock.js:640 @@ -14285,7 +14616,7 @@ msgstr "" msgid "Add Stock" msgstr "" -#: templates/js/translated/stock.js:1049 users/models.py:396 +#: templates/js/translated/stock.js:1049 users/models.py:398 msgid "Add" msgstr "" @@ -14309,7 +14640,7 @@ msgstr "" msgid "Adjust packaging" msgstr "" -#: templates/js/translated/stock.js:1256 templates/js/translated/stock.js:3382 +#: templates/js/translated/stock.js:1256 templates/js/translated/stock.js:3383 msgid "Select Stock Items" msgstr "" @@ -14321,18 +14652,6 @@ msgstr "" msgid "Confirm stock adjustment" msgstr "" -#: templates/js/translated/stock.js:1448 -msgid "PASS" -msgstr "" - -#: templates/js/translated/stock.js:1450 -msgid "FAIL" -msgstr "" - -#: templates/js/translated/stock.js:1455 -msgid "NO RESULT" -msgstr "" - #: templates/js/translated/stock.js:1535 msgid "Pass test" msgstr "" @@ -14389,216 +14708,216 @@ msgstr "" msgid "No stock location set" msgstr "" -#: templates/js/translated/stock.js:1927 +#: templates/js/translated/stock.js:1928 msgid "Change stock status" msgstr "" -#: templates/js/translated/stock.js:1936 +#: templates/js/translated/stock.js:1937 msgid "Merge stock" msgstr "" -#: templates/js/translated/stock.js:1985 +#: templates/js/translated/stock.js:1986 msgid "Delete stock" msgstr "" -#: templates/js/translated/stock.js:2038 +#: templates/js/translated/stock.js:2039 msgid "stock items" msgstr "" -#: templates/js/translated/stock.js:2043 +#: templates/js/translated/stock.js:2044 msgid "Scan to location" msgstr "" -#: templates/js/translated/stock.js:2054 +#: templates/js/translated/stock.js:2055 msgid "Stock Actions" msgstr "" -#: templates/js/translated/stock.js:2098 +#: templates/js/translated/stock.js:2099 msgid "Load installed items" msgstr "" -#: templates/js/translated/stock.js:2176 +#: templates/js/translated/stock.js:2177 msgid "Stock item is in production" msgstr "" -#: templates/js/translated/stock.js:2181 +#: templates/js/translated/stock.js:2182 msgid "Stock item assigned to sales order" msgstr "" -#: templates/js/translated/stock.js:2184 +#: templates/js/translated/stock.js:2185 msgid "Stock item assigned to customer" msgstr "" -#: templates/js/translated/stock.js:2187 +#: templates/js/translated/stock.js:2188 msgid "Serialized stock item has been allocated" msgstr "" -#: templates/js/translated/stock.js:2189 +#: templates/js/translated/stock.js:2190 msgid "Stock item has been fully allocated" msgstr "" -#: templates/js/translated/stock.js:2191 +#: templates/js/translated/stock.js:2192 msgid "Stock item has been partially allocated" msgstr "" -#: templates/js/translated/stock.js:2194 +#: templates/js/translated/stock.js:2195 msgid "Stock item has been installed in another item" msgstr "" -#: templates/js/translated/stock.js:2196 +#: templates/js/translated/stock.js:2197 msgid "Stock item has been consumed by a build order" msgstr "" -#: templates/js/translated/stock.js:2200 +#: templates/js/translated/stock.js:2201 msgid "Stock item has expired" msgstr "" -#: templates/js/translated/stock.js:2202 +#: templates/js/translated/stock.js:2203 msgid "Stock item will expire soon" msgstr "" -#: templates/js/translated/stock.js:2207 +#: templates/js/translated/stock.js:2208 msgid "Stock item has been rejected" msgstr "" -#: templates/js/translated/stock.js:2209 +#: templates/js/translated/stock.js:2210 msgid "Stock item is lost" msgstr "" -#: templates/js/translated/stock.js:2211 +#: templates/js/translated/stock.js:2212 msgid "Stock item is destroyed" msgstr "" -#: templates/js/translated/stock.js:2215 +#: templates/js/translated/stock.js:2216 #: templates/js/translated/table_filters.js:357 msgid "Depleted" msgstr "" -#: templates/js/translated/stock.js:2380 +#: templates/js/translated/stock.js:2381 msgid "Supplier part not specified" msgstr "" -#: templates/js/translated/stock.js:2427 +#: templates/js/translated/stock.js:2428 msgid "Stock Value" msgstr "" -#: templates/js/translated/stock.js:2555 +#: templates/js/translated/stock.js:2556 msgid "No stock items matching query" msgstr "" -#: templates/js/translated/stock.js:2658 +#: templates/js/translated/stock.js:2659 msgid "stock locations" msgstr "" -#: templates/js/translated/stock.js:2813 +#: templates/js/translated/stock.js:2814 msgid "Load Sublocations" msgstr "" -#: templates/js/translated/stock.js:2930 +#: templates/js/translated/stock.js:2931 msgid "Details" msgstr "" -#: templates/js/translated/stock.js:2934 +#: templates/js/translated/stock.js:2935 msgid "No changes" msgstr "" -#: templates/js/translated/stock.js:2946 +#: templates/js/translated/stock.js:2947 msgid "Part information unavailable" msgstr "" -#: templates/js/translated/stock.js:2968 +#: templates/js/translated/stock.js:2969 msgid "Location no longer exists" msgstr "" -#: templates/js/translated/stock.js:2985 +#: templates/js/translated/stock.js:2986 msgid "Build order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3000 +#: templates/js/translated/stock.js:3001 msgid "Purchase order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3017 +#: templates/js/translated/stock.js:3018 msgid "Sales Order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3034 +#: templates/js/translated/stock.js:3035 msgid "Return Order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3053 +#: templates/js/translated/stock.js:3054 msgid "Customer no longer exists" msgstr "" -#: templates/js/translated/stock.js:3071 +#: templates/js/translated/stock.js:3072 msgid "Stock item no longer exists" msgstr "" -#: templates/js/translated/stock.js:3089 +#: templates/js/translated/stock.js:3090 msgid "Added" msgstr "" -#: templates/js/translated/stock.js:3097 +#: templates/js/translated/stock.js:3098 msgid "Removed" msgstr "" -#: templates/js/translated/stock.js:3169 +#: templates/js/translated/stock.js:3170 msgid "No installed items" msgstr "" -#: templates/js/translated/stock.js:3223 templates/js/translated/stock.js:3259 +#: templates/js/translated/stock.js:3224 templates/js/translated/stock.js:3260 msgid "Uninstall Stock Item" msgstr "" -#: templates/js/translated/stock.js:3280 +#: templates/js/translated/stock.js:3281 msgid "Select stock item to uninstall" msgstr "" -#: templates/js/translated/stock.js:3301 +#: templates/js/translated/stock.js:3302 msgid "Install another stock item into this item" msgstr "" -#: templates/js/translated/stock.js:3302 +#: templates/js/translated/stock.js:3303 msgid "Stock items can only be installed if they meet the following criteria" msgstr "" -#: templates/js/translated/stock.js:3304 +#: templates/js/translated/stock.js:3305 msgid "The Stock Item links to a Part which is the BOM for this Stock Item" msgstr "" -#: templates/js/translated/stock.js:3305 +#: templates/js/translated/stock.js:3306 msgid "The Stock Item is currently available in stock" msgstr "" -#: templates/js/translated/stock.js:3306 +#: templates/js/translated/stock.js:3307 msgid "The Stock Item is not already installed in another item" msgstr "" -#: templates/js/translated/stock.js:3307 +#: templates/js/translated/stock.js:3308 msgid "The Stock Item is tracked by either a batch code or serial number" msgstr "" -#: templates/js/translated/stock.js:3320 +#: templates/js/translated/stock.js:3321 msgid "Select part to install" msgstr "" -#: templates/js/translated/stock.js:3383 +#: templates/js/translated/stock.js:3384 msgid "Select one or more stock items" msgstr "" -#: templates/js/translated/stock.js:3396 +#: templates/js/translated/stock.js:3397 msgid "Selected stock items" msgstr "" -#: templates/js/translated/stock.js:3400 +#: templates/js/translated/stock.js:3401 msgid "Change Stock Status" msgstr "" -#: templates/js/translated/stock.js:3477 +#: templates/js/translated/stock.js:3478 msgid "This week" msgstr "" -#: templates/js/translated/stock.js:3485 +#: templates/js/translated/stock.js:3486 msgid "This month" msgstr "" @@ -14735,10 +15054,6 @@ msgstr "" msgid "Show items which are in production" msgstr "" -#: templates/js/translated/table_filters.js:372 -msgid "Include Variants" -msgstr "" - #: templates/js/translated/table_filters.js:373 msgid "Include stock items for variant parts" msgstr "" @@ -15013,10 +15328,6 @@ msgstr "" msgid "An error occurred while attempting to login via your social network account." msgstr "" -#: templates/socialaccount/authentication_error.html:13 -msgid "Contact your system administrator for further information." -msgstr "" - #: templates/socialaccount/login.html:13 #, python-format msgid "Connect %(provider)s" @@ -15142,27 +15453,27 @@ msgstr "" msgid "No" msgstr "" -#: users/admin.py:104 +#: users/admin.py:101 msgid "Users" msgstr "" -#: users/admin.py:105 +#: users/admin.py:102 msgid "Select which users are assigned to this group" msgstr "" -#: users/admin.py:249 +#: users/admin.py:246 msgid "The following users are members of multiple groups" msgstr "" -#: users/admin.py:283 +#: users/admin.py:280 msgid "Personal info" msgstr "" -#: users/admin.py:285 +#: users/admin.py:282 msgid "Permissions" msgstr "" -#: users/admin.py:288 +#: users/admin.py:285 msgid "Important dates" msgstr "" @@ -15206,34 +15517,34 @@ msgstr "" msgid "Revoked" msgstr "" -#: users/models.py:379 +#: users/models.py:381 msgid "Permission set" msgstr "" -#: users/models.py:388 +#: users/models.py:390 msgid "Group" msgstr "" -#: users/models.py:392 +#: users/models.py:394 msgid "View" msgstr "" -#: users/models.py:392 +#: users/models.py:394 msgid "Permission to view items" msgstr "" -#: users/models.py:396 +#: users/models.py:398 msgid "Permission to add items" msgstr "" -#: users/models.py:400 +#: users/models.py:402 msgid "Change" msgstr "" -#: users/models.py:402 +#: users/models.py:404 msgid "Permissions to edit items" msgstr "" -#: users/models.py:408 +#: users/models.py:410 msgid "Permission to delete items" msgstr "" diff --git a/src/backend/InvenTree/locale/es/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/es/LC_MESSAGES/django.po index 0594d1a455..04b5b71a0b 100644 --- a/src/backend/InvenTree/locale/es/LC_MESSAGES/django.po +++ b/src/backend/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: 2024-08-20 01:22+0000\n" -"PO-Revision-Date: 2024-08-20 19:50\n" +"POT-Creation-Date: 2024-11-04 03:11+0000\n" +"PO-Revision-Date: 2024-11-04 03:14\n" "Last-Translator: \n" "Language-Team: Spanish\n" "Language: es_ES\n" @@ -14,81 +14,89 @@ msgstr "" "X-Crowdin-Project: inventree\n" "X-Crowdin-Project-ID: 452300\n" "X-Crowdin-Language: es-ES\n" -"X-Crowdin-File: /[inventree.InvenTree] l10/src/backend/InvenTree/locale/en/LC_MESSAGES/django.po\n" -"X-Crowdin-File-ID: 216\n" +"X-Crowdin-File: /src/backend/InvenTree/locale/en/LC_MESSAGES/django.po\n" +"X-Crowdin-File-ID: 250\n" -#: InvenTree/api.py:269 +#: InvenTree/api.py:270 msgid "API endpoint not found" msgstr "endpoint API no encontrado" -#: InvenTree/api.py:502 +#: InvenTree/api.py:387 +msgid "Invalid items list provided" +msgstr "" + +#: InvenTree/api.py:396 +msgid "Invalid filters provided" +msgstr "" + +#: InvenTree/api.py:401 +msgid "No items found to delete" +msgstr "" + +#: InvenTree/api.py:515 msgid "User does not have permission to view this model" msgstr "El usuario no tiene permiso para ver este modelo" -#: InvenTree/conversion.py:160 +#: InvenTree/conversion.py:161 #, python-brace-format msgid "Invalid unit provided ({unit})" -msgstr "" +msgstr "Unidad proporcionada no válida ({unit})" -#: InvenTree/conversion.py:177 +#: InvenTree/conversion.py:178 msgid "No value provided" msgstr "Ningún valor proporcionado" -#: InvenTree/conversion.py:204 +#: InvenTree/conversion.py:205 #, python-brace-format msgid "Could not convert {original} to {unit}" msgstr "No se pudo convertir {original} a {unit}" -#: InvenTree/conversion.py:206 -msgid "Invalid quantity supplied" -msgstr "La cantidad suministrada es inválida" +#: InvenTree/conversion.py:207 InvenTree/conversion.py:221 +#: InvenTree/helpers.py:505 order/models.py:589 order/models.py:832 +msgid "Invalid quantity provided" +msgstr "Cantidad proporcionada no válida" -#: InvenTree/conversion.py:220 -#, python-brace-format -msgid "Invalid quantity supplied ({exc})" -msgstr "La cantidad suministrada es inválida ({exc})" - -#: InvenTree/exceptions.py:108 +#: InvenTree/exceptions.py:104 msgid "Error details can be found in the admin panel" msgstr "Detalles del error pueden encontrarse en el panel de administración" -#: InvenTree/fields.py:136 +#: InvenTree/fields.py:135 msgid "Enter date" msgstr "Ingrese la fecha" -#: InvenTree/fields.py:205 InvenTree/models.py:929 build/serializers.py:468 -#: build/serializers.py:546 build/templates/build/sidebar.html:29 -#: company/models.py:836 +#: InvenTree/fields.py:204 InvenTree/models.py:928 build/serializers.py:512 +#: build/serializers.py:590 build/templates/build/sidebar.html:29 +#: company/models.py:833 #: company/templates/company/manufacturer_part_sidebar.html:11 #: company/templates/company/sidebar.html:37 -#: company/templates/company/supplier_part_sidebar.html:11 order/models.py:1380 +#: company/templates/company/supplier_part_sidebar.html:11 order/models.py:1397 #: order/templates/order/po_sidebar.html:11 #: order/templates/order/return_order_sidebar.html:9 #: order/templates/order/so_sidebar.html:17 part/admin.py:59 -#: part/models.py:3297 part/templates/part/part_sidebar.html:65 +#: part/models.py:3348 part/templates/part/part_sidebar.html:65 #: report/templates/report/inventree_build_order_report.html:172 -#: stock/admin.py:230 stock/models.py:2375 stock/models.py:2563 -#: stock/serializers.py:698 stock/serializers.py:856 stock/serializers.py:982 -#: stock/serializers.py:1032 stock/serializers.py:1343 -#: stock/serializers.py:1432 stock/serializers.py:1597 +#: stock/admin.py:231 stock/models.py:2494 stock/models.py:2679 +#: stock/serializers.py:725 stock/serializers.py:887 stock/serializers.py:1013 +#: stock/serializers.py:1063 stock/serializers.py:1374 +#: stock/serializers.py:1463 stock/serializers.py:1628 #: stock/templates/stock/stock_sidebar.html:25 #: templates/js/translated/barcode.js:143 templates/js/translated/bom.js:1265 -#: templates/js/translated/company.js:1684 templates/js/translated/order.js:372 +#: templates/js/translated/company.js:1685 templates/js/translated/order.js:372 #: templates/js/translated/part.js:1087 -#: templates/js/translated/purchase_order.js:2270 +#: templates/js/translated/purchase_order.js:2254 #: templates/js/translated/return_order.js:774 -#: templates/js/translated/sales_order.js:1103 -#: templates/js/translated/sales_order.js:2018 -#: templates/js/translated/stock.js:1621 templates/js/translated/stock.js:2513 +#: templates/js/translated/sales_order.js:1069 +#: templates/js/translated/sales_order.js:1999 +#: templates/js/translated/stock.js:1621 templates/js/translated/stock.js:2514 msgid "Notes" msgstr "Notas" -#: InvenTree/format.py:164 +#: InvenTree/format.py:162 #, python-brace-format msgid "Value '{name}' does not appear in pattern format" msgstr "El valor '{name}' no aparece en formato de patrón" -#: InvenTree/format.py:175 +#: InvenTree/format.py:173 msgid "Provided value does not match required pattern: " msgstr "El valor proporcionado no coincide con el patrón requerido: " @@ -126,403 +134,415 @@ msgstr "Debe escribir el mismo correo electrónico cada vez." #: InvenTree/forms.py:221 msgid "MFA Registration is disabled." -msgstr "" +msgstr "Registro MFA está deshabilitado." #: InvenTree/forms.py:259 InvenTree/forms.py:267 msgid "The provided primary email address is not valid." msgstr "La dirección de correo electrónico principal proporcionada no es válida." -#: InvenTree/forms.py:274 +#: InvenTree/forms.py:273 msgid "The provided email domain is not approved." msgstr "El dominio de correo electrónico proporcionado no está aprobado." -#: InvenTree/forms.py:403 +#: InvenTree/forms.py:402 msgid "Registration is disabled." msgstr "Registro deshabilitado." -#: InvenTree/helpers.py:491 order/models.py:567 order/models.py:810 -msgid "Invalid quantity provided" -msgstr "Cantidad proporcionada no válida" +#: InvenTree/helpers.py:509 +msgid "Cannot serialize more than 1000 items at once" +msgstr "" -#: InvenTree/helpers.py:499 +#: InvenTree/helpers.py:515 msgid "Empty serial number string" msgstr "No se ha proporcionado un número de serie" -#: InvenTree/helpers.py:528 +#: InvenTree/helpers.py:544 msgid "Duplicate serial" msgstr "Serie duplicada" -#: InvenTree/helpers.py:560 InvenTree/helpers.py:603 +#: InvenTree/helpers.py:576 InvenTree/helpers.py:619 InvenTree/helpers.py:637 +#: InvenTree/helpers.py:644 InvenTree/helpers.py:663 #, python-brace-format -msgid "Invalid group range: {group}" -msgstr "Rango de grupo inválido: {group}" +msgid "Invalid group: {group}" +msgstr "" -#: InvenTree/helpers.py:591 +#: InvenTree/helpers.py:607 #, python-brace-format msgid "Group range {group} exceeds allowed quantity ({expected_quantity})" msgstr "Rango del grupo {group} supera la cantidad permitida ({expected_quantity})" -#: InvenTree/helpers.py:621 InvenTree/helpers.py:628 InvenTree/helpers.py:647 -#, python-brace-format -msgid "Invalid group sequence: {group}" -msgstr "Secuencia de grupo inválida: {group}" - -#: InvenTree/helpers.py:657 +#: InvenTree/helpers.py:673 msgid "No serial numbers found" msgstr "Numeros de serie no encontrados" -#: InvenTree/helpers.py:662 +#: InvenTree/helpers.py:678 msgid "Number of unique serial numbers ({len(serials)}) must match quantity ({expected_quantity})" msgstr "Los números de serie únicos ({len(serials)}) debe coincidir con la cantidad ({expected_quantity})" -#: InvenTree/helpers.py:780 +#: InvenTree/helpers.py:796 msgid "Remove HTML tags from this value" msgstr "Eliminar etiquetas HTML de este valor" -#: InvenTree/helpers_model.py:133 +#: InvenTree/helpers.py:881 +msgid "Data contains prohibited markdown content" +msgstr "" + +#: InvenTree/helpers_model.py:130 msgid "Connection error" msgstr "Error de conexión" -#: InvenTree/helpers_model.py:138 InvenTree/helpers_model.py:145 +#: InvenTree/helpers_model.py:135 InvenTree/helpers_model.py:142 msgid "Server responded with invalid status code" msgstr "El servidor respondió con código de estado no válido" -#: InvenTree/helpers_model.py:141 +#: InvenTree/helpers_model.py:138 msgid "Exception occurred" msgstr "Se ha producido una excepción" -#: InvenTree/helpers_model.py:151 +#: InvenTree/helpers_model.py:148 msgid "Server responded with invalid Content-Length value" msgstr "El servidor respondió con un valor de longitud de contenido inválido" -#: InvenTree/helpers_model.py:154 +#: InvenTree/helpers_model.py:151 msgid "Image size is too large" msgstr "El tamaño de la imagen es demasiado grande" -#: InvenTree/helpers_model.py:166 +#: InvenTree/helpers_model.py:163 msgid "Image download exceeded maximum size" msgstr "La descarga de imagen excedió el tamaño máximo" -#: InvenTree/helpers_model.py:171 +#: InvenTree/helpers_model.py:168 msgid "Remote server returned empty response" msgstr "El servidor remoto devolvió una respuesta vacía" -#: InvenTree/helpers_model.py:179 +#: InvenTree/helpers_model.py:176 msgid "Supplied URL is not a valid image file" msgstr "La URL proporcionada no es un archivo de imagen válido" -#: InvenTree/locales.py:18 +#: InvenTree/locales.py:20 msgid "Arabic" -msgstr "" +msgstr "Árabe" -#: InvenTree/locales.py:19 +#: InvenTree/locales.py:21 msgid "Bulgarian" msgstr "Búlgaro" -#: InvenTree/locales.py:20 +#: InvenTree/locales.py:22 msgid "Czech" msgstr "Checo" -#: InvenTree/locales.py:21 +#: InvenTree/locales.py:23 msgid "Danish" msgstr "Danés" -#: InvenTree/locales.py:22 +#: InvenTree/locales.py:24 msgid "German" msgstr "Alemán" -#: InvenTree/locales.py:23 +#: InvenTree/locales.py:25 msgid "Greek" msgstr "Griego" -#: InvenTree/locales.py:24 +#: InvenTree/locales.py:26 msgid "English" msgstr "Inglés" -#: InvenTree/locales.py:25 +#: InvenTree/locales.py:27 msgid "Spanish" msgstr "Español" -#: InvenTree/locales.py:26 +#: InvenTree/locales.py:28 msgid "Spanish (Mexican)" msgstr "Español (México)" -#: InvenTree/locales.py:27 +#: InvenTree/locales.py:29 msgid "Estonian" -msgstr "" +msgstr "Estoniano" -#: InvenTree/locales.py:28 +#: InvenTree/locales.py:30 msgid "Farsi / Persian" msgstr "Farsi / Persa" -#: InvenTree/locales.py:29 +#: InvenTree/locales.py:31 msgid "Finnish" msgstr "Finlandés" -#: InvenTree/locales.py:30 +#: InvenTree/locales.py:32 msgid "French" msgstr "Francés" -#: InvenTree/locales.py:31 +#: InvenTree/locales.py:33 msgid "Hebrew" msgstr "Hebreo" -#: InvenTree/locales.py:32 +#: InvenTree/locales.py:34 msgid "Hindi" -msgstr "" +msgstr "Hindú" -#: InvenTree/locales.py:33 +#: InvenTree/locales.py:35 msgid "Hungarian" msgstr "Húngaro" -#: InvenTree/locales.py:34 +#: InvenTree/locales.py:36 msgid "Italian" msgstr "Italiano" -#: InvenTree/locales.py:35 +#: InvenTree/locales.py:37 msgid "Japanese" msgstr "Japonés" -#: InvenTree/locales.py:36 +#: InvenTree/locales.py:38 msgid "Korean" msgstr "Coreano" -#: InvenTree/locales.py:37 -msgid "Latvian" +#: InvenTree/locales.py:39 +msgid "Lithuanian" msgstr "" -#: InvenTree/locales.py:38 +#: InvenTree/locales.py:40 +msgid "Latvian" +msgstr "Letón" + +#: InvenTree/locales.py:41 msgid "Dutch" msgstr "Holandés" -#: InvenTree/locales.py:39 +#: InvenTree/locales.py:42 msgid "Norwegian" msgstr "Noruego" -#: InvenTree/locales.py:40 +#: InvenTree/locales.py:43 msgid "Polish" msgstr "Polaco" -#: InvenTree/locales.py:41 +#: InvenTree/locales.py:44 msgid "Portuguese" msgstr "Portugués" -#: InvenTree/locales.py:42 +#: InvenTree/locales.py:45 msgid "Portuguese (Brazilian)" msgstr "Portugués (Brasileño)" -#: InvenTree/locales.py:43 +#: InvenTree/locales.py:46 msgid "Romanian" -msgstr "" +msgstr "Rumano" -#: InvenTree/locales.py:44 +#: InvenTree/locales.py:47 msgid "Russian" msgstr "Ruso" -#: InvenTree/locales.py:45 +#: InvenTree/locales.py:48 msgid "Slovak" msgstr "Eslovaco" -#: InvenTree/locales.py:46 +#: InvenTree/locales.py:49 msgid "Slovenian" msgstr "Esloveno" -#: InvenTree/locales.py:47 +#: InvenTree/locales.py:50 msgid "Serbian" msgstr "Serbio" -#: InvenTree/locales.py:48 +#: InvenTree/locales.py:51 msgid "Swedish" msgstr "Sueco" -#: InvenTree/locales.py:49 +#: InvenTree/locales.py:52 msgid "Thai" msgstr "Tailandés" -#: InvenTree/locales.py:50 +#: InvenTree/locales.py:53 msgid "Turkish" msgstr "Turco" -#: InvenTree/locales.py:51 +#: InvenTree/locales.py:54 msgid "Ukrainian" -msgstr "" +msgstr "Ucraniano" -#: InvenTree/locales.py:52 +#: InvenTree/locales.py:55 msgid "Vietnamese" msgstr "Vietnamita" -#: InvenTree/locales.py:53 +#: InvenTree/locales.py:56 msgid "Chinese (Simplified)" msgstr "Chino (Simplificado)" -#: InvenTree/locales.py:54 +#: InvenTree/locales.py:57 msgid "Chinese (Traditional)" msgstr "Chino (Tradicional)" #: InvenTree/magic_login.py:28 -#, python-brace-format -msgid "[{site_name}] Log in to the app" +msgid "Log in to the app" msgstr "" -#: InvenTree/magic_login.py:38 InvenTree/serializers.py:415 -#: company/models.py:136 company/templates/company/company_base.html:138 +#: InvenTree/magic_login.py:38 InvenTree/serializers.py:416 +#: company/models.py:133 company/templates/company/company_base.html:138 #: templates/InvenTree/settings/user.html:49 -#: templates/js/translated/company.js:677 +#: templates/js/translated/company.js:678 msgid "Email" msgstr "Correo electrónico" -#: InvenTree/models.py:103 +#: InvenTree/models.py:105 msgid "Error running plugin validation" -msgstr "" +msgstr "Error al ejecutar la validación del plug-in" -#: InvenTree/models.py:172 +#: InvenTree/models.py:174 msgid "Metadata must be a python dict object" msgstr "Los metadatos deben ser un objeto diccionario de python" -#: InvenTree/models.py:178 +#: InvenTree/models.py:180 msgid "Plugin Metadata" msgstr "Metadatos del complemento" -#: InvenTree/models.py:179 +#: InvenTree/models.py:181 msgid "JSON metadata field, for use by external plugins" msgstr "Campo de metadatos JSON, para uso por complementos externos" -#: InvenTree/models.py:409 +#: InvenTree/models.py:408 msgid "Improperly formatted pattern" msgstr "Patrón con formato incorrecto" -#: InvenTree/models.py:416 +#: InvenTree/models.py:415 msgid "Unknown format key specified" msgstr "Clave de formato especificado desconocida" -#: InvenTree/models.py:422 +#: InvenTree/models.py:421 msgid "Missing required format key" msgstr "Falta la clave de formato necesaria" -#: InvenTree/models.py:433 +#: InvenTree/models.py:432 msgid "Reference field cannot be empty" msgstr "El campo de servidor no puede estar vacío" -#: InvenTree/models.py:441 +#: InvenTree/models.py:440 msgid "Reference must match required pattern" msgstr "La referencia debe coincidir con la expresión regular {pattern}" -#: InvenTree/models.py:472 +#: InvenTree/models.py:471 msgid "Reference number is too large" msgstr "El número de referencia es demasiado grande" -#: InvenTree/models.py:723 +#: InvenTree/models.py:722 msgid "Duplicate names cannot exist under the same parent" msgstr "Los nombres duplicados no pueden existir bajo el mismo padre" -#: InvenTree/models.py:740 +#: InvenTree/models.py:739 msgid "Invalid choice" msgstr "Selección no válida" -#: InvenTree/models.py:770 common/models.py:2702 common/models.py:3132 -#: common/serializers.py:412 company/models.py:593 machine/models.py:24 -#: part/models.py:983 part/models.py:3764 plugin/models.py:51 -#: report/models.py:149 stock/models.py:77 +#: InvenTree/models.py:769 common/models.py:2766 common/models.py:3193 +#: common/models.py:3413 common/serializers.py:460 company/models.py:590 +#: machine/models.py:24 part/models.py:1044 part/models.py:3815 +#: plugin/models.py:51 report/models.py:149 stock/models.py:83 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/notifications.html:17 #: templates/InvenTree/settings/plugin.html:83 #: templates/InvenTree/settings/plugin_settings.html:22 #: templates/InvenTree/settings/settings_staff_js.html:67 #: templates/InvenTree/settings/settings_staff_js.html:454 -#: templates/js/translated/company.js:676 -#: templates/js/translated/company.js:724 -#: templates/js/translated/company.js:913 -#: templates/js/translated/company.js:1165 -#: templates/js/translated/company.js:1413 templates/js/translated/part.js:1193 +#: templates/js/translated/company.js:677 +#: templates/js/translated/company.js:725 +#: templates/js/translated/company.js:914 +#: templates/js/translated/company.js:1166 +#: templates/js/translated/company.js:1414 templates/js/translated/part.js:1193 #: templates/js/translated/part.js:1481 templates/js/translated/part.js:1617 -#: templates/js/translated/part.js:2768 templates/js/translated/stock.js:2801 +#: templates/js/translated/part.js:2768 templates/js/translated/stock.js:2802 msgid "Name" msgstr "Nombre" -#: InvenTree/models.py:776 build/models.py:250 -#: build/templates/build/detail.html:24 common/models.py:156 -#: company/models.py:521 company/models.py:827 +#: InvenTree/models.py:775 build/models.py:251 +#: build/templates/build/detail.html:24 common/models.py:159 +#: company/models.py:518 company/models.py:824 #: company/templates/company/company_base.html:77 #: company/templates/company/manufacturer_part.html:75 -#: company/templates/company/supplier_part.html:107 order/models.py:288 -#: order/models.py:1413 part/admin.py:305 part/admin.py:411 part/models.py:1006 -#: part/models.py:3779 part/templates/part/category.html:79 -#: part/templates/part/part_base.html:170 +#: company/templates/company/supplier_part.html:108 order/models.py:295 +#: order/models.py:1430 part/admin.py:305 part/admin.py:411 part/models.py:1067 +#: part/models.py:3830 part/templates/part/category.html:79 +#: part/templates/part/part_base.html:171 #: part/templates/part/part_scheduling.html:12 report/models.py:155 -#: report/models.py:509 report/models.py:535 +#: report/models.py:517 report/models.py:543 #: report/templates/report/inventree_build_order_report.html:117 -#: stock/admin.py:54 stock/models.py:83 stock/templates/stock/location.html:122 +#: stock/admin.py:54 stock/models.py:89 stock/templates/stock/location.html:123 #: templates/InvenTree/settings/notifications.html:19 #: templates/InvenTree/settings/plugin_settings.html:27 #: templates/InvenTree/settings/settings_staff_js.html:170 #: templates/InvenTree/settings/settings_staff_js.html:459 #: templates/js/translated/bom.js:633 templates/js/translated/bom.js:963 -#: templates/js/translated/build.js:2311 templates/js/translated/company.js:519 -#: templates/js/translated/company.js:1330 -#: templates/js/translated/company.js:1641 templates/js/translated/index.js:119 +#: templates/js/translated/build.js:2314 templates/js/translated/company.js:520 +#: templates/js/translated/company.js:1331 +#: templates/js/translated/company.js:1642 templates/js/translated/index.js:119 #: templates/js/translated/order.js:323 templates/js/translated/part.js:1245 #: templates/js/translated/part.js:1490 templates/js/translated/part.js:1628 #: templates/js/translated/part.js:1965 templates/js/translated/part.js:2361 #: templates/js/translated/part.js:2803 templates/js/translated/part.js:2915 #: templates/js/translated/plugin.js:80 -#: templates/js/translated/purchase_order.js:1776 -#: templates/js/translated/purchase_order.js:1919 -#: templates/js/translated/purchase_order.js:2092 +#: templates/js/translated/purchase_order.js:1760 +#: templates/js/translated/purchase_order.js:1903 +#: templates/js/translated/purchase_order.js:2076 #: templates/js/translated/return_order.js:313 -#: templates/js/translated/sales_order.js:838 -#: templates/js/translated/sales_order.js:1848 -#: templates/js/translated/stock.js:1600 templates/js/translated/stock.js:2143 -#: templates/js/translated/stock.js:2832 templates/js/translated/stock.js:2915 +#: templates/js/translated/sales_order.js:797 +#: templates/js/translated/sales_order.js:1829 +#: templates/js/translated/stock.js:1600 templates/js/translated/stock.js:2144 +#: templates/js/translated/stock.js:2833 templates/js/translated/stock.js:2916 msgid "Description" msgstr "Descripción" -#: InvenTree/models.py:777 stock/models.py:84 +#: InvenTree/models.py:776 stock/models.py:90 msgid "Description (optional)" msgstr "Descripción (opcional)" -#: InvenTree/models.py:792 templates/js/translated/part.js:2812 -#: templates/js/translated/stock.js:2841 +#: InvenTree/models.py:791 common/models.py:3546 +#: templates/js/translated/part.js:2812 templates/js/translated/stock.js:2842 msgid "Path" msgstr "Ruta" -#: InvenTree/models.py:929 +#: InvenTree/models.py:928 msgid "Markdown notes (optional)" msgstr "Notas de Markdown (opcional)" -#: InvenTree/models.py:960 +#: InvenTree/models.py:959 msgid "Barcode Data" msgstr "Datos de código de barras" -#: InvenTree/models.py:961 +#: InvenTree/models.py:960 msgid "Third party barcode data" msgstr "Datos de código de barras de terceros" -#: InvenTree/models.py:967 +#: InvenTree/models.py:966 msgid "Barcode Hash" msgstr "Hash del Código de barras" -#: InvenTree/models.py:968 +#: InvenTree/models.py:967 msgid "Unique hash of barcode data" msgstr "Hash único de datos de código de barras" -#: InvenTree/models.py:1035 +#: InvenTree/models.py:1034 msgid "Existing barcode found" msgstr "Código de barras existente encontrado" -#: InvenTree/models.py:1078 +#: InvenTree/models.py:1112 +msgid "Task Failure" +msgstr "" + +#: InvenTree/models.py:1114 +#, python-brace-format +msgid "Background worker task '{instance.func}' failed after {n} attempts" +msgstr "" + +#: InvenTree/models.py:1142 msgid "Server Error" msgstr "Error de servidor" -#: InvenTree/models.py:1079 +#: InvenTree/models.py:1143 msgid "An error has been logged by the server." msgstr "Se ha registrado un error por el servidor." -#: InvenTree/serializers.py:63 part/models.py:4387 +#: InvenTree/serializers.py:63 part/models.py:4444 msgid "Must be a valid number" msgstr "Debe ser un número válido" -#: InvenTree/serializers.py:100 company/models.py:186 -#: company/templates/company/company_base.html:112 part/models.py:3115 +#: InvenTree/serializers.py:100 company/models.py:183 +#: company/templates/company/company_base.html:112 part/models.py:3166 #: templates/InvenTree/settings/settings_staff_js.html:44 #: templates/currency_data.html:5 msgid "Currency" @@ -532,17 +552,17 @@ msgstr "Moneda" msgid "Select currency from available options" msgstr "Seleccionar moneda de las opciones disponibles" -#: InvenTree/serializers.py:407 templates/InvenTree/settings/user.html:33 +#: InvenTree/serializers.py:405 templates/InvenTree/settings/user.html:33 msgid "Username" msgstr "Nombre de usuario" -#: InvenTree/serializers.py:409 templates/InvenTree/settings/user.html:37 +#: InvenTree/serializers.py:408 templates/InvenTree/settings/user.html:37 msgid "First Name" msgstr "Nombre" -#: InvenTree/serializers.py:409 +#: InvenTree/serializers.py:408 msgid "First name of the user" -msgstr "" +msgstr "Nombre del usuario" #: InvenTree/serializers.py:412 templates/InvenTree/settings/user.html:41 msgid "Last Name" @@ -550,32 +570,32 @@ msgstr "Apellido" #: InvenTree/serializers.py:412 msgid "Last name of the user" -msgstr "" +msgstr "Apellido del usuario" -#: InvenTree/serializers.py:415 +#: InvenTree/serializers.py:416 msgid "Email address of the user" -msgstr "" +msgstr "Dirección de correo del usuario" -#: InvenTree/serializers.py:439 +#: InvenTree/serializers.py:441 msgid "Staff" -msgstr "" +msgstr "Personal" -#: InvenTree/serializers.py:439 +#: InvenTree/serializers.py:441 msgid "Does this user have staff permissions" -msgstr "" +msgstr "Tiene este usuario permisos de personal" -#: InvenTree/serializers.py:442 +#: InvenTree/serializers.py:445 msgid "Superuser" -msgstr "" +msgstr "Superusuario" -#: InvenTree/serializers.py:442 +#: InvenTree/serializers.py:445 msgid "Is this user a superuser" -msgstr "" +msgstr "Es este usuario un superusuario" -#: InvenTree/serializers.py:445 common/models.py:2707 company/models.py:163 -#: company/models.py:801 machine/models.py:39 part/admin.py:88 -#: part/models.py:1189 plugin/models.py:66 -#: templates/js/translated/company.js:523 +#: InvenTree/serializers.py:449 common/models.py:2771 company/models.py:160 +#: company/models.py:798 machine/models.py:39 part/admin.py:88 +#: part/models.py:1250 plugin/models.py:66 +#: templates/js/translated/company.js:524 #: templates/js/translated/table_filters.js:134 #: templates/js/translated/table_filters.js:226 #: templates/js/translated/table_filters.js:513 @@ -585,230 +605,229 @@ msgstr "" msgid "Active" msgstr "Activo" -#: InvenTree/serializers.py:445 +#: InvenTree/serializers.py:449 msgid "Is this user account active" -msgstr "" +msgstr "Esta cuenta de usuario está activa" -#: InvenTree/serializers.py:463 +#: InvenTree/serializers.py:467 msgid "You do not have permission to change this user role." msgstr "No tiene permiso para cambiar este rol de usuario." -#: InvenTree/serializers.py:475 +#: InvenTree/serializers.py:503 msgid "Only superusers can create new users" msgstr "Solo los superusuarios pueden crear nuevos usuarios" -#: InvenTree/serializers.py:494 +#: InvenTree/serializers.py:523 msgid "Your account has been created." msgstr "Su cuenta ha sido creada." -#: InvenTree/serializers.py:496 +#: InvenTree/serializers.py:525 msgid "Please use the password reset function to login" -msgstr "" +msgstr "Por favor, utilice la función de restablecer la contraseña para iniciar sesión" -#: InvenTree/serializers.py:503 +#: InvenTree/serializers.py:531 msgid "Welcome to InvenTree" msgstr "Bienvenido a InvenTree" -#: InvenTree/serializers.py:561 +#: InvenTree/serializers.py:594 msgid "Invalid value" msgstr "Valor inválido" -#: InvenTree/serializers.py:581 importer/models.py:63 +#: InvenTree/serializers.py:614 importer/models.py:64 msgid "Data File" msgstr "Archivo de datos" -#: InvenTree/serializers.py:582 +#: InvenTree/serializers.py:615 msgid "Select data file for upload" msgstr "Seleccione el archivo para subir" -#: InvenTree/serializers.py:599 -msgid "Unsupported file type" -msgstr "Tipo de archivo no soportado" +#: InvenTree/serializers.py:632 common/files.py:63 +msgid "Unsupported file format" +msgstr "" -#: InvenTree/serializers.py:605 +#: InvenTree/serializers.py:638 msgid "File is too large" msgstr "El archivo es demasiado grande" -#: InvenTree/serializers.py:626 +#: InvenTree/serializers.py:659 msgid "No columns found in file" msgstr "No hay columnas en el archivo" -#: InvenTree/serializers.py:629 +#: InvenTree/serializers.py:662 msgid "No data rows found in file" msgstr "No hay filas de datos en el archivo" -#: InvenTree/serializers.py:742 +#: InvenTree/serializers.py:774 msgid "No data rows provided" msgstr "No se proporcionaron filas de datos" -#: InvenTree/serializers.py:745 +#: InvenTree/serializers.py:777 msgid "No data columns supplied" msgstr "No hay columnas de datos proporcionadas" -#: InvenTree/serializers.py:812 +#: InvenTree/serializers.py:843 #, python-brace-format msgid "Missing required column: '{name}'" msgstr "Falta la columna requerida: '{name}'" -#: InvenTree/serializers.py:821 +#: InvenTree/serializers.py:852 #, python-brace-format msgid "Duplicate column: '{col}'" msgstr "Columna duplicada: '{col}'" -#: InvenTree/serializers.py:861 +#: InvenTree/serializers.py:891 msgid "Remote Image" msgstr "Imagen remota" -#: InvenTree/serializers.py:862 +#: InvenTree/serializers.py:892 msgid "URL of remote image file" msgstr "URL de imagen remota" -#: InvenTree/serializers.py:880 +#: InvenTree/serializers.py:910 msgid "Downloading images from remote URL is not enabled" msgstr "La descarga de imágenes desde la URL remota no está habilitada" -#: InvenTree/status.py:66 part/serializers.py:1246 -msgid "Background worker check failed" -msgstr "Falló la comprobación en segundo plano del worker" - -#: InvenTree/status.py:70 -msgid "Email backend not configured" -msgstr "No se ha configurado el backend de correo" - -#: InvenTree/status.py:73 -msgid "InvenTree system health checks failed" -msgstr "Las comprobaciones de estado del sistema InvenTree fallaron" +#: InvenTree/serializers.py:917 +msgid "Failed to download image from remote URL" +msgstr "" #: InvenTree/templatetags/inventree_extras.py:184 msgid "Unknown database" msgstr "Base de datos desconocida" -#: InvenTree/validators.py:32 InvenTree/validators.py:34 +#: InvenTree/validators.py:32 msgid "Invalid physical unit" msgstr "Unidad física inválida" -#: InvenTree/validators.py:40 +#: InvenTree/validators.py:38 msgid "Not a valid currency code" msgstr "No es un código de moneda válido" -#: InvenTree/validators.py:118 InvenTree/validators.py:134 +#: InvenTree/validators.py:115 InvenTree/validators.py:131 msgid "Overage value must not be negative" msgstr "El valor excedente no debe ser negativo" -#: InvenTree/validators.py:136 +#: InvenTree/validators.py:133 msgid "Overage must not exceed 100%" msgstr "El excedente no debe superar el 100%" -#: InvenTree/validators.py:142 +#: InvenTree/validators.py:139 msgid "Invalid value for overage" msgstr "Valor no válido para sobrecarga" -#: InvenTree/views.py:400 templates/InvenTree/settings/user.html:23 +#: InvenTree/views.py:399 templates/InvenTree/settings/user.html:23 msgid "Edit User Information" msgstr "Editar datos del usuario" -#: InvenTree/views.py:412 templates/InvenTree/settings/user.html:20 +#: InvenTree/views.py:411 templates/InvenTree/settings/user.html:20 msgid "Set Password" msgstr "Configurar contraseña" -#: InvenTree/views.py:434 +#: InvenTree/views.py:433 msgid "Password fields must match" msgstr "Los campos de contraseña deben coincidir" -#: InvenTree/views.py:442 +#: InvenTree/views.py:441 msgid "Wrong password provided" msgstr "Contraseña incorrecta proporcionada" -#: InvenTree/views.py:650 templates/navbar.html:160 +#: InvenTree/views.py:645 templates/navbar.html:160 msgid "System Information" msgstr "Información del sistema" -#: InvenTree/views.py:657 templates/navbar.html:171 +#: InvenTree/views.py:652 templates/navbar.html:171 msgid "About InvenTree" msgstr "Acerca de InvenTree" -#: build/api.py:51 part/api.py:156 stock/api.py:343 -msgid "Cascade" -msgstr "" - -#: build/api.py:64 build/models.py:261 -#: build/templates/build/build_base.html:191 +#: build/api.py:54 build/models.py:262 +#: build/templates/build/build_base.html:192 #: build/templates/build/detail.html:87 msgid "Parent Build" msgstr "Construcción o Armado Superior" -#: build/api.py:89 order/api.py:92 templates/js/translated/table_filters.js:101 +#: build/api.py:58 build/api.py:625 order/api.py:396 order/api.py:611 +#: order/api.py:990 order/api.py:1187 +#: templates/js/translated/table_filters.js:372 +msgid "Include Variants" +msgstr "" + +#: build/api.py:93 +msgid "Ancestor Build" +msgstr "" + +#: build/api.py:112 order/api.py:90 +#: templates/js/translated/table_filters.js:101 #: templates/js/translated/table_filters.js:549 #: templates/js/translated/table_filters.js:633 #: templates/js/translated/table_filters.js:674 msgid "Assigned to me" -msgstr "" +msgstr "Asignado a mí" -#: build/api.py:106 build/templates/build/build_base.html:205 +#: build/api.py:129 build/templates/build/build_base.html:206 #: build/templates/build/detail.html:115 #: report/templates/report/inventree_build_order_report.html:152 #: templates/js/translated/table_filters.js:552 msgid "Issued By" msgstr "Emitido por" -#: build/api.py:125 +#: build/api.py:148 msgid "Assigned To" -msgstr "" +msgstr "Asignadas a" -#: build/api.py:301 +#: build/api.py:310 msgid "Build must be cancelled before it can be deleted" msgstr "La compilación debe cancelarse antes de poder ser eliminada" -#: build/api.py:345 build/serializers.py:1288 part/models.py:4265 +#: build/api.py:354 build/serializers.py:1342 part/models.py:4322 #: templates/js/translated/bom.js:997 templates/js/translated/bom.js:1037 -#: templates/js/translated/build.js:2702 +#: templates/js/translated/build.js:2711 #: templates/js/translated/table_filters.js:197 #: templates/js/translated/table_filters.js:586 msgid "Consumable" msgstr "Consumible" -#: build/api.py:346 build/serializers.py:1289 part/models.py:4259 +#: build/api.py:355 build/serializers.py:1343 part/models.py:4316 #: part/templates/part/upload_bom.html:58 templates/js/translated/bom.js:1001 -#: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2693 +#: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2702 #: templates/js/translated/table_filters.js:193 #: templates/js/translated/table_filters.js:222 #: templates/js/translated/table_filters.js:590 msgid "Optional" msgstr "Opcional" -#: build/api.py:347 common/models.py:1489 part/admin.py:91 part/admin.py:428 -#: part/models.py:1154 part/serializers.py:1575 +#: build/api.py:356 common/models.py:1558 part/admin.py:91 part/admin.py:428 +#: part/models.py:1215 part/serializers.py:1633 #: templates/js/translated/bom.js:1639 #: templates/js/translated/table_filters.js:337 #: templates/js/translated/table_filters.js:729 msgid "Assembly" msgstr "Montaje" -#: build/api.py:348 templates/js/translated/table_filters.js:415 +#: build/api.py:357 templates/js/translated/table_filters.js:415 #: templates/js/translated/table_filters.js:582 msgid "Tracked" msgstr "Rastreado" -#: build/api.py:349 build/serializers.py:1290 part/models.py:1172 +#: build/api.py:358 build/serializers.py:1344 part/models.py:1233 #: templates/js/translated/table_filters.js:146 #: templates/js/translated/table_filters.js:779 msgid "Testable" -msgstr "" +msgstr "Comprobable" -#: build/api.py:351 part/admin.py:144 templates/js/translated/build.js:1917 -#: templates/js/translated/build.js:2820 -#: templates/js/translated/sales_order.js:1965 +#: build/api.py:360 order/api.py:779 part/admin.py:144 +#: templates/js/translated/build.js:1920 templates/js/translated/build.js:2838 +#: templates/js/translated/sales_order.js:1946 #: templates/js/translated/table_filters.js:574 msgid "Allocated" msgstr "Asignadas" -#: build/api.py:359 company/models.py:891 company/serializers.py:395 -#: company/templates/company/supplier_part.html:114 +#: build/api.py:368 company/models.py:888 company/serializers.py:399 +#: company/templates/company/supplier_part.html:115 #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:17 -#: templates/js/translated/bom.js:1162 templates/js/translated/build.js:2752 +#: templates/js/translated/bom.js:1162 templates/js/translated/build.js:2770 #: templates/js/translated/index.js:123 -#: templates/js/translated/model_renderers.js:235 +#: templates/js/translated/model_renderers.js:238 #: templates/js/translated/part.js:695 templates/js/translated/part.js:697 #: templates/js/translated/part.js:702 #: templates/js/translated/table_filters.js:347 @@ -816,16 +835,68 @@ msgstr "Asignadas" msgid "Available" msgstr "Disponible" -#: build/models.py:86 build/templates/build/build_base.html:9 -#: build/templates/build/build_base.html:27 +#: build/api.py:640 build/models.py:268 build/serializers.py:1330 +#: build/templates/build/build_base.html:106 +#: build/templates/build/detail.html:29 company/models.py:1043 order/api.py:775 +#: order/api.py:1003 order/models.py:1519 order/models.py:1674 +#: order/models.py:1675 part/api.py:1495 part/api.py:1802 part/models.py:419 +#: part/models.py:3177 part/models.py:3321 part/models.py:3469 +#: part/models.py:3490 part/models.py:3512 part/models.py:3648 +#: part/models.py:3995 part/models.py:4158 part/models.py:4288 +#: part/models.py:4654 part/serializers.py:1245 part/serializers.py:1898 +#: part/templates/part/part_app_base.html:8 +#: part/templates/part/part_pricing.html:12 +#: part/templates/part/upload_bom.html:52 +#: report/templates/report/inventree_bill_of_materials_report.html:110 +#: report/templates/report/inventree_bill_of_materials_report.html:137 +#: report/templates/report/inventree_build_order_report.html:109 +#: report/templates/report/inventree_purchase_order_report.html:27 +#: report/templates/report/inventree_return_order_report.html:24 +#: report/templates/report/inventree_sales_order_report.html:27 +#: report/templates/report/inventree_sales_order_shipment_report.html:28 +#: report/templates/report/inventree_stock_location_report.html:102 +#: stock/serializers.py:112 stock/serializers.py:160 stock/serializers.py:456 +#: stock/serializers.py:947 templates/InvenTree/search.html:82 +#: templates/email/build_order_completed.html:17 +#: templates/email/build_order_required_stock.html:17 +#: templates/email/low_stock_notification.html:15 +#: templates/email/overdue_build_order.html:16 +#: templates/js/translated/barcode.js:577 templates/js/translated/bom.js:632 +#: templates/js/translated/bom.js:769 templates/js/translated/bom.js:905 +#: templates/js/translated/build.js:1005 templates/js/translated/build.js:1488 +#: templates/js/translated/build.js:1919 templates/js/translated/build.js:2337 +#: templates/js/translated/build.js:2514 templates/js/translated/company.js:349 +#: templates/js/translated/company.js:1117 +#: templates/js/translated/company.js:1272 +#: templates/js/translated/company.js:1560 templates/js/translated/index.js:109 +#: templates/js/translated/part.js:1950 templates/js/translated/part.js:2022 +#: templates/js/translated/part.js:2330 templates/js/translated/pricing.js:369 +#: templates/js/translated/purchase_order.js:734 +#: templates/js/translated/purchase_order.js:1350 +#: templates/js/translated/purchase_order.js:1902 +#: templates/js/translated/purchase_order.js:2061 +#: templates/js/translated/return_order.js:538 +#: templates/js/translated/return_order.js:708 +#: templates/js/translated/sales_order.js:1199 +#: templates/js/translated/sales_order.js:1608 +#: templates/js/translated/sales_order.js:1813 +#: templates/js/translated/stock.js:682 templates/js/translated/stock.js:848 +#: templates/js/translated/stock.js:1065 templates/js/translated/stock.js:2083 +#: templates/js/translated/stock.js:2942 templates/js/translated/stock.js:3175 +#: templates/js/translated/stock.js:3320 +msgid "Part" +msgstr "Parte" + +#: build/api.py:662 build/models.py:88 build/templates/build/build_base.html:10 +#: build/templates/build/build_base.html:28 #: report/templates/report/inventree_build_order_report.html:105 -#: stock/serializers.py:84 templates/email/build_order_completed.html:16 +#: stock/serializers.py:85 templates/email/build_order_completed.html:16 #: templates/email/overdue_build_order.html:15 -#: templates/js/translated/build.js:1145 templates/js/translated/stock.js:2976 +#: templates/js/translated/build.js:1148 templates/js/translated/stock.js:2977 msgid "Build Order" msgstr "Construir órden" -#: build/models.py:87 build/templates/build/build_base.html:13 +#: build/models.py:89 build/templates/build/build_base.html:14 #: build/templates/build/index.html:8 build/templates/build/index.html:12 #: order/templates/order/sales_order_detail.html:111 #: order/templates/order/so_sidebar.html:13 @@ -836,270 +907,218 @@ msgstr "Construir órden" msgid "Build Orders" msgstr "Construir órdenes" -#: build/models.py:135 +#: build/models.py:136 msgid "Assembly BOM has not been validated" -msgstr "" +msgstr "BOM de ensamblado no ha sido validado" -#: build/models.py:142 +#: build/models.py:143 msgid "Build order cannot be created for an inactive part" -msgstr "" +msgstr "La orden de construcción no puede ser creado para una parte inactiva" -#: build/models.py:149 +#: build/models.py:150 msgid "Build order cannot be created for an unlocked part" -msgstr "" +msgstr "La orden de construcción no puede ser creada para una parte desbloqueada" -#: build/models.py:163 +#: build/models.py:164 msgid "Invalid choice for parent build" msgstr "Opción no válida para la construcción padre" -#: build/models.py:174 order/models.py:239 +#: build/models.py:175 order/models.py:236 msgid "Responsible user or group must be specified" -msgstr "" +msgstr "Se debe especificar un usuario o grupo responsable" -#: build/models.py:180 +#: build/models.py:181 msgid "Build order part cannot be changed" msgstr "La parte del pedido de construcción no puede ser modificada" -#: build/models.py:241 +#: build/models.py:242 msgid "Build Order Reference" msgstr "Número de orden de construcción o armado" -#: build/models.py:242 build/serializers.py:1287 order/models.py:467 -#: order/models.py:978 order/models.py:1373 order/models.py:2135 -#: part/admin.py:414 part/models.py:4280 part/templates/part/upload_bom.html:54 +#: build/models.py:243 build/serializers.py:1341 order/models.py:479 +#: order/models.py:1005 order/models.py:1390 order/models.py:2174 +#: part/admin.py:414 part/models.py:4337 part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_bill_of_materials_report.html:139 #: report/templates/report/inventree_purchase_order_report.html:28 #: report/templates/report/inventree_return_order_report.html:26 #: report/templates/report/inventree_sales_order_report.html:28 #: templates/js/translated/bom.js:770 templates/js/translated/bom.js:973 -#: templates/js/translated/build.js:1011 templates/js/translated/build.js:2685 +#: templates/js/translated/build.js:1014 templates/js/translated/build.js:2694 #: templates/js/translated/order.js:316 templates/js/translated/pricing.js:386 -#: templates/js/translated/purchase_order.js:2135 +#: templates/js/translated/purchase_order.js:2119 #: templates/js/translated/return_order.js:727 -#: templates/js/translated/sales_order.js:1854 +#: templates/js/translated/sales_order.js:1835 msgid "Reference" msgstr "Referencia" -#: build/models.py:253 +#: build/models.py:254 msgid "Brief description of the build (optional)" msgstr "Breve descripción de la construcción (opcional)" -#: build/models.py:262 +#: build/models.py:263 msgid "BuildOrder to which this build is allocated" msgstr "Orden de Construcción o Armado a la que se asigna" -#: build/models.py:267 build/serializers.py:1278 -#: build/templates/build/build_base.html:105 -#: build/templates/build/detail.html:29 company/models.py:1046 order/api.py:767 -#: order/models.py:1503 order/models.py:1658 order/models.py:1659 -#: part/api.py:1509 part/api.py:1813 part/models.py:424 part/models.py:3126 -#: part/models.py:3270 part/models.py:3418 part/models.py:3439 -#: part/models.py:3461 part/models.py:3597 part/models.py:3937 -#: part/models.py:4100 part/models.py:4231 part/models.py:4592 -#: part/serializers.py:1192 part/serializers.py:1836 -#: part/templates/part/part_app_base.html:8 -#: part/templates/part/part_pricing.html:12 -#: part/templates/part/upload_bom.html:52 -#: report/templates/report/inventree_bill_of_materials_report.html:110 -#: report/templates/report/inventree_bill_of_materials_report.html:137 -#: report/templates/report/inventree_build_order_report.html:109 -#: report/templates/report/inventree_purchase_order_report.html:27 -#: report/templates/report/inventree_return_order_report.html:24 -#: report/templates/report/inventree_sales_order_report.html:27 -#: report/templates/report/inventree_stock_location_report.html:102 -#: stock/serializers.py:111 stock/serializers.py:159 stock/serializers.py:446 -#: stock/serializers.py:916 templates/InvenTree/search.html:82 -#: templates/email/build_order_completed.html:17 -#: templates/email/build_order_required_stock.html:17 -#: templates/email/low_stock_notification.html:15 -#: templates/email/overdue_build_order.html:16 -#: templates/js/translated/barcode.js:577 templates/js/translated/bom.js:632 -#: templates/js/translated/bom.js:769 templates/js/translated/bom.js:905 -#: templates/js/translated/build.js:1002 templates/js/translated/build.js:1485 -#: templates/js/translated/build.js:1916 templates/js/translated/build.js:2334 -#: templates/js/translated/build.js:2507 templates/js/translated/company.js:348 -#: templates/js/translated/company.js:1116 -#: templates/js/translated/company.js:1271 -#: templates/js/translated/company.js:1559 templates/js/translated/index.js:109 -#: templates/js/translated/part.js:1950 templates/js/translated/part.js:2022 -#: templates/js/translated/part.js:2330 templates/js/translated/pricing.js:369 -#: templates/js/translated/purchase_order.js:751 -#: templates/js/translated/purchase_order.js:1367 -#: templates/js/translated/purchase_order.js:1918 -#: templates/js/translated/purchase_order.js:2077 -#: templates/js/translated/return_order.js:538 -#: templates/js/translated/return_order.js:708 -#: templates/js/translated/sales_order.js:300 -#: templates/js/translated/sales_order.js:1233 -#: templates/js/translated/sales_order.js:1634 -#: templates/js/translated/sales_order.js:1832 -#: templates/js/translated/stock.js:682 templates/js/translated/stock.js:848 -#: templates/js/translated/stock.js:1065 templates/js/translated/stock.js:2082 -#: templates/js/translated/stock.js:2941 templates/js/translated/stock.js:3174 -#: templates/js/translated/stock.js:3319 -msgid "Part" -msgstr "Parte" - -#: build/models.py:275 +#: build/models.py:274 msgid "Select part to build" msgstr "Seleccionar parte a construir o armar" -#: build/models.py:280 +#: build/models.py:279 msgid "Sales Order Reference" msgstr "Referencia de orden de venta" -#: build/models.py:284 +#: build/models.py:283 msgid "SalesOrder to which this build is allocated" msgstr "Orden de Venta a la que se asigna" -#: build/models.py:289 build/serializers.py:1048 -#: templates/js/translated/build.js:1904 -#: templates/js/translated/sales_order.js:1221 +#: build/models.py:288 build/serializers.py:1092 +#: templates/js/translated/build.js:1907 +#: templates/js/translated/sales_order.js:1187 msgid "Source Location" msgstr "Ubicación de la fuente" -#: build/models.py:293 +#: build/models.py:292 msgid "Select location to take stock from for this build (leave blank to take from any stock location)" msgstr "Seleccione la ubicación de donde tomar stock para esta construcción o armado (deje en blanco para tomar desde cualquier ubicación)" -#: build/models.py:298 +#: build/models.py:297 msgid "Destination Location" msgstr "Ubicación de destino" -#: build/models.py:302 +#: build/models.py:301 msgid "Select location where the completed items will be stored" msgstr "Seleccione la ubicación donde se almacenarán los artículos completados" -#: build/models.py:306 +#: build/models.py:305 msgid "Build Quantity" msgstr "Cantidad a crear" -#: build/models.py:309 +#: build/models.py:308 msgid "Number of stock items to build" msgstr "Número de objetos existentes a construir" -#: build/models.py:313 +#: build/models.py:312 msgid "Completed items" msgstr "Elementos completados" -#: build/models.py:315 +#: build/models.py:314 msgid "Number of stock items which have been completed" msgstr "Número de productos en stock que se han completado" -#: build/models.py:319 +#: build/models.py:318 msgid "Build Status" msgstr "Estado de la construcción" -#: build/models.py:323 +#: build/models.py:322 msgid "Build status code" msgstr "Código de estado de construcción" -#: build/models.py:332 build/serializers.py:302 build/serializers.py:1198 -#: order/serializers.py:670 stock/models.py:859 stock/serializers.py:76 -#: stock/serializers.py:1562 templates/js/translated/purchase_order.js:1129 +#: build/models.py:331 build/serializers.py:349 build/serializers.py:1243 +#: order/serializers.py:755 stock/models.py:936 stock/serializers.py:77 +#: stock/serializers.py:1593 templates/js/translated/purchase_order.js:1112 #: templates/js/translated/stock.js:1199 msgid "Batch Code" msgstr "Numero de lote" -#: build/models.py:336 build/serializers.py:303 +#: build/models.py:335 build/serializers.py:350 msgid "Batch code for this build output" msgstr "Número de lote de este producto final" -#: build/models.py:339 order/models.py:315 order/serializers.py:126 -#: part/models.py:1229 part/templates/part/part_base.html:319 +#: build/models.py:338 order/models.py:322 order/serializers.py:157 +#: part/models.py:1290 part/templates/part/part_base.html:327 #: templates/js/translated/return_order.js:338 -#: templates/js/translated/sales_order.js:863 +#: templates/js/translated/sales_order.js:822 msgid "Creation Date" msgstr "Fecha de Creación" -#: build/models.py:343 +#: build/models.py:342 msgid "Target completion date" msgstr "Fecha límite de finalización" -#: build/models.py:344 +#: build/models.py:343 msgid "Target date for build completion. Build will be overdue after this date." msgstr "Fecha límite para la finalización de la construcción. La construcción estará vencida después de esta fecha." -#: build/models.py:347 order/models.py:526 order/models.py:2180 -#: templates/js/translated/build.js:2419 +#: build/models.py:346 order/models.py:538 order/models.py:2219 +#: templates/js/translated/build.js:2422 msgid "Completion Date" msgstr "Fecha de finalización" -#: build/models.py:353 +#: build/models.py:352 msgid "completed by" msgstr "terminado por" -#: build/models.py:361 templates/js/translated/build.js:2379 +#: build/models.py:360 templates/js/translated/build.js:2382 msgid "Issued by" msgstr "Emitido por" -#: build/models.py:362 +#: build/models.py:361 msgid "User who issued this build order" msgstr "El usuario que emitió esta orden" -#: build/models.py:370 build/templates/build/build_base.html:212 -#: build/templates/build/detail.html:122 common/models.py:165 order/api.py:142 -#: order/models.py:333 order/templates/order/order_base.html:222 -#: order/templates/order/return_order_base.html:191 -#: order/templates/order/sales_order_base.html:235 part/models.py:1246 -#: part/templates/part/part_base.html:399 +#: build/models.py:369 build/templates/build/build_base.html:213 +#: build/templates/build/detail.html:122 common/models.py:168 order/api.py:140 +#: order/models.py:340 order/templates/order/order_base.html:231 +#: order/templates/order/return_order_base.html:192 +#: order/templates/order/sales_order_base.html:236 part/models.py:1307 +#: part/templates/part/part_base.html:407 #: report/templates/report/inventree_build_order_report.html:158 #: templates/InvenTree/settings/settings_staff_js.html:150 -#: templates/js/translated/build.js:2391 -#: templates/js/translated/purchase_order.js:1833 +#: templates/js/translated/build.js:2394 +#: templates/js/translated/purchase_order.js:1817 #: templates/js/translated/return_order.js:358 #: templates/js/translated/table_filters.js:551 msgid "Responsible" msgstr "Responsable" -#: build/models.py:371 +#: build/models.py:370 msgid "User or group responsible for this build order" msgstr "Usuario o grupo responsable de esta orden de construcción" -#: build/models.py:376 build/templates/build/detail.html:108 +#: build/models.py:375 build/templates/build/detail.html:108 #: company/templates/company/manufacturer_part.html:107 -#: company/templates/company/supplier_part.html:194 -#: order/templates/order/order_base.html:172 -#: order/templates/order/return_order_base.html:148 -#: order/templates/order/sales_order_base.html:187 -#: part/templates/part/part_base.html:392 stock/models.py:855 -#: stock/templates/stock/item_base.html:200 -#: templates/js/translated/company.js:1019 +#: company/templates/company/supplier_part.html:195 +#: order/templates/order/order_base.html:181 +#: order/templates/order/return_order_base.html:149 +#: order/templates/order/sales_order_base.html:188 +#: part/templates/part/part_base.html:400 stock/models.py:932 +#: stock/templates/stock/item_base.html:197 +#: templates/js/translated/company.js:1020 msgid "External Link" msgstr "Link externo" -#: build/models.py:377 common/models.py:3273 part/models.py:1058 -#: stock/models.py:855 +#: build/models.py:376 common/models.py:3334 part/models.py:1119 +#: stock/models.py:932 msgid "Link to external URL" msgstr "Enlace a URL externa" -#: build/models.py:381 +#: build/models.py:380 msgid "Build Priority" msgstr "Prioridad de construcción" -#: build/models.py:384 +#: build/models.py:383 msgid "Priority of this build order" msgstr "Prioridad de esta orden de construcción" -#: build/models.py:391 common/models.py:135 common/models.py:149 -#: order/admin.py:18 order/api.py:128 order/models.py:297 +#: build/models.py:390 common/models.py:138 common/models.py:152 +#: order/admin.py:18 order/api.py:126 order/models.py:304 #: templates/InvenTree/settings/settings_staff_js.html:146 -#: templates/js/translated/build.js:2316 -#: templates/js/translated/purchase_order.js:1780 +#: templates/js/translated/build.js:2319 +#: templates/js/translated/purchase_order.js:1764 #: templates/js/translated/return_order.js:317 -#: templates/js/translated/sales_order.js:842 +#: templates/js/translated/sales_order.js:801 #: templates/js/translated/table_filters.js:47 #: templates/project_code_data.html:6 msgid "Project Code" msgstr "Código del proyecto" -#: build/models.py:392 +#: build/models.py:391 msgid "Project code for this build order" msgstr "Código de proyecto para esta orden de ensamble" -#: build/models.py:651 build/models.py:778 +#: build/models.py:651 build/models.py:779 msgid "Failed to offload task to complete build allocations" -msgstr "" +msgstr "No se pudo descargar la tarea para completar las asignaciones de construcción" #: build/models.py:673 #, python-brace-format @@ -1110,610 +1129,619 @@ msgstr "El pedido {build} ha sido procesado" msgid "A build order has been completed" msgstr "Pedido #[order] ha sido procesado" -#: build/models.py:967 build/models.py:1055 +#: build/models.py:858 build/serializers.py:393 +msgid "Serial numbers must be provided for trackable parts" +msgstr "Los números de serie deben ser proporcionados para las partes rastreables" + +#: build/models.py:969 build/models.py:1058 msgid "No build output specified" msgstr "No se ha especificado salida de construcción" -#: build/models.py:970 +#: build/models.py:972 msgid "Build output is already completed" msgstr "La construcción de la salida ya está completa" -#: build/models.py:973 +#: build/models.py:975 msgid "Build output does not match Build Order" msgstr "La salida de la construcción no coincide con el orden de construcción" -#: build/models.py:1059 build/serializers.py:235 build/serializers.py:284 -#: build/serializers.py:915 order/models.py:564 order/serializers.py:499 -#: order/serializers.py:665 part/serializers.py:1569 part/serializers.py:1999 -#: stock/models.py:700 stock/models.py:1520 stock/serializers.py:669 +#: build/models.py:1062 build/serializers.py:282 build/serializers.py:331 +#: build/serializers.py:959 order/models.py:586 order/serializers.py:584 +#: order/serializers.py:750 part/serializers.py:1627 part/serializers.py:2060 +#: stock/models.py:777 stock/models.py:1609 stock/serializers.py:696 msgid "Quantity must be greater than zero" msgstr "La cantidad debe ser mayor que cero" -#: build/models.py:1064 build/serializers.py:240 +#: build/models.py:1067 build/serializers.py:287 msgid "Quantity cannot be greater than the output quantity" msgstr "La cantidad no puede ser mayor que la cantidad de salida" -#: build/models.py:1124 build/serializers.py:563 +#: build/models.py:1127 build/serializers.py:607 #, python-brace-format msgid "Build output {serial} has not passed all required tests" -msgstr "" +msgstr "La construcción {serial} no ha pasado todas las pruebas requeridas" -#: build/models.py:1465 +#: build/models.py:1482 msgid "Build Order Line Item" -msgstr "" +msgstr "Construir línea de pedido" -#: build/models.py:1490 +#: build/models.py:1507 msgid "Build object" msgstr "Ensamblar equipo" -#: build/models.py:1504 build/models.py:1760 build/serializers.py:222 -#: build/serializers.py:269 build/serializers.py:1295 -#: build/templates/build/build_base.html:110 -#: build/templates/build/detail.html:34 common/models.py:2579 -#: order/models.py:1356 order/models.py:2041 order/serializers.py:1460 +#: build/models.py:1521 build/models.py:1787 build/serializers.py:269 +#: build/serializers.py:316 build/serializers.py:1349 +#: build/templates/build/build_base.html:111 +#: build/templates/build/detail.html:34 common/models.py:2643 +#: order/models.py:1373 order/models.py:2074 order/serializers.py:1586 #: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:413 -#: part/forms.py:48 part/models.py:3284 part/models.py:4253 -#: part/templates/part/part_pricing.html:16 +#: part/forms.py:48 part/models.py:3335 part/models.py:4310 +#: part/serializers.py:265 part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_bill_of_materials_report.html:138 #: report/templates/report/inventree_build_order_report.html:113 #: report/templates/report/inventree_purchase_order_report.html:29 #: report/templates/report/inventree_sales_order_report.html:29 +#: report/templates/report/inventree_sales_order_shipment_report.html:47 +#: report/templates/report/inventree_sales_order_shipment_report.html:49 #: report/templates/report/inventree_stock_location_report.html:104 #: report/templates/report/inventree_test_report.html:90 -#: report/templates/report/inventree_test_report.html:169 stock/admin.py:159 -#: stock/serializers.py:127 stock/serializers.py:167 stock/serializers.py:660 -#: stock/templates/stock/item_base.html:287 -#: stock/templates/stock/item_base.html:295 -#: stock/templates/stock/item_base.html:342 +#: report/templates/report/inventree_test_report.html:169 stock/admin.py:160 +#: stock/serializers.py:128 stock/serializers.py:168 stock/serializers.py:687 +#: stock/templates/stock/item_base.html:284 +#: stock/templates/stock/item_base.html:292 +#: stock/templates/stock/item_base.html:339 #: templates/email/build_order_completed.html:18 #: templates/js/translated/barcode.js:579 templates/js/translated/bom.js:771 -#: templates/js/translated/bom.js:981 templates/js/translated/build.js:522 -#: templates/js/translated/build.js:737 templates/js/translated/build.js:1542 -#: templates/js/translated/build.js:1919 templates/js/translated/build.js:2529 -#: templates/js/translated/company.js:1818 -#: templates/js/translated/model_renderers.js:237 +#: templates/js/translated/bom.js:981 templates/js/translated/build.js:525 +#: templates/js/translated/build.js:740 templates/js/translated/build.js:1545 +#: templates/js/translated/build.js:1922 templates/js/translated/build.js:2536 +#: templates/js/translated/company.js:1819 +#: templates/js/translated/model_renderers.js:240 #: templates/js/translated/order.js:329 templates/js/translated/part.js:968 -#: templates/js/translated/part.js:1818 templates/js/translated/part.js:3360 +#: templates/js/translated/part.js:1818 templates/js/translated/part.js:3376 #: templates/js/translated/pricing.js:381 #: templates/js/translated/pricing.js:474 #: templates/js/translated/pricing.js:522 #: templates/js/translated/pricing.js:616 -#: templates/js/translated/purchase_order.js:754 -#: templates/js/translated/purchase_order.js:1922 -#: templates/js/translated/purchase_order.js:2141 -#: templates/js/translated/sales_order.js:317 -#: templates/js/translated/sales_order.js:1235 -#: templates/js/translated/sales_order.js:1554 -#: templates/js/translated/sales_order.js:1644 -#: templates/js/translated/sales_order.js:1734 -#: templates/js/translated/sales_order.js:1860 +#: templates/js/translated/purchase_order.js:737 +#: templates/js/translated/purchase_order.js:1906 +#: templates/js/translated/purchase_order.js:2125 +#: templates/js/translated/sales_order.js:1201 +#: templates/js/translated/sales_order.js:1520 +#: templates/js/translated/sales_order.js:1625 +#: templates/js/translated/sales_order.js:1715 +#: templates/js/translated/sales_order.js:1841 #: templates/js/translated/stock.js:570 templates/js/translated/stock.js:708 -#: templates/js/translated/stock.js:879 templates/js/translated/stock.js:3105 -#: templates/js/translated/stock.js:3188 +#: templates/js/translated/stock.js:879 templates/js/translated/stock.js:3106 +#: templates/js/translated/stock.js:3189 msgid "Quantity" msgstr "Cantidad" -#: build/models.py:1505 +#: build/models.py:1522 msgid "Required quantity for build order" msgstr "Cantidad requerida para orden de ensamble" -#: build/models.py:1585 +#: build/models.py:1602 msgid "Build item must specify a build output, as master part is marked as trackable" msgstr "Item de construcción o armado debe especificar un resultado o salida, ya que la parte maestra está marcada como rastreable" -#: build/models.py:1594 +#: build/models.py:1611 #, python-brace-format msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgstr "Cantidad asignada ({q}) no debe exceder la cantidad disponible de stock ({a})" -#: build/models.py:1604 order/models.py:1992 +#: build/models.py:1628 order/models.py:2025 msgid "Stock item is over-allocated" msgstr "Artículo de stock sobreasignado" -#: build/models.py:1610 order/models.py:1995 +#: build/models.py:1634 order/models.py:2028 msgid "Allocation quantity must be greater than zero" msgstr "Cantidad asignada debe ser mayor que cero" -#: build/models.py:1616 +#: build/models.py:1640 msgid "Quantity must be 1 for serialized stock" msgstr "La cantidad debe ser 1 para el stock serializado" -#: build/models.py:1675 +#: build/models.py:1699 msgid "Selected stock item does not match BOM line" msgstr "El artículo de almacén selelccionado no coincide con la línea BOM" -#: build/models.py:1747 build/serializers.py:895 order/serializers.py:1297 -#: order/serializers.py:1318 stock/models.py:376 stock/serializers.py:93 -#: stock/serializers.py:763 stock/serializers.py:1281 stock/serializers.py:1393 -#: stock/templates/stock/item_base.html:10 -#: stock/templates/stock/item_base.html:23 -#: stock/templates/stock/item_base.html:194 -#: templates/js/translated/build.js:1918 -#: templates/js/translated/sales_order.js:301 -#: templates/js/translated/sales_order.js:1234 -#: templates/js/translated/sales_order.js:1535 -#: templates/js/translated/sales_order.js:1540 -#: templates/js/translated/sales_order.js:1641 -#: templates/js/translated/sales_order.js:1728 +#: build/models.py:1774 build/serializers.py:939 order/serializers.py:1423 +#: order/serializers.py:1444 +#: report/templates/report/inventree_sales_order_shipment_report.html:29 +#: stock/models.py:382 stock/serializers.py:94 stock/serializers.py:794 +#: stock/serializers.py:1312 stock/serializers.py:1424 +#: stock/templates/stock/item_base.html:11 +#: stock/templates/stock/item_base.html:24 +#: stock/templates/stock/item_base.html:191 +#: templates/js/translated/build.js:1921 +#: templates/js/translated/sales_order.js:1200 +#: templates/js/translated/sales_order.js:1501 +#: templates/js/translated/sales_order.js:1506 +#: templates/js/translated/sales_order.js:1622 +#: templates/js/translated/sales_order.js:1709 #: templates/js/translated/stock.js:683 templates/js/translated/stock.js:849 -#: templates/js/translated/stock.js:3061 +#: templates/js/translated/stock.js:3062 msgid "Stock Item" msgstr "Artículo de stock" -#: build/models.py:1748 +#: build/models.py:1775 msgid "Source stock item" msgstr "Producto original de stock" -#: build/models.py:1761 +#: build/models.py:1788 msgid "Stock quantity to allocate to build" msgstr "Cantidad de stock a asignar para construir" -#: build/models.py:1769 +#: build/models.py:1796 msgid "Install into" msgstr "Instalar en" -#: build/models.py:1770 +#: build/models.py:1797 msgid "Destination stock item" msgstr "Artículo de stock de destino" -#: build/serializers.py:91 +#: build/serializers.py:108 msgid "Build Level" -msgstr "" +msgstr "Nivel de construcción" -#: build/serializers.py:99 build/serializers.py:1190 build/serializers.py:1279 -#: part/admin.py:41 part/admin.py:408 part/models.py:4102 part/stocktake.py:219 -#: stock/admin.py:156 +#: build/serializers.py:116 build/serializers.py:1235 build/serializers.py:1331 +#: part/admin.py:41 part/admin.py:408 part/models.py:4160 part/stocktake.py:219 +#: stock/admin.py:157 msgid "Part Name" msgstr "Nombre de parte" -#: build/serializers.py:111 +#: build/serializers.py:128 msgid "Project Code Label" -msgstr "" +msgstr "Etiqueta del código del proyecto" -#: build/serializers.py:172 build/serializers.py:924 -#: templates/js/translated/build.js:1042 templates/js/translated/build.js:1495 +#: build/serializers.py:134 +msgid "Create Child Builds" +msgstr "Crear construcciones hijas" + +#: build/serializers.py:135 +msgid "Automatically generate child build orders" +msgstr "Generar automáticamente órdenes de construcción hijas" + +#: build/serializers.py:219 build/serializers.py:968 +#: templates/js/translated/build.js:1045 templates/js/translated/build.js:1498 msgid "Build Output" msgstr "Resultado de la construcción o armado" -#: build/serializers.py:184 +#: build/serializers.py:231 msgid "Build output does not match the parent build" msgstr "La salida de construcción no coincide con la construcción padre" -#: build/serializers.py:188 +#: build/serializers.py:235 msgid "Output part does not match BuildOrder part" msgstr "La parte de salida no coincide con la parte de la Orden de Construcción" -#: build/serializers.py:192 +#: build/serializers.py:239 msgid "This build output has already been completed" msgstr "Esta salida de construcción ya ha sido completada" -#: build/serializers.py:203 +#: build/serializers.py:250 msgid "This build output is not fully allocated" msgstr "Esta salida de construcción no está completamente asignada" -#: build/serializers.py:223 build/serializers.py:270 +#: build/serializers.py:270 build/serializers.py:317 msgid "Enter quantity for build output" msgstr "Ingrese la cantidad para la producción de la construcción" -#: build/serializers.py:291 +#: build/serializers.py:338 msgid "Integer quantity required for trackable parts" msgstr "Cantidad entera requerida para partes rastreables" -#: build/serializers.py:294 +#: build/serializers.py:341 msgid "Integer quantity required, as the bill of materials contains trackable parts" msgstr "Cantidad entera requerida, ya que la factura de materiales contiene partes rastreables" -#: build/serializers.py:309 order/serializers.py:678 order/serializers.py:1464 -#: stock/serializers.py:680 templates/js/translated/purchase_order.js:1154 +#: build/serializers.py:356 order/serializers.py:763 order/serializers.py:1590 +#: stock/serializers.py:707 templates/js/translated/purchase_order.js:1137 #: templates/js/translated/stock.js:373 templates/js/translated/stock.js:571 msgid "Serial Numbers" msgstr "Números de serie" -#: build/serializers.py:310 +#: build/serializers.py:357 msgid "Enter serial numbers for build outputs" msgstr "Introduzca los números de serie de salidas de construcción" -#: build/serializers.py:315 build/serializers.py:456 build/serializers.py:528 -#: order/serializers.py:654 order/serializers.py:778 order/serializers.py:1781 -#: part/serializers.py:1212 stock/serializers.py:102 stock/serializers.py:691 -#: stock/serializers.py:851 stock/serializers.py:977 stock/serializers.py:1425 -#: stock/serializers.py:1681 stock/templates/stock/item_base.html:394 +#: build/serializers.py:362 build/serializers.py:500 build/serializers.py:572 +#: order/serializers.py:739 order/serializers.py:880 order/serializers.py:1933 +#: part/serializers.py:1265 stock/serializers.py:103 stock/serializers.py:718 +#: stock/serializers.py:882 stock/serializers.py:1008 stock/serializers.py:1456 +#: stock/serializers.py:1712 stock/templates/stock/item_base.html:391 #: templates/js/translated/barcode.js:578 -#: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1032 -#: templates/js/translated/build.js:1174 templates/js/translated/build.js:2544 -#: templates/js/translated/purchase_order.js:1210 -#: templates/js/translated/purchase_order.js:1320 -#: templates/js/translated/sales_order.js:1547 -#: templates/js/translated/sales_order.js:1655 -#: templates/js/translated/sales_order.js:1663 -#: templates/js/translated/sales_order.js:1742 +#: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1035 +#: templates/js/translated/build.js:1177 templates/js/translated/build.js:2551 +#: templates/js/translated/purchase_order.js:1193 +#: templates/js/translated/purchase_order.js:1303 +#: templates/js/translated/sales_order.js:1513 +#: templates/js/translated/sales_order.js:1636 +#: templates/js/translated/sales_order.js:1644 +#: templates/js/translated/sales_order.js:1723 #: templates/js/translated/stock.js:684 templates/js/translated/stock.js:850 -#: templates/js/translated/stock.js:1067 templates/js/translated/stock.js:2286 -#: templates/js/translated/stock.js:2955 +#: templates/js/translated/stock.js:1067 templates/js/translated/stock.js:2287 +#: templates/js/translated/stock.js:2956 msgid "Location" msgstr "Ubicación" -#: build/serializers.py:316 +#: build/serializers.py:363 msgid "Stock location for build output" -msgstr "" +msgstr "Ubicación de stock para objetos construidos" -#: build/serializers.py:330 +#: build/serializers.py:377 msgid "Auto Allocate Serial Numbers" msgstr "Autoasignar Números de Serie" -#: build/serializers.py:331 +#: build/serializers.py:378 msgid "Automatically allocate required items with matching serial numbers" msgstr "Asignar automáticamente los artículos requeridos con números de serie coincidentes" -#: build/serializers.py:346 -msgid "Serial numbers must be provided for trackable parts" -msgstr "" - -#: build/serializers.py:371 stock/api.py:1031 +#: build/serializers.py:415 order/serializers.py:858 stock/api.py:1017 +#: stock/models.py:1632 msgid "The following serial numbers already exist or are invalid" msgstr "Los siguientes números seriales ya existen o son inválidos" -#: build/serializers.py:418 build/serializers.py:480 build/serializers.py:569 +#: build/serializers.py:462 build/serializers.py:524 build/serializers.py:613 msgid "A list of build outputs must be provided" msgstr "Debe proporcionarse una lista de salidas de construcción" -#: build/serializers.py:457 +#: build/serializers.py:501 msgid "Stock location for scrapped outputs" msgstr "Ubicación de almacén para salidas descartadas" -#: build/serializers.py:463 +#: build/serializers.py:507 msgid "Discard Allocations" msgstr "Descartar asignaciones" -#: build/serializers.py:464 +#: build/serializers.py:508 msgid "Discard any stock allocations for scrapped outputs" msgstr "Descartar cualquier asignación de existencias para las salidas descartadas" -#: build/serializers.py:469 +#: build/serializers.py:513 msgid "Reason for scrapping build output(s)" msgstr "Razón para descartar la salida de ensamble(s)" -#: build/serializers.py:529 +#: build/serializers.py:573 msgid "Location for completed build outputs" msgstr "Ubicación para las salidas de construcción completadas" -#: build/serializers.py:535 build/templates/build/build_base.html:159 -#: build/templates/build/detail.html:62 order/models.py:476 -#: order/models.py:1002 order/models.py:2159 order/serializers.py:686 -#: stock/admin.py:164 stock/serializers.py:1028 stock/serializers.py:1569 -#: stock/templates/stock/item_base.html:427 -#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2363 -#: templates/js/translated/purchase_order.js:1371 -#: templates/js/translated/purchase_order.js:1792 +#: build/serializers.py:579 build/templates/build/build_base.html:160 +#: build/templates/build/detail.html:62 order/models.py:488 +#: order/models.py:1029 order/models.py:2198 order/serializers.py:771 +#: stock/admin.py:165 stock/serializers.py:581 stock/serializers.py:1059 +#: stock/serializers.py:1600 stock/templates/stock/item_base.html:424 +#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2366 +#: templates/js/translated/purchase_order.js:1354 +#: templates/js/translated/purchase_order.js:1776 #: templates/js/translated/return_order.js:330 -#: templates/js/translated/sales_order.js:855 -#: templates/js/translated/stock.js:2261 templates/js/translated/stock.js:3079 -#: templates/js/translated/stock.js:3204 +#: templates/js/translated/sales_order.js:814 +#: templates/js/translated/stock.js:2262 templates/js/translated/stock.js:3080 +#: templates/js/translated/stock.js:3205 msgid "Status" msgstr "Estado" -#: build/serializers.py:541 +#: build/serializers.py:585 msgid "Accept Incomplete Allocation" msgstr "Aceptar Asignación Incompleta" -#: build/serializers.py:542 +#: build/serializers.py:586 msgid "Complete outputs if stock has not been fully allocated" msgstr "Completar salidas si el inventario no se ha asignado completamente" -#: build/serializers.py:654 +#: build/serializers.py:698 msgid "Consume Allocated Stock" -msgstr "" +msgstr "Consumir Stock Asignado" -#: build/serializers.py:655 +#: build/serializers.py:699 msgid "Consume any stock which has already been allocated to this build" -msgstr "" +msgstr "Consume cualquier stock que ya ha sido asignado a esta construcción" -#: build/serializers.py:661 +#: build/serializers.py:705 msgid "Remove Incomplete Outputs" msgstr "Eliminar salidas incompletas" -#: build/serializers.py:662 +#: build/serializers.py:706 msgid "Delete any build outputs which have not been completed" msgstr "Eliminar cualquier salida de construcción que no se haya completado" -#: build/serializers.py:689 +#: build/serializers.py:733 msgid "Not permitted" msgstr "No permitido" -#: build/serializers.py:690 +#: build/serializers.py:734 msgid "Accept as consumed by this build order" msgstr "Aceptar como consumido por este pedido de construcción" -#: build/serializers.py:691 +#: build/serializers.py:735 msgid "Deallocate before completing this build order" msgstr "Liberar antes de completar esta orden de construcción" -#: build/serializers.py:721 +#: build/serializers.py:765 msgid "Overallocated Stock" msgstr "Stock sobreasignado" -#: build/serializers.py:723 +#: build/serializers.py:767 msgid "How do you want to handle extra stock items assigned to the build order" msgstr "Cómo quieres manejar los artículos extra de inventario asignados a la orden de construcción" -#: build/serializers.py:733 +#: build/serializers.py:777 msgid "Some stock items have been overallocated" msgstr "Algunos artículos de inventario han sido sobreasignados" -#: build/serializers.py:738 +#: build/serializers.py:782 msgid "Accept Unallocated" msgstr "Aceptar no asignado" -#: build/serializers.py:739 +#: build/serializers.py:783 msgid "Accept that stock items have not been fully allocated to this build order" msgstr "Aceptar que los artículos de stock no se han asignado completamente a este pedido de construcción" -#: build/serializers.py:749 templates/js/translated/build.js:316 +#: build/serializers.py:793 templates/js/translated/build.js:319 msgid "Required stock has not been fully allocated" msgstr "El stock requerido no ha sido completamente asignado" -#: build/serializers.py:754 order/serializers.py:345 order/serializers.py:1365 +#: build/serializers.py:798 order/serializers.py:430 order/serializers.py:1491 msgid "Accept Incomplete" msgstr "Aceptar incompleto" -#: build/serializers.py:755 +#: build/serializers.py:799 msgid "Accept that the required number of build outputs have not been completed" msgstr "Aceptar que el número requerido de salidas de construcción no se han completado" -#: build/serializers.py:765 templates/js/translated/build.js:320 +#: build/serializers.py:809 templates/js/translated/build.js:323 msgid "Required build quantity has not been completed" msgstr "La cantidad de construcción requerida aún no se ha completado" -#: build/serializers.py:774 +#: build/serializers.py:818 msgid "Build order has open child build orders" -msgstr "" +msgstr "La orden de construcción tiene órdenes hijas de construcción abiertas" -#: build/serializers.py:777 +#: build/serializers.py:821 msgid "Build order must be in production state" -msgstr "" +msgstr "Orden de construcción debe estar en estado de producción" -#: build/serializers.py:780 templates/js/translated/build.js:304 +#: build/serializers.py:824 templates/js/translated/build.js:307 msgid "Build order has incomplete outputs" msgstr "El orden de construcción tiene salidas incompletas" -#: build/serializers.py:818 +#: build/serializers.py:862 msgid "Build Line" msgstr "Linea de ensamble" -#: build/serializers.py:828 +#: build/serializers.py:872 msgid "Build output" msgstr "Resultado de la construcción o armado" -#: build/serializers.py:836 +#: build/serializers.py:880 msgid "Build output must point to the same build" msgstr "La salida de la construcción debe apuntar a la misma construcción" -#: build/serializers.py:872 +#: build/serializers.py:916 msgid "Build Line Item" msgstr "Crear partida" -#: build/serializers.py:886 +#: build/serializers.py:930 msgid "bom_item.part must point to the same part as the build order" msgstr "bom_item.part debe apuntar a la misma parte que la orden de construcción" -#: build/serializers.py:901 stock/serializers.py:1294 +#: build/serializers.py:945 stock/serializers.py:1325 msgid "Item must be in stock" msgstr "El artículo debe estar en stock" -#: build/serializers.py:949 order/serializers.py:1351 +#: build/serializers.py:993 order/serializers.py:1477 #, python-brace-format msgid "Available quantity ({q}) exceeded" msgstr "Cantidad disponible ({q}) excedida" -#: build/serializers.py:955 +#: build/serializers.py:999 msgid "Build output must be specified for allocation of tracked parts" msgstr "La salida de la construcción debe especificarse para la asignación de partes rastreadas" -#: build/serializers.py:962 +#: build/serializers.py:1006 msgid "Build output cannot be specified for allocation of untracked parts" msgstr "La salida de construcción no se puede especificar para la asignación de partes no rastreadas" -#: build/serializers.py:986 order/serializers.py:1610 +#: build/serializers.py:1030 order/serializers.py:1750 msgid "Allocation items must be provided" msgstr "Debe proporcionarse la adjudicación de artículos" -#: build/serializers.py:1049 +#: build/serializers.py:1093 msgid "Stock location where parts are to be sourced (leave blank to take from any location)" msgstr "Ubicación de inventario donde las partes deben ser obtenidas (dejar en blanco para tomar de cualquier ubicación)" -#: build/serializers.py:1057 +#: build/serializers.py:1101 msgid "Exclude Location" msgstr "Excluir ubicación" -#: build/serializers.py:1058 +#: build/serializers.py:1102 msgid "Exclude stock items from this selected location" msgstr "Excluir artículos de stock de esta ubicación seleccionada" -#: build/serializers.py:1063 +#: build/serializers.py:1107 msgid "Interchangeable Stock" msgstr "Stock intercambiable" -#: build/serializers.py:1064 +#: build/serializers.py:1108 msgid "Stock items in multiple locations can be used interchangeably" msgstr "Los artículos de inventario en múltiples ubicaciones se pueden utilizar de forma intercambiable" -#: build/serializers.py:1069 +#: build/serializers.py:1113 msgid "Substitute Stock" msgstr "Sustituir stock" -#: build/serializers.py:1070 +#: build/serializers.py:1114 msgid "Allow allocation of substitute parts" msgstr "Permitir la asignación de partes sustitutas" -#: build/serializers.py:1075 +#: build/serializers.py:1119 msgid "Optional Items" msgstr "Elementos opcionales" -#: build/serializers.py:1076 +#: build/serializers.py:1120 msgid "Allocate optional BOM items to build order" msgstr "Asignar artículos de la BOM opcionales para construir la orden" -#: build/serializers.py:1098 +#: build/serializers.py:1143 msgid "Failed to start auto-allocation task" -msgstr "" +msgstr "Error al iniciar la tarea de asignación automática" -#: build/serializers.py:1181 +#: build/serializers.py:1226 stock/serializers.py:585 msgid "Supplier Part Number" -msgstr "" +msgstr "Número de pieza del proveedor" -#: build/serializers.py:1182 company/models.py:506 +#: build/serializers.py:1227 company/models.py:503 stock/serializers.py:591 msgid "Manufacturer Part Number" msgstr "Número de parte de fabricante" -#: build/serializers.py:1183 stock/admin.py:53 stock/admin.py:175 -#: stock/serializers.py:457 +#: build/serializers.py:1228 stock/admin.py:53 stock/admin.py:176 +#: stock/serializers.py:467 msgid "Location Name" msgstr "Nombre de localización" -#: build/serializers.py:1184 +#: build/serializers.py:1229 build/serializers.py:1327 msgid "Build Reference" -msgstr "" +msgstr "Referencia de orden de Ensamblado" -#: build/serializers.py:1185 +#: build/serializers.py:1230 msgid "BOM Reference" -msgstr "" +msgstr "Referencia BOM" -#: build/serializers.py:1186 company/models.py:852 -#: company/templates/company/supplier_part.html:160 order/serializers.py:690 -#: stock/admin.py:228 stock/models.py:818 stock/serializers.py:1579 -#: stock/templates/stock/item_base.html:240 -#: templates/js/translated/company.js:1646 -#: templates/js/translated/purchase_order.js:1169 -#: templates/js/translated/purchase_order.js:1332 +#: build/serializers.py:1231 company/models.py:849 +#: company/templates/company/supplier_part.html:161 order/serializers.py:775 +#: stock/admin.py:229 stock/models.py:895 stock/serializers.py:1610 +#: stock/templates/stock/item_base.html:237 +#: templates/js/translated/company.js:1647 +#: templates/js/translated/purchase_order.js:1152 +#: templates/js/translated/purchase_order.js:1315 #: templates/js/translated/stock.js:1214 templates/js/translated/stock.js:1246 -#: templates/js/translated/stock.js:2509 +#: templates/js/translated/stock.js:2510 msgid "Packaging" msgstr "Paquetes" -#: build/serializers.py:1189 part/admin.py:39 part/admin.py:398 -#: part/models.py:4101 part/stocktake.py:218 stock/admin.py:152 +#: build/serializers.py:1234 part/admin.py:39 part/admin.py:398 +#: part/models.py:4159 part/stocktake.py:218 stock/admin.py:153 msgid "Part ID" msgstr "ID de Parte" -#: build/serializers.py:1191 build/serializers.py:1280 part/admin.py:402 -#: part/models.py:4103 +#: build/serializers.py:1236 build/serializers.py:1332 part/admin.py:402 +#: part/models.py:4161 msgid "Part IPN" msgstr "IPN de la parte" -#: build/serializers.py:1192 build/serializers.py:1282 part/admin.py:45 +#: build/serializers.py:1237 build/serializers.py:1334 part/admin.py:45 #: part/stocktake.py:220 msgid "Part Description" msgstr "Descripción de parte" -#: build/serializers.py:1195 +#: build/serializers.py:1240 msgid "BOM Part ID" -msgstr "" +msgstr "ID de la parte BOM" -#: build/serializers.py:1196 +#: build/serializers.py:1241 msgid "BOM Part Name" -msgstr "" +msgstr "Nombre de parte la BOM" -#: build/serializers.py:1199 +#: build/serializers.py:1244 #: report/templates/report/inventree_return_order_report.html:25 -#: report/templates/report/inventree_test_report.html:88 stock/models.py:845 -#: stock/serializers.py:151 stock/templates/stock/item_base.html:311 -#: templates/js/translated/build.js:520 templates/js/translated/build.js:1540 -#: templates/js/translated/build.js:2527 -#: templates/js/translated/model_renderers.js:231 +#: report/templates/report/inventree_sales_order_shipment_report.html:45 +#: report/templates/report/inventree_test_report.html:88 stock/models.py:922 +#: stock/serializers.py:152 stock/templates/stock/item_base.html:308 +#: templates/js/translated/build.js:523 templates/js/translated/build.js:1543 +#: templates/js/translated/build.js:2534 +#: templates/js/translated/model_renderers.js:234 #: templates/js/translated/return_order.js:539 #: templates/js/translated/return_order.js:722 -#: templates/js/translated/sales_order.js:315 -#: templates/js/translated/sales_order.js:1647 -#: templates/js/translated/sales_order.js:1732 +#: templates/js/translated/sales_order.js:1628 +#: templates/js/translated/sales_order.js:1713 #: templates/js/translated/stock.js:602 msgid "Serial Number" msgstr "Número de serie" -#: build/serializers.py:1212 stock/serializers.py:593 -#: templates/js/translated/build.js:1017 templates/js/translated/build.js:1164 -#: templates/js/translated/build.js:2516 +#: build/serializers.py:1257 stock/serializers.py:620 +#: templates/js/translated/build.js:1020 templates/js/translated/build.js:1167 +#: templates/js/translated/build.js:2523 msgid "Allocated Quantity" -msgstr "" +msgstr "Cantidad Asignada" -#: build/serializers.py:1213 stock/templates/stock/item_base.html:340 +#: build/serializers.py:1258 stock/templates/stock/item_base.html:337 msgid "Available Quantity" msgstr "Cantidad disponible" -#: build/serializers.py:1283 +#: build/serializers.py:1335 msgid "Part Category ID" -msgstr "" +msgstr "ID de la categoría por pieza" -#: build/serializers.py:1284 +#: build/serializers.py:1336 msgid "Part Category Name" -msgstr "" +msgstr "Nombre de la categoría por pieza" -#: build/serializers.py:1291 common/models.py:1513 part/admin.py:113 -#: part/models.py:1166 templates/js/translated/table_filters.js:150 +#: build/serializers.py:1345 common/models.py:1582 part/admin.py:113 +#: part/models.py:1227 templates/js/translated/build.js:2738 +#: templates/js/translated/table_filters.js:150 #: templates/js/translated/table_filters.js:230 #: templates/js/translated/table_filters.js:783 msgid "Trackable" msgstr "Rastreable" -#: build/serializers.py:1292 +#: build/serializers.py:1346 msgid "Inherited" -msgstr "" +msgstr "Heredado" -#: build/serializers.py:1293 part/models.py:4313 +#: build/serializers.py:1347 part/models.py:4370 #: part/templates/part/upload_bom.html:56 templates/js/translated/bom.js:1046 -#: templates/js/translated/build.js:2711 +#: templates/js/translated/build.js:2720 msgid "Allow Variants" msgstr "Permitir variantes" -#: build/serializers.py:1297 part/models.py:4110 part/models.py:4584 +#: build/serializers.py:1351 part/models.py:4168 part/models.py:4646 #: stock/api.py:794 msgid "BOM Item" msgstr "Item de Lista de Materiales" -#: build/serializers.py:1306 build/templates/build/detail.html:236 +#: build/serializers.py:1370 build/templates/build/detail.html:236 #: build/templates/build/sidebar.html:16 templates/js/translated/index.js:130 msgid "Allocated Stock" msgstr "Stock Asignado" -#: build/serializers.py:1311 order/serializers.py:1175 part/admin.py:132 -#: part/bom.py:181 part/serializers.py:899 part/serializers.py:1602 -#: part/templates/part/part_base.html:210 templates/js/translated/bom.js:1208 -#: templates/js/translated/build.js:2804 templates/js/translated/part.js:712 +#: build/serializers.py:1375 order/serializers.py:1209 part/admin.py:132 +#: part/bom.py:186 part/serializers.py:951 part/serializers.py:1660 +#: part/templates/part/part_base.html:211 templates/js/translated/bom.js:1208 +#: templates/js/translated/build.js:2822 templates/js/translated/part.js:712 #: templates/js/translated/part.js:2155 #: templates/js/translated/table_filters.js:177 msgid "On Order" msgstr "En pedido" -#: build/serializers.py:1316 order/serializers.py:1176 part/serializers.py:1604 -#: templates/js/translated/build.js:2808 +#: build/serializers.py:1380 order/serializers.py:1210 part/serializers.py:1662 +#: templates/js/translated/build.js:2826 #: templates/js/translated/table_filters.js:367 msgid "In Production" msgstr "En producción" -#: build/serializers.py:1321 part/bom.py:180 part/serializers.py:1629 -#: part/templates/part/part_base.html:192 -#: templates/js/translated/sales_order.js:1929 +#: build/serializers.py:1384 part/serializers.py:958 +msgid "External Stock" +msgstr "Stock externo" + +#: build/serializers.py:1385 part/bom.py:185 part/serializers.py:1687 +#: part/templates/part/part_base.html:193 +#: templates/js/translated/sales_order.js:1910 msgid "Available Stock" msgstr "Stock Disponible" -#: build/serializers.py:1325 +#: build/serializers.py:1386 msgid "Available Substitute Stock" -msgstr "" +msgstr "Stock sustituto disponible" -#: build/serializers.py:1326 +#: build/serializers.py:1387 msgid "Available Variant Stock" -msgstr "" +msgstr "Stock variable disponible" -#: build/serializers.py:1327 -msgid "Total Available Stock" -msgstr "" - -#: build/serializers.py:1328 part/serializers.py:906 -msgid "External Stock" -msgstr "" - -#: build/status_codes.py:11 generic/states/tests.py:17 order/status_codes.py:12 -#: order/status_codes.py:42 order/status_codes.py:74 order/status_codes.py:98 +#: build/status_codes.py:11 generic/states/tests.py:21 +#: generic/states/tests.py:131 order/status_codes.py:12 +#: order/status_codes.py:44 order/status_codes.py:76 order/status_codes.py:102 #: templates/js/translated/table_filters.js:601 msgid "Pending" msgstr "Pendiente" @@ -1722,21 +1750,21 @@ msgstr "Pendiente" msgid "Production" msgstr "Producción" -#: build/status_codes.py:13 order/status_codes.py:14 order/status_codes.py:49 -#: order/status_codes.py:79 +#: build/status_codes.py:13 order/status_codes.py:14 order/status_codes.py:51 +#: order/status_codes.py:81 msgid "On Hold" -msgstr "" +msgstr "En espera" -#: build/status_codes.py:14 order/status_codes.py:16 order/status_codes.py:51 -#: order/status_codes.py:82 +#: build/status_codes.py:14 order/status_codes.py:16 order/status_codes.py:53 +#: order/status_codes.py:84 msgid "Cancelled" msgstr "Cancelado" -#: build/status_codes.py:15 generic/states/tests.py:19 importer/models.py:509 -#: importer/status_codes.py:19 order/status_codes.py:15 -#: order/status_codes.py:50 order/status_codes.py:81 -#: order/templates/order/order_base.html:163 -#: order/templates/order/sales_order_base.html:168 report/models.py:443 +#: build/status_codes.py:15 generic/states/tests.py:23 importer/models.py:518 +#: importer/status_codes.py:27 order/status_codes.py:15 +#: order/status_codes.py:52 order/status_codes.py:83 +#: order/templates/order/order_base.html:172 +#: order/templates/order/sales_order_base.html:169 report/models.py:451 msgid "Complete" msgstr "Terminado" @@ -1744,165 +1772,162 @@ msgstr "Terminado" msgid "Stock required for build order" msgstr "Stock requerido para la orden de construcción" -#: build/tasks.py:201 +#: build/tasks.py:260 msgid "Overdue Build Order" msgstr "Orden de construcción atrasada" -#: build/tasks.py:206 +#: build/tasks.py:265 #, python-brace-format msgid "Build order {bo} is now overdue" msgstr "El pedido de construcción {bo} está atrasado" -#: build/templates/build/build_base.html:18 +#: build/templates/build/build_base.html:19 msgid "Part thumbnail" msgstr "Miniatura de parte" -#: build/templates/build/build_base.html:38 -#: company/templates/company/supplier_part.html:35 -#: order/templates/order/order_base.html:29 -#: order/templates/order/return_order_base.html:38 -#: order/templates/order/sales_order_base.html:38 -#: part/templates/part/part_base.html:41 -#: stock/templates/stock/item_base.html:40 -#: stock/templates/stock/location.html:52 +#: build/templates/build/build_base.html:39 +#: company/templates/company/supplier_part.html:36 +#: order/templates/order/order_base.html:30 +#: order/templates/order/return_order_base.html:39 +#: order/templates/order/sales_order_base.html:39 +#: part/templates/part/part_base.html:42 +#: stock/templates/stock/item_base.html:41 +#: stock/templates/stock/location.html:53 #: templates/js/translated/filters.js:338 msgid "Barcode actions" msgstr "Acciones para código de barras" -#: build/templates/build/build_base.html:42 -#: company/templates/company/supplier_part.html:39 -#: order/templates/order/order_base.html:33 -#: order/templates/order/return_order_base.html:42 -#: order/templates/order/sales_order_base.html:42 -#: part/templates/part/part_base.html:44 -#: stock/templates/stock/item_base.html:44 -#: stock/templates/stock/location.html:54 templates/qr_button.html:1 +#: build/templates/build/build_base.html:43 +#: company/templates/company/supplier_part.html:40 +#: order/templates/order/order_base.html:34 +#: order/templates/order/return_order_base.html:43 +#: order/templates/order/sales_order_base.html:43 +#: part/templates/part/part_base.html:45 +#: stock/templates/stock/item_base.html:45 +#: stock/templates/stock/location.html:55 templates/qr_button.html:1 msgid "Show QR Code" msgstr "Mostrar código QR" -#: build/templates/build/build_base.html:45 -#: company/templates/company/supplier_part.html:41 -#: order/templates/order/order_base.html:36 -#: order/templates/order/return_order_base.html:45 -#: order/templates/order/sales_order_base.html:45 -#: part/templates/part/part_base.html:47 -#: stock/templates/stock/item_base.html:47 -#: stock/templates/stock/location.html:56 +#: build/templates/build/build_base.html:46 +#: company/templates/company/supplier_part.html:42 +#: order/templates/order/order_base.html:37 +#: order/templates/order/return_order_base.html:46 +#: order/templates/order/sales_order_base.html:46 +#: part/templates/part/part_base.html:48 +#: stock/templates/stock/item_base.html:48 +#: stock/templates/stock/location.html:57 #: templates/js/translated/barcode.js:527 #: templates/js/translated/barcode.js:532 msgid "Unlink Barcode" msgstr "Desvincular Código de Barras" -#: build/templates/build/build_base.html:47 -#: company/templates/company/supplier_part.html:43 -#: order/templates/order/order_base.html:38 -#: order/templates/order/return_order_base.html:47 -#: order/templates/order/sales_order_base.html:47 -#: part/templates/part/part_base.html:49 -#: stock/templates/stock/item_base.html:49 -#: stock/templates/stock/location.html:58 +#: build/templates/build/build_base.html:48 +#: company/templates/company/supplier_part.html:44 +#: order/templates/order/order_base.html:39 +#: order/templates/order/return_order_base.html:48 +#: order/templates/order/sales_order_base.html:48 +#: part/templates/part/part_base.html:50 +#: stock/templates/stock/item_base.html:50 +#: stock/templates/stock/location.html:59 msgid "Link Barcode" msgstr "Vincular Código de Barras" -#: build/templates/build/build_base.html:56 -#: order/templates/order/order_base.html:46 -#: order/templates/order/return_order_base.html:55 -#: order/templates/order/sales_order_base.html:55 +#: build/templates/build/build_base.html:57 +#: order/templates/order/order_base.html:47 +#: order/templates/order/return_order_base.html:56 +#: order/templates/order/sales_order_base.html:56 msgid "Print actions" msgstr "Imprimir acciones" -#: build/templates/build/build_base.html:60 +#: build/templates/build/build_base.html:61 msgid "Print build order report" msgstr "Imprimir informe de orden de construcción" -#: build/templates/build/build_base.html:67 +#: build/templates/build/build_base.html:68 msgid "Build actions" msgstr "Acciones de construcción o armado" -#: build/templates/build/build_base.html:71 +#: build/templates/build/build_base.html:72 msgid "Edit Build" msgstr "Editar construcción o armado" -#: build/templates/build/build_base.html:73 +#: build/templates/build/build_base.html:74 msgid "Duplicate Build" msgstr "Construcción duplicada" -#: build/templates/build/build_base.html:76 +#: build/templates/build/build_base.html:77 msgid "Hold Build" -msgstr "" +msgstr "Mantener Construcción" -#: build/templates/build/build_base.html:79 +#: build/templates/build/build_base.html:80 msgid "Cancel Build" msgstr "Cancelar construcción o armado" -#: build/templates/build/build_base.html:82 +#: build/templates/build/build_base.html:83 msgid "Delete Build" msgstr "Eliminar construcción o armado" -#: build/templates/build/build_base.html:87 -msgid "Isueue Build" -msgstr "" - #: build/templates/build/build_base.html:88 +#: build/templates/build/build_base.html:89 msgid "Issue Build" -msgstr "" +msgstr "Emitir Construcción" -#: build/templates/build/build_base.html:91 #: build/templates/build/build_base.html:92 +#: build/templates/build/build_base.html:93 msgid "Complete Build" msgstr "Completar construcción" -#: build/templates/build/build_base.html:115 +#: build/templates/build/build_base.html:116 msgid "Build Description" msgstr "Descripción de Construcción" -#: build/templates/build/build_base.html:125 +#: build/templates/build/build_base.html:126 msgid "No build outputs have been created for this build order" msgstr "No se han creado salidas para esta orden de construcción" -#: build/templates/build/build_base.html:132 +#: build/templates/build/build_base.html:133 msgid "Build Order is ready to mark as completed" msgstr "Orden de construcción está lista para marcar como completada" -#: build/templates/build/build_base.html:137 +#: build/templates/build/build_base.html:138 msgid "Build Order cannot be completed as outstanding outputs remain" msgstr "La orden de construcción no se puede completar ya que existen salidas pendientes" -#: build/templates/build/build_base.html:142 +#: build/templates/build/build_base.html:143 msgid "Required build quantity has not yet been completed" msgstr "La cantidad de construcción requerida aún no se ha completado" -#: build/templates/build/build_base.html:147 +#: build/templates/build/build_base.html:148 msgid "Stock has not been fully allocated to this Build Order" msgstr "Stock no ha sido asignado completamente a este pedido de construcción" -#: build/templates/build/build_base.html:168 -#: build/templates/build/detail.html:138 order/models.py:308 -#: order/models.py:1391 order/serializers.py:174 -#: order/templates/order/order_base.html:191 -#: order/templates/order/return_order_base.html:167 -#: order/templates/order/sales_order_base.html:199 +#: build/templates/build/build_base.html:169 +#: build/templates/build/detail.html:138 order/models.py:315 +#: order/models.py:1408 order/serializers.py:254 +#: order/templates/order/order_base.html:200 +#: order/templates/order/return_order_base.html:168 +#: order/templates/order/sales_order_base.html:200 #: report/templates/report/inventree_build_order_report.html:125 -#: templates/js/translated/build.js:2411 templates/js/translated/part.js:1837 -#: templates/js/translated/purchase_order.js:1809 -#: templates/js/translated/purchase_order.js:2217 +#: templates/js/translated/build.js:2414 templates/js/translated/part.js:1837 +#: templates/js/translated/purchase_order.js:1793 +#: templates/js/translated/purchase_order.js:2201 #: templates/js/translated/return_order.js:346 #: templates/js/translated/return_order.js:749 -#: templates/js/translated/sales_order.js:871 -#: templates/js/translated/sales_order.js:1903 +#: templates/js/translated/sales_order.js:830 +#: templates/js/translated/sales_order.js:1884 msgid "Target Date" msgstr "Fecha objetivo" -#: build/templates/build/build_base.html:173 +#: build/templates/build/build_base.html:174 #, python-format msgid "This build was due on %(target)s" msgstr "Esta construcción vence el %(target)s" -#: build/templates/build/build_base.html:173 -#: build/templates/build/build_base.html:230 -#: order/templates/order/order_base.html:127 -#: order/templates/order/return_order_base.html:120 -#: order/templates/order/sales_order_base.html:129 +#: build/templates/build/build_base.html:174 +#: build/templates/build/build_base.html:231 +#: order/templates/order/order_base.html:128 +#: order/templates/order/return_order_base.html:121 +#: order/templates/order/sales_order_base.html:130 #: templates/js/translated/table_filters.js:97 #: templates/js/translated/table_filters.js:545 #: templates/js/translated/table_filters.js:629 @@ -1910,51 +1935,52 @@ msgstr "Esta construcción vence el %(target)s" msgid "Overdue" msgstr "Vencido" -#: build/templates/build/build_base.html:185 +#: build/templates/build/build_base.html:186 #: build/templates/build/detail.html:67 build/templates/build/sidebar.html:13 msgid "Completed Outputs" msgstr "Salidas completadas" -#: build/templates/build/build_base.html:198 -#: build/templates/build/detail.html:101 order/api.py:1406 order/models.py:892 -#: order/models.py:1650 order/models.py:1765 order/models.py:1924 -#: order/templates/order/sales_order_base.html:9 -#: order/templates/order/sales_order_base.html:28 +#: build/templates/build/build_base.html:199 +#: build/templates/build/detail.html:101 order/api.py:1528 order/models.py:914 +#: order/models.py:1666 order/models.py:1794 order/models.py:1957 +#: order/templates/order/sales_order_base.html:10 +#: order/templates/order/sales_order_base.html:29 #: report/templates/report/inventree_build_order_report.html:135 #: report/templates/report/inventree_sales_order_report.html:14 -#: stock/templates/stock/item_base.html:369 +#: report/templates/report/inventree_sales_order_shipment_report.html:15 +#: stock/templates/stock/item_base.html:366 #: templates/email/overdue_sales_order.html:15 -#: templates/js/translated/pricing.js:929 -#: templates/js/translated/sales_order.js:805 -#: templates/js/translated/sales_order.js:1028 -#: templates/js/translated/stock.js:3008 +#: templates/js/translated/pricing.js:927 +#: templates/js/translated/sales_order.js:764 +#: templates/js/translated/sales_order.js:1001 +#: templates/js/translated/stock.js:3009 msgid "Sales Order" msgstr "Orden de Venta" -#: build/templates/build/build_base.html:219 -#: build/templates/build/detail.html:94 templates/js/translated/build.js:2328 +#: build/templates/build/build_base.html:220 +#: build/templates/build/detail.html:94 templates/js/translated/build.js:2331 msgid "Priority" msgstr "Prioridad" -#: build/templates/build/build_base.html:267 +#: build/templates/build/build_base.html:268 msgid "Issue Build Order" -msgstr "" +msgstr "Emitir Orden de Construcción" -#: build/templates/build/build_base.html:271 +#: build/templates/build/build_base.html:272 msgid "Issue this Build Order?" -msgstr "" +msgstr "¿Emitir esta orden de construcción?" -#: build/templates/build/build_base.html:302 +#: build/templates/build/build_base.html:303 msgid "Delete Build Order" msgstr "Eliminar Orden de Trabajo" -#: build/templates/build/build_base.html:312 +#: build/templates/build/build_base.html:313 msgid "Build Order QR Code" msgstr "Código QR de la Orden de Trabajo" -#: build/templates/build/build_base.html:324 +#: build/templates/build/build_base.html:325 msgid "Link Barcode to Build Order" -msgstr "" +msgstr "Enlazar código de barras para construir el orden" #: build/templates/build/detail.html:15 msgid "Build Details" @@ -1968,8 +1994,9 @@ msgstr "Fuente de stock" msgid "Stock can be taken from any available location." msgstr "Las existencias se pueden tomar desde cualquier ubicación disponible." -#: build/templates/build/detail.html:49 order/models.py:1532 -#: templates/js/translated/purchase_order.js:2259 +#: build/templates/build/detail.html:49 order/models.py:548 +#: order/models.py:1548 order/templates/order/order_base.html:135 +#: templates/js/translated/purchase_order.js:2243 msgid "Destination" msgstr "Destinación" @@ -1981,23 +2008,24 @@ msgstr "Se requiere ubicación de destino" msgid "Allocated Parts" msgstr "Partes asignadas" -#: build/templates/build/detail.html:80 stock/admin.py:162 -#: stock/templates/stock/item_base.html:162 -#: templates/js/translated/build.js:1553 -#: templates/js/translated/model_renderers.js:242 -#: templates/js/translated/purchase_order.js:1326 +#: build/templates/build/detail.html:80 +#: report/templates/report/inventree_sales_order_shipment_report.html:47 +#: stock/admin.py:163 stock/templates/stock/item_base.html:159 +#: templates/js/translated/build.js:1556 +#: templates/js/translated/model_renderers.js:245 +#: templates/js/translated/purchase_order.js:1309 #: templates/js/translated/stock.js:1139 templates/js/translated/stock.js:1240 -#: templates/js/translated/stock.js:2275 templates/js/translated/stock.js:3211 +#: templates/js/translated/stock.js:2276 templates/js/translated/stock.js:3212 #: templates/js/translated/table_filters.js:320 #: templates/js/translated/table_filters.js:411 msgid "Batch" msgstr "Lote" #: build/templates/build/detail.html:133 -#: order/templates/order/order_base.html:178 -#: order/templates/order/return_order_base.html:154 -#: order/templates/order/sales_order_base.html:193 -#: templates/js/translated/build.js:2371 +#: order/templates/order/order_base.html:187 +#: order/templates/order/return_order_base.html:155 +#: order/templates/order/sales_order_base.html:194 +#: templates/js/translated/build.js:2374 msgid "Created" msgstr "Creado" @@ -2005,8 +2033,8 @@ msgstr "Creado" msgid "No target date set" msgstr "Sin fecha objetivo" -#: build/templates/build/detail.html:149 -#: order/templates/order/sales_order_base.html:209 +#: build/templates/build/detail.html:149 order/api.py:794 +#: order/templates/order/sales_order_base.html:210 #: templates/js/translated/table_filters.js:692 msgid "Completed" msgstr "Completados" @@ -2021,7 +2049,7 @@ msgstr "Órdenes de Trabajo herederas" #: build/templates/build/detail.html:177 msgid "Build Order Line Items" -msgstr "" +msgstr "Detalles de la orden de fabricación" #: build/templates/build/detail.html:181 msgid "Deallocate stock" @@ -2052,13 +2080,13 @@ msgid "Order required parts" msgstr "Pedir partes necesarias" #: build/templates/build/detail.html:192 -#: templates/js/translated/purchase_order.js:795 +#: templates/js/translated/purchase_order.js:778 msgid "Order Parts" msgstr "Partes del pedido" #: build/templates/build/detail.html:205 msgid "Available stock has been filtered based on specified source location for this build order" -msgstr "" +msgstr "Las existencias disponibles han sido filtradas con base en la ubicación especificado para esta orden de fabricación" #: build/templates/build/detail.html:215 msgid "Incomplete Build Outputs" @@ -2110,7 +2138,7 @@ msgstr "Asignación Completa" #: build/templates/build/detail.html:459 msgid "All lines have been fully allocated" -msgstr "" +msgstr "Todas las líneas han sido completamente asignadas" #: build/templates/build/index.html:18 part/templates/part/detail.html:335 msgid "New Build Order" @@ -2120,7 +2148,7 @@ msgstr "Nueva Orden de Trabajo" msgid "Build Order Details" msgstr "Configuración de Pedido de Trabajo" -#: build/templates/build/sidebar.html:8 order/serializers.py:82 +#: build/templates/build/sidebar.html:8 order/serializers.py:113 #: order/templates/order/po_sidebar.html:5 #: order/templates/order/return_order_detail.html:18 #: order/templates/order/so_sidebar.html:5 @@ -2137,45 +2165,40 @@ msgstr "Salidas incompletas" #: build/templates/build/sidebar.html:24 #: part/templates/part/part_sidebar.html:56 msgid "Test Statistics" -msgstr "" +msgstr "Probar estadísticas" -#: common/api.py:693 +#: common/api.py:725 msgid "Is Link" -msgstr "" +msgstr "¿Es enlace?" -#: common/api.py:701 +#: common/api.py:733 msgid "Is File" -msgstr "" +msgstr "¿Es archivo?" -#: common/api.py:744 +#: common/api.py:776 msgid "User does not have permission to delete these attachments" -msgstr "" +msgstr "El usuario no tiene permiso para eliminar estos adjuntos" -#: common/api.py:761 +#: common/api.py:793 msgid "User does not have permission to delete this attachment" -msgstr "" - -#: common/currency.py:132 -msgid "Invalid currency code" -msgstr "" +msgstr "El usuario no tiene permiso para eliminar este adjunto" #: common/currency.py:134 +msgid "Invalid currency code" +msgstr "Código de divisa inválido" + +#: common/currency.py:136 msgid "Duplicate currency code" -msgstr "" +msgstr "Código de divisa duplicado" -#: common/currency.py:139 +#: common/currency.py:141 msgid "No valid currency codes provided" -msgstr "" +msgstr "No se han proporcionado códigos de divisa válidos" -#: common/currency.py:156 +#: common/currency.py:158 msgid "No plugin" msgstr "Sin plugin" -#: common/files.py:63 -#, python-brace-format -msgid "Unsupported file format: {fmt}" -msgstr "Formato de archivo no soportado: {fmt}" - #: common/files.py:65 msgid "Error reading file (invalid encoding)" msgstr "Error al leer el archivo (codificación inválida)" @@ -2192,1883 +2215,2039 @@ msgstr "Error leyendo el archivo (dimensión incorrecta)" msgid "Error reading file (data could be corrupted)" msgstr "Error al leer el archivo (los datos podrían estar corruptos)" -#: common/forms.py:12 +#: common/forms.py:12 common/forms.py:25 msgid "File" msgstr "Archivo" -#: common/forms.py:12 +#: common/forms.py:12 common/forms.py:26 msgid "Select file to upload" msgstr "Seleccione el archivo a cargar" -#: common/forms.py:25 -msgid "{name.title()} File" -msgstr "Archivo {name.title()}" - -#: common/forms.py:26 -#, python-brace-format -msgid "Select {name} file to upload" -msgstr "Seleccione el archivo {name} para subir" - -#: common/models.py:86 +#: common/models.py:89 msgid "Updated" msgstr "Actualizado" -#: common/models.py:87 +#: common/models.py:90 msgid "Timestamp of last update" msgstr "Fecha y hora de la última actualización" -#: common/models.py:120 +#: common/models.py:123 msgid "Site URL is locked by configuration" -msgstr "" +msgstr "La URL del sitio está bloqueada por su configuración" -#: common/models.py:150 +#: common/models.py:153 msgid "Unique project code" msgstr "Código único del proyecto" -#: common/models.py:157 +#: common/models.py:160 msgid "Project description" msgstr "Descripción del proyecto" -#: common/models.py:166 +#: common/models.py:169 msgid "User or group responsible for this project" msgstr "Usuario o grupo responsable de este projecto" -#: common/models.py:783 -msgid "Settings key (must be unique - case insensitive)" -msgstr "Clave de configuración (debe ser única - mayúsculas y minúsculas)" +#: common/models.py:783 common/models.py:2236 common/models.py:2613 +msgid "Settings key" +msgstr "" #: common/models.py:787 msgid "Settings value" msgstr "Valor de ajuste" -#: common/models.py:839 +#: common/models.py:842 msgid "Chosen value is not a valid option" msgstr "El valor elegido no es una opción válida" -#: common/models.py:855 +#: common/models.py:858 msgid "Value must be a boolean value" msgstr "El valor debe ser un valor booleano" -#: common/models.py:863 +#: common/models.py:866 msgid "Value must be an integer value" msgstr "El valor debe ser un entero" -#: common/models.py:900 +#: common/models.py:874 +msgid "Value must be a valid number" +msgstr "" + +#: common/models.py:899 +msgid "Value does not pass validation checks" +msgstr "" + +#: common/models.py:921 msgid "Key string must be unique" msgstr "Cadena de clave debe ser única" -#: common/models.py:1132 +#: common/models.py:1189 msgid "No group" msgstr "Sin grupo" -#: common/models.py:1231 +#: common/models.py:1288 msgid "Restart required" msgstr "Reinicio requerido" -#: common/models.py:1233 +#: common/models.py:1290 msgid "A setting has been changed which requires a server restart" msgstr "Se ha cambiado una configuración que requiere un reinicio del servidor" -#: common/models.py:1240 +#: common/models.py:1297 msgid "Pending migrations" msgstr "Migraciones pendientes" -#: common/models.py:1241 +#: common/models.py:1298 msgid "Number of pending database migrations" msgstr "Número de migraciones de base de datos pendientes" -#: common/models.py:1246 +#: common/models.py:1303 msgid "Server Instance Name" msgstr "Nombre de la instancia del servidor" -#: common/models.py:1248 +#: common/models.py:1305 msgid "String descriptor for the server instance" msgstr "Descriptor de cadena para la instancia del servidor" -#: common/models.py:1252 +#: common/models.py:1309 msgid "Use instance name" msgstr "Usar nombre de instancia" -#: common/models.py:1253 +#: common/models.py:1310 msgid "Use the instance name in the title-bar" msgstr "Utilice el nombre de la instancia en la barra de título" -#: common/models.py:1258 +#: common/models.py:1315 msgid "Restrict showing `about`" msgstr "Restringir mostrar 'acerca de'" -#: common/models.py:1259 +#: common/models.py:1316 msgid "Show the `about` modal only to superusers" msgstr "Mostrar la modal `about` solo para superusuarios" -#: common/models.py:1264 company/models.py:111 company/models.py:112 +#: common/models.py:1321 company/models.py:108 company/models.py:109 msgid "Company name" msgstr "Nombre de empresa" -#: common/models.py:1265 +#: common/models.py:1322 msgid "Internal company name" msgstr "Nombre interno de empresa" -#: common/models.py:1269 +#: common/models.py:1326 msgid "Base URL" msgstr "URL Base" -#: common/models.py:1270 +#: common/models.py:1327 msgid "Base URL for server instance" msgstr "URL base para la instancia del servidor" -#: common/models.py:1276 +#: common/models.py:1333 msgid "Default Currency" msgstr "Moneda predeterminada" -#: common/models.py:1277 +#: common/models.py:1334 msgid "Select base currency for pricing calculations" msgstr "Seleccione la moneda base para los cálculos de precios" -#: common/models.py:1283 +#: common/models.py:1340 msgid "Supported Currencies" -msgstr "" +msgstr "Monedas admitidas" -#: common/models.py:1284 +#: common/models.py:1341 msgid "List of supported currency codes" -msgstr "" +msgstr "Listado de códigos de divisa soportados" -#: common/models.py:1290 +#: common/models.py:1347 msgid "Currency Update Interval" msgstr "Intervalo de actualización de moneda" -#: common/models.py:1292 +#: common/models.py:1349 msgid "How often to update exchange rates (set to zero to disable)" msgstr "Con qué frecuencia actualizar los tipos de cambio (establecer a cero para desactivar)" -#: common/models.py:1295 common/models.py:1351 common/models.py:1364 -#: common/models.py:1372 common/models.py:1381 common/models.py:1390 -#: common/models.py:1627 common/models.py:1649 common/models.py:1764 -#: common/models.py:2146 +#: common/models.py:1352 common/models.py:1408 common/models.py:1421 +#: common/models.py:1429 common/models.py:1438 common/models.py:1447 +#: common/models.py:1696 common/models.py:1718 common/models.py:1819 +#: common/models.py:2208 msgid "days" msgstr "días" -#: common/models.py:1299 +#: common/models.py:1356 msgid "Currency Update Plugin" msgstr "Plugin de Actualización de Moneda" -#: common/models.py:1300 +#: common/models.py:1357 msgid "Currency update plugin to use" msgstr "Plugin de actualización de moneda a usar" -#: common/models.py:1305 +#: common/models.py:1362 msgid "Download from URL" msgstr "Descargar desde URL" -#: common/models.py:1307 +#: common/models.py:1364 msgid "Allow download of remote images and files from external URL" msgstr "Permitir la descarga de imágenes y archivos remotos desde la URL externa" -#: common/models.py:1313 +#: common/models.py:1370 msgid "Download Size Limit" msgstr "Límite de tamaño de descarga" -#: common/models.py:1314 +#: common/models.py:1371 msgid "Maximum allowable download size for remote image" msgstr "Tamaño máximo de descarga permitido para la imagen remota" -#: common/models.py:1320 +#: common/models.py:1377 msgid "User-agent used to download from URL" msgstr "Agente de usuario usado para descargar desde la URL" -#: common/models.py:1322 +#: common/models.py:1379 msgid "Allow to override the user-agent used to download images and files from external URL (leave blank for the default)" msgstr "Permitir reemplazar el agente de usuario utilizado para descargar imágenes y archivos desde URL externa (dejar en blanco para el valor predeterminado)" -#: common/models.py:1327 +#: common/models.py:1384 msgid "Strict URL Validation" msgstr "Validación estricta de URL" -#: common/models.py:1328 +#: common/models.py:1385 msgid "Require schema specification when validating URLs" msgstr "Requerir especificación de esquema al validar URLs" -#: common/models.py:1333 +#: common/models.py:1390 msgid "Require confirm" msgstr "Requiere confirmación" -#: common/models.py:1334 +#: common/models.py:1391 msgid "Require explicit user confirmation for certain action." msgstr "Requiere confirmación explícita del usuario para ciertas acciones." -#: common/models.py:1339 +#: common/models.py:1396 msgid "Tree Depth" msgstr "Profundidad del árbol" -#: common/models.py:1341 +#: common/models.py:1398 msgid "Default tree depth for treeview. Deeper levels can be lazy loaded as they are needed." msgstr "Profundidad de árbol predeterminada para treeview. Los niveles más profundos pueden ser cargados perezosamente a medida que son necesarios." -#: common/models.py:1347 +#: common/models.py:1404 msgid "Update Check Interval" msgstr "Actualizar intervalo de actualización" -#: common/models.py:1348 +#: common/models.py:1405 msgid "How often to check for updates (set to zero to disable)" msgstr "Con qué frecuencia comprobar actualizaciones (establecer a cero para desactivar)" -#: common/models.py:1354 +#: common/models.py:1411 msgid "Automatic Backup" msgstr "Copia de seguridad automática" -#: common/models.py:1355 +#: common/models.py:1412 msgid "Enable automatic backup of database and media files" msgstr "Activar copia de seguridad automática de los archivos de base de datos y medios" -#: common/models.py:1360 +#: common/models.py:1417 msgid "Auto Backup Interval" msgstr "Intervalo de respaldo automático" -#: common/models.py:1361 +#: common/models.py:1418 msgid "Specify number of days between automated backup events" msgstr "Especificar número de días entre eventos automatizados de copia de seguridad" -#: common/models.py:1367 +#: common/models.py:1424 msgid "Task Deletion Interval" msgstr "Intervalo de eliminación de tareas" -#: common/models.py:1369 +#: common/models.py:1426 msgid "Background task results will be deleted after specified number of days" msgstr "Los resultados de las tareas en segundo plano se eliminarán después del número especificado de días" -#: common/models.py:1376 +#: common/models.py:1433 msgid "Error Log Deletion Interval" msgstr "Intervalo de eliminación de registro de errores" -#: common/models.py:1378 +#: common/models.py:1435 msgid "Error logs will be deleted after specified number of days" msgstr "Los registros de errores se eliminarán después del número especificado de días" -#: common/models.py:1385 +#: common/models.py:1442 msgid "Notification Deletion Interval" msgstr "Intervalo de eliminación de notificaciones" -#: common/models.py:1387 +#: common/models.py:1444 msgid "User notifications will be deleted after specified number of days" msgstr "Las notificaciones de usuario se eliminarán después del número especificado de días" -#: common/models.py:1394 templates/InvenTree/settings/sidebar.html:31 +#: common/models.py:1451 templates/InvenTree/settings/sidebar.html:31 msgid "Barcode Support" msgstr "Soporte de código de barras" -#: common/models.py:1395 +#: common/models.py:1452 msgid "Enable barcode scanner support in the web interface" msgstr "Habilitar el soporte para escáner de códigos de barras en la interfaz web" -#: common/models.py:1400 +#: common/models.py:1457 +msgid "Store Barcode Results" +msgstr "" + +#: common/models.py:1458 +msgid "Store barcode scan results in the database" +msgstr "" + +#: common/models.py:1463 +msgid "Barcode Scans Maximum Count" +msgstr "" + +#: common/models.py:1464 +msgid "Maximum number of barcode scan results to store" +msgstr "" + +#: common/models.py:1469 msgid "Barcode Input Delay" msgstr "Retraso de entrada de código de barras" -#: common/models.py:1401 +#: common/models.py:1470 msgid "Barcode input processing delay time" msgstr "Tiempo de retraso en la lectura de códigos de barras" -#: common/models.py:1407 +#: common/models.py:1476 msgid "Barcode Webcam Support" msgstr "Soporte para Webcam de código de barras" -#: common/models.py:1408 +#: common/models.py:1477 msgid "Allow barcode scanning via webcam in browser" msgstr "Permitir escaneo de código de barras a través de webcam en el navegador" -#: common/models.py:1413 +#: common/models.py:1482 msgid "Barcode Show Data" msgstr "" -#: common/models.py:1414 +#: common/models.py:1483 msgid "Display barcode data in browser as text" -msgstr "" +msgstr "Mostrar datos del código de barra como texto en el navegador" -#: common/models.py:1419 +#: common/models.py:1488 msgid "Barcode Generation Plugin" -msgstr "" +msgstr "Complemento para generar códigos de barra" -#: common/models.py:1420 +#: common/models.py:1489 msgid "Plugin to use for internal barcode data generation" -msgstr "" +msgstr "Complemento a usar para la generación de datos de códigos de barra internos" -#: common/models.py:1425 +#: common/models.py:1494 msgid "Part Revisions" msgstr "Revisiones de partes" -#: common/models.py:1426 +#: common/models.py:1495 msgid "Enable revision field for Part" msgstr "Habilitar campo de revisión para parte" -#: common/models.py:1431 +#: common/models.py:1500 msgid "Assembly Revision Only" msgstr "" -#: common/models.py:1432 +#: common/models.py:1501 msgid "Only allow revisions for assembly parts" msgstr "" -#: common/models.py:1437 +#: common/models.py:1506 msgid "Allow Deletion from Assembly" msgstr "" -#: common/models.py:1438 +#: common/models.py:1507 msgid "Allow deletion of parts which are used in an assembly" msgstr "" -#: common/models.py:1443 +#: common/models.py:1512 msgid "IPN Regex" msgstr "Regex IPN" -#: common/models.py:1444 +#: common/models.py:1513 msgid "Regular expression pattern for matching Part IPN" msgstr "Patrón de expresión regular para IPN de la parte coincidente" -#: common/models.py:1447 +#: common/models.py:1516 msgid "Allow Duplicate IPN" msgstr "Permitir IPN duplicado" -#: common/models.py:1448 +#: common/models.py:1517 msgid "Allow multiple parts to share the same IPN" msgstr "Permitir que varias partes compartan el mismo IPN" -#: common/models.py:1453 +#: common/models.py:1522 msgid "Allow Editing IPN" msgstr "Permitir editar IPN" -#: common/models.py:1454 +#: common/models.py:1523 msgid "Allow changing the IPN value while editing a part" msgstr "Permite cambiar el valor de IPN mientras se edita una parte" -#: common/models.py:1459 +#: common/models.py:1528 msgid "Copy Part BOM Data" msgstr "Copiar parte de datos BOM" -#: common/models.py:1460 +#: common/models.py:1529 msgid "Copy BOM data by default when duplicating a part" msgstr "Copiar datos BOM por defecto al duplicar una parte" -#: common/models.py:1465 +#: common/models.py:1534 msgid "Copy Part Parameter Data" msgstr "Copiar parámetros de parte" -#: common/models.py:1466 +#: common/models.py:1535 msgid "Copy parameter data by default when duplicating a part" msgstr "Copiar datos de parámetro por defecto al duplicar una parte" -#: common/models.py:1471 +#: common/models.py:1540 msgid "Copy Part Test Data" msgstr "Copiar parte de datos de prueba" -#: common/models.py:1472 +#: common/models.py:1541 msgid "Copy test data by default when duplicating a part" msgstr "Copiar datos de parámetro por defecto al duplicar una parte" -#: common/models.py:1477 +#: common/models.py:1546 msgid "Copy Category Parameter Templates" msgstr "Copiar plantillas de parámetros de categoría" -#: common/models.py:1478 +#: common/models.py:1547 msgid "Copy category parameter templates when creating a part" msgstr "Copiar plantillas de parámetros de categoría al crear una parte" -#: common/models.py:1483 part/admin.py:108 part/models.py:3945 -#: report/models.py:293 report/models.py:360 report/serializers.py:90 -#: report/serializers.py:131 stock/serializers.py:232 +#: common/models.py:1552 part/admin.py:108 part/models.py:4003 +#: report/models.py:301 report/models.py:368 report/serializers.py:91 +#: report/serializers.py:132 stock/serializers.py:233 #: templates/js/translated/table_filters.js:138 #: templates/js/translated/table_filters.js:775 msgid "Template" msgstr "Plantilla" -#: common/models.py:1484 +#: common/models.py:1553 msgid "Parts are templates by default" msgstr "Las partes son plantillas por defecto" -#: common/models.py:1490 +#: common/models.py:1559 msgid "Parts can be assembled from other components by default" msgstr "Las partes pueden ser ensambladas desde otros componentes por defecto" -#: common/models.py:1495 part/admin.py:95 part/models.py:1160 -#: part/serializers.py:1596 templates/js/translated/table_filters.js:737 +#: common/models.py:1564 part/admin.py:95 part/models.py:1221 +#: part/serializers.py:1654 templates/js/translated/table_filters.js:737 msgid "Component" msgstr "Componente" -#: common/models.py:1496 +#: common/models.py:1565 msgid "Parts can be used as sub-components by default" msgstr "Las partes pueden ser usadas como subcomponentes por defecto" -#: common/models.py:1501 part/admin.py:100 part/models.py:1178 +#: common/models.py:1570 part/admin.py:100 part/models.py:1239 msgid "Purchaseable" msgstr "Comprable" -#: common/models.py:1502 +#: common/models.py:1571 msgid "Parts are purchaseable by default" msgstr "Las partes son comprables por defecto" -#: common/models.py:1507 part/admin.py:104 part/models.py:1184 +#: common/models.py:1576 part/admin.py:104 part/models.py:1245 #: templates/js/translated/table_filters.js:763 msgid "Salable" msgstr "Vendible" -#: common/models.py:1508 +#: common/models.py:1577 msgid "Parts are salable by default" msgstr "Las partes se pueden vender por defecto" -#: common/models.py:1514 +#: common/models.py:1583 msgid "Parts are trackable by default" msgstr "Las partes son rastreables por defecto" -#: common/models.py:1519 part/admin.py:117 part/models.py:1200 -#: part/templates/part/part_base.html:154 +#: common/models.py:1588 part/admin.py:117 part/models.py:1261 +#: part/templates/part/part_base.html:155 #: templates/js/translated/table_filters.js:142 #: templates/js/translated/table_filters.js:787 msgid "Virtual" -msgstr "" +msgstr "Virtual" -#: common/models.py:1520 +#: common/models.py:1589 msgid "Parts are virtual by default" msgstr "Las partes son virtuales por defecto" -#: common/models.py:1525 +#: common/models.py:1594 msgid "Show Import in Views" msgstr "Mostrar importación en vistas" -#: common/models.py:1526 +#: common/models.py:1595 msgid "Display the import wizard in some part views" msgstr "Mostrar el asistente de importación en algunas vistas de partes" -#: common/models.py:1531 +#: common/models.py:1600 msgid "Show related parts" msgstr "Mostrar partes relacionadas" -#: common/models.py:1532 +#: common/models.py:1601 msgid "Display related parts for a part" msgstr "Mostrar partes relacionadas para una parte" -#: common/models.py:1537 +#: common/models.py:1606 msgid "Initial Stock Data" msgstr "Datos iniciales de existencias" -#: common/models.py:1538 +#: common/models.py:1607 msgid "Allow creation of initial stock when adding a new part" msgstr "Permitir la creación del stock inicial al añadir una nueva parte" -#: common/models.py:1543 templates/js/translated/part.js:108 +#: common/models.py:1612 templates/js/translated/part.js:108 msgid "Initial Supplier Data" msgstr "Datos iniciales del proveedor" -#: common/models.py:1545 +#: common/models.py:1614 msgid "Allow creation of initial supplier data when adding a new part" msgstr "Permitir la creación de datos iniciales del proveedor al agregar una nueva parte" -#: common/models.py:1551 +#: common/models.py:1620 msgid "Part Name Display Format" msgstr "Formato de visualización de Nombre de Parte" -#: common/models.py:1552 +#: common/models.py:1621 msgid "Format to display the part name" msgstr "Formato para mostrar el nombre de la parte" -#: common/models.py:1558 +#: common/models.py:1627 msgid "Part Category Default Icon" msgstr "Icono por defecto de la categoría de parte" -#: common/models.py:1559 +#: common/models.py:1628 msgid "Part category default icon (empty means no icon)" msgstr "Icono por defecto de la categoría de parte (vacío significa que no hay icono)" -#: common/models.py:1564 +#: common/models.py:1633 msgid "Enforce Parameter Units" msgstr "Forzar unidades de parámetro" -#: common/models.py:1566 +#: common/models.py:1635 msgid "If units are provided, parameter values must match the specified units" msgstr "Si se proporcionan unidades, los valores de parámetro deben coincidir con las unidades especificadas" -#: common/models.py:1572 +#: common/models.py:1641 msgid "Minimum Pricing Decimal Places" msgstr "Mínimo de lugares decimales en el precio" -#: common/models.py:1574 +#: common/models.py:1643 msgid "Minimum number of decimal places to display when rendering pricing data" msgstr "Número mínimo de decimales a mostrar al procesar los datos de precios" -#: common/models.py:1585 +#: common/models.py:1654 msgid "Maximum Pricing Decimal Places" msgstr "Máximo de lugares decimales en el precio" -#: common/models.py:1587 +#: common/models.py:1656 msgid "Maximum number of decimal places to display when rendering pricing data" msgstr "Número máximo de decimales a mostrar al procesar los datos de precios" -#: common/models.py:1598 +#: common/models.py:1667 msgid "Use Supplier Pricing" msgstr "Usar precios de proveedor" -#: common/models.py:1600 +#: common/models.py:1669 msgid "Include supplier price breaks in overall pricing calculations" msgstr "Incluir descuentos de precios del proveedor en los cálculos generales de precios" -#: common/models.py:1606 +#: common/models.py:1675 msgid "Purchase History Override" msgstr "Anulación del historial de compra" -#: common/models.py:1608 +#: common/models.py:1677 msgid "Historical purchase order pricing overrides supplier price breaks" msgstr "El precio histórico de compra anula los descuentos de precios del proveedor" -#: common/models.py:1614 +#: common/models.py:1683 msgid "Use Stock Item Pricing" msgstr "Usar precio del artículo de almacén" -#: common/models.py:1616 +#: common/models.py:1685 msgid "Use pricing from manually entered stock data for pricing calculations" msgstr "Usar los precios de los datos de inventario introducidos manualmente para los cálculos de precios" -#: common/models.py:1622 +#: common/models.py:1691 msgid "Stock Item Pricing Age" msgstr "Edad del precio del artículo de almacén" -#: common/models.py:1624 +#: common/models.py:1693 msgid "Exclude stock items older than this number of days from pricing calculations" msgstr "Excluir artículos de almacén anteriores a este número de días de los cálculos de precios" -#: common/models.py:1631 +#: common/models.py:1700 msgid "Use Variant Pricing" msgstr "Usar precios variantes" -#: common/models.py:1632 +#: common/models.py:1701 msgid "Include variant pricing in overall pricing calculations" msgstr "Incluir variantes de precios en los cálculos generales de precios" -#: common/models.py:1637 +#: common/models.py:1706 msgid "Active Variants Only" msgstr "Solo variantes activas" -#: common/models.py:1639 +#: common/models.py:1708 msgid "Only use active variant parts for calculating variant pricing" msgstr "Usar solo partes de variantes activas para calcular los precios de variantes" -#: common/models.py:1645 +#: common/models.py:1714 msgid "Pricing Rebuild Interval" msgstr "Intervalo de reconstrucción de precios" -#: common/models.py:1647 +#: common/models.py:1716 msgid "Number of days before part pricing is automatically updated" msgstr "Número de días antes de que el precio de la parte se actualice automáticamente" -#: common/models.py:1654 +#: common/models.py:1723 msgid "Internal Prices" msgstr "Precios internos" -#: common/models.py:1655 +#: common/models.py:1724 msgid "Enable internal prices for parts" msgstr "Habilitar precios internos para partes" -#: common/models.py:1660 +#: common/models.py:1729 msgid "Internal Price Override" msgstr "Anulación del precio interno" -#: common/models.py:1662 +#: common/models.py:1731 msgid "If available, internal prices override price range calculations" msgstr "Si está disponible, los precios internos anulan los cálculos del rango de precios" -#: common/models.py:1668 +#: common/models.py:1737 msgid "Enable label printing" msgstr "Habilitar impresión de etiquetas" -#: common/models.py:1669 +#: common/models.py:1738 msgid "Enable label printing from the web interface" msgstr "Habilitar impresión de etiquetas desde la interfaz web" -#: common/models.py:1674 +#: common/models.py:1743 msgid "Label Image DPI" msgstr "PPP de la imagen de etiqueta" -#: common/models.py:1676 +#: common/models.py:1745 msgid "DPI resolution when generating image files to supply to label printing plugins" msgstr "Resolución DPI al generar archivos de imagen que suministrar para etiquetar complementos de impresión" -#: common/models.py:1682 +#: common/models.py:1751 msgid "Enable Reports" msgstr "Habilitar informes" -#: common/models.py:1683 +#: common/models.py:1752 msgid "Enable generation of reports" msgstr "Habilitar generación de informes" -#: common/models.py:1688 templates/stats.html:25 +#: common/models.py:1757 templates/stats.html:25 msgid "Debug Mode" msgstr "Modo de depuración" -#: common/models.py:1689 +#: common/models.py:1758 msgid "Generate reports in debug mode (HTML output)" msgstr "Generar informes en modo de depuración (salida HTML)" -#: common/models.py:1694 +#: common/models.py:1763 msgid "Log Report Errors" -msgstr "" +msgstr "Registrar errores de reportes" -#: common/models.py:1695 +#: common/models.py:1764 msgid "Log errors which occur when generating reports" -msgstr "" +msgstr "Registrar errores ocurridos al generar reportes" -#: common/models.py:1700 plugin/builtin/labels/label_sheet.py:28 -#: report/models.py:301 +#: common/models.py:1769 plugin/builtin/labels/label_sheet.py:28 +#: report/models.py:309 msgid "Page Size" msgstr "Tamaño de página" -#: common/models.py:1701 +#: common/models.py:1770 msgid "Default page size for PDF reports" msgstr "Tamaño de página predeterminado para informes PDF" -#: common/models.py:1706 -msgid "Enable Test Reports" -msgstr "Habilitar informes de prueba" - -#: common/models.py:1707 -msgid "Enable generation of test reports" -msgstr "Habilitar generación de informes de prueba" - -#: common/models.py:1712 -msgid "Attach Test Reports" -msgstr "Adjuntar informes de prueba" - -#: common/models.py:1714 -msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item" -msgstr "Al imprimir un informe de prueba, adjuntar una copia del informe de prueba al artículo de almacén asociado" - -#: common/models.py:1720 +#: common/models.py:1775 msgid "Globally Unique Serials" msgstr "Seriales únicos globalmente" -#: common/models.py:1721 +#: common/models.py:1776 msgid "Serial numbers for stock items must be globally unique" msgstr "Los números de serie para los artículos de inventario deben ser únicos globalmente" -#: common/models.py:1726 +#: common/models.py:1781 msgid "Autofill Serial Numbers" msgstr "Autollenar números de serie" -#: common/models.py:1727 +#: common/models.py:1782 msgid "Autofill serial numbers in forms" msgstr "Autorellenar números de serie en formularios" -#: common/models.py:1732 +#: common/models.py:1787 msgid "Delete Depleted Stock" msgstr "Eliminar existencias agotadas" -#: common/models.py:1734 +#: common/models.py:1789 msgid "Determines default behavior when a stock item is depleted" -msgstr "" +msgstr "Determina el comportamiento por defecto al agotarse un artículo del inventario" -#: common/models.py:1740 +#: common/models.py:1795 msgid "Batch Code Template" msgstr "Plantilla de código de lote" -#: common/models.py:1742 +#: common/models.py:1797 msgid "Template for generating default batch codes for stock items" msgstr "Plantilla para generar códigos de lote por defecto para artículos de almacén" -#: common/models.py:1747 +#: common/models.py:1802 msgid "Stock Expiry" msgstr "Expiración de stock" -#: common/models.py:1748 +#: common/models.py:1803 msgid "Enable stock expiry functionality" msgstr "Habilitar la funcionalidad de expiración de stock" -#: common/models.py:1753 +#: common/models.py:1808 msgid "Sell Expired Stock" msgstr "Vender existencias caducadas" -#: common/models.py:1754 +#: common/models.py:1809 msgid "Allow sale of expired stock" msgstr "Permitir venta de existencias caducadas" -#: common/models.py:1759 +#: common/models.py:1814 msgid "Stock Stale Time" msgstr "Tiempo histórico de Stock" -#: common/models.py:1761 +#: common/models.py:1816 msgid "Number of days stock items are considered stale before expiring" msgstr "Número de días de artículos de stock se consideran obsoletos antes de caducar" -#: common/models.py:1768 +#: common/models.py:1823 msgid "Build Expired Stock" msgstr "Crear Stock Caducado" -#: common/models.py:1769 +#: common/models.py:1824 msgid "Allow building with expired stock" msgstr "Permitir crear con stock caducado" -#: common/models.py:1774 +#: common/models.py:1829 msgid "Stock Ownership Control" msgstr "Control de Stock" -#: common/models.py:1775 +#: common/models.py:1830 msgid "Enable ownership control over stock locations and items" msgstr "Habilitar control de propiedad sobre ubicaciones de stock y artículos" -#: common/models.py:1780 +#: common/models.py:1835 msgid "Stock Location Default Icon" msgstr "Icono por defecto de ubicación de almacén" -#: common/models.py:1781 +#: common/models.py:1836 msgid "Stock location default icon (empty means no icon)" msgstr "Icono por defecto de ubicación de almacén (vacío significa que no hay icono)" -#: common/models.py:1786 +#: common/models.py:1841 msgid "Show Installed Stock Items" msgstr "Mostrar Articulos de Stock Instalados" -#: common/models.py:1787 +#: common/models.py:1842 msgid "Display installed stock items in stock tables" msgstr "Mostrar los artículos de stock instalados en las tablas de stock" -#: common/models.py:1792 +#: common/models.py:1847 msgid "Check BOM when installing items" msgstr "" -#: common/models.py:1794 +#: common/models.py:1849 msgid "Installed stock items must exist in the BOM for the parent part" msgstr "" -#: common/models.py:1800 +#: common/models.py:1855 msgid "Allow Out of Stock Transfer" -msgstr "" +msgstr "Permitir transferencia Sin Existencias" -#: common/models.py:1802 +#: common/models.py:1857 msgid "Allow stock items which are not in stock to be transferred between stock locations" -msgstr "" +msgstr "Permitir que artículos del inventario sin existencias puedan ser transferidos entre ubicaciones de inventario" -#: common/models.py:1808 +#: common/models.py:1863 msgid "Build Order Reference Pattern" msgstr "Patrón de Referencia de Ordenes de Armado" -#: common/models.py:1810 +#: common/models.py:1865 msgid "Required pattern for generating Build Order reference field" msgstr "Patrón requerido para generar el campo de referencia de la Orden de Ensamblado" -#: common/models.py:1816 common/models.py:1872 common/models.py:1894 -#: common/models.py:1930 +#: common/models.py:1871 common/models.py:1927 common/models.py:1949 +#: common/models.py:1985 msgid "Require Responsible Owner" -msgstr "" +msgstr "Requerir Dueño Responsable" -#: common/models.py:1817 common/models.py:1873 common/models.py:1895 -#: common/models.py:1931 +#: common/models.py:1872 common/models.py:1928 common/models.py:1950 +#: common/models.py:1986 msgid "A responsible owner must be assigned to each order" -msgstr "" +msgstr "Se debe asignar un dueño responsable a cada orden" -#: common/models.py:1822 +#: common/models.py:1877 msgid "Require Active Part" -msgstr "" +msgstr "Requerir Parte Activa" -#: common/models.py:1823 +#: common/models.py:1878 msgid "Prevent build order creation for inactive parts" -msgstr "" +msgstr "Impedir la creación de órdenes de fabricación para partes inactivas" -#: common/models.py:1828 +#: common/models.py:1883 msgid "Require Locked Part" -msgstr "" +msgstr "Requerir Parte Bloqueada" -#: common/models.py:1829 +#: common/models.py:1884 msgid "Prevent build order creation for unlocked parts" -msgstr "" +msgstr "Impedir la creación de órdenes de fabricación para partes bloqueadas" -#: common/models.py:1834 +#: common/models.py:1889 msgid "Require Valid BOM" msgstr "" -#: common/models.py:1836 +#: common/models.py:1891 msgid "Prevent build order creation unless BOM has been validated" -msgstr "" +msgstr "Impedir la creación de órdenes de fabricación a menos que se haya validado la lista de materiales" -#: common/models.py:1842 +#: common/models.py:1897 msgid "Require Closed Child Orders" msgstr "" -#: common/models.py:1844 +#: common/models.py:1899 msgid "Prevent build order completion until all child orders are closed" -msgstr "" +msgstr "Prevenir la finalización de la orden de construcción hasta que todas las órdenes hijas estén cerradas" -#: common/models.py:1850 +#: common/models.py:1905 msgid "Block Until Tests Pass" -msgstr "" +msgstr "Bloquear hasta que los Tests pasen" -#: common/models.py:1852 +#: common/models.py:1907 msgid "Prevent build outputs from being completed until all required tests pass" -msgstr "" +msgstr "Evitar que las construcciones sean completadas hasta que todas las pruebas requeridas pasen" -#: common/models.py:1858 +#: common/models.py:1913 msgid "Enable Return Orders" msgstr "Habilitar órdenes de devolución" -#: common/models.py:1859 +#: common/models.py:1914 msgid "Enable return order functionality in the user interface" msgstr "Habilitar la funcionalidad de orden de devolución en la interfaz de usuario" -#: common/models.py:1864 +#: common/models.py:1919 msgid "Return Order Reference Pattern" msgstr "Patrón de referencia de orden de devolución" -#: common/models.py:1866 +#: common/models.py:1921 msgid "Required pattern for generating Return Order reference field" -msgstr "" +msgstr "Patrón requerido para generar el campo de referencia de devolución de la orden" -#: common/models.py:1878 +#: common/models.py:1933 msgid "Edit Completed Return Orders" msgstr "Editar ordenes de devolución completadas" -#: common/models.py:1880 +#: common/models.py:1935 msgid "Allow editing of return orders after they have been completed" msgstr "Permitir la edición de ordenes de devolución después de que hayan sido completados" -#: common/models.py:1886 +#: common/models.py:1941 msgid "Sales Order Reference Pattern" msgstr "Patrón de Referencia de Ordenes de Venta" -#: common/models.py:1888 +#: common/models.py:1943 msgid "Required pattern for generating Sales Order reference field" msgstr "Patrón requerido para generar el campo de referencia de la orden de venta" -#: common/models.py:1900 +#: common/models.py:1955 msgid "Sales Order Default Shipment" msgstr "Envío Predeterminado de Ordenes de Venta" -#: common/models.py:1901 +#: common/models.py:1956 msgid "Enable creation of default shipment with sales orders" msgstr "Habilitar la creación de envío predeterminado con ordenes de entrega" -#: common/models.py:1906 +#: common/models.py:1961 msgid "Edit Completed Sales Orders" msgstr "Editar Ordenes de Venta Completados" -#: common/models.py:1908 +#: common/models.py:1963 msgid "Allow editing of sales orders after they have been shipped or completed" msgstr "Permitir la edición de ordenes de venta después de que hayan sido enviados o completados" -#: common/models.py:1914 +#: common/models.py:1969 msgid "Mark Shipped Orders as Complete" -msgstr "" +msgstr "Marcar pedidos enviados como completados" -#: common/models.py:1916 +#: common/models.py:1971 msgid "Sales orders marked as shipped will automatically be completed, bypassing the \"shipped\" status" -msgstr "" +msgstr "Los pedidos marcados como enviados se completarán automáticamente, evitando el estado de \"envío\"" -#: common/models.py:1922 +#: common/models.py:1977 msgid "Purchase Order Reference Pattern" msgstr "Patrón de Referencia de Orden de Compra" -#: common/models.py:1924 +#: common/models.py:1979 msgid "Required pattern for generating Purchase Order reference field" msgstr "Patrón requerido para generar el campo de referencia de la Orden de Compra" -#: common/models.py:1936 +#: common/models.py:1991 msgid "Edit Completed Purchase Orders" msgstr "Editar Ordenes de Compra Completados" -#: common/models.py:1938 +#: common/models.py:1993 msgid "Allow editing of purchase orders after they have been shipped or completed" -msgstr "" +msgstr "Permitir la edición de órdenes de venta después de que hayan sido enviados o completados" -#: common/models.py:1944 +#: common/models.py:1999 msgid "Auto Complete Purchase Orders" msgstr "Autocompletar Ordenes de compra" -#: common/models.py:1946 +#: common/models.py:2001 msgid "Automatically mark purchase orders as complete when all line items are received" -msgstr "" +msgstr "Marcar automáticamente las órdenes de compra como completas cuando se reciben todos los artículos de línea" -#: common/models.py:1953 +#: common/models.py:2008 msgid "Enable password forgot" msgstr "Habilitar función de contraseña olvidada" -#: common/models.py:1954 +#: common/models.py:2009 msgid "Enable password forgot function on the login pages" msgstr "Activar la función olvido de contraseña en las páginas de inicio de sesión" -#: common/models.py:1959 +#: common/models.py:2014 msgid "Enable registration" msgstr "Habilitar registro" -#: common/models.py:1960 +#: common/models.py:2015 msgid "Enable self-registration for users on the login pages" msgstr "Activar auto-registro para usuarios en las páginas de inicio de sesión" -#: common/models.py:1965 +#: common/models.py:2020 msgid "Enable SSO" msgstr "Habilitar SSO" -#: common/models.py:1966 +#: common/models.py:2021 msgid "Enable SSO on the login pages" msgstr "Habilitar SSO en las páginas de inicio de sesión" -#: common/models.py:1971 +#: common/models.py:2026 msgid "Enable SSO registration" msgstr "Habilitar registro SSO" -#: common/models.py:1973 +#: common/models.py:2028 msgid "Enable self-registration via SSO for users on the login pages" msgstr "Activar autoregistro a través de SSO para usuarios en las páginas de inicio de sesión" -#: common/models.py:1979 +#: common/models.py:2034 msgid "Enable SSO group sync" -msgstr "" +msgstr "Habilitar sincronización de grupo SSO" -#: common/models.py:1981 +#: common/models.py:2036 msgid "Enable synchronizing InvenTree groups with groups provided by the IdP" -msgstr "" +msgstr "Habilitar la sincronización de grupos de Inventree con grupos proporcionados por el IdP" -#: common/models.py:1987 +#: common/models.py:2042 msgid "SSO group key" -msgstr "" +msgstr "Clave de grupo SSO" -#: common/models.py:1989 +#: common/models.py:2044 msgid "The name of the groups claim attribute provided by the IdP" -msgstr "" +msgstr "El nombre del atributo reclamado por el grupo proporcionado por el IdP" -#: common/models.py:1995 +#: common/models.py:2050 msgid "SSO group map" -msgstr "" +msgstr "Mapa del grupo SSO" -#: common/models.py:1997 +#: common/models.py:2052 msgid "A mapping from SSO groups to local InvenTree groups. If the local group does not exist, it will be created." -msgstr "" +msgstr "Un mapeo de grupos SSO a grupos de Inventree locales. Si el grupo local no existe, se creará." -#: common/models.py:2003 +#: common/models.py:2058 msgid "Remove groups outside of SSO" -msgstr "" +msgstr "Eliminar grupos fuera de SSO" -#: common/models.py:2005 +#: common/models.py:2060 msgid "Whether groups assigned to the user should be removed if they are not backend by the IdP. Disabling this setting might cause security issues" msgstr "" -#: common/models.py:2011 +#: common/models.py:2066 msgid "Email required" msgstr "Email requerido" -#: common/models.py:2012 +#: common/models.py:2067 msgid "Require user to supply mail on signup" msgstr "Requiere usuario para suministrar correo al registrarse" -#: common/models.py:2017 +#: common/models.py:2072 msgid "Auto-fill SSO users" msgstr "Auto-rellenar usuarios SSO" -#: common/models.py:2019 +#: common/models.py:2074 msgid "Automatically fill out user-details from SSO account-data" msgstr "Rellenar automáticamente los datos de usuario de la cuenta SSO" -#: common/models.py:2025 +#: common/models.py:2080 msgid "Mail twice" msgstr "Correo dos veces" -#: common/models.py:2026 +#: common/models.py:2081 msgid "On signup ask users twice for their mail" msgstr "Al registrarse pregunte dos veces a los usuarios por su correo" -#: common/models.py:2031 +#: common/models.py:2086 msgid "Password twice" msgstr "Contraseña dos veces" -#: common/models.py:2032 +#: common/models.py:2087 msgid "On signup ask users twice for their password" msgstr "Al registrarse, preguntar dos veces a los usuarios por su contraseña" -#: common/models.py:2037 +#: common/models.py:2092 msgid "Allowed domains" msgstr "Dominios permitidos" -#: common/models.py:2039 +#: common/models.py:2094 msgid "Restrict signup to certain domains (comma-separated, starting with @)" -msgstr "" +msgstr "Restringir el registro a ciertos dominios (separados por comas, comenzando por @)" -#: common/models.py:2045 +#: common/models.py:2100 msgid "Group on signup" msgstr "Grupo al registrarse" -#: common/models.py:2047 +#: common/models.py:2102 msgid "Group to which new users are assigned on registration. If SSO group sync is enabled, this group is only set if no group can be assigned from the IdP." -msgstr "" +msgstr "Grupo al que se asignan nuevos usuarios al registrarse. Si la sincronización de grupo SSO está activada, este grupo sólo se establece si no se puede asignar ningún grupo desde el IdP." -#: common/models.py:2053 +#: common/models.py:2108 msgid "Enforce MFA" msgstr "Forzar MFA" -#: common/models.py:2054 +#: common/models.py:2109 msgid "Users must use multifactor security." msgstr "Los usuarios deben utilizar seguridad multifactor." -#: common/models.py:2059 +#: common/models.py:2114 msgid "Check plugins on startup" msgstr "Comprobar complementos al iniciar" -#: common/models.py:2061 +#: common/models.py:2116 msgid "Check that all plugins are installed on startup - enable in container environments" msgstr "Comprobar que todos los complementos están instalados en el arranque - habilitar en entornos de contenedores" -#: common/models.py:2069 +#: common/models.py:2124 msgid "Check for plugin updates" -msgstr "" +msgstr "Revisar actualizaciones del plugin" -#: common/models.py:2070 +#: common/models.py:2125 msgid "Enable periodic checks for updates to installed plugins" -msgstr "" +msgstr "Habilitar comprobaciones periódicas para actualizaciones de plugins instalados" -#: common/models.py:2076 +#: common/models.py:2131 msgid "Enable URL integration" msgstr "Habilitar integración de URL" -#: common/models.py:2077 +#: common/models.py:2132 msgid "Enable plugins to add URL routes" msgstr "Habilitar plugins para añadir rutas de URL" -#: common/models.py:2083 +#: common/models.py:2138 msgid "Enable navigation integration" msgstr "Habilitar integración de navegación" -#: common/models.py:2084 +#: common/models.py:2139 msgid "Enable plugins to integrate into navigation" msgstr "Habilitar plugins para integrar en la navegación" -#: common/models.py:2090 +#: common/models.py:2145 msgid "Enable app integration" msgstr "Habilitar integración de la aplicación" -#: common/models.py:2091 +#: common/models.py:2146 msgid "Enable plugins to add apps" msgstr "Habilitar plugins para añadir aplicaciones" -#: common/models.py:2097 +#: common/models.py:2152 msgid "Enable schedule integration" msgstr "Habilitar integración de programación" -#: common/models.py:2098 +#: common/models.py:2153 msgid "Enable plugins to run scheduled tasks" msgstr "Habilitar plugins para ejecutar tareas programadas" -#: common/models.py:2104 +#: common/models.py:2159 msgid "Enable event integration" msgstr "Habilitar integración de eventos" -#: common/models.py:2105 +#: common/models.py:2160 msgid "Enable plugins to respond to internal events" msgstr "Habilitar plugins para responder a eventos internos" -#: common/models.py:2111 +#: common/models.py:2166 +msgid "Enable interface integration" +msgstr "" + +#: common/models.py:2167 +msgid "Enable plugins to integrate into the user interface" +msgstr "" + +#: common/models.py:2173 msgid "Enable project codes" msgstr "Habilitar códigos de proyecto" -#: common/models.py:2112 +#: common/models.py:2174 msgid "Enable project codes for tracking projects" msgstr "Habilitar códigos de proyecto para rastrear proyectos" -#: common/models.py:2117 +#: common/models.py:2179 msgid "Stocktake Functionality" -msgstr "" +msgstr "Funcionalidad de inventario" -#: common/models.py:2119 +#: common/models.py:2181 msgid "Enable stocktake functionality for recording stock levels and calculating stock value" -msgstr "" +msgstr "Habilite la funcionalidad de inventario para registrar los niveles de existencias y calcular el valor de las existencias" -#: common/models.py:2125 +#: common/models.py:2187 msgid "Exclude External Locations" msgstr "Excluir Ubicaciones Externas" -#: common/models.py:2127 +#: common/models.py:2189 msgid "Exclude stock items in external locations from stocktake calculations" -msgstr "" +msgstr "Excluir artículos en existencia en ubicaciones externas de los cálculos de inventario" -#: common/models.py:2133 +#: common/models.py:2195 msgid "Automatic Stocktake Period" -msgstr "" +msgstr "Periodo de inventario automático" -#: common/models.py:2135 +#: common/models.py:2197 msgid "Number of days between automatic stocktake recording (set to zero to disable)" -msgstr "" +msgstr "Número de días entre el registro automático del inventario (establecer en cero para desactivarlo)" -#: common/models.py:2141 +#: common/models.py:2203 msgid "Report Deletion Interval" msgstr "Intervalo de borrado de informe" -#: common/models.py:2143 +#: common/models.py:2205 msgid "Stocktake reports will be deleted after specified number of days" -msgstr "" +msgstr "Los informes de inventario se eliminarán después de un número de días especificado" -#: common/models.py:2150 +#: common/models.py:2212 msgid "Display Users full names" msgstr "Mostrar nombres completos de los usuarios" -#: common/models.py:2151 +#: common/models.py:2213 msgid "Display Users full names instead of usernames" msgstr "Mostrar nombres completos de usuarios en lugar de nombres de usuario" -#: common/models.py:2156 +#: common/models.py:2218 msgid "Enable Test Station Data" -msgstr "" +msgstr "Habilitar datos de estación de prueba" -#: common/models.py:2157 +#: common/models.py:2219 msgid "Enable test station data collection for test results" +msgstr "Habilitar la recolección de datos de estaciones de prueba para resultados de prueba" + +#: common/models.py:2224 +msgid "Create Template on Upload" msgstr "" -#: common/models.py:2169 common/models.py:2549 -msgid "Settings key (must be unique - case insensitive" -msgstr "Tecla de ajustes (debe ser única - mayúsculas y minúsculas" +#: common/models.py:2226 +msgid "Create a new test template when uploading test data which does not match an existing template" +msgstr "" -#: common/models.py:2212 +#: common/models.py:2279 msgid "Hide inactive parts" msgstr "Ocultar partes inactivas" -#: common/models.py:2214 +#: common/models.py:2281 msgid "Hide inactive parts in results displayed on the homepage" msgstr "Ocultar partes inactivas en los resultados mostrados en la página de inicio" -#: common/models.py:2220 +#: common/models.py:2287 msgid "Show subscribed parts" msgstr "Mostrar partes suscritas" -#: common/models.py:2221 +#: common/models.py:2288 msgid "Show subscribed parts on the homepage" msgstr "Mostrar las partes suscritas en la página principal" -#: common/models.py:2226 +#: common/models.py:2293 msgid "Show subscribed categories" msgstr "Mostrar categorías suscritas" -#: common/models.py:2227 +#: common/models.py:2294 msgid "Show subscribed part categories on the homepage" msgstr "Mostrar categorías de partes suscritas en la página de inicio" -#: common/models.py:2232 +#: common/models.py:2299 msgid "Show latest parts" msgstr "Mostrar últimas partes" -#: common/models.py:2233 +#: common/models.py:2300 msgid "Show latest parts on the homepage" msgstr "Mostrar las últimas partes en la página de inicio" -#: common/models.py:2238 +#: common/models.py:2305 msgid "Show invalid BOMs" -msgstr "" +msgstr "Mostrar BOM inválidos" -#: common/models.py:2239 +#: common/models.py:2306 msgid "Show BOMs that await validation on the homepage" msgstr "Mostrar BOMs que esperan validación en la página de inicio" -#: common/models.py:2244 +#: common/models.py:2311 msgid "Show recent stock changes" msgstr "Mostrar cambios recientes de stock" -#: common/models.py:2245 +#: common/models.py:2312 msgid "Show recently changed stock items on the homepage" msgstr "Mostrar artículos de stock recientemente modificados en la página de inicio" -#: common/models.py:2250 +#: common/models.py:2317 msgid "Show low stock" msgstr "Mostrar stock bajo" -#: common/models.py:2251 +#: common/models.py:2318 msgid "Show low stock items on the homepage" msgstr "Mostrar artículos de stock bajo en la página de inicio" -#: common/models.py:2256 +#: common/models.py:2323 msgid "Show depleted stock" msgstr "Mostrar stock agotado" -#: common/models.py:2257 +#: common/models.py:2324 msgid "Show depleted stock items on the homepage" msgstr "Mostrar artículos agotados en la página de inicio" -#: common/models.py:2262 +#: common/models.py:2329 msgid "Show needed stock" msgstr "Mostrar stock necesario" -#: common/models.py:2263 +#: common/models.py:2330 msgid "Show stock items needed for builds on the homepage" msgstr "Mostrar artículos de stock necesarios para trabajos en la página de inicio" -#: common/models.py:2268 +#: common/models.py:2335 msgid "Show expired stock" msgstr "Mostrar stock caducado" -#: common/models.py:2269 +#: common/models.py:2336 msgid "Show expired stock items on the homepage" msgstr "Mostrar artículos de stock caducados en la página de inicio" -#: common/models.py:2274 +#: common/models.py:2341 msgid "Show stale stock" msgstr "Mostrar stock obsoleto" -#: common/models.py:2275 +#: common/models.py:2342 msgid "Show stale stock items on the homepage" msgstr "Mostrar artículos de stock obsoletos en la página de inicio" -#: common/models.py:2280 +#: common/models.py:2347 msgid "Show pending builds" msgstr "Mostrar trabajos pendientes" -#: common/models.py:2281 +#: common/models.py:2348 msgid "Show pending builds on the homepage" msgstr "Mostrar trabajos pendientes en la página de inicio" -#: common/models.py:2286 +#: common/models.py:2353 msgid "Show overdue builds" msgstr "Mostrar trabajos vencidos" -#: common/models.py:2287 +#: common/models.py:2354 msgid "Show overdue builds on the homepage" msgstr "Mostrar trabajos pendientes en la página de inicio" -#: common/models.py:2292 +#: common/models.py:2359 msgid "Show outstanding POs" msgstr "Mostrar Órdenes de Compra Pendientes" -#: common/models.py:2293 +#: common/models.py:2360 msgid "Show outstanding POs on the homepage" msgstr "Mostrar las OC destacadas en la página de inicio" -#: common/models.py:2298 +#: common/models.py:2365 msgid "Show overdue POs" msgstr "Mostrar OC atrasadas" -#: common/models.py:2299 +#: common/models.py:2366 msgid "Show overdue POs on the homepage" msgstr "Mostrar las OC vencidas en la página de inicio" -#: common/models.py:2304 +#: common/models.py:2371 msgid "Show outstanding SOs" msgstr "Mostrar OV pendiemtes" -#: common/models.py:2305 +#: common/models.py:2372 msgid "Show outstanding SOs on the homepage" msgstr "Mostrar OV pendientes en la página de inicio" -#: common/models.py:2310 +#: common/models.py:2377 msgid "Show overdue SOs" msgstr "Mostrar OV atrasadas" -#: common/models.py:2311 +#: common/models.py:2378 msgid "Show overdue SOs on the homepage" msgstr "Mostrar OV atrasadas en la página de inicio" -#: common/models.py:2316 +#: common/models.py:2383 msgid "Show pending SO shipments" -msgstr "" +msgstr "Mostrar envíos pendientes de SO" -#: common/models.py:2317 +#: common/models.py:2384 msgid "Show pending SO shipments on the homepage" -msgstr "" +msgstr "Mostrar envíos SO pendientes en la página de inicio" -#: common/models.py:2322 +#: common/models.py:2389 msgid "Show News" msgstr "Mostrar novedades" -#: common/models.py:2323 +#: common/models.py:2390 msgid "Show news on the homepage" msgstr "Mostrar las últimas novedades de InvenTree en la página de inicio" -#: common/models.py:2328 +#: common/models.py:2395 msgid "Inline label display" msgstr "Mostrar etiqueta interior" -#: common/models.py:2330 +#: common/models.py:2397 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "Mostrar etiquetas PDF en el navegador, en lugar de descargar como un archivo" -#: common/models.py:2336 +#: common/models.py:2403 msgid "Default label printer" msgstr "Impresora predeterminada" -#: common/models.py:2338 +#: common/models.py:2405 msgid "Configure which label printer should be selected by default" -msgstr "" +msgstr "Configure qué etiqueta de impresión debería ser seleccionada por defecto" -#: common/models.py:2344 +#: common/models.py:2411 msgid "Inline report display" msgstr "Mostrar informe en línea" -#: common/models.py:2346 +#: common/models.py:2413 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "Mostrar informes PDF en el navegador, en lugar de descargar como un archivo" -#: common/models.py:2352 +#: common/models.py:2419 msgid "Search Parts" msgstr "Buscar partes" -#: common/models.py:2353 +#: common/models.py:2420 msgid "Display parts in search preview window" -msgstr "" +msgstr "Mostrar partes en la ventana de vista previa de búsqueda" -#: common/models.py:2358 +#: common/models.py:2425 msgid "Search Supplier Parts" msgstr "Buscar partes de proveedor" -#: common/models.py:2359 +#: common/models.py:2426 msgid "Display supplier parts in search preview window" -msgstr "" +msgstr "Mostrar partes de proveedores en la ventana de vista previa de búsqueda" -#: common/models.py:2364 +#: common/models.py:2431 msgid "Search Manufacturer Parts" msgstr "Buscar Partes del Fabricante" -#: common/models.py:2365 +#: common/models.py:2432 msgid "Display manufacturer parts in search preview window" -msgstr "" +msgstr "Mostrar partes de productores en la ventana de vista previa de búsqueda" -#: common/models.py:2370 +#: common/models.py:2437 msgid "Hide Inactive Parts" msgstr "Ocultar Partes Inactivas" -#: common/models.py:2371 +#: common/models.py:2438 msgid "Excluded inactive parts from search preview window" msgstr "Excluir las partes inactivas de la ventana de previsualización de búsqueda" -#: common/models.py:2376 +#: common/models.py:2443 msgid "Search Categories" msgstr "Buscar categorías" -#: common/models.py:2377 +#: common/models.py:2444 msgid "Display part categories in search preview window" msgstr "Mostrar categorias de la parte en la ventana de previsualización de búsqueda" -#: common/models.py:2382 +#: common/models.py:2449 msgid "Search Stock" msgstr "Buscar inventario" -#: common/models.py:2383 +#: common/models.py:2450 msgid "Display stock items in search preview window" msgstr "Mostrar artículos del stock en la ventana de previsualización de búsqueda" -#: common/models.py:2388 +#: common/models.py:2455 msgid "Hide Unavailable Stock Items" msgstr "Ocultar Artículos del Stock Agotados" -#: common/models.py:2390 +#: common/models.py:2457 msgid "Exclude stock items which are not available from the search preview window" msgstr "Excluir artículos de stock que no están disponibles en la ventana de previsualización de búsqueda" -#: common/models.py:2396 +#: common/models.py:2463 msgid "Search Locations" msgstr "Buscar ubicaciones" -#: common/models.py:2397 +#: common/models.py:2464 msgid "Display stock locations in search preview window" msgstr "Mostrar ubicaciones de almacén en la ventana de vista previa de búsqueda" -#: common/models.py:2402 +#: common/models.py:2469 msgid "Search Companies" msgstr "Buscar empresas" -#: common/models.py:2403 +#: common/models.py:2470 msgid "Display companies in search preview window" msgstr "Mostrar empresas en la ventana de vista previa de búsqueda" -#: common/models.py:2408 +#: common/models.py:2475 msgid "Search Build Orders" msgstr "Buscar Pedidos de Construcción" -#: common/models.py:2409 +#: common/models.py:2476 msgid "Display build orders in search preview window" -msgstr "" +msgstr "Mostrar órdenes de fabricación en la ventana de vista previa de búsqueda" -#: common/models.py:2414 +#: common/models.py:2481 msgid "Search Purchase Orders" msgstr "Buscar órdenes de compra" -#: common/models.py:2415 +#: common/models.py:2482 msgid "Display purchase orders in search preview window" -msgstr "" +msgstr "Mostrar órdenes de compra en la ventana de vista previa de búsqueda" -#: common/models.py:2420 +#: common/models.py:2487 msgid "Exclude Inactive Purchase Orders" msgstr "Excluir pedidos de compra inactivos" -#: common/models.py:2422 +#: common/models.py:2489 msgid "Exclude inactive purchase orders from search preview window" -msgstr "" +msgstr "Excluir órdenes de compra inactivas de la ventana de vista previa de búsqueda" -#: common/models.py:2428 +#: common/models.py:2495 msgid "Search Sales Orders" msgstr "Buscar órdenes de venta" -#: common/models.py:2429 +#: common/models.py:2496 msgid "Display sales orders in search preview window" -msgstr "" +msgstr "Mostrar órdenes de venta en la ventana de vista previa de búsqueda" -#: common/models.py:2434 +#: common/models.py:2501 msgid "Exclude Inactive Sales Orders" -msgstr "" +msgstr "Excluir órdenes de venta inactivas" -#: common/models.py:2436 +#: common/models.py:2503 msgid "Exclude inactive sales orders from search preview window" -msgstr "" +msgstr "Excluir órdenes de venta inactivas de la ventana de vista previa de búsqueda" -#: common/models.py:2442 +#: common/models.py:2509 msgid "Search Return Orders" msgstr "Buscar órdenes de devolución" -#: common/models.py:2443 +#: common/models.py:2510 msgid "Display return orders in search preview window" -msgstr "" +msgstr "Mostrar órdenes de devolución en la ventana de vista previa de búsqueda" -#: common/models.py:2448 +#: common/models.py:2515 msgid "Exclude Inactive Return Orders" msgstr "" -#: common/models.py:2450 +#: common/models.py:2517 msgid "Exclude inactive return orders from search preview window" msgstr "" -#: common/models.py:2456 +#: common/models.py:2523 msgid "Search Preview Results" msgstr "Resultados de la vista previa" -#: common/models.py:2458 +#: common/models.py:2525 msgid "Number of results to show in each section of the search preview window" msgstr "" -#: common/models.py:2464 +#: common/models.py:2531 msgid "Regex Search" msgstr "Búsqueda usando una expresión regular" -#: common/models.py:2465 +#: common/models.py:2532 msgid "Enable regular expressions in search queries" msgstr "Habilitar expresiones regulares en las consultas de búsqueda" -#: common/models.py:2470 +#: common/models.py:2537 msgid "Whole Word Search" msgstr "Búsqueda por palabra completa" -#: common/models.py:2471 +#: common/models.py:2538 msgid "Search queries return results for whole word matches" msgstr "Las consultas de búsqueda devuelven resultados para palabras enteras coincidentes" -#: common/models.py:2476 +#: common/models.py:2543 msgid "Show Quantity in Forms" msgstr "Mostrar cantidad en formularios" -#: common/models.py:2477 +#: common/models.py:2544 msgid "Display available part quantity in some forms" msgstr "Mostrar la cantidad de partes disponibles en algunos formularios" -#: common/models.py:2482 +#: common/models.py:2549 msgid "Escape Key Closes Forms" msgstr "Formularios de cierre de teclas de escape" -#: common/models.py:2483 +#: common/models.py:2550 msgid "Use the escape key to close modal forms" msgstr "Usa la clave de escape para cerrar formularios modales" -#: common/models.py:2488 +#: common/models.py:2555 msgid "Fixed Navbar" msgstr "Barra de navegación fija" -#: common/models.py:2489 +#: common/models.py:2556 msgid "The navbar position is fixed to the top of the screen" msgstr "La posición de la barra de navegación se fija en la parte superior de la pantalla" -#: common/models.py:2494 +#: common/models.py:2561 msgid "Date Format" msgstr "Formato de Fecha" -#: common/models.py:2495 +#: common/models.py:2562 msgid "Preferred format for displaying dates" msgstr "Formato preferido para mostrar fechas" -#: common/models.py:2508 part/templates/part/detail.html:41 +#: common/models.py:2575 part/templates/part/detail.html:41 msgid "Part Scheduling" msgstr "Planificación de partes" -#: common/models.py:2509 +#: common/models.py:2576 msgid "Display part scheduling information" msgstr "" -#: common/models.py:2514 part/templates/part/detail.html:62 +#: common/models.py:2581 part/templates/part/detail.html:62 msgid "Part Stocktake" msgstr "" -#: common/models.py:2516 +#: common/models.py:2583 msgid "Display part stocktake information (if stocktake functionality is enabled)" msgstr "" -#: common/models.py:2522 +#: common/models.py:2589 msgid "Table String Length" -msgstr "" +msgstr "Longitud del texto en las tablas" -#: common/models.py:2524 +#: common/models.py:2591 msgid "Maximum length limit for strings displayed in table views" -msgstr "" +msgstr "Longitud máxima para textos en tablas" -#: common/models.py:2530 +#: common/models.py:2597 msgid "Receive error reports" msgstr "Recibir reportes de error" -#: common/models.py:2531 +#: common/models.py:2598 msgid "Receive notifications for system errors" -msgstr "" +msgstr "Recibir notificación de errores del sistema" -#: common/models.py:2536 +#: common/models.py:2603 msgid "Last used printing machines" msgstr "Últimas impresoras usadas" -#: common/models.py:2537 +#: common/models.py:2604 msgid "Save the last used printing machines for a user" msgstr "" -#: common/models.py:2557 common/models.py:2558 common/models.py:2715 -#: common/models.py:2716 common/models.py:2961 common/models.py:2962 -#: common/models.py:3288 common/models.py:3289 importer/models.py:88 -#: part/models.py:3307 part/models.py:3394 part/models.py:3468 -#: part/models.py:3496 plugin/models.py:274 plugin/models.py:275 -#: report/templates/report/inventree_test_report.html:105 -#: templates/js/translated/stock.js:3120 users/models.py:111 +#: common/models.py:2621 common/models.py:2622 common/models.py:2779 +#: common/models.py:2780 common/models.py:3025 common/models.py:3026 +#: common/models.py:3349 common/models.py:3350 common/models.py:3534 +#: importer/models.py:89 part/models.py:3358 part/models.py:3445 +#: part/models.py:3519 part/models.py:3547 plugin/models.py:313 +#: plugin/models.py:314 report/templates/report/inventree_test_report.html:105 +#: templates/js/translated/stock.js:3121 users/models.py:111 msgid "User" msgstr "Usuario" -#: common/models.py:2580 +#: common/models.py:2644 msgid "Price break quantity" msgstr "Cantidad de salto de precio" -#: common/models.py:2587 company/serializers.py:513 order/admin.py:42 -#: order/models.py:1430 order/models.py:2417 -#: templates/js/translated/company.js:1823 templates/js/translated/part.js:1892 +#: common/models.py:2651 company/serializers.py:524 order/admin.py:42 +#: order/models.py:1447 order/models.py:2456 +#: templates/js/translated/company.js:1824 templates/js/translated/part.js:1892 #: templates/js/translated/pricing.js:621 #: templates/js/translated/return_order.js:739 msgid "Price" msgstr "Precio" -#: common/models.py:2588 +#: common/models.py:2652 msgid "Unit price at specified quantity" msgstr "Precio unitario a la cantidad especificada" -#: common/models.py:2692 common/models.py:2877 +#: common/models.py:2756 common/models.py:2941 msgid "Endpoint" -msgstr "" +msgstr "Endpoint" -#: common/models.py:2693 +#: common/models.py:2757 msgid "Endpoint at which this webhook is received" msgstr "Punto final en el que se recibe este webhook" -#: common/models.py:2703 +#: common/models.py:2767 msgid "Name for this webhook" msgstr "Nombre para este webhook" -#: common/models.py:2707 +#: common/models.py:2771 msgid "Is this webhook active" msgstr "Está activo este webhook" -#: common/models.py:2723 users/models.py:159 +#: common/models.py:2787 users/models.py:159 msgid "Token" -msgstr "" +msgstr "Token" -#: common/models.py:2724 +#: common/models.py:2788 msgid "Token for access" msgstr "Token para el acceso" -#: common/models.py:2732 +#: common/models.py:2796 msgid "Secret" msgstr "Clave" -#: common/models.py:2733 +#: common/models.py:2797 msgid "Shared secret for HMAC" msgstr "Secreto compartido para HMAC" -#: common/models.py:2841 +#: common/models.py:2905 msgid "Message ID" msgstr "ID de mensaje" -#: common/models.py:2842 +#: common/models.py:2906 msgid "Unique identifier for this message" msgstr "Identificador único para este mensaje" -#: common/models.py:2850 +#: common/models.py:2914 msgid "Host" msgstr "" -#: common/models.py:2851 +#: common/models.py:2915 msgid "Host from which this message was received" msgstr "Servidor desde el cual se recibió este mensaje" -#: common/models.py:2859 +#: common/models.py:2923 msgid "Header" msgstr "Encabezado" -#: common/models.py:2860 +#: common/models.py:2924 msgid "Header of this message" msgstr "Encabezado del mensaje" -#: common/models.py:2867 +#: common/models.py:2931 msgid "Body" msgstr "Cuerpo" -#: common/models.py:2868 +#: common/models.py:2932 msgid "Body of this message" msgstr "Cuerpo de este mensaje" -#: common/models.py:2878 +#: common/models.py:2942 msgid "Endpoint on which this message was received" msgstr "Endpoint en el que se recibió este mensaje" -#: common/models.py:2883 +#: common/models.py:2947 msgid "Worked on" msgstr "Trabajado en" -#: common/models.py:2884 +#: common/models.py:2948 msgid "Was the work on this message finished?" msgstr "¿El trabajo en este mensaje ha terminado?" -#: common/models.py:3010 +#: common/models.py:3074 msgid "Id" msgstr "" -#: common/models.py:3012 templates/js/translated/company.js:965 -#: templates/js/translated/news.js:44 +#: common/models.py:3076 part/serializers.py:271 +#: templates/js/translated/company.js:966 templates/js/translated/news.js:44 msgid "Title" msgstr "Título" -#: common/models.py:3014 common/models.py:3272 company/models.py:149 -#: company/models.py:446 company/models.py:512 company/models.py:818 -#: order/models.py:302 order/models.py:1385 order/models.py:1817 -#: part/admin.py:55 part/models.py:1057 +#: common/models.py:3078 common/models.py:3333 company/models.py:146 +#: company/models.py:443 company/models.py:509 company/models.py:815 +#: order/models.py:309 order/models.py:1402 order/models.py:1846 +#: part/admin.py:55 part/models.py:1118 #: part/templates/part/part_scheduling.html:11 #: report/templates/report/inventree_build_order_report.html:164 -#: stock/admin.py:229 templates/js/translated/company.js:1319 -#: templates/js/translated/company.js:1673 templates/js/translated/order.js:376 +#: stock/admin.py:230 templates/js/translated/company.js:1320 +#: templates/js/translated/company.js:1674 templates/js/translated/order.js:376 #: templates/js/translated/part.js:2475 -#: templates/js/translated/purchase_order.js:2110 -#: templates/js/translated/purchase_order.js:2274 +#: templates/js/translated/purchase_order.js:2094 +#: templates/js/translated/purchase_order.js:2258 #: templates/js/translated/return_order.js:778 -#: templates/js/translated/sales_order.js:1092 -#: templates/js/translated/sales_order.js:2023 +#: templates/js/translated/sales_order.js:1058 +#: templates/js/translated/sales_order.js:2004 msgid "Link" msgstr "Enlace" -#: common/models.py:3016 templates/js/translated/news.js:60 +#: common/models.py:3080 templates/js/translated/news.js:60 msgid "Published" msgstr "Publicado" -#: common/models.py:3018 templates/InvenTree/settings/plugin_settings.html:32 +#: common/models.py:3082 templates/InvenTree/settings/plugin_settings.html:32 #: templates/js/translated/news.js:56 templates/js/translated/plugin.js:103 msgid "Author" msgstr "Autor" -#: common/models.py:3020 templates/js/translated/news.js:52 +#: common/models.py:3084 templates/js/translated/news.js:52 msgid "Summary" msgstr "Resumen" -#: common/models.py:3023 +#: common/models.py:3087 msgid "Read" msgstr "Leer" -#: common/models.py:3023 +#: common/models.py:3087 msgid "Was this news item read?" msgstr "¿Esta noticia ya fue leída?" -#: common/models.py:3040 company/models.py:159 part/models.py:1067 +#: common/models.py:3104 company/models.py:156 part/models.py:1128 #: report/templates/report/inventree_bill_of_materials_report.html:126 #: report/templates/report/inventree_bill_of_materials_report.html:148 #: report/templates/report/inventree_return_order_report.html:35 -#: stock/templates/stock/item_base.html:133 templates/503.html:31 +#: stock/templates/stock/item_base.html:130 templates/503.html:31 #: templates/hover_image.html:7 templates/hover_image.html:9 #: templates/modals.html:6 msgid "Image" msgstr "Imágen" -#: common/models.py:3040 +#: common/models.py:3104 msgid "Image file" msgstr "Archivo de imagen" -#: common/models.py:3052 common/models.py:3256 +#: common/models.py:3116 common/models.py:3317 msgid "Target model type for this image" msgstr "" -#: common/models.py:3056 +#: common/models.py:3120 msgid "Target model ID for this image" msgstr "" -#: common/models.py:3078 +#: common/models.py:3142 msgid "Custom Unit" -msgstr "" +msgstr "Unidad personalizada" -#: common/models.py:3099 +#: common/models.py:3160 msgid "Unit symbol must be unique" -msgstr "" +msgstr "El símbolo de la unidad debe ser único" -#: common/models.py:3114 +#: common/models.py:3175 msgid "Unit name must be a valid identifier" msgstr "Nombre de unidad debe ser un identificador válido" -#: common/models.py:3133 +#: common/models.py:3194 msgid "Unit name" msgstr "Nombre de unidad" -#: common/models.py:3140 templates/InvenTree/settings/settings_staff_js.html:75 +#: common/models.py:3201 templates/InvenTree/settings/settings_staff_js.html:75 msgid "Symbol" msgstr "Símbolo" -#: common/models.py:3141 +#: common/models.py:3202 msgid "Optional unit symbol" msgstr "Símbolo de unidad opcional" -#: common/models.py:3147 templates/InvenTree/settings/settings_staff_js.html:71 +#: common/models.py:3208 templates/InvenTree/settings/settings_staff_js.html:71 msgid "Definition" msgstr "Definición" -#: common/models.py:3148 +#: common/models.py:3209 msgid "Unit definition" msgstr "Definición de unidad" -#: common/models.py:3206 common/models.py:3263 stock/models.py:2558 -#: templates/js/translated/attachment.js:119 +#: common/models.py:3267 common/models.py:3324 stock/models.py:2674 +#: stock/serializers.py:244 templates/js/translated/attachment.js:119 #: templates/js/translated/attachment.js:345 msgid "Attachment" msgstr "Archivo adjunto" -#: common/models.py:3218 +#: common/models.py:3279 msgid "Missing file" msgstr "Archivo no encontrado" -#: common/models.py:3219 +#: common/models.py:3280 msgid "Missing external link" msgstr "Falta enlace externo" -#: common/models.py:3264 +#: common/models.py:3325 msgid "Select file to attach" msgstr "Seleccionar archivo para adjuntar" -#: common/models.py:3279 templates/js/translated/attachment.js:120 +#: common/models.py:3340 templates/js/translated/attachment.js:120 #: templates/js/translated/attachment.js:360 msgid "Comment" msgstr "Comentario" -#: common/models.py:3280 +#: common/models.py:3341 msgid "Attachment comment" -msgstr "" +msgstr "Comentario de archivo adjunto" -#: common/models.py:3296 +#: common/models.py:3357 msgid "Upload date" -msgstr "" +msgstr "Fecha de carga" -#: common/models.py:3297 +#: common/models.py:3358 msgid "Date the file was uploaded" -msgstr "" +msgstr "Fecha de carga del archivo" -#: common/models.py:3301 +#: common/models.py:3362 msgid "File size" -msgstr "" +msgstr "Tamaño del archivo" -#: common/models.py:3301 +#: common/models.py:3362 msgid "File size in bytes" -msgstr "" +msgstr "Tamaño del archivo en bytes" -#: common/models.py:3339 common/serializers.py:562 +#: common/models.py:3400 common/serializers.py:609 msgid "Invalid model type specified for attachment" msgstr "" -#: common/notifications.py:314 +#: common/models.py:3409 plugin/models.py:43 users/models.py:100 +msgid "Key" +msgstr "Clave" + +#: common/models.py:3410 +msgid "Value that will be saved in the models database" +msgstr "" + +#: common/models.py:3413 +msgid "Name of the state" +msgstr "Nombre del estado" + +#: common/models.py:3417 part/serializers.py:273 +msgid "Label" +msgstr "Etiqueta" + +#: common/models.py:3418 +msgid "Label that will be displayed in the frontend" +msgstr "Etiqueta que se mostrará en el frontend" + +#: common/models.py:3424 +msgid "Color" +msgstr "Color" + +#: common/models.py:3425 +msgid "Color that will be displayed in the frontend" +msgstr "Color que se mostrará en el frontend" + +#: common/models.py:3428 +msgid "Logical Key" +msgstr "Llave lógica" + +#: common/models.py:3430 +msgid "State logical key that is equal to this custom state in business logic" +msgstr "" + +#: common/models.py:3438 part/serializers.py:275 +msgid "Model" +msgstr "Modelo" + +#: common/models.py:3439 +msgid "Model this state is associated with" +msgstr "" + +#: common/models.py:3443 +msgid "Reference Status Set" +msgstr "" + +#: common/models.py:3444 +msgid "Status set that is extended with this custom state" +msgstr "" + +#: common/models.py:3450 +msgid "Custom State" +msgstr "Estado personalizado" + +#: common/models.py:3451 +msgid "Custom States" +msgstr "Estados personalizados" + +#: common/models.py:3466 +msgid "Model must be selected" +msgstr "El modelo debe ser seleccionado" + +#: common/models.py:3469 +msgid "Key must be selected" +msgstr "La clave debe ser seleccionada" + +#: common/models.py:3472 +msgid "Logical key must be selected" +msgstr "La clave lógica debe ser seleccionada" + +#: common/models.py:3476 +msgid "Key must be different from logical key" +msgstr "" + +#: common/models.py:3480 +msgid "Reference status must be selected" +msgstr "" + +#: common/models.py:3492 +msgid "Reference status set not found" +msgstr "" + +#: common/models.py:3498 +msgid "Key must be different from the logical keys of the reference status" +msgstr "" + +#: common/models.py:3504 +msgid "Logical key must be in the logical keys of the reference status" +msgstr "" + +#: common/models.py:3519 +msgid "Barcode Scan" +msgstr "" + +#: common/models.py:3523 importer/models.py:512 part/models.py:4009 +msgid "Data" +msgstr "Datos" + +#: common/models.py:3524 +msgid "Barcode data" +msgstr "" + +#: common/models.py:3535 +msgid "User who scanned the barcode" +msgstr "" + +#: common/models.py:3540 importer/models.py:60 +msgid "Timestamp" +msgstr "" + +#: common/models.py:3541 +msgid "Date and time of the barcode scan" +msgstr "" + +#: common/models.py:3547 +msgid "URL endpoint which processed the barcode" +msgstr "" + +#: common/models.py:3554 order/models.py:1437 plugin/serializers.py:89 +msgid "Context" +msgstr "Contexto" + +#: common/models.py:3555 +msgid "Context data for the barcode scan" +msgstr "" + +#: common/models.py:3562 +msgid "Response" +msgstr "" + +#: common/models.py:3563 +msgid "Response data from the barcode scan" +msgstr "" + +#: common/models.py:3569 report/templates/report/inventree_test_report.html:103 +#: stock/models.py:2660 +msgid "Result" +msgstr "Resultado" + +#: common/models.py:3570 +msgid "Was the barcode scan successful?" +msgstr "" + +#: common/notifications.py:328 #, python-brace-format msgid "New {verbose_name}" msgstr "Nuevo {verbose_name}" -#: common/notifications.py:316 +#: common/notifications.py:330 msgid "A new order has been created and assigned to you" msgstr "Se ha creado un nuevo pedido y se le ha asignado" -#: common/notifications.py:322 +#: common/notifications.py:336 #, python-brace-format msgid "{verbose_name} canceled" msgstr "{verbose_name} cancelado" -#: common/notifications.py:324 +#: common/notifications.py:338 msgid "A order that is assigned to you was canceled" msgstr "" -#: common/notifications.py:330 common/notifications.py:337 order/api.py:462 +#: common/notifications.py:344 common/notifications.py:351 order/api.py:440 msgid "Items Received" msgstr "Artículos Recibidos" -#: common/notifications.py:332 +#: common/notifications.py:346 msgid "Items have been received against a purchase order" msgstr "Los artículos han sido recibidos contra una orden de compra" -#: common/notifications.py:339 +#: common/notifications.py:353 msgid "Items have been received against a return order" msgstr "Los artículos han sido recibidos contra una orden de devolución" -#: common/notifications.py:457 +#: common/notifications.py:475 msgid "Error raised by plugin" msgstr "Error generado por el complemento" -#: common/serializers.py:375 +#: common/serializers.py:423 msgid "Is Running" msgstr "Está en ejecución" -#: common/serializers.py:381 +#: common/serializers.py:429 msgid "Pending Tasks" msgstr "Tareas pendientes" -#: common/serializers.py:387 +#: common/serializers.py:435 msgid "Scheduled Tasks" msgstr "Tareas Programadas" -#: common/serializers.py:393 +#: common/serializers.py:441 msgid "Failed Tasks" msgstr "Tareas fallidas" -#: common/serializers.py:408 +#: common/serializers.py:456 msgid "Task ID" msgstr "Identificación de Tarea" -#: common/serializers.py:408 +#: common/serializers.py:456 msgid "Unique task ID" msgstr "Identificación de tarea única" -#: common/serializers.py:410 +#: common/serializers.py:458 msgid "Lock" msgstr "Bloquear" -#: common/serializers.py:410 +#: common/serializers.py:458 msgid "Lock time" msgstr "Bloquear hora" -#: common/serializers.py:412 +#: common/serializers.py:460 msgid "Task name" msgstr "Nombre de la tarea" -#: common/serializers.py:414 +#: common/serializers.py:462 msgid "Function" msgstr "Función" -#: common/serializers.py:414 +#: common/serializers.py:462 msgid "Function name" msgstr "Nombre de la Función" -#: common/serializers.py:416 +#: common/serializers.py:464 msgid "Arguments" msgstr "Argumentos" -#: common/serializers.py:416 +#: common/serializers.py:464 msgid "Task arguments" msgstr "Argumentos de la tarea" -#: common/serializers.py:419 +#: common/serializers.py:467 msgid "Keyword Arguments" msgstr "Argumentos de palabra clave" -#: common/serializers.py:419 +#: common/serializers.py:467 msgid "Task keyword arguments" msgstr "Argumentos de palabra clave de tarea" -#: common/serializers.py:529 +#: common/serializers.py:577 msgid "Filename" msgstr "Nombre de Archivo" -#: common/serializers.py:536 report/api.py:100 report/serializers.py:53 +#: common/serializers.py:584 report/api.py:100 report/serializers.py:54 msgid "Model Type" msgstr "" -#: common/serializers.py:565 +#: common/serializers.py:612 msgid "User does not have permission to create or edit attachments for this model" msgstr "" @@ -4116,15 +4295,15 @@ msgstr "Coincidir Campos" msgid "Match Items" msgstr "Coincidir artículos" -#: common/views.py:401 +#: common/views.py:397 msgid "Fields matching failed" msgstr "Falló la coincidencia de campos" -#: common/views.py:464 +#: common/views.py:460 msgid "Parts imported" msgstr "Partes importadas" -#: common/views.py:494 order/templates/order/order_wizard/match_fields.html:27 +#: common/views.py:490 order/templates/order/order_wizard/match_fields.html:27 #: order/templates/order/order_wizard/match_parts.html:19 #: order/templates/order/order_wizard/po_upload.html:49 #: part/templates/part/import_wizard/match_fields.html:27 @@ -4155,429 +4334,429 @@ msgstr "" msgid "Supplier is Active" msgstr "" -#: company/models.py:100 company/models.py:371 +#: company/models.py:97 company/models.py:368 #: company/templates/company/company_base.html:8 #: company/templates/company/company_base.html:12 stock/api.py:812 -#: templates/InvenTree/search.html:178 templates/js/translated/company.js:496 +#: templates/InvenTree/search.html:178 templates/js/translated/company.js:497 msgid "Company" msgstr "Empresa" -#: company/models.py:101 company/views.py:51 +#: company/models.py:98 company/views.py:51 #: templates/js/translated/search.js:192 msgid "Companies" msgstr "Empresas" -#: company/models.py:117 +#: company/models.py:114 msgid "Company description" msgstr "Descripción de la empresa" -#: company/models.py:118 +#: company/models.py:115 msgid "Description of the company" msgstr "Descripción de la empresa" -#: company/models.py:123 company/templates/company/company_base.html:106 +#: company/models.py:120 company/templates/company/company_base.html:106 #: templates/InvenTree/settings/plugin_settings.html:54 -#: templates/js/translated/company.js:532 +#: templates/js/translated/company.js:533 msgid "Website" msgstr "Página web" -#: company/models.py:123 +#: company/models.py:120 msgid "Company website URL" msgstr "URL del sitio web de la empresa" -#: company/models.py:128 +#: company/models.py:125 msgid "Phone number" msgstr "Teléfono" -#: company/models.py:130 +#: company/models.py:127 msgid "Contact phone number" msgstr "Teléfono de contacto" -#: company/models.py:137 +#: company/models.py:134 msgid "Contact email address" msgstr "Correo electrónico de contacto" -#: company/models.py:142 company/models.py:275 -#: company/templates/company/company_base.html:145 order/models.py:342 -#: order/templates/order/order_base.html:208 -#: order/templates/order/return_order_base.html:177 -#: order/templates/order/sales_order_base.html:221 +#: company/models.py:139 company/models.py:272 +#: company/templates/company/company_base.html:145 order/models.py:349 +#: order/templates/order/order_base.html:217 +#: order/templates/order/return_order_base.html:178 +#: order/templates/order/sales_order_base.html:222 msgid "Contact" msgstr "Contacto" -#: company/models.py:144 +#: company/models.py:141 msgid "Point of contact" msgstr "Punto de contacto" -#: company/models.py:150 +#: company/models.py:147 msgid "Link to external company information" msgstr "Enlace a información externa de la empresa" -#: company/models.py:163 +#: company/models.py:160 msgid "Is this company active?" -msgstr "" +msgstr "¿Esta empresa está activa?" -#: company/models.py:168 +#: company/models.py:165 msgid "Is customer" -msgstr "" +msgstr "¿Es cliente?" -#: company/models.py:169 +#: company/models.py:166 msgid "Do you sell items to this company?" msgstr "¿Vendes artículos a esta empresa?" -#: company/models.py:174 +#: company/models.py:171 msgid "Is supplier" -msgstr "" +msgstr "¿Es proveedor?" -#: company/models.py:175 +#: company/models.py:172 msgid "Do you purchase items from this company?" msgstr "¿Compras artículos de esta empresa?" -#: company/models.py:180 +#: company/models.py:177 msgid "Is manufacturer" -msgstr "" +msgstr "¿Es productor?" -#: company/models.py:181 +#: company/models.py:178 msgid "Does this company manufacture parts?" msgstr "¿Esta empresa fabrica partes?" -#: company/models.py:189 +#: company/models.py:186 msgid "Default currency used for this company" msgstr "Moneda predeterminada utilizada para esta empresa" -#: company/models.py:314 company/templates/company/company_base.html:124 -#: order/models.py:352 order/templates/order/order_base.html:215 -#: order/templates/order/return_order_base.html:184 -#: order/templates/order/sales_order_base.html:228 +#: company/models.py:311 company/templates/company/company_base.html:124 +#: order/models.py:359 order/templates/order/order_base.html:224 +#: order/templates/order/return_order_base.html:185 +#: order/templates/order/sales_order_base.html:229 msgid "Address" msgstr "Dirección" -#: company/models.py:315 company/templates/company/sidebar.html:35 +#: company/models.py:312 company/templates/company/sidebar.html:35 msgid "Addresses" msgstr "Direcciones" -#: company/models.py:372 +#: company/models.py:369 msgid "Select company" msgstr "Seleccionar empresa" -#: company/models.py:377 +#: company/models.py:374 msgid "Address title" msgstr "Título de dirección" -#: company/models.py:378 +#: company/models.py:375 msgid "Title describing the address entry" msgstr "Título que describe la entrada de dirección" -#: company/models.py:384 +#: company/models.py:381 msgid "Primary address" msgstr "Dirección principal" -#: company/models.py:385 +#: company/models.py:382 msgid "Set as primary address" msgstr "Establecer como dirección principal" -#: company/models.py:390 templates/js/translated/company.js:914 -#: templates/js/translated/company.js:971 +#: company/models.py:387 templates/js/translated/company.js:915 +#: templates/js/translated/company.js:972 msgid "Line 1" msgstr "Línea 1" -#: company/models.py:391 +#: company/models.py:388 msgid "Address line 1" msgstr "Dirección línea 1" -#: company/models.py:397 templates/js/translated/company.js:915 -#: templates/js/translated/company.js:977 +#: company/models.py:394 templates/js/translated/company.js:916 +#: templates/js/translated/company.js:978 msgid "Line 2" msgstr "Línea 2" -#: company/models.py:398 +#: company/models.py:395 msgid "Address line 2" msgstr "Dirección línea 2" -#: company/models.py:404 company/models.py:405 -#: templates/js/translated/company.js:983 +#: company/models.py:401 company/models.py:402 +#: templates/js/translated/company.js:984 msgid "Postal code" msgstr "Código postal" -#: company/models.py:411 +#: company/models.py:408 msgid "City/Region" msgstr "Ciudad/región" -#: company/models.py:412 +#: company/models.py:409 msgid "Postal code city/region" msgstr "Código postal de ciudad/región" -#: company/models.py:418 +#: company/models.py:415 msgid "State/Province" msgstr "Estado/provincia" -#: company/models.py:419 +#: company/models.py:416 msgid "State or province" msgstr "Estado o provincia" -#: company/models.py:425 templates/js/translated/company.js:1001 +#: company/models.py:422 templates/js/translated/company.js:1002 msgid "Country" msgstr "País" -#: company/models.py:426 +#: company/models.py:423 msgid "Address country" msgstr "Dirección de país" -#: company/models.py:432 +#: company/models.py:429 msgid "Courier shipping notes" msgstr "Notas de envío de mensajería" -#: company/models.py:433 +#: company/models.py:430 msgid "Notes for shipping courier" msgstr "Notas para el mensajero de envío" -#: company/models.py:439 +#: company/models.py:436 msgid "Internal shipping notes" msgstr "Notas de envío internas" -#: company/models.py:440 +#: company/models.py:437 msgid "Shipping notes for internal use" msgstr "Notas de envío para uso interno" -#: company/models.py:447 +#: company/models.py:444 msgid "Link to address information (external)" msgstr "Enlace a información de dirección (externa)" -#: company/models.py:470 company/models.py:587 company/models.py:811 +#: company/models.py:467 company/models.py:584 company/models.py:808 #: company/templates/company/manufacturer_part.html:7 #: company/templates/company/manufacturer_part.html:24 -#: stock/templates/stock/item_base.html:217 +#: stock/templates/stock/item_base.html:214 msgid "Manufacturer Part" msgstr "Parte del fabricante" -#: company/models.py:487 company/models.py:779 stock/models.py:787 -#: stock/serializers.py:445 stock/templates/stock/item_base.html:142 +#: company/models.py:484 company/models.py:776 stock/models.py:864 +#: stock/serializers.py:455 stock/templates/stock/item_base.html:139 #: templates/js/translated/bom.js:622 msgid "Base Part" msgstr "Parte base" -#: company/models.py:489 company/models.py:781 +#: company/models.py:486 company/models.py:778 msgid "Select part" msgstr "Seleccionar parte" -#: company/models.py:498 company/templates/company/company_base.html:82 +#: company/models.py:495 company/templates/company/company_base.html:82 #: company/templates/company/manufacturer_part.html:90 -#: company/templates/company/supplier_part.html:145 part/serializers.py:554 -#: stock/templates/stock/item_base.html:207 -#: templates/js/translated/company.js:507 -#: templates/js/translated/company.js:1118 -#: templates/js/translated/company.js:1296 -#: templates/js/translated/company.js:1611 +#: company/templates/company/supplier_part.html:146 part/serializers.py:598 +#: stock/templates/stock/item_base.html:204 +#: templates/js/translated/company.js:508 +#: templates/js/translated/company.js:1119 +#: templates/js/translated/company.js:1297 +#: templates/js/translated/company.js:1612 #: templates/js/translated/table_filters.js:812 msgid "Manufacturer" msgstr "Fabricante" -#: company/models.py:499 +#: company/models.py:496 msgid "Select manufacturer" msgstr "Seleccionar fabricante" -#: company/models.py:505 company/templates/company/manufacturer_part.html:101 -#: company/templates/company/supplier_part.html:153 order/serializers.py:556 -#: part/serializers.py:564 templates/js/translated/company.js:351 -#: templates/js/translated/company.js:1117 -#: templates/js/translated/company.js:1312 -#: templates/js/translated/company.js:1630 templates/js/translated/part.js:1807 -#: templates/js/translated/purchase_order.js:1921 -#: templates/js/translated/purchase_order.js:2123 +#: company/models.py:502 company/templates/company/manufacturer_part.html:101 +#: company/templates/company/supplier_part.html:154 order/serializers.py:641 +#: part/serializers.py:608 templates/js/translated/company.js:352 +#: templates/js/translated/company.js:1118 +#: templates/js/translated/company.js:1313 +#: templates/js/translated/company.js:1631 templates/js/translated/part.js:1807 +#: templates/js/translated/purchase_order.js:1905 +#: templates/js/translated/purchase_order.js:2107 msgid "MPN" msgstr "" -#: company/models.py:513 +#: company/models.py:510 msgid "URL for external manufacturer part link" msgstr "URL para el enlace de parte del fabricante externo" -#: company/models.py:522 +#: company/models.py:519 msgid "Manufacturer part description" msgstr "Descripción de la parte del fabricante" -#: company/models.py:575 +#: company/models.py:572 msgid "Manufacturer Part Parameter" msgstr "" -#: company/models.py:594 +#: company/models.py:591 msgid "Parameter name" msgstr "Nombre del parámetro" -#: company/models.py:600 report/templates/report/inventree_test_report.html:104 -#: stock/models.py:2550 templates/js/translated/company.js:1166 -#: templates/js/translated/company.js:1419 templates/js/translated/part.js:1499 +#: company/models.py:597 report/templates/report/inventree_test_report.html:104 +#: stock/models.py:2666 templates/js/translated/company.js:1167 +#: templates/js/translated/company.js:1420 templates/js/translated/part.js:1499 #: templates/js/translated/stock.js:1607 msgid "Value" msgstr "Valor" -#: company/models.py:601 +#: company/models.py:598 msgid "Parameter value" msgstr "Valor del parámetro" -#: company/models.py:608 company/templates/company/supplier_part.html:168 -#: part/admin.py:57 part/models.py:1147 part/models.py:3771 -#: part/templates/part/part_base.html:293 -#: templates/js/translated/company.js:1425 templates/js/translated/part.js:1518 +#: company/models.py:605 company/templates/company/supplier_part.html:169 +#: part/admin.py:57 part/models.py:1208 part/models.py:3822 +#: part/templates/part/part_base.html:301 +#: templates/js/translated/company.js:1426 templates/js/translated/part.js:1518 #: templates/js/translated/part.js:1622 templates/js/translated/part.js:2376 msgid "Units" msgstr "Unidades" -#: company/models.py:609 +#: company/models.py:606 msgid "Parameter units" msgstr "Unidades de parámetro" -#: company/models.py:662 company/templates/company/supplier_part.html:7 -#: company/templates/company/supplier_part.html:24 order/api.py:442 -#: order/serializers.py:491 stock/models.py:798 -#: stock/templates/stock/item_base.html:233 -#: templates/js/translated/build.js:1052 -#: templates/js/translated/company.js:1600 -#: templates/js/translated/purchase_order.js:752 -#: templates/js/translated/stock.js:2365 +#: company/models.py:659 company/templates/company/supplier_part.html:8 +#: company/templates/company/supplier_part.html:25 order/api.py:392 +#: order/serializers.py:576 stock/models.py:875 +#: stock/templates/stock/item_base.html:230 +#: templates/js/translated/build.js:1055 +#: templates/js/translated/company.js:1601 +#: templates/js/translated/purchase_order.js:735 +#: templates/js/translated/stock.js:2366 msgid "Supplier Part" msgstr "Parte del proveedor" -#: company/models.py:719 +#: company/models.py:716 msgid "Pack units must be compatible with the base part units" msgstr "Las unidades de paquete deben ser compatibles con las unidades de partes de base" -#: company/models.py:726 +#: company/models.py:723 msgid "Pack units must be greater than zero" msgstr "Las unidades de paquete deben ser mayor que cero" -#: company/models.py:740 +#: company/models.py:737 msgid "Linked manufacturer part must reference the same base part" msgstr "La parte vinculada del fabricante debe hacer referencia a la misma parte base" -#: company/models.py:789 company/templates/company/company_base.html:87 -#: company/templates/company/supplier_part.html:129 order/models.py:491 -#: order/templates/order/order_base.html:141 part/bom.py:280 part/bom.py:318 -#: part/serializers.py:538 plugin/builtin/suppliers/digikey.py:25 +#: company/models.py:786 company/templates/company/company_base.html:87 +#: company/templates/company/supplier_part.html:130 order/models.py:503 +#: order/templates/order/order_base.html:150 part/bom.py:279 part/bom.py:314 +#: part/serializers.py:582 plugin/builtin/suppliers/digikey.py:25 #: plugin/builtin/suppliers/lcsc.py:26 plugin/builtin/suppliers/mouser.py:24 -#: plugin/builtin/suppliers/tme.py:26 stock/templates/stock/item_base.html:224 +#: plugin/builtin/suppliers/tme.py:26 stock/templates/stock/item_base.html:221 #: templates/email/overdue_purchase_order.html:16 -#: templates/js/translated/company.js:350 -#: templates/js/translated/company.js:511 -#: templates/js/translated/company.js:1584 templates/js/translated/part.js:1775 +#: templates/js/translated/company.js:351 +#: templates/js/translated/company.js:512 +#: templates/js/translated/company.js:1585 templates/js/translated/part.js:1775 #: templates/js/translated/pricing.js:498 -#: templates/js/translated/purchase_order.js:1759 +#: templates/js/translated/purchase_order.js:1743 #: templates/js/translated/table_filters.js:816 msgid "Supplier" msgstr "Proveedor" -#: company/models.py:790 +#: company/models.py:787 msgid "Select supplier" msgstr "Seleccionar proveedor" -#: company/models.py:796 part/serializers.py:549 +#: company/models.py:793 part/serializers.py:593 msgid "Supplier stock keeping unit" msgstr "Unidad de mantenimiento de stock de proveedores" -#: company/models.py:802 +#: company/models.py:799 msgid "Is this supplier part active?" msgstr "" -#: company/models.py:812 +#: company/models.py:809 msgid "Select manufacturer part" msgstr "Seleccionar parte del fabricante" -#: company/models.py:819 +#: company/models.py:816 msgid "URL for external supplier part link" msgstr "URL del enlace de parte del proveedor externo" -#: company/models.py:828 +#: company/models.py:825 msgid "Supplier part description" msgstr "Descripción de la parte del proveedor" -#: company/models.py:835 company/templates/company/supplier_part.html:187 -#: order/serializers.py:698 part/admin.py:415 part/models.py:4288 +#: company/models.py:832 company/templates/company/supplier_part.html:188 +#: order/serializers.py:783 part/admin.py:415 part/models.py:4345 #: part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_bill_of_materials_report.html:140 #: report/templates/report/inventree_purchase_order_report.html:32 #: report/templates/report/inventree_return_order_report.html:27 #: report/templates/report/inventree_sales_order_report.html:32 #: report/templates/report/inventree_stock_location_report.html:105 -#: stock/serializers.py:776 templates/js/translated/purchase_order.js:1185 -#: templates/js/translated/purchase_order.js:1344 +#: stock/serializers.py:807 templates/js/translated/purchase_order.js:1168 +#: templates/js/translated/purchase_order.js:1327 msgid "Note" msgstr "Nota" -#: company/models.py:844 part/models.py:2117 +#: company/models.py:841 part/models.py:2177 msgid "base cost" msgstr "costo base" -#: company/models.py:845 part/models.py:2118 +#: company/models.py:842 part/models.py:2178 msgid "Minimum charge (e.g. stocking fee)" msgstr "Cargo mínimo (p. ej., cuota de almacenamiento)" -#: company/models.py:853 +#: company/models.py:850 msgid "Part packaging" msgstr "Embalaje de partes" -#: company/models.py:858 templates/js/translated/company.js:1651 +#: company/models.py:855 templates/js/translated/company.js:1652 #: templates/js/translated/part.js:1828 templates/js/translated/part.js:1884 -#: templates/js/translated/purchase_order.js:311 -#: templates/js/translated/purchase_order.js:841 -#: templates/js/translated/purchase_order.js:1103 -#: templates/js/translated/purchase_order.js:2154 -#: templates/js/translated/purchase_order.js:2171 +#: templates/js/translated/purchase_order.js:294 +#: templates/js/translated/purchase_order.js:824 +#: templates/js/translated/purchase_order.js:1086 +#: templates/js/translated/purchase_order.js:2138 +#: templates/js/translated/purchase_order.js:2155 msgid "Pack Quantity" msgstr "Cantidad de paquete" -#: company/models.py:860 +#: company/models.py:857 msgid "Total quantity supplied in a single pack. Leave empty for single items." msgstr "Cantidad total suministrada en un solo paquete. Dejar vacío para artículos individuales." -#: company/models.py:879 part/models.py:2124 +#: company/models.py:876 part/models.py:2184 msgid "multiple" msgstr "múltiple" -#: company/models.py:880 +#: company/models.py:877 msgid "Order multiple" msgstr "Pedido múltiple" -#: company/models.py:892 +#: company/models.py:889 msgid "Quantity available from supplier" msgstr "Cantidad disponible del proveedor" -#: company/models.py:898 +#: company/models.py:895 msgid "Availability Updated" msgstr "Disponibilidad actualizada" -#: company/models.py:899 +#: company/models.py:896 msgid "Date of last update of availability data" msgstr "Fecha de última actualización de los datos de disponibilidad" -#: company/models.py:1027 +#: company/models.py:1024 msgid "Supplier Price Break" msgstr "" -#: company/serializers.py:174 +#: company/serializers.py:178 msgid "Default currency used for this supplier" msgstr "Moneda predeterminada utilizada para este proveedor" -#: company/serializers.py:210 +#: company/serializers.py:214 msgid "Company Name" -msgstr "" +msgstr "Nombre de la empresa" -#: company/serializers.py:393 part/admin.py:126 part/serializers.py:898 -#: part/templates/part/part_base.html:197 -#: templates/js/translated/company.js:1689 +#: company/serializers.py:397 part/admin.py:126 part/serializers.py:950 +#: part/templates/part/part_base.html:198 stock/serializers.py:474 +#: templates/js/translated/company.js:1690 #: templates/js/translated/table_filters.js:362 msgid "In Stock" msgstr "En Stock" #: company/templates/company/company_base.html:16 -#: part/templates/part/part_base.html:146 -#: templates/js/translated/company.js:1287 -#: templates/js/translated/company.js:1575 -#: templates/js/translated/model_renderers.js:313 +#: part/templates/part/part_base.html:147 +#: templates/js/translated/company.js:1288 +#: templates/js/translated/company.js:1576 +#: templates/js/translated/model_renderers.js:316 #: templates/js/translated/part.js:817 templates/js/translated/part.js:1225 msgid "Inactive" msgstr "Inactivo" #: company/templates/company/company_base.html:27 -#: templates/js/translated/purchase_order.js:242 +#: templates/js/translated/purchase_order.js:224 msgid "Create Purchase Order" msgstr "Crear orden de compra" @@ -4590,7 +4769,7 @@ msgid "Edit company information" msgstr "Editar datos de la empresa" #: company/templates/company/company_base.html:39 -#: templates/js/translated/company.js:445 +#: templates/js/translated/company.js:446 msgid "Edit Company" msgstr "Editar empresa" @@ -4605,11 +4784,12 @@ msgstr "Eliminar Empresa" #: company/templates/company/company_base.html:53 #: company/templates/company/manufacturer_part.html:51 -#: company/templates/company/supplier_part.html:83 +#: company/templates/company/supplier_part.html:84 #: part/templates/part/part_thumb.html:20 #: report/templates/report/inventree_build_order_report.html:98 #: report/templates/report/inventree_purchase_order_report.html:40 #: report/templates/report/inventree_sales_order_report.html:40 +#: report/templates/report/inventree_sales_order_shipment_report.html:37 #: report/templates/report/inventree_test_report.html:84 #: report/templates/report/inventree_test_report.html:162 msgid "Part image" @@ -4630,16 +4810,16 @@ msgstr "Descargar desde URL" msgid "Delete image" msgstr "Borrar imagen" -#: company/templates/company/company_base.html:92 order/models.py:990 -#: order/models.py:2147 order/templates/order/return_order_base.html:134 -#: order/templates/order/sales_order_base.html:151 stock/models.py:840 -#: stock/models.py:841 stock/serializers.py:1329 -#: stock/templates/stock/item_base.html:405 +#: company/templates/company/company_base.html:92 order/models.py:1017 +#: order/models.py:2186 order/templates/order/return_order_base.html:135 +#: order/templates/order/sales_order_base.html:152 stock/models.py:917 +#: stock/models.py:918 stock/serializers.py:1360 +#: stock/templates/stock/item_base.html:402 #: templates/email/overdue_sales_order.html:16 -#: templates/js/translated/company.js:503 +#: templates/js/translated/company.js:504 #: templates/js/translated/return_order.js:295 -#: templates/js/translated/sales_order.js:820 -#: templates/js/translated/stock.js:3043 +#: templates/js/translated/sales_order.js:779 +#: templates/js/translated/stock.js:3044 #: templates/js/translated/table_filters.js:820 msgid "Customer" msgstr "Cliente" @@ -4653,7 +4833,7 @@ msgid "Phone" msgstr "Teléfono" #: company/templates/company/company_base.html:211 -#: part/templates/part/part_base.html:536 +#: part/templates/part/part_base.html:544 msgid "Remove Image" msgstr "Eliminar imagen" @@ -4662,19 +4842,19 @@ msgid "Remove associated image from this company" msgstr "Eliminar imagen asociada a esta empresa" #: company/templates/company/company_base.html:214 -#: part/templates/part/part_base.html:539 +#: part/templates/part/part_base.html:547 #: templates/InvenTree/settings/user.html:88 #: templates/InvenTree/settings/user_sso.html:43 msgid "Remove" msgstr "Eliminar" #: company/templates/company/company_base.html:243 -#: part/templates/part/part_base.html:568 +#: part/templates/part/part_base.html:576 msgid "Upload Image" msgstr "Subir Imagen" #: company/templates/company/company_base.html:258 -#: part/templates/part/part_base.html:622 +#: part/templates/part/part_base.html:630 msgid "Download Image" msgstr "Descargar imagen" @@ -4714,7 +4894,7 @@ msgstr "Stock del Proveedor" #: company/templates/company/detail.html:75 #: company/templates/company/sidebar.html:12 #: company/templates/company/supplier_part_sidebar.html:7 -#: order/templates/order/order_base.html:13 +#: order/templates/order/order_base.html:14 #: order/templates/order/purchase_orders.html:8 #: order/templates/order/purchase_orders.html:12 #: part/templates/part/detail.html:122 part/templates/part/part_sidebar.html:35 @@ -4737,7 +4917,7 @@ msgstr "Nueva orden de compra" #: company/templates/company/detail.html:101 #: company/templates/company/sidebar.html:21 -#: order/templates/order/sales_order_base.html:13 +#: order/templates/order/sales_order_base.html:14 #: order/templates/order/sales_orders.html:8 #: order/templates/order/sales_orders.html:15 #: part/templates/part/detail.html:143 part/templates/part/part_sidebar.html:39 @@ -4764,7 +4944,7 @@ msgstr "Stock asignado" #: company/templates/company/detail.html:142 #: company/templates/company/sidebar.html:29 -#: order/templates/order/return_order_base.html:13 +#: order/templates/order/return_order_base.html:14 #: order/templates/order/return_orders.html:8 #: order/templates/order/return_orders.html:15 #: templates/InvenTree/settings/sidebar.html:61 @@ -4811,24 +4991,24 @@ msgid "Manufacturers" msgstr "Fabricantes" #: company/templates/company/manufacturer_part.html:35 -#: company/templates/company/supplier_part.html:227 -#: part/templates/part/detail.html:125 part/templates/part/part_base.html:83 +#: company/templates/company/supplier_part.html:228 +#: part/templates/part/detail.html:125 part/templates/part/part_base.html:84 msgid "Order part" msgstr "Pedir ítem" #: company/templates/company/manufacturer_part.html:39 -#: templates/js/translated/company.js:1343 +#: templates/js/translated/company.js:1344 msgid "Edit manufacturer part" msgstr "Editar fabricante de la parte" #: company/templates/company/manufacturer_part.html:43 -#: templates/js/translated/company.js:1344 +#: templates/js/translated/company.js:1345 msgid "Delete manufacturer part" msgstr "Eliminar fabricante de la parte" #: company/templates/company/manufacturer_part.html:65 -#: company/templates/company/supplier_part.html:97 order/api.py:448 -#: order/serializers.py:564 +#: company/templates/company/supplier_part.html:98 order/api.py:411 +#: order/serializers.py:649 msgid "Internal Part" msgstr "Componente interno" @@ -4837,8 +5017,8 @@ msgid "No manufacturer information available" msgstr "No hay información del fabricante disponible" #: company/templates/company/manufacturer_part.html:119 -#: company/templates/company/supplier_part.html:15 company/views.py:31 -#: part/admin.py:122 part/serializers.py:904 +#: company/templates/company/supplier_part.html:16 company/views.py:31 +#: part/admin.py:122 part/serializers.py:956 #: part/templates/part/part_sidebar.html:33 templates/InvenTree/search.html:190 #: templates/navbar.html:48 msgid "Suppliers" @@ -4887,112 +5067,113 @@ msgstr "Elementos de Stock Asignados" msgid "Contacts" msgstr "Contactos" -#: company/templates/company/supplier_part.html:50 -#: templates/js/translated/company.js:1526 +#: company/templates/company/supplier_part.html:51 +#: templates/js/translated/company.js:1527 msgid "Supplier part actions" msgstr "Acciones de partes del proveedor" -#: company/templates/company/supplier_part.html:55 #: company/templates/company/supplier_part.html:56 -#: company/templates/company/supplier_part.html:228 +#: company/templates/company/supplier_part.html:57 +#: company/templates/company/supplier_part.html:229 #: part/templates/part/detail.html:126 msgid "Order Part" msgstr "Pedir ítem" -#: company/templates/company/supplier_part.html:60 #: company/templates/company/supplier_part.html:61 +#: company/templates/company/supplier_part.html:62 msgid "Update Availability" msgstr "Actualizar disponibilidad" -#: company/templates/company/supplier_part.html:63 #: company/templates/company/supplier_part.html:64 -#: templates/js/translated/company.js:294 +#: company/templates/company/supplier_part.html:65 +#: templates/js/translated/company.js:295 msgid "Edit Supplier Part" msgstr "Editar Parte del Proveedor" -#: company/templates/company/supplier_part.html:68 #: company/templates/company/supplier_part.html:69 -#: templates/js/translated/company.js:269 +#: company/templates/company/supplier_part.html:70 +#: templates/js/translated/company.js:270 msgid "Duplicate Supplier Part" msgstr "Duplicar parte del proveedor" -#: company/templates/company/supplier_part.html:73 +#: company/templates/company/supplier_part.html:74 msgid "Delete Supplier Part" msgstr "Eliminar parte del proveedor" -#: company/templates/company/supplier_part.html:74 +#: company/templates/company/supplier_part.html:75 msgid "Delete Supplier Part" msgstr "Eliminar parte del proveedor" -#: company/templates/company/supplier_part.html:133 +#: company/templates/company/supplier_part.html:134 +#: order/templates/order/order_base.html:155 msgid "No supplier information available" msgstr "No hay información de proveedor disponible" -#: company/templates/company/supplier_part.html:139 order/serializers.py:553 -#: part/bom.py:287 part/bom.py:319 part/serializers.py:548 -#: templates/js/translated/company.js:349 templates/js/translated/part.js:1793 +#: company/templates/company/supplier_part.html:140 order/serializers.py:638 +#: part/bom.py:286 part/bom.py:315 part/serializers.py:592 +#: templates/js/translated/company.js:350 templates/js/translated/part.js:1793 #: templates/js/translated/pricing.js:510 -#: templates/js/translated/purchase_order.js:1920 -#: templates/js/translated/purchase_order.js:2098 +#: templates/js/translated/purchase_order.js:1904 +#: templates/js/translated/purchase_order.js:2082 msgid "SKU" -msgstr "" +msgstr "SKU" -#: company/templates/company/supplier_part.html:206 +#: company/templates/company/supplier_part.html:207 msgid "Supplier Part Stock" msgstr "Stock del Proveedor" -#: company/templates/company/supplier_part.html:209 -#: part/templates/part/detail.html:24 stock/templates/stock/location.html:204 +#: company/templates/company/supplier_part.html:210 +#: part/templates/part/detail.html:24 stock/templates/stock/location.html:205 msgid "Create new stock item" msgstr "Crear nuevo artículo de stock" -#: company/templates/company/supplier_part.html:210 -#: part/templates/part/detail.html:25 stock/templates/stock/location.html:205 +#: company/templates/company/supplier_part.html:211 +#: part/templates/part/detail.html:25 stock/templates/stock/location.html:206 #: templates/js/translated/stock.js:543 msgid "New Stock Item" msgstr "Nuevo artículo de stock" -#: company/templates/company/supplier_part.html:223 +#: company/templates/company/supplier_part.html:224 msgid "Supplier Part Orders" msgstr "Pedidos de partes al proveedor" -#: company/templates/company/supplier_part.html:246 +#: company/templates/company/supplier_part.html:247 msgid "Pricing Information" msgstr "Información de precios" -#: company/templates/company/supplier_part.html:251 -#: templates/js/translated/company.js:398 +#: company/templates/company/supplier_part.html:252 +#: templates/js/translated/company.js:399 #: templates/js/translated/pricing.js:684 msgid "Add Price Break" msgstr "Agregar descuento de precio" -#: company/templates/company/supplier_part.html:270 +#: company/templates/company/supplier_part.html:271 msgid "Supplier Part Notes" msgstr "" -#: company/templates/company/supplier_part.html:305 +#: company/templates/company/supplier_part.html:306 msgid "Supplier Part QR Code" msgstr "Código QR de parte del Proveedor" -#: company/templates/company/supplier_part.html:316 +#: company/templates/company/supplier_part.html:317 msgid "Link Barcode to Supplier Part" msgstr "" -#: company/templates/company/supplier_part.html:388 +#: company/templates/company/supplier_part.html:389 msgid "Update Part Availability" -msgstr "" +msgstr "Actualizar disponibilidad de la parte" #: company/templates/company/supplier_part_sidebar.html:5 -#: part/serializers.py:902 part/stocktake.py:223 +#: part/serializers.py:954 part/stocktake.py:223 #: part/templates/part/category.html:180 #: part/templates/part/category_sidebar.html:17 stock/admin.py:68 -#: stock/serializers.py:1014 stock/serializers.py:1192 -#: stock/templates/stock/location.html:167 -#: stock/templates/stock/location.html:188 -#: stock/templates/stock/location.html:200 +#: stock/serializers.py:1045 stock/serializers.py:1223 +#: stock/templates/stock/location.html:168 +#: stock/templates/stock/location.html:189 +#: stock/templates/stock/location.html:201 #: stock/templates/stock/location_sidebar.html:7 #: templates/InvenTree/search.html:155 templates/js/translated/part.js:1067 -#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2850 +#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2851 #: users/models.py:206 msgid "Stock Items" msgstr "Elementos de stock" @@ -5022,117 +5203,117 @@ msgstr "Nuevo Cliente" msgid "New Company" msgstr "Nueva empresa" -#: generic/states/tests.py:18 order/status_codes.py:13 +#: generic/states/fields.py:118 +msgid "Custom status key" +msgstr "Clave personalizada de estado" + +#: generic/states/fields.py:119 +msgid "Additional status information for this item" +msgstr "Información adicional de estado para este artículo" + +#: generic/states/tests.py:22 order/status_codes.py:13 msgid "Placed" msgstr "Colocado" -#: importer/mixins.py:263 +#: importer/mixins.py:261 msgid "Invalid export format" -msgstr "" +msgstr "Formato de exportación inválido" -#: importer/models.py:59 -msgid "Timestamp" -msgstr "" - -#: importer/models.py:64 +#: importer/models.py:65 msgid "Data file to import" -msgstr "" +msgstr "Archivo de datos a importar" -#: importer/models.py:73 templates/js/translated/tables.js:558 +#: importer/models.py:74 templates/js/translated/tables.js:558 msgid "Columns" -msgstr "" +msgstr "Columnas" -#: importer/models.py:84 +#: importer/models.py:85 msgid "Import status" msgstr "" -#: importer/models.py:94 +#: importer/models.py:95 msgid "Field Defaults" -msgstr "" +msgstr "Valores predeterminados del campo" -#: importer/models.py:101 +#: importer/models.py:102 msgid "Field Overrides" msgstr "" -#: importer/models.py:108 +#: importer/models.py:109 msgid "Field Filters" -msgstr "" +msgstr "Filtros del campo" -#: importer/models.py:230 +#: importer/models.py:239 msgid "Some required fields have not been mapped" -msgstr "" +msgstr "Algunos campos requeridos no han sido mapeados" -#: importer/models.py:387 +#: importer/models.py:396 msgid "Column is already mapped to a database field" -msgstr "" +msgstr "La columna ya fue mapeada a un campo de la base de datos" -#: importer/models.py:392 +#: importer/models.py:401 msgid "Field is already mapped to a data column" msgstr "" -#: importer/models.py:401 +#: importer/models.py:410 msgid "Column mapping must be linked to a valid import session" msgstr "" -#: importer/models.py:406 +#: importer/models.py:415 msgid "Column does not exist in the data file" -msgstr "" +msgstr "La columna no existe en el archivo de datos" -#: importer/models.py:413 +#: importer/models.py:422 msgid "Field does not exist in the target model" -msgstr "" - -#: importer/models.py:417 -msgid "Selected field is read-only" -msgstr "" - -#: importer/models.py:422 importer/models.py:493 -msgid "Import Session" -msgstr "" +msgstr "El campo no existe en el modelo destino" #: importer/models.py:426 +msgid "Selected field is read-only" +msgstr "El campo seleccionado es de solo lectura" + +#: importer/models.py:431 importer/models.py:502 +msgid "Import Session" +msgstr "Sesión de importación" + +#: importer/models.py:435 msgid "Field" -msgstr "" +msgstr "Campo" -#: importer/models.py:428 +#: importer/models.py:437 msgid "Column" -msgstr "" +msgstr "Columna" -#: importer/models.py:497 +#: importer/models.py:506 msgid "Row Index" -msgstr "" +msgstr "Número de fila" -#: importer/models.py:500 +#: importer/models.py:509 msgid "Original row data" -msgstr "" +msgstr "Datos de la fila original" -#: importer/models.py:503 part/models.py:3951 -msgid "Data" -msgstr "Datos" - -#: importer/models.py:505 machine/models.py:110 +#: importer/models.py:514 machine/models.py:110 msgid "Errors" msgstr "Errores" -#: importer/models.py:507 part/api.py:873 +#: importer/models.py:516 part/api.py:857 msgid "Valid" msgstr "Válido" #: importer/operations.py:28 importer/operations.py:49 msgid "Unsupported data file format" -msgstr "" +msgstr "Formato de archivo de datos no soportado" #: importer/operations.py:40 msgid "Failed to open data file" -msgstr "" +msgstr "Error al abrir el archivo de datos" #: importer/operations.py:51 msgid "Invalid data file dimensions" -msgstr "" +msgstr "Dimensiones del archivo de datos inválidas" #: importer/serializers.py:91 msgid "Invalid field defaults" -msgstr "" +msgstr "Valores predeterminados del campo inválidos" #: importer/serializers.py:104 msgid "Invalid field overrides" @@ -5140,114 +5321,114 @@ msgstr "" #: importer/serializers.py:117 msgid "Invalid field filters" -msgstr "" +msgstr "Filtros del campo inválidos" #: importer/serializers.py:178 msgid "Rows" -msgstr "" +msgstr "Filas" #: importer/serializers.py:179 msgid "List of row IDs to accept" -msgstr "" +msgstr "Listado de IDs de fila a aceptar" #: importer/serializers.py:192 msgid "No rows provided" -msgstr "" +msgstr "No hay filas" #: importer/serializers.py:196 msgid "Row does not belong to this session" -msgstr "" +msgstr "La fila no pertenece a esta sesión" #: importer/serializers.py:199 msgid "Row contains invalid data" -msgstr "" +msgstr "La fila contiene datos inválidos" #: importer/serializers.py:202 msgid "Row has already been completed" -msgstr "" - -#: importer/status_codes.py:11 -msgid "Initializing" -msgstr "" - -#: importer/status_codes.py:12 -msgid "Mapping Columns" -msgstr "" +msgstr "La fila ya se ha completado" #: importer/status_codes.py:13 -msgid "Importing Data" -msgstr "" +msgid "Initializing" +msgstr "Inicializando" -#: importer/status_codes.py:16 +#: importer/status_codes.py:18 +msgid "Mapping Columns" +msgstr "Mapeando columnas" + +#: importer/status_codes.py:21 +msgid "Importing Data" +msgstr "Importando datos" + +#: importer/status_codes.py:24 msgid "Processing Data" -msgstr "" +msgstr "Procesando datos" #: importer/validators.py:21 msgid "Data file exceeds maximum size limit" -msgstr "" +msgstr "El archivo de datos excede el tamaño máximo" #: importer/validators.py:26 msgid "Data file contains no headers" -msgstr "" +msgstr "El archivo de datos no tiene cabeceras" #: importer/validators.py:29 msgid "Data file contains too many columns" -msgstr "" +msgstr "El archivo de datos tiene demasiadas columnas" #: importer/validators.py:32 msgid "Data file contains too many rows" -msgstr "" +msgstr "El archivo de datos tiene demasiadas filas" #: importer/validators.py:53 msgid "Value must be a valid dictionary object" msgstr "" -#: machine/machine_types/label_printer.py:215 +#: machine/machine_types/label_printer.py:216 msgid "Copies" msgstr "Copias" -#: machine/machine_types/label_printer.py:216 +#: machine/machine_types/label_printer.py:217 msgid "Number of copies to print for each label" -msgstr "" +msgstr "Número de copias a imprimir para cada etiqueta" -#: machine/machine_types/label_printer.py:231 +#: machine/machine_types/label_printer.py:232 msgid "Connected" msgstr "Conectado" -#: machine/machine_types/label_printer.py:232 order/api.py:1410 -#: templates/js/translated/sales_order.js:1078 +#: machine/machine_types/label_printer.py:233 order/api.py:1532 +#: templates/js/translated/sales_order.js:1044 msgid "Unknown" msgstr "Desconocido" -#: machine/machine_types/label_printer.py:233 +#: machine/machine_types/label_printer.py:234 msgid "Printing" msgstr "Impresión" -#: machine/machine_types/label_printer.py:234 +#: machine/machine_types/label_printer.py:235 msgid "No media" msgstr "Sin archivos multimedia" -#: machine/machine_types/label_printer.py:235 -msgid "Paper jam" -msgstr "" - #: machine/machine_types/label_printer.py:236 +msgid "Paper jam" +msgstr "Atascamiento de papel" + +#: machine/machine_types/label_printer.py:237 msgid "Disconnected" msgstr "Desconectado" -#: machine/machine_types/label_printer.py:243 +#: machine/machine_types/label_printer.py:244 msgid "Label Printer" msgstr "Impresora de Etiquetas" -#: machine/machine_types/label_printer.py:244 +#: machine/machine_types/label_printer.py:245 msgid "Directly print labels for various items." msgstr "Imprime directamente etiquetas para varios artículos." -#: machine/machine_types/label_printer.py:250 +#: machine/machine_types/label_printer.py:251 msgid "Printer Location" msgstr "Ubicación de la Impresora" -#: machine/machine_types/label_printer.py:251 +#: machine/machine_types/label_printer.py:252 msgid "Scope the printer to a specific location" msgstr "" @@ -5307,79 +5488,75 @@ msgstr "" #: report/templates/report/inventree_purchase_order_report.html:31 #: report/templates/report/inventree_sales_order_report.html:31 #: templates/js/translated/order.js:352 -#: templates/js/translated/purchase_order.js:2195 -#: templates/js/translated/sales_order.js:1883 +#: templates/js/translated/purchase_order.js:2179 +#: templates/js/translated/sales_order.js:1864 msgid "Total Price" msgstr "Precio Total" -#: order/api.py:80 order/api.py:151 order/serializers.py:93 -#: order/templates/order/order_base.html:123 -#: order/templates/order/return_order_base.html:116 -#: order/templates/order/sales_order_base.html:125 +#: order/api.py:78 order/api.py:149 order/serializers.py:124 +#: order/templates/order/order_base.html:124 +#: order/templates/order/return_order_base.html:117 +#: order/templates/order/sales_order_base.html:126 msgid "Order Status" msgstr "Estado del pedido" -#: order/api.py:88 order/templates/order/order_base.html:111 -#: order/templates/order/return_order_base.html:104 -#: order/templates/order/sales_order_base.html:113 +#: order/api.py:86 order/templates/order/order_base.html:112 +#: order/templates/order/return_order_base.html:105 +#: order/templates/order/sales_order_base.html:114 msgid "Order Reference" msgstr "Referencia del pedido" -#: order/api.py:116 templates/js/translated/table_filters.js:93 +#: order/api.py:114 order/api.py:1022 +#: templates/js/translated/table_filters.js:93 #: templates/js/translated/table_filters.js:625 #: templates/js/translated/table_filters.js:651 #: templates/js/translated/table_filters.js:666 msgid "Outstanding" -msgstr "" +msgstr "Destacado" -#: order/api.py:132 +#: order/api.py:130 msgid "Has Project Code" -msgstr "" +msgstr "Tiene Código de Proyecto" -#: order/api.py:155 templates/js/translated/table_filters.js:201 +#: order/api.py:153 templates/js/translated/table_filters.js:201 #: templates/js/translated/table_filters.js:791 msgid "Has Pricing" -msgstr "" +msgstr "Tiene Precio" -#: order/api.py:230 -msgid "No matching purchase order found" -msgstr "No se encontró ninguna orden de compra coincidente" - -#: order/api.py:425 order/api.py:763 order/models.py:1484 order/models.py:1598 -#: order/models.py:1649 order/models.py:1764 order/models.py:1923 -#: order/models.py:2383 order/models.py:2439 -#: templates/js/translated/sales_order.js:1524 +#: order/api.py:375 order/api.py:771 order/api.py:986 order/models.py:1500 +#: order/models.py:1614 order/models.py:1665 order/models.py:1793 +#: order/models.py:1956 order/models.py:2422 order/models.py:2478 +#: templates/js/translated/sales_order.js:1490 msgid "Order" msgstr "Orden" -#: order/api.py:429 order/api.py:784 +#: order/api.py:379 order/api.py:809 msgid "Order Complete" -msgstr "" +msgstr "Orden completada" -#: order/api.py:452 +#: order/api.py:430 msgid "Order Pending" -msgstr "" +msgstr "Orden pendiente" -#: order/api.py:1404 order/models.py:379 order/models.py:1485 -#: order/models.py:1599 order/templates/order/order_base.html:9 -#: order/templates/order/order_base.html:18 +#: order/api.py:1526 order/models.py:386 order/models.py:1501 +#: order/models.py:1615 order/templates/order/order_base.html:10 +#: order/templates/order/order_base.html:19 #: report/templates/report/inventree_purchase_order_report.html:14 -#: stock/serializers.py:120 stock/templates/stock/item_base.html:176 +#: stock/serializers.py:121 stock/templates/stock/item_base.html:173 #: templates/email/overdue_purchase_order.html:15 #: templates/js/translated/part.js:1752 templates/js/translated/pricing.js:804 -#: templates/js/translated/purchase_order.js:168 -#: templates/js/translated/purchase_order.js:753 -#: templates/js/translated/purchase_order.js:1743 -#: templates/js/translated/stock.js:2345 templates/js/translated/stock.js:2991 +#: templates/js/translated/purchase_order.js:736 +#: templates/js/translated/purchase_order.js:1727 +#: templates/js/translated/stock.js:2346 templates/js/translated/stock.js:2992 msgid "Purchase Order" msgstr "Orden de compra" -#: order/api.py:1408 order/models.py:2091 order/models.py:2384 -#: order/models.py:2440 order/templates/order/return_order_base.html:9 -#: order/templates/order/return_order_base.html:28 +#: order/api.py:1530 order/models.py:2124 order/models.py:2423 +#: order/models.py:2479 order/templates/order/return_order_base.html:10 +#: order/templates/order/return_order_base.html:29 #: report/templates/report/inventree_return_order_report.html:13 #: templates/js/translated/return_order.js:280 -#: templates/js/translated/stock.js:3025 +#: templates/js/translated/stock.js:3026 msgid "Return Order" msgstr "Orden de devolución" @@ -5387,751 +5564,782 @@ msgstr "Orden de devolución" msgid "Total price for this order" msgstr "Precio total para este pedido" -#: order/models.py:95 order/serializers.py:71 +#: order/models.py:95 order/serializers.py:73 msgid "Order Currency" msgstr "Moneda de pedido" -#: order/models.py:98 order/serializers.py:72 +#: order/models.py:98 order/serializers.py:74 msgid "Currency for this order (leave blank to use company default)" msgstr "Moneda para este pedido (dejar en blanco para utilizar el valor predeterminado de la empresa)" -#: order/models.py:246 +#: order/models.py:243 msgid "Contact does not match selected company" msgstr "El contacto no coincide con la empresa seleccionada" -#: order/models.py:289 +#: order/models.py:296 msgid "Order description (optional)" msgstr "Descripción del pedido (opcional)" -#: order/models.py:298 +#: order/models.py:305 msgid "Select project code for this order" msgstr "Seleccione el código del proyecto para este pedido" -#: order/models.py:302 order/models.py:1385 order/models.py:1817 +#: order/models.py:309 order/models.py:1402 order/models.py:1846 msgid "Link to external page" msgstr "Enlace a Url externa" -#: order/models.py:310 +#: order/models.py:317 msgid "Expected date for order delivery. Order will be overdue after this date." msgstr "Fecha esperada para la entrega del pedido. El pedido se retrasará después de esta fecha." -#: order/models.py:324 +#: order/models.py:331 msgid "Created By" msgstr "Creado por" -#: order/models.py:332 +#: order/models.py:339 msgid "User or group responsible for this order" msgstr "Usuario o grupo responsable de este pedido" -#: order/models.py:343 +#: order/models.py:350 msgid "Point of contact for this order" msgstr "Punto de contacto para este pedido" -#: order/models.py:353 +#: order/models.py:360 msgid "Company address for this order" msgstr "Dirección de la empresa para este pedido" -#: order/models.py:468 order/models.py:979 +#: order/models.py:480 order/models.py:1006 msgid "Order reference" msgstr "Referencia del pedido" -#: order/models.py:477 +#: order/models.py:489 msgid "Purchase order status" msgstr "Estado de la orden de compra" -#: order/models.py:492 +#: order/models.py:504 msgid "Company from which the items are being ordered" msgstr "Empresa de la cual se están encargando los artículos" -#: order/models.py:503 order/templates/order/order_base.html:153 -#: templates/js/translated/purchase_order.js:1772 +#: order/models.py:515 order/templates/order/order_base.html:162 +#: templates/js/translated/purchase_order.js:1756 msgid "Supplier Reference" msgstr "Referencia del proveedor" -#: order/models.py:504 +#: order/models.py:516 msgid "Supplier order reference code" msgstr "Código de referencia de pedido del proveedor" -#: order/models.py:513 +#: order/models.py:525 msgid "received by" msgstr "recibido por" -#: order/models.py:519 order/models.py:2173 +#: order/models.py:531 order/models.py:2212 msgid "Issue Date" msgstr "Fecha de emisión" -#: order/models.py:520 order/models.py:2174 +#: order/models.py:532 order/models.py:2213 msgid "Date order was issued" msgstr "Fecha de expedición del pedido" -#: order/models.py:527 order/models.py:2181 +#: order/models.py:539 order/models.py:2220 msgid "Date order was completed" msgstr "La fecha de pedido fue completada" -#: order/models.py:571 +#: order/models.py:549 order/models.py:1552 +msgid "Destination for received items" +msgstr "" + +#: order/models.py:593 msgid "Part supplier must match PO supplier" msgstr "El proveedor de la parte debe coincidir con el proveedor de PO" -#: order/models.py:806 +#: order/models.py:828 msgid "Quantity must be a positive number" msgstr "La cantidad debe ser un número positivo" -#: order/models.py:991 +#: order/models.py:1018 msgid "Company to which the items are being sold" msgstr "Empresa a la que se venden los artículos" -#: order/models.py:1003 +#: order/models.py:1030 msgid "Sales order status" -msgstr "" +msgstr "Estado de la orden de venta" -#: order/models.py:1014 order/models.py:2166 +#: order/models.py:1041 order/models.py:2205 msgid "Customer Reference " msgstr "Referencia del cliente " -#: order/models.py:1015 order/models.py:2167 +#: order/models.py:1042 order/models.py:2206 msgid "Customer order reference code" msgstr "Código de referencia de pedido del cliente" -#: order/models.py:1019 order/models.py:1771 -#: templates/js/translated/sales_order.js:879 -#: templates/js/translated/sales_order.js:1060 +#: order/models.py:1046 order/models.py:1800 +#: templates/js/translated/sales_order.js:838 +#: templates/js/translated/sales_order.js:1026 msgid "Shipment Date" msgstr "Fecha de envío" -#: order/models.py:1028 +#: order/models.py:1055 msgid "shipped by" msgstr "enviado por" -#: order/models.py:1077 +#: order/models.py:1094 msgid "Order is already complete" -msgstr "" +msgstr "La orden ya fue completada" -#: order/models.py:1080 +#: order/models.py:1097 msgid "Order is already cancelled" -msgstr "" +msgstr "La orden ya fue cancelada" -#: order/models.py:1084 +#: order/models.py:1101 msgid "Only an open order can be marked as complete" msgstr "Sólo una orden abierta puede ser marcada como completa" -#: order/models.py:1088 +#: order/models.py:1105 msgid "Order cannot be completed as there are incomplete shipments" msgstr "El pedido no se puede completar porque hay envíos incompletos" -#: order/models.py:1093 +#: order/models.py:1110 msgid "Order cannot be completed as there are incomplete line items" msgstr "El pedido no se puede completar porque hay partidas incompletas" -#: order/models.py:1357 +#: order/models.py:1374 msgid "Item quantity" msgstr "Cantidad del artículo" -#: order/models.py:1374 +#: order/models.py:1391 msgid "Line item reference" msgstr "Referencia de partida" -#: order/models.py:1381 +#: order/models.py:1398 msgid "Line item notes" msgstr "Notas de partida" -#: order/models.py:1393 +#: order/models.py:1410 msgid "Target date for this line item (leave blank to use the target date from the order)" msgstr "Fecha objetivo para esta partida (dejar en blanco para usar la fecha de destino de la orden)" -#: order/models.py:1414 +#: order/models.py:1431 msgid "Line item description (optional)" msgstr "Descripción de partida (opcional)" -#: order/models.py:1420 -msgid "Context" -msgstr "Contexto" - -#: order/models.py:1421 +#: order/models.py:1438 msgid "Additional context for this line" msgstr "Contexto adicional para esta línea" -#: order/models.py:1431 +#: order/models.py:1448 msgid "Unit price" msgstr "Precio unitario" -#: order/models.py:1445 +#: order/models.py:1462 msgid "Purchase Order Line Item" msgstr "" -#: order/models.py:1469 +#: order/models.py:1486 msgid "Supplier part must match supplier" msgstr "La parte del proveedor debe coincidir con el proveedor" -#: order/models.py:1476 -msgid "deleted" -msgstr "eliminado" - -#: order/models.py:1504 +#: order/models.py:1520 msgid "Supplier part" msgstr "Parte del proveedor" -#: order/models.py:1511 order/templates/order/order_base.html:201 +#: order/models.py:1527 order/templates/order/order_base.html:210 #: templates/js/translated/part.js:1876 templates/js/translated/part.js:1908 -#: templates/js/translated/purchase_order.js:1369 -#: templates/js/translated/purchase_order.js:2239 +#: templates/js/translated/purchase_order.js:1352 +#: templates/js/translated/purchase_order.js:2223 #: templates/js/translated/return_order.js:762 #: templates/js/translated/table_filters.js:119 #: templates/js/translated/table_filters.js:605 msgid "Received" msgstr "Recibido" -#: order/models.py:1512 +#: order/models.py:1528 msgid "Number of items received" msgstr "Número de artículos recibidos" -#: order/models.py:1520 stock/models.py:959 stock/serializers.py:610 -#: stock/templates/stock/item_base.html:183 -#: templates/js/translated/stock.js:2396 +#: order/models.py:1536 stock/models.py:1036 stock/serializers.py:637 +#: stock/templates/stock/item_base.html:180 +#: templates/js/translated/stock.js:2397 msgid "Purchase Price" msgstr "Precio de Compra" -#: order/models.py:1521 +#: order/models.py:1537 msgid "Unit purchase price" msgstr "Precio de compra unitario" -#: order/models.py:1536 -msgid "Where does the Purchaser want this item to be stored?" -msgstr "¿Dónde quiere el comprador almacenar este objeto?" - -#: order/models.py:1587 +#: order/models.py:1603 msgid "Purchase Order Extra Line" msgstr "" -#: order/models.py:1616 +#: order/models.py:1632 msgid "Sales Order Line Item" msgstr "" -#: order/models.py:1637 +#: order/models.py:1653 msgid "Virtual part cannot be assigned to a sales order" msgstr "Una parte virtual no puede ser asignada a un pedido de venta" -#: order/models.py:1642 +#: order/models.py:1658 msgid "Only salable parts can be assigned to a sales order" msgstr "Sólo las partes vendibles pueden ser asignadas a un pedido de venta" -#: order/models.py:1668 part/templates/part/part_pricing.html:107 -#: part/templates/part/prices.html:139 templates/js/translated/pricing.js:957 +#: order/models.py:1684 part/templates/part/part_pricing.html:107 +#: part/templates/part/prices.html:139 templates/js/translated/pricing.js:955 msgid "Sale Price" msgstr "Precio de Venta" -#: order/models.py:1669 +#: order/models.py:1685 msgid "Unit sale price" msgstr "Precio de venta unitario" -#: order/models.py:1678 order/status_codes.py:48 -#: templates/js/translated/sales_order.js:1559 -#: templates/js/translated/sales_order.js:1680 -#: templates/js/translated/sales_order.js:1993 +#: order/models.py:1694 order/status_codes.py:50 +#: templates/js/translated/sales_order.js:1525 +#: templates/js/translated/sales_order.js:1661 +#: templates/js/translated/sales_order.js:1974 msgid "Shipped" msgstr "Enviado" -#: order/models.py:1679 +#: order/models.py:1695 msgid "Shipped quantity" msgstr "Cantidad enviada" -#: order/models.py:1751 +#: order/models.py:1769 msgid "Sales Order Shipment" msgstr "" -#: order/models.py:1772 +#: order/models.py:1801 msgid "Date of shipment" msgstr "Fecha del envío" -#: order/models.py:1778 templates/js/translated/sales_order.js:1072 +#: order/models.py:1807 templates/js/translated/sales_order.js:1038 msgid "Delivery Date" msgstr "Fecha de entrega" -#: order/models.py:1779 +#: order/models.py:1808 msgid "Date of delivery of shipment" msgstr "Fecha de entrega del envío" -#: order/models.py:1787 +#: order/models.py:1816 msgid "Checked By" msgstr "Revisado por" -#: order/models.py:1788 +#: order/models.py:1817 msgid "User who checked this shipment" msgstr "Usuario que revisó este envío" -#: order/models.py:1795 order/models.py:2018 order/serializers.py:1475 -#: order/serializers.py:1585 templates/js/translated/model_renderers.js:455 +#: order/models.py:1824 order/models.py:2051 order/serializers.py:1601 +#: order/serializers.py:1725 +#: report/templates/report/inventree_sales_order_shipment_report.html:14 +#: templates/js/translated/model_renderers.js:458 +#: templates/js/translated/sales_order.js:1615 msgid "Shipment" msgstr "Envío" -#: order/models.py:1796 +#: order/models.py:1825 msgid "Shipment number" msgstr "Número de envío" -#: order/models.py:1804 +#: order/models.py:1833 msgid "Tracking Number" msgstr "Número de Seguimiento" -#: order/models.py:1805 +#: order/models.py:1834 msgid "Shipment tracking information" msgstr "Información de seguimiento del envío" -#: order/models.py:1812 +#: order/models.py:1841 msgid "Invoice Number" msgstr "Número de factura" -#: order/models.py:1813 +#: order/models.py:1842 msgid "Reference number for associated invoice" msgstr "Número de referencia para la factura asociada" -#: order/models.py:1833 +#: order/models.py:1862 msgid "Shipment has already been sent" msgstr "El envío ya ha sido enviado" -#: order/models.py:1836 +#: order/models.py:1865 msgid "Shipment has no allocated stock items" msgstr "El envío no tiene artículos de stock asignados" -#: order/models.py:1912 +#: order/models.py:1945 msgid "Sales Order Extra Line" msgstr "" -#: order/models.py:1941 +#: order/models.py:1974 msgid "Sales Order Allocation" msgstr "" -#: order/models.py:1964 order/models.py:1966 +#: order/models.py:1997 order/models.py:1999 msgid "Stock item has not been assigned" msgstr "El artículo de stock no ha sido asignado" -#: order/models.py:1973 +#: order/models.py:2006 msgid "Cannot allocate stock item to a line with a different part" msgstr "No se puede asignar el artículo de stock a una línea con una parte diferente" -#: order/models.py:1976 +#: order/models.py:2009 msgid "Cannot allocate stock to a line without a part" msgstr "No se puede asignar stock a una línea sin una parte" -#: order/models.py:1979 +#: order/models.py:2012 msgid "Allocation quantity cannot exceed stock quantity" msgstr "La cantidad de asignación no puede exceder la cantidad de stock" -#: order/models.py:1998 order/serializers.py:1345 +#: order/models.py:2031 order/serializers.py:1471 msgid "Quantity must be 1 for serialized stock item" msgstr "La cantidad debe ser 1 para el stock serializado" -#: order/models.py:2001 +#: order/models.py:2034 msgid "Sales order does not match shipment" msgstr "La orden de venta no coincide con el envío" -#: order/models.py:2002 plugin/base/barcodes/api.py:524 +#: order/models.py:2035 plugin/base/barcodes/api.py:629 msgid "Shipment does not match sales order" msgstr "El envío no coincide con el pedido de venta" -#: order/models.py:2010 +#: order/models.py:2043 msgid "Line" msgstr "Línea" -#: order/models.py:2019 +#: order/models.py:2052 msgid "Sales order shipment reference" msgstr "Referencia del envío del pedido de venta" -#: order/models.py:2032 order/models.py:2391 +#: order/models.py:2065 order/models.py:2430 #: templates/js/translated/return_order.js:720 msgid "Item" msgstr "Ítem" -#: order/models.py:2033 +#: order/models.py:2066 msgid "Select stock item to allocate" msgstr "Seleccionar artículo de stock para asignar" -#: order/models.py:2042 +#: order/models.py:2075 msgid "Enter stock allocation quantity" msgstr "Especificar la cantidad de asignación de stock" -#: order/models.py:2136 +#: order/models.py:2175 msgid "Return Order reference" msgstr "Referencia de la orden de devolución" -#: order/models.py:2148 +#: order/models.py:2187 msgid "Company from which items are being returned" msgstr "Empresa de la cual se están devolviendo los artículos" -#: order/models.py:2160 +#: order/models.py:2199 msgid "Return order status" msgstr "Estado de la orden de devolución" -#: order/models.py:2362 +#: order/models.py:2401 msgid "Return Order Line Item" msgstr "" -#: order/models.py:2376 +#: order/models.py:2415 msgid "Only serialized items can be assigned to a Return Order" msgstr "Sólo los artículos serializados pueden ser asignados a una orden de devolución" -#: order/models.py:2392 +#: order/models.py:2431 msgid "Select item to return from customer" msgstr "Seleccionar el artículo a devolver del cliente" -#: order/models.py:2398 +#: order/models.py:2437 msgid "Received Date" msgstr "Fecha de recepción" -#: order/models.py:2399 +#: order/models.py:2438 msgid "The date this this return item was received" msgstr "La fecha en la que se recibió este artículo de devolución" -#: order/models.py:2410 templates/js/translated/return_order.js:731 +#: order/models.py:2449 templates/js/translated/return_order.js:731 #: templates/js/translated/table_filters.js:122 msgid "Outcome" msgstr "Resultado" -#: order/models.py:2411 +#: order/models.py:2450 msgid "Outcome for this line item" msgstr "Salida para esta partida" -#: order/models.py:2418 +#: order/models.py:2457 msgid "Cost associated with return or repair for this line item" msgstr "Costo asociado con la devolución o reparación para esta partida" -#: order/models.py:2428 +#: order/models.py:2467 msgid "Return Order Extra Line" msgstr "" -#: order/serializers.py:86 -msgid "Completed Lines" +#: order/serializers.py:87 +msgid "Order ID" msgstr "" -#: order/serializers.py:283 stock/admin.py:195 +#: order/serializers.py:87 +msgid "ID of the order to duplicate" +msgstr "" + +#: order/serializers.py:93 +msgid "Copy Lines" +msgstr "" + +#: order/serializers.py:94 +msgid "Copy line items from the original order" +msgstr "" + +#: order/serializers.py:100 +msgid "Copy Extra Lines" +msgstr "" + +#: order/serializers.py:101 +msgid "Copy extra line items from the original order" +msgstr "" + +#: order/serializers.py:117 +msgid "Completed Lines" +msgstr "Líneas completadas" + +#: order/serializers.py:161 +msgid "Duplicate Order" +msgstr "" + +#: order/serializers.py:162 +msgid "Specify options for duplicating this order" +msgstr "" + +#: order/serializers.py:234 +msgid "Invalid order ID" +msgstr "" + +#: order/serializers.py:374 stock/admin.py:196 msgid "Supplier Name" msgstr "Nombre del proveedor" -#: order/serializers.py:331 +#: order/serializers.py:416 msgid "Order cannot be cancelled" msgstr "El pedido no puede ser cancelado" -#: order/serializers.py:346 order/serializers.py:1366 +#: order/serializers.py:431 order/serializers.py:1492 msgid "Allow order to be closed with incomplete line items" msgstr "Permitir cerrar el pedido con partidas incompletas" -#: order/serializers.py:356 order/serializers.py:1376 +#: order/serializers.py:441 order/serializers.py:1502 msgid "Order has incomplete line items" msgstr "El pedido tiene partidas incompletas" -#: order/serializers.py:506 +#: order/serializers.py:591 msgid "Order is not open" msgstr "El pedido no está abierto" -#: order/serializers.py:527 +#: order/serializers.py:612 msgid "Auto Pricing" -msgstr "" +msgstr "Precio automático" -#: order/serializers.py:529 +#: order/serializers.py:614 msgid "Automatically calculate purchase price based on supplier part data" -msgstr "" +msgstr "Calcular precio de compra automáticamente con base en los datos del proveedor" -#: order/serializers.py:539 +#: order/serializers.py:624 msgid "Purchase price currency" msgstr "Moneda del precio de compra" -#: order/serializers.py:545 +#: order/serializers.py:630 msgid "Merge Items" -msgstr "" +msgstr "Combinar artículos" -#: order/serializers.py:547 +#: order/serializers.py:632 msgid "Merge items with the same part, destination and target date into one line item" msgstr "" -#: order/serializers.py:560 part/models.py:1033 +#: order/serializers.py:645 part/models.py:1094 part/serializers.py:387 msgid "Internal Part Number" msgstr "Número de parte interna" -#: order/serializers.py:568 +#: order/serializers.py:653 msgid "Internal Part Name" -msgstr "" +msgstr "Nombre interno de parte" -#: order/serializers.py:584 +#: order/serializers.py:669 msgid "Supplier part must be specified" msgstr "Debe especificar la parte del proveedor" -#: order/serializers.py:587 +#: order/serializers.py:672 msgid "Purchase order must be specified" msgstr "La orden de compra debe especificarse" -#: order/serializers.py:595 +#: order/serializers.py:680 msgid "Supplier must match purchase order" msgstr "El proveedor debe coincidir con la orden de compra" -#: order/serializers.py:596 +#: order/serializers.py:681 msgid "Purchase order must match supplier" msgstr "La orden de compra debe coincidir con el proveedor" -#: order/serializers.py:639 order/serializers.py:1446 +#: order/serializers.py:724 order/serializers.py:1572 msgid "Line Item" msgstr "Partida" -#: order/serializers.py:645 +#: order/serializers.py:730 msgid "Line item does not match purchase order" msgstr "La partida no coincide con la orden de compra" -#: order/serializers.py:655 order/serializers.py:779 order/serializers.py:1782 +#: order/serializers.py:740 order/serializers.py:881 order/serializers.py:1934 msgid "Select destination location for received items" msgstr "Seleccione la ubicación de destino para los artículos recibidos" -#: order/serializers.py:671 templates/js/translated/purchase_order.js:1130 +#: order/serializers.py:756 templates/js/translated/purchase_order.js:1113 #: templates/js/translated/stock.js:1200 msgid "Enter batch code for incoming stock items" msgstr "Introduzca el código de lote para los artículos de almacén entrantes" -#: order/serializers.py:679 templates/js/translated/purchase_order.js:1155 +#: order/serializers.py:764 templates/js/translated/purchase_order.js:1138 msgid "Enter serial numbers for incoming stock items" msgstr "Introduzca números de serie para artículos de almacén entrantes" -#: order/serializers.py:691 +#: order/serializers.py:776 msgid "Override packaging information for incoming stock items" msgstr "" -#: order/serializers.py:699 +#: order/serializers.py:784 msgid "Additional note for incoming stock items" msgstr "" -#: order/serializers.py:706 templates/js/translated/barcode.js:52 +#: order/serializers.py:791 templates/js/translated/barcode.js:52 msgid "Barcode" msgstr "Código de barras" -#: order/serializers.py:707 +#: order/serializers.py:792 msgid "Scanned barcode" msgstr "Código de barras escaneado" -#: order/serializers.py:723 +#: order/serializers.py:808 msgid "Barcode is already in use" msgstr "Código de barras en uso" -#: order/serializers.py:747 +#: order/serializers.py:831 msgid "An integer quantity must be provided for trackable parts" msgstr "Debe proporcionarse una cantidad entera para las partes rastreables" -#: order/serializers.py:795 order/serializers.py:1798 +#: order/serializers.py:898 order/serializers.py:1950 msgid "Line items must be provided" msgstr "Se deben proporcionar las partidas" -#: order/serializers.py:811 +#: order/serializers.py:914 msgid "Destination location must be specified" msgstr "Se requiere ubicación de destino" -#: order/serializers.py:822 +#: order/serializers.py:925 msgid "Supplied barcode values must be unique" msgstr "Los valores del código de barras deben ser únicos" -#: order/serializers.py:1187 +#: order/serializers.py:1221 msgid "Sale price currency" msgstr "Moneda del precio de venta" -#: order/serializers.py:1248 +#: order/serializers.py:1260 +msgid "Allocated Items" +msgstr "" + +#: order/serializers.py:1374 msgid "No shipment details provided" msgstr "No se proporcionaron detalles de envío" -#: order/serializers.py:1309 order/serializers.py:1455 +#: order/serializers.py:1435 order/serializers.py:1581 msgid "Line item is not associated with this order" msgstr "La partida no está asociada con este pedido" -#: order/serializers.py:1328 +#: order/serializers.py:1454 msgid "Quantity must be positive" msgstr "La cantidad debe ser positiva" -#: order/serializers.py:1465 +#: order/serializers.py:1591 msgid "Enter serial numbers to allocate" msgstr "Introduzca números de serie para asignar" -#: order/serializers.py:1487 order/serializers.py:1593 +#: order/serializers.py:1613 order/serializers.py:1733 msgid "Shipment has already been shipped" msgstr "El envío ya ha sido enviado" -#: order/serializers.py:1490 order/serializers.py:1596 +#: order/serializers.py:1616 order/serializers.py:1736 msgid "Shipment is not associated with this order" msgstr "El envío no está asociado con este pedido" -#: order/serializers.py:1537 +#: order/serializers.py:1671 msgid "No match found for the following serial numbers" msgstr "No se han encontrado coincidencias para los siguientes números de serie" -#: order/serializers.py:1544 -msgid "The following serial numbers are already allocated" -msgstr "Los siguientes números de serie ya están asignados" +#: order/serializers.py:1678 +msgid "The following serial numbers are unavailable" +msgstr "" -#: order/serializers.py:1752 +#: order/serializers.py:1904 msgid "Return order line item" msgstr "Partida de orden de devolución" -#: order/serializers.py:1758 +#: order/serializers.py:1910 msgid "Line item does not match return order" msgstr "La partida no coincide con la orden de devolución" -#: order/serializers.py:1761 +#: order/serializers.py:1913 msgid "Line item has already been received" msgstr "La partida ya ha sido recibida" -#: order/serializers.py:1790 +#: order/serializers.py:1942 msgid "Items can only be received against orders which are in progress" msgstr "Los artículos sólo pueden ser recibidos contra pedidos en curso" -#: order/serializers.py:1873 +#: order/serializers.py:2025 msgid "Line price currency" msgstr "Moneda de precio de línea" -#: order/status_codes.py:17 order/status_codes.py:52 stock/status_codes.py:16 +#: order/status_codes.py:17 order/status_codes.py:54 stock/status_codes.py:16 msgid "Lost" msgstr "Perdida" -#: order/status_codes.py:18 order/status_codes.py:53 stock/status_codes.py:22 +#: order/status_codes.py:18 order/status_codes.py:55 stock/status_codes.py:24 msgid "Returned" msgstr "Devuelto" -#: order/status_codes.py:45 order/status_codes.py:77 +#: order/status_codes.py:47 order/status_codes.py:79 msgid "In Progress" msgstr "En progreso" -#: order/status_codes.py:101 +#: order/status_codes.py:105 msgid "Return" msgstr "Devolución" -#: order/status_codes.py:104 +#: order/status_codes.py:108 msgid "Repair" msgstr "Reparación" -#: order/status_codes.py:107 +#: order/status_codes.py:111 msgid "Replace" msgstr "Reemplazo" -#: order/status_codes.py:110 +#: order/status_codes.py:114 msgid "Refund" msgstr "Reembolso" -#: order/status_codes.py:113 +#: order/status_codes.py:117 msgid "Reject" msgstr "Rechazo" -#: order/tasks.py:25 +#: order/tasks.py:30 msgid "Overdue Purchase Order" msgstr "Orden de compra atrasada" -#: order/tasks.py:30 +#: order/tasks.py:35 #, python-brace-format msgid "Purchase order {po} is now overdue" msgstr "La orden de compra {po} está atrasada" -#: order/tasks.py:75 +#: order/tasks.py:80 msgid "Overdue Sales Order" msgstr "Orden de venta atrasada" -#: order/tasks.py:80 +#: order/tasks.py:85 #, python-brace-format msgid "Sales order {so} is now overdue" msgstr "La orden de venta {so} está atrasada" -#: order/templates/order/order_base.html:51 +#: order/templates/order/order_base.html:52 msgid "Print purchase order report" msgstr "Imprimir informe de orden de compra" -#: order/templates/order/order_base.html:53 -#: order/templates/order/return_order_base.html:62 -#: order/templates/order/sales_order_base.html:62 +#: order/templates/order/order_base.html:54 +#: order/templates/order/return_order_base.html:63 +#: order/templates/order/sales_order_base.html:63 msgid "Export order to file" msgstr "Exportar pedido a archivo" -#: order/templates/order/order_base.html:59 -#: order/templates/order/return_order_base.html:72 -#: order/templates/order/sales_order_base.html:71 +#: order/templates/order/order_base.html:60 +#: order/templates/order/return_order_base.html:73 +#: order/templates/order/sales_order_base.html:72 msgid "Order actions" msgstr "Acciones de pedido" -#: order/templates/order/order_base.html:64 -#: order/templates/order/return_order_base.html:76 -#: order/templates/order/sales_order_base.html:75 +#: order/templates/order/order_base.html:65 +#: order/templates/order/return_order_base.html:77 +#: order/templates/order/sales_order_base.html:76 msgid "Edit order" msgstr "Editar pedido" -#: order/templates/order/order_base.html:68 +#: order/templates/order/order_base.html:69 msgid "Duplicate order" msgstr "Duplicar orden" -#: order/templates/order/order_base.html:73 -#: order/templates/order/return_order_base.html:78 -#: order/templates/order/sales_order_base.html:77 +#: order/templates/order/order_base.html:74 +#: order/templates/order/return_order_base.html:79 +#: order/templates/order/sales_order_base.html:78 msgid "Hold order" -msgstr "" +msgstr "Retener pedido" -#: order/templates/order/order_base.html:78 -#: order/templates/order/return_order_base.html:81 -#: order/templates/order/sales_order_base.html:80 +#: order/templates/order/order_base.html:79 +#: order/templates/order/return_order_base.html:82 +#: order/templates/order/sales_order_base.html:81 msgid "Cancel order" msgstr "Cancelar orden" -#: order/templates/order/order_base.html:84 #: order/templates/order/order_base.html:85 -#: order/templates/order/return_order_base.html:85 +#: order/templates/order/order_base.html:86 #: order/templates/order/return_order_base.html:86 -#: order/templates/order/sales_order_base.html:86 +#: order/templates/order/return_order_base.html:87 #: order/templates/order/sales_order_base.html:87 +#: order/templates/order/sales_order_base.html:88 msgid "Issue Order" msgstr "Emitir pedido" -#: order/templates/order/order_base.html:88 -#: order/templates/order/return_order_base.html:89 +#: order/templates/order/order_base.html:89 +#: order/templates/order/return_order_base.html:90 msgid "Mark order as complete" msgstr "Marcar pedido como completado" -#: order/templates/order/order_base.html:89 -#: order/templates/order/return_order_base.html:90 -#: order/templates/order/sales_order_base.html:100 +#: order/templates/order/order_base.html:90 +#: order/templates/order/return_order_base.html:91 +#: order/templates/order/sales_order_base.html:101 msgid "Complete Order" msgstr "Completar pedido" -#: order/templates/order/order_base.html:96 +#: order/templates/order/order_base.html:97 msgid "Supplier part thumbnail" msgstr "Miniatura de la parte del proveedor" -#: order/templates/order/order_base.html:116 -#: order/templates/order/return_order_base.html:109 -#: order/templates/order/sales_order_base.html:118 +#: order/templates/order/order_base.html:117 +#: order/templates/order/return_order_base.html:110 +#: order/templates/order/sales_order_base.html:119 msgid "Order Description" msgstr "Descripción del pedido" -#: order/templates/order/order_base.html:146 -msgid "No suppplier information available" -msgstr "No hay información disponible sobre el proveedor" - -#: order/templates/order/order_base.html:159 -#: order/templates/order/sales_order_base.html:164 +#: order/templates/order/order_base.html:168 +#: order/templates/order/sales_order_base.html:165 msgid "Completed Line Items" msgstr "Partidas completadas" -#: order/templates/order/order_base.html:165 -#: order/templates/order/sales_order_base.html:170 -#: order/templates/order/sales_order_base.html:180 +#: order/templates/order/order_base.html:174 +#: order/templates/order/sales_order_base.html:171 +#: order/templates/order/sales_order_base.html:181 msgid "Incomplete" msgstr "Incompleto" -#: order/templates/order/order_base.html:184 -#: order/templates/order/return_order_base.html:160 +#: order/templates/order/order_base.html:193 +#: order/templates/order/return_order_base.html:161 #: report/templates/report/inventree_build_order_report.html:121 msgid "Issued" msgstr "Emitido" -#: order/templates/order/order_base.html:229 +#: order/templates/order/order_base.html:238 msgid "Total cost" msgstr "Costo total" -#: order/templates/order/order_base.html:233 -#: order/templates/order/return_order_base.html:202 -#: order/templates/order/sales_order_base.html:246 +#: order/templates/order/order_base.html:242 +#: order/templates/order/return_order_base.html:203 +#: order/templates/order/sales_order_base.html:247 msgid "Total cost could not be calculated" msgstr "No se ha podido calcular el costo total" -#: order/templates/order/order_base.html:335 +#: order/templates/order/order_base.html:344 msgid "Purchase Order QR Code" msgstr "" -#: order/templates/order/order_base.html:347 +#: order/templates/order/order_base.html:356 msgid "Link Barcode to Purchase Order" msgstr "" @@ -6184,12 +6392,12 @@ msgstr "Duplicar selección" #: part/templates/part/import_wizard/ajax_match_references.html:42 #: part/templates/part/import_wizard/match_fields.html:71 #: part/templates/part/import_wizard/match_references.html:49 -#: templates/js/translated/bom.js:133 templates/js/translated/build.js:530 -#: templates/js/translated/build.js:1802 -#: templates/js/translated/purchase_order.js:696 -#: templates/js/translated/purchase_order.js:1288 +#: templates/js/translated/bom.js:133 templates/js/translated/build.js:533 +#: templates/js/translated/build.js:1805 +#: templates/js/translated/purchase_order.js:679 +#: templates/js/translated/purchase_order.js:1271 #: templates/js/translated/return_order.js:505 -#: templates/js/translated/sales_order.js:1145 +#: templates/js/translated/sales_order.js:1111 #: templates/js/translated/stock.js:720 templates/js/translated/stock.js:889 #: templates/patterns/wizard/match_fields.html:70 msgid "Remove row" @@ -6242,7 +6450,7 @@ msgstr "Comprar artículos de orden" #: order/templates/order/purchase_order_detail.html:27 #: order/templates/order/return_order_detail.html:24 #: order/templates/order/sales_order_detail.html:24 -#: templates/js/translated/purchase_order.js:414 +#: templates/js/translated/purchase_order.js:397 #: templates/js/translated/return_order.js:458 #: templates/js/translated/sales_order.js:237 msgid "Add Line Item" @@ -6277,45 +6485,45 @@ msgstr "Articulos Recibidos" msgid "Order Notes" msgstr "Notas del pedido" -#: order/templates/order/return_order_base.html:18 -#: order/templates/order/sales_order_base.html:18 +#: order/templates/order/return_order_base.html:19 +#: order/templates/order/sales_order_base.html:19 msgid "Customer logo thumbnail" msgstr "Miniatura del logo del cliente" -#: order/templates/order/return_order_base.html:60 +#: order/templates/order/return_order_base.html:61 msgid "Print return order report" msgstr "Imprimir informe de orden de devolución" -#: order/templates/order/return_order_base.html:64 -#: order/templates/order/sales_order_base.html:64 +#: order/templates/order/return_order_base.html:65 +#: order/templates/order/sales_order_base.html:65 msgid "Print packing list" msgstr "Imprimir lista de empaquetado" -#: order/templates/order/return_order_base.html:141 -#: order/templates/order/sales_order_base.html:158 +#: order/templates/order/return_order_base.html:142 +#: order/templates/order/sales_order_base.html:159 #: templates/js/translated/return_order.js:308 -#: templates/js/translated/sales_order.js:833 +#: templates/js/translated/sales_order.js:792 msgid "Customer Reference" msgstr "Referencia del cliente" -#: order/templates/order/return_order_base.html:198 -#: order/templates/order/sales_order_base.html:242 +#: order/templates/order/return_order_base.html:199 +#: order/templates/order/sales_order_base.html:243 #: part/templates/part/part_pricing.html:32 #: part/templates/part/part_pricing.html:58 #: part/templates/part/part_pricing.html:99 #: part/templates/part/part_pricing.html:114 #: templates/js/translated/part.js:1079 -#: templates/js/translated/purchase_order.js:1822 +#: templates/js/translated/purchase_order.js:1806 #: templates/js/translated/return_order.js:380 -#: templates/js/translated/sales_order.js:891 +#: templates/js/translated/sales_order.js:850 msgid "Total Cost" msgstr "Costo Total" -#: order/templates/order/return_order_base.html:273 +#: order/templates/order/return_order_base.html:274 msgid "Return Order QR Code" msgstr "" -#: order/templates/order/return_order_base.html:285 +#: order/templates/order/return_order_base.html:286 msgid "Link Barcode to Return Order" msgstr "" @@ -6323,40 +6531,40 @@ msgstr "" msgid "Order Details" msgstr "Detalles del pedido" -#: order/templates/order/sales_order_base.html:60 +#: order/templates/order/sales_order_base.html:61 msgid "Print sales order report" msgstr "Imprimir informe de orden de venta" -#: order/templates/order/sales_order_base.html:91 #: order/templates/order/sales_order_base.html:92 +#: order/templates/order/sales_order_base.html:93 msgid "Ship Items" msgstr "Enviar artículos" -#: order/templates/order/sales_order_base.html:95 #: order/templates/order/sales_order_base.html:96 +#: order/templates/order/sales_order_base.html:97 msgid "Mark As Shipped" -msgstr "" +msgstr "Marcar como enviado" -#: order/templates/order/sales_order_base.html:99 -#: templates/js/translated/sales_order.js:536 +#: order/templates/order/sales_order_base.html:100 +#: templates/js/translated/sales_order.js:495 msgid "Complete Sales Order" msgstr "Ordenes de venta completas" -#: order/templates/order/sales_order_base.html:138 +#: order/templates/order/sales_order_base.html:139 msgid "This Sales Order has not been fully allocated" msgstr "Esta orden de venta no ha sido completamente asignada" -#: order/templates/order/sales_order_base.html:176 +#: order/templates/order/sales_order_base.html:177 #: order/templates/order/sales_order_detail.html:99 #: order/templates/order/so_sidebar.html:11 msgid "Completed Shipments" msgstr "Envíos completados" -#: order/templates/order/sales_order_base.html:339 +#: order/templates/order/sales_order_base.html:340 msgid "Sales Order QR Code" msgstr "" -#: order/templates/order/sales_order_base.html:351 +#: order/templates/order/sales_order_base.html:352 msgid "Link Barcode to Sales Order" msgstr "" @@ -6370,7 +6578,7 @@ msgid "Pending Shipments" msgstr "Envíos pendientes" #: order/templates/order/sales_order_detail.html:71 -#: templates/js/translated/bom.js:1277 templates/js/translated/build.js:1063 +#: templates/js/translated/bom.js:1277 templates/js/translated/build.js:1066 #: templates/js/translated/filters.js:299 msgid "Actions" msgstr "Acciones" @@ -6383,39 +6591,40 @@ msgstr "Nuevo Envío" msgid "Match Supplier Parts" msgstr "Coincidir partes de proveedor" -#: order/views.py:406 +#: order/views.py:407 msgid "Sales order not found" msgstr "Orden de venta no encontrada" -#: order/views.py:412 +#: order/views.py:413 msgid "Price not found" msgstr "Precio no encontrado" -#: order/views.py:415 +#: order/views.py:416 #, python-brace-format msgid "Updated {part} unit-price to {price}" msgstr "Actualizado el precio unitario de {part} a {price}" -#: order/views.py:421 +#: order/views.py:422 #, python-brace-format msgid "Updated {part} unit-price to {price} and quantity to {qty}" msgstr "Actualizado el precio unitario de {part} a {price} y la cantidad a {qty}" -#: part/admin.py:48 part/models.py:1032 part/templates/part/part_base.html:269 +#: part/admin.py:48 part/models.py:1093 part/serializers.py:939 +#: part/templates/part/part_base.html:277 #: report/templates/report/inventree_stock_location_report.html:103 #: templates/js/translated/part.js:1233 templates/js/translated/part.js:2347 -#: templates/js/translated/stock.js:2121 +#: templates/js/translated/stock.js:2122 msgid "IPN" msgstr "" -#: part/admin.py:50 part/models.py:1041 part/templates/part/part_base.html:286 +#: part/admin.py:50 part/models.py:1102 part/templates/part/part_base.html:294 #: report/models.py:161 templates/js/translated/part.js:1238 #: templates/js/translated/part.js:2353 msgid "Revision" msgstr "Revisión" -#: part/admin.py:53 part/admin.py:319 part/models.py:1014 -#: part/templates/part/category.html:91 part/templates/part/part_base.html:307 +#: part/admin.py:53 part/admin.py:319 part/models.py:1075 +#: part/templates/part/category.html:91 part/templates/part/part_base.html:315 msgid "Keywords" msgstr "Palabras claves" @@ -6427,7 +6636,7 @@ msgstr "Imagen de parte" msgid "Category ID" msgstr "ID de Categoría" -#: part/admin.py:67 part/admin.py:304 part/serializers.py:880 +#: part/admin.py:67 part/admin.py:304 part/serializers.py:924 #: part/stocktake.py:222 msgid "Category Name" msgstr "Nombre de categoría" @@ -6440,11 +6649,11 @@ msgstr "ID de ubicación predeterminada" msgid "Default Supplier ID" msgstr "ID de proveedor predeterminado" -#: part/admin.py:81 part/models.py:1000 part/templates/part/part_base.html:177 +#: part/admin.py:81 part/models.py:1061 part/templates/part/part_base.html:178 msgid "Variant Of" msgstr "Variante de" -#: part/admin.py:84 part/models.py:1138 part/templates/part/part_base.html:203 +#: part/admin.py:84 part/models.py:1199 part/templates/part/part_base.html:204 msgid "Minimum Stock" msgstr "Stock mínimo" @@ -6452,23 +6661,23 @@ msgstr "Stock mínimo" msgid "Used In" msgstr "Usado en" -#: part/admin.py:150 part/serializers.py:897 -#: part/templates/part/part_base.html:241 stock/admin.py:235 +#: part/admin.py:150 part/serializers.py:949 +#: part/templates/part/part_base.html:249 stock/admin.py:236 #: templates/js/translated/part.js:717 templates/js/translated/part.js:2159 msgid "Building" msgstr "En construcción" -#: part/admin.py:155 part/models.py:3202 part/models.py:3216 +#: part/admin.py:155 part/models.py:3253 part/models.py:3267 #: templates/js/translated/part.js:976 msgid "Minimum Cost" msgstr "Costo mínimo" -#: part/admin.py:158 part/models.py:3209 part/models.py:3223 +#: part/admin.py:158 part/models.py:3260 part/models.py:3274 #: templates/js/translated/part.js:986 msgid "Maximum Cost" msgstr "Costo máximo" -#: part/admin.py:308 part/admin.py:387 stock/admin.py:57 stock/admin.py:215 +#: part/admin.py:308 part/admin.py:387 stock/admin.py:57 stock/admin.py:216 msgid "Parent ID" msgstr "Identificador de la clase o especie padre" @@ -6481,8 +6690,8 @@ msgstr "Nombre del padre" msgid "Category Path" msgstr "Ruta de Categoría" -#: part/admin.py:325 part/models.py:425 part/serializers.py:130 -#: part/serializers.py:290 part/serializers.py:415 +#: part/admin.py:325 part/models.py:420 part/serializers.py:130 +#: part/serializers.py:323 part/serializers.py:459 #: part/templates/part/cat_link.html:3 part/templates/part/category.html:20 #: part/templates/part/category.html:138 part/templates/part/category.html:158 #: part/templates/part/category_sidebar.html:9 @@ -6509,21 +6718,21 @@ msgstr "IPN del padre" msgid "Part Revision" msgstr "" -#: part/admin.py:418 part/serializers.py:1346 +#: part/admin.py:418 part/serializers.py:1400 #: templates/js/translated/pricing.js:358 -#: templates/js/translated/pricing.js:1024 +#: templates/js/translated/pricing.js:1022 msgid "Minimum Price" msgstr "Precio mínimo" -#: part/admin.py:423 part/serializers.py:1361 +#: part/admin.py:423 part/serializers.py:1415 #: templates/js/translated/pricing.js:353 -#: templates/js/translated/pricing.js:1032 +#: templates/js/translated/pricing.js:1030 msgid "Maximum Price" msgstr "Precio máximo" #: part/api.py:104 msgid "Starred" -msgstr "" +msgstr "Favoritos" #: part/api.py:106 msgid "Filter by starred categories" @@ -6531,108 +6740,112 @@ msgstr "" #: part/api.py:123 stock/api.py:310 msgid "Depth" -msgstr "" +msgstr "Profundidad" #: part/api.py:123 msgid "Filter by category depth" -msgstr "" +msgstr "Filtrar por profundidad de categoría" #: part/api.py:141 stock/api.py:328 msgid "Top Level" -msgstr "" +msgstr "Nivel superior" #: part/api.py:143 msgid "Filter by top-level categories" -msgstr "" +msgstr "Filtrar por categorías de nivel superior" + +#: part/api.py:156 stock/api.py:343 +msgid "Cascade" +msgstr "En cascada" #: part/api.py:158 msgid "Include sub-categories in filtered results" msgstr "" -#: part/api.py:179 templates/js/translated/part.js:311 +#: part/api.py:178 templates/js/translated/part.js:311 msgid "Parent" msgstr "" -#: part/api.py:181 +#: part/api.py:180 msgid "Filter by parent category" msgstr "" -#: part/api.py:214 +#: part/api.py:213 msgid "Exclude Tree" msgstr "" -#: part/api.py:216 +#: part/api.py:215 msgid "Exclude sub-categories under the specified category" msgstr "" -#: part/api.py:441 +#: part/api.py:440 msgid "Has Results" -msgstr "" +msgstr "Tiene resultados" -#: part/api.py:608 +#: part/api.py:604 msgid "Incoming Purchase Order" msgstr "Orden de compra entrante" -#: part/api.py:626 +#: part/api.py:618 msgid "Outgoing Sales Order" msgstr "Orden de venta saliente" -#: part/api.py:642 +#: part/api.py:630 msgid "Stock produced by Build Order" msgstr "" -#: part/api.py:726 +#: part/api.py:712 msgid "Stock required for Build Order" msgstr "" -#: part/api.py:874 +#: part/api.py:858 msgid "Validate entire Bill of Materials" msgstr "Validación de Lista de Materiales" -#: part/api.py:880 +#: part/api.py:864 msgid "This option must be selected" msgstr "Esta opción debe ser seleccionada" -#: part/api.py:916 +#: part/api.py:900 msgid "Is Revision" msgstr "" -#: part/api.py:926 +#: part/api.py:910 msgid "Has Revisions" msgstr "" -#: part/api.py:1117 +#: part/api.py:1101 msgid "BOM Valid" msgstr "" -#: part/api.py:1523 part/models.py:1024 part/models.py:3489 part/models.py:4046 -#: part/serializers.py:430 part/serializers.py:1202 -#: part/templates/part/part_base.html:260 stock/api.py:781 +#: part/api.py:1509 part/models.py:1085 part/models.py:3540 part/models.py:4104 +#: part/serializers.py:474 part/serializers.py:1255 +#: part/templates/part/part_base.html:268 stock/api.py:781 #: templates/InvenTree/settings/settings_staff_js.html:300 #: templates/js/translated/notification.js:60 #: templates/js/translated/part.js:2383 msgid "Category" msgstr "Categoría" -#: part/api.py:1761 +#: part/api.py:1750 msgid "Assembly part is testable" msgstr "" -#: part/api.py:1770 +#: part/api.py:1759 msgid "Component part is testable" msgstr "" -#: part/api.py:1821 +#: part/api.py:1810 msgid "Uses" msgstr "" -#: part/bom.py:178 part/models.py:107 part/models.py:1077 -#: part/templates/part/category.html:113 part/templates/part/part_base.html:376 +#: part/bom.py:183 part/models.py:109 part/models.py:1138 +#: part/templates/part/category.html:113 part/templates/part/part_base.html:384 #: templates/js/translated/part.js:2397 msgid "Default Location" msgstr "Ubicación Predeterminada" -#: part/bom.py:179 part/serializers.py:905 +#: part/bom.py:184 part/serializers.py:957 #: templates/email/low_stock_notification.html:16 msgid "Total Stock" msgstr "Inventario Total" @@ -6641,789 +6854,789 @@ msgstr "Inventario Total" msgid "Input quantity for price calculation" msgstr "Cantidad de entrada para el cálculo del precio" -#: part/models.py:88 part/models.py:4047 part/templates/part/category.html:16 +#: part/models.py:90 part/models.py:4105 part/templates/part/category.html:16 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "Categoría de parte" -#: part/models.py:89 part/templates/part/category.html:133 +#: part/models.py:91 part/templates/part/category.html:133 #: templates/InvenTree/search.html:97 templates/js/translated/search.js:158 #: users/models.py:202 msgid "Part Categories" msgstr "Categorías de parte" -#: part/models.py:108 +#: part/models.py:110 msgid "Default location for parts in this category" msgstr "Ubicación predeterminada para partes de esta categoría" -#: part/models.py:113 stock/models.py:187 templates/js/translated/part.js:2828 -#: templates/js/translated/stock.js:2856 +#: part/models.py:115 stock/models.py:193 templates/js/translated/part.js:2828 +#: templates/js/translated/stock.js:2857 #: templates/js/translated/table_filters.js:246 #: templates/js/translated/table_filters.js:290 msgid "Structural" msgstr "Estructural" -#: part/models.py:115 +#: part/models.py:117 msgid "Parts may not be directly assigned to a structural category, but may be assigned to child categories." msgstr "Las partes no pueden asignarse directamente a una categoría estructural, pero pueden asignarse a categorías hijas." -#: part/models.py:124 +#: part/models.py:126 msgid "Default keywords" msgstr "Palabras clave predeterminadas" -#: part/models.py:125 +#: part/models.py:127 msgid "Default keywords for parts in this category" msgstr "Palabras clave por defecto para partes en esta categoría" -#: part/models.py:131 stock/models.py:90 stock/models.py:169 +#: part/models.py:133 stock/models.py:96 stock/models.py:175 #: templates/InvenTree/settings/settings_staff_js.html:445 msgid "Icon" msgstr "Icono" -#: part/models.py:132 part/serializers.py:143 part/serializers.py:161 -#: stock/models.py:170 +#: part/models.py:134 part/serializers.py:143 part/serializers.py:161 +#: stock/models.py:176 msgid "Icon (optional)" msgstr "Icono (opcional)" -#: part/models.py:178 +#: part/models.py:180 msgid "You cannot make this part category structural because some parts are already assigned to it!" msgstr "¡No puedes hacer que esta categoría de partes sea estructural porque algunas partes ya están asignadas!" -#: part/models.py:519 +#: part/models.py:514 msgid "Cannot delete this part as it is locked" msgstr "" -#: part/models.py:522 +#: part/models.py:517 msgid "Cannot delete this part as it is still active" msgstr "" -#: part/models.py:527 +#: part/models.py:522 msgid "Cannot delete this part as it is used in an assembly" msgstr "" -#: part/models.py:565 +#: part/models.py:560 msgid "Invalid choice for parent part" msgstr "Opción no válida para la parte principal" -#: part/models.py:613 part/models.py:620 +#: part/models.py:608 part/models.py:615 #, python-brace-format msgid "Part '{self}' cannot be used in BOM for '{parent}' (recursive)" msgstr "" -#: part/models.py:632 +#: part/models.py:627 #, python-brace-format msgid "Part '{parent}' is used in BOM for '{self}' (recursive)" msgstr "" -#: part/models.py:695 +#: part/models.py:694 #, python-brace-format msgid "IPN must match regex pattern {pattern}" msgstr "" -#: part/models.py:703 +#: part/models.py:702 msgid "Part cannot be a revision of itself" msgstr "" -#: part/models.py:710 +#: part/models.py:709 msgid "Cannot make a revision of a part which is already a revision" msgstr "" -#: part/models.py:717 +#: part/models.py:716 msgid "Revision code must be specified" msgstr "" -#: part/models.py:724 +#: part/models.py:723 msgid "Revisions are only allowed for assembly parts" msgstr "" -#: part/models.py:731 +#: part/models.py:730 msgid "Cannot make a revision of a template part" msgstr "" -#: part/models.py:737 +#: part/models.py:736 msgid "Parent part must point to the same template" msgstr "" -#: part/models.py:816 +#: part/models.py:832 msgid "Stock item with this serial number already exists" msgstr "Ya existe un artículo de almacén con este número de serie" -#: part/models.py:917 +#: part/models.py:976 msgid "Duplicate IPN not allowed in part settings" msgstr "IPN duplicado no permitido en la configuración de partes" -#: part/models.py:926 +#: part/models.py:988 msgid "Duplicate part revision already exists." -msgstr "" +msgstr "La revisión de parte duplicada ya existe." -#: part/models.py:936 +#: part/models.py:997 msgid "Part with this Name, IPN and Revision already exists." msgstr "Parte con este nombre, IPN y revisión ya existe." -#: part/models.py:951 +#: part/models.py:1012 msgid "Parts cannot be assigned to structural part categories!" msgstr "¡No se pueden asignar partes a las categorías de partes estructurales!" -#: part/models.py:983 part/models.py:4102 +#: part/models.py:1044 part/models.py:4160 msgid "Part name" msgstr "Nombre de la parte" -#: part/models.py:988 +#: part/models.py:1049 msgid "Is Template" msgstr "Es plantilla" -#: part/models.py:989 +#: part/models.py:1050 msgid "Is this part a template part?" msgstr "¿Es esta parte una parte de la plantilla?" -#: part/models.py:999 +#: part/models.py:1060 msgid "Is this part a variant of another part?" msgstr "¿Es esta parte una variante de otra parte?" -#: part/models.py:1007 +#: part/models.py:1068 msgid "Part description (optional)" msgstr "Descripción de parte (opcional)" -#: part/models.py:1015 +#: part/models.py:1076 msgid "Part keywords to improve visibility in search results" msgstr "Palabras clave para mejorar la visibilidad en los resultados de búsqueda" -#: part/models.py:1025 +#: part/models.py:1086 msgid "Part category" msgstr "Categoría de parte" -#: part/models.py:1040 +#: part/models.py:1101 msgid "Part revision or version number" msgstr "Revisión de parte o número de versión" -#: part/models.py:1050 +#: part/models.py:1111 msgid "Is this part a revision of another part?" -msgstr "" +msgstr "¿Es esta parte una variante de otra parte?" -#: part/models.py:1051 part/templates/part/part_base.html:277 +#: part/models.py:1112 part/templates/part/part_base.html:285 msgid "Revision Of" -msgstr "" +msgstr "Variante de" -#: part/models.py:1075 +#: part/models.py:1136 msgid "Where is this item normally stored?" msgstr "¿Dónde se almacena este artículo normalmente?" -#: part/models.py:1121 part/templates/part/part_base.html:385 +#: part/models.py:1182 part/templates/part/part_base.html:393 msgid "Default Supplier" msgstr "Proveedor por defecto" -#: part/models.py:1122 +#: part/models.py:1183 msgid "Default supplier part" msgstr "Parte de proveedor predeterminada" -#: part/models.py:1129 +#: part/models.py:1190 msgid "Default Expiry" msgstr "Expiración por defecto" -#: part/models.py:1130 +#: part/models.py:1191 msgid "Expiry time (in days) for stock items of this part" msgstr "Tiempo de expiración (en días) para los artículos de stock de esta parte" -#: part/models.py:1139 +#: part/models.py:1200 msgid "Minimum allowed stock level" msgstr "Nivel mínimo de stock permitido" -#: part/models.py:1148 +#: part/models.py:1209 msgid "Units of measure for this part" msgstr "Unidades de medida para esta parte" -#: part/models.py:1155 +#: part/models.py:1216 msgid "Can this part be built from other parts?" msgstr "¿Se puede construir esta parte a partir de otras partes?" -#: part/models.py:1161 +#: part/models.py:1222 msgid "Can this part be used to build other parts?" msgstr "¿Se puede utilizar esta parte para construir otras partes?" -#: part/models.py:1167 +#: part/models.py:1228 msgid "Does this part have tracking for unique items?" msgstr "¿Esta parte tiene seguimiento de objetos únicos?" -#: part/models.py:1173 +#: part/models.py:1234 msgid "Can this part have test results recorded against it?" msgstr "" -#: part/models.py:1179 +#: part/models.py:1240 msgid "Can this part be purchased from external suppliers?" msgstr "¿Se puede comprar esta parte a proveedores externos?" -#: part/models.py:1185 +#: part/models.py:1246 msgid "Can this part be sold to customers?" msgstr "¿Se puede vender esta parte a los clientes?" -#: part/models.py:1189 +#: part/models.py:1250 msgid "Is this part active?" msgstr "¿Está activa esta parte?" -#: part/models.py:1194 templates/js/translated/part.js:821 +#: part/models.py:1255 templates/js/translated/part.js:821 #: templates/js/translated/table_filters.js:724 msgid "Locked" -msgstr "" +msgstr "Bloqueado" -#: part/models.py:1195 +#: part/models.py:1256 msgid "Locked parts cannot be edited" -msgstr "" +msgstr "Las partes bloqueadas no pueden ser editadas" -#: part/models.py:1201 +#: part/models.py:1262 msgid "Is this a virtual part, such as a software product or license?" msgstr "¿Es ésta una parte virtual, como un producto de software o una licencia?" -#: part/models.py:1207 +#: part/models.py:1268 msgid "BOM checksum" msgstr "Suma de verificación de BOM" -#: part/models.py:1208 +#: part/models.py:1269 msgid "Stored BOM checksum" msgstr "Suma de verificación de BOM almacenada" -#: part/models.py:1216 +#: part/models.py:1277 msgid "BOM checked by" msgstr "BOM comprobado por" -#: part/models.py:1221 +#: part/models.py:1282 msgid "BOM checked date" msgstr "Fecha BOM comprobada" -#: part/models.py:1237 +#: part/models.py:1298 msgid "Creation User" msgstr "Creación de Usuario" -#: part/models.py:1247 +#: part/models.py:1308 msgid "Owner responsible for this part" -msgstr "" +msgstr "Dueño responsable de esta parte" -#: part/models.py:1252 part/templates/part/part_base.html:348 -#: stock/templates/stock/item_base.html:451 +#: part/models.py:1313 part/templates/part/part_base.html:356 +#: stock/templates/stock/item_base.html:448 #: templates/js/translated/part.js:2490 msgid "Last Stocktake" msgstr "Último inventario" -#: part/models.py:2125 +#: part/models.py:2185 msgid "Sell multiple" msgstr "Vender múltiples" -#: part/models.py:3116 +#: part/models.py:3167 msgid "Currency used to cache pricing calculations" msgstr "Moneda utilizada para almacenar en caché los cálculos de precios" -#: part/models.py:3132 +#: part/models.py:3183 msgid "Minimum BOM Cost" msgstr "Costo mínimo de BOM" -#: part/models.py:3133 +#: part/models.py:3184 msgid "Minimum cost of component parts" msgstr "Costo mínimo de partes de componentes" -#: part/models.py:3139 +#: part/models.py:3190 msgid "Maximum BOM Cost" msgstr "Costo máximo de BOM" -#: part/models.py:3140 +#: part/models.py:3191 msgid "Maximum cost of component parts" msgstr "Costo máximo de partes de componentes" -#: part/models.py:3146 +#: part/models.py:3197 msgid "Minimum Purchase Cost" msgstr "Costo mínimo de compra" -#: part/models.py:3147 +#: part/models.py:3198 msgid "Minimum historical purchase cost" msgstr "Costo histórico mínimo de compra" -#: part/models.py:3153 +#: part/models.py:3204 msgid "Maximum Purchase Cost" msgstr "Costo máximo de compra" -#: part/models.py:3154 +#: part/models.py:3205 msgid "Maximum historical purchase cost" msgstr "Costo histórico máximo de compra" -#: part/models.py:3160 +#: part/models.py:3211 msgid "Minimum Internal Price" msgstr "Precio interno mínimo" -#: part/models.py:3161 +#: part/models.py:3212 msgid "Minimum cost based on internal price breaks" msgstr "Costo mínimo basado en precios reducidos internos" -#: part/models.py:3167 +#: part/models.py:3218 msgid "Maximum Internal Price" msgstr "Precio interno máximo" -#: part/models.py:3168 +#: part/models.py:3219 msgid "Maximum cost based on internal price breaks" msgstr "Costo máximo basado en precios reducidos internos" -#: part/models.py:3174 +#: part/models.py:3225 msgid "Minimum Supplier Price" msgstr "Precio mínimo de proveedor" -#: part/models.py:3175 +#: part/models.py:3226 msgid "Minimum price of part from external suppliers" msgstr "Precio mínimo de la parte de proveedores externos" -#: part/models.py:3181 +#: part/models.py:3232 msgid "Maximum Supplier Price" msgstr "Precio máximo de proveedor" -#: part/models.py:3182 +#: part/models.py:3233 msgid "Maximum price of part from external suppliers" msgstr "Precio máximo de la parte de proveedores externos" -#: part/models.py:3188 +#: part/models.py:3239 msgid "Minimum Variant Cost" msgstr "Costo mínimo de variante" -#: part/models.py:3189 +#: part/models.py:3240 msgid "Calculated minimum cost of variant parts" msgstr "Costo mínimo calculado de las partes variantes" -#: part/models.py:3195 +#: part/models.py:3246 msgid "Maximum Variant Cost" msgstr "Costo máximo de variante" -#: part/models.py:3196 +#: part/models.py:3247 msgid "Calculated maximum cost of variant parts" msgstr "Costo máximo calculado de las partes variantes" -#: part/models.py:3203 +#: part/models.py:3254 msgid "Override minimum cost" msgstr "Anular el costo mínimo" -#: part/models.py:3210 +#: part/models.py:3261 msgid "Override maximum cost" -msgstr "" +msgstr "Reemplazar coste máximo" -#: part/models.py:3217 +#: part/models.py:3268 msgid "Calculated overall minimum cost" msgstr "Costo mínimo general calculado" -#: part/models.py:3224 +#: part/models.py:3275 msgid "Calculated overall maximum cost" msgstr "" -#: part/models.py:3230 +#: part/models.py:3281 msgid "Minimum Sale Price" msgstr "Precio de venta mínimo" -#: part/models.py:3231 +#: part/models.py:3282 msgid "Minimum sale price based on price breaks" msgstr "Precio de venta mínimo basado en precios reducidos" -#: part/models.py:3237 +#: part/models.py:3288 msgid "Maximum Sale Price" msgstr "Precio de venta máximo" -#: part/models.py:3238 +#: part/models.py:3289 msgid "Maximum sale price based on price breaks" msgstr "Precio de venta máximo basado en precios reducidos" -#: part/models.py:3244 +#: part/models.py:3295 msgid "Minimum Sale Cost" msgstr "Costo de venta mínimo" -#: part/models.py:3245 +#: part/models.py:3296 msgid "Minimum historical sale price" msgstr "Precio de venta mínimo histórico" -#: part/models.py:3251 +#: part/models.py:3302 msgid "Maximum Sale Cost" msgstr "Costo de Venta Máximo" -#: part/models.py:3252 +#: part/models.py:3303 msgid "Maximum historical sale price" -msgstr "" +msgstr "Precio de venta máximo histórico" -#: part/models.py:3271 +#: part/models.py:3322 msgid "Part for stocktake" msgstr "" -#: part/models.py:3276 +#: part/models.py:3327 msgid "Item Count" msgstr "Número de artículos" -#: part/models.py:3277 +#: part/models.py:3328 msgid "Number of individual stock entries at time of stocktake" msgstr "" -#: part/models.py:3285 +#: part/models.py:3336 msgid "Total available stock at time of stocktake" msgstr "" -#: part/models.py:3289 part/models.py:3372 +#: part/models.py:3340 part/models.py:3423 part/serializers.py:263 #: part/templates/part/part_scheduling.html:13 #: report/templates/report/inventree_test_report.html:106 #: templates/InvenTree/settings/plugin_settings.html:37 #: templates/InvenTree/settings/settings_staff_js.html:543 -#: templates/js/translated/part.js:1092 templates/js/translated/pricing.js:826 -#: templates/js/translated/pricing.js:950 -#: templates/js/translated/purchase_order.js:1801 -#: templates/js/translated/stock.js:2905 +#: templates/js/translated/part.js:1092 templates/js/translated/pricing.js:824 +#: templates/js/translated/pricing.js:948 +#: templates/js/translated/purchase_order.js:1785 +#: templates/js/translated/stock.js:2906 msgid "Date" msgstr "Fecha" -#: part/models.py:3290 +#: part/models.py:3341 msgid "Date stocktake was performed" msgstr "" -#: part/models.py:3298 +#: part/models.py:3349 msgid "Additional notes" msgstr "Notas adicionales" -#: part/models.py:3308 +#: part/models.py:3359 msgid "User who performed this stocktake" msgstr "" -#: part/models.py:3314 +#: part/models.py:3365 msgid "Minimum Stock Cost" msgstr "Costo de Stock Mínimo" -#: part/models.py:3315 +#: part/models.py:3366 msgid "Estimated minimum cost of stock on hand" msgstr "Costo mínimo estimado del stock disponible" -#: part/models.py:3321 +#: part/models.py:3372 msgid "Maximum Stock Cost" msgstr "" -#: part/models.py:3322 +#: part/models.py:3373 msgid "Estimated maximum cost of stock on hand" msgstr "" -#: part/models.py:3378 templates/InvenTree/settings/settings_staff_js.html:532 +#: part/models.py:3429 templates/InvenTree/settings/settings_staff_js.html:532 msgid "Report" msgstr "Informe" -#: part/models.py:3379 +#: part/models.py:3430 msgid "Stocktake report file (generated internally)" msgstr "" -#: part/models.py:3384 templates/InvenTree/settings/settings_staff_js.html:539 +#: part/models.py:3435 templates/InvenTree/settings/settings_staff_js.html:539 msgid "Part Count" msgstr "Número de partes" -#: part/models.py:3385 +#: part/models.py:3436 msgid "Number of parts covered by stocktake" msgstr "" -#: part/models.py:3395 +#: part/models.py:3446 msgid "User who requested this stocktake report" msgstr "" -#: part/models.py:3405 +#: part/models.py:3456 msgid "Part Sale Price Break" msgstr "" -#: part/models.py:3517 +#: part/models.py:3568 msgid "Part Test Template" msgstr "" -#: part/models.py:3543 +#: part/models.py:3594 msgid "Invalid template name - must include at least one alphanumeric character" msgstr "" -#: part/models.py:3564 part/models.py:3733 +#: part/models.py:3615 part/models.py:3784 msgid "Choices must be unique" msgstr "" -#: part/models.py:3575 -msgid "Test templates can only be created for trackable parts" -msgstr "Las plantillas de prueba sólo pueden ser creadas para partes rastreables" +#: part/models.py:3626 +msgid "Test templates can only be created for testable parts" +msgstr "Las plantillas de prueba solo pueden ser creadas para partes de prueba" -#: part/models.py:3586 +#: part/models.py:3637 msgid "Test template with the same key already exists for part" msgstr "" -#: part/models.py:3603 templates/js/translated/part.js:2898 +#: part/models.py:3654 templates/js/translated/part.js:2898 msgid "Test Name" msgstr "Nombre de prueba" -#: part/models.py:3604 +#: part/models.py:3655 msgid "Enter a name for the test" msgstr "Introduzca un nombre para la prueba" -#: part/models.py:3610 +#: part/models.py:3661 msgid "Test Key" msgstr "" -#: part/models.py:3611 +#: part/models.py:3662 msgid "Simplified key for the test" msgstr "" -#: part/models.py:3618 +#: part/models.py:3669 msgid "Test Description" msgstr "Descripción de prueba" -#: part/models.py:3619 +#: part/models.py:3670 msgid "Enter description for this test" msgstr "Introduce la descripción para esta prueba" -#: part/models.py:3623 report/models.py:208 +#: part/models.py:3674 report/models.py:216 #: templates/js/translated/part.js:2919 #: templates/js/translated/table_filters.js:502 msgid "Enabled" msgstr "Habilitado" -#: part/models.py:3623 +#: part/models.py:3674 msgid "Is this test enabled?" msgstr "" -#: part/models.py:3628 templates/js/translated/part.js:2927 +#: part/models.py:3679 templates/js/translated/part.js:2927 #: templates/js/translated/table_filters.js:498 msgid "Required" msgstr "Requerido" -#: part/models.py:3629 +#: part/models.py:3680 msgid "Is this test required to pass?" msgstr "¿Es necesario pasar esta prueba?" -#: part/models.py:3634 templates/js/translated/part.js:2935 +#: part/models.py:3685 templates/js/translated/part.js:2935 msgid "Requires Value" msgstr "Requiere valor" -#: part/models.py:3635 +#: part/models.py:3686 msgid "Does this test require a value when adding a test result?" msgstr "¿Esta prueba requiere un valor al agregar un resultado de la prueba?" -#: part/models.py:3640 templates/js/translated/part.js:2942 +#: part/models.py:3691 templates/js/translated/part.js:2942 msgid "Requires Attachment" msgstr "Adjunto obligatorio" -#: part/models.py:3642 +#: part/models.py:3693 msgid "Does this test require a file attachment when adding a test result?" msgstr "¿Esta prueba requiere un archivo adjunto al agregar un resultado de la prueba?" -#: part/models.py:3648 part/models.py:3792 templates/js/translated/part.js:1643 +#: part/models.py:3699 part/models.py:3843 templates/js/translated/part.js:1643 msgid "Choices" msgstr "Opciones" -#: part/models.py:3649 +#: part/models.py:3700 msgid "Valid choices for this test (comma-separated)" msgstr "" -#: part/models.py:3681 +#: part/models.py:3732 msgid "Part Parameter Template" msgstr "" -#: part/models.py:3708 +#: part/models.py:3759 msgid "Checkbox parameters cannot have units" msgstr "" -#: part/models.py:3713 +#: part/models.py:3764 msgid "Checkbox parameters cannot have choices" msgstr "" -#: part/models.py:3750 +#: part/models.py:3801 msgid "Parameter template name must be unique" msgstr "El nombre de parámetro en la plantilla tiene que ser único" -#: part/models.py:3765 +#: part/models.py:3816 msgid "Parameter Name" msgstr "Nombre de Parámetro" -#: part/models.py:3772 +#: part/models.py:3823 msgid "Physical units for this parameter" msgstr "" -#: part/models.py:3780 +#: part/models.py:3831 msgid "Parameter description" msgstr "" -#: part/models.py:3786 templates/js/translated/part.js:1634 +#: part/models.py:3837 templates/js/translated/part.js:1634 #: templates/js/translated/table_filters.js:837 msgid "Checkbox" msgstr "Casilla de verificación" -#: part/models.py:3787 +#: part/models.py:3838 msgid "Is this parameter a checkbox?" msgstr "¿Es este parámetro una casilla de verificación?" -#: part/models.py:3793 +#: part/models.py:3844 msgid "Valid choices for this parameter (comma-separated)" msgstr "Opciones válidas para este parámetro (separados por comas)" -#: part/models.py:3827 +#: part/models.py:3881 msgid "Part Parameter" msgstr "" -#: part/models.py:3853 +#: part/models.py:3907 msgid "Parameter cannot be modified - part is locked" msgstr "" -#: part/models.py:3889 +#: part/models.py:3945 msgid "Invalid choice for parameter value" msgstr "Opción inválida para el valor del parámetro" -#: part/models.py:3938 +#: part/models.py:3996 msgid "Parent Part" msgstr "Parte principal" -#: part/models.py:3946 part/models.py:4054 part/models.py:4055 +#: part/models.py:4004 part/models.py:4112 part/models.py:4113 #: templates/InvenTree/settings/settings_staff_js.html:295 msgid "Parameter Template" msgstr "Plantilla de parámetro" -#: part/models.py:3952 +#: part/models.py:4010 msgid "Parameter Value" msgstr "Valor del parámetro" -#: part/models.py:4002 +#: part/models.py:4060 msgid "Part Category Parameter Template" msgstr "" -#: part/models.py:4061 templates/InvenTree/settings/settings_staff_js.html:304 +#: part/models.py:4119 templates/InvenTree/settings/settings_staff_js.html:304 msgid "Default Value" msgstr "Valor predeterminado" -#: part/models.py:4062 +#: part/models.py:4120 msgid "Default Parameter Value" msgstr "Valor de parámetro por defecto" -#: part/models.py:4100 +#: part/models.py:4158 msgid "Part ID or part name" msgstr "ID de parte o nombre de parte" -#: part/models.py:4101 +#: part/models.py:4159 msgid "Unique part ID value" msgstr "Valor de ID de parte única" -#: part/models.py:4103 +#: part/models.py:4161 msgid "Part IPN value" msgstr "Valor IPN de parte" -#: part/models.py:4104 +#: part/models.py:4162 msgid "Level" msgstr "Nivel" -#: part/models.py:4104 +#: part/models.py:4162 msgid "BOM level" msgstr "Nivel de BOM" -#: part/models.py:4215 +#: part/models.py:4272 msgid "BOM item cannot be modified - assembly is locked" msgstr "" -#: part/models.py:4222 +#: part/models.py:4279 msgid "BOM item cannot be modified - variant assembly is locked" msgstr "" -#: part/models.py:4232 +#: part/models.py:4289 msgid "Select parent part" msgstr "Seleccionar parte principal" -#: part/models.py:4242 +#: part/models.py:4299 msgid "Sub part" msgstr "Sub parte" -#: part/models.py:4243 +#: part/models.py:4300 msgid "Select part to be used in BOM" msgstr "Seleccionar parte a utilizar en BOM" -#: part/models.py:4254 +#: part/models.py:4311 msgid "BOM quantity for this BOM item" msgstr "Cantidad del artículo en BOM" -#: part/models.py:4260 +#: part/models.py:4317 msgid "This BOM item is optional" msgstr "Este artículo BOM es opcional" -#: part/models.py:4266 +#: part/models.py:4323 msgid "This BOM item is consumable (it is not tracked in build orders)" msgstr "Este artículo de BOM es consumible (no está rastreado en órdenes de construcción)" -#: part/models.py:4273 part/templates/part/upload_bom.html:55 +#: part/models.py:4330 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "Exceso" -#: part/models.py:4274 +#: part/models.py:4331 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "Cantidad estimada de desperdicio de construcción (absoluta o porcentaje)" -#: part/models.py:4281 +#: part/models.py:4338 msgid "BOM item reference" msgstr "Referencia de artículo de BOM" -#: part/models.py:4289 +#: part/models.py:4346 msgid "BOM item notes" msgstr "Notas del artículo de BOM" -#: part/models.py:4295 +#: part/models.py:4352 msgid "Checksum" msgstr "Suma de verificación" -#: part/models.py:4296 +#: part/models.py:4353 msgid "BOM line checksum" msgstr "Suma de verificación de línea de BOM" -#: part/models.py:4301 templates/js/translated/table_filters.js:181 +#: part/models.py:4358 templates/js/translated/table_filters.js:181 msgid "Validated" msgstr "Validado" -#: part/models.py:4302 +#: part/models.py:4359 msgid "This BOM item has been validated" msgstr "Este artículo de BOM ha sido validado" -#: part/models.py:4307 part/templates/part/upload_bom.html:57 +#: part/models.py:4364 part/templates/part/upload_bom.html:57 #: templates/js/translated/bom.js:1054 #: templates/js/translated/table_filters.js:185 #: templates/js/translated/table_filters.js:218 msgid "Gets inherited" msgstr "" -#: part/models.py:4308 +#: part/models.py:4365 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "Este artículo BOM es heredado por BOMs para partes variantes" -#: part/models.py:4314 +#: part/models.py:4371 msgid "Stock items for variant parts can be used for this BOM item" msgstr "Artículos de stock para partes variantes pueden ser usados para este artículo BOM" -#: part/models.py:4399 stock/models.py:685 +#: part/models.py:4456 stock/models.py:762 msgid "Quantity must be integer value for trackable parts" msgstr "La cantidad debe ser un valor entero para las partes rastreables" -#: part/models.py:4409 part/models.py:4411 +#: part/models.py:4466 part/models.py:4468 msgid "Sub part must be specified" msgstr "Debe especificar la subparte" -#: part/models.py:4551 +#: part/models.py:4613 msgid "BOM Item Substitute" msgstr "Ítem de BOM sustituto" -#: part/models.py:4572 +#: part/models.py:4634 msgid "Substitute part cannot be the same as the master part" msgstr "La parte sustituta no puede ser la misma que la parte principal" -#: part/models.py:4585 +#: part/models.py:4647 msgid "Parent BOM item" msgstr "Artículo BOM superior" -#: part/models.py:4593 +#: part/models.py:4655 msgid "Substitute part" msgstr "Sustituir parte" -#: part/models.py:4609 +#: part/models.py:4671 msgid "Part 1" msgstr "Parte 1" -#: part/models.py:4617 +#: part/models.py:4679 msgid "Part 2" msgstr "Parte 2" -#: part/models.py:4618 +#: part/models.py:4680 msgid "Select Related Part" msgstr "Seleccionar parte relacionada" -#: part/models.py:4637 +#: part/models.py:4699 msgid "Part relationship cannot be created between a part and itself" msgstr "" -#: part/models.py:4642 +#: part/models.py:4704 msgid "Duplicate relationship already exists" msgstr "" @@ -7449,340 +7662,352 @@ msgstr "" msgid "Number of results recorded against this template" msgstr "" -#: part/serializers.py:225 part/serializers.py:243 stock/serializers.py:616 +#: part/serializers.py:225 part/serializers.py:243 stock/serializers.py:643 msgid "Purchase currency of this stock item" msgstr "Moneda de compra de ítem de stock" -#: part/serializers.py:291 +#: part/serializers.py:268 +msgid "Speculative Quantity" +msgstr "" + +#: part/serializers.py:277 +msgid "Model ID" +msgstr "" + +#: part/serializers.py:324 msgid "Number of parts using this template" msgstr "" -#: part/serializers.py:421 +#: part/serializers.py:465 msgid "No parts selected" -msgstr "" +msgstr "No hay partes seleccionadas" -#: part/serializers.py:431 +#: part/serializers.py:475 msgid "Select category" -msgstr "" +msgstr "Seleccionar categoría" -#: part/serializers.py:466 +#: part/serializers.py:510 msgid "Original Part" msgstr "Parte original" -#: part/serializers.py:467 +#: part/serializers.py:511 msgid "Select original part to duplicate" msgstr "Seleccione la parte original a duplicar" -#: part/serializers.py:472 +#: part/serializers.py:516 msgid "Copy Image" msgstr "Copiar Imagen" -#: part/serializers.py:473 +#: part/serializers.py:517 msgid "Copy image from original part" msgstr "Copiar imagen desde la parte original" -#: part/serializers.py:479 part/templates/part/detail.html:293 +#: part/serializers.py:523 part/templates/part/detail.html:293 msgid "Copy BOM" msgstr "Copiar BOM" -#: part/serializers.py:480 +#: part/serializers.py:524 msgid "Copy bill of materials from original part" msgstr "Copiar la factura de materiales de la parte original" -#: part/serializers.py:486 +#: part/serializers.py:530 msgid "Copy Parameters" msgstr "Copiar Parámetros" -#: part/serializers.py:487 +#: part/serializers.py:531 msgid "Copy parameter data from original part" msgstr "Copiar datos del parámetro de la parte original" -#: part/serializers.py:493 +#: part/serializers.py:537 msgid "Copy Notes" msgstr "Copiar Notas" -#: part/serializers.py:494 +#: part/serializers.py:538 msgid "Copy notes from original part" msgstr "" -#: part/serializers.py:512 +#: part/serializers.py:556 msgid "Initial Stock Quantity" msgstr "Cantidad Inicial de Stock" -#: part/serializers.py:514 +#: part/serializers.py:558 msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added." msgstr "" -#: part/serializers.py:521 +#: part/serializers.py:565 msgid "Initial Stock Location" msgstr "" -#: part/serializers.py:522 +#: part/serializers.py:566 msgid "Specify initial stock location for this Part" msgstr "" -#: part/serializers.py:539 +#: part/serializers.py:583 msgid "Select supplier (or leave blank to skip)" msgstr "Seleccione proveedor (o déjelo en blanco para saltar)" -#: part/serializers.py:555 +#: part/serializers.py:599 msgid "Select manufacturer (or leave blank to skip)" msgstr "Seleccionar fabricante (o dejar en blanco para saltar)" -#: part/serializers.py:565 +#: part/serializers.py:609 msgid "Manufacturer part number" msgstr "Número de parte del fabricante" -#: part/serializers.py:572 +#: part/serializers.py:616 msgid "Selected company is not a valid supplier" msgstr "La empresa seleccionada no es un proveedor válido" -#: part/serializers.py:581 +#: part/serializers.py:625 msgid "Selected company is not a valid manufacturer" msgstr "La empresa seleccionada no es un fabricante válido" -#: part/serializers.py:592 +#: part/serializers.py:636 msgid "Manufacturer part matching this MPN already exists" msgstr "" -#: part/serializers.py:599 +#: part/serializers.py:643 msgid "Supplier part matching this SKU already exists" msgstr "" -#: part/serializers.py:903 +#: part/serializers.py:955 msgid "Revisions" msgstr "" -#: part/serializers.py:908 +#: part/serializers.py:960 msgid "Unallocated Stock" msgstr "" -#: part/serializers.py:911 +#: part/serializers.py:963 msgid "Variant Stock" msgstr "" -#: part/serializers.py:941 part/templates/part/copy_part.html:9 +#: part/serializers.py:993 part/templates/part/copy_part.html:9 #: templates/js/translated/part.js:474 msgid "Duplicate Part" msgstr "Duplicar Parte" -#: part/serializers.py:942 +#: part/serializers.py:994 msgid "Copy initial data from another Part" msgstr "" -#: part/serializers.py:948 templates/js/translated/part.js:103 +#: part/serializers.py:1000 templates/js/translated/part.js:103 msgid "Initial Stock" msgstr "Stock Inicial" -#: part/serializers.py:949 +#: part/serializers.py:1001 msgid "Create Part with initial stock quantity" msgstr "Crear Parte con cantidad inicial de stock" -#: part/serializers.py:955 +#: part/serializers.py:1007 msgid "Supplier Information" msgstr "Información del proveedor" -#: part/serializers.py:956 +#: part/serializers.py:1008 msgid "Add initial supplier information for this part" msgstr "Añadir información inicial del proveedor para esta parte" -#: part/serializers.py:964 +#: part/serializers.py:1016 msgid "Copy Category Parameters" msgstr "Copiar Parámetros de Categoría" -#: part/serializers.py:965 +#: part/serializers.py:1017 msgid "Copy parameter templates from selected part category" msgstr "Copiar plantillas de parámetro de la categoría de partes seleccionada" -#: part/serializers.py:970 +#: part/serializers.py:1022 msgid "Existing Image" msgstr "Imagen Existente" -#: part/serializers.py:971 +#: part/serializers.py:1023 msgid "Filename of an existing part image" msgstr "" -#: part/serializers.py:988 +#: part/serializers.py:1040 msgid "Image file does not exist" msgstr "El archivo de imagen no existe" -#: part/serializers.py:1194 +#: part/serializers.py:1247 msgid "Limit stocktake report to a particular part, and any variant parts" msgstr "" -#: part/serializers.py:1204 +#: part/serializers.py:1257 msgid "Limit stocktake report to a particular part category, and any child categories" msgstr "" -#: part/serializers.py:1214 +#: part/serializers.py:1267 msgid "Limit stocktake report to a particular stock location, and any child locations" msgstr "" -#: part/serializers.py:1220 +#: part/serializers.py:1273 msgid "Exclude External Stock" msgstr "" -#: part/serializers.py:1221 +#: part/serializers.py:1274 msgid "Exclude stock items in external locations" msgstr "" -#: part/serializers.py:1226 +#: part/serializers.py:1279 msgid "Generate Report" msgstr "Generar informe" -#: part/serializers.py:1227 +#: part/serializers.py:1280 msgid "Generate report file containing calculated stocktake data" msgstr "" -#: part/serializers.py:1232 +#: part/serializers.py:1285 msgid "Update Parts" msgstr "Actualizar partes" -#: part/serializers.py:1233 +#: part/serializers.py:1286 msgid "Update specified parts with calculated stocktake data" msgstr "" -#: part/serializers.py:1241 +#: part/serializers.py:1294 msgid "Stocktake functionality is not enabled" msgstr "" -#: part/serializers.py:1347 +#: part/serializers.py:1299 +msgid "Background worker check failed" +msgstr "Falló la comprobación en segundo plano del worker" + +#: part/serializers.py:1401 msgid "Override calculated value for minimum price" msgstr "Anular el valor calculado para precio mínimo" -#: part/serializers.py:1354 +#: part/serializers.py:1408 msgid "Minimum price currency" msgstr "Precio mínimo de moneda" -#: part/serializers.py:1362 +#: part/serializers.py:1416 msgid "Override calculated value for maximum price" msgstr "" -#: part/serializers.py:1369 +#: part/serializers.py:1423 msgid "Maximum price currency" msgstr "Precio máximo de moneda" -#: part/serializers.py:1398 +#: part/serializers.py:1452 msgid "Update" msgstr "Actualizar" -#: part/serializers.py:1399 +#: part/serializers.py:1453 msgid "Update pricing for this part" msgstr "" -#: part/serializers.py:1422 +#: part/serializers.py:1476 #, python-brace-format msgid "Could not convert from provided currencies to {default_currency}" msgstr "" -#: part/serializers.py:1429 +#: part/serializers.py:1483 msgid "Minimum price must not be greater than maximum price" msgstr "El precio mínimo no debe ser mayor que el precio máximo" -#: part/serializers.py:1432 +#: part/serializers.py:1486 msgid "Maximum price must not be less than minimum price" msgstr "El precio máximo no debe ser inferior al precio mínimo" -#: part/serializers.py:1576 +#: part/serializers.py:1634 msgid "Select the parent assembly" msgstr "" -#: part/serializers.py:1585 +#: part/serializers.py:1643 msgid "Component Name" msgstr "" -#: part/serializers.py:1588 +#: part/serializers.py:1646 msgid "Component IPN" msgstr "" -#: part/serializers.py:1591 +#: part/serializers.py:1649 msgid "Component Description" msgstr "" -#: part/serializers.py:1597 +#: part/serializers.py:1655 msgid "Select the component part" msgstr "" -#: part/serializers.py:1606 part/templates/part/part_base.html:235 +#: part/serializers.py:1664 part/templates/part/part_base.html:243 #: templates/js/translated/bom.js:1219 msgid "Can Build" msgstr "Puede construir" -#: part/serializers.py:1837 +#: part/serializers.py:1899 msgid "Select part to copy BOM from" msgstr "Seleccionar parte de la que copiar BOM" -#: part/serializers.py:1845 +#: part/serializers.py:1907 msgid "Remove Existing Data" msgstr "Eliminar Datos Existentes" -#: part/serializers.py:1846 +#: part/serializers.py:1908 msgid "Remove existing BOM items before copying" msgstr "Eliminar artículos BOM existentes antes de copiar" -#: part/serializers.py:1851 +#: part/serializers.py:1913 msgid "Include Inherited" msgstr "Incluye Heredado" -#: part/serializers.py:1852 +#: part/serializers.py:1914 msgid "Include BOM items which are inherited from templated parts" msgstr "Incluye artículos BOM que son heredados de partes con plantillas" -#: part/serializers.py:1857 +#: part/serializers.py:1919 msgid "Skip Invalid Rows" msgstr "Omitir filas no válidas" -#: part/serializers.py:1858 +#: part/serializers.py:1920 msgid "Enable this option to skip invalid rows" msgstr "Activar esta opción para omitir filas inválidas" -#: part/serializers.py:1863 +#: part/serializers.py:1925 msgid "Copy Substitute Parts" msgstr "Copiar partes sustitutas" -#: part/serializers.py:1864 +#: part/serializers.py:1926 msgid "Copy substitute parts when duplicate BOM items" msgstr "" -#: part/serializers.py:1901 +#: part/serializers.py:1963 msgid "Clear Existing BOM" msgstr "Limpiar BOM Existente" -#: part/serializers.py:1902 +#: part/serializers.py:1964 msgid "Delete existing BOM items before uploading" msgstr "" -#: part/serializers.py:1934 +#: part/serializers.py:1996 msgid "No part column specified" msgstr "" -#: part/serializers.py:1978 +#: part/serializers.py:2040 msgid "Multiple matching parts found" msgstr "Varios resultados encontrados" -#: part/serializers.py:1981 +#: part/serializers.py:2043 msgid "No matching part found" msgstr "No se encontraron partes coincidentes" -#: part/serializers.py:1984 +#: part/serializers.py:2045 msgid "Part is not designated as a component" msgstr "La parte no está designada como componente" -#: part/serializers.py:1993 +#: part/serializers.py:2054 msgid "Quantity not provided" msgstr "Cantidad no proporcionada" -#: part/serializers.py:2001 +#: part/serializers.py:2062 msgid "Invalid quantity" msgstr "Cantidad no válida" -#: part/serializers.py:2024 +#: part/serializers.py:2085 msgid "At least one BOM item is required" msgstr "Se requiere al menos un artículo BOM" #: part/stocktake.py:224 templates/js/translated/part.js:1073 #: templates/js/translated/part.js:1828 templates/js/translated/part.js:1884 -#: templates/js/translated/purchase_order.js:2154 +#: templates/js/translated/purchase_order.js:2138 msgid "Total Quantity" msgstr "Cantidad Total" @@ -7932,9 +8157,9 @@ msgid "Add stocktake information" msgstr "" #: part/templates/part/detail.html:67 part/templates/part/part_sidebar.html:50 -#: stock/admin.py:255 templates/InvenTree/settings/part_stocktake.html:30 +#: stock/admin.py:256 templates/InvenTree/settings/part_stocktake.html:30 #: templates/InvenTree/settings/sidebar.html:53 -#: templates/js/translated/stock.js:2301 users/models.py:204 +#: templates/js/translated/stock.js:2302 users/models.py:204 msgid "Stocktake" msgstr "Verificación de Inventario" @@ -8093,142 +8318,146 @@ msgstr "Seleccionar formato de archivo" msgid "Part List" msgstr "Listado de artículos" -#: part/templates/part/part_base.html:25 part/templates/part/part_base.html:29 +#: part/templates/part/part_base.html:26 part/templates/part/part_base.html:30 msgid "You are subscribed to notifications for this part" msgstr "Estás suscrito a las notificaciones de este artículo" -#: part/templates/part/part_base.html:33 +#: part/templates/part/part_base.html:34 msgid "Subscribe to notifications for this part" msgstr "Suscríbete a las notificaciones de este artículo" -#: part/templates/part/part_base.html:52 +#: part/templates/part/part_base.html:53 #: stock/templates/stock/item_base.html:62 -#: stock/templates/stock/location.html:71 templates/js/translated/label.js:136 +#: stock/templates/stock/location.html:72 templates/js/translated/label.js:136 msgid "Print Label" msgstr "Imprimir etiqueta" -#: part/templates/part/part_base.html:58 +#: part/templates/part/part_base.html:59 msgid "Show pricing information" msgstr "Mostrar información de precios" -#: part/templates/part/part_base.html:63 -#: stock/templates/stock/item_base.html:110 -#: stock/templates/stock/location.html:80 +#: part/templates/part/part_base.html:64 +#: stock/templates/stock/item_base.html:107 +#: stock/templates/stock/location.html:81 msgid "Stock actions" msgstr "Acciones de stock" -#: part/templates/part/part_base.html:70 +#: part/templates/part/part_base.html:71 msgid "Count part stock" msgstr "Contar stock de partes" -#: part/templates/part/part_base.html:76 +#: part/templates/part/part_base.html:77 msgid "Transfer part stock" msgstr "Transferir stock de partes" -#: part/templates/part/part_base.html:91 templates/js/translated/part.js:2299 +#: part/templates/part/part_base.html:92 templates/js/translated/part.js:2299 msgid "Part actions" msgstr "Acciones para partes" -#: part/templates/part/part_base.html:94 +#: part/templates/part/part_base.html:95 msgid "Duplicate part" msgstr "Duplicar parte" -#: part/templates/part/part_base.html:97 +#: part/templates/part/part_base.html:98 msgid "Edit part" msgstr "Editar parte" -#: part/templates/part/part_base.html:100 +#: part/templates/part/part_base.html:101 msgid "Delete part" msgstr "Eliminar parte" -#: part/templates/part/part_base.html:119 +#: part/templates/part/part_base.html:120 msgid "Part is a template part (variants can be made from this part)" msgstr "La parte es una parte de plantilla (las variantes se pueden hacer a partir de esta parte)" -#: part/templates/part/part_base.html:123 +#: part/templates/part/part_base.html:124 msgid "Part can be assembled from other parts" msgstr "La parte puede ser ensamblada desde otras partes" -#: part/templates/part/part_base.html:127 +#: part/templates/part/part_base.html:128 msgid "Part can be used in assemblies" msgstr "La parte puede ser usada en ensamblajes" -#: part/templates/part/part_base.html:131 +#: part/templates/part/part_base.html:132 msgid "Part stock is tracked by serial number" msgstr "El stock de esta parte está rastreado por número de serie" -#: part/templates/part/part_base.html:135 +#: part/templates/part/part_base.html:136 msgid "Part can be purchased from external suppliers" msgstr "La parte puede ser comprada de proveedores externos" -#: part/templates/part/part_base.html:139 +#: part/templates/part/part_base.html:140 msgid "Part can be sold to customers" msgstr "La parte puede ser vendida a clientes" -#: part/templates/part/part_base.html:145 +#: part/templates/part/part_base.html:146 msgid "Part is not active" msgstr "" -#: part/templates/part/part_base.html:153 +#: part/templates/part/part_base.html:154 msgid "Part is virtual (not a physical part)" msgstr "La parte es virtual (no una parte física)" -#: part/templates/part/part_base.html:163 -#: part/templates/part/part_base.html:690 +#: part/templates/part/part_base.html:164 +#: part/templates/part/part_base.html:698 msgid "Show Part Details" msgstr "Mostrar Detalles de Parte" #: part/templates/part/part_base.html:218 -#: stock/templates/stock/item_base.html:388 +msgid "Required for Orders" +msgstr "" + +#: part/templates/part/part_base.html:226 +#: stock/templates/stock/item_base.html:385 msgid "Allocated to Build Orders" msgstr "" -#: part/templates/part/part_base.html:227 -#: stock/templates/stock/item_base.html:381 +#: part/templates/part/part_base.html:235 +#: stock/templates/stock/item_base.html:378 msgid "Allocated to Sales Orders" -msgstr "" +msgstr "Asignado a órdenes de venta" -#: part/templates/part/part_base.html:300 +#: part/templates/part/part_base.html:308 msgid "Minimum stock level" msgstr "Nivel mínimo de stock" -#: part/templates/part/part_base.html:331 templates/js/translated/bom.js:1071 +#: part/templates/part/part_base.html:339 templates/js/translated/bom.js:1071 #: templates/js/translated/part.js:1271 templates/js/translated/part.js:2463 #: templates/js/translated/pricing.js:391 -#: templates/js/translated/pricing.js:1054 +#: templates/js/translated/pricing.js:1052 msgid "Price Range" msgstr "Rango de precios" -#: part/templates/part/part_base.html:361 +#: part/templates/part/part_base.html:369 msgid "Latest Serial Number" msgstr "Último número de serie" -#: part/templates/part/part_base.html:365 -#: stock/templates/stock/item_base.html:322 +#: part/templates/part/part_base.html:373 +#: stock/templates/stock/item_base.html:319 msgid "Search for serial number" msgstr "Buscar número de serie" -#: part/templates/part/part_base.html:453 +#: part/templates/part/part_base.html:461 msgid "Part QR Code" msgstr "" -#: part/templates/part/part_base.html:470 +#: part/templates/part/part_base.html:478 msgid "Link Barcode to Part" msgstr "Vincular código de barras a parte" -#: part/templates/part/part_base.html:520 +#: part/templates/part/part_base.html:528 msgid "Calculate" msgstr "Calcular" -#: part/templates/part/part_base.html:537 +#: part/templates/part/part_base.html:545 msgid "Remove associated image from this part" msgstr "Eliminar imagen asociada de esta parte" -#: part/templates/part/part_base.html:588 +#: part/templates/part/part_base.html:596 msgid "No matching images found" msgstr "No se encontraron imágenes coincidentes" -#: part/templates/part/part_base.html:684 +#: part/templates/part/part_base.html:692 msgid "Hide Part Details" msgstr "Ocultar Detalles de la Parte" @@ -8282,13 +8511,13 @@ msgid "Variants" msgstr "Variantes" #: part/templates/part/part_sidebar.html:14 -#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:21 +#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:22 #: stock/templates/stock/stock_app_base.html:10 #: templates/InvenTree/search.html:153 #: templates/InvenTree/settings/sidebar.html:51 #: templates/js/translated/part.js:1249 templates/js/translated/part.js:2152 #: templates/js/translated/part.js:2411 templates/js/translated/stock.js:1066 -#: templates/js/translated/stock.js:2155 templates/navbar.html:31 +#: templates/js/translated/stock.js:2156 templates/navbar.html:31 msgid "Stock" msgstr "Inventario" @@ -8324,17 +8553,17 @@ msgstr "" #: part/templates/part/prices.html:18 #: templates/InvenTree/settings/settings_staff_js.html:80 #: templates/InvenTree/settings/user.html:24 -#: templates/js/translated/helpers.js:103 +#: templates/js/translated/helpers.js:104 #: templates/js/translated/pricing.js:628 templates/notes_buttons.html:3 #: templates/notes_buttons.html:4 msgid "Edit" msgstr "Editar" -#: part/templates/part/prices.html:28 stock/admin.py:251 -#: stock/templates/stock/item_base.html:446 -#: templates/js/translated/company.js:1703 -#: templates/js/translated/company.js:1713 -#: templates/js/translated/stock.js:2331 +#: part/templates/part/prices.html:28 stock/admin.py:252 +#: stock/templates/stock/item_base.html:443 +#: templates/js/translated/company.js:1704 +#: templates/js/translated/company.js:1714 +#: templates/js/translated/stock.js:2332 msgid "Last Updated" msgstr "Última actualización" @@ -8406,7 +8635,7 @@ msgid "Update Pricing" msgstr "" #: part/templates/part/stock_count.html:7 -#: templates/js/translated/model_renderers.js:228 +#: templates/js/translated/model_renderers.js:231 #: templates/js/translated/part.js:707 templates/js/translated/part.js:2147 #: templates/js/translated/part.js:2149 msgid "No Stock" @@ -8486,7 +8715,7 @@ msgstr "Imagen de parte no encontrada" msgid "Part Pricing" msgstr "Precio de parte" -#: plugin/api.py:172 +#: plugin/api.py:175 msgid "Plugin cannot be deleted as it is currently active" msgstr "" @@ -8498,78 +8727,85 @@ msgstr "No se especificó ninguna acción" msgid "No matching action found" msgstr "No se encontró ninguna acción coincidente" -#: plugin/base/barcodes/api.py:125 plugin/base/barcodes/api.py:371 -#: plugin/base/barcodes/api.py:546 +#: plugin/base/barcodes/api.py:203 msgid "No match found for barcode data" msgstr "No se encontró ninguna coincidencia para los datos del código de barras" -#: plugin/base/barcodes/api.py:129 +#: plugin/base/barcodes/api.py:207 msgid "Match found for barcode data" msgstr "Coincidencia encontrada para datos de códigos de barras" -#: plugin/base/barcodes/api.py:163 plugin/base/barcodes/serializers.py:45 +#: plugin/base/barcodes/api.py:245 plugin/base/barcodes/serializers.py:72 msgid "Model is not supported" msgstr "" -#: plugin/base/barcodes/api.py:168 +#: plugin/base/barcodes/api.py:250 msgid "Model instance not found" msgstr "" -#: plugin/base/barcodes/api.py:197 -#: templates/js/translated/purchase_order.js:1468 +#: plugin/base/barcodes/api.py:279 +#: templates/js/translated/purchase_order.js:1452 msgid "Barcode matches existing item" msgstr "El código de barras coincide con artículo existente" -#: plugin/base/barcodes/api.py:336 +#: plugin/base/barcodes/api.py:418 msgid "No matching part data found" msgstr "" -#: plugin/base/barcodes/api.py:353 +#: plugin/base/barcodes/api.py:434 msgid "No matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:357 +#: plugin/base/barcodes/api.py:437 msgid "Multiple matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:381 +#: plugin/base/barcodes/api.py:450 plugin/base/barcodes/api.py:664 +msgid "No matching plugin found for barcode data" +msgstr "" + +#: plugin/base/barcodes/api.py:460 msgid "Matched supplier part" msgstr "" -#: plugin/base/barcodes/api.py:430 +#: plugin/base/barcodes/api.py:525 msgid "Item has already been received" msgstr "" -#: plugin/base/barcodes/api.py:467 +#: plugin/base/barcodes/api.py:563 msgid "No match for supplier barcode" msgstr "" -#: plugin/base/barcodes/api.py:510 +#: plugin/base/barcodes/api.py:612 msgid "Multiple matching line items found" msgstr "" -#: plugin/base/barcodes/api.py:513 +#: plugin/base/barcodes/api.py:615 msgid "No matching line item found" msgstr "" -#: plugin/base/barcodes/api.py:551 plugin/base/barcodes/api.py:558 +#: plugin/base/barcodes/api.py:661 +msgid "No sales order provided" +msgstr "" + +#: plugin/base/barcodes/api.py:670 msgid "Barcode does not match an existing stock item" msgstr "" -#: plugin/base/barcodes/api.py:569 +#: plugin/base/barcodes/api.py:686 msgid "Stock item does not match line item" msgstr "" -#: plugin/base/barcodes/api.py:593 templates/js/translated/build.js:2780 -#: templates/js/translated/sales_order.js:1953 +#: plugin/base/barcodes/api.py:716 templates/js/translated/build.js:2798 +#: templates/js/translated/sales_order.js:1934 msgid "Insufficient stock available" msgstr "" -#: plugin/base/barcodes/api.py:602 +#: plugin/base/barcodes/api.py:729 msgid "Stock item allocated to sales order" msgstr "" -#: plugin/base/barcodes/api.py:606 +#: plugin/base/barcodes/api.py:732 msgid "Not enough information" msgstr "" @@ -8591,75 +8827,75 @@ msgstr "" msgid "Purchase order does not match supplier" msgstr "" -#: plugin/base/barcodes/mixins.py:465 +#: plugin/base/barcodes/mixins.py:467 msgid "Failed to find pending line item for supplier part" msgstr "" -#: plugin/base/barcodes/mixins.py:496 +#: plugin/base/barcodes/mixins.py:498 msgid "Further information required to receive line item" msgstr "" -#: plugin/base/barcodes/mixins.py:504 +#: plugin/base/barcodes/mixins.py:506 msgid "Received purchase order line item" msgstr "" -#: plugin/base/barcodes/serializers.py:21 +#: plugin/base/barcodes/serializers.py:48 msgid "Scanned barcode data" msgstr "" -#: plugin/base/barcodes/serializers.py:30 +#: plugin/base/barcodes/serializers.py:57 msgid "Model name to generate barcode for" msgstr "" -#: plugin/base/barcodes/serializers.py:35 +#: plugin/base/barcodes/serializers.py:62 msgid "Primary key of model object to generate barcode for" msgstr "" -#: plugin/base/barcodes/serializers.py:105 +#: plugin/base/barcodes/serializers.py:132 msgid "Purchase Order to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:111 +#: plugin/base/barcodes/serializers.py:138 msgid "Purchase order is not pending" msgstr "" -#: plugin/base/barcodes/serializers.py:129 +#: plugin/base/barcodes/serializers.py:156 msgid "PurchaseOrder to receive items against" msgstr "" -#: plugin/base/barcodes/serializers.py:135 +#: plugin/base/barcodes/serializers.py:162 msgid "Purchase order has not been placed" msgstr "" -#: plugin/base/barcodes/serializers.py:143 +#: plugin/base/barcodes/serializers.py:170 msgid "Location to receive items into" msgstr "" -#: plugin/base/barcodes/serializers.py:149 +#: plugin/base/barcodes/serializers.py:176 msgid "Cannot select a structural location" msgstr "" -#: plugin/base/barcodes/serializers.py:163 +#: plugin/base/barcodes/serializers.py:190 msgid "Sales Order to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:169 +#: plugin/base/barcodes/serializers.py:196 msgid "Sales order is not pending" msgstr "" -#: plugin/base/barcodes/serializers.py:177 +#: plugin/base/barcodes/serializers.py:204 msgid "Sales order line item to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:184 +#: plugin/base/barcodes/serializers.py:211 msgid "Sales order shipment to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:190 +#: plugin/base/barcodes/serializers.py:217 msgid "Shipment has already been delivered" msgstr "" -#: plugin/base/barcodes/serializers.py:195 +#: plugin/base/barcodes/serializers.py:222 msgid "Quantity to allocate" msgstr "" @@ -8679,6 +8915,42 @@ msgstr "" msgid "No items provided to print" msgstr "" +#: plugin/base/ui/serializers.py:30 +msgid "Plugin Name" +msgstr "" + +#: plugin/base/ui/serializers.py:34 +msgid "Feature Type" +msgstr "" + +#: plugin/base/ui/serializers.py:39 +msgid "Feature Label" +msgstr "" + +#: plugin/base/ui/serializers.py:44 +msgid "Feature Title" +msgstr "" + +#: plugin/base/ui/serializers.py:49 +msgid "Feature Description" +msgstr "" + +#: plugin/base/ui/serializers.py:54 +msgid "Feature Icon" +msgstr "" + +#: plugin/base/ui/serializers.py:58 +msgid "Feature Options" +msgstr "" + +#: plugin/base/ui/serializers.py:61 +msgid "Feature Context" +msgstr "" + +#: plugin/base/ui/serializers.py:64 +msgid "Feature Source (javascript)" +msgstr "" + #: plugin/builtin/barcodes/inventree_barcode.py:27 msgid "InvenTree Barcodes" msgstr "Códigos de barras de InvenTree" @@ -8756,7 +9028,7 @@ msgstr "URL de webhook entrante de Slack" msgid "URL that is used to send messages to a slack channel" msgstr "URL que se utiliza para enviar mensajes a un canal de slack" -#: plugin/builtin/integration/core_notifications.py:164 +#: plugin/builtin/integration/core_notifications.py:166 msgid "Open link" msgstr "Abrir enlace" @@ -8794,11 +9066,11 @@ msgstr "" msgid "Provides support for printing using a machine" msgstr "" -#: plugin/builtin/labels/inventree_machine.py:149 +#: plugin/builtin/labels/inventree_machine.py:151 msgid "last used" msgstr "" -#: plugin/builtin/labels/inventree_machine.py:166 +#: plugin/builtin/labels/inventree_machine.py:168 msgid "Options" msgstr "" @@ -8822,7 +9094,7 @@ msgstr "" msgid "Print a border around each label" msgstr "" -#: plugin/builtin/labels/label_sheet.py:47 report/models.py:307 +#: plugin/builtin/labels/label_sheet.py:47 report/models.py:315 msgid "Landscape" msgstr "" @@ -8894,19 +9166,19 @@ msgstr "" msgid "The Supplier which acts as 'TME'" msgstr "" -#: plugin/installer.py:194 plugin/installer.py:282 +#: plugin/installer.py:199 plugin/installer.py:282 msgid "Only staff users can administer plugins" msgstr "" -#: plugin/installer.py:197 +#: plugin/installer.py:202 msgid "Plugin installation is disabled" msgstr "" -#: plugin/installer.py:248 +#: plugin/installer.py:246 msgid "Installed plugin successfully" msgstr "" -#: plugin/installer.py:254 +#: plugin/installer.py:251 #, python-brace-format msgid "Installed plugin into {path}" msgstr "" @@ -8943,10 +9215,6 @@ msgstr "Configuración del complemento" msgid "Plugin Configurations" msgstr "Configuraciones del Plug-in" -#: plugin/models.py:43 users/models.py:100 -msgid "Key" -msgstr "Clave" - #: plugin/models.py:44 msgid "Key of plugin" msgstr "Clave del complemento" @@ -8955,7 +9223,7 @@ msgstr "Clave del complemento" msgid "PluginName of the plugin" msgstr "Nombre del complemento" -#: plugin/models.py:59 plugin/serializers.py:90 +#: plugin/models.py:59 plugin/serializers.py:115 msgid "Package Name" msgstr "Nombre de Paquete" @@ -8984,17 +9252,17 @@ msgstr "Complemento integrado" msgid "Package Plugin" msgstr "" -#: plugin/models.py:220 report/models.py:474 +#: plugin/models.py:259 report/models.py:482 #: templates/InvenTree/settings/plugin_settings.html:9 #: templates/js/translated/plugin.js:51 msgid "Plugin" msgstr "Complemento" -#: plugin/models.py:267 +#: plugin/models.py:306 msgid "Method" msgstr "Método" -#: plugin/plugin.py:270 +#: plugin/plugin.py:275 msgid "No author found" msgstr "No se encontró autor" @@ -9053,81 +9321,157 @@ msgstr "" msgid "InvenTree Contributors" msgstr "" -#: plugin/serializers.py:81 +#: plugin/samples/integration/user_interface_sample.py:27 +msgid "Enable Part Panels" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:28 +msgid "Enable custom panels for Part views" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:33 +msgid "Enable Purchase Order Panels" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:34 +msgid "Enable custom panels for Purchase Order views" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:39 +msgid "Enable Broken Panels" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:40 +msgid "Enable broken panels for testing" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:45 +msgid "Enable Dynamic Panel" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:46 +msgid "Enable dynamic panels for testing" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:98 +msgid "Part Panel" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:131 +msgid "Broken Dashboard Item" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:133 +msgid "This is a broken dashboard item - it will not render!" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:139 +msgid "Sample Dashboard Item" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:141 +msgid "This is a sample dashboard item. It renders a simple string of HTML content." +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:147 +msgid "Context Dashboard Item" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:161 +msgid "Admin Dashboard Item" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:162 +msgid "This is an admin-only dashboard item." +msgstr "" + +#: plugin/serializers.py:82 +msgid "Source File" +msgstr "" + +#: plugin/serializers.py:83 +msgid "Path to the source file for admin integration" +msgstr "" + +#: plugin/serializers.py:90 +msgid "Optional context data for the admin integration" +msgstr "" + +#: plugin/serializers.py:106 msgid "Source URL" msgstr "URL de origen" -#: plugin/serializers.py:83 +#: plugin/serializers.py:108 msgid "Source for the package - this can be a custom registry or a VCS path" msgstr "Fuente del paquete - puede ser un registro personalizado o una ruta VCS" -#: plugin/serializers.py:92 +#: plugin/serializers.py:117 msgid "Name for the Plugin Package - can also contain a version indicator" msgstr "Nombre del paquete Plug-in - también puede contener un indicador de versión" -#: plugin/serializers.py:99 +#: plugin/serializers.py:124 #: templates/InvenTree/settings/plugin_settings.html:42 #: templates/js/translated/plugin.js:86 msgid "Version" msgstr "Versión" -#: plugin/serializers.py:101 +#: plugin/serializers.py:126 msgid "Version specifier for the plugin. Leave blank for latest version." msgstr "" -#: plugin/serializers.py:106 +#: plugin/serializers.py:131 msgid "Confirm plugin installation" msgstr "Confirmar instalación del complemento" -#: plugin/serializers.py:108 +#: plugin/serializers.py:133 msgid "This will install this plugin now into the current instance. The instance will go into maintenance." msgstr "Esto instalará este plug-in en la instancia actual. La instancia entrará en mantenimiento." -#: plugin/serializers.py:121 +#: plugin/serializers.py:146 msgid "Installation not confirmed" msgstr "Instalación no confirmada" -#: plugin/serializers.py:123 +#: plugin/serializers.py:148 msgid "Either packagename of URL must be provided" msgstr "Debe proporcionar cualquier nombre de paquete de la URL" -#: plugin/serializers.py:161 +#: plugin/serializers.py:184 msgid "Full reload" msgstr "" -#: plugin/serializers.py:162 +#: plugin/serializers.py:185 msgid "Perform a full reload of the plugin registry" msgstr "" -#: plugin/serializers.py:168 +#: plugin/serializers.py:191 msgid "Force reload" msgstr "" -#: plugin/serializers.py:170 +#: plugin/serializers.py:193 msgid "Force a reload of the plugin registry, even if it is already loaded" msgstr "" -#: plugin/serializers.py:177 +#: plugin/serializers.py:200 msgid "Collect plugins" msgstr "" -#: plugin/serializers.py:178 +#: plugin/serializers.py:201 msgid "Collect plugins and add them to the registry" msgstr "" -#: plugin/serializers.py:205 +#: plugin/serializers.py:228 msgid "Activate Plugin" msgstr "Activar complemento" -#: plugin/serializers.py:206 +#: plugin/serializers.py:229 msgid "Activate this plugin" msgstr "Activar este complemento" -#: plugin/serializers.py:226 +#: plugin/serializers.py:249 msgid "Delete configuration" msgstr "" -#: plugin/serializers.py:227 +#: plugin/serializers.py:250 msgid "Delete the plugin configuration from the database" msgstr "" @@ -9135,11 +9479,11 @@ msgstr "" msgid "No valid objects provided to template" msgstr "No se han proporcionado objetos válidos a la plantilla" -#: report/api.py:103 report/models.py:438 report/serializers.py:98 -#: report/serializers.py:148 templates/js/translated/purchase_order.js:1817 +#: report/api.py:103 report/models.py:446 report/serializers.py:99 +#: report/serializers.py:149 templates/js/translated/purchase_order.js:1801 #: templates/js/translated/return_order.js:353 -#: templates/js/translated/sales_order.js:887 -#: templates/js/translated/sales_order.js:1047 +#: templates/js/translated/sales_order.js:846 +#: templates/js/translated/sales_order.js:1020 msgid "Items" msgstr "" @@ -9157,7 +9501,7 @@ msgstr "" #: report/api.py:233 msgid "Invalid label dimensions" -msgstr "" +msgstr "Dimensiones de etiqueta inválidas" #: report/api.py:248 report/api.py:329 msgid "No valid items provided to template" @@ -9165,24 +9509,28 @@ msgstr "" #: report/api.py:283 msgid "Error printing label" +msgstr "Error al imprimir la etiqueta" + +#: report/api.py:358 +msgid "Report saved at time of printing" msgstr "" -#: report/api.py:375 report/api.py:411 +#: report/api.py:384 report/api.py:420 #, python-brace-format msgid "Template file '{template}' is missing or does not exist" msgstr "" #: report/helpers.py:43 msgid "A4" -msgstr "" +msgstr "A4" #: report/helpers.py:44 msgid "A3" -msgstr "" +msgstr "A3" #: report/helpers.py:45 msgid "Legal" -msgstr "" +msgstr "Legal" #: report/helpers.py:46 msgid "Letter" @@ -9204,137 +9552,145 @@ msgstr "" msgid "Revision number (auto-increments)" msgstr "" -#: report/models.py:202 +#: report/models.py:168 +msgid "Attach to Model on Print" +msgstr "" + +#: report/models.py:170 +msgid "Save report output as an attachment against linked model instance when printing" +msgstr "" + +#: report/models.py:210 msgid "Filename Pattern" msgstr "Patrón de Nombre de archivo" -#: report/models.py:203 +#: report/models.py:211 msgid "Pattern for generating filenames" msgstr "" -#: report/models.py:208 +#: report/models.py:216 msgid "Template is enabled" msgstr "" -#: report/models.py:214 +#: report/models.py:222 msgid "Target model type for template" msgstr "" -#: report/models.py:234 +#: report/models.py:242 msgid "Filters" msgstr "Filtros" -#: report/models.py:235 +#: report/models.py:243 msgid "Template query filters (comma-separated list of key=value pairs)" msgstr "" -#: report/models.py:294 report/models.py:361 +#: report/models.py:302 report/models.py:369 msgid "Template file" msgstr "" -#: report/models.py:302 +#: report/models.py:310 msgid "Page size for PDF reports" msgstr "Tamaño de página para reportes PDF" -#: report/models.py:308 +#: report/models.py:316 msgid "Render report in landscape orientation" msgstr "" -#: report/models.py:367 +#: report/models.py:375 msgid "Width [mm]" msgstr "Ancho [mm]" -#: report/models.py:368 +#: report/models.py:376 msgid "Label width, specified in mm" msgstr "Ancho de la etiqueta, especificado en mm" -#: report/models.py:374 +#: report/models.py:382 msgid "Height [mm]" msgstr "Altura [mm]" -#: report/models.py:375 +#: report/models.py:383 msgid "Label height, specified in mm" msgstr "Altura de la etiqueta, especificada en mm" -#: report/models.py:438 +#: report/models.py:446 msgid "Number of items to process" msgstr "" -#: report/models.py:444 +#: report/models.py:452 msgid "Report generation is complete" msgstr "" -#: report/models.py:448 templates/js/translated/build.js:2349 +#: report/models.py:456 templates/js/translated/build.js:2352 msgid "Progress" msgstr "Progreso" -#: report/models.py:448 +#: report/models.py:456 msgid "Report generation progress" msgstr "" -#: report/models.py:456 +#: report/models.py:464 msgid "Report Template" msgstr "" -#: report/models.py:463 report/models.py:486 +#: report/models.py:471 report/models.py:494 msgid "Output File" msgstr "" -#: report/models.py:464 report/models.py:487 +#: report/models.py:472 report/models.py:495 msgid "Generated output file" msgstr "" -#: report/models.py:475 +#: report/models.py:483 msgid "Label output plugin" msgstr "" -#: report/models.py:479 +#: report/models.py:487 msgid "Label Template" msgstr "" -#: report/models.py:502 +#: report/models.py:510 msgid "Snippet" msgstr "Fragmento" -#: report/models.py:503 +#: report/models.py:511 msgid "Report snippet file" msgstr "Archivo fragmento de informe" -#: report/models.py:510 +#: report/models.py:518 msgid "Snippet file description" msgstr "Descripción de archivo de fragmento" -#: report/models.py:528 +#: report/models.py:536 msgid "Asset" msgstr "Activo" -#: report/models.py:529 +#: report/models.py:537 msgid "Report asset file" msgstr "Reportar archivo de activos" -#: report/models.py:536 +#: report/models.py:544 msgid "Asset file description" msgstr "Descripción del archivo de activos" -#: report/serializers.py:91 +#: report/serializers.py:92 msgid "Select report template" msgstr "" -#: report/serializers.py:99 report/serializers.py:149 +#: report/serializers.py:100 report/serializers.py:150 msgid "List of item primary keys to include in the report" msgstr "" -#: report/serializers.py:132 +#: report/serializers.py:133 msgid "Select label template" -msgstr "" - -#: report/serializers.py:140 -msgid "Printing Plugin" -msgstr "" +msgstr "Selecciona la plantilla de etiqueta" #: report/serializers.py:141 +msgid "Printing Plugin" +msgstr "Complemento de impresión" + +#: report/serializers.py:142 msgid "Select plugin to use for label printing" -msgstr "" +msgstr "Selecciona el complemento a usar para imprimir etiquetas" #: report/templates/label/part_label.html:31 #: report/templates/label/stockitem_qr.html:21 @@ -9365,9 +9721,9 @@ msgstr "El proveedor ha sido eliminado" #: report/templates/report/inventree_sales_order_report.html:30 #: templates/js/translated/order.js:341 templates/js/translated/pricing.js:527 #: templates/js/translated/pricing.js:596 -#: templates/js/translated/pricing.js:834 -#: templates/js/translated/purchase_order.js:2185 -#: templates/js/translated/sales_order.js:1873 +#: templates/js/translated/pricing.js:832 +#: templates/js/translated/purchase_order.js:2169 +#: templates/js/translated/sales_order.js:1854 msgid "Unit Price" msgstr "Precio Unitario" @@ -9379,12 +9735,17 @@ msgstr "Partida extra" #: report/templates/report/inventree_purchase_order_report.html:72 #: report/templates/report/inventree_sales_order_report.html:72 -#: templates/js/translated/purchase_order.js:2087 -#: templates/js/translated/sales_order.js:1842 +#: templates/js/translated/purchase_order.js:2071 +#: templates/js/translated/sales_order.js:1823 #: templates/test_statistics_table.html:8 #: templates/test_statistics_table.html:19 msgid "Total" -msgstr "" +msgstr "Total" + +#: report/templates/report/inventree_sales_order_shipment_report.html:23 +#: stock/templates/stock/stock_sidebar.html:8 +msgid "Allocations" +msgstr "Asignaciones" #: report/templates/report/inventree_stock_location_report.html:97 msgid "Stock location items" @@ -9403,15 +9764,13 @@ msgstr "Resultados de la Prueba" msgid "Test" msgstr "Prueba" -#: report/templates/report/inventree_test_report.html:103 stock/models.py:2544 -msgid "Result" -msgstr "Resultado" - #: report/templates/report/inventree_test_report.html:129 +#: templates/js/translated/stock.js:1448 msgid "Pass" msgstr "Pasada" #: report/templates/report/inventree_test_report.html:131 +#: templates/js/translated/stock.js:1450 msgid "Fail" msgstr "Fallo" @@ -9420,19 +9779,20 @@ msgid "No result (required)" msgstr "Ningún resultado (requerido)" #: report/templates/report/inventree_test_report.html:140 +#: templates/js/translated/stock.js:1455 msgid "No result" msgstr "Sin resultados" #: report/templates/report/inventree_test_report.html:153 -#: stock/serializers.py:599 stock/templates/stock/stock_sidebar.html:16 +#: stock/serializers.py:626 stock/templates/stock/stock_sidebar.html:16 msgid "Installed Items" msgstr "Elementos instalados" -#: report/templates/report/inventree_test_report.html:167 stock/admin.py:161 +#: report/templates/report/inventree_test_report.html:167 stock/admin.py:162 #: templates/js/translated/stock.js:706 templates/js/translated/stock.js:877 -#: templates/js/translated/stock.js:3194 +#: templates/js/translated/stock.js:3195 msgid "Serial" -msgstr "" +msgstr "Número de serie" #: report/templatetags/report.py:98 msgid "Asset file does not exist" @@ -9450,67 +9810,67 @@ msgstr "" msgid "company_image tag requires a Company instance" msgstr "" -#: stock/admin.py:51 stock/admin.py:171 +#: stock/admin.py:51 stock/admin.py:172 msgid "Location ID" msgstr "ID de Ubicación" -#: stock/admin.py:63 stock/templates/stock/location.html:128 -#: stock/templates/stock/location.html:134 +#: stock/admin.py:63 stock/templates/stock/location.html:129 +#: stock/templates/stock/location.html:135 msgid "Location Path" msgstr "Ruta de Ubicación" -#: stock/admin.py:148 +#: stock/admin.py:149 msgid "Stock Item ID" msgstr "ID del artículo de almacén" -#: stock/admin.py:167 +#: stock/admin.py:168 msgid "Status Code" msgstr "Código de estado" -#: stock/admin.py:179 +#: stock/admin.py:180 msgid "Supplier Part ID" msgstr "ID Parte del Proveedor" -#: stock/admin.py:184 +#: stock/admin.py:185 msgid "Supplier Part SKU" msgstr "" -#: stock/admin.py:189 +#: stock/admin.py:190 msgid "Supplier ID" msgstr "ID de proveedor" -#: stock/admin.py:200 +#: stock/admin.py:201 msgid "Customer ID" msgstr "ID de cliente" -#: stock/admin.py:205 stock/models.py:825 -#: stock/templates/stock/item_base.html:354 +#: stock/admin.py:206 stock/models.py:902 +#: stock/templates/stock/item_base.html:351 msgid "Installed In" msgstr "Instalado en" -#: stock/admin.py:210 +#: stock/admin.py:211 msgid "Build ID" msgstr "ID de construcción" -#: stock/admin.py:220 +#: stock/admin.py:221 msgid "Sales Order ID" msgstr "ID de orden de venta" -#: stock/admin.py:225 +#: stock/admin.py:226 msgid "Purchase Order ID" msgstr "ID de orden de compra" -#: stock/admin.py:240 +#: stock/admin.py:241 msgid "Review Needed" msgstr "Revisión necesaria" -#: stock/admin.py:245 +#: stock/admin.py:246 msgid "Delete on Deplete" -msgstr "" +msgstr "Eliminar al agotarse" -#: stock/admin.py:260 stock/models.py:919 -#: stock/templates/stock/item_base.html:433 -#: templates/js/translated/stock.js:2315 users/models.py:124 +#: stock/admin.py:261 stock/models.py:996 +#: stock/templates/stock/item_base.html:430 +#: templates/js/translated/stock.js:2316 users/models.py:124 msgid "Expiry Date" msgstr "Fecha de Expiración" @@ -9526,13 +9886,13 @@ msgstr "" msgid "Include sub-locations in filtered results" msgstr "" -#: stock/api.py:367 stock/serializers.py:1186 +#: stock/api.py:366 stock/serializers.py:1217 msgid "Parent Location" -msgstr "" +msgstr "Ubicación principal" -#: stock/api.py:368 +#: stock/api.py:367 msgid "Filter by parent location" -msgstr "" +msgstr "Filtrar por ubicación principal" #: stock/api.py:615 templates/js/translated/table_filters.js:434 msgid "External Location" @@ -9550,8 +9910,8 @@ msgstr "" msgid "Expiry date after" msgstr "" -#: stock/api.py:840 stock/serializers.py:604 -#: stock/templates/stock/item_base.html:439 +#: stock/api.py:840 stock/serializers.py:631 +#: stock/templates/stock/item_base.html:436 #: templates/js/translated/table_filters.js:448 msgid "Stale" msgstr "Desactualizado" @@ -9560,600 +9920,604 @@ msgstr "Desactualizado" msgid "Quantity is required" msgstr "Cantidad requerida" -#: stock/api.py:933 +#: stock/api.py:932 msgid "Valid part must be supplied" msgstr "Debe suministrarse una parte válida" -#: stock/api.py:964 +#: stock/api.py:959 msgid "The given supplier part does not exist" msgstr "" -#: stock/api.py:974 +#: stock/api.py:969 msgid "The supplier part has a pack size defined, but flag use_pack_size not set" msgstr "" -#: stock/api.py:1005 +#: stock/api.py:996 msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "" -#: stock/models.py:64 +#: stock/models.py:70 msgid "Stock Location type" msgstr "" -#: stock/models.py:65 +#: stock/models.py:71 msgid "Stock Location types" msgstr "" -#: stock/models.py:91 +#: stock/models.py:97 msgid "Default icon for all locations that have no icon set (optional)" msgstr "" -#: stock/models.py:131 stock/models.py:807 -#: stock/templates/stock/location.html:17 +#: stock/models.py:137 stock/models.py:884 +#: stock/templates/stock/location.html:18 #: stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "Ubicación de Stock" -#: stock/models.py:132 stock/templates/stock/location.html:183 +#: stock/models.py:138 stock/templates/stock/location.html:184 #: templates/InvenTree/search.html:166 templates/js/translated/search.js:178 #: users/models.py:205 msgid "Stock Locations" msgstr "Ubicaciones de Stock" -#: stock/models.py:180 stock/models.py:968 -#: stock/templates/stock/item_base.html:247 +#: stock/models.py:186 stock/models.py:1045 +#: stock/templates/stock/item_base.html:244 msgid "Owner" msgstr "Propietario" -#: stock/models.py:181 stock/models.py:969 +#: stock/models.py:187 stock/models.py:1046 msgid "Select Owner" msgstr "Seleccionar Propietario" -#: stock/models.py:189 +#: stock/models.py:195 msgid "Stock items may not be directly located into a structural stock locations, but may be located to child locations." msgstr "" -#: stock/models.py:196 templates/js/translated/stock.js:2865 +#: stock/models.py:202 templates/js/translated/stock.js:2866 #: templates/js/translated/table_filters.js:250 msgid "External" msgstr "Externo" -#: stock/models.py:197 +#: stock/models.py:203 msgid "This is an external stock location" msgstr "" -#: stock/models.py:203 templates/js/translated/stock.js:2874 +#: stock/models.py:209 templates/js/translated/stock.js:2875 #: templates/js/translated/table_filters.js:253 msgid "Location type" msgstr "" -#: stock/models.py:207 +#: stock/models.py:213 msgid "Stock location type of this location" msgstr "" -#: stock/models.py:279 +#: stock/models.py:285 msgid "You cannot make this stock location structural because some stock items are already located into it!" msgstr "" -#: stock/models.py:664 +#: stock/models.py:492 +msgid "Part must be specified" +msgstr "" + +#: stock/models.py:741 msgid "Stock items cannot be located into structural stock locations!" msgstr "" -#: stock/models.py:691 stock/serializers.py:480 +#: stock/models.py:768 stock/serializers.py:492 msgid "Stock item cannot be created for virtual parts" msgstr "" -#: stock/models.py:708 +#: stock/models.py:785 #, python-brace-format msgid "Part type ('{self.supplier_part.part}') must be {self.part}" msgstr "" -#: stock/models.py:718 stock/models.py:731 +#: stock/models.py:795 stock/models.py:808 msgid "Quantity must be 1 for item with a serial number" msgstr "La cantidad debe ser 1 para el artículo con un número de serie" -#: stock/models.py:721 +#: stock/models.py:798 msgid "Serial number cannot be set if quantity greater than 1" msgstr "Número de serie no se puede establecer si la cantidad es mayor que 1" -#: stock/models.py:743 +#: stock/models.py:820 msgid "Item cannot belong to itself" msgstr "El objeto no puede pertenecer a sí mismo" -#: stock/models.py:748 +#: stock/models.py:825 msgid "Item must have a build reference if is_building=True" msgstr "El artículo debe tener una referencia de construcción si is_building=True" -#: stock/models.py:761 +#: stock/models.py:838 msgid "Build reference does not point to the same part object" msgstr "La referencia de la construcción no apunta al mismo objeto de parte" -#: stock/models.py:777 +#: stock/models.py:854 msgid "Parent Stock Item" msgstr "Artículo de stock padre" -#: stock/models.py:789 +#: stock/models.py:866 msgid "Base part" msgstr "Parte base" -#: stock/models.py:799 +#: stock/models.py:876 msgid "Select a matching supplier part for this stock item" msgstr "Seleccione una parte del proveedor correspondiente para este artículo de stock" -#: stock/models.py:811 +#: stock/models.py:888 msgid "Where is this stock item located?" msgstr "¿Dónde se encuentra este artículo de stock?" -#: stock/models.py:819 stock/serializers.py:1580 +#: stock/models.py:896 stock/serializers.py:1611 msgid "Packaging this stock item is stored in" msgstr "Empaquetar este artículo de stock se almacena en" -#: stock/models.py:830 +#: stock/models.py:907 msgid "Is this item installed in another item?" msgstr "¿Está este artículo instalado en otro artículo?" -#: stock/models.py:849 +#: stock/models.py:926 msgid "Serial number for this item" msgstr "Número de serie para este artículo" -#: stock/models.py:863 stock/serializers.py:1563 +#: stock/models.py:940 stock/serializers.py:1594 msgid "Batch code for this stock item" msgstr "Código de lote para este artículo de stock" -#: stock/models.py:868 +#: stock/models.py:945 msgid "Stock Quantity" msgstr "Cantidad de Stock" -#: stock/models.py:878 +#: stock/models.py:955 msgid "Source Build" msgstr "Build de origen" -#: stock/models.py:881 +#: stock/models.py:958 msgid "Build for this stock item" msgstr "Build para este item de stock" -#: stock/models.py:888 stock/templates/stock/item_base.html:363 +#: stock/models.py:965 stock/templates/stock/item_base.html:360 msgid "Consumed By" msgstr "Consumido por" -#: stock/models.py:891 +#: stock/models.py:968 msgid "Build order which consumed this stock item" msgstr "" -#: stock/models.py:900 +#: stock/models.py:977 msgid "Source Purchase Order" msgstr "Orden de compra de origen" -#: stock/models.py:904 +#: stock/models.py:981 msgid "Purchase order for this stock item" msgstr "Orden de compra para este artículo de stock" -#: stock/models.py:910 +#: stock/models.py:987 msgid "Destination Sales Order" msgstr "Orden de venta de destino" -#: stock/models.py:921 +#: stock/models.py:998 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "Fecha de caducidad del artículo de stock. El stock se considerará caducado después de esta fecha" -#: stock/models.py:939 +#: stock/models.py:1016 msgid "Delete on deplete" msgstr "Eliminar al agotar" -#: stock/models.py:940 +#: stock/models.py:1017 msgid "Delete this Stock Item when stock is depleted" msgstr "Eliminar este artículo de stock cuando se agoten las existencias" -#: stock/models.py:960 +#: stock/models.py:1037 msgid "Single unit purchase price at time of purchase" msgstr "Precio de compra único en el momento de la compra" -#: stock/models.py:991 +#: stock/models.py:1068 msgid "Converted to part" msgstr "Convertido a parte" -#: stock/models.py:1511 +#: stock/models.py:1600 msgid "Part is not set as trackable" msgstr "La parte no está establecida como rastreable" -#: stock/models.py:1517 +#: stock/models.py:1606 msgid "Quantity must be integer" msgstr "Cantidad debe ser un entero" -#: stock/models.py:1525 +#: stock/models.py:1614 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({self.quantity})" msgstr "" -#: stock/models.py:1531 -msgid "Serial numbers must be a list of integers" -msgstr "Los números de serie deben ser una lista de enteros" +#: stock/models.py:1620 +msgid "Serial numbers must be provided as a list" +msgstr "" -#: stock/models.py:1536 +#: stock/models.py:1625 msgid "Quantity does not match serial numbers" msgstr "La cantidad no coincide con los números de serie" -#: stock/models.py:1544 stock/serializers.py:726 -msgid "Serial numbers already exist" -msgstr "Números de serie ya existen" - -#: stock/models.py:1641 +#: stock/models.py:1747 stock/models.py:2563 msgid "Test template does not exist" msgstr "" -#: stock/models.py:1659 +#: stock/models.py:1765 msgid "Stock item has been assigned to a sales order" msgstr "Artículo de stock ha sido asignado a un pedido de venta" -#: stock/models.py:1663 +#: stock/models.py:1769 msgid "Stock item is installed in another item" msgstr "Artículo de stock está instalado en otro artículo" -#: stock/models.py:1666 +#: stock/models.py:1772 msgid "Stock item contains other items" msgstr "Artículo de stock contiene otros artículos" -#: stock/models.py:1669 +#: stock/models.py:1775 msgid "Stock item has been assigned to a customer" msgstr "Artículo de stock ha sido asignado a un cliente" -#: stock/models.py:1672 +#: stock/models.py:1778 msgid "Stock item is currently in production" msgstr "El artículo de stock está en producción" -#: stock/models.py:1675 +#: stock/models.py:1781 msgid "Serialized stock cannot be merged" msgstr "Stock serializado no puede ser combinado" -#: stock/models.py:1682 stock/serializers.py:1469 +#: stock/models.py:1788 stock/serializers.py:1500 msgid "Duplicate stock items" msgstr "Artículos de Stock Duplicados" -#: stock/models.py:1686 +#: stock/models.py:1792 msgid "Stock items must refer to the same part" msgstr "Los artículos de stock deben referirse a la misma parte" -#: stock/models.py:1694 +#: stock/models.py:1800 msgid "Stock items must refer to the same supplier part" msgstr "Los artículos de stock deben referirse a la misma parte del proveedor" -#: stock/models.py:1699 +#: stock/models.py:1805 msgid "Stock status codes must match" msgstr "Los códigos de estado del stock deben coincidir" -#: stock/models.py:1960 +#: stock/models.py:2066 msgid "StockItem cannot be moved as it is not in stock" msgstr "Stock no se puede mover porque no está en stock" -#: stock/models.py:2343 +#: stock/models.py:2462 msgid "Stock Item Tracking" msgstr "" -#: stock/models.py:2376 +#: stock/models.py:2495 msgid "Entry notes" msgstr "Notas de entrada" -#: stock/models.py:2416 +#: stock/models.py:2535 msgid "Stock Item Test Result" msgstr "" -#: stock/models.py:2449 +#: stock/models.py:2566 msgid "Value must be provided for this test" msgstr "Debe proporcionarse un valor para esta prueba" -#: stock/models.py:2454 +#: stock/models.py:2570 msgid "Attachment must be uploaded for this test" msgstr "El archivo adjunto debe ser subido para esta prueba" -#: stock/models.py:2459 +#: stock/models.py:2575 msgid "Invalid value for this test" msgstr "" -#: stock/models.py:2544 +#: stock/models.py:2660 msgid "Test result" msgstr "Resultado de la prueba" -#: stock/models.py:2551 +#: stock/models.py:2667 msgid "Test output value" msgstr "Valor de salida de prueba" -#: stock/models.py:2559 +#: stock/models.py:2675 stock/serializers.py:245 msgid "Test result attachment" msgstr "Adjunto de resultados de prueba" -#: stock/models.py:2563 +#: stock/models.py:2679 msgid "Test notes" msgstr "Notas de prueba" -#: stock/models.py:2571 templates/js/translated/stock.js:1633 +#: stock/models.py:2687 templates/js/translated/stock.js:1633 msgid "Test station" msgstr "" -#: stock/models.py:2572 +#: stock/models.py:2688 msgid "The identifier of the test station where the test was performed" msgstr "" -#: stock/models.py:2578 +#: stock/models.py:2694 msgid "Started" msgstr "" -#: stock/models.py:2579 +#: stock/models.py:2695 msgid "The timestamp of the test start" msgstr "" -#: stock/models.py:2585 +#: stock/models.py:2701 msgid "Finished" -msgstr "" +msgstr "Finalizó" -#: stock/models.py:2586 +#: stock/models.py:2702 msgid "The timestamp of the test finish" msgstr "" -#: stock/serializers.py:76 +#: stock/serializers.py:77 msgid "Generated batch code" msgstr "" -#: stock/serializers.py:85 +#: stock/serializers.py:86 msgid "Select build order" msgstr "" -#: stock/serializers.py:94 +#: stock/serializers.py:95 msgid "Select stock item to generate batch code for" msgstr "" -#: stock/serializers.py:103 +#: stock/serializers.py:104 msgid "Select location to generate batch code for" msgstr "" -#: stock/serializers.py:112 +#: stock/serializers.py:113 msgid "Select part to generate batch code for" msgstr "" -#: stock/serializers.py:121 +#: stock/serializers.py:122 msgid "Select purchase order" msgstr "" -#: stock/serializers.py:128 +#: stock/serializers.py:129 msgid "Enter quantity for batch code" msgstr "" -#: stock/serializers.py:151 +#: stock/serializers.py:152 msgid "Generated serial number" msgstr "" -#: stock/serializers.py:160 +#: stock/serializers.py:161 msgid "Select part to generate serial number for" msgstr "" -#: stock/serializers.py:168 +#: stock/serializers.py:169 msgid "Quantity of serial numbers to generate" msgstr "" -#: stock/serializers.py:233 +#: stock/serializers.py:234 msgid "Test template for this result" msgstr "" -#: stock/serializers.py:254 +#: stock/serializers.py:258 msgid "Template ID or test name must be provided" msgstr "" -#: stock/serializers.py:286 +#: stock/serializers.py:290 msgid "The test finished time cannot be earlier than the test started time" msgstr "" -#: stock/serializers.py:323 +#: stock/serializers.py:327 msgid "Serial number is too large" msgstr "El número de serie es demasiado grande" -#: stock/serializers.py:452 stock/templates/stock/item_base.html:193 +#: stock/serializers.py:462 stock/templates/stock/item_base.html:190 msgid "Parent Item" msgstr "Elemento padre" -#: stock/serializers.py:453 +#: stock/serializers.py:463 msgid "Parent stock item" msgstr "" -#: stock/serializers.py:472 +#: stock/serializers.py:484 msgid "Use pack size when adding: the quantity defined is the number of packs" msgstr "" -#: stock/serializers.py:596 stock/templates/stock/item_base.html:437 +#: stock/serializers.py:623 stock/templates/stock/item_base.html:434 #: templates/js/translated/table_filters.js:442 users/models.py:174 msgid "Expired" msgstr "Expirado" -#: stock/serializers.py:602 stock/templates/stock/stock_sidebar.html:20 +#: stock/serializers.py:629 stock/templates/stock/stock_sidebar.html:20 msgid "Child Items" msgstr "Elementos secundarios" -#: stock/serializers.py:606 +#: stock/serializers.py:633 msgid "Tracking Items" msgstr "" -#: stock/serializers.py:612 +#: stock/serializers.py:639 msgid "Purchase price of this stock item, per unit or pack" msgstr "" -#: stock/serializers.py:631 +#: stock/serializers.py:658 msgid "Minimum Pricing" msgstr "" -#: stock/serializers.py:637 +#: stock/serializers.py:664 msgid "Maximum Pricing" msgstr "" -#: stock/serializers.py:661 +#: stock/serializers.py:688 msgid "Enter number of stock items to serialize" msgstr "Introduzca el número de artículos de stock para serializar" -#: stock/serializers.py:674 +#: stock/serializers.py:701 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({q})" msgstr "La cantidad no debe exceder la cantidad disponible de stock ({q})" -#: stock/serializers.py:681 +#: stock/serializers.py:708 msgid "Enter serial numbers for new items" msgstr "Introduzca números de serie para nuevos artículos" -#: stock/serializers.py:692 stock/serializers.py:1426 stock/serializers.py:1682 +#: stock/serializers.py:719 stock/serializers.py:1457 stock/serializers.py:1713 msgid "Destination stock location" msgstr "Ubicación de stock de destino" -#: stock/serializers.py:699 +#: stock/serializers.py:726 msgid "Optional note field" msgstr "Campo de nota opcional" -#: stock/serializers.py:709 +#: stock/serializers.py:736 msgid "Serial numbers cannot be assigned to this part" msgstr "Los números de serie no se pueden asignar a esta parte" -#: stock/serializers.py:764 +#: stock/serializers.py:756 +msgid "Serial numbers already exist" +msgstr "Números de serie ya existen" + +#: stock/serializers.py:795 msgid "Select stock item to install" msgstr "" -#: stock/serializers.py:771 +#: stock/serializers.py:802 msgid "Quantity to Install" msgstr "" -#: stock/serializers.py:772 +#: stock/serializers.py:803 msgid "Enter the quantity of items to install" msgstr "" -#: stock/serializers.py:777 stock/serializers.py:857 stock/serializers.py:983 -#: stock/serializers.py:1033 +#: stock/serializers.py:808 stock/serializers.py:888 stock/serializers.py:1014 +#: stock/serializers.py:1064 msgid "Add transaction note (optional)" msgstr "Añadir nota de transacción (opcional)" -#: stock/serializers.py:785 +#: stock/serializers.py:816 msgid "Quantity to install must be at least 1" msgstr "" -#: stock/serializers.py:793 +#: stock/serializers.py:824 msgid "Stock item is unavailable" msgstr "" -#: stock/serializers.py:804 +#: stock/serializers.py:835 msgid "Selected part is not in the Bill of Materials" msgstr "" -#: stock/serializers.py:817 +#: stock/serializers.py:848 msgid "Quantity to install must not exceed available quantity" msgstr "" -#: stock/serializers.py:852 +#: stock/serializers.py:883 msgid "Destination location for uninstalled item" msgstr "" -#: stock/serializers.py:903 +#: stock/serializers.py:934 msgid "Unsupported statistic type: " msgstr "" -#: stock/serializers.py:917 +#: stock/serializers.py:948 msgid "Select part to convert stock item into" msgstr "" -#: stock/serializers.py:930 +#: stock/serializers.py:961 msgid "Selected part is not a valid option for conversion" msgstr "" -#: stock/serializers.py:947 +#: stock/serializers.py:978 msgid "Cannot convert stock item with assigned SupplierPart" msgstr "" -#: stock/serializers.py:978 +#: stock/serializers.py:1009 msgid "Destination location for returned item" msgstr "" -#: stock/serializers.py:1015 +#: stock/serializers.py:1046 msgid "Select stock items to change status" msgstr "" -#: stock/serializers.py:1021 +#: stock/serializers.py:1052 msgid "No stock items selected" msgstr "" -#: stock/serializers.py:1117 stock/serializers.py:1194 -#: stock/templates/stock/location.html:162 -#: stock/templates/stock/location.html:219 +#: stock/serializers.py:1148 stock/serializers.py:1225 +#: stock/templates/stock/location.html:163 +#: stock/templates/stock/location.html:220 #: stock/templates/stock/location_sidebar.html:5 msgid "Sublocations" msgstr "Sub-ubicación" -#: stock/serializers.py:1187 templates/js/translated/stock.js:160 +#: stock/serializers.py:1218 templates/js/translated/stock.js:160 msgid "Parent stock location" msgstr "" -#: stock/serializers.py:1298 +#: stock/serializers.py:1329 msgid "Part must be salable" msgstr "La parte debe ser vendible" -#: stock/serializers.py:1302 +#: stock/serializers.py:1333 msgid "Item is allocated to a sales order" msgstr "El artículo está asignado a una orden de venta" -#: stock/serializers.py:1306 +#: stock/serializers.py:1337 msgid "Item is allocated to a build order" msgstr "El artículo está asignado a una orden de creación" -#: stock/serializers.py:1330 +#: stock/serializers.py:1361 msgid "Customer to assign stock items" msgstr "Cliente para asignar artículos de stock" -#: stock/serializers.py:1336 +#: stock/serializers.py:1367 msgid "Selected company is not a customer" msgstr "La empresa seleccionada no es un cliente" -#: stock/serializers.py:1344 +#: stock/serializers.py:1375 msgid "Stock assignment notes" msgstr "Notas de asignación de stock" -#: stock/serializers.py:1354 stock/serializers.py:1608 +#: stock/serializers.py:1385 stock/serializers.py:1639 msgid "A list of stock items must be provided" msgstr "Debe proporcionarse una lista de artículos de stock" -#: stock/serializers.py:1433 +#: stock/serializers.py:1464 msgid "Stock merging notes" msgstr "Notas de fusión de stock" -#: stock/serializers.py:1438 +#: stock/serializers.py:1469 msgid "Allow mismatched suppliers" msgstr "Permitir proveedores no coincidentes" -#: stock/serializers.py:1439 +#: stock/serializers.py:1470 msgid "Allow stock items with different supplier parts to be merged" msgstr "Permitir fusionar artículos de stock con diferentes partes de proveedor" -#: stock/serializers.py:1444 +#: stock/serializers.py:1475 msgid "Allow mismatched status" msgstr "Permitir estado no coincidente" -#: stock/serializers.py:1445 +#: stock/serializers.py:1476 msgid "Allow stock items with different status codes to be merged" msgstr "Permitir fusionar artículos de stock con diferentes códigos de estado" -#: stock/serializers.py:1455 +#: stock/serializers.py:1486 msgid "At least two stock items must be provided" msgstr "Debe proporcionar al menos dos artículos de stock" -#: stock/serializers.py:1522 +#: stock/serializers.py:1553 msgid "No Change" -msgstr "" +msgstr "Sin cambios" -#: stock/serializers.py:1551 +#: stock/serializers.py:1582 msgid "StockItem primary key value" msgstr "Valor de clave primaria de Stock" -#: stock/serializers.py:1570 +#: stock/serializers.py:1601 msgid "Stock item status code" msgstr "" -#: stock/serializers.py:1598 +#: stock/serializers.py:1629 msgid "Stock transaction notes" msgstr "Notas de transacción de stock" #: stock/status_codes.py:11 msgid "OK" -msgstr "" +msgstr "OK" #: stock/status_codes.py:12 msgid "Attention needed" @@ -10175,107 +10539,107 @@ msgstr "Rechazado" msgid "Quarantined" msgstr "En cuarentena" -#: stock/status_codes.py:40 +#: stock/status_codes.py:44 msgid "Legacy stock tracking entry" msgstr "Entrada antigua de rastreo de stock" -#: stock/status_codes.py:42 templates/js/translated/stock.js:550 +#: stock/status_codes.py:46 templates/js/translated/stock.js:550 msgid "Stock item created" msgstr "Artículo de stock creado" -#: stock/status_codes.py:45 +#: stock/status_codes.py:49 msgid "Edited stock item" msgstr "Artículo de almacén editado" -#: stock/status_codes.py:46 +#: stock/status_codes.py:50 msgid "Assigned serial number" msgstr "Número de serie asignado" -#: stock/status_codes.py:49 +#: stock/status_codes.py:53 msgid "Stock counted" msgstr "Stock contado" -#: stock/status_codes.py:50 +#: stock/status_codes.py:54 msgid "Stock manually added" msgstr "Stock añadido manualmente" -#: stock/status_codes.py:51 +#: stock/status_codes.py:55 msgid "Stock manually removed" msgstr "Stock eliminado manualmente" -#: stock/status_codes.py:54 +#: stock/status_codes.py:58 msgid "Location changed" msgstr "Ubicación cambiada" -#: stock/status_codes.py:55 +#: stock/status_codes.py:59 msgid "Stock updated" msgstr "Existencia actualizada" -#: stock/status_codes.py:58 +#: stock/status_codes.py:62 msgid "Installed into assembly" msgstr "Instalado en el ensamblaje" -#: stock/status_codes.py:59 +#: stock/status_codes.py:63 msgid "Removed from assembly" msgstr "Retirado del ensamblaje" -#: stock/status_codes.py:61 +#: stock/status_codes.py:65 msgid "Installed component item" msgstr "Artículo del componente instalado" -#: stock/status_codes.py:62 +#: stock/status_codes.py:66 msgid "Removed component item" msgstr "Elemento de componente eliminado" -#: stock/status_codes.py:65 +#: stock/status_codes.py:69 msgid "Split from parent item" msgstr "Separar del artículo principal" -#: stock/status_codes.py:66 +#: stock/status_codes.py:70 msgid "Split child item" msgstr "Dividir artículo secundario" -#: stock/status_codes.py:69 templates/js/translated/stock.js:1943 +#: stock/status_codes.py:73 templates/js/translated/stock.js:1944 msgid "Merged stock items" msgstr "Artículos de stock combinados" -#: stock/status_codes.py:72 +#: stock/status_codes.py:76 msgid "Converted to variant" msgstr "Convertir a variante" -#: stock/status_codes.py:75 +#: stock/status_codes.py:79 msgid "Build order output created" msgstr "Trabajo de ensamblaje creado" -#: stock/status_codes.py:76 +#: stock/status_codes.py:80 msgid "Build order output completed" msgstr "Construir orden de salida completado" -#: stock/status_codes.py:77 +#: stock/status_codes.py:81 msgid "Build order output rejected" msgstr "Orden de ensamble rechazada" -#: stock/status_codes.py:78 templates/js/translated/stock.js:1849 +#: stock/status_codes.py:82 templates/js/translated/stock.js:1849 msgid "Consumed by build order" msgstr "Consumido por orden de construcción" -#: stock/status_codes.py:81 +#: stock/status_codes.py:85 msgid "Shipped against Sales Order" msgstr "Enviado contra orden de venta" -#: stock/status_codes.py:84 +#: stock/status_codes.py:88 msgid "Received against Purchase Order" msgstr "Recibido contra la orden de compra" -#: stock/status_codes.py:87 +#: stock/status_codes.py:91 msgid "Returned against Return Order" msgstr "Devuelto contra orden de devolución" -#: stock/status_codes.py:90 templates/js/translated/table_filters.js:382 +#: stock/status_codes.py:94 templates/js/translated/table_filters.js:382 msgid "Sent to customer" msgstr "Enviar al cliente" -#: stock/status_codes.py:91 +#: stock/status_codes.py:95 msgid "Returned from customer" msgstr "Devolución del cliente" @@ -10296,7 +10660,7 @@ msgstr "Este artículo de stock no tiene ningún artículo secundario" msgid "Test Data" msgstr "Datos de Prueba" -#: stock/templates/stock/item.html:85 stock/templates/stock/item_base.html:65 +#: stock/templates/stock/item.html:85 msgid "Test Report" msgstr "Informe de Prueba" @@ -10316,7 +10680,7 @@ msgstr "Notas del artículo de stock" msgid "Installed Stock Items" msgstr "Elementos de Stock instalados" -#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3354 +#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3355 msgid "Install Stock Item" msgstr "Instalar artículo de stock" @@ -10328,208 +10692,212 @@ msgstr "" msgid "Add Test Result" msgstr "" -#: stock/templates/stock/item_base.html:33 +#: stock/templates/stock/item_base.html:34 msgid "Locate stock item" msgstr "" -#: stock/templates/stock/item_base.html:51 +#: stock/templates/stock/item_base.html:52 msgid "Scan to Location" msgstr "Escanear a la ubicación" #: stock/templates/stock/item_base.html:59 -#: stock/templates/stock/location.html:67 +#: stock/templates/stock/location.html:68 #: templates/js/translated/filters.js:434 msgid "Printing actions" msgstr "Acciones de impresión" -#: stock/templates/stock/item_base.html:75 +#: stock/templates/stock/item_base.html:64 templates/js/translated/report.js:49 +msgid "Print Report" +msgstr "" + +#: stock/templates/stock/item_base.html:72 msgid "Stock adjustment actions" msgstr "Acciones de ajuste de stock" -#: stock/templates/stock/item_base.html:79 -#: stock/templates/stock/location.html:87 templates/js/translated/stock.js:1909 +#: stock/templates/stock/item_base.html:76 +#: stock/templates/stock/location.html:88 templates/js/translated/stock.js:1909 msgid "Count stock" msgstr "Contar stock" -#: stock/templates/stock/item_base.html:81 +#: stock/templates/stock/item_base.html:78 #: templates/js/translated/stock.js:1891 msgid "Add stock" msgstr "Añadir stock" -#: stock/templates/stock/item_base.html:82 +#: stock/templates/stock/item_base.html:79 #: templates/js/translated/stock.js:1900 msgid "Remove stock" msgstr "Eliminar stock" -#: stock/templates/stock/item_base.html:85 +#: stock/templates/stock/item_base.html:82 msgid "Serialize stock" msgstr "Serializar stock" -#: stock/templates/stock/item_base.html:88 -#: stock/templates/stock/location.html:93 templates/js/translated/stock.js:1918 +#: stock/templates/stock/item_base.html:85 +#: stock/templates/stock/location.html:94 templates/js/translated/stock.js:1918 msgid "Transfer stock" msgstr "Transferir stock" -#: stock/templates/stock/item_base.html:91 -#: templates/js/translated/stock.js:1972 +#: stock/templates/stock/item_base.html:88 +#: templates/js/translated/stock.js:1973 msgid "Assign to customer" msgstr "Asignar a cliente" -#: stock/templates/stock/item_base.html:94 +#: stock/templates/stock/item_base.html:91 msgid "Return to stock" msgstr "Regresar al stock" -#: stock/templates/stock/item_base.html:97 +#: stock/templates/stock/item_base.html:94 msgid "Uninstall stock item" msgstr "Desinstalar artículo de stock" -#: stock/templates/stock/item_base.html:97 +#: stock/templates/stock/item_base.html:94 msgid "Uninstall" msgstr "Desinstalar" -#: stock/templates/stock/item_base.html:101 +#: stock/templates/stock/item_base.html:98 msgid "Install stock item" msgstr "Instalar artículo de stock" -#: stock/templates/stock/item_base.html:101 +#: stock/templates/stock/item_base.html:98 msgid "Install" msgstr "Instalar" -#: stock/templates/stock/item_base.html:115 +#: stock/templates/stock/item_base.html:112 msgid "Convert to variant" msgstr "Convertir a variante" -#: stock/templates/stock/item_base.html:118 +#: stock/templates/stock/item_base.html:115 msgid "Duplicate stock item" msgstr "Duplicar artículo" -#: stock/templates/stock/item_base.html:120 +#: stock/templates/stock/item_base.html:117 msgid "Edit stock item" msgstr "Editar artículo de almacén" -#: stock/templates/stock/item_base.html:123 +#: stock/templates/stock/item_base.html:120 msgid "Delete stock item" msgstr "Eliminar artículo de stock" -#: stock/templates/stock/item_base.html:169 templates/InvenTree/search.html:139 -#: templates/js/translated/build.js:2295 templates/navbar.html:38 +#: stock/templates/stock/item_base.html:166 templates/InvenTree/search.html:139 +#: templates/js/translated/build.js:2298 templates/navbar.html:38 msgid "Build" msgstr "Construcción o Armado" -#: stock/templates/stock/item_base.html:211 +#: stock/templates/stock/item_base.html:208 msgid "No manufacturer set" msgstr "Ningún fabricante establecido" -#: stock/templates/stock/item_base.html:251 +#: stock/templates/stock/item_base.html:248 msgid "You are not in the list of owners of this item. This stock item cannot be edited." msgstr "No estás en la lista de propietarios de este artículo. Este artículo de stock no puede ser editado." -#: stock/templates/stock/item_base.html:252 -#: stock/templates/stock/location.html:146 +#: stock/templates/stock/item_base.html:249 +#: stock/templates/stock/location.html:147 msgid "Read only" msgstr "Solo lectura" -#: stock/templates/stock/item_base.html:265 +#: stock/templates/stock/item_base.html:262 msgid "This stock item is unavailable" msgstr "" -#: stock/templates/stock/item_base.html:271 +#: stock/templates/stock/item_base.html:268 msgid "This stock item is in production and cannot be edited." msgstr "Este artículo de stock está en producción y no puede ser editado." -#: stock/templates/stock/item_base.html:272 +#: stock/templates/stock/item_base.html:269 msgid "Edit the stock item from the build view." msgstr "Editar el artículo de stock desde la vista de construcción." -#: stock/templates/stock/item_base.html:287 +#: stock/templates/stock/item_base.html:284 msgid "This stock item is allocated to Sales Order" msgstr "Este artículo de stock está asignado a la orden de venta" -#: stock/templates/stock/item_base.html:295 +#: stock/templates/stock/item_base.html:292 msgid "This stock item is allocated to Build Order" msgstr "Este artículo de stock está asignado al orden de construcción" -#: stock/templates/stock/item_base.html:311 +#: stock/templates/stock/item_base.html:308 msgid "This stock item is serialized. It has a unique serial number and the quantity cannot be adjusted" msgstr "" -#: stock/templates/stock/item_base.html:317 +#: stock/templates/stock/item_base.html:314 msgid "previous page" msgstr "página anterior" -#: stock/templates/stock/item_base.html:317 +#: stock/templates/stock/item_base.html:314 msgid "Navigate to previous serial number" msgstr "Navegar al número de serie anterior" -#: stock/templates/stock/item_base.html:326 +#: stock/templates/stock/item_base.html:323 msgid "next page" msgstr "página siguiente" -#: stock/templates/stock/item_base.html:326 +#: stock/templates/stock/item_base.html:323 msgid "Navigate to next serial number" msgstr "Navegar al siguiente número de serie" -#: stock/templates/stock/item_base.html:398 -#: templates/js/translated/build.js:2552 +#: stock/templates/stock/item_base.html:395 +#: templates/js/translated/build.js:2559 msgid "No location set" msgstr "Ubicación no establecida" -#: stock/templates/stock/item_base.html:413 +#: stock/templates/stock/item_base.html:410 msgid "Tests" msgstr "Pruebas" -#: stock/templates/stock/item_base.html:419 +#: stock/templates/stock/item_base.html:416 msgid "This stock item has not passed all required tests" msgstr "Este artículo de stock no ha pasado todas las pruebas requeridas" -#: stock/templates/stock/item_base.html:437 +#: stock/templates/stock/item_base.html:434 #, python-format msgid "This StockItem expired on %(item.expiry_date)s" msgstr "Este ítem expiró el %(item.expiry_date)s" -#: stock/templates/stock/item_base.html:439 +#: stock/templates/stock/item_base.html:436 #, python-format msgid "This StockItem expires on %(item.expiry_date)s" msgstr "Este ítem expira el %(item.expiry_date)s" -#: stock/templates/stock/item_base.html:455 +#: stock/templates/stock/item_base.html:452 msgid "No stocktake performed" msgstr "Ningún inventario realizado" -#: stock/templates/stock/item_base.html:504 -#: templates/js/translated/stock.js:2037 +#: stock/templates/stock/item_base.html:501 +#: templates/js/translated/stock.js:2038 msgid "stock item" msgstr "" -#: stock/templates/stock/item_base.html:527 +#: stock/templates/stock/item_base.html:524 msgid "Edit Stock Status" msgstr "" -#: stock/templates/stock/item_base.html:536 +#: stock/templates/stock/item_base.html:533 msgid "Stock Item QR Code" msgstr "" -#: stock/templates/stock/item_base.html:547 +#: stock/templates/stock/item_base.html:544 msgid "Link Barcode to Stock Item" msgstr "" -#: stock/templates/stock/item_base.html:611 +#: stock/templates/stock/item_base.html:608 msgid "Select one of the part variants listed below." msgstr "Seleccione una de las variantes de parte listadas a continuación." -#: stock/templates/stock/item_base.html:614 +#: stock/templates/stock/item_base.html:611 msgid "Warning" msgstr "Advertencia" -#: stock/templates/stock/item_base.html:615 +#: stock/templates/stock/item_base.html:612 msgid "This action cannot be easily undone" msgstr "Esta acción no se puede deshacer fácilmente" -#: stock/templates/stock/item_base.html:623 +#: stock/templates/stock/item_base.html:620 msgid "Convert Stock Item" msgstr "" -#: stock/templates/stock/item_base.html:656 +#: stock/templates/stock/item_base.html:653 msgid "Return to Stock" msgstr "" @@ -10541,84 +10909,84 @@ msgstr "Crear artículos serializados a partir de este artículo de stock." msgid "Select quantity to serialize, and unique serial numbers." msgstr "Seleccione la cantidad para serializar y números de serie únicos." -#: stock/templates/stock/location.html:35 +#: stock/templates/stock/location.html:36 msgid "Perform stocktake for this stock location" msgstr "" -#: stock/templates/stock/location.html:42 +#: stock/templates/stock/location.html:43 msgid "Locate stock location" msgstr "" -#: stock/templates/stock/location.html:60 +#: stock/templates/stock/location.html:61 msgid "Scan stock items into this location" msgstr "" -#: stock/templates/stock/location.html:60 +#: stock/templates/stock/location.html:61 msgid "Scan In Stock Items" msgstr "" -#: stock/templates/stock/location.html:61 +#: stock/templates/stock/location.html:62 msgid "Scan stock container into this location" msgstr "" -#: stock/templates/stock/location.html:61 +#: stock/templates/stock/location.html:62 msgid "Scan In Container" msgstr "Escanear en contenedor" -#: stock/templates/stock/location.html:72 +#: stock/templates/stock/location.html:73 msgid "Print Location Report" msgstr "" -#: stock/templates/stock/location.html:101 +#: stock/templates/stock/location.html:102 msgid "Location actions" msgstr "Acciones de ubicación" -#: stock/templates/stock/location.html:103 +#: stock/templates/stock/location.html:104 msgid "Edit location" msgstr "Editar ubicación" -#: stock/templates/stock/location.html:105 +#: stock/templates/stock/location.html:106 msgid "Delete location" msgstr "Eliminar ubicación" -#: stock/templates/stock/location.html:135 +#: stock/templates/stock/location.html:136 msgid "Top level stock location" msgstr "Ubicación de stock superior" -#: stock/templates/stock/location.html:141 +#: stock/templates/stock/location.html:142 msgid "Location Owner" msgstr "Propietario de la ubicación" -#: stock/templates/stock/location.html:145 +#: stock/templates/stock/location.html:146 msgid "You are not in the list of owners of this location. This stock location cannot be edited." msgstr "No estás en la lista de propietarios de esta ubicación. Esta ubicación de stock no puede ser editada." -#: stock/templates/stock/location.html:173 +#: stock/templates/stock/location.html:174 msgid "Location Type" msgstr "" -#: stock/templates/stock/location.html:223 +#: stock/templates/stock/location.html:224 msgid "Create new stock location" msgstr "Crear nueva ubicación de stock" -#: stock/templates/stock/location.html:224 +#: stock/templates/stock/location.html:225 msgid "New Location" msgstr "Nueva Ubicación" -#: stock/templates/stock/location.html:298 -#: templates/js/translated/stock.js:2657 +#: stock/templates/stock/location.html:299 +#: templates/js/translated/stock.js:2658 msgid "stock location" msgstr "" -#: stock/templates/stock/location.html:320 +#: stock/templates/stock/location.html:321 msgid "Scanned stock container into this location" msgstr "" -#: stock/templates/stock/location.html:393 +#: stock/templates/stock/location.html:394 msgid "Stock Location QR Code" msgstr "" -#: stock/templates/stock/location.html:404 +#: stock/templates/stock/location.html:405 msgid "Link Barcode to Stock Location" msgstr "" @@ -10630,10 +10998,6 @@ msgstr "Cargando..." msgid "Stock Tracking" msgstr "Seguimiento de Stock" -#: stock/templates/stock/stock_sidebar.html:8 -msgid "Allocations" -msgstr "Asignaciones" - #: templates/403.html:6 templates/403.html:12 templates/403_csrf.html:7 msgid "Permission Denied" msgstr "Permiso Denegado" @@ -10742,11 +11106,11 @@ msgstr "" #: templates/InvenTree/index.html:262 msgid "Outstanding Sales Orders" -msgstr "" +msgstr "Órdenes de venta destacadas" #: templates/InvenTree/index.html:273 msgid "Overdue Sales Orders" -msgstr "" +msgstr "Órdenes de venta vencidas" #: templates/InvenTree/index.html:299 msgid "InvenTree News" @@ -10874,7 +11238,7 @@ msgstr "Abrir en una pestaña nueva" #: templates/InvenTree/settings/notifications.html:9 #: templates/InvenTree/settings/user_notifications.html:9 msgid "Notification Settings" -msgstr "" +msgstr "Ajustes de notificaciones" #: templates/InvenTree/settings/notifications.html:18 msgid "Slug" @@ -10907,7 +11271,7 @@ msgstr "" #: templates/InvenTree/settings/physical_units.html:8 #: templates/InvenTree/settings/sidebar.html:35 msgid "Physical Units" -msgstr "" +msgstr "Unidades físicas" #: templates/InvenTree/settings/physical_units.html:12 msgid "Add Unit" @@ -11104,35 +11468,35 @@ msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:49 msgid "Rate" -msgstr "" +msgstr "Tarifa" #: templates/InvenTree/settings/settings_staff_js.html:81 -#: templates/js/translated/forms.js:548 templates/js/translated/helpers.js:108 +#: templates/js/translated/forms.js:548 templates/js/translated/helpers.js:109 #: templates/js/translated/part.js:395 templates/js/translated/pricing.js:629 -#: templates/js/translated/stock.js:252 users/models.py:406 +#: templates/js/translated/stock.js:252 users/models.py:408 msgid "Delete" msgstr "Eliminar" #: templates/InvenTree/settings/settings_staff_js.html:95 msgid "Edit Custom Unit" -msgstr "" +msgstr "Editar unidad personalizada" #: templates/InvenTree/settings/settings_staff_js.html:110 msgid "Delete Custom Unit" -msgstr "" +msgstr "Eliminar unidad personalizada" #: templates/InvenTree/settings/settings_staff_js.html:124 msgid "New Custom Unit" -msgstr "" +msgstr "Nueva unidad personalizada" #: templates/InvenTree/settings/settings_staff_js.html:140 msgid "No project codes found" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:158 -#: templates/js/translated/build.js:2400 +#: templates/js/translated/build.js:2403 msgid "group" -msgstr "" +msgstr "grupo" #: templates/InvenTree/settings/settings_staff_js.html:175 #: templates/InvenTree/settings/settings_staff_js.html:189 @@ -11151,12 +11515,12 @@ msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:308 #: templates/js/translated/part.js:1652 msgid "Edit Template" -msgstr "" +msgstr "Editar plantilla" #: templates/InvenTree/settings/settings_staff_js.html:309 #: templates/js/translated/part.js:1653 msgid "Delete Template" -msgstr "" +msgstr "Eliminar plantilla" #: templates/InvenTree/settings/settings_staff_js.html:326 msgid "Edit Category Parameter Template" @@ -11196,7 +11560,7 @@ msgid "Delete Location Type" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:503 -#: templates/InvenTree/settings/stock.html:38 +#: templates/InvenTree/settings/stock.html:39 msgid "New Location Type" msgstr "" @@ -11253,7 +11617,7 @@ msgstr "Configuración de orden de venta" msgid "Stock Settings" msgstr "Configuración de Stock" -#: templates/InvenTree/settings/stock.html:34 +#: templates/InvenTree/settings/stock.html:35 msgid "Stock Location Types" msgstr "" @@ -11280,7 +11644,7 @@ msgid "Unverified" msgstr "Sin verificar" #: templates/InvenTree/settings/user.html:80 -#: templates/js/translated/company.js:957 +#: templates/js/translated/company.js:958 msgid "Primary" msgstr "Principal" @@ -11532,7 +11896,7 @@ msgid "Submit Bug Report" msgstr "Enviar Informe de Error" #: templates/about.html:91 templates/clip.html:4 -#: templates/js/translated/helpers.js:592 +#: templates/js/translated/helpers.js:598 msgid "copy to clipboard" msgstr "copiar al portapapeles" @@ -11712,7 +12076,7 @@ msgstr "Escanea el código QR de abajo con un generador de tokens de tu elecció #: templates/allauth_2fa/setup.html:20 msgid "Secret: " -msgstr "" +msgstr "Secreto:" #: templates/allauth_2fa/setup.html:24 msgid "Step 2" @@ -11738,23 +12102,24 @@ msgstr "Añadir archivo adjunto" msgid "Barcode Identifier" msgstr "Identificador de Código de Barras" -#: templates/base.html:103 +#: templates/base.html:102 msgid "Server Restart Required" msgstr "Reinicio del Servidor Requerido" -#: templates/base.html:106 +#: templates/base.html:105 msgid "A configuration option has been changed which requires a server restart" msgstr "Se ha cambiado una opción de configuración que requiere reiniciar el servidor" -#: templates/base.html:106 templates/base.html:116 +#: templates/base.html:105 templates/base.html:115 +#: templates/socialaccount/authentication_error.html:13 msgid "Contact your system administrator for further information" msgstr "Póngase en contacto con su administrador para más información" -#: templates/base.html:113 +#: templates/base.html:112 msgid "Pending Database Migrations" msgstr "" -#: templates/base.html:116 +#: templates/base.html:115 msgid "There are pending database migrations which require attention" msgstr "" @@ -11787,7 +12152,7 @@ msgid "The following parts are low on required stock" msgstr "Las siguientes partes están bajas en stock requerido" #: templates/email/build_order_required_stock.html:18 -#: templates/js/translated/bom.js:1674 templates/js/translated/build.js:2747 +#: templates/js/translated/bom.js:1674 templates/js/translated/build.js:2765 msgid "Required Quantity" msgstr "Cantidad requerida" @@ -11801,17 +12166,17 @@ msgid "Click on the following link to view this part" msgstr "Haga clic en el siguiente enlace para ver esta parte" #: templates/email/low_stock_notification.html:18 -#: templates/js/translated/part.js:3237 +#: templates/js/translated/part.js:3253 msgid "Minimum Quantity" msgstr "Cantidad Mínima" #: templates/js/translated/api.js:225 templates/js/translated/modals.js:1135 msgid "No Response" -msgstr "" +msgstr "Sin respuesta" #: templates/js/translated/api.js:226 templates/js/translated/modals.js:1136 msgid "No response from the InvenTree server" -msgstr "" +msgstr "Sin respuesta del servidor de InvenTree" #: templates/js/translated/api.js:232 msgid "Error 400: Bad request" @@ -11867,7 +12232,7 @@ msgstr "" #: templates/js/translated/api.js:262 msgid "The server is currently unavailable" -msgstr "" +msgstr "El servidor no está disponible en estos momentos" #: templates/js/translated/api.js:265 msgid "Unhandled Error Code" @@ -11875,7 +12240,7 @@ msgstr "" #: templates/js/translated/api.js:266 msgid "Error code" -msgstr "" +msgstr "Código de error" #: templates/js/translated/attachment.js:114 msgid "All selected attachments will be deleted" @@ -12039,7 +12404,7 @@ msgstr "" #: templates/js/translated/bom.js:189 templates/js/translated/bom.js:700 #: templates/js/translated/modals.js:75 templates/js/translated/modals.js:629 #: templates/js/translated/modals.js:757 templates/js/translated/modals.js:1065 -#: templates/js/translated/purchase_order.js:797 templates/modals.html:15 +#: templates/js/translated/purchase_order.js:780 templates/modals.html:15 #: templates/modals.html:27 templates/modals.html:39 templates/modals.html:50 msgid "Close" msgstr "Cerrar" @@ -12156,7 +12521,7 @@ msgstr "" msgid "Substitutes Available" msgstr "" -#: templates/js/translated/bom.js:950 templates/js/translated/build.js:2673 +#: templates/js/translated/bom.js:950 templates/js/translated/build.js:2682 msgid "Variant stock allowed" msgstr "" @@ -12176,30 +12541,30 @@ msgstr "" msgid "No pricing available" msgstr "" -#: templates/js/translated/bom.js:1184 templates/js/translated/build.js:2812 +#: templates/js/translated/bom.js:1184 templates/js/translated/build.js:2830 msgid "External stock" msgstr "" -#: templates/js/translated/bom.js:1188 templates/js/translated/build.js:2786 -#: templates/js/translated/sales_order.js:1946 +#: templates/js/translated/bom.js:1188 templates/js/translated/build.js:2804 +#: templates/js/translated/sales_order.js:1927 msgid "No Stock Available" msgstr "" -#: templates/js/translated/bom.js:1193 templates/js/translated/build.js:2790 +#: templates/js/translated/bom.js:1193 templates/js/translated/build.js:2808 msgid "Includes variant and substitute stock" msgstr "" -#: templates/js/translated/bom.js:1195 templates/js/translated/build.js:2792 +#: templates/js/translated/bom.js:1195 templates/js/translated/build.js:2810 #: templates/js/translated/part.js:1263 -#: templates/js/translated/sales_order.js:1943 +#: templates/js/translated/sales_order.js:1924 msgid "Includes variant stock" msgstr "" -#: templates/js/translated/bom.js:1197 templates/js/translated/build.js:2794 +#: templates/js/translated/bom.js:1197 templates/js/translated/build.js:2812 msgid "Includes substitute stock" msgstr "" -#: templates/js/translated/bom.js:1225 templates/js/translated/build.js:2777 +#: templates/js/translated/bom.js:1225 templates/js/translated/build.js:2795 msgid "Consumable item" msgstr "" @@ -12231,7 +12596,7 @@ msgstr "" msgid "No BOM items found" msgstr "" -#: templates/js/translated/bom.js:1657 templates/js/translated/build.js:2658 +#: templates/js/translated/bom.js:1657 templates/js/translated/build.js:2667 msgid "Required Part" msgstr "" @@ -12243,396 +12608,396 @@ msgstr "" msgid "Edit Build Order" msgstr "" -#: templates/js/translated/build.js:191 +#: templates/js/translated/build.js:194 msgid "Create Build Order" msgstr "" -#: templates/js/translated/build.js:223 +#: templates/js/translated/build.js:226 msgid "Cancel Build Order" msgstr "" -#: templates/js/translated/build.js:232 +#: templates/js/translated/build.js:235 msgid "Are you sure you wish to cancel this build?" msgstr "" -#: templates/js/translated/build.js:238 +#: templates/js/translated/build.js:241 msgid "Stock items have been allocated to this build order" msgstr "" -#: templates/js/translated/build.js:245 +#: templates/js/translated/build.js:248 msgid "There are incomplete outputs remaining for this build order" msgstr "" -#: templates/js/translated/build.js:297 +#: templates/js/translated/build.js:300 msgid "Build order is ready to be completed" msgstr "" -#: templates/js/translated/build.js:305 +#: templates/js/translated/build.js:308 msgid "This build order cannot be completed as there are incomplete outputs" msgstr "" -#: templates/js/translated/build.js:310 +#: templates/js/translated/build.js:313 msgid "Build Order is incomplete" msgstr "" -#: templates/js/translated/build.js:328 +#: templates/js/translated/build.js:331 msgid "Complete Build Order" msgstr "" -#: templates/js/translated/build.js:369 templates/js/translated/stock.js:127 +#: templates/js/translated/build.js:372 templates/js/translated/stock.js:127 #: templates/js/translated/stock.js:301 msgid "Next available serial number" msgstr "" -#: templates/js/translated/build.js:371 templates/js/translated/stock.js:129 +#: templates/js/translated/build.js:374 templates/js/translated/stock.js:129 #: templates/js/translated/stock.js:303 msgid "Latest serial number" msgstr "" -#: templates/js/translated/build.js:380 +#: templates/js/translated/build.js:383 msgid "The Bill of Materials contains trackable parts" msgstr "" -#: templates/js/translated/build.js:381 +#: templates/js/translated/build.js:384 msgid "Build outputs must be generated individually" msgstr "" -#: templates/js/translated/build.js:389 +#: templates/js/translated/build.js:392 msgid "Trackable parts can have serial numbers specified" msgstr "" -#: templates/js/translated/build.js:390 +#: templates/js/translated/build.js:393 msgid "Enter serial numbers to generate multiple single build outputs" msgstr "" -#: templates/js/translated/build.js:397 +#: templates/js/translated/build.js:400 msgid "Create Build Output" msgstr "" -#: templates/js/translated/build.js:428 +#: templates/js/translated/build.js:431 msgid "Allocate stock items to this build output" msgstr "" -#: templates/js/translated/build.js:436 +#: templates/js/translated/build.js:439 msgid "Deallocate stock from build output" msgstr "" -#: templates/js/translated/build.js:445 +#: templates/js/translated/build.js:448 msgid "Complete build output" msgstr "" -#: templates/js/translated/build.js:453 +#: templates/js/translated/build.js:456 msgid "Scrap build output" msgstr "" -#: templates/js/translated/build.js:460 +#: templates/js/translated/build.js:463 msgid "Delete build output" msgstr "" -#: templates/js/translated/build.js:480 +#: templates/js/translated/build.js:483 msgid "Are you sure you wish to deallocate the selected stock items from this build?" msgstr "" -#: templates/js/translated/build.js:498 +#: templates/js/translated/build.js:501 msgid "Deallocate Stock Items" msgstr "" -#: templates/js/translated/build.js:584 templates/js/translated/build.js:711 -#: templates/js/translated/build.js:836 +#: templates/js/translated/build.js:587 templates/js/translated/build.js:714 +#: templates/js/translated/build.js:839 msgid "Select Build Outputs" msgstr "" -#: templates/js/translated/build.js:585 templates/js/translated/build.js:712 -#: templates/js/translated/build.js:837 +#: templates/js/translated/build.js:588 templates/js/translated/build.js:715 +#: templates/js/translated/build.js:840 msgid "At least one build output must be selected" msgstr "" -#: templates/js/translated/build.js:599 +#: templates/js/translated/build.js:602 msgid "Selected build outputs will be marked as complete" msgstr "" -#: templates/js/translated/build.js:603 templates/js/translated/build.js:736 -#: templates/js/translated/build.js:859 +#: templates/js/translated/build.js:606 templates/js/translated/build.js:739 +#: templates/js/translated/build.js:862 msgid "Output" msgstr "" -#: templates/js/translated/build.js:630 +#: templates/js/translated/build.js:633 msgid "Complete Build Outputs" msgstr "" -#: templates/js/translated/build.js:727 +#: templates/js/translated/build.js:730 msgid "Selected build outputs will be marked as scrapped" msgstr "" -#: templates/js/translated/build.js:729 +#: templates/js/translated/build.js:732 msgid "Scrapped output are marked as rejected" msgstr "" -#: templates/js/translated/build.js:730 +#: templates/js/translated/build.js:733 msgid "Allocated stock items will no longer be available" msgstr "" -#: templates/js/translated/build.js:731 +#: templates/js/translated/build.js:734 msgid "The completion status of the build order will not be adjusted" msgstr "" -#: templates/js/translated/build.js:761 +#: templates/js/translated/build.js:764 msgid "Scrap Build Outputs" msgstr "" -#: templates/js/translated/build.js:851 +#: templates/js/translated/build.js:854 msgid "Selected build outputs will be deleted" msgstr "" -#: templates/js/translated/build.js:853 +#: templates/js/translated/build.js:856 msgid "Build output data will be permanently deleted" msgstr "" -#: templates/js/translated/build.js:854 +#: templates/js/translated/build.js:857 msgid "Allocated stock items will be returned to stock" msgstr "" -#: templates/js/translated/build.js:872 +#: templates/js/translated/build.js:875 msgid "Delete Build Outputs" msgstr "" -#: templates/js/translated/build.js:959 +#: templates/js/translated/build.js:962 msgid "Delete allocations" msgstr "" -#: templates/js/translated/build.js:966 +#: templates/js/translated/build.js:969 msgid "Delete Stock Allocations" msgstr "" -#: templates/js/translated/build.js:989 +#: templates/js/translated/build.js:992 msgid "No allocated stock" msgstr "" -#: templates/js/translated/build.js:1045 +#: templates/js/translated/build.js:1048 msgid "Stock item" -msgstr "" +msgstr "Artículo de inventario" -#: templates/js/translated/build.js:1070 +#: templates/js/translated/build.js:1073 msgid "Edit build allocation" msgstr "" -#: templates/js/translated/build.js:1071 +#: templates/js/translated/build.js:1074 msgid "Delete build allocation" msgstr "" -#: templates/js/translated/build.js:1089 +#: templates/js/translated/build.js:1092 msgid "Edit Build Allocation" msgstr "" -#: templates/js/translated/build.js:1102 +#: templates/js/translated/build.js:1105 msgid "Delete Build Allocation" msgstr "" -#: templates/js/translated/build.js:1133 +#: templates/js/translated/build.js:1136 msgid "No build order allocations found" msgstr "" -#: templates/js/translated/build.js:1178 +#: templates/js/translated/build.js:1181 msgid "Location not specified" msgstr "" -#: templates/js/translated/build.js:1200 +#: templates/js/translated/build.js:1203 msgid "Complete outputs" msgstr "" -#: templates/js/translated/build.js:1218 +#: templates/js/translated/build.js:1221 msgid "Scrap outputs" msgstr "" -#: templates/js/translated/build.js:1236 +#: templates/js/translated/build.js:1239 msgid "Delete outputs" msgstr "" -#: templates/js/translated/build.js:1289 +#: templates/js/translated/build.js:1292 msgid "build output" msgstr "" -#: templates/js/translated/build.js:1290 +#: templates/js/translated/build.js:1293 msgid "build outputs" msgstr "" -#: templates/js/translated/build.js:1294 +#: templates/js/translated/build.js:1297 msgid "Build output actions" msgstr "" -#: templates/js/translated/build.js:1470 +#: templates/js/translated/build.js:1473 msgid "No active build outputs found" msgstr "" -#: templates/js/translated/build.js:1563 +#: templates/js/translated/build.js:1566 msgid "Allocated Lines" msgstr "" -#: templates/js/translated/build.js:1577 +#: templates/js/translated/build.js:1580 msgid "Required Tests" msgstr "" -#: templates/js/translated/build.js:1749 -#: templates/js/translated/purchase_order.js:611 -#: templates/js/translated/sales_order.js:1207 +#: templates/js/translated/build.js:1752 +#: templates/js/translated/purchase_order.js:594 +#: templates/js/translated/sales_order.js:1173 msgid "Select Parts" msgstr "" -#: templates/js/translated/build.js:1750 -#: templates/js/translated/sales_order.js:1208 +#: templates/js/translated/build.js:1753 +#: templates/js/translated/sales_order.js:1174 msgid "You must select at least one part to allocate" msgstr "" -#: templates/js/translated/build.js:1813 -#: templates/js/translated/sales_order.js:1157 +#: templates/js/translated/build.js:1816 +#: templates/js/translated/sales_order.js:1123 msgid "Specify stock allocation quantity" msgstr "" -#: templates/js/translated/build.js:1890 +#: templates/js/translated/build.js:1893 msgid "All Parts Allocated" msgstr "" -#: templates/js/translated/build.js:1891 +#: templates/js/translated/build.js:1894 msgid "All selected parts have been fully allocated" msgstr "" -#: templates/js/translated/build.js:1905 -#: templates/js/translated/sales_order.js:1222 +#: templates/js/translated/build.js:1908 +#: templates/js/translated/sales_order.js:1188 msgid "Select source location (leave blank to take from all locations)" msgstr "" -#: templates/js/translated/build.js:1933 +#: templates/js/translated/build.js:1936 msgid "Allocate Stock Items to Build Order" msgstr "" -#: templates/js/translated/build.js:1944 -#: templates/js/translated/sales_order.js:1319 +#: templates/js/translated/build.js:1947 +#: templates/js/translated/sales_order.js:1285 msgid "No matching stock locations" msgstr "" -#: templates/js/translated/build.js:2017 -#: templates/js/translated/sales_order.js:1398 +#: templates/js/translated/build.js:2020 +#: templates/js/translated/sales_order.js:1364 msgid "No matching stock items" msgstr "" -#: templates/js/translated/build.js:2114 +#: templates/js/translated/build.js:2117 msgid "Automatic Stock Allocation" msgstr "" -#: templates/js/translated/build.js:2115 +#: templates/js/translated/build.js:2118 msgid "Stock items will be automatically allocated to this build order, according to the provided guidelines" msgstr "" -#: templates/js/translated/build.js:2117 +#: templates/js/translated/build.js:2120 msgid "If a location is specified, stock will only be allocated from that location" msgstr "" -#: templates/js/translated/build.js:2118 +#: templates/js/translated/build.js:2121 msgid "If stock is considered interchangeable, it will be allocated from the first location it is found" msgstr "" -#: templates/js/translated/build.js:2119 +#: templates/js/translated/build.js:2122 msgid "If substitute stock is allowed, it will be used where stock of the primary part cannot be found" msgstr "" -#: templates/js/translated/build.js:2149 +#: templates/js/translated/build.js:2152 msgid "Allocate Stock Items" msgstr "" -#: templates/js/translated/build.js:2254 +#: templates/js/translated/build.js:2257 msgid "No builds matching query" msgstr "" -#: templates/js/translated/build.js:2289 templates/js/translated/build.js:2652 +#: templates/js/translated/build.js:2292 templates/js/translated/build.js:2661 #: templates/js/translated/forms.js:2196 templates/js/translated/forms.js:2212 #: templates/js/translated/part.js:2322 templates/js/translated/part.js:2761 -#: templates/js/translated/stock.js:2068 templates/js/translated/stock.js:2795 +#: templates/js/translated/stock.js:2069 templates/js/translated/stock.js:2796 msgid "Select" msgstr "Seleccionar" -#: templates/js/translated/build.js:2303 +#: templates/js/translated/build.js:2306 msgid "Build order is overdue" msgstr "" -#: templates/js/translated/build.js:2385 templates/js/translated/stock.js:3126 +#: templates/js/translated/build.js:2388 templates/js/translated/stock.js:3127 msgid "No user information" msgstr "" -#: templates/js/translated/build.js:2561 -#: templates/js/translated/sales_order.js:1682 +#: templates/js/translated/build.js:2568 +#: templates/js/translated/sales_order.js:1663 msgid "Edit stock allocation" msgstr "" -#: templates/js/translated/build.js:2562 -#: templates/js/translated/sales_order.js:1683 +#: templates/js/translated/build.js:2569 +#: templates/js/translated/sales_order.js:1664 msgid "Delete stock allocation" msgstr "" -#: templates/js/translated/build.js:2577 +#: templates/js/translated/build.js:2584 msgid "Edit Allocation" msgstr "" -#: templates/js/translated/build.js:2589 +#: templates/js/translated/build.js:2596 msgid "Remove Allocation" msgstr "" -#: templates/js/translated/build.js:2628 +#: templates/js/translated/build.js:2636 msgid "build line" msgstr "" -#: templates/js/translated/build.js:2629 +#: templates/js/translated/build.js:2637 msgid "build lines" msgstr "" -#: templates/js/translated/build.js:2647 +#: templates/js/translated/build.js:2656 msgid "No build lines found" msgstr "" -#: templates/js/translated/build.js:2677 templates/js/translated/part.js:793 +#: templates/js/translated/build.js:2686 templates/js/translated/part.js:793 #: templates/js/translated/part.js:1209 msgid "Trackable part" msgstr "" -#: templates/js/translated/build.js:2720 +#: templates/js/translated/build.js:2729 msgid "Gets Inherited" msgstr "" -#: templates/js/translated/build.js:2730 +#: templates/js/translated/build.js:2748 msgid "Unit Quantity" msgstr "" -#: templates/js/translated/build.js:2782 -#: templates/js/translated/sales_order.js:1951 +#: templates/js/translated/build.js:2800 +#: templates/js/translated/sales_order.js:1932 msgid "Sufficient stock available" msgstr "" -#: templates/js/translated/build.js:2837 +#: templates/js/translated/build.js:2855 msgid "Consumable Item" msgstr "" -#: templates/js/translated/build.js:2844 +#: templates/js/translated/build.js:2862 msgid "Tracked item" msgstr "" -#: templates/js/translated/build.js:2845 +#: templates/js/translated/build.js:2863 msgid "Allocate tracked items against individual build outputs" msgstr "" -#: templates/js/translated/build.js:2853 -#: templates/js/translated/sales_order.js:2052 +#: templates/js/translated/build.js:2871 +#: templates/js/translated/sales_order.js:2033 msgid "Build stock" msgstr "" -#: templates/js/translated/build.js:2858 templates/js/translated/stock.js:1953 +#: templates/js/translated/build.js:2876 templates/js/translated/stock.js:1954 msgid "Order stock" msgstr "" -#: templates/js/translated/build.js:2862 -#: templates/js/translated/sales_order.js:2046 +#: templates/js/translated/build.js:2880 +#: templates/js/translated/sales_order.js:2027 msgid "Allocate stock" msgstr "" -#: templates/js/translated/build.js:2866 +#: templates/js/translated/build.js:2884 msgid "Remove stock allocation" msgstr "" @@ -12641,7 +13006,7 @@ msgid "Add Manufacturer" msgstr "" #: templates/js/translated/company.js:111 -#: templates/js/translated/company.js:213 +#: templates/js/translated/company.js:214 msgid "Add Manufacturer Part" msgstr "" @@ -12649,231 +13014,231 @@ msgstr "" msgid "Edit Manufacturer Part" msgstr "" -#: templates/js/translated/company.js:201 +#: templates/js/translated/company.js:202 #: templates/js/translated/purchase_order.js:93 msgid "Add Supplier" -msgstr "" +msgstr "Agregar proveedor" -#: templates/js/translated/company.js:243 -#: templates/js/translated/purchase_order.js:318 +#: templates/js/translated/company.js:244 +#: templates/js/translated/purchase_order.js:301 msgid "Add Supplier Part" msgstr "" -#: templates/js/translated/company.js:344 +#: templates/js/translated/company.js:345 msgid "All selected supplier parts will be deleted" msgstr "" -#: templates/js/translated/company.js:360 +#: templates/js/translated/company.js:361 msgid "Delete Supplier Parts" msgstr "Eliminar Partes de Proveedor" -#: templates/js/translated/company.js:466 +#: templates/js/translated/company.js:467 msgid "Add new Company" msgstr "Añadir nueva Empresa" -#: templates/js/translated/company.js:546 +#: templates/js/translated/company.js:547 msgid "Parts Supplied" msgstr "Partes Suministradas" -#: templates/js/translated/company.js:555 +#: templates/js/translated/company.js:556 msgid "Parts Manufactured" msgstr "Partes Fabricadas" -#: templates/js/translated/company.js:570 +#: templates/js/translated/company.js:571 msgid "No company information found" -msgstr "" +msgstr "No se encontró información de la empresa" -#: templates/js/translated/company.js:619 +#: templates/js/translated/company.js:620 msgid "Create New Contact" msgstr "Crear Nuevo Contacto" -#: templates/js/translated/company.js:635 -#: templates/js/translated/company.js:758 +#: templates/js/translated/company.js:636 +#: templates/js/translated/company.js:759 msgid "Edit Contact" -msgstr "" +msgstr "Editar contacto" -#: templates/js/translated/company.js:672 +#: templates/js/translated/company.js:673 msgid "All selected contacts will be deleted" -msgstr "" +msgstr "Se eliminarán todos los contactos seleccionados" -#: templates/js/translated/company.js:678 -#: templates/js/translated/company.js:742 +#: templates/js/translated/company.js:679 +#: templates/js/translated/company.js:743 msgid "Role" -msgstr "" +msgstr "Rol" -#: templates/js/translated/company.js:686 +#: templates/js/translated/company.js:687 msgid "Delete Contacts" -msgstr "" +msgstr "Borrar contactos" -#: templates/js/translated/company.js:717 +#: templates/js/translated/company.js:718 msgid "No contacts found" -msgstr "" +msgstr "No se encontraron contactos" -#: templates/js/translated/company.js:730 +#: templates/js/translated/company.js:731 msgid "Phone Number" -msgstr "" +msgstr "Número de teléfono" -#: templates/js/translated/company.js:736 +#: templates/js/translated/company.js:737 msgid "Email Address" -msgstr "" +msgstr "Dirección de correo electrónico" -#: templates/js/translated/company.js:762 +#: templates/js/translated/company.js:763 msgid "Delete Contact" msgstr "Eliminar Contacto" -#: templates/js/translated/company.js:859 +#: templates/js/translated/company.js:860 msgid "Create New Address" msgstr "Crear Nueva Dirección" -#: templates/js/translated/company.js:874 -#: templates/js/translated/company.js:1035 +#: templates/js/translated/company.js:875 +#: templates/js/translated/company.js:1036 msgid "Edit Address" msgstr "Editar Dirección" -#: templates/js/translated/company.js:909 +#: templates/js/translated/company.js:910 msgid "All selected addresses will be deleted" msgstr "Todos las direcciones seleccionadas serán eliminadas" -#: templates/js/translated/company.js:923 +#: templates/js/translated/company.js:924 msgid "Delete Addresses" msgstr "Eliminar Direcciones" -#: templates/js/translated/company.js:950 +#: templates/js/translated/company.js:951 msgid "No addresses found" msgstr "No se encontraron direcciones" -#: templates/js/translated/company.js:989 +#: templates/js/translated/company.js:990 msgid "Postal city" msgstr "Ciudad postal" -#: templates/js/translated/company.js:995 +#: templates/js/translated/company.js:996 msgid "State/province" msgstr "Estado/provincia" -#: templates/js/translated/company.js:1007 +#: templates/js/translated/company.js:1008 msgid "Courier notes" msgstr "Notas del mensajero" -#: templates/js/translated/company.js:1013 +#: templates/js/translated/company.js:1014 msgid "Internal notes" msgstr "Notas internas" -#: templates/js/translated/company.js:1039 +#: templates/js/translated/company.js:1040 msgid "Delete Address" msgstr "Eliminar Dirección" -#: templates/js/translated/company.js:1112 +#: templates/js/translated/company.js:1113 msgid "All selected manufacturer parts will be deleted" msgstr "Se eliminarán todas las partes del fabricante seleccionadas" -#: templates/js/translated/company.js:1127 +#: templates/js/translated/company.js:1128 msgid "Delete Manufacturer Parts" msgstr "Eliminar Partes del Fabricante" -#: templates/js/translated/company.js:1161 +#: templates/js/translated/company.js:1162 msgid "All selected parameters will be deleted" msgstr "Todos los parámetros seleccionados serán eliminados" -#: templates/js/translated/company.js:1175 +#: templates/js/translated/company.js:1176 msgid "Delete Parameters" msgstr "Eliminar Parámetros" -#: templates/js/translated/company.js:1191 -#: templates/js/translated/company.js:1479 templates/js/translated/part.js:2250 +#: templates/js/translated/company.js:1192 +#: templates/js/translated/company.js:1480 templates/js/translated/part.js:2250 msgid "Order parts" msgstr "Ordenar Partes" -#: templates/js/translated/company.js:1208 +#: templates/js/translated/company.js:1209 msgid "Delete manufacturer parts" msgstr "Eliminar partes del fabricante" -#: templates/js/translated/company.js:1240 +#: templates/js/translated/company.js:1241 msgid "Manufacturer part actions" msgstr "Acciones para partes del fabricante" -#: templates/js/translated/company.js:1259 +#: templates/js/translated/company.js:1260 msgid "No manufacturer parts found" msgstr "No se encontraron partes del fabricante" -#: templates/js/translated/company.js:1279 -#: templates/js/translated/company.js:1567 templates/js/translated/part.js:801 +#: templates/js/translated/company.js:1280 +#: templates/js/translated/company.js:1568 templates/js/translated/part.js:801 #: templates/js/translated/part.js:1217 msgid "Template part" msgstr "Plantilla de parte" -#: templates/js/translated/company.js:1283 -#: templates/js/translated/company.js:1571 templates/js/translated/part.js:805 +#: templates/js/translated/company.js:1284 +#: templates/js/translated/company.js:1572 templates/js/translated/part.js:805 #: templates/js/translated/part.js:1221 msgid "Assembled part" msgstr "Parte ensamblada" -#: templates/js/translated/company.js:1403 templates/js/translated/part.js:1471 +#: templates/js/translated/company.js:1404 templates/js/translated/part.js:1471 msgid "No parameters found" msgstr "No se encontraron parámetros" -#: templates/js/translated/company.js:1438 templates/js/translated/part.js:1534 +#: templates/js/translated/company.js:1439 templates/js/translated/part.js:1534 msgid "Edit parameter" msgstr "Editar parámetro" -#: templates/js/translated/company.js:1439 templates/js/translated/part.js:1535 +#: templates/js/translated/company.js:1440 templates/js/translated/part.js:1535 msgid "Delete parameter" msgstr "Eliminar parámetro" -#: templates/js/translated/company.js:1456 templates/js/translated/part.js:1440 +#: templates/js/translated/company.js:1457 templates/js/translated/part.js:1440 msgid "Edit Parameter" msgstr "Editar Parámetro" -#: templates/js/translated/company.js:1465 templates/js/translated/part.js:1556 +#: templates/js/translated/company.js:1466 templates/js/translated/part.js:1556 msgid "Delete Parameter" msgstr "Eliminar Parámetro" -#: templates/js/translated/company.js:1496 +#: templates/js/translated/company.js:1497 msgid "Delete supplier parts" msgstr "Eliminar piezas del proveedor" -#: templates/js/translated/company.js:1546 +#: templates/js/translated/company.js:1547 msgid "No supplier parts found" msgstr "No se encontraron partes de proveedor" -#: templates/js/translated/company.js:1664 +#: templates/js/translated/company.js:1665 msgid "Base Units" msgstr "Unidades base" -#: templates/js/translated/company.js:1694 +#: templates/js/translated/company.js:1695 msgid "Availability" msgstr "Disponibilidad" -#: templates/js/translated/company.js:1725 +#: templates/js/translated/company.js:1726 msgid "Edit supplier part" msgstr "Editar parte del proveedor" -#: templates/js/translated/company.js:1726 +#: templates/js/translated/company.js:1727 msgid "Delete supplier part" msgstr "Eliminar parte del proveedor" -#: templates/js/translated/company.js:1779 +#: templates/js/translated/company.js:1780 #: templates/js/translated/pricing.js:694 msgid "Delete Price Break" msgstr "" -#: templates/js/translated/company.js:1789 +#: templates/js/translated/company.js:1790 #: templates/js/translated/pricing.js:712 msgid "Edit Price Break" msgstr "" -#: templates/js/translated/company.js:1804 +#: templates/js/translated/company.js:1805 msgid "No price break information found" msgstr "" -#: templates/js/translated/company.js:1833 +#: templates/js/translated/company.js:1834 msgid "Last updated" msgstr "Última actualización" -#: templates/js/translated/company.js:1840 +#: templates/js/translated/company.js:1841 msgid "Edit price break" msgstr "" -#: templates/js/translated/company.js:1841 +#: templates/js/translated/company.js:1842 msgid "Delete price break" msgstr "" @@ -12946,7 +13311,7 @@ msgstr "" #: templates/js/translated/forms.js:904 msgid "Enter a valid number" -msgstr "" +msgstr "Ingrese un número válido" #: templates/js/translated/forms.js:1478 templates/modals.html:19 #: templates/modals.html:43 @@ -12955,11 +13320,11 @@ msgstr "Existen errores en el formulario" #: templates/js/translated/forms.js:2008 msgid "No results found" -msgstr "" +msgstr "No se encontraron resultados" #: templates/js/translated/forms.js:2318 templates/js/translated/search.js:239 msgid "Searching" -msgstr "" +msgstr "Buscando" #: templates/js/translated/forms.js:2532 msgid "Clear input" @@ -12975,21 +13340,21 @@ msgstr "" #: templates/js/translated/forms.js:3146 msgid "Select Columns" -msgstr "" +msgstr "Seleccionar columnas" -#: templates/js/translated/helpers.js:80 +#: templates/js/translated/helpers.js:81 msgid "YES" -msgstr "" +msgstr "Sí" -#: templates/js/translated/helpers.js:83 +#: templates/js/translated/helpers.js:84 msgid "NO" -msgstr "" +msgstr "No" -#: templates/js/translated/helpers.js:96 +#: templates/js/translated/helpers.js:97 msgid "True" msgstr "" -#: templates/js/translated/helpers.js:97 +#: templates/js/translated/helpers.js:98 msgid "False" msgstr "" @@ -13012,7 +13377,7 @@ msgstr "" #: templates/js/translated/modals.js:59 templates/js/translated/modals.js:159 #: templates/js/translated/modals.js:688 msgid "Cancel" -msgstr "" +msgstr "Cancelar" #: templates/js/translated/modals.js:64 templates/js/translated/modals.js:158 #: templates/js/translated/modals.js:756 templates/js/translated/modals.js:1064 @@ -13026,7 +13391,7 @@ msgstr "" #: templates/js/translated/modals.js:446 msgid "Waiting for server..." -msgstr "" +msgstr "Esperando al servidor..." #: templates/js/translated/modals.js:597 msgid "Show Error Information" @@ -13034,15 +13399,15 @@ msgstr "" #: templates/js/translated/modals.js:687 msgid "Accept" -msgstr "" +msgstr "Aceptar" #: templates/js/translated/modals.js:745 msgid "Loading Data" -msgstr "" +msgstr "Cargando datos" #: templates/js/translated/modals.js:1016 msgid "Invalid response from server" -msgstr "" +msgstr "Respuesta inválida del servidor" #: templates/js/translated/modals.js:1016 msgid "Form data missing from server response" @@ -13080,23 +13445,23 @@ msgstr "" #: templates/js/translated/notification.js:52 msgid "Age" -msgstr "" +msgstr "Edad" #: templates/js/translated/notification.js:65 msgid "Notification" -msgstr "" +msgstr "Notificación" #: templates/js/translated/notification.js:224 msgid "Mark as unread" -msgstr "" +msgstr "Marcar como no leído" #: templates/js/translated/notification.js:228 msgid "Mark as read" -msgstr "" +msgstr "Marcar como leído" #: templates/js/translated/notification.js:254 msgid "No unread notifications" -msgstr "" +msgstr "Sin notificaciones no leídas" #: templates/js/translated/notification.js:296 templates/notifications.html:12 msgid "Notifications will load here" @@ -13131,7 +13496,7 @@ msgid "Delete Line" msgstr "Eliminar Línea" #: templates/js/translated/order.js:306 -#: templates/js/translated/purchase_order.js:2060 +#: templates/js/translated/purchase_order.js:2044 msgid "No line items found" msgstr "No se encontraron artículos de línea" @@ -13303,7 +13668,7 @@ msgstr "" #: templates/js/translated/part.js:774 msgid "Unit" -msgstr "" +msgstr "Unidad" #: templates/js/translated/part.js:797 templates/js/translated/part.js:1213 msgid "Virtual part" @@ -13366,19 +13731,19 @@ msgid "Delete Part Parameter Template" msgstr "" #: templates/js/translated/part.js:1723 -#: templates/js/translated/purchase_order.js:1724 +#: templates/js/translated/purchase_order.js:1708 msgid "No purchase orders found" msgstr "" #: templates/js/translated/part.js:1867 -#: templates/js/translated/purchase_order.js:2223 +#: templates/js/translated/purchase_order.js:2207 #: templates/js/translated/return_order.js:754 -#: templates/js/translated/sales_order.js:1911 +#: templates/js/translated/sales_order.js:1892 msgid "This line item is overdue" msgstr "" #: templates/js/translated/part.js:1913 -#: templates/js/translated/purchase_order.js:2290 +#: templates/js/translated/purchase_order.js:2274 msgid "Receive line item" msgstr "" @@ -13419,7 +13784,7 @@ msgid "No category" msgstr "Sin categoría" #: templates/js/translated/part.js:2550 templates/js/translated/part.js:2680 -#: templates/js/translated/stock.js:2754 +#: templates/js/translated/stock.js:2755 msgid "Display as list" msgstr "Mostrar como lista" @@ -13431,7 +13796,7 @@ msgstr "Mostrar como cuadrícula" msgid "No subcategories found" msgstr "No se encontraron subcategorías" -#: templates/js/translated/part.js:2700 templates/js/translated/stock.js:2774 +#: templates/js/translated/part.js:2700 templates/js/translated/stock.js:2775 msgid "Display as tree" msgstr "Mostrar como árbol" @@ -13483,29 +13848,29 @@ msgstr "Fecha especificada es en el pasado" msgid "Speculative" msgstr "Especulativo" -#: templates/js/translated/part.js:3128 +#: templates/js/translated/part.js:3144 msgid "No scheduling information available for this part" msgstr "No hay información de planificación disponible para esta parte" -#: templates/js/translated/part.js:3134 +#: templates/js/translated/part.js:3150 msgid "Error fetching scheduling information for this part" msgstr "" -#: templates/js/translated/part.js:3230 +#: templates/js/translated/part.js:3246 msgid "Scheduled Stock Quantities" msgstr "Cantidad de Stock Programadas" -#: templates/js/translated/part.js:3246 +#: templates/js/translated/part.js:3262 msgid "Maximum Quantity" msgstr "Cantidad Máxima" -#: templates/js/translated/part.js:3291 +#: templates/js/translated/part.js:3307 msgid "Minimum Stock Level" msgstr "" #: templates/js/translated/plugin.js:46 msgid "No plugins found" -msgstr "" +msgstr "No se encontraron complementos" #: templates/js/translated/plugin.js:58 msgid "This plugin is no longer installed" @@ -13513,11 +13878,11 @@ msgstr "" #: templates/js/translated/plugin.js:60 msgid "This plugin is active" -msgstr "" +msgstr "Este complemento está activo" #: templates/js/translated/plugin.js:62 msgid "This plugin is installed but not active" -msgstr "" +msgstr "Este complemento fue instalado pero no está activo" #: templates/js/translated/plugin.js:117 templates/js/translated/plugin.js:186 msgid "Disable Plugin" @@ -13575,267 +13940,243 @@ msgstr "" msgid "Purchase Price History" msgstr "" -#: templates/js/translated/pricing.js:894 +#: templates/js/translated/pricing.js:892 msgid "No sales history data available" msgstr "" -#: templates/js/translated/pricing.js:916 +#: templates/js/translated/pricing.js:914 msgid "Sale Price History" msgstr "" -#: templates/js/translated/pricing.js:1005 +#: templates/js/translated/pricing.js:1003 msgid "No variant data available" msgstr "" -#: templates/js/translated/pricing.js:1045 +#: templates/js/translated/pricing.js:1043 msgid "Variant Part" msgstr "" -#: templates/js/translated/purchase_order.js:169 -msgid "Select purchase order to duplicate" -msgstr "" - -#: templates/js/translated/purchase_order.js:176 -msgid "Duplicate Line Items" -msgstr "" - -#: templates/js/translated/purchase_order.js:177 -msgid "Duplicate all line items from the selected order" -msgstr "" - -#: templates/js/translated/purchase_order.js:184 -msgid "Duplicate Extra Lines" -msgstr "" - -#: templates/js/translated/purchase_order.js:185 -msgid "Duplicate extra line items from the selected order" -msgstr "" - -#: templates/js/translated/purchase_order.js:206 +#: templates/js/translated/purchase_order.js:188 msgid "Edit Purchase Order" msgstr "" -#: templates/js/translated/purchase_order.js:223 +#: templates/js/translated/purchase_order.js:205 msgid "Duplication Options" msgstr "" -#: templates/js/translated/purchase_order.js:431 +#: templates/js/translated/purchase_order.js:414 msgid "Complete Purchase Order" msgstr "" -#: templates/js/translated/purchase_order.js:448 +#: templates/js/translated/purchase_order.js:431 #: templates/js/translated/return_order.js:210 -#: templates/js/translated/sales_order.js:552 +#: templates/js/translated/sales_order.js:511 msgid "Mark this order as complete?" msgstr "" -#: templates/js/translated/purchase_order.js:454 +#: templates/js/translated/purchase_order.js:437 msgid "All line items have been received" msgstr "" -#: templates/js/translated/purchase_order.js:459 +#: templates/js/translated/purchase_order.js:442 msgid "This order has line items which have not been marked as received." msgstr "" -#: templates/js/translated/purchase_order.js:460 +#: templates/js/translated/purchase_order.js:443 msgid "Completing this order means that the order and line items will no longer be editable." msgstr "" -#: templates/js/translated/purchase_order.js:483 +#: templates/js/translated/purchase_order.js:466 msgid "Cancel Purchase Order" msgstr "" -#: templates/js/translated/purchase_order.js:488 +#: templates/js/translated/purchase_order.js:471 msgid "Are you sure you wish to cancel this purchase order?" msgstr "" -#: templates/js/translated/purchase_order.js:494 +#: templates/js/translated/purchase_order.js:477 msgid "This purchase order can not be cancelled" msgstr "" -#: templates/js/translated/purchase_order.js:515 +#: templates/js/translated/purchase_order.js:498 #: templates/js/translated/return_order.js:164 msgid "After placing this order, line items will no longer be editable." msgstr "" -#: templates/js/translated/purchase_order.js:520 +#: templates/js/translated/purchase_order.js:503 msgid "Issue Purchase Order" msgstr "" -#: templates/js/translated/purchase_order.js:612 +#: templates/js/translated/purchase_order.js:595 msgid "At least one purchaseable part must be selected" msgstr "" -#: templates/js/translated/purchase_order.js:637 +#: templates/js/translated/purchase_order.js:620 msgid "Quantity to order" msgstr "" -#: templates/js/translated/purchase_order.js:646 +#: templates/js/translated/purchase_order.js:629 msgid "New supplier part" msgstr "" -#: templates/js/translated/purchase_order.js:664 +#: templates/js/translated/purchase_order.js:647 msgid "New purchase order" msgstr "" -#: templates/js/translated/purchase_order.js:705 +#: templates/js/translated/purchase_order.js:688 msgid "Add to purchase order" msgstr "" -#: templates/js/translated/purchase_order.js:755 +#: templates/js/translated/purchase_order.js:738 msgid "Merge" -msgstr "" +msgstr "Combinar" -#: templates/js/translated/purchase_order.js:859 +#: templates/js/translated/purchase_order.js:842 msgid "No matching supplier parts" msgstr "" -#: templates/js/translated/purchase_order.js:878 +#: templates/js/translated/purchase_order.js:861 msgid "No matching purchase orders" msgstr "" -#: templates/js/translated/purchase_order.js:1073 +#: templates/js/translated/purchase_order.js:1056 #: templates/js/translated/return_order.js:490 msgid "Select Line Items" msgstr "" -#: templates/js/translated/purchase_order.js:1074 +#: templates/js/translated/purchase_order.js:1057 #: templates/js/translated/return_order.js:491 msgid "At least one line item must be selected" msgstr "" -#: templates/js/translated/purchase_order.js:1104 +#: templates/js/translated/purchase_order.js:1087 msgid "Received Quantity" msgstr "" -#: templates/js/translated/purchase_order.js:1115 +#: templates/js/translated/purchase_order.js:1098 msgid "Quantity to receive" msgstr "" -#: templates/js/translated/purchase_order.js:1170 +#: templates/js/translated/purchase_order.js:1153 #: templates/js/translated/stock.js:1215 msgid "Specify packaging for incoming stock items" msgstr "" -#: templates/js/translated/purchase_order.js:1223 +#: templates/js/translated/purchase_order.js:1206 msgid "Stock Status" msgstr "" -#: templates/js/translated/purchase_order.js:1237 +#: templates/js/translated/purchase_order.js:1220 msgid "Add barcode" -msgstr "" +msgstr "Agregar código de barras" -#: templates/js/translated/purchase_order.js:1238 +#: templates/js/translated/purchase_order.js:1221 msgid "Remove barcode" -msgstr "" +msgstr "Eliminar código de barras" -#: templates/js/translated/purchase_order.js:1241 +#: templates/js/translated/purchase_order.js:1224 msgid "Specify location" -msgstr "" +msgstr "Especificar ubicación" -#: templates/js/translated/purchase_order.js:1249 +#: templates/js/translated/purchase_order.js:1232 msgid "Add batch code" msgstr "" -#: templates/js/translated/purchase_order.js:1259 +#: templates/js/translated/purchase_order.js:1242 msgid "Specify packaging" -msgstr "" +msgstr "Especificar embalaje" -#: templates/js/translated/purchase_order.js:1270 +#: templates/js/translated/purchase_order.js:1253 msgid "Add serial numbers" -msgstr "" +msgstr "Agregar números de serie" -#: templates/js/translated/purchase_order.js:1281 +#: templates/js/translated/purchase_order.js:1264 msgid "Add note" -msgstr "" +msgstr "Agregar nota" -#: templates/js/translated/purchase_order.js:1338 +#: templates/js/translated/purchase_order.js:1321 msgid "Serials" msgstr "" -#: templates/js/translated/purchase_order.js:1368 +#: templates/js/translated/purchase_order.js:1351 msgid "Order Code" -msgstr "" +msgstr "Código de orden" -#: templates/js/translated/purchase_order.js:1370 +#: templates/js/translated/purchase_order.js:1353 msgid "Quantity to Receive" msgstr "" -#: templates/js/translated/purchase_order.js:1395 +#: templates/js/translated/purchase_order.js:1379 #: templates/js/translated/return_order.js:559 msgid "Confirm receipt of items" msgstr "" -#: templates/js/translated/purchase_order.js:1396 +#: templates/js/translated/purchase_order.js:1380 msgid "Receive Purchase Order Items" msgstr "" -#: templates/js/translated/purchase_order.js:1464 +#: templates/js/translated/purchase_order.js:1448 msgid "Scan Item Barcode" msgstr "" -#: templates/js/translated/purchase_order.js:1465 +#: templates/js/translated/purchase_order.js:1449 msgid "Scan barcode on incoming item (must not match any existing stock items)" msgstr "" -#: templates/js/translated/purchase_order.js:1479 +#: templates/js/translated/purchase_order.js:1463 msgid "Invalid barcode data" msgstr "" -#: templates/js/translated/purchase_order.js:1751 +#: templates/js/translated/purchase_order.js:1735 #: templates/js/translated/return_order.js:285 -#: templates/js/translated/sales_order.js:810 -#: templates/js/translated/sales_order.js:1034 +#: templates/js/translated/sales_order.js:769 +#: templates/js/translated/sales_order.js:1007 msgid "Order is overdue" msgstr "" -#: templates/js/translated/purchase_order.js:1913 +#: templates/js/translated/purchase_order.js:1897 msgid "All selected Line items will be deleted" msgstr "" -#: templates/js/translated/purchase_order.js:1931 +#: templates/js/translated/purchase_order.js:1915 msgid "Delete selected Line items?" msgstr "" -#: templates/js/translated/purchase_order.js:1986 -#: templates/js/translated/sales_order.js:2106 +#: templates/js/translated/purchase_order.js:1970 +#: templates/js/translated/sales_order.js:2087 msgid "Duplicate Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2001 +#: templates/js/translated/purchase_order.js:1985 #: templates/js/translated/return_order.js:475 #: templates/js/translated/return_order.js:667 -#: templates/js/translated/sales_order.js:2119 +#: templates/js/translated/sales_order.js:2100 msgid "Edit Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2012 +#: templates/js/translated/purchase_order.js:1996 #: templates/js/translated/return_order.js:680 -#: templates/js/translated/sales_order.js:2130 +#: templates/js/translated/sales_order.js:2111 msgid "Delete Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2294 -#: templates/js/translated/sales_order.js:2060 +#: templates/js/translated/purchase_order.js:2278 +#: templates/js/translated/sales_order.js:2041 msgid "Duplicate line item" msgstr "" -#: templates/js/translated/purchase_order.js:2295 +#: templates/js/translated/purchase_order.js:2279 #: templates/js/translated/return_order.js:799 -#: templates/js/translated/sales_order.js:2061 +#: templates/js/translated/sales_order.js:2042 msgid "Edit line item" msgstr "" -#: templates/js/translated/purchase_order.js:2296 +#: templates/js/translated/purchase_order.js:2280 #: templates/js/translated/return_order.js:803 -#: templates/js/translated/sales_order.js:2067 +#: templates/js/translated/sales_order.js:2048 msgid "Delete line item" msgstr "" -#: templates/js/translated/report.js:49 -msgid "Print Report" -msgstr "" - #: templates/js/translated/report.js:68 msgid "Report print successful" msgstr "" @@ -13878,7 +14219,7 @@ msgid "No return orders found" msgstr "" #: templates/js/translated/return_order.js:299 -#: templates/js/translated/sales_order.js:824 +#: templates/js/translated/sales_order.js:783 msgid "Invalid Customer" msgstr "" @@ -13887,7 +14228,7 @@ msgid "Receive Return Order Items" msgstr "" #: templates/js/translated/return_order.js:691 -#: templates/js/translated/sales_order.js:2267 +#: templates/js/translated/sales_order.js:2248 msgid "No matching line items" msgstr "" @@ -13903,194 +14244,187 @@ msgstr "" msgid "Edit Sales Order" msgstr "" -#: templates/js/translated/sales_order.js:291 +#: templates/js/translated/sales_order.js:288 msgid "No stock items have been allocated to this shipment" msgstr "" -#: templates/js/translated/sales_order.js:296 -msgid "The following stock items will be shipped" -msgstr "" - -#: templates/js/translated/sales_order.js:336 +#: templates/js/translated/sales_order.js:294 msgid "Complete Shipment" msgstr "" -#: templates/js/translated/sales_order.js:360 +#: templates/js/translated/sales_order.js:318 msgid "Confirm Shipment" msgstr "" -#: templates/js/translated/sales_order.js:416 +#: templates/js/translated/sales_order.js:375 msgid "No pending shipments found" msgstr "" -#: templates/js/translated/sales_order.js:420 +#: templates/js/translated/sales_order.js:379 msgid "No stock items have been allocated to pending shipments" msgstr "" -#: templates/js/translated/sales_order.js:430 +#: templates/js/translated/sales_order.js:389 msgid "Complete Shipments" msgstr "" -#: templates/js/translated/sales_order.js:452 +#: templates/js/translated/sales_order.js:411 msgid "Skip" -msgstr "" +msgstr "Omitor" -#: templates/js/translated/sales_order.js:484 +#: templates/js/translated/sales_order.js:443 msgid "Ship Sales Order" msgstr "" -#: templates/js/translated/sales_order.js:500 +#: templates/js/translated/sales_order.js:459 msgid "Ship this order?" msgstr "" -#: templates/js/translated/sales_order.js:506 +#: templates/js/translated/sales_order.js:465 msgid "Order cannot be shipped as there are incomplete shipments" msgstr "" -#: templates/js/translated/sales_order.js:513 +#: templates/js/translated/sales_order.js:472 msgid "This order has line items which have not been completed." msgstr "" -#: templates/js/translated/sales_order.js:514 +#: templates/js/translated/sales_order.js:473 msgid "Shipping this order means that the order and line items will no longer be editable." msgstr "" -#: templates/js/translated/sales_order.js:572 +#: templates/js/translated/sales_order.js:531 msgid "Issue this Sales Order?" msgstr "" -#: templates/js/translated/sales_order.js:577 +#: templates/js/translated/sales_order.js:536 msgid "Issue Sales Order" msgstr "" -#: templates/js/translated/sales_order.js:596 +#: templates/js/translated/sales_order.js:555 msgid "Cancel Sales Order" msgstr "" -#: templates/js/translated/sales_order.js:601 +#: templates/js/translated/sales_order.js:560 msgid "Cancelling this order means that the order will no longer be editable." msgstr "" -#: templates/js/translated/sales_order.js:655 +#: templates/js/translated/sales_order.js:614 msgid "Create New Shipment" msgstr "" -#: templates/js/translated/sales_order.js:764 +#: templates/js/translated/sales_order.js:723 msgid "No sales orders found" -msgstr "" +msgstr "No se encontraron órdenes ventas" -#: templates/js/translated/sales_order.js:944 +#: templates/js/translated/sales_order.js:907 msgid "Edit shipment" msgstr "" -#: templates/js/translated/sales_order.js:947 +#: templates/js/translated/sales_order.js:910 msgid "Complete shipment" msgstr "" -#: templates/js/translated/sales_order.js:952 +#: templates/js/translated/sales_order.js:915 msgid "Delete shipment" msgstr "" -#: templates/js/translated/sales_order.js:969 +#: templates/js/translated/sales_order.js:932 msgid "Edit Shipment" msgstr "" -#: templates/js/translated/sales_order.js:984 +#: templates/js/translated/sales_order.js:947 msgid "Delete Shipment" msgstr "" -#: templates/js/translated/sales_order.js:1017 +#: templates/js/translated/sales_order.js:989 msgid "No matching shipments found" msgstr "" -#: templates/js/translated/sales_order.js:1042 +#: templates/js/translated/sales_order.js:1015 msgid "Shipment Reference" msgstr "" -#: templates/js/translated/sales_order.js:1066 -#: templates/js/translated/sales_order.js:1565 +#: templates/js/translated/sales_order.js:1032 +#: templates/js/translated/sales_order.js:1531 msgid "Not shipped" msgstr "" -#: templates/js/translated/sales_order.js:1084 +#: templates/js/translated/sales_order.js:1050 msgid "Tracking" -msgstr "" +msgstr "Rastreo" -#: templates/js/translated/sales_order.js:1088 +#: templates/js/translated/sales_order.js:1054 msgid "Invoice" -msgstr "" +msgstr "Factura" -#: templates/js/translated/sales_order.js:1255 +#: templates/js/translated/sales_order.js:1221 msgid "Add Shipment" msgstr "" -#: templates/js/translated/sales_order.js:1306 +#: templates/js/translated/sales_order.js:1272 msgid "Confirm stock allocation" msgstr "" -#: templates/js/translated/sales_order.js:1307 +#: templates/js/translated/sales_order.js:1273 msgid "Allocate Stock Items to Sales Order" msgstr "" -#: templates/js/translated/sales_order.js:1513 +#: templates/js/translated/sales_order.js:1479 msgid "No sales order allocations found" msgstr "" -#: templates/js/translated/sales_order.js:1605 +#: templates/js/translated/sales_order.js:1571 msgid "Edit Stock Allocation" msgstr "" -#: templates/js/translated/sales_order.js:1619 +#: templates/js/translated/sales_order.js:1585 msgid "Confirm Delete Operation" msgstr "" -#: templates/js/translated/sales_order.js:1620 +#: templates/js/translated/sales_order.js:1586 msgid "Delete Stock Allocation" msgstr "" -#: templates/js/translated/sales_order.js:1659 -#: templates/js/translated/sales_order.js:1746 +#: templates/js/translated/sales_order.js:1640 +#: templates/js/translated/sales_order.js:1727 #: templates/js/translated/stock.js:1861 msgid "Shipped to customer" msgstr "" -#: templates/js/translated/sales_order.js:1667 -#: templates/js/translated/sales_order.js:1755 +#: templates/js/translated/sales_order.js:1648 +#: templates/js/translated/sales_order.js:1736 msgid "Stock location not specified" msgstr "" -#: templates/js/translated/sales_order.js:2044 -msgid "Allocate serial numbers" -msgstr "" - -#: templates/js/translated/sales_order.js:2048 -msgid "Purchase stock" -msgstr "" - -#: templates/js/translated/sales_order.js:2057 -#: templates/js/translated/sales_order.js:2245 -msgid "Calculate price" -msgstr "" - -#: templates/js/translated/sales_order.js:2071 -msgid "Cannot be deleted as items have been shipped" -msgstr "" - -#: templates/js/translated/sales_order.js:2074 -msgid "Cannot be deleted as items have been allocated" -msgstr "" - -#: templates/js/translated/sales_order.js:2145 +#: templates/js/translated/sales_order.js:2025 +#: templates/js/translated/sales_order.js:2126 msgid "Allocate Serial Numbers" msgstr "" -#: templates/js/translated/sales_order.js:2253 -msgid "Update Unit Price" +#: templates/js/translated/sales_order.js:2029 +msgid "Purchase stock" msgstr "" +#: templates/js/translated/sales_order.js:2038 +#: templates/js/translated/sales_order.js:2226 +msgid "Calculate price" +msgstr "Calcular precio" + +#: templates/js/translated/sales_order.js:2052 +msgid "Cannot be deleted as items have been shipped" +msgstr "" + +#: templates/js/translated/sales_order.js:2055 +msgid "Cannot be deleted as items have been allocated" +msgstr "" + +#: templates/js/translated/sales_order.js:2234 +msgid "Update Unit Price" +msgstr "Actualizar precio unitario" + #: templates/js/translated/search.js:270 msgid "No results" -msgstr "" +msgstr "Sin resultados" #: templates/js/translated/search.js:292 templates/search.html:25 msgid "Enter search query" @@ -14098,15 +14432,15 @@ msgstr "Ingresar consulta de búsqueda" #: templates/js/translated/search.js:342 msgid "result" -msgstr "" +msgstr "resultado" #: templates/js/translated/search.js:352 msgid "Minimize results" -msgstr "" +msgstr "Minimizar resultados" #: templates/js/translated/search.js:355 msgid "Remove results" -msgstr "" +msgstr "Eliminar resultados" #: templates/js/translated/stock.js:106 msgid "Serialize Stock Item" @@ -14118,35 +14452,35 @@ msgstr "" #: templates/js/translated/stock.js:173 msgid "Add Location type" -msgstr "" +msgstr "Agregar tipo de ubicación" #: templates/js/translated/stock.js:209 msgid "Edit Stock Location" -msgstr "" +msgstr "Editar bodega de inventario" #: templates/js/translated/stock.js:224 msgid "New Stock Location" -msgstr "" +msgstr "Nueva bodega de inventario" #: templates/js/translated/stock.js:226 msgid "Create another location after this one" -msgstr "" +msgstr "Crear otra ubicación después de esta" #: templates/js/translated/stock.js:227 msgid "Stock location created" -msgstr "" +msgstr "Se creó la bodega de inventario" #: templates/js/translated/stock.js:241 msgid "Are you sure you want to delete this stock location?" -msgstr "" +msgstr "¿Está seguro de eliminar esta bodega de inventario?" #: templates/js/translated/stock.js:248 msgid "Move to parent stock location" -msgstr "" +msgstr "Mover a la bodega de inventario principal" #: templates/js/translated/stock.js:257 msgid "Delete Stock Location" -msgstr "" +msgstr "Eliminar bodega de inventario" #: templates/js/translated/stock.js:261 msgid "Action for stock items in this stock location" @@ -14209,11 +14543,8 @@ msgid "Find Serial Number" msgstr "" #: templates/js/translated/stock.js:603 templates/js/translated/stock.js:604 -msgid "Enter serial number" -msgstr "" - #: templates/js/translated/stock.js:620 -msgid "Enter a serial number" +msgid "Enter serial number" msgstr "" #: templates/js/translated/stock.js:640 @@ -14284,7 +14615,7 @@ msgstr "" msgid "Add Stock" msgstr "" -#: templates/js/translated/stock.js:1049 users/models.py:396 +#: templates/js/translated/stock.js:1049 users/models.py:398 msgid "Add" msgstr "Añadir" @@ -14308,7 +14639,7 @@ msgstr "" msgid "Adjust packaging" msgstr "" -#: templates/js/translated/stock.js:1256 templates/js/translated/stock.js:3382 +#: templates/js/translated/stock.js:1256 templates/js/translated/stock.js:3383 msgid "Select Stock Items" msgstr "" @@ -14320,18 +14651,6 @@ msgstr "" msgid "Confirm stock adjustment" msgstr "" -#: templates/js/translated/stock.js:1448 -msgid "PASS" -msgstr "" - -#: templates/js/translated/stock.js:1450 -msgid "FAIL" -msgstr "" - -#: templates/js/translated/stock.js:1455 -msgid "NO RESULT" -msgstr "" - #: templates/js/translated/stock.js:1535 msgid "Pass test" msgstr "" @@ -14374,7 +14693,7 @@ msgstr "" #: templates/js/translated/stock.js:1853 msgid "In production" -msgstr "" +msgstr "En producción" #: templates/js/translated/stock.js:1857 msgid "Installed in Stock Item" @@ -14388,218 +14707,218 @@ msgstr "" msgid "No stock location set" msgstr "" -#: templates/js/translated/stock.js:1927 +#: templates/js/translated/stock.js:1928 msgid "Change stock status" msgstr "" -#: templates/js/translated/stock.js:1936 +#: templates/js/translated/stock.js:1937 msgid "Merge stock" -msgstr "" +msgstr "Combinar inventario" -#: templates/js/translated/stock.js:1985 +#: templates/js/translated/stock.js:1986 msgid "Delete stock" -msgstr "" +msgstr "Eliminar inventario" -#: templates/js/translated/stock.js:2038 +#: templates/js/translated/stock.js:2039 msgid "stock items" -msgstr "" +msgstr "Artículos de inventario" -#: templates/js/translated/stock.js:2043 +#: templates/js/translated/stock.js:2044 msgid "Scan to location" msgstr "" -#: templates/js/translated/stock.js:2054 +#: templates/js/translated/stock.js:2055 msgid "Stock Actions" -msgstr "" +msgstr "Acciones de inventario" -#: templates/js/translated/stock.js:2098 +#: templates/js/translated/stock.js:2099 msgid "Load installed items" msgstr "" -#: templates/js/translated/stock.js:2176 +#: templates/js/translated/stock.js:2177 msgid "Stock item is in production" msgstr "" -#: templates/js/translated/stock.js:2181 +#: templates/js/translated/stock.js:2182 msgid "Stock item assigned to sales order" msgstr "" -#: templates/js/translated/stock.js:2184 +#: templates/js/translated/stock.js:2185 msgid "Stock item assigned to customer" msgstr "" -#: templates/js/translated/stock.js:2187 +#: templates/js/translated/stock.js:2188 msgid "Serialized stock item has been allocated" msgstr "" -#: templates/js/translated/stock.js:2189 +#: templates/js/translated/stock.js:2190 msgid "Stock item has been fully allocated" msgstr "" -#: templates/js/translated/stock.js:2191 +#: templates/js/translated/stock.js:2192 msgid "Stock item has been partially allocated" msgstr "" -#: templates/js/translated/stock.js:2194 +#: templates/js/translated/stock.js:2195 msgid "Stock item has been installed in another item" msgstr "" -#: templates/js/translated/stock.js:2196 +#: templates/js/translated/stock.js:2197 msgid "Stock item has been consumed by a build order" msgstr "" -#: templates/js/translated/stock.js:2200 +#: templates/js/translated/stock.js:2201 msgid "Stock item has expired" msgstr "" -#: templates/js/translated/stock.js:2202 +#: templates/js/translated/stock.js:2203 msgid "Stock item will expire soon" msgstr "" -#: templates/js/translated/stock.js:2207 +#: templates/js/translated/stock.js:2208 msgid "Stock item has been rejected" msgstr "" -#: templates/js/translated/stock.js:2209 +#: templates/js/translated/stock.js:2210 msgid "Stock item is lost" msgstr "" -#: templates/js/translated/stock.js:2211 +#: templates/js/translated/stock.js:2212 msgid "Stock item is destroyed" msgstr "" -#: templates/js/translated/stock.js:2215 +#: templates/js/translated/stock.js:2216 #: templates/js/translated/table_filters.js:357 msgid "Depleted" -msgstr "" +msgstr "Agotado" -#: templates/js/translated/stock.js:2380 +#: templates/js/translated/stock.js:2381 msgid "Supplier part not specified" msgstr "" -#: templates/js/translated/stock.js:2427 +#: templates/js/translated/stock.js:2428 msgid "Stock Value" msgstr "" -#: templates/js/translated/stock.js:2555 +#: templates/js/translated/stock.js:2556 msgid "No stock items matching query" msgstr "" -#: templates/js/translated/stock.js:2658 +#: templates/js/translated/stock.js:2659 msgid "stock locations" msgstr "" -#: templates/js/translated/stock.js:2813 +#: templates/js/translated/stock.js:2814 msgid "Load Sublocations" msgstr "" -#: templates/js/translated/stock.js:2930 +#: templates/js/translated/stock.js:2931 msgid "Details" -msgstr "" +msgstr "Detalles" -#: templates/js/translated/stock.js:2934 +#: templates/js/translated/stock.js:2935 msgid "No changes" -msgstr "" +msgstr "Sin cambios" -#: templates/js/translated/stock.js:2946 +#: templates/js/translated/stock.js:2947 msgid "Part information unavailable" -msgstr "" +msgstr "Información del producto no disponible" -#: templates/js/translated/stock.js:2968 +#: templates/js/translated/stock.js:2969 msgid "Location no longer exists" -msgstr "" +msgstr "La ubicación ya no existe" -#: templates/js/translated/stock.js:2985 +#: templates/js/translated/stock.js:2986 msgid "Build order no longer exists" -msgstr "" +msgstr "La orden de fabricación ya no existe" -#: templates/js/translated/stock.js:3000 +#: templates/js/translated/stock.js:3001 msgid "Purchase order no longer exists" -msgstr "" +msgstr "La orden de compra ya no existe" -#: templates/js/translated/stock.js:3017 +#: templates/js/translated/stock.js:3018 msgid "Sales Order no longer exists" -msgstr "" +msgstr "La orden de venta ya no existe" -#: templates/js/translated/stock.js:3034 +#: templates/js/translated/stock.js:3035 msgid "Return Order no longer exists" -msgstr "" +msgstr "La orden de devolución ya no existe" -#: templates/js/translated/stock.js:3053 +#: templates/js/translated/stock.js:3054 msgid "Customer no longer exists" -msgstr "" +msgstr "El cliente ya no existe" -#: templates/js/translated/stock.js:3071 +#: templates/js/translated/stock.js:3072 msgid "Stock item no longer exists" -msgstr "" +msgstr "El artículo de inventario ya no existe" -#: templates/js/translated/stock.js:3089 +#: templates/js/translated/stock.js:3090 msgid "Added" -msgstr "" +msgstr "Agregado" -#: templates/js/translated/stock.js:3097 +#: templates/js/translated/stock.js:3098 msgid "Removed" -msgstr "" +msgstr "Eliminado" -#: templates/js/translated/stock.js:3169 +#: templates/js/translated/stock.js:3170 msgid "No installed items" msgstr "" -#: templates/js/translated/stock.js:3223 templates/js/translated/stock.js:3259 +#: templates/js/translated/stock.js:3224 templates/js/translated/stock.js:3260 msgid "Uninstall Stock Item" msgstr "" -#: templates/js/translated/stock.js:3280 +#: templates/js/translated/stock.js:3281 msgid "Select stock item to uninstall" msgstr "" -#: templates/js/translated/stock.js:3301 +#: templates/js/translated/stock.js:3302 msgid "Install another stock item into this item" msgstr "" -#: templates/js/translated/stock.js:3302 +#: templates/js/translated/stock.js:3303 msgid "Stock items can only be installed if they meet the following criteria" msgstr "" -#: templates/js/translated/stock.js:3304 +#: templates/js/translated/stock.js:3305 msgid "The Stock Item links to a Part which is the BOM for this Stock Item" msgstr "" -#: templates/js/translated/stock.js:3305 +#: templates/js/translated/stock.js:3306 msgid "The Stock Item is currently available in stock" msgstr "" -#: templates/js/translated/stock.js:3306 +#: templates/js/translated/stock.js:3307 msgid "The Stock Item is not already installed in another item" msgstr "" -#: templates/js/translated/stock.js:3307 +#: templates/js/translated/stock.js:3308 msgid "The Stock Item is tracked by either a batch code or serial number" msgstr "" -#: templates/js/translated/stock.js:3320 +#: templates/js/translated/stock.js:3321 msgid "Select part to install" msgstr "" -#: templates/js/translated/stock.js:3383 +#: templates/js/translated/stock.js:3384 msgid "Select one or more stock items" msgstr "" -#: templates/js/translated/stock.js:3396 +#: templates/js/translated/stock.js:3397 msgid "Selected stock items" msgstr "" -#: templates/js/translated/stock.js:3400 +#: templates/js/translated/stock.js:3401 msgid "Change Stock Status" msgstr "" -#: templates/js/translated/stock.js:3477 +#: templates/js/translated/stock.js:3478 msgid "This week" -msgstr "" +msgstr "Esta semana" -#: templates/js/translated/stock.js:3485 +#: templates/js/translated/stock.js:3486 msgid "This month" -msgstr "" +msgstr "Este mes" #: templates/js/translated/table_filters.js:73 msgid "Has project code" @@ -14610,7 +14929,7 @@ msgstr "" #: templates/js/translated/table_filters.js:620 #: templates/js/translated/table_filters.js:661 msgid "Order status" -msgstr "" +msgstr "Estado del pedido" #: templates/js/translated/table_filters.js:161 msgid "Testable Part" @@ -14654,7 +14973,7 @@ msgstr "" #: templates/js/translated/table_filters.js:294 #: templates/js/translated/table_filters.js:767 msgid "Subscribed" -msgstr "" +msgstr "Suscrito" #: templates/js/translated/table_filters.js:305 #: templates/js/translated/table_filters.js:387 @@ -14734,10 +15053,6 @@ msgstr "" msgid "Show items which are in production" msgstr "" -#: templates/js/translated/table_filters.js:372 -msgid "Include Variants" -msgstr "" - #: templates/js/translated/table_filters.js:373 msgid "Include stock items for variant parts" msgstr "" @@ -14842,7 +15157,7 @@ msgstr "" #: templates/js/translated/table_filters.js:751 msgid "In stock" -msgstr "" +msgstr "En inventario" #: templates/js/translated/table_filters.js:759 msgid "Purchasable" @@ -15012,10 +15327,6 @@ msgstr "Error al iniciar sesión en la cuenta" msgid "An error occurred while attempting to login via your social network account." msgstr "Se ha producido un error al intentar iniciar sesión a través de su cuenta de red social." -#: templates/socialaccount/authentication_error.html:13 -msgid "Contact your system administrator for further information." -msgstr "Póngase en contacto con su administrador para más información." - #: templates/socialaccount/login.html:13 #, python-format msgid "Connect %(provider)s" @@ -15141,27 +15452,27 @@ msgstr "Sí" msgid "No" msgstr "" -#: users/admin.py:104 +#: users/admin.py:101 msgid "Users" msgstr "Usuarios" -#: users/admin.py:105 +#: users/admin.py:102 msgid "Select which users are assigned to this group" msgstr "Seleccione qué usuarios están asignados a este grupo" -#: users/admin.py:249 +#: users/admin.py:246 msgid "The following users are members of multiple groups" msgstr "" -#: users/admin.py:283 +#: users/admin.py:280 msgid "Personal info" msgstr "Información personal" -#: users/admin.py:285 +#: users/admin.py:282 msgid "Permissions" msgstr "Permisos" -#: users/admin.py:288 +#: users/admin.py:285 msgid "Important dates" msgstr "Fechas importantes" @@ -15175,65 +15486,65 @@ msgstr "" #: users/models.py:81 msgid "API Token" -msgstr "" +msgstr "Token del API" #: users/models.py:82 msgid "API Tokens" -msgstr "" +msgstr "Tokens del API" #: users/models.py:118 msgid "Token Name" -msgstr "" +msgstr "Nombre del token" #: users/models.py:119 msgid "Custom token name" -msgstr "" +msgstr "Nombre personalizado del token" #: users/models.py:125 msgid "Token expiry date" -msgstr "" +msgstr "Fecha de expiración del token" #: users/models.py:133 msgid "Last Seen" -msgstr "" +msgstr "Última conexión" #: users/models.py:134 msgid "Last time the token was used" -msgstr "" +msgstr "Última vez que se usó el token" #: users/models.py:138 msgid "Revoked" -msgstr "" +msgstr "Revocado" -#: users/models.py:379 +#: users/models.py:381 msgid "Permission set" msgstr "Permiso establecido" -#: users/models.py:388 +#: users/models.py:390 msgid "Group" msgstr "Grupo" -#: users/models.py:392 +#: users/models.py:394 msgid "View" msgstr "Vista" -#: users/models.py:392 +#: users/models.py:394 msgid "Permission to view items" msgstr "Permiso para ver artículos" -#: users/models.py:396 +#: users/models.py:398 msgid "Permission to add items" msgstr "Permiso para añadir artículos" -#: users/models.py:400 +#: users/models.py:402 msgid "Change" msgstr "Cambiar" -#: users/models.py:402 +#: users/models.py:404 msgid "Permissions to edit items" msgstr "Permisos para editar artículos" -#: users/models.py:408 +#: users/models.py:410 msgid "Permission to delete items" msgstr "Permiso para eliminar artículos" diff --git a/src/backend/InvenTree/locale/es_MX/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/es_MX/LC_MESSAGES/django.po index c9947d6869..91ea7017e1 100644 --- a/src/backend/InvenTree/locale/es_MX/LC_MESSAGES/django.po +++ b/src/backend/InvenTree/locale/es_MX/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-08-20 01:22+0000\n" -"PO-Revision-Date: 2024-08-20 19:51\n" +"POT-Creation-Date: 2024-11-04 03:11+0000\n" +"PO-Revision-Date: 2024-11-04 03:14\n" "Last-Translator: \n" "Language-Team: Spanish, Mexico\n" "Language: es_MX\n" @@ -14,81 +14,89 @@ msgstr "" "X-Crowdin-Project: inventree\n" "X-Crowdin-Project-ID: 452300\n" "X-Crowdin-Language: es-MX\n" -"X-Crowdin-File: /[inventree.InvenTree] l10/src/backend/InvenTree/locale/en/LC_MESSAGES/django.po\n" -"X-Crowdin-File-ID: 216\n" +"X-Crowdin-File: /src/backend/InvenTree/locale/en/LC_MESSAGES/django.po\n" +"X-Crowdin-File-ID: 250\n" -#: InvenTree/api.py:269 +#: InvenTree/api.py:270 msgid "API endpoint not found" msgstr "Endpoint de API no encontrado" -#: InvenTree/api.py:502 +#: InvenTree/api.py:387 +msgid "Invalid items list provided" +msgstr "" + +#: InvenTree/api.py:396 +msgid "Invalid filters provided" +msgstr "" + +#: InvenTree/api.py:401 +msgid "No items found to delete" +msgstr "" + +#: InvenTree/api.py:515 msgid "User does not have permission to view this model" msgstr "El usuario no tiene permiso para ver este modelo" -#: InvenTree/conversion.py:160 +#: InvenTree/conversion.py:161 #, python-brace-format msgid "Invalid unit provided ({unit})" msgstr "Unidad proporcionada no válida ({unit})" -#: InvenTree/conversion.py:177 +#: InvenTree/conversion.py:178 msgid "No value provided" msgstr "Ningún valor proporcionado" -#: InvenTree/conversion.py:204 +#: InvenTree/conversion.py:205 #, python-brace-format msgid "Could not convert {original} to {unit}" msgstr "No se pudo convertir {original} a {unit}" -#: InvenTree/conversion.py:206 -msgid "Invalid quantity supplied" -msgstr "La cantidad suministrada es inválida" +#: InvenTree/conversion.py:207 InvenTree/conversion.py:221 +#: InvenTree/helpers.py:505 order/models.py:589 order/models.py:832 +msgid "Invalid quantity provided" +msgstr "Cantidad proporcionada no válida" -#: InvenTree/conversion.py:220 -#, python-brace-format -msgid "Invalid quantity supplied ({exc})" -msgstr "La cantidad suministrada es inválida ({exc})" - -#: InvenTree/exceptions.py:108 +#: InvenTree/exceptions.py:104 msgid "Error details can be found in the admin panel" msgstr "Detalles del error pueden encontrarse en el panel de administración" -#: InvenTree/fields.py:136 +#: InvenTree/fields.py:135 msgid "Enter date" msgstr "Ingrese la fecha" -#: InvenTree/fields.py:205 InvenTree/models.py:929 build/serializers.py:468 -#: build/serializers.py:546 build/templates/build/sidebar.html:29 -#: company/models.py:836 +#: InvenTree/fields.py:204 InvenTree/models.py:928 build/serializers.py:512 +#: build/serializers.py:590 build/templates/build/sidebar.html:29 +#: company/models.py:833 #: company/templates/company/manufacturer_part_sidebar.html:11 #: company/templates/company/sidebar.html:37 -#: company/templates/company/supplier_part_sidebar.html:11 order/models.py:1380 +#: company/templates/company/supplier_part_sidebar.html:11 order/models.py:1397 #: order/templates/order/po_sidebar.html:11 #: order/templates/order/return_order_sidebar.html:9 #: order/templates/order/so_sidebar.html:17 part/admin.py:59 -#: part/models.py:3297 part/templates/part/part_sidebar.html:65 +#: part/models.py:3348 part/templates/part/part_sidebar.html:65 #: report/templates/report/inventree_build_order_report.html:172 -#: stock/admin.py:230 stock/models.py:2375 stock/models.py:2563 -#: stock/serializers.py:698 stock/serializers.py:856 stock/serializers.py:982 -#: stock/serializers.py:1032 stock/serializers.py:1343 -#: stock/serializers.py:1432 stock/serializers.py:1597 +#: stock/admin.py:231 stock/models.py:2494 stock/models.py:2679 +#: stock/serializers.py:725 stock/serializers.py:887 stock/serializers.py:1013 +#: stock/serializers.py:1063 stock/serializers.py:1374 +#: stock/serializers.py:1463 stock/serializers.py:1628 #: stock/templates/stock/stock_sidebar.html:25 #: templates/js/translated/barcode.js:143 templates/js/translated/bom.js:1265 -#: templates/js/translated/company.js:1684 templates/js/translated/order.js:372 +#: templates/js/translated/company.js:1685 templates/js/translated/order.js:372 #: templates/js/translated/part.js:1087 -#: templates/js/translated/purchase_order.js:2270 +#: templates/js/translated/purchase_order.js:2254 #: templates/js/translated/return_order.js:774 -#: templates/js/translated/sales_order.js:1103 -#: templates/js/translated/sales_order.js:2018 -#: templates/js/translated/stock.js:1621 templates/js/translated/stock.js:2513 +#: templates/js/translated/sales_order.js:1069 +#: templates/js/translated/sales_order.js:1999 +#: templates/js/translated/stock.js:1621 templates/js/translated/stock.js:2514 msgid "Notes" msgstr "Notas" -#: InvenTree/format.py:164 +#: InvenTree/format.py:162 #, python-brace-format msgid "Value '{name}' does not appear in pattern format" msgstr "El valor '{name}' no aparece en formato de patrón" -#: InvenTree/format.py:175 +#: InvenTree/format.py:173 msgid "Provided value does not match required pattern: " msgstr "El valor proporcionado no coincide con el patrón requerido: " @@ -132,397 +140,409 @@ msgstr "El registro ha sido desactivado." msgid "The provided primary email address is not valid." msgstr "La dirección de correo electrónico principal proporcionada no es válida." -#: InvenTree/forms.py:274 +#: InvenTree/forms.py:273 msgid "The provided email domain is not approved." msgstr "El dominio de correo electrónico proporcionado no está aprobado." -#: InvenTree/forms.py:403 +#: InvenTree/forms.py:402 msgid "Registration is disabled." msgstr "El registro ha sido desactivado." -#: InvenTree/helpers.py:491 order/models.py:567 order/models.py:810 -msgid "Invalid quantity provided" -msgstr "Cantidad proporcionada no válida" +#: InvenTree/helpers.py:509 +msgid "Cannot serialize more than 1000 items at once" +msgstr "" -#: InvenTree/helpers.py:499 +#: InvenTree/helpers.py:515 msgid "Empty serial number string" msgstr "No se ha proporcionado un número de serie" -#: InvenTree/helpers.py:528 +#: InvenTree/helpers.py:544 msgid "Duplicate serial" msgstr "Número de serie duplicado" -#: InvenTree/helpers.py:560 InvenTree/helpers.py:603 +#: InvenTree/helpers.py:576 InvenTree/helpers.py:619 InvenTree/helpers.py:637 +#: InvenTree/helpers.py:644 InvenTree/helpers.py:663 #, python-brace-format -msgid "Invalid group range: {group}" -msgstr "Rango de grupo inválido: {group}" +msgid "Invalid group: {group}" +msgstr "" -#: InvenTree/helpers.py:591 +#: InvenTree/helpers.py:607 #, python-brace-format msgid "Group range {group} exceeds allowed quantity ({expected_quantity})" msgstr "El rango del grupo {group} supera la cantidad permitida ({expected_quantity})" -#: InvenTree/helpers.py:621 InvenTree/helpers.py:628 InvenTree/helpers.py:647 -#, python-brace-format -msgid "Invalid group sequence: {group}" -msgstr "Secuencia de grupo inválida: {group}" - -#: InvenTree/helpers.py:657 +#: InvenTree/helpers.py:673 msgid "No serial numbers found" msgstr "No se encontraron números de serie" -#: InvenTree/helpers.py:662 +#: InvenTree/helpers.py:678 msgid "Number of unique serial numbers ({len(serials)}) must match quantity ({expected_quantity})" msgstr "Los números de serie únicos ({len(serials)}) deben coincidir con la cantidad ({expected_quantity})" -#: InvenTree/helpers.py:780 +#: InvenTree/helpers.py:796 msgid "Remove HTML tags from this value" msgstr "Elimine etiquetas HTML de este valor" -#: InvenTree/helpers_model.py:133 +#: InvenTree/helpers.py:881 +msgid "Data contains prohibited markdown content" +msgstr "" + +#: InvenTree/helpers_model.py:130 msgid "Connection error" msgstr "Error de conexión" -#: InvenTree/helpers_model.py:138 InvenTree/helpers_model.py:145 +#: InvenTree/helpers_model.py:135 InvenTree/helpers_model.py:142 msgid "Server responded with invalid status code" msgstr "El servidor respondió con un código de estado no válido" -#: InvenTree/helpers_model.py:141 +#: InvenTree/helpers_model.py:138 msgid "Exception occurred" msgstr "Se ha producido una excepción" -#: InvenTree/helpers_model.py:151 +#: InvenTree/helpers_model.py:148 msgid "Server responded with invalid Content-Length value" msgstr "El servidor respondió con un valor de longitud de contenido inválido" -#: InvenTree/helpers_model.py:154 +#: InvenTree/helpers_model.py:151 msgid "Image size is too large" msgstr "El tamaño de la imagen es demasiado grande" -#: InvenTree/helpers_model.py:166 +#: InvenTree/helpers_model.py:163 msgid "Image download exceeded maximum size" msgstr "La imagen descargada exedió el tamaño máximo" -#: InvenTree/helpers_model.py:171 +#: InvenTree/helpers_model.py:168 msgid "Remote server returned empty response" msgstr "El servidor remoto devolvió una respuesta vacía" -#: InvenTree/helpers_model.py:179 +#: InvenTree/helpers_model.py:176 msgid "Supplied URL is not a valid image file" msgstr "La URL proporcionada no es un archivo de imagen válido" -#: InvenTree/locales.py:18 +#: InvenTree/locales.py:20 msgid "Arabic" msgstr "Árabe" -#: InvenTree/locales.py:19 +#: InvenTree/locales.py:21 msgid "Bulgarian" msgstr "Búlgaro" -#: InvenTree/locales.py:20 +#: InvenTree/locales.py:22 msgid "Czech" msgstr "Checo" -#: InvenTree/locales.py:21 +#: InvenTree/locales.py:23 msgid "Danish" msgstr "Danés" -#: InvenTree/locales.py:22 +#: InvenTree/locales.py:24 msgid "German" msgstr "Alemán" -#: InvenTree/locales.py:23 +#: InvenTree/locales.py:25 msgid "Greek" msgstr "Griego" -#: InvenTree/locales.py:24 +#: InvenTree/locales.py:26 msgid "English" msgstr "Inglés" -#: InvenTree/locales.py:25 +#: InvenTree/locales.py:27 msgid "Spanish" msgstr "Español" -#: InvenTree/locales.py:26 +#: InvenTree/locales.py:28 msgid "Spanish (Mexican)" msgstr "Español (México)" -#: InvenTree/locales.py:27 +#: InvenTree/locales.py:29 msgid "Estonian" msgstr "Estonia" -#: InvenTree/locales.py:28 +#: InvenTree/locales.py:30 msgid "Farsi / Persian" msgstr "Farsi / Persa" -#: InvenTree/locales.py:29 +#: InvenTree/locales.py:31 msgid "Finnish" msgstr "Finlandés" -#: InvenTree/locales.py:30 +#: InvenTree/locales.py:32 msgid "French" msgstr "Francés" -#: InvenTree/locales.py:31 +#: InvenTree/locales.py:33 msgid "Hebrew" msgstr "Hebreo" -#: InvenTree/locales.py:32 +#: InvenTree/locales.py:34 msgid "Hindi" msgstr "Hindi" -#: InvenTree/locales.py:33 +#: InvenTree/locales.py:35 msgid "Hungarian" msgstr "Húngaro" -#: InvenTree/locales.py:34 +#: InvenTree/locales.py:36 msgid "Italian" msgstr "Italiano" -#: InvenTree/locales.py:35 +#: InvenTree/locales.py:37 msgid "Japanese" msgstr "Japonés" -#: InvenTree/locales.py:36 +#: InvenTree/locales.py:38 msgid "Korean" msgstr "Coreano" -#: InvenTree/locales.py:37 +#: InvenTree/locales.py:39 +msgid "Lithuanian" +msgstr "" + +#: InvenTree/locales.py:40 msgid "Latvian" msgstr "Letón" -#: InvenTree/locales.py:38 +#: InvenTree/locales.py:41 msgid "Dutch" msgstr "Holandés" -#: InvenTree/locales.py:39 +#: InvenTree/locales.py:42 msgid "Norwegian" msgstr "Noruego" -#: InvenTree/locales.py:40 +#: InvenTree/locales.py:43 msgid "Polish" msgstr "Polaco" -#: InvenTree/locales.py:41 +#: InvenTree/locales.py:44 msgid "Portuguese" msgstr "Portugués" -#: InvenTree/locales.py:42 +#: InvenTree/locales.py:45 msgid "Portuguese (Brazilian)" msgstr "Portugués (Brasileño)" -#: InvenTree/locales.py:43 +#: InvenTree/locales.py:46 msgid "Romanian" msgstr "Rumano" -#: InvenTree/locales.py:44 +#: InvenTree/locales.py:47 msgid "Russian" msgstr "Ruso" -#: InvenTree/locales.py:45 +#: InvenTree/locales.py:48 msgid "Slovak" msgstr "Eslovaco" -#: InvenTree/locales.py:46 +#: InvenTree/locales.py:49 msgid "Slovenian" msgstr "Esloveno" -#: InvenTree/locales.py:47 +#: InvenTree/locales.py:50 msgid "Serbian" msgstr "Serbio" -#: InvenTree/locales.py:48 +#: InvenTree/locales.py:51 msgid "Swedish" msgstr "Sueco" -#: InvenTree/locales.py:49 +#: InvenTree/locales.py:52 msgid "Thai" msgstr "Tailandés" -#: InvenTree/locales.py:50 +#: InvenTree/locales.py:53 msgid "Turkish" msgstr "Turco" -#: InvenTree/locales.py:51 +#: InvenTree/locales.py:54 msgid "Ukrainian" msgstr "Ucraniano" -#: InvenTree/locales.py:52 +#: InvenTree/locales.py:55 msgid "Vietnamese" msgstr "Vietnamita" -#: InvenTree/locales.py:53 +#: InvenTree/locales.py:56 msgid "Chinese (Simplified)" msgstr "Chino (Simplificado)" -#: InvenTree/locales.py:54 +#: InvenTree/locales.py:57 msgid "Chinese (Traditional)" msgstr "Chino (Tradicional)" #: InvenTree/magic_login.py:28 -#, python-brace-format -msgid "[{site_name}] Log in to the app" -msgstr "[{site_name}] Iniciar sesión en la aplicación" +msgid "Log in to the app" +msgstr "" -#: InvenTree/magic_login.py:38 InvenTree/serializers.py:415 -#: company/models.py:136 company/templates/company/company_base.html:138 +#: InvenTree/magic_login.py:38 InvenTree/serializers.py:416 +#: company/models.py:133 company/templates/company/company_base.html:138 #: templates/InvenTree/settings/user.html:49 -#: templates/js/translated/company.js:677 +#: templates/js/translated/company.js:678 msgid "Email" msgstr "Correo electrónico" -#: InvenTree/models.py:103 +#: InvenTree/models.py:105 msgid "Error running plugin validation" msgstr "Error al ejecutar la validación del plugin" -#: InvenTree/models.py:172 +#: InvenTree/models.py:174 msgid "Metadata must be a python dict object" msgstr "Los metadatos deben ser un objeto diccionario de python" -#: InvenTree/models.py:178 +#: InvenTree/models.py:180 msgid "Plugin Metadata" msgstr "Metadatos del complemento" -#: InvenTree/models.py:179 +#: InvenTree/models.py:181 msgid "JSON metadata field, for use by external plugins" msgstr "Campo de metadatos JSON, para uso por complementos externos" -#: InvenTree/models.py:409 +#: InvenTree/models.py:408 msgid "Improperly formatted pattern" msgstr "Patrón con formato incorrecto" -#: InvenTree/models.py:416 +#: InvenTree/models.py:415 msgid "Unknown format key specified" msgstr "Clave de formato especificado desconocida" -#: InvenTree/models.py:422 +#: InvenTree/models.py:421 msgid "Missing required format key" msgstr "Falta la clave de formato necesaria" -#: InvenTree/models.py:433 +#: InvenTree/models.py:432 msgid "Reference field cannot be empty" msgstr "El campo de servidor no puede estar vacío" -#: InvenTree/models.py:441 +#: InvenTree/models.py:440 msgid "Reference must match required pattern" msgstr "La referencia debe coincidir con el patrón requerido" -#: InvenTree/models.py:472 +#: InvenTree/models.py:471 msgid "Reference number is too large" msgstr "El número de referencia es demasiado grande" -#: InvenTree/models.py:723 +#: InvenTree/models.py:722 msgid "Duplicate names cannot exist under the same parent" msgstr "Los nombres duplicados no pueden existir bajo el mismo padre" -#: InvenTree/models.py:740 +#: InvenTree/models.py:739 msgid "Invalid choice" msgstr "Selección no válida" -#: InvenTree/models.py:770 common/models.py:2702 common/models.py:3132 -#: common/serializers.py:412 company/models.py:593 machine/models.py:24 -#: part/models.py:983 part/models.py:3764 plugin/models.py:51 -#: report/models.py:149 stock/models.py:77 +#: InvenTree/models.py:769 common/models.py:2766 common/models.py:3193 +#: common/models.py:3413 common/serializers.py:460 company/models.py:590 +#: machine/models.py:24 part/models.py:1044 part/models.py:3815 +#: plugin/models.py:51 report/models.py:149 stock/models.py:83 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/notifications.html:17 #: templates/InvenTree/settings/plugin.html:83 #: templates/InvenTree/settings/plugin_settings.html:22 #: templates/InvenTree/settings/settings_staff_js.html:67 #: templates/InvenTree/settings/settings_staff_js.html:454 -#: templates/js/translated/company.js:676 -#: templates/js/translated/company.js:724 -#: templates/js/translated/company.js:913 -#: templates/js/translated/company.js:1165 -#: templates/js/translated/company.js:1413 templates/js/translated/part.js:1193 +#: templates/js/translated/company.js:677 +#: templates/js/translated/company.js:725 +#: templates/js/translated/company.js:914 +#: templates/js/translated/company.js:1166 +#: templates/js/translated/company.js:1414 templates/js/translated/part.js:1193 #: templates/js/translated/part.js:1481 templates/js/translated/part.js:1617 -#: templates/js/translated/part.js:2768 templates/js/translated/stock.js:2801 +#: templates/js/translated/part.js:2768 templates/js/translated/stock.js:2802 msgid "Name" msgstr "Nombre" -#: InvenTree/models.py:776 build/models.py:250 -#: build/templates/build/detail.html:24 common/models.py:156 -#: company/models.py:521 company/models.py:827 +#: InvenTree/models.py:775 build/models.py:251 +#: build/templates/build/detail.html:24 common/models.py:159 +#: company/models.py:518 company/models.py:824 #: company/templates/company/company_base.html:77 #: company/templates/company/manufacturer_part.html:75 -#: company/templates/company/supplier_part.html:107 order/models.py:288 -#: order/models.py:1413 part/admin.py:305 part/admin.py:411 part/models.py:1006 -#: part/models.py:3779 part/templates/part/category.html:79 -#: part/templates/part/part_base.html:170 +#: company/templates/company/supplier_part.html:108 order/models.py:295 +#: order/models.py:1430 part/admin.py:305 part/admin.py:411 part/models.py:1067 +#: part/models.py:3830 part/templates/part/category.html:79 +#: part/templates/part/part_base.html:171 #: part/templates/part/part_scheduling.html:12 report/models.py:155 -#: report/models.py:509 report/models.py:535 +#: report/models.py:517 report/models.py:543 #: report/templates/report/inventree_build_order_report.html:117 -#: stock/admin.py:54 stock/models.py:83 stock/templates/stock/location.html:122 +#: stock/admin.py:54 stock/models.py:89 stock/templates/stock/location.html:123 #: templates/InvenTree/settings/notifications.html:19 #: templates/InvenTree/settings/plugin_settings.html:27 #: templates/InvenTree/settings/settings_staff_js.html:170 #: templates/InvenTree/settings/settings_staff_js.html:459 #: templates/js/translated/bom.js:633 templates/js/translated/bom.js:963 -#: templates/js/translated/build.js:2311 templates/js/translated/company.js:519 -#: templates/js/translated/company.js:1330 -#: templates/js/translated/company.js:1641 templates/js/translated/index.js:119 +#: templates/js/translated/build.js:2314 templates/js/translated/company.js:520 +#: templates/js/translated/company.js:1331 +#: templates/js/translated/company.js:1642 templates/js/translated/index.js:119 #: templates/js/translated/order.js:323 templates/js/translated/part.js:1245 #: templates/js/translated/part.js:1490 templates/js/translated/part.js:1628 #: templates/js/translated/part.js:1965 templates/js/translated/part.js:2361 #: templates/js/translated/part.js:2803 templates/js/translated/part.js:2915 #: templates/js/translated/plugin.js:80 -#: templates/js/translated/purchase_order.js:1776 -#: templates/js/translated/purchase_order.js:1919 -#: templates/js/translated/purchase_order.js:2092 +#: templates/js/translated/purchase_order.js:1760 +#: templates/js/translated/purchase_order.js:1903 +#: templates/js/translated/purchase_order.js:2076 #: templates/js/translated/return_order.js:313 -#: templates/js/translated/sales_order.js:838 -#: templates/js/translated/sales_order.js:1848 -#: templates/js/translated/stock.js:1600 templates/js/translated/stock.js:2143 -#: templates/js/translated/stock.js:2832 templates/js/translated/stock.js:2915 +#: templates/js/translated/sales_order.js:797 +#: templates/js/translated/sales_order.js:1829 +#: templates/js/translated/stock.js:1600 templates/js/translated/stock.js:2144 +#: templates/js/translated/stock.js:2833 templates/js/translated/stock.js:2916 msgid "Description" msgstr "Descripción" -#: InvenTree/models.py:777 stock/models.py:84 +#: InvenTree/models.py:776 stock/models.py:90 msgid "Description (optional)" msgstr "Descripción (opcional)" -#: InvenTree/models.py:792 templates/js/translated/part.js:2812 -#: templates/js/translated/stock.js:2841 +#: InvenTree/models.py:791 common/models.py:3546 +#: templates/js/translated/part.js:2812 templates/js/translated/stock.js:2842 msgid "Path" msgstr "Ruta" -#: InvenTree/models.py:929 +#: InvenTree/models.py:928 msgid "Markdown notes (optional)" msgstr "Notas (opcional)" -#: InvenTree/models.py:960 +#: InvenTree/models.py:959 msgid "Barcode Data" msgstr "Datos de código de barras" -#: InvenTree/models.py:961 +#: InvenTree/models.py:960 msgid "Third party barcode data" msgstr "Datos de código de barras de terceros" -#: InvenTree/models.py:967 +#: InvenTree/models.py:966 msgid "Barcode Hash" msgstr "Hash del Código de barras" -#: InvenTree/models.py:968 +#: InvenTree/models.py:967 msgid "Unique hash of barcode data" msgstr "Hash único de datos de código de barras" -#: InvenTree/models.py:1035 +#: InvenTree/models.py:1034 msgid "Existing barcode found" msgstr "Código de barras existente encontrado" -#: InvenTree/models.py:1078 +#: InvenTree/models.py:1112 +msgid "Task Failure" +msgstr "" + +#: InvenTree/models.py:1114 +#, python-brace-format +msgid "Background worker task '{instance.func}' failed after {n} attempts" +msgstr "" + +#: InvenTree/models.py:1142 msgid "Server Error" msgstr "Error de servidor" -#: InvenTree/models.py:1079 +#: InvenTree/models.py:1143 msgid "An error has been logged by the server." msgstr "Se ha registrado un error por el servidor." -#: InvenTree/serializers.py:63 part/models.py:4387 +#: InvenTree/serializers.py:63 part/models.py:4444 msgid "Must be a valid number" msgstr "Debe ser un número válido" -#: InvenTree/serializers.py:100 company/models.py:186 -#: company/templates/company/company_base.html:112 part/models.py:3115 +#: InvenTree/serializers.py:100 company/models.py:183 +#: company/templates/company/company_base.html:112 part/models.py:3166 #: templates/InvenTree/settings/settings_staff_js.html:44 #: templates/currency_data.html:5 msgid "Currency" @@ -532,15 +552,15 @@ msgstr "Moneda" msgid "Select currency from available options" msgstr "Seleccionar moneda de las opciones disponibles" -#: InvenTree/serializers.py:407 templates/InvenTree/settings/user.html:33 +#: InvenTree/serializers.py:405 templates/InvenTree/settings/user.html:33 msgid "Username" msgstr "Nombre de usuario" -#: InvenTree/serializers.py:409 templates/InvenTree/settings/user.html:37 +#: InvenTree/serializers.py:408 templates/InvenTree/settings/user.html:37 msgid "First Name" msgstr "Nombre" -#: InvenTree/serializers.py:409 +#: InvenTree/serializers.py:408 msgid "First name of the user" msgstr "Nombre de usuario" @@ -552,30 +572,30 @@ msgstr "Apellido" msgid "Last name of the user" msgstr "Apellido del usuario" -#: InvenTree/serializers.py:415 +#: InvenTree/serializers.py:416 msgid "Email address of the user" msgstr "Dirección de email del usuario" -#: InvenTree/serializers.py:439 +#: InvenTree/serializers.py:441 msgid "Staff" msgstr "Personal" -#: InvenTree/serializers.py:439 +#: InvenTree/serializers.py:441 msgid "Does this user have staff permissions" msgstr "Tiene permisos de personal este usuario" -#: InvenTree/serializers.py:442 +#: InvenTree/serializers.py:445 msgid "Superuser" msgstr "Superusuario" -#: InvenTree/serializers.py:442 +#: InvenTree/serializers.py:445 msgid "Is this user a superuser" msgstr "Este usuario es un superusuario" -#: InvenTree/serializers.py:445 common/models.py:2707 company/models.py:163 -#: company/models.py:801 machine/models.py:39 part/admin.py:88 -#: part/models.py:1189 plugin/models.py:66 -#: templates/js/translated/company.js:523 +#: InvenTree/serializers.py:449 common/models.py:2771 company/models.py:160 +#: company/models.py:798 machine/models.py:39 part/admin.py:88 +#: part/models.py:1250 plugin/models.py:66 +#: templates/js/translated/company.js:524 #: templates/js/translated/table_filters.js:134 #: templates/js/translated/table_filters.js:226 #: templates/js/translated/table_filters.js:513 @@ -585,230 +605,229 @@ msgstr "Este usuario es un superusuario" msgid "Active" msgstr "Activo" -#: InvenTree/serializers.py:445 +#: InvenTree/serializers.py:449 msgid "Is this user account active" msgstr "Esta cuenta de usuario está activa" -#: InvenTree/serializers.py:463 +#: InvenTree/serializers.py:467 msgid "You do not have permission to change this user role." msgstr "No tiene permiso para cambiar este cargo de usuario." -#: InvenTree/serializers.py:475 +#: InvenTree/serializers.py:503 msgid "Only superusers can create new users" msgstr "Solo los superusuarios pueden crear nuevos usuarios" -#: InvenTree/serializers.py:494 +#: InvenTree/serializers.py:523 msgid "Your account has been created." msgstr "Su cuenta ha sido creada." -#: InvenTree/serializers.py:496 +#: InvenTree/serializers.py:525 msgid "Please use the password reset function to login" msgstr "Por favor, utilice la función de restablecer la contraseña para iniciar sesión" -#: InvenTree/serializers.py:503 +#: InvenTree/serializers.py:531 msgid "Welcome to InvenTree" msgstr "Bienvenido a InvenTree" -#: InvenTree/serializers.py:561 +#: InvenTree/serializers.py:594 msgid "Invalid value" msgstr "Valor inválido" -#: InvenTree/serializers.py:581 importer/models.py:63 +#: InvenTree/serializers.py:614 importer/models.py:64 msgid "Data File" msgstr "Archivo de datos" -#: InvenTree/serializers.py:582 +#: InvenTree/serializers.py:615 msgid "Select data file for upload" msgstr "Seleccione el archivo para subir" -#: InvenTree/serializers.py:599 -msgid "Unsupported file type" -msgstr "Tipo de archivo no soportado" +#: InvenTree/serializers.py:632 common/files.py:63 +msgid "Unsupported file format" +msgstr "" -#: InvenTree/serializers.py:605 +#: InvenTree/serializers.py:638 msgid "File is too large" msgstr "El archivo es demasiado grande" -#: InvenTree/serializers.py:626 +#: InvenTree/serializers.py:659 msgid "No columns found in file" msgstr "No hay columnas en el archivo" -#: InvenTree/serializers.py:629 +#: InvenTree/serializers.py:662 msgid "No data rows found in file" msgstr "No hay filas de datos en el archivo" -#: InvenTree/serializers.py:742 +#: InvenTree/serializers.py:774 msgid "No data rows provided" msgstr "No se proporcionaron filas de datos" -#: InvenTree/serializers.py:745 +#: InvenTree/serializers.py:777 msgid "No data columns supplied" msgstr "No hay columnas de datos para suministrar" -#: InvenTree/serializers.py:812 +#: InvenTree/serializers.py:843 #, python-brace-format msgid "Missing required column: '{name}'" msgstr "Falta la columna requerida: '{name}'" -#: InvenTree/serializers.py:821 +#: InvenTree/serializers.py:852 #, python-brace-format msgid "Duplicate column: '{col}'" msgstr "Columna duplicada: '{col}'" -#: InvenTree/serializers.py:861 +#: InvenTree/serializers.py:891 msgid "Remote Image" msgstr "Imagen remota" -#: InvenTree/serializers.py:862 +#: InvenTree/serializers.py:892 msgid "URL of remote image file" msgstr "URL de imagen remota" -#: InvenTree/serializers.py:880 +#: InvenTree/serializers.py:910 msgid "Downloading images from remote URL is not enabled" msgstr "La descarga de imágenes desde la URL remota no está habilitada" -#: InvenTree/status.py:66 part/serializers.py:1246 -msgid "Background worker check failed" -msgstr "" - -#: InvenTree/status.py:70 -msgid "Email backend not configured" -msgstr "" - -#: InvenTree/status.py:73 -msgid "InvenTree system health checks failed" +#: InvenTree/serializers.py:917 +msgid "Failed to download image from remote URL" msgstr "" #: InvenTree/templatetags/inventree_extras.py:184 msgid "Unknown database" msgstr "" -#: InvenTree/validators.py:32 InvenTree/validators.py:34 +#: InvenTree/validators.py:32 msgid "Invalid physical unit" msgstr "" -#: InvenTree/validators.py:40 +#: InvenTree/validators.py:38 msgid "Not a valid currency code" msgstr "" -#: InvenTree/validators.py:118 InvenTree/validators.py:134 +#: InvenTree/validators.py:115 InvenTree/validators.py:131 msgid "Overage value must not be negative" msgstr "" -#: InvenTree/validators.py:136 +#: InvenTree/validators.py:133 msgid "Overage must not exceed 100%" msgstr "" -#: InvenTree/validators.py:142 +#: InvenTree/validators.py:139 msgid "Invalid value for overage" msgstr "" -#: InvenTree/views.py:400 templates/InvenTree/settings/user.html:23 +#: InvenTree/views.py:399 templates/InvenTree/settings/user.html:23 msgid "Edit User Information" msgstr "" -#: InvenTree/views.py:412 templates/InvenTree/settings/user.html:20 +#: InvenTree/views.py:411 templates/InvenTree/settings/user.html:20 msgid "Set Password" msgstr "" -#: InvenTree/views.py:434 +#: InvenTree/views.py:433 msgid "Password fields must match" msgstr "" -#: InvenTree/views.py:442 +#: InvenTree/views.py:441 msgid "Wrong password provided" msgstr "" -#: InvenTree/views.py:650 templates/navbar.html:160 +#: InvenTree/views.py:645 templates/navbar.html:160 msgid "System Information" msgstr "" -#: InvenTree/views.py:657 templates/navbar.html:171 +#: InvenTree/views.py:652 templates/navbar.html:171 msgid "About InvenTree" msgstr "" -#: build/api.py:51 part/api.py:156 stock/api.py:343 -msgid "Cascade" -msgstr "" - -#: build/api.py:64 build/models.py:261 -#: build/templates/build/build_base.html:191 +#: build/api.py:54 build/models.py:262 +#: build/templates/build/build_base.html:192 #: build/templates/build/detail.html:87 msgid "Parent Build" msgstr "" -#: build/api.py:89 order/api.py:92 templates/js/translated/table_filters.js:101 +#: build/api.py:58 build/api.py:625 order/api.py:396 order/api.py:611 +#: order/api.py:990 order/api.py:1187 +#: templates/js/translated/table_filters.js:372 +msgid "Include Variants" +msgstr "" + +#: build/api.py:93 +msgid "Ancestor Build" +msgstr "" + +#: build/api.py:112 order/api.py:90 +#: templates/js/translated/table_filters.js:101 #: templates/js/translated/table_filters.js:549 #: templates/js/translated/table_filters.js:633 #: templates/js/translated/table_filters.js:674 msgid "Assigned to me" msgstr "" -#: build/api.py:106 build/templates/build/build_base.html:205 +#: build/api.py:129 build/templates/build/build_base.html:206 #: build/templates/build/detail.html:115 #: report/templates/report/inventree_build_order_report.html:152 #: templates/js/translated/table_filters.js:552 msgid "Issued By" msgstr "" -#: build/api.py:125 +#: build/api.py:148 msgid "Assigned To" msgstr "" -#: build/api.py:301 +#: build/api.py:310 msgid "Build must be cancelled before it can be deleted" msgstr "" -#: build/api.py:345 build/serializers.py:1288 part/models.py:4265 +#: build/api.py:354 build/serializers.py:1342 part/models.py:4322 #: templates/js/translated/bom.js:997 templates/js/translated/bom.js:1037 -#: templates/js/translated/build.js:2702 +#: templates/js/translated/build.js:2711 #: templates/js/translated/table_filters.js:197 #: templates/js/translated/table_filters.js:586 msgid "Consumable" msgstr "" -#: build/api.py:346 build/serializers.py:1289 part/models.py:4259 +#: build/api.py:355 build/serializers.py:1343 part/models.py:4316 #: part/templates/part/upload_bom.html:58 templates/js/translated/bom.js:1001 -#: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2693 +#: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2702 #: templates/js/translated/table_filters.js:193 #: templates/js/translated/table_filters.js:222 #: templates/js/translated/table_filters.js:590 msgid "Optional" msgstr "" -#: build/api.py:347 common/models.py:1489 part/admin.py:91 part/admin.py:428 -#: part/models.py:1154 part/serializers.py:1575 +#: build/api.py:356 common/models.py:1558 part/admin.py:91 part/admin.py:428 +#: part/models.py:1215 part/serializers.py:1633 #: templates/js/translated/bom.js:1639 #: templates/js/translated/table_filters.js:337 #: templates/js/translated/table_filters.js:729 msgid "Assembly" msgstr "" -#: build/api.py:348 templates/js/translated/table_filters.js:415 +#: build/api.py:357 templates/js/translated/table_filters.js:415 #: templates/js/translated/table_filters.js:582 msgid "Tracked" msgstr "" -#: build/api.py:349 build/serializers.py:1290 part/models.py:1172 +#: build/api.py:358 build/serializers.py:1344 part/models.py:1233 #: templates/js/translated/table_filters.js:146 #: templates/js/translated/table_filters.js:779 msgid "Testable" msgstr "" -#: build/api.py:351 part/admin.py:144 templates/js/translated/build.js:1917 -#: templates/js/translated/build.js:2820 -#: templates/js/translated/sales_order.js:1965 +#: build/api.py:360 order/api.py:779 part/admin.py:144 +#: templates/js/translated/build.js:1920 templates/js/translated/build.js:2838 +#: templates/js/translated/sales_order.js:1946 #: templates/js/translated/table_filters.js:574 msgid "Allocated" msgstr "" -#: build/api.py:359 company/models.py:891 company/serializers.py:395 -#: company/templates/company/supplier_part.html:114 +#: build/api.py:368 company/models.py:888 company/serializers.py:399 +#: company/templates/company/supplier_part.html:115 #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:17 -#: templates/js/translated/bom.js:1162 templates/js/translated/build.js:2752 +#: templates/js/translated/bom.js:1162 templates/js/translated/build.js:2770 #: templates/js/translated/index.js:123 -#: templates/js/translated/model_renderers.js:235 +#: templates/js/translated/model_renderers.js:238 #: templates/js/translated/part.js:695 templates/js/translated/part.js:697 #: templates/js/translated/part.js:702 #: templates/js/translated/table_filters.js:347 @@ -816,16 +835,68 @@ msgstr "" msgid "Available" msgstr "" -#: build/models.py:86 build/templates/build/build_base.html:9 -#: build/templates/build/build_base.html:27 +#: build/api.py:640 build/models.py:268 build/serializers.py:1330 +#: build/templates/build/build_base.html:106 +#: build/templates/build/detail.html:29 company/models.py:1043 order/api.py:775 +#: order/api.py:1003 order/models.py:1519 order/models.py:1674 +#: order/models.py:1675 part/api.py:1495 part/api.py:1802 part/models.py:419 +#: part/models.py:3177 part/models.py:3321 part/models.py:3469 +#: part/models.py:3490 part/models.py:3512 part/models.py:3648 +#: part/models.py:3995 part/models.py:4158 part/models.py:4288 +#: part/models.py:4654 part/serializers.py:1245 part/serializers.py:1898 +#: part/templates/part/part_app_base.html:8 +#: part/templates/part/part_pricing.html:12 +#: part/templates/part/upload_bom.html:52 +#: report/templates/report/inventree_bill_of_materials_report.html:110 +#: report/templates/report/inventree_bill_of_materials_report.html:137 +#: report/templates/report/inventree_build_order_report.html:109 +#: report/templates/report/inventree_purchase_order_report.html:27 +#: report/templates/report/inventree_return_order_report.html:24 +#: report/templates/report/inventree_sales_order_report.html:27 +#: report/templates/report/inventree_sales_order_shipment_report.html:28 +#: report/templates/report/inventree_stock_location_report.html:102 +#: stock/serializers.py:112 stock/serializers.py:160 stock/serializers.py:456 +#: stock/serializers.py:947 templates/InvenTree/search.html:82 +#: templates/email/build_order_completed.html:17 +#: templates/email/build_order_required_stock.html:17 +#: templates/email/low_stock_notification.html:15 +#: templates/email/overdue_build_order.html:16 +#: templates/js/translated/barcode.js:577 templates/js/translated/bom.js:632 +#: templates/js/translated/bom.js:769 templates/js/translated/bom.js:905 +#: templates/js/translated/build.js:1005 templates/js/translated/build.js:1488 +#: templates/js/translated/build.js:1919 templates/js/translated/build.js:2337 +#: templates/js/translated/build.js:2514 templates/js/translated/company.js:349 +#: templates/js/translated/company.js:1117 +#: templates/js/translated/company.js:1272 +#: templates/js/translated/company.js:1560 templates/js/translated/index.js:109 +#: templates/js/translated/part.js:1950 templates/js/translated/part.js:2022 +#: templates/js/translated/part.js:2330 templates/js/translated/pricing.js:369 +#: templates/js/translated/purchase_order.js:734 +#: templates/js/translated/purchase_order.js:1350 +#: templates/js/translated/purchase_order.js:1902 +#: templates/js/translated/purchase_order.js:2061 +#: templates/js/translated/return_order.js:538 +#: templates/js/translated/return_order.js:708 +#: templates/js/translated/sales_order.js:1199 +#: templates/js/translated/sales_order.js:1608 +#: templates/js/translated/sales_order.js:1813 +#: templates/js/translated/stock.js:682 templates/js/translated/stock.js:848 +#: templates/js/translated/stock.js:1065 templates/js/translated/stock.js:2083 +#: templates/js/translated/stock.js:2942 templates/js/translated/stock.js:3175 +#: templates/js/translated/stock.js:3320 +msgid "Part" +msgstr "" + +#: build/api.py:662 build/models.py:88 build/templates/build/build_base.html:10 +#: build/templates/build/build_base.html:28 #: report/templates/report/inventree_build_order_report.html:105 -#: stock/serializers.py:84 templates/email/build_order_completed.html:16 +#: stock/serializers.py:85 templates/email/build_order_completed.html:16 #: templates/email/overdue_build_order.html:15 -#: templates/js/translated/build.js:1145 templates/js/translated/stock.js:2976 +#: templates/js/translated/build.js:1148 templates/js/translated/stock.js:2977 msgid "Build Order" msgstr "" -#: build/models.py:87 build/templates/build/build_base.html:13 +#: build/models.py:89 build/templates/build/build_base.html:14 #: build/templates/build/index.html:8 build/templates/build/index.html:12 #: order/templates/order/sales_order_detail.html:111 #: order/templates/order/so_sidebar.html:13 @@ -836,268 +907,216 @@ msgstr "" msgid "Build Orders" msgstr "" -#: build/models.py:135 +#: build/models.py:136 msgid "Assembly BOM has not been validated" msgstr "" -#: build/models.py:142 +#: build/models.py:143 msgid "Build order cannot be created for an inactive part" msgstr "" -#: build/models.py:149 +#: build/models.py:150 msgid "Build order cannot be created for an unlocked part" msgstr "" -#: build/models.py:163 +#: build/models.py:164 msgid "Invalid choice for parent build" msgstr "" -#: build/models.py:174 order/models.py:239 +#: build/models.py:175 order/models.py:236 msgid "Responsible user or group must be specified" msgstr "" -#: build/models.py:180 +#: build/models.py:181 msgid "Build order part cannot be changed" msgstr "" -#: build/models.py:241 +#: build/models.py:242 msgid "Build Order Reference" msgstr "" -#: build/models.py:242 build/serializers.py:1287 order/models.py:467 -#: order/models.py:978 order/models.py:1373 order/models.py:2135 -#: part/admin.py:414 part/models.py:4280 part/templates/part/upload_bom.html:54 +#: build/models.py:243 build/serializers.py:1341 order/models.py:479 +#: order/models.py:1005 order/models.py:1390 order/models.py:2174 +#: part/admin.py:414 part/models.py:4337 part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_bill_of_materials_report.html:139 #: report/templates/report/inventree_purchase_order_report.html:28 #: report/templates/report/inventree_return_order_report.html:26 #: report/templates/report/inventree_sales_order_report.html:28 #: templates/js/translated/bom.js:770 templates/js/translated/bom.js:973 -#: templates/js/translated/build.js:1011 templates/js/translated/build.js:2685 +#: templates/js/translated/build.js:1014 templates/js/translated/build.js:2694 #: templates/js/translated/order.js:316 templates/js/translated/pricing.js:386 -#: templates/js/translated/purchase_order.js:2135 +#: templates/js/translated/purchase_order.js:2119 #: templates/js/translated/return_order.js:727 -#: templates/js/translated/sales_order.js:1854 +#: templates/js/translated/sales_order.js:1835 msgid "Reference" msgstr "" -#: build/models.py:253 +#: build/models.py:254 msgid "Brief description of the build (optional)" msgstr "" -#: build/models.py:262 +#: build/models.py:263 msgid "BuildOrder to which this build is allocated" msgstr "" -#: build/models.py:267 build/serializers.py:1278 -#: build/templates/build/build_base.html:105 -#: build/templates/build/detail.html:29 company/models.py:1046 order/api.py:767 -#: order/models.py:1503 order/models.py:1658 order/models.py:1659 -#: part/api.py:1509 part/api.py:1813 part/models.py:424 part/models.py:3126 -#: part/models.py:3270 part/models.py:3418 part/models.py:3439 -#: part/models.py:3461 part/models.py:3597 part/models.py:3937 -#: part/models.py:4100 part/models.py:4231 part/models.py:4592 -#: part/serializers.py:1192 part/serializers.py:1836 -#: part/templates/part/part_app_base.html:8 -#: part/templates/part/part_pricing.html:12 -#: part/templates/part/upload_bom.html:52 -#: report/templates/report/inventree_bill_of_materials_report.html:110 -#: report/templates/report/inventree_bill_of_materials_report.html:137 -#: report/templates/report/inventree_build_order_report.html:109 -#: report/templates/report/inventree_purchase_order_report.html:27 -#: report/templates/report/inventree_return_order_report.html:24 -#: report/templates/report/inventree_sales_order_report.html:27 -#: report/templates/report/inventree_stock_location_report.html:102 -#: stock/serializers.py:111 stock/serializers.py:159 stock/serializers.py:446 -#: stock/serializers.py:916 templates/InvenTree/search.html:82 -#: templates/email/build_order_completed.html:17 -#: templates/email/build_order_required_stock.html:17 -#: templates/email/low_stock_notification.html:15 -#: templates/email/overdue_build_order.html:16 -#: templates/js/translated/barcode.js:577 templates/js/translated/bom.js:632 -#: templates/js/translated/bom.js:769 templates/js/translated/bom.js:905 -#: templates/js/translated/build.js:1002 templates/js/translated/build.js:1485 -#: templates/js/translated/build.js:1916 templates/js/translated/build.js:2334 -#: templates/js/translated/build.js:2507 templates/js/translated/company.js:348 -#: templates/js/translated/company.js:1116 -#: templates/js/translated/company.js:1271 -#: templates/js/translated/company.js:1559 templates/js/translated/index.js:109 -#: templates/js/translated/part.js:1950 templates/js/translated/part.js:2022 -#: templates/js/translated/part.js:2330 templates/js/translated/pricing.js:369 -#: templates/js/translated/purchase_order.js:751 -#: templates/js/translated/purchase_order.js:1367 -#: templates/js/translated/purchase_order.js:1918 -#: templates/js/translated/purchase_order.js:2077 -#: templates/js/translated/return_order.js:538 -#: templates/js/translated/return_order.js:708 -#: templates/js/translated/sales_order.js:300 -#: templates/js/translated/sales_order.js:1233 -#: templates/js/translated/sales_order.js:1634 -#: templates/js/translated/sales_order.js:1832 -#: templates/js/translated/stock.js:682 templates/js/translated/stock.js:848 -#: templates/js/translated/stock.js:1065 templates/js/translated/stock.js:2082 -#: templates/js/translated/stock.js:2941 templates/js/translated/stock.js:3174 -#: templates/js/translated/stock.js:3319 -msgid "Part" -msgstr "" - -#: build/models.py:275 +#: build/models.py:274 msgid "Select part to build" msgstr "" -#: build/models.py:280 +#: build/models.py:279 msgid "Sales Order Reference" msgstr "" -#: build/models.py:284 +#: build/models.py:283 msgid "SalesOrder to which this build is allocated" msgstr "" -#: build/models.py:289 build/serializers.py:1048 -#: templates/js/translated/build.js:1904 -#: templates/js/translated/sales_order.js:1221 +#: build/models.py:288 build/serializers.py:1092 +#: templates/js/translated/build.js:1907 +#: templates/js/translated/sales_order.js:1187 msgid "Source Location" msgstr "" -#: build/models.py:293 +#: build/models.py:292 msgid "Select location to take stock from for this build (leave blank to take from any stock location)" msgstr "" -#: build/models.py:298 +#: build/models.py:297 msgid "Destination Location" msgstr "" -#: build/models.py:302 +#: build/models.py:301 msgid "Select location where the completed items will be stored" msgstr "" -#: build/models.py:306 +#: build/models.py:305 msgid "Build Quantity" msgstr "" -#: build/models.py:309 +#: build/models.py:308 msgid "Number of stock items to build" msgstr "" -#: build/models.py:313 +#: build/models.py:312 msgid "Completed items" msgstr "" -#: build/models.py:315 +#: build/models.py:314 msgid "Number of stock items which have been completed" msgstr "" -#: build/models.py:319 +#: build/models.py:318 msgid "Build Status" msgstr "" -#: build/models.py:323 +#: build/models.py:322 msgid "Build status code" msgstr "" -#: build/models.py:332 build/serializers.py:302 build/serializers.py:1198 -#: order/serializers.py:670 stock/models.py:859 stock/serializers.py:76 -#: stock/serializers.py:1562 templates/js/translated/purchase_order.js:1129 +#: build/models.py:331 build/serializers.py:349 build/serializers.py:1243 +#: order/serializers.py:755 stock/models.py:936 stock/serializers.py:77 +#: stock/serializers.py:1593 templates/js/translated/purchase_order.js:1112 #: templates/js/translated/stock.js:1199 msgid "Batch Code" msgstr "" -#: build/models.py:336 build/serializers.py:303 +#: build/models.py:335 build/serializers.py:350 msgid "Batch code for this build output" msgstr "" -#: build/models.py:339 order/models.py:315 order/serializers.py:126 -#: part/models.py:1229 part/templates/part/part_base.html:319 +#: build/models.py:338 order/models.py:322 order/serializers.py:157 +#: part/models.py:1290 part/templates/part/part_base.html:327 #: templates/js/translated/return_order.js:338 -#: templates/js/translated/sales_order.js:863 +#: templates/js/translated/sales_order.js:822 msgid "Creation Date" msgstr "" -#: build/models.py:343 +#: build/models.py:342 msgid "Target completion date" msgstr "" -#: build/models.py:344 +#: build/models.py:343 msgid "Target date for build completion. Build will be overdue after this date." msgstr "" -#: build/models.py:347 order/models.py:526 order/models.py:2180 -#: templates/js/translated/build.js:2419 +#: build/models.py:346 order/models.py:538 order/models.py:2219 +#: templates/js/translated/build.js:2422 msgid "Completion Date" msgstr "" -#: build/models.py:353 +#: build/models.py:352 msgid "completed by" msgstr "" -#: build/models.py:361 templates/js/translated/build.js:2379 +#: build/models.py:360 templates/js/translated/build.js:2382 msgid "Issued by" msgstr "" -#: build/models.py:362 +#: build/models.py:361 msgid "User who issued this build order" msgstr "" -#: build/models.py:370 build/templates/build/build_base.html:212 -#: build/templates/build/detail.html:122 common/models.py:165 order/api.py:142 -#: order/models.py:333 order/templates/order/order_base.html:222 -#: order/templates/order/return_order_base.html:191 -#: order/templates/order/sales_order_base.html:235 part/models.py:1246 -#: part/templates/part/part_base.html:399 +#: build/models.py:369 build/templates/build/build_base.html:213 +#: build/templates/build/detail.html:122 common/models.py:168 order/api.py:140 +#: order/models.py:340 order/templates/order/order_base.html:231 +#: order/templates/order/return_order_base.html:192 +#: order/templates/order/sales_order_base.html:236 part/models.py:1307 +#: part/templates/part/part_base.html:407 #: report/templates/report/inventree_build_order_report.html:158 #: templates/InvenTree/settings/settings_staff_js.html:150 -#: templates/js/translated/build.js:2391 -#: templates/js/translated/purchase_order.js:1833 +#: templates/js/translated/build.js:2394 +#: templates/js/translated/purchase_order.js:1817 #: templates/js/translated/return_order.js:358 #: templates/js/translated/table_filters.js:551 msgid "Responsible" msgstr "" -#: build/models.py:371 +#: build/models.py:370 msgid "User or group responsible for this build order" msgstr "" -#: build/models.py:376 build/templates/build/detail.html:108 +#: build/models.py:375 build/templates/build/detail.html:108 #: company/templates/company/manufacturer_part.html:107 -#: company/templates/company/supplier_part.html:194 -#: order/templates/order/order_base.html:172 -#: order/templates/order/return_order_base.html:148 -#: order/templates/order/sales_order_base.html:187 -#: part/templates/part/part_base.html:392 stock/models.py:855 -#: stock/templates/stock/item_base.html:200 -#: templates/js/translated/company.js:1019 +#: company/templates/company/supplier_part.html:195 +#: order/templates/order/order_base.html:181 +#: order/templates/order/return_order_base.html:149 +#: order/templates/order/sales_order_base.html:188 +#: part/templates/part/part_base.html:400 stock/models.py:932 +#: stock/templates/stock/item_base.html:197 +#: templates/js/translated/company.js:1020 msgid "External Link" msgstr "" -#: build/models.py:377 common/models.py:3273 part/models.py:1058 -#: stock/models.py:855 +#: build/models.py:376 common/models.py:3334 part/models.py:1119 +#: stock/models.py:932 msgid "Link to external URL" msgstr "" -#: build/models.py:381 +#: build/models.py:380 msgid "Build Priority" msgstr "" -#: build/models.py:384 +#: build/models.py:383 msgid "Priority of this build order" msgstr "" -#: build/models.py:391 common/models.py:135 common/models.py:149 -#: order/admin.py:18 order/api.py:128 order/models.py:297 +#: build/models.py:390 common/models.py:138 common/models.py:152 +#: order/admin.py:18 order/api.py:126 order/models.py:304 #: templates/InvenTree/settings/settings_staff_js.html:146 -#: templates/js/translated/build.js:2316 -#: templates/js/translated/purchase_order.js:1780 +#: templates/js/translated/build.js:2319 +#: templates/js/translated/purchase_order.js:1764 #: templates/js/translated/return_order.js:317 -#: templates/js/translated/sales_order.js:842 +#: templates/js/translated/sales_order.js:801 #: templates/js/translated/table_filters.js:47 #: templates/project_code_data.html:6 msgid "Project Code" msgstr "" -#: build/models.py:392 +#: build/models.py:391 msgid "Project code for this build order" msgstr "" -#: build/models.py:651 build/models.py:778 +#: build/models.py:651 build/models.py:779 msgid "Failed to offload task to complete build allocations" msgstr "" @@ -1110,610 +1129,619 @@ msgstr "" msgid "A build order has been completed" msgstr "" -#: build/models.py:967 build/models.py:1055 +#: build/models.py:858 build/serializers.py:393 +msgid "Serial numbers must be provided for trackable parts" +msgstr "" + +#: build/models.py:969 build/models.py:1058 msgid "No build output specified" msgstr "" -#: build/models.py:970 +#: build/models.py:972 msgid "Build output is already completed" msgstr "" -#: build/models.py:973 +#: build/models.py:975 msgid "Build output does not match Build Order" msgstr "" -#: build/models.py:1059 build/serializers.py:235 build/serializers.py:284 -#: build/serializers.py:915 order/models.py:564 order/serializers.py:499 -#: order/serializers.py:665 part/serializers.py:1569 part/serializers.py:1999 -#: stock/models.py:700 stock/models.py:1520 stock/serializers.py:669 +#: build/models.py:1062 build/serializers.py:282 build/serializers.py:331 +#: build/serializers.py:959 order/models.py:586 order/serializers.py:584 +#: order/serializers.py:750 part/serializers.py:1627 part/serializers.py:2060 +#: stock/models.py:777 stock/models.py:1609 stock/serializers.py:696 msgid "Quantity must be greater than zero" msgstr "" -#: build/models.py:1064 build/serializers.py:240 +#: build/models.py:1067 build/serializers.py:287 msgid "Quantity cannot be greater than the output quantity" msgstr "" -#: build/models.py:1124 build/serializers.py:563 +#: build/models.py:1127 build/serializers.py:607 #, python-brace-format msgid "Build output {serial} has not passed all required tests" msgstr "" -#: build/models.py:1465 +#: build/models.py:1482 msgid "Build Order Line Item" msgstr "" -#: build/models.py:1490 +#: build/models.py:1507 msgid "Build object" msgstr "" -#: build/models.py:1504 build/models.py:1760 build/serializers.py:222 -#: build/serializers.py:269 build/serializers.py:1295 -#: build/templates/build/build_base.html:110 -#: build/templates/build/detail.html:34 common/models.py:2579 -#: order/models.py:1356 order/models.py:2041 order/serializers.py:1460 +#: build/models.py:1521 build/models.py:1787 build/serializers.py:269 +#: build/serializers.py:316 build/serializers.py:1349 +#: build/templates/build/build_base.html:111 +#: build/templates/build/detail.html:34 common/models.py:2643 +#: order/models.py:1373 order/models.py:2074 order/serializers.py:1586 #: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:413 -#: part/forms.py:48 part/models.py:3284 part/models.py:4253 -#: part/templates/part/part_pricing.html:16 +#: part/forms.py:48 part/models.py:3335 part/models.py:4310 +#: part/serializers.py:265 part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_bill_of_materials_report.html:138 #: report/templates/report/inventree_build_order_report.html:113 #: report/templates/report/inventree_purchase_order_report.html:29 #: report/templates/report/inventree_sales_order_report.html:29 +#: report/templates/report/inventree_sales_order_shipment_report.html:47 +#: report/templates/report/inventree_sales_order_shipment_report.html:49 #: report/templates/report/inventree_stock_location_report.html:104 #: report/templates/report/inventree_test_report.html:90 -#: report/templates/report/inventree_test_report.html:169 stock/admin.py:159 -#: stock/serializers.py:127 stock/serializers.py:167 stock/serializers.py:660 -#: stock/templates/stock/item_base.html:287 -#: stock/templates/stock/item_base.html:295 -#: stock/templates/stock/item_base.html:342 +#: report/templates/report/inventree_test_report.html:169 stock/admin.py:160 +#: stock/serializers.py:128 stock/serializers.py:168 stock/serializers.py:687 +#: stock/templates/stock/item_base.html:284 +#: stock/templates/stock/item_base.html:292 +#: stock/templates/stock/item_base.html:339 #: templates/email/build_order_completed.html:18 #: templates/js/translated/barcode.js:579 templates/js/translated/bom.js:771 -#: templates/js/translated/bom.js:981 templates/js/translated/build.js:522 -#: templates/js/translated/build.js:737 templates/js/translated/build.js:1542 -#: templates/js/translated/build.js:1919 templates/js/translated/build.js:2529 -#: templates/js/translated/company.js:1818 -#: templates/js/translated/model_renderers.js:237 +#: templates/js/translated/bom.js:981 templates/js/translated/build.js:525 +#: templates/js/translated/build.js:740 templates/js/translated/build.js:1545 +#: templates/js/translated/build.js:1922 templates/js/translated/build.js:2536 +#: templates/js/translated/company.js:1819 +#: templates/js/translated/model_renderers.js:240 #: templates/js/translated/order.js:329 templates/js/translated/part.js:968 -#: templates/js/translated/part.js:1818 templates/js/translated/part.js:3360 +#: templates/js/translated/part.js:1818 templates/js/translated/part.js:3376 #: templates/js/translated/pricing.js:381 #: templates/js/translated/pricing.js:474 #: templates/js/translated/pricing.js:522 #: templates/js/translated/pricing.js:616 -#: templates/js/translated/purchase_order.js:754 -#: templates/js/translated/purchase_order.js:1922 -#: templates/js/translated/purchase_order.js:2141 -#: templates/js/translated/sales_order.js:317 -#: templates/js/translated/sales_order.js:1235 -#: templates/js/translated/sales_order.js:1554 -#: templates/js/translated/sales_order.js:1644 -#: templates/js/translated/sales_order.js:1734 -#: templates/js/translated/sales_order.js:1860 +#: templates/js/translated/purchase_order.js:737 +#: templates/js/translated/purchase_order.js:1906 +#: templates/js/translated/purchase_order.js:2125 +#: templates/js/translated/sales_order.js:1201 +#: templates/js/translated/sales_order.js:1520 +#: templates/js/translated/sales_order.js:1625 +#: templates/js/translated/sales_order.js:1715 +#: templates/js/translated/sales_order.js:1841 #: templates/js/translated/stock.js:570 templates/js/translated/stock.js:708 -#: templates/js/translated/stock.js:879 templates/js/translated/stock.js:3105 -#: templates/js/translated/stock.js:3188 +#: templates/js/translated/stock.js:879 templates/js/translated/stock.js:3106 +#: templates/js/translated/stock.js:3189 msgid "Quantity" msgstr "" -#: build/models.py:1505 +#: build/models.py:1522 msgid "Required quantity for build order" msgstr "" -#: build/models.py:1585 +#: build/models.py:1602 msgid "Build item must specify a build output, as master part is marked as trackable" msgstr "" -#: build/models.py:1594 +#: build/models.py:1611 #, python-brace-format msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgstr "" -#: build/models.py:1604 order/models.py:1992 +#: build/models.py:1628 order/models.py:2025 msgid "Stock item is over-allocated" msgstr "" -#: build/models.py:1610 order/models.py:1995 +#: build/models.py:1634 order/models.py:2028 msgid "Allocation quantity must be greater than zero" msgstr "" -#: build/models.py:1616 +#: build/models.py:1640 msgid "Quantity must be 1 for serialized stock" msgstr "" -#: build/models.py:1675 +#: build/models.py:1699 msgid "Selected stock item does not match BOM line" msgstr "" -#: build/models.py:1747 build/serializers.py:895 order/serializers.py:1297 -#: order/serializers.py:1318 stock/models.py:376 stock/serializers.py:93 -#: stock/serializers.py:763 stock/serializers.py:1281 stock/serializers.py:1393 -#: stock/templates/stock/item_base.html:10 -#: stock/templates/stock/item_base.html:23 -#: stock/templates/stock/item_base.html:194 -#: templates/js/translated/build.js:1918 -#: templates/js/translated/sales_order.js:301 -#: templates/js/translated/sales_order.js:1234 -#: templates/js/translated/sales_order.js:1535 -#: templates/js/translated/sales_order.js:1540 -#: templates/js/translated/sales_order.js:1641 -#: templates/js/translated/sales_order.js:1728 +#: build/models.py:1774 build/serializers.py:939 order/serializers.py:1423 +#: order/serializers.py:1444 +#: report/templates/report/inventree_sales_order_shipment_report.html:29 +#: stock/models.py:382 stock/serializers.py:94 stock/serializers.py:794 +#: stock/serializers.py:1312 stock/serializers.py:1424 +#: stock/templates/stock/item_base.html:11 +#: stock/templates/stock/item_base.html:24 +#: stock/templates/stock/item_base.html:191 +#: templates/js/translated/build.js:1921 +#: templates/js/translated/sales_order.js:1200 +#: templates/js/translated/sales_order.js:1501 +#: templates/js/translated/sales_order.js:1506 +#: templates/js/translated/sales_order.js:1622 +#: templates/js/translated/sales_order.js:1709 #: templates/js/translated/stock.js:683 templates/js/translated/stock.js:849 -#: templates/js/translated/stock.js:3061 +#: templates/js/translated/stock.js:3062 msgid "Stock Item" msgstr "" -#: build/models.py:1748 +#: build/models.py:1775 msgid "Source stock item" msgstr "" -#: build/models.py:1761 +#: build/models.py:1788 msgid "Stock quantity to allocate to build" msgstr "" -#: build/models.py:1769 +#: build/models.py:1796 msgid "Install into" msgstr "" -#: build/models.py:1770 +#: build/models.py:1797 msgid "Destination stock item" msgstr "" -#: build/serializers.py:91 +#: build/serializers.py:108 msgid "Build Level" msgstr "" -#: build/serializers.py:99 build/serializers.py:1190 build/serializers.py:1279 -#: part/admin.py:41 part/admin.py:408 part/models.py:4102 part/stocktake.py:219 -#: stock/admin.py:156 +#: build/serializers.py:116 build/serializers.py:1235 build/serializers.py:1331 +#: part/admin.py:41 part/admin.py:408 part/models.py:4160 part/stocktake.py:219 +#: stock/admin.py:157 msgid "Part Name" msgstr "" -#: build/serializers.py:111 +#: build/serializers.py:128 msgid "Project Code Label" msgstr "" -#: build/serializers.py:172 build/serializers.py:924 -#: templates/js/translated/build.js:1042 templates/js/translated/build.js:1495 +#: build/serializers.py:134 +msgid "Create Child Builds" +msgstr "" + +#: build/serializers.py:135 +msgid "Automatically generate child build orders" +msgstr "" + +#: build/serializers.py:219 build/serializers.py:968 +#: templates/js/translated/build.js:1045 templates/js/translated/build.js:1498 msgid "Build Output" msgstr "" -#: build/serializers.py:184 +#: build/serializers.py:231 msgid "Build output does not match the parent build" msgstr "" -#: build/serializers.py:188 +#: build/serializers.py:235 msgid "Output part does not match BuildOrder part" msgstr "" -#: build/serializers.py:192 +#: build/serializers.py:239 msgid "This build output has already been completed" msgstr "" -#: build/serializers.py:203 +#: build/serializers.py:250 msgid "This build output is not fully allocated" msgstr "" -#: build/serializers.py:223 build/serializers.py:270 +#: build/serializers.py:270 build/serializers.py:317 msgid "Enter quantity for build output" msgstr "" -#: build/serializers.py:291 +#: build/serializers.py:338 msgid "Integer quantity required for trackable parts" msgstr "" -#: build/serializers.py:294 +#: build/serializers.py:341 msgid "Integer quantity required, as the bill of materials contains trackable parts" msgstr "" -#: build/serializers.py:309 order/serializers.py:678 order/serializers.py:1464 -#: stock/serializers.py:680 templates/js/translated/purchase_order.js:1154 +#: build/serializers.py:356 order/serializers.py:763 order/serializers.py:1590 +#: stock/serializers.py:707 templates/js/translated/purchase_order.js:1137 #: templates/js/translated/stock.js:373 templates/js/translated/stock.js:571 msgid "Serial Numbers" msgstr "" -#: build/serializers.py:310 +#: build/serializers.py:357 msgid "Enter serial numbers for build outputs" msgstr "" -#: build/serializers.py:315 build/serializers.py:456 build/serializers.py:528 -#: order/serializers.py:654 order/serializers.py:778 order/serializers.py:1781 -#: part/serializers.py:1212 stock/serializers.py:102 stock/serializers.py:691 -#: stock/serializers.py:851 stock/serializers.py:977 stock/serializers.py:1425 -#: stock/serializers.py:1681 stock/templates/stock/item_base.html:394 +#: build/serializers.py:362 build/serializers.py:500 build/serializers.py:572 +#: order/serializers.py:739 order/serializers.py:880 order/serializers.py:1933 +#: part/serializers.py:1265 stock/serializers.py:103 stock/serializers.py:718 +#: stock/serializers.py:882 stock/serializers.py:1008 stock/serializers.py:1456 +#: stock/serializers.py:1712 stock/templates/stock/item_base.html:391 #: templates/js/translated/barcode.js:578 -#: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1032 -#: templates/js/translated/build.js:1174 templates/js/translated/build.js:2544 -#: templates/js/translated/purchase_order.js:1210 -#: templates/js/translated/purchase_order.js:1320 -#: templates/js/translated/sales_order.js:1547 -#: templates/js/translated/sales_order.js:1655 -#: templates/js/translated/sales_order.js:1663 -#: templates/js/translated/sales_order.js:1742 +#: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1035 +#: templates/js/translated/build.js:1177 templates/js/translated/build.js:2551 +#: templates/js/translated/purchase_order.js:1193 +#: templates/js/translated/purchase_order.js:1303 +#: templates/js/translated/sales_order.js:1513 +#: templates/js/translated/sales_order.js:1636 +#: templates/js/translated/sales_order.js:1644 +#: templates/js/translated/sales_order.js:1723 #: templates/js/translated/stock.js:684 templates/js/translated/stock.js:850 -#: templates/js/translated/stock.js:1067 templates/js/translated/stock.js:2286 -#: templates/js/translated/stock.js:2955 +#: templates/js/translated/stock.js:1067 templates/js/translated/stock.js:2287 +#: templates/js/translated/stock.js:2956 msgid "Location" msgstr "" -#: build/serializers.py:316 +#: build/serializers.py:363 msgid "Stock location for build output" msgstr "" -#: build/serializers.py:330 +#: build/serializers.py:377 msgid "Auto Allocate Serial Numbers" msgstr "" -#: build/serializers.py:331 +#: build/serializers.py:378 msgid "Automatically allocate required items with matching serial numbers" msgstr "" -#: build/serializers.py:346 -msgid "Serial numbers must be provided for trackable parts" -msgstr "" - -#: build/serializers.py:371 stock/api.py:1031 +#: build/serializers.py:415 order/serializers.py:858 stock/api.py:1017 +#: stock/models.py:1632 msgid "The following serial numbers already exist or are invalid" msgstr "" -#: build/serializers.py:418 build/serializers.py:480 build/serializers.py:569 +#: build/serializers.py:462 build/serializers.py:524 build/serializers.py:613 msgid "A list of build outputs must be provided" msgstr "" -#: build/serializers.py:457 +#: build/serializers.py:501 msgid "Stock location for scrapped outputs" msgstr "" -#: build/serializers.py:463 +#: build/serializers.py:507 msgid "Discard Allocations" msgstr "" -#: build/serializers.py:464 +#: build/serializers.py:508 msgid "Discard any stock allocations for scrapped outputs" msgstr "" -#: build/serializers.py:469 +#: build/serializers.py:513 msgid "Reason for scrapping build output(s)" msgstr "" -#: build/serializers.py:529 +#: build/serializers.py:573 msgid "Location for completed build outputs" msgstr "" -#: build/serializers.py:535 build/templates/build/build_base.html:159 -#: build/templates/build/detail.html:62 order/models.py:476 -#: order/models.py:1002 order/models.py:2159 order/serializers.py:686 -#: stock/admin.py:164 stock/serializers.py:1028 stock/serializers.py:1569 -#: stock/templates/stock/item_base.html:427 -#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2363 -#: templates/js/translated/purchase_order.js:1371 -#: templates/js/translated/purchase_order.js:1792 +#: build/serializers.py:579 build/templates/build/build_base.html:160 +#: build/templates/build/detail.html:62 order/models.py:488 +#: order/models.py:1029 order/models.py:2198 order/serializers.py:771 +#: stock/admin.py:165 stock/serializers.py:581 stock/serializers.py:1059 +#: stock/serializers.py:1600 stock/templates/stock/item_base.html:424 +#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2366 +#: templates/js/translated/purchase_order.js:1354 +#: templates/js/translated/purchase_order.js:1776 #: templates/js/translated/return_order.js:330 -#: templates/js/translated/sales_order.js:855 -#: templates/js/translated/stock.js:2261 templates/js/translated/stock.js:3079 -#: templates/js/translated/stock.js:3204 +#: templates/js/translated/sales_order.js:814 +#: templates/js/translated/stock.js:2262 templates/js/translated/stock.js:3080 +#: templates/js/translated/stock.js:3205 msgid "Status" msgstr "" -#: build/serializers.py:541 +#: build/serializers.py:585 msgid "Accept Incomplete Allocation" msgstr "" -#: build/serializers.py:542 +#: build/serializers.py:586 msgid "Complete outputs if stock has not been fully allocated" msgstr "" -#: build/serializers.py:654 +#: build/serializers.py:698 msgid "Consume Allocated Stock" msgstr "" -#: build/serializers.py:655 +#: build/serializers.py:699 msgid "Consume any stock which has already been allocated to this build" msgstr "" -#: build/serializers.py:661 +#: build/serializers.py:705 msgid "Remove Incomplete Outputs" msgstr "" -#: build/serializers.py:662 +#: build/serializers.py:706 msgid "Delete any build outputs which have not been completed" msgstr "" -#: build/serializers.py:689 +#: build/serializers.py:733 msgid "Not permitted" msgstr "" -#: build/serializers.py:690 +#: build/serializers.py:734 msgid "Accept as consumed by this build order" msgstr "" -#: build/serializers.py:691 +#: build/serializers.py:735 msgid "Deallocate before completing this build order" msgstr "" -#: build/serializers.py:721 +#: build/serializers.py:765 msgid "Overallocated Stock" msgstr "" -#: build/serializers.py:723 +#: build/serializers.py:767 msgid "How do you want to handle extra stock items assigned to the build order" msgstr "" -#: build/serializers.py:733 +#: build/serializers.py:777 msgid "Some stock items have been overallocated" msgstr "" -#: build/serializers.py:738 +#: build/serializers.py:782 msgid "Accept Unallocated" msgstr "" -#: build/serializers.py:739 +#: build/serializers.py:783 msgid "Accept that stock items have not been fully allocated to this build order" msgstr "" -#: build/serializers.py:749 templates/js/translated/build.js:316 +#: build/serializers.py:793 templates/js/translated/build.js:319 msgid "Required stock has not been fully allocated" msgstr "" -#: build/serializers.py:754 order/serializers.py:345 order/serializers.py:1365 +#: build/serializers.py:798 order/serializers.py:430 order/serializers.py:1491 msgid "Accept Incomplete" msgstr "" -#: build/serializers.py:755 +#: build/serializers.py:799 msgid "Accept that the required number of build outputs have not been completed" msgstr "" -#: build/serializers.py:765 templates/js/translated/build.js:320 +#: build/serializers.py:809 templates/js/translated/build.js:323 msgid "Required build quantity has not been completed" msgstr "" -#: build/serializers.py:774 +#: build/serializers.py:818 msgid "Build order has open child build orders" msgstr "" -#: build/serializers.py:777 +#: build/serializers.py:821 msgid "Build order must be in production state" msgstr "" -#: build/serializers.py:780 templates/js/translated/build.js:304 +#: build/serializers.py:824 templates/js/translated/build.js:307 msgid "Build order has incomplete outputs" msgstr "" -#: build/serializers.py:818 +#: build/serializers.py:862 msgid "Build Line" msgstr "" -#: build/serializers.py:828 +#: build/serializers.py:872 msgid "Build output" msgstr "" -#: build/serializers.py:836 +#: build/serializers.py:880 msgid "Build output must point to the same build" msgstr "" -#: build/serializers.py:872 +#: build/serializers.py:916 msgid "Build Line Item" msgstr "" -#: build/serializers.py:886 +#: build/serializers.py:930 msgid "bom_item.part must point to the same part as the build order" msgstr "" -#: build/serializers.py:901 stock/serializers.py:1294 +#: build/serializers.py:945 stock/serializers.py:1325 msgid "Item must be in stock" msgstr "" -#: build/serializers.py:949 order/serializers.py:1351 +#: build/serializers.py:993 order/serializers.py:1477 #, python-brace-format msgid "Available quantity ({q}) exceeded" msgstr "" -#: build/serializers.py:955 +#: build/serializers.py:999 msgid "Build output must be specified for allocation of tracked parts" msgstr "" -#: build/serializers.py:962 +#: build/serializers.py:1006 msgid "Build output cannot be specified for allocation of untracked parts" msgstr "" -#: build/serializers.py:986 order/serializers.py:1610 +#: build/serializers.py:1030 order/serializers.py:1750 msgid "Allocation items must be provided" msgstr "" -#: build/serializers.py:1049 +#: build/serializers.py:1093 msgid "Stock location where parts are to be sourced (leave blank to take from any location)" msgstr "" -#: build/serializers.py:1057 +#: build/serializers.py:1101 msgid "Exclude Location" msgstr "" -#: build/serializers.py:1058 +#: build/serializers.py:1102 msgid "Exclude stock items from this selected location" msgstr "" -#: build/serializers.py:1063 +#: build/serializers.py:1107 msgid "Interchangeable Stock" msgstr "" -#: build/serializers.py:1064 +#: build/serializers.py:1108 msgid "Stock items in multiple locations can be used interchangeably" msgstr "" -#: build/serializers.py:1069 +#: build/serializers.py:1113 msgid "Substitute Stock" msgstr "" -#: build/serializers.py:1070 +#: build/serializers.py:1114 msgid "Allow allocation of substitute parts" msgstr "" -#: build/serializers.py:1075 +#: build/serializers.py:1119 msgid "Optional Items" msgstr "" -#: build/serializers.py:1076 +#: build/serializers.py:1120 msgid "Allocate optional BOM items to build order" msgstr "" -#: build/serializers.py:1098 +#: build/serializers.py:1143 msgid "Failed to start auto-allocation task" msgstr "" -#: build/serializers.py:1181 +#: build/serializers.py:1226 stock/serializers.py:585 msgid "Supplier Part Number" msgstr "" -#: build/serializers.py:1182 company/models.py:506 +#: build/serializers.py:1227 company/models.py:503 stock/serializers.py:591 msgid "Manufacturer Part Number" msgstr "" -#: build/serializers.py:1183 stock/admin.py:53 stock/admin.py:175 -#: stock/serializers.py:457 +#: build/serializers.py:1228 stock/admin.py:53 stock/admin.py:176 +#: stock/serializers.py:467 msgid "Location Name" msgstr "" -#: build/serializers.py:1184 +#: build/serializers.py:1229 build/serializers.py:1327 msgid "Build Reference" msgstr "" -#: build/serializers.py:1185 +#: build/serializers.py:1230 msgid "BOM Reference" msgstr "" -#: build/serializers.py:1186 company/models.py:852 -#: company/templates/company/supplier_part.html:160 order/serializers.py:690 -#: stock/admin.py:228 stock/models.py:818 stock/serializers.py:1579 -#: stock/templates/stock/item_base.html:240 -#: templates/js/translated/company.js:1646 -#: templates/js/translated/purchase_order.js:1169 -#: templates/js/translated/purchase_order.js:1332 +#: build/serializers.py:1231 company/models.py:849 +#: company/templates/company/supplier_part.html:161 order/serializers.py:775 +#: stock/admin.py:229 stock/models.py:895 stock/serializers.py:1610 +#: stock/templates/stock/item_base.html:237 +#: templates/js/translated/company.js:1647 +#: templates/js/translated/purchase_order.js:1152 +#: templates/js/translated/purchase_order.js:1315 #: templates/js/translated/stock.js:1214 templates/js/translated/stock.js:1246 -#: templates/js/translated/stock.js:2509 +#: templates/js/translated/stock.js:2510 msgid "Packaging" msgstr "" -#: build/serializers.py:1189 part/admin.py:39 part/admin.py:398 -#: part/models.py:4101 part/stocktake.py:218 stock/admin.py:152 +#: build/serializers.py:1234 part/admin.py:39 part/admin.py:398 +#: part/models.py:4159 part/stocktake.py:218 stock/admin.py:153 msgid "Part ID" msgstr "" -#: build/serializers.py:1191 build/serializers.py:1280 part/admin.py:402 -#: part/models.py:4103 +#: build/serializers.py:1236 build/serializers.py:1332 part/admin.py:402 +#: part/models.py:4161 msgid "Part IPN" msgstr "" -#: build/serializers.py:1192 build/serializers.py:1282 part/admin.py:45 +#: build/serializers.py:1237 build/serializers.py:1334 part/admin.py:45 #: part/stocktake.py:220 msgid "Part Description" msgstr "" -#: build/serializers.py:1195 +#: build/serializers.py:1240 msgid "BOM Part ID" msgstr "" -#: build/serializers.py:1196 +#: build/serializers.py:1241 msgid "BOM Part Name" msgstr "" -#: build/serializers.py:1199 +#: build/serializers.py:1244 #: report/templates/report/inventree_return_order_report.html:25 -#: report/templates/report/inventree_test_report.html:88 stock/models.py:845 -#: stock/serializers.py:151 stock/templates/stock/item_base.html:311 -#: templates/js/translated/build.js:520 templates/js/translated/build.js:1540 -#: templates/js/translated/build.js:2527 -#: templates/js/translated/model_renderers.js:231 +#: report/templates/report/inventree_sales_order_shipment_report.html:45 +#: report/templates/report/inventree_test_report.html:88 stock/models.py:922 +#: stock/serializers.py:152 stock/templates/stock/item_base.html:308 +#: templates/js/translated/build.js:523 templates/js/translated/build.js:1543 +#: templates/js/translated/build.js:2534 +#: templates/js/translated/model_renderers.js:234 #: templates/js/translated/return_order.js:539 #: templates/js/translated/return_order.js:722 -#: templates/js/translated/sales_order.js:315 -#: templates/js/translated/sales_order.js:1647 -#: templates/js/translated/sales_order.js:1732 +#: templates/js/translated/sales_order.js:1628 +#: templates/js/translated/sales_order.js:1713 #: templates/js/translated/stock.js:602 msgid "Serial Number" msgstr "" -#: build/serializers.py:1212 stock/serializers.py:593 -#: templates/js/translated/build.js:1017 templates/js/translated/build.js:1164 -#: templates/js/translated/build.js:2516 +#: build/serializers.py:1257 stock/serializers.py:620 +#: templates/js/translated/build.js:1020 templates/js/translated/build.js:1167 +#: templates/js/translated/build.js:2523 msgid "Allocated Quantity" msgstr "" -#: build/serializers.py:1213 stock/templates/stock/item_base.html:340 +#: build/serializers.py:1258 stock/templates/stock/item_base.html:337 msgid "Available Quantity" msgstr "" -#: build/serializers.py:1283 +#: build/serializers.py:1335 msgid "Part Category ID" msgstr "" -#: build/serializers.py:1284 +#: build/serializers.py:1336 msgid "Part Category Name" msgstr "" -#: build/serializers.py:1291 common/models.py:1513 part/admin.py:113 -#: part/models.py:1166 templates/js/translated/table_filters.js:150 +#: build/serializers.py:1345 common/models.py:1582 part/admin.py:113 +#: part/models.py:1227 templates/js/translated/build.js:2738 +#: templates/js/translated/table_filters.js:150 #: templates/js/translated/table_filters.js:230 #: templates/js/translated/table_filters.js:783 msgid "Trackable" msgstr "" -#: build/serializers.py:1292 +#: build/serializers.py:1346 msgid "Inherited" msgstr "" -#: build/serializers.py:1293 part/models.py:4313 +#: build/serializers.py:1347 part/models.py:4370 #: part/templates/part/upload_bom.html:56 templates/js/translated/bom.js:1046 -#: templates/js/translated/build.js:2711 +#: templates/js/translated/build.js:2720 msgid "Allow Variants" msgstr "" -#: build/serializers.py:1297 part/models.py:4110 part/models.py:4584 +#: build/serializers.py:1351 part/models.py:4168 part/models.py:4646 #: stock/api.py:794 msgid "BOM Item" msgstr "" -#: build/serializers.py:1306 build/templates/build/detail.html:236 +#: build/serializers.py:1370 build/templates/build/detail.html:236 #: build/templates/build/sidebar.html:16 templates/js/translated/index.js:130 msgid "Allocated Stock" msgstr "" -#: build/serializers.py:1311 order/serializers.py:1175 part/admin.py:132 -#: part/bom.py:181 part/serializers.py:899 part/serializers.py:1602 -#: part/templates/part/part_base.html:210 templates/js/translated/bom.js:1208 -#: templates/js/translated/build.js:2804 templates/js/translated/part.js:712 +#: build/serializers.py:1375 order/serializers.py:1209 part/admin.py:132 +#: part/bom.py:186 part/serializers.py:951 part/serializers.py:1660 +#: part/templates/part/part_base.html:211 templates/js/translated/bom.js:1208 +#: templates/js/translated/build.js:2822 templates/js/translated/part.js:712 #: templates/js/translated/part.js:2155 #: templates/js/translated/table_filters.js:177 msgid "On Order" msgstr "" -#: build/serializers.py:1316 order/serializers.py:1176 part/serializers.py:1604 -#: templates/js/translated/build.js:2808 +#: build/serializers.py:1380 order/serializers.py:1210 part/serializers.py:1662 +#: templates/js/translated/build.js:2826 #: templates/js/translated/table_filters.js:367 msgid "In Production" msgstr "" -#: build/serializers.py:1321 part/bom.py:180 part/serializers.py:1629 -#: part/templates/part/part_base.html:192 -#: templates/js/translated/sales_order.js:1929 -msgid "Available Stock" -msgstr "" - -#: build/serializers.py:1325 -msgid "Available Substitute Stock" -msgstr "" - -#: build/serializers.py:1326 -msgid "Available Variant Stock" -msgstr "" - -#: build/serializers.py:1327 -msgid "Total Available Stock" -msgstr "" - -#: build/serializers.py:1328 part/serializers.py:906 +#: build/serializers.py:1384 part/serializers.py:958 msgid "External Stock" msgstr "" -#: build/status_codes.py:11 generic/states/tests.py:17 order/status_codes.py:12 -#: order/status_codes.py:42 order/status_codes.py:74 order/status_codes.py:98 +#: build/serializers.py:1385 part/bom.py:185 part/serializers.py:1687 +#: part/templates/part/part_base.html:193 +#: templates/js/translated/sales_order.js:1910 +msgid "Available Stock" +msgstr "" + +#: build/serializers.py:1386 +msgid "Available Substitute Stock" +msgstr "" + +#: build/serializers.py:1387 +msgid "Available Variant Stock" +msgstr "" + +#: build/status_codes.py:11 generic/states/tests.py:21 +#: generic/states/tests.py:131 order/status_codes.py:12 +#: order/status_codes.py:44 order/status_codes.py:76 order/status_codes.py:102 #: templates/js/translated/table_filters.js:601 msgid "Pending" msgstr "" @@ -1722,21 +1750,21 @@ msgstr "" msgid "Production" msgstr "" -#: build/status_codes.py:13 order/status_codes.py:14 order/status_codes.py:49 -#: order/status_codes.py:79 +#: build/status_codes.py:13 order/status_codes.py:14 order/status_codes.py:51 +#: order/status_codes.py:81 msgid "On Hold" msgstr "" -#: build/status_codes.py:14 order/status_codes.py:16 order/status_codes.py:51 -#: order/status_codes.py:82 +#: build/status_codes.py:14 order/status_codes.py:16 order/status_codes.py:53 +#: order/status_codes.py:84 msgid "Cancelled" msgstr "" -#: build/status_codes.py:15 generic/states/tests.py:19 importer/models.py:509 -#: importer/status_codes.py:19 order/status_codes.py:15 -#: order/status_codes.py:50 order/status_codes.py:81 -#: order/templates/order/order_base.html:163 -#: order/templates/order/sales_order_base.html:168 report/models.py:443 +#: build/status_codes.py:15 generic/states/tests.py:23 importer/models.py:518 +#: importer/status_codes.py:27 order/status_codes.py:15 +#: order/status_codes.py:52 order/status_codes.py:83 +#: order/templates/order/order_base.html:172 +#: order/templates/order/sales_order_base.html:169 report/models.py:451 msgid "Complete" msgstr "" @@ -1744,165 +1772,162 @@ msgstr "" msgid "Stock required for build order" msgstr "" -#: build/tasks.py:201 +#: build/tasks.py:260 msgid "Overdue Build Order" msgstr "" -#: build/tasks.py:206 +#: build/tasks.py:265 #, python-brace-format msgid "Build order {bo} is now overdue" msgstr "" -#: build/templates/build/build_base.html:18 +#: build/templates/build/build_base.html:19 msgid "Part thumbnail" msgstr "" -#: build/templates/build/build_base.html:38 -#: company/templates/company/supplier_part.html:35 -#: order/templates/order/order_base.html:29 -#: order/templates/order/return_order_base.html:38 -#: order/templates/order/sales_order_base.html:38 -#: part/templates/part/part_base.html:41 -#: stock/templates/stock/item_base.html:40 -#: stock/templates/stock/location.html:52 +#: build/templates/build/build_base.html:39 +#: company/templates/company/supplier_part.html:36 +#: order/templates/order/order_base.html:30 +#: order/templates/order/return_order_base.html:39 +#: order/templates/order/sales_order_base.html:39 +#: part/templates/part/part_base.html:42 +#: stock/templates/stock/item_base.html:41 +#: stock/templates/stock/location.html:53 #: templates/js/translated/filters.js:338 msgid "Barcode actions" msgstr "" -#: build/templates/build/build_base.html:42 -#: company/templates/company/supplier_part.html:39 -#: order/templates/order/order_base.html:33 -#: order/templates/order/return_order_base.html:42 -#: order/templates/order/sales_order_base.html:42 -#: part/templates/part/part_base.html:44 -#: stock/templates/stock/item_base.html:44 -#: stock/templates/stock/location.html:54 templates/qr_button.html:1 +#: build/templates/build/build_base.html:43 +#: company/templates/company/supplier_part.html:40 +#: order/templates/order/order_base.html:34 +#: order/templates/order/return_order_base.html:43 +#: order/templates/order/sales_order_base.html:43 +#: part/templates/part/part_base.html:45 +#: stock/templates/stock/item_base.html:45 +#: stock/templates/stock/location.html:55 templates/qr_button.html:1 msgid "Show QR Code" msgstr "" -#: build/templates/build/build_base.html:45 -#: company/templates/company/supplier_part.html:41 -#: order/templates/order/order_base.html:36 -#: order/templates/order/return_order_base.html:45 -#: order/templates/order/sales_order_base.html:45 -#: part/templates/part/part_base.html:47 -#: stock/templates/stock/item_base.html:47 -#: stock/templates/stock/location.html:56 +#: build/templates/build/build_base.html:46 +#: company/templates/company/supplier_part.html:42 +#: order/templates/order/order_base.html:37 +#: order/templates/order/return_order_base.html:46 +#: order/templates/order/sales_order_base.html:46 +#: part/templates/part/part_base.html:48 +#: stock/templates/stock/item_base.html:48 +#: stock/templates/stock/location.html:57 #: templates/js/translated/barcode.js:527 #: templates/js/translated/barcode.js:532 msgid "Unlink Barcode" msgstr "" -#: build/templates/build/build_base.html:47 -#: company/templates/company/supplier_part.html:43 -#: order/templates/order/order_base.html:38 -#: order/templates/order/return_order_base.html:47 -#: order/templates/order/sales_order_base.html:47 -#: part/templates/part/part_base.html:49 -#: stock/templates/stock/item_base.html:49 -#: stock/templates/stock/location.html:58 +#: build/templates/build/build_base.html:48 +#: company/templates/company/supplier_part.html:44 +#: order/templates/order/order_base.html:39 +#: order/templates/order/return_order_base.html:48 +#: order/templates/order/sales_order_base.html:48 +#: part/templates/part/part_base.html:50 +#: stock/templates/stock/item_base.html:50 +#: stock/templates/stock/location.html:59 msgid "Link Barcode" msgstr "" -#: build/templates/build/build_base.html:56 -#: order/templates/order/order_base.html:46 -#: order/templates/order/return_order_base.html:55 -#: order/templates/order/sales_order_base.html:55 +#: build/templates/build/build_base.html:57 +#: order/templates/order/order_base.html:47 +#: order/templates/order/return_order_base.html:56 +#: order/templates/order/sales_order_base.html:56 msgid "Print actions" msgstr "" -#: build/templates/build/build_base.html:60 +#: build/templates/build/build_base.html:61 msgid "Print build order report" msgstr "" -#: build/templates/build/build_base.html:67 +#: build/templates/build/build_base.html:68 msgid "Build actions" msgstr "" -#: build/templates/build/build_base.html:71 +#: build/templates/build/build_base.html:72 msgid "Edit Build" msgstr "" -#: build/templates/build/build_base.html:73 +#: build/templates/build/build_base.html:74 msgid "Duplicate Build" msgstr "" -#: build/templates/build/build_base.html:76 +#: build/templates/build/build_base.html:77 msgid "Hold Build" msgstr "" -#: build/templates/build/build_base.html:79 +#: build/templates/build/build_base.html:80 msgid "Cancel Build" msgstr "" -#: build/templates/build/build_base.html:82 +#: build/templates/build/build_base.html:83 msgid "Delete Build" msgstr "" -#: build/templates/build/build_base.html:87 -msgid "Isueue Build" -msgstr "" - #: build/templates/build/build_base.html:88 +#: build/templates/build/build_base.html:89 msgid "Issue Build" msgstr "" -#: build/templates/build/build_base.html:91 #: build/templates/build/build_base.html:92 +#: build/templates/build/build_base.html:93 msgid "Complete Build" msgstr "" -#: build/templates/build/build_base.html:115 +#: build/templates/build/build_base.html:116 msgid "Build Description" msgstr "" -#: build/templates/build/build_base.html:125 +#: build/templates/build/build_base.html:126 msgid "No build outputs have been created for this build order" msgstr "" -#: build/templates/build/build_base.html:132 +#: build/templates/build/build_base.html:133 msgid "Build Order is ready to mark as completed" msgstr "" -#: build/templates/build/build_base.html:137 +#: build/templates/build/build_base.html:138 msgid "Build Order cannot be completed as outstanding outputs remain" msgstr "" -#: build/templates/build/build_base.html:142 +#: build/templates/build/build_base.html:143 msgid "Required build quantity has not yet been completed" msgstr "" -#: build/templates/build/build_base.html:147 +#: build/templates/build/build_base.html:148 msgid "Stock has not been fully allocated to this Build Order" msgstr "" -#: build/templates/build/build_base.html:168 -#: build/templates/build/detail.html:138 order/models.py:308 -#: order/models.py:1391 order/serializers.py:174 -#: order/templates/order/order_base.html:191 -#: order/templates/order/return_order_base.html:167 -#: order/templates/order/sales_order_base.html:199 +#: build/templates/build/build_base.html:169 +#: build/templates/build/detail.html:138 order/models.py:315 +#: order/models.py:1408 order/serializers.py:254 +#: order/templates/order/order_base.html:200 +#: order/templates/order/return_order_base.html:168 +#: order/templates/order/sales_order_base.html:200 #: report/templates/report/inventree_build_order_report.html:125 -#: templates/js/translated/build.js:2411 templates/js/translated/part.js:1837 -#: templates/js/translated/purchase_order.js:1809 -#: templates/js/translated/purchase_order.js:2217 +#: templates/js/translated/build.js:2414 templates/js/translated/part.js:1837 +#: templates/js/translated/purchase_order.js:1793 +#: templates/js/translated/purchase_order.js:2201 #: templates/js/translated/return_order.js:346 #: templates/js/translated/return_order.js:749 -#: templates/js/translated/sales_order.js:871 -#: templates/js/translated/sales_order.js:1903 +#: templates/js/translated/sales_order.js:830 +#: templates/js/translated/sales_order.js:1884 msgid "Target Date" msgstr "" -#: build/templates/build/build_base.html:173 +#: build/templates/build/build_base.html:174 #, python-format msgid "This build was due on %(target)s" msgstr "" -#: build/templates/build/build_base.html:173 -#: build/templates/build/build_base.html:230 -#: order/templates/order/order_base.html:127 -#: order/templates/order/return_order_base.html:120 -#: order/templates/order/sales_order_base.html:129 +#: build/templates/build/build_base.html:174 +#: build/templates/build/build_base.html:231 +#: order/templates/order/order_base.html:128 +#: order/templates/order/return_order_base.html:121 +#: order/templates/order/sales_order_base.html:130 #: templates/js/translated/table_filters.js:97 #: templates/js/translated/table_filters.js:545 #: templates/js/translated/table_filters.js:629 @@ -1910,49 +1935,50 @@ msgstr "" msgid "Overdue" msgstr "" -#: build/templates/build/build_base.html:185 +#: build/templates/build/build_base.html:186 #: build/templates/build/detail.html:67 build/templates/build/sidebar.html:13 msgid "Completed Outputs" msgstr "" -#: build/templates/build/build_base.html:198 -#: build/templates/build/detail.html:101 order/api.py:1406 order/models.py:892 -#: order/models.py:1650 order/models.py:1765 order/models.py:1924 -#: order/templates/order/sales_order_base.html:9 -#: order/templates/order/sales_order_base.html:28 +#: build/templates/build/build_base.html:199 +#: build/templates/build/detail.html:101 order/api.py:1528 order/models.py:914 +#: order/models.py:1666 order/models.py:1794 order/models.py:1957 +#: order/templates/order/sales_order_base.html:10 +#: order/templates/order/sales_order_base.html:29 #: report/templates/report/inventree_build_order_report.html:135 #: report/templates/report/inventree_sales_order_report.html:14 -#: stock/templates/stock/item_base.html:369 +#: report/templates/report/inventree_sales_order_shipment_report.html:15 +#: stock/templates/stock/item_base.html:366 #: templates/email/overdue_sales_order.html:15 -#: templates/js/translated/pricing.js:929 -#: templates/js/translated/sales_order.js:805 -#: templates/js/translated/sales_order.js:1028 -#: templates/js/translated/stock.js:3008 +#: templates/js/translated/pricing.js:927 +#: templates/js/translated/sales_order.js:764 +#: templates/js/translated/sales_order.js:1001 +#: templates/js/translated/stock.js:3009 msgid "Sales Order" msgstr "" -#: build/templates/build/build_base.html:219 -#: build/templates/build/detail.html:94 templates/js/translated/build.js:2328 +#: build/templates/build/build_base.html:220 +#: build/templates/build/detail.html:94 templates/js/translated/build.js:2331 msgid "Priority" msgstr "" -#: build/templates/build/build_base.html:267 +#: build/templates/build/build_base.html:268 msgid "Issue Build Order" msgstr "" -#: build/templates/build/build_base.html:271 +#: build/templates/build/build_base.html:272 msgid "Issue this Build Order?" msgstr "" -#: build/templates/build/build_base.html:302 +#: build/templates/build/build_base.html:303 msgid "Delete Build Order" msgstr "" -#: build/templates/build/build_base.html:312 +#: build/templates/build/build_base.html:313 msgid "Build Order QR Code" msgstr "" -#: build/templates/build/build_base.html:324 +#: build/templates/build/build_base.html:325 msgid "Link Barcode to Build Order" msgstr "" @@ -1968,8 +1994,9 @@ msgstr "" msgid "Stock can be taken from any available location." msgstr "" -#: build/templates/build/detail.html:49 order/models.py:1532 -#: templates/js/translated/purchase_order.js:2259 +#: build/templates/build/detail.html:49 order/models.py:548 +#: order/models.py:1548 order/templates/order/order_base.html:135 +#: templates/js/translated/purchase_order.js:2243 msgid "Destination" msgstr "" @@ -1981,23 +2008,24 @@ msgstr "" msgid "Allocated Parts" msgstr "" -#: build/templates/build/detail.html:80 stock/admin.py:162 -#: stock/templates/stock/item_base.html:162 -#: templates/js/translated/build.js:1553 -#: templates/js/translated/model_renderers.js:242 -#: templates/js/translated/purchase_order.js:1326 +#: build/templates/build/detail.html:80 +#: report/templates/report/inventree_sales_order_shipment_report.html:47 +#: stock/admin.py:163 stock/templates/stock/item_base.html:159 +#: templates/js/translated/build.js:1556 +#: templates/js/translated/model_renderers.js:245 +#: templates/js/translated/purchase_order.js:1309 #: templates/js/translated/stock.js:1139 templates/js/translated/stock.js:1240 -#: templates/js/translated/stock.js:2275 templates/js/translated/stock.js:3211 +#: templates/js/translated/stock.js:2276 templates/js/translated/stock.js:3212 #: templates/js/translated/table_filters.js:320 #: templates/js/translated/table_filters.js:411 msgid "Batch" msgstr "" #: build/templates/build/detail.html:133 -#: order/templates/order/order_base.html:178 -#: order/templates/order/return_order_base.html:154 -#: order/templates/order/sales_order_base.html:193 -#: templates/js/translated/build.js:2371 +#: order/templates/order/order_base.html:187 +#: order/templates/order/return_order_base.html:155 +#: order/templates/order/sales_order_base.html:194 +#: templates/js/translated/build.js:2374 msgid "Created" msgstr "" @@ -2005,8 +2033,8 @@ msgstr "" msgid "No target date set" msgstr "" -#: build/templates/build/detail.html:149 -#: order/templates/order/sales_order_base.html:209 +#: build/templates/build/detail.html:149 order/api.py:794 +#: order/templates/order/sales_order_base.html:210 #: templates/js/translated/table_filters.js:692 msgid "Completed" msgstr "" @@ -2052,7 +2080,7 @@ msgid "Order required parts" msgstr "" #: build/templates/build/detail.html:192 -#: templates/js/translated/purchase_order.js:795 +#: templates/js/translated/purchase_order.js:778 msgid "Order Parts" msgstr "" @@ -2120,7 +2148,7 @@ msgstr "" msgid "Build Order Details" msgstr "" -#: build/templates/build/sidebar.html:8 order/serializers.py:82 +#: build/templates/build/sidebar.html:8 order/serializers.py:113 #: order/templates/order/po_sidebar.html:5 #: order/templates/order/return_order_detail.html:18 #: order/templates/order/so_sidebar.html:5 @@ -2139,43 +2167,38 @@ msgstr "" msgid "Test Statistics" msgstr "" -#: common/api.py:693 +#: common/api.py:725 msgid "Is Link" msgstr "" -#: common/api.py:701 +#: common/api.py:733 msgid "Is File" msgstr "" -#: common/api.py:744 +#: common/api.py:776 msgid "User does not have permission to delete these attachments" msgstr "" -#: common/api.py:761 +#: common/api.py:793 msgid "User does not have permission to delete this attachment" msgstr "" -#: common/currency.py:132 +#: common/currency.py:134 msgid "Invalid currency code" msgstr "" -#: common/currency.py:134 +#: common/currency.py:136 msgid "Duplicate currency code" msgstr "" -#: common/currency.py:139 +#: common/currency.py:141 msgid "No valid currency codes provided" msgstr "" -#: common/currency.py:156 +#: common/currency.py:158 msgid "No plugin" msgstr "" -#: common/files.py:63 -#, python-brace-format -msgid "Unsupported file format: {fmt}" -msgstr "" - #: common/files.py:65 msgid "Error reading file (invalid encoding)" msgstr "" @@ -2192,1883 +2215,2039 @@ msgstr "" msgid "Error reading file (data could be corrupted)" msgstr "" -#: common/forms.py:12 +#: common/forms.py:12 common/forms.py:25 msgid "File" msgstr "" -#: common/forms.py:12 +#: common/forms.py:12 common/forms.py:26 msgid "Select file to upload" msgstr "" -#: common/forms.py:25 -msgid "{name.title()} File" -msgstr "" - -#: common/forms.py:26 -#, python-brace-format -msgid "Select {name} file to upload" -msgstr "" - -#: common/models.py:86 +#: common/models.py:89 msgid "Updated" msgstr "" -#: common/models.py:87 +#: common/models.py:90 msgid "Timestamp of last update" msgstr "" -#: common/models.py:120 +#: common/models.py:123 msgid "Site URL is locked by configuration" msgstr "" -#: common/models.py:150 +#: common/models.py:153 msgid "Unique project code" msgstr "" -#: common/models.py:157 +#: common/models.py:160 msgid "Project description" msgstr "" -#: common/models.py:166 +#: common/models.py:169 msgid "User or group responsible for this project" msgstr "" -#: common/models.py:783 -msgid "Settings key (must be unique - case insensitive)" +#: common/models.py:783 common/models.py:2236 common/models.py:2613 +msgid "Settings key" msgstr "" #: common/models.py:787 msgid "Settings value" msgstr "" -#: common/models.py:839 +#: common/models.py:842 msgid "Chosen value is not a valid option" msgstr "" -#: common/models.py:855 +#: common/models.py:858 msgid "Value must be a boolean value" msgstr "" -#: common/models.py:863 +#: common/models.py:866 msgid "Value must be an integer value" msgstr "" -#: common/models.py:900 +#: common/models.py:874 +msgid "Value must be a valid number" +msgstr "" + +#: common/models.py:899 +msgid "Value does not pass validation checks" +msgstr "" + +#: common/models.py:921 msgid "Key string must be unique" msgstr "" -#: common/models.py:1132 +#: common/models.py:1189 msgid "No group" msgstr "" -#: common/models.py:1231 +#: common/models.py:1288 msgid "Restart required" msgstr "" -#: common/models.py:1233 +#: common/models.py:1290 msgid "A setting has been changed which requires a server restart" msgstr "" -#: common/models.py:1240 +#: common/models.py:1297 msgid "Pending migrations" msgstr "" -#: common/models.py:1241 +#: common/models.py:1298 msgid "Number of pending database migrations" msgstr "" -#: common/models.py:1246 +#: common/models.py:1303 msgid "Server Instance Name" msgstr "" -#: common/models.py:1248 +#: common/models.py:1305 msgid "String descriptor for the server instance" msgstr "" -#: common/models.py:1252 +#: common/models.py:1309 msgid "Use instance name" msgstr "" -#: common/models.py:1253 +#: common/models.py:1310 msgid "Use the instance name in the title-bar" msgstr "" -#: common/models.py:1258 +#: common/models.py:1315 msgid "Restrict showing `about`" msgstr "" -#: common/models.py:1259 +#: common/models.py:1316 msgid "Show the `about` modal only to superusers" msgstr "" -#: common/models.py:1264 company/models.py:111 company/models.py:112 +#: common/models.py:1321 company/models.py:108 company/models.py:109 msgid "Company name" msgstr "" -#: common/models.py:1265 +#: common/models.py:1322 msgid "Internal company name" msgstr "" -#: common/models.py:1269 +#: common/models.py:1326 msgid "Base URL" msgstr "" -#: common/models.py:1270 +#: common/models.py:1327 msgid "Base URL for server instance" msgstr "" -#: common/models.py:1276 +#: common/models.py:1333 msgid "Default Currency" msgstr "" -#: common/models.py:1277 +#: common/models.py:1334 msgid "Select base currency for pricing calculations" msgstr "" -#: common/models.py:1283 +#: common/models.py:1340 msgid "Supported Currencies" msgstr "" -#: common/models.py:1284 +#: common/models.py:1341 msgid "List of supported currency codes" msgstr "" -#: common/models.py:1290 +#: common/models.py:1347 msgid "Currency Update Interval" msgstr "" -#: common/models.py:1292 +#: common/models.py:1349 msgid "How often to update exchange rates (set to zero to disable)" msgstr "" -#: common/models.py:1295 common/models.py:1351 common/models.py:1364 -#: common/models.py:1372 common/models.py:1381 common/models.py:1390 -#: common/models.py:1627 common/models.py:1649 common/models.py:1764 -#: common/models.py:2146 +#: common/models.py:1352 common/models.py:1408 common/models.py:1421 +#: common/models.py:1429 common/models.py:1438 common/models.py:1447 +#: common/models.py:1696 common/models.py:1718 common/models.py:1819 +#: common/models.py:2208 msgid "days" msgstr "" -#: common/models.py:1299 +#: common/models.py:1356 msgid "Currency Update Plugin" msgstr "" -#: common/models.py:1300 +#: common/models.py:1357 msgid "Currency update plugin to use" msgstr "" -#: common/models.py:1305 +#: common/models.py:1362 msgid "Download from URL" msgstr "" -#: common/models.py:1307 +#: common/models.py:1364 msgid "Allow download of remote images and files from external URL" msgstr "" -#: common/models.py:1313 +#: common/models.py:1370 msgid "Download Size Limit" msgstr "" -#: common/models.py:1314 +#: common/models.py:1371 msgid "Maximum allowable download size for remote image" msgstr "" -#: common/models.py:1320 +#: common/models.py:1377 msgid "User-agent used to download from URL" msgstr "" -#: common/models.py:1322 +#: common/models.py:1379 msgid "Allow to override the user-agent used to download images and files from external URL (leave blank for the default)" msgstr "" -#: common/models.py:1327 +#: common/models.py:1384 msgid "Strict URL Validation" msgstr "" -#: common/models.py:1328 +#: common/models.py:1385 msgid "Require schema specification when validating URLs" msgstr "" -#: common/models.py:1333 +#: common/models.py:1390 msgid "Require confirm" msgstr "" -#: common/models.py:1334 +#: common/models.py:1391 msgid "Require explicit user confirmation for certain action." msgstr "" -#: common/models.py:1339 +#: common/models.py:1396 msgid "Tree Depth" msgstr "" -#: common/models.py:1341 +#: common/models.py:1398 msgid "Default tree depth for treeview. Deeper levels can be lazy loaded as they are needed." msgstr "" -#: common/models.py:1347 +#: common/models.py:1404 msgid "Update Check Interval" msgstr "" -#: common/models.py:1348 +#: common/models.py:1405 msgid "How often to check for updates (set to zero to disable)" msgstr "" -#: common/models.py:1354 +#: common/models.py:1411 msgid "Automatic Backup" msgstr "" -#: common/models.py:1355 +#: common/models.py:1412 msgid "Enable automatic backup of database and media files" msgstr "" -#: common/models.py:1360 +#: common/models.py:1417 msgid "Auto Backup Interval" msgstr "" -#: common/models.py:1361 +#: common/models.py:1418 msgid "Specify number of days between automated backup events" msgstr "" -#: common/models.py:1367 +#: common/models.py:1424 msgid "Task Deletion Interval" msgstr "" -#: common/models.py:1369 +#: common/models.py:1426 msgid "Background task results will be deleted after specified number of days" msgstr "" -#: common/models.py:1376 +#: common/models.py:1433 msgid "Error Log Deletion Interval" msgstr "" -#: common/models.py:1378 +#: common/models.py:1435 msgid "Error logs will be deleted after specified number of days" msgstr "" -#: common/models.py:1385 +#: common/models.py:1442 msgid "Notification Deletion Interval" msgstr "" -#: common/models.py:1387 +#: common/models.py:1444 msgid "User notifications will be deleted after specified number of days" msgstr "" -#: common/models.py:1394 templates/InvenTree/settings/sidebar.html:31 +#: common/models.py:1451 templates/InvenTree/settings/sidebar.html:31 msgid "Barcode Support" msgstr "" -#: common/models.py:1395 +#: common/models.py:1452 msgid "Enable barcode scanner support in the web interface" msgstr "" -#: common/models.py:1400 +#: common/models.py:1457 +msgid "Store Barcode Results" +msgstr "" + +#: common/models.py:1458 +msgid "Store barcode scan results in the database" +msgstr "" + +#: common/models.py:1463 +msgid "Barcode Scans Maximum Count" +msgstr "" + +#: common/models.py:1464 +msgid "Maximum number of barcode scan results to store" +msgstr "" + +#: common/models.py:1469 msgid "Barcode Input Delay" msgstr "" -#: common/models.py:1401 +#: common/models.py:1470 msgid "Barcode input processing delay time" msgstr "" -#: common/models.py:1407 +#: common/models.py:1476 msgid "Barcode Webcam Support" msgstr "" -#: common/models.py:1408 +#: common/models.py:1477 msgid "Allow barcode scanning via webcam in browser" msgstr "" -#: common/models.py:1413 +#: common/models.py:1482 msgid "Barcode Show Data" msgstr "" -#: common/models.py:1414 +#: common/models.py:1483 msgid "Display barcode data in browser as text" msgstr "" -#: common/models.py:1419 +#: common/models.py:1488 msgid "Barcode Generation Plugin" msgstr "" -#: common/models.py:1420 +#: common/models.py:1489 msgid "Plugin to use for internal barcode data generation" msgstr "" -#: common/models.py:1425 +#: common/models.py:1494 msgid "Part Revisions" msgstr "" -#: common/models.py:1426 +#: common/models.py:1495 msgid "Enable revision field for Part" msgstr "" -#: common/models.py:1431 +#: common/models.py:1500 msgid "Assembly Revision Only" msgstr "" -#: common/models.py:1432 +#: common/models.py:1501 msgid "Only allow revisions for assembly parts" msgstr "" -#: common/models.py:1437 +#: common/models.py:1506 msgid "Allow Deletion from Assembly" msgstr "" -#: common/models.py:1438 +#: common/models.py:1507 msgid "Allow deletion of parts which are used in an assembly" msgstr "" -#: common/models.py:1443 +#: common/models.py:1512 msgid "IPN Regex" msgstr "" -#: common/models.py:1444 +#: common/models.py:1513 msgid "Regular expression pattern for matching Part IPN" msgstr "" -#: common/models.py:1447 +#: common/models.py:1516 msgid "Allow Duplicate IPN" msgstr "" -#: common/models.py:1448 +#: common/models.py:1517 msgid "Allow multiple parts to share the same IPN" msgstr "" -#: common/models.py:1453 +#: common/models.py:1522 msgid "Allow Editing IPN" msgstr "" -#: common/models.py:1454 +#: common/models.py:1523 msgid "Allow changing the IPN value while editing a part" msgstr "" -#: common/models.py:1459 +#: common/models.py:1528 msgid "Copy Part BOM Data" msgstr "" -#: common/models.py:1460 +#: common/models.py:1529 msgid "Copy BOM data by default when duplicating a part" msgstr "" -#: common/models.py:1465 +#: common/models.py:1534 msgid "Copy Part Parameter Data" msgstr "" -#: common/models.py:1466 +#: common/models.py:1535 msgid "Copy parameter data by default when duplicating a part" msgstr "" -#: common/models.py:1471 +#: common/models.py:1540 msgid "Copy Part Test Data" msgstr "" -#: common/models.py:1472 +#: common/models.py:1541 msgid "Copy test data by default when duplicating a part" msgstr "" -#: common/models.py:1477 +#: common/models.py:1546 msgid "Copy Category Parameter Templates" msgstr "" -#: common/models.py:1478 +#: common/models.py:1547 msgid "Copy category parameter templates when creating a part" msgstr "" -#: common/models.py:1483 part/admin.py:108 part/models.py:3945 -#: report/models.py:293 report/models.py:360 report/serializers.py:90 -#: report/serializers.py:131 stock/serializers.py:232 +#: common/models.py:1552 part/admin.py:108 part/models.py:4003 +#: report/models.py:301 report/models.py:368 report/serializers.py:91 +#: report/serializers.py:132 stock/serializers.py:233 #: templates/js/translated/table_filters.js:138 #: templates/js/translated/table_filters.js:775 msgid "Template" msgstr "" -#: common/models.py:1484 +#: common/models.py:1553 msgid "Parts are templates by default" msgstr "" -#: common/models.py:1490 +#: common/models.py:1559 msgid "Parts can be assembled from other components by default" msgstr "" -#: common/models.py:1495 part/admin.py:95 part/models.py:1160 -#: part/serializers.py:1596 templates/js/translated/table_filters.js:737 +#: common/models.py:1564 part/admin.py:95 part/models.py:1221 +#: part/serializers.py:1654 templates/js/translated/table_filters.js:737 msgid "Component" msgstr "" -#: common/models.py:1496 +#: common/models.py:1565 msgid "Parts can be used as sub-components by default" msgstr "" -#: common/models.py:1501 part/admin.py:100 part/models.py:1178 +#: common/models.py:1570 part/admin.py:100 part/models.py:1239 msgid "Purchaseable" msgstr "" -#: common/models.py:1502 +#: common/models.py:1571 msgid "Parts are purchaseable by default" msgstr "" -#: common/models.py:1507 part/admin.py:104 part/models.py:1184 +#: common/models.py:1576 part/admin.py:104 part/models.py:1245 #: templates/js/translated/table_filters.js:763 msgid "Salable" msgstr "" -#: common/models.py:1508 +#: common/models.py:1577 msgid "Parts are salable by default" msgstr "" -#: common/models.py:1514 +#: common/models.py:1583 msgid "Parts are trackable by default" msgstr "" -#: common/models.py:1519 part/admin.py:117 part/models.py:1200 -#: part/templates/part/part_base.html:154 +#: common/models.py:1588 part/admin.py:117 part/models.py:1261 +#: part/templates/part/part_base.html:155 #: templates/js/translated/table_filters.js:142 #: templates/js/translated/table_filters.js:787 msgid "Virtual" msgstr "" -#: common/models.py:1520 +#: common/models.py:1589 msgid "Parts are virtual by default" msgstr "" -#: common/models.py:1525 +#: common/models.py:1594 msgid "Show Import in Views" msgstr "" -#: common/models.py:1526 +#: common/models.py:1595 msgid "Display the import wizard in some part views" msgstr "" -#: common/models.py:1531 +#: common/models.py:1600 msgid "Show related parts" msgstr "" -#: common/models.py:1532 +#: common/models.py:1601 msgid "Display related parts for a part" msgstr "" -#: common/models.py:1537 +#: common/models.py:1606 msgid "Initial Stock Data" msgstr "" -#: common/models.py:1538 +#: common/models.py:1607 msgid "Allow creation of initial stock when adding a new part" msgstr "" -#: common/models.py:1543 templates/js/translated/part.js:108 +#: common/models.py:1612 templates/js/translated/part.js:108 msgid "Initial Supplier Data" msgstr "" -#: common/models.py:1545 +#: common/models.py:1614 msgid "Allow creation of initial supplier data when adding a new part" msgstr "" -#: common/models.py:1551 +#: common/models.py:1620 msgid "Part Name Display Format" msgstr "" -#: common/models.py:1552 +#: common/models.py:1621 msgid "Format to display the part name" msgstr "" -#: common/models.py:1558 +#: common/models.py:1627 msgid "Part Category Default Icon" msgstr "" -#: common/models.py:1559 +#: common/models.py:1628 msgid "Part category default icon (empty means no icon)" msgstr "" -#: common/models.py:1564 +#: common/models.py:1633 msgid "Enforce Parameter Units" msgstr "" -#: common/models.py:1566 +#: common/models.py:1635 msgid "If units are provided, parameter values must match the specified units" msgstr "" -#: common/models.py:1572 +#: common/models.py:1641 msgid "Minimum Pricing Decimal Places" msgstr "" -#: common/models.py:1574 +#: common/models.py:1643 msgid "Minimum number of decimal places to display when rendering pricing data" msgstr "" -#: common/models.py:1585 +#: common/models.py:1654 msgid "Maximum Pricing Decimal Places" msgstr "" -#: common/models.py:1587 +#: common/models.py:1656 msgid "Maximum number of decimal places to display when rendering pricing data" msgstr "" -#: common/models.py:1598 +#: common/models.py:1667 msgid "Use Supplier Pricing" msgstr "" -#: common/models.py:1600 +#: common/models.py:1669 msgid "Include supplier price breaks in overall pricing calculations" msgstr "" -#: common/models.py:1606 +#: common/models.py:1675 msgid "Purchase History Override" msgstr "" -#: common/models.py:1608 +#: common/models.py:1677 msgid "Historical purchase order pricing overrides supplier price breaks" msgstr "" -#: common/models.py:1614 +#: common/models.py:1683 msgid "Use Stock Item Pricing" msgstr "" -#: common/models.py:1616 +#: common/models.py:1685 msgid "Use pricing from manually entered stock data for pricing calculations" msgstr "" -#: common/models.py:1622 +#: common/models.py:1691 msgid "Stock Item Pricing Age" msgstr "" -#: common/models.py:1624 +#: common/models.py:1693 msgid "Exclude stock items older than this number of days from pricing calculations" msgstr "" -#: common/models.py:1631 +#: common/models.py:1700 msgid "Use Variant Pricing" msgstr "" -#: common/models.py:1632 +#: common/models.py:1701 msgid "Include variant pricing in overall pricing calculations" msgstr "" -#: common/models.py:1637 +#: common/models.py:1706 msgid "Active Variants Only" msgstr "" -#: common/models.py:1639 +#: common/models.py:1708 msgid "Only use active variant parts for calculating variant pricing" msgstr "" -#: common/models.py:1645 +#: common/models.py:1714 msgid "Pricing Rebuild Interval" msgstr "" -#: common/models.py:1647 +#: common/models.py:1716 msgid "Number of days before part pricing is automatically updated" msgstr "" -#: common/models.py:1654 +#: common/models.py:1723 msgid "Internal Prices" msgstr "" -#: common/models.py:1655 +#: common/models.py:1724 msgid "Enable internal prices for parts" msgstr "" -#: common/models.py:1660 +#: common/models.py:1729 msgid "Internal Price Override" msgstr "" -#: common/models.py:1662 +#: common/models.py:1731 msgid "If available, internal prices override price range calculations" msgstr "" -#: common/models.py:1668 +#: common/models.py:1737 msgid "Enable label printing" msgstr "" -#: common/models.py:1669 +#: common/models.py:1738 msgid "Enable label printing from the web interface" msgstr "" -#: common/models.py:1674 +#: common/models.py:1743 msgid "Label Image DPI" msgstr "" -#: common/models.py:1676 +#: common/models.py:1745 msgid "DPI resolution when generating image files to supply to label printing plugins" msgstr "" -#: common/models.py:1682 +#: common/models.py:1751 msgid "Enable Reports" msgstr "" -#: common/models.py:1683 +#: common/models.py:1752 msgid "Enable generation of reports" msgstr "" -#: common/models.py:1688 templates/stats.html:25 +#: common/models.py:1757 templates/stats.html:25 msgid "Debug Mode" msgstr "" -#: common/models.py:1689 +#: common/models.py:1758 msgid "Generate reports in debug mode (HTML output)" msgstr "" -#: common/models.py:1694 +#: common/models.py:1763 msgid "Log Report Errors" msgstr "" -#: common/models.py:1695 +#: common/models.py:1764 msgid "Log errors which occur when generating reports" msgstr "" -#: common/models.py:1700 plugin/builtin/labels/label_sheet.py:28 -#: report/models.py:301 +#: common/models.py:1769 plugin/builtin/labels/label_sheet.py:28 +#: report/models.py:309 msgid "Page Size" msgstr "" -#: common/models.py:1701 +#: common/models.py:1770 msgid "Default page size for PDF reports" msgstr "" -#: common/models.py:1706 -msgid "Enable Test Reports" -msgstr "" - -#: common/models.py:1707 -msgid "Enable generation of test reports" -msgstr "" - -#: common/models.py:1712 -msgid "Attach Test Reports" -msgstr "" - -#: common/models.py:1714 -msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item" -msgstr "" - -#: common/models.py:1720 +#: common/models.py:1775 msgid "Globally Unique Serials" msgstr "" -#: common/models.py:1721 +#: common/models.py:1776 msgid "Serial numbers for stock items must be globally unique" msgstr "" -#: common/models.py:1726 +#: common/models.py:1781 msgid "Autofill Serial Numbers" msgstr "" -#: common/models.py:1727 +#: common/models.py:1782 msgid "Autofill serial numbers in forms" msgstr "" -#: common/models.py:1732 +#: common/models.py:1787 msgid "Delete Depleted Stock" msgstr "" -#: common/models.py:1734 +#: common/models.py:1789 msgid "Determines default behavior when a stock item is depleted" msgstr "" -#: common/models.py:1740 +#: common/models.py:1795 msgid "Batch Code Template" msgstr "" -#: common/models.py:1742 +#: common/models.py:1797 msgid "Template for generating default batch codes for stock items" msgstr "" -#: common/models.py:1747 +#: common/models.py:1802 msgid "Stock Expiry" msgstr "" -#: common/models.py:1748 +#: common/models.py:1803 msgid "Enable stock expiry functionality" msgstr "" -#: common/models.py:1753 +#: common/models.py:1808 msgid "Sell Expired Stock" msgstr "" -#: common/models.py:1754 +#: common/models.py:1809 msgid "Allow sale of expired stock" msgstr "" -#: common/models.py:1759 +#: common/models.py:1814 msgid "Stock Stale Time" msgstr "" -#: common/models.py:1761 +#: common/models.py:1816 msgid "Number of days stock items are considered stale before expiring" msgstr "" -#: common/models.py:1768 +#: common/models.py:1823 msgid "Build Expired Stock" msgstr "" -#: common/models.py:1769 +#: common/models.py:1824 msgid "Allow building with expired stock" msgstr "" -#: common/models.py:1774 +#: common/models.py:1829 msgid "Stock Ownership Control" msgstr "" -#: common/models.py:1775 +#: common/models.py:1830 msgid "Enable ownership control over stock locations and items" msgstr "" -#: common/models.py:1780 +#: common/models.py:1835 msgid "Stock Location Default Icon" msgstr "" -#: common/models.py:1781 +#: common/models.py:1836 msgid "Stock location default icon (empty means no icon)" msgstr "" -#: common/models.py:1786 +#: common/models.py:1841 msgid "Show Installed Stock Items" msgstr "" -#: common/models.py:1787 +#: common/models.py:1842 msgid "Display installed stock items in stock tables" msgstr "" -#: common/models.py:1792 +#: common/models.py:1847 msgid "Check BOM when installing items" msgstr "" -#: common/models.py:1794 +#: common/models.py:1849 msgid "Installed stock items must exist in the BOM for the parent part" msgstr "" -#: common/models.py:1800 +#: common/models.py:1855 msgid "Allow Out of Stock Transfer" msgstr "" -#: common/models.py:1802 +#: common/models.py:1857 msgid "Allow stock items which are not in stock to be transferred between stock locations" msgstr "" -#: common/models.py:1808 +#: common/models.py:1863 msgid "Build Order Reference Pattern" msgstr "" -#: common/models.py:1810 +#: common/models.py:1865 msgid "Required pattern for generating Build Order reference field" msgstr "" -#: common/models.py:1816 common/models.py:1872 common/models.py:1894 -#: common/models.py:1930 +#: common/models.py:1871 common/models.py:1927 common/models.py:1949 +#: common/models.py:1985 msgid "Require Responsible Owner" msgstr "" -#: common/models.py:1817 common/models.py:1873 common/models.py:1895 -#: common/models.py:1931 +#: common/models.py:1872 common/models.py:1928 common/models.py:1950 +#: common/models.py:1986 msgid "A responsible owner must be assigned to each order" msgstr "" -#: common/models.py:1822 +#: common/models.py:1877 msgid "Require Active Part" msgstr "" -#: common/models.py:1823 +#: common/models.py:1878 msgid "Prevent build order creation for inactive parts" msgstr "" -#: common/models.py:1828 +#: common/models.py:1883 msgid "Require Locked Part" msgstr "" -#: common/models.py:1829 +#: common/models.py:1884 msgid "Prevent build order creation for unlocked parts" msgstr "" -#: common/models.py:1834 +#: common/models.py:1889 msgid "Require Valid BOM" msgstr "" -#: common/models.py:1836 +#: common/models.py:1891 msgid "Prevent build order creation unless BOM has been validated" msgstr "" -#: common/models.py:1842 +#: common/models.py:1897 msgid "Require Closed Child Orders" msgstr "" -#: common/models.py:1844 +#: common/models.py:1899 msgid "Prevent build order completion until all child orders are closed" msgstr "" -#: common/models.py:1850 +#: common/models.py:1905 msgid "Block Until Tests Pass" msgstr "" -#: common/models.py:1852 +#: common/models.py:1907 msgid "Prevent build outputs from being completed until all required tests pass" msgstr "" -#: common/models.py:1858 +#: common/models.py:1913 msgid "Enable Return Orders" msgstr "" -#: common/models.py:1859 +#: common/models.py:1914 msgid "Enable return order functionality in the user interface" msgstr "" -#: common/models.py:1864 +#: common/models.py:1919 msgid "Return Order Reference Pattern" msgstr "" -#: common/models.py:1866 +#: common/models.py:1921 msgid "Required pattern for generating Return Order reference field" msgstr "" -#: common/models.py:1878 +#: common/models.py:1933 msgid "Edit Completed Return Orders" msgstr "" -#: common/models.py:1880 +#: common/models.py:1935 msgid "Allow editing of return orders after they have been completed" msgstr "" -#: common/models.py:1886 +#: common/models.py:1941 msgid "Sales Order Reference Pattern" msgstr "" -#: common/models.py:1888 +#: common/models.py:1943 msgid "Required pattern for generating Sales Order reference field" msgstr "" -#: common/models.py:1900 +#: common/models.py:1955 msgid "Sales Order Default Shipment" msgstr "" -#: common/models.py:1901 +#: common/models.py:1956 msgid "Enable creation of default shipment with sales orders" msgstr "" -#: common/models.py:1906 +#: common/models.py:1961 msgid "Edit Completed Sales Orders" msgstr "" -#: common/models.py:1908 +#: common/models.py:1963 msgid "Allow editing of sales orders after they have been shipped or completed" msgstr "" -#: common/models.py:1914 +#: common/models.py:1969 msgid "Mark Shipped Orders as Complete" msgstr "" -#: common/models.py:1916 +#: common/models.py:1971 msgid "Sales orders marked as shipped will automatically be completed, bypassing the \"shipped\" status" msgstr "" -#: common/models.py:1922 +#: common/models.py:1977 msgid "Purchase Order Reference Pattern" msgstr "" -#: common/models.py:1924 +#: common/models.py:1979 msgid "Required pattern for generating Purchase Order reference field" msgstr "" -#: common/models.py:1936 +#: common/models.py:1991 msgid "Edit Completed Purchase Orders" msgstr "" -#: common/models.py:1938 +#: common/models.py:1993 msgid "Allow editing of purchase orders after they have been shipped or completed" msgstr "" -#: common/models.py:1944 +#: common/models.py:1999 msgid "Auto Complete Purchase Orders" msgstr "" -#: common/models.py:1946 +#: common/models.py:2001 msgid "Automatically mark purchase orders as complete when all line items are received" msgstr "" -#: common/models.py:1953 +#: common/models.py:2008 msgid "Enable password forgot" msgstr "" -#: common/models.py:1954 +#: common/models.py:2009 msgid "Enable password forgot function on the login pages" msgstr "" -#: common/models.py:1959 +#: common/models.py:2014 msgid "Enable registration" msgstr "" -#: common/models.py:1960 +#: common/models.py:2015 msgid "Enable self-registration for users on the login pages" msgstr "" -#: common/models.py:1965 +#: common/models.py:2020 msgid "Enable SSO" msgstr "" -#: common/models.py:1966 +#: common/models.py:2021 msgid "Enable SSO on the login pages" msgstr "" -#: common/models.py:1971 +#: common/models.py:2026 msgid "Enable SSO registration" msgstr "" -#: common/models.py:1973 +#: common/models.py:2028 msgid "Enable self-registration via SSO for users on the login pages" msgstr "" -#: common/models.py:1979 +#: common/models.py:2034 msgid "Enable SSO group sync" msgstr "" -#: common/models.py:1981 +#: common/models.py:2036 msgid "Enable synchronizing InvenTree groups with groups provided by the IdP" msgstr "" -#: common/models.py:1987 +#: common/models.py:2042 msgid "SSO group key" msgstr "" -#: common/models.py:1989 +#: common/models.py:2044 msgid "The name of the groups claim attribute provided by the IdP" msgstr "" -#: common/models.py:1995 +#: common/models.py:2050 msgid "SSO group map" msgstr "" -#: common/models.py:1997 +#: common/models.py:2052 msgid "A mapping from SSO groups to local InvenTree groups. If the local group does not exist, it will be created." msgstr "" -#: common/models.py:2003 +#: common/models.py:2058 msgid "Remove groups outside of SSO" msgstr "" -#: common/models.py:2005 +#: common/models.py:2060 msgid "Whether groups assigned to the user should be removed if they are not backend by the IdP. Disabling this setting might cause security issues" msgstr "" -#: common/models.py:2011 +#: common/models.py:2066 msgid "Email required" msgstr "" -#: common/models.py:2012 +#: common/models.py:2067 msgid "Require user to supply mail on signup" msgstr "" -#: common/models.py:2017 +#: common/models.py:2072 msgid "Auto-fill SSO users" msgstr "" -#: common/models.py:2019 +#: common/models.py:2074 msgid "Automatically fill out user-details from SSO account-data" msgstr "" -#: common/models.py:2025 +#: common/models.py:2080 msgid "Mail twice" msgstr "" -#: common/models.py:2026 +#: common/models.py:2081 msgid "On signup ask users twice for their mail" msgstr "" -#: common/models.py:2031 +#: common/models.py:2086 msgid "Password twice" msgstr "" -#: common/models.py:2032 +#: common/models.py:2087 msgid "On signup ask users twice for their password" msgstr "" -#: common/models.py:2037 +#: common/models.py:2092 msgid "Allowed domains" msgstr "" -#: common/models.py:2039 +#: common/models.py:2094 msgid "Restrict signup to certain domains (comma-separated, starting with @)" msgstr "" -#: common/models.py:2045 +#: common/models.py:2100 msgid "Group on signup" msgstr "" -#: common/models.py:2047 +#: common/models.py:2102 msgid "Group to which new users are assigned on registration. If SSO group sync is enabled, this group is only set if no group can be assigned from the IdP." msgstr "" -#: common/models.py:2053 +#: common/models.py:2108 msgid "Enforce MFA" msgstr "" -#: common/models.py:2054 +#: common/models.py:2109 msgid "Users must use multifactor security." msgstr "" -#: common/models.py:2059 +#: common/models.py:2114 msgid "Check plugins on startup" msgstr "" -#: common/models.py:2061 +#: common/models.py:2116 msgid "Check that all plugins are installed on startup - enable in container environments" msgstr "" -#: common/models.py:2069 +#: common/models.py:2124 msgid "Check for plugin updates" msgstr "" -#: common/models.py:2070 +#: common/models.py:2125 msgid "Enable periodic checks for updates to installed plugins" msgstr "" -#: common/models.py:2076 +#: common/models.py:2131 msgid "Enable URL integration" msgstr "" -#: common/models.py:2077 +#: common/models.py:2132 msgid "Enable plugins to add URL routes" msgstr "" -#: common/models.py:2083 +#: common/models.py:2138 msgid "Enable navigation integration" msgstr "" -#: common/models.py:2084 +#: common/models.py:2139 msgid "Enable plugins to integrate into navigation" msgstr "" -#: common/models.py:2090 +#: common/models.py:2145 msgid "Enable app integration" msgstr "" -#: common/models.py:2091 +#: common/models.py:2146 msgid "Enable plugins to add apps" msgstr "" -#: common/models.py:2097 +#: common/models.py:2152 msgid "Enable schedule integration" msgstr "" -#: common/models.py:2098 +#: common/models.py:2153 msgid "Enable plugins to run scheduled tasks" msgstr "" -#: common/models.py:2104 +#: common/models.py:2159 msgid "Enable event integration" msgstr "" -#: common/models.py:2105 +#: common/models.py:2160 msgid "Enable plugins to respond to internal events" msgstr "" -#: common/models.py:2111 +#: common/models.py:2166 +msgid "Enable interface integration" +msgstr "" + +#: common/models.py:2167 +msgid "Enable plugins to integrate into the user interface" +msgstr "" + +#: common/models.py:2173 msgid "Enable project codes" msgstr "" -#: common/models.py:2112 +#: common/models.py:2174 msgid "Enable project codes for tracking projects" msgstr "" -#: common/models.py:2117 +#: common/models.py:2179 msgid "Stocktake Functionality" msgstr "" -#: common/models.py:2119 +#: common/models.py:2181 msgid "Enable stocktake functionality for recording stock levels and calculating stock value" msgstr "" -#: common/models.py:2125 +#: common/models.py:2187 msgid "Exclude External Locations" msgstr "" -#: common/models.py:2127 +#: common/models.py:2189 msgid "Exclude stock items in external locations from stocktake calculations" msgstr "" -#: common/models.py:2133 +#: common/models.py:2195 msgid "Automatic Stocktake Period" msgstr "" -#: common/models.py:2135 +#: common/models.py:2197 msgid "Number of days between automatic stocktake recording (set to zero to disable)" msgstr "" -#: common/models.py:2141 +#: common/models.py:2203 msgid "Report Deletion Interval" msgstr "" -#: common/models.py:2143 +#: common/models.py:2205 msgid "Stocktake reports will be deleted after specified number of days" msgstr "" -#: common/models.py:2150 +#: common/models.py:2212 msgid "Display Users full names" msgstr "" -#: common/models.py:2151 +#: common/models.py:2213 msgid "Display Users full names instead of usernames" msgstr "" -#: common/models.py:2156 +#: common/models.py:2218 msgid "Enable Test Station Data" msgstr "" -#: common/models.py:2157 +#: common/models.py:2219 msgid "Enable test station data collection for test results" msgstr "" -#: common/models.py:2169 common/models.py:2549 -msgid "Settings key (must be unique - case insensitive" -msgstr "" - -#: common/models.py:2212 -msgid "Hide inactive parts" -msgstr "" - -#: common/models.py:2214 -msgid "Hide inactive parts in results displayed on the homepage" -msgstr "" - -#: common/models.py:2220 -msgid "Show subscribed parts" -msgstr "" - -#: common/models.py:2221 -msgid "Show subscribed parts on the homepage" +#: common/models.py:2224 +msgid "Create Template on Upload" msgstr "" #: common/models.py:2226 -msgid "Show subscribed categories" +msgid "Create a new test template when uploading test data which does not match an existing template" msgstr "" -#: common/models.py:2227 -msgid "Show subscribed part categories on the homepage" -msgstr "" - -#: common/models.py:2232 -msgid "Show latest parts" -msgstr "" - -#: common/models.py:2233 -msgid "Show latest parts on the homepage" -msgstr "" - -#: common/models.py:2238 -msgid "Show invalid BOMs" -msgstr "" - -#: common/models.py:2239 -msgid "Show BOMs that await validation on the homepage" -msgstr "" - -#: common/models.py:2244 -msgid "Show recent stock changes" -msgstr "" - -#: common/models.py:2245 -msgid "Show recently changed stock items on the homepage" -msgstr "" - -#: common/models.py:2250 -msgid "Show low stock" -msgstr "" - -#: common/models.py:2251 -msgid "Show low stock items on the homepage" -msgstr "" - -#: common/models.py:2256 -msgid "Show depleted stock" -msgstr "" - -#: common/models.py:2257 -msgid "Show depleted stock items on the homepage" -msgstr "" - -#: common/models.py:2262 -msgid "Show needed stock" -msgstr "" - -#: common/models.py:2263 -msgid "Show stock items needed for builds on the homepage" -msgstr "" - -#: common/models.py:2268 -msgid "Show expired stock" -msgstr "" - -#: common/models.py:2269 -msgid "Show expired stock items on the homepage" -msgstr "" - -#: common/models.py:2274 -msgid "Show stale stock" -msgstr "" - -#: common/models.py:2275 -msgid "Show stale stock items on the homepage" -msgstr "" - -#: common/models.py:2280 -msgid "Show pending builds" +#: common/models.py:2279 +msgid "Hide inactive parts" msgstr "" #: common/models.py:2281 -msgid "Show pending builds on the homepage" -msgstr "" - -#: common/models.py:2286 -msgid "Show overdue builds" +msgid "Hide inactive parts in results displayed on the homepage" msgstr "" #: common/models.py:2287 -msgid "Show overdue builds on the homepage" +msgid "Show subscribed parts" msgstr "" -#: common/models.py:2292 -msgid "Show outstanding POs" +#: common/models.py:2288 +msgid "Show subscribed parts on the homepage" msgstr "" #: common/models.py:2293 -msgid "Show outstanding POs on the homepage" +msgid "Show subscribed categories" msgstr "" -#: common/models.py:2298 -msgid "Show overdue POs" +#: common/models.py:2294 +msgid "Show subscribed part categories on the homepage" msgstr "" #: common/models.py:2299 -msgid "Show overdue POs on the homepage" +msgid "Show latest parts" msgstr "" -#: common/models.py:2304 -msgid "Show outstanding SOs" +#: common/models.py:2300 +msgid "Show latest parts on the homepage" msgstr "" #: common/models.py:2305 -msgid "Show outstanding SOs on the homepage" +msgid "Show invalid BOMs" msgstr "" -#: common/models.py:2310 -msgid "Show overdue SOs" +#: common/models.py:2306 +msgid "Show BOMs that await validation on the homepage" msgstr "" #: common/models.py:2311 -msgid "Show overdue SOs on the homepage" +msgid "Show recent stock changes" msgstr "" -#: common/models.py:2316 -msgid "Show pending SO shipments" +#: common/models.py:2312 +msgid "Show recently changed stock items on the homepage" msgstr "" #: common/models.py:2317 -msgid "Show pending SO shipments on the homepage" +msgid "Show low stock" msgstr "" -#: common/models.py:2322 -msgid "Show News" +#: common/models.py:2318 +msgid "Show low stock items on the homepage" msgstr "" #: common/models.py:2323 -msgid "Show news on the homepage" +msgid "Show depleted stock" msgstr "" -#: common/models.py:2328 -msgid "Inline label display" +#: common/models.py:2324 +msgid "Show depleted stock items on the homepage" +msgstr "" + +#: common/models.py:2329 +msgid "Show needed stock" msgstr "" #: common/models.py:2330 -msgid "Display PDF labels in the browser, instead of downloading as a file" +msgid "Show stock items needed for builds on the homepage" +msgstr "" + +#: common/models.py:2335 +msgid "Show expired stock" msgstr "" #: common/models.py:2336 -msgid "Default label printer" +msgid "Show expired stock items on the homepage" msgstr "" -#: common/models.py:2338 -msgid "Configure which label printer should be selected by default" +#: common/models.py:2341 +msgid "Show stale stock" msgstr "" -#: common/models.py:2344 -msgid "Inline report display" +#: common/models.py:2342 +msgid "Show stale stock items on the homepage" msgstr "" -#: common/models.py:2346 -msgid "Display PDF reports in the browser, instead of downloading as a file" +#: common/models.py:2347 +msgid "Show pending builds" msgstr "" -#: common/models.py:2352 -msgid "Search Parts" +#: common/models.py:2348 +msgid "Show pending builds on the homepage" msgstr "" #: common/models.py:2353 -msgid "Display parts in search preview window" +msgid "Show overdue builds" msgstr "" -#: common/models.py:2358 -msgid "Search Supplier Parts" +#: common/models.py:2354 +msgid "Show overdue builds on the homepage" msgstr "" #: common/models.py:2359 -msgid "Display supplier parts in search preview window" +msgid "Show outstanding POs" msgstr "" -#: common/models.py:2364 -msgid "Search Manufacturer Parts" +#: common/models.py:2360 +msgid "Show outstanding POs on the homepage" msgstr "" #: common/models.py:2365 -msgid "Display manufacturer parts in search preview window" +msgid "Show overdue POs" msgstr "" -#: common/models.py:2370 -msgid "Hide Inactive Parts" +#: common/models.py:2366 +msgid "Show overdue POs on the homepage" msgstr "" #: common/models.py:2371 -msgid "Excluded inactive parts from search preview window" +msgid "Show outstanding SOs" msgstr "" -#: common/models.py:2376 -msgid "Search Categories" +#: common/models.py:2372 +msgid "Show outstanding SOs on the homepage" msgstr "" #: common/models.py:2377 -msgid "Display part categories in search preview window" +msgid "Show overdue SOs" msgstr "" -#: common/models.py:2382 -msgid "Search Stock" +#: common/models.py:2378 +msgid "Show overdue SOs on the homepage" msgstr "" #: common/models.py:2383 -msgid "Display stock items in search preview window" +msgid "Show pending SO shipments" msgstr "" -#: common/models.py:2388 -msgid "Hide Unavailable Stock Items" +#: common/models.py:2384 +msgid "Show pending SO shipments on the homepage" +msgstr "" + +#: common/models.py:2389 +msgid "Show News" msgstr "" #: common/models.py:2390 -msgid "Exclude stock items which are not available from the search preview window" +msgid "Show news on the homepage" msgstr "" -#: common/models.py:2396 -msgid "Search Locations" +#: common/models.py:2395 +msgid "Inline label display" msgstr "" #: common/models.py:2397 -msgid "Display stock locations in search preview window" -msgstr "" - -#: common/models.py:2402 -msgid "Search Companies" +msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "" #: common/models.py:2403 -msgid "Display companies in search preview window" +msgid "Default label printer" msgstr "" -#: common/models.py:2408 -msgid "Search Build Orders" +#: common/models.py:2405 +msgid "Configure which label printer should be selected by default" msgstr "" -#: common/models.py:2409 -msgid "Display build orders in search preview window" +#: common/models.py:2411 +msgid "Inline report display" msgstr "" -#: common/models.py:2414 -msgid "Search Purchase Orders" +#: common/models.py:2413 +msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:2415 -msgid "Display purchase orders in search preview window" +#: common/models.py:2419 +msgid "Search Parts" msgstr "" #: common/models.py:2420 -msgid "Exclude Inactive Purchase Orders" +msgid "Display parts in search preview window" msgstr "" -#: common/models.py:2422 -msgid "Exclude inactive purchase orders from search preview window" +#: common/models.py:2425 +msgid "Search Supplier Parts" msgstr "" -#: common/models.py:2428 -msgid "Search Sales Orders" +#: common/models.py:2426 +msgid "Display supplier parts in search preview window" msgstr "" -#: common/models.py:2429 -msgid "Display sales orders in search preview window" +#: common/models.py:2431 +msgid "Search Manufacturer Parts" msgstr "" -#: common/models.py:2434 -msgid "Exclude Inactive Sales Orders" +#: common/models.py:2432 +msgid "Display manufacturer parts in search preview window" msgstr "" -#: common/models.py:2436 -msgid "Exclude inactive sales orders from search preview window" +#: common/models.py:2437 +msgid "Hide Inactive Parts" msgstr "" -#: common/models.py:2442 -msgid "Search Return Orders" +#: common/models.py:2438 +msgid "Excluded inactive parts from search preview window" msgstr "" #: common/models.py:2443 -msgid "Display return orders in search preview window" +msgid "Search Categories" msgstr "" -#: common/models.py:2448 -msgid "Exclude Inactive Return Orders" +#: common/models.py:2444 +msgid "Display part categories in search preview window" +msgstr "" + +#: common/models.py:2449 +msgid "Search Stock" msgstr "" #: common/models.py:2450 -msgid "Exclude inactive return orders from search preview window" +msgid "Display stock items in search preview window" msgstr "" -#: common/models.py:2456 -msgid "Search Preview Results" +#: common/models.py:2455 +msgid "Hide Unavailable Stock Items" msgstr "" -#: common/models.py:2458 -msgid "Number of results to show in each section of the search preview window" +#: common/models.py:2457 +msgid "Exclude stock items which are not available from the search preview window" +msgstr "" + +#: common/models.py:2463 +msgid "Search Locations" msgstr "" #: common/models.py:2464 -msgid "Regex Search" +msgid "Display stock locations in search preview window" msgstr "" -#: common/models.py:2465 -msgid "Enable regular expressions in search queries" +#: common/models.py:2469 +msgid "Search Companies" msgstr "" #: common/models.py:2470 -msgid "Whole Word Search" +msgid "Display companies in search preview window" msgstr "" -#: common/models.py:2471 -msgid "Search queries return results for whole word matches" +#: common/models.py:2475 +msgid "Search Build Orders" msgstr "" #: common/models.py:2476 -msgid "Show Quantity in Forms" +msgid "Display build orders in search preview window" msgstr "" -#: common/models.py:2477 -msgid "Display available part quantity in some forms" +#: common/models.py:2481 +msgid "Search Purchase Orders" msgstr "" #: common/models.py:2482 -msgid "Escape Key Closes Forms" +msgid "Display purchase orders in search preview window" msgstr "" -#: common/models.py:2483 -msgid "Use the escape key to close modal forms" -msgstr "" - -#: common/models.py:2488 -msgid "Fixed Navbar" +#: common/models.py:2487 +msgid "Exclude Inactive Purchase Orders" msgstr "" #: common/models.py:2489 -msgid "The navbar position is fixed to the top of the screen" -msgstr "" - -#: common/models.py:2494 -msgid "Date Format" +msgid "Exclude inactive purchase orders from search preview window" msgstr "" #: common/models.py:2495 -msgid "Preferred format for displaying dates" +msgid "Search Sales Orders" msgstr "" -#: common/models.py:2508 part/templates/part/detail.html:41 -msgid "Part Scheduling" +#: common/models.py:2496 +msgid "Display sales orders in search preview window" +msgstr "" + +#: common/models.py:2501 +msgid "Exclude Inactive Sales Orders" +msgstr "" + +#: common/models.py:2503 +msgid "Exclude inactive sales orders from search preview window" msgstr "" #: common/models.py:2509 -msgid "Display part scheduling information" +msgid "Search Return Orders" msgstr "" -#: common/models.py:2514 part/templates/part/detail.html:62 -msgid "Part Stocktake" +#: common/models.py:2510 +msgid "Display return orders in search preview window" msgstr "" -#: common/models.py:2516 -msgid "Display part stocktake information (if stocktake functionality is enabled)" +#: common/models.py:2515 +msgid "Exclude Inactive Return Orders" msgstr "" -#: common/models.py:2522 -msgid "Table String Length" +#: common/models.py:2517 +msgid "Exclude inactive return orders from search preview window" msgstr "" -#: common/models.py:2524 -msgid "Maximum length limit for strings displayed in table views" +#: common/models.py:2523 +msgid "Search Preview Results" msgstr "" -#: common/models.py:2530 -msgid "Receive error reports" +#: common/models.py:2525 +msgid "Number of results to show in each section of the search preview window" msgstr "" #: common/models.py:2531 -msgid "Receive notifications for system errors" +msgid "Regex Search" msgstr "" -#: common/models.py:2536 -msgid "Last used printing machines" +#: common/models.py:2532 +msgid "Enable regular expressions in search queries" msgstr "" #: common/models.py:2537 +msgid "Whole Word Search" +msgstr "" + +#: common/models.py:2538 +msgid "Search queries return results for whole word matches" +msgstr "" + +#: common/models.py:2543 +msgid "Show Quantity in Forms" +msgstr "" + +#: common/models.py:2544 +msgid "Display available part quantity in some forms" +msgstr "" + +#: common/models.py:2549 +msgid "Escape Key Closes Forms" +msgstr "" + +#: common/models.py:2550 +msgid "Use the escape key to close modal forms" +msgstr "" + +#: common/models.py:2555 +msgid "Fixed Navbar" +msgstr "" + +#: common/models.py:2556 +msgid "The navbar position is fixed to the top of the screen" +msgstr "" + +#: common/models.py:2561 +msgid "Date Format" +msgstr "" + +#: common/models.py:2562 +msgid "Preferred format for displaying dates" +msgstr "" + +#: common/models.py:2575 part/templates/part/detail.html:41 +msgid "Part Scheduling" +msgstr "" + +#: common/models.py:2576 +msgid "Display part scheduling information" +msgstr "" + +#: common/models.py:2581 part/templates/part/detail.html:62 +msgid "Part Stocktake" +msgstr "" + +#: common/models.py:2583 +msgid "Display part stocktake information (if stocktake functionality is enabled)" +msgstr "" + +#: common/models.py:2589 +msgid "Table String Length" +msgstr "" + +#: common/models.py:2591 +msgid "Maximum length limit for strings displayed in table views" +msgstr "" + +#: common/models.py:2597 +msgid "Receive error reports" +msgstr "" + +#: common/models.py:2598 +msgid "Receive notifications for system errors" +msgstr "" + +#: common/models.py:2603 +msgid "Last used printing machines" +msgstr "" + +#: common/models.py:2604 msgid "Save the last used printing machines for a user" msgstr "" -#: common/models.py:2557 common/models.py:2558 common/models.py:2715 -#: common/models.py:2716 common/models.py:2961 common/models.py:2962 -#: common/models.py:3288 common/models.py:3289 importer/models.py:88 -#: part/models.py:3307 part/models.py:3394 part/models.py:3468 -#: part/models.py:3496 plugin/models.py:274 plugin/models.py:275 -#: report/templates/report/inventree_test_report.html:105 -#: templates/js/translated/stock.js:3120 users/models.py:111 +#: common/models.py:2621 common/models.py:2622 common/models.py:2779 +#: common/models.py:2780 common/models.py:3025 common/models.py:3026 +#: common/models.py:3349 common/models.py:3350 common/models.py:3534 +#: importer/models.py:89 part/models.py:3358 part/models.py:3445 +#: part/models.py:3519 part/models.py:3547 plugin/models.py:313 +#: plugin/models.py:314 report/templates/report/inventree_test_report.html:105 +#: templates/js/translated/stock.js:3121 users/models.py:111 msgid "User" msgstr "" -#: common/models.py:2580 +#: common/models.py:2644 msgid "Price break quantity" msgstr "" -#: common/models.py:2587 company/serializers.py:513 order/admin.py:42 -#: order/models.py:1430 order/models.py:2417 -#: templates/js/translated/company.js:1823 templates/js/translated/part.js:1892 +#: common/models.py:2651 company/serializers.py:524 order/admin.py:42 +#: order/models.py:1447 order/models.py:2456 +#: templates/js/translated/company.js:1824 templates/js/translated/part.js:1892 #: templates/js/translated/pricing.js:621 #: templates/js/translated/return_order.js:739 msgid "Price" msgstr "" -#: common/models.py:2588 +#: common/models.py:2652 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:2692 common/models.py:2877 +#: common/models.py:2756 common/models.py:2941 msgid "Endpoint" msgstr "" -#: common/models.py:2693 +#: common/models.py:2757 msgid "Endpoint at which this webhook is received" msgstr "" -#: common/models.py:2703 +#: common/models.py:2767 msgid "Name for this webhook" msgstr "" -#: common/models.py:2707 +#: common/models.py:2771 msgid "Is this webhook active" msgstr "" -#: common/models.py:2723 users/models.py:159 +#: common/models.py:2787 users/models.py:159 msgid "Token" msgstr "" -#: common/models.py:2724 +#: common/models.py:2788 msgid "Token for access" msgstr "" -#: common/models.py:2732 +#: common/models.py:2796 msgid "Secret" msgstr "" -#: common/models.py:2733 +#: common/models.py:2797 msgid "Shared secret for HMAC" msgstr "" -#: common/models.py:2841 +#: common/models.py:2905 msgid "Message ID" msgstr "" -#: common/models.py:2842 +#: common/models.py:2906 msgid "Unique identifier for this message" msgstr "" -#: common/models.py:2850 +#: common/models.py:2914 msgid "Host" msgstr "" -#: common/models.py:2851 +#: common/models.py:2915 msgid "Host from which this message was received" msgstr "" -#: common/models.py:2859 +#: common/models.py:2923 msgid "Header" msgstr "" -#: common/models.py:2860 +#: common/models.py:2924 msgid "Header of this message" msgstr "" -#: common/models.py:2867 +#: common/models.py:2931 msgid "Body" msgstr "" -#: common/models.py:2868 +#: common/models.py:2932 msgid "Body of this message" msgstr "" -#: common/models.py:2878 +#: common/models.py:2942 msgid "Endpoint on which this message was received" msgstr "" -#: common/models.py:2883 +#: common/models.py:2947 msgid "Worked on" msgstr "" -#: common/models.py:2884 +#: common/models.py:2948 msgid "Was the work on this message finished?" msgstr "" -#: common/models.py:3010 +#: common/models.py:3074 msgid "Id" msgstr "" -#: common/models.py:3012 templates/js/translated/company.js:965 -#: templates/js/translated/news.js:44 +#: common/models.py:3076 part/serializers.py:271 +#: templates/js/translated/company.js:966 templates/js/translated/news.js:44 msgid "Title" msgstr "" -#: common/models.py:3014 common/models.py:3272 company/models.py:149 -#: company/models.py:446 company/models.py:512 company/models.py:818 -#: order/models.py:302 order/models.py:1385 order/models.py:1817 -#: part/admin.py:55 part/models.py:1057 +#: common/models.py:3078 common/models.py:3333 company/models.py:146 +#: company/models.py:443 company/models.py:509 company/models.py:815 +#: order/models.py:309 order/models.py:1402 order/models.py:1846 +#: part/admin.py:55 part/models.py:1118 #: part/templates/part/part_scheduling.html:11 #: report/templates/report/inventree_build_order_report.html:164 -#: stock/admin.py:229 templates/js/translated/company.js:1319 -#: templates/js/translated/company.js:1673 templates/js/translated/order.js:376 +#: stock/admin.py:230 templates/js/translated/company.js:1320 +#: templates/js/translated/company.js:1674 templates/js/translated/order.js:376 #: templates/js/translated/part.js:2475 -#: templates/js/translated/purchase_order.js:2110 -#: templates/js/translated/purchase_order.js:2274 +#: templates/js/translated/purchase_order.js:2094 +#: templates/js/translated/purchase_order.js:2258 #: templates/js/translated/return_order.js:778 -#: templates/js/translated/sales_order.js:1092 -#: templates/js/translated/sales_order.js:2023 +#: templates/js/translated/sales_order.js:1058 +#: templates/js/translated/sales_order.js:2004 msgid "Link" msgstr "" -#: common/models.py:3016 templates/js/translated/news.js:60 +#: common/models.py:3080 templates/js/translated/news.js:60 msgid "Published" msgstr "" -#: common/models.py:3018 templates/InvenTree/settings/plugin_settings.html:32 +#: common/models.py:3082 templates/InvenTree/settings/plugin_settings.html:32 #: templates/js/translated/news.js:56 templates/js/translated/plugin.js:103 msgid "Author" msgstr "" -#: common/models.py:3020 templates/js/translated/news.js:52 +#: common/models.py:3084 templates/js/translated/news.js:52 msgid "Summary" msgstr "" -#: common/models.py:3023 +#: common/models.py:3087 msgid "Read" msgstr "" -#: common/models.py:3023 +#: common/models.py:3087 msgid "Was this news item read?" msgstr "" -#: common/models.py:3040 company/models.py:159 part/models.py:1067 +#: common/models.py:3104 company/models.py:156 part/models.py:1128 #: report/templates/report/inventree_bill_of_materials_report.html:126 #: report/templates/report/inventree_bill_of_materials_report.html:148 #: report/templates/report/inventree_return_order_report.html:35 -#: stock/templates/stock/item_base.html:133 templates/503.html:31 +#: stock/templates/stock/item_base.html:130 templates/503.html:31 #: templates/hover_image.html:7 templates/hover_image.html:9 #: templates/modals.html:6 msgid "Image" msgstr "" -#: common/models.py:3040 +#: common/models.py:3104 msgid "Image file" msgstr "" -#: common/models.py:3052 common/models.py:3256 +#: common/models.py:3116 common/models.py:3317 msgid "Target model type for this image" msgstr "" -#: common/models.py:3056 +#: common/models.py:3120 msgid "Target model ID for this image" msgstr "" -#: common/models.py:3078 +#: common/models.py:3142 msgid "Custom Unit" msgstr "" -#: common/models.py:3099 +#: common/models.py:3160 msgid "Unit symbol must be unique" msgstr "" -#: common/models.py:3114 +#: common/models.py:3175 msgid "Unit name must be a valid identifier" msgstr "" -#: common/models.py:3133 +#: common/models.py:3194 msgid "Unit name" msgstr "" -#: common/models.py:3140 templates/InvenTree/settings/settings_staff_js.html:75 +#: common/models.py:3201 templates/InvenTree/settings/settings_staff_js.html:75 msgid "Symbol" msgstr "" -#: common/models.py:3141 +#: common/models.py:3202 msgid "Optional unit symbol" msgstr "" -#: common/models.py:3147 templates/InvenTree/settings/settings_staff_js.html:71 +#: common/models.py:3208 templates/InvenTree/settings/settings_staff_js.html:71 msgid "Definition" msgstr "" -#: common/models.py:3148 +#: common/models.py:3209 msgid "Unit definition" msgstr "" -#: common/models.py:3206 common/models.py:3263 stock/models.py:2558 -#: templates/js/translated/attachment.js:119 +#: common/models.py:3267 common/models.py:3324 stock/models.py:2674 +#: stock/serializers.py:244 templates/js/translated/attachment.js:119 #: templates/js/translated/attachment.js:345 msgid "Attachment" msgstr "" -#: common/models.py:3218 +#: common/models.py:3279 msgid "Missing file" msgstr "" -#: common/models.py:3219 +#: common/models.py:3280 msgid "Missing external link" msgstr "" -#: common/models.py:3264 +#: common/models.py:3325 msgid "Select file to attach" msgstr "" -#: common/models.py:3279 templates/js/translated/attachment.js:120 +#: common/models.py:3340 templates/js/translated/attachment.js:120 #: templates/js/translated/attachment.js:360 msgid "Comment" msgstr "" -#: common/models.py:3280 +#: common/models.py:3341 msgid "Attachment comment" msgstr "" -#: common/models.py:3296 +#: common/models.py:3357 msgid "Upload date" msgstr "" -#: common/models.py:3297 +#: common/models.py:3358 msgid "Date the file was uploaded" msgstr "" -#: common/models.py:3301 +#: common/models.py:3362 msgid "File size" msgstr "" -#: common/models.py:3301 +#: common/models.py:3362 msgid "File size in bytes" msgstr "" -#: common/models.py:3339 common/serializers.py:562 +#: common/models.py:3400 common/serializers.py:609 msgid "Invalid model type specified for attachment" msgstr "" -#: common/notifications.py:314 +#: common/models.py:3409 plugin/models.py:43 users/models.py:100 +msgid "Key" +msgstr "" + +#: common/models.py:3410 +msgid "Value that will be saved in the models database" +msgstr "" + +#: common/models.py:3413 +msgid "Name of the state" +msgstr "" + +#: common/models.py:3417 part/serializers.py:273 +msgid "Label" +msgstr "" + +#: common/models.py:3418 +msgid "Label that will be displayed in the frontend" +msgstr "" + +#: common/models.py:3424 +msgid "Color" +msgstr "" + +#: common/models.py:3425 +msgid "Color that will be displayed in the frontend" +msgstr "" + +#: common/models.py:3428 +msgid "Logical Key" +msgstr "" + +#: common/models.py:3430 +msgid "State logical key that is equal to this custom state in business logic" +msgstr "" + +#: common/models.py:3438 part/serializers.py:275 +msgid "Model" +msgstr "" + +#: common/models.py:3439 +msgid "Model this state is associated with" +msgstr "" + +#: common/models.py:3443 +msgid "Reference Status Set" +msgstr "" + +#: common/models.py:3444 +msgid "Status set that is extended with this custom state" +msgstr "" + +#: common/models.py:3450 +msgid "Custom State" +msgstr "" + +#: common/models.py:3451 +msgid "Custom States" +msgstr "" + +#: common/models.py:3466 +msgid "Model must be selected" +msgstr "" + +#: common/models.py:3469 +msgid "Key must be selected" +msgstr "" + +#: common/models.py:3472 +msgid "Logical key must be selected" +msgstr "" + +#: common/models.py:3476 +msgid "Key must be different from logical key" +msgstr "" + +#: common/models.py:3480 +msgid "Reference status must be selected" +msgstr "" + +#: common/models.py:3492 +msgid "Reference status set not found" +msgstr "" + +#: common/models.py:3498 +msgid "Key must be different from the logical keys of the reference status" +msgstr "" + +#: common/models.py:3504 +msgid "Logical key must be in the logical keys of the reference status" +msgstr "" + +#: common/models.py:3519 +msgid "Barcode Scan" +msgstr "" + +#: common/models.py:3523 importer/models.py:512 part/models.py:4009 +msgid "Data" +msgstr "" + +#: common/models.py:3524 +msgid "Barcode data" +msgstr "" + +#: common/models.py:3535 +msgid "User who scanned the barcode" +msgstr "" + +#: common/models.py:3540 importer/models.py:60 +msgid "Timestamp" +msgstr "" + +#: common/models.py:3541 +msgid "Date and time of the barcode scan" +msgstr "" + +#: common/models.py:3547 +msgid "URL endpoint which processed the barcode" +msgstr "" + +#: common/models.py:3554 order/models.py:1437 plugin/serializers.py:89 +msgid "Context" +msgstr "" + +#: common/models.py:3555 +msgid "Context data for the barcode scan" +msgstr "" + +#: common/models.py:3562 +msgid "Response" +msgstr "" + +#: common/models.py:3563 +msgid "Response data from the barcode scan" +msgstr "" + +#: common/models.py:3569 report/templates/report/inventree_test_report.html:103 +#: stock/models.py:2660 +msgid "Result" +msgstr "" + +#: common/models.py:3570 +msgid "Was the barcode scan successful?" +msgstr "" + +#: common/notifications.py:328 #, python-brace-format msgid "New {verbose_name}" msgstr "" -#: common/notifications.py:316 +#: common/notifications.py:330 msgid "A new order has been created and assigned to you" msgstr "" -#: common/notifications.py:322 +#: common/notifications.py:336 #, python-brace-format msgid "{verbose_name} canceled" msgstr "" -#: common/notifications.py:324 +#: common/notifications.py:338 msgid "A order that is assigned to you was canceled" msgstr "" -#: common/notifications.py:330 common/notifications.py:337 order/api.py:462 +#: common/notifications.py:344 common/notifications.py:351 order/api.py:440 msgid "Items Received" msgstr "" -#: common/notifications.py:332 +#: common/notifications.py:346 msgid "Items have been received against a purchase order" msgstr "" -#: common/notifications.py:339 +#: common/notifications.py:353 msgid "Items have been received against a return order" msgstr "" -#: common/notifications.py:457 +#: common/notifications.py:475 msgid "Error raised by plugin" msgstr "" -#: common/serializers.py:375 +#: common/serializers.py:423 msgid "Is Running" msgstr "" -#: common/serializers.py:381 +#: common/serializers.py:429 msgid "Pending Tasks" msgstr "" -#: common/serializers.py:387 +#: common/serializers.py:435 msgid "Scheduled Tasks" msgstr "" -#: common/serializers.py:393 +#: common/serializers.py:441 msgid "Failed Tasks" msgstr "" -#: common/serializers.py:408 +#: common/serializers.py:456 msgid "Task ID" msgstr "" -#: common/serializers.py:408 +#: common/serializers.py:456 msgid "Unique task ID" msgstr "" -#: common/serializers.py:410 +#: common/serializers.py:458 msgid "Lock" msgstr "" -#: common/serializers.py:410 +#: common/serializers.py:458 msgid "Lock time" msgstr "" -#: common/serializers.py:412 +#: common/serializers.py:460 msgid "Task name" msgstr "" -#: common/serializers.py:414 +#: common/serializers.py:462 msgid "Function" msgstr "" -#: common/serializers.py:414 +#: common/serializers.py:462 msgid "Function name" msgstr "" -#: common/serializers.py:416 +#: common/serializers.py:464 msgid "Arguments" msgstr "" -#: common/serializers.py:416 +#: common/serializers.py:464 msgid "Task arguments" msgstr "" -#: common/serializers.py:419 +#: common/serializers.py:467 msgid "Keyword Arguments" msgstr "" -#: common/serializers.py:419 +#: common/serializers.py:467 msgid "Task keyword arguments" msgstr "" -#: common/serializers.py:529 +#: common/serializers.py:577 msgid "Filename" msgstr "" -#: common/serializers.py:536 report/api.py:100 report/serializers.py:53 +#: common/serializers.py:584 report/api.py:100 report/serializers.py:54 msgid "Model Type" msgstr "" -#: common/serializers.py:565 +#: common/serializers.py:612 msgid "User does not have permission to create or edit attachments for this model" msgstr "" @@ -4116,15 +4295,15 @@ msgstr "" msgid "Match Items" msgstr "" -#: common/views.py:401 +#: common/views.py:397 msgid "Fields matching failed" msgstr "" -#: common/views.py:464 +#: common/views.py:460 msgid "Parts imported" msgstr "" -#: common/views.py:494 order/templates/order/order_wizard/match_fields.html:27 +#: common/views.py:490 order/templates/order/order_wizard/match_fields.html:27 #: order/templates/order/order_wizard/match_parts.html:19 #: order/templates/order/order_wizard/po_upload.html:49 #: part/templates/part/import_wizard/match_fields.html:27 @@ -4155,429 +4334,429 @@ msgstr "" msgid "Supplier is Active" msgstr "" -#: company/models.py:100 company/models.py:371 +#: company/models.py:97 company/models.py:368 #: company/templates/company/company_base.html:8 #: company/templates/company/company_base.html:12 stock/api.py:812 -#: templates/InvenTree/search.html:178 templates/js/translated/company.js:496 +#: templates/InvenTree/search.html:178 templates/js/translated/company.js:497 msgid "Company" msgstr "" -#: company/models.py:101 company/views.py:51 +#: company/models.py:98 company/views.py:51 #: templates/js/translated/search.js:192 msgid "Companies" msgstr "" -#: company/models.py:117 +#: company/models.py:114 msgid "Company description" msgstr "" -#: company/models.py:118 +#: company/models.py:115 msgid "Description of the company" msgstr "" -#: company/models.py:123 company/templates/company/company_base.html:106 +#: company/models.py:120 company/templates/company/company_base.html:106 #: templates/InvenTree/settings/plugin_settings.html:54 -#: templates/js/translated/company.js:532 +#: templates/js/translated/company.js:533 msgid "Website" msgstr "" -#: company/models.py:123 +#: company/models.py:120 msgid "Company website URL" msgstr "" -#: company/models.py:128 +#: company/models.py:125 msgid "Phone number" msgstr "" -#: company/models.py:130 +#: company/models.py:127 msgid "Contact phone number" msgstr "" -#: company/models.py:137 +#: company/models.py:134 msgid "Contact email address" msgstr "" -#: company/models.py:142 company/models.py:275 -#: company/templates/company/company_base.html:145 order/models.py:342 -#: order/templates/order/order_base.html:208 -#: order/templates/order/return_order_base.html:177 -#: order/templates/order/sales_order_base.html:221 +#: company/models.py:139 company/models.py:272 +#: company/templates/company/company_base.html:145 order/models.py:349 +#: order/templates/order/order_base.html:217 +#: order/templates/order/return_order_base.html:178 +#: order/templates/order/sales_order_base.html:222 msgid "Contact" msgstr "" -#: company/models.py:144 +#: company/models.py:141 msgid "Point of contact" msgstr "" -#: company/models.py:150 +#: company/models.py:147 msgid "Link to external company information" msgstr "" -#: company/models.py:163 +#: company/models.py:160 msgid "Is this company active?" msgstr "" -#: company/models.py:168 +#: company/models.py:165 msgid "Is customer" msgstr "" -#: company/models.py:169 +#: company/models.py:166 msgid "Do you sell items to this company?" msgstr "" -#: company/models.py:174 +#: company/models.py:171 msgid "Is supplier" msgstr "" -#: company/models.py:175 +#: company/models.py:172 msgid "Do you purchase items from this company?" msgstr "" -#: company/models.py:180 +#: company/models.py:177 msgid "Is manufacturer" msgstr "" -#: company/models.py:181 +#: company/models.py:178 msgid "Does this company manufacture parts?" msgstr "" -#: company/models.py:189 +#: company/models.py:186 msgid "Default currency used for this company" msgstr "" -#: company/models.py:314 company/templates/company/company_base.html:124 -#: order/models.py:352 order/templates/order/order_base.html:215 -#: order/templates/order/return_order_base.html:184 -#: order/templates/order/sales_order_base.html:228 +#: company/models.py:311 company/templates/company/company_base.html:124 +#: order/models.py:359 order/templates/order/order_base.html:224 +#: order/templates/order/return_order_base.html:185 +#: order/templates/order/sales_order_base.html:229 msgid "Address" msgstr "" -#: company/models.py:315 company/templates/company/sidebar.html:35 +#: company/models.py:312 company/templates/company/sidebar.html:35 msgid "Addresses" msgstr "" -#: company/models.py:372 +#: company/models.py:369 msgid "Select company" msgstr "" -#: company/models.py:377 +#: company/models.py:374 msgid "Address title" msgstr "" -#: company/models.py:378 +#: company/models.py:375 msgid "Title describing the address entry" msgstr "" -#: company/models.py:384 +#: company/models.py:381 msgid "Primary address" msgstr "" -#: company/models.py:385 +#: company/models.py:382 msgid "Set as primary address" msgstr "" -#: company/models.py:390 templates/js/translated/company.js:914 -#: templates/js/translated/company.js:971 +#: company/models.py:387 templates/js/translated/company.js:915 +#: templates/js/translated/company.js:972 msgid "Line 1" msgstr "" -#: company/models.py:391 +#: company/models.py:388 msgid "Address line 1" msgstr "" -#: company/models.py:397 templates/js/translated/company.js:915 -#: templates/js/translated/company.js:977 +#: company/models.py:394 templates/js/translated/company.js:916 +#: templates/js/translated/company.js:978 msgid "Line 2" msgstr "" -#: company/models.py:398 +#: company/models.py:395 msgid "Address line 2" msgstr "" -#: company/models.py:404 company/models.py:405 -#: templates/js/translated/company.js:983 +#: company/models.py:401 company/models.py:402 +#: templates/js/translated/company.js:984 msgid "Postal code" msgstr "" -#: company/models.py:411 +#: company/models.py:408 msgid "City/Region" msgstr "" -#: company/models.py:412 +#: company/models.py:409 msgid "Postal code city/region" msgstr "" -#: company/models.py:418 +#: company/models.py:415 msgid "State/Province" msgstr "" -#: company/models.py:419 +#: company/models.py:416 msgid "State or province" msgstr "" -#: company/models.py:425 templates/js/translated/company.js:1001 +#: company/models.py:422 templates/js/translated/company.js:1002 msgid "Country" msgstr "" -#: company/models.py:426 +#: company/models.py:423 msgid "Address country" msgstr "" -#: company/models.py:432 +#: company/models.py:429 msgid "Courier shipping notes" msgstr "" -#: company/models.py:433 +#: company/models.py:430 msgid "Notes for shipping courier" msgstr "" -#: company/models.py:439 +#: company/models.py:436 msgid "Internal shipping notes" msgstr "" -#: company/models.py:440 +#: company/models.py:437 msgid "Shipping notes for internal use" msgstr "" -#: company/models.py:447 +#: company/models.py:444 msgid "Link to address information (external)" msgstr "" -#: company/models.py:470 company/models.py:587 company/models.py:811 +#: company/models.py:467 company/models.py:584 company/models.py:808 #: company/templates/company/manufacturer_part.html:7 #: company/templates/company/manufacturer_part.html:24 -#: stock/templates/stock/item_base.html:217 +#: stock/templates/stock/item_base.html:214 msgid "Manufacturer Part" msgstr "" -#: company/models.py:487 company/models.py:779 stock/models.py:787 -#: stock/serializers.py:445 stock/templates/stock/item_base.html:142 +#: company/models.py:484 company/models.py:776 stock/models.py:864 +#: stock/serializers.py:455 stock/templates/stock/item_base.html:139 #: templates/js/translated/bom.js:622 msgid "Base Part" msgstr "" -#: company/models.py:489 company/models.py:781 +#: company/models.py:486 company/models.py:778 msgid "Select part" msgstr "" -#: company/models.py:498 company/templates/company/company_base.html:82 +#: company/models.py:495 company/templates/company/company_base.html:82 #: company/templates/company/manufacturer_part.html:90 -#: company/templates/company/supplier_part.html:145 part/serializers.py:554 -#: stock/templates/stock/item_base.html:207 -#: templates/js/translated/company.js:507 -#: templates/js/translated/company.js:1118 -#: templates/js/translated/company.js:1296 -#: templates/js/translated/company.js:1611 +#: company/templates/company/supplier_part.html:146 part/serializers.py:598 +#: stock/templates/stock/item_base.html:204 +#: templates/js/translated/company.js:508 +#: templates/js/translated/company.js:1119 +#: templates/js/translated/company.js:1297 +#: templates/js/translated/company.js:1612 #: templates/js/translated/table_filters.js:812 msgid "Manufacturer" msgstr "" -#: company/models.py:499 +#: company/models.py:496 msgid "Select manufacturer" msgstr "" -#: company/models.py:505 company/templates/company/manufacturer_part.html:101 -#: company/templates/company/supplier_part.html:153 order/serializers.py:556 -#: part/serializers.py:564 templates/js/translated/company.js:351 -#: templates/js/translated/company.js:1117 -#: templates/js/translated/company.js:1312 -#: templates/js/translated/company.js:1630 templates/js/translated/part.js:1807 -#: templates/js/translated/purchase_order.js:1921 -#: templates/js/translated/purchase_order.js:2123 +#: company/models.py:502 company/templates/company/manufacturer_part.html:101 +#: company/templates/company/supplier_part.html:154 order/serializers.py:641 +#: part/serializers.py:608 templates/js/translated/company.js:352 +#: templates/js/translated/company.js:1118 +#: templates/js/translated/company.js:1313 +#: templates/js/translated/company.js:1631 templates/js/translated/part.js:1807 +#: templates/js/translated/purchase_order.js:1905 +#: templates/js/translated/purchase_order.js:2107 msgid "MPN" msgstr "" -#: company/models.py:513 +#: company/models.py:510 msgid "URL for external manufacturer part link" msgstr "" -#: company/models.py:522 +#: company/models.py:519 msgid "Manufacturer part description" msgstr "" -#: company/models.py:575 +#: company/models.py:572 msgid "Manufacturer Part Parameter" msgstr "" -#: company/models.py:594 +#: company/models.py:591 msgid "Parameter name" msgstr "" -#: company/models.py:600 report/templates/report/inventree_test_report.html:104 -#: stock/models.py:2550 templates/js/translated/company.js:1166 -#: templates/js/translated/company.js:1419 templates/js/translated/part.js:1499 +#: company/models.py:597 report/templates/report/inventree_test_report.html:104 +#: stock/models.py:2666 templates/js/translated/company.js:1167 +#: templates/js/translated/company.js:1420 templates/js/translated/part.js:1499 #: templates/js/translated/stock.js:1607 msgid "Value" msgstr "" -#: company/models.py:601 +#: company/models.py:598 msgid "Parameter value" msgstr "" -#: company/models.py:608 company/templates/company/supplier_part.html:168 -#: part/admin.py:57 part/models.py:1147 part/models.py:3771 -#: part/templates/part/part_base.html:293 -#: templates/js/translated/company.js:1425 templates/js/translated/part.js:1518 +#: company/models.py:605 company/templates/company/supplier_part.html:169 +#: part/admin.py:57 part/models.py:1208 part/models.py:3822 +#: part/templates/part/part_base.html:301 +#: templates/js/translated/company.js:1426 templates/js/translated/part.js:1518 #: templates/js/translated/part.js:1622 templates/js/translated/part.js:2376 msgid "Units" msgstr "" -#: company/models.py:609 +#: company/models.py:606 msgid "Parameter units" msgstr "" -#: company/models.py:662 company/templates/company/supplier_part.html:7 -#: company/templates/company/supplier_part.html:24 order/api.py:442 -#: order/serializers.py:491 stock/models.py:798 -#: stock/templates/stock/item_base.html:233 -#: templates/js/translated/build.js:1052 -#: templates/js/translated/company.js:1600 -#: templates/js/translated/purchase_order.js:752 -#: templates/js/translated/stock.js:2365 +#: company/models.py:659 company/templates/company/supplier_part.html:8 +#: company/templates/company/supplier_part.html:25 order/api.py:392 +#: order/serializers.py:576 stock/models.py:875 +#: stock/templates/stock/item_base.html:230 +#: templates/js/translated/build.js:1055 +#: templates/js/translated/company.js:1601 +#: templates/js/translated/purchase_order.js:735 +#: templates/js/translated/stock.js:2366 msgid "Supplier Part" msgstr "" -#: company/models.py:719 +#: company/models.py:716 msgid "Pack units must be compatible with the base part units" msgstr "" -#: company/models.py:726 +#: company/models.py:723 msgid "Pack units must be greater than zero" msgstr "" -#: company/models.py:740 +#: company/models.py:737 msgid "Linked manufacturer part must reference the same base part" msgstr "" -#: company/models.py:789 company/templates/company/company_base.html:87 -#: company/templates/company/supplier_part.html:129 order/models.py:491 -#: order/templates/order/order_base.html:141 part/bom.py:280 part/bom.py:318 -#: part/serializers.py:538 plugin/builtin/suppliers/digikey.py:25 +#: company/models.py:786 company/templates/company/company_base.html:87 +#: company/templates/company/supplier_part.html:130 order/models.py:503 +#: order/templates/order/order_base.html:150 part/bom.py:279 part/bom.py:314 +#: part/serializers.py:582 plugin/builtin/suppliers/digikey.py:25 #: plugin/builtin/suppliers/lcsc.py:26 plugin/builtin/suppliers/mouser.py:24 -#: plugin/builtin/suppliers/tme.py:26 stock/templates/stock/item_base.html:224 +#: plugin/builtin/suppliers/tme.py:26 stock/templates/stock/item_base.html:221 #: templates/email/overdue_purchase_order.html:16 -#: templates/js/translated/company.js:350 -#: templates/js/translated/company.js:511 -#: templates/js/translated/company.js:1584 templates/js/translated/part.js:1775 +#: templates/js/translated/company.js:351 +#: templates/js/translated/company.js:512 +#: templates/js/translated/company.js:1585 templates/js/translated/part.js:1775 #: templates/js/translated/pricing.js:498 -#: templates/js/translated/purchase_order.js:1759 +#: templates/js/translated/purchase_order.js:1743 #: templates/js/translated/table_filters.js:816 msgid "Supplier" msgstr "" -#: company/models.py:790 +#: company/models.py:787 msgid "Select supplier" msgstr "" -#: company/models.py:796 part/serializers.py:549 +#: company/models.py:793 part/serializers.py:593 msgid "Supplier stock keeping unit" msgstr "" -#: company/models.py:802 +#: company/models.py:799 msgid "Is this supplier part active?" msgstr "" -#: company/models.py:812 +#: company/models.py:809 msgid "Select manufacturer part" msgstr "" -#: company/models.py:819 +#: company/models.py:816 msgid "URL for external supplier part link" msgstr "" -#: company/models.py:828 +#: company/models.py:825 msgid "Supplier part description" msgstr "" -#: company/models.py:835 company/templates/company/supplier_part.html:187 -#: order/serializers.py:698 part/admin.py:415 part/models.py:4288 +#: company/models.py:832 company/templates/company/supplier_part.html:188 +#: order/serializers.py:783 part/admin.py:415 part/models.py:4345 #: part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_bill_of_materials_report.html:140 #: report/templates/report/inventree_purchase_order_report.html:32 #: report/templates/report/inventree_return_order_report.html:27 #: report/templates/report/inventree_sales_order_report.html:32 #: report/templates/report/inventree_stock_location_report.html:105 -#: stock/serializers.py:776 templates/js/translated/purchase_order.js:1185 -#: templates/js/translated/purchase_order.js:1344 +#: stock/serializers.py:807 templates/js/translated/purchase_order.js:1168 +#: templates/js/translated/purchase_order.js:1327 msgid "Note" msgstr "" -#: company/models.py:844 part/models.py:2117 +#: company/models.py:841 part/models.py:2177 msgid "base cost" msgstr "" -#: company/models.py:845 part/models.py:2118 +#: company/models.py:842 part/models.py:2178 msgid "Minimum charge (e.g. stocking fee)" msgstr "" -#: company/models.py:853 +#: company/models.py:850 msgid "Part packaging" msgstr "" -#: company/models.py:858 templates/js/translated/company.js:1651 +#: company/models.py:855 templates/js/translated/company.js:1652 #: templates/js/translated/part.js:1828 templates/js/translated/part.js:1884 -#: templates/js/translated/purchase_order.js:311 -#: templates/js/translated/purchase_order.js:841 -#: templates/js/translated/purchase_order.js:1103 -#: templates/js/translated/purchase_order.js:2154 -#: templates/js/translated/purchase_order.js:2171 +#: templates/js/translated/purchase_order.js:294 +#: templates/js/translated/purchase_order.js:824 +#: templates/js/translated/purchase_order.js:1086 +#: templates/js/translated/purchase_order.js:2138 +#: templates/js/translated/purchase_order.js:2155 msgid "Pack Quantity" msgstr "" -#: company/models.py:860 +#: company/models.py:857 msgid "Total quantity supplied in a single pack. Leave empty for single items." msgstr "" -#: company/models.py:879 part/models.py:2124 +#: company/models.py:876 part/models.py:2184 msgid "multiple" msgstr "" -#: company/models.py:880 +#: company/models.py:877 msgid "Order multiple" msgstr "" -#: company/models.py:892 +#: company/models.py:889 msgid "Quantity available from supplier" msgstr "" -#: company/models.py:898 +#: company/models.py:895 msgid "Availability Updated" msgstr "" -#: company/models.py:899 +#: company/models.py:896 msgid "Date of last update of availability data" msgstr "" -#: company/models.py:1027 +#: company/models.py:1024 msgid "Supplier Price Break" msgstr "" -#: company/serializers.py:174 +#: company/serializers.py:178 msgid "Default currency used for this supplier" msgstr "" -#: company/serializers.py:210 +#: company/serializers.py:214 msgid "Company Name" msgstr "" -#: company/serializers.py:393 part/admin.py:126 part/serializers.py:898 -#: part/templates/part/part_base.html:197 -#: templates/js/translated/company.js:1689 +#: company/serializers.py:397 part/admin.py:126 part/serializers.py:950 +#: part/templates/part/part_base.html:198 stock/serializers.py:474 +#: templates/js/translated/company.js:1690 #: templates/js/translated/table_filters.js:362 msgid "In Stock" msgstr "" #: company/templates/company/company_base.html:16 -#: part/templates/part/part_base.html:146 -#: templates/js/translated/company.js:1287 -#: templates/js/translated/company.js:1575 -#: templates/js/translated/model_renderers.js:313 +#: part/templates/part/part_base.html:147 +#: templates/js/translated/company.js:1288 +#: templates/js/translated/company.js:1576 +#: templates/js/translated/model_renderers.js:316 #: templates/js/translated/part.js:817 templates/js/translated/part.js:1225 msgid "Inactive" msgstr "" #: company/templates/company/company_base.html:27 -#: templates/js/translated/purchase_order.js:242 +#: templates/js/translated/purchase_order.js:224 msgid "Create Purchase Order" msgstr "" @@ -4590,7 +4769,7 @@ msgid "Edit company information" msgstr "" #: company/templates/company/company_base.html:39 -#: templates/js/translated/company.js:445 +#: templates/js/translated/company.js:446 msgid "Edit Company" msgstr "" @@ -4605,11 +4784,12 @@ msgstr "" #: company/templates/company/company_base.html:53 #: company/templates/company/manufacturer_part.html:51 -#: company/templates/company/supplier_part.html:83 +#: company/templates/company/supplier_part.html:84 #: part/templates/part/part_thumb.html:20 #: report/templates/report/inventree_build_order_report.html:98 #: report/templates/report/inventree_purchase_order_report.html:40 #: report/templates/report/inventree_sales_order_report.html:40 +#: report/templates/report/inventree_sales_order_shipment_report.html:37 #: report/templates/report/inventree_test_report.html:84 #: report/templates/report/inventree_test_report.html:162 msgid "Part image" @@ -4630,16 +4810,16 @@ msgstr "" msgid "Delete image" msgstr "" -#: company/templates/company/company_base.html:92 order/models.py:990 -#: order/models.py:2147 order/templates/order/return_order_base.html:134 -#: order/templates/order/sales_order_base.html:151 stock/models.py:840 -#: stock/models.py:841 stock/serializers.py:1329 -#: stock/templates/stock/item_base.html:405 +#: company/templates/company/company_base.html:92 order/models.py:1017 +#: order/models.py:2186 order/templates/order/return_order_base.html:135 +#: order/templates/order/sales_order_base.html:152 stock/models.py:917 +#: stock/models.py:918 stock/serializers.py:1360 +#: stock/templates/stock/item_base.html:402 #: templates/email/overdue_sales_order.html:16 -#: templates/js/translated/company.js:503 +#: templates/js/translated/company.js:504 #: templates/js/translated/return_order.js:295 -#: templates/js/translated/sales_order.js:820 -#: templates/js/translated/stock.js:3043 +#: templates/js/translated/sales_order.js:779 +#: templates/js/translated/stock.js:3044 #: templates/js/translated/table_filters.js:820 msgid "Customer" msgstr "" @@ -4653,7 +4833,7 @@ msgid "Phone" msgstr "" #: company/templates/company/company_base.html:211 -#: part/templates/part/part_base.html:536 +#: part/templates/part/part_base.html:544 msgid "Remove Image" msgstr "" @@ -4662,19 +4842,19 @@ msgid "Remove associated image from this company" msgstr "" #: company/templates/company/company_base.html:214 -#: part/templates/part/part_base.html:539 +#: part/templates/part/part_base.html:547 #: templates/InvenTree/settings/user.html:88 #: templates/InvenTree/settings/user_sso.html:43 msgid "Remove" msgstr "" #: company/templates/company/company_base.html:243 -#: part/templates/part/part_base.html:568 +#: part/templates/part/part_base.html:576 msgid "Upload Image" msgstr "" #: company/templates/company/company_base.html:258 -#: part/templates/part/part_base.html:622 +#: part/templates/part/part_base.html:630 msgid "Download Image" msgstr "" @@ -4714,7 +4894,7 @@ msgstr "" #: company/templates/company/detail.html:75 #: company/templates/company/sidebar.html:12 #: company/templates/company/supplier_part_sidebar.html:7 -#: order/templates/order/order_base.html:13 +#: order/templates/order/order_base.html:14 #: order/templates/order/purchase_orders.html:8 #: order/templates/order/purchase_orders.html:12 #: part/templates/part/detail.html:122 part/templates/part/part_sidebar.html:35 @@ -4737,7 +4917,7 @@ msgstr "" #: company/templates/company/detail.html:101 #: company/templates/company/sidebar.html:21 -#: order/templates/order/sales_order_base.html:13 +#: order/templates/order/sales_order_base.html:14 #: order/templates/order/sales_orders.html:8 #: order/templates/order/sales_orders.html:15 #: part/templates/part/detail.html:143 part/templates/part/part_sidebar.html:39 @@ -4764,7 +4944,7 @@ msgstr "" #: company/templates/company/detail.html:142 #: company/templates/company/sidebar.html:29 -#: order/templates/order/return_order_base.html:13 +#: order/templates/order/return_order_base.html:14 #: order/templates/order/return_orders.html:8 #: order/templates/order/return_orders.html:15 #: templates/InvenTree/settings/sidebar.html:61 @@ -4811,24 +4991,24 @@ msgid "Manufacturers" msgstr "" #: company/templates/company/manufacturer_part.html:35 -#: company/templates/company/supplier_part.html:227 -#: part/templates/part/detail.html:125 part/templates/part/part_base.html:83 +#: company/templates/company/supplier_part.html:228 +#: part/templates/part/detail.html:125 part/templates/part/part_base.html:84 msgid "Order part" msgstr "" #: company/templates/company/manufacturer_part.html:39 -#: templates/js/translated/company.js:1343 +#: templates/js/translated/company.js:1344 msgid "Edit manufacturer part" msgstr "" #: company/templates/company/manufacturer_part.html:43 -#: templates/js/translated/company.js:1344 +#: templates/js/translated/company.js:1345 msgid "Delete manufacturer part" msgstr "" #: company/templates/company/manufacturer_part.html:65 -#: company/templates/company/supplier_part.html:97 order/api.py:448 -#: order/serializers.py:564 +#: company/templates/company/supplier_part.html:98 order/api.py:411 +#: order/serializers.py:649 msgid "Internal Part" msgstr "" @@ -4837,8 +5017,8 @@ msgid "No manufacturer information available" msgstr "" #: company/templates/company/manufacturer_part.html:119 -#: company/templates/company/supplier_part.html:15 company/views.py:31 -#: part/admin.py:122 part/serializers.py:904 +#: company/templates/company/supplier_part.html:16 company/views.py:31 +#: part/admin.py:122 part/serializers.py:956 #: part/templates/part/part_sidebar.html:33 templates/InvenTree/search.html:190 #: templates/navbar.html:48 msgid "Suppliers" @@ -4887,112 +5067,113 @@ msgstr "" msgid "Contacts" msgstr "" -#: company/templates/company/supplier_part.html:50 -#: templates/js/translated/company.js:1526 +#: company/templates/company/supplier_part.html:51 +#: templates/js/translated/company.js:1527 msgid "Supplier part actions" msgstr "" -#: company/templates/company/supplier_part.html:55 #: company/templates/company/supplier_part.html:56 -#: company/templates/company/supplier_part.html:228 +#: company/templates/company/supplier_part.html:57 +#: company/templates/company/supplier_part.html:229 #: part/templates/part/detail.html:126 msgid "Order Part" msgstr "" -#: company/templates/company/supplier_part.html:60 #: company/templates/company/supplier_part.html:61 +#: company/templates/company/supplier_part.html:62 msgid "Update Availability" msgstr "" -#: company/templates/company/supplier_part.html:63 #: company/templates/company/supplier_part.html:64 -#: templates/js/translated/company.js:294 +#: company/templates/company/supplier_part.html:65 +#: templates/js/translated/company.js:295 msgid "Edit Supplier Part" msgstr "" -#: company/templates/company/supplier_part.html:68 #: company/templates/company/supplier_part.html:69 -#: templates/js/translated/company.js:269 +#: company/templates/company/supplier_part.html:70 +#: templates/js/translated/company.js:270 msgid "Duplicate Supplier Part" msgstr "" -#: company/templates/company/supplier_part.html:73 +#: company/templates/company/supplier_part.html:74 msgid "Delete Supplier Part" msgstr "" -#: company/templates/company/supplier_part.html:74 +#: company/templates/company/supplier_part.html:75 msgid "Delete Supplier Part" msgstr "" -#: company/templates/company/supplier_part.html:133 +#: company/templates/company/supplier_part.html:134 +#: order/templates/order/order_base.html:155 msgid "No supplier information available" msgstr "" -#: company/templates/company/supplier_part.html:139 order/serializers.py:553 -#: part/bom.py:287 part/bom.py:319 part/serializers.py:548 -#: templates/js/translated/company.js:349 templates/js/translated/part.js:1793 +#: company/templates/company/supplier_part.html:140 order/serializers.py:638 +#: part/bom.py:286 part/bom.py:315 part/serializers.py:592 +#: templates/js/translated/company.js:350 templates/js/translated/part.js:1793 #: templates/js/translated/pricing.js:510 -#: templates/js/translated/purchase_order.js:1920 -#: templates/js/translated/purchase_order.js:2098 +#: templates/js/translated/purchase_order.js:1904 +#: templates/js/translated/purchase_order.js:2082 msgid "SKU" msgstr "" -#: company/templates/company/supplier_part.html:206 +#: company/templates/company/supplier_part.html:207 msgid "Supplier Part Stock" msgstr "" -#: company/templates/company/supplier_part.html:209 -#: part/templates/part/detail.html:24 stock/templates/stock/location.html:204 +#: company/templates/company/supplier_part.html:210 +#: part/templates/part/detail.html:24 stock/templates/stock/location.html:205 msgid "Create new stock item" msgstr "" -#: company/templates/company/supplier_part.html:210 -#: part/templates/part/detail.html:25 stock/templates/stock/location.html:205 +#: company/templates/company/supplier_part.html:211 +#: part/templates/part/detail.html:25 stock/templates/stock/location.html:206 #: templates/js/translated/stock.js:543 msgid "New Stock Item" msgstr "" -#: company/templates/company/supplier_part.html:223 +#: company/templates/company/supplier_part.html:224 msgid "Supplier Part Orders" msgstr "" -#: company/templates/company/supplier_part.html:246 +#: company/templates/company/supplier_part.html:247 msgid "Pricing Information" msgstr "" -#: company/templates/company/supplier_part.html:251 -#: templates/js/translated/company.js:398 +#: company/templates/company/supplier_part.html:252 +#: templates/js/translated/company.js:399 #: templates/js/translated/pricing.js:684 msgid "Add Price Break" msgstr "" -#: company/templates/company/supplier_part.html:270 +#: company/templates/company/supplier_part.html:271 msgid "Supplier Part Notes" msgstr "" -#: company/templates/company/supplier_part.html:305 +#: company/templates/company/supplier_part.html:306 msgid "Supplier Part QR Code" msgstr "" -#: company/templates/company/supplier_part.html:316 +#: company/templates/company/supplier_part.html:317 msgid "Link Barcode to Supplier Part" msgstr "" -#: company/templates/company/supplier_part.html:388 +#: company/templates/company/supplier_part.html:389 msgid "Update Part Availability" msgstr "" #: company/templates/company/supplier_part_sidebar.html:5 -#: part/serializers.py:902 part/stocktake.py:223 +#: part/serializers.py:954 part/stocktake.py:223 #: part/templates/part/category.html:180 #: part/templates/part/category_sidebar.html:17 stock/admin.py:68 -#: stock/serializers.py:1014 stock/serializers.py:1192 -#: stock/templates/stock/location.html:167 -#: stock/templates/stock/location.html:188 -#: stock/templates/stock/location.html:200 +#: stock/serializers.py:1045 stock/serializers.py:1223 +#: stock/templates/stock/location.html:168 +#: stock/templates/stock/location.html:189 +#: stock/templates/stock/location.html:201 #: stock/templates/stock/location_sidebar.html:7 #: templates/InvenTree/search.html:155 templates/js/translated/part.js:1067 -#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2850 +#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2851 #: users/models.py:206 msgid "Stock Items" msgstr "" @@ -5022,99 +5203,99 @@ msgstr "" msgid "New Company" msgstr "" -#: generic/states/tests.py:18 order/status_codes.py:13 +#: generic/states/fields.py:118 +msgid "Custom status key" +msgstr "" + +#: generic/states/fields.py:119 +msgid "Additional status information for this item" +msgstr "" + +#: generic/states/tests.py:22 order/status_codes.py:13 msgid "Placed" msgstr "" -#: importer/mixins.py:263 +#: importer/mixins.py:261 msgid "Invalid export format" msgstr "" -#: importer/models.py:59 -msgid "Timestamp" -msgstr "" - -#: importer/models.py:64 +#: importer/models.py:65 msgid "Data file to import" msgstr "" -#: importer/models.py:73 templates/js/translated/tables.js:558 +#: importer/models.py:74 templates/js/translated/tables.js:558 msgid "Columns" msgstr "" -#: importer/models.py:84 +#: importer/models.py:85 msgid "Import status" msgstr "" -#: importer/models.py:94 +#: importer/models.py:95 msgid "Field Defaults" msgstr "" -#: importer/models.py:101 +#: importer/models.py:102 msgid "Field Overrides" msgstr "" -#: importer/models.py:108 +#: importer/models.py:109 msgid "Field Filters" msgstr "" -#: importer/models.py:230 +#: importer/models.py:239 msgid "Some required fields have not been mapped" msgstr "" -#: importer/models.py:387 +#: importer/models.py:396 msgid "Column is already mapped to a database field" msgstr "" -#: importer/models.py:392 +#: importer/models.py:401 msgid "Field is already mapped to a data column" msgstr "" -#: importer/models.py:401 +#: importer/models.py:410 msgid "Column mapping must be linked to a valid import session" msgstr "" -#: importer/models.py:406 +#: importer/models.py:415 msgid "Column does not exist in the data file" msgstr "" -#: importer/models.py:413 +#: importer/models.py:422 msgid "Field does not exist in the target model" msgstr "" -#: importer/models.py:417 +#: importer/models.py:426 msgid "Selected field is read-only" msgstr "" -#: importer/models.py:422 importer/models.py:493 +#: importer/models.py:431 importer/models.py:502 msgid "Import Session" msgstr "" -#: importer/models.py:426 +#: importer/models.py:435 msgid "Field" msgstr "" -#: importer/models.py:428 +#: importer/models.py:437 msgid "Column" msgstr "" -#: importer/models.py:497 +#: importer/models.py:506 msgid "Row Index" msgstr "" -#: importer/models.py:500 +#: importer/models.py:509 msgid "Original row data" msgstr "" -#: importer/models.py:503 part/models.py:3951 -msgid "Data" -msgstr "" - -#: importer/models.py:505 machine/models.py:110 +#: importer/models.py:514 machine/models.py:110 msgid "Errors" msgstr "" -#: importer/models.py:507 part/api.py:873 +#: importer/models.py:516 part/api.py:857 msgid "Valid" msgstr "" @@ -5166,19 +5347,19 @@ msgstr "" msgid "Row has already been completed" msgstr "" -#: importer/status_codes.py:11 +#: importer/status_codes.py:13 msgid "Initializing" msgstr "" -#: importer/status_codes.py:12 +#: importer/status_codes.py:18 msgid "Mapping Columns" msgstr "" -#: importer/status_codes.py:13 +#: importer/status_codes.py:21 msgid "Importing Data" msgstr "" -#: importer/status_codes.py:16 +#: importer/status_codes.py:24 msgid "Processing Data" msgstr "" @@ -5202,52 +5383,52 @@ msgstr "" msgid "Value must be a valid dictionary object" msgstr "" -#: machine/machine_types/label_printer.py:215 +#: machine/machine_types/label_printer.py:216 msgid "Copies" msgstr "" -#: machine/machine_types/label_printer.py:216 +#: machine/machine_types/label_printer.py:217 msgid "Number of copies to print for each label" msgstr "" -#: machine/machine_types/label_printer.py:231 +#: machine/machine_types/label_printer.py:232 msgid "Connected" msgstr "" -#: machine/machine_types/label_printer.py:232 order/api.py:1410 -#: templates/js/translated/sales_order.js:1078 +#: machine/machine_types/label_printer.py:233 order/api.py:1532 +#: templates/js/translated/sales_order.js:1044 msgid "Unknown" msgstr "" -#: machine/machine_types/label_printer.py:233 +#: machine/machine_types/label_printer.py:234 msgid "Printing" msgstr "" -#: machine/machine_types/label_printer.py:234 +#: machine/machine_types/label_printer.py:235 msgid "No media" msgstr "" -#: machine/machine_types/label_printer.py:235 +#: machine/machine_types/label_printer.py:236 msgid "Paper jam" msgstr "" -#: machine/machine_types/label_printer.py:236 +#: machine/machine_types/label_printer.py:237 msgid "Disconnected" msgstr "" -#: machine/machine_types/label_printer.py:243 +#: machine/machine_types/label_printer.py:244 msgid "Label Printer" msgstr "" -#: machine/machine_types/label_printer.py:244 +#: machine/machine_types/label_printer.py:245 msgid "Directly print labels for various items." msgstr "" -#: machine/machine_types/label_printer.py:250 +#: machine/machine_types/label_printer.py:251 msgid "Printer Location" msgstr "" -#: machine/machine_types/label_printer.py:251 +#: machine/machine_types/label_printer.py:252 msgid "Scope the printer to a specific location" msgstr "" @@ -5307,79 +5488,75 @@ msgstr "" #: report/templates/report/inventree_purchase_order_report.html:31 #: report/templates/report/inventree_sales_order_report.html:31 #: templates/js/translated/order.js:352 -#: templates/js/translated/purchase_order.js:2195 -#: templates/js/translated/sales_order.js:1883 +#: templates/js/translated/purchase_order.js:2179 +#: templates/js/translated/sales_order.js:1864 msgid "Total Price" msgstr "" -#: order/api.py:80 order/api.py:151 order/serializers.py:93 -#: order/templates/order/order_base.html:123 -#: order/templates/order/return_order_base.html:116 -#: order/templates/order/sales_order_base.html:125 +#: order/api.py:78 order/api.py:149 order/serializers.py:124 +#: order/templates/order/order_base.html:124 +#: order/templates/order/return_order_base.html:117 +#: order/templates/order/sales_order_base.html:126 msgid "Order Status" msgstr "" -#: order/api.py:88 order/templates/order/order_base.html:111 -#: order/templates/order/return_order_base.html:104 -#: order/templates/order/sales_order_base.html:113 +#: order/api.py:86 order/templates/order/order_base.html:112 +#: order/templates/order/return_order_base.html:105 +#: order/templates/order/sales_order_base.html:114 msgid "Order Reference" msgstr "" -#: order/api.py:116 templates/js/translated/table_filters.js:93 +#: order/api.py:114 order/api.py:1022 +#: templates/js/translated/table_filters.js:93 #: templates/js/translated/table_filters.js:625 #: templates/js/translated/table_filters.js:651 #: templates/js/translated/table_filters.js:666 msgid "Outstanding" msgstr "" -#: order/api.py:132 +#: order/api.py:130 msgid "Has Project Code" msgstr "" -#: order/api.py:155 templates/js/translated/table_filters.js:201 +#: order/api.py:153 templates/js/translated/table_filters.js:201 #: templates/js/translated/table_filters.js:791 msgid "Has Pricing" msgstr "" -#: order/api.py:230 -msgid "No matching purchase order found" -msgstr "" - -#: order/api.py:425 order/api.py:763 order/models.py:1484 order/models.py:1598 -#: order/models.py:1649 order/models.py:1764 order/models.py:1923 -#: order/models.py:2383 order/models.py:2439 -#: templates/js/translated/sales_order.js:1524 +#: order/api.py:375 order/api.py:771 order/api.py:986 order/models.py:1500 +#: order/models.py:1614 order/models.py:1665 order/models.py:1793 +#: order/models.py:1956 order/models.py:2422 order/models.py:2478 +#: templates/js/translated/sales_order.js:1490 msgid "Order" msgstr "" -#: order/api.py:429 order/api.py:784 +#: order/api.py:379 order/api.py:809 msgid "Order Complete" msgstr "" -#: order/api.py:452 +#: order/api.py:430 msgid "Order Pending" msgstr "" -#: order/api.py:1404 order/models.py:379 order/models.py:1485 -#: order/models.py:1599 order/templates/order/order_base.html:9 -#: order/templates/order/order_base.html:18 +#: order/api.py:1526 order/models.py:386 order/models.py:1501 +#: order/models.py:1615 order/templates/order/order_base.html:10 +#: order/templates/order/order_base.html:19 #: report/templates/report/inventree_purchase_order_report.html:14 -#: stock/serializers.py:120 stock/templates/stock/item_base.html:176 +#: stock/serializers.py:121 stock/templates/stock/item_base.html:173 #: templates/email/overdue_purchase_order.html:15 #: templates/js/translated/part.js:1752 templates/js/translated/pricing.js:804 -#: templates/js/translated/purchase_order.js:168 -#: templates/js/translated/purchase_order.js:753 -#: templates/js/translated/purchase_order.js:1743 -#: templates/js/translated/stock.js:2345 templates/js/translated/stock.js:2991 +#: templates/js/translated/purchase_order.js:736 +#: templates/js/translated/purchase_order.js:1727 +#: templates/js/translated/stock.js:2346 templates/js/translated/stock.js:2992 msgid "Purchase Order" msgstr "" -#: order/api.py:1408 order/models.py:2091 order/models.py:2384 -#: order/models.py:2440 order/templates/order/return_order_base.html:9 -#: order/templates/order/return_order_base.html:28 +#: order/api.py:1530 order/models.py:2124 order/models.py:2423 +#: order/models.py:2479 order/templates/order/return_order_base.html:10 +#: order/templates/order/return_order_base.html:29 #: report/templates/report/inventree_return_order_report.html:13 #: templates/js/translated/return_order.js:280 -#: templates/js/translated/stock.js:3025 +#: templates/js/translated/stock.js:3026 msgid "Return Order" msgstr "" @@ -5387,751 +5564,782 @@ msgstr "" msgid "Total price for this order" msgstr "" -#: order/models.py:95 order/serializers.py:71 +#: order/models.py:95 order/serializers.py:73 msgid "Order Currency" msgstr "" -#: order/models.py:98 order/serializers.py:72 +#: order/models.py:98 order/serializers.py:74 msgid "Currency for this order (leave blank to use company default)" msgstr "" -#: order/models.py:246 +#: order/models.py:243 msgid "Contact does not match selected company" msgstr "" -#: order/models.py:289 +#: order/models.py:296 msgid "Order description (optional)" msgstr "" -#: order/models.py:298 +#: order/models.py:305 msgid "Select project code for this order" msgstr "" -#: order/models.py:302 order/models.py:1385 order/models.py:1817 +#: order/models.py:309 order/models.py:1402 order/models.py:1846 msgid "Link to external page" msgstr "" -#: order/models.py:310 +#: order/models.py:317 msgid "Expected date for order delivery. Order will be overdue after this date." msgstr "" -#: order/models.py:324 +#: order/models.py:331 msgid "Created By" msgstr "" -#: order/models.py:332 +#: order/models.py:339 msgid "User or group responsible for this order" msgstr "" -#: order/models.py:343 +#: order/models.py:350 msgid "Point of contact for this order" msgstr "" -#: order/models.py:353 +#: order/models.py:360 msgid "Company address for this order" msgstr "" -#: order/models.py:468 order/models.py:979 +#: order/models.py:480 order/models.py:1006 msgid "Order reference" msgstr "" -#: order/models.py:477 +#: order/models.py:489 msgid "Purchase order status" msgstr "" -#: order/models.py:492 +#: order/models.py:504 msgid "Company from which the items are being ordered" msgstr "" -#: order/models.py:503 order/templates/order/order_base.html:153 -#: templates/js/translated/purchase_order.js:1772 +#: order/models.py:515 order/templates/order/order_base.html:162 +#: templates/js/translated/purchase_order.js:1756 msgid "Supplier Reference" msgstr "" -#: order/models.py:504 +#: order/models.py:516 msgid "Supplier order reference code" msgstr "" -#: order/models.py:513 +#: order/models.py:525 msgid "received by" msgstr "" -#: order/models.py:519 order/models.py:2173 +#: order/models.py:531 order/models.py:2212 msgid "Issue Date" msgstr "" -#: order/models.py:520 order/models.py:2174 +#: order/models.py:532 order/models.py:2213 msgid "Date order was issued" msgstr "" -#: order/models.py:527 order/models.py:2181 +#: order/models.py:539 order/models.py:2220 msgid "Date order was completed" msgstr "" -#: order/models.py:571 +#: order/models.py:549 order/models.py:1552 +msgid "Destination for received items" +msgstr "" + +#: order/models.py:593 msgid "Part supplier must match PO supplier" msgstr "" -#: order/models.py:806 +#: order/models.py:828 msgid "Quantity must be a positive number" msgstr "" -#: order/models.py:991 +#: order/models.py:1018 msgid "Company to which the items are being sold" msgstr "" -#: order/models.py:1003 +#: order/models.py:1030 msgid "Sales order status" msgstr "" -#: order/models.py:1014 order/models.py:2166 +#: order/models.py:1041 order/models.py:2205 msgid "Customer Reference " msgstr "" -#: order/models.py:1015 order/models.py:2167 +#: order/models.py:1042 order/models.py:2206 msgid "Customer order reference code" msgstr "" -#: order/models.py:1019 order/models.py:1771 -#: templates/js/translated/sales_order.js:879 -#: templates/js/translated/sales_order.js:1060 +#: order/models.py:1046 order/models.py:1800 +#: templates/js/translated/sales_order.js:838 +#: templates/js/translated/sales_order.js:1026 msgid "Shipment Date" msgstr "" -#: order/models.py:1028 +#: order/models.py:1055 msgid "shipped by" msgstr "" -#: order/models.py:1077 +#: order/models.py:1094 msgid "Order is already complete" msgstr "" -#: order/models.py:1080 +#: order/models.py:1097 msgid "Order is already cancelled" msgstr "" -#: order/models.py:1084 +#: order/models.py:1101 msgid "Only an open order can be marked as complete" msgstr "" -#: order/models.py:1088 +#: order/models.py:1105 msgid "Order cannot be completed as there are incomplete shipments" msgstr "" -#: order/models.py:1093 +#: order/models.py:1110 msgid "Order cannot be completed as there are incomplete line items" msgstr "" -#: order/models.py:1357 +#: order/models.py:1374 msgid "Item quantity" msgstr "" -#: order/models.py:1374 +#: order/models.py:1391 msgid "Line item reference" msgstr "" -#: order/models.py:1381 +#: order/models.py:1398 msgid "Line item notes" msgstr "" -#: order/models.py:1393 +#: order/models.py:1410 msgid "Target date for this line item (leave blank to use the target date from the order)" msgstr "" -#: order/models.py:1414 +#: order/models.py:1431 msgid "Line item description (optional)" msgstr "" -#: order/models.py:1420 -msgid "Context" -msgstr "" - -#: order/models.py:1421 +#: order/models.py:1438 msgid "Additional context for this line" msgstr "" -#: order/models.py:1431 +#: order/models.py:1448 msgid "Unit price" msgstr "" -#: order/models.py:1445 +#: order/models.py:1462 msgid "Purchase Order Line Item" msgstr "" -#: order/models.py:1469 +#: order/models.py:1486 msgid "Supplier part must match supplier" msgstr "" -#: order/models.py:1476 -msgid "deleted" -msgstr "" - -#: order/models.py:1504 +#: order/models.py:1520 msgid "Supplier part" msgstr "" -#: order/models.py:1511 order/templates/order/order_base.html:201 +#: order/models.py:1527 order/templates/order/order_base.html:210 #: templates/js/translated/part.js:1876 templates/js/translated/part.js:1908 -#: templates/js/translated/purchase_order.js:1369 -#: templates/js/translated/purchase_order.js:2239 +#: templates/js/translated/purchase_order.js:1352 +#: templates/js/translated/purchase_order.js:2223 #: templates/js/translated/return_order.js:762 #: templates/js/translated/table_filters.js:119 #: templates/js/translated/table_filters.js:605 msgid "Received" msgstr "" -#: order/models.py:1512 +#: order/models.py:1528 msgid "Number of items received" msgstr "" -#: order/models.py:1520 stock/models.py:959 stock/serializers.py:610 -#: stock/templates/stock/item_base.html:183 -#: templates/js/translated/stock.js:2396 +#: order/models.py:1536 stock/models.py:1036 stock/serializers.py:637 +#: stock/templates/stock/item_base.html:180 +#: templates/js/translated/stock.js:2397 msgid "Purchase Price" msgstr "" -#: order/models.py:1521 +#: order/models.py:1537 msgid "Unit purchase price" msgstr "" -#: order/models.py:1536 -msgid "Where does the Purchaser want this item to be stored?" -msgstr "" - -#: order/models.py:1587 +#: order/models.py:1603 msgid "Purchase Order Extra Line" msgstr "" -#: order/models.py:1616 +#: order/models.py:1632 msgid "Sales Order Line Item" msgstr "" -#: order/models.py:1637 +#: order/models.py:1653 msgid "Virtual part cannot be assigned to a sales order" msgstr "" -#: order/models.py:1642 +#: order/models.py:1658 msgid "Only salable parts can be assigned to a sales order" msgstr "" -#: order/models.py:1668 part/templates/part/part_pricing.html:107 -#: part/templates/part/prices.html:139 templates/js/translated/pricing.js:957 +#: order/models.py:1684 part/templates/part/part_pricing.html:107 +#: part/templates/part/prices.html:139 templates/js/translated/pricing.js:955 msgid "Sale Price" msgstr "" -#: order/models.py:1669 +#: order/models.py:1685 msgid "Unit sale price" msgstr "" -#: order/models.py:1678 order/status_codes.py:48 -#: templates/js/translated/sales_order.js:1559 -#: templates/js/translated/sales_order.js:1680 -#: templates/js/translated/sales_order.js:1993 +#: order/models.py:1694 order/status_codes.py:50 +#: templates/js/translated/sales_order.js:1525 +#: templates/js/translated/sales_order.js:1661 +#: templates/js/translated/sales_order.js:1974 msgid "Shipped" msgstr "" -#: order/models.py:1679 +#: order/models.py:1695 msgid "Shipped quantity" msgstr "" -#: order/models.py:1751 +#: order/models.py:1769 msgid "Sales Order Shipment" msgstr "" -#: order/models.py:1772 +#: order/models.py:1801 msgid "Date of shipment" msgstr "" -#: order/models.py:1778 templates/js/translated/sales_order.js:1072 +#: order/models.py:1807 templates/js/translated/sales_order.js:1038 msgid "Delivery Date" msgstr "" -#: order/models.py:1779 +#: order/models.py:1808 msgid "Date of delivery of shipment" msgstr "" -#: order/models.py:1787 +#: order/models.py:1816 msgid "Checked By" msgstr "" -#: order/models.py:1788 +#: order/models.py:1817 msgid "User who checked this shipment" msgstr "" -#: order/models.py:1795 order/models.py:2018 order/serializers.py:1475 -#: order/serializers.py:1585 templates/js/translated/model_renderers.js:455 +#: order/models.py:1824 order/models.py:2051 order/serializers.py:1601 +#: order/serializers.py:1725 +#: report/templates/report/inventree_sales_order_shipment_report.html:14 +#: templates/js/translated/model_renderers.js:458 +#: templates/js/translated/sales_order.js:1615 msgid "Shipment" msgstr "" -#: order/models.py:1796 +#: order/models.py:1825 msgid "Shipment number" msgstr "" -#: order/models.py:1804 +#: order/models.py:1833 msgid "Tracking Number" msgstr "" -#: order/models.py:1805 +#: order/models.py:1834 msgid "Shipment tracking information" msgstr "" -#: order/models.py:1812 +#: order/models.py:1841 msgid "Invoice Number" msgstr "" -#: order/models.py:1813 +#: order/models.py:1842 msgid "Reference number for associated invoice" msgstr "" -#: order/models.py:1833 +#: order/models.py:1862 msgid "Shipment has already been sent" msgstr "" -#: order/models.py:1836 +#: order/models.py:1865 msgid "Shipment has no allocated stock items" msgstr "" -#: order/models.py:1912 +#: order/models.py:1945 msgid "Sales Order Extra Line" msgstr "" -#: order/models.py:1941 +#: order/models.py:1974 msgid "Sales Order Allocation" msgstr "" -#: order/models.py:1964 order/models.py:1966 +#: order/models.py:1997 order/models.py:1999 msgid "Stock item has not been assigned" msgstr "" -#: order/models.py:1973 +#: order/models.py:2006 msgid "Cannot allocate stock item to a line with a different part" msgstr "" -#: order/models.py:1976 +#: order/models.py:2009 msgid "Cannot allocate stock to a line without a part" msgstr "" -#: order/models.py:1979 +#: order/models.py:2012 msgid "Allocation quantity cannot exceed stock quantity" msgstr "" -#: order/models.py:1998 order/serializers.py:1345 +#: order/models.py:2031 order/serializers.py:1471 msgid "Quantity must be 1 for serialized stock item" msgstr "" -#: order/models.py:2001 +#: order/models.py:2034 msgid "Sales order does not match shipment" msgstr "" -#: order/models.py:2002 plugin/base/barcodes/api.py:524 +#: order/models.py:2035 plugin/base/barcodes/api.py:629 msgid "Shipment does not match sales order" msgstr "" -#: order/models.py:2010 +#: order/models.py:2043 msgid "Line" msgstr "" -#: order/models.py:2019 +#: order/models.py:2052 msgid "Sales order shipment reference" msgstr "" -#: order/models.py:2032 order/models.py:2391 +#: order/models.py:2065 order/models.py:2430 #: templates/js/translated/return_order.js:720 msgid "Item" msgstr "" -#: order/models.py:2033 +#: order/models.py:2066 msgid "Select stock item to allocate" msgstr "" -#: order/models.py:2042 +#: order/models.py:2075 msgid "Enter stock allocation quantity" msgstr "" -#: order/models.py:2136 +#: order/models.py:2175 msgid "Return Order reference" msgstr "" -#: order/models.py:2148 +#: order/models.py:2187 msgid "Company from which items are being returned" msgstr "" -#: order/models.py:2160 +#: order/models.py:2199 msgid "Return order status" msgstr "" -#: order/models.py:2362 +#: order/models.py:2401 msgid "Return Order Line Item" msgstr "" -#: order/models.py:2376 +#: order/models.py:2415 msgid "Only serialized items can be assigned to a Return Order" msgstr "" -#: order/models.py:2392 +#: order/models.py:2431 msgid "Select item to return from customer" msgstr "" -#: order/models.py:2398 +#: order/models.py:2437 msgid "Received Date" msgstr "" -#: order/models.py:2399 +#: order/models.py:2438 msgid "The date this this return item was received" msgstr "" -#: order/models.py:2410 templates/js/translated/return_order.js:731 +#: order/models.py:2449 templates/js/translated/return_order.js:731 #: templates/js/translated/table_filters.js:122 msgid "Outcome" msgstr "" -#: order/models.py:2411 +#: order/models.py:2450 msgid "Outcome for this line item" msgstr "" -#: order/models.py:2418 +#: order/models.py:2457 msgid "Cost associated with return or repair for this line item" msgstr "" -#: order/models.py:2428 +#: order/models.py:2467 msgid "Return Order Extra Line" msgstr "" -#: order/serializers.py:86 +#: order/serializers.py:87 +msgid "Order ID" +msgstr "" + +#: order/serializers.py:87 +msgid "ID of the order to duplicate" +msgstr "" + +#: order/serializers.py:93 +msgid "Copy Lines" +msgstr "" + +#: order/serializers.py:94 +msgid "Copy line items from the original order" +msgstr "" + +#: order/serializers.py:100 +msgid "Copy Extra Lines" +msgstr "" + +#: order/serializers.py:101 +msgid "Copy extra line items from the original order" +msgstr "" + +#: order/serializers.py:117 msgid "Completed Lines" msgstr "" -#: order/serializers.py:283 stock/admin.py:195 +#: order/serializers.py:161 +msgid "Duplicate Order" +msgstr "" + +#: order/serializers.py:162 +msgid "Specify options for duplicating this order" +msgstr "" + +#: order/serializers.py:234 +msgid "Invalid order ID" +msgstr "" + +#: order/serializers.py:374 stock/admin.py:196 msgid "Supplier Name" msgstr "" -#: order/serializers.py:331 +#: order/serializers.py:416 msgid "Order cannot be cancelled" msgstr "" -#: order/serializers.py:346 order/serializers.py:1366 +#: order/serializers.py:431 order/serializers.py:1492 msgid "Allow order to be closed with incomplete line items" msgstr "" -#: order/serializers.py:356 order/serializers.py:1376 +#: order/serializers.py:441 order/serializers.py:1502 msgid "Order has incomplete line items" msgstr "" -#: order/serializers.py:506 +#: order/serializers.py:591 msgid "Order is not open" msgstr "" -#: order/serializers.py:527 +#: order/serializers.py:612 msgid "Auto Pricing" msgstr "" -#: order/serializers.py:529 +#: order/serializers.py:614 msgid "Automatically calculate purchase price based on supplier part data" msgstr "" -#: order/serializers.py:539 +#: order/serializers.py:624 msgid "Purchase price currency" msgstr "" -#: order/serializers.py:545 +#: order/serializers.py:630 msgid "Merge Items" msgstr "" -#: order/serializers.py:547 +#: order/serializers.py:632 msgid "Merge items with the same part, destination and target date into one line item" msgstr "" -#: order/serializers.py:560 part/models.py:1033 +#: order/serializers.py:645 part/models.py:1094 part/serializers.py:387 msgid "Internal Part Number" msgstr "" -#: order/serializers.py:568 +#: order/serializers.py:653 msgid "Internal Part Name" msgstr "" -#: order/serializers.py:584 +#: order/serializers.py:669 msgid "Supplier part must be specified" msgstr "" -#: order/serializers.py:587 +#: order/serializers.py:672 msgid "Purchase order must be specified" msgstr "" -#: order/serializers.py:595 +#: order/serializers.py:680 msgid "Supplier must match purchase order" msgstr "" -#: order/serializers.py:596 +#: order/serializers.py:681 msgid "Purchase order must match supplier" msgstr "" -#: order/serializers.py:639 order/serializers.py:1446 +#: order/serializers.py:724 order/serializers.py:1572 msgid "Line Item" msgstr "" -#: order/serializers.py:645 +#: order/serializers.py:730 msgid "Line item does not match purchase order" msgstr "" -#: order/serializers.py:655 order/serializers.py:779 order/serializers.py:1782 +#: order/serializers.py:740 order/serializers.py:881 order/serializers.py:1934 msgid "Select destination location for received items" msgstr "" -#: order/serializers.py:671 templates/js/translated/purchase_order.js:1130 +#: order/serializers.py:756 templates/js/translated/purchase_order.js:1113 #: templates/js/translated/stock.js:1200 msgid "Enter batch code for incoming stock items" msgstr "" -#: order/serializers.py:679 templates/js/translated/purchase_order.js:1155 +#: order/serializers.py:764 templates/js/translated/purchase_order.js:1138 msgid "Enter serial numbers for incoming stock items" msgstr "" -#: order/serializers.py:691 +#: order/serializers.py:776 msgid "Override packaging information for incoming stock items" msgstr "" -#: order/serializers.py:699 +#: order/serializers.py:784 msgid "Additional note for incoming stock items" msgstr "" -#: order/serializers.py:706 templates/js/translated/barcode.js:52 +#: order/serializers.py:791 templates/js/translated/barcode.js:52 msgid "Barcode" msgstr "" -#: order/serializers.py:707 +#: order/serializers.py:792 msgid "Scanned barcode" msgstr "" -#: order/serializers.py:723 +#: order/serializers.py:808 msgid "Barcode is already in use" msgstr "" -#: order/serializers.py:747 +#: order/serializers.py:831 msgid "An integer quantity must be provided for trackable parts" msgstr "" -#: order/serializers.py:795 order/serializers.py:1798 +#: order/serializers.py:898 order/serializers.py:1950 msgid "Line items must be provided" msgstr "" -#: order/serializers.py:811 +#: order/serializers.py:914 msgid "Destination location must be specified" msgstr "" -#: order/serializers.py:822 +#: order/serializers.py:925 msgid "Supplied barcode values must be unique" msgstr "" -#: order/serializers.py:1187 +#: order/serializers.py:1221 msgid "Sale price currency" msgstr "" -#: order/serializers.py:1248 +#: order/serializers.py:1260 +msgid "Allocated Items" +msgstr "" + +#: order/serializers.py:1374 msgid "No shipment details provided" msgstr "" -#: order/serializers.py:1309 order/serializers.py:1455 +#: order/serializers.py:1435 order/serializers.py:1581 msgid "Line item is not associated with this order" msgstr "" -#: order/serializers.py:1328 +#: order/serializers.py:1454 msgid "Quantity must be positive" msgstr "" -#: order/serializers.py:1465 +#: order/serializers.py:1591 msgid "Enter serial numbers to allocate" msgstr "" -#: order/serializers.py:1487 order/serializers.py:1593 +#: order/serializers.py:1613 order/serializers.py:1733 msgid "Shipment has already been shipped" msgstr "" -#: order/serializers.py:1490 order/serializers.py:1596 +#: order/serializers.py:1616 order/serializers.py:1736 msgid "Shipment is not associated with this order" msgstr "" -#: order/serializers.py:1537 +#: order/serializers.py:1671 msgid "No match found for the following serial numbers" msgstr "" -#: order/serializers.py:1544 -msgid "The following serial numbers are already allocated" +#: order/serializers.py:1678 +msgid "The following serial numbers are unavailable" msgstr "" -#: order/serializers.py:1752 +#: order/serializers.py:1904 msgid "Return order line item" msgstr "" -#: order/serializers.py:1758 +#: order/serializers.py:1910 msgid "Line item does not match return order" msgstr "" -#: order/serializers.py:1761 +#: order/serializers.py:1913 msgid "Line item has already been received" msgstr "" -#: order/serializers.py:1790 +#: order/serializers.py:1942 msgid "Items can only be received against orders which are in progress" msgstr "" -#: order/serializers.py:1873 +#: order/serializers.py:2025 msgid "Line price currency" msgstr "" -#: order/status_codes.py:17 order/status_codes.py:52 stock/status_codes.py:16 +#: order/status_codes.py:17 order/status_codes.py:54 stock/status_codes.py:16 msgid "Lost" msgstr "" -#: order/status_codes.py:18 order/status_codes.py:53 stock/status_codes.py:22 +#: order/status_codes.py:18 order/status_codes.py:55 stock/status_codes.py:24 msgid "Returned" msgstr "" -#: order/status_codes.py:45 order/status_codes.py:77 +#: order/status_codes.py:47 order/status_codes.py:79 msgid "In Progress" msgstr "" -#: order/status_codes.py:101 +#: order/status_codes.py:105 msgid "Return" msgstr "" -#: order/status_codes.py:104 +#: order/status_codes.py:108 msgid "Repair" msgstr "" -#: order/status_codes.py:107 +#: order/status_codes.py:111 msgid "Replace" msgstr "" -#: order/status_codes.py:110 +#: order/status_codes.py:114 msgid "Refund" msgstr "" -#: order/status_codes.py:113 +#: order/status_codes.py:117 msgid "Reject" msgstr "" -#: order/tasks.py:25 +#: order/tasks.py:30 msgid "Overdue Purchase Order" msgstr "" -#: order/tasks.py:30 +#: order/tasks.py:35 #, python-brace-format msgid "Purchase order {po} is now overdue" msgstr "" -#: order/tasks.py:75 +#: order/tasks.py:80 msgid "Overdue Sales Order" msgstr "" -#: order/tasks.py:80 +#: order/tasks.py:85 #, python-brace-format msgid "Sales order {so} is now overdue" msgstr "" -#: order/templates/order/order_base.html:51 +#: order/templates/order/order_base.html:52 msgid "Print purchase order report" msgstr "" -#: order/templates/order/order_base.html:53 -#: order/templates/order/return_order_base.html:62 -#: order/templates/order/sales_order_base.html:62 +#: order/templates/order/order_base.html:54 +#: order/templates/order/return_order_base.html:63 +#: order/templates/order/sales_order_base.html:63 msgid "Export order to file" msgstr "" -#: order/templates/order/order_base.html:59 -#: order/templates/order/return_order_base.html:72 -#: order/templates/order/sales_order_base.html:71 +#: order/templates/order/order_base.html:60 +#: order/templates/order/return_order_base.html:73 +#: order/templates/order/sales_order_base.html:72 msgid "Order actions" msgstr "" -#: order/templates/order/order_base.html:64 -#: order/templates/order/return_order_base.html:76 -#: order/templates/order/sales_order_base.html:75 +#: order/templates/order/order_base.html:65 +#: order/templates/order/return_order_base.html:77 +#: order/templates/order/sales_order_base.html:76 msgid "Edit order" msgstr "" -#: order/templates/order/order_base.html:68 +#: order/templates/order/order_base.html:69 msgid "Duplicate order" msgstr "" -#: order/templates/order/order_base.html:73 -#: order/templates/order/return_order_base.html:78 -#: order/templates/order/sales_order_base.html:77 +#: order/templates/order/order_base.html:74 +#: order/templates/order/return_order_base.html:79 +#: order/templates/order/sales_order_base.html:78 msgid "Hold order" msgstr "" -#: order/templates/order/order_base.html:78 -#: order/templates/order/return_order_base.html:81 -#: order/templates/order/sales_order_base.html:80 +#: order/templates/order/order_base.html:79 +#: order/templates/order/return_order_base.html:82 +#: order/templates/order/sales_order_base.html:81 msgid "Cancel order" msgstr "" -#: order/templates/order/order_base.html:84 #: order/templates/order/order_base.html:85 -#: order/templates/order/return_order_base.html:85 +#: order/templates/order/order_base.html:86 #: order/templates/order/return_order_base.html:86 -#: order/templates/order/sales_order_base.html:86 +#: order/templates/order/return_order_base.html:87 #: order/templates/order/sales_order_base.html:87 +#: order/templates/order/sales_order_base.html:88 msgid "Issue Order" msgstr "" -#: order/templates/order/order_base.html:88 -#: order/templates/order/return_order_base.html:89 -msgid "Mark order as complete" -msgstr "" - #: order/templates/order/order_base.html:89 #: order/templates/order/return_order_base.html:90 -#: order/templates/order/sales_order_base.html:100 +msgid "Mark order as complete" +msgstr "" + +#: order/templates/order/order_base.html:90 +#: order/templates/order/return_order_base.html:91 +#: order/templates/order/sales_order_base.html:101 msgid "Complete Order" msgstr "" -#: order/templates/order/order_base.html:96 +#: order/templates/order/order_base.html:97 msgid "Supplier part thumbnail" msgstr "" -#: order/templates/order/order_base.html:116 -#: order/templates/order/return_order_base.html:109 -#: order/templates/order/sales_order_base.html:118 +#: order/templates/order/order_base.html:117 +#: order/templates/order/return_order_base.html:110 +#: order/templates/order/sales_order_base.html:119 msgid "Order Description" msgstr "" -#: order/templates/order/order_base.html:146 -msgid "No suppplier information available" -msgstr "" - -#: order/templates/order/order_base.html:159 -#: order/templates/order/sales_order_base.html:164 +#: order/templates/order/order_base.html:168 +#: order/templates/order/sales_order_base.html:165 msgid "Completed Line Items" msgstr "" -#: order/templates/order/order_base.html:165 -#: order/templates/order/sales_order_base.html:170 -#: order/templates/order/sales_order_base.html:180 +#: order/templates/order/order_base.html:174 +#: order/templates/order/sales_order_base.html:171 +#: order/templates/order/sales_order_base.html:181 msgid "Incomplete" msgstr "" -#: order/templates/order/order_base.html:184 -#: order/templates/order/return_order_base.html:160 +#: order/templates/order/order_base.html:193 +#: order/templates/order/return_order_base.html:161 #: report/templates/report/inventree_build_order_report.html:121 msgid "Issued" msgstr "" -#: order/templates/order/order_base.html:229 +#: order/templates/order/order_base.html:238 msgid "Total cost" msgstr "" -#: order/templates/order/order_base.html:233 -#: order/templates/order/return_order_base.html:202 -#: order/templates/order/sales_order_base.html:246 +#: order/templates/order/order_base.html:242 +#: order/templates/order/return_order_base.html:203 +#: order/templates/order/sales_order_base.html:247 msgid "Total cost could not be calculated" msgstr "" -#: order/templates/order/order_base.html:335 +#: order/templates/order/order_base.html:344 msgid "Purchase Order QR Code" msgstr "" -#: order/templates/order/order_base.html:347 +#: order/templates/order/order_base.html:356 msgid "Link Barcode to Purchase Order" msgstr "" @@ -6184,12 +6392,12 @@ msgstr "" #: part/templates/part/import_wizard/ajax_match_references.html:42 #: part/templates/part/import_wizard/match_fields.html:71 #: part/templates/part/import_wizard/match_references.html:49 -#: templates/js/translated/bom.js:133 templates/js/translated/build.js:530 -#: templates/js/translated/build.js:1802 -#: templates/js/translated/purchase_order.js:696 -#: templates/js/translated/purchase_order.js:1288 +#: templates/js/translated/bom.js:133 templates/js/translated/build.js:533 +#: templates/js/translated/build.js:1805 +#: templates/js/translated/purchase_order.js:679 +#: templates/js/translated/purchase_order.js:1271 #: templates/js/translated/return_order.js:505 -#: templates/js/translated/sales_order.js:1145 +#: templates/js/translated/sales_order.js:1111 #: templates/js/translated/stock.js:720 templates/js/translated/stock.js:889 #: templates/patterns/wizard/match_fields.html:70 msgid "Remove row" @@ -6242,7 +6450,7 @@ msgstr "" #: order/templates/order/purchase_order_detail.html:27 #: order/templates/order/return_order_detail.html:24 #: order/templates/order/sales_order_detail.html:24 -#: templates/js/translated/purchase_order.js:414 +#: templates/js/translated/purchase_order.js:397 #: templates/js/translated/return_order.js:458 #: templates/js/translated/sales_order.js:237 msgid "Add Line Item" @@ -6277,45 +6485,45 @@ msgstr "" msgid "Order Notes" msgstr "" -#: order/templates/order/return_order_base.html:18 -#: order/templates/order/sales_order_base.html:18 +#: order/templates/order/return_order_base.html:19 +#: order/templates/order/sales_order_base.html:19 msgid "Customer logo thumbnail" msgstr "" -#: order/templates/order/return_order_base.html:60 +#: order/templates/order/return_order_base.html:61 msgid "Print return order report" msgstr "" -#: order/templates/order/return_order_base.html:64 -#: order/templates/order/sales_order_base.html:64 +#: order/templates/order/return_order_base.html:65 +#: order/templates/order/sales_order_base.html:65 msgid "Print packing list" msgstr "" -#: order/templates/order/return_order_base.html:141 -#: order/templates/order/sales_order_base.html:158 +#: order/templates/order/return_order_base.html:142 +#: order/templates/order/sales_order_base.html:159 #: templates/js/translated/return_order.js:308 -#: templates/js/translated/sales_order.js:833 +#: templates/js/translated/sales_order.js:792 msgid "Customer Reference" msgstr "" -#: order/templates/order/return_order_base.html:198 -#: order/templates/order/sales_order_base.html:242 +#: order/templates/order/return_order_base.html:199 +#: order/templates/order/sales_order_base.html:243 #: part/templates/part/part_pricing.html:32 #: part/templates/part/part_pricing.html:58 #: part/templates/part/part_pricing.html:99 #: part/templates/part/part_pricing.html:114 #: templates/js/translated/part.js:1079 -#: templates/js/translated/purchase_order.js:1822 +#: templates/js/translated/purchase_order.js:1806 #: templates/js/translated/return_order.js:380 -#: templates/js/translated/sales_order.js:891 +#: templates/js/translated/sales_order.js:850 msgid "Total Cost" msgstr "" -#: order/templates/order/return_order_base.html:273 +#: order/templates/order/return_order_base.html:274 msgid "Return Order QR Code" msgstr "" -#: order/templates/order/return_order_base.html:285 +#: order/templates/order/return_order_base.html:286 msgid "Link Barcode to Return Order" msgstr "" @@ -6323,40 +6531,40 @@ msgstr "" msgid "Order Details" msgstr "" -#: order/templates/order/sales_order_base.html:60 +#: order/templates/order/sales_order_base.html:61 msgid "Print sales order report" msgstr "" -#: order/templates/order/sales_order_base.html:91 #: order/templates/order/sales_order_base.html:92 +#: order/templates/order/sales_order_base.html:93 msgid "Ship Items" msgstr "" -#: order/templates/order/sales_order_base.html:95 #: order/templates/order/sales_order_base.html:96 +#: order/templates/order/sales_order_base.html:97 msgid "Mark As Shipped" msgstr "" -#: order/templates/order/sales_order_base.html:99 -#: templates/js/translated/sales_order.js:536 +#: order/templates/order/sales_order_base.html:100 +#: templates/js/translated/sales_order.js:495 msgid "Complete Sales Order" msgstr "" -#: order/templates/order/sales_order_base.html:138 +#: order/templates/order/sales_order_base.html:139 msgid "This Sales Order has not been fully allocated" msgstr "" -#: order/templates/order/sales_order_base.html:176 +#: order/templates/order/sales_order_base.html:177 #: order/templates/order/sales_order_detail.html:99 #: order/templates/order/so_sidebar.html:11 msgid "Completed Shipments" msgstr "" -#: order/templates/order/sales_order_base.html:339 +#: order/templates/order/sales_order_base.html:340 msgid "Sales Order QR Code" msgstr "" -#: order/templates/order/sales_order_base.html:351 +#: order/templates/order/sales_order_base.html:352 msgid "Link Barcode to Sales Order" msgstr "" @@ -6370,7 +6578,7 @@ msgid "Pending Shipments" msgstr "" #: order/templates/order/sales_order_detail.html:71 -#: templates/js/translated/bom.js:1277 templates/js/translated/build.js:1063 +#: templates/js/translated/bom.js:1277 templates/js/translated/build.js:1066 #: templates/js/translated/filters.js:299 msgid "Actions" msgstr "" @@ -6383,39 +6591,40 @@ msgstr "" msgid "Match Supplier Parts" msgstr "" -#: order/views.py:406 +#: order/views.py:407 msgid "Sales order not found" msgstr "" -#: order/views.py:412 +#: order/views.py:413 msgid "Price not found" msgstr "" -#: order/views.py:415 +#: order/views.py:416 #, python-brace-format msgid "Updated {part} unit-price to {price}" msgstr "" -#: order/views.py:421 +#: order/views.py:422 #, python-brace-format msgid "Updated {part} unit-price to {price} and quantity to {qty}" msgstr "" -#: part/admin.py:48 part/models.py:1032 part/templates/part/part_base.html:269 +#: part/admin.py:48 part/models.py:1093 part/serializers.py:939 +#: part/templates/part/part_base.html:277 #: report/templates/report/inventree_stock_location_report.html:103 #: templates/js/translated/part.js:1233 templates/js/translated/part.js:2347 -#: templates/js/translated/stock.js:2121 +#: templates/js/translated/stock.js:2122 msgid "IPN" msgstr "" -#: part/admin.py:50 part/models.py:1041 part/templates/part/part_base.html:286 +#: part/admin.py:50 part/models.py:1102 part/templates/part/part_base.html:294 #: report/models.py:161 templates/js/translated/part.js:1238 #: templates/js/translated/part.js:2353 msgid "Revision" msgstr "" -#: part/admin.py:53 part/admin.py:319 part/models.py:1014 -#: part/templates/part/category.html:91 part/templates/part/part_base.html:307 +#: part/admin.py:53 part/admin.py:319 part/models.py:1075 +#: part/templates/part/category.html:91 part/templates/part/part_base.html:315 msgid "Keywords" msgstr "" @@ -6427,7 +6636,7 @@ msgstr "" msgid "Category ID" msgstr "" -#: part/admin.py:67 part/admin.py:304 part/serializers.py:880 +#: part/admin.py:67 part/admin.py:304 part/serializers.py:924 #: part/stocktake.py:222 msgid "Category Name" msgstr "" @@ -6440,11 +6649,11 @@ msgstr "" msgid "Default Supplier ID" msgstr "" -#: part/admin.py:81 part/models.py:1000 part/templates/part/part_base.html:177 +#: part/admin.py:81 part/models.py:1061 part/templates/part/part_base.html:178 msgid "Variant Of" msgstr "" -#: part/admin.py:84 part/models.py:1138 part/templates/part/part_base.html:203 +#: part/admin.py:84 part/models.py:1199 part/templates/part/part_base.html:204 msgid "Minimum Stock" msgstr "" @@ -6452,23 +6661,23 @@ msgstr "" msgid "Used In" msgstr "" -#: part/admin.py:150 part/serializers.py:897 -#: part/templates/part/part_base.html:241 stock/admin.py:235 +#: part/admin.py:150 part/serializers.py:949 +#: part/templates/part/part_base.html:249 stock/admin.py:236 #: templates/js/translated/part.js:717 templates/js/translated/part.js:2159 msgid "Building" msgstr "" -#: part/admin.py:155 part/models.py:3202 part/models.py:3216 +#: part/admin.py:155 part/models.py:3253 part/models.py:3267 #: templates/js/translated/part.js:976 msgid "Minimum Cost" msgstr "" -#: part/admin.py:158 part/models.py:3209 part/models.py:3223 +#: part/admin.py:158 part/models.py:3260 part/models.py:3274 #: templates/js/translated/part.js:986 msgid "Maximum Cost" msgstr "" -#: part/admin.py:308 part/admin.py:387 stock/admin.py:57 stock/admin.py:215 +#: part/admin.py:308 part/admin.py:387 stock/admin.py:57 stock/admin.py:216 msgid "Parent ID" msgstr "" @@ -6481,8 +6690,8 @@ msgstr "" msgid "Category Path" msgstr "" -#: part/admin.py:325 part/models.py:425 part/serializers.py:130 -#: part/serializers.py:290 part/serializers.py:415 +#: part/admin.py:325 part/models.py:420 part/serializers.py:130 +#: part/serializers.py:323 part/serializers.py:459 #: part/templates/part/cat_link.html:3 part/templates/part/category.html:20 #: part/templates/part/category.html:138 part/templates/part/category.html:158 #: part/templates/part/category_sidebar.html:9 @@ -6509,15 +6718,15 @@ msgstr "" msgid "Part Revision" msgstr "" -#: part/admin.py:418 part/serializers.py:1346 +#: part/admin.py:418 part/serializers.py:1400 #: templates/js/translated/pricing.js:358 -#: templates/js/translated/pricing.js:1024 +#: templates/js/translated/pricing.js:1022 msgid "Minimum Price" msgstr "" -#: part/admin.py:423 part/serializers.py:1361 +#: part/admin.py:423 part/serializers.py:1415 #: templates/js/translated/pricing.js:353 -#: templates/js/translated/pricing.js:1032 +#: templates/js/translated/pricing.js:1030 msgid "Maximum Price" msgstr "" @@ -6545,94 +6754,98 @@ msgstr "" msgid "Filter by top-level categories" msgstr "" +#: part/api.py:156 stock/api.py:343 +msgid "Cascade" +msgstr "" + #: part/api.py:158 msgid "Include sub-categories in filtered results" msgstr "" -#: part/api.py:179 templates/js/translated/part.js:311 +#: part/api.py:178 templates/js/translated/part.js:311 msgid "Parent" msgstr "" -#: part/api.py:181 +#: part/api.py:180 msgid "Filter by parent category" msgstr "" -#: part/api.py:214 +#: part/api.py:213 msgid "Exclude Tree" msgstr "" -#: part/api.py:216 +#: part/api.py:215 msgid "Exclude sub-categories under the specified category" msgstr "" -#: part/api.py:441 +#: part/api.py:440 msgid "Has Results" msgstr "" -#: part/api.py:608 +#: part/api.py:604 msgid "Incoming Purchase Order" msgstr "" -#: part/api.py:626 +#: part/api.py:618 msgid "Outgoing Sales Order" msgstr "" -#: part/api.py:642 +#: part/api.py:630 msgid "Stock produced by Build Order" msgstr "" -#: part/api.py:726 +#: part/api.py:712 msgid "Stock required for Build Order" msgstr "" -#: part/api.py:874 +#: part/api.py:858 msgid "Validate entire Bill of Materials" msgstr "" -#: part/api.py:880 +#: part/api.py:864 msgid "This option must be selected" msgstr "" -#: part/api.py:916 +#: part/api.py:900 msgid "Is Revision" msgstr "" -#: part/api.py:926 +#: part/api.py:910 msgid "Has Revisions" msgstr "" -#: part/api.py:1117 +#: part/api.py:1101 msgid "BOM Valid" msgstr "" -#: part/api.py:1523 part/models.py:1024 part/models.py:3489 part/models.py:4046 -#: part/serializers.py:430 part/serializers.py:1202 -#: part/templates/part/part_base.html:260 stock/api.py:781 +#: part/api.py:1509 part/models.py:1085 part/models.py:3540 part/models.py:4104 +#: part/serializers.py:474 part/serializers.py:1255 +#: part/templates/part/part_base.html:268 stock/api.py:781 #: templates/InvenTree/settings/settings_staff_js.html:300 #: templates/js/translated/notification.js:60 #: templates/js/translated/part.js:2383 msgid "Category" msgstr "" -#: part/api.py:1761 +#: part/api.py:1750 msgid "Assembly part is testable" msgstr "" -#: part/api.py:1770 +#: part/api.py:1759 msgid "Component part is testable" msgstr "" -#: part/api.py:1821 +#: part/api.py:1810 msgid "Uses" msgstr "" -#: part/bom.py:178 part/models.py:107 part/models.py:1077 -#: part/templates/part/category.html:113 part/templates/part/part_base.html:376 +#: part/bom.py:183 part/models.py:109 part/models.py:1138 +#: part/templates/part/category.html:113 part/templates/part/part_base.html:384 #: templates/js/translated/part.js:2397 msgid "Default Location" msgstr "" -#: part/bom.py:179 part/serializers.py:905 +#: part/bom.py:184 part/serializers.py:957 #: templates/email/low_stock_notification.html:16 msgid "Total Stock" msgstr "" @@ -6641,789 +6854,789 @@ msgstr "" msgid "Input quantity for price calculation" msgstr "" -#: part/models.py:88 part/models.py:4047 part/templates/part/category.html:16 +#: part/models.py:90 part/models.py:4105 part/templates/part/category.html:16 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "" -#: part/models.py:89 part/templates/part/category.html:133 +#: part/models.py:91 part/templates/part/category.html:133 #: templates/InvenTree/search.html:97 templates/js/translated/search.js:158 #: users/models.py:202 msgid "Part Categories" msgstr "" -#: part/models.py:108 +#: part/models.py:110 msgid "Default location for parts in this category" msgstr "" -#: part/models.py:113 stock/models.py:187 templates/js/translated/part.js:2828 -#: templates/js/translated/stock.js:2856 +#: part/models.py:115 stock/models.py:193 templates/js/translated/part.js:2828 +#: templates/js/translated/stock.js:2857 #: templates/js/translated/table_filters.js:246 #: templates/js/translated/table_filters.js:290 msgid "Structural" msgstr "" -#: part/models.py:115 +#: part/models.py:117 msgid "Parts may not be directly assigned to a structural category, but may be assigned to child categories." msgstr "" -#: part/models.py:124 +#: part/models.py:126 msgid "Default keywords" msgstr "" -#: part/models.py:125 +#: part/models.py:127 msgid "Default keywords for parts in this category" msgstr "" -#: part/models.py:131 stock/models.py:90 stock/models.py:169 +#: part/models.py:133 stock/models.py:96 stock/models.py:175 #: templates/InvenTree/settings/settings_staff_js.html:445 msgid "Icon" msgstr "" -#: part/models.py:132 part/serializers.py:143 part/serializers.py:161 -#: stock/models.py:170 +#: part/models.py:134 part/serializers.py:143 part/serializers.py:161 +#: stock/models.py:176 msgid "Icon (optional)" msgstr "" -#: part/models.py:178 +#: part/models.py:180 msgid "You cannot make this part category structural because some parts are already assigned to it!" msgstr "" -#: part/models.py:519 +#: part/models.py:514 msgid "Cannot delete this part as it is locked" msgstr "" -#: part/models.py:522 +#: part/models.py:517 msgid "Cannot delete this part as it is still active" msgstr "" -#: part/models.py:527 +#: part/models.py:522 msgid "Cannot delete this part as it is used in an assembly" msgstr "" -#: part/models.py:565 +#: part/models.py:560 msgid "Invalid choice for parent part" msgstr "" -#: part/models.py:613 part/models.py:620 +#: part/models.py:608 part/models.py:615 #, python-brace-format msgid "Part '{self}' cannot be used in BOM for '{parent}' (recursive)" msgstr "" -#: part/models.py:632 +#: part/models.py:627 #, python-brace-format msgid "Part '{parent}' is used in BOM for '{self}' (recursive)" msgstr "" -#: part/models.py:695 +#: part/models.py:694 #, python-brace-format msgid "IPN must match regex pattern {pattern}" msgstr "" -#: part/models.py:703 +#: part/models.py:702 msgid "Part cannot be a revision of itself" msgstr "" -#: part/models.py:710 +#: part/models.py:709 msgid "Cannot make a revision of a part which is already a revision" msgstr "" -#: part/models.py:717 +#: part/models.py:716 msgid "Revision code must be specified" msgstr "" -#: part/models.py:724 +#: part/models.py:723 msgid "Revisions are only allowed for assembly parts" msgstr "" -#: part/models.py:731 +#: part/models.py:730 msgid "Cannot make a revision of a template part" msgstr "" -#: part/models.py:737 +#: part/models.py:736 msgid "Parent part must point to the same template" msgstr "" -#: part/models.py:816 +#: part/models.py:832 msgid "Stock item with this serial number already exists" msgstr "" -#: part/models.py:917 +#: part/models.py:976 msgid "Duplicate IPN not allowed in part settings" msgstr "" -#: part/models.py:926 +#: part/models.py:988 msgid "Duplicate part revision already exists." msgstr "" -#: part/models.py:936 +#: part/models.py:997 msgid "Part with this Name, IPN and Revision already exists." msgstr "" -#: part/models.py:951 +#: part/models.py:1012 msgid "Parts cannot be assigned to structural part categories!" msgstr "" -#: part/models.py:983 part/models.py:4102 +#: part/models.py:1044 part/models.py:4160 msgid "Part name" msgstr "" -#: part/models.py:988 +#: part/models.py:1049 msgid "Is Template" msgstr "" -#: part/models.py:989 +#: part/models.py:1050 msgid "Is this part a template part?" msgstr "" -#: part/models.py:999 +#: part/models.py:1060 msgid "Is this part a variant of another part?" msgstr "" -#: part/models.py:1007 +#: part/models.py:1068 msgid "Part description (optional)" msgstr "" -#: part/models.py:1015 +#: part/models.py:1076 msgid "Part keywords to improve visibility in search results" msgstr "" -#: part/models.py:1025 +#: part/models.py:1086 msgid "Part category" msgstr "" -#: part/models.py:1040 +#: part/models.py:1101 msgid "Part revision or version number" msgstr "" -#: part/models.py:1050 +#: part/models.py:1111 msgid "Is this part a revision of another part?" msgstr "" -#: part/models.py:1051 part/templates/part/part_base.html:277 +#: part/models.py:1112 part/templates/part/part_base.html:285 msgid "Revision Of" msgstr "" -#: part/models.py:1075 +#: part/models.py:1136 msgid "Where is this item normally stored?" msgstr "" -#: part/models.py:1121 part/templates/part/part_base.html:385 +#: part/models.py:1182 part/templates/part/part_base.html:393 msgid "Default Supplier" msgstr "" -#: part/models.py:1122 +#: part/models.py:1183 msgid "Default supplier part" msgstr "" -#: part/models.py:1129 +#: part/models.py:1190 msgid "Default Expiry" msgstr "" -#: part/models.py:1130 +#: part/models.py:1191 msgid "Expiry time (in days) for stock items of this part" msgstr "" -#: part/models.py:1139 +#: part/models.py:1200 msgid "Minimum allowed stock level" msgstr "" -#: part/models.py:1148 +#: part/models.py:1209 msgid "Units of measure for this part" msgstr "" -#: part/models.py:1155 +#: part/models.py:1216 msgid "Can this part be built from other parts?" msgstr "" -#: part/models.py:1161 +#: part/models.py:1222 msgid "Can this part be used to build other parts?" msgstr "" -#: part/models.py:1167 +#: part/models.py:1228 msgid "Does this part have tracking for unique items?" msgstr "" -#: part/models.py:1173 +#: part/models.py:1234 msgid "Can this part have test results recorded against it?" msgstr "" -#: part/models.py:1179 +#: part/models.py:1240 msgid "Can this part be purchased from external suppliers?" msgstr "" -#: part/models.py:1185 +#: part/models.py:1246 msgid "Can this part be sold to customers?" msgstr "" -#: part/models.py:1189 +#: part/models.py:1250 msgid "Is this part active?" msgstr "" -#: part/models.py:1194 templates/js/translated/part.js:821 +#: part/models.py:1255 templates/js/translated/part.js:821 #: templates/js/translated/table_filters.js:724 msgid "Locked" msgstr "" -#: part/models.py:1195 +#: part/models.py:1256 msgid "Locked parts cannot be edited" msgstr "" -#: part/models.py:1201 +#: part/models.py:1262 msgid "Is this a virtual part, such as a software product or license?" msgstr "" -#: part/models.py:1207 +#: part/models.py:1268 msgid "BOM checksum" msgstr "" -#: part/models.py:1208 +#: part/models.py:1269 msgid "Stored BOM checksum" msgstr "" -#: part/models.py:1216 +#: part/models.py:1277 msgid "BOM checked by" msgstr "" -#: part/models.py:1221 +#: part/models.py:1282 msgid "BOM checked date" msgstr "" -#: part/models.py:1237 +#: part/models.py:1298 msgid "Creation User" msgstr "" -#: part/models.py:1247 +#: part/models.py:1308 msgid "Owner responsible for this part" msgstr "" -#: part/models.py:1252 part/templates/part/part_base.html:348 -#: stock/templates/stock/item_base.html:451 +#: part/models.py:1313 part/templates/part/part_base.html:356 +#: stock/templates/stock/item_base.html:448 #: templates/js/translated/part.js:2490 msgid "Last Stocktake" msgstr "" -#: part/models.py:2125 +#: part/models.py:2185 msgid "Sell multiple" msgstr "" -#: part/models.py:3116 +#: part/models.py:3167 msgid "Currency used to cache pricing calculations" msgstr "" -#: part/models.py:3132 +#: part/models.py:3183 msgid "Minimum BOM Cost" msgstr "" -#: part/models.py:3133 +#: part/models.py:3184 msgid "Minimum cost of component parts" msgstr "" -#: part/models.py:3139 +#: part/models.py:3190 msgid "Maximum BOM Cost" msgstr "" -#: part/models.py:3140 +#: part/models.py:3191 msgid "Maximum cost of component parts" msgstr "" -#: part/models.py:3146 +#: part/models.py:3197 msgid "Minimum Purchase Cost" msgstr "" -#: part/models.py:3147 +#: part/models.py:3198 msgid "Minimum historical purchase cost" msgstr "" -#: part/models.py:3153 +#: part/models.py:3204 msgid "Maximum Purchase Cost" msgstr "" -#: part/models.py:3154 +#: part/models.py:3205 msgid "Maximum historical purchase cost" msgstr "" -#: part/models.py:3160 +#: part/models.py:3211 msgid "Minimum Internal Price" msgstr "" -#: part/models.py:3161 +#: part/models.py:3212 msgid "Minimum cost based on internal price breaks" msgstr "" -#: part/models.py:3167 +#: part/models.py:3218 msgid "Maximum Internal Price" msgstr "" -#: part/models.py:3168 +#: part/models.py:3219 msgid "Maximum cost based on internal price breaks" msgstr "" -#: part/models.py:3174 +#: part/models.py:3225 msgid "Minimum Supplier Price" msgstr "" -#: part/models.py:3175 +#: part/models.py:3226 msgid "Minimum price of part from external suppliers" msgstr "" -#: part/models.py:3181 +#: part/models.py:3232 msgid "Maximum Supplier Price" msgstr "" -#: part/models.py:3182 +#: part/models.py:3233 msgid "Maximum price of part from external suppliers" msgstr "" -#: part/models.py:3188 +#: part/models.py:3239 msgid "Minimum Variant Cost" msgstr "" -#: part/models.py:3189 +#: part/models.py:3240 msgid "Calculated minimum cost of variant parts" msgstr "" -#: part/models.py:3195 +#: part/models.py:3246 msgid "Maximum Variant Cost" msgstr "" -#: part/models.py:3196 +#: part/models.py:3247 msgid "Calculated maximum cost of variant parts" msgstr "" -#: part/models.py:3203 +#: part/models.py:3254 msgid "Override minimum cost" msgstr "" -#: part/models.py:3210 +#: part/models.py:3261 msgid "Override maximum cost" msgstr "" -#: part/models.py:3217 +#: part/models.py:3268 msgid "Calculated overall minimum cost" msgstr "" -#: part/models.py:3224 +#: part/models.py:3275 msgid "Calculated overall maximum cost" msgstr "" -#: part/models.py:3230 +#: part/models.py:3281 msgid "Minimum Sale Price" msgstr "" -#: part/models.py:3231 +#: part/models.py:3282 msgid "Minimum sale price based on price breaks" msgstr "" -#: part/models.py:3237 +#: part/models.py:3288 msgid "Maximum Sale Price" msgstr "" -#: part/models.py:3238 +#: part/models.py:3289 msgid "Maximum sale price based on price breaks" msgstr "" -#: part/models.py:3244 +#: part/models.py:3295 msgid "Minimum Sale Cost" msgstr "" -#: part/models.py:3245 +#: part/models.py:3296 msgid "Minimum historical sale price" msgstr "" -#: part/models.py:3251 +#: part/models.py:3302 msgid "Maximum Sale Cost" msgstr "" -#: part/models.py:3252 +#: part/models.py:3303 msgid "Maximum historical sale price" msgstr "" -#: part/models.py:3271 +#: part/models.py:3322 msgid "Part for stocktake" msgstr "" -#: part/models.py:3276 +#: part/models.py:3327 msgid "Item Count" msgstr "" -#: part/models.py:3277 +#: part/models.py:3328 msgid "Number of individual stock entries at time of stocktake" msgstr "" -#: part/models.py:3285 +#: part/models.py:3336 msgid "Total available stock at time of stocktake" msgstr "" -#: part/models.py:3289 part/models.py:3372 +#: part/models.py:3340 part/models.py:3423 part/serializers.py:263 #: part/templates/part/part_scheduling.html:13 #: report/templates/report/inventree_test_report.html:106 #: templates/InvenTree/settings/plugin_settings.html:37 #: templates/InvenTree/settings/settings_staff_js.html:543 -#: templates/js/translated/part.js:1092 templates/js/translated/pricing.js:826 -#: templates/js/translated/pricing.js:950 -#: templates/js/translated/purchase_order.js:1801 -#: templates/js/translated/stock.js:2905 +#: templates/js/translated/part.js:1092 templates/js/translated/pricing.js:824 +#: templates/js/translated/pricing.js:948 +#: templates/js/translated/purchase_order.js:1785 +#: templates/js/translated/stock.js:2906 msgid "Date" msgstr "" -#: part/models.py:3290 +#: part/models.py:3341 msgid "Date stocktake was performed" msgstr "" -#: part/models.py:3298 +#: part/models.py:3349 msgid "Additional notes" msgstr "" -#: part/models.py:3308 +#: part/models.py:3359 msgid "User who performed this stocktake" msgstr "" -#: part/models.py:3314 +#: part/models.py:3365 msgid "Minimum Stock Cost" msgstr "" -#: part/models.py:3315 +#: part/models.py:3366 msgid "Estimated minimum cost of stock on hand" msgstr "" -#: part/models.py:3321 +#: part/models.py:3372 msgid "Maximum Stock Cost" msgstr "" -#: part/models.py:3322 +#: part/models.py:3373 msgid "Estimated maximum cost of stock on hand" msgstr "" -#: part/models.py:3378 templates/InvenTree/settings/settings_staff_js.html:532 +#: part/models.py:3429 templates/InvenTree/settings/settings_staff_js.html:532 msgid "Report" msgstr "" -#: part/models.py:3379 +#: part/models.py:3430 msgid "Stocktake report file (generated internally)" msgstr "" -#: part/models.py:3384 templates/InvenTree/settings/settings_staff_js.html:539 +#: part/models.py:3435 templates/InvenTree/settings/settings_staff_js.html:539 msgid "Part Count" msgstr "" -#: part/models.py:3385 +#: part/models.py:3436 msgid "Number of parts covered by stocktake" msgstr "" -#: part/models.py:3395 +#: part/models.py:3446 msgid "User who requested this stocktake report" msgstr "" -#: part/models.py:3405 +#: part/models.py:3456 msgid "Part Sale Price Break" msgstr "" -#: part/models.py:3517 +#: part/models.py:3568 msgid "Part Test Template" msgstr "" -#: part/models.py:3543 +#: part/models.py:3594 msgid "Invalid template name - must include at least one alphanumeric character" msgstr "" -#: part/models.py:3564 part/models.py:3733 +#: part/models.py:3615 part/models.py:3784 msgid "Choices must be unique" msgstr "" -#: part/models.py:3575 -msgid "Test templates can only be created for trackable parts" +#: part/models.py:3626 +msgid "Test templates can only be created for testable parts" msgstr "" -#: part/models.py:3586 +#: part/models.py:3637 msgid "Test template with the same key already exists for part" msgstr "" -#: part/models.py:3603 templates/js/translated/part.js:2898 +#: part/models.py:3654 templates/js/translated/part.js:2898 msgid "Test Name" msgstr "" -#: part/models.py:3604 +#: part/models.py:3655 msgid "Enter a name for the test" msgstr "" -#: part/models.py:3610 +#: part/models.py:3661 msgid "Test Key" msgstr "" -#: part/models.py:3611 +#: part/models.py:3662 msgid "Simplified key for the test" msgstr "" -#: part/models.py:3618 +#: part/models.py:3669 msgid "Test Description" msgstr "" -#: part/models.py:3619 +#: part/models.py:3670 msgid "Enter description for this test" msgstr "" -#: part/models.py:3623 report/models.py:208 +#: part/models.py:3674 report/models.py:216 #: templates/js/translated/part.js:2919 #: templates/js/translated/table_filters.js:502 msgid "Enabled" msgstr "" -#: part/models.py:3623 +#: part/models.py:3674 msgid "Is this test enabled?" msgstr "" -#: part/models.py:3628 templates/js/translated/part.js:2927 +#: part/models.py:3679 templates/js/translated/part.js:2927 #: templates/js/translated/table_filters.js:498 msgid "Required" msgstr "" -#: part/models.py:3629 +#: part/models.py:3680 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:3634 templates/js/translated/part.js:2935 +#: part/models.py:3685 templates/js/translated/part.js:2935 msgid "Requires Value" msgstr "" -#: part/models.py:3635 +#: part/models.py:3686 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:3640 templates/js/translated/part.js:2942 +#: part/models.py:3691 templates/js/translated/part.js:2942 msgid "Requires Attachment" msgstr "" -#: part/models.py:3642 +#: part/models.py:3693 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:3648 part/models.py:3792 templates/js/translated/part.js:1643 +#: part/models.py:3699 part/models.py:3843 templates/js/translated/part.js:1643 msgid "Choices" msgstr "" -#: part/models.py:3649 +#: part/models.py:3700 msgid "Valid choices for this test (comma-separated)" msgstr "" -#: part/models.py:3681 +#: part/models.py:3732 msgid "Part Parameter Template" msgstr "" -#: part/models.py:3708 +#: part/models.py:3759 msgid "Checkbox parameters cannot have units" msgstr "" -#: part/models.py:3713 +#: part/models.py:3764 msgid "Checkbox parameters cannot have choices" msgstr "" -#: part/models.py:3750 +#: part/models.py:3801 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:3765 +#: part/models.py:3816 msgid "Parameter Name" msgstr "" -#: part/models.py:3772 +#: part/models.py:3823 msgid "Physical units for this parameter" msgstr "" -#: part/models.py:3780 +#: part/models.py:3831 msgid "Parameter description" msgstr "" -#: part/models.py:3786 templates/js/translated/part.js:1634 +#: part/models.py:3837 templates/js/translated/part.js:1634 #: templates/js/translated/table_filters.js:837 msgid "Checkbox" msgstr "" -#: part/models.py:3787 +#: part/models.py:3838 msgid "Is this parameter a checkbox?" msgstr "" -#: part/models.py:3793 +#: part/models.py:3844 msgid "Valid choices for this parameter (comma-separated)" msgstr "" -#: part/models.py:3827 +#: part/models.py:3881 msgid "Part Parameter" msgstr "" -#: part/models.py:3853 +#: part/models.py:3907 msgid "Parameter cannot be modified - part is locked" msgstr "" -#: part/models.py:3889 +#: part/models.py:3945 msgid "Invalid choice for parameter value" msgstr "" -#: part/models.py:3938 +#: part/models.py:3996 msgid "Parent Part" msgstr "" -#: part/models.py:3946 part/models.py:4054 part/models.py:4055 +#: part/models.py:4004 part/models.py:4112 part/models.py:4113 #: templates/InvenTree/settings/settings_staff_js.html:295 msgid "Parameter Template" msgstr "" -#: part/models.py:3952 +#: part/models.py:4010 msgid "Parameter Value" msgstr "" -#: part/models.py:4002 +#: part/models.py:4060 msgid "Part Category Parameter Template" msgstr "" -#: part/models.py:4061 templates/InvenTree/settings/settings_staff_js.html:304 +#: part/models.py:4119 templates/InvenTree/settings/settings_staff_js.html:304 msgid "Default Value" msgstr "" -#: part/models.py:4062 +#: part/models.py:4120 msgid "Default Parameter Value" msgstr "" -#: part/models.py:4100 +#: part/models.py:4158 msgid "Part ID or part name" msgstr "" -#: part/models.py:4101 +#: part/models.py:4159 msgid "Unique part ID value" msgstr "" -#: part/models.py:4103 +#: part/models.py:4161 msgid "Part IPN value" msgstr "" -#: part/models.py:4104 +#: part/models.py:4162 msgid "Level" msgstr "" -#: part/models.py:4104 +#: part/models.py:4162 msgid "BOM level" msgstr "" -#: part/models.py:4215 +#: part/models.py:4272 msgid "BOM item cannot be modified - assembly is locked" msgstr "" -#: part/models.py:4222 +#: part/models.py:4279 msgid "BOM item cannot be modified - variant assembly is locked" msgstr "" -#: part/models.py:4232 +#: part/models.py:4289 msgid "Select parent part" msgstr "" -#: part/models.py:4242 +#: part/models.py:4299 msgid "Sub part" msgstr "" -#: part/models.py:4243 +#: part/models.py:4300 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:4254 +#: part/models.py:4311 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:4260 +#: part/models.py:4317 msgid "This BOM item is optional" msgstr "" -#: part/models.py:4266 +#: part/models.py:4323 msgid "This BOM item is consumable (it is not tracked in build orders)" msgstr "" -#: part/models.py:4273 part/templates/part/upload_bom.html:55 +#: part/models.py:4330 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "" -#: part/models.py:4274 +#: part/models.py:4331 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:4281 +#: part/models.py:4338 msgid "BOM item reference" msgstr "" -#: part/models.py:4289 +#: part/models.py:4346 msgid "BOM item notes" msgstr "" -#: part/models.py:4295 +#: part/models.py:4352 msgid "Checksum" msgstr "" -#: part/models.py:4296 +#: part/models.py:4353 msgid "BOM line checksum" msgstr "" -#: part/models.py:4301 templates/js/translated/table_filters.js:181 +#: part/models.py:4358 templates/js/translated/table_filters.js:181 msgid "Validated" msgstr "" -#: part/models.py:4302 +#: part/models.py:4359 msgid "This BOM item has been validated" msgstr "" -#: part/models.py:4307 part/templates/part/upload_bom.html:57 +#: part/models.py:4364 part/templates/part/upload_bom.html:57 #: templates/js/translated/bom.js:1054 #: templates/js/translated/table_filters.js:185 #: templates/js/translated/table_filters.js:218 msgid "Gets inherited" msgstr "" -#: part/models.py:4308 +#: part/models.py:4365 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:4314 +#: part/models.py:4371 msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:4399 stock/models.py:685 +#: part/models.py:4456 stock/models.py:762 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:4409 part/models.py:4411 +#: part/models.py:4466 part/models.py:4468 msgid "Sub part must be specified" msgstr "" -#: part/models.py:4551 +#: part/models.py:4613 msgid "BOM Item Substitute" msgstr "" -#: part/models.py:4572 +#: part/models.py:4634 msgid "Substitute part cannot be the same as the master part" msgstr "" -#: part/models.py:4585 +#: part/models.py:4647 msgid "Parent BOM item" msgstr "" -#: part/models.py:4593 +#: part/models.py:4655 msgid "Substitute part" msgstr "" -#: part/models.py:4609 +#: part/models.py:4671 msgid "Part 1" msgstr "" -#: part/models.py:4617 +#: part/models.py:4679 msgid "Part 2" msgstr "" -#: part/models.py:4618 +#: part/models.py:4680 msgid "Select Related Part" msgstr "" -#: part/models.py:4637 +#: part/models.py:4699 msgid "Part relationship cannot be created between a part and itself" msgstr "" -#: part/models.py:4642 +#: part/models.py:4704 msgid "Duplicate relationship already exists" msgstr "" @@ -7449,340 +7662,352 @@ msgstr "" msgid "Number of results recorded against this template" msgstr "" -#: part/serializers.py:225 part/serializers.py:243 stock/serializers.py:616 +#: part/serializers.py:225 part/serializers.py:243 stock/serializers.py:643 msgid "Purchase currency of this stock item" msgstr "" -#: part/serializers.py:291 +#: part/serializers.py:268 +msgid "Speculative Quantity" +msgstr "" + +#: part/serializers.py:277 +msgid "Model ID" +msgstr "" + +#: part/serializers.py:324 msgid "Number of parts using this template" msgstr "" -#: part/serializers.py:421 +#: part/serializers.py:465 msgid "No parts selected" msgstr "" -#: part/serializers.py:431 +#: part/serializers.py:475 msgid "Select category" msgstr "" -#: part/serializers.py:466 +#: part/serializers.py:510 msgid "Original Part" msgstr "" -#: part/serializers.py:467 +#: part/serializers.py:511 msgid "Select original part to duplicate" msgstr "" -#: part/serializers.py:472 +#: part/serializers.py:516 msgid "Copy Image" msgstr "" -#: part/serializers.py:473 +#: part/serializers.py:517 msgid "Copy image from original part" msgstr "" -#: part/serializers.py:479 part/templates/part/detail.html:293 +#: part/serializers.py:523 part/templates/part/detail.html:293 msgid "Copy BOM" msgstr "" -#: part/serializers.py:480 +#: part/serializers.py:524 msgid "Copy bill of materials from original part" msgstr "" -#: part/serializers.py:486 +#: part/serializers.py:530 msgid "Copy Parameters" msgstr "" -#: part/serializers.py:487 +#: part/serializers.py:531 msgid "Copy parameter data from original part" msgstr "" -#: part/serializers.py:493 +#: part/serializers.py:537 msgid "Copy Notes" msgstr "" -#: part/serializers.py:494 +#: part/serializers.py:538 msgid "Copy notes from original part" msgstr "" -#: part/serializers.py:512 +#: part/serializers.py:556 msgid "Initial Stock Quantity" msgstr "" -#: part/serializers.py:514 +#: part/serializers.py:558 msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added." msgstr "" -#: part/serializers.py:521 +#: part/serializers.py:565 msgid "Initial Stock Location" msgstr "" -#: part/serializers.py:522 +#: part/serializers.py:566 msgid "Specify initial stock location for this Part" msgstr "" -#: part/serializers.py:539 +#: part/serializers.py:583 msgid "Select supplier (or leave blank to skip)" msgstr "" -#: part/serializers.py:555 +#: part/serializers.py:599 msgid "Select manufacturer (or leave blank to skip)" msgstr "" -#: part/serializers.py:565 +#: part/serializers.py:609 msgid "Manufacturer part number" msgstr "" -#: part/serializers.py:572 +#: part/serializers.py:616 msgid "Selected company is not a valid supplier" msgstr "" -#: part/serializers.py:581 +#: part/serializers.py:625 msgid "Selected company is not a valid manufacturer" msgstr "" -#: part/serializers.py:592 +#: part/serializers.py:636 msgid "Manufacturer part matching this MPN already exists" msgstr "" -#: part/serializers.py:599 +#: part/serializers.py:643 msgid "Supplier part matching this SKU already exists" msgstr "" -#: part/serializers.py:903 +#: part/serializers.py:955 msgid "Revisions" msgstr "" -#: part/serializers.py:908 +#: part/serializers.py:960 msgid "Unallocated Stock" msgstr "" -#: part/serializers.py:911 +#: part/serializers.py:963 msgid "Variant Stock" msgstr "" -#: part/serializers.py:941 part/templates/part/copy_part.html:9 +#: part/serializers.py:993 part/templates/part/copy_part.html:9 #: templates/js/translated/part.js:474 msgid "Duplicate Part" msgstr "" -#: part/serializers.py:942 +#: part/serializers.py:994 msgid "Copy initial data from another Part" msgstr "" -#: part/serializers.py:948 templates/js/translated/part.js:103 +#: part/serializers.py:1000 templates/js/translated/part.js:103 msgid "Initial Stock" msgstr "" -#: part/serializers.py:949 +#: part/serializers.py:1001 msgid "Create Part with initial stock quantity" msgstr "" -#: part/serializers.py:955 +#: part/serializers.py:1007 msgid "Supplier Information" msgstr "" -#: part/serializers.py:956 +#: part/serializers.py:1008 msgid "Add initial supplier information for this part" msgstr "" -#: part/serializers.py:964 +#: part/serializers.py:1016 msgid "Copy Category Parameters" msgstr "" -#: part/serializers.py:965 +#: part/serializers.py:1017 msgid "Copy parameter templates from selected part category" msgstr "" -#: part/serializers.py:970 +#: part/serializers.py:1022 msgid "Existing Image" msgstr "" -#: part/serializers.py:971 +#: part/serializers.py:1023 msgid "Filename of an existing part image" msgstr "" -#: part/serializers.py:988 +#: part/serializers.py:1040 msgid "Image file does not exist" msgstr "" -#: part/serializers.py:1194 +#: part/serializers.py:1247 msgid "Limit stocktake report to a particular part, and any variant parts" msgstr "" -#: part/serializers.py:1204 +#: part/serializers.py:1257 msgid "Limit stocktake report to a particular part category, and any child categories" msgstr "" -#: part/serializers.py:1214 +#: part/serializers.py:1267 msgid "Limit stocktake report to a particular stock location, and any child locations" msgstr "" -#: part/serializers.py:1220 +#: part/serializers.py:1273 msgid "Exclude External Stock" msgstr "" -#: part/serializers.py:1221 +#: part/serializers.py:1274 msgid "Exclude stock items in external locations" msgstr "" -#: part/serializers.py:1226 +#: part/serializers.py:1279 msgid "Generate Report" msgstr "" -#: part/serializers.py:1227 +#: part/serializers.py:1280 msgid "Generate report file containing calculated stocktake data" msgstr "" -#: part/serializers.py:1232 +#: part/serializers.py:1285 msgid "Update Parts" msgstr "" -#: part/serializers.py:1233 +#: part/serializers.py:1286 msgid "Update specified parts with calculated stocktake data" msgstr "" -#: part/serializers.py:1241 +#: part/serializers.py:1294 msgid "Stocktake functionality is not enabled" msgstr "" -#: part/serializers.py:1347 +#: part/serializers.py:1299 +msgid "Background worker check failed" +msgstr "" + +#: part/serializers.py:1401 msgid "Override calculated value for minimum price" msgstr "" -#: part/serializers.py:1354 +#: part/serializers.py:1408 msgid "Minimum price currency" msgstr "" -#: part/serializers.py:1362 +#: part/serializers.py:1416 msgid "Override calculated value for maximum price" msgstr "" -#: part/serializers.py:1369 +#: part/serializers.py:1423 msgid "Maximum price currency" msgstr "" -#: part/serializers.py:1398 +#: part/serializers.py:1452 msgid "Update" msgstr "" -#: part/serializers.py:1399 +#: part/serializers.py:1453 msgid "Update pricing for this part" msgstr "" -#: part/serializers.py:1422 +#: part/serializers.py:1476 #, python-brace-format msgid "Could not convert from provided currencies to {default_currency}" msgstr "" -#: part/serializers.py:1429 +#: part/serializers.py:1483 msgid "Minimum price must not be greater than maximum price" msgstr "" -#: part/serializers.py:1432 +#: part/serializers.py:1486 msgid "Maximum price must not be less than minimum price" msgstr "" -#: part/serializers.py:1576 +#: part/serializers.py:1634 msgid "Select the parent assembly" msgstr "" -#: part/serializers.py:1585 +#: part/serializers.py:1643 msgid "Component Name" msgstr "" -#: part/serializers.py:1588 +#: part/serializers.py:1646 msgid "Component IPN" msgstr "" -#: part/serializers.py:1591 +#: part/serializers.py:1649 msgid "Component Description" msgstr "" -#: part/serializers.py:1597 +#: part/serializers.py:1655 msgid "Select the component part" msgstr "" -#: part/serializers.py:1606 part/templates/part/part_base.html:235 +#: part/serializers.py:1664 part/templates/part/part_base.html:243 #: templates/js/translated/bom.js:1219 msgid "Can Build" msgstr "" -#: part/serializers.py:1837 +#: part/serializers.py:1899 msgid "Select part to copy BOM from" msgstr "" -#: part/serializers.py:1845 +#: part/serializers.py:1907 msgid "Remove Existing Data" msgstr "" -#: part/serializers.py:1846 +#: part/serializers.py:1908 msgid "Remove existing BOM items before copying" msgstr "" -#: part/serializers.py:1851 +#: part/serializers.py:1913 msgid "Include Inherited" msgstr "" -#: part/serializers.py:1852 +#: part/serializers.py:1914 msgid "Include BOM items which are inherited from templated parts" msgstr "" -#: part/serializers.py:1857 +#: part/serializers.py:1919 msgid "Skip Invalid Rows" msgstr "" -#: part/serializers.py:1858 +#: part/serializers.py:1920 msgid "Enable this option to skip invalid rows" msgstr "" -#: part/serializers.py:1863 +#: part/serializers.py:1925 msgid "Copy Substitute Parts" msgstr "" -#: part/serializers.py:1864 +#: part/serializers.py:1926 msgid "Copy substitute parts when duplicate BOM items" msgstr "" -#: part/serializers.py:1901 +#: part/serializers.py:1963 msgid "Clear Existing BOM" msgstr "" -#: part/serializers.py:1902 +#: part/serializers.py:1964 msgid "Delete existing BOM items before uploading" msgstr "" -#: part/serializers.py:1934 +#: part/serializers.py:1996 msgid "No part column specified" msgstr "" -#: part/serializers.py:1978 +#: part/serializers.py:2040 msgid "Multiple matching parts found" msgstr "" -#: part/serializers.py:1981 +#: part/serializers.py:2043 msgid "No matching part found" msgstr "" -#: part/serializers.py:1984 +#: part/serializers.py:2045 msgid "Part is not designated as a component" msgstr "" -#: part/serializers.py:1993 +#: part/serializers.py:2054 msgid "Quantity not provided" msgstr "" -#: part/serializers.py:2001 +#: part/serializers.py:2062 msgid "Invalid quantity" msgstr "" -#: part/serializers.py:2024 +#: part/serializers.py:2085 msgid "At least one BOM item is required" msgstr "" #: part/stocktake.py:224 templates/js/translated/part.js:1073 #: templates/js/translated/part.js:1828 templates/js/translated/part.js:1884 -#: templates/js/translated/purchase_order.js:2154 +#: templates/js/translated/purchase_order.js:2138 msgid "Total Quantity" msgstr "" @@ -7932,9 +8157,9 @@ msgid "Add stocktake information" msgstr "" #: part/templates/part/detail.html:67 part/templates/part/part_sidebar.html:50 -#: stock/admin.py:255 templates/InvenTree/settings/part_stocktake.html:30 +#: stock/admin.py:256 templates/InvenTree/settings/part_stocktake.html:30 #: templates/InvenTree/settings/sidebar.html:53 -#: templates/js/translated/stock.js:2301 users/models.py:204 +#: templates/js/translated/stock.js:2302 users/models.py:204 msgid "Stocktake" msgstr "" @@ -8093,142 +8318,146 @@ msgstr "" msgid "Part List" msgstr "" -#: part/templates/part/part_base.html:25 part/templates/part/part_base.html:29 +#: part/templates/part/part_base.html:26 part/templates/part/part_base.html:30 msgid "You are subscribed to notifications for this part" msgstr "" -#: part/templates/part/part_base.html:33 +#: part/templates/part/part_base.html:34 msgid "Subscribe to notifications for this part" msgstr "" -#: part/templates/part/part_base.html:52 +#: part/templates/part/part_base.html:53 #: stock/templates/stock/item_base.html:62 -#: stock/templates/stock/location.html:71 templates/js/translated/label.js:136 +#: stock/templates/stock/location.html:72 templates/js/translated/label.js:136 msgid "Print Label" msgstr "" -#: part/templates/part/part_base.html:58 +#: part/templates/part/part_base.html:59 msgid "Show pricing information" msgstr "" -#: part/templates/part/part_base.html:63 -#: stock/templates/stock/item_base.html:110 -#: stock/templates/stock/location.html:80 +#: part/templates/part/part_base.html:64 +#: stock/templates/stock/item_base.html:107 +#: stock/templates/stock/location.html:81 msgid "Stock actions" msgstr "" -#: part/templates/part/part_base.html:70 +#: part/templates/part/part_base.html:71 msgid "Count part stock" msgstr "" -#: part/templates/part/part_base.html:76 +#: part/templates/part/part_base.html:77 msgid "Transfer part stock" msgstr "" -#: part/templates/part/part_base.html:91 templates/js/translated/part.js:2299 +#: part/templates/part/part_base.html:92 templates/js/translated/part.js:2299 msgid "Part actions" msgstr "" -#: part/templates/part/part_base.html:94 +#: part/templates/part/part_base.html:95 msgid "Duplicate part" msgstr "" -#: part/templates/part/part_base.html:97 +#: part/templates/part/part_base.html:98 msgid "Edit part" msgstr "" -#: part/templates/part/part_base.html:100 +#: part/templates/part/part_base.html:101 msgid "Delete part" msgstr "" -#: part/templates/part/part_base.html:119 +#: part/templates/part/part_base.html:120 msgid "Part is a template part (variants can be made from this part)" msgstr "" -#: part/templates/part/part_base.html:123 +#: part/templates/part/part_base.html:124 msgid "Part can be assembled from other parts" msgstr "" -#: part/templates/part/part_base.html:127 +#: part/templates/part/part_base.html:128 msgid "Part can be used in assemblies" msgstr "" -#: part/templates/part/part_base.html:131 +#: part/templates/part/part_base.html:132 msgid "Part stock is tracked by serial number" msgstr "" -#: part/templates/part/part_base.html:135 +#: part/templates/part/part_base.html:136 msgid "Part can be purchased from external suppliers" msgstr "" -#: part/templates/part/part_base.html:139 +#: part/templates/part/part_base.html:140 msgid "Part can be sold to customers" msgstr "" -#: part/templates/part/part_base.html:145 +#: part/templates/part/part_base.html:146 msgid "Part is not active" msgstr "" -#: part/templates/part/part_base.html:153 +#: part/templates/part/part_base.html:154 msgid "Part is virtual (not a physical part)" msgstr "" -#: part/templates/part/part_base.html:163 -#: part/templates/part/part_base.html:690 +#: part/templates/part/part_base.html:164 +#: part/templates/part/part_base.html:698 msgid "Show Part Details" msgstr "" #: part/templates/part/part_base.html:218 -#: stock/templates/stock/item_base.html:388 +msgid "Required for Orders" +msgstr "" + +#: part/templates/part/part_base.html:226 +#: stock/templates/stock/item_base.html:385 msgid "Allocated to Build Orders" msgstr "" -#: part/templates/part/part_base.html:227 -#: stock/templates/stock/item_base.html:381 +#: part/templates/part/part_base.html:235 +#: stock/templates/stock/item_base.html:378 msgid "Allocated to Sales Orders" msgstr "" -#: part/templates/part/part_base.html:300 +#: part/templates/part/part_base.html:308 msgid "Minimum stock level" msgstr "" -#: part/templates/part/part_base.html:331 templates/js/translated/bom.js:1071 +#: part/templates/part/part_base.html:339 templates/js/translated/bom.js:1071 #: templates/js/translated/part.js:1271 templates/js/translated/part.js:2463 #: templates/js/translated/pricing.js:391 -#: templates/js/translated/pricing.js:1054 +#: templates/js/translated/pricing.js:1052 msgid "Price Range" msgstr "" -#: part/templates/part/part_base.html:361 +#: part/templates/part/part_base.html:369 msgid "Latest Serial Number" msgstr "" -#: part/templates/part/part_base.html:365 -#: stock/templates/stock/item_base.html:322 +#: part/templates/part/part_base.html:373 +#: stock/templates/stock/item_base.html:319 msgid "Search for serial number" msgstr "" -#: part/templates/part/part_base.html:453 +#: part/templates/part/part_base.html:461 msgid "Part QR Code" msgstr "" -#: part/templates/part/part_base.html:470 +#: part/templates/part/part_base.html:478 msgid "Link Barcode to Part" msgstr "" -#: part/templates/part/part_base.html:520 +#: part/templates/part/part_base.html:528 msgid "Calculate" msgstr "" -#: part/templates/part/part_base.html:537 +#: part/templates/part/part_base.html:545 msgid "Remove associated image from this part" msgstr "" -#: part/templates/part/part_base.html:588 +#: part/templates/part/part_base.html:596 msgid "No matching images found" msgstr "" -#: part/templates/part/part_base.html:684 +#: part/templates/part/part_base.html:692 msgid "Hide Part Details" msgstr "" @@ -8282,13 +8511,13 @@ msgid "Variants" msgstr "" #: part/templates/part/part_sidebar.html:14 -#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:21 +#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:22 #: stock/templates/stock/stock_app_base.html:10 #: templates/InvenTree/search.html:153 #: templates/InvenTree/settings/sidebar.html:51 #: templates/js/translated/part.js:1249 templates/js/translated/part.js:2152 #: templates/js/translated/part.js:2411 templates/js/translated/stock.js:1066 -#: templates/js/translated/stock.js:2155 templates/navbar.html:31 +#: templates/js/translated/stock.js:2156 templates/navbar.html:31 msgid "Stock" msgstr "" @@ -8324,17 +8553,17 @@ msgstr "" #: part/templates/part/prices.html:18 #: templates/InvenTree/settings/settings_staff_js.html:80 #: templates/InvenTree/settings/user.html:24 -#: templates/js/translated/helpers.js:103 +#: templates/js/translated/helpers.js:104 #: templates/js/translated/pricing.js:628 templates/notes_buttons.html:3 #: templates/notes_buttons.html:4 msgid "Edit" msgstr "" -#: part/templates/part/prices.html:28 stock/admin.py:251 -#: stock/templates/stock/item_base.html:446 -#: templates/js/translated/company.js:1703 -#: templates/js/translated/company.js:1713 -#: templates/js/translated/stock.js:2331 +#: part/templates/part/prices.html:28 stock/admin.py:252 +#: stock/templates/stock/item_base.html:443 +#: templates/js/translated/company.js:1704 +#: templates/js/translated/company.js:1714 +#: templates/js/translated/stock.js:2332 msgid "Last Updated" msgstr "" @@ -8406,7 +8635,7 @@ msgid "Update Pricing" msgstr "" #: part/templates/part/stock_count.html:7 -#: templates/js/translated/model_renderers.js:228 +#: templates/js/translated/model_renderers.js:231 #: templates/js/translated/part.js:707 templates/js/translated/part.js:2147 #: templates/js/translated/part.js:2149 msgid "No Stock" @@ -8486,7 +8715,7 @@ msgstr "" msgid "Part Pricing" msgstr "" -#: plugin/api.py:172 +#: plugin/api.py:175 msgid "Plugin cannot be deleted as it is currently active" msgstr "" @@ -8498,78 +8727,85 @@ msgstr "" msgid "No matching action found" msgstr "" -#: plugin/base/barcodes/api.py:125 plugin/base/barcodes/api.py:371 -#: plugin/base/barcodes/api.py:546 +#: plugin/base/barcodes/api.py:203 msgid "No match found for barcode data" msgstr "" -#: plugin/base/barcodes/api.py:129 +#: plugin/base/barcodes/api.py:207 msgid "Match found for barcode data" msgstr "" -#: plugin/base/barcodes/api.py:163 plugin/base/barcodes/serializers.py:45 +#: plugin/base/barcodes/api.py:245 plugin/base/barcodes/serializers.py:72 msgid "Model is not supported" msgstr "" -#: plugin/base/barcodes/api.py:168 +#: plugin/base/barcodes/api.py:250 msgid "Model instance not found" msgstr "" -#: plugin/base/barcodes/api.py:197 -#: templates/js/translated/purchase_order.js:1468 +#: plugin/base/barcodes/api.py:279 +#: templates/js/translated/purchase_order.js:1452 msgid "Barcode matches existing item" msgstr "" -#: plugin/base/barcodes/api.py:336 +#: plugin/base/barcodes/api.py:418 msgid "No matching part data found" msgstr "" -#: plugin/base/barcodes/api.py:353 +#: plugin/base/barcodes/api.py:434 msgid "No matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:357 +#: plugin/base/barcodes/api.py:437 msgid "Multiple matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:381 +#: plugin/base/barcodes/api.py:450 plugin/base/barcodes/api.py:664 +msgid "No matching plugin found for barcode data" +msgstr "" + +#: plugin/base/barcodes/api.py:460 msgid "Matched supplier part" msgstr "" -#: plugin/base/barcodes/api.py:430 +#: plugin/base/barcodes/api.py:525 msgid "Item has already been received" msgstr "" -#: plugin/base/barcodes/api.py:467 +#: plugin/base/barcodes/api.py:563 msgid "No match for supplier barcode" msgstr "" -#: plugin/base/barcodes/api.py:510 +#: plugin/base/barcodes/api.py:612 msgid "Multiple matching line items found" msgstr "" -#: plugin/base/barcodes/api.py:513 +#: plugin/base/barcodes/api.py:615 msgid "No matching line item found" msgstr "" -#: plugin/base/barcodes/api.py:551 plugin/base/barcodes/api.py:558 +#: plugin/base/barcodes/api.py:661 +msgid "No sales order provided" +msgstr "" + +#: plugin/base/barcodes/api.py:670 msgid "Barcode does not match an existing stock item" msgstr "" -#: plugin/base/barcodes/api.py:569 +#: plugin/base/barcodes/api.py:686 msgid "Stock item does not match line item" msgstr "" -#: plugin/base/barcodes/api.py:593 templates/js/translated/build.js:2780 -#: templates/js/translated/sales_order.js:1953 +#: plugin/base/barcodes/api.py:716 templates/js/translated/build.js:2798 +#: templates/js/translated/sales_order.js:1934 msgid "Insufficient stock available" msgstr "" -#: plugin/base/barcodes/api.py:602 +#: plugin/base/barcodes/api.py:729 msgid "Stock item allocated to sales order" msgstr "" -#: plugin/base/barcodes/api.py:606 +#: plugin/base/barcodes/api.py:732 msgid "Not enough information" msgstr "" @@ -8591,75 +8827,75 @@ msgstr "" msgid "Purchase order does not match supplier" msgstr "" -#: plugin/base/barcodes/mixins.py:465 +#: plugin/base/barcodes/mixins.py:467 msgid "Failed to find pending line item for supplier part" msgstr "" -#: plugin/base/barcodes/mixins.py:496 +#: plugin/base/barcodes/mixins.py:498 msgid "Further information required to receive line item" msgstr "" -#: plugin/base/barcodes/mixins.py:504 +#: plugin/base/barcodes/mixins.py:506 msgid "Received purchase order line item" msgstr "" -#: plugin/base/barcodes/serializers.py:21 +#: plugin/base/barcodes/serializers.py:48 msgid "Scanned barcode data" msgstr "" -#: plugin/base/barcodes/serializers.py:30 +#: plugin/base/barcodes/serializers.py:57 msgid "Model name to generate barcode for" msgstr "" -#: plugin/base/barcodes/serializers.py:35 +#: plugin/base/barcodes/serializers.py:62 msgid "Primary key of model object to generate barcode for" msgstr "" -#: plugin/base/barcodes/serializers.py:105 +#: plugin/base/barcodes/serializers.py:132 msgid "Purchase Order to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:111 +#: plugin/base/barcodes/serializers.py:138 msgid "Purchase order is not pending" msgstr "" -#: plugin/base/barcodes/serializers.py:129 +#: plugin/base/barcodes/serializers.py:156 msgid "PurchaseOrder to receive items against" msgstr "" -#: plugin/base/barcodes/serializers.py:135 +#: plugin/base/barcodes/serializers.py:162 msgid "Purchase order has not been placed" msgstr "" -#: plugin/base/barcodes/serializers.py:143 +#: plugin/base/barcodes/serializers.py:170 msgid "Location to receive items into" msgstr "" -#: plugin/base/barcodes/serializers.py:149 +#: plugin/base/barcodes/serializers.py:176 msgid "Cannot select a structural location" msgstr "" -#: plugin/base/barcodes/serializers.py:163 +#: plugin/base/barcodes/serializers.py:190 msgid "Sales Order to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:169 +#: plugin/base/barcodes/serializers.py:196 msgid "Sales order is not pending" msgstr "" -#: plugin/base/barcodes/serializers.py:177 +#: plugin/base/barcodes/serializers.py:204 msgid "Sales order line item to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:184 +#: plugin/base/barcodes/serializers.py:211 msgid "Sales order shipment to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:190 +#: plugin/base/barcodes/serializers.py:217 msgid "Shipment has already been delivered" msgstr "" -#: plugin/base/barcodes/serializers.py:195 +#: plugin/base/barcodes/serializers.py:222 msgid "Quantity to allocate" msgstr "" @@ -8679,6 +8915,42 @@ msgstr "" msgid "No items provided to print" msgstr "" +#: plugin/base/ui/serializers.py:30 +msgid "Plugin Name" +msgstr "" + +#: plugin/base/ui/serializers.py:34 +msgid "Feature Type" +msgstr "" + +#: plugin/base/ui/serializers.py:39 +msgid "Feature Label" +msgstr "" + +#: plugin/base/ui/serializers.py:44 +msgid "Feature Title" +msgstr "" + +#: plugin/base/ui/serializers.py:49 +msgid "Feature Description" +msgstr "" + +#: plugin/base/ui/serializers.py:54 +msgid "Feature Icon" +msgstr "" + +#: plugin/base/ui/serializers.py:58 +msgid "Feature Options" +msgstr "" + +#: plugin/base/ui/serializers.py:61 +msgid "Feature Context" +msgstr "" + +#: plugin/base/ui/serializers.py:64 +msgid "Feature Source (javascript)" +msgstr "" + #: plugin/builtin/barcodes/inventree_barcode.py:27 msgid "InvenTree Barcodes" msgstr "" @@ -8756,7 +9028,7 @@ msgstr "" msgid "URL that is used to send messages to a slack channel" msgstr "" -#: plugin/builtin/integration/core_notifications.py:164 +#: plugin/builtin/integration/core_notifications.py:166 msgid "Open link" msgstr "" @@ -8794,11 +9066,11 @@ msgstr "" msgid "Provides support for printing using a machine" msgstr "" -#: plugin/builtin/labels/inventree_machine.py:149 +#: plugin/builtin/labels/inventree_machine.py:151 msgid "last used" msgstr "" -#: plugin/builtin/labels/inventree_machine.py:166 +#: plugin/builtin/labels/inventree_machine.py:168 msgid "Options" msgstr "" @@ -8822,7 +9094,7 @@ msgstr "" msgid "Print a border around each label" msgstr "" -#: plugin/builtin/labels/label_sheet.py:47 report/models.py:307 +#: plugin/builtin/labels/label_sheet.py:47 report/models.py:315 msgid "Landscape" msgstr "" @@ -8894,19 +9166,19 @@ msgstr "" msgid "The Supplier which acts as 'TME'" msgstr "" -#: plugin/installer.py:194 plugin/installer.py:282 +#: plugin/installer.py:199 plugin/installer.py:282 msgid "Only staff users can administer plugins" msgstr "" -#: plugin/installer.py:197 +#: plugin/installer.py:202 msgid "Plugin installation is disabled" msgstr "" -#: plugin/installer.py:248 +#: plugin/installer.py:246 msgid "Installed plugin successfully" msgstr "" -#: plugin/installer.py:254 +#: plugin/installer.py:251 #, python-brace-format msgid "Installed plugin into {path}" msgstr "" @@ -8943,10 +9215,6 @@ msgstr "" msgid "Plugin Configurations" msgstr "" -#: plugin/models.py:43 users/models.py:100 -msgid "Key" -msgstr "" - #: plugin/models.py:44 msgid "Key of plugin" msgstr "" @@ -8955,7 +9223,7 @@ msgstr "" msgid "PluginName of the plugin" msgstr "" -#: plugin/models.py:59 plugin/serializers.py:90 +#: plugin/models.py:59 plugin/serializers.py:115 msgid "Package Name" msgstr "" @@ -8984,17 +9252,17 @@ msgstr "" msgid "Package Plugin" msgstr "" -#: plugin/models.py:220 report/models.py:474 +#: plugin/models.py:259 report/models.py:482 #: templates/InvenTree/settings/plugin_settings.html:9 #: templates/js/translated/plugin.js:51 msgid "Plugin" msgstr "" -#: plugin/models.py:267 +#: plugin/models.py:306 msgid "Method" msgstr "" -#: plugin/plugin.py:270 +#: plugin/plugin.py:275 msgid "No author found" msgstr "" @@ -9053,81 +9321,157 @@ msgstr "" msgid "InvenTree Contributors" msgstr "" -#: plugin/serializers.py:81 -msgid "Source URL" +#: plugin/samples/integration/user_interface_sample.py:27 +msgid "Enable Part Panels" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:28 +msgid "Enable custom panels for Part views" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:33 +msgid "Enable Purchase Order Panels" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:34 +msgid "Enable custom panels for Purchase Order views" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:39 +msgid "Enable Broken Panels" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:40 +msgid "Enable broken panels for testing" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:45 +msgid "Enable Dynamic Panel" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:46 +msgid "Enable dynamic panels for testing" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:98 +msgid "Part Panel" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:131 +msgid "Broken Dashboard Item" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:133 +msgid "This is a broken dashboard item - it will not render!" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:139 +msgid "Sample Dashboard Item" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:141 +msgid "This is a sample dashboard item. It renders a simple string of HTML content." +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:147 +msgid "Context Dashboard Item" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:161 +msgid "Admin Dashboard Item" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:162 +msgid "This is an admin-only dashboard item." +msgstr "" + +#: plugin/serializers.py:82 +msgid "Source File" msgstr "" #: plugin/serializers.py:83 +msgid "Path to the source file for admin integration" +msgstr "" + +#: plugin/serializers.py:90 +msgid "Optional context data for the admin integration" +msgstr "" + +#: plugin/serializers.py:106 +msgid "Source URL" +msgstr "" + +#: plugin/serializers.py:108 msgid "Source for the package - this can be a custom registry or a VCS path" msgstr "" -#: plugin/serializers.py:92 +#: plugin/serializers.py:117 msgid "Name for the Plugin Package - can also contain a version indicator" msgstr "" -#: plugin/serializers.py:99 +#: plugin/serializers.py:124 #: templates/InvenTree/settings/plugin_settings.html:42 #: templates/js/translated/plugin.js:86 msgid "Version" msgstr "" -#: plugin/serializers.py:101 +#: plugin/serializers.py:126 msgid "Version specifier for the plugin. Leave blank for latest version." msgstr "" -#: plugin/serializers.py:106 +#: plugin/serializers.py:131 msgid "Confirm plugin installation" msgstr "" -#: plugin/serializers.py:108 +#: plugin/serializers.py:133 msgid "This will install this plugin now into the current instance. The instance will go into maintenance." msgstr "" -#: plugin/serializers.py:121 +#: plugin/serializers.py:146 msgid "Installation not confirmed" msgstr "" -#: plugin/serializers.py:123 +#: plugin/serializers.py:148 msgid "Either packagename of URL must be provided" msgstr "" -#: plugin/serializers.py:161 +#: plugin/serializers.py:184 msgid "Full reload" msgstr "" -#: plugin/serializers.py:162 +#: plugin/serializers.py:185 msgid "Perform a full reload of the plugin registry" msgstr "" -#: plugin/serializers.py:168 +#: plugin/serializers.py:191 msgid "Force reload" msgstr "" -#: plugin/serializers.py:170 +#: plugin/serializers.py:193 msgid "Force a reload of the plugin registry, even if it is already loaded" msgstr "" -#: plugin/serializers.py:177 +#: plugin/serializers.py:200 msgid "Collect plugins" msgstr "" -#: plugin/serializers.py:178 +#: plugin/serializers.py:201 msgid "Collect plugins and add them to the registry" msgstr "" -#: plugin/serializers.py:205 +#: plugin/serializers.py:228 msgid "Activate Plugin" msgstr "" -#: plugin/serializers.py:206 +#: plugin/serializers.py:229 msgid "Activate this plugin" msgstr "" -#: plugin/serializers.py:226 +#: plugin/serializers.py:249 msgid "Delete configuration" msgstr "" -#: plugin/serializers.py:227 +#: plugin/serializers.py:250 msgid "Delete the plugin configuration from the database" msgstr "" @@ -9135,11 +9479,11 @@ msgstr "" msgid "No valid objects provided to template" msgstr "" -#: report/api.py:103 report/models.py:438 report/serializers.py:98 -#: report/serializers.py:148 templates/js/translated/purchase_order.js:1817 +#: report/api.py:103 report/models.py:446 report/serializers.py:99 +#: report/serializers.py:149 templates/js/translated/purchase_order.js:1801 #: templates/js/translated/return_order.js:353 -#: templates/js/translated/sales_order.js:887 -#: templates/js/translated/sales_order.js:1047 +#: templates/js/translated/sales_order.js:846 +#: templates/js/translated/sales_order.js:1020 msgid "Items" msgstr "" @@ -9167,7 +9511,11 @@ msgstr "" msgid "Error printing label" msgstr "" -#: report/api.py:375 report/api.py:411 +#: report/api.py:358 +msgid "Report saved at time of printing" +msgstr "" + +#: report/api.py:384 report/api.py:420 #, python-brace-format msgid "Template file '{template}' is missing or does not exist" msgstr "" @@ -9204,135 +9552,143 @@ msgstr "" msgid "Revision number (auto-increments)" msgstr "" -#: report/models.py:202 +#: report/models.py:168 +msgid "Attach to Model on Print" +msgstr "" + +#: report/models.py:170 +msgid "Save report output as an attachment against linked model instance when printing" +msgstr "" + +#: report/models.py:210 msgid "Filename Pattern" msgstr "" -#: report/models.py:203 +#: report/models.py:211 msgid "Pattern for generating filenames" msgstr "" -#: report/models.py:208 +#: report/models.py:216 msgid "Template is enabled" msgstr "" -#: report/models.py:214 +#: report/models.py:222 msgid "Target model type for template" msgstr "" -#: report/models.py:234 +#: report/models.py:242 msgid "Filters" msgstr "" -#: report/models.py:235 +#: report/models.py:243 msgid "Template query filters (comma-separated list of key=value pairs)" msgstr "" -#: report/models.py:294 report/models.py:361 +#: report/models.py:302 report/models.py:369 msgid "Template file" msgstr "" -#: report/models.py:302 +#: report/models.py:310 msgid "Page size for PDF reports" msgstr "" -#: report/models.py:308 +#: report/models.py:316 msgid "Render report in landscape orientation" msgstr "" -#: report/models.py:367 +#: report/models.py:375 msgid "Width [mm]" msgstr "" -#: report/models.py:368 +#: report/models.py:376 msgid "Label width, specified in mm" msgstr "" -#: report/models.py:374 +#: report/models.py:382 msgid "Height [mm]" msgstr "" -#: report/models.py:375 +#: report/models.py:383 msgid "Label height, specified in mm" msgstr "" -#: report/models.py:438 +#: report/models.py:446 msgid "Number of items to process" msgstr "" -#: report/models.py:444 +#: report/models.py:452 msgid "Report generation is complete" msgstr "" -#: report/models.py:448 templates/js/translated/build.js:2349 +#: report/models.py:456 templates/js/translated/build.js:2352 msgid "Progress" msgstr "" -#: report/models.py:448 +#: report/models.py:456 msgid "Report generation progress" msgstr "" -#: report/models.py:456 +#: report/models.py:464 msgid "Report Template" msgstr "" -#: report/models.py:463 report/models.py:486 +#: report/models.py:471 report/models.py:494 msgid "Output File" msgstr "" -#: report/models.py:464 report/models.py:487 +#: report/models.py:472 report/models.py:495 msgid "Generated output file" msgstr "" -#: report/models.py:475 +#: report/models.py:483 msgid "Label output plugin" msgstr "" -#: report/models.py:479 +#: report/models.py:487 msgid "Label Template" msgstr "" -#: report/models.py:502 +#: report/models.py:510 msgid "Snippet" msgstr "" -#: report/models.py:503 +#: report/models.py:511 msgid "Report snippet file" msgstr "" -#: report/models.py:510 +#: report/models.py:518 msgid "Snippet file description" msgstr "" -#: report/models.py:528 +#: report/models.py:536 msgid "Asset" msgstr "" -#: report/models.py:529 +#: report/models.py:537 msgid "Report asset file" msgstr "" -#: report/models.py:536 +#: report/models.py:544 msgid "Asset file description" msgstr "" -#: report/serializers.py:91 +#: report/serializers.py:92 msgid "Select report template" msgstr "" -#: report/serializers.py:99 report/serializers.py:149 +#: report/serializers.py:100 report/serializers.py:150 msgid "List of item primary keys to include in the report" msgstr "" -#: report/serializers.py:132 +#: report/serializers.py:133 msgid "Select label template" msgstr "" -#: report/serializers.py:140 +#: report/serializers.py:141 msgid "Printing Plugin" msgstr "" -#: report/serializers.py:141 +#: report/serializers.py:142 msgid "Select plugin to use for label printing" msgstr "" @@ -9365,9 +9721,9 @@ msgstr "" #: report/templates/report/inventree_sales_order_report.html:30 #: templates/js/translated/order.js:341 templates/js/translated/pricing.js:527 #: templates/js/translated/pricing.js:596 -#: templates/js/translated/pricing.js:834 -#: templates/js/translated/purchase_order.js:2185 -#: templates/js/translated/sales_order.js:1873 +#: templates/js/translated/pricing.js:832 +#: templates/js/translated/purchase_order.js:2169 +#: templates/js/translated/sales_order.js:1854 msgid "Unit Price" msgstr "" @@ -9379,13 +9735,18 @@ msgstr "" #: report/templates/report/inventree_purchase_order_report.html:72 #: report/templates/report/inventree_sales_order_report.html:72 -#: templates/js/translated/purchase_order.js:2087 -#: templates/js/translated/sales_order.js:1842 +#: templates/js/translated/purchase_order.js:2071 +#: templates/js/translated/sales_order.js:1823 #: templates/test_statistics_table.html:8 #: templates/test_statistics_table.html:19 msgid "Total" msgstr "" +#: report/templates/report/inventree_sales_order_shipment_report.html:23 +#: stock/templates/stock/stock_sidebar.html:8 +msgid "Allocations" +msgstr "" + #: report/templates/report/inventree_stock_location_report.html:97 msgid "Stock location items" msgstr "" @@ -9403,15 +9764,13 @@ msgstr "" msgid "Test" msgstr "" -#: report/templates/report/inventree_test_report.html:103 stock/models.py:2544 -msgid "Result" -msgstr "" - #: report/templates/report/inventree_test_report.html:129 +#: templates/js/translated/stock.js:1448 msgid "Pass" msgstr "" #: report/templates/report/inventree_test_report.html:131 +#: templates/js/translated/stock.js:1450 msgid "Fail" msgstr "" @@ -9420,17 +9779,18 @@ msgid "No result (required)" msgstr "" #: report/templates/report/inventree_test_report.html:140 +#: templates/js/translated/stock.js:1455 msgid "No result" msgstr "" #: report/templates/report/inventree_test_report.html:153 -#: stock/serializers.py:599 stock/templates/stock/stock_sidebar.html:16 +#: stock/serializers.py:626 stock/templates/stock/stock_sidebar.html:16 msgid "Installed Items" msgstr "" -#: report/templates/report/inventree_test_report.html:167 stock/admin.py:161 +#: report/templates/report/inventree_test_report.html:167 stock/admin.py:162 #: templates/js/translated/stock.js:706 templates/js/translated/stock.js:877 -#: templates/js/translated/stock.js:3194 +#: templates/js/translated/stock.js:3195 msgid "Serial" msgstr "" @@ -9450,67 +9810,67 @@ msgstr "" msgid "company_image tag requires a Company instance" msgstr "" -#: stock/admin.py:51 stock/admin.py:171 +#: stock/admin.py:51 stock/admin.py:172 msgid "Location ID" msgstr "" -#: stock/admin.py:63 stock/templates/stock/location.html:128 -#: stock/templates/stock/location.html:134 +#: stock/admin.py:63 stock/templates/stock/location.html:129 +#: stock/templates/stock/location.html:135 msgid "Location Path" msgstr "" -#: stock/admin.py:148 +#: stock/admin.py:149 msgid "Stock Item ID" msgstr "" -#: stock/admin.py:167 +#: stock/admin.py:168 msgid "Status Code" msgstr "" -#: stock/admin.py:179 +#: stock/admin.py:180 msgid "Supplier Part ID" msgstr "" -#: stock/admin.py:184 +#: stock/admin.py:185 msgid "Supplier Part SKU" msgstr "" -#: stock/admin.py:189 +#: stock/admin.py:190 msgid "Supplier ID" msgstr "" -#: stock/admin.py:200 +#: stock/admin.py:201 msgid "Customer ID" msgstr "" -#: stock/admin.py:205 stock/models.py:825 -#: stock/templates/stock/item_base.html:354 +#: stock/admin.py:206 stock/models.py:902 +#: stock/templates/stock/item_base.html:351 msgid "Installed In" msgstr "" -#: stock/admin.py:210 +#: stock/admin.py:211 msgid "Build ID" msgstr "" -#: stock/admin.py:220 +#: stock/admin.py:221 msgid "Sales Order ID" msgstr "" -#: stock/admin.py:225 +#: stock/admin.py:226 msgid "Purchase Order ID" msgstr "" -#: stock/admin.py:240 +#: stock/admin.py:241 msgid "Review Needed" msgstr "" -#: stock/admin.py:245 +#: stock/admin.py:246 msgid "Delete on Deplete" msgstr "" -#: stock/admin.py:260 stock/models.py:919 -#: stock/templates/stock/item_base.html:433 -#: templates/js/translated/stock.js:2315 users/models.py:124 +#: stock/admin.py:261 stock/models.py:996 +#: stock/templates/stock/item_base.html:430 +#: templates/js/translated/stock.js:2316 users/models.py:124 msgid "Expiry Date" msgstr "" @@ -9526,11 +9886,11 @@ msgstr "" msgid "Include sub-locations in filtered results" msgstr "" -#: stock/api.py:367 stock/serializers.py:1186 +#: stock/api.py:366 stock/serializers.py:1217 msgid "Parent Location" msgstr "" -#: stock/api.py:368 +#: stock/api.py:367 msgid "Filter by parent location" msgstr "" @@ -9550,8 +9910,8 @@ msgstr "" msgid "Expiry date after" msgstr "" -#: stock/api.py:840 stock/serializers.py:604 -#: stock/templates/stock/item_base.html:439 +#: stock/api.py:840 stock/serializers.py:631 +#: stock/templates/stock/item_base.html:436 #: templates/js/translated/table_filters.js:448 msgid "Stale" msgstr "" @@ -9560,594 +9920,598 @@ msgstr "" msgid "Quantity is required" msgstr "" -#: stock/api.py:933 +#: stock/api.py:932 msgid "Valid part must be supplied" msgstr "" -#: stock/api.py:964 +#: stock/api.py:959 msgid "The given supplier part does not exist" msgstr "" -#: stock/api.py:974 +#: stock/api.py:969 msgid "The supplier part has a pack size defined, but flag use_pack_size not set" msgstr "" -#: stock/api.py:1005 +#: stock/api.py:996 msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "" -#: stock/models.py:64 +#: stock/models.py:70 msgid "Stock Location type" msgstr "" -#: stock/models.py:65 +#: stock/models.py:71 msgid "Stock Location types" msgstr "" -#: stock/models.py:91 +#: stock/models.py:97 msgid "Default icon for all locations that have no icon set (optional)" msgstr "" -#: stock/models.py:131 stock/models.py:807 -#: stock/templates/stock/location.html:17 +#: stock/models.py:137 stock/models.py:884 +#: stock/templates/stock/location.html:18 #: stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "" -#: stock/models.py:132 stock/templates/stock/location.html:183 +#: stock/models.py:138 stock/templates/stock/location.html:184 #: templates/InvenTree/search.html:166 templates/js/translated/search.js:178 #: users/models.py:205 msgid "Stock Locations" msgstr "" -#: stock/models.py:180 stock/models.py:968 -#: stock/templates/stock/item_base.html:247 +#: stock/models.py:186 stock/models.py:1045 +#: stock/templates/stock/item_base.html:244 msgid "Owner" msgstr "" -#: stock/models.py:181 stock/models.py:969 +#: stock/models.py:187 stock/models.py:1046 msgid "Select Owner" msgstr "" -#: stock/models.py:189 +#: stock/models.py:195 msgid "Stock items may not be directly located into a structural stock locations, but may be located to child locations." msgstr "" -#: stock/models.py:196 templates/js/translated/stock.js:2865 +#: stock/models.py:202 templates/js/translated/stock.js:2866 #: templates/js/translated/table_filters.js:250 msgid "External" msgstr "" -#: stock/models.py:197 +#: stock/models.py:203 msgid "This is an external stock location" msgstr "" -#: stock/models.py:203 templates/js/translated/stock.js:2874 +#: stock/models.py:209 templates/js/translated/stock.js:2875 #: templates/js/translated/table_filters.js:253 msgid "Location type" msgstr "" -#: stock/models.py:207 +#: stock/models.py:213 msgid "Stock location type of this location" msgstr "" -#: stock/models.py:279 +#: stock/models.py:285 msgid "You cannot make this stock location structural because some stock items are already located into it!" msgstr "" -#: stock/models.py:664 +#: stock/models.py:492 +msgid "Part must be specified" +msgstr "" + +#: stock/models.py:741 msgid "Stock items cannot be located into structural stock locations!" msgstr "" -#: stock/models.py:691 stock/serializers.py:480 +#: stock/models.py:768 stock/serializers.py:492 msgid "Stock item cannot be created for virtual parts" msgstr "" -#: stock/models.py:708 +#: stock/models.py:785 #, python-brace-format msgid "Part type ('{self.supplier_part.part}') must be {self.part}" msgstr "" -#: stock/models.py:718 stock/models.py:731 +#: stock/models.py:795 stock/models.py:808 msgid "Quantity must be 1 for item with a serial number" msgstr "" -#: stock/models.py:721 +#: stock/models.py:798 msgid "Serial number cannot be set if quantity greater than 1" msgstr "" -#: stock/models.py:743 +#: stock/models.py:820 msgid "Item cannot belong to itself" msgstr "" -#: stock/models.py:748 +#: stock/models.py:825 msgid "Item must have a build reference if is_building=True" msgstr "" -#: stock/models.py:761 +#: stock/models.py:838 msgid "Build reference does not point to the same part object" msgstr "" -#: stock/models.py:777 +#: stock/models.py:854 msgid "Parent Stock Item" msgstr "" -#: stock/models.py:789 +#: stock/models.py:866 msgid "Base part" msgstr "" -#: stock/models.py:799 +#: stock/models.py:876 msgid "Select a matching supplier part for this stock item" msgstr "" -#: stock/models.py:811 +#: stock/models.py:888 msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:819 stock/serializers.py:1580 +#: stock/models.py:896 stock/serializers.py:1611 msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:830 +#: stock/models.py:907 msgid "Is this item installed in another item?" msgstr "" -#: stock/models.py:849 +#: stock/models.py:926 msgid "Serial number for this item" msgstr "" -#: stock/models.py:863 stock/serializers.py:1563 +#: stock/models.py:940 stock/serializers.py:1594 msgid "Batch code for this stock item" msgstr "" -#: stock/models.py:868 +#: stock/models.py:945 msgid "Stock Quantity" msgstr "" -#: stock/models.py:878 +#: stock/models.py:955 msgid "Source Build" msgstr "" -#: stock/models.py:881 +#: stock/models.py:958 msgid "Build for this stock item" msgstr "" -#: stock/models.py:888 stock/templates/stock/item_base.html:363 +#: stock/models.py:965 stock/templates/stock/item_base.html:360 msgid "Consumed By" msgstr "" -#: stock/models.py:891 +#: stock/models.py:968 msgid "Build order which consumed this stock item" msgstr "" -#: stock/models.py:900 +#: stock/models.py:977 msgid "Source Purchase Order" msgstr "" -#: stock/models.py:904 +#: stock/models.py:981 msgid "Purchase order for this stock item" msgstr "" -#: stock/models.py:910 +#: stock/models.py:987 msgid "Destination Sales Order" msgstr "" -#: stock/models.py:921 +#: stock/models.py:998 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "" -#: stock/models.py:939 +#: stock/models.py:1016 msgid "Delete on deplete" msgstr "" -#: stock/models.py:940 +#: stock/models.py:1017 msgid "Delete this Stock Item when stock is depleted" msgstr "" -#: stock/models.py:960 +#: stock/models.py:1037 msgid "Single unit purchase price at time of purchase" msgstr "" -#: stock/models.py:991 +#: stock/models.py:1068 msgid "Converted to part" msgstr "" -#: stock/models.py:1511 +#: stock/models.py:1600 msgid "Part is not set as trackable" msgstr "" -#: stock/models.py:1517 +#: stock/models.py:1606 msgid "Quantity must be integer" msgstr "" -#: stock/models.py:1525 +#: stock/models.py:1614 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({self.quantity})" msgstr "" -#: stock/models.py:1531 -msgid "Serial numbers must be a list of integers" +#: stock/models.py:1620 +msgid "Serial numbers must be provided as a list" msgstr "" -#: stock/models.py:1536 +#: stock/models.py:1625 msgid "Quantity does not match serial numbers" msgstr "" -#: stock/models.py:1544 stock/serializers.py:726 -msgid "Serial numbers already exist" -msgstr "" - -#: stock/models.py:1641 +#: stock/models.py:1747 stock/models.py:2563 msgid "Test template does not exist" msgstr "" -#: stock/models.py:1659 +#: stock/models.py:1765 msgid "Stock item has been assigned to a sales order" msgstr "" -#: stock/models.py:1663 +#: stock/models.py:1769 msgid "Stock item is installed in another item" msgstr "" -#: stock/models.py:1666 +#: stock/models.py:1772 msgid "Stock item contains other items" msgstr "" -#: stock/models.py:1669 +#: stock/models.py:1775 msgid "Stock item has been assigned to a customer" msgstr "" -#: stock/models.py:1672 +#: stock/models.py:1778 msgid "Stock item is currently in production" msgstr "" -#: stock/models.py:1675 +#: stock/models.py:1781 msgid "Serialized stock cannot be merged" msgstr "" -#: stock/models.py:1682 stock/serializers.py:1469 +#: stock/models.py:1788 stock/serializers.py:1500 msgid "Duplicate stock items" msgstr "" -#: stock/models.py:1686 +#: stock/models.py:1792 msgid "Stock items must refer to the same part" msgstr "" -#: stock/models.py:1694 +#: stock/models.py:1800 msgid "Stock items must refer to the same supplier part" msgstr "" -#: stock/models.py:1699 +#: stock/models.py:1805 msgid "Stock status codes must match" msgstr "" -#: stock/models.py:1960 +#: stock/models.py:2066 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:2343 +#: stock/models.py:2462 msgid "Stock Item Tracking" msgstr "" -#: stock/models.py:2376 +#: stock/models.py:2495 msgid "Entry notes" msgstr "" -#: stock/models.py:2416 +#: stock/models.py:2535 msgid "Stock Item Test Result" msgstr "" -#: stock/models.py:2449 +#: stock/models.py:2566 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:2454 +#: stock/models.py:2570 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:2459 +#: stock/models.py:2575 msgid "Invalid value for this test" msgstr "" -#: stock/models.py:2544 +#: stock/models.py:2660 msgid "Test result" msgstr "" -#: stock/models.py:2551 +#: stock/models.py:2667 msgid "Test output value" msgstr "" -#: stock/models.py:2559 +#: stock/models.py:2675 stock/serializers.py:245 msgid "Test result attachment" msgstr "" -#: stock/models.py:2563 +#: stock/models.py:2679 msgid "Test notes" msgstr "" -#: stock/models.py:2571 templates/js/translated/stock.js:1633 +#: stock/models.py:2687 templates/js/translated/stock.js:1633 msgid "Test station" msgstr "" -#: stock/models.py:2572 +#: stock/models.py:2688 msgid "The identifier of the test station where the test was performed" msgstr "" -#: stock/models.py:2578 +#: stock/models.py:2694 msgid "Started" msgstr "" -#: stock/models.py:2579 +#: stock/models.py:2695 msgid "The timestamp of the test start" msgstr "" -#: stock/models.py:2585 +#: stock/models.py:2701 msgid "Finished" msgstr "" -#: stock/models.py:2586 +#: stock/models.py:2702 msgid "The timestamp of the test finish" msgstr "" -#: stock/serializers.py:76 +#: stock/serializers.py:77 msgid "Generated batch code" msgstr "" -#: stock/serializers.py:85 +#: stock/serializers.py:86 msgid "Select build order" msgstr "" -#: stock/serializers.py:94 +#: stock/serializers.py:95 msgid "Select stock item to generate batch code for" msgstr "" -#: stock/serializers.py:103 +#: stock/serializers.py:104 msgid "Select location to generate batch code for" msgstr "" -#: stock/serializers.py:112 +#: stock/serializers.py:113 msgid "Select part to generate batch code for" msgstr "" -#: stock/serializers.py:121 +#: stock/serializers.py:122 msgid "Select purchase order" msgstr "" -#: stock/serializers.py:128 +#: stock/serializers.py:129 msgid "Enter quantity for batch code" msgstr "" -#: stock/serializers.py:151 +#: stock/serializers.py:152 msgid "Generated serial number" msgstr "" -#: stock/serializers.py:160 +#: stock/serializers.py:161 msgid "Select part to generate serial number for" msgstr "" -#: stock/serializers.py:168 +#: stock/serializers.py:169 msgid "Quantity of serial numbers to generate" msgstr "" -#: stock/serializers.py:233 +#: stock/serializers.py:234 msgid "Test template for this result" msgstr "" -#: stock/serializers.py:254 +#: stock/serializers.py:258 msgid "Template ID or test name must be provided" msgstr "" -#: stock/serializers.py:286 +#: stock/serializers.py:290 msgid "The test finished time cannot be earlier than the test started time" msgstr "" -#: stock/serializers.py:323 +#: stock/serializers.py:327 msgid "Serial number is too large" msgstr "" -#: stock/serializers.py:452 stock/templates/stock/item_base.html:193 +#: stock/serializers.py:462 stock/templates/stock/item_base.html:190 msgid "Parent Item" msgstr "" -#: stock/serializers.py:453 +#: stock/serializers.py:463 msgid "Parent stock item" msgstr "" -#: stock/serializers.py:472 +#: stock/serializers.py:484 msgid "Use pack size when adding: the quantity defined is the number of packs" msgstr "" -#: stock/serializers.py:596 stock/templates/stock/item_base.html:437 +#: stock/serializers.py:623 stock/templates/stock/item_base.html:434 #: templates/js/translated/table_filters.js:442 users/models.py:174 msgid "Expired" msgstr "" -#: stock/serializers.py:602 stock/templates/stock/stock_sidebar.html:20 +#: stock/serializers.py:629 stock/templates/stock/stock_sidebar.html:20 msgid "Child Items" msgstr "" -#: stock/serializers.py:606 +#: stock/serializers.py:633 msgid "Tracking Items" msgstr "" -#: stock/serializers.py:612 +#: stock/serializers.py:639 msgid "Purchase price of this stock item, per unit or pack" msgstr "" -#: stock/serializers.py:631 +#: stock/serializers.py:658 msgid "Minimum Pricing" msgstr "" -#: stock/serializers.py:637 +#: stock/serializers.py:664 msgid "Maximum Pricing" msgstr "" -#: stock/serializers.py:661 +#: stock/serializers.py:688 msgid "Enter number of stock items to serialize" msgstr "" -#: stock/serializers.py:674 +#: stock/serializers.py:701 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({q})" msgstr "" -#: stock/serializers.py:681 +#: stock/serializers.py:708 msgid "Enter serial numbers for new items" msgstr "" -#: stock/serializers.py:692 stock/serializers.py:1426 stock/serializers.py:1682 +#: stock/serializers.py:719 stock/serializers.py:1457 stock/serializers.py:1713 msgid "Destination stock location" msgstr "" -#: stock/serializers.py:699 +#: stock/serializers.py:726 msgid "Optional note field" msgstr "" -#: stock/serializers.py:709 +#: stock/serializers.py:736 msgid "Serial numbers cannot be assigned to this part" msgstr "" -#: stock/serializers.py:764 +#: stock/serializers.py:756 +msgid "Serial numbers already exist" +msgstr "" + +#: stock/serializers.py:795 msgid "Select stock item to install" msgstr "" -#: stock/serializers.py:771 +#: stock/serializers.py:802 msgid "Quantity to Install" msgstr "" -#: stock/serializers.py:772 +#: stock/serializers.py:803 msgid "Enter the quantity of items to install" msgstr "" -#: stock/serializers.py:777 stock/serializers.py:857 stock/serializers.py:983 -#: stock/serializers.py:1033 +#: stock/serializers.py:808 stock/serializers.py:888 stock/serializers.py:1014 +#: stock/serializers.py:1064 msgid "Add transaction note (optional)" msgstr "" -#: stock/serializers.py:785 +#: stock/serializers.py:816 msgid "Quantity to install must be at least 1" msgstr "" -#: stock/serializers.py:793 +#: stock/serializers.py:824 msgid "Stock item is unavailable" msgstr "" -#: stock/serializers.py:804 +#: stock/serializers.py:835 msgid "Selected part is not in the Bill of Materials" msgstr "" -#: stock/serializers.py:817 +#: stock/serializers.py:848 msgid "Quantity to install must not exceed available quantity" msgstr "" -#: stock/serializers.py:852 +#: stock/serializers.py:883 msgid "Destination location for uninstalled item" msgstr "" -#: stock/serializers.py:903 +#: stock/serializers.py:934 msgid "Unsupported statistic type: " msgstr "" -#: stock/serializers.py:917 +#: stock/serializers.py:948 msgid "Select part to convert stock item into" msgstr "" -#: stock/serializers.py:930 +#: stock/serializers.py:961 msgid "Selected part is not a valid option for conversion" msgstr "" -#: stock/serializers.py:947 +#: stock/serializers.py:978 msgid "Cannot convert stock item with assigned SupplierPart" msgstr "" -#: stock/serializers.py:978 +#: stock/serializers.py:1009 msgid "Destination location for returned item" msgstr "" -#: stock/serializers.py:1015 +#: stock/serializers.py:1046 msgid "Select stock items to change status" msgstr "" -#: stock/serializers.py:1021 +#: stock/serializers.py:1052 msgid "No stock items selected" msgstr "" -#: stock/serializers.py:1117 stock/serializers.py:1194 -#: stock/templates/stock/location.html:162 -#: stock/templates/stock/location.html:219 +#: stock/serializers.py:1148 stock/serializers.py:1225 +#: stock/templates/stock/location.html:163 +#: stock/templates/stock/location.html:220 #: stock/templates/stock/location_sidebar.html:5 msgid "Sublocations" msgstr "" -#: stock/serializers.py:1187 templates/js/translated/stock.js:160 +#: stock/serializers.py:1218 templates/js/translated/stock.js:160 msgid "Parent stock location" msgstr "" -#: stock/serializers.py:1298 +#: stock/serializers.py:1329 msgid "Part must be salable" msgstr "" -#: stock/serializers.py:1302 +#: stock/serializers.py:1333 msgid "Item is allocated to a sales order" msgstr "" -#: stock/serializers.py:1306 +#: stock/serializers.py:1337 msgid "Item is allocated to a build order" msgstr "" -#: stock/serializers.py:1330 +#: stock/serializers.py:1361 msgid "Customer to assign stock items" msgstr "" -#: stock/serializers.py:1336 +#: stock/serializers.py:1367 msgid "Selected company is not a customer" msgstr "" -#: stock/serializers.py:1344 +#: stock/serializers.py:1375 msgid "Stock assignment notes" msgstr "" -#: stock/serializers.py:1354 stock/serializers.py:1608 +#: stock/serializers.py:1385 stock/serializers.py:1639 msgid "A list of stock items must be provided" msgstr "" -#: stock/serializers.py:1433 +#: stock/serializers.py:1464 msgid "Stock merging notes" msgstr "" -#: stock/serializers.py:1438 +#: stock/serializers.py:1469 msgid "Allow mismatched suppliers" msgstr "" -#: stock/serializers.py:1439 +#: stock/serializers.py:1470 msgid "Allow stock items with different supplier parts to be merged" msgstr "" -#: stock/serializers.py:1444 +#: stock/serializers.py:1475 msgid "Allow mismatched status" msgstr "" -#: stock/serializers.py:1445 +#: stock/serializers.py:1476 msgid "Allow stock items with different status codes to be merged" msgstr "" -#: stock/serializers.py:1455 +#: stock/serializers.py:1486 msgid "At least two stock items must be provided" msgstr "" -#: stock/serializers.py:1522 +#: stock/serializers.py:1553 msgid "No Change" msgstr "" -#: stock/serializers.py:1551 +#: stock/serializers.py:1582 msgid "StockItem primary key value" msgstr "" -#: stock/serializers.py:1570 +#: stock/serializers.py:1601 msgid "Stock item status code" msgstr "" -#: stock/serializers.py:1598 +#: stock/serializers.py:1629 msgid "Stock transaction notes" msgstr "" @@ -10175,107 +10539,107 @@ msgstr "" msgid "Quarantined" msgstr "" -#: stock/status_codes.py:40 +#: stock/status_codes.py:44 msgid "Legacy stock tracking entry" msgstr "" -#: stock/status_codes.py:42 templates/js/translated/stock.js:550 +#: stock/status_codes.py:46 templates/js/translated/stock.js:550 msgid "Stock item created" msgstr "" -#: stock/status_codes.py:45 +#: stock/status_codes.py:49 msgid "Edited stock item" msgstr "" -#: stock/status_codes.py:46 +#: stock/status_codes.py:50 msgid "Assigned serial number" msgstr "" -#: stock/status_codes.py:49 +#: stock/status_codes.py:53 msgid "Stock counted" msgstr "" -#: stock/status_codes.py:50 +#: stock/status_codes.py:54 msgid "Stock manually added" msgstr "" -#: stock/status_codes.py:51 +#: stock/status_codes.py:55 msgid "Stock manually removed" msgstr "" -#: stock/status_codes.py:54 +#: stock/status_codes.py:58 msgid "Location changed" msgstr "" -#: stock/status_codes.py:55 +#: stock/status_codes.py:59 msgid "Stock updated" msgstr "" -#: stock/status_codes.py:58 +#: stock/status_codes.py:62 msgid "Installed into assembly" msgstr "" -#: stock/status_codes.py:59 +#: stock/status_codes.py:63 msgid "Removed from assembly" msgstr "" -#: stock/status_codes.py:61 +#: stock/status_codes.py:65 msgid "Installed component item" msgstr "" -#: stock/status_codes.py:62 +#: stock/status_codes.py:66 msgid "Removed component item" msgstr "" -#: stock/status_codes.py:65 +#: stock/status_codes.py:69 msgid "Split from parent item" msgstr "" -#: stock/status_codes.py:66 +#: stock/status_codes.py:70 msgid "Split child item" msgstr "" -#: stock/status_codes.py:69 templates/js/translated/stock.js:1943 +#: stock/status_codes.py:73 templates/js/translated/stock.js:1944 msgid "Merged stock items" msgstr "" -#: stock/status_codes.py:72 +#: stock/status_codes.py:76 msgid "Converted to variant" msgstr "" -#: stock/status_codes.py:75 +#: stock/status_codes.py:79 msgid "Build order output created" msgstr "" -#: stock/status_codes.py:76 +#: stock/status_codes.py:80 msgid "Build order output completed" msgstr "" -#: stock/status_codes.py:77 +#: stock/status_codes.py:81 msgid "Build order output rejected" msgstr "" -#: stock/status_codes.py:78 templates/js/translated/stock.js:1849 +#: stock/status_codes.py:82 templates/js/translated/stock.js:1849 msgid "Consumed by build order" msgstr "" -#: stock/status_codes.py:81 +#: stock/status_codes.py:85 msgid "Shipped against Sales Order" msgstr "" -#: stock/status_codes.py:84 +#: stock/status_codes.py:88 msgid "Received against Purchase Order" msgstr "" -#: stock/status_codes.py:87 +#: stock/status_codes.py:91 msgid "Returned against Return Order" msgstr "" -#: stock/status_codes.py:90 templates/js/translated/table_filters.js:382 +#: stock/status_codes.py:94 templates/js/translated/table_filters.js:382 msgid "Sent to customer" msgstr "" -#: stock/status_codes.py:91 +#: stock/status_codes.py:95 msgid "Returned from customer" msgstr "" @@ -10296,7 +10660,7 @@ msgstr "" msgid "Test Data" msgstr "" -#: stock/templates/stock/item.html:85 stock/templates/stock/item_base.html:65 +#: stock/templates/stock/item.html:85 msgid "Test Report" msgstr "" @@ -10316,7 +10680,7 @@ msgstr "" msgid "Installed Stock Items" msgstr "" -#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3354 +#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3355 msgid "Install Stock Item" msgstr "" @@ -10328,208 +10692,212 @@ msgstr "" msgid "Add Test Result" msgstr "" -#: stock/templates/stock/item_base.html:33 +#: stock/templates/stock/item_base.html:34 msgid "Locate stock item" msgstr "" -#: stock/templates/stock/item_base.html:51 +#: stock/templates/stock/item_base.html:52 msgid "Scan to Location" msgstr "" #: stock/templates/stock/item_base.html:59 -#: stock/templates/stock/location.html:67 +#: stock/templates/stock/location.html:68 #: templates/js/translated/filters.js:434 msgid "Printing actions" msgstr "" -#: stock/templates/stock/item_base.html:75 +#: stock/templates/stock/item_base.html:64 templates/js/translated/report.js:49 +msgid "Print Report" +msgstr "" + +#: stock/templates/stock/item_base.html:72 msgid "Stock adjustment actions" msgstr "" -#: stock/templates/stock/item_base.html:79 -#: stock/templates/stock/location.html:87 templates/js/translated/stock.js:1909 +#: stock/templates/stock/item_base.html:76 +#: stock/templates/stock/location.html:88 templates/js/translated/stock.js:1909 msgid "Count stock" msgstr "" -#: stock/templates/stock/item_base.html:81 +#: stock/templates/stock/item_base.html:78 #: templates/js/translated/stock.js:1891 msgid "Add stock" msgstr "" -#: stock/templates/stock/item_base.html:82 +#: stock/templates/stock/item_base.html:79 #: templates/js/translated/stock.js:1900 msgid "Remove stock" msgstr "" -#: stock/templates/stock/item_base.html:85 +#: stock/templates/stock/item_base.html:82 msgid "Serialize stock" msgstr "" -#: stock/templates/stock/item_base.html:88 -#: stock/templates/stock/location.html:93 templates/js/translated/stock.js:1918 +#: stock/templates/stock/item_base.html:85 +#: stock/templates/stock/location.html:94 templates/js/translated/stock.js:1918 msgid "Transfer stock" msgstr "" -#: stock/templates/stock/item_base.html:91 -#: templates/js/translated/stock.js:1972 +#: stock/templates/stock/item_base.html:88 +#: templates/js/translated/stock.js:1973 msgid "Assign to customer" msgstr "" -#: stock/templates/stock/item_base.html:94 +#: stock/templates/stock/item_base.html:91 msgid "Return to stock" msgstr "" -#: stock/templates/stock/item_base.html:97 +#: stock/templates/stock/item_base.html:94 msgid "Uninstall stock item" msgstr "" -#: stock/templates/stock/item_base.html:97 +#: stock/templates/stock/item_base.html:94 msgid "Uninstall" msgstr "" -#: stock/templates/stock/item_base.html:101 +#: stock/templates/stock/item_base.html:98 msgid "Install stock item" msgstr "" -#: stock/templates/stock/item_base.html:101 +#: stock/templates/stock/item_base.html:98 msgid "Install" msgstr "" -#: stock/templates/stock/item_base.html:115 +#: stock/templates/stock/item_base.html:112 msgid "Convert to variant" msgstr "" -#: stock/templates/stock/item_base.html:118 +#: stock/templates/stock/item_base.html:115 msgid "Duplicate stock item" msgstr "" -#: stock/templates/stock/item_base.html:120 +#: stock/templates/stock/item_base.html:117 msgid "Edit stock item" msgstr "" -#: stock/templates/stock/item_base.html:123 +#: stock/templates/stock/item_base.html:120 msgid "Delete stock item" msgstr "" -#: stock/templates/stock/item_base.html:169 templates/InvenTree/search.html:139 -#: templates/js/translated/build.js:2295 templates/navbar.html:38 +#: stock/templates/stock/item_base.html:166 templates/InvenTree/search.html:139 +#: templates/js/translated/build.js:2298 templates/navbar.html:38 msgid "Build" msgstr "" -#: stock/templates/stock/item_base.html:211 +#: stock/templates/stock/item_base.html:208 msgid "No manufacturer set" msgstr "" -#: stock/templates/stock/item_base.html:251 +#: stock/templates/stock/item_base.html:248 msgid "You are not in the list of owners of this item. This stock item cannot be edited." msgstr "" -#: stock/templates/stock/item_base.html:252 -#: stock/templates/stock/location.html:146 +#: stock/templates/stock/item_base.html:249 +#: stock/templates/stock/location.html:147 msgid "Read only" msgstr "" -#: stock/templates/stock/item_base.html:265 +#: stock/templates/stock/item_base.html:262 msgid "This stock item is unavailable" msgstr "" -#: stock/templates/stock/item_base.html:271 +#: stock/templates/stock/item_base.html:268 msgid "This stock item is in production and cannot be edited." msgstr "" -#: stock/templates/stock/item_base.html:272 +#: stock/templates/stock/item_base.html:269 msgid "Edit the stock item from the build view." msgstr "" -#: stock/templates/stock/item_base.html:287 +#: stock/templates/stock/item_base.html:284 msgid "This stock item is allocated to Sales Order" msgstr "" -#: stock/templates/stock/item_base.html:295 +#: stock/templates/stock/item_base.html:292 msgid "This stock item is allocated to Build Order" msgstr "" -#: stock/templates/stock/item_base.html:311 +#: stock/templates/stock/item_base.html:308 msgid "This stock item is serialized. It has a unique serial number and the quantity cannot be adjusted" msgstr "" -#: stock/templates/stock/item_base.html:317 +#: stock/templates/stock/item_base.html:314 msgid "previous page" msgstr "" -#: stock/templates/stock/item_base.html:317 +#: stock/templates/stock/item_base.html:314 msgid "Navigate to previous serial number" msgstr "" -#: stock/templates/stock/item_base.html:326 +#: stock/templates/stock/item_base.html:323 msgid "next page" msgstr "" -#: stock/templates/stock/item_base.html:326 +#: stock/templates/stock/item_base.html:323 msgid "Navigate to next serial number" msgstr "" -#: stock/templates/stock/item_base.html:398 -#: templates/js/translated/build.js:2552 +#: stock/templates/stock/item_base.html:395 +#: templates/js/translated/build.js:2559 msgid "No location set" msgstr "" -#: stock/templates/stock/item_base.html:413 +#: stock/templates/stock/item_base.html:410 msgid "Tests" msgstr "" -#: stock/templates/stock/item_base.html:419 +#: stock/templates/stock/item_base.html:416 msgid "This stock item has not passed all required tests" msgstr "" -#: stock/templates/stock/item_base.html:437 +#: stock/templates/stock/item_base.html:434 #, python-format msgid "This StockItem expired on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:439 +#: stock/templates/stock/item_base.html:436 #, python-format msgid "This StockItem expires on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:455 +#: stock/templates/stock/item_base.html:452 msgid "No stocktake performed" msgstr "" -#: stock/templates/stock/item_base.html:504 -#: templates/js/translated/stock.js:2037 +#: stock/templates/stock/item_base.html:501 +#: templates/js/translated/stock.js:2038 msgid "stock item" msgstr "" -#: stock/templates/stock/item_base.html:527 +#: stock/templates/stock/item_base.html:524 msgid "Edit Stock Status" msgstr "" -#: stock/templates/stock/item_base.html:536 +#: stock/templates/stock/item_base.html:533 msgid "Stock Item QR Code" msgstr "" -#: stock/templates/stock/item_base.html:547 +#: stock/templates/stock/item_base.html:544 msgid "Link Barcode to Stock Item" msgstr "" -#: stock/templates/stock/item_base.html:611 +#: stock/templates/stock/item_base.html:608 msgid "Select one of the part variants listed below." msgstr "" -#: stock/templates/stock/item_base.html:614 +#: stock/templates/stock/item_base.html:611 msgid "Warning" msgstr "" -#: stock/templates/stock/item_base.html:615 +#: stock/templates/stock/item_base.html:612 msgid "This action cannot be easily undone" msgstr "" -#: stock/templates/stock/item_base.html:623 +#: stock/templates/stock/item_base.html:620 msgid "Convert Stock Item" msgstr "" -#: stock/templates/stock/item_base.html:656 +#: stock/templates/stock/item_base.html:653 msgid "Return to Stock" msgstr "" @@ -10541,84 +10909,84 @@ msgstr "" msgid "Select quantity to serialize, and unique serial numbers." msgstr "" -#: stock/templates/stock/location.html:35 +#: stock/templates/stock/location.html:36 msgid "Perform stocktake for this stock location" msgstr "" -#: stock/templates/stock/location.html:42 +#: stock/templates/stock/location.html:43 msgid "Locate stock location" msgstr "" -#: stock/templates/stock/location.html:60 +#: stock/templates/stock/location.html:61 msgid "Scan stock items into this location" msgstr "" -#: stock/templates/stock/location.html:60 +#: stock/templates/stock/location.html:61 msgid "Scan In Stock Items" msgstr "" -#: stock/templates/stock/location.html:61 +#: stock/templates/stock/location.html:62 msgid "Scan stock container into this location" msgstr "" -#: stock/templates/stock/location.html:61 +#: stock/templates/stock/location.html:62 msgid "Scan In Container" msgstr "" -#: stock/templates/stock/location.html:72 +#: stock/templates/stock/location.html:73 msgid "Print Location Report" msgstr "" -#: stock/templates/stock/location.html:101 +#: stock/templates/stock/location.html:102 msgid "Location actions" msgstr "" -#: stock/templates/stock/location.html:103 +#: stock/templates/stock/location.html:104 msgid "Edit location" msgstr "" -#: stock/templates/stock/location.html:105 +#: stock/templates/stock/location.html:106 msgid "Delete location" msgstr "" -#: stock/templates/stock/location.html:135 +#: stock/templates/stock/location.html:136 msgid "Top level stock location" msgstr "" -#: stock/templates/stock/location.html:141 +#: stock/templates/stock/location.html:142 msgid "Location Owner" msgstr "" -#: stock/templates/stock/location.html:145 +#: stock/templates/stock/location.html:146 msgid "You are not in the list of owners of this location. This stock location cannot be edited." msgstr "" -#: stock/templates/stock/location.html:173 +#: stock/templates/stock/location.html:174 msgid "Location Type" msgstr "" -#: stock/templates/stock/location.html:223 +#: stock/templates/stock/location.html:224 msgid "Create new stock location" msgstr "" -#: stock/templates/stock/location.html:224 +#: stock/templates/stock/location.html:225 msgid "New Location" msgstr "" -#: stock/templates/stock/location.html:298 -#: templates/js/translated/stock.js:2657 +#: stock/templates/stock/location.html:299 +#: templates/js/translated/stock.js:2658 msgid "stock location" msgstr "" -#: stock/templates/stock/location.html:320 +#: stock/templates/stock/location.html:321 msgid "Scanned stock container into this location" msgstr "" -#: stock/templates/stock/location.html:393 +#: stock/templates/stock/location.html:394 msgid "Stock Location QR Code" msgstr "" -#: stock/templates/stock/location.html:404 +#: stock/templates/stock/location.html:405 msgid "Link Barcode to Stock Location" msgstr "" @@ -10630,10 +10998,6 @@ msgstr "" msgid "Stock Tracking" msgstr "" -#: stock/templates/stock/stock_sidebar.html:8 -msgid "Allocations" -msgstr "" - #: templates/403.html:6 templates/403.html:12 templates/403_csrf.html:7 msgid "Permission Denied" msgstr "" @@ -11107,9 +11471,9 @@ msgid "Rate" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:81 -#: templates/js/translated/forms.js:548 templates/js/translated/helpers.js:108 +#: templates/js/translated/forms.js:548 templates/js/translated/helpers.js:109 #: templates/js/translated/part.js:395 templates/js/translated/pricing.js:629 -#: templates/js/translated/stock.js:252 users/models.py:406 +#: templates/js/translated/stock.js:252 users/models.py:408 msgid "Delete" msgstr "" @@ -11130,7 +11494,7 @@ msgid "No project codes found" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:158 -#: templates/js/translated/build.js:2400 +#: templates/js/translated/build.js:2403 msgid "group" msgstr "" @@ -11196,7 +11560,7 @@ msgid "Delete Location Type" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:503 -#: templates/InvenTree/settings/stock.html:38 +#: templates/InvenTree/settings/stock.html:39 msgid "New Location Type" msgstr "" @@ -11253,7 +11617,7 @@ msgstr "" msgid "Stock Settings" msgstr "" -#: templates/InvenTree/settings/stock.html:34 +#: templates/InvenTree/settings/stock.html:35 msgid "Stock Location Types" msgstr "" @@ -11280,7 +11644,7 @@ msgid "Unverified" msgstr "" #: templates/InvenTree/settings/user.html:80 -#: templates/js/translated/company.js:957 +#: templates/js/translated/company.js:958 msgid "Primary" msgstr "" @@ -11532,7 +11896,7 @@ msgid "Submit Bug Report" msgstr "" #: templates/about.html:91 templates/clip.html:4 -#: templates/js/translated/helpers.js:592 +#: templates/js/translated/helpers.js:598 msgid "copy to clipboard" msgstr "" @@ -11738,23 +12102,24 @@ msgstr "" msgid "Barcode Identifier" msgstr "" -#: templates/base.html:103 +#: templates/base.html:102 msgid "Server Restart Required" msgstr "" -#: templates/base.html:106 +#: templates/base.html:105 msgid "A configuration option has been changed which requires a server restart" msgstr "" -#: templates/base.html:106 templates/base.html:116 +#: templates/base.html:105 templates/base.html:115 +#: templates/socialaccount/authentication_error.html:13 msgid "Contact your system administrator for further information" msgstr "" -#: templates/base.html:113 +#: templates/base.html:112 msgid "Pending Database Migrations" msgstr "" -#: templates/base.html:116 +#: templates/base.html:115 msgid "There are pending database migrations which require attention" msgstr "" @@ -11787,7 +12152,7 @@ msgid "The following parts are low on required stock" msgstr "" #: templates/email/build_order_required_stock.html:18 -#: templates/js/translated/bom.js:1674 templates/js/translated/build.js:2747 +#: templates/js/translated/bom.js:1674 templates/js/translated/build.js:2765 msgid "Required Quantity" msgstr "" @@ -11801,7 +12166,7 @@ msgid "Click on the following link to view this part" msgstr "" #: templates/email/low_stock_notification.html:18 -#: templates/js/translated/part.js:3237 +#: templates/js/translated/part.js:3253 msgid "Minimum Quantity" msgstr "" @@ -12039,7 +12404,7 @@ msgstr "" #: templates/js/translated/bom.js:189 templates/js/translated/bom.js:700 #: templates/js/translated/modals.js:75 templates/js/translated/modals.js:629 #: templates/js/translated/modals.js:757 templates/js/translated/modals.js:1065 -#: templates/js/translated/purchase_order.js:797 templates/modals.html:15 +#: templates/js/translated/purchase_order.js:780 templates/modals.html:15 #: templates/modals.html:27 templates/modals.html:39 templates/modals.html:50 msgid "Close" msgstr "" @@ -12156,7 +12521,7 @@ msgstr "" msgid "Substitutes Available" msgstr "" -#: templates/js/translated/bom.js:950 templates/js/translated/build.js:2673 +#: templates/js/translated/bom.js:950 templates/js/translated/build.js:2682 msgid "Variant stock allowed" msgstr "" @@ -12176,30 +12541,30 @@ msgstr "" msgid "No pricing available" msgstr "" -#: templates/js/translated/bom.js:1184 templates/js/translated/build.js:2812 +#: templates/js/translated/bom.js:1184 templates/js/translated/build.js:2830 msgid "External stock" msgstr "" -#: templates/js/translated/bom.js:1188 templates/js/translated/build.js:2786 -#: templates/js/translated/sales_order.js:1946 +#: templates/js/translated/bom.js:1188 templates/js/translated/build.js:2804 +#: templates/js/translated/sales_order.js:1927 msgid "No Stock Available" msgstr "" -#: templates/js/translated/bom.js:1193 templates/js/translated/build.js:2790 +#: templates/js/translated/bom.js:1193 templates/js/translated/build.js:2808 msgid "Includes variant and substitute stock" msgstr "" -#: templates/js/translated/bom.js:1195 templates/js/translated/build.js:2792 +#: templates/js/translated/bom.js:1195 templates/js/translated/build.js:2810 #: templates/js/translated/part.js:1263 -#: templates/js/translated/sales_order.js:1943 +#: templates/js/translated/sales_order.js:1924 msgid "Includes variant stock" msgstr "" -#: templates/js/translated/bom.js:1197 templates/js/translated/build.js:2794 +#: templates/js/translated/bom.js:1197 templates/js/translated/build.js:2812 msgid "Includes substitute stock" msgstr "" -#: templates/js/translated/bom.js:1225 templates/js/translated/build.js:2777 +#: templates/js/translated/bom.js:1225 templates/js/translated/build.js:2795 msgid "Consumable item" msgstr "" @@ -12231,7 +12596,7 @@ msgstr "" msgid "No BOM items found" msgstr "" -#: templates/js/translated/bom.js:1657 templates/js/translated/build.js:2658 +#: templates/js/translated/bom.js:1657 templates/js/translated/build.js:2667 msgid "Required Part" msgstr "" @@ -12243,396 +12608,396 @@ msgstr "" msgid "Edit Build Order" msgstr "" -#: templates/js/translated/build.js:191 +#: templates/js/translated/build.js:194 msgid "Create Build Order" msgstr "" -#: templates/js/translated/build.js:223 +#: templates/js/translated/build.js:226 msgid "Cancel Build Order" msgstr "" -#: templates/js/translated/build.js:232 +#: templates/js/translated/build.js:235 msgid "Are you sure you wish to cancel this build?" msgstr "" -#: templates/js/translated/build.js:238 +#: templates/js/translated/build.js:241 msgid "Stock items have been allocated to this build order" msgstr "" -#: templates/js/translated/build.js:245 +#: templates/js/translated/build.js:248 msgid "There are incomplete outputs remaining for this build order" msgstr "" -#: templates/js/translated/build.js:297 +#: templates/js/translated/build.js:300 msgid "Build order is ready to be completed" msgstr "" -#: templates/js/translated/build.js:305 +#: templates/js/translated/build.js:308 msgid "This build order cannot be completed as there are incomplete outputs" msgstr "" -#: templates/js/translated/build.js:310 +#: templates/js/translated/build.js:313 msgid "Build Order is incomplete" msgstr "" -#: templates/js/translated/build.js:328 +#: templates/js/translated/build.js:331 msgid "Complete Build Order" msgstr "" -#: templates/js/translated/build.js:369 templates/js/translated/stock.js:127 +#: templates/js/translated/build.js:372 templates/js/translated/stock.js:127 #: templates/js/translated/stock.js:301 msgid "Next available serial number" msgstr "" -#: templates/js/translated/build.js:371 templates/js/translated/stock.js:129 +#: templates/js/translated/build.js:374 templates/js/translated/stock.js:129 #: templates/js/translated/stock.js:303 msgid "Latest serial number" msgstr "" -#: templates/js/translated/build.js:380 +#: templates/js/translated/build.js:383 msgid "The Bill of Materials contains trackable parts" msgstr "" -#: templates/js/translated/build.js:381 +#: templates/js/translated/build.js:384 msgid "Build outputs must be generated individually" msgstr "" -#: templates/js/translated/build.js:389 +#: templates/js/translated/build.js:392 msgid "Trackable parts can have serial numbers specified" msgstr "" -#: templates/js/translated/build.js:390 +#: templates/js/translated/build.js:393 msgid "Enter serial numbers to generate multiple single build outputs" msgstr "" -#: templates/js/translated/build.js:397 +#: templates/js/translated/build.js:400 msgid "Create Build Output" msgstr "" -#: templates/js/translated/build.js:428 +#: templates/js/translated/build.js:431 msgid "Allocate stock items to this build output" msgstr "" -#: templates/js/translated/build.js:436 +#: templates/js/translated/build.js:439 msgid "Deallocate stock from build output" msgstr "" -#: templates/js/translated/build.js:445 +#: templates/js/translated/build.js:448 msgid "Complete build output" msgstr "" -#: templates/js/translated/build.js:453 +#: templates/js/translated/build.js:456 msgid "Scrap build output" msgstr "" -#: templates/js/translated/build.js:460 +#: templates/js/translated/build.js:463 msgid "Delete build output" msgstr "" -#: templates/js/translated/build.js:480 +#: templates/js/translated/build.js:483 msgid "Are you sure you wish to deallocate the selected stock items from this build?" msgstr "" -#: templates/js/translated/build.js:498 +#: templates/js/translated/build.js:501 msgid "Deallocate Stock Items" msgstr "" -#: templates/js/translated/build.js:584 templates/js/translated/build.js:711 -#: templates/js/translated/build.js:836 +#: templates/js/translated/build.js:587 templates/js/translated/build.js:714 +#: templates/js/translated/build.js:839 msgid "Select Build Outputs" msgstr "" -#: templates/js/translated/build.js:585 templates/js/translated/build.js:712 -#: templates/js/translated/build.js:837 +#: templates/js/translated/build.js:588 templates/js/translated/build.js:715 +#: templates/js/translated/build.js:840 msgid "At least one build output must be selected" msgstr "" -#: templates/js/translated/build.js:599 +#: templates/js/translated/build.js:602 msgid "Selected build outputs will be marked as complete" msgstr "" -#: templates/js/translated/build.js:603 templates/js/translated/build.js:736 -#: templates/js/translated/build.js:859 +#: templates/js/translated/build.js:606 templates/js/translated/build.js:739 +#: templates/js/translated/build.js:862 msgid "Output" msgstr "" -#: templates/js/translated/build.js:630 +#: templates/js/translated/build.js:633 msgid "Complete Build Outputs" msgstr "" -#: templates/js/translated/build.js:727 +#: templates/js/translated/build.js:730 msgid "Selected build outputs will be marked as scrapped" msgstr "" -#: templates/js/translated/build.js:729 +#: templates/js/translated/build.js:732 msgid "Scrapped output are marked as rejected" msgstr "" -#: templates/js/translated/build.js:730 +#: templates/js/translated/build.js:733 msgid "Allocated stock items will no longer be available" msgstr "" -#: templates/js/translated/build.js:731 +#: templates/js/translated/build.js:734 msgid "The completion status of the build order will not be adjusted" msgstr "" -#: templates/js/translated/build.js:761 +#: templates/js/translated/build.js:764 msgid "Scrap Build Outputs" msgstr "" -#: templates/js/translated/build.js:851 +#: templates/js/translated/build.js:854 msgid "Selected build outputs will be deleted" msgstr "" -#: templates/js/translated/build.js:853 +#: templates/js/translated/build.js:856 msgid "Build output data will be permanently deleted" msgstr "" -#: templates/js/translated/build.js:854 +#: templates/js/translated/build.js:857 msgid "Allocated stock items will be returned to stock" msgstr "" -#: templates/js/translated/build.js:872 +#: templates/js/translated/build.js:875 msgid "Delete Build Outputs" msgstr "" -#: templates/js/translated/build.js:959 +#: templates/js/translated/build.js:962 msgid "Delete allocations" msgstr "" -#: templates/js/translated/build.js:966 +#: templates/js/translated/build.js:969 msgid "Delete Stock Allocations" msgstr "" -#: templates/js/translated/build.js:989 +#: templates/js/translated/build.js:992 msgid "No allocated stock" msgstr "" -#: templates/js/translated/build.js:1045 +#: templates/js/translated/build.js:1048 msgid "Stock item" msgstr "" -#: templates/js/translated/build.js:1070 +#: templates/js/translated/build.js:1073 msgid "Edit build allocation" msgstr "" -#: templates/js/translated/build.js:1071 +#: templates/js/translated/build.js:1074 msgid "Delete build allocation" msgstr "" -#: templates/js/translated/build.js:1089 +#: templates/js/translated/build.js:1092 msgid "Edit Build Allocation" msgstr "" -#: templates/js/translated/build.js:1102 +#: templates/js/translated/build.js:1105 msgid "Delete Build Allocation" msgstr "" -#: templates/js/translated/build.js:1133 +#: templates/js/translated/build.js:1136 msgid "No build order allocations found" msgstr "" -#: templates/js/translated/build.js:1178 +#: templates/js/translated/build.js:1181 msgid "Location not specified" msgstr "" -#: templates/js/translated/build.js:1200 +#: templates/js/translated/build.js:1203 msgid "Complete outputs" msgstr "" -#: templates/js/translated/build.js:1218 +#: templates/js/translated/build.js:1221 msgid "Scrap outputs" msgstr "" -#: templates/js/translated/build.js:1236 +#: templates/js/translated/build.js:1239 msgid "Delete outputs" msgstr "" -#: templates/js/translated/build.js:1289 +#: templates/js/translated/build.js:1292 msgid "build output" msgstr "" -#: templates/js/translated/build.js:1290 +#: templates/js/translated/build.js:1293 msgid "build outputs" msgstr "" -#: templates/js/translated/build.js:1294 +#: templates/js/translated/build.js:1297 msgid "Build output actions" msgstr "" -#: templates/js/translated/build.js:1470 +#: templates/js/translated/build.js:1473 msgid "No active build outputs found" msgstr "" -#: templates/js/translated/build.js:1563 +#: templates/js/translated/build.js:1566 msgid "Allocated Lines" msgstr "" -#: templates/js/translated/build.js:1577 +#: templates/js/translated/build.js:1580 msgid "Required Tests" msgstr "" -#: templates/js/translated/build.js:1749 -#: templates/js/translated/purchase_order.js:611 -#: templates/js/translated/sales_order.js:1207 +#: templates/js/translated/build.js:1752 +#: templates/js/translated/purchase_order.js:594 +#: templates/js/translated/sales_order.js:1173 msgid "Select Parts" msgstr "" -#: templates/js/translated/build.js:1750 -#: templates/js/translated/sales_order.js:1208 +#: templates/js/translated/build.js:1753 +#: templates/js/translated/sales_order.js:1174 msgid "You must select at least one part to allocate" msgstr "" -#: templates/js/translated/build.js:1813 -#: templates/js/translated/sales_order.js:1157 +#: templates/js/translated/build.js:1816 +#: templates/js/translated/sales_order.js:1123 msgid "Specify stock allocation quantity" msgstr "" -#: templates/js/translated/build.js:1890 +#: templates/js/translated/build.js:1893 msgid "All Parts Allocated" msgstr "" -#: templates/js/translated/build.js:1891 +#: templates/js/translated/build.js:1894 msgid "All selected parts have been fully allocated" msgstr "" -#: templates/js/translated/build.js:1905 -#: templates/js/translated/sales_order.js:1222 +#: templates/js/translated/build.js:1908 +#: templates/js/translated/sales_order.js:1188 msgid "Select source location (leave blank to take from all locations)" msgstr "" -#: templates/js/translated/build.js:1933 +#: templates/js/translated/build.js:1936 msgid "Allocate Stock Items to Build Order" msgstr "" -#: templates/js/translated/build.js:1944 -#: templates/js/translated/sales_order.js:1319 +#: templates/js/translated/build.js:1947 +#: templates/js/translated/sales_order.js:1285 msgid "No matching stock locations" msgstr "" -#: templates/js/translated/build.js:2017 -#: templates/js/translated/sales_order.js:1398 +#: templates/js/translated/build.js:2020 +#: templates/js/translated/sales_order.js:1364 msgid "No matching stock items" msgstr "" -#: templates/js/translated/build.js:2114 +#: templates/js/translated/build.js:2117 msgid "Automatic Stock Allocation" msgstr "" -#: templates/js/translated/build.js:2115 +#: templates/js/translated/build.js:2118 msgid "Stock items will be automatically allocated to this build order, according to the provided guidelines" msgstr "" -#: templates/js/translated/build.js:2117 +#: templates/js/translated/build.js:2120 msgid "If a location is specified, stock will only be allocated from that location" msgstr "" -#: templates/js/translated/build.js:2118 +#: templates/js/translated/build.js:2121 msgid "If stock is considered interchangeable, it will be allocated from the first location it is found" msgstr "" -#: templates/js/translated/build.js:2119 +#: templates/js/translated/build.js:2122 msgid "If substitute stock is allowed, it will be used where stock of the primary part cannot be found" msgstr "" -#: templates/js/translated/build.js:2149 +#: templates/js/translated/build.js:2152 msgid "Allocate Stock Items" msgstr "" -#: templates/js/translated/build.js:2254 +#: templates/js/translated/build.js:2257 msgid "No builds matching query" msgstr "" -#: templates/js/translated/build.js:2289 templates/js/translated/build.js:2652 +#: templates/js/translated/build.js:2292 templates/js/translated/build.js:2661 #: templates/js/translated/forms.js:2196 templates/js/translated/forms.js:2212 #: templates/js/translated/part.js:2322 templates/js/translated/part.js:2761 -#: templates/js/translated/stock.js:2068 templates/js/translated/stock.js:2795 +#: templates/js/translated/stock.js:2069 templates/js/translated/stock.js:2796 msgid "Select" msgstr "" -#: templates/js/translated/build.js:2303 +#: templates/js/translated/build.js:2306 msgid "Build order is overdue" msgstr "" -#: templates/js/translated/build.js:2385 templates/js/translated/stock.js:3126 +#: templates/js/translated/build.js:2388 templates/js/translated/stock.js:3127 msgid "No user information" msgstr "" -#: templates/js/translated/build.js:2561 -#: templates/js/translated/sales_order.js:1682 +#: templates/js/translated/build.js:2568 +#: templates/js/translated/sales_order.js:1663 msgid "Edit stock allocation" msgstr "" -#: templates/js/translated/build.js:2562 -#: templates/js/translated/sales_order.js:1683 +#: templates/js/translated/build.js:2569 +#: templates/js/translated/sales_order.js:1664 msgid "Delete stock allocation" msgstr "" -#: templates/js/translated/build.js:2577 +#: templates/js/translated/build.js:2584 msgid "Edit Allocation" msgstr "" -#: templates/js/translated/build.js:2589 +#: templates/js/translated/build.js:2596 msgid "Remove Allocation" msgstr "" -#: templates/js/translated/build.js:2628 +#: templates/js/translated/build.js:2636 msgid "build line" msgstr "" -#: templates/js/translated/build.js:2629 +#: templates/js/translated/build.js:2637 msgid "build lines" msgstr "" -#: templates/js/translated/build.js:2647 +#: templates/js/translated/build.js:2656 msgid "No build lines found" msgstr "" -#: templates/js/translated/build.js:2677 templates/js/translated/part.js:793 +#: templates/js/translated/build.js:2686 templates/js/translated/part.js:793 #: templates/js/translated/part.js:1209 msgid "Trackable part" msgstr "" -#: templates/js/translated/build.js:2720 +#: templates/js/translated/build.js:2729 msgid "Gets Inherited" msgstr "" -#: templates/js/translated/build.js:2730 +#: templates/js/translated/build.js:2748 msgid "Unit Quantity" msgstr "" -#: templates/js/translated/build.js:2782 -#: templates/js/translated/sales_order.js:1951 +#: templates/js/translated/build.js:2800 +#: templates/js/translated/sales_order.js:1932 msgid "Sufficient stock available" msgstr "" -#: templates/js/translated/build.js:2837 +#: templates/js/translated/build.js:2855 msgid "Consumable Item" msgstr "" -#: templates/js/translated/build.js:2844 +#: templates/js/translated/build.js:2862 msgid "Tracked item" msgstr "" -#: templates/js/translated/build.js:2845 +#: templates/js/translated/build.js:2863 msgid "Allocate tracked items against individual build outputs" msgstr "" -#: templates/js/translated/build.js:2853 -#: templates/js/translated/sales_order.js:2052 +#: templates/js/translated/build.js:2871 +#: templates/js/translated/sales_order.js:2033 msgid "Build stock" msgstr "" -#: templates/js/translated/build.js:2858 templates/js/translated/stock.js:1953 +#: templates/js/translated/build.js:2876 templates/js/translated/stock.js:1954 msgid "Order stock" msgstr "" -#: templates/js/translated/build.js:2862 -#: templates/js/translated/sales_order.js:2046 +#: templates/js/translated/build.js:2880 +#: templates/js/translated/sales_order.js:2027 msgid "Allocate stock" msgstr "" -#: templates/js/translated/build.js:2866 +#: templates/js/translated/build.js:2884 msgid "Remove stock allocation" msgstr "" @@ -12641,7 +13006,7 @@ msgid "Add Manufacturer" msgstr "" #: templates/js/translated/company.js:111 -#: templates/js/translated/company.js:213 +#: templates/js/translated/company.js:214 msgid "Add Manufacturer Part" msgstr "" @@ -12649,231 +13014,231 @@ msgstr "" msgid "Edit Manufacturer Part" msgstr "" -#: templates/js/translated/company.js:201 +#: templates/js/translated/company.js:202 #: templates/js/translated/purchase_order.js:93 msgid "Add Supplier" msgstr "" -#: templates/js/translated/company.js:243 -#: templates/js/translated/purchase_order.js:318 +#: templates/js/translated/company.js:244 +#: templates/js/translated/purchase_order.js:301 msgid "Add Supplier Part" msgstr "" -#: templates/js/translated/company.js:344 +#: templates/js/translated/company.js:345 msgid "All selected supplier parts will be deleted" msgstr "" -#: templates/js/translated/company.js:360 +#: templates/js/translated/company.js:361 msgid "Delete Supplier Parts" msgstr "" -#: templates/js/translated/company.js:466 +#: templates/js/translated/company.js:467 msgid "Add new Company" msgstr "" -#: templates/js/translated/company.js:546 +#: templates/js/translated/company.js:547 msgid "Parts Supplied" msgstr "" -#: templates/js/translated/company.js:555 +#: templates/js/translated/company.js:556 msgid "Parts Manufactured" msgstr "" -#: templates/js/translated/company.js:570 +#: templates/js/translated/company.js:571 msgid "No company information found" msgstr "" -#: templates/js/translated/company.js:619 +#: templates/js/translated/company.js:620 msgid "Create New Contact" msgstr "" -#: templates/js/translated/company.js:635 -#: templates/js/translated/company.js:758 +#: templates/js/translated/company.js:636 +#: templates/js/translated/company.js:759 msgid "Edit Contact" msgstr "" -#: templates/js/translated/company.js:672 +#: templates/js/translated/company.js:673 msgid "All selected contacts will be deleted" msgstr "" -#: templates/js/translated/company.js:678 -#: templates/js/translated/company.js:742 +#: templates/js/translated/company.js:679 +#: templates/js/translated/company.js:743 msgid "Role" msgstr "" -#: templates/js/translated/company.js:686 +#: templates/js/translated/company.js:687 msgid "Delete Contacts" msgstr "" -#: templates/js/translated/company.js:717 +#: templates/js/translated/company.js:718 msgid "No contacts found" msgstr "" -#: templates/js/translated/company.js:730 +#: templates/js/translated/company.js:731 msgid "Phone Number" msgstr "" -#: templates/js/translated/company.js:736 +#: templates/js/translated/company.js:737 msgid "Email Address" msgstr "" -#: templates/js/translated/company.js:762 +#: templates/js/translated/company.js:763 msgid "Delete Contact" msgstr "" -#: templates/js/translated/company.js:859 +#: templates/js/translated/company.js:860 msgid "Create New Address" msgstr "" -#: templates/js/translated/company.js:874 -#: templates/js/translated/company.js:1035 +#: templates/js/translated/company.js:875 +#: templates/js/translated/company.js:1036 msgid "Edit Address" msgstr "" -#: templates/js/translated/company.js:909 +#: templates/js/translated/company.js:910 msgid "All selected addresses will be deleted" msgstr "" -#: templates/js/translated/company.js:923 +#: templates/js/translated/company.js:924 msgid "Delete Addresses" msgstr "" -#: templates/js/translated/company.js:950 +#: templates/js/translated/company.js:951 msgid "No addresses found" msgstr "" -#: templates/js/translated/company.js:989 +#: templates/js/translated/company.js:990 msgid "Postal city" msgstr "" -#: templates/js/translated/company.js:995 +#: templates/js/translated/company.js:996 msgid "State/province" msgstr "" -#: templates/js/translated/company.js:1007 +#: templates/js/translated/company.js:1008 msgid "Courier notes" msgstr "" -#: templates/js/translated/company.js:1013 +#: templates/js/translated/company.js:1014 msgid "Internal notes" msgstr "" -#: templates/js/translated/company.js:1039 +#: templates/js/translated/company.js:1040 msgid "Delete Address" msgstr "" -#: templates/js/translated/company.js:1112 +#: templates/js/translated/company.js:1113 msgid "All selected manufacturer parts will be deleted" msgstr "" -#: templates/js/translated/company.js:1127 +#: templates/js/translated/company.js:1128 msgid "Delete Manufacturer Parts" msgstr "" -#: templates/js/translated/company.js:1161 +#: templates/js/translated/company.js:1162 msgid "All selected parameters will be deleted" msgstr "" -#: templates/js/translated/company.js:1175 +#: templates/js/translated/company.js:1176 msgid "Delete Parameters" msgstr "" -#: templates/js/translated/company.js:1191 -#: templates/js/translated/company.js:1479 templates/js/translated/part.js:2250 +#: templates/js/translated/company.js:1192 +#: templates/js/translated/company.js:1480 templates/js/translated/part.js:2250 msgid "Order parts" msgstr "" -#: templates/js/translated/company.js:1208 +#: templates/js/translated/company.js:1209 msgid "Delete manufacturer parts" msgstr "" -#: templates/js/translated/company.js:1240 +#: templates/js/translated/company.js:1241 msgid "Manufacturer part actions" msgstr "" -#: templates/js/translated/company.js:1259 +#: templates/js/translated/company.js:1260 msgid "No manufacturer parts found" msgstr "" -#: templates/js/translated/company.js:1279 -#: templates/js/translated/company.js:1567 templates/js/translated/part.js:801 +#: templates/js/translated/company.js:1280 +#: templates/js/translated/company.js:1568 templates/js/translated/part.js:801 #: templates/js/translated/part.js:1217 msgid "Template part" msgstr "" -#: templates/js/translated/company.js:1283 -#: templates/js/translated/company.js:1571 templates/js/translated/part.js:805 +#: templates/js/translated/company.js:1284 +#: templates/js/translated/company.js:1572 templates/js/translated/part.js:805 #: templates/js/translated/part.js:1221 msgid "Assembled part" msgstr "" -#: templates/js/translated/company.js:1403 templates/js/translated/part.js:1471 +#: templates/js/translated/company.js:1404 templates/js/translated/part.js:1471 msgid "No parameters found" msgstr "" -#: templates/js/translated/company.js:1438 templates/js/translated/part.js:1534 +#: templates/js/translated/company.js:1439 templates/js/translated/part.js:1534 msgid "Edit parameter" msgstr "" -#: templates/js/translated/company.js:1439 templates/js/translated/part.js:1535 +#: templates/js/translated/company.js:1440 templates/js/translated/part.js:1535 msgid "Delete parameter" msgstr "" -#: templates/js/translated/company.js:1456 templates/js/translated/part.js:1440 +#: templates/js/translated/company.js:1457 templates/js/translated/part.js:1440 msgid "Edit Parameter" msgstr "" -#: templates/js/translated/company.js:1465 templates/js/translated/part.js:1556 +#: templates/js/translated/company.js:1466 templates/js/translated/part.js:1556 msgid "Delete Parameter" msgstr "" -#: templates/js/translated/company.js:1496 +#: templates/js/translated/company.js:1497 msgid "Delete supplier parts" msgstr "" -#: templates/js/translated/company.js:1546 +#: templates/js/translated/company.js:1547 msgid "No supplier parts found" msgstr "" -#: templates/js/translated/company.js:1664 +#: templates/js/translated/company.js:1665 msgid "Base Units" msgstr "" -#: templates/js/translated/company.js:1694 +#: templates/js/translated/company.js:1695 msgid "Availability" msgstr "" -#: templates/js/translated/company.js:1725 +#: templates/js/translated/company.js:1726 msgid "Edit supplier part" msgstr "" -#: templates/js/translated/company.js:1726 +#: templates/js/translated/company.js:1727 msgid "Delete supplier part" msgstr "" -#: templates/js/translated/company.js:1779 +#: templates/js/translated/company.js:1780 #: templates/js/translated/pricing.js:694 msgid "Delete Price Break" msgstr "" -#: templates/js/translated/company.js:1789 +#: templates/js/translated/company.js:1790 #: templates/js/translated/pricing.js:712 msgid "Edit Price Break" msgstr "" -#: templates/js/translated/company.js:1804 +#: templates/js/translated/company.js:1805 msgid "No price break information found" msgstr "" -#: templates/js/translated/company.js:1833 +#: templates/js/translated/company.js:1834 msgid "Last updated" msgstr "" -#: templates/js/translated/company.js:1840 +#: templates/js/translated/company.js:1841 msgid "Edit price break" msgstr "" -#: templates/js/translated/company.js:1841 +#: templates/js/translated/company.js:1842 msgid "Delete price break" msgstr "" @@ -12977,19 +13342,19 @@ msgstr "" msgid "Select Columns" msgstr "" -#: templates/js/translated/helpers.js:80 +#: templates/js/translated/helpers.js:81 msgid "YES" msgstr "" -#: templates/js/translated/helpers.js:83 +#: templates/js/translated/helpers.js:84 msgid "NO" msgstr "" -#: templates/js/translated/helpers.js:96 +#: templates/js/translated/helpers.js:97 msgid "True" msgstr "" -#: templates/js/translated/helpers.js:97 +#: templates/js/translated/helpers.js:98 msgid "False" msgstr "" @@ -13131,7 +13496,7 @@ msgid "Delete Line" msgstr "" #: templates/js/translated/order.js:306 -#: templates/js/translated/purchase_order.js:2060 +#: templates/js/translated/purchase_order.js:2044 msgid "No line items found" msgstr "" @@ -13366,19 +13731,19 @@ msgid "Delete Part Parameter Template" msgstr "" #: templates/js/translated/part.js:1723 -#: templates/js/translated/purchase_order.js:1724 +#: templates/js/translated/purchase_order.js:1708 msgid "No purchase orders found" msgstr "" #: templates/js/translated/part.js:1867 -#: templates/js/translated/purchase_order.js:2223 +#: templates/js/translated/purchase_order.js:2207 #: templates/js/translated/return_order.js:754 -#: templates/js/translated/sales_order.js:1911 +#: templates/js/translated/sales_order.js:1892 msgid "This line item is overdue" msgstr "" #: templates/js/translated/part.js:1913 -#: templates/js/translated/purchase_order.js:2290 +#: templates/js/translated/purchase_order.js:2274 msgid "Receive line item" msgstr "" @@ -13419,7 +13784,7 @@ msgid "No category" msgstr "" #: templates/js/translated/part.js:2550 templates/js/translated/part.js:2680 -#: templates/js/translated/stock.js:2754 +#: templates/js/translated/stock.js:2755 msgid "Display as list" msgstr "" @@ -13431,7 +13796,7 @@ msgstr "" msgid "No subcategories found" msgstr "" -#: templates/js/translated/part.js:2700 templates/js/translated/stock.js:2774 +#: templates/js/translated/part.js:2700 templates/js/translated/stock.js:2775 msgid "Display as tree" msgstr "" @@ -13483,23 +13848,23 @@ msgstr "" msgid "Speculative" msgstr "" -#: templates/js/translated/part.js:3128 +#: templates/js/translated/part.js:3144 msgid "No scheduling information available for this part" msgstr "" -#: templates/js/translated/part.js:3134 +#: templates/js/translated/part.js:3150 msgid "Error fetching scheduling information for this part" msgstr "" -#: templates/js/translated/part.js:3230 +#: templates/js/translated/part.js:3246 msgid "Scheduled Stock Quantities" msgstr "" -#: templates/js/translated/part.js:3246 +#: templates/js/translated/part.js:3262 msgid "Maximum Quantity" msgstr "" -#: templates/js/translated/part.js:3291 +#: templates/js/translated/part.js:3307 msgid "Minimum Stock Level" msgstr "" @@ -13575,267 +13940,243 @@ msgstr "" msgid "Purchase Price History" msgstr "" -#: templates/js/translated/pricing.js:894 +#: templates/js/translated/pricing.js:892 msgid "No sales history data available" msgstr "" -#: templates/js/translated/pricing.js:916 +#: templates/js/translated/pricing.js:914 msgid "Sale Price History" msgstr "" -#: templates/js/translated/pricing.js:1005 +#: templates/js/translated/pricing.js:1003 msgid "No variant data available" msgstr "" -#: templates/js/translated/pricing.js:1045 +#: templates/js/translated/pricing.js:1043 msgid "Variant Part" msgstr "" -#: templates/js/translated/purchase_order.js:169 -msgid "Select purchase order to duplicate" -msgstr "" - -#: templates/js/translated/purchase_order.js:176 -msgid "Duplicate Line Items" -msgstr "" - -#: templates/js/translated/purchase_order.js:177 -msgid "Duplicate all line items from the selected order" -msgstr "" - -#: templates/js/translated/purchase_order.js:184 -msgid "Duplicate Extra Lines" -msgstr "" - -#: templates/js/translated/purchase_order.js:185 -msgid "Duplicate extra line items from the selected order" -msgstr "" - -#: templates/js/translated/purchase_order.js:206 +#: templates/js/translated/purchase_order.js:188 msgid "Edit Purchase Order" msgstr "" -#: templates/js/translated/purchase_order.js:223 +#: templates/js/translated/purchase_order.js:205 msgid "Duplication Options" msgstr "" -#: templates/js/translated/purchase_order.js:431 +#: templates/js/translated/purchase_order.js:414 msgid "Complete Purchase Order" msgstr "" -#: templates/js/translated/purchase_order.js:448 +#: templates/js/translated/purchase_order.js:431 #: templates/js/translated/return_order.js:210 -#: templates/js/translated/sales_order.js:552 +#: templates/js/translated/sales_order.js:511 msgid "Mark this order as complete?" msgstr "" -#: templates/js/translated/purchase_order.js:454 +#: templates/js/translated/purchase_order.js:437 msgid "All line items have been received" msgstr "" -#: templates/js/translated/purchase_order.js:459 +#: templates/js/translated/purchase_order.js:442 msgid "This order has line items which have not been marked as received." msgstr "" -#: templates/js/translated/purchase_order.js:460 +#: templates/js/translated/purchase_order.js:443 msgid "Completing this order means that the order and line items will no longer be editable." msgstr "" -#: templates/js/translated/purchase_order.js:483 +#: templates/js/translated/purchase_order.js:466 msgid "Cancel Purchase Order" msgstr "" -#: templates/js/translated/purchase_order.js:488 +#: templates/js/translated/purchase_order.js:471 msgid "Are you sure you wish to cancel this purchase order?" msgstr "" -#: templates/js/translated/purchase_order.js:494 +#: templates/js/translated/purchase_order.js:477 msgid "This purchase order can not be cancelled" msgstr "" -#: templates/js/translated/purchase_order.js:515 +#: templates/js/translated/purchase_order.js:498 #: templates/js/translated/return_order.js:164 msgid "After placing this order, line items will no longer be editable." msgstr "" -#: templates/js/translated/purchase_order.js:520 +#: templates/js/translated/purchase_order.js:503 msgid "Issue Purchase Order" msgstr "" -#: templates/js/translated/purchase_order.js:612 +#: templates/js/translated/purchase_order.js:595 msgid "At least one purchaseable part must be selected" msgstr "" -#: templates/js/translated/purchase_order.js:637 +#: templates/js/translated/purchase_order.js:620 msgid "Quantity to order" msgstr "" -#: templates/js/translated/purchase_order.js:646 +#: templates/js/translated/purchase_order.js:629 msgid "New supplier part" msgstr "" -#: templates/js/translated/purchase_order.js:664 +#: templates/js/translated/purchase_order.js:647 msgid "New purchase order" msgstr "" -#: templates/js/translated/purchase_order.js:705 +#: templates/js/translated/purchase_order.js:688 msgid "Add to purchase order" msgstr "" -#: templates/js/translated/purchase_order.js:755 +#: templates/js/translated/purchase_order.js:738 msgid "Merge" msgstr "" -#: templates/js/translated/purchase_order.js:859 +#: templates/js/translated/purchase_order.js:842 msgid "No matching supplier parts" msgstr "" -#: templates/js/translated/purchase_order.js:878 +#: templates/js/translated/purchase_order.js:861 msgid "No matching purchase orders" msgstr "" -#: templates/js/translated/purchase_order.js:1073 +#: templates/js/translated/purchase_order.js:1056 #: templates/js/translated/return_order.js:490 msgid "Select Line Items" msgstr "" -#: templates/js/translated/purchase_order.js:1074 +#: templates/js/translated/purchase_order.js:1057 #: templates/js/translated/return_order.js:491 msgid "At least one line item must be selected" msgstr "" -#: templates/js/translated/purchase_order.js:1104 +#: templates/js/translated/purchase_order.js:1087 msgid "Received Quantity" msgstr "" -#: templates/js/translated/purchase_order.js:1115 +#: templates/js/translated/purchase_order.js:1098 msgid "Quantity to receive" msgstr "" -#: templates/js/translated/purchase_order.js:1170 +#: templates/js/translated/purchase_order.js:1153 #: templates/js/translated/stock.js:1215 msgid "Specify packaging for incoming stock items" msgstr "" -#: templates/js/translated/purchase_order.js:1223 +#: templates/js/translated/purchase_order.js:1206 msgid "Stock Status" msgstr "" -#: templates/js/translated/purchase_order.js:1237 +#: templates/js/translated/purchase_order.js:1220 msgid "Add barcode" msgstr "" -#: templates/js/translated/purchase_order.js:1238 +#: templates/js/translated/purchase_order.js:1221 msgid "Remove barcode" msgstr "" -#: templates/js/translated/purchase_order.js:1241 +#: templates/js/translated/purchase_order.js:1224 msgid "Specify location" msgstr "" -#: templates/js/translated/purchase_order.js:1249 +#: templates/js/translated/purchase_order.js:1232 msgid "Add batch code" msgstr "" -#: templates/js/translated/purchase_order.js:1259 +#: templates/js/translated/purchase_order.js:1242 msgid "Specify packaging" msgstr "" -#: templates/js/translated/purchase_order.js:1270 +#: templates/js/translated/purchase_order.js:1253 msgid "Add serial numbers" msgstr "" -#: templates/js/translated/purchase_order.js:1281 +#: templates/js/translated/purchase_order.js:1264 msgid "Add note" msgstr "" -#: templates/js/translated/purchase_order.js:1338 +#: templates/js/translated/purchase_order.js:1321 msgid "Serials" msgstr "" -#: templates/js/translated/purchase_order.js:1368 +#: templates/js/translated/purchase_order.js:1351 msgid "Order Code" msgstr "" -#: templates/js/translated/purchase_order.js:1370 +#: templates/js/translated/purchase_order.js:1353 msgid "Quantity to Receive" msgstr "" -#: templates/js/translated/purchase_order.js:1395 +#: templates/js/translated/purchase_order.js:1379 #: templates/js/translated/return_order.js:559 msgid "Confirm receipt of items" msgstr "" -#: templates/js/translated/purchase_order.js:1396 +#: templates/js/translated/purchase_order.js:1380 msgid "Receive Purchase Order Items" msgstr "" -#: templates/js/translated/purchase_order.js:1464 +#: templates/js/translated/purchase_order.js:1448 msgid "Scan Item Barcode" msgstr "" -#: templates/js/translated/purchase_order.js:1465 +#: templates/js/translated/purchase_order.js:1449 msgid "Scan barcode on incoming item (must not match any existing stock items)" msgstr "" -#: templates/js/translated/purchase_order.js:1479 +#: templates/js/translated/purchase_order.js:1463 msgid "Invalid barcode data" msgstr "" -#: templates/js/translated/purchase_order.js:1751 +#: templates/js/translated/purchase_order.js:1735 #: templates/js/translated/return_order.js:285 -#: templates/js/translated/sales_order.js:810 -#: templates/js/translated/sales_order.js:1034 +#: templates/js/translated/sales_order.js:769 +#: templates/js/translated/sales_order.js:1007 msgid "Order is overdue" msgstr "" -#: templates/js/translated/purchase_order.js:1913 +#: templates/js/translated/purchase_order.js:1897 msgid "All selected Line items will be deleted" msgstr "" -#: templates/js/translated/purchase_order.js:1931 +#: templates/js/translated/purchase_order.js:1915 msgid "Delete selected Line items?" msgstr "" -#: templates/js/translated/purchase_order.js:1986 -#: templates/js/translated/sales_order.js:2106 +#: templates/js/translated/purchase_order.js:1970 +#: templates/js/translated/sales_order.js:2087 msgid "Duplicate Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2001 +#: templates/js/translated/purchase_order.js:1985 #: templates/js/translated/return_order.js:475 #: templates/js/translated/return_order.js:667 -#: templates/js/translated/sales_order.js:2119 +#: templates/js/translated/sales_order.js:2100 msgid "Edit Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2012 +#: templates/js/translated/purchase_order.js:1996 #: templates/js/translated/return_order.js:680 -#: templates/js/translated/sales_order.js:2130 +#: templates/js/translated/sales_order.js:2111 msgid "Delete Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2294 -#: templates/js/translated/sales_order.js:2060 +#: templates/js/translated/purchase_order.js:2278 +#: templates/js/translated/sales_order.js:2041 msgid "Duplicate line item" msgstr "" -#: templates/js/translated/purchase_order.js:2295 +#: templates/js/translated/purchase_order.js:2279 #: templates/js/translated/return_order.js:799 -#: templates/js/translated/sales_order.js:2061 +#: templates/js/translated/sales_order.js:2042 msgid "Edit line item" msgstr "" -#: templates/js/translated/purchase_order.js:2296 +#: templates/js/translated/purchase_order.js:2280 #: templates/js/translated/return_order.js:803 -#: templates/js/translated/sales_order.js:2067 +#: templates/js/translated/sales_order.js:2048 msgid "Delete line item" msgstr "" -#: templates/js/translated/report.js:49 -msgid "Print Report" -msgstr "" - #: templates/js/translated/report.js:68 msgid "Report print successful" msgstr "" @@ -13878,7 +14219,7 @@ msgid "No return orders found" msgstr "" #: templates/js/translated/return_order.js:299 -#: templates/js/translated/sales_order.js:824 +#: templates/js/translated/sales_order.js:783 msgid "Invalid Customer" msgstr "" @@ -13887,7 +14228,7 @@ msgid "Receive Return Order Items" msgstr "" #: templates/js/translated/return_order.js:691 -#: templates/js/translated/sales_order.js:2267 +#: templates/js/translated/sales_order.js:2248 msgid "No matching line items" msgstr "" @@ -13903,188 +14244,181 @@ msgstr "" msgid "Edit Sales Order" msgstr "" -#: templates/js/translated/sales_order.js:291 +#: templates/js/translated/sales_order.js:288 msgid "No stock items have been allocated to this shipment" msgstr "" -#: templates/js/translated/sales_order.js:296 -msgid "The following stock items will be shipped" -msgstr "" - -#: templates/js/translated/sales_order.js:336 +#: templates/js/translated/sales_order.js:294 msgid "Complete Shipment" msgstr "" -#: templates/js/translated/sales_order.js:360 +#: templates/js/translated/sales_order.js:318 msgid "Confirm Shipment" msgstr "" -#: templates/js/translated/sales_order.js:416 +#: templates/js/translated/sales_order.js:375 msgid "No pending shipments found" msgstr "" -#: templates/js/translated/sales_order.js:420 +#: templates/js/translated/sales_order.js:379 msgid "No stock items have been allocated to pending shipments" msgstr "" -#: templates/js/translated/sales_order.js:430 +#: templates/js/translated/sales_order.js:389 msgid "Complete Shipments" msgstr "" -#: templates/js/translated/sales_order.js:452 +#: templates/js/translated/sales_order.js:411 msgid "Skip" msgstr "" -#: templates/js/translated/sales_order.js:484 +#: templates/js/translated/sales_order.js:443 msgid "Ship Sales Order" msgstr "" -#: templates/js/translated/sales_order.js:500 +#: templates/js/translated/sales_order.js:459 msgid "Ship this order?" msgstr "" -#: templates/js/translated/sales_order.js:506 +#: templates/js/translated/sales_order.js:465 msgid "Order cannot be shipped as there are incomplete shipments" msgstr "" -#: templates/js/translated/sales_order.js:513 +#: templates/js/translated/sales_order.js:472 msgid "This order has line items which have not been completed." msgstr "" -#: templates/js/translated/sales_order.js:514 +#: templates/js/translated/sales_order.js:473 msgid "Shipping this order means that the order and line items will no longer be editable." msgstr "" -#: templates/js/translated/sales_order.js:572 +#: templates/js/translated/sales_order.js:531 msgid "Issue this Sales Order?" msgstr "" -#: templates/js/translated/sales_order.js:577 +#: templates/js/translated/sales_order.js:536 msgid "Issue Sales Order" msgstr "" -#: templates/js/translated/sales_order.js:596 +#: templates/js/translated/sales_order.js:555 msgid "Cancel Sales Order" msgstr "" -#: templates/js/translated/sales_order.js:601 +#: templates/js/translated/sales_order.js:560 msgid "Cancelling this order means that the order will no longer be editable." msgstr "" -#: templates/js/translated/sales_order.js:655 +#: templates/js/translated/sales_order.js:614 msgid "Create New Shipment" msgstr "" -#: templates/js/translated/sales_order.js:764 +#: templates/js/translated/sales_order.js:723 msgid "No sales orders found" msgstr "" -#: templates/js/translated/sales_order.js:944 +#: templates/js/translated/sales_order.js:907 msgid "Edit shipment" msgstr "" -#: templates/js/translated/sales_order.js:947 +#: templates/js/translated/sales_order.js:910 msgid "Complete shipment" msgstr "" -#: templates/js/translated/sales_order.js:952 +#: templates/js/translated/sales_order.js:915 msgid "Delete shipment" msgstr "" -#: templates/js/translated/sales_order.js:969 +#: templates/js/translated/sales_order.js:932 msgid "Edit Shipment" msgstr "" -#: templates/js/translated/sales_order.js:984 +#: templates/js/translated/sales_order.js:947 msgid "Delete Shipment" msgstr "" -#: templates/js/translated/sales_order.js:1017 +#: templates/js/translated/sales_order.js:989 msgid "No matching shipments found" msgstr "" -#: templates/js/translated/sales_order.js:1042 +#: templates/js/translated/sales_order.js:1015 msgid "Shipment Reference" msgstr "" -#: templates/js/translated/sales_order.js:1066 -#: templates/js/translated/sales_order.js:1565 +#: templates/js/translated/sales_order.js:1032 +#: templates/js/translated/sales_order.js:1531 msgid "Not shipped" msgstr "" -#: templates/js/translated/sales_order.js:1084 +#: templates/js/translated/sales_order.js:1050 msgid "Tracking" msgstr "" -#: templates/js/translated/sales_order.js:1088 +#: templates/js/translated/sales_order.js:1054 msgid "Invoice" msgstr "" -#: templates/js/translated/sales_order.js:1255 +#: templates/js/translated/sales_order.js:1221 msgid "Add Shipment" msgstr "" -#: templates/js/translated/sales_order.js:1306 +#: templates/js/translated/sales_order.js:1272 msgid "Confirm stock allocation" msgstr "" -#: templates/js/translated/sales_order.js:1307 +#: templates/js/translated/sales_order.js:1273 msgid "Allocate Stock Items to Sales Order" msgstr "" -#: templates/js/translated/sales_order.js:1513 +#: templates/js/translated/sales_order.js:1479 msgid "No sales order allocations found" msgstr "" -#: templates/js/translated/sales_order.js:1605 +#: templates/js/translated/sales_order.js:1571 msgid "Edit Stock Allocation" msgstr "" -#: templates/js/translated/sales_order.js:1619 +#: templates/js/translated/sales_order.js:1585 msgid "Confirm Delete Operation" msgstr "" -#: templates/js/translated/sales_order.js:1620 +#: templates/js/translated/sales_order.js:1586 msgid "Delete Stock Allocation" msgstr "" -#: templates/js/translated/sales_order.js:1659 -#: templates/js/translated/sales_order.js:1746 +#: templates/js/translated/sales_order.js:1640 +#: templates/js/translated/sales_order.js:1727 #: templates/js/translated/stock.js:1861 msgid "Shipped to customer" msgstr "" -#: templates/js/translated/sales_order.js:1667 -#: templates/js/translated/sales_order.js:1755 +#: templates/js/translated/sales_order.js:1648 +#: templates/js/translated/sales_order.js:1736 msgid "Stock location not specified" msgstr "" -#: templates/js/translated/sales_order.js:2044 -msgid "Allocate serial numbers" -msgstr "" - -#: templates/js/translated/sales_order.js:2048 -msgid "Purchase stock" -msgstr "" - -#: templates/js/translated/sales_order.js:2057 -#: templates/js/translated/sales_order.js:2245 -msgid "Calculate price" -msgstr "" - -#: templates/js/translated/sales_order.js:2071 -msgid "Cannot be deleted as items have been shipped" -msgstr "" - -#: templates/js/translated/sales_order.js:2074 -msgid "Cannot be deleted as items have been allocated" -msgstr "" - -#: templates/js/translated/sales_order.js:2145 +#: templates/js/translated/sales_order.js:2025 +#: templates/js/translated/sales_order.js:2126 msgid "Allocate Serial Numbers" msgstr "" -#: templates/js/translated/sales_order.js:2253 +#: templates/js/translated/sales_order.js:2029 +msgid "Purchase stock" +msgstr "" + +#: templates/js/translated/sales_order.js:2038 +#: templates/js/translated/sales_order.js:2226 +msgid "Calculate price" +msgstr "" + +#: templates/js/translated/sales_order.js:2052 +msgid "Cannot be deleted as items have been shipped" +msgstr "" + +#: templates/js/translated/sales_order.js:2055 +msgid "Cannot be deleted as items have been allocated" +msgstr "" + +#: templates/js/translated/sales_order.js:2234 msgid "Update Unit Price" msgstr "" @@ -14209,11 +14543,8 @@ msgid "Find Serial Number" msgstr "" #: templates/js/translated/stock.js:603 templates/js/translated/stock.js:604 -msgid "Enter serial number" -msgstr "" - #: templates/js/translated/stock.js:620 -msgid "Enter a serial number" +msgid "Enter serial number" msgstr "" #: templates/js/translated/stock.js:640 @@ -14284,7 +14615,7 @@ msgstr "" msgid "Add Stock" msgstr "" -#: templates/js/translated/stock.js:1049 users/models.py:396 +#: templates/js/translated/stock.js:1049 users/models.py:398 msgid "Add" msgstr "" @@ -14308,7 +14639,7 @@ msgstr "" msgid "Adjust packaging" msgstr "" -#: templates/js/translated/stock.js:1256 templates/js/translated/stock.js:3382 +#: templates/js/translated/stock.js:1256 templates/js/translated/stock.js:3383 msgid "Select Stock Items" msgstr "" @@ -14320,18 +14651,6 @@ msgstr "" msgid "Confirm stock adjustment" msgstr "" -#: templates/js/translated/stock.js:1448 -msgid "PASS" -msgstr "" - -#: templates/js/translated/stock.js:1450 -msgid "FAIL" -msgstr "" - -#: templates/js/translated/stock.js:1455 -msgid "NO RESULT" -msgstr "" - #: templates/js/translated/stock.js:1535 msgid "Pass test" msgstr "" @@ -14388,216 +14707,216 @@ msgstr "" msgid "No stock location set" msgstr "" -#: templates/js/translated/stock.js:1927 +#: templates/js/translated/stock.js:1928 msgid "Change stock status" msgstr "" -#: templates/js/translated/stock.js:1936 +#: templates/js/translated/stock.js:1937 msgid "Merge stock" msgstr "" -#: templates/js/translated/stock.js:1985 +#: templates/js/translated/stock.js:1986 msgid "Delete stock" msgstr "" -#: templates/js/translated/stock.js:2038 +#: templates/js/translated/stock.js:2039 msgid "stock items" msgstr "" -#: templates/js/translated/stock.js:2043 +#: templates/js/translated/stock.js:2044 msgid "Scan to location" msgstr "" -#: templates/js/translated/stock.js:2054 +#: templates/js/translated/stock.js:2055 msgid "Stock Actions" msgstr "" -#: templates/js/translated/stock.js:2098 +#: templates/js/translated/stock.js:2099 msgid "Load installed items" msgstr "" -#: templates/js/translated/stock.js:2176 +#: templates/js/translated/stock.js:2177 msgid "Stock item is in production" msgstr "" -#: templates/js/translated/stock.js:2181 +#: templates/js/translated/stock.js:2182 msgid "Stock item assigned to sales order" msgstr "" -#: templates/js/translated/stock.js:2184 +#: templates/js/translated/stock.js:2185 msgid "Stock item assigned to customer" msgstr "" -#: templates/js/translated/stock.js:2187 +#: templates/js/translated/stock.js:2188 msgid "Serialized stock item has been allocated" msgstr "" -#: templates/js/translated/stock.js:2189 +#: templates/js/translated/stock.js:2190 msgid "Stock item has been fully allocated" msgstr "" -#: templates/js/translated/stock.js:2191 +#: templates/js/translated/stock.js:2192 msgid "Stock item has been partially allocated" msgstr "" -#: templates/js/translated/stock.js:2194 +#: templates/js/translated/stock.js:2195 msgid "Stock item has been installed in another item" msgstr "" -#: templates/js/translated/stock.js:2196 +#: templates/js/translated/stock.js:2197 msgid "Stock item has been consumed by a build order" msgstr "" -#: templates/js/translated/stock.js:2200 +#: templates/js/translated/stock.js:2201 msgid "Stock item has expired" msgstr "" -#: templates/js/translated/stock.js:2202 +#: templates/js/translated/stock.js:2203 msgid "Stock item will expire soon" msgstr "" -#: templates/js/translated/stock.js:2207 +#: templates/js/translated/stock.js:2208 msgid "Stock item has been rejected" msgstr "" -#: templates/js/translated/stock.js:2209 +#: templates/js/translated/stock.js:2210 msgid "Stock item is lost" msgstr "" -#: templates/js/translated/stock.js:2211 +#: templates/js/translated/stock.js:2212 msgid "Stock item is destroyed" msgstr "" -#: templates/js/translated/stock.js:2215 +#: templates/js/translated/stock.js:2216 #: templates/js/translated/table_filters.js:357 msgid "Depleted" msgstr "" -#: templates/js/translated/stock.js:2380 +#: templates/js/translated/stock.js:2381 msgid "Supplier part not specified" msgstr "" -#: templates/js/translated/stock.js:2427 +#: templates/js/translated/stock.js:2428 msgid "Stock Value" msgstr "" -#: templates/js/translated/stock.js:2555 +#: templates/js/translated/stock.js:2556 msgid "No stock items matching query" msgstr "" -#: templates/js/translated/stock.js:2658 +#: templates/js/translated/stock.js:2659 msgid "stock locations" msgstr "" -#: templates/js/translated/stock.js:2813 +#: templates/js/translated/stock.js:2814 msgid "Load Sublocations" msgstr "" -#: templates/js/translated/stock.js:2930 +#: templates/js/translated/stock.js:2931 msgid "Details" msgstr "" -#: templates/js/translated/stock.js:2934 +#: templates/js/translated/stock.js:2935 msgid "No changes" msgstr "" -#: templates/js/translated/stock.js:2946 +#: templates/js/translated/stock.js:2947 msgid "Part information unavailable" msgstr "" -#: templates/js/translated/stock.js:2968 +#: templates/js/translated/stock.js:2969 msgid "Location no longer exists" msgstr "" -#: templates/js/translated/stock.js:2985 +#: templates/js/translated/stock.js:2986 msgid "Build order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3000 +#: templates/js/translated/stock.js:3001 msgid "Purchase order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3017 +#: templates/js/translated/stock.js:3018 msgid "Sales Order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3034 +#: templates/js/translated/stock.js:3035 msgid "Return Order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3053 +#: templates/js/translated/stock.js:3054 msgid "Customer no longer exists" msgstr "" -#: templates/js/translated/stock.js:3071 +#: templates/js/translated/stock.js:3072 msgid "Stock item no longer exists" msgstr "" -#: templates/js/translated/stock.js:3089 +#: templates/js/translated/stock.js:3090 msgid "Added" msgstr "" -#: templates/js/translated/stock.js:3097 +#: templates/js/translated/stock.js:3098 msgid "Removed" msgstr "" -#: templates/js/translated/stock.js:3169 +#: templates/js/translated/stock.js:3170 msgid "No installed items" msgstr "" -#: templates/js/translated/stock.js:3223 templates/js/translated/stock.js:3259 +#: templates/js/translated/stock.js:3224 templates/js/translated/stock.js:3260 msgid "Uninstall Stock Item" msgstr "" -#: templates/js/translated/stock.js:3280 +#: templates/js/translated/stock.js:3281 msgid "Select stock item to uninstall" msgstr "" -#: templates/js/translated/stock.js:3301 +#: templates/js/translated/stock.js:3302 msgid "Install another stock item into this item" msgstr "" -#: templates/js/translated/stock.js:3302 +#: templates/js/translated/stock.js:3303 msgid "Stock items can only be installed if they meet the following criteria" msgstr "" -#: templates/js/translated/stock.js:3304 +#: templates/js/translated/stock.js:3305 msgid "The Stock Item links to a Part which is the BOM for this Stock Item" msgstr "" -#: templates/js/translated/stock.js:3305 +#: templates/js/translated/stock.js:3306 msgid "The Stock Item is currently available in stock" msgstr "" -#: templates/js/translated/stock.js:3306 +#: templates/js/translated/stock.js:3307 msgid "The Stock Item is not already installed in another item" msgstr "" -#: templates/js/translated/stock.js:3307 +#: templates/js/translated/stock.js:3308 msgid "The Stock Item is tracked by either a batch code or serial number" msgstr "" -#: templates/js/translated/stock.js:3320 +#: templates/js/translated/stock.js:3321 msgid "Select part to install" msgstr "" -#: templates/js/translated/stock.js:3383 +#: templates/js/translated/stock.js:3384 msgid "Select one or more stock items" msgstr "" -#: templates/js/translated/stock.js:3396 +#: templates/js/translated/stock.js:3397 msgid "Selected stock items" msgstr "" -#: templates/js/translated/stock.js:3400 +#: templates/js/translated/stock.js:3401 msgid "Change Stock Status" msgstr "" -#: templates/js/translated/stock.js:3477 +#: templates/js/translated/stock.js:3478 msgid "This week" msgstr "" -#: templates/js/translated/stock.js:3485 +#: templates/js/translated/stock.js:3486 msgid "This month" msgstr "" @@ -14734,10 +15053,6 @@ msgstr "" msgid "Show items which are in production" msgstr "" -#: templates/js/translated/table_filters.js:372 -msgid "Include Variants" -msgstr "" - #: templates/js/translated/table_filters.js:373 msgid "Include stock items for variant parts" msgstr "" @@ -15012,10 +15327,6 @@ msgstr "" msgid "An error occurred while attempting to login via your social network account." msgstr "" -#: templates/socialaccount/authentication_error.html:13 -msgid "Contact your system administrator for further information." -msgstr "" - #: templates/socialaccount/login.html:13 #, python-format msgid "Connect %(provider)s" @@ -15141,27 +15452,27 @@ msgstr "" msgid "No" msgstr "" -#: users/admin.py:104 +#: users/admin.py:101 msgid "Users" msgstr "" -#: users/admin.py:105 +#: users/admin.py:102 msgid "Select which users are assigned to this group" msgstr "" -#: users/admin.py:249 +#: users/admin.py:246 msgid "The following users are members of multiple groups" msgstr "" -#: users/admin.py:283 +#: users/admin.py:280 msgid "Personal info" msgstr "" -#: users/admin.py:285 +#: users/admin.py:282 msgid "Permissions" msgstr "" -#: users/admin.py:288 +#: users/admin.py:285 msgid "Important dates" msgstr "" @@ -15205,35 +15516,35 @@ msgstr "" msgid "Revoked" msgstr "" -#: users/models.py:379 +#: users/models.py:381 msgid "Permission set" msgstr "" -#: users/models.py:388 +#: users/models.py:390 msgid "Group" msgstr "" -#: users/models.py:392 +#: users/models.py:394 msgid "View" msgstr "" -#: users/models.py:392 +#: users/models.py:394 msgid "Permission to view items" msgstr "" -#: users/models.py:396 +#: users/models.py:398 msgid "Permission to add items" msgstr "" -#: users/models.py:400 +#: users/models.py:402 msgid "Change" msgstr "" -#: users/models.py:402 +#: users/models.py:404 msgid "Permissions to edit items" msgstr "" -#: users/models.py:408 +#: users/models.py:410 msgid "Permission to delete items" msgstr "" diff --git a/src/backend/InvenTree/locale/et/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/et/LC_MESSAGES/django.po index 37bc37dc00..49bfca6a8a 100644 --- a/src/backend/InvenTree/locale/et/LC_MESSAGES/django.po +++ b/src/backend/InvenTree/locale/et/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-08-20 01:22+0000\n" -"PO-Revision-Date: 2024-08-20 19:51\n" +"POT-Creation-Date: 2024-11-04 03:11+0000\n" +"PO-Revision-Date: 2024-11-04 03:14\n" "Last-Translator: \n" "Language-Team: Estonian\n" "Language: et_EE\n" @@ -14,81 +14,89 @@ msgstr "" "X-Crowdin-Project: inventree\n" "X-Crowdin-Project-ID: 452300\n" "X-Crowdin-Language: et\n" -"X-Crowdin-File: /[inventree.InvenTree] l10/src/backend/InvenTree/locale/en/LC_MESSAGES/django.po\n" -"X-Crowdin-File-ID: 216\n" +"X-Crowdin-File: /src/backend/InvenTree/locale/en/LC_MESSAGES/django.po\n" +"X-Crowdin-File-ID: 250\n" -#: InvenTree/api.py:269 +#: InvenTree/api.py:270 msgid "API endpoint not found" msgstr "" -#: InvenTree/api.py:502 +#: InvenTree/api.py:387 +msgid "Invalid items list provided" +msgstr "" + +#: InvenTree/api.py:396 +msgid "Invalid filters provided" +msgstr "" + +#: InvenTree/api.py:401 +msgid "No items found to delete" +msgstr "" + +#: InvenTree/api.py:515 msgid "User does not have permission to view this model" msgstr "Teil ei ole selle lehe vaatamiseks luba" -#: InvenTree/conversion.py:160 +#: InvenTree/conversion.py:161 #, python-brace-format msgid "Invalid unit provided ({unit})" msgstr "" -#: InvenTree/conversion.py:177 +#: InvenTree/conversion.py:178 msgid "No value provided" -msgstr "" +msgstr "Ei tohi tühi olla" -#: InvenTree/conversion.py:204 +#: InvenTree/conversion.py:205 #, python-brace-format msgid "Could not convert {original} to {unit}" msgstr "" -#: InvenTree/conversion.py:206 -msgid "Invalid quantity supplied" +#: InvenTree/conversion.py:207 InvenTree/conversion.py:221 +#: InvenTree/helpers.py:505 order/models.py:589 order/models.py:832 +msgid "Invalid quantity provided" msgstr "" -#: InvenTree/conversion.py:220 -#, python-brace-format -msgid "Invalid quantity supplied ({exc})" -msgstr "" - -#: InvenTree/exceptions.py:108 +#: InvenTree/exceptions.py:104 msgid "Error details can be found in the admin panel" msgstr "" -#: InvenTree/fields.py:136 +#: InvenTree/fields.py:135 msgid "Enter date" -msgstr "" +msgstr "Pane kuupäev" -#: InvenTree/fields.py:205 InvenTree/models.py:929 build/serializers.py:468 -#: build/serializers.py:546 build/templates/build/sidebar.html:29 -#: company/models.py:836 +#: InvenTree/fields.py:204 InvenTree/models.py:928 build/serializers.py:512 +#: build/serializers.py:590 build/templates/build/sidebar.html:29 +#: company/models.py:833 #: company/templates/company/manufacturer_part_sidebar.html:11 #: company/templates/company/sidebar.html:37 -#: company/templates/company/supplier_part_sidebar.html:11 order/models.py:1380 +#: company/templates/company/supplier_part_sidebar.html:11 order/models.py:1397 #: order/templates/order/po_sidebar.html:11 #: order/templates/order/return_order_sidebar.html:9 #: order/templates/order/so_sidebar.html:17 part/admin.py:59 -#: part/models.py:3297 part/templates/part/part_sidebar.html:65 +#: part/models.py:3348 part/templates/part/part_sidebar.html:65 #: report/templates/report/inventree_build_order_report.html:172 -#: stock/admin.py:230 stock/models.py:2375 stock/models.py:2563 -#: stock/serializers.py:698 stock/serializers.py:856 stock/serializers.py:982 -#: stock/serializers.py:1032 stock/serializers.py:1343 -#: stock/serializers.py:1432 stock/serializers.py:1597 +#: stock/admin.py:231 stock/models.py:2494 stock/models.py:2679 +#: stock/serializers.py:725 stock/serializers.py:887 stock/serializers.py:1013 +#: stock/serializers.py:1063 stock/serializers.py:1374 +#: stock/serializers.py:1463 stock/serializers.py:1628 #: stock/templates/stock/stock_sidebar.html:25 #: templates/js/translated/barcode.js:143 templates/js/translated/bom.js:1265 -#: templates/js/translated/company.js:1684 templates/js/translated/order.js:372 +#: templates/js/translated/company.js:1685 templates/js/translated/order.js:372 #: templates/js/translated/part.js:1087 -#: templates/js/translated/purchase_order.js:2270 +#: templates/js/translated/purchase_order.js:2254 #: templates/js/translated/return_order.js:774 -#: templates/js/translated/sales_order.js:1103 -#: templates/js/translated/sales_order.js:2018 -#: templates/js/translated/stock.js:1621 templates/js/translated/stock.js:2513 +#: templates/js/translated/sales_order.js:1069 +#: templates/js/translated/sales_order.js:1999 +#: templates/js/translated/stock.js:1621 templates/js/translated/stock.js:2514 msgid "Notes" msgstr "Märkmed" -#: InvenTree/format.py:164 +#: InvenTree/format.py:162 #, python-brace-format msgid "Value '{name}' does not appear in pattern format" msgstr "" -#: InvenTree/format.py:175 +#: InvenTree/format.py:173 msgid "Provided value does not match required pattern: " msgstr "" @@ -132,397 +140,409 @@ msgstr "" msgid "The provided primary email address is not valid." msgstr "" -#: InvenTree/forms.py:274 +#: InvenTree/forms.py:273 msgid "The provided email domain is not approved." msgstr "" -#: InvenTree/forms.py:403 +#: InvenTree/forms.py:402 msgid "Registration is disabled." msgstr "Registreerimine on ajutiselt väljalülitatud." -#: InvenTree/helpers.py:491 order/models.py:567 order/models.py:810 -msgid "Invalid quantity provided" +#: InvenTree/helpers.py:509 +msgid "Cannot serialize more than 1000 items at once" msgstr "" -#: InvenTree/helpers.py:499 +#: InvenTree/helpers.py:515 msgid "Empty serial number string" msgstr "" -#: InvenTree/helpers.py:528 +#: InvenTree/helpers.py:544 msgid "Duplicate serial" msgstr "" -#: InvenTree/helpers.py:560 InvenTree/helpers.py:603 +#: InvenTree/helpers.py:576 InvenTree/helpers.py:619 InvenTree/helpers.py:637 +#: InvenTree/helpers.py:644 InvenTree/helpers.py:663 #, python-brace-format -msgid "Invalid group range: {group}" +msgid "Invalid group: {group}" msgstr "" -#: InvenTree/helpers.py:591 +#: InvenTree/helpers.py:607 #, python-brace-format msgid "Group range {group} exceeds allowed quantity ({expected_quantity})" msgstr "" -#: InvenTree/helpers.py:621 InvenTree/helpers.py:628 InvenTree/helpers.py:647 -#, python-brace-format -msgid "Invalid group sequence: {group}" -msgstr "" - -#: InvenTree/helpers.py:657 +#: InvenTree/helpers.py:673 msgid "No serial numbers found" msgstr "" -#: InvenTree/helpers.py:662 +#: InvenTree/helpers.py:678 msgid "Number of unique serial numbers ({len(serials)}) must match quantity ({expected_quantity})" msgstr "" -#: InvenTree/helpers.py:780 +#: InvenTree/helpers.py:796 msgid "Remove HTML tags from this value" msgstr "" -#: InvenTree/helpers_model.py:133 +#: InvenTree/helpers.py:881 +msgid "Data contains prohibited markdown content" +msgstr "" + +#: InvenTree/helpers_model.py:130 msgid "Connection error" msgstr "Ühenduse viga" -#: InvenTree/helpers_model.py:138 InvenTree/helpers_model.py:145 +#: InvenTree/helpers_model.py:135 InvenTree/helpers_model.py:142 msgid "Server responded with invalid status code" msgstr "" -#: InvenTree/helpers_model.py:141 +#: InvenTree/helpers_model.py:138 msgid "Exception occurred" msgstr "Esines tõrge" -#: InvenTree/helpers_model.py:151 +#: InvenTree/helpers_model.py:148 msgid "Server responded with invalid Content-Length value" msgstr "" -#: InvenTree/helpers_model.py:154 +#: InvenTree/helpers_model.py:151 msgid "Image size is too large" msgstr "" -#: InvenTree/helpers_model.py:166 +#: InvenTree/helpers_model.py:163 msgid "Image download exceeded maximum size" msgstr "" -#: InvenTree/helpers_model.py:171 +#: InvenTree/helpers_model.py:168 msgid "Remote server returned empty response" msgstr "" -#: InvenTree/helpers_model.py:179 +#: InvenTree/helpers_model.py:176 msgid "Supplied URL is not a valid image file" msgstr "" -#: InvenTree/locales.py:18 +#: InvenTree/locales.py:20 msgid "Arabic" msgstr "Araabia" -#: InvenTree/locales.py:19 +#: InvenTree/locales.py:21 msgid "Bulgarian" msgstr "Bulgaaria keel" -#: InvenTree/locales.py:20 +#: InvenTree/locales.py:22 msgid "Czech" msgstr "Tšehhi" -#: InvenTree/locales.py:21 +#: InvenTree/locales.py:23 msgid "Danish" msgstr "Taani" -#: InvenTree/locales.py:22 +#: InvenTree/locales.py:24 msgid "German" msgstr "Saksa keel" -#: InvenTree/locales.py:23 +#: InvenTree/locales.py:25 msgid "Greek" msgstr "Kreeka keel" -#: InvenTree/locales.py:24 +#: InvenTree/locales.py:26 msgid "English" msgstr "Inglise keel" -#: InvenTree/locales.py:25 +#: InvenTree/locales.py:27 msgid "Spanish" msgstr "Hispaania keel" -#: InvenTree/locales.py:26 +#: InvenTree/locales.py:28 msgid "Spanish (Mexican)" msgstr "" -#: InvenTree/locales.py:27 +#: InvenTree/locales.py:29 msgid "Estonian" msgstr "Eesti" -#: InvenTree/locales.py:28 +#: InvenTree/locales.py:30 msgid "Farsi / Persian" msgstr "" -#: InvenTree/locales.py:29 -msgid "Finnish" -msgstr "" - -#: InvenTree/locales.py:30 -msgid "French" -msgstr "" - #: InvenTree/locales.py:31 -msgid "Hebrew" -msgstr "" +msgid "Finnish" +msgstr "Soome" #: InvenTree/locales.py:32 -msgid "Hindi" -msgstr "" +msgid "French" +msgstr "Prantsuse" #: InvenTree/locales.py:33 -msgid "Hungarian" -msgstr "" +msgid "Hebrew" +msgstr "Heebrea" #: InvenTree/locales.py:34 -msgid "Italian" -msgstr "" +msgid "Hindi" +msgstr "Hindi" #: InvenTree/locales.py:35 -msgid "Japanese" -msgstr "" +msgid "Hungarian" +msgstr "Ungari" #: InvenTree/locales.py:36 -msgid "Korean" -msgstr "" +msgid "Italian" +msgstr "Itaalia" #: InvenTree/locales.py:37 -msgid "Latvian" -msgstr "" +msgid "Japanese" +msgstr "Jaapani" #: InvenTree/locales.py:38 -msgid "Dutch" -msgstr "" +msgid "Korean" +msgstr "Korea" #: InvenTree/locales.py:39 -msgid "Norwegian" -msgstr "" +msgid "Lithuanian" +msgstr "Lietuvių" #: InvenTree/locales.py:40 -msgid "Polish" -msgstr "" +msgid "Latvian" +msgstr "Läti" #: InvenTree/locales.py:41 -msgid "Portuguese" -msgstr "" +msgid "Dutch" +msgstr "Hollandi" #: InvenTree/locales.py:42 -msgid "Portuguese (Brazilian)" -msgstr "" +msgid "Norwegian" +msgstr "Norra" #: InvenTree/locales.py:43 -msgid "Romanian" -msgstr "" +msgid "Polish" +msgstr "Poola" #: InvenTree/locales.py:44 -msgid "Russian" -msgstr "" +msgid "Portuguese" +msgstr "Portugali" #: InvenTree/locales.py:45 -msgid "Slovak" -msgstr "" +msgid "Portuguese (Brazilian)" +msgstr "Portugali (Brasiilia)" #: InvenTree/locales.py:46 -msgid "Slovenian" -msgstr "" +msgid "Romanian" +msgstr "Rumeenia" #: InvenTree/locales.py:47 -msgid "Serbian" -msgstr "" +msgid "Russian" +msgstr "Vene" #: InvenTree/locales.py:48 -msgid "Swedish" -msgstr "" +msgid "Slovak" +msgstr "Slovaki" #: InvenTree/locales.py:49 +msgid "Slovenian" +msgstr "Sloveenia" + +#: InvenTree/locales.py:50 +msgid "Serbian" +msgstr "Serbia" + +#: InvenTree/locales.py:51 +msgid "Swedish" +msgstr "Rootsi" + +#: InvenTree/locales.py:52 msgid "Thai" msgstr "Tai keel" -#: InvenTree/locales.py:50 +#: InvenTree/locales.py:53 msgid "Turkish" msgstr "Türgi keel" -#: InvenTree/locales.py:51 +#: InvenTree/locales.py:54 msgid "Ukrainian" msgstr "Ukraina keel" -#: InvenTree/locales.py:52 +#: InvenTree/locales.py:55 msgid "Vietnamese" -msgstr "" +msgstr "Vietnami" -#: InvenTree/locales.py:53 +#: InvenTree/locales.py:56 msgid "Chinese (Simplified)" -msgstr "" +msgstr "Hiina (lihtsustatud)" -#: InvenTree/locales.py:54 +#: InvenTree/locales.py:57 msgid "Chinese (Traditional)" -msgstr "" +msgstr "Hiina (traditsiooniline)" #: InvenTree/magic_login.py:28 -#, python-brace-format -msgid "[{site_name}] Log in to the app" +msgid "Log in to the app" msgstr "" -#: InvenTree/magic_login.py:38 InvenTree/serializers.py:415 -#: company/models.py:136 company/templates/company/company_base.html:138 +#: InvenTree/magic_login.py:38 InvenTree/serializers.py:416 +#: company/models.py:133 company/templates/company/company_base.html:138 #: templates/InvenTree/settings/user.html:49 -#: templates/js/translated/company.js:677 +#: templates/js/translated/company.js:678 msgid "Email" -msgstr "" +msgstr "E-post" -#: InvenTree/models.py:103 +#: InvenTree/models.py:105 msgid "Error running plugin validation" msgstr "" -#: InvenTree/models.py:172 +#: InvenTree/models.py:174 msgid "Metadata must be a python dict object" msgstr "" -#: InvenTree/models.py:178 +#: InvenTree/models.py:180 msgid "Plugin Metadata" msgstr "" -#: InvenTree/models.py:179 +#: InvenTree/models.py:181 msgid "JSON metadata field, for use by external plugins" msgstr "" -#: InvenTree/models.py:409 +#: InvenTree/models.py:408 msgid "Improperly formatted pattern" msgstr "" -#: InvenTree/models.py:416 +#: InvenTree/models.py:415 msgid "Unknown format key specified" msgstr "" -#: InvenTree/models.py:422 +#: InvenTree/models.py:421 msgid "Missing required format key" msgstr "" -#: InvenTree/models.py:433 +#: InvenTree/models.py:432 msgid "Reference field cannot be empty" msgstr "" -#: InvenTree/models.py:441 +#: InvenTree/models.py:440 msgid "Reference must match required pattern" msgstr "" -#: InvenTree/models.py:472 +#: InvenTree/models.py:471 msgid "Reference number is too large" msgstr "" -#: InvenTree/models.py:723 +#: InvenTree/models.py:722 msgid "Duplicate names cannot exist under the same parent" msgstr "" -#: InvenTree/models.py:740 +#: InvenTree/models.py:739 msgid "Invalid choice" msgstr "" -#: InvenTree/models.py:770 common/models.py:2702 common/models.py:3132 -#: common/serializers.py:412 company/models.py:593 machine/models.py:24 -#: part/models.py:983 part/models.py:3764 plugin/models.py:51 -#: report/models.py:149 stock/models.py:77 +#: InvenTree/models.py:769 common/models.py:2766 common/models.py:3193 +#: common/models.py:3413 common/serializers.py:460 company/models.py:590 +#: machine/models.py:24 part/models.py:1044 part/models.py:3815 +#: plugin/models.py:51 report/models.py:149 stock/models.py:83 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/notifications.html:17 #: templates/InvenTree/settings/plugin.html:83 #: templates/InvenTree/settings/plugin_settings.html:22 #: templates/InvenTree/settings/settings_staff_js.html:67 #: templates/InvenTree/settings/settings_staff_js.html:454 -#: templates/js/translated/company.js:676 -#: templates/js/translated/company.js:724 -#: templates/js/translated/company.js:913 -#: templates/js/translated/company.js:1165 -#: templates/js/translated/company.js:1413 templates/js/translated/part.js:1193 +#: templates/js/translated/company.js:677 +#: templates/js/translated/company.js:725 +#: templates/js/translated/company.js:914 +#: templates/js/translated/company.js:1166 +#: templates/js/translated/company.js:1414 templates/js/translated/part.js:1193 #: templates/js/translated/part.js:1481 templates/js/translated/part.js:1617 -#: templates/js/translated/part.js:2768 templates/js/translated/stock.js:2801 +#: templates/js/translated/part.js:2768 templates/js/translated/stock.js:2802 msgid "Name" -msgstr "" +msgstr "Nimi" -#: InvenTree/models.py:776 build/models.py:250 -#: build/templates/build/detail.html:24 common/models.py:156 -#: company/models.py:521 company/models.py:827 +#: InvenTree/models.py:775 build/models.py:251 +#: build/templates/build/detail.html:24 common/models.py:159 +#: company/models.py:518 company/models.py:824 #: company/templates/company/company_base.html:77 #: company/templates/company/manufacturer_part.html:75 -#: company/templates/company/supplier_part.html:107 order/models.py:288 -#: order/models.py:1413 part/admin.py:305 part/admin.py:411 part/models.py:1006 -#: part/models.py:3779 part/templates/part/category.html:79 -#: part/templates/part/part_base.html:170 +#: company/templates/company/supplier_part.html:108 order/models.py:295 +#: order/models.py:1430 part/admin.py:305 part/admin.py:411 part/models.py:1067 +#: part/models.py:3830 part/templates/part/category.html:79 +#: part/templates/part/part_base.html:171 #: part/templates/part/part_scheduling.html:12 report/models.py:155 -#: report/models.py:509 report/models.py:535 +#: report/models.py:517 report/models.py:543 #: report/templates/report/inventree_build_order_report.html:117 -#: stock/admin.py:54 stock/models.py:83 stock/templates/stock/location.html:122 +#: stock/admin.py:54 stock/models.py:89 stock/templates/stock/location.html:123 #: templates/InvenTree/settings/notifications.html:19 #: templates/InvenTree/settings/plugin_settings.html:27 #: templates/InvenTree/settings/settings_staff_js.html:170 #: templates/InvenTree/settings/settings_staff_js.html:459 #: templates/js/translated/bom.js:633 templates/js/translated/bom.js:963 -#: templates/js/translated/build.js:2311 templates/js/translated/company.js:519 -#: templates/js/translated/company.js:1330 -#: templates/js/translated/company.js:1641 templates/js/translated/index.js:119 +#: templates/js/translated/build.js:2314 templates/js/translated/company.js:520 +#: templates/js/translated/company.js:1331 +#: templates/js/translated/company.js:1642 templates/js/translated/index.js:119 #: templates/js/translated/order.js:323 templates/js/translated/part.js:1245 #: templates/js/translated/part.js:1490 templates/js/translated/part.js:1628 #: templates/js/translated/part.js:1965 templates/js/translated/part.js:2361 #: templates/js/translated/part.js:2803 templates/js/translated/part.js:2915 #: templates/js/translated/plugin.js:80 -#: templates/js/translated/purchase_order.js:1776 -#: templates/js/translated/purchase_order.js:1919 -#: templates/js/translated/purchase_order.js:2092 +#: templates/js/translated/purchase_order.js:1760 +#: templates/js/translated/purchase_order.js:1903 +#: templates/js/translated/purchase_order.js:2076 #: templates/js/translated/return_order.js:313 -#: templates/js/translated/sales_order.js:838 -#: templates/js/translated/sales_order.js:1848 -#: templates/js/translated/stock.js:1600 templates/js/translated/stock.js:2143 -#: templates/js/translated/stock.js:2832 templates/js/translated/stock.js:2915 +#: templates/js/translated/sales_order.js:797 +#: templates/js/translated/sales_order.js:1829 +#: templates/js/translated/stock.js:1600 templates/js/translated/stock.js:2144 +#: templates/js/translated/stock.js:2833 templates/js/translated/stock.js:2916 msgid "Description" -msgstr "" +msgstr "Kirjeldus" -#: InvenTree/models.py:777 stock/models.py:84 +#: InvenTree/models.py:776 stock/models.py:90 msgid "Description (optional)" -msgstr "" +msgstr "Kirjeldus (valikuline)" -#: InvenTree/models.py:792 templates/js/translated/part.js:2812 -#: templates/js/translated/stock.js:2841 +#: InvenTree/models.py:791 common/models.py:3546 +#: templates/js/translated/part.js:2812 templates/js/translated/stock.js:2842 msgid "Path" -msgstr "" +msgstr "Tee" -#: InvenTree/models.py:929 +#: InvenTree/models.py:928 msgid "Markdown notes (optional)" msgstr "" -#: InvenTree/models.py:960 +#: InvenTree/models.py:959 msgid "Barcode Data" msgstr "" -#: InvenTree/models.py:961 +#: InvenTree/models.py:960 msgid "Third party barcode data" msgstr "" -#: InvenTree/models.py:967 +#: InvenTree/models.py:966 msgid "Barcode Hash" msgstr "" -#: InvenTree/models.py:968 +#: InvenTree/models.py:967 msgid "Unique hash of barcode data" msgstr "" -#: InvenTree/models.py:1035 +#: InvenTree/models.py:1034 msgid "Existing barcode found" msgstr "" -#: InvenTree/models.py:1078 -msgid "Server Error" +#: InvenTree/models.py:1112 +msgid "Task Failure" msgstr "" -#: InvenTree/models.py:1079 +#: InvenTree/models.py:1114 +#, python-brace-format +msgid "Background worker task '{instance.func}' failed after {n} attempts" +msgstr "" + +#: InvenTree/models.py:1142 +msgid "Server Error" +msgstr "Serveri viga" + +#: InvenTree/models.py:1143 msgid "An error has been logged by the server." msgstr "" -#: InvenTree/serializers.py:63 part/models.py:4387 +#: InvenTree/serializers.py:63 part/models.py:4444 msgid "Must be a valid number" msgstr "" -#: InvenTree/serializers.py:100 company/models.py:186 -#: company/templates/company/company_base.html:112 part/models.py:3115 +#: InvenTree/serializers.py:100 company/models.py:183 +#: company/templates/company/company_base.html:112 part/models.py:3166 #: templates/InvenTree/settings/settings_staff_js.html:44 #: templates/currency_data.html:5 msgid "Currency" @@ -532,15 +552,15 @@ msgstr "Valuuta" msgid "Select currency from available options" msgstr "" -#: InvenTree/serializers.py:407 templates/InvenTree/settings/user.html:33 +#: InvenTree/serializers.py:405 templates/InvenTree/settings/user.html:33 msgid "Username" -msgstr "" +msgstr "Kasutajanimi" -#: InvenTree/serializers.py:409 templates/InvenTree/settings/user.html:37 +#: InvenTree/serializers.py:408 templates/InvenTree/settings/user.html:37 msgid "First Name" msgstr "Eesnimi" -#: InvenTree/serializers.py:409 +#: InvenTree/serializers.py:408 msgid "First name of the user" msgstr "" @@ -552,30 +572,30 @@ msgstr "Perekonnanimi" msgid "Last name of the user" msgstr "" -#: InvenTree/serializers.py:415 +#: InvenTree/serializers.py:416 msgid "Email address of the user" msgstr "" -#: InvenTree/serializers.py:439 +#: InvenTree/serializers.py:441 msgid "Staff" msgstr "" -#: InvenTree/serializers.py:439 +#: InvenTree/serializers.py:441 msgid "Does this user have staff permissions" msgstr "" -#: InvenTree/serializers.py:442 +#: InvenTree/serializers.py:445 msgid "Superuser" msgstr "" -#: InvenTree/serializers.py:442 +#: InvenTree/serializers.py:445 msgid "Is this user a superuser" msgstr "" -#: InvenTree/serializers.py:445 common/models.py:2707 company/models.py:163 -#: company/models.py:801 machine/models.py:39 part/admin.py:88 -#: part/models.py:1189 plugin/models.py:66 -#: templates/js/translated/company.js:523 +#: InvenTree/serializers.py:449 common/models.py:2771 company/models.py:160 +#: company/models.py:798 machine/models.py:39 part/admin.py:88 +#: part/models.py:1250 plugin/models.py:66 +#: templates/js/translated/company.js:524 #: templates/js/translated/table_filters.js:134 #: templates/js/translated/table_filters.js:226 #: templates/js/translated/table_filters.js:513 @@ -585,247 +605,298 @@ msgstr "" msgid "Active" msgstr "" -#: InvenTree/serializers.py:445 +#: InvenTree/serializers.py:449 msgid "Is this user account active" msgstr "" -#: InvenTree/serializers.py:463 +#: InvenTree/serializers.py:467 msgid "You do not have permission to change this user role." msgstr "" -#: InvenTree/serializers.py:475 +#: InvenTree/serializers.py:503 msgid "Only superusers can create new users" msgstr "" -#: InvenTree/serializers.py:494 +#: InvenTree/serializers.py:523 msgid "Your account has been created." msgstr "" -#: InvenTree/serializers.py:496 +#: InvenTree/serializers.py:525 msgid "Please use the password reset function to login" msgstr "" -#: InvenTree/serializers.py:503 +#: InvenTree/serializers.py:531 msgid "Welcome to InvenTree" msgstr "" -#: InvenTree/serializers.py:561 +#: InvenTree/serializers.py:594 msgid "Invalid value" msgstr "" -#: InvenTree/serializers.py:581 importer/models.py:63 +#: InvenTree/serializers.py:614 importer/models.py:64 msgid "Data File" msgstr "" -#: InvenTree/serializers.py:582 +#: InvenTree/serializers.py:615 msgid "Select data file for upload" msgstr "" -#: InvenTree/serializers.py:599 -msgid "Unsupported file type" +#: InvenTree/serializers.py:632 common/files.py:63 +msgid "Unsupported file format" msgstr "" -#: InvenTree/serializers.py:605 +#: InvenTree/serializers.py:638 msgid "File is too large" -msgstr "" +msgstr "Fail on liiga suur" -#: InvenTree/serializers.py:626 +#: InvenTree/serializers.py:659 msgid "No columns found in file" msgstr "" -#: InvenTree/serializers.py:629 +#: InvenTree/serializers.py:662 msgid "No data rows found in file" msgstr "" -#: InvenTree/serializers.py:742 +#: InvenTree/serializers.py:774 msgid "No data rows provided" msgstr "" -#: InvenTree/serializers.py:745 +#: InvenTree/serializers.py:777 msgid "No data columns supplied" msgstr "" -#: InvenTree/serializers.py:812 +#: InvenTree/serializers.py:843 #, python-brace-format msgid "Missing required column: '{name}'" msgstr "" -#: InvenTree/serializers.py:821 +#: InvenTree/serializers.py:852 #, python-brace-format msgid "Duplicate column: '{col}'" msgstr "" -#: InvenTree/serializers.py:861 +#: InvenTree/serializers.py:891 msgid "Remote Image" msgstr "" -#: InvenTree/serializers.py:862 +#: InvenTree/serializers.py:892 msgid "URL of remote image file" msgstr "" -#: InvenTree/serializers.py:880 +#: InvenTree/serializers.py:910 msgid "Downloading images from remote URL is not enabled" msgstr "" -#: InvenTree/status.py:66 part/serializers.py:1246 -msgid "Background worker check failed" -msgstr "" - -#: InvenTree/status.py:70 -msgid "Email backend not configured" -msgstr "" - -#: InvenTree/status.py:73 -msgid "InvenTree system health checks failed" +#: InvenTree/serializers.py:917 +msgid "Failed to download image from remote URL" msgstr "" #: InvenTree/templatetags/inventree_extras.py:184 msgid "Unknown database" msgstr "Tundmatu andmebaas" -#: InvenTree/validators.py:32 InvenTree/validators.py:34 +#: InvenTree/validators.py:32 msgid "Invalid physical unit" msgstr "" -#: InvenTree/validators.py:40 +#: InvenTree/validators.py:38 msgid "Not a valid currency code" msgstr "" -#: InvenTree/validators.py:118 InvenTree/validators.py:134 +#: InvenTree/validators.py:115 InvenTree/validators.py:131 msgid "Overage value must not be negative" msgstr "" -#: InvenTree/validators.py:136 +#: InvenTree/validators.py:133 msgid "Overage must not exceed 100%" msgstr "" -#: InvenTree/validators.py:142 +#: InvenTree/validators.py:139 msgid "Invalid value for overage" msgstr "" -#: InvenTree/views.py:400 templates/InvenTree/settings/user.html:23 +#: InvenTree/views.py:399 templates/InvenTree/settings/user.html:23 msgid "Edit User Information" -msgstr "" +msgstr "Muuda kasutaja infot" -#: InvenTree/views.py:412 templates/InvenTree/settings/user.html:20 +#: InvenTree/views.py:411 templates/InvenTree/settings/user.html:20 msgid "Set Password" msgstr "Määra parool" -#: InvenTree/views.py:434 +#: InvenTree/views.py:433 msgid "Password fields must match" msgstr "" -#: InvenTree/views.py:442 +#: InvenTree/views.py:441 msgid "Wrong password provided" msgstr "Esitatud vale parool" -#: InvenTree/views.py:650 templates/navbar.html:160 +#: InvenTree/views.py:645 templates/navbar.html:160 msgid "System Information" -msgstr "" +msgstr "Süsteemi info" -#: InvenTree/views.py:657 templates/navbar.html:171 +#: InvenTree/views.py:652 templates/navbar.html:171 msgid "About InvenTree" -msgstr "" +msgstr "InvenTree kohta" -#: build/api.py:51 part/api.py:156 stock/api.py:343 -msgid "Cascade" -msgstr "" - -#: build/api.py:64 build/models.py:261 -#: build/templates/build/build_base.html:191 +#: build/api.py:54 build/models.py:262 +#: build/templates/build/build_base.html:192 #: build/templates/build/detail.html:87 msgid "Parent Build" msgstr "" -#: build/api.py:89 order/api.py:92 templates/js/translated/table_filters.js:101 +#: build/api.py:58 build/api.py:625 order/api.py:396 order/api.py:611 +#: order/api.py:990 order/api.py:1187 +#: templates/js/translated/table_filters.js:372 +msgid "Include Variants" +msgstr "" + +#: build/api.py:93 +msgid "Ancestor Build" +msgstr "" + +#: build/api.py:112 order/api.py:90 +#: templates/js/translated/table_filters.js:101 #: templates/js/translated/table_filters.js:549 #: templates/js/translated/table_filters.js:633 #: templates/js/translated/table_filters.js:674 msgid "Assigned to me" msgstr "" -#: build/api.py:106 build/templates/build/build_base.html:205 +#: build/api.py:129 build/templates/build/build_base.html:206 #: build/templates/build/detail.html:115 #: report/templates/report/inventree_build_order_report.html:152 #: templates/js/translated/table_filters.js:552 msgid "Issued By" msgstr "" -#: build/api.py:125 +#: build/api.py:148 msgid "Assigned To" -msgstr "" +msgstr "Määratud" -#: build/api.py:301 +#: build/api.py:310 msgid "Build must be cancelled before it can be deleted" msgstr "" -#: build/api.py:345 build/serializers.py:1288 part/models.py:4265 +#: build/api.py:354 build/serializers.py:1342 part/models.py:4322 #: templates/js/translated/bom.js:997 templates/js/translated/bom.js:1037 -#: templates/js/translated/build.js:2702 +#: templates/js/translated/build.js:2711 #: templates/js/translated/table_filters.js:197 #: templates/js/translated/table_filters.js:586 msgid "Consumable" msgstr "" -#: build/api.py:346 build/serializers.py:1289 part/models.py:4259 +#: build/api.py:355 build/serializers.py:1343 part/models.py:4316 #: part/templates/part/upload_bom.html:58 templates/js/translated/bom.js:1001 -#: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2693 +#: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2702 #: templates/js/translated/table_filters.js:193 #: templates/js/translated/table_filters.js:222 #: templates/js/translated/table_filters.js:590 msgid "Optional" -msgstr "" +msgstr "Valikuline" -#: build/api.py:347 common/models.py:1489 part/admin.py:91 part/admin.py:428 -#: part/models.py:1154 part/serializers.py:1575 +#: build/api.py:356 common/models.py:1558 part/admin.py:91 part/admin.py:428 +#: part/models.py:1215 part/serializers.py:1633 #: templates/js/translated/bom.js:1639 #: templates/js/translated/table_filters.js:337 #: templates/js/translated/table_filters.js:729 msgid "Assembly" msgstr "" -#: build/api.py:348 templates/js/translated/table_filters.js:415 +#: build/api.py:357 templates/js/translated/table_filters.js:415 #: templates/js/translated/table_filters.js:582 msgid "Tracked" -msgstr "" +msgstr "Jälgitud" -#: build/api.py:349 build/serializers.py:1290 part/models.py:1172 +#: build/api.py:358 build/serializers.py:1344 part/models.py:1233 #: templates/js/translated/table_filters.js:146 #: templates/js/translated/table_filters.js:779 msgid "Testable" msgstr "" -#: build/api.py:351 part/admin.py:144 templates/js/translated/build.js:1917 -#: templates/js/translated/build.js:2820 -#: templates/js/translated/sales_order.js:1965 +#: build/api.py:360 order/api.py:779 part/admin.py:144 +#: templates/js/translated/build.js:1920 templates/js/translated/build.js:2838 +#: templates/js/translated/sales_order.js:1946 #: templates/js/translated/table_filters.js:574 msgid "Allocated" msgstr "" -#: build/api.py:359 company/models.py:891 company/serializers.py:395 -#: company/templates/company/supplier_part.html:114 +#: build/api.py:368 company/models.py:888 company/serializers.py:399 +#: company/templates/company/supplier_part.html:115 #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:17 -#: templates/js/translated/bom.js:1162 templates/js/translated/build.js:2752 +#: templates/js/translated/bom.js:1162 templates/js/translated/build.js:2770 #: templates/js/translated/index.js:123 -#: templates/js/translated/model_renderers.js:235 +#: templates/js/translated/model_renderers.js:238 #: templates/js/translated/part.js:695 templates/js/translated/part.js:697 #: templates/js/translated/part.js:702 #: templates/js/translated/table_filters.js:347 #: templates/js/translated/table_filters.js:578 msgid "Available" -msgstr "" +msgstr "Saadaval" -#: build/models.py:86 build/templates/build/build_base.html:9 -#: build/templates/build/build_base.html:27 +#: build/api.py:640 build/models.py:268 build/serializers.py:1330 +#: build/templates/build/build_base.html:106 +#: build/templates/build/detail.html:29 company/models.py:1043 order/api.py:775 +#: order/api.py:1003 order/models.py:1519 order/models.py:1674 +#: order/models.py:1675 part/api.py:1495 part/api.py:1802 part/models.py:419 +#: part/models.py:3177 part/models.py:3321 part/models.py:3469 +#: part/models.py:3490 part/models.py:3512 part/models.py:3648 +#: part/models.py:3995 part/models.py:4158 part/models.py:4288 +#: part/models.py:4654 part/serializers.py:1245 part/serializers.py:1898 +#: part/templates/part/part_app_base.html:8 +#: part/templates/part/part_pricing.html:12 +#: part/templates/part/upload_bom.html:52 +#: report/templates/report/inventree_bill_of_materials_report.html:110 +#: report/templates/report/inventree_bill_of_materials_report.html:137 +#: report/templates/report/inventree_build_order_report.html:109 +#: report/templates/report/inventree_purchase_order_report.html:27 +#: report/templates/report/inventree_return_order_report.html:24 +#: report/templates/report/inventree_sales_order_report.html:27 +#: report/templates/report/inventree_sales_order_shipment_report.html:28 +#: report/templates/report/inventree_stock_location_report.html:102 +#: stock/serializers.py:112 stock/serializers.py:160 stock/serializers.py:456 +#: stock/serializers.py:947 templates/InvenTree/search.html:82 +#: templates/email/build_order_completed.html:17 +#: templates/email/build_order_required_stock.html:17 +#: templates/email/low_stock_notification.html:15 +#: templates/email/overdue_build_order.html:16 +#: templates/js/translated/barcode.js:577 templates/js/translated/bom.js:632 +#: templates/js/translated/bom.js:769 templates/js/translated/bom.js:905 +#: templates/js/translated/build.js:1005 templates/js/translated/build.js:1488 +#: templates/js/translated/build.js:1919 templates/js/translated/build.js:2337 +#: templates/js/translated/build.js:2514 templates/js/translated/company.js:349 +#: templates/js/translated/company.js:1117 +#: templates/js/translated/company.js:1272 +#: templates/js/translated/company.js:1560 templates/js/translated/index.js:109 +#: templates/js/translated/part.js:1950 templates/js/translated/part.js:2022 +#: templates/js/translated/part.js:2330 templates/js/translated/pricing.js:369 +#: templates/js/translated/purchase_order.js:734 +#: templates/js/translated/purchase_order.js:1350 +#: templates/js/translated/purchase_order.js:1902 +#: templates/js/translated/purchase_order.js:2061 +#: templates/js/translated/return_order.js:538 +#: templates/js/translated/return_order.js:708 +#: templates/js/translated/sales_order.js:1199 +#: templates/js/translated/sales_order.js:1608 +#: templates/js/translated/sales_order.js:1813 +#: templates/js/translated/stock.js:682 templates/js/translated/stock.js:848 +#: templates/js/translated/stock.js:1065 templates/js/translated/stock.js:2083 +#: templates/js/translated/stock.js:2942 templates/js/translated/stock.js:3175 +#: templates/js/translated/stock.js:3320 +msgid "Part" +msgstr "Osa" + +#: build/api.py:662 build/models.py:88 build/templates/build/build_base.html:10 +#: build/templates/build/build_base.html:28 #: report/templates/report/inventree_build_order_report.html:105 -#: stock/serializers.py:84 templates/email/build_order_completed.html:16 +#: stock/serializers.py:85 templates/email/build_order_completed.html:16 #: templates/email/overdue_build_order.html:15 -#: templates/js/translated/build.js:1145 templates/js/translated/stock.js:2976 +#: templates/js/translated/build.js:1148 templates/js/translated/stock.js:2977 msgid "Build Order" msgstr "" -#: build/models.py:87 build/templates/build/build_base.html:13 +#: build/models.py:89 build/templates/build/build_base.html:14 #: build/templates/build/index.html:8 build/templates/build/index.html:12 #: order/templates/order/sales_order_detail.html:111 #: order/templates/order/so_sidebar.html:13 @@ -836,268 +907,216 @@ msgstr "" msgid "Build Orders" msgstr "" -#: build/models.py:135 +#: build/models.py:136 msgid "Assembly BOM has not been validated" msgstr "" -#: build/models.py:142 +#: build/models.py:143 msgid "Build order cannot be created for an inactive part" msgstr "" -#: build/models.py:149 +#: build/models.py:150 msgid "Build order cannot be created for an unlocked part" msgstr "" -#: build/models.py:163 +#: build/models.py:164 msgid "Invalid choice for parent build" msgstr "" -#: build/models.py:174 order/models.py:239 +#: build/models.py:175 order/models.py:236 msgid "Responsible user or group must be specified" msgstr "" -#: build/models.py:180 +#: build/models.py:181 msgid "Build order part cannot be changed" msgstr "" -#: build/models.py:241 +#: build/models.py:242 msgid "Build Order Reference" msgstr "" -#: build/models.py:242 build/serializers.py:1287 order/models.py:467 -#: order/models.py:978 order/models.py:1373 order/models.py:2135 -#: part/admin.py:414 part/models.py:4280 part/templates/part/upload_bom.html:54 +#: build/models.py:243 build/serializers.py:1341 order/models.py:479 +#: order/models.py:1005 order/models.py:1390 order/models.py:2174 +#: part/admin.py:414 part/models.py:4337 part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_bill_of_materials_report.html:139 #: report/templates/report/inventree_purchase_order_report.html:28 #: report/templates/report/inventree_return_order_report.html:26 #: report/templates/report/inventree_sales_order_report.html:28 #: templates/js/translated/bom.js:770 templates/js/translated/bom.js:973 -#: templates/js/translated/build.js:1011 templates/js/translated/build.js:2685 +#: templates/js/translated/build.js:1014 templates/js/translated/build.js:2694 #: templates/js/translated/order.js:316 templates/js/translated/pricing.js:386 -#: templates/js/translated/purchase_order.js:2135 +#: templates/js/translated/purchase_order.js:2119 #: templates/js/translated/return_order.js:727 -#: templates/js/translated/sales_order.js:1854 +#: templates/js/translated/sales_order.js:1835 msgid "Reference" msgstr "Tootekood" -#: build/models.py:253 +#: build/models.py:254 msgid "Brief description of the build (optional)" msgstr "" -#: build/models.py:262 +#: build/models.py:263 msgid "BuildOrder to which this build is allocated" msgstr "" -#: build/models.py:267 build/serializers.py:1278 -#: build/templates/build/build_base.html:105 -#: build/templates/build/detail.html:29 company/models.py:1046 order/api.py:767 -#: order/models.py:1503 order/models.py:1658 order/models.py:1659 -#: part/api.py:1509 part/api.py:1813 part/models.py:424 part/models.py:3126 -#: part/models.py:3270 part/models.py:3418 part/models.py:3439 -#: part/models.py:3461 part/models.py:3597 part/models.py:3937 -#: part/models.py:4100 part/models.py:4231 part/models.py:4592 -#: part/serializers.py:1192 part/serializers.py:1836 -#: part/templates/part/part_app_base.html:8 -#: part/templates/part/part_pricing.html:12 -#: part/templates/part/upload_bom.html:52 -#: report/templates/report/inventree_bill_of_materials_report.html:110 -#: report/templates/report/inventree_bill_of_materials_report.html:137 -#: report/templates/report/inventree_build_order_report.html:109 -#: report/templates/report/inventree_purchase_order_report.html:27 -#: report/templates/report/inventree_return_order_report.html:24 -#: report/templates/report/inventree_sales_order_report.html:27 -#: report/templates/report/inventree_stock_location_report.html:102 -#: stock/serializers.py:111 stock/serializers.py:159 stock/serializers.py:446 -#: stock/serializers.py:916 templates/InvenTree/search.html:82 -#: templates/email/build_order_completed.html:17 -#: templates/email/build_order_required_stock.html:17 -#: templates/email/low_stock_notification.html:15 -#: templates/email/overdue_build_order.html:16 -#: templates/js/translated/barcode.js:577 templates/js/translated/bom.js:632 -#: templates/js/translated/bom.js:769 templates/js/translated/bom.js:905 -#: templates/js/translated/build.js:1002 templates/js/translated/build.js:1485 -#: templates/js/translated/build.js:1916 templates/js/translated/build.js:2334 -#: templates/js/translated/build.js:2507 templates/js/translated/company.js:348 -#: templates/js/translated/company.js:1116 -#: templates/js/translated/company.js:1271 -#: templates/js/translated/company.js:1559 templates/js/translated/index.js:109 -#: templates/js/translated/part.js:1950 templates/js/translated/part.js:2022 -#: templates/js/translated/part.js:2330 templates/js/translated/pricing.js:369 -#: templates/js/translated/purchase_order.js:751 -#: templates/js/translated/purchase_order.js:1367 -#: templates/js/translated/purchase_order.js:1918 -#: templates/js/translated/purchase_order.js:2077 -#: templates/js/translated/return_order.js:538 -#: templates/js/translated/return_order.js:708 -#: templates/js/translated/sales_order.js:300 -#: templates/js/translated/sales_order.js:1233 -#: templates/js/translated/sales_order.js:1634 -#: templates/js/translated/sales_order.js:1832 -#: templates/js/translated/stock.js:682 templates/js/translated/stock.js:848 -#: templates/js/translated/stock.js:1065 templates/js/translated/stock.js:2082 -#: templates/js/translated/stock.js:2941 templates/js/translated/stock.js:3174 -#: templates/js/translated/stock.js:3319 -msgid "Part" -msgstr "" - -#: build/models.py:275 +#: build/models.py:274 msgid "Select part to build" msgstr "" -#: build/models.py:280 +#: build/models.py:279 msgid "Sales Order Reference" msgstr "" -#: build/models.py:284 +#: build/models.py:283 msgid "SalesOrder to which this build is allocated" msgstr "" -#: build/models.py:289 build/serializers.py:1048 -#: templates/js/translated/build.js:1904 -#: templates/js/translated/sales_order.js:1221 +#: build/models.py:288 build/serializers.py:1092 +#: templates/js/translated/build.js:1907 +#: templates/js/translated/sales_order.js:1187 msgid "Source Location" msgstr "" -#: build/models.py:293 +#: build/models.py:292 msgid "Select location to take stock from for this build (leave blank to take from any stock location)" msgstr "" -#: build/models.py:298 +#: build/models.py:297 msgid "Destination Location" msgstr "" -#: build/models.py:302 +#: build/models.py:301 msgid "Select location where the completed items will be stored" msgstr "" -#: build/models.py:306 +#: build/models.py:305 msgid "Build Quantity" msgstr "" -#: build/models.py:309 +#: build/models.py:308 msgid "Number of stock items to build" msgstr "" -#: build/models.py:313 +#: build/models.py:312 msgid "Completed items" msgstr "" -#: build/models.py:315 +#: build/models.py:314 msgid "Number of stock items which have been completed" msgstr "" -#: build/models.py:319 +#: build/models.py:318 msgid "Build Status" -msgstr "" +msgstr "Koostamise olek" -#: build/models.py:323 +#: build/models.py:322 msgid "Build status code" msgstr "" -#: build/models.py:332 build/serializers.py:302 build/serializers.py:1198 -#: order/serializers.py:670 stock/models.py:859 stock/serializers.py:76 -#: stock/serializers.py:1562 templates/js/translated/purchase_order.js:1129 +#: build/models.py:331 build/serializers.py:349 build/serializers.py:1243 +#: order/serializers.py:755 stock/models.py:936 stock/serializers.py:77 +#: stock/serializers.py:1593 templates/js/translated/purchase_order.js:1112 #: templates/js/translated/stock.js:1199 msgid "Batch Code" msgstr "" -#: build/models.py:336 build/serializers.py:303 +#: build/models.py:335 build/serializers.py:350 msgid "Batch code for this build output" msgstr "" -#: build/models.py:339 order/models.py:315 order/serializers.py:126 -#: part/models.py:1229 part/templates/part/part_base.html:319 +#: build/models.py:338 order/models.py:322 order/serializers.py:157 +#: part/models.py:1290 part/templates/part/part_base.html:327 #: templates/js/translated/return_order.js:338 -#: templates/js/translated/sales_order.js:863 +#: templates/js/translated/sales_order.js:822 msgid "Creation Date" -msgstr "" +msgstr "Loomise kuupäev" -#: build/models.py:343 +#: build/models.py:342 msgid "Target completion date" msgstr "" -#: build/models.py:344 +#: build/models.py:343 msgid "Target date for build completion. Build will be overdue after this date." msgstr "" -#: build/models.py:347 order/models.py:526 order/models.py:2180 -#: templates/js/translated/build.js:2419 +#: build/models.py:346 order/models.py:538 order/models.py:2219 +#: templates/js/translated/build.js:2422 msgid "Completion Date" msgstr "" -#: build/models.py:353 +#: build/models.py:352 msgid "completed by" msgstr "" -#: build/models.py:361 templates/js/translated/build.js:2379 +#: build/models.py:360 templates/js/translated/build.js:2382 msgid "Issued by" msgstr "" -#: build/models.py:362 +#: build/models.py:361 msgid "User who issued this build order" msgstr "" -#: build/models.py:370 build/templates/build/build_base.html:212 -#: build/templates/build/detail.html:122 common/models.py:165 order/api.py:142 -#: order/models.py:333 order/templates/order/order_base.html:222 -#: order/templates/order/return_order_base.html:191 -#: order/templates/order/sales_order_base.html:235 part/models.py:1246 -#: part/templates/part/part_base.html:399 +#: build/models.py:369 build/templates/build/build_base.html:213 +#: build/templates/build/detail.html:122 common/models.py:168 order/api.py:140 +#: order/models.py:340 order/templates/order/order_base.html:231 +#: order/templates/order/return_order_base.html:192 +#: order/templates/order/sales_order_base.html:236 part/models.py:1307 +#: part/templates/part/part_base.html:407 #: report/templates/report/inventree_build_order_report.html:158 #: templates/InvenTree/settings/settings_staff_js.html:150 -#: templates/js/translated/build.js:2391 -#: templates/js/translated/purchase_order.js:1833 +#: templates/js/translated/build.js:2394 +#: templates/js/translated/purchase_order.js:1817 #: templates/js/translated/return_order.js:358 #: templates/js/translated/table_filters.js:551 msgid "Responsible" msgstr "" -#: build/models.py:371 +#: build/models.py:370 msgid "User or group responsible for this build order" msgstr "" -#: build/models.py:376 build/templates/build/detail.html:108 +#: build/models.py:375 build/templates/build/detail.html:108 #: company/templates/company/manufacturer_part.html:107 -#: company/templates/company/supplier_part.html:194 -#: order/templates/order/order_base.html:172 -#: order/templates/order/return_order_base.html:148 -#: order/templates/order/sales_order_base.html:187 -#: part/templates/part/part_base.html:392 stock/models.py:855 -#: stock/templates/stock/item_base.html:200 -#: templates/js/translated/company.js:1019 +#: company/templates/company/supplier_part.html:195 +#: order/templates/order/order_base.html:181 +#: order/templates/order/return_order_base.html:149 +#: order/templates/order/sales_order_base.html:188 +#: part/templates/part/part_base.html:400 stock/models.py:932 +#: stock/templates/stock/item_base.html:197 +#: templates/js/translated/company.js:1020 msgid "External Link" msgstr "" -#: build/models.py:377 common/models.py:3273 part/models.py:1058 -#: stock/models.py:855 +#: build/models.py:376 common/models.py:3334 part/models.py:1119 +#: stock/models.py:932 msgid "Link to external URL" msgstr "" -#: build/models.py:381 +#: build/models.py:380 msgid "Build Priority" msgstr "" -#: build/models.py:384 +#: build/models.py:383 msgid "Priority of this build order" msgstr "" -#: build/models.py:391 common/models.py:135 common/models.py:149 -#: order/admin.py:18 order/api.py:128 order/models.py:297 +#: build/models.py:390 common/models.py:138 common/models.py:152 +#: order/admin.py:18 order/api.py:126 order/models.py:304 #: templates/InvenTree/settings/settings_staff_js.html:146 -#: templates/js/translated/build.js:2316 -#: templates/js/translated/purchase_order.js:1780 +#: templates/js/translated/build.js:2319 +#: templates/js/translated/purchase_order.js:1764 #: templates/js/translated/return_order.js:317 -#: templates/js/translated/sales_order.js:842 +#: templates/js/translated/sales_order.js:801 #: templates/js/translated/table_filters.js:47 #: templates/project_code_data.html:6 msgid "Project Code" msgstr "" -#: build/models.py:392 +#: build/models.py:391 msgid "Project code for this build order" msgstr "" -#: build/models.py:651 build/models.py:778 +#: build/models.py:651 build/models.py:779 msgid "Failed to offload task to complete build allocations" msgstr "" @@ -1110,633 +1129,642 @@ msgstr "" msgid "A build order has been completed" msgstr "" -#: build/models.py:967 build/models.py:1055 +#: build/models.py:858 build/serializers.py:393 +msgid "Serial numbers must be provided for trackable parts" +msgstr "" + +#: build/models.py:969 build/models.py:1058 msgid "No build output specified" msgstr "" -#: build/models.py:970 +#: build/models.py:972 msgid "Build output is already completed" msgstr "" -#: build/models.py:973 +#: build/models.py:975 msgid "Build output does not match Build Order" msgstr "" -#: build/models.py:1059 build/serializers.py:235 build/serializers.py:284 -#: build/serializers.py:915 order/models.py:564 order/serializers.py:499 -#: order/serializers.py:665 part/serializers.py:1569 part/serializers.py:1999 -#: stock/models.py:700 stock/models.py:1520 stock/serializers.py:669 +#: build/models.py:1062 build/serializers.py:282 build/serializers.py:331 +#: build/serializers.py:959 order/models.py:586 order/serializers.py:584 +#: order/serializers.py:750 part/serializers.py:1627 part/serializers.py:2060 +#: stock/models.py:777 stock/models.py:1609 stock/serializers.py:696 msgid "Quantity must be greater than zero" msgstr "" -#: build/models.py:1064 build/serializers.py:240 +#: build/models.py:1067 build/serializers.py:287 msgid "Quantity cannot be greater than the output quantity" msgstr "" -#: build/models.py:1124 build/serializers.py:563 +#: build/models.py:1127 build/serializers.py:607 #, python-brace-format msgid "Build output {serial} has not passed all required tests" msgstr "" -#: build/models.py:1465 +#: build/models.py:1482 msgid "Build Order Line Item" msgstr "" -#: build/models.py:1490 +#: build/models.py:1507 msgid "Build object" msgstr "" -#: build/models.py:1504 build/models.py:1760 build/serializers.py:222 -#: build/serializers.py:269 build/serializers.py:1295 -#: build/templates/build/build_base.html:110 -#: build/templates/build/detail.html:34 common/models.py:2579 -#: order/models.py:1356 order/models.py:2041 order/serializers.py:1460 +#: build/models.py:1521 build/models.py:1787 build/serializers.py:269 +#: build/serializers.py:316 build/serializers.py:1349 +#: build/templates/build/build_base.html:111 +#: build/templates/build/detail.html:34 common/models.py:2643 +#: order/models.py:1373 order/models.py:2074 order/serializers.py:1586 #: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:413 -#: part/forms.py:48 part/models.py:3284 part/models.py:4253 -#: part/templates/part/part_pricing.html:16 +#: part/forms.py:48 part/models.py:3335 part/models.py:4310 +#: part/serializers.py:265 part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_bill_of_materials_report.html:138 #: report/templates/report/inventree_build_order_report.html:113 #: report/templates/report/inventree_purchase_order_report.html:29 #: report/templates/report/inventree_sales_order_report.html:29 +#: report/templates/report/inventree_sales_order_shipment_report.html:47 +#: report/templates/report/inventree_sales_order_shipment_report.html:49 #: report/templates/report/inventree_stock_location_report.html:104 #: report/templates/report/inventree_test_report.html:90 -#: report/templates/report/inventree_test_report.html:169 stock/admin.py:159 -#: stock/serializers.py:127 stock/serializers.py:167 stock/serializers.py:660 -#: stock/templates/stock/item_base.html:287 -#: stock/templates/stock/item_base.html:295 -#: stock/templates/stock/item_base.html:342 +#: report/templates/report/inventree_test_report.html:169 stock/admin.py:160 +#: stock/serializers.py:128 stock/serializers.py:168 stock/serializers.py:687 +#: stock/templates/stock/item_base.html:284 +#: stock/templates/stock/item_base.html:292 +#: stock/templates/stock/item_base.html:339 #: templates/email/build_order_completed.html:18 #: templates/js/translated/barcode.js:579 templates/js/translated/bom.js:771 -#: templates/js/translated/bom.js:981 templates/js/translated/build.js:522 -#: templates/js/translated/build.js:737 templates/js/translated/build.js:1542 -#: templates/js/translated/build.js:1919 templates/js/translated/build.js:2529 -#: templates/js/translated/company.js:1818 -#: templates/js/translated/model_renderers.js:237 +#: templates/js/translated/bom.js:981 templates/js/translated/build.js:525 +#: templates/js/translated/build.js:740 templates/js/translated/build.js:1545 +#: templates/js/translated/build.js:1922 templates/js/translated/build.js:2536 +#: templates/js/translated/company.js:1819 +#: templates/js/translated/model_renderers.js:240 #: templates/js/translated/order.js:329 templates/js/translated/part.js:968 -#: templates/js/translated/part.js:1818 templates/js/translated/part.js:3360 +#: templates/js/translated/part.js:1818 templates/js/translated/part.js:3376 #: templates/js/translated/pricing.js:381 #: templates/js/translated/pricing.js:474 #: templates/js/translated/pricing.js:522 #: templates/js/translated/pricing.js:616 -#: templates/js/translated/purchase_order.js:754 -#: templates/js/translated/purchase_order.js:1922 -#: templates/js/translated/purchase_order.js:2141 -#: templates/js/translated/sales_order.js:317 -#: templates/js/translated/sales_order.js:1235 -#: templates/js/translated/sales_order.js:1554 -#: templates/js/translated/sales_order.js:1644 -#: templates/js/translated/sales_order.js:1734 -#: templates/js/translated/sales_order.js:1860 +#: templates/js/translated/purchase_order.js:737 +#: templates/js/translated/purchase_order.js:1906 +#: templates/js/translated/purchase_order.js:2125 +#: templates/js/translated/sales_order.js:1201 +#: templates/js/translated/sales_order.js:1520 +#: templates/js/translated/sales_order.js:1625 +#: templates/js/translated/sales_order.js:1715 +#: templates/js/translated/sales_order.js:1841 #: templates/js/translated/stock.js:570 templates/js/translated/stock.js:708 -#: templates/js/translated/stock.js:879 templates/js/translated/stock.js:3105 -#: templates/js/translated/stock.js:3188 +#: templates/js/translated/stock.js:879 templates/js/translated/stock.js:3106 +#: templates/js/translated/stock.js:3189 msgid "Quantity" -msgstr "" +msgstr "Kogus" -#: build/models.py:1505 +#: build/models.py:1522 msgid "Required quantity for build order" msgstr "" -#: build/models.py:1585 +#: build/models.py:1602 msgid "Build item must specify a build output, as master part is marked as trackable" msgstr "" -#: build/models.py:1594 +#: build/models.py:1611 #, python-brace-format msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgstr "" -#: build/models.py:1604 order/models.py:1992 +#: build/models.py:1628 order/models.py:2025 msgid "Stock item is over-allocated" msgstr "" -#: build/models.py:1610 order/models.py:1995 +#: build/models.py:1634 order/models.py:2028 msgid "Allocation quantity must be greater than zero" msgstr "" -#: build/models.py:1616 +#: build/models.py:1640 msgid "Quantity must be 1 for serialized stock" msgstr "" -#: build/models.py:1675 +#: build/models.py:1699 msgid "Selected stock item does not match BOM line" msgstr "" -#: build/models.py:1747 build/serializers.py:895 order/serializers.py:1297 -#: order/serializers.py:1318 stock/models.py:376 stock/serializers.py:93 -#: stock/serializers.py:763 stock/serializers.py:1281 stock/serializers.py:1393 -#: stock/templates/stock/item_base.html:10 -#: stock/templates/stock/item_base.html:23 -#: stock/templates/stock/item_base.html:194 -#: templates/js/translated/build.js:1918 -#: templates/js/translated/sales_order.js:301 -#: templates/js/translated/sales_order.js:1234 -#: templates/js/translated/sales_order.js:1535 -#: templates/js/translated/sales_order.js:1540 -#: templates/js/translated/sales_order.js:1641 -#: templates/js/translated/sales_order.js:1728 +#: build/models.py:1774 build/serializers.py:939 order/serializers.py:1423 +#: order/serializers.py:1444 +#: report/templates/report/inventree_sales_order_shipment_report.html:29 +#: stock/models.py:382 stock/serializers.py:94 stock/serializers.py:794 +#: stock/serializers.py:1312 stock/serializers.py:1424 +#: stock/templates/stock/item_base.html:11 +#: stock/templates/stock/item_base.html:24 +#: stock/templates/stock/item_base.html:191 +#: templates/js/translated/build.js:1921 +#: templates/js/translated/sales_order.js:1200 +#: templates/js/translated/sales_order.js:1501 +#: templates/js/translated/sales_order.js:1506 +#: templates/js/translated/sales_order.js:1622 +#: templates/js/translated/sales_order.js:1709 #: templates/js/translated/stock.js:683 templates/js/translated/stock.js:849 -#: templates/js/translated/stock.js:3061 +#: templates/js/translated/stock.js:3062 msgid "Stock Item" msgstr "" -#: build/models.py:1748 +#: build/models.py:1775 msgid "Source stock item" msgstr "" -#: build/models.py:1761 +#: build/models.py:1788 msgid "Stock quantity to allocate to build" msgstr "" -#: build/models.py:1769 +#: build/models.py:1796 msgid "Install into" msgstr "" -#: build/models.py:1770 +#: build/models.py:1797 msgid "Destination stock item" msgstr "" -#: build/serializers.py:91 +#: build/serializers.py:108 msgid "Build Level" msgstr "" -#: build/serializers.py:99 build/serializers.py:1190 build/serializers.py:1279 -#: part/admin.py:41 part/admin.py:408 part/models.py:4102 part/stocktake.py:219 -#: stock/admin.py:156 +#: build/serializers.py:116 build/serializers.py:1235 build/serializers.py:1331 +#: part/admin.py:41 part/admin.py:408 part/models.py:4160 part/stocktake.py:219 +#: stock/admin.py:157 msgid "Part Name" msgstr "" -#: build/serializers.py:111 +#: build/serializers.py:128 msgid "Project Code Label" msgstr "" -#: build/serializers.py:172 build/serializers.py:924 -#: templates/js/translated/build.js:1042 templates/js/translated/build.js:1495 +#: build/serializers.py:134 +msgid "Create Child Builds" +msgstr "" + +#: build/serializers.py:135 +msgid "Automatically generate child build orders" +msgstr "" + +#: build/serializers.py:219 build/serializers.py:968 +#: templates/js/translated/build.js:1045 templates/js/translated/build.js:1498 msgid "Build Output" msgstr "" -#: build/serializers.py:184 +#: build/serializers.py:231 msgid "Build output does not match the parent build" msgstr "" -#: build/serializers.py:188 +#: build/serializers.py:235 msgid "Output part does not match BuildOrder part" msgstr "" -#: build/serializers.py:192 +#: build/serializers.py:239 msgid "This build output has already been completed" msgstr "" -#: build/serializers.py:203 +#: build/serializers.py:250 msgid "This build output is not fully allocated" msgstr "" -#: build/serializers.py:223 build/serializers.py:270 +#: build/serializers.py:270 build/serializers.py:317 msgid "Enter quantity for build output" msgstr "" -#: build/serializers.py:291 +#: build/serializers.py:338 msgid "Integer quantity required for trackable parts" msgstr "" -#: build/serializers.py:294 +#: build/serializers.py:341 msgid "Integer quantity required, as the bill of materials contains trackable parts" msgstr "" -#: build/serializers.py:309 order/serializers.py:678 order/serializers.py:1464 -#: stock/serializers.py:680 templates/js/translated/purchase_order.js:1154 +#: build/serializers.py:356 order/serializers.py:763 order/serializers.py:1590 +#: stock/serializers.py:707 templates/js/translated/purchase_order.js:1137 #: templates/js/translated/stock.js:373 templates/js/translated/stock.js:571 msgid "Serial Numbers" msgstr "" -#: build/serializers.py:310 +#: build/serializers.py:357 msgid "Enter serial numbers for build outputs" msgstr "" -#: build/serializers.py:315 build/serializers.py:456 build/serializers.py:528 -#: order/serializers.py:654 order/serializers.py:778 order/serializers.py:1781 -#: part/serializers.py:1212 stock/serializers.py:102 stock/serializers.py:691 -#: stock/serializers.py:851 stock/serializers.py:977 stock/serializers.py:1425 -#: stock/serializers.py:1681 stock/templates/stock/item_base.html:394 +#: build/serializers.py:362 build/serializers.py:500 build/serializers.py:572 +#: order/serializers.py:739 order/serializers.py:880 order/serializers.py:1933 +#: part/serializers.py:1265 stock/serializers.py:103 stock/serializers.py:718 +#: stock/serializers.py:882 stock/serializers.py:1008 stock/serializers.py:1456 +#: stock/serializers.py:1712 stock/templates/stock/item_base.html:391 #: templates/js/translated/barcode.js:578 -#: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1032 -#: templates/js/translated/build.js:1174 templates/js/translated/build.js:2544 -#: templates/js/translated/purchase_order.js:1210 -#: templates/js/translated/purchase_order.js:1320 -#: templates/js/translated/sales_order.js:1547 -#: templates/js/translated/sales_order.js:1655 -#: templates/js/translated/sales_order.js:1663 -#: templates/js/translated/sales_order.js:1742 +#: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1035 +#: templates/js/translated/build.js:1177 templates/js/translated/build.js:2551 +#: templates/js/translated/purchase_order.js:1193 +#: templates/js/translated/purchase_order.js:1303 +#: templates/js/translated/sales_order.js:1513 +#: templates/js/translated/sales_order.js:1636 +#: templates/js/translated/sales_order.js:1644 +#: templates/js/translated/sales_order.js:1723 #: templates/js/translated/stock.js:684 templates/js/translated/stock.js:850 -#: templates/js/translated/stock.js:1067 templates/js/translated/stock.js:2286 -#: templates/js/translated/stock.js:2955 +#: templates/js/translated/stock.js:1067 templates/js/translated/stock.js:2287 +#: templates/js/translated/stock.js:2956 msgid "Location" -msgstr "" +msgstr "Asukoht" -#: build/serializers.py:316 +#: build/serializers.py:363 msgid "Stock location for build output" msgstr "" -#: build/serializers.py:330 +#: build/serializers.py:377 msgid "Auto Allocate Serial Numbers" msgstr "" -#: build/serializers.py:331 +#: build/serializers.py:378 msgid "Automatically allocate required items with matching serial numbers" msgstr "" -#: build/serializers.py:346 -msgid "Serial numbers must be provided for trackable parts" -msgstr "" - -#: build/serializers.py:371 stock/api.py:1031 +#: build/serializers.py:415 order/serializers.py:858 stock/api.py:1017 +#: stock/models.py:1632 msgid "The following serial numbers already exist or are invalid" msgstr "" -#: build/serializers.py:418 build/serializers.py:480 build/serializers.py:569 +#: build/serializers.py:462 build/serializers.py:524 build/serializers.py:613 msgid "A list of build outputs must be provided" msgstr "" -#: build/serializers.py:457 +#: build/serializers.py:501 msgid "Stock location for scrapped outputs" msgstr "" -#: build/serializers.py:463 +#: build/serializers.py:507 msgid "Discard Allocations" msgstr "" -#: build/serializers.py:464 +#: build/serializers.py:508 msgid "Discard any stock allocations for scrapped outputs" -msgstr "" +msgstr "Tühista kõik laoseisu eraldised mahakantud väljundite jaoks" -#: build/serializers.py:469 +#: build/serializers.py:513 msgid "Reason for scrapping build output(s)" msgstr "" -#: build/serializers.py:529 +#: build/serializers.py:573 msgid "Location for completed build outputs" msgstr "" -#: build/serializers.py:535 build/templates/build/build_base.html:159 -#: build/templates/build/detail.html:62 order/models.py:476 -#: order/models.py:1002 order/models.py:2159 order/serializers.py:686 -#: stock/admin.py:164 stock/serializers.py:1028 stock/serializers.py:1569 -#: stock/templates/stock/item_base.html:427 -#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2363 -#: templates/js/translated/purchase_order.js:1371 -#: templates/js/translated/purchase_order.js:1792 +#: build/serializers.py:579 build/templates/build/build_base.html:160 +#: build/templates/build/detail.html:62 order/models.py:488 +#: order/models.py:1029 order/models.py:2198 order/serializers.py:771 +#: stock/admin.py:165 stock/serializers.py:581 stock/serializers.py:1059 +#: stock/serializers.py:1600 stock/templates/stock/item_base.html:424 +#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2366 +#: templates/js/translated/purchase_order.js:1354 +#: templates/js/translated/purchase_order.js:1776 #: templates/js/translated/return_order.js:330 -#: templates/js/translated/sales_order.js:855 -#: templates/js/translated/stock.js:2261 templates/js/translated/stock.js:3079 -#: templates/js/translated/stock.js:3204 +#: templates/js/translated/sales_order.js:814 +#: templates/js/translated/stock.js:2262 templates/js/translated/stock.js:3080 +#: templates/js/translated/stock.js:3205 msgid "Status" -msgstr "" +msgstr "Staatus" -#: build/serializers.py:541 +#: build/serializers.py:585 msgid "Accept Incomplete Allocation" msgstr "" -#: build/serializers.py:542 +#: build/serializers.py:586 msgid "Complete outputs if stock has not been fully allocated" msgstr "" -#: build/serializers.py:654 +#: build/serializers.py:698 msgid "Consume Allocated Stock" msgstr "" -#: build/serializers.py:655 +#: build/serializers.py:699 msgid "Consume any stock which has already been allocated to this build" msgstr "" -#: build/serializers.py:661 +#: build/serializers.py:705 msgid "Remove Incomplete Outputs" msgstr "" -#: build/serializers.py:662 +#: build/serializers.py:706 msgid "Delete any build outputs which have not been completed" msgstr "" -#: build/serializers.py:689 +#: build/serializers.py:733 msgid "Not permitted" msgstr "" -#: build/serializers.py:690 +#: build/serializers.py:734 msgid "Accept as consumed by this build order" msgstr "" -#: build/serializers.py:691 +#: build/serializers.py:735 msgid "Deallocate before completing this build order" msgstr "" -#: build/serializers.py:721 +#: build/serializers.py:765 msgid "Overallocated Stock" msgstr "" -#: build/serializers.py:723 +#: build/serializers.py:767 msgid "How do you want to handle extra stock items assigned to the build order" msgstr "" -#: build/serializers.py:733 +#: build/serializers.py:777 msgid "Some stock items have been overallocated" msgstr "" -#: build/serializers.py:738 +#: build/serializers.py:782 msgid "Accept Unallocated" msgstr "" -#: build/serializers.py:739 +#: build/serializers.py:783 msgid "Accept that stock items have not been fully allocated to this build order" msgstr "" -#: build/serializers.py:749 templates/js/translated/build.js:316 +#: build/serializers.py:793 templates/js/translated/build.js:319 msgid "Required stock has not been fully allocated" msgstr "" -#: build/serializers.py:754 order/serializers.py:345 order/serializers.py:1365 +#: build/serializers.py:798 order/serializers.py:430 order/serializers.py:1491 msgid "Accept Incomplete" msgstr "" -#: build/serializers.py:755 +#: build/serializers.py:799 msgid "Accept that the required number of build outputs have not been completed" msgstr "" -#: build/serializers.py:765 templates/js/translated/build.js:320 +#: build/serializers.py:809 templates/js/translated/build.js:323 msgid "Required build quantity has not been completed" msgstr "" -#: build/serializers.py:774 +#: build/serializers.py:818 msgid "Build order has open child build orders" msgstr "" -#: build/serializers.py:777 +#: build/serializers.py:821 msgid "Build order must be in production state" msgstr "" -#: build/serializers.py:780 templates/js/translated/build.js:304 +#: build/serializers.py:824 templates/js/translated/build.js:307 msgid "Build order has incomplete outputs" msgstr "" -#: build/serializers.py:818 +#: build/serializers.py:862 msgid "Build Line" msgstr "" -#: build/serializers.py:828 +#: build/serializers.py:872 msgid "Build output" msgstr "" -#: build/serializers.py:836 +#: build/serializers.py:880 msgid "Build output must point to the same build" msgstr "" -#: build/serializers.py:872 +#: build/serializers.py:916 msgid "Build Line Item" msgstr "" -#: build/serializers.py:886 +#: build/serializers.py:930 msgid "bom_item.part must point to the same part as the build order" msgstr "" -#: build/serializers.py:901 stock/serializers.py:1294 +#: build/serializers.py:945 stock/serializers.py:1325 msgid "Item must be in stock" msgstr "" -#: build/serializers.py:949 order/serializers.py:1351 +#: build/serializers.py:993 order/serializers.py:1477 #, python-brace-format msgid "Available quantity ({q}) exceeded" msgstr "" -#: build/serializers.py:955 +#: build/serializers.py:999 msgid "Build output must be specified for allocation of tracked parts" msgstr "" -#: build/serializers.py:962 +#: build/serializers.py:1006 msgid "Build output cannot be specified for allocation of untracked parts" msgstr "" -#: build/serializers.py:986 order/serializers.py:1610 +#: build/serializers.py:1030 order/serializers.py:1750 msgid "Allocation items must be provided" msgstr "" -#: build/serializers.py:1049 +#: build/serializers.py:1093 msgid "Stock location where parts are to be sourced (leave blank to take from any location)" msgstr "" -#: build/serializers.py:1057 +#: build/serializers.py:1101 msgid "Exclude Location" msgstr "" -#: build/serializers.py:1058 +#: build/serializers.py:1102 msgid "Exclude stock items from this selected location" msgstr "" -#: build/serializers.py:1063 +#: build/serializers.py:1107 msgid "Interchangeable Stock" msgstr "" -#: build/serializers.py:1064 +#: build/serializers.py:1108 msgid "Stock items in multiple locations can be used interchangeably" msgstr "" -#: build/serializers.py:1069 +#: build/serializers.py:1113 msgid "Substitute Stock" msgstr "" -#: build/serializers.py:1070 +#: build/serializers.py:1114 msgid "Allow allocation of substitute parts" msgstr "" -#: build/serializers.py:1075 +#: build/serializers.py:1119 msgid "Optional Items" -msgstr "" +msgstr "Valikained" -#: build/serializers.py:1076 +#: build/serializers.py:1120 msgid "Allocate optional BOM items to build order" msgstr "" -#: build/serializers.py:1098 +#: build/serializers.py:1143 msgid "Failed to start auto-allocation task" msgstr "" -#: build/serializers.py:1181 +#: build/serializers.py:1226 stock/serializers.py:585 msgid "Supplier Part Number" msgstr "Tarnija osa number" -#: build/serializers.py:1182 company/models.py:506 +#: build/serializers.py:1227 company/models.py:503 stock/serializers.py:591 msgid "Manufacturer Part Number" msgstr "" -#: build/serializers.py:1183 stock/admin.py:53 stock/admin.py:175 -#: stock/serializers.py:457 +#: build/serializers.py:1228 stock/admin.py:53 stock/admin.py:176 +#: stock/serializers.py:467 msgid "Location Name" -msgstr "" +msgstr "Asukoha Nimi" -#: build/serializers.py:1184 +#: build/serializers.py:1229 build/serializers.py:1327 msgid "Build Reference" msgstr "" -#: build/serializers.py:1185 +#: build/serializers.py:1230 msgid "BOM Reference" msgstr "" -#: build/serializers.py:1186 company/models.py:852 -#: company/templates/company/supplier_part.html:160 order/serializers.py:690 -#: stock/admin.py:228 stock/models.py:818 stock/serializers.py:1579 -#: stock/templates/stock/item_base.html:240 -#: templates/js/translated/company.js:1646 -#: templates/js/translated/purchase_order.js:1169 -#: templates/js/translated/purchase_order.js:1332 +#: build/serializers.py:1231 company/models.py:849 +#: company/templates/company/supplier_part.html:161 order/serializers.py:775 +#: stock/admin.py:229 stock/models.py:895 stock/serializers.py:1610 +#: stock/templates/stock/item_base.html:237 +#: templates/js/translated/company.js:1647 +#: templates/js/translated/purchase_order.js:1152 +#: templates/js/translated/purchase_order.js:1315 #: templates/js/translated/stock.js:1214 templates/js/translated/stock.js:1246 -#: templates/js/translated/stock.js:2509 +#: templates/js/translated/stock.js:2510 msgid "Packaging" msgstr "" -#: build/serializers.py:1189 part/admin.py:39 part/admin.py:398 -#: part/models.py:4101 part/stocktake.py:218 stock/admin.py:152 +#: build/serializers.py:1234 part/admin.py:39 part/admin.py:398 +#: part/models.py:4159 part/stocktake.py:218 stock/admin.py:153 msgid "Part ID" msgstr "Osa ID" -#: build/serializers.py:1191 build/serializers.py:1280 part/admin.py:402 -#: part/models.py:4103 +#: build/serializers.py:1236 build/serializers.py:1332 part/admin.py:402 +#: part/models.py:4161 msgid "Part IPN" msgstr "" -#: build/serializers.py:1192 build/serializers.py:1282 part/admin.py:45 +#: build/serializers.py:1237 build/serializers.py:1334 part/admin.py:45 #: part/stocktake.py:220 msgid "Part Description" msgstr "" -#: build/serializers.py:1195 +#: build/serializers.py:1240 msgid "BOM Part ID" msgstr "" -#: build/serializers.py:1196 +#: build/serializers.py:1241 msgid "BOM Part Name" msgstr "" -#: build/serializers.py:1199 +#: build/serializers.py:1244 #: report/templates/report/inventree_return_order_report.html:25 -#: report/templates/report/inventree_test_report.html:88 stock/models.py:845 -#: stock/serializers.py:151 stock/templates/stock/item_base.html:311 -#: templates/js/translated/build.js:520 templates/js/translated/build.js:1540 -#: templates/js/translated/build.js:2527 -#: templates/js/translated/model_renderers.js:231 +#: report/templates/report/inventree_sales_order_shipment_report.html:45 +#: report/templates/report/inventree_test_report.html:88 stock/models.py:922 +#: stock/serializers.py:152 stock/templates/stock/item_base.html:308 +#: templates/js/translated/build.js:523 templates/js/translated/build.js:1543 +#: templates/js/translated/build.js:2534 +#: templates/js/translated/model_renderers.js:234 #: templates/js/translated/return_order.js:539 #: templates/js/translated/return_order.js:722 -#: templates/js/translated/sales_order.js:315 -#: templates/js/translated/sales_order.js:1647 -#: templates/js/translated/sales_order.js:1732 +#: templates/js/translated/sales_order.js:1628 +#: templates/js/translated/sales_order.js:1713 #: templates/js/translated/stock.js:602 msgid "Serial Number" msgstr "Seerianumber" -#: build/serializers.py:1212 stock/serializers.py:593 -#: templates/js/translated/build.js:1017 templates/js/translated/build.js:1164 -#: templates/js/translated/build.js:2516 +#: build/serializers.py:1257 stock/serializers.py:620 +#: templates/js/translated/build.js:1020 templates/js/translated/build.js:1167 +#: templates/js/translated/build.js:2523 msgid "Allocated Quantity" msgstr "" -#: build/serializers.py:1213 stock/templates/stock/item_base.html:340 +#: build/serializers.py:1258 stock/templates/stock/item_base.html:337 msgid "Available Quantity" -msgstr "" +msgstr "Saadaolev kogus" -#: build/serializers.py:1283 +#: build/serializers.py:1335 msgid "Part Category ID" msgstr "" -#: build/serializers.py:1284 +#: build/serializers.py:1336 msgid "Part Category Name" msgstr "" -#: build/serializers.py:1291 common/models.py:1513 part/admin.py:113 -#: part/models.py:1166 templates/js/translated/table_filters.js:150 +#: build/serializers.py:1345 common/models.py:1582 part/admin.py:113 +#: part/models.py:1227 templates/js/translated/build.js:2738 +#: templates/js/translated/table_filters.js:150 #: templates/js/translated/table_filters.js:230 #: templates/js/translated/table_filters.js:783 msgid "Trackable" -msgstr "" +msgstr "Jälgitav" -#: build/serializers.py:1292 +#: build/serializers.py:1346 msgid "Inherited" msgstr "" -#: build/serializers.py:1293 part/models.py:4313 +#: build/serializers.py:1347 part/models.py:4370 #: part/templates/part/upload_bom.html:56 templates/js/translated/bom.js:1046 -#: templates/js/translated/build.js:2711 +#: templates/js/translated/build.js:2720 msgid "Allow Variants" msgstr "" -#: build/serializers.py:1297 part/models.py:4110 part/models.py:4584 +#: build/serializers.py:1351 part/models.py:4168 part/models.py:4646 #: stock/api.py:794 msgid "BOM Item" msgstr "" -#: build/serializers.py:1306 build/templates/build/detail.html:236 +#: build/serializers.py:1370 build/templates/build/detail.html:236 #: build/templates/build/sidebar.html:16 templates/js/translated/index.js:130 msgid "Allocated Stock" msgstr "" -#: build/serializers.py:1311 order/serializers.py:1175 part/admin.py:132 -#: part/bom.py:181 part/serializers.py:899 part/serializers.py:1602 -#: part/templates/part/part_base.html:210 templates/js/translated/bom.js:1208 -#: templates/js/translated/build.js:2804 templates/js/translated/part.js:712 +#: build/serializers.py:1375 order/serializers.py:1209 part/admin.py:132 +#: part/bom.py:186 part/serializers.py:951 part/serializers.py:1660 +#: part/templates/part/part_base.html:211 templates/js/translated/bom.js:1208 +#: templates/js/translated/build.js:2822 templates/js/translated/part.js:712 #: templates/js/translated/part.js:2155 #: templates/js/translated/table_filters.js:177 msgid "On Order" msgstr "" -#: build/serializers.py:1316 order/serializers.py:1176 part/serializers.py:1604 -#: templates/js/translated/build.js:2808 +#: build/serializers.py:1380 order/serializers.py:1210 part/serializers.py:1662 +#: templates/js/translated/build.js:2826 #: templates/js/translated/table_filters.js:367 msgid "In Production" msgstr "" -#: build/serializers.py:1321 part/bom.py:180 part/serializers.py:1629 -#: part/templates/part/part_base.html:192 -#: templates/js/translated/sales_order.js:1929 -msgid "Available Stock" -msgstr "" - -#: build/serializers.py:1325 -msgid "Available Substitute Stock" -msgstr "" - -#: build/serializers.py:1326 -msgid "Available Variant Stock" -msgstr "" - -#: build/serializers.py:1327 -msgid "Total Available Stock" -msgstr "" - -#: build/serializers.py:1328 part/serializers.py:906 +#: build/serializers.py:1384 part/serializers.py:958 msgid "External Stock" msgstr "" -#: build/status_codes.py:11 generic/states/tests.py:17 order/status_codes.py:12 -#: order/status_codes.py:42 order/status_codes.py:74 order/status_codes.py:98 +#: build/serializers.py:1385 part/bom.py:185 part/serializers.py:1687 +#: part/templates/part/part_base.html:193 +#: templates/js/translated/sales_order.js:1910 +msgid "Available Stock" +msgstr "Saadaval laos" + +#: build/serializers.py:1386 +msgid "Available Substitute Stock" +msgstr "" + +#: build/serializers.py:1387 +msgid "Available Variant Stock" +msgstr "" + +#: build/status_codes.py:11 generic/states/tests.py:21 +#: generic/states/tests.py:131 order/status_codes.py:12 +#: order/status_codes.py:44 order/status_codes.py:76 order/status_codes.py:102 #: templates/js/translated/table_filters.js:601 msgid "Pending" msgstr "Ootel" #: build/status_codes.py:12 msgid "Production" -msgstr "" +msgstr "Tootmine" -#: build/status_codes.py:13 order/status_codes.py:14 order/status_codes.py:49 -#: order/status_codes.py:79 +#: build/status_codes.py:13 order/status_codes.py:14 order/status_codes.py:51 +#: order/status_codes.py:81 msgid "On Hold" msgstr "" -#: build/status_codes.py:14 order/status_codes.py:16 order/status_codes.py:51 -#: order/status_codes.py:82 +#: build/status_codes.py:14 order/status_codes.py:16 order/status_codes.py:53 +#: order/status_codes.py:84 msgid "Cancelled" msgstr "Katkestatud" -#: build/status_codes.py:15 generic/states/tests.py:19 importer/models.py:509 -#: importer/status_codes.py:19 order/status_codes.py:15 -#: order/status_codes.py:50 order/status_codes.py:81 -#: order/templates/order/order_base.html:163 -#: order/templates/order/sales_order_base.html:168 report/models.py:443 +#: build/status_codes.py:15 generic/states/tests.py:23 importer/models.py:518 +#: importer/status_codes.py:27 order/status_codes.py:15 +#: order/status_codes.py:52 order/status_codes.py:83 +#: order/templates/order/order_base.html:172 +#: order/templates/order/sales_order_base.html:169 report/models.py:451 msgid "Complete" msgstr "Valmis" @@ -1744,165 +1772,162 @@ msgstr "Valmis" msgid "Stock required for build order" msgstr "" -#: build/tasks.py:201 +#: build/tasks.py:260 msgid "Overdue Build Order" msgstr "" -#: build/tasks.py:206 +#: build/tasks.py:265 #, python-brace-format msgid "Build order {bo} is now overdue" msgstr "" -#: build/templates/build/build_base.html:18 +#: build/templates/build/build_base.html:19 msgid "Part thumbnail" msgstr "" -#: build/templates/build/build_base.html:38 -#: company/templates/company/supplier_part.html:35 -#: order/templates/order/order_base.html:29 -#: order/templates/order/return_order_base.html:38 -#: order/templates/order/sales_order_base.html:38 -#: part/templates/part/part_base.html:41 -#: stock/templates/stock/item_base.html:40 -#: stock/templates/stock/location.html:52 +#: build/templates/build/build_base.html:39 +#: company/templates/company/supplier_part.html:36 +#: order/templates/order/order_base.html:30 +#: order/templates/order/return_order_base.html:39 +#: order/templates/order/sales_order_base.html:39 +#: part/templates/part/part_base.html:42 +#: stock/templates/stock/item_base.html:41 +#: stock/templates/stock/location.html:53 #: templates/js/translated/filters.js:338 msgid "Barcode actions" msgstr "" -#: build/templates/build/build_base.html:42 -#: company/templates/company/supplier_part.html:39 -#: order/templates/order/order_base.html:33 -#: order/templates/order/return_order_base.html:42 -#: order/templates/order/sales_order_base.html:42 -#: part/templates/part/part_base.html:44 -#: stock/templates/stock/item_base.html:44 -#: stock/templates/stock/location.html:54 templates/qr_button.html:1 +#: build/templates/build/build_base.html:43 +#: company/templates/company/supplier_part.html:40 +#: order/templates/order/order_base.html:34 +#: order/templates/order/return_order_base.html:43 +#: order/templates/order/sales_order_base.html:43 +#: part/templates/part/part_base.html:45 +#: stock/templates/stock/item_base.html:45 +#: stock/templates/stock/location.html:55 templates/qr_button.html:1 msgid "Show QR Code" msgstr "" -#: build/templates/build/build_base.html:45 -#: company/templates/company/supplier_part.html:41 -#: order/templates/order/order_base.html:36 -#: order/templates/order/return_order_base.html:45 -#: order/templates/order/sales_order_base.html:45 -#: part/templates/part/part_base.html:47 -#: stock/templates/stock/item_base.html:47 -#: stock/templates/stock/location.html:56 +#: build/templates/build/build_base.html:46 +#: company/templates/company/supplier_part.html:42 +#: order/templates/order/order_base.html:37 +#: order/templates/order/return_order_base.html:46 +#: order/templates/order/sales_order_base.html:46 +#: part/templates/part/part_base.html:48 +#: stock/templates/stock/item_base.html:48 +#: stock/templates/stock/location.html:57 #: templates/js/translated/barcode.js:527 #: templates/js/translated/barcode.js:532 msgid "Unlink Barcode" msgstr "" -#: build/templates/build/build_base.html:47 -#: company/templates/company/supplier_part.html:43 -#: order/templates/order/order_base.html:38 -#: order/templates/order/return_order_base.html:47 -#: order/templates/order/sales_order_base.html:47 -#: part/templates/part/part_base.html:49 -#: stock/templates/stock/item_base.html:49 -#: stock/templates/stock/location.html:58 +#: build/templates/build/build_base.html:48 +#: company/templates/company/supplier_part.html:44 +#: order/templates/order/order_base.html:39 +#: order/templates/order/return_order_base.html:48 +#: order/templates/order/sales_order_base.html:48 +#: part/templates/part/part_base.html:50 +#: stock/templates/stock/item_base.html:50 +#: stock/templates/stock/location.html:59 msgid "Link Barcode" msgstr "" -#: build/templates/build/build_base.html:56 -#: order/templates/order/order_base.html:46 -#: order/templates/order/return_order_base.html:55 -#: order/templates/order/sales_order_base.html:55 +#: build/templates/build/build_base.html:57 +#: order/templates/order/order_base.html:47 +#: order/templates/order/return_order_base.html:56 +#: order/templates/order/sales_order_base.html:56 msgid "Print actions" msgstr "" -#: build/templates/build/build_base.html:60 +#: build/templates/build/build_base.html:61 msgid "Print build order report" msgstr "" -#: build/templates/build/build_base.html:67 +#: build/templates/build/build_base.html:68 msgid "Build actions" msgstr "" -#: build/templates/build/build_base.html:71 +#: build/templates/build/build_base.html:72 msgid "Edit Build" msgstr "" -#: build/templates/build/build_base.html:73 +#: build/templates/build/build_base.html:74 msgid "Duplicate Build" msgstr "" -#: build/templates/build/build_base.html:76 +#: build/templates/build/build_base.html:77 msgid "Hold Build" msgstr "" -#: build/templates/build/build_base.html:79 +#: build/templates/build/build_base.html:80 msgid "Cancel Build" msgstr "" -#: build/templates/build/build_base.html:82 +#: build/templates/build/build_base.html:83 msgid "Delete Build" msgstr "" -#: build/templates/build/build_base.html:87 -msgid "Isueue Build" -msgstr "" - #: build/templates/build/build_base.html:88 +#: build/templates/build/build_base.html:89 msgid "Issue Build" msgstr "" -#: build/templates/build/build_base.html:91 #: build/templates/build/build_base.html:92 +#: build/templates/build/build_base.html:93 msgid "Complete Build" msgstr "" -#: build/templates/build/build_base.html:115 +#: build/templates/build/build_base.html:116 msgid "Build Description" msgstr "" -#: build/templates/build/build_base.html:125 +#: build/templates/build/build_base.html:126 msgid "No build outputs have been created for this build order" msgstr "" -#: build/templates/build/build_base.html:132 +#: build/templates/build/build_base.html:133 msgid "Build Order is ready to mark as completed" msgstr "" -#: build/templates/build/build_base.html:137 +#: build/templates/build/build_base.html:138 msgid "Build Order cannot be completed as outstanding outputs remain" msgstr "" -#: build/templates/build/build_base.html:142 +#: build/templates/build/build_base.html:143 msgid "Required build quantity has not yet been completed" msgstr "" -#: build/templates/build/build_base.html:147 +#: build/templates/build/build_base.html:148 msgid "Stock has not been fully allocated to this Build Order" msgstr "" -#: build/templates/build/build_base.html:168 -#: build/templates/build/detail.html:138 order/models.py:308 -#: order/models.py:1391 order/serializers.py:174 -#: order/templates/order/order_base.html:191 -#: order/templates/order/return_order_base.html:167 -#: order/templates/order/sales_order_base.html:199 +#: build/templates/build/build_base.html:169 +#: build/templates/build/detail.html:138 order/models.py:315 +#: order/models.py:1408 order/serializers.py:254 +#: order/templates/order/order_base.html:200 +#: order/templates/order/return_order_base.html:168 +#: order/templates/order/sales_order_base.html:200 #: report/templates/report/inventree_build_order_report.html:125 -#: templates/js/translated/build.js:2411 templates/js/translated/part.js:1837 -#: templates/js/translated/purchase_order.js:1809 -#: templates/js/translated/purchase_order.js:2217 +#: templates/js/translated/build.js:2414 templates/js/translated/part.js:1837 +#: templates/js/translated/purchase_order.js:1793 +#: templates/js/translated/purchase_order.js:2201 #: templates/js/translated/return_order.js:346 #: templates/js/translated/return_order.js:749 -#: templates/js/translated/sales_order.js:871 -#: templates/js/translated/sales_order.js:1903 +#: templates/js/translated/sales_order.js:830 +#: templates/js/translated/sales_order.js:1884 msgid "Target Date" msgstr "" -#: build/templates/build/build_base.html:173 +#: build/templates/build/build_base.html:174 #, python-format msgid "This build was due on %(target)s" msgstr "" -#: build/templates/build/build_base.html:173 -#: build/templates/build/build_base.html:230 -#: order/templates/order/order_base.html:127 -#: order/templates/order/return_order_base.html:120 -#: order/templates/order/sales_order_base.html:129 +#: build/templates/build/build_base.html:174 +#: build/templates/build/build_base.html:231 +#: order/templates/order/order_base.html:128 +#: order/templates/order/return_order_base.html:121 +#: order/templates/order/sales_order_base.html:130 #: templates/js/translated/table_filters.js:97 #: templates/js/translated/table_filters.js:545 #: templates/js/translated/table_filters.js:629 @@ -1910,49 +1935,50 @@ msgstr "" msgid "Overdue" msgstr "" -#: build/templates/build/build_base.html:185 +#: build/templates/build/build_base.html:186 #: build/templates/build/detail.html:67 build/templates/build/sidebar.html:13 msgid "Completed Outputs" msgstr "" -#: build/templates/build/build_base.html:198 -#: build/templates/build/detail.html:101 order/api.py:1406 order/models.py:892 -#: order/models.py:1650 order/models.py:1765 order/models.py:1924 -#: order/templates/order/sales_order_base.html:9 -#: order/templates/order/sales_order_base.html:28 +#: build/templates/build/build_base.html:199 +#: build/templates/build/detail.html:101 order/api.py:1528 order/models.py:914 +#: order/models.py:1666 order/models.py:1794 order/models.py:1957 +#: order/templates/order/sales_order_base.html:10 +#: order/templates/order/sales_order_base.html:29 #: report/templates/report/inventree_build_order_report.html:135 #: report/templates/report/inventree_sales_order_report.html:14 -#: stock/templates/stock/item_base.html:369 +#: report/templates/report/inventree_sales_order_shipment_report.html:15 +#: stock/templates/stock/item_base.html:366 #: templates/email/overdue_sales_order.html:15 -#: templates/js/translated/pricing.js:929 -#: templates/js/translated/sales_order.js:805 -#: templates/js/translated/sales_order.js:1028 -#: templates/js/translated/stock.js:3008 +#: templates/js/translated/pricing.js:927 +#: templates/js/translated/sales_order.js:764 +#: templates/js/translated/sales_order.js:1001 +#: templates/js/translated/stock.js:3009 msgid "Sales Order" msgstr "" -#: build/templates/build/build_base.html:219 -#: build/templates/build/detail.html:94 templates/js/translated/build.js:2328 +#: build/templates/build/build_base.html:220 +#: build/templates/build/detail.html:94 templates/js/translated/build.js:2331 msgid "Priority" msgstr "" -#: build/templates/build/build_base.html:267 +#: build/templates/build/build_base.html:268 msgid "Issue Build Order" msgstr "" -#: build/templates/build/build_base.html:271 +#: build/templates/build/build_base.html:272 msgid "Issue this Build Order?" msgstr "" -#: build/templates/build/build_base.html:302 +#: build/templates/build/build_base.html:303 msgid "Delete Build Order" msgstr "" -#: build/templates/build/build_base.html:312 +#: build/templates/build/build_base.html:313 msgid "Build Order QR Code" msgstr "" -#: build/templates/build/build_base.html:324 +#: build/templates/build/build_base.html:325 msgid "Link Barcode to Build Order" msgstr "" @@ -1968,8 +1994,9 @@ msgstr "" msgid "Stock can be taken from any available location." msgstr "" -#: build/templates/build/detail.html:49 order/models.py:1532 -#: templates/js/translated/purchase_order.js:2259 +#: build/templates/build/detail.html:49 order/models.py:548 +#: order/models.py:1548 order/templates/order/order_base.html:135 +#: templates/js/translated/purchase_order.js:2243 msgid "Destination" msgstr "" @@ -1981,23 +2008,24 @@ msgstr "" msgid "Allocated Parts" msgstr "" -#: build/templates/build/detail.html:80 stock/admin.py:162 -#: stock/templates/stock/item_base.html:162 -#: templates/js/translated/build.js:1553 -#: templates/js/translated/model_renderers.js:242 -#: templates/js/translated/purchase_order.js:1326 +#: build/templates/build/detail.html:80 +#: report/templates/report/inventree_sales_order_shipment_report.html:47 +#: stock/admin.py:163 stock/templates/stock/item_base.html:159 +#: templates/js/translated/build.js:1556 +#: templates/js/translated/model_renderers.js:245 +#: templates/js/translated/purchase_order.js:1309 #: templates/js/translated/stock.js:1139 templates/js/translated/stock.js:1240 -#: templates/js/translated/stock.js:2275 templates/js/translated/stock.js:3211 +#: templates/js/translated/stock.js:2276 templates/js/translated/stock.js:3212 #: templates/js/translated/table_filters.js:320 #: templates/js/translated/table_filters.js:411 msgid "Batch" msgstr "" #: build/templates/build/detail.html:133 -#: order/templates/order/order_base.html:178 -#: order/templates/order/return_order_base.html:154 -#: order/templates/order/sales_order_base.html:193 -#: templates/js/translated/build.js:2371 +#: order/templates/order/order_base.html:187 +#: order/templates/order/return_order_base.html:155 +#: order/templates/order/sales_order_base.html:194 +#: templates/js/translated/build.js:2374 msgid "Created" msgstr "Loodud" @@ -2005,8 +2033,8 @@ msgstr "Loodud" msgid "No target date set" msgstr "" -#: build/templates/build/detail.html:149 -#: order/templates/order/sales_order_base.html:209 +#: build/templates/build/detail.html:149 order/api.py:794 +#: order/templates/order/sales_order_base.html:210 #: templates/js/translated/table_filters.js:692 msgid "Completed" msgstr "" @@ -2052,7 +2080,7 @@ msgid "Order required parts" msgstr "" #: build/templates/build/detail.html:192 -#: templates/js/translated/purchase_order.js:795 +#: templates/js/translated/purchase_order.js:778 msgid "Order Parts" msgstr "" @@ -2098,7 +2126,7 @@ msgstr "" #: part/templates/part/part_sidebar.html:63 stock/templates/stock/item.html:110 #: stock/templates/stock/stock_sidebar.html:23 msgid "Attachments" -msgstr "" +msgstr "Manused" #: build/templates/build/detail.html:303 msgid "Build Notes" @@ -2120,7 +2148,7 @@ msgstr "" msgid "Build Order Details" msgstr "" -#: build/templates/build/sidebar.html:8 order/serializers.py:82 +#: build/templates/build/sidebar.html:8 order/serializers.py:113 #: order/templates/order/po_sidebar.html:5 #: order/templates/order/return_order_detail.html:18 #: order/templates/order/so_sidebar.html:5 @@ -2139,43 +2167,38 @@ msgstr "" msgid "Test Statistics" msgstr "" -#: common/api.py:693 +#: common/api.py:725 msgid "Is Link" -msgstr "" +msgstr "On link" -#: common/api.py:701 +#: common/api.py:733 msgid "Is File" -msgstr "" +msgstr "On fail" -#: common/api.py:744 +#: common/api.py:776 msgid "User does not have permission to delete these attachments" msgstr "" -#: common/api.py:761 +#: common/api.py:793 msgid "User does not have permission to delete this attachment" msgstr "" -#: common/currency.py:132 +#: common/currency.py:134 msgid "Invalid currency code" msgstr "" -#: common/currency.py:134 +#: common/currency.py:136 msgid "Duplicate currency code" msgstr "" -#: common/currency.py:139 +#: common/currency.py:141 msgid "No valid currency codes provided" msgstr "" -#: common/currency.py:156 +#: common/currency.py:158 msgid "No plugin" msgstr "" -#: common/files.py:63 -#, python-brace-format -msgid "Unsupported file format: {fmt}" -msgstr "" - #: common/files.py:65 msgid "Error reading file (invalid encoding)" msgstr "" @@ -2192,1883 +2215,2039 @@ msgstr "" msgid "Error reading file (data could be corrupted)" msgstr "" -#: common/forms.py:12 +#: common/forms.py:12 common/forms.py:25 msgid "File" msgstr "" -#: common/forms.py:12 +#: common/forms.py:12 common/forms.py:26 msgid "Select file to upload" msgstr "" -#: common/forms.py:25 -msgid "{name.title()} File" -msgstr "" - -#: common/forms.py:26 -#, python-brace-format -msgid "Select {name} file to upload" -msgstr "" - -#: common/models.py:86 +#: common/models.py:89 msgid "Updated" msgstr "" -#: common/models.py:87 +#: common/models.py:90 msgid "Timestamp of last update" msgstr "" -#: common/models.py:120 +#: common/models.py:123 msgid "Site URL is locked by configuration" msgstr "" -#: common/models.py:150 +#: common/models.py:153 msgid "Unique project code" msgstr "" -#: common/models.py:157 +#: common/models.py:160 msgid "Project description" msgstr "" -#: common/models.py:166 +#: common/models.py:169 msgid "User or group responsible for this project" msgstr "" -#: common/models.py:783 -msgid "Settings key (must be unique - case insensitive)" +#: common/models.py:783 common/models.py:2236 common/models.py:2613 +msgid "Settings key" msgstr "" #: common/models.py:787 msgid "Settings value" msgstr "" -#: common/models.py:839 +#: common/models.py:842 msgid "Chosen value is not a valid option" msgstr "" -#: common/models.py:855 +#: common/models.py:858 msgid "Value must be a boolean value" msgstr "" -#: common/models.py:863 +#: common/models.py:866 msgid "Value must be an integer value" msgstr "" -#: common/models.py:900 +#: common/models.py:874 +msgid "Value must be a valid number" +msgstr "" + +#: common/models.py:899 +msgid "Value does not pass validation checks" +msgstr "" + +#: common/models.py:921 msgid "Key string must be unique" msgstr "" -#: common/models.py:1132 +#: common/models.py:1189 msgid "No group" msgstr "Grupp puudub" -#: common/models.py:1231 +#: common/models.py:1288 msgid "Restart required" msgstr "Taaskäivitamine on vajalik" -#: common/models.py:1233 +#: common/models.py:1290 msgid "A setting has been changed which requires a server restart" msgstr "" -#: common/models.py:1240 +#: common/models.py:1297 msgid "Pending migrations" msgstr "" -#: common/models.py:1241 +#: common/models.py:1298 msgid "Number of pending database migrations" msgstr "" -#: common/models.py:1246 +#: common/models.py:1303 msgid "Server Instance Name" msgstr "" -#: common/models.py:1248 +#: common/models.py:1305 msgid "String descriptor for the server instance" msgstr "" -#: common/models.py:1252 +#: common/models.py:1309 msgid "Use instance name" msgstr "" -#: common/models.py:1253 +#: common/models.py:1310 msgid "Use the instance name in the title-bar" msgstr "" -#: common/models.py:1258 +#: common/models.py:1315 msgid "Restrict showing `about`" msgstr "" -#: common/models.py:1259 +#: common/models.py:1316 msgid "Show the `about` modal only to superusers" msgstr "" -#: common/models.py:1264 company/models.py:111 company/models.py:112 +#: common/models.py:1321 company/models.py:108 company/models.py:109 msgid "Company name" -msgstr "" +msgstr "Ettevõtte nimi" -#: common/models.py:1265 +#: common/models.py:1322 msgid "Internal company name" msgstr "" -#: common/models.py:1269 +#: common/models.py:1326 msgid "Base URL" msgstr "" -#: common/models.py:1270 +#: common/models.py:1327 msgid "Base URL for server instance" msgstr "" -#: common/models.py:1276 +#: common/models.py:1333 msgid "Default Currency" msgstr "" -#: common/models.py:1277 +#: common/models.py:1334 msgid "Select base currency for pricing calculations" msgstr "" -#: common/models.py:1283 +#: common/models.py:1340 msgid "Supported Currencies" msgstr "" -#: common/models.py:1284 +#: common/models.py:1341 msgid "List of supported currency codes" msgstr "" -#: common/models.py:1290 +#: common/models.py:1347 msgid "Currency Update Interval" msgstr "" -#: common/models.py:1292 +#: common/models.py:1349 msgid "How often to update exchange rates (set to zero to disable)" msgstr "" -#: common/models.py:1295 common/models.py:1351 common/models.py:1364 -#: common/models.py:1372 common/models.py:1381 common/models.py:1390 -#: common/models.py:1627 common/models.py:1649 common/models.py:1764 -#: common/models.py:2146 +#: common/models.py:1352 common/models.py:1408 common/models.py:1421 +#: common/models.py:1429 common/models.py:1438 common/models.py:1447 +#: common/models.py:1696 common/models.py:1718 common/models.py:1819 +#: common/models.py:2208 msgid "days" msgstr "" -#: common/models.py:1299 +#: common/models.py:1356 msgid "Currency Update Plugin" msgstr "" -#: common/models.py:1300 +#: common/models.py:1357 msgid "Currency update plugin to use" msgstr "" -#: common/models.py:1305 +#: common/models.py:1362 msgid "Download from URL" msgstr "" -#: common/models.py:1307 +#: common/models.py:1364 msgid "Allow download of remote images and files from external URL" msgstr "" -#: common/models.py:1313 +#: common/models.py:1370 msgid "Download Size Limit" msgstr "" -#: common/models.py:1314 +#: common/models.py:1371 msgid "Maximum allowable download size for remote image" msgstr "" -#: common/models.py:1320 +#: common/models.py:1377 msgid "User-agent used to download from URL" msgstr "" -#: common/models.py:1322 +#: common/models.py:1379 msgid "Allow to override the user-agent used to download images and files from external URL (leave blank for the default)" msgstr "" -#: common/models.py:1327 +#: common/models.py:1384 msgid "Strict URL Validation" msgstr "" -#: common/models.py:1328 +#: common/models.py:1385 msgid "Require schema specification when validating URLs" msgstr "" -#: common/models.py:1333 +#: common/models.py:1390 msgid "Require confirm" msgstr "" -#: common/models.py:1334 +#: common/models.py:1391 msgid "Require explicit user confirmation for certain action." msgstr "" -#: common/models.py:1339 +#: common/models.py:1396 msgid "Tree Depth" msgstr "" -#: common/models.py:1341 +#: common/models.py:1398 msgid "Default tree depth for treeview. Deeper levels can be lazy loaded as they are needed." msgstr "" -#: common/models.py:1347 +#: common/models.py:1404 msgid "Update Check Interval" msgstr "" -#: common/models.py:1348 +#: common/models.py:1405 msgid "How often to check for updates (set to zero to disable)" msgstr "" -#: common/models.py:1354 +#: common/models.py:1411 msgid "Automatic Backup" msgstr "Automaatne varundus" -#: common/models.py:1355 +#: common/models.py:1412 msgid "Enable automatic backup of database and media files" msgstr "" -#: common/models.py:1360 +#: common/models.py:1417 msgid "Auto Backup Interval" msgstr "" -#: common/models.py:1361 +#: common/models.py:1418 msgid "Specify number of days between automated backup events" msgstr "" -#: common/models.py:1367 +#: common/models.py:1424 msgid "Task Deletion Interval" msgstr "" -#: common/models.py:1369 +#: common/models.py:1426 msgid "Background task results will be deleted after specified number of days" msgstr "" -#: common/models.py:1376 +#: common/models.py:1433 msgid "Error Log Deletion Interval" msgstr "" -#: common/models.py:1378 +#: common/models.py:1435 msgid "Error logs will be deleted after specified number of days" msgstr "" -#: common/models.py:1385 +#: common/models.py:1442 msgid "Notification Deletion Interval" msgstr "" -#: common/models.py:1387 +#: common/models.py:1444 msgid "User notifications will be deleted after specified number of days" msgstr "" -#: common/models.py:1394 templates/InvenTree/settings/sidebar.html:31 +#: common/models.py:1451 templates/InvenTree/settings/sidebar.html:31 msgid "Barcode Support" msgstr "Vöötkoodi tugi" -#: common/models.py:1395 +#: common/models.py:1452 msgid "Enable barcode scanner support in the web interface" msgstr "" -#: common/models.py:1400 +#: common/models.py:1457 +msgid "Store Barcode Results" +msgstr "" + +#: common/models.py:1458 +msgid "Store barcode scan results in the database" +msgstr "" + +#: common/models.py:1463 +msgid "Barcode Scans Maximum Count" +msgstr "" + +#: common/models.py:1464 +msgid "Maximum number of barcode scan results to store" +msgstr "" + +#: common/models.py:1469 msgid "Barcode Input Delay" msgstr "" -#: common/models.py:1401 +#: common/models.py:1470 msgid "Barcode input processing delay time" msgstr "" -#: common/models.py:1407 +#: common/models.py:1476 msgid "Barcode Webcam Support" msgstr "" -#: common/models.py:1408 +#: common/models.py:1477 msgid "Allow barcode scanning via webcam in browser" msgstr "" -#: common/models.py:1413 +#: common/models.py:1482 msgid "Barcode Show Data" msgstr "" -#: common/models.py:1414 +#: common/models.py:1483 msgid "Display barcode data in browser as text" msgstr "" -#: common/models.py:1419 +#: common/models.py:1488 msgid "Barcode Generation Plugin" msgstr "" -#: common/models.py:1420 +#: common/models.py:1489 msgid "Plugin to use for internal barcode data generation" msgstr "" -#: common/models.py:1425 +#: common/models.py:1494 msgid "Part Revisions" msgstr "" -#: common/models.py:1426 +#: common/models.py:1495 msgid "Enable revision field for Part" msgstr "" -#: common/models.py:1431 +#: common/models.py:1500 msgid "Assembly Revision Only" msgstr "" -#: common/models.py:1432 +#: common/models.py:1501 msgid "Only allow revisions for assembly parts" msgstr "" -#: common/models.py:1437 +#: common/models.py:1506 msgid "Allow Deletion from Assembly" msgstr "" -#: common/models.py:1438 +#: common/models.py:1507 msgid "Allow deletion of parts which are used in an assembly" msgstr "" -#: common/models.py:1443 +#: common/models.py:1512 msgid "IPN Regex" msgstr "" -#: common/models.py:1444 +#: common/models.py:1513 msgid "Regular expression pattern for matching Part IPN" msgstr "" -#: common/models.py:1447 +#: common/models.py:1516 msgid "Allow Duplicate IPN" msgstr "" -#: common/models.py:1448 +#: common/models.py:1517 msgid "Allow multiple parts to share the same IPN" msgstr "" -#: common/models.py:1453 +#: common/models.py:1522 msgid "Allow Editing IPN" msgstr "" -#: common/models.py:1454 +#: common/models.py:1523 msgid "Allow changing the IPN value while editing a part" msgstr "" -#: common/models.py:1459 +#: common/models.py:1528 msgid "Copy Part BOM Data" msgstr "" -#: common/models.py:1460 +#: common/models.py:1529 msgid "Copy BOM data by default when duplicating a part" msgstr "" -#: common/models.py:1465 +#: common/models.py:1534 msgid "Copy Part Parameter Data" msgstr "" -#: common/models.py:1466 +#: common/models.py:1535 msgid "Copy parameter data by default when duplicating a part" msgstr "" -#: common/models.py:1471 +#: common/models.py:1540 msgid "Copy Part Test Data" msgstr "" -#: common/models.py:1472 +#: common/models.py:1541 msgid "Copy test data by default when duplicating a part" msgstr "" -#: common/models.py:1477 +#: common/models.py:1546 msgid "Copy Category Parameter Templates" msgstr "" -#: common/models.py:1478 +#: common/models.py:1547 msgid "Copy category parameter templates when creating a part" msgstr "" -#: common/models.py:1483 part/admin.py:108 part/models.py:3945 -#: report/models.py:293 report/models.py:360 report/serializers.py:90 -#: report/serializers.py:131 stock/serializers.py:232 +#: common/models.py:1552 part/admin.py:108 part/models.py:4003 +#: report/models.py:301 report/models.py:368 report/serializers.py:91 +#: report/serializers.py:132 stock/serializers.py:233 #: templates/js/translated/table_filters.js:138 #: templates/js/translated/table_filters.js:775 msgid "Template" msgstr "" -#: common/models.py:1484 +#: common/models.py:1553 msgid "Parts are templates by default" msgstr "" -#: common/models.py:1490 +#: common/models.py:1559 msgid "Parts can be assembled from other components by default" msgstr "" -#: common/models.py:1495 part/admin.py:95 part/models.py:1160 -#: part/serializers.py:1596 templates/js/translated/table_filters.js:737 +#: common/models.py:1564 part/admin.py:95 part/models.py:1221 +#: part/serializers.py:1654 templates/js/translated/table_filters.js:737 msgid "Component" msgstr "" -#: common/models.py:1496 +#: common/models.py:1565 msgid "Parts can be used as sub-components by default" msgstr "" -#: common/models.py:1501 part/admin.py:100 part/models.py:1178 +#: common/models.py:1570 part/admin.py:100 part/models.py:1239 msgid "Purchaseable" msgstr "" -#: common/models.py:1502 +#: common/models.py:1571 msgid "Parts are purchaseable by default" msgstr "" -#: common/models.py:1507 part/admin.py:104 part/models.py:1184 +#: common/models.py:1576 part/admin.py:104 part/models.py:1245 #: templates/js/translated/table_filters.js:763 msgid "Salable" msgstr "" -#: common/models.py:1508 +#: common/models.py:1577 msgid "Parts are salable by default" msgstr "" -#: common/models.py:1514 +#: common/models.py:1583 msgid "Parts are trackable by default" msgstr "" -#: common/models.py:1519 part/admin.py:117 part/models.py:1200 -#: part/templates/part/part_base.html:154 +#: common/models.py:1588 part/admin.py:117 part/models.py:1261 +#: part/templates/part/part_base.html:155 #: templates/js/translated/table_filters.js:142 #: templates/js/translated/table_filters.js:787 msgid "Virtual" msgstr "" -#: common/models.py:1520 +#: common/models.py:1589 msgid "Parts are virtual by default" msgstr "" -#: common/models.py:1525 +#: common/models.py:1594 msgid "Show Import in Views" msgstr "" -#: common/models.py:1526 +#: common/models.py:1595 msgid "Display the import wizard in some part views" msgstr "" -#: common/models.py:1531 +#: common/models.py:1600 msgid "Show related parts" msgstr "" -#: common/models.py:1532 +#: common/models.py:1601 msgid "Display related parts for a part" msgstr "" -#: common/models.py:1537 +#: common/models.py:1606 msgid "Initial Stock Data" msgstr "" -#: common/models.py:1538 +#: common/models.py:1607 msgid "Allow creation of initial stock when adding a new part" msgstr "" -#: common/models.py:1543 templates/js/translated/part.js:108 +#: common/models.py:1612 templates/js/translated/part.js:108 msgid "Initial Supplier Data" msgstr "" -#: common/models.py:1545 +#: common/models.py:1614 msgid "Allow creation of initial supplier data when adding a new part" msgstr "" -#: common/models.py:1551 +#: common/models.py:1620 msgid "Part Name Display Format" msgstr "" -#: common/models.py:1552 +#: common/models.py:1621 msgid "Format to display the part name" msgstr "" -#: common/models.py:1558 +#: common/models.py:1627 msgid "Part Category Default Icon" msgstr "" -#: common/models.py:1559 +#: common/models.py:1628 msgid "Part category default icon (empty means no icon)" msgstr "" -#: common/models.py:1564 +#: common/models.py:1633 msgid "Enforce Parameter Units" msgstr "" -#: common/models.py:1566 +#: common/models.py:1635 msgid "If units are provided, parameter values must match the specified units" msgstr "" -#: common/models.py:1572 +#: common/models.py:1641 msgid "Minimum Pricing Decimal Places" msgstr "" -#: common/models.py:1574 +#: common/models.py:1643 msgid "Minimum number of decimal places to display when rendering pricing data" msgstr "" -#: common/models.py:1585 +#: common/models.py:1654 msgid "Maximum Pricing Decimal Places" msgstr "" -#: common/models.py:1587 +#: common/models.py:1656 msgid "Maximum number of decimal places to display when rendering pricing data" msgstr "" -#: common/models.py:1598 +#: common/models.py:1667 msgid "Use Supplier Pricing" msgstr "" -#: common/models.py:1600 +#: common/models.py:1669 msgid "Include supplier price breaks in overall pricing calculations" msgstr "" -#: common/models.py:1606 +#: common/models.py:1675 msgid "Purchase History Override" msgstr "" -#: common/models.py:1608 +#: common/models.py:1677 msgid "Historical purchase order pricing overrides supplier price breaks" msgstr "" -#: common/models.py:1614 +#: common/models.py:1683 msgid "Use Stock Item Pricing" msgstr "" -#: common/models.py:1616 +#: common/models.py:1685 msgid "Use pricing from manually entered stock data for pricing calculations" msgstr "" -#: common/models.py:1622 +#: common/models.py:1691 msgid "Stock Item Pricing Age" msgstr "" -#: common/models.py:1624 +#: common/models.py:1693 msgid "Exclude stock items older than this number of days from pricing calculations" msgstr "" -#: common/models.py:1631 +#: common/models.py:1700 msgid "Use Variant Pricing" msgstr "" -#: common/models.py:1632 +#: common/models.py:1701 msgid "Include variant pricing in overall pricing calculations" msgstr "" -#: common/models.py:1637 +#: common/models.py:1706 msgid "Active Variants Only" msgstr "" -#: common/models.py:1639 +#: common/models.py:1708 msgid "Only use active variant parts for calculating variant pricing" msgstr "" -#: common/models.py:1645 +#: common/models.py:1714 msgid "Pricing Rebuild Interval" msgstr "" -#: common/models.py:1647 +#: common/models.py:1716 msgid "Number of days before part pricing is automatically updated" msgstr "" -#: common/models.py:1654 +#: common/models.py:1723 msgid "Internal Prices" msgstr "" -#: common/models.py:1655 +#: common/models.py:1724 msgid "Enable internal prices for parts" msgstr "" -#: common/models.py:1660 +#: common/models.py:1729 msgid "Internal Price Override" msgstr "" -#: common/models.py:1662 +#: common/models.py:1731 msgid "If available, internal prices override price range calculations" msgstr "" -#: common/models.py:1668 +#: common/models.py:1737 msgid "Enable label printing" msgstr "" -#: common/models.py:1669 +#: common/models.py:1738 msgid "Enable label printing from the web interface" msgstr "" -#: common/models.py:1674 +#: common/models.py:1743 msgid "Label Image DPI" msgstr "" -#: common/models.py:1676 +#: common/models.py:1745 msgid "DPI resolution when generating image files to supply to label printing plugins" msgstr "" -#: common/models.py:1682 +#: common/models.py:1751 msgid "Enable Reports" msgstr "" -#: common/models.py:1683 +#: common/models.py:1752 msgid "Enable generation of reports" msgstr "" -#: common/models.py:1688 templates/stats.html:25 +#: common/models.py:1757 templates/stats.html:25 msgid "Debug Mode" msgstr "" -#: common/models.py:1689 +#: common/models.py:1758 msgid "Generate reports in debug mode (HTML output)" msgstr "" -#: common/models.py:1694 +#: common/models.py:1763 msgid "Log Report Errors" msgstr "" -#: common/models.py:1695 +#: common/models.py:1764 msgid "Log errors which occur when generating reports" msgstr "" -#: common/models.py:1700 plugin/builtin/labels/label_sheet.py:28 -#: report/models.py:301 +#: common/models.py:1769 plugin/builtin/labels/label_sheet.py:28 +#: report/models.py:309 msgid "Page Size" msgstr "" -#: common/models.py:1701 +#: common/models.py:1770 msgid "Default page size for PDF reports" msgstr "" -#: common/models.py:1706 -msgid "Enable Test Reports" -msgstr "" - -#: common/models.py:1707 -msgid "Enable generation of test reports" -msgstr "" - -#: common/models.py:1712 -msgid "Attach Test Reports" -msgstr "" - -#: common/models.py:1714 -msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item" -msgstr "" - -#: common/models.py:1720 +#: common/models.py:1775 msgid "Globally Unique Serials" msgstr "" -#: common/models.py:1721 +#: common/models.py:1776 msgid "Serial numbers for stock items must be globally unique" msgstr "" -#: common/models.py:1726 +#: common/models.py:1781 msgid "Autofill Serial Numbers" msgstr "" -#: common/models.py:1727 +#: common/models.py:1782 msgid "Autofill serial numbers in forms" msgstr "" -#: common/models.py:1732 +#: common/models.py:1787 msgid "Delete Depleted Stock" msgstr "" -#: common/models.py:1734 +#: common/models.py:1789 msgid "Determines default behavior when a stock item is depleted" msgstr "" -#: common/models.py:1740 +#: common/models.py:1795 msgid "Batch Code Template" msgstr "" -#: common/models.py:1742 +#: common/models.py:1797 msgid "Template for generating default batch codes for stock items" msgstr "" -#: common/models.py:1747 +#: common/models.py:1802 msgid "Stock Expiry" msgstr "" -#: common/models.py:1748 +#: common/models.py:1803 msgid "Enable stock expiry functionality" msgstr "" -#: common/models.py:1753 +#: common/models.py:1808 msgid "Sell Expired Stock" msgstr "" -#: common/models.py:1754 +#: common/models.py:1809 msgid "Allow sale of expired stock" msgstr "" -#: common/models.py:1759 +#: common/models.py:1814 msgid "Stock Stale Time" msgstr "" -#: common/models.py:1761 +#: common/models.py:1816 msgid "Number of days stock items are considered stale before expiring" msgstr "" -#: common/models.py:1768 +#: common/models.py:1823 msgid "Build Expired Stock" msgstr "" -#: common/models.py:1769 +#: common/models.py:1824 msgid "Allow building with expired stock" msgstr "" -#: common/models.py:1774 +#: common/models.py:1829 msgid "Stock Ownership Control" msgstr "" -#: common/models.py:1775 +#: common/models.py:1830 msgid "Enable ownership control over stock locations and items" msgstr "" -#: common/models.py:1780 +#: common/models.py:1835 msgid "Stock Location Default Icon" msgstr "" -#: common/models.py:1781 +#: common/models.py:1836 msgid "Stock location default icon (empty means no icon)" msgstr "" -#: common/models.py:1786 +#: common/models.py:1841 msgid "Show Installed Stock Items" msgstr "" -#: common/models.py:1787 +#: common/models.py:1842 msgid "Display installed stock items in stock tables" msgstr "" -#: common/models.py:1792 +#: common/models.py:1847 msgid "Check BOM when installing items" msgstr "" -#: common/models.py:1794 +#: common/models.py:1849 msgid "Installed stock items must exist in the BOM for the parent part" msgstr "" -#: common/models.py:1800 +#: common/models.py:1855 msgid "Allow Out of Stock Transfer" msgstr "" -#: common/models.py:1802 +#: common/models.py:1857 msgid "Allow stock items which are not in stock to be transferred between stock locations" msgstr "" -#: common/models.py:1808 +#: common/models.py:1863 msgid "Build Order Reference Pattern" msgstr "" -#: common/models.py:1810 +#: common/models.py:1865 msgid "Required pattern for generating Build Order reference field" msgstr "" -#: common/models.py:1816 common/models.py:1872 common/models.py:1894 -#: common/models.py:1930 +#: common/models.py:1871 common/models.py:1927 common/models.py:1949 +#: common/models.py:1985 msgid "Require Responsible Owner" msgstr "" -#: common/models.py:1817 common/models.py:1873 common/models.py:1895 -#: common/models.py:1931 +#: common/models.py:1872 common/models.py:1928 common/models.py:1950 +#: common/models.py:1986 msgid "A responsible owner must be assigned to each order" msgstr "" -#: common/models.py:1822 +#: common/models.py:1877 msgid "Require Active Part" msgstr "" -#: common/models.py:1823 +#: common/models.py:1878 msgid "Prevent build order creation for inactive parts" msgstr "" -#: common/models.py:1828 +#: common/models.py:1883 msgid "Require Locked Part" msgstr "" -#: common/models.py:1829 +#: common/models.py:1884 msgid "Prevent build order creation for unlocked parts" msgstr "" -#: common/models.py:1834 +#: common/models.py:1889 msgid "Require Valid BOM" msgstr "" -#: common/models.py:1836 +#: common/models.py:1891 msgid "Prevent build order creation unless BOM has been validated" msgstr "" -#: common/models.py:1842 +#: common/models.py:1897 msgid "Require Closed Child Orders" msgstr "" -#: common/models.py:1844 +#: common/models.py:1899 msgid "Prevent build order completion until all child orders are closed" msgstr "" -#: common/models.py:1850 +#: common/models.py:1905 msgid "Block Until Tests Pass" msgstr "" -#: common/models.py:1852 +#: common/models.py:1907 msgid "Prevent build outputs from being completed until all required tests pass" msgstr "" -#: common/models.py:1858 +#: common/models.py:1913 msgid "Enable Return Orders" msgstr "" -#: common/models.py:1859 +#: common/models.py:1914 msgid "Enable return order functionality in the user interface" msgstr "" -#: common/models.py:1864 +#: common/models.py:1919 msgid "Return Order Reference Pattern" msgstr "" -#: common/models.py:1866 +#: common/models.py:1921 msgid "Required pattern for generating Return Order reference field" msgstr "" -#: common/models.py:1878 +#: common/models.py:1933 msgid "Edit Completed Return Orders" msgstr "" -#: common/models.py:1880 +#: common/models.py:1935 msgid "Allow editing of return orders after they have been completed" msgstr "" -#: common/models.py:1886 +#: common/models.py:1941 msgid "Sales Order Reference Pattern" msgstr "" -#: common/models.py:1888 +#: common/models.py:1943 msgid "Required pattern for generating Sales Order reference field" msgstr "" -#: common/models.py:1900 +#: common/models.py:1955 msgid "Sales Order Default Shipment" msgstr "" -#: common/models.py:1901 +#: common/models.py:1956 msgid "Enable creation of default shipment with sales orders" msgstr "" -#: common/models.py:1906 +#: common/models.py:1961 msgid "Edit Completed Sales Orders" msgstr "" -#: common/models.py:1908 +#: common/models.py:1963 msgid "Allow editing of sales orders after they have been shipped or completed" msgstr "" -#: common/models.py:1914 +#: common/models.py:1969 msgid "Mark Shipped Orders as Complete" msgstr "" -#: common/models.py:1916 +#: common/models.py:1971 msgid "Sales orders marked as shipped will automatically be completed, bypassing the \"shipped\" status" msgstr "" -#: common/models.py:1922 +#: common/models.py:1977 msgid "Purchase Order Reference Pattern" msgstr "" -#: common/models.py:1924 +#: common/models.py:1979 msgid "Required pattern for generating Purchase Order reference field" msgstr "" -#: common/models.py:1936 +#: common/models.py:1991 msgid "Edit Completed Purchase Orders" msgstr "" -#: common/models.py:1938 +#: common/models.py:1993 msgid "Allow editing of purchase orders after they have been shipped or completed" msgstr "" -#: common/models.py:1944 +#: common/models.py:1999 msgid "Auto Complete Purchase Orders" msgstr "" -#: common/models.py:1946 +#: common/models.py:2001 msgid "Automatically mark purchase orders as complete when all line items are received" msgstr "" -#: common/models.py:1953 +#: common/models.py:2008 msgid "Enable password forgot" msgstr "" -#: common/models.py:1954 +#: common/models.py:2009 msgid "Enable password forgot function on the login pages" msgstr "" -#: common/models.py:1959 +#: common/models.py:2014 msgid "Enable registration" msgstr "" -#: common/models.py:1960 +#: common/models.py:2015 msgid "Enable self-registration for users on the login pages" msgstr "" -#: common/models.py:1965 +#: common/models.py:2020 msgid "Enable SSO" msgstr "" -#: common/models.py:1966 +#: common/models.py:2021 msgid "Enable SSO on the login pages" msgstr "" -#: common/models.py:1971 +#: common/models.py:2026 msgid "Enable SSO registration" msgstr "" -#: common/models.py:1973 +#: common/models.py:2028 msgid "Enable self-registration via SSO for users on the login pages" msgstr "" -#: common/models.py:1979 +#: common/models.py:2034 msgid "Enable SSO group sync" msgstr "" -#: common/models.py:1981 +#: common/models.py:2036 msgid "Enable synchronizing InvenTree groups with groups provided by the IdP" msgstr "" -#: common/models.py:1987 +#: common/models.py:2042 msgid "SSO group key" msgstr "" -#: common/models.py:1989 +#: common/models.py:2044 msgid "The name of the groups claim attribute provided by the IdP" msgstr "" -#: common/models.py:1995 +#: common/models.py:2050 msgid "SSO group map" msgstr "" -#: common/models.py:1997 +#: common/models.py:2052 msgid "A mapping from SSO groups to local InvenTree groups. If the local group does not exist, it will be created." msgstr "" -#: common/models.py:2003 +#: common/models.py:2058 msgid "Remove groups outside of SSO" msgstr "" -#: common/models.py:2005 +#: common/models.py:2060 msgid "Whether groups assigned to the user should be removed if they are not backend by the IdP. Disabling this setting might cause security issues" msgstr "" -#: common/models.py:2011 +#: common/models.py:2066 msgid "Email required" msgstr "" -#: common/models.py:2012 +#: common/models.py:2067 msgid "Require user to supply mail on signup" msgstr "" -#: common/models.py:2017 +#: common/models.py:2072 msgid "Auto-fill SSO users" msgstr "" -#: common/models.py:2019 +#: common/models.py:2074 msgid "Automatically fill out user-details from SSO account-data" msgstr "" -#: common/models.py:2025 +#: common/models.py:2080 msgid "Mail twice" msgstr "" -#: common/models.py:2026 +#: common/models.py:2081 msgid "On signup ask users twice for their mail" msgstr "" -#: common/models.py:2031 +#: common/models.py:2086 msgid "Password twice" msgstr "" -#: common/models.py:2032 +#: common/models.py:2087 msgid "On signup ask users twice for their password" msgstr "" -#: common/models.py:2037 +#: common/models.py:2092 msgid "Allowed domains" msgstr "" -#: common/models.py:2039 +#: common/models.py:2094 msgid "Restrict signup to certain domains (comma-separated, starting with @)" msgstr "" -#: common/models.py:2045 +#: common/models.py:2100 msgid "Group on signup" msgstr "" -#: common/models.py:2047 +#: common/models.py:2102 msgid "Group to which new users are assigned on registration. If SSO group sync is enabled, this group is only set if no group can be assigned from the IdP." msgstr "" -#: common/models.py:2053 +#: common/models.py:2108 msgid "Enforce MFA" msgstr "" -#: common/models.py:2054 +#: common/models.py:2109 msgid "Users must use multifactor security." msgstr "" -#: common/models.py:2059 +#: common/models.py:2114 msgid "Check plugins on startup" msgstr "" -#: common/models.py:2061 +#: common/models.py:2116 msgid "Check that all plugins are installed on startup - enable in container environments" msgstr "" -#: common/models.py:2069 +#: common/models.py:2124 msgid "Check for plugin updates" msgstr "" -#: common/models.py:2070 +#: common/models.py:2125 msgid "Enable periodic checks for updates to installed plugins" msgstr "" -#: common/models.py:2076 +#: common/models.py:2131 msgid "Enable URL integration" msgstr "" -#: common/models.py:2077 +#: common/models.py:2132 msgid "Enable plugins to add URL routes" msgstr "" -#: common/models.py:2083 +#: common/models.py:2138 msgid "Enable navigation integration" msgstr "" -#: common/models.py:2084 +#: common/models.py:2139 msgid "Enable plugins to integrate into navigation" msgstr "" -#: common/models.py:2090 +#: common/models.py:2145 msgid "Enable app integration" msgstr "" -#: common/models.py:2091 +#: common/models.py:2146 msgid "Enable plugins to add apps" msgstr "" -#: common/models.py:2097 +#: common/models.py:2152 msgid "Enable schedule integration" msgstr "" -#: common/models.py:2098 +#: common/models.py:2153 msgid "Enable plugins to run scheduled tasks" msgstr "" -#: common/models.py:2104 +#: common/models.py:2159 msgid "Enable event integration" msgstr "" -#: common/models.py:2105 +#: common/models.py:2160 msgid "Enable plugins to respond to internal events" msgstr "" -#: common/models.py:2111 +#: common/models.py:2166 +msgid "Enable interface integration" +msgstr "Luba liidese integreerimine" + +#: common/models.py:2167 +msgid "Enable plugins to integrate into the user interface" +msgstr "Luba pluginatel integreeruda kasutajaliidesesse" + +#: common/models.py:2173 msgid "Enable project codes" msgstr "" -#: common/models.py:2112 +#: common/models.py:2174 msgid "Enable project codes for tracking projects" msgstr "" -#: common/models.py:2117 +#: common/models.py:2179 msgid "Stocktake Functionality" msgstr "" -#: common/models.py:2119 +#: common/models.py:2181 msgid "Enable stocktake functionality for recording stock levels and calculating stock value" msgstr "" -#: common/models.py:2125 +#: common/models.py:2187 msgid "Exclude External Locations" msgstr "" -#: common/models.py:2127 +#: common/models.py:2189 msgid "Exclude stock items in external locations from stocktake calculations" msgstr "" -#: common/models.py:2133 +#: common/models.py:2195 msgid "Automatic Stocktake Period" msgstr "" -#: common/models.py:2135 +#: common/models.py:2197 msgid "Number of days between automatic stocktake recording (set to zero to disable)" msgstr "" -#: common/models.py:2141 +#: common/models.py:2203 msgid "Report Deletion Interval" msgstr "" -#: common/models.py:2143 +#: common/models.py:2205 msgid "Stocktake reports will be deleted after specified number of days" msgstr "" -#: common/models.py:2150 +#: common/models.py:2212 msgid "Display Users full names" msgstr "" -#: common/models.py:2151 +#: common/models.py:2213 msgid "Display Users full names instead of usernames" msgstr "" -#: common/models.py:2156 +#: common/models.py:2218 msgid "Enable Test Station Data" msgstr "" -#: common/models.py:2157 +#: common/models.py:2219 msgid "Enable test station data collection for test results" msgstr "" -#: common/models.py:2169 common/models.py:2549 -msgid "Settings key (must be unique - case insensitive" -msgstr "" - -#: common/models.py:2212 -msgid "Hide inactive parts" -msgstr "" - -#: common/models.py:2214 -msgid "Hide inactive parts in results displayed on the homepage" -msgstr "" - -#: common/models.py:2220 -msgid "Show subscribed parts" -msgstr "" - -#: common/models.py:2221 -msgid "Show subscribed parts on the homepage" +#: common/models.py:2224 +msgid "Create Template on Upload" msgstr "" #: common/models.py:2226 -msgid "Show subscribed categories" -msgstr "" +msgid "Create a new test template when uploading test data which does not match an existing template" +msgstr "Loo uus testimall testandmete üleslaadimisel, mis ei vasta olemasolevale mallile" -#: common/models.py:2227 -msgid "Show subscribed part categories on the homepage" -msgstr "" - -#: common/models.py:2232 -msgid "Show latest parts" -msgstr "" - -#: common/models.py:2233 -msgid "Show latest parts on the homepage" -msgstr "" - -#: common/models.py:2238 -msgid "Show invalid BOMs" -msgstr "" - -#: common/models.py:2239 -msgid "Show BOMs that await validation on the homepage" -msgstr "" - -#: common/models.py:2244 -msgid "Show recent stock changes" -msgstr "" - -#: common/models.py:2245 -msgid "Show recently changed stock items on the homepage" -msgstr "" - -#: common/models.py:2250 -msgid "Show low stock" -msgstr "" - -#: common/models.py:2251 -msgid "Show low stock items on the homepage" -msgstr "" - -#: common/models.py:2256 -msgid "Show depleted stock" -msgstr "" - -#: common/models.py:2257 -msgid "Show depleted stock items on the homepage" -msgstr "" - -#: common/models.py:2262 -msgid "Show needed stock" -msgstr "" - -#: common/models.py:2263 -msgid "Show stock items needed for builds on the homepage" -msgstr "" - -#: common/models.py:2268 -msgid "Show expired stock" -msgstr "" - -#: common/models.py:2269 -msgid "Show expired stock items on the homepage" -msgstr "" - -#: common/models.py:2274 -msgid "Show stale stock" -msgstr "" - -#: common/models.py:2275 -msgid "Show stale stock items on the homepage" -msgstr "" - -#: common/models.py:2280 -msgid "Show pending builds" +#: common/models.py:2279 +msgid "Hide inactive parts" msgstr "" #: common/models.py:2281 -msgid "Show pending builds on the homepage" -msgstr "" - -#: common/models.py:2286 -msgid "Show overdue builds" +msgid "Hide inactive parts in results displayed on the homepage" msgstr "" #: common/models.py:2287 -msgid "Show overdue builds on the homepage" +msgid "Show subscribed parts" msgstr "" -#: common/models.py:2292 -msgid "Show outstanding POs" +#: common/models.py:2288 +msgid "Show subscribed parts on the homepage" msgstr "" #: common/models.py:2293 -msgid "Show outstanding POs on the homepage" +msgid "Show subscribed categories" msgstr "" -#: common/models.py:2298 -msgid "Show overdue POs" +#: common/models.py:2294 +msgid "Show subscribed part categories on the homepage" msgstr "" #: common/models.py:2299 -msgid "Show overdue POs on the homepage" +msgid "Show latest parts" msgstr "" -#: common/models.py:2304 -msgid "Show outstanding SOs" +#: common/models.py:2300 +msgid "Show latest parts on the homepage" msgstr "" #: common/models.py:2305 -msgid "Show outstanding SOs on the homepage" +msgid "Show invalid BOMs" msgstr "" -#: common/models.py:2310 -msgid "Show overdue SOs" +#: common/models.py:2306 +msgid "Show BOMs that await validation on the homepage" msgstr "" #: common/models.py:2311 -msgid "Show overdue SOs on the homepage" +msgid "Show recent stock changes" msgstr "" -#: common/models.py:2316 -msgid "Show pending SO shipments" +#: common/models.py:2312 +msgid "Show recently changed stock items on the homepage" msgstr "" #: common/models.py:2317 -msgid "Show pending SO shipments on the homepage" +msgid "Show low stock" msgstr "" -#: common/models.py:2322 -msgid "Show News" +#: common/models.py:2318 +msgid "Show low stock items on the homepage" msgstr "" #: common/models.py:2323 -msgid "Show news on the homepage" +msgid "Show depleted stock" msgstr "" -#: common/models.py:2328 -msgid "Inline label display" +#: common/models.py:2324 +msgid "Show depleted stock items on the homepage" +msgstr "" + +#: common/models.py:2329 +msgid "Show needed stock" msgstr "" #: common/models.py:2330 -msgid "Display PDF labels in the browser, instead of downloading as a file" +msgid "Show stock items needed for builds on the homepage" +msgstr "" + +#: common/models.py:2335 +msgid "Show expired stock" msgstr "" #: common/models.py:2336 -msgid "Default label printer" +msgid "Show expired stock items on the homepage" msgstr "" -#: common/models.py:2338 -msgid "Configure which label printer should be selected by default" +#: common/models.py:2341 +msgid "Show stale stock" msgstr "" -#: common/models.py:2344 -msgid "Inline report display" +#: common/models.py:2342 +msgid "Show stale stock items on the homepage" msgstr "" -#: common/models.py:2346 -msgid "Display PDF reports in the browser, instead of downloading as a file" +#: common/models.py:2347 +msgid "Show pending builds" msgstr "" -#: common/models.py:2352 -msgid "Search Parts" +#: common/models.py:2348 +msgid "Show pending builds on the homepage" msgstr "" #: common/models.py:2353 -msgid "Display parts in search preview window" +msgid "Show overdue builds" msgstr "" -#: common/models.py:2358 -msgid "Search Supplier Parts" +#: common/models.py:2354 +msgid "Show overdue builds on the homepage" msgstr "" #: common/models.py:2359 -msgid "Display supplier parts in search preview window" +msgid "Show outstanding POs" msgstr "" -#: common/models.py:2364 -msgid "Search Manufacturer Parts" +#: common/models.py:2360 +msgid "Show outstanding POs on the homepage" msgstr "" #: common/models.py:2365 -msgid "Display manufacturer parts in search preview window" +msgid "Show overdue POs" msgstr "" -#: common/models.py:2370 -msgid "Hide Inactive Parts" +#: common/models.py:2366 +msgid "Show overdue POs on the homepage" msgstr "" #: common/models.py:2371 -msgid "Excluded inactive parts from search preview window" +msgid "Show outstanding SOs" msgstr "" -#: common/models.py:2376 -msgid "Search Categories" +#: common/models.py:2372 +msgid "Show outstanding SOs on the homepage" msgstr "" #: common/models.py:2377 -msgid "Display part categories in search preview window" +msgid "Show overdue SOs" msgstr "" -#: common/models.py:2382 -msgid "Search Stock" +#: common/models.py:2378 +msgid "Show overdue SOs on the homepage" msgstr "" #: common/models.py:2383 -msgid "Display stock items in search preview window" +msgid "Show pending SO shipments" msgstr "" -#: common/models.py:2388 -msgid "Hide Unavailable Stock Items" +#: common/models.py:2384 +msgid "Show pending SO shipments on the homepage" +msgstr "" + +#: common/models.py:2389 +msgid "Show News" msgstr "" #: common/models.py:2390 -msgid "Exclude stock items which are not available from the search preview window" +msgid "Show news on the homepage" msgstr "" -#: common/models.py:2396 -msgid "Search Locations" +#: common/models.py:2395 +msgid "Inline label display" msgstr "" #: common/models.py:2397 -msgid "Display stock locations in search preview window" -msgstr "" - -#: common/models.py:2402 -msgid "Search Companies" +msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "" #: common/models.py:2403 -msgid "Display companies in search preview window" +msgid "Default label printer" msgstr "" -#: common/models.py:2408 -msgid "Search Build Orders" +#: common/models.py:2405 +msgid "Configure which label printer should be selected by default" msgstr "" -#: common/models.py:2409 -msgid "Display build orders in search preview window" +#: common/models.py:2411 +msgid "Inline report display" msgstr "" -#: common/models.py:2414 -msgid "Search Purchase Orders" +#: common/models.py:2413 +msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:2415 -msgid "Display purchase orders in search preview window" +#: common/models.py:2419 +msgid "Search Parts" msgstr "" #: common/models.py:2420 -msgid "Exclude Inactive Purchase Orders" +msgid "Display parts in search preview window" msgstr "" -#: common/models.py:2422 -msgid "Exclude inactive purchase orders from search preview window" +#: common/models.py:2425 +msgid "Search Supplier Parts" msgstr "" -#: common/models.py:2428 -msgid "Search Sales Orders" +#: common/models.py:2426 +msgid "Display supplier parts in search preview window" msgstr "" -#: common/models.py:2429 -msgid "Display sales orders in search preview window" +#: common/models.py:2431 +msgid "Search Manufacturer Parts" msgstr "" -#: common/models.py:2434 -msgid "Exclude Inactive Sales Orders" +#: common/models.py:2432 +msgid "Display manufacturer parts in search preview window" msgstr "" -#: common/models.py:2436 -msgid "Exclude inactive sales orders from search preview window" +#: common/models.py:2437 +msgid "Hide Inactive Parts" msgstr "" -#: common/models.py:2442 -msgid "Search Return Orders" +#: common/models.py:2438 +msgid "Excluded inactive parts from search preview window" msgstr "" #: common/models.py:2443 -msgid "Display return orders in search preview window" +msgid "Search Categories" msgstr "" -#: common/models.py:2448 -msgid "Exclude Inactive Return Orders" +#: common/models.py:2444 +msgid "Display part categories in search preview window" +msgstr "" + +#: common/models.py:2449 +msgid "Search Stock" msgstr "" #: common/models.py:2450 -msgid "Exclude inactive return orders from search preview window" +msgid "Display stock items in search preview window" msgstr "" -#: common/models.py:2456 -msgid "Search Preview Results" +#: common/models.py:2455 +msgid "Hide Unavailable Stock Items" msgstr "" -#: common/models.py:2458 -msgid "Number of results to show in each section of the search preview window" +#: common/models.py:2457 +msgid "Exclude stock items which are not available from the search preview window" +msgstr "" + +#: common/models.py:2463 +msgid "Search Locations" msgstr "" #: common/models.py:2464 -msgid "Regex Search" +msgid "Display stock locations in search preview window" msgstr "" -#: common/models.py:2465 -msgid "Enable regular expressions in search queries" +#: common/models.py:2469 +msgid "Search Companies" msgstr "" #: common/models.py:2470 -msgid "Whole Word Search" +msgid "Display companies in search preview window" msgstr "" -#: common/models.py:2471 -msgid "Search queries return results for whole word matches" +#: common/models.py:2475 +msgid "Search Build Orders" msgstr "" #: common/models.py:2476 -msgid "Show Quantity in Forms" +msgid "Display build orders in search preview window" msgstr "" -#: common/models.py:2477 -msgid "Display available part quantity in some forms" +#: common/models.py:2481 +msgid "Search Purchase Orders" msgstr "" #: common/models.py:2482 -msgid "Escape Key Closes Forms" +msgid "Display purchase orders in search preview window" msgstr "" -#: common/models.py:2483 -msgid "Use the escape key to close modal forms" -msgstr "" - -#: common/models.py:2488 -msgid "Fixed Navbar" +#: common/models.py:2487 +msgid "Exclude Inactive Purchase Orders" msgstr "" #: common/models.py:2489 -msgid "The navbar position is fixed to the top of the screen" -msgstr "" - -#: common/models.py:2494 -msgid "Date Format" +msgid "Exclude inactive purchase orders from search preview window" msgstr "" #: common/models.py:2495 -msgid "Preferred format for displaying dates" +msgid "Search Sales Orders" msgstr "" -#: common/models.py:2508 part/templates/part/detail.html:41 -msgid "Part Scheduling" +#: common/models.py:2496 +msgid "Display sales orders in search preview window" +msgstr "" + +#: common/models.py:2501 +msgid "Exclude Inactive Sales Orders" +msgstr "" + +#: common/models.py:2503 +msgid "Exclude inactive sales orders from search preview window" msgstr "" #: common/models.py:2509 -msgid "Display part scheduling information" +msgid "Search Return Orders" msgstr "" -#: common/models.py:2514 part/templates/part/detail.html:62 -msgid "Part Stocktake" +#: common/models.py:2510 +msgid "Display return orders in search preview window" msgstr "" -#: common/models.py:2516 -msgid "Display part stocktake information (if stocktake functionality is enabled)" +#: common/models.py:2515 +msgid "Exclude Inactive Return Orders" msgstr "" -#: common/models.py:2522 -msgid "Table String Length" +#: common/models.py:2517 +msgid "Exclude inactive return orders from search preview window" msgstr "" -#: common/models.py:2524 -msgid "Maximum length limit for strings displayed in table views" +#: common/models.py:2523 +msgid "Search Preview Results" msgstr "" -#: common/models.py:2530 -msgid "Receive error reports" +#: common/models.py:2525 +msgid "Number of results to show in each section of the search preview window" msgstr "" #: common/models.py:2531 -msgid "Receive notifications for system errors" +msgid "Regex Search" msgstr "" -#: common/models.py:2536 -msgid "Last used printing machines" +#: common/models.py:2532 +msgid "Enable regular expressions in search queries" msgstr "" #: common/models.py:2537 +msgid "Whole Word Search" +msgstr "" + +#: common/models.py:2538 +msgid "Search queries return results for whole word matches" +msgstr "" + +#: common/models.py:2543 +msgid "Show Quantity in Forms" +msgstr "" + +#: common/models.py:2544 +msgid "Display available part quantity in some forms" +msgstr "" + +#: common/models.py:2549 +msgid "Escape Key Closes Forms" +msgstr "" + +#: common/models.py:2550 +msgid "Use the escape key to close modal forms" +msgstr "" + +#: common/models.py:2555 +msgid "Fixed Navbar" +msgstr "" + +#: common/models.py:2556 +msgid "The navbar position is fixed to the top of the screen" +msgstr "" + +#: common/models.py:2561 +msgid "Date Format" +msgstr "" + +#: common/models.py:2562 +msgid "Preferred format for displaying dates" +msgstr "" + +#: common/models.py:2575 part/templates/part/detail.html:41 +msgid "Part Scheduling" +msgstr "" + +#: common/models.py:2576 +msgid "Display part scheduling information" +msgstr "" + +#: common/models.py:2581 part/templates/part/detail.html:62 +msgid "Part Stocktake" +msgstr "" + +#: common/models.py:2583 +msgid "Display part stocktake information (if stocktake functionality is enabled)" +msgstr "" + +#: common/models.py:2589 +msgid "Table String Length" +msgstr "" + +#: common/models.py:2591 +msgid "Maximum length limit for strings displayed in table views" +msgstr "" + +#: common/models.py:2597 +msgid "Receive error reports" +msgstr "" + +#: common/models.py:2598 +msgid "Receive notifications for system errors" +msgstr "" + +#: common/models.py:2603 +msgid "Last used printing machines" +msgstr "" + +#: common/models.py:2604 msgid "Save the last used printing machines for a user" msgstr "" -#: common/models.py:2557 common/models.py:2558 common/models.py:2715 -#: common/models.py:2716 common/models.py:2961 common/models.py:2962 -#: common/models.py:3288 common/models.py:3289 importer/models.py:88 -#: part/models.py:3307 part/models.py:3394 part/models.py:3468 -#: part/models.py:3496 plugin/models.py:274 plugin/models.py:275 -#: report/templates/report/inventree_test_report.html:105 -#: templates/js/translated/stock.js:3120 users/models.py:111 +#: common/models.py:2621 common/models.py:2622 common/models.py:2779 +#: common/models.py:2780 common/models.py:3025 common/models.py:3026 +#: common/models.py:3349 common/models.py:3350 common/models.py:3534 +#: importer/models.py:89 part/models.py:3358 part/models.py:3445 +#: part/models.py:3519 part/models.py:3547 plugin/models.py:313 +#: plugin/models.py:314 report/templates/report/inventree_test_report.html:105 +#: templates/js/translated/stock.js:3121 users/models.py:111 msgid "User" msgstr "" -#: common/models.py:2580 +#: common/models.py:2644 msgid "Price break quantity" msgstr "" -#: common/models.py:2587 company/serializers.py:513 order/admin.py:42 -#: order/models.py:1430 order/models.py:2417 -#: templates/js/translated/company.js:1823 templates/js/translated/part.js:1892 +#: common/models.py:2651 company/serializers.py:524 order/admin.py:42 +#: order/models.py:1447 order/models.py:2456 +#: templates/js/translated/company.js:1824 templates/js/translated/part.js:1892 #: templates/js/translated/pricing.js:621 #: templates/js/translated/return_order.js:739 msgid "Price" msgstr "" -#: common/models.py:2588 +#: common/models.py:2652 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:2692 common/models.py:2877 +#: common/models.py:2756 common/models.py:2941 msgid "Endpoint" msgstr "" -#: common/models.py:2693 +#: common/models.py:2757 msgid "Endpoint at which this webhook is received" msgstr "" -#: common/models.py:2703 +#: common/models.py:2767 msgid "Name for this webhook" msgstr "" -#: common/models.py:2707 +#: common/models.py:2771 msgid "Is this webhook active" msgstr "" -#: common/models.py:2723 users/models.py:159 +#: common/models.py:2787 users/models.py:159 msgid "Token" msgstr "" -#: common/models.py:2724 +#: common/models.py:2788 msgid "Token for access" msgstr "" -#: common/models.py:2732 +#: common/models.py:2796 msgid "Secret" msgstr "" -#: common/models.py:2733 +#: common/models.py:2797 msgid "Shared secret for HMAC" msgstr "" -#: common/models.py:2841 +#: common/models.py:2905 msgid "Message ID" msgstr "" -#: common/models.py:2842 +#: common/models.py:2906 msgid "Unique identifier for this message" msgstr "" -#: common/models.py:2850 +#: common/models.py:2914 msgid "Host" msgstr "" -#: common/models.py:2851 +#: common/models.py:2915 msgid "Host from which this message was received" msgstr "" -#: common/models.py:2859 +#: common/models.py:2923 msgid "Header" msgstr "" -#: common/models.py:2860 +#: common/models.py:2924 msgid "Header of this message" msgstr "" -#: common/models.py:2867 +#: common/models.py:2931 msgid "Body" msgstr "" -#: common/models.py:2868 +#: common/models.py:2932 msgid "Body of this message" msgstr "" -#: common/models.py:2878 +#: common/models.py:2942 msgid "Endpoint on which this message was received" msgstr "" -#: common/models.py:2883 +#: common/models.py:2947 msgid "Worked on" msgstr "" -#: common/models.py:2884 +#: common/models.py:2948 msgid "Was the work on this message finished?" msgstr "" -#: common/models.py:3010 +#: common/models.py:3074 msgid "Id" msgstr "" -#: common/models.py:3012 templates/js/translated/company.js:965 -#: templates/js/translated/news.js:44 +#: common/models.py:3076 part/serializers.py:271 +#: templates/js/translated/company.js:966 templates/js/translated/news.js:44 msgid "Title" msgstr "" -#: common/models.py:3014 common/models.py:3272 company/models.py:149 -#: company/models.py:446 company/models.py:512 company/models.py:818 -#: order/models.py:302 order/models.py:1385 order/models.py:1817 -#: part/admin.py:55 part/models.py:1057 +#: common/models.py:3078 common/models.py:3333 company/models.py:146 +#: company/models.py:443 company/models.py:509 company/models.py:815 +#: order/models.py:309 order/models.py:1402 order/models.py:1846 +#: part/admin.py:55 part/models.py:1118 #: part/templates/part/part_scheduling.html:11 #: report/templates/report/inventree_build_order_report.html:164 -#: stock/admin.py:229 templates/js/translated/company.js:1319 -#: templates/js/translated/company.js:1673 templates/js/translated/order.js:376 +#: stock/admin.py:230 templates/js/translated/company.js:1320 +#: templates/js/translated/company.js:1674 templates/js/translated/order.js:376 #: templates/js/translated/part.js:2475 -#: templates/js/translated/purchase_order.js:2110 -#: templates/js/translated/purchase_order.js:2274 +#: templates/js/translated/purchase_order.js:2094 +#: templates/js/translated/purchase_order.js:2258 #: templates/js/translated/return_order.js:778 -#: templates/js/translated/sales_order.js:1092 -#: templates/js/translated/sales_order.js:2023 +#: templates/js/translated/sales_order.js:1058 +#: templates/js/translated/sales_order.js:2004 msgid "Link" msgstr "" -#: common/models.py:3016 templates/js/translated/news.js:60 +#: common/models.py:3080 templates/js/translated/news.js:60 msgid "Published" msgstr "" -#: common/models.py:3018 templates/InvenTree/settings/plugin_settings.html:32 +#: common/models.py:3082 templates/InvenTree/settings/plugin_settings.html:32 #: templates/js/translated/news.js:56 templates/js/translated/plugin.js:103 msgid "Author" msgstr "" -#: common/models.py:3020 templates/js/translated/news.js:52 +#: common/models.py:3084 templates/js/translated/news.js:52 msgid "Summary" msgstr "" -#: common/models.py:3023 +#: common/models.py:3087 msgid "Read" msgstr "" -#: common/models.py:3023 +#: common/models.py:3087 msgid "Was this news item read?" msgstr "" -#: common/models.py:3040 company/models.py:159 part/models.py:1067 +#: common/models.py:3104 company/models.py:156 part/models.py:1128 #: report/templates/report/inventree_bill_of_materials_report.html:126 #: report/templates/report/inventree_bill_of_materials_report.html:148 #: report/templates/report/inventree_return_order_report.html:35 -#: stock/templates/stock/item_base.html:133 templates/503.html:31 +#: stock/templates/stock/item_base.html:130 templates/503.html:31 #: templates/hover_image.html:7 templates/hover_image.html:9 #: templates/modals.html:6 msgid "Image" msgstr "" -#: common/models.py:3040 +#: common/models.py:3104 msgid "Image file" msgstr "" -#: common/models.py:3052 common/models.py:3256 +#: common/models.py:3116 common/models.py:3317 msgid "Target model type for this image" msgstr "" -#: common/models.py:3056 +#: common/models.py:3120 msgid "Target model ID for this image" msgstr "" -#: common/models.py:3078 +#: common/models.py:3142 msgid "Custom Unit" msgstr "" -#: common/models.py:3099 +#: common/models.py:3160 msgid "Unit symbol must be unique" msgstr "" -#: common/models.py:3114 +#: common/models.py:3175 msgid "Unit name must be a valid identifier" msgstr "" -#: common/models.py:3133 +#: common/models.py:3194 msgid "Unit name" msgstr "" -#: common/models.py:3140 templates/InvenTree/settings/settings_staff_js.html:75 +#: common/models.py:3201 templates/InvenTree/settings/settings_staff_js.html:75 msgid "Symbol" msgstr "" -#: common/models.py:3141 +#: common/models.py:3202 msgid "Optional unit symbol" msgstr "" -#: common/models.py:3147 templates/InvenTree/settings/settings_staff_js.html:71 +#: common/models.py:3208 templates/InvenTree/settings/settings_staff_js.html:71 msgid "Definition" msgstr "" -#: common/models.py:3148 +#: common/models.py:3209 msgid "Unit definition" msgstr "" -#: common/models.py:3206 common/models.py:3263 stock/models.py:2558 -#: templates/js/translated/attachment.js:119 +#: common/models.py:3267 common/models.py:3324 stock/models.py:2674 +#: stock/serializers.py:244 templates/js/translated/attachment.js:119 #: templates/js/translated/attachment.js:345 msgid "Attachment" msgstr "" -#: common/models.py:3218 +#: common/models.py:3279 msgid "Missing file" msgstr "" -#: common/models.py:3219 +#: common/models.py:3280 msgid "Missing external link" msgstr "" -#: common/models.py:3264 +#: common/models.py:3325 msgid "Select file to attach" msgstr "" -#: common/models.py:3279 templates/js/translated/attachment.js:120 +#: common/models.py:3340 templates/js/translated/attachment.js:120 #: templates/js/translated/attachment.js:360 msgid "Comment" msgstr "" -#: common/models.py:3280 +#: common/models.py:3341 msgid "Attachment comment" msgstr "" -#: common/models.py:3296 +#: common/models.py:3357 msgid "Upload date" msgstr "" -#: common/models.py:3297 +#: common/models.py:3358 msgid "Date the file was uploaded" msgstr "" -#: common/models.py:3301 +#: common/models.py:3362 msgid "File size" msgstr "" -#: common/models.py:3301 +#: common/models.py:3362 msgid "File size in bytes" msgstr "" -#: common/models.py:3339 common/serializers.py:562 +#: common/models.py:3400 common/serializers.py:609 msgid "Invalid model type specified for attachment" msgstr "" -#: common/notifications.py:314 +#: common/models.py:3409 plugin/models.py:43 users/models.py:100 +msgid "Key" +msgstr "" + +#: common/models.py:3410 +msgid "Value that will be saved in the models database" +msgstr "" + +#: common/models.py:3413 +msgid "Name of the state" +msgstr "" + +#: common/models.py:3417 part/serializers.py:273 +msgid "Label" +msgstr "Silt" + +#: common/models.py:3418 +msgid "Label that will be displayed in the frontend" +msgstr "" + +#: common/models.py:3424 +msgid "Color" +msgstr "" + +#: common/models.py:3425 +msgid "Color that will be displayed in the frontend" +msgstr "" + +#: common/models.py:3428 +msgid "Logical Key" +msgstr "" + +#: common/models.py:3430 +msgid "State logical key that is equal to this custom state in business logic" +msgstr "" + +#: common/models.py:3438 part/serializers.py:275 +msgid "Model" +msgstr "" + +#: common/models.py:3439 +msgid "Model this state is associated with" +msgstr "" + +#: common/models.py:3443 +msgid "Reference Status Set" +msgstr "" + +#: common/models.py:3444 +msgid "Status set that is extended with this custom state" +msgstr "" + +#: common/models.py:3450 +msgid "Custom State" +msgstr "" + +#: common/models.py:3451 +msgid "Custom States" +msgstr "" + +#: common/models.py:3466 +msgid "Model must be selected" +msgstr "" + +#: common/models.py:3469 +msgid "Key must be selected" +msgstr "" + +#: common/models.py:3472 +msgid "Logical key must be selected" +msgstr "" + +#: common/models.py:3476 +msgid "Key must be different from logical key" +msgstr "" + +#: common/models.py:3480 +msgid "Reference status must be selected" +msgstr "" + +#: common/models.py:3492 +msgid "Reference status set not found" +msgstr "" + +#: common/models.py:3498 +msgid "Key must be different from the logical keys of the reference status" +msgstr "" + +#: common/models.py:3504 +msgid "Logical key must be in the logical keys of the reference status" +msgstr "" + +#: common/models.py:3519 +msgid "Barcode Scan" +msgstr "" + +#: common/models.py:3523 importer/models.py:512 part/models.py:4009 +msgid "Data" +msgstr "" + +#: common/models.py:3524 +msgid "Barcode data" +msgstr "" + +#: common/models.py:3535 +msgid "User who scanned the barcode" +msgstr "" + +#: common/models.py:3540 importer/models.py:60 +msgid "Timestamp" +msgstr "" + +#: common/models.py:3541 +msgid "Date and time of the barcode scan" +msgstr "" + +#: common/models.py:3547 +msgid "URL endpoint which processed the barcode" +msgstr "" + +#: common/models.py:3554 order/models.py:1437 plugin/serializers.py:89 +msgid "Context" +msgstr "" + +#: common/models.py:3555 +msgid "Context data for the barcode scan" +msgstr "" + +#: common/models.py:3562 +msgid "Response" +msgstr "" + +#: common/models.py:3563 +msgid "Response data from the barcode scan" +msgstr "" + +#: common/models.py:3569 report/templates/report/inventree_test_report.html:103 +#: stock/models.py:2660 +msgid "Result" +msgstr "" + +#: common/models.py:3570 +msgid "Was the barcode scan successful?" +msgstr "" + +#: common/notifications.py:328 #, python-brace-format msgid "New {verbose_name}" msgstr "" -#: common/notifications.py:316 +#: common/notifications.py:330 msgid "A new order has been created and assigned to you" msgstr "" -#: common/notifications.py:322 +#: common/notifications.py:336 #, python-brace-format msgid "{verbose_name} canceled" msgstr "" -#: common/notifications.py:324 +#: common/notifications.py:338 msgid "A order that is assigned to you was canceled" msgstr "" -#: common/notifications.py:330 common/notifications.py:337 order/api.py:462 +#: common/notifications.py:344 common/notifications.py:351 order/api.py:440 msgid "Items Received" msgstr "" -#: common/notifications.py:332 +#: common/notifications.py:346 msgid "Items have been received against a purchase order" msgstr "" -#: common/notifications.py:339 +#: common/notifications.py:353 msgid "Items have been received against a return order" msgstr "" -#: common/notifications.py:457 +#: common/notifications.py:475 msgid "Error raised by plugin" msgstr "" -#: common/serializers.py:375 +#: common/serializers.py:423 msgid "Is Running" msgstr "" -#: common/serializers.py:381 +#: common/serializers.py:429 msgid "Pending Tasks" msgstr "" -#: common/serializers.py:387 +#: common/serializers.py:435 msgid "Scheduled Tasks" msgstr "" -#: common/serializers.py:393 +#: common/serializers.py:441 msgid "Failed Tasks" msgstr "" -#: common/serializers.py:408 +#: common/serializers.py:456 msgid "Task ID" msgstr "" -#: common/serializers.py:408 +#: common/serializers.py:456 msgid "Unique task ID" msgstr "" -#: common/serializers.py:410 +#: common/serializers.py:458 msgid "Lock" msgstr "" -#: common/serializers.py:410 +#: common/serializers.py:458 msgid "Lock time" msgstr "" -#: common/serializers.py:412 +#: common/serializers.py:460 msgid "Task name" msgstr "" -#: common/serializers.py:414 +#: common/serializers.py:462 msgid "Function" msgstr "" -#: common/serializers.py:414 +#: common/serializers.py:462 msgid "Function name" msgstr "" -#: common/serializers.py:416 +#: common/serializers.py:464 msgid "Arguments" msgstr "" -#: common/serializers.py:416 +#: common/serializers.py:464 msgid "Task arguments" msgstr "" -#: common/serializers.py:419 +#: common/serializers.py:467 msgid "Keyword Arguments" msgstr "" -#: common/serializers.py:419 +#: common/serializers.py:467 msgid "Task keyword arguments" msgstr "" -#: common/serializers.py:529 +#: common/serializers.py:577 msgid "Filename" msgstr "" -#: common/serializers.py:536 report/api.py:100 report/serializers.py:53 +#: common/serializers.py:584 report/api.py:100 report/serializers.py:54 msgid "Model Type" msgstr "" -#: common/serializers.py:565 +#: common/serializers.py:612 msgid "User does not have permission to create or edit attachments for this model" msgstr "" @@ -4116,15 +4295,15 @@ msgstr "" msgid "Match Items" msgstr "" -#: common/views.py:401 +#: common/views.py:397 msgid "Fields matching failed" msgstr "" -#: common/views.py:464 +#: common/views.py:460 msgid "Parts imported" msgstr "" -#: common/views.py:494 order/templates/order/order_wizard/match_fields.html:27 +#: common/views.py:490 order/templates/order/order_wizard/match_fields.html:27 #: order/templates/order/order_wizard/match_parts.html:19 #: order/templates/order/order_wizard/po_upload.html:49 #: part/templates/part/import_wizard/match_fields.html:27 @@ -4155,429 +4334,429 @@ msgstr "" msgid "Supplier is Active" msgstr "" -#: company/models.py:100 company/models.py:371 +#: company/models.py:97 company/models.py:368 #: company/templates/company/company_base.html:8 #: company/templates/company/company_base.html:12 stock/api.py:812 -#: templates/InvenTree/search.html:178 templates/js/translated/company.js:496 +#: templates/InvenTree/search.html:178 templates/js/translated/company.js:497 msgid "Company" msgstr "" -#: company/models.py:101 company/views.py:51 +#: company/models.py:98 company/views.py:51 #: templates/js/translated/search.js:192 msgid "Companies" msgstr "" -#: company/models.py:117 +#: company/models.py:114 msgid "Company description" msgstr "" -#: company/models.py:118 +#: company/models.py:115 msgid "Description of the company" msgstr "" -#: company/models.py:123 company/templates/company/company_base.html:106 +#: company/models.py:120 company/templates/company/company_base.html:106 #: templates/InvenTree/settings/plugin_settings.html:54 -#: templates/js/translated/company.js:532 +#: templates/js/translated/company.js:533 msgid "Website" msgstr "" -#: company/models.py:123 +#: company/models.py:120 msgid "Company website URL" msgstr "" -#: company/models.py:128 +#: company/models.py:125 msgid "Phone number" msgstr "" -#: company/models.py:130 +#: company/models.py:127 msgid "Contact phone number" msgstr "" -#: company/models.py:137 +#: company/models.py:134 msgid "Contact email address" msgstr "" -#: company/models.py:142 company/models.py:275 -#: company/templates/company/company_base.html:145 order/models.py:342 -#: order/templates/order/order_base.html:208 -#: order/templates/order/return_order_base.html:177 -#: order/templates/order/sales_order_base.html:221 +#: company/models.py:139 company/models.py:272 +#: company/templates/company/company_base.html:145 order/models.py:349 +#: order/templates/order/order_base.html:217 +#: order/templates/order/return_order_base.html:178 +#: order/templates/order/sales_order_base.html:222 msgid "Contact" msgstr "" -#: company/models.py:144 +#: company/models.py:141 msgid "Point of contact" msgstr "" -#: company/models.py:150 +#: company/models.py:147 msgid "Link to external company information" msgstr "" -#: company/models.py:163 +#: company/models.py:160 msgid "Is this company active?" msgstr "" -#: company/models.py:168 +#: company/models.py:165 msgid "Is customer" msgstr "" -#: company/models.py:169 +#: company/models.py:166 msgid "Do you sell items to this company?" msgstr "" -#: company/models.py:174 +#: company/models.py:171 msgid "Is supplier" msgstr "" -#: company/models.py:175 +#: company/models.py:172 msgid "Do you purchase items from this company?" msgstr "" -#: company/models.py:180 +#: company/models.py:177 msgid "Is manufacturer" msgstr "" -#: company/models.py:181 +#: company/models.py:178 msgid "Does this company manufacture parts?" msgstr "" -#: company/models.py:189 +#: company/models.py:186 msgid "Default currency used for this company" msgstr "" -#: company/models.py:314 company/templates/company/company_base.html:124 -#: order/models.py:352 order/templates/order/order_base.html:215 -#: order/templates/order/return_order_base.html:184 -#: order/templates/order/sales_order_base.html:228 +#: company/models.py:311 company/templates/company/company_base.html:124 +#: order/models.py:359 order/templates/order/order_base.html:224 +#: order/templates/order/return_order_base.html:185 +#: order/templates/order/sales_order_base.html:229 msgid "Address" msgstr "" -#: company/models.py:315 company/templates/company/sidebar.html:35 +#: company/models.py:312 company/templates/company/sidebar.html:35 msgid "Addresses" msgstr "" -#: company/models.py:372 +#: company/models.py:369 msgid "Select company" msgstr "" -#: company/models.py:377 +#: company/models.py:374 msgid "Address title" msgstr "" -#: company/models.py:378 +#: company/models.py:375 msgid "Title describing the address entry" msgstr "" -#: company/models.py:384 +#: company/models.py:381 msgid "Primary address" msgstr "" -#: company/models.py:385 +#: company/models.py:382 msgid "Set as primary address" msgstr "" -#: company/models.py:390 templates/js/translated/company.js:914 -#: templates/js/translated/company.js:971 +#: company/models.py:387 templates/js/translated/company.js:915 +#: templates/js/translated/company.js:972 msgid "Line 1" msgstr "" -#: company/models.py:391 +#: company/models.py:388 msgid "Address line 1" msgstr "" -#: company/models.py:397 templates/js/translated/company.js:915 -#: templates/js/translated/company.js:977 +#: company/models.py:394 templates/js/translated/company.js:916 +#: templates/js/translated/company.js:978 msgid "Line 2" msgstr "" -#: company/models.py:398 +#: company/models.py:395 msgid "Address line 2" msgstr "" -#: company/models.py:404 company/models.py:405 -#: templates/js/translated/company.js:983 +#: company/models.py:401 company/models.py:402 +#: templates/js/translated/company.js:984 msgid "Postal code" msgstr "" -#: company/models.py:411 +#: company/models.py:408 msgid "City/Region" msgstr "" -#: company/models.py:412 +#: company/models.py:409 msgid "Postal code city/region" msgstr "" -#: company/models.py:418 +#: company/models.py:415 msgid "State/Province" msgstr "" -#: company/models.py:419 +#: company/models.py:416 msgid "State or province" msgstr "" -#: company/models.py:425 templates/js/translated/company.js:1001 +#: company/models.py:422 templates/js/translated/company.js:1002 msgid "Country" msgstr "" -#: company/models.py:426 +#: company/models.py:423 msgid "Address country" msgstr "" -#: company/models.py:432 +#: company/models.py:429 msgid "Courier shipping notes" msgstr "" -#: company/models.py:433 +#: company/models.py:430 msgid "Notes for shipping courier" msgstr "" -#: company/models.py:439 +#: company/models.py:436 msgid "Internal shipping notes" msgstr "" -#: company/models.py:440 +#: company/models.py:437 msgid "Shipping notes for internal use" msgstr "" -#: company/models.py:447 +#: company/models.py:444 msgid "Link to address information (external)" msgstr "" -#: company/models.py:470 company/models.py:587 company/models.py:811 +#: company/models.py:467 company/models.py:584 company/models.py:808 #: company/templates/company/manufacturer_part.html:7 #: company/templates/company/manufacturer_part.html:24 -#: stock/templates/stock/item_base.html:217 +#: stock/templates/stock/item_base.html:214 msgid "Manufacturer Part" msgstr "" -#: company/models.py:487 company/models.py:779 stock/models.py:787 -#: stock/serializers.py:445 stock/templates/stock/item_base.html:142 +#: company/models.py:484 company/models.py:776 stock/models.py:864 +#: stock/serializers.py:455 stock/templates/stock/item_base.html:139 #: templates/js/translated/bom.js:622 msgid "Base Part" msgstr "" -#: company/models.py:489 company/models.py:781 +#: company/models.py:486 company/models.py:778 msgid "Select part" msgstr "" -#: company/models.py:498 company/templates/company/company_base.html:82 +#: company/models.py:495 company/templates/company/company_base.html:82 #: company/templates/company/manufacturer_part.html:90 -#: company/templates/company/supplier_part.html:145 part/serializers.py:554 -#: stock/templates/stock/item_base.html:207 -#: templates/js/translated/company.js:507 -#: templates/js/translated/company.js:1118 -#: templates/js/translated/company.js:1296 -#: templates/js/translated/company.js:1611 +#: company/templates/company/supplier_part.html:146 part/serializers.py:598 +#: stock/templates/stock/item_base.html:204 +#: templates/js/translated/company.js:508 +#: templates/js/translated/company.js:1119 +#: templates/js/translated/company.js:1297 +#: templates/js/translated/company.js:1612 #: templates/js/translated/table_filters.js:812 msgid "Manufacturer" msgstr "" -#: company/models.py:499 +#: company/models.py:496 msgid "Select manufacturer" msgstr "" -#: company/models.py:505 company/templates/company/manufacturer_part.html:101 -#: company/templates/company/supplier_part.html:153 order/serializers.py:556 -#: part/serializers.py:564 templates/js/translated/company.js:351 -#: templates/js/translated/company.js:1117 -#: templates/js/translated/company.js:1312 -#: templates/js/translated/company.js:1630 templates/js/translated/part.js:1807 -#: templates/js/translated/purchase_order.js:1921 -#: templates/js/translated/purchase_order.js:2123 +#: company/models.py:502 company/templates/company/manufacturer_part.html:101 +#: company/templates/company/supplier_part.html:154 order/serializers.py:641 +#: part/serializers.py:608 templates/js/translated/company.js:352 +#: templates/js/translated/company.js:1118 +#: templates/js/translated/company.js:1313 +#: templates/js/translated/company.js:1631 templates/js/translated/part.js:1807 +#: templates/js/translated/purchase_order.js:1905 +#: templates/js/translated/purchase_order.js:2107 msgid "MPN" msgstr "" -#: company/models.py:513 +#: company/models.py:510 msgid "URL for external manufacturer part link" msgstr "" -#: company/models.py:522 +#: company/models.py:519 msgid "Manufacturer part description" msgstr "" -#: company/models.py:575 +#: company/models.py:572 msgid "Manufacturer Part Parameter" msgstr "" -#: company/models.py:594 +#: company/models.py:591 msgid "Parameter name" msgstr "" -#: company/models.py:600 report/templates/report/inventree_test_report.html:104 -#: stock/models.py:2550 templates/js/translated/company.js:1166 -#: templates/js/translated/company.js:1419 templates/js/translated/part.js:1499 +#: company/models.py:597 report/templates/report/inventree_test_report.html:104 +#: stock/models.py:2666 templates/js/translated/company.js:1167 +#: templates/js/translated/company.js:1420 templates/js/translated/part.js:1499 #: templates/js/translated/stock.js:1607 msgid "Value" msgstr "" -#: company/models.py:601 +#: company/models.py:598 msgid "Parameter value" msgstr "" -#: company/models.py:608 company/templates/company/supplier_part.html:168 -#: part/admin.py:57 part/models.py:1147 part/models.py:3771 -#: part/templates/part/part_base.html:293 -#: templates/js/translated/company.js:1425 templates/js/translated/part.js:1518 +#: company/models.py:605 company/templates/company/supplier_part.html:169 +#: part/admin.py:57 part/models.py:1208 part/models.py:3822 +#: part/templates/part/part_base.html:301 +#: templates/js/translated/company.js:1426 templates/js/translated/part.js:1518 #: templates/js/translated/part.js:1622 templates/js/translated/part.js:2376 msgid "Units" msgstr "" -#: company/models.py:609 +#: company/models.py:606 msgid "Parameter units" msgstr "" -#: company/models.py:662 company/templates/company/supplier_part.html:7 -#: company/templates/company/supplier_part.html:24 order/api.py:442 -#: order/serializers.py:491 stock/models.py:798 -#: stock/templates/stock/item_base.html:233 -#: templates/js/translated/build.js:1052 -#: templates/js/translated/company.js:1600 -#: templates/js/translated/purchase_order.js:752 -#: templates/js/translated/stock.js:2365 +#: company/models.py:659 company/templates/company/supplier_part.html:8 +#: company/templates/company/supplier_part.html:25 order/api.py:392 +#: order/serializers.py:576 stock/models.py:875 +#: stock/templates/stock/item_base.html:230 +#: templates/js/translated/build.js:1055 +#: templates/js/translated/company.js:1601 +#: templates/js/translated/purchase_order.js:735 +#: templates/js/translated/stock.js:2366 msgid "Supplier Part" msgstr "" -#: company/models.py:719 +#: company/models.py:716 msgid "Pack units must be compatible with the base part units" msgstr "" -#: company/models.py:726 +#: company/models.py:723 msgid "Pack units must be greater than zero" msgstr "" -#: company/models.py:740 +#: company/models.py:737 msgid "Linked manufacturer part must reference the same base part" msgstr "" -#: company/models.py:789 company/templates/company/company_base.html:87 -#: company/templates/company/supplier_part.html:129 order/models.py:491 -#: order/templates/order/order_base.html:141 part/bom.py:280 part/bom.py:318 -#: part/serializers.py:538 plugin/builtin/suppliers/digikey.py:25 +#: company/models.py:786 company/templates/company/company_base.html:87 +#: company/templates/company/supplier_part.html:130 order/models.py:503 +#: order/templates/order/order_base.html:150 part/bom.py:279 part/bom.py:314 +#: part/serializers.py:582 plugin/builtin/suppliers/digikey.py:25 #: plugin/builtin/suppliers/lcsc.py:26 plugin/builtin/suppliers/mouser.py:24 -#: plugin/builtin/suppliers/tme.py:26 stock/templates/stock/item_base.html:224 +#: plugin/builtin/suppliers/tme.py:26 stock/templates/stock/item_base.html:221 #: templates/email/overdue_purchase_order.html:16 -#: templates/js/translated/company.js:350 -#: templates/js/translated/company.js:511 -#: templates/js/translated/company.js:1584 templates/js/translated/part.js:1775 +#: templates/js/translated/company.js:351 +#: templates/js/translated/company.js:512 +#: templates/js/translated/company.js:1585 templates/js/translated/part.js:1775 #: templates/js/translated/pricing.js:498 -#: templates/js/translated/purchase_order.js:1759 +#: templates/js/translated/purchase_order.js:1743 #: templates/js/translated/table_filters.js:816 msgid "Supplier" msgstr "" -#: company/models.py:790 +#: company/models.py:787 msgid "Select supplier" msgstr "" -#: company/models.py:796 part/serializers.py:549 +#: company/models.py:793 part/serializers.py:593 msgid "Supplier stock keeping unit" msgstr "" -#: company/models.py:802 +#: company/models.py:799 msgid "Is this supplier part active?" msgstr "" -#: company/models.py:812 +#: company/models.py:809 msgid "Select manufacturer part" msgstr "" -#: company/models.py:819 +#: company/models.py:816 msgid "URL for external supplier part link" msgstr "" -#: company/models.py:828 +#: company/models.py:825 msgid "Supplier part description" msgstr "" -#: company/models.py:835 company/templates/company/supplier_part.html:187 -#: order/serializers.py:698 part/admin.py:415 part/models.py:4288 +#: company/models.py:832 company/templates/company/supplier_part.html:188 +#: order/serializers.py:783 part/admin.py:415 part/models.py:4345 #: part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_bill_of_materials_report.html:140 #: report/templates/report/inventree_purchase_order_report.html:32 #: report/templates/report/inventree_return_order_report.html:27 #: report/templates/report/inventree_sales_order_report.html:32 #: report/templates/report/inventree_stock_location_report.html:105 -#: stock/serializers.py:776 templates/js/translated/purchase_order.js:1185 -#: templates/js/translated/purchase_order.js:1344 +#: stock/serializers.py:807 templates/js/translated/purchase_order.js:1168 +#: templates/js/translated/purchase_order.js:1327 msgid "Note" msgstr "" -#: company/models.py:844 part/models.py:2117 +#: company/models.py:841 part/models.py:2177 msgid "base cost" msgstr "" -#: company/models.py:845 part/models.py:2118 +#: company/models.py:842 part/models.py:2178 msgid "Minimum charge (e.g. stocking fee)" msgstr "" -#: company/models.py:853 +#: company/models.py:850 msgid "Part packaging" msgstr "" -#: company/models.py:858 templates/js/translated/company.js:1651 +#: company/models.py:855 templates/js/translated/company.js:1652 #: templates/js/translated/part.js:1828 templates/js/translated/part.js:1884 -#: templates/js/translated/purchase_order.js:311 -#: templates/js/translated/purchase_order.js:841 -#: templates/js/translated/purchase_order.js:1103 -#: templates/js/translated/purchase_order.js:2154 -#: templates/js/translated/purchase_order.js:2171 +#: templates/js/translated/purchase_order.js:294 +#: templates/js/translated/purchase_order.js:824 +#: templates/js/translated/purchase_order.js:1086 +#: templates/js/translated/purchase_order.js:2138 +#: templates/js/translated/purchase_order.js:2155 msgid "Pack Quantity" msgstr "" -#: company/models.py:860 +#: company/models.py:857 msgid "Total quantity supplied in a single pack. Leave empty for single items." msgstr "" -#: company/models.py:879 part/models.py:2124 +#: company/models.py:876 part/models.py:2184 msgid "multiple" msgstr "" -#: company/models.py:880 +#: company/models.py:877 msgid "Order multiple" msgstr "" -#: company/models.py:892 +#: company/models.py:889 msgid "Quantity available from supplier" msgstr "" -#: company/models.py:898 +#: company/models.py:895 msgid "Availability Updated" msgstr "" -#: company/models.py:899 +#: company/models.py:896 msgid "Date of last update of availability data" msgstr "" -#: company/models.py:1027 +#: company/models.py:1024 msgid "Supplier Price Break" msgstr "" -#: company/serializers.py:174 +#: company/serializers.py:178 msgid "Default currency used for this supplier" msgstr "" -#: company/serializers.py:210 +#: company/serializers.py:214 msgid "Company Name" msgstr "" -#: company/serializers.py:393 part/admin.py:126 part/serializers.py:898 -#: part/templates/part/part_base.html:197 -#: templates/js/translated/company.js:1689 +#: company/serializers.py:397 part/admin.py:126 part/serializers.py:950 +#: part/templates/part/part_base.html:198 stock/serializers.py:474 +#: templates/js/translated/company.js:1690 #: templates/js/translated/table_filters.js:362 msgid "In Stock" msgstr "" #: company/templates/company/company_base.html:16 -#: part/templates/part/part_base.html:146 -#: templates/js/translated/company.js:1287 -#: templates/js/translated/company.js:1575 -#: templates/js/translated/model_renderers.js:313 +#: part/templates/part/part_base.html:147 +#: templates/js/translated/company.js:1288 +#: templates/js/translated/company.js:1576 +#: templates/js/translated/model_renderers.js:316 #: templates/js/translated/part.js:817 templates/js/translated/part.js:1225 msgid "Inactive" msgstr "" #: company/templates/company/company_base.html:27 -#: templates/js/translated/purchase_order.js:242 +#: templates/js/translated/purchase_order.js:224 msgid "Create Purchase Order" msgstr "" @@ -4590,7 +4769,7 @@ msgid "Edit company information" msgstr "" #: company/templates/company/company_base.html:39 -#: templates/js/translated/company.js:445 +#: templates/js/translated/company.js:446 msgid "Edit Company" msgstr "" @@ -4605,11 +4784,12 @@ msgstr "" #: company/templates/company/company_base.html:53 #: company/templates/company/manufacturer_part.html:51 -#: company/templates/company/supplier_part.html:83 +#: company/templates/company/supplier_part.html:84 #: part/templates/part/part_thumb.html:20 #: report/templates/report/inventree_build_order_report.html:98 #: report/templates/report/inventree_purchase_order_report.html:40 #: report/templates/report/inventree_sales_order_report.html:40 +#: report/templates/report/inventree_sales_order_shipment_report.html:37 #: report/templates/report/inventree_test_report.html:84 #: report/templates/report/inventree_test_report.html:162 msgid "Part image" @@ -4630,16 +4810,16 @@ msgstr "" msgid "Delete image" msgstr "" -#: company/templates/company/company_base.html:92 order/models.py:990 -#: order/models.py:2147 order/templates/order/return_order_base.html:134 -#: order/templates/order/sales_order_base.html:151 stock/models.py:840 -#: stock/models.py:841 stock/serializers.py:1329 -#: stock/templates/stock/item_base.html:405 +#: company/templates/company/company_base.html:92 order/models.py:1017 +#: order/models.py:2186 order/templates/order/return_order_base.html:135 +#: order/templates/order/sales_order_base.html:152 stock/models.py:917 +#: stock/models.py:918 stock/serializers.py:1360 +#: stock/templates/stock/item_base.html:402 #: templates/email/overdue_sales_order.html:16 -#: templates/js/translated/company.js:503 +#: templates/js/translated/company.js:504 #: templates/js/translated/return_order.js:295 -#: templates/js/translated/sales_order.js:820 -#: templates/js/translated/stock.js:3043 +#: templates/js/translated/sales_order.js:779 +#: templates/js/translated/stock.js:3044 #: templates/js/translated/table_filters.js:820 msgid "Customer" msgstr "" @@ -4653,7 +4833,7 @@ msgid "Phone" msgstr "" #: company/templates/company/company_base.html:211 -#: part/templates/part/part_base.html:536 +#: part/templates/part/part_base.html:544 msgid "Remove Image" msgstr "" @@ -4662,19 +4842,19 @@ msgid "Remove associated image from this company" msgstr "" #: company/templates/company/company_base.html:214 -#: part/templates/part/part_base.html:539 +#: part/templates/part/part_base.html:547 #: templates/InvenTree/settings/user.html:88 #: templates/InvenTree/settings/user_sso.html:43 msgid "Remove" msgstr "" #: company/templates/company/company_base.html:243 -#: part/templates/part/part_base.html:568 +#: part/templates/part/part_base.html:576 msgid "Upload Image" msgstr "" #: company/templates/company/company_base.html:258 -#: part/templates/part/part_base.html:622 +#: part/templates/part/part_base.html:630 msgid "Download Image" msgstr "" @@ -4714,7 +4894,7 @@ msgstr "" #: company/templates/company/detail.html:75 #: company/templates/company/sidebar.html:12 #: company/templates/company/supplier_part_sidebar.html:7 -#: order/templates/order/order_base.html:13 +#: order/templates/order/order_base.html:14 #: order/templates/order/purchase_orders.html:8 #: order/templates/order/purchase_orders.html:12 #: part/templates/part/detail.html:122 part/templates/part/part_sidebar.html:35 @@ -4737,7 +4917,7 @@ msgstr "" #: company/templates/company/detail.html:101 #: company/templates/company/sidebar.html:21 -#: order/templates/order/sales_order_base.html:13 +#: order/templates/order/sales_order_base.html:14 #: order/templates/order/sales_orders.html:8 #: order/templates/order/sales_orders.html:15 #: part/templates/part/detail.html:143 part/templates/part/part_sidebar.html:39 @@ -4764,7 +4944,7 @@ msgstr "" #: company/templates/company/detail.html:142 #: company/templates/company/sidebar.html:29 -#: order/templates/order/return_order_base.html:13 +#: order/templates/order/return_order_base.html:14 #: order/templates/order/return_orders.html:8 #: order/templates/order/return_orders.html:15 #: templates/InvenTree/settings/sidebar.html:61 @@ -4811,24 +4991,24 @@ msgid "Manufacturers" msgstr "" #: company/templates/company/manufacturer_part.html:35 -#: company/templates/company/supplier_part.html:227 -#: part/templates/part/detail.html:125 part/templates/part/part_base.html:83 +#: company/templates/company/supplier_part.html:228 +#: part/templates/part/detail.html:125 part/templates/part/part_base.html:84 msgid "Order part" msgstr "" #: company/templates/company/manufacturer_part.html:39 -#: templates/js/translated/company.js:1343 +#: templates/js/translated/company.js:1344 msgid "Edit manufacturer part" msgstr "" #: company/templates/company/manufacturer_part.html:43 -#: templates/js/translated/company.js:1344 +#: templates/js/translated/company.js:1345 msgid "Delete manufacturer part" msgstr "" #: company/templates/company/manufacturer_part.html:65 -#: company/templates/company/supplier_part.html:97 order/api.py:448 -#: order/serializers.py:564 +#: company/templates/company/supplier_part.html:98 order/api.py:411 +#: order/serializers.py:649 msgid "Internal Part" msgstr "" @@ -4837,8 +5017,8 @@ msgid "No manufacturer information available" msgstr "" #: company/templates/company/manufacturer_part.html:119 -#: company/templates/company/supplier_part.html:15 company/views.py:31 -#: part/admin.py:122 part/serializers.py:904 +#: company/templates/company/supplier_part.html:16 company/views.py:31 +#: part/admin.py:122 part/serializers.py:956 #: part/templates/part/part_sidebar.html:33 templates/InvenTree/search.html:190 #: templates/navbar.html:48 msgid "Suppliers" @@ -4887,112 +5067,113 @@ msgstr "" msgid "Contacts" msgstr "" -#: company/templates/company/supplier_part.html:50 -#: templates/js/translated/company.js:1526 +#: company/templates/company/supplier_part.html:51 +#: templates/js/translated/company.js:1527 msgid "Supplier part actions" msgstr "" -#: company/templates/company/supplier_part.html:55 #: company/templates/company/supplier_part.html:56 -#: company/templates/company/supplier_part.html:228 +#: company/templates/company/supplier_part.html:57 +#: company/templates/company/supplier_part.html:229 #: part/templates/part/detail.html:126 msgid "Order Part" msgstr "" -#: company/templates/company/supplier_part.html:60 #: company/templates/company/supplier_part.html:61 +#: company/templates/company/supplier_part.html:62 msgid "Update Availability" msgstr "" -#: company/templates/company/supplier_part.html:63 #: company/templates/company/supplier_part.html:64 -#: templates/js/translated/company.js:294 +#: company/templates/company/supplier_part.html:65 +#: templates/js/translated/company.js:295 msgid "Edit Supplier Part" msgstr "" -#: company/templates/company/supplier_part.html:68 #: company/templates/company/supplier_part.html:69 -#: templates/js/translated/company.js:269 +#: company/templates/company/supplier_part.html:70 +#: templates/js/translated/company.js:270 msgid "Duplicate Supplier Part" msgstr "" -#: company/templates/company/supplier_part.html:73 +#: company/templates/company/supplier_part.html:74 msgid "Delete Supplier Part" msgstr "" -#: company/templates/company/supplier_part.html:74 +#: company/templates/company/supplier_part.html:75 msgid "Delete Supplier Part" msgstr "" -#: company/templates/company/supplier_part.html:133 +#: company/templates/company/supplier_part.html:134 +#: order/templates/order/order_base.html:155 msgid "No supplier information available" msgstr "" -#: company/templates/company/supplier_part.html:139 order/serializers.py:553 -#: part/bom.py:287 part/bom.py:319 part/serializers.py:548 -#: templates/js/translated/company.js:349 templates/js/translated/part.js:1793 +#: company/templates/company/supplier_part.html:140 order/serializers.py:638 +#: part/bom.py:286 part/bom.py:315 part/serializers.py:592 +#: templates/js/translated/company.js:350 templates/js/translated/part.js:1793 #: templates/js/translated/pricing.js:510 -#: templates/js/translated/purchase_order.js:1920 -#: templates/js/translated/purchase_order.js:2098 +#: templates/js/translated/purchase_order.js:1904 +#: templates/js/translated/purchase_order.js:2082 msgid "SKU" msgstr "" -#: company/templates/company/supplier_part.html:206 +#: company/templates/company/supplier_part.html:207 msgid "Supplier Part Stock" msgstr "" -#: company/templates/company/supplier_part.html:209 -#: part/templates/part/detail.html:24 stock/templates/stock/location.html:204 +#: company/templates/company/supplier_part.html:210 +#: part/templates/part/detail.html:24 stock/templates/stock/location.html:205 msgid "Create new stock item" msgstr "" -#: company/templates/company/supplier_part.html:210 -#: part/templates/part/detail.html:25 stock/templates/stock/location.html:205 +#: company/templates/company/supplier_part.html:211 +#: part/templates/part/detail.html:25 stock/templates/stock/location.html:206 #: templates/js/translated/stock.js:543 msgid "New Stock Item" msgstr "" -#: company/templates/company/supplier_part.html:223 +#: company/templates/company/supplier_part.html:224 msgid "Supplier Part Orders" msgstr "" -#: company/templates/company/supplier_part.html:246 +#: company/templates/company/supplier_part.html:247 msgid "Pricing Information" msgstr "" -#: company/templates/company/supplier_part.html:251 -#: templates/js/translated/company.js:398 +#: company/templates/company/supplier_part.html:252 +#: templates/js/translated/company.js:399 #: templates/js/translated/pricing.js:684 msgid "Add Price Break" msgstr "" -#: company/templates/company/supplier_part.html:270 +#: company/templates/company/supplier_part.html:271 msgid "Supplier Part Notes" msgstr "" -#: company/templates/company/supplier_part.html:305 +#: company/templates/company/supplier_part.html:306 msgid "Supplier Part QR Code" msgstr "" -#: company/templates/company/supplier_part.html:316 +#: company/templates/company/supplier_part.html:317 msgid "Link Barcode to Supplier Part" msgstr "" -#: company/templates/company/supplier_part.html:388 +#: company/templates/company/supplier_part.html:389 msgid "Update Part Availability" msgstr "" #: company/templates/company/supplier_part_sidebar.html:5 -#: part/serializers.py:902 part/stocktake.py:223 +#: part/serializers.py:954 part/stocktake.py:223 #: part/templates/part/category.html:180 #: part/templates/part/category_sidebar.html:17 stock/admin.py:68 -#: stock/serializers.py:1014 stock/serializers.py:1192 -#: stock/templates/stock/location.html:167 -#: stock/templates/stock/location.html:188 -#: stock/templates/stock/location.html:200 +#: stock/serializers.py:1045 stock/serializers.py:1223 +#: stock/templates/stock/location.html:168 +#: stock/templates/stock/location.html:189 +#: stock/templates/stock/location.html:201 #: stock/templates/stock/location_sidebar.html:7 #: templates/InvenTree/search.html:155 templates/js/translated/part.js:1067 -#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2850 +#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2851 #: users/models.py:206 msgid "Stock Items" msgstr "" @@ -5022,99 +5203,99 @@ msgstr "" msgid "New Company" msgstr "" -#: generic/states/tests.py:18 order/status_codes.py:13 +#: generic/states/fields.py:118 +msgid "Custom status key" +msgstr "" + +#: generic/states/fields.py:119 +msgid "Additional status information for this item" +msgstr "" + +#: generic/states/tests.py:22 order/status_codes.py:13 msgid "Placed" msgstr "" -#: importer/mixins.py:263 +#: importer/mixins.py:261 msgid "Invalid export format" msgstr "" -#: importer/models.py:59 -msgid "Timestamp" -msgstr "" - -#: importer/models.py:64 +#: importer/models.py:65 msgid "Data file to import" msgstr "" -#: importer/models.py:73 templates/js/translated/tables.js:558 +#: importer/models.py:74 templates/js/translated/tables.js:558 msgid "Columns" msgstr "" -#: importer/models.py:84 +#: importer/models.py:85 msgid "Import status" msgstr "" -#: importer/models.py:94 +#: importer/models.py:95 msgid "Field Defaults" msgstr "" -#: importer/models.py:101 +#: importer/models.py:102 msgid "Field Overrides" msgstr "" -#: importer/models.py:108 +#: importer/models.py:109 msgid "Field Filters" msgstr "" -#: importer/models.py:230 +#: importer/models.py:239 msgid "Some required fields have not been mapped" msgstr "" -#: importer/models.py:387 +#: importer/models.py:396 msgid "Column is already mapped to a database field" msgstr "" -#: importer/models.py:392 +#: importer/models.py:401 msgid "Field is already mapped to a data column" msgstr "" -#: importer/models.py:401 +#: importer/models.py:410 msgid "Column mapping must be linked to a valid import session" msgstr "" -#: importer/models.py:406 +#: importer/models.py:415 msgid "Column does not exist in the data file" msgstr "" -#: importer/models.py:413 +#: importer/models.py:422 msgid "Field does not exist in the target model" msgstr "" -#: importer/models.py:417 +#: importer/models.py:426 msgid "Selected field is read-only" msgstr "" -#: importer/models.py:422 importer/models.py:493 +#: importer/models.py:431 importer/models.py:502 msgid "Import Session" msgstr "" -#: importer/models.py:426 +#: importer/models.py:435 msgid "Field" msgstr "" -#: importer/models.py:428 +#: importer/models.py:437 msgid "Column" msgstr "" -#: importer/models.py:497 +#: importer/models.py:506 msgid "Row Index" msgstr "" -#: importer/models.py:500 +#: importer/models.py:509 msgid "Original row data" msgstr "" -#: importer/models.py:503 part/models.py:3951 -msgid "Data" -msgstr "" - -#: importer/models.py:505 machine/models.py:110 +#: importer/models.py:514 machine/models.py:110 msgid "Errors" msgstr "" -#: importer/models.py:507 part/api.py:873 +#: importer/models.py:516 part/api.py:857 msgid "Valid" msgstr "" @@ -5166,19 +5347,19 @@ msgstr "" msgid "Row has already been completed" msgstr "" -#: importer/status_codes.py:11 +#: importer/status_codes.py:13 msgid "Initializing" msgstr "" -#: importer/status_codes.py:12 +#: importer/status_codes.py:18 msgid "Mapping Columns" msgstr "" -#: importer/status_codes.py:13 +#: importer/status_codes.py:21 msgid "Importing Data" msgstr "" -#: importer/status_codes.py:16 +#: importer/status_codes.py:24 msgid "Processing Data" msgstr "" @@ -5202,52 +5383,52 @@ msgstr "" msgid "Value must be a valid dictionary object" msgstr "" -#: machine/machine_types/label_printer.py:215 +#: machine/machine_types/label_printer.py:216 msgid "Copies" msgstr "" -#: machine/machine_types/label_printer.py:216 +#: machine/machine_types/label_printer.py:217 msgid "Number of copies to print for each label" msgstr "" -#: machine/machine_types/label_printer.py:231 +#: machine/machine_types/label_printer.py:232 msgid "Connected" msgstr "" -#: machine/machine_types/label_printer.py:232 order/api.py:1410 -#: templates/js/translated/sales_order.js:1078 +#: machine/machine_types/label_printer.py:233 order/api.py:1532 +#: templates/js/translated/sales_order.js:1044 msgid "Unknown" msgstr "" -#: machine/machine_types/label_printer.py:233 +#: machine/machine_types/label_printer.py:234 msgid "Printing" msgstr "" -#: machine/machine_types/label_printer.py:234 +#: machine/machine_types/label_printer.py:235 msgid "No media" msgstr "" -#: machine/machine_types/label_printer.py:235 +#: machine/machine_types/label_printer.py:236 msgid "Paper jam" msgstr "" -#: machine/machine_types/label_printer.py:236 +#: machine/machine_types/label_printer.py:237 msgid "Disconnected" msgstr "" -#: machine/machine_types/label_printer.py:243 +#: machine/machine_types/label_printer.py:244 msgid "Label Printer" msgstr "" -#: machine/machine_types/label_printer.py:244 +#: machine/machine_types/label_printer.py:245 msgid "Directly print labels for various items." msgstr "" -#: machine/machine_types/label_printer.py:250 +#: machine/machine_types/label_printer.py:251 msgid "Printer Location" msgstr "" -#: machine/machine_types/label_printer.py:251 +#: machine/machine_types/label_printer.py:252 msgid "Scope the printer to a specific location" msgstr "" @@ -5307,79 +5488,75 @@ msgstr "" #: report/templates/report/inventree_purchase_order_report.html:31 #: report/templates/report/inventree_sales_order_report.html:31 #: templates/js/translated/order.js:352 -#: templates/js/translated/purchase_order.js:2195 -#: templates/js/translated/sales_order.js:1883 +#: templates/js/translated/purchase_order.js:2179 +#: templates/js/translated/sales_order.js:1864 msgid "Total Price" msgstr "" -#: order/api.py:80 order/api.py:151 order/serializers.py:93 -#: order/templates/order/order_base.html:123 -#: order/templates/order/return_order_base.html:116 -#: order/templates/order/sales_order_base.html:125 +#: order/api.py:78 order/api.py:149 order/serializers.py:124 +#: order/templates/order/order_base.html:124 +#: order/templates/order/return_order_base.html:117 +#: order/templates/order/sales_order_base.html:126 msgid "Order Status" msgstr "" -#: order/api.py:88 order/templates/order/order_base.html:111 -#: order/templates/order/return_order_base.html:104 -#: order/templates/order/sales_order_base.html:113 +#: order/api.py:86 order/templates/order/order_base.html:112 +#: order/templates/order/return_order_base.html:105 +#: order/templates/order/sales_order_base.html:114 msgid "Order Reference" msgstr "" -#: order/api.py:116 templates/js/translated/table_filters.js:93 +#: order/api.py:114 order/api.py:1022 +#: templates/js/translated/table_filters.js:93 #: templates/js/translated/table_filters.js:625 #: templates/js/translated/table_filters.js:651 #: templates/js/translated/table_filters.js:666 msgid "Outstanding" msgstr "" -#: order/api.py:132 +#: order/api.py:130 msgid "Has Project Code" msgstr "" -#: order/api.py:155 templates/js/translated/table_filters.js:201 +#: order/api.py:153 templates/js/translated/table_filters.js:201 #: templates/js/translated/table_filters.js:791 msgid "Has Pricing" msgstr "" -#: order/api.py:230 -msgid "No matching purchase order found" -msgstr "" - -#: order/api.py:425 order/api.py:763 order/models.py:1484 order/models.py:1598 -#: order/models.py:1649 order/models.py:1764 order/models.py:1923 -#: order/models.py:2383 order/models.py:2439 -#: templates/js/translated/sales_order.js:1524 +#: order/api.py:375 order/api.py:771 order/api.py:986 order/models.py:1500 +#: order/models.py:1614 order/models.py:1665 order/models.py:1793 +#: order/models.py:1956 order/models.py:2422 order/models.py:2478 +#: templates/js/translated/sales_order.js:1490 msgid "Order" msgstr "" -#: order/api.py:429 order/api.py:784 +#: order/api.py:379 order/api.py:809 msgid "Order Complete" msgstr "" -#: order/api.py:452 +#: order/api.py:430 msgid "Order Pending" msgstr "" -#: order/api.py:1404 order/models.py:379 order/models.py:1485 -#: order/models.py:1599 order/templates/order/order_base.html:9 -#: order/templates/order/order_base.html:18 +#: order/api.py:1526 order/models.py:386 order/models.py:1501 +#: order/models.py:1615 order/templates/order/order_base.html:10 +#: order/templates/order/order_base.html:19 #: report/templates/report/inventree_purchase_order_report.html:14 -#: stock/serializers.py:120 stock/templates/stock/item_base.html:176 +#: stock/serializers.py:121 stock/templates/stock/item_base.html:173 #: templates/email/overdue_purchase_order.html:15 #: templates/js/translated/part.js:1752 templates/js/translated/pricing.js:804 -#: templates/js/translated/purchase_order.js:168 -#: templates/js/translated/purchase_order.js:753 -#: templates/js/translated/purchase_order.js:1743 -#: templates/js/translated/stock.js:2345 templates/js/translated/stock.js:2991 +#: templates/js/translated/purchase_order.js:736 +#: templates/js/translated/purchase_order.js:1727 +#: templates/js/translated/stock.js:2346 templates/js/translated/stock.js:2992 msgid "Purchase Order" msgstr "" -#: order/api.py:1408 order/models.py:2091 order/models.py:2384 -#: order/models.py:2440 order/templates/order/return_order_base.html:9 -#: order/templates/order/return_order_base.html:28 +#: order/api.py:1530 order/models.py:2124 order/models.py:2423 +#: order/models.py:2479 order/templates/order/return_order_base.html:10 +#: order/templates/order/return_order_base.html:29 #: report/templates/report/inventree_return_order_report.html:13 #: templates/js/translated/return_order.js:280 -#: templates/js/translated/stock.js:3025 +#: templates/js/translated/stock.js:3026 msgid "Return Order" msgstr "" @@ -5387,751 +5564,782 @@ msgstr "" msgid "Total price for this order" msgstr "" -#: order/models.py:95 order/serializers.py:71 +#: order/models.py:95 order/serializers.py:73 msgid "Order Currency" msgstr "" -#: order/models.py:98 order/serializers.py:72 +#: order/models.py:98 order/serializers.py:74 msgid "Currency for this order (leave blank to use company default)" msgstr "" -#: order/models.py:246 +#: order/models.py:243 msgid "Contact does not match selected company" msgstr "" -#: order/models.py:289 +#: order/models.py:296 msgid "Order description (optional)" msgstr "" -#: order/models.py:298 +#: order/models.py:305 msgid "Select project code for this order" msgstr "" -#: order/models.py:302 order/models.py:1385 order/models.py:1817 +#: order/models.py:309 order/models.py:1402 order/models.py:1846 msgid "Link to external page" msgstr "" -#: order/models.py:310 +#: order/models.py:317 msgid "Expected date for order delivery. Order will be overdue after this date." msgstr "" -#: order/models.py:324 +#: order/models.py:331 msgid "Created By" msgstr "" -#: order/models.py:332 +#: order/models.py:339 msgid "User or group responsible for this order" msgstr "" -#: order/models.py:343 +#: order/models.py:350 msgid "Point of contact for this order" msgstr "" -#: order/models.py:353 +#: order/models.py:360 msgid "Company address for this order" msgstr "" -#: order/models.py:468 order/models.py:979 +#: order/models.py:480 order/models.py:1006 msgid "Order reference" msgstr "" -#: order/models.py:477 +#: order/models.py:489 msgid "Purchase order status" msgstr "" -#: order/models.py:492 +#: order/models.py:504 msgid "Company from which the items are being ordered" msgstr "" -#: order/models.py:503 order/templates/order/order_base.html:153 -#: templates/js/translated/purchase_order.js:1772 +#: order/models.py:515 order/templates/order/order_base.html:162 +#: templates/js/translated/purchase_order.js:1756 msgid "Supplier Reference" msgstr "" -#: order/models.py:504 +#: order/models.py:516 msgid "Supplier order reference code" msgstr "" -#: order/models.py:513 +#: order/models.py:525 msgid "received by" msgstr "" -#: order/models.py:519 order/models.py:2173 +#: order/models.py:531 order/models.py:2212 msgid "Issue Date" msgstr "" -#: order/models.py:520 order/models.py:2174 +#: order/models.py:532 order/models.py:2213 msgid "Date order was issued" msgstr "" -#: order/models.py:527 order/models.py:2181 +#: order/models.py:539 order/models.py:2220 msgid "Date order was completed" msgstr "" -#: order/models.py:571 +#: order/models.py:549 order/models.py:1552 +msgid "Destination for received items" +msgstr "" + +#: order/models.py:593 msgid "Part supplier must match PO supplier" msgstr "" -#: order/models.py:806 +#: order/models.py:828 msgid "Quantity must be a positive number" msgstr "" -#: order/models.py:991 +#: order/models.py:1018 msgid "Company to which the items are being sold" msgstr "" -#: order/models.py:1003 +#: order/models.py:1030 msgid "Sales order status" msgstr "" -#: order/models.py:1014 order/models.py:2166 +#: order/models.py:1041 order/models.py:2205 msgid "Customer Reference " msgstr "" -#: order/models.py:1015 order/models.py:2167 +#: order/models.py:1042 order/models.py:2206 msgid "Customer order reference code" msgstr "" -#: order/models.py:1019 order/models.py:1771 -#: templates/js/translated/sales_order.js:879 -#: templates/js/translated/sales_order.js:1060 +#: order/models.py:1046 order/models.py:1800 +#: templates/js/translated/sales_order.js:838 +#: templates/js/translated/sales_order.js:1026 msgid "Shipment Date" msgstr "" -#: order/models.py:1028 +#: order/models.py:1055 msgid "shipped by" msgstr "" -#: order/models.py:1077 +#: order/models.py:1094 msgid "Order is already complete" msgstr "" -#: order/models.py:1080 +#: order/models.py:1097 msgid "Order is already cancelled" msgstr "" -#: order/models.py:1084 +#: order/models.py:1101 msgid "Only an open order can be marked as complete" msgstr "" -#: order/models.py:1088 +#: order/models.py:1105 msgid "Order cannot be completed as there are incomplete shipments" msgstr "" -#: order/models.py:1093 +#: order/models.py:1110 msgid "Order cannot be completed as there are incomplete line items" msgstr "" -#: order/models.py:1357 +#: order/models.py:1374 msgid "Item quantity" msgstr "" -#: order/models.py:1374 +#: order/models.py:1391 msgid "Line item reference" msgstr "" -#: order/models.py:1381 +#: order/models.py:1398 msgid "Line item notes" msgstr "" -#: order/models.py:1393 +#: order/models.py:1410 msgid "Target date for this line item (leave blank to use the target date from the order)" msgstr "" -#: order/models.py:1414 +#: order/models.py:1431 msgid "Line item description (optional)" msgstr "" -#: order/models.py:1420 -msgid "Context" -msgstr "" - -#: order/models.py:1421 +#: order/models.py:1438 msgid "Additional context for this line" msgstr "" -#: order/models.py:1431 +#: order/models.py:1448 msgid "Unit price" msgstr "" -#: order/models.py:1445 +#: order/models.py:1462 msgid "Purchase Order Line Item" msgstr "" -#: order/models.py:1469 +#: order/models.py:1486 msgid "Supplier part must match supplier" msgstr "" -#: order/models.py:1476 -msgid "deleted" -msgstr "" - -#: order/models.py:1504 +#: order/models.py:1520 msgid "Supplier part" msgstr "" -#: order/models.py:1511 order/templates/order/order_base.html:201 +#: order/models.py:1527 order/templates/order/order_base.html:210 #: templates/js/translated/part.js:1876 templates/js/translated/part.js:1908 -#: templates/js/translated/purchase_order.js:1369 -#: templates/js/translated/purchase_order.js:2239 +#: templates/js/translated/purchase_order.js:1352 +#: templates/js/translated/purchase_order.js:2223 #: templates/js/translated/return_order.js:762 #: templates/js/translated/table_filters.js:119 #: templates/js/translated/table_filters.js:605 msgid "Received" msgstr "" -#: order/models.py:1512 +#: order/models.py:1528 msgid "Number of items received" msgstr "" -#: order/models.py:1520 stock/models.py:959 stock/serializers.py:610 -#: stock/templates/stock/item_base.html:183 -#: templates/js/translated/stock.js:2396 +#: order/models.py:1536 stock/models.py:1036 stock/serializers.py:637 +#: stock/templates/stock/item_base.html:180 +#: templates/js/translated/stock.js:2397 msgid "Purchase Price" msgstr "" -#: order/models.py:1521 +#: order/models.py:1537 msgid "Unit purchase price" msgstr "" -#: order/models.py:1536 -msgid "Where does the Purchaser want this item to be stored?" -msgstr "" - -#: order/models.py:1587 +#: order/models.py:1603 msgid "Purchase Order Extra Line" msgstr "" -#: order/models.py:1616 +#: order/models.py:1632 msgid "Sales Order Line Item" msgstr "" -#: order/models.py:1637 +#: order/models.py:1653 msgid "Virtual part cannot be assigned to a sales order" msgstr "" -#: order/models.py:1642 +#: order/models.py:1658 msgid "Only salable parts can be assigned to a sales order" msgstr "" -#: order/models.py:1668 part/templates/part/part_pricing.html:107 -#: part/templates/part/prices.html:139 templates/js/translated/pricing.js:957 +#: order/models.py:1684 part/templates/part/part_pricing.html:107 +#: part/templates/part/prices.html:139 templates/js/translated/pricing.js:955 msgid "Sale Price" msgstr "" -#: order/models.py:1669 +#: order/models.py:1685 msgid "Unit sale price" msgstr "" -#: order/models.py:1678 order/status_codes.py:48 -#: templates/js/translated/sales_order.js:1559 -#: templates/js/translated/sales_order.js:1680 -#: templates/js/translated/sales_order.js:1993 +#: order/models.py:1694 order/status_codes.py:50 +#: templates/js/translated/sales_order.js:1525 +#: templates/js/translated/sales_order.js:1661 +#: templates/js/translated/sales_order.js:1974 msgid "Shipped" msgstr "" -#: order/models.py:1679 +#: order/models.py:1695 msgid "Shipped quantity" msgstr "" -#: order/models.py:1751 +#: order/models.py:1769 msgid "Sales Order Shipment" msgstr "" -#: order/models.py:1772 +#: order/models.py:1801 msgid "Date of shipment" msgstr "" -#: order/models.py:1778 templates/js/translated/sales_order.js:1072 +#: order/models.py:1807 templates/js/translated/sales_order.js:1038 msgid "Delivery Date" msgstr "" -#: order/models.py:1779 +#: order/models.py:1808 msgid "Date of delivery of shipment" msgstr "" -#: order/models.py:1787 +#: order/models.py:1816 msgid "Checked By" msgstr "" -#: order/models.py:1788 +#: order/models.py:1817 msgid "User who checked this shipment" msgstr "" -#: order/models.py:1795 order/models.py:2018 order/serializers.py:1475 -#: order/serializers.py:1585 templates/js/translated/model_renderers.js:455 +#: order/models.py:1824 order/models.py:2051 order/serializers.py:1601 +#: order/serializers.py:1725 +#: report/templates/report/inventree_sales_order_shipment_report.html:14 +#: templates/js/translated/model_renderers.js:458 +#: templates/js/translated/sales_order.js:1615 msgid "Shipment" msgstr "" -#: order/models.py:1796 +#: order/models.py:1825 msgid "Shipment number" msgstr "" -#: order/models.py:1804 +#: order/models.py:1833 msgid "Tracking Number" msgstr "" -#: order/models.py:1805 +#: order/models.py:1834 msgid "Shipment tracking information" msgstr "" -#: order/models.py:1812 +#: order/models.py:1841 msgid "Invoice Number" msgstr "" -#: order/models.py:1813 +#: order/models.py:1842 msgid "Reference number for associated invoice" msgstr "" -#: order/models.py:1833 +#: order/models.py:1862 msgid "Shipment has already been sent" msgstr "" -#: order/models.py:1836 +#: order/models.py:1865 msgid "Shipment has no allocated stock items" msgstr "" -#: order/models.py:1912 +#: order/models.py:1945 msgid "Sales Order Extra Line" msgstr "" -#: order/models.py:1941 +#: order/models.py:1974 msgid "Sales Order Allocation" msgstr "" -#: order/models.py:1964 order/models.py:1966 +#: order/models.py:1997 order/models.py:1999 msgid "Stock item has not been assigned" msgstr "" -#: order/models.py:1973 +#: order/models.py:2006 msgid "Cannot allocate stock item to a line with a different part" msgstr "" -#: order/models.py:1976 +#: order/models.py:2009 msgid "Cannot allocate stock to a line without a part" msgstr "" -#: order/models.py:1979 +#: order/models.py:2012 msgid "Allocation quantity cannot exceed stock quantity" msgstr "" -#: order/models.py:1998 order/serializers.py:1345 +#: order/models.py:2031 order/serializers.py:1471 msgid "Quantity must be 1 for serialized stock item" msgstr "" -#: order/models.py:2001 +#: order/models.py:2034 msgid "Sales order does not match shipment" msgstr "" -#: order/models.py:2002 plugin/base/barcodes/api.py:524 +#: order/models.py:2035 plugin/base/barcodes/api.py:629 msgid "Shipment does not match sales order" msgstr "" -#: order/models.py:2010 +#: order/models.py:2043 msgid "Line" msgstr "" -#: order/models.py:2019 +#: order/models.py:2052 msgid "Sales order shipment reference" msgstr "" -#: order/models.py:2032 order/models.py:2391 +#: order/models.py:2065 order/models.py:2430 #: templates/js/translated/return_order.js:720 msgid "Item" msgstr "" -#: order/models.py:2033 +#: order/models.py:2066 msgid "Select stock item to allocate" msgstr "" -#: order/models.py:2042 +#: order/models.py:2075 msgid "Enter stock allocation quantity" msgstr "" -#: order/models.py:2136 +#: order/models.py:2175 msgid "Return Order reference" msgstr "" -#: order/models.py:2148 +#: order/models.py:2187 msgid "Company from which items are being returned" msgstr "" -#: order/models.py:2160 +#: order/models.py:2199 msgid "Return order status" msgstr "" -#: order/models.py:2362 +#: order/models.py:2401 msgid "Return Order Line Item" msgstr "" -#: order/models.py:2376 +#: order/models.py:2415 msgid "Only serialized items can be assigned to a Return Order" msgstr "" -#: order/models.py:2392 +#: order/models.py:2431 msgid "Select item to return from customer" msgstr "" -#: order/models.py:2398 +#: order/models.py:2437 msgid "Received Date" msgstr "" -#: order/models.py:2399 +#: order/models.py:2438 msgid "The date this this return item was received" msgstr "" -#: order/models.py:2410 templates/js/translated/return_order.js:731 +#: order/models.py:2449 templates/js/translated/return_order.js:731 #: templates/js/translated/table_filters.js:122 msgid "Outcome" msgstr "" -#: order/models.py:2411 +#: order/models.py:2450 msgid "Outcome for this line item" msgstr "" -#: order/models.py:2418 +#: order/models.py:2457 msgid "Cost associated with return or repair for this line item" msgstr "" -#: order/models.py:2428 +#: order/models.py:2467 msgid "Return Order Extra Line" msgstr "" -#: order/serializers.py:86 +#: order/serializers.py:87 +msgid "Order ID" +msgstr "Tellimuse ID" + +#: order/serializers.py:87 +msgid "ID of the order to duplicate" +msgstr "Kopeeritava tellimuse ID" + +#: order/serializers.py:93 +msgid "Copy Lines" +msgstr "Kopeeri read" + +#: order/serializers.py:94 +msgid "Copy line items from the original order" +msgstr "Kopeeri reaüksused algsest tellimusest" + +#: order/serializers.py:100 +msgid "Copy Extra Lines" +msgstr "" + +#: order/serializers.py:101 +msgid "Copy extra line items from the original order" +msgstr "Kopeeri lisareaüksused algsest tellimusest" + +#: order/serializers.py:117 msgid "Completed Lines" msgstr "" -#: order/serializers.py:283 stock/admin.py:195 +#: order/serializers.py:161 +msgid "Duplicate Order" +msgstr "" + +#: order/serializers.py:162 +msgid "Specify options for duplicating this order" +msgstr "Määrake selle tellimuse dubleerimise valikud" + +#: order/serializers.py:234 +msgid "Invalid order ID" +msgstr "Vale tellimuse ID" + +#: order/serializers.py:374 stock/admin.py:196 msgid "Supplier Name" msgstr "" -#: order/serializers.py:331 +#: order/serializers.py:416 msgid "Order cannot be cancelled" msgstr "" -#: order/serializers.py:346 order/serializers.py:1366 +#: order/serializers.py:431 order/serializers.py:1492 msgid "Allow order to be closed with incomplete line items" msgstr "" -#: order/serializers.py:356 order/serializers.py:1376 +#: order/serializers.py:441 order/serializers.py:1502 msgid "Order has incomplete line items" msgstr "" -#: order/serializers.py:506 +#: order/serializers.py:591 msgid "Order is not open" msgstr "" -#: order/serializers.py:527 +#: order/serializers.py:612 msgid "Auto Pricing" msgstr "" -#: order/serializers.py:529 +#: order/serializers.py:614 msgid "Automatically calculate purchase price based on supplier part data" msgstr "" -#: order/serializers.py:539 +#: order/serializers.py:624 msgid "Purchase price currency" msgstr "" -#: order/serializers.py:545 +#: order/serializers.py:630 msgid "Merge Items" msgstr "" -#: order/serializers.py:547 +#: order/serializers.py:632 msgid "Merge items with the same part, destination and target date into one line item" msgstr "" -#: order/serializers.py:560 part/models.py:1033 +#: order/serializers.py:645 part/models.py:1094 part/serializers.py:387 msgid "Internal Part Number" msgstr "" -#: order/serializers.py:568 +#: order/serializers.py:653 msgid "Internal Part Name" msgstr "" -#: order/serializers.py:584 +#: order/serializers.py:669 msgid "Supplier part must be specified" msgstr "" -#: order/serializers.py:587 +#: order/serializers.py:672 msgid "Purchase order must be specified" msgstr "" -#: order/serializers.py:595 +#: order/serializers.py:680 msgid "Supplier must match purchase order" msgstr "" -#: order/serializers.py:596 +#: order/serializers.py:681 msgid "Purchase order must match supplier" msgstr "" -#: order/serializers.py:639 order/serializers.py:1446 +#: order/serializers.py:724 order/serializers.py:1572 msgid "Line Item" msgstr "" -#: order/serializers.py:645 +#: order/serializers.py:730 msgid "Line item does not match purchase order" msgstr "" -#: order/serializers.py:655 order/serializers.py:779 order/serializers.py:1782 +#: order/serializers.py:740 order/serializers.py:881 order/serializers.py:1934 msgid "Select destination location for received items" msgstr "" -#: order/serializers.py:671 templates/js/translated/purchase_order.js:1130 +#: order/serializers.py:756 templates/js/translated/purchase_order.js:1113 #: templates/js/translated/stock.js:1200 msgid "Enter batch code for incoming stock items" msgstr "" -#: order/serializers.py:679 templates/js/translated/purchase_order.js:1155 +#: order/serializers.py:764 templates/js/translated/purchase_order.js:1138 msgid "Enter serial numbers for incoming stock items" msgstr "" -#: order/serializers.py:691 +#: order/serializers.py:776 msgid "Override packaging information for incoming stock items" msgstr "" -#: order/serializers.py:699 +#: order/serializers.py:784 msgid "Additional note for incoming stock items" msgstr "" -#: order/serializers.py:706 templates/js/translated/barcode.js:52 +#: order/serializers.py:791 templates/js/translated/barcode.js:52 msgid "Barcode" msgstr "" -#: order/serializers.py:707 +#: order/serializers.py:792 msgid "Scanned barcode" msgstr "" -#: order/serializers.py:723 +#: order/serializers.py:808 msgid "Barcode is already in use" msgstr "" -#: order/serializers.py:747 +#: order/serializers.py:831 msgid "An integer quantity must be provided for trackable parts" msgstr "" -#: order/serializers.py:795 order/serializers.py:1798 +#: order/serializers.py:898 order/serializers.py:1950 msgid "Line items must be provided" msgstr "" -#: order/serializers.py:811 +#: order/serializers.py:914 msgid "Destination location must be specified" msgstr "" -#: order/serializers.py:822 +#: order/serializers.py:925 msgid "Supplied barcode values must be unique" msgstr "" -#: order/serializers.py:1187 +#: order/serializers.py:1221 msgid "Sale price currency" msgstr "" -#: order/serializers.py:1248 +#: order/serializers.py:1260 +msgid "Allocated Items" +msgstr "" + +#: order/serializers.py:1374 msgid "No shipment details provided" msgstr "" -#: order/serializers.py:1309 order/serializers.py:1455 +#: order/serializers.py:1435 order/serializers.py:1581 msgid "Line item is not associated with this order" msgstr "" -#: order/serializers.py:1328 +#: order/serializers.py:1454 msgid "Quantity must be positive" msgstr "" -#: order/serializers.py:1465 +#: order/serializers.py:1591 msgid "Enter serial numbers to allocate" msgstr "" -#: order/serializers.py:1487 order/serializers.py:1593 +#: order/serializers.py:1613 order/serializers.py:1733 msgid "Shipment has already been shipped" msgstr "" -#: order/serializers.py:1490 order/serializers.py:1596 +#: order/serializers.py:1616 order/serializers.py:1736 msgid "Shipment is not associated with this order" msgstr "" -#: order/serializers.py:1537 +#: order/serializers.py:1671 msgid "No match found for the following serial numbers" msgstr "" -#: order/serializers.py:1544 -msgid "The following serial numbers are already allocated" -msgstr "" +#: order/serializers.py:1678 +msgid "The following serial numbers are unavailable" +msgstr "Järgmised seerianumbrid ei ole saadaval" -#: order/serializers.py:1752 +#: order/serializers.py:1904 msgid "Return order line item" msgstr "" -#: order/serializers.py:1758 +#: order/serializers.py:1910 msgid "Line item does not match return order" msgstr "" -#: order/serializers.py:1761 +#: order/serializers.py:1913 msgid "Line item has already been received" msgstr "" -#: order/serializers.py:1790 +#: order/serializers.py:1942 msgid "Items can only be received against orders which are in progress" msgstr "" -#: order/serializers.py:1873 +#: order/serializers.py:2025 msgid "Line price currency" msgstr "" -#: order/status_codes.py:17 order/status_codes.py:52 stock/status_codes.py:16 +#: order/status_codes.py:17 order/status_codes.py:54 stock/status_codes.py:16 msgid "Lost" msgstr "" -#: order/status_codes.py:18 order/status_codes.py:53 stock/status_codes.py:22 +#: order/status_codes.py:18 order/status_codes.py:55 stock/status_codes.py:24 msgid "Returned" msgstr "" -#: order/status_codes.py:45 order/status_codes.py:77 +#: order/status_codes.py:47 order/status_codes.py:79 msgid "In Progress" msgstr "" -#: order/status_codes.py:101 +#: order/status_codes.py:105 msgid "Return" msgstr "" -#: order/status_codes.py:104 +#: order/status_codes.py:108 msgid "Repair" msgstr "" -#: order/status_codes.py:107 +#: order/status_codes.py:111 msgid "Replace" msgstr "" -#: order/status_codes.py:110 +#: order/status_codes.py:114 msgid "Refund" msgstr "" -#: order/status_codes.py:113 +#: order/status_codes.py:117 msgid "Reject" msgstr "" -#: order/tasks.py:25 +#: order/tasks.py:30 msgid "Overdue Purchase Order" msgstr "" -#: order/tasks.py:30 +#: order/tasks.py:35 #, python-brace-format msgid "Purchase order {po} is now overdue" msgstr "" -#: order/tasks.py:75 +#: order/tasks.py:80 msgid "Overdue Sales Order" msgstr "" -#: order/tasks.py:80 +#: order/tasks.py:85 #, python-brace-format msgid "Sales order {so} is now overdue" msgstr "" -#: order/templates/order/order_base.html:51 +#: order/templates/order/order_base.html:52 msgid "Print purchase order report" msgstr "" -#: order/templates/order/order_base.html:53 -#: order/templates/order/return_order_base.html:62 -#: order/templates/order/sales_order_base.html:62 +#: order/templates/order/order_base.html:54 +#: order/templates/order/return_order_base.html:63 +#: order/templates/order/sales_order_base.html:63 msgid "Export order to file" msgstr "" -#: order/templates/order/order_base.html:59 -#: order/templates/order/return_order_base.html:72 -#: order/templates/order/sales_order_base.html:71 +#: order/templates/order/order_base.html:60 +#: order/templates/order/return_order_base.html:73 +#: order/templates/order/sales_order_base.html:72 msgid "Order actions" msgstr "" -#: order/templates/order/order_base.html:64 -#: order/templates/order/return_order_base.html:76 -#: order/templates/order/sales_order_base.html:75 +#: order/templates/order/order_base.html:65 +#: order/templates/order/return_order_base.html:77 +#: order/templates/order/sales_order_base.html:76 msgid "Edit order" msgstr "" -#: order/templates/order/order_base.html:68 +#: order/templates/order/order_base.html:69 msgid "Duplicate order" msgstr "" -#: order/templates/order/order_base.html:73 -#: order/templates/order/return_order_base.html:78 -#: order/templates/order/sales_order_base.html:77 +#: order/templates/order/order_base.html:74 +#: order/templates/order/return_order_base.html:79 +#: order/templates/order/sales_order_base.html:78 msgid "Hold order" msgstr "" -#: order/templates/order/order_base.html:78 -#: order/templates/order/return_order_base.html:81 -#: order/templates/order/sales_order_base.html:80 +#: order/templates/order/order_base.html:79 +#: order/templates/order/return_order_base.html:82 +#: order/templates/order/sales_order_base.html:81 msgid "Cancel order" msgstr "" -#: order/templates/order/order_base.html:84 #: order/templates/order/order_base.html:85 -#: order/templates/order/return_order_base.html:85 +#: order/templates/order/order_base.html:86 #: order/templates/order/return_order_base.html:86 -#: order/templates/order/sales_order_base.html:86 +#: order/templates/order/return_order_base.html:87 #: order/templates/order/sales_order_base.html:87 +#: order/templates/order/sales_order_base.html:88 msgid "Issue Order" msgstr "" -#: order/templates/order/order_base.html:88 -#: order/templates/order/return_order_base.html:89 -msgid "Mark order as complete" -msgstr "" - #: order/templates/order/order_base.html:89 #: order/templates/order/return_order_base.html:90 -#: order/templates/order/sales_order_base.html:100 +msgid "Mark order as complete" +msgstr "" + +#: order/templates/order/order_base.html:90 +#: order/templates/order/return_order_base.html:91 +#: order/templates/order/sales_order_base.html:101 msgid "Complete Order" msgstr "" -#: order/templates/order/order_base.html:96 +#: order/templates/order/order_base.html:97 msgid "Supplier part thumbnail" msgstr "" -#: order/templates/order/order_base.html:116 -#: order/templates/order/return_order_base.html:109 -#: order/templates/order/sales_order_base.html:118 +#: order/templates/order/order_base.html:117 +#: order/templates/order/return_order_base.html:110 +#: order/templates/order/sales_order_base.html:119 msgid "Order Description" msgstr "" -#: order/templates/order/order_base.html:146 -msgid "No suppplier information available" -msgstr "" - -#: order/templates/order/order_base.html:159 -#: order/templates/order/sales_order_base.html:164 +#: order/templates/order/order_base.html:168 +#: order/templates/order/sales_order_base.html:165 msgid "Completed Line Items" msgstr "" -#: order/templates/order/order_base.html:165 -#: order/templates/order/sales_order_base.html:170 -#: order/templates/order/sales_order_base.html:180 +#: order/templates/order/order_base.html:174 +#: order/templates/order/sales_order_base.html:171 +#: order/templates/order/sales_order_base.html:181 msgid "Incomplete" msgstr "" -#: order/templates/order/order_base.html:184 -#: order/templates/order/return_order_base.html:160 +#: order/templates/order/order_base.html:193 +#: order/templates/order/return_order_base.html:161 #: report/templates/report/inventree_build_order_report.html:121 msgid "Issued" msgstr "" -#: order/templates/order/order_base.html:229 +#: order/templates/order/order_base.html:238 msgid "Total cost" msgstr "" -#: order/templates/order/order_base.html:233 -#: order/templates/order/return_order_base.html:202 -#: order/templates/order/sales_order_base.html:246 +#: order/templates/order/order_base.html:242 +#: order/templates/order/return_order_base.html:203 +#: order/templates/order/sales_order_base.html:247 msgid "Total cost could not be calculated" msgstr "" -#: order/templates/order/order_base.html:335 +#: order/templates/order/order_base.html:344 msgid "Purchase Order QR Code" msgstr "" -#: order/templates/order/order_base.html:347 +#: order/templates/order/order_base.html:356 msgid "Link Barcode to Purchase Order" msgstr "" @@ -6184,12 +6392,12 @@ msgstr "" #: part/templates/part/import_wizard/ajax_match_references.html:42 #: part/templates/part/import_wizard/match_fields.html:71 #: part/templates/part/import_wizard/match_references.html:49 -#: templates/js/translated/bom.js:133 templates/js/translated/build.js:530 -#: templates/js/translated/build.js:1802 -#: templates/js/translated/purchase_order.js:696 -#: templates/js/translated/purchase_order.js:1288 +#: templates/js/translated/bom.js:133 templates/js/translated/build.js:533 +#: templates/js/translated/build.js:1805 +#: templates/js/translated/purchase_order.js:679 +#: templates/js/translated/purchase_order.js:1271 #: templates/js/translated/return_order.js:505 -#: templates/js/translated/sales_order.js:1145 +#: templates/js/translated/sales_order.js:1111 #: templates/js/translated/stock.js:720 templates/js/translated/stock.js:889 #: templates/patterns/wizard/match_fields.html:70 msgid "Remove row" @@ -6242,7 +6450,7 @@ msgstr "" #: order/templates/order/purchase_order_detail.html:27 #: order/templates/order/return_order_detail.html:24 #: order/templates/order/sales_order_detail.html:24 -#: templates/js/translated/purchase_order.js:414 +#: templates/js/translated/purchase_order.js:397 #: templates/js/translated/return_order.js:458 #: templates/js/translated/sales_order.js:237 msgid "Add Line Item" @@ -6277,45 +6485,45 @@ msgstr "" msgid "Order Notes" msgstr "" -#: order/templates/order/return_order_base.html:18 -#: order/templates/order/sales_order_base.html:18 +#: order/templates/order/return_order_base.html:19 +#: order/templates/order/sales_order_base.html:19 msgid "Customer logo thumbnail" msgstr "" -#: order/templates/order/return_order_base.html:60 +#: order/templates/order/return_order_base.html:61 msgid "Print return order report" msgstr "" -#: order/templates/order/return_order_base.html:64 -#: order/templates/order/sales_order_base.html:64 +#: order/templates/order/return_order_base.html:65 +#: order/templates/order/sales_order_base.html:65 msgid "Print packing list" msgstr "" -#: order/templates/order/return_order_base.html:141 -#: order/templates/order/sales_order_base.html:158 +#: order/templates/order/return_order_base.html:142 +#: order/templates/order/sales_order_base.html:159 #: templates/js/translated/return_order.js:308 -#: templates/js/translated/sales_order.js:833 +#: templates/js/translated/sales_order.js:792 msgid "Customer Reference" msgstr "" -#: order/templates/order/return_order_base.html:198 -#: order/templates/order/sales_order_base.html:242 +#: order/templates/order/return_order_base.html:199 +#: order/templates/order/sales_order_base.html:243 #: part/templates/part/part_pricing.html:32 #: part/templates/part/part_pricing.html:58 #: part/templates/part/part_pricing.html:99 #: part/templates/part/part_pricing.html:114 #: templates/js/translated/part.js:1079 -#: templates/js/translated/purchase_order.js:1822 +#: templates/js/translated/purchase_order.js:1806 #: templates/js/translated/return_order.js:380 -#: templates/js/translated/sales_order.js:891 +#: templates/js/translated/sales_order.js:850 msgid "Total Cost" msgstr "" -#: order/templates/order/return_order_base.html:273 +#: order/templates/order/return_order_base.html:274 msgid "Return Order QR Code" msgstr "" -#: order/templates/order/return_order_base.html:285 +#: order/templates/order/return_order_base.html:286 msgid "Link Barcode to Return Order" msgstr "" @@ -6323,40 +6531,40 @@ msgstr "" msgid "Order Details" msgstr "" -#: order/templates/order/sales_order_base.html:60 +#: order/templates/order/sales_order_base.html:61 msgid "Print sales order report" msgstr "" -#: order/templates/order/sales_order_base.html:91 #: order/templates/order/sales_order_base.html:92 +#: order/templates/order/sales_order_base.html:93 msgid "Ship Items" msgstr "" -#: order/templates/order/sales_order_base.html:95 #: order/templates/order/sales_order_base.html:96 +#: order/templates/order/sales_order_base.html:97 msgid "Mark As Shipped" msgstr "" -#: order/templates/order/sales_order_base.html:99 -#: templates/js/translated/sales_order.js:536 +#: order/templates/order/sales_order_base.html:100 +#: templates/js/translated/sales_order.js:495 msgid "Complete Sales Order" msgstr "" -#: order/templates/order/sales_order_base.html:138 +#: order/templates/order/sales_order_base.html:139 msgid "This Sales Order has not been fully allocated" msgstr "" -#: order/templates/order/sales_order_base.html:176 +#: order/templates/order/sales_order_base.html:177 #: order/templates/order/sales_order_detail.html:99 #: order/templates/order/so_sidebar.html:11 msgid "Completed Shipments" msgstr "" -#: order/templates/order/sales_order_base.html:339 +#: order/templates/order/sales_order_base.html:340 msgid "Sales Order QR Code" msgstr "" -#: order/templates/order/sales_order_base.html:351 +#: order/templates/order/sales_order_base.html:352 msgid "Link Barcode to Sales Order" msgstr "" @@ -6370,7 +6578,7 @@ msgid "Pending Shipments" msgstr "" #: order/templates/order/sales_order_detail.html:71 -#: templates/js/translated/bom.js:1277 templates/js/translated/build.js:1063 +#: templates/js/translated/bom.js:1277 templates/js/translated/build.js:1066 #: templates/js/translated/filters.js:299 msgid "Actions" msgstr "" @@ -6383,39 +6591,40 @@ msgstr "" msgid "Match Supplier Parts" msgstr "" -#: order/views.py:406 +#: order/views.py:407 msgid "Sales order not found" msgstr "" -#: order/views.py:412 +#: order/views.py:413 msgid "Price not found" msgstr "" -#: order/views.py:415 +#: order/views.py:416 #, python-brace-format msgid "Updated {part} unit-price to {price}" msgstr "" -#: order/views.py:421 +#: order/views.py:422 #, python-brace-format msgid "Updated {part} unit-price to {price} and quantity to {qty}" msgstr "" -#: part/admin.py:48 part/models.py:1032 part/templates/part/part_base.html:269 +#: part/admin.py:48 part/models.py:1093 part/serializers.py:939 +#: part/templates/part/part_base.html:277 #: report/templates/report/inventree_stock_location_report.html:103 #: templates/js/translated/part.js:1233 templates/js/translated/part.js:2347 -#: templates/js/translated/stock.js:2121 +#: templates/js/translated/stock.js:2122 msgid "IPN" msgstr "" -#: part/admin.py:50 part/models.py:1041 part/templates/part/part_base.html:286 +#: part/admin.py:50 part/models.py:1102 part/templates/part/part_base.html:294 #: report/models.py:161 templates/js/translated/part.js:1238 #: templates/js/translated/part.js:2353 msgid "Revision" msgstr "" -#: part/admin.py:53 part/admin.py:319 part/models.py:1014 -#: part/templates/part/category.html:91 part/templates/part/part_base.html:307 +#: part/admin.py:53 part/admin.py:319 part/models.py:1075 +#: part/templates/part/category.html:91 part/templates/part/part_base.html:315 msgid "Keywords" msgstr "" @@ -6427,7 +6636,7 @@ msgstr "" msgid "Category ID" msgstr "" -#: part/admin.py:67 part/admin.py:304 part/serializers.py:880 +#: part/admin.py:67 part/admin.py:304 part/serializers.py:924 #: part/stocktake.py:222 msgid "Category Name" msgstr "" @@ -6440,11 +6649,11 @@ msgstr "" msgid "Default Supplier ID" msgstr "" -#: part/admin.py:81 part/models.py:1000 part/templates/part/part_base.html:177 +#: part/admin.py:81 part/models.py:1061 part/templates/part/part_base.html:178 msgid "Variant Of" msgstr "" -#: part/admin.py:84 part/models.py:1138 part/templates/part/part_base.html:203 +#: part/admin.py:84 part/models.py:1199 part/templates/part/part_base.html:204 msgid "Minimum Stock" msgstr "" @@ -6452,23 +6661,23 @@ msgstr "" msgid "Used In" msgstr "" -#: part/admin.py:150 part/serializers.py:897 -#: part/templates/part/part_base.html:241 stock/admin.py:235 +#: part/admin.py:150 part/serializers.py:949 +#: part/templates/part/part_base.html:249 stock/admin.py:236 #: templates/js/translated/part.js:717 templates/js/translated/part.js:2159 msgid "Building" msgstr "" -#: part/admin.py:155 part/models.py:3202 part/models.py:3216 +#: part/admin.py:155 part/models.py:3253 part/models.py:3267 #: templates/js/translated/part.js:976 msgid "Minimum Cost" msgstr "" -#: part/admin.py:158 part/models.py:3209 part/models.py:3223 +#: part/admin.py:158 part/models.py:3260 part/models.py:3274 #: templates/js/translated/part.js:986 msgid "Maximum Cost" msgstr "" -#: part/admin.py:308 part/admin.py:387 stock/admin.py:57 stock/admin.py:215 +#: part/admin.py:308 part/admin.py:387 stock/admin.py:57 stock/admin.py:216 msgid "Parent ID" msgstr "" @@ -6481,8 +6690,8 @@ msgstr "" msgid "Category Path" msgstr "" -#: part/admin.py:325 part/models.py:425 part/serializers.py:130 -#: part/serializers.py:290 part/serializers.py:415 +#: part/admin.py:325 part/models.py:420 part/serializers.py:130 +#: part/serializers.py:323 part/serializers.py:459 #: part/templates/part/cat_link.html:3 part/templates/part/category.html:20 #: part/templates/part/category.html:138 part/templates/part/category.html:158 #: part/templates/part/category_sidebar.html:9 @@ -6509,15 +6718,15 @@ msgstr "" msgid "Part Revision" msgstr "" -#: part/admin.py:418 part/serializers.py:1346 +#: part/admin.py:418 part/serializers.py:1400 #: templates/js/translated/pricing.js:358 -#: templates/js/translated/pricing.js:1024 +#: templates/js/translated/pricing.js:1022 msgid "Minimum Price" msgstr "" -#: part/admin.py:423 part/serializers.py:1361 +#: part/admin.py:423 part/serializers.py:1415 #: templates/js/translated/pricing.js:353 -#: templates/js/translated/pricing.js:1032 +#: templates/js/translated/pricing.js:1030 msgid "Maximum Price" msgstr "" @@ -6545,94 +6754,98 @@ msgstr "" msgid "Filter by top-level categories" msgstr "" +#: part/api.py:156 stock/api.py:343 +msgid "Cascade" +msgstr "" + #: part/api.py:158 msgid "Include sub-categories in filtered results" msgstr "" -#: part/api.py:179 templates/js/translated/part.js:311 +#: part/api.py:178 templates/js/translated/part.js:311 msgid "Parent" msgstr "" -#: part/api.py:181 +#: part/api.py:180 msgid "Filter by parent category" msgstr "" -#: part/api.py:214 +#: part/api.py:213 msgid "Exclude Tree" msgstr "" -#: part/api.py:216 +#: part/api.py:215 msgid "Exclude sub-categories under the specified category" msgstr "" -#: part/api.py:441 +#: part/api.py:440 msgid "Has Results" msgstr "" -#: part/api.py:608 +#: part/api.py:604 msgid "Incoming Purchase Order" msgstr "" -#: part/api.py:626 +#: part/api.py:618 msgid "Outgoing Sales Order" msgstr "" -#: part/api.py:642 +#: part/api.py:630 msgid "Stock produced by Build Order" msgstr "" -#: part/api.py:726 +#: part/api.py:712 msgid "Stock required for Build Order" msgstr "" -#: part/api.py:874 +#: part/api.py:858 msgid "Validate entire Bill of Materials" msgstr "" -#: part/api.py:880 +#: part/api.py:864 msgid "This option must be selected" msgstr "" -#: part/api.py:916 +#: part/api.py:900 msgid "Is Revision" msgstr "" -#: part/api.py:926 +#: part/api.py:910 msgid "Has Revisions" msgstr "" -#: part/api.py:1117 +#: part/api.py:1101 msgid "BOM Valid" msgstr "" -#: part/api.py:1523 part/models.py:1024 part/models.py:3489 part/models.py:4046 -#: part/serializers.py:430 part/serializers.py:1202 -#: part/templates/part/part_base.html:260 stock/api.py:781 +#: part/api.py:1509 part/models.py:1085 part/models.py:3540 part/models.py:4104 +#: part/serializers.py:474 part/serializers.py:1255 +#: part/templates/part/part_base.html:268 stock/api.py:781 #: templates/InvenTree/settings/settings_staff_js.html:300 #: templates/js/translated/notification.js:60 #: templates/js/translated/part.js:2383 msgid "Category" msgstr "" -#: part/api.py:1761 +#: part/api.py:1750 msgid "Assembly part is testable" msgstr "" -#: part/api.py:1770 +#: part/api.py:1759 msgid "Component part is testable" msgstr "" -#: part/api.py:1821 +#: part/api.py:1810 msgid "Uses" msgstr "" -#: part/bom.py:178 part/models.py:107 part/models.py:1077 -#: part/templates/part/category.html:113 part/templates/part/part_base.html:376 +#: part/bom.py:183 part/models.py:109 part/models.py:1138 +#: part/templates/part/category.html:113 part/templates/part/part_base.html:384 #: templates/js/translated/part.js:2397 msgid "Default Location" msgstr "" -#: part/bom.py:179 part/serializers.py:905 +#: part/bom.py:184 part/serializers.py:957 #: templates/email/low_stock_notification.html:16 msgid "Total Stock" msgstr "" @@ -6641,789 +6854,789 @@ msgstr "" msgid "Input quantity for price calculation" msgstr "" -#: part/models.py:88 part/models.py:4047 part/templates/part/category.html:16 +#: part/models.py:90 part/models.py:4105 part/templates/part/category.html:16 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "" -#: part/models.py:89 part/templates/part/category.html:133 +#: part/models.py:91 part/templates/part/category.html:133 #: templates/InvenTree/search.html:97 templates/js/translated/search.js:158 #: users/models.py:202 msgid "Part Categories" msgstr "" -#: part/models.py:108 +#: part/models.py:110 msgid "Default location for parts in this category" msgstr "" -#: part/models.py:113 stock/models.py:187 templates/js/translated/part.js:2828 -#: templates/js/translated/stock.js:2856 +#: part/models.py:115 stock/models.py:193 templates/js/translated/part.js:2828 +#: templates/js/translated/stock.js:2857 #: templates/js/translated/table_filters.js:246 #: templates/js/translated/table_filters.js:290 msgid "Structural" msgstr "" -#: part/models.py:115 +#: part/models.py:117 msgid "Parts may not be directly assigned to a structural category, but may be assigned to child categories." msgstr "" -#: part/models.py:124 +#: part/models.py:126 msgid "Default keywords" msgstr "" -#: part/models.py:125 +#: part/models.py:127 msgid "Default keywords for parts in this category" msgstr "" -#: part/models.py:131 stock/models.py:90 stock/models.py:169 +#: part/models.py:133 stock/models.py:96 stock/models.py:175 #: templates/InvenTree/settings/settings_staff_js.html:445 msgid "Icon" msgstr "" -#: part/models.py:132 part/serializers.py:143 part/serializers.py:161 -#: stock/models.py:170 +#: part/models.py:134 part/serializers.py:143 part/serializers.py:161 +#: stock/models.py:176 msgid "Icon (optional)" msgstr "" -#: part/models.py:178 +#: part/models.py:180 msgid "You cannot make this part category structural because some parts are already assigned to it!" msgstr "" -#: part/models.py:519 +#: part/models.py:514 msgid "Cannot delete this part as it is locked" msgstr "" -#: part/models.py:522 +#: part/models.py:517 msgid "Cannot delete this part as it is still active" msgstr "" -#: part/models.py:527 +#: part/models.py:522 msgid "Cannot delete this part as it is used in an assembly" msgstr "" -#: part/models.py:565 +#: part/models.py:560 msgid "Invalid choice for parent part" msgstr "" -#: part/models.py:613 part/models.py:620 +#: part/models.py:608 part/models.py:615 #, python-brace-format msgid "Part '{self}' cannot be used in BOM for '{parent}' (recursive)" msgstr "" -#: part/models.py:632 +#: part/models.py:627 #, python-brace-format msgid "Part '{parent}' is used in BOM for '{self}' (recursive)" msgstr "" -#: part/models.py:695 +#: part/models.py:694 #, python-brace-format msgid "IPN must match regex pattern {pattern}" msgstr "" -#: part/models.py:703 +#: part/models.py:702 msgid "Part cannot be a revision of itself" msgstr "" -#: part/models.py:710 +#: part/models.py:709 msgid "Cannot make a revision of a part which is already a revision" msgstr "" -#: part/models.py:717 +#: part/models.py:716 msgid "Revision code must be specified" msgstr "" -#: part/models.py:724 +#: part/models.py:723 msgid "Revisions are only allowed for assembly parts" msgstr "" -#: part/models.py:731 +#: part/models.py:730 msgid "Cannot make a revision of a template part" msgstr "" -#: part/models.py:737 +#: part/models.py:736 msgid "Parent part must point to the same template" msgstr "" -#: part/models.py:816 +#: part/models.py:832 msgid "Stock item with this serial number already exists" msgstr "" -#: part/models.py:917 +#: part/models.py:976 msgid "Duplicate IPN not allowed in part settings" msgstr "" -#: part/models.py:926 +#: part/models.py:988 msgid "Duplicate part revision already exists." msgstr "" -#: part/models.py:936 +#: part/models.py:997 msgid "Part with this Name, IPN and Revision already exists." msgstr "" -#: part/models.py:951 +#: part/models.py:1012 msgid "Parts cannot be assigned to structural part categories!" msgstr "" -#: part/models.py:983 part/models.py:4102 +#: part/models.py:1044 part/models.py:4160 msgid "Part name" msgstr "" -#: part/models.py:988 +#: part/models.py:1049 msgid "Is Template" msgstr "" -#: part/models.py:989 +#: part/models.py:1050 msgid "Is this part a template part?" msgstr "" -#: part/models.py:999 +#: part/models.py:1060 msgid "Is this part a variant of another part?" msgstr "" -#: part/models.py:1007 +#: part/models.py:1068 msgid "Part description (optional)" msgstr "" -#: part/models.py:1015 +#: part/models.py:1076 msgid "Part keywords to improve visibility in search results" msgstr "" -#: part/models.py:1025 +#: part/models.py:1086 msgid "Part category" msgstr "" -#: part/models.py:1040 +#: part/models.py:1101 msgid "Part revision or version number" msgstr "" -#: part/models.py:1050 +#: part/models.py:1111 msgid "Is this part a revision of another part?" msgstr "" -#: part/models.py:1051 part/templates/part/part_base.html:277 +#: part/models.py:1112 part/templates/part/part_base.html:285 msgid "Revision Of" msgstr "" -#: part/models.py:1075 +#: part/models.py:1136 msgid "Where is this item normally stored?" msgstr "" -#: part/models.py:1121 part/templates/part/part_base.html:385 +#: part/models.py:1182 part/templates/part/part_base.html:393 msgid "Default Supplier" msgstr "" -#: part/models.py:1122 +#: part/models.py:1183 msgid "Default supplier part" msgstr "" -#: part/models.py:1129 +#: part/models.py:1190 msgid "Default Expiry" msgstr "" -#: part/models.py:1130 +#: part/models.py:1191 msgid "Expiry time (in days) for stock items of this part" msgstr "" -#: part/models.py:1139 +#: part/models.py:1200 msgid "Minimum allowed stock level" msgstr "" -#: part/models.py:1148 +#: part/models.py:1209 msgid "Units of measure for this part" msgstr "" -#: part/models.py:1155 +#: part/models.py:1216 msgid "Can this part be built from other parts?" msgstr "" -#: part/models.py:1161 +#: part/models.py:1222 msgid "Can this part be used to build other parts?" msgstr "" -#: part/models.py:1167 +#: part/models.py:1228 msgid "Does this part have tracking for unique items?" msgstr "" -#: part/models.py:1173 +#: part/models.py:1234 msgid "Can this part have test results recorded against it?" msgstr "" -#: part/models.py:1179 +#: part/models.py:1240 msgid "Can this part be purchased from external suppliers?" msgstr "" -#: part/models.py:1185 +#: part/models.py:1246 msgid "Can this part be sold to customers?" msgstr "" -#: part/models.py:1189 +#: part/models.py:1250 msgid "Is this part active?" msgstr "" -#: part/models.py:1194 templates/js/translated/part.js:821 +#: part/models.py:1255 templates/js/translated/part.js:821 #: templates/js/translated/table_filters.js:724 msgid "Locked" msgstr "" -#: part/models.py:1195 +#: part/models.py:1256 msgid "Locked parts cannot be edited" msgstr "" -#: part/models.py:1201 +#: part/models.py:1262 msgid "Is this a virtual part, such as a software product or license?" msgstr "" -#: part/models.py:1207 +#: part/models.py:1268 msgid "BOM checksum" msgstr "" -#: part/models.py:1208 +#: part/models.py:1269 msgid "Stored BOM checksum" msgstr "" -#: part/models.py:1216 +#: part/models.py:1277 msgid "BOM checked by" msgstr "" -#: part/models.py:1221 +#: part/models.py:1282 msgid "BOM checked date" msgstr "" -#: part/models.py:1237 +#: part/models.py:1298 msgid "Creation User" msgstr "" -#: part/models.py:1247 +#: part/models.py:1308 msgid "Owner responsible for this part" msgstr "" -#: part/models.py:1252 part/templates/part/part_base.html:348 -#: stock/templates/stock/item_base.html:451 +#: part/models.py:1313 part/templates/part/part_base.html:356 +#: stock/templates/stock/item_base.html:448 #: templates/js/translated/part.js:2490 msgid "Last Stocktake" msgstr "" -#: part/models.py:2125 +#: part/models.py:2185 msgid "Sell multiple" msgstr "" -#: part/models.py:3116 +#: part/models.py:3167 msgid "Currency used to cache pricing calculations" msgstr "" -#: part/models.py:3132 +#: part/models.py:3183 msgid "Minimum BOM Cost" msgstr "" -#: part/models.py:3133 +#: part/models.py:3184 msgid "Minimum cost of component parts" msgstr "" -#: part/models.py:3139 +#: part/models.py:3190 msgid "Maximum BOM Cost" msgstr "" -#: part/models.py:3140 +#: part/models.py:3191 msgid "Maximum cost of component parts" msgstr "" -#: part/models.py:3146 +#: part/models.py:3197 msgid "Minimum Purchase Cost" msgstr "" -#: part/models.py:3147 +#: part/models.py:3198 msgid "Minimum historical purchase cost" msgstr "" -#: part/models.py:3153 +#: part/models.py:3204 msgid "Maximum Purchase Cost" msgstr "" -#: part/models.py:3154 +#: part/models.py:3205 msgid "Maximum historical purchase cost" msgstr "" -#: part/models.py:3160 +#: part/models.py:3211 msgid "Minimum Internal Price" msgstr "" -#: part/models.py:3161 +#: part/models.py:3212 msgid "Minimum cost based on internal price breaks" msgstr "" -#: part/models.py:3167 +#: part/models.py:3218 msgid "Maximum Internal Price" msgstr "" -#: part/models.py:3168 +#: part/models.py:3219 msgid "Maximum cost based on internal price breaks" msgstr "" -#: part/models.py:3174 +#: part/models.py:3225 msgid "Minimum Supplier Price" msgstr "" -#: part/models.py:3175 +#: part/models.py:3226 msgid "Minimum price of part from external suppliers" msgstr "" -#: part/models.py:3181 +#: part/models.py:3232 msgid "Maximum Supplier Price" msgstr "" -#: part/models.py:3182 +#: part/models.py:3233 msgid "Maximum price of part from external suppliers" msgstr "" -#: part/models.py:3188 +#: part/models.py:3239 msgid "Minimum Variant Cost" msgstr "" -#: part/models.py:3189 +#: part/models.py:3240 msgid "Calculated minimum cost of variant parts" msgstr "" -#: part/models.py:3195 +#: part/models.py:3246 msgid "Maximum Variant Cost" msgstr "" -#: part/models.py:3196 +#: part/models.py:3247 msgid "Calculated maximum cost of variant parts" msgstr "" -#: part/models.py:3203 +#: part/models.py:3254 msgid "Override minimum cost" msgstr "" -#: part/models.py:3210 +#: part/models.py:3261 msgid "Override maximum cost" msgstr "" -#: part/models.py:3217 +#: part/models.py:3268 msgid "Calculated overall minimum cost" msgstr "" -#: part/models.py:3224 +#: part/models.py:3275 msgid "Calculated overall maximum cost" msgstr "" -#: part/models.py:3230 +#: part/models.py:3281 msgid "Minimum Sale Price" msgstr "" -#: part/models.py:3231 +#: part/models.py:3282 msgid "Minimum sale price based on price breaks" msgstr "" -#: part/models.py:3237 +#: part/models.py:3288 msgid "Maximum Sale Price" msgstr "" -#: part/models.py:3238 +#: part/models.py:3289 msgid "Maximum sale price based on price breaks" msgstr "" -#: part/models.py:3244 +#: part/models.py:3295 msgid "Minimum Sale Cost" msgstr "" -#: part/models.py:3245 +#: part/models.py:3296 msgid "Minimum historical sale price" msgstr "" -#: part/models.py:3251 +#: part/models.py:3302 msgid "Maximum Sale Cost" msgstr "" -#: part/models.py:3252 +#: part/models.py:3303 msgid "Maximum historical sale price" msgstr "" -#: part/models.py:3271 +#: part/models.py:3322 msgid "Part for stocktake" msgstr "" -#: part/models.py:3276 +#: part/models.py:3327 msgid "Item Count" msgstr "" -#: part/models.py:3277 +#: part/models.py:3328 msgid "Number of individual stock entries at time of stocktake" msgstr "" -#: part/models.py:3285 +#: part/models.py:3336 msgid "Total available stock at time of stocktake" msgstr "" -#: part/models.py:3289 part/models.py:3372 +#: part/models.py:3340 part/models.py:3423 part/serializers.py:263 #: part/templates/part/part_scheduling.html:13 #: report/templates/report/inventree_test_report.html:106 #: templates/InvenTree/settings/plugin_settings.html:37 #: templates/InvenTree/settings/settings_staff_js.html:543 -#: templates/js/translated/part.js:1092 templates/js/translated/pricing.js:826 -#: templates/js/translated/pricing.js:950 -#: templates/js/translated/purchase_order.js:1801 -#: templates/js/translated/stock.js:2905 +#: templates/js/translated/part.js:1092 templates/js/translated/pricing.js:824 +#: templates/js/translated/pricing.js:948 +#: templates/js/translated/purchase_order.js:1785 +#: templates/js/translated/stock.js:2906 msgid "Date" msgstr "" -#: part/models.py:3290 +#: part/models.py:3341 msgid "Date stocktake was performed" msgstr "" -#: part/models.py:3298 +#: part/models.py:3349 msgid "Additional notes" msgstr "" -#: part/models.py:3308 +#: part/models.py:3359 msgid "User who performed this stocktake" msgstr "" -#: part/models.py:3314 +#: part/models.py:3365 msgid "Minimum Stock Cost" msgstr "" -#: part/models.py:3315 +#: part/models.py:3366 msgid "Estimated minimum cost of stock on hand" msgstr "" -#: part/models.py:3321 +#: part/models.py:3372 msgid "Maximum Stock Cost" msgstr "" -#: part/models.py:3322 +#: part/models.py:3373 msgid "Estimated maximum cost of stock on hand" msgstr "" -#: part/models.py:3378 templates/InvenTree/settings/settings_staff_js.html:532 +#: part/models.py:3429 templates/InvenTree/settings/settings_staff_js.html:532 msgid "Report" msgstr "" -#: part/models.py:3379 +#: part/models.py:3430 msgid "Stocktake report file (generated internally)" msgstr "" -#: part/models.py:3384 templates/InvenTree/settings/settings_staff_js.html:539 +#: part/models.py:3435 templates/InvenTree/settings/settings_staff_js.html:539 msgid "Part Count" msgstr "" -#: part/models.py:3385 +#: part/models.py:3436 msgid "Number of parts covered by stocktake" msgstr "" -#: part/models.py:3395 +#: part/models.py:3446 msgid "User who requested this stocktake report" msgstr "" -#: part/models.py:3405 +#: part/models.py:3456 msgid "Part Sale Price Break" msgstr "" -#: part/models.py:3517 +#: part/models.py:3568 msgid "Part Test Template" msgstr "" -#: part/models.py:3543 +#: part/models.py:3594 msgid "Invalid template name - must include at least one alphanumeric character" msgstr "" -#: part/models.py:3564 part/models.py:3733 +#: part/models.py:3615 part/models.py:3784 msgid "Choices must be unique" msgstr "" -#: part/models.py:3575 -msgid "Test templates can only be created for trackable parts" -msgstr "" +#: part/models.py:3626 +msgid "Test templates can only be created for testable parts" +msgstr "Testimalle saab luua ainult testitavate osade jaoks" -#: part/models.py:3586 +#: part/models.py:3637 msgid "Test template with the same key already exists for part" msgstr "" -#: part/models.py:3603 templates/js/translated/part.js:2898 +#: part/models.py:3654 templates/js/translated/part.js:2898 msgid "Test Name" msgstr "" -#: part/models.py:3604 +#: part/models.py:3655 msgid "Enter a name for the test" msgstr "" -#: part/models.py:3610 +#: part/models.py:3661 msgid "Test Key" msgstr "" -#: part/models.py:3611 +#: part/models.py:3662 msgid "Simplified key for the test" msgstr "" -#: part/models.py:3618 +#: part/models.py:3669 msgid "Test Description" msgstr "" -#: part/models.py:3619 +#: part/models.py:3670 msgid "Enter description for this test" msgstr "" -#: part/models.py:3623 report/models.py:208 +#: part/models.py:3674 report/models.py:216 #: templates/js/translated/part.js:2919 #: templates/js/translated/table_filters.js:502 msgid "Enabled" msgstr "" -#: part/models.py:3623 +#: part/models.py:3674 msgid "Is this test enabled?" msgstr "" -#: part/models.py:3628 templates/js/translated/part.js:2927 +#: part/models.py:3679 templates/js/translated/part.js:2927 #: templates/js/translated/table_filters.js:498 msgid "Required" msgstr "" -#: part/models.py:3629 +#: part/models.py:3680 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:3634 templates/js/translated/part.js:2935 +#: part/models.py:3685 templates/js/translated/part.js:2935 msgid "Requires Value" msgstr "" -#: part/models.py:3635 +#: part/models.py:3686 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:3640 templates/js/translated/part.js:2942 +#: part/models.py:3691 templates/js/translated/part.js:2942 msgid "Requires Attachment" msgstr "" -#: part/models.py:3642 +#: part/models.py:3693 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:3648 part/models.py:3792 templates/js/translated/part.js:1643 +#: part/models.py:3699 part/models.py:3843 templates/js/translated/part.js:1643 msgid "Choices" msgstr "" -#: part/models.py:3649 +#: part/models.py:3700 msgid "Valid choices for this test (comma-separated)" msgstr "" -#: part/models.py:3681 +#: part/models.py:3732 msgid "Part Parameter Template" msgstr "" -#: part/models.py:3708 +#: part/models.py:3759 msgid "Checkbox parameters cannot have units" msgstr "" -#: part/models.py:3713 +#: part/models.py:3764 msgid "Checkbox parameters cannot have choices" msgstr "" -#: part/models.py:3750 +#: part/models.py:3801 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:3765 +#: part/models.py:3816 msgid "Parameter Name" msgstr "" -#: part/models.py:3772 +#: part/models.py:3823 msgid "Physical units for this parameter" msgstr "" -#: part/models.py:3780 +#: part/models.py:3831 msgid "Parameter description" msgstr "" -#: part/models.py:3786 templates/js/translated/part.js:1634 +#: part/models.py:3837 templates/js/translated/part.js:1634 #: templates/js/translated/table_filters.js:837 msgid "Checkbox" msgstr "" -#: part/models.py:3787 +#: part/models.py:3838 msgid "Is this parameter a checkbox?" msgstr "" -#: part/models.py:3793 +#: part/models.py:3844 msgid "Valid choices for this parameter (comma-separated)" msgstr "" -#: part/models.py:3827 +#: part/models.py:3881 msgid "Part Parameter" msgstr "" -#: part/models.py:3853 +#: part/models.py:3907 msgid "Parameter cannot be modified - part is locked" msgstr "" -#: part/models.py:3889 +#: part/models.py:3945 msgid "Invalid choice for parameter value" msgstr "" -#: part/models.py:3938 +#: part/models.py:3996 msgid "Parent Part" msgstr "" -#: part/models.py:3946 part/models.py:4054 part/models.py:4055 +#: part/models.py:4004 part/models.py:4112 part/models.py:4113 #: templates/InvenTree/settings/settings_staff_js.html:295 msgid "Parameter Template" msgstr "" -#: part/models.py:3952 +#: part/models.py:4010 msgid "Parameter Value" msgstr "" -#: part/models.py:4002 +#: part/models.py:4060 msgid "Part Category Parameter Template" msgstr "" -#: part/models.py:4061 templates/InvenTree/settings/settings_staff_js.html:304 +#: part/models.py:4119 templates/InvenTree/settings/settings_staff_js.html:304 msgid "Default Value" msgstr "" -#: part/models.py:4062 +#: part/models.py:4120 msgid "Default Parameter Value" msgstr "" -#: part/models.py:4100 +#: part/models.py:4158 msgid "Part ID or part name" msgstr "" -#: part/models.py:4101 +#: part/models.py:4159 msgid "Unique part ID value" msgstr "" -#: part/models.py:4103 +#: part/models.py:4161 msgid "Part IPN value" msgstr "" -#: part/models.py:4104 +#: part/models.py:4162 msgid "Level" msgstr "" -#: part/models.py:4104 +#: part/models.py:4162 msgid "BOM level" msgstr "" -#: part/models.py:4215 +#: part/models.py:4272 msgid "BOM item cannot be modified - assembly is locked" msgstr "" -#: part/models.py:4222 +#: part/models.py:4279 msgid "BOM item cannot be modified - variant assembly is locked" msgstr "" -#: part/models.py:4232 +#: part/models.py:4289 msgid "Select parent part" msgstr "" -#: part/models.py:4242 +#: part/models.py:4299 msgid "Sub part" msgstr "" -#: part/models.py:4243 +#: part/models.py:4300 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:4254 +#: part/models.py:4311 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:4260 +#: part/models.py:4317 msgid "This BOM item is optional" msgstr "" -#: part/models.py:4266 +#: part/models.py:4323 msgid "This BOM item is consumable (it is not tracked in build orders)" msgstr "" -#: part/models.py:4273 part/templates/part/upload_bom.html:55 +#: part/models.py:4330 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "" -#: part/models.py:4274 +#: part/models.py:4331 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:4281 +#: part/models.py:4338 msgid "BOM item reference" msgstr "" -#: part/models.py:4289 +#: part/models.py:4346 msgid "BOM item notes" msgstr "" -#: part/models.py:4295 +#: part/models.py:4352 msgid "Checksum" msgstr "" -#: part/models.py:4296 +#: part/models.py:4353 msgid "BOM line checksum" msgstr "" -#: part/models.py:4301 templates/js/translated/table_filters.js:181 +#: part/models.py:4358 templates/js/translated/table_filters.js:181 msgid "Validated" msgstr "" -#: part/models.py:4302 +#: part/models.py:4359 msgid "This BOM item has been validated" msgstr "" -#: part/models.py:4307 part/templates/part/upload_bom.html:57 +#: part/models.py:4364 part/templates/part/upload_bom.html:57 #: templates/js/translated/bom.js:1054 #: templates/js/translated/table_filters.js:185 #: templates/js/translated/table_filters.js:218 msgid "Gets inherited" msgstr "" -#: part/models.py:4308 +#: part/models.py:4365 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:4314 +#: part/models.py:4371 msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:4399 stock/models.py:685 +#: part/models.py:4456 stock/models.py:762 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:4409 part/models.py:4411 +#: part/models.py:4466 part/models.py:4468 msgid "Sub part must be specified" msgstr "" -#: part/models.py:4551 +#: part/models.py:4613 msgid "BOM Item Substitute" msgstr "" -#: part/models.py:4572 +#: part/models.py:4634 msgid "Substitute part cannot be the same as the master part" msgstr "" -#: part/models.py:4585 +#: part/models.py:4647 msgid "Parent BOM item" msgstr "" -#: part/models.py:4593 +#: part/models.py:4655 msgid "Substitute part" msgstr "" -#: part/models.py:4609 +#: part/models.py:4671 msgid "Part 1" msgstr "" -#: part/models.py:4617 +#: part/models.py:4679 msgid "Part 2" msgstr "" -#: part/models.py:4618 +#: part/models.py:4680 msgid "Select Related Part" msgstr "" -#: part/models.py:4637 +#: part/models.py:4699 msgid "Part relationship cannot be created between a part and itself" msgstr "" -#: part/models.py:4642 +#: part/models.py:4704 msgid "Duplicate relationship already exists" msgstr "" @@ -7449,340 +7662,352 @@ msgstr "" msgid "Number of results recorded against this template" msgstr "" -#: part/serializers.py:225 part/serializers.py:243 stock/serializers.py:616 +#: part/serializers.py:225 part/serializers.py:243 stock/serializers.py:643 msgid "Purchase currency of this stock item" msgstr "" -#: part/serializers.py:291 +#: part/serializers.py:268 +msgid "Speculative Quantity" +msgstr "" + +#: part/serializers.py:277 +msgid "Model ID" +msgstr "" + +#: part/serializers.py:324 msgid "Number of parts using this template" msgstr "" -#: part/serializers.py:421 +#: part/serializers.py:465 msgid "No parts selected" msgstr "" -#: part/serializers.py:431 +#: part/serializers.py:475 msgid "Select category" msgstr "" -#: part/serializers.py:466 +#: part/serializers.py:510 msgid "Original Part" msgstr "" -#: part/serializers.py:467 +#: part/serializers.py:511 msgid "Select original part to duplicate" msgstr "" -#: part/serializers.py:472 +#: part/serializers.py:516 msgid "Copy Image" msgstr "" -#: part/serializers.py:473 +#: part/serializers.py:517 msgid "Copy image from original part" msgstr "" -#: part/serializers.py:479 part/templates/part/detail.html:293 +#: part/serializers.py:523 part/templates/part/detail.html:293 msgid "Copy BOM" msgstr "" -#: part/serializers.py:480 +#: part/serializers.py:524 msgid "Copy bill of materials from original part" msgstr "" -#: part/serializers.py:486 +#: part/serializers.py:530 msgid "Copy Parameters" msgstr "" -#: part/serializers.py:487 +#: part/serializers.py:531 msgid "Copy parameter data from original part" msgstr "" -#: part/serializers.py:493 +#: part/serializers.py:537 msgid "Copy Notes" msgstr "" -#: part/serializers.py:494 +#: part/serializers.py:538 msgid "Copy notes from original part" msgstr "" -#: part/serializers.py:512 +#: part/serializers.py:556 msgid "Initial Stock Quantity" msgstr "" -#: part/serializers.py:514 +#: part/serializers.py:558 msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added." msgstr "" -#: part/serializers.py:521 +#: part/serializers.py:565 msgid "Initial Stock Location" msgstr "" -#: part/serializers.py:522 +#: part/serializers.py:566 msgid "Specify initial stock location for this Part" msgstr "" -#: part/serializers.py:539 +#: part/serializers.py:583 msgid "Select supplier (or leave blank to skip)" msgstr "" -#: part/serializers.py:555 +#: part/serializers.py:599 msgid "Select manufacturer (or leave blank to skip)" msgstr "" -#: part/serializers.py:565 +#: part/serializers.py:609 msgid "Manufacturer part number" msgstr "" -#: part/serializers.py:572 +#: part/serializers.py:616 msgid "Selected company is not a valid supplier" msgstr "" -#: part/serializers.py:581 +#: part/serializers.py:625 msgid "Selected company is not a valid manufacturer" msgstr "" -#: part/serializers.py:592 +#: part/serializers.py:636 msgid "Manufacturer part matching this MPN already exists" msgstr "" -#: part/serializers.py:599 +#: part/serializers.py:643 msgid "Supplier part matching this SKU already exists" msgstr "" -#: part/serializers.py:903 +#: part/serializers.py:955 msgid "Revisions" msgstr "" -#: part/serializers.py:908 +#: part/serializers.py:960 msgid "Unallocated Stock" msgstr "" -#: part/serializers.py:911 +#: part/serializers.py:963 msgid "Variant Stock" msgstr "" -#: part/serializers.py:941 part/templates/part/copy_part.html:9 +#: part/serializers.py:993 part/templates/part/copy_part.html:9 #: templates/js/translated/part.js:474 msgid "Duplicate Part" msgstr "" -#: part/serializers.py:942 +#: part/serializers.py:994 msgid "Copy initial data from another Part" msgstr "" -#: part/serializers.py:948 templates/js/translated/part.js:103 +#: part/serializers.py:1000 templates/js/translated/part.js:103 msgid "Initial Stock" msgstr "" -#: part/serializers.py:949 +#: part/serializers.py:1001 msgid "Create Part with initial stock quantity" msgstr "" -#: part/serializers.py:955 +#: part/serializers.py:1007 msgid "Supplier Information" msgstr "" -#: part/serializers.py:956 +#: part/serializers.py:1008 msgid "Add initial supplier information for this part" msgstr "" -#: part/serializers.py:964 +#: part/serializers.py:1016 msgid "Copy Category Parameters" msgstr "" -#: part/serializers.py:965 +#: part/serializers.py:1017 msgid "Copy parameter templates from selected part category" msgstr "" -#: part/serializers.py:970 +#: part/serializers.py:1022 msgid "Existing Image" msgstr "" -#: part/serializers.py:971 +#: part/serializers.py:1023 msgid "Filename of an existing part image" msgstr "" -#: part/serializers.py:988 +#: part/serializers.py:1040 msgid "Image file does not exist" msgstr "" -#: part/serializers.py:1194 +#: part/serializers.py:1247 msgid "Limit stocktake report to a particular part, and any variant parts" msgstr "" -#: part/serializers.py:1204 +#: part/serializers.py:1257 msgid "Limit stocktake report to a particular part category, and any child categories" msgstr "" -#: part/serializers.py:1214 +#: part/serializers.py:1267 msgid "Limit stocktake report to a particular stock location, and any child locations" msgstr "" -#: part/serializers.py:1220 +#: part/serializers.py:1273 msgid "Exclude External Stock" msgstr "" -#: part/serializers.py:1221 +#: part/serializers.py:1274 msgid "Exclude stock items in external locations" msgstr "" -#: part/serializers.py:1226 +#: part/serializers.py:1279 msgid "Generate Report" msgstr "" -#: part/serializers.py:1227 +#: part/serializers.py:1280 msgid "Generate report file containing calculated stocktake data" msgstr "" -#: part/serializers.py:1232 +#: part/serializers.py:1285 msgid "Update Parts" msgstr "" -#: part/serializers.py:1233 +#: part/serializers.py:1286 msgid "Update specified parts with calculated stocktake data" msgstr "" -#: part/serializers.py:1241 +#: part/serializers.py:1294 msgid "Stocktake functionality is not enabled" msgstr "" -#: part/serializers.py:1347 +#: part/serializers.py:1299 +msgid "Background worker check failed" +msgstr "" + +#: part/serializers.py:1401 msgid "Override calculated value for minimum price" msgstr "" -#: part/serializers.py:1354 +#: part/serializers.py:1408 msgid "Minimum price currency" msgstr "" -#: part/serializers.py:1362 +#: part/serializers.py:1416 msgid "Override calculated value for maximum price" msgstr "" -#: part/serializers.py:1369 +#: part/serializers.py:1423 msgid "Maximum price currency" msgstr "" -#: part/serializers.py:1398 +#: part/serializers.py:1452 msgid "Update" msgstr "" -#: part/serializers.py:1399 +#: part/serializers.py:1453 msgid "Update pricing for this part" msgstr "" -#: part/serializers.py:1422 +#: part/serializers.py:1476 #, python-brace-format msgid "Could not convert from provided currencies to {default_currency}" msgstr "" -#: part/serializers.py:1429 +#: part/serializers.py:1483 msgid "Minimum price must not be greater than maximum price" msgstr "" -#: part/serializers.py:1432 +#: part/serializers.py:1486 msgid "Maximum price must not be less than minimum price" msgstr "" -#: part/serializers.py:1576 +#: part/serializers.py:1634 msgid "Select the parent assembly" msgstr "" -#: part/serializers.py:1585 +#: part/serializers.py:1643 msgid "Component Name" msgstr "" -#: part/serializers.py:1588 +#: part/serializers.py:1646 msgid "Component IPN" msgstr "" -#: part/serializers.py:1591 +#: part/serializers.py:1649 msgid "Component Description" msgstr "" -#: part/serializers.py:1597 +#: part/serializers.py:1655 msgid "Select the component part" msgstr "" -#: part/serializers.py:1606 part/templates/part/part_base.html:235 +#: part/serializers.py:1664 part/templates/part/part_base.html:243 #: templates/js/translated/bom.js:1219 msgid "Can Build" msgstr "" -#: part/serializers.py:1837 +#: part/serializers.py:1899 msgid "Select part to copy BOM from" msgstr "" -#: part/serializers.py:1845 +#: part/serializers.py:1907 msgid "Remove Existing Data" msgstr "" -#: part/serializers.py:1846 +#: part/serializers.py:1908 msgid "Remove existing BOM items before copying" msgstr "" -#: part/serializers.py:1851 +#: part/serializers.py:1913 msgid "Include Inherited" msgstr "" -#: part/serializers.py:1852 +#: part/serializers.py:1914 msgid "Include BOM items which are inherited from templated parts" msgstr "" -#: part/serializers.py:1857 +#: part/serializers.py:1919 msgid "Skip Invalid Rows" msgstr "" -#: part/serializers.py:1858 +#: part/serializers.py:1920 msgid "Enable this option to skip invalid rows" msgstr "" -#: part/serializers.py:1863 +#: part/serializers.py:1925 msgid "Copy Substitute Parts" msgstr "" -#: part/serializers.py:1864 +#: part/serializers.py:1926 msgid "Copy substitute parts when duplicate BOM items" msgstr "" -#: part/serializers.py:1901 +#: part/serializers.py:1963 msgid "Clear Existing BOM" msgstr "" -#: part/serializers.py:1902 +#: part/serializers.py:1964 msgid "Delete existing BOM items before uploading" msgstr "" -#: part/serializers.py:1934 +#: part/serializers.py:1996 msgid "No part column specified" msgstr "" -#: part/serializers.py:1978 +#: part/serializers.py:2040 msgid "Multiple matching parts found" msgstr "" -#: part/serializers.py:1981 +#: part/serializers.py:2043 msgid "No matching part found" msgstr "" -#: part/serializers.py:1984 +#: part/serializers.py:2045 msgid "Part is not designated as a component" msgstr "" -#: part/serializers.py:1993 +#: part/serializers.py:2054 msgid "Quantity not provided" msgstr "" -#: part/serializers.py:2001 +#: part/serializers.py:2062 msgid "Invalid quantity" msgstr "" -#: part/serializers.py:2024 +#: part/serializers.py:2085 msgid "At least one BOM item is required" msgstr "" #: part/stocktake.py:224 templates/js/translated/part.js:1073 #: templates/js/translated/part.js:1828 templates/js/translated/part.js:1884 -#: templates/js/translated/purchase_order.js:2154 +#: templates/js/translated/purchase_order.js:2138 msgid "Total Quantity" msgstr "" @@ -7932,9 +8157,9 @@ msgid "Add stocktake information" msgstr "" #: part/templates/part/detail.html:67 part/templates/part/part_sidebar.html:50 -#: stock/admin.py:255 templates/InvenTree/settings/part_stocktake.html:30 +#: stock/admin.py:256 templates/InvenTree/settings/part_stocktake.html:30 #: templates/InvenTree/settings/sidebar.html:53 -#: templates/js/translated/stock.js:2301 users/models.py:204 +#: templates/js/translated/stock.js:2302 users/models.py:204 msgid "Stocktake" msgstr "" @@ -8093,142 +8318,146 @@ msgstr "" msgid "Part List" msgstr "" -#: part/templates/part/part_base.html:25 part/templates/part/part_base.html:29 +#: part/templates/part/part_base.html:26 part/templates/part/part_base.html:30 msgid "You are subscribed to notifications for this part" msgstr "" -#: part/templates/part/part_base.html:33 +#: part/templates/part/part_base.html:34 msgid "Subscribe to notifications for this part" msgstr "" -#: part/templates/part/part_base.html:52 +#: part/templates/part/part_base.html:53 #: stock/templates/stock/item_base.html:62 -#: stock/templates/stock/location.html:71 templates/js/translated/label.js:136 +#: stock/templates/stock/location.html:72 templates/js/translated/label.js:136 msgid "Print Label" msgstr "" -#: part/templates/part/part_base.html:58 +#: part/templates/part/part_base.html:59 msgid "Show pricing information" msgstr "" -#: part/templates/part/part_base.html:63 -#: stock/templates/stock/item_base.html:110 -#: stock/templates/stock/location.html:80 +#: part/templates/part/part_base.html:64 +#: stock/templates/stock/item_base.html:107 +#: stock/templates/stock/location.html:81 msgid "Stock actions" msgstr "" -#: part/templates/part/part_base.html:70 +#: part/templates/part/part_base.html:71 msgid "Count part stock" msgstr "" -#: part/templates/part/part_base.html:76 +#: part/templates/part/part_base.html:77 msgid "Transfer part stock" msgstr "" -#: part/templates/part/part_base.html:91 templates/js/translated/part.js:2299 +#: part/templates/part/part_base.html:92 templates/js/translated/part.js:2299 msgid "Part actions" msgstr "" -#: part/templates/part/part_base.html:94 +#: part/templates/part/part_base.html:95 msgid "Duplicate part" msgstr "" -#: part/templates/part/part_base.html:97 +#: part/templates/part/part_base.html:98 msgid "Edit part" msgstr "" -#: part/templates/part/part_base.html:100 +#: part/templates/part/part_base.html:101 msgid "Delete part" msgstr "" -#: part/templates/part/part_base.html:119 +#: part/templates/part/part_base.html:120 msgid "Part is a template part (variants can be made from this part)" msgstr "" -#: part/templates/part/part_base.html:123 +#: part/templates/part/part_base.html:124 msgid "Part can be assembled from other parts" msgstr "" -#: part/templates/part/part_base.html:127 +#: part/templates/part/part_base.html:128 msgid "Part can be used in assemblies" msgstr "" -#: part/templates/part/part_base.html:131 +#: part/templates/part/part_base.html:132 msgid "Part stock is tracked by serial number" msgstr "" -#: part/templates/part/part_base.html:135 +#: part/templates/part/part_base.html:136 msgid "Part can be purchased from external suppliers" msgstr "" -#: part/templates/part/part_base.html:139 +#: part/templates/part/part_base.html:140 msgid "Part can be sold to customers" msgstr "" -#: part/templates/part/part_base.html:145 +#: part/templates/part/part_base.html:146 msgid "Part is not active" msgstr "" -#: part/templates/part/part_base.html:153 +#: part/templates/part/part_base.html:154 msgid "Part is virtual (not a physical part)" msgstr "" -#: part/templates/part/part_base.html:163 -#: part/templates/part/part_base.html:690 +#: part/templates/part/part_base.html:164 +#: part/templates/part/part_base.html:698 msgid "Show Part Details" msgstr "" #: part/templates/part/part_base.html:218 -#: stock/templates/stock/item_base.html:388 +msgid "Required for Orders" +msgstr "" + +#: part/templates/part/part_base.html:226 +#: stock/templates/stock/item_base.html:385 msgid "Allocated to Build Orders" msgstr "" -#: part/templates/part/part_base.html:227 -#: stock/templates/stock/item_base.html:381 +#: part/templates/part/part_base.html:235 +#: stock/templates/stock/item_base.html:378 msgid "Allocated to Sales Orders" msgstr "" -#: part/templates/part/part_base.html:300 +#: part/templates/part/part_base.html:308 msgid "Minimum stock level" msgstr "" -#: part/templates/part/part_base.html:331 templates/js/translated/bom.js:1071 +#: part/templates/part/part_base.html:339 templates/js/translated/bom.js:1071 #: templates/js/translated/part.js:1271 templates/js/translated/part.js:2463 #: templates/js/translated/pricing.js:391 -#: templates/js/translated/pricing.js:1054 +#: templates/js/translated/pricing.js:1052 msgid "Price Range" msgstr "" -#: part/templates/part/part_base.html:361 +#: part/templates/part/part_base.html:369 msgid "Latest Serial Number" msgstr "" -#: part/templates/part/part_base.html:365 -#: stock/templates/stock/item_base.html:322 +#: part/templates/part/part_base.html:373 +#: stock/templates/stock/item_base.html:319 msgid "Search for serial number" msgstr "" -#: part/templates/part/part_base.html:453 +#: part/templates/part/part_base.html:461 msgid "Part QR Code" msgstr "" -#: part/templates/part/part_base.html:470 +#: part/templates/part/part_base.html:478 msgid "Link Barcode to Part" msgstr "" -#: part/templates/part/part_base.html:520 +#: part/templates/part/part_base.html:528 msgid "Calculate" msgstr "" -#: part/templates/part/part_base.html:537 +#: part/templates/part/part_base.html:545 msgid "Remove associated image from this part" msgstr "" -#: part/templates/part/part_base.html:588 +#: part/templates/part/part_base.html:596 msgid "No matching images found" msgstr "" -#: part/templates/part/part_base.html:684 +#: part/templates/part/part_base.html:692 msgid "Hide Part Details" msgstr "" @@ -8282,13 +8511,13 @@ msgid "Variants" msgstr "" #: part/templates/part/part_sidebar.html:14 -#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:21 +#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:22 #: stock/templates/stock/stock_app_base.html:10 #: templates/InvenTree/search.html:153 #: templates/InvenTree/settings/sidebar.html:51 #: templates/js/translated/part.js:1249 templates/js/translated/part.js:2152 #: templates/js/translated/part.js:2411 templates/js/translated/stock.js:1066 -#: templates/js/translated/stock.js:2155 templates/navbar.html:31 +#: templates/js/translated/stock.js:2156 templates/navbar.html:31 msgid "Stock" msgstr "" @@ -8324,17 +8553,17 @@ msgstr "" #: part/templates/part/prices.html:18 #: templates/InvenTree/settings/settings_staff_js.html:80 #: templates/InvenTree/settings/user.html:24 -#: templates/js/translated/helpers.js:103 +#: templates/js/translated/helpers.js:104 #: templates/js/translated/pricing.js:628 templates/notes_buttons.html:3 #: templates/notes_buttons.html:4 msgid "Edit" msgstr "" -#: part/templates/part/prices.html:28 stock/admin.py:251 -#: stock/templates/stock/item_base.html:446 -#: templates/js/translated/company.js:1703 -#: templates/js/translated/company.js:1713 -#: templates/js/translated/stock.js:2331 +#: part/templates/part/prices.html:28 stock/admin.py:252 +#: stock/templates/stock/item_base.html:443 +#: templates/js/translated/company.js:1704 +#: templates/js/translated/company.js:1714 +#: templates/js/translated/stock.js:2332 msgid "Last Updated" msgstr "" @@ -8406,7 +8635,7 @@ msgid "Update Pricing" msgstr "" #: part/templates/part/stock_count.html:7 -#: templates/js/translated/model_renderers.js:228 +#: templates/js/translated/model_renderers.js:231 #: templates/js/translated/part.js:707 templates/js/translated/part.js:2147 #: templates/js/translated/part.js:2149 msgid "No Stock" @@ -8486,7 +8715,7 @@ msgstr "" msgid "Part Pricing" msgstr "" -#: plugin/api.py:172 +#: plugin/api.py:175 msgid "Plugin cannot be deleted as it is currently active" msgstr "" @@ -8498,78 +8727,85 @@ msgstr "" msgid "No matching action found" msgstr "" -#: plugin/base/barcodes/api.py:125 plugin/base/barcodes/api.py:371 -#: plugin/base/barcodes/api.py:546 +#: plugin/base/barcodes/api.py:203 msgid "No match found for barcode data" msgstr "" -#: plugin/base/barcodes/api.py:129 +#: plugin/base/barcodes/api.py:207 msgid "Match found for barcode data" msgstr "" -#: plugin/base/barcodes/api.py:163 plugin/base/barcodes/serializers.py:45 +#: plugin/base/barcodes/api.py:245 plugin/base/barcodes/serializers.py:72 msgid "Model is not supported" msgstr "" -#: plugin/base/barcodes/api.py:168 +#: plugin/base/barcodes/api.py:250 msgid "Model instance not found" msgstr "" -#: plugin/base/barcodes/api.py:197 -#: templates/js/translated/purchase_order.js:1468 +#: plugin/base/barcodes/api.py:279 +#: templates/js/translated/purchase_order.js:1452 msgid "Barcode matches existing item" msgstr "" -#: plugin/base/barcodes/api.py:336 +#: plugin/base/barcodes/api.py:418 msgid "No matching part data found" msgstr "" -#: plugin/base/barcodes/api.py:353 +#: plugin/base/barcodes/api.py:434 msgid "No matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:357 +#: plugin/base/barcodes/api.py:437 msgid "Multiple matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:381 +#: plugin/base/barcodes/api.py:450 plugin/base/barcodes/api.py:664 +msgid "No matching plugin found for barcode data" +msgstr "" + +#: plugin/base/barcodes/api.py:460 msgid "Matched supplier part" msgstr "" -#: plugin/base/barcodes/api.py:430 +#: plugin/base/barcodes/api.py:525 msgid "Item has already been received" msgstr "" -#: plugin/base/barcodes/api.py:467 +#: plugin/base/barcodes/api.py:563 msgid "No match for supplier barcode" msgstr "" -#: plugin/base/barcodes/api.py:510 +#: plugin/base/barcodes/api.py:612 msgid "Multiple matching line items found" msgstr "" -#: plugin/base/barcodes/api.py:513 +#: plugin/base/barcodes/api.py:615 msgid "No matching line item found" msgstr "" -#: plugin/base/barcodes/api.py:551 plugin/base/barcodes/api.py:558 +#: plugin/base/barcodes/api.py:661 +msgid "No sales order provided" +msgstr "" + +#: plugin/base/barcodes/api.py:670 msgid "Barcode does not match an existing stock item" msgstr "" -#: plugin/base/barcodes/api.py:569 +#: plugin/base/barcodes/api.py:686 msgid "Stock item does not match line item" msgstr "" -#: plugin/base/barcodes/api.py:593 templates/js/translated/build.js:2780 -#: templates/js/translated/sales_order.js:1953 +#: plugin/base/barcodes/api.py:716 templates/js/translated/build.js:2798 +#: templates/js/translated/sales_order.js:1934 msgid "Insufficient stock available" msgstr "" -#: plugin/base/barcodes/api.py:602 +#: plugin/base/barcodes/api.py:729 msgid "Stock item allocated to sales order" msgstr "" -#: plugin/base/barcodes/api.py:606 +#: plugin/base/barcodes/api.py:732 msgid "Not enough information" msgstr "" @@ -8591,75 +8827,75 @@ msgstr "" msgid "Purchase order does not match supplier" msgstr "" -#: plugin/base/barcodes/mixins.py:465 +#: plugin/base/barcodes/mixins.py:467 msgid "Failed to find pending line item for supplier part" msgstr "" -#: plugin/base/barcodes/mixins.py:496 +#: plugin/base/barcodes/mixins.py:498 msgid "Further information required to receive line item" msgstr "" -#: plugin/base/barcodes/mixins.py:504 +#: plugin/base/barcodes/mixins.py:506 msgid "Received purchase order line item" msgstr "" -#: plugin/base/barcodes/serializers.py:21 +#: plugin/base/barcodes/serializers.py:48 msgid "Scanned barcode data" msgstr "" -#: plugin/base/barcodes/serializers.py:30 +#: plugin/base/barcodes/serializers.py:57 msgid "Model name to generate barcode for" msgstr "" -#: plugin/base/barcodes/serializers.py:35 +#: plugin/base/barcodes/serializers.py:62 msgid "Primary key of model object to generate barcode for" msgstr "" -#: plugin/base/barcodes/serializers.py:105 +#: plugin/base/barcodes/serializers.py:132 msgid "Purchase Order to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:111 +#: plugin/base/barcodes/serializers.py:138 msgid "Purchase order is not pending" msgstr "" -#: plugin/base/barcodes/serializers.py:129 +#: plugin/base/barcodes/serializers.py:156 msgid "PurchaseOrder to receive items against" msgstr "" -#: plugin/base/barcodes/serializers.py:135 +#: plugin/base/barcodes/serializers.py:162 msgid "Purchase order has not been placed" msgstr "" -#: plugin/base/barcodes/serializers.py:143 +#: plugin/base/barcodes/serializers.py:170 msgid "Location to receive items into" msgstr "" -#: plugin/base/barcodes/serializers.py:149 +#: plugin/base/barcodes/serializers.py:176 msgid "Cannot select a structural location" msgstr "" -#: plugin/base/barcodes/serializers.py:163 +#: plugin/base/barcodes/serializers.py:190 msgid "Sales Order to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:169 +#: plugin/base/barcodes/serializers.py:196 msgid "Sales order is not pending" msgstr "" -#: plugin/base/barcodes/serializers.py:177 +#: plugin/base/barcodes/serializers.py:204 msgid "Sales order line item to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:184 +#: plugin/base/barcodes/serializers.py:211 msgid "Sales order shipment to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:190 +#: plugin/base/barcodes/serializers.py:217 msgid "Shipment has already been delivered" msgstr "" -#: plugin/base/barcodes/serializers.py:195 +#: plugin/base/barcodes/serializers.py:222 msgid "Quantity to allocate" msgstr "" @@ -8679,6 +8915,42 @@ msgstr "" msgid "No items provided to print" msgstr "" +#: plugin/base/ui/serializers.py:30 +msgid "Plugin Name" +msgstr "Plugina nimi" + +#: plugin/base/ui/serializers.py:34 +msgid "Feature Type" +msgstr "" + +#: plugin/base/ui/serializers.py:39 +msgid "Feature Label" +msgstr "" + +#: plugin/base/ui/serializers.py:44 +msgid "Feature Title" +msgstr "" + +#: plugin/base/ui/serializers.py:49 +msgid "Feature Description" +msgstr "" + +#: plugin/base/ui/serializers.py:54 +msgid "Feature Icon" +msgstr "" + +#: plugin/base/ui/serializers.py:58 +msgid "Feature Options" +msgstr "" + +#: plugin/base/ui/serializers.py:61 +msgid "Feature Context" +msgstr "" + +#: plugin/base/ui/serializers.py:64 +msgid "Feature Source (javascript)" +msgstr "" + #: plugin/builtin/barcodes/inventree_barcode.py:27 msgid "InvenTree Barcodes" msgstr "" @@ -8756,7 +9028,7 @@ msgstr "" msgid "URL that is used to send messages to a slack channel" msgstr "" -#: plugin/builtin/integration/core_notifications.py:164 +#: plugin/builtin/integration/core_notifications.py:166 msgid "Open link" msgstr "" @@ -8794,11 +9066,11 @@ msgstr "" msgid "Provides support for printing using a machine" msgstr "" -#: plugin/builtin/labels/inventree_machine.py:149 +#: plugin/builtin/labels/inventree_machine.py:151 msgid "last used" msgstr "" -#: plugin/builtin/labels/inventree_machine.py:166 +#: plugin/builtin/labels/inventree_machine.py:168 msgid "Options" msgstr "" @@ -8822,7 +9094,7 @@ msgstr "" msgid "Print a border around each label" msgstr "" -#: plugin/builtin/labels/label_sheet.py:47 report/models.py:307 +#: plugin/builtin/labels/label_sheet.py:47 report/models.py:315 msgid "Landscape" msgstr "" @@ -8894,19 +9166,19 @@ msgstr "" msgid "The Supplier which acts as 'TME'" msgstr "" -#: plugin/installer.py:194 plugin/installer.py:282 +#: plugin/installer.py:199 plugin/installer.py:282 msgid "Only staff users can administer plugins" msgstr "" -#: plugin/installer.py:197 +#: plugin/installer.py:202 msgid "Plugin installation is disabled" msgstr "" -#: plugin/installer.py:248 +#: plugin/installer.py:246 msgid "Installed plugin successfully" msgstr "" -#: plugin/installer.py:254 +#: plugin/installer.py:251 #, python-brace-format msgid "Installed plugin into {path}" msgstr "" @@ -8943,10 +9215,6 @@ msgstr "" msgid "Plugin Configurations" msgstr "" -#: plugin/models.py:43 users/models.py:100 -msgid "Key" -msgstr "" - #: plugin/models.py:44 msgid "Key of plugin" msgstr "" @@ -8955,7 +9223,7 @@ msgstr "" msgid "PluginName of the plugin" msgstr "" -#: plugin/models.py:59 plugin/serializers.py:90 +#: plugin/models.py:59 plugin/serializers.py:115 msgid "Package Name" msgstr "" @@ -8984,17 +9252,17 @@ msgstr "" msgid "Package Plugin" msgstr "" -#: plugin/models.py:220 report/models.py:474 +#: plugin/models.py:259 report/models.py:482 #: templates/InvenTree/settings/plugin_settings.html:9 #: templates/js/translated/plugin.js:51 msgid "Plugin" msgstr "" -#: plugin/models.py:267 +#: plugin/models.py:306 msgid "Method" msgstr "" -#: plugin/plugin.py:270 +#: plugin/plugin.py:275 msgid "No author found" msgstr "" @@ -9053,81 +9321,157 @@ msgstr "" msgid "InvenTree Contributors" msgstr "" -#: plugin/serializers.py:81 -msgid "Source URL" +#: plugin/samples/integration/user_interface_sample.py:27 +msgid "Enable Part Panels" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:28 +msgid "Enable custom panels for Part views" +msgstr "Luba kohandatud paneelid osade vaadete jaoks" + +#: plugin/samples/integration/user_interface_sample.py:33 +msgid "Enable Purchase Order Panels" +msgstr "Luba ostutellimuse paneelid" + +#: plugin/samples/integration/user_interface_sample.py:34 +msgid "Enable custom panels for Purchase Order views" +msgstr "Luba kohandatud paneelid ostutellimuse vaadete jaoks" + +#: plugin/samples/integration/user_interface_sample.py:39 +msgid "Enable Broken Panels" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:40 +msgid "Enable broken panels for testing" +msgstr "Luba katki olevad paneelid testimiseks" + +#: plugin/samples/integration/user_interface_sample.py:45 +msgid "Enable Dynamic Panel" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:46 +msgid "Enable dynamic panels for testing" +msgstr "Luba dünaamilised paneelid testimiseks" + +#: plugin/samples/integration/user_interface_sample.py:98 +msgid "Part Panel" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:131 +msgid "Broken Dashboard Item" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:133 +msgid "This is a broken dashboard item - it will not render!" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:139 +msgid "Sample Dashboard Item" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:141 +msgid "This is a sample dashboard item. It renders a simple string of HTML content." +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:147 +msgid "Context Dashboard Item" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:161 +msgid "Admin Dashboard Item" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:162 +msgid "This is an admin-only dashboard item." +msgstr "" + +#: plugin/serializers.py:82 +msgid "Source File" msgstr "" #: plugin/serializers.py:83 +msgid "Path to the source file for admin integration" +msgstr "" + +#: plugin/serializers.py:90 +msgid "Optional context data for the admin integration" +msgstr "" + +#: plugin/serializers.py:106 +msgid "Source URL" +msgstr "" + +#: plugin/serializers.py:108 msgid "Source for the package - this can be a custom registry or a VCS path" msgstr "" -#: plugin/serializers.py:92 +#: plugin/serializers.py:117 msgid "Name for the Plugin Package - can also contain a version indicator" msgstr "" -#: plugin/serializers.py:99 +#: plugin/serializers.py:124 #: templates/InvenTree/settings/plugin_settings.html:42 #: templates/js/translated/plugin.js:86 msgid "Version" msgstr "" -#: plugin/serializers.py:101 +#: plugin/serializers.py:126 msgid "Version specifier for the plugin. Leave blank for latest version." msgstr "" -#: plugin/serializers.py:106 +#: plugin/serializers.py:131 msgid "Confirm plugin installation" msgstr "" -#: plugin/serializers.py:108 +#: plugin/serializers.py:133 msgid "This will install this plugin now into the current instance. The instance will go into maintenance." msgstr "" -#: plugin/serializers.py:121 +#: plugin/serializers.py:146 msgid "Installation not confirmed" msgstr "" -#: plugin/serializers.py:123 +#: plugin/serializers.py:148 msgid "Either packagename of URL must be provided" msgstr "" -#: plugin/serializers.py:161 +#: plugin/serializers.py:184 msgid "Full reload" msgstr "" -#: plugin/serializers.py:162 +#: plugin/serializers.py:185 msgid "Perform a full reload of the plugin registry" msgstr "" -#: plugin/serializers.py:168 +#: plugin/serializers.py:191 msgid "Force reload" msgstr "" -#: plugin/serializers.py:170 +#: plugin/serializers.py:193 msgid "Force a reload of the plugin registry, even if it is already loaded" msgstr "" -#: plugin/serializers.py:177 +#: plugin/serializers.py:200 msgid "Collect plugins" msgstr "" -#: plugin/serializers.py:178 +#: plugin/serializers.py:201 msgid "Collect plugins and add them to the registry" msgstr "" -#: plugin/serializers.py:205 +#: plugin/serializers.py:228 msgid "Activate Plugin" msgstr "" -#: plugin/serializers.py:206 +#: plugin/serializers.py:229 msgid "Activate this plugin" msgstr "" -#: plugin/serializers.py:226 +#: plugin/serializers.py:249 msgid "Delete configuration" msgstr "" -#: plugin/serializers.py:227 +#: plugin/serializers.py:250 msgid "Delete the plugin configuration from the database" msgstr "" @@ -9135,11 +9479,11 @@ msgstr "" msgid "No valid objects provided to template" msgstr "" -#: report/api.py:103 report/models.py:438 report/serializers.py:98 -#: report/serializers.py:148 templates/js/translated/purchase_order.js:1817 +#: report/api.py:103 report/models.py:446 report/serializers.py:99 +#: report/serializers.py:149 templates/js/translated/purchase_order.js:1801 #: templates/js/translated/return_order.js:353 -#: templates/js/translated/sales_order.js:887 -#: templates/js/translated/sales_order.js:1047 +#: templates/js/translated/sales_order.js:846 +#: templates/js/translated/sales_order.js:1020 msgid "Items" msgstr "" @@ -9167,18 +9511,22 @@ msgstr "" msgid "Error printing label" msgstr "" -#: report/api.py:375 report/api.py:411 +#: report/api.py:358 +msgid "Report saved at time of printing" +msgstr "Aruanne salvestati printimise ajal" + +#: report/api.py:384 report/api.py:420 #, python-brace-format msgid "Template file '{template}' is missing or does not exist" msgstr "" #: report/helpers.py:43 msgid "A4" -msgstr "" +msgstr "A4" #: report/helpers.py:44 msgid "A3" -msgstr "" +msgstr "A3" #: report/helpers.py:45 msgid "Legal" @@ -9204,135 +9552,143 @@ msgstr "" msgid "Revision number (auto-increments)" msgstr "" -#: report/models.py:202 +#: report/models.py:168 +msgid "Attach to Model on Print" +msgstr "Lisa mudelile printimisel" + +#: report/models.py:170 +msgid "Save report output as an attachment against linked model instance when printing" +msgstr "Salvesta aruande väljund manusega seotud mudeli eksemplari juurde printimisel" + +#: report/models.py:210 msgid "Filename Pattern" msgstr "" -#: report/models.py:203 +#: report/models.py:211 msgid "Pattern for generating filenames" msgstr "" -#: report/models.py:208 +#: report/models.py:216 msgid "Template is enabled" msgstr "" -#: report/models.py:214 +#: report/models.py:222 msgid "Target model type for template" msgstr "" -#: report/models.py:234 +#: report/models.py:242 msgid "Filters" -msgstr "" +msgstr "Filtrid" -#: report/models.py:235 +#: report/models.py:243 msgid "Template query filters (comma-separated list of key=value pairs)" msgstr "" -#: report/models.py:294 report/models.py:361 +#: report/models.py:302 report/models.py:369 msgid "Template file" msgstr "" -#: report/models.py:302 +#: report/models.py:310 msgid "Page size for PDF reports" msgstr "" -#: report/models.py:308 +#: report/models.py:316 msgid "Render report in landscape orientation" msgstr "" -#: report/models.py:367 +#: report/models.py:375 msgid "Width [mm]" msgstr "" -#: report/models.py:368 +#: report/models.py:376 msgid "Label width, specified in mm" msgstr "" -#: report/models.py:374 +#: report/models.py:382 msgid "Height [mm]" msgstr "" -#: report/models.py:375 +#: report/models.py:383 msgid "Label height, specified in mm" msgstr "" -#: report/models.py:438 +#: report/models.py:446 msgid "Number of items to process" msgstr "" -#: report/models.py:444 +#: report/models.py:452 msgid "Report generation is complete" msgstr "" -#: report/models.py:448 templates/js/translated/build.js:2349 +#: report/models.py:456 templates/js/translated/build.js:2352 msgid "Progress" msgstr "" -#: report/models.py:448 +#: report/models.py:456 msgid "Report generation progress" msgstr "" -#: report/models.py:456 +#: report/models.py:464 msgid "Report Template" msgstr "" -#: report/models.py:463 report/models.py:486 +#: report/models.py:471 report/models.py:494 msgid "Output File" msgstr "" -#: report/models.py:464 report/models.py:487 +#: report/models.py:472 report/models.py:495 msgid "Generated output file" msgstr "" -#: report/models.py:475 +#: report/models.py:483 msgid "Label output plugin" msgstr "" -#: report/models.py:479 +#: report/models.py:487 msgid "Label Template" msgstr "" -#: report/models.py:502 +#: report/models.py:510 msgid "Snippet" msgstr "" -#: report/models.py:503 +#: report/models.py:511 msgid "Report snippet file" msgstr "" -#: report/models.py:510 +#: report/models.py:518 msgid "Snippet file description" msgstr "" -#: report/models.py:528 +#: report/models.py:536 msgid "Asset" msgstr "" -#: report/models.py:529 +#: report/models.py:537 msgid "Report asset file" msgstr "" -#: report/models.py:536 +#: report/models.py:544 msgid "Asset file description" msgstr "" -#: report/serializers.py:91 +#: report/serializers.py:92 msgid "Select report template" msgstr "" -#: report/serializers.py:99 report/serializers.py:149 +#: report/serializers.py:100 report/serializers.py:150 msgid "List of item primary keys to include in the report" msgstr "" -#: report/serializers.py:132 +#: report/serializers.py:133 msgid "Select label template" msgstr "" -#: report/serializers.py:140 +#: report/serializers.py:141 msgid "Printing Plugin" msgstr "" -#: report/serializers.py:141 +#: report/serializers.py:142 msgid "Select plugin to use for label printing" msgstr "" @@ -9365,9 +9721,9 @@ msgstr "" #: report/templates/report/inventree_sales_order_report.html:30 #: templates/js/translated/order.js:341 templates/js/translated/pricing.js:527 #: templates/js/translated/pricing.js:596 -#: templates/js/translated/pricing.js:834 -#: templates/js/translated/purchase_order.js:2185 -#: templates/js/translated/sales_order.js:1873 +#: templates/js/translated/pricing.js:832 +#: templates/js/translated/purchase_order.js:2169 +#: templates/js/translated/sales_order.js:1854 msgid "Unit Price" msgstr "" @@ -9379,13 +9735,18 @@ msgstr "" #: report/templates/report/inventree_purchase_order_report.html:72 #: report/templates/report/inventree_sales_order_report.html:72 -#: templates/js/translated/purchase_order.js:2087 -#: templates/js/translated/sales_order.js:1842 +#: templates/js/translated/purchase_order.js:2071 +#: templates/js/translated/sales_order.js:1823 #: templates/test_statistics_table.html:8 #: templates/test_statistics_table.html:19 msgid "Total" msgstr "" +#: report/templates/report/inventree_sales_order_shipment_report.html:23 +#: stock/templates/stock/stock_sidebar.html:8 +msgid "Allocations" +msgstr "" + #: report/templates/report/inventree_stock_location_report.html:97 msgid "Stock location items" msgstr "" @@ -9403,15 +9764,13 @@ msgstr "" msgid "Test" msgstr "" -#: report/templates/report/inventree_test_report.html:103 stock/models.py:2544 -msgid "Result" -msgstr "" - #: report/templates/report/inventree_test_report.html:129 +#: templates/js/translated/stock.js:1448 msgid "Pass" msgstr "" #: report/templates/report/inventree_test_report.html:131 +#: templates/js/translated/stock.js:1450 msgid "Fail" msgstr "" @@ -9420,17 +9779,18 @@ msgid "No result (required)" msgstr "" #: report/templates/report/inventree_test_report.html:140 +#: templates/js/translated/stock.js:1455 msgid "No result" msgstr "" #: report/templates/report/inventree_test_report.html:153 -#: stock/serializers.py:599 stock/templates/stock/stock_sidebar.html:16 +#: stock/serializers.py:626 stock/templates/stock/stock_sidebar.html:16 msgid "Installed Items" msgstr "" -#: report/templates/report/inventree_test_report.html:167 stock/admin.py:161 +#: report/templates/report/inventree_test_report.html:167 stock/admin.py:162 #: templates/js/translated/stock.js:706 templates/js/translated/stock.js:877 -#: templates/js/translated/stock.js:3194 +#: templates/js/translated/stock.js:3195 msgid "Serial" msgstr "" @@ -9450,67 +9810,67 @@ msgstr "" msgid "company_image tag requires a Company instance" msgstr "" -#: stock/admin.py:51 stock/admin.py:171 +#: stock/admin.py:51 stock/admin.py:172 msgid "Location ID" msgstr "" -#: stock/admin.py:63 stock/templates/stock/location.html:128 -#: stock/templates/stock/location.html:134 +#: stock/admin.py:63 stock/templates/stock/location.html:129 +#: stock/templates/stock/location.html:135 msgid "Location Path" msgstr "" -#: stock/admin.py:148 +#: stock/admin.py:149 msgid "Stock Item ID" msgstr "" -#: stock/admin.py:167 +#: stock/admin.py:168 msgid "Status Code" msgstr "" -#: stock/admin.py:179 +#: stock/admin.py:180 msgid "Supplier Part ID" msgstr "" -#: stock/admin.py:184 +#: stock/admin.py:185 msgid "Supplier Part SKU" msgstr "" -#: stock/admin.py:189 +#: stock/admin.py:190 msgid "Supplier ID" msgstr "" -#: stock/admin.py:200 +#: stock/admin.py:201 msgid "Customer ID" msgstr "" -#: stock/admin.py:205 stock/models.py:825 -#: stock/templates/stock/item_base.html:354 +#: stock/admin.py:206 stock/models.py:902 +#: stock/templates/stock/item_base.html:351 msgid "Installed In" msgstr "" -#: stock/admin.py:210 +#: stock/admin.py:211 msgid "Build ID" msgstr "" -#: stock/admin.py:220 +#: stock/admin.py:221 msgid "Sales Order ID" msgstr "" -#: stock/admin.py:225 +#: stock/admin.py:226 msgid "Purchase Order ID" msgstr "" -#: stock/admin.py:240 +#: stock/admin.py:241 msgid "Review Needed" msgstr "" -#: stock/admin.py:245 +#: stock/admin.py:246 msgid "Delete on Deplete" msgstr "" -#: stock/admin.py:260 stock/models.py:919 -#: stock/templates/stock/item_base.html:433 -#: templates/js/translated/stock.js:2315 users/models.py:124 +#: stock/admin.py:261 stock/models.py:996 +#: stock/templates/stock/item_base.html:430 +#: templates/js/translated/stock.js:2316 users/models.py:124 msgid "Expiry Date" msgstr "" @@ -9526,11 +9886,11 @@ msgstr "" msgid "Include sub-locations in filtered results" msgstr "" -#: stock/api.py:367 stock/serializers.py:1186 +#: stock/api.py:366 stock/serializers.py:1217 msgid "Parent Location" msgstr "" -#: stock/api.py:368 +#: stock/api.py:367 msgid "Filter by parent location" msgstr "" @@ -9550,8 +9910,8 @@ msgstr "" msgid "Expiry date after" msgstr "" -#: stock/api.py:840 stock/serializers.py:604 -#: stock/templates/stock/item_base.html:439 +#: stock/api.py:840 stock/serializers.py:631 +#: stock/templates/stock/item_base.html:436 #: templates/js/translated/table_filters.js:448 msgid "Stale" msgstr "" @@ -9560,722 +9920,726 @@ msgstr "" msgid "Quantity is required" msgstr "" -#: stock/api.py:933 +#: stock/api.py:932 msgid "Valid part must be supplied" msgstr "" -#: stock/api.py:964 +#: stock/api.py:959 msgid "The given supplier part does not exist" msgstr "" -#: stock/api.py:974 +#: stock/api.py:969 msgid "The supplier part has a pack size defined, but flag use_pack_size not set" msgstr "" -#: stock/api.py:1005 +#: stock/api.py:996 msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "" -#: stock/models.py:64 +#: stock/models.py:70 msgid "Stock Location type" msgstr "" -#: stock/models.py:65 +#: stock/models.py:71 msgid "Stock Location types" msgstr "" -#: stock/models.py:91 +#: stock/models.py:97 msgid "Default icon for all locations that have no icon set (optional)" msgstr "" -#: stock/models.py:131 stock/models.py:807 -#: stock/templates/stock/location.html:17 +#: stock/models.py:137 stock/models.py:884 +#: stock/templates/stock/location.html:18 #: stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "" -#: stock/models.py:132 stock/templates/stock/location.html:183 +#: stock/models.py:138 stock/templates/stock/location.html:184 #: templates/InvenTree/search.html:166 templates/js/translated/search.js:178 #: users/models.py:205 msgid "Stock Locations" msgstr "" -#: stock/models.py:180 stock/models.py:968 -#: stock/templates/stock/item_base.html:247 +#: stock/models.py:186 stock/models.py:1045 +#: stock/templates/stock/item_base.html:244 msgid "Owner" msgstr "" -#: stock/models.py:181 stock/models.py:969 +#: stock/models.py:187 stock/models.py:1046 msgid "Select Owner" msgstr "" -#: stock/models.py:189 +#: stock/models.py:195 msgid "Stock items may not be directly located into a structural stock locations, but may be located to child locations." msgstr "" -#: stock/models.py:196 templates/js/translated/stock.js:2865 +#: stock/models.py:202 templates/js/translated/stock.js:2866 #: templates/js/translated/table_filters.js:250 msgid "External" msgstr "" -#: stock/models.py:197 +#: stock/models.py:203 msgid "This is an external stock location" msgstr "" -#: stock/models.py:203 templates/js/translated/stock.js:2874 +#: stock/models.py:209 templates/js/translated/stock.js:2875 #: templates/js/translated/table_filters.js:253 msgid "Location type" msgstr "" -#: stock/models.py:207 +#: stock/models.py:213 msgid "Stock location type of this location" msgstr "" -#: stock/models.py:279 +#: stock/models.py:285 msgid "You cannot make this stock location structural because some stock items are already located into it!" msgstr "" -#: stock/models.py:664 +#: stock/models.py:492 +msgid "Part must be specified" +msgstr "" + +#: stock/models.py:741 msgid "Stock items cannot be located into structural stock locations!" msgstr "" -#: stock/models.py:691 stock/serializers.py:480 +#: stock/models.py:768 stock/serializers.py:492 msgid "Stock item cannot be created for virtual parts" msgstr "" -#: stock/models.py:708 +#: stock/models.py:785 #, python-brace-format msgid "Part type ('{self.supplier_part.part}') must be {self.part}" msgstr "" -#: stock/models.py:718 stock/models.py:731 +#: stock/models.py:795 stock/models.py:808 msgid "Quantity must be 1 for item with a serial number" msgstr "" -#: stock/models.py:721 +#: stock/models.py:798 msgid "Serial number cannot be set if quantity greater than 1" msgstr "" -#: stock/models.py:743 +#: stock/models.py:820 msgid "Item cannot belong to itself" msgstr "" -#: stock/models.py:748 +#: stock/models.py:825 msgid "Item must have a build reference if is_building=True" msgstr "" -#: stock/models.py:761 +#: stock/models.py:838 msgid "Build reference does not point to the same part object" msgstr "" -#: stock/models.py:777 +#: stock/models.py:854 msgid "Parent Stock Item" msgstr "" -#: stock/models.py:789 +#: stock/models.py:866 msgid "Base part" msgstr "" -#: stock/models.py:799 +#: stock/models.py:876 msgid "Select a matching supplier part for this stock item" msgstr "" -#: stock/models.py:811 +#: stock/models.py:888 msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:819 stock/serializers.py:1580 +#: stock/models.py:896 stock/serializers.py:1611 msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:830 +#: stock/models.py:907 msgid "Is this item installed in another item?" msgstr "" -#: stock/models.py:849 +#: stock/models.py:926 msgid "Serial number for this item" msgstr "" -#: stock/models.py:863 stock/serializers.py:1563 +#: stock/models.py:940 stock/serializers.py:1594 msgid "Batch code for this stock item" msgstr "" -#: stock/models.py:868 +#: stock/models.py:945 msgid "Stock Quantity" msgstr "" -#: stock/models.py:878 +#: stock/models.py:955 msgid "Source Build" msgstr "" -#: stock/models.py:881 +#: stock/models.py:958 msgid "Build for this stock item" msgstr "" -#: stock/models.py:888 stock/templates/stock/item_base.html:363 +#: stock/models.py:965 stock/templates/stock/item_base.html:360 msgid "Consumed By" msgstr "" -#: stock/models.py:891 +#: stock/models.py:968 msgid "Build order which consumed this stock item" msgstr "" -#: stock/models.py:900 +#: stock/models.py:977 msgid "Source Purchase Order" msgstr "" -#: stock/models.py:904 +#: stock/models.py:981 msgid "Purchase order for this stock item" msgstr "" -#: stock/models.py:910 +#: stock/models.py:987 msgid "Destination Sales Order" msgstr "" -#: stock/models.py:921 +#: stock/models.py:998 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "" -#: stock/models.py:939 +#: stock/models.py:1016 msgid "Delete on deplete" msgstr "" -#: stock/models.py:940 +#: stock/models.py:1017 msgid "Delete this Stock Item when stock is depleted" msgstr "" -#: stock/models.py:960 +#: stock/models.py:1037 msgid "Single unit purchase price at time of purchase" msgstr "" -#: stock/models.py:991 +#: stock/models.py:1068 msgid "Converted to part" msgstr "" -#: stock/models.py:1511 +#: stock/models.py:1600 msgid "Part is not set as trackable" msgstr "" -#: stock/models.py:1517 +#: stock/models.py:1606 msgid "Quantity must be integer" msgstr "" -#: stock/models.py:1525 +#: stock/models.py:1614 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({self.quantity})" msgstr "" -#: stock/models.py:1531 -msgid "Serial numbers must be a list of integers" +#: stock/models.py:1620 +msgid "Serial numbers must be provided as a list" msgstr "" -#: stock/models.py:1536 +#: stock/models.py:1625 msgid "Quantity does not match serial numbers" msgstr "" -#: stock/models.py:1544 stock/serializers.py:726 -msgid "Serial numbers already exist" -msgstr "" - -#: stock/models.py:1641 +#: stock/models.py:1747 stock/models.py:2563 msgid "Test template does not exist" msgstr "" -#: stock/models.py:1659 +#: stock/models.py:1765 msgid "Stock item has been assigned to a sales order" msgstr "" -#: stock/models.py:1663 +#: stock/models.py:1769 msgid "Stock item is installed in another item" msgstr "" -#: stock/models.py:1666 +#: stock/models.py:1772 msgid "Stock item contains other items" msgstr "" -#: stock/models.py:1669 +#: stock/models.py:1775 msgid "Stock item has been assigned to a customer" msgstr "" -#: stock/models.py:1672 +#: stock/models.py:1778 msgid "Stock item is currently in production" msgstr "" -#: stock/models.py:1675 +#: stock/models.py:1781 msgid "Serialized stock cannot be merged" msgstr "" -#: stock/models.py:1682 stock/serializers.py:1469 +#: stock/models.py:1788 stock/serializers.py:1500 msgid "Duplicate stock items" msgstr "" -#: stock/models.py:1686 +#: stock/models.py:1792 msgid "Stock items must refer to the same part" msgstr "" -#: stock/models.py:1694 +#: stock/models.py:1800 msgid "Stock items must refer to the same supplier part" msgstr "" -#: stock/models.py:1699 +#: stock/models.py:1805 msgid "Stock status codes must match" msgstr "" -#: stock/models.py:1960 +#: stock/models.py:2066 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:2343 +#: stock/models.py:2462 msgid "Stock Item Tracking" msgstr "" -#: stock/models.py:2376 +#: stock/models.py:2495 msgid "Entry notes" msgstr "" -#: stock/models.py:2416 +#: stock/models.py:2535 msgid "Stock Item Test Result" msgstr "" -#: stock/models.py:2449 +#: stock/models.py:2566 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:2454 +#: stock/models.py:2570 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:2459 +#: stock/models.py:2575 msgid "Invalid value for this test" msgstr "" -#: stock/models.py:2544 +#: stock/models.py:2660 msgid "Test result" -msgstr "" +msgstr "Testitulemused" -#: stock/models.py:2551 +#: stock/models.py:2667 msgid "Test output value" msgstr "" -#: stock/models.py:2559 +#: stock/models.py:2675 stock/serializers.py:245 msgid "Test result attachment" msgstr "" -#: stock/models.py:2563 +#: stock/models.py:2679 msgid "Test notes" msgstr "" -#: stock/models.py:2571 templates/js/translated/stock.js:1633 +#: stock/models.py:2687 templates/js/translated/stock.js:1633 msgid "Test station" msgstr "" -#: stock/models.py:2572 +#: stock/models.py:2688 msgid "The identifier of the test station where the test was performed" msgstr "" -#: stock/models.py:2578 +#: stock/models.py:2694 msgid "Started" msgstr "" -#: stock/models.py:2579 +#: stock/models.py:2695 msgid "The timestamp of the test start" msgstr "" -#: stock/models.py:2585 +#: stock/models.py:2701 msgid "Finished" msgstr "" -#: stock/models.py:2586 +#: stock/models.py:2702 msgid "The timestamp of the test finish" msgstr "" -#: stock/serializers.py:76 +#: stock/serializers.py:77 msgid "Generated batch code" msgstr "" -#: stock/serializers.py:85 +#: stock/serializers.py:86 msgid "Select build order" msgstr "" -#: stock/serializers.py:94 +#: stock/serializers.py:95 msgid "Select stock item to generate batch code for" msgstr "" -#: stock/serializers.py:103 +#: stock/serializers.py:104 msgid "Select location to generate batch code for" msgstr "" -#: stock/serializers.py:112 +#: stock/serializers.py:113 msgid "Select part to generate batch code for" msgstr "" -#: stock/serializers.py:121 +#: stock/serializers.py:122 msgid "Select purchase order" msgstr "" -#: stock/serializers.py:128 +#: stock/serializers.py:129 msgid "Enter quantity for batch code" msgstr "" -#: stock/serializers.py:151 +#: stock/serializers.py:152 msgid "Generated serial number" msgstr "" -#: stock/serializers.py:160 +#: stock/serializers.py:161 msgid "Select part to generate serial number for" msgstr "" -#: stock/serializers.py:168 +#: stock/serializers.py:169 msgid "Quantity of serial numbers to generate" msgstr "" -#: stock/serializers.py:233 +#: stock/serializers.py:234 msgid "Test template for this result" msgstr "" -#: stock/serializers.py:254 +#: stock/serializers.py:258 msgid "Template ID or test name must be provided" msgstr "" -#: stock/serializers.py:286 +#: stock/serializers.py:290 msgid "The test finished time cannot be earlier than the test started time" msgstr "" -#: stock/serializers.py:323 +#: stock/serializers.py:327 msgid "Serial number is too large" msgstr "" -#: stock/serializers.py:452 stock/templates/stock/item_base.html:193 +#: stock/serializers.py:462 stock/templates/stock/item_base.html:190 msgid "Parent Item" msgstr "" -#: stock/serializers.py:453 +#: stock/serializers.py:463 msgid "Parent stock item" msgstr "" -#: stock/serializers.py:472 +#: stock/serializers.py:484 msgid "Use pack size when adding: the quantity defined is the number of packs" msgstr "" -#: stock/serializers.py:596 stock/templates/stock/item_base.html:437 +#: stock/serializers.py:623 stock/templates/stock/item_base.html:434 #: templates/js/translated/table_filters.js:442 users/models.py:174 msgid "Expired" msgstr "" -#: stock/serializers.py:602 stock/templates/stock/stock_sidebar.html:20 +#: stock/serializers.py:629 stock/templates/stock/stock_sidebar.html:20 msgid "Child Items" msgstr "" -#: stock/serializers.py:606 +#: stock/serializers.py:633 msgid "Tracking Items" msgstr "" -#: stock/serializers.py:612 +#: stock/serializers.py:639 msgid "Purchase price of this stock item, per unit or pack" msgstr "" -#: stock/serializers.py:631 +#: stock/serializers.py:658 msgid "Minimum Pricing" msgstr "" -#: stock/serializers.py:637 +#: stock/serializers.py:664 msgid "Maximum Pricing" msgstr "" -#: stock/serializers.py:661 +#: stock/serializers.py:688 msgid "Enter number of stock items to serialize" msgstr "" -#: stock/serializers.py:674 +#: stock/serializers.py:701 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({q})" msgstr "" -#: stock/serializers.py:681 +#: stock/serializers.py:708 msgid "Enter serial numbers for new items" msgstr "" -#: stock/serializers.py:692 stock/serializers.py:1426 stock/serializers.py:1682 +#: stock/serializers.py:719 stock/serializers.py:1457 stock/serializers.py:1713 msgid "Destination stock location" msgstr "" -#: stock/serializers.py:699 +#: stock/serializers.py:726 msgid "Optional note field" msgstr "" -#: stock/serializers.py:709 +#: stock/serializers.py:736 msgid "Serial numbers cannot be assigned to this part" msgstr "" -#: stock/serializers.py:764 +#: stock/serializers.py:756 +msgid "Serial numbers already exist" +msgstr "" + +#: stock/serializers.py:795 msgid "Select stock item to install" msgstr "" -#: stock/serializers.py:771 +#: stock/serializers.py:802 msgid "Quantity to Install" msgstr "" -#: stock/serializers.py:772 +#: stock/serializers.py:803 msgid "Enter the quantity of items to install" msgstr "" -#: stock/serializers.py:777 stock/serializers.py:857 stock/serializers.py:983 -#: stock/serializers.py:1033 +#: stock/serializers.py:808 stock/serializers.py:888 stock/serializers.py:1014 +#: stock/serializers.py:1064 msgid "Add transaction note (optional)" msgstr "" -#: stock/serializers.py:785 +#: stock/serializers.py:816 msgid "Quantity to install must be at least 1" msgstr "" -#: stock/serializers.py:793 +#: stock/serializers.py:824 msgid "Stock item is unavailable" msgstr "" -#: stock/serializers.py:804 +#: stock/serializers.py:835 msgid "Selected part is not in the Bill of Materials" msgstr "" -#: stock/serializers.py:817 +#: stock/serializers.py:848 msgid "Quantity to install must not exceed available quantity" msgstr "" -#: stock/serializers.py:852 +#: stock/serializers.py:883 msgid "Destination location for uninstalled item" msgstr "" -#: stock/serializers.py:903 +#: stock/serializers.py:934 msgid "Unsupported statistic type: " msgstr "" -#: stock/serializers.py:917 +#: stock/serializers.py:948 msgid "Select part to convert stock item into" msgstr "" -#: stock/serializers.py:930 +#: stock/serializers.py:961 msgid "Selected part is not a valid option for conversion" msgstr "" -#: stock/serializers.py:947 +#: stock/serializers.py:978 msgid "Cannot convert stock item with assigned SupplierPart" msgstr "" -#: stock/serializers.py:978 +#: stock/serializers.py:1009 msgid "Destination location for returned item" msgstr "" -#: stock/serializers.py:1015 +#: stock/serializers.py:1046 msgid "Select stock items to change status" msgstr "" -#: stock/serializers.py:1021 +#: stock/serializers.py:1052 msgid "No stock items selected" msgstr "" -#: stock/serializers.py:1117 stock/serializers.py:1194 -#: stock/templates/stock/location.html:162 -#: stock/templates/stock/location.html:219 +#: stock/serializers.py:1148 stock/serializers.py:1225 +#: stock/templates/stock/location.html:163 +#: stock/templates/stock/location.html:220 #: stock/templates/stock/location_sidebar.html:5 msgid "Sublocations" msgstr "" -#: stock/serializers.py:1187 templates/js/translated/stock.js:160 +#: stock/serializers.py:1218 templates/js/translated/stock.js:160 msgid "Parent stock location" msgstr "" -#: stock/serializers.py:1298 +#: stock/serializers.py:1329 msgid "Part must be salable" msgstr "" -#: stock/serializers.py:1302 +#: stock/serializers.py:1333 msgid "Item is allocated to a sales order" msgstr "" -#: stock/serializers.py:1306 +#: stock/serializers.py:1337 msgid "Item is allocated to a build order" msgstr "" -#: stock/serializers.py:1330 +#: stock/serializers.py:1361 msgid "Customer to assign stock items" msgstr "" -#: stock/serializers.py:1336 +#: stock/serializers.py:1367 msgid "Selected company is not a customer" msgstr "" -#: stock/serializers.py:1344 +#: stock/serializers.py:1375 msgid "Stock assignment notes" msgstr "" -#: stock/serializers.py:1354 stock/serializers.py:1608 +#: stock/serializers.py:1385 stock/serializers.py:1639 msgid "A list of stock items must be provided" msgstr "" -#: stock/serializers.py:1433 +#: stock/serializers.py:1464 msgid "Stock merging notes" msgstr "" -#: stock/serializers.py:1438 +#: stock/serializers.py:1469 msgid "Allow mismatched suppliers" msgstr "" -#: stock/serializers.py:1439 +#: stock/serializers.py:1470 msgid "Allow stock items with different supplier parts to be merged" msgstr "" -#: stock/serializers.py:1444 +#: stock/serializers.py:1475 msgid "Allow mismatched status" msgstr "" -#: stock/serializers.py:1445 +#: stock/serializers.py:1476 msgid "Allow stock items with different status codes to be merged" msgstr "" -#: stock/serializers.py:1455 +#: stock/serializers.py:1486 msgid "At least two stock items must be provided" msgstr "" -#: stock/serializers.py:1522 +#: stock/serializers.py:1553 msgid "No Change" msgstr "" -#: stock/serializers.py:1551 +#: stock/serializers.py:1582 msgid "StockItem primary key value" msgstr "" -#: stock/serializers.py:1570 +#: stock/serializers.py:1601 msgid "Stock item status code" msgstr "" -#: stock/serializers.py:1598 +#: stock/serializers.py:1629 msgid "Stock transaction notes" msgstr "" #: stock/status_codes.py:11 msgid "OK" -msgstr "" +msgstr "OK" #: stock/status_codes.py:12 msgid "Attention needed" -msgstr "" +msgstr "Vajab tähelepanu" #: stock/status_codes.py:13 msgid "Damaged" -msgstr "" +msgstr "Kahjustatud" #: stock/status_codes.py:14 msgid "Destroyed" -msgstr "" +msgstr "Hävinud" #: stock/status_codes.py:15 msgid "Rejected" -msgstr "" +msgstr "Tagasi lükatud" #: stock/status_codes.py:19 msgid "Quarantined" -msgstr "" +msgstr "Karantiinis" -#: stock/status_codes.py:40 +#: stock/status_codes.py:44 msgid "Legacy stock tracking entry" msgstr "" -#: stock/status_codes.py:42 templates/js/translated/stock.js:550 +#: stock/status_codes.py:46 templates/js/translated/stock.js:550 msgid "Stock item created" msgstr "" -#: stock/status_codes.py:45 +#: stock/status_codes.py:49 msgid "Edited stock item" msgstr "" -#: stock/status_codes.py:46 +#: stock/status_codes.py:50 msgid "Assigned serial number" msgstr "" -#: stock/status_codes.py:49 +#: stock/status_codes.py:53 msgid "Stock counted" msgstr "" -#: stock/status_codes.py:50 +#: stock/status_codes.py:54 msgid "Stock manually added" msgstr "" -#: stock/status_codes.py:51 +#: stock/status_codes.py:55 msgid "Stock manually removed" msgstr "" -#: stock/status_codes.py:54 +#: stock/status_codes.py:58 msgid "Location changed" msgstr "" -#: stock/status_codes.py:55 +#: stock/status_codes.py:59 msgid "Stock updated" msgstr "" -#: stock/status_codes.py:58 +#: stock/status_codes.py:62 msgid "Installed into assembly" msgstr "" -#: stock/status_codes.py:59 +#: stock/status_codes.py:63 msgid "Removed from assembly" msgstr "" -#: stock/status_codes.py:61 +#: stock/status_codes.py:65 msgid "Installed component item" msgstr "" -#: stock/status_codes.py:62 +#: stock/status_codes.py:66 msgid "Removed component item" msgstr "" -#: stock/status_codes.py:65 +#: stock/status_codes.py:69 msgid "Split from parent item" msgstr "" -#: stock/status_codes.py:66 +#: stock/status_codes.py:70 msgid "Split child item" msgstr "" -#: stock/status_codes.py:69 templates/js/translated/stock.js:1943 +#: stock/status_codes.py:73 templates/js/translated/stock.js:1944 msgid "Merged stock items" msgstr "" -#: stock/status_codes.py:72 +#: stock/status_codes.py:76 msgid "Converted to variant" msgstr "" -#: stock/status_codes.py:75 +#: stock/status_codes.py:79 msgid "Build order output created" msgstr "" -#: stock/status_codes.py:76 +#: stock/status_codes.py:80 msgid "Build order output completed" msgstr "" -#: stock/status_codes.py:77 +#: stock/status_codes.py:81 msgid "Build order output rejected" msgstr "" -#: stock/status_codes.py:78 templates/js/translated/stock.js:1849 +#: stock/status_codes.py:82 templates/js/translated/stock.js:1849 msgid "Consumed by build order" msgstr "" -#: stock/status_codes.py:81 +#: stock/status_codes.py:85 msgid "Shipped against Sales Order" msgstr "" -#: stock/status_codes.py:84 +#: stock/status_codes.py:88 msgid "Received against Purchase Order" msgstr "" -#: stock/status_codes.py:87 +#: stock/status_codes.py:91 msgid "Returned against Return Order" msgstr "" -#: stock/status_codes.py:90 templates/js/translated/table_filters.js:382 +#: stock/status_codes.py:94 templates/js/translated/table_filters.js:382 msgid "Sent to customer" msgstr "" -#: stock/status_codes.py:91 +#: stock/status_codes.py:95 msgid "Returned from customer" msgstr "" @@ -10296,7 +10660,7 @@ msgstr "" msgid "Test Data" msgstr "" -#: stock/templates/stock/item.html:85 stock/templates/stock/item_base.html:65 +#: stock/templates/stock/item.html:85 msgid "Test Report" msgstr "" @@ -10316,7 +10680,7 @@ msgstr "" msgid "Installed Stock Items" msgstr "" -#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3354 +#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3355 msgid "Install Stock Item" msgstr "" @@ -10328,208 +10692,212 @@ msgstr "" msgid "Add Test Result" msgstr "" -#: stock/templates/stock/item_base.html:33 +#: stock/templates/stock/item_base.html:34 msgid "Locate stock item" msgstr "" -#: stock/templates/stock/item_base.html:51 +#: stock/templates/stock/item_base.html:52 msgid "Scan to Location" msgstr "" #: stock/templates/stock/item_base.html:59 -#: stock/templates/stock/location.html:67 +#: stock/templates/stock/location.html:68 #: templates/js/translated/filters.js:434 msgid "Printing actions" msgstr "" -#: stock/templates/stock/item_base.html:75 +#: stock/templates/stock/item_base.html:64 templates/js/translated/report.js:49 +msgid "Print Report" +msgstr "" + +#: stock/templates/stock/item_base.html:72 msgid "Stock adjustment actions" msgstr "" -#: stock/templates/stock/item_base.html:79 -#: stock/templates/stock/location.html:87 templates/js/translated/stock.js:1909 +#: stock/templates/stock/item_base.html:76 +#: stock/templates/stock/location.html:88 templates/js/translated/stock.js:1909 msgid "Count stock" msgstr "" -#: stock/templates/stock/item_base.html:81 +#: stock/templates/stock/item_base.html:78 #: templates/js/translated/stock.js:1891 msgid "Add stock" msgstr "" -#: stock/templates/stock/item_base.html:82 +#: stock/templates/stock/item_base.html:79 #: templates/js/translated/stock.js:1900 msgid "Remove stock" msgstr "" -#: stock/templates/stock/item_base.html:85 +#: stock/templates/stock/item_base.html:82 msgid "Serialize stock" msgstr "" -#: stock/templates/stock/item_base.html:88 -#: stock/templates/stock/location.html:93 templates/js/translated/stock.js:1918 +#: stock/templates/stock/item_base.html:85 +#: stock/templates/stock/location.html:94 templates/js/translated/stock.js:1918 msgid "Transfer stock" msgstr "" -#: stock/templates/stock/item_base.html:91 -#: templates/js/translated/stock.js:1972 +#: stock/templates/stock/item_base.html:88 +#: templates/js/translated/stock.js:1973 msgid "Assign to customer" msgstr "" -#: stock/templates/stock/item_base.html:94 +#: stock/templates/stock/item_base.html:91 msgid "Return to stock" msgstr "" -#: stock/templates/stock/item_base.html:97 +#: stock/templates/stock/item_base.html:94 msgid "Uninstall stock item" msgstr "" -#: stock/templates/stock/item_base.html:97 +#: stock/templates/stock/item_base.html:94 msgid "Uninstall" -msgstr "" +msgstr "Eemalda" -#: stock/templates/stock/item_base.html:101 +#: stock/templates/stock/item_base.html:98 msgid "Install stock item" msgstr "" -#: stock/templates/stock/item_base.html:101 +#: stock/templates/stock/item_base.html:98 msgid "Install" -msgstr "" +msgstr "Paigalda" -#: stock/templates/stock/item_base.html:115 +#: stock/templates/stock/item_base.html:112 msgid "Convert to variant" msgstr "" -#: stock/templates/stock/item_base.html:118 +#: stock/templates/stock/item_base.html:115 msgid "Duplicate stock item" msgstr "" -#: stock/templates/stock/item_base.html:120 +#: stock/templates/stock/item_base.html:117 msgid "Edit stock item" msgstr "" -#: stock/templates/stock/item_base.html:123 +#: stock/templates/stock/item_base.html:120 msgid "Delete stock item" msgstr "" -#: stock/templates/stock/item_base.html:169 templates/InvenTree/search.html:139 -#: templates/js/translated/build.js:2295 templates/navbar.html:38 +#: stock/templates/stock/item_base.html:166 templates/InvenTree/search.html:139 +#: templates/js/translated/build.js:2298 templates/navbar.html:38 msgid "Build" msgstr "" -#: stock/templates/stock/item_base.html:211 +#: stock/templates/stock/item_base.html:208 msgid "No manufacturer set" msgstr "" -#: stock/templates/stock/item_base.html:251 +#: stock/templates/stock/item_base.html:248 msgid "You are not in the list of owners of this item. This stock item cannot be edited." msgstr "" -#: stock/templates/stock/item_base.html:252 -#: stock/templates/stock/location.html:146 +#: stock/templates/stock/item_base.html:249 +#: stock/templates/stock/location.html:147 msgid "Read only" msgstr "" -#: stock/templates/stock/item_base.html:265 +#: stock/templates/stock/item_base.html:262 msgid "This stock item is unavailable" msgstr "" -#: stock/templates/stock/item_base.html:271 +#: stock/templates/stock/item_base.html:268 msgid "This stock item is in production and cannot be edited." msgstr "" -#: stock/templates/stock/item_base.html:272 +#: stock/templates/stock/item_base.html:269 msgid "Edit the stock item from the build view." msgstr "" -#: stock/templates/stock/item_base.html:287 +#: stock/templates/stock/item_base.html:284 msgid "This stock item is allocated to Sales Order" msgstr "" -#: stock/templates/stock/item_base.html:295 +#: stock/templates/stock/item_base.html:292 msgid "This stock item is allocated to Build Order" msgstr "" -#: stock/templates/stock/item_base.html:311 +#: stock/templates/stock/item_base.html:308 msgid "This stock item is serialized. It has a unique serial number and the quantity cannot be adjusted" msgstr "" -#: stock/templates/stock/item_base.html:317 +#: stock/templates/stock/item_base.html:314 msgid "previous page" msgstr "" -#: stock/templates/stock/item_base.html:317 +#: stock/templates/stock/item_base.html:314 msgid "Navigate to previous serial number" msgstr "" -#: stock/templates/stock/item_base.html:326 +#: stock/templates/stock/item_base.html:323 msgid "next page" msgstr "" -#: stock/templates/stock/item_base.html:326 +#: stock/templates/stock/item_base.html:323 msgid "Navigate to next serial number" msgstr "" -#: stock/templates/stock/item_base.html:398 -#: templates/js/translated/build.js:2552 +#: stock/templates/stock/item_base.html:395 +#: templates/js/translated/build.js:2559 msgid "No location set" msgstr "" -#: stock/templates/stock/item_base.html:413 +#: stock/templates/stock/item_base.html:410 msgid "Tests" msgstr "" -#: stock/templates/stock/item_base.html:419 +#: stock/templates/stock/item_base.html:416 msgid "This stock item has not passed all required tests" msgstr "" -#: stock/templates/stock/item_base.html:437 +#: stock/templates/stock/item_base.html:434 #, python-format msgid "This StockItem expired on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:439 +#: stock/templates/stock/item_base.html:436 #, python-format msgid "This StockItem expires on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:455 +#: stock/templates/stock/item_base.html:452 msgid "No stocktake performed" msgstr "" -#: stock/templates/stock/item_base.html:504 -#: templates/js/translated/stock.js:2037 +#: stock/templates/stock/item_base.html:501 +#: templates/js/translated/stock.js:2038 msgid "stock item" msgstr "" -#: stock/templates/stock/item_base.html:527 +#: stock/templates/stock/item_base.html:524 msgid "Edit Stock Status" msgstr "" -#: stock/templates/stock/item_base.html:536 +#: stock/templates/stock/item_base.html:533 msgid "Stock Item QR Code" msgstr "" -#: stock/templates/stock/item_base.html:547 +#: stock/templates/stock/item_base.html:544 msgid "Link Barcode to Stock Item" msgstr "" -#: stock/templates/stock/item_base.html:611 +#: stock/templates/stock/item_base.html:608 msgid "Select one of the part variants listed below." msgstr "" -#: stock/templates/stock/item_base.html:614 +#: stock/templates/stock/item_base.html:611 msgid "Warning" msgstr "" -#: stock/templates/stock/item_base.html:615 +#: stock/templates/stock/item_base.html:612 msgid "This action cannot be easily undone" msgstr "" -#: stock/templates/stock/item_base.html:623 +#: stock/templates/stock/item_base.html:620 msgid "Convert Stock Item" msgstr "" -#: stock/templates/stock/item_base.html:656 +#: stock/templates/stock/item_base.html:653 msgid "Return to Stock" msgstr "" @@ -10541,84 +10909,84 @@ msgstr "" msgid "Select quantity to serialize, and unique serial numbers." msgstr "" -#: stock/templates/stock/location.html:35 +#: stock/templates/stock/location.html:36 msgid "Perform stocktake for this stock location" msgstr "" -#: stock/templates/stock/location.html:42 +#: stock/templates/stock/location.html:43 msgid "Locate stock location" msgstr "" -#: stock/templates/stock/location.html:60 +#: stock/templates/stock/location.html:61 msgid "Scan stock items into this location" msgstr "" -#: stock/templates/stock/location.html:60 +#: stock/templates/stock/location.html:61 msgid "Scan In Stock Items" msgstr "" -#: stock/templates/stock/location.html:61 +#: stock/templates/stock/location.html:62 msgid "Scan stock container into this location" msgstr "" -#: stock/templates/stock/location.html:61 +#: stock/templates/stock/location.html:62 msgid "Scan In Container" msgstr "" -#: stock/templates/stock/location.html:72 +#: stock/templates/stock/location.html:73 msgid "Print Location Report" msgstr "" -#: stock/templates/stock/location.html:101 +#: stock/templates/stock/location.html:102 msgid "Location actions" msgstr "" -#: stock/templates/stock/location.html:103 +#: stock/templates/stock/location.html:104 msgid "Edit location" msgstr "" -#: stock/templates/stock/location.html:105 +#: stock/templates/stock/location.html:106 msgid "Delete location" msgstr "" -#: stock/templates/stock/location.html:135 +#: stock/templates/stock/location.html:136 msgid "Top level stock location" msgstr "" -#: stock/templates/stock/location.html:141 +#: stock/templates/stock/location.html:142 msgid "Location Owner" msgstr "" -#: stock/templates/stock/location.html:145 +#: stock/templates/stock/location.html:146 msgid "You are not in the list of owners of this location. This stock location cannot be edited." msgstr "" -#: stock/templates/stock/location.html:173 +#: stock/templates/stock/location.html:174 msgid "Location Type" msgstr "" -#: stock/templates/stock/location.html:223 +#: stock/templates/stock/location.html:224 msgid "Create new stock location" msgstr "" -#: stock/templates/stock/location.html:224 +#: stock/templates/stock/location.html:225 msgid "New Location" msgstr "" -#: stock/templates/stock/location.html:298 -#: templates/js/translated/stock.js:2657 +#: stock/templates/stock/location.html:299 +#: templates/js/translated/stock.js:2658 msgid "stock location" msgstr "" -#: stock/templates/stock/location.html:320 +#: stock/templates/stock/location.html:321 msgid "Scanned stock container into this location" msgstr "" -#: stock/templates/stock/location.html:393 +#: stock/templates/stock/location.html:394 msgid "Stock Location QR Code" msgstr "" -#: stock/templates/stock/location.html:404 +#: stock/templates/stock/location.html:405 msgid "Link Barcode to Stock Location" msgstr "" @@ -10630,10 +10998,6 @@ msgstr "" msgid "Stock Tracking" msgstr "" -#: stock/templates/stock/stock_sidebar.html:8 -msgid "Allocations" -msgstr "" - #: templates/403.html:6 templates/403.html:12 templates/403_csrf.html:7 msgid "Permission Denied" msgstr "" @@ -10954,11 +11318,11 @@ msgstr "" #: templates/InvenTree/settings/plugin.html:84 #: templates/js/translated/notification.js:76 msgid "Message" -msgstr "" +msgstr "Sõnum" #: templates/InvenTree/settings/plugin_settings.html:16 msgid "Plugin information" -msgstr "" +msgstr "Plugina info" #: templates/InvenTree/settings/plugin_settings.html:47 msgid "no version information supplied" @@ -10966,37 +11330,37 @@ msgstr "" #: templates/InvenTree/settings/plugin_settings.html:61 msgid "License" -msgstr "" +msgstr "Litsents" #: templates/InvenTree/settings/plugin_settings.html:70 msgid "The code information is pulled from the latest git commit for this plugin. It might not reflect official version numbers or information but the actual code running." -msgstr "" +msgstr "Koodi teave on võetud selle plugina viimasest git-kommitist. See ei pruugi kajastada ametlikke versiooninumbreid või teavet, vaid näitab tegelikult töötavat koodi." #: templates/InvenTree/settings/plugin_settings.html:76 msgid "Package information" -msgstr "" +msgstr "Paketi info" #: templates/InvenTree/settings/plugin_settings.html:82 msgid "Installation method" -msgstr "" +msgstr "Paigaldamise viis" #: templates/InvenTree/settings/plugin_settings.html:85 msgid "This plugin was installed as a package" -msgstr "" +msgstr "See plugin paigaldati paketina" #: templates/InvenTree/settings/plugin_settings.html:87 msgid "This plugin was found in a local server path" -msgstr "" +msgstr "See plugin leiti kohaliku serveri kaustast" #: templates/InvenTree/settings/plugin_settings.html:93 msgid "Installation path" -msgstr "" +msgstr "Paigaldamisfailide kaust" #: templates/InvenTree/settings/plugin_settings.html:100 #: templates/js/translated/plugin.js:68 #: templates/js/translated/table_filters.js:517 msgid "Builtin" -msgstr "" +msgstr "Sisseehitatud" #: templates/InvenTree/settings/plugin_settings.html:101 msgid "This is a builtin plugin which cannot be disabled" @@ -11006,11 +11370,11 @@ msgstr "" #: templates/js/translated/plugin.js:72 #: templates/js/translated/table_filters.js:521 msgid "Sample" -msgstr "" +msgstr "Näidis" #: templates/InvenTree/settings/plugin_settings.html:108 msgid "This is a sample plugin" -msgstr "" +msgstr "See on näidis plugin" #: templates/InvenTree/settings/plugin_settings.html:113 msgid "Commit Author" @@ -11036,7 +11400,7 @@ msgstr "" #: templates/InvenTree/settings/pricing.html:7 msgid "Pricing Settings" -msgstr "" +msgstr "Hinna seaded" #: templates/InvenTree/settings/pricing.html:35 msgid "Exchange Rates" @@ -11044,30 +11408,30 @@ msgstr "" #: templates/InvenTree/settings/pricing.html:39 msgid "Update Now" -msgstr "" +msgstr "Uuenda kohe" #: templates/InvenTree/settings/pricing.html:47 #: templates/InvenTree/settings/pricing.html:51 msgid "Last Update" -msgstr "" +msgstr "Viimane uuendus" #: templates/InvenTree/settings/pricing.html:51 msgid "Never" -msgstr "" +msgstr "Mitte kunagi" #: templates/InvenTree/settings/project_codes.html:8 msgid "Project Code Settings" -msgstr "" +msgstr "Projekti koodi seaded" #: templates/InvenTree/settings/project_codes.html:21 #: templates/InvenTree/settings/sidebar.html:33 msgid "Project Codes" -msgstr "" +msgstr "Projekti koodid" #: templates/InvenTree/settings/project_codes.html:25 #: templates/InvenTree/settings/settings_staff_js.html:216 msgid "New Project Code" -msgstr "" +msgstr "Uus projekti kood" #: templates/InvenTree/settings/report.html:8 #: templates/InvenTree/settings/user_reporting.html:9 @@ -11107,11 +11471,11 @@ msgid "Rate" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:81 -#: templates/js/translated/forms.js:548 templates/js/translated/helpers.js:108 +#: templates/js/translated/forms.js:548 templates/js/translated/helpers.js:109 #: templates/js/translated/part.js:395 templates/js/translated/pricing.js:629 -#: templates/js/translated/stock.js:252 users/models.py:406 +#: templates/js/translated/stock.js:252 users/models.py:408 msgid "Delete" -msgstr "" +msgstr "Kustuta" #: templates/InvenTree/settings/settings_staff_js.html:95 msgid "Edit Custom Unit" @@ -11130,7 +11494,7 @@ msgid "No project codes found" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:158 -#: templates/js/translated/build.js:2400 +#: templates/js/translated/build.js:2403 msgid "group" msgstr "" @@ -11196,117 +11560,117 @@ msgid "Delete Location Type" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:503 -#: templates/InvenTree/settings/stock.html:38 +#: templates/InvenTree/settings/stock.html:39 msgid "New Location Type" msgstr "" #: templates/InvenTree/settings/sidebar.html:6 #: templates/InvenTree/settings/user_settings.html:9 msgid "User Settings" -msgstr "" +msgstr "Kasutaja seaded" #: templates/InvenTree/settings/sidebar.html:9 msgid "Account" -msgstr "" +msgstr "Konto" #: templates/InvenTree/settings/sidebar.html:11 msgid "Display" -msgstr "" +msgstr "Kuva" #: templates/InvenTree/settings/sidebar.html:13 msgid "Home Page" -msgstr "" +msgstr "Avaleht" #: templates/InvenTree/settings/sidebar.html:15 #: templates/js/translated/forms.js:2200 templates/js/translated/tables.js:543 #: templates/navbar.html:107 templates/search.html:8 #: templates/search_form.html:6 templates/search_form.html:7 msgid "Search" -msgstr "" +msgstr "Otsi" #: templates/InvenTree/settings/sidebar.html:19 #: templates/InvenTree/settings/sidebar.html:43 msgid "Reporting" -msgstr "" +msgstr "Aruandlus" #: templates/InvenTree/settings/sidebar.html:24 msgid "Global Settings" -msgstr "" +msgstr "Üldised seaded" #: templates/InvenTree/settings/sidebar.html:27 templates/stats.html:9 msgid "Server" -msgstr "" +msgstr "Server" #: templates/InvenTree/settings/sidebar.html:41 msgid "Labels" -msgstr "" +msgstr "Sildid" #: templates/InvenTree/settings/sidebar.html:45 msgid "Categories" -msgstr "" +msgstr "Kategooriad" #: templates/InvenTree/settings/so.html:7 msgid "Sales Order Settings" -msgstr "" +msgstr "Müügi tellimuste seaded" #: templates/InvenTree/settings/stock.html:7 msgid "Stock Settings" -msgstr "" +msgstr "Laoseisu seaded" -#: templates/InvenTree/settings/stock.html:34 +#: templates/InvenTree/settings/stock.html:35 msgid "Stock Location Types" msgstr "" #: templates/InvenTree/settings/user.html:13 msgid "Account Settings" -msgstr "" +msgstr "Konto seaded" #: templates/InvenTree/settings/user.html:19 #: templates/account/password_reset_from_key.html:4 #: templates/account/password_reset_from_key.html:7 msgid "Change Password" -msgstr "" +msgstr "Muuda parooli" #: templates/InvenTree/settings/user.html:55 msgid "The following email addresses are associated with your account:" -msgstr "" +msgstr "Teie kontoga on seotud järgmised e-posti aadressid:" #: templates/InvenTree/settings/user.html:76 msgid "Verified" -msgstr "" +msgstr "Kinnitatud" #: templates/InvenTree/settings/user.html:78 msgid "Unverified" -msgstr "" +msgstr "Kinnitamata" #: templates/InvenTree/settings/user.html:80 -#: templates/js/translated/company.js:957 +#: templates/js/translated/company.js:958 msgid "Primary" -msgstr "" +msgstr "Peamine" #: templates/InvenTree/settings/user.html:86 msgid "Make Primary" -msgstr "" +msgstr "Määra peamiseks" #: templates/InvenTree/settings/user.html:87 msgid "Re-send Verification" -msgstr "" +msgstr "Saada kinnitus uuesti" #: templates/InvenTree/settings/user.html:96 msgid "Warning:" -msgstr "" +msgstr "Hoiatud:" #: templates/InvenTree/settings/user.html:97 msgid "You currently do not have any email address set up. You should really add an email address so you can receive notifications, reset your password, etc." -msgstr "" +msgstr "Teil ei ole praegu ühtegi e-posti aadressi seadistatud. Peaksite tõesti lisama e-posti aadressi, et saaksite teavitusi, lähtestada parooli jne." #: templates/InvenTree/settings/user.html:105 msgid "Add Email Address" -msgstr "" +msgstr "Lisa e-posti aadress" #: templates/InvenTree/settings/user.html:110 msgid "Add Email" -msgstr "" +msgstr "Lisa e-mail" #: templates/InvenTree/settings/user.html:120 msgid "Multifactor" @@ -11322,7 +11686,7 @@ msgstr "" #: templates/InvenTree/settings/user.html:141 msgid "Static" -msgstr "" +msgstr "Staatiline" #: templates/InvenTree/settings/user.html:150 msgid "Multifactor authentication is not configured for your account" @@ -11362,66 +11726,66 @@ msgstr "" #: templates/InvenTree/settings/user.html:192 msgid "IP Address" -msgstr "" +msgstr "IP aadress" #: templates/InvenTree/settings/user.html:193 msgid "Device" -msgstr "" +msgstr "Seade" #: templates/InvenTree/settings/user.html:194 msgid "Last Activity" -msgstr "" +msgstr "Viimane tegevus" #: templates/InvenTree/settings/user.html:207 #, python-format msgid "%(time)s ago (this session)" -msgstr "" +msgstr "%(time)s tagasi (see sessioon)" #: templates/InvenTree/settings/user.html:209 #, python-format msgid "%(time)s ago" -msgstr "" +msgstr "%(time)s tagasi" #: templates/InvenTree/settings/user.html:223 msgid "Do you really want to remove the selected email address?" -msgstr "" +msgstr "Oas oled kindel, et soovid eemaldada valitud e-posti aadressid?" #: templates/InvenTree/settings/user_display.html:9 msgid "Display Settings" -msgstr "" +msgstr "Vaate seaded" #: templates/InvenTree/settings/user_display.html:29 msgid "Theme Settings" -msgstr "" +msgstr "Teema seaded" #: templates/InvenTree/settings/user_display.html:39 msgid "Select theme" -msgstr "" +msgstr "Vali teema" #: templates/InvenTree/settings/user_display.html:50 msgid "Set Theme" -msgstr "" +msgstr "Määra teema" #: templates/InvenTree/settings/user_display.html:58 msgid "Language Settings" -msgstr "" +msgstr "Keeleseaded" #: templates/InvenTree/settings/user_display.html:67 msgid "Select language" -msgstr "" +msgstr "Vali keel" #: templates/InvenTree/settings/user_display.html:83 #, python-format msgid "%(lang_translated)s%% translated" -msgstr "" +msgstr "%(lang_translated)s%% tõlgitud" #: templates/InvenTree/settings/user_display.html:85 msgid "No translations available" -msgstr "" +msgstr "Ühtegi tõlget pole saadaval" #: templates/InvenTree/settings/user_display.html:92 msgid "Set Language" -msgstr "" +msgstr "Määra keel" #: templates/InvenTree/settings/user_display.html:95 msgid "Some languages are not complete" @@ -11481,19 +11845,19 @@ msgstr "" #: templates/about.html:9 msgid "InvenTree Version" -msgstr "" +msgstr "InvenTree versioon" #: templates/about.html:14 msgid "Development Version" -msgstr "" +msgstr "Arendusversioon" #: templates/about.html:17 msgid "Up to Date" -msgstr "" +msgstr "Ajakohane" #: templates/about.html:19 msgid "Update Available" -msgstr "" +msgstr "Uuendus on saadaval" #: templates/about.html:43 msgid "Commit Branch" @@ -11505,44 +11869,44 @@ msgstr "" #: templates/about.html:54 msgid "API Version" -msgstr "" +msgstr "API versioon" #: templates/about.html:59 msgid "Python Version" -msgstr "" +msgstr "Pythoni versioon" #: templates/about.html:64 msgid "Django Version" -msgstr "" +msgstr "Django versioon" #: templates/about.html:69 msgid "View Code on GitHub" -msgstr "" +msgstr "Vaadata koodi GitHubis" #: templates/about.html:74 msgid "Credits" -msgstr "" +msgstr "Autorid" #: templates/about.html:79 msgid "Mobile App" -msgstr "" +msgstr "Mobiilirakendus" #: templates/about.html:84 msgid "Submit Bug Report" msgstr "" #: templates/about.html:91 templates/clip.html:4 -#: templates/js/translated/helpers.js:592 +#: templates/js/translated/helpers.js:598 msgid "copy to clipboard" -msgstr "" +msgstr "kopeeri lõikelauale" #: templates/about.html:91 msgid "copy version information" -msgstr "" +msgstr "kopeeri versiooniteave" #: templates/account/base.html:66 templates/navbar.html:17 msgid "InvenTree logo" -msgstr "" +msgstr "InvenTree logo" #: templates/account/email_confirm.html:6 #: templates/account/email_confirm.html:9 @@ -11556,7 +11920,7 @@ msgstr "" #: templates/account/email_confirm.html:21 templates/js/translated/forms.js:775 msgid "Confirm" -msgstr "" +msgstr "Kinnita" #: templates/account/email_confirm.html:29 #, python-format @@ -11566,44 +11930,44 @@ msgstr "" #: templates/account/login.html:6 templates/account/login.html:19 #: templates/account/login.html:40 templates/socialaccount/login.html:5 msgid "Sign In" -msgstr "" +msgstr "Logi sisse" #: templates/account/login.html:23 msgid "Not a member?" -msgstr "" +msgstr "Pole liige?" #: templates/account/login.html:25 templates/account/signup.html:11 #: templates/account/signup.html:22 templates/socialaccount/signup.html:8 #: templates/socialaccount/signup.html:23 msgid "Sign Up" -msgstr "" +msgstr "Liitu" #: templates/account/login.html:47 msgid "Forgot Password?" -msgstr "" +msgstr "Unustasid parooli?" #: templates/account/login.html:55 msgid "or log in with" -msgstr "" +msgstr "või logi sisse kasutades" #: templates/account/logout.html:5 templates/account/logout.html:8 #: templates/account/logout.html:20 msgid "Sign Out" -msgstr "" +msgstr "Logi välja" #: templates/account/logout.html:10 msgid "Are you sure you want to sign out?" -msgstr "" +msgstr "Kas oled kindel, et soovid välja logida?" #: templates/account/logout.html:27 templates/allauth_2fa/backup_tokens.html:35 #: templates/allauth_2fa/remove.html:24 templates/allauth_2fa/setup.html:45 msgid "Return to Site" -msgstr "" +msgstr "Tagasi saidile" #: templates/account/password_reset.html:5 #: templates/account/password_reset.html:12 msgid "Password Reset" -msgstr "" +msgstr "Parooli taastamine" #: templates/account/password_reset.html:18 msgid "Forgotten your password? Enter your email address below, and we'll send you an email allowing you to reset it." @@ -11624,7 +11988,7 @@ msgstr "" #: templates/account/password_reset_from_key.html:11 #, python-format msgid "The password reset link was invalid, possibly because it has already been used. Please request a new password reset." -msgstr "" +msgstr "Parooli lähtestamise link oli kehtetu, tõenäoliselt seetõttu, et seda on juba kasutatud. Palun taotlege uus parooli lähtestamine." #: templates/account/password_reset_from_key.html:18 msgid "Change password" @@ -11692,7 +12056,7 @@ msgstr "" #: templates/allauth_2fa/remove.html:9 msgid "Are you sure?" -msgstr "" +msgstr "Olete sa kindel?" #: templates/allauth_2fa/remove.html:17 msgid "Disable 2FA" @@ -11704,7 +12068,7 @@ msgstr "" #: templates/allauth_2fa/setup.html:10 msgid "Step 1" -msgstr "" +msgstr "Samm 1" #: templates/allauth_2fa/setup.html:14 msgid "Scan the QR code below with a token generator of your choice (for instance Google Authenticator)." @@ -11716,7 +12080,7 @@ msgstr "" #: templates/allauth_2fa/setup.html:24 msgid "Step 2" -msgstr "" +msgstr "Samm 2" #: templates/allauth_2fa/setup.html:28 msgid "Input a token generated by the app:" @@ -11724,37 +12088,38 @@ msgstr "" #: templates/allauth_2fa/setup.html:38 msgid "Verify" -msgstr "" +msgstr "Kinnita" #: templates/attachment_button.html:4 templates/js/translated/attachment.js:70 msgid "Add Link" -msgstr "" +msgstr "Lisa link" #: templates/attachment_button.html:7 templates/js/translated/attachment.js:48 msgid "Add Attachment" -msgstr "" +msgstr "Lisa manus" #: templates/barcode_data.html:5 msgid "Barcode Identifier" msgstr "" -#: templates/base.html:103 +#: templates/base.html:102 msgid "Server Restart Required" msgstr "" -#: templates/base.html:106 +#: templates/base.html:105 msgid "A configuration option has been changed which requires a server restart" msgstr "" -#: templates/base.html:106 templates/base.html:116 +#: templates/base.html:105 templates/base.html:115 +#: templates/socialaccount/authentication_error.html:13 msgid "Contact your system administrator for further information" msgstr "" -#: templates/base.html:113 +#: templates/base.html:112 msgid "Pending Database Migrations" msgstr "" -#: templates/base.html:116 +#: templates/base.html:115 msgid "There are pending database migrations which require attention" msgstr "" @@ -11787,9 +12152,9 @@ msgid "The following parts are low on required stock" msgstr "" #: templates/email/build_order_required_stock.html:18 -#: templates/js/translated/bom.js:1674 templates/js/translated/build.js:2747 +#: templates/js/translated/bom.js:1674 templates/js/translated/build.js:2765 msgid "Required Quantity" -msgstr "" +msgstr "Nõutud kogus" #: templates/email/build_order_required_stock.html:38 #: templates/email/low_stock_notification.html:30 @@ -11801,7 +12166,7 @@ msgid "Click on the following link to view this part" msgstr "" #: templates/email/low_stock_notification.html:18 -#: templates/js/translated/part.js:3237 +#: templates/js/translated/part.js:3253 msgid "Minimum Quantity" msgstr "" @@ -11883,11 +12248,11 @@ msgstr "" #: templates/js/translated/attachment.js:129 msgid "Delete Attachments" -msgstr "" +msgstr "Kustuta manused" #: templates/js/translated/attachment.js:205 msgid "Delete attachments" -msgstr "" +msgstr "Kustuta manused" #: templates/js/translated/attachment.js:260 msgid "Attachment actions" @@ -11899,19 +12264,19 @@ msgstr "" #: templates/js/translated/attachment.js:334 msgid "Edit Attachment" -msgstr "" +msgstr "Muuda manust" #: templates/js/translated/attachment.js:365 msgid "Upload Date" -msgstr "" +msgstr "Üleslaadimise kuupäev" #: templates/js/translated/attachment.js:385 msgid "Edit attachment" -msgstr "" +msgstr "Muuda manust" #: templates/js/translated/attachment.js:393 msgid "Delete attachment" -msgstr "" +msgstr "Kustuta manus" #: templates/js/translated/barcode.js:43 msgid "Scan barcode data here using barcode scanner" @@ -12039,10 +12404,10 @@ msgstr "" #: templates/js/translated/bom.js:189 templates/js/translated/bom.js:700 #: templates/js/translated/modals.js:75 templates/js/translated/modals.js:629 #: templates/js/translated/modals.js:757 templates/js/translated/modals.js:1065 -#: templates/js/translated/purchase_order.js:797 templates/modals.html:15 +#: templates/js/translated/purchase_order.js:780 templates/modals.html:15 #: templates/modals.html:27 templates/modals.html:39 templates/modals.html:50 msgid "Close" -msgstr "" +msgstr "Sulge" #: templates/js/translated/bom.js:306 msgid "Download BOM Template" @@ -12058,7 +12423,7 @@ msgstr "" #: templates/js/translated/bom.js:357 msgid "Levels" -msgstr "" +msgstr "Tasemed" #: templates/js/translated/bom.js:358 msgid "Select maximum number of BOM levels to export (0 = all levels)" @@ -12156,7 +12521,7 @@ msgstr "" msgid "Substitutes Available" msgstr "" -#: templates/js/translated/bom.js:950 templates/js/translated/build.js:2673 +#: templates/js/translated/bom.js:950 templates/js/translated/build.js:2682 msgid "Variant stock allowed" msgstr "" @@ -12176,30 +12541,30 @@ msgstr "" msgid "No pricing available" msgstr "" -#: templates/js/translated/bom.js:1184 templates/js/translated/build.js:2812 +#: templates/js/translated/bom.js:1184 templates/js/translated/build.js:2830 msgid "External stock" msgstr "" -#: templates/js/translated/bom.js:1188 templates/js/translated/build.js:2786 -#: templates/js/translated/sales_order.js:1946 +#: templates/js/translated/bom.js:1188 templates/js/translated/build.js:2804 +#: templates/js/translated/sales_order.js:1927 msgid "No Stock Available" msgstr "" -#: templates/js/translated/bom.js:1193 templates/js/translated/build.js:2790 +#: templates/js/translated/bom.js:1193 templates/js/translated/build.js:2808 msgid "Includes variant and substitute stock" msgstr "" -#: templates/js/translated/bom.js:1195 templates/js/translated/build.js:2792 +#: templates/js/translated/bom.js:1195 templates/js/translated/build.js:2810 #: templates/js/translated/part.js:1263 -#: templates/js/translated/sales_order.js:1943 +#: templates/js/translated/sales_order.js:1924 msgid "Includes variant stock" msgstr "" -#: templates/js/translated/bom.js:1197 templates/js/translated/build.js:2794 +#: templates/js/translated/bom.js:1197 templates/js/translated/build.js:2812 msgid "Includes substitute stock" msgstr "" -#: templates/js/translated/bom.js:1225 templates/js/translated/build.js:2777 +#: templates/js/translated/bom.js:1225 templates/js/translated/build.js:2795 msgid "Consumable item" msgstr "" @@ -12231,7 +12596,7 @@ msgstr "" msgid "No BOM items found" msgstr "" -#: templates/js/translated/bom.js:1657 templates/js/translated/build.js:2658 +#: templates/js/translated/bom.js:1657 templates/js/translated/build.js:2667 msgid "Required Part" msgstr "" @@ -12243,396 +12608,396 @@ msgstr "" msgid "Edit Build Order" msgstr "" -#: templates/js/translated/build.js:191 +#: templates/js/translated/build.js:194 msgid "Create Build Order" msgstr "" -#: templates/js/translated/build.js:223 +#: templates/js/translated/build.js:226 msgid "Cancel Build Order" msgstr "" -#: templates/js/translated/build.js:232 +#: templates/js/translated/build.js:235 msgid "Are you sure you wish to cancel this build?" msgstr "" -#: templates/js/translated/build.js:238 +#: templates/js/translated/build.js:241 msgid "Stock items have been allocated to this build order" msgstr "" -#: templates/js/translated/build.js:245 +#: templates/js/translated/build.js:248 msgid "There are incomplete outputs remaining for this build order" msgstr "" -#: templates/js/translated/build.js:297 +#: templates/js/translated/build.js:300 msgid "Build order is ready to be completed" msgstr "" -#: templates/js/translated/build.js:305 +#: templates/js/translated/build.js:308 msgid "This build order cannot be completed as there are incomplete outputs" msgstr "" -#: templates/js/translated/build.js:310 +#: templates/js/translated/build.js:313 msgid "Build Order is incomplete" msgstr "" -#: templates/js/translated/build.js:328 +#: templates/js/translated/build.js:331 msgid "Complete Build Order" msgstr "" -#: templates/js/translated/build.js:369 templates/js/translated/stock.js:127 +#: templates/js/translated/build.js:372 templates/js/translated/stock.js:127 #: templates/js/translated/stock.js:301 msgid "Next available serial number" msgstr "" -#: templates/js/translated/build.js:371 templates/js/translated/stock.js:129 +#: templates/js/translated/build.js:374 templates/js/translated/stock.js:129 #: templates/js/translated/stock.js:303 msgid "Latest serial number" msgstr "" -#: templates/js/translated/build.js:380 +#: templates/js/translated/build.js:383 msgid "The Bill of Materials contains trackable parts" msgstr "" -#: templates/js/translated/build.js:381 +#: templates/js/translated/build.js:384 msgid "Build outputs must be generated individually" msgstr "" -#: templates/js/translated/build.js:389 +#: templates/js/translated/build.js:392 msgid "Trackable parts can have serial numbers specified" msgstr "" -#: templates/js/translated/build.js:390 +#: templates/js/translated/build.js:393 msgid "Enter serial numbers to generate multiple single build outputs" msgstr "" -#: templates/js/translated/build.js:397 +#: templates/js/translated/build.js:400 msgid "Create Build Output" msgstr "" -#: templates/js/translated/build.js:428 +#: templates/js/translated/build.js:431 msgid "Allocate stock items to this build output" msgstr "" -#: templates/js/translated/build.js:436 +#: templates/js/translated/build.js:439 msgid "Deallocate stock from build output" msgstr "" -#: templates/js/translated/build.js:445 +#: templates/js/translated/build.js:448 msgid "Complete build output" msgstr "" -#: templates/js/translated/build.js:453 +#: templates/js/translated/build.js:456 msgid "Scrap build output" msgstr "" -#: templates/js/translated/build.js:460 +#: templates/js/translated/build.js:463 msgid "Delete build output" msgstr "" -#: templates/js/translated/build.js:480 +#: templates/js/translated/build.js:483 msgid "Are you sure you wish to deallocate the selected stock items from this build?" msgstr "" -#: templates/js/translated/build.js:498 +#: templates/js/translated/build.js:501 msgid "Deallocate Stock Items" msgstr "" -#: templates/js/translated/build.js:584 templates/js/translated/build.js:711 -#: templates/js/translated/build.js:836 +#: templates/js/translated/build.js:587 templates/js/translated/build.js:714 +#: templates/js/translated/build.js:839 msgid "Select Build Outputs" msgstr "" -#: templates/js/translated/build.js:585 templates/js/translated/build.js:712 -#: templates/js/translated/build.js:837 +#: templates/js/translated/build.js:588 templates/js/translated/build.js:715 +#: templates/js/translated/build.js:840 msgid "At least one build output must be selected" msgstr "" -#: templates/js/translated/build.js:599 +#: templates/js/translated/build.js:602 msgid "Selected build outputs will be marked as complete" msgstr "" -#: templates/js/translated/build.js:603 templates/js/translated/build.js:736 -#: templates/js/translated/build.js:859 +#: templates/js/translated/build.js:606 templates/js/translated/build.js:739 +#: templates/js/translated/build.js:862 msgid "Output" msgstr "" -#: templates/js/translated/build.js:630 +#: templates/js/translated/build.js:633 msgid "Complete Build Outputs" msgstr "" -#: templates/js/translated/build.js:727 +#: templates/js/translated/build.js:730 msgid "Selected build outputs will be marked as scrapped" msgstr "" -#: templates/js/translated/build.js:729 +#: templates/js/translated/build.js:732 msgid "Scrapped output are marked as rejected" msgstr "" -#: templates/js/translated/build.js:730 +#: templates/js/translated/build.js:733 msgid "Allocated stock items will no longer be available" msgstr "" -#: templates/js/translated/build.js:731 +#: templates/js/translated/build.js:734 msgid "The completion status of the build order will not be adjusted" msgstr "" -#: templates/js/translated/build.js:761 +#: templates/js/translated/build.js:764 msgid "Scrap Build Outputs" msgstr "" -#: templates/js/translated/build.js:851 +#: templates/js/translated/build.js:854 msgid "Selected build outputs will be deleted" msgstr "" -#: templates/js/translated/build.js:853 +#: templates/js/translated/build.js:856 msgid "Build output data will be permanently deleted" msgstr "" -#: templates/js/translated/build.js:854 +#: templates/js/translated/build.js:857 msgid "Allocated stock items will be returned to stock" msgstr "" -#: templates/js/translated/build.js:872 +#: templates/js/translated/build.js:875 msgid "Delete Build Outputs" msgstr "" -#: templates/js/translated/build.js:959 +#: templates/js/translated/build.js:962 msgid "Delete allocations" msgstr "" -#: templates/js/translated/build.js:966 +#: templates/js/translated/build.js:969 msgid "Delete Stock Allocations" msgstr "" -#: templates/js/translated/build.js:989 +#: templates/js/translated/build.js:992 msgid "No allocated stock" msgstr "" -#: templates/js/translated/build.js:1045 +#: templates/js/translated/build.js:1048 msgid "Stock item" msgstr "" -#: templates/js/translated/build.js:1070 +#: templates/js/translated/build.js:1073 msgid "Edit build allocation" msgstr "" -#: templates/js/translated/build.js:1071 +#: templates/js/translated/build.js:1074 msgid "Delete build allocation" msgstr "" -#: templates/js/translated/build.js:1089 +#: templates/js/translated/build.js:1092 msgid "Edit Build Allocation" msgstr "" -#: templates/js/translated/build.js:1102 +#: templates/js/translated/build.js:1105 msgid "Delete Build Allocation" msgstr "" -#: templates/js/translated/build.js:1133 +#: templates/js/translated/build.js:1136 msgid "No build order allocations found" msgstr "" -#: templates/js/translated/build.js:1178 +#: templates/js/translated/build.js:1181 msgid "Location not specified" msgstr "" -#: templates/js/translated/build.js:1200 +#: templates/js/translated/build.js:1203 msgid "Complete outputs" msgstr "" -#: templates/js/translated/build.js:1218 +#: templates/js/translated/build.js:1221 msgid "Scrap outputs" msgstr "" -#: templates/js/translated/build.js:1236 +#: templates/js/translated/build.js:1239 msgid "Delete outputs" msgstr "" -#: templates/js/translated/build.js:1289 +#: templates/js/translated/build.js:1292 msgid "build output" msgstr "" -#: templates/js/translated/build.js:1290 +#: templates/js/translated/build.js:1293 msgid "build outputs" msgstr "" -#: templates/js/translated/build.js:1294 +#: templates/js/translated/build.js:1297 msgid "Build output actions" msgstr "" -#: templates/js/translated/build.js:1470 +#: templates/js/translated/build.js:1473 msgid "No active build outputs found" msgstr "" -#: templates/js/translated/build.js:1563 +#: templates/js/translated/build.js:1566 msgid "Allocated Lines" msgstr "" -#: templates/js/translated/build.js:1577 +#: templates/js/translated/build.js:1580 msgid "Required Tests" msgstr "" -#: templates/js/translated/build.js:1749 -#: templates/js/translated/purchase_order.js:611 -#: templates/js/translated/sales_order.js:1207 +#: templates/js/translated/build.js:1752 +#: templates/js/translated/purchase_order.js:594 +#: templates/js/translated/sales_order.js:1173 msgid "Select Parts" msgstr "" -#: templates/js/translated/build.js:1750 -#: templates/js/translated/sales_order.js:1208 +#: templates/js/translated/build.js:1753 +#: templates/js/translated/sales_order.js:1174 msgid "You must select at least one part to allocate" msgstr "" -#: templates/js/translated/build.js:1813 -#: templates/js/translated/sales_order.js:1157 +#: templates/js/translated/build.js:1816 +#: templates/js/translated/sales_order.js:1123 msgid "Specify stock allocation quantity" msgstr "" -#: templates/js/translated/build.js:1890 +#: templates/js/translated/build.js:1893 msgid "All Parts Allocated" msgstr "" -#: templates/js/translated/build.js:1891 +#: templates/js/translated/build.js:1894 msgid "All selected parts have been fully allocated" msgstr "" -#: templates/js/translated/build.js:1905 -#: templates/js/translated/sales_order.js:1222 +#: templates/js/translated/build.js:1908 +#: templates/js/translated/sales_order.js:1188 msgid "Select source location (leave blank to take from all locations)" msgstr "" -#: templates/js/translated/build.js:1933 +#: templates/js/translated/build.js:1936 msgid "Allocate Stock Items to Build Order" msgstr "" -#: templates/js/translated/build.js:1944 -#: templates/js/translated/sales_order.js:1319 +#: templates/js/translated/build.js:1947 +#: templates/js/translated/sales_order.js:1285 msgid "No matching stock locations" msgstr "" -#: templates/js/translated/build.js:2017 -#: templates/js/translated/sales_order.js:1398 +#: templates/js/translated/build.js:2020 +#: templates/js/translated/sales_order.js:1364 msgid "No matching stock items" msgstr "" -#: templates/js/translated/build.js:2114 +#: templates/js/translated/build.js:2117 msgid "Automatic Stock Allocation" msgstr "" -#: templates/js/translated/build.js:2115 +#: templates/js/translated/build.js:2118 msgid "Stock items will be automatically allocated to this build order, according to the provided guidelines" msgstr "" -#: templates/js/translated/build.js:2117 +#: templates/js/translated/build.js:2120 msgid "If a location is specified, stock will only be allocated from that location" msgstr "" -#: templates/js/translated/build.js:2118 +#: templates/js/translated/build.js:2121 msgid "If stock is considered interchangeable, it will be allocated from the first location it is found" msgstr "" -#: templates/js/translated/build.js:2119 +#: templates/js/translated/build.js:2122 msgid "If substitute stock is allowed, it will be used where stock of the primary part cannot be found" msgstr "" -#: templates/js/translated/build.js:2149 +#: templates/js/translated/build.js:2152 msgid "Allocate Stock Items" msgstr "" -#: templates/js/translated/build.js:2254 +#: templates/js/translated/build.js:2257 msgid "No builds matching query" msgstr "" -#: templates/js/translated/build.js:2289 templates/js/translated/build.js:2652 +#: templates/js/translated/build.js:2292 templates/js/translated/build.js:2661 #: templates/js/translated/forms.js:2196 templates/js/translated/forms.js:2212 #: templates/js/translated/part.js:2322 templates/js/translated/part.js:2761 -#: templates/js/translated/stock.js:2068 templates/js/translated/stock.js:2795 +#: templates/js/translated/stock.js:2069 templates/js/translated/stock.js:2796 msgid "Select" -msgstr "" +msgstr "Vali" -#: templates/js/translated/build.js:2303 +#: templates/js/translated/build.js:2306 msgid "Build order is overdue" msgstr "" -#: templates/js/translated/build.js:2385 templates/js/translated/stock.js:3126 +#: templates/js/translated/build.js:2388 templates/js/translated/stock.js:3127 msgid "No user information" msgstr "" -#: templates/js/translated/build.js:2561 -#: templates/js/translated/sales_order.js:1682 +#: templates/js/translated/build.js:2568 +#: templates/js/translated/sales_order.js:1663 msgid "Edit stock allocation" msgstr "" -#: templates/js/translated/build.js:2562 -#: templates/js/translated/sales_order.js:1683 +#: templates/js/translated/build.js:2569 +#: templates/js/translated/sales_order.js:1664 msgid "Delete stock allocation" msgstr "" -#: templates/js/translated/build.js:2577 +#: templates/js/translated/build.js:2584 msgid "Edit Allocation" msgstr "" -#: templates/js/translated/build.js:2589 +#: templates/js/translated/build.js:2596 msgid "Remove Allocation" msgstr "" -#: templates/js/translated/build.js:2628 +#: templates/js/translated/build.js:2636 msgid "build line" msgstr "" -#: templates/js/translated/build.js:2629 +#: templates/js/translated/build.js:2637 msgid "build lines" msgstr "" -#: templates/js/translated/build.js:2647 +#: templates/js/translated/build.js:2656 msgid "No build lines found" msgstr "" -#: templates/js/translated/build.js:2677 templates/js/translated/part.js:793 +#: templates/js/translated/build.js:2686 templates/js/translated/part.js:793 #: templates/js/translated/part.js:1209 msgid "Trackable part" msgstr "" -#: templates/js/translated/build.js:2720 +#: templates/js/translated/build.js:2729 msgid "Gets Inherited" msgstr "" -#: templates/js/translated/build.js:2730 +#: templates/js/translated/build.js:2748 msgid "Unit Quantity" msgstr "" -#: templates/js/translated/build.js:2782 -#: templates/js/translated/sales_order.js:1951 +#: templates/js/translated/build.js:2800 +#: templates/js/translated/sales_order.js:1932 msgid "Sufficient stock available" msgstr "" -#: templates/js/translated/build.js:2837 +#: templates/js/translated/build.js:2855 msgid "Consumable Item" msgstr "" -#: templates/js/translated/build.js:2844 +#: templates/js/translated/build.js:2862 msgid "Tracked item" msgstr "" -#: templates/js/translated/build.js:2845 +#: templates/js/translated/build.js:2863 msgid "Allocate tracked items against individual build outputs" msgstr "" -#: templates/js/translated/build.js:2853 -#: templates/js/translated/sales_order.js:2052 +#: templates/js/translated/build.js:2871 +#: templates/js/translated/sales_order.js:2033 msgid "Build stock" msgstr "" -#: templates/js/translated/build.js:2858 templates/js/translated/stock.js:1953 +#: templates/js/translated/build.js:2876 templates/js/translated/stock.js:1954 msgid "Order stock" msgstr "" -#: templates/js/translated/build.js:2862 -#: templates/js/translated/sales_order.js:2046 +#: templates/js/translated/build.js:2880 +#: templates/js/translated/sales_order.js:2027 msgid "Allocate stock" msgstr "" -#: templates/js/translated/build.js:2866 +#: templates/js/translated/build.js:2884 msgid "Remove stock allocation" msgstr "" @@ -12641,7 +13006,7 @@ msgid "Add Manufacturer" msgstr "" #: templates/js/translated/company.js:111 -#: templates/js/translated/company.js:213 +#: templates/js/translated/company.js:214 msgid "Add Manufacturer Part" msgstr "" @@ -12649,255 +13014,255 @@ msgstr "" msgid "Edit Manufacturer Part" msgstr "" -#: templates/js/translated/company.js:201 +#: templates/js/translated/company.js:202 #: templates/js/translated/purchase_order.js:93 msgid "Add Supplier" msgstr "" -#: templates/js/translated/company.js:243 -#: templates/js/translated/purchase_order.js:318 +#: templates/js/translated/company.js:244 +#: templates/js/translated/purchase_order.js:301 msgid "Add Supplier Part" msgstr "" -#: templates/js/translated/company.js:344 +#: templates/js/translated/company.js:345 msgid "All selected supplier parts will be deleted" msgstr "" -#: templates/js/translated/company.js:360 +#: templates/js/translated/company.js:361 msgid "Delete Supplier Parts" msgstr "" -#: templates/js/translated/company.js:466 +#: templates/js/translated/company.js:467 msgid "Add new Company" msgstr "" -#: templates/js/translated/company.js:546 +#: templates/js/translated/company.js:547 msgid "Parts Supplied" msgstr "" -#: templates/js/translated/company.js:555 +#: templates/js/translated/company.js:556 msgid "Parts Manufactured" msgstr "" -#: templates/js/translated/company.js:570 +#: templates/js/translated/company.js:571 msgid "No company information found" msgstr "" -#: templates/js/translated/company.js:619 +#: templates/js/translated/company.js:620 msgid "Create New Contact" msgstr "" -#: templates/js/translated/company.js:635 -#: templates/js/translated/company.js:758 +#: templates/js/translated/company.js:636 +#: templates/js/translated/company.js:759 msgid "Edit Contact" -msgstr "" +msgstr "Muuda kontakti" -#: templates/js/translated/company.js:672 +#: templates/js/translated/company.js:673 msgid "All selected contacts will be deleted" msgstr "" -#: templates/js/translated/company.js:678 -#: templates/js/translated/company.js:742 +#: templates/js/translated/company.js:679 +#: templates/js/translated/company.js:743 msgid "Role" -msgstr "" +msgstr "Roll" -#: templates/js/translated/company.js:686 +#: templates/js/translated/company.js:687 msgid "Delete Contacts" -msgstr "" +msgstr "Kustuta kontaktid" -#: templates/js/translated/company.js:717 +#: templates/js/translated/company.js:718 msgid "No contacts found" -msgstr "" +msgstr "Kontakte ei leitud" -#: templates/js/translated/company.js:730 +#: templates/js/translated/company.js:731 msgid "Phone Number" -msgstr "" +msgstr "Telefoninumber" -#: templates/js/translated/company.js:736 +#: templates/js/translated/company.js:737 msgid "Email Address" -msgstr "" +msgstr "E-posti aadress" -#: templates/js/translated/company.js:762 +#: templates/js/translated/company.js:763 msgid "Delete Contact" -msgstr "" +msgstr "Kustuta kontakt" -#: templates/js/translated/company.js:859 +#: templates/js/translated/company.js:860 msgid "Create New Address" -msgstr "" +msgstr "Loo uus aadress" -#: templates/js/translated/company.js:874 -#: templates/js/translated/company.js:1035 +#: templates/js/translated/company.js:875 +#: templates/js/translated/company.js:1036 msgid "Edit Address" -msgstr "" +msgstr "Muuda aadressi" -#: templates/js/translated/company.js:909 +#: templates/js/translated/company.js:910 msgid "All selected addresses will be deleted" msgstr "" -#: templates/js/translated/company.js:923 +#: templates/js/translated/company.js:924 msgid "Delete Addresses" -msgstr "" +msgstr "Kustuta aadressid" -#: templates/js/translated/company.js:950 +#: templates/js/translated/company.js:951 msgid "No addresses found" -msgstr "" +msgstr "Aadresse ei leitud" -#: templates/js/translated/company.js:989 +#: templates/js/translated/company.js:990 msgid "Postal city" msgstr "" -#: templates/js/translated/company.js:995 +#: templates/js/translated/company.js:996 msgid "State/province" msgstr "" -#: templates/js/translated/company.js:1007 +#: templates/js/translated/company.js:1008 msgid "Courier notes" msgstr "" -#: templates/js/translated/company.js:1013 +#: templates/js/translated/company.js:1014 msgid "Internal notes" msgstr "" -#: templates/js/translated/company.js:1039 +#: templates/js/translated/company.js:1040 msgid "Delete Address" msgstr "" -#: templates/js/translated/company.js:1112 +#: templates/js/translated/company.js:1113 msgid "All selected manufacturer parts will be deleted" msgstr "" -#: templates/js/translated/company.js:1127 +#: templates/js/translated/company.js:1128 msgid "Delete Manufacturer Parts" msgstr "" -#: templates/js/translated/company.js:1161 +#: templates/js/translated/company.js:1162 msgid "All selected parameters will be deleted" msgstr "" -#: templates/js/translated/company.js:1175 +#: templates/js/translated/company.js:1176 msgid "Delete Parameters" msgstr "" -#: templates/js/translated/company.js:1191 -#: templates/js/translated/company.js:1479 templates/js/translated/part.js:2250 +#: templates/js/translated/company.js:1192 +#: templates/js/translated/company.js:1480 templates/js/translated/part.js:2250 msgid "Order parts" msgstr "" -#: templates/js/translated/company.js:1208 +#: templates/js/translated/company.js:1209 msgid "Delete manufacturer parts" msgstr "" -#: templates/js/translated/company.js:1240 +#: templates/js/translated/company.js:1241 msgid "Manufacturer part actions" msgstr "" -#: templates/js/translated/company.js:1259 +#: templates/js/translated/company.js:1260 msgid "No manufacturer parts found" msgstr "" -#: templates/js/translated/company.js:1279 -#: templates/js/translated/company.js:1567 templates/js/translated/part.js:801 +#: templates/js/translated/company.js:1280 +#: templates/js/translated/company.js:1568 templates/js/translated/part.js:801 #: templates/js/translated/part.js:1217 msgid "Template part" msgstr "" -#: templates/js/translated/company.js:1283 -#: templates/js/translated/company.js:1571 templates/js/translated/part.js:805 +#: templates/js/translated/company.js:1284 +#: templates/js/translated/company.js:1572 templates/js/translated/part.js:805 #: templates/js/translated/part.js:1221 msgid "Assembled part" msgstr "" -#: templates/js/translated/company.js:1403 templates/js/translated/part.js:1471 +#: templates/js/translated/company.js:1404 templates/js/translated/part.js:1471 msgid "No parameters found" -msgstr "" +msgstr "Parameetreid ei leitud" -#: templates/js/translated/company.js:1438 templates/js/translated/part.js:1534 +#: templates/js/translated/company.js:1439 templates/js/translated/part.js:1534 msgid "Edit parameter" -msgstr "" +msgstr "Muuda parameetrid" -#: templates/js/translated/company.js:1439 templates/js/translated/part.js:1535 +#: templates/js/translated/company.js:1440 templates/js/translated/part.js:1535 msgid "Delete parameter" -msgstr "" +msgstr "Kustuta parameeter" -#: templates/js/translated/company.js:1456 templates/js/translated/part.js:1440 +#: templates/js/translated/company.js:1457 templates/js/translated/part.js:1440 msgid "Edit Parameter" -msgstr "" +msgstr "Muuda parameetrit" -#: templates/js/translated/company.js:1465 templates/js/translated/part.js:1556 +#: templates/js/translated/company.js:1466 templates/js/translated/part.js:1556 msgid "Delete Parameter" -msgstr "" +msgstr "Kustuta parameeter" -#: templates/js/translated/company.js:1496 +#: templates/js/translated/company.js:1497 msgid "Delete supplier parts" msgstr "" -#: templates/js/translated/company.js:1546 +#: templates/js/translated/company.js:1547 msgid "No supplier parts found" msgstr "" -#: templates/js/translated/company.js:1664 +#: templates/js/translated/company.js:1665 msgid "Base Units" msgstr "" -#: templates/js/translated/company.js:1694 +#: templates/js/translated/company.js:1695 msgid "Availability" -msgstr "" +msgstr "Saadavus" -#: templates/js/translated/company.js:1725 +#: templates/js/translated/company.js:1726 msgid "Edit supplier part" msgstr "" -#: templates/js/translated/company.js:1726 +#: templates/js/translated/company.js:1727 msgid "Delete supplier part" msgstr "" -#: templates/js/translated/company.js:1779 +#: templates/js/translated/company.js:1780 #: templates/js/translated/pricing.js:694 msgid "Delete Price Break" msgstr "" -#: templates/js/translated/company.js:1789 +#: templates/js/translated/company.js:1790 #: templates/js/translated/pricing.js:712 msgid "Edit Price Break" msgstr "" -#: templates/js/translated/company.js:1804 +#: templates/js/translated/company.js:1805 msgid "No price break information found" msgstr "" -#: templates/js/translated/company.js:1833 +#: templates/js/translated/company.js:1834 msgid "Last updated" -msgstr "" +msgstr "Viimane uuendus" -#: templates/js/translated/company.js:1840 +#: templates/js/translated/company.js:1841 msgid "Edit price break" msgstr "" -#: templates/js/translated/company.js:1841 +#: templates/js/translated/company.js:1842 msgid "Delete price break" msgstr "" #: templates/js/translated/filters.js:189 #: templates/js/translated/filters.js:670 msgid "true" -msgstr "" +msgstr "tõene" #: templates/js/translated/filters.js:193 #: templates/js/translated/filters.js:671 msgid "false" -msgstr "" +msgstr "väär" #: templates/js/translated/filters.js:217 msgid "Select filter" -msgstr "" +msgstr "Vali filter" #: templates/js/translated/filters.js:440 msgid "Print Labels" -msgstr "" +msgstr "Prindi sildid" #: templates/js/translated/filters.js:444 msgid "Print Reports" -msgstr "" +msgstr "Prindi aruanded" #: templates/js/translated/filters.js:456 msgid "Download table data" @@ -12909,20 +13274,20 @@ msgstr "" #: templates/js/translated/filters.js:472 msgid "Add new filter" -msgstr "" +msgstr "Lisa uus filter" #: templates/js/translated/filters.js:480 msgid "Clear all filters" -msgstr "" +msgstr "Tühjenda kõik filtrid" #: templates/js/translated/filters.js:580 msgid "Create filter" -msgstr "" +msgstr "Loo filter" #: templates/js/translated/forms.js:379 templates/js/translated/forms.js:394 #: templates/js/translated/forms.js:408 templates/js/translated/forms.js:422 msgid "Action Prohibited" -msgstr "" +msgstr "Toiming on keelatud" #: templates/js/translated/forms.js:381 msgid "Create operation not allowed" @@ -12946,7 +13311,7 @@ msgstr "" #: templates/js/translated/forms.js:904 msgid "Enter a valid number" -msgstr "" +msgstr "Sisesta korrektne number" #: templates/js/translated/forms.js:1478 templates/modals.html:19 #: templates/modals.html:43 @@ -12977,21 +13342,21 @@ msgstr "" msgid "Select Columns" msgstr "" -#: templates/js/translated/helpers.js:80 +#: templates/js/translated/helpers.js:81 msgid "YES" -msgstr "" +msgstr "YES" -#: templates/js/translated/helpers.js:83 +#: templates/js/translated/helpers.js:84 msgid "NO" -msgstr "" - -#: templates/js/translated/helpers.js:96 -msgid "True" -msgstr "" +msgstr "EI" #: templates/js/translated/helpers.js:97 +msgid "True" +msgstr "Tõene" + +#: templates/js/translated/helpers.js:98 msgid "False" -msgstr "" +msgstr "Väär" #: templates/js/translated/index.js:104 msgid "No parts required for builds" @@ -12999,7 +13364,7 @@ msgstr "" #: templates/js/translated/label.js:48 templates/js/translated/report.js:38 msgid "Select Items" -msgstr "" +msgstr "Vali kirjed" #: templates/js/translated/label.js:49 templates/js/translated/report.js:39 msgid "No items selected for printing" @@ -13012,13 +13377,13 @@ msgstr "" #: templates/js/translated/modals.js:59 templates/js/translated/modals.js:159 #: templates/js/translated/modals.js:688 msgid "Cancel" -msgstr "" +msgstr "Tühista" #: templates/js/translated/modals.js:64 templates/js/translated/modals.js:158 #: templates/js/translated/modals.js:756 templates/js/translated/modals.js:1064 #: templates/modals.html:28 templates/modals.html:51 msgid "Submit" -msgstr "" +msgstr "Esita" #: templates/js/translated/modals.js:157 msgid "Form Title" @@ -13034,11 +13399,11 @@ msgstr "" #: templates/js/translated/modals.js:687 msgid "Accept" -msgstr "" +msgstr "Nõustu" #: templates/js/translated/modals.js:745 msgid "Loading Data" -msgstr "" +msgstr "Andmete laadimine" #: templates/js/translated/modals.js:1016 msgid "Invalid response from server" @@ -13070,7 +13435,7 @@ msgstr "" #: templates/js/translated/news.js:33 msgid "No news found" -msgstr "" +msgstr "Uudiseid ei leitud" #: templates/js/translated/news.js:38 #: templates/js/translated/notification.js:46 @@ -13080,19 +13445,19 @@ msgstr "" #: templates/js/translated/notification.js:52 msgid "Age" -msgstr "" +msgstr "Vanus" #: templates/js/translated/notification.js:65 msgid "Notification" -msgstr "" +msgstr "Teavitus" #: templates/js/translated/notification.js:224 msgid "Mark as unread" -msgstr "" +msgstr "Märgi mitteloetuks" #: templates/js/translated/notification.js:228 msgid "Mark as read" -msgstr "" +msgstr "Märgi loetuks" #: templates/js/translated/notification.js:254 msgid "No unread notifications" @@ -13124,28 +13489,28 @@ msgstr "" #: templates/js/translated/order.js:280 msgid "Edit Line" -msgstr "" +msgstr "Muuda rida" #: templates/js/translated/order.js:293 msgid "Delete Line" -msgstr "" +msgstr "Kustuta rida" #: templates/js/translated/order.js:306 -#: templates/js/translated/purchase_order.js:2060 +#: templates/js/translated/purchase_order.js:2044 msgid "No line items found" msgstr "" #: templates/js/translated/order.js:394 msgid "Duplicate line" -msgstr "" +msgstr "Tee reast koopia" #: templates/js/translated/order.js:395 msgid "Edit line" -msgstr "" +msgstr "Muuda rida" #: templates/js/translated/order.js:399 msgid "Delete line" -msgstr "" +msgstr "Kustuta rida" #: templates/js/translated/part.js:91 msgid "Part Attributes" @@ -13366,19 +13731,19 @@ msgid "Delete Part Parameter Template" msgstr "" #: templates/js/translated/part.js:1723 -#: templates/js/translated/purchase_order.js:1724 +#: templates/js/translated/purchase_order.js:1708 msgid "No purchase orders found" msgstr "" #: templates/js/translated/part.js:1867 -#: templates/js/translated/purchase_order.js:2223 +#: templates/js/translated/purchase_order.js:2207 #: templates/js/translated/return_order.js:754 -#: templates/js/translated/sales_order.js:1911 +#: templates/js/translated/sales_order.js:1892 msgid "This line item is overdue" msgstr "" #: templates/js/translated/part.js:1913 -#: templates/js/translated/purchase_order.js:2290 +#: templates/js/translated/purchase_order.js:2274 msgid "Receive line item" msgstr "" @@ -13419,7 +13784,7 @@ msgid "No category" msgstr "" #: templates/js/translated/part.js:2550 templates/js/translated/part.js:2680 -#: templates/js/translated/stock.js:2754 +#: templates/js/translated/stock.js:2755 msgid "Display as list" msgstr "" @@ -13431,7 +13796,7 @@ msgstr "" msgid "No subcategories found" msgstr "" -#: templates/js/translated/part.js:2700 templates/js/translated/stock.js:2774 +#: templates/js/translated/part.js:2700 templates/js/translated/stock.js:2775 msgid "Display as tree" msgstr "" @@ -13483,23 +13848,23 @@ msgstr "" msgid "Speculative" msgstr "" -#: templates/js/translated/part.js:3128 +#: templates/js/translated/part.js:3144 msgid "No scheduling information available for this part" msgstr "" -#: templates/js/translated/part.js:3134 +#: templates/js/translated/part.js:3150 msgid "Error fetching scheduling information for this part" msgstr "" -#: templates/js/translated/part.js:3230 +#: templates/js/translated/part.js:3246 msgid "Scheduled Stock Quantities" msgstr "" -#: templates/js/translated/part.js:3246 +#: templates/js/translated/part.js:3262 msgid "Maximum Quantity" -msgstr "" +msgstr "Maksimaalne kogus" -#: templates/js/translated/part.js:3291 +#: templates/js/translated/part.js:3307 msgid "Minimum Stock Level" msgstr "" @@ -13541,11 +13906,11 @@ msgstr "" #: templates/js/translated/plugin.js:189 msgid "Enable" -msgstr "" +msgstr "Lülita sisse" #: templates/js/translated/plugin.js:189 msgid "Disable" -msgstr "" +msgstr "Lülita välja" #: templates/js/translated/plugin.js:203 msgid "Plugin updated" @@ -13575,267 +13940,243 @@ msgstr "" msgid "Purchase Price History" msgstr "" -#: templates/js/translated/pricing.js:894 +#: templates/js/translated/pricing.js:892 msgid "No sales history data available" msgstr "" -#: templates/js/translated/pricing.js:916 +#: templates/js/translated/pricing.js:914 msgid "Sale Price History" msgstr "" -#: templates/js/translated/pricing.js:1005 +#: templates/js/translated/pricing.js:1003 msgid "No variant data available" msgstr "" -#: templates/js/translated/pricing.js:1045 +#: templates/js/translated/pricing.js:1043 msgid "Variant Part" msgstr "" -#: templates/js/translated/purchase_order.js:169 -msgid "Select purchase order to duplicate" -msgstr "" - -#: templates/js/translated/purchase_order.js:176 -msgid "Duplicate Line Items" -msgstr "" - -#: templates/js/translated/purchase_order.js:177 -msgid "Duplicate all line items from the selected order" -msgstr "" - -#: templates/js/translated/purchase_order.js:184 -msgid "Duplicate Extra Lines" -msgstr "" - -#: templates/js/translated/purchase_order.js:185 -msgid "Duplicate extra line items from the selected order" -msgstr "" - -#: templates/js/translated/purchase_order.js:206 +#: templates/js/translated/purchase_order.js:188 msgid "Edit Purchase Order" msgstr "" -#: templates/js/translated/purchase_order.js:223 +#: templates/js/translated/purchase_order.js:205 msgid "Duplication Options" msgstr "" -#: templates/js/translated/purchase_order.js:431 +#: templates/js/translated/purchase_order.js:414 msgid "Complete Purchase Order" msgstr "" -#: templates/js/translated/purchase_order.js:448 +#: templates/js/translated/purchase_order.js:431 #: templates/js/translated/return_order.js:210 -#: templates/js/translated/sales_order.js:552 +#: templates/js/translated/sales_order.js:511 msgid "Mark this order as complete?" msgstr "" -#: templates/js/translated/purchase_order.js:454 +#: templates/js/translated/purchase_order.js:437 msgid "All line items have been received" msgstr "" -#: templates/js/translated/purchase_order.js:459 +#: templates/js/translated/purchase_order.js:442 msgid "This order has line items which have not been marked as received." msgstr "" -#: templates/js/translated/purchase_order.js:460 +#: templates/js/translated/purchase_order.js:443 msgid "Completing this order means that the order and line items will no longer be editable." msgstr "" -#: templates/js/translated/purchase_order.js:483 +#: templates/js/translated/purchase_order.js:466 msgid "Cancel Purchase Order" msgstr "" -#: templates/js/translated/purchase_order.js:488 +#: templates/js/translated/purchase_order.js:471 msgid "Are you sure you wish to cancel this purchase order?" msgstr "" -#: templates/js/translated/purchase_order.js:494 +#: templates/js/translated/purchase_order.js:477 msgid "This purchase order can not be cancelled" msgstr "" -#: templates/js/translated/purchase_order.js:515 +#: templates/js/translated/purchase_order.js:498 #: templates/js/translated/return_order.js:164 msgid "After placing this order, line items will no longer be editable." msgstr "" -#: templates/js/translated/purchase_order.js:520 +#: templates/js/translated/purchase_order.js:503 msgid "Issue Purchase Order" msgstr "" -#: templates/js/translated/purchase_order.js:612 +#: templates/js/translated/purchase_order.js:595 msgid "At least one purchaseable part must be selected" msgstr "" -#: templates/js/translated/purchase_order.js:637 +#: templates/js/translated/purchase_order.js:620 msgid "Quantity to order" msgstr "" -#: templates/js/translated/purchase_order.js:646 +#: templates/js/translated/purchase_order.js:629 msgid "New supplier part" msgstr "" -#: templates/js/translated/purchase_order.js:664 +#: templates/js/translated/purchase_order.js:647 msgid "New purchase order" msgstr "" -#: templates/js/translated/purchase_order.js:705 +#: templates/js/translated/purchase_order.js:688 msgid "Add to purchase order" msgstr "" -#: templates/js/translated/purchase_order.js:755 +#: templates/js/translated/purchase_order.js:738 msgid "Merge" msgstr "" -#: templates/js/translated/purchase_order.js:859 +#: templates/js/translated/purchase_order.js:842 msgid "No matching supplier parts" msgstr "" -#: templates/js/translated/purchase_order.js:878 +#: templates/js/translated/purchase_order.js:861 msgid "No matching purchase orders" msgstr "" -#: templates/js/translated/purchase_order.js:1073 +#: templates/js/translated/purchase_order.js:1056 #: templates/js/translated/return_order.js:490 msgid "Select Line Items" msgstr "" -#: templates/js/translated/purchase_order.js:1074 +#: templates/js/translated/purchase_order.js:1057 #: templates/js/translated/return_order.js:491 msgid "At least one line item must be selected" msgstr "" -#: templates/js/translated/purchase_order.js:1104 +#: templates/js/translated/purchase_order.js:1087 msgid "Received Quantity" msgstr "" -#: templates/js/translated/purchase_order.js:1115 +#: templates/js/translated/purchase_order.js:1098 msgid "Quantity to receive" msgstr "" -#: templates/js/translated/purchase_order.js:1170 +#: templates/js/translated/purchase_order.js:1153 #: templates/js/translated/stock.js:1215 msgid "Specify packaging for incoming stock items" msgstr "" -#: templates/js/translated/purchase_order.js:1223 +#: templates/js/translated/purchase_order.js:1206 msgid "Stock Status" msgstr "" -#: templates/js/translated/purchase_order.js:1237 +#: templates/js/translated/purchase_order.js:1220 msgid "Add barcode" msgstr "" -#: templates/js/translated/purchase_order.js:1238 +#: templates/js/translated/purchase_order.js:1221 msgid "Remove barcode" msgstr "" -#: templates/js/translated/purchase_order.js:1241 +#: templates/js/translated/purchase_order.js:1224 msgid "Specify location" msgstr "" -#: templates/js/translated/purchase_order.js:1249 +#: templates/js/translated/purchase_order.js:1232 msgid "Add batch code" msgstr "" -#: templates/js/translated/purchase_order.js:1259 +#: templates/js/translated/purchase_order.js:1242 msgid "Specify packaging" msgstr "" -#: templates/js/translated/purchase_order.js:1270 +#: templates/js/translated/purchase_order.js:1253 msgid "Add serial numbers" msgstr "" -#: templates/js/translated/purchase_order.js:1281 +#: templates/js/translated/purchase_order.js:1264 msgid "Add note" msgstr "" -#: templates/js/translated/purchase_order.js:1338 +#: templates/js/translated/purchase_order.js:1321 msgid "Serials" msgstr "" -#: templates/js/translated/purchase_order.js:1368 +#: templates/js/translated/purchase_order.js:1351 msgid "Order Code" msgstr "" -#: templates/js/translated/purchase_order.js:1370 +#: templates/js/translated/purchase_order.js:1353 msgid "Quantity to Receive" msgstr "" -#: templates/js/translated/purchase_order.js:1395 +#: templates/js/translated/purchase_order.js:1379 #: templates/js/translated/return_order.js:559 msgid "Confirm receipt of items" msgstr "" -#: templates/js/translated/purchase_order.js:1396 +#: templates/js/translated/purchase_order.js:1380 msgid "Receive Purchase Order Items" msgstr "" -#: templates/js/translated/purchase_order.js:1464 +#: templates/js/translated/purchase_order.js:1448 msgid "Scan Item Barcode" msgstr "" -#: templates/js/translated/purchase_order.js:1465 +#: templates/js/translated/purchase_order.js:1449 msgid "Scan barcode on incoming item (must not match any existing stock items)" msgstr "" -#: templates/js/translated/purchase_order.js:1479 +#: templates/js/translated/purchase_order.js:1463 msgid "Invalid barcode data" msgstr "" -#: templates/js/translated/purchase_order.js:1751 +#: templates/js/translated/purchase_order.js:1735 #: templates/js/translated/return_order.js:285 -#: templates/js/translated/sales_order.js:810 -#: templates/js/translated/sales_order.js:1034 +#: templates/js/translated/sales_order.js:769 +#: templates/js/translated/sales_order.js:1007 msgid "Order is overdue" msgstr "" -#: templates/js/translated/purchase_order.js:1913 +#: templates/js/translated/purchase_order.js:1897 msgid "All selected Line items will be deleted" msgstr "" -#: templates/js/translated/purchase_order.js:1931 +#: templates/js/translated/purchase_order.js:1915 msgid "Delete selected Line items?" msgstr "" -#: templates/js/translated/purchase_order.js:1986 -#: templates/js/translated/sales_order.js:2106 +#: templates/js/translated/purchase_order.js:1970 +#: templates/js/translated/sales_order.js:2087 msgid "Duplicate Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2001 +#: templates/js/translated/purchase_order.js:1985 #: templates/js/translated/return_order.js:475 #: templates/js/translated/return_order.js:667 -#: templates/js/translated/sales_order.js:2119 +#: templates/js/translated/sales_order.js:2100 msgid "Edit Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2012 +#: templates/js/translated/purchase_order.js:1996 #: templates/js/translated/return_order.js:680 -#: templates/js/translated/sales_order.js:2130 +#: templates/js/translated/sales_order.js:2111 msgid "Delete Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2294 -#: templates/js/translated/sales_order.js:2060 +#: templates/js/translated/purchase_order.js:2278 +#: templates/js/translated/sales_order.js:2041 msgid "Duplicate line item" msgstr "" -#: templates/js/translated/purchase_order.js:2295 +#: templates/js/translated/purchase_order.js:2279 #: templates/js/translated/return_order.js:799 -#: templates/js/translated/sales_order.js:2061 +#: templates/js/translated/sales_order.js:2042 msgid "Edit line item" msgstr "" -#: templates/js/translated/purchase_order.js:2296 +#: templates/js/translated/purchase_order.js:2280 #: templates/js/translated/return_order.js:803 -#: templates/js/translated/sales_order.js:2067 +#: templates/js/translated/sales_order.js:2048 msgid "Delete line item" msgstr "" -#: templates/js/translated/report.js:49 -msgid "Print Report" -msgstr "" - #: templates/js/translated/report.js:68 msgid "Report print successful" msgstr "" @@ -13878,7 +14219,7 @@ msgid "No return orders found" msgstr "" #: templates/js/translated/return_order.js:299 -#: templates/js/translated/sales_order.js:824 +#: templates/js/translated/sales_order.js:783 msgid "Invalid Customer" msgstr "" @@ -13887,7 +14228,7 @@ msgid "Receive Return Order Items" msgstr "" #: templates/js/translated/return_order.js:691 -#: templates/js/translated/sales_order.js:2267 +#: templates/js/translated/sales_order.js:2248 msgid "No matching line items" msgstr "" @@ -13903,188 +14244,181 @@ msgstr "" msgid "Edit Sales Order" msgstr "" -#: templates/js/translated/sales_order.js:291 +#: templates/js/translated/sales_order.js:288 msgid "No stock items have been allocated to this shipment" msgstr "" -#: templates/js/translated/sales_order.js:296 -msgid "The following stock items will be shipped" -msgstr "" - -#: templates/js/translated/sales_order.js:336 +#: templates/js/translated/sales_order.js:294 msgid "Complete Shipment" msgstr "" -#: templates/js/translated/sales_order.js:360 +#: templates/js/translated/sales_order.js:318 msgid "Confirm Shipment" msgstr "" -#: templates/js/translated/sales_order.js:416 +#: templates/js/translated/sales_order.js:375 msgid "No pending shipments found" msgstr "" -#: templates/js/translated/sales_order.js:420 +#: templates/js/translated/sales_order.js:379 msgid "No stock items have been allocated to pending shipments" msgstr "" -#: templates/js/translated/sales_order.js:430 +#: templates/js/translated/sales_order.js:389 msgid "Complete Shipments" msgstr "" -#: templates/js/translated/sales_order.js:452 +#: templates/js/translated/sales_order.js:411 msgid "Skip" -msgstr "" +msgstr "Jäta vahele" -#: templates/js/translated/sales_order.js:484 +#: templates/js/translated/sales_order.js:443 msgid "Ship Sales Order" msgstr "" -#: templates/js/translated/sales_order.js:500 +#: templates/js/translated/sales_order.js:459 msgid "Ship this order?" msgstr "" -#: templates/js/translated/sales_order.js:506 +#: templates/js/translated/sales_order.js:465 msgid "Order cannot be shipped as there are incomplete shipments" msgstr "" -#: templates/js/translated/sales_order.js:513 +#: templates/js/translated/sales_order.js:472 msgid "This order has line items which have not been completed." msgstr "" -#: templates/js/translated/sales_order.js:514 +#: templates/js/translated/sales_order.js:473 msgid "Shipping this order means that the order and line items will no longer be editable." msgstr "" -#: templates/js/translated/sales_order.js:572 +#: templates/js/translated/sales_order.js:531 msgid "Issue this Sales Order?" msgstr "" -#: templates/js/translated/sales_order.js:577 +#: templates/js/translated/sales_order.js:536 msgid "Issue Sales Order" msgstr "" -#: templates/js/translated/sales_order.js:596 +#: templates/js/translated/sales_order.js:555 msgid "Cancel Sales Order" msgstr "" -#: templates/js/translated/sales_order.js:601 +#: templates/js/translated/sales_order.js:560 msgid "Cancelling this order means that the order will no longer be editable." msgstr "" -#: templates/js/translated/sales_order.js:655 +#: templates/js/translated/sales_order.js:614 msgid "Create New Shipment" msgstr "" -#: templates/js/translated/sales_order.js:764 +#: templates/js/translated/sales_order.js:723 msgid "No sales orders found" msgstr "" -#: templates/js/translated/sales_order.js:944 +#: templates/js/translated/sales_order.js:907 msgid "Edit shipment" msgstr "" -#: templates/js/translated/sales_order.js:947 +#: templates/js/translated/sales_order.js:910 msgid "Complete shipment" msgstr "" -#: templates/js/translated/sales_order.js:952 +#: templates/js/translated/sales_order.js:915 msgid "Delete shipment" msgstr "" -#: templates/js/translated/sales_order.js:969 +#: templates/js/translated/sales_order.js:932 msgid "Edit Shipment" msgstr "" -#: templates/js/translated/sales_order.js:984 +#: templates/js/translated/sales_order.js:947 msgid "Delete Shipment" msgstr "" -#: templates/js/translated/sales_order.js:1017 +#: templates/js/translated/sales_order.js:989 msgid "No matching shipments found" msgstr "" -#: templates/js/translated/sales_order.js:1042 +#: templates/js/translated/sales_order.js:1015 msgid "Shipment Reference" msgstr "" -#: templates/js/translated/sales_order.js:1066 -#: templates/js/translated/sales_order.js:1565 +#: templates/js/translated/sales_order.js:1032 +#: templates/js/translated/sales_order.js:1531 msgid "Not shipped" msgstr "" -#: templates/js/translated/sales_order.js:1084 +#: templates/js/translated/sales_order.js:1050 msgid "Tracking" msgstr "" -#: templates/js/translated/sales_order.js:1088 +#: templates/js/translated/sales_order.js:1054 msgid "Invoice" msgstr "" -#: templates/js/translated/sales_order.js:1255 +#: templates/js/translated/sales_order.js:1221 msgid "Add Shipment" msgstr "" -#: templates/js/translated/sales_order.js:1306 +#: templates/js/translated/sales_order.js:1272 msgid "Confirm stock allocation" msgstr "" -#: templates/js/translated/sales_order.js:1307 +#: templates/js/translated/sales_order.js:1273 msgid "Allocate Stock Items to Sales Order" msgstr "" -#: templates/js/translated/sales_order.js:1513 +#: templates/js/translated/sales_order.js:1479 msgid "No sales order allocations found" msgstr "" -#: templates/js/translated/sales_order.js:1605 +#: templates/js/translated/sales_order.js:1571 msgid "Edit Stock Allocation" msgstr "" -#: templates/js/translated/sales_order.js:1619 +#: templates/js/translated/sales_order.js:1585 msgid "Confirm Delete Operation" msgstr "" -#: templates/js/translated/sales_order.js:1620 +#: templates/js/translated/sales_order.js:1586 msgid "Delete Stock Allocation" msgstr "" -#: templates/js/translated/sales_order.js:1659 -#: templates/js/translated/sales_order.js:1746 +#: templates/js/translated/sales_order.js:1640 +#: templates/js/translated/sales_order.js:1727 #: templates/js/translated/stock.js:1861 msgid "Shipped to customer" msgstr "" -#: templates/js/translated/sales_order.js:1667 -#: templates/js/translated/sales_order.js:1755 +#: templates/js/translated/sales_order.js:1648 +#: templates/js/translated/sales_order.js:1736 msgid "Stock location not specified" msgstr "" -#: templates/js/translated/sales_order.js:2044 -msgid "Allocate serial numbers" -msgstr "" - -#: templates/js/translated/sales_order.js:2048 -msgid "Purchase stock" -msgstr "" - -#: templates/js/translated/sales_order.js:2057 -#: templates/js/translated/sales_order.js:2245 -msgid "Calculate price" -msgstr "" - -#: templates/js/translated/sales_order.js:2071 -msgid "Cannot be deleted as items have been shipped" -msgstr "" - -#: templates/js/translated/sales_order.js:2074 -msgid "Cannot be deleted as items have been allocated" -msgstr "" - -#: templates/js/translated/sales_order.js:2145 +#: templates/js/translated/sales_order.js:2025 +#: templates/js/translated/sales_order.js:2126 msgid "Allocate Serial Numbers" msgstr "" -#: templates/js/translated/sales_order.js:2253 +#: templates/js/translated/sales_order.js:2029 +msgid "Purchase stock" +msgstr "" + +#: templates/js/translated/sales_order.js:2038 +#: templates/js/translated/sales_order.js:2226 +msgid "Calculate price" +msgstr "" + +#: templates/js/translated/sales_order.js:2052 +msgid "Cannot be deleted as items have been shipped" +msgstr "" + +#: templates/js/translated/sales_order.js:2055 +msgid "Cannot be deleted as items have been allocated" +msgstr "" + +#: templates/js/translated/sales_order.js:2234 msgid "Update Unit Price" msgstr "" @@ -14209,11 +14543,8 @@ msgid "Find Serial Number" msgstr "" #: templates/js/translated/stock.js:603 templates/js/translated/stock.js:604 -msgid "Enter serial number" -msgstr "" - #: templates/js/translated/stock.js:620 -msgid "Enter a serial number" +msgid "Enter serial number" msgstr "" #: templates/js/translated/stock.js:640 @@ -14262,7 +14593,7 @@ msgstr "" #: templates/js/translated/stock.js:1032 msgid "Move" -msgstr "" +msgstr "Liiguta" #: templates/js/translated/stock.js:1038 msgid "Count Stock" @@ -14270,7 +14601,7 @@ msgstr "" #: templates/js/translated/stock.js:1039 msgid "Count" -msgstr "" +msgstr "Kogus" #: templates/js/translated/stock.js:1043 msgid "Remove Stock" @@ -14284,7 +14615,7 @@ msgstr "" msgid "Add Stock" msgstr "" -#: templates/js/translated/stock.js:1049 users/models.py:396 +#: templates/js/translated/stock.js:1049 users/models.py:398 msgid "Add" msgstr "" @@ -14308,7 +14639,7 @@ msgstr "" msgid "Adjust packaging" msgstr "" -#: templates/js/translated/stock.js:1256 templates/js/translated/stock.js:3382 +#: templates/js/translated/stock.js:1256 templates/js/translated/stock.js:3383 msgid "Select Stock Items" msgstr "" @@ -14320,18 +14651,6 @@ msgstr "" msgid "Confirm stock adjustment" msgstr "" -#: templates/js/translated/stock.js:1448 -msgid "PASS" -msgstr "" - -#: templates/js/translated/stock.js:1450 -msgid "FAIL" -msgstr "" - -#: templates/js/translated/stock.js:1455 -msgid "NO RESULT" -msgstr "" - #: templates/js/translated/stock.js:1535 msgid "Pass test" msgstr "" @@ -14388,216 +14707,216 @@ msgstr "" msgid "No stock location set" msgstr "" -#: templates/js/translated/stock.js:1927 +#: templates/js/translated/stock.js:1928 msgid "Change stock status" msgstr "" -#: templates/js/translated/stock.js:1936 +#: templates/js/translated/stock.js:1937 msgid "Merge stock" msgstr "" -#: templates/js/translated/stock.js:1985 +#: templates/js/translated/stock.js:1986 msgid "Delete stock" msgstr "" -#: templates/js/translated/stock.js:2038 +#: templates/js/translated/stock.js:2039 msgid "stock items" msgstr "" -#: templates/js/translated/stock.js:2043 +#: templates/js/translated/stock.js:2044 msgid "Scan to location" msgstr "" -#: templates/js/translated/stock.js:2054 +#: templates/js/translated/stock.js:2055 msgid "Stock Actions" msgstr "" -#: templates/js/translated/stock.js:2098 +#: templates/js/translated/stock.js:2099 msgid "Load installed items" msgstr "" -#: templates/js/translated/stock.js:2176 +#: templates/js/translated/stock.js:2177 msgid "Stock item is in production" msgstr "" -#: templates/js/translated/stock.js:2181 +#: templates/js/translated/stock.js:2182 msgid "Stock item assigned to sales order" msgstr "" -#: templates/js/translated/stock.js:2184 +#: templates/js/translated/stock.js:2185 msgid "Stock item assigned to customer" msgstr "" -#: templates/js/translated/stock.js:2187 +#: templates/js/translated/stock.js:2188 msgid "Serialized stock item has been allocated" msgstr "" -#: templates/js/translated/stock.js:2189 +#: templates/js/translated/stock.js:2190 msgid "Stock item has been fully allocated" msgstr "" -#: templates/js/translated/stock.js:2191 +#: templates/js/translated/stock.js:2192 msgid "Stock item has been partially allocated" msgstr "" -#: templates/js/translated/stock.js:2194 +#: templates/js/translated/stock.js:2195 msgid "Stock item has been installed in another item" msgstr "" -#: templates/js/translated/stock.js:2196 +#: templates/js/translated/stock.js:2197 msgid "Stock item has been consumed by a build order" msgstr "" -#: templates/js/translated/stock.js:2200 +#: templates/js/translated/stock.js:2201 msgid "Stock item has expired" msgstr "" -#: templates/js/translated/stock.js:2202 +#: templates/js/translated/stock.js:2203 msgid "Stock item will expire soon" msgstr "" -#: templates/js/translated/stock.js:2207 +#: templates/js/translated/stock.js:2208 msgid "Stock item has been rejected" msgstr "" -#: templates/js/translated/stock.js:2209 +#: templates/js/translated/stock.js:2210 msgid "Stock item is lost" msgstr "" -#: templates/js/translated/stock.js:2211 +#: templates/js/translated/stock.js:2212 msgid "Stock item is destroyed" msgstr "" -#: templates/js/translated/stock.js:2215 +#: templates/js/translated/stock.js:2216 #: templates/js/translated/table_filters.js:357 msgid "Depleted" msgstr "" -#: templates/js/translated/stock.js:2380 +#: templates/js/translated/stock.js:2381 msgid "Supplier part not specified" msgstr "" -#: templates/js/translated/stock.js:2427 +#: templates/js/translated/stock.js:2428 msgid "Stock Value" msgstr "" -#: templates/js/translated/stock.js:2555 +#: templates/js/translated/stock.js:2556 msgid "No stock items matching query" msgstr "" -#: templates/js/translated/stock.js:2658 +#: templates/js/translated/stock.js:2659 msgid "stock locations" msgstr "" -#: templates/js/translated/stock.js:2813 +#: templates/js/translated/stock.js:2814 msgid "Load Sublocations" msgstr "" -#: templates/js/translated/stock.js:2930 +#: templates/js/translated/stock.js:2931 msgid "Details" msgstr "" -#: templates/js/translated/stock.js:2934 +#: templates/js/translated/stock.js:2935 msgid "No changes" msgstr "" -#: templates/js/translated/stock.js:2946 +#: templates/js/translated/stock.js:2947 msgid "Part information unavailable" msgstr "" -#: templates/js/translated/stock.js:2968 +#: templates/js/translated/stock.js:2969 msgid "Location no longer exists" msgstr "" -#: templates/js/translated/stock.js:2985 +#: templates/js/translated/stock.js:2986 msgid "Build order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3000 +#: templates/js/translated/stock.js:3001 msgid "Purchase order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3017 +#: templates/js/translated/stock.js:3018 msgid "Sales Order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3034 +#: templates/js/translated/stock.js:3035 msgid "Return Order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3053 +#: templates/js/translated/stock.js:3054 msgid "Customer no longer exists" msgstr "" -#: templates/js/translated/stock.js:3071 +#: templates/js/translated/stock.js:3072 msgid "Stock item no longer exists" msgstr "" -#: templates/js/translated/stock.js:3089 +#: templates/js/translated/stock.js:3090 msgid "Added" msgstr "" -#: templates/js/translated/stock.js:3097 +#: templates/js/translated/stock.js:3098 msgid "Removed" msgstr "" -#: templates/js/translated/stock.js:3169 +#: templates/js/translated/stock.js:3170 msgid "No installed items" msgstr "" -#: templates/js/translated/stock.js:3223 templates/js/translated/stock.js:3259 +#: templates/js/translated/stock.js:3224 templates/js/translated/stock.js:3260 msgid "Uninstall Stock Item" msgstr "" -#: templates/js/translated/stock.js:3280 +#: templates/js/translated/stock.js:3281 msgid "Select stock item to uninstall" msgstr "" -#: templates/js/translated/stock.js:3301 +#: templates/js/translated/stock.js:3302 msgid "Install another stock item into this item" msgstr "" -#: templates/js/translated/stock.js:3302 +#: templates/js/translated/stock.js:3303 msgid "Stock items can only be installed if they meet the following criteria" msgstr "" -#: templates/js/translated/stock.js:3304 +#: templates/js/translated/stock.js:3305 msgid "The Stock Item links to a Part which is the BOM for this Stock Item" msgstr "" -#: templates/js/translated/stock.js:3305 +#: templates/js/translated/stock.js:3306 msgid "The Stock Item is currently available in stock" msgstr "" -#: templates/js/translated/stock.js:3306 +#: templates/js/translated/stock.js:3307 msgid "The Stock Item is not already installed in another item" msgstr "" -#: templates/js/translated/stock.js:3307 +#: templates/js/translated/stock.js:3308 msgid "The Stock Item is tracked by either a batch code or serial number" msgstr "" -#: templates/js/translated/stock.js:3320 +#: templates/js/translated/stock.js:3321 msgid "Select part to install" msgstr "" -#: templates/js/translated/stock.js:3383 +#: templates/js/translated/stock.js:3384 msgid "Select one or more stock items" msgstr "" -#: templates/js/translated/stock.js:3396 +#: templates/js/translated/stock.js:3397 msgid "Selected stock items" msgstr "" -#: templates/js/translated/stock.js:3400 +#: templates/js/translated/stock.js:3401 msgid "Change Stock Status" msgstr "" -#: templates/js/translated/stock.js:3477 +#: templates/js/translated/stock.js:3478 msgid "This week" msgstr "" -#: templates/js/translated/stock.js:3485 +#: templates/js/translated/stock.js:3486 msgid "This month" msgstr "" @@ -14734,10 +15053,6 @@ msgstr "" msgid "Show items which are in production" msgstr "" -#: templates/js/translated/table_filters.js:372 -msgid "Include Variants" -msgstr "" - #: templates/js/translated/table_filters.js:373 msgid "Include stock items for variant parts" msgstr "" @@ -14926,7 +15241,7 @@ msgstr "" #: templates/js/translated/tables.js:561 msgid "All" -msgstr "" +msgstr "Kõik" #: templates/navbar.html:45 msgid "Buy" @@ -14938,23 +15253,23 @@ msgstr "" #: templates/navbar.html:121 msgid "Show Notifications" -msgstr "" +msgstr "Näita teavitusi" #: templates/navbar.html:124 msgid "New Notifications" -msgstr "" +msgstr "Uued teavitused" #: templates/navbar.html:144 users/models.py:201 msgid "Admin" -msgstr "" +msgstr "Admin" #: templates/navbar.html:148 msgid "Logout" -msgstr "" +msgstr "Logi välja" #: templates/notes_buttons.html:6 templates/notes_buttons.html:7 msgid "Save" -msgstr "" +msgstr "Salvesta" #: templates/notifications.html:9 msgid "Show all notifications and history" @@ -15012,10 +15327,6 @@ msgstr "" msgid "An error occurred while attempting to login via your social network account." msgstr "" -#: templates/socialaccount/authentication_error.html:13 -msgid "Contact your system administrator for further information." -msgstr "" - #: templates/socialaccount/login.html:13 #, python-format msgid "Connect %(provider)s" @@ -15038,7 +15349,7 @@ msgstr "" #: templates/socialaccount/login.html:24 msgid "Continue" -msgstr "" +msgstr "Jätka" #: templates/socialaccount/login.html:29 msgid "Invalid SSO Provider" @@ -15071,7 +15382,7 @@ msgstr "" #: templates/stats.html:18 msgid "Database" -msgstr "" +msgstr "Andmebaas" #: templates/stats.html:26 msgid "Server is running in debug mode" @@ -15131,39 +15442,39 @@ msgstr "" #: templates/test_statistics_table.html:16 msgid "Failed" -msgstr "" +msgstr "Ebaõnnestus" #: templates/yesnolabel.html:4 msgid "Yes" -msgstr "" +msgstr "Jah" #: templates/yesnolabel.html:6 msgid "No" -msgstr "" +msgstr "Ei" -#: users/admin.py:104 +#: users/admin.py:101 msgid "Users" -msgstr "" +msgstr "Kasutajad" -#: users/admin.py:105 +#: users/admin.py:102 msgid "Select which users are assigned to this group" msgstr "" -#: users/admin.py:249 +#: users/admin.py:246 msgid "The following users are members of multiple groups" msgstr "" -#: users/admin.py:283 +#: users/admin.py:280 msgid "Personal info" -msgstr "" +msgstr "Isiklik info" + +#: users/admin.py:282 +msgid "Permissions" +msgstr "Õigused" #: users/admin.py:285 -msgid "Permissions" -msgstr "" - -#: users/admin.py:288 msgid "Important dates" -msgstr "" +msgstr "Olulised kuupäevad" #: users/authentication.py:29 users/models.py:138 msgid "Token has been revoked" @@ -15175,27 +15486,27 @@ msgstr "" #: users/models.py:81 msgid "API Token" -msgstr "" +msgstr "API tunnus" #: users/models.py:82 msgid "API Tokens" -msgstr "" +msgstr "API tunnused" #: users/models.py:118 msgid "Token Name" -msgstr "" +msgstr "Lunnuse nimi" #: users/models.py:119 msgid "Custom token name" -msgstr "" +msgstr "Kohandatud tunnuse nimi" #: users/models.py:125 msgid "Token expiry date" -msgstr "" +msgstr "Tunnuse aegumise kuupäev" #: users/models.py:133 msgid "Last Seen" -msgstr "" +msgstr "Viimati nähtud" #: users/models.py:134 msgid "Last time the token was used" @@ -15203,37 +15514,37 @@ msgstr "" #: users/models.py:138 msgid "Revoked" -msgstr "" +msgstr "Tühistatud" -#: users/models.py:379 +#: users/models.py:381 msgid "Permission set" msgstr "" -#: users/models.py:388 +#: users/models.py:390 msgid "Group" -msgstr "" +msgstr "Grupp" -#: users/models.py:392 +#: users/models.py:394 msgid "View" -msgstr "" +msgstr "Vaade" -#: users/models.py:392 +#: users/models.py:394 msgid "Permission to view items" msgstr "" -#: users/models.py:396 +#: users/models.py:398 msgid "Permission to add items" msgstr "" -#: users/models.py:400 -msgid "Change" -msgstr "" - #: users/models.py:402 +msgid "Change" +msgstr "Muuda" + +#: users/models.py:404 msgid "Permissions to edit items" msgstr "" -#: users/models.py:408 +#: users/models.py:410 msgid "Permission to delete items" msgstr "" diff --git a/src/backend/InvenTree/locale/fa/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/fa/LC_MESSAGES/django.po index 7138efac25..9821d9ac03 100644 --- a/src/backend/InvenTree/locale/fa/LC_MESSAGES/django.po +++ b/src/backend/InvenTree/locale/fa/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-08-20 01:22+0000\n" -"PO-Revision-Date: 2024-08-20 19:51\n" +"POT-Creation-Date: 2024-11-04 03:11+0000\n" +"PO-Revision-Date: 2024-11-04 03:14\n" "Last-Translator: \n" "Language-Team: Persian\n" "Language: fa_IR\n" @@ -14,81 +14,89 @@ msgstr "" "X-Crowdin-Project: inventree\n" "X-Crowdin-Project-ID: 452300\n" "X-Crowdin-Language: fa\n" -"X-Crowdin-File: /[inventree.InvenTree] l10/src/backend/InvenTree/locale/en/LC_MESSAGES/django.po\n" -"X-Crowdin-File-ID: 216\n" +"X-Crowdin-File: /src/backend/InvenTree/locale/en/LC_MESSAGES/django.po\n" +"X-Crowdin-File-ID: 250\n" -#: InvenTree/api.py:269 +#: InvenTree/api.py:270 msgid "API endpoint not found" msgstr "Address e API peida nashod" -#: InvenTree/api.py:502 +#: InvenTree/api.py:387 +msgid "Invalid items list provided" +msgstr "" + +#: InvenTree/api.py:396 +msgid "Invalid filters provided" +msgstr "" + +#: InvenTree/api.py:401 +msgid "No items found to delete" +msgstr "" + +#: InvenTree/api.py:515 msgid "User does not have permission to view this model" msgstr "کاربر سطح دسترسی نمایش این مدل را ندارد" -#: InvenTree/conversion.py:160 +#: InvenTree/conversion.py:161 #, python-brace-format msgid "Invalid unit provided ({unit})" msgstr "" -#: InvenTree/conversion.py:177 +#: InvenTree/conversion.py:178 msgid "No value provided" msgstr "مقداری افزوده نشده" -#: InvenTree/conversion.py:204 +#: InvenTree/conversion.py:205 #, python-brace-format msgid "Could not convert {original} to {unit}" msgstr "" -#: InvenTree/conversion.py:206 -msgid "Invalid quantity supplied" -msgstr "تعداد افزوده شده اشتباه است" - -#: InvenTree/conversion.py:220 -#, python-brace-format -msgid "Invalid quantity supplied ({exc})" +#: InvenTree/conversion.py:207 InvenTree/conversion.py:221 +#: InvenTree/helpers.py:505 order/models.py:589 order/models.py:832 +msgid "Invalid quantity provided" msgstr "" -#: InvenTree/exceptions.py:108 +#: InvenTree/exceptions.py:104 msgid "Error details can be found in the admin panel" msgstr "جزئیات خطا را می توان در پنل مدیریت پیدا کرد" -#: InvenTree/fields.py:136 +#: InvenTree/fields.py:135 msgid "Enter date" msgstr "تاریخ را وارد کنید" -#: InvenTree/fields.py:205 InvenTree/models.py:929 build/serializers.py:468 -#: build/serializers.py:546 build/templates/build/sidebar.html:29 -#: company/models.py:836 +#: InvenTree/fields.py:204 InvenTree/models.py:928 build/serializers.py:512 +#: build/serializers.py:590 build/templates/build/sidebar.html:29 +#: company/models.py:833 #: company/templates/company/manufacturer_part_sidebar.html:11 #: company/templates/company/sidebar.html:37 -#: company/templates/company/supplier_part_sidebar.html:11 order/models.py:1380 +#: company/templates/company/supplier_part_sidebar.html:11 order/models.py:1397 #: order/templates/order/po_sidebar.html:11 #: order/templates/order/return_order_sidebar.html:9 #: order/templates/order/so_sidebar.html:17 part/admin.py:59 -#: part/models.py:3297 part/templates/part/part_sidebar.html:65 +#: part/models.py:3348 part/templates/part/part_sidebar.html:65 #: report/templates/report/inventree_build_order_report.html:172 -#: stock/admin.py:230 stock/models.py:2375 stock/models.py:2563 -#: stock/serializers.py:698 stock/serializers.py:856 stock/serializers.py:982 -#: stock/serializers.py:1032 stock/serializers.py:1343 -#: stock/serializers.py:1432 stock/serializers.py:1597 +#: stock/admin.py:231 stock/models.py:2494 stock/models.py:2679 +#: stock/serializers.py:725 stock/serializers.py:887 stock/serializers.py:1013 +#: stock/serializers.py:1063 stock/serializers.py:1374 +#: stock/serializers.py:1463 stock/serializers.py:1628 #: stock/templates/stock/stock_sidebar.html:25 #: templates/js/translated/barcode.js:143 templates/js/translated/bom.js:1265 -#: templates/js/translated/company.js:1684 templates/js/translated/order.js:372 +#: templates/js/translated/company.js:1685 templates/js/translated/order.js:372 #: templates/js/translated/part.js:1087 -#: templates/js/translated/purchase_order.js:2270 +#: templates/js/translated/purchase_order.js:2254 #: templates/js/translated/return_order.js:774 -#: templates/js/translated/sales_order.js:1103 -#: templates/js/translated/sales_order.js:2018 -#: templates/js/translated/stock.js:1621 templates/js/translated/stock.js:2513 +#: templates/js/translated/sales_order.js:1069 +#: templates/js/translated/sales_order.js:1999 +#: templates/js/translated/stock.js:1621 templates/js/translated/stock.js:2514 msgid "Notes" msgstr "یادداشت" -#: InvenTree/format.py:164 +#: InvenTree/format.py:162 #, python-brace-format msgid "Value '{name}' does not appear in pattern format" msgstr "مقدار '{name}' در قالب الگو ظاهر قرار نمی گیرد" -#: InvenTree/format.py:175 +#: InvenTree/format.py:173 msgid "Provided value does not match required pattern: " msgstr "مقدار ارائه شده با الگوی مورد نیاز مطابقت ندارد: " @@ -132,397 +140,409 @@ msgstr "" msgid "The provided primary email address is not valid." msgstr "آدرس ایمیل اصلی ارائه شده معتبر نیست." -#: InvenTree/forms.py:274 +#: InvenTree/forms.py:273 msgid "The provided email domain is not approved." msgstr "دامنه ایمیل ارائه شده تایید نشده است." -#: InvenTree/forms.py:403 +#: InvenTree/forms.py:402 msgid "Registration is disabled." msgstr "" -#: InvenTree/helpers.py:491 order/models.py:567 order/models.py:810 -msgid "Invalid quantity provided" +#: InvenTree/helpers.py:509 +msgid "Cannot serialize more than 1000 items at once" msgstr "" -#: InvenTree/helpers.py:499 +#: InvenTree/helpers.py:515 msgid "Empty serial number string" msgstr "" -#: InvenTree/helpers.py:528 +#: InvenTree/helpers.py:544 msgid "Duplicate serial" msgstr "" -#: InvenTree/helpers.py:560 InvenTree/helpers.py:603 +#: InvenTree/helpers.py:576 InvenTree/helpers.py:619 InvenTree/helpers.py:637 +#: InvenTree/helpers.py:644 InvenTree/helpers.py:663 #, python-brace-format -msgid "Invalid group range: {group}" +msgid "Invalid group: {group}" msgstr "" -#: InvenTree/helpers.py:591 +#: InvenTree/helpers.py:607 #, python-brace-format msgid "Group range {group} exceeds allowed quantity ({expected_quantity})" msgstr "" -#: InvenTree/helpers.py:621 InvenTree/helpers.py:628 InvenTree/helpers.py:647 -#, python-brace-format -msgid "Invalid group sequence: {group}" -msgstr "" - -#: InvenTree/helpers.py:657 +#: InvenTree/helpers.py:673 msgid "No serial numbers found" msgstr "" -#: InvenTree/helpers.py:662 +#: InvenTree/helpers.py:678 msgid "Number of unique serial numbers ({len(serials)}) must match quantity ({expected_quantity})" msgstr "" -#: InvenTree/helpers.py:780 +#: InvenTree/helpers.py:796 msgid "Remove HTML tags from this value" msgstr "" -#: InvenTree/helpers_model.py:133 +#: InvenTree/helpers.py:881 +msgid "Data contains prohibited markdown content" +msgstr "" + +#: InvenTree/helpers_model.py:130 msgid "Connection error" msgstr "خطا در اتصال" -#: InvenTree/helpers_model.py:138 InvenTree/helpers_model.py:145 +#: InvenTree/helpers_model.py:135 InvenTree/helpers_model.py:142 msgid "Server responded with invalid status code" msgstr "سرور با کد وضعیت نامعتبر پاسخ داد" -#: InvenTree/helpers_model.py:141 +#: InvenTree/helpers_model.py:138 msgid "Exception occurred" msgstr "یک استثنا رخ داده است" -#: InvenTree/helpers_model.py:151 +#: InvenTree/helpers_model.py:148 msgid "Server responded with invalid Content-Length value" msgstr "سرور با مقدار طول محتوا نامعتبر پاسخ داد" -#: InvenTree/helpers_model.py:154 +#: InvenTree/helpers_model.py:151 msgid "Image size is too large" msgstr "اندازه عکس بسیار بزرگ است" -#: InvenTree/helpers_model.py:166 +#: InvenTree/helpers_model.py:163 msgid "Image download exceeded maximum size" msgstr "" -#: InvenTree/helpers_model.py:171 +#: InvenTree/helpers_model.py:168 msgid "Remote server returned empty response" msgstr "" -#: InvenTree/helpers_model.py:179 +#: InvenTree/helpers_model.py:176 msgid "Supplied URL is not a valid image file" msgstr "" -#: InvenTree/locales.py:18 +#: InvenTree/locales.py:20 msgid "Arabic" msgstr "" -#: InvenTree/locales.py:19 +#: InvenTree/locales.py:21 msgid "Bulgarian" msgstr "" -#: InvenTree/locales.py:20 +#: InvenTree/locales.py:22 msgid "Czech" msgstr "" -#: InvenTree/locales.py:21 +#: InvenTree/locales.py:23 msgid "Danish" msgstr "" -#: InvenTree/locales.py:22 +#: InvenTree/locales.py:24 msgid "German" msgstr "" -#: InvenTree/locales.py:23 +#: InvenTree/locales.py:25 msgid "Greek" msgstr "" -#: InvenTree/locales.py:24 +#: InvenTree/locales.py:26 msgid "English" msgstr "" -#: InvenTree/locales.py:25 +#: InvenTree/locales.py:27 msgid "Spanish" msgstr "" -#: InvenTree/locales.py:26 +#: InvenTree/locales.py:28 msgid "Spanish (Mexican)" msgstr "" -#: InvenTree/locales.py:27 +#: InvenTree/locales.py:29 msgid "Estonian" msgstr "" -#: InvenTree/locales.py:28 +#: InvenTree/locales.py:30 msgid "Farsi / Persian" msgstr "" -#: InvenTree/locales.py:29 +#: InvenTree/locales.py:31 msgid "Finnish" msgstr "" -#: InvenTree/locales.py:30 +#: InvenTree/locales.py:32 msgid "French" msgstr "" -#: InvenTree/locales.py:31 +#: InvenTree/locales.py:33 msgid "Hebrew" msgstr "" -#: InvenTree/locales.py:32 +#: InvenTree/locales.py:34 msgid "Hindi" msgstr "" -#: InvenTree/locales.py:33 +#: InvenTree/locales.py:35 msgid "Hungarian" msgstr "" -#: InvenTree/locales.py:34 +#: InvenTree/locales.py:36 msgid "Italian" msgstr "" -#: InvenTree/locales.py:35 +#: InvenTree/locales.py:37 msgid "Japanese" msgstr "" -#: InvenTree/locales.py:36 +#: InvenTree/locales.py:38 msgid "Korean" msgstr "" -#: InvenTree/locales.py:37 -msgid "Latvian" -msgstr "" - -#: InvenTree/locales.py:38 -msgid "Dutch" -msgstr "" - #: InvenTree/locales.py:39 -msgid "Norwegian" +msgid "Lithuanian" msgstr "" #: InvenTree/locales.py:40 -msgid "Polish" +msgid "Latvian" msgstr "" #: InvenTree/locales.py:41 -msgid "Portuguese" +msgid "Dutch" msgstr "" #: InvenTree/locales.py:42 -msgid "Portuguese (Brazilian)" +msgid "Norwegian" msgstr "" #: InvenTree/locales.py:43 -msgid "Romanian" +msgid "Polish" msgstr "" #: InvenTree/locales.py:44 -msgid "Russian" +msgid "Portuguese" msgstr "" #: InvenTree/locales.py:45 -msgid "Slovak" +msgid "Portuguese (Brazilian)" msgstr "" #: InvenTree/locales.py:46 -msgid "Slovenian" +msgid "Romanian" msgstr "" #: InvenTree/locales.py:47 -msgid "Serbian" +msgid "Russian" msgstr "" #: InvenTree/locales.py:48 -msgid "Swedish" +msgid "Slovak" msgstr "" #: InvenTree/locales.py:49 -msgid "Thai" +msgid "Slovenian" msgstr "" #: InvenTree/locales.py:50 -msgid "Turkish" +msgid "Serbian" msgstr "" #: InvenTree/locales.py:51 -msgid "Ukrainian" +msgid "Swedish" msgstr "" #: InvenTree/locales.py:52 -msgid "Vietnamese" +msgid "Thai" msgstr "" #: InvenTree/locales.py:53 -msgid "Chinese (Simplified)" +msgid "Turkish" msgstr "" #: InvenTree/locales.py:54 +msgid "Ukrainian" +msgstr "" + +#: InvenTree/locales.py:55 +msgid "Vietnamese" +msgstr "" + +#: InvenTree/locales.py:56 +msgid "Chinese (Simplified)" +msgstr "" + +#: InvenTree/locales.py:57 msgid "Chinese (Traditional)" msgstr "" #: InvenTree/magic_login.py:28 -#, python-brace-format -msgid "[{site_name}] Log in to the app" +msgid "Log in to the app" msgstr "" -#: InvenTree/magic_login.py:38 InvenTree/serializers.py:415 -#: company/models.py:136 company/templates/company/company_base.html:138 +#: InvenTree/magic_login.py:38 InvenTree/serializers.py:416 +#: company/models.py:133 company/templates/company/company_base.html:138 #: templates/InvenTree/settings/user.html:49 -#: templates/js/translated/company.js:677 +#: templates/js/translated/company.js:678 msgid "Email" msgstr "" -#: InvenTree/models.py:103 +#: InvenTree/models.py:105 msgid "Error running plugin validation" msgstr "" -#: InvenTree/models.py:172 +#: InvenTree/models.py:174 msgid "Metadata must be a python dict object" msgstr "" -#: InvenTree/models.py:178 +#: InvenTree/models.py:180 msgid "Plugin Metadata" msgstr "" -#: InvenTree/models.py:179 +#: InvenTree/models.py:181 msgid "JSON metadata field, for use by external plugins" msgstr "" -#: InvenTree/models.py:409 +#: InvenTree/models.py:408 msgid "Improperly formatted pattern" msgstr "" -#: InvenTree/models.py:416 +#: InvenTree/models.py:415 msgid "Unknown format key specified" msgstr "" -#: InvenTree/models.py:422 +#: InvenTree/models.py:421 msgid "Missing required format key" msgstr "" -#: InvenTree/models.py:433 +#: InvenTree/models.py:432 msgid "Reference field cannot be empty" msgstr "" -#: InvenTree/models.py:441 +#: InvenTree/models.py:440 msgid "Reference must match required pattern" msgstr "" -#: InvenTree/models.py:472 +#: InvenTree/models.py:471 msgid "Reference number is too large" msgstr "" -#: InvenTree/models.py:723 +#: InvenTree/models.py:722 msgid "Duplicate names cannot exist under the same parent" msgstr "" -#: InvenTree/models.py:740 +#: InvenTree/models.py:739 msgid "Invalid choice" msgstr "" -#: InvenTree/models.py:770 common/models.py:2702 common/models.py:3132 -#: common/serializers.py:412 company/models.py:593 machine/models.py:24 -#: part/models.py:983 part/models.py:3764 plugin/models.py:51 -#: report/models.py:149 stock/models.py:77 +#: InvenTree/models.py:769 common/models.py:2766 common/models.py:3193 +#: common/models.py:3413 common/serializers.py:460 company/models.py:590 +#: machine/models.py:24 part/models.py:1044 part/models.py:3815 +#: plugin/models.py:51 report/models.py:149 stock/models.py:83 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/notifications.html:17 #: templates/InvenTree/settings/plugin.html:83 #: templates/InvenTree/settings/plugin_settings.html:22 #: templates/InvenTree/settings/settings_staff_js.html:67 #: templates/InvenTree/settings/settings_staff_js.html:454 -#: templates/js/translated/company.js:676 -#: templates/js/translated/company.js:724 -#: templates/js/translated/company.js:913 -#: templates/js/translated/company.js:1165 -#: templates/js/translated/company.js:1413 templates/js/translated/part.js:1193 +#: templates/js/translated/company.js:677 +#: templates/js/translated/company.js:725 +#: templates/js/translated/company.js:914 +#: templates/js/translated/company.js:1166 +#: templates/js/translated/company.js:1414 templates/js/translated/part.js:1193 #: templates/js/translated/part.js:1481 templates/js/translated/part.js:1617 -#: templates/js/translated/part.js:2768 templates/js/translated/stock.js:2801 +#: templates/js/translated/part.js:2768 templates/js/translated/stock.js:2802 msgid "Name" msgstr "" -#: InvenTree/models.py:776 build/models.py:250 -#: build/templates/build/detail.html:24 common/models.py:156 -#: company/models.py:521 company/models.py:827 +#: InvenTree/models.py:775 build/models.py:251 +#: build/templates/build/detail.html:24 common/models.py:159 +#: company/models.py:518 company/models.py:824 #: company/templates/company/company_base.html:77 #: company/templates/company/manufacturer_part.html:75 -#: company/templates/company/supplier_part.html:107 order/models.py:288 -#: order/models.py:1413 part/admin.py:305 part/admin.py:411 part/models.py:1006 -#: part/models.py:3779 part/templates/part/category.html:79 -#: part/templates/part/part_base.html:170 +#: company/templates/company/supplier_part.html:108 order/models.py:295 +#: order/models.py:1430 part/admin.py:305 part/admin.py:411 part/models.py:1067 +#: part/models.py:3830 part/templates/part/category.html:79 +#: part/templates/part/part_base.html:171 #: part/templates/part/part_scheduling.html:12 report/models.py:155 -#: report/models.py:509 report/models.py:535 +#: report/models.py:517 report/models.py:543 #: report/templates/report/inventree_build_order_report.html:117 -#: stock/admin.py:54 stock/models.py:83 stock/templates/stock/location.html:122 +#: stock/admin.py:54 stock/models.py:89 stock/templates/stock/location.html:123 #: templates/InvenTree/settings/notifications.html:19 #: templates/InvenTree/settings/plugin_settings.html:27 #: templates/InvenTree/settings/settings_staff_js.html:170 #: templates/InvenTree/settings/settings_staff_js.html:459 #: templates/js/translated/bom.js:633 templates/js/translated/bom.js:963 -#: templates/js/translated/build.js:2311 templates/js/translated/company.js:519 -#: templates/js/translated/company.js:1330 -#: templates/js/translated/company.js:1641 templates/js/translated/index.js:119 +#: templates/js/translated/build.js:2314 templates/js/translated/company.js:520 +#: templates/js/translated/company.js:1331 +#: templates/js/translated/company.js:1642 templates/js/translated/index.js:119 #: templates/js/translated/order.js:323 templates/js/translated/part.js:1245 #: templates/js/translated/part.js:1490 templates/js/translated/part.js:1628 #: templates/js/translated/part.js:1965 templates/js/translated/part.js:2361 #: templates/js/translated/part.js:2803 templates/js/translated/part.js:2915 #: templates/js/translated/plugin.js:80 -#: templates/js/translated/purchase_order.js:1776 -#: templates/js/translated/purchase_order.js:1919 -#: templates/js/translated/purchase_order.js:2092 +#: templates/js/translated/purchase_order.js:1760 +#: templates/js/translated/purchase_order.js:1903 +#: templates/js/translated/purchase_order.js:2076 #: templates/js/translated/return_order.js:313 -#: templates/js/translated/sales_order.js:838 -#: templates/js/translated/sales_order.js:1848 -#: templates/js/translated/stock.js:1600 templates/js/translated/stock.js:2143 -#: templates/js/translated/stock.js:2832 templates/js/translated/stock.js:2915 +#: templates/js/translated/sales_order.js:797 +#: templates/js/translated/sales_order.js:1829 +#: templates/js/translated/stock.js:1600 templates/js/translated/stock.js:2144 +#: templates/js/translated/stock.js:2833 templates/js/translated/stock.js:2916 msgid "Description" msgstr "" -#: InvenTree/models.py:777 stock/models.py:84 +#: InvenTree/models.py:776 stock/models.py:90 msgid "Description (optional)" msgstr "" -#: InvenTree/models.py:792 templates/js/translated/part.js:2812 -#: templates/js/translated/stock.js:2841 +#: InvenTree/models.py:791 common/models.py:3546 +#: templates/js/translated/part.js:2812 templates/js/translated/stock.js:2842 msgid "Path" msgstr "" -#: InvenTree/models.py:929 +#: InvenTree/models.py:928 msgid "Markdown notes (optional)" msgstr "" -#: InvenTree/models.py:960 +#: InvenTree/models.py:959 msgid "Barcode Data" msgstr "" -#: InvenTree/models.py:961 +#: InvenTree/models.py:960 msgid "Third party barcode data" msgstr "" -#: InvenTree/models.py:967 +#: InvenTree/models.py:966 msgid "Barcode Hash" msgstr "" -#: InvenTree/models.py:968 +#: InvenTree/models.py:967 msgid "Unique hash of barcode data" msgstr "" -#: InvenTree/models.py:1035 +#: InvenTree/models.py:1034 msgid "Existing barcode found" msgstr "" -#: InvenTree/models.py:1078 +#: InvenTree/models.py:1112 +msgid "Task Failure" +msgstr "" + +#: InvenTree/models.py:1114 +#, python-brace-format +msgid "Background worker task '{instance.func}' failed after {n} attempts" +msgstr "" + +#: InvenTree/models.py:1142 msgid "Server Error" msgstr "" -#: InvenTree/models.py:1079 +#: InvenTree/models.py:1143 msgid "An error has been logged by the server." msgstr "" -#: InvenTree/serializers.py:63 part/models.py:4387 +#: InvenTree/serializers.py:63 part/models.py:4444 msgid "Must be a valid number" msgstr "" -#: InvenTree/serializers.py:100 company/models.py:186 -#: company/templates/company/company_base.html:112 part/models.py:3115 +#: InvenTree/serializers.py:100 company/models.py:183 +#: company/templates/company/company_base.html:112 part/models.py:3166 #: templates/InvenTree/settings/settings_staff_js.html:44 #: templates/currency_data.html:5 msgid "Currency" @@ -532,15 +552,15 @@ msgstr "" msgid "Select currency from available options" msgstr "" -#: InvenTree/serializers.py:407 templates/InvenTree/settings/user.html:33 +#: InvenTree/serializers.py:405 templates/InvenTree/settings/user.html:33 msgid "Username" msgstr "" -#: InvenTree/serializers.py:409 templates/InvenTree/settings/user.html:37 +#: InvenTree/serializers.py:408 templates/InvenTree/settings/user.html:37 msgid "First Name" msgstr "" -#: InvenTree/serializers.py:409 +#: InvenTree/serializers.py:408 msgid "First name of the user" msgstr "" @@ -552,30 +572,30 @@ msgstr "" msgid "Last name of the user" msgstr "" -#: InvenTree/serializers.py:415 +#: InvenTree/serializers.py:416 msgid "Email address of the user" msgstr "" -#: InvenTree/serializers.py:439 +#: InvenTree/serializers.py:441 msgid "Staff" msgstr "" -#: InvenTree/serializers.py:439 +#: InvenTree/serializers.py:441 msgid "Does this user have staff permissions" msgstr "" -#: InvenTree/serializers.py:442 +#: InvenTree/serializers.py:445 msgid "Superuser" msgstr "" -#: InvenTree/serializers.py:442 +#: InvenTree/serializers.py:445 msgid "Is this user a superuser" msgstr "" -#: InvenTree/serializers.py:445 common/models.py:2707 company/models.py:163 -#: company/models.py:801 machine/models.py:39 part/admin.py:88 -#: part/models.py:1189 plugin/models.py:66 -#: templates/js/translated/company.js:523 +#: InvenTree/serializers.py:449 common/models.py:2771 company/models.py:160 +#: company/models.py:798 machine/models.py:39 part/admin.py:88 +#: part/models.py:1250 plugin/models.py:66 +#: templates/js/translated/company.js:524 #: templates/js/translated/table_filters.js:134 #: templates/js/translated/table_filters.js:226 #: templates/js/translated/table_filters.js:513 @@ -585,230 +605,229 @@ msgstr "" msgid "Active" msgstr "" -#: InvenTree/serializers.py:445 +#: InvenTree/serializers.py:449 msgid "Is this user account active" msgstr "" -#: InvenTree/serializers.py:463 +#: InvenTree/serializers.py:467 msgid "You do not have permission to change this user role." msgstr "" -#: InvenTree/serializers.py:475 +#: InvenTree/serializers.py:503 msgid "Only superusers can create new users" msgstr "" -#: InvenTree/serializers.py:494 +#: InvenTree/serializers.py:523 msgid "Your account has been created." msgstr "" -#: InvenTree/serializers.py:496 +#: InvenTree/serializers.py:525 msgid "Please use the password reset function to login" msgstr "" -#: InvenTree/serializers.py:503 +#: InvenTree/serializers.py:531 msgid "Welcome to InvenTree" msgstr "" -#: InvenTree/serializers.py:561 +#: InvenTree/serializers.py:594 msgid "Invalid value" msgstr "" -#: InvenTree/serializers.py:581 importer/models.py:63 +#: InvenTree/serializers.py:614 importer/models.py:64 msgid "Data File" msgstr "فایل‌های داده" -#: InvenTree/serializers.py:582 +#: InvenTree/serializers.py:615 msgid "Select data file for upload" msgstr "فایل را برای بارگذاری انتخاب کنید" -#: InvenTree/serializers.py:599 -msgid "Unsupported file type" -msgstr "این نوع فایل پشتیبانی نمی‌شود" +#: InvenTree/serializers.py:632 common/files.py:63 +msgid "Unsupported file format" +msgstr "" -#: InvenTree/serializers.py:605 +#: InvenTree/serializers.py:638 msgid "File is too large" msgstr "حجم فایل خیلی بزرگ است" -#: InvenTree/serializers.py:626 +#: InvenTree/serializers.py:659 msgid "No columns found in file" msgstr "هیچ ستونی در فایل یافت نشد" -#: InvenTree/serializers.py:629 +#: InvenTree/serializers.py:662 msgid "No data rows found in file" msgstr "هیچ ردیف داده ای در فایل یافت نشد" -#: InvenTree/serializers.py:742 +#: InvenTree/serializers.py:774 msgid "No data rows provided" msgstr "هیچ ردیف داده ای ارائه نشده است" -#: InvenTree/serializers.py:745 +#: InvenTree/serializers.py:777 msgid "No data columns supplied" msgstr "هیچ ستون داده ای ارائه نشده است" -#: InvenTree/serializers.py:812 +#: InvenTree/serializers.py:843 #, python-brace-format msgid "Missing required column: '{name}'" msgstr "ستون مورد نیاز وجود ندارد: \"{name}\"" -#: InvenTree/serializers.py:821 +#: InvenTree/serializers.py:852 #, python-brace-format msgid "Duplicate column: '{col}'" msgstr "ستون تکراری: '{col}'" -#: InvenTree/serializers.py:861 +#: InvenTree/serializers.py:891 msgid "Remote Image" msgstr "" -#: InvenTree/serializers.py:862 +#: InvenTree/serializers.py:892 msgid "URL of remote image file" msgstr "آدرس فایل تصویری از راه دور" -#: InvenTree/serializers.py:880 +#: InvenTree/serializers.py:910 msgid "Downloading images from remote URL is not enabled" msgstr "" -#: InvenTree/status.py:66 part/serializers.py:1246 -msgid "Background worker check failed" -msgstr "" - -#: InvenTree/status.py:70 -msgid "Email backend not configured" -msgstr "" - -#: InvenTree/status.py:73 -msgid "InvenTree system health checks failed" +#: InvenTree/serializers.py:917 +msgid "Failed to download image from remote URL" msgstr "" #: InvenTree/templatetags/inventree_extras.py:184 msgid "Unknown database" msgstr "" -#: InvenTree/validators.py:32 InvenTree/validators.py:34 +#: InvenTree/validators.py:32 msgid "Invalid physical unit" msgstr "" -#: InvenTree/validators.py:40 +#: InvenTree/validators.py:38 msgid "Not a valid currency code" msgstr "" -#: InvenTree/validators.py:118 InvenTree/validators.py:134 +#: InvenTree/validators.py:115 InvenTree/validators.py:131 msgid "Overage value must not be negative" msgstr "" -#: InvenTree/validators.py:136 +#: InvenTree/validators.py:133 msgid "Overage must not exceed 100%" msgstr "" -#: InvenTree/validators.py:142 +#: InvenTree/validators.py:139 msgid "Invalid value for overage" msgstr "" -#: InvenTree/views.py:400 templates/InvenTree/settings/user.html:23 +#: InvenTree/views.py:399 templates/InvenTree/settings/user.html:23 msgid "Edit User Information" msgstr "" -#: InvenTree/views.py:412 templates/InvenTree/settings/user.html:20 +#: InvenTree/views.py:411 templates/InvenTree/settings/user.html:20 msgid "Set Password" msgstr "" -#: InvenTree/views.py:434 +#: InvenTree/views.py:433 msgid "Password fields must match" msgstr "" -#: InvenTree/views.py:442 +#: InvenTree/views.py:441 msgid "Wrong password provided" msgstr "" -#: InvenTree/views.py:650 templates/navbar.html:160 +#: InvenTree/views.py:645 templates/navbar.html:160 msgid "System Information" msgstr "" -#: InvenTree/views.py:657 templates/navbar.html:171 +#: InvenTree/views.py:652 templates/navbar.html:171 msgid "About InvenTree" msgstr "" -#: build/api.py:51 part/api.py:156 stock/api.py:343 -msgid "Cascade" -msgstr "" - -#: build/api.py:64 build/models.py:261 -#: build/templates/build/build_base.html:191 +#: build/api.py:54 build/models.py:262 +#: build/templates/build/build_base.html:192 #: build/templates/build/detail.html:87 msgid "Parent Build" msgstr "" -#: build/api.py:89 order/api.py:92 templates/js/translated/table_filters.js:101 +#: build/api.py:58 build/api.py:625 order/api.py:396 order/api.py:611 +#: order/api.py:990 order/api.py:1187 +#: templates/js/translated/table_filters.js:372 +msgid "Include Variants" +msgstr "" + +#: build/api.py:93 +msgid "Ancestor Build" +msgstr "" + +#: build/api.py:112 order/api.py:90 +#: templates/js/translated/table_filters.js:101 #: templates/js/translated/table_filters.js:549 #: templates/js/translated/table_filters.js:633 #: templates/js/translated/table_filters.js:674 msgid "Assigned to me" msgstr "" -#: build/api.py:106 build/templates/build/build_base.html:205 +#: build/api.py:129 build/templates/build/build_base.html:206 #: build/templates/build/detail.html:115 #: report/templates/report/inventree_build_order_report.html:152 #: templates/js/translated/table_filters.js:552 msgid "Issued By" msgstr "" -#: build/api.py:125 +#: build/api.py:148 msgid "Assigned To" msgstr "" -#: build/api.py:301 +#: build/api.py:310 msgid "Build must be cancelled before it can be deleted" msgstr "" -#: build/api.py:345 build/serializers.py:1288 part/models.py:4265 +#: build/api.py:354 build/serializers.py:1342 part/models.py:4322 #: templates/js/translated/bom.js:997 templates/js/translated/bom.js:1037 -#: templates/js/translated/build.js:2702 +#: templates/js/translated/build.js:2711 #: templates/js/translated/table_filters.js:197 #: templates/js/translated/table_filters.js:586 msgid "Consumable" msgstr "" -#: build/api.py:346 build/serializers.py:1289 part/models.py:4259 +#: build/api.py:355 build/serializers.py:1343 part/models.py:4316 #: part/templates/part/upload_bom.html:58 templates/js/translated/bom.js:1001 -#: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2693 +#: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2702 #: templates/js/translated/table_filters.js:193 #: templates/js/translated/table_filters.js:222 #: templates/js/translated/table_filters.js:590 msgid "Optional" msgstr "" -#: build/api.py:347 common/models.py:1489 part/admin.py:91 part/admin.py:428 -#: part/models.py:1154 part/serializers.py:1575 +#: build/api.py:356 common/models.py:1558 part/admin.py:91 part/admin.py:428 +#: part/models.py:1215 part/serializers.py:1633 #: templates/js/translated/bom.js:1639 #: templates/js/translated/table_filters.js:337 #: templates/js/translated/table_filters.js:729 msgid "Assembly" msgstr "" -#: build/api.py:348 templates/js/translated/table_filters.js:415 +#: build/api.py:357 templates/js/translated/table_filters.js:415 #: templates/js/translated/table_filters.js:582 msgid "Tracked" msgstr "" -#: build/api.py:349 build/serializers.py:1290 part/models.py:1172 +#: build/api.py:358 build/serializers.py:1344 part/models.py:1233 #: templates/js/translated/table_filters.js:146 #: templates/js/translated/table_filters.js:779 msgid "Testable" msgstr "" -#: build/api.py:351 part/admin.py:144 templates/js/translated/build.js:1917 -#: templates/js/translated/build.js:2820 -#: templates/js/translated/sales_order.js:1965 +#: build/api.py:360 order/api.py:779 part/admin.py:144 +#: templates/js/translated/build.js:1920 templates/js/translated/build.js:2838 +#: templates/js/translated/sales_order.js:1946 #: templates/js/translated/table_filters.js:574 msgid "Allocated" msgstr "" -#: build/api.py:359 company/models.py:891 company/serializers.py:395 -#: company/templates/company/supplier_part.html:114 +#: build/api.py:368 company/models.py:888 company/serializers.py:399 +#: company/templates/company/supplier_part.html:115 #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:17 -#: templates/js/translated/bom.js:1162 templates/js/translated/build.js:2752 +#: templates/js/translated/bom.js:1162 templates/js/translated/build.js:2770 #: templates/js/translated/index.js:123 -#: templates/js/translated/model_renderers.js:235 +#: templates/js/translated/model_renderers.js:238 #: templates/js/translated/part.js:695 templates/js/translated/part.js:697 #: templates/js/translated/part.js:702 #: templates/js/translated/table_filters.js:347 @@ -816,16 +835,68 @@ msgstr "" msgid "Available" msgstr "" -#: build/models.py:86 build/templates/build/build_base.html:9 -#: build/templates/build/build_base.html:27 +#: build/api.py:640 build/models.py:268 build/serializers.py:1330 +#: build/templates/build/build_base.html:106 +#: build/templates/build/detail.html:29 company/models.py:1043 order/api.py:775 +#: order/api.py:1003 order/models.py:1519 order/models.py:1674 +#: order/models.py:1675 part/api.py:1495 part/api.py:1802 part/models.py:419 +#: part/models.py:3177 part/models.py:3321 part/models.py:3469 +#: part/models.py:3490 part/models.py:3512 part/models.py:3648 +#: part/models.py:3995 part/models.py:4158 part/models.py:4288 +#: part/models.py:4654 part/serializers.py:1245 part/serializers.py:1898 +#: part/templates/part/part_app_base.html:8 +#: part/templates/part/part_pricing.html:12 +#: part/templates/part/upload_bom.html:52 +#: report/templates/report/inventree_bill_of_materials_report.html:110 +#: report/templates/report/inventree_bill_of_materials_report.html:137 +#: report/templates/report/inventree_build_order_report.html:109 +#: report/templates/report/inventree_purchase_order_report.html:27 +#: report/templates/report/inventree_return_order_report.html:24 +#: report/templates/report/inventree_sales_order_report.html:27 +#: report/templates/report/inventree_sales_order_shipment_report.html:28 +#: report/templates/report/inventree_stock_location_report.html:102 +#: stock/serializers.py:112 stock/serializers.py:160 stock/serializers.py:456 +#: stock/serializers.py:947 templates/InvenTree/search.html:82 +#: templates/email/build_order_completed.html:17 +#: templates/email/build_order_required_stock.html:17 +#: templates/email/low_stock_notification.html:15 +#: templates/email/overdue_build_order.html:16 +#: templates/js/translated/barcode.js:577 templates/js/translated/bom.js:632 +#: templates/js/translated/bom.js:769 templates/js/translated/bom.js:905 +#: templates/js/translated/build.js:1005 templates/js/translated/build.js:1488 +#: templates/js/translated/build.js:1919 templates/js/translated/build.js:2337 +#: templates/js/translated/build.js:2514 templates/js/translated/company.js:349 +#: templates/js/translated/company.js:1117 +#: templates/js/translated/company.js:1272 +#: templates/js/translated/company.js:1560 templates/js/translated/index.js:109 +#: templates/js/translated/part.js:1950 templates/js/translated/part.js:2022 +#: templates/js/translated/part.js:2330 templates/js/translated/pricing.js:369 +#: templates/js/translated/purchase_order.js:734 +#: templates/js/translated/purchase_order.js:1350 +#: templates/js/translated/purchase_order.js:1902 +#: templates/js/translated/purchase_order.js:2061 +#: templates/js/translated/return_order.js:538 +#: templates/js/translated/return_order.js:708 +#: templates/js/translated/sales_order.js:1199 +#: templates/js/translated/sales_order.js:1608 +#: templates/js/translated/sales_order.js:1813 +#: templates/js/translated/stock.js:682 templates/js/translated/stock.js:848 +#: templates/js/translated/stock.js:1065 templates/js/translated/stock.js:2083 +#: templates/js/translated/stock.js:2942 templates/js/translated/stock.js:3175 +#: templates/js/translated/stock.js:3320 +msgid "Part" +msgstr "" + +#: build/api.py:662 build/models.py:88 build/templates/build/build_base.html:10 +#: build/templates/build/build_base.html:28 #: report/templates/report/inventree_build_order_report.html:105 -#: stock/serializers.py:84 templates/email/build_order_completed.html:16 +#: stock/serializers.py:85 templates/email/build_order_completed.html:16 #: templates/email/overdue_build_order.html:15 -#: templates/js/translated/build.js:1145 templates/js/translated/stock.js:2976 +#: templates/js/translated/build.js:1148 templates/js/translated/stock.js:2977 msgid "Build Order" msgstr "" -#: build/models.py:87 build/templates/build/build_base.html:13 +#: build/models.py:89 build/templates/build/build_base.html:14 #: build/templates/build/index.html:8 build/templates/build/index.html:12 #: order/templates/order/sales_order_detail.html:111 #: order/templates/order/so_sidebar.html:13 @@ -836,268 +907,216 @@ msgstr "" msgid "Build Orders" msgstr "" -#: build/models.py:135 +#: build/models.py:136 msgid "Assembly BOM has not been validated" msgstr "" -#: build/models.py:142 +#: build/models.py:143 msgid "Build order cannot be created for an inactive part" msgstr "" -#: build/models.py:149 +#: build/models.py:150 msgid "Build order cannot be created for an unlocked part" msgstr "" -#: build/models.py:163 +#: build/models.py:164 msgid "Invalid choice for parent build" msgstr "" -#: build/models.py:174 order/models.py:239 +#: build/models.py:175 order/models.py:236 msgid "Responsible user or group must be specified" msgstr "" -#: build/models.py:180 +#: build/models.py:181 msgid "Build order part cannot be changed" msgstr "" -#: build/models.py:241 +#: build/models.py:242 msgid "Build Order Reference" msgstr "" -#: build/models.py:242 build/serializers.py:1287 order/models.py:467 -#: order/models.py:978 order/models.py:1373 order/models.py:2135 -#: part/admin.py:414 part/models.py:4280 part/templates/part/upload_bom.html:54 +#: build/models.py:243 build/serializers.py:1341 order/models.py:479 +#: order/models.py:1005 order/models.py:1390 order/models.py:2174 +#: part/admin.py:414 part/models.py:4337 part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_bill_of_materials_report.html:139 #: report/templates/report/inventree_purchase_order_report.html:28 #: report/templates/report/inventree_return_order_report.html:26 #: report/templates/report/inventree_sales_order_report.html:28 #: templates/js/translated/bom.js:770 templates/js/translated/bom.js:973 -#: templates/js/translated/build.js:1011 templates/js/translated/build.js:2685 +#: templates/js/translated/build.js:1014 templates/js/translated/build.js:2694 #: templates/js/translated/order.js:316 templates/js/translated/pricing.js:386 -#: templates/js/translated/purchase_order.js:2135 +#: templates/js/translated/purchase_order.js:2119 #: templates/js/translated/return_order.js:727 -#: templates/js/translated/sales_order.js:1854 +#: templates/js/translated/sales_order.js:1835 msgid "Reference" msgstr "" -#: build/models.py:253 +#: build/models.py:254 msgid "Brief description of the build (optional)" msgstr "" -#: build/models.py:262 +#: build/models.py:263 msgid "BuildOrder to which this build is allocated" msgstr "" -#: build/models.py:267 build/serializers.py:1278 -#: build/templates/build/build_base.html:105 -#: build/templates/build/detail.html:29 company/models.py:1046 order/api.py:767 -#: order/models.py:1503 order/models.py:1658 order/models.py:1659 -#: part/api.py:1509 part/api.py:1813 part/models.py:424 part/models.py:3126 -#: part/models.py:3270 part/models.py:3418 part/models.py:3439 -#: part/models.py:3461 part/models.py:3597 part/models.py:3937 -#: part/models.py:4100 part/models.py:4231 part/models.py:4592 -#: part/serializers.py:1192 part/serializers.py:1836 -#: part/templates/part/part_app_base.html:8 -#: part/templates/part/part_pricing.html:12 -#: part/templates/part/upload_bom.html:52 -#: report/templates/report/inventree_bill_of_materials_report.html:110 -#: report/templates/report/inventree_bill_of_materials_report.html:137 -#: report/templates/report/inventree_build_order_report.html:109 -#: report/templates/report/inventree_purchase_order_report.html:27 -#: report/templates/report/inventree_return_order_report.html:24 -#: report/templates/report/inventree_sales_order_report.html:27 -#: report/templates/report/inventree_stock_location_report.html:102 -#: stock/serializers.py:111 stock/serializers.py:159 stock/serializers.py:446 -#: stock/serializers.py:916 templates/InvenTree/search.html:82 -#: templates/email/build_order_completed.html:17 -#: templates/email/build_order_required_stock.html:17 -#: templates/email/low_stock_notification.html:15 -#: templates/email/overdue_build_order.html:16 -#: templates/js/translated/barcode.js:577 templates/js/translated/bom.js:632 -#: templates/js/translated/bom.js:769 templates/js/translated/bom.js:905 -#: templates/js/translated/build.js:1002 templates/js/translated/build.js:1485 -#: templates/js/translated/build.js:1916 templates/js/translated/build.js:2334 -#: templates/js/translated/build.js:2507 templates/js/translated/company.js:348 -#: templates/js/translated/company.js:1116 -#: templates/js/translated/company.js:1271 -#: templates/js/translated/company.js:1559 templates/js/translated/index.js:109 -#: templates/js/translated/part.js:1950 templates/js/translated/part.js:2022 -#: templates/js/translated/part.js:2330 templates/js/translated/pricing.js:369 -#: templates/js/translated/purchase_order.js:751 -#: templates/js/translated/purchase_order.js:1367 -#: templates/js/translated/purchase_order.js:1918 -#: templates/js/translated/purchase_order.js:2077 -#: templates/js/translated/return_order.js:538 -#: templates/js/translated/return_order.js:708 -#: templates/js/translated/sales_order.js:300 -#: templates/js/translated/sales_order.js:1233 -#: templates/js/translated/sales_order.js:1634 -#: templates/js/translated/sales_order.js:1832 -#: templates/js/translated/stock.js:682 templates/js/translated/stock.js:848 -#: templates/js/translated/stock.js:1065 templates/js/translated/stock.js:2082 -#: templates/js/translated/stock.js:2941 templates/js/translated/stock.js:3174 -#: templates/js/translated/stock.js:3319 -msgid "Part" -msgstr "" - -#: build/models.py:275 +#: build/models.py:274 msgid "Select part to build" msgstr "" -#: build/models.py:280 +#: build/models.py:279 msgid "Sales Order Reference" msgstr "مرجع سفارش فروش" -#: build/models.py:284 +#: build/models.py:283 msgid "SalesOrder to which this build is allocated" msgstr "" -#: build/models.py:289 build/serializers.py:1048 -#: templates/js/translated/build.js:1904 -#: templates/js/translated/sales_order.js:1221 +#: build/models.py:288 build/serializers.py:1092 +#: templates/js/translated/build.js:1907 +#: templates/js/translated/sales_order.js:1187 msgid "Source Location" msgstr "منبع محل" -#: build/models.py:293 +#: build/models.py:292 msgid "Select location to take stock from for this build (leave blank to take from any stock location)" msgstr "" -#: build/models.py:298 +#: build/models.py:297 msgid "Destination Location" msgstr "مقصد" -#: build/models.py:302 +#: build/models.py:301 msgid "Select location where the completed items will be stored" msgstr "" -#: build/models.py:306 +#: build/models.py:305 msgid "Build Quantity" msgstr "" -#: build/models.py:309 +#: build/models.py:308 msgid "Number of stock items to build" msgstr "" -#: build/models.py:313 +#: build/models.py:312 msgid "Completed items" msgstr "" -#: build/models.py:315 +#: build/models.py:314 msgid "Number of stock items which have been completed" msgstr "" -#: build/models.py:319 +#: build/models.py:318 msgid "Build Status" msgstr "" -#: build/models.py:323 +#: build/models.py:322 msgid "Build status code" msgstr "" -#: build/models.py:332 build/serializers.py:302 build/serializers.py:1198 -#: order/serializers.py:670 stock/models.py:859 stock/serializers.py:76 -#: stock/serializers.py:1562 templates/js/translated/purchase_order.js:1129 +#: build/models.py:331 build/serializers.py:349 build/serializers.py:1243 +#: order/serializers.py:755 stock/models.py:936 stock/serializers.py:77 +#: stock/serializers.py:1593 templates/js/translated/purchase_order.js:1112 #: templates/js/translated/stock.js:1199 msgid "Batch Code" msgstr "" -#: build/models.py:336 build/serializers.py:303 +#: build/models.py:335 build/serializers.py:350 msgid "Batch code for this build output" msgstr "" -#: build/models.py:339 order/models.py:315 order/serializers.py:126 -#: part/models.py:1229 part/templates/part/part_base.html:319 +#: build/models.py:338 order/models.py:322 order/serializers.py:157 +#: part/models.py:1290 part/templates/part/part_base.html:327 #: templates/js/translated/return_order.js:338 -#: templates/js/translated/sales_order.js:863 +#: templates/js/translated/sales_order.js:822 msgid "Creation Date" msgstr "" -#: build/models.py:343 +#: build/models.py:342 msgid "Target completion date" msgstr "" -#: build/models.py:344 +#: build/models.py:343 msgid "Target date for build completion. Build will be overdue after this date." msgstr "" -#: build/models.py:347 order/models.py:526 order/models.py:2180 -#: templates/js/translated/build.js:2419 +#: build/models.py:346 order/models.py:538 order/models.py:2219 +#: templates/js/translated/build.js:2422 msgid "Completion Date" msgstr "" -#: build/models.py:353 +#: build/models.py:352 msgid "completed by" msgstr "" -#: build/models.py:361 templates/js/translated/build.js:2379 +#: build/models.py:360 templates/js/translated/build.js:2382 msgid "Issued by" msgstr "" -#: build/models.py:362 +#: build/models.py:361 msgid "User who issued this build order" msgstr "" -#: build/models.py:370 build/templates/build/build_base.html:212 -#: build/templates/build/detail.html:122 common/models.py:165 order/api.py:142 -#: order/models.py:333 order/templates/order/order_base.html:222 -#: order/templates/order/return_order_base.html:191 -#: order/templates/order/sales_order_base.html:235 part/models.py:1246 -#: part/templates/part/part_base.html:399 +#: build/models.py:369 build/templates/build/build_base.html:213 +#: build/templates/build/detail.html:122 common/models.py:168 order/api.py:140 +#: order/models.py:340 order/templates/order/order_base.html:231 +#: order/templates/order/return_order_base.html:192 +#: order/templates/order/sales_order_base.html:236 part/models.py:1307 +#: part/templates/part/part_base.html:407 #: report/templates/report/inventree_build_order_report.html:158 #: templates/InvenTree/settings/settings_staff_js.html:150 -#: templates/js/translated/build.js:2391 -#: templates/js/translated/purchase_order.js:1833 +#: templates/js/translated/build.js:2394 +#: templates/js/translated/purchase_order.js:1817 #: templates/js/translated/return_order.js:358 #: templates/js/translated/table_filters.js:551 msgid "Responsible" msgstr "" -#: build/models.py:371 +#: build/models.py:370 msgid "User or group responsible for this build order" msgstr "" -#: build/models.py:376 build/templates/build/detail.html:108 +#: build/models.py:375 build/templates/build/detail.html:108 #: company/templates/company/manufacturer_part.html:107 -#: company/templates/company/supplier_part.html:194 -#: order/templates/order/order_base.html:172 -#: order/templates/order/return_order_base.html:148 -#: order/templates/order/sales_order_base.html:187 -#: part/templates/part/part_base.html:392 stock/models.py:855 -#: stock/templates/stock/item_base.html:200 -#: templates/js/translated/company.js:1019 +#: company/templates/company/supplier_part.html:195 +#: order/templates/order/order_base.html:181 +#: order/templates/order/return_order_base.html:149 +#: order/templates/order/sales_order_base.html:188 +#: part/templates/part/part_base.html:400 stock/models.py:932 +#: stock/templates/stock/item_base.html:197 +#: templates/js/translated/company.js:1020 msgid "External Link" msgstr "" -#: build/models.py:377 common/models.py:3273 part/models.py:1058 -#: stock/models.py:855 +#: build/models.py:376 common/models.py:3334 part/models.py:1119 +#: stock/models.py:932 msgid "Link to external URL" msgstr "" -#: build/models.py:381 +#: build/models.py:380 msgid "Build Priority" msgstr "" -#: build/models.py:384 +#: build/models.py:383 msgid "Priority of this build order" msgstr "" -#: build/models.py:391 common/models.py:135 common/models.py:149 -#: order/admin.py:18 order/api.py:128 order/models.py:297 +#: build/models.py:390 common/models.py:138 common/models.py:152 +#: order/admin.py:18 order/api.py:126 order/models.py:304 #: templates/InvenTree/settings/settings_staff_js.html:146 -#: templates/js/translated/build.js:2316 -#: templates/js/translated/purchase_order.js:1780 +#: templates/js/translated/build.js:2319 +#: templates/js/translated/purchase_order.js:1764 #: templates/js/translated/return_order.js:317 -#: templates/js/translated/sales_order.js:842 +#: templates/js/translated/sales_order.js:801 #: templates/js/translated/table_filters.js:47 #: templates/project_code_data.html:6 msgid "Project Code" msgstr "" -#: build/models.py:392 +#: build/models.py:391 msgid "Project code for this build order" msgstr "" -#: build/models.py:651 build/models.py:778 +#: build/models.py:651 build/models.py:779 msgid "Failed to offload task to complete build allocations" msgstr "" @@ -1110,610 +1129,619 @@ msgstr "" msgid "A build order has been completed" msgstr "" -#: build/models.py:967 build/models.py:1055 +#: build/models.py:858 build/serializers.py:393 +msgid "Serial numbers must be provided for trackable parts" +msgstr "" + +#: build/models.py:969 build/models.py:1058 msgid "No build output specified" msgstr "" -#: build/models.py:970 +#: build/models.py:972 msgid "Build output is already completed" msgstr "" -#: build/models.py:973 +#: build/models.py:975 msgid "Build output does not match Build Order" msgstr "" -#: build/models.py:1059 build/serializers.py:235 build/serializers.py:284 -#: build/serializers.py:915 order/models.py:564 order/serializers.py:499 -#: order/serializers.py:665 part/serializers.py:1569 part/serializers.py:1999 -#: stock/models.py:700 stock/models.py:1520 stock/serializers.py:669 +#: build/models.py:1062 build/serializers.py:282 build/serializers.py:331 +#: build/serializers.py:959 order/models.py:586 order/serializers.py:584 +#: order/serializers.py:750 part/serializers.py:1627 part/serializers.py:2060 +#: stock/models.py:777 stock/models.py:1609 stock/serializers.py:696 msgid "Quantity must be greater than zero" msgstr "" -#: build/models.py:1064 build/serializers.py:240 +#: build/models.py:1067 build/serializers.py:287 msgid "Quantity cannot be greater than the output quantity" msgstr "" -#: build/models.py:1124 build/serializers.py:563 +#: build/models.py:1127 build/serializers.py:607 #, python-brace-format msgid "Build output {serial} has not passed all required tests" msgstr "" -#: build/models.py:1465 +#: build/models.py:1482 msgid "Build Order Line Item" msgstr "" -#: build/models.py:1490 +#: build/models.py:1507 msgid "Build object" msgstr "" -#: build/models.py:1504 build/models.py:1760 build/serializers.py:222 -#: build/serializers.py:269 build/serializers.py:1295 -#: build/templates/build/build_base.html:110 -#: build/templates/build/detail.html:34 common/models.py:2579 -#: order/models.py:1356 order/models.py:2041 order/serializers.py:1460 +#: build/models.py:1521 build/models.py:1787 build/serializers.py:269 +#: build/serializers.py:316 build/serializers.py:1349 +#: build/templates/build/build_base.html:111 +#: build/templates/build/detail.html:34 common/models.py:2643 +#: order/models.py:1373 order/models.py:2074 order/serializers.py:1586 #: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:413 -#: part/forms.py:48 part/models.py:3284 part/models.py:4253 -#: part/templates/part/part_pricing.html:16 +#: part/forms.py:48 part/models.py:3335 part/models.py:4310 +#: part/serializers.py:265 part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_bill_of_materials_report.html:138 #: report/templates/report/inventree_build_order_report.html:113 #: report/templates/report/inventree_purchase_order_report.html:29 #: report/templates/report/inventree_sales_order_report.html:29 +#: report/templates/report/inventree_sales_order_shipment_report.html:47 +#: report/templates/report/inventree_sales_order_shipment_report.html:49 #: report/templates/report/inventree_stock_location_report.html:104 #: report/templates/report/inventree_test_report.html:90 -#: report/templates/report/inventree_test_report.html:169 stock/admin.py:159 -#: stock/serializers.py:127 stock/serializers.py:167 stock/serializers.py:660 -#: stock/templates/stock/item_base.html:287 -#: stock/templates/stock/item_base.html:295 -#: stock/templates/stock/item_base.html:342 +#: report/templates/report/inventree_test_report.html:169 stock/admin.py:160 +#: stock/serializers.py:128 stock/serializers.py:168 stock/serializers.py:687 +#: stock/templates/stock/item_base.html:284 +#: stock/templates/stock/item_base.html:292 +#: stock/templates/stock/item_base.html:339 #: templates/email/build_order_completed.html:18 #: templates/js/translated/barcode.js:579 templates/js/translated/bom.js:771 -#: templates/js/translated/bom.js:981 templates/js/translated/build.js:522 -#: templates/js/translated/build.js:737 templates/js/translated/build.js:1542 -#: templates/js/translated/build.js:1919 templates/js/translated/build.js:2529 -#: templates/js/translated/company.js:1818 -#: templates/js/translated/model_renderers.js:237 +#: templates/js/translated/bom.js:981 templates/js/translated/build.js:525 +#: templates/js/translated/build.js:740 templates/js/translated/build.js:1545 +#: templates/js/translated/build.js:1922 templates/js/translated/build.js:2536 +#: templates/js/translated/company.js:1819 +#: templates/js/translated/model_renderers.js:240 #: templates/js/translated/order.js:329 templates/js/translated/part.js:968 -#: templates/js/translated/part.js:1818 templates/js/translated/part.js:3360 +#: templates/js/translated/part.js:1818 templates/js/translated/part.js:3376 #: templates/js/translated/pricing.js:381 #: templates/js/translated/pricing.js:474 #: templates/js/translated/pricing.js:522 #: templates/js/translated/pricing.js:616 -#: templates/js/translated/purchase_order.js:754 -#: templates/js/translated/purchase_order.js:1922 -#: templates/js/translated/purchase_order.js:2141 -#: templates/js/translated/sales_order.js:317 -#: templates/js/translated/sales_order.js:1235 -#: templates/js/translated/sales_order.js:1554 -#: templates/js/translated/sales_order.js:1644 -#: templates/js/translated/sales_order.js:1734 -#: templates/js/translated/sales_order.js:1860 +#: templates/js/translated/purchase_order.js:737 +#: templates/js/translated/purchase_order.js:1906 +#: templates/js/translated/purchase_order.js:2125 +#: templates/js/translated/sales_order.js:1201 +#: templates/js/translated/sales_order.js:1520 +#: templates/js/translated/sales_order.js:1625 +#: templates/js/translated/sales_order.js:1715 +#: templates/js/translated/sales_order.js:1841 #: templates/js/translated/stock.js:570 templates/js/translated/stock.js:708 -#: templates/js/translated/stock.js:879 templates/js/translated/stock.js:3105 -#: templates/js/translated/stock.js:3188 +#: templates/js/translated/stock.js:879 templates/js/translated/stock.js:3106 +#: templates/js/translated/stock.js:3189 msgid "Quantity" msgstr "" -#: build/models.py:1505 +#: build/models.py:1522 msgid "Required quantity for build order" msgstr "" -#: build/models.py:1585 +#: build/models.py:1602 msgid "Build item must specify a build output, as master part is marked as trackable" msgstr "" -#: build/models.py:1594 +#: build/models.py:1611 #, python-brace-format msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgstr "" -#: build/models.py:1604 order/models.py:1992 +#: build/models.py:1628 order/models.py:2025 msgid "Stock item is over-allocated" msgstr "" -#: build/models.py:1610 order/models.py:1995 +#: build/models.py:1634 order/models.py:2028 msgid "Allocation quantity must be greater than zero" msgstr "" -#: build/models.py:1616 +#: build/models.py:1640 msgid "Quantity must be 1 for serialized stock" msgstr "" -#: build/models.py:1675 +#: build/models.py:1699 msgid "Selected stock item does not match BOM line" msgstr "" -#: build/models.py:1747 build/serializers.py:895 order/serializers.py:1297 -#: order/serializers.py:1318 stock/models.py:376 stock/serializers.py:93 -#: stock/serializers.py:763 stock/serializers.py:1281 stock/serializers.py:1393 -#: stock/templates/stock/item_base.html:10 -#: stock/templates/stock/item_base.html:23 -#: stock/templates/stock/item_base.html:194 -#: templates/js/translated/build.js:1918 -#: templates/js/translated/sales_order.js:301 -#: templates/js/translated/sales_order.js:1234 -#: templates/js/translated/sales_order.js:1535 -#: templates/js/translated/sales_order.js:1540 -#: templates/js/translated/sales_order.js:1641 -#: templates/js/translated/sales_order.js:1728 +#: build/models.py:1774 build/serializers.py:939 order/serializers.py:1423 +#: order/serializers.py:1444 +#: report/templates/report/inventree_sales_order_shipment_report.html:29 +#: stock/models.py:382 stock/serializers.py:94 stock/serializers.py:794 +#: stock/serializers.py:1312 stock/serializers.py:1424 +#: stock/templates/stock/item_base.html:11 +#: stock/templates/stock/item_base.html:24 +#: stock/templates/stock/item_base.html:191 +#: templates/js/translated/build.js:1921 +#: templates/js/translated/sales_order.js:1200 +#: templates/js/translated/sales_order.js:1501 +#: templates/js/translated/sales_order.js:1506 +#: templates/js/translated/sales_order.js:1622 +#: templates/js/translated/sales_order.js:1709 #: templates/js/translated/stock.js:683 templates/js/translated/stock.js:849 -#: templates/js/translated/stock.js:3061 +#: templates/js/translated/stock.js:3062 msgid "Stock Item" msgstr "" -#: build/models.py:1748 +#: build/models.py:1775 msgid "Source stock item" msgstr "" -#: build/models.py:1761 +#: build/models.py:1788 msgid "Stock quantity to allocate to build" msgstr "" -#: build/models.py:1769 +#: build/models.py:1796 msgid "Install into" msgstr "" -#: build/models.py:1770 +#: build/models.py:1797 msgid "Destination stock item" msgstr "" -#: build/serializers.py:91 +#: build/serializers.py:108 msgid "Build Level" msgstr "" -#: build/serializers.py:99 build/serializers.py:1190 build/serializers.py:1279 -#: part/admin.py:41 part/admin.py:408 part/models.py:4102 part/stocktake.py:219 -#: stock/admin.py:156 +#: build/serializers.py:116 build/serializers.py:1235 build/serializers.py:1331 +#: part/admin.py:41 part/admin.py:408 part/models.py:4160 part/stocktake.py:219 +#: stock/admin.py:157 msgid "Part Name" msgstr "" -#: build/serializers.py:111 +#: build/serializers.py:128 msgid "Project Code Label" msgstr "" -#: build/serializers.py:172 build/serializers.py:924 -#: templates/js/translated/build.js:1042 templates/js/translated/build.js:1495 +#: build/serializers.py:134 +msgid "Create Child Builds" +msgstr "" + +#: build/serializers.py:135 +msgid "Automatically generate child build orders" +msgstr "" + +#: build/serializers.py:219 build/serializers.py:968 +#: templates/js/translated/build.js:1045 templates/js/translated/build.js:1498 msgid "Build Output" msgstr "" -#: build/serializers.py:184 +#: build/serializers.py:231 msgid "Build output does not match the parent build" msgstr "" -#: build/serializers.py:188 +#: build/serializers.py:235 msgid "Output part does not match BuildOrder part" msgstr "" -#: build/serializers.py:192 +#: build/serializers.py:239 msgid "This build output has already been completed" msgstr "" -#: build/serializers.py:203 +#: build/serializers.py:250 msgid "This build output is not fully allocated" msgstr "" -#: build/serializers.py:223 build/serializers.py:270 +#: build/serializers.py:270 build/serializers.py:317 msgid "Enter quantity for build output" msgstr "" -#: build/serializers.py:291 +#: build/serializers.py:338 msgid "Integer quantity required for trackable parts" msgstr "" -#: build/serializers.py:294 +#: build/serializers.py:341 msgid "Integer quantity required, as the bill of materials contains trackable parts" msgstr "" -#: build/serializers.py:309 order/serializers.py:678 order/serializers.py:1464 -#: stock/serializers.py:680 templates/js/translated/purchase_order.js:1154 +#: build/serializers.py:356 order/serializers.py:763 order/serializers.py:1590 +#: stock/serializers.py:707 templates/js/translated/purchase_order.js:1137 #: templates/js/translated/stock.js:373 templates/js/translated/stock.js:571 msgid "Serial Numbers" msgstr "" -#: build/serializers.py:310 +#: build/serializers.py:357 msgid "Enter serial numbers for build outputs" msgstr "" -#: build/serializers.py:315 build/serializers.py:456 build/serializers.py:528 -#: order/serializers.py:654 order/serializers.py:778 order/serializers.py:1781 -#: part/serializers.py:1212 stock/serializers.py:102 stock/serializers.py:691 -#: stock/serializers.py:851 stock/serializers.py:977 stock/serializers.py:1425 -#: stock/serializers.py:1681 stock/templates/stock/item_base.html:394 +#: build/serializers.py:362 build/serializers.py:500 build/serializers.py:572 +#: order/serializers.py:739 order/serializers.py:880 order/serializers.py:1933 +#: part/serializers.py:1265 stock/serializers.py:103 stock/serializers.py:718 +#: stock/serializers.py:882 stock/serializers.py:1008 stock/serializers.py:1456 +#: stock/serializers.py:1712 stock/templates/stock/item_base.html:391 #: templates/js/translated/barcode.js:578 -#: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1032 -#: templates/js/translated/build.js:1174 templates/js/translated/build.js:2544 -#: templates/js/translated/purchase_order.js:1210 -#: templates/js/translated/purchase_order.js:1320 -#: templates/js/translated/sales_order.js:1547 -#: templates/js/translated/sales_order.js:1655 -#: templates/js/translated/sales_order.js:1663 -#: templates/js/translated/sales_order.js:1742 +#: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1035 +#: templates/js/translated/build.js:1177 templates/js/translated/build.js:2551 +#: templates/js/translated/purchase_order.js:1193 +#: templates/js/translated/purchase_order.js:1303 +#: templates/js/translated/sales_order.js:1513 +#: templates/js/translated/sales_order.js:1636 +#: templates/js/translated/sales_order.js:1644 +#: templates/js/translated/sales_order.js:1723 #: templates/js/translated/stock.js:684 templates/js/translated/stock.js:850 -#: templates/js/translated/stock.js:1067 templates/js/translated/stock.js:2286 -#: templates/js/translated/stock.js:2955 +#: templates/js/translated/stock.js:1067 templates/js/translated/stock.js:2287 +#: templates/js/translated/stock.js:2956 msgid "Location" msgstr "" -#: build/serializers.py:316 +#: build/serializers.py:363 msgid "Stock location for build output" msgstr "" -#: build/serializers.py:330 +#: build/serializers.py:377 msgid "Auto Allocate Serial Numbers" msgstr "" -#: build/serializers.py:331 +#: build/serializers.py:378 msgid "Automatically allocate required items with matching serial numbers" msgstr "" -#: build/serializers.py:346 -msgid "Serial numbers must be provided for trackable parts" -msgstr "" - -#: build/serializers.py:371 stock/api.py:1031 +#: build/serializers.py:415 order/serializers.py:858 stock/api.py:1017 +#: stock/models.py:1632 msgid "The following serial numbers already exist or are invalid" msgstr "" -#: build/serializers.py:418 build/serializers.py:480 build/serializers.py:569 +#: build/serializers.py:462 build/serializers.py:524 build/serializers.py:613 msgid "A list of build outputs must be provided" msgstr "" -#: build/serializers.py:457 +#: build/serializers.py:501 msgid "Stock location for scrapped outputs" msgstr "" -#: build/serializers.py:463 +#: build/serializers.py:507 msgid "Discard Allocations" msgstr "" -#: build/serializers.py:464 +#: build/serializers.py:508 msgid "Discard any stock allocations for scrapped outputs" msgstr "" -#: build/serializers.py:469 +#: build/serializers.py:513 msgid "Reason for scrapping build output(s)" msgstr "" -#: build/serializers.py:529 +#: build/serializers.py:573 msgid "Location for completed build outputs" msgstr "" -#: build/serializers.py:535 build/templates/build/build_base.html:159 -#: build/templates/build/detail.html:62 order/models.py:476 -#: order/models.py:1002 order/models.py:2159 order/serializers.py:686 -#: stock/admin.py:164 stock/serializers.py:1028 stock/serializers.py:1569 -#: stock/templates/stock/item_base.html:427 -#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2363 -#: templates/js/translated/purchase_order.js:1371 -#: templates/js/translated/purchase_order.js:1792 +#: build/serializers.py:579 build/templates/build/build_base.html:160 +#: build/templates/build/detail.html:62 order/models.py:488 +#: order/models.py:1029 order/models.py:2198 order/serializers.py:771 +#: stock/admin.py:165 stock/serializers.py:581 stock/serializers.py:1059 +#: stock/serializers.py:1600 stock/templates/stock/item_base.html:424 +#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2366 +#: templates/js/translated/purchase_order.js:1354 +#: templates/js/translated/purchase_order.js:1776 #: templates/js/translated/return_order.js:330 -#: templates/js/translated/sales_order.js:855 -#: templates/js/translated/stock.js:2261 templates/js/translated/stock.js:3079 -#: templates/js/translated/stock.js:3204 +#: templates/js/translated/sales_order.js:814 +#: templates/js/translated/stock.js:2262 templates/js/translated/stock.js:3080 +#: templates/js/translated/stock.js:3205 msgid "Status" msgstr "" -#: build/serializers.py:541 +#: build/serializers.py:585 msgid "Accept Incomplete Allocation" msgstr "" -#: build/serializers.py:542 +#: build/serializers.py:586 msgid "Complete outputs if stock has not been fully allocated" msgstr "" -#: build/serializers.py:654 +#: build/serializers.py:698 msgid "Consume Allocated Stock" msgstr "" -#: build/serializers.py:655 +#: build/serializers.py:699 msgid "Consume any stock which has already been allocated to this build" msgstr "" -#: build/serializers.py:661 +#: build/serializers.py:705 msgid "Remove Incomplete Outputs" msgstr "" -#: build/serializers.py:662 +#: build/serializers.py:706 msgid "Delete any build outputs which have not been completed" msgstr "" -#: build/serializers.py:689 +#: build/serializers.py:733 msgid "Not permitted" msgstr "" -#: build/serializers.py:690 +#: build/serializers.py:734 msgid "Accept as consumed by this build order" msgstr "" -#: build/serializers.py:691 +#: build/serializers.py:735 msgid "Deallocate before completing this build order" msgstr "" -#: build/serializers.py:721 +#: build/serializers.py:765 msgid "Overallocated Stock" msgstr "" -#: build/serializers.py:723 +#: build/serializers.py:767 msgid "How do you want to handle extra stock items assigned to the build order" msgstr "" -#: build/serializers.py:733 +#: build/serializers.py:777 msgid "Some stock items have been overallocated" msgstr "" -#: build/serializers.py:738 +#: build/serializers.py:782 msgid "Accept Unallocated" msgstr "" -#: build/serializers.py:739 +#: build/serializers.py:783 msgid "Accept that stock items have not been fully allocated to this build order" msgstr "" -#: build/serializers.py:749 templates/js/translated/build.js:316 +#: build/serializers.py:793 templates/js/translated/build.js:319 msgid "Required stock has not been fully allocated" msgstr "" -#: build/serializers.py:754 order/serializers.py:345 order/serializers.py:1365 +#: build/serializers.py:798 order/serializers.py:430 order/serializers.py:1491 msgid "Accept Incomplete" msgstr "" -#: build/serializers.py:755 +#: build/serializers.py:799 msgid "Accept that the required number of build outputs have not been completed" msgstr "" -#: build/serializers.py:765 templates/js/translated/build.js:320 +#: build/serializers.py:809 templates/js/translated/build.js:323 msgid "Required build quantity has not been completed" msgstr "" -#: build/serializers.py:774 +#: build/serializers.py:818 msgid "Build order has open child build orders" msgstr "" -#: build/serializers.py:777 +#: build/serializers.py:821 msgid "Build order must be in production state" msgstr "" -#: build/serializers.py:780 templates/js/translated/build.js:304 +#: build/serializers.py:824 templates/js/translated/build.js:307 msgid "Build order has incomplete outputs" msgstr "" -#: build/serializers.py:818 +#: build/serializers.py:862 msgid "Build Line" msgstr "" -#: build/serializers.py:828 +#: build/serializers.py:872 msgid "Build output" msgstr "" -#: build/serializers.py:836 +#: build/serializers.py:880 msgid "Build output must point to the same build" msgstr "" -#: build/serializers.py:872 +#: build/serializers.py:916 msgid "Build Line Item" msgstr "" -#: build/serializers.py:886 +#: build/serializers.py:930 msgid "bom_item.part must point to the same part as the build order" msgstr "" -#: build/serializers.py:901 stock/serializers.py:1294 +#: build/serializers.py:945 stock/serializers.py:1325 msgid "Item must be in stock" msgstr "" -#: build/serializers.py:949 order/serializers.py:1351 +#: build/serializers.py:993 order/serializers.py:1477 #, python-brace-format msgid "Available quantity ({q}) exceeded" msgstr "" -#: build/serializers.py:955 +#: build/serializers.py:999 msgid "Build output must be specified for allocation of tracked parts" msgstr "" -#: build/serializers.py:962 +#: build/serializers.py:1006 msgid "Build output cannot be specified for allocation of untracked parts" msgstr "" -#: build/serializers.py:986 order/serializers.py:1610 +#: build/serializers.py:1030 order/serializers.py:1750 msgid "Allocation items must be provided" msgstr "" -#: build/serializers.py:1049 +#: build/serializers.py:1093 msgid "Stock location where parts are to be sourced (leave blank to take from any location)" msgstr "" -#: build/serializers.py:1057 +#: build/serializers.py:1101 msgid "Exclude Location" msgstr "" -#: build/serializers.py:1058 +#: build/serializers.py:1102 msgid "Exclude stock items from this selected location" msgstr "" -#: build/serializers.py:1063 +#: build/serializers.py:1107 msgid "Interchangeable Stock" msgstr "" -#: build/serializers.py:1064 +#: build/serializers.py:1108 msgid "Stock items in multiple locations can be used interchangeably" msgstr "" -#: build/serializers.py:1069 +#: build/serializers.py:1113 msgid "Substitute Stock" msgstr "" -#: build/serializers.py:1070 +#: build/serializers.py:1114 msgid "Allow allocation of substitute parts" msgstr "" -#: build/serializers.py:1075 +#: build/serializers.py:1119 msgid "Optional Items" msgstr "" -#: build/serializers.py:1076 +#: build/serializers.py:1120 msgid "Allocate optional BOM items to build order" msgstr "" -#: build/serializers.py:1098 +#: build/serializers.py:1143 msgid "Failed to start auto-allocation task" msgstr "" -#: build/serializers.py:1181 +#: build/serializers.py:1226 stock/serializers.py:585 msgid "Supplier Part Number" msgstr "" -#: build/serializers.py:1182 company/models.py:506 +#: build/serializers.py:1227 company/models.py:503 stock/serializers.py:591 msgid "Manufacturer Part Number" msgstr "" -#: build/serializers.py:1183 stock/admin.py:53 stock/admin.py:175 -#: stock/serializers.py:457 +#: build/serializers.py:1228 stock/admin.py:53 stock/admin.py:176 +#: stock/serializers.py:467 msgid "Location Name" msgstr "" -#: build/serializers.py:1184 +#: build/serializers.py:1229 build/serializers.py:1327 msgid "Build Reference" msgstr "" -#: build/serializers.py:1185 +#: build/serializers.py:1230 msgid "BOM Reference" msgstr "" -#: build/serializers.py:1186 company/models.py:852 -#: company/templates/company/supplier_part.html:160 order/serializers.py:690 -#: stock/admin.py:228 stock/models.py:818 stock/serializers.py:1579 -#: stock/templates/stock/item_base.html:240 -#: templates/js/translated/company.js:1646 -#: templates/js/translated/purchase_order.js:1169 -#: templates/js/translated/purchase_order.js:1332 +#: build/serializers.py:1231 company/models.py:849 +#: company/templates/company/supplier_part.html:161 order/serializers.py:775 +#: stock/admin.py:229 stock/models.py:895 stock/serializers.py:1610 +#: stock/templates/stock/item_base.html:237 +#: templates/js/translated/company.js:1647 +#: templates/js/translated/purchase_order.js:1152 +#: templates/js/translated/purchase_order.js:1315 #: templates/js/translated/stock.js:1214 templates/js/translated/stock.js:1246 -#: templates/js/translated/stock.js:2509 +#: templates/js/translated/stock.js:2510 msgid "Packaging" msgstr "" -#: build/serializers.py:1189 part/admin.py:39 part/admin.py:398 -#: part/models.py:4101 part/stocktake.py:218 stock/admin.py:152 +#: build/serializers.py:1234 part/admin.py:39 part/admin.py:398 +#: part/models.py:4159 part/stocktake.py:218 stock/admin.py:153 msgid "Part ID" msgstr "" -#: build/serializers.py:1191 build/serializers.py:1280 part/admin.py:402 -#: part/models.py:4103 +#: build/serializers.py:1236 build/serializers.py:1332 part/admin.py:402 +#: part/models.py:4161 msgid "Part IPN" msgstr "" -#: build/serializers.py:1192 build/serializers.py:1282 part/admin.py:45 +#: build/serializers.py:1237 build/serializers.py:1334 part/admin.py:45 #: part/stocktake.py:220 msgid "Part Description" msgstr "" -#: build/serializers.py:1195 +#: build/serializers.py:1240 msgid "BOM Part ID" msgstr "" -#: build/serializers.py:1196 +#: build/serializers.py:1241 msgid "BOM Part Name" msgstr "" -#: build/serializers.py:1199 +#: build/serializers.py:1244 #: report/templates/report/inventree_return_order_report.html:25 -#: report/templates/report/inventree_test_report.html:88 stock/models.py:845 -#: stock/serializers.py:151 stock/templates/stock/item_base.html:311 -#: templates/js/translated/build.js:520 templates/js/translated/build.js:1540 -#: templates/js/translated/build.js:2527 -#: templates/js/translated/model_renderers.js:231 +#: report/templates/report/inventree_sales_order_shipment_report.html:45 +#: report/templates/report/inventree_test_report.html:88 stock/models.py:922 +#: stock/serializers.py:152 stock/templates/stock/item_base.html:308 +#: templates/js/translated/build.js:523 templates/js/translated/build.js:1543 +#: templates/js/translated/build.js:2534 +#: templates/js/translated/model_renderers.js:234 #: templates/js/translated/return_order.js:539 #: templates/js/translated/return_order.js:722 -#: templates/js/translated/sales_order.js:315 -#: templates/js/translated/sales_order.js:1647 -#: templates/js/translated/sales_order.js:1732 +#: templates/js/translated/sales_order.js:1628 +#: templates/js/translated/sales_order.js:1713 #: templates/js/translated/stock.js:602 msgid "Serial Number" msgstr "" -#: build/serializers.py:1212 stock/serializers.py:593 -#: templates/js/translated/build.js:1017 templates/js/translated/build.js:1164 -#: templates/js/translated/build.js:2516 +#: build/serializers.py:1257 stock/serializers.py:620 +#: templates/js/translated/build.js:1020 templates/js/translated/build.js:1167 +#: templates/js/translated/build.js:2523 msgid "Allocated Quantity" msgstr "" -#: build/serializers.py:1213 stock/templates/stock/item_base.html:340 +#: build/serializers.py:1258 stock/templates/stock/item_base.html:337 msgid "Available Quantity" msgstr "" -#: build/serializers.py:1283 +#: build/serializers.py:1335 msgid "Part Category ID" msgstr "" -#: build/serializers.py:1284 +#: build/serializers.py:1336 msgid "Part Category Name" msgstr "" -#: build/serializers.py:1291 common/models.py:1513 part/admin.py:113 -#: part/models.py:1166 templates/js/translated/table_filters.js:150 +#: build/serializers.py:1345 common/models.py:1582 part/admin.py:113 +#: part/models.py:1227 templates/js/translated/build.js:2738 +#: templates/js/translated/table_filters.js:150 #: templates/js/translated/table_filters.js:230 #: templates/js/translated/table_filters.js:783 msgid "Trackable" msgstr "" -#: build/serializers.py:1292 +#: build/serializers.py:1346 msgid "Inherited" msgstr "" -#: build/serializers.py:1293 part/models.py:4313 +#: build/serializers.py:1347 part/models.py:4370 #: part/templates/part/upload_bom.html:56 templates/js/translated/bom.js:1046 -#: templates/js/translated/build.js:2711 +#: templates/js/translated/build.js:2720 msgid "Allow Variants" msgstr "" -#: build/serializers.py:1297 part/models.py:4110 part/models.py:4584 +#: build/serializers.py:1351 part/models.py:4168 part/models.py:4646 #: stock/api.py:794 msgid "BOM Item" msgstr "" -#: build/serializers.py:1306 build/templates/build/detail.html:236 +#: build/serializers.py:1370 build/templates/build/detail.html:236 #: build/templates/build/sidebar.html:16 templates/js/translated/index.js:130 msgid "Allocated Stock" msgstr "" -#: build/serializers.py:1311 order/serializers.py:1175 part/admin.py:132 -#: part/bom.py:181 part/serializers.py:899 part/serializers.py:1602 -#: part/templates/part/part_base.html:210 templates/js/translated/bom.js:1208 -#: templates/js/translated/build.js:2804 templates/js/translated/part.js:712 +#: build/serializers.py:1375 order/serializers.py:1209 part/admin.py:132 +#: part/bom.py:186 part/serializers.py:951 part/serializers.py:1660 +#: part/templates/part/part_base.html:211 templates/js/translated/bom.js:1208 +#: templates/js/translated/build.js:2822 templates/js/translated/part.js:712 #: templates/js/translated/part.js:2155 #: templates/js/translated/table_filters.js:177 msgid "On Order" msgstr "" -#: build/serializers.py:1316 order/serializers.py:1176 part/serializers.py:1604 -#: templates/js/translated/build.js:2808 +#: build/serializers.py:1380 order/serializers.py:1210 part/serializers.py:1662 +#: templates/js/translated/build.js:2826 #: templates/js/translated/table_filters.js:367 msgid "In Production" msgstr "" -#: build/serializers.py:1321 part/bom.py:180 part/serializers.py:1629 -#: part/templates/part/part_base.html:192 -#: templates/js/translated/sales_order.js:1929 -msgid "Available Stock" -msgstr "" - -#: build/serializers.py:1325 -msgid "Available Substitute Stock" -msgstr "" - -#: build/serializers.py:1326 -msgid "Available Variant Stock" -msgstr "" - -#: build/serializers.py:1327 -msgid "Total Available Stock" -msgstr "" - -#: build/serializers.py:1328 part/serializers.py:906 +#: build/serializers.py:1384 part/serializers.py:958 msgid "External Stock" msgstr "" -#: build/status_codes.py:11 generic/states/tests.py:17 order/status_codes.py:12 -#: order/status_codes.py:42 order/status_codes.py:74 order/status_codes.py:98 +#: build/serializers.py:1385 part/bom.py:185 part/serializers.py:1687 +#: part/templates/part/part_base.html:193 +#: templates/js/translated/sales_order.js:1910 +msgid "Available Stock" +msgstr "" + +#: build/serializers.py:1386 +msgid "Available Substitute Stock" +msgstr "" + +#: build/serializers.py:1387 +msgid "Available Variant Stock" +msgstr "" + +#: build/status_codes.py:11 generic/states/tests.py:21 +#: generic/states/tests.py:131 order/status_codes.py:12 +#: order/status_codes.py:44 order/status_codes.py:76 order/status_codes.py:102 #: templates/js/translated/table_filters.js:601 msgid "Pending" msgstr "" @@ -1722,21 +1750,21 @@ msgstr "" msgid "Production" msgstr "" -#: build/status_codes.py:13 order/status_codes.py:14 order/status_codes.py:49 -#: order/status_codes.py:79 +#: build/status_codes.py:13 order/status_codes.py:14 order/status_codes.py:51 +#: order/status_codes.py:81 msgid "On Hold" msgstr "" -#: build/status_codes.py:14 order/status_codes.py:16 order/status_codes.py:51 -#: order/status_codes.py:82 +#: build/status_codes.py:14 order/status_codes.py:16 order/status_codes.py:53 +#: order/status_codes.py:84 msgid "Cancelled" msgstr "" -#: build/status_codes.py:15 generic/states/tests.py:19 importer/models.py:509 -#: importer/status_codes.py:19 order/status_codes.py:15 -#: order/status_codes.py:50 order/status_codes.py:81 -#: order/templates/order/order_base.html:163 -#: order/templates/order/sales_order_base.html:168 report/models.py:443 +#: build/status_codes.py:15 generic/states/tests.py:23 importer/models.py:518 +#: importer/status_codes.py:27 order/status_codes.py:15 +#: order/status_codes.py:52 order/status_codes.py:83 +#: order/templates/order/order_base.html:172 +#: order/templates/order/sales_order_base.html:169 report/models.py:451 msgid "Complete" msgstr "" @@ -1744,165 +1772,162 @@ msgstr "" msgid "Stock required for build order" msgstr "" -#: build/tasks.py:201 +#: build/tasks.py:260 msgid "Overdue Build Order" msgstr "" -#: build/tasks.py:206 +#: build/tasks.py:265 #, python-brace-format msgid "Build order {bo} is now overdue" msgstr "" -#: build/templates/build/build_base.html:18 +#: build/templates/build/build_base.html:19 msgid "Part thumbnail" msgstr "" -#: build/templates/build/build_base.html:38 -#: company/templates/company/supplier_part.html:35 -#: order/templates/order/order_base.html:29 -#: order/templates/order/return_order_base.html:38 -#: order/templates/order/sales_order_base.html:38 -#: part/templates/part/part_base.html:41 -#: stock/templates/stock/item_base.html:40 -#: stock/templates/stock/location.html:52 +#: build/templates/build/build_base.html:39 +#: company/templates/company/supplier_part.html:36 +#: order/templates/order/order_base.html:30 +#: order/templates/order/return_order_base.html:39 +#: order/templates/order/sales_order_base.html:39 +#: part/templates/part/part_base.html:42 +#: stock/templates/stock/item_base.html:41 +#: stock/templates/stock/location.html:53 #: templates/js/translated/filters.js:338 msgid "Barcode actions" msgstr "" -#: build/templates/build/build_base.html:42 -#: company/templates/company/supplier_part.html:39 -#: order/templates/order/order_base.html:33 -#: order/templates/order/return_order_base.html:42 -#: order/templates/order/sales_order_base.html:42 -#: part/templates/part/part_base.html:44 -#: stock/templates/stock/item_base.html:44 -#: stock/templates/stock/location.html:54 templates/qr_button.html:1 +#: build/templates/build/build_base.html:43 +#: company/templates/company/supplier_part.html:40 +#: order/templates/order/order_base.html:34 +#: order/templates/order/return_order_base.html:43 +#: order/templates/order/sales_order_base.html:43 +#: part/templates/part/part_base.html:45 +#: stock/templates/stock/item_base.html:45 +#: stock/templates/stock/location.html:55 templates/qr_button.html:1 msgid "Show QR Code" msgstr "" -#: build/templates/build/build_base.html:45 -#: company/templates/company/supplier_part.html:41 -#: order/templates/order/order_base.html:36 -#: order/templates/order/return_order_base.html:45 -#: order/templates/order/sales_order_base.html:45 -#: part/templates/part/part_base.html:47 -#: stock/templates/stock/item_base.html:47 -#: stock/templates/stock/location.html:56 +#: build/templates/build/build_base.html:46 +#: company/templates/company/supplier_part.html:42 +#: order/templates/order/order_base.html:37 +#: order/templates/order/return_order_base.html:46 +#: order/templates/order/sales_order_base.html:46 +#: part/templates/part/part_base.html:48 +#: stock/templates/stock/item_base.html:48 +#: stock/templates/stock/location.html:57 #: templates/js/translated/barcode.js:527 #: templates/js/translated/barcode.js:532 msgid "Unlink Barcode" msgstr "" -#: build/templates/build/build_base.html:47 -#: company/templates/company/supplier_part.html:43 -#: order/templates/order/order_base.html:38 -#: order/templates/order/return_order_base.html:47 -#: order/templates/order/sales_order_base.html:47 -#: part/templates/part/part_base.html:49 -#: stock/templates/stock/item_base.html:49 -#: stock/templates/stock/location.html:58 +#: build/templates/build/build_base.html:48 +#: company/templates/company/supplier_part.html:44 +#: order/templates/order/order_base.html:39 +#: order/templates/order/return_order_base.html:48 +#: order/templates/order/sales_order_base.html:48 +#: part/templates/part/part_base.html:50 +#: stock/templates/stock/item_base.html:50 +#: stock/templates/stock/location.html:59 msgid "Link Barcode" msgstr "" -#: build/templates/build/build_base.html:56 -#: order/templates/order/order_base.html:46 -#: order/templates/order/return_order_base.html:55 -#: order/templates/order/sales_order_base.html:55 +#: build/templates/build/build_base.html:57 +#: order/templates/order/order_base.html:47 +#: order/templates/order/return_order_base.html:56 +#: order/templates/order/sales_order_base.html:56 msgid "Print actions" msgstr "" -#: build/templates/build/build_base.html:60 +#: build/templates/build/build_base.html:61 msgid "Print build order report" msgstr "" -#: build/templates/build/build_base.html:67 +#: build/templates/build/build_base.html:68 msgid "Build actions" msgstr "" -#: build/templates/build/build_base.html:71 +#: build/templates/build/build_base.html:72 msgid "Edit Build" msgstr "" -#: build/templates/build/build_base.html:73 +#: build/templates/build/build_base.html:74 msgid "Duplicate Build" msgstr "" -#: build/templates/build/build_base.html:76 +#: build/templates/build/build_base.html:77 msgid "Hold Build" msgstr "" -#: build/templates/build/build_base.html:79 +#: build/templates/build/build_base.html:80 msgid "Cancel Build" msgstr "" -#: build/templates/build/build_base.html:82 +#: build/templates/build/build_base.html:83 msgid "Delete Build" msgstr "" -#: build/templates/build/build_base.html:87 -msgid "Isueue Build" -msgstr "" - #: build/templates/build/build_base.html:88 +#: build/templates/build/build_base.html:89 msgid "Issue Build" msgstr "" -#: build/templates/build/build_base.html:91 #: build/templates/build/build_base.html:92 +#: build/templates/build/build_base.html:93 msgid "Complete Build" msgstr "" -#: build/templates/build/build_base.html:115 +#: build/templates/build/build_base.html:116 msgid "Build Description" msgstr "" -#: build/templates/build/build_base.html:125 +#: build/templates/build/build_base.html:126 msgid "No build outputs have been created for this build order" msgstr "" -#: build/templates/build/build_base.html:132 +#: build/templates/build/build_base.html:133 msgid "Build Order is ready to mark as completed" msgstr "" -#: build/templates/build/build_base.html:137 +#: build/templates/build/build_base.html:138 msgid "Build Order cannot be completed as outstanding outputs remain" msgstr "" -#: build/templates/build/build_base.html:142 +#: build/templates/build/build_base.html:143 msgid "Required build quantity has not yet been completed" msgstr "" -#: build/templates/build/build_base.html:147 +#: build/templates/build/build_base.html:148 msgid "Stock has not been fully allocated to this Build Order" msgstr "" -#: build/templates/build/build_base.html:168 -#: build/templates/build/detail.html:138 order/models.py:308 -#: order/models.py:1391 order/serializers.py:174 -#: order/templates/order/order_base.html:191 -#: order/templates/order/return_order_base.html:167 -#: order/templates/order/sales_order_base.html:199 +#: build/templates/build/build_base.html:169 +#: build/templates/build/detail.html:138 order/models.py:315 +#: order/models.py:1408 order/serializers.py:254 +#: order/templates/order/order_base.html:200 +#: order/templates/order/return_order_base.html:168 +#: order/templates/order/sales_order_base.html:200 #: report/templates/report/inventree_build_order_report.html:125 -#: templates/js/translated/build.js:2411 templates/js/translated/part.js:1837 -#: templates/js/translated/purchase_order.js:1809 -#: templates/js/translated/purchase_order.js:2217 +#: templates/js/translated/build.js:2414 templates/js/translated/part.js:1837 +#: templates/js/translated/purchase_order.js:1793 +#: templates/js/translated/purchase_order.js:2201 #: templates/js/translated/return_order.js:346 #: templates/js/translated/return_order.js:749 -#: templates/js/translated/sales_order.js:871 -#: templates/js/translated/sales_order.js:1903 +#: templates/js/translated/sales_order.js:830 +#: templates/js/translated/sales_order.js:1884 msgid "Target Date" msgstr "" -#: build/templates/build/build_base.html:173 +#: build/templates/build/build_base.html:174 #, python-format msgid "This build was due on %(target)s" msgstr "" -#: build/templates/build/build_base.html:173 -#: build/templates/build/build_base.html:230 -#: order/templates/order/order_base.html:127 -#: order/templates/order/return_order_base.html:120 -#: order/templates/order/sales_order_base.html:129 +#: build/templates/build/build_base.html:174 +#: build/templates/build/build_base.html:231 +#: order/templates/order/order_base.html:128 +#: order/templates/order/return_order_base.html:121 +#: order/templates/order/sales_order_base.html:130 #: templates/js/translated/table_filters.js:97 #: templates/js/translated/table_filters.js:545 #: templates/js/translated/table_filters.js:629 @@ -1910,49 +1935,50 @@ msgstr "" msgid "Overdue" msgstr "" -#: build/templates/build/build_base.html:185 +#: build/templates/build/build_base.html:186 #: build/templates/build/detail.html:67 build/templates/build/sidebar.html:13 msgid "Completed Outputs" msgstr "" -#: build/templates/build/build_base.html:198 -#: build/templates/build/detail.html:101 order/api.py:1406 order/models.py:892 -#: order/models.py:1650 order/models.py:1765 order/models.py:1924 -#: order/templates/order/sales_order_base.html:9 -#: order/templates/order/sales_order_base.html:28 +#: build/templates/build/build_base.html:199 +#: build/templates/build/detail.html:101 order/api.py:1528 order/models.py:914 +#: order/models.py:1666 order/models.py:1794 order/models.py:1957 +#: order/templates/order/sales_order_base.html:10 +#: order/templates/order/sales_order_base.html:29 #: report/templates/report/inventree_build_order_report.html:135 #: report/templates/report/inventree_sales_order_report.html:14 -#: stock/templates/stock/item_base.html:369 +#: report/templates/report/inventree_sales_order_shipment_report.html:15 +#: stock/templates/stock/item_base.html:366 #: templates/email/overdue_sales_order.html:15 -#: templates/js/translated/pricing.js:929 -#: templates/js/translated/sales_order.js:805 -#: templates/js/translated/sales_order.js:1028 -#: templates/js/translated/stock.js:3008 +#: templates/js/translated/pricing.js:927 +#: templates/js/translated/sales_order.js:764 +#: templates/js/translated/sales_order.js:1001 +#: templates/js/translated/stock.js:3009 msgid "Sales Order" msgstr "" -#: build/templates/build/build_base.html:219 -#: build/templates/build/detail.html:94 templates/js/translated/build.js:2328 +#: build/templates/build/build_base.html:220 +#: build/templates/build/detail.html:94 templates/js/translated/build.js:2331 msgid "Priority" msgstr "" -#: build/templates/build/build_base.html:267 +#: build/templates/build/build_base.html:268 msgid "Issue Build Order" msgstr "" -#: build/templates/build/build_base.html:271 +#: build/templates/build/build_base.html:272 msgid "Issue this Build Order?" msgstr "" -#: build/templates/build/build_base.html:302 +#: build/templates/build/build_base.html:303 msgid "Delete Build Order" msgstr "" -#: build/templates/build/build_base.html:312 +#: build/templates/build/build_base.html:313 msgid "Build Order QR Code" msgstr "" -#: build/templates/build/build_base.html:324 +#: build/templates/build/build_base.html:325 msgid "Link Barcode to Build Order" msgstr "" @@ -1968,8 +1994,9 @@ msgstr "" msgid "Stock can be taken from any available location." msgstr "" -#: build/templates/build/detail.html:49 order/models.py:1532 -#: templates/js/translated/purchase_order.js:2259 +#: build/templates/build/detail.html:49 order/models.py:548 +#: order/models.py:1548 order/templates/order/order_base.html:135 +#: templates/js/translated/purchase_order.js:2243 msgid "Destination" msgstr "" @@ -1981,23 +2008,24 @@ msgstr "" msgid "Allocated Parts" msgstr "" -#: build/templates/build/detail.html:80 stock/admin.py:162 -#: stock/templates/stock/item_base.html:162 -#: templates/js/translated/build.js:1553 -#: templates/js/translated/model_renderers.js:242 -#: templates/js/translated/purchase_order.js:1326 +#: build/templates/build/detail.html:80 +#: report/templates/report/inventree_sales_order_shipment_report.html:47 +#: stock/admin.py:163 stock/templates/stock/item_base.html:159 +#: templates/js/translated/build.js:1556 +#: templates/js/translated/model_renderers.js:245 +#: templates/js/translated/purchase_order.js:1309 #: templates/js/translated/stock.js:1139 templates/js/translated/stock.js:1240 -#: templates/js/translated/stock.js:2275 templates/js/translated/stock.js:3211 +#: templates/js/translated/stock.js:2276 templates/js/translated/stock.js:3212 #: templates/js/translated/table_filters.js:320 #: templates/js/translated/table_filters.js:411 msgid "Batch" msgstr "" #: build/templates/build/detail.html:133 -#: order/templates/order/order_base.html:178 -#: order/templates/order/return_order_base.html:154 -#: order/templates/order/sales_order_base.html:193 -#: templates/js/translated/build.js:2371 +#: order/templates/order/order_base.html:187 +#: order/templates/order/return_order_base.html:155 +#: order/templates/order/sales_order_base.html:194 +#: templates/js/translated/build.js:2374 msgid "Created" msgstr "" @@ -2005,8 +2033,8 @@ msgstr "" msgid "No target date set" msgstr "" -#: build/templates/build/detail.html:149 -#: order/templates/order/sales_order_base.html:209 +#: build/templates/build/detail.html:149 order/api.py:794 +#: order/templates/order/sales_order_base.html:210 #: templates/js/translated/table_filters.js:692 msgid "Completed" msgstr "" @@ -2052,7 +2080,7 @@ msgid "Order required parts" msgstr "" #: build/templates/build/detail.html:192 -#: templates/js/translated/purchase_order.js:795 +#: templates/js/translated/purchase_order.js:778 msgid "Order Parts" msgstr "" @@ -2120,7 +2148,7 @@ msgstr "" msgid "Build Order Details" msgstr "" -#: build/templates/build/sidebar.html:8 order/serializers.py:82 +#: build/templates/build/sidebar.html:8 order/serializers.py:113 #: order/templates/order/po_sidebar.html:5 #: order/templates/order/return_order_detail.html:18 #: order/templates/order/so_sidebar.html:5 @@ -2139,43 +2167,38 @@ msgstr "" msgid "Test Statistics" msgstr "" -#: common/api.py:693 +#: common/api.py:725 msgid "Is Link" msgstr "" -#: common/api.py:701 +#: common/api.py:733 msgid "Is File" msgstr "" -#: common/api.py:744 +#: common/api.py:776 msgid "User does not have permission to delete these attachments" msgstr "" -#: common/api.py:761 +#: common/api.py:793 msgid "User does not have permission to delete this attachment" msgstr "" -#: common/currency.py:132 +#: common/currency.py:134 msgid "Invalid currency code" msgstr "" -#: common/currency.py:134 +#: common/currency.py:136 msgid "Duplicate currency code" msgstr "" -#: common/currency.py:139 +#: common/currency.py:141 msgid "No valid currency codes provided" msgstr "" -#: common/currency.py:156 +#: common/currency.py:158 msgid "No plugin" msgstr "" -#: common/files.py:63 -#, python-brace-format -msgid "Unsupported file format: {fmt}" -msgstr "" - #: common/files.py:65 msgid "Error reading file (invalid encoding)" msgstr "" @@ -2192,1883 +2215,2039 @@ msgstr "" msgid "Error reading file (data could be corrupted)" msgstr "" -#: common/forms.py:12 +#: common/forms.py:12 common/forms.py:25 msgid "File" msgstr "" -#: common/forms.py:12 +#: common/forms.py:12 common/forms.py:26 msgid "Select file to upload" msgstr "" -#: common/forms.py:25 -msgid "{name.title()} File" -msgstr "" - -#: common/forms.py:26 -#, python-brace-format -msgid "Select {name} file to upload" -msgstr "" - -#: common/models.py:86 +#: common/models.py:89 msgid "Updated" msgstr "" -#: common/models.py:87 +#: common/models.py:90 msgid "Timestamp of last update" msgstr "" -#: common/models.py:120 +#: common/models.py:123 msgid "Site URL is locked by configuration" msgstr "" -#: common/models.py:150 +#: common/models.py:153 msgid "Unique project code" msgstr "" -#: common/models.py:157 +#: common/models.py:160 msgid "Project description" msgstr "" -#: common/models.py:166 +#: common/models.py:169 msgid "User or group responsible for this project" msgstr "" -#: common/models.py:783 -msgid "Settings key (must be unique - case insensitive)" +#: common/models.py:783 common/models.py:2236 common/models.py:2613 +msgid "Settings key" msgstr "" #: common/models.py:787 msgid "Settings value" msgstr "" -#: common/models.py:839 +#: common/models.py:842 msgid "Chosen value is not a valid option" msgstr "" -#: common/models.py:855 +#: common/models.py:858 msgid "Value must be a boolean value" msgstr "" -#: common/models.py:863 +#: common/models.py:866 msgid "Value must be an integer value" msgstr "" -#: common/models.py:900 +#: common/models.py:874 +msgid "Value must be a valid number" +msgstr "" + +#: common/models.py:899 +msgid "Value does not pass validation checks" +msgstr "" + +#: common/models.py:921 msgid "Key string must be unique" msgstr "" -#: common/models.py:1132 +#: common/models.py:1189 msgid "No group" msgstr "" -#: common/models.py:1231 +#: common/models.py:1288 msgid "Restart required" msgstr "" -#: common/models.py:1233 +#: common/models.py:1290 msgid "A setting has been changed which requires a server restart" msgstr "" -#: common/models.py:1240 +#: common/models.py:1297 msgid "Pending migrations" msgstr "" -#: common/models.py:1241 +#: common/models.py:1298 msgid "Number of pending database migrations" msgstr "" -#: common/models.py:1246 +#: common/models.py:1303 msgid "Server Instance Name" msgstr "" -#: common/models.py:1248 +#: common/models.py:1305 msgid "String descriptor for the server instance" msgstr "" -#: common/models.py:1252 +#: common/models.py:1309 msgid "Use instance name" msgstr "" -#: common/models.py:1253 +#: common/models.py:1310 msgid "Use the instance name in the title-bar" msgstr "" -#: common/models.py:1258 +#: common/models.py:1315 msgid "Restrict showing `about`" msgstr "" -#: common/models.py:1259 +#: common/models.py:1316 msgid "Show the `about` modal only to superusers" msgstr "" -#: common/models.py:1264 company/models.py:111 company/models.py:112 +#: common/models.py:1321 company/models.py:108 company/models.py:109 msgid "Company name" msgstr "" -#: common/models.py:1265 +#: common/models.py:1322 msgid "Internal company name" msgstr "" -#: common/models.py:1269 +#: common/models.py:1326 msgid "Base URL" msgstr "" -#: common/models.py:1270 +#: common/models.py:1327 msgid "Base URL for server instance" msgstr "" -#: common/models.py:1276 +#: common/models.py:1333 msgid "Default Currency" msgstr "" -#: common/models.py:1277 +#: common/models.py:1334 msgid "Select base currency for pricing calculations" msgstr "" -#: common/models.py:1283 +#: common/models.py:1340 msgid "Supported Currencies" msgstr "" -#: common/models.py:1284 +#: common/models.py:1341 msgid "List of supported currency codes" msgstr "" -#: common/models.py:1290 +#: common/models.py:1347 msgid "Currency Update Interval" msgstr "" -#: common/models.py:1292 +#: common/models.py:1349 msgid "How often to update exchange rates (set to zero to disable)" msgstr "" -#: common/models.py:1295 common/models.py:1351 common/models.py:1364 -#: common/models.py:1372 common/models.py:1381 common/models.py:1390 -#: common/models.py:1627 common/models.py:1649 common/models.py:1764 -#: common/models.py:2146 +#: common/models.py:1352 common/models.py:1408 common/models.py:1421 +#: common/models.py:1429 common/models.py:1438 common/models.py:1447 +#: common/models.py:1696 common/models.py:1718 common/models.py:1819 +#: common/models.py:2208 msgid "days" msgstr "" -#: common/models.py:1299 +#: common/models.py:1356 msgid "Currency Update Plugin" msgstr "" -#: common/models.py:1300 +#: common/models.py:1357 msgid "Currency update plugin to use" msgstr "" -#: common/models.py:1305 +#: common/models.py:1362 msgid "Download from URL" msgstr "" -#: common/models.py:1307 +#: common/models.py:1364 msgid "Allow download of remote images and files from external URL" msgstr "" -#: common/models.py:1313 +#: common/models.py:1370 msgid "Download Size Limit" msgstr "" -#: common/models.py:1314 +#: common/models.py:1371 msgid "Maximum allowable download size for remote image" msgstr "" -#: common/models.py:1320 +#: common/models.py:1377 msgid "User-agent used to download from URL" msgstr "" -#: common/models.py:1322 +#: common/models.py:1379 msgid "Allow to override the user-agent used to download images and files from external URL (leave blank for the default)" msgstr "" -#: common/models.py:1327 +#: common/models.py:1384 msgid "Strict URL Validation" msgstr "" -#: common/models.py:1328 +#: common/models.py:1385 msgid "Require schema specification when validating URLs" msgstr "" -#: common/models.py:1333 +#: common/models.py:1390 msgid "Require confirm" msgstr "" -#: common/models.py:1334 +#: common/models.py:1391 msgid "Require explicit user confirmation for certain action." msgstr "" -#: common/models.py:1339 +#: common/models.py:1396 msgid "Tree Depth" msgstr "" -#: common/models.py:1341 +#: common/models.py:1398 msgid "Default tree depth for treeview. Deeper levels can be lazy loaded as they are needed." msgstr "" -#: common/models.py:1347 +#: common/models.py:1404 msgid "Update Check Interval" msgstr "" -#: common/models.py:1348 +#: common/models.py:1405 msgid "How often to check for updates (set to zero to disable)" msgstr "" -#: common/models.py:1354 +#: common/models.py:1411 msgid "Automatic Backup" msgstr "" -#: common/models.py:1355 +#: common/models.py:1412 msgid "Enable automatic backup of database and media files" msgstr "" -#: common/models.py:1360 +#: common/models.py:1417 msgid "Auto Backup Interval" msgstr "" -#: common/models.py:1361 +#: common/models.py:1418 msgid "Specify number of days between automated backup events" msgstr "" -#: common/models.py:1367 +#: common/models.py:1424 msgid "Task Deletion Interval" msgstr "" -#: common/models.py:1369 +#: common/models.py:1426 msgid "Background task results will be deleted after specified number of days" msgstr "" -#: common/models.py:1376 +#: common/models.py:1433 msgid "Error Log Deletion Interval" msgstr "" -#: common/models.py:1378 +#: common/models.py:1435 msgid "Error logs will be deleted after specified number of days" msgstr "" -#: common/models.py:1385 +#: common/models.py:1442 msgid "Notification Deletion Interval" msgstr "" -#: common/models.py:1387 +#: common/models.py:1444 msgid "User notifications will be deleted after specified number of days" msgstr "" -#: common/models.py:1394 templates/InvenTree/settings/sidebar.html:31 +#: common/models.py:1451 templates/InvenTree/settings/sidebar.html:31 msgid "Barcode Support" msgstr "" -#: common/models.py:1395 +#: common/models.py:1452 msgid "Enable barcode scanner support in the web interface" msgstr "" -#: common/models.py:1400 +#: common/models.py:1457 +msgid "Store Barcode Results" +msgstr "" + +#: common/models.py:1458 +msgid "Store barcode scan results in the database" +msgstr "" + +#: common/models.py:1463 +msgid "Barcode Scans Maximum Count" +msgstr "" + +#: common/models.py:1464 +msgid "Maximum number of barcode scan results to store" +msgstr "" + +#: common/models.py:1469 msgid "Barcode Input Delay" msgstr "" -#: common/models.py:1401 +#: common/models.py:1470 msgid "Barcode input processing delay time" msgstr "" -#: common/models.py:1407 +#: common/models.py:1476 msgid "Barcode Webcam Support" msgstr "" -#: common/models.py:1408 +#: common/models.py:1477 msgid "Allow barcode scanning via webcam in browser" msgstr "" -#: common/models.py:1413 +#: common/models.py:1482 msgid "Barcode Show Data" msgstr "" -#: common/models.py:1414 +#: common/models.py:1483 msgid "Display barcode data in browser as text" msgstr "" -#: common/models.py:1419 +#: common/models.py:1488 msgid "Barcode Generation Plugin" msgstr "" -#: common/models.py:1420 +#: common/models.py:1489 msgid "Plugin to use for internal barcode data generation" msgstr "" -#: common/models.py:1425 +#: common/models.py:1494 msgid "Part Revisions" msgstr "" -#: common/models.py:1426 +#: common/models.py:1495 msgid "Enable revision field for Part" msgstr "" -#: common/models.py:1431 +#: common/models.py:1500 msgid "Assembly Revision Only" msgstr "" -#: common/models.py:1432 +#: common/models.py:1501 msgid "Only allow revisions for assembly parts" msgstr "" -#: common/models.py:1437 +#: common/models.py:1506 msgid "Allow Deletion from Assembly" msgstr "" -#: common/models.py:1438 +#: common/models.py:1507 msgid "Allow deletion of parts which are used in an assembly" msgstr "" -#: common/models.py:1443 +#: common/models.py:1512 msgid "IPN Regex" msgstr "" -#: common/models.py:1444 +#: common/models.py:1513 msgid "Regular expression pattern for matching Part IPN" msgstr "" -#: common/models.py:1447 +#: common/models.py:1516 msgid "Allow Duplicate IPN" msgstr "" -#: common/models.py:1448 +#: common/models.py:1517 msgid "Allow multiple parts to share the same IPN" msgstr "" -#: common/models.py:1453 +#: common/models.py:1522 msgid "Allow Editing IPN" msgstr "" -#: common/models.py:1454 +#: common/models.py:1523 msgid "Allow changing the IPN value while editing a part" msgstr "" -#: common/models.py:1459 +#: common/models.py:1528 msgid "Copy Part BOM Data" msgstr "" -#: common/models.py:1460 +#: common/models.py:1529 msgid "Copy BOM data by default when duplicating a part" msgstr "" -#: common/models.py:1465 +#: common/models.py:1534 msgid "Copy Part Parameter Data" msgstr "" -#: common/models.py:1466 +#: common/models.py:1535 msgid "Copy parameter data by default when duplicating a part" msgstr "" -#: common/models.py:1471 +#: common/models.py:1540 msgid "Copy Part Test Data" msgstr "" -#: common/models.py:1472 +#: common/models.py:1541 msgid "Copy test data by default when duplicating a part" msgstr "" -#: common/models.py:1477 +#: common/models.py:1546 msgid "Copy Category Parameter Templates" msgstr "" -#: common/models.py:1478 +#: common/models.py:1547 msgid "Copy category parameter templates when creating a part" msgstr "" -#: common/models.py:1483 part/admin.py:108 part/models.py:3945 -#: report/models.py:293 report/models.py:360 report/serializers.py:90 -#: report/serializers.py:131 stock/serializers.py:232 +#: common/models.py:1552 part/admin.py:108 part/models.py:4003 +#: report/models.py:301 report/models.py:368 report/serializers.py:91 +#: report/serializers.py:132 stock/serializers.py:233 #: templates/js/translated/table_filters.js:138 #: templates/js/translated/table_filters.js:775 msgid "Template" msgstr "" -#: common/models.py:1484 +#: common/models.py:1553 msgid "Parts are templates by default" msgstr "" -#: common/models.py:1490 +#: common/models.py:1559 msgid "Parts can be assembled from other components by default" msgstr "" -#: common/models.py:1495 part/admin.py:95 part/models.py:1160 -#: part/serializers.py:1596 templates/js/translated/table_filters.js:737 +#: common/models.py:1564 part/admin.py:95 part/models.py:1221 +#: part/serializers.py:1654 templates/js/translated/table_filters.js:737 msgid "Component" msgstr "" -#: common/models.py:1496 +#: common/models.py:1565 msgid "Parts can be used as sub-components by default" msgstr "" -#: common/models.py:1501 part/admin.py:100 part/models.py:1178 +#: common/models.py:1570 part/admin.py:100 part/models.py:1239 msgid "Purchaseable" msgstr "" -#: common/models.py:1502 +#: common/models.py:1571 msgid "Parts are purchaseable by default" msgstr "" -#: common/models.py:1507 part/admin.py:104 part/models.py:1184 +#: common/models.py:1576 part/admin.py:104 part/models.py:1245 #: templates/js/translated/table_filters.js:763 msgid "Salable" msgstr "" -#: common/models.py:1508 +#: common/models.py:1577 msgid "Parts are salable by default" msgstr "" -#: common/models.py:1514 +#: common/models.py:1583 msgid "Parts are trackable by default" msgstr "" -#: common/models.py:1519 part/admin.py:117 part/models.py:1200 -#: part/templates/part/part_base.html:154 +#: common/models.py:1588 part/admin.py:117 part/models.py:1261 +#: part/templates/part/part_base.html:155 #: templates/js/translated/table_filters.js:142 #: templates/js/translated/table_filters.js:787 msgid "Virtual" msgstr "" -#: common/models.py:1520 +#: common/models.py:1589 msgid "Parts are virtual by default" msgstr "" -#: common/models.py:1525 +#: common/models.py:1594 msgid "Show Import in Views" msgstr "" -#: common/models.py:1526 +#: common/models.py:1595 msgid "Display the import wizard in some part views" msgstr "" -#: common/models.py:1531 +#: common/models.py:1600 msgid "Show related parts" msgstr "" -#: common/models.py:1532 +#: common/models.py:1601 msgid "Display related parts for a part" msgstr "" -#: common/models.py:1537 +#: common/models.py:1606 msgid "Initial Stock Data" msgstr "" -#: common/models.py:1538 +#: common/models.py:1607 msgid "Allow creation of initial stock when adding a new part" msgstr "" -#: common/models.py:1543 templates/js/translated/part.js:108 +#: common/models.py:1612 templates/js/translated/part.js:108 msgid "Initial Supplier Data" msgstr "" -#: common/models.py:1545 +#: common/models.py:1614 msgid "Allow creation of initial supplier data when adding a new part" msgstr "" -#: common/models.py:1551 +#: common/models.py:1620 msgid "Part Name Display Format" msgstr "" -#: common/models.py:1552 +#: common/models.py:1621 msgid "Format to display the part name" msgstr "" -#: common/models.py:1558 +#: common/models.py:1627 msgid "Part Category Default Icon" msgstr "" -#: common/models.py:1559 +#: common/models.py:1628 msgid "Part category default icon (empty means no icon)" msgstr "" -#: common/models.py:1564 +#: common/models.py:1633 msgid "Enforce Parameter Units" msgstr "" -#: common/models.py:1566 +#: common/models.py:1635 msgid "If units are provided, parameter values must match the specified units" msgstr "" -#: common/models.py:1572 +#: common/models.py:1641 msgid "Minimum Pricing Decimal Places" msgstr "" -#: common/models.py:1574 +#: common/models.py:1643 msgid "Minimum number of decimal places to display when rendering pricing data" msgstr "" -#: common/models.py:1585 +#: common/models.py:1654 msgid "Maximum Pricing Decimal Places" msgstr "" -#: common/models.py:1587 +#: common/models.py:1656 msgid "Maximum number of decimal places to display when rendering pricing data" msgstr "" -#: common/models.py:1598 +#: common/models.py:1667 msgid "Use Supplier Pricing" msgstr "" -#: common/models.py:1600 +#: common/models.py:1669 msgid "Include supplier price breaks in overall pricing calculations" msgstr "" -#: common/models.py:1606 +#: common/models.py:1675 msgid "Purchase History Override" msgstr "" -#: common/models.py:1608 +#: common/models.py:1677 msgid "Historical purchase order pricing overrides supplier price breaks" msgstr "" -#: common/models.py:1614 +#: common/models.py:1683 msgid "Use Stock Item Pricing" msgstr "" -#: common/models.py:1616 +#: common/models.py:1685 msgid "Use pricing from manually entered stock data for pricing calculations" msgstr "" -#: common/models.py:1622 +#: common/models.py:1691 msgid "Stock Item Pricing Age" msgstr "" -#: common/models.py:1624 +#: common/models.py:1693 msgid "Exclude stock items older than this number of days from pricing calculations" msgstr "" -#: common/models.py:1631 +#: common/models.py:1700 msgid "Use Variant Pricing" msgstr "" -#: common/models.py:1632 +#: common/models.py:1701 msgid "Include variant pricing in overall pricing calculations" msgstr "" -#: common/models.py:1637 +#: common/models.py:1706 msgid "Active Variants Only" msgstr "" -#: common/models.py:1639 +#: common/models.py:1708 msgid "Only use active variant parts for calculating variant pricing" msgstr "" -#: common/models.py:1645 +#: common/models.py:1714 msgid "Pricing Rebuild Interval" msgstr "" -#: common/models.py:1647 +#: common/models.py:1716 msgid "Number of days before part pricing is automatically updated" msgstr "" -#: common/models.py:1654 +#: common/models.py:1723 msgid "Internal Prices" msgstr "" -#: common/models.py:1655 +#: common/models.py:1724 msgid "Enable internal prices for parts" msgstr "" -#: common/models.py:1660 +#: common/models.py:1729 msgid "Internal Price Override" msgstr "" -#: common/models.py:1662 +#: common/models.py:1731 msgid "If available, internal prices override price range calculations" msgstr "" -#: common/models.py:1668 +#: common/models.py:1737 msgid "Enable label printing" msgstr "" -#: common/models.py:1669 +#: common/models.py:1738 msgid "Enable label printing from the web interface" msgstr "" -#: common/models.py:1674 +#: common/models.py:1743 msgid "Label Image DPI" msgstr "" -#: common/models.py:1676 +#: common/models.py:1745 msgid "DPI resolution when generating image files to supply to label printing plugins" msgstr "" -#: common/models.py:1682 +#: common/models.py:1751 msgid "Enable Reports" msgstr "" -#: common/models.py:1683 +#: common/models.py:1752 msgid "Enable generation of reports" msgstr "" -#: common/models.py:1688 templates/stats.html:25 +#: common/models.py:1757 templates/stats.html:25 msgid "Debug Mode" msgstr "" -#: common/models.py:1689 +#: common/models.py:1758 msgid "Generate reports in debug mode (HTML output)" msgstr "" -#: common/models.py:1694 +#: common/models.py:1763 msgid "Log Report Errors" msgstr "" -#: common/models.py:1695 +#: common/models.py:1764 msgid "Log errors which occur when generating reports" msgstr "" -#: common/models.py:1700 plugin/builtin/labels/label_sheet.py:28 -#: report/models.py:301 +#: common/models.py:1769 plugin/builtin/labels/label_sheet.py:28 +#: report/models.py:309 msgid "Page Size" msgstr "" -#: common/models.py:1701 +#: common/models.py:1770 msgid "Default page size for PDF reports" msgstr "" -#: common/models.py:1706 -msgid "Enable Test Reports" -msgstr "" - -#: common/models.py:1707 -msgid "Enable generation of test reports" -msgstr "" - -#: common/models.py:1712 -msgid "Attach Test Reports" -msgstr "" - -#: common/models.py:1714 -msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item" -msgstr "" - -#: common/models.py:1720 +#: common/models.py:1775 msgid "Globally Unique Serials" msgstr "" -#: common/models.py:1721 +#: common/models.py:1776 msgid "Serial numbers for stock items must be globally unique" msgstr "" -#: common/models.py:1726 +#: common/models.py:1781 msgid "Autofill Serial Numbers" msgstr "" -#: common/models.py:1727 +#: common/models.py:1782 msgid "Autofill serial numbers in forms" msgstr "" -#: common/models.py:1732 +#: common/models.py:1787 msgid "Delete Depleted Stock" msgstr "" -#: common/models.py:1734 +#: common/models.py:1789 msgid "Determines default behavior when a stock item is depleted" msgstr "" -#: common/models.py:1740 +#: common/models.py:1795 msgid "Batch Code Template" msgstr "" -#: common/models.py:1742 +#: common/models.py:1797 msgid "Template for generating default batch codes for stock items" msgstr "" -#: common/models.py:1747 +#: common/models.py:1802 msgid "Stock Expiry" msgstr "" -#: common/models.py:1748 +#: common/models.py:1803 msgid "Enable stock expiry functionality" msgstr "" -#: common/models.py:1753 +#: common/models.py:1808 msgid "Sell Expired Stock" msgstr "" -#: common/models.py:1754 +#: common/models.py:1809 msgid "Allow sale of expired stock" msgstr "" -#: common/models.py:1759 +#: common/models.py:1814 msgid "Stock Stale Time" msgstr "" -#: common/models.py:1761 +#: common/models.py:1816 msgid "Number of days stock items are considered stale before expiring" msgstr "" -#: common/models.py:1768 +#: common/models.py:1823 msgid "Build Expired Stock" msgstr "" -#: common/models.py:1769 +#: common/models.py:1824 msgid "Allow building with expired stock" msgstr "" -#: common/models.py:1774 +#: common/models.py:1829 msgid "Stock Ownership Control" msgstr "" -#: common/models.py:1775 +#: common/models.py:1830 msgid "Enable ownership control over stock locations and items" msgstr "" -#: common/models.py:1780 +#: common/models.py:1835 msgid "Stock Location Default Icon" msgstr "" -#: common/models.py:1781 +#: common/models.py:1836 msgid "Stock location default icon (empty means no icon)" msgstr "" -#: common/models.py:1786 +#: common/models.py:1841 msgid "Show Installed Stock Items" msgstr "" -#: common/models.py:1787 +#: common/models.py:1842 msgid "Display installed stock items in stock tables" msgstr "" -#: common/models.py:1792 +#: common/models.py:1847 msgid "Check BOM when installing items" msgstr "" -#: common/models.py:1794 +#: common/models.py:1849 msgid "Installed stock items must exist in the BOM for the parent part" msgstr "" -#: common/models.py:1800 +#: common/models.py:1855 msgid "Allow Out of Stock Transfer" msgstr "" -#: common/models.py:1802 +#: common/models.py:1857 msgid "Allow stock items which are not in stock to be transferred between stock locations" msgstr "" -#: common/models.py:1808 +#: common/models.py:1863 msgid "Build Order Reference Pattern" msgstr "" -#: common/models.py:1810 +#: common/models.py:1865 msgid "Required pattern for generating Build Order reference field" msgstr "" -#: common/models.py:1816 common/models.py:1872 common/models.py:1894 -#: common/models.py:1930 +#: common/models.py:1871 common/models.py:1927 common/models.py:1949 +#: common/models.py:1985 msgid "Require Responsible Owner" msgstr "" -#: common/models.py:1817 common/models.py:1873 common/models.py:1895 -#: common/models.py:1931 +#: common/models.py:1872 common/models.py:1928 common/models.py:1950 +#: common/models.py:1986 msgid "A responsible owner must be assigned to each order" msgstr "" -#: common/models.py:1822 +#: common/models.py:1877 msgid "Require Active Part" msgstr "" -#: common/models.py:1823 +#: common/models.py:1878 msgid "Prevent build order creation for inactive parts" msgstr "" -#: common/models.py:1828 +#: common/models.py:1883 msgid "Require Locked Part" msgstr "" -#: common/models.py:1829 +#: common/models.py:1884 msgid "Prevent build order creation for unlocked parts" msgstr "" -#: common/models.py:1834 +#: common/models.py:1889 msgid "Require Valid BOM" msgstr "" -#: common/models.py:1836 +#: common/models.py:1891 msgid "Prevent build order creation unless BOM has been validated" msgstr "" -#: common/models.py:1842 +#: common/models.py:1897 msgid "Require Closed Child Orders" msgstr "" -#: common/models.py:1844 +#: common/models.py:1899 msgid "Prevent build order completion until all child orders are closed" msgstr "" -#: common/models.py:1850 +#: common/models.py:1905 msgid "Block Until Tests Pass" msgstr "" -#: common/models.py:1852 +#: common/models.py:1907 msgid "Prevent build outputs from being completed until all required tests pass" msgstr "" -#: common/models.py:1858 +#: common/models.py:1913 msgid "Enable Return Orders" msgstr "" -#: common/models.py:1859 +#: common/models.py:1914 msgid "Enable return order functionality in the user interface" msgstr "" -#: common/models.py:1864 +#: common/models.py:1919 msgid "Return Order Reference Pattern" msgstr "" -#: common/models.py:1866 +#: common/models.py:1921 msgid "Required pattern for generating Return Order reference field" msgstr "" -#: common/models.py:1878 +#: common/models.py:1933 msgid "Edit Completed Return Orders" msgstr "" -#: common/models.py:1880 +#: common/models.py:1935 msgid "Allow editing of return orders after they have been completed" msgstr "" -#: common/models.py:1886 +#: common/models.py:1941 msgid "Sales Order Reference Pattern" msgstr "" -#: common/models.py:1888 +#: common/models.py:1943 msgid "Required pattern for generating Sales Order reference field" msgstr "" -#: common/models.py:1900 +#: common/models.py:1955 msgid "Sales Order Default Shipment" msgstr "" -#: common/models.py:1901 +#: common/models.py:1956 msgid "Enable creation of default shipment with sales orders" msgstr "" -#: common/models.py:1906 +#: common/models.py:1961 msgid "Edit Completed Sales Orders" msgstr "" -#: common/models.py:1908 +#: common/models.py:1963 msgid "Allow editing of sales orders after they have been shipped or completed" msgstr "" -#: common/models.py:1914 +#: common/models.py:1969 msgid "Mark Shipped Orders as Complete" msgstr "" -#: common/models.py:1916 +#: common/models.py:1971 msgid "Sales orders marked as shipped will automatically be completed, bypassing the \"shipped\" status" msgstr "" -#: common/models.py:1922 +#: common/models.py:1977 msgid "Purchase Order Reference Pattern" msgstr "" -#: common/models.py:1924 +#: common/models.py:1979 msgid "Required pattern for generating Purchase Order reference field" msgstr "" -#: common/models.py:1936 +#: common/models.py:1991 msgid "Edit Completed Purchase Orders" msgstr "" -#: common/models.py:1938 +#: common/models.py:1993 msgid "Allow editing of purchase orders after they have been shipped or completed" msgstr "" -#: common/models.py:1944 +#: common/models.py:1999 msgid "Auto Complete Purchase Orders" msgstr "" -#: common/models.py:1946 +#: common/models.py:2001 msgid "Automatically mark purchase orders as complete when all line items are received" msgstr "" -#: common/models.py:1953 +#: common/models.py:2008 msgid "Enable password forgot" msgstr "" -#: common/models.py:1954 +#: common/models.py:2009 msgid "Enable password forgot function on the login pages" msgstr "" -#: common/models.py:1959 +#: common/models.py:2014 msgid "Enable registration" msgstr "" -#: common/models.py:1960 +#: common/models.py:2015 msgid "Enable self-registration for users on the login pages" msgstr "" -#: common/models.py:1965 +#: common/models.py:2020 msgid "Enable SSO" msgstr "" -#: common/models.py:1966 +#: common/models.py:2021 msgid "Enable SSO on the login pages" msgstr "" -#: common/models.py:1971 +#: common/models.py:2026 msgid "Enable SSO registration" msgstr "" -#: common/models.py:1973 +#: common/models.py:2028 msgid "Enable self-registration via SSO for users on the login pages" msgstr "" -#: common/models.py:1979 +#: common/models.py:2034 msgid "Enable SSO group sync" msgstr "" -#: common/models.py:1981 +#: common/models.py:2036 msgid "Enable synchronizing InvenTree groups with groups provided by the IdP" msgstr "" -#: common/models.py:1987 +#: common/models.py:2042 msgid "SSO group key" msgstr "" -#: common/models.py:1989 +#: common/models.py:2044 msgid "The name of the groups claim attribute provided by the IdP" msgstr "" -#: common/models.py:1995 +#: common/models.py:2050 msgid "SSO group map" msgstr "" -#: common/models.py:1997 +#: common/models.py:2052 msgid "A mapping from SSO groups to local InvenTree groups. If the local group does not exist, it will be created." msgstr "" -#: common/models.py:2003 +#: common/models.py:2058 msgid "Remove groups outside of SSO" msgstr "" -#: common/models.py:2005 +#: common/models.py:2060 msgid "Whether groups assigned to the user should be removed if they are not backend by the IdP. Disabling this setting might cause security issues" msgstr "" -#: common/models.py:2011 +#: common/models.py:2066 msgid "Email required" msgstr "" -#: common/models.py:2012 +#: common/models.py:2067 msgid "Require user to supply mail on signup" msgstr "" -#: common/models.py:2017 +#: common/models.py:2072 msgid "Auto-fill SSO users" msgstr "" -#: common/models.py:2019 +#: common/models.py:2074 msgid "Automatically fill out user-details from SSO account-data" msgstr "" -#: common/models.py:2025 +#: common/models.py:2080 msgid "Mail twice" msgstr "" -#: common/models.py:2026 +#: common/models.py:2081 msgid "On signup ask users twice for their mail" msgstr "" -#: common/models.py:2031 +#: common/models.py:2086 msgid "Password twice" msgstr "" -#: common/models.py:2032 +#: common/models.py:2087 msgid "On signup ask users twice for their password" msgstr "" -#: common/models.py:2037 +#: common/models.py:2092 msgid "Allowed domains" msgstr "" -#: common/models.py:2039 +#: common/models.py:2094 msgid "Restrict signup to certain domains (comma-separated, starting with @)" msgstr "" -#: common/models.py:2045 +#: common/models.py:2100 msgid "Group on signup" msgstr "" -#: common/models.py:2047 +#: common/models.py:2102 msgid "Group to which new users are assigned on registration. If SSO group sync is enabled, this group is only set if no group can be assigned from the IdP." msgstr "" -#: common/models.py:2053 +#: common/models.py:2108 msgid "Enforce MFA" msgstr "" -#: common/models.py:2054 +#: common/models.py:2109 msgid "Users must use multifactor security." msgstr "" -#: common/models.py:2059 +#: common/models.py:2114 msgid "Check plugins on startup" msgstr "" -#: common/models.py:2061 +#: common/models.py:2116 msgid "Check that all plugins are installed on startup - enable in container environments" msgstr "" -#: common/models.py:2069 +#: common/models.py:2124 msgid "Check for plugin updates" msgstr "" -#: common/models.py:2070 +#: common/models.py:2125 msgid "Enable periodic checks for updates to installed plugins" msgstr "" -#: common/models.py:2076 +#: common/models.py:2131 msgid "Enable URL integration" msgstr "" -#: common/models.py:2077 +#: common/models.py:2132 msgid "Enable plugins to add URL routes" msgstr "" -#: common/models.py:2083 +#: common/models.py:2138 msgid "Enable navigation integration" msgstr "" -#: common/models.py:2084 +#: common/models.py:2139 msgid "Enable plugins to integrate into navigation" msgstr "" -#: common/models.py:2090 +#: common/models.py:2145 msgid "Enable app integration" msgstr "" -#: common/models.py:2091 +#: common/models.py:2146 msgid "Enable plugins to add apps" msgstr "" -#: common/models.py:2097 +#: common/models.py:2152 msgid "Enable schedule integration" msgstr "" -#: common/models.py:2098 +#: common/models.py:2153 msgid "Enable plugins to run scheduled tasks" msgstr "" -#: common/models.py:2104 +#: common/models.py:2159 msgid "Enable event integration" msgstr "" -#: common/models.py:2105 +#: common/models.py:2160 msgid "Enable plugins to respond to internal events" msgstr "" -#: common/models.py:2111 +#: common/models.py:2166 +msgid "Enable interface integration" +msgstr "" + +#: common/models.py:2167 +msgid "Enable plugins to integrate into the user interface" +msgstr "" + +#: common/models.py:2173 msgid "Enable project codes" msgstr "" -#: common/models.py:2112 +#: common/models.py:2174 msgid "Enable project codes for tracking projects" msgstr "" -#: common/models.py:2117 +#: common/models.py:2179 msgid "Stocktake Functionality" msgstr "" -#: common/models.py:2119 +#: common/models.py:2181 msgid "Enable stocktake functionality for recording stock levels and calculating stock value" msgstr "" -#: common/models.py:2125 +#: common/models.py:2187 msgid "Exclude External Locations" msgstr "" -#: common/models.py:2127 +#: common/models.py:2189 msgid "Exclude stock items in external locations from stocktake calculations" msgstr "" -#: common/models.py:2133 +#: common/models.py:2195 msgid "Automatic Stocktake Period" msgstr "" -#: common/models.py:2135 +#: common/models.py:2197 msgid "Number of days between automatic stocktake recording (set to zero to disable)" msgstr "" -#: common/models.py:2141 +#: common/models.py:2203 msgid "Report Deletion Interval" msgstr "" -#: common/models.py:2143 +#: common/models.py:2205 msgid "Stocktake reports will be deleted after specified number of days" msgstr "" -#: common/models.py:2150 +#: common/models.py:2212 msgid "Display Users full names" msgstr "" -#: common/models.py:2151 +#: common/models.py:2213 msgid "Display Users full names instead of usernames" msgstr "" -#: common/models.py:2156 +#: common/models.py:2218 msgid "Enable Test Station Data" msgstr "" -#: common/models.py:2157 +#: common/models.py:2219 msgid "Enable test station data collection for test results" msgstr "" -#: common/models.py:2169 common/models.py:2549 -msgid "Settings key (must be unique - case insensitive" -msgstr "" - -#: common/models.py:2212 -msgid "Hide inactive parts" -msgstr "" - -#: common/models.py:2214 -msgid "Hide inactive parts in results displayed on the homepage" -msgstr "" - -#: common/models.py:2220 -msgid "Show subscribed parts" -msgstr "" - -#: common/models.py:2221 -msgid "Show subscribed parts on the homepage" +#: common/models.py:2224 +msgid "Create Template on Upload" msgstr "" #: common/models.py:2226 -msgid "Show subscribed categories" +msgid "Create a new test template when uploading test data which does not match an existing template" msgstr "" -#: common/models.py:2227 -msgid "Show subscribed part categories on the homepage" -msgstr "" - -#: common/models.py:2232 -msgid "Show latest parts" -msgstr "" - -#: common/models.py:2233 -msgid "Show latest parts on the homepage" -msgstr "" - -#: common/models.py:2238 -msgid "Show invalid BOMs" -msgstr "" - -#: common/models.py:2239 -msgid "Show BOMs that await validation on the homepage" -msgstr "" - -#: common/models.py:2244 -msgid "Show recent stock changes" -msgstr "" - -#: common/models.py:2245 -msgid "Show recently changed stock items on the homepage" -msgstr "" - -#: common/models.py:2250 -msgid "Show low stock" -msgstr "" - -#: common/models.py:2251 -msgid "Show low stock items on the homepage" -msgstr "" - -#: common/models.py:2256 -msgid "Show depleted stock" -msgstr "" - -#: common/models.py:2257 -msgid "Show depleted stock items on the homepage" -msgstr "" - -#: common/models.py:2262 -msgid "Show needed stock" -msgstr "" - -#: common/models.py:2263 -msgid "Show stock items needed for builds on the homepage" -msgstr "" - -#: common/models.py:2268 -msgid "Show expired stock" -msgstr "" - -#: common/models.py:2269 -msgid "Show expired stock items on the homepage" -msgstr "" - -#: common/models.py:2274 -msgid "Show stale stock" -msgstr "" - -#: common/models.py:2275 -msgid "Show stale stock items on the homepage" -msgstr "" - -#: common/models.py:2280 -msgid "Show pending builds" +#: common/models.py:2279 +msgid "Hide inactive parts" msgstr "" #: common/models.py:2281 -msgid "Show pending builds on the homepage" -msgstr "" - -#: common/models.py:2286 -msgid "Show overdue builds" +msgid "Hide inactive parts in results displayed on the homepage" msgstr "" #: common/models.py:2287 -msgid "Show overdue builds on the homepage" +msgid "Show subscribed parts" msgstr "" -#: common/models.py:2292 -msgid "Show outstanding POs" +#: common/models.py:2288 +msgid "Show subscribed parts on the homepage" msgstr "" #: common/models.py:2293 -msgid "Show outstanding POs on the homepage" +msgid "Show subscribed categories" msgstr "" -#: common/models.py:2298 -msgid "Show overdue POs" +#: common/models.py:2294 +msgid "Show subscribed part categories on the homepage" msgstr "" #: common/models.py:2299 -msgid "Show overdue POs on the homepage" +msgid "Show latest parts" msgstr "" -#: common/models.py:2304 -msgid "Show outstanding SOs" +#: common/models.py:2300 +msgid "Show latest parts on the homepage" msgstr "" #: common/models.py:2305 -msgid "Show outstanding SOs on the homepage" +msgid "Show invalid BOMs" msgstr "" -#: common/models.py:2310 -msgid "Show overdue SOs" +#: common/models.py:2306 +msgid "Show BOMs that await validation on the homepage" msgstr "" #: common/models.py:2311 -msgid "Show overdue SOs on the homepage" +msgid "Show recent stock changes" msgstr "" -#: common/models.py:2316 -msgid "Show pending SO shipments" +#: common/models.py:2312 +msgid "Show recently changed stock items on the homepage" msgstr "" #: common/models.py:2317 -msgid "Show pending SO shipments on the homepage" +msgid "Show low stock" msgstr "" -#: common/models.py:2322 -msgid "Show News" +#: common/models.py:2318 +msgid "Show low stock items on the homepage" msgstr "" #: common/models.py:2323 -msgid "Show news on the homepage" +msgid "Show depleted stock" msgstr "" -#: common/models.py:2328 -msgid "Inline label display" +#: common/models.py:2324 +msgid "Show depleted stock items on the homepage" +msgstr "" + +#: common/models.py:2329 +msgid "Show needed stock" msgstr "" #: common/models.py:2330 -msgid "Display PDF labels in the browser, instead of downloading as a file" +msgid "Show stock items needed for builds on the homepage" +msgstr "" + +#: common/models.py:2335 +msgid "Show expired stock" msgstr "" #: common/models.py:2336 -msgid "Default label printer" +msgid "Show expired stock items on the homepage" msgstr "" -#: common/models.py:2338 -msgid "Configure which label printer should be selected by default" +#: common/models.py:2341 +msgid "Show stale stock" msgstr "" -#: common/models.py:2344 -msgid "Inline report display" +#: common/models.py:2342 +msgid "Show stale stock items on the homepage" msgstr "" -#: common/models.py:2346 -msgid "Display PDF reports in the browser, instead of downloading as a file" +#: common/models.py:2347 +msgid "Show pending builds" msgstr "" -#: common/models.py:2352 -msgid "Search Parts" +#: common/models.py:2348 +msgid "Show pending builds on the homepage" msgstr "" #: common/models.py:2353 -msgid "Display parts in search preview window" +msgid "Show overdue builds" msgstr "" -#: common/models.py:2358 -msgid "Search Supplier Parts" +#: common/models.py:2354 +msgid "Show overdue builds on the homepage" msgstr "" #: common/models.py:2359 -msgid "Display supplier parts in search preview window" +msgid "Show outstanding POs" msgstr "" -#: common/models.py:2364 -msgid "Search Manufacturer Parts" +#: common/models.py:2360 +msgid "Show outstanding POs on the homepage" msgstr "" #: common/models.py:2365 -msgid "Display manufacturer parts in search preview window" +msgid "Show overdue POs" msgstr "" -#: common/models.py:2370 -msgid "Hide Inactive Parts" +#: common/models.py:2366 +msgid "Show overdue POs on the homepage" msgstr "" #: common/models.py:2371 -msgid "Excluded inactive parts from search preview window" +msgid "Show outstanding SOs" msgstr "" -#: common/models.py:2376 -msgid "Search Categories" +#: common/models.py:2372 +msgid "Show outstanding SOs on the homepage" msgstr "" #: common/models.py:2377 -msgid "Display part categories in search preview window" +msgid "Show overdue SOs" msgstr "" -#: common/models.py:2382 -msgid "Search Stock" +#: common/models.py:2378 +msgid "Show overdue SOs on the homepage" msgstr "" #: common/models.py:2383 -msgid "Display stock items in search preview window" +msgid "Show pending SO shipments" msgstr "" -#: common/models.py:2388 -msgid "Hide Unavailable Stock Items" +#: common/models.py:2384 +msgid "Show pending SO shipments on the homepage" +msgstr "" + +#: common/models.py:2389 +msgid "Show News" msgstr "" #: common/models.py:2390 -msgid "Exclude stock items which are not available from the search preview window" +msgid "Show news on the homepage" msgstr "" -#: common/models.py:2396 -msgid "Search Locations" +#: common/models.py:2395 +msgid "Inline label display" msgstr "" #: common/models.py:2397 -msgid "Display stock locations in search preview window" -msgstr "" - -#: common/models.py:2402 -msgid "Search Companies" +msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "" #: common/models.py:2403 -msgid "Display companies in search preview window" +msgid "Default label printer" msgstr "" -#: common/models.py:2408 -msgid "Search Build Orders" +#: common/models.py:2405 +msgid "Configure which label printer should be selected by default" msgstr "" -#: common/models.py:2409 -msgid "Display build orders in search preview window" +#: common/models.py:2411 +msgid "Inline report display" msgstr "" -#: common/models.py:2414 -msgid "Search Purchase Orders" +#: common/models.py:2413 +msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:2415 -msgid "Display purchase orders in search preview window" +#: common/models.py:2419 +msgid "Search Parts" msgstr "" #: common/models.py:2420 -msgid "Exclude Inactive Purchase Orders" +msgid "Display parts in search preview window" msgstr "" -#: common/models.py:2422 -msgid "Exclude inactive purchase orders from search preview window" +#: common/models.py:2425 +msgid "Search Supplier Parts" msgstr "" -#: common/models.py:2428 -msgid "Search Sales Orders" +#: common/models.py:2426 +msgid "Display supplier parts in search preview window" msgstr "" -#: common/models.py:2429 -msgid "Display sales orders in search preview window" +#: common/models.py:2431 +msgid "Search Manufacturer Parts" msgstr "" -#: common/models.py:2434 -msgid "Exclude Inactive Sales Orders" +#: common/models.py:2432 +msgid "Display manufacturer parts in search preview window" msgstr "" -#: common/models.py:2436 -msgid "Exclude inactive sales orders from search preview window" +#: common/models.py:2437 +msgid "Hide Inactive Parts" msgstr "" -#: common/models.py:2442 -msgid "Search Return Orders" +#: common/models.py:2438 +msgid "Excluded inactive parts from search preview window" msgstr "" #: common/models.py:2443 -msgid "Display return orders in search preview window" +msgid "Search Categories" msgstr "" -#: common/models.py:2448 -msgid "Exclude Inactive Return Orders" +#: common/models.py:2444 +msgid "Display part categories in search preview window" +msgstr "" + +#: common/models.py:2449 +msgid "Search Stock" msgstr "" #: common/models.py:2450 -msgid "Exclude inactive return orders from search preview window" +msgid "Display stock items in search preview window" msgstr "" -#: common/models.py:2456 -msgid "Search Preview Results" +#: common/models.py:2455 +msgid "Hide Unavailable Stock Items" msgstr "" -#: common/models.py:2458 -msgid "Number of results to show in each section of the search preview window" +#: common/models.py:2457 +msgid "Exclude stock items which are not available from the search preview window" +msgstr "" + +#: common/models.py:2463 +msgid "Search Locations" msgstr "" #: common/models.py:2464 -msgid "Regex Search" +msgid "Display stock locations in search preview window" msgstr "" -#: common/models.py:2465 -msgid "Enable regular expressions in search queries" +#: common/models.py:2469 +msgid "Search Companies" msgstr "" #: common/models.py:2470 -msgid "Whole Word Search" +msgid "Display companies in search preview window" msgstr "" -#: common/models.py:2471 -msgid "Search queries return results for whole word matches" +#: common/models.py:2475 +msgid "Search Build Orders" msgstr "" #: common/models.py:2476 -msgid "Show Quantity in Forms" +msgid "Display build orders in search preview window" msgstr "" -#: common/models.py:2477 -msgid "Display available part quantity in some forms" +#: common/models.py:2481 +msgid "Search Purchase Orders" msgstr "" #: common/models.py:2482 -msgid "Escape Key Closes Forms" +msgid "Display purchase orders in search preview window" msgstr "" -#: common/models.py:2483 -msgid "Use the escape key to close modal forms" -msgstr "" - -#: common/models.py:2488 -msgid "Fixed Navbar" +#: common/models.py:2487 +msgid "Exclude Inactive Purchase Orders" msgstr "" #: common/models.py:2489 -msgid "The navbar position is fixed to the top of the screen" -msgstr "" - -#: common/models.py:2494 -msgid "Date Format" +msgid "Exclude inactive purchase orders from search preview window" msgstr "" #: common/models.py:2495 -msgid "Preferred format for displaying dates" +msgid "Search Sales Orders" msgstr "" -#: common/models.py:2508 part/templates/part/detail.html:41 -msgid "Part Scheduling" +#: common/models.py:2496 +msgid "Display sales orders in search preview window" +msgstr "" + +#: common/models.py:2501 +msgid "Exclude Inactive Sales Orders" +msgstr "" + +#: common/models.py:2503 +msgid "Exclude inactive sales orders from search preview window" msgstr "" #: common/models.py:2509 -msgid "Display part scheduling information" +msgid "Search Return Orders" msgstr "" -#: common/models.py:2514 part/templates/part/detail.html:62 -msgid "Part Stocktake" +#: common/models.py:2510 +msgid "Display return orders in search preview window" msgstr "" -#: common/models.py:2516 -msgid "Display part stocktake information (if stocktake functionality is enabled)" +#: common/models.py:2515 +msgid "Exclude Inactive Return Orders" msgstr "" -#: common/models.py:2522 -msgid "Table String Length" +#: common/models.py:2517 +msgid "Exclude inactive return orders from search preview window" msgstr "" -#: common/models.py:2524 -msgid "Maximum length limit for strings displayed in table views" +#: common/models.py:2523 +msgid "Search Preview Results" msgstr "" -#: common/models.py:2530 -msgid "Receive error reports" +#: common/models.py:2525 +msgid "Number of results to show in each section of the search preview window" msgstr "" #: common/models.py:2531 -msgid "Receive notifications for system errors" +msgid "Regex Search" msgstr "" -#: common/models.py:2536 -msgid "Last used printing machines" +#: common/models.py:2532 +msgid "Enable regular expressions in search queries" msgstr "" #: common/models.py:2537 +msgid "Whole Word Search" +msgstr "" + +#: common/models.py:2538 +msgid "Search queries return results for whole word matches" +msgstr "" + +#: common/models.py:2543 +msgid "Show Quantity in Forms" +msgstr "" + +#: common/models.py:2544 +msgid "Display available part quantity in some forms" +msgstr "" + +#: common/models.py:2549 +msgid "Escape Key Closes Forms" +msgstr "" + +#: common/models.py:2550 +msgid "Use the escape key to close modal forms" +msgstr "" + +#: common/models.py:2555 +msgid "Fixed Navbar" +msgstr "" + +#: common/models.py:2556 +msgid "The navbar position is fixed to the top of the screen" +msgstr "" + +#: common/models.py:2561 +msgid "Date Format" +msgstr "" + +#: common/models.py:2562 +msgid "Preferred format for displaying dates" +msgstr "" + +#: common/models.py:2575 part/templates/part/detail.html:41 +msgid "Part Scheduling" +msgstr "" + +#: common/models.py:2576 +msgid "Display part scheduling information" +msgstr "" + +#: common/models.py:2581 part/templates/part/detail.html:62 +msgid "Part Stocktake" +msgstr "" + +#: common/models.py:2583 +msgid "Display part stocktake information (if stocktake functionality is enabled)" +msgstr "" + +#: common/models.py:2589 +msgid "Table String Length" +msgstr "" + +#: common/models.py:2591 +msgid "Maximum length limit for strings displayed in table views" +msgstr "" + +#: common/models.py:2597 +msgid "Receive error reports" +msgstr "" + +#: common/models.py:2598 +msgid "Receive notifications for system errors" +msgstr "" + +#: common/models.py:2603 +msgid "Last used printing machines" +msgstr "" + +#: common/models.py:2604 msgid "Save the last used printing machines for a user" msgstr "" -#: common/models.py:2557 common/models.py:2558 common/models.py:2715 -#: common/models.py:2716 common/models.py:2961 common/models.py:2962 -#: common/models.py:3288 common/models.py:3289 importer/models.py:88 -#: part/models.py:3307 part/models.py:3394 part/models.py:3468 -#: part/models.py:3496 plugin/models.py:274 plugin/models.py:275 -#: report/templates/report/inventree_test_report.html:105 -#: templates/js/translated/stock.js:3120 users/models.py:111 +#: common/models.py:2621 common/models.py:2622 common/models.py:2779 +#: common/models.py:2780 common/models.py:3025 common/models.py:3026 +#: common/models.py:3349 common/models.py:3350 common/models.py:3534 +#: importer/models.py:89 part/models.py:3358 part/models.py:3445 +#: part/models.py:3519 part/models.py:3547 plugin/models.py:313 +#: plugin/models.py:314 report/templates/report/inventree_test_report.html:105 +#: templates/js/translated/stock.js:3121 users/models.py:111 msgid "User" msgstr "" -#: common/models.py:2580 +#: common/models.py:2644 msgid "Price break quantity" msgstr "" -#: common/models.py:2587 company/serializers.py:513 order/admin.py:42 -#: order/models.py:1430 order/models.py:2417 -#: templates/js/translated/company.js:1823 templates/js/translated/part.js:1892 +#: common/models.py:2651 company/serializers.py:524 order/admin.py:42 +#: order/models.py:1447 order/models.py:2456 +#: templates/js/translated/company.js:1824 templates/js/translated/part.js:1892 #: templates/js/translated/pricing.js:621 #: templates/js/translated/return_order.js:739 msgid "Price" msgstr "" -#: common/models.py:2588 +#: common/models.py:2652 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:2692 common/models.py:2877 +#: common/models.py:2756 common/models.py:2941 msgid "Endpoint" msgstr "" -#: common/models.py:2693 +#: common/models.py:2757 msgid "Endpoint at which this webhook is received" msgstr "" -#: common/models.py:2703 +#: common/models.py:2767 msgid "Name for this webhook" msgstr "" -#: common/models.py:2707 +#: common/models.py:2771 msgid "Is this webhook active" msgstr "" -#: common/models.py:2723 users/models.py:159 +#: common/models.py:2787 users/models.py:159 msgid "Token" msgstr "" -#: common/models.py:2724 +#: common/models.py:2788 msgid "Token for access" msgstr "" -#: common/models.py:2732 +#: common/models.py:2796 msgid "Secret" msgstr "" -#: common/models.py:2733 +#: common/models.py:2797 msgid "Shared secret for HMAC" msgstr "" -#: common/models.py:2841 +#: common/models.py:2905 msgid "Message ID" msgstr "" -#: common/models.py:2842 +#: common/models.py:2906 msgid "Unique identifier for this message" msgstr "" -#: common/models.py:2850 +#: common/models.py:2914 msgid "Host" msgstr "" -#: common/models.py:2851 +#: common/models.py:2915 msgid "Host from which this message was received" msgstr "" -#: common/models.py:2859 +#: common/models.py:2923 msgid "Header" msgstr "" -#: common/models.py:2860 +#: common/models.py:2924 msgid "Header of this message" msgstr "" -#: common/models.py:2867 +#: common/models.py:2931 msgid "Body" msgstr "" -#: common/models.py:2868 +#: common/models.py:2932 msgid "Body of this message" msgstr "" -#: common/models.py:2878 +#: common/models.py:2942 msgid "Endpoint on which this message was received" msgstr "" -#: common/models.py:2883 +#: common/models.py:2947 msgid "Worked on" msgstr "" -#: common/models.py:2884 +#: common/models.py:2948 msgid "Was the work on this message finished?" msgstr "" -#: common/models.py:3010 +#: common/models.py:3074 msgid "Id" msgstr "" -#: common/models.py:3012 templates/js/translated/company.js:965 -#: templates/js/translated/news.js:44 +#: common/models.py:3076 part/serializers.py:271 +#: templates/js/translated/company.js:966 templates/js/translated/news.js:44 msgid "Title" msgstr "" -#: common/models.py:3014 common/models.py:3272 company/models.py:149 -#: company/models.py:446 company/models.py:512 company/models.py:818 -#: order/models.py:302 order/models.py:1385 order/models.py:1817 -#: part/admin.py:55 part/models.py:1057 +#: common/models.py:3078 common/models.py:3333 company/models.py:146 +#: company/models.py:443 company/models.py:509 company/models.py:815 +#: order/models.py:309 order/models.py:1402 order/models.py:1846 +#: part/admin.py:55 part/models.py:1118 #: part/templates/part/part_scheduling.html:11 #: report/templates/report/inventree_build_order_report.html:164 -#: stock/admin.py:229 templates/js/translated/company.js:1319 -#: templates/js/translated/company.js:1673 templates/js/translated/order.js:376 +#: stock/admin.py:230 templates/js/translated/company.js:1320 +#: templates/js/translated/company.js:1674 templates/js/translated/order.js:376 #: templates/js/translated/part.js:2475 -#: templates/js/translated/purchase_order.js:2110 -#: templates/js/translated/purchase_order.js:2274 +#: templates/js/translated/purchase_order.js:2094 +#: templates/js/translated/purchase_order.js:2258 #: templates/js/translated/return_order.js:778 -#: templates/js/translated/sales_order.js:1092 -#: templates/js/translated/sales_order.js:2023 +#: templates/js/translated/sales_order.js:1058 +#: templates/js/translated/sales_order.js:2004 msgid "Link" msgstr "" -#: common/models.py:3016 templates/js/translated/news.js:60 +#: common/models.py:3080 templates/js/translated/news.js:60 msgid "Published" msgstr "" -#: common/models.py:3018 templates/InvenTree/settings/plugin_settings.html:32 +#: common/models.py:3082 templates/InvenTree/settings/plugin_settings.html:32 #: templates/js/translated/news.js:56 templates/js/translated/plugin.js:103 msgid "Author" msgstr "" -#: common/models.py:3020 templates/js/translated/news.js:52 +#: common/models.py:3084 templates/js/translated/news.js:52 msgid "Summary" msgstr "" -#: common/models.py:3023 +#: common/models.py:3087 msgid "Read" msgstr "" -#: common/models.py:3023 +#: common/models.py:3087 msgid "Was this news item read?" msgstr "" -#: common/models.py:3040 company/models.py:159 part/models.py:1067 +#: common/models.py:3104 company/models.py:156 part/models.py:1128 #: report/templates/report/inventree_bill_of_materials_report.html:126 #: report/templates/report/inventree_bill_of_materials_report.html:148 #: report/templates/report/inventree_return_order_report.html:35 -#: stock/templates/stock/item_base.html:133 templates/503.html:31 +#: stock/templates/stock/item_base.html:130 templates/503.html:31 #: templates/hover_image.html:7 templates/hover_image.html:9 #: templates/modals.html:6 msgid "Image" msgstr "" -#: common/models.py:3040 +#: common/models.py:3104 msgid "Image file" msgstr "" -#: common/models.py:3052 common/models.py:3256 +#: common/models.py:3116 common/models.py:3317 msgid "Target model type for this image" msgstr "" -#: common/models.py:3056 +#: common/models.py:3120 msgid "Target model ID for this image" msgstr "" -#: common/models.py:3078 +#: common/models.py:3142 msgid "Custom Unit" msgstr "" -#: common/models.py:3099 +#: common/models.py:3160 msgid "Unit symbol must be unique" msgstr "" -#: common/models.py:3114 +#: common/models.py:3175 msgid "Unit name must be a valid identifier" msgstr "" -#: common/models.py:3133 +#: common/models.py:3194 msgid "Unit name" msgstr "" -#: common/models.py:3140 templates/InvenTree/settings/settings_staff_js.html:75 +#: common/models.py:3201 templates/InvenTree/settings/settings_staff_js.html:75 msgid "Symbol" msgstr "" -#: common/models.py:3141 +#: common/models.py:3202 msgid "Optional unit symbol" msgstr "" -#: common/models.py:3147 templates/InvenTree/settings/settings_staff_js.html:71 +#: common/models.py:3208 templates/InvenTree/settings/settings_staff_js.html:71 msgid "Definition" msgstr "" -#: common/models.py:3148 +#: common/models.py:3209 msgid "Unit definition" msgstr "" -#: common/models.py:3206 common/models.py:3263 stock/models.py:2558 -#: templates/js/translated/attachment.js:119 +#: common/models.py:3267 common/models.py:3324 stock/models.py:2674 +#: stock/serializers.py:244 templates/js/translated/attachment.js:119 #: templates/js/translated/attachment.js:345 msgid "Attachment" msgstr "" -#: common/models.py:3218 +#: common/models.py:3279 msgid "Missing file" msgstr "" -#: common/models.py:3219 +#: common/models.py:3280 msgid "Missing external link" msgstr "" -#: common/models.py:3264 +#: common/models.py:3325 msgid "Select file to attach" msgstr "" -#: common/models.py:3279 templates/js/translated/attachment.js:120 +#: common/models.py:3340 templates/js/translated/attachment.js:120 #: templates/js/translated/attachment.js:360 msgid "Comment" msgstr "" -#: common/models.py:3280 +#: common/models.py:3341 msgid "Attachment comment" msgstr "" -#: common/models.py:3296 +#: common/models.py:3357 msgid "Upload date" msgstr "" -#: common/models.py:3297 +#: common/models.py:3358 msgid "Date the file was uploaded" msgstr "" -#: common/models.py:3301 +#: common/models.py:3362 msgid "File size" msgstr "" -#: common/models.py:3301 +#: common/models.py:3362 msgid "File size in bytes" msgstr "" -#: common/models.py:3339 common/serializers.py:562 +#: common/models.py:3400 common/serializers.py:609 msgid "Invalid model type specified for attachment" msgstr "" -#: common/notifications.py:314 +#: common/models.py:3409 plugin/models.py:43 users/models.py:100 +msgid "Key" +msgstr "" + +#: common/models.py:3410 +msgid "Value that will be saved in the models database" +msgstr "" + +#: common/models.py:3413 +msgid "Name of the state" +msgstr "" + +#: common/models.py:3417 part/serializers.py:273 +msgid "Label" +msgstr "" + +#: common/models.py:3418 +msgid "Label that will be displayed in the frontend" +msgstr "" + +#: common/models.py:3424 +msgid "Color" +msgstr "" + +#: common/models.py:3425 +msgid "Color that will be displayed in the frontend" +msgstr "" + +#: common/models.py:3428 +msgid "Logical Key" +msgstr "" + +#: common/models.py:3430 +msgid "State logical key that is equal to this custom state in business logic" +msgstr "" + +#: common/models.py:3438 part/serializers.py:275 +msgid "Model" +msgstr "" + +#: common/models.py:3439 +msgid "Model this state is associated with" +msgstr "" + +#: common/models.py:3443 +msgid "Reference Status Set" +msgstr "" + +#: common/models.py:3444 +msgid "Status set that is extended with this custom state" +msgstr "" + +#: common/models.py:3450 +msgid "Custom State" +msgstr "" + +#: common/models.py:3451 +msgid "Custom States" +msgstr "" + +#: common/models.py:3466 +msgid "Model must be selected" +msgstr "" + +#: common/models.py:3469 +msgid "Key must be selected" +msgstr "" + +#: common/models.py:3472 +msgid "Logical key must be selected" +msgstr "" + +#: common/models.py:3476 +msgid "Key must be different from logical key" +msgstr "" + +#: common/models.py:3480 +msgid "Reference status must be selected" +msgstr "" + +#: common/models.py:3492 +msgid "Reference status set not found" +msgstr "" + +#: common/models.py:3498 +msgid "Key must be different from the logical keys of the reference status" +msgstr "" + +#: common/models.py:3504 +msgid "Logical key must be in the logical keys of the reference status" +msgstr "" + +#: common/models.py:3519 +msgid "Barcode Scan" +msgstr "" + +#: common/models.py:3523 importer/models.py:512 part/models.py:4009 +msgid "Data" +msgstr "" + +#: common/models.py:3524 +msgid "Barcode data" +msgstr "" + +#: common/models.py:3535 +msgid "User who scanned the barcode" +msgstr "" + +#: common/models.py:3540 importer/models.py:60 +msgid "Timestamp" +msgstr "" + +#: common/models.py:3541 +msgid "Date and time of the barcode scan" +msgstr "" + +#: common/models.py:3547 +msgid "URL endpoint which processed the barcode" +msgstr "" + +#: common/models.py:3554 order/models.py:1437 plugin/serializers.py:89 +msgid "Context" +msgstr "" + +#: common/models.py:3555 +msgid "Context data for the barcode scan" +msgstr "" + +#: common/models.py:3562 +msgid "Response" +msgstr "" + +#: common/models.py:3563 +msgid "Response data from the barcode scan" +msgstr "" + +#: common/models.py:3569 report/templates/report/inventree_test_report.html:103 +#: stock/models.py:2660 +msgid "Result" +msgstr "" + +#: common/models.py:3570 +msgid "Was the barcode scan successful?" +msgstr "" + +#: common/notifications.py:328 #, python-brace-format msgid "New {verbose_name}" msgstr "" -#: common/notifications.py:316 +#: common/notifications.py:330 msgid "A new order has been created and assigned to you" msgstr "" -#: common/notifications.py:322 +#: common/notifications.py:336 #, python-brace-format msgid "{verbose_name} canceled" msgstr "" -#: common/notifications.py:324 +#: common/notifications.py:338 msgid "A order that is assigned to you was canceled" msgstr "" -#: common/notifications.py:330 common/notifications.py:337 order/api.py:462 +#: common/notifications.py:344 common/notifications.py:351 order/api.py:440 msgid "Items Received" msgstr "" -#: common/notifications.py:332 +#: common/notifications.py:346 msgid "Items have been received against a purchase order" msgstr "" -#: common/notifications.py:339 +#: common/notifications.py:353 msgid "Items have been received against a return order" msgstr "" -#: common/notifications.py:457 +#: common/notifications.py:475 msgid "Error raised by plugin" msgstr "" -#: common/serializers.py:375 +#: common/serializers.py:423 msgid "Is Running" msgstr "" -#: common/serializers.py:381 +#: common/serializers.py:429 msgid "Pending Tasks" msgstr "" -#: common/serializers.py:387 +#: common/serializers.py:435 msgid "Scheduled Tasks" msgstr "" -#: common/serializers.py:393 +#: common/serializers.py:441 msgid "Failed Tasks" msgstr "" -#: common/serializers.py:408 +#: common/serializers.py:456 msgid "Task ID" msgstr "" -#: common/serializers.py:408 +#: common/serializers.py:456 msgid "Unique task ID" msgstr "" -#: common/serializers.py:410 +#: common/serializers.py:458 msgid "Lock" msgstr "" -#: common/serializers.py:410 +#: common/serializers.py:458 msgid "Lock time" msgstr "" -#: common/serializers.py:412 +#: common/serializers.py:460 msgid "Task name" msgstr "" -#: common/serializers.py:414 +#: common/serializers.py:462 msgid "Function" msgstr "" -#: common/serializers.py:414 +#: common/serializers.py:462 msgid "Function name" msgstr "" -#: common/serializers.py:416 +#: common/serializers.py:464 msgid "Arguments" msgstr "" -#: common/serializers.py:416 +#: common/serializers.py:464 msgid "Task arguments" msgstr "" -#: common/serializers.py:419 +#: common/serializers.py:467 msgid "Keyword Arguments" msgstr "" -#: common/serializers.py:419 +#: common/serializers.py:467 msgid "Task keyword arguments" msgstr "" -#: common/serializers.py:529 +#: common/serializers.py:577 msgid "Filename" msgstr "" -#: common/serializers.py:536 report/api.py:100 report/serializers.py:53 +#: common/serializers.py:584 report/api.py:100 report/serializers.py:54 msgid "Model Type" msgstr "" -#: common/serializers.py:565 +#: common/serializers.py:612 msgid "User does not have permission to create or edit attachments for this model" msgstr "" @@ -4116,15 +4295,15 @@ msgstr "" msgid "Match Items" msgstr "" -#: common/views.py:401 +#: common/views.py:397 msgid "Fields matching failed" msgstr "" -#: common/views.py:464 +#: common/views.py:460 msgid "Parts imported" msgstr "" -#: common/views.py:494 order/templates/order/order_wizard/match_fields.html:27 +#: common/views.py:490 order/templates/order/order_wizard/match_fields.html:27 #: order/templates/order/order_wizard/match_parts.html:19 #: order/templates/order/order_wizard/po_upload.html:49 #: part/templates/part/import_wizard/match_fields.html:27 @@ -4155,429 +4334,429 @@ msgstr "" msgid "Supplier is Active" msgstr "" -#: company/models.py:100 company/models.py:371 +#: company/models.py:97 company/models.py:368 #: company/templates/company/company_base.html:8 #: company/templates/company/company_base.html:12 stock/api.py:812 -#: templates/InvenTree/search.html:178 templates/js/translated/company.js:496 +#: templates/InvenTree/search.html:178 templates/js/translated/company.js:497 msgid "Company" msgstr "" -#: company/models.py:101 company/views.py:51 +#: company/models.py:98 company/views.py:51 #: templates/js/translated/search.js:192 msgid "Companies" msgstr "" -#: company/models.py:117 +#: company/models.py:114 msgid "Company description" msgstr "" -#: company/models.py:118 +#: company/models.py:115 msgid "Description of the company" msgstr "" -#: company/models.py:123 company/templates/company/company_base.html:106 +#: company/models.py:120 company/templates/company/company_base.html:106 #: templates/InvenTree/settings/plugin_settings.html:54 -#: templates/js/translated/company.js:532 +#: templates/js/translated/company.js:533 msgid "Website" msgstr "" -#: company/models.py:123 +#: company/models.py:120 msgid "Company website URL" msgstr "" -#: company/models.py:128 +#: company/models.py:125 msgid "Phone number" msgstr "" -#: company/models.py:130 +#: company/models.py:127 msgid "Contact phone number" msgstr "" -#: company/models.py:137 +#: company/models.py:134 msgid "Contact email address" msgstr "" -#: company/models.py:142 company/models.py:275 -#: company/templates/company/company_base.html:145 order/models.py:342 -#: order/templates/order/order_base.html:208 -#: order/templates/order/return_order_base.html:177 -#: order/templates/order/sales_order_base.html:221 +#: company/models.py:139 company/models.py:272 +#: company/templates/company/company_base.html:145 order/models.py:349 +#: order/templates/order/order_base.html:217 +#: order/templates/order/return_order_base.html:178 +#: order/templates/order/sales_order_base.html:222 msgid "Contact" msgstr "" -#: company/models.py:144 +#: company/models.py:141 msgid "Point of contact" msgstr "" -#: company/models.py:150 +#: company/models.py:147 msgid "Link to external company information" msgstr "" -#: company/models.py:163 +#: company/models.py:160 msgid "Is this company active?" msgstr "" -#: company/models.py:168 +#: company/models.py:165 msgid "Is customer" msgstr "" -#: company/models.py:169 +#: company/models.py:166 msgid "Do you sell items to this company?" msgstr "" -#: company/models.py:174 +#: company/models.py:171 msgid "Is supplier" msgstr "" -#: company/models.py:175 +#: company/models.py:172 msgid "Do you purchase items from this company?" msgstr "" -#: company/models.py:180 +#: company/models.py:177 msgid "Is manufacturer" msgstr "" -#: company/models.py:181 +#: company/models.py:178 msgid "Does this company manufacture parts?" msgstr "" -#: company/models.py:189 +#: company/models.py:186 msgid "Default currency used for this company" msgstr "" -#: company/models.py:314 company/templates/company/company_base.html:124 -#: order/models.py:352 order/templates/order/order_base.html:215 -#: order/templates/order/return_order_base.html:184 -#: order/templates/order/sales_order_base.html:228 +#: company/models.py:311 company/templates/company/company_base.html:124 +#: order/models.py:359 order/templates/order/order_base.html:224 +#: order/templates/order/return_order_base.html:185 +#: order/templates/order/sales_order_base.html:229 msgid "Address" msgstr "" -#: company/models.py:315 company/templates/company/sidebar.html:35 +#: company/models.py:312 company/templates/company/sidebar.html:35 msgid "Addresses" msgstr "" -#: company/models.py:372 +#: company/models.py:369 msgid "Select company" msgstr "" -#: company/models.py:377 +#: company/models.py:374 msgid "Address title" msgstr "" -#: company/models.py:378 +#: company/models.py:375 msgid "Title describing the address entry" msgstr "" -#: company/models.py:384 +#: company/models.py:381 msgid "Primary address" msgstr "" -#: company/models.py:385 +#: company/models.py:382 msgid "Set as primary address" msgstr "" -#: company/models.py:390 templates/js/translated/company.js:914 -#: templates/js/translated/company.js:971 +#: company/models.py:387 templates/js/translated/company.js:915 +#: templates/js/translated/company.js:972 msgid "Line 1" msgstr "" -#: company/models.py:391 +#: company/models.py:388 msgid "Address line 1" msgstr "" -#: company/models.py:397 templates/js/translated/company.js:915 -#: templates/js/translated/company.js:977 +#: company/models.py:394 templates/js/translated/company.js:916 +#: templates/js/translated/company.js:978 msgid "Line 2" msgstr "" -#: company/models.py:398 +#: company/models.py:395 msgid "Address line 2" msgstr "" -#: company/models.py:404 company/models.py:405 -#: templates/js/translated/company.js:983 +#: company/models.py:401 company/models.py:402 +#: templates/js/translated/company.js:984 msgid "Postal code" msgstr "" -#: company/models.py:411 +#: company/models.py:408 msgid "City/Region" msgstr "" -#: company/models.py:412 +#: company/models.py:409 msgid "Postal code city/region" msgstr "" -#: company/models.py:418 +#: company/models.py:415 msgid "State/Province" msgstr "" -#: company/models.py:419 +#: company/models.py:416 msgid "State or province" msgstr "" -#: company/models.py:425 templates/js/translated/company.js:1001 +#: company/models.py:422 templates/js/translated/company.js:1002 msgid "Country" msgstr "" -#: company/models.py:426 +#: company/models.py:423 msgid "Address country" msgstr "" -#: company/models.py:432 +#: company/models.py:429 msgid "Courier shipping notes" msgstr "" -#: company/models.py:433 +#: company/models.py:430 msgid "Notes for shipping courier" msgstr "" -#: company/models.py:439 +#: company/models.py:436 msgid "Internal shipping notes" msgstr "" -#: company/models.py:440 +#: company/models.py:437 msgid "Shipping notes for internal use" msgstr "" -#: company/models.py:447 +#: company/models.py:444 msgid "Link to address information (external)" msgstr "" -#: company/models.py:470 company/models.py:587 company/models.py:811 +#: company/models.py:467 company/models.py:584 company/models.py:808 #: company/templates/company/manufacturer_part.html:7 #: company/templates/company/manufacturer_part.html:24 -#: stock/templates/stock/item_base.html:217 +#: stock/templates/stock/item_base.html:214 msgid "Manufacturer Part" msgstr "" -#: company/models.py:487 company/models.py:779 stock/models.py:787 -#: stock/serializers.py:445 stock/templates/stock/item_base.html:142 +#: company/models.py:484 company/models.py:776 stock/models.py:864 +#: stock/serializers.py:455 stock/templates/stock/item_base.html:139 #: templates/js/translated/bom.js:622 msgid "Base Part" msgstr "" -#: company/models.py:489 company/models.py:781 +#: company/models.py:486 company/models.py:778 msgid "Select part" msgstr "" -#: company/models.py:498 company/templates/company/company_base.html:82 +#: company/models.py:495 company/templates/company/company_base.html:82 #: company/templates/company/manufacturer_part.html:90 -#: company/templates/company/supplier_part.html:145 part/serializers.py:554 -#: stock/templates/stock/item_base.html:207 -#: templates/js/translated/company.js:507 -#: templates/js/translated/company.js:1118 -#: templates/js/translated/company.js:1296 -#: templates/js/translated/company.js:1611 +#: company/templates/company/supplier_part.html:146 part/serializers.py:598 +#: stock/templates/stock/item_base.html:204 +#: templates/js/translated/company.js:508 +#: templates/js/translated/company.js:1119 +#: templates/js/translated/company.js:1297 +#: templates/js/translated/company.js:1612 #: templates/js/translated/table_filters.js:812 msgid "Manufacturer" msgstr "" -#: company/models.py:499 +#: company/models.py:496 msgid "Select manufacturer" msgstr "" -#: company/models.py:505 company/templates/company/manufacturer_part.html:101 -#: company/templates/company/supplier_part.html:153 order/serializers.py:556 -#: part/serializers.py:564 templates/js/translated/company.js:351 -#: templates/js/translated/company.js:1117 -#: templates/js/translated/company.js:1312 -#: templates/js/translated/company.js:1630 templates/js/translated/part.js:1807 -#: templates/js/translated/purchase_order.js:1921 -#: templates/js/translated/purchase_order.js:2123 +#: company/models.py:502 company/templates/company/manufacturer_part.html:101 +#: company/templates/company/supplier_part.html:154 order/serializers.py:641 +#: part/serializers.py:608 templates/js/translated/company.js:352 +#: templates/js/translated/company.js:1118 +#: templates/js/translated/company.js:1313 +#: templates/js/translated/company.js:1631 templates/js/translated/part.js:1807 +#: templates/js/translated/purchase_order.js:1905 +#: templates/js/translated/purchase_order.js:2107 msgid "MPN" msgstr "" -#: company/models.py:513 +#: company/models.py:510 msgid "URL for external manufacturer part link" msgstr "" -#: company/models.py:522 +#: company/models.py:519 msgid "Manufacturer part description" msgstr "" -#: company/models.py:575 +#: company/models.py:572 msgid "Manufacturer Part Parameter" msgstr "" -#: company/models.py:594 +#: company/models.py:591 msgid "Parameter name" msgstr "" -#: company/models.py:600 report/templates/report/inventree_test_report.html:104 -#: stock/models.py:2550 templates/js/translated/company.js:1166 -#: templates/js/translated/company.js:1419 templates/js/translated/part.js:1499 +#: company/models.py:597 report/templates/report/inventree_test_report.html:104 +#: stock/models.py:2666 templates/js/translated/company.js:1167 +#: templates/js/translated/company.js:1420 templates/js/translated/part.js:1499 #: templates/js/translated/stock.js:1607 msgid "Value" msgstr "" -#: company/models.py:601 +#: company/models.py:598 msgid "Parameter value" msgstr "" -#: company/models.py:608 company/templates/company/supplier_part.html:168 -#: part/admin.py:57 part/models.py:1147 part/models.py:3771 -#: part/templates/part/part_base.html:293 -#: templates/js/translated/company.js:1425 templates/js/translated/part.js:1518 +#: company/models.py:605 company/templates/company/supplier_part.html:169 +#: part/admin.py:57 part/models.py:1208 part/models.py:3822 +#: part/templates/part/part_base.html:301 +#: templates/js/translated/company.js:1426 templates/js/translated/part.js:1518 #: templates/js/translated/part.js:1622 templates/js/translated/part.js:2376 msgid "Units" msgstr "" -#: company/models.py:609 +#: company/models.py:606 msgid "Parameter units" msgstr "" -#: company/models.py:662 company/templates/company/supplier_part.html:7 -#: company/templates/company/supplier_part.html:24 order/api.py:442 -#: order/serializers.py:491 stock/models.py:798 -#: stock/templates/stock/item_base.html:233 -#: templates/js/translated/build.js:1052 -#: templates/js/translated/company.js:1600 -#: templates/js/translated/purchase_order.js:752 -#: templates/js/translated/stock.js:2365 +#: company/models.py:659 company/templates/company/supplier_part.html:8 +#: company/templates/company/supplier_part.html:25 order/api.py:392 +#: order/serializers.py:576 stock/models.py:875 +#: stock/templates/stock/item_base.html:230 +#: templates/js/translated/build.js:1055 +#: templates/js/translated/company.js:1601 +#: templates/js/translated/purchase_order.js:735 +#: templates/js/translated/stock.js:2366 msgid "Supplier Part" msgstr "" -#: company/models.py:719 +#: company/models.py:716 msgid "Pack units must be compatible with the base part units" msgstr "" -#: company/models.py:726 +#: company/models.py:723 msgid "Pack units must be greater than zero" msgstr "" -#: company/models.py:740 +#: company/models.py:737 msgid "Linked manufacturer part must reference the same base part" msgstr "" -#: company/models.py:789 company/templates/company/company_base.html:87 -#: company/templates/company/supplier_part.html:129 order/models.py:491 -#: order/templates/order/order_base.html:141 part/bom.py:280 part/bom.py:318 -#: part/serializers.py:538 plugin/builtin/suppliers/digikey.py:25 +#: company/models.py:786 company/templates/company/company_base.html:87 +#: company/templates/company/supplier_part.html:130 order/models.py:503 +#: order/templates/order/order_base.html:150 part/bom.py:279 part/bom.py:314 +#: part/serializers.py:582 plugin/builtin/suppliers/digikey.py:25 #: plugin/builtin/suppliers/lcsc.py:26 plugin/builtin/suppliers/mouser.py:24 -#: plugin/builtin/suppliers/tme.py:26 stock/templates/stock/item_base.html:224 +#: plugin/builtin/suppliers/tme.py:26 stock/templates/stock/item_base.html:221 #: templates/email/overdue_purchase_order.html:16 -#: templates/js/translated/company.js:350 -#: templates/js/translated/company.js:511 -#: templates/js/translated/company.js:1584 templates/js/translated/part.js:1775 +#: templates/js/translated/company.js:351 +#: templates/js/translated/company.js:512 +#: templates/js/translated/company.js:1585 templates/js/translated/part.js:1775 #: templates/js/translated/pricing.js:498 -#: templates/js/translated/purchase_order.js:1759 +#: templates/js/translated/purchase_order.js:1743 #: templates/js/translated/table_filters.js:816 msgid "Supplier" msgstr "" -#: company/models.py:790 +#: company/models.py:787 msgid "Select supplier" msgstr "" -#: company/models.py:796 part/serializers.py:549 +#: company/models.py:793 part/serializers.py:593 msgid "Supplier stock keeping unit" msgstr "" -#: company/models.py:802 +#: company/models.py:799 msgid "Is this supplier part active?" msgstr "" -#: company/models.py:812 +#: company/models.py:809 msgid "Select manufacturer part" msgstr "" -#: company/models.py:819 +#: company/models.py:816 msgid "URL for external supplier part link" msgstr "" -#: company/models.py:828 +#: company/models.py:825 msgid "Supplier part description" msgstr "" -#: company/models.py:835 company/templates/company/supplier_part.html:187 -#: order/serializers.py:698 part/admin.py:415 part/models.py:4288 +#: company/models.py:832 company/templates/company/supplier_part.html:188 +#: order/serializers.py:783 part/admin.py:415 part/models.py:4345 #: part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_bill_of_materials_report.html:140 #: report/templates/report/inventree_purchase_order_report.html:32 #: report/templates/report/inventree_return_order_report.html:27 #: report/templates/report/inventree_sales_order_report.html:32 #: report/templates/report/inventree_stock_location_report.html:105 -#: stock/serializers.py:776 templates/js/translated/purchase_order.js:1185 -#: templates/js/translated/purchase_order.js:1344 +#: stock/serializers.py:807 templates/js/translated/purchase_order.js:1168 +#: templates/js/translated/purchase_order.js:1327 msgid "Note" msgstr "" -#: company/models.py:844 part/models.py:2117 +#: company/models.py:841 part/models.py:2177 msgid "base cost" msgstr "" -#: company/models.py:845 part/models.py:2118 +#: company/models.py:842 part/models.py:2178 msgid "Minimum charge (e.g. stocking fee)" msgstr "" -#: company/models.py:853 +#: company/models.py:850 msgid "Part packaging" msgstr "" -#: company/models.py:858 templates/js/translated/company.js:1651 +#: company/models.py:855 templates/js/translated/company.js:1652 #: templates/js/translated/part.js:1828 templates/js/translated/part.js:1884 -#: templates/js/translated/purchase_order.js:311 -#: templates/js/translated/purchase_order.js:841 -#: templates/js/translated/purchase_order.js:1103 -#: templates/js/translated/purchase_order.js:2154 -#: templates/js/translated/purchase_order.js:2171 +#: templates/js/translated/purchase_order.js:294 +#: templates/js/translated/purchase_order.js:824 +#: templates/js/translated/purchase_order.js:1086 +#: templates/js/translated/purchase_order.js:2138 +#: templates/js/translated/purchase_order.js:2155 msgid "Pack Quantity" msgstr "" -#: company/models.py:860 +#: company/models.py:857 msgid "Total quantity supplied in a single pack. Leave empty for single items." msgstr "" -#: company/models.py:879 part/models.py:2124 +#: company/models.py:876 part/models.py:2184 msgid "multiple" msgstr "" -#: company/models.py:880 +#: company/models.py:877 msgid "Order multiple" msgstr "" -#: company/models.py:892 +#: company/models.py:889 msgid "Quantity available from supplier" msgstr "" -#: company/models.py:898 +#: company/models.py:895 msgid "Availability Updated" msgstr "" -#: company/models.py:899 +#: company/models.py:896 msgid "Date of last update of availability data" msgstr "" -#: company/models.py:1027 +#: company/models.py:1024 msgid "Supplier Price Break" msgstr "" -#: company/serializers.py:174 +#: company/serializers.py:178 msgid "Default currency used for this supplier" msgstr "" -#: company/serializers.py:210 +#: company/serializers.py:214 msgid "Company Name" msgstr "" -#: company/serializers.py:393 part/admin.py:126 part/serializers.py:898 -#: part/templates/part/part_base.html:197 -#: templates/js/translated/company.js:1689 +#: company/serializers.py:397 part/admin.py:126 part/serializers.py:950 +#: part/templates/part/part_base.html:198 stock/serializers.py:474 +#: templates/js/translated/company.js:1690 #: templates/js/translated/table_filters.js:362 msgid "In Stock" msgstr "" #: company/templates/company/company_base.html:16 -#: part/templates/part/part_base.html:146 -#: templates/js/translated/company.js:1287 -#: templates/js/translated/company.js:1575 -#: templates/js/translated/model_renderers.js:313 +#: part/templates/part/part_base.html:147 +#: templates/js/translated/company.js:1288 +#: templates/js/translated/company.js:1576 +#: templates/js/translated/model_renderers.js:316 #: templates/js/translated/part.js:817 templates/js/translated/part.js:1225 msgid "Inactive" msgstr "" #: company/templates/company/company_base.html:27 -#: templates/js/translated/purchase_order.js:242 +#: templates/js/translated/purchase_order.js:224 msgid "Create Purchase Order" msgstr "" @@ -4590,7 +4769,7 @@ msgid "Edit company information" msgstr "" #: company/templates/company/company_base.html:39 -#: templates/js/translated/company.js:445 +#: templates/js/translated/company.js:446 msgid "Edit Company" msgstr "" @@ -4605,11 +4784,12 @@ msgstr "" #: company/templates/company/company_base.html:53 #: company/templates/company/manufacturer_part.html:51 -#: company/templates/company/supplier_part.html:83 +#: company/templates/company/supplier_part.html:84 #: part/templates/part/part_thumb.html:20 #: report/templates/report/inventree_build_order_report.html:98 #: report/templates/report/inventree_purchase_order_report.html:40 #: report/templates/report/inventree_sales_order_report.html:40 +#: report/templates/report/inventree_sales_order_shipment_report.html:37 #: report/templates/report/inventree_test_report.html:84 #: report/templates/report/inventree_test_report.html:162 msgid "Part image" @@ -4630,16 +4810,16 @@ msgstr "" msgid "Delete image" msgstr "" -#: company/templates/company/company_base.html:92 order/models.py:990 -#: order/models.py:2147 order/templates/order/return_order_base.html:134 -#: order/templates/order/sales_order_base.html:151 stock/models.py:840 -#: stock/models.py:841 stock/serializers.py:1329 -#: stock/templates/stock/item_base.html:405 +#: company/templates/company/company_base.html:92 order/models.py:1017 +#: order/models.py:2186 order/templates/order/return_order_base.html:135 +#: order/templates/order/sales_order_base.html:152 stock/models.py:917 +#: stock/models.py:918 stock/serializers.py:1360 +#: stock/templates/stock/item_base.html:402 #: templates/email/overdue_sales_order.html:16 -#: templates/js/translated/company.js:503 +#: templates/js/translated/company.js:504 #: templates/js/translated/return_order.js:295 -#: templates/js/translated/sales_order.js:820 -#: templates/js/translated/stock.js:3043 +#: templates/js/translated/sales_order.js:779 +#: templates/js/translated/stock.js:3044 #: templates/js/translated/table_filters.js:820 msgid "Customer" msgstr "" @@ -4653,7 +4833,7 @@ msgid "Phone" msgstr "" #: company/templates/company/company_base.html:211 -#: part/templates/part/part_base.html:536 +#: part/templates/part/part_base.html:544 msgid "Remove Image" msgstr "" @@ -4662,19 +4842,19 @@ msgid "Remove associated image from this company" msgstr "" #: company/templates/company/company_base.html:214 -#: part/templates/part/part_base.html:539 +#: part/templates/part/part_base.html:547 #: templates/InvenTree/settings/user.html:88 #: templates/InvenTree/settings/user_sso.html:43 msgid "Remove" msgstr "" #: company/templates/company/company_base.html:243 -#: part/templates/part/part_base.html:568 +#: part/templates/part/part_base.html:576 msgid "Upload Image" msgstr "" #: company/templates/company/company_base.html:258 -#: part/templates/part/part_base.html:622 +#: part/templates/part/part_base.html:630 msgid "Download Image" msgstr "" @@ -4714,7 +4894,7 @@ msgstr "" #: company/templates/company/detail.html:75 #: company/templates/company/sidebar.html:12 #: company/templates/company/supplier_part_sidebar.html:7 -#: order/templates/order/order_base.html:13 +#: order/templates/order/order_base.html:14 #: order/templates/order/purchase_orders.html:8 #: order/templates/order/purchase_orders.html:12 #: part/templates/part/detail.html:122 part/templates/part/part_sidebar.html:35 @@ -4737,7 +4917,7 @@ msgstr "" #: company/templates/company/detail.html:101 #: company/templates/company/sidebar.html:21 -#: order/templates/order/sales_order_base.html:13 +#: order/templates/order/sales_order_base.html:14 #: order/templates/order/sales_orders.html:8 #: order/templates/order/sales_orders.html:15 #: part/templates/part/detail.html:143 part/templates/part/part_sidebar.html:39 @@ -4764,7 +4944,7 @@ msgstr "" #: company/templates/company/detail.html:142 #: company/templates/company/sidebar.html:29 -#: order/templates/order/return_order_base.html:13 +#: order/templates/order/return_order_base.html:14 #: order/templates/order/return_orders.html:8 #: order/templates/order/return_orders.html:15 #: templates/InvenTree/settings/sidebar.html:61 @@ -4811,24 +4991,24 @@ msgid "Manufacturers" msgstr "" #: company/templates/company/manufacturer_part.html:35 -#: company/templates/company/supplier_part.html:227 -#: part/templates/part/detail.html:125 part/templates/part/part_base.html:83 +#: company/templates/company/supplier_part.html:228 +#: part/templates/part/detail.html:125 part/templates/part/part_base.html:84 msgid "Order part" msgstr "" #: company/templates/company/manufacturer_part.html:39 -#: templates/js/translated/company.js:1343 +#: templates/js/translated/company.js:1344 msgid "Edit manufacturer part" msgstr "" #: company/templates/company/manufacturer_part.html:43 -#: templates/js/translated/company.js:1344 +#: templates/js/translated/company.js:1345 msgid "Delete manufacturer part" msgstr "" #: company/templates/company/manufacturer_part.html:65 -#: company/templates/company/supplier_part.html:97 order/api.py:448 -#: order/serializers.py:564 +#: company/templates/company/supplier_part.html:98 order/api.py:411 +#: order/serializers.py:649 msgid "Internal Part" msgstr "" @@ -4837,8 +5017,8 @@ msgid "No manufacturer information available" msgstr "" #: company/templates/company/manufacturer_part.html:119 -#: company/templates/company/supplier_part.html:15 company/views.py:31 -#: part/admin.py:122 part/serializers.py:904 +#: company/templates/company/supplier_part.html:16 company/views.py:31 +#: part/admin.py:122 part/serializers.py:956 #: part/templates/part/part_sidebar.html:33 templates/InvenTree/search.html:190 #: templates/navbar.html:48 msgid "Suppliers" @@ -4887,112 +5067,113 @@ msgstr "" msgid "Contacts" msgstr "" -#: company/templates/company/supplier_part.html:50 -#: templates/js/translated/company.js:1526 +#: company/templates/company/supplier_part.html:51 +#: templates/js/translated/company.js:1527 msgid "Supplier part actions" msgstr "" -#: company/templates/company/supplier_part.html:55 #: company/templates/company/supplier_part.html:56 -#: company/templates/company/supplier_part.html:228 +#: company/templates/company/supplier_part.html:57 +#: company/templates/company/supplier_part.html:229 #: part/templates/part/detail.html:126 msgid "Order Part" msgstr "" -#: company/templates/company/supplier_part.html:60 #: company/templates/company/supplier_part.html:61 +#: company/templates/company/supplier_part.html:62 msgid "Update Availability" msgstr "" -#: company/templates/company/supplier_part.html:63 #: company/templates/company/supplier_part.html:64 -#: templates/js/translated/company.js:294 +#: company/templates/company/supplier_part.html:65 +#: templates/js/translated/company.js:295 msgid "Edit Supplier Part" msgstr "" -#: company/templates/company/supplier_part.html:68 #: company/templates/company/supplier_part.html:69 -#: templates/js/translated/company.js:269 +#: company/templates/company/supplier_part.html:70 +#: templates/js/translated/company.js:270 msgid "Duplicate Supplier Part" msgstr "" -#: company/templates/company/supplier_part.html:73 +#: company/templates/company/supplier_part.html:74 msgid "Delete Supplier Part" msgstr "" -#: company/templates/company/supplier_part.html:74 +#: company/templates/company/supplier_part.html:75 msgid "Delete Supplier Part" msgstr "" -#: company/templates/company/supplier_part.html:133 +#: company/templates/company/supplier_part.html:134 +#: order/templates/order/order_base.html:155 msgid "No supplier information available" msgstr "" -#: company/templates/company/supplier_part.html:139 order/serializers.py:553 -#: part/bom.py:287 part/bom.py:319 part/serializers.py:548 -#: templates/js/translated/company.js:349 templates/js/translated/part.js:1793 +#: company/templates/company/supplier_part.html:140 order/serializers.py:638 +#: part/bom.py:286 part/bom.py:315 part/serializers.py:592 +#: templates/js/translated/company.js:350 templates/js/translated/part.js:1793 #: templates/js/translated/pricing.js:510 -#: templates/js/translated/purchase_order.js:1920 -#: templates/js/translated/purchase_order.js:2098 +#: templates/js/translated/purchase_order.js:1904 +#: templates/js/translated/purchase_order.js:2082 msgid "SKU" msgstr "" -#: company/templates/company/supplier_part.html:206 +#: company/templates/company/supplier_part.html:207 msgid "Supplier Part Stock" msgstr "" -#: company/templates/company/supplier_part.html:209 -#: part/templates/part/detail.html:24 stock/templates/stock/location.html:204 +#: company/templates/company/supplier_part.html:210 +#: part/templates/part/detail.html:24 stock/templates/stock/location.html:205 msgid "Create new stock item" msgstr "" -#: company/templates/company/supplier_part.html:210 -#: part/templates/part/detail.html:25 stock/templates/stock/location.html:205 +#: company/templates/company/supplier_part.html:211 +#: part/templates/part/detail.html:25 stock/templates/stock/location.html:206 #: templates/js/translated/stock.js:543 msgid "New Stock Item" msgstr "" -#: company/templates/company/supplier_part.html:223 +#: company/templates/company/supplier_part.html:224 msgid "Supplier Part Orders" msgstr "" -#: company/templates/company/supplier_part.html:246 +#: company/templates/company/supplier_part.html:247 msgid "Pricing Information" msgstr "" -#: company/templates/company/supplier_part.html:251 -#: templates/js/translated/company.js:398 +#: company/templates/company/supplier_part.html:252 +#: templates/js/translated/company.js:399 #: templates/js/translated/pricing.js:684 msgid "Add Price Break" msgstr "" -#: company/templates/company/supplier_part.html:270 +#: company/templates/company/supplier_part.html:271 msgid "Supplier Part Notes" msgstr "" -#: company/templates/company/supplier_part.html:305 +#: company/templates/company/supplier_part.html:306 msgid "Supplier Part QR Code" msgstr "" -#: company/templates/company/supplier_part.html:316 +#: company/templates/company/supplier_part.html:317 msgid "Link Barcode to Supplier Part" msgstr "" -#: company/templates/company/supplier_part.html:388 +#: company/templates/company/supplier_part.html:389 msgid "Update Part Availability" msgstr "" #: company/templates/company/supplier_part_sidebar.html:5 -#: part/serializers.py:902 part/stocktake.py:223 +#: part/serializers.py:954 part/stocktake.py:223 #: part/templates/part/category.html:180 #: part/templates/part/category_sidebar.html:17 stock/admin.py:68 -#: stock/serializers.py:1014 stock/serializers.py:1192 -#: stock/templates/stock/location.html:167 -#: stock/templates/stock/location.html:188 -#: stock/templates/stock/location.html:200 +#: stock/serializers.py:1045 stock/serializers.py:1223 +#: stock/templates/stock/location.html:168 +#: stock/templates/stock/location.html:189 +#: stock/templates/stock/location.html:201 #: stock/templates/stock/location_sidebar.html:7 #: templates/InvenTree/search.html:155 templates/js/translated/part.js:1067 -#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2850 +#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2851 #: users/models.py:206 msgid "Stock Items" msgstr "" @@ -5022,99 +5203,99 @@ msgstr "" msgid "New Company" msgstr "" -#: generic/states/tests.py:18 order/status_codes.py:13 +#: generic/states/fields.py:118 +msgid "Custom status key" +msgstr "" + +#: generic/states/fields.py:119 +msgid "Additional status information for this item" +msgstr "" + +#: generic/states/tests.py:22 order/status_codes.py:13 msgid "Placed" msgstr "" -#: importer/mixins.py:263 +#: importer/mixins.py:261 msgid "Invalid export format" msgstr "" -#: importer/models.py:59 -msgid "Timestamp" -msgstr "" - -#: importer/models.py:64 +#: importer/models.py:65 msgid "Data file to import" msgstr "" -#: importer/models.py:73 templates/js/translated/tables.js:558 +#: importer/models.py:74 templates/js/translated/tables.js:558 msgid "Columns" msgstr "" -#: importer/models.py:84 +#: importer/models.py:85 msgid "Import status" msgstr "" -#: importer/models.py:94 +#: importer/models.py:95 msgid "Field Defaults" msgstr "" -#: importer/models.py:101 +#: importer/models.py:102 msgid "Field Overrides" msgstr "" -#: importer/models.py:108 +#: importer/models.py:109 msgid "Field Filters" msgstr "" -#: importer/models.py:230 +#: importer/models.py:239 msgid "Some required fields have not been mapped" msgstr "" -#: importer/models.py:387 +#: importer/models.py:396 msgid "Column is already mapped to a database field" msgstr "" -#: importer/models.py:392 +#: importer/models.py:401 msgid "Field is already mapped to a data column" msgstr "" -#: importer/models.py:401 +#: importer/models.py:410 msgid "Column mapping must be linked to a valid import session" msgstr "" -#: importer/models.py:406 +#: importer/models.py:415 msgid "Column does not exist in the data file" msgstr "" -#: importer/models.py:413 +#: importer/models.py:422 msgid "Field does not exist in the target model" msgstr "" -#: importer/models.py:417 +#: importer/models.py:426 msgid "Selected field is read-only" msgstr "" -#: importer/models.py:422 importer/models.py:493 +#: importer/models.py:431 importer/models.py:502 msgid "Import Session" msgstr "" -#: importer/models.py:426 +#: importer/models.py:435 msgid "Field" msgstr "" -#: importer/models.py:428 +#: importer/models.py:437 msgid "Column" msgstr "" -#: importer/models.py:497 +#: importer/models.py:506 msgid "Row Index" msgstr "" -#: importer/models.py:500 +#: importer/models.py:509 msgid "Original row data" msgstr "" -#: importer/models.py:503 part/models.py:3951 -msgid "Data" -msgstr "" - -#: importer/models.py:505 machine/models.py:110 +#: importer/models.py:514 machine/models.py:110 msgid "Errors" msgstr "" -#: importer/models.py:507 part/api.py:873 +#: importer/models.py:516 part/api.py:857 msgid "Valid" msgstr "" @@ -5166,19 +5347,19 @@ msgstr "" msgid "Row has already been completed" msgstr "" -#: importer/status_codes.py:11 +#: importer/status_codes.py:13 msgid "Initializing" msgstr "" -#: importer/status_codes.py:12 +#: importer/status_codes.py:18 msgid "Mapping Columns" msgstr "" -#: importer/status_codes.py:13 +#: importer/status_codes.py:21 msgid "Importing Data" msgstr "" -#: importer/status_codes.py:16 +#: importer/status_codes.py:24 msgid "Processing Data" msgstr "" @@ -5202,52 +5383,52 @@ msgstr "" msgid "Value must be a valid dictionary object" msgstr "" -#: machine/machine_types/label_printer.py:215 +#: machine/machine_types/label_printer.py:216 msgid "Copies" msgstr "" -#: machine/machine_types/label_printer.py:216 +#: machine/machine_types/label_printer.py:217 msgid "Number of copies to print for each label" msgstr "" -#: machine/machine_types/label_printer.py:231 +#: machine/machine_types/label_printer.py:232 msgid "Connected" msgstr "" -#: machine/machine_types/label_printer.py:232 order/api.py:1410 -#: templates/js/translated/sales_order.js:1078 +#: machine/machine_types/label_printer.py:233 order/api.py:1532 +#: templates/js/translated/sales_order.js:1044 msgid "Unknown" msgstr "" -#: machine/machine_types/label_printer.py:233 +#: machine/machine_types/label_printer.py:234 msgid "Printing" msgstr "" -#: machine/machine_types/label_printer.py:234 +#: machine/machine_types/label_printer.py:235 msgid "No media" msgstr "" -#: machine/machine_types/label_printer.py:235 +#: machine/machine_types/label_printer.py:236 msgid "Paper jam" msgstr "" -#: machine/machine_types/label_printer.py:236 +#: machine/machine_types/label_printer.py:237 msgid "Disconnected" msgstr "" -#: machine/machine_types/label_printer.py:243 +#: machine/machine_types/label_printer.py:244 msgid "Label Printer" msgstr "" -#: machine/machine_types/label_printer.py:244 +#: machine/machine_types/label_printer.py:245 msgid "Directly print labels for various items." msgstr "" -#: machine/machine_types/label_printer.py:250 +#: machine/machine_types/label_printer.py:251 msgid "Printer Location" msgstr "" -#: machine/machine_types/label_printer.py:251 +#: machine/machine_types/label_printer.py:252 msgid "Scope the printer to a specific location" msgstr "" @@ -5307,79 +5488,75 @@ msgstr "" #: report/templates/report/inventree_purchase_order_report.html:31 #: report/templates/report/inventree_sales_order_report.html:31 #: templates/js/translated/order.js:352 -#: templates/js/translated/purchase_order.js:2195 -#: templates/js/translated/sales_order.js:1883 +#: templates/js/translated/purchase_order.js:2179 +#: templates/js/translated/sales_order.js:1864 msgid "Total Price" msgstr "" -#: order/api.py:80 order/api.py:151 order/serializers.py:93 -#: order/templates/order/order_base.html:123 -#: order/templates/order/return_order_base.html:116 -#: order/templates/order/sales_order_base.html:125 +#: order/api.py:78 order/api.py:149 order/serializers.py:124 +#: order/templates/order/order_base.html:124 +#: order/templates/order/return_order_base.html:117 +#: order/templates/order/sales_order_base.html:126 msgid "Order Status" msgstr "" -#: order/api.py:88 order/templates/order/order_base.html:111 -#: order/templates/order/return_order_base.html:104 -#: order/templates/order/sales_order_base.html:113 +#: order/api.py:86 order/templates/order/order_base.html:112 +#: order/templates/order/return_order_base.html:105 +#: order/templates/order/sales_order_base.html:114 msgid "Order Reference" msgstr "" -#: order/api.py:116 templates/js/translated/table_filters.js:93 +#: order/api.py:114 order/api.py:1022 +#: templates/js/translated/table_filters.js:93 #: templates/js/translated/table_filters.js:625 #: templates/js/translated/table_filters.js:651 #: templates/js/translated/table_filters.js:666 msgid "Outstanding" msgstr "" -#: order/api.py:132 +#: order/api.py:130 msgid "Has Project Code" msgstr "" -#: order/api.py:155 templates/js/translated/table_filters.js:201 +#: order/api.py:153 templates/js/translated/table_filters.js:201 #: templates/js/translated/table_filters.js:791 msgid "Has Pricing" msgstr "" -#: order/api.py:230 -msgid "No matching purchase order found" -msgstr "" - -#: order/api.py:425 order/api.py:763 order/models.py:1484 order/models.py:1598 -#: order/models.py:1649 order/models.py:1764 order/models.py:1923 -#: order/models.py:2383 order/models.py:2439 -#: templates/js/translated/sales_order.js:1524 +#: order/api.py:375 order/api.py:771 order/api.py:986 order/models.py:1500 +#: order/models.py:1614 order/models.py:1665 order/models.py:1793 +#: order/models.py:1956 order/models.py:2422 order/models.py:2478 +#: templates/js/translated/sales_order.js:1490 msgid "Order" msgstr "" -#: order/api.py:429 order/api.py:784 +#: order/api.py:379 order/api.py:809 msgid "Order Complete" msgstr "" -#: order/api.py:452 +#: order/api.py:430 msgid "Order Pending" msgstr "" -#: order/api.py:1404 order/models.py:379 order/models.py:1485 -#: order/models.py:1599 order/templates/order/order_base.html:9 -#: order/templates/order/order_base.html:18 +#: order/api.py:1526 order/models.py:386 order/models.py:1501 +#: order/models.py:1615 order/templates/order/order_base.html:10 +#: order/templates/order/order_base.html:19 #: report/templates/report/inventree_purchase_order_report.html:14 -#: stock/serializers.py:120 stock/templates/stock/item_base.html:176 +#: stock/serializers.py:121 stock/templates/stock/item_base.html:173 #: templates/email/overdue_purchase_order.html:15 #: templates/js/translated/part.js:1752 templates/js/translated/pricing.js:804 -#: templates/js/translated/purchase_order.js:168 -#: templates/js/translated/purchase_order.js:753 -#: templates/js/translated/purchase_order.js:1743 -#: templates/js/translated/stock.js:2345 templates/js/translated/stock.js:2991 +#: templates/js/translated/purchase_order.js:736 +#: templates/js/translated/purchase_order.js:1727 +#: templates/js/translated/stock.js:2346 templates/js/translated/stock.js:2992 msgid "Purchase Order" msgstr "" -#: order/api.py:1408 order/models.py:2091 order/models.py:2384 -#: order/models.py:2440 order/templates/order/return_order_base.html:9 -#: order/templates/order/return_order_base.html:28 +#: order/api.py:1530 order/models.py:2124 order/models.py:2423 +#: order/models.py:2479 order/templates/order/return_order_base.html:10 +#: order/templates/order/return_order_base.html:29 #: report/templates/report/inventree_return_order_report.html:13 #: templates/js/translated/return_order.js:280 -#: templates/js/translated/stock.js:3025 +#: templates/js/translated/stock.js:3026 msgid "Return Order" msgstr "" @@ -5387,751 +5564,782 @@ msgstr "" msgid "Total price for this order" msgstr "" -#: order/models.py:95 order/serializers.py:71 +#: order/models.py:95 order/serializers.py:73 msgid "Order Currency" msgstr "" -#: order/models.py:98 order/serializers.py:72 +#: order/models.py:98 order/serializers.py:74 msgid "Currency for this order (leave blank to use company default)" msgstr "" -#: order/models.py:246 +#: order/models.py:243 msgid "Contact does not match selected company" msgstr "" -#: order/models.py:289 +#: order/models.py:296 msgid "Order description (optional)" msgstr "" -#: order/models.py:298 +#: order/models.py:305 msgid "Select project code for this order" msgstr "" -#: order/models.py:302 order/models.py:1385 order/models.py:1817 +#: order/models.py:309 order/models.py:1402 order/models.py:1846 msgid "Link to external page" msgstr "" -#: order/models.py:310 +#: order/models.py:317 msgid "Expected date for order delivery. Order will be overdue after this date." msgstr "" -#: order/models.py:324 +#: order/models.py:331 msgid "Created By" msgstr "" -#: order/models.py:332 +#: order/models.py:339 msgid "User or group responsible for this order" msgstr "" -#: order/models.py:343 +#: order/models.py:350 msgid "Point of contact for this order" msgstr "" -#: order/models.py:353 +#: order/models.py:360 msgid "Company address for this order" msgstr "" -#: order/models.py:468 order/models.py:979 +#: order/models.py:480 order/models.py:1006 msgid "Order reference" msgstr "" -#: order/models.py:477 +#: order/models.py:489 msgid "Purchase order status" msgstr "" -#: order/models.py:492 +#: order/models.py:504 msgid "Company from which the items are being ordered" msgstr "" -#: order/models.py:503 order/templates/order/order_base.html:153 -#: templates/js/translated/purchase_order.js:1772 +#: order/models.py:515 order/templates/order/order_base.html:162 +#: templates/js/translated/purchase_order.js:1756 msgid "Supplier Reference" msgstr "" -#: order/models.py:504 +#: order/models.py:516 msgid "Supplier order reference code" msgstr "" -#: order/models.py:513 +#: order/models.py:525 msgid "received by" msgstr "" -#: order/models.py:519 order/models.py:2173 +#: order/models.py:531 order/models.py:2212 msgid "Issue Date" msgstr "" -#: order/models.py:520 order/models.py:2174 +#: order/models.py:532 order/models.py:2213 msgid "Date order was issued" msgstr "" -#: order/models.py:527 order/models.py:2181 +#: order/models.py:539 order/models.py:2220 msgid "Date order was completed" msgstr "" -#: order/models.py:571 +#: order/models.py:549 order/models.py:1552 +msgid "Destination for received items" +msgstr "" + +#: order/models.py:593 msgid "Part supplier must match PO supplier" msgstr "" -#: order/models.py:806 +#: order/models.py:828 msgid "Quantity must be a positive number" msgstr "" -#: order/models.py:991 +#: order/models.py:1018 msgid "Company to which the items are being sold" msgstr "" -#: order/models.py:1003 +#: order/models.py:1030 msgid "Sales order status" msgstr "" -#: order/models.py:1014 order/models.py:2166 +#: order/models.py:1041 order/models.py:2205 msgid "Customer Reference " msgstr "" -#: order/models.py:1015 order/models.py:2167 +#: order/models.py:1042 order/models.py:2206 msgid "Customer order reference code" msgstr "" -#: order/models.py:1019 order/models.py:1771 -#: templates/js/translated/sales_order.js:879 -#: templates/js/translated/sales_order.js:1060 +#: order/models.py:1046 order/models.py:1800 +#: templates/js/translated/sales_order.js:838 +#: templates/js/translated/sales_order.js:1026 msgid "Shipment Date" msgstr "" -#: order/models.py:1028 +#: order/models.py:1055 msgid "shipped by" msgstr "" -#: order/models.py:1077 +#: order/models.py:1094 msgid "Order is already complete" msgstr "" -#: order/models.py:1080 +#: order/models.py:1097 msgid "Order is already cancelled" msgstr "" -#: order/models.py:1084 +#: order/models.py:1101 msgid "Only an open order can be marked as complete" msgstr "" -#: order/models.py:1088 +#: order/models.py:1105 msgid "Order cannot be completed as there are incomplete shipments" msgstr "" -#: order/models.py:1093 +#: order/models.py:1110 msgid "Order cannot be completed as there are incomplete line items" msgstr "" -#: order/models.py:1357 +#: order/models.py:1374 msgid "Item quantity" msgstr "" -#: order/models.py:1374 +#: order/models.py:1391 msgid "Line item reference" msgstr "" -#: order/models.py:1381 +#: order/models.py:1398 msgid "Line item notes" msgstr "" -#: order/models.py:1393 +#: order/models.py:1410 msgid "Target date for this line item (leave blank to use the target date from the order)" msgstr "" -#: order/models.py:1414 +#: order/models.py:1431 msgid "Line item description (optional)" msgstr "" -#: order/models.py:1420 -msgid "Context" -msgstr "" - -#: order/models.py:1421 +#: order/models.py:1438 msgid "Additional context for this line" msgstr "" -#: order/models.py:1431 +#: order/models.py:1448 msgid "Unit price" msgstr "" -#: order/models.py:1445 +#: order/models.py:1462 msgid "Purchase Order Line Item" msgstr "" -#: order/models.py:1469 +#: order/models.py:1486 msgid "Supplier part must match supplier" msgstr "" -#: order/models.py:1476 -msgid "deleted" -msgstr "" - -#: order/models.py:1504 +#: order/models.py:1520 msgid "Supplier part" msgstr "" -#: order/models.py:1511 order/templates/order/order_base.html:201 +#: order/models.py:1527 order/templates/order/order_base.html:210 #: templates/js/translated/part.js:1876 templates/js/translated/part.js:1908 -#: templates/js/translated/purchase_order.js:1369 -#: templates/js/translated/purchase_order.js:2239 +#: templates/js/translated/purchase_order.js:1352 +#: templates/js/translated/purchase_order.js:2223 #: templates/js/translated/return_order.js:762 #: templates/js/translated/table_filters.js:119 #: templates/js/translated/table_filters.js:605 msgid "Received" msgstr "" -#: order/models.py:1512 +#: order/models.py:1528 msgid "Number of items received" msgstr "" -#: order/models.py:1520 stock/models.py:959 stock/serializers.py:610 -#: stock/templates/stock/item_base.html:183 -#: templates/js/translated/stock.js:2396 +#: order/models.py:1536 stock/models.py:1036 stock/serializers.py:637 +#: stock/templates/stock/item_base.html:180 +#: templates/js/translated/stock.js:2397 msgid "Purchase Price" msgstr "" -#: order/models.py:1521 +#: order/models.py:1537 msgid "Unit purchase price" msgstr "" -#: order/models.py:1536 -msgid "Where does the Purchaser want this item to be stored?" -msgstr "" - -#: order/models.py:1587 +#: order/models.py:1603 msgid "Purchase Order Extra Line" msgstr "" -#: order/models.py:1616 +#: order/models.py:1632 msgid "Sales Order Line Item" msgstr "" -#: order/models.py:1637 +#: order/models.py:1653 msgid "Virtual part cannot be assigned to a sales order" msgstr "" -#: order/models.py:1642 +#: order/models.py:1658 msgid "Only salable parts can be assigned to a sales order" msgstr "" -#: order/models.py:1668 part/templates/part/part_pricing.html:107 -#: part/templates/part/prices.html:139 templates/js/translated/pricing.js:957 +#: order/models.py:1684 part/templates/part/part_pricing.html:107 +#: part/templates/part/prices.html:139 templates/js/translated/pricing.js:955 msgid "Sale Price" msgstr "" -#: order/models.py:1669 +#: order/models.py:1685 msgid "Unit sale price" msgstr "" -#: order/models.py:1678 order/status_codes.py:48 -#: templates/js/translated/sales_order.js:1559 -#: templates/js/translated/sales_order.js:1680 -#: templates/js/translated/sales_order.js:1993 +#: order/models.py:1694 order/status_codes.py:50 +#: templates/js/translated/sales_order.js:1525 +#: templates/js/translated/sales_order.js:1661 +#: templates/js/translated/sales_order.js:1974 msgid "Shipped" msgstr "" -#: order/models.py:1679 +#: order/models.py:1695 msgid "Shipped quantity" msgstr "" -#: order/models.py:1751 +#: order/models.py:1769 msgid "Sales Order Shipment" msgstr "" -#: order/models.py:1772 +#: order/models.py:1801 msgid "Date of shipment" msgstr "" -#: order/models.py:1778 templates/js/translated/sales_order.js:1072 +#: order/models.py:1807 templates/js/translated/sales_order.js:1038 msgid "Delivery Date" msgstr "" -#: order/models.py:1779 +#: order/models.py:1808 msgid "Date of delivery of shipment" msgstr "" -#: order/models.py:1787 +#: order/models.py:1816 msgid "Checked By" msgstr "" -#: order/models.py:1788 +#: order/models.py:1817 msgid "User who checked this shipment" msgstr "" -#: order/models.py:1795 order/models.py:2018 order/serializers.py:1475 -#: order/serializers.py:1585 templates/js/translated/model_renderers.js:455 +#: order/models.py:1824 order/models.py:2051 order/serializers.py:1601 +#: order/serializers.py:1725 +#: report/templates/report/inventree_sales_order_shipment_report.html:14 +#: templates/js/translated/model_renderers.js:458 +#: templates/js/translated/sales_order.js:1615 msgid "Shipment" msgstr "" -#: order/models.py:1796 +#: order/models.py:1825 msgid "Shipment number" msgstr "" -#: order/models.py:1804 +#: order/models.py:1833 msgid "Tracking Number" msgstr "" -#: order/models.py:1805 +#: order/models.py:1834 msgid "Shipment tracking information" msgstr "" -#: order/models.py:1812 +#: order/models.py:1841 msgid "Invoice Number" msgstr "" -#: order/models.py:1813 +#: order/models.py:1842 msgid "Reference number for associated invoice" msgstr "" -#: order/models.py:1833 +#: order/models.py:1862 msgid "Shipment has already been sent" msgstr "" -#: order/models.py:1836 +#: order/models.py:1865 msgid "Shipment has no allocated stock items" msgstr "" -#: order/models.py:1912 +#: order/models.py:1945 msgid "Sales Order Extra Line" msgstr "" -#: order/models.py:1941 +#: order/models.py:1974 msgid "Sales Order Allocation" msgstr "" -#: order/models.py:1964 order/models.py:1966 +#: order/models.py:1997 order/models.py:1999 msgid "Stock item has not been assigned" msgstr "" -#: order/models.py:1973 +#: order/models.py:2006 msgid "Cannot allocate stock item to a line with a different part" msgstr "" -#: order/models.py:1976 +#: order/models.py:2009 msgid "Cannot allocate stock to a line without a part" msgstr "" -#: order/models.py:1979 +#: order/models.py:2012 msgid "Allocation quantity cannot exceed stock quantity" msgstr "" -#: order/models.py:1998 order/serializers.py:1345 +#: order/models.py:2031 order/serializers.py:1471 msgid "Quantity must be 1 for serialized stock item" msgstr "" -#: order/models.py:2001 +#: order/models.py:2034 msgid "Sales order does not match shipment" msgstr "" -#: order/models.py:2002 plugin/base/barcodes/api.py:524 +#: order/models.py:2035 plugin/base/barcodes/api.py:629 msgid "Shipment does not match sales order" msgstr "" -#: order/models.py:2010 +#: order/models.py:2043 msgid "Line" msgstr "" -#: order/models.py:2019 +#: order/models.py:2052 msgid "Sales order shipment reference" msgstr "" -#: order/models.py:2032 order/models.py:2391 +#: order/models.py:2065 order/models.py:2430 #: templates/js/translated/return_order.js:720 msgid "Item" msgstr "" -#: order/models.py:2033 +#: order/models.py:2066 msgid "Select stock item to allocate" msgstr "" -#: order/models.py:2042 +#: order/models.py:2075 msgid "Enter stock allocation quantity" msgstr "" -#: order/models.py:2136 +#: order/models.py:2175 msgid "Return Order reference" msgstr "" -#: order/models.py:2148 +#: order/models.py:2187 msgid "Company from which items are being returned" msgstr "" -#: order/models.py:2160 +#: order/models.py:2199 msgid "Return order status" msgstr "" -#: order/models.py:2362 +#: order/models.py:2401 msgid "Return Order Line Item" msgstr "" -#: order/models.py:2376 +#: order/models.py:2415 msgid "Only serialized items can be assigned to a Return Order" msgstr "" -#: order/models.py:2392 +#: order/models.py:2431 msgid "Select item to return from customer" msgstr "" -#: order/models.py:2398 +#: order/models.py:2437 msgid "Received Date" msgstr "" -#: order/models.py:2399 +#: order/models.py:2438 msgid "The date this this return item was received" msgstr "" -#: order/models.py:2410 templates/js/translated/return_order.js:731 +#: order/models.py:2449 templates/js/translated/return_order.js:731 #: templates/js/translated/table_filters.js:122 msgid "Outcome" msgstr "" -#: order/models.py:2411 +#: order/models.py:2450 msgid "Outcome for this line item" msgstr "" -#: order/models.py:2418 +#: order/models.py:2457 msgid "Cost associated with return or repair for this line item" msgstr "" -#: order/models.py:2428 +#: order/models.py:2467 msgid "Return Order Extra Line" msgstr "" -#: order/serializers.py:86 +#: order/serializers.py:87 +msgid "Order ID" +msgstr "" + +#: order/serializers.py:87 +msgid "ID of the order to duplicate" +msgstr "" + +#: order/serializers.py:93 +msgid "Copy Lines" +msgstr "" + +#: order/serializers.py:94 +msgid "Copy line items from the original order" +msgstr "" + +#: order/serializers.py:100 +msgid "Copy Extra Lines" +msgstr "" + +#: order/serializers.py:101 +msgid "Copy extra line items from the original order" +msgstr "" + +#: order/serializers.py:117 msgid "Completed Lines" msgstr "" -#: order/serializers.py:283 stock/admin.py:195 +#: order/serializers.py:161 +msgid "Duplicate Order" +msgstr "" + +#: order/serializers.py:162 +msgid "Specify options for duplicating this order" +msgstr "" + +#: order/serializers.py:234 +msgid "Invalid order ID" +msgstr "" + +#: order/serializers.py:374 stock/admin.py:196 msgid "Supplier Name" msgstr "" -#: order/serializers.py:331 +#: order/serializers.py:416 msgid "Order cannot be cancelled" msgstr "" -#: order/serializers.py:346 order/serializers.py:1366 +#: order/serializers.py:431 order/serializers.py:1492 msgid "Allow order to be closed with incomplete line items" msgstr "" -#: order/serializers.py:356 order/serializers.py:1376 +#: order/serializers.py:441 order/serializers.py:1502 msgid "Order has incomplete line items" msgstr "" -#: order/serializers.py:506 +#: order/serializers.py:591 msgid "Order is not open" msgstr "" -#: order/serializers.py:527 +#: order/serializers.py:612 msgid "Auto Pricing" msgstr "" -#: order/serializers.py:529 +#: order/serializers.py:614 msgid "Automatically calculate purchase price based on supplier part data" msgstr "" -#: order/serializers.py:539 +#: order/serializers.py:624 msgid "Purchase price currency" msgstr "" -#: order/serializers.py:545 +#: order/serializers.py:630 msgid "Merge Items" msgstr "" -#: order/serializers.py:547 +#: order/serializers.py:632 msgid "Merge items with the same part, destination and target date into one line item" msgstr "" -#: order/serializers.py:560 part/models.py:1033 +#: order/serializers.py:645 part/models.py:1094 part/serializers.py:387 msgid "Internal Part Number" msgstr "" -#: order/serializers.py:568 +#: order/serializers.py:653 msgid "Internal Part Name" msgstr "" -#: order/serializers.py:584 +#: order/serializers.py:669 msgid "Supplier part must be specified" msgstr "" -#: order/serializers.py:587 +#: order/serializers.py:672 msgid "Purchase order must be specified" msgstr "" -#: order/serializers.py:595 +#: order/serializers.py:680 msgid "Supplier must match purchase order" msgstr "" -#: order/serializers.py:596 +#: order/serializers.py:681 msgid "Purchase order must match supplier" msgstr "" -#: order/serializers.py:639 order/serializers.py:1446 +#: order/serializers.py:724 order/serializers.py:1572 msgid "Line Item" msgstr "" -#: order/serializers.py:645 +#: order/serializers.py:730 msgid "Line item does not match purchase order" msgstr "" -#: order/serializers.py:655 order/serializers.py:779 order/serializers.py:1782 +#: order/serializers.py:740 order/serializers.py:881 order/serializers.py:1934 msgid "Select destination location for received items" msgstr "" -#: order/serializers.py:671 templates/js/translated/purchase_order.js:1130 +#: order/serializers.py:756 templates/js/translated/purchase_order.js:1113 #: templates/js/translated/stock.js:1200 msgid "Enter batch code for incoming stock items" msgstr "" -#: order/serializers.py:679 templates/js/translated/purchase_order.js:1155 +#: order/serializers.py:764 templates/js/translated/purchase_order.js:1138 msgid "Enter serial numbers for incoming stock items" msgstr "" -#: order/serializers.py:691 +#: order/serializers.py:776 msgid "Override packaging information for incoming stock items" msgstr "" -#: order/serializers.py:699 +#: order/serializers.py:784 msgid "Additional note for incoming stock items" msgstr "" -#: order/serializers.py:706 templates/js/translated/barcode.js:52 +#: order/serializers.py:791 templates/js/translated/barcode.js:52 msgid "Barcode" msgstr "" -#: order/serializers.py:707 +#: order/serializers.py:792 msgid "Scanned barcode" msgstr "" -#: order/serializers.py:723 +#: order/serializers.py:808 msgid "Barcode is already in use" msgstr "" -#: order/serializers.py:747 +#: order/serializers.py:831 msgid "An integer quantity must be provided for trackable parts" msgstr "" -#: order/serializers.py:795 order/serializers.py:1798 +#: order/serializers.py:898 order/serializers.py:1950 msgid "Line items must be provided" msgstr "" -#: order/serializers.py:811 +#: order/serializers.py:914 msgid "Destination location must be specified" msgstr "" -#: order/serializers.py:822 +#: order/serializers.py:925 msgid "Supplied barcode values must be unique" msgstr "" -#: order/serializers.py:1187 +#: order/serializers.py:1221 msgid "Sale price currency" msgstr "" -#: order/serializers.py:1248 +#: order/serializers.py:1260 +msgid "Allocated Items" +msgstr "" + +#: order/serializers.py:1374 msgid "No shipment details provided" msgstr "" -#: order/serializers.py:1309 order/serializers.py:1455 +#: order/serializers.py:1435 order/serializers.py:1581 msgid "Line item is not associated with this order" msgstr "" -#: order/serializers.py:1328 +#: order/serializers.py:1454 msgid "Quantity must be positive" msgstr "" -#: order/serializers.py:1465 +#: order/serializers.py:1591 msgid "Enter serial numbers to allocate" msgstr "" -#: order/serializers.py:1487 order/serializers.py:1593 +#: order/serializers.py:1613 order/serializers.py:1733 msgid "Shipment has already been shipped" msgstr "" -#: order/serializers.py:1490 order/serializers.py:1596 +#: order/serializers.py:1616 order/serializers.py:1736 msgid "Shipment is not associated with this order" msgstr "" -#: order/serializers.py:1537 +#: order/serializers.py:1671 msgid "No match found for the following serial numbers" msgstr "" -#: order/serializers.py:1544 -msgid "The following serial numbers are already allocated" +#: order/serializers.py:1678 +msgid "The following serial numbers are unavailable" msgstr "" -#: order/serializers.py:1752 +#: order/serializers.py:1904 msgid "Return order line item" msgstr "" -#: order/serializers.py:1758 +#: order/serializers.py:1910 msgid "Line item does not match return order" msgstr "" -#: order/serializers.py:1761 +#: order/serializers.py:1913 msgid "Line item has already been received" msgstr "" -#: order/serializers.py:1790 +#: order/serializers.py:1942 msgid "Items can only be received against orders which are in progress" msgstr "" -#: order/serializers.py:1873 +#: order/serializers.py:2025 msgid "Line price currency" msgstr "" -#: order/status_codes.py:17 order/status_codes.py:52 stock/status_codes.py:16 +#: order/status_codes.py:17 order/status_codes.py:54 stock/status_codes.py:16 msgid "Lost" msgstr "" -#: order/status_codes.py:18 order/status_codes.py:53 stock/status_codes.py:22 +#: order/status_codes.py:18 order/status_codes.py:55 stock/status_codes.py:24 msgid "Returned" msgstr "" -#: order/status_codes.py:45 order/status_codes.py:77 +#: order/status_codes.py:47 order/status_codes.py:79 msgid "In Progress" msgstr "" -#: order/status_codes.py:101 +#: order/status_codes.py:105 msgid "Return" msgstr "" -#: order/status_codes.py:104 +#: order/status_codes.py:108 msgid "Repair" msgstr "" -#: order/status_codes.py:107 +#: order/status_codes.py:111 msgid "Replace" msgstr "" -#: order/status_codes.py:110 +#: order/status_codes.py:114 msgid "Refund" msgstr "" -#: order/status_codes.py:113 +#: order/status_codes.py:117 msgid "Reject" msgstr "" -#: order/tasks.py:25 +#: order/tasks.py:30 msgid "Overdue Purchase Order" msgstr "" -#: order/tasks.py:30 +#: order/tasks.py:35 #, python-brace-format msgid "Purchase order {po} is now overdue" msgstr "" -#: order/tasks.py:75 +#: order/tasks.py:80 msgid "Overdue Sales Order" msgstr "" -#: order/tasks.py:80 +#: order/tasks.py:85 #, python-brace-format msgid "Sales order {so} is now overdue" msgstr "" -#: order/templates/order/order_base.html:51 +#: order/templates/order/order_base.html:52 msgid "Print purchase order report" msgstr "" -#: order/templates/order/order_base.html:53 -#: order/templates/order/return_order_base.html:62 -#: order/templates/order/sales_order_base.html:62 +#: order/templates/order/order_base.html:54 +#: order/templates/order/return_order_base.html:63 +#: order/templates/order/sales_order_base.html:63 msgid "Export order to file" msgstr "" -#: order/templates/order/order_base.html:59 -#: order/templates/order/return_order_base.html:72 -#: order/templates/order/sales_order_base.html:71 +#: order/templates/order/order_base.html:60 +#: order/templates/order/return_order_base.html:73 +#: order/templates/order/sales_order_base.html:72 msgid "Order actions" msgstr "" -#: order/templates/order/order_base.html:64 -#: order/templates/order/return_order_base.html:76 -#: order/templates/order/sales_order_base.html:75 +#: order/templates/order/order_base.html:65 +#: order/templates/order/return_order_base.html:77 +#: order/templates/order/sales_order_base.html:76 msgid "Edit order" msgstr "" -#: order/templates/order/order_base.html:68 +#: order/templates/order/order_base.html:69 msgid "Duplicate order" msgstr "" -#: order/templates/order/order_base.html:73 -#: order/templates/order/return_order_base.html:78 -#: order/templates/order/sales_order_base.html:77 +#: order/templates/order/order_base.html:74 +#: order/templates/order/return_order_base.html:79 +#: order/templates/order/sales_order_base.html:78 msgid "Hold order" msgstr "" -#: order/templates/order/order_base.html:78 -#: order/templates/order/return_order_base.html:81 -#: order/templates/order/sales_order_base.html:80 +#: order/templates/order/order_base.html:79 +#: order/templates/order/return_order_base.html:82 +#: order/templates/order/sales_order_base.html:81 msgid "Cancel order" msgstr "" -#: order/templates/order/order_base.html:84 #: order/templates/order/order_base.html:85 -#: order/templates/order/return_order_base.html:85 +#: order/templates/order/order_base.html:86 #: order/templates/order/return_order_base.html:86 -#: order/templates/order/sales_order_base.html:86 +#: order/templates/order/return_order_base.html:87 #: order/templates/order/sales_order_base.html:87 +#: order/templates/order/sales_order_base.html:88 msgid "Issue Order" msgstr "" -#: order/templates/order/order_base.html:88 -#: order/templates/order/return_order_base.html:89 -msgid "Mark order as complete" -msgstr "" - #: order/templates/order/order_base.html:89 #: order/templates/order/return_order_base.html:90 -#: order/templates/order/sales_order_base.html:100 +msgid "Mark order as complete" +msgstr "" + +#: order/templates/order/order_base.html:90 +#: order/templates/order/return_order_base.html:91 +#: order/templates/order/sales_order_base.html:101 msgid "Complete Order" msgstr "" -#: order/templates/order/order_base.html:96 +#: order/templates/order/order_base.html:97 msgid "Supplier part thumbnail" msgstr "" -#: order/templates/order/order_base.html:116 -#: order/templates/order/return_order_base.html:109 -#: order/templates/order/sales_order_base.html:118 +#: order/templates/order/order_base.html:117 +#: order/templates/order/return_order_base.html:110 +#: order/templates/order/sales_order_base.html:119 msgid "Order Description" msgstr "" -#: order/templates/order/order_base.html:146 -msgid "No suppplier information available" -msgstr "" - -#: order/templates/order/order_base.html:159 -#: order/templates/order/sales_order_base.html:164 +#: order/templates/order/order_base.html:168 +#: order/templates/order/sales_order_base.html:165 msgid "Completed Line Items" msgstr "" -#: order/templates/order/order_base.html:165 -#: order/templates/order/sales_order_base.html:170 -#: order/templates/order/sales_order_base.html:180 +#: order/templates/order/order_base.html:174 +#: order/templates/order/sales_order_base.html:171 +#: order/templates/order/sales_order_base.html:181 msgid "Incomplete" msgstr "" -#: order/templates/order/order_base.html:184 -#: order/templates/order/return_order_base.html:160 +#: order/templates/order/order_base.html:193 +#: order/templates/order/return_order_base.html:161 #: report/templates/report/inventree_build_order_report.html:121 msgid "Issued" msgstr "" -#: order/templates/order/order_base.html:229 +#: order/templates/order/order_base.html:238 msgid "Total cost" msgstr "" -#: order/templates/order/order_base.html:233 -#: order/templates/order/return_order_base.html:202 -#: order/templates/order/sales_order_base.html:246 +#: order/templates/order/order_base.html:242 +#: order/templates/order/return_order_base.html:203 +#: order/templates/order/sales_order_base.html:247 msgid "Total cost could not be calculated" msgstr "" -#: order/templates/order/order_base.html:335 +#: order/templates/order/order_base.html:344 msgid "Purchase Order QR Code" msgstr "" -#: order/templates/order/order_base.html:347 +#: order/templates/order/order_base.html:356 msgid "Link Barcode to Purchase Order" msgstr "" @@ -6184,12 +6392,12 @@ msgstr "" #: part/templates/part/import_wizard/ajax_match_references.html:42 #: part/templates/part/import_wizard/match_fields.html:71 #: part/templates/part/import_wizard/match_references.html:49 -#: templates/js/translated/bom.js:133 templates/js/translated/build.js:530 -#: templates/js/translated/build.js:1802 -#: templates/js/translated/purchase_order.js:696 -#: templates/js/translated/purchase_order.js:1288 +#: templates/js/translated/bom.js:133 templates/js/translated/build.js:533 +#: templates/js/translated/build.js:1805 +#: templates/js/translated/purchase_order.js:679 +#: templates/js/translated/purchase_order.js:1271 #: templates/js/translated/return_order.js:505 -#: templates/js/translated/sales_order.js:1145 +#: templates/js/translated/sales_order.js:1111 #: templates/js/translated/stock.js:720 templates/js/translated/stock.js:889 #: templates/patterns/wizard/match_fields.html:70 msgid "Remove row" @@ -6242,7 +6450,7 @@ msgstr "" #: order/templates/order/purchase_order_detail.html:27 #: order/templates/order/return_order_detail.html:24 #: order/templates/order/sales_order_detail.html:24 -#: templates/js/translated/purchase_order.js:414 +#: templates/js/translated/purchase_order.js:397 #: templates/js/translated/return_order.js:458 #: templates/js/translated/sales_order.js:237 msgid "Add Line Item" @@ -6277,45 +6485,45 @@ msgstr "" msgid "Order Notes" msgstr "" -#: order/templates/order/return_order_base.html:18 -#: order/templates/order/sales_order_base.html:18 +#: order/templates/order/return_order_base.html:19 +#: order/templates/order/sales_order_base.html:19 msgid "Customer logo thumbnail" msgstr "" -#: order/templates/order/return_order_base.html:60 +#: order/templates/order/return_order_base.html:61 msgid "Print return order report" msgstr "" -#: order/templates/order/return_order_base.html:64 -#: order/templates/order/sales_order_base.html:64 +#: order/templates/order/return_order_base.html:65 +#: order/templates/order/sales_order_base.html:65 msgid "Print packing list" msgstr "" -#: order/templates/order/return_order_base.html:141 -#: order/templates/order/sales_order_base.html:158 +#: order/templates/order/return_order_base.html:142 +#: order/templates/order/sales_order_base.html:159 #: templates/js/translated/return_order.js:308 -#: templates/js/translated/sales_order.js:833 +#: templates/js/translated/sales_order.js:792 msgid "Customer Reference" msgstr "" -#: order/templates/order/return_order_base.html:198 -#: order/templates/order/sales_order_base.html:242 +#: order/templates/order/return_order_base.html:199 +#: order/templates/order/sales_order_base.html:243 #: part/templates/part/part_pricing.html:32 #: part/templates/part/part_pricing.html:58 #: part/templates/part/part_pricing.html:99 #: part/templates/part/part_pricing.html:114 #: templates/js/translated/part.js:1079 -#: templates/js/translated/purchase_order.js:1822 +#: templates/js/translated/purchase_order.js:1806 #: templates/js/translated/return_order.js:380 -#: templates/js/translated/sales_order.js:891 +#: templates/js/translated/sales_order.js:850 msgid "Total Cost" msgstr "" -#: order/templates/order/return_order_base.html:273 +#: order/templates/order/return_order_base.html:274 msgid "Return Order QR Code" msgstr "" -#: order/templates/order/return_order_base.html:285 +#: order/templates/order/return_order_base.html:286 msgid "Link Barcode to Return Order" msgstr "" @@ -6323,40 +6531,40 @@ msgstr "" msgid "Order Details" msgstr "" -#: order/templates/order/sales_order_base.html:60 +#: order/templates/order/sales_order_base.html:61 msgid "Print sales order report" msgstr "" -#: order/templates/order/sales_order_base.html:91 #: order/templates/order/sales_order_base.html:92 +#: order/templates/order/sales_order_base.html:93 msgid "Ship Items" msgstr "" -#: order/templates/order/sales_order_base.html:95 #: order/templates/order/sales_order_base.html:96 +#: order/templates/order/sales_order_base.html:97 msgid "Mark As Shipped" msgstr "" -#: order/templates/order/sales_order_base.html:99 -#: templates/js/translated/sales_order.js:536 +#: order/templates/order/sales_order_base.html:100 +#: templates/js/translated/sales_order.js:495 msgid "Complete Sales Order" msgstr "" -#: order/templates/order/sales_order_base.html:138 +#: order/templates/order/sales_order_base.html:139 msgid "This Sales Order has not been fully allocated" msgstr "" -#: order/templates/order/sales_order_base.html:176 +#: order/templates/order/sales_order_base.html:177 #: order/templates/order/sales_order_detail.html:99 #: order/templates/order/so_sidebar.html:11 msgid "Completed Shipments" msgstr "" -#: order/templates/order/sales_order_base.html:339 +#: order/templates/order/sales_order_base.html:340 msgid "Sales Order QR Code" msgstr "" -#: order/templates/order/sales_order_base.html:351 +#: order/templates/order/sales_order_base.html:352 msgid "Link Barcode to Sales Order" msgstr "" @@ -6370,7 +6578,7 @@ msgid "Pending Shipments" msgstr "" #: order/templates/order/sales_order_detail.html:71 -#: templates/js/translated/bom.js:1277 templates/js/translated/build.js:1063 +#: templates/js/translated/bom.js:1277 templates/js/translated/build.js:1066 #: templates/js/translated/filters.js:299 msgid "Actions" msgstr "" @@ -6383,39 +6591,40 @@ msgstr "" msgid "Match Supplier Parts" msgstr "" -#: order/views.py:406 +#: order/views.py:407 msgid "Sales order not found" msgstr "" -#: order/views.py:412 +#: order/views.py:413 msgid "Price not found" msgstr "" -#: order/views.py:415 +#: order/views.py:416 #, python-brace-format msgid "Updated {part} unit-price to {price}" msgstr "" -#: order/views.py:421 +#: order/views.py:422 #, python-brace-format msgid "Updated {part} unit-price to {price} and quantity to {qty}" msgstr "" -#: part/admin.py:48 part/models.py:1032 part/templates/part/part_base.html:269 +#: part/admin.py:48 part/models.py:1093 part/serializers.py:939 +#: part/templates/part/part_base.html:277 #: report/templates/report/inventree_stock_location_report.html:103 #: templates/js/translated/part.js:1233 templates/js/translated/part.js:2347 -#: templates/js/translated/stock.js:2121 +#: templates/js/translated/stock.js:2122 msgid "IPN" msgstr "" -#: part/admin.py:50 part/models.py:1041 part/templates/part/part_base.html:286 +#: part/admin.py:50 part/models.py:1102 part/templates/part/part_base.html:294 #: report/models.py:161 templates/js/translated/part.js:1238 #: templates/js/translated/part.js:2353 msgid "Revision" msgstr "" -#: part/admin.py:53 part/admin.py:319 part/models.py:1014 -#: part/templates/part/category.html:91 part/templates/part/part_base.html:307 +#: part/admin.py:53 part/admin.py:319 part/models.py:1075 +#: part/templates/part/category.html:91 part/templates/part/part_base.html:315 msgid "Keywords" msgstr "" @@ -6427,7 +6636,7 @@ msgstr "" msgid "Category ID" msgstr "" -#: part/admin.py:67 part/admin.py:304 part/serializers.py:880 +#: part/admin.py:67 part/admin.py:304 part/serializers.py:924 #: part/stocktake.py:222 msgid "Category Name" msgstr "" @@ -6440,11 +6649,11 @@ msgstr "" msgid "Default Supplier ID" msgstr "" -#: part/admin.py:81 part/models.py:1000 part/templates/part/part_base.html:177 +#: part/admin.py:81 part/models.py:1061 part/templates/part/part_base.html:178 msgid "Variant Of" msgstr "" -#: part/admin.py:84 part/models.py:1138 part/templates/part/part_base.html:203 +#: part/admin.py:84 part/models.py:1199 part/templates/part/part_base.html:204 msgid "Minimum Stock" msgstr "" @@ -6452,23 +6661,23 @@ msgstr "" msgid "Used In" msgstr "" -#: part/admin.py:150 part/serializers.py:897 -#: part/templates/part/part_base.html:241 stock/admin.py:235 +#: part/admin.py:150 part/serializers.py:949 +#: part/templates/part/part_base.html:249 stock/admin.py:236 #: templates/js/translated/part.js:717 templates/js/translated/part.js:2159 msgid "Building" msgstr "" -#: part/admin.py:155 part/models.py:3202 part/models.py:3216 +#: part/admin.py:155 part/models.py:3253 part/models.py:3267 #: templates/js/translated/part.js:976 msgid "Minimum Cost" msgstr "" -#: part/admin.py:158 part/models.py:3209 part/models.py:3223 +#: part/admin.py:158 part/models.py:3260 part/models.py:3274 #: templates/js/translated/part.js:986 msgid "Maximum Cost" msgstr "" -#: part/admin.py:308 part/admin.py:387 stock/admin.py:57 stock/admin.py:215 +#: part/admin.py:308 part/admin.py:387 stock/admin.py:57 stock/admin.py:216 msgid "Parent ID" msgstr "" @@ -6481,8 +6690,8 @@ msgstr "" msgid "Category Path" msgstr "" -#: part/admin.py:325 part/models.py:425 part/serializers.py:130 -#: part/serializers.py:290 part/serializers.py:415 +#: part/admin.py:325 part/models.py:420 part/serializers.py:130 +#: part/serializers.py:323 part/serializers.py:459 #: part/templates/part/cat_link.html:3 part/templates/part/category.html:20 #: part/templates/part/category.html:138 part/templates/part/category.html:158 #: part/templates/part/category_sidebar.html:9 @@ -6509,15 +6718,15 @@ msgstr "" msgid "Part Revision" msgstr "" -#: part/admin.py:418 part/serializers.py:1346 +#: part/admin.py:418 part/serializers.py:1400 #: templates/js/translated/pricing.js:358 -#: templates/js/translated/pricing.js:1024 +#: templates/js/translated/pricing.js:1022 msgid "Minimum Price" msgstr "" -#: part/admin.py:423 part/serializers.py:1361 +#: part/admin.py:423 part/serializers.py:1415 #: templates/js/translated/pricing.js:353 -#: templates/js/translated/pricing.js:1032 +#: templates/js/translated/pricing.js:1030 msgid "Maximum Price" msgstr "" @@ -6545,94 +6754,98 @@ msgstr "" msgid "Filter by top-level categories" msgstr "" +#: part/api.py:156 stock/api.py:343 +msgid "Cascade" +msgstr "" + #: part/api.py:158 msgid "Include sub-categories in filtered results" msgstr "" -#: part/api.py:179 templates/js/translated/part.js:311 +#: part/api.py:178 templates/js/translated/part.js:311 msgid "Parent" msgstr "" -#: part/api.py:181 +#: part/api.py:180 msgid "Filter by parent category" msgstr "" -#: part/api.py:214 +#: part/api.py:213 msgid "Exclude Tree" msgstr "" -#: part/api.py:216 +#: part/api.py:215 msgid "Exclude sub-categories under the specified category" msgstr "" -#: part/api.py:441 +#: part/api.py:440 msgid "Has Results" msgstr "" -#: part/api.py:608 +#: part/api.py:604 msgid "Incoming Purchase Order" msgstr "" -#: part/api.py:626 +#: part/api.py:618 msgid "Outgoing Sales Order" msgstr "" -#: part/api.py:642 +#: part/api.py:630 msgid "Stock produced by Build Order" msgstr "" -#: part/api.py:726 +#: part/api.py:712 msgid "Stock required for Build Order" msgstr "" -#: part/api.py:874 +#: part/api.py:858 msgid "Validate entire Bill of Materials" msgstr "" -#: part/api.py:880 +#: part/api.py:864 msgid "This option must be selected" msgstr "" -#: part/api.py:916 +#: part/api.py:900 msgid "Is Revision" msgstr "" -#: part/api.py:926 +#: part/api.py:910 msgid "Has Revisions" msgstr "" -#: part/api.py:1117 +#: part/api.py:1101 msgid "BOM Valid" msgstr "" -#: part/api.py:1523 part/models.py:1024 part/models.py:3489 part/models.py:4046 -#: part/serializers.py:430 part/serializers.py:1202 -#: part/templates/part/part_base.html:260 stock/api.py:781 +#: part/api.py:1509 part/models.py:1085 part/models.py:3540 part/models.py:4104 +#: part/serializers.py:474 part/serializers.py:1255 +#: part/templates/part/part_base.html:268 stock/api.py:781 #: templates/InvenTree/settings/settings_staff_js.html:300 #: templates/js/translated/notification.js:60 #: templates/js/translated/part.js:2383 msgid "Category" msgstr "" -#: part/api.py:1761 +#: part/api.py:1750 msgid "Assembly part is testable" msgstr "" -#: part/api.py:1770 +#: part/api.py:1759 msgid "Component part is testable" msgstr "" -#: part/api.py:1821 +#: part/api.py:1810 msgid "Uses" msgstr "" -#: part/bom.py:178 part/models.py:107 part/models.py:1077 -#: part/templates/part/category.html:113 part/templates/part/part_base.html:376 +#: part/bom.py:183 part/models.py:109 part/models.py:1138 +#: part/templates/part/category.html:113 part/templates/part/part_base.html:384 #: templates/js/translated/part.js:2397 msgid "Default Location" msgstr "" -#: part/bom.py:179 part/serializers.py:905 +#: part/bom.py:184 part/serializers.py:957 #: templates/email/low_stock_notification.html:16 msgid "Total Stock" msgstr "" @@ -6641,789 +6854,789 @@ msgstr "" msgid "Input quantity for price calculation" msgstr "" -#: part/models.py:88 part/models.py:4047 part/templates/part/category.html:16 +#: part/models.py:90 part/models.py:4105 part/templates/part/category.html:16 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "" -#: part/models.py:89 part/templates/part/category.html:133 +#: part/models.py:91 part/templates/part/category.html:133 #: templates/InvenTree/search.html:97 templates/js/translated/search.js:158 #: users/models.py:202 msgid "Part Categories" msgstr "" -#: part/models.py:108 +#: part/models.py:110 msgid "Default location for parts in this category" msgstr "" -#: part/models.py:113 stock/models.py:187 templates/js/translated/part.js:2828 -#: templates/js/translated/stock.js:2856 +#: part/models.py:115 stock/models.py:193 templates/js/translated/part.js:2828 +#: templates/js/translated/stock.js:2857 #: templates/js/translated/table_filters.js:246 #: templates/js/translated/table_filters.js:290 msgid "Structural" msgstr "" -#: part/models.py:115 +#: part/models.py:117 msgid "Parts may not be directly assigned to a structural category, but may be assigned to child categories." msgstr "" -#: part/models.py:124 +#: part/models.py:126 msgid "Default keywords" msgstr "" -#: part/models.py:125 +#: part/models.py:127 msgid "Default keywords for parts in this category" msgstr "" -#: part/models.py:131 stock/models.py:90 stock/models.py:169 +#: part/models.py:133 stock/models.py:96 stock/models.py:175 #: templates/InvenTree/settings/settings_staff_js.html:445 msgid "Icon" msgstr "" -#: part/models.py:132 part/serializers.py:143 part/serializers.py:161 -#: stock/models.py:170 +#: part/models.py:134 part/serializers.py:143 part/serializers.py:161 +#: stock/models.py:176 msgid "Icon (optional)" msgstr "" -#: part/models.py:178 +#: part/models.py:180 msgid "You cannot make this part category structural because some parts are already assigned to it!" msgstr "" -#: part/models.py:519 +#: part/models.py:514 msgid "Cannot delete this part as it is locked" msgstr "" -#: part/models.py:522 +#: part/models.py:517 msgid "Cannot delete this part as it is still active" msgstr "" -#: part/models.py:527 +#: part/models.py:522 msgid "Cannot delete this part as it is used in an assembly" msgstr "" -#: part/models.py:565 +#: part/models.py:560 msgid "Invalid choice for parent part" msgstr "" -#: part/models.py:613 part/models.py:620 +#: part/models.py:608 part/models.py:615 #, python-brace-format msgid "Part '{self}' cannot be used in BOM for '{parent}' (recursive)" msgstr "" -#: part/models.py:632 +#: part/models.py:627 #, python-brace-format msgid "Part '{parent}' is used in BOM for '{self}' (recursive)" msgstr "" -#: part/models.py:695 +#: part/models.py:694 #, python-brace-format msgid "IPN must match regex pattern {pattern}" msgstr "" -#: part/models.py:703 +#: part/models.py:702 msgid "Part cannot be a revision of itself" msgstr "" -#: part/models.py:710 +#: part/models.py:709 msgid "Cannot make a revision of a part which is already a revision" msgstr "" -#: part/models.py:717 +#: part/models.py:716 msgid "Revision code must be specified" msgstr "" -#: part/models.py:724 +#: part/models.py:723 msgid "Revisions are only allowed for assembly parts" msgstr "" -#: part/models.py:731 +#: part/models.py:730 msgid "Cannot make a revision of a template part" msgstr "" -#: part/models.py:737 +#: part/models.py:736 msgid "Parent part must point to the same template" msgstr "" -#: part/models.py:816 +#: part/models.py:832 msgid "Stock item with this serial number already exists" msgstr "" -#: part/models.py:917 +#: part/models.py:976 msgid "Duplicate IPN not allowed in part settings" msgstr "" -#: part/models.py:926 +#: part/models.py:988 msgid "Duplicate part revision already exists." msgstr "" -#: part/models.py:936 +#: part/models.py:997 msgid "Part with this Name, IPN and Revision already exists." msgstr "" -#: part/models.py:951 +#: part/models.py:1012 msgid "Parts cannot be assigned to structural part categories!" msgstr "" -#: part/models.py:983 part/models.py:4102 +#: part/models.py:1044 part/models.py:4160 msgid "Part name" msgstr "" -#: part/models.py:988 +#: part/models.py:1049 msgid "Is Template" msgstr "" -#: part/models.py:989 +#: part/models.py:1050 msgid "Is this part a template part?" msgstr "" -#: part/models.py:999 +#: part/models.py:1060 msgid "Is this part a variant of another part?" msgstr "" -#: part/models.py:1007 +#: part/models.py:1068 msgid "Part description (optional)" msgstr "" -#: part/models.py:1015 +#: part/models.py:1076 msgid "Part keywords to improve visibility in search results" msgstr "" -#: part/models.py:1025 +#: part/models.py:1086 msgid "Part category" msgstr "" -#: part/models.py:1040 +#: part/models.py:1101 msgid "Part revision or version number" msgstr "" -#: part/models.py:1050 +#: part/models.py:1111 msgid "Is this part a revision of another part?" msgstr "" -#: part/models.py:1051 part/templates/part/part_base.html:277 +#: part/models.py:1112 part/templates/part/part_base.html:285 msgid "Revision Of" msgstr "" -#: part/models.py:1075 +#: part/models.py:1136 msgid "Where is this item normally stored?" msgstr "" -#: part/models.py:1121 part/templates/part/part_base.html:385 +#: part/models.py:1182 part/templates/part/part_base.html:393 msgid "Default Supplier" msgstr "" -#: part/models.py:1122 +#: part/models.py:1183 msgid "Default supplier part" msgstr "" -#: part/models.py:1129 +#: part/models.py:1190 msgid "Default Expiry" msgstr "" -#: part/models.py:1130 +#: part/models.py:1191 msgid "Expiry time (in days) for stock items of this part" msgstr "" -#: part/models.py:1139 +#: part/models.py:1200 msgid "Minimum allowed stock level" msgstr "" -#: part/models.py:1148 +#: part/models.py:1209 msgid "Units of measure for this part" msgstr "" -#: part/models.py:1155 +#: part/models.py:1216 msgid "Can this part be built from other parts?" msgstr "" -#: part/models.py:1161 +#: part/models.py:1222 msgid "Can this part be used to build other parts?" msgstr "" -#: part/models.py:1167 +#: part/models.py:1228 msgid "Does this part have tracking for unique items?" msgstr "" -#: part/models.py:1173 +#: part/models.py:1234 msgid "Can this part have test results recorded against it?" msgstr "" -#: part/models.py:1179 +#: part/models.py:1240 msgid "Can this part be purchased from external suppliers?" msgstr "" -#: part/models.py:1185 +#: part/models.py:1246 msgid "Can this part be sold to customers?" msgstr "" -#: part/models.py:1189 +#: part/models.py:1250 msgid "Is this part active?" msgstr "" -#: part/models.py:1194 templates/js/translated/part.js:821 +#: part/models.py:1255 templates/js/translated/part.js:821 #: templates/js/translated/table_filters.js:724 msgid "Locked" msgstr "" -#: part/models.py:1195 +#: part/models.py:1256 msgid "Locked parts cannot be edited" msgstr "" -#: part/models.py:1201 +#: part/models.py:1262 msgid "Is this a virtual part, such as a software product or license?" msgstr "" -#: part/models.py:1207 +#: part/models.py:1268 msgid "BOM checksum" msgstr "" -#: part/models.py:1208 +#: part/models.py:1269 msgid "Stored BOM checksum" msgstr "" -#: part/models.py:1216 +#: part/models.py:1277 msgid "BOM checked by" msgstr "" -#: part/models.py:1221 +#: part/models.py:1282 msgid "BOM checked date" msgstr "" -#: part/models.py:1237 +#: part/models.py:1298 msgid "Creation User" msgstr "" -#: part/models.py:1247 +#: part/models.py:1308 msgid "Owner responsible for this part" msgstr "" -#: part/models.py:1252 part/templates/part/part_base.html:348 -#: stock/templates/stock/item_base.html:451 +#: part/models.py:1313 part/templates/part/part_base.html:356 +#: stock/templates/stock/item_base.html:448 #: templates/js/translated/part.js:2490 msgid "Last Stocktake" msgstr "" -#: part/models.py:2125 +#: part/models.py:2185 msgid "Sell multiple" msgstr "" -#: part/models.py:3116 +#: part/models.py:3167 msgid "Currency used to cache pricing calculations" msgstr "" -#: part/models.py:3132 +#: part/models.py:3183 msgid "Minimum BOM Cost" msgstr "" -#: part/models.py:3133 +#: part/models.py:3184 msgid "Minimum cost of component parts" msgstr "" -#: part/models.py:3139 +#: part/models.py:3190 msgid "Maximum BOM Cost" msgstr "" -#: part/models.py:3140 +#: part/models.py:3191 msgid "Maximum cost of component parts" msgstr "" -#: part/models.py:3146 +#: part/models.py:3197 msgid "Minimum Purchase Cost" msgstr "" -#: part/models.py:3147 +#: part/models.py:3198 msgid "Minimum historical purchase cost" msgstr "" -#: part/models.py:3153 +#: part/models.py:3204 msgid "Maximum Purchase Cost" msgstr "" -#: part/models.py:3154 +#: part/models.py:3205 msgid "Maximum historical purchase cost" msgstr "" -#: part/models.py:3160 +#: part/models.py:3211 msgid "Minimum Internal Price" msgstr "" -#: part/models.py:3161 +#: part/models.py:3212 msgid "Minimum cost based on internal price breaks" msgstr "" -#: part/models.py:3167 +#: part/models.py:3218 msgid "Maximum Internal Price" msgstr "" -#: part/models.py:3168 +#: part/models.py:3219 msgid "Maximum cost based on internal price breaks" msgstr "" -#: part/models.py:3174 +#: part/models.py:3225 msgid "Minimum Supplier Price" msgstr "" -#: part/models.py:3175 +#: part/models.py:3226 msgid "Minimum price of part from external suppliers" msgstr "" -#: part/models.py:3181 +#: part/models.py:3232 msgid "Maximum Supplier Price" msgstr "" -#: part/models.py:3182 +#: part/models.py:3233 msgid "Maximum price of part from external suppliers" msgstr "" -#: part/models.py:3188 +#: part/models.py:3239 msgid "Minimum Variant Cost" msgstr "" -#: part/models.py:3189 +#: part/models.py:3240 msgid "Calculated minimum cost of variant parts" msgstr "" -#: part/models.py:3195 +#: part/models.py:3246 msgid "Maximum Variant Cost" msgstr "" -#: part/models.py:3196 +#: part/models.py:3247 msgid "Calculated maximum cost of variant parts" msgstr "" -#: part/models.py:3203 +#: part/models.py:3254 msgid "Override minimum cost" msgstr "" -#: part/models.py:3210 +#: part/models.py:3261 msgid "Override maximum cost" msgstr "" -#: part/models.py:3217 +#: part/models.py:3268 msgid "Calculated overall minimum cost" msgstr "" -#: part/models.py:3224 +#: part/models.py:3275 msgid "Calculated overall maximum cost" msgstr "" -#: part/models.py:3230 +#: part/models.py:3281 msgid "Minimum Sale Price" msgstr "" -#: part/models.py:3231 +#: part/models.py:3282 msgid "Minimum sale price based on price breaks" msgstr "" -#: part/models.py:3237 +#: part/models.py:3288 msgid "Maximum Sale Price" msgstr "" -#: part/models.py:3238 +#: part/models.py:3289 msgid "Maximum sale price based on price breaks" msgstr "" -#: part/models.py:3244 +#: part/models.py:3295 msgid "Minimum Sale Cost" msgstr "" -#: part/models.py:3245 +#: part/models.py:3296 msgid "Minimum historical sale price" msgstr "" -#: part/models.py:3251 +#: part/models.py:3302 msgid "Maximum Sale Cost" msgstr "" -#: part/models.py:3252 +#: part/models.py:3303 msgid "Maximum historical sale price" msgstr "" -#: part/models.py:3271 +#: part/models.py:3322 msgid "Part for stocktake" msgstr "" -#: part/models.py:3276 +#: part/models.py:3327 msgid "Item Count" msgstr "" -#: part/models.py:3277 +#: part/models.py:3328 msgid "Number of individual stock entries at time of stocktake" msgstr "" -#: part/models.py:3285 +#: part/models.py:3336 msgid "Total available stock at time of stocktake" msgstr "" -#: part/models.py:3289 part/models.py:3372 +#: part/models.py:3340 part/models.py:3423 part/serializers.py:263 #: part/templates/part/part_scheduling.html:13 #: report/templates/report/inventree_test_report.html:106 #: templates/InvenTree/settings/plugin_settings.html:37 #: templates/InvenTree/settings/settings_staff_js.html:543 -#: templates/js/translated/part.js:1092 templates/js/translated/pricing.js:826 -#: templates/js/translated/pricing.js:950 -#: templates/js/translated/purchase_order.js:1801 -#: templates/js/translated/stock.js:2905 +#: templates/js/translated/part.js:1092 templates/js/translated/pricing.js:824 +#: templates/js/translated/pricing.js:948 +#: templates/js/translated/purchase_order.js:1785 +#: templates/js/translated/stock.js:2906 msgid "Date" msgstr "" -#: part/models.py:3290 +#: part/models.py:3341 msgid "Date stocktake was performed" msgstr "" -#: part/models.py:3298 +#: part/models.py:3349 msgid "Additional notes" msgstr "" -#: part/models.py:3308 +#: part/models.py:3359 msgid "User who performed this stocktake" msgstr "" -#: part/models.py:3314 +#: part/models.py:3365 msgid "Minimum Stock Cost" msgstr "" -#: part/models.py:3315 +#: part/models.py:3366 msgid "Estimated minimum cost of stock on hand" msgstr "" -#: part/models.py:3321 +#: part/models.py:3372 msgid "Maximum Stock Cost" msgstr "" -#: part/models.py:3322 +#: part/models.py:3373 msgid "Estimated maximum cost of stock on hand" msgstr "" -#: part/models.py:3378 templates/InvenTree/settings/settings_staff_js.html:532 +#: part/models.py:3429 templates/InvenTree/settings/settings_staff_js.html:532 msgid "Report" msgstr "" -#: part/models.py:3379 +#: part/models.py:3430 msgid "Stocktake report file (generated internally)" msgstr "" -#: part/models.py:3384 templates/InvenTree/settings/settings_staff_js.html:539 +#: part/models.py:3435 templates/InvenTree/settings/settings_staff_js.html:539 msgid "Part Count" msgstr "" -#: part/models.py:3385 +#: part/models.py:3436 msgid "Number of parts covered by stocktake" msgstr "" -#: part/models.py:3395 +#: part/models.py:3446 msgid "User who requested this stocktake report" msgstr "" -#: part/models.py:3405 +#: part/models.py:3456 msgid "Part Sale Price Break" msgstr "" -#: part/models.py:3517 +#: part/models.py:3568 msgid "Part Test Template" msgstr "" -#: part/models.py:3543 +#: part/models.py:3594 msgid "Invalid template name - must include at least one alphanumeric character" msgstr "" -#: part/models.py:3564 part/models.py:3733 +#: part/models.py:3615 part/models.py:3784 msgid "Choices must be unique" msgstr "" -#: part/models.py:3575 -msgid "Test templates can only be created for trackable parts" +#: part/models.py:3626 +msgid "Test templates can only be created for testable parts" msgstr "" -#: part/models.py:3586 +#: part/models.py:3637 msgid "Test template with the same key already exists for part" msgstr "" -#: part/models.py:3603 templates/js/translated/part.js:2898 +#: part/models.py:3654 templates/js/translated/part.js:2898 msgid "Test Name" msgstr "" -#: part/models.py:3604 +#: part/models.py:3655 msgid "Enter a name for the test" msgstr "" -#: part/models.py:3610 +#: part/models.py:3661 msgid "Test Key" msgstr "" -#: part/models.py:3611 +#: part/models.py:3662 msgid "Simplified key for the test" msgstr "" -#: part/models.py:3618 +#: part/models.py:3669 msgid "Test Description" msgstr "" -#: part/models.py:3619 +#: part/models.py:3670 msgid "Enter description for this test" msgstr "" -#: part/models.py:3623 report/models.py:208 +#: part/models.py:3674 report/models.py:216 #: templates/js/translated/part.js:2919 #: templates/js/translated/table_filters.js:502 msgid "Enabled" msgstr "" -#: part/models.py:3623 +#: part/models.py:3674 msgid "Is this test enabled?" msgstr "" -#: part/models.py:3628 templates/js/translated/part.js:2927 +#: part/models.py:3679 templates/js/translated/part.js:2927 #: templates/js/translated/table_filters.js:498 msgid "Required" msgstr "" -#: part/models.py:3629 +#: part/models.py:3680 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:3634 templates/js/translated/part.js:2935 +#: part/models.py:3685 templates/js/translated/part.js:2935 msgid "Requires Value" msgstr "" -#: part/models.py:3635 +#: part/models.py:3686 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:3640 templates/js/translated/part.js:2942 +#: part/models.py:3691 templates/js/translated/part.js:2942 msgid "Requires Attachment" msgstr "" -#: part/models.py:3642 +#: part/models.py:3693 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:3648 part/models.py:3792 templates/js/translated/part.js:1643 +#: part/models.py:3699 part/models.py:3843 templates/js/translated/part.js:1643 msgid "Choices" msgstr "" -#: part/models.py:3649 +#: part/models.py:3700 msgid "Valid choices for this test (comma-separated)" msgstr "" -#: part/models.py:3681 +#: part/models.py:3732 msgid "Part Parameter Template" msgstr "" -#: part/models.py:3708 +#: part/models.py:3759 msgid "Checkbox parameters cannot have units" msgstr "" -#: part/models.py:3713 +#: part/models.py:3764 msgid "Checkbox parameters cannot have choices" msgstr "" -#: part/models.py:3750 +#: part/models.py:3801 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:3765 +#: part/models.py:3816 msgid "Parameter Name" msgstr "" -#: part/models.py:3772 +#: part/models.py:3823 msgid "Physical units for this parameter" msgstr "" -#: part/models.py:3780 +#: part/models.py:3831 msgid "Parameter description" msgstr "" -#: part/models.py:3786 templates/js/translated/part.js:1634 +#: part/models.py:3837 templates/js/translated/part.js:1634 #: templates/js/translated/table_filters.js:837 msgid "Checkbox" msgstr "" -#: part/models.py:3787 +#: part/models.py:3838 msgid "Is this parameter a checkbox?" msgstr "" -#: part/models.py:3793 +#: part/models.py:3844 msgid "Valid choices for this parameter (comma-separated)" msgstr "" -#: part/models.py:3827 +#: part/models.py:3881 msgid "Part Parameter" msgstr "" -#: part/models.py:3853 +#: part/models.py:3907 msgid "Parameter cannot be modified - part is locked" msgstr "" -#: part/models.py:3889 +#: part/models.py:3945 msgid "Invalid choice for parameter value" msgstr "" -#: part/models.py:3938 +#: part/models.py:3996 msgid "Parent Part" msgstr "" -#: part/models.py:3946 part/models.py:4054 part/models.py:4055 +#: part/models.py:4004 part/models.py:4112 part/models.py:4113 #: templates/InvenTree/settings/settings_staff_js.html:295 msgid "Parameter Template" msgstr "" -#: part/models.py:3952 +#: part/models.py:4010 msgid "Parameter Value" msgstr "" -#: part/models.py:4002 +#: part/models.py:4060 msgid "Part Category Parameter Template" msgstr "" -#: part/models.py:4061 templates/InvenTree/settings/settings_staff_js.html:304 +#: part/models.py:4119 templates/InvenTree/settings/settings_staff_js.html:304 msgid "Default Value" msgstr "" -#: part/models.py:4062 +#: part/models.py:4120 msgid "Default Parameter Value" msgstr "" -#: part/models.py:4100 +#: part/models.py:4158 msgid "Part ID or part name" msgstr "" -#: part/models.py:4101 +#: part/models.py:4159 msgid "Unique part ID value" msgstr "" -#: part/models.py:4103 +#: part/models.py:4161 msgid "Part IPN value" msgstr "" -#: part/models.py:4104 +#: part/models.py:4162 msgid "Level" msgstr "" -#: part/models.py:4104 +#: part/models.py:4162 msgid "BOM level" msgstr "" -#: part/models.py:4215 +#: part/models.py:4272 msgid "BOM item cannot be modified - assembly is locked" msgstr "" -#: part/models.py:4222 +#: part/models.py:4279 msgid "BOM item cannot be modified - variant assembly is locked" msgstr "" -#: part/models.py:4232 +#: part/models.py:4289 msgid "Select parent part" msgstr "" -#: part/models.py:4242 +#: part/models.py:4299 msgid "Sub part" msgstr "" -#: part/models.py:4243 +#: part/models.py:4300 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:4254 +#: part/models.py:4311 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:4260 +#: part/models.py:4317 msgid "This BOM item is optional" msgstr "" -#: part/models.py:4266 +#: part/models.py:4323 msgid "This BOM item is consumable (it is not tracked in build orders)" msgstr "" -#: part/models.py:4273 part/templates/part/upload_bom.html:55 +#: part/models.py:4330 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "" -#: part/models.py:4274 +#: part/models.py:4331 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:4281 +#: part/models.py:4338 msgid "BOM item reference" msgstr "" -#: part/models.py:4289 +#: part/models.py:4346 msgid "BOM item notes" msgstr "" -#: part/models.py:4295 +#: part/models.py:4352 msgid "Checksum" msgstr "" -#: part/models.py:4296 +#: part/models.py:4353 msgid "BOM line checksum" msgstr "" -#: part/models.py:4301 templates/js/translated/table_filters.js:181 +#: part/models.py:4358 templates/js/translated/table_filters.js:181 msgid "Validated" msgstr "" -#: part/models.py:4302 +#: part/models.py:4359 msgid "This BOM item has been validated" msgstr "" -#: part/models.py:4307 part/templates/part/upload_bom.html:57 +#: part/models.py:4364 part/templates/part/upload_bom.html:57 #: templates/js/translated/bom.js:1054 #: templates/js/translated/table_filters.js:185 #: templates/js/translated/table_filters.js:218 msgid "Gets inherited" msgstr "" -#: part/models.py:4308 +#: part/models.py:4365 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:4314 +#: part/models.py:4371 msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:4399 stock/models.py:685 +#: part/models.py:4456 stock/models.py:762 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:4409 part/models.py:4411 +#: part/models.py:4466 part/models.py:4468 msgid "Sub part must be specified" msgstr "" -#: part/models.py:4551 +#: part/models.py:4613 msgid "BOM Item Substitute" msgstr "" -#: part/models.py:4572 +#: part/models.py:4634 msgid "Substitute part cannot be the same as the master part" msgstr "" -#: part/models.py:4585 +#: part/models.py:4647 msgid "Parent BOM item" msgstr "" -#: part/models.py:4593 +#: part/models.py:4655 msgid "Substitute part" msgstr "" -#: part/models.py:4609 +#: part/models.py:4671 msgid "Part 1" msgstr "" -#: part/models.py:4617 +#: part/models.py:4679 msgid "Part 2" msgstr "" -#: part/models.py:4618 +#: part/models.py:4680 msgid "Select Related Part" msgstr "" -#: part/models.py:4637 +#: part/models.py:4699 msgid "Part relationship cannot be created between a part and itself" msgstr "" -#: part/models.py:4642 +#: part/models.py:4704 msgid "Duplicate relationship already exists" msgstr "" @@ -7449,340 +7662,352 @@ msgstr "" msgid "Number of results recorded against this template" msgstr "" -#: part/serializers.py:225 part/serializers.py:243 stock/serializers.py:616 +#: part/serializers.py:225 part/serializers.py:243 stock/serializers.py:643 msgid "Purchase currency of this stock item" msgstr "" -#: part/serializers.py:291 +#: part/serializers.py:268 +msgid "Speculative Quantity" +msgstr "" + +#: part/serializers.py:277 +msgid "Model ID" +msgstr "" + +#: part/serializers.py:324 msgid "Number of parts using this template" msgstr "" -#: part/serializers.py:421 +#: part/serializers.py:465 msgid "No parts selected" msgstr "" -#: part/serializers.py:431 +#: part/serializers.py:475 msgid "Select category" msgstr "" -#: part/serializers.py:466 +#: part/serializers.py:510 msgid "Original Part" msgstr "" -#: part/serializers.py:467 +#: part/serializers.py:511 msgid "Select original part to duplicate" msgstr "" -#: part/serializers.py:472 +#: part/serializers.py:516 msgid "Copy Image" msgstr "" -#: part/serializers.py:473 +#: part/serializers.py:517 msgid "Copy image from original part" msgstr "" -#: part/serializers.py:479 part/templates/part/detail.html:293 +#: part/serializers.py:523 part/templates/part/detail.html:293 msgid "Copy BOM" msgstr "" -#: part/serializers.py:480 +#: part/serializers.py:524 msgid "Copy bill of materials from original part" msgstr "" -#: part/serializers.py:486 +#: part/serializers.py:530 msgid "Copy Parameters" msgstr "" -#: part/serializers.py:487 +#: part/serializers.py:531 msgid "Copy parameter data from original part" msgstr "" -#: part/serializers.py:493 +#: part/serializers.py:537 msgid "Copy Notes" msgstr "" -#: part/serializers.py:494 +#: part/serializers.py:538 msgid "Copy notes from original part" msgstr "" -#: part/serializers.py:512 +#: part/serializers.py:556 msgid "Initial Stock Quantity" msgstr "" -#: part/serializers.py:514 +#: part/serializers.py:558 msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added." msgstr "" -#: part/serializers.py:521 +#: part/serializers.py:565 msgid "Initial Stock Location" msgstr "" -#: part/serializers.py:522 +#: part/serializers.py:566 msgid "Specify initial stock location for this Part" msgstr "" -#: part/serializers.py:539 +#: part/serializers.py:583 msgid "Select supplier (or leave blank to skip)" msgstr "" -#: part/serializers.py:555 +#: part/serializers.py:599 msgid "Select manufacturer (or leave blank to skip)" msgstr "" -#: part/serializers.py:565 +#: part/serializers.py:609 msgid "Manufacturer part number" msgstr "" -#: part/serializers.py:572 +#: part/serializers.py:616 msgid "Selected company is not a valid supplier" msgstr "" -#: part/serializers.py:581 +#: part/serializers.py:625 msgid "Selected company is not a valid manufacturer" msgstr "" -#: part/serializers.py:592 +#: part/serializers.py:636 msgid "Manufacturer part matching this MPN already exists" msgstr "" -#: part/serializers.py:599 +#: part/serializers.py:643 msgid "Supplier part matching this SKU already exists" msgstr "" -#: part/serializers.py:903 +#: part/serializers.py:955 msgid "Revisions" msgstr "" -#: part/serializers.py:908 +#: part/serializers.py:960 msgid "Unallocated Stock" msgstr "" -#: part/serializers.py:911 +#: part/serializers.py:963 msgid "Variant Stock" msgstr "" -#: part/serializers.py:941 part/templates/part/copy_part.html:9 +#: part/serializers.py:993 part/templates/part/copy_part.html:9 #: templates/js/translated/part.js:474 msgid "Duplicate Part" msgstr "" -#: part/serializers.py:942 +#: part/serializers.py:994 msgid "Copy initial data from another Part" msgstr "" -#: part/serializers.py:948 templates/js/translated/part.js:103 +#: part/serializers.py:1000 templates/js/translated/part.js:103 msgid "Initial Stock" msgstr "" -#: part/serializers.py:949 +#: part/serializers.py:1001 msgid "Create Part with initial stock quantity" msgstr "" -#: part/serializers.py:955 +#: part/serializers.py:1007 msgid "Supplier Information" msgstr "" -#: part/serializers.py:956 +#: part/serializers.py:1008 msgid "Add initial supplier information for this part" msgstr "" -#: part/serializers.py:964 +#: part/serializers.py:1016 msgid "Copy Category Parameters" msgstr "" -#: part/serializers.py:965 +#: part/serializers.py:1017 msgid "Copy parameter templates from selected part category" msgstr "" -#: part/serializers.py:970 +#: part/serializers.py:1022 msgid "Existing Image" msgstr "" -#: part/serializers.py:971 +#: part/serializers.py:1023 msgid "Filename of an existing part image" msgstr "" -#: part/serializers.py:988 +#: part/serializers.py:1040 msgid "Image file does not exist" msgstr "" -#: part/serializers.py:1194 +#: part/serializers.py:1247 msgid "Limit stocktake report to a particular part, and any variant parts" msgstr "" -#: part/serializers.py:1204 +#: part/serializers.py:1257 msgid "Limit stocktake report to a particular part category, and any child categories" msgstr "" -#: part/serializers.py:1214 +#: part/serializers.py:1267 msgid "Limit stocktake report to a particular stock location, and any child locations" msgstr "" -#: part/serializers.py:1220 +#: part/serializers.py:1273 msgid "Exclude External Stock" msgstr "" -#: part/serializers.py:1221 +#: part/serializers.py:1274 msgid "Exclude stock items in external locations" msgstr "" -#: part/serializers.py:1226 +#: part/serializers.py:1279 msgid "Generate Report" msgstr "" -#: part/serializers.py:1227 +#: part/serializers.py:1280 msgid "Generate report file containing calculated stocktake data" msgstr "" -#: part/serializers.py:1232 +#: part/serializers.py:1285 msgid "Update Parts" msgstr "" -#: part/serializers.py:1233 +#: part/serializers.py:1286 msgid "Update specified parts with calculated stocktake data" msgstr "" -#: part/serializers.py:1241 +#: part/serializers.py:1294 msgid "Stocktake functionality is not enabled" msgstr "" -#: part/serializers.py:1347 +#: part/serializers.py:1299 +msgid "Background worker check failed" +msgstr "" + +#: part/serializers.py:1401 msgid "Override calculated value for minimum price" msgstr "" -#: part/serializers.py:1354 +#: part/serializers.py:1408 msgid "Minimum price currency" msgstr "" -#: part/serializers.py:1362 +#: part/serializers.py:1416 msgid "Override calculated value for maximum price" msgstr "" -#: part/serializers.py:1369 +#: part/serializers.py:1423 msgid "Maximum price currency" msgstr "" -#: part/serializers.py:1398 +#: part/serializers.py:1452 msgid "Update" msgstr "" -#: part/serializers.py:1399 +#: part/serializers.py:1453 msgid "Update pricing for this part" msgstr "" -#: part/serializers.py:1422 +#: part/serializers.py:1476 #, python-brace-format msgid "Could not convert from provided currencies to {default_currency}" msgstr "" -#: part/serializers.py:1429 +#: part/serializers.py:1483 msgid "Minimum price must not be greater than maximum price" msgstr "" -#: part/serializers.py:1432 +#: part/serializers.py:1486 msgid "Maximum price must not be less than minimum price" msgstr "" -#: part/serializers.py:1576 +#: part/serializers.py:1634 msgid "Select the parent assembly" msgstr "" -#: part/serializers.py:1585 +#: part/serializers.py:1643 msgid "Component Name" msgstr "" -#: part/serializers.py:1588 +#: part/serializers.py:1646 msgid "Component IPN" msgstr "" -#: part/serializers.py:1591 +#: part/serializers.py:1649 msgid "Component Description" msgstr "" -#: part/serializers.py:1597 +#: part/serializers.py:1655 msgid "Select the component part" msgstr "" -#: part/serializers.py:1606 part/templates/part/part_base.html:235 +#: part/serializers.py:1664 part/templates/part/part_base.html:243 #: templates/js/translated/bom.js:1219 msgid "Can Build" msgstr "" -#: part/serializers.py:1837 +#: part/serializers.py:1899 msgid "Select part to copy BOM from" msgstr "" -#: part/serializers.py:1845 +#: part/serializers.py:1907 msgid "Remove Existing Data" msgstr "" -#: part/serializers.py:1846 +#: part/serializers.py:1908 msgid "Remove existing BOM items before copying" msgstr "" -#: part/serializers.py:1851 +#: part/serializers.py:1913 msgid "Include Inherited" msgstr "" -#: part/serializers.py:1852 +#: part/serializers.py:1914 msgid "Include BOM items which are inherited from templated parts" msgstr "" -#: part/serializers.py:1857 +#: part/serializers.py:1919 msgid "Skip Invalid Rows" msgstr "" -#: part/serializers.py:1858 +#: part/serializers.py:1920 msgid "Enable this option to skip invalid rows" msgstr "" -#: part/serializers.py:1863 +#: part/serializers.py:1925 msgid "Copy Substitute Parts" msgstr "" -#: part/serializers.py:1864 +#: part/serializers.py:1926 msgid "Copy substitute parts when duplicate BOM items" msgstr "" -#: part/serializers.py:1901 +#: part/serializers.py:1963 msgid "Clear Existing BOM" msgstr "" -#: part/serializers.py:1902 +#: part/serializers.py:1964 msgid "Delete existing BOM items before uploading" msgstr "" -#: part/serializers.py:1934 +#: part/serializers.py:1996 msgid "No part column specified" msgstr "" -#: part/serializers.py:1978 +#: part/serializers.py:2040 msgid "Multiple matching parts found" msgstr "" -#: part/serializers.py:1981 +#: part/serializers.py:2043 msgid "No matching part found" msgstr "" -#: part/serializers.py:1984 +#: part/serializers.py:2045 msgid "Part is not designated as a component" msgstr "" -#: part/serializers.py:1993 +#: part/serializers.py:2054 msgid "Quantity not provided" msgstr "" -#: part/serializers.py:2001 +#: part/serializers.py:2062 msgid "Invalid quantity" msgstr "" -#: part/serializers.py:2024 +#: part/serializers.py:2085 msgid "At least one BOM item is required" msgstr "" #: part/stocktake.py:224 templates/js/translated/part.js:1073 #: templates/js/translated/part.js:1828 templates/js/translated/part.js:1884 -#: templates/js/translated/purchase_order.js:2154 +#: templates/js/translated/purchase_order.js:2138 msgid "Total Quantity" msgstr "" @@ -7932,9 +8157,9 @@ msgid "Add stocktake information" msgstr "" #: part/templates/part/detail.html:67 part/templates/part/part_sidebar.html:50 -#: stock/admin.py:255 templates/InvenTree/settings/part_stocktake.html:30 +#: stock/admin.py:256 templates/InvenTree/settings/part_stocktake.html:30 #: templates/InvenTree/settings/sidebar.html:53 -#: templates/js/translated/stock.js:2301 users/models.py:204 +#: templates/js/translated/stock.js:2302 users/models.py:204 msgid "Stocktake" msgstr "" @@ -8093,142 +8318,146 @@ msgstr "" msgid "Part List" msgstr "" -#: part/templates/part/part_base.html:25 part/templates/part/part_base.html:29 +#: part/templates/part/part_base.html:26 part/templates/part/part_base.html:30 msgid "You are subscribed to notifications for this part" msgstr "" -#: part/templates/part/part_base.html:33 +#: part/templates/part/part_base.html:34 msgid "Subscribe to notifications for this part" msgstr "" -#: part/templates/part/part_base.html:52 +#: part/templates/part/part_base.html:53 #: stock/templates/stock/item_base.html:62 -#: stock/templates/stock/location.html:71 templates/js/translated/label.js:136 +#: stock/templates/stock/location.html:72 templates/js/translated/label.js:136 msgid "Print Label" msgstr "" -#: part/templates/part/part_base.html:58 +#: part/templates/part/part_base.html:59 msgid "Show pricing information" msgstr "" -#: part/templates/part/part_base.html:63 -#: stock/templates/stock/item_base.html:110 -#: stock/templates/stock/location.html:80 +#: part/templates/part/part_base.html:64 +#: stock/templates/stock/item_base.html:107 +#: stock/templates/stock/location.html:81 msgid "Stock actions" msgstr "" -#: part/templates/part/part_base.html:70 +#: part/templates/part/part_base.html:71 msgid "Count part stock" msgstr "" -#: part/templates/part/part_base.html:76 +#: part/templates/part/part_base.html:77 msgid "Transfer part stock" msgstr "" -#: part/templates/part/part_base.html:91 templates/js/translated/part.js:2299 +#: part/templates/part/part_base.html:92 templates/js/translated/part.js:2299 msgid "Part actions" msgstr "" -#: part/templates/part/part_base.html:94 +#: part/templates/part/part_base.html:95 msgid "Duplicate part" msgstr "" -#: part/templates/part/part_base.html:97 +#: part/templates/part/part_base.html:98 msgid "Edit part" msgstr "" -#: part/templates/part/part_base.html:100 +#: part/templates/part/part_base.html:101 msgid "Delete part" msgstr "" -#: part/templates/part/part_base.html:119 +#: part/templates/part/part_base.html:120 msgid "Part is a template part (variants can be made from this part)" msgstr "" -#: part/templates/part/part_base.html:123 +#: part/templates/part/part_base.html:124 msgid "Part can be assembled from other parts" msgstr "" -#: part/templates/part/part_base.html:127 +#: part/templates/part/part_base.html:128 msgid "Part can be used in assemblies" msgstr "" -#: part/templates/part/part_base.html:131 +#: part/templates/part/part_base.html:132 msgid "Part stock is tracked by serial number" msgstr "" -#: part/templates/part/part_base.html:135 +#: part/templates/part/part_base.html:136 msgid "Part can be purchased from external suppliers" msgstr "" -#: part/templates/part/part_base.html:139 +#: part/templates/part/part_base.html:140 msgid "Part can be sold to customers" msgstr "" -#: part/templates/part/part_base.html:145 +#: part/templates/part/part_base.html:146 msgid "Part is not active" msgstr "" -#: part/templates/part/part_base.html:153 +#: part/templates/part/part_base.html:154 msgid "Part is virtual (not a physical part)" msgstr "" -#: part/templates/part/part_base.html:163 -#: part/templates/part/part_base.html:690 +#: part/templates/part/part_base.html:164 +#: part/templates/part/part_base.html:698 msgid "Show Part Details" msgstr "" #: part/templates/part/part_base.html:218 -#: stock/templates/stock/item_base.html:388 +msgid "Required for Orders" +msgstr "" + +#: part/templates/part/part_base.html:226 +#: stock/templates/stock/item_base.html:385 msgid "Allocated to Build Orders" msgstr "" -#: part/templates/part/part_base.html:227 -#: stock/templates/stock/item_base.html:381 +#: part/templates/part/part_base.html:235 +#: stock/templates/stock/item_base.html:378 msgid "Allocated to Sales Orders" msgstr "" -#: part/templates/part/part_base.html:300 +#: part/templates/part/part_base.html:308 msgid "Minimum stock level" msgstr "" -#: part/templates/part/part_base.html:331 templates/js/translated/bom.js:1071 +#: part/templates/part/part_base.html:339 templates/js/translated/bom.js:1071 #: templates/js/translated/part.js:1271 templates/js/translated/part.js:2463 #: templates/js/translated/pricing.js:391 -#: templates/js/translated/pricing.js:1054 +#: templates/js/translated/pricing.js:1052 msgid "Price Range" msgstr "" -#: part/templates/part/part_base.html:361 +#: part/templates/part/part_base.html:369 msgid "Latest Serial Number" msgstr "" -#: part/templates/part/part_base.html:365 -#: stock/templates/stock/item_base.html:322 +#: part/templates/part/part_base.html:373 +#: stock/templates/stock/item_base.html:319 msgid "Search for serial number" msgstr "" -#: part/templates/part/part_base.html:453 +#: part/templates/part/part_base.html:461 msgid "Part QR Code" msgstr "" -#: part/templates/part/part_base.html:470 +#: part/templates/part/part_base.html:478 msgid "Link Barcode to Part" msgstr "" -#: part/templates/part/part_base.html:520 +#: part/templates/part/part_base.html:528 msgid "Calculate" msgstr "" -#: part/templates/part/part_base.html:537 +#: part/templates/part/part_base.html:545 msgid "Remove associated image from this part" msgstr "" -#: part/templates/part/part_base.html:588 +#: part/templates/part/part_base.html:596 msgid "No matching images found" msgstr "" -#: part/templates/part/part_base.html:684 +#: part/templates/part/part_base.html:692 msgid "Hide Part Details" msgstr "" @@ -8282,13 +8511,13 @@ msgid "Variants" msgstr "" #: part/templates/part/part_sidebar.html:14 -#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:21 +#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:22 #: stock/templates/stock/stock_app_base.html:10 #: templates/InvenTree/search.html:153 #: templates/InvenTree/settings/sidebar.html:51 #: templates/js/translated/part.js:1249 templates/js/translated/part.js:2152 #: templates/js/translated/part.js:2411 templates/js/translated/stock.js:1066 -#: templates/js/translated/stock.js:2155 templates/navbar.html:31 +#: templates/js/translated/stock.js:2156 templates/navbar.html:31 msgid "Stock" msgstr "" @@ -8324,17 +8553,17 @@ msgstr "" #: part/templates/part/prices.html:18 #: templates/InvenTree/settings/settings_staff_js.html:80 #: templates/InvenTree/settings/user.html:24 -#: templates/js/translated/helpers.js:103 +#: templates/js/translated/helpers.js:104 #: templates/js/translated/pricing.js:628 templates/notes_buttons.html:3 #: templates/notes_buttons.html:4 msgid "Edit" msgstr "" -#: part/templates/part/prices.html:28 stock/admin.py:251 -#: stock/templates/stock/item_base.html:446 -#: templates/js/translated/company.js:1703 -#: templates/js/translated/company.js:1713 -#: templates/js/translated/stock.js:2331 +#: part/templates/part/prices.html:28 stock/admin.py:252 +#: stock/templates/stock/item_base.html:443 +#: templates/js/translated/company.js:1704 +#: templates/js/translated/company.js:1714 +#: templates/js/translated/stock.js:2332 msgid "Last Updated" msgstr "" @@ -8406,7 +8635,7 @@ msgid "Update Pricing" msgstr "" #: part/templates/part/stock_count.html:7 -#: templates/js/translated/model_renderers.js:228 +#: templates/js/translated/model_renderers.js:231 #: templates/js/translated/part.js:707 templates/js/translated/part.js:2147 #: templates/js/translated/part.js:2149 msgid "No Stock" @@ -8486,7 +8715,7 @@ msgstr "" msgid "Part Pricing" msgstr "" -#: plugin/api.py:172 +#: plugin/api.py:175 msgid "Plugin cannot be deleted as it is currently active" msgstr "" @@ -8498,78 +8727,85 @@ msgstr "هیچ عملیات کاربر-محوری، مشخص نشده است" msgid "No matching action found" msgstr "" -#: plugin/base/barcodes/api.py:125 plugin/base/barcodes/api.py:371 -#: plugin/base/barcodes/api.py:546 +#: plugin/base/barcodes/api.py:203 msgid "No match found for barcode data" msgstr "" -#: plugin/base/barcodes/api.py:129 +#: plugin/base/barcodes/api.py:207 msgid "Match found for barcode data" msgstr "" -#: plugin/base/barcodes/api.py:163 plugin/base/barcodes/serializers.py:45 +#: plugin/base/barcodes/api.py:245 plugin/base/barcodes/serializers.py:72 msgid "Model is not supported" msgstr "" -#: plugin/base/barcodes/api.py:168 +#: plugin/base/barcodes/api.py:250 msgid "Model instance not found" msgstr "" -#: plugin/base/barcodes/api.py:197 -#: templates/js/translated/purchase_order.js:1468 +#: plugin/base/barcodes/api.py:279 +#: templates/js/translated/purchase_order.js:1452 msgid "Barcode matches existing item" msgstr "" -#: plugin/base/barcodes/api.py:336 +#: plugin/base/barcodes/api.py:418 msgid "No matching part data found" msgstr "" -#: plugin/base/barcodes/api.py:353 +#: plugin/base/barcodes/api.py:434 msgid "No matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:357 +#: plugin/base/barcodes/api.py:437 msgid "Multiple matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:381 +#: plugin/base/barcodes/api.py:450 plugin/base/barcodes/api.py:664 +msgid "No matching plugin found for barcode data" +msgstr "" + +#: plugin/base/barcodes/api.py:460 msgid "Matched supplier part" msgstr "" -#: plugin/base/barcodes/api.py:430 +#: plugin/base/barcodes/api.py:525 msgid "Item has already been received" msgstr "" -#: plugin/base/barcodes/api.py:467 +#: plugin/base/barcodes/api.py:563 msgid "No match for supplier barcode" msgstr "" -#: plugin/base/barcodes/api.py:510 +#: plugin/base/barcodes/api.py:612 msgid "Multiple matching line items found" msgstr "" -#: plugin/base/barcodes/api.py:513 +#: plugin/base/barcodes/api.py:615 msgid "No matching line item found" msgstr "" -#: plugin/base/barcodes/api.py:551 plugin/base/barcodes/api.py:558 +#: plugin/base/barcodes/api.py:661 +msgid "No sales order provided" +msgstr "" + +#: plugin/base/barcodes/api.py:670 msgid "Barcode does not match an existing stock item" msgstr "" -#: plugin/base/barcodes/api.py:569 +#: plugin/base/barcodes/api.py:686 msgid "Stock item does not match line item" msgstr "" -#: plugin/base/barcodes/api.py:593 templates/js/translated/build.js:2780 -#: templates/js/translated/sales_order.js:1953 +#: plugin/base/barcodes/api.py:716 templates/js/translated/build.js:2798 +#: templates/js/translated/sales_order.js:1934 msgid "Insufficient stock available" msgstr "" -#: plugin/base/barcodes/api.py:602 +#: plugin/base/barcodes/api.py:729 msgid "Stock item allocated to sales order" msgstr "" -#: plugin/base/barcodes/api.py:606 +#: plugin/base/barcodes/api.py:732 msgid "Not enough information" msgstr "" @@ -8591,75 +8827,75 @@ msgstr "" msgid "Purchase order does not match supplier" msgstr "" -#: plugin/base/barcodes/mixins.py:465 +#: plugin/base/barcodes/mixins.py:467 msgid "Failed to find pending line item for supplier part" msgstr "" -#: plugin/base/barcodes/mixins.py:496 +#: plugin/base/barcodes/mixins.py:498 msgid "Further information required to receive line item" msgstr "" -#: plugin/base/barcodes/mixins.py:504 +#: plugin/base/barcodes/mixins.py:506 msgid "Received purchase order line item" msgstr "" -#: plugin/base/barcodes/serializers.py:21 +#: plugin/base/barcodes/serializers.py:48 msgid "Scanned barcode data" msgstr "" -#: plugin/base/barcodes/serializers.py:30 +#: plugin/base/barcodes/serializers.py:57 msgid "Model name to generate barcode for" msgstr "" -#: plugin/base/barcodes/serializers.py:35 +#: plugin/base/barcodes/serializers.py:62 msgid "Primary key of model object to generate barcode for" msgstr "" -#: plugin/base/barcodes/serializers.py:105 +#: plugin/base/barcodes/serializers.py:132 msgid "Purchase Order to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:111 +#: plugin/base/barcodes/serializers.py:138 msgid "Purchase order is not pending" msgstr "" -#: plugin/base/barcodes/serializers.py:129 +#: plugin/base/barcodes/serializers.py:156 msgid "PurchaseOrder to receive items against" msgstr "" -#: plugin/base/barcodes/serializers.py:135 +#: plugin/base/barcodes/serializers.py:162 msgid "Purchase order has not been placed" msgstr "" -#: plugin/base/barcodes/serializers.py:143 +#: plugin/base/barcodes/serializers.py:170 msgid "Location to receive items into" msgstr "" -#: plugin/base/barcodes/serializers.py:149 +#: plugin/base/barcodes/serializers.py:176 msgid "Cannot select a structural location" msgstr "" -#: plugin/base/barcodes/serializers.py:163 +#: plugin/base/barcodes/serializers.py:190 msgid "Sales Order to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:169 +#: plugin/base/barcodes/serializers.py:196 msgid "Sales order is not pending" msgstr "" -#: plugin/base/barcodes/serializers.py:177 +#: plugin/base/barcodes/serializers.py:204 msgid "Sales order line item to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:184 +#: plugin/base/barcodes/serializers.py:211 msgid "Sales order shipment to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:190 +#: plugin/base/barcodes/serializers.py:217 msgid "Shipment has already been delivered" msgstr "" -#: plugin/base/barcodes/serializers.py:195 +#: plugin/base/barcodes/serializers.py:222 msgid "Quantity to allocate" msgstr "" @@ -8679,6 +8915,42 @@ msgstr "" msgid "No items provided to print" msgstr "" +#: plugin/base/ui/serializers.py:30 +msgid "Plugin Name" +msgstr "" + +#: plugin/base/ui/serializers.py:34 +msgid "Feature Type" +msgstr "" + +#: plugin/base/ui/serializers.py:39 +msgid "Feature Label" +msgstr "" + +#: plugin/base/ui/serializers.py:44 +msgid "Feature Title" +msgstr "" + +#: plugin/base/ui/serializers.py:49 +msgid "Feature Description" +msgstr "" + +#: plugin/base/ui/serializers.py:54 +msgid "Feature Icon" +msgstr "" + +#: plugin/base/ui/serializers.py:58 +msgid "Feature Options" +msgstr "" + +#: plugin/base/ui/serializers.py:61 +msgid "Feature Context" +msgstr "" + +#: plugin/base/ui/serializers.py:64 +msgid "Feature Source (javascript)" +msgstr "" + #: plugin/builtin/barcodes/inventree_barcode.py:27 msgid "InvenTree Barcodes" msgstr "" @@ -8756,7 +9028,7 @@ msgstr "" msgid "URL that is used to send messages to a slack channel" msgstr "" -#: plugin/builtin/integration/core_notifications.py:164 +#: plugin/builtin/integration/core_notifications.py:166 msgid "Open link" msgstr "" @@ -8794,11 +9066,11 @@ msgstr "" msgid "Provides support for printing using a machine" msgstr "" -#: plugin/builtin/labels/inventree_machine.py:149 +#: plugin/builtin/labels/inventree_machine.py:151 msgid "last used" msgstr "" -#: plugin/builtin/labels/inventree_machine.py:166 +#: plugin/builtin/labels/inventree_machine.py:168 msgid "Options" msgstr "" @@ -8822,7 +9094,7 @@ msgstr "" msgid "Print a border around each label" msgstr "" -#: plugin/builtin/labels/label_sheet.py:47 report/models.py:307 +#: plugin/builtin/labels/label_sheet.py:47 report/models.py:315 msgid "Landscape" msgstr "" @@ -8894,19 +9166,19 @@ msgstr "" msgid "The Supplier which acts as 'TME'" msgstr "" -#: plugin/installer.py:194 plugin/installer.py:282 +#: plugin/installer.py:199 plugin/installer.py:282 msgid "Only staff users can administer plugins" msgstr "" -#: plugin/installer.py:197 +#: plugin/installer.py:202 msgid "Plugin installation is disabled" msgstr "" -#: plugin/installer.py:248 +#: plugin/installer.py:246 msgid "Installed plugin successfully" msgstr "" -#: plugin/installer.py:254 +#: plugin/installer.py:251 #, python-brace-format msgid "Installed plugin into {path}" msgstr "" @@ -8943,10 +9215,6 @@ msgstr "" msgid "Plugin Configurations" msgstr "" -#: plugin/models.py:43 users/models.py:100 -msgid "Key" -msgstr "" - #: plugin/models.py:44 msgid "Key of plugin" msgstr "" @@ -8955,7 +9223,7 @@ msgstr "" msgid "PluginName of the plugin" msgstr "" -#: plugin/models.py:59 plugin/serializers.py:90 +#: plugin/models.py:59 plugin/serializers.py:115 msgid "Package Name" msgstr "" @@ -8984,17 +9252,17 @@ msgstr "" msgid "Package Plugin" msgstr "" -#: plugin/models.py:220 report/models.py:474 +#: plugin/models.py:259 report/models.py:482 #: templates/InvenTree/settings/plugin_settings.html:9 #: templates/js/translated/plugin.js:51 msgid "Plugin" msgstr "" -#: plugin/models.py:267 +#: plugin/models.py:306 msgid "Method" msgstr "" -#: plugin/plugin.py:270 +#: plugin/plugin.py:275 msgid "No author found" msgstr "" @@ -9053,81 +9321,157 @@ msgstr "" msgid "InvenTree Contributors" msgstr "" -#: plugin/serializers.py:81 -msgid "Source URL" +#: plugin/samples/integration/user_interface_sample.py:27 +msgid "Enable Part Panels" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:28 +msgid "Enable custom panels for Part views" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:33 +msgid "Enable Purchase Order Panels" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:34 +msgid "Enable custom panels for Purchase Order views" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:39 +msgid "Enable Broken Panels" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:40 +msgid "Enable broken panels for testing" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:45 +msgid "Enable Dynamic Panel" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:46 +msgid "Enable dynamic panels for testing" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:98 +msgid "Part Panel" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:131 +msgid "Broken Dashboard Item" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:133 +msgid "This is a broken dashboard item - it will not render!" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:139 +msgid "Sample Dashboard Item" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:141 +msgid "This is a sample dashboard item. It renders a simple string of HTML content." +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:147 +msgid "Context Dashboard Item" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:161 +msgid "Admin Dashboard Item" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:162 +msgid "This is an admin-only dashboard item." +msgstr "" + +#: plugin/serializers.py:82 +msgid "Source File" msgstr "" #: plugin/serializers.py:83 +msgid "Path to the source file for admin integration" +msgstr "" + +#: plugin/serializers.py:90 +msgid "Optional context data for the admin integration" +msgstr "" + +#: plugin/serializers.py:106 +msgid "Source URL" +msgstr "" + +#: plugin/serializers.py:108 msgid "Source for the package - this can be a custom registry or a VCS path" msgstr "" -#: plugin/serializers.py:92 +#: plugin/serializers.py:117 msgid "Name for the Plugin Package - can also contain a version indicator" msgstr "" -#: plugin/serializers.py:99 +#: plugin/serializers.py:124 #: templates/InvenTree/settings/plugin_settings.html:42 #: templates/js/translated/plugin.js:86 msgid "Version" msgstr "" -#: plugin/serializers.py:101 +#: plugin/serializers.py:126 msgid "Version specifier for the plugin. Leave blank for latest version." msgstr "" -#: plugin/serializers.py:106 +#: plugin/serializers.py:131 msgid "Confirm plugin installation" msgstr "" -#: plugin/serializers.py:108 +#: plugin/serializers.py:133 msgid "This will install this plugin now into the current instance. The instance will go into maintenance." msgstr "" -#: plugin/serializers.py:121 +#: plugin/serializers.py:146 msgid "Installation not confirmed" msgstr "" -#: plugin/serializers.py:123 +#: plugin/serializers.py:148 msgid "Either packagename of URL must be provided" msgstr "" -#: plugin/serializers.py:161 +#: plugin/serializers.py:184 msgid "Full reload" msgstr "" -#: plugin/serializers.py:162 +#: plugin/serializers.py:185 msgid "Perform a full reload of the plugin registry" msgstr "" -#: plugin/serializers.py:168 +#: plugin/serializers.py:191 msgid "Force reload" msgstr "" -#: plugin/serializers.py:170 +#: plugin/serializers.py:193 msgid "Force a reload of the plugin registry, even if it is already loaded" msgstr "" -#: plugin/serializers.py:177 +#: plugin/serializers.py:200 msgid "Collect plugins" msgstr "" -#: plugin/serializers.py:178 +#: plugin/serializers.py:201 msgid "Collect plugins and add them to the registry" msgstr "" -#: plugin/serializers.py:205 +#: plugin/serializers.py:228 msgid "Activate Plugin" msgstr "" -#: plugin/serializers.py:206 +#: plugin/serializers.py:229 msgid "Activate this plugin" msgstr "" -#: plugin/serializers.py:226 +#: plugin/serializers.py:249 msgid "Delete configuration" msgstr "" -#: plugin/serializers.py:227 +#: plugin/serializers.py:250 msgid "Delete the plugin configuration from the database" msgstr "" @@ -9135,11 +9479,11 @@ msgstr "" msgid "No valid objects provided to template" msgstr "" -#: report/api.py:103 report/models.py:438 report/serializers.py:98 -#: report/serializers.py:148 templates/js/translated/purchase_order.js:1817 +#: report/api.py:103 report/models.py:446 report/serializers.py:99 +#: report/serializers.py:149 templates/js/translated/purchase_order.js:1801 #: templates/js/translated/return_order.js:353 -#: templates/js/translated/sales_order.js:887 -#: templates/js/translated/sales_order.js:1047 +#: templates/js/translated/sales_order.js:846 +#: templates/js/translated/sales_order.js:1020 msgid "Items" msgstr "" @@ -9167,7 +9511,11 @@ msgstr "" msgid "Error printing label" msgstr "" -#: report/api.py:375 report/api.py:411 +#: report/api.py:358 +msgid "Report saved at time of printing" +msgstr "" + +#: report/api.py:384 report/api.py:420 #, python-brace-format msgid "Template file '{template}' is missing or does not exist" msgstr "" @@ -9204,135 +9552,143 @@ msgstr "" msgid "Revision number (auto-increments)" msgstr "" -#: report/models.py:202 +#: report/models.py:168 +msgid "Attach to Model on Print" +msgstr "" + +#: report/models.py:170 +msgid "Save report output as an attachment against linked model instance when printing" +msgstr "" + +#: report/models.py:210 msgid "Filename Pattern" msgstr "" -#: report/models.py:203 +#: report/models.py:211 msgid "Pattern for generating filenames" msgstr "" -#: report/models.py:208 +#: report/models.py:216 msgid "Template is enabled" msgstr "" -#: report/models.py:214 +#: report/models.py:222 msgid "Target model type for template" msgstr "" -#: report/models.py:234 +#: report/models.py:242 msgid "Filters" msgstr "" -#: report/models.py:235 +#: report/models.py:243 msgid "Template query filters (comma-separated list of key=value pairs)" msgstr "" -#: report/models.py:294 report/models.py:361 +#: report/models.py:302 report/models.py:369 msgid "Template file" msgstr "" -#: report/models.py:302 +#: report/models.py:310 msgid "Page size for PDF reports" msgstr "" -#: report/models.py:308 +#: report/models.py:316 msgid "Render report in landscape orientation" msgstr "" -#: report/models.py:367 +#: report/models.py:375 msgid "Width [mm]" msgstr "" -#: report/models.py:368 +#: report/models.py:376 msgid "Label width, specified in mm" msgstr "" -#: report/models.py:374 +#: report/models.py:382 msgid "Height [mm]" msgstr "" -#: report/models.py:375 +#: report/models.py:383 msgid "Label height, specified in mm" msgstr "" -#: report/models.py:438 +#: report/models.py:446 msgid "Number of items to process" msgstr "" -#: report/models.py:444 +#: report/models.py:452 msgid "Report generation is complete" msgstr "" -#: report/models.py:448 templates/js/translated/build.js:2349 +#: report/models.py:456 templates/js/translated/build.js:2352 msgid "Progress" msgstr "" -#: report/models.py:448 +#: report/models.py:456 msgid "Report generation progress" msgstr "" -#: report/models.py:456 +#: report/models.py:464 msgid "Report Template" msgstr "" -#: report/models.py:463 report/models.py:486 +#: report/models.py:471 report/models.py:494 msgid "Output File" msgstr "" -#: report/models.py:464 report/models.py:487 +#: report/models.py:472 report/models.py:495 msgid "Generated output file" msgstr "" -#: report/models.py:475 +#: report/models.py:483 msgid "Label output plugin" msgstr "" -#: report/models.py:479 +#: report/models.py:487 msgid "Label Template" msgstr "" -#: report/models.py:502 +#: report/models.py:510 msgid "Snippet" msgstr "" -#: report/models.py:503 +#: report/models.py:511 msgid "Report snippet file" msgstr "" -#: report/models.py:510 +#: report/models.py:518 msgid "Snippet file description" msgstr "" -#: report/models.py:528 +#: report/models.py:536 msgid "Asset" msgstr "" -#: report/models.py:529 +#: report/models.py:537 msgid "Report asset file" msgstr "" -#: report/models.py:536 +#: report/models.py:544 msgid "Asset file description" msgstr "" -#: report/serializers.py:91 +#: report/serializers.py:92 msgid "Select report template" msgstr "" -#: report/serializers.py:99 report/serializers.py:149 +#: report/serializers.py:100 report/serializers.py:150 msgid "List of item primary keys to include in the report" msgstr "" -#: report/serializers.py:132 +#: report/serializers.py:133 msgid "Select label template" msgstr "" -#: report/serializers.py:140 +#: report/serializers.py:141 msgid "Printing Plugin" msgstr "" -#: report/serializers.py:141 +#: report/serializers.py:142 msgid "Select plugin to use for label printing" msgstr "" @@ -9365,9 +9721,9 @@ msgstr "" #: report/templates/report/inventree_sales_order_report.html:30 #: templates/js/translated/order.js:341 templates/js/translated/pricing.js:527 #: templates/js/translated/pricing.js:596 -#: templates/js/translated/pricing.js:834 -#: templates/js/translated/purchase_order.js:2185 -#: templates/js/translated/sales_order.js:1873 +#: templates/js/translated/pricing.js:832 +#: templates/js/translated/purchase_order.js:2169 +#: templates/js/translated/sales_order.js:1854 msgid "Unit Price" msgstr "" @@ -9379,13 +9735,18 @@ msgstr "" #: report/templates/report/inventree_purchase_order_report.html:72 #: report/templates/report/inventree_sales_order_report.html:72 -#: templates/js/translated/purchase_order.js:2087 -#: templates/js/translated/sales_order.js:1842 +#: templates/js/translated/purchase_order.js:2071 +#: templates/js/translated/sales_order.js:1823 #: templates/test_statistics_table.html:8 #: templates/test_statistics_table.html:19 msgid "Total" msgstr "" +#: report/templates/report/inventree_sales_order_shipment_report.html:23 +#: stock/templates/stock/stock_sidebar.html:8 +msgid "Allocations" +msgstr "" + #: report/templates/report/inventree_stock_location_report.html:97 msgid "Stock location items" msgstr "" @@ -9403,15 +9764,13 @@ msgstr "" msgid "Test" msgstr "" -#: report/templates/report/inventree_test_report.html:103 stock/models.py:2544 -msgid "Result" -msgstr "" - #: report/templates/report/inventree_test_report.html:129 +#: templates/js/translated/stock.js:1448 msgid "Pass" msgstr "" #: report/templates/report/inventree_test_report.html:131 +#: templates/js/translated/stock.js:1450 msgid "Fail" msgstr "" @@ -9420,17 +9779,18 @@ msgid "No result (required)" msgstr "" #: report/templates/report/inventree_test_report.html:140 +#: templates/js/translated/stock.js:1455 msgid "No result" msgstr "" #: report/templates/report/inventree_test_report.html:153 -#: stock/serializers.py:599 stock/templates/stock/stock_sidebar.html:16 +#: stock/serializers.py:626 stock/templates/stock/stock_sidebar.html:16 msgid "Installed Items" msgstr "" -#: report/templates/report/inventree_test_report.html:167 stock/admin.py:161 +#: report/templates/report/inventree_test_report.html:167 stock/admin.py:162 #: templates/js/translated/stock.js:706 templates/js/translated/stock.js:877 -#: templates/js/translated/stock.js:3194 +#: templates/js/translated/stock.js:3195 msgid "Serial" msgstr "" @@ -9450,67 +9810,67 @@ msgstr "" msgid "company_image tag requires a Company instance" msgstr "" -#: stock/admin.py:51 stock/admin.py:171 +#: stock/admin.py:51 stock/admin.py:172 msgid "Location ID" msgstr "" -#: stock/admin.py:63 stock/templates/stock/location.html:128 -#: stock/templates/stock/location.html:134 +#: stock/admin.py:63 stock/templates/stock/location.html:129 +#: stock/templates/stock/location.html:135 msgid "Location Path" msgstr "" -#: stock/admin.py:148 +#: stock/admin.py:149 msgid "Stock Item ID" msgstr "" -#: stock/admin.py:167 +#: stock/admin.py:168 msgid "Status Code" msgstr "" -#: stock/admin.py:179 +#: stock/admin.py:180 msgid "Supplier Part ID" msgstr "" -#: stock/admin.py:184 +#: stock/admin.py:185 msgid "Supplier Part SKU" msgstr "" -#: stock/admin.py:189 +#: stock/admin.py:190 msgid "Supplier ID" msgstr "" -#: stock/admin.py:200 +#: stock/admin.py:201 msgid "Customer ID" msgstr "" -#: stock/admin.py:205 stock/models.py:825 -#: stock/templates/stock/item_base.html:354 +#: stock/admin.py:206 stock/models.py:902 +#: stock/templates/stock/item_base.html:351 msgid "Installed In" msgstr "" -#: stock/admin.py:210 +#: stock/admin.py:211 msgid "Build ID" msgstr "" -#: stock/admin.py:220 +#: stock/admin.py:221 msgid "Sales Order ID" msgstr "" -#: stock/admin.py:225 +#: stock/admin.py:226 msgid "Purchase Order ID" msgstr "" -#: stock/admin.py:240 +#: stock/admin.py:241 msgid "Review Needed" msgstr "" -#: stock/admin.py:245 +#: stock/admin.py:246 msgid "Delete on Deplete" msgstr "" -#: stock/admin.py:260 stock/models.py:919 -#: stock/templates/stock/item_base.html:433 -#: templates/js/translated/stock.js:2315 users/models.py:124 +#: stock/admin.py:261 stock/models.py:996 +#: stock/templates/stock/item_base.html:430 +#: templates/js/translated/stock.js:2316 users/models.py:124 msgid "Expiry Date" msgstr "" @@ -9526,11 +9886,11 @@ msgstr "" msgid "Include sub-locations in filtered results" msgstr "" -#: stock/api.py:367 stock/serializers.py:1186 +#: stock/api.py:366 stock/serializers.py:1217 msgid "Parent Location" msgstr "" -#: stock/api.py:368 +#: stock/api.py:367 msgid "Filter by parent location" msgstr "" @@ -9550,8 +9910,8 @@ msgstr "" msgid "Expiry date after" msgstr "" -#: stock/api.py:840 stock/serializers.py:604 -#: stock/templates/stock/item_base.html:439 +#: stock/api.py:840 stock/serializers.py:631 +#: stock/templates/stock/item_base.html:436 #: templates/js/translated/table_filters.js:448 msgid "Stale" msgstr "" @@ -9560,594 +9920,598 @@ msgstr "" msgid "Quantity is required" msgstr "" -#: stock/api.py:933 +#: stock/api.py:932 msgid "Valid part must be supplied" msgstr "" -#: stock/api.py:964 +#: stock/api.py:959 msgid "The given supplier part does not exist" msgstr "" -#: stock/api.py:974 +#: stock/api.py:969 msgid "The supplier part has a pack size defined, but flag use_pack_size not set" msgstr "" -#: stock/api.py:1005 +#: stock/api.py:996 msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "" -#: stock/models.py:64 +#: stock/models.py:70 msgid "Stock Location type" msgstr "" -#: stock/models.py:65 +#: stock/models.py:71 msgid "Stock Location types" msgstr "" -#: stock/models.py:91 +#: stock/models.py:97 msgid "Default icon for all locations that have no icon set (optional)" msgstr "" -#: stock/models.py:131 stock/models.py:807 -#: stock/templates/stock/location.html:17 +#: stock/models.py:137 stock/models.py:884 +#: stock/templates/stock/location.html:18 #: stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "" -#: stock/models.py:132 stock/templates/stock/location.html:183 +#: stock/models.py:138 stock/templates/stock/location.html:184 #: templates/InvenTree/search.html:166 templates/js/translated/search.js:178 #: users/models.py:205 msgid "Stock Locations" msgstr "" -#: stock/models.py:180 stock/models.py:968 -#: stock/templates/stock/item_base.html:247 +#: stock/models.py:186 stock/models.py:1045 +#: stock/templates/stock/item_base.html:244 msgid "Owner" msgstr "" -#: stock/models.py:181 stock/models.py:969 +#: stock/models.py:187 stock/models.py:1046 msgid "Select Owner" msgstr "" -#: stock/models.py:189 +#: stock/models.py:195 msgid "Stock items may not be directly located into a structural stock locations, but may be located to child locations." msgstr "" -#: stock/models.py:196 templates/js/translated/stock.js:2865 +#: stock/models.py:202 templates/js/translated/stock.js:2866 #: templates/js/translated/table_filters.js:250 msgid "External" msgstr "" -#: stock/models.py:197 +#: stock/models.py:203 msgid "This is an external stock location" msgstr "" -#: stock/models.py:203 templates/js/translated/stock.js:2874 +#: stock/models.py:209 templates/js/translated/stock.js:2875 #: templates/js/translated/table_filters.js:253 msgid "Location type" msgstr "" -#: stock/models.py:207 +#: stock/models.py:213 msgid "Stock location type of this location" msgstr "" -#: stock/models.py:279 +#: stock/models.py:285 msgid "You cannot make this stock location structural because some stock items are already located into it!" msgstr "" -#: stock/models.py:664 +#: stock/models.py:492 +msgid "Part must be specified" +msgstr "" + +#: stock/models.py:741 msgid "Stock items cannot be located into structural stock locations!" msgstr "" -#: stock/models.py:691 stock/serializers.py:480 +#: stock/models.py:768 stock/serializers.py:492 msgid "Stock item cannot be created for virtual parts" msgstr "" -#: stock/models.py:708 +#: stock/models.py:785 #, python-brace-format msgid "Part type ('{self.supplier_part.part}') must be {self.part}" msgstr "" -#: stock/models.py:718 stock/models.py:731 +#: stock/models.py:795 stock/models.py:808 msgid "Quantity must be 1 for item with a serial number" msgstr "" -#: stock/models.py:721 +#: stock/models.py:798 msgid "Serial number cannot be set if quantity greater than 1" msgstr "" -#: stock/models.py:743 +#: stock/models.py:820 msgid "Item cannot belong to itself" msgstr "" -#: stock/models.py:748 +#: stock/models.py:825 msgid "Item must have a build reference if is_building=True" msgstr "" -#: stock/models.py:761 +#: stock/models.py:838 msgid "Build reference does not point to the same part object" msgstr "" -#: stock/models.py:777 +#: stock/models.py:854 msgid "Parent Stock Item" msgstr "" -#: stock/models.py:789 +#: stock/models.py:866 msgid "Base part" msgstr "" -#: stock/models.py:799 +#: stock/models.py:876 msgid "Select a matching supplier part for this stock item" msgstr "" -#: stock/models.py:811 +#: stock/models.py:888 msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:819 stock/serializers.py:1580 +#: stock/models.py:896 stock/serializers.py:1611 msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:830 +#: stock/models.py:907 msgid "Is this item installed in another item?" msgstr "" -#: stock/models.py:849 +#: stock/models.py:926 msgid "Serial number for this item" msgstr "" -#: stock/models.py:863 stock/serializers.py:1563 +#: stock/models.py:940 stock/serializers.py:1594 msgid "Batch code for this stock item" msgstr "" -#: stock/models.py:868 +#: stock/models.py:945 msgid "Stock Quantity" msgstr "" -#: stock/models.py:878 +#: stock/models.py:955 msgid "Source Build" msgstr "" -#: stock/models.py:881 +#: stock/models.py:958 msgid "Build for this stock item" msgstr "" -#: stock/models.py:888 stock/templates/stock/item_base.html:363 +#: stock/models.py:965 stock/templates/stock/item_base.html:360 msgid "Consumed By" msgstr "" -#: stock/models.py:891 +#: stock/models.py:968 msgid "Build order which consumed this stock item" msgstr "" -#: stock/models.py:900 +#: stock/models.py:977 msgid "Source Purchase Order" msgstr "" -#: stock/models.py:904 +#: stock/models.py:981 msgid "Purchase order for this stock item" msgstr "" -#: stock/models.py:910 +#: stock/models.py:987 msgid "Destination Sales Order" msgstr "" -#: stock/models.py:921 +#: stock/models.py:998 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "" -#: stock/models.py:939 +#: stock/models.py:1016 msgid "Delete on deplete" msgstr "" -#: stock/models.py:940 +#: stock/models.py:1017 msgid "Delete this Stock Item when stock is depleted" msgstr "" -#: stock/models.py:960 +#: stock/models.py:1037 msgid "Single unit purchase price at time of purchase" msgstr "" -#: stock/models.py:991 +#: stock/models.py:1068 msgid "Converted to part" msgstr "" -#: stock/models.py:1511 +#: stock/models.py:1600 msgid "Part is not set as trackable" msgstr "" -#: stock/models.py:1517 +#: stock/models.py:1606 msgid "Quantity must be integer" msgstr "" -#: stock/models.py:1525 +#: stock/models.py:1614 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({self.quantity})" msgstr "" -#: stock/models.py:1531 -msgid "Serial numbers must be a list of integers" +#: stock/models.py:1620 +msgid "Serial numbers must be provided as a list" msgstr "" -#: stock/models.py:1536 +#: stock/models.py:1625 msgid "Quantity does not match serial numbers" msgstr "" -#: stock/models.py:1544 stock/serializers.py:726 -msgid "Serial numbers already exist" -msgstr "" - -#: stock/models.py:1641 +#: stock/models.py:1747 stock/models.py:2563 msgid "Test template does not exist" msgstr "" -#: stock/models.py:1659 +#: stock/models.py:1765 msgid "Stock item has been assigned to a sales order" msgstr "" -#: stock/models.py:1663 +#: stock/models.py:1769 msgid "Stock item is installed in another item" msgstr "" -#: stock/models.py:1666 +#: stock/models.py:1772 msgid "Stock item contains other items" msgstr "" -#: stock/models.py:1669 +#: stock/models.py:1775 msgid "Stock item has been assigned to a customer" msgstr "" -#: stock/models.py:1672 +#: stock/models.py:1778 msgid "Stock item is currently in production" msgstr "" -#: stock/models.py:1675 +#: stock/models.py:1781 msgid "Serialized stock cannot be merged" msgstr "" -#: stock/models.py:1682 stock/serializers.py:1469 +#: stock/models.py:1788 stock/serializers.py:1500 msgid "Duplicate stock items" msgstr "" -#: stock/models.py:1686 +#: stock/models.py:1792 msgid "Stock items must refer to the same part" msgstr "" -#: stock/models.py:1694 +#: stock/models.py:1800 msgid "Stock items must refer to the same supplier part" msgstr "" -#: stock/models.py:1699 +#: stock/models.py:1805 msgid "Stock status codes must match" msgstr "" -#: stock/models.py:1960 +#: stock/models.py:2066 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:2343 +#: stock/models.py:2462 msgid "Stock Item Tracking" msgstr "" -#: stock/models.py:2376 +#: stock/models.py:2495 msgid "Entry notes" msgstr "" -#: stock/models.py:2416 +#: stock/models.py:2535 msgid "Stock Item Test Result" msgstr "" -#: stock/models.py:2449 +#: stock/models.py:2566 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:2454 +#: stock/models.py:2570 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:2459 +#: stock/models.py:2575 msgid "Invalid value for this test" msgstr "" -#: stock/models.py:2544 +#: stock/models.py:2660 msgid "Test result" msgstr "" -#: stock/models.py:2551 +#: stock/models.py:2667 msgid "Test output value" msgstr "" -#: stock/models.py:2559 +#: stock/models.py:2675 stock/serializers.py:245 msgid "Test result attachment" msgstr "" -#: stock/models.py:2563 +#: stock/models.py:2679 msgid "Test notes" msgstr "" -#: stock/models.py:2571 templates/js/translated/stock.js:1633 +#: stock/models.py:2687 templates/js/translated/stock.js:1633 msgid "Test station" msgstr "" -#: stock/models.py:2572 +#: stock/models.py:2688 msgid "The identifier of the test station where the test was performed" msgstr "" -#: stock/models.py:2578 +#: stock/models.py:2694 msgid "Started" msgstr "" -#: stock/models.py:2579 +#: stock/models.py:2695 msgid "The timestamp of the test start" msgstr "" -#: stock/models.py:2585 +#: stock/models.py:2701 msgid "Finished" msgstr "" -#: stock/models.py:2586 +#: stock/models.py:2702 msgid "The timestamp of the test finish" msgstr "" -#: stock/serializers.py:76 +#: stock/serializers.py:77 msgid "Generated batch code" msgstr "" -#: stock/serializers.py:85 +#: stock/serializers.py:86 msgid "Select build order" msgstr "" -#: stock/serializers.py:94 +#: stock/serializers.py:95 msgid "Select stock item to generate batch code for" msgstr "" -#: stock/serializers.py:103 +#: stock/serializers.py:104 msgid "Select location to generate batch code for" msgstr "" -#: stock/serializers.py:112 +#: stock/serializers.py:113 msgid "Select part to generate batch code for" msgstr "" -#: stock/serializers.py:121 +#: stock/serializers.py:122 msgid "Select purchase order" msgstr "" -#: stock/serializers.py:128 +#: stock/serializers.py:129 msgid "Enter quantity for batch code" msgstr "" -#: stock/serializers.py:151 +#: stock/serializers.py:152 msgid "Generated serial number" msgstr "" -#: stock/serializers.py:160 +#: stock/serializers.py:161 msgid "Select part to generate serial number for" msgstr "" -#: stock/serializers.py:168 +#: stock/serializers.py:169 msgid "Quantity of serial numbers to generate" msgstr "" -#: stock/serializers.py:233 +#: stock/serializers.py:234 msgid "Test template for this result" msgstr "" -#: stock/serializers.py:254 +#: stock/serializers.py:258 msgid "Template ID or test name must be provided" msgstr "" -#: stock/serializers.py:286 +#: stock/serializers.py:290 msgid "The test finished time cannot be earlier than the test started time" msgstr "" -#: stock/serializers.py:323 +#: stock/serializers.py:327 msgid "Serial number is too large" msgstr "" -#: stock/serializers.py:452 stock/templates/stock/item_base.html:193 +#: stock/serializers.py:462 stock/templates/stock/item_base.html:190 msgid "Parent Item" msgstr "" -#: stock/serializers.py:453 +#: stock/serializers.py:463 msgid "Parent stock item" msgstr "" -#: stock/serializers.py:472 +#: stock/serializers.py:484 msgid "Use pack size when adding: the quantity defined is the number of packs" msgstr "" -#: stock/serializers.py:596 stock/templates/stock/item_base.html:437 +#: stock/serializers.py:623 stock/templates/stock/item_base.html:434 #: templates/js/translated/table_filters.js:442 users/models.py:174 msgid "Expired" msgstr "" -#: stock/serializers.py:602 stock/templates/stock/stock_sidebar.html:20 +#: stock/serializers.py:629 stock/templates/stock/stock_sidebar.html:20 msgid "Child Items" msgstr "" -#: stock/serializers.py:606 +#: stock/serializers.py:633 msgid "Tracking Items" msgstr "" -#: stock/serializers.py:612 +#: stock/serializers.py:639 msgid "Purchase price of this stock item, per unit or pack" msgstr "" -#: stock/serializers.py:631 +#: stock/serializers.py:658 msgid "Minimum Pricing" msgstr "" -#: stock/serializers.py:637 +#: stock/serializers.py:664 msgid "Maximum Pricing" msgstr "" -#: stock/serializers.py:661 +#: stock/serializers.py:688 msgid "Enter number of stock items to serialize" msgstr "" -#: stock/serializers.py:674 +#: stock/serializers.py:701 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({q})" msgstr "" -#: stock/serializers.py:681 +#: stock/serializers.py:708 msgid "Enter serial numbers for new items" msgstr "" -#: stock/serializers.py:692 stock/serializers.py:1426 stock/serializers.py:1682 +#: stock/serializers.py:719 stock/serializers.py:1457 stock/serializers.py:1713 msgid "Destination stock location" msgstr "" -#: stock/serializers.py:699 +#: stock/serializers.py:726 msgid "Optional note field" msgstr "" -#: stock/serializers.py:709 +#: stock/serializers.py:736 msgid "Serial numbers cannot be assigned to this part" msgstr "" -#: stock/serializers.py:764 +#: stock/serializers.py:756 +msgid "Serial numbers already exist" +msgstr "" + +#: stock/serializers.py:795 msgid "Select stock item to install" msgstr "" -#: stock/serializers.py:771 +#: stock/serializers.py:802 msgid "Quantity to Install" msgstr "" -#: stock/serializers.py:772 +#: stock/serializers.py:803 msgid "Enter the quantity of items to install" msgstr "" -#: stock/serializers.py:777 stock/serializers.py:857 stock/serializers.py:983 -#: stock/serializers.py:1033 +#: stock/serializers.py:808 stock/serializers.py:888 stock/serializers.py:1014 +#: stock/serializers.py:1064 msgid "Add transaction note (optional)" msgstr "" -#: stock/serializers.py:785 +#: stock/serializers.py:816 msgid "Quantity to install must be at least 1" msgstr "" -#: stock/serializers.py:793 +#: stock/serializers.py:824 msgid "Stock item is unavailable" msgstr "" -#: stock/serializers.py:804 +#: stock/serializers.py:835 msgid "Selected part is not in the Bill of Materials" msgstr "" -#: stock/serializers.py:817 +#: stock/serializers.py:848 msgid "Quantity to install must not exceed available quantity" msgstr "" -#: stock/serializers.py:852 +#: stock/serializers.py:883 msgid "Destination location for uninstalled item" msgstr "" -#: stock/serializers.py:903 +#: stock/serializers.py:934 msgid "Unsupported statistic type: " msgstr "" -#: stock/serializers.py:917 +#: stock/serializers.py:948 msgid "Select part to convert stock item into" msgstr "" -#: stock/serializers.py:930 +#: stock/serializers.py:961 msgid "Selected part is not a valid option for conversion" msgstr "" -#: stock/serializers.py:947 +#: stock/serializers.py:978 msgid "Cannot convert stock item with assigned SupplierPart" msgstr "" -#: stock/serializers.py:978 +#: stock/serializers.py:1009 msgid "Destination location for returned item" msgstr "" -#: stock/serializers.py:1015 +#: stock/serializers.py:1046 msgid "Select stock items to change status" msgstr "" -#: stock/serializers.py:1021 +#: stock/serializers.py:1052 msgid "No stock items selected" msgstr "" -#: stock/serializers.py:1117 stock/serializers.py:1194 -#: stock/templates/stock/location.html:162 -#: stock/templates/stock/location.html:219 +#: stock/serializers.py:1148 stock/serializers.py:1225 +#: stock/templates/stock/location.html:163 +#: stock/templates/stock/location.html:220 #: stock/templates/stock/location_sidebar.html:5 msgid "Sublocations" msgstr "" -#: stock/serializers.py:1187 templates/js/translated/stock.js:160 +#: stock/serializers.py:1218 templates/js/translated/stock.js:160 msgid "Parent stock location" msgstr "" -#: stock/serializers.py:1298 +#: stock/serializers.py:1329 msgid "Part must be salable" msgstr "" -#: stock/serializers.py:1302 +#: stock/serializers.py:1333 msgid "Item is allocated to a sales order" msgstr "" -#: stock/serializers.py:1306 +#: stock/serializers.py:1337 msgid "Item is allocated to a build order" msgstr "" -#: stock/serializers.py:1330 +#: stock/serializers.py:1361 msgid "Customer to assign stock items" msgstr "" -#: stock/serializers.py:1336 +#: stock/serializers.py:1367 msgid "Selected company is not a customer" msgstr "" -#: stock/serializers.py:1344 +#: stock/serializers.py:1375 msgid "Stock assignment notes" msgstr "" -#: stock/serializers.py:1354 stock/serializers.py:1608 +#: stock/serializers.py:1385 stock/serializers.py:1639 msgid "A list of stock items must be provided" msgstr "" -#: stock/serializers.py:1433 +#: stock/serializers.py:1464 msgid "Stock merging notes" msgstr "" -#: stock/serializers.py:1438 +#: stock/serializers.py:1469 msgid "Allow mismatched suppliers" msgstr "" -#: stock/serializers.py:1439 +#: stock/serializers.py:1470 msgid "Allow stock items with different supplier parts to be merged" msgstr "" -#: stock/serializers.py:1444 +#: stock/serializers.py:1475 msgid "Allow mismatched status" msgstr "" -#: stock/serializers.py:1445 +#: stock/serializers.py:1476 msgid "Allow stock items with different status codes to be merged" msgstr "" -#: stock/serializers.py:1455 +#: stock/serializers.py:1486 msgid "At least two stock items must be provided" msgstr "" -#: stock/serializers.py:1522 +#: stock/serializers.py:1553 msgid "No Change" msgstr "" -#: stock/serializers.py:1551 +#: stock/serializers.py:1582 msgid "StockItem primary key value" msgstr "" -#: stock/serializers.py:1570 +#: stock/serializers.py:1601 msgid "Stock item status code" msgstr "" -#: stock/serializers.py:1598 +#: stock/serializers.py:1629 msgid "Stock transaction notes" msgstr "" @@ -10175,107 +10539,107 @@ msgstr "" msgid "Quarantined" msgstr "" -#: stock/status_codes.py:40 +#: stock/status_codes.py:44 msgid "Legacy stock tracking entry" msgstr "" -#: stock/status_codes.py:42 templates/js/translated/stock.js:550 +#: stock/status_codes.py:46 templates/js/translated/stock.js:550 msgid "Stock item created" msgstr "" -#: stock/status_codes.py:45 +#: stock/status_codes.py:49 msgid "Edited stock item" msgstr "" -#: stock/status_codes.py:46 +#: stock/status_codes.py:50 msgid "Assigned serial number" msgstr "" -#: stock/status_codes.py:49 +#: stock/status_codes.py:53 msgid "Stock counted" msgstr "" -#: stock/status_codes.py:50 +#: stock/status_codes.py:54 msgid "Stock manually added" msgstr "" -#: stock/status_codes.py:51 +#: stock/status_codes.py:55 msgid "Stock manually removed" msgstr "" -#: stock/status_codes.py:54 +#: stock/status_codes.py:58 msgid "Location changed" msgstr "" -#: stock/status_codes.py:55 +#: stock/status_codes.py:59 msgid "Stock updated" msgstr "" -#: stock/status_codes.py:58 +#: stock/status_codes.py:62 msgid "Installed into assembly" msgstr "" -#: stock/status_codes.py:59 +#: stock/status_codes.py:63 msgid "Removed from assembly" msgstr "" -#: stock/status_codes.py:61 +#: stock/status_codes.py:65 msgid "Installed component item" msgstr "" -#: stock/status_codes.py:62 +#: stock/status_codes.py:66 msgid "Removed component item" msgstr "" -#: stock/status_codes.py:65 +#: stock/status_codes.py:69 msgid "Split from parent item" msgstr "" -#: stock/status_codes.py:66 +#: stock/status_codes.py:70 msgid "Split child item" msgstr "" -#: stock/status_codes.py:69 templates/js/translated/stock.js:1943 +#: stock/status_codes.py:73 templates/js/translated/stock.js:1944 msgid "Merged stock items" msgstr "" -#: stock/status_codes.py:72 +#: stock/status_codes.py:76 msgid "Converted to variant" msgstr "" -#: stock/status_codes.py:75 +#: stock/status_codes.py:79 msgid "Build order output created" msgstr "" -#: stock/status_codes.py:76 +#: stock/status_codes.py:80 msgid "Build order output completed" msgstr "" -#: stock/status_codes.py:77 +#: stock/status_codes.py:81 msgid "Build order output rejected" msgstr "" -#: stock/status_codes.py:78 templates/js/translated/stock.js:1849 +#: stock/status_codes.py:82 templates/js/translated/stock.js:1849 msgid "Consumed by build order" msgstr "" -#: stock/status_codes.py:81 +#: stock/status_codes.py:85 msgid "Shipped against Sales Order" msgstr "" -#: stock/status_codes.py:84 +#: stock/status_codes.py:88 msgid "Received against Purchase Order" msgstr "" -#: stock/status_codes.py:87 +#: stock/status_codes.py:91 msgid "Returned against Return Order" msgstr "" -#: stock/status_codes.py:90 templates/js/translated/table_filters.js:382 +#: stock/status_codes.py:94 templates/js/translated/table_filters.js:382 msgid "Sent to customer" msgstr "" -#: stock/status_codes.py:91 +#: stock/status_codes.py:95 msgid "Returned from customer" msgstr "" @@ -10296,7 +10660,7 @@ msgstr "" msgid "Test Data" msgstr "" -#: stock/templates/stock/item.html:85 stock/templates/stock/item_base.html:65 +#: stock/templates/stock/item.html:85 msgid "Test Report" msgstr "" @@ -10316,7 +10680,7 @@ msgstr "" msgid "Installed Stock Items" msgstr "" -#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3354 +#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3355 msgid "Install Stock Item" msgstr "" @@ -10328,208 +10692,212 @@ msgstr "" msgid "Add Test Result" msgstr "" -#: stock/templates/stock/item_base.html:33 +#: stock/templates/stock/item_base.html:34 msgid "Locate stock item" msgstr "" -#: stock/templates/stock/item_base.html:51 +#: stock/templates/stock/item_base.html:52 msgid "Scan to Location" msgstr "" #: stock/templates/stock/item_base.html:59 -#: stock/templates/stock/location.html:67 +#: stock/templates/stock/location.html:68 #: templates/js/translated/filters.js:434 msgid "Printing actions" msgstr "" -#: stock/templates/stock/item_base.html:75 +#: stock/templates/stock/item_base.html:64 templates/js/translated/report.js:49 +msgid "Print Report" +msgstr "" + +#: stock/templates/stock/item_base.html:72 msgid "Stock adjustment actions" msgstr "" -#: stock/templates/stock/item_base.html:79 -#: stock/templates/stock/location.html:87 templates/js/translated/stock.js:1909 +#: stock/templates/stock/item_base.html:76 +#: stock/templates/stock/location.html:88 templates/js/translated/stock.js:1909 msgid "Count stock" msgstr "" -#: stock/templates/stock/item_base.html:81 +#: stock/templates/stock/item_base.html:78 #: templates/js/translated/stock.js:1891 msgid "Add stock" msgstr "" -#: stock/templates/stock/item_base.html:82 +#: stock/templates/stock/item_base.html:79 #: templates/js/translated/stock.js:1900 msgid "Remove stock" msgstr "" -#: stock/templates/stock/item_base.html:85 +#: stock/templates/stock/item_base.html:82 msgid "Serialize stock" msgstr "" -#: stock/templates/stock/item_base.html:88 -#: stock/templates/stock/location.html:93 templates/js/translated/stock.js:1918 +#: stock/templates/stock/item_base.html:85 +#: stock/templates/stock/location.html:94 templates/js/translated/stock.js:1918 msgid "Transfer stock" msgstr "" -#: stock/templates/stock/item_base.html:91 -#: templates/js/translated/stock.js:1972 +#: stock/templates/stock/item_base.html:88 +#: templates/js/translated/stock.js:1973 msgid "Assign to customer" msgstr "" -#: stock/templates/stock/item_base.html:94 +#: stock/templates/stock/item_base.html:91 msgid "Return to stock" msgstr "" -#: stock/templates/stock/item_base.html:97 +#: stock/templates/stock/item_base.html:94 msgid "Uninstall stock item" msgstr "" -#: stock/templates/stock/item_base.html:97 +#: stock/templates/stock/item_base.html:94 msgid "Uninstall" msgstr "" -#: stock/templates/stock/item_base.html:101 +#: stock/templates/stock/item_base.html:98 msgid "Install stock item" msgstr "" -#: stock/templates/stock/item_base.html:101 +#: stock/templates/stock/item_base.html:98 msgid "Install" msgstr "" -#: stock/templates/stock/item_base.html:115 +#: stock/templates/stock/item_base.html:112 msgid "Convert to variant" msgstr "" -#: stock/templates/stock/item_base.html:118 +#: stock/templates/stock/item_base.html:115 msgid "Duplicate stock item" msgstr "" -#: stock/templates/stock/item_base.html:120 +#: stock/templates/stock/item_base.html:117 msgid "Edit stock item" msgstr "" -#: stock/templates/stock/item_base.html:123 +#: stock/templates/stock/item_base.html:120 msgid "Delete stock item" msgstr "" -#: stock/templates/stock/item_base.html:169 templates/InvenTree/search.html:139 -#: templates/js/translated/build.js:2295 templates/navbar.html:38 +#: stock/templates/stock/item_base.html:166 templates/InvenTree/search.html:139 +#: templates/js/translated/build.js:2298 templates/navbar.html:38 msgid "Build" msgstr "" -#: stock/templates/stock/item_base.html:211 +#: stock/templates/stock/item_base.html:208 msgid "No manufacturer set" msgstr "" -#: stock/templates/stock/item_base.html:251 +#: stock/templates/stock/item_base.html:248 msgid "You are not in the list of owners of this item. This stock item cannot be edited." msgstr "" -#: stock/templates/stock/item_base.html:252 -#: stock/templates/stock/location.html:146 +#: stock/templates/stock/item_base.html:249 +#: stock/templates/stock/location.html:147 msgid "Read only" msgstr "" -#: stock/templates/stock/item_base.html:265 +#: stock/templates/stock/item_base.html:262 msgid "This stock item is unavailable" msgstr "" -#: stock/templates/stock/item_base.html:271 +#: stock/templates/stock/item_base.html:268 msgid "This stock item is in production and cannot be edited." msgstr "" -#: stock/templates/stock/item_base.html:272 +#: stock/templates/stock/item_base.html:269 msgid "Edit the stock item from the build view." msgstr "" -#: stock/templates/stock/item_base.html:287 +#: stock/templates/stock/item_base.html:284 msgid "This stock item is allocated to Sales Order" msgstr "" -#: stock/templates/stock/item_base.html:295 +#: stock/templates/stock/item_base.html:292 msgid "This stock item is allocated to Build Order" msgstr "" -#: stock/templates/stock/item_base.html:311 +#: stock/templates/stock/item_base.html:308 msgid "This stock item is serialized. It has a unique serial number and the quantity cannot be adjusted" msgstr "" -#: stock/templates/stock/item_base.html:317 +#: stock/templates/stock/item_base.html:314 msgid "previous page" msgstr "" -#: stock/templates/stock/item_base.html:317 +#: stock/templates/stock/item_base.html:314 msgid "Navigate to previous serial number" msgstr "" -#: stock/templates/stock/item_base.html:326 +#: stock/templates/stock/item_base.html:323 msgid "next page" msgstr "" -#: stock/templates/stock/item_base.html:326 +#: stock/templates/stock/item_base.html:323 msgid "Navigate to next serial number" msgstr "" -#: stock/templates/stock/item_base.html:398 -#: templates/js/translated/build.js:2552 +#: stock/templates/stock/item_base.html:395 +#: templates/js/translated/build.js:2559 msgid "No location set" msgstr "" -#: stock/templates/stock/item_base.html:413 +#: stock/templates/stock/item_base.html:410 msgid "Tests" msgstr "" -#: stock/templates/stock/item_base.html:419 +#: stock/templates/stock/item_base.html:416 msgid "This stock item has not passed all required tests" msgstr "" -#: stock/templates/stock/item_base.html:437 +#: stock/templates/stock/item_base.html:434 #, python-format msgid "This StockItem expired on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:439 +#: stock/templates/stock/item_base.html:436 #, python-format msgid "This StockItem expires on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:455 +#: stock/templates/stock/item_base.html:452 msgid "No stocktake performed" msgstr "" -#: stock/templates/stock/item_base.html:504 -#: templates/js/translated/stock.js:2037 +#: stock/templates/stock/item_base.html:501 +#: templates/js/translated/stock.js:2038 msgid "stock item" msgstr "" -#: stock/templates/stock/item_base.html:527 +#: stock/templates/stock/item_base.html:524 msgid "Edit Stock Status" msgstr "" -#: stock/templates/stock/item_base.html:536 +#: stock/templates/stock/item_base.html:533 msgid "Stock Item QR Code" msgstr "" -#: stock/templates/stock/item_base.html:547 +#: stock/templates/stock/item_base.html:544 msgid "Link Barcode to Stock Item" msgstr "" -#: stock/templates/stock/item_base.html:611 +#: stock/templates/stock/item_base.html:608 msgid "Select one of the part variants listed below." msgstr "" -#: stock/templates/stock/item_base.html:614 +#: stock/templates/stock/item_base.html:611 msgid "Warning" msgstr "" -#: stock/templates/stock/item_base.html:615 +#: stock/templates/stock/item_base.html:612 msgid "This action cannot be easily undone" msgstr "" -#: stock/templates/stock/item_base.html:623 +#: stock/templates/stock/item_base.html:620 msgid "Convert Stock Item" msgstr "" -#: stock/templates/stock/item_base.html:656 +#: stock/templates/stock/item_base.html:653 msgid "Return to Stock" msgstr "" @@ -10541,84 +10909,84 @@ msgstr "" msgid "Select quantity to serialize, and unique serial numbers." msgstr "" -#: stock/templates/stock/location.html:35 +#: stock/templates/stock/location.html:36 msgid "Perform stocktake for this stock location" msgstr "" -#: stock/templates/stock/location.html:42 +#: stock/templates/stock/location.html:43 msgid "Locate stock location" msgstr "" -#: stock/templates/stock/location.html:60 +#: stock/templates/stock/location.html:61 msgid "Scan stock items into this location" msgstr "" -#: stock/templates/stock/location.html:60 +#: stock/templates/stock/location.html:61 msgid "Scan In Stock Items" msgstr "" -#: stock/templates/stock/location.html:61 +#: stock/templates/stock/location.html:62 msgid "Scan stock container into this location" msgstr "" -#: stock/templates/stock/location.html:61 +#: stock/templates/stock/location.html:62 msgid "Scan In Container" msgstr "" -#: stock/templates/stock/location.html:72 +#: stock/templates/stock/location.html:73 msgid "Print Location Report" msgstr "" -#: stock/templates/stock/location.html:101 +#: stock/templates/stock/location.html:102 msgid "Location actions" msgstr "" -#: stock/templates/stock/location.html:103 +#: stock/templates/stock/location.html:104 msgid "Edit location" msgstr "" -#: stock/templates/stock/location.html:105 +#: stock/templates/stock/location.html:106 msgid "Delete location" msgstr "" -#: stock/templates/stock/location.html:135 +#: stock/templates/stock/location.html:136 msgid "Top level stock location" msgstr "" -#: stock/templates/stock/location.html:141 +#: stock/templates/stock/location.html:142 msgid "Location Owner" msgstr "" -#: stock/templates/stock/location.html:145 +#: stock/templates/stock/location.html:146 msgid "You are not in the list of owners of this location. This stock location cannot be edited." msgstr "" -#: stock/templates/stock/location.html:173 +#: stock/templates/stock/location.html:174 msgid "Location Type" msgstr "" -#: stock/templates/stock/location.html:223 +#: stock/templates/stock/location.html:224 msgid "Create new stock location" msgstr "" -#: stock/templates/stock/location.html:224 +#: stock/templates/stock/location.html:225 msgid "New Location" msgstr "" -#: stock/templates/stock/location.html:298 -#: templates/js/translated/stock.js:2657 +#: stock/templates/stock/location.html:299 +#: templates/js/translated/stock.js:2658 msgid "stock location" msgstr "" -#: stock/templates/stock/location.html:320 +#: stock/templates/stock/location.html:321 msgid "Scanned stock container into this location" msgstr "" -#: stock/templates/stock/location.html:393 +#: stock/templates/stock/location.html:394 msgid "Stock Location QR Code" msgstr "" -#: stock/templates/stock/location.html:404 +#: stock/templates/stock/location.html:405 msgid "Link Barcode to Stock Location" msgstr "" @@ -10630,10 +10998,6 @@ msgstr "" msgid "Stock Tracking" msgstr "" -#: stock/templates/stock/stock_sidebar.html:8 -msgid "Allocations" -msgstr "" - #: templates/403.html:6 templates/403.html:12 templates/403_csrf.html:7 msgid "Permission Denied" msgstr "" @@ -11107,9 +11471,9 @@ msgid "Rate" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:81 -#: templates/js/translated/forms.js:548 templates/js/translated/helpers.js:108 +#: templates/js/translated/forms.js:548 templates/js/translated/helpers.js:109 #: templates/js/translated/part.js:395 templates/js/translated/pricing.js:629 -#: templates/js/translated/stock.js:252 users/models.py:406 +#: templates/js/translated/stock.js:252 users/models.py:408 msgid "Delete" msgstr "" @@ -11130,7 +11494,7 @@ msgid "No project codes found" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:158 -#: templates/js/translated/build.js:2400 +#: templates/js/translated/build.js:2403 msgid "group" msgstr "" @@ -11196,7 +11560,7 @@ msgid "Delete Location Type" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:503 -#: templates/InvenTree/settings/stock.html:38 +#: templates/InvenTree/settings/stock.html:39 msgid "New Location Type" msgstr "" @@ -11253,7 +11617,7 @@ msgstr "" msgid "Stock Settings" msgstr "" -#: templates/InvenTree/settings/stock.html:34 +#: templates/InvenTree/settings/stock.html:35 msgid "Stock Location Types" msgstr "" @@ -11280,7 +11644,7 @@ msgid "Unverified" msgstr "" #: templates/InvenTree/settings/user.html:80 -#: templates/js/translated/company.js:957 +#: templates/js/translated/company.js:958 msgid "Primary" msgstr "" @@ -11532,7 +11896,7 @@ msgid "Submit Bug Report" msgstr "" #: templates/about.html:91 templates/clip.html:4 -#: templates/js/translated/helpers.js:592 +#: templates/js/translated/helpers.js:598 msgid "copy to clipboard" msgstr "" @@ -11738,23 +12102,24 @@ msgstr "" msgid "Barcode Identifier" msgstr "" -#: templates/base.html:103 +#: templates/base.html:102 msgid "Server Restart Required" msgstr "" -#: templates/base.html:106 +#: templates/base.html:105 msgid "A configuration option has been changed which requires a server restart" msgstr "" -#: templates/base.html:106 templates/base.html:116 +#: templates/base.html:105 templates/base.html:115 +#: templates/socialaccount/authentication_error.html:13 msgid "Contact your system administrator for further information" msgstr "" -#: templates/base.html:113 +#: templates/base.html:112 msgid "Pending Database Migrations" msgstr "" -#: templates/base.html:116 +#: templates/base.html:115 msgid "There are pending database migrations which require attention" msgstr "" @@ -11787,7 +12152,7 @@ msgid "The following parts are low on required stock" msgstr "" #: templates/email/build_order_required_stock.html:18 -#: templates/js/translated/bom.js:1674 templates/js/translated/build.js:2747 +#: templates/js/translated/bom.js:1674 templates/js/translated/build.js:2765 msgid "Required Quantity" msgstr "" @@ -11801,7 +12166,7 @@ msgid "Click on the following link to view this part" msgstr "" #: templates/email/low_stock_notification.html:18 -#: templates/js/translated/part.js:3237 +#: templates/js/translated/part.js:3253 msgid "Minimum Quantity" msgstr "" @@ -12039,7 +12404,7 @@ msgstr "" #: templates/js/translated/bom.js:189 templates/js/translated/bom.js:700 #: templates/js/translated/modals.js:75 templates/js/translated/modals.js:629 #: templates/js/translated/modals.js:757 templates/js/translated/modals.js:1065 -#: templates/js/translated/purchase_order.js:797 templates/modals.html:15 +#: templates/js/translated/purchase_order.js:780 templates/modals.html:15 #: templates/modals.html:27 templates/modals.html:39 templates/modals.html:50 msgid "Close" msgstr "" @@ -12156,7 +12521,7 @@ msgstr "" msgid "Substitutes Available" msgstr "" -#: templates/js/translated/bom.js:950 templates/js/translated/build.js:2673 +#: templates/js/translated/bom.js:950 templates/js/translated/build.js:2682 msgid "Variant stock allowed" msgstr "" @@ -12176,30 +12541,30 @@ msgstr "" msgid "No pricing available" msgstr "" -#: templates/js/translated/bom.js:1184 templates/js/translated/build.js:2812 +#: templates/js/translated/bom.js:1184 templates/js/translated/build.js:2830 msgid "External stock" msgstr "" -#: templates/js/translated/bom.js:1188 templates/js/translated/build.js:2786 -#: templates/js/translated/sales_order.js:1946 +#: templates/js/translated/bom.js:1188 templates/js/translated/build.js:2804 +#: templates/js/translated/sales_order.js:1927 msgid "No Stock Available" msgstr "" -#: templates/js/translated/bom.js:1193 templates/js/translated/build.js:2790 +#: templates/js/translated/bom.js:1193 templates/js/translated/build.js:2808 msgid "Includes variant and substitute stock" msgstr "" -#: templates/js/translated/bom.js:1195 templates/js/translated/build.js:2792 +#: templates/js/translated/bom.js:1195 templates/js/translated/build.js:2810 #: templates/js/translated/part.js:1263 -#: templates/js/translated/sales_order.js:1943 +#: templates/js/translated/sales_order.js:1924 msgid "Includes variant stock" msgstr "" -#: templates/js/translated/bom.js:1197 templates/js/translated/build.js:2794 +#: templates/js/translated/bom.js:1197 templates/js/translated/build.js:2812 msgid "Includes substitute stock" msgstr "" -#: templates/js/translated/bom.js:1225 templates/js/translated/build.js:2777 +#: templates/js/translated/bom.js:1225 templates/js/translated/build.js:2795 msgid "Consumable item" msgstr "" @@ -12231,7 +12596,7 @@ msgstr "" msgid "No BOM items found" msgstr "" -#: templates/js/translated/bom.js:1657 templates/js/translated/build.js:2658 +#: templates/js/translated/bom.js:1657 templates/js/translated/build.js:2667 msgid "Required Part" msgstr "" @@ -12243,396 +12608,396 @@ msgstr "" msgid "Edit Build Order" msgstr "" -#: templates/js/translated/build.js:191 +#: templates/js/translated/build.js:194 msgid "Create Build Order" msgstr "" -#: templates/js/translated/build.js:223 +#: templates/js/translated/build.js:226 msgid "Cancel Build Order" msgstr "" -#: templates/js/translated/build.js:232 +#: templates/js/translated/build.js:235 msgid "Are you sure you wish to cancel this build?" msgstr "" -#: templates/js/translated/build.js:238 +#: templates/js/translated/build.js:241 msgid "Stock items have been allocated to this build order" msgstr "" -#: templates/js/translated/build.js:245 +#: templates/js/translated/build.js:248 msgid "There are incomplete outputs remaining for this build order" msgstr "" -#: templates/js/translated/build.js:297 +#: templates/js/translated/build.js:300 msgid "Build order is ready to be completed" msgstr "" -#: templates/js/translated/build.js:305 +#: templates/js/translated/build.js:308 msgid "This build order cannot be completed as there are incomplete outputs" msgstr "" -#: templates/js/translated/build.js:310 +#: templates/js/translated/build.js:313 msgid "Build Order is incomplete" msgstr "" -#: templates/js/translated/build.js:328 +#: templates/js/translated/build.js:331 msgid "Complete Build Order" msgstr "" -#: templates/js/translated/build.js:369 templates/js/translated/stock.js:127 +#: templates/js/translated/build.js:372 templates/js/translated/stock.js:127 #: templates/js/translated/stock.js:301 msgid "Next available serial number" msgstr "" -#: templates/js/translated/build.js:371 templates/js/translated/stock.js:129 +#: templates/js/translated/build.js:374 templates/js/translated/stock.js:129 #: templates/js/translated/stock.js:303 msgid "Latest serial number" msgstr "" -#: templates/js/translated/build.js:380 +#: templates/js/translated/build.js:383 msgid "The Bill of Materials contains trackable parts" msgstr "" -#: templates/js/translated/build.js:381 +#: templates/js/translated/build.js:384 msgid "Build outputs must be generated individually" msgstr "" -#: templates/js/translated/build.js:389 +#: templates/js/translated/build.js:392 msgid "Trackable parts can have serial numbers specified" msgstr "" -#: templates/js/translated/build.js:390 +#: templates/js/translated/build.js:393 msgid "Enter serial numbers to generate multiple single build outputs" msgstr "" -#: templates/js/translated/build.js:397 +#: templates/js/translated/build.js:400 msgid "Create Build Output" msgstr "" -#: templates/js/translated/build.js:428 +#: templates/js/translated/build.js:431 msgid "Allocate stock items to this build output" msgstr "" -#: templates/js/translated/build.js:436 +#: templates/js/translated/build.js:439 msgid "Deallocate stock from build output" msgstr "" -#: templates/js/translated/build.js:445 +#: templates/js/translated/build.js:448 msgid "Complete build output" msgstr "" -#: templates/js/translated/build.js:453 +#: templates/js/translated/build.js:456 msgid "Scrap build output" msgstr "" -#: templates/js/translated/build.js:460 +#: templates/js/translated/build.js:463 msgid "Delete build output" msgstr "" -#: templates/js/translated/build.js:480 +#: templates/js/translated/build.js:483 msgid "Are you sure you wish to deallocate the selected stock items from this build?" msgstr "" -#: templates/js/translated/build.js:498 +#: templates/js/translated/build.js:501 msgid "Deallocate Stock Items" msgstr "" -#: templates/js/translated/build.js:584 templates/js/translated/build.js:711 -#: templates/js/translated/build.js:836 +#: templates/js/translated/build.js:587 templates/js/translated/build.js:714 +#: templates/js/translated/build.js:839 msgid "Select Build Outputs" msgstr "" -#: templates/js/translated/build.js:585 templates/js/translated/build.js:712 -#: templates/js/translated/build.js:837 +#: templates/js/translated/build.js:588 templates/js/translated/build.js:715 +#: templates/js/translated/build.js:840 msgid "At least one build output must be selected" msgstr "" -#: templates/js/translated/build.js:599 +#: templates/js/translated/build.js:602 msgid "Selected build outputs will be marked as complete" msgstr "" -#: templates/js/translated/build.js:603 templates/js/translated/build.js:736 -#: templates/js/translated/build.js:859 +#: templates/js/translated/build.js:606 templates/js/translated/build.js:739 +#: templates/js/translated/build.js:862 msgid "Output" msgstr "" -#: templates/js/translated/build.js:630 +#: templates/js/translated/build.js:633 msgid "Complete Build Outputs" msgstr "" -#: templates/js/translated/build.js:727 +#: templates/js/translated/build.js:730 msgid "Selected build outputs will be marked as scrapped" msgstr "" -#: templates/js/translated/build.js:729 +#: templates/js/translated/build.js:732 msgid "Scrapped output are marked as rejected" msgstr "" -#: templates/js/translated/build.js:730 +#: templates/js/translated/build.js:733 msgid "Allocated stock items will no longer be available" msgstr "" -#: templates/js/translated/build.js:731 +#: templates/js/translated/build.js:734 msgid "The completion status of the build order will not be adjusted" msgstr "" -#: templates/js/translated/build.js:761 +#: templates/js/translated/build.js:764 msgid "Scrap Build Outputs" msgstr "" -#: templates/js/translated/build.js:851 +#: templates/js/translated/build.js:854 msgid "Selected build outputs will be deleted" msgstr "" -#: templates/js/translated/build.js:853 +#: templates/js/translated/build.js:856 msgid "Build output data will be permanently deleted" msgstr "" -#: templates/js/translated/build.js:854 +#: templates/js/translated/build.js:857 msgid "Allocated stock items will be returned to stock" msgstr "" -#: templates/js/translated/build.js:872 +#: templates/js/translated/build.js:875 msgid "Delete Build Outputs" msgstr "" -#: templates/js/translated/build.js:959 +#: templates/js/translated/build.js:962 msgid "Delete allocations" msgstr "" -#: templates/js/translated/build.js:966 +#: templates/js/translated/build.js:969 msgid "Delete Stock Allocations" msgstr "" -#: templates/js/translated/build.js:989 +#: templates/js/translated/build.js:992 msgid "No allocated stock" msgstr "" -#: templates/js/translated/build.js:1045 +#: templates/js/translated/build.js:1048 msgid "Stock item" msgstr "" -#: templates/js/translated/build.js:1070 +#: templates/js/translated/build.js:1073 msgid "Edit build allocation" msgstr "" -#: templates/js/translated/build.js:1071 +#: templates/js/translated/build.js:1074 msgid "Delete build allocation" msgstr "" -#: templates/js/translated/build.js:1089 +#: templates/js/translated/build.js:1092 msgid "Edit Build Allocation" msgstr "" -#: templates/js/translated/build.js:1102 +#: templates/js/translated/build.js:1105 msgid "Delete Build Allocation" msgstr "" -#: templates/js/translated/build.js:1133 +#: templates/js/translated/build.js:1136 msgid "No build order allocations found" msgstr "" -#: templates/js/translated/build.js:1178 +#: templates/js/translated/build.js:1181 msgid "Location not specified" msgstr "" -#: templates/js/translated/build.js:1200 +#: templates/js/translated/build.js:1203 msgid "Complete outputs" msgstr "" -#: templates/js/translated/build.js:1218 +#: templates/js/translated/build.js:1221 msgid "Scrap outputs" msgstr "" -#: templates/js/translated/build.js:1236 +#: templates/js/translated/build.js:1239 msgid "Delete outputs" msgstr "" -#: templates/js/translated/build.js:1289 +#: templates/js/translated/build.js:1292 msgid "build output" msgstr "" -#: templates/js/translated/build.js:1290 +#: templates/js/translated/build.js:1293 msgid "build outputs" msgstr "" -#: templates/js/translated/build.js:1294 +#: templates/js/translated/build.js:1297 msgid "Build output actions" msgstr "" -#: templates/js/translated/build.js:1470 +#: templates/js/translated/build.js:1473 msgid "No active build outputs found" msgstr "" -#: templates/js/translated/build.js:1563 +#: templates/js/translated/build.js:1566 msgid "Allocated Lines" msgstr "" -#: templates/js/translated/build.js:1577 +#: templates/js/translated/build.js:1580 msgid "Required Tests" msgstr "" -#: templates/js/translated/build.js:1749 -#: templates/js/translated/purchase_order.js:611 -#: templates/js/translated/sales_order.js:1207 +#: templates/js/translated/build.js:1752 +#: templates/js/translated/purchase_order.js:594 +#: templates/js/translated/sales_order.js:1173 msgid "Select Parts" msgstr "" -#: templates/js/translated/build.js:1750 -#: templates/js/translated/sales_order.js:1208 +#: templates/js/translated/build.js:1753 +#: templates/js/translated/sales_order.js:1174 msgid "You must select at least one part to allocate" msgstr "" -#: templates/js/translated/build.js:1813 -#: templates/js/translated/sales_order.js:1157 +#: templates/js/translated/build.js:1816 +#: templates/js/translated/sales_order.js:1123 msgid "Specify stock allocation quantity" msgstr "" -#: templates/js/translated/build.js:1890 +#: templates/js/translated/build.js:1893 msgid "All Parts Allocated" msgstr "" -#: templates/js/translated/build.js:1891 +#: templates/js/translated/build.js:1894 msgid "All selected parts have been fully allocated" msgstr "" -#: templates/js/translated/build.js:1905 -#: templates/js/translated/sales_order.js:1222 +#: templates/js/translated/build.js:1908 +#: templates/js/translated/sales_order.js:1188 msgid "Select source location (leave blank to take from all locations)" msgstr "" -#: templates/js/translated/build.js:1933 +#: templates/js/translated/build.js:1936 msgid "Allocate Stock Items to Build Order" msgstr "" -#: templates/js/translated/build.js:1944 -#: templates/js/translated/sales_order.js:1319 +#: templates/js/translated/build.js:1947 +#: templates/js/translated/sales_order.js:1285 msgid "No matching stock locations" msgstr "" -#: templates/js/translated/build.js:2017 -#: templates/js/translated/sales_order.js:1398 +#: templates/js/translated/build.js:2020 +#: templates/js/translated/sales_order.js:1364 msgid "No matching stock items" msgstr "" -#: templates/js/translated/build.js:2114 +#: templates/js/translated/build.js:2117 msgid "Automatic Stock Allocation" msgstr "" -#: templates/js/translated/build.js:2115 +#: templates/js/translated/build.js:2118 msgid "Stock items will be automatically allocated to this build order, according to the provided guidelines" msgstr "" -#: templates/js/translated/build.js:2117 +#: templates/js/translated/build.js:2120 msgid "If a location is specified, stock will only be allocated from that location" msgstr "" -#: templates/js/translated/build.js:2118 +#: templates/js/translated/build.js:2121 msgid "If stock is considered interchangeable, it will be allocated from the first location it is found" msgstr "" -#: templates/js/translated/build.js:2119 +#: templates/js/translated/build.js:2122 msgid "If substitute stock is allowed, it will be used where stock of the primary part cannot be found" msgstr "" -#: templates/js/translated/build.js:2149 +#: templates/js/translated/build.js:2152 msgid "Allocate Stock Items" msgstr "" -#: templates/js/translated/build.js:2254 +#: templates/js/translated/build.js:2257 msgid "No builds matching query" msgstr "" -#: templates/js/translated/build.js:2289 templates/js/translated/build.js:2652 +#: templates/js/translated/build.js:2292 templates/js/translated/build.js:2661 #: templates/js/translated/forms.js:2196 templates/js/translated/forms.js:2212 #: templates/js/translated/part.js:2322 templates/js/translated/part.js:2761 -#: templates/js/translated/stock.js:2068 templates/js/translated/stock.js:2795 +#: templates/js/translated/stock.js:2069 templates/js/translated/stock.js:2796 msgid "Select" msgstr "" -#: templates/js/translated/build.js:2303 +#: templates/js/translated/build.js:2306 msgid "Build order is overdue" msgstr "" -#: templates/js/translated/build.js:2385 templates/js/translated/stock.js:3126 +#: templates/js/translated/build.js:2388 templates/js/translated/stock.js:3127 msgid "No user information" msgstr "" -#: templates/js/translated/build.js:2561 -#: templates/js/translated/sales_order.js:1682 +#: templates/js/translated/build.js:2568 +#: templates/js/translated/sales_order.js:1663 msgid "Edit stock allocation" msgstr "" -#: templates/js/translated/build.js:2562 -#: templates/js/translated/sales_order.js:1683 +#: templates/js/translated/build.js:2569 +#: templates/js/translated/sales_order.js:1664 msgid "Delete stock allocation" msgstr "" -#: templates/js/translated/build.js:2577 +#: templates/js/translated/build.js:2584 msgid "Edit Allocation" msgstr "" -#: templates/js/translated/build.js:2589 +#: templates/js/translated/build.js:2596 msgid "Remove Allocation" msgstr "" -#: templates/js/translated/build.js:2628 +#: templates/js/translated/build.js:2636 msgid "build line" msgstr "" -#: templates/js/translated/build.js:2629 +#: templates/js/translated/build.js:2637 msgid "build lines" msgstr "" -#: templates/js/translated/build.js:2647 +#: templates/js/translated/build.js:2656 msgid "No build lines found" msgstr "" -#: templates/js/translated/build.js:2677 templates/js/translated/part.js:793 +#: templates/js/translated/build.js:2686 templates/js/translated/part.js:793 #: templates/js/translated/part.js:1209 msgid "Trackable part" msgstr "" -#: templates/js/translated/build.js:2720 +#: templates/js/translated/build.js:2729 msgid "Gets Inherited" msgstr "" -#: templates/js/translated/build.js:2730 +#: templates/js/translated/build.js:2748 msgid "Unit Quantity" msgstr "" -#: templates/js/translated/build.js:2782 -#: templates/js/translated/sales_order.js:1951 +#: templates/js/translated/build.js:2800 +#: templates/js/translated/sales_order.js:1932 msgid "Sufficient stock available" msgstr "" -#: templates/js/translated/build.js:2837 +#: templates/js/translated/build.js:2855 msgid "Consumable Item" msgstr "" -#: templates/js/translated/build.js:2844 +#: templates/js/translated/build.js:2862 msgid "Tracked item" msgstr "" -#: templates/js/translated/build.js:2845 +#: templates/js/translated/build.js:2863 msgid "Allocate tracked items against individual build outputs" msgstr "" -#: templates/js/translated/build.js:2853 -#: templates/js/translated/sales_order.js:2052 +#: templates/js/translated/build.js:2871 +#: templates/js/translated/sales_order.js:2033 msgid "Build stock" msgstr "" -#: templates/js/translated/build.js:2858 templates/js/translated/stock.js:1953 +#: templates/js/translated/build.js:2876 templates/js/translated/stock.js:1954 msgid "Order stock" msgstr "" -#: templates/js/translated/build.js:2862 -#: templates/js/translated/sales_order.js:2046 +#: templates/js/translated/build.js:2880 +#: templates/js/translated/sales_order.js:2027 msgid "Allocate stock" msgstr "" -#: templates/js/translated/build.js:2866 +#: templates/js/translated/build.js:2884 msgid "Remove stock allocation" msgstr "" @@ -12641,7 +13006,7 @@ msgid "Add Manufacturer" msgstr "" #: templates/js/translated/company.js:111 -#: templates/js/translated/company.js:213 +#: templates/js/translated/company.js:214 msgid "Add Manufacturer Part" msgstr "" @@ -12649,231 +13014,231 @@ msgstr "" msgid "Edit Manufacturer Part" msgstr "" -#: templates/js/translated/company.js:201 +#: templates/js/translated/company.js:202 #: templates/js/translated/purchase_order.js:93 msgid "Add Supplier" msgstr "" -#: templates/js/translated/company.js:243 -#: templates/js/translated/purchase_order.js:318 +#: templates/js/translated/company.js:244 +#: templates/js/translated/purchase_order.js:301 msgid "Add Supplier Part" msgstr "" -#: templates/js/translated/company.js:344 +#: templates/js/translated/company.js:345 msgid "All selected supplier parts will be deleted" msgstr "" -#: templates/js/translated/company.js:360 +#: templates/js/translated/company.js:361 msgid "Delete Supplier Parts" msgstr "" -#: templates/js/translated/company.js:466 +#: templates/js/translated/company.js:467 msgid "Add new Company" msgstr "" -#: templates/js/translated/company.js:546 +#: templates/js/translated/company.js:547 msgid "Parts Supplied" msgstr "" -#: templates/js/translated/company.js:555 +#: templates/js/translated/company.js:556 msgid "Parts Manufactured" msgstr "" -#: templates/js/translated/company.js:570 +#: templates/js/translated/company.js:571 msgid "No company information found" msgstr "" -#: templates/js/translated/company.js:619 +#: templates/js/translated/company.js:620 msgid "Create New Contact" msgstr "" -#: templates/js/translated/company.js:635 -#: templates/js/translated/company.js:758 +#: templates/js/translated/company.js:636 +#: templates/js/translated/company.js:759 msgid "Edit Contact" msgstr "" -#: templates/js/translated/company.js:672 +#: templates/js/translated/company.js:673 msgid "All selected contacts will be deleted" msgstr "" -#: templates/js/translated/company.js:678 -#: templates/js/translated/company.js:742 +#: templates/js/translated/company.js:679 +#: templates/js/translated/company.js:743 msgid "Role" msgstr "" -#: templates/js/translated/company.js:686 +#: templates/js/translated/company.js:687 msgid "Delete Contacts" msgstr "" -#: templates/js/translated/company.js:717 +#: templates/js/translated/company.js:718 msgid "No contacts found" msgstr "" -#: templates/js/translated/company.js:730 +#: templates/js/translated/company.js:731 msgid "Phone Number" msgstr "" -#: templates/js/translated/company.js:736 +#: templates/js/translated/company.js:737 msgid "Email Address" msgstr "" -#: templates/js/translated/company.js:762 +#: templates/js/translated/company.js:763 msgid "Delete Contact" msgstr "" -#: templates/js/translated/company.js:859 +#: templates/js/translated/company.js:860 msgid "Create New Address" msgstr "" -#: templates/js/translated/company.js:874 -#: templates/js/translated/company.js:1035 +#: templates/js/translated/company.js:875 +#: templates/js/translated/company.js:1036 msgid "Edit Address" msgstr "" -#: templates/js/translated/company.js:909 +#: templates/js/translated/company.js:910 msgid "All selected addresses will be deleted" msgstr "" -#: templates/js/translated/company.js:923 +#: templates/js/translated/company.js:924 msgid "Delete Addresses" msgstr "" -#: templates/js/translated/company.js:950 +#: templates/js/translated/company.js:951 msgid "No addresses found" msgstr "" -#: templates/js/translated/company.js:989 +#: templates/js/translated/company.js:990 msgid "Postal city" msgstr "" -#: templates/js/translated/company.js:995 +#: templates/js/translated/company.js:996 msgid "State/province" msgstr "" -#: templates/js/translated/company.js:1007 +#: templates/js/translated/company.js:1008 msgid "Courier notes" msgstr "" -#: templates/js/translated/company.js:1013 +#: templates/js/translated/company.js:1014 msgid "Internal notes" msgstr "" -#: templates/js/translated/company.js:1039 +#: templates/js/translated/company.js:1040 msgid "Delete Address" msgstr "" -#: templates/js/translated/company.js:1112 +#: templates/js/translated/company.js:1113 msgid "All selected manufacturer parts will be deleted" msgstr "" -#: templates/js/translated/company.js:1127 +#: templates/js/translated/company.js:1128 msgid "Delete Manufacturer Parts" msgstr "" -#: templates/js/translated/company.js:1161 +#: templates/js/translated/company.js:1162 msgid "All selected parameters will be deleted" msgstr "" -#: templates/js/translated/company.js:1175 +#: templates/js/translated/company.js:1176 msgid "Delete Parameters" msgstr "" -#: templates/js/translated/company.js:1191 -#: templates/js/translated/company.js:1479 templates/js/translated/part.js:2250 +#: templates/js/translated/company.js:1192 +#: templates/js/translated/company.js:1480 templates/js/translated/part.js:2250 msgid "Order parts" msgstr "" -#: templates/js/translated/company.js:1208 +#: templates/js/translated/company.js:1209 msgid "Delete manufacturer parts" msgstr "" -#: templates/js/translated/company.js:1240 +#: templates/js/translated/company.js:1241 msgid "Manufacturer part actions" msgstr "" -#: templates/js/translated/company.js:1259 +#: templates/js/translated/company.js:1260 msgid "No manufacturer parts found" msgstr "" -#: templates/js/translated/company.js:1279 -#: templates/js/translated/company.js:1567 templates/js/translated/part.js:801 +#: templates/js/translated/company.js:1280 +#: templates/js/translated/company.js:1568 templates/js/translated/part.js:801 #: templates/js/translated/part.js:1217 msgid "Template part" msgstr "" -#: templates/js/translated/company.js:1283 -#: templates/js/translated/company.js:1571 templates/js/translated/part.js:805 +#: templates/js/translated/company.js:1284 +#: templates/js/translated/company.js:1572 templates/js/translated/part.js:805 #: templates/js/translated/part.js:1221 msgid "Assembled part" msgstr "" -#: templates/js/translated/company.js:1403 templates/js/translated/part.js:1471 +#: templates/js/translated/company.js:1404 templates/js/translated/part.js:1471 msgid "No parameters found" msgstr "" -#: templates/js/translated/company.js:1438 templates/js/translated/part.js:1534 +#: templates/js/translated/company.js:1439 templates/js/translated/part.js:1534 msgid "Edit parameter" msgstr "" -#: templates/js/translated/company.js:1439 templates/js/translated/part.js:1535 +#: templates/js/translated/company.js:1440 templates/js/translated/part.js:1535 msgid "Delete parameter" msgstr "" -#: templates/js/translated/company.js:1456 templates/js/translated/part.js:1440 +#: templates/js/translated/company.js:1457 templates/js/translated/part.js:1440 msgid "Edit Parameter" msgstr "" -#: templates/js/translated/company.js:1465 templates/js/translated/part.js:1556 +#: templates/js/translated/company.js:1466 templates/js/translated/part.js:1556 msgid "Delete Parameter" msgstr "" -#: templates/js/translated/company.js:1496 +#: templates/js/translated/company.js:1497 msgid "Delete supplier parts" msgstr "" -#: templates/js/translated/company.js:1546 +#: templates/js/translated/company.js:1547 msgid "No supplier parts found" msgstr "" -#: templates/js/translated/company.js:1664 +#: templates/js/translated/company.js:1665 msgid "Base Units" msgstr "" -#: templates/js/translated/company.js:1694 +#: templates/js/translated/company.js:1695 msgid "Availability" msgstr "" -#: templates/js/translated/company.js:1725 +#: templates/js/translated/company.js:1726 msgid "Edit supplier part" msgstr "" -#: templates/js/translated/company.js:1726 +#: templates/js/translated/company.js:1727 msgid "Delete supplier part" msgstr "" -#: templates/js/translated/company.js:1779 +#: templates/js/translated/company.js:1780 #: templates/js/translated/pricing.js:694 msgid "Delete Price Break" msgstr "" -#: templates/js/translated/company.js:1789 +#: templates/js/translated/company.js:1790 #: templates/js/translated/pricing.js:712 msgid "Edit Price Break" msgstr "" -#: templates/js/translated/company.js:1804 +#: templates/js/translated/company.js:1805 msgid "No price break information found" msgstr "" -#: templates/js/translated/company.js:1833 +#: templates/js/translated/company.js:1834 msgid "Last updated" msgstr "" -#: templates/js/translated/company.js:1840 +#: templates/js/translated/company.js:1841 msgid "Edit price break" msgstr "" -#: templates/js/translated/company.js:1841 +#: templates/js/translated/company.js:1842 msgid "Delete price break" msgstr "" @@ -12977,19 +13342,19 @@ msgstr "" msgid "Select Columns" msgstr "" -#: templates/js/translated/helpers.js:80 +#: templates/js/translated/helpers.js:81 msgid "YES" msgstr "" -#: templates/js/translated/helpers.js:83 +#: templates/js/translated/helpers.js:84 msgid "NO" msgstr "" -#: templates/js/translated/helpers.js:96 +#: templates/js/translated/helpers.js:97 msgid "True" msgstr "" -#: templates/js/translated/helpers.js:97 +#: templates/js/translated/helpers.js:98 msgid "False" msgstr "" @@ -13131,7 +13496,7 @@ msgid "Delete Line" msgstr "" #: templates/js/translated/order.js:306 -#: templates/js/translated/purchase_order.js:2060 +#: templates/js/translated/purchase_order.js:2044 msgid "No line items found" msgstr "" @@ -13366,19 +13731,19 @@ msgid "Delete Part Parameter Template" msgstr "" #: templates/js/translated/part.js:1723 -#: templates/js/translated/purchase_order.js:1724 +#: templates/js/translated/purchase_order.js:1708 msgid "No purchase orders found" msgstr "" #: templates/js/translated/part.js:1867 -#: templates/js/translated/purchase_order.js:2223 +#: templates/js/translated/purchase_order.js:2207 #: templates/js/translated/return_order.js:754 -#: templates/js/translated/sales_order.js:1911 +#: templates/js/translated/sales_order.js:1892 msgid "This line item is overdue" msgstr "" #: templates/js/translated/part.js:1913 -#: templates/js/translated/purchase_order.js:2290 +#: templates/js/translated/purchase_order.js:2274 msgid "Receive line item" msgstr "" @@ -13419,7 +13784,7 @@ msgid "No category" msgstr "" #: templates/js/translated/part.js:2550 templates/js/translated/part.js:2680 -#: templates/js/translated/stock.js:2754 +#: templates/js/translated/stock.js:2755 msgid "Display as list" msgstr "" @@ -13431,7 +13796,7 @@ msgstr "" msgid "No subcategories found" msgstr "" -#: templates/js/translated/part.js:2700 templates/js/translated/stock.js:2774 +#: templates/js/translated/part.js:2700 templates/js/translated/stock.js:2775 msgid "Display as tree" msgstr "" @@ -13483,23 +13848,23 @@ msgstr "" msgid "Speculative" msgstr "" -#: templates/js/translated/part.js:3128 +#: templates/js/translated/part.js:3144 msgid "No scheduling information available for this part" msgstr "" -#: templates/js/translated/part.js:3134 +#: templates/js/translated/part.js:3150 msgid "Error fetching scheduling information for this part" msgstr "" -#: templates/js/translated/part.js:3230 +#: templates/js/translated/part.js:3246 msgid "Scheduled Stock Quantities" msgstr "" -#: templates/js/translated/part.js:3246 +#: templates/js/translated/part.js:3262 msgid "Maximum Quantity" msgstr "" -#: templates/js/translated/part.js:3291 +#: templates/js/translated/part.js:3307 msgid "Minimum Stock Level" msgstr "" @@ -13575,267 +13940,243 @@ msgstr "" msgid "Purchase Price History" msgstr "" -#: templates/js/translated/pricing.js:894 +#: templates/js/translated/pricing.js:892 msgid "No sales history data available" msgstr "" -#: templates/js/translated/pricing.js:916 +#: templates/js/translated/pricing.js:914 msgid "Sale Price History" msgstr "" -#: templates/js/translated/pricing.js:1005 +#: templates/js/translated/pricing.js:1003 msgid "No variant data available" msgstr "" -#: templates/js/translated/pricing.js:1045 +#: templates/js/translated/pricing.js:1043 msgid "Variant Part" msgstr "" -#: templates/js/translated/purchase_order.js:169 -msgid "Select purchase order to duplicate" -msgstr "" - -#: templates/js/translated/purchase_order.js:176 -msgid "Duplicate Line Items" -msgstr "" - -#: templates/js/translated/purchase_order.js:177 -msgid "Duplicate all line items from the selected order" -msgstr "" - -#: templates/js/translated/purchase_order.js:184 -msgid "Duplicate Extra Lines" -msgstr "" - -#: templates/js/translated/purchase_order.js:185 -msgid "Duplicate extra line items from the selected order" -msgstr "" - -#: templates/js/translated/purchase_order.js:206 +#: templates/js/translated/purchase_order.js:188 msgid "Edit Purchase Order" msgstr "" -#: templates/js/translated/purchase_order.js:223 +#: templates/js/translated/purchase_order.js:205 msgid "Duplication Options" msgstr "" -#: templates/js/translated/purchase_order.js:431 +#: templates/js/translated/purchase_order.js:414 msgid "Complete Purchase Order" msgstr "" -#: templates/js/translated/purchase_order.js:448 +#: templates/js/translated/purchase_order.js:431 #: templates/js/translated/return_order.js:210 -#: templates/js/translated/sales_order.js:552 +#: templates/js/translated/sales_order.js:511 msgid "Mark this order as complete?" msgstr "" -#: templates/js/translated/purchase_order.js:454 +#: templates/js/translated/purchase_order.js:437 msgid "All line items have been received" msgstr "" -#: templates/js/translated/purchase_order.js:459 +#: templates/js/translated/purchase_order.js:442 msgid "This order has line items which have not been marked as received." msgstr "" -#: templates/js/translated/purchase_order.js:460 +#: templates/js/translated/purchase_order.js:443 msgid "Completing this order means that the order and line items will no longer be editable." msgstr "" -#: templates/js/translated/purchase_order.js:483 +#: templates/js/translated/purchase_order.js:466 msgid "Cancel Purchase Order" msgstr "" -#: templates/js/translated/purchase_order.js:488 +#: templates/js/translated/purchase_order.js:471 msgid "Are you sure you wish to cancel this purchase order?" msgstr "" -#: templates/js/translated/purchase_order.js:494 +#: templates/js/translated/purchase_order.js:477 msgid "This purchase order can not be cancelled" msgstr "" -#: templates/js/translated/purchase_order.js:515 +#: templates/js/translated/purchase_order.js:498 #: templates/js/translated/return_order.js:164 msgid "After placing this order, line items will no longer be editable." msgstr "" -#: templates/js/translated/purchase_order.js:520 +#: templates/js/translated/purchase_order.js:503 msgid "Issue Purchase Order" msgstr "" -#: templates/js/translated/purchase_order.js:612 +#: templates/js/translated/purchase_order.js:595 msgid "At least one purchaseable part must be selected" msgstr "" -#: templates/js/translated/purchase_order.js:637 +#: templates/js/translated/purchase_order.js:620 msgid "Quantity to order" msgstr "" -#: templates/js/translated/purchase_order.js:646 +#: templates/js/translated/purchase_order.js:629 msgid "New supplier part" msgstr "" -#: templates/js/translated/purchase_order.js:664 +#: templates/js/translated/purchase_order.js:647 msgid "New purchase order" msgstr "" -#: templates/js/translated/purchase_order.js:705 +#: templates/js/translated/purchase_order.js:688 msgid "Add to purchase order" msgstr "" -#: templates/js/translated/purchase_order.js:755 +#: templates/js/translated/purchase_order.js:738 msgid "Merge" msgstr "" -#: templates/js/translated/purchase_order.js:859 +#: templates/js/translated/purchase_order.js:842 msgid "No matching supplier parts" msgstr "" -#: templates/js/translated/purchase_order.js:878 +#: templates/js/translated/purchase_order.js:861 msgid "No matching purchase orders" msgstr "" -#: templates/js/translated/purchase_order.js:1073 +#: templates/js/translated/purchase_order.js:1056 #: templates/js/translated/return_order.js:490 msgid "Select Line Items" msgstr "" -#: templates/js/translated/purchase_order.js:1074 +#: templates/js/translated/purchase_order.js:1057 #: templates/js/translated/return_order.js:491 msgid "At least one line item must be selected" msgstr "" -#: templates/js/translated/purchase_order.js:1104 +#: templates/js/translated/purchase_order.js:1087 msgid "Received Quantity" msgstr "" -#: templates/js/translated/purchase_order.js:1115 +#: templates/js/translated/purchase_order.js:1098 msgid "Quantity to receive" msgstr "" -#: templates/js/translated/purchase_order.js:1170 +#: templates/js/translated/purchase_order.js:1153 #: templates/js/translated/stock.js:1215 msgid "Specify packaging for incoming stock items" msgstr "" -#: templates/js/translated/purchase_order.js:1223 +#: templates/js/translated/purchase_order.js:1206 msgid "Stock Status" msgstr "" -#: templates/js/translated/purchase_order.js:1237 +#: templates/js/translated/purchase_order.js:1220 msgid "Add barcode" msgstr "" -#: templates/js/translated/purchase_order.js:1238 +#: templates/js/translated/purchase_order.js:1221 msgid "Remove barcode" msgstr "" -#: templates/js/translated/purchase_order.js:1241 +#: templates/js/translated/purchase_order.js:1224 msgid "Specify location" msgstr "" -#: templates/js/translated/purchase_order.js:1249 +#: templates/js/translated/purchase_order.js:1232 msgid "Add batch code" msgstr "" -#: templates/js/translated/purchase_order.js:1259 +#: templates/js/translated/purchase_order.js:1242 msgid "Specify packaging" msgstr "" -#: templates/js/translated/purchase_order.js:1270 +#: templates/js/translated/purchase_order.js:1253 msgid "Add serial numbers" msgstr "" -#: templates/js/translated/purchase_order.js:1281 +#: templates/js/translated/purchase_order.js:1264 msgid "Add note" msgstr "" -#: templates/js/translated/purchase_order.js:1338 +#: templates/js/translated/purchase_order.js:1321 msgid "Serials" msgstr "" -#: templates/js/translated/purchase_order.js:1368 +#: templates/js/translated/purchase_order.js:1351 msgid "Order Code" msgstr "" -#: templates/js/translated/purchase_order.js:1370 +#: templates/js/translated/purchase_order.js:1353 msgid "Quantity to Receive" msgstr "" -#: templates/js/translated/purchase_order.js:1395 +#: templates/js/translated/purchase_order.js:1379 #: templates/js/translated/return_order.js:559 msgid "Confirm receipt of items" msgstr "" -#: templates/js/translated/purchase_order.js:1396 +#: templates/js/translated/purchase_order.js:1380 msgid "Receive Purchase Order Items" msgstr "" -#: templates/js/translated/purchase_order.js:1464 +#: templates/js/translated/purchase_order.js:1448 msgid "Scan Item Barcode" msgstr "" -#: templates/js/translated/purchase_order.js:1465 +#: templates/js/translated/purchase_order.js:1449 msgid "Scan barcode on incoming item (must not match any existing stock items)" msgstr "" -#: templates/js/translated/purchase_order.js:1479 +#: templates/js/translated/purchase_order.js:1463 msgid "Invalid barcode data" msgstr "" -#: templates/js/translated/purchase_order.js:1751 +#: templates/js/translated/purchase_order.js:1735 #: templates/js/translated/return_order.js:285 -#: templates/js/translated/sales_order.js:810 -#: templates/js/translated/sales_order.js:1034 +#: templates/js/translated/sales_order.js:769 +#: templates/js/translated/sales_order.js:1007 msgid "Order is overdue" msgstr "" -#: templates/js/translated/purchase_order.js:1913 +#: templates/js/translated/purchase_order.js:1897 msgid "All selected Line items will be deleted" msgstr "" -#: templates/js/translated/purchase_order.js:1931 +#: templates/js/translated/purchase_order.js:1915 msgid "Delete selected Line items?" msgstr "" -#: templates/js/translated/purchase_order.js:1986 -#: templates/js/translated/sales_order.js:2106 +#: templates/js/translated/purchase_order.js:1970 +#: templates/js/translated/sales_order.js:2087 msgid "Duplicate Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2001 +#: templates/js/translated/purchase_order.js:1985 #: templates/js/translated/return_order.js:475 #: templates/js/translated/return_order.js:667 -#: templates/js/translated/sales_order.js:2119 +#: templates/js/translated/sales_order.js:2100 msgid "Edit Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2012 +#: templates/js/translated/purchase_order.js:1996 #: templates/js/translated/return_order.js:680 -#: templates/js/translated/sales_order.js:2130 +#: templates/js/translated/sales_order.js:2111 msgid "Delete Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2294 -#: templates/js/translated/sales_order.js:2060 +#: templates/js/translated/purchase_order.js:2278 +#: templates/js/translated/sales_order.js:2041 msgid "Duplicate line item" msgstr "" -#: templates/js/translated/purchase_order.js:2295 +#: templates/js/translated/purchase_order.js:2279 #: templates/js/translated/return_order.js:799 -#: templates/js/translated/sales_order.js:2061 +#: templates/js/translated/sales_order.js:2042 msgid "Edit line item" msgstr "" -#: templates/js/translated/purchase_order.js:2296 +#: templates/js/translated/purchase_order.js:2280 #: templates/js/translated/return_order.js:803 -#: templates/js/translated/sales_order.js:2067 +#: templates/js/translated/sales_order.js:2048 msgid "Delete line item" msgstr "" -#: templates/js/translated/report.js:49 -msgid "Print Report" -msgstr "" - #: templates/js/translated/report.js:68 msgid "Report print successful" msgstr "" @@ -13878,7 +14219,7 @@ msgid "No return orders found" msgstr "" #: templates/js/translated/return_order.js:299 -#: templates/js/translated/sales_order.js:824 +#: templates/js/translated/sales_order.js:783 msgid "Invalid Customer" msgstr "" @@ -13887,7 +14228,7 @@ msgid "Receive Return Order Items" msgstr "" #: templates/js/translated/return_order.js:691 -#: templates/js/translated/sales_order.js:2267 +#: templates/js/translated/sales_order.js:2248 msgid "No matching line items" msgstr "" @@ -13903,188 +14244,181 @@ msgstr "" msgid "Edit Sales Order" msgstr "" -#: templates/js/translated/sales_order.js:291 +#: templates/js/translated/sales_order.js:288 msgid "No stock items have been allocated to this shipment" msgstr "" -#: templates/js/translated/sales_order.js:296 -msgid "The following stock items will be shipped" -msgstr "" - -#: templates/js/translated/sales_order.js:336 +#: templates/js/translated/sales_order.js:294 msgid "Complete Shipment" msgstr "" -#: templates/js/translated/sales_order.js:360 +#: templates/js/translated/sales_order.js:318 msgid "Confirm Shipment" msgstr "" -#: templates/js/translated/sales_order.js:416 +#: templates/js/translated/sales_order.js:375 msgid "No pending shipments found" msgstr "" -#: templates/js/translated/sales_order.js:420 +#: templates/js/translated/sales_order.js:379 msgid "No stock items have been allocated to pending shipments" msgstr "" -#: templates/js/translated/sales_order.js:430 +#: templates/js/translated/sales_order.js:389 msgid "Complete Shipments" msgstr "" -#: templates/js/translated/sales_order.js:452 +#: templates/js/translated/sales_order.js:411 msgid "Skip" msgstr "" -#: templates/js/translated/sales_order.js:484 +#: templates/js/translated/sales_order.js:443 msgid "Ship Sales Order" msgstr "" -#: templates/js/translated/sales_order.js:500 +#: templates/js/translated/sales_order.js:459 msgid "Ship this order?" msgstr "" -#: templates/js/translated/sales_order.js:506 +#: templates/js/translated/sales_order.js:465 msgid "Order cannot be shipped as there are incomplete shipments" msgstr "" -#: templates/js/translated/sales_order.js:513 +#: templates/js/translated/sales_order.js:472 msgid "This order has line items which have not been completed." msgstr "" -#: templates/js/translated/sales_order.js:514 +#: templates/js/translated/sales_order.js:473 msgid "Shipping this order means that the order and line items will no longer be editable." msgstr "" -#: templates/js/translated/sales_order.js:572 +#: templates/js/translated/sales_order.js:531 msgid "Issue this Sales Order?" msgstr "" -#: templates/js/translated/sales_order.js:577 +#: templates/js/translated/sales_order.js:536 msgid "Issue Sales Order" msgstr "" -#: templates/js/translated/sales_order.js:596 +#: templates/js/translated/sales_order.js:555 msgid "Cancel Sales Order" msgstr "" -#: templates/js/translated/sales_order.js:601 +#: templates/js/translated/sales_order.js:560 msgid "Cancelling this order means that the order will no longer be editable." msgstr "" -#: templates/js/translated/sales_order.js:655 +#: templates/js/translated/sales_order.js:614 msgid "Create New Shipment" msgstr "" -#: templates/js/translated/sales_order.js:764 +#: templates/js/translated/sales_order.js:723 msgid "No sales orders found" msgstr "" -#: templates/js/translated/sales_order.js:944 +#: templates/js/translated/sales_order.js:907 msgid "Edit shipment" msgstr "" -#: templates/js/translated/sales_order.js:947 +#: templates/js/translated/sales_order.js:910 msgid "Complete shipment" msgstr "" -#: templates/js/translated/sales_order.js:952 +#: templates/js/translated/sales_order.js:915 msgid "Delete shipment" msgstr "" -#: templates/js/translated/sales_order.js:969 +#: templates/js/translated/sales_order.js:932 msgid "Edit Shipment" msgstr "" -#: templates/js/translated/sales_order.js:984 +#: templates/js/translated/sales_order.js:947 msgid "Delete Shipment" msgstr "" -#: templates/js/translated/sales_order.js:1017 +#: templates/js/translated/sales_order.js:989 msgid "No matching shipments found" msgstr "" -#: templates/js/translated/sales_order.js:1042 +#: templates/js/translated/sales_order.js:1015 msgid "Shipment Reference" msgstr "" -#: templates/js/translated/sales_order.js:1066 -#: templates/js/translated/sales_order.js:1565 +#: templates/js/translated/sales_order.js:1032 +#: templates/js/translated/sales_order.js:1531 msgid "Not shipped" msgstr "" -#: templates/js/translated/sales_order.js:1084 +#: templates/js/translated/sales_order.js:1050 msgid "Tracking" msgstr "" -#: templates/js/translated/sales_order.js:1088 +#: templates/js/translated/sales_order.js:1054 msgid "Invoice" msgstr "" -#: templates/js/translated/sales_order.js:1255 +#: templates/js/translated/sales_order.js:1221 msgid "Add Shipment" msgstr "" -#: templates/js/translated/sales_order.js:1306 +#: templates/js/translated/sales_order.js:1272 msgid "Confirm stock allocation" msgstr "" -#: templates/js/translated/sales_order.js:1307 +#: templates/js/translated/sales_order.js:1273 msgid "Allocate Stock Items to Sales Order" msgstr "" -#: templates/js/translated/sales_order.js:1513 +#: templates/js/translated/sales_order.js:1479 msgid "No sales order allocations found" msgstr "" -#: templates/js/translated/sales_order.js:1605 +#: templates/js/translated/sales_order.js:1571 msgid "Edit Stock Allocation" msgstr "" -#: templates/js/translated/sales_order.js:1619 +#: templates/js/translated/sales_order.js:1585 msgid "Confirm Delete Operation" msgstr "" -#: templates/js/translated/sales_order.js:1620 +#: templates/js/translated/sales_order.js:1586 msgid "Delete Stock Allocation" msgstr "" -#: templates/js/translated/sales_order.js:1659 -#: templates/js/translated/sales_order.js:1746 +#: templates/js/translated/sales_order.js:1640 +#: templates/js/translated/sales_order.js:1727 #: templates/js/translated/stock.js:1861 msgid "Shipped to customer" msgstr "" -#: templates/js/translated/sales_order.js:1667 -#: templates/js/translated/sales_order.js:1755 +#: templates/js/translated/sales_order.js:1648 +#: templates/js/translated/sales_order.js:1736 msgid "Stock location not specified" msgstr "" -#: templates/js/translated/sales_order.js:2044 -msgid "Allocate serial numbers" -msgstr "" - -#: templates/js/translated/sales_order.js:2048 -msgid "Purchase stock" -msgstr "" - -#: templates/js/translated/sales_order.js:2057 -#: templates/js/translated/sales_order.js:2245 -msgid "Calculate price" -msgstr "" - -#: templates/js/translated/sales_order.js:2071 -msgid "Cannot be deleted as items have been shipped" -msgstr "" - -#: templates/js/translated/sales_order.js:2074 -msgid "Cannot be deleted as items have been allocated" -msgstr "" - -#: templates/js/translated/sales_order.js:2145 +#: templates/js/translated/sales_order.js:2025 +#: templates/js/translated/sales_order.js:2126 msgid "Allocate Serial Numbers" msgstr "" -#: templates/js/translated/sales_order.js:2253 +#: templates/js/translated/sales_order.js:2029 +msgid "Purchase stock" +msgstr "" + +#: templates/js/translated/sales_order.js:2038 +#: templates/js/translated/sales_order.js:2226 +msgid "Calculate price" +msgstr "" + +#: templates/js/translated/sales_order.js:2052 +msgid "Cannot be deleted as items have been shipped" +msgstr "" + +#: templates/js/translated/sales_order.js:2055 +msgid "Cannot be deleted as items have been allocated" +msgstr "" + +#: templates/js/translated/sales_order.js:2234 msgid "Update Unit Price" msgstr "" @@ -14209,11 +14543,8 @@ msgid "Find Serial Number" msgstr "" #: templates/js/translated/stock.js:603 templates/js/translated/stock.js:604 -msgid "Enter serial number" -msgstr "" - #: templates/js/translated/stock.js:620 -msgid "Enter a serial number" +msgid "Enter serial number" msgstr "" #: templates/js/translated/stock.js:640 @@ -14284,7 +14615,7 @@ msgstr "" msgid "Add Stock" msgstr "" -#: templates/js/translated/stock.js:1049 users/models.py:396 +#: templates/js/translated/stock.js:1049 users/models.py:398 msgid "Add" msgstr "" @@ -14308,7 +14639,7 @@ msgstr "" msgid "Adjust packaging" msgstr "" -#: templates/js/translated/stock.js:1256 templates/js/translated/stock.js:3382 +#: templates/js/translated/stock.js:1256 templates/js/translated/stock.js:3383 msgid "Select Stock Items" msgstr "" @@ -14320,18 +14651,6 @@ msgstr "" msgid "Confirm stock adjustment" msgstr "" -#: templates/js/translated/stock.js:1448 -msgid "PASS" -msgstr "" - -#: templates/js/translated/stock.js:1450 -msgid "FAIL" -msgstr "" - -#: templates/js/translated/stock.js:1455 -msgid "NO RESULT" -msgstr "" - #: templates/js/translated/stock.js:1535 msgid "Pass test" msgstr "" @@ -14388,216 +14707,216 @@ msgstr "" msgid "No stock location set" msgstr "" -#: templates/js/translated/stock.js:1927 +#: templates/js/translated/stock.js:1928 msgid "Change stock status" msgstr "" -#: templates/js/translated/stock.js:1936 +#: templates/js/translated/stock.js:1937 msgid "Merge stock" msgstr "" -#: templates/js/translated/stock.js:1985 +#: templates/js/translated/stock.js:1986 msgid "Delete stock" msgstr "" -#: templates/js/translated/stock.js:2038 +#: templates/js/translated/stock.js:2039 msgid "stock items" msgstr "" -#: templates/js/translated/stock.js:2043 +#: templates/js/translated/stock.js:2044 msgid "Scan to location" msgstr "" -#: templates/js/translated/stock.js:2054 +#: templates/js/translated/stock.js:2055 msgid "Stock Actions" msgstr "" -#: templates/js/translated/stock.js:2098 +#: templates/js/translated/stock.js:2099 msgid "Load installed items" msgstr "" -#: templates/js/translated/stock.js:2176 +#: templates/js/translated/stock.js:2177 msgid "Stock item is in production" msgstr "" -#: templates/js/translated/stock.js:2181 +#: templates/js/translated/stock.js:2182 msgid "Stock item assigned to sales order" msgstr "" -#: templates/js/translated/stock.js:2184 +#: templates/js/translated/stock.js:2185 msgid "Stock item assigned to customer" msgstr "" -#: templates/js/translated/stock.js:2187 +#: templates/js/translated/stock.js:2188 msgid "Serialized stock item has been allocated" msgstr "" -#: templates/js/translated/stock.js:2189 +#: templates/js/translated/stock.js:2190 msgid "Stock item has been fully allocated" msgstr "" -#: templates/js/translated/stock.js:2191 +#: templates/js/translated/stock.js:2192 msgid "Stock item has been partially allocated" msgstr "" -#: templates/js/translated/stock.js:2194 +#: templates/js/translated/stock.js:2195 msgid "Stock item has been installed in another item" msgstr "" -#: templates/js/translated/stock.js:2196 +#: templates/js/translated/stock.js:2197 msgid "Stock item has been consumed by a build order" msgstr "" -#: templates/js/translated/stock.js:2200 +#: templates/js/translated/stock.js:2201 msgid "Stock item has expired" msgstr "" -#: templates/js/translated/stock.js:2202 +#: templates/js/translated/stock.js:2203 msgid "Stock item will expire soon" msgstr "" -#: templates/js/translated/stock.js:2207 +#: templates/js/translated/stock.js:2208 msgid "Stock item has been rejected" msgstr "" -#: templates/js/translated/stock.js:2209 +#: templates/js/translated/stock.js:2210 msgid "Stock item is lost" msgstr "" -#: templates/js/translated/stock.js:2211 +#: templates/js/translated/stock.js:2212 msgid "Stock item is destroyed" msgstr "" -#: templates/js/translated/stock.js:2215 +#: templates/js/translated/stock.js:2216 #: templates/js/translated/table_filters.js:357 msgid "Depleted" msgstr "" -#: templates/js/translated/stock.js:2380 +#: templates/js/translated/stock.js:2381 msgid "Supplier part not specified" msgstr "" -#: templates/js/translated/stock.js:2427 +#: templates/js/translated/stock.js:2428 msgid "Stock Value" msgstr "" -#: templates/js/translated/stock.js:2555 +#: templates/js/translated/stock.js:2556 msgid "No stock items matching query" msgstr "" -#: templates/js/translated/stock.js:2658 +#: templates/js/translated/stock.js:2659 msgid "stock locations" msgstr "" -#: templates/js/translated/stock.js:2813 +#: templates/js/translated/stock.js:2814 msgid "Load Sublocations" msgstr "" -#: templates/js/translated/stock.js:2930 +#: templates/js/translated/stock.js:2931 msgid "Details" msgstr "" -#: templates/js/translated/stock.js:2934 +#: templates/js/translated/stock.js:2935 msgid "No changes" msgstr "" -#: templates/js/translated/stock.js:2946 +#: templates/js/translated/stock.js:2947 msgid "Part information unavailable" msgstr "" -#: templates/js/translated/stock.js:2968 +#: templates/js/translated/stock.js:2969 msgid "Location no longer exists" msgstr "" -#: templates/js/translated/stock.js:2985 +#: templates/js/translated/stock.js:2986 msgid "Build order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3000 +#: templates/js/translated/stock.js:3001 msgid "Purchase order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3017 +#: templates/js/translated/stock.js:3018 msgid "Sales Order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3034 +#: templates/js/translated/stock.js:3035 msgid "Return Order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3053 +#: templates/js/translated/stock.js:3054 msgid "Customer no longer exists" msgstr "" -#: templates/js/translated/stock.js:3071 +#: templates/js/translated/stock.js:3072 msgid "Stock item no longer exists" msgstr "" -#: templates/js/translated/stock.js:3089 +#: templates/js/translated/stock.js:3090 msgid "Added" msgstr "" -#: templates/js/translated/stock.js:3097 +#: templates/js/translated/stock.js:3098 msgid "Removed" msgstr "" -#: templates/js/translated/stock.js:3169 +#: templates/js/translated/stock.js:3170 msgid "No installed items" msgstr "" -#: templates/js/translated/stock.js:3223 templates/js/translated/stock.js:3259 +#: templates/js/translated/stock.js:3224 templates/js/translated/stock.js:3260 msgid "Uninstall Stock Item" msgstr "" -#: templates/js/translated/stock.js:3280 +#: templates/js/translated/stock.js:3281 msgid "Select stock item to uninstall" msgstr "" -#: templates/js/translated/stock.js:3301 +#: templates/js/translated/stock.js:3302 msgid "Install another stock item into this item" msgstr "" -#: templates/js/translated/stock.js:3302 +#: templates/js/translated/stock.js:3303 msgid "Stock items can only be installed if they meet the following criteria" msgstr "" -#: templates/js/translated/stock.js:3304 +#: templates/js/translated/stock.js:3305 msgid "The Stock Item links to a Part which is the BOM for this Stock Item" msgstr "" -#: templates/js/translated/stock.js:3305 +#: templates/js/translated/stock.js:3306 msgid "The Stock Item is currently available in stock" msgstr "" -#: templates/js/translated/stock.js:3306 +#: templates/js/translated/stock.js:3307 msgid "The Stock Item is not already installed in another item" msgstr "" -#: templates/js/translated/stock.js:3307 +#: templates/js/translated/stock.js:3308 msgid "The Stock Item is tracked by either a batch code or serial number" msgstr "" -#: templates/js/translated/stock.js:3320 +#: templates/js/translated/stock.js:3321 msgid "Select part to install" msgstr "" -#: templates/js/translated/stock.js:3383 +#: templates/js/translated/stock.js:3384 msgid "Select one or more stock items" msgstr "" -#: templates/js/translated/stock.js:3396 +#: templates/js/translated/stock.js:3397 msgid "Selected stock items" msgstr "" -#: templates/js/translated/stock.js:3400 +#: templates/js/translated/stock.js:3401 msgid "Change Stock Status" msgstr "" -#: templates/js/translated/stock.js:3477 +#: templates/js/translated/stock.js:3478 msgid "This week" msgstr "" -#: templates/js/translated/stock.js:3485 +#: templates/js/translated/stock.js:3486 msgid "This month" msgstr "" @@ -14734,10 +15053,6 @@ msgstr "" msgid "Show items which are in production" msgstr "" -#: templates/js/translated/table_filters.js:372 -msgid "Include Variants" -msgstr "" - #: templates/js/translated/table_filters.js:373 msgid "Include stock items for variant parts" msgstr "" @@ -15012,10 +15327,6 @@ msgstr "" msgid "An error occurred while attempting to login via your social network account." msgstr "" -#: templates/socialaccount/authentication_error.html:13 -msgid "Contact your system administrator for further information." -msgstr "" - #: templates/socialaccount/login.html:13 #, python-format msgid "Connect %(provider)s" @@ -15141,27 +15452,27 @@ msgstr "" msgid "No" msgstr "" -#: users/admin.py:104 +#: users/admin.py:101 msgid "Users" msgstr "" -#: users/admin.py:105 +#: users/admin.py:102 msgid "Select which users are assigned to this group" msgstr "" -#: users/admin.py:249 +#: users/admin.py:246 msgid "The following users are members of multiple groups" msgstr "" -#: users/admin.py:283 +#: users/admin.py:280 msgid "Personal info" msgstr "" -#: users/admin.py:285 +#: users/admin.py:282 msgid "Permissions" msgstr "" -#: users/admin.py:288 +#: users/admin.py:285 msgid "Important dates" msgstr "" @@ -15205,35 +15516,35 @@ msgstr "" msgid "Revoked" msgstr "" -#: users/models.py:379 +#: users/models.py:381 msgid "Permission set" msgstr "" -#: users/models.py:388 +#: users/models.py:390 msgid "Group" msgstr "" -#: users/models.py:392 +#: users/models.py:394 msgid "View" msgstr "" -#: users/models.py:392 +#: users/models.py:394 msgid "Permission to view items" msgstr "" -#: users/models.py:396 +#: users/models.py:398 msgid "Permission to add items" msgstr "" -#: users/models.py:400 +#: users/models.py:402 msgid "Change" msgstr "" -#: users/models.py:402 +#: users/models.py:404 msgid "Permissions to edit items" msgstr "" -#: users/models.py:408 +#: users/models.py:410 msgid "Permission to delete items" msgstr "" diff --git a/src/backend/InvenTree/locale/fi/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/fi/LC_MESSAGES/django.po index 60742baa75..6fbda0176d 100644 --- a/src/backend/InvenTree/locale/fi/LC_MESSAGES/django.po +++ b/src/backend/InvenTree/locale/fi/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-08-20 01:22+0000\n" -"PO-Revision-Date: 2024-08-20 19:50\n" +"POT-Creation-Date: 2024-11-04 03:11+0000\n" +"PO-Revision-Date: 2024-11-04 03:14\n" "Last-Translator: \n" "Language-Team: Finnish\n" "Language: fi_FI\n" @@ -14,81 +14,89 @@ msgstr "" "X-Crowdin-Project: inventree\n" "X-Crowdin-Project-ID: 452300\n" "X-Crowdin-Language: fi\n" -"X-Crowdin-File: /[inventree.InvenTree] l10/src/backend/InvenTree/locale/en/LC_MESSAGES/django.po\n" -"X-Crowdin-File-ID: 216\n" +"X-Crowdin-File: /src/backend/InvenTree/locale/en/LC_MESSAGES/django.po\n" +"X-Crowdin-File-ID: 250\n" -#: InvenTree/api.py:269 +#: InvenTree/api.py:270 msgid "API endpoint not found" msgstr "API-rajapintaa ei löydy" -#: InvenTree/api.py:502 +#: InvenTree/api.py:387 +msgid "Invalid items list provided" +msgstr "" + +#: InvenTree/api.py:396 +msgid "Invalid filters provided" +msgstr "" + +#: InvenTree/api.py:401 +msgid "No items found to delete" +msgstr "" + +#: InvenTree/api.py:515 msgid "User does not have permission to view this model" msgstr "Käyttäjän oikeudet eivät riitä kohteen tarkastelemiseen" -#: InvenTree/conversion.py:160 +#: InvenTree/conversion.py:161 #, python-brace-format msgid "Invalid unit provided ({unit})" msgstr "" -#: InvenTree/conversion.py:177 +#: InvenTree/conversion.py:178 msgid "No value provided" msgstr "Arvoa ei annettu" -#: InvenTree/conversion.py:204 +#: InvenTree/conversion.py:205 #, python-brace-format msgid "Could not convert {original} to {unit}" msgstr "" -#: InvenTree/conversion.py:206 -msgid "Invalid quantity supplied" -msgstr "" +#: InvenTree/conversion.py:207 InvenTree/conversion.py:221 +#: InvenTree/helpers.py:505 order/models.py:589 order/models.py:832 +msgid "Invalid quantity provided" +msgstr "Annettu määrä on virheellinen" -#: InvenTree/conversion.py:220 -#, python-brace-format -msgid "Invalid quantity supplied ({exc})" -msgstr "" - -#: InvenTree/exceptions.py:108 +#: InvenTree/exceptions.py:104 msgid "Error details can be found in the admin panel" msgstr "Virheen tiedot löytyvät hallintapaneelista" -#: InvenTree/fields.py:136 +#: InvenTree/fields.py:135 msgid "Enter date" msgstr "Anna päivämäärä" -#: InvenTree/fields.py:205 InvenTree/models.py:929 build/serializers.py:468 -#: build/serializers.py:546 build/templates/build/sidebar.html:29 -#: company/models.py:836 +#: InvenTree/fields.py:204 InvenTree/models.py:928 build/serializers.py:512 +#: build/serializers.py:590 build/templates/build/sidebar.html:29 +#: company/models.py:833 #: company/templates/company/manufacturer_part_sidebar.html:11 #: company/templates/company/sidebar.html:37 -#: company/templates/company/supplier_part_sidebar.html:11 order/models.py:1380 +#: company/templates/company/supplier_part_sidebar.html:11 order/models.py:1397 #: order/templates/order/po_sidebar.html:11 #: order/templates/order/return_order_sidebar.html:9 #: order/templates/order/so_sidebar.html:17 part/admin.py:59 -#: part/models.py:3297 part/templates/part/part_sidebar.html:65 +#: part/models.py:3348 part/templates/part/part_sidebar.html:65 #: report/templates/report/inventree_build_order_report.html:172 -#: stock/admin.py:230 stock/models.py:2375 stock/models.py:2563 -#: stock/serializers.py:698 stock/serializers.py:856 stock/serializers.py:982 -#: stock/serializers.py:1032 stock/serializers.py:1343 -#: stock/serializers.py:1432 stock/serializers.py:1597 +#: stock/admin.py:231 stock/models.py:2494 stock/models.py:2679 +#: stock/serializers.py:725 stock/serializers.py:887 stock/serializers.py:1013 +#: stock/serializers.py:1063 stock/serializers.py:1374 +#: stock/serializers.py:1463 stock/serializers.py:1628 #: stock/templates/stock/stock_sidebar.html:25 #: templates/js/translated/barcode.js:143 templates/js/translated/bom.js:1265 -#: templates/js/translated/company.js:1684 templates/js/translated/order.js:372 +#: templates/js/translated/company.js:1685 templates/js/translated/order.js:372 #: templates/js/translated/part.js:1087 -#: templates/js/translated/purchase_order.js:2270 +#: templates/js/translated/purchase_order.js:2254 #: templates/js/translated/return_order.js:774 -#: templates/js/translated/sales_order.js:1103 -#: templates/js/translated/sales_order.js:2018 -#: templates/js/translated/stock.js:1621 templates/js/translated/stock.js:2513 +#: templates/js/translated/sales_order.js:1069 +#: templates/js/translated/sales_order.js:1999 +#: templates/js/translated/stock.js:1621 templates/js/translated/stock.js:2514 msgid "Notes" msgstr "Merkinnät" -#: InvenTree/format.py:164 +#: InvenTree/format.py:162 #, python-brace-format msgid "Value '{name}' does not appear in pattern format" msgstr "" -#: InvenTree/format.py:175 +#: InvenTree/format.py:173 msgid "Provided value does not match required pattern: " msgstr "" @@ -132,397 +140,409 @@ msgstr "" msgid "The provided primary email address is not valid." msgstr "Annettu ensisijainen sähköpostiosoite ei kelpaa." -#: InvenTree/forms.py:274 +#: InvenTree/forms.py:273 msgid "The provided email domain is not approved." msgstr "Annetun sähköpostiosoitteen verkkotunnusta ei hyväksytä." -#: InvenTree/forms.py:403 +#: InvenTree/forms.py:402 msgid "Registration is disabled." msgstr "" -#: InvenTree/helpers.py:491 order/models.py:567 order/models.py:810 -msgid "Invalid quantity provided" -msgstr "Annettu määrä on virheellinen" +#: InvenTree/helpers.py:509 +msgid "Cannot serialize more than 1000 items at once" +msgstr "" -#: InvenTree/helpers.py:499 +#: InvenTree/helpers.py:515 msgid "Empty serial number string" msgstr "Tyhjä sarjanumero" -#: InvenTree/helpers.py:528 +#: InvenTree/helpers.py:544 msgid "Duplicate serial" msgstr "Duplikaatti sarjanumero" -#: InvenTree/helpers.py:560 InvenTree/helpers.py:603 +#: InvenTree/helpers.py:576 InvenTree/helpers.py:619 InvenTree/helpers.py:637 +#: InvenTree/helpers.py:644 InvenTree/helpers.py:663 #, python-brace-format -msgid "Invalid group range: {group}" +msgid "Invalid group: {group}" msgstr "" -#: InvenTree/helpers.py:591 +#: InvenTree/helpers.py:607 #, python-brace-format msgid "Group range {group} exceeds allowed quantity ({expected_quantity})" msgstr "" -#: InvenTree/helpers.py:621 InvenTree/helpers.py:628 InvenTree/helpers.py:647 -#, python-brace-format -msgid "Invalid group sequence: {group}" -msgstr "" - -#: InvenTree/helpers.py:657 +#: InvenTree/helpers.py:673 msgid "No serial numbers found" msgstr "Sarjanumeroita ei löytynyt" -#: InvenTree/helpers.py:662 +#: InvenTree/helpers.py:678 msgid "Number of unique serial numbers ({len(serials)}) must match quantity ({expected_quantity})" msgstr "" -#: InvenTree/helpers.py:780 +#: InvenTree/helpers.py:796 msgid "Remove HTML tags from this value" msgstr "" -#: InvenTree/helpers_model.py:133 +#: InvenTree/helpers.py:881 +msgid "Data contains prohibited markdown content" +msgstr "" + +#: InvenTree/helpers_model.py:130 msgid "Connection error" msgstr "Yhteysvirhe" -#: InvenTree/helpers_model.py:138 InvenTree/helpers_model.py:145 +#: InvenTree/helpers_model.py:135 InvenTree/helpers_model.py:142 msgid "Server responded with invalid status code" msgstr "Palvelin vastasi virheellisellä tilakoodilla" -#: InvenTree/helpers_model.py:141 +#: InvenTree/helpers_model.py:138 msgid "Exception occurred" msgstr "" -#: InvenTree/helpers_model.py:151 +#: InvenTree/helpers_model.py:148 msgid "Server responded with invalid Content-Length value" msgstr "" -#: InvenTree/helpers_model.py:154 +#: InvenTree/helpers_model.py:151 msgid "Image size is too large" msgstr "Kuva on liian iso" -#: InvenTree/helpers_model.py:166 +#: InvenTree/helpers_model.py:163 msgid "Image download exceeded maximum size" msgstr "Kuvan lataus ylitti enimmäiskoon" -#: InvenTree/helpers_model.py:171 +#: InvenTree/helpers_model.py:168 msgid "Remote server returned empty response" msgstr "Etäpalvelin palautti tyhjän vastauksen" -#: InvenTree/helpers_model.py:179 +#: InvenTree/helpers_model.py:176 msgid "Supplied URL is not a valid image file" msgstr "Annettu URL ei ole kelvollinen kuvatiedosto" -#: InvenTree/locales.py:18 +#: InvenTree/locales.py:20 msgid "Arabic" msgstr "" -#: InvenTree/locales.py:19 +#: InvenTree/locales.py:21 msgid "Bulgarian" msgstr "" -#: InvenTree/locales.py:20 +#: InvenTree/locales.py:22 msgid "Czech" msgstr "tšekki" -#: InvenTree/locales.py:21 +#: InvenTree/locales.py:23 msgid "Danish" msgstr "tanska" -#: InvenTree/locales.py:22 +#: InvenTree/locales.py:24 msgid "German" msgstr "saksa" -#: InvenTree/locales.py:23 +#: InvenTree/locales.py:25 msgid "Greek" msgstr "kreikka" -#: InvenTree/locales.py:24 +#: InvenTree/locales.py:26 msgid "English" msgstr "englanti" -#: InvenTree/locales.py:25 +#: InvenTree/locales.py:27 msgid "Spanish" msgstr "espanja" -#: InvenTree/locales.py:26 +#: InvenTree/locales.py:28 msgid "Spanish (Mexican)" msgstr "espanja (Meksiko)" -#: InvenTree/locales.py:27 +#: InvenTree/locales.py:29 msgid "Estonian" msgstr "" -#: InvenTree/locales.py:28 +#: InvenTree/locales.py:30 msgid "Farsi / Persian" msgstr "farsi / persia" -#: InvenTree/locales.py:29 +#: InvenTree/locales.py:31 msgid "Finnish" msgstr "suomi" -#: InvenTree/locales.py:30 +#: InvenTree/locales.py:32 msgid "French" msgstr "ranska" -#: InvenTree/locales.py:31 +#: InvenTree/locales.py:33 msgid "Hebrew" msgstr "heprea" -#: InvenTree/locales.py:32 +#: InvenTree/locales.py:34 msgid "Hindi" msgstr "" -#: InvenTree/locales.py:33 +#: InvenTree/locales.py:35 msgid "Hungarian" msgstr "unkari" -#: InvenTree/locales.py:34 +#: InvenTree/locales.py:36 msgid "Italian" msgstr "italia" -#: InvenTree/locales.py:35 +#: InvenTree/locales.py:37 msgid "Japanese" msgstr "japani" -#: InvenTree/locales.py:36 +#: InvenTree/locales.py:38 msgid "Korean" msgstr "korea" -#: InvenTree/locales.py:37 +#: InvenTree/locales.py:39 +msgid "Lithuanian" +msgstr "" + +#: InvenTree/locales.py:40 msgid "Latvian" msgstr "" -#: InvenTree/locales.py:38 +#: InvenTree/locales.py:41 msgid "Dutch" msgstr "hollanti" -#: InvenTree/locales.py:39 +#: InvenTree/locales.py:42 msgid "Norwegian" msgstr "norja" -#: InvenTree/locales.py:40 +#: InvenTree/locales.py:43 msgid "Polish" msgstr "puola" -#: InvenTree/locales.py:41 +#: InvenTree/locales.py:44 msgid "Portuguese" msgstr "portugali" -#: InvenTree/locales.py:42 +#: InvenTree/locales.py:45 msgid "Portuguese (Brazilian)" msgstr "portugali (Brasilia)" -#: InvenTree/locales.py:43 +#: InvenTree/locales.py:46 msgid "Romanian" msgstr "" -#: InvenTree/locales.py:44 +#: InvenTree/locales.py:47 msgid "Russian" msgstr "venäjä" -#: InvenTree/locales.py:45 +#: InvenTree/locales.py:48 msgid "Slovak" msgstr "" -#: InvenTree/locales.py:46 +#: InvenTree/locales.py:49 msgid "Slovenian" msgstr "slovenia" -#: InvenTree/locales.py:47 +#: InvenTree/locales.py:50 msgid "Serbian" msgstr "" -#: InvenTree/locales.py:48 +#: InvenTree/locales.py:51 msgid "Swedish" msgstr "ruotsi" -#: InvenTree/locales.py:49 +#: InvenTree/locales.py:52 msgid "Thai" msgstr "thai" -#: InvenTree/locales.py:50 +#: InvenTree/locales.py:53 msgid "Turkish" msgstr "turkki" -#: InvenTree/locales.py:51 +#: InvenTree/locales.py:54 msgid "Ukrainian" msgstr "" -#: InvenTree/locales.py:52 +#: InvenTree/locales.py:55 msgid "Vietnamese" msgstr "vietnam" -#: InvenTree/locales.py:53 +#: InvenTree/locales.py:56 msgid "Chinese (Simplified)" msgstr "" -#: InvenTree/locales.py:54 +#: InvenTree/locales.py:57 msgid "Chinese (Traditional)" msgstr "" #: InvenTree/magic_login.py:28 -#, python-brace-format -msgid "[{site_name}] Log in to the app" +msgid "Log in to the app" msgstr "" -#: InvenTree/magic_login.py:38 InvenTree/serializers.py:415 -#: company/models.py:136 company/templates/company/company_base.html:138 +#: InvenTree/magic_login.py:38 InvenTree/serializers.py:416 +#: company/models.py:133 company/templates/company/company_base.html:138 #: templates/InvenTree/settings/user.html:49 -#: templates/js/translated/company.js:677 +#: templates/js/translated/company.js:678 msgid "Email" msgstr "Sähköposti" -#: InvenTree/models.py:103 +#: InvenTree/models.py:105 msgid "Error running plugin validation" msgstr "" -#: InvenTree/models.py:172 +#: InvenTree/models.py:174 msgid "Metadata must be a python dict object" msgstr "Metatietojen tulee olla python dict objekti" -#: InvenTree/models.py:178 +#: InvenTree/models.py:180 msgid "Plugin Metadata" msgstr "Liitännäisen metadata" -#: InvenTree/models.py:179 +#: InvenTree/models.py:181 msgid "JSON metadata field, for use by external plugins" msgstr "JSON metadatakenttä, ulkoisten liitännäisten käyttöön" -#: InvenTree/models.py:409 +#: InvenTree/models.py:408 msgid "Improperly formatted pattern" msgstr "Virheellisesti muotoiltu malli" -#: InvenTree/models.py:416 +#: InvenTree/models.py:415 msgid "Unknown format key specified" msgstr "" -#: InvenTree/models.py:422 +#: InvenTree/models.py:421 msgid "Missing required format key" msgstr "" -#: InvenTree/models.py:433 +#: InvenTree/models.py:432 msgid "Reference field cannot be empty" msgstr "Viitekenttä ei voi olla tyhjä" -#: InvenTree/models.py:441 +#: InvenTree/models.py:440 msgid "Reference must match required pattern" msgstr "" -#: InvenTree/models.py:472 +#: InvenTree/models.py:471 msgid "Reference number is too large" msgstr "Viitenumero on liian suuri" -#: InvenTree/models.py:723 +#: InvenTree/models.py:722 msgid "Duplicate names cannot exist under the same parent" msgstr "" -#: InvenTree/models.py:740 +#: InvenTree/models.py:739 msgid "Invalid choice" msgstr "Virheellinen valinta" -#: InvenTree/models.py:770 common/models.py:2702 common/models.py:3132 -#: common/serializers.py:412 company/models.py:593 machine/models.py:24 -#: part/models.py:983 part/models.py:3764 plugin/models.py:51 -#: report/models.py:149 stock/models.py:77 +#: InvenTree/models.py:769 common/models.py:2766 common/models.py:3193 +#: common/models.py:3413 common/serializers.py:460 company/models.py:590 +#: machine/models.py:24 part/models.py:1044 part/models.py:3815 +#: plugin/models.py:51 report/models.py:149 stock/models.py:83 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/notifications.html:17 #: templates/InvenTree/settings/plugin.html:83 #: templates/InvenTree/settings/plugin_settings.html:22 #: templates/InvenTree/settings/settings_staff_js.html:67 #: templates/InvenTree/settings/settings_staff_js.html:454 -#: templates/js/translated/company.js:676 -#: templates/js/translated/company.js:724 -#: templates/js/translated/company.js:913 -#: templates/js/translated/company.js:1165 -#: templates/js/translated/company.js:1413 templates/js/translated/part.js:1193 +#: templates/js/translated/company.js:677 +#: templates/js/translated/company.js:725 +#: templates/js/translated/company.js:914 +#: templates/js/translated/company.js:1166 +#: templates/js/translated/company.js:1414 templates/js/translated/part.js:1193 #: templates/js/translated/part.js:1481 templates/js/translated/part.js:1617 -#: templates/js/translated/part.js:2768 templates/js/translated/stock.js:2801 +#: templates/js/translated/part.js:2768 templates/js/translated/stock.js:2802 msgid "Name" msgstr "Nimi" -#: InvenTree/models.py:776 build/models.py:250 -#: build/templates/build/detail.html:24 common/models.py:156 -#: company/models.py:521 company/models.py:827 +#: InvenTree/models.py:775 build/models.py:251 +#: build/templates/build/detail.html:24 common/models.py:159 +#: company/models.py:518 company/models.py:824 #: company/templates/company/company_base.html:77 #: company/templates/company/manufacturer_part.html:75 -#: company/templates/company/supplier_part.html:107 order/models.py:288 -#: order/models.py:1413 part/admin.py:305 part/admin.py:411 part/models.py:1006 -#: part/models.py:3779 part/templates/part/category.html:79 -#: part/templates/part/part_base.html:170 +#: company/templates/company/supplier_part.html:108 order/models.py:295 +#: order/models.py:1430 part/admin.py:305 part/admin.py:411 part/models.py:1067 +#: part/models.py:3830 part/templates/part/category.html:79 +#: part/templates/part/part_base.html:171 #: part/templates/part/part_scheduling.html:12 report/models.py:155 -#: report/models.py:509 report/models.py:535 +#: report/models.py:517 report/models.py:543 #: report/templates/report/inventree_build_order_report.html:117 -#: stock/admin.py:54 stock/models.py:83 stock/templates/stock/location.html:122 +#: stock/admin.py:54 stock/models.py:89 stock/templates/stock/location.html:123 #: templates/InvenTree/settings/notifications.html:19 #: templates/InvenTree/settings/plugin_settings.html:27 #: templates/InvenTree/settings/settings_staff_js.html:170 #: templates/InvenTree/settings/settings_staff_js.html:459 #: templates/js/translated/bom.js:633 templates/js/translated/bom.js:963 -#: templates/js/translated/build.js:2311 templates/js/translated/company.js:519 -#: templates/js/translated/company.js:1330 -#: templates/js/translated/company.js:1641 templates/js/translated/index.js:119 +#: templates/js/translated/build.js:2314 templates/js/translated/company.js:520 +#: templates/js/translated/company.js:1331 +#: templates/js/translated/company.js:1642 templates/js/translated/index.js:119 #: templates/js/translated/order.js:323 templates/js/translated/part.js:1245 #: templates/js/translated/part.js:1490 templates/js/translated/part.js:1628 #: templates/js/translated/part.js:1965 templates/js/translated/part.js:2361 #: templates/js/translated/part.js:2803 templates/js/translated/part.js:2915 #: templates/js/translated/plugin.js:80 -#: templates/js/translated/purchase_order.js:1776 -#: templates/js/translated/purchase_order.js:1919 -#: templates/js/translated/purchase_order.js:2092 +#: templates/js/translated/purchase_order.js:1760 +#: templates/js/translated/purchase_order.js:1903 +#: templates/js/translated/purchase_order.js:2076 #: templates/js/translated/return_order.js:313 -#: templates/js/translated/sales_order.js:838 -#: templates/js/translated/sales_order.js:1848 -#: templates/js/translated/stock.js:1600 templates/js/translated/stock.js:2143 -#: templates/js/translated/stock.js:2832 templates/js/translated/stock.js:2915 +#: templates/js/translated/sales_order.js:797 +#: templates/js/translated/sales_order.js:1829 +#: templates/js/translated/stock.js:1600 templates/js/translated/stock.js:2144 +#: templates/js/translated/stock.js:2833 templates/js/translated/stock.js:2916 msgid "Description" msgstr "Kuvaus" -#: InvenTree/models.py:777 stock/models.py:84 +#: InvenTree/models.py:776 stock/models.py:90 msgid "Description (optional)" msgstr "Kuvaus (valinnainen)" -#: InvenTree/models.py:792 templates/js/translated/part.js:2812 -#: templates/js/translated/stock.js:2841 +#: InvenTree/models.py:791 common/models.py:3546 +#: templates/js/translated/part.js:2812 templates/js/translated/stock.js:2842 msgid "Path" msgstr "Polku" -#: InvenTree/models.py:929 +#: InvenTree/models.py:928 msgid "Markdown notes (optional)" msgstr "" -#: InvenTree/models.py:960 +#: InvenTree/models.py:959 msgid "Barcode Data" msgstr "Viivakoodin Tiedot" -#: InvenTree/models.py:961 +#: InvenTree/models.py:960 msgid "Third party barcode data" msgstr "" -#: InvenTree/models.py:967 +#: InvenTree/models.py:966 msgid "Barcode Hash" msgstr "" -#: InvenTree/models.py:968 +#: InvenTree/models.py:967 msgid "Unique hash of barcode data" msgstr "" -#: InvenTree/models.py:1035 +#: InvenTree/models.py:1034 msgid "Existing barcode found" msgstr "" -#: InvenTree/models.py:1078 +#: InvenTree/models.py:1112 +msgid "Task Failure" +msgstr "" + +#: InvenTree/models.py:1114 +#, python-brace-format +msgid "Background worker task '{instance.func}' failed after {n} attempts" +msgstr "" + +#: InvenTree/models.py:1142 msgid "Server Error" msgstr "Palvelinvirhe" -#: InvenTree/models.py:1079 +#: InvenTree/models.py:1143 msgid "An error has been logged by the server." msgstr "" -#: InvenTree/serializers.py:63 part/models.py:4387 +#: InvenTree/serializers.py:63 part/models.py:4444 msgid "Must be a valid number" msgstr "Täytyy olla kelvollinen luku" -#: InvenTree/serializers.py:100 company/models.py:186 -#: company/templates/company/company_base.html:112 part/models.py:3115 +#: InvenTree/serializers.py:100 company/models.py:183 +#: company/templates/company/company_base.html:112 part/models.py:3166 #: templates/InvenTree/settings/settings_staff_js.html:44 #: templates/currency_data.html:5 msgid "Currency" @@ -532,15 +552,15 @@ msgstr "Valuutta" msgid "Select currency from available options" msgstr "Valitse valuutta käytettävissä olevista vaihtoehdoista" -#: InvenTree/serializers.py:407 templates/InvenTree/settings/user.html:33 +#: InvenTree/serializers.py:405 templates/InvenTree/settings/user.html:33 msgid "Username" msgstr "Käyttäjätunnus" -#: InvenTree/serializers.py:409 templates/InvenTree/settings/user.html:37 +#: InvenTree/serializers.py:408 templates/InvenTree/settings/user.html:37 msgid "First Name" msgstr "Etunimi" -#: InvenTree/serializers.py:409 +#: InvenTree/serializers.py:408 msgid "First name of the user" msgstr "" @@ -552,30 +572,30 @@ msgstr "Sukunimi" msgid "Last name of the user" msgstr "" -#: InvenTree/serializers.py:415 +#: InvenTree/serializers.py:416 msgid "Email address of the user" msgstr "" -#: InvenTree/serializers.py:439 +#: InvenTree/serializers.py:441 msgid "Staff" msgstr "" -#: InvenTree/serializers.py:439 +#: InvenTree/serializers.py:441 msgid "Does this user have staff permissions" msgstr "" -#: InvenTree/serializers.py:442 +#: InvenTree/serializers.py:445 msgid "Superuser" msgstr "" -#: InvenTree/serializers.py:442 +#: InvenTree/serializers.py:445 msgid "Is this user a superuser" msgstr "" -#: InvenTree/serializers.py:445 common/models.py:2707 company/models.py:163 -#: company/models.py:801 machine/models.py:39 part/admin.py:88 -#: part/models.py:1189 plugin/models.py:66 -#: templates/js/translated/company.js:523 +#: InvenTree/serializers.py:449 common/models.py:2771 company/models.py:160 +#: company/models.py:798 machine/models.py:39 part/admin.py:88 +#: part/models.py:1250 plugin/models.py:66 +#: templates/js/translated/company.js:524 #: templates/js/translated/table_filters.js:134 #: templates/js/translated/table_filters.js:226 #: templates/js/translated/table_filters.js:513 @@ -585,230 +605,229 @@ msgstr "" msgid "Active" msgstr "Aktiivinen" -#: InvenTree/serializers.py:445 +#: InvenTree/serializers.py:449 msgid "Is this user account active" msgstr "" -#: InvenTree/serializers.py:463 +#: InvenTree/serializers.py:467 msgid "You do not have permission to change this user role." msgstr "" -#: InvenTree/serializers.py:475 +#: InvenTree/serializers.py:503 msgid "Only superusers can create new users" msgstr "" -#: InvenTree/serializers.py:494 +#: InvenTree/serializers.py:523 msgid "Your account has been created." msgstr "" -#: InvenTree/serializers.py:496 +#: InvenTree/serializers.py:525 msgid "Please use the password reset function to login" msgstr "" -#: InvenTree/serializers.py:503 +#: InvenTree/serializers.py:531 msgid "Welcome to InvenTree" msgstr "" -#: InvenTree/serializers.py:561 +#: InvenTree/serializers.py:594 msgid "Invalid value" msgstr "Virheellinen arvo" -#: InvenTree/serializers.py:581 importer/models.py:63 +#: InvenTree/serializers.py:614 importer/models.py:64 msgid "Data File" msgstr "Datatiedosto" -#: InvenTree/serializers.py:582 +#: InvenTree/serializers.py:615 msgid "Select data file for upload" msgstr "Valitse lähetettävä datatiedosto" -#: InvenTree/serializers.py:599 -msgid "Unsupported file type" -msgstr "Tiedostotyyppiä ei tueta" +#: InvenTree/serializers.py:632 common/files.py:63 +msgid "Unsupported file format" +msgstr "" -#: InvenTree/serializers.py:605 +#: InvenTree/serializers.py:638 msgid "File is too large" msgstr "Tiedosto on liian suuri" -#: InvenTree/serializers.py:626 +#: InvenTree/serializers.py:659 msgid "No columns found in file" msgstr "" -#: InvenTree/serializers.py:629 +#: InvenTree/serializers.py:662 msgid "No data rows found in file" msgstr "" -#: InvenTree/serializers.py:742 +#: InvenTree/serializers.py:774 msgid "No data rows provided" msgstr "Datarivejä ei annettu" -#: InvenTree/serializers.py:745 +#: InvenTree/serializers.py:777 msgid "No data columns supplied" msgstr "Datasarakkeita ei annettu" -#: InvenTree/serializers.py:812 +#: InvenTree/serializers.py:843 #, python-brace-format msgid "Missing required column: '{name}'" msgstr "Vaadittu sarake puuttuu: '{name}'" -#: InvenTree/serializers.py:821 +#: InvenTree/serializers.py:852 #, python-brace-format msgid "Duplicate column: '{col}'" msgstr "Duplikaatti sarake: '{col}'" -#: InvenTree/serializers.py:861 +#: InvenTree/serializers.py:891 msgid "Remote Image" msgstr "" -#: InvenTree/serializers.py:862 +#: InvenTree/serializers.py:892 msgid "URL of remote image file" msgstr "Kuvatiedoston URL" -#: InvenTree/serializers.py:880 +#: InvenTree/serializers.py:910 msgid "Downloading images from remote URL is not enabled" msgstr "Kuvien lataaminen ei ole käytössä" -#: InvenTree/status.py:66 part/serializers.py:1246 -msgid "Background worker check failed" +#: InvenTree/serializers.py:917 +msgid "Failed to download image from remote URL" msgstr "" -#: InvenTree/status.py:70 -msgid "Email backend not configured" -msgstr "" - -#: InvenTree/status.py:73 -msgid "InvenTree system health checks failed" -msgstr "InvenTree järjestelmän terveystarkastukset epäonnistui" - #: InvenTree/templatetags/inventree_extras.py:184 msgid "Unknown database" msgstr "" -#: InvenTree/validators.py:32 InvenTree/validators.py:34 +#: InvenTree/validators.py:32 msgid "Invalid physical unit" msgstr "" -#: InvenTree/validators.py:40 +#: InvenTree/validators.py:38 msgid "Not a valid currency code" msgstr "" -#: InvenTree/validators.py:118 InvenTree/validators.py:134 +#: InvenTree/validators.py:115 InvenTree/validators.py:131 msgid "Overage value must not be negative" msgstr "" -#: InvenTree/validators.py:136 +#: InvenTree/validators.py:133 msgid "Overage must not exceed 100%" msgstr "" -#: InvenTree/validators.py:142 +#: InvenTree/validators.py:139 msgid "Invalid value for overage" msgstr "" -#: InvenTree/views.py:400 templates/InvenTree/settings/user.html:23 +#: InvenTree/views.py:399 templates/InvenTree/settings/user.html:23 msgid "Edit User Information" msgstr "Muokkaa käyttäjätietoja" -#: InvenTree/views.py:412 templates/InvenTree/settings/user.html:20 +#: InvenTree/views.py:411 templates/InvenTree/settings/user.html:20 msgid "Set Password" msgstr "Aseta salasana" -#: InvenTree/views.py:434 +#: InvenTree/views.py:433 msgid "Password fields must match" msgstr "Salasanat eivät täsmää" -#: InvenTree/views.py:442 +#: InvenTree/views.py:441 msgid "Wrong password provided" msgstr "Virheellinen salasana" -#: InvenTree/views.py:650 templates/navbar.html:160 +#: InvenTree/views.py:645 templates/navbar.html:160 msgid "System Information" msgstr "Järjestelmän tiedot" -#: InvenTree/views.py:657 templates/navbar.html:171 +#: InvenTree/views.py:652 templates/navbar.html:171 msgid "About InvenTree" msgstr "Tietoja InvenTree:stä" -#: build/api.py:51 part/api.py:156 stock/api.py:343 -msgid "Cascade" -msgstr "" - -#: build/api.py:64 build/models.py:261 -#: build/templates/build/build_base.html:191 +#: build/api.py:54 build/models.py:262 +#: build/templates/build/build_base.html:192 #: build/templates/build/detail.html:87 msgid "Parent Build" msgstr "" -#: build/api.py:89 order/api.py:92 templates/js/translated/table_filters.js:101 +#: build/api.py:58 build/api.py:625 order/api.py:396 order/api.py:611 +#: order/api.py:990 order/api.py:1187 +#: templates/js/translated/table_filters.js:372 +msgid "Include Variants" +msgstr "" + +#: build/api.py:93 +msgid "Ancestor Build" +msgstr "" + +#: build/api.py:112 order/api.py:90 +#: templates/js/translated/table_filters.js:101 #: templates/js/translated/table_filters.js:549 #: templates/js/translated/table_filters.js:633 #: templates/js/translated/table_filters.js:674 msgid "Assigned to me" msgstr "" -#: build/api.py:106 build/templates/build/build_base.html:205 +#: build/api.py:129 build/templates/build/build_base.html:206 #: build/templates/build/detail.html:115 #: report/templates/report/inventree_build_order_report.html:152 #: templates/js/translated/table_filters.js:552 msgid "Issued By" msgstr "" -#: build/api.py:125 +#: build/api.py:148 msgid "Assigned To" msgstr "" -#: build/api.py:301 +#: build/api.py:310 msgid "Build must be cancelled before it can be deleted" msgstr "" -#: build/api.py:345 build/serializers.py:1288 part/models.py:4265 +#: build/api.py:354 build/serializers.py:1342 part/models.py:4322 #: templates/js/translated/bom.js:997 templates/js/translated/bom.js:1037 -#: templates/js/translated/build.js:2702 +#: templates/js/translated/build.js:2711 #: templates/js/translated/table_filters.js:197 #: templates/js/translated/table_filters.js:586 msgid "Consumable" msgstr "" -#: build/api.py:346 build/serializers.py:1289 part/models.py:4259 +#: build/api.py:355 build/serializers.py:1343 part/models.py:4316 #: part/templates/part/upload_bom.html:58 templates/js/translated/bom.js:1001 -#: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2693 +#: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2702 #: templates/js/translated/table_filters.js:193 #: templates/js/translated/table_filters.js:222 #: templates/js/translated/table_filters.js:590 msgid "Optional" msgstr "" -#: build/api.py:347 common/models.py:1489 part/admin.py:91 part/admin.py:428 -#: part/models.py:1154 part/serializers.py:1575 +#: build/api.py:356 common/models.py:1558 part/admin.py:91 part/admin.py:428 +#: part/models.py:1215 part/serializers.py:1633 #: templates/js/translated/bom.js:1639 #: templates/js/translated/table_filters.js:337 #: templates/js/translated/table_filters.js:729 msgid "Assembly" msgstr "" -#: build/api.py:348 templates/js/translated/table_filters.js:415 +#: build/api.py:357 templates/js/translated/table_filters.js:415 #: templates/js/translated/table_filters.js:582 msgid "Tracked" msgstr "" -#: build/api.py:349 build/serializers.py:1290 part/models.py:1172 +#: build/api.py:358 build/serializers.py:1344 part/models.py:1233 #: templates/js/translated/table_filters.js:146 #: templates/js/translated/table_filters.js:779 msgid "Testable" msgstr "" -#: build/api.py:351 part/admin.py:144 templates/js/translated/build.js:1917 -#: templates/js/translated/build.js:2820 -#: templates/js/translated/sales_order.js:1965 +#: build/api.py:360 order/api.py:779 part/admin.py:144 +#: templates/js/translated/build.js:1920 templates/js/translated/build.js:2838 +#: templates/js/translated/sales_order.js:1946 #: templates/js/translated/table_filters.js:574 msgid "Allocated" msgstr "" -#: build/api.py:359 company/models.py:891 company/serializers.py:395 -#: company/templates/company/supplier_part.html:114 +#: build/api.py:368 company/models.py:888 company/serializers.py:399 +#: company/templates/company/supplier_part.html:115 #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:17 -#: templates/js/translated/bom.js:1162 templates/js/translated/build.js:2752 +#: templates/js/translated/bom.js:1162 templates/js/translated/build.js:2770 #: templates/js/translated/index.js:123 -#: templates/js/translated/model_renderers.js:235 +#: templates/js/translated/model_renderers.js:238 #: templates/js/translated/part.js:695 templates/js/translated/part.js:697 #: templates/js/translated/part.js:702 #: templates/js/translated/table_filters.js:347 @@ -816,16 +835,68 @@ msgstr "" msgid "Available" msgstr "Saatavilla" -#: build/models.py:86 build/templates/build/build_base.html:9 -#: build/templates/build/build_base.html:27 +#: build/api.py:640 build/models.py:268 build/serializers.py:1330 +#: build/templates/build/build_base.html:106 +#: build/templates/build/detail.html:29 company/models.py:1043 order/api.py:775 +#: order/api.py:1003 order/models.py:1519 order/models.py:1674 +#: order/models.py:1675 part/api.py:1495 part/api.py:1802 part/models.py:419 +#: part/models.py:3177 part/models.py:3321 part/models.py:3469 +#: part/models.py:3490 part/models.py:3512 part/models.py:3648 +#: part/models.py:3995 part/models.py:4158 part/models.py:4288 +#: part/models.py:4654 part/serializers.py:1245 part/serializers.py:1898 +#: part/templates/part/part_app_base.html:8 +#: part/templates/part/part_pricing.html:12 +#: part/templates/part/upload_bom.html:52 +#: report/templates/report/inventree_bill_of_materials_report.html:110 +#: report/templates/report/inventree_bill_of_materials_report.html:137 +#: report/templates/report/inventree_build_order_report.html:109 +#: report/templates/report/inventree_purchase_order_report.html:27 +#: report/templates/report/inventree_return_order_report.html:24 +#: report/templates/report/inventree_sales_order_report.html:27 +#: report/templates/report/inventree_sales_order_shipment_report.html:28 +#: report/templates/report/inventree_stock_location_report.html:102 +#: stock/serializers.py:112 stock/serializers.py:160 stock/serializers.py:456 +#: stock/serializers.py:947 templates/InvenTree/search.html:82 +#: templates/email/build_order_completed.html:17 +#: templates/email/build_order_required_stock.html:17 +#: templates/email/low_stock_notification.html:15 +#: templates/email/overdue_build_order.html:16 +#: templates/js/translated/barcode.js:577 templates/js/translated/bom.js:632 +#: templates/js/translated/bom.js:769 templates/js/translated/bom.js:905 +#: templates/js/translated/build.js:1005 templates/js/translated/build.js:1488 +#: templates/js/translated/build.js:1919 templates/js/translated/build.js:2337 +#: templates/js/translated/build.js:2514 templates/js/translated/company.js:349 +#: templates/js/translated/company.js:1117 +#: templates/js/translated/company.js:1272 +#: templates/js/translated/company.js:1560 templates/js/translated/index.js:109 +#: templates/js/translated/part.js:1950 templates/js/translated/part.js:2022 +#: templates/js/translated/part.js:2330 templates/js/translated/pricing.js:369 +#: templates/js/translated/purchase_order.js:734 +#: templates/js/translated/purchase_order.js:1350 +#: templates/js/translated/purchase_order.js:1902 +#: templates/js/translated/purchase_order.js:2061 +#: templates/js/translated/return_order.js:538 +#: templates/js/translated/return_order.js:708 +#: templates/js/translated/sales_order.js:1199 +#: templates/js/translated/sales_order.js:1608 +#: templates/js/translated/sales_order.js:1813 +#: templates/js/translated/stock.js:682 templates/js/translated/stock.js:848 +#: templates/js/translated/stock.js:1065 templates/js/translated/stock.js:2083 +#: templates/js/translated/stock.js:2942 templates/js/translated/stock.js:3175 +#: templates/js/translated/stock.js:3320 +msgid "Part" +msgstr "Osa" + +#: build/api.py:662 build/models.py:88 build/templates/build/build_base.html:10 +#: build/templates/build/build_base.html:28 #: report/templates/report/inventree_build_order_report.html:105 -#: stock/serializers.py:84 templates/email/build_order_completed.html:16 +#: stock/serializers.py:85 templates/email/build_order_completed.html:16 #: templates/email/overdue_build_order.html:15 -#: templates/js/translated/build.js:1145 templates/js/translated/stock.js:2976 +#: templates/js/translated/build.js:1148 templates/js/translated/stock.js:2977 msgid "Build Order" msgstr "" -#: build/models.py:87 build/templates/build/build_base.html:13 +#: build/models.py:89 build/templates/build/build_base.html:14 #: build/templates/build/index.html:8 build/templates/build/index.html:12 #: order/templates/order/sales_order_detail.html:111 #: order/templates/order/so_sidebar.html:13 @@ -836,268 +907,216 @@ msgstr "" msgid "Build Orders" msgstr "" -#: build/models.py:135 +#: build/models.py:136 msgid "Assembly BOM has not been validated" msgstr "" -#: build/models.py:142 +#: build/models.py:143 msgid "Build order cannot be created for an inactive part" msgstr "" -#: build/models.py:149 +#: build/models.py:150 msgid "Build order cannot be created for an unlocked part" msgstr "" -#: build/models.py:163 +#: build/models.py:164 msgid "Invalid choice for parent build" msgstr "" -#: build/models.py:174 order/models.py:239 +#: build/models.py:175 order/models.py:236 msgid "Responsible user or group must be specified" msgstr "" -#: build/models.py:180 +#: build/models.py:181 msgid "Build order part cannot be changed" msgstr "" -#: build/models.py:241 +#: build/models.py:242 msgid "Build Order Reference" msgstr "" -#: build/models.py:242 build/serializers.py:1287 order/models.py:467 -#: order/models.py:978 order/models.py:1373 order/models.py:2135 -#: part/admin.py:414 part/models.py:4280 part/templates/part/upload_bom.html:54 +#: build/models.py:243 build/serializers.py:1341 order/models.py:479 +#: order/models.py:1005 order/models.py:1390 order/models.py:2174 +#: part/admin.py:414 part/models.py:4337 part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_bill_of_materials_report.html:139 #: report/templates/report/inventree_purchase_order_report.html:28 #: report/templates/report/inventree_return_order_report.html:26 #: report/templates/report/inventree_sales_order_report.html:28 #: templates/js/translated/bom.js:770 templates/js/translated/bom.js:973 -#: templates/js/translated/build.js:1011 templates/js/translated/build.js:2685 +#: templates/js/translated/build.js:1014 templates/js/translated/build.js:2694 #: templates/js/translated/order.js:316 templates/js/translated/pricing.js:386 -#: templates/js/translated/purchase_order.js:2135 +#: templates/js/translated/purchase_order.js:2119 #: templates/js/translated/return_order.js:727 -#: templates/js/translated/sales_order.js:1854 +#: templates/js/translated/sales_order.js:1835 msgid "Reference" msgstr "" -#: build/models.py:253 +#: build/models.py:254 msgid "Brief description of the build (optional)" msgstr "" -#: build/models.py:262 +#: build/models.py:263 msgid "BuildOrder to which this build is allocated" msgstr "" -#: build/models.py:267 build/serializers.py:1278 -#: build/templates/build/build_base.html:105 -#: build/templates/build/detail.html:29 company/models.py:1046 order/api.py:767 -#: order/models.py:1503 order/models.py:1658 order/models.py:1659 -#: part/api.py:1509 part/api.py:1813 part/models.py:424 part/models.py:3126 -#: part/models.py:3270 part/models.py:3418 part/models.py:3439 -#: part/models.py:3461 part/models.py:3597 part/models.py:3937 -#: part/models.py:4100 part/models.py:4231 part/models.py:4592 -#: part/serializers.py:1192 part/serializers.py:1836 -#: part/templates/part/part_app_base.html:8 -#: part/templates/part/part_pricing.html:12 -#: part/templates/part/upload_bom.html:52 -#: report/templates/report/inventree_bill_of_materials_report.html:110 -#: report/templates/report/inventree_bill_of_materials_report.html:137 -#: report/templates/report/inventree_build_order_report.html:109 -#: report/templates/report/inventree_purchase_order_report.html:27 -#: report/templates/report/inventree_return_order_report.html:24 -#: report/templates/report/inventree_sales_order_report.html:27 -#: report/templates/report/inventree_stock_location_report.html:102 -#: stock/serializers.py:111 stock/serializers.py:159 stock/serializers.py:446 -#: stock/serializers.py:916 templates/InvenTree/search.html:82 -#: templates/email/build_order_completed.html:17 -#: templates/email/build_order_required_stock.html:17 -#: templates/email/low_stock_notification.html:15 -#: templates/email/overdue_build_order.html:16 -#: templates/js/translated/barcode.js:577 templates/js/translated/bom.js:632 -#: templates/js/translated/bom.js:769 templates/js/translated/bom.js:905 -#: templates/js/translated/build.js:1002 templates/js/translated/build.js:1485 -#: templates/js/translated/build.js:1916 templates/js/translated/build.js:2334 -#: templates/js/translated/build.js:2507 templates/js/translated/company.js:348 -#: templates/js/translated/company.js:1116 -#: templates/js/translated/company.js:1271 -#: templates/js/translated/company.js:1559 templates/js/translated/index.js:109 -#: templates/js/translated/part.js:1950 templates/js/translated/part.js:2022 -#: templates/js/translated/part.js:2330 templates/js/translated/pricing.js:369 -#: templates/js/translated/purchase_order.js:751 -#: templates/js/translated/purchase_order.js:1367 -#: templates/js/translated/purchase_order.js:1918 -#: templates/js/translated/purchase_order.js:2077 -#: templates/js/translated/return_order.js:538 -#: templates/js/translated/return_order.js:708 -#: templates/js/translated/sales_order.js:300 -#: templates/js/translated/sales_order.js:1233 -#: templates/js/translated/sales_order.js:1634 -#: templates/js/translated/sales_order.js:1832 -#: templates/js/translated/stock.js:682 templates/js/translated/stock.js:848 -#: templates/js/translated/stock.js:1065 templates/js/translated/stock.js:2082 -#: templates/js/translated/stock.js:2941 templates/js/translated/stock.js:3174 -#: templates/js/translated/stock.js:3319 -msgid "Part" -msgstr "Osa" - -#: build/models.py:275 +#: build/models.py:274 msgid "Select part to build" msgstr "" -#: build/models.py:280 +#: build/models.py:279 msgid "Sales Order Reference" msgstr "" -#: build/models.py:284 +#: build/models.py:283 msgid "SalesOrder to which this build is allocated" msgstr "" -#: build/models.py:289 build/serializers.py:1048 -#: templates/js/translated/build.js:1904 -#: templates/js/translated/sales_order.js:1221 +#: build/models.py:288 build/serializers.py:1092 +#: templates/js/translated/build.js:1907 +#: templates/js/translated/sales_order.js:1187 msgid "Source Location" msgstr "" -#: build/models.py:293 +#: build/models.py:292 msgid "Select location to take stock from for this build (leave blank to take from any stock location)" msgstr "" -#: build/models.py:298 +#: build/models.py:297 msgid "Destination Location" msgstr "" -#: build/models.py:302 +#: build/models.py:301 msgid "Select location where the completed items will be stored" msgstr "" -#: build/models.py:306 +#: build/models.py:305 msgid "Build Quantity" msgstr "" -#: build/models.py:309 +#: build/models.py:308 msgid "Number of stock items to build" msgstr "" -#: build/models.py:313 +#: build/models.py:312 msgid "Completed items" msgstr "" -#: build/models.py:315 +#: build/models.py:314 msgid "Number of stock items which have been completed" msgstr "" -#: build/models.py:319 +#: build/models.py:318 msgid "Build Status" msgstr "" -#: build/models.py:323 +#: build/models.py:322 msgid "Build status code" msgstr "" -#: build/models.py:332 build/serializers.py:302 build/serializers.py:1198 -#: order/serializers.py:670 stock/models.py:859 stock/serializers.py:76 -#: stock/serializers.py:1562 templates/js/translated/purchase_order.js:1129 +#: build/models.py:331 build/serializers.py:349 build/serializers.py:1243 +#: order/serializers.py:755 stock/models.py:936 stock/serializers.py:77 +#: stock/serializers.py:1593 templates/js/translated/purchase_order.js:1112 #: templates/js/translated/stock.js:1199 msgid "Batch Code" msgstr "" -#: build/models.py:336 build/serializers.py:303 +#: build/models.py:335 build/serializers.py:350 msgid "Batch code for this build output" msgstr "" -#: build/models.py:339 order/models.py:315 order/serializers.py:126 -#: part/models.py:1229 part/templates/part/part_base.html:319 +#: build/models.py:338 order/models.py:322 order/serializers.py:157 +#: part/models.py:1290 part/templates/part/part_base.html:327 #: templates/js/translated/return_order.js:338 -#: templates/js/translated/sales_order.js:863 +#: templates/js/translated/sales_order.js:822 msgid "Creation Date" msgstr "" -#: build/models.py:343 +#: build/models.py:342 msgid "Target completion date" msgstr "" -#: build/models.py:344 +#: build/models.py:343 msgid "Target date for build completion. Build will be overdue after this date." msgstr "" -#: build/models.py:347 order/models.py:526 order/models.py:2180 -#: templates/js/translated/build.js:2419 +#: build/models.py:346 order/models.py:538 order/models.py:2219 +#: templates/js/translated/build.js:2422 msgid "Completion Date" msgstr "" -#: build/models.py:353 +#: build/models.py:352 msgid "completed by" msgstr "" -#: build/models.py:361 templates/js/translated/build.js:2379 +#: build/models.py:360 templates/js/translated/build.js:2382 msgid "Issued by" msgstr "" -#: build/models.py:362 +#: build/models.py:361 msgid "User who issued this build order" msgstr "" -#: build/models.py:370 build/templates/build/build_base.html:212 -#: build/templates/build/detail.html:122 common/models.py:165 order/api.py:142 -#: order/models.py:333 order/templates/order/order_base.html:222 -#: order/templates/order/return_order_base.html:191 -#: order/templates/order/sales_order_base.html:235 part/models.py:1246 -#: part/templates/part/part_base.html:399 +#: build/models.py:369 build/templates/build/build_base.html:213 +#: build/templates/build/detail.html:122 common/models.py:168 order/api.py:140 +#: order/models.py:340 order/templates/order/order_base.html:231 +#: order/templates/order/return_order_base.html:192 +#: order/templates/order/sales_order_base.html:236 part/models.py:1307 +#: part/templates/part/part_base.html:407 #: report/templates/report/inventree_build_order_report.html:158 #: templates/InvenTree/settings/settings_staff_js.html:150 -#: templates/js/translated/build.js:2391 -#: templates/js/translated/purchase_order.js:1833 +#: templates/js/translated/build.js:2394 +#: templates/js/translated/purchase_order.js:1817 #: templates/js/translated/return_order.js:358 #: templates/js/translated/table_filters.js:551 msgid "Responsible" msgstr "" -#: build/models.py:371 +#: build/models.py:370 msgid "User or group responsible for this build order" msgstr "" -#: build/models.py:376 build/templates/build/detail.html:108 +#: build/models.py:375 build/templates/build/detail.html:108 #: company/templates/company/manufacturer_part.html:107 -#: company/templates/company/supplier_part.html:194 -#: order/templates/order/order_base.html:172 -#: order/templates/order/return_order_base.html:148 -#: order/templates/order/sales_order_base.html:187 -#: part/templates/part/part_base.html:392 stock/models.py:855 -#: stock/templates/stock/item_base.html:200 -#: templates/js/translated/company.js:1019 +#: company/templates/company/supplier_part.html:195 +#: order/templates/order/order_base.html:181 +#: order/templates/order/return_order_base.html:149 +#: order/templates/order/sales_order_base.html:188 +#: part/templates/part/part_base.html:400 stock/models.py:932 +#: stock/templates/stock/item_base.html:197 +#: templates/js/translated/company.js:1020 msgid "External Link" msgstr "Ulkoinen linkki" -#: build/models.py:377 common/models.py:3273 part/models.py:1058 -#: stock/models.py:855 +#: build/models.py:376 common/models.py:3334 part/models.py:1119 +#: stock/models.py:932 msgid "Link to external URL" msgstr "Linkki ulkoiseen URLiin" -#: build/models.py:381 +#: build/models.py:380 msgid "Build Priority" msgstr "" -#: build/models.py:384 +#: build/models.py:383 msgid "Priority of this build order" msgstr "" -#: build/models.py:391 common/models.py:135 common/models.py:149 -#: order/admin.py:18 order/api.py:128 order/models.py:297 +#: build/models.py:390 common/models.py:138 common/models.py:152 +#: order/admin.py:18 order/api.py:126 order/models.py:304 #: templates/InvenTree/settings/settings_staff_js.html:146 -#: templates/js/translated/build.js:2316 -#: templates/js/translated/purchase_order.js:1780 +#: templates/js/translated/build.js:2319 +#: templates/js/translated/purchase_order.js:1764 #: templates/js/translated/return_order.js:317 -#: templates/js/translated/sales_order.js:842 +#: templates/js/translated/sales_order.js:801 #: templates/js/translated/table_filters.js:47 #: templates/project_code_data.html:6 msgid "Project Code" msgstr "" -#: build/models.py:392 +#: build/models.py:391 msgid "Project code for this build order" msgstr "" -#: build/models.py:651 build/models.py:778 +#: build/models.py:651 build/models.py:779 msgid "Failed to offload task to complete build allocations" msgstr "" @@ -1110,610 +1129,619 @@ msgstr "" msgid "A build order has been completed" msgstr "" -#: build/models.py:967 build/models.py:1055 +#: build/models.py:858 build/serializers.py:393 +msgid "Serial numbers must be provided for trackable parts" +msgstr "" + +#: build/models.py:969 build/models.py:1058 msgid "No build output specified" msgstr "" -#: build/models.py:970 +#: build/models.py:972 msgid "Build output is already completed" msgstr "" -#: build/models.py:973 +#: build/models.py:975 msgid "Build output does not match Build Order" msgstr "" -#: build/models.py:1059 build/serializers.py:235 build/serializers.py:284 -#: build/serializers.py:915 order/models.py:564 order/serializers.py:499 -#: order/serializers.py:665 part/serializers.py:1569 part/serializers.py:1999 -#: stock/models.py:700 stock/models.py:1520 stock/serializers.py:669 +#: build/models.py:1062 build/serializers.py:282 build/serializers.py:331 +#: build/serializers.py:959 order/models.py:586 order/serializers.py:584 +#: order/serializers.py:750 part/serializers.py:1627 part/serializers.py:2060 +#: stock/models.py:777 stock/models.py:1609 stock/serializers.py:696 msgid "Quantity must be greater than zero" msgstr "" -#: build/models.py:1064 build/serializers.py:240 +#: build/models.py:1067 build/serializers.py:287 msgid "Quantity cannot be greater than the output quantity" msgstr "" -#: build/models.py:1124 build/serializers.py:563 +#: build/models.py:1127 build/serializers.py:607 #, python-brace-format msgid "Build output {serial} has not passed all required tests" msgstr "" -#: build/models.py:1465 +#: build/models.py:1482 msgid "Build Order Line Item" msgstr "" -#: build/models.py:1490 +#: build/models.py:1507 msgid "Build object" msgstr "" -#: build/models.py:1504 build/models.py:1760 build/serializers.py:222 -#: build/serializers.py:269 build/serializers.py:1295 -#: build/templates/build/build_base.html:110 -#: build/templates/build/detail.html:34 common/models.py:2579 -#: order/models.py:1356 order/models.py:2041 order/serializers.py:1460 +#: build/models.py:1521 build/models.py:1787 build/serializers.py:269 +#: build/serializers.py:316 build/serializers.py:1349 +#: build/templates/build/build_base.html:111 +#: build/templates/build/detail.html:34 common/models.py:2643 +#: order/models.py:1373 order/models.py:2074 order/serializers.py:1586 #: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:413 -#: part/forms.py:48 part/models.py:3284 part/models.py:4253 -#: part/templates/part/part_pricing.html:16 +#: part/forms.py:48 part/models.py:3335 part/models.py:4310 +#: part/serializers.py:265 part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_bill_of_materials_report.html:138 #: report/templates/report/inventree_build_order_report.html:113 #: report/templates/report/inventree_purchase_order_report.html:29 #: report/templates/report/inventree_sales_order_report.html:29 +#: report/templates/report/inventree_sales_order_shipment_report.html:47 +#: report/templates/report/inventree_sales_order_shipment_report.html:49 #: report/templates/report/inventree_stock_location_report.html:104 #: report/templates/report/inventree_test_report.html:90 -#: report/templates/report/inventree_test_report.html:169 stock/admin.py:159 -#: stock/serializers.py:127 stock/serializers.py:167 stock/serializers.py:660 -#: stock/templates/stock/item_base.html:287 -#: stock/templates/stock/item_base.html:295 -#: stock/templates/stock/item_base.html:342 +#: report/templates/report/inventree_test_report.html:169 stock/admin.py:160 +#: stock/serializers.py:128 stock/serializers.py:168 stock/serializers.py:687 +#: stock/templates/stock/item_base.html:284 +#: stock/templates/stock/item_base.html:292 +#: stock/templates/stock/item_base.html:339 #: templates/email/build_order_completed.html:18 #: templates/js/translated/barcode.js:579 templates/js/translated/bom.js:771 -#: templates/js/translated/bom.js:981 templates/js/translated/build.js:522 -#: templates/js/translated/build.js:737 templates/js/translated/build.js:1542 -#: templates/js/translated/build.js:1919 templates/js/translated/build.js:2529 -#: templates/js/translated/company.js:1818 -#: templates/js/translated/model_renderers.js:237 +#: templates/js/translated/bom.js:981 templates/js/translated/build.js:525 +#: templates/js/translated/build.js:740 templates/js/translated/build.js:1545 +#: templates/js/translated/build.js:1922 templates/js/translated/build.js:2536 +#: templates/js/translated/company.js:1819 +#: templates/js/translated/model_renderers.js:240 #: templates/js/translated/order.js:329 templates/js/translated/part.js:968 -#: templates/js/translated/part.js:1818 templates/js/translated/part.js:3360 +#: templates/js/translated/part.js:1818 templates/js/translated/part.js:3376 #: templates/js/translated/pricing.js:381 #: templates/js/translated/pricing.js:474 #: templates/js/translated/pricing.js:522 #: templates/js/translated/pricing.js:616 -#: templates/js/translated/purchase_order.js:754 -#: templates/js/translated/purchase_order.js:1922 -#: templates/js/translated/purchase_order.js:2141 -#: templates/js/translated/sales_order.js:317 -#: templates/js/translated/sales_order.js:1235 -#: templates/js/translated/sales_order.js:1554 -#: templates/js/translated/sales_order.js:1644 -#: templates/js/translated/sales_order.js:1734 -#: templates/js/translated/sales_order.js:1860 +#: templates/js/translated/purchase_order.js:737 +#: templates/js/translated/purchase_order.js:1906 +#: templates/js/translated/purchase_order.js:2125 +#: templates/js/translated/sales_order.js:1201 +#: templates/js/translated/sales_order.js:1520 +#: templates/js/translated/sales_order.js:1625 +#: templates/js/translated/sales_order.js:1715 +#: templates/js/translated/sales_order.js:1841 #: templates/js/translated/stock.js:570 templates/js/translated/stock.js:708 -#: templates/js/translated/stock.js:879 templates/js/translated/stock.js:3105 -#: templates/js/translated/stock.js:3188 +#: templates/js/translated/stock.js:879 templates/js/translated/stock.js:3106 +#: templates/js/translated/stock.js:3189 msgid "Quantity" msgstr "Määrä" -#: build/models.py:1505 +#: build/models.py:1522 msgid "Required quantity for build order" msgstr "" -#: build/models.py:1585 +#: build/models.py:1602 msgid "Build item must specify a build output, as master part is marked as trackable" msgstr "" -#: build/models.py:1594 +#: build/models.py:1611 #, python-brace-format msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgstr "" -#: build/models.py:1604 order/models.py:1992 +#: build/models.py:1628 order/models.py:2025 msgid "Stock item is over-allocated" msgstr "" -#: build/models.py:1610 order/models.py:1995 +#: build/models.py:1634 order/models.py:2028 msgid "Allocation quantity must be greater than zero" msgstr "" -#: build/models.py:1616 +#: build/models.py:1640 msgid "Quantity must be 1 for serialized stock" msgstr "" -#: build/models.py:1675 +#: build/models.py:1699 msgid "Selected stock item does not match BOM line" msgstr "" -#: build/models.py:1747 build/serializers.py:895 order/serializers.py:1297 -#: order/serializers.py:1318 stock/models.py:376 stock/serializers.py:93 -#: stock/serializers.py:763 stock/serializers.py:1281 stock/serializers.py:1393 -#: stock/templates/stock/item_base.html:10 -#: stock/templates/stock/item_base.html:23 -#: stock/templates/stock/item_base.html:194 -#: templates/js/translated/build.js:1918 -#: templates/js/translated/sales_order.js:301 -#: templates/js/translated/sales_order.js:1234 -#: templates/js/translated/sales_order.js:1535 -#: templates/js/translated/sales_order.js:1540 -#: templates/js/translated/sales_order.js:1641 -#: templates/js/translated/sales_order.js:1728 +#: build/models.py:1774 build/serializers.py:939 order/serializers.py:1423 +#: order/serializers.py:1444 +#: report/templates/report/inventree_sales_order_shipment_report.html:29 +#: stock/models.py:382 stock/serializers.py:94 stock/serializers.py:794 +#: stock/serializers.py:1312 stock/serializers.py:1424 +#: stock/templates/stock/item_base.html:11 +#: stock/templates/stock/item_base.html:24 +#: stock/templates/stock/item_base.html:191 +#: templates/js/translated/build.js:1921 +#: templates/js/translated/sales_order.js:1200 +#: templates/js/translated/sales_order.js:1501 +#: templates/js/translated/sales_order.js:1506 +#: templates/js/translated/sales_order.js:1622 +#: templates/js/translated/sales_order.js:1709 #: templates/js/translated/stock.js:683 templates/js/translated/stock.js:849 -#: templates/js/translated/stock.js:3061 +#: templates/js/translated/stock.js:3062 msgid "Stock Item" msgstr "Varastotuote" -#: build/models.py:1748 +#: build/models.py:1775 msgid "Source stock item" msgstr "" -#: build/models.py:1761 +#: build/models.py:1788 msgid "Stock quantity to allocate to build" msgstr "" -#: build/models.py:1769 +#: build/models.py:1796 msgid "Install into" msgstr "" -#: build/models.py:1770 +#: build/models.py:1797 msgid "Destination stock item" msgstr "" -#: build/serializers.py:91 +#: build/serializers.py:108 msgid "Build Level" msgstr "" -#: build/serializers.py:99 build/serializers.py:1190 build/serializers.py:1279 -#: part/admin.py:41 part/admin.py:408 part/models.py:4102 part/stocktake.py:219 -#: stock/admin.py:156 +#: build/serializers.py:116 build/serializers.py:1235 build/serializers.py:1331 +#: part/admin.py:41 part/admin.py:408 part/models.py:4160 part/stocktake.py:219 +#: stock/admin.py:157 msgid "Part Name" msgstr "" -#: build/serializers.py:111 +#: build/serializers.py:128 msgid "Project Code Label" msgstr "" -#: build/serializers.py:172 build/serializers.py:924 -#: templates/js/translated/build.js:1042 templates/js/translated/build.js:1495 +#: build/serializers.py:134 +msgid "Create Child Builds" +msgstr "" + +#: build/serializers.py:135 +msgid "Automatically generate child build orders" +msgstr "" + +#: build/serializers.py:219 build/serializers.py:968 +#: templates/js/translated/build.js:1045 templates/js/translated/build.js:1498 msgid "Build Output" msgstr "" -#: build/serializers.py:184 +#: build/serializers.py:231 msgid "Build output does not match the parent build" msgstr "" -#: build/serializers.py:188 +#: build/serializers.py:235 msgid "Output part does not match BuildOrder part" msgstr "" -#: build/serializers.py:192 +#: build/serializers.py:239 msgid "This build output has already been completed" msgstr "" -#: build/serializers.py:203 +#: build/serializers.py:250 msgid "This build output is not fully allocated" msgstr "" -#: build/serializers.py:223 build/serializers.py:270 +#: build/serializers.py:270 build/serializers.py:317 msgid "Enter quantity for build output" msgstr "" -#: build/serializers.py:291 +#: build/serializers.py:338 msgid "Integer quantity required for trackable parts" msgstr "" -#: build/serializers.py:294 +#: build/serializers.py:341 msgid "Integer quantity required, as the bill of materials contains trackable parts" msgstr "" -#: build/serializers.py:309 order/serializers.py:678 order/serializers.py:1464 -#: stock/serializers.py:680 templates/js/translated/purchase_order.js:1154 +#: build/serializers.py:356 order/serializers.py:763 order/serializers.py:1590 +#: stock/serializers.py:707 templates/js/translated/purchase_order.js:1137 #: templates/js/translated/stock.js:373 templates/js/translated/stock.js:571 msgid "Serial Numbers" msgstr "Sarjanumerot" -#: build/serializers.py:310 +#: build/serializers.py:357 msgid "Enter serial numbers for build outputs" msgstr "" -#: build/serializers.py:315 build/serializers.py:456 build/serializers.py:528 -#: order/serializers.py:654 order/serializers.py:778 order/serializers.py:1781 -#: part/serializers.py:1212 stock/serializers.py:102 stock/serializers.py:691 -#: stock/serializers.py:851 stock/serializers.py:977 stock/serializers.py:1425 -#: stock/serializers.py:1681 stock/templates/stock/item_base.html:394 +#: build/serializers.py:362 build/serializers.py:500 build/serializers.py:572 +#: order/serializers.py:739 order/serializers.py:880 order/serializers.py:1933 +#: part/serializers.py:1265 stock/serializers.py:103 stock/serializers.py:718 +#: stock/serializers.py:882 stock/serializers.py:1008 stock/serializers.py:1456 +#: stock/serializers.py:1712 stock/templates/stock/item_base.html:391 #: templates/js/translated/barcode.js:578 -#: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1032 -#: templates/js/translated/build.js:1174 templates/js/translated/build.js:2544 -#: templates/js/translated/purchase_order.js:1210 -#: templates/js/translated/purchase_order.js:1320 -#: templates/js/translated/sales_order.js:1547 -#: templates/js/translated/sales_order.js:1655 -#: templates/js/translated/sales_order.js:1663 -#: templates/js/translated/sales_order.js:1742 +#: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1035 +#: templates/js/translated/build.js:1177 templates/js/translated/build.js:2551 +#: templates/js/translated/purchase_order.js:1193 +#: templates/js/translated/purchase_order.js:1303 +#: templates/js/translated/sales_order.js:1513 +#: templates/js/translated/sales_order.js:1636 +#: templates/js/translated/sales_order.js:1644 +#: templates/js/translated/sales_order.js:1723 #: templates/js/translated/stock.js:684 templates/js/translated/stock.js:850 -#: templates/js/translated/stock.js:1067 templates/js/translated/stock.js:2286 -#: templates/js/translated/stock.js:2955 +#: templates/js/translated/stock.js:1067 templates/js/translated/stock.js:2287 +#: templates/js/translated/stock.js:2956 msgid "Location" msgstr "Sijainti" -#: build/serializers.py:316 +#: build/serializers.py:363 msgid "Stock location for build output" msgstr "" -#: build/serializers.py:330 +#: build/serializers.py:377 msgid "Auto Allocate Serial Numbers" msgstr "" -#: build/serializers.py:331 +#: build/serializers.py:378 msgid "Automatically allocate required items with matching serial numbers" msgstr "" -#: build/serializers.py:346 -msgid "Serial numbers must be provided for trackable parts" -msgstr "" - -#: build/serializers.py:371 stock/api.py:1031 +#: build/serializers.py:415 order/serializers.py:858 stock/api.py:1017 +#: stock/models.py:1632 msgid "The following serial numbers already exist or are invalid" msgstr "" -#: build/serializers.py:418 build/serializers.py:480 build/serializers.py:569 +#: build/serializers.py:462 build/serializers.py:524 build/serializers.py:613 msgid "A list of build outputs must be provided" msgstr "" -#: build/serializers.py:457 +#: build/serializers.py:501 msgid "Stock location for scrapped outputs" msgstr "" -#: build/serializers.py:463 +#: build/serializers.py:507 msgid "Discard Allocations" msgstr "" -#: build/serializers.py:464 +#: build/serializers.py:508 msgid "Discard any stock allocations for scrapped outputs" msgstr "" -#: build/serializers.py:469 +#: build/serializers.py:513 msgid "Reason for scrapping build output(s)" msgstr "" -#: build/serializers.py:529 +#: build/serializers.py:573 msgid "Location for completed build outputs" msgstr "" -#: build/serializers.py:535 build/templates/build/build_base.html:159 -#: build/templates/build/detail.html:62 order/models.py:476 -#: order/models.py:1002 order/models.py:2159 order/serializers.py:686 -#: stock/admin.py:164 stock/serializers.py:1028 stock/serializers.py:1569 -#: stock/templates/stock/item_base.html:427 -#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2363 -#: templates/js/translated/purchase_order.js:1371 -#: templates/js/translated/purchase_order.js:1792 +#: build/serializers.py:579 build/templates/build/build_base.html:160 +#: build/templates/build/detail.html:62 order/models.py:488 +#: order/models.py:1029 order/models.py:2198 order/serializers.py:771 +#: stock/admin.py:165 stock/serializers.py:581 stock/serializers.py:1059 +#: stock/serializers.py:1600 stock/templates/stock/item_base.html:424 +#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2366 +#: templates/js/translated/purchase_order.js:1354 +#: templates/js/translated/purchase_order.js:1776 #: templates/js/translated/return_order.js:330 -#: templates/js/translated/sales_order.js:855 -#: templates/js/translated/stock.js:2261 templates/js/translated/stock.js:3079 -#: templates/js/translated/stock.js:3204 +#: templates/js/translated/sales_order.js:814 +#: templates/js/translated/stock.js:2262 templates/js/translated/stock.js:3080 +#: templates/js/translated/stock.js:3205 msgid "Status" msgstr "Tila" -#: build/serializers.py:541 +#: build/serializers.py:585 msgid "Accept Incomplete Allocation" msgstr "" -#: build/serializers.py:542 +#: build/serializers.py:586 msgid "Complete outputs if stock has not been fully allocated" msgstr "" -#: build/serializers.py:654 +#: build/serializers.py:698 msgid "Consume Allocated Stock" msgstr "" -#: build/serializers.py:655 +#: build/serializers.py:699 msgid "Consume any stock which has already been allocated to this build" msgstr "" -#: build/serializers.py:661 +#: build/serializers.py:705 msgid "Remove Incomplete Outputs" msgstr "" -#: build/serializers.py:662 +#: build/serializers.py:706 msgid "Delete any build outputs which have not been completed" msgstr "" -#: build/serializers.py:689 +#: build/serializers.py:733 msgid "Not permitted" msgstr "Ei sallittu" -#: build/serializers.py:690 +#: build/serializers.py:734 msgid "Accept as consumed by this build order" msgstr "" -#: build/serializers.py:691 +#: build/serializers.py:735 msgid "Deallocate before completing this build order" msgstr "" -#: build/serializers.py:721 +#: build/serializers.py:765 msgid "Overallocated Stock" msgstr "" -#: build/serializers.py:723 +#: build/serializers.py:767 msgid "How do you want to handle extra stock items assigned to the build order" msgstr "" -#: build/serializers.py:733 +#: build/serializers.py:777 msgid "Some stock items have been overallocated" msgstr "" -#: build/serializers.py:738 +#: build/serializers.py:782 msgid "Accept Unallocated" msgstr "" -#: build/serializers.py:739 +#: build/serializers.py:783 msgid "Accept that stock items have not been fully allocated to this build order" msgstr "" -#: build/serializers.py:749 templates/js/translated/build.js:316 +#: build/serializers.py:793 templates/js/translated/build.js:319 msgid "Required stock has not been fully allocated" msgstr "" -#: build/serializers.py:754 order/serializers.py:345 order/serializers.py:1365 +#: build/serializers.py:798 order/serializers.py:430 order/serializers.py:1491 msgid "Accept Incomplete" msgstr "" -#: build/serializers.py:755 +#: build/serializers.py:799 msgid "Accept that the required number of build outputs have not been completed" msgstr "" -#: build/serializers.py:765 templates/js/translated/build.js:320 +#: build/serializers.py:809 templates/js/translated/build.js:323 msgid "Required build quantity has not been completed" msgstr "" -#: build/serializers.py:774 +#: build/serializers.py:818 msgid "Build order has open child build orders" msgstr "" -#: build/serializers.py:777 +#: build/serializers.py:821 msgid "Build order must be in production state" msgstr "" -#: build/serializers.py:780 templates/js/translated/build.js:304 +#: build/serializers.py:824 templates/js/translated/build.js:307 msgid "Build order has incomplete outputs" msgstr "" -#: build/serializers.py:818 +#: build/serializers.py:862 msgid "Build Line" msgstr "" -#: build/serializers.py:828 +#: build/serializers.py:872 msgid "Build output" msgstr "" -#: build/serializers.py:836 +#: build/serializers.py:880 msgid "Build output must point to the same build" msgstr "" -#: build/serializers.py:872 +#: build/serializers.py:916 msgid "Build Line Item" msgstr "" -#: build/serializers.py:886 +#: build/serializers.py:930 msgid "bom_item.part must point to the same part as the build order" msgstr "" -#: build/serializers.py:901 stock/serializers.py:1294 +#: build/serializers.py:945 stock/serializers.py:1325 msgid "Item must be in stock" msgstr "" -#: build/serializers.py:949 order/serializers.py:1351 +#: build/serializers.py:993 order/serializers.py:1477 #, python-brace-format msgid "Available quantity ({q}) exceeded" msgstr "" -#: build/serializers.py:955 +#: build/serializers.py:999 msgid "Build output must be specified for allocation of tracked parts" msgstr "" -#: build/serializers.py:962 +#: build/serializers.py:1006 msgid "Build output cannot be specified for allocation of untracked parts" msgstr "" -#: build/serializers.py:986 order/serializers.py:1610 +#: build/serializers.py:1030 order/serializers.py:1750 msgid "Allocation items must be provided" msgstr "" -#: build/serializers.py:1049 +#: build/serializers.py:1093 msgid "Stock location where parts are to be sourced (leave blank to take from any location)" msgstr "" -#: build/serializers.py:1057 +#: build/serializers.py:1101 msgid "Exclude Location" msgstr "" -#: build/serializers.py:1058 +#: build/serializers.py:1102 msgid "Exclude stock items from this selected location" msgstr "" -#: build/serializers.py:1063 +#: build/serializers.py:1107 msgid "Interchangeable Stock" msgstr "" -#: build/serializers.py:1064 +#: build/serializers.py:1108 msgid "Stock items in multiple locations can be used interchangeably" msgstr "" -#: build/serializers.py:1069 +#: build/serializers.py:1113 msgid "Substitute Stock" msgstr "" -#: build/serializers.py:1070 +#: build/serializers.py:1114 msgid "Allow allocation of substitute parts" msgstr "" -#: build/serializers.py:1075 +#: build/serializers.py:1119 msgid "Optional Items" msgstr "" -#: build/serializers.py:1076 +#: build/serializers.py:1120 msgid "Allocate optional BOM items to build order" msgstr "" -#: build/serializers.py:1098 +#: build/serializers.py:1143 msgid "Failed to start auto-allocation task" msgstr "" -#: build/serializers.py:1181 +#: build/serializers.py:1226 stock/serializers.py:585 msgid "Supplier Part Number" msgstr "" -#: build/serializers.py:1182 company/models.py:506 +#: build/serializers.py:1227 company/models.py:503 stock/serializers.py:591 msgid "Manufacturer Part Number" msgstr "Valmistajan osanumero" -#: build/serializers.py:1183 stock/admin.py:53 stock/admin.py:175 -#: stock/serializers.py:457 +#: build/serializers.py:1228 stock/admin.py:53 stock/admin.py:176 +#: stock/serializers.py:467 msgid "Location Name" msgstr "" -#: build/serializers.py:1184 +#: build/serializers.py:1229 build/serializers.py:1327 msgid "Build Reference" msgstr "" -#: build/serializers.py:1185 +#: build/serializers.py:1230 msgid "BOM Reference" msgstr "" -#: build/serializers.py:1186 company/models.py:852 -#: company/templates/company/supplier_part.html:160 order/serializers.py:690 -#: stock/admin.py:228 stock/models.py:818 stock/serializers.py:1579 -#: stock/templates/stock/item_base.html:240 -#: templates/js/translated/company.js:1646 -#: templates/js/translated/purchase_order.js:1169 -#: templates/js/translated/purchase_order.js:1332 +#: build/serializers.py:1231 company/models.py:849 +#: company/templates/company/supplier_part.html:161 order/serializers.py:775 +#: stock/admin.py:229 stock/models.py:895 stock/serializers.py:1610 +#: stock/templates/stock/item_base.html:237 +#: templates/js/translated/company.js:1647 +#: templates/js/translated/purchase_order.js:1152 +#: templates/js/translated/purchase_order.js:1315 #: templates/js/translated/stock.js:1214 templates/js/translated/stock.js:1246 -#: templates/js/translated/stock.js:2509 +#: templates/js/translated/stock.js:2510 msgid "Packaging" msgstr "" -#: build/serializers.py:1189 part/admin.py:39 part/admin.py:398 -#: part/models.py:4101 part/stocktake.py:218 stock/admin.py:152 +#: build/serializers.py:1234 part/admin.py:39 part/admin.py:398 +#: part/models.py:4159 part/stocktake.py:218 stock/admin.py:153 msgid "Part ID" msgstr "" -#: build/serializers.py:1191 build/serializers.py:1280 part/admin.py:402 -#: part/models.py:4103 +#: build/serializers.py:1236 build/serializers.py:1332 part/admin.py:402 +#: part/models.py:4161 msgid "Part IPN" msgstr "" -#: build/serializers.py:1192 build/serializers.py:1282 part/admin.py:45 +#: build/serializers.py:1237 build/serializers.py:1334 part/admin.py:45 #: part/stocktake.py:220 msgid "Part Description" msgstr "" -#: build/serializers.py:1195 +#: build/serializers.py:1240 msgid "BOM Part ID" msgstr "" -#: build/serializers.py:1196 +#: build/serializers.py:1241 msgid "BOM Part Name" msgstr "" -#: build/serializers.py:1199 +#: build/serializers.py:1244 #: report/templates/report/inventree_return_order_report.html:25 -#: report/templates/report/inventree_test_report.html:88 stock/models.py:845 -#: stock/serializers.py:151 stock/templates/stock/item_base.html:311 -#: templates/js/translated/build.js:520 templates/js/translated/build.js:1540 -#: templates/js/translated/build.js:2527 -#: templates/js/translated/model_renderers.js:231 +#: report/templates/report/inventree_sales_order_shipment_report.html:45 +#: report/templates/report/inventree_test_report.html:88 stock/models.py:922 +#: stock/serializers.py:152 stock/templates/stock/item_base.html:308 +#: templates/js/translated/build.js:523 templates/js/translated/build.js:1543 +#: templates/js/translated/build.js:2534 +#: templates/js/translated/model_renderers.js:234 #: templates/js/translated/return_order.js:539 #: templates/js/translated/return_order.js:722 -#: templates/js/translated/sales_order.js:315 -#: templates/js/translated/sales_order.js:1647 -#: templates/js/translated/sales_order.js:1732 +#: templates/js/translated/sales_order.js:1628 +#: templates/js/translated/sales_order.js:1713 #: templates/js/translated/stock.js:602 msgid "Serial Number" msgstr "Sarjanumero" -#: build/serializers.py:1212 stock/serializers.py:593 -#: templates/js/translated/build.js:1017 templates/js/translated/build.js:1164 -#: templates/js/translated/build.js:2516 +#: build/serializers.py:1257 stock/serializers.py:620 +#: templates/js/translated/build.js:1020 templates/js/translated/build.js:1167 +#: templates/js/translated/build.js:2523 msgid "Allocated Quantity" msgstr "" -#: build/serializers.py:1213 stock/templates/stock/item_base.html:340 +#: build/serializers.py:1258 stock/templates/stock/item_base.html:337 msgid "Available Quantity" msgstr "" -#: build/serializers.py:1283 +#: build/serializers.py:1335 msgid "Part Category ID" msgstr "" -#: build/serializers.py:1284 +#: build/serializers.py:1336 msgid "Part Category Name" msgstr "" -#: build/serializers.py:1291 common/models.py:1513 part/admin.py:113 -#: part/models.py:1166 templates/js/translated/table_filters.js:150 +#: build/serializers.py:1345 common/models.py:1582 part/admin.py:113 +#: part/models.py:1227 templates/js/translated/build.js:2738 +#: templates/js/translated/table_filters.js:150 #: templates/js/translated/table_filters.js:230 #: templates/js/translated/table_filters.js:783 msgid "Trackable" msgstr "Seurattavissa" -#: build/serializers.py:1292 +#: build/serializers.py:1346 msgid "Inherited" msgstr "" -#: build/serializers.py:1293 part/models.py:4313 +#: build/serializers.py:1347 part/models.py:4370 #: part/templates/part/upload_bom.html:56 templates/js/translated/bom.js:1046 -#: templates/js/translated/build.js:2711 +#: templates/js/translated/build.js:2720 msgid "Allow Variants" msgstr "" -#: build/serializers.py:1297 part/models.py:4110 part/models.py:4584 +#: build/serializers.py:1351 part/models.py:4168 part/models.py:4646 #: stock/api.py:794 msgid "BOM Item" msgstr "" -#: build/serializers.py:1306 build/templates/build/detail.html:236 +#: build/serializers.py:1370 build/templates/build/detail.html:236 #: build/templates/build/sidebar.html:16 templates/js/translated/index.js:130 msgid "Allocated Stock" msgstr "" -#: build/serializers.py:1311 order/serializers.py:1175 part/admin.py:132 -#: part/bom.py:181 part/serializers.py:899 part/serializers.py:1602 -#: part/templates/part/part_base.html:210 templates/js/translated/bom.js:1208 -#: templates/js/translated/build.js:2804 templates/js/translated/part.js:712 +#: build/serializers.py:1375 order/serializers.py:1209 part/admin.py:132 +#: part/bom.py:186 part/serializers.py:951 part/serializers.py:1660 +#: part/templates/part/part_base.html:211 templates/js/translated/bom.js:1208 +#: templates/js/translated/build.js:2822 templates/js/translated/part.js:712 #: templates/js/translated/part.js:2155 #: templates/js/translated/table_filters.js:177 msgid "On Order" msgstr "" -#: build/serializers.py:1316 order/serializers.py:1176 part/serializers.py:1604 -#: templates/js/translated/build.js:2808 +#: build/serializers.py:1380 order/serializers.py:1210 part/serializers.py:1662 +#: templates/js/translated/build.js:2826 #: templates/js/translated/table_filters.js:367 msgid "In Production" msgstr "" -#: build/serializers.py:1321 part/bom.py:180 part/serializers.py:1629 -#: part/templates/part/part_base.html:192 -#: templates/js/translated/sales_order.js:1929 -msgid "Available Stock" -msgstr "" - -#: build/serializers.py:1325 -msgid "Available Substitute Stock" -msgstr "" - -#: build/serializers.py:1326 -msgid "Available Variant Stock" -msgstr "" - -#: build/serializers.py:1327 -msgid "Total Available Stock" -msgstr "" - -#: build/serializers.py:1328 part/serializers.py:906 +#: build/serializers.py:1384 part/serializers.py:958 msgid "External Stock" msgstr "" -#: build/status_codes.py:11 generic/states/tests.py:17 order/status_codes.py:12 -#: order/status_codes.py:42 order/status_codes.py:74 order/status_codes.py:98 +#: build/serializers.py:1385 part/bom.py:185 part/serializers.py:1687 +#: part/templates/part/part_base.html:193 +#: templates/js/translated/sales_order.js:1910 +msgid "Available Stock" +msgstr "" + +#: build/serializers.py:1386 +msgid "Available Substitute Stock" +msgstr "" + +#: build/serializers.py:1387 +msgid "Available Variant Stock" +msgstr "" + +#: build/status_codes.py:11 generic/states/tests.py:21 +#: generic/states/tests.py:131 order/status_codes.py:12 +#: order/status_codes.py:44 order/status_codes.py:76 order/status_codes.py:102 #: templates/js/translated/table_filters.js:601 msgid "Pending" msgstr "Odottaa" @@ -1722,21 +1750,21 @@ msgstr "Odottaa" msgid "Production" msgstr "" -#: build/status_codes.py:13 order/status_codes.py:14 order/status_codes.py:49 -#: order/status_codes.py:79 +#: build/status_codes.py:13 order/status_codes.py:14 order/status_codes.py:51 +#: order/status_codes.py:81 msgid "On Hold" msgstr "" -#: build/status_codes.py:14 order/status_codes.py:16 order/status_codes.py:51 -#: order/status_codes.py:82 +#: build/status_codes.py:14 order/status_codes.py:16 order/status_codes.py:53 +#: order/status_codes.py:84 msgid "Cancelled" msgstr "Peruttu" -#: build/status_codes.py:15 generic/states/tests.py:19 importer/models.py:509 -#: importer/status_codes.py:19 order/status_codes.py:15 -#: order/status_codes.py:50 order/status_codes.py:81 -#: order/templates/order/order_base.html:163 -#: order/templates/order/sales_order_base.html:168 report/models.py:443 +#: build/status_codes.py:15 generic/states/tests.py:23 importer/models.py:518 +#: importer/status_codes.py:27 order/status_codes.py:15 +#: order/status_codes.py:52 order/status_codes.py:83 +#: order/templates/order/order_base.html:172 +#: order/templates/order/sales_order_base.html:169 report/models.py:451 msgid "Complete" msgstr "Valmis" @@ -1744,165 +1772,162 @@ msgstr "Valmis" msgid "Stock required for build order" msgstr "" -#: build/tasks.py:201 +#: build/tasks.py:260 msgid "Overdue Build Order" msgstr "" -#: build/tasks.py:206 +#: build/tasks.py:265 #, python-brace-format msgid "Build order {bo} is now overdue" msgstr "" -#: build/templates/build/build_base.html:18 +#: build/templates/build/build_base.html:19 msgid "Part thumbnail" msgstr "" -#: build/templates/build/build_base.html:38 -#: company/templates/company/supplier_part.html:35 -#: order/templates/order/order_base.html:29 -#: order/templates/order/return_order_base.html:38 -#: order/templates/order/sales_order_base.html:38 -#: part/templates/part/part_base.html:41 -#: stock/templates/stock/item_base.html:40 -#: stock/templates/stock/location.html:52 +#: build/templates/build/build_base.html:39 +#: company/templates/company/supplier_part.html:36 +#: order/templates/order/order_base.html:30 +#: order/templates/order/return_order_base.html:39 +#: order/templates/order/sales_order_base.html:39 +#: part/templates/part/part_base.html:42 +#: stock/templates/stock/item_base.html:41 +#: stock/templates/stock/location.html:53 #: templates/js/translated/filters.js:338 msgid "Barcode actions" msgstr "" -#: build/templates/build/build_base.html:42 -#: company/templates/company/supplier_part.html:39 -#: order/templates/order/order_base.html:33 -#: order/templates/order/return_order_base.html:42 -#: order/templates/order/sales_order_base.html:42 -#: part/templates/part/part_base.html:44 -#: stock/templates/stock/item_base.html:44 -#: stock/templates/stock/location.html:54 templates/qr_button.html:1 +#: build/templates/build/build_base.html:43 +#: company/templates/company/supplier_part.html:40 +#: order/templates/order/order_base.html:34 +#: order/templates/order/return_order_base.html:43 +#: order/templates/order/sales_order_base.html:43 +#: part/templates/part/part_base.html:45 +#: stock/templates/stock/item_base.html:45 +#: stock/templates/stock/location.html:55 templates/qr_button.html:1 msgid "Show QR Code" msgstr "" -#: build/templates/build/build_base.html:45 -#: company/templates/company/supplier_part.html:41 -#: order/templates/order/order_base.html:36 -#: order/templates/order/return_order_base.html:45 -#: order/templates/order/sales_order_base.html:45 -#: part/templates/part/part_base.html:47 -#: stock/templates/stock/item_base.html:47 -#: stock/templates/stock/location.html:56 +#: build/templates/build/build_base.html:46 +#: company/templates/company/supplier_part.html:42 +#: order/templates/order/order_base.html:37 +#: order/templates/order/return_order_base.html:46 +#: order/templates/order/sales_order_base.html:46 +#: part/templates/part/part_base.html:48 +#: stock/templates/stock/item_base.html:48 +#: stock/templates/stock/location.html:57 #: templates/js/translated/barcode.js:527 #: templates/js/translated/barcode.js:532 msgid "Unlink Barcode" msgstr "Poista viivakoodin linkitys" -#: build/templates/build/build_base.html:47 -#: company/templates/company/supplier_part.html:43 -#: order/templates/order/order_base.html:38 -#: order/templates/order/return_order_base.html:47 -#: order/templates/order/sales_order_base.html:47 -#: part/templates/part/part_base.html:49 -#: stock/templates/stock/item_base.html:49 -#: stock/templates/stock/location.html:58 +#: build/templates/build/build_base.html:48 +#: company/templates/company/supplier_part.html:44 +#: order/templates/order/order_base.html:39 +#: order/templates/order/return_order_base.html:48 +#: order/templates/order/sales_order_base.html:48 +#: part/templates/part/part_base.html:50 +#: stock/templates/stock/item_base.html:50 +#: stock/templates/stock/location.html:59 msgid "Link Barcode" msgstr "Linkitä viivakoodi" -#: build/templates/build/build_base.html:56 -#: order/templates/order/order_base.html:46 -#: order/templates/order/return_order_base.html:55 -#: order/templates/order/sales_order_base.html:55 +#: build/templates/build/build_base.html:57 +#: order/templates/order/order_base.html:47 +#: order/templates/order/return_order_base.html:56 +#: order/templates/order/sales_order_base.html:56 msgid "Print actions" msgstr "" -#: build/templates/build/build_base.html:60 +#: build/templates/build/build_base.html:61 msgid "Print build order report" msgstr "" -#: build/templates/build/build_base.html:67 +#: build/templates/build/build_base.html:68 msgid "Build actions" msgstr "" -#: build/templates/build/build_base.html:71 +#: build/templates/build/build_base.html:72 msgid "Edit Build" msgstr "" -#: build/templates/build/build_base.html:73 +#: build/templates/build/build_base.html:74 msgid "Duplicate Build" msgstr "" -#: build/templates/build/build_base.html:76 +#: build/templates/build/build_base.html:77 msgid "Hold Build" msgstr "" -#: build/templates/build/build_base.html:79 +#: build/templates/build/build_base.html:80 msgid "Cancel Build" msgstr "" -#: build/templates/build/build_base.html:82 +#: build/templates/build/build_base.html:83 msgid "Delete Build" msgstr "" -#: build/templates/build/build_base.html:87 -msgid "Isueue Build" -msgstr "" - #: build/templates/build/build_base.html:88 +#: build/templates/build/build_base.html:89 msgid "Issue Build" msgstr "" -#: build/templates/build/build_base.html:91 #: build/templates/build/build_base.html:92 +#: build/templates/build/build_base.html:93 msgid "Complete Build" msgstr "" -#: build/templates/build/build_base.html:115 +#: build/templates/build/build_base.html:116 msgid "Build Description" msgstr "" -#: build/templates/build/build_base.html:125 +#: build/templates/build/build_base.html:126 msgid "No build outputs have been created for this build order" msgstr "" -#: build/templates/build/build_base.html:132 +#: build/templates/build/build_base.html:133 msgid "Build Order is ready to mark as completed" msgstr "" -#: build/templates/build/build_base.html:137 +#: build/templates/build/build_base.html:138 msgid "Build Order cannot be completed as outstanding outputs remain" msgstr "" -#: build/templates/build/build_base.html:142 +#: build/templates/build/build_base.html:143 msgid "Required build quantity has not yet been completed" msgstr "" -#: build/templates/build/build_base.html:147 +#: build/templates/build/build_base.html:148 msgid "Stock has not been fully allocated to this Build Order" msgstr "" -#: build/templates/build/build_base.html:168 -#: build/templates/build/detail.html:138 order/models.py:308 -#: order/models.py:1391 order/serializers.py:174 -#: order/templates/order/order_base.html:191 -#: order/templates/order/return_order_base.html:167 -#: order/templates/order/sales_order_base.html:199 +#: build/templates/build/build_base.html:169 +#: build/templates/build/detail.html:138 order/models.py:315 +#: order/models.py:1408 order/serializers.py:254 +#: order/templates/order/order_base.html:200 +#: order/templates/order/return_order_base.html:168 +#: order/templates/order/sales_order_base.html:200 #: report/templates/report/inventree_build_order_report.html:125 -#: templates/js/translated/build.js:2411 templates/js/translated/part.js:1837 -#: templates/js/translated/purchase_order.js:1809 -#: templates/js/translated/purchase_order.js:2217 +#: templates/js/translated/build.js:2414 templates/js/translated/part.js:1837 +#: templates/js/translated/purchase_order.js:1793 +#: templates/js/translated/purchase_order.js:2201 #: templates/js/translated/return_order.js:346 #: templates/js/translated/return_order.js:749 -#: templates/js/translated/sales_order.js:871 -#: templates/js/translated/sales_order.js:1903 +#: templates/js/translated/sales_order.js:830 +#: templates/js/translated/sales_order.js:1884 msgid "Target Date" msgstr "" -#: build/templates/build/build_base.html:173 +#: build/templates/build/build_base.html:174 #, python-format msgid "This build was due on %(target)s" msgstr "" -#: build/templates/build/build_base.html:173 -#: build/templates/build/build_base.html:230 -#: order/templates/order/order_base.html:127 -#: order/templates/order/return_order_base.html:120 -#: order/templates/order/sales_order_base.html:129 +#: build/templates/build/build_base.html:174 +#: build/templates/build/build_base.html:231 +#: order/templates/order/order_base.html:128 +#: order/templates/order/return_order_base.html:121 +#: order/templates/order/sales_order_base.html:130 #: templates/js/translated/table_filters.js:97 #: templates/js/translated/table_filters.js:545 #: templates/js/translated/table_filters.js:629 @@ -1910,49 +1935,50 @@ msgstr "" msgid "Overdue" msgstr "Myöhässä" -#: build/templates/build/build_base.html:185 +#: build/templates/build/build_base.html:186 #: build/templates/build/detail.html:67 build/templates/build/sidebar.html:13 msgid "Completed Outputs" msgstr "" -#: build/templates/build/build_base.html:198 -#: build/templates/build/detail.html:101 order/api.py:1406 order/models.py:892 -#: order/models.py:1650 order/models.py:1765 order/models.py:1924 -#: order/templates/order/sales_order_base.html:9 -#: order/templates/order/sales_order_base.html:28 +#: build/templates/build/build_base.html:199 +#: build/templates/build/detail.html:101 order/api.py:1528 order/models.py:914 +#: order/models.py:1666 order/models.py:1794 order/models.py:1957 +#: order/templates/order/sales_order_base.html:10 +#: order/templates/order/sales_order_base.html:29 #: report/templates/report/inventree_build_order_report.html:135 #: report/templates/report/inventree_sales_order_report.html:14 -#: stock/templates/stock/item_base.html:369 +#: report/templates/report/inventree_sales_order_shipment_report.html:15 +#: stock/templates/stock/item_base.html:366 #: templates/email/overdue_sales_order.html:15 -#: templates/js/translated/pricing.js:929 -#: templates/js/translated/sales_order.js:805 -#: templates/js/translated/sales_order.js:1028 -#: templates/js/translated/stock.js:3008 +#: templates/js/translated/pricing.js:927 +#: templates/js/translated/sales_order.js:764 +#: templates/js/translated/sales_order.js:1001 +#: templates/js/translated/stock.js:3009 msgid "Sales Order" msgstr "" -#: build/templates/build/build_base.html:219 -#: build/templates/build/detail.html:94 templates/js/translated/build.js:2328 +#: build/templates/build/build_base.html:220 +#: build/templates/build/detail.html:94 templates/js/translated/build.js:2331 msgid "Priority" msgstr "Prioriteetti" -#: build/templates/build/build_base.html:267 +#: build/templates/build/build_base.html:268 msgid "Issue Build Order" msgstr "" -#: build/templates/build/build_base.html:271 +#: build/templates/build/build_base.html:272 msgid "Issue this Build Order?" msgstr "" -#: build/templates/build/build_base.html:302 +#: build/templates/build/build_base.html:303 msgid "Delete Build Order" msgstr "" -#: build/templates/build/build_base.html:312 +#: build/templates/build/build_base.html:313 msgid "Build Order QR Code" msgstr "" -#: build/templates/build/build_base.html:324 +#: build/templates/build/build_base.html:325 msgid "Link Barcode to Build Order" msgstr "" @@ -1968,8 +1994,9 @@ msgstr "" msgid "Stock can be taken from any available location." msgstr "" -#: build/templates/build/detail.html:49 order/models.py:1532 -#: templates/js/translated/purchase_order.js:2259 +#: build/templates/build/detail.html:49 order/models.py:548 +#: order/models.py:1548 order/templates/order/order_base.html:135 +#: templates/js/translated/purchase_order.js:2243 msgid "Destination" msgstr "" @@ -1981,23 +2008,24 @@ msgstr "" msgid "Allocated Parts" msgstr "" -#: build/templates/build/detail.html:80 stock/admin.py:162 -#: stock/templates/stock/item_base.html:162 -#: templates/js/translated/build.js:1553 -#: templates/js/translated/model_renderers.js:242 -#: templates/js/translated/purchase_order.js:1326 +#: build/templates/build/detail.html:80 +#: report/templates/report/inventree_sales_order_shipment_report.html:47 +#: stock/admin.py:163 stock/templates/stock/item_base.html:159 +#: templates/js/translated/build.js:1556 +#: templates/js/translated/model_renderers.js:245 +#: templates/js/translated/purchase_order.js:1309 #: templates/js/translated/stock.js:1139 templates/js/translated/stock.js:1240 -#: templates/js/translated/stock.js:2275 templates/js/translated/stock.js:3211 +#: templates/js/translated/stock.js:2276 templates/js/translated/stock.js:3212 #: templates/js/translated/table_filters.js:320 #: templates/js/translated/table_filters.js:411 msgid "Batch" msgstr "" #: build/templates/build/detail.html:133 -#: order/templates/order/order_base.html:178 -#: order/templates/order/return_order_base.html:154 -#: order/templates/order/sales_order_base.html:193 -#: templates/js/translated/build.js:2371 +#: order/templates/order/order_base.html:187 +#: order/templates/order/return_order_base.html:155 +#: order/templates/order/sales_order_base.html:194 +#: templates/js/translated/build.js:2374 msgid "Created" msgstr "" @@ -2005,8 +2033,8 @@ msgstr "" msgid "No target date set" msgstr "" -#: build/templates/build/detail.html:149 -#: order/templates/order/sales_order_base.html:209 +#: build/templates/build/detail.html:149 order/api.py:794 +#: order/templates/order/sales_order_base.html:210 #: templates/js/translated/table_filters.js:692 msgid "Completed" msgstr "Valmis" @@ -2052,7 +2080,7 @@ msgid "Order required parts" msgstr "" #: build/templates/build/detail.html:192 -#: templates/js/translated/purchase_order.js:795 +#: templates/js/translated/purchase_order.js:778 msgid "Order Parts" msgstr "" @@ -2120,7 +2148,7 @@ msgstr "" msgid "Build Order Details" msgstr "" -#: build/templates/build/sidebar.html:8 order/serializers.py:82 +#: build/templates/build/sidebar.html:8 order/serializers.py:113 #: order/templates/order/po_sidebar.html:5 #: order/templates/order/return_order_detail.html:18 #: order/templates/order/so_sidebar.html:5 @@ -2139,43 +2167,38 @@ msgstr "" msgid "Test Statistics" msgstr "" -#: common/api.py:693 +#: common/api.py:725 msgid "Is Link" msgstr "" -#: common/api.py:701 +#: common/api.py:733 msgid "Is File" msgstr "" -#: common/api.py:744 +#: common/api.py:776 msgid "User does not have permission to delete these attachments" msgstr "" -#: common/api.py:761 +#: common/api.py:793 msgid "User does not have permission to delete this attachment" msgstr "" -#: common/currency.py:132 +#: common/currency.py:134 msgid "Invalid currency code" msgstr "" -#: common/currency.py:134 +#: common/currency.py:136 msgid "Duplicate currency code" msgstr "" -#: common/currency.py:139 +#: common/currency.py:141 msgid "No valid currency codes provided" msgstr "" -#: common/currency.py:156 +#: common/currency.py:158 msgid "No plugin" msgstr "" -#: common/files.py:63 -#, python-brace-format -msgid "Unsupported file format: {fmt}" -msgstr "Tiedostomuotoa ei tueta: {fmt}" - #: common/files.py:65 msgid "Error reading file (invalid encoding)" msgstr "" @@ -2192,1883 +2215,2039 @@ msgstr "" msgid "Error reading file (data could be corrupted)" msgstr "" -#: common/forms.py:12 +#: common/forms.py:12 common/forms.py:25 msgid "File" msgstr "Tiedosto" -#: common/forms.py:12 +#: common/forms.py:12 common/forms.py:26 msgid "Select file to upload" msgstr "Valitse lähetettävä tiedosto" -#: common/forms.py:25 -msgid "{name.title()} File" -msgstr "{name.title()} Tiedosto" - -#: common/forms.py:26 -#, python-brace-format -msgid "Select {name} file to upload" -msgstr "" - -#: common/models.py:86 +#: common/models.py:89 msgid "Updated" msgstr "Päivitetty" -#: common/models.py:87 +#: common/models.py:90 msgid "Timestamp of last update" msgstr "Viimeisimmän päivityksen aikaleima" -#: common/models.py:120 +#: common/models.py:123 msgid "Site URL is locked by configuration" msgstr "" -#: common/models.py:150 +#: common/models.py:153 msgid "Unique project code" msgstr "" -#: common/models.py:157 +#: common/models.py:160 msgid "Project description" msgstr "" -#: common/models.py:166 +#: common/models.py:169 msgid "User or group responsible for this project" msgstr "" -#: common/models.py:783 -msgid "Settings key (must be unique - case insensitive)" +#: common/models.py:783 common/models.py:2236 common/models.py:2613 +msgid "Settings key" msgstr "" #: common/models.py:787 msgid "Settings value" msgstr "" -#: common/models.py:839 +#: common/models.py:842 msgid "Chosen value is not a valid option" msgstr "" -#: common/models.py:855 +#: common/models.py:858 msgid "Value must be a boolean value" msgstr "" -#: common/models.py:863 +#: common/models.py:866 msgid "Value must be an integer value" msgstr "" -#: common/models.py:900 +#: common/models.py:874 +msgid "Value must be a valid number" +msgstr "" + +#: common/models.py:899 +msgid "Value does not pass validation checks" +msgstr "" + +#: common/models.py:921 msgid "Key string must be unique" msgstr "" -#: common/models.py:1132 +#: common/models.py:1189 msgid "No group" msgstr "Ei ryhmää" -#: common/models.py:1231 +#: common/models.py:1288 msgid "Restart required" msgstr "Uudelleenkäynnistys vaaditaan" -#: common/models.py:1233 +#: common/models.py:1290 msgid "A setting has been changed which requires a server restart" msgstr "" -#: common/models.py:1240 +#: common/models.py:1297 msgid "Pending migrations" msgstr "" -#: common/models.py:1241 +#: common/models.py:1298 msgid "Number of pending database migrations" msgstr "" -#: common/models.py:1246 +#: common/models.py:1303 msgid "Server Instance Name" msgstr "" -#: common/models.py:1248 +#: common/models.py:1305 msgid "String descriptor for the server instance" msgstr "" -#: common/models.py:1252 +#: common/models.py:1309 msgid "Use instance name" msgstr "" -#: common/models.py:1253 +#: common/models.py:1310 msgid "Use the instance name in the title-bar" msgstr "" -#: common/models.py:1258 +#: common/models.py:1315 msgid "Restrict showing `about`" msgstr "" -#: common/models.py:1259 +#: common/models.py:1316 msgid "Show the `about` modal only to superusers" msgstr "" -#: common/models.py:1264 company/models.py:111 company/models.py:112 +#: common/models.py:1321 company/models.py:108 company/models.py:109 msgid "Company name" msgstr "Yrityksen nimi" -#: common/models.py:1265 +#: common/models.py:1322 msgid "Internal company name" msgstr "Yrityksen sisäinen nimi" -#: common/models.py:1269 +#: common/models.py:1326 msgid "Base URL" msgstr "" -#: common/models.py:1270 +#: common/models.py:1327 msgid "Base URL for server instance" msgstr "" -#: common/models.py:1276 +#: common/models.py:1333 msgid "Default Currency" msgstr "Oletusvaluutta" -#: common/models.py:1277 +#: common/models.py:1334 msgid "Select base currency for pricing calculations" msgstr "" -#: common/models.py:1283 +#: common/models.py:1340 msgid "Supported Currencies" msgstr "" -#: common/models.py:1284 +#: common/models.py:1341 msgid "List of supported currency codes" msgstr "" -#: common/models.py:1290 +#: common/models.py:1347 msgid "Currency Update Interval" msgstr "" -#: common/models.py:1292 +#: common/models.py:1349 msgid "How often to update exchange rates (set to zero to disable)" msgstr "" -#: common/models.py:1295 common/models.py:1351 common/models.py:1364 -#: common/models.py:1372 common/models.py:1381 common/models.py:1390 -#: common/models.py:1627 common/models.py:1649 common/models.py:1764 -#: common/models.py:2146 +#: common/models.py:1352 common/models.py:1408 common/models.py:1421 +#: common/models.py:1429 common/models.py:1438 common/models.py:1447 +#: common/models.py:1696 common/models.py:1718 common/models.py:1819 +#: common/models.py:2208 msgid "days" msgstr "päivää" -#: common/models.py:1299 +#: common/models.py:1356 msgid "Currency Update Plugin" msgstr "" -#: common/models.py:1300 +#: common/models.py:1357 msgid "Currency update plugin to use" msgstr "" -#: common/models.py:1305 +#: common/models.py:1362 msgid "Download from URL" msgstr "" -#: common/models.py:1307 +#: common/models.py:1364 msgid "Allow download of remote images and files from external URL" msgstr "" -#: common/models.py:1313 +#: common/models.py:1370 msgid "Download Size Limit" msgstr "" -#: common/models.py:1314 +#: common/models.py:1371 msgid "Maximum allowable download size for remote image" msgstr "" -#: common/models.py:1320 +#: common/models.py:1377 msgid "User-agent used to download from URL" msgstr "" -#: common/models.py:1322 +#: common/models.py:1379 msgid "Allow to override the user-agent used to download images and files from external URL (leave blank for the default)" msgstr "" -#: common/models.py:1327 +#: common/models.py:1384 msgid "Strict URL Validation" msgstr "" -#: common/models.py:1328 +#: common/models.py:1385 msgid "Require schema specification when validating URLs" msgstr "" -#: common/models.py:1333 +#: common/models.py:1390 msgid "Require confirm" msgstr "" -#: common/models.py:1334 +#: common/models.py:1391 msgid "Require explicit user confirmation for certain action." msgstr "" -#: common/models.py:1339 +#: common/models.py:1396 msgid "Tree Depth" msgstr "" -#: common/models.py:1341 +#: common/models.py:1398 msgid "Default tree depth for treeview. Deeper levels can be lazy loaded as they are needed." msgstr "" -#: common/models.py:1347 +#: common/models.py:1404 msgid "Update Check Interval" msgstr "" -#: common/models.py:1348 +#: common/models.py:1405 msgid "How often to check for updates (set to zero to disable)" msgstr "" -#: common/models.py:1354 +#: common/models.py:1411 msgid "Automatic Backup" msgstr "Automaattinen varmuuskopionti" -#: common/models.py:1355 +#: common/models.py:1412 msgid "Enable automatic backup of database and media files" msgstr "Ota käyttöön tietokannan ja mediatiedostojen automaattinen varmuuskopiointi" -#: common/models.py:1360 +#: common/models.py:1417 msgid "Auto Backup Interval" msgstr "Automaattisen varmuuskopioinnin aikaväli" -#: common/models.py:1361 +#: common/models.py:1418 msgid "Specify number of days between automated backup events" msgstr "" -#: common/models.py:1367 +#: common/models.py:1424 msgid "Task Deletion Interval" msgstr "" -#: common/models.py:1369 +#: common/models.py:1426 msgid "Background task results will be deleted after specified number of days" msgstr "" -#: common/models.py:1376 +#: common/models.py:1433 msgid "Error Log Deletion Interval" msgstr "" -#: common/models.py:1378 +#: common/models.py:1435 msgid "Error logs will be deleted after specified number of days" msgstr "" -#: common/models.py:1385 +#: common/models.py:1442 msgid "Notification Deletion Interval" msgstr "" -#: common/models.py:1387 +#: common/models.py:1444 msgid "User notifications will be deleted after specified number of days" msgstr "" -#: common/models.py:1394 templates/InvenTree/settings/sidebar.html:31 +#: common/models.py:1451 templates/InvenTree/settings/sidebar.html:31 msgid "Barcode Support" msgstr "Viivakoodituki" -#: common/models.py:1395 +#: common/models.py:1452 msgid "Enable barcode scanner support in the web interface" msgstr "" -#: common/models.py:1400 +#: common/models.py:1457 +msgid "Store Barcode Results" +msgstr "" + +#: common/models.py:1458 +msgid "Store barcode scan results in the database" +msgstr "" + +#: common/models.py:1463 +msgid "Barcode Scans Maximum Count" +msgstr "" + +#: common/models.py:1464 +msgid "Maximum number of barcode scan results to store" +msgstr "" + +#: common/models.py:1469 msgid "Barcode Input Delay" msgstr "" -#: common/models.py:1401 +#: common/models.py:1470 msgid "Barcode input processing delay time" msgstr "" -#: common/models.py:1407 +#: common/models.py:1476 msgid "Barcode Webcam Support" msgstr "" -#: common/models.py:1408 +#: common/models.py:1477 msgid "Allow barcode scanning via webcam in browser" msgstr "" -#: common/models.py:1413 +#: common/models.py:1482 msgid "Barcode Show Data" msgstr "" -#: common/models.py:1414 +#: common/models.py:1483 msgid "Display barcode data in browser as text" msgstr "" -#: common/models.py:1419 +#: common/models.py:1488 msgid "Barcode Generation Plugin" msgstr "" -#: common/models.py:1420 +#: common/models.py:1489 msgid "Plugin to use for internal barcode data generation" msgstr "" -#: common/models.py:1425 +#: common/models.py:1494 msgid "Part Revisions" msgstr "" -#: common/models.py:1426 +#: common/models.py:1495 msgid "Enable revision field for Part" msgstr "" -#: common/models.py:1431 +#: common/models.py:1500 msgid "Assembly Revision Only" msgstr "" -#: common/models.py:1432 +#: common/models.py:1501 msgid "Only allow revisions for assembly parts" msgstr "" -#: common/models.py:1437 +#: common/models.py:1506 msgid "Allow Deletion from Assembly" msgstr "" -#: common/models.py:1438 +#: common/models.py:1507 msgid "Allow deletion of parts which are used in an assembly" msgstr "" -#: common/models.py:1443 +#: common/models.py:1512 msgid "IPN Regex" msgstr "" -#: common/models.py:1444 +#: common/models.py:1513 msgid "Regular expression pattern for matching Part IPN" msgstr "" -#: common/models.py:1447 +#: common/models.py:1516 msgid "Allow Duplicate IPN" msgstr "" -#: common/models.py:1448 +#: common/models.py:1517 msgid "Allow multiple parts to share the same IPN" msgstr "" -#: common/models.py:1453 +#: common/models.py:1522 msgid "Allow Editing IPN" msgstr "" -#: common/models.py:1454 +#: common/models.py:1523 msgid "Allow changing the IPN value while editing a part" msgstr "" -#: common/models.py:1459 +#: common/models.py:1528 msgid "Copy Part BOM Data" msgstr "" -#: common/models.py:1460 +#: common/models.py:1529 msgid "Copy BOM data by default when duplicating a part" msgstr "" -#: common/models.py:1465 +#: common/models.py:1534 msgid "Copy Part Parameter Data" msgstr "" -#: common/models.py:1466 +#: common/models.py:1535 msgid "Copy parameter data by default when duplicating a part" msgstr "" -#: common/models.py:1471 +#: common/models.py:1540 msgid "Copy Part Test Data" msgstr "" -#: common/models.py:1472 +#: common/models.py:1541 msgid "Copy test data by default when duplicating a part" msgstr "" -#: common/models.py:1477 +#: common/models.py:1546 msgid "Copy Category Parameter Templates" msgstr "" -#: common/models.py:1478 +#: common/models.py:1547 msgid "Copy category parameter templates when creating a part" msgstr "" -#: common/models.py:1483 part/admin.py:108 part/models.py:3945 -#: report/models.py:293 report/models.py:360 report/serializers.py:90 -#: report/serializers.py:131 stock/serializers.py:232 +#: common/models.py:1552 part/admin.py:108 part/models.py:4003 +#: report/models.py:301 report/models.py:368 report/serializers.py:91 +#: report/serializers.py:132 stock/serializers.py:233 #: templates/js/translated/table_filters.js:138 #: templates/js/translated/table_filters.js:775 msgid "Template" msgstr "" -#: common/models.py:1484 +#: common/models.py:1553 msgid "Parts are templates by default" msgstr "" -#: common/models.py:1490 +#: common/models.py:1559 msgid "Parts can be assembled from other components by default" msgstr "" -#: common/models.py:1495 part/admin.py:95 part/models.py:1160 -#: part/serializers.py:1596 templates/js/translated/table_filters.js:737 +#: common/models.py:1564 part/admin.py:95 part/models.py:1221 +#: part/serializers.py:1654 templates/js/translated/table_filters.js:737 msgid "Component" msgstr "Komponentti" -#: common/models.py:1496 +#: common/models.py:1565 msgid "Parts can be used as sub-components by default" msgstr "" -#: common/models.py:1501 part/admin.py:100 part/models.py:1178 +#: common/models.py:1570 part/admin.py:100 part/models.py:1239 msgid "Purchaseable" msgstr "Ostettavissa" -#: common/models.py:1502 +#: common/models.py:1571 msgid "Parts are purchaseable by default" msgstr "" -#: common/models.py:1507 part/admin.py:104 part/models.py:1184 +#: common/models.py:1576 part/admin.py:104 part/models.py:1245 #: templates/js/translated/table_filters.js:763 msgid "Salable" msgstr "" -#: common/models.py:1508 +#: common/models.py:1577 msgid "Parts are salable by default" msgstr "" -#: common/models.py:1514 +#: common/models.py:1583 msgid "Parts are trackable by default" msgstr "" -#: common/models.py:1519 part/admin.py:117 part/models.py:1200 -#: part/templates/part/part_base.html:154 +#: common/models.py:1588 part/admin.py:117 part/models.py:1261 +#: part/templates/part/part_base.html:155 #: templates/js/translated/table_filters.js:142 #: templates/js/translated/table_filters.js:787 msgid "Virtual" msgstr "" -#: common/models.py:1520 +#: common/models.py:1589 msgid "Parts are virtual by default" msgstr "" -#: common/models.py:1525 +#: common/models.py:1594 msgid "Show Import in Views" msgstr "" -#: common/models.py:1526 +#: common/models.py:1595 msgid "Display the import wizard in some part views" msgstr "" -#: common/models.py:1531 +#: common/models.py:1600 msgid "Show related parts" msgstr "" -#: common/models.py:1532 +#: common/models.py:1601 msgid "Display related parts for a part" msgstr "" -#: common/models.py:1537 +#: common/models.py:1606 msgid "Initial Stock Data" msgstr "" -#: common/models.py:1538 +#: common/models.py:1607 msgid "Allow creation of initial stock when adding a new part" msgstr "" -#: common/models.py:1543 templates/js/translated/part.js:108 +#: common/models.py:1612 templates/js/translated/part.js:108 msgid "Initial Supplier Data" msgstr "" -#: common/models.py:1545 +#: common/models.py:1614 msgid "Allow creation of initial supplier data when adding a new part" msgstr "" -#: common/models.py:1551 +#: common/models.py:1620 msgid "Part Name Display Format" msgstr "" -#: common/models.py:1552 +#: common/models.py:1621 msgid "Format to display the part name" msgstr "" -#: common/models.py:1558 +#: common/models.py:1627 msgid "Part Category Default Icon" msgstr "" -#: common/models.py:1559 +#: common/models.py:1628 msgid "Part category default icon (empty means no icon)" msgstr "" -#: common/models.py:1564 +#: common/models.py:1633 msgid "Enforce Parameter Units" msgstr "" -#: common/models.py:1566 +#: common/models.py:1635 msgid "If units are provided, parameter values must match the specified units" msgstr "" -#: common/models.py:1572 +#: common/models.py:1641 msgid "Minimum Pricing Decimal Places" msgstr "" -#: common/models.py:1574 +#: common/models.py:1643 msgid "Minimum number of decimal places to display when rendering pricing data" msgstr "" -#: common/models.py:1585 +#: common/models.py:1654 msgid "Maximum Pricing Decimal Places" msgstr "" -#: common/models.py:1587 +#: common/models.py:1656 msgid "Maximum number of decimal places to display when rendering pricing data" msgstr "" -#: common/models.py:1598 +#: common/models.py:1667 msgid "Use Supplier Pricing" msgstr "" -#: common/models.py:1600 +#: common/models.py:1669 msgid "Include supplier price breaks in overall pricing calculations" msgstr "" -#: common/models.py:1606 +#: common/models.py:1675 msgid "Purchase History Override" msgstr "" -#: common/models.py:1608 +#: common/models.py:1677 msgid "Historical purchase order pricing overrides supplier price breaks" msgstr "" -#: common/models.py:1614 +#: common/models.py:1683 msgid "Use Stock Item Pricing" msgstr "" -#: common/models.py:1616 +#: common/models.py:1685 msgid "Use pricing from manually entered stock data for pricing calculations" msgstr "" -#: common/models.py:1622 +#: common/models.py:1691 msgid "Stock Item Pricing Age" msgstr "" -#: common/models.py:1624 +#: common/models.py:1693 msgid "Exclude stock items older than this number of days from pricing calculations" msgstr "" -#: common/models.py:1631 +#: common/models.py:1700 msgid "Use Variant Pricing" msgstr "" -#: common/models.py:1632 +#: common/models.py:1701 msgid "Include variant pricing in overall pricing calculations" msgstr "" -#: common/models.py:1637 +#: common/models.py:1706 msgid "Active Variants Only" msgstr "" -#: common/models.py:1639 +#: common/models.py:1708 msgid "Only use active variant parts for calculating variant pricing" msgstr "" -#: common/models.py:1645 +#: common/models.py:1714 msgid "Pricing Rebuild Interval" msgstr "" -#: common/models.py:1647 +#: common/models.py:1716 msgid "Number of days before part pricing is automatically updated" msgstr "" -#: common/models.py:1654 +#: common/models.py:1723 msgid "Internal Prices" msgstr "Sisäiset hinnat" -#: common/models.py:1655 +#: common/models.py:1724 msgid "Enable internal prices for parts" msgstr "" -#: common/models.py:1660 +#: common/models.py:1729 msgid "Internal Price Override" msgstr "Sisäisen hinnan ohitus" -#: common/models.py:1662 +#: common/models.py:1731 msgid "If available, internal prices override price range calculations" msgstr "" -#: common/models.py:1668 +#: common/models.py:1737 msgid "Enable label printing" msgstr "" -#: common/models.py:1669 +#: common/models.py:1738 msgid "Enable label printing from the web interface" msgstr "" -#: common/models.py:1674 +#: common/models.py:1743 msgid "Label Image DPI" msgstr "" -#: common/models.py:1676 +#: common/models.py:1745 msgid "DPI resolution when generating image files to supply to label printing plugins" msgstr "" -#: common/models.py:1682 +#: common/models.py:1751 msgid "Enable Reports" msgstr "" -#: common/models.py:1683 +#: common/models.py:1752 msgid "Enable generation of reports" msgstr "" -#: common/models.py:1688 templates/stats.html:25 +#: common/models.py:1757 templates/stats.html:25 msgid "Debug Mode" msgstr "" -#: common/models.py:1689 +#: common/models.py:1758 msgid "Generate reports in debug mode (HTML output)" msgstr "" -#: common/models.py:1694 +#: common/models.py:1763 msgid "Log Report Errors" msgstr "" -#: common/models.py:1695 +#: common/models.py:1764 msgid "Log errors which occur when generating reports" msgstr "" -#: common/models.py:1700 plugin/builtin/labels/label_sheet.py:28 -#: report/models.py:301 +#: common/models.py:1769 plugin/builtin/labels/label_sheet.py:28 +#: report/models.py:309 msgid "Page Size" msgstr "Sivun koko" -#: common/models.py:1701 +#: common/models.py:1770 msgid "Default page size for PDF reports" msgstr "" -#: common/models.py:1706 -msgid "Enable Test Reports" -msgstr "" - -#: common/models.py:1707 -msgid "Enable generation of test reports" -msgstr "" - -#: common/models.py:1712 -msgid "Attach Test Reports" -msgstr "" - -#: common/models.py:1714 -msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item" -msgstr "" - -#: common/models.py:1720 +#: common/models.py:1775 msgid "Globally Unique Serials" msgstr "" -#: common/models.py:1721 +#: common/models.py:1776 msgid "Serial numbers for stock items must be globally unique" msgstr "" -#: common/models.py:1726 +#: common/models.py:1781 msgid "Autofill Serial Numbers" msgstr "Täytä sarjanumerot automaattisesti" -#: common/models.py:1727 +#: common/models.py:1782 msgid "Autofill serial numbers in forms" msgstr "" -#: common/models.py:1732 +#: common/models.py:1787 msgid "Delete Depleted Stock" msgstr "" -#: common/models.py:1734 +#: common/models.py:1789 msgid "Determines default behavior when a stock item is depleted" msgstr "" -#: common/models.py:1740 +#: common/models.py:1795 msgid "Batch Code Template" msgstr "" -#: common/models.py:1742 +#: common/models.py:1797 msgid "Template for generating default batch codes for stock items" msgstr "" -#: common/models.py:1747 +#: common/models.py:1802 msgid "Stock Expiry" msgstr "" -#: common/models.py:1748 +#: common/models.py:1803 msgid "Enable stock expiry functionality" msgstr "" -#: common/models.py:1753 +#: common/models.py:1808 msgid "Sell Expired Stock" msgstr "" -#: common/models.py:1754 +#: common/models.py:1809 msgid "Allow sale of expired stock" msgstr "" -#: common/models.py:1759 +#: common/models.py:1814 msgid "Stock Stale Time" msgstr "" -#: common/models.py:1761 +#: common/models.py:1816 msgid "Number of days stock items are considered stale before expiring" msgstr "" -#: common/models.py:1768 +#: common/models.py:1823 msgid "Build Expired Stock" msgstr "" -#: common/models.py:1769 +#: common/models.py:1824 msgid "Allow building with expired stock" msgstr "" -#: common/models.py:1774 +#: common/models.py:1829 msgid "Stock Ownership Control" msgstr "" -#: common/models.py:1775 +#: common/models.py:1830 msgid "Enable ownership control over stock locations and items" msgstr "" -#: common/models.py:1780 +#: common/models.py:1835 msgid "Stock Location Default Icon" msgstr "" -#: common/models.py:1781 +#: common/models.py:1836 msgid "Stock location default icon (empty means no icon)" msgstr "" -#: common/models.py:1786 +#: common/models.py:1841 msgid "Show Installed Stock Items" msgstr "" -#: common/models.py:1787 +#: common/models.py:1842 msgid "Display installed stock items in stock tables" msgstr "" -#: common/models.py:1792 +#: common/models.py:1847 msgid "Check BOM when installing items" msgstr "" -#: common/models.py:1794 +#: common/models.py:1849 msgid "Installed stock items must exist in the BOM for the parent part" msgstr "" -#: common/models.py:1800 +#: common/models.py:1855 msgid "Allow Out of Stock Transfer" msgstr "" -#: common/models.py:1802 +#: common/models.py:1857 msgid "Allow stock items which are not in stock to be transferred between stock locations" msgstr "" -#: common/models.py:1808 +#: common/models.py:1863 msgid "Build Order Reference Pattern" msgstr "" -#: common/models.py:1810 +#: common/models.py:1865 msgid "Required pattern for generating Build Order reference field" msgstr "" -#: common/models.py:1816 common/models.py:1872 common/models.py:1894 -#: common/models.py:1930 +#: common/models.py:1871 common/models.py:1927 common/models.py:1949 +#: common/models.py:1985 msgid "Require Responsible Owner" msgstr "" -#: common/models.py:1817 common/models.py:1873 common/models.py:1895 -#: common/models.py:1931 +#: common/models.py:1872 common/models.py:1928 common/models.py:1950 +#: common/models.py:1986 msgid "A responsible owner must be assigned to each order" msgstr "" -#: common/models.py:1822 +#: common/models.py:1877 msgid "Require Active Part" msgstr "" -#: common/models.py:1823 +#: common/models.py:1878 msgid "Prevent build order creation for inactive parts" msgstr "" -#: common/models.py:1828 +#: common/models.py:1883 msgid "Require Locked Part" msgstr "" -#: common/models.py:1829 +#: common/models.py:1884 msgid "Prevent build order creation for unlocked parts" msgstr "" -#: common/models.py:1834 +#: common/models.py:1889 msgid "Require Valid BOM" msgstr "" -#: common/models.py:1836 +#: common/models.py:1891 msgid "Prevent build order creation unless BOM has been validated" msgstr "" -#: common/models.py:1842 +#: common/models.py:1897 msgid "Require Closed Child Orders" msgstr "" -#: common/models.py:1844 +#: common/models.py:1899 msgid "Prevent build order completion until all child orders are closed" msgstr "" -#: common/models.py:1850 +#: common/models.py:1905 msgid "Block Until Tests Pass" msgstr "" -#: common/models.py:1852 +#: common/models.py:1907 msgid "Prevent build outputs from being completed until all required tests pass" msgstr "" -#: common/models.py:1858 +#: common/models.py:1913 msgid "Enable Return Orders" msgstr "" -#: common/models.py:1859 +#: common/models.py:1914 msgid "Enable return order functionality in the user interface" msgstr "" -#: common/models.py:1864 +#: common/models.py:1919 msgid "Return Order Reference Pattern" msgstr "" -#: common/models.py:1866 +#: common/models.py:1921 msgid "Required pattern for generating Return Order reference field" msgstr "" -#: common/models.py:1878 +#: common/models.py:1933 msgid "Edit Completed Return Orders" msgstr "" -#: common/models.py:1880 +#: common/models.py:1935 msgid "Allow editing of return orders after they have been completed" msgstr "" -#: common/models.py:1886 +#: common/models.py:1941 msgid "Sales Order Reference Pattern" msgstr "" -#: common/models.py:1888 +#: common/models.py:1943 msgid "Required pattern for generating Sales Order reference field" msgstr "" -#: common/models.py:1900 +#: common/models.py:1955 msgid "Sales Order Default Shipment" msgstr "" -#: common/models.py:1901 +#: common/models.py:1956 msgid "Enable creation of default shipment with sales orders" msgstr "" -#: common/models.py:1906 +#: common/models.py:1961 msgid "Edit Completed Sales Orders" msgstr "" -#: common/models.py:1908 +#: common/models.py:1963 msgid "Allow editing of sales orders after they have been shipped or completed" msgstr "" -#: common/models.py:1914 +#: common/models.py:1969 msgid "Mark Shipped Orders as Complete" msgstr "" -#: common/models.py:1916 +#: common/models.py:1971 msgid "Sales orders marked as shipped will automatically be completed, bypassing the \"shipped\" status" msgstr "" -#: common/models.py:1922 +#: common/models.py:1977 msgid "Purchase Order Reference Pattern" msgstr "" -#: common/models.py:1924 +#: common/models.py:1979 msgid "Required pattern for generating Purchase Order reference field" msgstr "" -#: common/models.py:1936 +#: common/models.py:1991 msgid "Edit Completed Purchase Orders" msgstr "" -#: common/models.py:1938 +#: common/models.py:1993 msgid "Allow editing of purchase orders after they have been shipped or completed" msgstr "" -#: common/models.py:1944 +#: common/models.py:1999 msgid "Auto Complete Purchase Orders" msgstr "" -#: common/models.py:1946 +#: common/models.py:2001 msgid "Automatically mark purchase orders as complete when all line items are received" msgstr "" -#: common/models.py:1953 +#: common/models.py:2008 msgid "Enable password forgot" msgstr "Salli salasananpalautus" -#: common/models.py:1954 +#: common/models.py:2009 msgid "Enable password forgot function on the login pages" msgstr "" -#: common/models.py:1959 +#: common/models.py:2014 msgid "Enable registration" msgstr "Salli rekisteröinti" -#: common/models.py:1960 +#: common/models.py:2015 msgid "Enable self-registration for users on the login pages" msgstr "" -#: common/models.py:1965 +#: common/models.py:2020 msgid "Enable SSO" msgstr "Salli SSO" -#: common/models.py:1966 +#: common/models.py:2021 msgid "Enable SSO on the login pages" msgstr "Salli SSO kirjautumissivuilla" -#: common/models.py:1971 +#: common/models.py:2026 msgid "Enable SSO registration" msgstr "Salli SSO rekisteröinti" -#: common/models.py:1973 +#: common/models.py:2028 msgid "Enable self-registration via SSO for users on the login pages" msgstr "" -#: common/models.py:1979 +#: common/models.py:2034 msgid "Enable SSO group sync" msgstr "" -#: common/models.py:1981 +#: common/models.py:2036 msgid "Enable synchronizing InvenTree groups with groups provided by the IdP" msgstr "" -#: common/models.py:1987 +#: common/models.py:2042 msgid "SSO group key" msgstr "" -#: common/models.py:1989 +#: common/models.py:2044 msgid "The name of the groups claim attribute provided by the IdP" msgstr "" -#: common/models.py:1995 +#: common/models.py:2050 msgid "SSO group map" msgstr "" -#: common/models.py:1997 +#: common/models.py:2052 msgid "A mapping from SSO groups to local InvenTree groups. If the local group does not exist, it will be created." msgstr "" -#: common/models.py:2003 +#: common/models.py:2058 msgid "Remove groups outside of SSO" msgstr "" -#: common/models.py:2005 +#: common/models.py:2060 msgid "Whether groups assigned to the user should be removed if they are not backend by the IdP. Disabling this setting might cause security issues" msgstr "" -#: common/models.py:2011 +#: common/models.py:2066 msgid "Email required" msgstr "Sähköposti vaaditaan" -#: common/models.py:2012 +#: common/models.py:2067 msgid "Require user to supply mail on signup" msgstr "" -#: common/models.py:2017 +#: common/models.py:2072 msgid "Auto-fill SSO users" msgstr "" -#: common/models.py:2019 +#: common/models.py:2074 msgid "Automatically fill out user-details from SSO account-data" msgstr "" -#: common/models.py:2025 +#: common/models.py:2080 msgid "Mail twice" msgstr "Sähköpostiosoite kahdesti" -#: common/models.py:2026 +#: common/models.py:2081 msgid "On signup ask users twice for their mail" msgstr "" -#: common/models.py:2031 +#: common/models.py:2086 msgid "Password twice" msgstr "Salasana kahdesti" -#: common/models.py:2032 +#: common/models.py:2087 msgid "On signup ask users twice for their password" msgstr "" -#: common/models.py:2037 +#: common/models.py:2092 msgid "Allowed domains" msgstr "Sallitut verkkotunnukset" -#: common/models.py:2039 +#: common/models.py:2094 msgid "Restrict signup to certain domains (comma-separated, starting with @)" msgstr "" -#: common/models.py:2045 +#: common/models.py:2100 msgid "Group on signup" msgstr "" -#: common/models.py:2047 +#: common/models.py:2102 msgid "Group to which new users are assigned on registration. If SSO group sync is enabled, this group is only set if no group can be assigned from the IdP." msgstr "" -#: common/models.py:2053 +#: common/models.py:2108 msgid "Enforce MFA" msgstr "Pakota MFA" -#: common/models.py:2054 +#: common/models.py:2109 msgid "Users must use multifactor security." msgstr "" -#: common/models.py:2059 +#: common/models.py:2114 msgid "Check plugins on startup" msgstr "" -#: common/models.py:2061 +#: common/models.py:2116 msgid "Check that all plugins are installed on startup - enable in container environments" msgstr "" -#: common/models.py:2069 +#: common/models.py:2124 msgid "Check for plugin updates" msgstr "" -#: common/models.py:2070 +#: common/models.py:2125 msgid "Enable periodic checks for updates to installed plugins" msgstr "" -#: common/models.py:2076 +#: common/models.py:2131 msgid "Enable URL integration" msgstr "" -#: common/models.py:2077 +#: common/models.py:2132 msgid "Enable plugins to add URL routes" msgstr "" -#: common/models.py:2083 +#: common/models.py:2138 msgid "Enable navigation integration" msgstr "" -#: common/models.py:2084 +#: common/models.py:2139 msgid "Enable plugins to integrate into navigation" msgstr "" -#: common/models.py:2090 +#: common/models.py:2145 msgid "Enable app integration" msgstr "" -#: common/models.py:2091 +#: common/models.py:2146 msgid "Enable plugins to add apps" msgstr "" -#: common/models.py:2097 +#: common/models.py:2152 msgid "Enable schedule integration" msgstr "" -#: common/models.py:2098 +#: common/models.py:2153 msgid "Enable plugins to run scheduled tasks" msgstr "" -#: common/models.py:2104 +#: common/models.py:2159 msgid "Enable event integration" msgstr "" -#: common/models.py:2105 +#: common/models.py:2160 msgid "Enable plugins to respond to internal events" msgstr "" -#: common/models.py:2111 +#: common/models.py:2166 +msgid "Enable interface integration" +msgstr "" + +#: common/models.py:2167 +msgid "Enable plugins to integrate into the user interface" +msgstr "" + +#: common/models.py:2173 msgid "Enable project codes" msgstr "" -#: common/models.py:2112 +#: common/models.py:2174 msgid "Enable project codes for tracking projects" msgstr "" -#: common/models.py:2117 +#: common/models.py:2179 msgid "Stocktake Functionality" msgstr "" -#: common/models.py:2119 +#: common/models.py:2181 msgid "Enable stocktake functionality for recording stock levels and calculating stock value" msgstr "" -#: common/models.py:2125 +#: common/models.py:2187 msgid "Exclude External Locations" msgstr "" -#: common/models.py:2127 +#: common/models.py:2189 msgid "Exclude stock items in external locations from stocktake calculations" msgstr "" -#: common/models.py:2133 +#: common/models.py:2195 msgid "Automatic Stocktake Period" msgstr "" -#: common/models.py:2135 +#: common/models.py:2197 msgid "Number of days between automatic stocktake recording (set to zero to disable)" msgstr "" -#: common/models.py:2141 +#: common/models.py:2203 msgid "Report Deletion Interval" msgstr "" -#: common/models.py:2143 +#: common/models.py:2205 msgid "Stocktake reports will be deleted after specified number of days" msgstr "" -#: common/models.py:2150 +#: common/models.py:2212 msgid "Display Users full names" msgstr "" -#: common/models.py:2151 +#: common/models.py:2213 msgid "Display Users full names instead of usernames" msgstr "" -#: common/models.py:2156 +#: common/models.py:2218 msgid "Enable Test Station Data" msgstr "" -#: common/models.py:2157 +#: common/models.py:2219 msgid "Enable test station data collection for test results" msgstr "" -#: common/models.py:2169 common/models.py:2549 -msgid "Settings key (must be unique - case insensitive" -msgstr "" - -#: common/models.py:2212 -msgid "Hide inactive parts" -msgstr "" - -#: common/models.py:2214 -msgid "Hide inactive parts in results displayed on the homepage" -msgstr "" - -#: common/models.py:2220 -msgid "Show subscribed parts" -msgstr "" - -#: common/models.py:2221 -msgid "Show subscribed parts on the homepage" +#: common/models.py:2224 +msgid "Create Template on Upload" msgstr "" #: common/models.py:2226 -msgid "Show subscribed categories" +msgid "Create a new test template when uploading test data which does not match an existing template" msgstr "" -#: common/models.py:2227 -msgid "Show subscribed part categories on the homepage" -msgstr "" - -#: common/models.py:2232 -msgid "Show latest parts" -msgstr "" - -#: common/models.py:2233 -msgid "Show latest parts on the homepage" -msgstr "" - -#: common/models.py:2238 -msgid "Show invalid BOMs" -msgstr "" - -#: common/models.py:2239 -msgid "Show BOMs that await validation on the homepage" -msgstr "" - -#: common/models.py:2244 -msgid "Show recent stock changes" -msgstr "" - -#: common/models.py:2245 -msgid "Show recently changed stock items on the homepage" -msgstr "" - -#: common/models.py:2250 -msgid "Show low stock" -msgstr "" - -#: common/models.py:2251 -msgid "Show low stock items on the homepage" -msgstr "" - -#: common/models.py:2256 -msgid "Show depleted stock" -msgstr "" - -#: common/models.py:2257 -msgid "Show depleted stock items on the homepage" -msgstr "" - -#: common/models.py:2262 -msgid "Show needed stock" -msgstr "" - -#: common/models.py:2263 -msgid "Show stock items needed for builds on the homepage" -msgstr "" - -#: common/models.py:2268 -msgid "Show expired stock" -msgstr "" - -#: common/models.py:2269 -msgid "Show expired stock items on the homepage" -msgstr "" - -#: common/models.py:2274 -msgid "Show stale stock" -msgstr "" - -#: common/models.py:2275 -msgid "Show stale stock items on the homepage" -msgstr "" - -#: common/models.py:2280 -msgid "Show pending builds" +#: common/models.py:2279 +msgid "Hide inactive parts" msgstr "" #: common/models.py:2281 -msgid "Show pending builds on the homepage" -msgstr "" - -#: common/models.py:2286 -msgid "Show overdue builds" +msgid "Hide inactive parts in results displayed on the homepage" msgstr "" #: common/models.py:2287 -msgid "Show overdue builds on the homepage" +msgid "Show subscribed parts" msgstr "" -#: common/models.py:2292 -msgid "Show outstanding POs" +#: common/models.py:2288 +msgid "Show subscribed parts on the homepage" msgstr "" #: common/models.py:2293 -msgid "Show outstanding POs on the homepage" +msgid "Show subscribed categories" msgstr "" -#: common/models.py:2298 -msgid "Show overdue POs" +#: common/models.py:2294 +msgid "Show subscribed part categories on the homepage" msgstr "" #: common/models.py:2299 -msgid "Show overdue POs on the homepage" +msgid "Show latest parts" msgstr "" -#: common/models.py:2304 -msgid "Show outstanding SOs" +#: common/models.py:2300 +msgid "Show latest parts on the homepage" msgstr "" #: common/models.py:2305 -msgid "Show outstanding SOs on the homepage" +msgid "Show invalid BOMs" msgstr "" -#: common/models.py:2310 -msgid "Show overdue SOs" +#: common/models.py:2306 +msgid "Show BOMs that await validation on the homepage" msgstr "" #: common/models.py:2311 -msgid "Show overdue SOs on the homepage" +msgid "Show recent stock changes" msgstr "" -#: common/models.py:2316 -msgid "Show pending SO shipments" +#: common/models.py:2312 +msgid "Show recently changed stock items on the homepage" msgstr "" #: common/models.py:2317 -msgid "Show pending SO shipments on the homepage" +msgid "Show low stock" msgstr "" -#: common/models.py:2322 -msgid "Show News" -msgstr "Näytä uutiset" +#: common/models.py:2318 +msgid "Show low stock items on the homepage" +msgstr "" #: common/models.py:2323 -msgid "Show news on the homepage" -msgstr "Näytä uutiset kotisivulla" +msgid "Show depleted stock" +msgstr "" -#: common/models.py:2328 -msgid "Inline label display" +#: common/models.py:2324 +msgid "Show depleted stock items on the homepage" +msgstr "" + +#: common/models.py:2329 +msgid "Show needed stock" msgstr "" #: common/models.py:2330 -msgid "Display PDF labels in the browser, instead of downloading as a file" +msgid "Show stock items needed for builds on the homepage" +msgstr "" + +#: common/models.py:2335 +msgid "Show expired stock" msgstr "" #: common/models.py:2336 -msgid "Default label printer" +msgid "Show expired stock items on the homepage" msgstr "" -#: common/models.py:2338 -msgid "Configure which label printer should be selected by default" +#: common/models.py:2341 +msgid "Show stale stock" msgstr "" -#: common/models.py:2344 -msgid "Inline report display" +#: common/models.py:2342 +msgid "Show stale stock items on the homepage" msgstr "" -#: common/models.py:2346 -msgid "Display PDF reports in the browser, instead of downloading as a file" +#: common/models.py:2347 +msgid "Show pending builds" msgstr "" -#: common/models.py:2352 -msgid "Search Parts" +#: common/models.py:2348 +msgid "Show pending builds on the homepage" msgstr "" #: common/models.py:2353 -msgid "Display parts in search preview window" +msgid "Show overdue builds" msgstr "" -#: common/models.py:2358 -msgid "Search Supplier Parts" +#: common/models.py:2354 +msgid "Show overdue builds on the homepage" msgstr "" #: common/models.py:2359 -msgid "Display supplier parts in search preview window" +msgid "Show outstanding POs" msgstr "" -#: common/models.py:2364 -msgid "Search Manufacturer Parts" +#: common/models.py:2360 +msgid "Show outstanding POs on the homepage" msgstr "" #: common/models.py:2365 -msgid "Display manufacturer parts in search preview window" +msgid "Show overdue POs" msgstr "" -#: common/models.py:2370 -msgid "Hide Inactive Parts" +#: common/models.py:2366 +msgid "Show overdue POs on the homepage" msgstr "" #: common/models.py:2371 -msgid "Excluded inactive parts from search preview window" +msgid "Show outstanding SOs" msgstr "" -#: common/models.py:2376 -msgid "Search Categories" +#: common/models.py:2372 +msgid "Show outstanding SOs on the homepage" msgstr "" #: common/models.py:2377 -msgid "Display part categories in search preview window" +msgid "Show overdue SOs" msgstr "" -#: common/models.py:2382 -msgid "Search Stock" +#: common/models.py:2378 +msgid "Show overdue SOs on the homepage" msgstr "" #: common/models.py:2383 -msgid "Display stock items in search preview window" +msgid "Show pending SO shipments" msgstr "" -#: common/models.py:2388 -msgid "Hide Unavailable Stock Items" +#: common/models.py:2384 +msgid "Show pending SO shipments on the homepage" msgstr "" +#: common/models.py:2389 +msgid "Show News" +msgstr "Näytä uutiset" + #: common/models.py:2390 -msgid "Exclude stock items which are not available from the search preview window" -msgstr "" +msgid "Show news on the homepage" +msgstr "Näytä uutiset kotisivulla" -#: common/models.py:2396 -msgid "Search Locations" +#: common/models.py:2395 +msgid "Inline label display" msgstr "" #: common/models.py:2397 -msgid "Display stock locations in search preview window" -msgstr "" - -#: common/models.py:2402 -msgid "Search Companies" +msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "" #: common/models.py:2403 -msgid "Display companies in search preview window" +msgid "Default label printer" msgstr "" -#: common/models.py:2408 -msgid "Search Build Orders" +#: common/models.py:2405 +msgid "Configure which label printer should be selected by default" msgstr "" -#: common/models.py:2409 -msgid "Display build orders in search preview window" +#: common/models.py:2411 +msgid "Inline report display" msgstr "" -#: common/models.py:2414 -msgid "Search Purchase Orders" +#: common/models.py:2413 +msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:2415 -msgid "Display purchase orders in search preview window" +#: common/models.py:2419 +msgid "Search Parts" msgstr "" #: common/models.py:2420 -msgid "Exclude Inactive Purchase Orders" +msgid "Display parts in search preview window" msgstr "" -#: common/models.py:2422 -msgid "Exclude inactive purchase orders from search preview window" +#: common/models.py:2425 +msgid "Search Supplier Parts" msgstr "" -#: common/models.py:2428 -msgid "Search Sales Orders" +#: common/models.py:2426 +msgid "Display supplier parts in search preview window" msgstr "" -#: common/models.py:2429 -msgid "Display sales orders in search preview window" +#: common/models.py:2431 +msgid "Search Manufacturer Parts" msgstr "" -#: common/models.py:2434 -msgid "Exclude Inactive Sales Orders" +#: common/models.py:2432 +msgid "Display manufacturer parts in search preview window" msgstr "" -#: common/models.py:2436 -msgid "Exclude inactive sales orders from search preview window" +#: common/models.py:2437 +msgid "Hide Inactive Parts" msgstr "" -#: common/models.py:2442 -msgid "Search Return Orders" +#: common/models.py:2438 +msgid "Excluded inactive parts from search preview window" msgstr "" #: common/models.py:2443 -msgid "Display return orders in search preview window" +msgid "Search Categories" msgstr "" -#: common/models.py:2448 -msgid "Exclude Inactive Return Orders" +#: common/models.py:2444 +msgid "Display part categories in search preview window" +msgstr "" + +#: common/models.py:2449 +msgid "Search Stock" msgstr "" #: common/models.py:2450 -msgid "Exclude inactive return orders from search preview window" +msgid "Display stock items in search preview window" msgstr "" -#: common/models.py:2456 -msgid "Search Preview Results" +#: common/models.py:2455 +msgid "Hide Unavailable Stock Items" msgstr "" -#: common/models.py:2458 -msgid "Number of results to show in each section of the search preview window" +#: common/models.py:2457 +msgid "Exclude stock items which are not available from the search preview window" +msgstr "" + +#: common/models.py:2463 +msgid "Search Locations" msgstr "" #: common/models.py:2464 -msgid "Regex Search" +msgid "Display stock locations in search preview window" msgstr "" -#: common/models.py:2465 -msgid "Enable regular expressions in search queries" +#: common/models.py:2469 +msgid "Search Companies" msgstr "" #: common/models.py:2470 -msgid "Whole Word Search" +msgid "Display companies in search preview window" msgstr "" -#: common/models.py:2471 -msgid "Search queries return results for whole word matches" +#: common/models.py:2475 +msgid "Search Build Orders" msgstr "" #: common/models.py:2476 -msgid "Show Quantity in Forms" +msgid "Display build orders in search preview window" msgstr "" -#: common/models.py:2477 -msgid "Display available part quantity in some forms" +#: common/models.py:2481 +msgid "Search Purchase Orders" msgstr "" #: common/models.py:2482 -msgid "Escape Key Closes Forms" +msgid "Display purchase orders in search preview window" msgstr "" -#: common/models.py:2483 -msgid "Use the escape key to close modal forms" -msgstr "" - -#: common/models.py:2488 -msgid "Fixed Navbar" +#: common/models.py:2487 +msgid "Exclude Inactive Purchase Orders" msgstr "" #: common/models.py:2489 -msgid "The navbar position is fixed to the top of the screen" -msgstr "" - -#: common/models.py:2494 -msgid "Date Format" +msgid "Exclude inactive purchase orders from search preview window" msgstr "" #: common/models.py:2495 -msgid "Preferred format for displaying dates" +msgid "Search Sales Orders" msgstr "" -#: common/models.py:2508 part/templates/part/detail.html:41 -msgid "Part Scheduling" +#: common/models.py:2496 +msgid "Display sales orders in search preview window" +msgstr "" + +#: common/models.py:2501 +msgid "Exclude Inactive Sales Orders" +msgstr "" + +#: common/models.py:2503 +msgid "Exclude inactive sales orders from search preview window" msgstr "" #: common/models.py:2509 -msgid "Display part scheduling information" +msgid "Search Return Orders" msgstr "" -#: common/models.py:2514 part/templates/part/detail.html:62 -msgid "Part Stocktake" +#: common/models.py:2510 +msgid "Display return orders in search preview window" msgstr "" -#: common/models.py:2516 -msgid "Display part stocktake information (if stocktake functionality is enabled)" +#: common/models.py:2515 +msgid "Exclude Inactive Return Orders" msgstr "" -#: common/models.py:2522 -msgid "Table String Length" +#: common/models.py:2517 +msgid "Exclude inactive return orders from search preview window" msgstr "" -#: common/models.py:2524 -msgid "Maximum length limit for strings displayed in table views" +#: common/models.py:2523 +msgid "Search Preview Results" msgstr "" -#: common/models.py:2530 -msgid "Receive error reports" +#: common/models.py:2525 +msgid "Number of results to show in each section of the search preview window" msgstr "" #: common/models.py:2531 -msgid "Receive notifications for system errors" +msgid "Regex Search" msgstr "" -#: common/models.py:2536 -msgid "Last used printing machines" +#: common/models.py:2532 +msgid "Enable regular expressions in search queries" msgstr "" #: common/models.py:2537 +msgid "Whole Word Search" +msgstr "" + +#: common/models.py:2538 +msgid "Search queries return results for whole word matches" +msgstr "" + +#: common/models.py:2543 +msgid "Show Quantity in Forms" +msgstr "" + +#: common/models.py:2544 +msgid "Display available part quantity in some forms" +msgstr "" + +#: common/models.py:2549 +msgid "Escape Key Closes Forms" +msgstr "" + +#: common/models.py:2550 +msgid "Use the escape key to close modal forms" +msgstr "" + +#: common/models.py:2555 +msgid "Fixed Navbar" +msgstr "" + +#: common/models.py:2556 +msgid "The navbar position is fixed to the top of the screen" +msgstr "" + +#: common/models.py:2561 +msgid "Date Format" +msgstr "" + +#: common/models.py:2562 +msgid "Preferred format for displaying dates" +msgstr "" + +#: common/models.py:2575 part/templates/part/detail.html:41 +msgid "Part Scheduling" +msgstr "" + +#: common/models.py:2576 +msgid "Display part scheduling information" +msgstr "" + +#: common/models.py:2581 part/templates/part/detail.html:62 +msgid "Part Stocktake" +msgstr "" + +#: common/models.py:2583 +msgid "Display part stocktake information (if stocktake functionality is enabled)" +msgstr "" + +#: common/models.py:2589 +msgid "Table String Length" +msgstr "" + +#: common/models.py:2591 +msgid "Maximum length limit for strings displayed in table views" +msgstr "" + +#: common/models.py:2597 +msgid "Receive error reports" +msgstr "" + +#: common/models.py:2598 +msgid "Receive notifications for system errors" +msgstr "" + +#: common/models.py:2603 +msgid "Last used printing machines" +msgstr "" + +#: common/models.py:2604 msgid "Save the last used printing machines for a user" msgstr "" -#: common/models.py:2557 common/models.py:2558 common/models.py:2715 -#: common/models.py:2716 common/models.py:2961 common/models.py:2962 -#: common/models.py:3288 common/models.py:3289 importer/models.py:88 -#: part/models.py:3307 part/models.py:3394 part/models.py:3468 -#: part/models.py:3496 plugin/models.py:274 plugin/models.py:275 -#: report/templates/report/inventree_test_report.html:105 -#: templates/js/translated/stock.js:3120 users/models.py:111 +#: common/models.py:2621 common/models.py:2622 common/models.py:2779 +#: common/models.py:2780 common/models.py:3025 common/models.py:3026 +#: common/models.py:3349 common/models.py:3350 common/models.py:3534 +#: importer/models.py:89 part/models.py:3358 part/models.py:3445 +#: part/models.py:3519 part/models.py:3547 plugin/models.py:313 +#: plugin/models.py:314 report/templates/report/inventree_test_report.html:105 +#: templates/js/translated/stock.js:3121 users/models.py:111 msgid "User" msgstr "Käyttäjä" -#: common/models.py:2580 +#: common/models.py:2644 msgid "Price break quantity" msgstr "" -#: common/models.py:2587 company/serializers.py:513 order/admin.py:42 -#: order/models.py:1430 order/models.py:2417 -#: templates/js/translated/company.js:1823 templates/js/translated/part.js:1892 +#: common/models.py:2651 company/serializers.py:524 order/admin.py:42 +#: order/models.py:1447 order/models.py:2456 +#: templates/js/translated/company.js:1824 templates/js/translated/part.js:1892 #: templates/js/translated/pricing.js:621 #: templates/js/translated/return_order.js:739 msgid "Price" msgstr "Hinta" -#: common/models.py:2588 +#: common/models.py:2652 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:2692 common/models.py:2877 +#: common/models.py:2756 common/models.py:2941 msgid "Endpoint" msgstr "" -#: common/models.py:2693 +#: common/models.py:2757 msgid "Endpoint at which this webhook is received" msgstr "" -#: common/models.py:2703 +#: common/models.py:2767 msgid "Name for this webhook" msgstr "" -#: common/models.py:2707 +#: common/models.py:2771 msgid "Is this webhook active" msgstr "" -#: common/models.py:2723 users/models.py:159 +#: common/models.py:2787 users/models.py:159 msgid "Token" msgstr "" -#: common/models.py:2724 +#: common/models.py:2788 msgid "Token for access" msgstr "" -#: common/models.py:2732 +#: common/models.py:2796 msgid "Secret" msgstr "Salaisuus" -#: common/models.py:2733 +#: common/models.py:2797 msgid "Shared secret for HMAC" msgstr "" -#: common/models.py:2841 +#: common/models.py:2905 msgid "Message ID" msgstr "" -#: common/models.py:2842 +#: common/models.py:2906 msgid "Unique identifier for this message" msgstr "" -#: common/models.py:2850 +#: common/models.py:2914 msgid "Host" msgstr "Isäntä" -#: common/models.py:2851 +#: common/models.py:2915 msgid "Host from which this message was received" msgstr "" -#: common/models.py:2859 +#: common/models.py:2923 msgid "Header" msgstr "" -#: common/models.py:2860 +#: common/models.py:2924 msgid "Header of this message" msgstr "" -#: common/models.py:2867 +#: common/models.py:2931 msgid "Body" msgstr "" -#: common/models.py:2868 +#: common/models.py:2932 msgid "Body of this message" msgstr "" -#: common/models.py:2878 +#: common/models.py:2942 msgid "Endpoint on which this message was received" msgstr "" -#: common/models.py:2883 +#: common/models.py:2947 msgid "Worked on" msgstr "" -#: common/models.py:2884 +#: common/models.py:2948 msgid "Was the work on this message finished?" msgstr "" -#: common/models.py:3010 +#: common/models.py:3074 msgid "Id" msgstr "" -#: common/models.py:3012 templates/js/translated/company.js:965 -#: templates/js/translated/news.js:44 +#: common/models.py:3076 part/serializers.py:271 +#: templates/js/translated/company.js:966 templates/js/translated/news.js:44 msgid "Title" msgstr "Otsikko" -#: common/models.py:3014 common/models.py:3272 company/models.py:149 -#: company/models.py:446 company/models.py:512 company/models.py:818 -#: order/models.py:302 order/models.py:1385 order/models.py:1817 -#: part/admin.py:55 part/models.py:1057 +#: common/models.py:3078 common/models.py:3333 company/models.py:146 +#: company/models.py:443 company/models.py:509 company/models.py:815 +#: order/models.py:309 order/models.py:1402 order/models.py:1846 +#: part/admin.py:55 part/models.py:1118 #: part/templates/part/part_scheduling.html:11 #: report/templates/report/inventree_build_order_report.html:164 -#: stock/admin.py:229 templates/js/translated/company.js:1319 -#: templates/js/translated/company.js:1673 templates/js/translated/order.js:376 +#: stock/admin.py:230 templates/js/translated/company.js:1320 +#: templates/js/translated/company.js:1674 templates/js/translated/order.js:376 #: templates/js/translated/part.js:2475 -#: templates/js/translated/purchase_order.js:2110 -#: templates/js/translated/purchase_order.js:2274 +#: templates/js/translated/purchase_order.js:2094 +#: templates/js/translated/purchase_order.js:2258 #: templates/js/translated/return_order.js:778 -#: templates/js/translated/sales_order.js:1092 -#: templates/js/translated/sales_order.js:2023 +#: templates/js/translated/sales_order.js:1058 +#: templates/js/translated/sales_order.js:2004 msgid "Link" msgstr "Linkki" -#: common/models.py:3016 templates/js/translated/news.js:60 +#: common/models.py:3080 templates/js/translated/news.js:60 msgid "Published" msgstr "Julkaistu" -#: common/models.py:3018 templates/InvenTree/settings/plugin_settings.html:32 +#: common/models.py:3082 templates/InvenTree/settings/plugin_settings.html:32 #: templates/js/translated/news.js:56 templates/js/translated/plugin.js:103 msgid "Author" msgstr "Julkaisija" -#: common/models.py:3020 templates/js/translated/news.js:52 +#: common/models.py:3084 templates/js/translated/news.js:52 msgid "Summary" msgstr "Yhteenveto" -#: common/models.py:3023 +#: common/models.py:3087 msgid "Read" msgstr "" -#: common/models.py:3023 +#: common/models.py:3087 msgid "Was this news item read?" msgstr "" -#: common/models.py:3040 company/models.py:159 part/models.py:1067 +#: common/models.py:3104 company/models.py:156 part/models.py:1128 #: report/templates/report/inventree_bill_of_materials_report.html:126 #: report/templates/report/inventree_bill_of_materials_report.html:148 #: report/templates/report/inventree_return_order_report.html:35 -#: stock/templates/stock/item_base.html:133 templates/503.html:31 +#: stock/templates/stock/item_base.html:130 templates/503.html:31 #: templates/hover_image.html:7 templates/hover_image.html:9 #: templates/modals.html:6 msgid "Image" msgstr "Kuva" -#: common/models.py:3040 +#: common/models.py:3104 msgid "Image file" msgstr "Kuvatiedosto" -#: common/models.py:3052 common/models.py:3256 +#: common/models.py:3116 common/models.py:3317 msgid "Target model type for this image" msgstr "" -#: common/models.py:3056 +#: common/models.py:3120 msgid "Target model ID for this image" msgstr "" -#: common/models.py:3078 +#: common/models.py:3142 msgid "Custom Unit" msgstr "" -#: common/models.py:3099 +#: common/models.py:3160 msgid "Unit symbol must be unique" msgstr "" -#: common/models.py:3114 +#: common/models.py:3175 msgid "Unit name must be a valid identifier" msgstr "" -#: common/models.py:3133 +#: common/models.py:3194 msgid "Unit name" msgstr "" -#: common/models.py:3140 templates/InvenTree/settings/settings_staff_js.html:75 +#: common/models.py:3201 templates/InvenTree/settings/settings_staff_js.html:75 msgid "Symbol" msgstr "" -#: common/models.py:3141 +#: common/models.py:3202 msgid "Optional unit symbol" msgstr "" -#: common/models.py:3147 templates/InvenTree/settings/settings_staff_js.html:71 +#: common/models.py:3208 templates/InvenTree/settings/settings_staff_js.html:71 msgid "Definition" msgstr "" -#: common/models.py:3148 +#: common/models.py:3209 msgid "Unit definition" msgstr "" -#: common/models.py:3206 common/models.py:3263 stock/models.py:2558 -#: templates/js/translated/attachment.js:119 +#: common/models.py:3267 common/models.py:3324 stock/models.py:2674 +#: stock/serializers.py:244 templates/js/translated/attachment.js:119 #: templates/js/translated/attachment.js:345 msgid "Attachment" msgstr "Liite" -#: common/models.py:3218 +#: common/models.py:3279 msgid "Missing file" msgstr "Puuttuva tiedosto" -#: common/models.py:3219 +#: common/models.py:3280 msgid "Missing external link" msgstr "Puuttuva ulkoinen linkki" -#: common/models.py:3264 +#: common/models.py:3325 msgid "Select file to attach" msgstr "Valitse liitettävä tiedosto" -#: common/models.py:3279 templates/js/translated/attachment.js:120 +#: common/models.py:3340 templates/js/translated/attachment.js:120 #: templates/js/translated/attachment.js:360 msgid "Comment" msgstr "Kommentti" -#: common/models.py:3280 +#: common/models.py:3341 msgid "Attachment comment" msgstr "" -#: common/models.py:3296 +#: common/models.py:3357 msgid "Upload date" msgstr "" -#: common/models.py:3297 +#: common/models.py:3358 msgid "Date the file was uploaded" msgstr "" -#: common/models.py:3301 +#: common/models.py:3362 msgid "File size" msgstr "" -#: common/models.py:3301 +#: common/models.py:3362 msgid "File size in bytes" msgstr "" -#: common/models.py:3339 common/serializers.py:562 +#: common/models.py:3400 common/serializers.py:609 msgid "Invalid model type specified for attachment" msgstr "" -#: common/notifications.py:314 +#: common/models.py:3409 plugin/models.py:43 users/models.py:100 +msgid "Key" +msgstr "Avain" + +#: common/models.py:3410 +msgid "Value that will be saved in the models database" +msgstr "" + +#: common/models.py:3413 +msgid "Name of the state" +msgstr "" + +#: common/models.py:3417 part/serializers.py:273 +msgid "Label" +msgstr "" + +#: common/models.py:3418 +msgid "Label that will be displayed in the frontend" +msgstr "" + +#: common/models.py:3424 +msgid "Color" +msgstr "" + +#: common/models.py:3425 +msgid "Color that will be displayed in the frontend" +msgstr "" + +#: common/models.py:3428 +msgid "Logical Key" +msgstr "" + +#: common/models.py:3430 +msgid "State logical key that is equal to this custom state in business logic" +msgstr "" + +#: common/models.py:3438 part/serializers.py:275 +msgid "Model" +msgstr "" + +#: common/models.py:3439 +msgid "Model this state is associated with" +msgstr "" + +#: common/models.py:3443 +msgid "Reference Status Set" +msgstr "" + +#: common/models.py:3444 +msgid "Status set that is extended with this custom state" +msgstr "" + +#: common/models.py:3450 +msgid "Custom State" +msgstr "" + +#: common/models.py:3451 +msgid "Custom States" +msgstr "" + +#: common/models.py:3466 +msgid "Model must be selected" +msgstr "" + +#: common/models.py:3469 +msgid "Key must be selected" +msgstr "" + +#: common/models.py:3472 +msgid "Logical key must be selected" +msgstr "" + +#: common/models.py:3476 +msgid "Key must be different from logical key" +msgstr "" + +#: common/models.py:3480 +msgid "Reference status must be selected" +msgstr "" + +#: common/models.py:3492 +msgid "Reference status set not found" +msgstr "" + +#: common/models.py:3498 +msgid "Key must be different from the logical keys of the reference status" +msgstr "" + +#: common/models.py:3504 +msgid "Logical key must be in the logical keys of the reference status" +msgstr "" + +#: common/models.py:3519 +msgid "Barcode Scan" +msgstr "" + +#: common/models.py:3523 importer/models.py:512 part/models.py:4009 +msgid "Data" +msgstr "" + +#: common/models.py:3524 +msgid "Barcode data" +msgstr "" + +#: common/models.py:3535 +msgid "User who scanned the barcode" +msgstr "" + +#: common/models.py:3540 importer/models.py:60 +msgid "Timestamp" +msgstr "" + +#: common/models.py:3541 +msgid "Date and time of the barcode scan" +msgstr "" + +#: common/models.py:3547 +msgid "URL endpoint which processed the barcode" +msgstr "" + +#: common/models.py:3554 order/models.py:1437 plugin/serializers.py:89 +msgid "Context" +msgstr "" + +#: common/models.py:3555 +msgid "Context data for the barcode scan" +msgstr "" + +#: common/models.py:3562 +msgid "Response" +msgstr "" + +#: common/models.py:3563 +msgid "Response data from the barcode scan" +msgstr "" + +#: common/models.py:3569 report/templates/report/inventree_test_report.html:103 +#: stock/models.py:2660 +msgid "Result" +msgstr "" + +#: common/models.py:3570 +msgid "Was the barcode scan successful?" +msgstr "" + +#: common/notifications.py:328 #, python-brace-format msgid "New {verbose_name}" msgstr "Uusi {verbose_name}" -#: common/notifications.py:316 +#: common/notifications.py:330 msgid "A new order has been created and assigned to you" msgstr "" -#: common/notifications.py:322 +#: common/notifications.py:336 #, python-brace-format msgid "{verbose_name} canceled" msgstr "" -#: common/notifications.py:324 +#: common/notifications.py:338 msgid "A order that is assigned to you was canceled" msgstr "" -#: common/notifications.py:330 common/notifications.py:337 order/api.py:462 +#: common/notifications.py:344 common/notifications.py:351 order/api.py:440 msgid "Items Received" msgstr "" -#: common/notifications.py:332 +#: common/notifications.py:346 msgid "Items have been received against a purchase order" msgstr "" -#: common/notifications.py:339 +#: common/notifications.py:353 msgid "Items have been received against a return order" msgstr "" -#: common/notifications.py:457 +#: common/notifications.py:475 msgid "Error raised by plugin" msgstr "" -#: common/serializers.py:375 +#: common/serializers.py:423 msgid "Is Running" msgstr "" -#: common/serializers.py:381 +#: common/serializers.py:429 msgid "Pending Tasks" msgstr "" -#: common/serializers.py:387 +#: common/serializers.py:435 msgid "Scheduled Tasks" msgstr "" -#: common/serializers.py:393 +#: common/serializers.py:441 msgid "Failed Tasks" msgstr "" -#: common/serializers.py:408 +#: common/serializers.py:456 msgid "Task ID" msgstr "" -#: common/serializers.py:408 +#: common/serializers.py:456 msgid "Unique task ID" msgstr "" -#: common/serializers.py:410 +#: common/serializers.py:458 msgid "Lock" msgstr "" -#: common/serializers.py:410 +#: common/serializers.py:458 msgid "Lock time" msgstr "" -#: common/serializers.py:412 +#: common/serializers.py:460 msgid "Task name" msgstr "" -#: common/serializers.py:414 +#: common/serializers.py:462 msgid "Function" msgstr "" -#: common/serializers.py:414 +#: common/serializers.py:462 msgid "Function name" msgstr "" -#: common/serializers.py:416 +#: common/serializers.py:464 msgid "Arguments" msgstr "" -#: common/serializers.py:416 +#: common/serializers.py:464 msgid "Task arguments" msgstr "" -#: common/serializers.py:419 +#: common/serializers.py:467 msgid "Keyword Arguments" msgstr "" -#: common/serializers.py:419 +#: common/serializers.py:467 msgid "Task keyword arguments" msgstr "" -#: common/serializers.py:529 +#: common/serializers.py:577 msgid "Filename" msgstr "Tiedostonimi" -#: common/serializers.py:536 report/api.py:100 report/serializers.py:53 +#: common/serializers.py:584 report/api.py:100 report/serializers.py:54 msgid "Model Type" msgstr "" -#: common/serializers.py:565 +#: common/serializers.py:612 msgid "User does not have permission to create or edit attachments for this model" msgstr "" @@ -4116,15 +4295,15 @@ msgstr "" msgid "Match Items" msgstr "" -#: common/views.py:401 +#: common/views.py:397 msgid "Fields matching failed" msgstr "" -#: common/views.py:464 +#: common/views.py:460 msgid "Parts imported" msgstr "" -#: common/views.py:494 order/templates/order/order_wizard/match_fields.html:27 +#: common/views.py:490 order/templates/order/order_wizard/match_fields.html:27 #: order/templates/order/order_wizard/match_parts.html:19 #: order/templates/order/order_wizard/po_upload.html:49 #: part/templates/part/import_wizard/match_fields.html:27 @@ -4155,429 +4334,429 @@ msgstr "" msgid "Supplier is Active" msgstr "" -#: company/models.py:100 company/models.py:371 +#: company/models.py:97 company/models.py:368 #: company/templates/company/company_base.html:8 #: company/templates/company/company_base.html:12 stock/api.py:812 -#: templates/InvenTree/search.html:178 templates/js/translated/company.js:496 +#: templates/InvenTree/search.html:178 templates/js/translated/company.js:497 msgid "Company" msgstr "Yritys" -#: company/models.py:101 company/views.py:51 +#: company/models.py:98 company/views.py:51 #: templates/js/translated/search.js:192 msgid "Companies" msgstr "Yritykset" -#: company/models.py:117 +#: company/models.py:114 msgid "Company description" msgstr "Yrityksen kuvaus" -#: company/models.py:118 +#: company/models.py:115 msgid "Description of the company" msgstr "" -#: company/models.py:123 company/templates/company/company_base.html:106 +#: company/models.py:120 company/templates/company/company_base.html:106 #: templates/InvenTree/settings/plugin_settings.html:54 -#: templates/js/translated/company.js:532 +#: templates/js/translated/company.js:533 msgid "Website" msgstr "Sivusto" -#: company/models.py:123 +#: company/models.py:120 msgid "Company website URL" msgstr "Yrityksen sivuston URL" -#: company/models.py:128 +#: company/models.py:125 msgid "Phone number" msgstr "Puhelinnumero" -#: company/models.py:130 +#: company/models.py:127 msgid "Contact phone number" msgstr "" -#: company/models.py:137 +#: company/models.py:134 msgid "Contact email address" msgstr "" -#: company/models.py:142 company/models.py:275 -#: company/templates/company/company_base.html:145 order/models.py:342 -#: order/templates/order/order_base.html:208 -#: order/templates/order/return_order_base.html:177 -#: order/templates/order/sales_order_base.html:221 +#: company/models.py:139 company/models.py:272 +#: company/templates/company/company_base.html:145 order/models.py:349 +#: order/templates/order/order_base.html:217 +#: order/templates/order/return_order_base.html:178 +#: order/templates/order/sales_order_base.html:222 msgid "Contact" msgstr "Kontakti" -#: company/models.py:144 +#: company/models.py:141 msgid "Point of contact" msgstr "" -#: company/models.py:150 +#: company/models.py:147 msgid "Link to external company information" msgstr "" -#: company/models.py:163 +#: company/models.py:160 msgid "Is this company active?" msgstr "" -#: company/models.py:168 +#: company/models.py:165 msgid "Is customer" msgstr "" -#: company/models.py:169 +#: company/models.py:166 msgid "Do you sell items to this company?" msgstr "" -#: company/models.py:174 +#: company/models.py:171 msgid "Is supplier" msgstr "" -#: company/models.py:175 +#: company/models.py:172 msgid "Do you purchase items from this company?" msgstr "" -#: company/models.py:180 +#: company/models.py:177 msgid "Is manufacturer" msgstr "" -#: company/models.py:181 +#: company/models.py:178 msgid "Does this company manufacture parts?" msgstr "" -#: company/models.py:189 +#: company/models.py:186 msgid "Default currency used for this company" msgstr "" -#: company/models.py:314 company/templates/company/company_base.html:124 -#: order/models.py:352 order/templates/order/order_base.html:215 -#: order/templates/order/return_order_base.html:184 -#: order/templates/order/sales_order_base.html:228 +#: company/models.py:311 company/templates/company/company_base.html:124 +#: order/models.py:359 order/templates/order/order_base.html:224 +#: order/templates/order/return_order_base.html:185 +#: order/templates/order/sales_order_base.html:229 msgid "Address" msgstr "Osoite" -#: company/models.py:315 company/templates/company/sidebar.html:35 +#: company/models.py:312 company/templates/company/sidebar.html:35 msgid "Addresses" msgstr "" -#: company/models.py:372 +#: company/models.py:369 msgid "Select company" msgstr "" -#: company/models.py:377 +#: company/models.py:374 msgid "Address title" msgstr "" -#: company/models.py:378 +#: company/models.py:375 msgid "Title describing the address entry" msgstr "" -#: company/models.py:384 +#: company/models.py:381 msgid "Primary address" msgstr "" -#: company/models.py:385 +#: company/models.py:382 msgid "Set as primary address" msgstr "" -#: company/models.py:390 templates/js/translated/company.js:914 -#: templates/js/translated/company.js:971 +#: company/models.py:387 templates/js/translated/company.js:915 +#: templates/js/translated/company.js:972 msgid "Line 1" msgstr "" -#: company/models.py:391 +#: company/models.py:388 msgid "Address line 1" msgstr "" -#: company/models.py:397 templates/js/translated/company.js:915 -#: templates/js/translated/company.js:977 +#: company/models.py:394 templates/js/translated/company.js:916 +#: templates/js/translated/company.js:978 msgid "Line 2" msgstr "" -#: company/models.py:398 +#: company/models.py:395 msgid "Address line 2" msgstr "" -#: company/models.py:404 company/models.py:405 -#: templates/js/translated/company.js:983 +#: company/models.py:401 company/models.py:402 +#: templates/js/translated/company.js:984 msgid "Postal code" msgstr "" -#: company/models.py:411 +#: company/models.py:408 msgid "City/Region" msgstr "" -#: company/models.py:412 +#: company/models.py:409 msgid "Postal code city/region" msgstr "" -#: company/models.py:418 +#: company/models.py:415 msgid "State/Province" msgstr "" -#: company/models.py:419 +#: company/models.py:416 msgid "State or province" msgstr "" -#: company/models.py:425 templates/js/translated/company.js:1001 +#: company/models.py:422 templates/js/translated/company.js:1002 msgid "Country" msgstr "" -#: company/models.py:426 +#: company/models.py:423 msgid "Address country" msgstr "" -#: company/models.py:432 +#: company/models.py:429 msgid "Courier shipping notes" msgstr "" -#: company/models.py:433 +#: company/models.py:430 msgid "Notes for shipping courier" msgstr "" -#: company/models.py:439 +#: company/models.py:436 msgid "Internal shipping notes" msgstr "" -#: company/models.py:440 +#: company/models.py:437 msgid "Shipping notes for internal use" msgstr "" -#: company/models.py:447 +#: company/models.py:444 msgid "Link to address information (external)" msgstr "" -#: company/models.py:470 company/models.py:587 company/models.py:811 +#: company/models.py:467 company/models.py:584 company/models.py:808 #: company/templates/company/manufacturer_part.html:7 #: company/templates/company/manufacturer_part.html:24 -#: stock/templates/stock/item_base.html:217 +#: stock/templates/stock/item_base.html:214 msgid "Manufacturer Part" msgstr "" -#: company/models.py:487 company/models.py:779 stock/models.py:787 -#: stock/serializers.py:445 stock/templates/stock/item_base.html:142 +#: company/models.py:484 company/models.py:776 stock/models.py:864 +#: stock/serializers.py:455 stock/templates/stock/item_base.html:139 #: templates/js/translated/bom.js:622 msgid "Base Part" msgstr "" -#: company/models.py:489 company/models.py:781 +#: company/models.py:486 company/models.py:778 msgid "Select part" msgstr "" -#: company/models.py:498 company/templates/company/company_base.html:82 +#: company/models.py:495 company/templates/company/company_base.html:82 #: company/templates/company/manufacturer_part.html:90 -#: company/templates/company/supplier_part.html:145 part/serializers.py:554 -#: stock/templates/stock/item_base.html:207 -#: templates/js/translated/company.js:507 -#: templates/js/translated/company.js:1118 -#: templates/js/translated/company.js:1296 -#: templates/js/translated/company.js:1611 +#: company/templates/company/supplier_part.html:146 part/serializers.py:598 +#: stock/templates/stock/item_base.html:204 +#: templates/js/translated/company.js:508 +#: templates/js/translated/company.js:1119 +#: templates/js/translated/company.js:1297 +#: templates/js/translated/company.js:1612 #: templates/js/translated/table_filters.js:812 msgid "Manufacturer" msgstr "Valmistaja" -#: company/models.py:499 +#: company/models.py:496 msgid "Select manufacturer" msgstr "Valitse valmistaja" -#: company/models.py:505 company/templates/company/manufacturer_part.html:101 -#: company/templates/company/supplier_part.html:153 order/serializers.py:556 -#: part/serializers.py:564 templates/js/translated/company.js:351 -#: templates/js/translated/company.js:1117 -#: templates/js/translated/company.js:1312 -#: templates/js/translated/company.js:1630 templates/js/translated/part.js:1807 -#: templates/js/translated/purchase_order.js:1921 -#: templates/js/translated/purchase_order.js:2123 +#: company/models.py:502 company/templates/company/manufacturer_part.html:101 +#: company/templates/company/supplier_part.html:154 order/serializers.py:641 +#: part/serializers.py:608 templates/js/translated/company.js:352 +#: templates/js/translated/company.js:1118 +#: templates/js/translated/company.js:1313 +#: templates/js/translated/company.js:1631 templates/js/translated/part.js:1807 +#: templates/js/translated/purchase_order.js:1905 +#: templates/js/translated/purchase_order.js:2107 msgid "MPN" msgstr "" -#: company/models.py:513 +#: company/models.py:510 msgid "URL for external manufacturer part link" msgstr "" -#: company/models.py:522 +#: company/models.py:519 msgid "Manufacturer part description" msgstr "" -#: company/models.py:575 +#: company/models.py:572 msgid "Manufacturer Part Parameter" msgstr "" -#: company/models.py:594 +#: company/models.py:591 msgid "Parameter name" msgstr "" -#: company/models.py:600 report/templates/report/inventree_test_report.html:104 -#: stock/models.py:2550 templates/js/translated/company.js:1166 -#: templates/js/translated/company.js:1419 templates/js/translated/part.js:1499 +#: company/models.py:597 report/templates/report/inventree_test_report.html:104 +#: stock/models.py:2666 templates/js/translated/company.js:1167 +#: templates/js/translated/company.js:1420 templates/js/translated/part.js:1499 #: templates/js/translated/stock.js:1607 msgid "Value" msgstr "Arvo" -#: company/models.py:601 +#: company/models.py:598 msgid "Parameter value" msgstr "" -#: company/models.py:608 company/templates/company/supplier_part.html:168 -#: part/admin.py:57 part/models.py:1147 part/models.py:3771 -#: part/templates/part/part_base.html:293 -#: templates/js/translated/company.js:1425 templates/js/translated/part.js:1518 +#: company/models.py:605 company/templates/company/supplier_part.html:169 +#: part/admin.py:57 part/models.py:1208 part/models.py:3822 +#: part/templates/part/part_base.html:301 +#: templates/js/translated/company.js:1426 templates/js/translated/part.js:1518 #: templates/js/translated/part.js:1622 templates/js/translated/part.js:2376 msgid "Units" msgstr "" -#: company/models.py:609 +#: company/models.py:606 msgid "Parameter units" msgstr "" -#: company/models.py:662 company/templates/company/supplier_part.html:7 -#: company/templates/company/supplier_part.html:24 order/api.py:442 -#: order/serializers.py:491 stock/models.py:798 -#: stock/templates/stock/item_base.html:233 -#: templates/js/translated/build.js:1052 -#: templates/js/translated/company.js:1600 -#: templates/js/translated/purchase_order.js:752 -#: templates/js/translated/stock.js:2365 +#: company/models.py:659 company/templates/company/supplier_part.html:8 +#: company/templates/company/supplier_part.html:25 order/api.py:392 +#: order/serializers.py:576 stock/models.py:875 +#: stock/templates/stock/item_base.html:230 +#: templates/js/translated/build.js:1055 +#: templates/js/translated/company.js:1601 +#: templates/js/translated/purchase_order.js:735 +#: templates/js/translated/stock.js:2366 msgid "Supplier Part" msgstr "" -#: company/models.py:719 +#: company/models.py:716 msgid "Pack units must be compatible with the base part units" msgstr "" -#: company/models.py:726 +#: company/models.py:723 msgid "Pack units must be greater than zero" msgstr "" -#: company/models.py:740 +#: company/models.py:737 msgid "Linked manufacturer part must reference the same base part" msgstr "" -#: company/models.py:789 company/templates/company/company_base.html:87 -#: company/templates/company/supplier_part.html:129 order/models.py:491 -#: order/templates/order/order_base.html:141 part/bom.py:280 part/bom.py:318 -#: part/serializers.py:538 plugin/builtin/suppliers/digikey.py:25 +#: company/models.py:786 company/templates/company/company_base.html:87 +#: company/templates/company/supplier_part.html:130 order/models.py:503 +#: order/templates/order/order_base.html:150 part/bom.py:279 part/bom.py:314 +#: part/serializers.py:582 plugin/builtin/suppliers/digikey.py:25 #: plugin/builtin/suppliers/lcsc.py:26 plugin/builtin/suppliers/mouser.py:24 -#: plugin/builtin/suppliers/tme.py:26 stock/templates/stock/item_base.html:224 +#: plugin/builtin/suppliers/tme.py:26 stock/templates/stock/item_base.html:221 #: templates/email/overdue_purchase_order.html:16 -#: templates/js/translated/company.js:350 -#: templates/js/translated/company.js:511 -#: templates/js/translated/company.js:1584 templates/js/translated/part.js:1775 +#: templates/js/translated/company.js:351 +#: templates/js/translated/company.js:512 +#: templates/js/translated/company.js:1585 templates/js/translated/part.js:1775 #: templates/js/translated/pricing.js:498 -#: templates/js/translated/purchase_order.js:1759 +#: templates/js/translated/purchase_order.js:1743 #: templates/js/translated/table_filters.js:816 msgid "Supplier" msgstr "Toimittaja" -#: company/models.py:790 +#: company/models.py:787 msgid "Select supplier" msgstr "Valitse toimittaja" -#: company/models.py:796 part/serializers.py:549 +#: company/models.py:793 part/serializers.py:593 msgid "Supplier stock keeping unit" msgstr "Toimittajan varastonimike" -#: company/models.py:802 +#: company/models.py:799 msgid "Is this supplier part active?" msgstr "" -#: company/models.py:812 +#: company/models.py:809 msgid "Select manufacturer part" msgstr "Valitse valmistajan osa" -#: company/models.py:819 +#: company/models.py:816 msgid "URL for external supplier part link" msgstr "" -#: company/models.py:828 +#: company/models.py:825 msgid "Supplier part description" msgstr "" -#: company/models.py:835 company/templates/company/supplier_part.html:187 -#: order/serializers.py:698 part/admin.py:415 part/models.py:4288 +#: company/models.py:832 company/templates/company/supplier_part.html:188 +#: order/serializers.py:783 part/admin.py:415 part/models.py:4345 #: part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_bill_of_materials_report.html:140 #: report/templates/report/inventree_purchase_order_report.html:32 #: report/templates/report/inventree_return_order_report.html:27 #: report/templates/report/inventree_sales_order_report.html:32 #: report/templates/report/inventree_stock_location_report.html:105 -#: stock/serializers.py:776 templates/js/translated/purchase_order.js:1185 -#: templates/js/translated/purchase_order.js:1344 +#: stock/serializers.py:807 templates/js/translated/purchase_order.js:1168 +#: templates/js/translated/purchase_order.js:1327 msgid "Note" msgstr "Muistiinpano" -#: company/models.py:844 part/models.py:2117 +#: company/models.py:841 part/models.py:2177 msgid "base cost" msgstr "" -#: company/models.py:845 part/models.py:2118 +#: company/models.py:842 part/models.py:2178 msgid "Minimum charge (e.g. stocking fee)" msgstr "" -#: company/models.py:853 +#: company/models.py:850 msgid "Part packaging" msgstr "" -#: company/models.py:858 templates/js/translated/company.js:1651 +#: company/models.py:855 templates/js/translated/company.js:1652 #: templates/js/translated/part.js:1828 templates/js/translated/part.js:1884 -#: templates/js/translated/purchase_order.js:311 -#: templates/js/translated/purchase_order.js:841 -#: templates/js/translated/purchase_order.js:1103 -#: templates/js/translated/purchase_order.js:2154 -#: templates/js/translated/purchase_order.js:2171 +#: templates/js/translated/purchase_order.js:294 +#: templates/js/translated/purchase_order.js:824 +#: templates/js/translated/purchase_order.js:1086 +#: templates/js/translated/purchase_order.js:2138 +#: templates/js/translated/purchase_order.js:2155 msgid "Pack Quantity" msgstr "" -#: company/models.py:860 +#: company/models.py:857 msgid "Total quantity supplied in a single pack. Leave empty for single items." msgstr "" -#: company/models.py:879 part/models.py:2124 +#: company/models.py:876 part/models.py:2184 msgid "multiple" msgstr "" -#: company/models.py:880 +#: company/models.py:877 msgid "Order multiple" msgstr "" -#: company/models.py:892 +#: company/models.py:889 msgid "Quantity available from supplier" msgstr "" -#: company/models.py:898 +#: company/models.py:895 msgid "Availability Updated" msgstr "" -#: company/models.py:899 +#: company/models.py:896 msgid "Date of last update of availability data" msgstr "" -#: company/models.py:1027 +#: company/models.py:1024 msgid "Supplier Price Break" msgstr "" -#: company/serializers.py:174 +#: company/serializers.py:178 msgid "Default currency used for this supplier" msgstr "" -#: company/serializers.py:210 +#: company/serializers.py:214 msgid "Company Name" msgstr "" -#: company/serializers.py:393 part/admin.py:126 part/serializers.py:898 -#: part/templates/part/part_base.html:197 -#: templates/js/translated/company.js:1689 +#: company/serializers.py:397 part/admin.py:126 part/serializers.py:950 +#: part/templates/part/part_base.html:198 stock/serializers.py:474 +#: templates/js/translated/company.js:1690 #: templates/js/translated/table_filters.js:362 msgid "In Stock" msgstr "" #: company/templates/company/company_base.html:16 -#: part/templates/part/part_base.html:146 -#: templates/js/translated/company.js:1287 -#: templates/js/translated/company.js:1575 -#: templates/js/translated/model_renderers.js:313 +#: part/templates/part/part_base.html:147 +#: templates/js/translated/company.js:1288 +#: templates/js/translated/company.js:1576 +#: templates/js/translated/model_renderers.js:316 #: templates/js/translated/part.js:817 templates/js/translated/part.js:1225 msgid "Inactive" msgstr "" #: company/templates/company/company_base.html:27 -#: templates/js/translated/purchase_order.js:242 +#: templates/js/translated/purchase_order.js:224 msgid "Create Purchase Order" msgstr "" @@ -4590,7 +4769,7 @@ msgid "Edit company information" msgstr "Muokkaa yrityksen tietoja" #: company/templates/company/company_base.html:39 -#: templates/js/translated/company.js:445 +#: templates/js/translated/company.js:446 msgid "Edit Company" msgstr "Muokkaa yritystä" @@ -4605,11 +4784,12 @@ msgstr "Poista yritys" #: company/templates/company/company_base.html:53 #: company/templates/company/manufacturer_part.html:51 -#: company/templates/company/supplier_part.html:83 +#: company/templates/company/supplier_part.html:84 #: part/templates/part/part_thumb.html:20 #: report/templates/report/inventree_build_order_report.html:98 #: report/templates/report/inventree_purchase_order_report.html:40 #: report/templates/report/inventree_sales_order_report.html:40 +#: report/templates/report/inventree_sales_order_shipment_report.html:37 #: report/templates/report/inventree_test_report.html:84 #: report/templates/report/inventree_test_report.html:162 msgid "Part image" @@ -4630,16 +4810,16 @@ msgstr "" msgid "Delete image" msgstr "" -#: company/templates/company/company_base.html:92 order/models.py:990 -#: order/models.py:2147 order/templates/order/return_order_base.html:134 -#: order/templates/order/sales_order_base.html:151 stock/models.py:840 -#: stock/models.py:841 stock/serializers.py:1329 -#: stock/templates/stock/item_base.html:405 +#: company/templates/company/company_base.html:92 order/models.py:1017 +#: order/models.py:2186 order/templates/order/return_order_base.html:135 +#: order/templates/order/sales_order_base.html:152 stock/models.py:917 +#: stock/models.py:918 stock/serializers.py:1360 +#: stock/templates/stock/item_base.html:402 #: templates/email/overdue_sales_order.html:16 -#: templates/js/translated/company.js:503 +#: templates/js/translated/company.js:504 #: templates/js/translated/return_order.js:295 -#: templates/js/translated/sales_order.js:820 -#: templates/js/translated/stock.js:3043 +#: templates/js/translated/sales_order.js:779 +#: templates/js/translated/stock.js:3044 #: templates/js/translated/table_filters.js:820 msgid "Customer" msgstr "Asiakas" @@ -4653,7 +4833,7 @@ msgid "Phone" msgstr "Puhelin" #: company/templates/company/company_base.html:211 -#: part/templates/part/part_base.html:536 +#: part/templates/part/part_base.html:544 msgid "Remove Image" msgstr "" @@ -4662,19 +4842,19 @@ msgid "Remove associated image from this company" msgstr "" #: company/templates/company/company_base.html:214 -#: part/templates/part/part_base.html:539 +#: part/templates/part/part_base.html:547 #: templates/InvenTree/settings/user.html:88 #: templates/InvenTree/settings/user_sso.html:43 msgid "Remove" msgstr "Poista" #: company/templates/company/company_base.html:243 -#: part/templates/part/part_base.html:568 +#: part/templates/part/part_base.html:576 msgid "Upload Image" msgstr "" #: company/templates/company/company_base.html:258 -#: part/templates/part/part_base.html:622 +#: part/templates/part/part_base.html:630 msgid "Download Image" msgstr "" @@ -4714,7 +4894,7 @@ msgstr "" #: company/templates/company/detail.html:75 #: company/templates/company/sidebar.html:12 #: company/templates/company/supplier_part_sidebar.html:7 -#: order/templates/order/order_base.html:13 +#: order/templates/order/order_base.html:14 #: order/templates/order/purchase_orders.html:8 #: order/templates/order/purchase_orders.html:12 #: part/templates/part/detail.html:122 part/templates/part/part_sidebar.html:35 @@ -4737,7 +4917,7 @@ msgstr "" #: company/templates/company/detail.html:101 #: company/templates/company/sidebar.html:21 -#: order/templates/order/sales_order_base.html:13 +#: order/templates/order/sales_order_base.html:14 #: order/templates/order/sales_orders.html:8 #: order/templates/order/sales_orders.html:15 #: part/templates/part/detail.html:143 part/templates/part/part_sidebar.html:39 @@ -4764,7 +4944,7 @@ msgstr "" #: company/templates/company/detail.html:142 #: company/templates/company/sidebar.html:29 -#: order/templates/order/return_order_base.html:13 +#: order/templates/order/return_order_base.html:14 #: order/templates/order/return_orders.html:8 #: order/templates/order/return_orders.html:15 #: templates/InvenTree/settings/sidebar.html:61 @@ -4811,24 +4991,24 @@ msgid "Manufacturers" msgstr "" #: company/templates/company/manufacturer_part.html:35 -#: company/templates/company/supplier_part.html:227 -#: part/templates/part/detail.html:125 part/templates/part/part_base.html:83 +#: company/templates/company/supplier_part.html:228 +#: part/templates/part/detail.html:125 part/templates/part/part_base.html:84 msgid "Order part" msgstr "" #: company/templates/company/manufacturer_part.html:39 -#: templates/js/translated/company.js:1343 +#: templates/js/translated/company.js:1344 msgid "Edit manufacturer part" msgstr "" #: company/templates/company/manufacturer_part.html:43 -#: templates/js/translated/company.js:1344 +#: templates/js/translated/company.js:1345 msgid "Delete manufacturer part" msgstr "" #: company/templates/company/manufacturer_part.html:65 -#: company/templates/company/supplier_part.html:97 order/api.py:448 -#: order/serializers.py:564 +#: company/templates/company/supplier_part.html:98 order/api.py:411 +#: order/serializers.py:649 msgid "Internal Part" msgstr "" @@ -4837,8 +5017,8 @@ msgid "No manufacturer information available" msgstr "" #: company/templates/company/manufacturer_part.html:119 -#: company/templates/company/supplier_part.html:15 company/views.py:31 -#: part/admin.py:122 part/serializers.py:904 +#: company/templates/company/supplier_part.html:16 company/views.py:31 +#: part/admin.py:122 part/serializers.py:956 #: part/templates/part/part_sidebar.html:33 templates/InvenTree/search.html:190 #: templates/navbar.html:48 msgid "Suppliers" @@ -4887,112 +5067,113 @@ msgstr "" msgid "Contacts" msgstr "" -#: company/templates/company/supplier_part.html:50 -#: templates/js/translated/company.js:1526 +#: company/templates/company/supplier_part.html:51 +#: templates/js/translated/company.js:1527 msgid "Supplier part actions" msgstr "" -#: company/templates/company/supplier_part.html:55 #: company/templates/company/supplier_part.html:56 -#: company/templates/company/supplier_part.html:228 +#: company/templates/company/supplier_part.html:57 +#: company/templates/company/supplier_part.html:229 #: part/templates/part/detail.html:126 msgid "Order Part" msgstr "" -#: company/templates/company/supplier_part.html:60 #: company/templates/company/supplier_part.html:61 +#: company/templates/company/supplier_part.html:62 msgid "Update Availability" msgstr "" -#: company/templates/company/supplier_part.html:63 #: company/templates/company/supplier_part.html:64 -#: templates/js/translated/company.js:294 +#: company/templates/company/supplier_part.html:65 +#: templates/js/translated/company.js:295 msgid "Edit Supplier Part" msgstr "" -#: company/templates/company/supplier_part.html:68 #: company/templates/company/supplier_part.html:69 -#: templates/js/translated/company.js:269 +#: company/templates/company/supplier_part.html:70 +#: templates/js/translated/company.js:270 msgid "Duplicate Supplier Part" msgstr "" -#: company/templates/company/supplier_part.html:73 +#: company/templates/company/supplier_part.html:74 msgid "Delete Supplier Part" msgstr "" -#: company/templates/company/supplier_part.html:74 +#: company/templates/company/supplier_part.html:75 msgid "Delete Supplier Part" msgstr "" -#: company/templates/company/supplier_part.html:133 +#: company/templates/company/supplier_part.html:134 +#: order/templates/order/order_base.html:155 msgid "No supplier information available" msgstr "" -#: company/templates/company/supplier_part.html:139 order/serializers.py:553 -#: part/bom.py:287 part/bom.py:319 part/serializers.py:548 -#: templates/js/translated/company.js:349 templates/js/translated/part.js:1793 +#: company/templates/company/supplier_part.html:140 order/serializers.py:638 +#: part/bom.py:286 part/bom.py:315 part/serializers.py:592 +#: templates/js/translated/company.js:350 templates/js/translated/part.js:1793 #: templates/js/translated/pricing.js:510 -#: templates/js/translated/purchase_order.js:1920 -#: templates/js/translated/purchase_order.js:2098 +#: templates/js/translated/purchase_order.js:1904 +#: templates/js/translated/purchase_order.js:2082 msgid "SKU" msgstr "" -#: company/templates/company/supplier_part.html:206 +#: company/templates/company/supplier_part.html:207 msgid "Supplier Part Stock" msgstr "" -#: company/templates/company/supplier_part.html:209 -#: part/templates/part/detail.html:24 stock/templates/stock/location.html:204 +#: company/templates/company/supplier_part.html:210 +#: part/templates/part/detail.html:24 stock/templates/stock/location.html:205 msgid "Create new stock item" msgstr "" -#: company/templates/company/supplier_part.html:210 -#: part/templates/part/detail.html:25 stock/templates/stock/location.html:205 +#: company/templates/company/supplier_part.html:211 +#: part/templates/part/detail.html:25 stock/templates/stock/location.html:206 #: templates/js/translated/stock.js:543 msgid "New Stock Item" msgstr "" -#: company/templates/company/supplier_part.html:223 +#: company/templates/company/supplier_part.html:224 msgid "Supplier Part Orders" msgstr "" -#: company/templates/company/supplier_part.html:246 +#: company/templates/company/supplier_part.html:247 msgid "Pricing Information" msgstr "" -#: company/templates/company/supplier_part.html:251 -#: templates/js/translated/company.js:398 +#: company/templates/company/supplier_part.html:252 +#: templates/js/translated/company.js:399 #: templates/js/translated/pricing.js:684 msgid "Add Price Break" msgstr "" -#: company/templates/company/supplier_part.html:270 +#: company/templates/company/supplier_part.html:271 msgid "Supplier Part Notes" msgstr "" -#: company/templates/company/supplier_part.html:305 +#: company/templates/company/supplier_part.html:306 msgid "Supplier Part QR Code" msgstr "" -#: company/templates/company/supplier_part.html:316 +#: company/templates/company/supplier_part.html:317 msgid "Link Barcode to Supplier Part" msgstr "" -#: company/templates/company/supplier_part.html:388 +#: company/templates/company/supplier_part.html:389 msgid "Update Part Availability" msgstr "" #: company/templates/company/supplier_part_sidebar.html:5 -#: part/serializers.py:902 part/stocktake.py:223 +#: part/serializers.py:954 part/stocktake.py:223 #: part/templates/part/category.html:180 #: part/templates/part/category_sidebar.html:17 stock/admin.py:68 -#: stock/serializers.py:1014 stock/serializers.py:1192 -#: stock/templates/stock/location.html:167 -#: stock/templates/stock/location.html:188 -#: stock/templates/stock/location.html:200 +#: stock/serializers.py:1045 stock/serializers.py:1223 +#: stock/templates/stock/location.html:168 +#: stock/templates/stock/location.html:189 +#: stock/templates/stock/location.html:201 #: stock/templates/stock/location_sidebar.html:7 #: templates/InvenTree/search.html:155 templates/js/translated/part.js:1067 -#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2850 +#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2851 #: users/models.py:206 msgid "Stock Items" msgstr "" @@ -5022,99 +5203,99 @@ msgstr "Uusi asiakas" msgid "New Company" msgstr "Uusi yritys" -#: generic/states/tests.py:18 order/status_codes.py:13 +#: generic/states/fields.py:118 +msgid "Custom status key" +msgstr "" + +#: generic/states/fields.py:119 +msgid "Additional status information for this item" +msgstr "" + +#: generic/states/tests.py:22 order/status_codes.py:13 msgid "Placed" msgstr "" -#: importer/mixins.py:263 +#: importer/mixins.py:261 msgid "Invalid export format" msgstr "" -#: importer/models.py:59 -msgid "Timestamp" -msgstr "" - -#: importer/models.py:64 +#: importer/models.py:65 msgid "Data file to import" msgstr "" -#: importer/models.py:73 templates/js/translated/tables.js:558 +#: importer/models.py:74 templates/js/translated/tables.js:558 msgid "Columns" msgstr "" -#: importer/models.py:84 +#: importer/models.py:85 msgid "Import status" msgstr "" -#: importer/models.py:94 +#: importer/models.py:95 msgid "Field Defaults" msgstr "" -#: importer/models.py:101 +#: importer/models.py:102 msgid "Field Overrides" msgstr "" -#: importer/models.py:108 +#: importer/models.py:109 msgid "Field Filters" msgstr "" -#: importer/models.py:230 +#: importer/models.py:239 msgid "Some required fields have not been mapped" msgstr "" -#: importer/models.py:387 +#: importer/models.py:396 msgid "Column is already mapped to a database field" msgstr "" -#: importer/models.py:392 +#: importer/models.py:401 msgid "Field is already mapped to a data column" msgstr "" -#: importer/models.py:401 +#: importer/models.py:410 msgid "Column mapping must be linked to a valid import session" msgstr "" -#: importer/models.py:406 +#: importer/models.py:415 msgid "Column does not exist in the data file" msgstr "" -#: importer/models.py:413 +#: importer/models.py:422 msgid "Field does not exist in the target model" msgstr "" -#: importer/models.py:417 +#: importer/models.py:426 msgid "Selected field is read-only" msgstr "" -#: importer/models.py:422 importer/models.py:493 +#: importer/models.py:431 importer/models.py:502 msgid "Import Session" msgstr "" -#: importer/models.py:426 +#: importer/models.py:435 msgid "Field" msgstr "" -#: importer/models.py:428 +#: importer/models.py:437 msgid "Column" msgstr "" -#: importer/models.py:497 +#: importer/models.py:506 msgid "Row Index" msgstr "" -#: importer/models.py:500 +#: importer/models.py:509 msgid "Original row data" msgstr "" -#: importer/models.py:503 part/models.py:3951 -msgid "Data" -msgstr "" - -#: importer/models.py:505 machine/models.py:110 +#: importer/models.py:514 machine/models.py:110 msgid "Errors" msgstr "" -#: importer/models.py:507 part/api.py:873 +#: importer/models.py:516 part/api.py:857 msgid "Valid" msgstr "" @@ -5166,19 +5347,19 @@ msgstr "" msgid "Row has already been completed" msgstr "" -#: importer/status_codes.py:11 +#: importer/status_codes.py:13 msgid "Initializing" msgstr "" -#: importer/status_codes.py:12 +#: importer/status_codes.py:18 msgid "Mapping Columns" msgstr "" -#: importer/status_codes.py:13 +#: importer/status_codes.py:21 msgid "Importing Data" msgstr "" -#: importer/status_codes.py:16 +#: importer/status_codes.py:24 msgid "Processing Data" msgstr "" @@ -5202,52 +5383,52 @@ msgstr "" msgid "Value must be a valid dictionary object" msgstr "" -#: machine/machine_types/label_printer.py:215 +#: machine/machine_types/label_printer.py:216 msgid "Copies" msgstr "" -#: machine/machine_types/label_printer.py:216 +#: machine/machine_types/label_printer.py:217 msgid "Number of copies to print for each label" msgstr "" -#: machine/machine_types/label_printer.py:231 +#: machine/machine_types/label_printer.py:232 msgid "Connected" msgstr "" -#: machine/machine_types/label_printer.py:232 order/api.py:1410 -#: templates/js/translated/sales_order.js:1078 +#: machine/machine_types/label_printer.py:233 order/api.py:1532 +#: templates/js/translated/sales_order.js:1044 msgid "Unknown" msgstr "" -#: machine/machine_types/label_printer.py:233 +#: machine/machine_types/label_printer.py:234 msgid "Printing" msgstr "" -#: machine/machine_types/label_printer.py:234 +#: machine/machine_types/label_printer.py:235 msgid "No media" msgstr "" -#: machine/machine_types/label_printer.py:235 +#: machine/machine_types/label_printer.py:236 msgid "Paper jam" msgstr "" -#: machine/machine_types/label_printer.py:236 +#: machine/machine_types/label_printer.py:237 msgid "Disconnected" msgstr "" -#: machine/machine_types/label_printer.py:243 +#: machine/machine_types/label_printer.py:244 msgid "Label Printer" msgstr "" -#: machine/machine_types/label_printer.py:244 +#: machine/machine_types/label_printer.py:245 msgid "Directly print labels for various items." msgstr "" -#: machine/machine_types/label_printer.py:250 +#: machine/machine_types/label_printer.py:251 msgid "Printer Location" msgstr "" -#: machine/machine_types/label_printer.py:251 +#: machine/machine_types/label_printer.py:252 msgid "Scope the printer to a specific location" msgstr "" @@ -5307,79 +5488,75 @@ msgstr "" #: report/templates/report/inventree_purchase_order_report.html:31 #: report/templates/report/inventree_sales_order_report.html:31 #: templates/js/translated/order.js:352 -#: templates/js/translated/purchase_order.js:2195 -#: templates/js/translated/sales_order.js:1883 +#: templates/js/translated/purchase_order.js:2179 +#: templates/js/translated/sales_order.js:1864 msgid "Total Price" msgstr "Hinta yhteensä" -#: order/api.py:80 order/api.py:151 order/serializers.py:93 -#: order/templates/order/order_base.html:123 -#: order/templates/order/return_order_base.html:116 -#: order/templates/order/sales_order_base.html:125 +#: order/api.py:78 order/api.py:149 order/serializers.py:124 +#: order/templates/order/order_base.html:124 +#: order/templates/order/return_order_base.html:117 +#: order/templates/order/sales_order_base.html:126 msgid "Order Status" msgstr "" -#: order/api.py:88 order/templates/order/order_base.html:111 -#: order/templates/order/return_order_base.html:104 -#: order/templates/order/sales_order_base.html:113 +#: order/api.py:86 order/templates/order/order_base.html:112 +#: order/templates/order/return_order_base.html:105 +#: order/templates/order/sales_order_base.html:114 msgid "Order Reference" msgstr "" -#: order/api.py:116 templates/js/translated/table_filters.js:93 +#: order/api.py:114 order/api.py:1022 +#: templates/js/translated/table_filters.js:93 #: templates/js/translated/table_filters.js:625 #: templates/js/translated/table_filters.js:651 #: templates/js/translated/table_filters.js:666 msgid "Outstanding" msgstr "" -#: order/api.py:132 +#: order/api.py:130 msgid "Has Project Code" msgstr "" -#: order/api.py:155 templates/js/translated/table_filters.js:201 +#: order/api.py:153 templates/js/translated/table_filters.js:201 #: templates/js/translated/table_filters.js:791 msgid "Has Pricing" msgstr "" -#: order/api.py:230 -msgid "No matching purchase order found" -msgstr "" - -#: order/api.py:425 order/api.py:763 order/models.py:1484 order/models.py:1598 -#: order/models.py:1649 order/models.py:1764 order/models.py:1923 -#: order/models.py:2383 order/models.py:2439 -#: templates/js/translated/sales_order.js:1524 +#: order/api.py:375 order/api.py:771 order/api.py:986 order/models.py:1500 +#: order/models.py:1614 order/models.py:1665 order/models.py:1793 +#: order/models.py:1956 order/models.py:2422 order/models.py:2478 +#: templates/js/translated/sales_order.js:1490 msgid "Order" msgstr "" -#: order/api.py:429 order/api.py:784 +#: order/api.py:379 order/api.py:809 msgid "Order Complete" msgstr "" -#: order/api.py:452 +#: order/api.py:430 msgid "Order Pending" msgstr "" -#: order/api.py:1404 order/models.py:379 order/models.py:1485 -#: order/models.py:1599 order/templates/order/order_base.html:9 -#: order/templates/order/order_base.html:18 +#: order/api.py:1526 order/models.py:386 order/models.py:1501 +#: order/models.py:1615 order/templates/order/order_base.html:10 +#: order/templates/order/order_base.html:19 #: report/templates/report/inventree_purchase_order_report.html:14 -#: stock/serializers.py:120 stock/templates/stock/item_base.html:176 +#: stock/serializers.py:121 stock/templates/stock/item_base.html:173 #: templates/email/overdue_purchase_order.html:15 #: templates/js/translated/part.js:1752 templates/js/translated/pricing.js:804 -#: templates/js/translated/purchase_order.js:168 -#: templates/js/translated/purchase_order.js:753 -#: templates/js/translated/purchase_order.js:1743 -#: templates/js/translated/stock.js:2345 templates/js/translated/stock.js:2991 +#: templates/js/translated/purchase_order.js:736 +#: templates/js/translated/purchase_order.js:1727 +#: templates/js/translated/stock.js:2346 templates/js/translated/stock.js:2992 msgid "Purchase Order" msgstr "" -#: order/api.py:1408 order/models.py:2091 order/models.py:2384 -#: order/models.py:2440 order/templates/order/return_order_base.html:9 -#: order/templates/order/return_order_base.html:28 +#: order/api.py:1530 order/models.py:2124 order/models.py:2423 +#: order/models.py:2479 order/templates/order/return_order_base.html:10 +#: order/templates/order/return_order_base.html:29 #: report/templates/report/inventree_return_order_report.html:13 #: templates/js/translated/return_order.js:280 -#: templates/js/translated/stock.js:3025 +#: templates/js/translated/stock.js:3026 msgid "Return Order" msgstr "" @@ -5387,751 +5564,782 @@ msgstr "" msgid "Total price for this order" msgstr "" -#: order/models.py:95 order/serializers.py:71 +#: order/models.py:95 order/serializers.py:73 msgid "Order Currency" msgstr "Tilauksen valuutta" -#: order/models.py:98 order/serializers.py:72 +#: order/models.py:98 order/serializers.py:74 msgid "Currency for this order (leave blank to use company default)" msgstr "" -#: order/models.py:246 +#: order/models.py:243 msgid "Contact does not match selected company" msgstr "" -#: order/models.py:289 +#: order/models.py:296 msgid "Order description (optional)" msgstr "" -#: order/models.py:298 +#: order/models.py:305 msgid "Select project code for this order" msgstr "" -#: order/models.py:302 order/models.py:1385 order/models.py:1817 +#: order/models.py:309 order/models.py:1402 order/models.py:1846 msgid "Link to external page" msgstr "" -#: order/models.py:310 +#: order/models.py:317 msgid "Expected date for order delivery. Order will be overdue after this date." msgstr "" -#: order/models.py:324 +#: order/models.py:331 msgid "Created By" msgstr "" -#: order/models.py:332 +#: order/models.py:339 msgid "User or group responsible for this order" msgstr "" -#: order/models.py:343 +#: order/models.py:350 msgid "Point of contact for this order" msgstr "" -#: order/models.py:353 +#: order/models.py:360 msgid "Company address for this order" msgstr "" -#: order/models.py:468 order/models.py:979 +#: order/models.py:480 order/models.py:1006 msgid "Order reference" msgstr "Tilauksen viite" -#: order/models.py:477 +#: order/models.py:489 msgid "Purchase order status" msgstr "" -#: order/models.py:492 +#: order/models.py:504 msgid "Company from which the items are being ordered" msgstr "" -#: order/models.py:503 order/templates/order/order_base.html:153 -#: templates/js/translated/purchase_order.js:1772 +#: order/models.py:515 order/templates/order/order_base.html:162 +#: templates/js/translated/purchase_order.js:1756 msgid "Supplier Reference" msgstr "" -#: order/models.py:504 +#: order/models.py:516 msgid "Supplier order reference code" msgstr "" -#: order/models.py:513 +#: order/models.py:525 msgid "received by" msgstr "" -#: order/models.py:519 order/models.py:2173 +#: order/models.py:531 order/models.py:2212 msgid "Issue Date" msgstr "" -#: order/models.py:520 order/models.py:2174 +#: order/models.py:532 order/models.py:2213 msgid "Date order was issued" msgstr "" -#: order/models.py:527 order/models.py:2181 +#: order/models.py:539 order/models.py:2220 msgid "Date order was completed" msgstr "" -#: order/models.py:571 +#: order/models.py:549 order/models.py:1552 +msgid "Destination for received items" +msgstr "" + +#: order/models.py:593 msgid "Part supplier must match PO supplier" msgstr "" -#: order/models.py:806 +#: order/models.py:828 msgid "Quantity must be a positive number" msgstr "" -#: order/models.py:991 +#: order/models.py:1018 msgid "Company to which the items are being sold" msgstr "" -#: order/models.py:1003 +#: order/models.py:1030 msgid "Sales order status" msgstr "" -#: order/models.py:1014 order/models.py:2166 +#: order/models.py:1041 order/models.py:2205 msgid "Customer Reference " msgstr "Asiakkaan viite " -#: order/models.py:1015 order/models.py:2167 +#: order/models.py:1042 order/models.py:2206 msgid "Customer order reference code" msgstr "" -#: order/models.py:1019 order/models.py:1771 -#: templates/js/translated/sales_order.js:879 -#: templates/js/translated/sales_order.js:1060 +#: order/models.py:1046 order/models.py:1800 +#: templates/js/translated/sales_order.js:838 +#: templates/js/translated/sales_order.js:1026 msgid "Shipment Date" msgstr "" -#: order/models.py:1028 +#: order/models.py:1055 msgid "shipped by" msgstr "" -#: order/models.py:1077 +#: order/models.py:1094 msgid "Order is already complete" msgstr "" -#: order/models.py:1080 +#: order/models.py:1097 msgid "Order is already cancelled" msgstr "" -#: order/models.py:1084 +#: order/models.py:1101 msgid "Only an open order can be marked as complete" msgstr "" -#: order/models.py:1088 +#: order/models.py:1105 msgid "Order cannot be completed as there are incomplete shipments" msgstr "" -#: order/models.py:1093 +#: order/models.py:1110 msgid "Order cannot be completed as there are incomplete line items" msgstr "" -#: order/models.py:1357 +#: order/models.py:1374 msgid "Item quantity" msgstr "" -#: order/models.py:1374 +#: order/models.py:1391 msgid "Line item reference" msgstr "" -#: order/models.py:1381 +#: order/models.py:1398 msgid "Line item notes" msgstr "" -#: order/models.py:1393 +#: order/models.py:1410 msgid "Target date for this line item (leave blank to use the target date from the order)" msgstr "" -#: order/models.py:1414 +#: order/models.py:1431 msgid "Line item description (optional)" msgstr "" -#: order/models.py:1420 -msgid "Context" -msgstr "" - -#: order/models.py:1421 +#: order/models.py:1438 msgid "Additional context for this line" msgstr "" -#: order/models.py:1431 +#: order/models.py:1448 msgid "Unit price" msgstr "" -#: order/models.py:1445 +#: order/models.py:1462 msgid "Purchase Order Line Item" msgstr "" -#: order/models.py:1469 +#: order/models.py:1486 msgid "Supplier part must match supplier" msgstr "" -#: order/models.py:1476 -msgid "deleted" -msgstr "" - -#: order/models.py:1504 +#: order/models.py:1520 msgid "Supplier part" msgstr "" -#: order/models.py:1511 order/templates/order/order_base.html:201 +#: order/models.py:1527 order/templates/order/order_base.html:210 #: templates/js/translated/part.js:1876 templates/js/translated/part.js:1908 -#: templates/js/translated/purchase_order.js:1369 -#: templates/js/translated/purchase_order.js:2239 +#: templates/js/translated/purchase_order.js:1352 +#: templates/js/translated/purchase_order.js:2223 #: templates/js/translated/return_order.js:762 #: templates/js/translated/table_filters.js:119 #: templates/js/translated/table_filters.js:605 msgid "Received" msgstr "Vastaanotettu" -#: order/models.py:1512 +#: order/models.py:1528 msgid "Number of items received" msgstr "" -#: order/models.py:1520 stock/models.py:959 stock/serializers.py:610 -#: stock/templates/stock/item_base.html:183 -#: templates/js/translated/stock.js:2396 +#: order/models.py:1536 stock/models.py:1036 stock/serializers.py:637 +#: stock/templates/stock/item_base.html:180 +#: templates/js/translated/stock.js:2397 msgid "Purchase Price" msgstr "" -#: order/models.py:1521 +#: order/models.py:1537 msgid "Unit purchase price" msgstr "" -#: order/models.py:1536 -msgid "Where does the Purchaser want this item to be stored?" -msgstr "" - -#: order/models.py:1587 +#: order/models.py:1603 msgid "Purchase Order Extra Line" msgstr "" -#: order/models.py:1616 +#: order/models.py:1632 msgid "Sales Order Line Item" msgstr "" -#: order/models.py:1637 +#: order/models.py:1653 msgid "Virtual part cannot be assigned to a sales order" msgstr "" -#: order/models.py:1642 +#: order/models.py:1658 msgid "Only salable parts can be assigned to a sales order" msgstr "" -#: order/models.py:1668 part/templates/part/part_pricing.html:107 -#: part/templates/part/prices.html:139 templates/js/translated/pricing.js:957 +#: order/models.py:1684 part/templates/part/part_pricing.html:107 +#: part/templates/part/prices.html:139 templates/js/translated/pricing.js:955 msgid "Sale Price" msgstr "" -#: order/models.py:1669 +#: order/models.py:1685 msgid "Unit sale price" msgstr "" -#: order/models.py:1678 order/status_codes.py:48 -#: templates/js/translated/sales_order.js:1559 -#: templates/js/translated/sales_order.js:1680 -#: templates/js/translated/sales_order.js:1993 +#: order/models.py:1694 order/status_codes.py:50 +#: templates/js/translated/sales_order.js:1525 +#: templates/js/translated/sales_order.js:1661 +#: templates/js/translated/sales_order.js:1974 msgid "Shipped" msgstr "Lähetetty" -#: order/models.py:1679 +#: order/models.py:1695 msgid "Shipped quantity" msgstr "" -#: order/models.py:1751 +#: order/models.py:1769 msgid "Sales Order Shipment" msgstr "" -#: order/models.py:1772 +#: order/models.py:1801 msgid "Date of shipment" msgstr "" -#: order/models.py:1778 templates/js/translated/sales_order.js:1072 +#: order/models.py:1807 templates/js/translated/sales_order.js:1038 msgid "Delivery Date" msgstr "" -#: order/models.py:1779 +#: order/models.py:1808 msgid "Date of delivery of shipment" msgstr "" -#: order/models.py:1787 +#: order/models.py:1816 msgid "Checked By" msgstr "" -#: order/models.py:1788 +#: order/models.py:1817 msgid "User who checked this shipment" msgstr "" -#: order/models.py:1795 order/models.py:2018 order/serializers.py:1475 -#: order/serializers.py:1585 templates/js/translated/model_renderers.js:455 +#: order/models.py:1824 order/models.py:2051 order/serializers.py:1601 +#: order/serializers.py:1725 +#: report/templates/report/inventree_sales_order_shipment_report.html:14 +#: templates/js/translated/model_renderers.js:458 +#: templates/js/translated/sales_order.js:1615 msgid "Shipment" msgstr "" -#: order/models.py:1796 +#: order/models.py:1825 msgid "Shipment number" msgstr "" -#: order/models.py:1804 +#: order/models.py:1833 msgid "Tracking Number" msgstr "Seurantakoodi" -#: order/models.py:1805 +#: order/models.py:1834 msgid "Shipment tracking information" msgstr "" -#: order/models.py:1812 +#: order/models.py:1841 msgid "Invoice Number" msgstr "Laskunumero" -#: order/models.py:1813 +#: order/models.py:1842 msgid "Reference number for associated invoice" msgstr "" -#: order/models.py:1833 +#: order/models.py:1862 msgid "Shipment has already been sent" msgstr "" -#: order/models.py:1836 +#: order/models.py:1865 msgid "Shipment has no allocated stock items" msgstr "" -#: order/models.py:1912 +#: order/models.py:1945 msgid "Sales Order Extra Line" msgstr "" -#: order/models.py:1941 +#: order/models.py:1974 msgid "Sales Order Allocation" msgstr "" -#: order/models.py:1964 order/models.py:1966 +#: order/models.py:1997 order/models.py:1999 msgid "Stock item has not been assigned" msgstr "" -#: order/models.py:1973 +#: order/models.py:2006 msgid "Cannot allocate stock item to a line with a different part" msgstr "" -#: order/models.py:1976 +#: order/models.py:2009 msgid "Cannot allocate stock to a line without a part" msgstr "" -#: order/models.py:1979 +#: order/models.py:2012 msgid "Allocation quantity cannot exceed stock quantity" msgstr "" -#: order/models.py:1998 order/serializers.py:1345 +#: order/models.py:2031 order/serializers.py:1471 msgid "Quantity must be 1 for serialized stock item" msgstr "" -#: order/models.py:2001 +#: order/models.py:2034 msgid "Sales order does not match shipment" msgstr "" -#: order/models.py:2002 plugin/base/barcodes/api.py:524 +#: order/models.py:2035 plugin/base/barcodes/api.py:629 msgid "Shipment does not match sales order" msgstr "" -#: order/models.py:2010 +#: order/models.py:2043 msgid "Line" msgstr "" -#: order/models.py:2019 +#: order/models.py:2052 msgid "Sales order shipment reference" msgstr "" -#: order/models.py:2032 order/models.py:2391 +#: order/models.py:2065 order/models.py:2430 #: templates/js/translated/return_order.js:720 msgid "Item" msgstr "" -#: order/models.py:2033 +#: order/models.py:2066 msgid "Select stock item to allocate" msgstr "" -#: order/models.py:2042 +#: order/models.py:2075 msgid "Enter stock allocation quantity" msgstr "" -#: order/models.py:2136 +#: order/models.py:2175 msgid "Return Order reference" msgstr "" -#: order/models.py:2148 +#: order/models.py:2187 msgid "Company from which items are being returned" msgstr "" -#: order/models.py:2160 +#: order/models.py:2199 msgid "Return order status" msgstr "" -#: order/models.py:2362 +#: order/models.py:2401 msgid "Return Order Line Item" msgstr "" -#: order/models.py:2376 +#: order/models.py:2415 msgid "Only serialized items can be assigned to a Return Order" msgstr "" -#: order/models.py:2392 +#: order/models.py:2431 msgid "Select item to return from customer" msgstr "" -#: order/models.py:2398 +#: order/models.py:2437 msgid "Received Date" msgstr "" -#: order/models.py:2399 +#: order/models.py:2438 msgid "The date this this return item was received" msgstr "" -#: order/models.py:2410 templates/js/translated/return_order.js:731 +#: order/models.py:2449 templates/js/translated/return_order.js:731 #: templates/js/translated/table_filters.js:122 msgid "Outcome" msgstr "" -#: order/models.py:2411 +#: order/models.py:2450 msgid "Outcome for this line item" msgstr "" -#: order/models.py:2418 +#: order/models.py:2457 msgid "Cost associated with return or repair for this line item" msgstr "" -#: order/models.py:2428 +#: order/models.py:2467 msgid "Return Order Extra Line" msgstr "" -#: order/serializers.py:86 +#: order/serializers.py:87 +msgid "Order ID" +msgstr "" + +#: order/serializers.py:87 +msgid "ID of the order to duplicate" +msgstr "" + +#: order/serializers.py:93 +msgid "Copy Lines" +msgstr "" + +#: order/serializers.py:94 +msgid "Copy line items from the original order" +msgstr "" + +#: order/serializers.py:100 +msgid "Copy Extra Lines" +msgstr "" + +#: order/serializers.py:101 +msgid "Copy extra line items from the original order" +msgstr "" + +#: order/serializers.py:117 msgid "Completed Lines" msgstr "" -#: order/serializers.py:283 stock/admin.py:195 +#: order/serializers.py:161 +msgid "Duplicate Order" +msgstr "" + +#: order/serializers.py:162 +msgid "Specify options for duplicating this order" +msgstr "" + +#: order/serializers.py:234 +msgid "Invalid order ID" +msgstr "" + +#: order/serializers.py:374 stock/admin.py:196 msgid "Supplier Name" msgstr "" -#: order/serializers.py:331 +#: order/serializers.py:416 msgid "Order cannot be cancelled" msgstr "" -#: order/serializers.py:346 order/serializers.py:1366 +#: order/serializers.py:431 order/serializers.py:1492 msgid "Allow order to be closed with incomplete line items" msgstr "" -#: order/serializers.py:356 order/serializers.py:1376 +#: order/serializers.py:441 order/serializers.py:1502 msgid "Order has incomplete line items" msgstr "" -#: order/serializers.py:506 +#: order/serializers.py:591 msgid "Order is not open" msgstr "" -#: order/serializers.py:527 +#: order/serializers.py:612 msgid "Auto Pricing" msgstr "" -#: order/serializers.py:529 +#: order/serializers.py:614 msgid "Automatically calculate purchase price based on supplier part data" msgstr "" -#: order/serializers.py:539 +#: order/serializers.py:624 msgid "Purchase price currency" msgstr "" -#: order/serializers.py:545 +#: order/serializers.py:630 msgid "Merge Items" msgstr "" -#: order/serializers.py:547 +#: order/serializers.py:632 msgid "Merge items with the same part, destination and target date into one line item" msgstr "" -#: order/serializers.py:560 part/models.py:1033 +#: order/serializers.py:645 part/models.py:1094 part/serializers.py:387 msgid "Internal Part Number" msgstr "" -#: order/serializers.py:568 +#: order/serializers.py:653 msgid "Internal Part Name" msgstr "" -#: order/serializers.py:584 +#: order/serializers.py:669 msgid "Supplier part must be specified" msgstr "" -#: order/serializers.py:587 +#: order/serializers.py:672 msgid "Purchase order must be specified" msgstr "" -#: order/serializers.py:595 +#: order/serializers.py:680 msgid "Supplier must match purchase order" msgstr "" -#: order/serializers.py:596 +#: order/serializers.py:681 msgid "Purchase order must match supplier" msgstr "" -#: order/serializers.py:639 order/serializers.py:1446 +#: order/serializers.py:724 order/serializers.py:1572 msgid "Line Item" msgstr "" -#: order/serializers.py:645 +#: order/serializers.py:730 msgid "Line item does not match purchase order" msgstr "" -#: order/serializers.py:655 order/serializers.py:779 order/serializers.py:1782 +#: order/serializers.py:740 order/serializers.py:881 order/serializers.py:1934 msgid "Select destination location for received items" msgstr "" -#: order/serializers.py:671 templates/js/translated/purchase_order.js:1130 +#: order/serializers.py:756 templates/js/translated/purchase_order.js:1113 #: templates/js/translated/stock.js:1200 msgid "Enter batch code for incoming stock items" msgstr "" -#: order/serializers.py:679 templates/js/translated/purchase_order.js:1155 +#: order/serializers.py:764 templates/js/translated/purchase_order.js:1138 msgid "Enter serial numbers for incoming stock items" msgstr "" -#: order/serializers.py:691 +#: order/serializers.py:776 msgid "Override packaging information for incoming stock items" msgstr "" -#: order/serializers.py:699 +#: order/serializers.py:784 msgid "Additional note for incoming stock items" msgstr "" -#: order/serializers.py:706 templates/js/translated/barcode.js:52 +#: order/serializers.py:791 templates/js/translated/barcode.js:52 msgid "Barcode" msgstr "Viivakoodi" -#: order/serializers.py:707 +#: order/serializers.py:792 msgid "Scanned barcode" msgstr "" -#: order/serializers.py:723 +#: order/serializers.py:808 msgid "Barcode is already in use" msgstr "" -#: order/serializers.py:747 +#: order/serializers.py:831 msgid "An integer quantity must be provided for trackable parts" msgstr "" -#: order/serializers.py:795 order/serializers.py:1798 +#: order/serializers.py:898 order/serializers.py:1950 msgid "Line items must be provided" msgstr "" -#: order/serializers.py:811 +#: order/serializers.py:914 msgid "Destination location must be specified" msgstr "" -#: order/serializers.py:822 +#: order/serializers.py:925 msgid "Supplied barcode values must be unique" msgstr "" -#: order/serializers.py:1187 +#: order/serializers.py:1221 msgid "Sale price currency" msgstr "" -#: order/serializers.py:1248 +#: order/serializers.py:1260 +msgid "Allocated Items" +msgstr "" + +#: order/serializers.py:1374 msgid "No shipment details provided" msgstr "" -#: order/serializers.py:1309 order/serializers.py:1455 +#: order/serializers.py:1435 order/serializers.py:1581 msgid "Line item is not associated with this order" msgstr "" -#: order/serializers.py:1328 +#: order/serializers.py:1454 msgid "Quantity must be positive" msgstr "" -#: order/serializers.py:1465 +#: order/serializers.py:1591 msgid "Enter serial numbers to allocate" msgstr "" -#: order/serializers.py:1487 order/serializers.py:1593 +#: order/serializers.py:1613 order/serializers.py:1733 msgid "Shipment has already been shipped" msgstr "" -#: order/serializers.py:1490 order/serializers.py:1596 +#: order/serializers.py:1616 order/serializers.py:1736 msgid "Shipment is not associated with this order" msgstr "" -#: order/serializers.py:1537 +#: order/serializers.py:1671 msgid "No match found for the following serial numbers" msgstr "" -#: order/serializers.py:1544 -msgid "The following serial numbers are already allocated" +#: order/serializers.py:1678 +msgid "The following serial numbers are unavailable" msgstr "" -#: order/serializers.py:1752 +#: order/serializers.py:1904 msgid "Return order line item" msgstr "" -#: order/serializers.py:1758 +#: order/serializers.py:1910 msgid "Line item does not match return order" msgstr "" -#: order/serializers.py:1761 +#: order/serializers.py:1913 msgid "Line item has already been received" msgstr "" -#: order/serializers.py:1790 +#: order/serializers.py:1942 msgid "Items can only be received against orders which are in progress" msgstr "" -#: order/serializers.py:1873 +#: order/serializers.py:2025 msgid "Line price currency" msgstr "" -#: order/status_codes.py:17 order/status_codes.py:52 stock/status_codes.py:16 +#: order/status_codes.py:17 order/status_codes.py:54 stock/status_codes.py:16 msgid "Lost" msgstr "Kadonnut" -#: order/status_codes.py:18 order/status_codes.py:53 stock/status_codes.py:22 +#: order/status_codes.py:18 order/status_codes.py:55 stock/status_codes.py:24 msgid "Returned" msgstr "Palautettu" -#: order/status_codes.py:45 order/status_codes.py:77 +#: order/status_codes.py:47 order/status_codes.py:79 msgid "In Progress" msgstr "Kesken" -#: order/status_codes.py:101 +#: order/status_codes.py:105 msgid "Return" msgstr "" -#: order/status_codes.py:104 +#: order/status_codes.py:108 msgid "Repair" msgstr "" -#: order/status_codes.py:107 +#: order/status_codes.py:111 msgid "Replace" msgstr "" -#: order/status_codes.py:110 +#: order/status_codes.py:114 msgid "Refund" msgstr "" -#: order/status_codes.py:113 +#: order/status_codes.py:117 msgid "Reject" msgstr "" -#: order/tasks.py:25 +#: order/tasks.py:30 msgid "Overdue Purchase Order" msgstr "" -#: order/tasks.py:30 +#: order/tasks.py:35 #, python-brace-format msgid "Purchase order {po} is now overdue" msgstr "" -#: order/tasks.py:75 +#: order/tasks.py:80 msgid "Overdue Sales Order" msgstr "" -#: order/tasks.py:80 +#: order/tasks.py:85 #, python-brace-format msgid "Sales order {so} is now overdue" msgstr "" -#: order/templates/order/order_base.html:51 +#: order/templates/order/order_base.html:52 msgid "Print purchase order report" msgstr "" -#: order/templates/order/order_base.html:53 -#: order/templates/order/return_order_base.html:62 -#: order/templates/order/sales_order_base.html:62 +#: order/templates/order/order_base.html:54 +#: order/templates/order/return_order_base.html:63 +#: order/templates/order/sales_order_base.html:63 msgid "Export order to file" msgstr "" -#: order/templates/order/order_base.html:59 -#: order/templates/order/return_order_base.html:72 -#: order/templates/order/sales_order_base.html:71 +#: order/templates/order/order_base.html:60 +#: order/templates/order/return_order_base.html:73 +#: order/templates/order/sales_order_base.html:72 msgid "Order actions" msgstr "" -#: order/templates/order/order_base.html:64 -#: order/templates/order/return_order_base.html:76 -#: order/templates/order/sales_order_base.html:75 +#: order/templates/order/order_base.html:65 +#: order/templates/order/return_order_base.html:77 +#: order/templates/order/sales_order_base.html:76 msgid "Edit order" msgstr "Muokkaa tilausta" -#: order/templates/order/order_base.html:68 +#: order/templates/order/order_base.html:69 msgid "Duplicate order" msgstr "Kopioi tilaus" -#: order/templates/order/order_base.html:73 -#: order/templates/order/return_order_base.html:78 -#: order/templates/order/sales_order_base.html:77 +#: order/templates/order/order_base.html:74 +#: order/templates/order/return_order_base.html:79 +#: order/templates/order/sales_order_base.html:78 msgid "Hold order" msgstr "" -#: order/templates/order/order_base.html:78 -#: order/templates/order/return_order_base.html:81 -#: order/templates/order/sales_order_base.html:80 +#: order/templates/order/order_base.html:79 +#: order/templates/order/return_order_base.html:82 +#: order/templates/order/sales_order_base.html:81 msgid "Cancel order" msgstr "Peru tilaus" -#: order/templates/order/order_base.html:84 #: order/templates/order/order_base.html:85 -#: order/templates/order/return_order_base.html:85 +#: order/templates/order/order_base.html:86 #: order/templates/order/return_order_base.html:86 -#: order/templates/order/sales_order_base.html:86 +#: order/templates/order/return_order_base.html:87 #: order/templates/order/sales_order_base.html:87 +#: order/templates/order/sales_order_base.html:88 msgid "Issue Order" msgstr "" -#: order/templates/order/order_base.html:88 -#: order/templates/order/return_order_base.html:89 -msgid "Mark order as complete" -msgstr "" - #: order/templates/order/order_base.html:89 #: order/templates/order/return_order_base.html:90 -#: order/templates/order/sales_order_base.html:100 +msgid "Mark order as complete" +msgstr "" + +#: order/templates/order/order_base.html:90 +#: order/templates/order/return_order_base.html:91 +#: order/templates/order/sales_order_base.html:101 msgid "Complete Order" msgstr "" -#: order/templates/order/order_base.html:96 +#: order/templates/order/order_base.html:97 msgid "Supplier part thumbnail" msgstr "" -#: order/templates/order/order_base.html:116 -#: order/templates/order/return_order_base.html:109 -#: order/templates/order/sales_order_base.html:118 +#: order/templates/order/order_base.html:117 +#: order/templates/order/return_order_base.html:110 +#: order/templates/order/sales_order_base.html:119 msgid "Order Description" msgstr "" -#: order/templates/order/order_base.html:146 -msgid "No suppplier information available" -msgstr "" - -#: order/templates/order/order_base.html:159 -#: order/templates/order/sales_order_base.html:164 +#: order/templates/order/order_base.html:168 +#: order/templates/order/sales_order_base.html:165 msgid "Completed Line Items" msgstr "" -#: order/templates/order/order_base.html:165 -#: order/templates/order/sales_order_base.html:170 -#: order/templates/order/sales_order_base.html:180 +#: order/templates/order/order_base.html:174 +#: order/templates/order/sales_order_base.html:171 +#: order/templates/order/sales_order_base.html:181 msgid "Incomplete" msgstr "" -#: order/templates/order/order_base.html:184 -#: order/templates/order/return_order_base.html:160 +#: order/templates/order/order_base.html:193 +#: order/templates/order/return_order_base.html:161 #: report/templates/report/inventree_build_order_report.html:121 msgid "Issued" msgstr "" -#: order/templates/order/order_base.html:229 +#: order/templates/order/order_base.html:238 msgid "Total cost" msgstr "Kokonaiskustannukset" -#: order/templates/order/order_base.html:233 -#: order/templates/order/return_order_base.html:202 -#: order/templates/order/sales_order_base.html:246 +#: order/templates/order/order_base.html:242 +#: order/templates/order/return_order_base.html:203 +#: order/templates/order/sales_order_base.html:247 msgid "Total cost could not be calculated" msgstr "Kokonaiskustannuksia ei voitu laskea" -#: order/templates/order/order_base.html:335 +#: order/templates/order/order_base.html:344 msgid "Purchase Order QR Code" msgstr "" -#: order/templates/order/order_base.html:347 +#: order/templates/order/order_base.html:356 msgid "Link Barcode to Purchase Order" msgstr "" @@ -6184,12 +6392,12 @@ msgstr "" #: part/templates/part/import_wizard/ajax_match_references.html:42 #: part/templates/part/import_wizard/match_fields.html:71 #: part/templates/part/import_wizard/match_references.html:49 -#: templates/js/translated/bom.js:133 templates/js/translated/build.js:530 -#: templates/js/translated/build.js:1802 -#: templates/js/translated/purchase_order.js:696 -#: templates/js/translated/purchase_order.js:1288 +#: templates/js/translated/bom.js:133 templates/js/translated/build.js:533 +#: templates/js/translated/build.js:1805 +#: templates/js/translated/purchase_order.js:679 +#: templates/js/translated/purchase_order.js:1271 #: templates/js/translated/return_order.js:505 -#: templates/js/translated/sales_order.js:1145 +#: templates/js/translated/sales_order.js:1111 #: templates/js/translated/stock.js:720 templates/js/translated/stock.js:889 #: templates/patterns/wizard/match_fields.html:70 msgid "Remove row" @@ -6242,7 +6450,7 @@ msgstr "" #: order/templates/order/purchase_order_detail.html:27 #: order/templates/order/return_order_detail.html:24 #: order/templates/order/sales_order_detail.html:24 -#: templates/js/translated/purchase_order.js:414 +#: templates/js/translated/purchase_order.js:397 #: templates/js/translated/return_order.js:458 #: templates/js/translated/sales_order.js:237 msgid "Add Line Item" @@ -6277,45 +6485,45 @@ msgstr "" msgid "Order Notes" msgstr "" -#: order/templates/order/return_order_base.html:18 -#: order/templates/order/sales_order_base.html:18 +#: order/templates/order/return_order_base.html:19 +#: order/templates/order/sales_order_base.html:19 msgid "Customer logo thumbnail" msgstr "" -#: order/templates/order/return_order_base.html:60 +#: order/templates/order/return_order_base.html:61 msgid "Print return order report" msgstr "" -#: order/templates/order/return_order_base.html:64 -#: order/templates/order/sales_order_base.html:64 +#: order/templates/order/return_order_base.html:65 +#: order/templates/order/sales_order_base.html:65 msgid "Print packing list" msgstr "" -#: order/templates/order/return_order_base.html:141 -#: order/templates/order/sales_order_base.html:158 +#: order/templates/order/return_order_base.html:142 +#: order/templates/order/sales_order_base.html:159 #: templates/js/translated/return_order.js:308 -#: templates/js/translated/sales_order.js:833 +#: templates/js/translated/sales_order.js:792 msgid "Customer Reference" msgstr "" -#: order/templates/order/return_order_base.html:198 -#: order/templates/order/sales_order_base.html:242 +#: order/templates/order/return_order_base.html:199 +#: order/templates/order/sales_order_base.html:243 #: part/templates/part/part_pricing.html:32 #: part/templates/part/part_pricing.html:58 #: part/templates/part/part_pricing.html:99 #: part/templates/part/part_pricing.html:114 #: templates/js/translated/part.js:1079 -#: templates/js/translated/purchase_order.js:1822 +#: templates/js/translated/purchase_order.js:1806 #: templates/js/translated/return_order.js:380 -#: templates/js/translated/sales_order.js:891 +#: templates/js/translated/sales_order.js:850 msgid "Total Cost" msgstr "" -#: order/templates/order/return_order_base.html:273 +#: order/templates/order/return_order_base.html:274 msgid "Return Order QR Code" msgstr "" -#: order/templates/order/return_order_base.html:285 +#: order/templates/order/return_order_base.html:286 msgid "Link Barcode to Return Order" msgstr "" @@ -6323,40 +6531,40 @@ msgstr "" msgid "Order Details" msgstr "" -#: order/templates/order/sales_order_base.html:60 +#: order/templates/order/sales_order_base.html:61 msgid "Print sales order report" msgstr "" -#: order/templates/order/sales_order_base.html:91 #: order/templates/order/sales_order_base.html:92 +#: order/templates/order/sales_order_base.html:93 msgid "Ship Items" msgstr "" -#: order/templates/order/sales_order_base.html:95 #: order/templates/order/sales_order_base.html:96 +#: order/templates/order/sales_order_base.html:97 msgid "Mark As Shipped" msgstr "" -#: order/templates/order/sales_order_base.html:99 -#: templates/js/translated/sales_order.js:536 +#: order/templates/order/sales_order_base.html:100 +#: templates/js/translated/sales_order.js:495 msgid "Complete Sales Order" msgstr "" -#: order/templates/order/sales_order_base.html:138 +#: order/templates/order/sales_order_base.html:139 msgid "This Sales Order has not been fully allocated" msgstr "" -#: order/templates/order/sales_order_base.html:176 +#: order/templates/order/sales_order_base.html:177 #: order/templates/order/sales_order_detail.html:99 #: order/templates/order/so_sidebar.html:11 msgid "Completed Shipments" msgstr "" -#: order/templates/order/sales_order_base.html:339 +#: order/templates/order/sales_order_base.html:340 msgid "Sales Order QR Code" msgstr "" -#: order/templates/order/sales_order_base.html:351 +#: order/templates/order/sales_order_base.html:352 msgid "Link Barcode to Sales Order" msgstr "" @@ -6370,7 +6578,7 @@ msgid "Pending Shipments" msgstr "" #: order/templates/order/sales_order_detail.html:71 -#: templates/js/translated/bom.js:1277 templates/js/translated/build.js:1063 +#: templates/js/translated/bom.js:1277 templates/js/translated/build.js:1066 #: templates/js/translated/filters.js:299 msgid "Actions" msgstr "Toiminnot" @@ -6383,39 +6591,40 @@ msgstr "" msgid "Match Supplier Parts" msgstr "" -#: order/views.py:406 +#: order/views.py:407 msgid "Sales order not found" msgstr "" -#: order/views.py:412 +#: order/views.py:413 msgid "Price not found" msgstr "Hintaa ei löytynyt" -#: order/views.py:415 +#: order/views.py:416 #, python-brace-format msgid "Updated {part} unit-price to {price}" msgstr "" -#: order/views.py:421 +#: order/views.py:422 #, python-brace-format msgid "Updated {part} unit-price to {price} and quantity to {qty}" msgstr "" -#: part/admin.py:48 part/models.py:1032 part/templates/part/part_base.html:269 +#: part/admin.py:48 part/models.py:1093 part/serializers.py:939 +#: part/templates/part/part_base.html:277 #: report/templates/report/inventree_stock_location_report.html:103 #: templates/js/translated/part.js:1233 templates/js/translated/part.js:2347 -#: templates/js/translated/stock.js:2121 +#: templates/js/translated/stock.js:2122 msgid "IPN" msgstr "" -#: part/admin.py:50 part/models.py:1041 part/templates/part/part_base.html:286 +#: part/admin.py:50 part/models.py:1102 part/templates/part/part_base.html:294 #: report/models.py:161 templates/js/translated/part.js:1238 #: templates/js/translated/part.js:2353 msgid "Revision" msgstr "" -#: part/admin.py:53 part/admin.py:319 part/models.py:1014 -#: part/templates/part/category.html:91 part/templates/part/part_base.html:307 +#: part/admin.py:53 part/admin.py:319 part/models.py:1075 +#: part/templates/part/category.html:91 part/templates/part/part_base.html:315 msgid "Keywords" msgstr "Avainsanat" @@ -6427,7 +6636,7 @@ msgstr "" msgid "Category ID" msgstr "" -#: part/admin.py:67 part/admin.py:304 part/serializers.py:880 +#: part/admin.py:67 part/admin.py:304 part/serializers.py:924 #: part/stocktake.py:222 msgid "Category Name" msgstr "" @@ -6440,11 +6649,11 @@ msgstr "" msgid "Default Supplier ID" msgstr "" -#: part/admin.py:81 part/models.py:1000 part/templates/part/part_base.html:177 +#: part/admin.py:81 part/models.py:1061 part/templates/part/part_base.html:178 msgid "Variant Of" msgstr "" -#: part/admin.py:84 part/models.py:1138 part/templates/part/part_base.html:203 +#: part/admin.py:84 part/models.py:1199 part/templates/part/part_base.html:204 msgid "Minimum Stock" msgstr "" @@ -6452,23 +6661,23 @@ msgstr "" msgid "Used In" msgstr "" -#: part/admin.py:150 part/serializers.py:897 -#: part/templates/part/part_base.html:241 stock/admin.py:235 +#: part/admin.py:150 part/serializers.py:949 +#: part/templates/part/part_base.html:249 stock/admin.py:236 #: templates/js/translated/part.js:717 templates/js/translated/part.js:2159 msgid "Building" msgstr "" -#: part/admin.py:155 part/models.py:3202 part/models.py:3216 +#: part/admin.py:155 part/models.py:3253 part/models.py:3267 #: templates/js/translated/part.js:976 msgid "Minimum Cost" msgstr "" -#: part/admin.py:158 part/models.py:3209 part/models.py:3223 +#: part/admin.py:158 part/models.py:3260 part/models.py:3274 #: templates/js/translated/part.js:986 msgid "Maximum Cost" msgstr "" -#: part/admin.py:308 part/admin.py:387 stock/admin.py:57 stock/admin.py:215 +#: part/admin.py:308 part/admin.py:387 stock/admin.py:57 stock/admin.py:216 msgid "Parent ID" msgstr "" @@ -6481,8 +6690,8 @@ msgstr "" msgid "Category Path" msgstr "" -#: part/admin.py:325 part/models.py:425 part/serializers.py:130 -#: part/serializers.py:290 part/serializers.py:415 +#: part/admin.py:325 part/models.py:420 part/serializers.py:130 +#: part/serializers.py:323 part/serializers.py:459 #: part/templates/part/cat_link.html:3 part/templates/part/category.html:20 #: part/templates/part/category.html:138 part/templates/part/category.html:158 #: part/templates/part/category_sidebar.html:9 @@ -6509,15 +6718,15 @@ msgstr "" msgid "Part Revision" msgstr "" -#: part/admin.py:418 part/serializers.py:1346 +#: part/admin.py:418 part/serializers.py:1400 #: templates/js/translated/pricing.js:358 -#: templates/js/translated/pricing.js:1024 +#: templates/js/translated/pricing.js:1022 msgid "Minimum Price" msgstr "" -#: part/admin.py:423 part/serializers.py:1361 +#: part/admin.py:423 part/serializers.py:1415 #: templates/js/translated/pricing.js:353 -#: templates/js/translated/pricing.js:1032 +#: templates/js/translated/pricing.js:1030 msgid "Maximum Price" msgstr "" @@ -6545,94 +6754,98 @@ msgstr "" msgid "Filter by top-level categories" msgstr "" +#: part/api.py:156 stock/api.py:343 +msgid "Cascade" +msgstr "" + #: part/api.py:158 msgid "Include sub-categories in filtered results" msgstr "" -#: part/api.py:179 templates/js/translated/part.js:311 +#: part/api.py:178 templates/js/translated/part.js:311 msgid "Parent" msgstr "" -#: part/api.py:181 +#: part/api.py:180 msgid "Filter by parent category" msgstr "" -#: part/api.py:214 +#: part/api.py:213 msgid "Exclude Tree" msgstr "" -#: part/api.py:216 +#: part/api.py:215 msgid "Exclude sub-categories under the specified category" msgstr "" -#: part/api.py:441 +#: part/api.py:440 msgid "Has Results" msgstr "" -#: part/api.py:608 +#: part/api.py:604 msgid "Incoming Purchase Order" msgstr "" -#: part/api.py:626 +#: part/api.py:618 msgid "Outgoing Sales Order" msgstr "" -#: part/api.py:642 +#: part/api.py:630 msgid "Stock produced by Build Order" msgstr "" -#: part/api.py:726 +#: part/api.py:712 msgid "Stock required for Build Order" msgstr "" -#: part/api.py:874 +#: part/api.py:858 msgid "Validate entire Bill of Materials" msgstr "" -#: part/api.py:880 +#: part/api.py:864 msgid "This option must be selected" msgstr "" -#: part/api.py:916 +#: part/api.py:900 msgid "Is Revision" msgstr "" -#: part/api.py:926 +#: part/api.py:910 msgid "Has Revisions" msgstr "" -#: part/api.py:1117 +#: part/api.py:1101 msgid "BOM Valid" msgstr "" -#: part/api.py:1523 part/models.py:1024 part/models.py:3489 part/models.py:4046 -#: part/serializers.py:430 part/serializers.py:1202 -#: part/templates/part/part_base.html:260 stock/api.py:781 +#: part/api.py:1509 part/models.py:1085 part/models.py:3540 part/models.py:4104 +#: part/serializers.py:474 part/serializers.py:1255 +#: part/templates/part/part_base.html:268 stock/api.py:781 #: templates/InvenTree/settings/settings_staff_js.html:300 #: templates/js/translated/notification.js:60 #: templates/js/translated/part.js:2383 msgid "Category" msgstr "Kategoria" -#: part/api.py:1761 +#: part/api.py:1750 msgid "Assembly part is testable" msgstr "" -#: part/api.py:1770 +#: part/api.py:1759 msgid "Component part is testable" msgstr "" -#: part/api.py:1821 +#: part/api.py:1810 msgid "Uses" msgstr "" -#: part/bom.py:178 part/models.py:107 part/models.py:1077 -#: part/templates/part/category.html:113 part/templates/part/part_base.html:376 +#: part/bom.py:183 part/models.py:109 part/models.py:1138 +#: part/templates/part/category.html:113 part/templates/part/part_base.html:384 #: templates/js/translated/part.js:2397 msgid "Default Location" msgstr "" -#: part/bom.py:179 part/serializers.py:905 +#: part/bom.py:184 part/serializers.py:957 #: templates/email/low_stock_notification.html:16 msgid "Total Stock" msgstr "" @@ -6641,789 +6854,789 @@ msgstr "" msgid "Input quantity for price calculation" msgstr "" -#: part/models.py:88 part/models.py:4047 part/templates/part/category.html:16 +#: part/models.py:90 part/models.py:4105 part/templates/part/category.html:16 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "" -#: part/models.py:89 part/templates/part/category.html:133 +#: part/models.py:91 part/templates/part/category.html:133 #: templates/InvenTree/search.html:97 templates/js/translated/search.js:158 #: users/models.py:202 msgid "Part Categories" msgstr "" -#: part/models.py:108 +#: part/models.py:110 msgid "Default location for parts in this category" msgstr "" -#: part/models.py:113 stock/models.py:187 templates/js/translated/part.js:2828 -#: templates/js/translated/stock.js:2856 +#: part/models.py:115 stock/models.py:193 templates/js/translated/part.js:2828 +#: templates/js/translated/stock.js:2857 #: templates/js/translated/table_filters.js:246 #: templates/js/translated/table_filters.js:290 msgid "Structural" msgstr "" -#: part/models.py:115 +#: part/models.py:117 msgid "Parts may not be directly assigned to a structural category, but may be assigned to child categories." msgstr "" -#: part/models.py:124 +#: part/models.py:126 msgid "Default keywords" msgstr "Oletus avainsanat" -#: part/models.py:125 +#: part/models.py:127 msgid "Default keywords for parts in this category" msgstr "" -#: part/models.py:131 stock/models.py:90 stock/models.py:169 +#: part/models.py:133 stock/models.py:96 stock/models.py:175 #: templates/InvenTree/settings/settings_staff_js.html:445 msgid "Icon" msgstr "Kuvake" -#: part/models.py:132 part/serializers.py:143 part/serializers.py:161 -#: stock/models.py:170 +#: part/models.py:134 part/serializers.py:143 part/serializers.py:161 +#: stock/models.py:176 msgid "Icon (optional)" msgstr "Kuvake (valinnainen)" -#: part/models.py:178 +#: part/models.py:180 msgid "You cannot make this part category structural because some parts are already assigned to it!" msgstr "" -#: part/models.py:519 +#: part/models.py:514 msgid "Cannot delete this part as it is locked" msgstr "" -#: part/models.py:522 +#: part/models.py:517 msgid "Cannot delete this part as it is still active" msgstr "" -#: part/models.py:527 +#: part/models.py:522 msgid "Cannot delete this part as it is used in an assembly" msgstr "" -#: part/models.py:565 +#: part/models.py:560 msgid "Invalid choice for parent part" msgstr "" -#: part/models.py:613 part/models.py:620 +#: part/models.py:608 part/models.py:615 #, python-brace-format msgid "Part '{self}' cannot be used in BOM for '{parent}' (recursive)" msgstr "" -#: part/models.py:632 +#: part/models.py:627 #, python-brace-format msgid "Part '{parent}' is used in BOM for '{self}' (recursive)" msgstr "" -#: part/models.py:695 +#: part/models.py:694 #, python-brace-format msgid "IPN must match regex pattern {pattern}" msgstr "" -#: part/models.py:703 +#: part/models.py:702 msgid "Part cannot be a revision of itself" msgstr "" -#: part/models.py:710 +#: part/models.py:709 msgid "Cannot make a revision of a part which is already a revision" msgstr "" -#: part/models.py:717 +#: part/models.py:716 msgid "Revision code must be specified" msgstr "" -#: part/models.py:724 +#: part/models.py:723 msgid "Revisions are only allowed for assembly parts" msgstr "" -#: part/models.py:731 +#: part/models.py:730 msgid "Cannot make a revision of a template part" msgstr "" -#: part/models.py:737 +#: part/models.py:736 msgid "Parent part must point to the same template" msgstr "" -#: part/models.py:816 +#: part/models.py:832 msgid "Stock item with this serial number already exists" msgstr "" -#: part/models.py:917 +#: part/models.py:976 msgid "Duplicate IPN not allowed in part settings" msgstr "" -#: part/models.py:926 +#: part/models.py:988 msgid "Duplicate part revision already exists." msgstr "" -#: part/models.py:936 +#: part/models.py:997 msgid "Part with this Name, IPN and Revision already exists." msgstr "" -#: part/models.py:951 +#: part/models.py:1012 msgid "Parts cannot be assigned to structural part categories!" msgstr "" -#: part/models.py:983 part/models.py:4102 +#: part/models.py:1044 part/models.py:4160 msgid "Part name" msgstr "" -#: part/models.py:988 +#: part/models.py:1049 msgid "Is Template" msgstr "" -#: part/models.py:989 +#: part/models.py:1050 msgid "Is this part a template part?" msgstr "" -#: part/models.py:999 +#: part/models.py:1060 msgid "Is this part a variant of another part?" msgstr "" -#: part/models.py:1007 +#: part/models.py:1068 msgid "Part description (optional)" msgstr "" -#: part/models.py:1015 +#: part/models.py:1076 msgid "Part keywords to improve visibility in search results" msgstr "" -#: part/models.py:1025 +#: part/models.py:1086 msgid "Part category" msgstr "" -#: part/models.py:1040 +#: part/models.py:1101 msgid "Part revision or version number" msgstr "" -#: part/models.py:1050 +#: part/models.py:1111 msgid "Is this part a revision of another part?" msgstr "" -#: part/models.py:1051 part/templates/part/part_base.html:277 +#: part/models.py:1112 part/templates/part/part_base.html:285 msgid "Revision Of" msgstr "" -#: part/models.py:1075 +#: part/models.py:1136 msgid "Where is this item normally stored?" msgstr "" -#: part/models.py:1121 part/templates/part/part_base.html:385 +#: part/models.py:1182 part/templates/part/part_base.html:393 msgid "Default Supplier" msgstr "" -#: part/models.py:1122 +#: part/models.py:1183 msgid "Default supplier part" msgstr "" -#: part/models.py:1129 +#: part/models.py:1190 msgid "Default Expiry" msgstr "" -#: part/models.py:1130 +#: part/models.py:1191 msgid "Expiry time (in days) for stock items of this part" msgstr "" -#: part/models.py:1139 +#: part/models.py:1200 msgid "Minimum allowed stock level" msgstr "" -#: part/models.py:1148 +#: part/models.py:1209 msgid "Units of measure for this part" msgstr "" -#: part/models.py:1155 +#: part/models.py:1216 msgid "Can this part be built from other parts?" msgstr "" -#: part/models.py:1161 +#: part/models.py:1222 msgid "Can this part be used to build other parts?" msgstr "" -#: part/models.py:1167 +#: part/models.py:1228 msgid "Does this part have tracking for unique items?" msgstr "" -#: part/models.py:1173 +#: part/models.py:1234 msgid "Can this part have test results recorded against it?" msgstr "" -#: part/models.py:1179 +#: part/models.py:1240 msgid "Can this part be purchased from external suppliers?" msgstr "" -#: part/models.py:1185 +#: part/models.py:1246 msgid "Can this part be sold to customers?" msgstr "" -#: part/models.py:1189 +#: part/models.py:1250 msgid "Is this part active?" msgstr "" -#: part/models.py:1194 templates/js/translated/part.js:821 +#: part/models.py:1255 templates/js/translated/part.js:821 #: templates/js/translated/table_filters.js:724 msgid "Locked" msgstr "" -#: part/models.py:1195 +#: part/models.py:1256 msgid "Locked parts cannot be edited" msgstr "" -#: part/models.py:1201 +#: part/models.py:1262 msgid "Is this a virtual part, such as a software product or license?" msgstr "" -#: part/models.py:1207 +#: part/models.py:1268 msgid "BOM checksum" msgstr "" -#: part/models.py:1208 +#: part/models.py:1269 msgid "Stored BOM checksum" msgstr "" -#: part/models.py:1216 +#: part/models.py:1277 msgid "BOM checked by" msgstr "" -#: part/models.py:1221 +#: part/models.py:1282 msgid "BOM checked date" msgstr "" -#: part/models.py:1237 +#: part/models.py:1298 msgid "Creation User" msgstr "" -#: part/models.py:1247 +#: part/models.py:1308 msgid "Owner responsible for this part" msgstr "" -#: part/models.py:1252 part/templates/part/part_base.html:348 -#: stock/templates/stock/item_base.html:451 +#: part/models.py:1313 part/templates/part/part_base.html:356 +#: stock/templates/stock/item_base.html:448 #: templates/js/translated/part.js:2490 msgid "Last Stocktake" msgstr "" -#: part/models.py:2125 +#: part/models.py:2185 msgid "Sell multiple" msgstr "" -#: part/models.py:3116 +#: part/models.py:3167 msgid "Currency used to cache pricing calculations" msgstr "" -#: part/models.py:3132 +#: part/models.py:3183 msgid "Minimum BOM Cost" msgstr "" -#: part/models.py:3133 +#: part/models.py:3184 msgid "Minimum cost of component parts" msgstr "" -#: part/models.py:3139 +#: part/models.py:3190 msgid "Maximum BOM Cost" msgstr "" -#: part/models.py:3140 +#: part/models.py:3191 msgid "Maximum cost of component parts" msgstr "" -#: part/models.py:3146 +#: part/models.py:3197 msgid "Minimum Purchase Cost" msgstr "" -#: part/models.py:3147 +#: part/models.py:3198 msgid "Minimum historical purchase cost" msgstr "" -#: part/models.py:3153 +#: part/models.py:3204 msgid "Maximum Purchase Cost" msgstr "" -#: part/models.py:3154 +#: part/models.py:3205 msgid "Maximum historical purchase cost" msgstr "" -#: part/models.py:3160 +#: part/models.py:3211 msgid "Minimum Internal Price" msgstr "" -#: part/models.py:3161 +#: part/models.py:3212 msgid "Minimum cost based on internal price breaks" msgstr "" -#: part/models.py:3167 +#: part/models.py:3218 msgid "Maximum Internal Price" msgstr "" -#: part/models.py:3168 +#: part/models.py:3219 msgid "Maximum cost based on internal price breaks" msgstr "" -#: part/models.py:3174 +#: part/models.py:3225 msgid "Minimum Supplier Price" msgstr "" -#: part/models.py:3175 +#: part/models.py:3226 msgid "Minimum price of part from external suppliers" msgstr "" -#: part/models.py:3181 +#: part/models.py:3232 msgid "Maximum Supplier Price" msgstr "" -#: part/models.py:3182 +#: part/models.py:3233 msgid "Maximum price of part from external suppliers" msgstr "" -#: part/models.py:3188 +#: part/models.py:3239 msgid "Minimum Variant Cost" msgstr "" -#: part/models.py:3189 +#: part/models.py:3240 msgid "Calculated minimum cost of variant parts" msgstr "" -#: part/models.py:3195 +#: part/models.py:3246 msgid "Maximum Variant Cost" msgstr "" -#: part/models.py:3196 +#: part/models.py:3247 msgid "Calculated maximum cost of variant parts" msgstr "" -#: part/models.py:3203 +#: part/models.py:3254 msgid "Override minimum cost" msgstr "" -#: part/models.py:3210 +#: part/models.py:3261 msgid "Override maximum cost" msgstr "" -#: part/models.py:3217 +#: part/models.py:3268 msgid "Calculated overall minimum cost" msgstr "" -#: part/models.py:3224 +#: part/models.py:3275 msgid "Calculated overall maximum cost" msgstr "" -#: part/models.py:3230 +#: part/models.py:3281 msgid "Minimum Sale Price" msgstr "" -#: part/models.py:3231 +#: part/models.py:3282 msgid "Minimum sale price based on price breaks" msgstr "" -#: part/models.py:3237 +#: part/models.py:3288 msgid "Maximum Sale Price" msgstr "" -#: part/models.py:3238 +#: part/models.py:3289 msgid "Maximum sale price based on price breaks" msgstr "" -#: part/models.py:3244 +#: part/models.py:3295 msgid "Minimum Sale Cost" msgstr "" -#: part/models.py:3245 +#: part/models.py:3296 msgid "Minimum historical sale price" msgstr "" -#: part/models.py:3251 +#: part/models.py:3302 msgid "Maximum Sale Cost" msgstr "" -#: part/models.py:3252 +#: part/models.py:3303 msgid "Maximum historical sale price" msgstr "" -#: part/models.py:3271 +#: part/models.py:3322 msgid "Part for stocktake" msgstr "" -#: part/models.py:3276 +#: part/models.py:3327 msgid "Item Count" msgstr "" -#: part/models.py:3277 +#: part/models.py:3328 msgid "Number of individual stock entries at time of stocktake" msgstr "" -#: part/models.py:3285 +#: part/models.py:3336 msgid "Total available stock at time of stocktake" msgstr "" -#: part/models.py:3289 part/models.py:3372 +#: part/models.py:3340 part/models.py:3423 part/serializers.py:263 #: part/templates/part/part_scheduling.html:13 #: report/templates/report/inventree_test_report.html:106 #: templates/InvenTree/settings/plugin_settings.html:37 #: templates/InvenTree/settings/settings_staff_js.html:543 -#: templates/js/translated/part.js:1092 templates/js/translated/pricing.js:826 -#: templates/js/translated/pricing.js:950 -#: templates/js/translated/purchase_order.js:1801 -#: templates/js/translated/stock.js:2905 +#: templates/js/translated/part.js:1092 templates/js/translated/pricing.js:824 +#: templates/js/translated/pricing.js:948 +#: templates/js/translated/purchase_order.js:1785 +#: templates/js/translated/stock.js:2906 msgid "Date" msgstr "Päivämäärä" -#: part/models.py:3290 +#: part/models.py:3341 msgid "Date stocktake was performed" msgstr "" -#: part/models.py:3298 +#: part/models.py:3349 msgid "Additional notes" msgstr "Muut merkinnät" -#: part/models.py:3308 +#: part/models.py:3359 msgid "User who performed this stocktake" msgstr "" -#: part/models.py:3314 +#: part/models.py:3365 msgid "Minimum Stock Cost" msgstr "" -#: part/models.py:3315 +#: part/models.py:3366 msgid "Estimated minimum cost of stock on hand" msgstr "" -#: part/models.py:3321 +#: part/models.py:3372 msgid "Maximum Stock Cost" msgstr "" -#: part/models.py:3322 +#: part/models.py:3373 msgid "Estimated maximum cost of stock on hand" msgstr "" -#: part/models.py:3378 templates/InvenTree/settings/settings_staff_js.html:532 +#: part/models.py:3429 templates/InvenTree/settings/settings_staff_js.html:532 msgid "Report" msgstr "Raportti" -#: part/models.py:3379 +#: part/models.py:3430 msgid "Stocktake report file (generated internally)" msgstr "" -#: part/models.py:3384 templates/InvenTree/settings/settings_staff_js.html:539 +#: part/models.py:3435 templates/InvenTree/settings/settings_staff_js.html:539 msgid "Part Count" msgstr "" -#: part/models.py:3385 +#: part/models.py:3436 msgid "Number of parts covered by stocktake" msgstr "" -#: part/models.py:3395 +#: part/models.py:3446 msgid "User who requested this stocktake report" msgstr "" -#: part/models.py:3405 +#: part/models.py:3456 msgid "Part Sale Price Break" msgstr "" -#: part/models.py:3517 +#: part/models.py:3568 msgid "Part Test Template" msgstr "" -#: part/models.py:3543 +#: part/models.py:3594 msgid "Invalid template name - must include at least one alphanumeric character" msgstr "" -#: part/models.py:3564 part/models.py:3733 +#: part/models.py:3615 part/models.py:3784 msgid "Choices must be unique" msgstr "" -#: part/models.py:3575 -msgid "Test templates can only be created for trackable parts" +#: part/models.py:3626 +msgid "Test templates can only be created for testable parts" msgstr "" -#: part/models.py:3586 +#: part/models.py:3637 msgid "Test template with the same key already exists for part" msgstr "" -#: part/models.py:3603 templates/js/translated/part.js:2898 +#: part/models.py:3654 templates/js/translated/part.js:2898 msgid "Test Name" msgstr "" -#: part/models.py:3604 +#: part/models.py:3655 msgid "Enter a name for the test" msgstr "" -#: part/models.py:3610 +#: part/models.py:3661 msgid "Test Key" msgstr "" -#: part/models.py:3611 +#: part/models.py:3662 msgid "Simplified key for the test" msgstr "" -#: part/models.py:3618 +#: part/models.py:3669 msgid "Test Description" msgstr "" -#: part/models.py:3619 +#: part/models.py:3670 msgid "Enter description for this test" msgstr "" -#: part/models.py:3623 report/models.py:208 +#: part/models.py:3674 report/models.py:216 #: templates/js/translated/part.js:2919 #: templates/js/translated/table_filters.js:502 msgid "Enabled" msgstr "Käytössä" -#: part/models.py:3623 +#: part/models.py:3674 msgid "Is this test enabled?" msgstr "" -#: part/models.py:3628 templates/js/translated/part.js:2927 +#: part/models.py:3679 templates/js/translated/part.js:2927 #: templates/js/translated/table_filters.js:498 msgid "Required" msgstr "" -#: part/models.py:3629 +#: part/models.py:3680 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:3634 templates/js/translated/part.js:2935 +#: part/models.py:3685 templates/js/translated/part.js:2935 msgid "Requires Value" msgstr "" -#: part/models.py:3635 +#: part/models.py:3686 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:3640 templates/js/translated/part.js:2942 +#: part/models.py:3691 templates/js/translated/part.js:2942 msgid "Requires Attachment" msgstr "" -#: part/models.py:3642 +#: part/models.py:3693 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:3648 part/models.py:3792 templates/js/translated/part.js:1643 +#: part/models.py:3699 part/models.py:3843 templates/js/translated/part.js:1643 msgid "Choices" msgstr "" -#: part/models.py:3649 +#: part/models.py:3700 msgid "Valid choices for this test (comma-separated)" msgstr "" -#: part/models.py:3681 +#: part/models.py:3732 msgid "Part Parameter Template" msgstr "" -#: part/models.py:3708 +#: part/models.py:3759 msgid "Checkbox parameters cannot have units" msgstr "" -#: part/models.py:3713 +#: part/models.py:3764 msgid "Checkbox parameters cannot have choices" msgstr "" -#: part/models.py:3750 +#: part/models.py:3801 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:3765 +#: part/models.py:3816 msgid "Parameter Name" msgstr "" -#: part/models.py:3772 +#: part/models.py:3823 msgid "Physical units for this parameter" msgstr "" -#: part/models.py:3780 +#: part/models.py:3831 msgid "Parameter description" msgstr "" -#: part/models.py:3786 templates/js/translated/part.js:1634 +#: part/models.py:3837 templates/js/translated/part.js:1634 #: templates/js/translated/table_filters.js:837 msgid "Checkbox" msgstr "" -#: part/models.py:3787 +#: part/models.py:3838 msgid "Is this parameter a checkbox?" msgstr "" -#: part/models.py:3793 +#: part/models.py:3844 msgid "Valid choices for this parameter (comma-separated)" msgstr "" -#: part/models.py:3827 +#: part/models.py:3881 msgid "Part Parameter" msgstr "" -#: part/models.py:3853 +#: part/models.py:3907 msgid "Parameter cannot be modified - part is locked" msgstr "" -#: part/models.py:3889 +#: part/models.py:3945 msgid "Invalid choice for parameter value" msgstr "" -#: part/models.py:3938 +#: part/models.py:3996 msgid "Parent Part" msgstr "" -#: part/models.py:3946 part/models.py:4054 part/models.py:4055 +#: part/models.py:4004 part/models.py:4112 part/models.py:4113 #: templates/InvenTree/settings/settings_staff_js.html:295 msgid "Parameter Template" msgstr "" -#: part/models.py:3952 +#: part/models.py:4010 msgid "Parameter Value" msgstr "" -#: part/models.py:4002 +#: part/models.py:4060 msgid "Part Category Parameter Template" msgstr "" -#: part/models.py:4061 templates/InvenTree/settings/settings_staff_js.html:304 +#: part/models.py:4119 templates/InvenTree/settings/settings_staff_js.html:304 msgid "Default Value" msgstr "" -#: part/models.py:4062 +#: part/models.py:4120 msgid "Default Parameter Value" msgstr "" -#: part/models.py:4100 +#: part/models.py:4158 msgid "Part ID or part name" msgstr "" -#: part/models.py:4101 +#: part/models.py:4159 msgid "Unique part ID value" msgstr "" -#: part/models.py:4103 +#: part/models.py:4161 msgid "Part IPN value" msgstr "" -#: part/models.py:4104 +#: part/models.py:4162 msgid "Level" msgstr "" -#: part/models.py:4104 +#: part/models.py:4162 msgid "BOM level" msgstr "" -#: part/models.py:4215 +#: part/models.py:4272 msgid "BOM item cannot be modified - assembly is locked" msgstr "" -#: part/models.py:4222 +#: part/models.py:4279 msgid "BOM item cannot be modified - variant assembly is locked" msgstr "" -#: part/models.py:4232 +#: part/models.py:4289 msgid "Select parent part" msgstr "" -#: part/models.py:4242 +#: part/models.py:4299 msgid "Sub part" msgstr "" -#: part/models.py:4243 +#: part/models.py:4300 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:4254 +#: part/models.py:4311 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:4260 +#: part/models.py:4317 msgid "This BOM item is optional" msgstr "" -#: part/models.py:4266 +#: part/models.py:4323 msgid "This BOM item is consumable (it is not tracked in build orders)" msgstr "" -#: part/models.py:4273 part/templates/part/upload_bom.html:55 +#: part/models.py:4330 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "" -#: part/models.py:4274 +#: part/models.py:4331 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:4281 +#: part/models.py:4338 msgid "BOM item reference" msgstr "" -#: part/models.py:4289 +#: part/models.py:4346 msgid "BOM item notes" msgstr "" -#: part/models.py:4295 +#: part/models.py:4352 msgid "Checksum" msgstr "" -#: part/models.py:4296 +#: part/models.py:4353 msgid "BOM line checksum" msgstr "" -#: part/models.py:4301 templates/js/translated/table_filters.js:181 +#: part/models.py:4358 templates/js/translated/table_filters.js:181 msgid "Validated" msgstr "" -#: part/models.py:4302 +#: part/models.py:4359 msgid "This BOM item has been validated" msgstr "" -#: part/models.py:4307 part/templates/part/upload_bom.html:57 +#: part/models.py:4364 part/templates/part/upload_bom.html:57 #: templates/js/translated/bom.js:1054 #: templates/js/translated/table_filters.js:185 #: templates/js/translated/table_filters.js:218 msgid "Gets inherited" msgstr "" -#: part/models.py:4308 +#: part/models.py:4365 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:4314 +#: part/models.py:4371 msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:4399 stock/models.py:685 +#: part/models.py:4456 stock/models.py:762 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:4409 part/models.py:4411 +#: part/models.py:4466 part/models.py:4468 msgid "Sub part must be specified" msgstr "" -#: part/models.py:4551 +#: part/models.py:4613 msgid "BOM Item Substitute" msgstr "" -#: part/models.py:4572 +#: part/models.py:4634 msgid "Substitute part cannot be the same as the master part" msgstr "" -#: part/models.py:4585 +#: part/models.py:4647 msgid "Parent BOM item" msgstr "" -#: part/models.py:4593 +#: part/models.py:4655 msgid "Substitute part" msgstr "" -#: part/models.py:4609 +#: part/models.py:4671 msgid "Part 1" msgstr "" -#: part/models.py:4617 +#: part/models.py:4679 msgid "Part 2" msgstr "" -#: part/models.py:4618 +#: part/models.py:4680 msgid "Select Related Part" msgstr "" -#: part/models.py:4637 +#: part/models.py:4699 msgid "Part relationship cannot be created between a part and itself" msgstr "" -#: part/models.py:4642 +#: part/models.py:4704 msgid "Duplicate relationship already exists" msgstr "" @@ -7449,340 +7662,352 @@ msgstr "" msgid "Number of results recorded against this template" msgstr "" -#: part/serializers.py:225 part/serializers.py:243 stock/serializers.py:616 +#: part/serializers.py:225 part/serializers.py:243 stock/serializers.py:643 msgid "Purchase currency of this stock item" msgstr "" -#: part/serializers.py:291 +#: part/serializers.py:268 +msgid "Speculative Quantity" +msgstr "" + +#: part/serializers.py:277 +msgid "Model ID" +msgstr "" + +#: part/serializers.py:324 msgid "Number of parts using this template" msgstr "" -#: part/serializers.py:421 +#: part/serializers.py:465 msgid "No parts selected" msgstr "" -#: part/serializers.py:431 +#: part/serializers.py:475 msgid "Select category" msgstr "" -#: part/serializers.py:466 +#: part/serializers.py:510 msgid "Original Part" msgstr "" -#: part/serializers.py:467 +#: part/serializers.py:511 msgid "Select original part to duplicate" msgstr "" -#: part/serializers.py:472 +#: part/serializers.py:516 msgid "Copy Image" msgstr "" -#: part/serializers.py:473 +#: part/serializers.py:517 msgid "Copy image from original part" msgstr "" -#: part/serializers.py:479 part/templates/part/detail.html:293 +#: part/serializers.py:523 part/templates/part/detail.html:293 msgid "Copy BOM" msgstr "" -#: part/serializers.py:480 +#: part/serializers.py:524 msgid "Copy bill of materials from original part" msgstr "" -#: part/serializers.py:486 +#: part/serializers.py:530 msgid "Copy Parameters" msgstr "" -#: part/serializers.py:487 +#: part/serializers.py:531 msgid "Copy parameter data from original part" msgstr "" -#: part/serializers.py:493 +#: part/serializers.py:537 msgid "Copy Notes" msgstr "" -#: part/serializers.py:494 +#: part/serializers.py:538 msgid "Copy notes from original part" msgstr "" -#: part/serializers.py:512 +#: part/serializers.py:556 msgid "Initial Stock Quantity" msgstr "" -#: part/serializers.py:514 +#: part/serializers.py:558 msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added." msgstr "" -#: part/serializers.py:521 +#: part/serializers.py:565 msgid "Initial Stock Location" msgstr "" -#: part/serializers.py:522 +#: part/serializers.py:566 msgid "Specify initial stock location for this Part" msgstr "" -#: part/serializers.py:539 +#: part/serializers.py:583 msgid "Select supplier (or leave blank to skip)" msgstr "" -#: part/serializers.py:555 +#: part/serializers.py:599 msgid "Select manufacturer (or leave blank to skip)" msgstr "" -#: part/serializers.py:565 +#: part/serializers.py:609 msgid "Manufacturer part number" msgstr "Valmistajan osanumero" -#: part/serializers.py:572 +#: part/serializers.py:616 msgid "Selected company is not a valid supplier" msgstr "" -#: part/serializers.py:581 +#: part/serializers.py:625 msgid "Selected company is not a valid manufacturer" msgstr "" -#: part/serializers.py:592 +#: part/serializers.py:636 msgid "Manufacturer part matching this MPN already exists" msgstr "" -#: part/serializers.py:599 +#: part/serializers.py:643 msgid "Supplier part matching this SKU already exists" msgstr "" -#: part/serializers.py:903 +#: part/serializers.py:955 msgid "Revisions" msgstr "" -#: part/serializers.py:908 +#: part/serializers.py:960 msgid "Unallocated Stock" msgstr "" -#: part/serializers.py:911 +#: part/serializers.py:963 msgid "Variant Stock" msgstr "" -#: part/serializers.py:941 part/templates/part/copy_part.html:9 +#: part/serializers.py:993 part/templates/part/copy_part.html:9 #: templates/js/translated/part.js:474 msgid "Duplicate Part" msgstr "" -#: part/serializers.py:942 +#: part/serializers.py:994 msgid "Copy initial data from another Part" msgstr "" -#: part/serializers.py:948 templates/js/translated/part.js:103 +#: part/serializers.py:1000 templates/js/translated/part.js:103 msgid "Initial Stock" msgstr "" -#: part/serializers.py:949 +#: part/serializers.py:1001 msgid "Create Part with initial stock quantity" msgstr "" -#: part/serializers.py:955 +#: part/serializers.py:1007 msgid "Supplier Information" msgstr "" -#: part/serializers.py:956 +#: part/serializers.py:1008 msgid "Add initial supplier information for this part" msgstr "" -#: part/serializers.py:964 +#: part/serializers.py:1016 msgid "Copy Category Parameters" msgstr "" -#: part/serializers.py:965 +#: part/serializers.py:1017 msgid "Copy parameter templates from selected part category" msgstr "" -#: part/serializers.py:970 +#: part/serializers.py:1022 msgid "Existing Image" msgstr "" -#: part/serializers.py:971 +#: part/serializers.py:1023 msgid "Filename of an existing part image" msgstr "" -#: part/serializers.py:988 +#: part/serializers.py:1040 msgid "Image file does not exist" msgstr "" -#: part/serializers.py:1194 +#: part/serializers.py:1247 msgid "Limit stocktake report to a particular part, and any variant parts" msgstr "" -#: part/serializers.py:1204 +#: part/serializers.py:1257 msgid "Limit stocktake report to a particular part category, and any child categories" msgstr "" -#: part/serializers.py:1214 +#: part/serializers.py:1267 msgid "Limit stocktake report to a particular stock location, and any child locations" msgstr "" -#: part/serializers.py:1220 +#: part/serializers.py:1273 msgid "Exclude External Stock" msgstr "" -#: part/serializers.py:1221 +#: part/serializers.py:1274 msgid "Exclude stock items in external locations" msgstr "" -#: part/serializers.py:1226 +#: part/serializers.py:1279 msgid "Generate Report" msgstr "Luo raportti" -#: part/serializers.py:1227 +#: part/serializers.py:1280 msgid "Generate report file containing calculated stocktake data" msgstr "" -#: part/serializers.py:1232 +#: part/serializers.py:1285 msgid "Update Parts" msgstr "" -#: part/serializers.py:1233 +#: part/serializers.py:1286 msgid "Update specified parts with calculated stocktake data" msgstr "" -#: part/serializers.py:1241 +#: part/serializers.py:1294 msgid "Stocktake functionality is not enabled" msgstr "" -#: part/serializers.py:1347 +#: part/serializers.py:1299 +msgid "Background worker check failed" +msgstr "" + +#: part/serializers.py:1401 msgid "Override calculated value for minimum price" msgstr "" -#: part/serializers.py:1354 +#: part/serializers.py:1408 msgid "Minimum price currency" msgstr "" -#: part/serializers.py:1362 +#: part/serializers.py:1416 msgid "Override calculated value for maximum price" msgstr "" -#: part/serializers.py:1369 +#: part/serializers.py:1423 msgid "Maximum price currency" msgstr "" -#: part/serializers.py:1398 +#: part/serializers.py:1452 msgid "Update" msgstr "" -#: part/serializers.py:1399 +#: part/serializers.py:1453 msgid "Update pricing for this part" msgstr "" -#: part/serializers.py:1422 +#: part/serializers.py:1476 #, python-brace-format msgid "Could not convert from provided currencies to {default_currency}" msgstr "" -#: part/serializers.py:1429 +#: part/serializers.py:1483 msgid "Minimum price must not be greater than maximum price" msgstr "" -#: part/serializers.py:1432 +#: part/serializers.py:1486 msgid "Maximum price must not be less than minimum price" msgstr "" -#: part/serializers.py:1576 +#: part/serializers.py:1634 msgid "Select the parent assembly" msgstr "" -#: part/serializers.py:1585 +#: part/serializers.py:1643 msgid "Component Name" msgstr "" -#: part/serializers.py:1588 +#: part/serializers.py:1646 msgid "Component IPN" msgstr "" -#: part/serializers.py:1591 +#: part/serializers.py:1649 msgid "Component Description" msgstr "" -#: part/serializers.py:1597 +#: part/serializers.py:1655 msgid "Select the component part" msgstr "" -#: part/serializers.py:1606 part/templates/part/part_base.html:235 +#: part/serializers.py:1664 part/templates/part/part_base.html:243 #: templates/js/translated/bom.js:1219 msgid "Can Build" msgstr "" -#: part/serializers.py:1837 +#: part/serializers.py:1899 msgid "Select part to copy BOM from" msgstr "" -#: part/serializers.py:1845 +#: part/serializers.py:1907 msgid "Remove Existing Data" msgstr "" -#: part/serializers.py:1846 +#: part/serializers.py:1908 msgid "Remove existing BOM items before copying" msgstr "" -#: part/serializers.py:1851 +#: part/serializers.py:1913 msgid "Include Inherited" msgstr "" -#: part/serializers.py:1852 +#: part/serializers.py:1914 msgid "Include BOM items which are inherited from templated parts" msgstr "" -#: part/serializers.py:1857 +#: part/serializers.py:1919 msgid "Skip Invalid Rows" msgstr "" -#: part/serializers.py:1858 +#: part/serializers.py:1920 msgid "Enable this option to skip invalid rows" msgstr "" -#: part/serializers.py:1863 +#: part/serializers.py:1925 msgid "Copy Substitute Parts" msgstr "" -#: part/serializers.py:1864 +#: part/serializers.py:1926 msgid "Copy substitute parts when duplicate BOM items" msgstr "" -#: part/serializers.py:1901 +#: part/serializers.py:1963 msgid "Clear Existing BOM" msgstr "" -#: part/serializers.py:1902 +#: part/serializers.py:1964 msgid "Delete existing BOM items before uploading" msgstr "" -#: part/serializers.py:1934 +#: part/serializers.py:1996 msgid "No part column specified" msgstr "" -#: part/serializers.py:1978 +#: part/serializers.py:2040 msgid "Multiple matching parts found" msgstr "" -#: part/serializers.py:1981 +#: part/serializers.py:2043 msgid "No matching part found" msgstr "" -#: part/serializers.py:1984 +#: part/serializers.py:2045 msgid "Part is not designated as a component" msgstr "" -#: part/serializers.py:1993 +#: part/serializers.py:2054 msgid "Quantity not provided" msgstr "" -#: part/serializers.py:2001 +#: part/serializers.py:2062 msgid "Invalid quantity" msgstr "" -#: part/serializers.py:2024 +#: part/serializers.py:2085 msgid "At least one BOM item is required" msgstr "" #: part/stocktake.py:224 templates/js/translated/part.js:1073 #: templates/js/translated/part.js:1828 templates/js/translated/part.js:1884 -#: templates/js/translated/purchase_order.js:2154 +#: templates/js/translated/purchase_order.js:2138 msgid "Total Quantity" msgstr "" @@ -7932,9 +8157,9 @@ msgid "Add stocktake information" msgstr "" #: part/templates/part/detail.html:67 part/templates/part/part_sidebar.html:50 -#: stock/admin.py:255 templates/InvenTree/settings/part_stocktake.html:30 +#: stock/admin.py:256 templates/InvenTree/settings/part_stocktake.html:30 #: templates/InvenTree/settings/sidebar.html:53 -#: templates/js/translated/stock.js:2301 users/models.py:204 +#: templates/js/translated/stock.js:2302 users/models.py:204 msgid "Stocktake" msgstr "" @@ -8093,142 +8318,146 @@ msgstr "" msgid "Part List" msgstr "" -#: part/templates/part/part_base.html:25 part/templates/part/part_base.html:29 +#: part/templates/part/part_base.html:26 part/templates/part/part_base.html:30 msgid "You are subscribed to notifications for this part" msgstr "" -#: part/templates/part/part_base.html:33 +#: part/templates/part/part_base.html:34 msgid "Subscribe to notifications for this part" msgstr "" -#: part/templates/part/part_base.html:52 +#: part/templates/part/part_base.html:53 #: stock/templates/stock/item_base.html:62 -#: stock/templates/stock/location.html:71 templates/js/translated/label.js:136 +#: stock/templates/stock/location.html:72 templates/js/translated/label.js:136 msgid "Print Label" msgstr "" -#: part/templates/part/part_base.html:58 +#: part/templates/part/part_base.html:59 msgid "Show pricing information" msgstr "" -#: part/templates/part/part_base.html:63 -#: stock/templates/stock/item_base.html:110 -#: stock/templates/stock/location.html:80 +#: part/templates/part/part_base.html:64 +#: stock/templates/stock/item_base.html:107 +#: stock/templates/stock/location.html:81 msgid "Stock actions" msgstr "" -#: part/templates/part/part_base.html:70 +#: part/templates/part/part_base.html:71 msgid "Count part stock" msgstr "" -#: part/templates/part/part_base.html:76 +#: part/templates/part/part_base.html:77 msgid "Transfer part stock" msgstr "" -#: part/templates/part/part_base.html:91 templates/js/translated/part.js:2299 +#: part/templates/part/part_base.html:92 templates/js/translated/part.js:2299 msgid "Part actions" msgstr "" -#: part/templates/part/part_base.html:94 +#: part/templates/part/part_base.html:95 msgid "Duplicate part" msgstr "Monista osa" -#: part/templates/part/part_base.html:97 +#: part/templates/part/part_base.html:98 msgid "Edit part" msgstr "Muokkaa osaa" -#: part/templates/part/part_base.html:100 +#: part/templates/part/part_base.html:101 msgid "Delete part" msgstr "Poista osa" -#: part/templates/part/part_base.html:119 +#: part/templates/part/part_base.html:120 msgid "Part is a template part (variants can be made from this part)" msgstr "" -#: part/templates/part/part_base.html:123 +#: part/templates/part/part_base.html:124 msgid "Part can be assembled from other parts" msgstr "" -#: part/templates/part/part_base.html:127 +#: part/templates/part/part_base.html:128 msgid "Part can be used in assemblies" msgstr "" -#: part/templates/part/part_base.html:131 +#: part/templates/part/part_base.html:132 msgid "Part stock is tracked by serial number" msgstr "" -#: part/templates/part/part_base.html:135 +#: part/templates/part/part_base.html:136 msgid "Part can be purchased from external suppliers" msgstr "" -#: part/templates/part/part_base.html:139 +#: part/templates/part/part_base.html:140 msgid "Part can be sold to customers" msgstr "" -#: part/templates/part/part_base.html:145 +#: part/templates/part/part_base.html:146 msgid "Part is not active" msgstr "" -#: part/templates/part/part_base.html:153 +#: part/templates/part/part_base.html:154 msgid "Part is virtual (not a physical part)" msgstr "" -#: part/templates/part/part_base.html:163 -#: part/templates/part/part_base.html:690 +#: part/templates/part/part_base.html:164 +#: part/templates/part/part_base.html:698 msgid "Show Part Details" msgstr "" #: part/templates/part/part_base.html:218 -#: stock/templates/stock/item_base.html:388 +msgid "Required for Orders" +msgstr "" + +#: part/templates/part/part_base.html:226 +#: stock/templates/stock/item_base.html:385 msgid "Allocated to Build Orders" msgstr "" -#: part/templates/part/part_base.html:227 -#: stock/templates/stock/item_base.html:381 +#: part/templates/part/part_base.html:235 +#: stock/templates/stock/item_base.html:378 msgid "Allocated to Sales Orders" msgstr "" -#: part/templates/part/part_base.html:300 +#: part/templates/part/part_base.html:308 msgid "Minimum stock level" msgstr "" -#: part/templates/part/part_base.html:331 templates/js/translated/bom.js:1071 +#: part/templates/part/part_base.html:339 templates/js/translated/bom.js:1071 #: templates/js/translated/part.js:1271 templates/js/translated/part.js:2463 #: templates/js/translated/pricing.js:391 -#: templates/js/translated/pricing.js:1054 +#: templates/js/translated/pricing.js:1052 msgid "Price Range" msgstr "" -#: part/templates/part/part_base.html:361 +#: part/templates/part/part_base.html:369 msgid "Latest Serial Number" msgstr "" -#: part/templates/part/part_base.html:365 -#: stock/templates/stock/item_base.html:322 +#: part/templates/part/part_base.html:373 +#: stock/templates/stock/item_base.html:319 msgid "Search for serial number" msgstr "" -#: part/templates/part/part_base.html:453 +#: part/templates/part/part_base.html:461 msgid "Part QR Code" msgstr "" -#: part/templates/part/part_base.html:470 +#: part/templates/part/part_base.html:478 msgid "Link Barcode to Part" msgstr "" -#: part/templates/part/part_base.html:520 +#: part/templates/part/part_base.html:528 msgid "Calculate" msgstr "" -#: part/templates/part/part_base.html:537 +#: part/templates/part/part_base.html:545 msgid "Remove associated image from this part" msgstr "" -#: part/templates/part/part_base.html:588 +#: part/templates/part/part_base.html:596 msgid "No matching images found" msgstr "" -#: part/templates/part/part_base.html:684 +#: part/templates/part/part_base.html:692 msgid "Hide Part Details" msgstr "" @@ -8282,13 +8511,13 @@ msgid "Variants" msgstr "" #: part/templates/part/part_sidebar.html:14 -#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:21 +#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:22 #: stock/templates/stock/stock_app_base.html:10 #: templates/InvenTree/search.html:153 #: templates/InvenTree/settings/sidebar.html:51 #: templates/js/translated/part.js:1249 templates/js/translated/part.js:2152 #: templates/js/translated/part.js:2411 templates/js/translated/stock.js:1066 -#: templates/js/translated/stock.js:2155 templates/navbar.html:31 +#: templates/js/translated/stock.js:2156 templates/navbar.html:31 msgid "Stock" msgstr "" @@ -8324,17 +8553,17 @@ msgstr "" #: part/templates/part/prices.html:18 #: templates/InvenTree/settings/settings_staff_js.html:80 #: templates/InvenTree/settings/user.html:24 -#: templates/js/translated/helpers.js:103 +#: templates/js/translated/helpers.js:104 #: templates/js/translated/pricing.js:628 templates/notes_buttons.html:3 #: templates/notes_buttons.html:4 msgid "Edit" msgstr "Muokkaa" -#: part/templates/part/prices.html:28 stock/admin.py:251 -#: stock/templates/stock/item_base.html:446 -#: templates/js/translated/company.js:1703 -#: templates/js/translated/company.js:1713 -#: templates/js/translated/stock.js:2331 +#: part/templates/part/prices.html:28 stock/admin.py:252 +#: stock/templates/stock/item_base.html:443 +#: templates/js/translated/company.js:1704 +#: templates/js/translated/company.js:1714 +#: templates/js/translated/stock.js:2332 msgid "Last Updated" msgstr "" @@ -8406,7 +8635,7 @@ msgid "Update Pricing" msgstr "" #: part/templates/part/stock_count.html:7 -#: templates/js/translated/model_renderers.js:228 +#: templates/js/translated/model_renderers.js:231 #: templates/js/translated/part.js:707 templates/js/translated/part.js:2147 #: templates/js/translated/part.js:2149 msgid "No Stock" @@ -8486,7 +8715,7 @@ msgstr "" msgid "Part Pricing" msgstr "" -#: plugin/api.py:172 +#: plugin/api.py:175 msgid "Plugin cannot be deleted as it is currently active" msgstr "" @@ -8498,78 +8727,85 @@ msgstr "" msgid "No matching action found" msgstr "" -#: plugin/base/barcodes/api.py:125 plugin/base/barcodes/api.py:371 -#: plugin/base/barcodes/api.py:546 +#: plugin/base/barcodes/api.py:203 msgid "No match found for barcode data" msgstr "" -#: plugin/base/barcodes/api.py:129 +#: plugin/base/barcodes/api.py:207 msgid "Match found for barcode data" msgstr "" -#: plugin/base/barcodes/api.py:163 plugin/base/barcodes/serializers.py:45 +#: plugin/base/barcodes/api.py:245 plugin/base/barcodes/serializers.py:72 msgid "Model is not supported" msgstr "" -#: plugin/base/barcodes/api.py:168 +#: plugin/base/barcodes/api.py:250 msgid "Model instance not found" msgstr "" -#: plugin/base/barcodes/api.py:197 -#: templates/js/translated/purchase_order.js:1468 +#: plugin/base/barcodes/api.py:279 +#: templates/js/translated/purchase_order.js:1452 msgid "Barcode matches existing item" msgstr "" -#: plugin/base/barcodes/api.py:336 +#: plugin/base/barcodes/api.py:418 msgid "No matching part data found" msgstr "" -#: plugin/base/barcodes/api.py:353 +#: plugin/base/barcodes/api.py:434 msgid "No matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:357 +#: plugin/base/barcodes/api.py:437 msgid "Multiple matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:381 +#: plugin/base/barcodes/api.py:450 plugin/base/barcodes/api.py:664 +msgid "No matching plugin found for barcode data" +msgstr "" + +#: plugin/base/barcodes/api.py:460 msgid "Matched supplier part" msgstr "" -#: plugin/base/barcodes/api.py:430 +#: plugin/base/barcodes/api.py:525 msgid "Item has already been received" msgstr "" -#: plugin/base/barcodes/api.py:467 +#: plugin/base/barcodes/api.py:563 msgid "No match for supplier barcode" msgstr "" -#: plugin/base/barcodes/api.py:510 +#: plugin/base/barcodes/api.py:612 msgid "Multiple matching line items found" msgstr "" -#: plugin/base/barcodes/api.py:513 +#: plugin/base/barcodes/api.py:615 msgid "No matching line item found" msgstr "" -#: plugin/base/barcodes/api.py:551 plugin/base/barcodes/api.py:558 +#: plugin/base/barcodes/api.py:661 +msgid "No sales order provided" +msgstr "" + +#: plugin/base/barcodes/api.py:670 msgid "Barcode does not match an existing stock item" msgstr "" -#: plugin/base/barcodes/api.py:569 +#: plugin/base/barcodes/api.py:686 msgid "Stock item does not match line item" msgstr "" -#: plugin/base/barcodes/api.py:593 templates/js/translated/build.js:2780 -#: templates/js/translated/sales_order.js:1953 +#: plugin/base/barcodes/api.py:716 templates/js/translated/build.js:2798 +#: templates/js/translated/sales_order.js:1934 msgid "Insufficient stock available" msgstr "" -#: plugin/base/barcodes/api.py:602 +#: plugin/base/barcodes/api.py:729 msgid "Stock item allocated to sales order" msgstr "" -#: plugin/base/barcodes/api.py:606 +#: plugin/base/barcodes/api.py:732 msgid "Not enough information" msgstr "" @@ -8591,75 +8827,75 @@ msgstr "" msgid "Purchase order does not match supplier" msgstr "" -#: plugin/base/barcodes/mixins.py:465 +#: plugin/base/barcodes/mixins.py:467 msgid "Failed to find pending line item for supplier part" msgstr "" -#: plugin/base/barcodes/mixins.py:496 +#: plugin/base/barcodes/mixins.py:498 msgid "Further information required to receive line item" msgstr "" -#: plugin/base/barcodes/mixins.py:504 +#: plugin/base/barcodes/mixins.py:506 msgid "Received purchase order line item" msgstr "" -#: plugin/base/barcodes/serializers.py:21 +#: plugin/base/barcodes/serializers.py:48 msgid "Scanned barcode data" msgstr "" -#: plugin/base/barcodes/serializers.py:30 +#: plugin/base/barcodes/serializers.py:57 msgid "Model name to generate barcode for" msgstr "" -#: plugin/base/barcodes/serializers.py:35 +#: plugin/base/barcodes/serializers.py:62 msgid "Primary key of model object to generate barcode for" msgstr "" -#: plugin/base/barcodes/serializers.py:105 +#: plugin/base/barcodes/serializers.py:132 msgid "Purchase Order to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:111 +#: plugin/base/barcodes/serializers.py:138 msgid "Purchase order is not pending" msgstr "" -#: plugin/base/barcodes/serializers.py:129 +#: plugin/base/barcodes/serializers.py:156 msgid "PurchaseOrder to receive items against" msgstr "" -#: plugin/base/barcodes/serializers.py:135 +#: plugin/base/barcodes/serializers.py:162 msgid "Purchase order has not been placed" msgstr "" -#: plugin/base/barcodes/serializers.py:143 +#: plugin/base/barcodes/serializers.py:170 msgid "Location to receive items into" msgstr "" -#: plugin/base/barcodes/serializers.py:149 +#: plugin/base/barcodes/serializers.py:176 msgid "Cannot select a structural location" msgstr "" -#: plugin/base/barcodes/serializers.py:163 +#: plugin/base/barcodes/serializers.py:190 msgid "Sales Order to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:169 +#: plugin/base/barcodes/serializers.py:196 msgid "Sales order is not pending" msgstr "" -#: plugin/base/barcodes/serializers.py:177 +#: plugin/base/barcodes/serializers.py:204 msgid "Sales order line item to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:184 +#: plugin/base/barcodes/serializers.py:211 msgid "Sales order shipment to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:190 +#: plugin/base/barcodes/serializers.py:217 msgid "Shipment has already been delivered" msgstr "" -#: plugin/base/barcodes/serializers.py:195 +#: plugin/base/barcodes/serializers.py:222 msgid "Quantity to allocate" msgstr "" @@ -8679,6 +8915,42 @@ msgstr "" msgid "No items provided to print" msgstr "" +#: plugin/base/ui/serializers.py:30 +msgid "Plugin Name" +msgstr "" + +#: plugin/base/ui/serializers.py:34 +msgid "Feature Type" +msgstr "" + +#: plugin/base/ui/serializers.py:39 +msgid "Feature Label" +msgstr "" + +#: plugin/base/ui/serializers.py:44 +msgid "Feature Title" +msgstr "" + +#: plugin/base/ui/serializers.py:49 +msgid "Feature Description" +msgstr "" + +#: plugin/base/ui/serializers.py:54 +msgid "Feature Icon" +msgstr "" + +#: plugin/base/ui/serializers.py:58 +msgid "Feature Options" +msgstr "" + +#: plugin/base/ui/serializers.py:61 +msgid "Feature Context" +msgstr "" + +#: plugin/base/ui/serializers.py:64 +msgid "Feature Source (javascript)" +msgstr "" + #: plugin/builtin/barcodes/inventree_barcode.py:27 msgid "InvenTree Barcodes" msgstr "" @@ -8756,7 +9028,7 @@ msgstr "" msgid "URL that is used to send messages to a slack channel" msgstr "" -#: plugin/builtin/integration/core_notifications.py:164 +#: plugin/builtin/integration/core_notifications.py:166 msgid "Open link" msgstr "Avaa linkki" @@ -8794,11 +9066,11 @@ msgstr "" msgid "Provides support for printing using a machine" msgstr "" -#: plugin/builtin/labels/inventree_machine.py:149 +#: plugin/builtin/labels/inventree_machine.py:151 msgid "last used" msgstr "" -#: plugin/builtin/labels/inventree_machine.py:166 +#: plugin/builtin/labels/inventree_machine.py:168 msgid "Options" msgstr "" @@ -8822,7 +9094,7 @@ msgstr "" msgid "Print a border around each label" msgstr "" -#: plugin/builtin/labels/label_sheet.py:47 report/models.py:307 +#: plugin/builtin/labels/label_sheet.py:47 report/models.py:315 msgid "Landscape" msgstr "" @@ -8894,19 +9166,19 @@ msgstr "" msgid "The Supplier which acts as 'TME'" msgstr "" -#: plugin/installer.py:194 plugin/installer.py:282 +#: plugin/installer.py:199 plugin/installer.py:282 msgid "Only staff users can administer plugins" msgstr "" -#: plugin/installer.py:197 +#: plugin/installer.py:202 msgid "Plugin installation is disabled" msgstr "" -#: plugin/installer.py:248 +#: plugin/installer.py:246 msgid "Installed plugin successfully" msgstr "" -#: plugin/installer.py:254 +#: plugin/installer.py:251 #, python-brace-format msgid "Installed plugin into {path}" msgstr "" @@ -8943,10 +9215,6 @@ msgstr "" msgid "Plugin Configurations" msgstr "" -#: plugin/models.py:43 users/models.py:100 -msgid "Key" -msgstr "Avain" - #: plugin/models.py:44 msgid "Key of plugin" msgstr "" @@ -8955,7 +9223,7 @@ msgstr "" msgid "PluginName of the plugin" msgstr "" -#: plugin/models.py:59 plugin/serializers.py:90 +#: plugin/models.py:59 plugin/serializers.py:115 msgid "Package Name" msgstr "" @@ -8984,17 +9252,17 @@ msgstr "" msgid "Package Plugin" msgstr "" -#: plugin/models.py:220 report/models.py:474 +#: plugin/models.py:259 report/models.py:482 #: templates/InvenTree/settings/plugin_settings.html:9 #: templates/js/translated/plugin.js:51 msgid "Plugin" msgstr "" -#: plugin/models.py:267 +#: plugin/models.py:306 msgid "Method" msgstr "" -#: plugin/plugin.py:270 +#: plugin/plugin.py:275 msgid "No author found" msgstr "" @@ -9053,81 +9321,157 @@ msgstr "" msgid "InvenTree Contributors" msgstr "" -#: plugin/serializers.py:81 -msgid "Source URL" +#: plugin/samples/integration/user_interface_sample.py:27 +msgid "Enable Part Panels" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:28 +msgid "Enable custom panels for Part views" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:33 +msgid "Enable Purchase Order Panels" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:34 +msgid "Enable custom panels for Purchase Order views" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:39 +msgid "Enable Broken Panels" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:40 +msgid "Enable broken panels for testing" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:45 +msgid "Enable Dynamic Panel" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:46 +msgid "Enable dynamic panels for testing" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:98 +msgid "Part Panel" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:131 +msgid "Broken Dashboard Item" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:133 +msgid "This is a broken dashboard item - it will not render!" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:139 +msgid "Sample Dashboard Item" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:141 +msgid "This is a sample dashboard item. It renders a simple string of HTML content." +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:147 +msgid "Context Dashboard Item" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:161 +msgid "Admin Dashboard Item" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:162 +msgid "This is an admin-only dashboard item." +msgstr "" + +#: plugin/serializers.py:82 +msgid "Source File" msgstr "" #: plugin/serializers.py:83 +msgid "Path to the source file for admin integration" +msgstr "" + +#: plugin/serializers.py:90 +msgid "Optional context data for the admin integration" +msgstr "" + +#: plugin/serializers.py:106 +msgid "Source URL" +msgstr "" + +#: plugin/serializers.py:108 msgid "Source for the package - this can be a custom registry or a VCS path" msgstr "" -#: plugin/serializers.py:92 +#: plugin/serializers.py:117 msgid "Name for the Plugin Package - can also contain a version indicator" msgstr "" -#: plugin/serializers.py:99 +#: plugin/serializers.py:124 #: templates/InvenTree/settings/plugin_settings.html:42 #: templates/js/translated/plugin.js:86 msgid "Version" msgstr "" -#: plugin/serializers.py:101 +#: plugin/serializers.py:126 msgid "Version specifier for the plugin. Leave blank for latest version." msgstr "" -#: plugin/serializers.py:106 +#: plugin/serializers.py:131 msgid "Confirm plugin installation" msgstr "" -#: plugin/serializers.py:108 +#: plugin/serializers.py:133 msgid "This will install this plugin now into the current instance. The instance will go into maintenance." msgstr "" -#: plugin/serializers.py:121 +#: plugin/serializers.py:146 msgid "Installation not confirmed" msgstr "" -#: plugin/serializers.py:123 +#: plugin/serializers.py:148 msgid "Either packagename of URL must be provided" msgstr "" -#: plugin/serializers.py:161 +#: plugin/serializers.py:184 msgid "Full reload" msgstr "" -#: plugin/serializers.py:162 +#: plugin/serializers.py:185 msgid "Perform a full reload of the plugin registry" msgstr "" -#: plugin/serializers.py:168 +#: plugin/serializers.py:191 msgid "Force reload" msgstr "" -#: plugin/serializers.py:170 +#: plugin/serializers.py:193 msgid "Force a reload of the plugin registry, even if it is already loaded" msgstr "" -#: plugin/serializers.py:177 +#: plugin/serializers.py:200 msgid "Collect plugins" msgstr "" -#: plugin/serializers.py:178 +#: plugin/serializers.py:201 msgid "Collect plugins and add them to the registry" msgstr "" -#: plugin/serializers.py:205 +#: plugin/serializers.py:228 msgid "Activate Plugin" msgstr "" -#: plugin/serializers.py:206 +#: plugin/serializers.py:229 msgid "Activate this plugin" msgstr "" -#: plugin/serializers.py:226 +#: plugin/serializers.py:249 msgid "Delete configuration" msgstr "" -#: plugin/serializers.py:227 +#: plugin/serializers.py:250 msgid "Delete the plugin configuration from the database" msgstr "" @@ -9135,11 +9479,11 @@ msgstr "" msgid "No valid objects provided to template" msgstr "" -#: report/api.py:103 report/models.py:438 report/serializers.py:98 -#: report/serializers.py:148 templates/js/translated/purchase_order.js:1817 +#: report/api.py:103 report/models.py:446 report/serializers.py:99 +#: report/serializers.py:149 templates/js/translated/purchase_order.js:1801 #: templates/js/translated/return_order.js:353 -#: templates/js/translated/sales_order.js:887 -#: templates/js/translated/sales_order.js:1047 +#: templates/js/translated/sales_order.js:846 +#: templates/js/translated/sales_order.js:1020 msgid "Items" msgstr "" @@ -9167,7 +9511,11 @@ msgstr "" msgid "Error printing label" msgstr "" -#: report/api.py:375 report/api.py:411 +#: report/api.py:358 +msgid "Report saved at time of printing" +msgstr "" + +#: report/api.py:384 report/api.py:420 #, python-brace-format msgid "Template file '{template}' is missing or does not exist" msgstr "" @@ -9204,135 +9552,143 @@ msgstr "" msgid "Revision number (auto-increments)" msgstr "" -#: report/models.py:202 +#: report/models.py:168 +msgid "Attach to Model on Print" +msgstr "" + +#: report/models.py:170 +msgid "Save report output as an attachment against linked model instance when printing" +msgstr "" + +#: report/models.py:210 msgid "Filename Pattern" msgstr "" -#: report/models.py:203 +#: report/models.py:211 msgid "Pattern for generating filenames" msgstr "" -#: report/models.py:208 +#: report/models.py:216 msgid "Template is enabled" msgstr "" -#: report/models.py:214 +#: report/models.py:222 msgid "Target model type for template" msgstr "" -#: report/models.py:234 +#: report/models.py:242 msgid "Filters" msgstr "Suodattimet" -#: report/models.py:235 +#: report/models.py:243 msgid "Template query filters (comma-separated list of key=value pairs)" msgstr "" -#: report/models.py:294 report/models.py:361 +#: report/models.py:302 report/models.py:369 msgid "Template file" msgstr "" -#: report/models.py:302 +#: report/models.py:310 msgid "Page size for PDF reports" msgstr "" -#: report/models.py:308 +#: report/models.py:316 msgid "Render report in landscape orientation" msgstr "" -#: report/models.py:367 +#: report/models.py:375 msgid "Width [mm]" msgstr "Leveys [mm]" -#: report/models.py:368 +#: report/models.py:376 msgid "Label width, specified in mm" msgstr "" -#: report/models.py:374 +#: report/models.py:382 msgid "Height [mm]" msgstr "Korkeus [mm]" -#: report/models.py:375 +#: report/models.py:383 msgid "Label height, specified in mm" msgstr "" -#: report/models.py:438 +#: report/models.py:446 msgid "Number of items to process" msgstr "" -#: report/models.py:444 +#: report/models.py:452 msgid "Report generation is complete" msgstr "" -#: report/models.py:448 templates/js/translated/build.js:2349 +#: report/models.py:456 templates/js/translated/build.js:2352 msgid "Progress" msgstr "" -#: report/models.py:448 +#: report/models.py:456 msgid "Report generation progress" msgstr "" -#: report/models.py:456 +#: report/models.py:464 msgid "Report Template" msgstr "" -#: report/models.py:463 report/models.py:486 +#: report/models.py:471 report/models.py:494 msgid "Output File" msgstr "" -#: report/models.py:464 report/models.py:487 +#: report/models.py:472 report/models.py:495 msgid "Generated output file" msgstr "" -#: report/models.py:475 +#: report/models.py:483 msgid "Label output plugin" msgstr "" -#: report/models.py:479 +#: report/models.py:487 msgid "Label Template" msgstr "" -#: report/models.py:502 +#: report/models.py:510 msgid "Snippet" msgstr "" -#: report/models.py:503 +#: report/models.py:511 msgid "Report snippet file" msgstr "" -#: report/models.py:510 +#: report/models.py:518 msgid "Snippet file description" msgstr "" -#: report/models.py:528 +#: report/models.py:536 msgid "Asset" msgstr "" -#: report/models.py:529 +#: report/models.py:537 msgid "Report asset file" msgstr "" -#: report/models.py:536 +#: report/models.py:544 msgid "Asset file description" msgstr "" -#: report/serializers.py:91 +#: report/serializers.py:92 msgid "Select report template" msgstr "" -#: report/serializers.py:99 report/serializers.py:149 +#: report/serializers.py:100 report/serializers.py:150 msgid "List of item primary keys to include in the report" msgstr "" -#: report/serializers.py:132 +#: report/serializers.py:133 msgid "Select label template" msgstr "" -#: report/serializers.py:140 +#: report/serializers.py:141 msgid "Printing Plugin" msgstr "" -#: report/serializers.py:141 +#: report/serializers.py:142 msgid "Select plugin to use for label printing" msgstr "" @@ -9365,9 +9721,9 @@ msgstr "" #: report/templates/report/inventree_sales_order_report.html:30 #: templates/js/translated/order.js:341 templates/js/translated/pricing.js:527 #: templates/js/translated/pricing.js:596 -#: templates/js/translated/pricing.js:834 -#: templates/js/translated/purchase_order.js:2185 -#: templates/js/translated/sales_order.js:1873 +#: templates/js/translated/pricing.js:832 +#: templates/js/translated/purchase_order.js:2169 +#: templates/js/translated/sales_order.js:1854 msgid "Unit Price" msgstr "" @@ -9379,13 +9735,18 @@ msgstr "" #: report/templates/report/inventree_purchase_order_report.html:72 #: report/templates/report/inventree_sales_order_report.html:72 -#: templates/js/translated/purchase_order.js:2087 -#: templates/js/translated/sales_order.js:1842 +#: templates/js/translated/purchase_order.js:2071 +#: templates/js/translated/sales_order.js:1823 #: templates/test_statistics_table.html:8 #: templates/test_statistics_table.html:19 msgid "Total" msgstr "" +#: report/templates/report/inventree_sales_order_shipment_report.html:23 +#: stock/templates/stock/stock_sidebar.html:8 +msgid "Allocations" +msgstr "" + #: report/templates/report/inventree_stock_location_report.html:97 msgid "Stock location items" msgstr "" @@ -9403,15 +9764,13 @@ msgstr "" msgid "Test" msgstr "" -#: report/templates/report/inventree_test_report.html:103 stock/models.py:2544 -msgid "Result" -msgstr "" - #: report/templates/report/inventree_test_report.html:129 +#: templates/js/translated/stock.js:1448 msgid "Pass" msgstr "" #: report/templates/report/inventree_test_report.html:131 +#: templates/js/translated/stock.js:1450 msgid "Fail" msgstr "" @@ -9420,17 +9779,18 @@ msgid "No result (required)" msgstr "" #: report/templates/report/inventree_test_report.html:140 +#: templates/js/translated/stock.js:1455 msgid "No result" msgstr "" #: report/templates/report/inventree_test_report.html:153 -#: stock/serializers.py:599 stock/templates/stock/stock_sidebar.html:16 +#: stock/serializers.py:626 stock/templates/stock/stock_sidebar.html:16 msgid "Installed Items" msgstr "" -#: report/templates/report/inventree_test_report.html:167 stock/admin.py:161 +#: report/templates/report/inventree_test_report.html:167 stock/admin.py:162 #: templates/js/translated/stock.js:706 templates/js/translated/stock.js:877 -#: templates/js/translated/stock.js:3194 +#: templates/js/translated/stock.js:3195 msgid "Serial" msgstr "Sarjanumero" @@ -9450,67 +9810,67 @@ msgstr "" msgid "company_image tag requires a Company instance" msgstr "" -#: stock/admin.py:51 stock/admin.py:171 +#: stock/admin.py:51 stock/admin.py:172 msgid "Location ID" msgstr "" -#: stock/admin.py:63 stock/templates/stock/location.html:128 -#: stock/templates/stock/location.html:134 +#: stock/admin.py:63 stock/templates/stock/location.html:129 +#: stock/templates/stock/location.html:135 msgid "Location Path" msgstr "" -#: stock/admin.py:148 +#: stock/admin.py:149 msgid "Stock Item ID" msgstr "" -#: stock/admin.py:167 +#: stock/admin.py:168 msgid "Status Code" msgstr "" -#: stock/admin.py:179 +#: stock/admin.py:180 msgid "Supplier Part ID" msgstr "" -#: stock/admin.py:184 +#: stock/admin.py:185 msgid "Supplier Part SKU" msgstr "" -#: stock/admin.py:189 +#: stock/admin.py:190 msgid "Supplier ID" msgstr "" -#: stock/admin.py:200 +#: stock/admin.py:201 msgid "Customer ID" msgstr "" -#: stock/admin.py:205 stock/models.py:825 -#: stock/templates/stock/item_base.html:354 +#: stock/admin.py:206 stock/models.py:902 +#: stock/templates/stock/item_base.html:351 msgid "Installed In" msgstr "" -#: stock/admin.py:210 +#: stock/admin.py:211 msgid "Build ID" msgstr "" -#: stock/admin.py:220 +#: stock/admin.py:221 msgid "Sales Order ID" msgstr "" -#: stock/admin.py:225 +#: stock/admin.py:226 msgid "Purchase Order ID" msgstr "" -#: stock/admin.py:240 +#: stock/admin.py:241 msgid "Review Needed" msgstr "" -#: stock/admin.py:245 +#: stock/admin.py:246 msgid "Delete on Deplete" msgstr "" -#: stock/admin.py:260 stock/models.py:919 -#: stock/templates/stock/item_base.html:433 -#: templates/js/translated/stock.js:2315 users/models.py:124 +#: stock/admin.py:261 stock/models.py:996 +#: stock/templates/stock/item_base.html:430 +#: templates/js/translated/stock.js:2316 users/models.py:124 msgid "Expiry Date" msgstr "" @@ -9526,11 +9886,11 @@ msgstr "" msgid "Include sub-locations in filtered results" msgstr "" -#: stock/api.py:367 stock/serializers.py:1186 +#: stock/api.py:366 stock/serializers.py:1217 msgid "Parent Location" msgstr "" -#: stock/api.py:368 +#: stock/api.py:367 msgid "Filter by parent location" msgstr "" @@ -9550,8 +9910,8 @@ msgstr "" msgid "Expiry date after" msgstr "" -#: stock/api.py:840 stock/serializers.py:604 -#: stock/templates/stock/item_base.html:439 +#: stock/api.py:840 stock/serializers.py:631 +#: stock/templates/stock/item_base.html:436 #: templates/js/translated/table_filters.js:448 msgid "Stale" msgstr "" @@ -9560,594 +9920,598 @@ msgstr "" msgid "Quantity is required" msgstr "" -#: stock/api.py:933 +#: stock/api.py:932 msgid "Valid part must be supplied" msgstr "" -#: stock/api.py:964 +#: stock/api.py:959 msgid "The given supplier part does not exist" msgstr "" -#: stock/api.py:974 +#: stock/api.py:969 msgid "The supplier part has a pack size defined, but flag use_pack_size not set" msgstr "" -#: stock/api.py:1005 +#: stock/api.py:996 msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "" -#: stock/models.py:64 +#: stock/models.py:70 msgid "Stock Location type" msgstr "" -#: stock/models.py:65 +#: stock/models.py:71 msgid "Stock Location types" msgstr "" -#: stock/models.py:91 +#: stock/models.py:97 msgid "Default icon for all locations that have no icon set (optional)" msgstr "" -#: stock/models.py:131 stock/models.py:807 -#: stock/templates/stock/location.html:17 +#: stock/models.py:137 stock/models.py:884 +#: stock/templates/stock/location.html:18 #: stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "" -#: stock/models.py:132 stock/templates/stock/location.html:183 +#: stock/models.py:138 stock/templates/stock/location.html:184 #: templates/InvenTree/search.html:166 templates/js/translated/search.js:178 #: users/models.py:205 msgid "Stock Locations" msgstr "" -#: stock/models.py:180 stock/models.py:968 -#: stock/templates/stock/item_base.html:247 +#: stock/models.py:186 stock/models.py:1045 +#: stock/templates/stock/item_base.html:244 msgid "Owner" msgstr "" -#: stock/models.py:181 stock/models.py:969 +#: stock/models.py:187 stock/models.py:1046 msgid "Select Owner" msgstr "" -#: stock/models.py:189 +#: stock/models.py:195 msgid "Stock items may not be directly located into a structural stock locations, but may be located to child locations." msgstr "" -#: stock/models.py:196 templates/js/translated/stock.js:2865 +#: stock/models.py:202 templates/js/translated/stock.js:2866 #: templates/js/translated/table_filters.js:250 msgid "External" msgstr "" -#: stock/models.py:197 +#: stock/models.py:203 msgid "This is an external stock location" msgstr "" -#: stock/models.py:203 templates/js/translated/stock.js:2874 +#: stock/models.py:209 templates/js/translated/stock.js:2875 #: templates/js/translated/table_filters.js:253 msgid "Location type" msgstr "" -#: stock/models.py:207 +#: stock/models.py:213 msgid "Stock location type of this location" msgstr "" -#: stock/models.py:279 +#: stock/models.py:285 msgid "You cannot make this stock location structural because some stock items are already located into it!" msgstr "" -#: stock/models.py:664 +#: stock/models.py:492 +msgid "Part must be specified" +msgstr "" + +#: stock/models.py:741 msgid "Stock items cannot be located into structural stock locations!" msgstr "" -#: stock/models.py:691 stock/serializers.py:480 +#: stock/models.py:768 stock/serializers.py:492 msgid "Stock item cannot be created for virtual parts" msgstr "" -#: stock/models.py:708 +#: stock/models.py:785 #, python-brace-format msgid "Part type ('{self.supplier_part.part}') must be {self.part}" msgstr "" -#: stock/models.py:718 stock/models.py:731 +#: stock/models.py:795 stock/models.py:808 msgid "Quantity must be 1 for item with a serial number" msgstr "" -#: stock/models.py:721 +#: stock/models.py:798 msgid "Serial number cannot be set if quantity greater than 1" msgstr "" -#: stock/models.py:743 +#: stock/models.py:820 msgid "Item cannot belong to itself" msgstr "" -#: stock/models.py:748 +#: stock/models.py:825 msgid "Item must have a build reference if is_building=True" msgstr "" -#: stock/models.py:761 +#: stock/models.py:838 msgid "Build reference does not point to the same part object" msgstr "" -#: stock/models.py:777 +#: stock/models.py:854 msgid "Parent Stock Item" msgstr "" -#: stock/models.py:789 +#: stock/models.py:866 msgid "Base part" msgstr "" -#: stock/models.py:799 +#: stock/models.py:876 msgid "Select a matching supplier part for this stock item" msgstr "" -#: stock/models.py:811 +#: stock/models.py:888 msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:819 stock/serializers.py:1580 +#: stock/models.py:896 stock/serializers.py:1611 msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:830 +#: stock/models.py:907 msgid "Is this item installed in another item?" msgstr "" -#: stock/models.py:849 +#: stock/models.py:926 msgid "Serial number for this item" msgstr "" -#: stock/models.py:863 stock/serializers.py:1563 +#: stock/models.py:940 stock/serializers.py:1594 msgid "Batch code for this stock item" msgstr "" -#: stock/models.py:868 +#: stock/models.py:945 msgid "Stock Quantity" msgstr "" -#: stock/models.py:878 +#: stock/models.py:955 msgid "Source Build" msgstr "" -#: stock/models.py:881 +#: stock/models.py:958 msgid "Build for this stock item" msgstr "" -#: stock/models.py:888 stock/templates/stock/item_base.html:363 +#: stock/models.py:965 stock/templates/stock/item_base.html:360 msgid "Consumed By" msgstr "" -#: stock/models.py:891 +#: stock/models.py:968 msgid "Build order which consumed this stock item" msgstr "" -#: stock/models.py:900 +#: stock/models.py:977 msgid "Source Purchase Order" msgstr "" -#: stock/models.py:904 +#: stock/models.py:981 msgid "Purchase order for this stock item" msgstr "" -#: stock/models.py:910 +#: stock/models.py:987 msgid "Destination Sales Order" msgstr "" -#: stock/models.py:921 +#: stock/models.py:998 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "" -#: stock/models.py:939 +#: stock/models.py:1016 msgid "Delete on deplete" msgstr "" -#: stock/models.py:940 +#: stock/models.py:1017 msgid "Delete this Stock Item when stock is depleted" msgstr "" -#: stock/models.py:960 +#: stock/models.py:1037 msgid "Single unit purchase price at time of purchase" msgstr "" -#: stock/models.py:991 +#: stock/models.py:1068 msgid "Converted to part" msgstr "" -#: stock/models.py:1511 +#: stock/models.py:1600 msgid "Part is not set as trackable" msgstr "" -#: stock/models.py:1517 +#: stock/models.py:1606 msgid "Quantity must be integer" msgstr "" -#: stock/models.py:1525 +#: stock/models.py:1614 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({self.quantity})" msgstr "" -#: stock/models.py:1531 -msgid "Serial numbers must be a list of integers" +#: stock/models.py:1620 +msgid "Serial numbers must be provided as a list" msgstr "" -#: stock/models.py:1536 +#: stock/models.py:1625 msgid "Quantity does not match serial numbers" msgstr "" -#: stock/models.py:1544 stock/serializers.py:726 -msgid "Serial numbers already exist" -msgstr "" - -#: stock/models.py:1641 +#: stock/models.py:1747 stock/models.py:2563 msgid "Test template does not exist" msgstr "" -#: stock/models.py:1659 +#: stock/models.py:1765 msgid "Stock item has been assigned to a sales order" msgstr "" -#: stock/models.py:1663 +#: stock/models.py:1769 msgid "Stock item is installed in another item" msgstr "" -#: stock/models.py:1666 +#: stock/models.py:1772 msgid "Stock item contains other items" msgstr "" -#: stock/models.py:1669 +#: stock/models.py:1775 msgid "Stock item has been assigned to a customer" msgstr "" -#: stock/models.py:1672 +#: stock/models.py:1778 msgid "Stock item is currently in production" msgstr "" -#: stock/models.py:1675 +#: stock/models.py:1781 msgid "Serialized stock cannot be merged" msgstr "" -#: stock/models.py:1682 stock/serializers.py:1469 +#: stock/models.py:1788 stock/serializers.py:1500 msgid "Duplicate stock items" msgstr "" -#: stock/models.py:1686 +#: stock/models.py:1792 msgid "Stock items must refer to the same part" msgstr "" -#: stock/models.py:1694 +#: stock/models.py:1800 msgid "Stock items must refer to the same supplier part" msgstr "" -#: stock/models.py:1699 +#: stock/models.py:1805 msgid "Stock status codes must match" msgstr "" -#: stock/models.py:1960 +#: stock/models.py:2066 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:2343 +#: stock/models.py:2462 msgid "Stock Item Tracking" msgstr "" -#: stock/models.py:2376 +#: stock/models.py:2495 msgid "Entry notes" msgstr "" -#: stock/models.py:2416 +#: stock/models.py:2535 msgid "Stock Item Test Result" msgstr "" -#: stock/models.py:2449 +#: stock/models.py:2566 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:2454 +#: stock/models.py:2570 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:2459 +#: stock/models.py:2575 msgid "Invalid value for this test" msgstr "" -#: stock/models.py:2544 +#: stock/models.py:2660 msgid "Test result" msgstr "" -#: stock/models.py:2551 +#: stock/models.py:2667 msgid "Test output value" msgstr "" -#: stock/models.py:2559 +#: stock/models.py:2675 stock/serializers.py:245 msgid "Test result attachment" msgstr "" -#: stock/models.py:2563 +#: stock/models.py:2679 msgid "Test notes" msgstr "" -#: stock/models.py:2571 templates/js/translated/stock.js:1633 +#: stock/models.py:2687 templates/js/translated/stock.js:1633 msgid "Test station" msgstr "" -#: stock/models.py:2572 +#: stock/models.py:2688 msgid "The identifier of the test station where the test was performed" msgstr "" -#: stock/models.py:2578 +#: stock/models.py:2694 msgid "Started" msgstr "" -#: stock/models.py:2579 +#: stock/models.py:2695 msgid "The timestamp of the test start" msgstr "" -#: stock/models.py:2585 +#: stock/models.py:2701 msgid "Finished" msgstr "" -#: stock/models.py:2586 +#: stock/models.py:2702 msgid "The timestamp of the test finish" msgstr "" -#: stock/serializers.py:76 +#: stock/serializers.py:77 msgid "Generated batch code" msgstr "" -#: stock/serializers.py:85 +#: stock/serializers.py:86 msgid "Select build order" msgstr "" -#: stock/serializers.py:94 +#: stock/serializers.py:95 msgid "Select stock item to generate batch code for" msgstr "" -#: stock/serializers.py:103 +#: stock/serializers.py:104 msgid "Select location to generate batch code for" msgstr "" -#: stock/serializers.py:112 +#: stock/serializers.py:113 msgid "Select part to generate batch code for" msgstr "" -#: stock/serializers.py:121 +#: stock/serializers.py:122 msgid "Select purchase order" msgstr "" -#: stock/serializers.py:128 +#: stock/serializers.py:129 msgid "Enter quantity for batch code" msgstr "" -#: stock/serializers.py:151 +#: stock/serializers.py:152 msgid "Generated serial number" msgstr "" -#: stock/serializers.py:160 +#: stock/serializers.py:161 msgid "Select part to generate serial number for" msgstr "" -#: stock/serializers.py:168 +#: stock/serializers.py:169 msgid "Quantity of serial numbers to generate" msgstr "" -#: stock/serializers.py:233 +#: stock/serializers.py:234 msgid "Test template for this result" msgstr "" -#: stock/serializers.py:254 +#: stock/serializers.py:258 msgid "Template ID or test name must be provided" msgstr "" -#: stock/serializers.py:286 +#: stock/serializers.py:290 msgid "The test finished time cannot be earlier than the test started time" msgstr "" -#: stock/serializers.py:323 +#: stock/serializers.py:327 msgid "Serial number is too large" msgstr "" -#: stock/serializers.py:452 stock/templates/stock/item_base.html:193 +#: stock/serializers.py:462 stock/templates/stock/item_base.html:190 msgid "Parent Item" msgstr "" -#: stock/serializers.py:453 +#: stock/serializers.py:463 msgid "Parent stock item" msgstr "" -#: stock/serializers.py:472 +#: stock/serializers.py:484 msgid "Use pack size when adding: the quantity defined is the number of packs" msgstr "" -#: stock/serializers.py:596 stock/templates/stock/item_base.html:437 +#: stock/serializers.py:623 stock/templates/stock/item_base.html:434 #: templates/js/translated/table_filters.js:442 users/models.py:174 msgid "Expired" msgstr "" -#: stock/serializers.py:602 stock/templates/stock/stock_sidebar.html:20 +#: stock/serializers.py:629 stock/templates/stock/stock_sidebar.html:20 msgid "Child Items" msgstr "" -#: stock/serializers.py:606 +#: stock/serializers.py:633 msgid "Tracking Items" msgstr "" -#: stock/serializers.py:612 +#: stock/serializers.py:639 msgid "Purchase price of this stock item, per unit or pack" msgstr "" -#: stock/serializers.py:631 +#: stock/serializers.py:658 msgid "Minimum Pricing" msgstr "" -#: stock/serializers.py:637 +#: stock/serializers.py:664 msgid "Maximum Pricing" msgstr "" -#: stock/serializers.py:661 +#: stock/serializers.py:688 msgid "Enter number of stock items to serialize" msgstr "" -#: stock/serializers.py:674 +#: stock/serializers.py:701 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({q})" msgstr "" -#: stock/serializers.py:681 +#: stock/serializers.py:708 msgid "Enter serial numbers for new items" msgstr "" -#: stock/serializers.py:692 stock/serializers.py:1426 stock/serializers.py:1682 +#: stock/serializers.py:719 stock/serializers.py:1457 stock/serializers.py:1713 msgid "Destination stock location" msgstr "" -#: stock/serializers.py:699 +#: stock/serializers.py:726 msgid "Optional note field" msgstr "" -#: stock/serializers.py:709 +#: stock/serializers.py:736 msgid "Serial numbers cannot be assigned to this part" msgstr "" -#: stock/serializers.py:764 +#: stock/serializers.py:756 +msgid "Serial numbers already exist" +msgstr "" + +#: stock/serializers.py:795 msgid "Select stock item to install" msgstr "" -#: stock/serializers.py:771 +#: stock/serializers.py:802 msgid "Quantity to Install" msgstr "" -#: stock/serializers.py:772 +#: stock/serializers.py:803 msgid "Enter the quantity of items to install" msgstr "" -#: stock/serializers.py:777 stock/serializers.py:857 stock/serializers.py:983 -#: stock/serializers.py:1033 +#: stock/serializers.py:808 stock/serializers.py:888 stock/serializers.py:1014 +#: stock/serializers.py:1064 msgid "Add transaction note (optional)" msgstr "" -#: stock/serializers.py:785 +#: stock/serializers.py:816 msgid "Quantity to install must be at least 1" msgstr "" -#: stock/serializers.py:793 +#: stock/serializers.py:824 msgid "Stock item is unavailable" msgstr "" -#: stock/serializers.py:804 +#: stock/serializers.py:835 msgid "Selected part is not in the Bill of Materials" msgstr "" -#: stock/serializers.py:817 +#: stock/serializers.py:848 msgid "Quantity to install must not exceed available quantity" msgstr "" -#: stock/serializers.py:852 +#: stock/serializers.py:883 msgid "Destination location for uninstalled item" msgstr "" -#: stock/serializers.py:903 +#: stock/serializers.py:934 msgid "Unsupported statistic type: " msgstr "" -#: stock/serializers.py:917 +#: stock/serializers.py:948 msgid "Select part to convert stock item into" msgstr "" -#: stock/serializers.py:930 +#: stock/serializers.py:961 msgid "Selected part is not a valid option for conversion" msgstr "" -#: stock/serializers.py:947 +#: stock/serializers.py:978 msgid "Cannot convert stock item with assigned SupplierPart" msgstr "" -#: stock/serializers.py:978 +#: stock/serializers.py:1009 msgid "Destination location for returned item" msgstr "" -#: stock/serializers.py:1015 +#: stock/serializers.py:1046 msgid "Select stock items to change status" msgstr "" -#: stock/serializers.py:1021 +#: stock/serializers.py:1052 msgid "No stock items selected" msgstr "" -#: stock/serializers.py:1117 stock/serializers.py:1194 -#: stock/templates/stock/location.html:162 -#: stock/templates/stock/location.html:219 +#: stock/serializers.py:1148 stock/serializers.py:1225 +#: stock/templates/stock/location.html:163 +#: stock/templates/stock/location.html:220 #: stock/templates/stock/location_sidebar.html:5 msgid "Sublocations" msgstr "" -#: stock/serializers.py:1187 templates/js/translated/stock.js:160 +#: stock/serializers.py:1218 templates/js/translated/stock.js:160 msgid "Parent stock location" msgstr "" -#: stock/serializers.py:1298 +#: stock/serializers.py:1329 msgid "Part must be salable" msgstr "" -#: stock/serializers.py:1302 +#: stock/serializers.py:1333 msgid "Item is allocated to a sales order" msgstr "" -#: stock/serializers.py:1306 +#: stock/serializers.py:1337 msgid "Item is allocated to a build order" msgstr "" -#: stock/serializers.py:1330 +#: stock/serializers.py:1361 msgid "Customer to assign stock items" msgstr "" -#: stock/serializers.py:1336 +#: stock/serializers.py:1367 msgid "Selected company is not a customer" msgstr "" -#: stock/serializers.py:1344 +#: stock/serializers.py:1375 msgid "Stock assignment notes" msgstr "" -#: stock/serializers.py:1354 stock/serializers.py:1608 +#: stock/serializers.py:1385 stock/serializers.py:1639 msgid "A list of stock items must be provided" msgstr "" -#: stock/serializers.py:1433 +#: stock/serializers.py:1464 msgid "Stock merging notes" msgstr "" -#: stock/serializers.py:1438 +#: stock/serializers.py:1469 msgid "Allow mismatched suppliers" msgstr "" -#: stock/serializers.py:1439 +#: stock/serializers.py:1470 msgid "Allow stock items with different supplier parts to be merged" msgstr "" -#: stock/serializers.py:1444 +#: stock/serializers.py:1475 msgid "Allow mismatched status" msgstr "" -#: stock/serializers.py:1445 +#: stock/serializers.py:1476 msgid "Allow stock items with different status codes to be merged" msgstr "" -#: stock/serializers.py:1455 +#: stock/serializers.py:1486 msgid "At least two stock items must be provided" msgstr "" -#: stock/serializers.py:1522 +#: stock/serializers.py:1553 msgid "No Change" msgstr "" -#: stock/serializers.py:1551 +#: stock/serializers.py:1582 msgid "StockItem primary key value" msgstr "" -#: stock/serializers.py:1570 +#: stock/serializers.py:1601 msgid "Stock item status code" msgstr "" -#: stock/serializers.py:1598 +#: stock/serializers.py:1629 msgid "Stock transaction notes" msgstr "" @@ -10175,107 +10539,107 @@ msgstr "Hylätty" msgid "Quarantined" msgstr "Asetettu karanteeniin" -#: stock/status_codes.py:40 +#: stock/status_codes.py:44 msgid "Legacy stock tracking entry" msgstr "" -#: stock/status_codes.py:42 templates/js/translated/stock.js:550 +#: stock/status_codes.py:46 templates/js/translated/stock.js:550 msgid "Stock item created" msgstr "Varastotuote luotu" -#: stock/status_codes.py:45 +#: stock/status_codes.py:49 msgid "Edited stock item" msgstr "" -#: stock/status_codes.py:46 +#: stock/status_codes.py:50 msgid "Assigned serial number" msgstr "" -#: stock/status_codes.py:49 +#: stock/status_codes.py:53 msgid "Stock counted" msgstr "" -#: stock/status_codes.py:50 +#: stock/status_codes.py:54 msgid "Stock manually added" msgstr "" -#: stock/status_codes.py:51 +#: stock/status_codes.py:55 msgid "Stock manually removed" msgstr "" -#: stock/status_codes.py:54 +#: stock/status_codes.py:58 msgid "Location changed" msgstr "Sijainti muutettu" -#: stock/status_codes.py:55 +#: stock/status_codes.py:59 msgid "Stock updated" msgstr "Varasto päivitetty" -#: stock/status_codes.py:58 +#: stock/status_codes.py:62 msgid "Installed into assembly" msgstr "" -#: stock/status_codes.py:59 +#: stock/status_codes.py:63 msgid "Removed from assembly" msgstr "" -#: stock/status_codes.py:61 +#: stock/status_codes.py:65 msgid "Installed component item" msgstr "" -#: stock/status_codes.py:62 +#: stock/status_codes.py:66 msgid "Removed component item" msgstr "" -#: stock/status_codes.py:65 +#: stock/status_codes.py:69 msgid "Split from parent item" msgstr "" -#: stock/status_codes.py:66 +#: stock/status_codes.py:70 msgid "Split child item" msgstr "" -#: stock/status_codes.py:69 templates/js/translated/stock.js:1943 +#: stock/status_codes.py:73 templates/js/translated/stock.js:1944 msgid "Merged stock items" msgstr "" -#: stock/status_codes.py:72 +#: stock/status_codes.py:76 msgid "Converted to variant" msgstr "" -#: stock/status_codes.py:75 +#: stock/status_codes.py:79 msgid "Build order output created" msgstr "" -#: stock/status_codes.py:76 +#: stock/status_codes.py:80 msgid "Build order output completed" msgstr "" -#: stock/status_codes.py:77 +#: stock/status_codes.py:81 msgid "Build order output rejected" msgstr "" -#: stock/status_codes.py:78 templates/js/translated/stock.js:1849 +#: stock/status_codes.py:82 templates/js/translated/stock.js:1849 msgid "Consumed by build order" msgstr "" -#: stock/status_codes.py:81 +#: stock/status_codes.py:85 msgid "Shipped against Sales Order" msgstr "" -#: stock/status_codes.py:84 +#: stock/status_codes.py:88 msgid "Received against Purchase Order" msgstr "" -#: stock/status_codes.py:87 +#: stock/status_codes.py:91 msgid "Returned against Return Order" msgstr "" -#: stock/status_codes.py:90 templates/js/translated/table_filters.js:382 +#: stock/status_codes.py:94 templates/js/translated/table_filters.js:382 msgid "Sent to customer" msgstr "" -#: stock/status_codes.py:91 +#: stock/status_codes.py:95 msgid "Returned from customer" msgstr "" @@ -10296,7 +10660,7 @@ msgstr "" msgid "Test Data" msgstr "" -#: stock/templates/stock/item.html:85 stock/templates/stock/item_base.html:65 +#: stock/templates/stock/item.html:85 msgid "Test Report" msgstr "" @@ -10316,7 +10680,7 @@ msgstr "" msgid "Installed Stock Items" msgstr "" -#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3354 +#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3355 msgid "Install Stock Item" msgstr "" @@ -10328,208 +10692,212 @@ msgstr "" msgid "Add Test Result" msgstr "" -#: stock/templates/stock/item_base.html:33 +#: stock/templates/stock/item_base.html:34 msgid "Locate stock item" msgstr "" -#: stock/templates/stock/item_base.html:51 +#: stock/templates/stock/item_base.html:52 msgid "Scan to Location" msgstr "" #: stock/templates/stock/item_base.html:59 -#: stock/templates/stock/location.html:67 +#: stock/templates/stock/location.html:68 #: templates/js/translated/filters.js:434 msgid "Printing actions" msgstr "" -#: stock/templates/stock/item_base.html:75 +#: stock/templates/stock/item_base.html:64 templates/js/translated/report.js:49 +msgid "Print Report" +msgstr "" + +#: stock/templates/stock/item_base.html:72 msgid "Stock adjustment actions" msgstr "" -#: stock/templates/stock/item_base.html:79 -#: stock/templates/stock/location.html:87 templates/js/translated/stock.js:1909 +#: stock/templates/stock/item_base.html:76 +#: stock/templates/stock/location.html:88 templates/js/translated/stock.js:1909 msgid "Count stock" msgstr "" -#: stock/templates/stock/item_base.html:81 +#: stock/templates/stock/item_base.html:78 #: templates/js/translated/stock.js:1891 msgid "Add stock" msgstr "" -#: stock/templates/stock/item_base.html:82 +#: stock/templates/stock/item_base.html:79 #: templates/js/translated/stock.js:1900 msgid "Remove stock" msgstr "" -#: stock/templates/stock/item_base.html:85 +#: stock/templates/stock/item_base.html:82 msgid "Serialize stock" msgstr "" -#: stock/templates/stock/item_base.html:88 -#: stock/templates/stock/location.html:93 templates/js/translated/stock.js:1918 +#: stock/templates/stock/item_base.html:85 +#: stock/templates/stock/location.html:94 templates/js/translated/stock.js:1918 msgid "Transfer stock" msgstr "" -#: stock/templates/stock/item_base.html:91 -#: templates/js/translated/stock.js:1972 +#: stock/templates/stock/item_base.html:88 +#: templates/js/translated/stock.js:1973 msgid "Assign to customer" msgstr "" -#: stock/templates/stock/item_base.html:94 +#: stock/templates/stock/item_base.html:91 msgid "Return to stock" msgstr "" -#: stock/templates/stock/item_base.html:97 +#: stock/templates/stock/item_base.html:94 msgid "Uninstall stock item" msgstr "" -#: stock/templates/stock/item_base.html:97 +#: stock/templates/stock/item_base.html:94 msgid "Uninstall" msgstr "" -#: stock/templates/stock/item_base.html:101 +#: stock/templates/stock/item_base.html:98 msgid "Install stock item" msgstr "" -#: stock/templates/stock/item_base.html:101 +#: stock/templates/stock/item_base.html:98 msgid "Install" msgstr "" -#: stock/templates/stock/item_base.html:115 +#: stock/templates/stock/item_base.html:112 msgid "Convert to variant" msgstr "" -#: stock/templates/stock/item_base.html:118 +#: stock/templates/stock/item_base.html:115 msgid "Duplicate stock item" msgstr "" -#: stock/templates/stock/item_base.html:120 +#: stock/templates/stock/item_base.html:117 msgid "Edit stock item" msgstr "" -#: stock/templates/stock/item_base.html:123 +#: stock/templates/stock/item_base.html:120 msgid "Delete stock item" msgstr "" -#: stock/templates/stock/item_base.html:169 templates/InvenTree/search.html:139 -#: templates/js/translated/build.js:2295 templates/navbar.html:38 +#: stock/templates/stock/item_base.html:166 templates/InvenTree/search.html:139 +#: templates/js/translated/build.js:2298 templates/navbar.html:38 msgid "Build" msgstr "" -#: stock/templates/stock/item_base.html:211 +#: stock/templates/stock/item_base.html:208 msgid "No manufacturer set" msgstr "" -#: stock/templates/stock/item_base.html:251 +#: stock/templates/stock/item_base.html:248 msgid "You are not in the list of owners of this item. This stock item cannot be edited." msgstr "" -#: stock/templates/stock/item_base.html:252 -#: stock/templates/stock/location.html:146 +#: stock/templates/stock/item_base.html:249 +#: stock/templates/stock/location.html:147 msgid "Read only" msgstr "" -#: stock/templates/stock/item_base.html:265 +#: stock/templates/stock/item_base.html:262 msgid "This stock item is unavailable" msgstr "" -#: stock/templates/stock/item_base.html:271 +#: stock/templates/stock/item_base.html:268 msgid "This stock item is in production and cannot be edited." msgstr "" -#: stock/templates/stock/item_base.html:272 +#: stock/templates/stock/item_base.html:269 msgid "Edit the stock item from the build view." msgstr "" -#: stock/templates/stock/item_base.html:287 +#: stock/templates/stock/item_base.html:284 msgid "This stock item is allocated to Sales Order" msgstr "" -#: stock/templates/stock/item_base.html:295 +#: stock/templates/stock/item_base.html:292 msgid "This stock item is allocated to Build Order" msgstr "" -#: stock/templates/stock/item_base.html:311 +#: stock/templates/stock/item_base.html:308 msgid "This stock item is serialized. It has a unique serial number and the quantity cannot be adjusted" msgstr "" -#: stock/templates/stock/item_base.html:317 +#: stock/templates/stock/item_base.html:314 msgid "previous page" msgstr "edellinen sivu" -#: stock/templates/stock/item_base.html:317 +#: stock/templates/stock/item_base.html:314 msgid "Navigate to previous serial number" msgstr "Siirry edeltävään sarjanumeroon" -#: stock/templates/stock/item_base.html:326 +#: stock/templates/stock/item_base.html:323 msgid "next page" msgstr "seuraava sivu" -#: stock/templates/stock/item_base.html:326 +#: stock/templates/stock/item_base.html:323 msgid "Navigate to next serial number" msgstr "Siirry seuraavaan sarjanumeroon" -#: stock/templates/stock/item_base.html:398 -#: templates/js/translated/build.js:2552 +#: stock/templates/stock/item_base.html:395 +#: templates/js/translated/build.js:2559 msgid "No location set" msgstr "" -#: stock/templates/stock/item_base.html:413 +#: stock/templates/stock/item_base.html:410 msgid "Tests" msgstr "" -#: stock/templates/stock/item_base.html:419 +#: stock/templates/stock/item_base.html:416 msgid "This stock item has not passed all required tests" msgstr "" -#: stock/templates/stock/item_base.html:437 +#: stock/templates/stock/item_base.html:434 #, python-format msgid "This StockItem expired on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:439 +#: stock/templates/stock/item_base.html:436 #, python-format msgid "This StockItem expires on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:455 +#: stock/templates/stock/item_base.html:452 msgid "No stocktake performed" msgstr "" -#: stock/templates/stock/item_base.html:504 -#: templates/js/translated/stock.js:2037 +#: stock/templates/stock/item_base.html:501 +#: templates/js/translated/stock.js:2038 msgid "stock item" msgstr "" -#: stock/templates/stock/item_base.html:527 +#: stock/templates/stock/item_base.html:524 msgid "Edit Stock Status" msgstr "" -#: stock/templates/stock/item_base.html:536 +#: stock/templates/stock/item_base.html:533 msgid "Stock Item QR Code" msgstr "" -#: stock/templates/stock/item_base.html:547 +#: stock/templates/stock/item_base.html:544 msgid "Link Barcode to Stock Item" msgstr "" -#: stock/templates/stock/item_base.html:611 +#: stock/templates/stock/item_base.html:608 msgid "Select one of the part variants listed below." msgstr "" -#: stock/templates/stock/item_base.html:614 +#: stock/templates/stock/item_base.html:611 msgid "Warning" msgstr "Varoitus" -#: stock/templates/stock/item_base.html:615 +#: stock/templates/stock/item_base.html:612 msgid "This action cannot be easily undone" msgstr "" -#: stock/templates/stock/item_base.html:623 +#: stock/templates/stock/item_base.html:620 msgid "Convert Stock Item" msgstr "" -#: stock/templates/stock/item_base.html:656 +#: stock/templates/stock/item_base.html:653 msgid "Return to Stock" msgstr "" @@ -10541,84 +10909,84 @@ msgstr "" msgid "Select quantity to serialize, and unique serial numbers." msgstr "" -#: stock/templates/stock/location.html:35 +#: stock/templates/stock/location.html:36 msgid "Perform stocktake for this stock location" msgstr "" -#: stock/templates/stock/location.html:42 +#: stock/templates/stock/location.html:43 msgid "Locate stock location" msgstr "" -#: stock/templates/stock/location.html:60 +#: stock/templates/stock/location.html:61 msgid "Scan stock items into this location" msgstr "" -#: stock/templates/stock/location.html:60 +#: stock/templates/stock/location.html:61 msgid "Scan In Stock Items" msgstr "" -#: stock/templates/stock/location.html:61 +#: stock/templates/stock/location.html:62 msgid "Scan stock container into this location" msgstr "" -#: stock/templates/stock/location.html:61 +#: stock/templates/stock/location.html:62 msgid "Scan In Container" msgstr "" -#: stock/templates/stock/location.html:72 +#: stock/templates/stock/location.html:73 msgid "Print Location Report" msgstr "" -#: stock/templates/stock/location.html:101 +#: stock/templates/stock/location.html:102 msgid "Location actions" msgstr "" -#: stock/templates/stock/location.html:103 +#: stock/templates/stock/location.html:104 msgid "Edit location" msgstr "Muokkaa sijaintia" -#: stock/templates/stock/location.html:105 +#: stock/templates/stock/location.html:106 msgid "Delete location" msgstr "Poista sijainti" -#: stock/templates/stock/location.html:135 +#: stock/templates/stock/location.html:136 msgid "Top level stock location" msgstr "" -#: stock/templates/stock/location.html:141 +#: stock/templates/stock/location.html:142 msgid "Location Owner" msgstr "" -#: stock/templates/stock/location.html:145 +#: stock/templates/stock/location.html:146 msgid "You are not in the list of owners of this location. This stock location cannot be edited." msgstr "" -#: stock/templates/stock/location.html:173 +#: stock/templates/stock/location.html:174 msgid "Location Type" msgstr "" -#: stock/templates/stock/location.html:223 +#: stock/templates/stock/location.html:224 msgid "Create new stock location" msgstr "" -#: stock/templates/stock/location.html:224 +#: stock/templates/stock/location.html:225 msgid "New Location" msgstr "Uusi sijainti" -#: stock/templates/stock/location.html:298 -#: templates/js/translated/stock.js:2657 +#: stock/templates/stock/location.html:299 +#: templates/js/translated/stock.js:2658 msgid "stock location" msgstr "" -#: stock/templates/stock/location.html:320 +#: stock/templates/stock/location.html:321 msgid "Scanned stock container into this location" msgstr "" -#: stock/templates/stock/location.html:393 +#: stock/templates/stock/location.html:394 msgid "Stock Location QR Code" msgstr "" -#: stock/templates/stock/location.html:404 +#: stock/templates/stock/location.html:405 msgid "Link Barcode to Stock Location" msgstr "" @@ -10630,10 +10998,6 @@ msgstr "Ladataan..." msgid "Stock Tracking" msgstr "" -#: stock/templates/stock/stock_sidebar.html:8 -msgid "Allocations" -msgstr "" - #: templates/403.html:6 templates/403.html:12 templates/403_csrf.html:7 msgid "Permission Denied" msgstr "" @@ -11107,9 +11471,9 @@ msgid "Rate" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:81 -#: templates/js/translated/forms.js:548 templates/js/translated/helpers.js:108 +#: templates/js/translated/forms.js:548 templates/js/translated/helpers.js:109 #: templates/js/translated/part.js:395 templates/js/translated/pricing.js:629 -#: templates/js/translated/stock.js:252 users/models.py:406 +#: templates/js/translated/stock.js:252 users/models.py:408 msgid "Delete" msgstr "Poista" @@ -11130,7 +11494,7 @@ msgid "No project codes found" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:158 -#: templates/js/translated/build.js:2400 +#: templates/js/translated/build.js:2403 msgid "group" msgstr "" @@ -11196,7 +11560,7 @@ msgid "Delete Location Type" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:503 -#: templates/InvenTree/settings/stock.html:38 +#: templates/InvenTree/settings/stock.html:39 msgid "New Location Type" msgstr "" @@ -11253,7 +11617,7 @@ msgstr "" msgid "Stock Settings" msgstr "" -#: templates/InvenTree/settings/stock.html:34 +#: templates/InvenTree/settings/stock.html:35 msgid "Stock Location Types" msgstr "" @@ -11280,7 +11644,7 @@ msgid "Unverified" msgstr "Vahvistamaton" #: templates/InvenTree/settings/user.html:80 -#: templates/js/translated/company.js:957 +#: templates/js/translated/company.js:958 msgid "Primary" msgstr "Ensisijainen" @@ -11532,7 +11896,7 @@ msgid "Submit Bug Report" msgstr "" #: templates/about.html:91 templates/clip.html:4 -#: templates/js/translated/helpers.js:592 +#: templates/js/translated/helpers.js:598 msgid "copy to clipboard" msgstr "kopioi leikepöydälle" @@ -11738,23 +12102,24 @@ msgstr "Lisää liite" msgid "Barcode Identifier" msgstr "" -#: templates/base.html:103 +#: templates/base.html:102 msgid "Server Restart Required" msgstr "Palvelimen uudelleenkäynnistys vaaditaan" -#: templates/base.html:106 +#: templates/base.html:105 msgid "A configuration option has been changed which requires a server restart" msgstr "" -#: templates/base.html:106 templates/base.html:116 +#: templates/base.html:105 templates/base.html:115 +#: templates/socialaccount/authentication_error.html:13 msgid "Contact your system administrator for further information" msgstr "" -#: templates/base.html:113 +#: templates/base.html:112 msgid "Pending Database Migrations" msgstr "" -#: templates/base.html:116 +#: templates/base.html:115 msgid "There are pending database migrations which require attention" msgstr "" @@ -11787,7 +12152,7 @@ msgid "The following parts are low on required stock" msgstr "" #: templates/email/build_order_required_stock.html:18 -#: templates/js/translated/bom.js:1674 templates/js/translated/build.js:2747 +#: templates/js/translated/bom.js:1674 templates/js/translated/build.js:2765 msgid "Required Quantity" msgstr "" @@ -11801,7 +12166,7 @@ msgid "Click on the following link to view this part" msgstr "" #: templates/email/low_stock_notification.html:18 -#: templates/js/translated/part.js:3237 +#: templates/js/translated/part.js:3253 msgid "Minimum Quantity" msgstr "" @@ -12039,7 +12404,7 @@ msgstr "" #: templates/js/translated/bom.js:189 templates/js/translated/bom.js:700 #: templates/js/translated/modals.js:75 templates/js/translated/modals.js:629 #: templates/js/translated/modals.js:757 templates/js/translated/modals.js:1065 -#: templates/js/translated/purchase_order.js:797 templates/modals.html:15 +#: templates/js/translated/purchase_order.js:780 templates/modals.html:15 #: templates/modals.html:27 templates/modals.html:39 templates/modals.html:50 msgid "Close" msgstr "Sulje" @@ -12156,7 +12521,7 @@ msgstr "" msgid "Substitutes Available" msgstr "" -#: templates/js/translated/bom.js:950 templates/js/translated/build.js:2673 +#: templates/js/translated/bom.js:950 templates/js/translated/build.js:2682 msgid "Variant stock allowed" msgstr "" @@ -12176,30 +12541,30 @@ msgstr "" msgid "No pricing available" msgstr "" -#: templates/js/translated/bom.js:1184 templates/js/translated/build.js:2812 +#: templates/js/translated/bom.js:1184 templates/js/translated/build.js:2830 msgid "External stock" msgstr "" -#: templates/js/translated/bom.js:1188 templates/js/translated/build.js:2786 -#: templates/js/translated/sales_order.js:1946 +#: templates/js/translated/bom.js:1188 templates/js/translated/build.js:2804 +#: templates/js/translated/sales_order.js:1927 msgid "No Stock Available" msgstr "" -#: templates/js/translated/bom.js:1193 templates/js/translated/build.js:2790 +#: templates/js/translated/bom.js:1193 templates/js/translated/build.js:2808 msgid "Includes variant and substitute stock" msgstr "" -#: templates/js/translated/bom.js:1195 templates/js/translated/build.js:2792 +#: templates/js/translated/bom.js:1195 templates/js/translated/build.js:2810 #: templates/js/translated/part.js:1263 -#: templates/js/translated/sales_order.js:1943 +#: templates/js/translated/sales_order.js:1924 msgid "Includes variant stock" msgstr "" -#: templates/js/translated/bom.js:1197 templates/js/translated/build.js:2794 +#: templates/js/translated/bom.js:1197 templates/js/translated/build.js:2812 msgid "Includes substitute stock" msgstr "" -#: templates/js/translated/bom.js:1225 templates/js/translated/build.js:2777 +#: templates/js/translated/bom.js:1225 templates/js/translated/build.js:2795 msgid "Consumable item" msgstr "" @@ -12231,7 +12596,7 @@ msgstr "" msgid "No BOM items found" msgstr "" -#: templates/js/translated/bom.js:1657 templates/js/translated/build.js:2658 +#: templates/js/translated/bom.js:1657 templates/js/translated/build.js:2667 msgid "Required Part" msgstr "" @@ -12243,396 +12608,396 @@ msgstr "" msgid "Edit Build Order" msgstr "" -#: templates/js/translated/build.js:191 +#: templates/js/translated/build.js:194 msgid "Create Build Order" msgstr "" -#: templates/js/translated/build.js:223 +#: templates/js/translated/build.js:226 msgid "Cancel Build Order" msgstr "" -#: templates/js/translated/build.js:232 +#: templates/js/translated/build.js:235 msgid "Are you sure you wish to cancel this build?" msgstr "" -#: templates/js/translated/build.js:238 +#: templates/js/translated/build.js:241 msgid "Stock items have been allocated to this build order" msgstr "" -#: templates/js/translated/build.js:245 +#: templates/js/translated/build.js:248 msgid "There are incomplete outputs remaining for this build order" msgstr "" -#: templates/js/translated/build.js:297 +#: templates/js/translated/build.js:300 msgid "Build order is ready to be completed" msgstr "" -#: templates/js/translated/build.js:305 +#: templates/js/translated/build.js:308 msgid "This build order cannot be completed as there are incomplete outputs" msgstr "" -#: templates/js/translated/build.js:310 +#: templates/js/translated/build.js:313 msgid "Build Order is incomplete" msgstr "" -#: templates/js/translated/build.js:328 +#: templates/js/translated/build.js:331 msgid "Complete Build Order" msgstr "" -#: templates/js/translated/build.js:369 templates/js/translated/stock.js:127 +#: templates/js/translated/build.js:372 templates/js/translated/stock.js:127 #: templates/js/translated/stock.js:301 msgid "Next available serial number" msgstr "" -#: templates/js/translated/build.js:371 templates/js/translated/stock.js:129 +#: templates/js/translated/build.js:374 templates/js/translated/stock.js:129 #: templates/js/translated/stock.js:303 msgid "Latest serial number" msgstr "" -#: templates/js/translated/build.js:380 +#: templates/js/translated/build.js:383 msgid "The Bill of Materials contains trackable parts" msgstr "" -#: templates/js/translated/build.js:381 +#: templates/js/translated/build.js:384 msgid "Build outputs must be generated individually" msgstr "" -#: templates/js/translated/build.js:389 +#: templates/js/translated/build.js:392 msgid "Trackable parts can have serial numbers specified" msgstr "" -#: templates/js/translated/build.js:390 +#: templates/js/translated/build.js:393 msgid "Enter serial numbers to generate multiple single build outputs" msgstr "" -#: templates/js/translated/build.js:397 +#: templates/js/translated/build.js:400 msgid "Create Build Output" msgstr "" -#: templates/js/translated/build.js:428 +#: templates/js/translated/build.js:431 msgid "Allocate stock items to this build output" msgstr "" -#: templates/js/translated/build.js:436 +#: templates/js/translated/build.js:439 msgid "Deallocate stock from build output" msgstr "" -#: templates/js/translated/build.js:445 +#: templates/js/translated/build.js:448 msgid "Complete build output" msgstr "" -#: templates/js/translated/build.js:453 +#: templates/js/translated/build.js:456 msgid "Scrap build output" msgstr "" -#: templates/js/translated/build.js:460 +#: templates/js/translated/build.js:463 msgid "Delete build output" msgstr "" -#: templates/js/translated/build.js:480 +#: templates/js/translated/build.js:483 msgid "Are you sure you wish to deallocate the selected stock items from this build?" msgstr "" -#: templates/js/translated/build.js:498 +#: templates/js/translated/build.js:501 msgid "Deallocate Stock Items" msgstr "" -#: templates/js/translated/build.js:584 templates/js/translated/build.js:711 -#: templates/js/translated/build.js:836 +#: templates/js/translated/build.js:587 templates/js/translated/build.js:714 +#: templates/js/translated/build.js:839 msgid "Select Build Outputs" msgstr "" -#: templates/js/translated/build.js:585 templates/js/translated/build.js:712 -#: templates/js/translated/build.js:837 +#: templates/js/translated/build.js:588 templates/js/translated/build.js:715 +#: templates/js/translated/build.js:840 msgid "At least one build output must be selected" msgstr "" -#: templates/js/translated/build.js:599 +#: templates/js/translated/build.js:602 msgid "Selected build outputs will be marked as complete" msgstr "" -#: templates/js/translated/build.js:603 templates/js/translated/build.js:736 -#: templates/js/translated/build.js:859 +#: templates/js/translated/build.js:606 templates/js/translated/build.js:739 +#: templates/js/translated/build.js:862 msgid "Output" msgstr "" -#: templates/js/translated/build.js:630 +#: templates/js/translated/build.js:633 msgid "Complete Build Outputs" msgstr "" -#: templates/js/translated/build.js:727 +#: templates/js/translated/build.js:730 msgid "Selected build outputs will be marked as scrapped" msgstr "" -#: templates/js/translated/build.js:729 +#: templates/js/translated/build.js:732 msgid "Scrapped output are marked as rejected" msgstr "" -#: templates/js/translated/build.js:730 +#: templates/js/translated/build.js:733 msgid "Allocated stock items will no longer be available" msgstr "" -#: templates/js/translated/build.js:731 +#: templates/js/translated/build.js:734 msgid "The completion status of the build order will not be adjusted" msgstr "" -#: templates/js/translated/build.js:761 +#: templates/js/translated/build.js:764 msgid "Scrap Build Outputs" msgstr "" -#: templates/js/translated/build.js:851 +#: templates/js/translated/build.js:854 msgid "Selected build outputs will be deleted" msgstr "" -#: templates/js/translated/build.js:853 +#: templates/js/translated/build.js:856 msgid "Build output data will be permanently deleted" msgstr "" -#: templates/js/translated/build.js:854 +#: templates/js/translated/build.js:857 msgid "Allocated stock items will be returned to stock" msgstr "" -#: templates/js/translated/build.js:872 +#: templates/js/translated/build.js:875 msgid "Delete Build Outputs" msgstr "" -#: templates/js/translated/build.js:959 +#: templates/js/translated/build.js:962 msgid "Delete allocations" msgstr "" -#: templates/js/translated/build.js:966 +#: templates/js/translated/build.js:969 msgid "Delete Stock Allocations" msgstr "" -#: templates/js/translated/build.js:989 +#: templates/js/translated/build.js:992 msgid "No allocated stock" msgstr "" -#: templates/js/translated/build.js:1045 +#: templates/js/translated/build.js:1048 msgid "Stock item" msgstr "" -#: templates/js/translated/build.js:1070 +#: templates/js/translated/build.js:1073 msgid "Edit build allocation" msgstr "" -#: templates/js/translated/build.js:1071 +#: templates/js/translated/build.js:1074 msgid "Delete build allocation" msgstr "" -#: templates/js/translated/build.js:1089 +#: templates/js/translated/build.js:1092 msgid "Edit Build Allocation" msgstr "" -#: templates/js/translated/build.js:1102 +#: templates/js/translated/build.js:1105 msgid "Delete Build Allocation" msgstr "" -#: templates/js/translated/build.js:1133 +#: templates/js/translated/build.js:1136 msgid "No build order allocations found" msgstr "" -#: templates/js/translated/build.js:1178 +#: templates/js/translated/build.js:1181 msgid "Location not specified" msgstr "" -#: templates/js/translated/build.js:1200 +#: templates/js/translated/build.js:1203 msgid "Complete outputs" msgstr "" -#: templates/js/translated/build.js:1218 +#: templates/js/translated/build.js:1221 msgid "Scrap outputs" msgstr "" -#: templates/js/translated/build.js:1236 +#: templates/js/translated/build.js:1239 msgid "Delete outputs" msgstr "" -#: templates/js/translated/build.js:1289 +#: templates/js/translated/build.js:1292 msgid "build output" msgstr "" -#: templates/js/translated/build.js:1290 +#: templates/js/translated/build.js:1293 msgid "build outputs" msgstr "" -#: templates/js/translated/build.js:1294 +#: templates/js/translated/build.js:1297 msgid "Build output actions" msgstr "" -#: templates/js/translated/build.js:1470 +#: templates/js/translated/build.js:1473 msgid "No active build outputs found" msgstr "" -#: templates/js/translated/build.js:1563 +#: templates/js/translated/build.js:1566 msgid "Allocated Lines" msgstr "" -#: templates/js/translated/build.js:1577 +#: templates/js/translated/build.js:1580 msgid "Required Tests" msgstr "" -#: templates/js/translated/build.js:1749 -#: templates/js/translated/purchase_order.js:611 -#: templates/js/translated/sales_order.js:1207 +#: templates/js/translated/build.js:1752 +#: templates/js/translated/purchase_order.js:594 +#: templates/js/translated/sales_order.js:1173 msgid "Select Parts" msgstr "" -#: templates/js/translated/build.js:1750 -#: templates/js/translated/sales_order.js:1208 +#: templates/js/translated/build.js:1753 +#: templates/js/translated/sales_order.js:1174 msgid "You must select at least one part to allocate" msgstr "" -#: templates/js/translated/build.js:1813 -#: templates/js/translated/sales_order.js:1157 +#: templates/js/translated/build.js:1816 +#: templates/js/translated/sales_order.js:1123 msgid "Specify stock allocation quantity" msgstr "" -#: templates/js/translated/build.js:1890 +#: templates/js/translated/build.js:1893 msgid "All Parts Allocated" msgstr "" -#: templates/js/translated/build.js:1891 +#: templates/js/translated/build.js:1894 msgid "All selected parts have been fully allocated" msgstr "" -#: templates/js/translated/build.js:1905 -#: templates/js/translated/sales_order.js:1222 +#: templates/js/translated/build.js:1908 +#: templates/js/translated/sales_order.js:1188 msgid "Select source location (leave blank to take from all locations)" msgstr "" -#: templates/js/translated/build.js:1933 +#: templates/js/translated/build.js:1936 msgid "Allocate Stock Items to Build Order" msgstr "" -#: templates/js/translated/build.js:1944 -#: templates/js/translated/sales_order.js:1319 +#: templates/js/translated/build.js:1947 +#: templates/js/translated/sales_order.js:1285 msgid "No matching stock locations" msgstr "" -#: templates/js/translated/build.js:2017 -#: templates/js/translated/sales_order.js:1398 +#: templates/js/translated/build.js:2020 +#: templates/js/translated/sales_order.js:1364 msgid "No matching stock items" msgstr "" -#: templates/js/translated/build.js:2114 +#: templates/js/translated/build.js:2117 msgid "Automatic Stock Allocation" msgstr "" -#: templates/js/translated/build.js:2115 +#: templates/js/translated/build.js:2118 msgid "Stock items will be automatically allocated to this build order, according to the provided guidelines" msgstr "" -#: templates/js/translated/build.js:2117 +#: templates/js/translated/build.js:2120 msgid "If a location is specified, stock will only be allocated from that location" msgstr "" -#: templates/js/translated/build.js:2118 +#: templates/js/translated/build.js:2121 msgid "If stock is considered interchangeable, it will be allocated from the first location it is found" msgstr "" -#: templates/js/translated/build.js:2119 +#: templates/js/translated/build.js:2122 msgid "If substitute stock is allowed, it will be used where stock of the primary part cannot be found" msgstr "" -#: templates/js/translated/build.js:2149 +#: templates/js/translated/build.js:2152 msgid "Allocate Stock Items" msgstr "" -#: templates/js/translated/build.js:2254 +#: templates/js/translated/build.js:2257 msgid "No builds matching query" msgstr "" -#: templates/js/translated/build.js:2289 templates/js/translated/build.js:2652 +#: templates/js/translated/build.js:2292 templates/js/translated/build.js:2661 #: templates/js/translated/forms.js:2196 templates/js/translated/forms.js:2212 #: templates/js/translated/part.js:2322 templates/js/translated/part.js:2761 -#: templates/js/translated/stock.js:2068 templates/js/translated/stock.js:2795 +#: templates/js/translated/stock.js:2069 templates/js/translated/stock.js:2796 msgid "Select" msgstr "" -#: templates/js/translated/build.js:2303 +#: templates/js/translated/build.js:2306 msgid "Build order is overdue" msgstr "" -#: templates/js/translated/build.js:2385 templates/js/translated/stock.js:3126 +#: templates/js/translated/build.js:2388 templates/js/translated/stock.js:3127 msgid "No user information" msgstr "" -#: templates/js/translated/build.js:2561 -#: templates/js/translated/sales_order.js:1682 +#: templates/js/translated/build.js:2568 +#: templates/js/translated/sales_order.js:1663 msgid "Edit stock allocation" msgstr "" -#: templates/js/translated/build.js:2562 -#: templates/js/translated/sales_order.js:1683 +#: templates/js/translated/build.js:2569 +#: templates/js/translated/sales_order.js:1664 msgid "Delete stock allocation" msgstr "" -#: templates/js/translated/build.js:2577 +#: templates/js/translated/build.js:2584 msgid "Edit Allocation" msgstr "" -#: templates/js/translated/build.js:2589 +#: templates/js/translated/build.js:2596 msgid "Remove Allocation" msgstr "" -#: templates/js/translated/build.js:2628 +#: templates/js/translated/build.js:2636 msgid "build line" msgstr "" -#: templates/js/translated/build.js:2629 +#: templates/js/translated/build.js:2637 msgid "build lines" msgstr "" -#: templates/js/translated/build.js:2647 +#: templates/js/translated/build.js:2656 msgid "No build lines found" msgstr "" -#: templates/js/translated/build.js:2677 templates/js/translated/part.js:793 +#: templates/js/translated/build.js:2686 templates/js/translated/part.js:793 #: templates/js/translated/part.js:1209 msgid "Trackable part" msgstr "" -#: templates/js/translated/build.js:2720 +#: templates/js/translated/build.js:2729 msgid "Gets Inherited" msgstr "" -#: templates/js/translated/build.js:2730 +#: templates/js/translated/build.js:2748 msgid "Unit Quantity" msgstr "" -#: templates/js/translated/build.js:2782 -#: templates/js/translated/sales_order.js:1951 +#: templates/js/translated/build.js:2800 +#: templates/js/translated/sales_order.js:1932 msgid "Sufficient stock available" msgstr "" -#: templates/js/translated/build.js:2837 +#: templates/js/translated/build.js:2855 msgid "Consumable Item" msgstr "" -#: templates/js/translated/build.js:2844 +#: templates/js/translated/build.js:2862 msgid "Tracked item" msgstr "" -#: templates/js/translated/build.js:2845 +#: templates/js/translated/build.js:2863 msgid "Allocate tracked items against individual build outputs" msgstr "" -#: templates/js/translated/build.js:2853 -#: templates/js/translated/sales_order.js:2052 +#: templates/js/translated/build.js:2871 +#: templates/js/translated/sales_order.js:2033 msgid "Build stock" msgstr "" -#: templates/js/translated/build.js:2858 templates/js/translated/stock.js:1953 +#: templates/js/translated/build.js:2876 templates/js/translated/stock.js:1954 msgid "Order stock" msgstr "" -#: templates/js/translated/build.js:2862 -#: templates/js/translated/sales_order.js:2046 +#: templates/js/translated/build.js:2880 +#: templates/js/translated/sales_order.js:2027 msgid "Allocate stock" msgstr "" -#: templates/js/translated/build.js:2866 +#: templates/js/translated/build.js:2884 msgid "Remove stock allocation" msgstr "" @@ -12641,7 +13006,7 @@ msgid "Add Manufacturer" msgstr "" #: templates/js/translated/company.js:111 -#: templates/js/translated/company.js:213 +#: templates/js/translated/company.js:214 msgid "Add Manufacturer Part" msgstr "" @@ -12649,231 +13014,231 @@ msgstr "" msgid "Edit Manufacturer Part" msgstr "" -#: templates/js/translated/company.js:201 +#: templates/js/translated/company.js:202 #: templates/js/translated/purchase_order.js:93 msgid "Add Supplier" msgstr "" -#: templates/js/translated/company.js:243 -#: templates/js/translated/purchase_order.js:318 +#: templates/js/translated/company.js:244 +#: templates/js/translated/purchase_order.js:301 msgid "Add Supplier Part" msgstr "" -#: templates/js/translated/company.js:344 +#: templates/js/translated/company.js:345 msgid "All selected supplier parts will be deleted" msgstr "" -#: templates/js/translated/company.js:360 +#: templates/js/translated/company.js:361 msgid "Delete Supplier Parts" msgstr "" -#: templates/js/translated/company.js:466 +#: templates/js/translated/company.js:467 msgid "Add new Company" msgstr "" -#: templates/js/translated/company.js:546 +#: templates/js/translated/company.js:547 msgid "Parts Supplied" msgstr "" -#: templates/js/translated/company.js:555 +#: templates/js/translated/company.js:556 msgid "Parts Manufactured" msgstr "" -#: templates/js/translated/company.js:570 +#: templates/js/translated/company.js:571 msgid "No company information found" msgstr "" -#: templates/js/translated/company.js:619 +#: templates/js/translated/company.js:620 msgid "Create New Contact" msgstr "" -#: templates/js/translated/company.js:635 -#: templates/js/translated/company.js:758 +#: templates/js/translated/company.js:636 +#: templates/js/translated/company.js:759 msgid "Edit Contact" msgstr "" -#: templates/js/translated/company.js:672 +#: templates/js/translated/company.js:673 msgid "All selected contacts will be deleted" msgstr "" -#: templates/js/translated/company.js:678 -#: templates/js/translated/company.js:742 +#: templates/js/translated/company.js:679 +#: templates/js/translated/company.js:743 msgid "Role" msgstr "" -#: templates/js/translated/company.js:686 +#: templates/js/translated/company.js:687 msgid "Delete Contacts" msgstr "" -#: templates/js/translated/company.js:717 +#: templates/js/translated/company.js:718 msgid "No contacts found" msgstr "" -#: templates/js/translated/company.js:730 +#: templates/js/translated/company.js:731 msgid "Phone Number" msgstr "" -#: templates/js/translated/company.js:736 +#: templates/js/translated/company.js:737 msgid "Email Address" msgstr "" -#: templates/js/translated/company.js:762 +#: templates/js/translated/company.js:763 msgid "Delete Contact" msgstr "" -#: templates/js/translated/company.js:859 +#: templates/js/translated/company.js:860 msgid "Create New Address" msgstr "" -#: templates/js/translated/company.js:874 -#: templates/js/translated/company.js:1035 +#: templates/js/translated/company.js:875 +#: templates/js/translated/company.js:1036 msgid "Edit Address" msgstr "" -#: templates/js/translated/company.js:909 +#: templates/js/translated/company.js:910 msgid "All selected addresses will be deleted" msgstr "" -#: templates/js/translated/company.js:923 +#: templates/js/translated/company.js:924 msgid "Delete Addresses" msgstr "" -#: templates/js/translated/company.js:950 +#: templates/js/translated/company.js:951 msgid "No addresses found" msgstr "" -#: templates/js/translated/company.js:989 +#: templates/js/translated/company.js:990 msgid "Postal city" msgstr "" -#: templates/js/translated/company.js:995 +#: templates/js/translated/company.js:996 msgid "State/province" msgstr "" -#: templates/js/translated/company.js:1007 +#: templates/js/translated/company.js:1008 msgid "Courier notes" msgstr "" -#: templates/js/translated/company.js:1013 +#: templates/js/translated/company.js:1014 msgid "Internal notes" msgstr "" -#: templates/js/translated/company.js:1039 +#: templates/js/translated/company.js:1040 msgid "Delete Address" msgstr "" -#: templates/js/translated/company.js:1112 +#: templates/js/translated/company.js:1113 msgid "All selected manufacturer parts will be deleted" msgstr "" -#: templates/js/translated/company.js:1127 +#: templates/js/translated/company.js:1128 msgid "Delete Manufacturer Parts" msgstr "" -#: templates/js/translated/company.js:1161 +#: templates/js/translated/company.js:1162 msgid "All selected parameters will be deleted" msgstr "" -#: templates/js/translated/company.js:1175 +#: templates/js/translated/company.js:1176 msgid "Delete Parameters" msgstr "" -#: templates/js/translated/company.js:1191 -#: templates/js/translated/company.js:1479 templates/js/translated/part.js:2250 +#: templates/js/translated/company.js:1192 +#: templates/js/translated/company.js:1480 templates/js/translated/part.js:2250 msgid "Order parts" msgstr "" -#: templates/js/translated/company.js:1208 +#: templates/js/translated/company.js:1209 msgid "Delete manufacturer parts" msgstr "" -#: templates/js/translated/company.js:1240 +#: templates/js/translated/company.js:1241 msgid "Manufacturer part actions" msgstr "" -#: templates/js/translated/company.js:1259 +#: templates/js/translated/company.js:1260 msgid "No manufacturer parts found" msgstr "" -#: templates/js/translated/company.js:1279 -#: templates/js/translated/company.js:1567 templates/js/translated/part.js:801 +#: templates/js/translated/company.js:1280 +#: templates/js/translated/company.js:1568 templates/js/translated/part.js:801 #: templates/js/translated/part.js:1217 msgid "Template part" msgstr "" -#: templates/js/translated/company.js:1283 -#: templates/js/translated/company.js:1571 templates/js/translated/part.js:805 +#: templates/js/translated/company.js:1284 +#: templates/js/translated/company.js:1572 templates/js/translated/part.js:805 #: templates/js/translated/part.js:1221 msgid "Assembled part" msgstr "" -#: templates/js/translated/company.js:1403 templates/js/translated/part.js:1471 +#: templates/js/translated/company.js:1404 templates/js/translated/part.js:1471 msgid "No parameters found" msgstr "" -#: templates/js/translated/company.js:1438 templates/js/translated/part.js:1534 +#: templates/js/translated/company.js:1439 templates/js/translated/part.js:1534 msgid "Edit parameter" msgstr "" -#: templates/js/translated/company.js:1439 templates/js/translated/part.js:1535 +#: templates/js/translated/company.js:1440 templates/js/translated/part.js:1535 msgid "Delete parameter" msgstr "" -#: templates/js/translated/company.js:1456 templates/js/translated/part.js:1440 +#: templates/js/translated/company.js:1457 templates/js/translated/part.js:1440 msgid "Edit Parameter" msgstr "" -#: templates/js/translated/company.js:1465 templates/js/translated/part.js:1556 +#: templates/js/translated/company.js:1466 templates/js/translated/part.js:1556 msgid "Delete Parameter" msgstr "" -#: templates/js/translated/company.js:1496 +#: templates/js/translated/company.js:1497 msgid "Delete supplier parts" msgstr "" -#: templates/js/translated/company.js:1546 +#: templates/js/translated/company.js:1547 msgid "No supplier parts found" msgstr "" -#: templates/js/translated/company.js:1664 +#: templates/js/translated/company.js:1665 msgid "Base Units" msgstr "" -#: templates/js/translated/company.js:1694 +#: templates/js/translated/company.js:1695 msgid "Availability" msgstr "" -#: templates/js/translated/company.js:1725 +#: templates/js/translated/company.js:1726 msgid "Edit supplier part" msgstr "" -#: templates/js/translated/company.js:1726 +#: templates/js/translated/company.js:1727 msgid "Delete supplier part" msgstr "" -#: templates/js/translated/company.js:1779 +#: templates/js/translated/company.js:1780 #: templates/js/translated/pricing.js:694 msgid "Delete Price Break" msgstr "" -#: templates/js/translated/company.js:1789 +#: templates/js/translated/company.js:1790 #: templates/js/translated/pricing.js:712 msgid "Edit Price Break" msgstr "" -#: templates/js/translated/company.js:1804 +#: templates/js/translated/company.js:1805 msgid "No price break information found" msgstr "" -#: templates/js/translated/company.js:1833 +#: templates/js/translated/company.js:1834 msgid "Last updated" msgstr "" -#: templates/js/translated/company.js:1840 +#: templates/js/translated/company.js:1841 msgid "Edit price break" msgstr "" -#: templates/js/translated/company.js:1841 +#: templates/js/translated/company.js:1842 msgid "Delete price break" msgstr "" @@ -12977,19 +13342,19 @@ msgstr "" msgid "Select Columns" msgstr "" -#: templates/js/translated/helpers.js:80 +#: templates/js/translated/helpers.js:81 msgid "YES" msgstr "" -#: templates/js/translated/helpers.js:83 +#: templates/js/translated/helpers.js:84 msgid "NO" msgstr "" -#: templates/js/translated/helpers.js:96 +#: templates/js/translated/helpers.js:97 msgid "True" msgstr "" -#: templates/js/translated/helpers.js:97 +#: templates/js/translated/helpers.js:98 msgid "False" msgstr "" @@ -13131,7 +13496,7 @@ msgid "Delete Line" msgstr "" #: templates/js/translated/order.js:306 -#: templates/js/translated/purchase_order.js:2060 +#: templates/js/translated/purchase_order.js:2044 msgid "No line items found" msgstr "" @@ -13366,19 +13731,19 @@ msgid "Delete Part Parameter Template" msgstr "" #: templates/js/translated/part.js:1723 -#: templates/js/translated/purchase_order.js:1724 +#: templates/js/translated/purchase_order.js:1708 msgid "No purchase orders found" msgstr "" #: templates/js/translated/part.js:1867 -#: templates/js/translated/purchase_order.js:2223 +#: templates/js/translated/purchase_order.js:2207 #: templates/js/translated/return_order.js:754 -#: templates/js/translated/sales_order.js:1911 +#: templates/js/translated/sales_order.js:1892 msgid "This line item is overdue" msgstr "" #: templates/js/translated/part.js:1913 -#: templates/js/translated/purchase_order.js:2290 +#: templates/js/translated/purchase_order.js:2274 msgid "Receive line item" msgstr "" @@ -13419,7 +13784,7 @@ msgid "No category" msgstr "" #: templates/js/translated/part.js:2550 templates/js/translated/part.js:2680 -#: templates/js/translated/stock.js:2754 +#: templates/js/translated/stock.js:2755 msgid "Display as list" msgstr "" @@ -13431,7 +13796,7 @@ msgstr "" msgid "No subcategories found" msgstr "" -#: templates/js/translated/part.js:2700 templates/js/translated/stock.js:2774 +#: templates/js/translated/part.js:2700 templates/js/translated/stock.js:2775 msgid "Display as tree" msgstr "" @@ -13483,23 +13848,23 @@ msgstr "" msgid "Speculative" msgstr "" -#: templates/js/translated/part.js:3128 +#: templates/js/translated/part.js:3144 msgid "No scheduling information available for this part" msgstr "" -#: templates/js/translated/part.js:3134 +#: templates/js/translated/part.js:3150 msgid "Error fetching scheduling information for this part" msgstr "" -#: templates/js/translated/part.js:3230 +#: templates/js/translated/part.js:3246 msgid "Scheduled Stock Quantities" msgstr "" -#: templates/js/translated/part.js:3246 +#: templates/js/translated/part.js:3262 msgid "Maximum Quantity" msgstr "" -#: templates/js/translated/part.js:3291 +#: templates/js/translated/part.js:3307 msgid "Minimum Stock Level" msgstr "" @@ -13575,267 +13940,243 @@ msgstr "" msgid "Purchase Price History" msgstr "" -#: templates/js/translated/pricing.js:894 +#: templates/js/translated/pricing.js:892 msgid "No sales history data available" msgstr "" -#: templates/js/translated/pricing.js:916 +#: templates/js/translated/pricing.js:914 msgid "Sale Price History" msgstr "" -#: templates/js/translated/pricing.js:1005 +#: templates/js/translated/pricing.js:1003 msgid "No variant data available" msgstr "" -#: templates/js/translated/pricing.js:1045 +#: templates/js/translated/pricing.js:1043 msgid "Variant Part" msgstr "" -#: templates/js/translated/purchase_order.js:169 -msgid "Select purchase order to duplicate" -msgstr "" - -#: templates/js/translated/purchase_order.js:176 -msgid "Duplicate Line Items" -msgstr "" - -#: templates/js/translated/purchase_order.js:177 -msgid "Duplicate all line items from the selected order" -msgstr "" - -#: templates/js/translated/purchase_order.js:184 -msgid "Duplicate Extra Lines" -msgstr "" - -#: templates/js/translated/purchase_order.js:185 -msgid "Duplicate extra line items from the selected order" -msgstr "" - -#: templates/js/translated/purchase_order.js:206 +#: templates/js/translated/purchase_order.js:188 msgid "Edit Purchase Order" msgstr "" -#: templates/js/translated/purchase_order.js:223 +#: templates/js/translated/purchase_order.js:205 msgid "Duplication Options" msgstr "" -#: templates/js/translated/purchase_order.js:431 +#: templates/js/translated/purchase_order.js:414 msgid "Complete Purchase Order" msgstr "" -#: templates/js/translated/purchase_order.js:448 +#: templates/js/translated/purchase_order.js:431 #: templates/js/translated/return_order.js:210 -#: templates/js/translated/sales_order.js:552 +#: templates/js/translated/sales_order.js:511 msgid "Mark this order as complete?" msgstr "" -#: templates/js/translated/purchase_order.js:454 +#: templates/js/translated/purchase_order.js:437 msgid "All line items have been received" msgstr "" -#: templates/js/translated/purchase_order.js:459 +#: templates/js/translated/purchase_order.js:442 msgid "This order has line items which have not been marked as received." msgstr "" -#: templates/js/translated/purchase_order.js:460 +#: templates/js/translated/purchase_order.js:443 msgid "Completing this order means that the order and line items will no longer be editable." msgstr "" -#: templates/js/translated/purchase_order.js:483 +#: templates/js/translated/purchase_order.js:466 msgid "Cancel Purchase Order" msgstr "" -#: templates/js/translated/purchase_order.js:488 +#: templates/js/translated/purchase_order.js:471 msgid "Are you sure you wish to cancel this purchase order?" msgstr "" -#: templates/js/translated/purchase_order.js:494 +#: templates/js/translated/purchase_order.js:477 msgid "This purchase order can not be cancelled" msgstr "" -#: templates/js/translated/purchase_order.js:515 +#: templates/js/translated/purchase_order.js:498 #: templates/js/translated/return_order.js:164 msgid "After placing this order, line items will no longer be editable." msgstr "" -#: templates/js/translated/purchase_order.js:520 +#: templates/js/translated/purchase_order.js:503 msgid "Issue Purchase Order" msgstr "" -#: templates/js/translated/purchase_order.js:612 +#: templates/js/translated/purchase_order.js:595 msgid "At least one purchaseable part must be selected" msgstr "" -#: templates/js/translated/purchase_order.js:637 +#: templates/js/translated/purchase_order.js:620 msgid "Quantity to order" msgstr "" -#: templates/js/translated/purchase_order.js:646 +#: templates/js/translated/purchase_order.js:629 msgid "New supplier part" msgstr "" -#: templates/js/translated/purchase_order.js:664 +#: templates/js/translated/purchase_order.js:647 msgid "New purchase order" msgstr "" -#: templates/js/translated/purchase_order.js:705 +#: templates/js/translated/purchase_order.js:688 msgid "Add to purchase order" msgstr "" -#: templates/js/translated/purchase_order.js:755 +#: templates/js/translated/purchase_order.js:738 msgid "Merge" msgstr "" -#: templates/js/translated/purchase_order.js:859 +#: templates/js/translated/purchase_order.js:842 msgid "No matching supplier parts" msgstr "" -#: templates/js/translated/purchase_order.js:878 +#: templates/js/translated/purchase_order.js:861 msgid "No matching purchase orders" msgstr "" -#: templates/js/translated/purchase_order.js:1073 +#: templates/js/translated/purchase_order.js:1056 #: templates/js/translated/return_order.js:490 msgid "Select Line Items" msgstr "" -#: templates/js/translated/purchase_order.js:1074 +#: templates/js/translated/purchase_order.js:1057 #: templates/js/translated/return_order.js:491 msgid "At least one line item must be selected" msgstr "" -#: templates/js/translated/purchase_order.js:1104 +#: templates/js/translated/purchase_order.js:1087 msgid "Received Quantity" msgstr "" -#: templates/js/translated/purchase_order.js:1115 +#: templates/js/translated/purchase_order.js:1098 msgid "Quantity to receive" msgstr "" -#: templates/js/translated/purchase_order.js:1170 +#: templates/js/translated/purchase_order.js:1153 #: templates/js/translated/stock.js:1215 msgid "Specify packaging for incoming stock items" msgstr "" -#: templates/js/translated/purchase_order.js:1223 +#: templates/js/translated/purchase_order.js:1206 msgid "Stock Status" msgstr "" -#: templates/js/translated/purchase_order.js:1237 +#: templates/js/translated/purchase_order.js:1220 msgid "Add barcode" msgstr "" -#: templates/js/translated/purchase_order.js:1238 +#: templates/js/translated/purchase_order.js:1221 msgid "Remove barcode" msgstr "" -#: templates/js/translated/purchase_order.js:1241 +#: templates/js/translated/purchase_order.js:1224 msgid "Specify location" msgstr "" -#: templates/js/translated/purchase_order.js:1249 +#: templates/js/translated/purchase_order.js:1232 msgid "Add batch code" msgstr "" -#: templates/js/translated/purchase_order.js:1259 +#: templates/js/translated/purchase_order.js:1242 msgid "Specify packaging" msgstr "" -#: templates/js/translated/purchase_order.js:1270 +#: templates/js/translated/purchase_order.js:1253 msgid "Add serial numbers" msgstr "" -#: templates/js/translated/purchase_order.js:1281 +#: templates/js/translated/purchase_order.js:1264 msgid "Add note" msgstr "" -#: templates/js/translated/purchase_order.js:1338 +#: templates/js/translated/purchase_order.js:1321 msgid "Serials" msgstr "" -#: templates/js/translated/purchase_order.js:1368 +#: templates/js/translated/purchase_order.js:1351 msgid "Order Code" msgstr "" -#: templates/js/translated/purchase_order.js:1370 +#: templates/js/translated/purchase_order.js:1353 msgid "Quantity to Receive" msgstr "" -#: templates/js/translated/purchase_order.js:1395 +#: templates/js/translated/purchase_order.js:1379 #: templates/js/translated/return_order.js:559 msgid "Confirm receipt of items" msgstr "" -#: templates/js/translated/purchase_order.js:1396 +#: templates/js/translated/purchase_order.js:1380 msgid "Receive Purchase Order Items" msgstr "" -#: templates/js/translated/purchase_order.js:1464 +#: templates/js/translated/purchase_order.js:1448 msgid "Scan Item Barcode" msgstr "" -#: templates/js/translated/purchase_order.js:1465 +#: templates/js/translated/purchase_order.js:1449 msgid "Scan barcode on incoming item (must not match any existing stock items)" msgstr "" -#: templates/js/translated/purchase_order.js:1479 +#: templates/js/translated/purchase_order.js:1463 msgid "Invalid barcode data" msgstr "" -#: templates/js/translated/purchase_order.js:1751 +#: templates/js/translated/purchase_order.js:1735 #: templates/js/translated/return_order.js:285 -#: templates/js/translated/sales_order.js:810 -#: templates/js/translated/sales_order.js:1034 +#: templates/js/translated/sales_order.js:769 +#: templates/js/translated/sales_order.js:1007 msgid "Order is overdue" msgstr "" -#: templates/js/translated/purchase_order.js:1913 +#: templates/js/translated/purchase_order.js:1897 msgid "All selected Line items will be deleted" msgstr "" -#: templates/js/translated/purchase_order.js:1931 +#: templates/js/translated/purchase_order.js:1915 msgid "Delete selected Line items?" msgstr "" -#: templates/js/translated/purchase_order.js:1986 -#: templates/js/translated/sales_order.js:2106 +#: templates/js/translated/purchase_order.js:1970 +#: templates/js/translated/sales_order.js:2087 msgid "Duplicate Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2001 +#: templates/js/translated/purchase_order.js:1985 #: templates/js/translated/return_order.js:475 #: templates/js/translated/return_order.js:667 -#: templates/js/translated/sales_order.js:2119 +#: templates/js/translated/sales_order.js:2100 msgid "Edit Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2012 +#: templates/js/translated/purchase_order.js:1996 #: templates/js/translated/return_order.js:680 -#: templates/js/translated/sales_order.js:2130 +#: templates/js/translated/sales_order.js:2111 msgid "Delete Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2294 -#: templates/js/translated/sales_order.js:2060 +#: templates/js/translated/purchase_order.js:2278 +#: templates/js/translated/sales_order.js:2041 msgid "Duplicate line item" msgstr "" -#: templates/js/translated/purchase_order.js:2295 +#: templates/js/translated/purchase_order.js:2279 #: templates/js/translated/return_order.js:799 -#: templates/js/translated/sales_order.js:2061 +#: templates/js/translated/sales_order.js:2042 msgid "Edit line item" msgstr "" -#: templates/js/translated/purchase_order.js:2296 +#: templates/js/translated/purchase_order.js:2280 #: templates/js/translated/return_order.js:803 -#: templates/js/translated/sales_order.js:2067 +#: templates/js/translated/sales_order.js:2048 msgid "Delete line item" msgstr "" -#: templates/js/translated/report.js:49 -msgid "Print Report" -msgstr "" - #: templates/js/translated/report.js:68 msgid "Report print successful" msgstr "" @@ -13878,7 +14219,7 @@ msgid "No return orders found" msgstr "" #: templates/js/translated/return_order.js:299 -#: templates/js/translated/sales_order.js:824 +#: templates/js/translated/sales_order.js:783 msgid "Invalid Customer" msgstr "" @@ -13887,7 +14228,7 @@ msgid "Receive Return Order Items" msgstr "" #: templates/js/translated/return_order.js:691 -#: templates/js/translated/sales_order.js:2267 +#: templates/js/translated/sales_order.js:2248 msgid "No matching line items" msgstr "" @@ -13903,188 +14244,181 @@ msgstr "" msgid "Edit Sales Order" msgstr "" -#: templates/js/translated/sales_order.js:291 +#: templates/js/translated/sales_order.js:288 msgid "No stock items have been allocated to this shipment" msgstr "" -#: templates/js/translated/sales_order.js:296 -msgid "The following stock items will be shipped" -msgstr "" - -#: templates/js/translated/sales_order.js:336 +#: templates/js/translated/sales_order.js:294 msgid "Complete Shipment" msgstr "" -#: templates/js/translated/sales_order.js:360 +#: templates/js/translated/sales_order.js:318 msgid "Confirm Shipment" msgstr "" -#: templates/js/translated/sales_order.js:416 +#: templates/js/translated/sales_order.js:375 msgid "No pending shipments found" msgstr "" -#: templates/js/translated/sales_order.js:420 +#: templates/js/translated/sales_order.js:379 msgid "No stock items have been allocated to pending shipments" msgstr "" -#: templates/js/translated/sales_order.js:430 +#: templates/js/translated/sales_order.js:389 msgid "Complete Shipments" msgstr "" -#: templates/js/translated/sales_order.js:452 +#: templates/js/translated/sales_order.js:411 msgid "Skip" msgstr "" -#: templates/js/translated/sales_order.js:484 +#: templates/js/translated/sales_order.js:443 msgid "Ship Sales Order" msgstr "" -#: templates/js/translated/sales_order.js:500 +#: templates/js/translated/sales_order.js:459 msgid "Ship this order?" msgstr "" -#: templates/js/translated/sales_order.js:506 +#: templates/js/translated/sales_order.js:465 msgid "Order cannot be shipped as there are incomplete shipments" msgstr "" -#: templates/js/translated/sales_order.js:513 +#: templates/js/translated/sales_order.js:472 msgid "This order has line items which have not been completed." msgstr "" -#: templates/js/translated/sales_order.js:514 +#: templates/js/translated/sales_order.js:473 msgid "Shipping this order means that the order and line items will no longer be editable." msgstr "" -#: templates/js/translated/sales_order.js:572 +#: templates/js/translated/sales_order.js:531 msgid "Issue this Sales Order?" msgstr "" -#: templates/js/translated/sales_order.js:577 +#: templates/js/translated/sales_order.js:536 msgid "Issue Sales Order" msgstr "" -#: templates/js/translated/sales_order.js:596 +#: templates/js/translated/sales_order.js:555 msgid "Cancel Sales Order" msgstr "" -#: templates/js/translated/sales_order.js:601 +#: templates/js/translated/sales_order.js:560 msgid "Cancelling this order means that the order will no longer be editable." msgstr "" -#: templates/js/translated/sales_order.js:655 +#: templates/js/translated/sales_order.js:614 msgid "Create New Shipment" msgstr "" -#: templates/js/translated/sales_order.js:764 +#: templates/js/translated/sales_order.js:723 msgid "No sales orders found" msgstr "" -#: templates/js/translated/sales_order.js:944 +#: templates/js/translated/sales_order.js:907 msgid "Edit shipment" msgstr "" -#: templates/js/translated/sales_order.js:947 +#: templates/js/translated/sales_order.js:910 msgid "Complete shipment" msgstr "" -#: templates/js/translated/sales_order.js:952 +#: templates/js/translated/sales_order.js:915 msgid "Delete shipment" msgstr "" -#: templates/js/translated/sales_order.js:969 +#: templates/js/translated/sales_order.js:932 msgid "Edit Shipment" msgstr "" -#: templates/js/translated/sales_order.js:984 +#: templates/js/translated/sales_order.js:947 msgid "Delete Shipment" msgstr "" -#: templates/js/translated/sales_order.js:1017 +#: templates/js/translated/sales_order.js:989 msgid "No matching shipments found" msgstr "" -#: templates/js/translated/sales_order.js:1042 +#: templates/js/translated/sales_order.js:1015 msgid "Shipment Reference" msgstr "" -#: templates/js/translated/sales_order.js:1066 -#: templates/js/translated/sales_order.js:1565 +#: templates/js/translated/sales_order.js:1032 +#: templates/js/translated/sales_order.js:1531 msgid "Not shipped" msgstr "" -#: templates/js/translated/sales_order.js:1084 +#: templates/js/translated/sales_order.js:1050 msgid "Tracking" msgstr "" -#: templates/js/translated/sales_order.js:1088 +#: templates/js/translated/sales_order.js:1054 msgid "Invoice" msgstr "" -#: templates/js/translated/sales_order.js:1255 +#: templates/js/translated/sales_order.js:1221 msgid "Add Shipment" msgstr "" -#: templates/js/translated/sales_order.js:1306 +#: templates/js/translated/sales_order.js:1272 msgid "Confirm stock allocation" msgstr "" -#: templates/js/translated/sales_order.js:1307 +#: templates/js/translated/sales_order.js:1273 msgid "Allocate Stock Items to Sales Order" msgstr "" -#: templates/js/translated/sales_order.js:1513 +#: templates/js/translated/sales_order.js:1479 msgid "No sales order allocations found" msgstr "" -#: templates/js/translated/sales_order.js:1605 +#: templates/js/translated/sales_order.js:1571 msgid "Edit Stock Allocation" msgstr "" -#: templates/js/translated/sales_order.js:1619 +#: templates/js/translated/sales_order.js:1585 msgid "Confirm Delete Operation" msgstr "" -#: templates/js/translated/sales_order.js:1620 +#: templates/js/translated/sales_order.js:1586 msgid "Delete Stock Allocation" msgstr "" -#: templates/js/translated/sales_order.js:1659 -#: templates/js/translated/sales_order.js:1746 +#: templates/js/translated/sales_order.js:1640 +#: templates/js/translated/sales_order.js:1727 #: templates/js/translated/stock.js:1861 msgid "Shipped to customer" msgstr "" -#: templates/js/translated/sales_order.js:1667 -#: templates/js/translated/sales_order.js:1755 +#: templates/js/translated/sales_order.js:1648 +#: templates/js/translated/sales_order.js:1736 msgid "Stock location not specified" msgstr "" -#: templates/js/translated/sales_order.js:2044 -msgid "Allocate serial numbers" -msgstr "" - -#: templates/js/translated/sales_order.js:2048 -msgid "Purchase stock" -msgstr "" - -#: templates/js/translated/sales_order.js:2057 -#: templates/js/translated/sales_order.js:2245 -msgid "Calculate price" -msgstr "" - -#: templates/js/translated/sales_order.js:2071 -msgid "Cannot be deleted as items have been shipped" -msgstr "" - -#: templates/js/translated/sales_order.js:2074 -msgid "Cannot be deleted as items have been allocated" -msgstr "" - -#: templates/js/translated/sales_order.js:2145 +#: templates/js/translated/sales_order.js:2025 +#: templates/js/translated/sales_order.js:2126 msgid "Allocate Serial Numbers" msgstr "" -#: templates/js/translated/sales_order.js:2253 +#: templates/js/translated/sales_order.js:2029 +msgid "Purchase stock" +msgstr "" + +#: templates/js/translated/sales_order.js:2038 +#: templates/js/translated/sales_order.js:2226 +msgid "Calculate price" +msgstr "" + +#: templates/js/translated/sales_order.js:2052 +msgid "Cannot be deleted as items have been shipped" +msgstr "" + +#: templates/js/translated/sales_order.js:2055 +msgid "Cannot be deleted as items have been allocated" +msgstr "" + +#: templates/js/translated/sales_order.js:2234 msgid "Update Unit Price" msgstr "" @@ -14209,11 +14543,8 @@ msgid "Find Serial Number" msgstr "" #: templates/js/translated/stock.js:603 templates/js/translated/stock.js:604 -msgid "Enter serial number" -msgstr "" - #: templates/js/translated/stock.js:620 -msgid "Enter a serial number" +msgid "Enter serial number" msgstr "" #: templates/js/translated/stock.js:640 @@ -14284,7 +14615,7 @@ msgstr "" msgid "Add Stock" msgstr "" -#: templates/js/translated/stock.js:1049 users/models.py:396 +#: templates/js/translated/stock.js:1049 users/models.py:398 msgid "Add" msgstr "" @@ -14308,7 +14639,7 @@ msgstr "" msgid "Adjust packaging" msgstr "" -#: templates/js/translated/stock.js:1256 templates/js/translated/stock.js:3382 +#: templates/js/translated/stock.js:1256 templates/js/translated/stock.js:3383 msgid "Select Stock Items" msgstr "" @@ -14320,18 +14651,6 @@ msgstr "" msgid "Confirm stock adjustment" msgstr "" -#: templates/js/translated/stock.js:1448 -msgid "PASS" -msgstr "" - -#: templates/js/translated/stock.js:1450 -msgid "FAIL" -msgstr "" - -#: templates/js/translated/stock.js:1455 -msgid "NO RESULT" -msgstr "" - #: templates/js/translated/stock.js:1535 msgid "Pass test" msgstr "" @@ -14388,216 +14707,216 @@ msgstr "" msgid "No stock location set" msgstr "" -#: templates/js/translated/stock.js:1927 +#: templates/js/translated/stock.js:1928 msgid "Change stock status" msgstr "" -#: templates/js/translated/stock.js:1936 +#: templates/js/translated/stock.js:1937 msgid "Merge stock" msgstr "" -#: templates/js/translated/stock.js:1985 +#: templates/js/translated/stock.js:1986 msgid "Delete stock" msgstr "" -#: templates/js/translated/stock.js:2038 +#: templates/js/translated/stock.js:2039 msgid "stock items" msgstr "" -#: templates/js/translated/stock.js:2043 +#: templates/js/translated/stock.js:2044 msgid "Scan to location" msgstr "" -#: templates/js/translated/stock.js:2054 +#: templates/js/translated/stock.js:2055 msgid "Stock Actions" msgstr "" -#: templates/js/translated/stock.js:2098 +#: templates/js/translated/stock.js:2099 msgid "Load installed items" msgstr "" -#: templates/js/translated/stock.js:2176 +#: templates/js/translated/stock.js:2177 msgid "Stock item is in production" msgstr "" -#: templates/js/translated/stock.js:2181 +#: templates/js/translated/stock.js:2182 msgid "Stock item assigned to sales order" msgstr "" -#: templates/js/translated/stock.js:2184 +#: templates/js/translated/stock.js:2185 msgid "Stock item assigned to customer" msgstr "" -#: templates/js/translated/stock.js:2187 +#: templates/js/translated/stock.js:2188 msgid "Serialized stock item has been allocated" msgstr "" -#: templates/js/translated/stock.js:2189 +#: templates/js/translated/stock.js:2190 msgid "Stock item has been fully allocated" msgstr "" -#: templates/js/translated/stock.js:2191 +#: templates/js/translated/stock.js:2192 msgid "Stock item has been partially allocated" msgstr "" -#: templates/js/translated/stock.js:2194 +#: templates/js/translated/stock.js:2195 msgid "Stock item has been installed in another item" msgstr "" -#: templates/js/translated/stock.js:2196 +#: templates/js/translated/stock.js:2197 msgid "Stock item has been consumed by a build order" msgstr "" -#: templates/js/translated/stock.js:2200 +#: templates/js/translated/stock.js:2201 msgid "Stock item has expired" msgstr "" -#: templates/js/translated/stock.js:2202 +#: templates/js/translated/stock.js:2203 msgid "Stock item will expire soon" msgstr "" -#: templates/js/translated/stock.js:2207 +#: templates/js/translated/stock.js:2208 msgid "Stock item has been rejected" msgstr "" -#: templates/js/translated/stock.js:2209 +#: templates/js/translated/stock.js:2210 msgid "Stock item is lost" msgstr "" -#: templates/js/translated/stock.js:2211 +#: templates/js/translated/stock.js:2212 msgid "Stock item is destroyed" msgstr "" -#: templates/js/translated/stock.js:2215 +#: templates/js/translated/stock.js:2216 #: templates/js/translated/table_filters.js:357 msgid "Depleted" msgstr "" -#: templates/js/translated/stock.js:2380 +#: templates/js/translated/stock.js:2381 msgid "Supplier part not specified" msgstr "" -#: templates/js/translated/stock.js:2427 +#: templates/js/translated/stock.js:2428 msgid "Stock Value" msgstr "" -#: templates/js/translated/stock.js:2555 +#: templates/js/translated/stock.js:2556 msgid "No stock items matching query" msgstr "" -#: templates/js/translated/stock.js:2658 +#: templates/js/translated/stock.js:2659 msgid "stock locations" msgstr "" -#: templates/js/translated/stock.js:2813 +#: templates/js/translated/stock.js:2814 msgid "Load Sublocations" msgstr "" -#: templates/js/translated/stock.js:2930 +#: templates/js/translated/stock.js:2931 msgid "Details" msgstr "" -#: templates/js/translated/stock.js:2934 +#: templates/js/translated/stock.js:2935 msgid "No changes" msgstr "" -#: templates/js/translated/stock.js:2946 +#: templates/js/translated/stock.js:2947 msgid "Part information unavailable" msgstr "" -#: templates/js/translated/stock.js:2968 +#: templates/js/translated/stock.js:2969 msgid "Location no longer exists" msgstr "" -#: templates/js/translated/stock.js:2985 +#: templates/js/translated/stock.js:2986 msgid "Build order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3000 +#: templates/js/translated/stock.js:3001 msgid "Purchase order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3017 +#: templates/js/translated/stock.js:3018 msgid "Sales Order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3034 +#: templates/js/translated/stock.js:3035 msgid "Return Order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3053 +#: templates/js/translated/stock.js:3054 msgid "Customer no longer exists" msgstr "" -#: templates/js/translated/stock.js:3071 +#: templates/js/translated/stock.js:3072 msgid "Stock item no longer exists" msgstr "" -#: templates/js/translated/stock.js:3089 +#: templates/js/translated/stock.js:3090 msgid "Added" msgstr "" -#: templates/js/translated/stock.js:3097 +#: templates/js/translated/stock.js:3098 msgid "Removed" msgstr "" -#: templates/js/translated/stock.js:3169 +#: templates/js/translated/stock.js:3170 msgid "No installed items" msgstr "" -#: templates/js/translated/stock.js:3223 templates/js/translated/stock.js:3259 +#: templates/js/translated/stock.js:3224 templates/js/translated/stock.js:3260 msgid "Uninstall Stock Item" msgstr "" -#: templates/js/translated/stock.js:3280 +#: templates/js/translated/stock.js:3281 msgid "Select stock item to uninstall" msgstr "" -#: templates/js/translated/stock.js:3301 +#: templates/js/translated/stock.js:3302 msgid "Install another stock item into this item" msgstr "" -#: templates/js/translated/stock.js:3302 +#: templates/js/translated/stock.js:3303 msgid "Stock items can only be installed if they meet the following criteria" msgstr "" -#: templates/js/translated/stock.js:3304 +#: templates/js/translated/stock.js:3305 msgid "The Stock Item links to a Part which is the BOM for this Stock Item" msgstr "" -#: templates/js/translated/stock.js:3305 +#: templates/js/translated/stock.js:3306 msgid "The Stock Item is currently available in stock" msgstr "" -#: templates/js/translated/stock.js:3306 +#: templates/js/translated/stock.js:3307 msgid "The Stock Item is not already installed in another item" msgstr "" -#: templates/js/translated/stock.js:3307 +#: templates/js/translated/stock.js:3308 msgid "The Stock Item is tracked by either a batch code or serial number" msgstr "" -#: templates/js/translated/stock.js:3320 +#: templates/js/translated/stock.js:3321 msgid "Select part to install" msgstr "" -#: templates/js/translated/stock.js:3383 +#: templates/js/translated/stock.js:3384 msgid "Select one or more stock items" msgstr "" -#: templates/js/translated/stock.js:3396 +#: templates/js/translated/stock.js:3397 msgid "Selected stock items" msgstr "" -#: templates/js/translated/stock.js:3400 +#: templates/js/translated/stock.js:3401 msgid "Change Stock Status" msgstr "" -#: templates/js/translated/stock.js:3477 +#: templates/js/translated/stock.js:3478 msgid "This week" msgstr "" -#: templates/js/translated/stock.js:3485 +#: templates/js/translated/stock.js:3486 msgid "This month" msgstr "" @@ -14734,10 +15053,6 @@ msgstr "" msgid "Show items which are in production" msgstr "" -#: templates/js/translated/table_filters.js:372 -msgid "Include Variants" -msgstr "" - #: templates/js/translated/table_filters.js:373 msgid "Include stock items for variant parts" msgstr "" @@ -15012,10 +15327,6 @@ msgstr "" msgid "An error occurred while attempting to login via your social network account." msgstr "" -#: templates/socialaccount/authentication_error.html:13 -msgid "Contact your system administrator for further information." -msgstr "" - #: templates/socialaccount/login.html:13 #, python-format msgid "Connect %(provider)s" @@ -15141,27 +15452,27 @@ msgstr "Kyllä" msgid "No" msgstr "Ei" -#: users/admin.py:104 +#: users/admin.py:101 msgid "Users" msgstr "Käyttäjät" -#: users/admin.py:105 +#: users/admin.py:102 msgid "Select which users are assigned to this group" msgstr "Valitse mitkä käyttäjät on määritetty tähän ryhmään" -#: users/admin.py:249 +#: users/admin.py:246 msgid "The following users are members of multiple groups" msgstr "" -#: users/admin.py:283 +#: users/admin.py:280 msgid "Personal info" msgstr "Henkilökohtaiset tiedot" -#: users/admin.py:285 +#: users/admin.py:282 msgid "Permissions" msgstr "Oikeudet" -#: users/admin.py:288 +#: users/admin.py:285 msgid "Important dates" msgstr "" @@ -15205,35 +15516,35 @@ msgstr "" msgid "Revoked" msgstr "" -#: users/models.py:379 +#: users/models.py:381 msgid "Permission set" msgstr "" -#: users/models.py:388 +#: users/models.py:390 msgid "Group" msgstr "Ryhmä" -#: users/models.py:392 +#: users/models.py:394 msgid "View" msgstr "Näytä" -#: users/models.py:392 +#: users/models.py:394 msgid "Permission to view items" msgstr "Oikeus tarkastella kohteita" -#: users/models.py:396 +#: users/models.py:398 msgid "Permission to add items" msgstr "Oikeus lisätä kohteita" -#: users/models.py:400 +#: users/models.py:402 msgid "Change" msgstr "Muuta" -#: users/models.py:402 +#: users/models.py:404 msgid "Permissions to edit items" msgstr "Oikeus muokata kohteita" -#: users/models.py:408 +#: users/models.py:410 msgid "Permission to delete items" msgstr "Oikeus poistaa kohteita" diff --git a/src/backend/InvenTree/locale/fr/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/fr/LC_MESSAGES/django.po index 116f93f987..43a1478e67 100644 --- a/src/backend/InvenTree/locale/fr/LC_MESSAGES/django.po +++ b/src/backend/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: 2024-08-20 01:22+0000\n" -"PO-Revision-Date: 2024-08-20 19:50\n" +"POT-Creation-Date: 2024-11-04 03:11+0000\n" +"PO-Revision-Date: 2024-11-04 10:27\n" "Last-Translator: \n" "Language-Team: French\n" "Language: fr_FR\n" @@ -14,81 +14,89 @@ msgstr "" "X-Crowdin-Project: inventree\n" "X-Crowdin-Project-ID: 452300\n" "X-Crowdin-Language: fr\n" -"X-Crowdin-File: /[inventree.InvenTree] l10/src/backend/InvenTree/locale/en/LC_MESSAGES/django.po\n" -"X-Crowdin-File-ID: 216\n" +"X-Crowdin-File: /src/backend/InvenTree/locale/en/LC_MESSAGES/django.po\n" +"X-Crowdin-File-ID: 250\n" -#: InvenTree/api.py:269 +#: InvenTree/api.py:270 msgid "API endpoint not found" msgstr "Point de terminaison de l'API introuvable" -#: InvenTree/api.py:502 +#: InvenTree/api.py:387 +msgid "Invalid items list provided" +msgstr "" + +#: InvenTree/api.py:396 +msgid "Invalid filters provided" +msgstr "" + +#: InvenTree/api.py:401 +msgid "No items found to delete" +msgstr "" + +#: InvenTree/api.py:515 msgid "User does not have permission to view this model" msgstr "L'utilisateur n'a pas la permission de voir ce modèle" -#: InvenTree/conversion.py:160 +#: InvenTree/conversion.py:161 #, python-brace-format msgid "Invalid unit provided ({unit})" msgstr "Unité fournie invalide ({unit})" -#: InvenTree/conversion.py:177 +#: InvenTree/conversion.py:178 msgid "No value provided" msgstr "Pas de valeur renseignée" -#: InvenTree/conversion.py:204 +#: InvenTree/conversion.py:205 #, python-brace-format msgid "Could not convert {original} to {unit}" msgstr "Impossible de convertir {original} en {unit}" -#: InvenTree/conversion.py:206 -msgid "Invalid quantity supplied" +#: InvenTree/conversion.py:207 InvenTree/conversion.py:221 +#: InvenTree/helpers.py:505 order/models.py:589 order/models.py:832 +msgid "Invalid quantity provided" msgstr "Quantité fournie invalide" -#: InvenTree/conversion.py:220 -#, python-brace-format -msgid "Invalid quantity supplied ({exc})" -msgstr "Quantité fournie invalide ({exc})" - -#: InvenTree/exceptions.py:108 +#: InvenTree/exceptions.py:104 msgid "Error details can be found in the admin panel" msgstr "Les détails de l'erreur peuvent être trouvées dans le panneau d'administration" -#: InvenTree/fields.py:136 +#: InvenTree/fields.py:135 msgid "Enter date" msgstr "Entrer la date" -#: InvenTree/fields.py:205 InvenTree/models.py:929 build/serializers.py:468 -#: build/serializers.py:546 build/templates/build/sidebar.html:29 -#: company/models.py:836 +#: InvenTree/fields.py:204 InvenTree/models.py:928 build/serializers.py:512 +#: build/serializers.py:590 build/templates/build/sidebar.html:29 +#: company/models.py:833 #: company/templates/company/manufacturer_part_sidebar.html:11 #: company/templates/company/sidebar.html:37 -#: company/templates/company/supplier_part_sidebar.html:11 order/models.py:1380 +#: company/templates/company/supplier_part_sidebar.html:11 order/models.py:1397 #: order/templates/order/po_sidebar.html:11 #: order/templates/order/return_order_sidebar.html:9 #: order/templates/order/so_sidebar.html:17 part/admin.py:59 -#: part/models.py:3297 part/templates/part/part_sidebar.html:65 +#: part/models.py:3348 part/templates/part/part_sidebar.html:65 #: report/templates/report/inventree_build_order_report.html:172 -#: stock/admin.py:230 stock/models.py:2375 stock/models.py:2563 -#: stock/serializers.py:698 stock/serializers.py:856 stock/serializers.py:982 -#: stock/serializers.py:1032 stock/serializers.py:1343 -#: stock/serializers.py:1432 stock/serializers.py:1597 +#: stock/admin.py:231 stock/models.py:2494 stock/models.py:2679 +#: stock/serializers.py:725 stock/serializers.py:887 stock/serializers.py:1013 +#: stock/serializers.py:1063 stock/serializers.py:1374 +#: stock/serializers.py:1463 stock/serializers.py:1628 #: stock/templates/stock/stock_sidebar.html:25 #: templates/js/translated/barcode.js:143 templates/js/translated/bom.js:1265 -#: templates/js/translated/company.js:1684 templates/js/translated/order.js:372 +#: templates/js/translated/company.js:1685 templates/js/translated/order.js:372 #: templates/js/translated/part.js:1087 -#: templates/js/translated/purchase_order.js:2270 +#: templates/js/translated/purchase_order.js:2254 #: templates/js/translated/return_order.js:774 -#: templates/js/translated/sales_order.js:1103 -#: templates/js/translated/sales_order.js:2018 -#: templates/js/translated/stock.js:1621 templates/js/translated/stock.js:2513 +#: templates/js/translated/sales_order.js:1069 +#: templates/js/translated/sales_order.js:1999 +#: templates/js/translated/stock.js:1621 templates/js/translated/stock.js:2514 msgid "Notes" msgstr "Notes" -#: InvenTree/format.py:164 +#: InvenTree/format.py:162 #, python-brace-format msgid "Value '{name}' does not appear in pattern format" msgstr "La valeur '{name}' n'apparaît pas dans le format du modèle" -#: InvenTree/format.py:175 +#: InvenTree/format.py:173 msgid "Provided value does not match required pattern: " msgstr "La valeur fournie ne correspond pas au modèle requis : " @@ -126,403 +134,415 @@ msgstr "Vous devez taper le même e-mail à chaque fois." #: InvenTree/forms.py:221 msgid "MFA Registration is disabled." -msgstr "" +msgstr "L'enregistrement MFA est désactivé." #: InvenTree/forms.py:259 InvenTree/forms.py:267 msgid "The provided primary email address is not valid." msgstr "L'adresse e-mail principale fournie n'est pas valide." -#: InvenTree/forms.py:274 +#: InvenTree/forms.py:273 msgid "The provided email domain is not approved." msgstr "Le domaine e-mail fourni n'est pas approuvé." -#: InvenTree/forms.py:403 +#: InvenTree/forms.py:402 msgid "Registration is disabled." msgstr "L'enregistrement est désactivé." -#: InvenTree/helpers.py:491 order/models.py:567 order/models.py:810 -msgid "Invalid quantity provided" -msgstr "Quantité fournie invalide" +#: InvenTree/helpers.py:509 +msgid "Cannot serialize more than 1000 items at once" +msgstr "" -#: InvenTree/helpers.py:499 +#: InvenTree/helpers.py:515 msgid "Empty serial number string" msgstr "Chaîne de numéro de série vide" -#: InvenTree/helpers.py:528 +#: InvenTree/helpers.py:544 msgid "Duplicate serial" msgstr "Numéro de série en doublon" -#: InvenTree/helpers.py:560 InvenTree/helpers.py:603 +#: InvenTree/helpers.py:576 InvenTree/helpers.py:619 InvenTree/helpers.py:637 +#: InvenTree/helpers.py:644 InvenTree/helpers.py:663 #, python-brace-format -msgid "Invalid group range: {group}" -msgstr "Plage de groupe non valide : {group}" +msgid "Invalid group: {group}" +msgstr "" -#: InvenTree/helpers.py:591 +#: InvenTree/helpers.py:607 #, python-brace-format msgid "Group range {group} exceeds allowed quantity ({expected_quantity})" msgstr "La plage de groupe {group} dépasse la quantité autorisée ({expected_quantity})" -#: InvenTree/helpers.py:621 InvenTree/helpers.py:628 InvenTree/helpers.py:647 -#, python-brace-format -msgid "Invalid group sequence: {group}" -msgstr "Séquence de groupe invalide : {group}" - -#: InvenTree/helpers.py:657 +#: InvenTree/helpers.py:673 msgid "No serial numbers found" msgstr "Aucun numéro de série trouvé" -#: InvenTree/helpers.py:662 +#: InvenTree/helpers.py:678 msgid "Number of unique serial numbers ({len(serials)}) must match quantity ({expected_quantity})" msgstr "Le nombre de numéros de série uniques ({len(serials)}) doit correspondre à la quantité ({expected_quantity})" -#: InvenTree/helpers.py:780 +#: InvenTree/helpers.py:796 msgid "Remove HTML tags from this value" msgstr "Retirer les balises HTML de cette valeur" -#: InvenTree/helpers_model.py:133 +#: InvenTree/helpers.py:881 +msgid "Data contains prohibited markdown content" +msgstr "" + +#: InvenTree/helpers_model.py:130 msgid "Connection error" msgstr "Erreur de connexion" -#: InvenTree/helpers_model.py:138 InvenTree/helpers_model.py:145 +#: InvenTree/helpers_model.py:135 InvenTree/helpers_model.py:142 msgid "Server responded with invalid status code" msgstr "Le serveur a répondu avec un code de statut invalide" -#: InvenTree/helpers_model.py:141 +#: InvenTree/helpers_model.py:138 msgid "Exception occurred" msgstr "Une erreur est survenue" -#: InvenTree/helpers_model.py:151 +#: InvenTree/helpers_model.py:148 msgid "Server responded with invalid Content-Length value" msgstr "Le serveur a répondu avec une valeur de longueur de contenu invalide" -#: InvenTree/helpers_model.py:154 +#: InvenTree/helpers_model.py:151 msgid "Image size is too large" msgstr "Image trop volumineuse" -#: InvenTree/helpers_model.py:166 +#: InvenTree/helpers_model.py:163 msgid "Image download exceeded maximum size" msgstr "La taille de l'image dépasse la taille maximale autorisée" -#: InvenTree/helpers_model.py:171 +#: InvenTree/helpers_model.py:168 msgid "Remote server returned empty response" msgstr "Le serveur distant a renvoyé une réponse vide" -#: InvenTree/helpers_model.py:179 +#: InvenTree/helpers_model.py:176 msgid "Supplied URL is not a valid image file" msgstr "L'URL fournie n'est pas un fichier image valide" -#: InvenTree/locales.py:18 +#: InvenTree/locales.py:20 msgid "Arabic" msgstr "Arabe" -#: InvenTree/locales.py:19 +#: InvenTree/locales.py:21 msgid "Bulgarian" msgstr "Bulgare" -#: InvenTree/locales.py:20 +#: InvenTree/locales.py:22 msgid "Czech" msgstr "Tchèque" -#: InvenTree/locales.py:21 +#: InvenTree/locales.py:23 msgid "Danish" msgstr "Danois" -#: InvenTree/locales.py:22 +#: InvenTree/locales.py:24 msgid "German" msgstr "Allemand" -#: InvenTree/locales.py:23 +#: InvenTree/locales.py:25 msgid "Greek" msgstr "Grec" -#: InvenTree/locales.py:24 +#: InvenTree/locales.py:26 msgid "English" msgstr "Anglais" -#: InvenTree/locales.py:25 +#: InvenTree/locales.py:27 msgid "Spanish" msgstr "Espagnol" -#: InvenTree/locales.py:26 +#: InvenTree/locales.py:28 msgid "Spanish (Mexican)" msgstr "Espagnol (Mexique)" -#: InvenTree/locales.py:27 +#: InvenTree/locales.py:29 msgid "Estonian" msgstr "Estonien" -#: InvenTree/locales.py:28 +#: InvenTree/locales.py:30 msgid "Farsi / Persian" msgstr "Farsi / Perse" -#: InvenTree/locales.py:29 +#: InvenTree/locales.py:31 msgid "Finnish" msgstr "Finnois" -#: InvenTree/locales.py:30 +#: InvenTree/locales.py:32 msgid "French" msgstr "Français" -#: InvenTree/locales.py:31 +#: InvenTree/locales.py:33 msgid "Hebrew" msgstr "Hébreu" -#: InvenTree/locales.py:32 +#: InvenTree/locales.py:34 msgid "Hindi" msgstr "Hindi" -#: InvenTree/locales.py:33 +#: InvenTree/locales.py:35 msgid "Hungarian" msgstr "Hongrois" -#: InvenTree/locales.py:34 +#: InvenTree/locales.py:36 msgid "Italian" msgstr "Italien" -#: InvenTree/locales.py:35 +#: InvenTree/locales.py:37 msgid "Japanese" msgstr "Japonais" -#: InvenTree/locales.py:36 +#: InvenTree/locales.py:38 msgid "Korean" msgstr "Coréen" -#: InvenTree/locales.py:37 +#: InvenTree/locales.py:39 +msgid "Lithuanian" +msgstr "Lituanien" + +#: InvenTree/locales.py:40 msgid "Latvian" msgstr "Letton" -#: InvenTree/locales.py:38 +#: InvenTree/locales.py:41 msgid "Dutch" msgstr "Néerlandais" -#: InvenTree/locales.py:39 +#: InvenTree/locales.py:42 msgid "Norwegian" msgstr "Norvégien" -#: InvenTree/locales.py:40 +#: InvenTree/locales.py:43 msgid "Polish" msgstr "Polonais" -#: InvenTree/locales.py:41 +#: InvenTree/locales.py:44 msgid "Portuguese" msgstr "Portugais" -#: InvenTree/locales.py:42 +#: InvenTree/locales.py:45 msgid "Portuguese (Brazilian)" msgstr "Portugais (Brésilien)" -#: InvenTree/locales.py:43 +#: InvenTree/locales.py:46 msgid "Romanian" msgstr "Roumain" -#: InvenTree/locales.py:44 +#: InvenTree/locales.py:47 msgid "Russian" msgstr "Russe" -#: InvenTree/locales.py:45 +#: InvenTree/locales.py:48 msgid "Slovak" msgstr "Slovaque" -#: InvenTree/locales.py:46 +#: InvenTree/locales.py:49 msgid "Slovenian" msgstr "Slovénien" -#: InvenTree/locales.py:47 +#: InvenTree/locales.py:50 msgid "Serbian" msgstr "Serbe" -#: InvenTree/locales.py:48 +#: InvenTree/locales.py:51 msgid "Swedish" msgstr "Suédois" -#: InvenTree/locales.py:49 +#: InvenTree/locales.py:52 msgid "Thai" msgstr "Thaïlandais" -#: InvenTree/locales.py:50 +#: InvenTree/locales.py:53 msgid "Turkish" msgstr "Turc" -#: InvenTree/locales.py:51 +#: InvenTree/locales.py:54 msgid "Ukrainian" msgstr "Ukrainien" -#: InvenTree/locales.py:52 +#: InvenTree/locales.py:55 msgid "Vietnamese" msgstr "Vietnamien" -#: InvenTree/locales.py:53 +#: InvenTree/locales.py:56 msgid "Chinese (Simplified)" msgstr "Chinois (Simplifié)" -#: InvenTree/locales.py:54 +#: InvenTree/locales.py:57 msgid "Chinese (Traditional)" msgstr "Chinois (Traditionnel)" #: InvenTree/magic_login.py:28 -#, python-brace-format -msgid "[{site_name}] Log in to the app" -msgstr "[{site_name}] Se connecter à l'application" +msgid "Log in to the app" +msgstr "" -#: InvenTree/magic_login.py:38 InvenTree/serializers.py:415 -#: company/models.py:136 company/templates/company/company_base.html:138 +#: InvenTree/magic_login.py:38 InvenTree/serializers.py:416 +#: company/models.py:133 company/templates/company/company_base.html:138 #: templates/InvenTree/settings/user.html:49 -#: templates/js/translated/company.js:677 +#: templates/js/translated/company.js:678 msgid "Email" msgstr "E-mail" -#: InvenTree/models.py:103 +#: InvenTree/models.py:105 msgid "Error running plugin validation" msgstr "Erreur lors de l'exécution de la validation du plugin" -#: InvenTree/models.py:172 +#: InvenTree/models.py:174 msgid "Metadata must be a python dict object" msgstr "Les metadata doivent être un objet python de type \"dict\"" -#: InvenTree/models.py:178 +#: InvenTree/models.py:180 msgid "Plugin Metadata" msgstr "Métadonnées de l'Extension" -#: InvenTree/models.py:179 +#: InvenTree/models.py:181 msgid "JSON metadata field, for use by external plugins" msgstr "Champs metadata JSON, pour plugins tiers" -#: InvenTree/models.py:409 +#: InvenTree/models.py:408 msgid "Improperly formatted pattern" msgstr "Modèle mal formaté" -#: InvenTree/models.py:416 +#: InvenTree/models.py:415 msgid "Unknown format key specified" msgstr "Clé de format inconnu spécifiée" -#: InvenTree/models.py:422 +#: InvenTree/models.py:421 msgid "Missing required format key" msgstr "Clé de format requise manquante" -#: InvenTree/models.py:433 +#: InvenTree/models.py:432 msgid "Reference field cannot be empty" msgstr "Le champ de référence ne peut pas être vide" -#: InvenTree/models.py:441 +#: InvenTree/models.py:440 msgid "Reference must match required pattern" msgstr "La référence doit correspondre au modèle requis" -#: InvenTree/models.py:472 +#: InvenTree/models.py:471 msgid "Reference number is too large" msgstr "Le numéro de référence est trop grand" -#: InvenTree/models.py:723 +#: InvenTree/models.py:722 msgid "Duplicate names cannot exist under the same parent" msgstr "Les noms dupliqués ne peuvent pas exister sous le même parent" -#: InvenTree/models.py:740 +#: InvenTree/models.py:739 msgid "Invalid choice" msgstr "Choix invalide" -#: InvenTree/models.py:770 common/models.py:2702 common/models.py:3132 -#: common/serializers.py:412 company/models.py:593 machine/models.py:24 -#: part/models.py:983 part/models.py:3764 plugin/models.py:51 -#: report/models.py:149 stock/models.py:77 +#: InvenTree/models.py:769 common/models.py:2766 common/models.py:3193 +#: common/models.py:3413 common/serializers.py:460 company/models.py:590 +#: machine/models.py:24 part/models.py:1044 part/models.py:3815 +#: plugin/models.py:51 report/models.py:149 stock/models.py:83 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/notifications.html:17 #: templates/InvenTree/settings/plugin.html:83 #: templates/InvenTree/settings/plugin_settings.html:22 #: templates/InvenTree/settings/settings_staff_js.html:67 #: templates/InvenTree/settings/settings_staff_js.html:454 -#: templates/js/translated/company.js:676 -#: templates/js/translated/company.js:724 -#: templates/js/translated/company.js:913 -#: templates/js/translated/company.js:1165 -#: templates/js/translated/company.js:1413 templates/js/translated/part.js:1193 +#: templates/js/translated/company.js:677 +#: templates/js/translated/company.js:725 +#: templates/js/translated/company.js:914 +#: templates/js/translated/company.js:1166 +#: templates/js/translated/company.js:1414 templates/js/translated/part.js:1193 #: templates/js/translated/part.js:1481 templates/js/translated/part.js:1617 -#: templates/js/translated/part.js:2768 templates/js/translated/stock.js:2801 +#: templates/js/translated/part.js:2768 templates/js/translated/stock.js:2802 msgid "Name" msgstr "Nom" -#: InvenTree/models.py:776 build/models.py:250 -#: build/templates/build/detail.html:24 common/models.py:156 -#: company/models.py:521 company/models.py:827 +#: InvenTree/models.py:775 build/models.py:251 +#: build/templates/build/detail.html:24 common/models.py:159 +#: company/models.py:518 company/models.py:824 #: company/templates/company/company_base.html:77 #: company/templates/company/manufacturer_part.html:75 -#: company/templates/company/supplier_part.html:107 order/models.py:288 -#: order/models.py:1413 part/admin.py:305 part/admin.py:411 part/models.py:1006 -#: part/models.py:3779 part/templates/part/category.html:79 -#: part/templates/part/part_base.html:170 +#: company/templates/company/supplier_part.html:108 order/models.py:295 +#: order/models.py:1430 part/admin.py:305 part/admin.py:411 part/models.py:1067 +#: part/models.py:3830 part/templates/part/category.html:79 +#: part/templates/part/part_base.html:171 #: part/templates/part/part_scheduling.html:12 report/models.py:155 -#: report/models.py:509 report/models.py:535 +#: report/models.py:517 report/models.py:543 #: report/templates/report/inventree_build_order_report.html:117 -#: stock/admin.py:54 stock/models.py:83 stock/templates/stock/location.html:122 +#: stock/admin.py:54 stock/models.py:89 stock/templates/stock/location.html:123 #: templates/InvenTree/settings/notifications.html:19 #: templates/InvenTree/settings/plugin_settings.html:27 #: templates/InvenTree/settings/settings_staff_js.html:170 #: templates/InvenTree/settings/settings_staff_js.html:459 #: templates/js/translated/bom.js:633 templates/js/translated/bom.js:963 -#: templates/js/translated/build.js:2311 templates/js/translated/company.js:519 -#: templates/js/translated/company.js:1330 -#: templates/js/translated/company.js:1641 templates/js/translated/index.js:119 +#: templates/js/translated/build.js:2314 templates/js/translated/company.js:520 +#: templates/js/translated/company.js:1331 +#: templates/js/translated/company.js:1642 templates/js/translated/index.js:119 #: templates/js/translated/order.js:323 templates/js/translated/part.js:1245 #: templates/js/translated/part.js:1490 templates/js/translated/part.js:1628 #: templates/js/translated/part.js:1965 templates/js/translated/part.js:2361 #: templates/js/translated/part.js:2803 templates/js/translated/part.js:2915 #: templates/js/translated/plugin.js:80 -#: templates/js/translated/purchase_order.js:1776 -#: templates/js/translated/purchase_order.js:1919 -#: templates/js/translated/purchase_order.js:2092 +#: templates/js/translated/purchase_order.js:1760 +#: templates/js/translated/purchase_order.js:1903 +#: templates/js/translated/purchase_order.js:2076 #: templates/js/translated/return_order.js:313 -#: templates/js/translated/sales_order.js:838 -#: templates/js/translated/sales_order.js:1848 -#: templates/js/translated/stock.js:1600 templates/js/translated/stock.js:2143 -#: templates/js/translated/stock.js:2832 templates/js/translated/stock.js:2915 +#: templates/js/translated/sales_order.js:797 +#: templates/js/translated/sales_order.js:1829 +#: templates/js/translated/stock.js:1600 templates/js/translated/stock.js:2144 +#: templates/js/translated/stock.js:2833 templates/js/translated/stock.js:2916 msgid "Description" msgstr "Description" -#: InvenTree/models.py:777 stock/models.py:84 +#: InvenTree/models.py:776 stock/models.py:90 msgid "Description (optional)" msgstr "Description (facultative)" -#: InvenTree/models.py:792 templates/js/translated/part.js:2812 -#: templates/js/translated/stock.js:2841 +#: InvenTree/models.py:791 common/models.py:3546 +#: templates/js/translated/part.js:2812 templates/js/translated/stock.js:2842 msgid "Path" msgstr "Chemin d'accès" -#: InvenTree/models.py:929 +#: InvenTree/models.py:928 msgid "Markdown notes (optional)" msgstr "Notes Markdown (option)" -#: InvenTree/models.py:960 +#: InvenTree/models.py:959 msgid "Barcode Data" msgstr "Données du code-barres" -#: InvenTree/models.py:961 +#: InvenTree/models.py:960 msgid "Third party barcode data" msgstr "Données de code-barres tierces" -#: InvenTree/models.py:967 +#: InvenTree/models.py:966 msgid "Barcode Hash" msgstr "Hash du code-barre" -#: InvenTree/models.py:968 +#: InvenTree/models.py:967 msgid "Unique hash of barcode data" msgstr "Hachage unique des données du code-barres" -#: InvenTree/models.py:1035 +#: InvenTree/models.py:1034 msgid "Existing barcode found" msgstr "Code-barres existant trouvé" -#: InvenTree/models.py:1078 +#: InvenTree/models.py:1112 +msgid "Task Failure" +msgstr "" + +#: InvenTree/models.py:1114 +#, python-brace-format +msgid "Background worker task '{instance.func}' failed after {n} attempts" +msgstr "" + +#: InvenTree/models.py:1142 msgid "Server Error" msgstr "Erreur serveur" -#: InvenTree/models.py:1079 +#: InvenTree/models.py:1143 msgid "An error has been logged by the server." msgstr "Une erreur a été loguée par le serveur." -#: InvenTree/serializers.py:63 part/models.py:4387 +#: InvenTree/serializers.py:63 part/models.py:4444 msgid "Must be a valid number" msgstr "Doit être un nombre valide" -#: InvenTree/serializers.py:100 company/models.py:186 -#: company/templates/company/company_base.html:112 part/models.py:3115 +#: InvenTree/serializers.py:100 company/models.py:183 +#: company/templates/company/company_base.html:112 part/models.py:3166 #: templates/InvenTree/settings/settings_staff_js.html:44 #: templates/currency_data.html:5 msgid "Currency" @@ -532,15 +552,15 @@ msgstr "Devise" msgid "Select currency from available options" msgstr "Sélectionnez la devise à partir des options disponibles" -#: InvenTree/serializers.py:407 templates/InvenTree/settings/user.html:33 +#: InvenTree/serializers.py:405 templates/InvenTree/settings/user.html:33 msgid "Username" msgstr "Nom d'utilisateur" -#: InvenTree/serializers.py:409 templates/InvenTree/settings/user.html:37 +#: InvenTree/serializers.py:408 templates/InvenTree/settings/user.html:37 msgid "First Name" msgstr "Prénom" -#: InvenTree/serializers.py:409 +#: InvenTree/serializers.py:408 msgid "First name of the user" msgstr "Prénom de l'utilisateur" @@ -552,30 +572,30 @@ msgstr "Nom" msgid "Last name of the user" msgstr "Nom de famille de l'utilisateur" -#: InvenTree/serializers.py:415 +#: InvenTree/serializers.py:416 msgid "Email address of the user" msgstr "Adresse e-mail de l'utilisateur" -#: InvenTree/serializers.py:439 +#: InvenTree/serializers.py:441 msgid "Staff" msgstr "Staff" -#: InvenTree/serializers.py:439 +#: InvenTree/serializers.py:441 msgid "Does this user have staff permissions" msgstr "Cet utilisateur a-t-il les permissions du staff" -#: InvenTree/serializers.py:442 +#: InvenTree/serializers.py:445 msgid "Superuser" msgstr "Super-utilisateur" -#: InvenTree/serializers.py:442 +#: InvenTree/serializers.py:445 msgid "Is this user a superuser" msgstr "Cet utilisateur est-il un super-utilisateur" -#: InvenTree/serializers.py:445 common/models.py:2707 company/models.py:163 -#: company/models.py:801 machine/models.py:39 part/admin.py:88 -#: part/models.py:1189 plugin/models.py:66 -#: templates/js/translated/company.js:523 +#: InvenTree/serializers.py:449 common/models.py:2771 company/models.py:160 +#: company/models.py:798 machine/models.py:39 part/admin.py:88 +#: part/models.py:1250 plugin/models.py:66 +#: templates/js/translated/company.js:524 #: templates/js/translated/table_filters.js:134 #: templates/js/translated/table_filters.js:226 #: templates/js/translated/table_filters.js:513 @@ -585,230 +605,229 @@ msgstr "Cet utilisateur est-il un super-utilisateur" msgid "Active" msgstr "Actif" -#: InvenTree/serializers.py:445 +#: InvenTree/serializers.py:449 msgid "Is this user account active" msgstr "Ce compte d'utilisateur est-il actif" -#: InvenTree/serializers.py:463 +#: InvenTree/serializers.py:467 msgid "You do not have permission to change this user role." msgstr "Vous n'avez pas la permission de modifier ce rôle utilisateur." -#: InvenTree/serializers.py:475 +#: InvenTree/serializers.py:503 msgid "Only superusers can create new users" msgstr "Seuls les super-utilisateurs peuvent créer de nouveaux utilisateurs" -#: InvenTree/serializers.py:494 +#: InvenTree/serializers.py:523 msgid "Your account has been created." msgstr "Votre compte a été créé." -#: InvenTree/serializers.py:496 +#: InvenTree/serializers.py:525 msgid "Please use the password reset function to login" msgstr "Veuillez utiliser la fonction de réinitialisation du mot de passe pour vous connecter" -#: InvenTree/serializers.py:503 +#: InvenTree/serializers.py:531 msgid "Welcome to InvenTree" msgstr "Bienvenue dans InvenTree" -#: InvenTree/serializers.py:561 +#: InvenTree/serializers.py:594 msgid "Invalid value" msgstr "Valeur non valide" -#: InvenTree/serializers.py:581 importer/models.py:63 +#: InvenTree/serializers.py:614 importer/models.py:64 msgid "Data File" msgstr "Fichier de données" -#: InvenTree/serializers.py:582 +#: InvenTree/serializers.py:615 msgid "Select data file for upload" msgstr "Sélectionnez le fichier de données à envoyer" -#: InvenTree/serializers.py:599 -msgid "Unsupported file type" -msgstr "Format de fichier non supporté" +#: InvenTree/serializers.py:632 common/files.py:63 +msgid "Unsupported file format" +msgstr "" -#: InvenTree/serializers.py:605 +#: InvenTree/serializers.py:638 msgid "File is too large" msgstr "Fichier trop volumineux" -#: InvenTree/serializers.py:626 +#: InvenTree/serializers.py:659 msgid "No columns found in file" msgstr "Pas de colonnes trouvées dans le fichier" -#: InvenTree/serializers.py:629 +#: InvenTree/serializers.py:662 msgid "No data rows found in file" msgstr "Par de lignes de données trouvées dans le fichier" -#: InvenTree/serializers.py:742 +#: InvenTree/serializers.py:774 msgid "No data rows provided" msgstr "Pas de lignes de données fournies" -#: InvenTree/serializers.py:745 +#: InvenTree/serializers.py:777 msgid "No data columns supplied" msgstr "Pas de colonne de données fournie" -#: InvenTree/serializers.py:812 +#: InvenTree/serializers.py:843 #, python-brace-format msgid "Missing required column: '{name}'" msgstr "Colonne requise manquante : {name}" -#: InvenTree/serializers.py:821 +#: InvenTree/serializers.py:852 #, python-brace-format msgid "Duplicate column: '{col}'" msgstr "Colonne duliquée : '{col}'" -#: InvenTree/serializers.py:861 +#: InvenTree/serializers.py:891 msgid "Remote Image" msgstr "Images distantes" -#: InvenTree/serializers.py:862 +#: InvenTree/serializers.py:892 msgid "URL of remote image file" msgstr "URL du fichier image distant" -#: InvenTree/serializers.py:880 +#: InvenTree/serializers.py:910 msgid "Downloading images from remote URL is not enabled" msgstr "Le téléchargement des images depuis une URL distante n'est pas activé" -#: InvenTree/status.py:66 part/serializers.py:1246 -msgid "Background worker check failed" -msgstr "Échec de la vérification du processus d'arrière-plan" - -#: InvenTree/status.py:70 -msgid "Email backend not configured" -msgstr "Backend d'email non configuré" - -#: InvenTree/status.py:73 -msgid "InvenTree system health checks failed" -msgstr "Échec des contrôles de santé du système" +#: InvenTree/serializers.py:917 +msgid "Failed to download image from remote URL" +msgstr "" #: InvenTree/templatetags/inventree_extras.py:184 msgid "Unknown database" msgstr "Base de données inconnue" -#: InvenTree/validators.py:32 InvenTree/validators.py:34 +#: InvenTree/validators.py:32 msgid "Invalid physical unit" msgstr "Unité invalide" -#: InvenTree/validators.py:40 +#: InvenTree/validators.py:38 msgid "Not a valid currency code" msgstr "Code de devise invalide" -#: InvenTree/validators.py:118 InvenTree/validators.py:134 +#: InvenTree/validators.py:115 InvenTree/validators.py:131 msgid "Overage value must not be negative" msgstr "La valeur de surplus ne doit pas être négative" -#: InvenTree/validators.py:136 +#: InvenTree/validators.py:133 msgid "Overage must not exceed 100%" msgstr "Le surplus ne doit pas dépasser 100%" -#: InvenTree/validators.py:142 +#: InvenTree/validators.py:139 msgid "Invalid value for overage" msgstr "Valeur invalide pour le dépassement" -#: InvenTree/views.py:400 templates/InvenTree/settings/user.html:23 +#: InvenTree/views.py:399 templates/InvenTree/settings/user.html:23 msgid "Edit User Information" msgstr "Modifier les informations utilisateur" -#: InvenTree/views.py:412 templates/InvenTree/settings/user.html:20 +#: InvenTree/views.py:411 templates/InvenTree/settings/user.html:20 msgid "Set Password" msgstr "Définir le mot de passe" -#: InvenTree/views.py:434 +#: InvenTree/views.py:433 msgid "Password fields must match" msgstr "Les mots de passe doivent correspondre" -#: InvenTree/views.py:442 +#: InvenTree/views.py:441 msgid "Wrong password provided" msgstr "Mot de passe incorrect" -#: InvenTree/views.py:650 templates/navbar.html:160 +#: InvenTree/views.py:645 templates/navbar.html:160 msgid "System Information" msgstr "Informations système" -#: InvenTree/views.py:657 templates/navbar.html:171 +#: InvenTree/views.py:652 templates/navbar.html:171 msgid "About InvenTree" msgstr "À propos d'InvenTree" -#: build/api.py:51 part/api.py:156 stock/api.py:343 -msgid "Cascade" -msgstr "" - -#: build/api.py:64 build/models.py:261 -#: build/templates/build/build_base.html:191 +#: build/api.py:54 build/models.py:262 +#: build/templates/build/build_base.html:192 #: build/templates/build/detail.html:87 msgid "Parent Build" msgstr "Fabrication parente" -#: build/api.py:89 order/api.py:92 templates/js/translated/table_filters.js:101 +#: build/api.py:58 build/api.py:625 order/api.py:396 order/api.py:611 +#: order/api.py:990 order/api.py:1187 +#: templates/js/translated/table_filters.js:372 +msgid "Include Variants" +msgstr "" + +#: build/api.py:93 +msgid "Ancestor Build" +msgstr "Version Précédente" + +#: build/api.py:112 order/api.py:90 +#: templates/js/translated/table_filters.js:101 #: templates/js/translated/table_filters.js:549 #: templates/js/translated/table_filters.js:633 #: templates/js/translated/table_filters.js:674 msgid "Assigned to me" -msgstr "" +msgstr "Attribué à moi" -#: build/api.py:106 build/templates/build/build_base.html:205 +#: build/api.py:129 build/templates/build/build_base.html:206 #: build/templates/build/detail.html:115 #: report/templates/report/inventree_build_order_report.html:152 #: templates/js/translated/table_filters.js:552 msgid "Issued By" msgstr "Émis par" -#: build/api.py:125 +#: build/api.py:148 msgid "Assigned To" -msgstr "" +msgstr "Attribué à" -#: build/api.py:301 +#: build/api.py:310 msgid "Build must be cancelled before it can be deleted" msgstr "La construction doit être annulée avant de pouvoir être supprimée" -#: build/api.py:345 build/serializers.py:1288 part/models.py:4265 +#: build/api.py:354 build/serializers.py:1342 part/models.py:4322 #: templates/js/translated/bom.js:997 templates/js/translated/bom.js:1037 -#: templates/js/translated/build.js:2702 +#: templates/js/translated/build.js:2711 #: templates/js/translated/table_filters.js:197 #: templates/js/translated/table_filters.js:586 msgid "Consumable" msgstr "Consommable" -#: build/api.py:346 build/serializers.py:1289 part/models.py:4259 +#: build/api.py:355 build/serializers.py:1343 part/models.py:4316 #: part/templates/part/upload_bom.html:58 templates/js/translated/bom.js:1001 -#: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2693 +#: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2702 #: templates/js/translated/table_filters.js:193 #: templates/js/translated/table_filters.js:222 #: templates/js/translated/table_filters.js:590 msgid "Optional" msgstr "Facultatif" -#: build/api.py:347 common/models.py:1489 part/admin.py:91 part/admin.py:428 -#: part/models.py:1154 part/serializers.py:1575 +#: build/api.py:356 common/models.py:1558 part/admin.py:91 part/admin.py:428 +#: part/models.py:1215 part/serializers.py:1633 #: templates/js/translated/bom.js:1639 #: templates/js/translated/table_filters.js:337 #: templates/js/translated/table_filters.js:729 msgid "Assembly" msgstr "Assemblage" -#: build/api.py:348 templates/js/translated/table_filters.js:415 +#: build/api.py:357 templates/js/translated/table_filters.js:415 #: templates/js/translated/table_filters.js:582 msgid "Tracked" msgstr "Suivi" -#: build/api.py:349 build/serializers.py:1290 part/models.py:1172 +#: build/api.py:358 build/serializers.py:1344 part/models.py:1233 #: templates/js/translated/table_filters.js:146 #: templates/js/translated/table_filters.js:779 msgid "Testable" -msgstr "" +msgstr "Testable" -#: build/api.py:351 part/admin.py:144 templates/js/translated/build.js:1917 -#: templates/js/translated/build.js:2820 -#: templates/js/translated/sales_order.js:1965 +#: build/api.py:360 order/api.py:779 part/admin.py:144 +#: templates/js/translated/build.js:1920 templates/js/translated/build.js:2838 +#: templates/js/translated/sales_order.js:1946 #: templates/js/translated/table_filters.js:574 msgid "Allocated" msgstr "Allouée" -#: build/api.py:359 company/models.py:891 company/serializers.py:395 -#: company/templates/company/supplier_part.html:114 +#: build/api.py:368 company/models.py:888 company/serializers.py:399 +#: company/templates/company/supplier_part.html:115 #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:17 -#: templates/js/translated/bom.js:1162 templates/js/translated/build.js:2752 +#: templates/js/translated/bom.js:1162 templates/js/translated/build.js:2770 #: templates/js/translated/index.js:123 -#: templates/js/translated/model_renderers.js:235 +#: templates/js/translated/model_renderers.js:238 #: templates/js/translated/part.js:695 templates/js/translated/part.js:697 #: templates/js/translated/part.js:702 #: templates/js/translated/table_filters.js:347 @@ -816,16 +835,68 @@ msgstr "Allouée" msgid "Available" msgstr "Disponible" -#: build/models.py:86 build/templates/build/build_base.html:9 -#: build/templates/build/build_base.html:27 +#: build/api.py:640 build/models.py:268 build/serializers.py:1330 +#: build/templates/build/build_base.html:106 +#: build/templates/build/detail.html:29 company/models.py:1043 order/api.py:775 +#: order/api.py:1003 order/models.py:1519 order/models.py:1674 +#: order/models.py:1675 part/api.py:1495 part/api.py:1802 part/models.py:419 +#: part/models.py:3177 part/models.py:3321 part/models.py:3469 +#: part/models.py:3490 part/models.py:3512 part/models.py:3648 +#: part/models.py:3995 part/models.py:4158 part/models.py:4288 +#: part/models.py:4654 part/serializers.py:1245 part/serializers.py:1898 +#: part/templates/part/part_app_base.html:8 +#: part/templates/part/part_pricing.html:12 +#: part/templates/part/upload_bom.html:52 +#: report/templates/report/inventree_bill_of_materials_report.html:110 +#: report/templates/report/inventree_bill_of_materials_report.html:137 +#: report/templates/report/inventree_build_order_report.html:109 +#: report/templates/report/inventree_purchase_order_report.html:27 +#: report/templates/report/inventree_return_order_report.html:24 +#: report/templates/report/inventree_sales_order_report.html:27 +#: report/templates/report/inventree_sales_order_shipment_report.html:28 +#: report/templates/report/inventree_stock_location_report.html:102 +#: stock/serializers.py:112 stock/serializers.py:160 stock/serializers.py:456 +#: stock/serializers.py:947 templates/InvenTree/search.html:82 +#: templates/email/build_order_completed.html:17 +#: templates/email/build_order_required_stock.html:17 +#: templates/email/low_stock_notification.html:15 +#: templates/email/overdue_build_order.html:16 +#: templates/js/translated/barcode.js:577 templates/js/translated/bom.js:632 +#: templates/js/translated/bom.js:769 templates/js/translated/bom.js:905 +#: templates/js/translated/build.js:1005 templates/js/translated/build.js:1488 +#: templates/js/translated/build.js:1919 templates/js/translated/build.js:2337 +#: templates/js/translated/build.js:2514 templates/js/translated/company.js:349 +#: templates/js/translated/company.js:1117 +#: templates/js/translated/company.js:1272 +#: templates/js/translated/company.js:1560 templates/js/translated/index.js:109 +#: templates/js/translated/part.js:1950 templates/js/translated/part.js:2022 +#: templates/js/translated/part.js:2330 templates/js/translated/pricing.js:369 +#: templates/js/translated/purchase_order.js:734 +#: templates/js/translated/purchase_order.js:1350 +#: templates/js/translated/purchase_order.js:1902 +#: templates/js/translated/purchase_order.js:2061 +#: templates/js/translated/return_order.js:538 +#: templates/js/translated/return_order.js:708 +#: templates/js/translated/sales_order.js:1199 +#: templates/js/translated/sales_order.js:1608 +#: templates/js/translated/sales_order.js:1813 +#: templates/js/translated/stock.js:682 templates/js/translated/stock.js:848 +#: templates/js/translated/stock.js:1065 templates/js/translated/stock.js:2083 +#: templates/js/translated/stock.js:2942 templates/js/translated/stock.js:3175 +#: templates/js/translated/stock.js:3320 +msgid "Part" +msgstr "Pièce" + +#: build/api.py:662 build/models.py:88 build/templates/build/build_base.html:10 +#: build/templates/build/build_base.html:28 #: report/templates/report/inventree_build_order_report.html:105 -#: stock/serializers.py:84 templates/email/build_order_completed.html:16 +#: stock/serializers.py:85 templates/email/build_order_completed.html:16 #: templates/email/overdue_build_order.html:15 -#: templates/js/translated/build.js:1145 templates/js/translated/stock.js:2976 +#: templates/js/translated/build.js:1148 templates/js/translated/stock.js:2977 msgid "Build Order" msgstr "Ordre de Fabrication" -#: build/models.py:87 build/templates/build/build_base.html:13 +#: build/models.py:89 build/templates/build/build_base.html:14 #: build/templates/build/index.html:8 build/templates/build/index.html:12 #: order/templates/order/sales_order_detail.html:111 #: order/templates/order/so_sidebar.html:13 @@ -836,268 +907,216 @@ msgstr "Ordre de Fabrication" msgid "Build Orders" msgstr "Ordres de Fabrication" -#: build/models.py:135 +#: build/models.py:136 msgid "Assembly BOM has not been validated" -msgstr "" +msgstr "La liste des composants de l'assemblage n'a pas été validée" -#: build/models.py:142 +#: build/models.py:143 msgid "Build order cannot be created for an inactive part" msgstr "" -#: build/models.py:149 +#: build/models.py:150 msgid "Build order cannot be created for an unlocked part" msgstr "" -#: build/models.py:163 +#: build/models.py:164 msgid "Invalid choice for parent build" msgstr "Choix invalide pour la fabrication parente" -#: build/models.py:174 order/models.py:239 +#: build/models.py:175 order/models.py:236 msgid "Responsible user or group must be specified" msgstr "Un utilisateur ou un groupe responsable doit être spécifié" -#: build/models.py:180 +#: build/models.py:181 msgid "Build order part cannot be changed" msgstr "La pièce de commande de construction ne peut pas être changée" -#: build/models.py:241 +#: build/models.py:242 msgid "Build Order Reference" msgstr "Référence de l' Ordre de Fabrication" -#: build/models.py:242 build/serializers.py:1287 order/models.py:467 -#: order/models.py:978 order/models.py:1373 order/models.py:2135 -#: part/admin.py:414 part/models.py:4280 part/templates/part/upload_bom.html:54 +#: build/models.py:243 build/serializers.py:1341 order/models.py:479 +#: order/models.py:1005 order/models.py:1390 order/models.py:2174 +#: part/admin.py:414 part/models.py:4337 part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_bill_of_materials_report.html:139 #: report/templates/report/inventree_purchase_order_report.html:28 #: report/templates/report/inventree_return_order_report.html:26 #: report/templates/report/inventree_sales_order_report.html:28 #: templates/js/translated/bom.js:770 templates/js/translated/bom.js:973 -#: templates/js/translated/build.js:1011 templates/js/translated/build.js:2685 +#: templates/js/translated/build.js:1014 templates/js/translated/build.js:2694 #: templates/js/translated/order.js:316 templates/js/translated/pricing.js:386 -#: templates/js/translated/purchase_order.js:2135 +#: templates/js/translated/purchase_order.js:2119 #: templates/js/translated/return_order.js:727 -#: templates/js/translated/sales_order.js:1854 +#: templates/js/translated/sales_order.js:1835 msgid "Reference" msgstr "Référence" -#: build/models.py:253 +#: build/models.py:254 msgid "Brief description of the build (optional)" msgstr "Brève description de la fabrication (optionnel)" -#: build/models.py:262 +#: build/models.py:263 msgid "BuildOrder to which this build is allocated" msgstr "BuildOrder associé a cette fabrication" -#: build/models.py:267 build/serializers.py:1278 -#: build/templates/build/build_base.html:105 -#: build/templates/build/detail.html:29 company/models.py:1046 order/api.py:767 -#: order/models.py:1503 order/models.py:1658 order/models.py:1659 -#: part/api.py:1509 part/api.py:1813 part/models.py:424 part/models.py:3126 -#: part/models.py:3270 part/models.py:3418 part/models.py:3439 -#: part/models.py:3461 part/models.py:3597 part/models.py:3937 -#: part/models.py:4100 part/models.py:4231 part/models.py:4592 -#: part/serializers.py:1192 part/serializers.py:1836 -#: part/templates/part/part_app_base.html:8 -#: part/templates/part/part_pricing.html:12 -#: part/templates/part/upload_bom.html:52 -#: report/templates/report/inventree_bill_of_materials_report.html:110 -#: report/templates/report/inventree_bill_of_materials_report.html:137 -#: report/templates/report/inventree_build_order_report.html:109 -#: report/templates/report/inventree_purchase_order_report.html:27 -#: report/templates/report/inventree_return_order_report.html:24 -#: report/templates/report/inventree_sales_order_report.html:27 -#: report/templates/report/inventree_stock_location_report.html:102 -#: stock/serializers.py:111 stock/serializers.py:159 stock/serializers.py:446 -#: stock/serializers.py:916 templates/InvenTree/search.html:82 -#: templates/email/build_order_completed.html:17 -#: templates/email/build_order_required_stock.html:17 -#: templates/email/low_stock_notification.html:15 -#: templates/email/overdue_build_order.html:16 -#: templates/js/translated/barcode.js:577 templates/js/translated/bom.js:632 -#: templates/js/translated/bom.js:769 templates/js/translated/bom.js:905 -#: templates/js/translated/build.js:1002 templates/js/translated/build.js:1485 -#: templates/js/translated/build.js:1916 templates/js/translated/build.js:2334 -#: templates/js/translated/build.js:2507 templates/js/translated/company.js:348 -#: templates/js/translated/company.js:1116 -#: templates/js/translated/company.js:1271 -#: templates/js/translated/company.js:1559 templates/js/translated/index.js:109 -#: templates/js/translated/part.js:1950 templates/js/translated/part.js:2022 -#: templates/js/translated/part.js:2330 templates/js/translated/pricing.js:369 -#: templates/js/translated/purchase_order.js:751 -#: templates/js/translated/purchase_order.js:1367 -#: templates/js/translated/purchase_order.js:1918 -#: templates/js/translated/purchase_order.js:2077 -#: templates/js/translated/return_order.js:538 -#: templates/js/translated/return_order.js:708 -#: templates/js/translated/sales_order.js:300 -#: templates/js/translated/sales_order.js:1233 -#: templates/js/translated/sales_order.js:1634 -#: templates/js/translated/sales_order.js:1832 -#: templates/js/translated/stock.js:682 templates/js/translated/stock.js:848 -#: templates/js/translated/stock.js:1065 templates/js/translated/stock.js:2082 -#: templates/js/translated/stock.js:2941 templates/js/translated/stock.js:3174 -#: templates/js/translated/stock.js:3319 -msgid "Part" -msgstr "Pièce" - -#: build/models.py:275 +#: build/models.py:274 msgid "Select part to build" msgstr "Sélectionnez la pièce à construire" -#: build/models.py:280 +#: build/models.py:279 msgid "Sales Order Reference" msgstr "Bon de commande de référence" -#: build/models.py:284 +#: build/models.py:283 msgid "SalesOrder to which this build is allocated" msgstr "Commande de vente à laquelle cette construction est allouée" -#: build/models.py:289 build/serializers.py:1048 -#: templates/js/translated/build.js:1904 -#: templates/js/translated/sales_order.js:1221 +#: build/models.py:288 build/serializers.py:1092 +#: templates/js/translated/build.js:1907 +#: templates/js/translated/sales_order.js:1187 msgid "Source Location" msgstr "Emplacement d'origine" -#: build/models.py:293 +#: build/models.py:292 msgid "Select location to take stock from for this build (leave blank to take from any stock location)" msgstr "Sélectionner l'emplacement à partir duquel le stock doit être pris pour cette construction (laisser vide pour prendre à partir de n'importe quel emplacement de stock)" -#: build/models.py:298 +#: build/models.py:297 msgid "Destination Location" msgstr "Emplacement cible" -#: build/models.py:302 +#: build/models.py:301 msgid "Select location where the completed items will be stored" msgstr "Sélectionnez l'emplacement où les éléments complétés seront stockés" -#: build/models.py:306 +#: build/models.py:305 msgid "Build Quantity" msgstr "Quantité a fabriquer" -#: build/models.py:309 +#: build/models.py:308 msgid "Number of stock items to build" msgstr "Nombre de stock items à construire" -#: build/models.py:313 +#: build/models.py:312 msgid "Completed items" msgstr "Articles terminés" -#: build/models.py:315 +#: build/models.py:314 msgid "Number of stock items which have been completed" msgstr "Nombre d'articles de stock qui ont été terminés" -#: build/models.py:319 +#: build/models.py:318 msgid "Build Status" msgstr "État de la construction" -#: build/models.py:323 +#: build/models.py:322 msgid "Build status code" msgstr "Code de statut de construction" -#: build/models.py:332 build/serializers.py:302 build/serializers.py:1198 -#: order/serializers.py:670 stock/models.py:859 stock/serializers.py:76 -#: stock/serializers.py:1562 templates/js/translated/purchase_order.js:1129 +#: build/models.py:331 build/serializers.py:349 build/serializers.py:1243 +#: order/serializers.py:755 stock/models.py:936 stock/serializers.py:77 +#: stock/serializers.py:1593 templates/js/translated/purchase_order.js:1112 #: templates/js/translated/stock.js:1199 msgid "Batch Code" msgstr "Code de lot" -#: build/models.py:336 build/serializers.py:303 +#: build/models.py:335 build/serializers.py:350 msgid "Batch code for this build output" msgstr "Code de lot pour ce build output" -#: build/models.py:339 order/models.py:315 order/serializers.py:126 -#: part/models.py:1229 part/templates/part/part_base.html:319 +#: build/models.py:338 order/models.py:322 order/serializers.py:157 +#: part/models.py:1290 part/templates/part/part_base.html:327 #: templates/js/translated/return_order.js:338 -#: templates/js/translated/sales_order.js:863 +#: templates/js/translated/sales_order.js:822 msgid "Creation Date" msgstr "Date de création" -#: build/models.py:343 +#: build/models.py:342 msgid "Target completion date" msgstr "Date d'achèvement cible" -#: build/models.py:344 +#: build/models.py:343 msgid "Target date for build completion. Build will be overdue after this date." msgstr "Date cible pour l'achèvement de la construction. La construction sera en retard après cette date." -#: build/models.py:347 order/models.py:526 order/models.py:2180 -#: templates/js/translated/build.js:2419 +#: build/models.py:346 order/models.py:538 order/models.py:2219 +#: templates/js/translated/build.js:2422 msgid "Completion Date" msgstr "Date d'achèvement" -#: build/models.py:353 +#: build/models.py:352 msgid "completed by" msgstr "achevé par" -#: build/models.py:361 templates/js/translated/build.js:2379 +#: build/models.py:360 templates/js/translated/build.js:2382 msgid "Issued by" msgstr "Émis par" -#: build/models.py:362 +#: build/models.py:361 msgid "User who issued this build order" msgstr "Utilisateur ayant émis cette commande de construction" -#: build/models.py:370 build/templates/build/build_base.html:212 -#: build/templates/build/detail.html:122 common/models.py:165 order/api.py:142 -#: order/models.py:333 order/templates/order/order_base.html:222 -#: order/templates/order/return_order_base.html:191 -#: order/templates/order/sales_order_base.html:235 part/models.py:1246 -#: part/templates/part/part_base.html:399 +#: build/models.py:369 build/templates/build/build_base.html:213 +#: build/templates/build/detail.html:122 common/models.py:168 order/api.py:140 +#: order/models.py:340 order/templates/order/order_base.html:231 +#: order/templates/order/return_order_base.html:192 +#: order/templates/order/sales_order_base.html:236 part/models.py:1307 +#: part/templates/part/part_base.html:407 #: report/templates/report/inventree_build_order_report.html:158 #: templates/InvenTree/settings/settings_staff_js.html:150 -#: templates/js/translated/build.js:2391 -#: templates/js/translated/purchase_order.js:1833 +#: templates/js/translated/build.js:2394 +#: templates/js/translated/purchase_order.js:1817 #: templates/js/translated/return_order.js:358 #: templates/js/translated/table_filters.js:551 msgid "Responsible" msgstr "Responsable" -#: build/models.py:371 +#: build/models.py:370 msgid "User or group responsible for this build order" msgstr "Utilisateur ou groupe responsable de cet ordre de construction" -#: build/models.py:376 build/templates/build/detail.html:108 +#: build/models.py:375 build/templates/build/detail.html:108 #: company/templates/company/manufacturer_part.html:107 -#: company/templates/company/supplier_part.html:194 -#: order/templates/order/order_base.html:172 -#: order/templates/order/return_order_base.html:148 -#: order/templates/order/sales_order_base.html:187 -#: part/templates/part/part_base.html:392 stock/models.py:855 -#: stock/templates/stock/item_base.html:200 -#: templates/js/translated/company.js:1019 +#: company/templates/company/supplier_part.html:195 +#: order/templates/order/order_base.html:181 +#: order/templates/order/return_order_base.html:149 +#: order/templates/order/sales_order_base.html:188 +#: part/templates/part/part_base.html:400 stock/models.py:932 +#: stock/templates/stock/item_base.html:197 +#: templates/js/translated/company.js:1020 msgid "External Link" msgstr "Lien Externe" -#: build/models.py:377 common/models.py:3273 part/models.py:1058 -#: stock/models.py:855 +#: build/models.py:376 common/models.py:3334 part/models.py:1119 +#: stock/models.py:932 msgid "Link to external URL" msgstr "Lien vers une url externe" -#: build/models.py:381 +#: build/models.py:380 msgid "Build Priority" msgstr "Priorité de fabrication" -#: build/models.py:384 +#: build/models.py:383 msgid "Priority of this build order" msgstr "Priorité de cet ordre de fabrication" -#: build/models.py:391 common/models.py:135 common/models.py:149 -#: order/admin.py:18 order/api.py:128 order/models.py:297 +#: build/models.py:390 common/models.py:138 common/models.py:152 +#: order/admin.py:18 order/api.py:126 order/models.py:304 #: templates/InvenTree/settings/settings_staff_js.html:146 -#: templates/js/translated/build.js:2316 -#: templates/js/translated/purchase_order.js:1780 +#: templates/js/translated/build.js:2319 +#: templates/js/translated/purchase_order.js:1764 #: templates/js/translated/return_order.js:317 -#: templates/js/translated/sales_order.js:842 +#: templates/js/translated/sales_order.js:801 #: templates/js/translated/table_filters.js:47 #: templates/project_code_data.html:6 msgid "Project Code" msgstr "Code du projet" -#: build/models.py:392 +#: build/models.py:391 msgid "Project code for this build order" msgstr "Code de projet pour cet ordre de construction" -#: build/models.py:651 build/models.py:778 +#: build/models.py:651 build/models.py:779 msgid "Failed to offload task to complete build allocations" msgstr "Échec du déchargement de la tâche pour terminer les allocations de construction" @@ -1110,610 +1129,619 @@ msgstr "La commande de construction {build} a été effectuée" msgid "A build order has been completed" msgstr "Une commande de construction a été effectuée" -#: build/models.py:967 build/models.py:1055 +#: build/models.py:858 build/serializers.py:393 +msgid "Serial numbers must be provided for trackable parts" +msgstr "Les numéros de série doivent être fournis pour les pièces traçables" + +#: build/models.py:969 build/models.py:1058 msgid "No build output specified" msgstr "Pas d'ordre de production défini" -#: build/models.py:970 +#: build/models.py:972 msgid "Build output is already completed" msgstr "L'ordre de production a déjà été réalisé" -#: build/models.py:973 +#: build/models.py:975 msgid "Build output does not match Build Order" msgstr "L'ordre de production de correspond pas à l'ordre de commande" -#: build/models.py:1059 build/serializers.py:235 build/serializers.py:284 -#: build/serializers.py:915 order/models.py:564 order/serializers.py:499 -#: order/serializers.py:665 part/serializers.py:1569 part/serializers.py:1999 -#: stock/models.py:700 stock/models.py:1520 stock/serializers.py:669 +#: build/models.py:1062 build/serializers.py:282 build/serializers.py:331 +#: build/serializers.py:959 order/models.py:586 order/serializers.py:584 +#: order/serializers.py:750 part/serializers.py:1627 part/serializers.py:2060 +#: stock/models.py:777 stock/models.py:1609 stock/serializers.py:696 msgid "Quantity must be greater than zero" msgstr "La quantité doit être supérieure à zéro" -#: build/models.py:1064 build/serializers.py:240 +#: build/models.py:1067 build/serializers.py:287 msgid "Quantity cannot be greater than the output quantity" msgstr "La quantité ne peut pas être supérieure à la quantité de sortie" -#: build/models.py:1124 build/serializers.py:563 +#: build/models.py:1127 build/serializers.py:607 #, python-brace-format msgid "Build output {serial} has not passed all required tests" msgstr "La sortie de compilation {serial} n'a pas réussi tous les tests requis" -#: build/models.py:1465 +#: build/models.py:1482 msgid "Build Order Line Item" msgstr "" -#: build/models.py:1490 +#: build/models.py:1507 msgid "Build object" msgstr "Création de l'objet" -#: build/models.py:1504 build/models.py:1760 build/serializers.py:222 -#: build/serializers.py:269 build/serializers.py:1295 -#: build/templates/build/build_base.html:110 -#: build/templates/build/detail.html:34 common/models.py:2579 -#: order/models.py:1356 order/models.py:2041 order/serializers.py:1460 +#: build/models.py:1521 build/models.py:1787 build/serializers.py:269 +#: build/serializers.py:316 build/serializers.py:1349 +#: build/templates/build/build_base.html:111 +#: build/templates/build/detail.html:34 common/models.py:2643 +#: order/models.py:1373 order/models.py:2074 order/serializers.py:1586 #: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:413 -#: part/forms.py:48 part/models.py:3284 part/models.py:4253 -#: part/templates/part/part_pricing.html:16 +#: part/forms.py:48 part/models.py:3335 part/models.py:4310 +#: part/serializers.py:265 part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_bill_of_materials_report.html:138 #: report/templates/report/inventree_build_order_report.html:113 #: report/templates/report/inventree_purchase_order_report.html:29 #: report/templates/report/inventree_sales_order_report.html:29 +#: report/templates/report/inventree_sales_order_shipment_report.html:47 +#: report/templates/report/inventree_sales_order_shipment_report.html:49 #: report/templates/report/inventree_stock_location_report.html:104 #: report/templates/report/inventree_test_report.html:90 -#: report/templates/report/inventree_test_report.html:169 stock/admin.py:159 -#: stock/serializers.py:127 stock/serializers.py:167 stock/serializers.py:660 -#: stock/templates/stock/item_base.html:287 -#: stock/templates/stock/item_base.html:295 -#: stock/templates/stock/item_base.html:342 +#: report/templates/report/inventree_test_report.html:169 stock/admin.py:160 +#: stock/serializers.py:128 stock/serializers.py:168 stock/serializers.py:687 +#: stock/templates/stock/item_base.html:284 +#: stock/templates/stock/item_base.html:292 +#: stock/templates/stock/item_base.html:339 #: templates/email/build_order_completed.html:18 #: templates/js/translated/barcode.js:579 templates/js/translated/bom.js:771 -#: templates/js/translated/bom.js:981 templates/js/translated/build.js:522 -#: templates/js/translated/build.js:737 templates/js/translated/build.js:1542 -#: templates/js/translated/build.js:1919 templates/js/translated/build.js:2529 -#: templates/js/translated/company.js:1818 -#: templates/js/translated/model_renderers.js:237 +#: templates/js/translated/bom.js:981 templates/js/translated/build.js:525 +#: templates/js/translated/build.js:740 templates/js/translated/build.js:1545 +#: templates/js/translated/build.js:1922 templates/js/translated/build.js:2536 +#: templates/js/translated/company.js:1819 +#: templates/js/translated/model_renderers.js:240 #: templates/js/translated/order.js:329 templates/js/translated/part.js:968 -#: templates/js/translated/part.js:1818 templates/js/translated/part.js:3360 +#: templates/js/translated/part.js:1818 templates/js/translated/part.js:3376 #: templates/js/translated/pricing.js:381 #: templates/js/translated/pricing.js:474 #: templates/js/translated/pricing.js:522 #: templates/js/translated/pricing.js:616 -#: templates/js/translated/purchase_order.js:754 -#: templates/js/translated/purchase_order.js:1922 -#: templates/js/translated/purchase_order.js:2141 -#: templates/js/translated/sales_order.js:317 -#: templates/js/translated/sales_order.js:1235 -#: templates/js/translated/sales_order.js:1554 -#: templates/js/translated/sales_order.js:1644 -#: templates/js/translated/sales_order.js:1734 -#: templates/js/translated/sales_order.js:1860 +#: templates/js/translated/purchase_order.js:737 +#: templates/js/translated/purchase_order.js:1906 +#: templates/js/translated/purchase_order.js:2125 +#: templates/js/translated/sales_order.js:1201 +#: templates/js/translated/sales_order.js:1520 +#: templates/js/translated/sales_order.js:1625 +#: templates/js/translated/sales_order.js:1715 +#: templates/js/translated/sales_order.js:1841 #: templates/js/translated/stock.js:570 templates/js/translated/stock.js:708 -#: templates/js/translated/stock.js:879 templates/js/translated/stock.js:3105 -#: templates/js/translated/stock.js:3188 +#: templates/js/translated/stock.js:879 templates/js/translated/stock.js:3106 +#: templates/js/translated/stock.js:3189 msgid "Quantity" msgstr "Quantité" -#: build/models.py:1505 +#: build/models.py:1522 msgid "Required quantity for build order" msgstr "Quantité requise pour la commande de construction" -#: build/models.py:1585 +#: build/models.py:1602 msgid "Build item must specify a build output, as master part is marked as trackable" msgstr "L'élément de construction doit spécifier une sortie de construction, la pièce maîtresse étant marquée comme objet traçable" -#: build/models.py:1594 +#: build/models.py:1611 #, python-brace-format msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgstr "La quantité allouée ({q}) ne doit pas excéder la quantité disponible ({a})" -#: build/models.py:1604 order/models.py:1992 +#: build/models.py:1628 order/models.py:2025 msgid "Stock item is over-allocated" msgstr "L'article de stock est suralloué" -#: build/models.py:1610 order/models.py:1995 +#: build/models.py:1634 order/models.py:2028 msgid "Allocation quantity must be greater than zero" msgstr "La quantité allouée doit être supérieure à zéro" -#: build/models.py:1616 +#: build/models.py:1640 msgid "Quantity must be 1 for serialized stock" msgstr "La quantité doit être de 1 pour stock sérialisé" -#: build/models.py:1675 +#: build/models.py:1699 msgid "Selected stock item does not match BOM line" msgstr "L'article de stock sélectionné ne correspond pas à la ligne BOM" -#: build/models.py:1747 build/serializers.py:895 order/serializers.py:1297 -#: order/serializers.py:1318 stock/models.py:376 stock/serializers.py:93 -#: stock/serializers.py:763 stock/serializers.py:1281 stock/serializers.py:1393 -#: stock/templates/stock/item_base.html:10 -#: stock/templates/stock/item_base.html:23 -#: stock/templates/stock/item_base.html:194 -#: templates/js/translated/build.js:1918 -#: templates/js/translated/sales_order.js:301 -#: templates/js/translated/sales_order.js:1234 -#: templates/js/translated/sales_order.js:1535 -#: templates/js/translated/sales_order.js:1540 -#: templates/js/translated/sales_order.js:1641 -#: templates/js/translated/sales_order.js:1728 +#: build/models.py:1774 build/serializers.py:939 order/serializers.py:1423 +#: order/serializers.py:1444 +#: report/templates/report/inventree_sales_order_shipment_report.html:29 +#: stock/models.py:382 stock/serializers.py:94 stock/serializers.py:794 +#: stock/serializers.py:1312 stock/serializers.py:1424 +#: stock/templates/stock/item_base.html:11 +#: stock/templates/stock/item_base.html:24 +#: stock/templates/stock/item_base.html:191 +#: templates/js/translated/build.js:1921 +#: templates/js/translated/sales_order.js:1200 +#: templates/js/translated/sales_order.js:1501 +#: templates/js/translated/sales_order.js:1506 +#: templates/js/translated/sales_order.js:1622 +#: templates/js/translated/sales_order.js:1709 #: templates/js/translated/stock.js:683 templates/js/translated/stock.js:849 -#: templates/js/translated/stock.js:3061 +#: templates/js/translated/stock.js:3062 msgid "Stock Item" msgstr "Article en stock" -#: build/models.py:1748 +#: build/models.py:1775 msgid "Source stock item" msgstr "Stock d'origine de l'article" -#: build/models.py:1761 +#: build/models.py:1788 msgid "Stock quantity to allocate to build" msgstr "Quantité de stock à allouer à la construction" -#: build/models.py:1769 +#: build/models.py:1796 msgid "Install into" msgstr "Installer dans" -#: build/models.py:1770 +#: build/models.py:1797 msgid "Destination stock item" msgstr "Stock de destination de l'article" -#: build/serializers.py:91 +#: build/serializers.py:108 msgid "Build Level" -msgstr "" +msgstr "Niveau de construction" -#: build/serializers.py:99 build/serializers.py:1190 build/serializers.py:1279 -#: part/admin.py:41 part/admin.py:408 part/models.py:4102 part/stocktake.py:219 -#: stock/admin.py:156 +#: build/serializers.py:116 build/serializers.py:1235 build/serializers.py:1331 +#: part/admin.py:41 part/admin.py:408 part/models.py:4160 part/stocktake.py:219 +#: stock/admin.py:157 msgid "Part Name" msgstr "Nom de l'article" -#: build/serializers.py:111 +#: build/serializers.py:128 msgid "Project Code Label" msgstr "" -#: build/serializers.py:172 build/serializers.py:924 -#: templates/js/translated/build.js:1042 templates/js/translated/build.js:1495 +#: build/serializers.py:134 +msgid "Create Child Builds" +msgstr "" + +#: build/serializers.py:135 +msgid "Automatically generate child build orders" +msgstr "" + +#: build/serializers.py:219 build/serializers.py:968 +#: templates/js/translated/build.js:1045 templates/js/translated/build.js:1498 msgid "Build Output" msgstr "Sortie d'assemblage" -#: build/serializers.py:184 +#: build/serializers.py:231 msgid "Build output does not match the parent build" msgstr "L'ordre de production ne correspond pas à l'ordre parent" -#: build/serializers.py:188 +#: build/serializers.py:235 msgid "Output part does not match BuildOrder part" msgstr "La pièce en sortie ne correspond pas à la pièce de l'ordre de construction" -#: build/serializers.py:192 +#: build/serializers.py:239 msgid "This build output has already been completed" msgstr "Cet ordre de production a déjà été produit" -#: build/serializers.py:203 +#: build/serializers.py:250 msgid "This build output is not fully allocated" msgstr "Cet ordre de production n'est pas complètement attribué" -#: build/serializers.py:223 build/serializers.py:270 +#: build/serializers.py:270 build/serializers.py:317 msgid "Enter quantity for build output" msgstr "Entrer la quantité désiré pour la fabrication" -#: build/serializers.py:291 +#: build/serializers.py:338 msgid "Integer quantity required for trackable parts" msgstr "Quantité entière requise pour les pièces à suivre" -#: build/serializers.py:294 +#: build/serializers.py:341 msgid "Integer quantity required, as the bill of materials contains trackable parts" msgstr "Quantité entière requise, car la facture de matériaux contient des pièces à puce" -#: build/serializers.py:309 order/serializers.py:678 order/serializers.py:1464 -#: stock/serializers.py:680 templates/js/translated/purchase_order.js:1154 +#: build/serializers.py:356 order/serializers.py:763 order/serializers.py:1590 +#: stock/serializers.py:707 templates/js/translated/purchase_order.js:1137 #: templates/js/translated/stock.js:373 templates/js/translated/stock.js:571 msgid "Serial Numbers" msgstr "Numéros de série" -#: build/serializers.py:310 +#: build/serializers.py:357 msgid "Enter serial numbers for build outputs" msgstr "Entrer les numéros de séries pour la fabrication" -#: build/serializers.py:315 build/serializers.py:456 build/serializers.py:528 -#: order/serializers.py:654 order/serializers.py:778 order/serializers.py:1781 -#: part/serializers.py:1212 stock/serializers.py:102 stock/serializers.py:691 -#: stock/serializers.py:851 stock/serializers.py:977 stock/serializers.py:1425 -#: stock/serializers.py:1681 stock/templates/stock/item_base.html:394 +#: build/serializers.py:362 build/serializers.py:500 build/serializers.py:572 +#: order/serializers.py:739 order/serializers.py:880 order/serializers.py:1933 +#: part/serializers.py:1265 stock/serializers.py:103 stock/serializers.py:718 +#: stock/serializers.py:882 stock/serializers.py:1008 stock/serializers.py:1456 +#: stock/serializers.py:1712 stock/templates/stock/item_base.html:391 #: templates/js/translated/barcode.js:578 -#: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1032 -#: templates/js/translated/build.js:1174 templates/js/translated/build.js:2544 -#: templates/js/translated/purchase_order.js:1210 -#: templates/js/translated/purchase_order.js:1320 -#: templates/js/translated/sales_order.js:1547 -#: templates/js/translated/sales_order.js:1655 -#: templates/js/translated/sales_order.js:1663 -#: templates/js/translated/sales_order.js:1742 +#: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1035 +#: templates/js/translated/build.js:1177 templates/js/translated/build.js:2551 +#: templates/js/translated/purchase_order.js:1193 +#: templates/js/translated/purchase_order.js:1303 +#: templates/js/translated/sales_order.js:1513 +#: templates/js/translated/sales_order.js:1636 +#: templates/js/translated/sales_order.js:1644 +#: templates/js/translated/sales_order.js:1723 #: templates/js/translated/stock.js:684 templates/js/translated/stock.js:850 -#: templates/js/translated/stock.js:1067 templates/js/translated/stock.js:2286 -#: templates/js/translated/stock.js:2955 +#: templates/js/translated/stock.js:1067 templates/js/translated/stock.js:2287 +#: templates/js/translated/stock.js:2956 msgid "Location" msgstr "Emplacement" -#: build/serializers.py:316 +#: build/serializers.py:363 msgid "Stock location for build output" msgstr "" -#: build/serializers.py:330 +#: build/serializers.py:377 msgid "Auto Allocate Serial Numbers" msgstr "Allouer automatiquement les numéros de série" -#: build/serializers.py:331 +#: build/serializers.py:378 msgid "Automatically allocate required items with matching serial numbers" msgstr "Affecter automatiquement les éléments requis avec les numéros de série correspondants" -#: build/serializers.py:346 -msgid "Serial numbers must be provided for trackable parts" -msgstr "Les numéros de série doivent être fournis pour les pièces traçables" - -#: build/serializers.py:371 stock/api.py:1031 +#: build/serializers.py:415 order/serializers.py:858 stock/api.py:1017 +#: stock/models.py:1632 msgid "The following serial numbers already exist or are invalid" msgstr "Les numéros de série suivants existent déjà, ou sont invalides" -#: build/serializers.py:418 build/serializers.py:480 build/serializers.py:569 +#: build/serializers.py:462 build/serializers.py:524 build/serializers.py:613 msgid "A list of build outputs must be provided" msgstr "Une liste d'ordre de production doit être fourni" -#: build/serializers.py:457 +#: build/serializers.py:501 msgid "Stock location for scrapped outputs" msgstr "Emplacement du stock pour les sorties épuisées" -#: build/serializers.py:463 +#: build/serializers.py:507 msgid "Discard Allocations" msgstr "Ignorer les allocations" -#: build/serializers.py:464 +#: build/serializers.py:508 msgid "Discard any stock allocations for scrapped outputs" msgstr "Abandonner les allocations de stock pour les sorties abandonnées" -#: build/serializers.py:469 +#: build/serializers.py:513 msgid "Reason for scrapping build output(s)" msgstr "Motif de l'élimination des produits de construction(s)" -#: build/serializers.py:529 +#: build/serializers.py:573 msgid "Location for completed build outputs" msgstr "Emplacement des ordres de production achevés" -#: build/serializers.py:535 build/templates/build/build_base.html:159 -#: build/templates/build/detail.html:62 order/models.py:476 -#: order/models.py:1002 order/models.py:2159 order/serializers.py:686 -#: stock/admin.py:164 stock/serializers.py:1028 stock/serializers.py:1569 -#: stock/templates/stock/item_base.html:427 -#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2363 -#: templates/js/translated/purchase_order.js:1371 -#: templates/js/translated/purchase_order.js:1792 +#: build/serializers.py:579 build/templates/build/build_base.html:160 +#: build/templates/build/detail.html:62 order/models.py:488 +#: order/models.py:1029 order/models.py:2198 order/serializers.py:771 +#: stock/admin.py:165 stock/serializers.py:581 stock/serializers.py:1059 +#: stock/serializers.py:1600 stock/templates/stock/item_base.html:424 +#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2366 +#: templates/js/translated/purchase_order.js:1354 +#: templates/js/translated/purchase_order.js:1776 #: templates/js/translated/return_order.js:330 -#: templates/js/translated/sales_order.js:855 -#: templates/js/translated/stock.js:2261 templates/js/translated/stock.js:3079 -#: templates/js/translated/stock.js:3204 +#: templates/js/translated/sales_order.js:814 +#: templates/js/translated/stock.js:2262 templates/js/translated/stock.js:3080 +#: templates/js/translated/stock.js:3205 msgid "Status" msgstr "État" -#: build/serializers.py:541 +#: build/serializers.py:585 msgid "Accept Incomplete Allocation" msgstr "Accepter l'allocation incomplète" -#: build/serializers.py:542 +#: build/serializers.py:586 msgid "Complete outputs if stock has not been fully allocated" msgstr "Compléter les sorties si le stock n'a pas été entièrement alloué" -#: build/serializers.py:654 +#: build/serializers.py:698 msgid "Consume Allocated Stock" msgstr "Consommation du stock alloué" -#: build/serializers.py:655 +#: build/serializers.py:699 msgid "Consume any stock which has already been allocated to this build" msgstr "" -#: build/serializers.py:661 +#: build/serializers.py:705 msgid "Remove Incomplete Outputs" msgstr "Retirer les sorties incomplètes" -#: build/serializers.py:662 +#: build/serializers.py:706 msgid "Delete any build outputs which have not been completed" msgstr "Supprimer toutes les sorties de construction qui n'ont pas été complétées" -#: build/serializers.py:689 +#: build/serializers.py:733 msgid "Not permitted" msgstr "Non permis" -#: build/serializers.py:690 +#: build/serializers.py:734 msgid "Accept as consumed by this build order" msgstr "Accepter comme consommé par cet ordre de construction" -#: build/serializers.py:691 +#: build/serializers.py:735 msgid "Deallocate before completing this build order" msgstr "Désaffecter avant de terminer cette commande de fabrication" -#: build/serializers.py:721 +#: build/serializers.py:765 msgid "Overallocated Stock" msgstr "Stock suralloué" -#: build/serializers.py:723 +#: build/serializers.py:767 msgid "How do you want to handle extra stock items assigned to the build order" msgstr "Comment voulez-vous gérer les articles en stock supplémentaires assignés à l'ordre de construction" -#: build/serializers.py:733 +#: build/serializers.py:777 msgid "Some stock items have been overallocated" msgstr "Certains articles de stock ont été suralloués" -#: build/serializers.py:738 +#: build/serializers.py:782 msgid "Accept Unallocated" msgstr "Accepter les non-alloués" -#: build/serializers.py:739 +#: build/serializers.py:783 msgid "Accept that stock items have not been fully allocated to this build order" msgstr "Accepter les articles de stock qui n'ont pas été complètement alloués à cette ordre de production" -#: build/serializers.py:749 templates/js/translated/build.js:316 +#: build/serializers.py:793 templates/js/translated/build.js:319 msgid "Required stock has not been fully allocated" msgstr "Le stock requis n'a pas encore été totalement alloué" -#: build/serializers.py:754 order/serializers.py:345 order/serializers.py:1365 +#: build/serializers.py:798 order/serializers.py:430 order/serializers.py:1491 msgid "Accept Incomplete" msgstr "Accepter les incomplèts" -#: build/serializers.py:755 +#: build/serializers.py:799 msgid "Accept that the required number of build outputs have not been completed" msgstr "Accepter que tous les ordres de production n'aient pas encore été achevés" -#: build/serializers.py:765 templates/js/translated/build.js:320 +#: build/serializers.py:809 templates/js/translated/build.js:323 msgid "Required build quantity has not been completed" msgstr "La quantité nécessaire n'a pas encore été complétée" -#: build/serializers.py:774 +#: build/serializers.py:818 msgid "Build order has open child build orders" msgstr "" -#: build/serializers.py:777 +#: build/serializers.py:821 msgid "Build order must be in production state" msgstr "" -#: build/serializers.py:780 templates/js/translated/build.js:304 +#: build/serializers.py:824 templates/js/translated/build.js:307 msgid "Build order has incomplete outputs" msgstr "L'ordre de production a des sorties incomplètes" -#: build/serializers.py:818 +#: build/serializers.py:862 msgid "Build Line" msgstr "Chaîne d'assemblage" -#: build/serializers.py:828 +#: build/serializers.py:872 msgid "Build output" msgstr "Sortie d'assemblage" -#: build/serializers.py:836 +#: build/serializers.py:880 msgid "Build output must point to the same build" msgstr "La sortie de la construction doit pointer vers la même construction" -#: build/serializers.py:872 +#: build/serializers.py:916 msgid "Build Line Item" msgstr "Élément de la ligne de construction" -#: build/serializers.py:886 +#: build/serializers.py:930 msgid "bom_item.part must point to the same part as the build order" msgstr "bom_item.part doit pointer sur la même pièce que l'ordre de construction" -#: build/serializers.py:901 stock/serializers.py:1294 +#: build/serializers.py:945 stock/serializers.py:1325 msgid "Item must be in stock" msgstr "L'article doit être en stock" -#: build/serializers.py:949 order/serializers.py:1351 +#: build/serializers.py:993 order/serializers.py:1477 #, python-brace-format msgid "Available quantity ({q}) exceeded" msgstr "Quantité disponible ({q}) dépassée" -#: build/serializers.py:955 +#: build/serializers.py:999 msgid "Build output must be specified for allocation of tracked parts" msgstr "La sortie de construction doit être spécifiée pour l'allocation des pièces suivies" -#: build/serializers.py:962 +#: build/serializers.py:1006 msgid "Build output cannot be specified for allocation of untracked parts" msgstr "La sortie de la construction ne peut pas être spécifiée pour l'allocation des pièces non suivies" -#: build/serializers.py:986 order/serializers.py:1610 +#: build/serializers.py:1030 order/serializers.py:1750 msgid "Allocation items must be provided" msgstr "Les articles d'allocation doivent être fournis" -#: build/serializers.py:1049 +#: build/serializers.py:1093 msgid "Stock location where parts are to be sourced (leave blank to take from any location)" msgstr "Emplacement de stock où les pièces doivent être fournies (laissez vide pour les prendre à partir de n'importe quel emplacement)" -#: build/serializers.py:1057 +#: build/serializers.py:1101 msgid "Exclude Location" msgstr "Emplacements exclus" -#: build/serializers.py:1058 +#: build/serializers.py:1102 msgid "Exclude stock items from this selected location" msgstr "Exclure les articles de stock de cet emplacement sélectionné" -#: build/serializers.py:1063 +#: build/serializers.py:1107 msgid "Interchangeable Stock" msgstr "Stock interchangeable" -#: build/serializers.py:1064 +#: build/serializers.py:1108 msgid "Stock items in multiple locations can be used interchangeably" msgstr "Les articles de stock à plusieurs emplacements peuvent être utilisés de manière interchangeable" -#: build/serializers.py:1069 +#: build/serializers.py:1113 msgid "Substitute Stock" msgstr "Stock de substitution" -#: build/serializers.py:1070 +#: build/serializers.py:1114 msgid "Allow allocation of substitute parts" msgstr "Autoriser l'allocation de pièces de remplacement" -#: build/serializers.py:1075 +#: build/serializers.py:1119 msgid "Optional Items" msgstr "Objets Optionnels" -#: build/serializers.py:1076 +#: build/serializers.py:1120 msgid "Allocate optional BOM items to build order" msgstr "Affecter des éléments de nomenclature facultatifs à l'ordre de fabrication" -#: build/serializers.py:1098 +#: build/serializers.py:1143 msgid "Failed to start auto-allocation task" msgstr "" -#: build/serializers.py:1181 +#: build/serializers.py:1226 stock/serializers.py:585 msgid "Supplier Part Number" msgstr "" -#: build/serializers.py:1182 company/models.py:506 +#: build/serializers.py:1227 company/models.py:503 stock/serializers.py:591 msgid "Manufacturer Part Number" msgstr "" -#: build/serializers.py:1183 stock/admin.py:53 stock/admin.py:175 -#: stock/serializers.py:457 +#: build/serializers.py:1228 stock/admin.py:53 stock/admin.py:176 +#: stock/serializers.py:467 msgid "Location Name" -msgstr "" +msgstr "Nom de l'endroit" -#: build/serializers.py:1184 +#: build/serializers.py:1229 build/serializers.py:1327 msgid "Build Reference" msgstr "" -#: build/serializers.py:1185 +#: build/serializers.py:1230 msgid "BOM Reference" msgstr "" -#: build/serializers.py:1186 company/models.py:852 -#: company/templates/company/supplier_part.html:160 order/serializers.py:690 -#: stock/admin.py:228 stock/models.py:818 stock/serializers.py:1579 -#: stock/templates/stock/item_base.html:240 -#: templates/js/translated/company.js:1646 -#: templates/js/translated/purchase_order.js:1169 -#: templates/js/translated/purchase_order.js:1332 +#: build/serializers.py:1231 company/models.py:849 +#: company/templates/company/supplier_part.html:161 order/serializers.py:775 +#: stock/admin.py:229 stock/models.py:895 stock/serializers.py:1610 +#: stock/templates/stock/item_base.html:237 +#: templates/js/translated/company.js:1647 +#: templates/js/translated/purchase_order.js:1152 +#: templates/js/translated/purchase_order.js:1315 #: templates/js/translated/stock.js:1214 templates/js/translated/stock.js:1246 -#: templates/js/translated/stock.js:2509 +#: templates/js/translated/stock.js:2510 msgid "Packaging" msgstr "Conditionnement" -#: build/serializers.py:1189 part/admin.py:39 part/admin.py:398 -#: part/models.py:4101 part/stocktake.py:218 stock/admin.py:152 +#: build/serializers.py:1234 part/admin.py:39 part/admin.py:398 +#: part/models.py:4159 part/stocktake.py:218 stock/admin.py:153 msgid "Part ID" msgstr "ID de composant" -#: build/serializers.py:1191 build/serializers.py:1280 part/admin.py:402 -#: part/models.py:4103 +#: build/serializers.py:1236 build/serializers.py:1332 part/admin.py:402 +#: part/models.py:4161 msgid "Part IPN" msgstr "" -#: build/serializers.py:1192 build/serializers.py:1282 part/admin.py:45 +#: build/serializers.py:1237 build/serializers.py:1334 part/admin.py:45 #: part/stocktake.py:220 msgid "Part Description" msgstr "Description pièce" -#: build/serializers.py:1195 +#: build/serializers.py:1240 msgid "BOM Part ID" msgstr "" -#: build/serializers.py:1196 +#: build/serializers.py:1241 msgid "BOM Part Name" msgstr "" -#: build/serializers.py:1199 +#: build/serializers.py:1244 #: report/templates/report/inventree_return_order_report.html:25 -#: report/templates/report/inventree_test_report.html:88 stock/models.py:845 -#: stock/serializers.py:151 stock/templates/stock/item_base.html:311 -#: templates/js/translated/build.js:520 templates/js/translated/build.js:1540 -#: templates/js/translated/build.js:2527 -#: templates/js/translated/model_renderers.js:231 +#: report/templates/report/inventree_sales_order_shipment_report.html:45 +#: report/templates/report/inventree_test_report.html:88 stock/models.py:922 +#: stock/serializers.py:152 stock/templates/stock/item_base.html:308 +#: templates/js/translated/build.js:523 templates/js/translated/build.js:1543 +#: templates/js/translated/build.js:2534 +#: templates/js/translated/model_renderers.js:234 #: templates/js/translated/return_order.js:539 #: templates/js/translated/return_order.js:722 -#: templates/js/translated/sales_order.js:315 -#: templates/js/translated/sales_order.js:1647 -#: templates/js/translated/sales_order.js:1732 +#: templates/js/translated/sales_order.js:1628 +#: templates/js/translated/sales_order.js:1713 #: templates/js/translated/stock.js:602 msgid "Serial Number" msgstr "Numéro de série" -#: build/serializers.py:1212 stock/serializers.py:593 -#: templates/js/translated/build.js:1017 templates/js/translated/build.js:1164 -#: templates/js/translated/build.js:2516 +#: build/serializers.py:1257 stock/serializers.py:620 +#: templates/js/translated/build.js:1020 templates/js/translated/build.js:1167 +#: templates/js/translated/build.js:2523 msgid "Allocated Quantity" -msgstr "" +msgstr "Quantité allouée" -#: build/serializers.py:1213 stock/templates/stock/item_base.html:340 +#: build/serializers.py:1258 stock/templates/stock/item_base.html:337 msgid "Available Quantity" -msgstr "" +msgstr "Quantité disponible" -#: build/serializers.py:1283 +#: build/serializers.py:1335 msgid "Part Category ID" msgstr "" -#: build/serializers.py:1284 +#: build/serializers.py:1336 msgid "Part Category Name" msgstr "" -#: build/serializers.py:1291 common/models.py:1513 part/admin.py:113 -#: part/models.py:1166 templates/js/translated/table_filters.js:150 +#: build/serializers.py:1345 common/models.py:1582 part/admin.py:113 +#: part/models.py:1227 templates/js/translated/build.js:2738 +#: templates/js/translated/table_filters.js:150 #: templates/js/translated/table_filters.js:230 #: templates/js/translated/table_filters.js:783 msgid "Trackable" msgstr "Traçable" -#: build/serializers.py:1292 +#: build/serializers.py:1346 msgid "Inherited" -msgstr "" +msgstr "Reçu de quelqu'un" -#: build/serializers.py:1293 part/models.py:4313 +#: build/serializers.py:1347 part/models.py:4370 #: part/templates/part/upload_bom.html:56 templates/js/translated/bom.js:1046 -#: templates/js/translated/build.js:2711 +#: templates/js/translated/build.js:2720 msgid "Allow Variants" msgstr "" -#: build/serializers.py:1297 part/models.py:4110 part/models.py:4584 +#: build/serializers.py:1351 part/models.py:4168 part/models.py:4646 #: stock/api.py:794 msgid "BOM Item" msgstr "Article du BOM" -#: build/serializers.py:1306 build/templates/build/detail.html:236 +#: build/serializers.py:1370 build/templates/build/detail.html:236 #: build/templates/build/sidebar.html:16 templates/js/translated/index.js:130 msgid "Allocated Stock" msgstr "Stock alloué" -#: build/serializers.py:1311 order/serializers.py:1175 part/admin.py:132 -#: part/bom.py:181 part/serializers.py:899 part/serializers.py:1602 -#: part/templates/part/part_base.html:210 templates/js/translated/bom.js:1208 -#: templates/js/translated/build.js:2804 templates/js/translated/part.js:712 +#: build/serializers.py:1375 order/serializers.py:1209 part/admin.py:132 +#: part/bom.py:186 part/serializers.py:951 part/serializers.py:1660 +#: part/templates/part/part_base.html:211 templates/js/translated/bom.js:1208 +#: templates/js/translated/build.js:2822 templates/js/translated/part.js:712 #: templates/js/translated/part.js:2155 #: templates/js/translated/table_filters.js:177 msgid "On Order" msgstr "En Commande" -#: build/serializers.py:1316 order/serializers.py:1176 part/serializers.py:1604 -#: templates/js/translated/build.js:2808 +#: build/serializers.py:1380 order/serializers.py:1210 part/serializers.py:1662 +#: templates/js/translated/build.js:2826 #: templates/js/translated/table_filters.js:367 msgid "In Production" msgstr "En Production" -#: build/serializers.py:1321 part/bom.py:180 part/serializers.py:1629 -#: part/templates/part/part_base.html:192 -#: templates/js/translated/sales_order.js:1929 -msgid "Available Stock" -msgstr "Stock disponible" - -#: build/serializers.py:1325 -msgid "Available Substitute Stock" -msgstr "" - -#: build/serializers.py:1326 -msgid "Available Variant Stock" -msgstr "" - -#: build/serializers.py:1327 -msgid "Total Available Stock" -msgstr "" - -#: build/serializers.py:1328 part/serializers.py:906 +#: build/serializers.py:1384 part/serializers.py:958 msgid "External Stock" msgstr "" -#: build/status_codes.py:11 generic/states/tests.py:17 order/status_codes.py:12 -#: order/status_codes.py:42 order/status_codes.py:74 order/status_codes.py:98 +#: build/serializers.py:1385 part/bom.py:185 part/serializers.py:1687 +#: part/templates/part/part_base.html:193 +#: templates/js/translated/sales_order.js:1910 +msgid "Available Stock" +msgstr "Stock disponible" + +#: build/serializers.py:1386 +msgid "Available Substitute Stock" +msgstr "" + +#: build/serializers.py:1387 +msgid "Available Variant Stock" +msgstr "" + +#: build/status_codes.py:11 generic/states/tests.py:21 +#: generic/states/tests.py:131 order/status_codes.py:12 +#: order/status_codes.py:44 order/status_codes.py:76 order/status_codes.py:102 #: templates/js/translated/table_filters.js:601 msgid "Pending" msgstr "En attente" @@ -1722,21 +1750,21 @@ msgstr "En attente" msgid "Production" msgstr "Fabrication" -#: build/status_codes.py:13 order/status_codes.py:14 order/status_codes.py:49 -#: order/status_codes.py:79 +#: build/status_codes.py:13 order/status_codes.py:14 order/status_codes.py:51 +#: order/status_codes.py:81 msgid "On Hold" -msgstr "" +msgstr "En pause" -#: build/status_codes.py:14 order/status_codes.py:16 order/status_codes.py:51 -#: order/status_codes.py:82 +#: build/status_codes.py:14 order/status_codes.py:16 order/status_codes.py:53 +#: order/status_codes.py:84 msgid "Cancelled" msgstr "Annulé" -#: build/status_codes.py:15 generic/states/tests.py:19 importer/models.py:509 -#: importer/status_codes.py:19 order/status_codes.py:15 -#: order/status_codes.py:50 order/status_codes.py:81 -#: order/templates/order/order_base.html:163 -#: order/templates/order/sales_order_base.html:168 report/models.py:443 +#: build/status_codes.py:15 generic/states/tests.py:23 importer/models.py:518 +#: importer/status_codes.py:27 order/status_codes.py:15 +#: order/status_codes.py:52 order/status_codes.py:83 +#: order/templates/order/order_base.html:172 +#: order/templates/order/sales_order_base.html:169 report/models.py:451 msgid "Complete" msgstr "Terminé" @@ -1744,165 +1772,162 @@ msgstr "Terminé" msgid "Stock required for build order" msgstr "Stock requis pour la commande de construction" -#: build/tasks.py:201 +#: build/tasks.py:260 msgid "Overdue Build Order" msgstr "Ordre de commande en retard" -#: build/tasks.py:206 +#: build/tasks.py:265 #, python-brace-format msgid "Build order {bo} is now overdue" msgstr "L'ordre de commande {bo} est maintenant en retard" -#: build/templates/build/build_base.html:18 +#: build/templates/build/build_base.html:19 msgid "Part thumbnail" msgstr "Image miniature de l'article" -#: build/templates/build/build_base.html:38 -#: company/templates/company/supplier_part.html:35 -#: order/templates/order/order_base.html:29 -#: order/templates/order/return_order_base.html:38 -#: order/templates/order/sales_order_base.html:38 -#: part/templates/part/part_base.html:41 -#: stock/templates/stock/item_base.html:40 -#: stock/templates/stock/location.html:52 +#: build/templates/build/build_base.html:39 +#: company/templates/company/supplier_part.html:36 +#: order/templates/order/order_base.html:30 +#: order/templates/order/return_order_base.html:39 +#: order/templates/order/sales_order_base.html:39 +#: part/templates/part/part_base.html:42 +#: stock/templates/stock/item_base.html:41 +#: stock/templates/stock/location.html:53 #: templates/js/translated/filters.js:338 msgid "Barcode actions" msgstr "Actions de code-barres" -#: build/templates/build/build_base.html:42 -#: company/templates/company/supplier_part.html:39 -#: order/templates/order/order_base.html:33 -#: order/templates/order/return_order_base.html:42 -#: order/templates/order/sales_order_base.html:42 -#: part/templates/part/part_base.html:44 -#: stock/templates/stock/item_base.html:44 -#: stock/templates/stock/location.html:54 templates/qr_button.html:1 +#: build/templates/build/build_base.html:43 +#: company/templates/company/supplier_part.html:40 +#: order/templates/order/order_base.html:34 +#: order/templates/order/return_order_base.html:43 +#: order/templates/order/sales_order_base.html:43 +#: part/templates/part/part_base.html:45 +#: stock/templates/stock/item_base.html:45 +#: stock/templates/stock/location.html:55 templates/qr_button.html:1 msgid "Show QR Code" msgstr "Afficher le QR Code" -#: build/templates/build/build_base.html:45 -#: company/templates/company/supplier_part.html:41 -#: order/templates/order/order_base.html:36 -#: order/templates/order/return_order_base.html:45 -#: order/templates/order/sales_order_base.html:45 -#: part/templates/part/part_base.html:47 -#: stock/templates/stock/item_base.html:47 -#: stock/templates/stock/location.html:56 +#: build/templates/build/build_base.html:46 +#: company/templates/company/supplier_part.html:42 +#: order/templates/order/order_base.html:37 +#: order/templates/order/return_order_base.html:46 +#: order/templates/order/sales_order_base.html:46 +#: part/templates/part/part_base.html:48 +#: stock/templates/stock/item_base.html:48 +#: stock/templates/stock/location.html:57 #: templates/js/translated/barcode.js:527 #: templates/js/translated/barcode.js:532 msgid "Unlink Barcode" msgstr "Délier le code-barre" -#: build/templates/build/build_base.html:47 -#: company/templates/company/supplier_part.html:43 -#: order/templates/order/order_base.html:38 -#: order/templates/order/return_order_base.html:47 -#: order/templates/order/sales_order_base.html:47 -#: part/templates/part/part_base.html:49 -#: stock/templates/stock/item_base.html:49 -#: stock/templates/stock/location.html:58 +#: build/templates/build/build_base.html:48 +#: company/templates/company/supplier_part.html:44 +#: order/templates/order/order_base.html:39 +#: order/templates/order/return_order_base.html:48 +#: order/templates/order/sales_order_base.html:48 +#: part/templates/part/part_base.html:50 +#: stock/templates/stock/item_base.html:50 +#: stock/templates/stock/location.html:59 msgid "Link Barcode" msgstr "Lier le code-barre" -#: build/templates/build/build_base.html:56 -#: order/templates/order/order_base.html:46 -#: order/templates/order/return_order_base.html:55 -#: order/templates/order/sales_order_base.html:55 +#: build/templates/build/build_base.html:57 +#: order/templates/order/order_base.html:47 +#: order/templates/order/return_order_base.html:56 +#: order/templates/order/sales_order_base.html:56 msgid "Print actions" msgstr "Actions d'impression" -#: build/templates/build/build_base.html:60 +#: build/templates/build/build_base.html:61 msgid "Print build order report" msgstr "Imprimer le rapport d'ordre de construction" -#: build/templates/build/build_base.html:67 +#: build/templates/build/build_base.html:68 msgid "Build actions" msgstr "Modifier construction/ordre de construction" -#: build/templates/build/build_base.html:71 +#: build/templates/build/build_base.html:72 msgid "Edit Build" msgstr "Modifier l'assemblage" -#: build/templates/build/build_base.html:73 +#: build/templates/build/build_base.html:74 msgid "Duplicate Build" msgstr "Dupliquer la construction" -#: build/templates/build/build_base.html:76 +#: build/templates/build/build_base.html:77 msgid "Hold Build" msgstr "" -#: build/templates/build/build_base.html:79 +#: build/templates/build/build_base.html:80 msgid "Cancel Build" msgstr "Annuler l'assemblage" -#: build/templates/build/build_base.html:82 +#: build/templates/build/build_base.html:83 msgid "Delete Build" msgstr "Supprimer l'assemblage" -#: build/templates/build/build_base.html:87 -msgid "Isueue Build" -msgstr "" - #: build/templates/build/build_base.html:88 +#: build/templates/build/build_base.html:89 msgid "Issue Build" -msgstr "" +msgstr "Création de version" -#: build/templates/build/build_base.html:91 #: build/templates/build/build_base.html:92 +#: build/templates/build/build_base.html:93 msgid "Complete Build" msgstr "Compléter l'assemblage" -#: build/templates/build/build_base.html:115 +#: build/templates/build/build_base.html:116 msgid "Build Description" msgstr "Description de la construction" -#: build/templates/build/build_base.html:125 +#: build/templates/build/build_base.html:126 msgid "No build outputs have been created for this build order" msgstr "Aucune sortie de construction n'a été créée pour cet ordre de construction" -#: build/templates/build/build_base.html:132 +#: build/templates/build/build_base.html:133 msgid "Build Order is ready to mark as completed" msgstr "L'ordre de construction est prêt à être marqué comme terminé" -#: build/templates/build/build_base.html:137 +#: build/templates/build/build_base.html:138 msgid "Build Order cannot be completed as outstanding outputs remain" msgstr "L'ordre de construction ne peut pas être achevé car il reste des outputs en suspens" -#: build/templates/build/build_base.html:142 +#: build/templates/build/build_base.html:143 msgid "Required build quantity has not yet been completed" msgstr "Le nombre de constructions requis n'a pas encore été atteint" -#: build/templates/build/build_base.html:147 +#: build/templates/build/build_base.html:148 msgid "Stock has not been fully allocated to this Build Order" msgstr "Le stock n'a pas été entièrement alloué à cet ordre de construction" -#: build/templates/build/build_base.html:168 -#: build/templates/build/detail.html:138 order/models.py:308 -#: order/models.py:1391 order/serializers.py:174 -#: order/templates/order/order_base.html:191 -#: order/templates/order/return_order_base.html:167 -#: order/templates/order/sales_order_base.html:199 +#: build/templates/build/build_base.html:169 +#: build/templates/build/detail.html:138 order/models.py:315 +#: order/models.py:1408 order/serializers.py:254 +#: order/templates/order/order_base.html:200 +#: order/templates/order/return_order_base.html:168 +#: order/templates/order/sales_order_base.html:200 #: report/templates/report/inventree_build_order_report.html:125 -#: templates/js/translated/build.js:2411 templates/js/translated/part.js:1837 -#: templates/js/translated/purchase_order.js:1809 -#: templates/js/translated/purchase_order.js:2217 +#: templates/js/translated/build.js:2414 templates/js/translated/part.js:1837 +#: templates/js/translated/purchase_order.js:1793 +#: templates/js/translated/purchase_order.js:2201 #: templates/js/translated/return_order.js:346 #: templates/js/translated/return_order.js:749 -#: templates/js/translated/sales_order.js:871 -#: templates/js/translated/sales_order.js:1903 +#: templates/js/translated/sales_order.js:830 +#: templates/js/translated/sales_order.js:1884 msgid "Target Date" msgstr "Date Cible" -#: build/templates/build/build_base.html:173 +#: build/templates/build/build_base.html:174 #, python-format msgid "This build was due on %(target)s" msgstr "Cette construction était due le %(target)s" -#: build/templates/build/build_base.html:173 -#: build/templates/build/build_base.html:230 -#: order/templates/order/order_base.html:127 -#: order/templates/order/return_order_base.html:120 -#: order/templates/order/sales_order_base.html:129 +#: build/templates/build/build_base.html:174 +#: build/templates/build/build_base.html:231 +#: order/templates/order/order_base.html:128 +#: order/templates/order/return_order_base.html:121 +#: order/templates/order/sales_order_base.html:130 #: templates/js/translated/table_filters.js:97 #: templates/js/translated/table_filters.js:545 #: templates/js/translated/table_filters.js:629 @@ -1910,49 +1935,50 @@ msgstr "Cette construction était due le %(target)s" msgid "Overdue" msgstr "En retard" -#: build/templates/build/build_base.html:185 +#: build/templates/build/build_base.html:186 #: build/templates/build/detail.html:67 build/templates/build/sidebar.html:13 msgid "Completed Outputs" msgstr "Sorties de Construction terminées" -#: build/templates/build/build_base.html:198 -#: build/templates/build/detail.html:101 order/api.py:1406 order/models.py:892 -#: order/models.py:1650 order/models.py:1765 order/models.py:1924 -#: order/templates/order/sales_order_base.html:9 -#: order/templates/order/sales_order_base.html:28 +#: build/templates/build/build_base.html:199 +#: build/templates/build/detail.html:101 order/api.py:1528 order/models.py:914 +#: order/models.py:1666 order/models.py:1794 order/models.py:1957 +#: order/templates/order/sales_order_base.html:10 +#: order/templates/order/sales_order_base.html:29 #: report/templates/report/inventree_build_order_report.html:135 #: report/templates/report/inventree_sales_order_report.html:14 -#: stock/templates/stock/item_base.html:369 +#: report/templates/report/inventree_sales_order_shipment_report.html:15 +#: stock/templates/stock/item_base.html:366 #: templates/email/overdue_sales_order.html:15 -#: templates/js/translated/pricing.js:929 -#: templates/js/translated/sales_order.js:805 -#: templates/js/translated/sales_order.js:1028 -#: templates/js/translated/stock.js:3008 +#: templates/js/translated/pricing.js:927 +#: templates/js/translated/sales_order.js:764 +#: templates/js/translated/sales_order.js:1001 +#: templates/js/translated/stock.js:3009 msgid "Sales Order" msgstr "Commandes" -#: build/templates/build/build_base.html:219 -#: build/templates/build/detail.html:94 templates/js/translated/build.js:2328 +#: build/templates/build/build_base.html:220 +#: build/templates/build/detail.html:94 templates/js/translated/build.js:2331 msgid "Priority" msgstr "Priorité" -#: build/templates/build/build_base.html:267 +#: build/templates/build/build_base.html:268 msgid "Issue Build Order" -msgstr "" +msgstr "Commande de fabrication de version" -#: build/templates/build/build_base.html:271 +#: build/templates/build/build_base.html:272 msgid "Issue this Build Order?" -msgstr "" +msgstr "Envoyer cette demande de version ?" -#: build/templates/build/build_base.html:302 +#: build/templates/build/build_base.html:303 msgid "Delete Build Order" msgstr "Supprimer la commande de construction" -#: build/templates/build/build_base.html:312 +#: build/templates/build/build_base.html:313 msgid "Build Order QR Code" msgstr "Génération du QR Code de commande" -#: build/templates/build/build_base.html:324 +#: build/templates/build/build_base.html:325 msgid "Link Barcode to Build Order" msgstr "Lier le code-barres pour construire la commande" @@ -1968,8 +1994,9 @@ msgstr "Stock d'origine" msgid "Stock can be taken from any available location." msgstr "Le stock peut être pris à partir de n'importe quel endroit disponible." -#: build/templates/build/detail.html:49 order/models.py:1532 -#: templates/js/translated/purchase_order.js:2259 +#: build/templates/build/detail.html:49 order/models.py:548 +#: order/models.py:1548 order/templates/order/order_base.html:135 +#: templates/js/translated/purchase_order.js:2243 msgid "Destination" msgstr "Destination" @@ -1981,23 +2008,24 @@ msgstr "Stockage de destination non défini" msgid "Allocated Parts" msgstr "Pièces allouées" -#: build/templates/build/detail.html:80 stock/admin.py:162 -#: stock/templates/stock/item_base.html:162 -#: templates/js/translated/build.js:1553 -#: templates/js/translated/model_renderers.js:242 -#: templates/js/translated/purchase_order.js:1326 +#: build/templates/build/detail.html:80 +#: report/templates/report/inventree_sales_order_shipment_report.html:47 +#: stock/admin.py:163 stock/templates/stock/item_base.html:159 +#: templates/js/translated/build.js:1556 +#: templates/js/translated/model_renderers.js:245 +#: templates/js/translated/purchase_order.js:1309 #: templates/js/translated/stock.js:1139 templates/js/translated/stock.js:1240 -#: templates/js/translated/stock.js:2275 templates/js/translated/stock.js:3211 +#: templates/js/translated/stock.js:2276 templates/js/translated/stock.js:3212 #: templates/js/translated/table_filters.js:320 #: templates/js/translated/table_filters.js:411 msgid "Batch" msgstr "Lot" #: build/templates/build/detail.html:133 -#: order/templates/order/order_base.html:178 -#: order/templates/order/return_order_base.html:154 -#: order/templates/order/sales_order_base.html:193 -#: templates/js/translated/build.js:2371 +#: order/templates/order/order_base.html:187 +#: order/templates/order/return_order_base.html:155 +#: order/templates/order/sales_order_base.html:194 +#: templates/js/translated/build.js:2374 msgid "Created" msgstr "Créé le" @@ -2005,8 +2033,8 @@ msgstr "Créé le" msgid "No target date set" msgstr "Pas de date cible définie" -#: build/templates/build/detail.html:149 -#: order/templates/order/sales_order_base.html:209 +#: build/templates/build/detail.html:149 order/api.py:794 +#: order/templates/order/sales_order_base.html:210 #: templates/js/translated/table_filters.js:692 msgid "Completed" msgstr "Terminé" @@ -2052,7 +2080,7 @@ msgid "Order required parts" msgstr "Commander les pièces requises" #: build/templates/build/detail.html:192 -#: templates/js/translated/purchase_order.js:795 +#: templates/js/translated/purchase_order.js:778 msgid "Order Parts" msgstr "Commander des pièces" @@ -2120,7 +2148,7 @@ msgstr "Nouvel ordre de construction" msgid "Build Order Details" msgstr "Détails de la commande de construction" -#: build/templates/build/sidebar.html:8 order/serializers.py:82 +#: build/templates/build/sidebar.html:8 order/serializers.py:113 #: order/templates/order/po_sidebar.html:5 #: order/templates/order/return_order_detail.html:18 #: order/templates/order/so_sidebar.html:5 @@ -2137,45 +2165,40 @@ msgstr "Sorties incomplètes" #: build/templates/build/sidebar.html:24 #: part/templates/part/part_sidebar.html:56 msgid "Test Statistics" -msgstr "" +msgstr "Résultats des essais" -#: common/api.py:693 +#: common/api.py:725 msgid "Is Link" -msgstr "" +msgstr "C'est un lien" -#: common/api.py:701 +#: common/api.py:733 msgid "Is File" -msgstr "" +msgstr "C'est un fichier" -#: common/api.py:744 +#: common/api.py:776 msgid "User does not have permission to delete these attachments" msgstr "" -#: common/api.py:761 +#: common/api.py:793 msgid "User does not have permission to delete this attachment" msgstr "L'utilisateur n'a pas les permissions de supprimer cette pièce jointe" -#: common/currency.py:132 +#: common/currency.py:134 msgid "Invalid currency code" msgstr "Code de devise invalide" -#: common/currency.py:134 +#: common/currency.py:136 msgid "Duplicate currency code" msgstr "Code de devise en double" -#: common/currency.py:139 +#: common/currency.py:141 msgid "No valid currency codes provided" msgstr "Aucun code de devise valide fourni" -#: common/currency.py:156 +#: common/currency.py:158 msgid "No plugin" msgstr "Pas de plugin" -#: common/files.py:63 -#, python-brace-format -msgid "Unsupported file format: {fmt}" -msgstr "Type de fichier non pris en charge {fmt}" - #: common/files.py:65 msgid "Error reading file (invalid encoding)" msgstr "Erreur de lecture du fichier (encodage invalide)" @@ -2192,1883 +2215,2039 @@ msgstr "Erreur de lecture du fichier (dimension incorrecte)" msgid "Error reading file (data could be corrupted)" msgstr "Erreur de lecture du fichier (les données pourraient être corrompues)" -#: common/forms.py:12 +#: common/forms.py:12 common/forms.py:25 msgid "File" msgstr "Fichier" -#: common/forms.py:12 +#: common/forms.py:12 common/forms.py:26 msgid "Select file to upload" msgstr "Sélectionner un fichier à téléverser" -#: common/forms.py:25 -msgid "{name.title()} File" -msgstr "{name.title()} Fichier" - -#: common/forms.py:26 -#, python-brace-format -msgid "Select {name} file to upload" -msgstr "Sélectionner le fichier {name} à uploader" - -#: common/models.py:86 +#: common/models.py:89 msgid "Updated" msgstr "Mise à jour" -#: common/models.py:87 +#: common/models.py:90 msgid "Timestamp of last update" msgstr "Date de la dernière mise à jour" -#: common/models.py:120 +#: common/models.py:123 msgid "Site URL is locked by configuration" msgstr "L'URL du site est verrouillée par configuration" -#: common/models.py:150 +#: common/models.py:153 msgid "Unique project code" msgstr "Code projet unique" -#: common/models.py:157 +#: common/models.py:160 msgid "Project description" msgstr "Description du projet" -#: common/models.py:166 +#: common/models.py:169 msgid "User or group responsible for this project" msgstr "Utilisateur ou groupe responsable de ce projet" -#: common/models.py:783 -msgid "Settings key (must be unique - case insensitive)" -msgstr "Clé du paramètre (doit être unique - insensible à la casse)" +#: common/models.py:783 common/models.py:2236 common/models.py:2613 +msgid "Settings key" +msgstr "" #: common/models.py:787 msgid "Settings value" msgstr "Valeur du paramètre" -#: common/models.py:839 +#: common/models.py:842 msgid "Chosen value is not a valid option" msgstr "La valeur choisie n'est pas une option valide" -#: common/models.py:855 +#: common/models.py:858 msgid "Value must be a boolean value" msgstr "La valeur doit être une valeur booléenne" -#: common/models.py:863 +#: common/models.py:866 msgid "Value must be an integer value" msgstr "La valeur doit être un nombre entier" -#: common/models.py:900 +#: common/models.py:874 +msgid "Value must be a valid number" +msgstr "" + +#: common/models.py:899 +msgid "Value does not pass validation checks" +msgstr "" + +#: common/models.py:921 msgid "Key string must be unique" msgstr "La chaîne de caractères constituant la clé doit être unique" -#: common/models.py:1132 +#: common/models.py:1189 msgid "No group" msgstr "Pas de groupe" -#: common/models.py:1231 +#: common/models.py:1288 msgid "Restart required" msgstr "Redémarrage nécessaire" -#: common/models.py:1233 +#: common/models.py:1290 msgid "A setting has been changed which requires a server restart" msgstr "Un paramètre a été modifié, ce qui nécessite un redémarrage du serveur" -#: common/models.py:1240 +#: common/models.py:1297 msgid "Pending migrations" msgstr "Migration en attente" -#: common/models.py:1241 +#: common/models.py:1298 msgid "Number of pending database migrations" msgstr "Nombre de migrations de base de données en attente" -#: common/models.py:1246 +#: common/models.py:1303 msgid "Server Instance Name" msgstr "Nom de l'instance du serveur" -#: common/models.py:1248 +#: common/models.py:1305 msgid "String descriptor for the server instance" msgstr "Chaîne de caractères descriptive pour l'instance serveur" -#: common/models.py:1252 +#: common/models.py:1309 msgid "Use instance name" msgstr "Utiliser le nom de l'instance" -#: common/models.py:1253 +#: common/models.py:1310 msgid "Use the instance name in the title-bar" msgstr "Utiliser le nom de l’instance dans la barre de titre" -#: common/models.py:1258 +#: common/models.py:1315 msgid "Restrict showing `about`" msgstr "Limiter l'affichage de `about`" -#: common/models.py:1259 +#: common/models.py:1316 msgid "Show the `about` modal only to superusers" msgstr "Afficher la modale `about` uniquement aux super-utilisateurs" -#: common/models.py:1264 company/models.py:111 company/models.py:112 +#: common/models.py:1321 company/models.py:108 company/models.py:109 msgid "Company name" msgstr "Nom de la société" -#: common/models.py:1265 +#: common/models.py:1322 msgid "Internal company name" msgstr "Nom de société interne" -#: common/models.py:1269 +#: common/models.py:1326 msgid "Base URL" msgstr "URL de base" -#: common/models.py:1270 +#: common/models.py:1327 msgid "Base URL for server instance" msgstr "URL de base pour l'instance serveur" -#: common/models.py:1276 +#: common/models.py:1333 msgid "Default Currency" msgstr "Devise par défaut" -#: common/models.py:1277 +#: common/models.py:1334 msgid "Select base currency for pricing calculations" msgstr "Sélectionnez la devise de base pour les calculs de prix" -#: common/models.py:1283 +#: common/models.py:1340 msgid "Supported Currencies" msgstr "Devises supportées" -#: common/models.py:1284 +#: common/models.py:1341 msgid "List of supported currency codes" msgstr "Liste des codes de devises supportés" -#: common/models.py:1290 +#: common/models.py:1347 msgid "Currency Update Interval" msgstr "Intervalle de mise à jour des devises" -#: common/models.py:1292 +#: common/models.py:1349 msgid "How often to update exchange rates (set to zero to disable)" msgstr "Fréquence de mise à jour des taux de change (définir à zéro pour désactiver)" -#: common/models.py:1295 common/models.py:1351 common/models.py:1364 -#: common/models.py:1372 common/models.py:1381 common/models.py:1390 -#: common/models.py:1627 common/models.py:1649 common/models.py:1764 -#: common/models.py:2146 +#: common/models.py:1352 common/models.py:1408 common/models.py:1421 +#: common/models.py:1429 common/models.py:1438 common/models.py:1447 +#: common/models.py:1696 common/models.py:1718 common/models.py:1819 +#: common/models.py:2208 msgid "days" msgstr "jours" -#: common/models.py:1299 +#: common/models.py:1356 msgid "Currency Update Plugin" msgstr "Plugin de mise à jour de devise" -#: common/models.py:1300 +#: common/models.py:1357 msgid "Currency update plugin to use" msgstr "Plugin de mise à jour des devises à utiliser" -#: common/models.py:1305 +#: common/models.py:1362 msgid "Download from URL" msgstr "Télécharger depuis l'URL" -#: common/models.py:1307 +#: common/models.py:1364 msgid "Allow download of remote images and files from external URL" msgstr "Autoriser le téléchargement d'images distantes et de fichiers à partir d'URLs externes" -#: common/models.py:1313 +#: common/models.py:1370 msgid "Download Size Limit" msgstr "Limite du volume de téléchargement" -#: common/models.py:1314 +#: common/models.py:1371 msgid "Maximum allowable download size for remote image" msgstr "Taille maximale autorisée pour le téléchargement de l'image distante" -#: common/models.py:1320 +#: common/models.py:1377 msgid "User-agent used to download from URL" msgstr "Agent utilisateur utilisé pour télécharger depuis l'URL" -#: common/models.py:1322 +#: common/models.py:1379 msgid "Allow to override the user-agent used to download images and files from external URL (leave blank for the default)" msgstr "Permettre de remplacer l'agent utilisateur utilisé pour télécharger des images et des fichiers à partir d'URL externe (laisser vide pour la valeur par défaut)" -#: common/models.py:1327 +#: common/models.py:1384 msgid "Strict URL Validation" msgstr "Validation stricte d'URL" -#: common/models.py:1328 +#: common/models.py:1385 msgid "Require schema specification when validating URLs" msgstr "Spécification du schéma nécessaire lors de la validation des URL" -#: common/models.py:1333 +#: common/models.py:1390 msgid "Require confirm" msgstr "Confirmation requise" -#: common/models.py:1334 +#: common/models.py:1391 msgid "Require explicit user confirmation for certain action." msgstr "Exiger une confirmation explicite de l’utilisateur pour certaines actions." -#: common/models.py:1339 +#: common/models.py:1396 msgid "Tree Depth" msgstr "Profondeur de l'arborescence" -#: common/models.py:1341 +#: common/models.py:1398 msgid "Default tree depth for treeview. Deeper levels can be lazy loaded as they are needed." msgstr "Profondeur de l'arborescence par défaut. Les niveaux plus profonds peuvent être chargés au fur et à mesure qu'ils sont nécessaires." -#: common/models.py:1347 +#: common/models.py:1404 msgid "Update Check Interval" msgstr "Intervalle de vérification des mises à jour" -#: common/models.py:1348 +#: common/models.py:1405 msgid "How often to check for updates (set to zero to disable)" msgstr "À quelle fréquence vérifier les mises à jour (définir à zéro pour désactiver)" -#: common/models.py:1354 +#: common/models.py:1411 msgid "Automatic Backup" msgstr "Backup automatique" -#: common/models.py:1355 +#: common/models.py:1412 msgid "Enable automatic backup of database and media files" msgstr "Activer le backup automatique de la base de données et des fichiers médias" -#: common/models.py:1360 +#: common/models.py:1417 msgid "Auto Backup Interval" msgstr "Intervalle de sauvegarde automatique" -#: common/models.py:1361 +#: common/models.py:1418 msgid "Specify number of days between automated backup events" msgstr "Spécifiez le nombre de jours entre les sauvegardes automatique" -#: common/models.py:1367 +#: common/models.py:1424 msgid "Task Deletion Interval" msgstr "Intervalle de suppression des tâches" -#: common/models.py:1369 +#: common/models.py:1426 msgid "Background task results will be deleted after specified number of days" msgstr "Les résultats de la tâche en arrière-plan seront supprimés après le nombre de jours spécifié" -#: common/models.py:1376 +#: common/models.py:1433 msgid "Error Log Deletion Interval" msgstr "Intervalle de suppression du journal d'erreur" -#: common/models.py:1378 +#: common/models.py:1435 msgid "Error logs will be deleted after specified number of days" msgstr "Les logs d'erreur seront supprimés après le nombre de jours spécifié" -#: common/models.py:1385 +#: common/models.py:1442 msgid "Notification Deletion Interval" msgstr "Intervalle de suppression du journal de notification" -#: common/models.py:1387 +#: common/models.py:1444 msgid "User notifications will be deleted after specified number of days" msgstr "Les notifications de l'utilisateur seront supprimées après le nombre de jours spécifié" -#: common/models.py:1394 templates/InvenTree/settings/sidebar.html:31 +#: common/models.py:1451 templates/InvenTree/settings/sidebar.html:31 msgid "Barcode Support" msgstr "Support des code-barres" -#: common/models.py:1395 +#: common/models.py:1452 msgid "Enable barcode scanner support in the web interface" msgstr "Activer le support du scanner de codes-barres dans l'interface web" -#: common/models.py:1400 +#: common/models.py:1457 +msgid "Store Barcode Results" +msgstr "" + +#: common/models.py:1458 +msgid "Store barcode scan results in the database" +msgstr "" + +#: common/models.py:1463 +msgid "Barcode Scans Maximum Count" +msgstr "" + +#: common/models.py:1464 +msgid "Maximum number of barcode scan results to store" +msgstr "" + +#: common/models.py:1469 msgid "Barcode Input Delay" msgstr "Délai d'entrée du code-barres" -#: common/models.py:1401 +#: common/models.py:1470 msgid "Barcode input processing delay time" msgstr "Délai de traitement du code-barres" -#: common/models.py:1407 +#: common/models.py:1476 msgid "Barcode Webcam Support" msgstr "Prise en charge de la webcam code-barres" -#: common/models.py:1408 +#: common/models.py:1477 msgid "Allow barcode scanning via webcam in browser" msgstr "Autoriser la numérisation de codes-barres via la webcam dans le navigateur" -#: common/models.py:1413 +#: common/models.py:1482 msgid "Barcode Show Data" msgstr "" -#: common/models.py:1414 +#: common/models.py:1483 msgid "Display barcode data in browser as text" msgstr "" -#: common/models.py:1419 +#: common/models.py:1488 msgid "Barcode Generation Plugin" msgstr "" -#: common/models.py:1420 +#: common/models.py:1489 msgid "Plugin to use for internal barcode data generation" msgstr "" -#: common/models.py:1425 +#: common/models.py:1494 msgid "Part Revisions" msgstr "Modifications de la pièce" -#: common/models.py:1426 +#: common/models.py:1495 msgid "Enable revision field for Part" msgstr "Activer le champ de modification de la pièce" -#: common/models.py:1431 +#: common/models.py:1500 msgid "Assembly Revision Only" msgstr "" -#: common/models.py:1432 +#: common/models.py:1501 msgid "Only allow revisions for assembly parts" msgstr "" -#: common/models.py:1437 +#: common/models.py:1506 msgid "Allow Deletion from Assembly" msgstr "" -#: common/models.py:1438 +#: common/models.py:1507 msgid "Allow deletion of parts which are used in an assembly" msgstr "Permettre la suppression de pièces utilisées dans un assemblage" -#: common/models.py:1443 +#: common/models.py:1512 msgid "IPN Regex" msgstr "Regex IPN" -#: common/models.py:1444 +#: common/models.py:1513 msgid "Regular expression pattern for matching Part IPN" msgstr "Expression régulière pour la correspondance avec l'IPN de la Pièce" -#: common/models.py:1447 +#: common/models.py:1516 msgid "Allow Duplicate IPN" msgstr "Autoriser les IPN dupliqués" -#: common/models.py:1448 +#: common/models.py:1517 msgid "Allow multiple parts to share the same IPN" msgstr "Permettre à plusieurs pièces de partager le même IPN" -#: common/models.py:1453 +#: common/models.py:1522 msgid "Allow Editing IPN" msgstr "Autoriser l'édition de l'IPN" -#: common/models.py:1454 +#: common/models.py:1523 msgid "Allow changing the IPN value while editing a part" msgstr "Permettre de modifier la valeur de l'IPN lors de l'édition d'une pièce" -#: common/models.py:1459 +#: common/models.py:1528 msgid "Copy Part BOM Data" msgstr "Copier les données de la pièce" -#: common/models.py:1460 +#: common/models.py:1529 msgid "Copy BOM data by default when duplicating a part" msgstr "Copier les données des paramètres par défaut lors de la duplication d'une pièce" -#: common/models.py:1465 +#: common/models.py:1534 msgid "Copy Part Parameter Data" msgstr "Copier les données des paramètres de la pièce" -#: common/models.py:1466 +#: common/models.py:1535 msgid "Copy parameter data by default when duplicating a part" msgstr "Copier les données des paramètres par défaut lors de la duplication d'une pièce" -#: common/models.py:1471 +#: common/models.py:1540 msgid "Copy Part Test Data" msgstr "Copier les données de test de la pièce" -#: common/models.py:1472 +#: common/models.py:1541 msgid "Copy test data by default when duplicating a part" msgstr "Copier les données de test par défaut lors de la duplication d'une pièce" -#: common/models.py:1477 +#: common/models.py:1546 msgid "Copy Category Parameter Templates" msgstr "Copier les templates de paramètres de catégorie" -#: common/models.py:1478 +#: common/models.py:1547 msgid "Copy category parameter templates when creating a part" msgstr "Copier les templates de paramètres de la catégorie lors de la création d'une pièce" -#: common/models.py:1483 part/admin.py:108 part/models.py:3945 -#: report/models.py:293 report/models.py:360 report/serializers.py:90 -#: report/serializers.py:131 stock/serializers.py:232 +#: common/models.py:1552 part/admin.py:108 part/models.py:4003 +#: report/models.py:301 report/models.py:368 report/serializers.py:91 +#: report/serializers.py:132 stock/serializers.py:233 #: templates/js/translated/table_filters.js:138 #: templates/js/translated/table_filters.js:775 msgid "Template" msgstr "Modèle" -#: common/models.py:1484 +#: common/models.py:1553 msgid "Parts are templates by default" msgstr "Les pièces sont des templates par défaut" -#: common/models.py:1490 +#: common/models.py:1559 msgid "Parts can be assembled from other components by default" msgstr "Les pièces peuvent être assemblées à partir d'autres composants par défaut" -#: common/models.py:1495 part/admin.py:95 part/models.py:1160 -#: part/serializers.py:1596 templates/js/translated/table_filters.js:737 +#: common/models.py:1564 part/admin.py:95 part/models.py:1221 +#: part/serializers.py:1654 templates/js/translated/table_filters.js:737 msgid "Component" msgstr "Composant" -#: common/models.py:1496 +#: common/models.py:1565 msgid "Parts can be used as sub-components by default" msgstr "Les pièces peuvent être utilisées comme sous-composants par défaut" -#: common/models.py:1501 part/admin.py:100 part/models.py:1178 +#: common/models.py:1570 part/admin.py:100 part/models.py:1239 msgid "Purchaseable" msgstr "Achetable" -#: common/models.py:1502 +#: common/models.py:1571 msgid "Parts are purchaseable by default" msgstr "Les pièces sont achetables par défaut" -#: common/models.py:1507 part/admin.py:104 part/models.py:1184 +#: common/models.py:1576 part/admin.py:104 part/models.py:1245 #: templates/js/translated/table_filters.js:763 msgid "Salable" msgstr "Vendable" -#: common/models.py:1508 +#: common/models.py:1577 msgid "Parts are salable by default" msgstr "Les pièces sont vendables par défaut" -#: common/models.py:1514 +#: common/models.py:1583 msgid "Parts are trackable by default" msgstr "Les pièces sont traçables par défaut" -#: common/models.py:1519 part/admin.py:117 part/models.py:1200 -#: part/templates/part/part_base.html:154 +#: common/models.py:1588 part/admin.py:117 part/models.py:1261 +#: part/templates/part/part_base.html:155 #: templates/js/translated/table_filters.js:142 #: templates/js/translated/table_filters.js:787 msgid "Virtual" msgstr "Virtuelle" -#: common/models.py:1520 +#: common/models.py:1589 msgid "Parts are virtual by default" msgstr "Les pièces sont virtuelles par défaut" -#: common/models.py:1525 +#: common/models.py:1594 msgid "Show Import in Views" msgstr "Afficher l'import dans les vues" -#: common/models.py:1526 +#: common/models.py:1595 msgid "Display the import wizard in some part views" msgstr "Afficher l'assistant d'importation pour certaine vues de produits" -#: common/models.py:1531 +#: common/models.py:1600 msgid "Show related parts" msgstr "Afficher les pièces connexes" -#: common/models.py:1532 +#: common/models.py:1601 msgid "Display related parts for a part" msgstr "Afficher les pièces connexes à une pièce" -#: common/models.py:1537 +#: common/models.py:1606 msgid "Initial Stock Data" msgstr "Stock initial" -#: common/models.py:1538 +#: common/models.py:1607 msgid "Allow creation of initial stock when adding a new part" msgstr "Permettre la création d'un stock initial lors de l'ajout d'une nouvelle pièce" -#: common/models.py:1543 templates/js/translated/part.js:108 +#: common/models.py:1612 templates/js/translated/part.js:108 msgid "Initial Supplier Data" msgstr "Données initiales du fournisseur" -#: common/models.py:1545 +#: common/models.py:1614 msgid "Allow creation of initial supplier data when adding a new part" msgstr "Permettre la création des données initiales du fournisseur lors de l'ajout d'une nouvelle pièce" -#: common/models.py:1551 +#: common/models.py:1620 msgid "Part Name Display Format" msgstr "Format d'affichage du nom de la pièce" -#: common/models.py:1552 +#: common/models.py:1621 msgid "Format to display the part name" msgstr "Format pour afficher le nom de la pièce" -#: common/models.py:1558 +#: common/models.py:1627 msgid "Part Category Default Icon" msgstr "Icône de catégorie par défaut" -#: common/models.py:1559 +#: common/models.py:1628 msgid "Part category default icon (empty means no icon)" msgstr "Icône par défaut de la catégorie de la pièce (vide signifie aucune icône)" -#: common/models.py:1564 +#: common/models.py:1633 msgid "Enforce Parameter Units" msgstr "Renforcer les unités des paramètres" -#: common/models.py:1566 +#: common/models.py:1635 msgid "If units are provided, parameter values must match the specified units" msgstr "Si des unités sont fournies, les valeurs de paramètre doivent correspondre aux unités spécifiées" -#: common/models.py:1572 +#: common/models.py:1641 msgid "Minimum Pricing Decimal Places" msgstr "Nombre minimal de décimales" -#: common/models.py:1574 +#: common/models.py:1643 msgid "Minimum number of decimal places to display when rendering pricing data" msgstr "Nombre minimum de décimales à afficher lors de l'affichage des prix" -#: common/models.py:1585 +#: common/models.py:1654 msgid "Maximum Pricing Decimal Places" msgstr "" -#: common/models.py:1587 +#: common/models.py:1656 msgid "Maximum number of decimal places to display when rendering pricing data" msgstr "" -#: common/models.py:1598 +#: common/models.py:1667 msgid "Use Supplier Pricing" msgstr "Utiliser le prix fournisseur" -#: common/models.py:1600 +#: common/models.py:1669 msgid "Include supplier price breaks in overall pricing calculations" msgstr "Inclure les réductions de prix dans le calcul du prix global" -#: common/models.py:1606 +#: common/models.py:1675 msgid "Purchase History Override" msgstr "Remplacer l'historique des achats" -#: common/models.py:1608 +#: common/models.py:1677 msgid "Historical purchase order pricing overrides supplier price breaks" msgstr "La tarification historique des bons de commande remplace les réductions de prix des fournisseurs" -#: common/models.py:1614 +#: common/models.py:1683 msgid "Use Stock Item Pricing" msgstr "Utiliser les prix des articles en stock" -#: common/models.py:1616 +#: common/models.py:1685 msgid "Use pricing from manually entered stock data for pricing calculations" msgstr "Utiliser les prix des données de stock saisies manuellement pour calculer les prix" -#: common/models.py:1622 +#: common/models.py:1691 msgid "Stock Item Pricing Age" msgstr "Âge de tarification des articles de stock" -#: common/models.py:1624 +#: common/models.py:1693 msgid "Exclude stock items older than this number of days from pricing calculations" msgstr "Exclure les articles en stock datant de plus de ce nombre de jours des calculs de prix" -#: common/models.py:1631 +#: common/models.py:1700 msgid "Use Variant Pricing" msgstr "Utiliser les prix variants" -#: common/models.py:1632 +#: common/models.py:1701 msgid "Include variant pricing in overall pricing calculations" msgstr "Inclure la tarification variante dans le calcul global des prix" -#: common/models.py:1637 +#: common/models.py:1706 msgid "Active Variants Only" msgstr "Variantes actives uniquement" -#: common/models.py:1639 +#: common/models.py:1708 msgid "Only use active variant parts for calculating variant pricing" msgstr "N'utiliser que des pièces de variante actives pour calculer le prix de la variante" -#: common/models.py:1645 +#: common/models.py:1714 msgid "Pricing Rebuild Interval" msgstr "Intervalle de regénération des prix" -#: common/models.py:1647 +#: common/models.py:1716 msgid "Number of days before part pricing is automatically updated" msgstr "Nombre de jours avant la mise à jour automatique du prix de la pièce" -#: common/models.py:1654 +#: common/models.py:1723 msgid "Internal Prices" msgstr "Prix internes" -#: common/models.py:1655 +#: common/models.py:1724 msgid "Enable internal prices for parts" msgstr "Activer les prix internes pour les pièces" -#: common/models.py:1660 +#: common/models.py:1729 msgid "Internal Price Override" msgstr "Substitution du prix interne" -#: common/models.py:1662 +#: common/models.py:1731 msgid "If available, internal prices override price range calculations" msgstr "Si disponible, les prix internes remplacent les calculs de la fourchette de prix" -#: common/models.py:1668 +#: common/models.py:1737 msgid "Enable label printing" msgstr "Activer l'impression d'étiquettes" -#: common/models.py:1669 +#: common/models.py:1738 msgid "Enable label printing from the web interface" msgstr "Activer l'impression d'étiquettes depuis l'interface Web" -#: common/models.py:1674 +#: common/models.py:1743 msgid "Label Image DPI" msgstr "Étiquette image DPI" -#: common/models.py:1676 +#: common/models.py:1745 msgid "DPI resolution when generating image files to supply to label printing plugins" msgstr "Résolution DPI lors de la génération de fichiers image pour fournir aux plugins d'impression d'étiquettes" -#: common/models.py:1682 +#: common/models.py:1751 msgid "Enable Reports" msgstr "Activer les rapports" -#: common/models.py:1683 +#: common/models.py:1752 msgid "Enable generation of reports" msgstr "Activer la génération de rapports" -#: common/models.py:1688 templates/stats.html:25 +#: common/models.py:1757 templates/stats.html:25 msgid "Debug Mode" msgstr "Mode Débogage" -#: common/models.py:1689 +#: common/models.py:1758 msgid "Generate reports in debug mode (HTML output)" msgstr "Générer des rapports en mode debug (sortie HTML)" -#: common/models.py:1694 +#: common/models.py:1763 msgid "Log Report Errors" msgstr "Journal des erreurs" -#: common/models.py:1695 +#: common/models.py:1764 msgid "Log errors which occur when generating reports" msgstr "" -#: common/models.py:1700 plugin/builtin/labels/label_sheet.py:28 -#: report/models.py:301 +#: common/models.py:1769 plugin/builtin/labels/label_sheet.py:28 +#: report/models.py:309 msgid "Page Size" msgstr "Taille de la page" -#: common/models.py:1701 +#: common/models.py:1770 msgid "Default page size for PDF reports" msgstr "Taille de page par défaut pour les rapports PDF" -#: common/models.py:1706 -msgid "Enable Test Reports" -msgstr "Activer les rapports de test" - -#: common/models.py:1707 -msgid "Enable generation of test reports" -msgstr "Activer la génération de rapports de test" - -#: common/models.py:1712 -msgid "Attach Test Reports" -msgstr "Joindre des rapports de test" - -#: common/models.py:1714 -msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item" -msgstr "Lors de l'impression d'un rapport de test, joignez une copie du rapport de test à l'article en stock associé" - -#: common/models.py:1720 +#: common/models.py:1775 msgid "Globally Unique Serials" msgstr "Numéro de Série Universellement Unique" -#: common/models.py:1721 +#: common/models.py:1776 msgid "Serial numbers for stock items must be globally unique" msgstr "Les numéros de série pour les articles en stock doivent être uniques au niveau global" -#: common/models.py:1726 +#: common/models.py:1781 msgid "Autofill Serial Numbers" msgstr "Remplir automatiquement les Numéros de Série" -#: common/models.py:1727 +#: common/models.py:1782 msgid "Autofill serial numbers in forms" msgstr "Remplir automatiquement les numéros de série dans les formulaires" -#: common/models.py:1732 +#: common/models.py:1787 msgid "Delete Depleted Stock" msgstr "Supprimer le stock épuisé" -#: common/models.py:1734 +#: common/models.py:1789 msgid "Determines default behavior when a stock item is depleted" msgstr "" -#: common/models.py:1740 +#: common/models.py:1795 msgid "Batch Code Template" msgstr "Modèle de code de lot" -#: common/models.py:1742 +#: common/models.py:1797 msgid "Template for generating default batch codes for stock items" msgstr "Modèle pour générer des codes par défaut pour les articles en stock" -#: common/models.py:1747 +#: common/models.py:1802 msgid "Stock Expiry" msgstr "Expiration du stock" -#: common/models.py:1748 +#: common/models.py:1803 msgid "Enable stock expiry functionality" msgstr "Activer la fonctionnalité d'expiration du stock" -#: common/models.py:1753 +#: common/models.py:1808 msgid "Sell Expired Stock" msgstr "Vendre le stock expiré" -#: common/models.py:1754 +#: common/models.py:1809 msgid "Allow sale of expired stock" msgstr "Autoriser la vente de stock expiré" -#: common/models.py:1759 +#: common/models.py:1814 msgid "Stock Stale Time" msgstr "Délai de péremption du stock" -#: common/models.py:1761 +#: common/models.py:1816 msgid "Number of days stock items are considered stale before expiring" msgstr "Nombre de jours pendant lesquels les articles en stock sont considérés comme périmés avant d'expirer" -#: common/models.py:1768 +#: common/models.py:1823 msgid "Build Expired Stock" msgstr "Construction de stock expirée" -#: common/models.py:1769 +#: common/models.py:1824 msgid "Allow building with expired stock" msgstr "Autoriser la construction avec un stock expiré" -#: common/models.py:1774 +#: common/models.py:1829 msgid "Stock Ownership Control" msgstr "Contrôle de la propriété des stocks" -#: common/models.py:1775 +#: common/models.py:1830 msgid "Enable ownership control over stock locations and items" msgstr "Activer le contrôle de la propriété sur les emplacements de stock et les articles" -#: common/models.py:1780 +#: common/models.py:1835 msgid "Stock Location Default Icon" msgstr "Icône par défaut de l'emplacement du stock" -#: common/models.py:1781 +#: common/models.py:1836 msgid "Stock location default icon (empty means no icon)" msgstr "Icône par défaut de l'emplacement du stock (vide signifie aucune icône)" -#: common/models.py:1786 +#: common/models.py:1841 msgid "Show Installed Stock Items" msgstr "Afficher les pièces en stock installées" -#: common/models.py:1787 +#: common/models.py:1842 msgid "Display installed stock items in stock tables" msgstr "" -#: common/models.py:1792 +#: common/models.py:1847 msgid "Check BOM when installing items" msgstr "" -#: common/models.py:1794 +#: common/models.py:1849 msgid "Installed stock items must exist in the BOM for the parent part" msgstr "" -#: common/models.py:1800 +#: common/models.py:1855 msgid "Allow Out of Stock Transfer" msgstr "" -#: common/models.py:1802 +#: common/models.py:1857 msgid "Allow stock items which are not in stock to be transferred between stock locations" msgstr "" -#: common/models.py:1808 +#: common/models.py:1863 msgid "Build Order Reference Pattern" msgstr "Modèle de référence de commande de construction" -#: common/models.py:1810 +#: common/models.py:1865 msgid "Required pattern for generating Build Order reference field" msgstr "Modèle requis pour générer le champ de référence de l'ordre de construction" -#: common/models.py:1816 common/models.py:1872 common/models.py:1894 -#: common/models.py:1930 +#: common/models.py:1871 common/models.py:1927 common/models.py:1949 +#: common/models.py:1985 msgid "Require Responsible Owner" -msgstr "" +msgstr "Nécessite un Responsable propriétaire" -#: common/models.py:1817 common/models.py:1873 common/models.py:1895 -#: common/models.py:1931 +#: common/models.py:1872 common/models.py:1928 common/models.py:1950 +#: common/models.py:1986 msgid "A responsible owner must be assigned to each order" msgstr "" -#: common/models.py:1822 +#: common/models.py:1877 msgid "Require Active Part" msgstr "" -#: common/models.py:1823 +#: common/models.py:1878 msgid "Prevent build order creation for inactive parts" msgstr "" -#: common/models.py:1828 +#: common/models.py:1883 msgid "Require Locked Part" -msgstr "" +msgstr "Requiert une pièce verrouillée" -#: common/models.py:1829 +#: common/models.py:1884 msgid "Prevent build order creation for unlocked parts" msgstr "" -#: common/models.py:1834 +#: common/models.py:1889 msgid "Require Valid BOM" msgstr "" -#: common/models.py:1836 +#: common/models.py:1891 msgid "Prevent build order creation unless BOM has been validated" msgstr "" -#: common/models.py:1842 +#: common/models.py:1897 msgid "Require Closed Child Orders" msgstr "" -#: common/models.py:1844 +#: common/models.py:1899 msgid "Prevent build order completion until all child orders are closed" msgstr "" -#: common/models.py:1850 +#: common/models.py:1905 msgid "Block Until Tests Pass" msgstr "" -#: common/models.py:1852 +#: common/models.py:1907 msgid "Prevent build outputs from being completed until all required tests pass" msgstr "" -#: common/models.py:1858 +#: common/models.py:1913 msgid "Enable Return Orders" msgstr "Activer les retours de commandes" -#: common/models.py:1859 +#: common/models.py:1914 msgid "Enable return order functionality in the user interface" msgstr "Activer la fonctionnalité de retour de commande dans l'interface utilisateur" -#: common/models.py:1864 +#: common/models.py:1919 msgid "Return Order Reference Pattern" msgstr "Modèle de référence de retour de commande" -#: common/models.py:1866 +#: common/models.py:1921 msgid "Required pattern for generating Return Order reference field" msgstr "" -#: common/models.py:1878 +#: common/models.py:1933 msgid "Edit Completed Return Orders" msgstr "Modifier les retours de commandes terminées" -#: common/models.py:1880 +#: common/models.py:1935 msgid "Allow editing of return orders after they have been completed" msgstr "Autoriser la modification des retours après leur enregistrement" -#: common/models.py:1886 +#: common/models.py:1941 msgid "Sales Order Reference Pattern" msgstr "Modèle de référence de bon de commande" -#: common/models.py:1888 +#: common/models.py:1943 msgid "Required pattern for generating Sales Order reference field" msgstr "Modèle requis pour générer le champ de référence du bon de commande" -#: common/models.py:1900 +#: common/models.py:1955 msgid "Sales Order Default Shipment" msgstr "Expédition par défaut du bon de commande" -#: common/models.py:1901 +#: common/models.py:1956 msgid "Enable creation of default shipment with sales orders" msgstr "Activer la création d'expédition par défaut avec les bons de commandes" -#: common/models.py:1906 +#: common/models.py:1961 msgid "Edit Completed Sales Orders" msgstr "Modifier les commandes de vente terminées" -#: common/models.py:1908 +#: common/models.py:1963 msgid "Allow editing of sales orders after they have been shipped or completed" msgstr "Autoriser la modification des commandes de vente après avoir été expédiées ou complétées" -#: common/models.py:1914 +#: common/models.py:1969 msgid "Mark Shipped Orders as Complete" -msgstr "" +msgstr "Marquer les commandes expédiées comme achevées" -#: common/models.py:1916 +#: common/models.py:1971 msgid "Sales orders marked as shipped will automatically be completed, bypassing the \"shipped\" status" -msgstr "" +msgstr "Les commandes marquées comme expédiées seront automatiquement complétées, en contournant le statut « expédié »" -#: common/models.py:1922 +#: common/models.py:1977 msgid "Purchase Order Reference Pattern" msgstr "Modèle de référence de commande d'achat" -#: common/models.py:1924 +#: common/models.py:1979 msgid "Required pattern for generating Purchase Order reference field" msgstr "Modèle requis pour générer le champ de référence de bon de commande" -#: common/models.py:1936 +#: common/models.py:1991 msgid "Edit Completed Purchase Orders" msgstr "Modifier les bons de commande terminés" -#: common/models.py:1938 +#: common/models.py:1993 msgid "Allow editing of purchase orders after they have been shipped or completed" msgstr "Autoriser la modification des bons de commande après avoir été expédiés ou complétés" -#: common/models.py:1944 +#: common/models.py:1999 msgid "Auto Complete Purchase Orders" -msgstr "" +msgstr "Achat automatique des commandes" -#: common/models.py:1946 +#: common/models.py:2001 msgid "Automatically mark purchase orders as complete when all line items are received" -msgstr "" +msgstr "Marquer automatiquement les bons de commande comme terminés lorsque tous les articles de la ligne sont reçus" -#: common/models.py:1953 +#: common/models.py:2008 msgid "Enable password forgot" msgstr "Activer les mots de passe oubliés" -#: common/models.py:1954 +#: common/models.py:2009 msgid "Enable password forgot function on the login pages" msgstr "Activer la fonction \"Mot de passe oublié\" sur les pages de connexion" -#: common/models.py:1959 +#: common/models.py:2014 msgid "Enable registration" msgstr "Activer les inscriptions" -#: common/models.py:1960 +#: common/models.py:2015 msgid "Enable self-registration for users on the login pages" msgstr "Activer l'auto-inscription pour les utilisateurs sur les pages de connexion" -#: common/models.py:1965 +#: common/models.py:2020 msgid "Enable SSO" msgstr "Activer le SSO" -#: common/models.py:1966 +#: common/models.py:2021 msgid "Enable SSO on the login pages" msgstr "Activer le SSO sur les pages de connexion" -#: common/models.py:1971 +#: common/models.py:2026 msgid "Enable SSO registration" msgstr "Activer l'inscription SSO" -#: common/models.py:1973 +#: common/models.py:2028 msgid "Enable self-registration via SSO for users on the login pages" msgstr "Activer l'auto-inscription via SSO pour les utilisateurs sur les pages de connexion" -#: common/models.py:1979 +#: common/models.py:2034 msgid "Enable SSO group sync" -msgstr "" +msgstr "Activer la synchronisation du groupe SSO" -#: common/models.py:1981 +#: common/models.py:2036 msgid "Enable synchronizing InvenTree groups with groups provided by the IdP" msgstr "" -#: common/models.py:1987 +#: common/models.py:2042 msgid "SSO group key" -msgstr "" +msgstr "Clé du groupe SSO" -#: common/models.py:1989 +#: common/models.py:2044 msgid "The name of the groups claim attribute provided by the IdP" msgstr "" -#: common/models.py:1995 +#: common/models.py:2050 msgid "SSO group map" -msgstr "" +msgstr "Carte de groupe SSO" -#: common/models.py:1997 +#: common/models.py:2052 msgid "A mapping from SSO groups to local InvenTree groups. If the local group does not exist, it will be created." msgstr "" -#: common/models.py:2003 +#: common/models.py:2058 msgid "Remove groups outside of SSO" msgstr "" -#: common/models.py:2005 +#: common/models.py:2060 msgid "Whether groups assigned to the user should be removed if they are not backend by the IdP. Disabling this setting might cause security issues" msgstr "" -#: common/models.py:2011 +#: common/models.py:2066 msgid "Email required" msgstr "Email requis" -#: common/models.py:2012 +#: common/models.py:2067 msgid "Require user to supply mail on signup" msgstr "Exiger que l'utilisateur fournisse un mail lors de l'inscription" -#: common/models.py:2017 +#: common/models.py:2072 msgid "Auto-fill SSO users" msgstr "Saisie automatique des utilisateurs SSO" -#: common/models.py:2019 +#: common/models.py:2074 msgid "Automatically fill out user-details from SSO account-data" msgstr "Remplir automatiquement les détails de l'utilisateur à partir des données de compte SSO" -#: common/models.py:2025 +#: common/models.py:2080 msgid "Mail twice" msgstr "Courriel en double" -#: common/models.py:2026 +#: common/models.py:2081 msgid "On signup ask users twice for their mail" msgstr "Lors de l'inscription, demandez deux fois aux utilisateurs leur mail" -#: common/models.py:2031 +#: common/models.py:2086 msgid "Password twice" msgstr "Mot de passe deux fois" -#: common/models.py:2032 +#: common/models.py:2087 msgid "On signup ask users twice for their password" msgstr "Lors de l'inscription, demandez deux fois aux utilisateurs leur mot de passe" -#: common/models.py:2037 +#: common/models.py:2092 msgid "Allowed domains" msgstr "Domaines autorisés" -#: common/models.py:2039 +#: common/models.py:2094 msgid "Restrict signup to certain domains (comma-separated, starting with @)" msgstr "" -#: common/models.py:2045 +#: common/models.py:2100 msgid "Group on signup" msgstr "Grouper sur inscription" -#: common/models.py:2047 +#: common/models.py:2102 msgid "Group to which new users are assigned on registration. If SSO group sync is enabled, this group is only set if no group can be assigned from the IdP." msgstr "" -#: common/models.py:2053 +#: common/models.py:2108 msgid "Enforce MFA" msgstr "Forcer l'authentification multifacteurs" -#: common/models.py:2054 +#: common/models.py:2109 msgid "Users must use multifactor security." msgstr "Les utilisateurs doivent utiliser l'authentification multifacteurs." -#: common/models.py:2059 +#: common/models.py:2114 msgid "Check plugins on startup" msgstr "Vérifier les plugins au démarrage" -#: common/models.py:2061 +#: common/models.py:2116 msgid "Check that all plugins are installed on startup - enable in container environments" msgstr "Vérifier que tous les plugins sont installés au démarrage - activer dans les environnements conteneurs" -#: common/models.py:2069 +#: common/models.py:2124 msgid "Check for plugin updates" -msgstr "" +msgstr "Vérifier les mises à jour des plugins" -#: common/models.py:2070 +#: common/models.py:2125 msgid "Enable periodic checks for updates to installed plugins" -msgstr "" +msgstr "Activer les vérifications périodiques pour les mises à jour des plugins installés" -#: common/models.py:2076 +#: common/models.py:2131 msgid "Enable URL integration" msgstr "Activer l'intégration d'URL" -#: common/models.py:2077 +#: common/models.py:2132 msgid "Enable plugins to add URL routes" msgstr "Autoriser les plugins à ajouter des chemins URL" -#: common/models.py:2083 +#: common/models.py:2138 msgid "Enable navigation integration" msgstr "Activer l'intégration de navigation" -#: common/models.py:2084 +#: common/models.py:2139 msgid "Enable plugins to integrate into navigation" msgstr "Activer les plugins à s'intégrer dans la navigation" -#: common/models.py:2090 +#: common/models.py:2145 msgid "Enable app integration" msgstr "Activer l'intégration de plugins" -#: common/models.py:2091 +#: common/models.py:2146 msgid "Enable plugins to add apps" msgstr "Activer l'intégration de plugin pour ajouter des apps" -#: common/models.py:2097 +#: common/models.py:2152 msgid "Enable schedule integration" msgstr "Activer l'intégration du planning" -#: common/models.py:2098 +#: common/models.py:2153 msgid "Enable plugins to run scheduled tasks" msgstr "Autoriser les plugins à éxécuter des tâches planifiées" -#: common/models.py:2104 +#: common/models.py:2159 msgid "Enable event integration" msgstr "Activer l'intégration des évènements" -#: common/models.py:2105 +#: common/models.py:2160 msgid "Enable plugins to respond to internal events" msgstr "Autoriser les plugins à répondre aux évènements internes" -#: common/models.py:2111 +#: common/models.py:2166 +msgid "Enable interface integration" +msgstr "" + +#: common/models.py:2167 +msgid "Enable plugins to integrate into the user interface" +msgstr "" + +#: common/models.py:2173 msgid "Enable project codes" msgstr "Activer les codes projet" -#: common/models.py:2112 +#: common/models.py:2174 msgid "Enable project codes for tracking projects" msgstr "" -#: common/models.py:2117 +#: common/models.py:2179 msgid "Stocktake Functionality" msgstr "Fonctionnalité d'inventaire" -#: common/models.py:2119 +#: common/models.py:2181 msgid "Enable stocktake functionality for recording stock levels and calculating stock value" msgstr "Activer la fonctionnalité d'inventaire pour enregistrer les niveaux de stock et le calcul de la valeur du stock" -#: common/models.py:2125 +#: common/models.py:2187 msgid "Exclude External Locations" -msgstr "" +msgstr "Exclure les localisations externes" -#: common/models.py:2127 +#: common/models.py:2189 msgid "Exclude stock items in external locations from stocktake calculations" msgstr "" -#: common/models.py:2133 +#: common/models.py:2195 msgid "Automatic Stocktake Period" msgstr "Période de l'inventaire automatique" -#: common/models.py:2135 +#: common/models.py:2197 msgid "Number of days between automatic stocktake recording (set to zero to disable)" msgstr "Nombre de jours entre l'enregistrement automatique des stocks (définir à zéro pour désactiver)" -#: common/models.py:2141 +#: common/models.py:2203 msgid "Report Deletion Interval" -msgstr "" +msgstr "Intervalle de suppression des tâches" -#: common/models.py:2143 +#: common/models.py:2205 msgid "Stocktake reports will be deleted after specified number of days" msgstr "Les rapports d'inventaire seront supprimés après le nombre de jours spécifié" -#: common/models.py:2150 +#: common/models.py:2212 msgid "Display Users full names" -msgstr "" +msgstr "Afficher les noms des utilisateurs" -#: common/models.py:2151 +#: common/models.py:2213 msgid "Display Users full names instead of usernames" msgstr "" -#: common/models.py:2156 +#: common/models.py:2218 msgid "Enable Test Station Data" -msgstr "" +msgstr "Activer les données de station de test" -#: common/models.py:2157 +#: common/models.py:2219 msgid "Enable test station data collection for test results" +msgstr "Activer la collecte des données de la station de test pour les résultats de test" + +#: common/models.py:2224 +msgid "Create Template on Upload" msgstr "" -#: common/models.py:2169 common/models.py:2549 -msgid "Settings key (must be unique - case insensitive" -msgstr "Clé du paramètre (doit être unique - insensible à la casse)" +#: common/models.py:2226 +msgid "Create a new test template when uploading test data which does not match an existing template" +msgstr "" -#: common/models.py:2212 +#: common/models.py:2279 msgid "Hide inactive parts" -msgstr "" +msgstr "Masquer les pièces inactives" -#: common/models.py:2214 +#: common/models.py:2281 msgid "Hide inactive parts in results displayed on the homepage" msgstr "" -#: common/models.py:2220 +#: common/models.py:2287 msgid "Show subscribed parts" msgstr "Afficher les composants suivis" -#: common/models.py:2221 +#: common/models.py:2288 msgid "Show subscribed parts on the homepage" msgstr "Afficher les composants suivis sur l'écran d'accueil" -#: common/models.py:2226 +#: common/models.py:2293 msgid "Show subscribed categories" msgstr "Afficher les catégories suivies" -#: common/models.py:2227 +#: common/models.py:2294 msgid "Show subscribed part categories on the homepage" msgstr "Afficher les catégories de pièces suivies sur la page d'accueil" -#: common/models.py:2232 +#: common/models.py:2299 msgid "Show latest parts" msgstr "Afficher les dernières pièces" -#: common/models.py:2233 +#: common/models.py:2300 msgid "Show latest parts on the homepage" msgstr "Afficher les derniers composants sur la page d'accueil" -#: common/models.py:2238 +#: common/models.py:2305 msgid "Show invalid BOMs" -msgstr "" +msgstr "Afficher les listes de matériaux non validées" -#: common/models.py:2239 +#: common/models.py:2306 msgid "Show BOMs that await validation on the homepage" msgstr "Afficher les listes de matériaux en attente de validation sur la page d'accueil" -#: common/models.py:2244 +#: common/models.py:2311 msgid "Show recent stock changes" msgstr "Afficher les dernières modifications du stock" -#: common/models.py:2245 +#: common/models.py:2312 msgid "Show recently changed stock items on the homepage" msgstr "Afficher les articles de stock récemment modifiés sur la page d'accueil" -#: common/models.py:2250 +#: common/models.py:2317 msgid "Show low stock" msgstr "Afficher le stock faible" -#: common/models.py:2251 +#: common/models.py:2318 msgid "Show low stock items on the homepage" msgstr "Afficher les articles en stock bas sur la page d'accueil" -#: common/models.py:2256 +#: common/models.py:2323 msgid "Show depleted stock" msgstr "Afficher le stock épuisé" -#: common/models.py:2257 +#: common/models.py:2324 msgid "Show depleted stock items on the homepage" msgstr "Afficher les stocks épuisés sur la page d'accueil" -#: common/models.py:2262 +#: common/models.py:2329 msgid "Show needed stock" msgstr "Afficher le stock nécessaire" -#: common/models.py:2263 +#: common/models.py:2330 msgid "Show stock items needed for builds on the homepage" msgstr "Afficher les pièces en stock nécessaires pour les assemblages sur la page d'accueil" -#: common/models.py:2268 +#: common/models.py:2335 msgid "Show expired stock" msgstr "Afficher le stock expiré" -#: common/models.py:2269 +#: common/models.py:2336 msgid "Show expired stock items on the homepage" msgstr "Afficher les pièces en stock expirées sur la page d'accueil" -#: common/models.py:2274 +#: common/models.py:2341 msgid "Show stale stock" msgstr "Afficher le stock périmé" -#: common/models.py:2275 +#: common/models.py:2342 msgid "Show stale stock items on the homepage" msgstr "Afficher les articles de stock périmés sur la page d'accueil" -#: common/models.py:2280 +#: common/models.py:2347 msgid "Show pending builds" msgstr "Afficher les constructions en attente" -#: common/models.py:2281 +#: common/models.py:2348 msgid "Show pending builds on the homepage" msgstr "Afficher les constructions en attente sur la page d'accueil" -#: common/models.py:2286 +#: common/models.py:2353 msgid "Show overdue builds" msgstr "Afficher les constructions en retard" -#: common/models.py:2287 +#: common/models.py:2354 msgid "Show overdue builds on the homepage" msgstr "Afficher les constructions en retard sur la page d'accueil" -#: common/models.py:2292 +#: common/models.py:2359 msgid "Show outstanding POs" msgstr "Afficher les commandes en suspens" -#: common/models.py:2293 +#: common/models.py:2360 msgid "Show outstanding POs on the homepage" msgstr "Afficher les commandes en suspens sur la page d'accueil" -#: common/models.py:2298 +#: common/models.py:2365 msgid "Show overdue POs" msgstr "Afficher les commandes en retard" -#: common/models.py:2299 +#: common/models.py:2366 msgid "Show overdue POs on the homepage" msgstr "Afficher les commandes en retard sur la page d'accueil" -#: common/models.py:2304 +#: common/models.py:2371 msgid "Show outstanding SOs" msgstr "Afficher les envois en suspens" -#: common/models.py:2305 +#: common/models.py:2372 msgid "Show outstanding SOs on the homepage" msgstr "Afficher les envois en suspens sur la page d'accueil" -#: common/models.py:2310 +#: common/models.py:2377 msgid "Show overdue SOs" msgstr "Afficher les envois en retard" -#: common/models.py:2311 +#: common/models.py:2378 msgid "Show overdue SOs on the homepage" msgstr "Afficher les envois en retard sur la page d'accueil" -#: common/models.py:2316 +#: common/models.py:2383 msgid "Show pending SO shipments" -msgstr "" +msgstr "Afficher les envois SO en attente" -#: common/models.py:2317 +#: common/models.py:2384 msgid "Show pending SO shipments on the homepage" msgstr "" -#: common/models.py:2322 +#: common/models.py:2389 msgid "Show News" msgstr "Afficher les nouvelles" -#: common/models.py:2323 +#: common/models.py:2390 msgid "Show news on the homepage" msgstr "Afficher les nouvelles sur la page d'accueil" -#: common/models.py:2328 +#: common/models.py:2395 msgid "Inline label display" msgstr "Affichage du libellé en ligne" -#: common/models.py:2330 +#: common/models.py:2397 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "Afficher les étiquettes PDF dans le navigateur, au lieu de les télécharger en tant que fichier" -#: common/models.py:2336 +#: common/models.py:2403 msgid "Default label printer" msgstr "Imprimante d'étiquettes par défaut" -#: common/models.py:2338 +#: common/models.py:2405 msgid "Configure which label printer should be selected by default" msgstr "Configurer quelle imprimante d'étiquette doit être sélectionnée par défaut" -#: common/models.py:2344 +#: common/models.py:2411 msgid "Inline report display" msgstr "Affichage du rapport en ligne" -#: common/models.py:2346 +#: common/models.py:2413 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "Afficher les rapports PDF dans le navigateur, au lieu de les télécharger en tant que fichier" -#: common/models.py:2352 +#: common/models.py:2419 msgid "Search Parts" msgstr "Rechercher de pièces" -#: common/models.py:2353 +#: common/models.py:2420 msgid "Display parts in search preview window" msgstr "Afficher les pièces dans la fenêtre d'aperçu de la recherche" -#: common/models.py:2358 +#: common/models.py:2425 msgid "Search Supplier Parts" msgstr "Recherche du fournisseur de pièces" -#: common/models.py:2359 +#: common/models.py:2426 msgid "Display supplier parts in search preview window" msgstr "Afficher les pièces du fournisseur dans la fenêtre de prévisualisation de la recherche" -#: common/models.py:2364 +#: common/models.py:2431 msgid "Search Manufacturer Parts" msgstr "Rechercher les pièces du fabricant" -#: common/models.py:2365 +#: common/models.py:2432 msgid "Display manufacturer parts in search preview window" msgstr "Afficher les pièces du fabricant dans la fenêtre de prévisualisation de recherche" -#: common/models.py:2370 +#: common/models.py:2437 msgid "Hide Inactive Parts" msgstr "Masquer les pièces inactives" -#: common/models.py:2371 +#: common/models.py:2438 msgid "Excluded inactive parts from search preview window" msgstr "Exclure les pièces inactives de la fenêtre de prévisualisation de recherche" -#: common/models.py:2376 +#: common/models.py:2443 msgid "Search Categories" msgstr "Rechercher des catégories" -#: common/models.py:2377 +#: common/models.py:2444 msgid "Display part categories in search preview window" msgstr "Afficher les catégories de pièces dans la fenêtre de prévisualisation de recherche" -#: common/models.py:2382 +#: common/models.py:2449 msgid "Search Stock" msgstr "Rechercher dans le stock" -#: common/models.py:2383 +#: common/models.py:2450 msgid "Display stock items in search preview window" msgstr "Afficher les pièces en stock dans la fenêtre d'aperçu de la recherche" -#: common/models.py:2388 +#: common/models.py:2455 msgid "Hide Unavailable Stock Items" msgstr "Cacher les pièces indisponibles" -#: common/models.py:2390 +#: common/models.py:2457 msgid "Exclude stock items which are not available from the search preview window" msgstr "Exclure les articles en stock qui ne sont pas disponibles de la fenêtre de prévisualisation de recherche" -#: common/models.py:2396 +#: common/models.py:2463 msgid "Search Locations" msgstr "Chercher des Emplacements" -#: common/models.py:2397 +#: common/models.py:2464 msgid "Display stock locations in search preview window" msgstr "Afficher les emplacements dans la fenêtre d'aperçu de la recherche" -#: common/models.py:2402 +#: common/models.py:2469 msgid "Search Companies" msgstr "Rechercher les entreprises" -#: common/models.py:2403 +#: common/models.py:2470 msgid "Display companies in search preview window" msgstr "Afficher les entreprises dans la fenêtre de prévisualisation de recherche" -#: common/models.py:2408 +#: common/models.py:2475 msgid "Search Build Orders" msgstr "Rechercher les commandes de construction" -#: common/models.py:2409 +#: common/models.py:2476 msgid "Display build orders in search preview window" msgstr "Afficher les commandes de construction dans la fenêtre de prévisualisation de recherche" -#: common/models.py:2414 +#: common/models.py:2481 msgid "Search Purchase Orders" msgstr "Rechercher des bons de commande" -#: common/models.py:2415 +#: common/models.py:2482 msgid "Display purchase orders in search preview window" msgstr "Afficher les bons de commande dans la fenêtre de prévisualisation de recherche" -#: common/models.py:2420 +#: common/models.py:2487 msgid "Exclude Inactive Purchase Orders" msgstr "Exclure les bons de commande inactifs" -#: common/models.py:2422 +#: common/models.py:2489 msgid "Exclude inactive purchase orders from search preview window" msgstr "Exclure les commandes d’achat inactives de la fenêtre de prévisualisation de recherche" -#: common/models.py:2428 +#: common/models.py:2495 msgid "Search Sales Orders" msgstr "Rechercher les bons de commande" -#: common/models.py:2429 +#: common/models.py:2496 msgid "Display sales orders in search preview window" msgstr "Afficher les bons de commande dans la fenêtre de prévisualisation de la recherche" -#: common/models.py:2434 +#: common/models.py:2501 msgid "Exclude Inactive Sales Orders" msgstr "Exclure les bons de commande inactives" -#: common/models.py:2436 +#: common/models.py:2503 msgid "Exclude inactive sales orders from search preview window" msgstr "Exclure les bons de commande inactifs de la fenêtre de prévisualisation de recherche" -#: common/models.py:2442 +#: common/models.py:2509 msgid "Search Return Orders" msgstr "Rechercher les commandes retournées" -#: common/models.py:2443 +#: common/models.py:2510 msgid "Display return orders in search preview window" msgstr "" -#: common/models.py:2448 +#: common/models.py:2515 msgid "Exclude Inactive Return Orders" msgstr "" -#: common/models.py:2450 +#: common/models.py:2517 msgid "Exclude inactive return orders from search preview window" msgstr "" -#: common/models.py:2456 +#: common/models.py:2523 msgid "Search Preview Results" msgstr "Résultats de l'aperçu de la recherche" -#: common/models.py:2458 +#: common/models.py:2525 msgid "Number of results to show in each section of the search preview window" msgstr "Nombre de résultats à afficher dans chaque section de la fenêtre de prévisualisation de recherche" -#: common/models.py:2464 +#: common/models.py:2531 msgid "Regex Search" msgstr "Recherche Regex" -#: common/models.py:2465 +#: common/models.py:2532 msgid "Enable regular expressions in search queries" msgstr "" -#: common/models.py:2470 +#: common/models.py:2537 msgid "Whole Word Search" -msgstr "" +msgstr "Recherche de mot complet" -#: common/models.py:2471 +#: common/models.py:2538 msgid "Search queries return results for whole word matches" msgstr "" -#: common/models.py:2476 +#: common/models.py:2543 msgid "Show Quantity in Forms" msgstr "Afficher la quantité dans les formulaires" -#: common/models.py:2477 +#: common/models.py:2544 msgid "Display available part quantity in some forms" msgstr "Afficher la quantité disponible dans certains formulaires" -#: common/models.py:2482 +#: common/models.py:2549 msgid "Escape Key Closes Forms" msgstr "La touche Echap ferme les formulaires" -#: common/models.py:2483 +#: common/models.py:2550 msgid "Use the escape key to close modal forms" msgstr "Utilisez la touche Echap pour fermer les formulaires modaux" -#: common/models.py:2488 +#: common/models.py:2555 msgid "Fixed Navbar" msgstr "Barre de navigation fixe" -#: common/models.py:2489 +#: common/models.py:2556 msgid "The navbar position is fixed to the top of the screen" msgstr "La position de la barre de navigation est fixée en haut de l'écran" -#: common/models.py:2494 +#: common/models.py:2561 msgid "Date Format" msgstr "Format de date" -#: common/models.py:2495 +#: common/models.py:2562 msgid "Preferred format for displaying dates" msgstr "Format préféré pour l'affichage des dates" -#: common/models.py:2508 part/templates/part/detail.html:41 +#: common/models.py:2575 part/templates/part/detail.html:41 msgid "Part Scheduling" msgstr "Planification des pièces" -#: common/models.py:2509 +#: common/models.py:2576 msgid "Display part scheduling information" msgstr "Afficher les informations de planification des pièces" -#: common/models.py:2514 part/templates/part/detail.html:62 +#: common/models.py:2581 part/templates/part/detail.html:62 msgid "Part Stocktake" msgstr "Inventaire des pièces" -#: common/models.py:2516 +#: common/models.py:2583 msgid "Display part stocktake information (if stocktake functionality is enabled)" msgstr "" -#: common/models.py:2522 +#: common/models.py:2589 msgid "Table String Length" msgstr "Longueur de la chaîne dans les Tableau" -#: common/models.py:2524 +#: common/models.py:2591 msgid "Maximum length limit for strings displayed in table views" msgstr "Longueur maximale des chaînes affichées dans les tableaux" -#: common/models.py:2530 +#: common/models.py:2597 msgid "Receive error reports" -msgstr "" +msgstr "Recevoir des rapports d'erreur" -#: common/models.py:2531 +#: common/models.py:2598 msgid "Receive notifications for system errors" msgstr "" -#: common/models.py:2536 +#: common/models.py:2603 msgid "Last used printing machines" msgstr "" -#: common/models.py:2537 +#: common/models.py:2604 msgid "Save the last used printing machines for a user" msgstr "" -#: common/models.py:2557 common/models.py:2558 common/models.py:2715 -#: common/models.py:2716 common/models.py:2961 common/models.py:2962 -#: common/models.py:3288 common/models.py:3289 importer/models.py:88 -#: part/models.py:3307 part/models.py:3394 part/models.py:3468 -#: part/models.py:3496 plugin/models.py:274 plugin/models.py:275 -#: report/templates/report/inventree_test_report.html:105 -#: templates/js/translated/stock.js:3120 users/models.py:111 +#: common/models.py:2621 common/models.py:2622 common/models.py:2779 +#: common/models.py:2780 common/models.py:3025 common/models.py:3026 +#: common/models.py:3349 common/models.py:3350 common/models.py:3534 +#: importer/models.py:89 part/models.py:3358 part/models.py:3445 +#: part/models.py:3519 part/models.py:3547 plugin/models.py:313 +#: plugin/models.py:314 report/templates/report/inventree_test_report.html:105 +#: templates/js/translated/stock.js:3121 users/models.py:111 msgid "User" msgstr "Utilisateur" -#: common/models.py:2580 +#: common/models.py:2644 msgid "Price break quantity" msgstr "" -#: common/models.py:2587 company/serializers.py:513 order/admin.py:42 -#: order/models.py:1430 order/models.py:2417 -#: templates/js/translated/company.js:1823 templates/js/translated/part.js:1892 +#: common/models.py:2651 company/serializers.py:524 order/admin.py:42 +#: order/models.py:1447 order/models.py:2456 +#: templates/js/translated/company.js:1824 templates/js/translated/part.js:1892 #: templates/js/translated/pricing.js:621 #: templates/js/translated/return_order.js:739 msgid "Price" msgstr "Prix" -#: common/models.py:2588 +#: common/models.py:2652 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:2692 common/models.py:2877 +#: common/models.py:2756 common/models.py:2941 msgid "Endpoint" msgstr "" -#: common/models.py:2693 +#: common/models.py:2757 msgid "Endpoint at which this webhook is received" msgstr "" -#: common/models.py:2703 +#: common/models.py:2767 msgid "Name for this webhook" msgstr "" -#: common/models.py:2707 +#: common/models.py:2771 msgid "Is this webhook active" msgstr "Ce webhook (lien de rappel HTTP) est-il actif" -#: common/models.py:2723 users/models.py:159 +#: common/models.py:2787 users/models.py:159 msgid "Token" msgstr "Jeton" -#: common/models.py:2724 +#: common/models.py:2788 msgid "Token for access" msgstr "Jeton d'accès" -#: common/models.py:2732 +#: common/models.py:2796 msgid "Secret" msgstr "Confidentiel" -#: common/models.py:2733 +#: common/models.py:2797 msgid "Shared secret for HMAC" msgstr "" -#: common/models.py:2841 +#: common/models.py:2905 msgid "Message ID" msgstr "ID message" -#: common/models.py:2842 +#: common/models.py:2906 msgid "Unique identifier for this message" msgstr "Identifiant unique pour ce message" -#: common/models.py:2850 +#: common/models.py:2914 msgid "Host" msgstr "Hôte" -#: common/models.py:2851 +#: common/models.py:2915 msgid "Host from which this message was received" msgstr "Hôte à partir duquel ce message a été reçu" -#: common/models.py:2859 +#: common/models.py:2923 msgid "Header" msgstr "Entête" -#: common/models.py:2860 +#: common/models.py:2924 msgid "Header of this message" msgstr "En-tête de ce message" -#: common/models.py:2867 +#: common/models.py:2931 msgid "Body" msgstr "Corps" -#: common/models.py:2868 +#: common/models.py:2932 msgid "Body of this message" msgstr "Corps de ce message" -#: common/models.py:2878 +#: common/models.py:2942 msgid "Endpoint on which this message was received" msgstr "Endpoint à partir duquel ce message a été reçu" -#: common/models.py:2883 +#: common/models.py:2947 msgid "Worked on" msgstr "" -#: common/models.py:2884 +#: common/models.py:2948 msgid "Was the work on this message finished?" msgstr "Le travail sur ce message est-il terminé ?" -#: common/models.py:3010 +#: common/models.py:3074 msgid "Id" msgstr "Id" -#: common/models.py:3012 templates/js/translated/company.js:965 -#: templates/js/translated/news.js:44 +#: common/models.py:3076 part/serializers.py:271 +#: templates/js/translated/company.js:966 templates/js/translated/news.js:44 msgid "Title" msgstr "Titre" -#: common/models.py:3014 common/models.py:3272 company/models.py:149 -#: company/models.py:446 company/models.py:512 company/models.py:818 -#: order/models.py:302 order/models.py:1385 order/models.py:1817 -#: part/admin.py:55 part/models.py:1057 +#: common/models.py:3078 common/models.py:3333 company/models.py:146 +#: company/models.py:443 company/models.py:509 company/models.py:815 +#: order/models.py:309 order/models.py:1402 order/models.py:1846 +#: part/admin.py:55 part/models.py:1118 #: part/templates/part/part_scheduling.html:11 #: report/templates/report/inventree_build_order_report.html:164 -#: stock/admin.py:229 templates/js/translated/company.js:1319 -#: templates/js/translated/company.js:1673 templates/js/translated/order.js:376 +#: stock/admin.py:230 templates/js/translated/company.js:1320 +#: templates/js/translated/company.js:1674 templates/js/translated/order.js:376 #: templates/js/translated/part.js:2475 -#: templates/js/translated/purchase_order.js:2110 -#: templates/js/translated/purchase_order.js:2274 +#: templates/js/translated/purchase_order.js:2094 +#: templates/js/translated/purchase_order.js:2258 #: templates/js/translated/return_order.js:778 -#: templates/js/translated/sales_order.js:1092 -#: templates/js/translated/sales_order.js:2023 +#: templates/js/translated/sales_order.js:1058 +#: templates/js/translated/sales_order.js:2004 msgid "Link" msgstr "Lien" -#: common/models.py:3016 templates/js/translated/news.js:60 +#: common/models.py:3080 templates/js/translated/news.js:60 msgid "Published" msgstr "Publié" -#: common/models.py:3018 templates/InvenTree/settings/plugin_settings.html:32 +#: common/models.py:3082 templates/InvenTree/settings/plugin_settings.html:32 #: templates/js/translated/news.js:56 templates/js/translated/plugin.js:103 msgid "Author" msgstr "Auteur" -#: common/models.py:3020 templates/js/translated/news.js:52 +#: common/models.py:3084 templates/js/translated/news.js:52 msgid "Summary" msgstr "Résumé" -#: common/models.py:3023 +#: common/models.py:3087 msgid "Read" msgstr "Lu" -#: common/models.py:3023 +#: common/models.py:3087 msgid "Was this news item read?" msgstr "Cette nouvelle a-t-elle été lue ?" -#: common/models.py:3040 company/models.py:159 part/models.py:1067 +#: common/models.py:3104 company/models.py:156 part/models.py:1128 #: report/templates/report/inventree_bill_of_materials_report.html:126 #: report/templates/report/inventree_bill_of_materials_report.html:148 #: report/templates/report/inventree_return_order_report.html:35 -#: stock/templates/stock/item_base.html:133 templates/503.html:31 +#: stock/templates/stock/item_base.html:130 templates/503.html:31 #: templates/hover_image.html:7 templates/hover_image.html:9 #: templates/modals.html:6 msgid "Image" msgstr "Image" -#: common/models.py:3040 +#: common/models.py:3104 msgid "Image file" msgstr "Fichier image" -#: common/models.py:3052 common/models.py:3256 +#: common/models.py:3116 common/models.py:3317 msgid "Target model type for this image" msgstr "" -#: common/models.py:3056 +#: common/models.py:3120 msgid "Target model ID for this image" msgstr "" -#: common/models.py:3078 +#: common/models.py:3142 msgid "Custom Unit" msgstr "" -#: common/models.py:3099 +#: common/models.py:3160 msgid "Unit symbol must be unique" msgstr "" -#: common/models.py:3114 +#: common/models.py:3175 msgid "Unit name must be a valid identifier" msgstr "" -#: common/models.py:3133 +#: common/models.py:3194 msgid "Unit name" msgstr "" -#: common/models.py:3140 templates/InvenTree/settings/settings_staff_js.html:75 +#: common/models.py:3201 templates/InvenTree/settings/settings_staff_js.html:75 msgid "Symbol" msgstr "Symbole" -#: common/models.py:3141 +#: common/models.py:3202 msgid "Optional unit symbol" msgstr "Symbole d'unité facultatif" -#: common/models.py:3147 templates/InvenTree/settings/settings_staff_js.html:71 +#: common/models.py:3208 templates/InvenTree/settings/settings_staff_js.html:71 msgid "Definition" msgstr "Définition" -#: common/models.py:3148 +#: common/models.py:3209 msgid "Unit definition" msgstr "Définition de l'unité" -#: common/models.py:3206 common/models.py:3263 stock/models.py:2558 -#: templates/js/translated/attachment.js:119 +#: common/models.py:3267 common/models.py:3324 stock/models.py:2674 +#: stock/serializers.py:244 templates/js/translated/attachment.js:119 #: templates/js/translated/attachment.js:345 msgid "Attachment" msgstr "Pièce jointe" -#: common/models.py:3218 +#: common/models.py:3279 msgid "Missing file" msgstr "Fichier manquant" -#: common/models.py:3219 +#: common/models.py:3280 msgid "Missing external link" msgstr "Lien externe manquant" -#: common/models.py:3264 +#: common/models.py:3325 msgid "Select file to attach" msgstr "Sélectionnez un fichier à joindre" -#: common/models.py:3279 templates/js/translated/attachment.js:120 +#: common/models.py:3340 templates/js/translated/attachment.js:120 #: templates/js/translated/attachment.js:360 msgid "Comment" msgstr "Commentaire" -#: common/models.py:3280 +#: common/models.py:3341 msgid "Attachment comment" msgstr "" -#: common/models.py:3296 +#: common/models.py:3357 msgid "Upload date" msgstr "" -#: common/models.py:3297 +#: common/models.py:3358 msgid "Date the file was uploaded" msgstr "" -#: common/models.py:3301 +#: common/models.py:3362 msgid "File size" msgstr "" -#: common/models.py:3301 +#: common/models.py:3362 msgid "File size in bytes" msgstr "" -#: common/models.py:3339 common/serializers.py:562 +#: common/models.py:3400 common/serializers.py:609 msgid "Invalid model type specified for attachment" msgstr "" -#: common/notifications.py:314 +#: common/models.py:3409 plugin/models.py:43 users/models.py:100 +msgid "Key" +msgstr "" + +#: common/models.py:3410 +msgid "Value that will be saved in the models database" +msgstr "" + +#: common/models.py:3413 +msgid "Name of the state" +msgstr "" + +#: common/models.py:3417 part/serializers.py:273 +msgid "Label" +msgstr "Étiquette" + +#: common/models.py:3418 +msgid "Label that will be displayed in the frontend" +msgstr "" + +#: common/models.py:3424 +msgid "Color" +msgstr "" + +#: common/models.py:3425 +msgid "Color that will be displayed in the frontend" +msgstr "" + +#: common/models.py:3428 +msgid "Logical Key" +msgstr "" + +#: common/models.py:3430 +msgid "State logical key that is equal to this custom state in business logic" +msgstr "" + +#: common/models.py:3438 part/serializers.py:275 +msgid "Model" +msgstr "" + +#: common/models.py:3439 +msgid "Model this state is associated with" +msgstr "" + +#: common/models.py:3443 +msgid "Reference Status Set" +msgstr "" + +#: common/models.py:3444 +msgid "Status set that is extended with this custom state" +msgstr "" + +#: common/models.py:3450 +msgid "Custom State" +msgstr "" + +#: common/models.py:3451 +msgid "Custom States" +msgstr "" + +#: common/models.py:3466 +msgid "Model must be selected" +msgstr "" + +#: common/models.py:3469 +msgid "Key must be selected" +msgstr "" + +#: common/models.py:3472 +msgid "Logical key must be selected" +msgstr "" + +#: common/models.py:3476 +msgid "Key must be different from logical key" +msgstr "" + +#: common/models.py:3480 +msgid "Reference status must be selected" +msgstr "" + +#: common/models.py:3492 +msgid "Reference status set not found" +msgstr "" + +#: common/models.py:3498 +msgid "Key must be different from the logical keys of the reference status" +msgstr "" + +#: common/models.py:3504 +msgid "Logical key must be in the logical keys of the reference status" +msgstr "" + +#: common/models.py:3519 +msgid "Barcode Scan" +msgstr "Analyse du code-barres" + +#: common/models.py:3523 importer/models.py:512 part/models.py:4009 +msgid "Data" +msgstr "Données" + +#: common/models.py:3524 +msgid "Barcode data" +msgstr "Données du code-barres" + +#: common/models.py:3535 +msgid "User who scanned the barcode" +msgstr "Utilisateur qui a scanné le code-barres" + +#: common/models.py:3540 importer/models.py:60 +msgid "Timestamp" +msgstr "" + +#: common/models.py:3541 +msgid "Date and time of the barcode scan" +msgstr "Date et heure du scan de code-barres" + +#: common/models.py:3547 +msgid "URL endpoint which processed the barcode" +msgstr "" + +#: common/models.py:3554 order/models.py:1437 plugin/serializers.py:89 +msgid "Context" +msgstr "Contexte" + +#: common/models.py:3555 +msgid "Context data for the barcode scan" +msgstr "" + +#: common/models.py:3562 +msgid "Response" +msgstr "Réponse" + +#: common/models.py:3563 +msgid "Response data from the barcode scan" +msgstr "" + +#: common/models.py:3569 report/templates/report/inventree_test_report.html:103 +#: stock/models.py:2660 +msgid "Result" +msgstr "Résultat" + +#: common/models.py:3570 +msgid "Was the barcode scan successful?" +msgstr "" + +#: common/notifications.py:328 #, python-brace-format msgid "New {verbose_name}" msgstr "Nouveau {verbose_name}" -#: common/notifications.py:316 +#: common/notifications.py:330 msgid "A new order has been created and assigned to you" msgstr "Une nouvelle commande a été créée et vous a été assignée" -#: common/notifications.py:322 +#: common/notifications.py:336 #, python-brace-format msgid "{verbose_name} canceled" msgstr "{verbose_name} annulé" -#: common/notifications.py:324 +#: common/notifications.py:338 msgid "A order that is assigned to you was canceled" msgstr "Une commande qui vous est assignée a été annulée" -#: common/notifications.py:330 common/notifications.py:337 order/api.py:462 +#: common/notifications.py:344 common/notifications.py:351 order/api.py:440 msgid "Items Received" msgstr "Articles reçus" -#: common/notifications.py:332 +#: common/notifications.py:346 msgid "Items have been received against a purchase order" msgstr "Des articles d'un bon de commande ont été reçus" -#: common/notifications.py:339 +#: common/notifications.py:353 msgid "Items have been received against a return order" msgstr "" -#: common/notifications.py:457 +#: common/notifications.py:475 msgid "Error raised by plugin" msgstr "Erreur déclenchée par le plugin" -#: common/serializers.py:375 +#: common/serializers.py:423 msgid "Is Running" msgstr "En cours d'exécution" -#: common/serializers.py:381 +#: common/serializers.py:429 msgid "Pending Tasks" msgstr "Tâches en attente" -#: common/serializers.py:387 +#: common/serializers.py:435 msgid "Scheduled Tasks" msgstr "Tâches planifiées" -#: common/serializers.py:393 +#: common/serializers.py:441 msgid "Failed Tasks" msgstr "Tâches échouées" -#: common/serializers.py:408 +#: common/serializers.py:456 msgid "Task ID" msgstr "ID de la tâche" -#: common/serializers.py:408 +#: common/serializers.py:456 msgid "Unique task ID" msgstr "ID unique de la tâche" -#: common/serializers.py:410 +#: common/serializers.py:458 msgid "Lock" msgstr "Verrouillé" -#: common/serializers.py:410 +#: common/serializers.py:458 msgid "Lock time" msgstr "Heure verrouillé" -#: common/serializers.py:412 +#: common/serializers.py:460 msgid "Task name" msgstr "Nom de la tâche" -#: common/serializers.py:414 +#: common/serializers.py:462 msgid "Function" msgstr "Fonction" -#: common/serializers.py:414 +#: common/serializers.py:462 msgid "Function name" msgstr "Nom de la fonction" -#: common/serializers.py:416 +#: common/serializers.py:464 msgid "Arguments" msgstr "Arguments" -#: common/serializers.py:416 +#: common/serializers.py:464 msgid "Task arguments" msgstr "Arguments tâche" -#: common/serializers.py:419 +#: common/serializers.py:467 msgid "Keyword Arguments" msgstr "Mots-clés Arguments" -#: common/serializers.py:419 +#: common/serializers.py:467 msgid "Task keyword arguments" msgstr "Mots-clés arguments tâche" -#: common/serializers.py:529 +#: common/serializers.py:577 msgid "Filename" msgstr "Nom du fichier" -#: common/serializers.py:536 report/api.py:100 report/serializers.py:53 +#: common/serializers.py:584 report/api.py:100 report/serializers.py:54 msgid "Model Type" msgstr "" -#: common/serializers.py:565 +#: common/serializers.py:612 msgid "User does not have permission to create or edit attachments for this model" msgstr "" @@ -4116,15 +4295,15 @@ msgstr "Champs Correspondants" msgid "Match Items" msgstr "Articles correspondants" -#: common/views.py:401 +#: common/views.py:397 msgid "Fields matching failed" msgstr "Les champs correspondants ont échoué" -#: common/views.py:464 +#: common/views.py:460 msgid "Parts imported" msgstr "Pièces importées" -#: common/views.py:494 order/templates/order/order_wizard/match_fields.html:27 +#: common/views.py:490 order/templates/order/order_wizard/match_fields.html:27 #: order/templates/order/order_wizard/match_parts.html:19 #: order/templates/order/order_wizard/po_upload.html:49 #: part/templates/part/import_wizard/match_fields.html:27 @@ -4155,429 +4334,429 @@ msgstr "La pièce interne est active" msgid "Supplier is Active" msgstr "Le fournisseur est actif" -#: company/models.py:100 company/models.py:371 +#: company/models.py:97 company/models.py:368 #: company/templates/company/company_base.html:8 #: company/templates/company/company_base.html:12 stock/api.py:812 -#: templates/InvenTree/search.html:178 templates/js/translated/company.js:496 +#: templates/InvenTree/search.html:178 templates/js/translated/company.js:497 msgid "Company" msgstr "Société" -#: company/models.py:101 company/views.py:51 +#: company/models.py:98 company/views.py:51 #: templates/js/translated/search.js:192 msgid "Companies" msgstr "Entreprises" -#: company/models.py:117 +#: company/models.py:114 msgid "Company description" msgstr "Description de la société" -#: company/models.py:118 +#: company/models.py:115 msgid "Description of the company" msgstr "Description de la société" -#: company/models.py:123 company/templates/company/company_base.html:106 +#: company/models.py:120 company/templates/company/company_base.html:106 #: templates/InvenTree/settings/plugin_settings.html:54 -#: templates/js/translated/company.js:532 +#: templates/js/translated/company.js:533 msgid "Website" msgstr "Site web" -#: company/models.py:123 +#: company/models.py:120 msgid "Company website URL" msgstr "Site Web de la société" -#: company/models.py:128 +#: company/models.py:125 msgid "Phone number" msgstr "Numéro de téléphone" -#: company/models.py:130 +#: company/models.py:127 msgid "Contact phone number" msgstr "Numéro de téléphone de contact" -#: company/models.py:137 +#: company/models.py:134 msgid "Contact email address" msgstr "Adresse e-mail de contact" -#: company/models.py:142 company/models.py:275 -#: company/templates/company/company_base.html:145 order/models.py:342 -#: order/templates/order/order_base.html:208 -#: order/templates/order/return_order_base.html:177 -#: order/templates/order/sales_order_base.html:221 +#: company/models.py:139 company/models.py:272 +#: company/templates/company/company_base.html:145 order/models.py:349 +#: order/templates/order/order_base.html:217 +#: order/templates/order/return_order_base.html:178 +#: order/templates/order/sales_order_base.html:222 msgid "Contact" msgstr "Contact" -#: company/models.py:144 +#: company/models.py:141 msgid "Point of contact" msgstr "Point de contact" -#: company/models.py:150 +#: company/models.py:147 msgid "Link to external company information" msgstr "Lien externe vers les informations de l'entreprise" -#: company/models.py:163 +#: company/models.py:160 msgid "Is this company active?" msgstr "Cette entreprise est-elle active ?" -#: company/models.py:168 +#: company/models.py:165 msgid "Is customer" msgstr "" -#: company/models.py:169 +#: company/models.py:166 msgid "Do you sell items to this company?" msgstr "Vendez-vous des objets à cette entreprise?" -#: company/models.py:174 +#: company/models.py:171 msgid "Is supplier" msgstr "" -#: company/models.py:175 +#: company/models.py:172 msgid "Do you purchase items from this company?" msgstr "Est-ce que vous achetez des articles à cette entreprise?" -#: company/models.py:180 +#: company/models.py:177 msgid "Is manufacturer" msgstr "" -#: company/models.py:181 +#: company/models.py:178 msgid "Does this company manufacture parts?" msgstr "Cette entreprise fabrique-t-elle des pièces?" -#: company/models.py:189 +#: company/models.py:186 msgid "Default currency used for this company" msgstr "Devise par défaut utilisée pour cette entreprise" -#: company/models.py:314 company/templates/company/company_base.html:124 -#: order/models.py:352 order/templates/order/order_base.html:215 -#: order/templates/order/return_order_base.html:184 -#: order/templates/order/sales_order_base.html:228 +#: company/models.py:311 company/templates/company/company_base.html:124 +#: order/models.py:359 order/templates/order/order_base.html:224 +#: order/templates/order/return_order_base.html:185 +#: order/templates/order/sales_order_base.html:229 msgid "Address" msgstr "Adresse" -#: company/models.py:315 company/templates/company/sidebar.html:35 +#: company/models.py:312 company/templates/company/sidebar.html:35 msgid "Addresses" msgstr "Adresses" -#: company/models.py:372 +#: company/models.py:369 msgid "Select company" msgstr "Sélectionner une entreprise" -#: company/models.py:377 +#: company/models.py:374 msgid "Address title" msgstr "Intitulé de l'adresse" -#: company/models.py:378 +#: company/models.py:375 msgid "Title describing the address entry" msgstr "Titre décrivant la saisie de l'adresse" -#: company/models.py:384 +#: company/models.py:381 msgid "Primary address" msgstr "Adresse principale" -#: company/models.py:385 +#: company/models.py:382 msgid "Set as primary address" msgstr "Sélectionner comme adresse principale" -#: company/models.py:390 templates/js/translated/company.js:914 -#: templates/js/translated/company.js:971 +#: company/models.py:387 templates/js/translated/company.js:915 +#: templates/js/translated/company.js:972 msgid "Line 1" msgstr "Ligne 1" -#: company/models.py:391 +#: company/models.py:388 msgid "Address line 1" msgstr "Adresse" -#: company/models.py:397 templates/js/translated/company.js:915 -#: templates/js/translated/company.js:977 +#: company/models.py:394 templates/js/translated/company.js:916 +#: templates/js/translated/company.js:978 msgid "Line 2" msgstr "Ligne 2" -#: company/models.py:398 +#: company/models.py:395 msgid "Address line 2" msgstr "Seconde ligne d'adresse" -#: company/models.py:404 company/models.py:405 -#: templates/js/translated/company.js:983 +#: company/models.py:401 company/models.py:402 +#: templates/js/translated/company.js:984 msgid "Postal code" msgstr "Code postal" -#: company/models.py:411 +#: company/models.py:408 msgid "City/Region" msgstr "Ville / Région" -#: company/models.py:412 +#: company/models.py:409 msgid "Postal code city/region" msgstr "Code postal Ville / Région" -#: company/models.py:418 +#: company/models.py:415 msgid "State/Province" msgstr "État / Province" -#: company/models.py:419 +#: company/models.py:416 msgid "State or province" msgstr "État ou province" -#: company/models.py:425 templates/js/translated/company.js:1001 +#: company/models.py:422 templates/js/translated/company.js:1002 msgid "Country" msgstr "Pays" -#: company/models.py:426 +#: company/models.py:423 msgid "Address country" msgstr "Pays" -#: company/models.py:432 +#: company/models.py:429 msgid "Courier shipping notes" msgstr "Notes du livreur" -#: company/models.py:433 +#: company/models.py:430 msgid "Notes for shipping courier" msgstr "Instructions pour le livreur" -#: company/models.py:439 +#: company/models.py:436 msgid "Internal shipping notes" msgstr "Notes pour la livraison interne" -#: company/models.py:440 +#: company/models.py:437 msgid "Shipping notes for internal use" msgstr "Notes internes pour la livraison" -#: company/models.py:447 +#: company/models.py:444 msgid "Link to address information (external)" msgstr "Lien vers les informations de l'adresse (externe)" -#: company/models.py:470 company/models.py:587 company/models.py:811 +#: company/models.py:467 company/models.py:584 company/models.py:808 #: company/templates/company/manufacturer_part.html:7 #: company/templates/company/manufacturer_part.html:24 -#: stock/templates/stock/item_base.html:217 +#: stock/templates/stock/item_base.html:214 msgid "Manufacturer Part" msgstr "Pièces du fabricant" -#: company/models.py:487 company/models.py:779 stock/models.py:787 -#: stock/serializers.py:445 stock/templates/stock/item_base.html:142 +#: company/models.py:484 company/models.py:776 stock/models.py:864 +#: stock/serializers.py:455 stock/templates/stock/item_base.html:139 #: templates/js/translated/bom.js:622 msgid "Base Part" msgstr "" -#: company/models.py:489 company/models.py:781 +#: company/models.py:486 company/models.py:778 msgid "Select part" msgstr "" -#: company/models.py:498 company/templates/company/company_base.html:82 +#: company/models.py:495 company/templates/company/company_base.html:82 #: company/templates/company/manufacturer_part.html:90 -#: company/templates/company/supplier_part.html:145 part/serializers.py:554 -#: stock/templates/stock/item_base.html:207 -#: templates/js/translated/company.js:507 -#: templates/js/translated/company.js:1118 -#: templates/js/translated/company.js:1296 -#: templates/js/translated/company.js:1611 +#: company/templates/company/supplier_part.html:146 part/serializers.py:598 +#: stock/templates/stock/item_base.html:204 +#: templates/js/translated/company.js:508 +#: templates/js/translated/company.js:1119 +#: templates/js/translated/company.js:1297 +#: templates/js/translated/company.js:1612 #: templates/js/translated/table_filters.js:812 msgid "Manufacturer" msgstr "Fabricant" -#: company/models.py:499 +#: company/models.py:496 msgid "Select manufacturer" msgstr "Sélectionner un fabricant" -#: company/models.py:505 company/templates/company/manufacturer_part.html:101 -#: company/templates/company/supplier_part.html:153 order/serializers.py:556 -#: part/serializers.py:564 templates/js/translated/company.js:351 -#: templates/js/translated/company.js:1117 -#: templates/js/translated/company.js:1312 -#: templates/js/translated/company.js:1630 templates/js/translated/part.js:1807 -#: templates/js/translated/purchase_order.js:1921 -#: templates/js/translated/purchase_order.js:2123 +#: company/models.py:502 company/templates/company/manufacturer_part.html:101 +#: company/templates/company/supplier_part.html:154 order/serializers.py:641 +#: part/serializers.py:608 templates/js/translated/company.js:352 +#: templates/js/translated/company.js:1118 +#: templates/js/translated/company.js:1313 +#: templates/js/translated/company.js:1631 templates/js/translated/part.js:1807 +#: templates/js/translated/purchase_order.js:1905 +#: templates/js/translated/purchase_order.js:2107 msgid "MPN" msgstr "" -#: company/models.py:513 +#: company/models.py:510 msgid "URL for external manufacturer part link" msgstr "" -#: company/models.py:522 +#: company/models.py:519 msgid "Manufacturer part description" msgstr "" -#: company/models.py:575 +#: company/models.py:572 msgid "Manufacturer Part Parameter" msgstr "" -#: company/models.py:594 +#: company/models.py:591 msgid "Parameter name" msgstr "Nom du paramètre" -#: company/models.py:600 report/templates/report/inventree_test_report.html:104 -#: stock/models.py:2550 templates/js/translated/company.js:1166 -#: templates/js/translated/company.js:1419 templates/js/translated/part.js:1499 +#: company/models.py:597 report/templates/report/inventree_test_report.html:104 +#: stock/models.py:2666 templates/js/translated/company.js:1167 +#: templates/js/translated/company.js:1420 templates/js/translated/part.js:1499 #: templates/js/translated/stock.js:1607 msgid "Value" msgstr "Valeur" -#: company/models.py:601 +#: company/models.py:598 msgid "Parameter value" msgstr "Valeur du paramètre" -#: company/models.py:608 company/templates/company/supplier_part.html:168 -#: part/admin.py:57 part/models.py:1147 part/models.py:3771 -#: part/templates/part/part_base.html:293 -#: templates/js/translated/company.js:1425 templates/js/translated/part.js:1518 +#: company/models.py:605 company/templates/company/supplier_part.html:169 +#: part/admin.py:57 part/models.py:1208 part/models.py:3822 +#: part/templates/part/part_base.html:301 +#: templates/js/translated/company.js:1426 templates/js/translated/part.js:1518 #: templates/js/translated/part.js:1622 templates/js/translated/part.js:2376 msgid "Units" msgstr "Unités" -#: company/models.py:609 +#: company/models.py:606 msgid "Parameter units" msgstr "Unités du paramètre" -#: company/models.py:662 company/templates/company/supplier_part.html:7 -#: company/templates/company/supplier_part.html:24 order/api.py:442 -#: order/serializers.py:491 stock/models.py:798 -#: stock/templates/stock/item_base.html:233 -#: templates/js/translated/build.js:1052 -#: templates/js/translated/company.js:1600 -#: templates/js/translated/purchase_order.js:752 -#: templates/js/translated/stock.js:2365 +#: company/models.py:659 company/templates/company/supplier_part.html:8 +#: company/templates/company/supplier_part.html:25 order/api.py:392 +#: order/serializers.py:576 stock/models.py:875 +#: stock/templates/stock/item_base.html:230 +#: templates/js/translated/build.js:1055 +#: templates/js/translated/company.js:1601 +#: templates/js/translated/purchase_order.js:735 +#: templates/js/translated/stock.js:2366 msgid "Supplier Part" msgstr "Pièce fournisseur" -#: company/models.py:719 +#: company/models.py:716 msgid "Pack units must be compatible with the base part units" msgstr "" -#: company/models.py:726 +#: company/models.py:723 msgid "Pack units must be greater than zero" msgstr "" -#: company/models.py:740 +#: company/models.py:737 msgid "Linked manufacturer part must reference the same base part" msgstr "La pièce du fabricant liée doit faire référence à la même pièce de base" -#: company/models.py:789 company/templates/company/company_base.html:87 -#: company/templates/company/supplier_part.html:129 order/models.py:491 -#: order/templates/order/order_base.html:141 part/bom.py:280 part/bom.py:318 -#: part/serializers.py:538 plugin/builtin/suppliers/digikey.py:25 +#: company/models.py:786 company/templates/company/company_base.html:87 +#: company/templates/company/supplier_part.html:130 order/models.py:503 +#: order/templates/order/order_base.html:150 part/bom.py:279 part/bom.py:314 +#: part/serializers.py:582 plugin/builtin/suppliers/digikey.py:25 #: plugin/builtin/suppliers/lcsc.py:26 plugin/builtin/suppliers/mouser.py:24 -#: plugin/builtin/suppliers/tme.py:26 stock/templates/stock/item_base.html:224 +#: plugin/builtin/suppliers/tme.py:26 stock/templates/stock/item_base.html:221 #: templates/email/overdue_purchase_order.html:16 -#: templates/js/translated/company.js:350 -#: templates/js/translated/company.js:511 -#: templates/js/translated/company.js:1584 templates/js/translated/part.js:1775 +#: templates/js/translated/company.js:351 +#: templates/js/translated/company.js:512 +#: templates/js/translated/company.js:1585 templates/js/translated/part.js:1775 #: templates/js/translated/pricing.js:498 -#: templates/js/translated/purchase_order.js:1759 +#: templates/js/translated/purchase_order.js:1743 #: templates/js/translated/table_filters.js:816 msgid "Supplier" msgstr "Fournisseur" -#: company/models.py:790 +#: company/models.py:787 msgid "Select supplier" msgstr "Sélectionner un fournisseur" -#: company/models.py:796 part/serializers.py:549 +#: company/models.py:793 part/serializers.py:593 msgid "Supplier stock keeping unit" msgstr "Unité de gestion des stocks des fournisseurs" -#: company/models.py:802 +#: company/models.py:799 msgid "Is this supplier part active?" msgstr "" -#: company/models.py:812 +#: company/models.py:809 msgid "Select manufacturer part" msgstr "Sélectionner un fabricant" -#: company/models.py:819 +#: company/models.py:816 msgid "URL for external supplier part link" msgstr "Lien de la pièce du fournisseur externe" -#: company/models.py:828 +#: company/models.py:825 msgid "Supplier part description" msgstr "Description de la pièce du fournisseur" -#: company/models.py:835 company/templates/company/supplier_part.html:187 -#: order/serializers.py:698 part/admin.py:415 part/models.py:4288 +#: company/models.py:832 company/templates/company/supplier_part.html:188 +#: order/serializers.py:783 part/admin.py:415 part/models.py:4345 #: part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_bill_of_materials_report.html:140 #: report/templates/report/inventree_purchase_order_report.html:32 #: report/templates/report/inventree_return_order_report.html:27 #: report/templates/report/inventree_sales_order_report.html:32 #: report/templates/report/inventree_stock_location_report.html:105 -#: stock/serializers.py:776 templates/js/translated/purchase_order.js:1185 -#: templates/js/translated/purchase_order.js:1344 +#: stock/serializers.py:807 templates/js/translated/purchase_order.js:1168 +#: templates/js/translated/purchase_order.js:1327 msgid "Note" msgstr "" -#: company/models.py:844 part/models.py:2117 +#: company/models.py:841 part/models.py:2177 msgid "base cost" msgstr "coût de base" -#: company/models.py:845 part/models.py:2118 +#: company/models.py:842 part/models.py:2178 msgid "Minimum charge (e.g. stocking fee)" msgstr "Frais minimums (par exemple frais de stock)" -#: company/models.py:853 +#: company/models.py:850 msgid "Part packaging" msgstr "Conditionnement de l'article" -#: company/models.py:858 templates/js/translated/company.js:1651 +#: company/models.py:855 templates/js/translated/company.js:1652 #: templates/js/translated/part.js:1828 templates/js/translated/part.js:1884 -#: templates/js/translated/purchase_order.js:311 -#: templates/js/translated/purchase_order.js:841 -#: templates/js/translated/purchase_order.js:1103 -#: templates/js/translated/purchase_order.js:2154 -#: templates/js/translated/purchase_order.js:2171 +#: templates/js/translated/purchase_order.js:294 +#: templates/js/translated/purchase_order.js:824 +#: templates/js/translated/purchase_order.js:1086 +#: templates/js/translated/purchase_order.js:2138 +#: templates/js/translated/purchase_order.js:2155 msgid "Pack Quantity" msgstr "Nombre de paquet" -#: company/models.py:860 +#: company/models.py:857 msgid "Total quantity supplied in a single pack. Leave empty for single items." msgstr "" -#: company/models.py:879 part/models.py:2124 +#: company/models.py:876 part/models.py:2184 msgid "multiple" msgstr "plusieurs" -#: company/models.py:880 +#: company/models.py:877 msgid "Order multiple" msgstr "Commande multiple" -#: company/models.py:892 +#: company/models.py:889 msgid "Quantity available from supplier" msgstr "Quantité disponible auprès du fournisseur" -#: company/models.py:898 +#: company/models.py:895 msgid "Availability Updated" msgstr "Disponibilité mise à jour" -#: company/models.py:899 +#: company/models.py:896 msgid "Date of last update of availability data" msgstr "Date de dernière mise à jour des données de disponibilité" -#: company/models.py:1027 +#: company/models.py:1024 msgid "Supplier Price Break" msgstr "" -#: company/serializers.py:174 +#: company/serializers.py:178 msgid "Default currency used for this supplier" msgstr "Devise par défaut utilisée pour ce fournisseur" -#: company/serializers.py:210 +#: company/serializers.py:214 msgid "Company Name" msgstr "" -#: company/serializers.py:393 part/admin.py:126 part/serializers.py:898 -#: part/templates/part/part_base.html:197 -#: templates/js/translated/company.js:1689 +#: company/serializers.py:397 part/admin.py:126 part/serializers.py:950 +#: part/templates/part/part_base.html:198 stock/serializers.py:474 +#: templates/js/translated/company.js:1690 #: templates/js/translated/table_filters.js:362 msgid "In Stock" msgstr "En Stock" #: company/templates/company/company_base.html:16 -#: part/templates/part/part_base.html:146 -#: templates/js/translated/company.js:1287 -#: templates/js/translated/company.js:1575 -#: templates/js/translated/model_renderers.js:313 +#: part/templates/part/part_base.html:147 +#: templates/js/translated/company.js:1288 +#: templates/js/translated/company.js:1576 +#: templates/js/translated/model_renderers.js:316 #: templates/js/translated/part.js:817 templates/js/translated/part.js:1225 msgid "Inactive" msgstr "" #: company/templates/company/company_base.html:27 -#: templates/js/translated/purchase_order.js:242 +#: templates/js/translated/purchase_order.js:224 msgid "Create Purchase Order" msgstr "Créer une commande d'achat" @@ -4590,7 +4769,7 @@ msgid "Edit company information" msgstr "Éditer les informations sur la société" #: company/templates/company/company_base.html:39 -#: templates/js/translated/company.js:445 +#: templates/js/translated/company.js:446 msgid "Edit Company" msgstr "Editer la société" @@ -4605,11 +4784,12 @@ msgstr "Supprimer la société" #: company/templates/company/company_base.html:53 #: company/templates/company/manufacturer_part.html:51 -#: company/templates/company/supplier_part.html:83 +#: company/templates/company/supplier_part.html:84 #: part/templates/part/part_thumb.html:20 #: report/templates/report/inventree_build_order_report.html:98 #: report/templates/report/inventree_purchase_order_report.html:40 #: report/templates/report/inventree_sales_order_report.html:40 +#: report/templates/report/inventree_sales_order_shipment_report.html:37 #: report/templates/report/inventree_test_report.html:84 #: report/templates/report/inventree_test_report.html:162 msgid "Part image" @@ -4630,16 +4810,16 @@ msgstr "Télécharger l'image depuis l'URL" msgid "Delete image" msgstr "Supprimer image" -#: company/templates/company/company_base.html:92 order/models.py:990 -#: order/models.py:2147 order/templates/order/return_order_base.html:134 -#: order/templates/order/sales_order_base.html:151 stock/models.py:840 -#: stock/models.py:841 stock/serializers.py:1329 -#: stock/templates/stock/item_base.html:405 +#: company/templates/company/company_base.html:92 order/models.py:1017 +#: order/models.py:2186 order/templates/order/return_order_base.html:135 +#: order/templates/order/sales_order_base.html:152 stock/models.py:917 +#: stock/models.py:918 stock/serializers.py:1360 +#: stock/templates/stock/item_base.html:402 #: templates/email/overdue_sales_order.html:16 -#: templates/js/translated/company.js:503 +#: templates/js/translated/company.js:504 #: templates/js/translated/return_order.js:295 -#: templates/js/translated/sales_order.js:820 -#: templates/js/translated/stock.js:3043 +#: templates/js/translated/sales_order.js:779 +#: templates/js/translated/stock.js:3044 #: templates/js/translated/table_filters.js:820 msgid "Customer" msgstr "Client" @@ -4653,7 +4833,7 @@ msgid "Phone" msgstr "Téléphone" #: company/templates/company/company_base.html:211 -#: part/templates/part/part_base.html:536 +#: part/templates/part/part_base.html:544 msgid "Remove Image" msgstr "" @@ -4662,19 +4842,19 @@ msgid "Remove associated image from this company" msgstr "" #: company/templates/company/company_base.html:214 -#: part/templates/part/part_base.html:539 +#: part/templates/part/part_base.html:547 #: templates/InvenTree/settings/user.html:88 #: templates/InvenTree/settings/user_sso.html:43 msgid "Remove" msgstr "Supprimer" #: company/templates/company/company_base.html:243 -#: part/templates/part/part_base.html:568 +#: part/templates/part/part_base.html:576 msgid "Upload Image" msgstr "" #: company/templates/company/company_base.html:258 -#: part/templates/part/part_base.html:622 +#: part/templates/part/part_base.html:630 msgid "Download Image" msgstr "" @@ -4714,7 +4894,7 @@ msgstr "Stock fournisseur" #: company/templates/company/detail.html:75 #: company/templates/company/sidebar.html:12 #: company/templates/company/supplier_part_sidebar.html:7 -#: order/templates/order/order_base.html:13 +#: order/templates/order/order_base.html:14 #: order/templates/order/purchase_orders.html:8 #: order/templates/order/purchase_orders.html:12 #: part/templates/part/detail.html:122 part/templates/part/part_sidebar.html:35 @@ -4737,7 +4917,7 @@ msgstr "Nouvelle commande achat" #: company/templates/company/detail.html:101 #: company/templates/company/sidebar.html:21 -#: order/templates/order/sales_order_base.html:13 +#: order/templates/order/sales_order_base.html:14 #: order/templates/order/sales_orders.html:8 #: order/templates/order/sales_orders.html:15 #: part/templates/part/detail.html:143 part/templates/part/part_sidebar.html:39 @@ -4764,7 +4944,7 @@ msgstr "Stock affecté" #: company/templates/company/detail.html:142 #: company/templates/company/sidebar.html:29 -#: order/templates/order/return_order_base.html:13 +#: order/templates/order/return_order_base.html:14 #: order/templates/order/return_orders.html:8 #: order/templates/order/return_orders.html:15 #: templates/InvenTree/settings/sidebar.html:61 @@ -4811,24 +4991,24 @@ msgid "Manufacturers" msgstr "Fabricants" #: company/templates/company/manufacturer_part.html:35 -#: company/templates/company/supplier_part.html:227 -#: part/templates/part/detail.html:125 part/templates/part/part_base.html:83 +#: company/templates/company/supplier_part.html:228 +#: part/templates/part/detail.html:125 part/templates/part/part_base.html:84 msgid "Order part" msgstr "Article de la commande" #: company/templates/company/manufacturer_part.html:39 -#: templates/js/translated/company.js:1343 +#: templates/js/translated/company.js:1344 msgid "Edit manufacturer part" msgstr "Modifier la pièce du fabricant" #: company/templates/company/manufacturer_part.html:43 -#: templates/js/translated/company.js:1344 +#: templates/js/translated/company.js:1345 msgid "Delete manufacturer part" msgstr "Supprimer la pièce de fabricant" #: company/templates/company/manufacturer_part.html:65 -#: company/templates/company/supplier_part.html:97 order/api.py:448 -#: order/serializers.py:564 +#: company/templates/company/supplier_part.html:98 order/api.py:411 +#: order/serializers.py:649 msgid "Internal Part" msgstr "Pièces Internes" @@ -4837,8 +5017,8 @@ msgid "No manufacturer information available" msgstr "Aucune information sur le fabricant disponible" #: company/templates/company/manufacturer_part.html:119 -#: company/templates/company/supplier_part.html:15 company/views.py:31 -#: part/admin.py:122 part/serializers.py:904 +#: company/templates/company/supplier_part.html:16 company/views.py:31 +#: part/admin.py:122 part/serializers.py:956 #: part/templates/part/part_sidebar.html:33 templates/InvenTree/search.html:190 #: templates/navbar.html:48 msgid "Suppliers" @@ -4887,112 +5067,113 @@ msgstr "Articles en stock assignés" msgid "Contacts" msgstr "" -#: company/templates/company/supplier_part.html:50 -#: templates/js/translated/company.js:1526 +#: company/templates/company/supplier_part.html:51 +#: templates/js/translated/company.js:1527 msgid "Supplier part actions" msgstr "Actions de la pièce du fournisseur" -#: company/templates/company/supplier_part.html:55 #: company/templates/company/supplier_part.html:56 -#: company/templates/company/supplier_part.html:228 +#: company/templates/company/supplier_part.html:57 +#: company/templates/company/supplier_part.html:229 #: part/templates/part/detail.html:126 msgid "Order Part" msgstr "Commander un composant" -#: company/templates/company/supplier_part.html:60 #: company/templates/company/supplier_part.html:61 +#: company/templates/company/supplier_part.html:62 msgid "Update Availability" msgstr "Disponibilité de la mise à jour" -#: company/templates/company/supplier_part.html:63 #: company/templates/company/supplier_part.html:64 -#: templates/js/translated/company.js:294 +#: company/templates/company/supplier_part.html:65 +#: templates/js/translated/company.js:295 msgid "Edit Supplier Part" msgstr "Modifier la pièce du fournisseur" -#: company/templates/company/supplier_part.html:68 #: company/templates/company/supplier_part.html:69 -#: templates/js/translated/company.js:269 +#: company/templates/company/supplier_part.html:70 +#: templates/js/translated/company.js:270 msgid "Duplicate Supplier Part" msgstr "Dupliquer la pièce du fournisseur" -#: company/templates/company/supplier_part.html:73 +#: company/templates/company/supplier_part.html:74 msgid "Delete Supplier Part" msgstr "Supprimer la pièce du fournisseur" -#: company/templates/company/supplier_part.html:74 +#: company/templates/company/supplier_part.html:75 msgid "Delete Supplier Part" msgstr "Supprimer la pièce du fournisseur" -#: company/templates/company/supplier_part.html:133 +#: company/templates/company/supplier_part.html:134 +#: order/templates/order/order_base.html:155 msgid "No supplier information available" msgstr "Aucune information de fournisseur disponible" -#: company/templates/company/supplier_part.html:139 order/serializers.py:553 -#: part/bom.py:287 part/bom.py:319 part/serializers.py:548 -#: templates/js/translated/company.js:349 templates/js/translated/part.js:1793 +#: company/templates/company/supplier_part.html:140 order/serializers.py:638 +#: part/bom.py:286 part/bom.py:315 part/serializers.py:592 +#: templates/js/translated/company.js:350 templates/js/translated/part.js:1793 #: templates/js/translated/pricing.js:510 -#: templates/js/translated/purchase_order.js:1920 -#: templates/js/translated/purchase_order.js:2098 +#: templates/js/translated/purchase_order.js:1904 +#: templates/js/translated/purchase_order.js:2082 msgid "SKU" msgstr "" -#: company/templates/company/supplier_part.html:206 +#: company/templates/company/supplier_part.html:207 msgid "Supplier Part Stock" msgstr "Stock de pièces du fournisseur" -#: company/templates/company/supplier_part.html:209 -#: part/templates/part/detail.html:24 stock/templates/stock/location.html:204 +#: company/templates/company/supplier_part.html:210 +#: part/templates/part/detail.html:24 stock/templates/stock/location.html:205 msgid "Create new stock item" msgstr "Créer un nouvel article de stock" -#: company/templates/company/supplier_part.html:210 -#: part/templates/part/detail.html:25 stock/templates/stock/location.html:205 +#: company/templates/company/supplier_part.html:211 +#: part/templates/part/detail.html:25 stock/templates/stock/location.html:206 #: templates/js/translated/stock.js:543 msgid "New Stock Item" msgstr "Nouvel article de stock" -#: company/templates/company/supplier_part.html:223 +#: company/templates/company/supplier_part.html:224 msgid "Supplier Part Orders" msgstr "Commandes de pièces du fournisseur" -#: company/templates/company/supplier_part.html:246 +#: company/templates/company/supplier_part.html:247 msgid "Pricing Information" msgstr "Information sur les prix" -#: company/templates/company/supplier_part.html:251 -#: templates/js/translated/company.js:398 +#: company/templates/company/supplier_part.html:252 +#: templates/js/translated/company.js:399 #: templates/js/translated/pricing.js:684 msgid "Add Price Break" msgstr "Ajouter un prix de rupture" -#: company/templates/company/supplier_part.html:270 +#: company/templates/company/supplier_part.html:271 msgid "Supplier Part Notes" msgstr "" -#: company/templates/company/supplier_part.html:305 +#: company/templates/company/supplier_part.html:306 msgid "Supplier Part QR Code" msgstr "" -#: company/templates/company/supplier_part.html:316 +#: company/templates/company/supplier_part.html:317 msgid "Link Barcode to Supplier Part" msgstr "" -#: company/templates/company/supplier_part.html:388 +#: company/templates/company/supplier_part.html:389 msgid "Update Part Availability" msgstr "" #: company/templates/company/supplier_part_sidebar.html:5 -#: part/serializers.py:902 part/stocktake.py:223 +#: part/serializers.py:954 part/stocktake.py:223 #: part/templates/part/category.html:180 #: part/templates/part/category_sidebar.html:17 stock/admin.py:68 -#: stock/serializers.py:1014 stock/serializers.py:1192 -#: stock/templates/stock/location.html:167 -#: stock/templates/stock/location.html:188 -#: stock/templates/stock/location.html:200 +#: stock/serializers.py:1045 stock/serializers.py:1223 +#: stock/templates/stock/location.html:168 +#: stock/templates/stock/location.html:189 +#: stock/templates/stock/location.html:201 #: stock/templates/stock/location_sidebar.html:7 #: templates/InvenTree/search.html:155 templates/js/translated/part.js:1067 -#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2850 +#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2851 #: users/models.py:206 msgid "Stock Items" msgstr "Éléments en stock" @@ -5022,99 +5203,99 @@ msgstr "Nouveaux Clients" msgid "New Company" msgstr "Nouvelle Entreprise" -#: generic/states/tests.py:18 order/status_codes.py:13 +#: generic/states/fields.py:118 +msgid "Custom status key" +msgstr "" + +#: generic/states/fields.py:119 +msgid "Additional status information for this item" +msgstr "" + +#: generic/states/tests.py:22 order/status_codes.py:13 msgid "Placed" msgstr "Placé" -#: importer/mixins.py:263 +#: importer/mixins.py:261 msgid "Invalid export format" msgstr "" -#: importer/models.py:59 -msgid "Timestamp" -msgstr "" - -#: importer/models.py:64 +#: importer/models.py:65 msgid "Data file to import" msgstr "" -#: importer/models.py:73 templates/js/translated/tables.js:558 +#: importer/models.py:74 templates/js/translated/tables.js:558 msgid "Columns" msgstr "" -#: importer/models.py:84 +#: importer/models.py:85 msgid "Import status" msgstr "" -#: importer/models.py:94 +#: importer/models.py:95 msgid "Field Defaults" msgstr "" -#: importer/models.py:101 +#: importer/models.py:102 msgid "Field Overrides" msgstr "" -#: importer/models.py:108 +#: importer/models.py:109 msgid "Field Filters" msgstr "" -#: importer/models.py:230 +#: importer/models.py:239 msgid "Some required fields have not been mapped" msgstr "" -#: importer/models.py:387 +#: importer/models.py:396 msgid "Column is already mapped to a database field" msgstr "" -#: importer/models.py:392 +#: importer/models.py:401 msgid "Field is already mapped to a data column" msgstr "" -#: importer/models.py:401 +#: importer/models.py:410 msgid "Column mapping must be linked to a valid import session" msgstr "" -#: importer/models.py:406 +#: importer/models.py:415 msgid "Column does not exist in the data file" msgstr "" -#: importer/models.py:413 +#: importer/models.py:422 msgid "Field does not exist in the target model" msgstr "" -#: importer/models.py:417 +#: importer/models.py:426 msgid "Selected field is read-only" msgstr "" -#: importer/models.py:422 importer/models.py:493 +#: importer/models.py:431 importer/models.py:502 msgid "Import Session" msgstr "" -#: importer/models.py:426 +#: importer/models.py:435 msgid "Field" msgstr "" -#: importer/models.py:428 +#: importer/models.py:437 msgid "Column" msgstr "" -#: importer/models.py:497 +#: importer/models.py:506 msgid "Row Index" msgstr "" -#: importer/models.py:500 +#: importer/models.py:509 msgid "Original row data" msgstr "" -#: importer/models.py:503 part/models.py:3951 -msgid "Data" -msgstr "Données" - -#: importer/models.py:505 machine/models.py:110 +#: importer/models.py:514 machine/models.py:110 msgid "Errors" msgstr "Erreurs" -#: importer/models.py:507 part/api.py:873 +#: importer/models.py:516 part/api.py:857 msgid "Valid" msgstr "Valide" @@ -5166,19 +5347,19 @@ msgstr "" msgid "Row has already been completed" msgstr "" -#: importer/status_codes.py:11 +#: importer/status_codes.py:13 msgid "Initializing" msgstr "" -#: importer/status_codes.py:12 +#: importer/status_codes.py:18 msgid "Mapping Columns" msgstr "" -#: importer/status_codes.py:13 +#: importer/status_codes.py:21 msgid "Importing Data" msgstr "" -#: importer/status_codes.py:16 +#: importer/status_codes.py:24 msgid "Processing Data" msgstr "" @@ -5202,52 +5383,52 @@ msgstr "" msgid "Value must be a valid dictionary object" msgstr "" -#: machine/machine_types/label_printer.py:215 +#: machine/machine_types/label_printer.py:216 msgid "Copies" msgstr "" -#: machine/machine_types/label_printer.py:216 +#: machine/machine_types/label_printer.py:217 msgid "Number of copies to print for each label" msgstr "" -#: machine/machine_types/label_printer.py:231 +#: machine/machine_types/label_printer.py:232 msgid "Connected" msgstr "" -#: machine/machine_types/label_printer.py:232 order/api.py:1410 -#: templates/js/translated/sales_order.js:1078 +#: machine/machine_types/label_printer.py:233 order/api.py:1532 +#: templates/js/translated/sales_order.js:1044 msgid "Unknown" msgstr "Inconnu" -#: machine/machine_types/label_printer.py:233 +#: machine/machine_types/label_printer.py:234 msgid "Printing" msgstr "Impression" -#: machine/machine_types/label_printer.py:234 +#: machine/machine_types/label_printer.py:235 msgid "No media" msgstr "Aucun média" -#: machine/machine_types/label_printer.py:235 +#: machine/machine_types/label_printer.py:236 msgid "Paper jam" msgstr "" -#: machine/machine_types/label_printer.py:236 +#: machine/machine_types/label_printer.py:237 msgid "Disconnected" msgstr "Déconnecté" -#: machine/machine_types/label_printer.py:243 +#: machine/machine_types/label_printer.py:244 msgid "Label Printer" msgstr "Imprimante Etiquette" -#: machine/machine_types/label_printer.py:244 +#: machine/machine_types/label_printer.py:245 msgid "Directly print labels for various items." msgstr "Impression directe des étiquettes pour divers articles." -#: machine/machine_types/label_printer.py:250 +#: machine/machine_types/label_printer.py:251 msgid "Printer Location" msgstr "Emplacement Imprimante" -#: machine/machine_types/label_printer.py:251 +#: machine/machine_types/label_printer.py:252 msgid "Scope the printer to a specific location" msgstr "Porter de l'imprimante sur un emplacement spécifique" @@ -5307,79 +5488,75 @@ msgstr "Type de configuration" #: report/templates/report/inventree_purchase_order_report.html:31 #: report/templates/report/inventree_sales_order_report.html:31 #: templates/js/translated/order.js:352 -#: templates/js/translated/purchase_order.js:2195 -#: templates/js/translated/sales_order.js:1883 +#: templates/js/translated/purchase_order.js:2179 +#: templates/js/translated/sales_order.js:1864 msgid "Total Price" msgstr "Prix Total" -#: order/api.py:80 order/api.py:151 order/serializers.py:93 -#: order/templates/order/order_base.html:123 -#: order/templates/order/return_order_base.html:116 -#: order/templates/order/sales_order_base.html:125 +#: order/api.py:78 order/api.py:149 order/serializers.py:124 +#: order/templates/order/order_base.html:124 +#: order/templates/order/return_order_base.html:117 +#: order/templates/order/sales_order_base.html:126 msgid "Order Status" msgstr "Statut de la commande" -#: order/api.py:88 order/templates/order/order_base.html:111 -#: order/templates/order/return_order_base.html:104 -#: order/templates/order/sales_order_base.html:113 +#: order/api.py:86 order/templates/order/order_base.html:112 +#: order/templates/order/return_order_base.html:105 +#: order/templates/order/sales_order_base.html:114 msgid "Order Reference" msgstr "Référence de commande" -#: order/api.py:116 templates/js/translated/table_filters.js:93 +#: order/api.py:114 order/api.py:1022 +#: templates/js/translated/table_filters.js:93 #: templates/js/translated/table_filters.js:625 #: templates/js/translated/table_filters.js:651 #: templates/js/translated/table_filters.js:666 msgid "Outstanding" msgstr "" -#: order/api.py:132 +#: order/api.py:130 msgid "Has Project Code" msgstr "" -#: order/api.py:155 templates/js/translated/table_filters.js:201 +#: order/api.py:153 templates/js/translated/table_filters.js:201 #: templates/js/translated/table_filters.js:791 msgid "Has Pricing" msgstr "Possède un Tarif" -#: order/api.py:230 -msgid "No matching purchase order found" -msgstr "Aucun bon de commande correspondant n'a été trouvé" - -#: order/api.py:425 order/api.py:763 order/models.py:1484 order/models.py:1598 -#: order/models.py:1649 order/models.py:1764 order/models.py:1923 -#: order/models.py:2383 order/models.py:2439 -#: templates/js/translated/sales_order.js:1524 +#: order/api.py:375 order/api.py:771 order/api.py:986 order/models.py:1500 +#: order/models.py:1614 order/models.py:1665 order/models.py:1793 +#: order/models.py:1956 order/models.py:2422 order/models.py:2478 +#: templates/js/translated/sales_order.js:1490 msgid "Order" msgstr "Commande" -#: order/api.py:429 order/api.py:784 +#: order/api.py:379 order/api.py:809 msgid "Order Complete" msgstr "Commande Complétée" -#: order/api.py:452 +#: order/api.py:430 msgid "Order Pending" msgstr "Commande En Attente" -#: order/api.py:1404 order/models.py:379 order/models.py:1485 -#: order/models.py:1599 order/templates/order/order_base.html:9 -#: order/templates/order/order_base.html:18 +#: order/api.py:1526 order/models.py:386 order/models.py:1501 +#: order/models.py:1615 order/templates/order/order_base.html:10 +#: order/templates/order/order_base.html:19 #: report/templates/report/inventree_purchase_order_report.html:14 -#: stock/serializers.py:120 stock/templates/stock/item_base.html:176 +#: stock/serializers.py:121 stock/templates/stock/item_base.html:173 #: templates/email/overdue_purchase_order.html:15 #: templates/js/translated/part.js:1752 templates/js/translated/pricing.js:804 -#: templates/js/translated/purchase_order.js:168 -#: templates/js/translated/purchase_order.js:753 -#: templates/js/translated/purchase_order.js:1743 -#: templates/js/translated/stock.js:2345 templates/js/translated/stock.js:2991 +#: templates/js/translated/purchase_order.js:736 +#: templates/js/translated/purchase_order.js:1727 +#: templates/js/translated/stock.js:2346 templates/js/translated/stock.js:2992 msgid "Purchase Order" msgstr "Commande d’achat" -#: order/api.py:1408 order/models.py:2091 order/models.py:2384 -#: order/models.py:2440 order/templates/order/return_order_base.html:9 -#: order/templates/order/return_order_base.html:28 +#: order/api.py:1530 order/models.py:2124 order/models.py:2423 +#: order/models.py:2479 order/templates/order/return_order_base.html:10 +#: order/templates/order/return_order_base.html:29 #: report/templates/report/inventree_return_order_report.html:13 #: templates/js/translated/return_order.js:280 -#: templates/js/translated/stock.js:3025 +#: templates/js/translated/stock.js:3026 msgid "Return Order" msgstr "Retour de commande" @@ -5387,751 +5564,782 @@ msgstr "Retour de commande" msgid "Total price for this order" msgstr "Prix total pour cette commande" -#: order/models.py:95 order/serializers.py:71 +#: order/models.py:95 order/serializers.py:73 msgid "Order Currency" msgstr "Devise de la commande" -#: order/models.py:98 order/serializers.py:72 +#: order/models.py:98 order/serializers.py:74 msgid "Currency for this order (leave blank to use company default)" msgstr "" -#: order/models.py:246 +#: order/models.py:243 msgid "Contact does not match selected company" msgstr "" -#: order/models.py:289 +#: order/models.py:296 msgid "Order description (optional)" msgstr "Description de la commande (facultatif)" -#: order/models.py:298 +#: order/models.py:305 msgid "Select project code for this order" msgstr "" -#: order/models.py:302 order/models.py:1385 order/models.py:1817 +#: order/models.py:309 order/models.py:1402 order/models.py:1846 msgid "Link to external page" msgstr "Lien vers une page externe" -#: order/models.py:310 +#: order/models.py:317 msgid "Expected date for order delivery. Order will be overdue after this date." msgstr "Date prévue pour la livraison de la commande. La commande sera en retard après cette date." -#: order/models.py:324 +#: order/models.py:331 msgid "Created By" msgstr "Créé par" -#: order/models.py:332 +#: order/models.py:339 msgid "User or group responsible for this order" msgstr "Utilisateur ou groupe responsable de cette commande" -#: order/models.py:343 +#: order/models.py:350 msgid "Point of contact for this order" msgstr "" -#: order/models.py:353 +#: order/models.py:360 msgid "Company address for this order" msgstr "Adresse de l'entreprise pour cette commande" -#: order/models.py:468 order/models.py:979 +#: order/models.py:480 order/models.py:1006 msgid "Order reference" msgstr "Référence de la commande" -#: order/models.py:477 +#: order/models.py:489 msgid "Purchase order status" msgstr "Statut de la commande d'achat" -#: order/models.py:492 +#: order/models.py:504 msgid "Company from which the items are being ordered" msgstr "Société de laquelle les articles sont commandés" -#: order/models.py:503 order/templates/order/order_base.html:153 -#: templates/js/translated/purchase_order.js:1772 +#: order/models.py:515 order/templates/order/order_base.html:162 +#: templates/js/translated/purchase_order.js:1756 msgid "Supplier Reference" msgstr "Référence du fournisseur" -#: order/models.py:504 +#: order/models.py:516 msgid "Supplier order reference code" msgstr "Code de référence de la commande fournisseur" -#: order/models.py:513 +#: order/models.py:525 msgid "received by" msgstr "reçu par" -#: order/models.py:519 order/models.py:2173 +#: order/models.py:531 order/models.py:2212 msgid "Issue Date" msgstr "Date d'émission" -#: order/models.py:520 order/models.py:2174 +#: order/models.py:532 order/models.py:2213 msgid "Date order was issued" msgstr "Date d'émission de la commande" -#: order/models.py:527 order/models.py:2181 +#: order/models.py:539 order/models.py:2220 msgid "Date order was completed" msgstr "Date à laquelle la commande a été complété" -#: order/models.py:571 +#: order/models.py:549 order/models.py:1552 +msgid "Destination for received items" +msgstr "" + +#: order/models.py:593 msgid "Part supplier must match PO supplier" msgstr "" -#: order/models.py:806 +#: order/models.py:828 msgid "Quantity must be a positive number" msgstr "La quantité doit être un nombre positif" -#: order/models.py:991 +#: order/models.py:1018 msgid "Company to which the items are being sold" msgstr "Société à laquelle les articles sont vendus" -#: order/models.py:1003 +#: order/models.py:1030 msgid "Sales order status" msgstr "" -#: order/models.py:1014 order/models.py:2166 +#: order/models.py:1041 order/models.py:2205 msgid "Customer Reference " msgstr "Référence client " -#: order/models.py:1015 order/models.py:2167 +#: order/models.py:1042 order/models.py:2206 msgid "Customer order reference code" msgstr "" -#: order/models.py:1019 order/models.py:1771 -#: templates/js/translated/sales_order.js:879 -#: templates/js/translated/sales_order.js:1060 +#: order/models.py:1046 order/models.py:1800 +#: templates/js/translated/sales_order.js:838 +#: templates/js/translated/sales_order.js:1026 msgid "Shipment Date" msgstr "Nom de l’expédition" -#: order/models.py:1028 +#: order/models.py:1055 msgid "shipped by" msgstr "expédié par" -#: order/models.py:1077 +#: order/models.py:1094 msgid "Order is already complete" msgstr "" -#: order/models.py:1080 +#: order/models.py:1097 msgid "Order is already cancelled" msgstr "" -#: order/models.py:1084 +#: order/models.py:1101 msgid "Only an open order can be marked as complete" msgstr "" -#: order/models.py:1088 +#: order/models.py:1105 msgid "Order cannot be completed as there are incomplete shipments" msgstr "La commande ne peut pas être terminée car il y a des envois incomplets" -#: order/models.py:1093 +#: order/models.py:1110 msgid "Order cannot be completed as there are incomplete line items" msgstr "" -#: order/models.py:1357 +#: order/models.py:1374 msgid "Item quantity" msgstr "Nombre d'élement" -#: order/models.py:1374 +#: order/models.py:1391 msgid "Line item reference" msgstr "" -#: order/models.py:1381 +#: order/models.py:1398 msgid "Line item notes" msgstr "" -#: order/models.py:1393 +#: order/models.py:1410 msgid "Target date for this line item (leave blank to use the target date from the order)" msgstr "" -#: order/models.py:1414 +#: order/models.py:1431 msgid "Line item description (optional)" msgstr "" -#: order/models.py:1420 -msgid "Context" -msgstr "Contexte" - -#: order/models.py:1421 +#: order/models.py:1438 msgid "Additional context for this line" msgstr "" -#: order/models.py:1431 +#: order/models.py:1448 msgid "Unit price" msgstr "Prix unitaire" -#: order/models.py:1445 +#: order/models.py:1462 msgid "Purchase Order Line Item" msgstr "" -#: order/models.py:1469 +#: order/models.py:1486 msgid "Supplier part must match supplier" msgstr "" -#: order/models.py:1476 -msgid "deleted" -msgstr "supprimé" - -#: order/models.py:1504 +#: order/models.py:1520 msgid "Supplier part" msgstr "Pièce fournisseur" -#: order/models.py:1511 order/templates/order/order_base.html:201 +#: order/models.py:1527 order/templates/order/order_base.html:210 #: templates/js/translated/part.js:1876 templates/js/translated/part.js:1908 -#: templates/js/translated/purchase_order.js:1369 -#: templates/js/translated/purchase_order.js:2239 +#: templates/js/translated/purchase_order.js:1352 +#: templates/js/translated/purchase_order.js:2223 #: templates/js/translated/return_order.js:762 #: templates/js/translated/table_filters.js:119 #: templates/js/translated/table_filters.js:605 msgid "Received" msgstr "Reçu" -#: order/models.py:1512 +#: order/models.py:1528 msgid "Number of items received" msgstr "Nombre d'éléments reçus" -#: order/models.py:1520 stock/models.py:959 stock/serializers.py:610 -#: stock/templates/stock/item_base.html:183 -#: templates/js/translated/stock.js:2396 +#: order/models.py:1536 stock/models.py:1036 stock/serializers.py:637 +#: stock/templates/stock/item_base.html:180 +#: templates/js/translated/stock.js:2397 msgid "Purchase Price" msgstr "Prix d'achat" -#: order/models.py:1521 +#: order/models.py:1537 msgid "Unit purchase price" msgstr "Prix d'achat unitaire" -#: order/models.py:1536 -msgid "Where does the Purchaser want this item to be stored?" -msgstr "Où l'Acheteur veut-il stocker cet article ?" - -#: order/models.py:1587 +#: order/models.py:1603 msgid "Purchase Order Extra Line" msgstr "" -#: order/models.py:1616 +#: order/models.py:1632 msgid "Sales Order Line Item" msgstr "" -#: order/models.py:1637 +#: order/models.py:1653 msgid "Virtual part cannot be assigned to a sales order" msgstr "La pièce virtuelle ne peut pas être affectée à une commande" -#: order/models.py:1642 +#: order/models.py:1658 msgid "Only salable parts can be assigned to a sales order" msgstr "Seules les pièces vendues peuvent être attribuées à une commande" -#: order/models.py:1668 part/templates/part/part_pricing.html:107 -#: part/templates/part/prices.html:139 templates/js/translated/pricing.js:957 +#: order/models.py:1684 part/templates/part/part_pricing.html:107 +#: part/templates/part/prices.html:139 templates/js/translated/pricing.js:955 msgid "Sale Price" msgstr "Prix de vente" -#: order/models.py:1669 +#: order/models.py:1685 msgid "Unit sale price" msgstr "Prix de vente unitaire" -#: order/models.py:1678 order/status_codes.py:48 -#: templates/js/translated/sales_order.js:1559 -#: templates/js/translated/sales_order.js:1680 -#: templates/js/translated/sales_order.js:1993 +#: order/models.py:1694 order/status_codes.py:50 +#: templates/js/translated/sales_order.js:1525 +#: templates/js/translated/sales_order.js:1661 +#: templates/js/translated/sales_order.js:1974 msgid "Shipped" msgstr "Expédié" -#: order/models.py:1679 +#: order/models.py:1695 msgid "Shipped quantity" msgstr "Quantité expédiée" -#: order/models.py:1751 +#: order/models.py:1769 msgid "Sales Order Shipment" msgstr "" -#: order/models.py:1772 +#: order/models.py:1801 msgid "Date of shipment" msgstr "Date d'expédition" -#: order/models.py:1778 templates/js/translated/sales_order.js:1072 +#: order/models.py:1807 templates/js/translated/sales_order.js:1038 msgid "Delivery Date" msgstr "Date de Livraison" -#: order/models.py:1779 +#: order/models.py:1808 msgid "Date of delivery of shipment" msgstr "" -#: order/models.py:1787 +#: order/models.py:1816 msgid "Checked By" msgstr "Vérifié par" -#: order/models.py:1788 +#: order/models.py:1817 msgid "User who checked this shipment" msgstr "Utilisateur qui a vérifié cet envoi" -#: order/models.py:1795 order/models.py:2018 order/serializers.py:1475 -#: order/serializers.py:1585 templates/js/translated/model_renderers.js:455 +#: order/models.py:1824 order/models.py:2051 order/serializers.py:1601 +#: order/serializers.py:1725 +#: report/templates/report/inventree_sales_order_shipment_report.html:14 +#: templates/js/translated/model_renderers.js:458 +#: templates/js/translated/sales_order.js:1615 msgid "Shipment" msgstr "Envoi" -#: order/models.py:1796 +#: order/models.py:1825 msgid "Shipment number" msgstr "Numéro d'expédition" -#: order/models.py:1804 +#: order/models.py:1833 msgid "Tracking Number" msgstr "N° de suivi" -#: order/models.py:1805 +#: order/models.py:1834 msgid "Shipment tracking information" msgstr "Information de suivi des colis" -#: order/models.py:1812 +#: order/models.py:1841 msgid "Invoice Number" msgstr "N° de facture" -#: order/models.py:1813 +#: order/models.py:1842 msgid "Reference number for associated invoice" msgstr "Numéro de référence de la facture associée" -#: order/models.py:1833 +#: order/models.py:1862 msgid "Shipment has already been sent" msgstr "Le colis a déjà été envoyé" -#: order/models.py:1836 +#: order/models.py:1865 msgid "Shipment has no allocated stock items" msgstr "L'expédition n'a pas d'articles en stock alloués" -#: order/models.py:1912 +#: order/models.py:1945 msgid "Sales Order Extra Line" msgstr "" -#: order/models.py:1941 +#: order/models.py:1974 msgid "Sales Order Allocation" msgstr "" -#: order/models.py:1964 order/models.py:1966 +#: order/models.py:1997 order/models.py:1999 msgid "Stock item has not been assigned" msgstr "L'article de stock n'a pas été assigné" -#: order/models.py:1973 +#: order/models.py:2006 msgid "Cannot allocate stock item to a line with a different part" msgstr "" -#: order/models.py:1976 +#: order/models.py:2009 msgid "Cannot allocate stock to a line without a part" msgstr "Impossible d'allouer le stock à une ligne sans pièce" -#: order/models.py:1979 +#: order/models.py:2012 msgid "Allocation quantity cannot exceed stock quantity" msgstr "La quantité d'allocation ne peut pas excéder la quantité en stock" -#: order/models.py:1998 order/serializers.py:1345 +#: order/models.py:2031 order/serializers.py:1471 msgid "Quantity must be 1 for serialized stock item" msgstr "" -#: order/models.py:2001 +#: order/models.py:2034 msgid "Sales order does not match shipment" msgstr "" -#: order/models.py:2002 plugin/base/barcodes/api.py:524 +#: order/models.py:2035 plugin/base/barcodes/api.py:629 msgid "Shipment does not match sales order" msgstr "" -#: order/models.py:2010 +#: order/models.py:2043 msgid "Line" msgstr "Ligne" -#: order/models.py:2019 +#: order/models.py:2052 msgid "Sales order shipment reference" msgstr "" -#: order/models.py:2032 order/models.py:2391 +#: order/models.py:2065 order/models.py:2430 #: templates/js/translated/return_order.js:720 msgid "Item" msgstr "Article" -#: order/models.py:2033 +#: order/models.py:2066 msgid "Select stock item to allocate" msgstr "" -#: order/models.py:2042 +#: order/models.py:2075 msgid "Enter stock allocation quantity" msgstr "" -#: order/models.py:2136 +#: order/models.py:2175 msgid "Return Order reference" msgstr "" -#: order/models.py:2148 +#: order/models.py:2187 msgid "Company from which items are being returned" msgstr "" -#: order/models.py:2160 +#: order/models.py:2199 msgid "Return order status" msgstr "Statut du retour de commande" -#: order/models.py:2362 +#: order/models.py:2401 msgid "Return Order Line Item" msgstr "" -#: order/models.py:2376 +#: order/models.py:2415 msgid "Only serialized items can be assigned to a Return Order" msgstr "" -#: order/models.py:2392 +#: order/models.py:2431 msgid "Select item to return from customer" msgstr "" -#: order/models.py:2398 +#: order/models.py:2437 msgid "Received Date" msgstr "" -#: order/models.py:2399 +#: order/models.py:2438 msgid "The date this this return item was received" msgstr "" -#: order/models.py:2410 templates/js/translated/return_order.js:731 +#: order/models.py:2449 templates/js/translated/return_order.js:731 #: templates/js/translated/table_filters.js:122 msgid "Outcome" msgstr "" -#: order/models.py:2411 +#: order/models.py:2450 msgid "Outcome for this line item" msgstr "" -#: order/models.py:2418 +#: order/models.py:2457 msgid "Cost associated with return or repair for this line item" msgstr "" -#: order/models.py:2428 +#: order/models.py:2467 msgid "Return Order Extra Line" msgstr "" -#: order/serializers.py:86 +#: order/serializers.py:87 +msgid "Order ID" +msgstr "ID de commande" + +#: order/serializers.py:87 +msgid "ID of the order to duplicate" +msgstr "" + +#: order/serializers.py:93 +msgid "Copy Lines" +msgstr "" + +#: order/serializers.py:94 +msgid "Copy line items from the original order" +msgstr "" + +#: order/serializers.py:100 +msgid "Copy Extra Lines" +msgstr "" + +#: order/serializers.py:101 +msgid "Copy extra line items from the original order" +msgstr "" + +#: order/serializers.py:117 msgid "Completed Lines" msgstr "" -#: order/serializers.py:283 stock/admin.py:195 +#: order/serializers.py:161 +msgid "Duplicate Order" +msgstr "" + +#: order/serializers.py:162 +msgid "Specify options for duplicating this order" +msgstr "" + +#: order/serializers.py:234 +msgid "Invalid order ID" +msgstr "" + +#: order/serializers.py:374 stock/admin.py:196 msgid "Supplier Name" msgstr "" -#: order/serializers.py:331 +#: order/serializers.py:416 msgid "Order cannot be cancelled" msgstr "La commande ne peut pas être annulée" -#: order/serializers.py:346 order/serializers.py:1366 +#: order/serializers.py:431 order/serializers.py:1492 msgid "Allow order to be closed with incomplete line items" msgstr "" -#: order/serializers.py:356 order/serializers.py:1376 +#: order/serializers.py:441 order/serializers.py:1502 msgid "Order has incomplete line items" msgstr "" -#: order/serializers.py:506 +#: order/serializers.py:591 msgid "Order is not open" msgstr "La commande n'est pas ouverte" -#: order/serializers.py:527 +#: order/serializers.py:612 msgid "Auto Pricing" msgstr "" -#: order/serializers.py:529 +#: order/serializers.py:614 msgid "Automatically calculate purchase price based on supplier part data" msgstr "" -#: order/serializers.py:539 +#: order/serializers.py:624 msgid "Purchase price currency" msgstr "Devise du prix d'achat" -#: order/serializers.py:545 +#: order/serializers.py:630 msgid "Merge Items" msgstr "" -#: order/serializers.py:547 +#: order/serializers.py:632 msgid "Merge items with the same part, destination and target date into one line item" msgstr "" -#: order/serializers.py:560 part/models.py:1033 +#: order/serializers.py:645 part/models.py:1094 part/serializers.py:387 msgid "Internal Part Number" msgstr "" -#: order/serializers.py:568 +#: order/serializers.py:653 msgid "Internal Part Name" msgstr "" -#: order/serializers.py:584 +#: order/serializers.py:669 msgid "Supplier part must be specified" msgstr "" -#: order/serializers.py:587 +#: order/serializers.py:672 msgid "Purchase order must be specified" msgstr "" -#: order/serializers.py:595 +#: order/serializers.py:680 msgid "Supplier must match purchase order" msgstr "" -#: order/serializers.py:596 +#: order/serializers.py:681 msgid "Purchase order must match supplier" msgstr "" -#: order/serializers.py:639 order/serializers.py:1446 +#: order/serializers.py:724 order/serializers.py:1572 msgid "Line Item" msgstr "" -#: order/serializers.py:645 +#: order/serializers.py:730 msgid "Line item does not match purchase order" msgstr "" -#: order/serializers.py:655 order/serializers.py:779 order/serializers.py:1782 +#: order/serializers.py:740 order/serializers.py:881 order/serializers.py:1934 msgid "Select destination location for received items" msgstr "" -#: order/serializers.py:671 templates/js/translated/purchase_order.js:1130 +#: order/serializers.py:756 templates/js/translated/purchase_order.js:1113 #: templates/js/translated/stock.js:1200 msgid "Enter batch code for incoming stock items" msgstr "" -#: order/serializers.py:679 templates/js/translated/purchase_order.js:1155 +#: order/serializers.py:764 templates/js/translated/purchase_order.js:1138 msgid "Enter serial numbers for incoming stock items" msgstr "Entrez les numéros de série pour les articles de stock entrants" -#: order/serializers.py:691 +#: order/serializers.py:776 msgid "Override packaging information for incoming stock items" msgstr "" -#: order/serializers.py:699 +#: order/serializers.py:784 msgid "Additional note for incoming stock items" msgstr "" -#: order/serializers.py:706 templates/js/translated/barcode.js:52 +#: order/serializers.py:791 templates/js/translated/barcode.js:52 msgid "Barcode" msgstr "Code-barres" -#: order/serializers.py:707 +#: order/serializers.py:792 msgid "Scanned barcode" msgstr "" -#: order/serializers.py:723 +#: order/serializers.py:808 msgid "Barcode is already in use" msgstr "Le code-barres est déjà utilisé" -#: order/serializers.py:747 +#: order/serializers.py:831 msgid "An integer quantity must be provided for trackable parts" msgstr "Une quantité entière doit être fournie pour les pièces tracables" -#: order/serializers.py:795 order/serializers.py:1798 +#: order/serializers.py:898 order/serializers.py:1950 msgid "Line items must be provided" msgstr "" -#: order/serializers.py:811 +#: order/serializers.py:914 msgid "Destination location must be specified" msgstr "" -#: order/serializers.py:822 +#: order/serializers.py:925 msgid "Supplied barcode values must be unique" msgstr "" -#: order/serializers.py:1187 +#: order/serializers.py:1221 msgid "Sale price currency" msgstr "Devise du prix de vente" -#: order/serializers.py:1248 +#: order/serializers.py:1260 +msgid "Allocated Items" +msgstr "" + +#: order/serializers.py:1374 msgid "No shipment details provided" msgstr "" -#: order/serializers.py:1309 order/serializers.py:1455 +#: order/serializers.py:1435 order/serializers.py:1581 msgid "Line item is not associated with this order" msgstr "" -#: order/serializers.py:1328 +#: order/serializers.py:1454 msgid "Quantity must be positive" msgstr "" -#: order/serializers.py:1465 +#: order/serializers.py:1591 msgid "Enter serial numbers to allocate" msgstr "Entrez les numéros de série à allouer" -#: order/serializers.py:1487 order/serializers.py:1593 +#: order/serializers.py:1613 order/serializers.py:1733 msgid "Shipment has already been shipped" msgstr "" -#: order/serializers.py:1490 order/serializers.py:1596 +#: order/serializers.py:1616 order/serializers.py:1736 msgid "Shipment is not associated with this order" msgstr "" -#: order/serializers.py:1537 +#: order/serializers.py:1671 msgid "No match found for the following serial numbers" msgstr "Aucune correspondance trouvée pour les numéros de série suivants" -#: order/serializers.py:1544 -msgid "The following serial numbers are already allocated" -msgstr "Les numéros de série suivants sont déjà alloués" +#: order/serializers.py:1678 +msgid "The following serial numbers are unavailable" +msgstr "Les numéros de série suivants ne sont pas disponibles" -#: order/serializers.py:1752 +#: order/serializers.py:1904 msgid "Return order line item" msgstr "" -#: order/serializers.py:1758 +#: order/serializers.py:1910 msgid "Line item does not match return order" msgstr "" -#: order/serializers.py:1761 +#: order/serializers.py:1913 msgid "Line item has already been received" msgstr "" -#: order/serializers.py:1790 +#: order/serializers.py:1942 msgid "Items can only be received against orders which are in progress" msgstr "" -#: order/serializers.py:1873 +#: order/serializers.py:2025 msgid "Line price currency" msgstr "" -#: order/status_codes.py:17 order/status_codes.py:52 stock/status_codes.py:16 +#: order/status_codes.py:17 order/status_codes.py:54 stock/status_codes.py:16 msgid "Lost" msgstr "Perdu" -#: order/status_codes.py:18 order/status_codes.py:53 stock/status_codes.py:22 +#: order/status_codes.py:18 order/status_codes.py:55 stock/status_codes.py:24 msgid "Returned" msgstr "Retourné" -#: order/status_codes.py:45 order/status_codes.py:77 +#: order/status_codes.py:47 order/status_codes.py:79 msgid "In Progress" msgstr "En Cours" -#: order/status_codes.py:101 +#: order/status_codes.py:105 msgid "Return" msgstr "Retour" -#: order/status_codes.py:104 +#: order/status_codes.py:108 msgid "Repair" msgstr "Réparer" -#: order/status_codes.py:107 +#: order/status_codes.py:111 msgid "Replace" msgstr "Remplacer" -#: order/status_codes.py:110 +#: order/status_codes.py:114 msgid "Refund" msgstr "Remboursement" -#: order/status_codes.py:113 +#: order/status_codes.py:117 msgid "Reject" msgstr "Refuser" -#: order/tasks.py:25 +#: order/tasks.py:30 msgid "Overdue Purchase Order" msgstr "" -#: order/tasks.py:30 +#: order/tasks.py:35 #, python-brace-format msgid "Purchase order {po} is now overdue" msgstr "" -#: order/tasks.py:75 +#: order/tasks.py:80 msgid "Overdue Sales Order" msgstr "" -#: order/tasks.py:80 +#: order/tasks.py:85 #, python-brace-format msgid "Sales order {so} is now overdue" msgstr "" -#: order/templates/order/order_base.html:51 +#: order/templates/order/order_base.html:52 msgid "Print purchase order report" msgstr "" -#: order/templates/order/order_base.html:53 -#: order/templates/order/return_order_base.html:62 -#: order/templates/order/sales_order_base.html:62 +#: order/templates/order/order_base.html:54 +#: order/templates/order/return_order_base.html:63 +#: order/templates/order/sales_order_base.html:63 msgid "Export order to file" msgstr "" -#: order/templates/order/order_base.html:59 -#: order/templates/order/return_order_base.html:72 -#: order/templates/order/sales_order_base.html:71 +#: order/templates/order/order_base.html:60 +#: order/templates/order/return_order_base.html:73 +#: order/templates/order/sales_order_base.html:72 msgid "Order actions" msgstr "" -#: order/templates/order/order_base.html:64 -#: order/templates/order/return_order_base.html:76 -#: order/templates/order/sales_order_base.html:75 +#: order/templates/order/order_base.html:65 +#: order/templates/order/return_order_base.html:77 +#: order/templates/order/sales_order_base.html:76 msgid "Edit order" msgstr "Modifier la commande" -#: order/templates/order/order_base.html:68 +#: order/templates/order/order_base.html:69 msgid "Duplicate order" msgstr "" -#: order/templates/order/order_base.html:73 -#: order/templates/order/return_order_base.html:78 -#: order/templates/order/sales_order_base.html:77 +#: order/templates/order/order_base.html:74 +#: order/templates/order/return_order_base.html:79 +#: order/templates/order/sales_order_base.html:78 msgid "Hold order" msgstr "" -#: order/templates/order/order_base.html:78 -#: order/templates/order/return_order_base.html:81 -#: order/templates/order/sales_order_base.html:80 +#: order/templates/order/order_base.html:79 +#: order/templates/order/return_order_base.html:82 +#: order/templates/order/sales_order_base.html:81 msgid "Cancel order" msgstr "Annuler la commande" -#: order/templates/order/order_base.html:84 #: order/templates/order/order_base.html:85 -#: order/templates/order/return_order_base.html:85 +#: order/templates/order/order_base.html:86 #: order/templates/order/return_order_base.html:86 -#: order/templates/order/sales_order_base.html:86 +#: order/templates/order/return_order_base.html:87 #: order/templates/order/sales_order_base.html:87 +#: order/templates/order/sales_order_base.html:88 msgid "Issue Order" msgstr "" -#: order/templates/order/order_base.html:88 -#: order/templates/order/return_order_base.html:89 +#: order/templates/order/order_base.html:89 +#: order/templates/order/return_order_base.html:90 msgid "Mark order as complete" msgstr "Marquer la commande comme complète" -#: order/templates/order/order_base.html:89 -#: order/templates/order/return_order_base.html:90 -#: order/templates/order/sales_order_base.html:100 +#: order/templates/order/order_base.html:90 +#: order/templates/order/return_order_base.html:91 +#: order/templates/order/sales_order_base.html:101 msgid "Complete Order" msgstr "Finaliser la commande" -#: order/templates/order/order_base.html:96 +#: order/templates/order/order_base.html:97 msgid "Supplier part thumbnail" msgstr "" -#: order/templates/order/order_base.html:116 -#: order/templates/order/return_order_base.html:109 -#: order/templates/order/sales_order_base.html:118 +#: order/templates/order/order_base.html:117 +#: order/templates/order/return_order_base.html:110 +#: order/templates/order/sales_order_base.html:119 msgid "Order Description" msgstr "Description de la commande" -#: order/templates/order/order_base.html:146 -msgid "No suppplier information available" -msgstr "" - -#: order/templates/order/order_base.html:159 -#: order/templates/order/sales_order_base.html:164 +#: order/templates/order/order_base.html:168 +#: order/templates/order/sales_order_base.html:165 msgid "Completed Line Items" msgstr "" -#: order/templates/order/order_base.html:165 -#: order/templates/order/sales_order_base.html:170 -#: order/templates/order/sales_order_base.html:180 +#: order/templates/order/order_base.html:174 +#: order/templates/order/sales_order_base.html:171 +#: order/templates/order/sales_order_base.html:181 msgid "Incomplete" msgstr "Incomplet" -#: order/templates/order/order_base.html:184 -#: order/templates/order/return_order_base.html:160 +#: order/templates/order/order_base.html:193 +#: order/templates/order/return_order_base.html:161 #: report/templates/report/inventree_build_order_report.html:121 msgid "Issued" msgstr "" -#: order/templates/order/order_base.html:229 +#: order/templates/order/order_base.html:238 msgid "Total cost" msgstr "" -#: order/templates/order/order_base.html:233 -#: order/templates/order/return_order_base.html:202 -#: order/templates/order/sales_order_base.html:246 +#: order/templates/order/order_base.html:242 +#: order/templates/order/return_order_base.html:203 +#: order/templates/order/sales_order_base.html:247 msgid "Total cost could not be calculated" msgstr "" -#: order/templates/order/order_base.html:335 +#: order/templates/order/order_base.html:344 msgid "Purchase Order QR Code" msgstr "" -#: order/templates/order/order_base.html:347 +#: order/templates/order/order_base.html:356 msgid "Link Barcode to Purchase Order" msgstr "" @@ -6184,12 +6392,12 @@ msgstr "Dupliquer la sélection" #: part/templates/part/import_wizard/ajax_match_references.html:42 #: part/templates/part/import_wizard/match_fields.html:71 #: part/templates/part/import_wizard/match_references.html:49 -#: templates/js/translated/bom.js:133 templates/js/translated/build.js:530 -#: templates/js/translated/build.js:1802 -#: templates/js/translated/purchase_order.js:696 -#: templates/js/translated/purchase_order.js:1288 +#: templates/js/translated/bom.js:133 templates/js/translated/build.js:533 +#: templates/js/translated/build.js:1805 +#: templates/js/translated/purchase_order.js:679 +#: templates/js/translated/purchase_order.js:1271 #: templates/js/translated/return_order.js:505 -#: templates/js/translated/sales_order.js:1145 +#: templates/js/translated/sales_order.js:1111 #: templates/js/translated/stock.js:720 templates/js/translated/stock.js:889 #: templates/patterns/wizard/match_fields.html:70 msgid "Remove row" @@ -6242,7 +6450,7 @@ msgstr "Articles de la commande d'achat" #: order/templates/order/purchase_order_detail.html:27 #: order/templates/order/return_order_detail.html:24 #: order/templates/order/sales_order_detail.html:24 -#: templates/js/translated/purchase_order.js:414 +#: templates/js/translated/purchase_order.js:397 #: templates/js/translated/return_order.js:458 #: templates/js/translated/sales_order.js:237 msgid "Add Line Item" @@ -6277,45 +6485,45 @@ msgstr "Articles reçus" msgid "Order Notes" msgstr "Notes de commande" -#: order/templates/order/return_order_base.html:18 -#: order/templates/order/sales_order_base.html:18 +#: order/templates/order/return_order_base.html:19 +#: order/templates/order/sales_order_base.html:19 msgid "Customer logo thumbnail" msgstr "" -#: order/templates/order/return_order_base.html:60 +#: order/templates/order/return_order_base.html:61 msgid "Print return order report" msgstr "" -#: order/templates/order/return_order_base.html:64 -#: order/templates/order/sales_order_base.html:64 +#: order/templates/order/return_order_base.html:65 +#: order/templates/order/sales_order_base.html:65 msgid "Print packing list" msgstr "" -#: order/templates/order/return_order_base.html:141 -#: order/templates/order/sales_order_base.html:158 +#: order/templates/order/return_order_base.html:142 +#: order/templates/order/sales_order_base.html:159 #: templates/js/translated/return_order.js:308 -#: templates/js/translated/sales_order.js:833 +#: templates/js/translated/sales_order.js:792 msgid "Customer Reference" msgstr "Référence client" -#: order/templates/order/return_order_base.html:198 -#: order/templates/order/sales_order_base.html:242 +#: order/templates/order/return_order_base.html:199 +#: order/templates/order/sales_order_base.html:243 #: part/templates/part/part_pricing.html:32 #: part/templates/part/part_pricing.html:58 #: part/templates/part/part_pricing.html:99 #: part/templates/part/part_pricing.html:114 #: templates/js/translated/part.js:1079 -#: templates/js/translated/purchase_order.js:1822 +#: templates/js/translated/purchase_order.js:1806 #: templates/js/translated/return_order.js:380 -#: templates/js/translated/sales_order.js:891 +#: templates/js/translated/sales_order.js:850 msgid "Total Cost" msgstr "Coût total" -#: order/templates/order/return_order_base.html:273 +#: order/templates/order/return_order_base.html:274 msgid "Return Order QR Code" msgstr "" -#: order/templates/order/return_order_base.html:285 +#: order/templates/order/return_order_base.html:286 msgid "Link Barcode to Return Order" msgstr "" @@ -6323,40 +6531,40 @@ msgstr "" msgid "Order Details" msgstr "Détails de la Commande" -#: order/templates/order/sales_order_base.html:60 +#: order/templates/order/sales_order_base.html:61 msgid "Print sales order report" msgstr "" -#: order/templates/order/sales_order_base.html:91 #: order/templates/order/sales_order_base.html:92 +#: order/templates/order/sales_order_base.html:93 msgid "Ship Items" msgstr "" -#: order/templates/order/sales_order_base.html:95 #: order/templates/order/sales_order_base.html:96 +#: order/templates/order/sales_order_base.html:97 msgid "Mark As Shipped" msgstr "" -#: order/templates/order/sales_order_base.html:99 -#: templates/js/translated/sales_order.js:536 +#: order/templates/order/sales_order_base.html:100 +#: templates/js/translated/sales_order.js:495 msgid "Complete Sales Order" msgstr "" -#: order/templates/order/sales_order_base.html:138 +#: order/templates/order/sales_order_base.html:139 msgid "This Sales Order has not been fully allocated" msgstr "" -#: order/templates/order/sales_order_base.html:176 +#: order/templates/order/sales_order_base.html:177 #: order/templates/order/sales_order_detail.html:99 #: order/templates/order/so_sidebar.html:11 msgid "Completed Shipments" msgstr "" -#: order/templates/order/sales_order_base.html:339 +#: order/templates/order/sales_order_base.html:340 msgid "Sales Order QR Code" msgstr "" -#: order/templates/order/sales_order_base.html:351 +#: order/templates/order/sales_order_base.html:352 msgid "Link Barcode to Sales Order" msgstr "" @@ -6370,7 +6578,7 @@ msgid "Pending Shipments" msgstr "Expéditions en attente" #: order/templates/order/sales_order_detail.html:71 -#: templates/js/translated/bom.js:1277 templates/js/translated/build.js:1063 +#: templates/js/translated/bom.js:1277 templates/js/translated/build.js:1066 #: templates/js/translated/filters.js:299 msgid "Actions" msgstr "Actions" @@ -6383,39 +6591,40 @@ msgstr "Nouvelle Expédition" msgid "Match Supplier Parts" msgstr "" -#: order/views.py:406 +#: order/views.py:407 msgid "Sales order not found" msgstr "" -#: order/views.py:412 +#: order/views.py:413 msgid "Price not found" msgstr "Prix introuvable" -#: order/views.py:415 +#: order/views.py:416 #, python-brace-format msgid "Updated {part} unit-price to {price}" msgstr "" -#: order/views.py:421 +#: order/views.py:422 #, python-brace-format msgid "Updated {part} unit-price to {price} and quantity to {qty}" msgstr "" -#: part/admin.py:48 part/models.py:1032 part/templates/part/part_base.html:269 +#: part/admin.py:48 part/models.py:1093 part/serializers.py:939 +#: part/templates/part/part_base.html:277 #: report/templates/report/inventree_stock_location_report.html:103 #: templates/js/translated/part.js:1233 templates/js/translated/part.js:2347 -#: templates/js/translated/stock.js:2121 +#: templates/js/translated/stock.js:2122 msgid "IPN" msgstr "" -#: part/admin.py:50 part/models.py:1041 part/templates/part/part_base.html:286 +#: part/admin.py:50 part/models.py:1102 part/templates/part/part_base.html:294 #: report/models.py:161 templates/js/translated/part.js:1238 #: templates/js/translated/part.js:2353 msgid "Revision" msgstr "Révision" -#: part/admin.py:53 part/admin.py:319 part/models.py:1014 -#: part/templates/part/category.html:91 part/templates/part/part_base.html:307 +#: part/admin.py:53 part/admin.py:319 part/models.py:1075 +#: part/templates/part/category.html:91 part/templates/part/part_base.html:315 msgid "Keywords" msgstr "Mots-clés" @@ -6427,7 +6636,7 @@ msgstr "Image pièce" msgid "Category ID" msgstr "ID catégorie" -#: part/admin.py:67 part/admin.py:304 part/serializers.py:880 +#: part/admin.py:67 part/admin.py:304 part/serializers.py:924 #: part/stocktake.py:222 msgid "Category Name" msgstr "Nom catégorie" @@ -6440,11 +6649,11 @@ msgstr "ID Emplacement par défaut" msgid "Default Supplier ID" msgstr "ID Fournisseur par défaut" -#: part/admin.py:81 part/models.py:1000 part/templates/part/part_base.html:177 +#: part/admin.py:81 part/models.py:1061 part/templates/part/part_base.html:178 msgid "Variant Of" msgstr "Variante de" -#: part/admin.py:84 part/models.py:1138 part/templates/part/part_base.html:203 +#: part/admin.py:84 part/models.py:1199 part/templates/part/part_base.html:204 msgid "Minimum Stock" msgstr "Stock Minimum" @@ -6452,23 +6661,23 @@ msgstr "Stock Minimum" msgid "Used In" msgstr "Utilisé pour" -#: part/admin.py:150 part/serializers.py:897 -#: part/templates/part/part_base.html:241 stock/admin.py:235 +#: part/admin.py:150 part/serializers.py:949 +#: part/templates/part/part_base.html:249 stock/admin.py:236 #: templates/js/translated/part.js:717 templates/js/translated/part.js:2159 msgid "Building" msgstr "Construction" -#: part/admin.py:155 part/models.py:3202 part/models.py:3216 +#: part/admin.py:155 part/models.py:3253 part/models.py:3267 #: templates/js/translated/part.js:976 msgid "Minimum Cost" msgstr "Coût minimal" -#: part/admin.py:158 part/models.py:3209 part/models.py:3223 +#: part/admin.py:158 part/models.py:3260 part/models.py:3274 #: templates/js/translated/part.js:986 msgid "Maximum Cost" msgstr "Coût maximal" -#: part/admin.py:308 part/admin.py:387 stock/admin.py:57 stock/admin.py:215 +#: part/admin.py:308 part/admin.py:387 stock/admin.py:57 stock/admin.py:216 msgid "Parent ID" msgstr "" @@ -6481,8 +6690,8 @@ msgstr "" msgid "Category Path" msgstr "Chemin catégorie" -#: part/admin.py:325 part/models.py:425 part/serializers.py:130 -#: part/serializers.py:290 part/serializers.py:415 +#: part/admin.py:325 part/models.py:420 part/serializers.py:130 +#: part/serializers.py:323 part/serializers.py:459 #: part/templates/part/cat_link.html:3 part/templates/part/category.html:20 #: part/templates/part/category.html:138 part/templates/part/category.html:158 #: part/templates/part/category_sidebar.html:9 @@ -6509,15 +6718,15 @@ msgstr "" msgid "Part Revision" msgstr "" -#: part/admin.py:418 part/serializers.py:1346 +#: part/admin.py:418 part/serializers.py:1400 #: templates/js/translated/pricing.js:358 -#: templates/js/translated/pricing.js:1024 +#: templates/js/translated/pricing.js:1022 msgid "Minimum Price" msgstr "Prix Minimum" -#: part/admin.py:423 part/serializers.py:1361 +#: part/admin.py:423 part/serializers.py:1415 #: templates/js/translated/pricing.js:353 -#: templates/js/translated/pricing.js:1032 +#: templates/js/translated/pricing.js:1030 msgid "Maximum Price" msgstr "Prix Maximum" @@ -6545,94 +6754,98 @@ msgstr "" msgid "Filter by top-level categories" msgstr "" +#: part/api.py:156 stock/api.py:343 +msgid "Cascade" +msgstr "" + #: part/api.py:158 msgid "Include sub-categories in filtered results" msgstr "" -#: part/api.py:179 templates/js/translated/part.js:311 +#: part/api.py:178 templates/js/translated/part.js:311 msgid "Parent" msgstr "" -#: part/api.py:181 +#: part/api.py:180 msgid "Filter by parent category" msgstr "" -#: part/api.py:214 +#: part/api.py:213 msgid "Exclude Tree" msgstr "" -#: part/api.py:216 +#: part/api.py:215 msgid "Exclude sub-categories under the specified category" msgstr "" -#: part/api.py:441 +#: part/api.py:440 msgid "Has Results" msgstr "" -#: part/api.py:608 +#: part/api.py:604 msgid "Incoming Purchase Order" msgstr "" -#: part/api.py:626 +#: part/api.py:618 msgid "Outgoing Sales Order" msgstr "" -#: part/api.py:642 +#: part/api.py:630 msgid "Stock produced by Build Order" msgstr "" -#: part/api.py:726 +#: part/api.py:712 msgid "Stock required for Build Order" msgstr "" -#: part/api.py:874 +#: part/api.py:858 msgid "Validate entire Bill of Materials" msgstr "" -#: part/api.py:880 +#: part/api.py:864 msgid "This option must be selected" msgstr "" -#: part/api.py:916 +#: part/api.py:900 msgid "Is Revision" msgstr "" -#: part/api.py:926 +#: part/api.py:910 msgid "Has Revisions" msgstr "" -#: part/api.py:1117 +#: part/api.py:1101 msgid "BOM Valid" msgstr "" -#: part/api.py:1523 part/models.py:1024 part/models.py:3489 part/models.py:4046 -#: part/serializers.py:430 part/serializers.py:1202 -#: part/templates/part/part_base.html:260 stock/api.py:781 +#: part/api.py:1509 part/models.py:1085 part/models.py:3540 part/models.py:4104 +#: part/serializers.py:474 part/serializers.py:1255 +#: part/templates/part/part_base.html:268 stock/api.py:781 #: templates/InvenTree/settings/settings_staff_js.html:300 #: templates/js/translated/notification.js:60 #: templates/js/translated/part.js:2383 msgid "Category" msgstr "Catégorie" -#: part/api.py:1761 +#: part/api.py:1750 msgid "Assembly part is testable" msgstr "" -#: part/api.py:1770 +#: part/api.py:1759 msgid "Component part is testable" msgstr "" -#: part/api.py:1821 +#: part/api.py:1810 msgid "Uses" msgstr "Utilise" -#: part/bom.py:178 part/models.py:107 part/models.py:1077 -#: part/templates/part/category.html:113 part/templates/part/part_base.html:376 +#: part/bom.py:183 part/models.py:109 part/models.py:1138 +#: part/templates/part/category.html:113 part/templates/part/part_base.html:384 #: templates/js/translated/part.js:2397 msgid "Default Location" msgstr "Emplacement par défaut" -#: part/bom.py:179 part/serializers.py:905 +#: part/bom.py:184 part/serializers.py:957 #: templates/email/low_stock_notification.html:16 msgid "Total Stock" msgstr "Stock total" @@ -6641,789 +6854,789 @@ msgstr "Stock total" msgid "Input quantity for price calculation" msgstr "" -#: part/models.py:88 part/models.py:4047 part/templates/part/category.html:16 +#: part/models.py:90 part/models.py:4105 part/templates/part/category.html:16 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "Catégorie de composant" -#: part/models.py:89 part/templates/part/category.html:133 +#: part/models.py:91 part/templates/part/category.html:133 #: templates/InvenTree/search.html:97 templates/js/translated/search.js:158 #: users/models.py:202 msgid "Part Categories" msgstr "Catégories de composants" -#: part/models.py:108 +#: part/models.py:110 msgid "Default location for parts in this category" msgstr "" -#: part/models.py:113 stock/models.py:187 templates/js/translated/part.js:2828 -#: templates/js/translated/stock.js:2856 +#: part/models.py:115 stock/models.py:193 templates/js/translated/part.js:2828 +#: templates/js/translated/stock.js:2857 #: templates/js/translated/table_filters.js:246 #: templates/js/translated/table_filters.js:290 msgid "Structural" msgstr "Structurel" -#: part/models.py:115 +#: part/models.py:117 msgid "Parts may not be directly assigned to a structural category, but may be assigned to child categories." msgstr "" -#: part/models.py:124 +#: part/models.py:126 msgid "Default keywords" msgstr "Mots-clés par défaut" -#: part/models.py:125 +#: part/models.py:127 msgid "Default keywords for parts in this category" msgstr "" -#: part/models.py:131 stock/models.py:90 stock/models.py:169 +#: part/models.py:133 stock/models.py:96 stock/models.py:175 #: templates/InvenTree/settings/settings_staff_js.html:445 msgid "Icon" msgstr "" -#: part/models.py:132 part/serializers.py:143 part/serializers.py:161 -#: stock/models.py:170 +#: part/models.py:134 part/serializers.py:143 part/serializers.py:161 +#: stock/models.py:176 msgid "Icon (optional)" msgstr "" -#: part/models.py:178 +#: part/models.py:180 msgid "You cannot make this part category structural because some parts are already assigned to it!" msgstr "" -#: part/models.py:519 +#: part/models.py:514 msgid "Cannot delete this part as it is locked" msgstr "" -#: part/models.py:522 +#: part/models.py:517 msgid "Cannot delete this part as it is still active" msgstr "" -#: part/models.py:527 +#: part/models.py:522 msgid "Cannot delete this part as it is used in an assembly" msgstr "" -#: part/models.py:565 +#: part/models.py:560 msgid "Invalid choice for parent part" msgstr "" -#: part/models.py:613 part/models.py:620 +#: part/models.py:608 part/models.py:615 #, python-brace-format msgid "Part '{self}' cannot be used in BOM for '{parent}' (recursive)" msgstr "" -#: part/models.py:632 +#: part/models.py:627 #, python-brace-format msgid "Part '{parent}' is used in BOM for '{self}' (recursive)" msgstr "" -#: part/models.py:695 +#: part/models.py:694 #, python-brace-format msgid "IPN must match regex pattern {pattern}" msgstr "" -#: part/models.py:703 +#: part/models.py:702 msgid "Part cannot be a revision of itself" msgstr "" -#: part/models.py:710 +#: part/models.py:709 msgid "Cannot make a revision of a part which is already a revision" msgstr "" -#: part/models.py:717 +#: part/models.py:716 msgid "Revision code must be specified" msgstr "" -#: part/models.py:724 +#: part/models.py:723 msgid "Revisions are only allowed for assembly parts" msgstr "" -#: part/models.py:731 +#: part/models.py:730 msgid "Cannot make a revision of a template part" msgstr "" -#: part/models.py:737 +#: part/models.py:736 msgid "Parent part must point to the same template" msgstr "" -#: part/models.py:816 +#: part/models.py:832 msgid "Stock item with this serial number already exists" msgstr "" -#: part/models.py:917 +#: part/models.py:976 msgid "Duplicate IPN not allowed in part settings" msgstr "IPN dupliqué non autorisé dans les paramètres de la pièce" -#: part/models.py:926 +#: part/models.py:988 msgid "Duplicate part revision already exists." msgstr "" -#: part/models.py:936 +#: part/models.py:997 msgid "Part with this Name, IPN and Revision already exists." msgstr "" -#: part/models.py:951 +#: part/models.py:1012 msgid "Parts cannot be assigned to structural part categories!" msgstr "" -#: part/models.py:983 part/models.py:4102 +#: part/models.py:1044 part/models.py:4160 msgid "Part name" msgstr "Nom de l'article" -#: part/models.py:988 +#: part/models.py:1049 msgid "Is Template" msgstr "" -#: part/models.py:989 +#: part/models.py:1050 msgid "Is this part a template part?" msgstr "" -#: part/models.py:999 +#: part/models.py:1060 msgid "Is this part a variant of another part?" msgstr "" -#: part/models.py:1007 +#: part/models.py:1068 msgid "Part description (optional)" msgstr "" -#: part/models.py:1015 +#: part/models.py:1076 msgid "Part keywords to improve visibility in search results" msgstr "" -#: part/models.py:1025 +#: part/models.py:1086 msgid "Part category" msgstr "Catégorie de la pièce" -#: part/models.py:1040 +#: part/models.py:1101 msgid "Part revision or version number" msgstr "" -#: part/models.py:1050 +#: part/models.py:1111 msgid "Is this part a revision of another part?" msgstr "" -#: part/models.py:1051 part/templates/part/part_base.html:277 +#: part/models.py:1112 part/templates/part/part_base.html:285 msgid "Revision Of" msgstr "" -#: part/models.py:1075 +#: part/models.py:1136 msgid "Where is this item normally stored?" msgstr "" -#: part/models.py:1121 part/templates/part/part_base.html:385 +#: part/models.py:1182 part/templates/part/part_base.html:393 msgid "Default Supplier" msgstr "" -#: part/models.py:1122 +#: part/models.py:1183 msgid "Default supplier part" msgstr "" -#: part/models.py:1129 +#: part/models.py:1190 msgid "Default Expiry" msgstr "" -#: part/models.py:1130 +#: part/models.py:1191 msgid "Expiry time (in days) for stock items of this part" msgstr "" -#: part/models.py:1139 +#: part/models.py:1200 msgid "Minimum allowed stock level" msgstr "" -#: part/models.py:1148 +#: part/models.py:1209 msgid "Units of measure for this part" msgstr "" -#: part/models.py:1155 +#: part/models.py:1216 msgid "Can this part be built from other parts?" msgstr "" -#: part/models.py:1161 +#: part/models.py:1222 msgid "Can this part be used to build other parts?" msgstr "" -#: part/models.py:1167 +#: part/models.py:1228 msgid "Does this part have tracking for unique items?" msgstr "" -#: part/models.py:1173 +#: part/models.py:1234 msgid "Can this part have test results recorded against it?" msgstr "" -#: part/models.py:1179 +#: part/models.py:1240 msgid "Can this part be purchased from external suppliers?" msgstr "" -#: part/models.py:1185 +#: part/models.py:1246 msgid "Can this part be sold to customers?" msgstr "" -#: part/models.py:1189 +#: part/models.py:1250 msgid "Is this part active?" msgstr "Est-ce que cette pièce est active ?" -#: part/models.py:1194 templates/js/translated/part.js:821 +#: part/models.py:1255 templates/js/translated/part.js:821 #: templates/js/translated/table_filters.js:724 msgid "Locked" msgstr "" -#: part/models.py:1195 +#: part/models.py:1256 msgid "Locked parts cannot be edited" msgstr "" -#: part/models.py:1201 +#: part/models.py:1262 msgid "Is this a virtual part, such as a software product or license?" msgstr "" -#: part/models.py:1207 +#: part/models.py:1268 msgid "BOM checksum" msgstr "" -#: part/models.py:1208 +#: part/models.py:1269 msgid "Stored BOM checksum" msgstr "" -#: part/models.py:1216 +#: part/models.py:1277 msgid "BOM checked by" msgstr "" -#: part/models.py:1221 +#: part/models.py:1282 msgid "BOM checked date" msgstr "" -#: part/models.py:1237 +#: part/models.py:1298 msgid "Creation User" msgstr "Création Utilisateur" -#: part/models.py:1247 +#: part/models.py:1308 msgid "Owner responsible for this part" msgstr "Propriétaire responsable de cette pièce" -#: part/models.py:1252 part/templates/part/part_base.html:348 -#: stock/templates/stock/item_base.html:451 +#: part/models.py:1313 part/templates/part/part_base.html:356 +#: stock/templates/stock/item_base.html:448 #: templates/js/translated/part.js:2490 msgid "Last Stocktake" msgstr "" -#: part/models.py:2125 +#: part/models.py:2185 msgid "Sell multiple" msgstr "Ventes multiples" -#: part/models.py:3116 +#: part/models.py:3167 msgid "Currency used to cache pricing calculations" msgstr "" -#: part/models.py:3132 +#: part/models.py:3183 msgid "Minimum BOM Cost" msgstr "" -#: part/models.py:3133 +#: part/models.py:3184 msgid "Minimum cost of component parts" msgstr "" -#: part/models.py:3139 +#: part/models.py:3190 msgid "Maximum BOM Cost" msgstr "" -#: part/models.py:3140 +#: part/models.py:3191 msgid "Maximum cost of component parts" msgstr "" -#: part/models.py:3146 +#: part/models.py:3197 msgid "Minimum Purchase Cost" msgstr "" -#: part/models.py:3147 +#: part/models.py:3198 msgid "Minimum historical purchase cost" msgstr "" -#: part/models.py:3153 +#: part/models.py:3204 msgid "Maximum Purchase Cost" msgstr "" -#: part/models.py:3154 +#: part/models.py:3205 msgid "Maximum historical purchase cost" msgstr "" -#: part/models.py:3160 +#: part/models.py:3211 msgid "Minimum Internal Price" msgstr "" -#: part/models.py:3161 +#: part/models.py:3212 msgid "Minimum cost based on internal price breaks" msgstr "" -#: part/models.py:3167 +#: part/models.py:3218 msgid "Maximum Internal Price" msgstr "" -#: part/models.py:3168 +#: part/models.py:3219 msgid "Maximum cost based on internal price breaks" msgstr "" -#: part/models.py:3174 +#: part/models.py:3225 msgid "Minimum Supplier Price" msgstr "" -#: part/models.py:3175 +#: part/models.py:3226 msgid "Minimum price of part from external suppliers" msgstr "" -#: part/models.py:3181 +#: part/models.py:3232 msgid "Maximum Supplier Price" msgstr "" -#: part/models.py:3182 +#: part/models.py:3233 msgid "Maximum price of part from external suppliers" msgstr "" -#: part/models.py:3188 +#: part/models.py:3239 msgid "Minimum Variant Cost" msgstr "" -#: part/models.py:3189 +#: part/models.py:3240 msgid "Calculated minimum cost of variant parts" msgstr "" -#: part/models.py:3195 +#: part/models.py:3246 msgid "Maximum Variant Cost" msgstr "" -#: part/models.py:3196 +#: part/models.py:3247 msgid "Calculated maximum cost of variant parts" msgstr "" -#: part/models.py:3203 +#: part/models.py:3254 msgid "Override minimum cost" msgstr "" -#: part/models.py:3210 +#: part/models.py:3261 msgid "Override maximum cost" msgstr "" -#: part/models.py:3217 +#: part/models.py:3268 msgid "Calculated overall minimum cost" msgstr "" -#: part/models.py:3224 +#: part/models.py:3275 msgid "Calculated overall maximum cost" msgstr "" -#: part/models.py:3230 +#: part/models.py:3281 msgid "Minimum Sale Price" msgstr "" -#: part/models.py:3231 +#: part/models.py:3282 msgid "Minimum sale price based on price breaks" msgstr "" -#: part/models.py:3237 +#: part/models.py:3288 msgid "Maximum Sale Price" msgstr "" -#: part/models.py:3238 +#: part/models.py:3289 msgid "Maximum sale price based on price breaks" msgstr "" -#: part/models.py:3244 +#: part/models.py:3295 msgid "Minimum Sale Cost" msgstr "Coût minimum de vente" -#: part/models.py:3245 +#: part/models.py:3296 msgid "Minimum historical sale price" msgstr "" -#: part/models.py:3251 +#: part/models.py:3302 msgid "Maximum Sale Cost" msgstr "" -#: part/models.py:3252 +#: part/models.py:3303 msgid "Maximum historical sale price" msgstr "" -#: part/models.py:3271 +#: part/models.py:3322 msgid "Part for stocktake" msgstr "" -#: part/models.py:3276 +#: part/models.py:3327 msgid "Item Count" msgstr "" -#: part/models.py:3277 +#: part/models.py:3328 msgid "Number of individual stock entries at time of stocktake" msgstr "" -#: part/models.py:3285 +#: part/models.py:3336 msgid "Total available stock at time of stocktake" msgstr "" -#: part/models.py:3289 part/models.py:3372 +#: part/models.py:3340 part/models.py:3423 part/serializers.py:263 #: part/templates/part/part_scheduling.html:13 #: report/templates/report/inventree_test_report.html:106 #: templates/InvenTree/settings/plugin_settings.html:37 #: templates/InvenTree/settings/settings_staff_js.html:543 -#: templates/js/translated/part.js:1092 templates/js/translated/pricing.js:826 -#: templates/js/translated/pricing.js:950 -#: templates/js/translated/purchase_order.js:1801 -#: templates/js/translated/stock.js:2905 +#: templates/js/translated/part.js:1092 templates/js/translated/pricing.js:824 +#: templates/js/translated/pricing.js:948 +#: templates/js/translated/purchase_order.js:1785 +#: templates/js/translated/stock.js:2906 msgid "Date" msgstr "" -#: part/models.py:3290 +#: part/models.py:3341 msgid "Date stocktake was performed" msgstr "" -#: part/models.py:3298 +#: part/models.py:3349 msgid "Additional notes" msgstr "Notes additionnelles" -#: part/models.py:3308 +#: part/models.py:3359 msgid "User who performed this stocktake" msgstr "" -#: part/models.py:3314 +#: part/models.py:3365 msgid "Minimum Stock Cost" msgstr "" -#: part/models.py:3315 +#: part/models.py:3366 msgid "Estimated minimum cost of stock on hand" msgstr "" -#: part/models.py:3321 +#: part/models.py:3372 msgid "Maximum Stock Cost" msgstr "" -#: part/models.py:3322 +#: part/models.py:3373 msgid "Estimated maximum cost of stock on hand" msgstr "" -#: part/models.py:3378 templates/InvenTree/settings/settings_staff_js.html:532 +#: part/models.py:3429 templates/InvenTree/settings/settings_staff_js.html:532 msgid "Report" msgstr "" -#: part/models.py:3379 +#: part/models.py:3430 msgid "Stocktake report file (generated internally)" msgstr "" -#: part/models.py:3384 templates/InvenTree/settings/settings_staff_js.html:539 +#: part/models.py:3435 templates/InvenTree/settings/settings_staff_js.html:539 msgid "Part Count" msgstr "" -#: part/models.py:3385 +#: part/models.py:3436 msgid "Number of parts covered by stocktake" msgstr "" -#: part/models.py:3395 +#: part/models.py:3446 msgid "User who requested this stocktake report" msgstr "" -#: part/models.py:3405 +#: part/models.py:3456 msgid "Part Sale Price Break" msgstr "" -#: part/models.py:3517 +#: part/models.py:3568 msgid "Part Test Template" msgstr "" -#: part/models.py:3543 +#: part/models.py:3594 msgid "Invalid template name - must include at least one alphanumeric character" msgstr "" -#: part/models.py:3564 part/models.py:3733 +#: part/models.py:3615 part/models.py:3784 msgid "Choices must be unique" msgstr "" -#: part/models.py:3575 -msgid "Test templates can only be created for trackable parts" +#: part/models.py:3626 +msgid "Test templates can only be created for testable parts" msgstr "" -#: part/models.py:3586 +#: part/models.py:3637 msgid "Test template with the same key already exists for part" msgstr "" -#: part/models.py:3603 templates/js/translated/part.js:2898 +#: part/models.py:3654 templates/js/translated/part.js:2898 msgid "Test Name" msgstr "Nom de test" -#: part/models.py:3604 +#: part/models.py:3655 msgid "Enter a name for the test" msgstr "" -#: part/models.py:3610 +#: part/models.py:3661 msgid "Test Key" msgstr "" -#: part/models.py:3611 +#: part/models.py:3662 msgid "Simplified key for the test" msgstr "" -#: part/models.py:3618 +#: part/models.py:3669 msgid "Test Description" msgstr "" -#: part/models.py:3619 +#: part/models.py:3670 msgid "Enter description for this test" msgstr "" -#: part/models.py:3623 report/models.py:208 +#: part/models.py:3674 report/models.py:216 #: templates/js/translated/part.js:2919 #: templates/js/translated/table_filters.js:502 msgid "Enabled" msgstr "Activé" -#: part/models.py:3623 +#: part/models.py:3674 msgid "Is this test enabled?" msgstr "" -#: part/models.py:3628 templates/js/translated/part.js:2927 +#: part/models.py:3679 templates/js/translated/part.js:2927 #: templates/js/translated/table_filters.js:498 msgid "Required" msgstr "Requis" -#: part/models.py:3629 +#: part/models.py:3680 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:3634 templates/js/translated/part.js:2935 +#: part/models.py:3685 templates/js/translated/part.js:2935 msgid "Requires Value" msgstr "Valeur requise" -#: part/models.py:3635 +#: part/models.py:3686 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:3640 templates/js/translated/part.js:2942 +#: part/models.py:3691 templates/js/translated/part.js:2942 msgid "Requires Attachment" msgstr "" -#: part/models.py:3642 +#: part/models.py:3693 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:3648 part/models.py:3792 templates/js/translated/part.js:1643 +#: part/models.py:3699 part/models.py:3843 templates/js/translated/part.js:1643 msgid "Choices" msgstr "" -#: part/models.py:3649 +#: part/models.py:3700 msgid "Valid choices for this test (comma-separated)" msgstr "" -#: part/models.py:3681 +#: part/models.py:3732 msgid "Part Parameter Template" msgstr "" -#: part/models.py:3708 +#: part/models.py:3759 msgid "Checkbox parameters cannot have units" msgstr "" -#: part/models.py:3713 +#: part/models.py:3764 msgid "Checkbox parameters cannot have choices" msgstr "" -#: part/models.py:3750 +#: part/models.py:3801 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:3765 +#: part/models.py:3816 msgid "Parameter Name" msgstr "" -#: part/models.py:3772 +#: part/models.py:3823 msgid "Physical units for this parameter" msgstr "" -#: part/models.py:3780 +#: part/models.py:3831 msgid "Parameter description" msgstr "" -#: part/models.py:3786 templates/js/translated/part.js:1634 +#: part/models.py:3837 templates/js/translated/part.js:1634 #: templates/js/translated/table_filters.js:837 msgid "Checkbox" msgstr "" -#: part/models.py:3787 +#: part/models.py:3838 msgid "Is this parameter a checkbox?" msgstr "" -#: part/models.py:3793 +#: part/models.py:3844 msgid "Valid choices for this parameter (comma-separated)" msgstr "" -#: part/models.py:3827 +#: part/models.py:3881 msgid "Part Parameter" msgstr "" -#: part/models.py:3853 +#: part/models.py:3907 msgid "Parameter cannot be modified - part is locked" msgstr "" -#: part/models.py:3889 +#: part/models.py:3945 msgid "Invalid choice for parameter value" msgstr "" -#: part/models.py:3938 +#: part/models.py:3996 msgid "Parent Part" msgstr "" -#: part/models.py:3946 part/models.py:4054 part/models.py:4055 +#: part/models.py:4004 part/models.py:4112 part/models.py:4113 #: templates/InvenTree/settings/settings_staff_js.html:295 msgid "Parameter Template" msgstr "" -#: part/models.py:3952 +#: part/models.py:4010 msgid "Parameter Value" msgstr "" -#: part/models.py:4002 +#: part/models.py:4060 msgid "Part Category Parameter Template" msgstr "" -#: part/models.py:4061 templates/InvenTree/settings/settings_staff_js.html:304 +#: part/models.py:4119 templates/InvenTree/settings/settings_staff_js.html:304 msgid "Default Value" msgstr "Valeur par Défaut" -#: part/models.py:4062 +#: part/models.py:4120 msgid "Default Parameter Value" msgstr "" -#: part/models.py:4100 +#: part/models.py:4158 msgid "Part ID or part name" msgstr "" -#: part/models.py:4101 +#: part/models.py:4159 msgid "Unique part ID value" msgstr "" -#: part/models.py:4103 +#: part/models.py:4161 msgid "Part IPN value" msgstr "" -#: part/models.py:4104 +#: part/models.py:4162 msgid "Level" msgstr "" -#: part/models.py:4104 +#: part/models.py:4162 msgid "BOM level" msgstr "" -#: part/models.py:4215 +#: part/models.py:4272 msgid "BOM item cannot be modified - assembly is locked" msgstr "" -#: part/models.py:4222 +#: part/models.py:4279 msgid "BOM item cannot be modified - variant assembly is locked" msgstr "" -#: part/models.py:4232 +#: part/models.py:4289 msgid "Select parent part" msgstr "" -#: part/models.py:4242 +#: part/models.py:4299 msgid "Sub part" msgstr "" -#: part/models.py:4243 +#: part/models.py:4300 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:4254 +#: part/models.py:4311 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:4260 +#: part/models.py:4317 msgid "This BOM item is optional" msgstr "" -#: part/models.py:4266 +#: part/models.py:4323 msgid "This BOM item is consumable (it is not tracked in build orders)" msgstr "" -#: part/models.py:4273 part/templates/part/upload_bom.html:55 +#: part/models.py:4330 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "Surplus" -#: part/models.py:4274 +#: part/models.py:4331 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:4281 +#: part/models.py:4338 msgid "BOM item reference" msgstr "" -#: part/models.py:4289 +#: part/models.py:4346 msgid "BOM item notes" msgstr "" -#: part/models.py:4295 +#: part/models.py:4352 msgid "Checksum" msgstr "" -#: part/models.py:4296 +#: part/models.py:4353 msgid "BOM line checksum" msgstr "" -#: part/models.py:4301 templates/js/translated/table_filters.js:181 +#: part/models.py:4358 templates/js/translated/table_filters.js:181 msgid "Validated" msgstr "Validée" -#: part/models.py:4302 +#: part/models.py:4359 msgid "This BOM item has been validated" msgstr "" -#: part/models.py:4307 part/templates/part/upload_bom.html:57 +#: part/models.py:4364 part/templates/part/upload_bom.html:57 #: templates/js/translated/bom.js:1054 #: templates/js/translated/table_filters.js:185 #: templates/js/translated/table_filters.js:218 msgid "Gets inherited" msgstr "" -#: part/models.py:4308 +#: part/models.py:4365 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:4314 +#: part/models.py:4371 msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:4399 stock/models.py:685 +#: part/models.py:4456 stock/models.py:762 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:4409 part/models.py:4411 +#: part/models.py:4466 part/models.py:4468 msgid "Sub part must be specified" msgstr "" -#: part/models.py:4551 +#: part/models.py:4613 msgid "BOM Item Substitute" msgstr "" -#: part/models.py:4572 +#: part/models.py:4634 msgid "Substitute part cannot be the same as the master part" msgstr "" -#: part/models.py:4585 +#: part/models.py:4647 msgid "Parent BOM item" msgstr "" -#: part/models.py:4593 +#: part/models.py:4655 msgid "Substitute part" msgstr "" -#: part/models.py:4609 +#: part/models.py:4671 msgid "Part 1" msgstr "" -#: part/models.py:4617 +#: part/models.py:4679 msgid "Part 2" msgstr "" -#: part/models.py:4618 +#: part/models.py:4680 msgid "Select Related Part" msgstr "" -#: part/models.py:4637 +#: part/models.py:4699 msgid "Part relationship cannot be created between a part and itself" msgstr "" -#: part/models.py:4642 +#: part/models.py:4704 msgid "Duplicate relationship already exists" msgstr "" @@ -7449,340 +7662,352 @@ msgstr "" msgid "Number of results recorded against this template" msgstr "" -#: part/serializers.py:225 part/serializers.py:243 stock/serializers.py:616 +#: part/serializers.py:225 part/serializers.py:243 stock/serializers.py:643 msgid "Purchase currency of this stock item" msgstr "Devise d'achat de l'item" -#: part/serializers.py:291 +#: part/serializers.py:268 +msgid "Speculative Quantity" +msgstr "" + +#: part/serializers.py:277 +msgid "Model ID" +msgstr "" + +#: part/serializers.py:324 msgid "Number of parts using this template" msgstr "" -#: part/serializers.py:421 +#: part/serializers.py:465 msgid "No parts selected" msgstr "" -#: part/serializers.py:431 +#: part/serializers.py:475 msgid "Select category" msgstr "" -#: part/serializers.py:466 +#: part/serializers.py:510 msgid "Original Part" msgstr "" -#: part/serializers.py:467 +#: part/serializers.py:511 msgid "Select original part to duplicate" msgstr "" -#: part/serializers.py:472 +#: part/serializers.py:516 msgid "Copy Image" msgstr "Copier l'image" -#: part/serializers.py:473 +#: part/serializers.py:517 msgid "Copy image from original part" msgstr "" -#: part/serializers.py:479 part/templates/part/detail.html:293 +#: part/serializers.py:523 part/templates/part/detail.html:293 msgid "Copy BOM" msgstr "" -#: part/serializers.py:480 +#: part/serializers.py:524 msgid "Copy bill of materials from original part" msgstr "" -#: part/serializers.py:486 +#: part/serializers.py:530 msgid "Copy Parameters" msgstr "Copier les paramètres" -#: part/serializers.py:487 +#: part/serializers.py:531 msgid "Copy parameter data from original part" msgstr "" -#: part/serializers.py:493 +#: part/serializers.py:537 msgid "Copy Notes" msgstr "" -#: part/serializers.py:494 +#: part/serializers.py:538 msgid "Copy notes from original part" msgstr "" -#: part/serializers.py:512 +#: part/serializers.py:556 msgid "Initial Stock Quantity" msgstr "" -#: part/serializers.py:514 +#: part/serializers.py:558 msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added." msgstr "" -#: part/serializers.py:521 +#: part/serializers.py:565 msgid "Initial Stock Location" msgstr "" -#: part/serializers.py:522 +#: part/serializers.py:566 msgid "Specify initial stock location for this Part" msgstr "" -#: part/serializers.py:539 +#: part/serializers.py:583 msgid "Select supplier (or leave blank to skip)" msgstr "" -#: part/serializers.py:555 +#: part/serializers.py:599 msgid "Select manufacturer (or leave blank to skip)" msgstr "" -#: part/serializers.py:565 +#: part/serializers.py:609 msgid "Manufacturer part number" msgstr "" -#: part/serializers.py:572 +#: part/serializers.py:616 msgid "Selected company is not a valid supplier" msgstr "" -#: part/serializers.py:581 +#: part/serializers.py:625 msgid "Selected company is not a valid manufacturer" msgstr "" -#: part/serializers.py:592 +#: part/serializers.py:636 msgid "Manufacturer part matching this MPN already exists" msgstr "" -#: part/serializers.py:599 +#: part/serializers.py:643 msgid "Supplier part matching this SKU already exists" msgstr "" -#: part/serializers.py:903 +#: part/serializers.py:955 msgid "Revisions" msgstr "" -#: part/serializers.py:908 +#: part/serializers.py:960 msgid "Unallocated Stock" msgstr "" -#: part/serializers.py:911 +#: part/serializers.py:963 msgid "Variant Stock" msgstr "" -#: part/serializers.py:941 part/templates/part/copy_part.html:9 +#: part/serializers.py:993 part/templates/part/copy_part.html:9 #: templates/js/translated/part.js:474 msgid "Duplicate Part" msgstr "" -#: part/serializers.py:942 +#: part/serializers.py:994 msgid "Copy initial data from another Part" msgstr "" -#: part/serializers.py:948 templates/js/translated/part.js:103 +#: part/serializers.py:1000 templates/js/translated/part.js:103 msgid "Initial Stock" msgstr "" -#: part/serializers.py:949 +#: part/serializers.py:1001 msgid "Create Part with initial stock quantity" msgstr "" -#: part/serializers.py:955 +#: part/serializers.py:1007 msgid "Supplier Information" msgstr "" -#: part/serializers.py:956 +#: part/serializers.py:1008 msgid "Add initial supplier information for this part" msgstr "" -#: part/serializers.py:964 +#: part/serializers.py:1016 msgid "Copy Category Parameters" msgstr "" -#: part/serializers.py:965 +#: part/serializers.py:1017 msgid "Copy parameter templates from selected part category" msgstr "" -#: part/serializers.py:970 +#: part/serializers.py:1022 msgid "Existing Image" msgstr "" -#: part/serializers.py:971 +#: part/serializers.py:1023 msgid "Filename of an existing part image" msgstr "" -#: part/serializers.py:988 +#: part/serializers.py:1040 msgid "Image file does not exist" msgstr "" -#: part/serializers.py:1194 +#: part/serializers.py:1247 msgid "Limit stocktake report to a particular part, and any variant parts" msgstr "" -#: part/serializers.py:1204 +#: part/serializers.py:1257 msgid "Limit stocktake report to a particular part category, and any child categories" msgstr "" -#: part/serializers.py:1214 +#: part/serializers.py:1267 msgid "Limit stocktake report to a particular stock location, and any child locations" msgstr "" -#: part/serializers.py:1220 +#: part/serializers.py:1273 msgid "Exclude External Stock" msgstr "" -#: part/serializers.py:1221 +#: part/serializers.py:1274 msgid "Exclude stock items in external locations" msgstr "" -#: part/serializers.py:1226 +#: part/serializers.py:1279 msgid "Generate Report" msgstr "" -#: part/serializers.py:1227 +#: part/serializers.py:1280 msgid "Generate report file containing calculated stocktake data" msgstr "" -#: part/serializers.py:1232 +#: part/serializers.py:1285 msgid "Update Parts" msgstr "" -#: part/serializers.py:1233 +#: part/serializers.py:1286 msgid "Update specified parts with calculated stocktake data" msgstr "" -#: part/serializers.py:1241 +#: part/serializers.py:1294 msgid "Stocktake functionality is not enabled" msgstr "" -#: part/serializers.py:1347 +#: part/serializers.py:1299 +msgid "Background worker check failed" +msgstr "Échec de la vérification du processus d'arrière-plan" + +#: part/serializers.py:1401 msgid "Override calculated value for minimum price" msgstr "" -#: part/serializers.py:1354 +#: part/serializers.py:1408 msgid "Minimum price currency" msgstr "" -#: part/serializers.py:1362 +#: part/serializers.py:1416 msgid "Override calculated value for maximum price" msgstr "" -#: part/serializers.py:1369 +#: part/serializers.py:1423 msgid "Maximum price currency" msgstr "" -#: part/serializers.py:1398 +#: part/serializers.py:1452 msgid "Update" msgstr "" -#: part/serializers.py:1399 +#: part/serializers.py:1453 msgid "Update pricing for this part" msgstr "" -#: part/serializers.py:1422 +#: part/serializers.py:1476 #, python-brace-format msgid "Could not convert from provided currencies to {default_currency}" msgstr "" -#: part/serializers.py:1429 +#: part/serializers.py:1483 msgid "Minimum price must not be greater than maximum price" msgstr "" -#: part/serializers.py:1432 +#: part/serializers.py:1486 msgid "Maximum price must not be less than minimum price" msgstr "" -#: part/serializers.py:1576 +#: part/serializers.py:1634 msgid "Select the parent assembly" msgstr "" -#: part/serializers.py:1585 +#: part/serializers.py:1643 msgid "Component Name" msgstr "" -#: part/serializers.py:1588 +#: part/serializers.py:1646 msgid "Component IPN" msgstr "" -#: part/serializers.py:1591 +#: part/serializers.py:1649 msgid "Component Description" msgstr "" -#: part/serializers.py:1597 +#: part/serializers.py:1655 msgid "Select the component part" msgstr "" -#: part/serializers.py:1606 part/templates/part/part_base.html:235 +#: part/serializers.py:1664 part/templates/part/part_base.html:243 #: templates/js/translated/bom.js:1219 msgid "Can Build" msgstr "" -#: part/serializers.py:1837 +#: part/serializers.py:1899 msgid "Select part to copy BOM from" msgstr "" -#: part/serializers.py:1845 +#: part/serializers.py:1907 msgid "Remove Existing Data" msgstr "" -#: part/serializers.py:1846 +#: part/serializers.py:1908 msgid "Remove existing BOM items before copying" msgstr "" -#: part/serializers.py:1851 +#: part/serializers.py:1913 msgid "Include Inherited" msgstr "" -#: part/serializers.py:1852 +#: part/serializers.py:1914 msgid "Include BOM items which are inherited from templated parts" msgstr "" -#: part/serializers.py:1857 +#: part/serializers.py:1919 msgid "Skip Invalid Rows" msgstr "" -#: part/serializers.py:1858 +#: part/serializers.py:1920 msgid "Enable this option to skip invalid rows" msgstr "" -#: part/serializers.py:1863 +#: part/serializers.py:1925 msgid "Copy Substitute Parts" msgstr "" -#: part/serializers.py:1864 +#: part/serializers.py:1926 msgid "Copy substitute parts when duplicate BOM items" msgstr "" -#: part/serializers.py:1901 +#: part/serializers.py:1963 msgid "Clear Existing BOM" msgstr "" -#: part/serializers.py:1902 +#: part/serializers.py:1964 msgid "Delete existing BOM items before uploading" msgstr "" -#: part/serializers.py:1934 +#: part/serializers.py:1996 msgid "No part column specified" msgstr "" -#: part/serializers.py:1978 +#: part/serializers.py:2040 msgid "Multiple matching parts found" msgstr "" -#: part/serializers.py:1981 +#: part/serializers.py:2043 msgid "No matching part found" msgstr "" -#: part/serializers.py:1984 +#: part/serializers.py:2045 msgid "Part is not designated as a component" msgstr "" -#: part/serializers.py:1993 +#: part/serializers.py:2054 msgid "Quantity not provided" msgstr "" -#: part/serializers.py:2001 +#: part/serializers.py:2062 msgid "Invalid quantity" msgstr "" -#: part/serializers.py:2024 +#: part/serializers.py:2085 msgid "At least one BOM item is required" msgstr "" #: part/stocktake.py:224 templates/js/translated/part.js:1073 #: templates/js/translated/part.js:1828 templates/js/translated/part.js:1884 -#: templates/js/translated/purchase_order.js:2154 +#: templates/js/translated/purchase_order.js:2138 msgid "Total Quantity" msgstr "" @@ -7809,7 +8034,7 @@ msgstr "Notification de stock faible" #: part/tasks.py:39 #, python-brace-format msgid "The available stock for {part.name} has fallen below the configured minimum level" -msgstr "" +msgstr "Le stock disponible pour {part.name}, est tombé en dessous du niveau minimum configuré" #: part/templates/part/bom.html:6 msgid "You do not have permission to edit the BOM." @@ -7932,9 +8157,9 @@ msgid "Add stocktake information" msgstr "" #: part/templates/part/detail.html:67 part/templates/part/part_sidebar.html:50 -#: stock/admin.py:255 templates/InvenTree/settings/part_stocktake.html:30 +#: stock/admin.py:256 templates/InvenTree/settings/part_stocktake.html:30 #: templates/InvenTree/settings/sidebar.html:53 -#: templates/js/translated/stock.js:2301 users/models.py:204 +#: templates/js/translated/stock.js:2302 users/models.py:204 msgid "Stocktake" msgstr "Prise d'inventaire" @@ -8093,142 +8318,146 @@ msgstr "Sélectionner un format de fichier" msgid "Part List" msgstr "Liste des composants" -#: part/templates/part/part_base.html:25 part/templates/part/part_base.html:29 +#: part/templates/part/part_base.html:26 part/templates/part/part_base.html:30 msgid "You are subscribed to notifications for this part" msgstr "Vous êtes abonné aux notifications pour cette pièce" -#: part/templates/part/part_base.html:33 +#: part/templates/part/part_base.html:34 msgid "Subscribe to notifications for this part" msgstr "S'abonner aux notifications de cette pièce" -#: part/templates/part/part_base.html:52 +#: part/templates/part/part_base.html:53 #: stock/templates/stock/item_base.html:62 -#: stock/templates/stock/location.html:71 templates/js/translated/label.js:136 +#: stock/templates/stock/location.html:72 templates/js/translated/label.js:136 msgid "Print Label" msgstr "Impression étiquette" -#: part/templates/part/part_base.html:58 +#: part/templates/part/part_base.html:59 msgid "Show pricing information" msgstr "" -#: part/templates/part/part_base.html:63 -#: stock/templates/stock/item_base.html:110 -#: stock/templates/stock/location.html:80 +#: part/templates/part/part_base.html:64 +#: stock/templates/stock/item_base.html:107 +#: stock/templates/stock/location.html:81 msgid "Stock actions" msgstr "" -#: part/templates/part/part_base.html:70 +#: part/templates/part/part_base.html:71 msgid "Count part stock" msgstr "" -#: part/templates/part/part_base.html:76 +#: part/templates/part/part_base.html:77 msgid "Transfer part stock" msgstr "" -#: part/templates/part/part_base.html:91 templates/js/translated/part.js:2299 +#: part/templates/part/part_base.html:92 templates/js/translated/part.js:2299 msgid "Part actions" msgstr "" -#: part/templates/part/part_base.html:94 +#: part/templates/part/part_base.html:95 msgid "Duplicate part" msgstr "" -#: part/templates/part/part_base.html:97 +#: part/templates/part/part_base.html:98 msgid "Edit part" msgstr "Modifier la pièce" -#: part/templates/part/part_base.html:100 +#: part/templates/part/part_base.html:101 msgid "Delete part" msgstr "" -#: part/templates/part/part_base.html:119 +#: part/templates/part/part_base.html:120 msgid "Part is a template part (variants can be made from this part)" msgstr "" -#: part/templates/part/part_base.html:123 +#: part/templates/part/part_base.html:124 msgid "Part can be assembled from other parts" msgstr "" -#: part/templates/part/part_base.html:127 +#: part/templates/part/part_base.html:128 msgid "Part can be used in assemblies" msgstr "" -#: part/templates/part/part_base.html:131 +#: part/templates/part/part_base.html:132 msgid "Part stock is tracked by serial number" msgstr "La pièce en stock est tracée par un numéro de série" -#: part/templates/part/part_base.html:135 +#: part/templates/part/part_base.html:136 msgid "Part can be purchased from external suppliers" msgstr "" -#: part/templates/part/part_base.html:139 +#: part/templates/part/part_base.html:140 msgid "Part can be sold to customers" msgstr "" -#: part/templates/part/part_base.html:145 +#: part/templates/part/part_base.html:146 msgid "Part is not active" msgstr "" -#: part/templates/part/part_base.html:153 +#: part/templates/part/part_base.html:154 msgid "Part is virtual (not a physical part)" msgstr "" -#: part/templates/part/part_base.html:163 -#: part/templates/part/part_base.html:690 +#: part/templates/part/part_base.html:164 +#: part/templates/part/part_base.html:698 msgid "Show Part Details" msgstr "" #: part/templates/part/part_base.html:218 -#: stock/templates/stock/item_base.html:388 +msgid "Required for Orders" +msgstr "" + +#: part/templates/part/part_base.html:226 +#: stock/templates/stock/item_base.html:385 msgid "Allocated to Build Orders" msgstr "" -#: part/templates/part/part_base.html:227 -#: stock/templates/stock/item_base.html:381 +#: part/templates/part/part_base.html:235 +#: stock/templates/stock/item_base.html:378 msgid "Allocated to Sales Orders" msgstr "" -#: part/templates/part/part_base.html:300 +#: part/templates/part/part_base.html:308 msgid "Minimum stock level" msgstr "" -#: part/templates/part/part_base.html:331 templates/js/translated/bom.js:1071 +#: part/templates/part/part_base.html:339 templates/js/translated/bom.js:1071 #: templates/js/translated/part.js:1271 templates/js/translated/part.js:2463 #: templates/js/translated/pricing.js:391 -#: templates/js/translated/pricing.js:1054 +#: templates/js/translated/pricing.js:1052 msgid "Price Range" msgstr "" -#: part/templates/part/part_base.html:361 +#: part/templates/part/part_base.html:369 msgid "Latest Serial Number" msgstr "Dernier numéro de série" -#: part/templates/part/part_base.html:365 -#: stock/templates/stock/item_base.html:322 +#: part/templates/part/part_base.html:373 +#: stock/templates/stock/item_base.html:319 msgid "Search for serial number" msgstr "Rechercher un numéro de série" -#: part/templates/part/part_base.html:453 +#: part/templates/part/part_base.html:461 msgid "Part QR Code" msgstr "" -#: part/templates/part/part_base.html:470 +#: part/templates/part/part_base.html:478 msgid "Link Barcode to Part" msgstr "" -#: part/templates/part/part_base.html:520 +#: part/templates/part/part_base.html:528 msgid "Calculate" msgstr "" -#: part/templates/part/part_base.html:537 +#: part/templates/part/part_base.html:545 msgid "Remove associated image from this part" msgstr "" -#: part/templates/part/part_base.html:588 +#: part/templates/part/part_base.html:596 msgid "No matching images found" msgstr "" -#: part/templates/part/part_base.html:684 +#: part/templates/part/part_base.html:692 msgid "Hide Part Details" msgstr "" @@ -8282,13 +8511,13 @@ msgid "Variants" msgstr "" #: part/templates/part/part_sidebar.html:14 -#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:21 +#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:22 #: stock/templates/stock/stock_app_base.html:10 #: templates/InvenTree/search.html:153 #: templates/InvenTree/settings/sidebar.html:51 #: templates/js/translated/part.js:1249 templates/js/translated/part.js:2152 #: templates/js/translated/part.js:2411 templates/js/translated/stock.js:1066 -#: templates/js/translated/stock.js:2155 templates/navbar.html:31 +#: templates/js/translated/stock.js:2156 templates/navbar.html:31 msgid "Stock" msgstr "" @@ -8324,17 +8553,17 @@ msgstr "" #: part/templates/part/prices.html:18 #: templates/InvenTree/settings/settings_staff_js.html:80 #: templates/InvenTree/settings/user.html:24 -#: templates/js/translated/helpers.js:103 +#: templates/js/translated/helpers.js:104 #: templates/js/translated/pricing.js:628 templates/notes_buttons.html:3 #: templates/notes_buttons.html:4 msgid "Edit" msgstr "Modifier" -#: part/templates/part/prices.html:28 stock/admin.py:251 -#: stock/templates/stock/item_base.html:446 -#: templates/js/translated/company.js:1703 -#: templates/js/translated/company.js:1713 -#: templates/js/translated/stock.js:2331 +#: part/templates/part/prices.html:28 stock/admin.py:252 +#: stock/templates/stock/item_base.html:443 +#: templates/js/translated/company.js:1704 +#: templates/js/translated/company.js:1714 +#: templates/js/translated/stock.js:2332 msgid "Last Updated" msgstr "" @@ -8406,7 +8635,7 @@ msgid "Update Pricing" msgstr "" #: part/templates/part/stock_count.html:7 -#: templates/js/translated/model_renderers.js:228 +#: templates/js/translated/model_renderers.js:231 #: templates/js/translated/part.js:707 templates/js/translated/part.js:2147 #: templates/js/translated/part.js:2149 msgid "No Stock" @@ -8486,7 +8715,7 @@ msgstr "" msgid "Part Pricing" msgstr "" -#: plugin/api.py:172 +#: plugin/api.py:175 msgid "Plugin cannot be deleted as it is currently active" msgstr "" @@ -8498,78 +8727,85 @@ msgstr "Aucune action spécifiée" msgid "No matching action found" msgstr "Aucune action correspondante trouvée" -#: plugin/base/barcodes/api.py:125 plugin/base/barcodes/api.py:371 -#: plugin/base/barcodes/api.py:546 +#: plugin/base/barcodes/api.py:203 msgid "No match found for barcode data" msgstr "Aucune correspondance trouvée pour les données du code-barres" -#: plugin/base/barcodes/api.py:129 +#: plugin/base/barcodes/api.py:207 msgid "Match found for barcode data" msgstr "Correspondance trouvée pour les données du code-barres" -#: plugin/base/barcodes/api.py:163 plugin/base/barcodes/serializers.py:45 +#: plugin/base/barcodes/api.py:245 plugin/base/barcodes/serializers.py:72 msgid "Model is not supported" msgstr "" -#: plugin/base/barcodes/api.py:168 +#: plugin/base/barcodes/api.py:250 msgid "Model instance not found" msgstr "" -#: plugin/base/barcodes/api.py:197 -#: templates/js/translated/purchase_order.js:1468 +#: plugin/base/barcodes/api.py:279 +#: templates/js/translated/purchase_order.js:1452 msgid "Barcode matches existing item" msgstr "" -#: plugin/base/barcodes/api.py:336 +#: plugin/base/barcodes/api.py:418 msgid "No matching part data found" msgstr "" -#: plugin/base/barcodes/api.py:353 +#: plugin/base/barcodes/api.py:434 msgid "No matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:357 +#: plugin/base/barcodes/api.py:437 msgid "Multiple matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:381 +#: plugin/base/barcodes/api.py:450 plugin/base/barcodes/api.py:664 +msgid "No matching plugin found for barcode data" +msgstr "" + +#: plugin/base/barcodes/api.py:460 msgid "Matched supplier part" msgstr "" -#: plugin/base/barcodes/api.py:430 +#: plugin/base/barcodes/api.py:525 msgid "Item has already been received" msgstr "" -#: plugin/base/barcodes/api.py:467 +#: plugin/base/barcodes/api.py:563 msgid "No match for supplier barcode" msgstr "" -#: plugin/base/barcodes/api.py:510 +#: plugin/base/barcodes/api.py:612 msgid "Multiple matching line items found" msgstr "" -#: plugin/base/barcodes/api.py:513 +#: plugin/base/barcodes/api.py:615 msgid "No matching line item found" msgstr "" -#: plugin/base/barcodes/api.py:551 plugin/base/barcodes/api.py:558 +#: plugin/base/barcodes/api.py:661 +msgid "No sales order provided" +msgstr "" + +#: plugin/base/barcodes/api.py:670 msgid "Barcode does not match an existing stock item" msgstr "" -#: plugin/base/barcodes/api.py:569 +#: plugin/base/barcodes/api.py:686 msgid "Stock item does not match line item" msgstr "" -#: plugin/base/barcodes/api.py:593 templates/js/translated/build.js:2780 -#: templates/js/translated/sales_order.js:1953 +#: plugin/base/barcodes/api.py:716 templates/js/translated/build.js:2798 +#: templates/js/translated/sales_order.js:1934 msgid "Insufficient stock available" msgstr "" -#: plugin/base/barcodes/api.py:602 +#: plugin/base/barcodes/api.py:729 msgid "Stock item allocated to sales order" msgstr "" -#: plugin/base/barcodes/api.py:606 +#: plugin/base/barcodes/api.py:732 msgid "Not enough information" msgstr "" @@ -8591,75 +8827,75 @@ msgstr "" msgid "Purchase order does not match supplier" msgstr "" -#: plugin/base/barcodes/mixins.py:465 +#: plugin/base/barcodes/mixins.py:467 msgid "Failed to find pending line item for supplier part" msgstr "" -#: plugin/base/barcodes/mixins.py:496 +#: plugin/base/barcodes/mixins.py:498 msgid "Further information required to receive line item" msgstr "" -#: plugin/base/barcodes/mixins.py:504 +#: plugin/base/barcodes/mixins.py:506 msgid "Received purchase order line item" msgstr "" -#: plugin/base/barcodes/serializers.py:21 +#: plugin/base/barcodes/serializers.py:48 msgid "Scanned barcode data" msgstr "" -#: plugin/base/barcodes/serializers.py:30 +#: plugin/base/barcodes/serializers.py:57 msgid "Model name to generate barcode for" msgstr "" -#: plugin/base/barcodes/serializers.py:35 +#: plugin/base/barcodes/serializers.py:62 msgid "Primary key of model object to generate barcode for" msgstr "" -#: plugin/base/barcodes/serializers.py:105 +#: plugin/base/barcodes/serializers.py:132 msgid "Purchase Order to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:111 +#: plugin/base/barcodes/serializers.py:138 msgid "Purchase order is not pending" msgstr "" -#: plugin/base/barcodes/serializers.py:129 +#: plugin/base/barcodes/serializers.py:156 msgid "PurchaseOrder to receive items against" msgstr "" -#: plugin/base/barcodes/serializers.py:135 +#: plugin/base/barcodes/serializers.py:162 msgid "Purchase order has not been placed" msgstr "" -#: plugin/base/barcodes/serializers.py:143 +#: plugin/base/barcodes/serializers.py:170 msgid "Location to receive items into" msgstr "" -#: plugin/base/barcodes/serializers.py:149 +#: plugin/base/barcodes/serializers.py:176 msgid "Cannot select a structural location" msgstr "" -#: plugin/base/barcodes/serializers.py:163 +#: plugin/base/barcodes/serializers.py:190 msgid "Sales Order to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:169 +#: plugin/base/barcodes/serializers.py:196 msgid "Sales order is not pending" msgstr "" -#: plugin/base/barcodes/serializers.py:177 +#: plugin/base/barcodes/serializers.py:204 msgid "Sales order line item to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:184 +#: plugin/base/barcodes/serializers.py:211 msgid "Sales order shipment to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:190 +#: plugin/base/barcodes/serializers.py:217 msgid "Shipment has already been delivered" msgstr "" -#: plugin/base/barcodes/serializers.py:195 +#: plugin/base/barcodes/serializers.py:222 msgid "Quantity to allocate" msgstr "" @@ -8679,6 +8915,42 @@ msgstr "" msgid "No items provided to print" msgstr "" +#: plugin/base/ui/serializers.py:30 +msgid "Plugin Name" +msgstr "" + +#: plugin/base/ui/serializers.py:34 +msgid "Feature Type" +msgstr "" + +#: plugin/base/ui/serializers.py:39 +msgid "Feature Label" +msgstr "" + +#: plugin/base/ui/serializers.py:44 +msgid "Feature Title" +msgstr "" + +#: plugin/base/ui/serializers.py:49 +msgid "Feature Description" +msgstr "" + +#: plugin/base/ui/serializers.py:54 +msgid "Feature Icon" +msgstr "" + +#: plugin/base/ui/serializers.py:58 +msgid "Feature Options" +msgstr "" + +#: plugin/base/ui/serializers.py:61 +msgid "Feature Context" +msgstr "" + +#: plugin/base/ui/serializers.py:64 +msgid "Feature Source (javascript)" +msgstr "" + #: plugin/builtin/barcodes/inventree_barcode.py:27 msgid "InvenTree Barcodes" msgstr "" @@ -8756,7 +9028,7 @@ msgstr "" msgid "URL that is used to send messages to a slack channel" msgstr "" -#: plugin/builtin/integration/core_notifications.py:164 +#: plugin/builtin/integration/core_notifications.py:166 msgid "Open link" msgstr "" @@ -8794,11 +9066,11 @@ msgstr "" msgid "Provides support for printing using a machine" msgstr "" -#: plugin/builtin/labels/inventree_machine.py:149 +#: plugin/builtin/labels/inventree_machine.py:151 msgid "last used" msgstr "" -#: plugin/builtin/labels/inventree_machine.py:166 +#: plugin/builtin/labels/inventree_machine.py:168 msgid "Options" msgstr "" @@ -8822,7 +9094,7 @@ msgstr "" msgid "Print a border around each label" msgstr "" -#: plugin/builtin/labels/label_sheet.py:47 report/models.py:307 +#: plugin/builtin/labels/label_sheet.py:47 report/models.py:315 msgid "Landscape" msgstr "" @@ -8894,19 +9166,19 @@ msgstr "" msgid "The Supplier which acts as 'TME'" msgstr "" -#: plugin/installer.py:194 plugin/installer.py:282 +#: plugin/installer.py:199 plugin/installer.py:282 msgid "Only staff users can administer plugins" msgstr "" -#: plugin/installer.py:197 +#: plugin/installer.py:202 msgid "Plugin installation is disabled" msgstr "" -#: plugin/installer.py:248 +#: plugin/installer.py:246 msgid "Installed plugin successfully" msgstr "" -#: plugin/installer.py:254 +#: plugin/installer.py:251 #, python-brace-format msgid "Installed plugin into {path}" msgstr "" @@ -8943,10 +9215,6 @@ msgstr "" msgid "Plugin Configurations" msgstr "" -#: plugin/models.py:43 users/models.py:100 -msgid "Key" -msgstr "" - #: plugin/models.py:44 msgid "Key of plugin" msgstr "" @@ -8955,7 +9223,7 @@ msgstr "" msgid "PluginName of the plugin" msgstr "Non du Plugin" -#: plugin/models.py:59 plugin/serializers.py:90 +#: plugin/models.py:59 plugin/serializers.py:115 msgid "Package Name" msgstr "" @@ -8984,17 +9252,17 @@ msgstr "Extension Intégrée" msgid "Package Plugin" msgstr "" -#: plugin/models.py:220 report/models.py:474 +#: plugin/models.py:259 report/models.py:482 #: templates/InvenTree/settings/plugin_settings.html:9 #: templates/js/translated/plugin.js:51 msgid "Plugin" msgstr "Extension" -#: plugin/models.py:267 +#: plugin/models.py:306 msgid "Method" msgstr "" -#: plugin/plugin.py:270 +#: plugin/plugin.py:275 msgid "No author found" msgstr "" @@ -9053,81 +9321,157 @@ msgstr "" msgid "InvenTree Contributors" msgstr "" -#: plugin/serializers.py:81 -msgid "Source URL" +#: plugin/samples/integration/user_interface_sample.py:27 +msgid "Enable Part Panels" +msgstr "Activer le panneau de pièces" + +#: plugin/samples/integration/user_interface_sample.py:28 +msgid "Enable custom panels for Part views" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:33 +msgid "Enable Purchase Order Panels" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:34 +msgid "Enable custom panels for Purchase Order views" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:39 +msgid "Enable Broken Panels" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:40 +msgid "Enable broken panels for testing" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:45 +msgid "Enable Dynamic Panel" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:46 +msgid "Enable dynamic panels for testing" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:98 +msgid "Part Panel" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:131 +msgid "Broken Dashboard Item" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:133 +msgid "This is a broken dashboard item - it will not render!" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:139 +msgid "Sample Dashboard Item" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:141 +msgid "This is a sample dashboard item. It renders a simple string of HTML content." +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:147 +msgid "Context Dashboard Item" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:161 +msgid "Admin Dashboard Item" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:162 +msgid "This is an admin-only dashboard item." +msgstr "" + +#: plugin/serializers.py:82 +msgid "Source File" msgstr "" #: plugin/serializers.py:83 +msgid "Path to the source file for admin integration" +msgstr "" + +#: plugin/serializers.py:90 +msgid "Optional context data for the admin integration" +msgstr "" + +#: plugin/serializers.py:106 +msgid "Source URL" +msgstr "" + +#: plugin/serializers.py:108 msgid "Source for the package - this can be a custom registry or a VCS path" msgstr "" -#: plugin/serializers.py:92 +#: plugin/serializers.py:117 msgid "Name for the Plugin Package - can also contain a version indicator" msgstr "" -#: plugin/serializers.py:99 +#: plugin/serializers.py:124 #: templates/InvenTree/settings/plugin_settings.html:42 #: templates/js/translated/plugin.js:86 msgid "Version" msgstr "" -#: plugin/serializers.py:101 +#: plugin/serializers.py:126 msgid "Version specifier for the plugin. Leave blank for latest version." msgstr "Identifiant de version du plugin. Laissez vide pour la dernière version." -#: plugin/serializers.py:106 +#: plugin/serializers.py:131 msgid "Confirm plugin installation" msgstr "" -#: plugin/serializers.py:108 +#: plugin/serializers.py:133 msgid "This will install this plugin now into the current instance. The instance will go into maintenance." msgstr "" -#: plugin/serializers.py:121 +#: plugin/serializers.py:146 msgid "Installation not confirmed" msgstr "" -#: plugin/serializers.py:123 +#: plugin/serializers.py:148 msgid "Either packagename of URL must be provided" msgstr "" -#: plugin/serializers.py:161 +#: plugin/serializers.py:184 msgid "Full reload" msgstr "" -#: plugin/serializers.py:162 +#: plugin/serializers.py:185 msgid "Perform a full reload of the plugin registry" msgstr "" -#: plugin/serializers.py:168 +#: plugin/serializers.py:191 msgid "Force reload" msgstr "" -#: plugin/serializers.py:170 +#: plugin/serializers.py:193 msgid "Force a reload of the plugin registry, even if it is already loaded" msgstr "" -#: plugin/serializers.py:177 +#: plugin/serializers.py:200 msgid "Collect plugins" msgstr "" -#: plugin/serializers.py:178 +#: plugin/serializers.py:201 msgid "Collect plugins and add them to the registry" msgstr "" -#: plugin/serializers.py:205 +#: plugin/serializers.py:228 msgid "Activate Plugin" msgstr "" -#: plugin/serializers.py:206 +#: plugin/serializers.py:229 msgid "Activate this plugin" msgstr "" -#: plugin/serializers.py:226 +#: plugin/serializers.py:249 msgid "Delete configuration" msgstr "" -#: plugin/serializers.py:227 +#: plugin/serializers.py:250 msgid "Delete the plugin configuration from the database" msgstr "" @@ -9135,11 +9479,11 @@ msgstr "" msgid "No valid objects provided to template" msgstr "Aucun objet valide n'a été fourni au modèle" -#: report/api.py:103 report/models.py:438 report/serializers.py:98 -#: report/serializers.py:148 templates/js/translated/purchase_order.js:1817 +#: report/api.py:103 report/models.py:446 report/serializers.py:99 +#: report/serializers.py:149 templates/js/translated/purchase_order.js:1801 #: templates/js/translated/return_order.js:353 -#: templates/js/translated/sales_order.js:887 -#: templates/js/translated/sales_order.js:1047 +#: templates/js/translated/sales_order.js:846 +#: templates/js/translated/sales_order.js:1020 msgid "Items" msgstr "" @@ -9167,7 +9511,11 @@ msgstr "" msgid "Error printing label" msgstr "" -#: report/api.py:375 report/api.py:411 +#: report/api.py:358 +msgid "Report saved at time of printing" +msgstr "" + +#: report/api.py:384 report/api.py:420 #, python-brace-format msgid "Template file '{template}' is missing or does not exist" msgstr "" @@ -9204,135 +9552,143 @@ msgstr "" msgid "Revision number (auto-increments)" msgstr "" -#: report/models.py:202 +#: report/models.py:168 +msgid "Attach to Model on Print" +msgstr "" + +#: report/models.py:170 +msgid "Save report output as an attachment against linked model instance when printing" +msgstr "" + +#: report/models.py:210 msgid "Filename Pattern" msgstr "Modèle de nom de fichier" -#: report/models.py:203 +#: report/models.py:211 msgid "Pattern for generating filenames" msgstr "" -#: report/models.py:208 +#: report/models.py:216 msgid "Template is enabled" msgstr "" -#: report/models.py:214 +#: report/models.py:222 msgid "Target model type for template" msgstr "" -#: report/models.py:234 +#: report/models.py:242 msgid "Filters" msgstr "Filtres" -#: report/models.py:235 +#: report/models.py:243 msgid "Template query filters (comma-separated list of key=value pairs)" msgstr "" -#: report/models.py:294 report/models.py:361 +#: report/models.py:302 report/models.py:369 msgid "Template file" msgstr "" -#: report/models.py:302 +#: report/models.py:310 msgid "Page size for PDF reports" msgstr "" -#: report/models.py:308 +#: report/models.py:316 msgid "Render report in landscape orientation" msgstr "" -#: report/models.py:367 +#: report/models.py:375 msgid "Width [mm]" msgstr "Largeur [mm]" -#: report/models.py:368 +#: report/models.py:376 msgid "Label width, specified in mm" msgstr "Largeur de l'étiquette, spécifiée en mm" -#: report/models.py:374 +#: report/models.py:382 msgid "Height [mm]" msgstr "Hauteur [mm]" -#: report/models.py:375 +#: report/models.py:383 msgid "Label height, specified in mm" msgstr "Hauteur de l'étiquette, spécifiée en mm" -#: report/models.py:438 +#: report/models.py:446 msgid "Number of items to process" msgstr "" -#: report/models.py:444 +#: report/models.py:452 msgid "Report generation is complete" msgstr "" -#: report/models.py:448 templates/js/translated/build.js:2349 +#: report/models.py:456 templates/js/translated/build.js:2352 msgid "Progress" msgstr "" -#: report/models.py:448 +#: report/models.py:456 msgid "Report generation progress" msgstr "" -#: report/models.py:456 +#: report/models.py:464 msgid "Report Template" msgstr "" -#: report/models.py:463 report/models.py:486 +#: report/models.py:471 report/models.py:494 msgid "Output File" msgstr "" -#: report/models.py:464 report/models.py:487 +#: report/models.py:472 report/models.py:495 msgid "Generated output file" msgstr "" -#: report/models.py:475 +#: report/models.py:483 msgid "Label output plugin" msgstr "" -#: report/models.py:479 +#: report/models.py:487 msgid "Label Template" msgstr "" -#: report/models.py:502 +#: report/models.py:510 msgid "Snippet" msgstr "Extrait " -#: report/models.py:503 +#: report/models.py:511 msgid "Report snippet file" msgstr "" -#: report/models.py:510 +#: report/models.py:518 msgid "Snippet file description" msgstr "" -#: report/models.py:528 +#: report/models.py:536 msgid "Asset" msgstr "Elément" -#: report/models.py:529 +#: report/models.py:537 msgid "Report asset file" msgstr "" -#: report/models.py:536 +#: report/models.py:544 msgid "Asset file description" msgstr "" -#: report/serializers.py:91 +#: report/serializers.py:92 msgid "Select report template" msgstr "" -#: report/serializers.py:99 report/serializers.py:149 +#: report/serializers.py:100 report/serializers.py:150 msgid "List of item primary keys to include in the report" msgstr "" -#: report/serializers.py:132 +#: report/serializers.py:133 msgid "Select label template" msgstr "" -#: report/serializers.py:140 +#: report/serializers.py:141 msgid "Printing Plugin" msgstr "" -#: report/serializers.py:141 +#: report/serializers.py:142 msgid "Select plugin to use for label printing" msgstr "" @@ -9365,9 +9721,9 @@ msgstr "" #: report/templates/report/inventree_sales_order_report.html:30 #: templates/js/translated/order.js:341 templates/js/translated/pricing.js:527 #: templates/js/translated/pricing.js:596 -#: templates/js/translated/pricing.js:834 -#: templates/js/translated/purchase_order.js:2185 -#: templates/js/translated/sales_order.js:1873 +#: templates/js/translated/pricing.js:832 +#: templates/js/translated/purchase_order.js:2169 +#: templates/js/translated/sales_order.js:1854 msgid "Unit Price" msgstr "" @@ -9379,13 +9735,18 @@ msgstr "" #: report/templates/report/inventree_purchase_order_report.html:72 #: report/templates/report/inventree_sales_order_report.html:72 -#: templates/js/translated/purchase_order.js:2087 -#: templates/js/translated/sales_order.js:1842 +#: templates/js/translated/purchase_order.js:2071 +#: templates/js/translated/sales_order.js:1823 #: templates/test_statistics_table.html:8 #: templates/test_statistics_table.html:19 msgid "Total" msgstr "" +#: report/templates/report/inventree_sales_order_shipment_report.html:23 +#: stock/templates/stock/stock_sidebar.html:8 +msgid "Allocations" +msgstr "" + #: report/templates/report/inventree_stock_location_report.html:97 msgid "Stock location items" msgstr "" @@ -9403,15 +9764,13 @@ msgstr "" msgid "Test" msgstr "" -#: report/templates/report/inventree_test_report.html:103 stock/models.py:2544 -msgid "Result" -msgstr "Résultat" - #: report/templates/report/inventree_test_report.html:129 +#: templates/js/translated/stock.js:1448 msgid "Pass" msgstr "" #: report/templates/report/inventree_test_report.html:131 +#: templates/js/translated/stock.js:1450 msgid "Fail" msgstr "" @@ -9420,17 +9779,18 @@ msgid "No result (required)" msgstr "" #: report/templates/report/inventree_test_report.html:140 +#: templates/js/translated/stock.js:1455 msgid "No result" msgstr "" #: report/templates/report/inventree_test_report.html:153 -#: stock/serializers.py:599 stock/templates/stock/stock_sidebar.html:16 +#: stock/serializers.py:626 stock/templates/stock/stock_sidebar.html:16 msgid "Installed Items" msgstr "" -#: report/templates/report/inventree_test_report.html:167 stock/admin.py:161 +#: report/templates/report/inventree_test_report.html:167 stock/admin.py:162 #: templates/js/translated/stock.js:706 templates/js/translated/stock.js:877 -#: templates/js/translated/stock.js:3194 +#: templates/js/translated/stock.js:3195 msgid "Serial" msgstr "Numéro de série" @@ -9450,67 +9810,67 @@ msgstr "" msgid "company_image tag requires a Company instance" msgstr "" -#: stock/admin.py:51 stock/admin.py:171 +#: stock/admin.py:51 stock/admin.py:172 msgid "Location ID" msgstr "" -#: stock/admin.py:63 stock/templates/stock/location.html:128 -#: stock/templates/stock/location.html:134 +#: stock/admin.py:63 stock/templates/stock/location.html:129 +#: stock/templates/stock/location.html:135 msgid "Location Path" msgstr "" -#: stock/admin.py:148 +#: stock/admin.py:149 msgid "Stock Item ID" msgstr "" -#: stock/admin.py:167 +#: stock/admin.py:168 msgid "Status Code" msgstr "" -#: stock/admin.py:179 +#: stock/admin.py:180 msgid "Supplier Part ID" msgstr "" -#: stock/admin.py:184 +#: stock/admin.py:185 msgid "Supplier Part SKU" msgstr "" -#: stock/admin.py:189 +#: stock/admin.py:190 msgid "Supplier ID" msgstr "" -#: stock/admin.py:200 +#: stock/admin.py:201 msgid "Customer ID" msgstr "" -#: stock/admin.py:205 stock/models.py:825 -#: stock/templates/stock/item_base.html:354 +#: stock/admin.py:206 stock/models.py:902 +#: stock/templates/stock/item_base.html:351 msgid "Installed In" msgstr "" -#: stock/admin.py:210 +#: stock/admin.py:211 msgid "Build ID" msgstr "" -#: stock/admin.py:220 +#: stock/admin.py:221 msgid "Sales Order ID" msgstr "" -#: stock/admin.py:225 +#: stock/admin.py:226 msgid "Purchase Order ID" msgstr "" -#: stock/admin.py:240 +#: stock/admin.py:241 msgid "Review Needed" msgstr "" -#: stock/admin.py:245 +#: stock/admin.py:246 msgid "Delete on Deplete" msgstr "" -#: stock/admin.py:260 stock/models.py:919 -#: stock/templates/stock/item_base.html:433 -#: templates/js/translated/stock.js:2315 users/models.py:124 +#: stock/admin.py:261 stock/models.py:996 +#: stock/templates/stock/item_base.html:430 +#: templates/js/translated/stock.js:2316 users/models.py:124 msgid "Expiry Date" msgstr "" @@ -9526,11 +9886,11 @@ msgstr "" msgid "Include sub-locations in filtered results" msgstr "" -#: stock/api.py:367 stock/serializers.py:1186 +#: stock/api.py:366 stock/serializers.py:1217 msgid "Parent Location" msgstr "" -#: stock/api.py:368 +#: stock/api.py:367 msgid "Filter by parent location" msgstr "" @@ -9550,8 +9910,8 @@ msgstr "" msgid "Expiry date after" msgstr "" -#: stock/api.py:840 stock/serializers.py:604 -#: stock/templates/stock/item_base.html:439 +#: stock/api.py:840 stock/serializers.py:631 +#: stock/templates/stock/item_base.html:436 #: templates/js/translated/table_filters.js:448 msgid "Stale" msgstr "" @@ -9560,594 +9920,598 @@ msgstr "" msgid "Quantity is required" msgstr "" -#: stock/api.py:933 +#: stock/api.py:932 msgid "Valid part must be supplied" msgstr "" -#: stock/api.py:964 +#: stock/api.py:959 msgid "The given supplier part does not exist" msgstr "" -#: stock/api.py:974 +#: stock/api.py:969 msgid "The supplier part has a pack size defined, but flag use_pack_size not set" msgstr "" -#: stock/api.py:1005 +#: stock/api.py:996 msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "" -#: stock/models.py:64 +#: stock/models.py:70 msgid "Stock Location type" msgstr "" -#: stock/models.py:65 +#: stock/models.py:71 msgid "Stock Location types" msgstr "" -#: stock/models.py:91 +#: stock/models.py:97 msgid "Default icon for all locations that have no icon set (optional)" msgstr "" -#: stock/models.py:131 stock/models.py:807 -#: stock/templates/stock/location.html:17 +#: stock/models.py:137 stock/models.py:884 +#: stock/templates/stock/location.html:18 #: stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "" -#: stock/models.py:132 stock/templates/stock/location.html:183 +#: stock/models.py:138 stock/templates/stock/location.html:184 #: templates/InvenTree/search.html:166 templates/js/translated/search.js:178 #: users/models.py:205 msgid "Stock Locations" msgstr "" -#: stock/models.py:180 stock/models.py:968 -#: stock/templates/stock/item_base.html:247 +#: stock/models.py:186 stock/models.py:1045 +#: stock/templates/stock/item_base.html:244 msgid "Owner" msgstr "Propriétaire" -#: stock/models.py:181 stock/models.py:969 +#: stock/models.py:187 stock/models.py:1046 msgid "Select Owner" msgstr "Sélectionner un propriétaire" -#: stock/models.py:189 +#: stock/models.py:195 msgid "Stock items may not be directly located into a structural stock locations, but may be located to child locations." msgstr "" -#: stock/models.py:196 templates/js/translated/stock.js:2865 +#: stock/models.py:202 templates/js/translated/stock.js:2866 #: templates/js/translated/table_filters.js:250 msgid "External" msgstr "" -#: stock/models.py:197 +#: stock/models.py:203 msgid "This is an external stock location" msgstr "" -#: stock/models.py:203 templates/js/translated/stock.js:2874 +#: stock/models.py:209 templates/js/translated/stock.js:2875 #: templates/js/translated/table_filters.js:253 msgid "Location type" msgstr "" -#: stock/models.py:207 +#: stock/models.py:213 msgid "Stock location type of this location" msgstr "" -#: stock/models.py:279 +#: stock/models.py:285 msgid "You cannot make this stock location structural because some stock items are already located into it!" msgstr "" -#: stock/models.py:664 +#: stock/models.py:492 +msgid "Part must be specified" +msgstr "" + +#: stock/models.py:741 msgid "Stock items cannot be located into structural stock locations!" msgstr "" -#: stock/models.py:691 stock/serializers.py:480 +#: stock/models.py:768 stock/serializers.py:492 msgid "Stock item cannot be created for virtual parts" msgstr "" -#: stock/models.py:708 +#: stock/models.py:785 #, python-brace-format msgid "Part type ('{self.supplier_part.part}') must be {self.part}" msgstr "" -#: stock/models.py:718 stock/models.py:731 +#: stock/models.py:795 stock/models.py:808 msgid "Quantity must be 1 for item with a serial number" msgstr "La quantité doit être de 1 pour un article avec un numéro de série" -#: stock/models.py:721 +#: stock/models.py:798 msgid "Serial number cannot be set if quantity greater than 1" msgstr "Le numéro de série ne peut pas être défini si la quantité est supérieure à 1" -#: stock/models.py:743 +#: stock/models.py:820 msgid "Item cannot belong to itself" msgstr "" -#: stock/models.py:748 +#: stock/models.py:825 msgid "Item must have a build reference if is_building=True" msgstr "" -#: stock/models.py:761 +#: stock/models.py:838 msgid "Build reference does not point to the same part object" msgstr "" -#: stock/models.py:777 +#: stock/models.py:854 msgid "Parent Stock Item" msgstr "" -#: stock/models.py:789 +#: stock/models.py:866 msgid "Base part" msgstr "" -#: stock/models.py:799 +#: stock/models.py:876 msgid "Select a matching supplier part for this stock item" msgstr "" -#: stock/models.py:811 +#: stock/models.py:888 msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:819 stock/serializers.py:1580 +#: stock/models.py:896 stock/serializers.py:1611 msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:830 +#: stock/models.py:907 msgid "Is this item installed in another item?" msgstr "" -#: stock/models.py:849 +#: stock/models.py:926 msgid "Serial number for this item" msgstr "Numéro de série pour cet article" -#: stock/models.py:863 stock/serializers.py:1563 +#: stock/models.py:940 stock/serializers.py:1594 msgid "Batch code for this stock item" msgstr "" -#: stock/models.py:868 +#: stock/models.py:945 msgid "Stock Quantity" msgstr "" -#: stock/models.py:878 +#: stock/models.py:955 msgid "Source Build" msgstr "" -#: stock/models.py:881 +#: stock/models.py:958 msgid "Build for this stock item" msgstr "" -#: stock/models.py:888 stock/templates/stock/item_base.html:363 +#: stock/models.py:965 stock/templates/stock/item_base.html:360 msgid "Consumed By" msgstr "" -#: stock/models.py:891 +#: stock/models.py:968 msgid "Build order which consumed this stock item" msgstr "" -#: stock/models.py:900 +#: stock/models.py:977 msgid "Source Purchase Order" msgstr "" -#: stock/models.py:904 +#: stock/models.py:981 msgid "Purchase order for this stock item" msgstr "" -#: stock/models.py:910 +#: stock/models.py:987 msgid "Destination Sales Order" msgstr "" -#: stock/models.py:921 +#: stock/models.py:998 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "" -#: stock/models.py:939 +#: stock/models.py:1016 msgid "Delete on deplete" msgstr "" -#: stock/models.py:940 +#: stock/models.py:1017 msgid "Delete this Stock Item when stock is depleted" msgstr "" -#: stock/models.py:960 +#: stock/models.py:1037 msgid "Single unit purchase price at time of purchase" msgstr "" -#: stock/models.py:991 +#: stock/models.py:1068 msgid "Converted to part" msgstr "" -#: stock/models.py:1511 +#: stock/models.py:1600 msgid "Part is not set as trackable" msgstr "" -#: stock/models.py:1517 +#: stock/models.py:1606 msgid "Quantity must be integer" msgstr "" -#: stock/models.py:1525 +#: stock/models.py:1614 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({self.quantity})" msgstr "" -#: stock/models.py:1531 -msgid "Serial numbers must be a list of integers" -msgstr "Les numéros de série doivent être une liste de nombres entiers" +#: stock/models.py:1620 +msgid "Serial numbers must be provided as a list" +msgstr "" -#: stock/models.py:1536 +#: stock/models.py:1625 msgid "Quantity does not match serial numbers" msgstr "La quantité ne correspond pas au nombre de numéros de série" -#: stock/models.py:1544 stock/serializers.py:726 -msgid "Serial numbers already exist" -msgstr "Les numéros de série existent déjà" - -#: stock/models.py:1641 +#: stock/models.py:1747 stock/models.py:2563 msgid "Test template does not exist" msgstr "" -#: stock/models.py:1659 +#: stock/models.py:1765 msgid "Stock item has been assigned to a sales order" msgstr "" -#: stock/models.py:1663 +#: stock/models.py:1769 msgid "Stock item is installed in another item" msgstr "" -#: stock/models.py:1666 +#: stock/models.py:1772 msgid "Stock item contains other items" msgstr "" -#: stock/models.py:1669 +#: stock/models.py:1775 msgid "Stock item has been assigned to a customer" msgstr "" -#: stock/models.py:1672 +#: stock/models.py:1778 msgid "Stock item is currently in production" msgstr "" -#: stock/models.py:1675 +#: stock/models.py:1781 msgid "Serialized stock cannot be merged" msgstr "" -#: stock/models.py:1682 stock/serializers.py:1469 +#: stock/models.py:1788 stock/serializers.py:1500 msgid "Duplicate stock items" msgstr "" -#: stock/models.py:1686 +#: stock/models.py:1792 msgid "Stock items must refer to the same part" msgstr "" -#: stock/models.py:1694 +#: stock/models.py:1800 msgid "Stock items must refer to the same supplier part" msgstr "" -#: stock/models.py:1699 +#: stock/models.py:1805 msgid "Stock status codes must match" msgstr "" -#: stock/models.py:1960 +#: stock/models.py:2066 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:2343 +#: stock/models.py:2462 msgid "Stock Item Tracking" msgstr "" -#: stock/models.py:2376 +#: stock/models.py:2495 msgid "Entry notes" msgstr "" -#: stock/models.py:2416 +#: stock/models.py:2535 msgid "Stock Item Test Result" msgstr "" -#: stock/models.py:2449 +#: stock/models.py:2566 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:2454 +#: stock/models.py:2570 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:2459 +#: stock/models.py:2575 msgid "Invalid value for this test" msgstr "" -#: stock/models.py:2544 +#: stock/models.py:2660 msgid "Test result" msgstr "" -#: stock/models.py:2551 +#: stock/models.py:2667 msgid "Test output value" msgstr "" -#: stock/models.py:2559 +#: stock/models.py:2675 stock/serializers.py:245 msgid "Test result attachment" msgstr "" -#: stock/models.py:2563 +#: stock/models.py:2679 msgid "Test notes" msgstr "" -#: stock/models.py:2571 templates/js/translated/stock.js:1633 +#: stock/models.py:2687 templates/js/translated/stock.js:1633 msgid "Test station" msgstr "" -#: stock/models.py:2572 +#: stock/models.py:2688 msgid "The identifier of the test station where the test was performed" msgstr "" -#: stock/models.py:2578 +#: stock/models.py:2694 msgid "Started" msgstr "" -#: stock/models.py:2579 +#: stock/models.py:2695 msgid "The timestamp of the test start" msgstr "" -#: stock/models.py:2585 +#: stock/models.py:2701 msgid "Finished" msgstr "" -#: stock/models.py:2586 +#: stock/models.py:2702 msgid "The timestamp of the test finish" msgstr "" -#: stock/serializers.py:76 +#: stock/serializers.py:77 msgid "Generated batch code" msgstr "" -#: stock/serializers.py:85 +#: stock/serializers.py:86 msgid "Select build order" msgstr "" -#: stock/serializers.py:94 +#: stock/serializers.py:95 msgid "Select stock item to generate batch code for" msgstr "" -#: stock/serializers.py:103 +#: stock/serializers.py:104 msgid "Select location to generate batch code for" msgstr "" -#: stock/serializers.py:112 +#: stock/serializers.py:113 msgid "Select part to generate batch code for" msgstr "" -#: stock/serializers.py:121 +#: stock/serializers.py:122 msgid "Select purchase order" msgstr "" -#: stock/serializers.py:128 +#: stock/serializers.py:129 msgid "Enter quantity for batch code" msgstr "" -#: stock/serializers.py:151 +#: stock/serializers.py:152 msgid "Generated serial number" msgstr "" -#: stock/serializers.py:160 +#: stock/serializers.py:161 msgid "Select part to generate serial number for" msgstr "" -#: stock/serializers.py:168 +#: stock/serializers.py:169 msgid "Quantity of serial numbers to generate" msgstr "" -#: stock/serializers.py:233 +#: stock/serializers.py:234 msgid "Test template for this result" msgstr "" -#: stock/serializers.py:254 +#: stock/serializers.py:258 msgid "Template ID or test name must be provided" msgstr "" -#: stock/serializers.py:286 +#: stock/serializers.py:290 msgid "The test finished time cannot be earlier than the test started time" msgstr "" -#: stock/serializers.py:323 +#: stock/serializers.py:327 msgid "Serial number is too large" msgstr "" -#: stock/serializers.py:452 stock/templates/stock/item_base.html:193 +#: stock/serializers.py:462 stock/templates/stock/item_base.html:190 msgid "Parent Item" msgstr "" -#: stock/serializers.py:453 +#: stock/serializers.py:463 msgid "Parent stock item" msgstr "" -#: stock/serializers.py:472 +#: stock/serializers.py:484 msgid "Use pack size when adding: the quantity defined is the number of packs" msgstr "" -#: stock/serializers.py:596 stock/templates/stock/item_base.html:437 +#: stock/serializers.py:623 stock/templates/stock/item_base.html:434 #: templates/js/translated/table_filters.js:442 users/models.py:174 msgid "Expired" msgstr "" -#: stock/serializers.py:602 stock/templates/stock/stock_sidebar.html:20 +#: stock/serializers.py:629 stock/templates/stock/stock_sidebar.html:20 msgid "Child Items" msgstr "" -#: stock/serializers.py:606 +#: stock/serializers.py:633 msgid "Tracking Items" msgstr "" -#: stock/serializers.py:612 +#: stock/serializers.py:639 msgid "Purchase price of this stock item, per unit or pack" msgstr "" -#: stock/serializers.py:631 +#: stock/serializers.py:658 msgid "Minimum Pricing" msgstr "" -#: stock/serializers.py:637 +#: stock/serializers.py:664 msgid "Maximum Pricing" msgstr "" -#: stock/serializers.py:661 +#: stock/serializers.py:688 msgid "Enter number of stock items to serialize" msgstr "Entrez le nombre d'articles en stock à sérialiser" -#: stock/serializers.py:674 +#: stock/serializers.py:701 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({q})" msgstr "" -#: stock/serializers.py:681 +#: stock/serializers.py:708 msgid "Enter serial numbers for new items" msgstr "Entrez les numéros de série pour les nouveaux articles" -#: stock/serializers.py:692 stock/serializers.py:1426 stock/serializers.py:1682 +#: stock/serializers.py:719 stock/serializers.py:1457 stock/serializers.py:1713 msgid "Destination stock location" msgstr "" -#: stock/serializers.py:699 +#: stock/serializers.py:726 msgid "Optional note field" msgstr "" -#: stock/serializers.py:709 +#: stock/serializers.py:736 msgid "Serial numbers cannot be assigned to this part" msgstr "Les numéros de série ne peuvent pas être assignés à cette pièce" -#: stock/serializers.py:764 +#: stock/serializers.py:756 +msgid "Serial numbers already exist" +msgstr "Les numéros de série existent déjà" + +#: stock/serializers.py:795 msgid "Select stock item to install" msgstr "" -#: stock/serializers.py:771 +#: stock/serializers.py:802 msgid "Quantity to Install" msgstr "" -#: stock/serializers.py:772 +#: stock/serializers.py:803 msgid "Enter the quantity of items to install" msgstr "" -#: stock/serializers.py:777 stock/serializers.py:857 stock/serializers.py:983 -#: stock/serializers.py:1033 +#: stock/serializers.py:808 stock/serializers.py:888 stock/serializers.py:1014 +#: stock/serializers.py:1064 msgid "Add transaction note (optional)" msgstr "" -#: stock/serializers.py:785 +#: stock/serializers.py:816 msgid "Quantity to install must be at least 1" msgstr "" -#: stock/serializers.py:793 +#: stock/serializers.py:824 msgid "Stock item is unavailable" msgstr "" -#: stock/serializers.py:804 +#: stock/serializers.py:835 msgid "Selected part is not in the Bill of Materials" msgstr "" -#: stock/serializers.py:817 +#: stock/serializers.py:848 msgid "Quantity to install must not exceed available quantity" msgstr "" -#: stock/serializers.py:852 +#: stock/serializers.py:883 msgid "Destination location for uninstalled item" msgstr "" -#: stock/serializers.py:903 +#: stock/serializers.py:934 msgid "Unsupported statistic type: " msgstr "" -#: stock/serializers.py:917 +#: stock/serializers.py:948 msgid "Select part to convert stock item into" msgstr "" -#: stock/serializers.py:930 +#: stock/serializers.py:961 msgid "Selected part is not a valid option for conversion" msgstr "" -#: stock/serializers.py:947 +#: stock/serializers.py:978 msgid "Cannot convert stock item with assigned SupplierPart" msgstr "" -#: stock/serializers.py:978 +#: stock/serializers.py:1009 msgid "Destination location for returned item" msgstr "" -#: stock/serializers.py:1015 +#: stock/serializers.py:1046 msgid "Select stock items to change status" msgstr "" -#: stock/serializers.py:1021 +#: stock/serializers.py:1052 msgid "No stock items selected" msgstr "" -#: stock/serializers.py:1117 stock/serializers.py:1194 -#: stock/templates/stock/location.html:162 -#: stock/templates/stock/location.html:219 +#: stock/serializers.py:1148 stock/serializers.py:1225 +#: stock/templates/stock/location.html:163 +#: stock/templates/stock/location.html:220 #: stock/templates/stock/location_sidebar.html:5 msgid "Sublocations" msgstr "" -#: stock/serializers.py:1187 templates/js/translated/stock.js:160 +#: stock/serializers.py:1218 templates/js/translated/stock.js:160 msgid "Parent stock location" msgstr "" -#: stock/serializers.py:1298 +#: stock/serializers.py:1329 msgid "Part must be salable" msgstr "" -#: stock/serializers.py:1302 +#: stock/serializers.py:1333 msgid "Item is allocated to a sales order" msgstr "" -#: stock/serializers.py:1306 +#: stock/serializers.py:1337 msgid "Item is allocated to a build order" msgstr "" -#: stock/serializers.py:1330 +#: stock/serializers.py:1361 msgid "Customer to assign stock items" msgstr "" -#: stock/serializers.py:1336 +#: stock/serializers.py:1367 msgid "Selected company is not a customer" msgstr "" -#: stock/serializers.py:1344 +#: stock/serializers.py:1375 msgid "Stock assignment notes" msgstr "" -#: stock/serializers.py:1354 stock/serializers.py:1608 +#: stock/serializers.py:1385 stock/serializers.py:1639 msgid "A list of stock items must be provided" msgstr "" -#: stock/serializers.py:1433 +#: stock/serializers.py:1464 msgid "Stock merging notes" msgstr "" -#: stock/serializers.py:1438 +#: stock/serializers.py:1469 msgid "Allow mismatched suppliers" msgstr "" -#: stock/serializers.py:1439 +#: stock/serializers.py:1470 msgid "Allow stock items with different supplier parts to be merged" msgstr "" -#: stock/serializers.py:1444 +#: stock/serializers.py:1475 msgid "Allow mismatched status" msgstr "" -#: stock/serializers.py:1445 +#: stock/serializers.py:1476 msgid "Allow stock items with different status codes to be merged" msgstr "" -#: stock/serializers.py:1455 +#: stock/serializers.py:1486 msgid "At least two stock items must be provided" msgstr "" -#: stock/serializers.py:1522 +#: stock/serializers.py:1553 msgid "No Change" msgstr "" -#: stock/serializers.py:1551 +#: stock/serializers.py:1582 msgid "StockItem primary key value" msgstr "" -#: stock/serializers.py:1570 +#: stock/serializers.py:1601 msgid "Stock item status code" msgstr "" -#: stock/serializers.py:1598 +#: stock/serializers.py:1629 msgid "Stock transaction notes" msgstr "" @@ -10175,107 +10539,107 @@ msgstr "Rejeté" msgid "Quarantined" msgstr "En quarantaine" -#: stock/status_codes.py:40 +#: stock/status_codes.py:44 msgid "Legacy stock tracking entry" msgstr "Ancienne entrée de suivi de stock" -#: stock/status_codes.py:42 templates/js/translated/stock.js:550 +#: stock/status_codes.py:46 templates/js/translated/stock.js:550 msgid "Stock item created" msgstr "Article en stock créé" -#: stock/status_codes.py:45 +#: stock/status_codes.py:49 msgid "Edited stock item" msgstr "Article de stock modifié" -#: stock/status_codes.py:46 +#: stock/status_codes.py:50 msgid "Assigned serial number" msgstr "Numéro de série attribué" -#: stock/status_codes.py:49 +#: stock/status_codes.py:53 msgid "Stock counted" msgstr "Stock comptabilisé" -#: stock/status_codes.py:50 +#: stock/status_codes.py:54 msgid "Stock manually added" msgstr "Stock ajouté manuellement" -#: stock/status_codes.py:51 +#: stock/status_codes.py:55 msgid "Stock manually removed" msgstr "Stock supprimé manuellement" -#: stock/status_codes.py:54 +#: stock/status_codes.py:58 msgid "Location changed" msgstr "Emplacement modifié" -#: stock/status_codes.py:55 +#: stock/status_codes.py:59 msgid "Stock updated" msgstr "Stock mis à jour" -#: stock/status_codes.py:58 +#: stock/status_codes.py:62 msgid "Installed into assembly" msgstr "Installé dans l'assemblage" -#: stock/status_codes.py:59 +#: stock/status_codes.py:63 msgid "Removed from assembly" msgstr "Retiré de l'assemblage" -#: stock/status_codes.py:61 +#: stock/status_codes.py:65 msgid "Installed component item" msgstr "Composant installé" -#: stock/status_codes.py:62 +#: stock/status_codes.py:66 msgid "Removed component item" msgstr "Composant retiré" -#: stock/status_codes.py:65 +#: stock/status_codes.py:69 msgid "Split from parent item" msgstr "Séparer de l'élément parent" -#: stock/status_codes.py:66 +#: stock/status_codes.py:70 msgid "Split child item" msgstr "Fractionner l'élément enfant" -#: stock/status_codes.py:69 templates/js/translated/stock.js:1943 +#: stock/status_codes.py:73 templates/js/translated/stock.js:1944 msgid "Merged stock items" msgstr "Articles de stock fusionnés" -#: stock/status_codes.py:72 +#: stock/status_codes.py:76 msgid "Converted to variant" msgstr "Converti en variante" -#: stock/status_codes.py:75 +#: stock/status_codes.py:79 msgid "Build order output created" msgstr "La sortie de l'ordre de construction a été créée" -#: stock/status_codes.py:76 +#: stock/status_codes.py:80 msgid "Build order output completed" msgstr "Sortie de l'ordre de construction terminée" -#: stock/status_codes.py:77 +#: stock/status_codes.py:81 msgid "Build order output rejected" msgstr "La sortie de l'ordre de construction a été refusée" -#: stock/status_codes.py:78 templates/js/translated/stock.js:1849 +#: stock/status_codes.py:82 templates/js/translated/stock.js:1849 msgid "Consumed by build order" msgstr "Consommé par ordre de construction" -#: stock/status_codes.py:81 +#: stock/status_codes.py:85 msgid "Shipped against Sales Order" msgstr "Commandes expédiées vs. ventes" -#: stock/status_codes.py:84 +#: stock/status_codes.py:88 msgid "Received against Purchase Order" msgstr "Livraisons reçues vs. commandes réalisées" -#: stock/status_codes.py:87 +#: stock/status_codes.py:91 msgid "Returned against Return Order" msgstr "Livraisons retournées vs. commandes retournées" -#: stock/status_codes.py:90 templates/js/translated/table_filters.js:382 +#: stock/status_codes.py:94 templates/js/translated/table_filters.js:382 msgid "Sent to customer" msgstr "Envoyé au client" -#: stock/status_codes.py:91 +#: stock/status_codes.py:95 msgid "Returned from customer" msgstr "Retourné par le client" @@ -10296,7 +10660,7 @@ msgstr "" msgid "Test Data" msgstr "" -#: stock/templates/stock/item.html:85 stock/templates/stock/item_base.html:65 +#: stock/templates/stock/item.html:85 msgid "Test Report" msgstr "" @@ -10316,7 +10680,7 @@ msgstr "" msgid "Installed Stock Items" msgstr "" -#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3354 +#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3355 msgid "Install Stock Item" msgstr "" @@ -10328,208 +10692,212 @@ msgstr "" msgid "Add Test Result" msgstr "" -#: stock/templates/stock/item_base.html:33 +#: stock/templates/stock/item_base.html:34 msgid "Locate stock item" msgstr "" -#: stock/templates/stock/item_base.html:51 +#: stock/templates/stock/item_base.html:52 msgid "Scan to Location" msgstr "" #: stock/templates/stock/item_base.html:59 -#: stock/templates/stock/location.html:67 +#: stock/templates/stock/location.html:68 #: templates/js/translated/filters.js:434 msgid "Printing actions" msgstr "" -#: stock/templates/stock/item_base.html:75 +#: stock/templates/stock/item_base.html:64 templates/js/translated/report.js:49 +msgid "Print Report" +msgstr "" + +#: stock/templates/stock/item_base.html:72 msgid "Stock adjustment actions" msgstr "" -#: stock/templates/stock/item_base.html:79 -#: stock/templates/stock/location.html:87 templates/js/translated/stock.js:1909 +#: stock/templates/stock/item_base.html:76 +#: stock/templates/stock/location.html:88 templates/js/translated/stock.js:1909 msgid "Count stock" msgstr "" -#: stock/templates/stock/item_base.html:81 +#: stock/templates/stock/item_base.html:78 #: templates/js/translated/stock.js:1891 msgid "Add stock" msgstr "" -#: stock/templates/stock/item_base.html:82 +#: stock/templates/stock/item_base.html:79 #: templates/js/translated/stock.js:1900 msgid "Remove stock" msgstr "" -#: stock/templates/stock/item_base.html:85 +#: stock/templates/stock/item_base.html:82 msgid "Serialize stock" msgstr "" -#: stock/templates/stock/item_base.html:88 -#: stock/templates/stock/location.html:93 templates/js/translated/stock.js:1918 +#: stock/templates/stock/item_base.html:85 +#: stock/templates/stock/location.html:94 templates/js/translated/stock.js:1918 msgid "Transfer stock" msgstr "" -#: stock/templates/stock/item_base.html:91 -#: templates/js/translated/stock.js:1972 +#: stock/templates/stock/item_base.html:88 +#: templates/js/translated/stock.js:1973 msgid "Assign to customer" msgstr "" -#: stock/templates/stock/item_base.html:94 +#: stock/templates/stock/item_base.html:91 msgid "Return to stock" msgstr "" -#: stock/templates/stock/item_base.html:97 +#: stock/templates/stock/item_base.html:94 msgid "Uninstall stock item" msgstr "" -#: stock/templates/stock/item_base.html:97 +#: stock/templates/stock/item_base.html:94 msgid "Uninstall" msgstr "" -#: stock/templates/stock/item_base.html:101 +#: stock/templates/stock/item_base.html:98 msgid "Install stock item" msgstr "" -#: stock/templates/stock/item_base.html:101 +#: stock/templates/stock/item_base.html:98 msgid "Install" msgstr "" -#: stock/templates/stock/item_base.html:115 +#: stock/templates/stock/item_base.html:112 msgid "Convert to variant" msgstr "" -#: stock/templates/stock/item_base.html:118 +#: stock/templates/stock/item_base.html:115 msgid "Duplicate stock item" msgstr "" -#: stock/templates/stock/item_base.html:120 +#: stock/templates/stock/item_base.html:117 msgid "Edit stock item" msgstr "" -#: stock/templates/stock/item_base.html:123 +#: stock/templates/stock/item_base.html:120 msgid "Delete stock item" msgstr "" -#: stock/templates/stock/item_base.html:169 templates/InvenTree/search.html:139 -#: templates/js/translated/build.js:2295 templates/navbar.html:38 +#: stock/templates/stock/item_base.html:166 templates/InvenTree/search.html:139 +#: templates/js/translated/build.js:2298 templates/navbar.html:38 msgid "Build" msgstr "Assemblage" -#: stock/templates/stock/item_base.html:211 +#: stock/templates/stock/item_base.html:208 msgid "No manufacturer set" msgstr "" -#: stock/templates/stock/item_base.html:251 +#: stock/templates/stock/item_base.html:248 msgid "You are not in the list of owners of this item. This stock item cannot be edited." msgstr "" -#: stock/templates/stock/item_base.html:252 -#: stock/templates/stock/location.html:146 +#: stock/templates/stock/item_base.html:249 +#: stock/templates/stock/location.html:147 msgid "Read only" msgstr "" -#: stock/templates/stock/item_base.html:265 +#: stock/templates/stock/item_base.html:262 msgid "This stock item is unavailable" msgstr "" -#: stock/templates/stock/item_base.html:271 +#: stock/templates/stock/item_base.html:268 msgid "This stock item is in production and cannot be edited." msgstr "" -#: stock/templates/stock/item_base.html:272 +#: stock/templates/stock/item_base.html:269 msgid "Edit the stock item from the build view." msgstr "" -#: stock/templates/stock/item_base.html:287 +#: stock/templates/stock/item_base.html:284 msgid "This stock item is allocated to Sales Order" msgstr "" -#: stock/templates/stock/item_base.html:295 +#: stock/templates/stock/item_base.html:292 msgid "This stock item is allocated to Build Order" msgstr "" -#: stock/templates/stock/item_base.html:311 +#: stock/templates/stock/item_base.html:308 msgid "This stock item is serialized. It has a unique serial number and the quantity cannot be adjusted" msgstr "" -#: stock/templates/stock/item_base.html:317 +#: stock/templates/stock/item_base.html:314 msgid "previous page" msgstr "page précédente" -#: stock/templates/stock/item_base.html:317 +#: stock/templates/stock/item_base.html:314 msgid "Navigate to previous serial number" msgstr "Accéder au numéro de série précédent" -#: stock/templates/stock/item_base.html:326 +#: stock/templates/stock/item_base.html:323 msgid "next page" msgstr "" -#: stock/templates/stock/item_base.html:326 +#: stock/templates/stock/item_base.html:323 msgid "Navigate to next serial number" msgstr "Accéder au numéro de série suivant" -#: stock/templates/stock/item_base.html:398 -#: templates/js/translated/build.js:2552 +#: stock/templates/stock/item_base.html:395 +#: templates/js/translated/build.js:2559 msgid "No location set" msgstr "" -#: stock/templates/stock/item_base.html:413 +#: stock/templates/stock/item_base.html:410 msgid "Tests" msgstr "" -#: stock/templates/stock/item_base.html:419 +#: stock/templates/stock/item_base.html:416 msgid "This stock item has not passed all required tests" msgstr "" -#: stock/templates/stock/item_base.html:437 +#: stock/templates/stock/item_base.html:434 #, python-format msgid "This StockItem expired on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:439 +#: stock/templates/stock/item_base.html:436 #, python-format msgid "This StockItem expires on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:455 +#: stock/templates/stock/item_base.html:452 msgid "No stocktake performed" msgstr "" -#: stock/templates/stock/item_base.html:504 -#: templates/js/translated/stock.js:2037 +#: stock/templates/stock/item_base.html:501 +#: templates/js/translated/stock.js:2038 msgid "stock item" msgstr "" -#: stock/templates/stock/item_base.html:527 +#: stock/templates/stock/item_base.html:524 msgid "Edit Stock Status" msgstr "" -#: stock/templates/stock/item_base.html:536 +#: stock/templates/stock/item_base.html:533 msgid "Stock Item QR Code" msgstr "" -#: stock/templates/stock/item_base.html:547 +#: stock/templates/stock/item_base.html:544 msgid "Link Barcode to Stock Item" msgstr "" -#: stock/templates/stock/item_base.html:611 +#: stock/templates/stock/item_base.html:608 msgid "Select one of the part variants listed below." msgstr "" -#: stock/templates/stock/item_base.html:614 +#: stock/templates/stock/item_base.html:611 msgid "Warning" msgstr "" -#: stock/templates/stock/item_base.html:615 +#: stock/templates/stock/item_base.html:612 msgid "This action cannot be easily undone" msgstr "" -#: stock/templates/stock/item_base.html:623 +#: stock/templates/stock/item_base.html:620 msgid "Convert Stock Item" msgstr "" -#: stock/templates/stock/item_base.html:656 +#: stock/templates/stock/item_base.html:653 msgid "Return to Stock" msgstr "" @@ -10541,84 +10909,84 @@ msgstr "" msgid "Select quantity to serialize, and unique serial numbers." msgstr "Sélectionner la quantité à sérialiser et les numéros de série uniques." -#: stock/templates/stock/location.html:35 +#: stock/templates/stock/location.html:36 msgid "Perform stocktake for this stock location" msgstr "" -#: stock/templates/stock/location.html:42 +#: stock/templates/stock/location.html:43 msgid "Locate stock location" msgstr "" -#: stock/templates/stock/location.html:60 +#: stock/templates/stock/location.html:61 msgid "Scan stock items into this location" msgstr "" -#: stock/templates/stock/location.html:60 +#: stock/templates/stock/location.html:61 msgid "Scan In Stock Items" msgstr "" -#: stock/templates/stock/location.html:61 +#: stock/templates/stock/location.html:62 msgid "Scan stock container into this location" msgstr "" -#: stock/templates/stock/location.html:61 +#: stock/templates/stock/location.html:62 msgid "Scan In Container" msgstr "" -#: stock/templates/stock/location.html:72 +#: stock/templates/stock/location.html:73 msgid "Print Location Report" msgstr "" -#: stock/templates/stock/location.html:101 +#: stock/templates/stock/location.html:102 msgid "Location actions" msgstr "" -#: stock/templates/stock/location.html:103 +#: stock/templates/stock/location.html:104 msgid "Edit location" msgstr "" -#: stock/templates/stock/location.html:105 +#: stock/templates/stock/location.html:106 msgid "Delete location" msgstr "" -#: stock/templates/stock/location.html:135 +#: stock/templates/stock/location.html:136 msgid "Top level stock location" msgstr "" -#: stock/templates/stock/location.html:141 +#: stock/templates/stock/location.html:142 msgid "Location Owner" msgstr "" -#: stock/templates/stock/location.html:145 +#: stock/templates/stock/location.html:146 msgid "You are not in the list of owners of this location. This stock location cannot be edited." msgstr "" -#: stock/templates/stock/location.html:173 +#: stock/templates/stock/location.html:174 msgid "Location Type" msgstr "" -#: stock/templates/stock/location.html:223 +#: stock/templates/stock/location.html:224 msgid "Create new stock location" msgstr "" -#: stock/templates/stock/location.html:224 +#: stock/templates/stock/location.html:225 msgid "New Location" msgstr "" -#: stock/templates/stock/location.html:298 -#: templates/js/translated/stock.js:2657 +#: stock/templates/stock/location.html:299 +#: templates/js/translated/stock.js:2658 msgid "stock location" msgstr "" -#: stock/templates/stock/location.html:320 +#: stock/templates/stock/location.html:321 msgid "Scanned stock container into this location" msgstr "" -#: stock/templates/stock/location.html:393 +#: stock/templates/stock/location.html:394 msgid "Stock Location QR Code" msgstr "" -#: stock/templates/stock/location.html:404 +#: stock/templates/stock/location.html:405 msgid "Link Barcode to Stock Location" msgstr "" @@ -10630,10 +10998,6 @@ msgstr "" msgid "Stock Tracking" msgstr "" -#: stock/templates/stock/stock_sidebar.html:8 -msgid "Allocations" -msgstr "" - #: templates/403.html:6 templates/403.html:12 templates/403_csrf.html:7 msgid "Permission Denied" msgstr "Autorisation refusée" @@ -11107,9 +11471,9 @@ msgid "Rate" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:81 -#: templates/js/translated/forms.js:548 templates/js/translated/helpers.js:108 +#: templates/js/translated/forms.js:548 templates/js/translated/helpers.js:109 #: templates/js/translated/part.js:395 templates/js/translated/pricing.js:629 -#: templates/js/translated/stock.js:252 users/models.py:406 +#: templates/js/translated/stock.js:252 users/models.py:408 msgid "Delete" msgstr "Supprimer" @@ -11130,7 +11494,7 @@ msgid "No project codes found" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:158 -#: templates/js/translated/build.js:2400 +#: templates/js/translated/build.js:2403 msgid "group" msgstr "" @@ -11196,7 +11560,7 @@ msgid "Delete Location Type" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:503 -#: templates/InvenTree/settings/stock.html:38 +#: templates/InvenTree/settings/stock.html:39 msgid "New Location Type" msgstr "" @@ -11253,7 +11617,7 @@ msgstr "" msgid "Stock Settings" msgstr "" -#: templates/InvenTree/settings/stock.html:34 +#: templates/InvenTree/settings/stock.html:35 msgid "Stock Location Types" msgstr "" @@ -11280,7 +11644,7 @@ msgid "Unverified" msgstr "Non vérifiée" #: templates/InvenTree/settings/user.html:80 -#: templates/js/translated/company.js:957 +#: templates/js/translated/company.js:958 msgid "Primary" msgstr "Principale" @@ -11532,7 +11896,7 @@ msgid "Submit Bug Report" msgstr "" #: templates/about.html:91 templates/clip.html:4 -#: templates/js/translated/helpers.js:592 +#: templates/js/translated/helpers.js:598 msgid "copy to clipboard" msgstr "" @@ -11738,23 +12102,24 @@ msgstr "Ajouter une pièce jointe" msgid "Barcode Identifier" msgstr "Identifiant du code-barres" -#: templates/base.html:103 +#: templates/base.html:102 msgid "Server Restart Required" msgstr "Redémarrage du serveur nécessaire" -#: templates/base.html:106 +#: templates/base.html:105 msgid "A configuration option has been changed which requires a server restart" msgstr "Une option de configuration a été modifiée, ce qui nécessite un redémarrage du serveur" -#: templates/base.html:106 templates/base.html:116 +#: templates/base.html:105 templates/base.html:115 +#: templates/socialaccount/authentication_error.html:13 msgid "Contact your system administrator for further information" msgstr "Contactez votre administrateur système pour plus d'informations" -#: templates/base.html:113 +#: templates/base.html:112 msgid "Pending Database Migrations" msgstr "" -#: templates/base.html:116 +#: templates/base.html:115 msgid "There are pending database migrations which require attention" msgstr "" @@ -11787,7 +12152,7 @@ msgid "The following parts are low on required stock" msgstr "" #: templates/email/build_order_required_stock.html:18 -#: templates/js/translated/bom.js:1674 templates/js/translated/build.js:2747 +#: templates/js/translated/bom.js:1674 templates/js/translated/build.js:2765 msgid "Required Quantity" msgstr "Quantité requise" @@ -11801,7 +12166,7 @@ msgid "Click on the following link to view this part" msgstr "" #: templates/email/low_stock_notification.html:18 -#: templates/js/translated/part.js:3237 +#: templates/js/translated/part.js:3253 msgid "Minimum Quantity" msgstr "" @@ -12039,7 +12404,7 @@ msgstr "" #: templates/js/translated/bom.js:189 templates/js/translated/bom.js:700 #: templates/js/translated/modals.js:75 templates/js/translated/modals.js:629 #: templates/js/translated/modals.js:757 templates/js/translated/modals.js:1065 -#: templates/js/translated/purchase_order.js:797 templates/modals.html:15 +#: templates/js/translated/purchase_order.js:780 templates/modals.html:15 #: templates/modals.html:27 templates/modals.html:39 templates/modals.html:50 msgid "Close" msgstr "" @@ -12156,7 +12521,7 @@ msgstr "" msgid "Substitutes Available" msgstr "" -#: templates/js/translated/bom.js:950 templates/js/translated/build.js:2673 +#: templates/js/translated/bom.js:950 templates/js/translated/build.js:2682 msgid "Variant stock allowed" msgstr "" @@ -12176,30 +12541,30 @@ msgstr "" msgid "No pricing available" msgstr "" -#: templates/js/translated/bom.js:1184 templates/js/translated/build.js:2812 +#: templates/js/translated/bom.js:1184 templates/js/translated/build.js:2830 msgid "External stock" msgstr "" -#: templates/js/translated/bom.js:1188 templates/js/translated/build.js:2786 -#: templates/js/translated/sales_order.js:1946 +#: templates/js/translated/bom.js:1188 templates/js/translated/build.js:2804 +#: templates/js/translated/sales_order.js:1927 msgid "No Stock Available" msgstr "" -#: templates/js/translated/bom.js:1193 templates/js/translated/build.js:2790 +#: templates/js/translated/bom.js:1193 templates/js/translated/build.js:2808 msgid "Includes variant and substitute stock" msgstr "" -#: templates/js/translated/bom.js:1195 templates/js/translated/build.js:2792 +#: templates/js/translated/bom.js:1195 templates/js/translated/build.js:2810 #: templates/js/translated/part.js:1263 -#: templates/js/translated/sales_order.js:1943 +#: templates/js/translated/sales_order.js:1924 msgid "Includes variant stock" msgstr "" -#: templates/js/translated/bom.js:1197 templates/js/translated/build.js:2794 +#: templates/js/translated/bom.js:1197 templates/js/translated/build.js:2812 msgid "Includes substitute stock" msgstr "" -#: templates/js/translated/bom.js:1225 templates/js/translated/build.js:2777 +#: templates/js/translated/bom.js:1225 templates/js/translated/build.js:2795 msgid "Consumable item" msgstr "" @@ -12231,7 +12596,7 @@ msgstr "" msgid "No BOM items found" msgstr "" -#: templates/js/translated/bom.js:1657 templates/js/translated/build.js:2658 +#: templates/js/translated/bom.js:1657 templates/js/translated/build.js:2667 msgid "Required Part" msgstr "" @@ -12243,396 +12608,396 @@ msgstr "" msgid "Edit Build Order" msgstr "" -#: templates/js/translated/build.js:191 +#: templates/js/translated/build.js:194 msgid "Create Build Order" msgstr "" -#: templates/js/translated/build.js:223 +#: templates/js/translated/build.js:226 msgid "Cancel Build Order" msgstr "" -#: templates/js/translated/build.js:232 +#: templates/js/translated/build.js:235 msgid "Are you sure you wish to cancel this build?" msgstr "" -#: templates/js/translated/build.js:238 +#: templates/js/translated/build.js:241 msgid "Stock items have been allocated to this build order" msgstr "" -#: templates/js/translated/build.js:245 +#: templates/js/translated/build.js:248 msgid "There are incomplete outputs remaining for this build order" msgstr "" -#: templates/js/translated/build.js:297 +#: templates/js/translated/build.js:300 msgid "Build order is ready to be completed" msgstr "" -#: templates/js/translated/build.js:305 +#: templates/js/translated/build.js:308 msgid "This build order cannot be completed as there are incomplete outputs" msgstr "" -#: templates/js/translated/build.js:310 +#: templates/js/translated/build.js:313 msgid "Build Order is incomplete" msgstr "" -#: templates/js/translated/build.js:328 +#: templates/js/translated/build.js:331 msgid "Complete Build Order" msgstr "" -#: templates/js/translated/build.js:369 templates/js/translated/stock.js:127 +#: templates/js/translated/build.js:372 templates/js/translated/stock.js:127 #: templates/js/translated/stock.js:301 msgid "Next available serial number" msgstr "" -#: templates/js/translated/build.js:371 templates/js/translated/stock.js:129 +#: templates/js/translated/build.js:374 templates/js/translated/stock.js:129 #: templates/js/translated/stock.js:303 msgid "Latest serial number" msgstr "Dernier numéro de série" -#: templates/js/translated/build.js:380 +#: templates/js/translated/build.js:383 msgid "The Bill of Materials contains trackable parts" msgstr "" -#: templates/js/translated/build.js:381 +#: templates/js/translated/build.js:384 msgid "Build outputs must be generated individually" msgstr "" -#: templates/js/translated/build.js:389 +#: templates/js/translated/build.js:392 msgid "Trackable parts can have serial numbers specified" msgstr "" -#: templates/js/translated/build.js:390 +#: templates/js/translated/build.js:393 msgid "Enter serial numbers to generate multiple single build outputs" msgstr "" -#: templates/js/translated/build.js:397 +#: templates/js/translated/build.js:400 msgid "Create Build Output" msgstr "" -#: templates/js/translated/build.js:428 +#: templates/js/translated/build.js:431 msgid "Allocate stock items to this build output" msgstr "" -#: templates/js/translated/build.js:436 +#: templates/js/translated/build.js:439 msgid "Deallocate stock from build output" msgstr "" -#: templates/js/translated/build.js:445 +#: templates/js/translated/build.js:448 msgid "Complete build output" msgstr "" -#: templates/js/translated/build.js:453 +#: templates/js/translated/build.js:456 msgid "Scrap build output" msgstr "" -#: templates/js/translated/build.js:460 +#: templates/js/translated/build.js:463 msgid "Delete build output" msgstr "" -#: templates/js/translated/build.js:480 +#: templates/js/translated/build.js:483 msgid "Are you sure you wish to deallocate the selected stock items from this build?" msgstr "" -#: templates/js/translated/build.js:498 +#: templates/js/translated/build.js:501 msgid "Deallocate Stock Items" msgstr "" -#: templates/js/translated/build.js:584 templates/js/translated/build.js:711 -#: templates/js/translated/build.js:836 +#: templates/js/translated/build.js:587 templates/js/translated/build.js:714 +#: templates/js/translated/build.js:839 msgid "Select Build Outputs" msgstr "" -#: templates/js/translated/build.js:585 templates/js/translated/build.js:712 -#: templates/js/translated/build.js:837 +#: templates/js/translated/build.js:588 templates/js/translated/build.js:715 +#: templates/js/translated/build.js:840 msgid "At least one build output must be selected" msgstr "" -#: templates/js/translated/build.js:599 +#: templates/js/translated/build.js:602 msgid "Selected build outputs will be marked as complete" msgstr "" -#: templates/js/translated/build.js:603 templates/js/translated/build.js:736 -#: templates/js/translated/build.js:859 +#: templates/js/translated/build.js:606 templates/js/translated/build.js:739 +#: templates/js/translated/build.js:862 msgid "Output" msgstr "" -#: templates/js/translated/build.js:630 +#: templates/js/translated/build.js:633 msgid "Complete Build Outputs" msgstr "" -#: templates/js/translated/build.js:727 +#: templates/js/translated/build.js:730 msgid "Selected build outputs will be marked as scrapped" msgstr "" -#: templates/js/translated/build.js:729 +#: templates/js/translated/build.js:732 msgid "Scrapped output are marked as rejected" msgstr "" -#: templates/js/translated/build.js:730 +#: templates/js/translated/build.js:733 msgid "Allocated stock items will no longer be available" msgstr "" -#: templates/js/translated/build.js:731 +#: templates/js/translated/build.js:734 msgid "The completion status of the build order will not be adjusted" msgstr "" -#: templates/js/translated/build.js:761 +#: templates/js/translated/build.js:764 msgid "Scrap Build Outputs" msgstr "" -#: templates/js/translated/build.js:851 +#: templates/js/translated/build.js:854 msgid "Selected build outputs will be deleted" msgstr "" -#: templates/js/translated/build.js:853 +#: templates/js/translated/build.js:856 msgid "Build output data will be permanently deleted" msgstr "" -#: templates/js/translated/build.js:854 +#: templates/js/translated/build.js:857 msgid "Allocated stock items will be returned to stock" msgstr "" -#: templates/js/translated/build.js:872 +#: templates/js/translated/build.js:875 msgid "Delete Build Outputs" msgstr "" -#: templates/js/translated/build.js:959 +#: templates/js/translated/build.js:962 msgid "Delete allocations" msgstr "" -#: templates/js/translated/build.js:966 +#: templates/js/translated/build.js:969 msgid "Delete Stock Allocations" msgstr "" -#: templates/js/translated/build.js:989 +#: templates/js/translated/build.js:992 msgid "No allocated stock" msgstr "" -#: templates/js/translated/build.js:1045 +#: templates/js/translated/build.js:1048 msgid "Stock item" msgstr "" -#: templates/js/translated/build.js:1070 +#: templates/js/translated/build.js:1073 msgid "Edit build allocation" msgstr "" -#: templates/js/translated/build.js:1071 +#: templates/js/translated/build.js:1074 msgid "Delete build allocation" msgstr "" -#: templates/js/translated/build.js:1089 +#: templates/js/translated/build.js:1092 msgid "Edit Build Allocation" msgstr "" -#: templates/js/translated/build.js:1102 +#: templates/js/translated/build.js:1105 msgid "Delete Build Allocation" msgstr "" -#: templates/js/translated/build.js:1133 +#: templates/js/translated/build.js:1136 msgid "No build order allocations found" msgstr "" -#: templates/js/translated/build.js:1178 +#: templates/js/translated/build.js:1181 msgid "Location not specified" msgstr "" -#: templates/js/translated/build.js:1200 +#: templates/js/translated/build.js:1203 msgid "Complete outputs" msgstr "" -#: templates/js/translated/build.js:1218 +#: templates/js/translated/build.js:1221 msgid "Scrap outputs" msgstr "" -#: templates/js/translated/build.js:1236 +#: templates/js/translated/build.js:1239 msgid "Delete outputs" msgstr "" -#: templates/js/translated/build.js:1289 +#: templates/js/translated/build.js:1292 msgid "build output" msgstr "" -#: templates/js/translated/build.js:1290 +#: templates/js/translated/build.js:1293 msgid "build outputs" msgstr "" -#: templates/js/translated/build.js:1294 +#: templates/js/translated/build.js:1297 msgid "Build output actions" msgstr "" -#: templates/js/translated/build.js:1470 +#: templates/js/translated/build.js:1473 msgid "No active build outputs found" msgstr "" -#: templates/js/translated/build.js:1563 +#: templates/js/translated/build.js:1566 msgid "Allocated Lines" msgstr "" -#: templates/js/translated/build.js:1577 +#: templates/js/translated/build.js:1580 msgid "Required Tests" msgstr "" -#: templates/js/translated/build.js:1749 -#: templates/js/translated/purchase_order.js:611 -#: templates/js/translated/sales_order.js:1207 +#: templates/js/translated/build.js:1752 +#: templates/js/translated/purchase_order.js:594 +#: templates/js/translated/sales_order.js:1173 msgid "Select Parts" msgstr "" -#: templates/js/translated/build.js:1750 -#: templates/js/translated/sales_order.js:1208 +#: templates/js/translated/build.js:1753 +#: templates/js/translated/sales_order.js:1174 msgid "You must select at least one part to allocate" msgstr "" -#: templates/js/translated/build.js:1813 -#: templates/js/translated/sales_order.js:1157 +#: templates/js/translated/build.js:1816 +#: templates/js/translated/sales_order.js:1123 msgid "Specify stock allocation quantity" msgstr "" -#: templates/js/translated/build.js:1890 +#: templates/js/translated/build.js:1893 msgid "All Parts Allocated" msgstr "" -#: templates/js/translated/build.js:1891 +#: templates/js/translated/build.js:1894 msgid "All selected parts have been fully allocated" msgstr "" -#: templates/js/translated/build.js:1905 -#: templates/js/translated/sales_order.js:1222 +#: templates/js/translated/build.js:1908 +#: templates/js/translated/sales_order.js:1188 msgid "Select source location (leave blank to take from all locations)" msgstr "" -#: templates/js/translated/build.js:1933 +#: templates/js/translated/build.js:1936 msgid "Allocate Stock Items to Build Order" msgstr "" -#: templates/js/translated/build.js:1944 -#: templates/js/translated/sales_order.js:1319 +#: templates/js/translated/build.js:1947 +#: templates/js/translated/sales_order.js:1285 msgid "No matching stock locations" msgstr "" -#: templates/js/translated/build.js:2017 -#: templates/js/translated/sales_order.js:1398 +#: templates/js/translated/build.js:2020 +#: templates/js/translated/sales_order.js:1364 msgid "No matching stock items" msgstr "" -#: templates/js/translated/build.js:2114 +#: templates/js/translated/build.js:2117 msgid "Automatic Stock Allocation" msgstr "" -#: templates/js/translated/build.js:2115 +#: templates/js/translated/build.js:2118 msgid "Stock items will be automatically allocated to this build order, according to the provided guidelines" msgstr "" -#: templates/js/translated/build.js:2117 +#: templates/js/translated/build.js:2120 msgid "If a location is specified, stock will only be allocated from that location" msgstr "" -#: templates/js/translated/build.js:2118 +#: templates/js/translated/build.js:2121 msgid "If stock is considered interchangeable, it will be allocated from the first location it is found" msgstr "" -#: templates/js/translated/build.js:2119 +#: templates/js/translated/build.js:2122 msgid "If substitute stock is allowed, it will be used where stock of the primary part cannot be found" msgstr "" -#: templates/js/translated/build.js:2149 +#: templates/js/translated/build.js:2152 msgid "Allocate Stock Items" msgstr "" -#: templates/js/translated/build.js:2254 +#: templates/js/translated/build.js:2257 msgid "No builds matching query" msgstr "" -#: templates/js/translated/build.js:2289 templates/js/translated/build.js:2652 +#: templates/js/translated/build.js:2292 templates/js/translated/build.js:2661 #: templates/js/translated/forms.js:2196 templates/js/translated/forms.js:2212 #: templates/js/translated/part.js:2322 templates/js/translated/part.js:2761 -#: templates/js/translated/stock.js:2068 templates/js/translated/stock.js:2795 +#: templates/js/translated/stock.js:2069 templates/js/translated/stock.js:2796 msgid "Select" msgstr "" -#: templates/js/translated/build.js:2303 +#: templates/js/translated/build.js:2306 msgid "Build order is overdue" msgstr "" -#: templates/js/translated/build.js:2385 templates/js/translated/stock.js:3126 +#: templates/js/translated/build.js:2388 templates/js/translated/stock.js:3127 msgid "No user information" msgstr "" -#: templates/js/translated/build.js:2561 -#: templates/js/translated/sales_order.js:1682 +#: templates/js/translated/build.js:2568 +#: templates/js/translated/sales_order.js:1663 msgid "Edit stock allocation" msgstr "" -#: templates/js/translated/build.js:2562 -#: templates/js/translated/sales_order.js:1683 +#: templates/js/translated/build.js:2569 +#: templates/js/translated/sales_order.js:1664 msgid "Delete stock allocation" msgstr "" -#: templates/js/translated/build.js:2577 +#: templates/js/translated/build.js:2584 msgid "Edit Allocation" msgstr "" -#: templates/js/translated/build.js:2589 +#: templates/js/translated/build.js:2596 msgid "Remove Allocation" msgstr "" -#: templates/js/translated/build.js:2628 +#: templates/js/translated/build.js:2636 msgid "build line" msgstr "" -#: templates/js/translated/build.js:2629 +#: templates/js/translated/build.js:2637 msgid "build lines" msgstr "" -#: templates/js/translated/build.js:2647 +#: templates/js/translated/build.js:2656 msgid "No build lines found" msgstr "" -#: templates/js/translated/build.js:2677 templates/js/translated/part.js:793 +#: templates/js/translated/build.js:2686 templates/js/translated/part.js:793 #: templates/js/translated/part.js:1209 msgid "Trackable part" msgstr "" -#: templates/js/translated/build.js:2720 +#: templates/js/translated/build.js:2729 msgid "Gets Inherited" msgstr "" -#: templates/js/translated/build.js:2730 +#: templates/js/translated/build.js:2748 msgid "Unit Quantity" msgstr "" -#: templates/js/translated/build.js:2782 -#: templates/js/translated/sales_order.js:1951 +#: templates/js/translated/build.js:2800 +#: templates/js/translated/sales_order.js:1932 msgid "Sufficient stock available" msgstr "" -#: templates/js/translated/build.js:2837 +#: templates/js/translated/build.js:2855 msgid "Consumable Item" msgstr "" -#: templates/js/translated/build.js:2844 +#: templates/js/translated/build.js:2862 msgid "Tracked item" msgstr "" -#: templates/js/translated/build.js:2845 +#: templates/js/translated/build.js:2863 msgid "Allocate tracked items against individual build outputs" msgstr "" -#: templates/js/translated/build.js:2853 -#: templates/js/translated/sales_order.js:2052 +#: templates/js/translated/build.js:2871 +#: templates/js/translated/sales_order.js:2033 msgid "Build stock" msgstr "" -#: templates/js/translated/build.js:2858 templates/js/translated/stock.js:1953 +#: templates/js/translated/build.js:2876 templates/js/translated/stock.js:1954 msgid "Order stock" msgstr "" -#: templates/js/translated/build.js:2862 -#: templates/js/translated/sales_order.js:2046 +#: templates/js/translated/build.js:2880 +#: templates/js/translated/sales_order.js:2027 msgid "Allocate stock" msgstr "" -#: templates/js/translated/build.js:2866 +#: templates/js/translated/build.js:2884 msgid "Remove stock allocation" msgstr "" @@ -12641,7 +13006,7 @@ msgid "Add Manufacturer" msgstr "" #: templates/js/translated/company.js:111 -#: templates/js/translated/company.js:213 +#: templates/js/translated/company.js:214 msgid "Add Manufacturer Part" msgstr "" @@ -12649,231 +13014,231 @@ msgstr "" msgid "Edit Manufacturer Part" msgstr "" -#: templates/js/translated/company.js:201 +#: templates/js/translated/company.js:202 #: templates/js/translated/purchase_order.js:93 msgid "Add Supplier" msgstr "" -#: templates/js/translated/company.js:243 -#: templates/js/translated/purchase_order.js:318 +#: templates/js/translated/company.js:244 +#: templates/js/translated/purchase_order.js:301 msgid "Add Supplier Part" msgstr "" -#: templates/js/translated/company.js:344 +#: templates/js/translated/company.js:345 msgid "All selected supplier parts will be deleted" msgstr "" -#: templates/js/translated/company.js:360 +#: templates/js/translated/company.js:361 msgid "Delete Supplier Parts" msgstr "" -#: templates/js/translated/company.js:466 +#: templates/js/translated/company.js:467 msgid "Add new Company" msgstr "" -#: templates/js/translated/company.js:546 +#: templates/js/translated/company.js:547 msgid "Parts Supplied" msgstr "" -#: templates/js/translated/company.js:555 +#: templates/js/translated/company.js:556 msgid "Parts Manufactured" msgstr "" -#: templates/js/translated/company.js:570 +#: templates/js/translated/company.js:571 msgid "No company information found" msgstr "" -#: templates/js/translated/company.js:619 +#: templates/js/translated/company.js:620 msgid "Create New Contact" msgstr "" -#: templates/js/translated/company.js:635 -#: templates/js/translated/company.js:758 +#: templates/js/translated/company.js:636 +#: templates/js/translated/company.js:759 msgid "Edit Contact" msgstr "" -#: templates/js/translated/company.js:672 +#: templates/js/translated/company.js:673 msgid "All selected contacts will be deleted" msgstr "" -#: templates/js/translated/company.js:678 -#: templates/js/translated/company.js:742 +#: templates/js/translated/company.js:679 +#: templates/js/translated/company.js:743 msgid "Role" msgstr "" -#: templates/js/translated/company.js:686 +#: templates/js/translated/company.js:687 msgid "Delete Contacts" msgstr "" -#: templates/js/translated/company.js:717 +#: templates/js/translated/company.js:718 msgid "No contacts found" msgstr "" -#: templates/js/translated/company.js:730 +#: templates/js/translated/company.js:731 msgid "Phone Number" msgstr "" -#: templates/js/translated/company.js:736 +#: templates/js/translated/company.js:737 msgid "Email Address" msgstr "" -#: templates/js/translated/company.js:762 +#: templates/js/translated/company.js:763 msgid "Delete Contact" msgstr "" -#: templates/js/translated/company.js:859 +#: templates/js/translated/company.js:860 msgid "Create New Address" msgstr "" -#: templates/js/translated/company.js:874 -#: templates/js/translated/company.js:1035 +#: templates/js/translated/company.js:875 +#: templates/js/translated/company.js:1036 msgid "Edit Address" msgstr "" -#: templates/js/translated/company.js:909 +#: templates/js/translated/company.js:910 msgid "All selected addresses will be deleted" msgstr "" -#: templates/js/translated/company.js:923 +#: templates/js/translated/company.js:924 msgid "Delete Addresses" msgstr "" -#: templates/js/translated/company.js:950 +#: templates/js/translated/company.js:951 msgid "No addresses found" msgstr "" -#: templates/js/translated/company.js:989 +#: templates/js/translated/company.js:990 msgid "Postal city" msgstr "" -#: templates/js/translated/company.js:995 +#: templates/js/translated/company.js:996 msgid "State/province" msgstr "" -#: templates/js/translated/company.js:1007 +#: templates/js/translated/company.js:1008 msgid "Courier notes" msgstr "" -#: templates/js/translated/company.js:1013 +#: templates/js/translated/company.js:1014 msgid "Internal notes" msgstr "" -#: templates/js/translated/company.js:1039 +#: templates/js/translated/company.js:1040 msgid "Delete Address" msgstr "" -#: templates/js/translated/company.js:1112 +#: templates/js/translated/company.js:1113 msgid "All selected manufacturer parts will be deleted" msgstr "" -#: templates/js/translated/company.js:1127 +#: templates/js/translated/company.js:1128 msgid "Delete Manufacturer Parts" msgstr "" -#: templates/js/translated/company.js:1161 +#: templates/js/translated/company.js:1162 msgid "All selected parameters will be deleted" msgstr "" -#: templates/js/translated/company.js:1175 +#: templates/js/translated/company.js:1176 msgid "Delete Parameters" msgstr "" -#: templates/js/translated/company.js:1191 -#: templates/js/translated/company.js:1479 templates/js/translated/part.js:2250 +#: templates/js/translated/company.js:1192 +#: templates/js/translated/company.js:1480 templates/js/translated/part.js:2250 msgid "Order parts" msgstr "" -#: templates/js/translated/company.js:1208 +#: templates/js/translated/company.js:1209 msgid "Delete manufacturer parts" msgstr "" -#: templates/js/translated/company.js:1240 +#: templates/js/translated/company.js:1241 msgid "Manufacturer part actions" msgstr "" -#: templates/js/translated/company.js:1259 +#: templates/js/translated/company.js:1260 msgid "No manufacturer parts found" msgstr "" -#: templates/js/translated/company.js:1279 -#: templates/js/translated/company.js:1567 templates/js/translated/part.js:801 +#: templates/js/translated/company.js:1280 +#: templates/js/translated/company.js:1568 templates/js/translated/part.js:801 #: templates/js/translated/part.js:1217 msgid "Template part" msgstr "" -#: templates/js/translated/company.js:1283 -#: templates/js/translated/company.js:1571 templates/js/translated/part.js:805 +#: templates/js/translated/company.js:1284 +#: templates/js/translated/company.js:1572 templates/js/translated/part.js:805 #: templates/js/translated/part.js:1221 msgid "Assembled part" msgstr "" -#: templates/js/translated/company.js:1403 templates/js/translated/part.js:1471 +#: templates/js/translated/company.js:1404 templates/js/translated/part.js:1471 msgid "No parameters found" msgstr "" -#: templates/js/translated/company.js:1438 templates/js/translated/part.js:1534 +#: templates/js/translated/company.js:1439 templates/js/translated/part.js:1534 msgid "Edit parameter" msgstr "" -#: templates/js/translated/company.js:1439 templates/js/translated/part.js:1535 +#: templates/js/translated/company.js:1440 templates/js/translated/part.js:1535 msgid "Delete parameter" msgstr "" -#: templates/js/translated/company.js:1456 templates/js/translated/part.js:1440 +#: templates/js/translated/company.js:1457 templates/js/translated/part.js:1440 msgid "Edit Parameter" msgstr "" -#: templates/js/translated/company.js:1465 templates/js/translated/part.js:1556 +#: templates/js/translated/company.js:1466 templates/js/translated/part.js:1556 msgid "Delete Parameter" msgstr "" -#: templates/js/translated/company.js:1496 +#: templates/js/translated/company.js:1497 msgid "Delete supplier parts" msgstr "" -#: templates/js/translated/company.js:1546 +#: templates/js/translated/company.js:1547 msgid "No supplier parts found" msgstr "" -#: templates/js/translated/company.js:1664 +#: templates/js/translated/company.js:1665 msgid "Base Units" msgstr "" -#: templates/js/translated/company.js:1694 +#: templates/js/translated/company.js:1695 msgid "Availability" msgstr "" -#: templates/js/translated/company.js:1725 +#: templates/js/translated/company.js:1726 msgid "Edit supplier part" msgstr "" -#: templates/js/translated/company.js:1726 +#: templates/js/translated/company.js:1727 msgid "Delete supplier part" msgstr "" -#: templates/js/translated/company.js:1779 +#: templates/js/translated/company.js:1780 #: templates/js/translated/pricing.js:694 msgid "Delete Price Break" msgstr "" -#: templates/js/translated/company.js:1789 +#: templates/js/translated/company.js:1790 #: templates/js/translated/pricing.js:712 msgid "Edit Price Break" msgstr "" -#: templates/js/translated/company.js:1804 +#: templates/js/translated/company.js:1805 msgid "No price break information found" msgstr "" -#: templates/js/translated/company.js:1833 +#: templates/js/translated/company.js:1834 msgid "Last updated" msgstr "" -#: templates/js/translated/company.js:1840 +#: templates/js/translated/company.js:1841 msgid "Edit price break" msgstr "" -#: templates/js/translated/company.js:1841 +#: templates/js/translated/company.js:1842 msgid "Delete price break" msgstr "" @@ -12977,19 +13342,19 @@ msgstr "" msgid "Select Columns" msgstr "" -#: templates/js/translated/helpers.js:80 +#: templates/js/translated/helpers.js:81 msgid "YES" msgstr "" -#: templates/js/translated/helpers.js:83 +#: templates/js/translated/helpers.js:84 msgid "NO" msgstr "" -#: templates/js/translated/helpers.js:96 +#: templates/js/translated/helpers.js:97 msgid "True" msgstr "" -#: templates/js/translated/helpers.js:97 +#: templates/js/translated/helpers.js:98 msgid "False" msgstr "" @@ -13131,7 +13496,7 @@ msgid "Delete Line" msgstr "" #: templates/js/translated/order.js:306 -#: templates/js/translated/purchase_order.js:2060 +#: templates/js/translated/purchase_order.js:2044 msgid "No line items found" msgstr "" @@ -13366,19 +13731,19 @@ msgid "Delete Part Parameter Template" msgstr "" #: templates/js/translated/part.js:1723 -#: templates/js/translated/purchase_order.js:1724 +#: templates/js/translated/purchase_order.js:1708 msgid "No purchase orders found" msgstr "" #: templates/js/translated/part.js:1867 -#: templates/js/translated/purchase_order.js:2223 +#: templates/js/translated/purchase_order.js:2207 #: templates/js/translated/return_order.js:754 -#: templates/js/translated/sales_order.js:1911 +#: templates/js/translated/sales_order.js:1892 msgid "This line item is overdue" msgstr "" #: templates/js/translated/part.js:1913 -#: templates/js/translated/purchase_order.js:2290 +#: templates/js/translated/purchase_order.js:2274 msgid "Receive line item" msgstr "" @@ -13419,7 +13784,7 @@ msgid "No category" msgstr "" #: templates/js/translated/part.js:2550 templates/js/translated/part.js:2680 -#: templates/js/translated/stock.js:2754 +#: templates/js/translated/stock.js:2755 msgid "Display as list" msgstr "" @@ -13431,7 +13796,7 @@ msgstr "" msgid "No subcategories found" msgstr "" -#: templates/js/translated/part.js:2700 templates/js/translated/stock.js:2774 +#: templates/js/translated/part.js:2700 templates/js/translated/stock.js:2775 msgid "Display as tree" msgstr "" @@ -13483,23 +13848,23 @@ msgstr "" msgid "Speculative" msgstr "" -#: templates/js/translated/part.js:3128 +#: templates/js/translated/part.js:3144 msgid "No scheduling information available for this part" msgstr "" -#: templates/js/translated/part.js:3134 +#: templates/js/translated/part.js:3150 msgid "Error fetching scheduling information for this part" msgstr "" -#: templates/js/translated/part.js:3230 +#: templates/js/translated/part.js:3246 msgid "Scheduled Stock Quantities" msgstr "" -#: templates/js/translated/part.js:3246 +#: templates/js/translated/part.js:3262 msgid "Maximum Quantity" msgstr "" -#: templates/js/translated/part.js:3291 +#: templates/js/translated/part.js:3307 msgid "Minimum Stock Level" msgstr "" @@ -13575,267 +13940,243 @@ msgstr "" msgid "Purchase Price History" msgstr "" -#: templates/js/translated/pricing.js:894 +#: templates/js/translated/pricing.js:892 msgid "No sales history data available" msgstr "" -#: templates/js/translated/pricing.js:916 +#: templates/js/translated/pricing.js:914 msgid "Sale Price History" msgstr "" -#: templates/js/translated/pricing.js:1005 +#: templates/js/translated/pricing.js:1003 msgid "No variant data available" msgstr "" -#: templates/js/translated/pricing.js:1045 +#: templates/js/translated/pricing.js:1043 msgid "Variant Part" msgstr "" -#: templates/js/translated/purchase_order.js:169 -msgid "Select purchase order to duplicate" -msgstr "" - -#: templates/js/translated/purchase_order.js:176 -msgid "Duplicate Line Items" -msgstr "" - -#: templates/js/translated/purchase_order.js:177 -msgid "Duplicate all line items from the selected order" -msgstr "" - -#: templates/js/translated/purchase_order.js:184 -msgid "Duplicate Extra Lines" -msgstr "" - -#: templates/js/translated/purchase_order.js:185 -msgid "Duplicate extra line items from the selected order" -msgstr "" - -#: templates/js/translated/purchase_order.js:206 +#: templates/js/translated/purchase_order.js:188 msgid "Edit Purchase Order" msgstr "" -#: templates/js/translated/purchase_order.js:223 +#: templates/js/translated/purchase_order.js:205 msgid "Duplication Options" msgstr "" -#: templates/js/translated/purchase_order.js:431 +#: templates/js/translated/purchase_order.js:414 msgid "Complete Purchase Order" msgstr "" -#: templates/js/translated/purchase_order.js:448 +#: templates/js/translated/purchase_order.js:431 #: templates/js/translated/return_order.js:210 -#: templates/js/translated/sales_order.js:552 +#: templates/js/translated/sales_order.js:511 msgid "Mark this order as complete?" msgstr "" -#: templates/js/translated/purchase_order.js:454 +#: templates/js/translated/purchase_order.js:437 msgid "All line items have been received" msgstr "" -#: templates/js/translated/purchase_order.js:459 +#: templates/js/translated/purchase_order.js:442 msgid "This order has line items which have not been marked as received." msgstr "" -#: templates/js/translated/purchase_order.js:460 +#: templates/js/translated/purchase_order.js:443 msgid "Completing this order means that the order and line items will no longer be editable." msgstr "" -#: templates/js/translated/purchase_order.js:483 +#: templates/js/translated/purchase_order.js:466 msgid "Cancel Purchase Order" msgstr "" -#: templates/js/translated/purchase_order.js:488 +#: templates/js/translated/purchase_order.js:471 msgid "Are you sure you wish to cancel this purchase order?" msgstr "" -#: templates/js/translated/purchase_order.js:494 +#: templates/js/translated/purchase_order.js:477 msgid "This purchase order can not be cancelled" msgstr "" -#: templates/js/translated/purchase_order.js:515 +#: templates/js/translated/purchase_order.js:498 #: templates/js/translated/return_order.js:164 msgid "After placing this order, line items will no longer be editable." msgstr "" -#: templates/js/translated/purchase_order.js:520 +#: templates/js/translated/purchase_order.js:503 msgid "Issue Purchase Order" msgstr "" -#: templates/js/translated/purchase_order.js:612 +#: templates/js/translated/purchase_order.js:595 msgid "At least one purchaseable part must be selected" msgstr "" -#: templates/js/translated/purchase_order.js:637 +#: templates/js/translated/purchase_order.js:620 msgid "Quantity to order" msgstr "" -#: templates/js/translated/purchase_order.js:646 +#: templates/js/translated/purchase_order.js:629 msgid "New supplier part" msgstr "" -#: templates/js/translated/purchase_order.js:664 +#: templates/js/translated/purchase_order.js:647 msgid "New purchase order" msgstr "" -#: templates/js/translated/purchase_order.js:705 +#: templates/js/translated/purchase_order.js:688 msgid "Add to purchase order" msgstr "" -#: templates/js/translated/purchase_order.js:755 +#: templates/js/translated/purchase_order.js:738 msgid "Merge" msgstr "" -#: templates/js/translated/purchase_order.js:859 +#: templates/js/translated/purchase_order.js:842 msgid "No matching supplier parts" msgstr "" -#: templates/js/translated/purchase_order.js:878 +#: templates/js/translated/purchase_order.js:861 msgid "No matching purchase orders" msgstr "" -#: templates/js/translated/purchase_order.js:1073 +#: templates/js/translated/purchase_order.js:1056 #: templates/js/translated/return_order.js:490 msgid "Select Line Items" msgstr "" -#: templates/js/translated/purchase_order.js:1074 +#: templates/js/translated/purchase_order.js:1057 #: templates/js/translated/return_order.js:491 msgid "At least one line item must be selected" msgstr "" -#: templates/js/translated/purchase_order.js:1104 +#: templates/js/translated/purchase_order.js:1087 msgid "Received Quantity" msgstr "" -#: templates/js/translated/purchase_order.js:1115 +#: templates/js/translated/purchase_order.js:1098 msgid "Quantity to receive" msgstr "" -#: templates/js/translated/purchase_order.js:1170 +#: templates/js/translated/purchase_order.js:1153 #: templates/js/translated/stock.js:1215 msgid "Specify packaging for incoming stock items" msgstr "" -#: templates/js/translated/purchase_order.js:1223 +#: templates/js/translated/purchase_order.js:1206 msgid "Stock Status" msgstr "" -#: templates/js/translated/purchase_order.js:1237 +#: templates/js/translated/purchase_order.js:1220 msgid "Add barcode" msgstr "" -#: templates/js/translated/purchase_order.js:1238 +#: templates/js/translated/purchase_order.js:1221 msgid "Remove barcode" msgstr "" -#: templates/js/translated/purchase_order.js:1241 +#: templates/js/translated/purchase_order.js:1224 msgid "Specify location" msgstr "" -#: templates/js/translated/purchase_order.js:1249 +#: templates/js/translated/purchase_order.js:1232 msgid "Add batch code" msgstr "" -#: templates/js/translated/purchase_order.js:1259 +#: templates/js/translated/purchase_order.js:1242 msgid "Specify packaging" msgstr "" -#: templates/js/translated/purchase_order.js:1270 +#: templates/js/translated/purchase_order.js:1253 msgid "Add serial numbers" msgstr "" -#: templates/js/translated/purchase_order.js:1281 +#: templates/js/translated/purchase_order.js:1264 msgid "Add note" msgstr "" -#: templates/js/translated/purchase_order.js:1338 +#: templates/js/translated/purchase_order.js:1321 msgid "Serials" msgstr "" -#: templates/js/translated/purchase_order.js:1368 +#: templates/js/translated/purchase_order.js:1351 msgid "Order Code" msgstr "" -#: templates/js/translated/purchase_order.js:1370 +#: templates/js/translated/purchase_order.js:1353 msgid "Quantity to Receive" msgstr "" -#: templates/js/translated/purchase_order.js:1395 +#: templates/js/translated/purchase_order.js:1379 #: templates/js/translated/return_order.js:559 msgid "Confirm receipt of items" msgstr "" -#: templates/js/translated/purchase_order.js:1396 +#: templates/js/translated/purchase_order.js:1380 msgid "Receive Purchase Order Items" msgstr "" -#: templates/js/translated/purchase_order.js:1464 +#: templates/js/translated/purchase_order.js:1448 msgid "Scan Item Barcode" msgstr "" -#: templates/js/translated/purchase_order.js:1465 +#: templates/js/translated/purchase_order.js:1449 msgid "Scan barcode on incoming item (must not match any existing stock items)" msgstr "" -#: templates/js/translated/purchase_order.js:1479 +#: templates/js/translated/purchase_order.js:1463 msgid "Invalid barcode data" msgstr "" -#: templates/js/translated/purchase_order.js:1751 +#: templates/js/translated/purchase_order.js:1735 #: templates/js/translated/return_order.js:285 -#: templates/js/translated/sales_order.js:810 -#: templates/js/translated/sales_order.js:1034 +#: templates/js/translated/sales_order.js:769 +#: templates/js/translated/sales_order.js:1007 msgid "Order is overdue" msgstr "" -#: templates/js/translated/purchase_order.js:1913 +#: templates/js/translated/purchase_order.js:1897 msgid "All selected Line items will be deleted" msgstr "" -#: templates/js/translated/purchase_order.js:1931 +#: templates/js/translated/purchase_order.js:1915 msgid "Delete selected Line items?" msgstr "" -#: templates/js/translated/purchase_order.js:1986 -#: templates/js/translated/sales_order.js:2106 +#: templates/js/translated/purchase_order.js:1970 +#: templates/js/translated/sales_order.js:2087 msgid "Duplicate Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2001 +#: templates/js/translated/purchase_order.js:1985 #: templates/js/translated/return_order.js:475 #: templates/js/translated/return_order.js:667 -#: templates/js/translated/sales_order.js:2119 +#: templates/js/translated/sales_order.js:2100 msgid "Edit Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2012 +#: templates/js/translated/purchase_order.js:1996 #: templates/js/translated/return_order.js:680 -#: templates/js/translated/sales_order.js:2130 +#: templates/js/translated/sales_order.js:2111 msgid "Delete Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2294 -#: templates/js/translated/sales_order.js:2060 +#: templates/js/translated/purchase_order.js:2278 +#: templates/js/translated/sales_order.js:2041 msgid "Duplicate line item" msgstr "" -#: templates/js/translated/purchase_order.js:2295 +#: templates/js/translated/purchase_order.js:2279 #: templates/js/translated/return_order.js:799 -#: templates/js/translated/sales_order.js:2061 +#: templates/js/translated/sales_order.js:2042 msgid "Edit line item" msgstr "" -#: templates/js/translated/purchase_order.js:2296 +#: templates/js/translated/purchase_order.js:2280 #: templates/js/translated/return_order.js:803 -#: templates/js/translated/sales_order.js:2067 +#: templates/js/translated/sales_order.js:2048 msgid "Delete line item" msgstr "" -#: templates/js/translated/report.js:49 -msgid "Print Report" -msgstr "" - #: templates/js/translated/report.js:68 msgid "Report print successful" msgstr "" @@ -13878,7 +14219,7 @@ msgid "No return orders found" msgstr "" #: templates/js/translated/return_order.js:299 -#: templates/js/translated/sales_order.js:824 +#: templates/js/translated/sales_order.js:783 msgid "Invalid Customer" msgstr "" @@ -13887,7 +14228,7 @@ msgid "Receive Return Order Items" msgstr "" #: templates/js/translated/return_order.js:691 -#: templates/js/translated/sales_order.js:2267 +#: templates/js/translated/sales_order.js:2248 msgid "No matching line items" msgstr "" @@ -13903,188 +14244,181 @@ msgstr "" msgid "Edit Sales Order" msgstr "" -#: templates/js/translated/sales_order.js:291 +#: templates/js/translated/sales_order.js:288 msgid "No stock items have been allocated to this shipment" msgstr "" -#: templates/js/translated/sales_order.js:296 -msgid "The following stock items will be shipped" -msgstr "" - -#: templates/js/translated/sales_order.js:336 +#: templates/js/translated/sales_order.js:294 msgid "Complete Shipment" msgstr "" -#: templates/js/translated/sales_order.js:360 +#: templates/js/translated/sales_order.js:318 msgid "Confirm Shipment" msgstr "" -#: templates/js/translated/sales_order.js:416 +#: templates/js/translated/sales_order.js:375 msgid "No pending shipments found" msgstr "" -#: templates/js/translated/sales_order.js:420 +#: templates/js/translated/sales_order.js:379 msgid "No stock items have been allocated to pending shipments" msgstr "" -#: templates/js/translated/sales_order.js:430 +#: templates/js/translated/sales_order.js:389 msgid "Complete Shipments" msgstr "" -#: templates/js/translated/sales_order.js:452 +#: templates/js/translated/sales_order.js:411 msgid "Skip" msgstr "" -#: templates/js/translated/sales_order.js:484 +#: templates/js/translated/sales_order.js:443 msgid "Ship Sales Order" msgstr "" -#: templates/js/translated/sales_order.js:500 +#: templates/js/translated/sales_order.js:459 msgid "Ship this order?" msgstr "" -#: templates/js/translated/sales_order.js:506 +#: templates/js/translated/sales_order.js:465 msgid "Order cannot be shipped as there are incomplete shipments" msgstr "" -#: templates/js/translated/sales_order.js:513 +#: templates/js/translated/sales_order.js:472 msgid "This order has line items which have not been completed." msgstr "" -#: templates/js/translated/sales_order.js:514 +#: templates/js/translated/sales_order.js:473 msgid "Shipping this order means that the order and line items will no longer be editable." msgstr "" -#: templates/js/translated/sales_order.js:572 +#: templates/js/translated/sales_order.js:531 msgid "Issue this Sales Order?" msgstr "" -#: templates/js/translated/sales_order.js:577 +#: templates/js/translated/sales_order.js:536 msgid "Issue Sales Order" msgstr "" -#: templates/js/translated/sales_order.js:596 +#: templates/js/translated/sales_order.js:555 msgid "Cancel Sales Order" msgstr "" -#: templates/js/translated/sales_order.js:601 +#: templates/js/translated/sales_order.js:560 msgid "Cancelling this order means that the order will no longer be editable." msgstr "" -#: templates/js/translated/sales_order.js:655 +#: templates/js/translated/sales_order.js:614 msgid "Create New Shipment" msgstr "" -#: templates/js/translated/sales_order.js:764 +#: templates/js/translated/sales_order.js:723 msgid "No sales orders found" msgstr "" -#: templates/js/translated/sales_order.js:944 +#: templates/js/translated/sales_order.js:907 msgid "Edit shipment" msgstr "" -#: templates/js/translated/sales_order.js:947 +#: templates/js/translated/sales_order.js:910 msgid "Complete shipment" msgstr "" -#: templates/js/translated/sales_order.js:952 +#: templates/js/translated/sales_order.js:915 msgid "Delete shipment" msgstr "" -#: templates/js/translated/sales_order.js:969 +#: templates/js/translated/sales_order.js:932 msgid "Edit Shipment" msgstr "" -#: templates/js/translated/sales_order.js:984 +#: templates/js/translated/sales_order.js:947 msgid "Delete Shipment" msgstr "" -#: templates/js/translated/sales_order.js:1017 +#: templates/js/translated/sales_order.js:989 msgid "No matching shipments found" msgstr "" -#: templates/js/translated/sales_order.js:1042 +#: templates/js/translated/sales_order.js:1015 msgid "Shipment Reference" msgstr "" -#: templates/js/translated/sales_order.js:1066 -#: templates/js/translated/sales_order.js:1565 +#: templates/js/translated/sales_order.js:1032 +#: templates/js/translated/sales_order.js:1531 msgid "Not shipped" msgstr "" -#: templates/js/translated/sales_order.js:1084 +#: templates/js/translated/sales_order.js:1050 msgid "Tracking" msgstr "" -#: templates/js/translated/sales_order.js:1088 +#: templates/js/translated/sales_order.js:1054 msgid "Invoice" msgstr "" -#: templates/js/translated/sales_order.js:1255 +#: templates/js/translated/sales_order.js:1221 msgid "Add Shipment" msgstr "" -#: templates/js/translated/sales_order.js:1306 +#: templates/js/translated/sales_order.js:1272 msgid "Confirm stock allocation" msgstr "" -#: templates/js/translated/sales_order.js:1307 +#: templates/js/translated/sales_order.js:1273 msgid "Allocate Stock Items to Sales Order" msgstr "" -#: templates/js/translated/sales_order.js:1513 +#: templates/js/translated/sales_order.js:1479 msgid "No sales order allocations found" msgstr "" -#: templates/js/translated/sales_order.js:1605 +#: templates/js/translated/sales_order.js:1571 msgid "Edit Stock Allocation" msgstr "" -#: templates/js/translated/sales_order.js:1619 +#: templates/js/translated/sales_order.js:1585 msgid "Confirm Delete Operation" msgstr "" -#: templates/js/translated/sales_order.js:1620 +#: templates/js/translated/sales_order.js:1586 msgid "Delete Stock Allocation" msgstr "" -#: templates/js/translated/sales_order.js:1659 -#: templates/js/translated/sales_order.js:1746 +#: templates/js/translated/sales_order.js:1640 +#: templates/js/translated/sales_order.js:1727 #: templates/js/translated/stock.js:1861 msgid "Shipped to customer" msgstr "" -#: templates/js/translated/sales_order.js:1667 -#: templates/js/translated/sales_order.js:1755 +#: templates/js/translated/sales_order.js:1648 +#: templates/js/translated/sales_order.js:1736 msgid "Stock location not specified" msgstr "" -#: templates/js/translated/sales_order.js:2044 -msgid "Allocate serial numbers" -msgstr "" - -#: templates/js/translated/sales_order.js:2048 -msgid "Purchase stock" -msgstr "" - -#: templates/js/translated/sales_order.js:2057 -#: templates/js/translated/sales_order.js:2245 -msgid "Calculate price" -msgstr "" - -#: templates/js/translated/sales_order.js:2071 -msgid "Cannot be deleted as items have been shipped" -msgstr "" - -#: templates/js/translated/sales_order.js:2074 -msgid "Cannot be deleted as items have been allocated" -msgstr "" - -#: templates/js/translated/sales_order.js:2145 +#: templates/js/translated/sales_order.js:2025 +#: templates/js/translated/sales_order.js:2126 msgid "Allocate Serial Numbers" msgstr "" -#: templates/js/translated/sales_order.js:2253 +#: templates/js/translated/sales_order.js:2029 +msgid "Purchase stock" +msgstr "" + +#: templates/js/translated/sales_order.js:2038 +#: templates/js/translated/sales_order.js:2226 +msgid "Calculate price" +msgstr "" + +#: templates/js/translated/sales_order.js:2052 +msgid "Cannot be deleted as items have been shipped" +msgstr "" + +#: templates/js/translated/sales_order.js:2055 +msgid "Cannot be deleted as items have been allocated" +msgstr "" + +#: templates/js/translated/sales_order.js:2234 msgid "Update Unit Price" msgstr "" @@ -14209,11 +14543,8 @@ msgid "Find Serial Number" msgstr "" #: templates/js/translated/stock.js:603 templates/js/translated/stock.js:604 -msgid "Enter serial number" -msgstr "" - #: templates/js/translated/stock.js:620 -msgid "Enter a serial number" +msgid "Enter serial number" msgstr "" #: templates/js/translated/stock.js:640 @@ -14284,7 +14615,7 @@ msgstr "" msgid "Add Stock" msgstr "" -#: templates/js/translated/stock.js:1049 users/models.py:396 +#: templates/js/translated/stock.js:1049 users/models.py:398 msgid "Add" msgstr "Ajouter" @@ -14308,7 +14639,7 @@ msgstr "" msgid "Adjust packaging" msgstr "" -#: templates/js/translated/stock.js:1256 templates/js/translated/stock.js:3382 +#: templates/js/translated/stock.js:1256 templates/js/translated/stock.js:3383 msgid "Select Stock Items" msgstr "" @@ -14320,18 +14651,6 @@ msgstr "" msgid "Confirm stock adjustment" msgstr "" -#: templates/js/translated/stock.js:1448 -msgid "PASS" -msgstr "" - -#: templates/js/translated/stock.js:1450 -msgid "FAIL" -msgstr "" - -#: templates/js/translated/stock.js:1455 -msgid "NO RESULT" -msgstr "" - #: templates/js/translated/stock.js:1535 msgid "Pass test" msgstr "" @@ -14388,216 +14707,216 @@ msgstr "" msgid "No stock location set" msgstr "" -#: templates/js/translated/stock.js:1927 +#: templates/js/translated/stock.js:1928 msgid "Change stock status" msgstr "" -#: templates/js/translated/stock.js:1936 +#: templates/js/translated/stock.js:1937 msgid "Merge stock" msgstr "" -#: templates/js/translated/stock.js:1985 +#: templates/js/translated/stock.js:1986 msgid "Delete stock" msgstr "" -#: templates/js/translated/stock.js:2038 +#: templates/js/translated/stock.js:2039 msgid "stock items" msgstr "" -#: templates/js/translated/stock.js:2043 +#: templates/js/translated/stock.js:2044 msgid "Scan to location" msgstr "" -#: templates/js/translated/stock.js:2054 +#: templates/js/translated/stock.js:2055 msgid "Stock Actions" msgstr "" -#: templates/js/translated/stock.js:2098 +#: templates/js/translated/stock.js:2099 msgid "Load installed items" msgstr "" -#: templates/js/translated/stock.js:2176 +#: templates/js/translated/stock.js:2177 msgid "Stock item is in production" msgstr "" -#: templates/js/translated/stock.js:2181 +#: templates/js/translated/stock.js:2182 msgid "Stock item assigned to sales order" msgstr "" -#: templates/js/translated/stock.js:2184 +#: templates/js/translated/stock.js:2185 msgid "Stock item assigned to customer" msgstr "" -#: templates/js/translated/stock.js:2187 +#: templates/js/translated/stock.js:2188 msgid "Serialized stock item has been allocated" msgstr "" -#: templates/js/translated/stock.js:2189 +#: templates/js/translated/stock.js:2190 msgid "Stock item has been fully allocated" msgstr "" -#: templates/js/translated/stock.js:2191 +#: templates/js/translated/stock.js:2192 msgid "Stock item has been partially allocated" msgstr "" -#: templates/js/translated/stock.js:2194 +#: templates/js/translated/stock.js:2195 msgid "Stock item has been installed in another item" msgstr "" -#: templates/js/translated/stock.js:2196 +#: templates/js/translated/stock.js:2197 msgid "Stock item has been consumed by a build order" msgstr "" -#: templates/js/translated/stock.js:2200 +#: templates/js/translated/stock.js:2201 msgid "Stock item has expired" msgstr "" -#: templates/js/translated/stock.js:2202 +#: templates/js/translated/stock.js:2203 msgid "Stock item will expire soon" msgstr "" -#: templates/js/translated/stock.js:2207 +#: templates/js/translated/stock.js:2208 msgid "Stock item has been rejected" msgstr "" -#: templates/js/translated/stock.js:2209 +#: templates/js/translated/stock.js:2210 msgid "Stock item is lost" msgstr "" -#: templates/js/translated/stock.js:2211 +#: templates/js/translated/stock.js:2212 msgid "Stock item is destroyed" msgstr "" -#: templates/js/translated/stock.js:2215 +#: templates/js/translated/stock.js:2216 #: templates/js/translated/table_filters.js:357 msgid "Depleted" msgstr "" -#: templates/js/translated/stock.js:2380 +#: templates/js/translated/stock.js:2381 msgid "Supplier part not specified" msgstr "" -#: templates/js/translated/stock.js:2427 +#: templates/js/translated/stock.js:2428 msgid "Stock Value" msgstr "" -#: templates/js/translated/stock.js:2555 +#: templates/js/translated/stock.js:2556 msgid "No stock items matching query" msgstr "" -#: templates/js/translated/stock.js:2658 +#: templates/js/translated/stock.js:2659 msgid "stock locations" msgstr "" -#: templates/js/translated/stock.js:2813 +#: templates/js/translated/stock.js:2814 msgid "Load Sublocations" msgstr "" -#: templates/js/translated/stock.js:2930 +#: templates/js/translated/stock.js:2931 msgid "Details" msgstr "" -#: templates/js/translated/stock.js:2934 +#: templates/js/translated/stock.js:2935 msgid "No changes" msgstr "" -#: templates/js/translated/stock.js:2946 +#: templates/js/translated/stock.js:2947 msgid "Part information unavailable" msgstr "" -#: templates/js/translated/stock.js:2968 +#: templates/js/translated/stock.js:2969 msgid "Location no longer exists" msgstr "" -#: templates/js/translated/stock.js:2985 +#: templates/js/translated/stock.js:2986 msgid "Build order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3000 +#: templates/js/translated/stock.js:3001 msgid "Purchase order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3017 +#: templates/js/translated/stock.js:3018 msgid "Sales Order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3034 +#: templates/js/translated/stock.js:3035 msgid "Return Order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3053 +#: templates/js/translated/stock.js:3054 msgid "Customer no longer exists" msgstr "" -#: templates/js/translated/stock.js:3071 +#: templates/js/translated/stock.js:3072 msgid "Stock item no longer exists" msgstr "" -#: templates/js/translated/stock.js:3089 +#: templates/js/translated/stock.js:3090 msgid "Added" msgstr "" -#: templates/js/translated/stock.js:3097 +#: templates/js/translated/stock.js:3098 msgid "Removed" msgstr "" -#: templates/js/translated/stock.js:3169 +#: templates/js/translated/stock.js:3170 msgid "No installed items" msgstr "" -#: templates/js/translated/stock.js:3223 templates/js/translated/stock.js:3259 +#: templates/js/translated/stock.js:3224 templates/js/translated/stock.js:3260 msgid "Uninstall Stock Item" msgstr "" -#: templates/js/translated/stock.js:3280 +#: templates/js/translated/stock.js:3281 msgid "Select stock item to uninstall" msgstr "" -#: templates/js/translated/stock.js:3301 +#: templates/js/translated/stock.js:3302 msgid "Install another stock item into this item" msgstr "" -#: templates/js/translated/stock.js:3302 +#: templates/js/translated/stock.js:3303 msgid "Stock items can only be installed if they meet the following criteria" msgstr "" -#: templates/js/translated/stock.js:3304 +#: templates/js/translated/stock.js:3305 msgid "The Stock Item links to a Part which is the BOM for this Stock Item" msgstr "" -#: templates/js/translated/stock.js:3305 +#: templates/js/translated/stock.js:3306 msgid "The Stock Item is currently available in stock" msgstr "" -#: templates/js/translated/stock.js:3306 +#: templates/js/translated/stock.js:3307 msgid "The Stock Item is not already installed in another item" msgstr "" -#: templates/js/translated/stock.js:3307 +#: templates/js/translated/stock.js:3308 msgid "The Stock Item is tracked by either a batch code or serial number" msgstr "" -#: templates/js/translated/stock.js:3320 +#: templates/js/translated/stock.js:3321 msgid "Select part to install" msgstr "" -#: templates/js/translated/stock.js:3383 +#: templates/js/translated/stock.js:3384 msgid "Select one or more stock items" msgstr "" -#: templates/js/translated/stock.js:3396 +#: templates/js/translated/stock.js:3397 msgid "Selected stock items" msgstr "" -#: templates/js/translated/stock.js:3400 +#: templates/js/translated/stock.js:3401 msgid "Change Stock Status" msgstr "" -#: templates/js/translated/stock.js:3477 +#: templates/js/translated/stock.js:3478 msgid "This week" msgstr "" -#: templates/js/translated/stock.js:3485 +#: templates/js/translated/stock.js:3486 msgid "This month" msgstr "" @@ -14734,10 +15053,6 @@ msgstr "" msgid "Show items which are in production" msgstr "" -#: templates/js/translated/table_filters.js:372 -msgid "Include Variants" -msgstr "" - #: templates/js/translated/table_filters.js:373 msgid "Include stock items for variant parts" msgstr "" @@ -15012,10 +15327,6 @@ msgstr "" msgid "An error occurred while attempting to login via your social network account." msgstr "Une erreur s’est produite en essayant de vous connecter via votre compte de réseau social." -#: templates/socialaccount/authentication_error.html:13 -msgid "Contact your system administrator for further information." -msgstr "" - #: templates/socialaccount/login.html:13 #, python-format msgid "Connect %(provider)s" @@ -15029,7 +15340,7 @@ msgstr "" #: templates/socialaccount/login.html:17 #, python-format msgid "Sign In Via %(provider)s" -msgstr "" +msgstr "Se connecter via %(provider)s" #: templates/socialaccount/login.html:19 #, python-format @@ -15141,27 +15452,27 @@ msgstr "Oui" msgid "No" msgstr "Non" -#: users/admin.py:104 +#: users/admin.py:101 msgid "Users" msgstr "Utilisateurs" -#: users/admin.py:105 +#: users/admin.py:102 msgid "Select which users are assigned to this group" msgstr "Sélectionner quels utilisateurs sont assignés à ce groupe" -#: users/admin.py:249 +#: users/admin.py:246 msgid "The following users are members of multiple groups" msgstr "" -#: users/admin.py:283 +#: users/admin.py:280 msgid "Personal info" msgstr "Informations personnelles" -#: users/admin.py:285 +#: users/admin.py:282 msgid "Permissions" msgstr "Droits" -#: users/admin.py:288 +#: users/admin.py:285 msgid "Important dates" msgstr "Dates importantes" @@ -15205,35 +15516,35 @@ msgstr "" msgid "Revoked" msgstr "" -#: users/models.py:379 +#: users/models.py:381 msgid "Permission set" msgstr "Droit défini" -#: users/models.py:388 +#: users/models.py:390 msgid "Group" msgstr "Groupe" -#: users/models.py:392 +#: users/models.py:394 msgid "View" msgstr "Vue" -#: users/models.py:392 +#: users/models.py:394 msgid "Permission to view items" msgstr "Droit de voir des éléments" -#: users/models.py:396 +#: users/models.py:398 msgid "Permission to add items" msgstr "Droit d'ajouter des éléments" -#: users/models.py:400 +#: users/models.py:402 msgid "Change" msgstr "Modifier" -#: users/models.py:402 +#: users/models.py:404 msgid "Permissions to edit items" msgstr "Droit de modifier des élément" -#: users/models.py:408 +#: users/models.py:410 msgid "Permission to delete items" msgstr "Droit de supprimer des éléments" diff --git a/src/backend/InvenTree/locale/he/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/he/LC_MESSAGES/django.po index 5a25c0d5ba..6090f067e5 100644 --- a/src/backend/InvenTree/locale/he/LC_MESSAGES/django.po +++ b/src/backend/InvenTree/locale/he/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-08-20 01:22+0000\n" -"PO-Revision-Date: 2024-08-20 19:50\n" +"POT-Creation-Date: 2024-11-04 03:11+0000\n" +"PO-Revision-Date: 2024-11-04 03:14\n" "Last-Translator: \n" "Language-Team: Hebrew\n" "Language: he_IL\n" @@ -14,81 +14,89 @@ msgstr "" "X-Crowdin-Project: inventree\n" "X-Crowdin-Project-ID: 452300\n" "X-Crowdin-Language: he\n" -"X-Crowdin-File: /[inventree.InvenTree] l10/src/backend/InvenTree/locale/en/LC_MESSAGES/django.po\n" -"X-Crowdin-File-ID: 216\n" +"X-Crowdin-File: /src/backend/InvenTree/locale/en/LC_MESSAGES/django.po\n" +"X-Crowdin-File-ID: 250\n" -#: InvenTree/api.py:269 +#: InvenTree/api.py:270 msgid "API endpoint not found" msgstr "" -#: InvenTree/api.py:502 -msgid "User does not have permission to view this model" +#: InvenTree/api.py:387 +msgid "Invalid items list provided" msgstr "" -#: InvenTree/conversion.py:160 +#: InvenTree/api.py:396 +msgid "Invalid filters provided" +msgstr "" + +#: InvenTree/api.py:401 +msgid "No items found to delete" +msgstr "" + +#: InvenTree/api.py:515 +msgid "User does not have permission to view this model" +msgstr "למשתמש אין הרשאה לצפות במוזל הזה" + +#: InvenTree/conversion.py:161 #, python-brace-format msgid "Invalid unit provided ({unit})" -msgstr "" +msgstr "סופקה יחידה שלא קיימת ({unit})" -#: InvenTree/conversion.py:177 +#: InvenTree/conversion.py:178 msgid "No value provided" -msgstr "" +msgstr "לא צוין ערך" -#: InvenTree/conversion.py:204 +#: InvenTree/conversion.py:205 #, python-brace-format msgid "Could not convert {original} to {unit}" msgstr "" -#: InvenTree/conversion.py:206 -msgid "Invalid quantity supplied" +#: InvenTree/conversion.py:207 InvenTree/conversion.py:221 +#: InvenTree/helpers.py:505 order/models.py:589 order/models.py:832 +msgid "Invalid quantity provided" msgstr "" -#: InvenTree/conversion.py:220 -#, python-brace-format -msgid "Invalid quantity supplied ({exc})" -msgstr "" - -#: InvenTree/exceptions.py:108 +#: InvenTree/exceptions.py:104 msgid "Error details can be found in the admin panel" msgstr "" -#: InvenTree/fields.py:136 +#: InvenTree/fields.py:135 msgid "Enter date" msgstr "הזן תאריך סיום" -#: InvenTree/fields.py:205 InvenTree/models.py:929 build/serializers.py:468 -#: build/serializers.py:546 build/templates/build/sidebar.html:29 -#: company/models.py:836 +#: InvenTree/fields.py:204 InvenTree/models.py:928 build/serializers.py:512 +#: build/serializers.py:590 build/templates/build/sidebar.html:29 +#: company/models.py:833 #: company/templates/company/manufacturer_part_sidebar.html:11 #: company/templates/company/sidebar.html:37 -#: company/templates/company/supplier_part_sidebar.html:11 order/models.py:1380 +#: company/templates/company/supplier_part_sidebar.html:11 order/models.py:1397 #: order/templates/order/po_sidebar.html:11 #: order/templates/order/return_order_sidebar.html:9 #: order/templates/order/so_sidebar.html:17 part/admin.py:59 -#: part/models.py:3297 part/templates/part/part_sidebar.html:65 +#: part/models.py:3348 part/templates/part/part_sidebar.html:65 #: report/templates/report/inventree_build_order_report.html:172 -#: stock/admin.py:230 stock/models.py:2375 stock/models.py:2563 -#: stock/serializers.py:698 stock/serializers.py:856 stock/serializers.py:982 -#: stock/serializers.py:1032 stock/serializers.py:1343 -#: stock/serializers.py:1432 stock/serializers.py:1597 +#: stock/admin.py:231 stock/models.py:2494 stock/models.py:2679 +#: stock/serializers.py:725 stock/serializers.py:887 stock/serializers.py:1013 +#: stock/serializers.py:1063 stock/serializers.py:1374 +#: stock/serializers.py:1463 stock/serializers.py:1628 #: stock/templates/stock/stock_sidebar.html:25 #: templates/js/translated/barcode.js:143 templates/js/translated/bom.js:1265 -#: templates/js/translated/company.js:1684 templates/js/translated/order.js:372 +#: templates/js/translated/company.js:1685 templates/js/translated/order.js:372 #: templates/js/translated/part.js:1087 -#: templates/js/translated/purchase_order.js:2270 +#: templates/js/translated/purchase_order.js:2254 #: templates/js/translated/return_order.js:774 -#: templates/js/translated/sales_order.js:1103 -#: templates/js/translated/sales_order.js:2018 -#: templates/js/translated/stock.js:1621 templates/js/translated/stock.js:2513 +#: templates/js/translated/sales_order.js:1069 +#: templates/js/translated/sales_order.js:1999 +#: templates/js/translated/stock.js:1621 templates/js/translated/stock.js:2514 msgid "Notes" msgstr "" -#: InvenTree/format.py:164 +#: InvenTree/format.py:162 #, python-brace-format msgid "Value '{name}' does not appear in pattern format" msgstr "" -#: InvenTree/format.py:175 +#: InvenTree/format.py:173 msgid "Provided value does not match required pattern: " msgstr "" @@ -132,415 +140,427 @@ msgstr "" msgid "The provided primary email address is not valid." msgstr "" -#: InvenTree/forms.py:274 +#: InvenTree/forms.py:273 msgid "The provided email domain is not approved." msgstr "" -#: InvenTree/forms.py:403 +#: InvenTree/forms.py:402 msgid "Registration is disabled." msgstr "" -#: InvenTree/helpers.py:491 order/models.py:567 order/models.py:810 -msgid "Invalid quantity provided" +#: InvenTree/helpers.py:509 +msgid "Cannot serialize more than 1000 items at once" msgstr "" -#: InvenTree/helpers.py:499 +#: InvenTree/helpers.py:515 msgid "Empty serial number string" msgstr "" -#: InvenTree/helpers.py:528 +#: InvenTree/helpers.py:544 msgid "Duplicate serial" msgstr "" -#: InvenTree/helpers.py:560 InvenTree/helpers.py:603 +#: InvenTree/helpers.py:576 InvenTree/helpers.py:619 InvenTree/helpers.py:637 +#: InvenTree/helpers.py:644 InvenTree/helpers.py:663 #, python-brace-format -msgid "Invalid group range: {group}" +msgid "Invalid group: {group}" msgstr "" -#: InvenTree/helpers.py:591 +#: InvenTree/helpers.py:607 #, python-brace-format msgid "Group range {group} exceeds allowed quantity ({expected_quantity})" msgstr "" -#: InvenTree/helpers.py:621 InvenTree/helpers.py:628 InvenTree/helpers.py:647 -#, python-brace-format -msgid "Invalid group sequence: {group}" -msgstr "" - -#: InvenTree/helpers.py:657 +#: InvenTree/helpers.py:673 msgid "No serial numbers found" msgstr "מספרים סידוריים לא נמצאו" -#: InvenTree/helpers.py:662 +#: InvenTree/helpers.py:678 msgid "Number of unique serial numbers ({len(serials)}) must match quantity ({expected_quantity})" msgstr "" -#: InvenTree/helpers.py:780 +#: InvenTree/helpers.py:796 msgid "Remove HTML tags from this value" msgstr "" -#: InvenTree/helpers_model.py:133 +#: InvenTree/helpers.py:881 +msgid "Data contains prohibited markdown content" +msgstr "" + +#: InvenTree/helpers_model.py:130 msgid "Connection error" msgstr "" -#: InvenTree/helpers_model.py:138 InvenTree/helpers_model.py:145 +#: InvenTree/helpers_model.py:135 InvenTree/helpers_model.py:142 msgid "Server responded with invalid status code" msgstr "" -#: InvenTree/helpers_model.py:141 +#: InvenTree/helpers_model.py:138 msgid "Exception occurred" msgstr "" -#: InvenTree/helpers_model.py:151 +#: InvenTree/helpers_model.py:148 msgid "Server responded with invalid Content-Length value" msgstr "" -#: InvenTree/helpers_model.py:154 +#: InvenTree/helpers_model.py:151 msgid "Image size is too large" msgstr "" -#: InvenTree/helpers_model.py:166 +#: InvenTree/helpers_model.py:163 msgid "Image download exceeded maximum size" msgstr "" -#: InvenTree/helpers_model.py:171 +#: InvenTree/helpers_model.py:168 msgid "Remote server returned empty response" msgstr "" -#: InvenTree/helpers_model.py:179 +#: InvenTree/helpers_model.py:176 msgid "Supplied URL is not a valid image file" msgstr "" -#: InvenTree/locales.py:18 -msgid "Arabic" -msgstr "" - -#: InvenTree/locales.py:19 -msgid "Bulgarian" -msgstr "" - #: InvenTree/locales.py:20 -msgid "Czech" -msgstr "" +msgid "Arabic" +msgstr "ערבית" #: InvenTree/locales.py:21 -msgid "Danish" -msgstr "" +msgid "Bulgarian" +msgstr "בולגרית" #: InvenTree/locales.py:22 +msgid "Czech" +msgstr "צ'כית" + +#: InvenTree/locales.py:23 +msgid "Danish" +msgstr "דנית" + +#: InvenTree/locales.py:24 msgid "German" msgstr "גרמנית" -#: InvenTree/locales.py:23 +#: InvenTree/locales.py:25 msgid "Greek" msgstr "יוונית" -#: InvenTree/locales.py:24 +#: InvenTree/locales.py:26 msgid "English" msgstr "אנגלית" -#: InvenTree/locales.py:25 +#: InvenTree/locales.py:27 msgid "Spanish" msgstr "ספרדית" -#: InvenTree/locales.py:26 +#: InvenTree/locales.py:28 msgid "Spanish (Mexican)" msgstr "ספרדית (מקסיקנית)" -#: InvenTree/locales.py:27 +#: InvenTree/locales.py:29 msgid "Estonian" msgstr "" -#: InvenTree/locales.py:28 +#: InvenTree/locales.py:30 msgid "Farsi / Persian" msgstr "" -#: InvenTree/locales.py:29 +#: InvenTree/locales.py:31 msgid "Finnish" msgstr "" -#: InvenTree/locales.py:30 +#: InvenTree/locales.py:32 msgid "French" msgstr "צרפתית" -#: InvenTree/locales.py:31 +#: InvenTree/locales.py:33 msgid "Hebrew" msgstr "עברית" -#: InvenTree/locales.py:32 +#: InvenTree/locales.py:34 msgid "Hindi" msgstr "" -#: InvenTree/locales.py:33 +#: InvenTree/locales.py:35 msgid "Hungarian" msgstr "" -#: InvenTree/locales.py:34 +#: InvenTree/locales.py:36 msgid "Italian" msgstr "איטלקית" -#: InvenTree/locales.py:35 +#: InvenTree/locales.py:37 msgid "Japanese" msgstr "יפנית" -#: InvenTree/locales.py:36 +#: InvenTree/locales.py:38 msgid "Korean" msgstr "קוריאנית" -#: InvenTree/locales.py:37 +#: InvenTree/locales.py:39 +msgid "Lithuanian" +msgstr "" + +#: InvenTree/locales.py:40 msgid "Latvian" msgstr "" -#: InvenTree/locales.py:38 +#: InvenTree/locales.py:41 msgid "Dutch" msgstr "הולנדית" -#: InvenTree/locales.py:39 +#: InvenTree/locales.py:42 msgid "Norwegian" msgstr "נורווגית" -#: InvenTree/locales.py:40 +#: InvenTree/locales.py:43 msgid "Polish" msgstr "פולנית" -#: InvenTree/locales.py:41 -msgid "Portuguese" -msgstr "" - -#: InvenTree/locales.py:42 -msgid "Portuguese (Brazilian)" -msgstr "" - -#: InvenTree/locales.py:43 -msgid "Romanian" -msgstr "" - #: InvenTree/locales.py:44 +msgid "Portuguese" +msgstr "פורטוגזית" + +#: InvenTree/locales.py:45 +msgid "Portuguese (Brazilian)" +msgstr "פורטוגזית (ברזילאית)" + +#: InvenTree/locales.py:46 +msgid "Romanian" +msgstr "רומנית" + +#: InvenTree/locales.py:47 msgid "Russian" msgstr "רוסית" -#: InvenTree/locales.py:45 -msgid "Slovak" -msgstr "" - -#: InvenTree/locales.py:46 -msgid "Slovenian" -msgstr "" - -#: InvenTree/locales.py:47 -msgid "Serbian" -msgstr "" - #: InvenTree/locales.py:48 +msgid "Slovak" +msgstr "סלובקית" + +#: InvenTree/locales.py:49 +msgid "Slovenian" +msgstr "סלובנית" + +#: InvenTree/locales.py:50 +msgid "Serbian" +msgstr "סרבית" + +#: InvenTree/locales.py:51 msgid "Swedish" msgstr "שוודית" -#: InvenTree/locales.py:49 +#: InvenTree/locales.py:52 msgid "Thai" msgstr "תאילנדית" -#: InvenTree/locales.py:50 +#: InvenTree/locales.py:53 msgid "Turkish" msgstr "טורקית" -#: InvenTree/locales.py:51 +#: InvenTree/locales.py:54 msgid "Ukrainian" -msgstr "" +msgstr "אוקראינית" -#: InvenTree/locales.py:52 +#: InvenTree/locales.py:55 msgid "Vietnamese" msgstr "ווייטנאמית" -#: InvenTree/locales.py:53 +#: InvenTree/locales.py:56 msgid "Chinese (Simplified)" -msgstr "" +msgstr "סינית (פשוטה)" -#: InvenTree/locales.py:54 +#: InvenTree/locales.py:57 msgid "Chinese (Traditional)" -msgstr "" +msgstr "סינית (מסורתית)" #: InvenTree/magic_login.py:28 -#, python-brace-format -msgid "[{site_name}] Log in to the app" +msgid "Log in to the app" msgstr "" -#: InvenTree/magic_login.py:38 InvenTree/serializers.py:415 -#: company/models.py:136 company/templates/company/company_base.html:138 +#: InvenTree/magic_login.py:38 InvenTree/serializers.py:416 +#: company/models.py:133 company/templates/company/company_base.html:138 #: templates/InvenTree/settings/user.html:49 -#: templates/js/translated/company.js:677 +#: templates/js/translated/company.js:678 msgid "Email" -msgstr "" +msgstr "אימייל" -#: InvenTree/models.py:103 +#: InvenTree/models.py:105 msgid "Error running plugin validation" -msgstr "" +msgstr "שגיאה בהפעלת אימות הפלאגין" -#: InvenTree/models.py:172 +#: InvenTree/models.py:174 msgid "Metadata must be a python dict object" -msgstr "" +msgstr "Metadata must be a python dict object" -#: InvenTree/models.py:178 +#: InvenTree/models.py:180 msgid "Plugin Metadata" -msgstr "" +msgstr "מטא נתונים של תוסף" -#: InvenTree/models.py:179 +#: InvenTree/models.py:181 msgid "JSON metadata field, for use by external plugins" -msgstr "" +msgstr "שדה מטא נתונים של JSON, לשימוש על ידי תוספים חיצוניים" -#: InvenTree/models.py:409 +#: InvenTree/models.py:408 msgid "Improperly formatted pattern" -msgstr "" +msgstr "דפוס מעוצב בצורה לא נכונה" -#: InvenTree/models.py:416 +#: InvenTree/models.py:415 msgid "Unknown format key specified" -msgstr "" +msgstr "צוין מפתח פורמט לא ידוע" -#: InvenTree/models.py:422 +#: InvenTree/models.py:421 msgid "Missing required format key" -msgstr "" +msgstr "חסר מפתח פורמט נדרש" -#: InvenTree/models.py:433 +#: InvenTree/models.py:432 msgid "Reference field cannot be empty" -msgstr "" +msgstr "שדה הפניה לא יכול להיות ריק" -#: InvenTree/models.py:441 +#: InvenTree/models.py:440 msgid "Reference must match required pattern" -msgstr "" +msgstr "הפניה חייבת להתאים לדפוס הנדרש" -#: InvenTree/models.py:472 +#: InvenTree/models.py:471 msgid "Reference number is too large" -msgstr "" +msgstr "מספר האסמכתה גדול מדי" -#: InvenTree/models.py:723 +#: InvenTree/models.py:722 msgid "Duplicate names cannot exist under the same parent" -msgstr "" +msgstr "שמות כפולים אינם יכולים להתקיים תחת אותו אב" -#: InvenTree/models.py:740 +#: InvenTree/models.py:739 msgid "Invalid choice" msgstr "בחירה שגויה" -#: InvenTree/models.py:770 common/models.py:2702 common/models.py:3132 -#: common/serializers.py:412 company/models.py:593 machine/models.py:24 -#: part/models.py:983 part/models.py:3764 plugin/models.py:51 -#: report/models.py:149 stock/models.py:77 +#: InvenTree/models.py:769 common/models.py:2766 common/models.py:3193 +#: common/models.py:3413 common/serializers.py:460 company/models.py:590 +#: machine/models.py:24 part/models.py:1044 part/models.py:3815 +#: plugin/models.py:51 report/models.py:149 stock/models.py:83 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/notifications.html:17 #: templates/InvenTree/settings/plugin.html:83 #: templates/InvenTree/settings/plugin_settings.html:22 #: templates/InvenTree/settings/settings_staff_js.html:67 #: templates/InvenTree/settings/settings_staff_js.html:454 -#: templates/js/translated/company.js:676 -#: templates/js/translated/company.js:724 -#: templates/js/translated/company.js:913 -#: templates/js/translated/company.js:1165 -#: templates/js/translated/company.js:1413 templates/js/translated/part.js:1193 +#: templates/js/translated/company.js:677 +#: templates/js/translated/company.js:725 +#: templates/js/translated/company.js:914 +#: templates/js/translated/company.js:1166 +#: templates/js/translated/company.js:1414 templates/js/translated/part.js:1193 #: templates/js/translated/part.js:1481 templates/js/translated/part.js:1617 -#: templates/js/translated/part.js:2768 templates/js/translated/stock.js:2801 +#: templates/js/translated/part.js:2768 templates/js/translated/stock.js:2802 msgid "Name" msgstr "שם" -#: InvenTree/models.py:776 build/models.py:250 -#: build/templates/build/detail.html:24 common/models.py:156 -#: company/models.py:521 company/models.py:827 +#: InvenTree/models.py:775 build/models.py:251 +#: build/templates/build/detail.html:24 common/models.py:159 +#: company/models.py:518 company/models.py:824 #: company/templates/company/company_base.html:77 #: company/templates/company/manufacturer_part.html:75 -#: company/templates/company/supplier_part.html:107 order/models.py:288 -#: order/models.py:1413 part/admin.py:305 part/admin.py:411 part/models.py:1006 -#: part/models.py:3779 part/templates/part/category.html:79 -#: part/templates/part/part_base.html:170 +#: company/templates/company/supplier_part.html:108 order/models.py:295 +#: order/models.py:1430 part/admin.py:305 part/admin.py:411 part/models.py:1067 +#: part/models.py:3830 part/templates/part/category.html:79 +#: part/templates/part/part_base.html:171 #: part/templates/part/part_scheduling.html:12 report/models.py:155 -#: report/models.py:509 report/models.py:535 +#: report/models.py:517 report/models.py:543 #: report/templates/report/inventree_build_order_report.html:117 -#: stock/admin.py:54 stock/models.py:83 stock/templates/stock/location.html:122 +#: stock/admin.py:54 stock/models.py:89 stock/templates/stock/location.html:123 #: templates/InvenTree/settings/notifications.html:19 #: templates/InvenTree/settings/plugin_settings.html:27 #: templates/InvenTree/settings/settings_staff_js.html:170 #: templates/InvenTree/settings/settings_staff_js.html:459 #: templates/js/translated/bom.js:633 templates/js/translated/bom.js:963 -#: templates/js/translated/build.js:2311 templates/js/translated/company.js:519 -#: templates/js/translated/company.js:1330 -#: templates/js/translated/company.js:1641 templates/js/translated/index.js:119 +#: templates/js/translated/build.js:2314 templates/js/translated/company.js:520 +#: templates/js/translated/company.js:1331 +#: templates/js/translated/company.js:1642 templates/js/translated/index.js:119 #: templates/js/translated/order.js:323 templates/js/translated/part.js:1245 #: templates/js/translated/part.js:1490 templates/js/translated/part.js:1628 #: templates/js/translated/part.js:1965 templates/js/translated/part.js:2361 #: templates/js/translated/part.js:2803 templates/js/translated/part.js:2915 #: templates/js/translated/plugin.js:80 -#: templates/js/translated/purchase_order.js:1776 -#: templates/js/translated/purchase_order.js:1919 -#: templates/js/translated/purchase_order.js:2092 +#: templates/js/translated/purchase_order.js:1760 +#: templates/js/translated/purchase_order.js:1903 +#: templates/js/translated/purchase_order.js:2076 #: templates/js/translated/return_order.js:313 -#: templates/js/translated/sales_order.js:838 -#: templates/js/translated/sales_order.js:1848 -#: templates/js/translated/stock.js:1600 templates/js/translated/stock.js:2143 -#: templates/js/translated/stock.js:2832 templates/js/translated/stock.js:2915 +#: templates/js/translated/sales_order.js:797 +#: templates/js/translated/sales_order.js:1829 +#: templates/js/translated/stock.js:1600 templates/js/translated/stock.js:2144 +#: templates/js/translated/stock.js:2833 templates/js/translated/stock.js:2916 msgid "Description" msgstr "תיאור" -#: InvenTree/models.py:777 stock/models.py:84 +#: InvenTree/models.py:776 stock/models.py:90 msgid "Description (optional)" msgstr "תיאור (לא חובה)" -#: InvenTree/models.py:792 templates/js/translated/part.js:2812 -#: templates/js/translated/stock.js:2841 +#: InvenTree/models.py:791 common/models.py:3546 +#: templates/js/translated/part.js:2812 templates/js/translated/stock.js:2842 msgid "Path" -msgstr "" +msgstr "נתיב" -#: InvenTree/models.py:929 +#: InvenTree/models.py:928 msgid "Markdown notes (optional)" -msgstr "" +msgstr "הערות סימון (אופציונלי)" + +#: InvenTree/models.py:959 +msgid "Barcode Data" +msgstr "נתוני ברקוד" #: InvenTree/models.py:960 -msgid "Barcode Data" -msgstr "" - -#: InvenTree/models.py:961 msgid "Third party barcode data" -msgstr "" +msgstr "נתוני ברקוד של צד שלישי" + +#: InvenTree/models.py:966 +msgid "Barcode Hash" +msgstr "ברקוד Hash" #: InvenTree/models.py:967 -msgid "Barcode Hash" -msgstr "" - -#: InvenTree/models.py:968 msgid "Unique hash of barcode data" -msgstr "" +msgstr "Hash ייחודי של נתוני ברקוד" -#: InvenTree/models.py:1035 +#: InvenTree/models.py:1034 msgid "Existing barcode found" +msgstr "נמצא ברקוד קיים" + +#: InvenTree/models.py:1112 +msgid "Task Failure" msgstr "" -#: InvenTree/models.py:1078 +#: InvenTree/models.py:1114 +#, python-brace-format +msgid "Background worker task '{instance.func}' failed after {n} attempts" +msgstr "" + +#: InvenTree/models.py:1142 msgid "Server Error" -msgstr "" +msgstr "שגיאת שרת" -#: InvenTree/models.py:1079 +#: InvenTree/models.py:1143 msgid "An error has been logged by the server." -msgstr "" +msgstr "נרשמה שגיאה על ידי השרת." -#: InvenTree/serializers.py:63 part/models.py:4387 +#: InvenTree/serializers.py:63 part/models.py:4444 msgid "Must be a valid number" msgstr "המספר חייב להיות תקין" -#: InvenTree/serializers.py:100 company/models.py:186 -#: company/templates/company/company_base.html:112 part/models.py:3115 +#: InvenTree/serializers.py:100 company/models.py:183 +#: company/templates/company/company_base.html:112 part/models.py:3166 #: templates/InvenTree/settings/settings_staff_js.html:44 #: templates/currency_data.html:5 msgid "Currency" -msgstr "" +msgstr "מטבע" #: InvenTree/serializers.py:103 msgid "Select currency from available options" -msgstr "" +msgstr "בחר מטבע מהאפשרויות הזמינות" -#: InvenTree/serializers.py:407 templates/InvenTree/settings/user.html:33 +#: InvenTree/serializers.py:405 templates/InvenTree/settings/user.html:33 msgid "Username" -msgstr "" +msgstr "שם משתמש" -#: InvenTree/serializers.py:409 templates/InvenTree/settings/user.html:37 +#: InvenTree/serializers.py:408 templates/InvenTree/settings/user.html:37 msgid "First Name" -msgstr "" +msgstr "שם פרטי" -#: InvenTree/serializers.py:409 +#: InvenTree/serializers.py:408 msgid "First name of the user" msgstr "" @@ -552,30 +572,30 @@ msgstr "" msgid "Last name of the user" msgstr "" -#: InvenTree/serializers.py:415 +#: InvenTree/serializers.py:416 msgid "Email address of the user" msgstr "" -#: InvenTree/serializers.py:439 +#: InvenTree/serializers.py:441 msgid "Staff" msgstr "" -#: InvenTree/serializers.py:439 +#: InvenTree/serializers.py:441 msgid "Does this user have staff permissions" msgstr "" -#: InvenTree/serializers.py:442 +#: InvenTree/serializers.py:445 msgid "Superuser" msgstr "" -#: InvenTree/serializers.py:442 +#: InvenTree/serializers.py:445 msgid "Is this user a superuser" msgstr "" -#: InvenTree/serializers.py:445 common/models.py:2707 company/models.py:163 -#: company/models.py:801 machine/models.py:39 part/admin.py:88 -#: part/models.py:1189 plugin/models.py:66 -#: templates/js/translated/company.js:523 +#: InvenTree/serializers.py:449 common/models.py:2771 company/models.py:160 +#: company/models.py:798 machine/models.py:39 part/admin.py:88 +#: part/models.py:1250 plugin/models.py:66 +#: templates/js/translated/company.js:524 #: templates/js/translated/table_filters.js:134 #: templates/js/translated/table_filters.js:226 #: templates/js/translated/table_filters.js:513 @@ -585,230 +605,229 @@ msgstr "" msgid "Active" msgstr "" -#: InvenTree/serializers.py:445 +#: InvenTree/serializers.py:449 msgid "Is this user account active" msgstr "" -#: InvenTree/serializers.py:463 +#: InvenTree/serializers.py:467 msgid "You do not have permission to change this user role." msgstr "" -#: InvenTree/serializers.py:475 +#: InvenTree/serializers.py:503 msgid "Only superusers can create new users" msgstr "" -#: InvenTree/serializers.py:494 +#: InvenTree/serializers.py:523 msgid "Your account has been created." msgstr "" -#: InvenTree/serializers.py:496 +#: InvenTree/serializers.py:525 msgid "Please use the password reset function to login" msgstr "" -#: InvenTree/serializers.py:503 +#: InvenTree/serializers.py:531 msgid "Welcome to InvenTree" msgstr "" -#: InvenTree/serializers.py:561 +#: InvenTree/serializers.py:594 msgid "Invalid value" msgstr "" -#: InvenTree/serializers.py:581 importer/models.py:63 +#: InvenTree/serializers.py:614 importer/models.py:64 msgid "Data File" msgstr "" -#: InvenTree/serializers.py:582 +#: InvenTree/serializers.py:615 msgid "Select data file for upload" msgstr "" -#: InvenTree/serializers.py:599 -msgid "Unsupported file type" +#: InvenTree/serializers.py:632 common/files.py:63 +msgid "Unsupported file format" msgstr "" -#: InvenTree/serializers.py:605 +#: InvenTree/serializers.py:638 msgid "File is too large" msgstr "" -#: InvenTree/serializers.py:626 +#: InvenTree/serializers.py:659 msgid "No columns found in file" msgstr "" -#: InvenTree/serializers.py:629 +#: InvenTree/serializers.py:662 msgid "No data rows found in file" msgstr "" -#: InvenTree/serializers.py:742 +#: InvenTree/serializers.py:774 msgid "No data rows provided" msgstr "" -#: InvenTree/serializers.py:745 +#: InvenTree/serializers.py:777 msgid "No data columns supplied" msgstr "" -#: InvenTree/serializers.py:812 +#: InvenTree/serializers.py:843 #, python-brace-format msgid "Missing required column: '{name}'" msgstr "" -#: InvenTree/serializers.py:821 +#: InvenTree/serializers.py:852 #, python-brace-format msgid "Duplicate column: '{col}'" msgstr "" -#: InvenTree/serializers.py:861 +#: InvenTree/serializers.py:891 msgid "Remote Image" msgstr "" -#: InvenTree/serializers.py:862 +#: InvenTree/serializers.py:892 msgid "URL of remote image file" msgstr "" -#: InvenTree/serializers.py:880 +#: InvenTree/serializers.py:910 msgid "Downloading images from remote URL is not enabled" msgstr "" -#: InvenTree/status.py:66 part/serializers.py:1246 -msgid "Background worker check failed" -msgstr "" - -#: InvenTree/status.py:70 -msgid "Email backend not configured" -msgstr "" - -#: InvenTree/status.py:73 -msgid "InvenTree system health checks failed" +#: InvenTree/serializers.py:917 +msgid "Failed to download image from remote URL" msgstr "" #: InvenTree/templatetags/inventree_extras.py:184 msgid "Unknown database" msgstr "" -#: InvenTree/validators.py:32 InvenTree/validators.py:34 +#: InvenTree/validators.py:32 msgid "Invalid physical unit" msgstr "" -#: InvenTree/validators.py:40 +#: InvenTree/validators.py:38 msgid "Not a valid currency code" msgstr "קוד מטבע לא מאושר" -#: InvenTree/validators.py:118 InvenTree/validators.py:134 +#: InvenTree/validators.py:115 InvenTree/validators.py:131 msgid "Overage value must not be negative" msgstr "" -#: InvenTree/validators.py:136 +#: InvenTree/validators.py:133 msgid "Overage must not exceed 100%" msgstr "" -#: InvenTree/validators.py:142 +#: InvenTree/validators.py:139 msgid "Invalid value for overage" msgstr "" -#: InvenTree/views.py:400 templates/InvenTree/settings/user.html:23 +#: InvenTree/views.py:399 templates/InvenTree/settings/user.html:23 msgid "Edit User Information" msgstr "ערוך מידע אודות המשתמש" -#: InvenTree/views.py:412 templates/InvenTree/settings/user.html:20 +#: InvenTree/views.py:411 templates/InvenTree/settings/user.html:20 msgid "Set Password" msgstr "הגדר סיסמא" -#: InvenTree/views.py:434 +#: InvenTree/views.py:433 msgid "Password fields must match" msgstr "הסיסמאות מוכרחות להיות תואמות" -#: InvenTree/views.py:442 +#: InvenTree/views.py:441 msgid "Wrong password provided" msgstr "" -#: InvenTree/views.py:650 templates/navbar.html:160 +#: InvenTree/views.py:645 templates/navbar.html:160 msgid "System Information" msgstr "מידע אודות המערכת" -#: InvenTree/views.py:657 templates/navbar.html:171 +#: InvenTree/views.py:652 templates/navbar.html:171 msgid "About InvenTree" msgstr "" -#: build/api.py:51 part/api.py:156 stock/api.py:343 -msgid "Cascade" -msgstr "" - -#: build/api.py:64 build/models.py:261 -#: build/templates/build/build_base.html:191 +#: build/api.py:54 build/models.py:262 +#: build/templates/build/build_base.html:192 #: build/templates/build/detail.html:87 msgid "Parent Build" msgstr "מקור הבנייה" -#: build/api.py:89 order/api.py:92 templates/js/translated/table_filters.js:101 +#: build/api.py:58 build/api.py:625 order/api.py:396 order/api.py:611 +#: order/api.py:990 order/api.py:1187 +#: templates/js/translated/table_filters.js:372 +msgid "Include Variants" +msgstr "" + +#: build/api.py:93 +msgid "Ancestor Build" +msgstr "" + +#: build/api.py:112 order/api.py:90 +#: templates/js/translated/table_filters.js:101 #: templates/js/translated/table_filters.js:549 #: templates/js/translated/table_filters.js:633 #: templates/js/translated/table_filters.js:674 msgid "Assigned to me" msgstr "" -#: build/api.py:106 build/templates/build/build_base.html:205 +#: build/api.py:129 build/templates/build/build_base.html:206 #: build/templates/build/detail.html:115 #: report/templates/report/inventree_build_order_report.html:152 #: templates/js/translated/table_filters.js:552 msgid "Issued By" msgstr "" -#: build/api.py:125 +#: build/api.py:148 msgid "Assigned To" msgstr "" -#: build/api.py:301 +#: build/api.py:310 msgid "Build must be cancelled before it can be deleted" msgstr "" -#: build/api.py:345 build/serializers.py:1288 part/models.py:4265 +#: build/api.py:354 build/serializers.py:1342 part/models.py:4322 #: templates/js/translated/bom.js:997 templates/js/translated/bom.js:1037 -#: templates/js/translated/build.js:2702 +#: templates/js/translated/build.js:2711 #: templates/js/translated/table_filters.js:197 #: templates/js/translated/table_filters.js:586 msgid "Consumable" msgstr "" -#: build/api.py:346 build/serializers.py:1289 part/models.py:4259 +#: build/api.py:355 build/serializers.py:1343 part/models.py:4316 #: part/templates/part/upload_bom.html:58 templates/js/translated/bom.js:1001 -#: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2693 +#: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2702 #: templates/js/translated/table_filters.js:193 #: templates/js/translated/table_filters.js:222 #: templates/js/translated/table_filters.js:590 msgid "Optional" msgstr "" -#: build/api.py:347 common/models.py:1489 part/admin.py:91 part/admin.py:428 -#: part/models.py:1154 part/serializers.py:1575 +#: build/api.py:356 common/models.py:1558 part/admin.py:91 part/admin.py:428 +#: part/models.py:1215 part/serializers.py:1633 #: templates/js/translated/bom.js:1639 #: templates/js/translated/table_filters.js:337 #: templates/js/translated/table_filters.js:729 msgid "Assembly" msgstr "" -#: build/api.py:348 templates/js/translated/table_filters.js:415 +#: build/api.py:357 templates/js/translated/table_filters.js:415 #: templates/js/translated/table_filters.js:582 msgid "Tracked" msgstr "" -#: build/api.py:349 build/serializers.py:1290 part/models.py:1172 +#: build/api.py:358 build/serializers.py:1344 part/models.py:1233 #: templates/js/translated/table_filters.js:146 #: templates/js/translated/table_filters.js:779 msgid "Testable" msgstr "" -#: build/api.py:351 part/admin.py:144 templates/js/translated/build.js:1917 -#: templates/js/translated/build.js:2820 -#: templates/js/translated/sales_order.js:1965 +#: build/api.py:360 order/api.py:779 part/admin.py:144 +#: templates/js/translated/build.js:1920 templates/js/translated/build.js:2838 +#: templates/js/translated/sales_order.js:1946 #: templates/js/translated/table_filters.js:574 msgid "Allocated" msgstr "" -#: build/api.py:359 company/models.py:891 company/serializers.py:395 -#: company/templates/company/supplier_part.html:114 +#: build/api.py:368 company/models.py:888 company/serializers.py:399 +#: company/templates/company/supplier_part.html:115 #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:17 -#: templates/js/translated/bom.js:1162 templates/js/translated/build.js:2752 +#: templates/js/translated/bom.js:1162 templates/js/translated/build.js:2770 #: templates/js/translated/index.js:123 -#: templates/js/translated/model_renderers.js:235 +#: templates/js/translated/model_renderers.js:238 #: templates/js/translated/part.js:695 templates/js/translated/part.js:697 #: templates/js/translated/part.js:702 #: templates/js/translated/table_filters.js:347 @@ -816,16 +835,68 @@ msgstr "" msgid "Available" msgstr "" -#: build/models.py:86 build/templates/build/build_base.html:9 -#: build/templates/build/build_base.html:27 +#: build/api.py:640 build/models.py:268 build/serializers.py:1330 +#: build/templates/build/build_base.html:106 +#: build/templates/build/detail.html:29 company/models.py:1043 order/api.py:775 +#: order/api.py:1003 order/models.py:1519 order/models.py:1674 +#: order/models.py:1675 part/api.py:1495 part/api.py:1802 part/models.py:419 +#: part/models.py:3177 part/models.py:3321 part/models.py:3469 +#: part/models.py:3490 part/models.py:3512 part/models.py:3648 +#: part/models.py:3995 part/models.py:4158 part/models.py:4288 +#: part/models.py:4654 part/serializers.py:1245 part/serializers.py:1898 +#: part/templates/part/part_app_base.html:8 +#: part/templates/part/part_pricing.html:12 +#: part/templates/part/upload_bom.html:52 +#: report/templates/report/inventree_bill_of_materials_report.html:110 +#: report/templates/report/inventree_bill_of_materials_report.html:137 +#: report/templates/report/inventree_build_order_report.html:109 +#: report/templates/report/inventree_purchase_order_report.html:27 +#: report/templates/report/inventree_return_order_report.html:24 +#: report/templates/report/inventree_sales_order_report.html:27 +#: report/templates/report/inventree_sales_order_shipment_report.html:28 +#: report/templates/report/inventree_stock_location_report.html:102 +#: stock/serializers.py:112 stock/serializers.py:160 stock/serializers.py:456 +#: stock/serializers.py:947 templates/InvenTree/search.html:82 +#: templates/email/build_order_completed.html:17 +#: templates/email/build_order_required_stock.html:17 +#: templates/email/low_stock_notification.html:15 +#: templates/email/overdue_build_order.html:16 +#: templates/js/translated/barcode.js:577 templates/js/translated/bom.js:632 +#: templates/js/translated/bom.js:769 templates/js/translated/bom.js:905 +#: templates/js/translated/build.js:1005 templates/js/translated/build.js:1488 +#: templates/js/translated/build.js:1919 templates/js/translated/build.js:2337 +#: templates/js/translated/build.js:2514 templates/js/translated/company.js:349 +#: templates/js/translated/company.js:1117 +#: templates/js/translated/company.js:1272 +#: templates/js/translated/company.js:1560 templates/js/translated/index.js:109 +#: templates/js/translated/part.js:1950 templates/js/translated/part.js:2022 +#: templates/js/translated/part.js:2330 templates/js/translated/pricing.js:369 +#: templates/js/translated/purchase_order.js:734 +#: templates/js/translated/purchase_order.js:1350 +#: templates/js/translated/purchase_order.js:1902 +#: templates/js/translated/purchase_order.js:2061 +#: templates/js/translated/return_order.js:538 +#: templates/js/translated/return_order.js:708 +#: templates/js/translated/sales_order.js:1199 +#: templates/js/translated/sales_order.js:1608 +#: templates/js/translated/sales_order.js:1813 +#: templates/js/translated/stock.js:682 templates/js/translated/stock.js:848 +#: templates/js/translated/stock.js:1065 templates/js/translated/stock.js:2083 +#: templates/js/translated/stock.js:2942 templates/js/translated/stock.js:3175 +#: templates/js/translated/stock.js:3320 +msgid "Part" +msgstr "רכיב" + +#: build/api.py:662 build/models.py:88 build/templates/build/build_base.html:10 +#: build/templates/build/build_base.html:28 #: report/templates/report/inventree_build_order_report.html:105 -#: stock/serializers.py:84 templates/email/build_order_completed.html:16 +#: stock/serializers.py:85 templates/email/build_order_completed.html:16 #: templates/email/overdue_build_order.html:15 -#: templates/js/translated/build.js:1145 templates/js/translated/stock.js:2976 +#: templates/js/translated/build.js:1148 templates/js/translated/stock.js:2977 msgid "Build Order" msgstr "" -#: build/models.py:87 build/templates/build/build_base.html:13 +#: build/models.py:89 build/templates/build/build_base.html:14 #: build/templates/build/index.html:8 build/templates/build/index.html:12 #: order/templates/order/sales_order_detail.html:111 #: order/templates/order/so_sidebar.html:13 @@ -836,268 +907,216 @@ msgstr "" msgid "Build Orders" msgstr "" -#: build/models.py:135 +#: build/models.py:136 msgid "Assembly BOM has not been validated" msgstr "" -#: build/models.py:142 +#: build/models.py:143 msgid "Build order cannot be created for an inactive part" msgstr "" -#: build/models.py:149 +#: build/models.py:150 msgid "Build order cannot be created for an unlocked part" msgstr "" -#: build/models.py:163 +#: build/models.py:164 msgid "Invalid choice for parent build" msgstr "" -#: build/models.py:174 order/models.py:239 +#: build/models.py:175 order/models.py:236 msgid "Responsible user or group must be specified" msgstr "" -#: build/models.py:180 +#: build/models.py:181 msgid "Build order part cannot be changed" msgstr "" -#: build/models.py:241 +#: build/models.py:242 msgid "Build Order Reference" msgstr "" -#: build/models.py:242 build/serializers.py:1287 order/models.py:467 -#: order/models.py:978 order/models.py:1373 order/models.py:2135 -#: part/admin.py:414 part/models.py:4280 part/templates/part/upload_bom.html:54 +#: build/models.py:243 build/serializers.py:1341 order/models.py:479 +#: order/models.py:1005 order/models.py:1390 order/models.py:2174 +#: part/admin.py:414 part/models.py:4337 part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_bill_of_materials_report.html:139 #: report/templates/report/inventree_purchase_order_report.html:28 #: report/templates/report/inventree_return_order_report.html:26 #: report/templates/report/inventree_sales_order_report.html:28 #: templates/js/translated/bom.js:770 templates/js/translated/bom.js:973 -#: templates/js/translated/build.js:1011 templates/js/translated/build.js:2685 +#: templates/js/translated/build.js:1014 templates/js/translated/build.js:2694 #: templates/js/translated/order.js:316 templates/js/translated/pricing.js:386 -#: templates/js/translated/purchase_order.js:2135 +#: templates/js/translated/purchase_order.js:2119 #: templates/js/translated/return_order.js:727 -#: templates/js/translated/sales_order.js:1854 +#: templates/js/translated/sales_order.js:1835 msgid "Reference" msgstr "מקט" -#: build/models.py:253 +#: build/models.py:254 msgid "Brief description of the build (optional)" msgstr "" -#: build/models.py:262 +#: build/models.py:263 msgid "BuildOrder to which this build is allocated" msgstr "" -#: build/models.py:267 build/serializers.py:1278 -#: build/templates/build/build_base.html:105 -#: build/templates/build/detail.html:29 company/models.py:1046 order/api.py:767 -#: order/models.py:1503 order/models.py:1658 order/models.py:1659 -#: part/api.py:1509 part/api.py:1813 part/models.py:424 part/models.py:3126 -#: part/models.py:3270 part/models.py:3418 part/models.py:3439 -#: part/models.py:3461 part/models.py:3597 part/models.py:3937 -#: part/models.py:4100 part/models.py:4231 part/models.py:4592 -#: part/serializers.py:1192 part/serializers.py:1836 -#: part/templates/part/part_app_base.html:8 -#: part/templates/part/part_pricing.html:12 -#: part/templates/part/upload_bom.html:52 -#: report/templates/report/inventree_bill_of_materials_report.html:110 -#: report/templates/report/inventree_bill_of_materials_report.html:137 -#: report/templates/report/inventree_build_order_report.html:109 -#: report/templates/report/inventree_purchase_order_report.html:27 -#: report/templates/report/inventree_return_order_report.html:24 -#: report/templates/report/inventree_sales_order_report.html:27 -#: report/templates/report/inventree_stock_location_report.html:102 -#: stock/serializers.py:111 stock/serializers.py:159 stock/serializers.py:446 -#: stock/serializers.py:916 templates/InvenTree/search.html:82 -#: templates/email/build_order_completed.html:17 -#: templates/email/build_order_required_stock.html:17 -#: templates/email/low_stock_notification.html:15 -#: templates/email/overdue_build_order.html:16 -#: templates/js/translated/barcode.js:577 templates/js/translated/bom.js:632 -#: templates/js/translated/bom.js:769 templates/js/translated/bom.js:905 -#: templates/js/translated/build.js:1002 templates/js/translated/build.js:1485 -#: templates/js/translated/build.js:1916 templates/js/translated/build.js:2334 -#: templates/js/translated/build.js:2507 templates/js/translated/company.js:348 -#: templates/js/translated/company.js:1116 -#: templates/js/translated/company.js:1271 -#: templates/js/translated/company.js:1559 templates/js/translated/index.js:109 -#: templates/js/translated/part.js:1950 templates/js/translated/part.js:2022 -#: templates/js/translated/part.js:2330 templates/js/translated/pricing.js:369 -#: templates/js/translated/purchase_order.js:751 -#: templates/js/translated/purchase_order.js:1367 -#: templates/js/translated/purchase_order.js:1918 -#: templates/js/translated/purchase_order.js:2077 -#: templates/js/translated/return_order.js:538 -#: templates/js/translated/return_order.js:708 -#: templates/js/translated/sales_order.js:300 -#: templates/js/translated/sales_order.js:1233 -#: templates/js/translated/sales_order.js:1634 -#: templates/js/translated/sales_order.js:1832 -#: templates/js/translated/stock.js:682 templates/js/translated/stock.js:848 -#: templates/js/translated/stock.js:1065 templates/js/translated/stock.js:2082 -#: templates/js/translated/stock.js:2941 templates/js/translated/stock.js:3174 -#: templates/js/translated/stock.js:3319 -msgid "Part" -msgstr "רכיב" - -#: build/models.py:275 +#: build/models.py:274 msgid "Select part to build" msgstr "בחר רכיב לבנייה" -#: build/models.py:280 +#: build/models.py:279 msgid "Sales Order Reference" msgstr "" -#: build/models.py:284 +#: build/models.py:283 msgid "SalesOrder to which this build is allocated" msgstr "" -#: build/models.py:289 build/serializers.py:1048 -#: templates/js/translated/build.js:1904 -#: templates/js/translated/sales_order.js:1221 +#: build/models.py:288 build/serializers.py:1092 +#: templates/js/translated/build.js:1907 +#: templates/js/translated/sales_order.js:1187 msgid "Source Location" msgstr "" -#: build/models.py:293 +#: build/models.py:292 msgid "Select location to take stock from for this build (leave blank to take from any stock location)" msgstr "" -#: build/models.py:298 +#: build/models.py:297 msgid "Destination Location" msgstr "" -#: build/models.py:302 +#: build/models.py:301 msgid "Select location where the completed items will be stored" msgstr "" -#: build/models.py:306 +#: build/models.py:305 msgid "Build Quantity" msgstr "כמות בניה" -#: build/models.py:309 +#: build/models.py:308 msgid "Number of stock items to build" msgstr "" -#: build/models.py:313 +#: build/models.py:312 msgid "Completed items" msgstr "" -#: build/models.py:315 +#: build/models.py:314 msgid "Number of stock items which have been completed" msgstr "" -#: build/models.py:319 +#: build/models.py:318 msgid "Build Status" msgstr "" -#: build/models.py:323 +#: build/models.py:322 msgid "Build status code" msgstr "" -#: build/models.py:332 build/serializers.py:302 build/serializers.py:1198 -#: order/serializers.py:670 stock/models.py:859 stock/serializers.py:76 -#: stock/serializers.py:1562 templates/js/translated/purchase_order.js:1129 +#: build/models.py:331 build/serializers.py:349 build/serializers.py:1243 +#: order/serializers.py:755 stock/models.py:936 stock/serializers.py:77 +#: stock/serializers.py:1593 templates/js/translated/purchase_order.js:1112 #: templates/js/translated/stock.js:1199 msgid "Batch Code" msgstr "" -#: build/models.py:336 build/serializers.py:303 +#: build/models.py:335 build/serializers.py:350 msgid "Batch code for this build output" msgstr "" -#: build/models.py:339 order/models.py:315 order/serializers.py:126 -#: part/models.py:1229 part/templates/part/part_base.html:319 +#: build/models.py:338 order/models.py:322 order/serializers.py:157 +#: part/models.py:1290 part/templates/part/part_base.html:327 #: templates/js/translated/return_order.js:338 -#: templates/js/translated/sales_order.js:863 +#: templates/js/translated/sales_order.js:822 msgid "Creation Date" msgstr "" -#: build/models.py:343 +#: build/models.py:342 msgid "Target completion date" msgstr "" -#: build/models.py:344 +#: build/models.py:343 msgid "Target date for build completion. Build will be overdue after this date." msgstr "" -#: build/models.py:347 order/models.py:526 order/models.py:2180 -#: templates/js/translated/build.js:2419 +#: build/models.py:346 order/models.py:538 order/models.py:2219 +#: templates/js/translated/build.js:2422 msgid "Completion Date" msgstr "" -#: build/models.py:353 +#: build/models.py:352 msgid "completed by" msgstr "" -#: build/models.py:361 templates/js/translated/build.js:2379 +#: build/models.py:360 templates/js/translated/build.js:2382 msgid "Issued by" msgstr "" -#: build/models.py:362 +#: build/models.py:361 msgid "User who issued this build order" msgstr "" -#: build/models.py:370 build/templates/build/build_base.html:212 -#: build/templates/build/detail.html:122 common/models.py:165 order/api.py:142 -#: order/models.py:333 order/templates/order/order_base.html:222 -#: order/templates/order/return_order_base.html:191 -#: order/templates/order/sales_order_base.html:235 part/models.py:1246 -#: part/templates/part/part_base.html:399 +#: build/models.py:369 build/templates/build/build_base.html:213 +#: build/templates/build/detail.html:122 common/models.py:168 order/api.py:140 +#: order/models.py:340 order/templates/order/order_base.html:231 +#: order/templates/order/return_order_base.html:192 +#: order/templates/order/sales_order_base.html:236 part/models.py:1307 +#: part/templates/part/part_base.html:407 #: report/templates/report/inventree_build_order_report.html:158 #: templates/InvenTree/settings/settings_staff_js.html:150 -#: templates/js/translated/build.js:2391 -#: templates/js/translated/purchase_order.js:1833 +#: templates/js/translated/build.js:2394 +#: templates/js/translated/purchase_order.js:1817 #: templates/js/translated/return_order.js:358 #: templates/js/translated/table_filters.js:551 msgid "Responsible" msgstr "" -#: build/models.py:371 +#: build/models.py:370 msgid "User or group responsible for this build order" msgstr "" -#: build/models.py:376 build/templates/build/detail.html:108 +#: build/models.py:375 build/templates/build/detail.html:108 #: company/templates/company/manufacturer_part.html:107 -#: company/templates/company/supplier_part.html:194 -#: order/templates/order/order_base.html:172 -#: order/templates/order/return_order_base.html:148 -#: order/templates/order/sales_order_base.html:187 -#: part/templates/part/part_base.html:392 stock/models.py:855 -#: stock/templates/stock/item_base.html:200 -#: templates/js/translated/company.js:1019 +#: company/templates/company/supplier_part.html:195 +#: order/templates/order/order_base.html:181 +#: order/templates/order/return_order_base.html:149 +#: order/templates/order/sales_order_base.html:188 +#: part/templates/part/part_base.html:400 stock/models.py:932 +#: stock/templates/stock/item_base.html:197 +#: templates/js/translated/company.js:1020 msgid "External Link" msgstr "" -#: build/models.py:377 common/models.py:3273 part/models.py:1058 -#: stock/models.py:855 +#: build/models.py:376 common/models.py:3334 part/models.py:1119 +#: stock/models.py:932 msgid "Link to external URL" msgstr "קישור חיצוני" -#: build/models.py:381 +#: build/models.py:380 msgid "Build Priority" msgstr "" -#: build/models.py:384 +#: build/models.py:383 msgid "Priority of this build order" msgstr "" -#: build/models.py:391 common/models.py:135 common/models.py:149 -#: order/admin.py:18 order/api.py:128 order/models.py:297 +#: build/models.py:390 common/models.py:138 common/models.py:152 +#: order/admin.py:18 order/api.py:126 order/models.py:304 #: templates/InvenTree/settings/settings_staff_js.html:146 -#: templates/js/translated/build.js:2316 -#: templates/js/translated/purchase_order.js:1780 +#: templates/js/translated/build.js:2319 +#: templates/js/translated/purchase_order.js:1764 #: templates/js/translated/return_order.js:317 -#: templates/js/translated/sales_order.js:842 +#: templates/js/translated/sales_order.js:801 #: templates/js/translated/table_filters.js:47 #: templates/project_code_data.html:6 msgid "Project Code" msgstr "" -#: build/models.py:392 +#: build/models.py:391 msgid "Project code for this build order" msgstr "" -#: build/models.py:651 build/models.py:778 +#: build/models.py:651 build/models.py:779 msgid "Failed to offload task to complete build allocations" msgstr "" @@ -1110,610 +1129,619 @@ msgstr "" msgid "A build order has been completed" msgstr "" -#: build/models.py:967 build/models.py:1055 +#: build/models.py:858 build/serializers.py:393 +msgid "Serial numbers must be provided for trackable parts" +msgstr "" + +#: build/models.py:969 build/models.py:1058 msgid "No build output specified" msgstr "" -#: build/models.py:970 +#: build/models.py:972 msgid "Build output is already completed" msgstr "" -#: build/models.py:973 +#: build/models.py:975 msgid "Build output does not match Build Order" msgstr "" -#: build/models.py:1059 build/serializers.py:235 build/serializers.py:284 -#: build/serializers.py:915 order/models.py:564 order/serializers.py:499 -#: order/serializers.py:665 part/serializers.py:1569 part/serializers.py:1999 -#: stock/models.py:700 stock/models.py:1520 stock/serializers.py:669 +#: build/models.py:1062 build/serializers.py:282 build/serializers.py:331 +#: build/serializers.py:959 order/models.py:586 order/serializers.py:584 +#: order/serializers.py:750 part/serializers.py:1627 part/serializers.py:2060 +#: stock/models.py:777 stock/models.py:1609 stock/serializers.py:696 msgid "Quantity must be greater than zero" msgstr "" -#: build/models.py:1064 build/serializers.py:240 +#: build/models.py:1067 build/serializers.py:287 msgid "Quantity cannot be greater than the output quantity" msgstr "" -#: build/models.py:1124 build/serializers.py:563 +#: build/models.py:1127 build/serializers.py:607 #, python-brace-format msgid "Build output {serial} has not passed all required tests" msgstr "" -#: build/models.py:1465 +#: build/models.py:1482 msgid "Build Order Line Item" msgstr "" -#: build/models.py:1490 +#: build/models.py:1507 msgid "Build object" msgstr "" -#: build/models.py:1504 build/models.py:1760 build/serializers.py:222 -#: build/serializers.py:269 build/serializers.py:1295 -#: build/templates/build/build_base.html:110 -#: build/templates/build/detail.html:34 common/models.py:2579 -#: order/models.py:1356 order/models.py:2041 order/serializers.py:1460 +#: build/models.py:1521 build/models.py:1787 build/serializers.py:269 +#: build/serializers.py:316 build/serializers.py:1349 +#: build/templates/build/build_base.html:111 +#: build/templates/build/detail.html:34 common/models.py:2643 +#: order/models.py:1373 order/models.py:2074 order/serializers.py:1586 #: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:413 -#: part/forms.py:48 part/models.py:3284 part/models.py:4253 -#: part/templates/part/part_pricing.html:16 +#: part/forms.py:48 part/models.py:3335 part/models.py:4310 +#: part/serializers.py:265 part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_bill_of_materials_report.html:138 #: report/templates/report/inventree_build_order_report.html:113 #: report/templates/report/inventree_purchase_order_report.html:29 #: report/templates/report/inventree_sales_order_report.html:29 +#: report/templates/report/inventree_sales_order_shipment_report.html:47 +#: report/templates/report/inventree_sales_order_shipment_report.html:49 #: report/templates/report/inventree_stock_location_report.html:104 #: report/templates/report/inventree_test_report.html:90 -#: report/templates/report/inventree_test_report.html:169 stock/admin.py:159 -#: stock/serializers.py:127 stock/serializers.py:167 stock/serializers.py:660 -#: stock/templates/stock/item_base.html:287 -#: stock/templates/stock/item_base.html:295 -#: stock/templates/stock/item_base.html:342 +#: report/templates/report/inventree_test_report.html:169 stock/admin.py:160 +#: stock/serializers.py:128 stock/serializers.py:168 stock/serializers.py:687 +#: stock/templates/stock/item_base.html:284 +#: stock/templates/stock/item_base.html:292 +#: stock/templates/stock/item_base.html:339 #: templates/email/build_order_completed.html:18 #: templates/js/translated/barcode.js:579 templates/js/translated/bom.js:771 -#: templates/js/translated/bom.js:981 templates/js/translated/build.js:522 -#: templates/js/translated/build.js:737 templates/js/translated/build.js:1542 -#: templates/js/translated/build.js:1919 templates/js/translated/build.js:2529 -#: templates/js/translated/company.js:1818 -#: templates/js/translated/model_renderers.js:237 +#: templates/js/translated/bom.js:981 templates/js/translated/build.js:525 +#: templates/js/translated/build.js:740 templates/js/translated/build.js:1545 +#: templates/js/translated/build.js:1922 templates/js/translated/build.js:2536 +#: templates/js/translated/company.js:1819 +#: templates/js/translated/model_renderers.js:240 #: templates/js/translated/order.js:329 templates/js/translated/part.js:968 -#: templates/js/translated/part.js:1818 templates/js/translated/part.js:3360 +#: templates/js/translated/part.js:1818 templates/js/translated/part.js:3376 #: templates/js/translated/pricing.js:381 #: templates/js/translated/pricing.js:474 #: templates/js/translated/pricing.js:522 #: templates/js/translated/pricing.js:616 -#: templates/js/translated/purchase_order.js:754 -#: templates/js/translated/purchase_order.js:1922 -#: templates/js/translated/purchase_order.js:2141 -#: templates/js/translated/sales_order.js:317 -#: templates/js/translated/sales_order.js:1235 -#: templates/js/translated/sales_order.js:1554 -#: templates/js/translated/sales_order.js:1644 -#: templates/js/translated/sales_order.js:1734 -#: templates/js/translated/sales_order.js:1860 +#: templates/js/translated/purchase_order.js:737 +#: templates/js/translated/purchase_order.js:1906 +#: templates/js/translated/purchase_order.js:2125 +#: templates/js/translated/sales_order.js:1201 +#: templates/js/translated/sales_order.js:1520 +#: templates/js/translated/sales_order.js:1625 +#: templates/js/translated/sales_order.js:1715 +#: templates/js/translated/sales_order.js:1841 #: templates/js/translated/stock.js:570 templates/js/translated/stock.js:708 -#: templates/js/translated/stock.js:879 templates/js/translated/stock.js:3105 -#: templates/js/translated/stock.js:3188 +#: templates/js/translated/stock.js:879 templates/js/translated/stock.js:3106 +#: templates/js/translated/stock.js:3189 msgid "Quantity" msgstr "כמות" -#: build/models.py:1505 +#: build/models.py:1522 msgid "Required quantity for build order" msgstr "" -#: build/models.py:1585 +#: build/models.py:1602 msgid "Build item must specify a build output, as master part is marked as trackable" msgstr "" -#: build/models.py:1594 +#: build/models.py:1611 #, python-brace-format msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgstr "" -#: build/models.py:1604 order/models.py:1992 +#: build/models.py:1628 order/models.py:2025 msgid "Stock item is over-allocated" msgstr "" -#: build/models.py:1610 order/models.py:1995 +#: build/models.py:1634 order/models.py:2028 msgid "Allocation quantity must be greater than zero" msgstr "" -#: build/models.py:1616 +#: build/models.py:1640 msgid "Quantity must be 1 for serialized stock" msgstr "" -#: build/models.py:1675 +#: build/models.py:1699 msgid "Selected stock item does not match BOM line" msgstr "" -#: build/models.py:1747 build/serializers.py:895 order/serializers.py:1297 -#: order/serializers.py:1318 stock/models.py:376 stock/serializers.py:93 -#: stock/serializers.py:763 stock/serializers.py:1281 stock/serializers.py:1393 -#: stock/templates/stock/item_base.html:10 -#: stock/templates/stock/item_base.html:23 -#: stock/templates/stock/item_base.html:194 -#: templates/js/translated/build.js:1918 -#: templates/js/translated/sales_order.js:301 -#: templates/js/translated/sales_order.js:1234 -#: templates/js/translated/sales_order.js:1535 -#: templates/js/translated/sales_order.js:1540 -#: templates/js/translated/sales_order.js:1641 -#: templates/js/translated/sales_order.js:1728 +#: build/models.py:1774 build/serializers.py:939 order/serializers.py:1423 +#: order/serializers.py:1444 +#: report/templates/report/inventree_sales_order_shipment_report.html:29 +#: stock/models.py:382 stock/serializers.py:94 stock/serializers.py:794 +#: stock/serializers.py:1312 stock/serializers.py:1424 +#: stock/templates/stock/item_base.html:11 +#: stock/templates/stock/item_base.html:24 +#: stock/templates/stock/item_base.html:191 +#: templates/js/translated/build.js:1921 +#: templates/js/translated/sales_order.js:1200 +#: templates/js/translated/sales_order.js:1501 +#: templates/js/translated/sales_order.js:1506 +#: templates/js/translated/sales_order.js:1622 +#: templates/js/translated/sales_order.js:1709 #: templates/js/translated/stock.js:683 templates/js/translated/stock.js:849 -#: templates/js/translated/stock.js:3061 +#: templates/js/translated/stock.js:3062 msgid "Stock Item" msgstr "" -#: build/models.py:1748 +#: build/models.py:1775 msgid "Source stock item" msgstr "" -#: build/models.py:1761 +#: build/models.py:1788 msgid "Stock quantity to allocate to build" msgstr "" -#: build/models.py:1769 +#: build/models.py:1796 msgid "Install into" msgstr "" -#: build/models.py:1770 +#: build/models.py:1797 msgid "Destination stock item" msgstr "" -#: build/serializers.py:91 +#: build/serializers.py:108 msgid "Build Level" msgstr "" -#: build/serializers.py:99 build/serializers.py:1190 build/serializers.py:1279 -#: part/admin.py:41 part/admin.py:408 part/models.py:4102 part/stocktake.py:219 -#: stock/admin.py:156 +#: build/serializers.py:116 build/serializers.py:1235 build/serializers.py:1331 +#: part/admin.py:41 part/admin.py:408 part/models.py:4160 part/stocktake.py:219 +#: stock/admin.py:157 msgid "Part Name" msgstr "" -#: build/serializers.py:111 +#: build/serializers.py:128 msgid "Project Code Label" msgstr "" -#: build/serializers.py:172 build/serializers.py:924 -#: templates/js/translated/build.js:1042 templates/js/translated/build.js:1495 +#: build/serializers.py:134 +msgid "Create Child Builds" +msgstr "" + +#: build/serializers.py:135 +msgid "Automatically generate child build orders" +msgstr "" + +#: build/serializers.py:219 build/serializers.py:968 +#: templates/js/translated/build.js:1045 templates/js/translated/build.js:1498 msgid "Build Output" msgstr "" -#: build/serializers.py:184 +#: build/serializers.py:231 msgid "Build output does not match the parent build" msgstr "" -#: build/serializers.py:188 +#: build/serializers.py:235 msgid "Output part does not match BuildOrder part" msgstr "" -#: build/serializers.py:192 +#: build/serializers.py:239 msgid "This build output has already been completed" msgstr "" -#: build/serializers.py:203 +#: build/serializers.py:250 msgid "This build output is not fully allocated" msgstr "" -#: build/serializers.py:223 build/serializers.py:270 +#: build/serializers.py:270 build/serializers.py:317 msgid "Enter quantity for build output" msgstr "" -#: build/serializers.py:291 +#: build/serializers.py:338 msgid "Integer quantity required for trackable parts" msgstr "" -#: build/serializers.py:294 +#: build/serializers.py:341 msgid "Integer quantity required, as the bill of materials contains trackable parts" msgstr "" -#: build/serializers.py:309 order/serializers.py:678 order/serializers.py:1464 -#: stock/serializers.py:680 templates/js/translated/purchase_order.js:1154 +#: build/serializers.py:356 order/serializers.py:763 order/serializers.py:1590 +#: stock/serializers.py:707 templates/js/translated/purchase_order.js:1137 #: templates/js/translated/stock.js:373 templates/js/translated/stock.js:571 msgid "Serial Numbers" msgstr "מספרים סידוריים" -#: build/serializers.py:310 +#: build/serializers.py:357 msgid "Enter serial numbers for build outputs" msgstr "" -#: build/serializers.py:315 build/serializers.py:456 build/serializers.py:528 -#: order/serializers.py:654 order/serializers.py:778 order/serializers.py:1781 -#: part/serializers.py:1212 stock/serializers.py:102 stock/serializers.py:691 -#: stock/serializers.py:851 stock/serializers.py:977 stock/serializers.py:1425 -#: stock/serializers.py:1681 stock/templates/stock/item_base.html:394 +#: build/serializers.py:362 build/serializers.py:500 build/serializers.py:572 +#: order/serializers.py:739 order/serializers.py:880 order/serializers.py:1933 +#: part/serializers.py:1265 stock/serializers.py:103 stock/serializers.py:718 +#: stock/serializers.py:882 stock/serializers.py:1008 stock/serializers.py:1456 +#: stock/serializers.py:1712 stock/templates/stock/item_base.html:391 #: templates/js/translated/barcode.js:578 -#: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1032 -#: templates/js/translated/build.js:1174 templates/js/translated/build.js:2544 -#: templates/js/translated/purchase_order.js:1210 -#: templates/js/translated/purchase_order.js:1320 -#: templates/js/translated/sales_order.js:1547 -#: templates/js/translated/sales_order.js:1655 -#: templates/js/translated/sales_order.js:1663 -#: templates/js/translated/sales_order.js:1742 +#: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1035 +#: templates/js/translated/build.js:1177 templates/js/translated/build.js:2551 +#: templates/js/translated/purchase_order.js:1193 +#: templates/js/translated/purchase_order.js:1303 +#: templates/js/translated/sales_order.js:1513 +#: templates/js/translated/sales_order.js:1636 +#: templates/js/translated/sales_order.js:1644 +#: templates/js/translated/sales_order.js:1723 #: templates/js/translated/stock.js:684 templates/js/translated/stock.js:850 -#: templates/js/translated/stock.js:1067 templates/js/translated/stock.js:2286 -#: templates/js/translated/stock.js:2955 +#: templates/js/translated/stock.js:1067 templates/js/translated/stock.js:2287 +#: templates/js/translated/stock.js:2956 msgid "Location" msgstr "" -#: build/serializers.py:316 +#: build/serializers.py:363 msgid "Stock location for build output" msgstr "" -#: build/serializers.py:330 +#: build/serializers.py:377 msgid "Auto Allocate Serial Numbers" msgstr "" -#: build/serializers.py:331 +#: build/serializers.py:378 msgid "Automatically allocate required items with matching serial numbers" msgstr "" -#: build/serializers.py:346 -msgid "Serial numbers must be provided for trackable parts" -msgstr "" - -#: build/serializers.py:371 stock/api.py:1031 +#: build/serializers.py:415 order/serializers.py:858 stock/api.py:1017 +#: stock/models.py:1632 msgid "The following serial numbers already exist or are invalid" msgstr "" -#: build/serializers.py:418 build/serializers.py:480 build/serializers.py:569 +#: build/serializers.py:462 build/serializers.py:524 build/serializers.py:613 msgid "A list of build outputs must be provided" msgstr "" -#: build/serializers.py:457 +#: build/serializers.py:501 msgid "Stock location for scrapped outputs" msgstr "" -#: build/serializers.py:463 +#: build/serializers.py:507 msgid "Discard Allocations" msgstr "" -#: build/serializers.py:464 +#: build/serializers.py:508 msgid "Discard any stock allocations for scrapped outputs" msgstr "" -#: build/serializers.py:469 +#: build/serializers.py:513 msgid "Reason for scrapping build output(s)" msgstr "" -#: build/serializers.py:529 +#: build/serializers.py:573 msgid "Location for completed build outputs" msgstr "" -#: build/serializers.py:535 build/templates/build/build_base.html:159 -#: build/templates/build/detail.html:62 order/models.py:476 -#: order/models.py:1002 order/models.py:2159 order/serializers.py:686 -#: stock/admin.py:164 stock/serializers.py:1028 stock/serializers.py:1569 -#: stock/templates/stock/item_base.html:427 -#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2363 -#: templates/js/translated/purchase_order.js:1371 -#: templates/js/translated/purchase_order.js:1792 +#: build/serializers.py:579 build/templates/build/build_base.html:160 +#: build/templates/build/detail.html:62 order/models.py:488 +#: order/models.py:1029 order/models.py:2198 order/serializers.py:771 +#: stock/admin.py:165 stock/serializers.py:581 stock/serializers.py:1059 +#: stock/serializers.py:1600 stock/templates/stock/item_base.html:424 +#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2366 +#: templates/js/translated/purchase_order.js:1354 +#: templates/js/translated/purchase_order.js:1776 #: templates/js/translated/return_order.js:330 -#: templates/js/translated/sales_order.js:855 -#: templates/js/translated/stock.js:2261 templates/js/translated/stock.js:3079 -#: templates/js/translated/stock.js:3204 +#: templates/js/translated/sales_order.js:814 +#: templates/js/translated/stock.js:2262 templates/js/translated/stock.js:3080 +#: templates/js/translated/stock.js:3205 msgid "Status" msgstr "" -#: build/serializers.py:541 +#: build/serializers.py:585 msgid "Accept Incomplete Allocation" msgstr "" -#: build/serializers.py:542 +#: build/serializers.py:586 msgid "Complete outputs if stock has not been fully allocated" msgstr "" -#: build/serializers.py:654 +#: build/serializers.py:698 msgid "Consume Allocated Stock" msgstr "" -#: build/serializers.py:655 +#: build/serializers.py:699 msgid "Consume any stock which has already been allocated to this build" msgstr "" -#: build/serializers.py:661 +#: build/serializers.py:705 msgid "Remove Incomplete Outputs" msgstr "" -#: build/serializers.py:662 +#: build/serializers.py:706 msgid "Delete any build outputs which have not been completed" msgstr "" -#: build/serializers.py:689 +#: build/serializers.py:733 msgid "Not permitted" msgstr "" -#: build/serializers.py:690 +#: build/serializers.py:734 msgid "Accept as consumed by this build order" msgstr "" -#: build/serializers.py:691 +#: build/serializers.py:735 msgid "Deallocate before completing this build order" msgstr "" -#: build/serializers.py:721 +#: build/serializers.py:765 msgid "Overallocated Stock" msgstr "" -#: build/serializers.py:723 +#: build/serializers.py:767 msgid "How do you want to handle extra stock items assigned to the build order" msgstr "" -#: build/serializers.py:733 +#: build/serializers.py:777 msgid "Some stock items have been overallocated" msgstr "" -#: build/serializers.py:738 +#: build/serializers.py:782 msgid "Accept Unallocated" msgstr "" -#: build/serializers.py:739 +#: build/serializers.py:783 msgid "Accept that stock items have not been fully allocated to this build order" msgstr "" -#: build/serializers.py:749 templates/js/translated/build.js:316 +#: build/serializers.py:793 templates/js/translated/build.js:319 msgid "Required stock has not been fully allocated" msgstr "" -#: build/serializers.py:754 order/serializers.py:345 order/serializers.py:1365 +#: build/serializers.py:798 order/serializers.py:430 order/serializers.py:1491 msgid "Accept Incomplete" msgstr "" -#: build/serializers.py:755 +#: build/serializers.py:799 msgid "Accept that the required number of build outputs have not been completed" msgstr "" -#: build/serializers.py:765 templates/js/translated/build.js:320 +#: build/serializers.py:809 templates/js/translated/build.js:323 msgid "Required build quantity has not been completed" msgstr "" -#: build/serializers.py:774 +#: build/serializers.py:818 msgid "Build order has open child build orders" msgstr "" -#: build/serializers.py:777 +#: build/serializers.py:821 msgid "Build order must be in production state" msgstr "" -#: build/serializers.py:780 templates/js/translated/build.js:304 +#: build/serializers.py:824 templates/js/translated/build.js:307 msgid "Build order has incomplete outputs" msgstr "" -#: build/serializers.py:818 +#: build/serializers.py:862 msgid "Build Line" msgstr "" -#: build/serializers.py:828 +#: build/serializers.py:872 msgid "Build output" msgstr "" -#: build/serializers.py:836 +#: build/serializers.py:880 msgid "Build output must point to the same build" msgstr "" -#: build/serializers.py:872 +#: build/serializers.py:916 msgid "Build Line Item" msgstr "" -#: build/serializers.py:886 +#: build/serializers.py:930 msgid "bom_item.part must point to the same part as the build order" msgstr "" -#: build/serializers.py:901 stock/serializers.py:1294 +#: build/serializers.py:945 stock/serializers.py:1325 msgid "Item must be in stock" msgstr "" -#: build/serializers.py:949 order/serializers.py:1351 +#: build/serializers.py:993 order/serializers.py:1477 #, python-brace-format msgid "Available quantity ({q}) exceeded" msgstr "" -#: build/serializers.py:955 +#: build/serializers.py:999 msgid "Build output must be specified for allocation of tracked parts" msgstr "" -#: build/serializers.py:962 +#: build/serializers.py:1006 msgid "Build output cannot be specified for allocation of untracked parts" msgstr "" -#: build/serializers.py:986 order/serializers.py:1610 +#: build/serializers.py:1030 order/serializers.py:1750 msgid "Allocation items must be provided" msgstr "" -#: build/serializers.py:1049 +#: build/serializers.py:1093 msgid "Stock location where parts are to be sourced (leave blank to take from any location)" msgstr "" -#: build/serializers.py:1057 +#: build/serializers.py:1101 msgid "Exclude Location" msgstr "" -#: build/serializers.py:1058 +#: build/serializers.py:1102 msgid "Exclude stock items from this selected location" msgstr "" -#: build/serializers.py:1063 +#: build/serializers.py:1107 msgid "Interchangeable Stock" msgstr "" -#: build/serializers.py:1064 +#: build/serializers.py:1108 msgid "Stock items in multiple locations can be used interchangeably" msgstr "" -#: build/serializers.py:1069 +#: build/serializers.py:1113 msgid "Substitute Stock" msgstr "" -#: build/serializers.py:1070 +#: build/serializers.py:1114 msgid "Allow allocation of substitute parts" msgstr "" -#: build/serializers.py:1075 +#: build/serializers.py:1119 msgid "Optional Items" msgstr "" -#: build/serializers.py:1076 +#: build/serializers.py:1120 msgid "Allocate optional BOM items to build order" msgstr "" -#: build/serializers.py:1098 +#: build/serializers.py:1143 msgid "Failed to start auto-allocation task" msgstr "" -#: build/serializers.py:1181 +#: build/serializers.py:1226 stock/serializers.py:585 msgid "Supplier Part Number" msgstr "" -#: build/serializers.py:1182 company/models.py:506 +#: build/serializers.py:1227 company/models.py:503 stock/serializers.py:591 msgid "Manufacturer Part Number" msgstr "" -#: build/serializers.py:1183 stock/admin.py:53 stock/admin.py:175 -#: stock/serializers.py:457 +#: build/serializers.py:1228 stock/admin.py:53 stock/admin.py:176 +#: stock/serializers.py:467 msgid "Location Name" msgstr "" -#: build/serializers.py:1184 +#: build/serializers.py:1229 build/serializers.py:1327 msgid "Build Reference" msgstr "" -#: build/serializers.py:1185 +#: build/serializers.py:1230 msgid "BOM Reference" msgstr "" -#: build/serializers.py:1186 company/models.py:852 -#: company/templates/company/supplier_part.html:160 order/serializers.py:690 -#: stock/admin.py:228 stock/models.py:818 stock/serializers.py:1579 -#: stock/templates/stock/item_base.html:240 -#: templates/js/translated/company.js:1646 -#: templates/js/translated/purchase_order.js:1169 -#: templates/js/translated/purchase_order.js:1332 +#: build/serializers.py:1231 company/models.py:849 +#: company/templates/company/supplier_part.html:161 order/serializers.py:775 +#: stock/admin.py:229 stock/models.py:895 stock/serializers.py:1610 +#: stock/templates/stock/item_base.html:237 +#: templates/js/translated/company.js:1647 +#: templates/js/translated/purchase_order.js:1152 +#: templates/js/translated/purchase_order.js:1315 #: templates/js/translated/stock.js:1214 templates/js/translated/stock.js:1246 -#: templates/js/translated/stock.js:2509 +#: templates/js/translated/stock.js:2510 msgid "Packaging" msgstr "" -#: build/serializers.py:1189 part/admin.py:39 part/admin.py:398 -#: part/models.py:4101 part/stocktake.py:218 stock/admin.py:152 +#: build/serializers.py:1234 part/admin.py:39 part/admin.py:398 +#: part/models.py:4159 part/stocktake.py:218 stock/admin.py:153 msgid "Part ID" msgstr "" -#: build/serializers.py:1191 build/serializers.py:1280 part/admin.py:402 -#: part/models.py:4103 +#: build/serializers.py:1236 build/serializers.py:1332 part/admin.py:402 +#: part/models.py:4161 msgid "Part IPN" msgstr "" -#: build/serializers.py:1192 build/serializers.py:1282 part/admin.py:45 +#: build/serializers.py:1237 build/serializers.py:1334 part/admin.py:45 #: part/stocktake.py:220 msgid "Part Description" msgstr "" -#: build/serializers.py:1195 +#: build/serializers.py:1240 msgid "BOM Part ID" msgstr "" -#: build/serializers.py:1196 +#: build/serializers.py:1241 msgid "BOM Part Name" msgstr "" -#: build/serializers.py:1199 +#: build/serializers.py:1244 #: report/templates/report/inventree_return_order_report.html:25 -#: report/templates/report/inventree_test_report.html:88 stock/models.py:845 -#: stock/serializers.py:151 stock/templates/stock/item_base.html:311 -#: templates/js/translated/build.js:520 templates/js/translated/build.js:1540 -#: templates/js/translated/build.js:2527 -#: templates/js/translated/model_renderers.js:231 +#: report/templates/report/inventree_sales_order_shipment_report.html:45 +#: report/templates/report/inventree_test_report.html:88 stock/models.py:922 +#: stock/serializers.py:152 stock/templates/stock/item_base.html:308 +#: templates/js/translated/build.js:523 templates/js/translated/build.js:1543 +#: templates/js/translated/build.js:2534 +#: templates/js/translated/model_renderers.js:234 #: templates/js/translated/return_order.js:539 #: templates/js/translated/return_order.js:722 -#: templates/js/translated/sales_order.js:315 -#: templates/js/translated/sales_order.js:1647 -#: templates/js/translated/sales_order.js:1732 +#: templates/js/translated/sales_order.js:1628 +#: templates/js/translated/sales_order.js:1713 #: templates/js/translated/stock.js:602 msgid "Serial Number" msgstr "" -#: build/serializers.py:1212 stock/serializers.py:593 -#: templates/js/translated/build.js:1017 templates/js/translated/build.js:1164 -#: templates/js/translated/build.js:2516 +#: build/serializers.py:1257 stock/serializers.py:620 +#: templates/js/translated/build.js:1020 templates/js/translated/build.js:1167 +#: templates/js/translated/build.js:2523 msgid "Allocated Quantity" msgstr "" -#: build/serializers.py:1213 stock/templates/stock/item_base.html:340 +#: build/serializers.py:1258 stock/templates/stock/item_base.html:337 msgid "Available Quantity" msgstr "" -#: build/serializers.py:1283 +#: build/serializers.py:1335 msgid "Part Category ID" msgstr "" -#: build/serializers.py:1284 +#: build/serializers.py:1336 msgid "Part Category Name" msgstr "" -#: build/serializers.py:1291 common/models.py:1513 part/admin.py:113 -#: part/models.py:1166 templates/js/translated/table_filters.js:150 +#: build/serializers.py:1345 common/models.py:1582 part/admin.py:113 +#: part/models.py:1227 templates/js/translated/build.js:2738 +#: templates/js/translated/table_filters.js:150 #: templates/js/translated/table_filters.js:230 #: templates/js/translated/table_filters.js:783 msgid "Trackable" msgstr "" -#: build/serializers.py:1292 +#: build/serializers.py:1346 msgid "Inherited" msgstr "" -#: build/serializers.py:1293 part/models.py:4313 +#: build/serializers.py:1347 part/models.py:4370 #: part/templates/part/upload_bom.html:56 templates/js/translated/bom.js:1046 -#: templates/js/translated/build.js:2711 +#: templates/js/translated/build.js:2720 msgid "Allow Variants" msgstr "" -#: build/serializers.py:1297 part/models.py:4110 part/models.py:4584 +#: build/serializers.py:1351 part/models.py:4168 part/models.py:4646 #: stock/api.py:794 msgid "BOM Item" msgstr "" -#: build/serializers.py:1306 build/templates/build/detail.html:236 +#: build/serializers.py:1370 build/templates/build/detail.html:236 #: build/templates/build/sidebar.html:16 templates/js/translated/index.js:130 msgid "Allocated Stock" msgstr "" -#: build/serializers.py:1311 order/serializers.py:1175 part/admin.py:132 -#: part/bom.py:181 part/serializers.py:899 part/serializers.py:1602 -#: part/templates/part/part_base.html:210 templates/js/translated/bom.js:1208 -#: templates/js/translated/build.js:2804 templates/js/translated/part.js:712 +#: build/serializers.py:1375 order/serializers.py:1209 part/admin.py:132 +#: part/bom.py:186 part/serializers.py:951 part/serializers.py:1660 +#: part/templates/part/part_base.html:211 templates/js/translated/bom.js:1208 +#: templates/js/translated/build.js:2822 templates/js/translated/part.js:712 #: templates/js/translated/part.js:2155 #: templates/js/translated/table_filters.js:177 msgid "On Order" msgstr "" -#: build/serializers.py:1316 order/serializers.py:1176 part/serializers.py:1604 -#: templates/js/translated/build.js:2808 +#: build/serializers.py:1380 order/serializers.py:1210 part/serializers.py:1662 +#: templates/js/translated/build.js:2826 #: templates/js/translated/table_filters.js:367 msgid "In Production" msgstr "" -#: build/serializers.py:1321 part/bom.py:180 part/serializers.py:1629 -#: part/templates/part/part_base.html:192 -#: templates/js/translated/sales_order.js:1929 -msgid "Available Stock" -msgstr "" - -#: build/serializers.py:1325 -msgid "Available Substitute Stock" -msgstr "" - -#: build/serializers.py:1326 -msgid "Available Variant Stock" -msgstr "" - -#: build/serializers.py:1327 -msgid "Total Available Stock" -msgstr "" - -#: build/serializers.py:1328 part/serializers.py:906 +#: build/serializers.py:1384 part/serializers.py:958 msgid "External Stock" msgstr "" -#: build/status_codes.py:11 generic/states/tests.py:17 order/status_codes.py:12 -#: order/status_codes.py:42 order/status_codes.py:74 order/status_codes.py:98 +#: build/serializers.py:1385 part/bom.py:185 part/serializers.py:1687 +#: part/templates/part/part_base.html:193 +#: templates/js/translated/sales_order.js:1910 +msgid "Available Stock" +msgstr "" + +#: build/serializers.py:1386 +msgid "Available Substitute Stock" +msgstr "" + +#: build/serializers.py:1387 +msgid "Available Variant Stock" +msgstr "" + +#: build/status_codes.py:11 generic/states/tests.py:21 +#: generic/states/tests.py:131 order/status_codes.py:12 +#: order/status_codes.py:44 order/status_codes.py:76 order/status_codes.py:102 #: templates/js/translated/table_filters.js:601 msgid "Pending" msgstr "בהמתנה" @@ -1722,21 +1750,21 @@ msgstr "בהמתנה" msgid "Production" msgstr "ייצור" -#: build/status_codes.py:13 order/status_codes.py:14 order/status_codes.py:49 -#: order/status_codes.py:79 +#: build/status_codes.py:13 order/status_codes.py:14 order/status_codes.py:51 +#: order/status_codes.py:81 msgid "On Hold" msgstr "" -#: build/status_codes.py:14 order/status_codes.py:16 order/status_codes.py:51 -#: order/status_codes.py:82 +#: build/status_codes.py:14 order/status_codes.py:16 order/status_codes.py:53 +#: order/status_codes.py:84 msgid "Cancelled" msgstr "מבוטל" -#: build/status_codes.py:15 generic/states/tests.py:19 importer/models.py:509 -#: importer/status_codes.py:19 order/status_codes.py:15 -#: order/status_codes.py:50 order/status_codes.py:81 -#: order/templates/order/order_base.html:163 -#: order/templates/order/sales_order_base.html:168 report/models.py:443 +#: build/status_codes.py:15 generic/states/tests.py:23 importer/models.py:518 +#: importer/status_codes.py:27 order/status_codes.py:15 +#: order/status_codes.py:52 order/status_codes.py:83 +#: order/templates/order/order_base.html:172 +#: order/templates/order/sales_order_base.html:169 report/models.py:451 msgid "Complete" msgstr "הושלם" @@ -1744,165 +1772,162 @@ msgstr "הושלם" msgid "Stock required for build order" msgstr "" -#: build/tasks.py:201 +#: build/tasks.py:260 msgid "Overdue Build Order" msgstr "" -#: build/tasks.py:206 +#: build/tasks.py:265 #, python-brace-format msgid "Build order {bo} is now overdue" msgstr "" -#: build/templates/build/build_base.html:18 +#: build/templates/build/build_base.html:19 msgid "Part thumbnail" msgstr "" -#: build/templates/build/build_base.html:38 -#: company/templates/company/supplier_part.html:35 -#: order/templates/order/order_base.html:29 -#: order/templates/order/return_order_base.html:38 -#: order/templates/order/sales_order_base.html:38 -#: part/templates/part/part_base.html:41 -#: stock/templates/stock/item_base.html:40 -#: stock/templates/stock/location.html:52 +#: build/templates/build/build_base.html:39 +#: company/templates/company/supplier_part.html:36 +#: order/templates/order/order_base.html:30 +#: order/templates/order/return_order_base.html:39 +#: order/templates/order/sales_order_base.html:39 +#: part/templates/part/part_base.html:42 +#: stock/templates/stock/item_base.html:41 +#: stock/templates/stock/location.html:53 #: templates/js/translated/filters.js:338 msgid "Barcode actions" msgstr "" -#: build/templates/build/build_base.html:42 -#: company/templates/company/supplier_part.html:39 -#: order/templates/order/order_base.html:33 -#: order/templates/order/return_order_base.html:42 -#: order/templates/order/sales_order_base.html:42 -#: part/templates/part/part_base.html:44 -#: stock/templates/stock/item_base.html:44 -#: stock/templates/stock/location.html:54 templates/qr_button.html:1 +#: build/templates/build/build_base.html:43 +#: company/templates/company/supplier_part.html:40 +#: order/templates/order/order_base.html:34 +#: order/templates/order/return_order_base.html:43 +#: order/templates/order/sales_order_base.html:43 +#: part/templates/part/part_base.html:45 +#: stock/templates/stock/item_base.html:45 +#: stock/templates/stock/location.html:55 templates/qr_button.html:1 msgid "Show QR Code" msgstr "" -#: build/templates/build/build_base.html:45 -#: company/templates/company/supplier_part.html:41 -#: order/templates/order/order_base.html:36 -#: order/templates/order/return_order_base.html:45 -#: order/templates/order/sales_order_base.html:45 -#: part/templates/part/part_base.html:47 -#: stock/templates/stock/item_base.html:47 -#: stock/templates/stock/location.html:56 +#: build/templates/build/build_base.html:46 +#: company/templates/company/supplier_part.html:42 +#: order/templates/order/order_base.html:37 +#: order/templates/order/return_order_base.html:46 +#: order/templates/order/sales_order_base.html:46 +#: part/templates/part/part_base.html:48 +#: stock/templates/stock/item_base.html:48 +#: stock/templates/stock/location.html:57 #: templates/js/translated/barcode.js:527 #: templates/js/translated/barcode.js:532 msgid "Unlink Barcode" msgstr "" -#: build/templates/build/build_base.html:47 -#: company/templates/company/supplier_part.html:43 -#: order/templates/order/order_base.html:38 -#: order/templates/order/return_order_base.html:47 -#: order/templates/order/sales_order_base.html:47 -#: part/templates/part/part_base.html:49 -#: stock/templates/stock/item_base.html:49 -#: stock/templates/stock/location.html:58 +#: build/templates/build/build_base.html:48 +#: company/templates/company/supplier_part.html:44 +#: order/templates/order/order_base.html:39 +#: order/templates/order/return_order_base.html:48 +#: order/templates/order/sales_order_base.html:48 +#: part/templates/part/part_base.html:50 +#: stock/templates/stock/item_base.html:50 +#: stock/templates/stock/location.html:59 msgid "Link Barcode" msgstr "" -#: build/templates/build/build_base.html:56 -#: order/templates/order/order_base.html:46 -#: order/templates/order/return_order_base.html:55 -#: order/templates/order/sales_order_base.html:55 +#: build/templates/build/build_base.html:57 +#: order/templates/order/order_base.html:47 +#: order/templates/order/return_order_base.html:56 +#: order/templates/order/sales_order_base.html:56 msgid "Print actions" msgstr "" -#: build/templates/build/build_base.html:60 +#: build/templates/build/build_base.html:61 msgid "Print build order report" msgstr "" -#: build/templates/build/build_base.html:67 +#: build/templates/build/build_base.html:68 msgid "Build actions" msgstr "" -#: build/templates/build/build_base.html:71 +#: build/templates/build/build_base.html:72 msgid "Edit Build" msgstr "" -#: build/templates/build/build_base.html:73 +#: build/templates/build/build_base.html:74 msgid "Duplicate Build" msgstr "" -#: build/templates/build/build_base.html:76 +#: build/templates/build/build_base.html:77 msgid "Hold Build" msgstr "" -#: build/templates/build/build_base.html:79 +#: build/templates/build/build_base.html:80 msgid "Cancel Build" msgstr "" -#: build/templates/build/build_base.html:82 +#: build/templates/build/build_base.html:83 msgid "Delete Build" msgstr "" -#: build/templates/build/build_base.html:87 -msgid "Isueue Build" -msgstr "" - #: build/templates/build/build_base.html:88 +#: build/templates/build/build_base.html:89 msgid "Issue Build" msgstr "" -#: build/templates/build/build_base.html:91 #: build/templates/build/build_base.html:92 +#: build/templates/build/build_base.html:93 msgid "Complete Build" msgstr "" -#: build/templates/build/build_base.html:115 +#: build/templates/build/build_base.html:116 msgid "Build Description" msgstr "" -#: build/templates/build/build_base.html:125 +#: build/templates/build/build_base.html:126 msgid "No build outputs have been created for this build order" msgstr "" -#: build/templates/build/build_base.html:132 +#: build/templates/build/build_base.html:133 msgid "Build Order is ready to mark as completed" msgstr "" -#: build/templates/build/build_base.html:137 +#: build/templates/build/build_base.html:138 msgid "Build Order cannot be completed as outstanding outputs remain" msgstr "" -#: build/templates/build/build_base.html:142 +#: build/templates/build/build_base.html:143 msgid "Required build quantity has not yet been completed" msgstr "" -#: build/templates/build/build_base.html:147 +#: build/templates/build/build_base.html:148 msgid "Stock has not been fully allocated to this Build Order" msgstr "" -#: build/templates/build/build_base.html:168 -#: build/templates/build/detail.html:138 order/models.py:308 -#: order/models.py:1391 order/serializers.py:174 -#: order/templates/order/order_base.html:191 -#: order/templates/order/return_order_base.html:167 -#: order/templates/order/sales_order_base.html:199 +#: build/templates/build/build_base.html:169 +#: build/templates/build/detail.html:138 order/models.py:315 +#: order/models.py:1408 order/serializers.py:254 +#: order/templates/order/order_base.html:200 +#: order/templates/order/return_order_base.html:168 +#: order/templates/order/sales_order_base.html:200 #: report/templates/report/inventree_build_order_report.html:125 -#: templates/js/translated/build.js:2411 templates/js/translated/part.js:1837 -#: templates/js/translated/purchase_order.js:1809 -#: templates/js/translated/purchase_order.js:2217 +#: templates/js/translated/build.js:2414 templates/js/translated/part.js:1837 +#: templates/js/translated/purchase_order.js:1793 +#: templates/js/translated/purchase_order.js:2201 #: templates/js/translated/return_order.js:346 #: templates/js/translated/return_order.js:749 -#: templates/js/translated/sales_order.js:871 -#: templates/js/translated/sales_order.js:1903 +#: templates/js/translated/sales_order.js:830 +#: templates/js/translated/sales_order.js:1884 msgid "Target Date" msgstr "" -#: build/templates/build/build_base.html:173 +#: build/templates/build/build_base.html:174 #, python-format msgid "This build was due on %(target)s" msgstr "" -#: build/templates/build/build_base.html:173 -#: build/templates/build/build_base.html:230 -#: order/templates/order/order_base.html:127 -#: order/templates/order/return_order_base.html:120 -#: order/templates/order/sales_order_base.html:129 +#: build/templates/build/build_base.html:174 +#: build/templates/build/build_base.html:231 +#: order/templates/order/order_base.html:128 +#: order/templates/order/return_order_base.html:121 +#: order/templates/order/sales_order_base.html:130 #: templates/js/translated/table_filters.js:97 #: templates/js/translated/table_filters.js:545 #: templates/js/translated/table_filters.js:629 @@ -1910,49 +1935,50 @@ msgstr "" msgid "Overdue" msgstr "" -#: build/templates/build/build_base.html:185 +#: build/templates/build/build_base.html:186 #: build/templates/build/detail.html:67 build/templates/build/sidebar.html:13 msgid "Completed Outputs" msgstr "" -#: build/templates/build/build_base.html:198 -#: build/templates/build/detail.html:101 order/api.py:1406 order/models.py:892 -#: order/models.py:1650 order/models.py:1765 order/models.py:1924 -#: order/templates/order/sales_order_base.html:9 -#: order/templates/order/sales_order_base.html:28 +#: build/templates/build/build_base.html:199 +#: build/templates/build/detail.html:101 order/api.py:1528 order/models.py:914 +#: order/models.py:1666 order/models.py:1794 order/models.py:1957 +#: order/templates/order/sales_order_base.html:10 +#: order/templates/order/sales_order_base.html:29 #: report/templates/report/inventree_build_order_report.html:135 #: report/templates/report/inventree_sales_order_report.html:14 -#: stock/templates/stock/item_base.html:369 +#: report/templates/report/inventree_sales_order_shipment_report.html:15 +#: stock/templates/stock/item_base.html:366 #: templates/email/overdue_sales_order.html:15 -#: templates/js/translated/pricing.js:929 -#: templates/js/translated/sales_order.js:805 -#: templates/js/translated/sales_order.js:1028 -#: templates/js/translated/stock.js:3008 +#: templates/js/translated/pricing.js:927 +#: templates/js/translated/sales_order.js:764 +#: templates/js/translated/sales_order.js:1001 +#: templates/js/translated/stock.js:3009 msgid "Sales Order" msgstr "" -#: build/templates/build/build_base.html:219 -#: build/templates/build/detail.html:94 templates/js/translated/build.js:2328 +#: build/templates/build/build_base.html:220 +#: build/templates/build/detail.html:94 templates/js/translated/build.js:2331 msgid "Priority" msgstr "" -#: build/templates/build/build_base.html:267 +#: build/templates/build/build_base.html:268 msgid "Issue Build Order" msgstr "" -#: build/templates/build/build_base.html:271 +#: build/templates/build/build_base.html:272 msgid "Issue this Build Order?" msgstr "" -#: build/templates/build/build_base.html:302 +#: build/templates/build/build_base.html:303 msgid "Delete Build Order" msgstr "" -#: build/templates/build/build_base.html:312 +#: build/templates/build/build_base.html:313 msgid "Build Order QR Code" msgstr "" -#: build/templates/build/build_base.html:324 +#: build/templates/build/build_base.html:325 msgid "Link Barcode to Build Order" msgstr "" @@ -1968,8 +1994,9 @@ msgstr "" msgid "Stock can be taken from any available location." msgstr "" -#: build/templates/build/detail.html:49 order/models.py:1532 -#: templates/js/translated/purchase_order.js:2259 +#: build/templates/build/detail.html:49 order/models.py:548 +#: order/models.py:1548 order/templates/order/order_base.html:135 +#: templates/js/translated/purchase_order.js:2243 msgid "Destination" msgstr "" @@ -1981,23 +2008,24 @@ msgstr "" msgid "Allocated Parts" msgstr "" -#: build/templates/build/detail.html:80 stock/admin.py:162 -#: stock/templates/stock/item_base.html:162 -#: templates/js/translated/build.js:1553 -#: templates/js/translated/model_renderers.js:242 -#: templates/js/translated/purchase_order.js:1326 +#: build/templates/build/detail.html:80 +#: report/templates/report/inventree_sales_order_shipment_report.html:47 +#: stock/admin.py:163 stock/templates/stock/item_base.html:159 +#: templates/js/translated/build.js:1556 +#: templates/js/translated/model_renderers.js:245 +#: templates/js/translated/purchase_order.js:1309 #: templates/js/translated/stock.js:1139 templates/js/translated/stock.js:1240 -#: templates/js/translated/stock.js:2275 templates/js/translated/stock.js:3211 +#: templates/js/translated/stock.js:2276 templates/js/translated/stock.js:3212 #: templates/js/translated/table_filters.js:320 #: templates/js/translated/table_filters.js:411 msgid "Batch" msgstr "" #: build/templates/build/detail.html:133 -#: order/templates/order/order_base.html:178 -#: order/templates/order/return_order_base.html:154 -#: order/templates/order/sales_order_base.html:193 -#: templates/js/translated/build.js:2371 +#: order/templates/order/order_base.html:187 +#: order/templates/order/return_order_base.html:155 +#: order/templates/order/sales_order_base.html:194 +#: templates/js/translated/build.js:2374 msgid "Created" msgstr "" @@ -2005,8 +2033,8 @@ msgstr "" msgid "No target date set" msgstr "" -#: build/templates/build/detail.html:149 -#: order/templates/order/sales_order_base.html:209 +#: build/templates/build/detail.html:149 order/api.py:794 +#: order/templates/order/sales_order_base.html:210 #: templates/js/translated/table_filters.js:692 msgid "Completed" msgstr "" @@ -2052,7 +2080,7 @@ msgid "Order required parts" msgstr "" #: build/templates/build/detail.html:192 -#: templates/js/translated/purchase_order.js:795 +#: templates/js/translated/purchase_order.js:778 msgid "Order Parts" msgstr "" @@ -2120,7 +2148,7 @@ msgstr "" msgid "Build Order Details" msgstr "" -#: build/templates/build/sidebar.html:8 order/serializers.py:82 +#: build/templates/build/sidebar.html:8 order/serializers.py:113 #: order/templates/order/po_sidebar.html:5 #: order/templates/order/return_order_detail.html:18 #: order/templates/order/so_sidebar.html:5 @@ -2139,43 +2167,38 @@ msgstr "" msgid "Test Statistics" msgstr "" -#: common/api.py:693 +#: common/api.py:725 msgid "Is Link" msgstr "" -#: common/api.py:701 +#: common/api.py:733 msgid "Is File" msgstr "" -#: common/api.py:744 +#: common/api.py:776 msgid "User does not have permission to delete these attachments" msgstr "" -#: common/api.py:761 +#: common/api.py:793 msgid "User does not have permission to delete this attachment" msgstr "" -#: common/currency.py:132 +#: common/currency.py:134 msgid "Invalid currency code" msgstr "" -#: common/currency.py:134 +#: common/currency.py:136 msgid "Duplicate currency code" msgstr "" -#: common/currency.py:139 +#: common/currency.py:141 msgid "No valid currency codes provided" msgstr "" -#: common/currency.py:156 +#: common/currency.py:158 msgid "No plugin" msgstr "" -#: common/files.py:63 -#, python-brace-format -msgid "Unsupported file format: {fmt}" -msgstr "" - #: common/files.py:65 msgid "Error reading file (invalid encoding)" msgstr "" @@ -2192,1883 +2215,2039 @@ msgstr "" msgid "Error reading file (data could be corrupted)" msgstr "" -#: common/forms.py:12 +#: common/forms.py:12 common/forms.py:25 msgid "File" msgstr "" -#: common/forms.py:12 +#: common/forms.py:12 common/forms.py:26 msgid "Select file to upload" msgstr "" -#: common/forms.py:25 -msgid "{name.title()} File" -msgstr "" - -#: common/forms.py:26 -#, python-brace-format -msgid "Select {name} file to upload" -msgstr "" - -#: common/models.py:86 +#: common/models.py:89 msgid "Updated" msgstr "" -#: common/models.py:87 +#: common/models.py:90 msgid "Timestamp of last update" msgstr "" -#: common/models.py:120 +#: common/models.py:123 msgid "Site URL is locked by configuration" msgstr "" -#: common/models.py:150 +#: common/models.py:153 msgid "Unique project code" msgstr "" -#: common/models.py:157 +#: common/models.py:160 msgid "Project description" msgstr "" -#: common/models.py:166 +#: common/models.py:169 msgid "User or group responsible for this project" msgstr "" -#: common/models.py:783 -msgid "Settings key (must be unique - case insensitive)" +#: common/models.py:783 common/models.py:2236 common/models.py:2613 +msgid "Settings key" msgstr "" #: common/models.py:787 msgid "Settings value" msgstr "" -#: common/models.py:839 +#: common/models.py:842 msgid "Chosen value is not a valid option" msgstr "" -#: common/models.py:855 +#: common/models.py:858 msgid "Value must be a boolean value" msgstr "" -#: common/models.py:863 +#: common/models.py:866 msgid "Value must be an integer value" msgstr "" -#: common/models.py:900 +#: common/models.py:874 +msgid "Value must be a valid number" +msgstr "" + +#: common/models.py:899 +msgid "Value does not pass validation checks" +msgstr "" + +#: common/models.py:921 msgid "Key string must be unique" msgstr "" -#: common/models.py:1132 +#: common/models.py:1189 msgid "No group" msgstr "" -#: common/models.py:1231 +#: common/models.py:1288 msgid "Restart required" msgstr "" -#: common/models.py:1233 +#: common/models.py:1290 msgid "A setting has been changed which requires a server restart" msgstr "" -#: common/models.py:1240 +#: common/models.py:1297 msgid "Pending migrations" msgstr "" -#: common/models.py:1241 +#: common/models.py:1298 msgid "Number of pending database migrations" msgstr "" -#: common/models.py:1246 +#: common/models.py:1303 msgid "Server Instance Name" msgstr "" -#: common/models.py:1248 +#: common/models.py:1305 msgid "String descriptor for the server instance" msgstr "" -#: common/models.py:1252 +#: common/models.py:1309 msgid "Use instance name" msgstr "" -#: common/models.py:1253 +#: common/models.py:1310 msgid "Use the instance name in the title-bar" msgstr "" -#: common/models.py:1258 +#: common/models.py:1315 msgid "Restrict showing `about`" msgstr "" -#: common/models.py:1259 +#: common/models.py:1316 msgid "Show the `about` modal only to superusers" msgstr "" -#: common/models.py:1264 company/models.py:111 company/models.py:112 +#: common/models.py:1321 company/models.py:108 company/models.py:109 msgid "Company name" msgstr "" -#: common/models.py:1265 +#: common/models.py:1322 msgid "Internal company name" msgstr "" -#: common/models.py:1269 +#: common/models.py:1326 msgid "Base URL" msgstr "" -#: common/models.py:1270 +#: common/models.py:1327 msgid "Base URL for server instance" msgstr "" -#: common/models.py:1276 +#: common/models.py:1333 msgid "Default Currency" msgstr "" -#: common/models.py:1277 +#: common/models.py:1334 msgid "Select base currency for pricing calculations" msgstr "" -#: common/models.py:1283 +#: common/models.py:1340 msgid "Supported Currencies" msgstr "" -#: common/models.py:1284 +#: common/models.py:1341 msgid "List of supported currency codes" msgstr "" -#: common/models.py:1290 +#: common/models.py:1347 msgid "Currency Update Interval" msgstr "" -#: common/models.py:1292 +#: common/models.py:1349 msgid "How often to update exchange rates (set to zero to disable)" msgstr "" -#: common/models.py:1295 common/models.py:1351 common/models.py:1364 -#: common/models.py:1372 common/models.py:1381 common/models.py:1390 -#: common/models.py:1627 common/models.py:1649 common/models.py:1764 -#: common/models.py:2146 +#: common/models.py:1352 common/models.py:1408 common/models.py:1421 +#: common/models.py:1429 common/models.py:1438 common/models.py:1447 +#: common/models.py:1696 common/models.py:1718 common/models.py:1819 +#: common/models.py:2208 msgid "days" msgstr "" -#: common/models.py:1299 +#: common/models.py:1356 msgid "Currency Update Plugin" msgstr "" -#: common/models.py:1300 +#: common/models.py:1357 msgid "Currency update plugin to use" msgstr "" -#: common/models.py:1305 +#: common/models.py:1362 msgid "Download from URL" msgstr "" -#: common/models.py:1307 +#: common/models.py:1364 msgid "Allow download of remote images and files from external URL" msgstr "" -#: common/models.py:1313 +#: common/models.py:1370 msgid "Download Size Limit" msgstr "" -#: common/models.py:1314 +#: common/models.py:1371 msgid "Maximum allowable download size for remote image" msgstr "" -#: common/models.py:1320 +#: common/models.py:1377 msgid "User-agent used to download from URL" msgstr "" -#: common/models.py:1322 +#: common/models.py:1379 msgid "Allow to override the user-agent used to download images and files from external URL (leave blank for the default)" msgstr "" -#: common/models.py:1327 +#: common/models.py:1384 msgid "Strict URL Validation" msgstr "" -#: common/models.py:1328 +#: common/models.py:1385 msgid "Require schema specification when validating URLs" msgstr "" -#: common/models.py:1333 +#: common/models.py:1390 msgid "Require confirm" msgstr "" -#: common/models.py:1334 +#: common/models.py:1391 msgid "Require explicit user confirmation for certain action." msgstr "" -#: common/models.py:1339 +#: common/models.py:1396 msgid "Tree Depth" msgstr "" -#: common/models.py:1341 +#: common/models.py:1398 msgid "Default tree depth for treeview. Deeper levels can be lazy loaded as they are needed." msgstr "" -#: common/models.py:1347 +#: common/models.py:1404 msgid "Update Check Interval" msgstr "" -#: common/models.py:1348 +#: common/models.py:1405 msgid "How often to check for updates (set to zero to disable)" msgstr "" -#: common/models.py:1354 +#: common/models.py:1411 msgid "Automatic Backup" msgstr "" -#: common/models.py:1355 +#: common/models.py:1412 msgid "Enable automatic backup of database and media files" msgstr "" -#: common/models.py:1360 +#: common/models.py:1417 msgid "Auto Backup Interval" msgstr "" -#: common/models.py:1361 +#: common/models.py:1418 msgid "Specify number of days between automated backup events" msgstr "" -#: common/models.py:1367 +#: common/models.py:1424 msgid "Task Deletion Interval" msgstr "" -#: common/models.py:1369 +#: common/models.py:1426 msgid "Background task results will be deleted after specified number of days" msgstr "" -#: common/models.py:1376 +#: common/models.py:1433 msgid "Error Log Deletion Interval" msgstr "" -#: common/models.py:1378 +#: common/models.py:1435 msgid "Error logs will be deleted after specified number of days" msgstr "" -#: common/models.py:1385 +#: common/models.py:1442 msgid "Notification Deletion Interval" msgstr "" -#: common/models.py:1387 +#: common/models.py:1444 msgid "User notifications will be deleted after specified number of days" msgstr "" -#: common/models.py:1394 templates/InvenTree/settings/sidebar.html:31 +#: common/models.py:1451 templates/InvenTree/settings/sidebar.html:31 msgid "Barcode Support" msgstr "" -#: common/models.py:1395 +#: common/models.py:1452 msgid "Enable barcode scanner support in the web interface" msgstr "" -#: common/models.py:1400 +#: common/models.py:1457 +msgid "Store Barcode Results" +msgstr "" + +#: common/models.py:1458 +msgid "Store barcode scan results in the database" +msgstr "" + +#: common/models.py:1463 +msgid "Barcode Scans Maximum Count" +msgstr "" + +#: common/models.py:1464 +msgid "Maximum number of barcode scan results to store" +msgstr "" + +#: common/models.py:1469 msgid "Barcode Input Delay" msgstr "" -#: common/models.py:1401 +#: common/models.py:1470 msgid "Barcode input processing delay time" msgstr "" -#: common/models.py:1407 +#: common/models.py:1476 msgid "Barcode Webcam Support" msgstr "" -#: common/models.py:1408 +#: common/models.py:1477 msgid "Allow barcode scanning via webcam in browser" msgstr "" -#: common/models.py:1413 +#: common/models.py:1482 msgid "Barcode Show Data" msgstr "" -#: common/models.py:1414 +#: common/models.py:1483 msgid "Display barcode data in browser as text" msgstr "" -#: common/models.py:1419 +#: common/models.py:1488 msgid "Barcode Generation Plugin" msgstr "" -#: common/models.py:1420 +#: common/models.py:1489 msgid "Plugin to use for internal barcode data generation" msgstr "" -#: common/models.py:1425 +#: common/models.py:1494 msgid "Part Revisions" msgstr "" -#: common/models.py:1426 +#: common/models.py:1495 msgid "Enable revision field for Part" msgstr "" -#: common/models.py:1431 +#: common/models.py:1500 msgid "Assembly Revision Only" msgstr "" -#: common/models.py:1432 +#: common/models.py:1501 msgid "Only allow revisions for assembly parts" msgstr "" -#: common/models.py:1437 +#: common/models.py:1506 msgid "Allow Deletion from Assembly" msgstr "" -#: common/models.py:1438 +#: common/models.py:1507 msgid "Allow deletion of parts which are used in an assembly" msgstr "" -#: common/models.py:1443 +#: common/models.py:1512 msgid "IPN Regex" msgstr "" -#: common/models.py:1444 +#: common/models.py:1513 msgid "Regular expression pattern for matching Part IPN" msgstr "" -#: common/models.py:1447 +#: common/models.py:1516 msgid "Allow Duplicate IPN" msgstr "" -#: common/models.py:1448 +#: common/models.py:1517 msgid "Allow multiple parts to share the same IPN" msgstr "" -#: common/models.py:1453 +#: common/models.py:1522 msgid "Allow Editing IPN" msgstr "" -#: common/models.py:1454 +#: common/models.py:1523 msgid "Allow changing the IPN value while editing a part" msgstr "" -#: common/models.py:1459 +#: common/models.py:1528 msgid "Copy Part BOM Data" msgstr "" -#: common/models.py:1460 +#: common/models.py:1529 msgid "Copy BOM data by default when duplicating a part" msgstr "" -#: common/models.py:1465 +#: common/models.py:1534 msgid "Copy Part Parameter Data" msgstr "" -#: common/models.py:1466 +#: common/models.py:1535 msgid "Copy parameter data by default when duplicating a part" msgstr "" -#: common/models.py:1471 +#: common/models.py:1540 msgid "Copy Part Test Data" msgstr "" -#: common/models.py:1472 +#: common/models.py:1541 msgid "Copy test data by default when duplicating a part" msgstr "" -#: common/models.py:1477 +#: common/models.py:1546 msgid "Copy Category Parameter Templates" msgstr "" -#: common/models.py:1478 +#: common/models.py:1547 msgid "Copy category parameter templates when creating a part" msgstr "" -#: common/models.py:1483 part/admin.py:108 part/models.py:3945 -#: report/models.py:293 report/models.py:360 report/serializers.py:90 -#: report/serializers.py:131 stock/serializers.py:232 +#: common/models.py:1552 part/admin.py:108 part/models.py:4003 +#: report/models.py:301 report/models.py:368 report/serializers.py:91 +#: report/serializers.py:132 stock/serializers.py:233 #: templates/js/translated/table_filters.js:138 #: templates/js/translated/table_filters.js:775 msgid "Template" msgstr "" -#: common/models.py:1484 +#: common/models.py:1553 msgid "Parts are templates by default" msgstr "" -#: common/models.py:1490 +#: common/models.py:1559 msgid "Parts can be assembled from other components by default" msgstr "" -#: common/models.py:1495 part/admin.py:95 part/models.py:1160 -#: part/serializers.py:1596 templates/js/translated/table_filters.js:737 +#: common/models.py:1564 part/admin.py:95 part/models.py:1221 +#: part/serializers.py:1654 templates/js/translated/table_filters.js:737 msgid "Component" msgstr "" -#: common/models.py:1496 +#: common/models.py:1565 msgid "Parts can be used as sub-components by default" msgstr "" -#: common/models.py:1501 part/admin.py:100 part/models.py:1178 +#: common/models.py:1570 part/admin.py:100 part/models.py:1239 msgid "Purchaseable" msgstr "" -#: common/models.py:1502 +#: common/models.py:1571 msgid "Parts are purchaseable by default" msgstr "" -#: common/models.py:1507 part/admin.py:104 part/models.py:1184 +#: common/models.py:1576 part/admin.py:104 part/models.py:1245 #: templates/js/translated/table_filters.js:763 msgid "Salable" msgstr "" -#: common/models.py:1508 +#: common/models.py:1577 msgid "Parts are salable by default" msgstr "" -#: common/models.py:1514 +#: common/models.py:1583 msgid "Parts are trackable by default" msgstr "" -#: common/models.py:1519 part/admin.py:117 part/models.py:1200 -#: part/templates/part/part_base.html:154 +#: common/models.py:1588 part/admin.py:117 part/models.py:1261 +#: part/templates/part/part_base.html:155 #: templates/js/translated/table_filters.js:142 #: templates/js/translated/table_filters.js:787 msgid "Virtual" msgstr "" -#: common/models.py:1520 +#: common/models.py:1589 msgid "Parts are virtual by default" msgstr "" -#: common/models.py:1525 +#: common/models.py:1594 msgid "Show Import in Views" msgstr "" -#: common/models.py:1526 +#: common/models.py:1595 msgid "Display the import wizard in some part views" msgstr "" -#: common/models.py:1531 +#: common/models.py:1600 msgid "Show related parts" msgstr "" -#: common/models.py:1532 +#: common/models.py:1601 msgid "Display related parts for a part" msgstr "" -#: common/models.py:1537 +#: common/models.py:1606 msgid "Initial Stock Data" msgstr "" -#: common/models.py:1538 +#: common/models.py:1607 msgid "Allow creation of initial stock when adding a new part" msgstr "" -#: common/models.py:1543 templates/js/translated/part.js:108 +#: common/models.py:1612 templates/js/translated/part.js:108 msgid "Initial Supplier Data" msgstr "" -#: common/models.py:1545 +#: common/models.py:1614 msgid "Allow creation of initial supplier data when adding a new part" msgstr "" -#: common/models.py:1551 +#: common/models.py:1620 msgid "Part Name Display Format" msgstr "" -#: common/models.py:1552 +#: common/models.py:1621 msgid "Format to display the part name" msgstr "" -#: common/models.py:1558 +#: common/models.py:1627 msgid "Part Category Default Icon" msgstr "" -#: common/models.py:1559 +#: common/models.py:1628 msgid "Part category default icon (empty means no icon)" msgstr "" -#: common/models.py:1564 +#: common/models.py:1633 msgid "Enforce Parameter Units" msgstr "" -#: common/models.py:1566 +#: common/models.py:1635 msgid "If units are provided, parameter values must match the specified units" msgstr "" -#: common/models.py:1572 +#: common/models.py:1641 msgid "Minimum Pricing Decimal Places" msgstr "" -#: common/models.py:1574 +#: common/models.py:1643 msgid "Minimum number of decimal places to display when rendering pricing data" msgstr "" -#: common/models.py:1585 +#: common/models.py:1654 msgid "Maximum Pricing Decimal Places" msgstr "" -#: common/models.py:1587 +#: common/models.py:1656 msgid "Maximum number of decimal places to display when rendering pricing data" msgstr "" -#: common/models.py:1598 +#: common/models.py:1667 msgid "Use Supplier Pricing" msgstr "" -#: common/models.py:1600 +#: common/models.py:1669 msgid "Include supplier price breaks in overall pricing calculations" msgstr "" -#: common/models.py:1606 +#: common/models.py:1675 msgid "Purchase History Override" msgstr "" -#: common/models.py:1608 +#: common/models.py:1677 msgid "Historical purchase order pricing overrides supplier price breaks" msgstr "" -#: common/models.py:1614 +#: common/models.py:1683 msgid "Use Stock Item Pricing" msgstr "" -#: common/models.py:1616 +#: common/models.py:1685 msgid "Use pricing from manually entered stock data for pricing calculations" msgstr "" -#: common/models.py:1622 +#: common/models.py:1691 msgid "Stock Item Pricing Age" msgstr "" -#: common/models.py:1624 +#: common/models.py:1693 msgid "Exclude stock items older than this number of days from pricing calculations" msgstr "" -#: common/models.py:1631 +#: common/models.py:1700 msgid "Use Variant Pricing" msgstr "" -#: common/models.py:1632 +#: common/models.py:1701 msgid "Include variant pricing in overall pricing calculations" msgstr "" -#: common/models.py:1637 +#: common/models.py:1706 msgid "Active Variants Only" msgstr "" -#: common/models.py:1639 +#: common/models.py:1708 msgid "Only use active variant parts for calculating variant pricing" msgstr "" -#: common/models.py:1645 +#: common/models.py:1714 msgid "Pricing Rebuild Interval" msgstr "" -#: common/models.py:1647 +#: common/models.py:1716 msgid "Number of days before part pricing is automatically updated" msgstr "" -#: common/models.py:1654 +#: common/models.py:1723 msgid "Internal Prices" msgstr "" -#: common/models.py:1655 +#: common/models.py:1724 msgid "Enable internal prices for parts" msgstr "" -#: common/models.py:1660 +#: common/models.py:1729 msgid "Internal Price Override" msgstr "" -#: common/models.py:1662 +#: common/models.py:1731 msgid "If available, internal prices override price range calculations" msgstr "" -#: common/models.py:1668 +#: common/models.py:1737 msgid "Enable label printing" msgstr "" -#: common/models.py:1669 +#: common/models.py:1738 msgid "Enable label printing from the web interface" msgstr "" -#: common/models.py:1674 +#: common/models.py:1743 msgid "Label Image DPI" msgstr "" -#: common/models.py:1676 +#: common/models.py:1745 msgid "DPI resolution when generating image files to supply to label printing plugins" msgstr "" -#: common/models.py:1682 +#: common/models.py:1751 msgid "Enable Reports" msgstr "" -#: common/models.py:1683 +#: common/models.py:1752 msgid "Enable generation of reports" msgstr "" -#: common/models.py:1688 templates/stats.html:25 +#: common/models.py:1757 templates/stats.html:25 msgid "Debug Mode" msgstr "" -#: common/models.py:1689 +#: common/models.py:1758 msgid "Generate reports in debug mode (HTML output)" msgstr "" -#: common/models.py:1694 +#: common/models.py:1763 msgid "Log Report Errors" msgstr "" -#: common/models.py:1695 +#: common/models.py:1764 msgid "Log errors which occur when generating reports" msgstr "" -#: common/models.py:1700 plugin/builtin/labels/label_sheet.py:28 -#: report/models.py:301 +#: common/models.py:1769 plugin/builtin/labels/label_sheet.py:28 +#: report/models.py:309 msgid "Page Size" msgstr "" -#: common/models.py:1701 +#: common/models.py:1770 msgid "Default page size for PDF reports" msgstr "" -#: common/models.py:1706 -msgid "Enable Test Reports" -msgstr "" - -#: common/models.py:1707 -msgid "Enable generation of test reports" -msgstr "" - -#: common/models.py:1712 -msgid "Attach Test Reports" -msgstr "" - -#: common/models.py:1714 -msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item" -msgstr "" - -#: common/models.py:1720 +#: common/models.py:1775 msgid "Globally Unique Serials" msgstr "" -#: common/models.py:1721 +#: common/models.py:1776 msgid "Serial numbers for stock items must be globally unique" msgstr "" -#: common/models.py:1726 +#: common/models.py:1781 msgid "Autofill Serial Numbers" msgstr "" -#: common/models.py:1727 +#: common/models.py:1782 msgid "Autofill serial numbers in forms" msgstr "" -#: common/models.py:1732 +#: common/models.py:1787 msgid "Delete Depleted Stock" msgstr "" -#: common/models.py:1734 +#: common/models.py:1789 msgid "Determines default behavior when a stock item is depleted" msgstr "" -#: common/models.py:1740 +#: common/models.py:1795 msgid "Batch Code Template" msgstr "" -#: common/models.py:1742 +#: common/models.py:1797 msgid "Template for generating default batch codes for stock items" msgstr "" -#: common/models.py:1747 +#: common/models.py:1802 msgid "Stock Expiry" msgstr "" -#: common/models.py:1748 +#: common/models.py:1803 msgid "Enable stock expiry functionality" msgstr "" -#: common/models.py:1753 +#: common/models.py:1808 msgid "Sell Expired Stock" msgstr "" -#: common/models.py:1754 +#: common/models.py:1809 msgid "Allow sale of expired stock" msgstr "" -#: common/models.py:1759 +#: common/models.py:1814 msgid "Stock Stale Time" msgstr "" -#: common/models.py:1761 +#: common/models.py:1816 msgid "Number of days stock items are considered stale before expiring" msgstr "" -#: common/models.py:1768 +#: common/models.py:1823 msgid "Build Expired Stock" msgstr "" -#: common/models.py:1769 +#: common/models.py:1824 msgid "Allow building with expired stock" msgstr "" -#: common/models.py:1774 +#: common/models.py:1829 msgid "Stock Ownership Control" msgstr "" -#: common/models.py:1775 +#: common/models.py:1830 msgid "Enable ownership control over stock locations and items" msgstr "" -#: common/models.py:1780 +#: common/models.py:1835 msgid "Stock Location Default Icon" msgstr "" -#: common/models.py:1781 +#: common/models.py:1836 msgid "Stock location default icon (empty means no icon)" msgstr "" -#: common/models.py:1786 +#: common/models.py:1841 msgid "Show Installed Stock Items" msgstr "" -#: common/models.py:1787 +#: common/models.py:1842 msgid "Display installed stock items in stock tables" msgstr "" -#: common/models.py:1792 +#: common/models.py:1847 msgid "Check BOM when installing items" msgstr "" -#: common/models.py:1794 +#: common/models.py:1849 msgid "Installed stock items must exist in the BOM for the parent part" msgstr "" -#: common/models.py:1800 +#: common/models.py:1855 msgid "Allow Out of Stock Transfer" msgstr "" -#: common/models.py:1802 +#: common/models.py:1857 msgid "Allow stock items which are not in stock to be transferred between stock locations" msgstr "" -#: common/models.py:1808 +#: common/models.py:1863 msgid "Build Order Reference Pattern" msgstr "" -#: common/models.py:1810 +#: common/models.py:1865 msgid "Required pattern for generating Build Order reference field" msgstr "" -#: common/models.py:1816 common/models.py:1872 common/models.py:1894 -#: common/models.py:1930 +#: common/models.py:1871 common/models.py:1927 common/models.py:1949 +#: common/models.py:1985 msgid "Require Responsible Owner" msgstr "" -#: common/models.py:1817 common/models.py:1873 common/models.py:1895 -#: common/models.py:1931 +#: common/models.py:1872 common/models.py:1928 common/models.py:1950 +#: common/models.py:1986 msgid "A responsible owner must be assigned to each order" msgstr "" -#: common/models.py:1822 +#: common/models.py:1877 msgid "Require Active Part" msgstr "" -#: common/models.py:1823 +#: common/models.py:1878 msgid "Prevent build order creation for inactive parts" msgstr "" -#: common/models.py:1828 +#: common/models.py:1883 msgid "Require Locked Part" msgstr "" -#: common/models.py:1829 +#: common/models.py:1884 msgid "Prevent build order creation for unlocked parts" msgstr "" -#: common/models.py:1834 +#: common/models.py:1889 msgid "Require Valid BOM" msgstr "" -#: common/models.py:1836 +#: common/models.py:1891 msgid "Prevent build order creation unless BOM has been validated" msgstr "" -#: common/models.py:1842 +#: common/models.py:1897 msgid "Require Closed Child Orders" msgstr "" -#: common/models.py:1844 +#: common/models.py:1899 msgid "Prevent build order completion until all child orders are closed" msgstr "" -#: common/models.py:1850 +#: common/models.py:1905 msgid "Block Until Tests Pass" msgstr "" -#: common/models.py:1852 +#: common/models.py:1907 msgid "Prevent build outputs from being completed until all required tests pass" msgstr "" -#: common/models.py:1858 +#: common/models.py:1913 msgid "Enable Return Orders" msgstr "" -#: common/models.py:1859 +#: common/models.py:1914 msgid "Enable return order functionality in the user interface" msgstr "" -#: common/models.py:1864 +#: common/models.py:1919 msgid "Return Order Reference Pattern" msgstr "" -#: common/models.py:1866 +#: common/models.py:1921 msgid "Required pattern for generating Return Order reference field" msgstr "" -#: common/models.py:1878 +#: common/models.py:1933 msgid "Edit Completed Return Orders" msgstr "" -#: common/models.py:1880 +#: common/models.py:1935 msgid "Allow editing of return orders after they have been completed" msgstr "" -#: common/models.py:1886 +#: common/models.py:1941 msgid "Sales Order Reference Pattern" msgstr "" -#: common/models.py:1888 +#: common/models.py:1943 msgid "Required pattern for generating Sales Order reference field" msgstr "" -#: common/models.py:1900 +#: common/models.py:1955 msgid "Sales Order Default Shipment" msgstr "" -#: common/models.py:1901 +#: common/models.py:1956 msgid "Enable creation of default shipment with sales orders" msgstr "" -#: common/models.py:1906 +#: common/models.py:1961 msgid "Edit Completed Sales Orders" msgstr "" -#: common/models.py:1908 +#: common/models.py:1963 msgid "Allow editing of sales orders after they have been shipped or completed" msgstr "" -#: common/models.py:1914 +#: common/models.py:1969 msgid "Mark Shipped Orders as Complete" msgstr "" -#: common/models.py:1916 +#: common/models.py:1971 msgid "Sales orders marked as shipped will automatically be completed, bypassing the \"shipped\" status" msgstr "" -#: common/models.py:1922 +#: common/models.py:1977 msgid "Purchase Order Reference Pattern" msgstr "" -#: common/models.py:1924 +#: common/models.py:1979 msgid "Required pattern for generating Purchase Order reference field" msgstr "" -#: common/models.py:1936 +#: common/models.py:1991 msgid "Edit Completed Purchase Orders" msgstr "" -#: common/models.py:1938 +#: common/models.py:1993 msgid "Allow editing of purchase orders after they have been shipped or completed" msgstr "" -#: common/models.py:1944 +#: common/models.py:1999 msgid "Auto Complete Purchase Orders" msgstr "" -#: common/models.py:1946 +#: common/models.py:2001 msgid "Automatically mark purchase orders as complete when all line items are received" msgstr "" -#: common/models.py:1953 +#: common/models.py:2008 msgid "Enable password forgot" msgstr "" -#: common/models.py:1954 +#: common/models.py:2009 msgid "Enable password forgot function on the login pages" msgstr "" -#: common/models.py:1959 +#: common/models.py:2014 msgid "Enable registration" msgstr "" -#: common/models.py:1960 +#: common/models.py:2015 msgid "Enable self-registration for users on the login pages" msgstr "" -#: common/models.py:1965 +#: common/models.py:2020 msgid "Enable SSO" msgstr "" -#: common/models.py:1966 +#: common/models.py:2021 msgid "Enable SSO on the login pages" msgstr "" -#: common/models.py:1971 +#: common/models.py:2026 msgid "Enable SSO registration" msgstr "" -#: common/models.py:1973 +#: common/models.py:2028 msgid "Enable self-registration via SSO for users on the login pages" msgstr "" -#: common/models.py:1979 +#: common/models.py:2034 msgid "Enable SSO group sync" msgstr "" -#: common/models.py:1981 +#: common/models.py:2036 msgid "Enable synchronizing InvenTree groups with groups provided by the IdP" msgstr "" -#: common/models.py:1987 +#: common/models.py:2042 msgid "SSO group key" msgstr "" -#: common/models.py:1989 +#: common/models.py:2044 msgid "The name of the groups claim attribute provided by the IdP" msgstr "" -#: common/models.py:1995 +#: common/models.py:2050 msgid "SSO group map" msgstr "" -#: common/models.py:1997 +#: common/models.py:2052 msgid "A mapping from SSO groups to local InvenTree groups. If the local group does not exist, it will be created." msgstr "" -#: common/models.py:2003 +#: common/models.py:2058 msgid "Remove groups outside of SSO" msgstr "" -#: common/models.py:2005 +#: common/models.py:2060 msgid "Whether groups assigned to the user should be removed if they are not backend by the IdP. Disabling this setting might cause security issues" msgstr "" -#: common/models.py:2011 +#: common/models.py:2066 msgid "Email required" msgstr "" -#: common/models.py:2012 +#: common/models.py:2067 msgid "Require user to supply mail on signup" msgstr "" -#: common/models.py:2017 +#: common/models.py:2072 msgid "Auto-fill SSO users" msgstr "" -#: common/models.py:2019 +#: common/models.py:2074 msgid "Automatically fill out user-details from SSO account-data" msgstr "" -#: common/models.py:2025 +#: common/models.py:2080 msgid "Mail twice" msgstr "" -#: common/models.py:2026 +#: common/models.py:2081 msgid "On signup ask users twice for their mail" msgstr "" -#: common/models.py:2031 +#: common/models.py:2086 msgid "Password twice" msgstr "" -#: common/models.py:2032 +#: common/models.py:2087 msgid "On signup ask users twice for their password" msgstr "" -#: common/models.py:2037 +#: common/models.py:2092 msgid "Allowed domains" msgstr "" -#: common/models.py:2039 +#: common/models.py:2094 msgid "Restrict signup to certain domains (comma-separated, starting with @)" msgstr "" -#: common/models.py:2045 +#: common/models.py:2100 msgid "Group on signup" msgstr "" -#: common/models.py:2047 +#: common/models.py:2102 msgid "Group to which new users are assigned on registration. If SSO group sync is enabled, this group is only set if no group can be assigned from the IdP." msgstr "" -#: common/models.py:2053 +#: common/models.py:2108 msgid "Enforce MFA" msgstr "" -#: common/models.py:2054 +#: common/models.py:2109 msgid "Users must use multifactor security." msgstr "" -#: common/models.py:2059 +#: common/models.py:2114 msgid "Check plugins on startup" msgstr "" -#: common/models.py:2061 +#: common/models.py:2116 msgid "Check that all plugins are installed on startup - enable in container environments" msgstr "" -#: common/models.py:2069 +#: common/models.py:2124 msgid "Check for plugin updates" msgstr "" -#: common/models.py:2070 +#: common/models.py:2125 msgid "Enable periodic checks for updates to installed plugins" msgstr "" -#: common/models.py:2076 +#: common/models.py:2131 msgid "Enable URL integration" msgstr "" -#: common/models.py:2077 +#: common/models.py:2132 msgid "Enable plugins to add URL routes" msgstr "" -#: common/models.py:2083 +#: common/models.py:2138 msgid "Enable navigation integration" msgstr "" -#: common/models.py:2084 +#: common/models.py:2139 msgid "Enable plugins to integrate into navigation" msgstr "" -#: common/models.py:2090 +#: common/models.py:2145 msgid "Enable app integration" msgstr "" -#: common/models.py:2091 +#: common/models.py:2146 msgid "Enable plugins to add apps" msgstr "" -#: common/models.py:2097 +#: common/models.py:2152 msgid "Enable schedule integration" msgstr "" -#: common/models.py:2098 +#: common/models.py:2153 msgid "Enable plugins to run scheduled tasks" msgstr "" -#: common/models.py:2104 +#: common/models.py:2159 msgid "Enable event integration" msgstr "" -#: common/models.py:2105 +#: common/models.py:2160 msgid "Enable plugins to respond to internal events" msgstr "" -#: common/models.py:2111 +#: common/models.py:2166 +msgid "Enable interface integration" +msgstr "" + +#: common/models.py:2167 +msgid "Enable plugins to integrate into the user interface" +msgstr "" + +#: common/models.py:2173 msgid "Enable project codes" msgstr "" -#: common/models.py:2112 +#: common/models.py:2174 msgid "Enable project codes for tracking projects" msgstr "" -#: common/models.py:2117 +#: common/models.py:2179 msgid "Stocktake Functionality" msgstr "" -#: common/models.py:2119 +#: common/models.py:2181 msgid "Enable stocktake functionality for recording stock levels and calculating stock value" msgstr "" -#: common/models.py:2125 +#: common/models.py:2187 msgid "Exclude External Locations" msgstr "" -#: common/models.py:2127 +#: common/models.py:2189 msgid "Exclude stock items in external locations from stocktake calculations" msgstr "" -#: common/models.py:2133 +#: common/models.py:2195 msgid "Automatic Stocktake Period" msgstr "" -#: common/models.py:2135 +#: common/models.py:2197 msgid "Number of days between automatic stocktake recording (set to zero to disable)" msgstr "" -#: common/models.py:2141 +#: common/models.py:2203 msgid "Report Deletion Interval" msgstr "" -#: common/models.py:2143 +#: common/models.py:2205 msgid "Stocktake reports will be deleted after specified number of days" msgstr "" -#: common/models.py:2150 +#: common/models.py:2212 msgid "Display Users full names" msgstr "" -#: common/models.py:2151 +#: common/models.py:2213 msgid "Display Users full names instead of usernames" msgstr "" -#: common/models.py:2156 +#: common/models.py:2218 msgid "Enable Test Station Data" msgstr "" -#: common/models.py:2157 +#: common/models.py:2219 msgid "Enable test station data collection for test results" msgstr "" -#: common/models.py:2169 common/models.py:2549 -msgid "Settings key (must be unique - case insensitive" -msgstr "" - -#: common/models.py:2212 -msgid "Hide inactive parts" -msgstr "" - -#: common/models.py:2214 -msgid "Hide inactive parts in results displayed on the homepage" -msgstr "" - -#: common/models.py:2220 -msgid "Show subscribed parts" -msgstr "" - -#: common/models.py:2221 -msgid "Show subscribed parts on the homepage" +#: common/models.py:2224 +msgid "Create Template on Upload" msgstr "" #: common/models.py:2226 -msgid "Show subscribed categories" +msgid "Create a new test template when uploading test data which does not match an existing template" msgstr "" -#: common/models.py:2227 -msgid "Show subscribed part categories on the homepage" -msgstr "" - -#: common/models.py:2232 -msgid "Show latest parts" -msgstr "" - -#: common/models.py:2233 -msgid "Show latest parts on the homepage" -msgstr "" - -#: common/models.py:2238 -msgid "Show invalid BOMs" -msgstr "" - -#: common/models.py:2239 -msgid "Show BOMs that await validation on the homepage" -msgstr "" - -#: common/models.py:2244 -msgid "Show recent stock changes" -msgstr "" - -#: common/models.py:2245 -msgid "Show recently changed stock items on the homepage" -msgstr "" - -#: common/models.py:2250 -msgid "Show low stock" -msgstr "" - -#: common/models.py:2251 -msgid "Show low stock items on the homepage" -msgstr "" - -#: common/models.py:2256 -msgid "Show depleted stock" -msgstr "" - -#: common/models.py:2257 -msgid "Show depleted stock items on the homepage" -msgstr "" - -#: common/models.py:2262 -msgid "Show needed stock" -msgstr "" - -#: common/models.py:2263 -msgid "Show stock items needed for builds on the homepage" -msgstr "" - -#: common/models.py:2268 -msgid "Show expired stock" -msgstr "" - -#: common/models.py:2269 -msgid "Show expired stock items on the homepage" -msgstr "" - -#: common/models.py:2274 -msgid "Show stale stock" -msgstr "" - -#: common/models.py:2275 -msgid "Show stale stock items on the homepage" -msgstr "" - -#: common/models.py:2280 -msgid "Show pending builds" +#: common/models.py:2279 +msgid "Hide inactive parts" msgstr "" #: common/models.py:2281 -msgid "Show pending builds on the homepage" -msgstr "" - -#: common/models.py:2286 -msgid "Show overdue builds" +msgid "Hide inactive parts in results displayed on the homepage" msgstr "" #: common/models.py:2287 -msgid "Show overdue builds on the homepage" +msgid "Show subscribed parts" msgstr "" -#: common/models.py:2292 -msgid "Show outstanding POs" +#: common/models.py:2288 +msgid "Show subscribed parts on the homepage" msgstr "" #: common/models.py:2293 -msgid "Show outstanding POs on the homepage" +msgid "Show subscribed categories" msgstr "" -#: common/models.py:2298 -msgid "Show overdue POs" +#: common/models.py:2294 +msgid "Show subscribed part categories on the homepage" msgstr "" #: common/models.py:2299 -msgid "Show overdue POs on the homepage" +msgid "Show latest parts" msgstr "" -#: common/models.py:2304 -msgid "Show outstanding SOs" +#: common/models.py:2300 +msgid "Show latest parts on the homepage" msgstr "" #: common/models.py:2305 -msgid "Show outstanding SOs on the homepage" +msgid "Show invalid BOMs" msgstr "" -#: common/models.py:2310 -msgid "Show overdue SOs" +#: common/models.py:2306 +msgid "Show BOMs that await validation on the homepage" msgstr "" #: common/models.py:2311 -msgid "Show overdue SOs on the homepage" +msgid "Show recent stock changes" msgstr "" -#: common/models.py:2316 -msgid "Show pending SO shipments" +#: common/models.py:2312 +msgid "Show recently changed stock items on the homepage" msgstr "" #: common/models.py:2317 -msgid "Show pending SO shipments on the homepage" +msgid "Show low stock" msgstr "" -#: common/models.py:2322 -msgid "Show News" +#: common/models.py:2318 +msgid "Show low stock items on the homepage" msgstr "" #: common/models.py:2323 -msgid "Show news on the homepage" +msgid "Show depleted stock" msgstr "" -#: common/models.py:2328 -msgid "Inline label display" +#: common/models.py:2324 +msgid "Show depleted stock items on the homepage" +msgstr "" + +#: common/models.py:2329 +msgid "Show needed stock" msgstr "" #: common/models.py:2330 -msgid "Display PDF labels in the browser, instead of downloading as a file" +msgid "Show stock items needed for builds on the homepage" +msgstr "" + +#: common/models.py:2335 +msgid "Show expired stock" msgstr "" #: common/models.py:2336 -msgid "Default label printer" +msgid "Show expired stock items on the homepage" msgstr "" -#: common/models.py:2338 -msgid "Configure which label printer should be selected by default" +#: common/models.py:2341 +msgid "Show stale stock" msgstr "" -#: common/models.py:2344 -msgid "Inline report display" +#: common/models.py:2342 +msgid "Show stale stock items on the homepage" msgstr "" -#: common/models.py:2346 -msgid "Display PDF reports in the browser, instead of downloading as a file" +#: common/models.py:2347 +msgid "Show pending builds" msgstr "" -#: common/models.py:2352 -msgid "Search Parts" +#: common/models.py:2348 +msgid "Show pending builds on the homepage" msgstr "" #: common/models.py:2353 -msgid "Display parts in search preview window" +msgid "Show overdue builds" msgstr "" -#: common/models.py:2358 -msgid "Search Supplier Parts" +#: common/models.py:2354 +msgid "Show overdue builds on the homepage" msgstr "" #: common/models.py:2359 -msgid "Display supplier parts in search preview window" +msgid "Show outstanding POs" msgstr "" -#: common/models.py:2364 -msgid "Search Manufacturer Parts" +#: common/models.py:2360 +msgid "Show outstanding POs on the homepage" msgstr "" #: common/models.py:2365 -msgid "Display manufacturer parts in search preview window" +msgid "Show overdue POs" msgstr "" -#: common/models.py:2370 -msgid "Hide Inactive Parts" +#: common/models.py:2366 +msgid "Show overdue POs on the homepage" msgstr "" #: common/models.py:2371 -msgid "Excluded inactive parts from search preview window" +msgid "Show outstanding SOs" msgstr "" -#: common/models.py:2376 -msgid "Search Categories" +#: common/models.py:2372 +msgid "Show outstanding SOs on the homepage" msgstr "" #: common/models.py:2377 -msgid "Display part categories in search preview window" +msgid "Show overdue SOs" msgstr "" -#: common/models.py:2382 -msgid "Search Stock" +#: common/models.py:2378 +msgid "Show overdue SOs on the homepage" msgstr "" #: common/models.py:2383 -msgid "Display stock items in search preview window" +msgid "Show pending SO shipments" msgstr "" -#: common/models.py:2388 -msgid "Hide Unavailable Stock Items" +#: common/models.py:2384 +msgid "Show pending SO shipments on the homepage" +msgstr "" + +#: common/models.py:2389 +msgid "Show News" msgstr "" #: common/models.py:2390 -msgid "Exclude stock items which are not available from the search preview window" +msgid "Show news on the homepage" msgstr "" -#: common/models.py:2396 -msgid "Search Locations" +#: common/models.py:2395 +msgid "Inline label display" msgstr "" #: common/models.py:2397 -msgid "Display stock locations in search preview window" -msgstr "" - -#: common/models.py:2402 -msgid "Search Companies" +msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "" #: common/models.py:2403 -msgid "Display companies in search preview window" +msgid "Default label printer" msgstr "" -#: common/models.py:2408 -msgid "Search Build Orders" +#: common/models.py:2405 +msgid "Configure which label printer should be selected by default" msgstr "" -#: common/models.py:2409 -msgid "Display build orders in search preview window" +#: common/models.py:2411 +msgid "Inline report display" msgstr "" -#: common/models.py:2414 -msgid "Search Purchase Orders" +#: common/models.py:2413 +msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:2415 -msgid "Display purchase orders in search preview window" +#: common/models.py:2419 +msgid "Search Parts" msgstr "" #: common/models.py:2420 -msgid "Exclude Inactive Purchase Orders" +msgid "Display parts in search preview window" msgstr "" -#: common/models.py:2422 -msgid "Exclude inactive purchase orders from search preview window" +#: common/models.py:2425 +msgid "Search Supplier Parts" msgstr "" -#: common/models.py:2428 -msgid "Search Sales Orders" +#: common/models.py:2426 +msgid "Display supplier parts in search preview window" msgstr "" -#: common/models.py:2429 -msgid "Display sales orders in search preview window" +#: common/models.py:2431 +msgid "Search Manufacturer Parts" msgstr "" -#: common/models.py:2434 -msgid "Exclude Inactive Sales Orders" +#: common/models.py:2432 +msgid "Display manufacturer parts in search preview window" msgstr "" -#: common/models.py:2436 -msgid "Exclude inactive sales orders from search preview window" +#: common/models.py:2437 +msgid "Hide Inactive Parts" msgstr "" -#: common/models.py:2442 -msgid "Search Return Orders" +#: common/models.py:2438 +msgid "Excluded inactive parts from search preview window" msgstr "" #: common/models.py:2443 -msgid "Display return orders in search preview window" +msgid "Search Categories" msgstr "" -#: common/models.py:2448 -msgid "Exclude Inactive Return Orders" +#: common/models.py:2444 +msgid "Display part categories in search preview window" +msgstr "" + +#: common/models.py:2449 +msgid "Search Stock" msgstr "" #: common/models.py:2450 -msgid "Exclude inactive return orders from search preview window" +msgid "Display stock items in search preview window" msgstr "" -#: common/models.py:2456 -msgid "Search Preview Results" +#: common/models.py:2455 +msgid "Hide Unavailable Stock Items" msgstr "" -#: common/models.py:2458 -msgid "Number of results to show in each section of the search preview window" +#: common/models.py:2457 +msgid "Exclude stock items which are not available from the search preview window" +msgstr "" + +#: common/models.py:2463 +msgid "Search Locations" msgstr "" #: common/models.py:2464 -msgid "Regex Search" +msgid "Display stock locations in search preview window" msgstr "" -#: common/models.py:2465 -msgid "Enable regular expressions in search queries" +#: common/models.py:2469 +msgid "Search Companies" msgstr "" #: common/models.py:2470 -msgid "Whole Word Search" +msgid "Display companies in search preview window" msgstr "" -#: common/models.py:2471 -msgid "Search queries return results for whole word matches" +#: common/models.py:2475 +msgid "Search Build Orders" msgstr "" #: common/models.py:2476 -msgid "Show Quantity in Forms" +msgid "Display build orders in search preview window" msgstr "" -#: common/models.py:2477 -msgid "Display available part quantity in some forms" +#: common/models.py:2481 +msgid "Search Purchase Orders" msgstr "" #: common/models.py:2482 -msgid "Escape Key Closes Forms" +msgid "Display purchase orders in search preview window" msgstr "" -#: common/models.py:2483 -msgid "Use the escape key to close modal forms" -msgstr "" - -#: common/models.py:2488 -msgid "Fixed Navbar" +#: common/models.py:2487 +msgid "Exclude Inactive Purchase Orders" msgstr "" #: common/models.py:2489 -msgid "The navbar position is fixed to the top of the screen" -msgstr "" - -#: common/models.py:2494 -msgid "Date Format" +msgid "Exclude inactive purchase orders from search preview window" msgstr "" #: common/models.py:2495 -msgid "Preferred format for displaying dates" +msgid "Search Sales Orders" msgstr "" -#: common/models.py:2508 part/templates/part/detail.html:41 -msgid "Part Scheduling" +#: common/models.py:2496 +msgid "Display sales orders in search preview window" +msgstr "" + +#: common/models.py:2501 +msgid "Exclude Inactive Sales Orders" +msgstr "" + +#: common/models.py:2503 +msgid "Exclude inactive sales orders from search preview window" msgstr "" #: common/models.py:2509 -msgid "Display part scheduling information" +msgid "Search Return Orders" msgstr "" -#: common/models.py:2514 part/templates/part/detail.html:62 -msgid "Part Stocktake" +#: common/models.py:2510 +msgid "Display return orders in search preview window" msgstr "" -#: common/models.py:2516 -msgid "Display part stocktake information (if stocktake functionality is enabled)" +#: common/models.py:2515 +msgid "Exclude Inactive Return Orders" msgstr "" -#: common/models.py:2522 -msgid "Table String Length" +#: common/models.py:2517 +msgid "Exclude inactive return orders from search preview window" msgstr "" -#: common/models.py:2524 -msgid "Maximum length limit for strings displayed in table views" +#: common/models.py:2523 +msgid "Search Preview Results" msgstr "" -#: common/models.py:2530 -msgid "Receive error reports" +#: common/models.py:2525 +msgid "Number of results to show in each section of the search preview window" msgstr "" #: common/models.py:2531 -msgid "Receive notifications for system errors" +msgid "Regex Search" msgstr "" -#: common/models.py:2536 -msgid "Last used printing machines" +#: common/models.py:2532 +msgid "Enable regular expressions in search queries" msgstr "" #: common/models.py:2537 +msgid "Whole Word Search" +msgstr "" + +#: common/models.py:2538 +msgid "Search queries return results for whole word matches" +msgstr "" + +#: common/models.py:2543 +msgid "Show Quantity in Forms" +msgstr "" + +#: common/models.py:2544 +msgid "Display available part quantity in some forms" +msgstr "" + +#: common/models.py:2549 +msgid "Escape Key Closes Forms" +msgstr "" + +#: common/models.py:2550 +msgid "Use the escape key to close modal forms" +msgstr "" + +#: common/models.py:2555 +msgid "Fixed Navbar" +msgstr "" + +#: common/models.py:2556 +msgid "The navbar position is fixed to the top of the screen" +msgstr "" + +#: common/models.py:2561 +msgid "Date Format" +msgstr "" + +#: common/models.py:2562 +msgid "Preferred format for displaying dates" +msgstr "" + +#: common/models.py:2575 part/templates/part/detail.html:41 +msgid "Part Scheduling" +msgstr "" + +#: common/models.py:2576 +msgid "Display part scheduling information" +msgstr "" + +#: common/models.py:2581 part/templates/part/detail.html:62 +msgid "Part Stocktake" +msgstr "" + +#: common/models.py:2583 +msgid "Display part stocktake information (if stocktake functionality is enabled)" +msgstr "" + +#: common/models.py:2589 +msgid "Table String Length" +msgstr "" + +#: common/models.py:2591 +msgid "Maximum length limit for strings displayed in table views" +msgstr "" + +#: common/models.py:2597 +msgid "Receive error reports" +msgstr "" + +#: common/models.py:2598 +msgid "Receive notifications for system errors" +msgstr "" + +#: common/models.py:2603 +msgid "Last used printing machines" +msgstr "" + +#: common/models.py:2604 msgid "Save the last used printing machines for a user" msgstr "" -#: common/models.py:2557 common/models.py:2558 common/models.py:2715 -#: common/models.py:2716 common/models.py:2961 common/models.py:2962 -#: common/models.py:3288 common/models.py:3289 importer/models.py:88 -#: part/models.py:3307 part/models.py:3394 part/models.py:3468 -#: part/models.py:3496 plugin/models.py:274 plugin/models.py:275 -#: report/templates/report/inventree_test_report.html:105 -#: templates/js/translated/stock.js:3120 users/models.py:111 +#: common/models.py:2621 common/models.py:2622 common/models.py:2779 +#: common/models.py:2780 common/models.py:3025 common/models.py:3026 +#: common/models.py:3349 common/models.py:3350 common/models.py:3534 +#: importer/models.py:89 part/models.py:3358 part/models.py:3445 +#: part/models.py:3519 part/models.py:3547 plugin/models.py:313 +#: plugin/models.py:314 report/templates/report/inventree_test_report.html:105 +#: templates/js/translated/stock.js:3121 users/models.py:111 msgid "User" msgstr "משתמש" -#: common/models.py:2580 +#: common/models.py:2644 msgid "Price break quantity" msgstr "" -#: common/models.py:2587 company/serializers.py:513 order/admin.py:42 -#: order/models.py:1430 order/models.py:2417 -#: templates/js/translated/company.js:1823 templates/js/translated/part.js:1892 +#: common/models.py:2651 company/serializers.py:524 order/admin.py:42 +#: order/models.py:1447 order/models.py:2456 +#: templates/js/translated/company.js:1824 templates/js/translated/part.js:1892 #: templates/js/translated/pricing.js:621 #: templates/js/translated/return_order.js:739 msgid "Price" msgstr "" -#: common/models.py:2588 +#: common/models.py:2652 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:2692 common/models.py:2877 +#: common/models.py:2756 common/models.py:2941 msgid "Endpoint" msgstr "" -#: common/models.py:2693 +#: common/models.py:2757 msgid "Endpoint at which this webhook is received" msgstr "" -#: common/models.py:2703 +#: common/models.py:2767 msgid "Name for this webhook" msgstr "" -#: common/models.py:2707 +#: common/models.py:2771 msgid "Is this webhook active" msgstr "" -#: common/models.py:2723 users/models.py:159 +#: common/models.py:2787 users/models.py:159 msgid "Token" msgstr "" -#: common/models.py:2724 +#: common/models.py:2788 msgid "Token for access" msgstr "" -#: common/models.py:2732 +#: common/models.py:2796 msgid "Secret" msgstr "" -#: common/models.py:2733 +#: common/models.py:2797 msgid "Shared secret for HMAC" msgstr "" -#: common/models.py:2841 +#: common/models.py:2905 msgid "Message ID" msgstr "" -#: common/models.py:2842 +#: common/models.py:2906 msgid "Unique identifier for this message" msgstr "" -#: common/models.py:2850 +#: common/models.py:2914 msgid "Host" msgstr "" -#: common/models.py:2851 +#: common/models.py:2915 msgid "Host from which this message was received" msgstr "" -#: common/models.py:2859 +#: common/models.py:2923 msgid "Header" msgstr "" -#: common/models.py:2860 +#: common/models.py:2924 msgid "Header of this message" msgstr "" -#: common/models.py:2867 +#: common/models.py:2931 msgid "Body" msgstr "" -#: common/models.py:2868 +#: common/models.py:2932 msgid "Body of this message" msgstr "" -#: common/models.py:2878 +#: common/models.py:2942 msgid "Endpoint on which this message was received" msgstr "" -#: common/models.py:2883 +#: common/models.py:2947 msgid "Worked on" msgstr "" -#: common/models.py:2884 +#: common/models.py:2948 msgid "Was the work on this message finished?" msgstr "" -#: common/models.py:3010 +#: common/models.py:3074 msgid "Id" msgstr "" -#: common/models.py:3012 templates/js/translated/company.js:965 -#: templates/js/translated/news.js:44 +#: common/models.py:3076 part/serializers.py:271 +#: templates/js/translated/company.js:966 templates/js/translated/news.js:44 msgid "Title" msgstr "" -#: common/models.py:3014 common/models.py:3272 company/models.py:149 -#: company/models.py:446 company/models.py:512 company/models.py:818 -#: order/models.py:302 order/models.py:1385 order/models.py:1817 -#: part/admin.py:55 part/models.py:1057 +#: common/models.py:3078 common/models.py:3333 company/models.py:146 +#: company/models.py:443 company/models.py:509 company/models.py:815 +#: order/models.py:309 order/models.py:1402 order/models.py:1846 +#: part/admin.py:55 part/models.py:1118 #: part/templates/part/part_scheduling.html:11 #: report/templates/report/inventree_build_order_report.html:164 -#: stock/admin.py:229 templates/js/translated/company.js:1319 -#: templates/js/translated/company.js:1673 templates/js/translated/order.js:376 +#: stock/admin.py:230 templates/js/translated/company.js:1320 +#: templates/js/translated/company.js:1674 templates/js/translated/order.js:376 #: templates/js/translated/part.js:2475 -#: templates/js/translated/purchase_order.js:2110 -#: templates/js/translated/purchase_order.js:2274 +#: templates/js/translated/purchase_order.js:2094 +#: templates/js/translated/purchase_order.js:2258 #: templates/js/translated/return_order.js:778 -#: templates/js/translated/sales_order.js:1092 -#: templates/js/translated/sales_order.js:2023 +#: templates/js/translated/sales_order.js:1058 +#: templates/js/translated/sales_order.js:2004 msgid "Link" msgstr "קישור" -#: common/models.py:3016 templates/js/translated/news.js:60 +#: common/models.py:3080 templates/js/translated/news.js:60 msgid "Published" msgstr "" -#: common/models.py:3018 templates/InvenTree/settings/plugin_settings.html:32 +#: common/models.py:3082 templates/InvenTree/settings/plugin_settings.html:32 #: templates/js/translated/news.js:56 templates/js/translated/plugin.js:103 msgid "Author" msgstr "" -#: common/models.py:3020 templates/js/translated/news.js:52 +#: common/models.py:3084 templates/js/translated/news.js:52 msgid "Summary" msgstr "" -#: common/models.py:3023 +#: common/models.py:3087 msgid "Read" msgstr "" -#: common/models.py:3023 +#: common/models.py:3087 msgid "Was this news item read?" msgstr "" -#: common/models.py:3040 company/models.py:159 part/models.py:1067 +#: common/models.py:3104 company/models.py:156 part/models.py:1128 #: report/templates/report/inventree_bill_of_materials_report.html:126 #: report/templates/report/inventree_bill_of_materials_report.html:148 #: report/templates/report/inventree_return_order_report.html:35 -#: stock/templates/stock/item_base.html:133 templates/503.html:31 +#: stock/templates/stock/item_base.html:130 templates/503.html:31 #: templates/hover_image.html:7 templates/hover_image.html:9 #: templates/modals.html:6 msgid "Image" msgstr "" -#: common/models.py:3040 +#: common/models.py:3104 msgid "Image file" msgstr "" -#: common/models.py:3052 common/models.py:3256 +#: common/models.py:3116 common/models.py:3317 msgid "Target model type for this image" msgstr "" -#: common/models.py:3056 +#: common/models.py:3120 msgid "Target model ID for this image" msgstr "" -#: common/models.py:3078 +#: common/models.py:3142 msgid "Custom Unit" msgstr "" -#: common/models.py:3099 +#: common/models.py:3160 msgid "Unit symbol must be unique" msgstr "" -#: common/models.py:3114 +#: common/models.py:3175 msgid "Unit name must be a valid identifier" msgstr "" -#: common/models.py:3133 +#: common/models.py:3194 msgid "Unit name" msgstr "" -#: common/models.py:3140 templates/InvenTree/settings/settings_staff_js.html:75 +#: common/models.py:3201 templates/InvenTree/settings/settings_staff_js.html:75 msgid "Symbol" msgstr "" -#: common/models.py:3141 +#: common/models.py:3202 msgid "Optional unit symbol" msgstr "" -#: common/models.py:3147 templates/InvenTree/settings/settings_staff_js.html:71 +#: common/models.py:3208 templates/InvenTree/settings/settings_staff_js.html:71 msgid "Definition" msgstr "" -#: common/models.py:3148 +#: common/models.py:3209 msgid "Unit definition" msgstr "" -#: common/models.py:3206 common/models.py:3263 stock/models.py:2558 -#: templates/js/translated/attachment.js:119 +#: common/models.py:3267 common/models.py:3324 stock/models.py:2674 +#: stock/serializers.py:244 templates/js/translated/attachment.js:119 #: templates/js/translated/attachment.js:345 msgid "Attachment" msgstr "קובץ מצורף" -#: common/models.py:3218 +#: common/models.py:3279 msgid "Missing file" msgstr "קובץ חסר" -#: common/models.py:3219 +#: common/models.py:3280 msgid "Missing external link" msgstr "חסר קישור חיצוני" -#: common/models.py:3264 +#: common/models.py:3325 msgid "Select file to attach" msgstr "בחר קובץ לצירוף" -#: common/models.py:3279 templates/js/translated/attachment.js:120 +#: common/models.py:3340 templates/js/translated/attachment.js:120 #: templates/js/translated/attachment.js:360 msgid "Comment" msgstr "הערה" -#: common/models.py:3280 +#: common/models.py:3341 msgid "Attachment comment" msgstr "" -#: common/models.py:3296 +#: common/models.py:3357 msgid "Upload date" msgstr "" -#: common/models.py:3297 +#: common/models.py:3358 msgid "Date the file was uploaded" msgstr "" -#: common/models.py:3301 +#: common/models.py:3362 msgid "File size" msgstr "" -#: common/models.py:3301 +#: common/models.py:3362 msgid "File size in bytes" msgstr "" -#: common/models.py:3339 common/serializers.py:562 +#: common/models.py:3400 common/serializers.py:609 msgid "Invalid model type specified for attachment" msgstr "" -#: common/notifications.py:314 +#: common/models.py:3409 plugin/models.py:43 users/models.py:100 +msgid "Key" +msgstr "" + +#: common/models.py:3410 +msgid "Value that will be saved in the models database" +msgstr "" + +#: common/models.py:3413 +msgid "Name of the state" +msgstr "" + +#: common/models.py:3417 part/serializers.py:273 +msgid "Label" +msgstr "" + +#: common/models.py:3418 +msgid "Label that will be displayed in the frontend" +msgstr "" + +#: common/models.py:3424 +msgid "Color" +msgstr "" + +#: common/models.py:3425 +msgid "Color that will be displayed in the frontend" +msgstr "" + +#: common/models.py:3428 +msgid "Logical Key" +msgstr "" + +#: common/models.py:3430 +msgid "State logical key that is equal to this custom state in business logic" +msgstr "" + +#: common/models.py:3438 part/serializers.py:275 +msgid "Model" +msgstr "" + +#: common/models.py:3439 +msgid "Model this state is associated with" +msgstr "" + +#: common/models.py:3443 +msgid "Reference Status Set" +msgstr "" + +#: common/models.py:3444 +msgid "Status set that is extended with this custom state" +msgstr "" + +#: common/models.py:3450 +msgid "Custom State" +msgstr "" + +#: common/models.py:3451 +msgid "Custom States" +msgstr "" + +#: common/models.py:3466 +msgid "Model must be selected" +msgstr "" + +#: common/models.py:3469 +msgid "Key must be selected" +msgstr "" + +#: common/models.py:3472 +msgid "Logical key must be selected" +msgstr "" + +#: common/models.py:3476 +msgid "Key must be different from logical key" +msgstr "" + +#: common/models.py:3480 +msgid "Reference status must be selected" +msgstr "" + +#: common/models.py:3492 +msgid "Reference status set not found" +msgstr "" + +#: common/models.py:3498 +msgid "Key must be different from the logical keys of the reference status" +msgstr "" + +#: common/models.py:3504 +msgid "Logical key must be in the logical keys of the reference status" +msgstr "" + +#: common/models.py:3519 +msgid "Barcode Scan" +msgstr "" + +#: common/models.py:3523 importer/models.py:512 part/models.py:4009 +msgid "Data" +msgstr "" + +#: common/models.py:3524 +msgid "Barcode data" +msgstr "" + +#: common/models.py:3535 +msgid "User who scanned the barcode" +msgstr "" + +#: common/models.py:3540 importer/models.py:60 +msgid "Timestamp" +msgstr "" + +#: common/models.py:3541 +msgid "Date and time of the barcode scan" +msgstr "" + +#: common/models.py:3547 +msgid "URL endpoint which processed the barcode" +msgstr "" + +#: common/models.py:3554 order/models.py:1437 plugin/serializers.py:89 +msgid "Context" +msgstr "" + +#: common/models.py:3555 +msgid "Context data for the barcode scan" +msgstr "" + +#: common/models.py:3562 +msgid "Response" +msgstr "" + +#: common/models.py:3563 +msgid "Response data from the barcode scan" +msgstr "" + +#: common/models.py:3569 report/templates/report/inventree_test_report.html:103 +#: stock/models.py:2660 +msgid "Result" +msgstr "" + +#: common/models.py:3570 +msgid "Was the barcode scan successful?" +msgstr "" + +#: common/notifications.py:328 #, python-brace-format msgid "New {verbose_name}" msgstr "" -#: common/notifications.py:316 +#: common/notifications.py:330 msgid "A new order has been created and assigned to you" msgstr "" -#: common/notifications.py:322 +#: common/notifications.py:336 #, python-brace-format msgid "{verbose_name} canceled" msgstr "" -#: common/notifications.py:324 +#: common/notifications.py:338 msgid "A order that is assigned to you was canceled" msgstr "" -#: common/notifications.py:330 common/notifications.py:337 order/api.py:462 +#: common/notifications.py:344 common/notifications.py:351 order/api.py:440 msgid "Items Received" msgstr "" -#: common/notifications.py:332 +#: common/notifications.py:346 msgid "Items have been received against a purchase order" msgstr "" -#: common/notifications.py:339 +#: common/notifications.py:353 msgid "Items have been received against a return order" msgstr "" -#: common/notifications.py:457 +#: common/notifications.py:475 msgid "Error raised by plugin" msgstr "" -#: common/serializers.py:375 +#: common/serializers.py:423 msgid "Is Running" msgstr "" -#: common/serializers.py:381 +#: common/serializers.py:429 msgid "Pending Tasks" msgstr "" -#: common/serializers.py:387 +#: common/serializers.py:435 msgid "Scheduled Tasks" msgstr "" -#: common/serializers.py:393 +#: common/serializers.py:441 msgid "Failed Tasks" msgstr "" -#: common/serializers.py:408 +#: common/serializers.py:456 msgid "Task ID" msgstr "" -#: common/serializers.py:408 +#: common/serializers.py:456 msgid "Unique task ID" msgstr "" -#: common/serializers.py:410 +#: common/serializers.py:458 msgid "Lock" msgstr "" -#: common/serializers.py:410 +#: common/serializers.py:458 msgid "Lock time" msgstr "" -#: common/serializers.py:412 +#: common/serializers.py:460 msgid "Task name" msgstr "" -#: common/serializers.py:414 +#: common/serializers.py:462 msgid "Function" msgstr "" -#: common/serializers.py:414 +#: common/serializers.py:462 msgid "Function name" msgstr "" -#: common/serializers.py:416 +#: common/serializers.py:464 msgid "Arguments" msgstr "" -#: common/serializers.py:416 +#: common/serializers.py:464 msgid "Task arguments" msgstr "" -#: common/serializers.py:419 +#: common/serializers.py:467 msgid "Keyword Arguments" msgstr "" -#: common/serializers.py:419 +#: common/serializers.py:467 msgid "Task keyword arguments" msgstr "" -#: common/serializers.py:529 +#: common/serializers.py:577 msgid "Filename" msgstr "שם קובץ" -#: common/serializers.py:536 report/api.py:100 report/serializers.py:53 +#: common/serializers.py:584 report/api.py:100 report/serializers.py:54 msgid "Model Type" msgstr "" -#: common/serializers.py:565 +#: common/serializers.py:612 msgid "User does not have permission to create or edit attachments for this model" msgstr "" @@ -4116,15 +4295,15 @@ msgstr "" msgid "Match Items" msgstr "" -#: common/views.py:401 +#: common/views.py:397 msgid "Fields matching failed" msgstr "" -#: common/views.py:464 +#: common/views.py:460 msgid "Parts imported" msgstr "" -#: common/views.py:494 order/templates/order/order_wizard/match_fields.html:27 +#: common/views.py:490 order/templates/order/order_wizard/match_fields.html:27 #: order/templates/order/order_wizard/match_parts.html:19 #: order/templates/order/order_wizard/po_upload.html:49 #: part/templates/part/import_wizard/match_fields.html:27 @@ -4155,429 +4334,429 @@ msgstr "" msgid "Supplier is Active" msgstr "" -#: company/models.py:100 company/models.py:371 +#: company/models.py:97 company/models.py:368 #: company/templates/company/company_base.html:8 #: company/templates/company/company_base.html:12 stock/api.py:812 -#: templates/InvenTree/search.html:178 templates/js/translated/company.js:496 +#: templates/InvenTree/search.html:178 templates/js/translated/company.js:497 msgid "Company" msgstr "" -#: company/models.py:101 company/views.py:51 +#: company/models.py:98 company/views.py:51 #: templates/js/translated/search.js:192 msgid "Companies" msgstr "" -#: company/models.py:117 +#: company/models.py:114 msgid "Company description" msgstr "" -#: company/models.py:118 +#: company/models.py:115 msgid "Description of the company" msgstr "" -#: company/models.py:123 company/templates/company/company_base.html:106 +#: company/models.py:120 company/templates/company/company_base.html:106 #: templates/InvenTree/settings/plugin_settings.html:54 -#: templates/js/translated/company.js:532 +#: templates/js/translated/company.js:533 msgid "Website" msgstr "" -#: company/models.py:123 +#: company/models.py:120 msgid "Company website URL" msgstr "" -#: company/models.py:128 +#: company/models.py:125 msgid "Phone number" msgstr "" -#: company/models.py:130 +#: company/models.py:127 msgid "Contact phone number" msgstr "" -#: company/models.py:137 +#: company/models.py:134 msgid "Contact email address" msgstr "" -#: company/models.py:142 company/models.py:275 -#: company/templates/company/company_base.html:145 order/models.py:342 -#: order/templates/order/order_base.html:208 -#: order/templates/order/return_order_base.html:177 -#: order/templates/order/sales_order_base.html:221 +#: company/models.py:139 company/models.py:272 +#: company/templates/company/company_base.html:145 order/models.py:349 +#: order/templates/order/order_base.html:217 +#: order/templates/order/return_order_base.html:178 +#: order/templates/order/sales_order_base.html:222 msgid "Contact" msgstr "" -#: company/models.py:144 +#: company/models.py:141 msgid "Point of contact" msgstr "" -#: company/models.py:150 +#: company/models.py:147 msgid "Link to external company information" msgstr "" -#: company/models.py:163 +#: company/models.py:160 msgid "Is this company active?" msgstr "" -#: company/models.py:168 +#: company/models.py:165 msgid "Is customer" msgstr "" -#: company/models.py:169 +#: company/models.py:166 msgid "Do you sell items to this company?" msgstr "" -#: company/models.py:174 +#: company/models.py:171 msgid "Is supplier" msgstr "" -#: company/models.py:175 +#: company/models.py:172 msgid "Do you purchase items from this company?" msgstr "" -#: company/models.py:180 +#: company/models.py:177 msgid "Is manufacturer" msgstr "" -#: company/models.py:181 +#: company/models.py:178 msgid "Does this company manufacture parts?" msgstr "" -#: company/models.py:189 +#: company/models.py:186 msgid "Default currency used for this company" msgstr "" -#: company/models.py:314 company/templates/company/company_base.html:124 -#: order/models.py:352 order/templates/order/order_base.html:215 -#: order/templates/order/return_order_base.html:184 -#: order/templates/order/sales_order_base.html:228 +#: company/models.py:311 company/templates/company/company_base.html:124 +#: order/models.py:359 order/templates/order/order_base.html:224 +#: order/templates/order/return_order_base.html:185 +#: order/templates/order/sales_order_base.html:229 msgid "Address" msgstr "" -#: company/models.py:315 company/templates/company/sidebar.html:35 +#: company/models.py:312 company/templates/company/sidebar.html:35 msgid "Addresses" msgstr "" -#: company/models.py:372 +#: company/models.py:369 msgid "Select company" msgstr "" -#: company/models.py:377 +#: company/models.py:374 msgid "Address title" msgstr "" -#: company/models.py:378 +#: company/models.py:375 msgid "Title describing the address entry" msgstr "" -#: company/models.py:384 +#: company/models.py:381 msgid "Primary address" msgstr "" -#: company/models.py:385 +#: company/models.py:382 msgid "Set as primary address" msgstr "" -#: company/models.py:390 templates/js/translated/company.js:914 -#: templates/js/translated/company.js:971 +#: company/models.py:387 templates/js/translated/company.js:915 +#: templates/js/translated/company.js:972 msgid "Line 1" msgstr "" -#: company/models.py:391 +#: company/models.py:388 msgid "Address line 1" msgstr "" -#: company/models.py:397 templates/js/translated/company.js:915 -#: templates/js/translated/company.js:977 +#: company/models.py:394 templates/js/translated/company.js:916 +#: templates/js/translated/company.js:978 msgid "Line 2" msgstr "" -#: company/models.py:398 +#: company/models.py:395 msgid "Address line 2" msgstr "" -#: company/models.py:404 company/models.py:405 -#: templates/js/translated/company.js:983 +#: company/models.py:401 company/models.py:402 +#: templates/js/translated/company.js:984 msgid "Postal code" msgstr "" -#: company/models.py:411 +#: company/models.py:408 msgid "City/Region" msgstr "" -#: company/models.py:412 +#: company/models.py:409 msgid "Postal code city/region" msgstr "" -#: company/models.py:418 +#: company/models.py:415 msgid "State/Province" msgstr "" -#: company/models.py:419 +#: company/models.py:416 msgid "State or province" msgstr "" -#: company/models.py:425 templates/js/translated/company.js:1001 +#: company/models.py:422 templates/js/translated/company.js:1002 msgid "Country" msgstr "" -#: company/models.py:426 +#: company/models.py:423 msgid "Address country" msgstr "" -#: company/models.py:432 +#: company/models.py:429 msgid "Courier shipping notes" msgstr "" -#: company/models.py:433 +#: company/models.py:430 msgid "Notes for shipping courier" msgstr "" -#: company/models.py:439 +#: company/models.py:436 msgid "Internal shipping notes" msgstr "" -#: company/models.py:440 +#: company/models.py:437 msgid "Shipping notes for internal use" msgstr "" -#: company/models.py:447 +#: company/models.py:444 msgid "Link to address information (external)" msgstr "" -#: company/models.py:470 company/models.py:587 company/models.py:811 +#: company/models.py:467 company/models.py:584 company/models.py:808 #: company/templates/company/manufacturer_part.html:7 #: company/templates/company/manufacturer_part.html:24 -#: stock/templates/stock/item_base.html:217 +#: stock/templates/stock/item_base.html:214 msgid "Manufacturer Part" msgstr "" -#: company/models.py:487 company/models.py:779 stock/models.py:787 -#: stock/serializers.py:445 stock/templates/stock/item_base.html:142 +#: company/models.py:484 company/models.py:776 stock/models.py:864 +#: stock/serializers.py:455 stock/templates/stock/item_base.html:139 #: templates/js/translated/bom.js:622 msgid "Base Part" msgstr "" -#: company/models.py:489 company/models.py:781 +#: company/models.py:486 company/models.py:778 msgid "Select part" msgstr "" -#: company/models.py:498 company/templates/company/company_base.html:82 +#: company/models.py:495 company/templates/company/company_base.html:82 #: company/templates/company/manufacturer_part.html:90 -#: company/templates/company/supplier_part.html:145 part/serializers.py:554 -#: stock/templates/stock/item_base.html:207 -#: templates/js/translated/company.js:507 -#: templates/js/translated/company.js:1118 -#: templates/js/translated/company.js:1296 -#: templates/js/translated/company.js:1611 +#: company/templates/company/supplier_part.html:146 part/serializers.py:598 +#: stock/templates/stock/item_base.html:204 +#: templates/js/translated/company.js:508 +#: templates/js/translated/company.js:1119 +#: templates/js/translated/company.js:1297 +#: templates/js/translated/company.js:1612 #: templates/js/translated/table_filters.js:812 msgid "Manufacturer" msgstr "" -#: company/models.py:499 +#: company/models.py:496 msgid "Select manufacturer" msgstr "" -#: company/models.py:505 company/templates/company/manufacturer_part.html:101 -#: company/templates/company/supplier_part.html:153 order/serializers.py:556 -#: part/serializers.py:564 templates/js/translated/company.js:351 -#: templates/js/translated/company.js:1117 -#: templates/js/translated/company.js:1312 -#: templates/js/translated/company.js:1630 templates/js/translated/part.js:1807 -#: templates/js/translated/purchase_order.js:1921 -#: templates/js/translated/purchase_order.js:2123 +#: company/models.py:502 company/templates/company/manufacturer_part.html:101 +#: company/templates/company/supplier_part.html:154 order/serializers.py:641 +#: part/serializers.py:608 templates/js/translated/company.js:352 +#: templates/js/translated/company.js:1118 +#: templates/js/translated/company.js:1313 +#: templates/js/translated/company.js:1631 templates/js/translated/part.js:1807 +#: templates/js/translated/purchase_order.js:1905 +#: templates/js/translated/purchase_order.js:2107 msgid "MPN" msgstr "" -#: company/models.py:513 +#: company/models.py:510 msgid "URL for external manufacturer part link" msgstr "" -#: company/models.py:522 +#: company/models.py:519 msgid "Manufacturer part description" msgstr "" -#: company/models.py:575 +#: company/models.py:572 msgid "Manufacturer Part Parameter" msgstr "" -#: company/models.py:594 +#: company/models.py:591 msgid "Parameter name" msgstr "" -#: company/models.py:600 report/templates/report/inventree_test_report.html:104 -#: stock/models.py:2550 templates/js/translated/company.js:1166 -#: templates/js/translated/company.js:1419 templates/js/translated/part.js:1499 +#: company/models.py:597 report/templates/report/inventree_test_report.html:104 +#: stock/models.py:2666 templates/js/translated/company.js:1167 +#: templates/js/translated/company.js:1420 templates/js/translated/part.js:1499 #: templates/js/translated/stock.js:1607 msgid "Value" msgstr "" -#: company/models.py:601 +#: company/models.py:598 msgid "Parameter value" msgstr "" -#: company/models.py:608 company/templates/company/supplier_part.html:168 -#: part/admin.py:57 part/models.py:1147 part/models.py:3771 -#: part/templates/part/part_base.html:293 -#: templates/js/translated/company.js:1425 templates/js/translated/part.js:1518 +#: company/models.py:605 company/templates/company/supplier_part.html:169 +#: part/admin.py:57 part/models.py:1208 part/models.py:3822 +#: part/templates/part/part_base.html:301 +#: templates/js/translated/company.js:1426 templates/js/translated/part.js:1518 #: templates/js/translated/part.js:1622 templates/js/translated/part.js:2376 msgid "Units" msgstr "" -#: company/models.py:609 +#: company/models.py:606 msgid "Parameter units" msgstr "" -#: company/models.py:662 company/templates/company/supplier_part.html:7 -#: company/templates/company/supplier_part.html:24 order/api.py:442 -#: order/serializers.py:491 stock/models.py:798 -#: stock/templates/stock/item_base.html:233 -#: templates/js/translated/build.js:1052 -#: templates/js/translated/company.js:1600 -#: templates/js/translated/purchase_order.js:752 -#: templates/js/translated/stock.js:2365 +#: company/models.py:659 company/templates/company/supplier_part.html:8 +#: company/templates/company/supplier_part.html:25 order/api.py:392 +#: order/serializers.py:576 stock/models.py:875 +#: stock/templates/stock/item_base.html:230 +#: templates/js/translated/build.js:1055 +#: templates/js/translated/company.js:1601 +#: templates/js/translated/purchase_order.js:735 +#: templates/js/translated/stock.js:2366 msgid "Supplier Part" msgstr "" -#: company/models.py:719 +#: company/models.py:716 msgid "Pack units must be compatible with the base part units" msgstr "" -#: company/models.py:726 +#: company/models.py:723 msgid "Pack units must be greater than zero" msgstr "" -#: company/models.py:740 +#: company/models.py:737 msgid "Linked manufacturer part must reference the same base part" msgstr "" -#: company/models.py:789 company/templates/company/company_base.html:87 -#: company/templates/company/supplier_part.html:129 order/models.py:491 -#: order/templates/order/order_base.html:141 part/bom.py:280 part/bom.py:318 -#: part/serializers.py:538 plugin/builtin/suppliers/digikey.py:25 +#: company/models.py:786 company/templates/company/company_base.html:87 +#: company/templates/company/supplier_part.html:130 order/models.py:503 +#: order/templates/order/order_base.html:150 part/bom.py:279 part/bom.py:314 +#: part/serializers.py:582 plugin/builtin/suppliers/digikey.py:25 #: plugin/builtin/suppliers/lcsc.py:26 plugin/builtin/suppliers/mouser.py:24 -#: plugin/builtin/suppliers/tme.py:26 stock/templates/stock/item_base.html:224 +#: plugin/builtin/suppliers/tme.py:26 stock/templates/stock/item_base.html:221 #: templates/email/overdue_purchase_order.html:16 -#: templates/js/translated/company.js:350 -#: templates/js/translated/company.js:511 -#: templates/js/translated/company.js:1584 templates/js/translated/part.js:1775 +#: templates/js/translated/company.js:351 +#: templates/js/translated/company.js:512 +#: templates/js/translated/company.js:1585 templates/js/translated/part.js:1775 #: templates/js/translated/pricing.js:498 -#: templates/js/translated/purchase_order.js:1759 +#: templates/js/translated/purchase_order.js:1743 #: templates/js/translated/table_filters.js:816 msgid "Supplier" msgstr "" -#: company/models.py:790 +#: company/models.py:787 msgid "Select supplier" msgstr "" -#: company/models.py:796 part/serializers.py:549 +#: company/models.py:793 part/serializers.py:593 msgid "Supplier stock keeping unit" msgstr "" -#: company/models.py:802 +#: company/models.py:799 msgid "Is this supplier part active?" msgstr "" -#: company/models.py:812 +#: company/models.py:809 msgid "Select manufacturer part" msgstr "" -#: company/models.py:819 +#: company/models.py:816 msgid "URL for external supplier part link" msgstr "" -#: company/models.py:828 +#: company/models.py:825 msgid "Supplier part description" msgstr "" -#: company/models.py:835 company/templates/company/supplier_part.html:187 -#: order/serializers.py:698 part/admin.py:415 part/models.py:4288 +#: company/models.py:832 company/templates/company/supplier_part.html:188 +#: order/serializers.py:783 part/admin.py:415 part/models.py:4345 #: part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_bill_of_materials_report.html:140 #: report/templates/report/inventree_purchase_order_report.html:32 #: report/templates/report/inventree_return_order_report.html:27 #: report/templates/report/inventree_sales_order_report.html:32 #: report/templates/report/inventree_stock_location_report.html:105 -#: stock/serializers.py:776 templates/js/translated/purchase_order.js:1185 -#: templates/js/translated/purchase_order.js:1344 +#: stock/serializers.py:807 templates/js/translated/purchase_order.js:1168 +#: templates/js/translated/purchase_order.js:1327 msgid "Note" msgstr "" -#: company/models.py:844 part/models.py:2117 +#: company/models.py:841 part/models.py:2177 msgid "base cost" msgstr "" -#: company/models.py:845 part/models.py:2118 +#: company/models.py:842 part/models.py:2178 msgid "Minimum charge (e.g. stocking fee)" msgstr "" -#: company/models.py:853 +#: company/models.py:850 msgid "Part packaging" msgstr "" -#: company/models.py:858 templates/js/translated/company.js:1651 +#: company/models.py:855 templates/js/translated/company.js:1652 #: templates/js/translated/part.js:1828 templates/js/translated/part.js:1884 -#: templates/js/translated/purchase_order.js:311 -#: templates/js/translated/purchase_order.js:841 -#: templates/js/translated/purchase_order.js:1103 -#: templates/js/translated/purchase_order.js:2154 -#: templates/js/translated/purchase_order.js:2171 +#: templates/js/translated/purchase_order.js:294 +#: templates/js/translated/purchase_order.js:824 +#: templates/js/translated/purchase_order.js:1086 +#: templates/js/translated/purchase_order.js:2138 +#: templates/js/translated/purchase_order.js:2155 msgid "Pack Quantity" msgstr "" -#: company/models.py:860 +#: company/models.py:857 msgid "Total quantity supplied in a single pack. Leave empty for single items." msgstr "" -#: company/models.py:879 part/models.py:2124 +#: company/models.py:876 part/models.py:2184 msgid "multiple" msgstr "" -#: company/models.py:880 +#: company/models.py:877 msgid "Order multiple" msgstr "" -#: company/models.py:892 +#: company/models.py:889 msgid "Quantity available from supplier" msgstr "" -#: company/models.py:898 +#: company/models.py:895 msgid "Availability Updated" msgstr "" -#: company/models.py:899 +#: company/models.py:896 msgid "Date of last update of availability data" msgstr "" -#: company/models.py:1027 +#: company/models.py:1024 msgid "Supplier Price Break" msgstr "" -#: company/serializers.py:174 +#: company/serializers.py:178 msgid "Default currency used for this supplier" msgstr "" -#: company/serializers.py:210 +#: company/serializers.py:214 msgid "Company Name" msgstr "" -#: company/serializers.py:393 part/admin.py:126 part/serializers.py:898 -#: part/templates/part/part_base.html:197 -#: templates/js/translated/company.js:1689 +#: company/serializers.py:397 part/admin.py:126 part/serializers.py:950 +#: part/templates/part/part_base.html:198 stock/serializers.py:474 +#: templates/js/translated/company.js:1690 #: templates/js/translated/table_filters.js:362 msgid "In Stock" msgstr "" #: company/templates/company/company_base.html:16 -#: part/templates/part/part_base.html:146 -#: templates/js/translated/company.js:1287 -#: templates/js/translated/company.js:1575 -#: templates/js/translated/model_renderers.js:313 +#: part/templates/part/part_base.html:147 +#: templates/js/translated/company.js:1288 +#: templates/js/translated/company.js:1576 +#: templates/js/translated/model_renderers.js:316 #: templates/js/translated/part.js:817 templates/js/translated/part.js:1225 msgid "Inactive" msgstr "" #: company/templates/company/company_base.html:27 -#: templates/js/translated/purchase_order.js:242 +#: templates/js/translated/purchase_order.js:224 msgid "Create Purchase Order" msgstr "" @@ -4590,7 +4769,7 @@ msgid "Edit company information" msgstr "" #: company/templates/company/company_base.html:39 -#: templates/js/translated/company.js:445 +#: templates/js/translated/company.js:446 msgid "Edit Company" msgstr "" @@ -4605,11 +4784,12 @@ msgstr "" #: company/templates/company/company_base.html:53 #: company/templates/company/manufacturer_part.html:51 -#: company/templates/company/supplier_part.html:83 +#: company/templates/company/supplier_part.html:84 #: part/templates/part/part_thumb.html:20 #: report/templates/report/inventree_build_order_report.html:98 #: report/templates/report/inventree_purchase_order_report.html:40 #: report/templates/report/inventree_sales_order_report.html:40 +#: report/templates/report/inventree_sales_order_shipment_report.html:37 #: report/templates/report/inventree_test_report.html:84 #: report/templates/report/inventree_test_report.html:162 msgid "Part image" @@ -4630,16 +4810,16 @@ msgstr "" msgid "Delete image" msgstr "" -#: company/templates/company/company_base.html:92 order/models.py:990 -#: order/models.py:2147 order/templates/order/return_order_base.html:134 -#: order/templates/order/sales_order_base.html:151 stock/models.py:840 -#: stock/models.py:841 stock/serializers.py:1329 -#: stock/templates/stock/item_base.html:405 +#: company/templates/company/company_base.html:92 order/models.py:1017 +#: order/models.py:2186 order/templates/order/return_order_base.html:135 +#: order/templates/order/sales_order_base.html:152 stock/models.py:917 +#: stock/models.py:918 stock/serializers.py:1360 +#: stock/templates/stock/item_base.html:402 #: templates/email/overdue_sales_order.html:16 -#: templates/js/translated/company.js:503 +#: templates/js/translated/company.js:504 #: templates/js/translated/return_order.js:295 -#: templates/js/translated/sales_order.js:820 -#: templates/js/translated/stock.js:3043 +#: templates/js/translated/sales_order.js:779 +#: templates/js/translated/stock.js:3044 #: templates/js/translated/table_filters.js:820 msgid "Customer" msgstr "" @@ -4653,7 +4833,7 @@ msgid "Phone" msgstr "" #: company/templates/company/company_base.html:211 -#: part/templates/part/part_base.html:536 +#: part/templates/part/part_base.html:544 msgid "Remove Image" msgstr "" @@ -4662,19 +4842,19 @@ msgid "Remove associated image from this company" msgstr "" #: company/templates/company/company_base.html:214 -#: part/templates/part/part_base.html:539 +#: part/templates/part/part_base.html:547 #: templates/InvenTree/settings/user.html:88 #: templates/InvenTree/settings/user_sso.html:43 msgid "Remove" msgstr "" #: company/templates/company/company_base.html:243 -#: part/templates/part/part_base.html:568 +#: part/templates/part/part_base.html:576 msgid "Upload Image" msgstr "" #: company/templates/company/company_base.html:258 -#: part/templates/part/part_base.html:622 +#: part/templates/part/part_base.html:630 msgid "Download Image" msgstr "" @@ -4714,7 +4894,7 @@ msgstr "" #: company/templates/company/detail.html:75 #: company/templates/company/sidebar.html:12 #: company/templates/company/supplier_part_sidebar.html:7 -#: order/templates/order/order_base.html:13 +#: order/templates/order/order_base.html:14 #: order/templates/order/purchase_orders.html:8 #: order/templates/order/purchase_orders.html:12 #: part/templates/part/detail.html:122 part/templates/part/part_sidebar.html:35 @@ -4737,7 +4917,7 @@ msgstr "" #: company/templates/company/detail.html:101 #: company/templates/company/sidebar.html:21 -#: order/templates/order/sales_order_base.html:13 +#: order/templates/order/sales_order_base.html:14 #: order/templates/order/sales_orders.html:8 #: order/templates/order/sales_orders.html:15 #: part/templates/part/detail.html:143 part/templates/part/part_sidebar.html:39 @@ -4764,7 +4944,7 @@ msgstr "" #: company/templates/company/detail.html:142 #: company/templates/company/sidebar.html:29 -#: order/templates/order/return_order_base.html:13 +#: order/templates/order/return_order_base.html:14 #: order/templates/order/return_orders.html:8 #: order/templates/order/return_orders.html:15 #: templates/InvenTree/settings/sidebar.html:61 @@ -4811,24 +4991,24 @@ msgid "Manufacturers" msgstr "" #: company/templates/company/manufacturer_part.html:35 -#: company/templates/company/supplier_part.html:227 -#: part/templates/part/detail.html:125 part/templates/part/part_base.html:83 +#: company/templates/company/supplier_part.html:228 +#: part/templates/part/detail.html:125 part/templates/part/part_base.html:84 msgid "Order part" msgstr "" #: company/templates/company/manufacturer_part.html:39 -#: templates/js/translated/company.js:1343 +#: templates/js/translated/company.js:1344 msgid "Edit manufacturer part" msgstr "" #: company/templates/company/manufacturer_part.html:43 -#: templates/js/translated/company.js:1344 +#: templates/js/translated/company.js:1345 msgid "Delete manufacturer part" msgstr "" #: company/templates/company/manufacturer_part.html:65 -#: company/templates/company/supplier_part.html:97 order/api.py:448 -#: order/serializers.py:564 +#: company/templates/company/supplier_part.html:98 order/api.py:411 +#: order/serializers.py:649 msgid "Internal Part" msgstr "" @@ -4837,8 +5017,8 @@ msgid "No manufacturer information available" msgstr "" #: company/templates/company/manufacturer_part.html:119 -#: company/templates/company/supplier_part.html:15 company/views.py:31 -#: part/admin.py:122 part/serializers.py:904 +#: company/templates/company/supplier_part.html:16 company/views.py:31 +#: part/admin.py:122 part/serializers.py:956 #: part/templates/part/part_sidebar.html:33 templates/InvenTree/search.html:190 #: templates/navbar.html:48 msgid "Suppliers" @@ -4887,112 +5067,113 @@ msgstr "" msgid "Contacts" msgstr "" -#: company/templates/company/supplier_part.html:50 -#: templates/js/translated/company.js:1526 +#: company/templates/company/supplier_part.html:51 +#: templates/js/translated/company.js:1527 msgid "Supplier part actions" msgstr "" -#: company/templates/company/supplier_part.html:55 #: company/templates/company/supplier_part.html:56 -#: company/templates/company/supplier_part.html:228 +#: company/templates/company/supplier_part.html:57 +#: company/templates/company/supplier_part.html:229 #: part/templates/part/detail.html:126 msgid "Order Part" msgstr "" -#: company/templates/company/supplier_part.html:60 #: company/templates/company/supplier_part.html:61 +#: company/templates/company/supplier_part.html:62 msgid "Update Availability" msgstr "" -#: company/templates/company/supplier_part.html:63 #: company/templates/company/supplier_part.html:64 -#: templates/js/translated/company.js:294 +#: company/templates/company/supplier_part.html:65 +#: templates/js/translated/company.js:295 msgid "Edit Supplier Part" msgstr "" -#: company/templates/company/supplier_part.html:68 #: company/templates/company/supplier_part.html:69 -#: templates/js/translated/company.js:269 +#: company/templates/company/supplier_part.html:70 +#: templates/js/translated/company.js:270 msgid "Duplicate Supplier Part" msgstr "" -#: company/templates/company/supplier_part.html:73 +#: company/templates/company/supplier_part.html:74 msgid "Delete Supplier Part" msgstr "" -#: company/templates/company/supplier_part.html:74 +#: company/templates/company/supplier_part.html:75 msgid "Delete Supplier Part" msgstr "" -#: company/templates/company/supplier_part.html:133 +#: company/templates/company/supplier_part.html:134 +#: order/templates/order/order_base.html:155 msgid "No supplier information available" msgstr "" -#: company/templates/company/supplier_part.html:139 order/serializers.py:553 -#: part/bom.py:287 part/bom.py:319 part/serializers.py:548 -#: templates/js/translated/company.js:349 templates/js/translated/part.js:1793 +#: company/templates/company/supplier_part.html:140 order/serializers.py:638 +#: part/bom.py:286 part/bom.py:315 part/serializers.py:592 +#: templates/js/translated/company.js:350 templates/js/translated/part.js:1793 #: templates/js/translated/pricing.js:510 -#: templates/js/translated/purchase_order.js:1920 -#: templates/js/translated/purchase_order.js:2098 +#: templates/js/translated/purchase_order.js:1904 +#: templates/js/translated/purchase_order.js:2082 msgid "SKU" msgstr "" -#: company/templates/company/supplier_part.html:206 +#: company/templates/company/supplier_part.html:207 msgid "Supplier Part Stock" msgstr "" -#: company/templates/company/supplier_part.html:209 -#: part/templates/part/detail.html:24 stock/templates/stock/location.html:204 +#: company/templates/company/supplier_part.html:210 +#: part/templates/part/detail.html:24 stock/templates/stock/location.html:205 msgid "Create new stock item" msgstr "" -#: company/templates/company/supplier_part.html:210 -#: part/templates/part/detail.html:25 stock/templates/stock/location.html:205 +#: company/templates/company/supplier_part.html:211 +#: part/templates/part/detail.html:25 stock/templates/stock/location.html:206 #: templates/js/translated/stock.js:543 msgid "New Stock Item" msgstr "" -#: company/templates/company/supplier_part.html:223 +#: company/templates/company/supplier_part.html:224 msgid "Supplier Part Orders" msgstr "" -#: company/templates/company/supplier_part.html:246 +#: company/templates/company/supplier_part.html:247 msgid "Pricing Information" msgstr "" -#: company/templates/company/supplier_part.html:251 -#: templates/js/translated/company.js:398 +#: company/templates/company/supplier_part.html:252 +#: templates/js/translated/company.js:399 #: templates/js/translated/pricing.js:684 msgid "Add Price Break" msgstr "" -#: company/templates/company/supplier_part.html:270 +#: company/templates/company/supplier_part.html:271 msgid "Supplier Part Notes" msgstr "" -#: company/templates/company/supplier_part.html:305 +#: company/templates/company/supplier_part.html:306 msgid "Supplier Part QR Code" msgstr "" -#: company/templates/company/supplier_part.html:316 +#: company/templates/company/supplier_part.html:317 msgid "Link Barcode to Supplier Part" msgstr "" -#: company/templates/company/supplier_part.html:388 +#: company/templates/company/supplier_part.html:389 msgid "Update Part Availability" msgstr "" #: company/templates/company/supplier_part_sidebar.html:5 -#: part/serializers.py:902 part/stocktake.py:223 +#: part/serializers.py:954 part/stocktake.py:223 #: part/templates/part/category.html:180 #: part/templates/part/category_sidebar.html:17 stock/admin.py:68 -#: stock/serializers.py:1014 stock/serializers.py:1192 -#: stock/templates/stock/location.html:167 -#: stock/templates/stock/location.html:188 -#: stock/templates/stock/location.html:200 +#: stock/serializers.py:1045 stock/serializers.py:1223 +#: stock/templates/stock/location.html:168 +#: stock/templates/stock/location.html:189 +#: stock/templates/stock/location.html:201 #: stock/templates/stock/location_sidebar.html:7 #: templates/InvenTree/search.html:155 templates/js/translated/part.js:1067 -#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2850 +#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2851 #: users/models.py:206 msgid "Stock Items" msgstr "" @@ -5022,99 +5203,99 @@ msgstr "" msgid "New Company" msgstr "" -#: generic/states/tests.py:18 order/status_codes.py:13 +#: generic/states/fields.py:118 +msgid "Custom status key" +msgstr "" + +#: generic/states/fields.py:119 +msgid "Additional status information for this item" +msgstr "" + +#: generic/states/tests.py:22 order/status_codes.py:13 msgid "Placed" msgstr "מוקם" -#: importer/mixins.py:263 +#: importer/mixins.py:261 msgid "Invalid export format" msgstr "" -#: importer/models.py:59 -msgid "Timestamp" -msgstr "" - -#: importer/models.py:64 +#: importer/models.py:65 msgid "Data file to import" msgstr "" -#: importer/models.py:73 templates/js/translated/tables.js:558 +#: importer/models.py:74 templates/js/translated/tables.js:558 msgid "Columns" msgstr "" -#: importer/models.py:84 +#: importer/models.py:85 msgid "Import status" msgstr "" -#: importer/models.py:94 +#: importer/models.py:95 msgid "Field Defaults" msgstr "" -#: importer/models.py:101 +#: importer/models.py:102 msgid "Field Overrides" msgstr "" -#: importer/models.py:108 +#: importer/models.py:109 msgid "Field Filters" msgstr "" -#: importer/models.py:230 +#: importer/models.py:239 msgid "Some required fields have not been mapped" msgstr "" -#: importer/models.py:387 +#: importer/models.py:396 msgid "Column is already mapped to a database field" msgstr "" -#: importer/models.py:392 +#: importer/models.py:401 msgid "Field is already mapped to a data column" msgstr "" -#: importer/models.py:401 +#: importer/models.py:410 msgid "Column mapping must be linked to a valid import session" msgstr "" -#: importer/models.py:406 +#: importer/models.py:415 msgid "Column does not exist in the data file" msgstr "" -#: importer/models.py:413 +#: importer/models.py:422 msgid "Field does not exist in the target model" msgstr "" -#: importer/models.py:417 +#: importer/models.py:426 msgid "Selected field is read-only" msgstr "" -#: importer/models.py:422 importer/models.py:493 +#: importer/models.py:431 importer/models.py:502 msgid "Import Session" msgstr "" -#: importer/models.py:426 +#: importer/models.py:435 msgid "Field" msgstr "" -#: importer/models.py:428 +#: importer/models.py:437 msgid "Column" msgstr "" -#: importer/models.py:497 +#: importer/models.py:506 msgid "Row Index" msgstr "" -#: importer/models.py:500 +#: importer/models.py:509 msgid "Original row data" msgstr "" -#: importer/models.py:503 part/models.py:3951 -msgid "Data" -msgstr "" - -#: importer/models.py:505 machine/models.py:110 +#: importer/models.py:514 machine/models.py:110 msgid "Errors" msgstr "" -#: importer/models.py:507 part/api.py:873 +#: importer/models.py:516 part/api.py:857 msgid "Valid" msgstr "" @@ -5166,19 +5347,19 @@ msgstr "" msgid "Row has already been completed" msgstr "" -#: importer/status_codes.py:11 +#: importer/status_codes.py:13 msgid "Initializing" msgstr "" -#: importer/status_codes.py:12 +#: importer/status_codes.py:18 msgid "Mapping Columns" msgstr "" -#: importer/status_codes.py:13 +#: importer/status_codes.py:21 msgid "Importing Data" msgstr "" -#: importer/status_codes.py:16 +#: importer/status_codes.py:24 msgid "Processing Data" msgstr "" @@ -5202,52 +5383,52 @@ msgstr "" msgid "Value must be a valid dictionary object" msgstr "" -#: machine/machine_types/label_printer.py:215 +#: machine/machine_types/label_printer.py:216 msgid "Copies" msgstr "" -#: machine/machine_types/label_printer.py:216 +#: machine/machine_types/label_printer.py:217 msgid "Number of copies to print for each label" msgstr "" -#: machine/machine_types/label_printer.py:231 +#: machine/machine_types/label_printer.py:232 msgid "Connected" msgstr "" -#: machine/machine_types/label_printer.py:232 order/api.py:1410 -#: templates/js/translated/sales_order.js:1078 +#: machine/machine_types/label_printer.py:233 order/api.py:1532 +#: templates/js/translated/sales_order.js:1044 msgid "Unknown" msgstr "" -#: machine/machine_types/label_printer.py:233 +#: machine/machine_types/label_printer.py:234 msgid "Printing" msgstr "" -#: machine/machine_types/label_printer.py:234 +#: machine/machine_types/label_printer.py:235 msgid "No media" msgstr "" -#: machine/machine_types/label_printer.py:235 +#: machine/machine_types/label_printer.py:236 msgid "Paper jam" msgstr "" -#: machine/machine_types/label_printer.py:236 +#: machine/machine_types/label_printer.py:237 msgid "Disconnected" msgstr "" -#: machine/machine_types/label_printer.py:243 +#: machine/machine_types/label_printer.py:244 msgid "Label Printer" msgstr "" -#: machine/machine_types/label_printer.py:244 +#: machine/machine_types/label_printer.py:245 msgid "Directly print labels for various items." msgstr "" -#: machine/machine_types/label_printer.py:250 +#: machine/machine_types/label_printer.py:251 msgid "Printer Location" msgstr "" -#: machine/machine_types/label_printer.py:251 +#: machine/machine_types/label_printer.py:252 msgid "Scope the printer to a specific location" msgstr "" @@ -5307,79 +5488,75 @@ msgstr "" #: report/templates/report/inventree_purchase_order_report.html:31 #: report/templates/report/inventree_sales_order_report.html:31 #: templates/js/translated/order.js:352 -#: templates/js/translated/purchase_order.js:2195 -#: templates/js/translated/sales_order.js:1883 +#: templates/js/translated/purchase_order.js:2179 +#: templates/js/translated/sales_order.js:1864 msgid "Total Price" msgstr "" -#: order/api.py:80 order/api.py:151 order/serializers.py:93 -#: order/templates/order/order_base.html:123 -#: order/templates/order/return_order_base.html:116 -#: order/templates/order/sales_order_base.html:125 +#: order/api.py:78 order/api.py:149 order/serializers.py:124 +#: order/templates/order/order_base.html:124 +#: order/templates/order/return_order_base.html:117 +#: order/templates/order/sales_order_base.html:126 msgid "Order Status" msgstr "" -#: order/api.py:88 order/templates/order/order_base.html:111 -#: order/templates/order/return_order_base.html:104 -#: order/templates/order/sales_order_base.html:113 +#: order/api.py:86 order/templates/order/order_base.html:112 +#: order/templates/order/return_order_base.html:105 +#: order/templates/order/sales_order_base.html:114 msgid "Order Reference" msgstr "" -#: order/api.py:116 templates/js/translated/table_filters.js:93 +#: order/api.py:114 order/api.py:1022 +#: templates/js/translated/table_filters.js:93 #: templates/js/translated/table_filters.js:625 #: templates/js/translated/table_filters.js:651 #: templates/js/translated/table_filters.js:666 msgid "Outstanding" msgstr "" -#: order/api.py:132 +#: order/api.py:130 msgid "Has Project Code" msgstr "" -#: order/api.py:155 templates/js/translated/table_filters.js:201 +#: order/api.py:153 templates/js/translated/table_filters.js:201 #: templates/js/translated/table_filters.js:791 msgid "Has Pricing" msgstr "" -#: order/api.py:230 -msgid "No matching purchase order found" -msgstr "" - -#: order/api.py:425 order/api.py:763 order/models.py:1484 order/models.py:1598 -#: order/models.py:1649 order/models.py:1764 order/models.py:1923 -#: order/models.py:2383 order/models.py:2439 -#: templates/js/translated/sales_order.js:1524 +#: order/api.py:375 order/api.py:771 order/api.py:986 order/models.py:1500 +#: order/models.py:1614 order/models.py:1665 order/models.py:1793 +#: order/models.py:1956 order/models.py:2422 order/models.py:2478 +#: templates/js/translated/sales_order.js:1490 msgid "Order" msgstr "" -#: order/api.py:429 order/api.py:784 +#: order/api.py:379 order/api.py:809 msgid "Order Complete" msgstr "" -#: order/api.py:452 +#: order/api.py:430 msgid "Order Pending" msgstr "" -#: order/api.py:1404 order/models.py:379 order/models.py:1485 -#: order/models.py:1599 order/templates/order/order_base.html:9 -#: order/templates/order/order_base.html:18 +#: order/api.py:1526 order/models.py:386 order/models.py:1501 +#: order/models.py:1615 order/templates/order/order_base.html:10 +#: order/templates/order/order_base.html:19 #: report/templates/report/inventree_purchase_order_report.html:14 -#: stock/serializers.py:120 stock/templates/stock/item_base.html:176 +#: stock/serializers.py:121 stock/templates/stock/item_base.html:173 #: templates/email/overdue_purchase_order.html:15 #: templates/js/translated/part.js:1752 templates/js/translated/pricing.js:804 -#: templates/js/translated/purchase_order.js:168 -#: templates/js/translated/purchase_order.js:753 -#: templates/js/translated/purchase_order.js:1743 -#: templates/js/translated/stock.js:2345 templates/js/translated/stock.js:2991 +#: templates/js/translated/purchase_order.js:736 +#: templates/js/translated/purchase_order.js:1727 +#: templates/js/translated/stock.js:2346 templates/js/translated/stock.js:2992 msgid "Purchase Order" msgstr "" -#: order/api.py:1408 order/models.py:2091 order/models.py:2384 -#: order/models.py:2440 order/templates/order/return_order_base.html:9 -#: order/templates/order/return_order_base.html:28 +#: order/api.py:1530 order/models.py:2124 order/models.py:2423 +#: order/models.py:2479 order/templates/order/return_order_base.html:10 +#: order/templates/order/return_order_base.html:29 #: report/templates/report/inventree_return_order_report.html:13 #: templates/js/translated/return_order.js:280 -#: templates/js/translated/stock.js:3025 +#: templates/js/translated/stock.js:3026 msgid "Return Order" msgstr "" @@ -5387,751 +5564,782 @@ msgstr "" msgid "Total price for this order" msgstr "" -#: order/models.py:95 order/serializers.py:71 +#: order/models.py:95 order/serializers.py:73 msgid "Order Currency" msgstr "" -#: order/models.py:98 order/serializers.py:72 +#: order/models.py:98 order/serializers.py:74 msgid "Currency for this order (leave blank to use company default)" msgstr "" -#: order/models.py:246 +#: order/models.py:243 msgid "Contact does not match selected company" msgstr "" -#: order/models.py:289 +#: order/models.py:296 msgid "Order description (optional)" msgstr "" -#: order/models.py:298 +#: order/models.py:305 msgid "Select project code for this order" msgstr "" -#: order/models.py:302 order/models.py:1385 order/models.py:1817 +#: order/models.py:309 order/models.py:1402 order/models.py:1846 msgid "Link to external page" msgstr "" -#: order/models.py:310 +#: order/models.py:317 msgid "Expected date for order delivery. Order will be overdue after this date." msgstr "" -#: order/models.py:324 +#: order/models.py:331 msgid "Created By" msgstr "" -#: order/models.py:332 +#: order/models.py:339 msgid "User or group responsible for this order" msgstr "" -#: order/models.py:343 +#: order/models.py:350 msgid "Point of contact for this order" msgstr "" -#: order/models.py:353 +#: order/models.py:360 msgid "Company address for this order" msgstr "" -#: order/models.py:468 order/models.py:979 +#: order/models.py:480 order/models.py:1006 msgid "Order reference" msgstr "" -#: order/models.py:477 +#: order/models.py:489 msgid "Purchase order status" msgstr "" -#: order/models.py:492 +#: order/models.py:504 msgid "Company from which the items are being ordered" msgstr "" -#: order/models.py:503 order/templates/order/order_base.html:153 -#: templates/js/translated/purchase_order.js:1772 +#: order/models.py:515 order/templates/order/order_base.html:162 +#: templates/js/translated/purchase_order.js:1756 msgid "Supplier Reference" msgstr "" -#: order/models.py:504 +#: order/models.py:516 msgid "Supplier order reference code" msgstr "" -#: order/models.py:513 +#: order/models.py:525 msgid "received by" msgstr "" -#: order/models.py:519 order/models.py:2173 +#: order/models.py:531 order/models.py:2212 msgid "Issue Date" msgstr "" -#: order/models.py:520 order/models.py:2174 +#: order/models.py:532 order/models.py:2213 msgid "Date order was issued" msgstr "" -#: order/models.py:527 order/models.py:2181 +#: order/models.py:539 order/models.py:2220 msgid "Date order was completed" msgstr "" -#: order/models.py:571 +#: order/models.py:549 order/models.py:1552 +msgid "Destination for received items" +msgstr "" + +#: order/models.py:593 msgid "Part supplier must match PO supplier" msgstr "" -#: order/models.py:806 +#: order/models.py:828 msgid "Quantity must be a positive number" msgstr "" -#: order/models.py:991 +#: order/models.py:1018 msgid "Company to which the items are being sold" msgstr "" -#: order/models.py:1003 +#: order/models.py:1030 msgid "Sales order status" msgstr "" -#: order/models.py:1014 order/models.py:2166 +#: order/models.py:1041 order/models.py:2205 msgid "Customer Reference " msgstr "" -#: order/models.py:1015 order/models.py:2167 +#: order/models.py:1042 order/models.py:2206 msgid "Customer order reference code" msgstr "" -#: order/models.py:1019 order/models.py:1771 -#: templates/js/translated/sales_order.js:879 -#: templates/js/translated/sales_order.js:1060 +#: order/models.py:1046 order/models.py:1800 +#: templates/js/translated/sales_order.js:838 +#: templates/js/translated/sales_order.js:1026 msgid "Shipment Date" msgstr "" -#: order/models.py:1028 +#: order/models.py:1055 msgid "shipped by" msgstr "" -#: order/models.py:1077 +#: order/models.py:1094 msgid "Order is already complete" msgstr "" -#: order/models.py:1080 +#: order/models.py:1097 msgid "Order is already cancelled" msgstr "" -#: order/models.py:1084 +#: order/models.py:1101 msgid "Only an open order can be marked as complete" msgstr "" -#: order/models.py:1088 +#: order/models.py:1105 msgid "Order cannot be completed as there are incomplete shipments" msgstr "" -#: order/models.py:1093 +#: order/models.py:1110 msgid "Order cannot be completed as there are incomplete line items" msgstr "" -#: order/models.py:1357 +#: order/models.py:1374 msgid "Item quantity" msgstr "" -#: order/models.py:1374 +#: order/models.py:1391 msgid "Line item reference" msgstr "" -#: order/models.py:1381 +#: order/models.py:1398 msgid "Line item notes" msgstr "" -#: order/models.py:1393 +#: order/models.py:1410 msgid "Target date for this line item (leave blank to use the target date from the order)" msgstr "" -#: order/models.py:1414 +#: order/models.py:1431 msgid "Line item description (optional)" msgstr "" -#: order/models.py:1420 -msgid "Context" -msgstr "" - -#: order/models.py:1421 +#: order/models.py:1438 msgid "Additional context for this line" msgstr "" -#: order/models.py:1431 +#: order/models.py:1448 msgid "Unit price" msgstr "" -#: order/models.py:1445 +#: order/models.py:1462 msgid "Purchase Order Line Item" msgstr "" -#: order/models.py:1469 +#: order/models.py:1486 msgid "Supplier part must match supplier" msgstr "" -#: order/models.py:1476 -msgid "deleted" -msgstr "" - -#: order/models.py:1504 +#: order/models.py:1520 msgid "Supplier part" msgstr "" -#: order/models.py:1511 order/templates/order/order_base.html:201 +#: order/models.py:1527 order/templates/order/order_base.html:210 #: templates/js/translated/part.js:1876 templates/js/translated/part.js:1908 -#: templates/js/translated/purchase_order.js:1369 -#: templates/js/translated/purchase_order.js:2239 +#: templates/js/translated/purchase_order.js:1352 +#: templates/js/translated/purchase_order.js:2223 #: templates/js/translated/return_order.js:762 #: templates/js/translated/table_filters.js:119 #: templates/js/translated/table_filters.js:605 msgid "Received" msgstr "" -#: order/models.py:1512 +#: order/models.py:1528 msgid "Number of items received" msgstr "" -#: order/models.py:1520 stock/models.py:959 stock/serializers.py:610 -#: stock/templates/stock/item_base.html:183 -#: templates/js/translated/stock.js:2396 +#: order/models.py:1536 stock/models.py:1036 stock/serializers.py:637 +#: stock/templates/stock/item_base.html:180 +#: templates/js/translated/stock.js:2397 msgid "Purchase Price" msgstr "" -#: order/models.py:1521 +#: order/models.py:1537 msgid "Unit purchase price" msgstr "" -#: order/models.py:1536 -msgid "Where does the Purchaser want this item to be stored?" -msgstr "" - -#: order/models.py:1587 +#: order/models.py:1603 msgid "Purchase Order Extra Line" msgstr "" -#: order/models.py:1616 +#: order/models.py:1632 msgid "Sales Order Line Item" msgstr "" -#: order/models.py:1637 +#: order/models.py:1653 msgid "Virtual part cannot be assigned to a sales order" msgstr "" -#: order/models.py:1642 +#: order/models.py:1658 msgid "Only salable parts can be assigned to a sales order" msgstr "" -#: order/models.py:1668 part/templates/part/part_pricing.html:107 -#: part/templates/part/prices.html:139 templates/js/translated/pricing.js:957 +#: order/models.py:1684 part/templates/part/part_pricing.html:107 +#: part/templates/part/prices.html:139 templates/js/translated/pricing.js:955 msgid "Sale Price" msgstr "" -#: order/models.py:1669 +#: order/models.py:1685 msgid "Unit sale price" msgstr "" -#: order/models.py:1678 order/status_codes.py:48 -#: templates/js/translated/sales_order.js:1559 -#: templates/js/translated/sales_order.js:1680 -#: templates/js/translated/sales_order.js:1993 +#: order/models.py:1694 order/status_codes.py:50 +#: templates/js/translated/sales_order.js:1525 +#: templates/js/translated/sales_order.js:1661 +#: templates/js/translated/sales_order.js:1974 msgid "Shipped" msgstr "נשלח" -#: order/models.py:1679 +#: order/models.py:1695 msgid "Shipped quantity" msgstr "" -#: order/models.py:1751 +#: order/models.py:1769 msgid "Sales Order Shipment" msgstr "" -#: order/models.py:1772 +#: order/models.py:1801 msgid "Date of shipment" msgstr "" -#: order/models.py:1778 templates/js/translated/sales_order.js:1072 +#: order/models.py:1807 templates/js/translated/sales_order.js:1038 msgid "Delivery Date" msgstr "" -#: order/models.py:1779 +#: order/models.py:1808 msgid "Date of delivery of shipment" msgstr "" -#: order/models.py:1787 +#: order/models.py:1816 msgid "Checked By" msgstr "" -#: order/models.py:1788 +#: order/models.py:1817 msgid "User who checked this shipment" msgstr "" -#: order/models.py:1795 order/models.py:2018 order/serializers.py:1475 -#: order/serializers.py:1585 templates/js/translated/model_renderers.js:455 +#: order/models.py:1824 order/models.py:2051 order/serializers.py:1601 +#: order/serializers.py:1725 +#: report/templates/report/inventree_sales_order_shipment_report.html:14 +#: templates/js/translated/model_renderers.js:458 +#: templates/js/translated/sales_order.js:1615 msgid "Shipment" msgstr "" -#: order/models.py:1796 +#: order/models.py:1825 msgid "Shipment number" msgstr "" -#: order/models.py:1804 +#: order/models.py:1833 msgid "Tracking Number" msgstr "" -#: order/models.py:1805 +#: order/models.py:1834 msgid "Shipment tracking information" msgstr "" -#: order/models.py:1812 +#: order/models.py:1841 msgid "Invoice Number" msgstr "" -#: order/models.py:1813 +#: order/models.py:1842 msgid "Reference number for associated invoice" msgstr "" -#: order/models.py:1833 +#: order/models.py:1862 msgid "Shipment has already been sent" msgstr "" -#: order/models.py:1836 +#: order/models.py:1865 msgid "Shipment has no allocated stock items" msgstr "" -#: order/models.py:1912 +#: order/models.py:1945 msgid "Sales Order Extra Line" msgstr "" -#: order/models.py:1941 +#: order/models.py:1974 msgid "Sales Order Allocation" msgstr "" -#: order/models.py:1964 order/models.py:1966 +#: order/models.py:1997 order/models.py:1999 msgid "Stock item has not been assigned" msgstr "" -#: order/models.py:1973 +#: order/models.py:2006 msgid "Cannot allocate stock item to a line with a different part" msgstr "" -#: order/models.py:1976 +#: order/models.py:2009 msgid "Cannot allocate stock to a line without a part" msgstr "" -#: order/models.py:1979 +#: order/models.py:2012 msgid "Allocation quantity cannot exceed stock quantity" msgstr "" -#: order/models.py:1998 order/serializers.py:1345 +#: order/models.py:2031 order/serializers.py:1471 msgid "Quantity must be 1 for serialized stock item" msgstr "" -#: order/models.py:2001 +#: order/models.py:2034 msgid "Sales order does not match shipment" msgstr "" -#: order/models.py:2002 plugin/base/barcodes/api.py:524 +#: order/models.py:2035 plugin/base/barcodes/api.py:629 msgid "Shipment does not match sales order" msgstr "" -#: order/models.py:2010 +#: order/models.py:2043 msgid "Line" msgstr "" -#: order/models.py:2019 +#: order/models.py:2052 msgid "Sales order shipment reference" msgstr "" -#: order/models.py:2032 order/models.py:2391 +#: order/models.py:2065 order/models.py:2430 #: templates/js/translated/return_order.js:720 msgid "Item" msgstr "" -#: order/models.py:2033 +#: order/models.py:2066 msgid "Select stock item to allocate" msgstr "" -#: order/models.py:2042 +#: order/models.py:2075 msgid "Enter stock allocation quantity" msgstr "" -#: order/models.py:2136 +#: order/models.py:2175 msgid "Return Order reference" msgstr "" -#: order/models.py:2148 +#: order/models.py:2187 msgid "Company from which items are being returned" msgstr "" -#: order/models.py:2160 +#: order/models.py:2199 msgid "Return order status" msgstr "" -#: order/models.py:2362 +#: order/models.py:2401 msgid "Return Order Line Item" msgstr "" -#: order/models.py:2376 +#: order/models.py:2415 msgid "Only serialized items can be assigned to a Return Order" msgstr "" -#: order/models.py:2392 +#: order/models.py:2431 msgid "Select item to return from customer" msgstr "" -#: order/models.py:2398 +#: order/models.py:2437 msgid "Received Date" msgstr "" -#: order/models.py:2399 +#: order/models.py:2438 msgid "The date this this return item was received" msgstr "" -#: order/models.py:2410 templates/js/translated/return_order.js:731 +#: order/models.py:2449 templates/js/translated/return_order.js:731 #: templates/js/translated/table_filters.js:122 msgid "Outcome" msgstr "" -#: order/models.py:2411 +#: order/models.py:2450 msgid "Outcome for this line item" msgstr "" -#: order/models.py:2418 +#: order/models.py:2457 msgid "Cost associated with return or repair for this line item" msgstr "" -#: order/models.py:2428 +#: order/models.py:2467 msgid "Return Order Extra Line" msgstr "" -#: order/serializers.py:86 +#: order/serializers.py:87 +msgid "Order ID" +msgstr "" + +#: order/serializers.py:87 +msgid "ID of the order to duplicate" +msgstr "" + +#: order/serializers.py:93 +msgid "Copy Lines" +msgstr "" + +#: order/serializers.py:94 +msgid "Copy line items from the original order" +msgstr "" + +#: order/serializers.py:100 +msgid "Copy Extra Lines" +msgstr "" + +#: order/serializers.py:101 +msgid "Copy extra line items from the original order" +msgstr "" + +#: order/serializers.py:117 msgid "Completed Lines" msgstr "" -#: order/serializers.py:283 stock/admin.py:195 +#: order/serializers.py:161 +msgid "Duplicate Order" +msgstr "" + +#: order/serializers.py:162 +msgid "Specify options for duplicating this order" +msgstr "" + +#: order/serializers.py:234 +msgid "Invalid order ID" +msgstr "" + +#: order/serializers.py:374 stock/admin.py:196 msgid "Supplier Name" msgstr "" -#: order/serializers.py:331 +#: order/serializers.py:416 msgid "Order cannot be cancelled" msgstr "" -#: order/serializers.py:346 order/serializers.py:1366 +#: order/serializers.py:431 order/serializers.py:1492 msgid "Allow order to be closed with incomplete line items" msgstr "" -#: order/serializers.py:356 order/serializers.py:1376 +#: order/serializers.py:441 order/serializers.py:1502 msgid "Order has incomplete line items" msgstr "" -#: order/serializers.py:506 +#: order/serializers.py:591 msgid "Order is not open" msgstr "" -#: order/serializers.py:527 +#: order/serializers.py:612 msgid "Auto Pricing" msgstr "" -#: order/serializers.py:529 +#: order/serializers.py:614 msgid "Automatically calculate purchase price based on supplier part data" msgstr "" -#: order/serializers.py:539 +#: order/serializers.py:624 msgid "Purchase price currency" msgstr "" -#: order/serializers.py:545 +#: order/serializers.py:630 msgid "Merge Items" msgstr "" -#: order/serializers.py:547 +#: order/serializers.py:632 msgid "Merge items with the same part, destination and target date into one line item" msgstr "" -#: order/serializers.py:560 part/models.py:1033 +#: order/serializers.py:645 part/models.py:1094 part/serializers.py:387 msgid "Internal Part Number" msgstr "" -#: order/serializers.py:568 +#: order/serializers.py:653 msgid "Internal Part Name" msgstr "" -#: order/serializers.py:584 +#: order/serializers.py:669 msgid "Supplier part must be specified" msgstr "" -#: order/serializers.py:587 +#: order/serializers.py:672 msgid "Purchase order must be specified" msgstr "" -#: order/serializers.py:595 +#: order/serializers.py:680 msgid "Supplier must match purchase order" msgstr "" -#: order/serializers.py:596 +#: order/serializers.py:681 msgid "Purchase order must match supplier" msgstr "" -#: order/serializers.py:639 order/serializers.py:1446 +#: order/serializers.py:724 order/serializers.py:1572 msgid "Line Item" msgstr "" -#: order/serializers.py:645 +#: order/serializers.py:730 msgid "Line item does not match purchase order" msgstr "" -#: order/serializers.py:655 order/serializers.py:779 order/serializers.py:1782 +#: order/serializers.py:740 order/serializers.py:881 order/serializers.py:1934 msgid "Select destination location for received items" msgstr "" -#: order/serializers.py:671 templates/js/translated/purchase_order.js:1130 +#: order/serializers.py:756 templates/js/translated/purchase_order.js:1113 #: templates/js/translated/stock.js:1200 msgid "Enter batch code for incoming stock items" msgstr "" -#: order/serializers.py:679 templates/js/translated/purchase_order.js:1155 +#: order/serializers.py:764 templates/js/translated/purchase_order.js:1138 msgid "Enter serial numbers for incoming stock items" msgstr "" -#: order/serializers.py:691 +#: order/serializers.py:776 msgid "Override packaging information for incoming stock items" msgstr "" -#: order/serializers.py:699 +#: order/serializers.py:784 msgid "Additional note for incoming stock items" msgstr "" -#: order/serializers.py:706 templates/js/translated/barcode.js:52 +#: order/serializers.py:791 templates/js/translated/barcode.js:52 msgid "Barcode" msgstr "" -#: order/serializers.py:707 +#: order/serializers.py:792 msgid "Scanned barcode" msgstr "" -#: order/serializers.py:723 +#: order/serializers.py:808 msgid "Barcode is already in use" msgstr "" -#: order/serializers.py:747 +#: order/serializers.py:831 msgid "An integer quantity must be provided for trackable parts" msgstr "" -#: order/serializers.py:795 order/serializers.py:1798 +#: order/serializers.py:898 order/serializers.py:1950 msgid "Line items must be provided" msgstr "" -#: order/serializers.py:811 +#: order/serializers.py:914 msgid "Destination location must be specified" msgstr "" -#: order/serializers.py:822 +#: order/serializers.py:925 msgid "Supplied barcode values must be unique" msgstr "" -#: order/serializers.py:1187 +#: order/serializers.py:1221 msgid "Sale price currency" msgstr "" -#: order/serializers.py:1248 +#: order/serializers.py:1260 +msgid "Allocated Items" +msgstr "" + +#: order/serializers.py:1374 msgid "No shipment details provided" msgstr "" -#: order/serializers.py:1309 order/serializers.py:1455 +#: order/serializers.py:1435 order/serializers.py:1581 msgid "Line item is not associated with this order" msgstr "" -#: order/serializers.py:1328 +#: order/serializers.py:1454 msgid "Quantity must be positive" msgstr "" -#: order/serializers.py:1465 +#: order/serializers.py:1591 msgid "Enter serial numbers to allocate" msgstr "" -#: order/serializers.py:1487 order/serializers.py:1593 +#: order/serializers.py:1613 order/serializers.py:1733 msgid "Shipment has already been shipped" msgstr "" -#: order/serializers.py:1490 order/serializers.py:1596 +#: order/serializers.py:1616 order/serializers.py:1736 msgid "Shipment is not associated with this order" msgstr "" -#: order/serializers.py:1537 +#: order/serializers.py:1671 msgid "No match found for the following serial numbers" msgstr "" -#: order/serializers.py:1544 -msgid "The following serial numbers are already allocated" +#: order/serializers.py:1678 +msgid "The following serial numbers are unavailable" msgstr "" -#: order/serializers.py:1752 +#: order/serializers.py:1904 msgid "Return order line item" msgstr "" -#: order/serializers.py:1758 +#: order/serializers.py:1910 msgid "Line item does not match return order" msgstr "" -#: order/serializers.py:1761 +#: order/serializers.py:1913 msgid "Line item has already been received" msgstr "" -#: order/serializers.py:1790 +#: order/serializers.py:1942 msgid "Items can only be received against orders which are in progress" msgstr "" -#: order/serializers.py:1873 +#: order/serializers.py:2025 msgid "Line price currency" msgstr "" -#: order/status_codes.py:17 order/status_codes.py:52 stock/status_codes.py:16 +#: order/status_codes.py:17 order/status_codes.py:54 stock/status_codes.py:16 msgid "Lost" msgstr "אבד" -#: order/status_codes.py:18 order/status_codes.py:53 stock/status_codes.py:22 +#: order/status_codes.py:18 order/status_codes.py:55 stock/status_codes.py:24 msgid "Returned" msgstr "הוחזר" -#: order/status_codes.py:45 order/status_codes.py:77 +#: order/status_codes.py:47 order/status_codes.py:79 msgid "In Progress" msgstr "" -#: order/status_codes.py:101 +#: order/status_codes.py:105 msgid "Return" msgstr "" -#: order/status_codes.py:104 +#: order/status_codes.py:108 msgid "Repair" msgstr "" -#: order/status_codes.py:107 +#: order/status_codes.py:111 msgid "Replace" msgstr "" -#: order/status_codes.py:110 +#: order/status_codes.py:114 msgid "Refund" msgstr "" -#: order/status_codes.py:113 +#: order/status_codes.py:117 msgid "Reject" msgstr "" -#: order/tasks.py:25 +#: order/tasks.py:30 msgid "Overdue Purchase Order" msgstr "" -#: order/tasks.py:30 +#: order/tasks.py:35 #, python-brace-format msgid "Purchase order {po} is now overdue" msgstr "" -#: order/tasks.py:75 +#: order/tasks.py:80 msgid "Overdue Sales Order" msgstr "" -#: order/tasks.py:80 +#: order/tasks.py:85 #, python-brace-format msgid "Sales order {so} is now overdue" msgstr "" -#: order/templates/order/order_base.html:51 +#: order/templates/order/order_base.html:52 msgid "Print purchase order report" msgstr "" -#: order/templates/order/order_base.html:53 -#: order/templates/order/return_order_base.html:62 -#: order/templates/order/sales_order_base.html:62 +#: order/templates/order/order_base.html:54 +#: order/templates/order/return_order_base.html:63 +#: order/templates/order/sales_order_base.html:63 msgid "Export order to file" msgstr "" -#: order/templates/order/order_base.html:59 -#: order/templates/order/return_order_base.html:72 -#: order/templates/order/sales_order_base.html:71 +#: order/templates/order/order_base.html:60 +#: order/templates/order/return_order_base.html:73 +#: order/templates/order/sales_order_base.html:72 msgid "Order actions" msgstr "" -#: order/templates/order/order_base.html:64 -#: order/templates/order/return_order_base.html:76 -#: order/templates/order/sales_order_base.html:75 +#: order/templates/order/order_base.html:65 +#: order/templates/order/return_order_base.html:77 +#: order/templates/order/sales_order_base.html:76 msgid "Edit order" msgstr "" -#: order/templates/order/order_base.html:68 +#: order/templates/order/order_base.html:69 msgid "Duplicate order" msgstr "" -#: order/templates/order/order_base.html:73 -#: order/templates/order/return_order_base.html:78 -#: order/templates/order/sales_order_base.html:77 +#: order/templates/order/order_base.html:74 +#: order/templates/order/return_order_base.html:79 +#: order/templates/order/sales_order_base.html:78 msgid "Hold order" msgstr "" -#: order/templates/order/order_base.html:78 -#: order/templates/order/return_order_base.html:81 -#: order/templates/order/sales_order_base.html:80 +#: order/templates/order/order_base.html:79 +#: order/templates/order/return_order_base.html:82 +#: order/templates/order/sales_order_base.html:81 msgid "Cancel order" msgstr "" -#: order/templates/order/order_base.html:84 #: order/templates/order/order_base.html:85 -#: order/templates/order/return_order_base.html:85 +#: order/templates/order/order_base.html:86 #: order/templates/order/return_order_base.html:86 -#: order/templates/order/sales_order_base.html:86 +#: order/templates/order/return_order_base.html:87 #: order/templates/order/sales_order_base.html:87 +#: order/templates/order/sales_order_base.html:88 msgid "Issue Order" msgstr "" -#: order/templates/order/order_base.html:88 -#: order/templates/order/return_order_base.html:89 -msgid "Mark order as complete" -msgstr "" - #: order/templates/order/order_base.html:89 #: order/templates/order/return_order_base.html:90 -#: order/templates/order/sales_order_base.html:100 +msgid "Mark order as complete" +msgstr "" + +#: order/templates/order/order_base.html:90 +#: order/templates/order/return_order_base.html:91 +#: order/templates/order/sales_order_base.html:101 msgid "Complete Order" msgstr "" -#: order/templates/order/order_base.html:96 +#: order/templates/order/order_base.html:97 msgid "Supplier part thumbnail" msgstr "" -#: order/templates/order/order_base.html:116 -#: order/templates/order/return_order_base.html:109 -#: order/templates/order/sales_order_base.html:118 +#: order/templates/order/order_base.html:117 +#: order/templates/order/return_order_base.html:110 +#: order/templates/order/sales_order_base.html:119 msgid "Order Description" msgstr "" -#: order/templates/order/order_base.html:146 -msgid "No suppplier information available" -msgstr "" - -#: order/templates/order/order_base.html:159 -#: order/templates/order/sales_order_base.html:164 +#: order/templates/order/order_base.html:168 +#: order/templates/order/sales_order_base.html:165 msgid "Completed Line Items" msgstr "" -#: order/templates/order/order_base.html:165 -#: order/templates/order/sales_order_base.html:170 -#: order/templates/order/sales_order_base.html:180 +#: order/templates/order/order_base.html:174 +#: order/templates/order/sales_order_base.html:171 +#: order/templates/order/sales_order_base.html:181 msgid "Incomplete" msgstr "" -#: order/templates/order/order_base.html:184 -#: order/templates/order/return_order_base.html:160 +#: order/templates/order/order_base.html:193 +#: order/templates/order/return_order_base.html:161 #: report/templates/report/inventree_build_order_report.html:121 msgid "Issued" msgstr "" -#: order/templates/order/order_base.html:229 +#: order/templates/order/order_base.html:238 msgid "Total cost" msgstr "" -#: order/templates/order/order_base.html:233 -#: order/templates/order/return_order_base.html:202 -#: order/templates/order/sales_order_base.html:246 +#: order/templates/order/order_base.html:242 +#: order/templates/order/return_order_base.html:203 +#: order/templates/order/sales_order_base.html:247 msgid "Total cost could not be calculated" msgstr "" -#: order/templates/order/order_base.html:335 +#: order/templates/order/order_base.html:344 msgid "Purchase Order QR Code" msgstr "" -#: order/templates/order/order_base.html:347 +#: order/templates/order/order_base.html:356 msgid "Link Barcode to Purchase Order" msgstr "" @@ -6184,12 +6392,12 @@ msgstr "" #: part/templates/part/import_wizard/ajax_match_references.html:42 #: part/templates/part/import_wizard/match_fields.html:71 #: part/templates/part/import_wizard/match_references.html:49 -#: templates/js/translated/bom.js:133 templates/js/translated/build.js:530 -#: templates/js/translated/build.js:1802 -#: templates/js/translated/purchase_order.js:696 -#: templates/js/translated/purchase_order.js:1288 +#: templates/js/translated/bom.js:133 templates/js/translated/build.js:533 +#: templates/js/translated/build.js:1805 +#: templates/js/translated/purchase_order.js:679 +#: templates/js/translated/purchase_order.js:1271 #: templates/js/translated/return_order.js:505 -#: templates/js/translated/sales_order.js:1145 +#: templates/js/translated/sales_order.js:1111 #: templates/js/translated/stock.js:720 templates/js/translated/stock.js:889 #: templates/patterns/wizard/match_fields.html:70 msgid "Remove row" @@ -6242,7 +6450,7 @@ msgstr "" #: order/templates/order/purchase_order_detail.html:27 #: order/templates/order/return_order_detail.html:24 #: order/templates/order/sales_order_detail.html:24 -#: templates/js/translated/purchase_order.js:414 +#: templates/js/translated/purchase_order.js:397 #: templates/js/translated/return_order.js:458 #: templates/js/translated/sales_order.js:237 msgid "Add Line Item" @@ -6277,45 +6485,45 @@ msgstr "" msgid "Order Notes" msgstr "" -#: order/templates/order/return_order_base.html:18 -#: order/templates/order/sales_order_base.html:18 +#: order/templates/order/return_order_base.html:19 +#: order/templates/order/sales_order_base.html:19 msgid "Customer logo thumbnail" msgstr "" -#: order/templates/order/return_order_base.html:60 +#: order/templates/order/return_order_base.html:61 msgid "Print return order report" msgstr "" -#: order/templates/order/return_order_base.html:64 -#: order/templates/order/sales_order_base.html:64 +#: order/templates/order/return_order_base.html:65 +#: order/templates/order/sales_order_base.html:65 msgid "Print packing list" msgstr "" -#: order/templates/order/return_order_base.html:141 -#: order/templates/order/sales_order_base.html:158 +#: order/templates/order/return_order_base.html:142 +#: order/templates/order/sales_order_base.html:159 #: templates/js/translated/return_order.js:308 -#: templates/js/translated/sales_order.js:833 +#: templates/js/translated/sales_order.js:792 msgid "Customer Reference" msgstr "" -#: order/templates/order/return_order_base.html:198 -#: order/templates/order/sales_order_base.html:242 +#: order/templates/order/return_order_base.html:199 +#: order/templates/order/sales_order_base.html:243 #: part/templates/part/part_pricing.html:32 #: part/templates/part/part_pricing.html:58 #: part/templates/part/part_pricing.html:99 #: part/templates/part/part_pricing.html:114 #: templates/js/translated/part.js:1079 -#: templates/js/translated/purchase_order.js:1822 +#: templates/js/translated/purchase_order.js:1806 #: templates/js/translated/return_order.js:380 -#: templates/js/translated/sales_order.js:891 +#: templates/js/translated/sales_order.js:850 msgid "Total Cost" msgstr "" -#: order/templates/order/return_order_base.html:273 +#: order/templates/order/return_order_base.html:274 msgid "Return Order QR Code" msgstr "" -#: order/templates/order/return_order_base.html:285 +#: order/templates/order/return_order_base.html:286 msgid "Link Barcode to Return Order" msgstr "" @@ -6323,40 +6531,40 @@ msgstr "" msgid "Order Details" msgstr "" -#: order/templates/order/sales_order_base.html:60 +#: order/templates/order/sales_order_base.html:61 msgid "Print sales order report" msgstr "" -#: order/templates/order/sales_order_base.html:91 #: order/templates/order/sales_order_base.html:92 +#: order/templates/order/sales_order_base.html:93 msgid "Ship Items" msgstr "" -#: order/templates/order/sales_order_base.html:95 #: order/templates/order/sales_order_base.html:96 +#: order/templates/order/sales_order_base.html:97 msgid "Mark As Shipped" msgstr "" -#: order/templates/order/sales_order_base.html:99 -#: templates/js/translated/sales_order.js:536 +#: order/templates/order/sales_order_base.html:100 +#: templates/js/translated/sales_order.js:495 msgid "Complete Sales Order" msgstr "" -#: order/templates/order/sales_order_base.html:138 +#: order/templates/order/sales_order_base.html:139 msgid "This Sales Order has not been fully allocated" msgstr "" -#: order/templates/order/sales_order_base.html:176 +#: order/templates/order/sales_order_base.html:177 #: order/templates/order/sales_order_detail.html:99 #: order/templates/order/so_sidebar.html:11 msgid "Completed Shipments" msgstr "" -#: order/templates/order/sales_order_base.html:339 +#: order/templates/order/sales_order_base.html:340 msgid "Sales Order QR Code" msgstr "" -#: order/templates/order/sales_order_base.html:351 +#: order/templates/order/sales_order_base.html:352 msgid "Link Barcode to Sales Order" msgstr "" @@ -6370,7 +6578,7 @@ msgid "Pending Shipments" msgstr "" #: order/templates/order/sales_order_detail.html:71 -#: templates/js/translated/bom.js:1277 templates/js/translated/build.js:1063 +#: templates/js/translated/bom.js:1277 templates/js/translated/build.js:1066 #: templates/js/translated/filters.js:299 msgid "Actions" msgstr "" @@ -6383,39 +6591,40 @@ msgstr "" msgid "Match Supplier Parts" msgstr "" -#: order/views.py:406 +#: order/views.py:407 msgid "Sales order not found" msgstr "" -#: order/views.py:412 +#: order/views.py:413 msgid "Price not found" msgstr "" -#: order/views.py:415 +#: order/views.py:416 #, python-brace-format msgid "Updated {part} unit-price to {price}" msgstr "" -#: order/views.py:421 +#: order/views.py:422 #, python-brace-format msgid "Updated {part} unit-price to {price} and quantity to {qty}" msgstr "" -#: part/admin.py:48 part/models.py:1032 part/templates/part/part_base.html:269 +#: part/admin.py:48 part/models.py:1093 part/serializers.py:939 +#: part/templates/part/part_base.html:277 #: report/templates/report/inventree_stock_location_report.html:103 #: templates/js/translated/part.js:1233 templates/js/translated/part.js:2347 -#: templates/js/translated/stock.js:2121 +#: templates/js/translated/stock.js:2122 msgid "IPN" msgstr "" -#: part/admin.py:50 part/models.py:1041 part/templates/part/part_base.html:286 +#: part/admin.py:50 part/models.py:1102 part/templates/part/part_base.html:294 #: report/models.py:161 templates/js/translated/part.js:1238 #: templates/js/translated/part.js:2353 msgid "Revision" msgstr "" -#: part/admin.py:53 part/admin.py:319 part/models.py:1014 -#: part/templates/part/category.html:91 part/templates/part/part_base.html:307 +#: part/admin.py:53 part/admin.py:319 part/models.py:1075 +#: part/templates/part/category.html:91 part/templates/part/part_base.html:315 msgid "Keywords" msgstr "" @@ -6427,7 +6636,7 @@ msgstr "" msgid "Category ID" msgstr "" -#: part/admin.py:67 part/admin.py:304 part/serializers.py:880 +#: part/admin.py:67 part/admin.py:304 part/serializers.py:924 #: part/stocktake.py:222 msgid "Category Name" msgstr "" @@ -6440,11 +6649,11 @@ msgstr "" msgid "Default Supplier ID" msgstr "" -#: part/admin.py:81 part/models.py:1000 part/templates/part/part_base.html:177 +#: part/admin.py:81 part/models.py:1061 part/templates/part/part_base.html:178 msgid "Variant Of" msgstr "" -#: part/admin.py:84 part/models.py:1138 part/templates/part/part_base.html:203 +#: part/admin.py:84 part/models.py:1199 part/templates/part/part_base.html:204 msgid "Minimum Stock" msgstr "" @@ -6452,23 +6661,23 @@ msgstr "" msgid "Used In" msgstr "" -#: part/admin.py:150 part/serializers.py:897 -#: part/templates/part/part_base.html:241 stock/admin.py:235 +#: part/admin.py:150 part/serializers.py:949 +#: part/templates/part/part_base.html:249 stock/admin.py:236 #: templates/js/translated/part.js:717 templates/js/translated/part.js:2159 msgid "Building" msgstr "" -#: part/admin.py:155 part/models.py:3202 part/models.py:3216 +#: part/admin.py:155 part/models.py:3253 part/models.py:3267 #: templates/js/translated/part.js:976 msgid "Minimum Cost" msgstr "" -#: part/admin.py:158 part/models.py:3209 part/models.py:3223 +#: part/admin.py:158 part/models.py:3260 part/models.py:3274 #: templates/js/translated/part.js:986 msgid "Maximum Cost" msgstr "" -#: part/admin.py:308 part/admin.py:387 stock/admin.py:57 stock/admin.py:215 +#: part/admin.py:308 part/admin.py:387 stock/admin.py:57 stock/admin.py:216 msgid "Parent ID" msgstr "" @@ -6481,8 +6690,8 @@ msgstr "" msgid "Category Path" msgstr "" -#: part/admin.py:325 part/models.py:425 part/serializers.py:130 -#: part/serializers.py:290 part/serializers.py:415 +#: part/admin.py:325 part/models.py:420 part/serializers.py:130 +#: part/serializers.py:323 part/serializers.py:459 #: part/templates/part/cat_link.html:3 part/templates/part/category.html:20 #: part/templates/part/category.html:138 part/templates/part/category.html:158 #: part/templates/part/category_sidebar.html:9 @@ -6509,15 +6718,15 @@ msgstr "" msgid "Part Revision" msgstr "" -#: part/admin.py:418 part/serializers.py:1346 +#: part/admin.py:418 part/serializers.py:1400 #: templates/js/translated/pricing.js:358 -#: templates/js/translated/pricing.js:1024 +#: templates/js/translated/pricing.js:1022 msgid "Minimum Price" msgstr "" -#: part/admin.py:423 part/serializers.py:1361 +#: part/admin.py:423 part/serializers.py:1415 #: templates/js/translated/pricing.js:353 -#: templates/js/translated/pricing.js:1032 +#: templates/js/translated/pricing.js:1030 msgid "Maximum Price" msgstr "" @@ -6545,94 +6754,98 @@ msgstr "" msgid "Filter by top-level categories" msgstr "" +#: part/api.py:156 stock/api.py:343 +msgid "Cascade" +msgstr "" + #: part/api.py:158 msgid "Include sub-categories in filtered results" msgstr "" -#: part/api.py:179 templates/js/translated/part.js:311 +#: part/api.py:178 templates/js/translated/part.js:311 msgid "Parent" msgstr "" -#: part/api.py:181 +#: part/api.py:180 msgid "Filter by parent category" msgstr "" -#: part/api.py:214 +#: part/api.py:213 msgid "Exclude Tree" msgstr "" -#: part/api.py:216 +#: part/api.py:215 msgid "Exclude sub-categories under the specified category" msgstr "" -#: part/api.py:441 +#: part/api.py:440 msgid "Has Results" msgstr "" -#: part/api.py:608 +#: part/api.py:604 msgid "Incoming Purchase Order" msgstr "" -#: part/api.py:626 +#: part/api.py:618 msgid "Outgoing Sales Order" msgstr "" -#: part/api.py:642 +#: part/api.py:630 msgid "Stock produced by Build Order" msgstr "" -#: part/api.py:726 +#: part/api.py:712 msgid "Stock required for Build Order" msgstr "" -#: part/api.py:874 +#: part/api.py:858 msgid "Validate entire Bill of Materials" msgstr "" -#: part/api.py:880 +#: part/api.py:864 msgid "This option must be selected" msgstr "" -#: part/api.py:916 +#: part/api.py:900 msgid "Is Revision" msgstr "" -#: part/api.py:926 +#: part/api.py:910 msgid "Has Revisions" msgstr "" -#: part/api.py:1117 +#: part/api.py:1101 msgid "BOM Valid" msgstr "" -#: part/api.py:1523 part/models.py:1024 part/models.py:3489 part/models.py:4046 -#: part/serializers.py:430 part/serializers.py:1202 -#: part/templates/part/part_base.html:260 stock/api.py:781 +#: part/api.py:1509 part/models.py:1085 part/models.py:3540 part/models.py:4104 +#: part/serializers.py:474 part/serializers.py:1255 +#: part/templates/part/part_base.html:268 stock/api.py:781 #: templates/InvenTree/settings/settings_staff_js.html:300 #: templates/js/translated/notification.js:60 #: templates/js/translated/part.js:2383 msgid "Category" msgstr "" -#: part/api.py:1761 +#: part/api.py:1750 msgid "Assembly part is testable" msgstr "" -#: part/api.py:1770 +#: part/api.py:1759 msgid "Component part is testable" msgstr "" -#: part/api.py:1821 +#: part/api.py:1810 msgid "Uses" msgstr "" -#: part/bom.py:178 part/models.py:107 part/models.py:1077 -#: part/templates/part/category.html:113 part/templates/part/part_base.html:376 +#: part/bom.py:183 part/models.py:109 part/models.py:1138 +#: part/templates/part/category.html:113 part/templates/part/part_base.html:384 #: templates/js/translated/part.js:2397 msgid "Default Location" msgstr "" -#: part/bom.py:179 part/serializers.py:905 +#: part/bom.py:184 part/serializers.py:957 #: templates/email/low_stock_notification.html:16 msgid "Total Stock" msgstr "" @@ -6641,789 +6854,789 @@ msgstr "" msgid "Input quantity for price calculation" msgstr "" -#: part/models.py:88 part/models.py:4047 part/templates/part/category.html:16 +#: part/models.py:90 part/models.py:4105 part/templates/part/category.html:16 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "" -#: part/models.py:89 part/templates/part/category.html:133 +#: part/models.py:91 part/templates/part/category.html:133 #: templates/InvenTree/search.html:97 templates/js/translated/search.js:158 #: users/models.py:202 msgid "Part Categories" msgstr "" -#: part/models.py:108 +#: part/models.py:110 msgid "Default location for parts in this category" msgstr "" -#: part/models.py:113 stock/models.py:187 templates/js/translated/part.js:2828 -#: templates/js/translated/stock.js:2856 +#: part/models.py:115 stock/models.py:193 templates/js/translated/part.js:2828 +#: templates/js/translated/stock.js:2857 #: templates/js/translated/table_filters.js:246 #: templates/js/translated/table_filters.js:290 msgid "Structural" msgstr "" -#: part/models.py:115 +#: part/models.py:117 msgid "Parts may not be directly assigned to a structural category, but may be assigned to child categories." msgstr "" -#: part/models.py:124 +#: part/models.py:126 msgid "Default keywords" msgstr "" -#: part/models.py:125 +#: part/models.py:127 msgid "Default keywords for parts in this category" msgstr "" -#: part/models.py:131 stock/models.py:90 stock/models.py:169 +#: part/models.py:133 stock/models.py:96 stock/models.py:175 #: templates/InvenTree/settings/settings_staff_js.html:445 msgid "Icon" msgstr "" -#: part/models.py:132 part/serializers.py:143 part/serializers.py:161 -#: stock/models.py:170 +#: part/models.py:134 part/serializers.py:143 part/serializers.py:161 +#: stock/models.py:176 msgid "Icon (optional)" msgstr "" -#: part/models.py:178 +#: part/models.py:180 msgid "You cannot make this part category structural because some parts are already assigned to it!" msgstr "" -#: part/models.py:519 +#: part/models.py:514 msgid "Cannot delete this part as it is locked" msgstr "" -#: part/models.py:522 +#: part/models.py:517 msgid "Cannot delete this part as it is still active" msgstr "" -#: part/models.py:527 +#: part/models.py:522 msgid "Cannot delete this part as it is used in an assembly" msgstr "" -#: part/models.py:565 +#: part/models.py:560 msgid "Invalid choice for parent part" msgstr "" -#: part/models.py:613 part/models.py:620 +#: part/models.py:608 part/models.py:615 #, python-brace-format msgid "Part '{self}' cannot be used in BOM for '{parent}' (recursive)" msgstr "" -#: part/models.py:632 +#: part/models.py:627 #, python-brace-format msgid "Part '{parent}' is used in BOM for '{self}' (recursive)" msgstr "" -#: part/models.py:695 +#: part/models.py:694 #, python-brace-format msgid "IPN must match regex pattern {pattern}" msgstr "" -#: part/models.py:703 +#: part/models.py:702 msgid "Part cannot be a revision of itself" msgstr "" -#: part/models.py:710 +#: part/models.py:709 msgid "Cannot make a revision of a part which is already a revision" msgstr "" -#: part/models.py:717 +#: part/models.py:716 msgid "Revision code must be specified" msgstr "" -#: part/models.py:724 +#: part/models.py:723 msgid "Revisions are only allowed for assembly parts" msgstr "" -#: part/models.py:731 +#: part/models.py:730 msgid "Cannot make a revision of a template part" msgstr "" -#: part/models.py:737 +#: part/models.py:736 msgid "Parent part must point to the same template" msgstr "" -#: part/models.py:816 +#: part/models.py:832 msgid "Stock item with this serial number already exists" msgstr "" -#: part/models.py:917 +#: part/models.py:976 msgid "Duplicate IPN not allowed in part settings" msgstr "" -#: part/models.py:926 +#: part/models.py:988 msgid "Duplicate part revision already exists." msgstr "" -#: part/models.py:936 +#: part/models.py:997 msgid "Part with this Name, IPN and Revision already exists." msgstr "" -#: part/models.py:951 +#: part/models.py:1012 msgid "Parts cannot be assigned to structural part categories!" msgstr "" -#: part/models.py:983 part/models.py:4102 +#: part/models.py:1044 part/models.py:4160 msgid "Part name" msgstr "" -#: part/models.py:988 +#: part/models.py:1049 msgid "Is Template" msgstr "" -#: part/models.py:989 +#: part/models.py:1050 msgid "Is this part a template part?" msgstr "" -#: part/models.py:999 +#: part/models.py:1060 msgid "Is this part a variant of another part?" msgstr "" -#: part/models.py:1007 +#: part/models.py:1068 msgid "Part description (optional)" msgstr "" -#: part/models.py:1015 +#: part/models.py:1076 msgid "Part keywords to improve visibility in search results" msgstr "" -#: part/models.py:1025 +#: part/models.py:1086 msgid "Part category" msgstr "" -#: part/models.py:1040 +#: part/models.py:1101 msgid "Part revision or version number" msgstr "" -#: part/models.py:1050 +#: part/models.py:1111 msgid "Is this part a revision of another part?" msgstr "" -#: part/models.py:1051 part/templates/part/part_base.html:277 +#: part/models.py:1112 part/templates/part/part_base.html:285 msgid "Revision Of" msgstr "" -#: part/models.py:1075 +#: part/models.py:1136 msgid "Where is this item normally stored?" msgstr "" -#: part/models.py:1121 part/templates/part/part_base.html:385 +#: part/models.py:1182 part/templates/part/part_base.html:393 msgid "Default Supplier" msgstr "" -#: part/models.py:1122 +#: part/models.py:1183 msgid "Default supplier part" msgstr "" -#: part/models.py:1129 +#: part/models.py:1190 msgid "Default Expiry" msgstr "" -#: part/models.py:1130 +#: part/models.py:1191 msgid "Expiry time (in days) for stock items of this part" msgstr "" -#: part/models.py:1139 +#: part/models.py:1200 msgid "Minimum allowed stock level" msgstr "" -#: part/models.py:1148 +#: part/models.py:1209 msgid "Units of measure for this part" msgstr "" -#: part/models.py:1155 +#: part/models.py:1216 msgid "Can this part be built from other parts?" msgstr "" -#: part/models.py:1161 +#: part/models.py:1222 msgid "Can this part be used to build other parts?" msgstr "" -#: part/models.py:1167 +#: part/models.py:1228 msgid "Does this part have tracking for unique items?" msgstr "" -#: part/models.py:1173 +#: part/models.py:1234 msgid "Can this part have test results recorded against it?" msgstr "" -#: part/models.py:1179 +#: part/models.py:1240 msgid "Can this part be purchased from external suppliers?" msgstr "" -#: part/models.py:1185 +#: part/models.py:1246 msgid "Can this part be sold to customers?" msgstr "" -#: part/models.py:1189 +#: part/models.py:1250 msgid "Is this part active?" msgstr "" -#: part/models.py:1194 templates/js/translated/part.js:821 +#: part/models.py:1255 templates/js/translated/part.js:821 #: templates/js/translated/table_filters.js:724 msgid "Locked" msgstr "" -#: part/models.py:1195 +#: part/models.py:1256 msgid "Locked parts cannot be edited" msgstr "" -#: part/models.py:1201 +#: part/models.py:1262 msgid "Is this a virtual part, such as a software product or license?" msgstr "" -#: part/models.py:1207 +#: part/models.py:1268 msgid "BOM checksum" msgstr "" -#: part/models.py:1208 +#: part/models.py:1269 msgid "Stored BOM checksum" msgstr "" -#: part/models.py:1216 +#: part/models.py:1277 msgid "BOM checked by" msgstr "" -#: part/models.py:1221 +#: part/models.py:1282 msgid "BOM checked date" msgstr "" -#: part/models.py:1237 +#: part/models.py:1298 msgid "Creation User" msgstr "" -#: part/models.py:1247 +#: part/models.py:1308 msgid "Owner responsible for this part" msgstr "" -#: part/models.py:1252 part/templates/part/part_base.html:348 -#: stock/templates/stock/item_base.html:451 +#: part/models.py:1313 part/templates/part/part_base.html:356 +#: stock/templates/stock/item_base.html:448 #: templates/js/translated/part.js:2490 msgid "Last Stocktake" msgstr "" -#: part/models.py:2125 +#: part/models.py:2185 msgid "Sell multiple" msgstr "" -#: part/models.py:3116 +#: part/models.py:3167 msgid "Currency used to cache pricing calculations" msgstr "" -#: part/models.py:3132 +#: part/models.py:3183 msgid "Minimum BOM Cost" msgstr "" -#: part/models.py:3133 +#: part/models.py:3184 msgid "Minimum cost of component parts" msgstr "" -#: part/models.py:3139 +#: part/models.py:3190 msgid "Maximum BOM Cost" msgstr "" -#: part/models.py:3140 +#: part/models.py:3191 msgid "Maximum cost of component parts" msgstr "" -#: part/models.py:3146 +#: part/models.py:3197 msgid "Minimum Purchase Cost" msgstr "" -#: part/models.py:3147 +#: part/models.py:3198 msgid "Minimum historical purchase cost" msgstr "" -#: part/models.py:3153 +#: part/models.py:3204 msgid "Maximum Purchase Cost" msgstr "" -#: part/models.py:3154 +#: part/models.py:3205 msgid "Maximum historical purchase cost" msgstr "" -#: part/models.py:3160 +#: part/models.py:3211 msgid "Minimum Internal Price" msgstr "" -#: part/models.py:3161 +#: part/models.py:3212 msgid "Minimum cost based on internal price breaks" msgstr "" -#: part/models.py:3167 +#: part/models.py:3218 msgid "Maximum Internal Price" msgstr "" -#: part/models.py:3168 +#: part/models.py:3219 msgid "Maximum cost based on internal price breaks" msgstr "" -#: part/models.py:3174 +#: part/models.py:3225 msgid "Minimum Supplier Price" msgstr "" -#: part/models.py:3175 +#: part/models.py:3226 msgid "Minimum price of part from external suppliers" msgstr "" -#: part/models.py:3181 +#: part/models.py:3232 msgid "Maximum Supplier Price" msgstr "" -#: part/models.py:3182 +#: part/models.py:3233 msgid "Maximum price of part from external suppliers" msgstr "" -#: part/models.py:3188 +#: part/models.py:3239 msgid "Minimum Variant Cost" msgstr "" -#: part/models.py:3189 +#: part/models.py:3240 msgid "Calculated minimum cost of variant parts" msgstr "" -#: part/models.py:3195 +#: part/models.py:3246 msgid "Maximum Variant Cost" msgstr "" -#: part/models.py:3196 +#: part/models.py:3247 msgid "Calculated maximum cost of variant parts" msgstr "" -#: part/models.py:3203 +#: part/models.py:3254 msgid "Override minimum cost" msgstr "" -#: part/models.py:3210 +#: part/models.py:3261 msgid "Override maximum cost" msgstr "" -#: part/models.py:3217 +#: part/models.py:3268 msgid "Calculated overall minimum cost" msgstr "" -#: part/models.py:3224 +#: part/models.py:3275 msgid "Calculated overall maximum cost" msgstr "" -#: part/models.py:3230 +#: part/models.py:3281 msgid "Minimum Sale Price" msgstr "" -#: part/models.py:3231 +#: part/models.py:3282 msgid "Minimum sale price based on price breaks" msgstr "" -#: part/models.py:3237 +#: part/models.py:3288 msgid "Maximum Sale Price" msgstr "" -#: part/models.py:3238 +#: part/models.py:3289 msgid "Maximum sale price based on price breaks" msgstr "" -#: part/models.py:3244 +#: part/models.py:3295 msgid "Minimum Sale Cost" msgstr "" -#: part/models.py:3245 +#: part/models.py:3296 msgid "Minimum historical sale price" msgstr "" -#: part/models.py:3251 +#: part/models.py:3302 msgid "Maximum Sale Cost" msgstr "" -#: part/models.py:3252 +#: part/models.py:3303 msgid "Maximum historical sale price" msgstr "" -#: part/models.py:3271 +#: part/models.py:3322 msgid "Part for stocktake" msgstr "" -#: part/models.py:3276 +#: part/models.py:3327 msgid "Item Count" msgstr "" -#: part/models.py:3277 +#: part/models.py:3328 msgid "Number of individual stock entries at time of stocktake" msgstr "" -#: part/models.py:3285 +#: part/models.py:3336 msgid "Total available stock at time of stocktake" msgstr "" -#: part/models.py:3289 part/models.py:3372 +#: part/models.py:3340 part/models.py:3423 part/serializers.py:263 #: part/templates/part/part_scheduling.html:13 #: report/templates/report/inventree_test_report.html:106 #: templates/InvenTree/settings/plugin_settings.html:37 #: templates/InvenTree/settings/settings_staff_js.html:543 -#: templates/js/translated/part.js:1092 templates/js/translated/pricing.js:826 -#: templates/js/translated/pricing.js:950 -#: templates/js/translated/purchase_order.js:1801 -#: templates/js/translated/stock.js:2905 +#: templates/js/translated/part.js:1092 templates/js/translated/pricing.js:824 +#: templates/js/translated/pricing.js:948 +#: templates/js/translated/purchase_order.js:1785 +#: templates/js/translated/stock.js:2906 msgid "Date" msgstr "" -#: part/models.py:3290 +#: part/models.py:3341 msgid "Date stocktake was performed" msgstr "" -#: part/models.py:3298 +#: part/models.py:3349 msgid "Additional notes" msgstr "" -#: part/models.py:3308 +#: part/models.py:3359 msgid "User who performed this stocktake" msgstr "" -#: part/models.py:3314 +#: part/models.py:3365 msgid "Minimum Stock Cost" msgstr "" -#: part/models.py:3315 +#: part/models.py:3366 msgid "Estimated minimum cost of stock on hand" msgstr "" -#: part/models.py:3321 +#: part/models.py:3372 msgid "Maximum Stock Cost" msgstr "" -#: part/models.py:3322 +#: part/models.py:3373 msgid "Estimated maximum cost of stock on hand" msgstr "" -#: part/models.py:3378 templates/InvenTree/settings/settings_staff_js.html:532 +#: part/models.py:3429 templates/InvenTree/settings/settings_staff_js.html:532 msgid "Report" msgstr "" -#: part/models.py:3379 +#: part/models.py:3430 msgid "Stocktake report file (generated internally)" msgstr "" -#: part/models.py:3384 templates/InvenTree/settings/settings_staff_js.html:539 +#: part/models.py:3435 templates/InvenTree/settings/settings_staff_js.html:539 msgid "Part Count" msgstr "" -#: part/models.py:3385 +#: part/models.py:3436 msgid "Number of parts covered by stocktake" msgstr "" -#: part/models.py:3395 +#: part/models.py:3446 msgid "User who requested this stocktake report" msgstr "" -#: part/models.py:3405 +#: part/models.py:3456 msgid "Part Sale Price Break" msgstr "" -#: part/models.py:3517 +#: part/models.py:3568 msgid "Part Test Template" msgstr "" -#: part/models.py:3543 +#: part/models.py:3594 msgid "Invalid template name - must include at least one alphanumeric character" msgstr "" -#: part/models.py:3564 part/models.py:3733 +#: part/models.py:3615 part/models.py:3784 msgid "Choices must be unique" msgstr "" -#: part/models.py:3575 -msgid "Test templates can only be created for trackable parts" +#: part/models.py:3626 +msgid "Test templates can only be created for testable parts" msgstr "" -#: part/models.py:3586 +#: part/models.py:3637 msgid "Test template with the same key already exists for part" msgstr "" -#: part/models.py:3603 templates/js/translated/part.js:2898 +#: part/models.py:3654 templates/js/translated/part.js:2898 msgid "Test Name" msgstr "" -#: part/models.py:3604 +#: part/models.py:3655 msgid "Enter a name for the test" msgstr "" -#: part/models.py:3610 +#: part/models.py:3661 msgid "Test Key" msgstr "" -#: part/models.py:3611 +#: part/models.py:3662 msgid "Simplified key for the test" msgstr "" -#: part/models.py:3618 +#: part/models.py:3669 msgid "Test Description" msgstr "" -#: part/models.py:3619 +#: part/models.py:3670 msgid "Enter description for this test" msgstr "" -#: part/models.py:3623 report/models.py:208 +#: part/models.py:3674 report/models.py:216 #: templates/js/translated/part.js:2919 #: templates/js/translated/table_filters.js:502 msgid "Enabled" msgstr "" -#: part/models.py:3623 +#: part/models.py:3674 msgid "Is this test enabled?" msgstr "" -#: part/models.py:3628 templates/js/translated/part.js:2927 +#: part/models.py:3679 templates/js/translated/part.js:2927 #: templates/js/translated/table_filters.js:498 msgid "Required" msgstr "" -#: part/models.py:3629 +#: part/models.py:3680 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:3634 templates/js/translated/part.js:2935 +#: part/models.py:3685 templates/js/translated/part.js:2935 msgid "Requires Value" msgstr "" -#: part/models.py:3635 +#: part/models.py:3686 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:3640 templates/js/translated/part.js:2942 +#: part/models.py:3691 templates/js/translated/part.js:2942 msgid "Requires Attachment" msgstr "" -#: part/models.py:3642 +#: part/models.py:3693 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:3648 part/models.py:3792 templates/js/translated/part.js:1643 +#: part/models.py:3699 part/models.py:3843 templates/js/translated/part.js:1643 msgid "Choices" msgstr "" -#: part/models.py:3649 +#: part/models.py:3700 msgid "Valid choices for this test (comma-separated)" msgstr "" -#: part/models.py:3681 +#: part/models.py:3732 msgid "Part Parameter Template" msgstr "" -#: part/models.py:3708 +#: part/models.py:3759 msgid "Checkbox parameters cannot have units" msgstr "" -#: part/models.py:3713 +#: part/models.py:3764 msgid "Checkbox parameters cannot have choices" msgstr "" -#: part/models.py:3750 +#: part/models.py:3801 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:3765 +#: part/models.py:3816 msgid "Parameter Name" msgstr "" -#: part/models.py:3772 +#: part/models.py:3823 msgid "Physical units for this parameter" msgstr "" -#: part/models.py:3780 +#: part/models.py:3831 msgid "Parameter description" msgstr "" -#: part/models.py:3786 templates/js/translated/part.js:1634 +#: part/models.py:3837 templates/js/translated/part.js:1634 #: templates/js/translated/table_filters.js:837 msgid "Checkbox" msgstr "" -#: part/models.py:3787 +#: part/models.py:3838 msgid "Is this parameter a checkbox?" msgstr "" -#: part/models.py:3793 +#: part/models.py:3844 msgid "Valid choices for this parameter (comma-separated)" msgstr "" -#: part/models.py:3827 +#: part/models.py:3881 msgid "Part Parameter" msgstr "" -#: part/models.py:3853 +#: part/models.py:3907 msgid "Parameter cannot be modified - part is locked" msgstr "" -#: part/models.py:3889 +#: part/models.py:3945 msgid "Invalid choice for parameter value" msgstr "" -#: part/models.py:3938 +#: part/models.py:3996 msgid "Parent Part" msgstr "" -#: part/models.py:3946 part/models.py:4054 part/models.py:4055 +#: part/models.py:4004 part/models.py:4112 part/models.py:4113 #: templates/InvenTree/settings/settings_staff_js.html:295 msgid "Parameter Template" msgstr "" -#: part/models.py:3952 +#: part/models.py:4010 msgid "Parameter Value" msgstr "" -#: part/models.py:4002 +#: part/models.py:4060 msgid "Part Category Parameter Template" msgstr "" -#: part/models.py:4061 templates/InvenTree/settings/settings_staff_js.html:304 +#: part/models.py:4119 templates/InvenTree/settings/settings_staff_js.html:304 msgid "Default Value" msgstr "" -#: part/models.py:4062 +#: part/models.py:4120 msgid "Default Parameter Value" msgstr "" -#: part/models.py:4100 +#: part/models.py:4158 msgid "Part ID or part name" msgstr "" -#: part/models.py:4101 +#: part/models.py:4159 msgid "Unique part ID value" msgstr "" -#: part/models.py:4103 +#: part/models.py:4161 msgid "Part IPN value" msgstr "" -#: part/models.py:4104 +#: part/models.py:4162 msgid "Level" msgstr "" -#: part/models.py:4104 +#: part/models.py:4162 msgid "BOM level" msgstr "" -#: part/models.py:4215 +#: part/models.py:4272 msgid "BOM item cannot be modified - assembly is locked" msgstr "" -#: part/models.py:4222 +#: part/models.py:4279 msgid "BOM item cannot be modified - variant assembly is locked" msgstr "" -#: part/models.py:4232 +#: part/models.py:4289 msgid "Select parent part" msgstr "" -#: part/models.py:4242 +#: part/models.py:4299 msgid "Sub part" msgstr "" -#: part/models.py:4243 +#: part/models.py:4300 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:4254 +#: part/models.py:4311 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:4260 +#: part/models.py:4317 msgid "This BOM item is optional" msgstr "" -#: part/models.py:4266 +#: part/models.py:4323 msgid "This BOM item is consumable (it is not tracked in build orders)" msgstr "" -#: part/models.py:4273 part/templates/part/upload_bom.html:55 +#: part/models.py:4330 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "" -#: part/models.py:4274 +#: part/models.py:4331 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:4281 +#: part/models.py:4338 msgid "BOM item reference" msgstr "" -#: part/models.py:4289 +#: part/models.py:4346 msgid "BOM item notes" msgstr "" -#: part/models.py:4295 +#: part/models.py:4352 msgid "Checksum" msgstr "" -#: part/models.py:4296 +#: part/models.py:4353 msgid "BOM line checksum" msgstr "" -#: part/models.py:4301 templates/js/translated/table_filters.js:181 +#: part/models.py:4358 templates/js/translated/table_filters.js:181 msgid "Validated" msgstr "" -#: part/models.py:4302 +#: part/models.py:4359 msgid "This BOM item has been validated" msgstr "" -#: part/models.py:4307 part/templates/part/upload_bom.html:57 +#: part/models.py:4364 part/templates/part/upload_bom.html:57 #: templates/js/translated/bom.js:1054 #: templates/js/translated/table_filters.js:185 #: templates/js/translated/table_filters.js:218 msgid "Gets inherited" msgstr "" -#: part/models.py:4308 +#: part/models.py:4365 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:4314 +#: part/models.py:4371 msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:4399 stock/models.py:685 +#: part/models.py:4456 stock/models.py:762 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:4409 part/models.py:4411 +#: part/models.py:4466 part/models.py:4468 msgid "Sub part must be specified" msgstr "" -#: part/models.py:4551 +#: part/models.py:4613 msgid "BOM Item Substitute" msgstr "" -#: part/models.py:4572 +#: part/models.py:4634 msgid "Substitute part cannot be the same as the master part" msgstr "" -#: part/models.py:4585 +#: part/models.py:4647 msgid "Parent BOM item" msgstr "" -#: part/models.py:4593 +#: part/models.py:4655 msgid "Substitute part" msgstr "" -#: part/models.py:4609 +#: part/models.py:4671 msgid "Part 1" msgstr "" -#: part/models.py:4617 +#: part/models.py:4679 msgid "Part 2" msgstr "" -#: part/models.py:4618 +#: part/models.py:4680 msgid "Select Related Part" msgstr "" -#: part/models.py:4637 +#: part/models.py:4699 msgid "Part relationship cannot be created between a part and itself" msgstr "" -#: part/models.py:4642 +#: part/models.py:4704 msgid "Duplicate relationship already exists" msgstr "" @@ -7449,340 +7662,352 @@ msgstr "" msgid "Number of results recorded against this template" msgstr "" -#: part/serializers.py:225 part/serializers.py:243 stock/serializers.py:616 +#: part/serializers.py:225 part/serializers.py:243 stock/serializers.py:643 msgid "Purchase currency of this stock item" msgstr "" -#: part/serializers.py:291 +#: part/serializers.py:268 +msgid "Speculative Quantity" +msgstr "" + +#: part/serializers.py:277 +msgid "Model ID" +msgstr "" + +#: part/serializers.py:324 msgid "Number of parts using this template" msgstr "" -#: part/serializers.py:421 +#: part/serializers.py:465 msgid "No parts selected" msgstr "" -#: part/serializers.py:431 +#: part/serializers.py:475 msgid "Select category" msgstr "" -#: part/serializers.py:466 +#: part/serializers.py:510 msgid "Original Part" msgstr "" -#: part/serializers.py:467 +#: part/serializers.py:511 msgid "Select original part to duplicate" msgstr "" -#: part/serializers.py:472 +#: part/serializers.py:516 msgid "Copy Image" msgstr "" -#: part/serializers.py:473 +#: part/serializers.py:517 msgid "Copy image from original part" msgstr "" -#: part/serializers.py:479 part/templates/part/detail.html:293 +#: part/serializers.py:523 part/templates/part/detail.html:293 msgid "Copy BOM" msgstr "" -#: part/serializers.py:480 +#: part/serializers.py:524 msgid "Copy bill of materials from original part" msgstr "" -#: part/serializers.py:486 +#: part/serializers.py:530 msgid "Copy Parameters" msgstr "" -#: part/serializers.py:487 +#: part/serializers.py:531 msgid "Copy parameter data from original part" msgstr "" -#: part/serializers.py:493 +#: part/serializers.py:537 msgid "Copy Notes" msgstr "" -#: part/serializers.py:494 +#: part/serializers.py:538 msgid "Copy notes from original part" msgstr "" -#: part/serializers.py:512 +#: part/serializers.py:556 msgid "Initial Stock Quantity" msgstr "" -#: part/serializers.py:514 +#: part/serializers.py:558 msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added." msgstr "" -#: part/serializers.py:521 +#: part/serializers.py:565 msgid "Initial Stock Location" msgstr "" -#: part/serializers.py:522 +#: part/serializers.py:566 msgid "Specify initial stock location for this Part" msgstr "" -#: part/serializers.py:539 +#: part/serializers.py:583 msgid "Select supplier (or leave blank to skip)" msgstr "" -#: part/serializers.py:555 +#: part/serializers.py:599 msgid "Select manufacturer (or leave blank to skip)" msgstr "" -#: part/serializers.py:565 +#: part/serializers.py:609 msgid "Manufacturer part number" msgstr "" -#: part/serializers.py:572 +#: part/serializers.py:616 msgid "Selected company is not a valid supplier" msgstr "" -#: part/serializers.py:581 +#: part/serializers.py:625 msgid "Selected company is not a valid manufacturer" msgstr "" -#: part/serializers.py:592 +#: part/serializers.py:636 msgid "Manufacturer part matching this MPN already exists" msgstr "" -#: part/serializers.py:599 +#: part/serializers.py:643 msgid "Supplier part matching this SKU already exists" msgstr "" -#: part/serializers.py:903 +#: part/serializers.py:955 msgid "Revisions" msgstr "" -#: part/serializers.py:908 +#: part/serializers.py:960 msgid "Unallocated Stock" msgstr "" -#: part/serializers.py:911 +#: part/serializers.py:963 msgid "Variant Stock" msgstr "" -#: part/serializers.py:941 part/templates/part/copy_part.html:9 +#: part/serializers.py:993 part/templates/part/copy_part.html:9 #: templates/js/translated/part.js:474 msgid "Duplicate Part" msgstr "" -#: part/serializers.py:942 +#: part/serializers.py:994 msgid "Copy initial data from another Part" msgstr "" -#: part/serializers.py:948 templates/js/translated/part.js:103 +#: part/serializers.py:1000 templates/js/translated/part.js:103 msgid "Initial Stock" msgstr "" -#: part/serializers.py:949 +#: part/serializers.py:1001 msgid "Create Part with initial stock quantity" msgstr "" -#: part/serializers.py:955 +#: part/serializers.py:1007 msgid "Supplier Information" msgstr "" -#: part/serializers.py:956 +#: part/serializers.py:1008 msgid "Add initial supplier information for this part" msgstr "" -#: part/serializers.py:964 +#: part/serializers.py:1016 msgid "Copy Category Parameters" msgstr "" -#: part/serializers.py:965 +#: part/serializers.py:1017 msgid "Copy parameter templates from selected part category" msgstr "" -#: part/serializers.py:970 +#: part/serializers.py:1022 msgid "Existing Image" msgstr "" -#: part/serializers.py:971 +#: part/serializers.py:1023 msgid "Filename of an existing part image" msgstr "" -#: part/serializers.py:988 +#: part/serializers.py:1040 msgid "Image file does not exist" msgstr "" -#: part/serializers.py:1194 +#: part/serializers.py:1247 msgid "Limit stocktake report to a particular part, and any variant parts" msgstr "" -#: part/serializers.py:1204 +#: part/serializers.py:1257 msgid "Limit stocktake report to a particular part category, and any child categories" msgstr "" -#: part/serializers.py:1214 +#: part/serializers.py:1267 msgid "Limit stocktake report to a particular stock location, and any child locations" msgstr "" -#: part/serializers.py:1220 +#: part/serializers.py:1273 msgid "Exclude External Stock" msgstr "" -#: part/serializers.py:1221 +#: part/serializers.py:1274 msgid "Exclude stock items in external locations" msgstr "" -#: part/serializers.py:1226 +#: part/serializers.py:1279 msgid "Generate Report" msgstr "" -#: part/serializers.py:1227 +#: part/serializers.py:1280 msgid "Generate report file containing calculated stocktake data" msgstr "" -#: part/serializers.py:1232 +#: part/serializers.py:1285 msgid "Update Parts" msgstr "" -#: part/serializers.py:1233 +#: part/serializers.py:1286 msgid "Update specified parts with calculated stocktake data" msgstr "" -#: part/serializers.py:1241 +#: part/serializers.py:1294 msgid "Stocktake functionality is not enabled" msgstr "" -#: part/serializers.py:1347 +#: part/serializers.py:1299 +msgid "Background worker check failed" +msgstr "" + +#: part/serializers.py:1401 msgid "Override calculated value for minimum price" msgstr "" -#: part/serializers.py:1354 +#: part/serializers.py:1408 msgid "Minimum price currency" msgstr "" -#: part/serializers.py:1362 +#: part/serializers.py:1416 msgid "Override calculated value for maximum price" msgstr "" -#: part/serializers.py:1369 +#: part/serializers.py:1423 msgid "Maximum price currency" msgstr "" -#: part/serializers.py:1398 +#: part/serializers.py:1452 msgid "Update" msgstr "" -#: part/serializers.py:1399 +#: part/serializers.py:1453 msgid "Update pricing for this part" msgstr "" -#: part/serializers.py:1422 +#: part/serializers.py:1476 #, python-brace-format msgid "Could not convert from provided currencies to {default_currency}" msgstr "" -#: part/serializers.py:1429 +#: part/serializers.py:1483 msgid "Minimum price must not be greater than maximum price" msgstr "" -#: part/serializers.py:1432 +#: part/serializers.py:1486 msgid "Maximum price must not be less than minimum price" msgstr "" -#: part/serializers.py:1576 +#: part/serializers.py:1634 msgid "Select the parent assembly" msgstr "" -#: part/serializers.py:1585 +#: part/serializers.py:1643 msgid "Component Name" msgstr "" -#: part/serializers.py:1588 +#: part/serializers.py:1646 msgid "Component IPN" msgstr "" -#: part/serializers.py:1591 +#: part/serializers.py:1649 msgid "Component Description" msgstr "" -#: part/serializers.py:1597 +#: part/serializers.py:1655 msgid "Select the component part" msgstr "" -#: part/serializers.py:1606 part/templates/part/part_base.html:235 +#: part/serializers.py:1664 part/templates/part/part_base.html:243 #: templates/js/translated/bom.js:1219 msgid "Can Build" msgstr "" -#: part/serializers.py:1837 +#: part/serializers.py:1899 msgid "Select part to copy BOM from" msgstr "" -#: part/serializers.py:1845 +#: part/serializers.py:1907 msgid "Remove Existing Data" msgstr "" -#: part/serializers.py:1846 +#: part/serializers.py:1908 msgid "Remove existing BOM items before copying" msgstr "" -#: part/serializers.py:1851 +#: part/serializers.py:1913 msgid "Include Inherited" msgstr "" -#: part/serializers.py:1852 +#: part/serializers.py:1914 msgid "Include BOM items which are inherited from templated parts" msgstr "" -#: part/serializers.py:1857 +#: part/serializers.py:1919 msgid "Skip Invalid Rows" msgstr "" -#: part/serializers.py:1858 +#: part/serializers.py:1920 msgid "Enable this option to skip invalid rows" msgstr "" -#: part/serializers.py:1863 +#: part/serializers.py:1925 msgid "Copy Substitute Parts" msgstr "" -#: part/serializers.py:1864 +#: part/serializers.py:1926 msgid "Copy substitute parts when duplicate BOM items" msgstr "" -#: part/serializers.py:1901 +#: part/serializers.py:1963 msgid "Clear Existing BOM" msgstr "" -#: part/serializers.py:1902 +#: part/serializers.py:1964 msgid "Delete existing BOM items before uploading" msgstr "" -#: part/serializers.py:1934 +#: part/serializers.py:1996 msgid "No part column specified" msgstr "" -#: part/serializers.py:1978 +#: part/serializers.py:2040 msgid "Multiple matching parts found" msgstr "" -#: part/serializers.py:1981 +#: part/serializers.py:2043 msgid "No matching part found" msgstr "" -#: part/serializers.py:1984 +#: part/serializers.py:2045 msgid "Part is not designated as a component" msgstr "" -#: part/serializers.py:1993 +#: part/serializers.py:2054 msgid "Quantity not provided" msgstr "" -#: part/serializers.py:2001 +#: part/serializers.py:2062 msgid "Invalid quantity" msgstr "" -#: part/serializers.py:2024 +#: part/serializers.py:2085 msgid "At least one BOM item is required" msgstr "" #: part/stocktake.py:224 templates/js/translated/part.js:1073 #: templates/js/translated/part.js:1828 templates/js/translated/part.js:1884 -#: templates/js/translated/purchase_order.js:2154 +#: templates/js/translated/purchase_order.js:2138 msgid "Total Quantity" msgstr "" @@ -7932,9 +8157,9 @@ msgid "Add stocktake information" msgstr "" #: part/templates/part/detail.html:67 part/templates/part/part_sidebar.html:50 -#: stock/admin.py:255 templates/InvenTree/settings/part_stocktake.html:30 +#: stock/admin.py:256 templates/InvenTree/settings/part_stocktake.html:30 #: templates/InvenTree/settings/sidebar.html:53 -#: templates/js/translated/stock.js:2301 users/models.py:204 +#: templates/js/translated/stock.js:2302 users/models.py:204 msgid "Stocktake" msgstr "" @@ -8093,142 +8318,146 @@ msgstr "" msgid "Part List" msgstr "" -#: part/templates/part/part_base.html:25 part/templates/part/part_base.html:29 +#: part/templates/part/part_base.html:26 part/templates/part/part_base.html:30 msgid "You are subscribed to notifications for this part" msgstr "" -#: part/templates/part/part_base.html:33 +#: part/templates/part/part_base.html:34 msgid "Subscribe to notifications for this part" msgstr "" -#: part/templates/part/part_base.html:52 +#: part/templates/part/part_base.html:53 #: stock/templates/stock/item_base.html:62 -#: stock/templates/stock/location.html:71 templates/js/translated/label.js:136 +#: stock/templates/stock/location.html:72 templates/js/translated/label.js:136 msgid "Print Label" msgstr "" -#: part/templates/part/part_base.html:58 +#: part/templates/part/part_base.html:59 msgid "Show pricing information" msgstr "" -#: part/templates/part/part_base.html:63 -#: stock/templates/stock/item_base.html:110 -#: stock/templates/stock/location.html:80 +#: part/templates/part/part_base.html:64 +#: stock/templates/stock/item_base.html:107 +#: stock/templates/stock/location.html:81 msgid "Stock actions" msgstr "" -#: part/templates/part/part_base.html:70 +#: part/templates/part/part_base.html:71 msgid "Count part stock" msgstr "" -#: part/templates/part/part_base.html:76 +#: part/templates/part/part_base.html:77 msgid "Transfer part stock" msgstr "" -#: part/templates/part/part_base.html:91 templates/js/translated/part.js:2299 +#: part/templates/part/part_base.html:92 templates/js/translated/part.js:2299 msgid "Part actions" msgstr "" -#: part/templates/part/part_base.html:94 +#: part/templates/part/part_base.html:95 msgid "Duplicate part" msgstr "" -#: part/templates/part/part_base.html:97 +#: part/templates/part/part_base.html:98 msgid "Edit part" msgstr "" -#: part/templates/part/part_base.html:100 +#: part/templates/part/part_base.html:101 msgid "Delete part" msgstr "" -#: part/templates/part/part_base.html:119 +#: part/templates/part/part_base.html:120 msgid "Part is a template part (variants can be made from this part)" msgstr "" -#: part/templates/part/part_base.html:123 +#: part/templates/part/part_base.html:124 msgid "Part can be assembled from other parts" msgstr "" -#: part/templates/part/part_base.html:127 +#: part/templates/part/part_base.html:128 msgid "Part can be used in assemblies" msgstr "" -#: part/templates/part/part_base.html:131 +#: part/templates/part/part_base.html:132 msgid "Part stock is tracked by serial number" msgstr "" -#: part/templates/part/part_base.html:135 +#: part/templates/part/part_base.html:136 msgid "Part can be purchased from external suppliers" msgstr "" -#: part/templates/part/part_base.html:139 +#: part/templates/part/part_base.html:140 msgid "Part can be sold to customers" msgstr "" -#: part/templates/part/part_base.html:145 +#: part/templates/part/part_base.html:146 msgid "Part is not active" msgstr "" -#: part/templates/part/part_base.html:153 +#: part/templates/part/part_base.html:154 msgid "Part is virtual (not a physical part)" msgstr "" -#: part/templates/part/part_base.html:163 -#: part/templates/part/part_base.html:690 +#: part/templates/part/part_base.html:164 +#: part/templates/part/part_base.html:698 msgid "Show Part Details" msgstr "" #: part/templates/part/part_base.html:218 -#: stock/templates/stock/item_base.html:388 +msgid "Required for Orders" +msgstr "" + +#: part/templates/part/part_base.html:226 +#: stock/templates/stock/item_base.html:385 msgid "Allocated to Build Orders" msgstr "" -#: part/templates/part/part_base.html:227 -#: stock/templates/stock/item_base.html:381 +#: part/templates/part/part_base.html:235 +#: stock/templates/stock/item_base.html:378 msgid "Allocated to Sales Orders" msgstr "" -#: part/templates/part/part_base.html:300 +#: part/templates/part/part_base.html:308 msgid "Minimum stock level" msgstr "" -#: part/templates/part/part_base.html:331 templates/js/translated/bom.js:1071 +#: part/templates/part/part_base.html:339 templates/js/translated/bom.js:1071 #: templates/js/translated/part.js:1271 templates/js/translated/part.js:2463 #: templates/js/translated/pricing.js:391 -#: templates/js/translated/pricing.js:1054 +#: templates/js/translated/pricing.js:1052 msgid "Price Range" msgstr "" -#: part/templates/part/part_base.html:361 +#: part/templates/part/part_base.html:369 msgid "Latest Serial Number" msgstr "" -#: part/templates/part/part_base.html:365 -#: stock/templates/stock/item_base.html:322 +#: part/templates/part/part_base.html:373 +#: stock/templates/stock/item_base.html:319 msgid "Search for serial number" msgstr "" -#: part/templates/part/part_base.html:453 +#: part/templates/part/part_base.html:461 msgid "Part QR Code" msgstr "" -#: part/templates/part/part_base.html:470 +#: part/templates/part/part_base.html:478 msgid "Link Barcode to Part" msgstr "" -#: part/templates/part/part_base.html:520 +#: part/templates/part/part_base.html:528 msgid "Calculate" msgstr "" -#: part/templates/part/part_base.html:537 +#: part/templates/part/part_base.html:545 msgid "Remove associated image from this part" msgstr "" -#: part/templates/part/part_base.html:588 +#: part/templates/part/part_base.html:596 msgid "No matching images found" msgstr "" -#: part/templates/part/part_base.html:684 +#: part/templates/part/part_base.html:692 msgid "Hide Part Details" msgstr "" @@ -8282,13 +8511,13 @@ msgid "Variants" msgstr "" #: part/templates/part/part_sidebar.html:14 -#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:21 +#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:22 #: stock/templates/stock/stock_app_base.html:10 #: templates/InvenTree/search.html:153 #: templates/InvenTree/settings/sidebar.html:51 #: templates/js/translated/part.js:1249 templates/js/translated/part.js:2152 #: templates/js/translated/part.js:2411 templates/js/translated/stock.js:1066 -#: templates/js/translated/stock.js:2155 templates/navbar.html:31 +#: templates/js/translated/stock.js:2156 templates/navbar.html:31 msgid "Stock" msgstr "" @@ -8324,17 +8553,17 @@ msgstr "" #: part/templates/part/prices.html:18 #: templates/InvenTree/settings/settings_staff_js.html:80 #: templates/InvenTree/settings/user.html:24 -#: templates/js/translated/helpers.js:103 +#: templates/js/translated/helpers.js:104 #: templates/js/translated/pricing.js:628 templates/notes_buttons.html:3 #: templates/notes_buttons.html:4 msgid "Edit" msgstr "" -#: part/templates/part/prices.html:28 stock/admin.py:251 -#: stock/templates/stock/item_base.html:446 -#: templates/js/translated/company.js:1703 -#: templates/js/translated/company.js:1713 -#: templates/js/translated/stock.js:2331 +#: part/templates/part/prices.html:28 stock/admin.py:252 +#: stock/templates/stock/item_base.html:443 +#: templates/js/translated/company.js:1704 +#: templates/js/translated/company.js:1714 +#: templates/js/translated/stock.js:2332 msgid "Last Updated" msgstr "" @@ -8406,7 +8635,7 @@ msgid "Update Pricing" msgstr "" #: part/templates/part/stock_count.html:7 -#: templates/js/translated/model_renderers.js:228 +#: templates/js/translated/model_renderers.js:231 #: templates/js/translated/part.js:707 templates/js/translated/part.js:2147 #: templates/js/translated/part.js:2149 msgid "No Stock" @@ -8486,7 +8715,7 @@ msgstr "" msgid "Part Pricing" msgstr "" -#: plugin/api.py:172 +#: plugin/api.py:175 msgid "Plugin cannot be deleted as it is currently active" msgstr "" @@ -8498,78 +8727,85 @@ msgstr "לא פורטה הפעולה" msgid "No matching action found" msgstr "פעולה מבוקשת לא נמצאה" -#: plugin/base/barcodes/api.py:125 plugin/base/barcodes/api.py:371 -#: plugin/base/barcodes/api.py:546 +#: plugin/base/barcodes/api.py:203 msgid "No match found for barcode data" msgstr "" -#: plugin/base/barcodes/api.py:129 +#: plugin/base/barcodes/api.py:207 msgid "Match found for barcode data" msgstr "" -#: plugin/base/barcodes/api.py:163 plugin/base/barcodes/serializers.py:45 +#: plugin/base/barcodes/api.py:245 plugin/base/barcodes/serializers.py:72 msgid "Model is not supported" msgstr "" -#: plugin/base/barcodes/api.py:168 +#: plugin/base/barcodes/api.py:250 msgid "Model instance not found" msgstr "" -#: plugin/base/barcodes/api.py:197 -#: templates/js/translated/purchase_order.js:1468 +#: plugin/base/barcodes/api.py:279 +#: templates/js/translated/purchase_order.js:1452 msgid "Barcode matches existing item" msgstr "" -#: plugin/base/barcodes/api.py:336 +#: plugin/base/barcodes/api.py:418 msgid "No matching part data found" msgstr "" -#: plugin/base/barcodes/api.py:353 +#: plugin/base/barcodes/api.py:434 msgid "No matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:357 +#: plugin/base/barcodes/api.py:437 msgid "Multiple matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:381 +#: plugin/base/barcodes/api.py:450 plugin/base/barcodes/api.py:664 +msgid "No matching plugin found for barcode data" +msgstr "" + +#: plugin/base/barcodes/api.py:460 msgid "Matched supplier part" msgstr "" -#: plugin/base/barcodes/api.py:430 +#: plugin/base/barcodes/api.py:525 msgid "Item has already been received" msgstr "" -#: plugin/base/barcodes/api.py:467 +#: plugin/base/barcodes/api.py:563 msgid "No match for supplier barcode" msgstr "" -#: plugin/base/barcodes/api.py:510 +#: plugin/base/barcodes/api.py:612 msgid "Multiple matching line items found" msgstr "" -#: plugin/base/barcodes/api.py:513 +#: plugin/base/barcodes/api.py:615 msgid "No matching line item found" msgstr "" -#: plugin/base/barcodes/api.py:551 plugin/base/barcodes/api.py:558 +#: plugin/base/barcodes/api.py:661 +msgid "No sales order provided" +msgstr "" + +#: plugin/base/barcodes/api.py:670 msgid "Barcode does not match an existing stock item" msgstr "" -#: plugin/base/barcodes/api.py:569 +#: plugin/base/barcodes/api.py:686 msgid "Stock item does not match line item" msgstr "" -#: plugin/base/barcodes/api.py:593 templates/js/translated/build.js:2780 -#: templates/js/translated/sales_order.js:1953 +#: plugin/base/barcodes/api.py:716 templates/js/translated/build.js:2798 +#: templates/js/translated/sales_order.js:1934 msgid "Insufficient stock available" msgstr "" -#: plugin/base/barcodes/api.py:602 +#: plugin/base/barcodes/api.py:729 msgid "Stock item allocated to sales order" msgstr "" -#: plugin/base/barcodes/api.py:606 +#: plugin/base/barcodes/api.py:732 msgid "Not enough information" msgstr "" @@ -8591,75 +8827,75 @@ msgstr "" msgid "Purchase order does not match supplier" msgstr "" -#: plugin/base/barcodes/mixins.py:465 +#: plugin/base/barcodes/mixins.py:467 msgid "Failed to find pending line item for supplier part" msgstr "" -#: plugin/base/barcodes/mixins.py:496 +#: plugin/base/barcodes/mixins.py:498 msgid "Further information required to receive line item" msgstr "" -#: plugin/base/barcodes/mixins.py:504 +#: plugin/base/barcodes/mixins.py:506 msgid "Received purchase order line item" msgstr "" -#: plugin/base/barcodes/serializers.py:21 +#: plugin/base/barcodes/serializers.py:48 msgid "Scanned barcode data" msgstr "" -#: plugin/base/barcodes/serializers.py:30 +#: plugin/base/barcodes/serializers.py:57 msgid "Model name to generate barcode for" msgstr "" -#: plugin/base/barcodes/serializers.py:35 +#: plugin/base/barcodes/serializers.py:62 msgid "Primary key of model object to generate barcode for" msgstr "" -#: plugin/base/barcodes/serializers.py:105 +#: plugin/base/barcodes/serializers.py:132 msgid "Purchase Order to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:111 +#: plugin/base/barcodes/serializers.py:138 msgid "Purchase order is not pending" msgstr "" -#: plugin/base/barcodes/serializers.py:129 +#: plugin/base/barcodes/serializers.py:156 msgid "PurchaseOrder to receive items against" msgstr "" -#: plugin/base/barcodes/serializers.py:135 +#: plugin/base/barcodes/serializers.py:162 msgid "Purchase order has not been placed" msgstr "" -#: plugin/base/barcodes/serializers.py:143 +#: plugin/base/barcodes/serializers.py:170 msgid "Location to receive items into" msgstr "" -#: plugin/base/barcodes/serializers.py:149 +#: plugin/base/barcodes/serializers.py:176 msgid "Cannot select a structural location" msgstr "" -#: plugin/base/barcodes/serializers.py:163 +#: plugin/base/barcodes/serializers.py:190 msgid "Sales Order to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:169 +#: plugin/base/barcodes/serializers.py:196 msgid "Sales order is not pending" msgstr "" -#: plugin/base/barcodes/serializers.py:177 +#: plugin/base/barcodes/serializers.py:204 msgid "Sales order line item to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:184 +#: plugin/base/barcodes/serializers.py:211 msgid "Sales order shipment to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:190 +#: plugin/base/barcodes/serializers.py:217 msgid "Shipment has already been delivered" msgstr "" -#: plugin/base/barcodes/serializers.py:195 +#: plugin/base/barcodes/serializers.py:222 msgid "Quantity to allocate" msgstr "" @@ -8679,6 +8915,42 @@ msgstr "" msgid "No items provided to print" msgstr "" +#: plugin/base/ui/serializers.py:30 +msgid "Plugin Name" +msgstr "" + +#: plugin/base/ui/serializers.py:34 +msgid "Feature Type" +msgstr "" + +#: plugin/base/ui/serializers.py:39 +msgid "Feature Label" +msgstr "" + +#: plugin/base/ui/serializers.py:44 +msgid "Feature Title" +msgstr "" + +#: plugin/base/ui/serializers.py:49 +msgid "Feature Description" +msgstr "" + +#: plugin/base/ui/serializers.py:54 +msgid "Feature Icon" +msgstr "" + +#: plugin/base/ui/serializers.py:58 +msgid "Feature Options" +msgstr "" + +#: plugin/base/ui/serializers.py:61 +msgid "Feature Context" +msgstr "" + +#: plugin/base/ui/serializers.py:64 +msgid "Feature Source (javascript)" +msgstr "" + #: plugin/builtin/barcodes/inventree_barcode.py:27 msgid "InvenTree Barcodes" msgstr "" @@ -8756,7 +9028,7 @@ msgstr "" msgid "URL that is used to send messages to a slack channel" msgstr "" -#: plugin/builtin/integration/core_notifications.py:164 +#: plugin/builtin/integration/core_notifications.py:166 msgid "Open link" msgstr "" @@ -8794,11 +9066,11 @@ msgstr "" msgid "Provides support for printing using a machine" msgstr "" -#: plugin/builtin/labels/inventree_machine.py:149 +#: plugin/builtin/labels/inventree_machine.py:151 msgid "last used" msgstr "" -#: plugin/builtin/labels/inventree_machine.py:166 +#: plugin/builtin/labels/inventree_machine.py:168 msgid "Options" msgstr "" @@ -8822,7 +9094,7 @@ msgstr "" msgid "Print a border around each label" msgstr "" -#: plugin/builtin/labels/label_sheet.py:47 report/models.py:307 +#: plugin/builtin/labels/label_sheet.py:47 report/models.py:315 msgid "Landscape" msgstr "" @@ -8894,19 +9166,19 @@ msgstr "" msgid "The Supplier which acts as 'TME'" msgstr "" -#: plugin/installer.py:194 plugin/installer.py:282 +#: plugin/installer.py:199 plugin/installer.py:282 msgid "Only staff users can administer plugins" msgstr "" -#: plugin/installer.py:197 +#: plugin/installer.py:202 msgid "Plugin installation is disabled" msgstr "" -#: plugin/installer.py:248 +#: plugin/installer.py:246 msgid "Installed plugin successfully" msgstr "" -#: plugin/installer.py:254 +#: plugin/installer.py:251 #, python-brace-format msgid "Installed plugin into {path}" msgstr "" @@ -8943,10 +9215,6 @@ msgstr "" msgid "Plugin Configurations" msgstr "" -#: plugin/models.py:43 users/models.py:100 -msgid "Key" -msgstr "" - #: plugin/models.py:44 msgid "Key of plugin" msgstr "" @@ -8955,7 +9223,7 @@ msgstr "" msgid "PluginName of the plugin" msgstr "" -#: plugin/models.py:59 plugin/serializers.py:90 +#: plugin/models.py:59 plugin/serializers.py:115 msgid "Package Name" msgstr "" @@ -8984,17 +9252,17 @@ msgstr "" msgid "Package Plugin" msgstr "" -#: plugin/models.py:220 report/models.py:474 +#: plugin/models.py:259 report/models.py:482 #: templates/InvenTree/settings/plugin_settings.html:9 #: templates/js/translated/plugin.js:51 msgid "Plugin" msgstr "" -#: plugin/models.py:267 +#: plugin/models.py:306 msgid "Method" msgstr "" -#: plugin/plugin.py:270 +#: plugin/plugin.py:275 msgid "No author found" msgstr "" @@ -9053,81 +9321,157 @@ msgstr "" msgid "InvenTree Contributors" msgstr "" -#: plugin/serializers.py:81 -msgid "Source URL" +#: plugin/samples/integration/user_interface_sample.py:27 +msgid "Enable Part Panels" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:28 +msgid "Enable custom panels for Part views" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:33 +msgid "Enable Purchase Order Panels" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:34 +msgid "Enable custom panels for Purchase Order views" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:39 +msgid "Enable Broken Panels" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:40 +msgid "Enable broken panels for testing" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:45 +msgid "Enable Dynamic Panel" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:46 +msgid "Enable dynamic panels for testing" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:98 +msgid "Part Panel" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:131 +msgid "Broken Dashboard Item" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:133 +msgid "This is a broken dashboard item - it will not render!" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:139 +msgid "Sample Dashboard Item" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:141 +msgid "This is a sample dashboard item. It renders a simple string of HTML content." +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:147 +msgid "Context Dashboard Item" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:161 +msgid "Admin Dashboard Item" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:162 +msgid "This is an admin-only dashboard item." +msgstr "" + +#: plugin/serializers.py:82 +msgid "Source File" msgstr "" #: plugin/serializers.py:83 +msgid "Path to the source file for admin integration" +msgstr "" + +#: plugin/serializers.py:90 +msgid "Optional context data for the admin integration" +msgstr "" + +#: plugin/serializers.py:106 +msgid "Source URL" +msgstr "" + +#: plugin/serializers.py:108 msgid "Source for the package - this can be a custom registry or a VCS path" msgstr "" -#: plugin/serializers.py:92 +#: plugin/serializers.py:117 msgid "Name for the Plugin Package - can also contain a version indicator" msgstr "" -#: plugin/serializers.py:99 +#: plugin/serializers.py:124 #: templates/InvenTree/settings/plugin_settings.html:42 #: templates/js/translated/plugin.js:86 msgid "Version" msgstr "" -#: plugin/serializers.py:101 +#: plugin/serializers.py:126 msgid "Version specifier for the plugin. Leave blank for latest version." msgstr "" -#: plugin/serializers.py:106 +#: plugin/serializers.py:131 msgid "Confirm plugin installation" msgstr "" -#: plugin/serializers.py:108 +#: plugin/serializers.py:133 msgid "This will install this plugin now into the current instance. The instance will go into maintenance." msgstr "" -#: plugin/serializers.py:121 +#: plugin/serializers.py:146 msgid "Installation not confirmed" msgstr "" -#: plugin/serializers.py:123 +#: plugin/serializers.py:148 msgid "Either packagename of URL must be provided" msgstr "" -#: plugin/serializers.py:161 +#: plugin/serializers.py:184 msgid "Full reload" msgstr "" -#: plugin/serializers.py:162 +#: plugin/serializers.py:185 msgid "Perform a full reload of the plugin registry" msgstr "" -#: plugin/serializers.py:168 +#: plugin/serializers.py:191 msgid "Force reload" msgstr "" -#: plugin/serializers.py:170 +#: plugin/serializers.py:193 msgid "Force a reload of the plugin registry, even if it is already loaded" msgstr "" -#: plugin/serializers.py:177 +#: plugin/serializers.py:200 msgid "Collect plugins" msgstr "" -#: plugin/serializers.py:178 +#: plugin/serializers.py:201 msgid "Collect plugins and add them to the registry" msgstr "" -#: plugin/serializers.py:205 +#: plugin/serializers.py:228 msgid "Activate Plugin" msgstr "" -#: plugin/serializers.py:206 +#: plugin/serializers.py:229 msgid "Activate this plugin" msgstr "" -#: plugin/serializers.py:226 +#: plugin/serializers.py:249 msgid "Delete configuration" msgstr "" -#: plugin/serializers.py:227 +#: plugin/serializers.py:250 msgid "Delete the plugin configuration from the database" msgstr "" @@ -9135,11 +9479,11 @@ msgstr "" msgid "No valid objects provided to template" msgstr "" -#: report/api.py:103 report/models.py:438 report/serializers.py:98 -#: report/serializers.py:148 templates/js/translated/purchase_order.js:1817 +#: report/api.py:103 report/models.py:446 report/serializers.py:99 +#: report/serializers.py:149 templates/js/translated/purchase_order.js:1801 #: templates/js/translated/return_order.js:353 -#: templates/js/translated/sales_order.js:887 -#: templates/js/translated/sales_order.js:1047 +#: templates/js/translated/sales_order.js:846 +#: templates/js/translated/sales_order.js:1020 msgid "Items" msgstr "" @@ -9167,7 +9511,11 @@ msgstr "" msgid "Error printing label" msgstr "" -#: report/api.py:375 report/api.py:411 +#: report/api.py:358 +msgid "Report saved at time of printing" +msgstr "" + +#: report/api.py:384 report/api.py:420 #, python-brace-format msgid "Template file '{template}' is missing or does not exist" msgstr "" @@ -9204,135 +9552,143 @@ msgstr "" msgid "Revision number (auto-increments)" msgstr "" -#: report/models.py:202 +#: report/models.py:168 +msgid "Attach to Model on Print" +msgstr "" + +#: report/models.py:170 +msgid "Save report output as an attachment against linked model instance when printing" +msgstr "" + +#: report/models.py:210 msgid "Filename Pattern" msgstr "" -#: report/models.py:203 +#: report/models.py:211 msgid "Pattern for generating filenames" msgstr "" -#: report/models.py:208 +#: report/models.py:216 msgid "Template is enabled" msgstr "" -#: report/models.py:214 +#: report/models.py:222 msgid "Target model type for template" msgstr "" -#: report/models.py:234 +#: report/models.py:242 msgid "Filters" msgstr "" -#: report/models.py:235 +#: report/models.py:243 msgid "Template query filters (comma-separated list of key=value pairs)" msgstr "" -#: report/models.py:294 report/models.py:361 +#: report/models.py:302 report/models.py:369 msgid "Template file" msgstr "" -#: report/models.py:302 +#: report/models.py:310 msgid "Page size for PDF reports" msgstr "" -#: report/models.py:308 +#: report/models.py:316 msgid "Render report in landscape orientation" msgstr "" -#: report/models.py:367 +#: report/models.py:375 msgid "Width [mm]" msgstr "" -#: report/models.py:368 +#: report/models.py:376 msgid "Label width, specified in mm" msgstr "" -#: report/models.py:374 +#: report/models.py:382 msgid "Height [mm]" msgstr "" -#: report/models.py:375 +#: report/models.py:383 msgid "Label height, specified in mm" msgstr "" -#: report/models.py:438 +#: report/models.py:446 msgid "Number of items to process" msgstr "" -#: report/models.py:444 +#: report/models.py:452 msgid "Report generation is complete" msgstr "" -#: report/models.py:448 templates/js/translated/build.js:2349 +#: report/models.py:456 templates/js/translated/build.js:2352 msgid "Progress" msgstr "" -#: report/models.py:448 +#: report/models.py:456 msgid "Report generation progress" msgstr "" -#: report/models.py:456 +#: report/models.py:464 msgid "Report Template" msgstr "" -#: report/models.py:463 report/models.py:486 +#: report/models.py:471 report/models.py:494 msgid "Output File" msgstr "" -#: report/models.py:464 report/models.py:487 +#: report/models.py:472 report/models.py:495 msgid "Generated output file" msgstr "" -#: report/models.py:475 +#: report/models.py:483 msgid "Label output plugin" msgstr "" -#: report/models.py:479 +#: report/models.py:487 msgid "Label Template" msgstr "" -#: report/models.py:502 +#: report/models.py:510 msgid "Snippet" msgstr "" -#: report/models.py:503 +#: report/models.py:511 msgid "Report snippet file" msgstr "" -#: report/models.py:510 +#: report/models.py:518 msgid "Snippet file description" msgstr "" -#: report/models.py:528 +#: report/models.py:536 msgid "Asset" msgstr "" -#: report/models.py:529 +#: report/models.py:537 msgid "Report asset file" msgstr "" -#: report/models.py:536 +#: report/models.py:544 msgid "Asset file description" msgstr "" -#: report/serializers.py:91 +#: report/serializers.py:92 msgid "Select report template" msgstr "" -#: report/serializers.py:99 report/serializers.py:149 +#: report/serializers.py:100 report/serializers.py:150 msgid "List of item primary keys to include in the report" msgstr "" -#: report/serializers.py:132 +#: report/serializers.py:133 msgid "Select label template" msgstr "" -#: report/serializers.py:140 +#: report/serializers.py:141 msgid "Printing Plugin" msgstr "" -#: report/serializers.py:141 +#: report/serializers.py:142 msgid "Select plugin to use for label printing" msgstr "" @@ -9365,9 +9721,9 @@ msgstr "" #: report/templates/report/inventree_sales_order_report.html:30 #: templates/js/translated/order.js:341 templates/js/translated/pricing.js:527 #: templates/js/translated/pricing.js:596 -#: templates/js/translated/pricing.js:834 -#: templates/js/translated/purchase_order.js:2185 -#: templates/js/translated/sales_order.js:1873 +#: templates/js/translated/pricing.js:832 +#: templates/js/translated/purchase_order.js:2169 +#: templates/js/translated/sales_order.js:1854 msgid "Unit Price" msgstr "" @@ -9379,13 +9735,18 @@ msgstr "" #: report/templates/report/inventree_purchase_order_report.html:72 #: report/templates/report/inventree_sales_order_report.html:72 -#: templates/js/translated/purchase_order.js:2087 -#: templates/js/translated/sales_order.js:1842 +#: templates/js/translated/purchase_order.js:2071 +#: templates/js/translated/sales_order.js:1823 #: templates/test_statistics_table.html:8 #: templates/test_statistics_table.html:19 msgid "Total" msgstr "" +#: report/templates/report/inventree_sales_order_shipment_report.html:23 +#: stock/templates/stock/stock_sidebar.html:8 +msgid "Allocations" +msgstr "" + #: report/templates/report/inventree_stock_location_report.html:97 msgid "Stock location items" msgstr "" @@ -9403,15 +9764,13 @@ msgstr "" msgid "Test" msgstr "" -#: report/templates/report/inventree_test_report.html:103 stock/models.py:2544 -msgid "Result" -msgstr "" - #: report/templates/report/inventree_test_report.html:129 +#: templates/js/translated/stock.js:1448 msgid "Pass" msgstr "" #: report/templates/report/inventree_test_report.html:131 +#: templates/js/translated/stock.js:1450 msgid "Fail" msgstr "" @@ -9420,17 +9779,18 @@ msgid "No result (required)" msgstr "" #: report/templates/report/inventree_test_report.html:140 +#: templates/js/translated/stock.js:1455 msgid "No result" msgstr "" #: report/templates/report/inventree_test_report.html:153 -#: stock/serializers.py:599 stock/templates/stock/stock_sidebar.html:16 +#: stock/serializers.py:626 stock/templates/stock/stock_sidebar.html:16 msgid "Installed Items" msgstr "" -#: report/templates/report/inventree_test_report.html:167 stock/admin.py:161 +#: report/templates/report/inventree_test_report.html:167 stock/admin.py:162 #: templates/js/translated/stock.js:706 templates/js/translated/stock.js:877 -#: templates/js/translated/stock.js:3194 +#: templates/js/translated/stock.js:3195 msgid "Serial" msgstr "" @@ -9450,67 +9810,67 @@ msgstr "" msgid "company_image tag requires a Company instance" msgstr "" -#: stock/admin.py:51 stock/admin.py:171 +#: stock/admin.py:51 stock/admin.py:172 msgid "Location ID" msgstr "" -#: stock/admin.py:63 stock/templates/stock/location.html:128 -#: stock/templates/stock/location.html:134 +#: stock/admin.py:63 stock/templates/stock/location.html:129 +#: stock/templates/stock/location.html:135 msgid "Location Path" msgstr "" -#: stock/admin.py:148 +#: stock/admin.py:149 msgid "Stock Item ID" msgstr "" -#: stock/admin.py:167 +#: stock/admin.py:168 msgid "Status Code" msgstr "" -#: stock/admin.py:179 +#: stock/admin.py:180 msgid "Supplier Part ID" msgstr "" -#: stock/admin.py:184 +#: stock/admin.py:185 msgid "Supplier Part SKU" msgstr "" -#: stock/admin.py:189 +#: stock/admin.py:190 msgid "Supplier ID" msgstr "" -#: stock/admin.py:200 +#: stock/admin.py:201 msgid "Customer ID" msgstr "" -#: stock/admin.py:205 stock/models.py:825 -#: stock/templates/stock/item_base.html:354 +#: stock/admin.py:206 stock/models.py:902 +#: stock/templates/stock/item_base.html:351 msgid "Installed In" msgstr "" -#: stock/admin.py:210 +#: stock/admin.py:211 msgid "Build ID" msgstr "" -#: stock/admin.py:220 +#: stock/admin.py:221 msgid "Sales Order ID" msgstr "" -#: stock/admin.py:225 +#: stock/admin.py:226 msgid "Purchase Order ID" msgstr "" -#: stock/admin.py:240 +#: stock/admin.py:241 msgid "Review Needed" msgstr "" -#: stock/admin.py:245 +#: stock/admin.py:246 msgid "Delete on Deplete" msgstr "" -#: stock/admin.py:260 stock/models.py:919 -#: stock/templates/stock/item_base.html:433 -#: templates/js/translated/stock.js:2315 users/models.py:124 +#: stock/admin.py:261 stock/models.py:996 +#: stock/templates/stock/item_base.html:430 +#: templates/js/translated/stock.js:2316 users/models.py:124 msgid "Expiry Date" msgstr "" @@ -9526,11 +9886,11 @@ msgstr "" msgid "Include sub-locations in filtered results" msgstr "" -#: stock/api.py:367 stock/serializers.py:1186 +#: stock/api.py:366 stock/serializers.py:1217 msgid "Parent Location" msgstr "" -#: stock/api.py:368 +#: stock/api.py:367 msgid "Filter by parent location" msgstr "" @@ -9550,8 +9910,8 @@ msgstr "" msgid "Expiry date after" msgstr "" -#: stock/api.py:840 stock/serializers.py:604 -#: stock/templates/stock/item_base.html:439 +#: stock/api.py:840 stock/serializers.py:631 +#: stock/templates/stock/item_base.html:436 #: templates/js/translated/table_filters.js:448 msgid "Stale" msgstr "" @@ -9560,594 +9920,598 @@ msgstr "" msgid "Quantity is required" msgstr "" -#: stock/api.py:933 +#: stock/api.py:932 msgid "Valid part must be supplied" msgstr "" -#: stock/api.py:964 +#: stock/api.py:959 msgid "The given supplier part does not exist" msgstr "" -#: stock/api.py:974 +#: stock/api.py:969 msgid "The supplier part has a pack size defined, but flag use_pack_size not set" msgstr "" -#: stock/api.py:1005 +#: stock/api.py:996 msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "" -#: stock/models.py:64 +#: stock/models.py:70 msgid "Stock Location type" msgstr "" -#: stock/models.py:65 +#: stock/models.py:71 msgid "Stock Location types" msgstr "" -#: stock/models.py:91 +#: stock/models.py:97 msgid "Default icon for all locations that have no icon set (optional)" msgstr "" -#: stock/models.py:131 stock/models.py:807 -#: stock/templates/stock/location.html:17 +#: stock/models.py:137 stock/models.py:884 +#: stock/templates/stock/location.html:18 #: stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "" -#: stock/models.py:132 stock/templates/stock/location.html:183 +#: stock/models.py:138 stock/templates/stock/location.html:184 #: templates/InvenTree/search.html:166 templates/js/translated/search.js:178 #: users/models.py:205 msgid "Stock Locations" msgstr "" -#: stock/models.py:180 stock/models.py:968 -#: stock/templates/stock/item_base.html:247 +#: stock/models.py:186 stock/models.py:1045 +#: stock/templates/stock/item_base.html:244 msgid "Owner" msgstr "" -#: stock/models.py:181 stock/models.py:969 +#: stock/models.py:187 stock/models.py:1046 msgid "Select Owner" msgstr "" -#: stock/models.py:189 +#: stock/models.py:195 msgid "Stock items may not be directly located into a structural stock locations, but may be located to child locations." msgstr "" -#: stock/models.py:196 templates/js/translated/stock.js:2865 +#: stock/models.py:202 templates/js/translated/stock.js:2866 #: templates/js/translated/table_filters.js:250 msgid "External" msgstr "" -#: stock/models.py:197 +#: stock/models.py:203 msgid "This is an external stock location" msgstr "" -#: stock/models.py:203 templates/js/translated/stock.js:2874 +#: stock/models.py:209 templates/js/translated/stock.js:2875 #: templates/js/translated/table_filters.js:253 msgid "Location type" msgstr "" -#: stock/models.py:207 +#: stock/models.py:213 msgid "Stock location type of this location" msgstr "" -#: stock/models.py:279 +#: stock/models.py:285 msgid "You cannot make this stock location structural because some stock items are already located into it!" msgstr "" -#: stock/models.py:664 +#: stock/models.py:492 +msgid "Part must be specified" +msgstr "" + +#: stock/models.py:741 msgid "Stock items cannot be located into structural stock locations!" msgstr "" -#: stock/models.py:691 stock/serializers.py:480 +#: stock/models.py:768 stock/serializers.py:492 msgid "Stock item cannot be created for virtual parts" msgstr "" -#: stock/models.py:708 +#: stock/models.py:785 #, python-brace-format msgid "Part type ('{self.supplier_part.part}') must be {self.part}" msgstr "" -#: stock/models.py:718 stock/models.py:731 +#: stock/models.py:795 stock/models.py:808 msgid "Quantity must be 1 for item with a serial number" msgstr "" -#: stock/models.py:721 +#: stock/models.py:798 msgid "Serial number cannot be set if quantity greater than 1" msgstr "" -#: stock/models.py:743 +#: stock/models.py:820 msgid "Item cannot belong to itself" msgstr "" -#: stock/models.py:748 +#: stock/models.py:825 msgid "Item must have a build reference if is_building=True" msgstr "" -#: stock/models.py:761 +#: stock/models.py:838 msgid "Build reference does not point to the same part object" msgstr "" -#: stock/models.py:777 +#: stock/models.py:854 msgid "Parent Stock Item" msgstr "" -#: stock/models.py:789 +#: stock/models.py:866 msgid "Base part" msgstr "" -#: stock/models.py:799 +#: stock/models.py:876 msgid "Select a matching supplier part for this stock item" msgstr "" -#: stock/models.py:811 +#: stock/models.py:888 msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:819 stock/serializers.py:1580 +#: stock/models.py:896 stock/serializers.py:1611 msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:830 +#: stock/models.py:907 msgid "Is this item installed in another item?" msgstr "" -#: stock/models.py:849 +#: stock/models.py:926 msgid "Serial number for this item" msgstr "" -#: stock/models.py:863 stock/serializers.py:1563 +#: stock/models.py:940 stock/serializers.py:1594 msgid "Batch code for this stock item" msgstr "" -#: stock/models.py:868 +#: stock/models.py:945 msgid "Stock Quantity" msgstr "" -#: stock/models.py:878 +#: stock/models.py:955 msgid "Source Build" msgstr "" -#: stock/models.py:881 +#: stock/models.py:958 msgid "Build for this stock item" msgstr "" -#: stock/models.py:888 stock/templates/stock/item_base.html:363 +#: stock/models.py:965 stock/templates/stock/item_base.html:360 msgid "Consumed By" msgstr "" -#: stock/models.py:891 +#: stock/models.py:968 msgid "Build order which consumed this stock item" msgstr "" -#: stock/models.py:900 +#: stock/models.py:977 msgid "Source Purchase Order" msgstr "" -#: stock/models.py:904 +#: stock/models.py:981 msgid "Purchase order for this stock item" msgstr "" -#: stock/models.py:910 +#: stock/models.py:987 msgid "Destination Sales Order" msgstr "" -#: stock/models.py:921 +#: stock/models.py:998 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "" -#: stock/models.py:939 +#: stock/models.py:1016 msgid "Delete on deplete" msgstr "" -#: stock/models.py:940 +#: stock/models.py:1017 msgid "Delete this Stock Item when stock is depleted" msgstr "" -#: stock/models.py:960 +#: stock/models.py:1037 msgid "Single unit purchase price at time of purchase" msgstr "" -#: stock/models.py:991 +#: stock/models.py:1068 msgid "Converted to part" msgstr "" -#: stock/models.py:1511 +#: stock/models.py:1600 msgid "Part is not set as trackable" msgstr "" -#: stock/models.py:1517 +#: stock/models.py:1606 msgid "Quantity must be integer" msgstr "" -#: stock/models.py:1525 +#: stock/models.py:1614 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({self.quantity})" msgstr "" -#: stock/models.py:1531 -msgid "Serial numbers must be a list of integers" +#: stock/models.py:1620 +msgid "Serial numbers must be provided as a list" msgstr "" -#: stock/models.py:1536 +#: stock/models.py:1625 msgid "Quantity does not match serial numbers" msgstr "" -#: stock/models.py:1544 stock/serializers.py:726 -msgid "Serial numbers already exist" -msgstr "" - -#: stock/models.py:1641 +#: stock/models.py:1747 stock/models.py:2563 msgid "Test template does not exist" msgstr "" -#: stock/models.py:1659 +#: stock/models.py:1765 msgid "Stock item has been assigned to a sales order" msgstr "" -#: stock/models.py:1663 +#: stock/models.py:1769 msgid "Stock item is installed in another item" msgstr "" -#: stock/models.py:1666 +#: stock/models.py:1772 msgid "Stock item contains other items" msgstr "" -#: stock/models.py:1669 +#: stock/models.py:1775 msgid "Stock item has been assigned to a customer" msgstr "" -#: stock/models.py:1672 +#: stock/models.py:1778 msgid "Stock item is currently in production" msgstr "" -#: stock/models.py:1675 +#: stock/models.py:1781 msgid "Serialized stock cannot be merged" msgstr "" -#: stock/models.py:1682 stock/serializers.py:1469 +#: stock/models.py:1788 stock/serializers.py:1500 msgid "Duplicate stock items" msgstr "" -#: stock/models.py:1686 +#: stock/models.py:1792 msgid "Stock items must refer to the same part" msgstr "" -#: stock/models.py:1694 +#: stock/models.py:1800 msgid "Stock items must refer to the same supplier part" msgstr "" -#: stock/models.py:1699 +#: stock/models.py:1805 msgid "Stock status codes must match" msgstr "" -#: stock/models.py:1960 +#: stock/models.py:2066 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:2343 +#: stock/models.py:2462 msgid "Stock Item Tracking" msgstr "" -#: stock/models.py:2376 +#: stock/models.py:2495 msgid "Entry notes" msgstr "" -#: stock/models.py:2416 +#: stock/models.py:2535 msgid "Stock Item Test Result" msgstr "" -#: stock/models.py:2449 +#: stock/models.py:2566 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:2454 +#: stock/models.py:2570 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:2459 +#: stock/models.py:2575 msgid "Invalid value for this test" msgstr "" -#: stock/models.py:2544 +#: stock/models.py:2660 msgid "Test result" msgstr "" -#: stock/models.py:2551 +#: stock/models.py:2667 msgid "Test output value" msgstr "" -#: stock/models.py:2559 +#: stock/models.py:2675 stock/serializers.py:245 msgid "Test result attachment" msgstr "" -#: stock/models.py:2563 +#: stock/models.py:2679 msgid "Test notes" msgstr "" -#: stock/models.py:2571 templates/js/translated/stock.js:1633 +#: stock/models.py:2687 templates/js/translated/stock.js:1633 msgid "Test station" msgstr "" -#: stock/models.py:2572 +#: stock/models.py:2688 msgid "The identifier of the test station where the test was performed" msgstr "" -#: stock/models.py:2578 +#: stock/models.py:2694 msgid "Started" msgstr "" -#: stock/models.py:2579 +#: stock/models.py:2695 msgid "The timestamp of the test start" msgstr "" -#: stock/models.py:2585 +#: stock/models.py:2701 msgid "Finished" msgstr "" -#: stock/models.py:2586 +#: stock/models.py:2702 msgid "The timestamp of the test finish" msgstr "" -#: stock/serializers.py:76 +#: stock/serializers.py:77 msgid "Generated batch code" msgstr "" -#: stock/serializers.py:85 +#: stock/serializers.py:86 msgid "Select build order" msgstr "" -#: stock/serializers.py:94 +#: stock/serializers.py:95 msgid "Select stock item to generate batch code for" msgstr "" -#: stock/serializers.py:103 +#: stock/serializers.py:104 msgid "Select location to generate batch code for" msgstr "" -#: stock/serializers.py:112 +#: stock/serializers.py:113 msgid "Select part to generate batch code for" msgstr "" -#: stock/serializers.py:121 +#: stock/serializers.py:122 msgid "Select purchase order" msgstr "" -#: stock/serializers.py:128 +#: stock/serializers.py:129 msgid "Enter quantity for batch code" msgstr "" -#: stock/serializers.py:151 +#: stock/serializers.py:152 msgid "Generated serial number" msgstr "" -#: stock/serializers.py:160 +#: stock/serializers.py:161 msgid "Select part to generate serial number for" msgstr "" -#: stock/serializers.py:168 +#: stock/serializers.py:169 msgid "Quantity of serial numbers to generate" msgstr "" -#: stock/serializers.py:233 +#: stock/serializers.py:234 msgid "Test template for this result" msgstr "" -#: stock/serializers.py:254 +#: stock/serializers.py:258 msgid "Template ID or test name must be provided" msgstr "" -#: stock/serializers.py:286 +#: stock/serializers.py:290 msgid "The test finished time cannot be earlier than the test started time" msgstr "" -#: stock/serializers.py:323 +#: stock/serializers.py:327 msgid "Serial number is too large" msgstr "" -#: stock/serializers.py:452 stock/templates/stock/item_base.html:193 +#: stock/serializers.py:462 stock/templates/stock/item_base.html:190 msgid "Parent Item" msgstr "" -#: stock/serializers.py:453 +#: stock/serializers.py:463 msgid "Parent stock item" msgstr "" -#: stock/serializers.py:472 +#: stock/serializers.py:484 msgid "Use pack size when adding: the quantity defined is the number of packs" msgstr "" -#: stock/serializers.py:596 stock/templates/stock/item_base.html:437 +#: stock/serializers.py:623 stock/templates/stock/item_base.html:434 #: templates/js/translated/table_filters.js:442 users/models.py:174 msgid "Expired" msgstr "" -#: stock/serializers.py:602 stock/templates/stock/stock_sidebar.html:20 +#: stock/serializers.py:629 stock/templates/stock/stock_sidebar.html:20 msgid "Child Items" msgstr "" -#: stock/serializers.py:606 +#: stock/serializers.py:633 msgid "Tracking Items" msgstr "" -#: stock/serializers.py:612 +#: stock/serializers.py:639 msgid "Purchase price of this stock item, per unit or pack" msgstr "" -#: stock/serializers.py:631 +#: stock/serializers.py:658 msgid "Minimum Pricing" msgstr "" -#: stock/serializers.py:637 +#: stock/serializers.py:664 msgid "Maximum Pricing" msgstr "" -#: stock/serializers.py:661 +#: stock/serializers.py:688 msgid "Enter number of stock items to serialize" msgstr "" -#: stock/serializers.py:674 +#: stock/serializers.py:701 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({q})" msgstr "" -#: stock/serializers.py:681 +#: stock/serializers.py:708 msgid "Enter serial numbers for new items" msgstr "" -#: stock/serializers.py:692 stock/serializers.py:1426 stock/serializers.py:1682 +#: stock/serializers.py:719 stock/serializers.py:1457 stock/serializers.py:1713 msgid "Destination stock location" msgstr "" -#: stock/serializers.py:699 +#: stock/serializers.py:726 msgid "Optional note field" msgstr "" -#: stock/serializers.py:709 +#: stock/serializers.py:736 msgid "Serial numbers cannot be assigned to this part" msgstr "" -#: stock/serializers.py:764 +#: stock/serializers.py:756 +msgid "Serial numbers already exist" +msgstr "" + +#: stock/serializers.py:795 msgid "Select stock item to install" msgstr "" -#: stock/serializers.py:771 +#: stock/serializers.py:802 msgid "Quantity to Install" msgstr "" -#: stock/serializers.py:772 +#: stock/serializers.py:803 msgid "Enter the quantity of items to install" msgstr "" -#: stock/serializers.py:777 stock/serializers.py:857 stock/serializers.py:983 -#: stock/serializers.py:1033 +#: stock/serializers.py:808 stock/serializers.py:888 stock/serializers.py:1014 +#: stock/serializers.py:1064 msgid "Add transaction note (optional)" msgstr "" -#: stock/serializers.py:785 +#: stock/serializers.py:816 msgid "Quantity to install must be at least 1" msgstr "" -#: stock/serializers.py:793 +#: stock/serializers.py:824 msgid "Stock item is unavailable" msgstr "" -#: stock/serializers.py:804 +#: stock/serializers.py:835 msgid "Selected part is not in the Bill of Materials" msgstr "" -#: stock/serializers.py:817 +#: stock/serializers.py:848 msgid "Quantity to install must not exceed available quantity" msgstr "" -#: stock/serializers.py:852 +#: stock/serializers.py:883 msgid "Destination location for uninstalled item" msgstr "" -#: stock/serializers.py:903 +#: stock/serializers.py:934 msgid "Unsupported statistic type: " msgstr "" -#: stock/serializers.py:917 +#: stock/serializers.py:948 msgid "Select part to convert stock item into" msgstr "" -#: stock/serializers.py:930 +#: stock/serializers.py:961 msgid "Selected part is not a valid option for conversion" msgstr "" -#: stock/serializers.py:947 +#: stock/serializers.py:978 msgid "Cannot convert stock item with assigned SupplierPart" msgstr "" -#: stock/serializers.py:978 +#: stock/serializers.py:1009 msgid "Destination location for returned item" msgstr "" -#: stock/serializers.py:1015 +#: stock/serializers.py:1046 msgid "Select stock items to change status" msgstr "" -#: stock/serializers.py:1021 +#: stock/serializers.py:1052 msgid "No stock items selected" msgstr "" -#: stock/serializers.py:1117 stock/serializers.py:1194 -#: stock/templates/stock/location.html:162 -#: stock/templates/stock/location.html:219 +#: stock/serializers.py:1148 stock/serializers.py:1225 +#: stock/templates/stock/location.html:163 +#: stock/templates/stock/location.html:220 #: stock/templates/stock/location_sidebar.html:5 msgid "Sublocations" msgstr "" -#: stock/serializers.py:1187 templates/js/translated/stock.js:160 +#: stock/serializers.py:1218 templates/js/translated/stock.js:160 msgid "Parent stock location" msgstr "" -#: stock/serializers.py:1298 +#: stock/serializers.py:1329 msgid "Part must be salable" msgstr "" -#: stock/serializers.py:1302 +#: stock/serializers.py:1333 msgid "Item is allocated to a sales order" msgstr "" -#: stock/serializers.py:1306 +#: stock/serializers.py:1337 msgid "Item is allocated to a build order" msgstr "" -#: stock/serializers.py:1330 +#: stock/serializers.py:1361 msgid "Customer to assign stock items" msgstr "" -#: stock/serializers.py:1336 +#: stock/serializers.py:1367 msgid "Selected company is not a customer" msgstr "" -#: stock/serializers.py:1344 +#: stock/serializers.py:1375 msgid "Stock assignment notes" msgstr "" -#: stock/serializers.py:1354 stock/serializers.py:1608 +#: stock/serializers.py:1385 stock/serializers.py:1639 msgid "A list of stock items must be provided" msgstr "" -#: stock/serializers.py:1433 +#: stock/serializers.py:1464 msgid "Stock merging notes" msgstr "" -#: stock/serializers.py:1438 +#: stock/serializers.py:1469 msgid "Allow mismatched suppliers" msgstr "" -#: stock/serializers.py:1439 +#: stock/serializers.py:1470 msgid "Allow stock items with different supplier parts to be merged" msgstr "" -#: stock/serializers.py:1444 +#: stock/serializers.py:1475 msgid "Allow mismatched status" msgstr "" -#: stock/serializers.py:1445 +#: stock/serializers.py:1476 msgid "Allow stock items with different status codes to be merged" msgstr "" -#: stock/serializers.py:1455 +#: stock/serializers.py:1486 msgid "At least two stock items must be provided" msgstr "" -#: stock/serializers.py:1522 +#: stock/serializers.py:1553 msgid "No Change" msgstr "" -#: stock/serializers.py:1551 +#: stock/serializers.py:1582 msgid "StockItem primary key value" msgstr "" -#: stock/serializers.py:1570 +#: stock/serializers.py:1601 msgid "Stock item status code" msgstr "" -#: stock/serializers.py:1598 +#: stock/serializers.py:1629 msgid "Stock transaction notes" msgstr "" @@ -10175,107 +10539,107 @@ msgstr "נדחה" msgid "Quarantined" msgstr "" -#: stock/status_codes.py:40 +#: stock/status_codes.py:44 msgid "Legacy stock tracking entry" msgstr "" -#: stock/status_codes.py:42 templates/js/translated/stock.js:550 +#: stock/status_codes.py:46 templates/js/translated/stock.js:550 msgid "Stock item created" msgstr "" -#: stock/status_codes.py:45 +#: stock/status_codes.py:49 msgid "Edited stock item" msgstr "" -#: stock/status_codes.py:46 +#: stock/status_codes.py:50 msgid "Assigned serial number" msgstr "" -#: stock/status_codes.py:49 +#: stock/status_codes.py:53 msgid "Stock counted" msgstr "" -#: stock/status_codes.py:50 +#: stock/status_codes.py:54 msgid "Stock manually added" msgstr "" -#: stock/status_codes.py:51 +#: stock/status_codes.py:55 msgid "Stock manually removed" msgstr "" -#: stock/status_codes.py:54 +#: stock/status_codes.py:58 msgid "Location changed" msgstr "מיקום שונה" -#: stock/status_codes.py:55 +#: stock/status_codes.py:59 msgid "Stock updated" msgstr "" -#: stock/status_codes.py:58 +#: stock/status_codes.py:62 msgid "Installed into assembly" msgstr "" -#: stock/status_codes.py:59 +#: stock/status_codes.py:63 msgid "Removed from assembly" msgstr "" -#: stock/status_codes.py:61 +#: stock/status_codes.py:65 msgid "Installed component item" msgstr "" -#: stock/status_codes.py:62 +#: stock/status_codes.py:66 msgid "Removed component item" msgstr "" -#: stock/status_codes.py:65 +#: stock/status_codes.py:69 msgid "Split from parent item" msgstr "" -#: stock/status_codes.py:66 +#: stock/status_codes.py:70 msgid "Split child item" msgstr "" -#: stock/status_codes.py:69 templates/js/translated/stock.js:1943 +#: stock/status_codes.py:73 templates/js/translated/stock.js:1944 msgid "Merged stock items" msgstr "" -#: stock/status_codes.py:72 +#: stock/status_codes.py:76 msgid "Converted to variant" msgstr "" -#: stock/status_codes.py:75 +#: stock/status_codes.py:79 msgid "Build order output created" msgstr "" -#: stock/status_codes.py:76 +#: stock/status_codes.py:80 msgid "Build order output completed" msgstr "" -#: stock/status_codes.py:77 +#: stock/status_codes.py:81 msgid "Build order output rejected" msgstr "" -#: stock/status_codes.py:78 templates/js/translated/stock.js:1849 +#: stock/status_codes.py:82 templates/js/translated/stock.js:1849 msgid "Consumed by build order" msgstr "" -#: stock/status_codes.py:81 +#: stock/status_codes.py:85 msgid "Shipped against Sales Order" msgstr "" -#: stock/status_codes.py:84 +#: stock/status_codes.py:88 msgid "Received against Purchase Order" msgstr "" -#: stock/status_codes.py:87 +#: stock/status_codes.py:91 msgid "Returned against Return Order" msgstr "" -#: stock/status_codes.py:90 templates/js/translated/table_filters.js:382 +#: stock/status_codes.py:94 templates/js/translated/table_filters.js:382 msgid "Sent to customer" msgstr "נשלח ללקוח" -#: stock/status_codes.py:91 +#: stock/status_codes.py:95 msgid "Returned from customer" msgstr "הוחזר מלקוח" @@ -10296,7 +10660,7 @@ msgstr "" msgid "Test Data" msgstr "" -#: stock/templates/stock/item.html:85 stock/templates/stock/item_base.html:65 +#: stock/templates/stock/item.html:85 msgid "Test Report" msgstr "" @@ -10316,7 +10680,7 @@ msgstr "" msgid "Installed Stock Items" msgstr "" -#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3354 +#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3355 msgid "Install Stock Item" msgstr "" @@ -10328,208 +10692,212 @@ msgstr "" msgid "Add Test Result" msgstr "" -#: stock/templates/stock/item_base.html:33 +#: stock/templates/stock/item_base.html:34 msgid "Locate stock item" msgstr "" -#: stock/templates/stock/item_base.html:51 +#: stock/templates/stock/item_base.html:52 msgid "Scan to Location" msgstr "" #: stock/templates/stock/item_base.html:59 -#: stock/templates/stock/location.html:67 +#: stock/templates/stock/location.html:68 #: templates/js/translated/filters.js:434 msgid "Printing actions" msgstr "" -#: stock/templates/stock/item_base.html:75 +#: stock/templates/stock/item_base.html:64 templates/js/translated/report.js:49 +msgid "Print Report" +msgstr "" + +#: stock/templates/stock/item_base.html:72 msgid "Stock adjustment actions" msgstr "" -#: stock/templates/stock/item_base.html:79 -#: stock/templates/stock/location.html:87 templates/js/translated/stock.js:1909 +#: stock/templates/stock/item_base.html:76 +#: stock/templates/stock/location.html:88 templates/js/translated/stock.js:1909 msgid "Count stock" msgstr "" -#: stock/templates/stock/item_base.html:81 +#: stock/templates/stock/item_base.html:78 #: templates/js/translated/stock.js:1891 msgid "Add stock" msgstr "" -#: stock/templates/stock/item_base.html:82 +#: stock/templates/stock/item_base.html:79 #: templates/js/translated/stock.js:1900 msgid "Remove stock" msgstr "" -#: stock/templates/stock/item_base.html:85 +#: stock/templates/stock/item_base.html:82 msgid "Serialize stock" msgstr "" -#: stock/templates/stock/item_base.html:88 -#: stock/templates/stock/location.html:93 templates/js/translated/stock.js:1918 +#: stock/templates/stock/item_base.html:85 +#: stock/templates/stock/location.html:94 templates/js/translated/stock.js:1918 msgid "Transfer stock" msgstr "" -#: stock/templates/stock/item_base.html:91 -#: templates/js/translated/stock.js:1972 +#: stock/templates/stock/item_base.html:88 +#: templates/js/translated/stock.js:1973 msgid "Assign to customer" msgstr "" -#: stock/templates/stock/item_base.html:94 +#: stock/templates/stock/item_base.html:91 msgid "Return to stock" msgstr "" -#: stock/templates/stock/item_base.html:97 +#: stock/templates/stock/item_base.html:94 msgid "Uninstall stock item" msgstr "" -#: stock/templates/stock/item_base.html:97 +#: stock/templates/stock/item_base.html:94 msgid "Uninstall" msgstr "" -#: stock/templates/stock/item_base.html:101 +#: stock/templates/stock/item_base.html:98 msgid "Install stock item" msgstr "" -#: stock/templates/stock/item_base.html:101 +#: stock/templates/stock/item_base.html:98 msgid "Install" msgstr "" -#: stock/templates/stock/item_base.html:115 +#: stock/templates/stock/item_base.html:112 msgid "Convert to variant" msgstr "" -#: stock/templates/stock/item_base.html:118 +#: stock/templates/stock/item_base.html:115 msgid "Duplicate stock item" msgstr "" -#: stock/templates/stock/item_base.html:120 +#: stock/templates/stock/item_base.html:117 msgid "Edit stock item" msgstr "" -#: stock/templates/stock/item_base.html:123 +#: stock/templates/stock/item_base.html:120 msgid "Delete stock item" msgstr "" -#: stock/templates/stock/item_base.html:169 templates/InvenTree/search.html:139 -#: templates/js/translated/build.js:2295 templates/navbar.html:38 +#: stock/templates/stock/item_base.html:166 templates/InvenTree/search.html:139 +#: templates/js/translated/build.js:2298 templates/navbar.html:38 msgid "Build" msgstr "" -#: stock/templates/stock/item_base.html:211 +#: stock/templates/stock/item_base.html:208 msgid "No manufacturer set" msgstr "" -#: stock/templates/stock/item_base.html:251 +#: stock/templates/stock/item_base.html:248 msgid "You are not in the list of owners of this item. This stock item cannot be edited." msgstr "" -#: stock/templates/stock/item_base.html:252 -#: stock/templates/stock/location.html:146 +#: stock/templates/stock/item_base.html:249 +#: stock/templates/stock/location.html:147 msgid "Read only" msgstr "" -#: stock/templates/stock/item_base.html:265 +#: stock/templates/stock/item_base.html:262 msgid "This stock item is unavailable" msgstr "" -#: stock/templates/stock/item_base.html:271 +#: stock/templates/stock/item_base.html:268 msgid "This stock item is in production and cannot be edited." msgstr "" -#: stock/templates/stock/item_base.html:272 +#: stock/templates/stock/item_base.html:269 msgid "Edit the stock item from the build view." msgstr "" -#: stock/templates/stock/item_base.html:287 +#: stock/templates/stock/item_base.html:284 msgid "This stock item is allocated to Sales Order" msgstr "" -#: stock/templates/stock/item_base.html:295 +#: stock/templates/stock/item_base.html:292 msgid "This stock item is allocated to Build Order" msgstr "" -#: stock/templates/stock/item_base.html:311 +#: stock/templates/stock/item_base.html:308 msgid "This stock item is serialized. It has a unique serial number and the quantity cannot be adjusted" msgstr "" -#: stock/templates/stock/item_base.html:317 +#: stock/templates/stock/item_base.html:314 msgid "previous page" msgstr "" -#: stock/templates/stock/item_base.html:317 +#: stock/templates/stock/item_base.html:314 msgid "Navigate to previous serial number" msgstr "" -#: stock/templates/stock/item_base.html:326 +#: stock/templates/stock/item_base.html:323 msgid "next page" msgstr "" -#: stock/templates/stock/item_base.html:326 +#: stock/templates/stock/item_base.html:323 msgid "Navigate to next serial number" msgstr "" -#: stock/templates/stock/item_base.html:398 -#: templates/js/translated/build.js:2552 +#: stock/templates/stock/item_base.html:395 +#: templates/js/translated/build.js:2559 msgid "No location set" msgstr "" -#: stock/templates/stock/item_base.html:413 +#: stock/templates/stock/item_base.html:410 msgid "Tests" msgstr "" -#: stock/templates/stock/item_base.html:419 +#: stock/templates/stock/item_base.html:416 msgid "This stock item has not passed all required tests" msgstr "" -#: stock/templates/stock/item_base.html:437 +#: stock/templates/stock/item_base.html:434 #, python-format msgid "This StockItem expired on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:439 +#: stock/templates/stock/item_base.html:436 #, python-format msgid "This StockItem expires on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:455 +#: stock/templates/stock/item_base.html:452 msgid "No stocktake performed" msgstr "" -#: stock/templates/stock/item_base.html:504 -#: templates/js/translated/stock.js:2037 +#: stock/templates/stock/item_base.html:501 +#: templates/js/translated/stock.js:2038 msgid "stock item" msgstr "" -#: stock/templates/stock/item_base.html:527 +#: stock/templates/stock/item_base.html:524 msgid "Edit Stock Status" msgstr "" -#: stock/templates/stock/item_base.html:536 +#: stock/templates/stock/item_base.html:533 msgid "Stock Item QR Code" msgstr "" -#: stock/templates/stock/item_base.html:547 +#: stock/templates/stock/item_base.html:544 msgid "Link Barcode to Stock Item" msgstr "" -#: stock/templates/stock/item_base.html:611 +#: stock/templates/stock/item_base.html:608 msgid "Select one of the part variants listed below." msgstr "" -#: stock/templates/stock/item_base.html:614 +#: stock/templates/stock/item_base.html:611 msgid "Warning" msgstr "" -#: stock/templates/stock/item_base.html:615 +#: stock/templates/stock/item_base.html:612 msgid "This action cannot be easily undone" msgstr "" -#: stock/templates/stock/item_base.html:623 +#: stock/templates/stock/item_base.html:620 msgid "Convert Stock Item" msgstr "" -#: stock/templates/stock/item_base.html:656 +#: stock/templates/stock/item_base.html:653 msgid "Return to Stock" msgstr "" @@ -10541,84 +10909,84 @@ msgstr "" msgid "Select quantity to serialize, and unique serial numbers." msgstr "" -#: stock/templates/stock/location.html:35 +#: stock/templates/stock/location.html:36 msgid "Perform stocktake for this stock location" msgstr "" -#: stock/templates/stock/location.html:42 +#: stock/templates/stock/location.html:43 msgid "Locate stock location" msgstr "" -#: stock/templates/stock/location.html:60 +#: stock/templates/stock/location.html:61 msgid "Scan stock items into this location" msgstr "" -#: stock/templates/stock/location.html:60 +#: stock/templates/stock/location.html:61 msgid "Scan In Stock Items" msgstr "" -#: stock/templates/stock/location.html:61 +#: stock/templates/stock/location.html:62 msgid "Scan stock container into this location" msgstr "" -#: stock/templates/stock/location.html:61 +#: stock/templates/stock/location.html:62 msgid "Scan In Container" msgstr "" -#: stock/templates/stock/location.html:72 +#: stock/templates/stock/location.html:73 msgid "Print Location Report" msgstr "" -#: stock/templates/stock/location.html:101 +#: stock/templates/stock/location.html:102 msgid "Location actions" msgstr "" -#: stock/templates/stock/location.html:103 +#: stock/templates/stock/location.html:104 msgid "Edit location" msgstr "" -#: stock/templates/stock/location.html:105 +#: stock/templates/stock/location.html:106 msgid "Delete location" msgstr "" -#: stock/templates/stock/location.html:135 +#: stock/templates/stock/location.html:136 msgid "Top level stock location" msgstr "" -#: stock/templates/stock/location.html:141 +#: stock/templates/stock/location.html:142 msgid "Location Owner" msgstr "" -#: stock/templates/stock/location.html:145 +#: stock/templates/stock/location.html:146 msgid "You are not in the list of owners of this location. This stock location cannot be edited." msgstr "" -#: stock/templates/stock/location.html:173 +#: stock/templates/stock/location.html:174 msgid "Location Type" msgstr "" -#: stock/templates/stock/location.html:223 +#: stock/templates/stock/location.html:224 msgid "Create new stock location" msgstr "" -#: stock/templates/stock/location.html:224 +#: stock/templates/stock/location.html:225 msgid "New Location" msgstr "" -#: stock/templates/stock/location.html:298 -#: templates/js/translated/stock.js:2657 +#: stock/templates/stock/location.html:299 +#: templates/js/translated/stock.js:2658 msgid "stock location" msgstr "" -#: stock/templates/stock/location.html:320 +#: stock/templates/stock/location.html:321 msgid "Scanned stock container into this location" msgstr "" -#: stock/templates/stock/location.html:393 +#: stock/templates/stock/location.html:394 msgid "Stock Location QR Code" msgstr "" -#: stock/templates/stock/location.html:404 +#: stock/templates/stock/location.html:405 msgid "Link Barcode to Stock Location" msgstr "" @@ -10630,10 +10998,6 @@ msgstr "" msgid "Stock Tracking" msgstr "" -#: stock/templates/stock/stock_sidebar.html:8 -msgid "Allocations" -msgstr "" - #: templates/403.html:6 templates/403.html:12 templates/403_csrf.html:7 msgid "Permission Denied" msgstr "" @@ -11107,9 +11471,9 @@ msgid "Rate" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:81 -#: templates/js/translated/forms.js:548 templates/js/translated/helpers.js:108 +#: templates/js/translated/forms.js:548 templates/js/translated/helpers.js:109 #: templates/js/translated/part.js:395 templates/js/translated/pricing.js:629 -#: templates/js/translated/stock.js:252 users/models.py:406 +#: templates/js/translated/stock.js:252 users/models.py:408 msgid "Delete" msgstr "" @@ -11130,7 +11494,7 @@ msgid "No project codes found" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:158 -#: templates/js/translated/build.js:2400 +#: templates/js/translated/build.js:2403 msgid "group" msgstr "" @@ -11196,7 +11560,7 @@ msgid "Delete Location Type" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:503 -#: templates/InvenTree/settings/stock.html:38 +#: templates/InvenTree/settings/stock.html:39 msgid "New Location Type" msgstr "" @@ -11253,7 +11617,7 @@ msgstr "" msgid "Stock Settings" msgstr "" -#: templates/InvenTree/settings/stock.html:34 +#: templates/InvenTree/settings/stock.html:35 msgid "Stock Location Types" msgstr "" @@ -11280,7 +11644,7 @@ msgid "Unverified" msgstr "" #: templates/InvenTree/settings/user.html:80 -#: templates/js/translated/company.js:957 +#: templates/js/translated/company.js:958 msgid "Primary" msgstr "" @@ -11532,7 +11896,7 @@ msgid "Submit Bug Report" msgstr "" #: templates/about.html:91 templates/clip.html:4 -#: templates/js/translated/helpers.js:592 +#: templates/js/translated/helpers.js:598 msgid "copy to clipboard" msgstr "" @@ -11738,23 +12102,24 @@ msgstr "" msgid "Barcode Identifier" msgstr "" -#: templates/base.html:103 +#: templates/base.html:102 msgid "Server Restart Required" msgstr "" -#: templates/base.html:106 +#: templates/base.html:105 msgid "A configuration option has been changed which requires a server restart" msgstr "" -#: templates/base.html:106 templates/base.html:116 +#: templates/base.html:105 templates/base.html:115 +#: templates/socialaccount/authentication_error.html:13 msgid "Contact your system administrator for further information" msgstr "" -#: templates/base.html:113 +#: templates/base.html:112 msgid "Pending Database Migrations" msgstr "" -#: templates/base.html:116 +#: templates/base.html:115 msgid "There are pending database migrations which require attention" msgstr "" @@ -11787,7 +12152,7 @@ msgid "The following parts are low on required stock" msgstr "" #: templates/email/build_order_required_stock.html:18 -#: templates/js/translated/bom.js:1674 templates/js/translated/build.js:2747 +#: templates/js/translated/bom.js:1674 templates/js/translated/build.js:2765 msgid "Required Quantity" msgstr "" @@ -11801,7 +12166,7 @@ msgid "Click on the following link to view this part" msgstr "" #: templates/email/low_stock_notification.html:18 -#: templates/js/translated/part.js:3237 +#: templates/js/translated/part.js:3253 msgid "Minimum Quantity" msgstr "" @@ -12039,7 +12404,7 @@ msgstr "" #: templates/js/translated/bom.js:189 templates/js/translated/bom.js:700 #: templates/js/translated/modals.js:75 templates/js/translated/modals.js:629 #: templates/js/translated/modals.js:757 templates/js/translated/modals.js:1065 -#: templates/js/translated/purchase_order.js:797 templates/modals.html:15 +#: templates/js/translated/purchase_order.js:780 templates/modals.html:15 #: templates/modals.html:27 templates/modals.html:39 templates/modals.html:50 msgid "Close" msgstr "" @@ -12156,7 +12521,7 @@ msgstr "" msgid "Substitutes Available" msgstr "" -#: templates/js/translated/bom.js:950 templates/js/translated/build.js:2673 +#: templates/js/translated/bom.js:950 templates/js/translated/build.js:2682 msgid "Variant stock allowed" msgstr "" @@ -12176,30 +12541,30 @@ msgstr "" msgid "No pricing available" msgstr "" -#: templates/js/translated/bom.js:1184 templates/js/translated/build.js:2812 +#: templates/js/translated/bom.js:1184 templates/js/translated/build.js:2830 msgid "External stock" msgstr "" -#: templates/js/translated/bom.js:1188 templates/js/translated/build.js:2786 -#: templates/js/translated/sales_order.js:1946 +#: templates/js/translated/bom.js:1188 templates/js/translated/build.js:2804 +#: templates/js/translated/sales_order.js:1927 msgid "No Stock Available" msgstr "" -#: templates/js/translated/bom.js:1193 templates/js/translated/build.js:2790 +#: templates/js/translated/bom.js:1193 templates/js/translated/build.js:2808 msgid "Includes variant and substitute stock" msgstr "" -#: templates/js/translated/bom.js:1195 templates/js/translated/build.js:2792 +#: templates/js/translated/bom.js:1195 templates/js/translated/build.js:2810 #: templates/js/translated/part.js:1263 -#: templates/js/translated/sales_order.js:1943 +#: templates/js/translated/sales_order.js:1924 msgid "Includes variant stock" msgstr "" -#: templates/js/translated/bom.js:1197 templates/js/translated/build.js:2794 +#: templates/js/translated/bom.js:1197 templates/js/translated/build.js:2812 msgid "Includes substitute stock" msgstr "" -#: templates/js/translated/bom.js:1225 templates/js/translated/build.js:2777 +#: templates/js/translated/bom.js:1225 templates/js/translated/build.js:2795 msgid "Consumable item" msgstr "" @@ -12231,7 +12596,7 @@ msgstr "" msgid "No BOM items found" msgstr "" -#: templates/js/translated/bom.js:1657 templates/js/translated/build.js:2658 +#: templates/js/translated/bom.js:1657 templates/js/translated/build.js:2667 msgid "Required Part" msgstr "" @@ -12243,396 +12608,396 @@ msgstr "" msgid "Edit Build Order" msgstr "" -#: templates/js/translated/build.js:191 +#: templates/js/translated/build.js:194 msgid "Create Build Order" msgstr "" -#: templates/js/translated/build.js:223 +#: templates/js/translated/build.js:226 msgid "Cancel Build Order" msgstr "" -#: templates/js/translated/build.js:232 +#: templates/js/translated/build.js:235 msgid "Are you sure you wish to cancel this build?" msgstr "" -#: templates/js/translated/build.js:238 +#: templates/js/translated/build.js:241 msgid "Stock items have been allocated to this build order" msgstr "" -#: templates/js/translated/build.js:245 +#: templates/js/translated/build.js:248 msgid "There are incomplete outputs remaining for this build order" msgstr "" -#: templates/js/translated/build.js:297 +#: templates/js/translated/build.js:300 msgid "Build order is ready to be completed" msgstr "" -#: templates/js/translated/build.js:305 +#: templates/js/translated/build.js:308 msgid "This build order cannot be completed as there are incomplete outputs" msgstr "" -#: templates/js/translated/build.js:310 +#: templates/js/translated/build.js:313 msgid "Build Order is incomplete" msgstr "" -#: templates/js/translated/build.js:328 +#: templates/js/translated/build.js:331 msgid "Complete Build Order" msgstr "" -#: templates/js/translated/build.js:369 templates/js/translated/stock.js:127 +#: templates/js/translated/build.js:372 templates/js/translated/stock.js:127 #: templates/js/translated/stock.js:301 msgid "Next available serial number" msgstr "" -#: templates/js/translated/build.js:371 templates/js/translated/stock.js:129 +#: templates/js/translated/build.js:374 templates/js/translated/stock.js:129 #: templates/js/translated/stock.js:303 msgid "Latest serial number" msgstr "" -#: templates/js/translated/build.js:380 +#: templates/js/translated/build.js:383 msgid "The Bill of Materials contains trackable parts" msgstr "" -#: templates/js/translated/build.js:381 +#: templates/js/translated/build.js:384 msgid "Build outputs must be generated individually" msgstr "" -#: templates/js/translated/build.js:389 +#: templates/js/translated/build.js:392 msgid "Trackable parts can have serial numbers specified" msgstr "" -#: templates/js/translated/build.js:390 +#: templates/js/translated/build.js:393 msgid "Enter serial numbers to generate multiple single build outputs" msgstr "" -#: templates/js/translated/build.js:397 +#: templates/js/translated/build.js:400 msgid "Create Build Output" msgstr "" -#: templates/js/translated/build.js:428 +#: templates/js/translated/build.js:431 msgid "Allocate stock items to this build output" msgstr "" -#: templates/js/translated/build.js:436 +#: templates/js/translated/build.js:439 msgid "Deallocate stock from build output" msgstr "" -#: templates/js/translated/build.js:445 +#: templates/js/translated/build.js:448 msgid "Complete build output" msgstr "" -#: templates/js/translated/build.js:453 +#: templates/js/translated/build.js:456 msgid "Scrap build output" msgstr "" -#: templates/js/translated/build.js:460 +#: templates/js/translated/build.js:463 msgid "Delete build output" msgstr "" -#: templates/js/translated/build.js:480 +#: templates/js/translated/build.js:483 msgid "Are you sure you wish to deallocate the selected stock items from this build?" msgstr "" -#: templates/js/translated/build.js:498 +#: templates/js/translated/build.js:501 msgid "Deallocate Stock Items" msgstr "" -#: templates/js/translated/build.js:584 templates/js/translated/build.js:711 -#: templates/js/translated/build.js:836 +#: templates/js/translated/build.js:587 templates/js/translated/build.js:714 +#: templates/js/translated/build.js:839 msgid "Select Build Outputs" msgstr "" -#: templates/js/translated/build.js:585 templates/js/translated/build.js:712 -#: templates/js/translated/build.js:837 +#: templates/js/translated/build.js:588 templates/js/translated/build.js:715 +#: templates/js/translated/build.js:840 msgid "At least one build output must be selected" msgstr "" -#: templates/js/translated/build.js:599 +#: templates/js/translated/build.js:602 msgid "Selected build outputs will be marked as complete" msgstr "" -#: templates/js/translated/build.js:603 templates/js/translated/build.js:736 -#: templates/js/translated/build.js:859 +#: templates/js/translated/build.js:606 templates/js/translated/build.js:739 +#: templates/js/translated/build.js:862 msgid "Output" msgstr "" -#: templates/js/translated/build.js:630 +#: templates/js/translated/build.js:633 msgid "Complete Build Outputs" msgstr "" -#: templates/js/translated/build.js:727 +#: templates/js/translated/build.js:730 msgid "Selected build outputs will be marked as scrapped" msgstr "" -#: templates/js/translated/build.js:729 +#: templates/js/translated/build.js:732 msgid "Scrapped output are marked as rejected" msgstr "" -#: templates/js/translated/build.js:730 +#: templates/js/translated/build.js:733 msgid "Allocated stock items will no longer be available" msgstr "" -#: templates/js/translated/build.js:731 +#: templates/js/translated/build.js:734 msgid "The completion status of the build order will not be adjusted" msgstr "" -#: templates/js/translated/build.js:761 +#: templates/js/translated/build.js:764 msgid "Scrap Build Outputs" msgstr "" -#: templates/js/translated/build.js:851 +#: templates/js/translated/build.js:854 msgid "Selected build outputs will be deleted" msgstr "" -#: templates/js/translated/build.js:853 +#: templates/js/translated/build.js:856 msgid "Build output data will be permanently deleted" msgstr "" -#: templates/js/translated/build.js:854 +#: templates/js/translated/build.js:857 msgid "Allocated stock items will be returned to stock" msgstr "" -#: templates/js/translated/build.js:872 +#: templates/js/translated/build.js:875 msgid "Delete Build Outputs" msgstr "" -#: templates/js/translated/build.js:959 +#: templates/js/translated/build.js:962 msgid "Delete allocations" msgstr "" -#: templates/js/translated/build.js:966 +#: templates/js/translated/build.js:969 msgid "Delete Stock Allocations" msgstr "" -#: templates/js/translated/build.js:989 +#: templates/js/translated/build.js:992 msgid "No allocated stock" msgstr "" -#: templates/js/translated/build.js:1045 +#: templates/js/translated/build.js:1048 msgid "Stock item" msgstr "" -#: templates/js/translated/build.js:1070 +#: templates/js/translated/build.js:1073 msgid "Edit build allocation" msgstr "" -#: templates/js/translated/build.js:1071 +#: templates/js/translated/build.js:1074 msgid "Delete build allocation" msgstr "" -#: templates/js/translated/build.js:1089 +#: templates/js/translated/build.js:1092 msgid "Edit Build Allocation" msgstr "" -#: templates/js/translated/build.js:1102 +#: templates/js/translated/build.js:1105 msgid "Delete Build Allocation" msgstr "" -#: templates/js/translated/build.js:1133 +#: templates/js/translated/build.js:1136 msgid "No build order allocations found" msgstr "" -#: templates/js/translated/build.js:1178 +#: templates/js/translated/build.js:1181 msgid "Location not specified" msgstr "" -#: templates/js/translated/build.js:1200 +#: templates/js/translated/build.js:1203 msgid "Complete outputs" msgstr "" -#: templates/js/translated/build.js:1218 +#: templates/js/translated/build.js:1221 msgid "Scrap outputs" msgstr "" -#: templates/js/translated/build.js:1236 +#: templates/js/translated/build.js:1239 msgid "Delete outputs" msgstr "" -#: templates/js/translated/build.js:1289 +#: templates/js/translated/build.js:1292 msgid "build output" msgstr "" -#: templates/js/translated/build.js:1290 +#: templates/js/translated/build.js:1293 msgid "build outputs" msgstr "" -#: templates/js/translated/build.js:1294 +#: templates/js/translated/build.js:1297 msgid "Build output actions" msgstr "" -#: templates/js/translated/build.js:1470 +#: templates/js/translated/build.js:1473 msgid "No active build outputs found" msgstr "" -#: templates/js/translated/build.js:1563 +#: templates/js/translated/build.js:1566 msgid "Allocated Lines" msgstr "" -#: templates/js/translated/build.js:1577 +#: templates/js/translated/build.js:1580 msgid "Required Tests" msgstr "" -#: templates/js/translated/build.js:1749 -#: templates/js/translated/purchase_order.js:611 -#: templates/js/translated/sales_order.js:1207 +#: templates/js/translated/build.js:1752 +#: templates/js/translated/purchase_order.js:594 +#: templates/js/translated/sales_order.js:1173 msgid "Select Parts" msgstr "" -#: templates/js/translated/build.js:1750 -#: templates/js/translated/sales_order.js:1208 +#: templates/js/translated/build.js:1753 +#: templates/js/translated/sales_order.js:1174 msgid "You must select at least one part to allocate" msgstr "" -#: templates/js/translated/build.js:1813 -#: templates/js/translated/sales_order.js:1157 +#: templates/js/translated/build.js:1816 +#: templates/js/translated/sales_order.js:1123 msgid "Specify stock allocation quantity" msgstr "" -#: templates/js/translated/build.js:1890 +#: templates/js/translated/build.js:1893 msgid "All Parts Allocated" msgstr "" -#: templates/js/translated/build.js:1891 +#: templates/js/translated/build.js:1894 msgid "All selected parts have been fully allocated" msgstr "" -#: templates/js/translated/build.js:1905 -#: templates/js/translated/sales_order.js:1222 +#: templates/js/translated/build.js:1908 +#: templates/js/translated/sales_order.js:1188 msgid "Select source location (leave blank to take from all locations)" msgstr "" -#: templates/js/translated/build.js:1933 +#: templates/js/translated/build.js:1936 msgid "Allocate Stock Items to Build Order" msgstr "" -#: templates/js/translated/build.js:1944 -#: templates/js/translated/sales_order.js:1319 +#: templates/js/translated/build.js:1947 +#: templates/js/translated/sales_order.js:1285 msgid "No matching stock locations" msgstr "" -#: templates/js/translated/build.js:2017 -#: templates/js/translated/sales_order.js:1398 +#: templates/js/translated/build.js:2020 +#: templates/js/translated/sales_order.js:1364 msgid "No matching stock items" msgstr "" -#: templates/js/translated/build.js:2114 +#: templates/js/translated/build.js:2117 msgid "Automatic Stock Allocation" msgstr "" -#: templates/js/translated/build.js:2115 +#: templates/js/translated/build.js:2118 msgid "Stock items will be automatically allocated to this build order, according to the provided guidelines" msgstr "" -#: templates/js/translated/build.js:2117 +#: templates/js/translated/build.js:2120 msgid "If a location is specified, stock will only be allocated from that location" msgstr "" -#: templates/js/translated/build.js:2118 +#: templates/js/translated/build.js:2121 msgid "If stock is considered interchangeable, it will be allocated from the first location it is found" msgstr "" -#: templates/js/translated/build.js:2119 +#: templates/js/translated/build.js:2122 msgid "If substitute stock is allowed, it will be used where stock of the primary part cannot be found" msgstr "" -#: templates/js/translated/build.js:2149 +#: templates/js/translated/build.js:2152 msgid "Allocate Stock Items" msgstr "" -#: templates/js/translated/build.js:2254 +#: templates/js/translated/build.js:2257 msgid "No builds matching query" msgstr "" -#: templates/js/translated/build.js:2289 templates/js/translated/build.js:2652 +#: templates/js/translated/build.js:2292 templates/js/translated/build.js:2661 #: templates/js/translated/forms.js:2196 templates/js/translated/forms.js:2212 #: templates/js/translated/part.js:2322 templates/js/translated/part.js:2761 -#: templates/js/translated/stock.js:2068 templates/js/translated/stock.js:2795 +#: templates/js/translated/stock.js:2069 templates/js/translated/stock.js:2796 msgid "Select" msgstr "" -#: templates/js/translated/build.js:2303 +#: templates/js/translated/build.js:2306 msgid "Build order is overdue" msgstr "" -#: templates/js/translated/build.js:2385 templates/js/translated/stock.js:3126 +#: templates/js/translated/build.js:2388 templates/js/translated/stock.js:3127 msgid "No user information" msgstr "" -#: templates/js/translated/build.js:2561 -#: templates/js/translated/sales_order.js:1682 +#: templates/js/translated/build.js:2568 +#: templates/js/translated/sales_order.js:1663 msgid "Edit stock allocation" msgstr "" -#: templates/js/translated/build.js:2562 -#: templates/js/translated/sales_order.js:1683 +#: templates/js/translated/build.js:2569 +#: templates/js/translated/sales_order.js:1664 msgid "Delete stock allocation" msgstr "" -#: templates/js/translated/build.js:2577 +#: templates/js/translated/build.js:2584 msgid "Edit Allocation" msgstr "" -#: templates/js/translated/build.js:2589 +#: templates/js/translated/build.js:2596 msgid "Remove Allocation" msgstr "" -#: templates/js/translated/build.js:2628 +#: templates/js/translated/build.js:2636 msgid "build line" msgstr "" -#: templates/js/translated/build.js:2629 +#: templates/js/translated/build.js:2637 msgid "build lines" msgstr "" -#: templates/js/translated/build.js:2647 +#: templates/js/translated/build.js:2656 msgid "No build lines found" msgstr "" -#: templates/js/translated/build.js:2677 templates/js/translated/part.js:793 +#: templates/js/translated/build.js:2686 templates/js/translated/part.js:793 #: templates/js/translated/part.js:1209 msgid "Trackable part" msgstr "" -#: templates/js/translated/build.js:2720 +#: templates/js/translated/build.js:2729 msgid "Gets Inherited" msgstr "" -#: templates/js/translated/build.js:2730 +#: templates/js/translated/build.js:2748 msgid "Unit Quantity" msgstr "" -#: templates/js/translated/build.js:2782 -#: templates/js/translated/sales_order.js:1951 +#: templates/js/translated/build.js:2800 +#: templates/js/translated/sales_order.js:1932 msgid "Sufficient stock available" msgstr "" -#: templates/js/translated/build.js:2837 +#: templates/js/translated/build.js:2855 msgid "Consumable Item" msgstr "" -#: templates/js/translated/build.js:2844 +#: templates/js/translated/build.js:2862 msgid "Tracked item" msgstr "" -#: templates/js/translated/build.js:2845 +#: templates/js/translated/build.js:2863 msgid "Allocate tracked items against individual build outputs" msgstr "" -#: templates/js/translated/build.js:2853 -#: templates/js/translated/sales_order.js:2052 +#: templates/js/translated/build.js:2871 +#: templates/js/translated/sales_order.js:2033 msgid "Build stock" msgstr "" -#: templates/js/translated/build.js:2858 templates/js/translated/stock.js:1953 +#: templates/js/translated/build.js:2876 templates/js/translated/stock.js:1954 msgid "Order stock" msgstr "" -#: templates/js/translated/build.js:2862 -#: templates/js/translated/sales_order.js:2046 +#: templates/js/translated/build.js:2880 +#: templates/js/translated/sales_order.js:2027 msgid "Allocate stock" msgstr "" -#: templates/js/translated/build.js:2866 +#: templates/js/translated/build.js:2884 msgid "Remove stock allocation" msgstr "" @@ -12641,7 +13006,7 @@ msgid "Add Manufacturer" msgstr "" #: templates/js/translated/company.js:111 -#: templates/js/translated/company.js:213 +#: templates/js/translated/company.js:214 msgid "Add Manufacturer Part" msgstr "" @@ -12649,231 +13014,231 @@ msgstr "" msgid "Edit Manufacturer Part" msgstr "" -#: templates/js/translated/company.js:201 +#: templates/js/translated/company.js:202 #: templates/js/translated/purchase_order.js:93 msgid "Add Supplier" msgstr "" -#: templates/js/translated/company.js:243 -#: templates/js/translated/purchase_order.js:318 +#: templates/js/translated/company.js:244 +#: templates/js/translated/purchase_order.js:301 msgid "Add Supplier Part" msgstr "" -#: templates/js/translated/company.js:344 +#: templates/js/translated/company.js:345 msgid "All selected supplier parts will be deleted" msgstr "" -#: templates/js/translated/company.js:360 +#: templates/js/translated/company.js:361 msgid "Delete Supplier Parts" msgstr "" -#: templates/js/translated/company.js:466 +#: templates/js/translated/company.js:467 msgid "Add new Company" msgstr "" -#: templates/js/translated/company.js:546 +#: templates/js/translated/company.js:547 msgid "Parts Supplied" msgstr "" -#: templates/js/translated/company.js:555 +#: templates/js/translated/company.js:556 msgid "Parts Manufactured" msgstr "" -#: templates/js/translated/company.js:570 +#: templates/js/translated/company.js:571 msgid "No company information found" msgstr "" -#: templates/js/translated/company.js:619 +#: templates/js/translated/company.js:620 msgid "Create New Contact" msgstr "" -#: templates/js/translated/company.js:635 -#: templates/js/translated/company.js:758 +#: templates/js/translated/company.js:636 +#: templates/js/translated/company.js:759 msgid "Edit Contact" msgstr "" -#: templates/js/translated/company.js:672 +#: templates/js/translated/company.js:673 msgid "All selected contacts will be deleted" msgstr "" -#: templates/js/translated/company.js:678 -#: templates/js/translated/company.js:742 +#: templates/js/translated/company.js:679 +#: templates/js/translated/company.js:743 msgid "Role" msgstr "" -#: templates/js/translated/company.js:686 +#: templates/js/translated/company.js:687 msgid "Delete Contacts" msgstr "" -#: templates/js/translated/company.js:717 +#: templates/js/translated/company.js:718 msgid "No contacts found" msgstr "" -#: templates/js/translated/company.js:730 +#: templates/js/translated/company.js:731 msgid "Phone Number" msgstr "" -#: templates/js/translated/company.js:736 +#: templates/js/translated/company.js:737 msgid "Email Address" msgstr "" -#: templates/js/translated/company.js:762 +#: templates/js/translated/company.js:763 msgid "Delete Contact" msgstr "" -#: templates/js/translated/company.js:859 +#: templates/js/translated/company.js:860 msgid "Create New Address" msgstr "" -#: templates/js/translated/company.js:874 -#: templates/js/translated/company.js:1035 +#: templates/js/translated/company.js:875 +#: templates/js/translated/company.js:1036 msgid "Edit Address" msgstr "" -#: templates/js/translated/company.js:909 +#: templates/js/translated/company.js:910 msgid "All selected addresses will be deleted" msgstr "" -#: templates/js/translated/company.js:923 +#: templates/js/translated/company.js:924 msgid "Delete Addresses" msgstr "" -#: templates/js/translated/company.js:950 +#: templates/js/translated/company.js:951 msgid "No addresses found" msgstr "" -#: templates/js/translated/company.js:989 +#: templates/js/translated/company.js:990 msgid "Postal city" msgstr "" -#: templates/js/translated/company.js:995 +#: templates/js/translated/company.js:996 msgid "State/province" msgstr "" -#: templates/js/translated/company.js:1007 +#: templates/js/translated/company.js:1008 msgid "Courier notes" msgstr "" -#: templates/js/translated/company.js:1013 +#: templates/js/translated/company.js:1014 msgid "Internal notes" msgstr "" -#: templates/js/translated/company.js:1039 +#: templates/js/translated/company.js:1040 msgid "Delete Address" msgstr "" -#: templates/js/translated/company.js:1112 +#: templates/js/translated/company.js:1113 msgid "All selected manufacturer parts will be deleted" msgstr "" -#: templates/js/translated/company.js:1127 +#: templates/js/translated/company.js:1128 msgid "Delete Manufacturer Parts" msgstr "" -#: templates/js/translated/company.js:1161 +#: templates/js/translated/company.js:1162 msgid "All selected parameters will be deleted" msgstr "" -#: templates/js/translated/company.js:1175 +#: templates/js/translated/company.js:1176 msgid "Delete Parameters" msgstr "" -#: templates/js/translated/company.js:1191 -#: templates/js/translated/company.js:1479 templates/js/translated/part.js:2250 +#: templates/js/translated/company.js:1192 +#: templates/js/translated/company.js:1480 templates/js/translated/part.js:2250 msgid "Order parts" msgstr "" -#: templates/js/translated/company.js:1208 +#: templates/js/translated/company.js:1209 msgid "Delete manufacturer parts" msgstr "" -#: templates/js/translated/company.js:1240 +#: templates/js/translated/company.js:1241 msgid "Manufacturer part actions" msgstr "" -#: templates/js/translated/company.js:1259 +#: templates/js/translated/company.js:1260 msgid "No manufacturer parts found" msgstr "" -#: templates/js/translated/company.js:1279 -#: templates/js/translated/company.js:1567 templates/js/translated/part.js:801 +#: templates/js/translated/company.js:1280 +#: templates/js/translated/company.js:1568 templates/js/translated/part.js:801 #: templates/js/translated/part.js:1217 msgid "Template part" msgstr "" -#: templates/js/translated/company.js:1283 -#: templates/js/translated/company.js:1571 templates/js/translated/part.js:805 +#: templates/js/translated/company.js:1284 +#: templates/js/translated/company.js:1572 templates/js/translated/part.js:805 #: templates/js/translated/part.js:1221 msgid "Assembled part" msgstr "" -#: templates/js/translated/company.js:1403 templates/js/translated/part.js:1471 +#: templates/js/translated/company.js:1404 templates/js/translated/part.js:1471 msgid "No parameters found" msgstr "" -#: templates/js/translated/company.js:1438 templates/js/translated/part.js:1534 +#: templates/js/translated/company.js:1439 templates/js/translated/part.js:1534 msgid "Edit parameter" msgstr "" -#: templates/js/translated/company.js:1439 templates/js/translated/part.js:1535 +#: templates/js/translated/company.js:1440 templates/js/translated/part.js:1535 msgid "Delete parameter" msgstr "" -#: templates/js/translated/company.js:1456 templates/js/translated/part.js:1440 +#: templates/js/translated/company.js:1457 templates/js/translated/part.js:1440 msgid "Edit Parameter" msgstr "" -#: templates/js/translated/company.js:1465 templates/js/translated/part.js:1556 +#: templates/js/translated/company.js:1466 templates/js/translated/part.js:1556 msgid "Delete Parameter" msgstr "" -#: templates/js/translated/company.js:1496 +#: templates/js/translated/company.js:1497 msgid "Delete supplier parts" msgstr "" -#: templates/js/translated/company.js:1546 +#: templates/js/translated/company.js:1547 msgid "No supplier parts found" msgstr "" -#: templates/js/translated/company.js:1664 +#: templates/js/translated/company.js:1665 msgid "Base Units" msgstr "" -#: templates/js/translated/company.js:1694 +#: templates/js/translated/company.js:1695 msgid "Availability" msgstr "" -#: templates/js/translated/company.js:1725 +#: templates/js/translated/company.js:1726 msgid "Edit supplier part" msgstr "" -#: templates/js/translated/company.js:1726 +#: templates/js/translated/company.js:1727 msgid "Delete supplier part" msgstr "" -#: templates/js/translated/company.js:1779 +#: templates/js/translated/company.js:1780 #: templates/js/translated/pricing.js:694 msgid "Delete Price Break" msgstr "" -#: templates/js/translated/company.js:1789 +#: templates/js/translated/company.js:1790 #: templates/js/translated/pricing.js:712 msgid "Edit Price Break" msgstr "" -#: templates/js/translated/company.js:1804 +#: templates/js/translated/company.js:1805 msgid "No price break information found" msgstr "" -#: templates/js/translated/company.js:1833 +#: templates/js/translated/company.js:1834 msgid "Last updated" msgstr "" -#: templates/js/translated/company.js:1840 +#: templates/js/translated/company.js:1841 msgid "Edit price break" msgstr "" -#: templates/js/translated/company.js:1841 +#: templates/js/translated/company.js:1842 msgid "Delete price break" msgstr "" @@ -12977,19 +13342,19 @@ msgstr "" msgid "Select Columns" msgstr "" -#: templates/js/translated/helpers.js:80 +#: templates/js/translated/helpers.js:81 msgid "YES" msgstr "" -#: templates/js/translated/helpers.js:83 +#: templates/js/translated/helpers.js:84 msgid "NO" msgstr "" -#: templates/js/translated/helpers.js:96 +#: templates/js/translated/helpers.js:97 msgid "True" msgstr "" -#: templates/js/translated/helpers.js:97 +#: templates/js/translated/helpers.js:98 msgid "False" msgstr "" @@ -13131,7 +13496,7 @@ msgid "Delete Line" msgstr "" #: templates/js/translated/order.js:306 -#: templates/js/translated/purchase_order.js:2060 +#: templates/js/translated/purchase_order.js:2044 msgid "No line items found" msgstr "" @@ -13366,19 +13731,19 @@ msgid "Delete Part Parameter Template" msgstr "" #: templates/js/translated/part.js:1723 -#: templates/js/translated/purchase_order.js:1724 +#: templates/js/translated/purchase_order.js:1708 msgid "No purchase orders found" msgstr "" #: templates/js/translated/part.js:1867 -#: templates/js/translated/purchase_order.js:2223 +#: templates/js/translated/purchase_order.js:2207 #: templates/js/translated/return_order.js:754 -#: templates/js/translated/sales_order.js:1911 +#: templates/js/translated/sales_order.js:1892 msgid "This line item is overdue" msgstr "" #: templates/js/translated/part.js:1913 -#: templates/js/translated/purchase_order.js:2290 +#: templates/js/translated/purchase_order.js:2274 msgid "Receive line item" msgstr "" @@ -13419,7 +13784,7 @@ msgid "No category" msgstr "" #: templates/js/translated/part.js:2550 templates/js/translated/part.js:2680 -#: templates/js/translated/stock.js:2754 +#: templates/js/translated/stock.js:2755 msgid "Display as list" msgstr "" @@ -13431,7 +13796,7 @@ msgstr "" msgid "No subcategories found" msgstr "" -#: templates/js/translated/part.js:2700 templates/js/translated/stock.js:2774 +#: templates/js/translated/part.js:2700 templates/js/translated/stock.js:2775 msgid "Display as tree" msgstr "" @@ -13483,23 +13848,23 @@ msgstr "" msgid "Speculative" msgstr "" -#: templates/js/translated/part.js:3128 +#: templates/js/translated/part.js:3144 msgid "No scheduling information available for this part" msgstr "" -#: templates/js/translated/part.js:3134 +#: templates/js/translated/part.js:3150 msgid "Error fetching scheduling information for this part" msgstr "" -#: templates/js/translated/part.js:3230 +#: templates/js/translated/part.js:3246 msgid "Scheduled Stock Quantities" msgstr "" -#: templates/js/translated/part.js:3246 +#: templates/js/translated/part.js:3262 msgid "Maximum Quantity" msgstr "" -#: templates/js/translated/part.js:3291 +#: templates/js/translated/part.js:3307 msgid "Minimum Stock Level" msgstr "" @@ -13575,267 +13940,243 @@ msgstr "" msgid "Purchase Price History" msgstr "" -#: templates/js/translated/pricing.js:894 +#: templates/js/translated/pricing.js:892 msgid "No sales history data available" msgstr "" -#: templates/js/translated/pricing.js:916 +#: templates/js/translated/pricing.js:914 msgid "Sale Price History" msgstr "" -#: templates/js/translated/pricing.js:1005 +#: templates/js/translated/pricing.js:1003 msgid "No variant data available" msgstr "" -#: templates/js/translated/pricing.js:1045 +#: templates/js/translated/pricing.js:1043 msgid "Variant Part" msgstr "" -#: templates/js/translated/purchase_order.js:169 -msgid "Select purchase order to duplicate" -msgstr "" - -#: templates/js/translated/purchase_order.js:176 -msgid "Duplicate Line Items" -msgstr "" - -#: templates/js/translated/purchase_order.js:177 -msgid "Duplicate all line items from the selected order" -msgstr "" - -#: templates/js/translated/purchase_order.js:184 -msgid "Duplicate Extra Lines" -msgstr "" - -#: templates/js/translated/purchase_order.js:185 -msgid "Duplicate extra line items from the selected order" -msgstr "" - -#: templates/js/translated/purchase_order.js:206 +#: templates/js/translated/purchase_order.js:188 msgid "Edit Purchase Order" msgstr "" -#: templates/js/translated/purchase_order.js:223 +#: templates/js/translated/purchase_order.js:205 msgid "Duplication Options" msgstr "" -#: templates/js/translated/purchase_order.js:431 +#: templates/js/translated/purchase_order.js:414 msgid "Complete Purchase Order" msgstr "" -#: templates/js/translated/purchase_order.js:448 +#: templates/js/translated/purchase_order.js:431 #: templates/js/translated/return_order.js:210 -#: templates/js/translated/sales_order.js:552 +#: templates/js/translated/sales_order.js:511 msgid "Mark this order as complete?" msgstr "" -#: templates/js/translated/purchase_order.js:454 +#: templates/js/translated/purchase_order.js:437 msgid "All line items have been received" msgstr "" -#: templates/js/translated/purchase_order.js:459 +#: templates/js/translated/purchase_order.js:442 msgid "This order has line items which have not been marked as received." msgstr "" -#: templates/js/translated/purchase_order.js:460 +#: templates/js/translated/purchase_order.js:443 msgid "Completing this order means that the order and line items will no longer be editable." msgstr "" -#: templates/js/translated/purchase_order.js:483 +#: templates/js/translated/purchase_order.js:466 msgid "Cancel Purchase Order" msgstr "" -#: templates/js/translated/purchase_order.js:488 +#: templates/js/translated/purchase_order.js:471 msgid "Are you sure you wish to cancel this purchase order?" msgstr "" -#: templates/js/translated/purchase_order.js:494 +#: templates/js/translated/purchase_order.js:477 msgid "This purchase order can not be cancelled" msgstr "" -#: templates/js/translated/purchase_order.js:515 +#: templates/js/translated/purchase_order.js:498 #: templates/js/translated/return_order.js:164 msgid "After placing this order, line items will no longer be editable." msgstr "" -#: templates/js/translated/purchase_order.js:520 +#: templates/js/translated/purchase_order.js:503 msgid "Issue Purchase Order" msgstr "" -#: templates/js/translated/purchase_order.js:612 +#: templates/js/translated/purchase_order.js:595 msgid "At least one purchaseable part must be selected" msgstr "" -#: templates/js/translated/purchase_order.js:637 +#: templates/js/translated/purchase_order.js:620 msgid "Quantity to order" msgstr "" -#: templates/js/translated/purchase_order.js:646 +#: templates/js/translated/purchase_order.js:629 msgid "New supplier part" msgstr "" -#: templates/js/translated/purchase_order.js:664 +#: templates/js/translated/purchase_order.js:647 msgid "New purchase order" msgstr "" -#: templates/js/translated/purchase_order.js:705 +#: templates/js/translated/purchase_order.js:688 msgid "Add to purchase order" msgstr "" -#: templates/js/translated/purchase_order.js:755 +#: templates/js/translated/purchase_order.js:738 msgid "Merge" msgstr "" -#: templates/js/translated/purchase_order.js:859 +#: templates/js/translated/purchase_order.js:842 msgid "No matching supplier parts" msgstr "" -#: templates/js/translated/purchase_order.js:878 +#: templates/js/translated/purchase_order.js:861 msgid "No matching purchase orders" msgstr "" -#: templates/js/translated/purchase_order.js:1073 +#: templates/js/translated/purchase_order.js:1056 #: templates/js/translated/return_order.js:490 msgid "Select Line Items" msgstr "" -#: templates/js/translated/purchase_order.js:1074 +#: templates/js/translated/purchase_order.js:1057 #: templates/js/translated/return_order.js:491 msgid "At least one line item must be selected" msgstr "" -#: templates/js/translated/purchase_order.js:1104 +#: templates/js/translated/purchase_order.js:1087 msgid "Received Quantity" msgstr "" -#: templates/js/translated/purchase_order.js:1115 +#: templates/js/translated/purchase_order.js:1098 msgid "Quantity to receive" msgstr "" -#: templates/js/translated/purchase_order.js:1170 +#: templates/js/translated/purchase_order.js:1153 #: templates/js/translated/stock.js:1215 msgid "Specify packaging for incoming stock items" msgstr "" -#: templates/js/translated/purchase_order.js:1223 +#: templates/js/translated/purchase_order.js:1206 msgid "Stock Status" msgstr "" -#: templates/js/translated/purchase_order.js:1237 +#: templates/js/translated/purchase_order.js:1220 msgid "Add barcode" msgstr "" -#: templates/js/translated/purchase_order.js:1238 +#: templates/js/translated/purchase_order.js:1221 msgid "Remove barcode" msgstr "" -#: templates/js/translated/purchase_order.js:1241 +#: templates/js/translated/purchase_order.js:1224 msgid "Specify location" msgstr "" -#: templates/js/translated/purchase_order.js:1249 +#: templates/js/translated/purchase_order.js:1232 msgid "Add batch code" msgstr "" -#: templates/js/translated/purchase_order.js:1259 +#: templates/js/translated/purchase_order.js:1242 msgid "Specify packaging" msgstr "" -#: templates/js/translated/purchase_order.js:1270 +#: templates/js/translated/purchase_order.js:1253 msgid "Add serial numbers" msgstr "" -#: templates/js/translated/purchase_order.js:1281 +#: templates/js/translated/purchase_order.js:1264 msgid "Add note" msgstr "" -#: templates/js/translated/purchase_order.js:1338 +#: templates/js/translated/purchase_order.js:1321 msgid "Serials" msgstr "" -#: templates/js/translated/purchase_order.js:1368 +#: templates/js/translated/purchase_order.js:1351 msgid "Order Code" msgstr "" -#: templates/js/translated/purchase_order.js:1370 +#: templates/js/translated/purchase_order.js:1353 msgid "Quantity to Receive" msgstr "" -#: templates/js/translated/purchase_order.js:1395 +#: templates/js/translated/purchase_order.js:1379 #: templates/js/translated/return_order.js:559 msgid "Confirm receipt of items" msgstr "" -#: templates/js/translated/purchase_order.js:1396 +#: templates/js/translated/purchase_order.js:1380 msgid "Receive Purchase Order Items" msgstr "" -#: templates/js/translated/purchase_order.js:1464 +#: templates/js/translated/purchase_order.js:1448 msgid "Scan Item Barcode" msgstr "" -#: templates/js/translated/purchase_order.js:1465 +#: templates/js/translated/purchase_order.js:1449 msgid "Scan barcode on incoming item (must not match any existing stock items)" msgstr "" -#: templates/js/translated/purchase_order.js:1479 +#: templates/js/translated/purchase_order.js:1463 msgid "Invalid barcode data" msgstr "" -#: templates/js/translated/purchase_order.js:1751 +#: templates/js/translated/purchase_order.js:1735 #: templates/js/translated/return_order.js:285 -#: templates/js/translated/sales_order.js:810 -#: templates/js/translated/sales_order.js:1034 +#: templates/js/translated/sales_order.js:769 +#: templates/js/translated/sales_order.js:1007 msgid "Order is overdue" msgstr "" -#: templates/js/translated/purchase_order.js:1913 +#: templates/js/translated/purchase_order.js:1897 msgid "All selected Line items will be deleted" msgstr "" -#: templates/js/translated/purchase_order.js:1931 +#: templates/js/translated/purchase_order.js:1915 msgid "Delete selected Line items?" msgstr "" -#: templates/js/translated/purchase_order.js:1986 -#: templates/js/translated/sales_order.js:2106 +#: templates/js/translated/purchase_order.js:1970 +#: templates/js/translated/sales_order.js:2087 msgid "Duplicate Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2001 +#: templates/js/translated/purchase_order.js:1985 #: templates/js/translated/return_order.js:475 #: templates/js/translated/return_order.js:667 -#: templates/js/translated/sales_order.js:2119 +#: templates/js/translated/sales_order.js:2100 msgid "Edit Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2012 +#: templates/js/translated/purchase_order.js:1996 #: templates/js/translated/return_order.js:680 -#: templates/js/translated/sales_order.js:2130 +#: templates/js/translated/sales_order.js:2111 msgid "Delete Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2294 -#: templates/js/translated/sales_order.js:2060 +#: templates/js/translated/purchase_order.js:2278 +#: templates/js/translated/sales_order.js:2041 msgid "Duplicate line item" msgstr "" -#: templates/js/translated/purchase_order.js:2295 +#: templates/js/translated/purchase_order.js:2279 #: templates/js/translated/return_order.js:799 -#: templates/js/translated/sales_order.js:2061 +#: templates/js/translated/sales_order.js:2042 msgid "Edit line item" msgstr "" -#: templates/js/translated/purchase_order.js:2296 +#: templates/js/translated/purchase_order.js:2280 #: templates/js/translated/return_order.js:803 -#: templates/js/translated/sales_order.js:2067 +#: templates/js/translated/sales_order.js:2048 msgid "Delete line item" msgstr "" -#: templates/js/translated/report.js:49 -msgid "Print Report" -msgstr "" - #: templates/js/translated/report.js:68 msgid "Report print successful" msgstr "" @@ -13878,7 +14219,7 @@ msgid "No return orders found" msgstr "" #: templates/js/translated/return_order.js:299 -#: templates/js/translated/sales_order.js:824 +#: templates/js/translated/sales_order.js:783 msgid "Invalid Customer" msgstr "" @@ -13887,7 +14228,7 @@ msgid "Receive Return Order Items" msgstr "" #: templates/js/translated/return_order.js:691 -#: templates/js/translated/sales_order.js:2267 +#: templates/js/translated/sales_order.js:2248 msgid "No matching line items" msgstr "" @@ -13903,188 +14244,181 @@ msgstr "" msgid "Edit Sales Order" msgstr "" -#: templates/js/translated/sales_order.js:291 +#: templates/js/translated/sales_order.js:288 msgid "No stock items have been allocated to this shipment" msgstr "" -#: templates/js/translated/sales_order.js:296 -msgid "The following stock items will be shipped" -msgstr "" - -#: templates/js/translated/sales_order.js:336 +#: templates/js/translated/sales_order.js:294 msgid "Complete Shipment" msgstr "" -#: templates/js/translated/sales_order.js:360 +#: templates/js/translated/sales_order.js:318 msgid "Confirm Shipment" msgstr "" -#: templates/js/translated/sales_order.js:416 +#: templates/js/translated/sales_order.js:375 msgid "No pending shipments found" msgstr "" -#: templates/js/translated/sales_order.js:420 +#: templates/js/translated/sales_order.js:379 msgid "No stock items have been allocated to pending shipments" msgstr "" -#: templates/js/translated/sales_order.js:430 +#: templates/js/translated/sales_order.js:389 msgid "Complete Shipments" msgstr "" -#: templates/js/translated/sales_order.js:452 +#: templates/js/translated/sales_order.js:411 msgid "Skip" msgstr "" -#: templates/js/translated/sales_order.js:484 +#: templates/js/translated/sales_order.js:443 msgid "Ship Sales Order" msgstr "" -#: templates/js/translated/sales_order.js:500 +#: templates/js/translated/sales_order.js:459 msgid "Ship this order?" msgstr "" -#: templates/js/translated/sales_order.js:506 +#: templates/js/translated/sales_order.js:465 msgid "Order cannot be shipped as there are incomplete shipments" msgstr "" -#: templates/js/translated/sales_order.js:513 +#: templates/js/translated/sales_order.js:472 msgid "This order has line items which have not been completed." msgstr "" -#: templates/js/translated/sales_order.js:514 +#: templates/js/translated/sales_order.js:473 msgid "Shipping this order means that the order and line items will no longer be editable." msgstr "" -#: templates/js/translated/sales_order.js:572 +#: templates/js/translated/sales_order.js:531 msgid "Issue this Sales Order?" msgstr "" -#: templates/js/translated/sales_order.js:577 +#: templates/js/translated/sales_order.js:536 msgid "Issue Sales Order" msgstr "" -#: templates/js/translated/sales_order.js:596 +#: templates/js/translated/sales_order.js:555 msgid "Cancel Sales Order" msgstr "" -#: templates/js/translated/sales_order.js:601 +#: templates/js/translated/sales_order.js:560 msgid "Cancelling this order means that the order will no longer be editable." msgstr "" -#: templates/js/translated/sales_order.js:655 +#: templates/js/translated/sales_order.js:614 msgid "Create New Shipment" msgstr "" -#: templates/js/translated/sales_order.js:764 +#: templates/js/translated/sales_order.js:723 msgid "No sales orders found" msgstr "" -#: templates/js/translated/sales_order.js:944 +#: templates/js/translated/sales_order.js:907 msgid "Edit shipment" msgstr "" -#: templates/js/translated/sales_order.js:947 +#: templates/js/translated/sales_order.js:910 msgid "Complete shipment" msgstr "" -#: templates/js/translated/sales_order.js:952 +#: templates/js/translated/sales_order.js:915 msgid "Delete shipment" msgstr "" -#: templates/js/translated/sales_order.js:969 +#: templates/js/translated/sales_order.js:932 msgid "Edit Shipment" msgstr "" -#: templates/js/translated/sales_order.js:984 +#: templates/js/translated/sales_order.js:947 msgid "Delete Shipment" msgstr "" -#: templates/js/translated/sales_order.js:1017 +#: templates/js/translated/sales_order.js:989 msgid "No matching shipments found" msgstr "" -#: templates/js/translated/sales_order.js:1042 +#: templates/js/translated/sales_order.js:1015 msgid "Shipment Reference" msgstr "" -#: templates/js/translated/sales_order.js:1066 -#: templates/js/translated/sales_order.js:1565 +#: templates/js/translated/sales_order.js:1032 +#: templates/js/translated/sales_order.js:1531 msgid "Not shipped" msgstr "" -#: templates/js/translated/sales_order.js:1084 +#: templates/js/translated/sales_order.js:1050 msgid "Tracking" msgstr "" -#: templates/js/translated/sales_order.js:1088 +#: templates/js/translated/sales_order.js:1054 msgid "Invoice" msgstr "" -#: templates/js/translated/sales_order.js:1255 +#: templates/js/translated/sales_order.js:1221 msgid "Add Shipment" msgstr "" -#: templates/js/translated/sales_order.js:1306 +#: templates/js/translated/sales_order.js:1272 msgid "Confirm stock allocation" msgstr "" -#: templates/js/translated/sales_order.js:1307 +#: templates/js/translated/sales_order.js:1273 msgid "Allocate Stock Items to Sales Order" msgstr "" -#: templates/js/translated/sales_order.js:1513 +#: templates/js/translated/sales_order.js:1479 msgid "No sales order allocations found" msgstr "" -#: templates/js/translated/sales_order.js:1605 +#: templates/js/translated/sales_order.js:1571 msgid "Edit Stock Allocation" msgstr "" -#: templates/js/translated/sales_order.js:1619 +#: templates/js/translated/sales_order.js:1585 msgid "Confirm Delete Operation" msgstr "" -#: templates/js/translated/sales_order.js:1620 +#: templates/js/translated/sales_order.js:1586 msgid "Delete Stock Allocation" msgstr "" -#: templates/js/translated/sales_order.js:1659 -#: templates/js/translated/sales_order.js:1746 +#: templates/js/translated/sales_order.js:1640 +#: templates/js/translated/sales_order.js:1727 #: templates/js/translated/stock.js:1861 msgid "Shipped to customer" msgstr "" -#: templates/js/translated/sales_order.js:1667 -#: templates/js/translated/sales_order.js:1755 +#: templates/js/translated/sales_order.js:1648 +#: templates/js/translated/sales_order.js:1736 msgid "Stock location not specified" msgstr "" -#: templates/js/translated/sales_order.js:2044 -msgid "Allocate serial numbers" -msgstr "" - -#: templates/js/translated/sales_order.js:2048 -msgid "Purchase stock" -msgstr "" - -#: templates/js/translated/sales_order.js:2057 -#: templates/js/translated/sales_order.js:2245 -msgid "Calculate price" -msgstr "" - -#: templates/js/translated/sales_order.js:2071 -msgid "Cannot be deleted as items have been shipped" -msgstr "" - -#: templates/js/translated/sales_order.js:2074 -msgid "Cannot be deleted as items have been allocated" -msgstr "" - -#: templates/js/translated/sales_order.js:2145 +#: templates/js/translated/sales_order.js:2025 +#: templates/js/translated/sales_order.js:2126 msgid "Allocate Serial Numbers" msgstr "" -#: templates/js/translated/sales_order.js:2253 +#: templates/js/translated/sales_order.js:2029 +msgid "Purchase stock" +msgstr "" + +#: templates/js/translated/sales_order.js:2038 +#: templates/js/translated/sales_order.js:2226 +msgid "Calculate price" +msgstr "" + +#: templates/js/translated/sales_order.js:2052 +msgid "Cannot be deleted as items have been shipped" +msgstr "" + +#: templates/js/translated/sales_order.js:2055 +msgid "Cannot be deleted as items have been allocated" +msgstr "" + +#: templates/js/translated/sales_order.js:2234 msgid "Update Unit Price" msgstr "" @@ -14209,11 +14543,8 @@ msgid "Find Serial Number" msgstr "" #: templates/js/translated/stock.js:603 templates/js/translated/stock.js:604 -msgid "Enter serial number" -msgstr "" - #: templates/js/translated/stock.js:620 -msgid "Enter a serial number" +msgid "Enter serial number" msgstr "" #: templates/js/translated/stock.js:640 @@ -14284,7 +14615,7 @@ msgstr "" msgid "Add Stock" msgstr "" -#: templates/js/translated/stock.js:1049 users/models.py:396 +#: templates/js/translated/stock.js:1049 users/models.py:398 msgid "Add" msgstr "" @@ -14308,7 +14639,7 @@ msgstr "" msgid "Adjust packaging" msgstr "" -#: templates/js/translated/stock.js:1256 templates/js/translated/stock.js:3382 +#: templates/js/translated/stock.js:1256 templates/js/translated/stock.js:3383 msgid "Select Stock Items" msgstr "" @@ -14320,18 +14651,6 @@ msgstr "" msgid "Confirm stock adjustment" msgstr "" -#: templates/js/translated/stock.js:1448 -msgid "PASS" -msgstr "" - -#: templates/js/translated/stock.js:1450 -msgid "FAIL" -msgstr "" - -#: templates/js/translated/stock.js:1455 -msgid "NO RESULT" -msgstr "" - #: templates/js/translated/stock.js:1535 msgid "Pass test" msgstr "" @@ -14388,216 +14707,216 @@ msgstr "" msgid "No stock location set" msgstr "" -#: templates/js/translated/stock.js:1927 +#: templates/js/translated/stock.js:1928 msgid "Change stock status" msgstr "" -#: templates/js/translated/stock.js:1936 +#: templates/js/translated/stock.js:1937 msgid "Merge stock" msgstr "" -#: templates/js/translated/stock.js:1985 +#: templates/js/translated/stock.js:1986 msgid "Delete stock" msgstr "" -#: templates/js/translated/stock.js:2038 +#: templates/js/translated/stock.js:2039 msgid "stock items" msgstr "" -#: templates/js/translated/stock.js:2043 +#: templates/js/translated/stock.js:2044 msgid "Scan to location" msgstr "" -#: templates/js/translated/stock.js:2054 +#: templates/js/translated/stock.js:2055 msgid "Stock Actions" msgstr "" -#: templates/js/translated/stock.js:2098 +#: templates/js/translated/stock.js:2099 msgid "Load installed items" msgstr "" -#: templates/js/translated/stock.js:2176 +#: templates/js/translated/stock.js:2177 msgid "Stock item is in production" msgstr "" -#: templates/js/translated/stock.js:2181 +#: templates/js/translated/stock.js:2182 msgid "Stock item assigned to sales order" msgstr "" -#: templates/js/translated/stock.js:2184 +#: templates/js/translated/stock.js:2185 msgid "Stock item assigned to customer" msgstr "" -#: templates/js/translated/stock.js:2187 +#: templates/js/translated/stock.js:2188 msgid "Serialized stock item has been allocated" msgstr "" -#: templates/js/translated/stock.js:2189 +#: templates/js/translated/stock.js:2190 msgid "Stock item has been fully allocated" msgstr "" -#: templates/js/translated/stock.js:2191 +#: templates/js/translated/stock.js:2192 msgid "Stock item has been partially allocated" msgstr "" -#: templates/js/translated/stock.js:2194 +#: templates/js/translated/stock.js:2195 msgid "Stock item has been installed in another item" msgstr "" -#: templates/js/translated/stock.js:2196 +#: templates/js/translated/stock.js:2197 msgid "Stock item has been consumed by a build order" msgstr "" -#: templates/js/translated/stock.js:2200 +#: templates/js/translated/stock.js:2201 msgid "Stock item has expired" msgstr "" -#: templates/js/translated/stock.js:2202 +#: templates/js/translated/stock.js:2203 msgid "Stock item will expire soon" msgstr "" -#: templates/js/translated/stock.js:2207 +#: templates/js/translated/stock.js:2208 msgid "Stock item has been rejected" msgstr "" -#: templates/js/translated/stock.js:2209 +#: templates/js/translated/stock.js:2210 msgid "Stock item is lost" msgstr "" -#: templates/js/translated/stock.js:2211 +#: templates/js/translated/stock.js:2212 msgid "Stock item is destroyed" msgstr "" -#: templates/js/translated/stock.js:2215 +#: templates/js/translated/stock.js:2216 #: templates/js/translated/table_filters.js:357 msgid "Depleted" msgstr "" -#: templates/js/translated/stock.js:2380 +#: templates/js/translated/stock.js:2381 msgid "Supplier part not specified" msgstr "" -#: templates/js/translated/stock.js:2427 +#: templates/js/translated/stock.js:2428 msgid "Stock Value" msgstr "" -#: templates/js/translated/stock.js:2555 +#: templates/js/translated/stock.js:2556 msgid "No stock items matching query" msgstr "" -#: templates/js/translated/stock.js:2658 +#: templates/js/translated/stock.js:2659 msgid "stock locations" msgstr "" -#: templates/js/translated/stock.js:2813 +#: templates/js/translated/stock.js:2814 msgid "Load Sublocations" msgstr "" -#: templates/js/translated/stock.js:2930 +#: templates/js/translated/stock.js:2931 msgid "Details" msgstr "" -#: templates/js/translated/stock.js:2934 +#: templates/js/translated/stock.js:2935 msgid "No changes" msgstr "" -#: templates/js/translated/stock.js:2946 +#: templates/js/translated/stock.js:2947 msgid "Part information unavailable" msgstr "" -#: templates/js/translated/stock.js:2968 +#: templates/js/translated/stock.js:2969 msgid "Location no longer exists" msgstr "" -#: templates/js/translated/stock.js:2985 +#: templates/js/translated/stock.js:2986 msgid "Build order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3000 +#: templates/js/translated/stock.js:3001 msgid "Purchase order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3017 +#: templates/js/translated/stock.js:3018 msgid "Sales Order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3034 +#: templates/js/translated/stock.js:3035 msgid "Return Order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3053 +#: templates/js/translated/stock.js:3054 msgid "Customer no longer exists" msgstr "" -#: templates/js/translated/stock.js:3071 +#: templates/js/translated/stock.js:3072 msgid "Stock item no longer exists" msgstr "" -#: templates/js/translated/stock.js:3089 +#: templates/js/translated/stock.js:3090 msgid "Added" msgstr "" -#: templates/js/translated/stock.js:3097 +#: templates/js/translated/stock.js:3098 msgid "Removed" msgstr "" -#: templates/js/translated/stock.js:3169 +#: templates/js/translated/stock.js:3170 msgid "No installed items" msgstr "" -#: templates/js/translated/stock.js:3223 templates/js/translated/stock.js:3259 +#: templates/js/translated/stock.js:3224 templates/js/translated/stock.js:3260 msgid "Uninstall Stock Item" msgstr "" -#: templates/js/translated/stock.js:3280 +#: templates/js/translated/stock.js:3281 msgid "Select stock item to uninstall" msgstr "" -#: templates/js/translated/stock.js:3301 +#: templates/js/translated/stock.js:3302 msgid "Install another stock item into this item" msgstr "" -#: templates/js/translated/stock.js:3302 +#: templates/js/translated/stock.js:3303 msgid "Stock items can only be installed if they meet the following criteria" msgstr "" -#: templates/js/translated/stock.js:3304 +#: templates/js/translated/stock.js:3305 msgid "The Stock Item links to a Part which is the BOM for this Stock Item" msgstr "" -#: templates/js/translated/stock.js:3305 +#: templates/js/translated/stock.js:3306 msgid "The Stock Item is currently available in stock" msgstr "" -#: templates/js/translated/stock.js:3306 +#: templates/js/translated/stock.js:3307 msgid "The Stock Item is not already installed in another item" msgstr "" -#: templates/js/translated/stock.js:3307 +#: templates/js/translated/stock.js:3308 msgid "The Stock Item is tracked by either a batch code or serial number" msgstr "" -#: templates/js/translated/stock.js:3320 +#: templates/js/translated/stock.js:3321 msgid "Select part to install" msgstr "" -#: templates/js/translated/stock.js:3383 +#: templates/js/translated/stock.js:3384 msgid "Select one or more stock items" msgstr "" -#: templates/js/translated/stock.js:3396 +#: templates/js/translated/stock.js:3397 msgid "Selected stock items" msgstr "" -#: templates/js/translated/stock.js:3400 +#: templates/js/translated/stock.js:3401 msgid "Change Stock Status" msgstr "" -#: templates/js/translated/stock.js:3477 +#: templates/js/translated/stock.js:3478 msgid "This week" msgstr "" -#: templates/js/translated/stock.js:3485 +#: templates/js/translated/stock.js:3486 msgid "This month" msgstr "" @@ -14734,10 +15053,6 @@ msgstr "" msgid "Show items which are in production" msgstr "" -#: templates/js/translated/table_filters.js:372 -msgid "Include Variants" -msgstr "" - #: templates/js/translated/table_filters.js:373 msgid "Include stock items for variant parts" msgstr "" @@ -15012,10 +15327,6 @@ msgstr "" msgid "An error occurred while attempting to login via your social network account." msgstr "" -#: templates/socialaccount/authentication_error.html:13 -msgid "Contact your system administrator for further information." -msgstr "" - #: templates/socialaccount/login.html:13 #, python-format msgid "Connect %(provider)s" @@ -15141,27 +15452,27 @@ msgstr "" msgid "No" msgstr "" -#: users/admin.py:104 +#: users/admin.py:101 msgid "Users" msgstr "" -#: users/admin.py:105 +#: users/admin.py:102 msgid "Select which users are assigned to this group" msgstr "" -#: users/admin.py:249 +#: users/admin.py:246 msgid "The following users are members of multiple groups" msgstr "" -#: users/admin.py:283 +#: users/admin.py:280 msgid "Personal info" msgstr "" -#: users/admin.py:285 +#: users/admin.py:282 msgid "Permissions" msgstr "" -#: users/admin.py:288 +#: users/admin.py:285 msgid "Important dates" msgstr "" @@ -15205,35 +15516,35 @@ msgstr "" msgid "Revoked" msgstr "" -#: users/models.py:379 +#: users/models.py:381 msgid "Permission set" msgstr "" -#: users/models.py:388 +#: users/models.py:390 msgid "Group" msgstr "" -#: users/models.py:392 +#: users/models.py:394 msgid "View" msgstr "" -#: users/models.py:392 +#: users/models.py:394 msgid "Permission to view items" msgstr "" -#: users/models.py:396 +#: users/models.py:398 msgid "Permission to add items" msgstr "" -#: users/models.py:400 +#: users/models.py:402 msgid "Change" msgstr "" -#: users/models.py:402 +#: users/models.py:404 msgid "Permissions to edit items" msgstr "" -#: users/models.py:408 +#: users/models.py:410 msgid "Permission to delete items" msgstr "" diff --git a/src/backend/InvenTree/locale/hi/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/hi/LC_MESSAGES/django.po index 4f6ce2209a..d62e2e44f8 100644 --- a/src/backend/InvenTree/locale/hi/LC_MESSAGES/django.po +++ b/src/backend/InvenTree/locale/hi/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-08-20 01:22+0000\n" -"PO-Revision-Date: 2024-08-20 19:51\n" +"POT-Creation-Date: 2024-11-04 03:11+0000\n" +"PO-Revision-Date: 2024-11-04 03:14\n" "Last-Translator: \n" "Language-Team: Hindi\n" "Language: hi_IN\n" @@ -14,81 +14,89 @@ msgstr "" "X-Crowdin-Project: inventree\n" "X-Crowdin-Project-ID: 452300\n" "X-Crowdin-Language: hi\n" -"X-Crowdin-File: /[inventree.InvenTree] l10/src/backend/InvenTree/locale/en/LC_MESSAGES/django.po\n" -"X-Crowdin-File-ID: 216\n" +"X-Crowdin-File: /src/backend/InvenTree/locale/en/LC_MESSAGES/django.po\n" +"X-Crowdin-File-ID: 250\n" -#: InvenTree/api.py:269 +#: InvenTree/api.py:270 msgid "API endpoint not found" msgstr "" -#: InvenTree/api.py:502 +#: InvenTree/api.py:387 +msgid "Invalid items list provided" +msgstr "" + +#: InvenTree/api.py:396 +msgid "Invalid filters provided" +msgstr "" + +#: InvenTree/api.py:401 +msgid "No items found to delete" +msgstr "" + +#: InvenTree/api.py:515 msgid "User does not have permission to view this model" msgstr "" -#: InvenTree/conversion.py:160 +#: InvenTree/conversion.py:161 #, python-brace-format msgid "Invalid unit provided ({unit})" msgstr "" -#: InvenTree/conversion.py:177 +#: InvenTree/conversion.py:178 msgid "No value provided" msgstr "" -#: InvenTree/conversion.py:204 +#: InvenTree/conversion.py:205 #, python-brace-format msgid "Could not convert {original} to {unit}" msgstr "" -#: InvenTree/conversion.py:206 -msgid "Invalid quantity supplied" +#: InvenTree/conversion.py:207 InvenTree/conversion.py:221 +#: InvenTree/helpers.py:505 order/models.py:589 order/models.py:832 +msgid "Invalid quantity provided" msgstr "" -#: InvenTree/conversion.py:220 -#, python-brace-format -msgid "Invalid quantity supplied ({exc})" -msgstr "" - -#: InvenTree/exceptions.py:108 +#: InvenTree/exceptions.py:104 msgid "Error details can be found in the admin panel" msgstr "" -#: InvenTree/fields.py:136 +#: InvenTree/fields.py:135 msgid "Enter date" msgstr "तारीख दर्ज करें" -#: InvenTree/fields.py:205 InvenTree/models.py:929 build/serializers.py:468 -#: build/serializers.py:546 build/templates/build/sidebar.html:29 -#: company/models.py:836 +#: InvenTree/fields.py:204 InvenTree/models.py:928 build/serializers.py:512 +#: build/serializers.py:590 build/templates/build/sidebar.html:29 +#: company/models.py:833 #: company/templates/company/manufacturer_part_sidebar.html:11 #: company/templates/company/sidebar.html:37 -#: company/templates/company/supplier_part_sidebar.html:11 order/models.py:1380 +#: company/templates/company/supplier_part_sidebar.html:11 order/models.py:1397 #: order/templates/order/po_sidebar.html:11 #: order/templates/order/return_order_sidebar.html:9 #: order/templates/order/so_sidebar.html:17 part/admin.py:59 -#: part/models.py:3297 part/templates/part/part_sidebar.html:65 +#: part/models.py:3348 part/templates/part/part_sidebar.html:65 #: report/templates/report/inventree_build_order_report.html:172 -#: stock/admin.py:230 stock/models.py:2375 stock/models.py:2563 -#: stock/serializers.py:698 stock/serializers.py:856 stock/serializers.py:982 -#: stock/serializers.py:1032 stock/serializers.py:1343 -#: stock/serializers.py:1432 stock/serializers.py:1597 +#: stock/admin.py:231 stock/models.py:2494 stock/models.py:2679 +#: stock/serializers.py:725 stock/serializers.py:887 stock/serializers.py:1013 +#: stock/serializers.py:1063 stock/serializers.py:1374 +#: stock/serializers.py:1463 stock/serializers.py:1628 #: stock/templates/stock/stock_sidebar.html:25 #: templates/js/translated/barcode.js:143 templates/js/translated/bom.js:1265 -#: templates/js/translated/company.js:1684 templates/js/translated/order.js:372 +#: templates/js/translated/company.js:1685 templates/js/translated/order.js:372 #: templates/js/translated/part.js:1087 -#: templates/js/translated/purchase_order.js:2270 +#: templates/js/translated/purchase_order.js:2254 #: templates/js/translated/return_order.js:774 -#: templates/js/translated/sales_order.js:1103 -#: templates/js/translated/sales_order.js:2018 -#: templates/js/translated/stock.js:1621 templates/js/translated/stock.js:2513 +#: templates/js/translated/sales_order.js:1069 +#: templates/js/translated/sales_order.js:1999 +#: templates/js/translated/stock.js:1621 templates/js/translated/stock.js:2514 msgid "Notes" msgstr "" -#: InvenTree/format.py:164 +#: InvenTree/format.py:162 #, python-brace-format msgid "Value '{name}' does not appear in pattern format" msgstr "" -#: InvenTree/format.py:175 +#: InvenTree/format.py:173 msgid "Provided value does not match required pattern: " msgstr "" @@ -132,397 +140,409 @@ msgstr "" msgid "The provided primary email address is not valid." msgstr "" -#: InvenTree/forms.py:274 +#: InvenTree/forms.py:273 msgid "The provided email domain is not approved." msgstr "" -#: InvenTree/forms.py:403 +#: InvenTree/forms.py:402 msgid "Registration is disabled." msgstr "" -#: InvenTree/helpers.py:491 order/models.py:567 order/models.py:810 -msgid "Invalid quantity provided" +#: InvenTree/helpers.py:509 +msgid "Cannot serialize more than 1000 items at once" msgstr "" -#: InvenTree/helpers.py:499 +#: InvenTree/helpers.py:515 msgid "Empty serial number string" msgstr "" -#: InvenTree/helpers.py:528 +#: InvenTree/helpers.py:544 msgid "Duplicate serial" msgstr "" -#: InvenTree/helpers.py:560 InvenTree/helpers.py:603 +#: InvenTree/helpers.py:576 InvenTree/helpers.py:619 InvenTree/helpers.py:637 +#: InvenTree/helpers.py:644 InvenTree/helpers.py:663 #, python-brace-format -msgid "Invalid group range: {group}" +msgid "Invalid group: {group}" msgstr "" -#: InvenTree/helpers.py:591 +#: InvenTree/helpers.py:607 #, python-brace-format msgid "Group range {group} exceeds allowed quantity ({expected_quantity})" msgstr "" -#: InvenTree/helpers.py:621 InvenTree/helpers.py:628 InvenTree/helpers.py:647 -#, python-brace-format -msgid "Invalid group sequence: {group}" -msgstr "" - -#: InvenTree/helpers.py:657 +#: InvenTree/helpers.py:673 msgid "No serial numbers found" msgstr "" -#: InvenTree/helpers.py:662 +#: InvenTree/helpers.py:678 msgid "Number of unique serial numbers ({len(serials)}) must match quantity ({expected_quantity})" msgstr "" -#: InvenTree/helpers.py:780 +#: InvenTree/helpers.py:796 msgid "Remove HTML tags from this value" msgstr "" -#: InvenTree/helpers_model.py:133 +#: InvenTree/helpers.py:881 +msgid "Data contains prohibited markdown content" +msgstr "" + +#: InvenTree/helpers_model.py:130 msgid "Connection error" msgstr "कनेक्शन त्रुटि" -#: InvenTree/helpers_model.py:138 InvenTree/helpers_model.py:145 +#: InvenTree/helpers_model.py:135 InvenTree/helpers_model.py:142 msgid "Server responded with invalid status code" msgstr "" -#: InvenTree/helpers_model.py:141 +#: InvenTree/helpers_model.py:138 msgid "Exception occurred" msgstr "" -#: InvenTree/helpers_model.py:151 +#: InvenTree/helpers_model.py:148 msgid "Server responded with invalid Content-Length value" msgstr "" -#: InvenTree/helpers_model.py:154 +#: InvenTree/helpers_model.py:151 msgid "Image size is too large" msgstr "" -#: InvenTree/helpers_model.py:166 +#: InvenTree/helpers_model.py:163 msgid "Image download exceeded maximum size" msgstr "" -#: InvenTree/helpers_model.py:171 +#: InvenTree/helpers_model.py:168 msgid "Remote server returned empty response" msgstr "" -#: InvenTree/helpers_model.py:179 +#: InvenTree/helpers_model.py:176 msgid "Supplied URL is not a valid image file" msgstr "" -#: InvenTree/locales.py:18 +#: InvenTree/locales.py:20 msgid "Arabic" msgstr "" -#: InvenTree/locales.py:19 +#: InvenTree/locales.py:21 msgid "Bulgarian" msgstr "" -#: InvenTree/locales.py:20 +#: InvenTree/locales.py:22 msgid "Czech" msgstr "" -#: InvenTree/locales.py:21 +#: InvenTree/locales.py:23 msgid "Danish" msgstr "" -#: InvenTree/locales.py:22 +#: InvenTree/locales.py:24 msgid "German" msgstr "" -#: InvenTree/locales.py:23 +#: InvenTree/locales.py:25 msgid "Greek" msgstr "" -#: InvenTree/locales.py:24 +#: InvenTree/locales.py:26 msgid "English" msgstr "" -#: InvenTree/locales.py:25 +#: InvenTree/locales.py:27 msgid "Spanish" msgstr "" -#: InvenTree/locales.py:26 +#: InvenTree/locales.py:28 msgid "Spanish (Mexican)" msgstr "" -#: InvenTree/locales.py:27 +#: InvenTree/locales.py:29 msgid "Estonian" msgstr "" -#: InvenTree/locales.py:28 +#: InvenTree/locales.py:30 msgid "Farsi / Persian" msgstr "" -#: InvenTree/locales.py:29 +#: InvenTree/locales.py:31 msgid "Finnish" msgstr "" -#: InvenTree/locales.py:30 +#: InvenTree/locales.py:32 msgid "French" msgstr "" -#: InvenTree/locales.py:31 +#: InvenTree/locales.py:33 msgid "Hebrew" msgstr "" -#: InvenTree/locales.py:32 +#: InvenTree/locales.py:34 msgid "Hindi" msgstr "" -#: InvenTree/locales.py:33 +#: InvenTree/locales.py:35 msgid "Hungarian" msgstr "" -#: InvenTree/locales.py:34 +#: InvenTree/locales.py:36 msgid "Italian" msgstr "" -#: InvenTree/locales.py:35 +#: InvenTree/locales.py:37 msgid "Japanese" msgstr "" -#: InvenTree/locales.py:36 +#: InvenTree/locales.py:38 msgid "Korean" msgstr "" -#: InvenTree/locales.py:37 -msgid "Latvian" -msgstr "" - -#: InvenTree/locales.py:38 -msgid "Dutch" -msgstr "" - #: InvenTree/locales.py:39 -msgid "Norwegian" +msgid "Lithuanian" msgstr "" #: InvenTree/locales.py:40 -msgid "Polish" +msgid "Latvian" msgstr "" #: InvenTree/locales.py:41 -msgid "Portuguese" +msgid "Dutch" msgstr "" #: InvenTree/locales.py:42 -msgid "Portuguese (Brazilian)" +msgid "Norwegian" msgstr "" #: InvenTree/locales.py:43 -msgid "Romanian" +msgid "Polish" msgstr "" #: InvenTree/locales.py:44 -msgid "Russian" +msgid "Portuguese" msgstr "" #: InvenTree/locales.py:45 -msgid "Slovak" +msgid "Portuguese (Brazilian)" msgstr "" #: InvenTree/locales.py:46 -msgid "Slovenian" +msgid "Romanian" msgstr "" #: InvenTree/locales.py:47 -msgid "Serbian" +msgid "Russian" msgstr "" #: InvenTree/locales.py:48 -msgid "Swedish" +msgid "Slovak" msgstr "" #: InvenTree/locales.py:49 -msgid "Thai" +msgid "Slovenian" msgstr "" #: InvenTree/locales.py:50 -msgid "Turkish" +msgid "Serbian" msgstr "" #: InvenTree/locales.py:51 -msgid "Ukrainian" +msgid "Swedish" msgstr "" #: InvenTree/locales.py:52 -msgid "Vietnamese" +msgid "Thai" msgstr "" #: InvenTree/locales.py:53 -msgid "Chinese (Simplified)" +msgid "Turkish" msgstr "" #: InvenTree/locales.py:54 +msgid "Ukrainian" +msgstr "" + +#: InvenTree/locales.py:55 +msgid "Vietnamese" +msgstr "" + +#: InvenTree/locales.py:56 +msgid "Chinese (Simplified)" +msgstr "" + +#: InvenTree/locales.py:57 msgid "Chinese (Traditional)" msgstr "" #: InvenTree/magic_login.py:28 -#, python-brace-format -msgid "[{site_name}] Log in to the app" +msgid "Log in to the app" msgstr "" -#: InvenTree/magic_login.py:38 InvenTree/serializers.py:415 -#: company/models.py:136 company/templates/company/company_base.html:138 +#: InvenTree/magic_login.py:38 InvenTree/serializers.py:416 +#: company/models.py:133 company/templates/company/company_base.html:138 #: templates/InvenTree/settings/user.html:49 -#: templates/js/translated/company.js:677 +#: templates/js/translated/company.js:678 msgid "Email" msgstr "ई-मेल" -#: InvenTree/models.py:103 +#: InvenTree/models.py:105 msgid "Error running plugin validation" msgstr "" -#: InvenTree/models.py:172 +#: InvenTree/models.py:174 msgid "Metadata must be a python dict object" msgstr "" -#: InvenTree/models.py:178 +#: InvenTree/models.py:180 msgid "Plugin Metadata" msgstr "" -#: InvenTree/models.py:179 +#: InvenTree/models.py:181 msgid "JSON metadata field, for use by external plugins" msgstr "" -#: InvenTree/models.py:409 +#: InvenTree/models.py:408 msgid "Improperly formatted pattern" msgstr "" -#: InvenTree/models.py:416 +#: InvenTree/models.py:415 msgid "Unknown format key specified" msgstr "" -#: InvenTree/models.py:422 +#: InvenTree/models.py:421 msgid "Missing required format key" msgstr "" -#: InvenTree/models.py:433 +#: InvenTree/models.py:432 msgid "Reference field cannot be empty" msgstr "" -#: InvenTree/models.py:441 +#: InvenTree/models.py:440 msgid "Reference must match required pattern" msgstr "" -#: InvenTree/models.py:472 +#: InvenTree/models.py:471 msgid "Reference number is too large" msgstr "" -#: InvenTree/models.py:723 +#: InvenTree/models.py:722 msgid "Duplicate names cannot exist under the same parent" msgstr "" -#: InvenTree/models.py:740 +#: InvenTree/models.py:739 msgid "Invalid choice" msgstr "" -#: InvenTree/models.py:770 common/models.py:2702 common/models.py:3132 -#: common/serializers.py:412 company/models.py:593 machine/models.py:24 -#: part/models.py:983 part/models.py:3764 plugin/models.py:51 -#: report/models.py:149 stock/models.py:77 +#: InvenTree/models.py:769 common/models.py:2766 common/models.py:3193 +#: common/models.py:3413 common/serializers.py:460 company/models.py:590 +#: machine/models.py:24 part/models.py:1044 part/models.py:3815 +#: plugin/models.py:51 report/models.py:149 stock/models.py:83 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/notifications.html:17 #: templates/InvenTree/settings/plugin.html:83 #: templates/InvenTree/settings/plugin_settings.html:22 #: templates/InvenTree/settings/settings_staff_js.html:67 #: templates/InvenTree/settings/settings_staff_js.html:454 -#: templates/js/translated/company.js:676 -#: templates/js/translated/company.js:724 -#: templates/js/translated/company.js:913 -#: templates/js/translated/company.js:1165 -#: templates/js/translated/company.js:1413 templates/js/translated/part.js:1193 +#: templates/js/translated/company.js:677 +#: templates/js/translated/company.js:725 +#: templates/js/translated/company.js:914 +#: templates/js/translated/company.js:1166 +#: templates/js/translated/company.js:1414 templates/js/translated/part.js:1193 #: templates/js/translated/part.js:1481 templates/js/translated/part.js:1617 -#: templates/js/translated/part.js:2768 templates/js/translated/stock.js:2801 +#: templates/js/translated/part.js:2768 templates/js/translated/stock.js:2802 msgid "Name" msgstr "" -#: InvenTree/models.py:776 build/models.py:250 -#: build/templates/build/detail.html:24 common/models.py:156 -#: company/models.py:521 company/models.py:827 +#: InvenTree/models.py:775 build/models.py:251 +#: build/templates/build/detail.html:24 common/models.py:159 +#: company/models.py:518 company/models.py:824 #: company/templates/company/company_base.html:77 #: company/templates/company/manufacturer_part.html:75 -#: company/templates/company/supplier_part.html:107 order/models.py:288 -#: order/models.py:1413 part/admin.py:305 part/admin.py:411 part/models.py:1006 -#: part/models.py:3779 part/templates/part/category.html:79 -#: part/templates/part/part_base.html:170 +#: company/templates/company/supplier_part.html:108 order/models.py:295 +#: order/models.py:1430 part/admin.py:305 part/admin.py:411 part/models.py:1067 +#: part/models.py:3830 part/templates/part/category.html:79 +#: part/templates/part/part_base.html:171 #: part/templates/part/part_scheduling.html:12 report/models.py:155 -#: report/models.py:509 report/models.py:535 +#: report/models.py:517 report/models.py:543 #: report/templates/report/inventree_build_order_report.html:117 -#: stock/admin.py:54 stock/models.py:83 stock/templates/stock/location.html:122 +#: stock/admin.py:54 stock/models.py:89 stock/templates/stock/location.html:123 #: templates/InvenTree/settings/notifications.html:19 #: templates/InvenTree/settings/plugin_settings.html:27 #: templates/InvenTree/settings/settings_staff_js.html:170 #: templates/InvenTree/settings/settings_staff_js.html:459 #: templates/js/translated/bom.js:633 templates/js/translated/bom.js:963 -#: templates/js/translated/build.js:2311 templates/js/translated/company.js:519 -#: templates/js/translated/company.js:1330 -#: templates/js/translated/company.js:1641 templates/js/translated/index.js:119 +#: templates/js/translated/build.js:2314 templates/js/translated/company.js:520 +#: templates/js/translated/company.js:1331 +#: templates/js/translated/company.js:1642 templates/js/translated/index.js:119 #: templates/js/translated/order.js:323 templates/js/translated/part.js:1245 #: templates/js/translated/part.js:1490 templates/js/translated/part.js:1628 #: templates/js/translated/part.js:1965 templates/js/translated/part.js:2361 #: templates/js/translated/part.js:2803 templates/js/translated/part.js:2915 #: templates/js/translated/plugin.js:80 -#: templates/js/translated/purchase_order.js:1776 -#: templates/js/translated/purchase_order.js:1919 -#: templates/js/translated/purchase_order.js:2092 +#: templates/js/translated/purchase_order.js:1760 +#: templates/js/translated/purchase_order.js:1903 +#: templates/js/translated/purchase_order.js:2076 #: templates/js/translated/return_order.js:313 -#: templates/js/translated/sales_order.js:838 -#: templates/js/translated/sales_order.js:1848 -#: templates/js/translated/stock.js:1600 templates/js/translated/stock.js:2143 -#: templates/js/translated/stock.js:2832 templates/js/translated/stock.js:2915 +#: templates/js/translated/sales_order.js:797 +#: templates/js/translated/sales_order.js:1829 +#: templates/js/translated/stock.js:1600 templates/js/translated/stock.js:2144 +#: templates/js/translated/stock.js:2833 templates/js/translated/stock.js:2916 msgid "Description" msgstr "" -#: InvenTree/models.py:777 stock/models.py:84 +#: InvenTree/models.py:776 stock/models.py:90 msgid "Description (optional)" msgstr "" -#: InvenTree/models.py:792 templates/js/translated/part.js:2812 -#: templates/js/translated/stock.js:2841 +#: InvenTree/models.py:791 common/models.py:3546 +#: templates/js/translated/part.js:2812 templates/js/translated/stock.js:2842 msgid "Path" msgstr "" -#: InvenTree/models.py:929 +#: InvenTree/models.py:928 msgid "Markdown notes (optional)" msgstr "" -#: InvenTree/models.py:960 +#: InvenTree/models.py:959 msgid "Barcode Data" msgstr "" -#: InvenTree/models.py:961 +#: InvenTree/models.py:960 msgid "Third party barcode data" msgstr "" -#: InvenTree/models.py:967 +#: InvenTree/models.py:966 msgid "Barcode Hash" msgstr "" -#: InvenTree/models.py:968 +#: InvenTree/models.py:967 msgid "Unique hash of barcode data" msgstr "" -#: InvenTree/models.py:1035 +#: InvenTree/models.py:1034 msgid "Existing barcode found" msgstr "" -#: InvenTree/models.py:1078 +#: InvenTree/models.py:1112 +msgid "Task Failure" +msgstr "" + +#: InvenTree/models.py:1114 +#, python-brace-format +msgid "Background worker task '{instance.func}' failed after {n} attempts" +msgstr "" + +#: InvenTree/models.py:1142 msgid "Server Error" msgstr "" -#: InvenTree/models.py:1079 +#: InvenTree/models.py:1143 msgid "An error has been logged by the server." msgstr "" -#: InvenTree/serializers.py:63 part/models.py:4387 +#: InvenTree/serializers.py:63 part/models.py:4444 msgid "Must be a valid number" msgstr "" -#: InvenTree/serializers.py:100 company/models.py:186 -#: company/templates/company/company_base.html:112 part/models.py:3115 +#: InvenTree/serializers.py:100 company/models.py:183 +#: company/templates/company/company_base.html:112 part/models.py:3166 #: templates/InvenTree/settings/settings_staff_js.html:44 #: templates/currency_data.html:5 msgid "Currency" @@ -532,15 +552,15 @@ msgstr "" msgid "Select currency from available options" msgstr "" -#: InvenTree/serializers.py:407 templates/InvenTree/settings/user.html:33 +#: InvenTree/serializers.py:405 templates/InvenTree/settings/user.html:33 msgid "Username" msgstr "" -#: InvenTree/serializers.py:409 templates/InvenTree/settings/user.html:37 +#: InvenTree/serializers.py:408 templates/InvenTree/settings/user.html:37 msgid "First Name" msgstr "" -#: InvenTree/serializers.py:409 +#: InvenTree/serializers.py:408 msgid "First name of the user" msgstr "" @@ -552,30 +572,30 @@ msgstr "" msgid "Last name of the user" msgstr "" -#: InvenTree/serializers.py:415 +#: InvenTree/serializers.py:416 msgid "Email address of the user" msgstr "" -#: InvenTree/serializers.py:439 +#: InvenTree/serializers.py:441 msgid "Staff" msgstr "" -#: InvenTree/serializers.py:439 +#: InvenTree/serializers.py:441 msgid "Does this user have staff permissions" msgstr "" -#: InvenTree/serializers.py:442 +#: InvenTree/serializers.py:445 msgid "Superuser" msgstr "" -#: InvenTree/serializers.py:442 +#: InvenTree/serializers.py:445 msgid "Is this user a superuser" msgstr "" -#: InvenTree/serializers.py:445 common/models.py:2707 company/models.py:163 -#: company/models.py:801 machine/models.py:39 part/admin.py:88 -#: part/models.py:1189 plugin/models.py:66 -#: templates/js/translated/company.js:523 +#: InvenTree/serializers.py:449 common/models.py:2771 company/models.py:160 +#: company/models.py:798 machine/models.py:39 part/admin.py:88 +#: part/models.py:1250 plugin/models.py:66 +#: templates/js/translated/company.js:524 #: templates/js/translated/table_filters.js:134 #: templates/js/translated/table_filters.js:226 #: templates/js/translated/table_filters.js:513 @@ -585,230 +605,229 @@ msgstr "" msgid "Active" msgstr "" -#: InvenTree/serializers.py:445 +#: InvenTree/serializers.py:449 msgid "Is this user account active" msgstr "" -#: InvenTree/serializers.py:463 +#: InvenTree/serializers.py:467 msgid "You do not have permission to change this user role." msgstr "" -#: InvenTree/serializers.py:475 +#: InvenTree/serializers.py:503 msgid "Only superusers can create new users" msgstr "" -#: InvenTree/serializers.py:494 +#: InvenTree/serializers.py:523 msgid "Your account has been created." msgstr "" -#: InvenTree/serializers.py:496 +#: InvenTree/serializers.py:525 msgid "Please use the password reset function to login" msgstr "" -#: InvenTree/serializers.py:503 +#: InvenTree/serializers.py:531 msgid "Welcome to InvenTree" msgstr "" -#: InvenTree/serializers.py:561 +#: InvenTree/serializers.py:594 msgid "Invalid value" msgstr "" -#: InvenTree/serializers.py:581 importer/models.py:63 +#: InvenTree/serializers.py:614 importer/models.py:64 msgid "Data File" msgstr "" -#: InvenTree/serializers.py:582 +#: InvenTree/serializers.py:615 msgid "Select data file for upload" msgstr "" -#: InvenTree/serializers.py:599 -msgid "Unsupported file type" +#: InvenTree/serializers.py:632 common/files.py:63 +msgid "Unsupported file format" msgstr "" -#: InvenTree/serializers.py:605 +#: InvenTree/serializers.py:638 msgid "File is too large" msgstr "" -#: InvenTree/serializers.py:626 +#: InvenTree/serializers.py:659 msgid "No columns found in file" msgstr "" -#: InvenTree/serializers.py:629 +#: InvenTree/serializers.py:662 msgid "No data rows found in file" msgstr "" -#: InvenTree/serializers.py:742 +#: InvenTree/serializers.py:774 msgid "No data rows provided" msgstr "" -#: InvenTree/serializers.py:745 +#: InvenTree/serializers.py:777 msgid "No data columns supplied" msgstr "" -#: InvenTree/serializers.py:812 +#: InvenTree/serializers.py:843 #, python-brace-format msgid "Missing required column: '{name}'" msgstr "" -#: InvenTree/serializers.py:821 +#: InvenTree/serializers.py:852 #, python-brace-format msgid "Duplicate column: '{col}'" msgstr "" -#: InvenTree/serializers.py:861 +#: InvenTree/serializers.py:891 msgid "Remote Image" msgstr "" -#: InvenTree/serializers.py:862 +#: InvenTree/serializers.py:892 msgid "URL of remote image file" msgstr "" -#: InvenTree/serializers.py:880 +#: InvenTree/serializers.py:910 msgid "Downloading images from remote URL is not enabled" msgstr "" -#: InvenTree/status.py:66 part/serializers.py:1246 -msgid "Background worker check failed" -msgstr "" - -#: InvenTree/status.py:70 -msgid "Email backend not configured" -msgstr "" - -#: InvenTree/status.py:73 -msgid "InvenTree system health checks failed" +#: InvenTree/serializers.py:917 +msgid "Failed to download image from remote URL" msgstr "" #: InvenTree/templatetags/inventree_extras.py:184 msgid "Unknown database" msgstr "" -#: InvenTree/validators.py:32 InvenTree/validators.py:34 +#: InvenTree/validators.py:32 msgid "Invalid physical unit" msgstr "" -#: InvenTree/validators.py:40 +#: InvenTree/validators.py:38 msgid "Not a valid currency code" msgstr "" -#: InvenTree/validators.py:118 InvenTree/validators.py:134 +#: InvenTree/validators.py:115 InvenTree/validators.py:131 msgid "Overage value must not be negative" msgstr "" -#: InvenTree/validators.py:136 +#: InvenTree/validators.py:133 msgid "Overage must not exceed 100%" msgstr "" -#: InvenTree/validators.py:142 +#: InvenTree/validators.py:139 msgid "Invalid value for overage" msgstr "" -#: InvenTree/views.py:400 templates/InvenTree/settings/user.html:23 +#: InvenTree/views.py:399 templates/InvenTree/settings/user.html:23 msgid "Edit User Information" msgstr "" -#: InvenTree/views.py:412 templates/InvenTree/settings/user.html:20 +#: InvenTree/views.py:411 templates/InvenTree/settings/user.html:20 msgid "Set Password" msgstr "" -#: InvenTree/views.py:434 +#: InvenTree/views.py:433 msgid "Password fields must match" msgstr "" -#: InvenTree/views.py:442 +#: InvenTree/views.py:441 msgid "Wrong password provided" msgstr "" -#: InvenTree/views.py:650 templates/navbar.html:160 +#: InvenTree/views.py:645 templates/navbar.html:160 msgid "System Information" msgstr "" -#: InvenTree/views.py:657 templates/navbar.html:171 +#: InvenTree/views.py:652 templates/navbar.html:171 msgid "About InvenTree" msgstr "" -#: build/api.py:51 part/api.py:156 stock/api.py:343 -msgid "Cascade" -msgstr "" - -#: build/api.py:64 build/models.py:261 -#: build/templates/build/build_base.html:191 +#: build/api.py:54 build/models.py:262 +#: build/templates/build/build_base.html:192 #: build/templates/build/detail.html:87 msgid "Parent Build" msgstr "" -#: build/api.py:89 order/api.py:92 templates/js/translated/table_filters.js:101 +#: build/api.py:58 build/api.py:625 order/api.py:396 order/api.py:611 +#: order/api.py:990 order/api.py:1187 +#: templates/js/translated/table_filters.js:372 +msgid "Include Variants" +msgstr "" + +#: build/api.py:93 +msgid "Ancestor Build" +msgstr "" + +#: build/api.py:112 order/api.py:90 +#: templates/js/translated/table_filters.js:101 #: templates/js/translated/table_filters.js:549 #: templates/js/translated/table_filters.js:633 #: templates/js/translated/table_filters.js:674 msgid "Assigned to me" msgstr "" -#: build/api.py:106 build/templates/build/build_base.html:205 +#: build/api.py:129 build/templates/build/build_base.html:206 #: build/templates/build/detail.html:115 #: report/templates/report/inventree_build_order_report.html:152 #: templates/js/translated/table_filters.js:552 msgid "Issued By" msgstr "" -#: build/api.py:125 +#: build/api.py:148 msgid "Assigned To" msgstr "" -#: build/api.py:301 +#: build/api.py:310 msgid "Build must be cancelled before it can be deleted" msgstr "" -#: build/api.py:345 build/serializers.py:1288 part/models.py:4265 +#: build/api.py:354 build/serializers.py:1342 part/models.py:4322 #: templates/js/translated/bom.js:997 templates/js/translated/bom.js:1037 -#: templates/js/translated/build.js:2702 +#: templates/js/translated/build.js:2711 #: templates/js/translated/table_filters.js:197 #: templates/js/translated/table_filters.js:586 msgid "Consumable" msgstr "" -#: build/api.py:346 build/serializers.py:1289 part/models.py:4259 +#: build/api.py:355 build/serializers.py:1343 part/models.py:4316 #: part/templates/part/upload_bom.html:58 templates/js/translated/bom.js:1001 -#: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2693 +#: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2702 #: templates/js/translated/table_filters.js:193 #: templates/js/translated/table_filters.js:222 #: templates/js/translated/table_filters.js:590 msgid "Optional" msgstr "" -#: build/api.py:347 common/models.py:1489 part/admin.py:91 part/admin.py:428 -#: part/models.py:1154 part/serializers.py:1575 +#: build/api.py:356 common/models.py:1558 part/admin.py:91 part/admin.py:428 +#: part/models.py:1215 part/serializers.py:1633 #: templates/js/translated/bom.js:1639 #: templates/js/translated/table_filters.js:337 #: templates/js/translated/table_filters.js:729 msgid "Assembly" msgstr "" -#: build/api.py:348 templates/js/translated/table_filters.js:415 +#: build/api.py:357 templates/js/translated/table_filters.js:415 #: templates/js/translated/table_filters.js:582 msgid "Tracked" msgstr "" -#: build/api.py:349 build/serializers.py:1290 part/models.py:1172 +#: build/api.py:358 build/serializers.py:1344 part/models.py:1233 #: templates/js/translated/table_filters.js:146 #: templates/js/translated/table_filters.js:779 msgid "Testable" msgstr "" -#: build/api.py:351 part/admin.py:144 templates/js/translated/build.js:1917 -#: templates/js/translated/build.js:2820 -#: templates/js/translated/sales_order.js:1965 +#: build/api.py:360 order/api.py:779 part/admin.py:144 +#: templates/js/translated/build.js:1920 templates/js/translated/build.js:2838 +#: templates/js/translated/sales_order.js:1946 #: templates/js/translated/table_filters.js:574 msgid "Allocated" msgstr "" -#: build/api.py:359 company/models.py:891 company/serializers.py:395 -#: company/templates/company/supplier_part.html:114 +#: build/api.py:368 company/models.py:888 company/serializers.py:399 +#: company/templates/company/supplier_part.html:115 #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:17 -#: templates/js/translated/bom.js:1162 templates/js/translated/build.js:2752 +#: templates/js/translated/bom.js:1162 templates/js/translated/build.js:2770 #: templates/js/translated/index.js:123 -#: templates/js/translated/model_renderers.js:235 +#: templates/js/translated/model_renderers.js:238 #: templates/js/translated/part.js:695 templates/js/translated/part.js:697 #: templates/js/translated/part.js:702 #: templates/js/translated/table_filters.js:347 @@ -816,16 +835,68 @@ msgstr "" msgid "Available" msgstr "" -#: build/models.py:86 build/templates/build/build_base.html:9 -#: build/templates/build/build_base.html:27 +#: build/api.py:640 build/models.py:268 build/serializers.py:1330 +#: build/templates/build/build_base.html:106 +#: build/templates/build/detail.html:29 company/models.py:1043 order/api.py:775 +#: order/api.py:1003 order/models.py:1519 order/models.py:1674 +#: order/models.py:1675 part/api.py:1495 part/api.py:1802 part/models.py:419 +#: part/models.py:3177 part/models.py:3321 part/models.py:3469 +#: part/models.py:3490 part/models.py:3512 part/models.py:3648 +#: part/models.py:3995 part/models.py:4158 part/models.py:4288 +#: part/models.py:4654 part/serializers.py:1245 part/serializers.py:1898 +#: part/templates/part/part_app_base.html:8 +#: part/templates/part/part_pricing.html:12 +#: part/templates/part/upload_bom.html:52 +#: report/templates/report/inventree_bill_of_materials_report.html:110 +#: report/templates/report/inventree_bill_of_materials_report.html:137 +#: report/templates/report/inventree_build_order_report.html:109 +#: report/templates/report/inventree_purchase_order_report.html:27 +#: report/templates/report/inventree_return_order_report.html:24 +#: report/templates/report/inventree_sales_order_report.html:27 +#: report/templates/report/inventree_sales_order_shipment_report.html:28 +#: report/templates/report/inventree_stock_location_report.html:102 +#: stock/serializers.py:112 stock/serializers.py:160 stock/serializers.py:456 +#: stock/serializers.py:947 templates/InvenTree/search.html:82 +#: templates/email/build_order_completed.html:17 +#: templates/email/build_order_required_stock.html:17 +#: templates/email/low_stock_notification.html:15 +#: templates/email/overdue_build_order.html:16 +#: templates/js/translated/barcode.js:577 templates/js/translated/bom.js:632 +#: templates/js/translated/bom.js:769 templates/js/translated/bom.js:905 +#: templates/js/translated/build.js:1005 templates/js/translated/build.js:1488 +#: templates/js/translated/build.js:1919 templates/js/translated/build.js:2337 +#: templates/js/translated/build.js:2514 templates/js/translated/company.js:349 +#: templates/js/translated/company.js:1117 +#: templates/js/translated/company.js:1272 +#: templates/js/translated/company.js:1560 templates/js/translated/index.js:109 +#: templates/js/translated/part.js:1950 templates/js/translated/part.js:2022 +#: templates/js/translated/part.js:2330 templates/js/translated/pricing.js:369 +#: templates/js/translated/purchase_order.js:734 +#: templates/js/translated/purchase_order.js:1350 +#: templates/js/translated/purchase_order.js:1902 +#: templates/js/translated/purchase_order.js:2061 +#: templates/js/translated/return_order.js:538 +#: templates/js/translated/return_order.js:708 +#: templates/js/translated/sales_order.js:1199 +#: templates/js/translated/sales_order.js:1608 +#: templates/js/translated/sales_order.js:1813 +#: templates/js/translated/stock.js:682 templates/js/translated/stock.js:848 +#: templates/js/translated/stock.js:1065 templates/js/translated/stock.js:2083 +#: templates/js/translated/stock.js:2942 templates/js/translated/stock.js:3175 +#: templates/js/translated/stock.js:3320 +msgid "Part" +msgstr "" + +#: build/api.py:662 build/models.py:88 build/templates/build/build_base.html:10 +#: build/templates/build/build_base.html:28 #: report/templates/report/inventree_build_order_report.html:105 -#: stock/serializers.py:84 templates/email/build_order_completed.html:16 +#: stock/serializers.py:85 templates/email/build_order_completed.html:16 #: templates/email/overdue_build_order.html:15 -#: templates/js/translated/build.js:1145 templates/js/translated/stock.js:2976 +#: templates/js/translated/build.js:1148 templates/js/translated/stock.js:2977 msgid "Build Order" msgstr "" -#: build/models.py:87 build/templates/build/build_base.html:13 +#: build/models.py:89 build/templates/build/build_base.html:14 #: build/templates/build/index.html:8 build/templates/build/index.html:12 #: order/templates/order/sales_order_detail.html:111 #: order/templates/order/so_sidebar.html:13 @@ -836,268 +907,216 @@ msgstr "" msgid "Build Orders" msgstr "" -#: build/models.py:135 +#: build/models.py:136 msgid "Assembly BOM has not been validated" msgstr "" -#: build/models.py:142 +#: build/models.py:143 msgid "Build order cannot be created for an inactive part" msgstr "" -#: build/models.py:149 +#: build/models.py:150 msgid "Build order cannot be created for an unlocked part" msgstr "" -#: build/models.py:163 +#: build/models.py:164 msgid "Invalid choice for parent build" msgstr "" -#: build/models.py:174 order/models.py:239 +#: build/models.py:175 order/models.py:236 msgid "Responsible user or group must be specified" msgstr "" -#: build/models.py:180 +#: build/models.py:181 msgid "Build order part cannot be changed" msgstr "" -#: build/models.py:241 +#: build/models.py:242 msgid "Build Order Reference" msgstr "" -#: build/models.py:242 build/serializers.py:1287 order/models.py:467 -#: order/models.py:978 order/models.py:1373 order/models.py:2135 -#: part/admin.py:414 part/models.py:4280 part/templates/part/upload_bom.html:54 +#: build/models.py:243 build/serializers.py:1341 order/models.py:479 +#: order/models.py:1005 order/models.py:1390 order/models.py:2174 +#: part/admin.py:414 part/models.py:4337 part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_bill_of_materials_report.html:139 #: report/templates/report/inventree_purchase_order_report.html:28 #: report/templates/report/inventree_return_order_report.html:26 #: report/templates/report/inventree_sales_order_report.html:28 #: templates/js/translated/bom.js:770 templates/js/translated/bom.js:973 -#: templates/js/translated/build.js:1011 templates/js/translated/build.js:2685 +#: templates/js/translated/build.js:1014 templates/js/translated/build.js:2694 #: templates/js/translated/order.js:316 templates/js/translated/pricing.js:386 -#: templates/js/translated/purchase_order.js:2135 +#: templates/js/translated/purchase_order.js:2119 #: templates/js/translated/return_order.js:727 -#: templates/js/translated/sales_order.js:1854 +#: templates/js/translated/sales_order.js:1835 msgid "Reference" msgstr "" -#: build/models.py:253 +#: build/models.py:254 msgid "Brief description of the build (optional)" msgstr "" -#: build/models.py:262 +#: build/models.py:263 msgid "BuildOrder to which this build is allocated" msgstr "" -#: build/models.py:267 build/serializers.py:1278 -#: build/templates/build/build_base.html:105 -#: build/templates/build/detail.html:29 company/models.py:1046 order/api.py:767 -#: order/models.py:1503 order/models.py:1658 order/models.py:1659 -#: part/api.py:1509 part/api.py:1813 part/models.py:424 part/models.py:3126 -#: part/models.py:3270 part/models.py:3418 part/models.py:3439 -#: part/models.py:3461 part/models.py:3597 part/models.py:3937 -#: part/models.py:4100 part/models.py:4231 part/models.py:4592 -#: part/serializers.py:1192 part/serializers.py:1836 -#: part/templates/part/part_app_base.html:8 -#: part/templates/part/part_pricing.html:12 -#: part/templates/part/upload_bom.html:52 -#: report/templates/report/inventree_bill_of_materials_report.html:110 -#: report/templates/report/inventree_bill_of_materials_report.html:137 -#: report/templates/report/inventree_build_order_report.html:109 -#: report/templates/report/inventree_purchase_order_report.html:27 -#: report/templates/report/inventree_return_order_report.html:24 -#: report/templates/report/inventree_sales_order_report.html:27 -#: report/templates/report/inventree_stock_location_report.html:102 -#: stock/serializers.py:111 stock/serializers.py:159 stock/serializers.py:446 -#: stock/serializers.py:916 templates/InvenTree/search.html:82 -#: templates/email/build_order_completed.html:17 -#: templates/email/build_order_required_stock.html:17 -#: templates/email/low_stock_notification.html:15 -#: templates/email/overdue_build_order.html:16 -#: templates/js/translated/barcode.js:577 templates/js/translated/bom.js:632 -#: templates/js/translated/bom.js:769 templates/js/translated/bom.js:905 -#: templates/js/translated/build.js:1002 templates/js/translated/build.js:1485 -#: templates/js/translated/build.js:1916 templates/js/translated/build.js:2334 -#: templates/js/translated/build.js:2507 templates/js/translated/company.js:348 -#: templates/js/translated/company.js:1116 -#: templates/js/translated/company.js:1271 -#: templates/js/translated/company.js:1559 templates/js/translated/index.js:109 -#: templates/js/translated/part.js:1950 templates/js/translated/part.js:2022 -#: templates/js/translated/part.js:2330 templates/js/translated/pricing.js:369 -#: templates/js/translated/purchase_order.js:751 -#: templates/js/translated/purchase_order.js:1367 -#: templates/js/translated/purchase_order.js:1918 -#: templates/js/translated/purchase_order.js:2077 -#: templates/js/translated/return_order.js:538 -#: templates/js/translated/return_order.js:708 -#: templates/js/translated/sales_order.js:300 -#: templates/js/translated/sales_order.js:1233 -#: templates/js/translated/sales_order.js:1634 -#: templates/js/translated/sales_order.js:1832 -#: templates/js/translated/stock.js:682 templates/js/translated/stock.js:848 -#: templates/js/translated/stock.js:1065 templates/js/translated/stock.js:2082 -#: templates/js/translated/stock.js:2941 templates/js/translated/stock.js:3174 -#: templates/js/translated/stock.js:3319 -msgid "Part" -msgstr "" - -#: build/models.py:275 +#: build/models.py:274 msgid "Select part to build" msgstr "" -#: build/models.py:280 +#: build/models.py:279 msgid "Sales Order Reference" msgstr "" -#: build/models.py:284 +#: build/models.py:283 msgid "SalesOrder to which this build is allocated" msgstr "" -#: build/models.py:289 build/serializers.py:1048 -#: templates/js/translated/build.js:1904 -#: templates/js/translated/sales_order.js:1221 +#: build/models.py:288 build/serializers.py:1092 +#: templates/js/translated/build.js:1907 +#: templates/js/translated/sales_order.js:1187 msgid "Source Location" msgstr "" -#: build/models.py:293 +#: build/models.py:292 msgid "Select location to take stock from for this build (leave blank to take from any stock location)" msgstr "" -#: build/models.py:298 +#: build/models.py:297 msgid "Destination Location" msgstr "" -#: build/models.py:302 +#: build/models.py:301 msgid "Select location where the completed items will be stored" msgstr "" -#: build/models.py:306 +#: build/models.py:305 msgid "Build Quantity" msgstr "" -#: build/models.py:309 +#: build/models.py:308 msgid "Number of stock items to build" msgstr "" -#: build/models.py:313 +#: build/models.py:312 msgid "Completed items" msgstr "" -#: build/models.py:315 +#: build/models.py:314 msgid "Number of stock items which have been completed" msgstr "" -#: build/models.py:319 +#: build/models.py:318 msgid "Build Status" msgstr "" -#: build/models.py:323 +#: build/models.py:322 msgid "Build status code" msgstr "" -#: build/models.py:332 build/serializers.py:302 build/serializers.py:1198 -#: order/serializers.py:670 stock/models.py:859 stock/serializers.py:76 -#: stock/serializers.py:1562 templates/js/translated/purchase_order.js:1129 +#: build/models.py:331 build/serializers.py:349 build/serializers.py:1243 +#: order/serializers.py:755 stock/models.py:936 stock/serializers.py:77 +#: stock/serializers.py:1593 templates/js/translated/purchase_order.js:1112 #: templates/js/translated/stock.js:1199 msgid "Batch Code" msgstr "" -#: build/models.py:336 build/serializers.py:303 +#: build/models.py:335 build/serializers.py:350 msgid "Batch code for this build output" msgstr "" -#: build/models.py:339 order/models.py:315 order/serializers.py:126 -#: part/models.py:1229 part/templates/part/part_base.html:319 +#: build/models.py:338 order/models.py:322 order/serializers.py:157 +#: part/models.py:1290 part/templates/part/part_base.html:327 #: templates/js/translated/return_order.js:338 -#: templates/js/translated/sales_order.js:863 +#: templates/js/translated/sales_order.js:822 msgid "Creation Date" msgstr "" -#: build/models.py:343 +#: build/models.py:342 msgid "Target completion date" msgstr "" -#: build/models.py:344 +#: build/models.py:343 msgid "Target date for build completion. Build will be overdue after this date." msgstr "" -#: build/models.py:347 order/models.py:526 order/models.py:2180 -#: templates/js/translated/build.js:2419 +#: build/models.py:346 order/models.py:538 order/models.py:2219 +#: templates/js/translated/build.js:2422 msgid "Completion Date" msgstr "" -#: build/models.py:353 +#: build/models.py:352 msgid "completed by" msgstr "" -#: build/models.py:361 templates/js/translated/build.js:2379 +#: build/models.py:360 templates/js/translated/build.js:2382 msgid "Issued by" msgstr "" -#: build/models.py:362 +#: build/models.py:361 msgid "User who issued this build order" msgstr "" -#: build/models.py:370 build/templates/build/build_base.html:212 -#: build/templates/build/detail.html:122 common/models.py:165 order/api.py:142 -#: order/models.py:333 order/templates/order/order_base.html:222 -#: order/templates/order/return_order_base.html:191 -#: order/templates/order/sales_order_base.html:235 part/models.py:1246 -#: part/templates/part/part_base.html:399 +#: build/models.py:369 build/templates/build/build_base.html:213 +#: build/templates/build/detail.html:122 common/models.py:168 order/api.py:140 +#: order/models.py:340 order/templates/order/order_base.html:231 +#: order/templates/order/return_order_base.html:192 +#: order/templates/order/sales_order_base.html:236 part/models.py:1307 +#: part/templates/part/part_base.html:407 #: report/templates/report/inventree_build_order_report.html:158 #: templates/InvenTree/settings/settings_staff_js.html:150 -#: templates/js/translated/build.js:2391 -#: templates/js/translated/purchase_order.js:1833 +#: templates/js/translated/build.js:2394 +#: templates/js/translated/purchase_order.js:1817 #: templates/js/translated/return_order.js:358 #: templates/js/translated/table_filters.js:551 msgid "Responsible" msgstr "" -#: build/models.py:371 +#: build/models.py:370 msgid "User or group responsible for this build order" msgstr "" -#: build/models.py:376 build/templates/build/detail.html:108 +#: build/models.py:375 build/templates/build/detail.html:108 #: company/templates/company/manufacturer_part.html:107 -#: company/templates/company/supplier_part.html:194 -#: order/templates/order/order_base.html:172 -#: order/templates/order/return_order_base.html:148 -#: order/templates/order/sales_order_base.html:187 -#: part/templates/part/part_base.html:392 stock/models.py:855 -#: stock/templates/stock/item_base.html:200 -#: templates/js/translated/company.js:1019 +#: company/templates/company/supplier_part.html:195 +#: order/templates/order/order_base.html:181 +#: order/templates/order/return_order_base.html:149 +#: order/templates/order/sales_order_base.html:188 +#: part/templates/part/part_base.html:400 stock/models.py:932 +#: stock/templates/stock/item_base.html:197 +#: templates/js/translated/company.js:1020 msgid "External Link" msgstr "" -#: build/models.py:377 common/models.py:3273 part/models.py:1058 -#: stock/models.py:855 +#: build/models.py:376 common/models.py:3334 part/models.py:1119 +#: stock/models.py:932 msgid "Link to external URL" msgstr "" -#: build/models.py:381 +#: build/models.py:380 msgid "Build Priority" msgstr "" -#: build/models.py:384 +#: build/models.py:383 msgid "Priority of this build order" msgstr "" -#: build/models.py:391 common/models.py:135 common/models.py:149 -#: order/admin.py:18 order/api.py:128 order/models.py:297 +#: build/models.py:390 common/models.py:138 common/models.py:152 +#: order/admin.py:18 order/api.py:126 order/models.py:304 #: templates/InvenTree/settings/settings_staff_js.html:146 -#: templates/js/translated/build.js:2316 -#: templates/js/translated/purchase_order.js:1780 +#: templates/js/translated/build.js:2319 +#: templates/js/translated/purchase_order.js:1764 #: templates/js/translated/return_order.js:317 -#: templates/js/translated/sales_order.js:842 +#: templates/js/translated/sales_order.js:801 #: templates/js/translated/table_filters.js:47 #: templates/project_code_data.html:6 msgid "Project Code" msgstr "" -#: build/models.py:392 +#: build/models.py:391 msgid "Project code for this build order" msgstr "" -#: build/models.py:651 build/models.py:778 +#: build/models.py:651 build/models.py:779 msgid "Failed to offload task to complete build allocations" msgstr "" @@ -1110,610 +1129,619 @@ msgstr "" msgid "A build order has been completed" msgstr "" -#: build/models.py:967 build/models.py:1055 +#: build/models.py:858 build/serializers.py:393 +msgid "Serial numbers must be provided for trackable parts" +msgstr "" + +#: build/models.py:969 build/models.py:1058 msgid "No build output specified" msgstr "" -#: build/models.py:970 +#: build/models.py:972 msgid "Build output is already completed" msgstr "" -#: build/models.py:973 +#: build/models.py:975 msgid "Build output does not match Build Order" msgstr "" -#: build/models.py:1059 build/serializers.py:235 build/serializers.py:284 -#: build/serializers.py:915 order/models.py:564 order/serializers.py:499 -#: order/serializers.py:665 part/serializers.py:1569 part/serializers.py:1999 -#: stock/models.py:700 stock/models.py:1520 stock/serializers.py:669 +#: build/models.py:1062 build/serializers.py:282 build/serializers.py:331 +#: build/serializers.py:959 order/models.py:586 order/serializers.py:584 +#: order/serializers.py:750 part/serializers.py:1627 part/serializers.py:2060 +#: stock/models.py:777 stock/models.py:1609 stock/serializers.py:696 msgid "Quantity must be greater than zero" msgstr "" -#: build/models.py:1064 build/serializers.py:240 +#: build/models.py:1067 build/serializers.py:287 msgid "Quantity cannot be greater than the output quantity" msgstr "" -#: build/models.py:1124 build/serializers.py:563 +#: build/models.py:1127 build/serializers.py:607 #, python-brace-format msgid "Build output {serial} has not passed all required tests" msgstr "" -#: build/models.py:1465 +#: build/models.py:1482 msgid "Build Order Line Item" msgstr "" -#: build/models.py:1490 +#: build/models.py:1507 msgid "Build object" msgstr "" -#: build/models.py:1504 build/models.py:1760 build/serializers.py:222 -#: build/serializers.py:269 build/serializers.py:1295 -#: build/templates/build/build_base.html:110 -#: build/templates/build/detail.html:34 common/models.py:2579 -#: order/models.py:1356 order/models.py:2041 order/serializers.py:1460 +#: build/models.py:1521 build/models.py:1787 build/serializers.py:269 +#: build/serializers.py:316 build/serializers.py:1349 +#: build/templates/build/build_base.html:111 +#: build/templates/build/detail.html:34 common/models.py:2643 +#: order/models.py:1373 order/models.py:2074 order/serializers.py:1586 #: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:413 -#: part/forms.py:48 part/models.py:3284 part/models.py:4253 -#: part/templates/part/part_pricing.html:16 +#: part/forms.py:48 part/models.py:3335 part/models.py:4310 +#: part/serializers.py:265 part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_bill_of_materials_report.html:138 #: report/templates/report/inventree_build_order_report.html:113 #: report/templates/report/inventree_purchase_order_report.html:29 #: report/templates/report/inventree_sales_order_report.html:29 +#: report/templates/report/inventree_sales_order_shipment_report.html:47 +#: report/templates/report/inventree_sales_order_shipment_report.html:49 #: report/templates/report/inventree_stock_location_report.html:104 #: report/templates/report/inventree_test_report.html:90 -#: report/templates/report/inventree_test_report.html:169 stock/admin.py:159 -#: stock/serializers.py:127 stock/serializers.py:167 stock/serializers.py:660 -#: stock/templates/stock/item_base.html:287 -#: stock/templates/stock/item_base.html:295 -#: stock/templates/stock/item_base.html:342 +#: report/templates/report/inventree_test_report.html:169 stock/admin.py:160 +#: stock/serializers.py:128 stock/serializers.py:168 stock/serializers.py:687 +#: stock/templates/stock/item_base.html:284 +#: stock/templates/stock/item_base.html:292 +#: stock/templates/stock/item_base.html:339 #: templates/email/build_order_completed.html:18 #: templates/js/translated/barcode.js:579 templates/js/translated/bom.js:771 -#: templates/js/translated/bom.js:981 templates/js/translated/build.js:522 -#: templates/js/translated/build.js:737 templates/js/translated/build.js:1542 -#: templates/js/translated/build.js:1919 templates/js/translated/build.js:2529 -#: templates/js/translated/company.js:1818 -#: templates/js/translated/model_renderers.js:237 +#: templates/js/translated/bom.js:981 templates/js/translated/build.js:525 +#: templates/js/translated/build.js:740 templates/js/translated/build.js:1545 +#: templates/js/translated/build.js:1922 templates/js/translated/build.js:2536 +#: templates/js/translated/company.js:1819 +#: templates/js/translated/model_renderers.js:240 #: templates/js/translated/order.js:329 templates/js/translated/part.js:968 -#: templates/js/translated/part.js:1818 templates/js/translated/part.js:3360 +#: templates/js/translated/part.js:1818 templates/js/translated/part.js:3376 #: templates/js/translated/pricing.js:381 #: templates/js/translated/pricing.js:474 #: templates/js/translated/pricing.js:522 #: templates/js/translated/pricing.js:616 -#: templates/js/translated/purchase_order.js:754 -#: templates/js/translated/purchase_order.js:1922 -#: templates/js/translated/purchase_order.js:2141 -#: templates/js/translated/sales_order.js:317 -#: templates/js/translated/sales_order.js:1235 -#: templates/js/translated/sales_order.js:1554 -#: templates/js/translated/sales_order.js:1644 -#: templates/js/translated/sales_order.js:1734 -#: templates/js/translated/sales_order.js:1860 +#: templates/js/translated/purchase_order.js:737 +#: templates/js/translated/purchase_order.js:1906 +#: templates/js/translated/purchase_order.js:2125 +#: templates/js/translated/sales_order.js:1201 +#: templates/js/translated/sales_order.js:1520 +#: templates/js/translated/sales_order.js:1625 +#: templates/js/translated/sales_order.js:1715 +#: templates/js/translated/sales_order.js:1841 #: templates/js/translated/stock.js:570 templates/js/translated/stock.js:708 -#: templates/js/translated/stock.js:879 templates/js/translated/stock.js:3105 -#: templates/js/translated/stock.js:3188 +#: templates/js/translated/stock.js:879 templates/js/translated/stock.js:3106 +#: templates/js/translated/stock.js:3189 msgid "Quantity" msgstr "" -#: build/models.py:1505 +#: build/models.py:1522 msgid "Required quantity for build order" msgstr "" -#: build/models.py:1585 +#: build/models.py:1602 msgid "Build item must specify a build output, as master part is marked as trackable" msgstr "" -#: build/models.py:1594 +#: build/models.py:1611 #, python-brace-format msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgstr "" -#: build/models.py:1604 order/models.py:1992 +#: build/models.py:1628 order/models.py:2025 msgid "Stock item is over-allocated" msgstr "" -#: build/models.py:1610 order/models.py:1995 +#: build/models.py:1634 order/models.py:2028 msgid "Allocation quantity must be greater than zero" msgstr "" -#: build/models.py:1616 +#: build/models.py:1640 msgid "Quantity must be 1 for serialized stock" msgstr "" -#: build/models.py:1675 +#: build/models.py:1699 msgid "Selected stock item does not match BOM line" msgstr "" -#: build/models.py:1747 build/serializers.py:895 order/serializers.py:1297 -#: order/serializers.py:1318 stock/models.py:376 stock/serializers.py:93 -#: stock/serializers.py:763 stock/serializers.py:1281 stock/serializers.py:1393 -#: stock/templates/stock/item_base.html:10 -#: stock/templates/stock/item_base.html:23 -#: stock/templates/stock/item_base.html:194 -#: templates/js/translated/build.js:1918 -#: templates/js/translated/sales_order.js:301 -#: templates/js/translated/sales_order.js:1234 -#: templates/js/translated/sales_order.js:1535 -#: templates/js/translated/sales_order.js:1540 -#: templates/js/translated/sales_order.js:1641 -#: templates/js/translated/sales_order.js:1728 +#: build/models.py:1774 build/serializers.py:939 order/serializers.py:1423 +#: order/serializers.py:1444 +#: report/templates/report/inventree_sales_order_shipment_report.html:29 +#: stock/models.py:382 stock/serializers.py:94 stock/serializers.py:794 +#: stock/serializers.py:1312 stock/serializers.py:1424 +#: stock/templates/stock/item_base.html:11 +#: stock/templates/stock/item_base.html:24 +#: stock/templates/stock/item_base.html:191 +#: templates/js/translated/build.js:1921 +#: templates/js/translated/sales_order.js:1200 +#: templates/js/translated/sales_order.js:1501 +#: templates/js/translated/sales_order.js:1506 +#: templates/js/translated/sales_order.js:1622 +#: templates/js/translated/sales_order.js:1709 #: templates/js/translated/stock.js:683 templates/js/translated/stock.js:849 -#: templates/js/translated/stock.js:3061 +#: templates/js/translated/stock.js:3062 msgid "Stock Item" msgstr "" -#: build/models.py:1748 +#: build/models.py:1775 msgid "Source stock item" msgstr "" -#: build/models.py:1761 +#: build/models.py:1788 msgid "Stock quantity to allocate to build" msgstr "" -#: build/models.py:1769 +#: build/models.py:1796 msgid "Install into" msgstr "" -#: build/models.py:1770 +#: build/models.py:1797 msgid "Destination stock item" msgstr "" -#: build/serializers.py:91 +#: build/serializers.py:108 msgid "Build Level" msgstr "" -#: build/serializers.py:99 build/serializers.py:1190 build/serializers.py:1279 -#: part/admin.py:41 part/admin.py:408 part/models.py:4102 part/stocktake.py:219 -#: stock/admin.py:156 +#: build/serializers.py:116 build/serializers.py:1235 build/serializers.py:1331 +#: part/admin.py:41 part/admin.py:408 part/models.py:4160 part/stocktake.py:219 +#: stock/admin.py:157 msgid "Part Name" msgstr "" -#: build/serializers.py:111 +#: build/serializers.py:128 msgid "Project Code Label" msgstr "" -#: build/serializers.py:172 build/serializers.py:924 -#: templates/js/translated/build.js:1042 templates/js/translated/build.js:1495 +#: build/serializers.py:134 +msgid "Create Child Builds" +msgstr "" + +#: build/serializers.py:135 +msgid "Automatically generate child build orders" +msgstr "" + +#: build/serializers.py:219 build/serializers.py:968 +#: templates/js/translated/build.js:1045 templates/js/translated/build.js:1498 msgid "Build Output" msgstr "" -#: build/serializers.py:184 +#: build/serializers.py:231 msgid "Build output does not match the parent build" msgstr "" -#: build/serializers.py:188 +#: build/serializers.py:235 msgid "Output part does not match BuildOrder part" msgstr "" -#: build/serializers.py:192 +#: build/serializers.py:239 msgid "This build output has already been completed" msgstr "" -#: build/serializers.py:203 +#: build/serializers.py:250 msgid "This build output is not fully allocated" msgstr "" -#: build/serializers.py:223 build/serializers.py:270 +#: build/serializers.py:270 build/serializers.py:317 msgid "Enter quantity for build output" msgstr "" -#: build/serializers.py:291 +#: build/serializers.py:338 msgid "Integer quantity required for trackable parts" msgstr "" -#: build/serializers.py:294 +#: build/serializers.py:341 msgid "Integer quantity required, as the bill of materials contains trackable parts" msgstr "" -#: build/serializers.py:309 order/serializers.py:678 order/serializers.py:1464 -#: stock/serializers.py:680 templates/js/translated/purchase_order.js:1154 +#: build/serializers.py:356 order/serializers.py:763 order/serializers.py:1590 +#: stock/serializers.py:707 templates/js/translated/purchase_order.js:1137 #: templates/js/translated/stock.js:373 templates/js/translated/stock.js:571 msgid "Serial Numbers" msgstr "" -#: build/serializers.py:310 +#: build/serializers.py:357 msgid "Enter serial numbers for build outputs" msgstr "" -#: build/serializers.py:315 build/serializers.py:456 build/serializers.py:528 -#: order/serializers.py:654 order/serializers.py:778 order/serializers.py:1781 -#: part/serializers.py:1212 stock/serializers.py:102 stock/serializers.py:691 -#: stock/serializers.py:851 stock/serializers.py:977 stock/serializers.py:1425 -#: stock/serializers.py:1681 stock/templates/stock/item_base.html:394 +#: build/serializers.py:362 build/serializers.py:500 build/serializers.py:572 +#: order/serializers.py:739 order/serializers.py:880 order/serializers.py:1933 +#: part/serializers.py:1265 stock/serializers.py:103 stock/serializers.py:718 +#: stock/serializers.py:882 stock/serializers.py:1008 stock/serializers.py:1456 +#: stock/serializers.py:1712 stock/templates/stock/item_base.html:391 #: templates/js/translated/barcode.js:578 -#: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1032 -#: templates/js/translated/build.js:1174 templates/js/translated/build.js:2544 -#: templates/js/translated/purchase_order.js:1210 -#: templates/js/translated/purchase_order.js:1320 -#: templates/js/translated/sales_order.js:1547 -#: templates/js/translated/sales_order.js:1655 -#: templates/js/translated/sales_order.js:1663 -#: templates/js/translated/sales_order.js:1742 +#: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1035 +#: templates/js/translated/build.js:1177 templates/js/translated/build.js:2551 +#: templates/js/translated/purchase_order.js:1193 +#: templates/js/translated/purchase_order.js:1303 +#: templates/js/translated/sales_order.js:1513 +#: templates/js/translated/sales_order.js:1636 +#: templates/js/translated/sales_order.js:1644 +#: templates/js/translated/sales_order.js:1723 #: templates/js/translated/stock.js:684 templates/js/translated/stock.js:850 -#: templates/js/translated/stock.js:1067 templates/js/translated/stock.js:2286 -#: templates/js/translated/stock.js:2955 +#: templates/js/translated/stock.js:1067 templates/js/translated/stock.js:2287 +#: templates/js/translated/stock.js:2956 msgid "Location" msgstr "" -#: build/serializers.py:316 +#: build/serializers.py:363 msgid "Stock location for build output" msgstr "" -#: build/serializers.py:330 +#: build/serializers.py:377 msgid "Auto Allocate Serial Numbers" msgstr "" -#: build/serializers.py:331 +#: build/serializers.py:378 msgid "Automatically allocate required items with matching serial numbers" msgstr "" -#: build/serializers.py:346 -msgid "Serial numbers must be provided for trackable parts" -msgstr "" - -#: build/serializers.py:371 stock/api.py:1031 +#: build/serializers.py:415 order/serializers.py:858 stock/api.py:1017 +#: stock/models.py:1632 msgid "The following serial numbers already exist or are invalid" msgstr "" -#: build/serializers.py:418 build/serializers.py:480 build/serializers.py:569 +#: build/serializers.py:462 build/serializers.py:524 build/serializers.py:613 msgid "A list of build outputs must be provided" msgstr "" -#: build/serializers.py:457 +#: build/serializers.py:501 msgid "Stock location for scrapped outputs" msgstr "" -#: build/serializers.py:463 +#: build/serializers.py:507 msgid "Discard Allocations" msgstr "" -#: build/serializers.py:464 +#: build/serializers.py:508 msgid "Discard any stock allocations for scrapped outputs" msgstr "" -#: build/serializers.py:469 +#: build/serializers.py:513 msgid "Reason for scrapping build output(s)" msgstr "" -#: build/serializers.py:529 +#: build/serializers.py:573 msgid "Location for completed build outputs" msgstr "" -#: build/serializers.py:535 build/templates/build/build_base.html:159 -#: build/templates/build/detail.html:62 order/models.py:476 -#: order/models.py:1002 order/models.py:2159 order/serializers.py:686 -#: stock/admin.py:164 stock/serializers.py:1028 stock/serializers.py:1569 -#: stock/templates/stock/item_base.html:427 -#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2363 -#: templates/js/translated/purchase_order.js:1371 -#: templates/js/translated/purchase_order.js:1792 +#: build/serializers.py:579 build/templates/build/build_base.html:160 +#: build/templates/build/detail.html:62 order/models.py:488 +#: order/models.py:1029 order/models.py:2198 order/serializers.py:771 +#: stock/admin.py:165 stock/serializers.py:581 stock/serializers.py:1059 +#: stock/serializers.py:1600 stock/templates/stock/item_base.html:424 +#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2366 +#: templates/js/translated/purchase_order.js:1354 +#: templates/js/translated/purchase_order.js:1776 #: templates/js/translated/return_order.js:330 -#: templates/js/translated/sales_order.js:855 -#: templates/js/translated/stock.js:2261 templates/js/translated/stock.js:3079 -#: templates/js/translated/stock.js:3204 +#: templates/js/translated/sales_order.js:814 +#: templates/js/translated/stock.js:2262 templates/js/translated/stock.js:3080 +#: templates/js/translated/stock.js:3205 msgid "Status" msgstr "" -#: build/serializers.py:541 +#: build/serializers.py:585 msgid "Accept Incomplete Allocation" msgstr "" -#: build/serializers.py:542 +#: build/serializers.py:586 msgid "Complete outputs if stock has not been fully allocated" msgstr "" -#: build/serializers.py:654 +#: build/serializers.py:698 msgid "Consume Allocated Stock" msgstr "" -#: build/serializers.py:655 +#: build/serializers.py:699 msgid "Consume any stock which has already been allocated to this build" msgstr "" -#: build/serializers.py:661 +#: build/serializers.py:705 msgid "Remove Incomplete Outputs" msgstr "" -#: build/serializers.py:662 +#: build/serializers.py:706 msgid "Delete any build outputs which have not been completed" msgstr "" -#: build/serializers.py:689 +#: build/serializers.py:733 msgid "Not permitted" msgstr "" -#: build/serializers.py:690 +#: build/serializers.py:734 msgid "Accept as consumed by this build order" msgstr "" -#: build/serializers.py:691 +#: build/serializers.py:735 msgid "Deallocate before completing this build order" msgstr "" -#: build/serializers.py:721 +#: build/serializers.py:765 msgid "Overallocated Stock" msgstr "" -#: build/serializers.py:723 +#: build/serializers.py:767 msgid "How do you want to handle extra stock items assigned to the build order" msgstr "" -#: build/serializers.py:733 +#: build/serializers.py:777 msgid "Some stock items have been overallocated" msgstr "" -#: build/serializers.py:738 +#: build/serializers.py:782 msgid "Accept Unallocated" msgstr "" -#: build/serializers.py:739 +#: build/serializers.py:783 msgid "Accept that stock items have not been fully allocated to this build order" msgstr "" -#: build/serializers.py:749 templates/js/translated/build.js:316 +#: build/serializers.py:793 templates/js/translated/build.js:319 msgid "Required stock has not been fully allocated" msgstr "" -#: build/serializers.py:754 order/serializers.py:345 order/serializers.py:1365 +#: build/serializers.py:798 order/serializers.py:430 order/serializers.py:1491 msgid "Accept Incomplete" msgstr "" -#: build/serializers.py:755 +#: build/serializers.py:799 msgid "Accept that the required number of build outputs have not been completed" msgstr "" -#: build/serializers.py:765 templates/js/translated/build.js:320 +#: build/serializers.py:809 templates/js/translated/build.js:323 msgid "Required build quantity has not been completed" msgstr "" -#: build/serializers.py:774 +#: build/serializers.py:818 msgid "Build order has open child build orders" msgstr "" -#: build/serializers.py:777 +#: build/serializers.py:821 msgid "Build order must be in production state" msgstr "" -#: build/serializers.py:780 templates/js/translated/build.js:304 +#: build/serializers.py:824 templates/js/translated/build.js:307 msgid "Build order has incomplete outputs" msgstr "" -#: build/serializers.py:818 +#: build/serializers.py:862 msgid "Build Line" msgstr "" -#: build/serializers.py:828 +#: build/serializers.py:872 msgid "Build output" msgstr "" -#: build/serializers.py:836 +#: build/serializers.py:880 msgid "Build output must point to the same build" msgstr "" -#: build/serializers.py:872 +#: build/serializers.py:916 msgid "Build Line Item" msgstr "" -#: build/serializers.py:886 +#: build/serializers.py:930 msgid "bom_item.part must point to the same part as the build order" msgstr "" -#: build/serializers.py:901 stock/serializers.py:1294 +#: build/serializers.py:945 stock/serializers.py:1325 msgid "Item must be in stock" msgstr "" -#: build/serializers.py:949 order/serializers.py:1351 +#: build/serializers.py:993 order/serializers.py:1477 #, python-brace-format msgid "Available quantity ({q}) exceeded" msgstr "" -#: build/serializers.py:955 +#: build/serializers.py:999 msgid "Build output must be specified for allocation of tracked parts" msgstr "" -#: build/serializers.py:962 +#: build/serializers.py:1006 msgid "Build output cannot be specified for allocation of untracked parts" msgstr "" -#: build/serializers.py:986 order/serializers.py:1610 +#: build/serializers.py:1030 order/serializers.py:1750 msgid "Allocation items must be provided" msgstr "" -#: build/serializers.py:1049 +#: build/serializers.py:1093 msgid "Stock location where parts are to be sourced (leave blank to take from any location)" msgstr "" -#: build/serializers.py:1057 +#: build/serializers.py:1101 msgid "Exclude Location" msgstr "" -#: build/serializers.py:1058 +#: build/serializers.py:1102 msgid "Exclude stock items from this selected location" msgstr "" -#: build/serializers.py:1063 +#: build/serializers.py:1107 msgid "Interchangeable Stock" msgstr "" -#: build/serializers.py:1064 +#: build/serializers.py:1108 msgid "Stock items in multiple locations can be used interchangeably" msgstr "" -#: build/serializers.py:1069 +#: build/serializers.py:1113 msgid "Substitute Stock" msgstr "" -#: build/serializers.py:1070 +#: build/serializers.py:1114 msgid "Allow allocation of substitute parts" msgstr "" -#: build/serializers.py:1075 +#: build/serializers.py:1119 msgid "Optional Items" msgstr "" -#: build/serializers.py:1076 +#: build/serializers.py:1120 msgid "Allocate optional BOM items to build order" msgstr "" -#: build/serializers.py:1098 +#: build/serializers.py:1143 msgid "Failed to start auto-allocation task" msgstr "" -#: build/serializers.py:1181 +#: build/serializers.py:1226 stock/serializers.py:585 msgid "Supplier Part Number" msgstr "" -#: build/serializers.py:1182 company/models.py:506 +#: build/serializers.py:1227 company/models.py:503 stock/serializers.py:591 msgid "Manufacturer Part Number" msgstr "" -#: build/serializers.py:1183 stock/admin.py:53 stock/admin.py:175 -#: stock/serializers.py:457 +#: build/serializers.py:1228 stock/admin.py:53 stock/admin.py:176 +#: stock/serializers.py:467 msgid "Location Name" msgstr "" -#: build/serializers.py:1184 +#: build/serializers.py:1229 build/serializers.py:1327 msgid "Build Reference" msgstr "" -#: build/serializers.py:1185 +#: build/serializers.py:1230 msgid "BOM Reference" msgstr "" -#: build/serializers.py:1186 company/models.py:852 -#: company/templates/company/supplier_part.html:160 order/serializers.py:690 -#: stock/admin.py:228 stock/models.py:818 stock/serializers.py:1579 -#: stock/templates/stock/item_base.html:240 -#: templates/js/translated/company.js:1646 -#: templates/js/translated/purchase_order.js:1169 -#: templates/js/translated/purchase_order.js:1332 +#: build/serializers.py:1231 company/models.py:849 +#: company/templates/company/supplier_part.html:161 order/serializers.py:775 +#: stock/admin.py:229 stock/models.py:895 stock/serializers.py:1610 +#: stock/templates/stock/item_base.html:237 +#: templates/js/translated/company.js:1647 +#: templates/js/translated/purchase_order.js:1152 +#: templates/js/translated/purchase_order.js:1315 #: templates/js/translated/stock.js:1214 templates/js/translated/stock.js:1246 -#: templates/js/translated/stock.js:2509 +#: templates/js/translated/stock.js:2510 msgid "Packaging" msgstr "" -#: build/serializers.py:1189 part/admin.py:39 part/admin.py:398 -#: part/models.py:4101 part/stocktake.py:218 stock/admin.py:152 +#: build/serializers.py:1234 part/admin.py:39 part/admin.py:398 +#: part/models.py:4159 part/stocktake.py:218 stock/admin.py:153 msgid "Part ID" msgstr "" -#: build/serializers.py:1191 build/serializers.py:1280 part/admin.py:402 -#: part/models.py:4103 +#: build/serializers.py:1236 build/serializers.py:1332 part/admin.py:402 +#: part/models.py:4161 msgid "Part IPN" msgstr "" -#: build/serializers.py:1192 build/serializers.py:1282 part/admin.py:45 +#: build/serializers.py:1237 build/serializers.py:1334 part/admin.py:45 #: part/stocktake.py:220 msgid "Part Description" msgstr "" -#: build/serializers.py:1195 +#: build/serializers.py:1240 msgid "BOM Part ID" msgstr "" -#: build/serializers.py:1196 +#: build/serializers.py:1241 msgid "BOM Part Name" msgstr "" -#: build/serializers.py:1199 +#: build/serializers.py:1244 #: report/templates/report/inventree_return_order_report.html:25 -#: report/templates/report/inventree_test_report.html:88 stock/models.py:845 -#: stock/serializers.py:151 stock/templates/stock/item_base.html:311 -#: templates/js/translated/build.js:520 templates/js/translated/build.js:1540 -#: templates/js/translated/build.js:2527 -#: templates/js/translated/model_renderers.js:231 +#: report/templates/report/inventree_sales_order_shipment_report.html:45 +#: report/templates/report/inventree_test_report.html:88 stock/models.py:922 +#: stock/serializers.py:152 stock/templates/stock/item_base.html:308 +#: templates/js/translated/build.js:523 templates/js/translated/build.js:1543 +#: templates/js/translated/build.js:2534 +#: templates/js/translated/model_renderers.js:234 #: templates/js/translated/return_order.js:539 #: templates/js/translated/return_order.js:722 -#: templates/js/translated/sales_order.js:315 -#: templates/js/translated/sales_order.js:1647 -#: templates/js/translated/sales_order.js:1732 +#: templates/js/translated/sales_order.js:1628 +#: templates/js/translated/sales_order.js:1713 #: templates/js/translated/stock.js:602 msgid "Serial Number" msgstr "" -#: build/serializers.py:1212 stock/serializers.py:593 -#: templates/js/translated/build.js:1017 templates/js/translated/build.js:1164 -#: templates/js/translated/build.js:2516 +#: build/serializers.py:1257 stock/serializers.py:620 +#: templates/js/translated/build.js:1020 templates/js/translated/build.js:1167 +#: templates/js/translated/build.js:2523 msgid "Allocated Quantity" msgstr "" -#: build/serializers.py:1213 stock/templates/stock/item_base.html:340 +#: build/serializers.py:1258 stock/templates/stock/item_base.html:337 msgid "Available Quantity" msgstr "" -#: build/serializers.py:1283 +#: build/serializers.py:1335 msgid "Part Category ID" msgstr "" -#: build/serializers.py:1284 +#: build/serializers.py:1336 msgid "Part Category Name" msgstr "" -#: build/serializers.py:1291 common/models.py:1513 part/admin.py:113 -#: part/models.py:1166 templates/js/translated/table_filters.js:150 +#: build/serializers.py:1345 common/models.py:1582 part/admin.py:113 +#: part/models.py:1227 templates/js/translated/build.js:2738 +#: templates/js/translated/table_filters.js:150 #: templates/js/translated/table_filters.js:230 #: templates/js/translated/table_filters.js:783 msgid "Trackable" msgstr "" -#: build/serializers.py:1292 +#: build/serializers.py:1346 msgid "Inherited" msgstr "" -#: build/serializers.py:1293 part/models.py:4313 +#: build/serializers.py:1347 part/models.py:4370 #: part/templates/part/upload_bom.html:56 templates/js/translated/bom.js:1046 -#: templates/js/translated/build.js:2711 +#: templates/js/translated/build.js:2720 msgid "Allow Variants" msgstr "" -#: build/serializers.py:1297 part/models.py:4110 part/models.py:4584 +#: build/serializers.py:1351 part/models.py:4168 part/models.py:4646 #: stock/api.py:794 msgid "BOM Item" msgstr "" -#: build/serializers.py:1306 build/templates/build/detail.html:236 +#: build/serializers.py:1370 build/templates/build/detail.html:236 #: build/templates/build/sidebar.html:16 templates/js/translated/index.js:130 msgid "Allocated Stock" msgstr "" -#: build/serializers.py:1311 order/serializers.py:1175 part/admin.py:132 -#: part/bom.py:181 part/serializers.py:899 part/serializers.py:1602 -#: part/templates/part/part_base.html:210 templates/js/translated/bom.js:1208 -#: templates/js/translated/build.js:2804 templates/js/translated/part.js:712 +#: build/serializers.py:1375 order/serializers.py:1209 part/admin.py:132 +#: part/bom.py:186 part/serializers.py:951 part/serializers.py:1660 +#: part/templates/part/part_base.html:211 templates/js/translated/bom.js:1208 +#: templates/js/translated/build.js:2822 templates/js/translated/part.js:712 #: templates/js/translated/part.js:2155 #: templates/js/translated/table_filters.js:177 msgid "On Order" msgstr "" -#: build/serializers.py:1316 order/serializers.py:1176 part/serializers.py:1604 -#: templates/js/translated/build.js:2808 +#: build/serializers.py:1380 order/serializers.py:1210 part/serializers.py:1662 +#: templates/js/translated/build.js:2826 #: templates/js/translated/table_filters.js:367 msgid "In Production" msgstr "" -#: build/serializers.py:1321 part/bom.py:180 part/serializers.py:1629 -#: part/templates/part/part_base.html:192 -#: templates/js/translated/sales_order.js:1929 -msgid "Available Stock" -msgstr "" - -#: build/serializers.py:1325 -msgid "Available Substitute Stock" -msgstr "" - -#: build/serializers.py:1326 -msgid "Available Variant Stock" -msgstr "" - -#: build/serializers.py:1327 -msgid "Total Available Stock" -msgstr "" - -#: build/serializers.py:1328 part/serializers.py:906 +#: build/serializers.py:1384 part/serializers.py:958 msgid "External Stock" msgstr "" -#: build/status_codes.py:11 generic/states/tests.py:17 order/status_codes.py:12 -#: order/status_codes.py:42 order/status_codes.py:74 order/status_codes.py:98 +#: build/serializers.py:1385 part/bom.py:185 part/serializers.py:1687 +#: part/templates/part/part_base.html:193 +#: templates/js/translated/sales_order.js:1910 +msgid "Available Stock" +msgstr "" + +#: build/serializers.py:1386 +msgid "Available Substitute Stock" +msgstr "" + +#: build/serializers.py:1387 +msgid "Available Variant Stock" +msgstr "" + +#: build/status_codes.py:11 generic/states/tests.py:21 +#: generic/states/tests.py:131 order/status_codes.py:12 +#: order/status_codes.py:44 order/status_codes.py:76 order/status_codes.py:102 #: templates/js/translated/table_filters.js:601 msgid "Pending" msgstr "" @@ -1722,21 +1750,21 @@ msgstr "" msgid "Production" msgstr "" -#: build/status_codes.py:13 order/status_codes.py:14 order/status_codes.py:49 -#: order/status_codes.py:79 +#: build/status_codes.py:13 order/status_codes.py:14 order/status_codes.py:51 +#: order/status_codes.py:81 msgid "On Hold" msgstr "" -#: build/status_codes.py:14 order/status_codes.py:16 order/status_codes.py:51 -#: order/status_codes.py:82 +#: build/status_codes.py:14 order/status_codes.py:16 order/status_codes.py:53 +#: order/status_codes.py:84 msgid "Cancelled" msgstr "" -#: build/status_codes.py:15 generic/states/tests.py:19 importer/models.py:509 -#: importer/status_codes.py:19 order/status_codes.py:15 -#: order/status_codes.py:50 order/status_codes.py:81 -#: order/templates/order/order_base.html:163 -#: order/templates/order/sales_order_base.html:168 report/models.py:443 +#: build/status_codes.py:15 generic/states/tests.py:23 importer/models.py:518 +#: importer/status_codes.py:27 order/status_codes.py:15 +#: order/status_codes.py:52 order/status_codes.py:83 +#: order/templates/order/order_base.html:172 +#: order/templates/order/sales_order_base.html:169 report/models.py:451 msgid "Complete" msgstr "" @@ -1744,165 +1772,162 @@ msgstr "" msgid "Stock required for build order" msgstr "" -#: build/tasks.py:201 +#: build/tasks.py:260 msgid "Overdue Build Order" msgstr "" -#: build/tasks.py:206 +#: build/tasks.py:265 #, python-brace-format msgid "Build order {bo} is now overdue" msgstr "" -#: build/templates/build/build_base.html:18 +#: build/templates/build/build_base.html:19 msgid "Part thumbnail" msgstr "" -#: build/templates/build/build_base.html:38 -#: company/templates/company/supplier_part.html:35 -#: order/templates/order/order_base.html:29 -#: order/templates/order/return_order_base.html:38 -#: order/templates/order/sales_order_base.html:38 -#: part/templates/part/part_base.html:41 -#: stock/templates/stock/item_base.html:40 -#: stock/templates/stock/location.html:52 +#: build/templates/build/build_base.html:39 +#: company/templates/company/supplier_part.html:36 +#: order/templates/order/order_base.html:30 +#: order/templates/order/return_order_base.html:39 +#: order/templates/order/sales_order_base.html:39 +#: part/templates/part/part_base.html:42 +#: stock/templates/stock/item_base.html:41 +#: stock/templates/stock/location.html:53 #: templates/js/translated/filters.js:338 msgid "Barcode actions" msgstr "" -#: build/templates/build/build_base.html:42 -#: company/templates/company/supplier_part.html:39 -#: order/templates/order/order_base.html:33 -#: order/templates/order/return_order_base.html:42 -#: order/templates/order/sales_order_base.html:42 -#: part/templates/part/part_base.html:44 -#: stock/templates/stock/item_base.html:44 -#: stock/templates/stock/location.html:54 templates/qr_button.html:1 +#: build/templates/build/build_base.html:43 +#: company/templates/company/supplier_part.html:40 +#: order/templates/order/order_base.html:34 +#: order/templates/order/return_order_base.html:43 +#: order/templates/order/sales_order_base.html:43 +#: part/templates/part/part_base.html:45 +#: stock/templates/stock/item_base.html:45 +#: stock/templates/stock/location.html:55 templates/qr_button.html:1 msgid "Show QR Code" msgstr "" -#: build/templates/build/build_base.html:45 -#: company/templates/company/supplier_part.html:41 -#: order/templates/order/order_base.html:36 -#: order/templates/order/return_order_base.html:45 -#: order/templates/order/sales_order_base.html:45 -#: part/templates/part/part_base.html:47 -#: stock/templates/stock/item_base.html:47 -#: stock/templates/stock/location.html:56 +#: build/templates/build/build_base.html:46 +#: company/templates/company/supplier_part.html:42 +#: order/templates/order/order_base.html:37 +#: order/templates/order/return_order_base.html:46 +#: order/templates/order/sales_order_base.html:46 +#: part/templates/part/part_base.html:48 +#: stock/templates/stock/item_base.html:48 +#: stock/templates/stock/location.html:57 #: templates/js/translated/barcode.js:527 #: templates/js/translated/barcode.js:532 msgid "Unlink Barcode" msgstr "" -#: build/templates/build/build_base.html:47 -#: company/templates/company/supplier_part.html:43 -#: order/templates/order/order_base.html:38 -#: order/templates/order/return_order_base.html:47 -#: order/templates/order/sales_order_base.html:47 -#: part/templates/part/part_base.html:49 -#: stock/templates/stock/item_base.html:49 -#: stock/templates/stock/location.html:58 +#: build/templates/build/build_base.html:48 +#: company/templates/company/supplier_part.html:44 +#: order/templates/order/order_base.html:39 +#: order/templates/order/return_order_base.html:48 +#: order/templates/order/sales_order_base.html:48 +#: part/templates/part/part_base.html:50 +#: stock/templates/stock/item_base.html:50 +#: stock/templates/stock/location.html:59 msgid "Link Barcode" msgstr "" -#: build/templates/build/build_base.html:56 -#: order/templates/order/order_base.html:46 -#: order/templates/order/return_order_base.html:55 -#: order/templates/order/sales_order_base.html:55 +#: build/templates/build/build_base.html:57 +#: order/templates/order/order_base.html:47 +#: order/templates/order/return_order_base.html:56 +#: order/templates/order/sales_order_base.html:56 msgid "Print actions" msgstr "" -#: build/templates/build/build_base.html:60 +#: build/templates/build/build_base.html:61 msgid "Print build order report" msgstr "" -#: build/templates/build/build_base.html:67 +#: build/templates/build/build_base.html:68 msgid "Build actions" msgstr "" -#: build/templates/build/build_base.html:71 +#: build/templates/build/build_base.html:72 msgid "Edit Build" msgstr "" -#: build/templates/build/build_base.html:73 +#: build/templates/build/build_base.html:74 msgid "Duplicate Build" msgstr "" -#: build/templates/build/build_base.html:76 +#: build/templates/build/build_base.html:77 msgid "Hold Build" msgstr "" -#: build/templates/build/build_base.html:79 +#: build/templates/build/build_base.html:80 msgid "Cancel Build" msgstr "" -#: build/templates/build/build_base.html:82 +#: build/templates/build/build_base.html:83 msgid "Delete Build" msgstr "" -#: build/templates/build/build_base.html:87 -msgid "Isueue Build" -msgstr "" - #: build/templates/build/build_base.html:88 +#: build/templates/build/build_base.html:89 msgid "Issue Build" msgstr "" -#: build/templates/build/build_base.html:91 #: build/templates/build/build_base.html:92 +#: build/templates/build/build_base.html:93 msgid "Complete Build" msgstr "" -#: build/templates/build/build_base.html:115 +#: build/templates/build/build_base.html:116 msgid "Build Description" msgstr "" -#: build/templates/build/build_base.html:125 +#: build/templates/build/build_base.html:126 msgid "No build outputs have been created for this build order" msgstr "" -#: build/templates/build/build_base.html:132 +#: build/templates/build/build_base.html:133 msgid "Build Order is ready to mark as completed" msgstr "" -#: build/templates/build/build_base.html:137 +#: build/templates/build/build_base.html:138 msgid "Build Order cannot be completed as outstanding outputs remain" msgstr "" -#: build/templates/build/build_base.html:142 +#: build/templates/build/build_base.html:143 msgid "Required build quantity has not yet been completed" msgstr "" -#: build/templates/build/build_base.html:147 +#: build/templates/build/build_base.html:148 msgid "Stock has not been fully allocated to this Build Order" msgstr "" -#: build/templates/build/build_base.html:168 -#: build/templates/build/detail.html:138 order/models.py:308 -#: order/models.py:1391 order/serializers.py:174 -#: order/templates/order/order_base.html:191 -#: order/templates/order/return_order_base.html:167 -#: order/templates/order/sales_order_base.html:199 +#: build/templates/build/build_base.html:169 +#: build/templates/build/detail.html:138 order/models.py:315 +#: order/models.py:1408 order/serializers.py:254 +#: order/templates/order/order_base.html:200 +#: order/templates/order/return_order_base.html:168 +#: order/templates/order/sales_order_base.html:200 #: report/templates/report/inventree_build_order_report.html:125 -#: templates/js/translated/build.js:2411 templates/js/translated/part.js:1837 -#: templates/js/translated/purchase_order.js:1809 -#: templates/js/translated/purchase_order.js:2217 +#: templates/js/translated/build.js:2414 templates/js/translated/part.js:1837 +#: templates/js/translated/purchase_order.js:1793 +#: templates/js/translated/purchase_order.js:2201 #: templates/js/translated/return_order.js:346 #: templates/js/translated/return_order.js:749 -#: templates/js/translated/sales_order.js:871 -#: templates/js/translated/sales_order.js:1903 +#: templates/js/translated/sales_order.js:830 +#: templates/js/translated/sales_order.js:1884 msgid "Target Date" msgstr "" -#: build/templates/build/build_base.html:173 +#: build/templates/build/build_base.html:174 #, python-format msgid "This build was due on %(target)s" msgstr "" -#: build/templates/build/build_base.html:173 -#: build/templates/build/build_base.html:230 -#: order/templates/order/order_base.html:127 -#: order/templates/order/return_order_base.html:120 -#: order/templates/order/sales_order_base.html:129 +#: build/templates/build/build_base.html:174 +#: build/templates/build/build_base.html:231 +#: order/templates/order/order_base.html:128 +#: order/templates/order/return_order_base.html:121 +#: order/templates/order/sales_order_base.html:130 #: templates/js/translated/table_filters.js:97 #: templates/js/translated/table_filters.js:545 #: templates/js/translated/table_filters.js:629 @@ -1910,49 +1935,50 @@ msgstr "" msgid "Overdue" msgstr "" -#: build/templates/build/build_base.html:185 +#: build/templates/build/build_base.html:186 #: build/templates/build/detail.html:67 build/templates/build/sidebar.html:13 msgid "Completed Outputs" msgstr "" -#: build/templates/build/build_base.html:198 -#: build/templates/build/detail.html:101 order/api.py:1406 order/models.py:892 -#: order/models.py:1650 order/models.py:1765 order/models.py:1924 -#: order/templates/order/sales_order_base.html:9 -#: order/templates/order/sales_order_base.html:28 +#: build/templates/build/build_base.html:199 +#: build/templates/build/detail.html:101 order/api.py:1528 order/models.py:914 +#: order/models.py:1666 order/models.py:1794 order/models.py:1957 +#: order/templates/order/sales_order_base.html:10 +#: order/templates/order/sales_order_base.html:29 #: report/templates/report/inventree_build_order_report.html:135 #: report/templates/report/inventree_sales_order_report.html:14 -#: stock/templates/stock/item_base.html:369 +#: report/templates/report/inventree_sales_order_shipment_report.html:15 +#: stock/templates/stock/item_base.html:366 #: templates/email/overdue_sales_order.html:15 -#: templates/js/translated/pricing.js:929 -#: templates/js/translated/sales_order.js:805 -#: templates/js/translated/sales_order.js:1028 -#: templates/js/translated/stock.js:3008 +#: templates/js/translated/pricing.js:927 +#: templates/js/translated/sales_order.js:764 +#: templates/js/translated/sales_order.js:1001 +#: templates/js/translated/stock.js:3009 msgid "Sales Order" msgstr "" -#: build/templates/build/build_base.html:219 -#: build/templates/build/detail.html:94 templates/js/translated/build.js:2328 +#: build/templates/build/build_base.html:220 +#: build/templates/build/detail.html:94 templates/js/translated/build.js:2331 msgid "Priority" msgstr "" -#: build/templates/build/build_base.html:267 +#: build/templates/build/build_base.html:268 msgid "Issue Build Order" msgstr "" -#: build/templates/build/build_base.html:271 +#: build/templates/build/build_base.html:272 msgid "Issue this Build Order?" msgstr "" -#: build/templates/build/build_base.html:302 +#: build/templates/build/build_base.html:303 msgid "Delete Build Order" msgstr "" -#: build/templates/build/build_base.html:312 +#: build/templates/build/build_base.html:313 msgid "Build Order QR Code" msgstr "" -#: build/templates/build/build_base.html:324 +#: build/templates/build/build_base.html:325 msgid "Link Barcode to Build Order" msgstr "" @@ -1968,8 +1994,9 @@ msgstr "" msgid "Stock can be taken from any available location." msgstr "" -#: build/templates/build/detail.html:49 order/models.py:1532 -#: templates/js/translated/purchase_order.js:2259 +#: build/templates/build/detail.html:49 order/models.py:548 +#: order/models.py:1548 order/templates/order/order_base.html:135 +#: templates/js/translated/purchase_order.js:2243 msgid "Destination" msgstr "" @@ -1981,23 +2008,24 @@ msgstr "" msgid "Allocated Parts" msgstr "" -#: build/templates/build/detail.html:80 stock/admin.py:162 -#: stock/templates/stock/item_base.html:162 -#: templates/js/translated/build.js:1553 -#: templates/js/translated/model_renderers.js:242 -#: templates/js/translated/purchase_order.js:1326 +#: build/templates/build/detail.html:80 +#: report/templates/report/inventree_sales_order_shipment_report.html:47 +#: stock/admin.py:163 stock/templates/stock/item_base.html:159 +#: templates/js/translated/build.js:1556 +#: templates/js/translated/model_renderers.js:245 +#: templates/js/translated/purchase_order.js:1309 #: templates/js/translated/stock.js:1139 templates/js/translated/stock.js:1240 -#: templates/js/translated/stock.js:2275 templates/js/translated/stock.js:3211 +#: templates/js/translated/stock.js:2276 templates/js/translated/stock.js:3212 #: templates/js/translated/table_filters.js:320 #: templates/js/translated/table_filters.js:411 msgid "Batch" msgstr "" #: build/templates/build/detail.html:133 -#: order/templates/order/order_base.html:178 -#: order/templates/order/return_order_base.html:154 -#: order/templates/order/sales_order_base.html:193 -#: templates/js/translated/build.js:2371 +#: order/templates/order/order_base.html:187 +#: order/templates/order/return_order_base.html:155 +#: order/templates/order/sales_order_base.html:194 +#: templates/js/translated/build.js:2374 msgid "Created" msgstr "" @@ -2005,8 +2033,8 @@ msgstr "" msgid "No target date set" msgstr "" -#: build/templates/build/detail.html:149 -#: order/templates/order/sales_order_base.html:209 +#: build/templates/build/detail.html:149 order/api.py:794 +#: order/templates/order/sales_order_base.html:210 #: templates/js/translated/table_filters.js:692 msgid "Completed" msgstr "" @@ -2052,7 +2080,7 @@ msgid "Order required parts" msgstr "" #: build/templates/build/detail.html:192 -#: templates/js/translated/purchase_order.js:795 +#: templates/js/translated/purchase_order.js:778 msgid "Order Parts" msgstr "" @@ -2120,7 +2148,7 @@ msgstr "" msgid "Build Order Details" msgstr "" -#: build/templates/build/sidebar.html:8 order/serializers.py:82 +#: build/templates/build/sidebar.html:8 order/serializers.py:113 #: order/templates/order/po_sidebar.html:5 #: order/templates/order/return_order_detail.html:18 #: order/templates/order/so_sidebar.html:5 @@ -2139,43 +2167,38 @@ msgstr "" msgid "Test Statistics" msgstr "" -#: common/api.py:693 +#: common/api.py:725 msgid "Is Link" msgstr "" -#: common/api.py:701 +#: common/api.py:733 msgid "Is File" msgstr "" -#: common/api.py:744 +#: common/api.py:776 msgid "User does not have permission to delete these attachments" msgstr "" -#: common/api.py:761 +#: common/api.py:793 msgid "User does not have permission to delete this attachment" msgstr "" -#: common/currency.py:132 +#: common/currency.py:134 msgid "Invalid currency code" msgstr "" -#: common/currency.py:134 +#: common/currency.py:136 msgid "Duplicate currency code" msgstr "" -#: common/currency.py:139 +#: common/currency.py:141 msgid "No valid currency codes provided" msgstr "" -#: common/currency.py:156 +#: common/currency.py:158 msgid "No plugin" msgstr "" -#: common/files.py:63 -#, python-brace-format -msgid "Unsupported file format: {fmt}" -msgstr "" - #: common/files.py:65 msgid "Error reading file (invalid encoding)" msgstr "" @@ -2192,1883 +2215,2039 @@ msgstr "" msgid "Error reading file (data could be corrupted)" msgstr "" -#: common/forms.py:12 +#: common/forms.py:12 common/forms.py:25 msgid "File" msgstr "" -#: common/forms.py:12 +#: common/forms.py:12 common/forms.py:26 msgid "Select file to upload" msgstr "" -#: common/forms.py:25 -msgid "{name.title()} File" -msgstr "" - -#: common/forms.py:26 -#, python-brace-format -msgid "Select {name} file to upload" -msgstr "" - -#: common/models.py:86 +#: common/models.py:89 msgid "Updated" msgstr "" -#: common/models.py:87 +#: common/models.py:90 msgid "Timestamp of last update" msgstr "" -#: common/models.py:120 +#: common/models.py:123 msgid "Site URL is locked by configuration" msgstr "" -#: common/models.py:150 +#: common/models.py:153 msgid "Unique project code" msgstr "" -#: common/models.py:157 +#: common/models.py:160 msgid "Project description" msgstr "" -#: common/models.py:166 +#: common/models.py:169 msgid "User or group responsible for this project" msgstr "" -#: common/models.py:783 -msgid "Settings key (must be unique - case insensitive)" +#: common/models.py:783 common/models.py:2236 common/models.py:2613 +msgid "Settings key" msgstr "" #: common/models.py:787 msgid "Settings value" msgstr "" -#: common/models.py:839 +#: common/models.py:842 msgid "Chosen value is not a valid option" msgstr "" -#: common/models.py:855 +#: common/models.py:858 msgid "Value must be a boolean value" msgstr "" -#: common/models.py:863 +#: common/models.py:866 msgid "Value must be an integer value" msgstr "" -#: common/models.py:900 +#: common/models.py:874 +msgid "Value must be a valid number" +msgstr "" + +#: common/models.py:899 +msgid "Value does not pass validation checks" +msgstr "" + +#: common/models.py:921 msgid "Key string must be unique" msgstr "" -#: common/models.py:1132 +#: common/models.py:1189 msgid "No group" msgstr "" -#: common/models.py:1231 +#: common/models.py:1288 msgid "Restart required" msgstr "" -#: common/models.py:1233 +#: common/models.py:1290 msgid "A setting has been changed which requires a server restart" msgstr "" -#: common/models.py:1240 +#: common/models.py:1297 msgid "Pending migrations" msgstr "" -#: common/models.py:1241 +#: common/models.py:1298 msgid "Number of pending database migrations" msgstr "" -#: common/models.py:1246 +#: common/models.py:1303 msgid "Server Instance Name" msgstr "" -#: common/models.py:1248 +#: common/models.py:1305 msgid "String descriptor for the server instance" msgstr "" -#: common/models.py:1252 +#: common/models.py:1309 msgid "Use instance name" msgstr "" -#: common/models.py:1253 +#: common/models.py:1310 msgid "Use the instance name in the title-bar" msgstr "" -#: common/models.py:1258 +#: common/models.py:1315 msgid "Restrict showing `about`" msgstr "" -#: common/models.py:1259 +#: common/models.py:1316 msgid "Show the `about` modal only to superusers" msgstr "" -#: common/models.py:1264 company/models.py:111 company/models.py:112 +#: common/models.py:1321 company/models.py:108 company/models.py:109 msgid "Company name" msgstr "" -#: common/models.py:1265 +#: common/models.py:1322 msgid "Internal company name" msgstr "" -#: common/models.py:1269 +#: common/models.py:1326 msgid "Base URL" msgstr "" -#: common/models.py:1270 +#: common/models.py:1327 msgid "Base URL for server instance" msgstr "" -#: common/models.py:1276 +#: common/models.py:1333 msgid "Default Currency" msgstr "" -#: common/models.py:1277 +#: common/models.py:1334 msgid "Select base currency for pricing calculations" msgstr "" -#: common/models.py:1283 +#: common/models.py:1340 msgid "Supported Currencies" msgstr "" -#: common/models.py:1284 +#: common/models.py:1341 msgid "List of supported currency codes" msgstr "" -#: common/models.py:1290 +#: common/models.py:1347 msgid "Currency Update Interval" msgstr "" -#: common/models.py:1292 +#: common/models.py:1349 msgid "How often to update exchange rates (set to zero to disable)" msgstr "" -#: common/models.py:1295 common/models.py:1351 common/models.py:1364 -#: common/models.py:1372 common/models.py:1381 common/models.py:1390 -#: common/models.py:1627 common/models.py:1649 common/models.py:1764 -#: common/models.py:2146 +#: common/models.py:1352 common/models.py:1408 common/models.py:1421 +#: common/models.py:1429 common/models.py:1438 common/models.py:1447 +#: common/models.py:1696 common/models.py:1718 common/models.py:1819 +#: common/models.py:2208 msgid "days" msgstr "" -#: common/models.py:1299 +#: common/models.py:1356 msgid "Currency Update Plugin" msgstr "" -#: common/models.py:1300 +#: common/models.py:1357 msgid "Currency update plugin to use" msgstr "" -#: common/models.py:1305 +#: common/models.py:1362 msgid "Download from URL" msgstr "" -#: common/models.py:1307 +#: common/models.py:1364 msgid "Allow download of remote images and files from external URL" msgstr "" -#: common/models.py:1313 +#: common/models.py:1370 msgid "Download Size Limit" msgstr "" -#: common/models.py:1314 +#: common/models.py:1371 msgid "Maximum allowable download size for remote image" msgstr "" -#: common/models.py:1320 +#: common/models.py:1377 msgid "User-agent used to download from URL" msgstr "" -#: common/models.py:1322 +#: common/models.py:1379 msgid "Allow to override the user-agent used to download images and files from external URL (leave blank for the default)" msgstr "" -#: common/models.py:1327 +#: common/models.py:1384 msgid "Strict URL Validation" msgstr "" -#: common/models.py:1328 +#: common/models.py:1385 msgid "Require schema specification when validating URLs" msgstr "" -#: common/models.py:1333 +#: common/models.py:1390 msgid "Require confirm" msgstr "" -#: common/models.py:1334 +#: common/models.py:1391 msgid "Require explicit user confirmation for certain action." msgstr "" -#: common/models.py:1339 +#: common/models.py:1396 msgid "Tree Depth" msgstr "" -#: common/models.py:1341 +#: common/models.py:1398 msgid "Default tree depth for treeview. Deeper levels can be lazy loaded as they are needed." msgstr "" -#: common/models.py:1347 +#: common/models.py:1404 msgid "Update Check Interval" msgstr "" -#: common/models.py:1348 +#: common/models.py:1405 msgid "How often to check for updates (set to zero to disable)" msgstr "" -#: common/models.py:1354 +#: common/models.py:1411 msgid "Automatic Backup" msgstr "" -#: common/models.py:1355 +#: common/models.py:1412 msgid "Enable automatic backup of database and media files" msgstr "" -#: common/models.py:1360 +#: common/models.py:1417 msgid "Auto Backup Interval" msgstr "" -#: common/models.py:1361 +#: common/models.py:1418 msgid "Specify number of days between automated backup events" msgstr "" -#: common/models.py:1367 +#: common/models.py:1424 msgid "Task Deletion Interval" msgstr "" -#: common/models.py:1369 +#: common/models.py:1426 msgid "Background task results will be deleted after specified number of days" msgstr "" -#: common/models.py:1376 +#: common/models.py:1433 msgid "Error Log Deletion Interval" msgstr "" -#: common/models.py:1378 +#: common/models.py:1435 msgid "Error logs will be deleted after specified number of days" msgstr "" -#: common/models.py:1385 +#: common/models.py:1442 msgid "Notification Deletion Interval" msgstr "" -#: common/models.py:1387 +#: common/models.py:1444 msgid "User notifications will be deleted after specified number of days" msgstr "" -#: common/models.py:1394 templates/InvenTree/settings/sidebar.html:31 +#: common/models.py:1451 templates/InvenTree/settings/sidebar.html:31 msgid "Barcode Support" msgstr "" -#: common/models.py:1395 +#: common/models.py:1452 msgid "Enable barcode scanner support in the web interface" msgstr "" -#: common/models.py:1400 +#: common/models.py:1457 +msgid "Store Barcode Results" +msgstr "" + +#: common/models.py:1458 +msgid "Store barcode scan results in the database" +msgstr "" + +#: common/models.py:1463 +msgid "Barcode Scans Maximum Count" +msgstr "" + +#: common/models.py:1464 +msgid "Maximum number of barcode scan results to store" +msgstr "" + +#: common/models.py:1469 msgid "Barcode Input Delay" msgstr "" -#: common/models.py:1401 +#: common/models.py:1470 msgid "Barcode input processing delay time" msgstr "" -#: common/models.py:1407 +#: common/models.py:1476 msgid "Barcode Webcam Support" msgstr "" -#: common/models.py:1408 +#: common/models.py:1477 msgid "Allow barcode scanning via webcam in browser" msgstr "" -#: common/models.py:1413 +#: common/models.py:1482 msgid "Barcode Show Data" msgstr "" -#: common/models.py:1414 +#: common/models.py:1483 msgid "Display barcode data in browser as text" msgstr "" -#: common/models.py:1419 +#: common/models.py:1488 msgid "Barcode Generation Plugin" msgstr "" -#: common/models.py:1420 +#: common/models.py:1489 msgid "Plugin to use for internal barcode data generation" msgstr "" -#: common/models.py:1425 +#: common/models.py:1494 msgid "Part Revisions" msgstr "" -#: common/models.py:1426 +#: common/models.py:1495 msgid "Enable revision field for Part" msgstr "" -#: common/models.py:1431 +#: common/models.py:1500 msgid "Assembly Revision Only" msgstr "" -#: common/models.py:1432 +#: common/models.py:1501 msgid "Only allow revisions for assembly parts" msgstr "" -#: common/models.py:1437 +#: common/models.py:1506 msgid "Allow Deletion from Assembly" msgstr "" -#: common/models.py:1438 +#: common/models.py:1507 msgid "Allow deletion of parts which are used in an assembly" msgstr "" -#: common/models.py:1443 +#: common/models.py:1512 msgid "IPN Regex" msgstr "" -#: common/models.py:1444 +#: common/models.py:1513 msgid "Regular expression pattern for matching Part IPN" msgstr "" -#: common/models.py:1447 +#: common/models.py:1516 msgid "Allow Duplicate IPN" msgstr "" -#: common/models.py:1448 +#: common/models.py:1517 msgid "Allow multiple parts to share the same IPN" msgstr "" -#: common/models.py:1453 +#: common/models.py:1522 msgid "Allow Editing IPN" msgstr "" -#: common/models.py:1454 +#: common/models.py:1523 msgid "Allow changing the IPN value while editing a part" msgstr "" -#: common/models.py:1459 +#: common/models.py:1528 msgid "Copy Part BOM Data" msgstr "" -#: common/models.py:1460 +#: common/models.py:1529 msgid "Copy BOM data by default when duplicating a part" msgstr "" -#: common/models.py:1465 +#: common/models.py:1534 msgid "Copy Part Parameter Data" msgstr "" -#: common/models.py:1466 +#: common/models.py:1535 msgid "Copy parameter data by default when duplicating a part" msgstr "" -#: common/models.py:1471 +#: common/models.py:1540 msgid "Copy Part Test Data" msgstr "" -#: common/models.py:1472 +#: common/models.py:1541 msgid "Copy test data by default when duplicating a part" msgstr "" -#: common/models.py:1477 +#: common/models.py:1546 msgid "Copy Category Parameter Templates" msgstr "" -#: common/models.py:1478 +#: common/models.py:1547 msgid "Copy category parameter templates when creating a part" msgstr "" -#: common/models.py:1483 part/admin.py:108 part/models.py:3945 -#: report/models.py:293 report/models.py:360 report/serializers.py:90 -#: report/serializers.py:131 stock/serializers.py:232 +#: common/models.py:1552 part/admin.py:108 part/models.py:4003 +#: report/models.py:301 report/models.py:368 report/serializers.py:91 +#: report/serializers.py:132 stock/serializers.py:233 #: templates/js/translated/table_filters.js:138 #: templates/js/translated/table_filters.js:775 msgid "Template" msgstr "" -#: common/models.py:1484 +#: common/models.py:1553 msgid "Parts are templates by default" msgstr "" -#: common/models.py:1490 +#: common/models.py:1559 msgid "Parts can be assembled from other components by default" msgstr "" -#: common/models.py:1495 part/admin.py:95 part/models.py:1160 -#: part/serializers.py:1596 templates/js/translated/table_filters.js:737 +#: common/models.py:1564 part/admin.py:95 part/models.py:1221 +#: part/serializers.py:1654 templates/js/translated/table_filters.js:737 msgid "Component" msgstr "" -#: common/models.py:1496 +#: common/models.py:1565 msgid "Parts can be used as sub-components by default" msgstr "" -#: common/models.py:1501 part/admin.py:100 part/models.py:1178 +#: common/models.py:1570 part/admin.py:100 part/models.py:1239 msgid "Purchaseable" msgstr "" -#: common/models.py:1502 +#: common/models.py:1571 msgid "Parts are purchaseable by default" msgstr "" -#: common/models.py:1507 part/admin.py:104 part/models.py:1184 +#: common/models.py:1576 part/admin.py:104 part/models.py:1245 #: templates/js/translated/table_filters.js:763 msgid "Salable" msgstr "" -#: common/models.py:1508 +#: common/models.py:1577 msgid "Parts are salable by default" msgstr "" -#: common/models.py:1514 +#: common/models.py:1583 msgid "Parts are trackable by default" msgstr "" -#: common/models.py:1519 part/admin.py:117 part/models.py:1200 -#: part/templates/part/part_base.html:154 +#: common/models.py:1588 part/admin.py:117 part/models.py:1261 +#: part/templates/part/part_base.html:155 #: templates/js/translated/table_filters.js:142 #: templates/js/translated/table_filters.js:787 msgid "Virtual" msgstr "" -#: common/models.py:1520 +#: common/models.py:1589 msgid "Parts are virtual by default" msgstr "" -#: common/models.py:1525 +#: common/models.py:1594 msgid "Show Import in Views" msgstr "" -#: common/models.py:1526 +#: common/models.py:1595 msgid "Display the import wizard in some part views" msgstr "" -#: common/models.py:1531 +#: common/models.py:1600 msgid "Show related parts" msgstr "" -#: common/models.py:1532 +#: common/models.py:1601 msgid "Display related parts for a part" msgstr "" -#: common/models.py:1537 +#: common/models.py:1606 msgid "Initial Stock Data" msgstr "" -#: common/models.py:1538 +#: common/models.py:1607 msgid "Allow creation of initial stock when adding a new part" msgstr "" -#: common/models.py:1543 templates/js/translated/part.js:108 +#: common/models.py:1612 templates/js/translated/part.js:108 msgid "Initial Supplier Data" msgstr "" -#: common/models.py:1545 +#: common/models.py:1614 msgid "Allow creation of initial supplier data when adding a new part" msgstr "" -#: common/models.py:1551 +#: common/models.py:1620 msgid "Part Name Display Format" msgstr "" -#: common/models.py:1552 +#: common/models.py:1621 msgid "Format to display the part name" msgstr "" -#: common/models.py:1558 +#: common/models.py:1627 msgid "Part Category Default Icon" msgstr "" -#: common/models.py:1559 +#: common/models.py:1628 msgid "Part category default icon (empty means no icon)" msgstr "" -#: common/models.py:1564 +#: common/models.py:1633 msgid "Enforce Parameter Units" msgstr "" -#: common/models.py:1566 +#: common/models.py:1635 msgid "If units are provided, parameter values must match the specified units" msgstr "" -#: common/models.py:1572 +#: common/models.py:1641 msgid "Minimum Pricing Decimal Places" msgstr "" -#: common/models.py:1574 +#: common/models.py:1643 msgid "Minimum number of decimal places to display when rendering pricing data" msgstr "" -#: common/models.py:1585 +#: common/models.py:1654 msgid "Maximum Pricing Decimal Places" msgstr "" -#: common/models.py:1587 +#: common/models.py:1656 msgid "Maximum number of decimal places to display when rendering pricing data" msgstr "" -#: common/models.py:1598 +#: common/models.py:1667 msgid "Use Supplier Pricing" msgstr "" -#: common/models.py:1600 +#: common/models.py:1669 msgid "Include supplier price breaks in overall pricing calculations" msgstr "" -#: common/models.py:1606 +#: common/models.py:1675 msgid "Purchase History Override" msgstr "" -#: common/models.py:1608 +#: common/models.py:1677 msgid "Historical purchase order pricing overrides supplier price breaks" msgstr "" -#: common/models.py:1614 +#: common/models.py:1683 msgid "Use Stock Item Pricing" msgstr "" -#: common/models.py:1616 +#: common/models.py:1685 msgid "Use pricing from manually entered stock data for pricing calculations" msgstr "" -#: common/models.py:1622 +#: common/models.py:1691 msgid "Stock Item Pricing Age" msgstr "" -#: common/models.py:1624 +#: common/models.py:1693 msgid "Exclude stock items older than this number of days from pricing calculations" msgstr "" -#: common/models.py:1631 +#: common/models.py:1700 msgid "Use Variant Pricing" msgstr "" -#: common/models.py:1632 +#: common/models.py:1701 msgid "Include variant pricing in overall pricing calculations" msgstr "" -#: common/models.py:1637 +#: common/models.py:1706 msgid "Active Variants Only" msgstr "" -#: common/models.py:1639 +#: common/models.py:1708 msgid "Only use active variant parts for calculating variant pricing" msgstr "" -#: common/models.py:1645 +#: common/models.py:1714 msgid "Pricing Rebuild Interval" msgstr "" -#: common/models.py:1647 +#: common/models.py:1716 msgid "Number of days before part pricing is automatically updated" msgstr "" -#: common/models.py:1654 +#: common/models.py:1723 msgid "Internal Prices" msgstr "" -#: common/models.py:1655 +#: common/models.py:1724 msgid "Enable internal prices for parts" msgstr "" -#: common/models.py:1660 +#: common/models.py:1729 msgid "Internal Price Override" msgstr "" -#: common/models.py:1662 +#: common/models.py:1731 msgid "If available, internal prices override price range calculations" msgstr "" -#: common/models.py:1668 +#: common/models.py:1737 msgid "Enable label printing" msgstr "" -#: common/models.py:1669 +#: common/models.py:1738 msgid "Enable label printing from the web interface" msgstr "" -#: common/models.py:1674 +#: common/models.py:1743 msgid "Label Image DPI" msgstr "" -#: common/models.py:1676 +#: common/models.py:1745 msgid "DPI resolution when generating image files to supply to label printing plugins" msgstr "" -#: common/models.py:1682 +#: common/models.py:1751 msgid "Enable Reports" msgstr "" -#: common/models.py:1683 +#: common/models.py:1752 msgid "Enable generation of reports" msgstr "" -#: common/models.py:1688 templates/stats.html:25 +#: common/models.py:1757 templates/stats.html:25 msgid "Debug Mode" msgstr "" -#: common/models.py:1689 +#: common/models.py:1758 msgid "Generate reports in debug mode (HTML output)" msgstr "" -#: common/models.py:1694 +#: common/models.py:1763 msgid "Log Report Errors" msgstr "" -#: common/models.py:1695 +#: common/models.py:1764 msgid "Log errors which occur when generating reports" msgstr "" -#: common/models.py:1700 plugin/builtin/labels/label_sheet.py:28 -#: report/models.py:301 +#: common/models.py:1769 plugin/builtin/labels/label_sheet.py:28 +#: report/models.py:309 msgid "Page Size" msgstr "" -#: common/models.py:1701 +#: common/models.py:1770 msgid "Default page size for PDF reports" msgstr "" -#: common/models.py:1706 -msgid "Enable Test Reports" -msgstr "" - -#: common/models.py:1707 -msgid "Enable generation of test reports" -msgstr "" - -#: common/models.py:1712 -msgid "Attach Test Reports" -msgstr "" - -#: common/models.py:1714 -msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item" -msgstr "" - -#: common/models.py:1720 +#: common/models.py:1775 msgid "Globally Unique Serials" msgstr "" -#: common/models.py:1721 +#: common/models.py:1776 msgid "Serial numbers for stock items must be globally unique" msgstr "" -#: common/models.py:1726 +#: common/models.py:1781 msgid "Autofill Serial Numbers" msgstr "" -#: common/models.py:1727 +#: common/models.py:1782 msgid "Autofill serial numbers in forms" msgstr "" -#: common/models.py:1732 +#: common/models.py:1787 msgid "Delete Depleted Stock" msgstr "" -#: common/models.py:1734 +#: common/models.py:1789 msgid "Determines default behavior when a stock item is depleted" msgstr "" -#: common/models.py:1740 +#: common/models.py:1795 msgid "Batch Code Template" msgstr "" -#: common/models.py:1742 +#: common/models.py:1797 msgid "Template for generating default batch codes for stock items" msgstr "" -#: common/models.py:1747 +#: common/models.py:1802 msgid "Stock Expiry" msgstr "" -#: common/models.py:1748 +#: common/models.py:1803 msgid "Enable stock expiry functionality" msgstr "" -#: common/models.py:1753 +#: common/models.py:1808 msgid "Sell Expired Stock" msgstr "" -#: common/models.py:1754 +#: common/models.py:1809 msgid "Allow sale of expired stock" msgstr "" -#: common/models.py:1759 +#: common/models.py:1814 msgid "Stock Stale Time" msgstr "" -#: common/models.py:1761 +#: common/models.py:1816 msgid "Number of days stock items are considered stale before expiring" msgstr "" -#: common/models.py:1768 +#: common/models.py:1823 msgid "Build Expired Stock" msgstr "" -#: common/models.py:1769 +#: common/models.py:1824 msgid "Allow building with expired stock" msgstr "" -#: common/models.py:1774 +#: common/models.py:1829 msgid "Stock Ownership Control" msgstr "" -#: common/models.py:1775 +#: common/models.py:1830 msgid "Enable ownership control over stock locations and items" msgstr "" -#: common/models.py:1780 +#: common/models.py:1835 msgid "Stock Location Default Icon" msgstr "" -#: common/models.py:1781 +#: common/models.py:1836 msgid "Stock location default icon (empty means no icon)" msgstr "" -#: common/models.py:1786 +#: common/models.py:1841 msgid "Show Installed Stock Items" msgstr "" -#: common/models.py:1787 +#: common/models.py:1842 msgid "Display installed stock items in stock tables" msgstr "" -#: common/models.py:1792 +#: common/models.py:1847 msgid "Check BOM when installing items" msgstr "" -#: common/models.py:1794 +#: common/models.py:1849 msgid "Installed stock items must exist in the BOM for the parent part" msgstr "" -#: common/models.py:1800 +#: common/models.py:1855 msgid "Allow Out of Stock Transfer" msgstr "" -#: common/models.py:1802 +#: common/models.py:1857 msgid "Allow stock items which are not in stock to be transferred between stock locations" msgstr "" -#: common/models.py:1808 +#: common/models.py:1863 msgid "Build Order Reference Pattern" msgstr "" -#: common/models.py:1810 +#: common/models.py:1865 msgid "Required pattern for generating Build Order reference field" msgstr "" -#: common/models.py:1816 common/models.py:1872 common/models.py:1894 -#: common/models.py:1930 +#: common/models.py:1871 common/models.py:1927 common/models.py:1949 +#: common/models.py:1985 msgid "Require Responsible Owner" msgstr "" -#: common/models.py:1817 common/models.py:1873 common/models.py:1895 -#: common/models.py:1931 +#: common/models.py:1872 common/models.py:1928 common/models.py:1950 +#: common/models.py:1986 msgid "A responsible owner must be assigned to each order" msgstr "" -#: common/models.py:1822 +#: common/models.py:1877 msgid "Require Active Part" msgstr "" -#: common/models.py:1823 +#: common/models.py:1878 msgid "Prevent build order creation for inactive parts" msgstr "" -#: common/models.py:1828 +#: common/models.py:1883 msgid "Require Locked Part" msgstr "" -#: common/models.py:1829 +#: common/models.py:1884 msgid "Prevent build order creation for unlocked parts" msgstr "" -#: common/models.py:1834 +#: common/models.py:1889 msgid "Require Valid BOM" msgstr "" -#: common/models.py:1836 +#: common/models.py:1891 msgid "Prevent build order creation unless BOM has been validated" msgstr "" -#: common/models.py:1842 +#: common/models.py:1897 msgid "Require Closed Child Orders" msgstr "" -#: common/models.py:1844 +#: common/models.py:1899 msgid "Prevent build order completion until all child orders are closed" msgstr "" -#: common/models.py:1850 +#: common/models.py:1905 msgid "Block Until Tests Pass" msgstr "" -#: common/models.py:1852 +#: common/models.py:1907 msgid "Prevent build outputs from being completed until all required tests pass" msgstr "" -#: common/models.py:1858 +#: common/models.py:1913 msgid "Enable Return Orders" msgstr "" -#: common/models.py:1859 +#: common/models.py:1914 msgid "Enable return order functionality in the user interface" msgstr "" -#: common/models.py:1864 +#: common/models.py:1919 msgid "Return Order Reference Pattern" msgstr "" -#: common/models.py:1866 +#: common/models.py:1921 msgid "Required pattern for generating Return Order reference field" msgstr "" -#: common/models.py:1878 +#: common/models.py:1933 msgid "Edit Completed Return Orders" msgstr "" -#: common/models.py:1880 +#: common/models.py:1935 msgid "Allow editing of return orders after they have been completed" msgstr "" -#: common/models.py:1886 +#: common/models.py:1941 msgid "Sales Order Reference Pattern" msgstr "" -#: common/models.py:1888 +#: common/models.py:1943 msgid "Required pattern for generating Sales Order reference field" msgstr "" -#: common/models.py:1900 +#: common/models.py:1955 msgid "Sales Order Default Shipment" msgstr "" -#: common/models.py:1901 +#: common/models.py:1956 msgid "Enable creation of default shipment with sales orders" msgstr "" -#: common/models.py:1906 +#: common/models.py:1961 msgid "Edit Completed Sales Orders" msgstr "" -#: common/models.py:1908 +#: common/models.py:1963 msgid "Allow editing of sales orders after they have been shipped or completed" msgstr "" -#: common/models.py:1914 +#: common/models.py:1969 msgid "Mark Shipped Orders as Complete" msgstr "" -#: common/models.py:1916 +#: common/models.py:1971 msgid "Sales orders marked as shipped will automatically be completed, bypassing the \"shipped\" status" msgstr "" -#: common/models.py:1922 +#: common/models.py:1977 msgid "Purchase Order Reference Pattern" msgstr "" -#: common/models.py:1924 +#: common/models.py:1979 msgid "Required pattern for generating Purchase Order reference field" msgstr "" -#: common/models.py:1936 +#: common/models.py:1991 msgid "Edit Completed Purchase Orders" msgstr "" -#: common/models.py:1938 +#: common/models.py:1993 msgid "Allow editing of purchase orders after they have been shipped or completed" msgstr "" -#: common/models.py:1944 +#: common/models.py:1999 msgid "Auto Complete Purchase Orders" msgstr "" -#: common/models.py:1946 +#: common/models.py:2001 msgid "Automatically mark purchase orders as complete when all line items are received" msgstr "" -#: common/models.py:1953 +#: common/models.py:2008 msgid "Enable password forgot" msgstr "" -#: common/models.py:1954 +#: common/models.py:2009 msgid "Enable password forgot function on the login pages" msgstr "" -#: common/models.py:1959 +#: common/models.py:2014 msgid "Enable registration" msgstr "" -#: common/models.py:1960 +#: common/models.py:2015 msgid "Enable self-registration for users on the login pages" msgstr "" -#: common/models.py:1965 +#: common/models.py:2020 msgid "Enable SSO" msgstr "" -#: common/models.py:1966 +#: common/models.py:2021 msgid "Enable SSO on the login pages" msgstr "" -#: common/models.py:1971 +#: common/models.py:2026 msgid "Enable SSO registration" msgstr "" -#: common/models.py:1973 +#: common/models.py:2028 msgid "Enable self-registration via SSO for users on the login pages" msgstr "" -#: common/models.py:1979 +#: common/models.py:2034 msgid "Enable SSO group sync" msgstr "" -#: common/models.py:1981 +#: common/models.py:2036 msgid "Enable synchronizing InvenTree groups with groups provided by the IdP" msgstr "" -#: common/models.py:1987 +#: common/models.py:2042 msgid "SSO group key" msgstr "" -#: common/models.py:1989 +#: common/models.py:2044 msgid "The name of the groups claim attribute provided by the IdP" msgstr "" -#: common/models.py:1995 +#: common/models.py:2050 msgid "SSO group map" msgstr "" -#: common/models.py:1997 +#: common/models.py:2052 msgid "A mapping from SSO groups to local InvenTree groups. If the local group does not exist, it will be created." msgstr "" -#: common/models.py:2003 +#: common/models.py:2058 msgid "Remove groups outside of SSO" msgstr "" -#: common/models.py:2005 +#: common/models.py:2060 msgid "Whether groups assigned to the user should be removed if they are not backend by the IdP. Disabling this setting might cause security issues" msgstr "" -#: common/models.py:2011 +#: common/models.py:2066 msgid "Email required" msgstr "" -#: common/models.py:2012 +#: common/models.py:2067 msgid "Require user to supply mail on signup" msgstr "" -#: common/models.py:2017 +#: common/models.py:2072 msgid "Auto-fill SSO users" msgstr "" -#: common/models.py:2019 +#: common/models.py:2074 msgid "Automatically fill out user-details from SSO account-data" msgstr "" -#: common/models.py:2025 +#: common/models.py:2080 msgid "Mail twice" msgstr "" -#: common/models.py:2026 +#: common/models.py:2081 msgid "On signup ask users twice for their mail" msgstr "" -#: common/models.py:2031 +#: common/models.py:2086 msgid "Password twice" msgstr "" -#: common/models.py:2032 +#: common/models.py:2087 msgid "On signup ask users twice for their password" msgstr "" -#: common/models.py:2037 +#: common/models.py:2092 msgid "Allowed domains" msgstr "" -#: common/models.py:2039 +#: common/models.py:2094 msgid "Restrict signup to certain domains (comma-separated, starting with @)" msgstr "" -#: common/models.py:2045 +#: common/models.py:2100 msgid "Group on signup" msgstr "" -#: common/models.py:2047 +#: common/models.py:2102 msgid "Group to which new users are assigned on registration. If SSO group sync is enabled, this group is only set if no group can be assigned from the IdP." msgstr "" -#: common/models.py:2053 +#: common/models.py:2108 msgid "Enforce MFA" msgstr "" -#: common/models.py:2054 +#: common/models.py:2109 msgid "Users must use multifactor security." msgstr "" -#: common/models.py:2059 +#: common/models.py:2114 msgid "Check plugins on startup" msgstr "" -#: common/models.py:2061 +#: common/models.py:2116 msgid "Check that all plugins are installed on startup - enable in container environments" msgstr "" -#: common/models.py:2069 +#: common/models.py:2124 msgid "Check for plugin updates" msgstr "" -#: common/models.py:2070 +#: common/models.py:2125 msgid "Enable periodic checks for updates to installed plugins" msgstr "" -#: common/models.py:2076 +#: common/models.py:2131 msgid "Enable URL integration" msgstr "" -#: common/models.py:2077 +#: common/models.py:2132 msgid "Enable plugins to add URL routes" msgstr "" -#: common/models.py:2083 +#: common/models.py:2138 msgid "Enable navigation integration" msgstr "" -#: common/models.py:2084 +#: common/models.py:2139 msgid "Enable plugins to integrate into navigation" msgstr "" -#: common/models.py:2090 +#: common/models.py:2145 msgid "Enable app integration" msgstr "" -#: common/models.py:2091 +#: common/models.py:2146 msgid "Enable plugins to add apps" msgstr "" -#: common/models.py:2097 +#: common/models.py:2152 msgid "Enable schedule integration" msgstr "" -#: common/models.py:2098 +#: common/models.py:2153 msgid "Enable plugins to run scheduled tasks" msgstr "" -#: common/models.py:2104 +#: common/models.py:2159 msgid "Enable event integration" msgstr "" -#: common/models.py:2105 +#: common/models.py:2160 msgid "Enable plugins to respond to internal events" msgstr "" -#: common/models.py:2111 +#: common/models.py:2166 +msgid "Enable interface integration" +msgstr "" + +#: common/models.py:2167 +msgid "Enable plugins to integrate into the user interface" +msgstr "" + +#: common/models.py:2173 msgid "Enable project codes" msgstr "" -#: common/models.py:2112 +#: common/models.py:2174 msgid "Enable project codes for tracking projects" msgstr "" -#: common/models.py:2117 +#: common/models.py:2179 msgid "Stocktake Functionality" msgstr "" -#: common/models.py:2119 +#: common/models.py:2181 msgid "Enable stocktake functionality for recording stock levels and calculating stock value" msgstr "" -#: common/models.py:2125 +#: common/models.py:2187 msgid "Exclude External Locations" msgstr "" -#: common/models.py:2127 +#: common/models.py:2189 msgid "Exclude stock items in external locations from stocktake calculations" msgstr "" -#: common/models.py:2133 +#: common/models.py:2195 msgid "Automatic Stocktake Period" msgstr "" -#: common/models.py:2135 +#: common/models.py:2197 msgid "Number of days between automatic stocktake recording (set to zero to disable)" msgstr "" -#: common/models.py:2141 +#: common/models.py:2203 msgid "Report Deletion Interval" msgstr "" -#: common/models.py:2143 +#: common/models.py:2205 msgid "Stocktake reports will be deleted after specified number of days" msgstr "" -#: common/models.py:2150 +#: common/models.py:2212 msgid "Display Users full names" msgstr "" -#: common/models.py:2151 +#: common/models.py:2213 msgid "Display Users full names instead of usernames" msgstr "" -#: common/models.py:2156 +#: common/models.py:2218 msgid "Enable Test Station Data" msgstr "" -#: common/models.py:2157 +#: common/models.py:2219 msgid "Enable test station data collection for test results" msgstr "" -#: common/models.py:2169 common/models.py:2549 -msgid "Settings key (must be unique - case insensitive" -msgstr "" - -#: common/models.py:2212 -msgid "Hide inactive parts" -msgstr "" - -#: common/models.py:2214 -msgid "Hide inactive parts in results displayed on the homepage" -msgstr "" - -#: common/models.py:2220 -msgid "Show subscribed parts" -msgstr "" - -#: common/models.py:2221 -msgid "Show subscribed parts on the homepage" +#: common/models.py:2224 +msgid "Create Template on Upload" msgstr "" #: common/models.py:2226 -msgid "Show subscribed categories" +msgid "Create a new test template when uploading test data which does not match an existing template" msgstr "" -#: common/models.py:2227 -msgid "Show subscribed part categories on the homepage" -msgstr "" - -#: common/models.py:2232 -msgid "Show latest parts" -msgstr "" - -#: common/models.py:2233 -msgid "Show latest parts on the homepage" -msgstr "" - -#: common/models.py:2238 -msgid "Show invalid BOMs" -msgstr "" - -#: common/models.py:2239 -msgid "Show BOMs that await validation on the homepage" -msgstr "" - -#: common/models.py:2244 -msgid "Show recent stock changes" -msgstr "" - -#: common/models.py:2245 -msgid "Show recently changed stock items on the homepage" -msgstr "" - -#: common/models.py:2250 -msgid "Show low stock" -msgstr "" - -#: common/models.py:2251 -msgid "Show low stock items on the homepage" -msgstr "" - -#: common/models.py:2256 -msgid "Show depleted stock" -msgstr "" - -#: common/models.py:2257 -msgid "Show depleted stock items on the homepage" -msgstr "" - -#: common/models.py:2262 -msgid "Show needed stock" -msgstr "" - -#: common/models.py:2263 -msgid "Show stock items needed for builds on the homepage" -msgstr "" - -#: common/models.py:2268 -msgid "Show expired stock" -msgstr "" - -#: common/models.py:2269 -msgid "Show expired stock items on the homepage" -msgstr "" - -#: common/models.py:2274 -msgid "Show stale stock" -msgstr "" - -#: common/models.py:2275 -msgid "Show stale stock items on the homepage" -msgstr "" - -#: common/models.py:2280 -msgid "Show pending builds" +#: common/models.py:2279 +msgid "Hide inactive parts" msgstr "" #: common/models.py:2281 -msgid "Show pending builds on the homepage" -msgstr "" - -#: common/models.py:2286 -msgid "Show overdue builds" +msgid "Hide inactive parts in results displayed on the homepage" msgstr "" #: common/models.py:2287 -msgid "Show overdue builds on the homepage" +msgid "Show subscribed parts" msgstr "" -#: common/models.py:2292 -msgid "Show outstanding POs" +#: common/models.py:2288 +msgid "Show subscribed parts on the homepage" msgstr "" #: common/models.py:2293 -msgid "Show outstanding POs on the homepage" +msgid "Show subscribed categories" msgstr "" -#: common/models.py:2298 -msgid "Show overdue POs" +#: common/models.py:2294 +msgid "Show subscribed part categories on the homepage" msgstr "" #: common/models.py:2299 -msgid "Show overdue POs on the homepage" +msgid "Show latest parts" msgstr "" -#: common/models.py:2304 -msgid "Show outstanding SOs" +#: common/models.py:2300 +msgid "Show latest parts on the homepage" msgstr "" #: common/models.py:2305 -msgid "Show outstanding SOs on the homepage" +msgid "Show invalid BOMs" msgstr "" -#: common/models.py:2310 -msgid "Show overdue SOs" +#: common/models.py:2306 +msgid "Show BOMs that await validation on the homepage" msgstr "" #: common/models.py:2311 -msgid "Show overdue SOs on the homepage" +msgid "Show recent stock changes" msgstr "" -#: common/models.py:2316 -msgid "Show pending SO shipments" +#: common/models.py:2312 +msgid "Show recently changed stock items on the homepage" msgstr "" #: common/models.py:2317 -msgid "Show pending SO shipments on the homepage" +msgid "Show low stock" msgstr "" -#: common/models.py:2322 -msgid "Show News" +#: common/models.py:2318 +msgid "Show low stock items on the homepage" msgstr "" #: common/models.py:2323 -msgid "Show news on the homepage" +msgid "Show depleted stock" msgstr "" -#: common/models.py:2328 -msgid "Inline label display" +#: common/models.py:2324 +msgid "Show depleted stock items on the homepage" +msgstr "" + +#: common/models.py:2329 +msgid "Show needed stock" msgstr "" #: common/models.py:2330 -msgid "Display PDF labels in the browser, instead of downloading as a file" +msgid "Show stock items needed for builds on the homepage" +msgstr "" + +#: common/models.py:2335 +msgid "Show expired stock" msgstr "" #: common/models.py:2336 -msgid "Default label printer" +msgid "Show expired stock items on the homepage" msgstr "" -#: common/models.py:2338 -msgid "Configure which label printer should be selected by default" +#: common/models.py:2341 +msgid "Show stale stock" msgstr "" -#: common/models.py:2344 -msgid "Inline report display" +#: common/models.py:2342 +msgid "Show stale stock items on the homepage" msgstr "" -#: common/models.py:2346 -msgid "Display PDF reports in the browser, instead of downloading as a file" +#: common/models.py:2347 +msgid "Show pending builds" msgstr "" -#: common/models.py:2352 -msgid "Search Parts" +#: common/models.py:2348 +msgid "Show pending builds on the homepage" msgstr "" #: common/models.py:2353 -msgid "Display parts in search preview window" +msgid "Show overdue builds" msgstr "" -#: common/models.py:2358 -msgid "Search Supplier Parts" +#: common/models.py:2354 +msgid "Show overdue builds on the homepage" msgstr "" #: common/models.py:2359 -msgid "Display supplier parts in search preview window" +msgid "Show outstanding POs" msgstr "" -#: common/models.py:2364 -msgid "Search Manufacturer Parts" +#: common/models.py:2360 +msgid "Show outstanding POs on the homepage" msgstr "" #: common/models.py:2365 -msgid "Display manufacturer parts in search preview window" +msgid "Show overdue POs" msgstr "" -#: common/models.py:2370 -msgid "Hide Inactive Parts" +#: common/models.py:2366 +msgid "Show overdue POs on the homepage" msgstr "" #: common/models.py:2371 -msgid "Excluded inactive parts from search preview window" +msgid "Show outstanding SOs" msgstr "" -#: common/models.py:2376 -msgid "Search Categories" +#: common/models.py:2372 +msgid "Show outstanding SOs on the homepage" msgstr "" #: common/models.py:2377 -msgid "Display part categories in search preview window" +msgid "Show overdue SOs" msgstr "" -#: common/models.py:2382 -msgid "Search Stock" +#: common/models.py:2378 +msgid "Show overdue SOs on the homepage" msgstr "" #: common/models.py:2383 -msgid "Display stock items in search preview window" +msgid "Show pending SO shipments" msgstr "" -#: common/models.py:2388 -msgid "Hide Unavailable Stock Items" +#: common/models.py:2384 +msgid "Show pending SO shipments on the homepage" +msgstr "" + +#: common/models.py:2389 +msgid "Show News" msgstr "" #: common/models.py:2390 -msgid "Exclude stock items which are not available from the search preview window" +msgid "Show news on the homepage" msgstr "" -#: common/models.py:2396 -msgid "Search Locations" +#: common/models.py:2395 +msgid "Inline label display" msgstr "" #: common/models.py:2397 -msgid "Display stock locations in search preview window" -msgstr "" - -#: common/models.py:2402 -msgid "Search Companies" +msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "" #: common/models.py:2403 -msgid "Display companies in search preview window" +msgid "Default label printer" msgstr "" -#: common/models.py:2408 -msgid "Search Build Orders" +#: common/models.py:2405 +msgid "Configure which label printer should be selected by default" msgstr "" -#: common/models.py:2409 -msgid "Display build orders in search preview window" +#: common/models.py:2411 +msgid "Inline report display" msgstr "" -#: common/models.py:2414 -msgid "Search Purchase Orders" +#: common/models.py:2413 +msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:2415 -msgid "Display purchase orders in search preview window" +#: common/models.py:2419 +msgid "Search Parts" msgstr "" #: common/models.py:2420 -msgid "Exclude Inactive Purchase Orders" +msgid "Display parts in search preview window" msgstr "" -#: common/models.py:2422 -msgid "Exclude inactive purchase orders from search preview window" +#: common/models.py:2425 +msgid "Search Supplier Parts" msgstr "" -#: common/models.py:2428 -msgid "Search Sales Orders" +#: common/models.py:2426 +msgid "Display supplier parts in search preview window" msgstr "" -#: common/models.py:2429 -msgid "Display sales orders in search preview window" +#: common/models.py:2431 +msgid "Search Manufacturer Parts" msgstr "" -#: common/models.py:2434 -msgid "Exclude Inactive Sales Orders" +#: common/models.py:2432 +msgid "Display manufacturer parts in search preview window" msgstr "" -#: common/models.py:2436 -msgid "Exclude inactive sales orders from search preview window" +#: common/models.py:2437 +msgid "Hide Inactive Parts" msgstr "" -#: common/models.py:2442 -msgid "Search Return Orders" +#: common/models.py:2438 +msgid "Excluded inactive parts from search preview window" msgstr "" #: common/models.py:2443 -msgid "Display return orders in search preview window" +msgid "Search Categories" msgstr "" -#: common/models.py:2448 -msgid "Exclude Inactive Return Orders" +#: common/models.py:2444 +msgid "Display part categories in search preview window" +msgstr "" + +#: common/models.py:2449 +msgid "Search Stock" msgstr "" #: common/models.py:2450 -msgid "Exclude inactive return orders from search preview window" +msgid "Display stock items in search preview window" msgstr "" -#: common/models.py:2456 -msgid "Search Preview Results" +#: common/models.py:2455 +msgid "Hide Unavailable Stock Items" msgstr "" -#: common/models.py:2458 -msgid "Number of results to show in each section of the search preview window" +#: common/models.py:2457 +msgid "Exclude stock items which are not available from the search preview window" +msgstr "" + +#: common/models.py:2463 +msgid "Search Locations" msgstr "" #: common/models.py:2464 -msgid "Regex Search" +msgid "Display stock locations in search preview window" msgstr "" -#: common/models.py:2465 -msgid "Enable regular expressions in search queries" +#: common/models.py:2469 +msgid "Search Companies" msgstr "" #: common/models.py:2470 -msgid "Whole Word Search" +msgid "Display companies in search preview window" msgstr "" -#: common/models.py:2471 -msgid "Search queries return results for whole word matches" +#: common/models.py:2475 +msgid "Search Build Orders" msgstr "" #: common/models.py:2476 -msgid "Show Quantity in Forms" +msgid "Display build orders in search preview window" msgstr "" -#: common/models.py:2477 -msgid "Display available part quantity in some forms" +#: common/models.py:2481 +msgid "Search Purchase Orders" msgstr "" #: common/models.py:2482 -msgid "Escape Key Closes Forms" +msgid "Display purchase orders in search preview window" msgstr "" -#: common/models.py:2483 -msgid "Use the escape key to close modal forms" -msgstr "" - -#: common/models.py:2488 -msgid "Fixed Navbar" +#: common/models.py:2487 +msgid "Exclude Inactive Purchase Orders" msgstr "" #: common/models.py:2489 -msgid "The navbar position is fixed to the top of the screen" -msgstr "" - -#: common/models.py:2494 -msgid "Date Format" +msgid "Exclude inactive purchase orders from search preview window" msgstr "" #: common/models.py:2495 -msgid "Preferred format for displaying dates" +msgid "Search Sales Orders" msgstr "" -#: common/models.py:2508 part/templates/part/detail.html:41 -msgid "Part Scheduling" +#: common/models.py:2496 +msgid "Display sales orders in search preview window" +msgstr "" + +#: common/models.py:2501 +msgid "Exclude Inactive Sales Orders" +msgstr "" + +#: common/models.py:2503 +msgid "Exclude inactive sales orders from search preview window" msgstr "" #: common/models.py:2509 -msgid "Display part scheduling information" +msgid "Search Return Orders" msgstr "" -#: common/models.py:2514 part/templates/part/detail.html:62 -msgid "Part Stocktake" +#: common/models.py:2510 +msgid "Display return orders in search preview window" msgstr "" -#: common/models.py:2516 -msgid "Display part stocktake information (if stocktake functionality is enabled)" +#: common/models.py:2515 +msgid "Exclude Inactive Return Orders" msgstr "" -#: common/models.py:2522 -msgid "Table String Length" +#: common/models.py:2517 +msgid "Exclude inactive return orders from search preview window" msgstr "" -#: common/models.py:2524 -msgid "Maximum length limit for strings displayed in table views" +#: common/models.py:2523 +msgid "Search Preview Results" msgstr "" -#: common/models.py:2530 -msgid "Receive error reports" +#: common/models.py:2525 +msgid "Number of results to show in each section of the search preview window" msgstr "" #: common/models.py:2531 -msgid "Receive notifications for system errors" +msgid "Regex Search" msgstr "" -#: common/models.py:2536 -msgid "Last used printing machines" +#: common/models.py:2532 +msgid "Enable regular expressions in search queries" msgstr "" #: common/models.py:2537 +msgid "Whole Word Search" +msgstr "" + +#: common/models.py:2538 +msgid "Search queries return results for whole word matches" +msgstr "" + +#: common/models.py:2543 +msgid "Show Quantity in Forms" +msgstr "" + +#: common/models.py:2544 +msgid "Display available part quantity in some forms" +msgstr "" + +#: common/models.py:2549 +msgid "Escape Key Closes Forms" +msgstr "" + +#: common/models.py:2550 +msgid "Use the escape key to close modal forms" +msgstr "" + +#: common/models.py:2555 +msgid "Fixed Navbar" +msgstr "" + +#: common/models.py:2556 +msgid "The navbar position is fixed to the top of the screen" +msgstr "" + +#: common/models.py:2561 +msgid "Date Format" +msgstr "" + +#: common/models.py:2562 +msgid "Preferred format for displaying dates" +msgstr "" + +#: common/models.py:2575 part/templates/part/detail.html:41 +msgid "Part Scheduling" +msgstr "" + +#: common/models.py:2576 +msgid "Display part scheduling information" +msgstr "" + +#: common/models.py:2581 part/templates/part/detail.html:62 +msgid "Part Stocktake" +msgstr "" + +#: common/models.py:2583 +msgid "Display part stocktake information (if stocktake functionality is enabled)" +msgstr "" + +#: common/models.py:2589 +msgid "Table String Length" +msgstr "" + +#: common/models.py:2591 +msgid "Maximum length limit for strings displayed in table views" +msgstr "" + +#: common/models.py:2597 +msgid "Receive error reports" +msgstr "" + +#: common/models.py:2598 +msgid "Receive notifications for system errors" +msgstr "" + +#: common/models.py:2603 +msgid "Last used printing machines" +msgstr "" + +#: common/models.py:2604 msgid "Save the last used printing machines for a user" msgstr "" -#: common/models.py:2557 common/models.py:2558 common/models.py:2715 -#: common/models.py:2716 common/models.py:2961 common/models.py:2962 -#: common/models.py:3288 common/models.py:3289 importer/models.py:88 -#: part/models.py:3307 part/models.py:3394 part/models.py:3468 -#: part/models.py:3496 plugin/models.py:274 plugin/models.py:275 -#: report/templates/report/inventree_test_report.html:105 -#: templates/js/translated/stock.js:3120 users/models.py:111 +#: common/models.py:2621 common/models.py:2622 common/models.py:2779 +#: common/models.py:2780 common/models.py:3025 common/models.py:3026 +#: common/models.py:3349 common/models.py:3350 common/models.py:3534 +#: importer/models.py:89 part/models.py:3358 part/models.py:3445 +#: part/models.py:3519 part/models.py:3547 plugin/models.py:313 +#: plugin/models.py:314 report/templates/report/inventree_test_report.html:105 +#: templates/js/translated/stock.js:3121 users/models.py:111 msgid "User" msgstr "" -#: common/models.py:2580 +#: common/models.py:2644 msgid "Price break quantity" msgstr "" -#: common/models.py:2587 company/serializers.py:513 order/admin.py:42 -#: order/models.py:1430 order/models.py:2417 -#: templates/js/translated/company.js:1823 templates/js/translated/part.js:1892 +#: common/models.py:2651 company/serializers.py:524 order/admin.py:42 +#: order/models.py:1447 order/models.py:2456 +#: templates/js/translated/company.js:1824 templates/js/translated/part.js:1892 #: templates/js/translated/pricing.js:621 #: templates/js/translated/return_order.js:739 msgid "Price" msgstr "" -#: common/models.py:2588 +#: common/models.py:2652 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:2692 common/models.py:2877 +#: common/models.py:2756 common/models.py:2941 msgid "Endpoint" msgstr "" -#: common/models.py:2693 +#: common/models.py:2757 msgid "Endpoint at which this webhook is received" msgstr "" -#: common/models.py:2703 +#: common/models.py:2767 msgid "Name for this webhook" msgstr "" -#: common/models.py:2707 +#: common/models.py:2771 msgid "Is this webhook active" msgstr "" -#: common/models.py:2723 users/models.py:159 +#: common/models.py:2787 users/models.py:159 msgid "Token" msgstr "" -#: common/models.py:2724 +#: common/models.py:2788 msgid "Token for access" msgstr "" -#: common/models.py:2732 +#: common/models.py:2796 msgid "Secret" msgstr "" -#: common/models.py:2733 +#: common/models.py:2797 msgid "Shared secret for HMAC" msgstr "" -#: common/models.py:2841 +#: common/models.py:2905 msgid "Message ID" msgstr "" -#: common/models.py:2842 +#: common/models.py:2906 msgid "Unique identifier for this message" msgstr "" -#: common/models.py:2850 +#: common/models.py:2914 msgid "Host" msgstr "" -#: common/models.py:2851 +#: common/models.py:2915 msgid "Host from which this message was received" msgstr "" -#: common/models.py:2859 +#: common/models.py:2923 msgid "Header" msgstr "" -#: common/models.py:2860 +#: common/models.py:2924 msgid "Header of this message" msgstr "" -#: common/models.py:2867 +#: common/models.py:2931 msgid "Body" msgstr "" -#: common/models.py:2868 +#: common/models.py:2932 msgid "Body of this message" msgstr "" -#: common/models.py:2878 +#: common/models.py:2942 msgid "Endpoint on which this message was received" msgstr "" -#: common/models.py:2883 +#: common/models.py:2947 msgid "Worked on" msgstr "" -#: common/models.py:2884 +#: common/models.py:2948 msgid "Was the work on this message finished?" msgstr "" -#: common/models.py:3010 +#: common/models.py:3074 msgid "Id" msgstr "" -#: common/models.py:3012 templates/js/translated/company.js:965 -#: templates/js/translated/news.js:44 +#: common/models.py:3076 part/serializers.py:271 +#: templates/js/translated/company.js:966 templates/js/translated/news.js:44 msgid "Title" msgstr "" -#: common/models.py:3014 common/models.py:3272 company/models.py:149 -#: company/models.py:446 company/models.py:512 company/models.py:818 -#: order/models.py:302 order/models.py:1385 order/models.py:1817 -#: part/admin.py:55 part/models.py:1057 +#: common/models.py:3078 common/models.py:3333 company/models.py:146 +#: company/models.py:443 company/models.py:509 company/models.py:815 +#: order/models.py:309 order/models.py:1402 order/models.py:1846 +#: part/admin.py:55 part/models.py:1118 #: part/templates/part/part_scheduling.html:11 #: report/templates/report/inventree_build_order_report.html:164 -#: stock/admin.py:229 templates/js/translated/company.js:1319 -#: templates/js/translated/company.js:1673 templates/js/translated/order.js:376 +#: stock/admin.py:230 templates/js/translated/company.js:1320 +#: templates/js/translated/company.js:1674 templates/js/translated/order.js:376 #: templates/js/translated/part.js:2475 -#: templates/js/translated/purchase_order.js:2110 -#: templates/js/translated/purchase_order.js:2274 +#: templates/js/translated/purchase_order.js:2094 +#: templates/js/translated/purchase_order.js:2258 #: templates/js/translated/return_order.js:778 -#: templates/js/translated/sales_order.js:1092 -#: templates/js/translated/sales_order.js:2023 +#: templates/js/translated/sales_order.js:1058 +#: templates/js/translated/sales_order.js:2004 msgid "Link" msgstr "" -#: common/models.py:3016 templates/js/translated/news.js:60 +#: common/models.py:3080 templates/js/translated/news.js:60 msgid "Published" msgstr "" -#: common/models.py:3018 templates/InvenTree/settings/plugin_settings.html:32 +#: common/models.py:3082 templates/InvenTree/settings/plugin_settings.html:32 #: templates/js/translated/news.js:56 templates/js/translated/plugin.js:103 msgid "Author" msgstr "" -#: common/models.py:3020 templates/js/translated/news.js:52 +#: common/models.py:3084 templates/js/translated/news.js:52 msgid "Summary" msgstr "" -#: common/models.py:3023 +#: common/models.py:3087 msgid "Read" msgstr "" -#: common/models.py:3023 +#: common/models.py:3087 msgid "Was this news item read?" msgstr "" -#: common/models.py:3040 company/models.py:159 part/models.py:1067 +#: common/models.py:3104 company/models.py:156 part/models.py:1128 #: report/templates/report/inventree_bill_of_materials_report.html:126 #: report/templates/report/inventree_bill_of_materials_report.html:148 #: report/templates/report/inventree_return_order_report.html:35 -#: stock/templates/stock/item_base.html:133 templates/503.html:31 +#: stock/templates/stock/item_base.html:130 templates/503.html:31 #: templates/hover_image.html:7 templates/hover_image.html:9 #: templates/modals.html:6 msgid "Image" msgstr "" -#: common/models.py:3040 +#: common/models.py:3104 msgid "Image file" msgstr "" -#: common/models.py:3052 common/models.py:3256 +#: common/models.py:3116 common/models.py:3317 msgid "Target model type for this image" msgstr "" -#: common/models.py:3056 +#: common/models.py:3120 msgid "Target model ID for this image" msgstr "" -#: common/models.py:3078 +#: common/models.py:3142 msgid "Custom Unit" msgstr "" -#: common/models.py:3099 +#: common/models.py:3160 msgid "Unit symbol must be unique" msgstr "" -#: common/models.py:3114 +#: common/models.py:3175 msgid "Unit name must be a valid identifier" msgstr "" -#: common/models.py:3133 +#: common/models.py:3194 msgid "Unit name" msgstr "" -#: common/models.py:3140 templates/InvenTree/settings/settings_staff_js.html:75 +#: common/models.py:3201 templates/InvenTree/settings/settings_staff_js.html:75 msgid "Symbol" msgstr "" -#: common/models.py:3141 +#: common/models.py:3202 msgid "Optional unit symbol" msgstr "" -#: common/models.py:3147 templates/InvenTree/settings/settings_staff_js.html:71 +#: common/models.py:3208 templates/InvenTree/settings/settings_staff_js.html:71 msgid "Definition" msgstr "" -#: common/models.py:3148 +#: common/models.py:3209 msgid "Unit definition" msgstr "" -#: common/models.py:3206 common/models.py:3263 stock/models.py:2558 -#: templates/js/translated/attachment.js:119 +#: common/models.py:3267 common/models.py:3324 stock/models.py:2674 +#: stock/serializers.py:244 templates/js/translated/attachment.js:119 #: templates/js/translated/attachment.js:345 msgid "Attachment" msgstr "" -#: common/models.py:3218 +#: common/models.py:3279 msgid "Missing file" msgstr "" -#: common/models.py:3219 +#: common/models.py:3280 msgid "Missing external link" msgstr "" -#: common/models.py:3264 +#: common/models.py:3325 msgid "Select file to attach" msgstr "" -#: common/models.py:3279 templates/js/translated/attachment.js:120 +#: common/models.py:3340 templates/js/translated/attachment.js:120 #: templates/js/translated/attachment.js:360 msgid "Comment" msgstr "" -#: common/models.py:3280 +#: common/models.py:3341 msgid "Attachment comment" msgstr "" -#: common/models.py:3296 +#: common/models.py:3357 msgid "Upload date" msgstr "" -#: common/models.py:3297 +#: common/models.py:3358 msgid "Date the file was uploaded" msgstr "" -#: common/models.py:3301 +#: common/models.py:3362 msgid "File size" msgstr "" -#: common/models.py:3301 +#: common/models.py:3362 msgid "File size in bytes" msgstr "" -#: common/models.py:3339 common/serializers.py:562 +#: common/models.py:3400 common/serializers.py:609 msgid "Invalid model type specified for attachment" msgstr "" -#: common/notifications.py:314 +#: common/models.py:3409 plugin/models.py:43 users/models.py:100 +msgid "Key" +msgstr "" + +#: common/models.py:3410 +msgid "Value that will be saved in the models database" +msgstr "" + +#: common/models.py:3413 +msgid "Name of the state" +msgstr "" + +#: common/models.py:3417 part/serializers.py:273 +msgid "Label" +msgstr "" + +#: common/models.py:3418 +msgid "Label that will be displayed in the frontend" +msgstr "" + +#: common/models.py:3424 +msgid "Color" +msgstr "" + +#: common/models.py:3425 +msgid "Color that will be displayed in the frontend" +msgstr "" + +#: common/models.py:3428 +msgid "Logical Key" +msgstr "" + +#: common/models.py:3430 +msgid "State logical key that is equal to this custom state in business logic" +msgstr "" + +#: common/models.py:3438 part/serializers.py:275 +msgid "Model" +msgstr "" + +#: common/models.py:3439 +msgid "Model this state is associated with" +msgstr "" + +#: common/models.py:3443 +msgid "Reference Status Set" +msgstr "" + +#: common/models.py:3444 +msgid "Status set that is extended with this custom state" +msgstr "" + +#: common/models.py:3450 +msgid "Custom State" +msgstr "" + +#: common/models.py:3451 +msgid "Custom States" +msgstr "" + +#: common/models.py:3466 +msgid "Model must be selected" +msgstr "" + +#: common/models.py:3469 +msgid "Key must be selected" +msgstr "" + +#: common/models.py:3472 +msgid "Logical key must be selected" +msgstr "" + +#: common/models.py:3476 +msgid "Key must be different from logical key" +msgstr "" + +#: common/models.py:3480 +msgid "Reference status must be selected" +msgstr "" + +#: common/models.py:3492 +msgid "Reference status set not found" +msgstr "" + +#: common/models.py:3498 +msgid "Key must be different from the logical keys of the reference status" +msgstr "" + +#: common/models.py:3504 +msgid "Logical key must be in the logical keys of the reference status" +msgstr "" + +#: common/models.py:3519 +msgid "Barcode Scan" +msgstr "" + +#: common/models.py:3523 importer/models.py:512 part/models.py:4009 +msgid "Data" +msgstr "" + +#: common/models.py:3524 +msgid "Barcode data" +msgstr "" + +#: common/models.py:3535 +msgid "User who scanned the barcode" +msgstr "" + +#: common/models.py:3540 importer/models.py:60 +msgid "Timestamp" +msgstr "" + +#: common/models.py:3541 +msgid "Date and time of the barcode scan" +msgstr "" + +#: common/models.py:3547 +msgid "URL endpoint which processed the barcode" +msgstr "" + +#: common/models.py:3554 order/models.py:1437 plugin/serializers.py:89 +msgid "Context" +msgstr "" + +#: common/models.py:3555 +msgid "Context data for the barcode scan" +msgstr "" + +#: common/models.py:3562 +msgid "Response" +msgstr "" + +#: common/models.py:3563 +msgid "Response data from the barcode scan" +msgstr "" + +#: common/models.py:3569 report/templates/report/inventree_test_report.html:103 +#: stock/models.py:2660 +msgid "Result" +msgstr "" + +#: common/models.py:3570 +msgid "Was the barcode scan successful?" +msgstr "" + +#: common/notifications.py:328 #, python-brace-format msgid "New {verbose_name}" msgstr "" -#: common/notifications.py:316 +#: common/notifications.py:330 msgid "A new order has been created and assigned to you" msgstr "" -#: common/notifications.py:322 +#: common/notifications.py:336 #, python-brace-format msgid "{verbose_name} canceled" msgstr "" -#: common/notifications.py:324 +#: common/notifications.py:338 msgid "A order that is assigned to you was canceled" msgstr "" -#: common/notifications.py:330 common/notifications.py:337 order/api.py:462 +#: common/notifications.py:344 common/notifications.py:351 order/api.py:440 msgid "Items Received" msgstr "" -#: common/notifications.py:332 +#: common/notifications.py:346 msgid "Items have been received against a purchase order" msgstr "" -#: common/notifications.py:339 +#: common/notifications.py:353 msgid "Items have been received against a return order" msgstr "" -#: common/notifications.py:457 +#: common/notifications.py:475 msgid "Error raised by plugin" msgstr "" -#: common/serializers.py:375 +#: common/serializers.py:423 msgid "Is Running" msgstr "" -#: common/serializers.py:381 +#: common/serializers.py:429 msgid "Pending Tasks" msgstr "" -#: common/serializers.py:387 +#: common/serializers.py:435 msgid "Scheduled Tasks" msgstr "" -#: common/serializers.py:393 +#: common/serializers.py:441 msgid "Failed Tasks" msgstr "" -#: common/serializers.py:408 +#: common/serializers.py:456 msgid "Task ID" msgstr "" -#: common/serializers.py:408 +#: common/serializers.py:456 msgid "Unique task ID" msgstr "" -#: common/serializers.py:410 +#: common/serializers.py:458 msgid "Lock" msgstr "" -#: common/serializers.py:410 +#: common/serializers.py:458 msgid "Lock time" msgstr "" -#: common/serializers.py:412 +#: common/serializers.py:460 msgid "Task name" msgstr "" -#: common/serializers.py:414 +#: common/serializers.py:462 msgid "Function" msgstr "" -#: common/serializers.py:414 +#: common/serializers.py:462 msgid "Function name" msgstr "" -#: common/serializers.py:416 +#: common/serializers.py:464 msgid "Arguments" msgstr "" -#: common/serializers.py:416 +#: common/serializers.py:464 msgid "Task arguments" msgstr "" -#: common/serializers.py:419 +#: common/serializers.py:467 msgid "Keyword Arguments" msgstr "" -#: common/serializers.py:419 +#: common/serializers.py:467 msgid "Task keyword arguments" msgstr "" -#: common/serializers.py:529 +#: common/serializers.py:577 msgid "Filename" msgstr "" -#: common/serializers.py:536 report/api.py:100 report/serializers.py:53 +#: common/serializers.py:584 report/api.py:100 report/serializers.py:54 msgid "Model Type" msgstr "" -#: common/serializers.py:565 +#: common/serializers.py:612 msgid "User does not have permission to create or edit attachments for this model" msgstr "" @@ -4116,15 +4295,15 @@ msgstr "" msgid "Match Items" msgstr "" -#: common/views.py:401 +#: common/views.py:397 msgid "Fields matching failed" msgstr "" -#: common/views.py:464 +#: common/views.py:460 msgid "Parts imported" msgstr "" -#: common/views.py:494 order/templates/order/order_wizard/match_fields.html:27 +#: common/views.py:490 order/templates/order/order_wizard/match_fields.html:27 #: order/templates/order/order_wizard/match_parts.html:19 #: order/templates/order/order_wizard/po_upload.html:49 #: part/templates/part/import_wizard/match_fields.html:27 @@ -4155,429 +4334,429 @@ msgstr "" msgid "Supplier is Active" msgstr "" -#: company/models.py:100 company/models.py:371 +#: company/models.py:97 company/models.py:368 #: company/templates/company/company_base.html:8 #: company/templates/company/company_base.html:12 stock/api.py:812 -#: templates/InvenTree/search.html:178 templates/js/translated/company.js:496 +#: templates/InvenTree/search.html:178 templates/js/translated/company.js:497 msgid "Company" msgstr "" -#: company/models.py:101 company/views.py:51 +#: company/models.py:98 company/views.py:51 #: templates/js/translated/search.js:192 msgid "Companies" msgstr "" -#: company/models.py:117 +#: company/models.py:114 msgid "Company description" msgstr "" -#: company/models.py:118 +#: company/models.py:115 msgid "Description of the company" msgstr "" -#: company/models.py:123 company/templates/company/company_base.html:106 +#: company/models.py:120 company/templates/company/company_base.html:106 #: templates/InvenTree/settings/plugin_settings.html:54 -#: templates/js/translated/company.js:532 +#: templates/js/translated/company.js:533 msgid "Website" msgstr "" -#: company/models.py:123 +#: company/models.py:120 msgid "Company website URL" msgstr "" -#: company/models.py:128 +#: company/models.py:125 msgid "Phone number" msgstr "" -#: company/models.py:130 +#: company/models.py:127 msgid "Contact phone number" msgstr "" -#: company/models.py:137 +#: company/models.py:134 msgid "Contact email address" msgstr "" -#: company/models.py:142 company/models.py:275 -#: company/templates/company/company_base.html:145 order/models.py:342 -#: order/templates/order/order_base.html:208 -#: order/templates/order/return_order_base.html:177 -#: order/templates/order/sales_order_base.html:221 +#: company/models.py:139 company/models.py:272 +#: company/templates/company/company_base.html:145 order/models.py:349 +#: order/templates/order/order_base.html:217 +#: order/templates/order/return_order_base.html:178 +#: order/templates/order/sales_order_base.html:222 msgid "Contact" msgstr "" -#: company/models.py:144 +#: company/models.py:141 msgid "Point of contact" msgstr "" -#: company/models.py:150 +#: company/models.py:147 msgid "Link to external company information" msgstr "" -#: company/models.py:163 +#: company/models.py:160 msgid "Is this company active?" msgstr "" -#: company/models.py:168 +#: company/models.py:165 msgid "Is customer" msgstr "" -#: company/models.py:169 +#: company/models.py:166 msgid "Do you sell items to this company?" msgstr "" -#: company/models.py:174 +#: company/models.py:171 msgid "Is supplier" msgstr "" -#: company/models.py:175 +#: company/models.py:172 msgid "Do you purchase items from this company?" msgstr "" -#: company/models.py:180 +#: company/models.py:177 msgid "Is manufacturer" msgstr "" -#: company/models.py:181 +#: company/models.py:178 msgid "Does this company manufacture parts?" msgstr "" -#: company/models.py:189 +#: company/models.py:186 msgid "Default currency used for this company" msgstr "" -#: company/models.py:314 company/templates/company/company_base.html:124 -#: order/models.py:352 order/templates/order/order_base.html:215 -#: order/templates/order/return_order_base.html:184 -#: order/templates/order/sales_order_base.html:228 +#: company/models.py:311 company/templates/company/company_base.html:124 +#: order/models.py:359 order/templates/order/order_base.html:224 +#: order/templates/order/return_order_base.html:185 +#: order/templates/order/sales_order_base.html:229 msgid "Address" msgstr "" -#: company/models.py:315 company/templates/company/sidebar.html:35 +#: company/models.py:312 company/templates/company/sidebar.html:35 msgid "Addresses" msgstr "" -#: company/models.py:372 +#: company/models.py:369 msgid "Select company" msgstr "" -#: company/models.py:377 +#: company/models.py:374 msgid "Address title" msgstr "" -#: company/models.py:378 +#: company/models.py:375 msgid "Title describing the address entry" msgstr "" -#: company/models.py:384 +#: company/models.py:381 msgid "Primary address" msgstr "" -#: company/models.py:385 +#: company/models.py:382 msgid "Set as primary address" msgstr "" -#: company/models.py:390 templates/js/translated/company.js:914 -#: templates/js/translated/company.js:971 +#: company/models.py:387 templates/js/translated/company.js:915 +#: templates/js/translated/company.js:972 msgid "Line 1" msgstr "" -#: company/models.py:391 +#: company/models.py:388 msgid "Address line 1" msgstr "" -#: company/models.py:397 templates/js/translated/company.js:915 -#: templates/js/translated/company.js:977 +#: company/models.py:394 templates/js/translated/company.js:916 +#: templates/js/translated/company.js:978 msgid "Line 2" msgstr "" -#: company/models.py:398 +#: company/models.py:395 msgid "Address line 2" msgstr "" -#: company/models.py:404 company/models.py:405 -#: templates/js/translated/company.js:983 +#: company/models.py:401 company/models.py:402 +#: templates/js/translated/company.js:984 msgid "Postal code" msgstr "" -#: company/models.py:411 +#: company/models.py:408 msgid "City/Region" msgstr "" -#: company/models.py:412 +#: company/models.py:409 msgid "Postal code city/region" msgstr "" -#: company/models.py:418 +#: company/models.py:415 msgid "State/Province" msgstr "" -#: company/models.py:419 +#: company/models.py:416 msgid "State or province" msgstr "" -#: company/models.py:425 templates/js/translated/company.js:1001 +#: company/models.py:422 templates/js/translated/company.js:1002 msgid "Country" msgstr "" -#: company/models.py:426 +#: company/models.py:423 msgid "Address country" msgstr "" -#: company/models.py:432 +#: company/models.py:429 msgid "Courier shipping notes" msgstr "" -#: company/models.py:433 +#: company/models.py:430 msgid "Notes for shipping courier" msgstr "" -#: company/models.py:439 +#: company/models.py:436 msgid "Internal shipping notes" msgstr "" -#: company/models.py:440 +#: company/models.py:437 msgid "Shipping notes for internal use" msgstr "" -#: company/models.py:447 +#: company/models.py:444 msgid "Link to address information (external)" msgstr "" -#: company/models.py:470 company/models.py:587 company/models.py:811 +#: company/models.py:467 company/models.py:584 company/models.py:808 #: company/templates/company/manufacturer_part.html:7 #: company/templates/company/manufacturer_part.html:24 -#: stock/templates/stock/item_base.html:217 +#: stock/templates/stock/item_base.html:214 msgid "Manufacturer Part" msgstr "" -#: company/models.py:487 company/models.py:779 stock/models.py:787 -#: stock/serializers.py:445 stock/templates/stock/item_base.html:142 +#: company/models.py:484 company/models.py:776 stock/models.py:864 +#: stock/serializers.py:455 stock/templates/stock/item_base.html:139 #: templates/js/translated/bom.js:622 msgid "Base Part" msgstr "" -#: company/models.py:489 company/models.py:781 +#: company/models.py:486 company/models.py:778 msgid "Select part" msgstr "" -#: company/models.py:498 company/templates/company/company_base.html:82 +#: company/models.py:495 company/templates/company/company_base.html:82 #: company/templates/company/manufacturer_part.html:90 -#: company/templates/company/supplier_part.html:145 part/serializers.py:554 -#: stock/templates/stock/item_base.html:207 -#: templates/js/translated/company.js:507 -#: templates/js/translated/company.js:1118 -#: templates/js/translated/company.js:1296 -#: templates/js/translated/company.js:1611 +#: company/templates/company/supplier_part.html:146 part/serializers.py:598 +#: stock/templates/stock/item_base.html:204 +#: templates/js/translated/company.js:508 +#: templates/js/translated/company.js:1119 +#: templates/js/translated/company.js:1297 +#: templates/js/translated/company.js:1612 #: templates/js/translated/table_filters.js:812 msgid "Manufacturer" msgstr "" -#: company/models.py:499 +#: company/models.py:496 msgid "Select manufacturer" msgstr "" -#: company/models.py:505 company/templates/company/manufacturer_part.html:101 -#: company/templates/company/supplier_part.html:153 order/serializers.py:556 -#: part/serializers.py:564 templates/js/translated/company.js:351 -#: templates/js/translated/company.js:1117 -#: templates/js/translated/company.js:1312 -#: templates/js/translated/company.js:1630 templates/js/translated/part.js:1807 -#: templates/js/translated/purchase_order.js:1921 -#: templates/js/translated/purchase_order.js:2123 +#: company/models.py:502 company/templates/company/manufacturer_part.html:101 +#: company/templates/company/supplier_part.html:154 order/serializers.py:641 +#: part/serializers.py:608 templates/js/translated/company.js:352 +#: templates/js/translated/company.js:1118 +#: templates/js/translated/company.js:1313 +#: templates/js/translated/company.js:1631 templates/js/translated/part.js:1807 +#: templates/js/translated/purchase_order.js:1905 +#: templates/js/translated/purchase_order.js:2107 msgid "MPN" msgstr "" -#: company/models.py:513 +#: company/models.py:510 msgid "URL for external manufacturer part link" msgstr "" -#: company/models.py:522 +#: company/models.py:519 msgid "Manufacturer part description" msgstr "" -#: company/models.py:575 +#: company/models.py:572 msgid "Manufacturer Part Parameter" msgstr "" -#: company/models.py:594 +#: company/models.py:591 msgid "Parameter name" msgstr "" -#: company/models.py:600 report/templates/report/inventree_test_report.html:104 -#: stock/models.py:2550 templates/js/translated/company.js:1166 -#: templates/js/translated/company.js:1419 templates/js/translated/part.js:1499 +#: company/models.py:597 report/templates/report/inventree_test_report.html:104 +#: stock/models.py:2666 templates/js/translated/company.js:1167 +#: templates/js/translated/company.js:1420 templates/js/translated/part.js:1499 #: templates/js/translated/stock.js:1607 msgid "Value" msgstr "" -#: company/models.py:601 +#: company/models.py:598 msgid "Parameter value" msgstr "" -#: company/models.py:608 company/templates/company/supplier_part.html:168 -#: part/admin.py:57 part/models.py:1147 part/models.py:3771 -#: part/templates/part/part_base.html:293 -#: templates/js/translated/company.js:1425 templates/js/translated/part.js:1518 +#: company/models.py:605 company/templates/company/supplier_part.html:169 +#: part/admin.py:57 part/models.py:1208 part/models.py:3822 +#: part/templates/part/part_base.html:301 +#: templates/js/translated/company.js:1426 templates/js/translated/part.js:1518 #: templates/js/translated/part.js:1622 templates/js/translated/part.js:2376 msgid "Units" msgstr "" -#: company/models.py:609 +#: company/models.py:606 msgid "Parameter units" msgstr "" -#: company/models.py:662 company/templates/company/supplier_part.html:7 -#: company/templates/company/supplier_part.html:24 order/api.py:442 -#: order/serializers.py:491 stock/models.py:798 -#: stock/templates/stock/item_base.html:233 -#: templates/js/translated/build.js:1052 -#: templates/js/translated/company.js:1600 -#: templates/js/translated/purchase_order.js:752 -#: templates/js/translated/stock.js:2365 +#: company/models.py:659 company/templates/company/supplier_part.html:8 +#: company/templates/company/supplier_part.html:25 order/api.py:392 +#: order/serializers.py:576 stock/models.py:875 +#: stock/templates/stock/item_base.html:230 +#: templates/js/translated/build.js:1055 +#: templates/js/translated/company.js:1601 +#: templates/js/translated/purchase_order.js:735 +#: templates/js/translated/stock.js:2366 msgid "Supplier Part" msgstr "" -#: company/models.py:719 +#: company/models.py:716 msgid "Pack units must be compatible with the base part units" msgstr "" -#: company/models.py:726 +#: company/models.py:723 msgid "Pack units must be greater than zero" msgstr "" -#: company/models.py:740 +#: company/models.py:737 msgid "Linked manufacturer part must reference the same base part" msgstr "" -#: company/models.py:789 company/templates/company/company_base.html:87 -#: company/templates/company/supplier_part.html:129 order/models.py:491 -#: order/templates/order/order_base.html:141 part/bom.py:280 part/bom.py:318 -#: part/serializers.py:538 plugin/builtin/suppliers/digikey.py:25 +#: company/models.py:786 company/templates/company/company_base.html:87 +#: company/templates/company/supplier_part.html:130 order/models.py:503 +#: order/templates/order/order_base.html:150 part/bom.py:279 part/bom.py:314 +#: part/serializers.py:582 plugin/builtin/suppliers/digikey.py:25 #: plugin/builtin/suppliers/lcsc.py:26 plugin/builtin/suppliers/mouser.py:24 -#: plugin/builtin/suppliers/tme.py:26 stock/templates/stock/item_base.html:224 +#: plugin/builtin/suppliers/tme.py:26 stock/templates/stock/item_base.html:221 #: templates/email/overdue_purchase_order.html:16 -#: templates/js/translated/company.js:350 -#: templates/js/translated/company.js:511 -#: templates/js/translated/company.js:1584 templates/js/translated/part.js:1775 +#: templates/js/translated/company.js:351 +#: templates/js/translated/company.js:512 +#: templates/js/translated/company.js:1585 templates/js/translated/part.js:1775 #: templates/js/translated/pricing.js:498 -#: templates/js/translated/purchase_order.js:1759 +#: templates/js/translated/purchase_order.js:1743 #: templates/js/translated/table_filters.js:816 msgid "Supplier" msgstr "" -#: company/models.py:790 +#: company/models.py:787 msgid "Select supplier" msgstr "" -#: company/models.py:796 part/serializers.py:549 +#: company/models.py:793 part/serializers.py:593 msgid "Supplier stock keeping unit" msgstr "" -#: company/models.py:802 +#: company/models.py:799 msgid "Is this supplier part active?" msgstr "" -#: company/models.py:812 +#: company/models.py:809 msgid "Select manufacturer part" msgstr "" -#: company/models.py:819 +#: company/models.py:816 msgid "URL for external supplier part link" msgstr "" -#: company/models.py:828 +#: company/models.py:825 msgid "Supplier part description" msgstr "" -#: company/models.py:835 company/templates/company/supplier_part.html:187 -#: order/serializers.py:698 part/admin.py:415 part/models.py:4288 +#: company/models.py:832 company/templates/company/supplier_part.html:188 +#: order/serializers.py:783 part/admin.py:415 part/models.py:4345 #: part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_bill_of_materials_report.html:140 #: report/templates/report/inventree_purchase_order_report.html:32 #: report/templates/report/inventree_return_order_report.html:27 #: report/templates/report/inventree_sales_order_report.html:32 #: report/templates/report/inventree_stock_location_report.html:105 -#: stock/serializers.py:776 templates/js/translated/purchase_order.js:1185 -#: templates/js/translated/purchase_order.js:1344 +#: stock/serializers.py:807 templates/js/translated/purchase_order.js:1168 +#: templates/js/translated/purchase_order.js:1327 msgid "Note" msgstr "" -#: company/models.py:844 part/models.py:2117 +#: company/models.py:841 part/models.py:2177 msgid "base cost" msgstr "" -#: company/models.py:845 part/models.py:2118 +#: company/models.py:842 part/models.py:2178 msgid "Minimum charge (e.g. stocking fee)" msgstr "" -#: company/models.py:853 +#: company/models.py:850 msgid "Part packaging" msgstr "" -#: company/models.py:858 templates/js/translated/company.js:1651 +#: company/models.py:855 templates/js/translated/company.js:1652 #: templates/js/translated/part.js:1828 templates/js/translated/part.js:1884 -#: templates/js/translated/purchase_order.js:311 -#: templates/js/translated/purchase_order.js:841 -#: templates/js/translated/purchase_order.js:1103 -#: templates/js/translated/purchase_order.js:2154 -#: templates/js/translated/purchase_order.js:2171 +#: templates/js/translated/purchase_order.js:294 +#: templates/js/translated/purchase_order.js:824 +#: templates/js/translated/purchase_order.js:1086 +#: templates/js/translated/purchase_order.js:2138 +#: templates/js/translated/purchase_order.js:2155 msgid "Pack Quantity" msgstr "" -#: company/models.py:860 +#: company/models.py:857 msgid "Total quantity supplied in a single pack. Leave empty for single items." msgstr "" -#: company/models.py:879 part/models.py:2124 +#: company/models.py:876 part/models.py:2184 msgid "multiple" msgstr "" -#: company/models.py:880 +#: company/models.py:877 msgid "Order multiple" msgstr "" -#: company/models.py:892 +#: company/models.py:889 msgid "Quantity available from supplier" msgstr "" -#: company/models.py:898 +#: company/models.py:895 msgid "Availability Updated" msgstr "" -#: company/models.py:899 +#: company/models.py:896 msgid "Date of last update of availability data" msgstr "" -#: company/models.py:1027 +#: company/models.py:1024 msgid "Supplier Price Break" msgstr "" -#: company/serializers.py:174 +#: company/serializers.py:178 msgid "Default currency used for this supplier" msgstr "" -#: company/serializers.py:210 +#: company/serializers.py:214 msgid "Company Name" msgstr "" -#: company/serializers.py:393 part/admin.py:126 part/serializers.py:898 -#: part/templates/part/part_base.html:197 -#: templates/js/translated/company.js:1689 +#: company/serializers.py:397 part/admin.py:126 part/serializers.py:950 +#: part/templates/part/part_base.html:198 stock/serializers.py:474 +#: templates/js/translated/company.js:1690 #: templates/js/translated/table_filters.js:362 msgid "In Stock" msgstr "" #: company/templates/company/company_base.html:16 -#: part/templates/part/part_base.html:146 -#: templates/js/translated/company.js:1287 -#: templates/js/translated/company.js:1575 -#: templates/js/translated/model_renderers.js:313 +#: part/templates/part/part_base.html:147 +#: templates/js/translated/company.js:1288 +#: templates/js/translated/company.js:1576 +#: templates/js/translated/model_renderers.js:316 #: templates/js/translated/part.js:817 templates/js/translated/part.js:1225 msgid "Inactive" msgstr "" #: company/templates/company/company_base.html:27 -#: templates/js/translated/purchase_order.js:242 +#: templates/js/translated/purchase_order.js:224 msgid "Create Purchase Order" msgstr "" @@ -4590,7 +4769,7 @@ msgid "Edit company information" msgstr "" #: company/templates/company/company_base.html:39 -#: templates/js/translated/company.js:445 +#: templates/js/translated/company.js:446 msgid "Edit Company" msgstr "" @@ -4605,11 +4784,12 @@ msgstr "" #: company/templates/company/company_base.html:53 #: company/templates/company/manufacturer_part.html:51 -#: company/templates/company/supplier_part.html:83 +#: company/templates/company/supplier_part.html:84 #: part/templates/part/part_thumb.html:20 #: report/templates/report/inventree_build_order_report.html:98 #: report/templates/report/inventree_purchase_order_report.html:40 #: report/templates/report/inventree_sales_order_report.html:40 +#: report/templates/report/inventree_sales_order_shipment_report.html:37 #: report/templates/report/inventree_test_report.html:84 #: report/templates/report/inventree_test_report.html:162 msgid "Part image" @@ -4630,16 +4810,16 @@ msgstr "" msgid "Delete image" msgstr "" -#: company/templates/company/company_base.html:92 order/models.py:990 -#: order/models.py:2147 order/templates/order/return_order_base.html:134 -#: order/templates/order/sales_order_base.html:151 stock/models.py:840 -#: stock/models.py:841 stock/serializers.py:1329 -#: stock/templates/stock/item_base.html:405 +#: company/templates/company/company_base.html:92 order/models.py:1017 +#: order/models.py:2186 order/templates/order/return_order_base.html:135 +#: order/templates/order/sales_order_base.html:152 stock/models.py:917 +#: stock/models.py:918 stock/serializers.py:1360 +#: stock/templates/stock/item_base.html:402 #: templates/email/overdue_sales_order.html:16 -#: templates/js/translated/company.js:503 +#: templates/js/translated/company.js:504 #: templates/js/translated/return_order.js:295 -#: templates/js/translated/sales_order.js:820 -#: templates/js/translated/stock.js:3043 +#: templates/js/translated/sales_order.js:779 +#: templates/js/translated/stock.js:3044 #: templates/js/translated/table_filters.js:820 msgid "Customer" msgstr "" @@ -4653,7 +4833,7 @@ msgid "Phone" msgstr "" #: company/templates/company/company_base.html:211 -#: part/templates/part/part_base.html:536 +#: part/templates/part/part_base.html:544 msgid "Remove Image" msgstr "" @@ -4662,19 +4842,19 @@ msgid "Remove associated image from this company" msgstr "" #: company/templates/company/company_base.html:214 -#: part/templates/part/part_base.html:539 +#: part/templates/part/part_base.html:547 #: templates/InvenTree/settings/user.html:88 #: templates/InvenTree/settings/user_sso.html:43 msgid "Remove" msgstr "" #: company/templates/company/company_base.html:243 -#: part/templates/part/part_base.html:568 +#: part/templates/part/part_base.html:576 msgid "Upload Image" msgstr "" #: company/templates/company/company_base.html:258 -#: part/templates/part/part_base.html:622 +#: part/templates/part/part_base.html:630 msgid "Download Image" msgstr "" @@ -4714,7 +4894,7 @@ msgstr "" #: company/templates/company/detail.html:75 #: company/templates/company/sidebar.html:12 #: company/templates/company/supplier_part_sidebar.html:7 -#: order/templates/order/order_base.html:13 +#: order/templates/order/order_base.html:14 #: order/templates/order/purchase_orders.html:8 #: order/templates/order/purchase_orders.html:12 #: part/templates/part/detail.html:122 part/templates/part/part_sidebar.html:35 @@ -4737,7 +4917,7 @@ msgstr "" #: company/templates/company/detail.html:101 #: company/templates/company/sidebar.html:21 -#: order/templates/order/sales_order_base.html:13 +#: order/templates/order/sales_order_base.html:14 #: order/templates/order/sales_orders.html:8 #: order/templates/order/sales_orders.html:15 #: part/templates/part/detail.html:143 part/templates/part/part_sidebar.html:39 @@ -4764,7 +4944,7 @@ msgstr "" #: company/templates/company/detail.html:142 #: company/templates/company/sidebar.html:29 -#: order/templates/order/return_order_base.html:13 +#: order/templates/order/return_order_base.html:14 #: order/templates/order/return_orders.html:8 #: order/templates/order/return_orders.html:15 #: templates/InvenTree/settings/sidebar.html:61 @@ -4811,24 +4991,24 @@ msgid "Manufacturers" msgstr "" #: company/templates/company/manufacturer_part.html:35 -#: company/templates/company/supplier_part.html:227 -#: part/templates/part/detail.html:125 part/templates/part/part_base.html:83 +#: company/templates/company/supplier_part.html:228 +#: part/templates/part/detail.html:125 part/templates/part/part_base.html:84 msgid "Order part" msgstr "" #: company/templates/company/manufacturer_part.html:39 -#: templates/js/translated/company.js:1343 +#: templates/js/translated/company.js:1344 msgid "Edit manufacturer part" msgstr "" #: company/templates/company/manufacturer_part.html:43 -#: templates/js/translated/company.js:1344 +#: templates/js/translated/company.js:1345 msgid "Delete manufacturer part" msgstr "" #: company/templates/company/manufacturer_part.html:65 -#: company/templates/company/supplier_part.html:97 order/api.py:448 -#: order/serializers.py:564 +#: company/templates/company/supplier_part.html:98 order/api.py:411 +#: order/serializers.py:649 msgid "Internal Part" msgstr "" @@ -4837,8 +5017,8 @@ msgid "No manufacturer information available" msgstr "" #: company/templates/company/manufacturer_part.html:119 -#: company/templates/company/supplier_part.html:15 company/views.py:31 -#: part/admin.py:122 part/serializers.py:904 +#: company/templates/company/supplier_part.html:16 company/views.py:31 +#: part/admin.py:122 part/serializers.py:956 #: part/templates/part/part_sidebar.html:33 templates/InvenTree/search.html:190 #: templates/navbar.html:48 msgid "Suppliers" @@ -4887,112 +5067,113 @@ msgstr "" msgid "Contacts" msgstr "" -#: company/templates/company/supplier_part.html:50 -#: templates/js/translated/company.js:1526 +#: company/templates/company/supplier_part.html:51 +#: templates/js/translated/company.js:1527 msgid "Supplier part actions" msgstr "" -#: company/templates/company/supplier_part.html:55 #: company/templates/company/supplier_part.html:56 -#: company/templates/company/supplier_part.html:228 +#: company/templates/company/supplier_part.html:57 +#: company/templates/company/supplier_part.html:229 #: part/templates/part/detail.html:126 msgid "Order Part" msgstr "" -#: company/templates/company/supplier_part.html:60 #: company/templates/company/supplier_part.html:61 +#: company/templates/company/supplier_part.html:62 msgid "Update Availability" msgstr "" -#: company/templates/company/supplier_part.html:63 #: company/templates/company/supplier_part.html:64 -#: templates/js/translated/company.js:294 +#: company/templates/company/supplier_part.html:65 +#: templates/js/translated/company.js:295 msgid "Edit Supplier Part" msgstr "" -#: company/templates/company/supplier_part.html:68 #: company/templates/company/supplier_part.html:69 -#: templates/js/translated/company.js:269 +#: company/templates/company/supplier_part.html:70 +#: templates/js/translated/company.js:270 msgid "Duplicate Supplier Part" msgstr "" -#: company/templates/company/supplier_part.html:73 +#: company/templates/company/supplier_part.html:74 msgid "Delete Supplier Part" msgstr "" -#: company/templates/company/supplier_part.html:74 +#: company/templates/company/supplier_part.html:75 msgid "Delete Supplier Part" msgstr "" -#: company/templates/company/supplier_part.html:133 +#: company/templates/company/supplier_part.html:134 +#: order/templates/order/order_base.html:155 msgid "No supplier information available" msgstr "" -#: company/templates/company/supplier_part.html:139 order/serializers.py:553 -#: part/bom.py:287 part/bom.py:319 part/serializers.py:548 -#: templates/js/translated/company.js:349 templates/js/translated/part.js:1793 +#: company/templates/company/supplier_part.html:140 order/serializers.py:638 +#: part/bom.py:286 part/bom.py:315 part/serializers.py:592 +#: templates/js/translated/company.js:350 templates/js/translated/part.js:1793 #: templates/js/translated/pricing.js:510 -#: templates/js/translated/purchase_order.js:1920 -#: templates/js/translated/purchase_order.js:2098 +#: templates/js/translated/purchase_order.js:1904 +#: templates/js/translated/purchase_order.js:2082 msgid "SKU" msgstr "" -#: company/templates/company/supplier_part.html:206 +#: company/templates/company/supplier_part.html:207 msgid "Supplier Part Stock" msgstr "" -#: company/templates/company/supplier_part.html:209 -#: part/templates/part/detail.html:24 stock/templates/stock/location.html:204 +#: company/templates/company/supplier_part.html:210 +#: part/templates/part/detail.html:24 stock/templates/stock/location.html:205 msgid "Create new stock item" msgstr "" -#: company/templates/company/supplier_part.html:210 -#: part/templates/part/detail.html:25 stock/templates/stock/location.html:205 +#: company/templates/company/supplier_part.html:211 +#: part/templates/part/detail.html:25 stock/templates/stock/location.html:206 #: templates/js/translated/stock.js:543 msgid "New Stock Item" msgstr "" -#: company/templates/company/supplier_part.html:223 +#: company/templates/company/supplier_part.html:224 msgid "Supplier Part Orders" msgstr "" -#: company/templates/company/supplier_part.html:246 +#: company/templates/company/supplier_part.html:247 msgid "Pricing Information" msgstr "" -#: company/templates/company/supplier_part.html:251 -#: templates/js/translated/company.js:398 +#: company/templates/company/supplier_part.html:252 +#: templates/js/translated/company.js:399 #: templates/js/translated/pricing.js:684 msgid "Add Price Break" msgstr "" -#: company/templates/company/supplier_part.html:270 +#: company/templates/company/supplier_part.html:271 msgid "Supplier Part Notes" msgstr "" -#: company/templates/company/supplier_part.html:305 +#: company/templates/company/supplier_part.html:306 msgid "Supplier Part QR Code" msgstr "" -#: company/templates/company/supplier_part.html:316 +#: company/templates/company/supplier_part.html:317 msgid "Link Barcode to Supplier Part" msgstr "" -#: company/templates/company/supplier_part.html:388 +#: company/templates/company/supplier_part.html:389 msgid "Update Part Availability" msgstr "" #: company/templates/company/supplier_part_sidebar.html:5 -#: part/serializers.py:902 part/stocktake.py:223 +#: part/serializers.py:954 part/stocktake.py:223 #: part/templates/part/category.html:180 #: part/templates/part/category_sidebar.html:17 stock/admin.py:68 -#: stock/serializers.py:1014 stock/serializers.py:1192 -#: stock/templates/stock/location.html:167 -#: stock/templates/stock/location.html:188 -#: stock/templates/stock/location.html:200 +#: stock/serializers.py:1045 stock/serializers.py:1223 +#: stock/templates/stock/location.html:168 +#: stock/templates/stock/location.html:189 +#: stock/templates/stock/location.html:201 #: stock/templates/stock/location_sidebar.html:7 #: templates/InvenTree/search.html:155 templates/js/translated/part.js:1067 -#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2850 +#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2851 #: users/models.py:206 msgid "Stock Items" msgstr "" @@ -5022,99 +5203,99 @@ msgstr "" msgid "New Company" msgstr "" -#: generic/states/tests.py:18 order/status_codes.py:13 +#: generic/states/fields.py:118 +msgid "Custom status key" +msgstr "" + +#: generic/states/fields.py:119 +msgid "Additional status information for this item" +msgstr "" + +#: generic/states/tests.py:22 order/status_codes.py:13 msgid "Placed" msgstr "" -#: importer/mixins.py:263 +#: importer/mixins.py:261 msgid "Invalid export format" msgstr "" -#: importer/models.py:59 -msgid "Timestamp" -msgstr "" - -#: importer/models.py:64 +#: importer/models.py:65 msgid "Data file to import" msgstr "" -#: importer/models.py:73 templates/js/translated/tables.js:558 +#: importer/models.py:74 templates/js/translated/tables.js:558 msgid "Columns" msgstr "" -#: importer/models.py:84 +#: importer/models.py:85 msgid "Import status" msgstr "" -#: importer/models.py:94 +#: importer/models.py:95 msgid "Field Defaults" msgstr "" -#: importer/models.py:101 +#: importer/models.py:102 msgid "Field Overrides" msgstr "" -#: importer/models.py:108 +#: importer/models.py:109 msgid "Field Filters" msgstr "" -#: importer/models.py:230 +#: importer/models.py:239 msgid "Some required fields have not been mapped" msgstr "" -#: importer/models.py:387 +#: importer/models.py:396 msgid "Column is already mapped to a database field" msgstr "" -#: importer/models.py:392 +#: importer/models.py:401 msgid "Field is already mapped to a data column" msgstr "" -#: importer/models.py:401 +#: importer/models.py:410 msgid "Column mapping must be linked to a valid import session" msgstr "" -#: importer/models.py:406 +#: importer/models.py:415 msgid "Column does not exist in the data file" msgstr "" -#: importer/models.py:413 +#: importer/models.py:422 msgid "Field does not exist in the target model" msgstr "" -#: importer/models.py:417 +#: importer/models.py:426 msgid "Selected field is read-only" msgstr "" -#: importer/models.py:422 importer/models.py:493 +#: importer/models.py:431 importer/models.py:502 msgid "Import Session" msgstr "" -#: importer/models.py:426 +#: importer/models.py:435 msgid "Field" msgstr "" -#: importer/models.py:428 +#: importer/models.py:437 msgid "Column" msgstr "" -#: importer/models.py:497 +#: importer/models.py:506 msgid "Row Index" msgstr "" -#: importer/models.py:500 +#: importer/models.py:509 msgid "Original row data" msgstr "" -#: importer/models.py:503 part/models.py:3951 -msgid "Data" -msgstr "" - -#: importer/models.py:505 machine/models.py:110 +#: importer/models.py:514 machine/models.py:110 msgid "Errors" msgstr "" -#: importer/models.py:507 part/api.py:873 +#: importer/models.py:516 part/api.py:857 msgid "Valid" msgstr "" @@ -5166,19 +5347,19 @@ msgstr "" msgid "Row has already been completed" msgstr "" -#: importer/status_codes.py:11 +#: importer/status_codes.py:13 msgid "Initializing" msgstr "" -#: importer/status_codes.py:12 +#: importer/status_codes.py:18 msgid "Mapping Columns" msgstr "" -#: importer/status_codes.py:13 +#: importer/status_codes.py:21 msgid "Importing Data" msgstr "" -#: importer/status_codes.py:16 +#: importer/status_codes.py:24 msgid "Processing Data" msgstr "" @@ -5202,52 +5383,52 @@ msgstr "" msgid "Value must be a valid dictionary object" msgstr "" -#: machine/machine_types/label_printer.py:215 +#: machine/machine_types/label_printer.py:216 msgid "Copies" msgstr "" -#: machine/machine_types/label_printer.py:216 +#: machine/machine_types/label_printer.py:217 msgid "Number of copies to print for each label" msgstr "" -#: machine/machine_types/label_printer.py:231 +#: machine/machine_types/label_printer.py:232 msgid "Connected" msgstr "" -#: machine/machine_types/label_printer.py:232 order/api.py:1410 -#: templates/js/translated/sales_order.js:1078 +#: machine/machine_types/label_printer.py:233 order/api.py:1532 +#: templates/js/translated/sales_order.js:1044 msgid "Unknown" msgstr "" -#: machine/machine_types/label_printer.py:233 +#: machine/machine_types/label_printer.py:234 msgid "Printing" msgstr "" -#: machine/machine_types/label_printer.py:234 +#: machine/machine_types/label_printer.py:235 msgid "No media" msgstr "" -#: machine/machine_types/label_printer.py:235 +#: machine/machine_types/label_printer.py:236 msgid "Paper jam" msgstr "" -#: machine/machine_types/label_printer.py:236 +#: machine/machine_types/label_printer.py:237 msgid "Disconnected" msgstr "" -#: machine/machine_types/label_printer.py:243 +#: machine/machine_types/label_printer.py:244 msgid "Label Printer" msgstr "" -#: machine/machine_types/label_printer.py:244 +#: machine/machine_types/label_printer.py:245 msgid "Directly print labels for various items." msgstr "" -#: machine/machine_types/label_printer.py:250 +#: machine/machine_types/label_printer.py:251 msgid "Printer Location" msgstr "" -#: machine/machine_types/label_printer.py:251 +#: machine/machine_types/label_printer.py:252 msgid "Scope the printer to a specific location" msgstr "" @@ -5307,79 +5488,75 @@ msgstr "" #: report/templates/report/inventree_purchase_order_report.html:31 #: report/templates/report/inventree_sales_order_report.html:31 #: templates/js/translated/order.js:352 -#: templates/js/translated/purchase_order.js:2195 -#: templates/js/translated/sales_order.js:1883 +#: templates/js/translated/purchase_order.js:2179 +#: templates/js/translated/sales_order.js:1864 msgid "Total Price" msgstr "" -#: order/api.py:80 order/api.py:151 order/serializers.py:93 -#: order/templates/order/order_base.html:123 -#: order/templates/order/return_order_base.html:116 -#: order/templates/order/sales_order_base.html:125 +#: order/api.py:78 order/api.py:149 order/serializers.py:124 +#: order/templates/order/order_base.html:124 +#: order/templates/order/return_order_base.html:117 +#: order/templates/order/sales_order_base.html:126 msgid "Order Status" msgstr "" -#: order/api.py:88 order/templates/order/order_base.html:111 -#: order/templates/order/return_order_base.html:104 -#: order/templates/order/sales_order_base.html:113 +#: order/api.py:86 order/templates/order/order_base.html:112 +#: order/templates/order/return_order_base.html:105 +#: order/templates/order/sales_order_base.html:114 msgid "Order Reference" msgstr "" -#: order/api.py:116 templates/js/translated/table_filters.js:93 +#: order/api.py:114 order/api.py:1022 +#: templates/js/translated/table_filters.js:93 #: templates/js/translated/table_filters.js:625 #: templates/js/translated/table_filters.js:651 #: templates/js/translated/table_filters.js:666 msgid "Outstanding" msgstr "" -#: order/api.py:132 +#: order/api.py:130 msgid "Has Project Code" msgstr "" -#: order/api.py:155 templates/js/translated/table_filters.js:201 +#: order/api.py:153 templates/js/translated/table_filters.js:201 #: templates/js/translated/table_filters.js:791 msgid "Has Pricing" msgstr "" -#: order/api.py:230 -msgid "No matching purchase order found" -msgstr "" - -#: order/api.py:425 order/api.py:763 order/models.py:1484 order/models.py:1598 -#: order/models.py:1649 order/models.py:1764 order/models.py:1923 -#: order/models.py:2383 order/models.py:2439 -#: templates/js/translated/sales_order.js:1524 +#: order/api.py:375 order/api.py:771 order/api.py:986 order/models.py:1500 +#: order/models.py:1614 order/models.py:1665 order/models.py:1793 +#: order/models.py:1956 order/models.py:2422 order/models.py:2478 +#: templates/js/translated/sales_order.js:1490 msgid "Order" msgstr "" -#: order/api.py:429 order/api.py:784 +#: order/api.py:379 order/api.py:809 msgid "Order Complete" msgstr "" -#: order/api.py:452 +#: order/api.py:430 msgid "Order Pending" msgstr "" -#: order/api.py:1404 order/models.py:379 order/models.py:1485 -#: order/models.py:1599 order/templates/order/order_base.html:9 -#: order/templates/order/order_base.html:18 +#: order/api.py:1526 order/models.py:386 order/models.py:1501 +#: order/models.py:1615 order/templates/order/order_base.html:10 +#: order/templates/order/order_base.html:19 #: report/templates/report/inventree_purchase_order_report.html:14 -#: stock/serializers.py:120 stock/templates/stock/item_base.html:176 +#: stock/serializers.py:121 stock/templates/stock/item_base.html:173 #: templates/email/overdue_purchase_order.html:15 #: templates/js/translated/part.js:1752 templates/js/translated/pricing.js:804 -#: templates/js/translated/purchase_order.js:168 -#: templates/js/translated/purchase_order.js:753 -#: templates/js/translated/purchase_order.js:1743 -#: templates/js/translated/stock.js:2345 templates/js/translated/stock.js:2991 +#: templates/js/translated/purchase_order.js:736 +#: templates/js/translated/purchase_order.js:1727 +#: templates/js/translated/stock.js:2346 templates/js/translated/stock.js:2992 msgid "Purchase Order" msgstr "" -#: order/api.py:1408 order/models.py:2091 order/models.py:2384 -#: order/models.py:2440 order/templates/order/return_order_base.html:9 -#: order/templates/order/return_order_base.html:28 +#: order/api.py:1530 order/models.py:2124 order/models.py:2423 +#: order/models.py:2479 order/templates/order/return_order_base.html:10 +#: order/templates/order/return_order_base.html:29 #: report/templates/report/inventree_return_order_report.html:13 #: templates/js/translated/return_order.js:280 -#: templates/js/translated/stock.js:3025 +#: templates/js/translated/stock.js:3026 msgid "Return Order" msgstr "" @@ -5387,751 +5564,782 @@ msgstr "" msgid "Total price for this order" msgstr "" -#: order/models.py:95 order/serializers.py:71 +#: order/models.py:95 order/serializers.py:73 msgid "Order Currency" msgstr "" -#: order/models.py:98 order/serializers.py:72 +#: order/models.py:98 order/serializers.py:74 msgid "Currency for this order (leave blank to use company default)" msgstr "" -#: order/models.py:246 +#: order/models.py:243 msgid "Contact does not match selected company" msgstr "" -#: order/models.py:289 +#: order/models.py:296 msgid "Order description (optional)" msgstr "" -#: order/models.py:298 +#: order/models.py:305 msgid "Select project code for this order" msgstr "" -#: order/models.py:302 order/models.py:1385 order/models.py:1817 +#: order/models.py:309 order/models.py:1402 order/models.py:1846 msgid "Link to external page" msgstr "" -#: order/models.py:310 +#: order/models.py:317 msgid "Expected date for order delivery. Order will be overdue after this date." msgstr "" -#: order/models.py:324 +#: order/models.py:331 msgid "Created By" msgstr "" -#: order/models.py:332 +#: order/models.py:339 msgid "User or group responsible for this order" msgstr "" -#: order/models.py:343 +#: order/models.py:350 msgid "Point of contact for this order" msgstr "" -#: order/models.py:353 +#: order/models.py:360 msgid "Company address for this order" msgstr "" -#: order/models.py:468 order/models.py:979 +#: order/models.py:480 order/models.py:1006 msgid "Order reference" msgstr "" -#: order/models.py:477 +#: order/models.py:489 msgid "Purchase order status" msgstr "" -#: order/models.py:492 +#: order/models.py:504 msgid "Company from which the items are being ordered" msgstr "" -#: order/models.py:503 order/templates/order/order_base.html:153 -#: templates/js/translated/purchase_order.js:1772 +#: order/models.py:515 order/templates/order/order_base.html:162 +#: templates/js/translated/purchase_order.js:1756 msgid "Supplier Reference" msgstr "" -#: order/models.py:504 +#: order/models.py:516 msgid "Supplier order reference code" msgstr "" -#: order/models.py:513 +#: order/models.py:525 msgid "received by" msgstr "" -#: order/models.py:519 order/models.py:2173 +#: order/models.py:531 order/models.py:2212 msgid "Issue Date" msgstr "" -#: order/models.py:520 order/models.py:2174 +#: order/models.py:532 order/models.py:2213 msgid "Date order was issued" msgstr "" -#: order/models.py:527 order/models.py:2181 +#: order/models.py:539 order/models.py:2220 msgid "Date order was completed" msgstr "" -#: order/models.py:571 +#: order/models.py:549 order/models.py:1552 +msgid "Destination for received items" +msgstr "" + +#: order/models.py:593 msgid "Part supplier must match PO supplier" msgstr "" -#: order/models.py:806 +#: order/models.py:828 msgid "Quantity must be a positive number" msgstr "" -#: order/models.py:991 +#: order/models.py:1018 msgid "Company to which the items are being sold" msgstr "" -#: order/models.py:1003 +#: order/models.py:1030 msgid "Sales order status" msgstr "" -#: order/models.py:1014 order/models.py:2166 +#: order/models.py:1041 order/models.py:2205 msgid "Customer Reference " msgstr "" -#: order/models.py:1015 order/models.py:2167 +#: order/models.py:1042 order/models.py:2206 msgid "Customer order reference code" msgstr "" -#: order/models.py:1019 order/models.py:1771 -#: templates/js/translated/sales_order.js:879 -#: templates/js/translated/sales_order.js:1060 +#: order/models.py:1046 order/models.py:1800 +#: templates/js/translated/sales_order.js:838 +#: templates/js/translated/sales_order.js:1026 msgid "Shipment Date" msgstr "" -#: order/models.py:1028 +#: order/models.py:1055 msgid "shipped by" msgstr "" -#: order/models.py:1077 +#: order/models.py:1094 msgid "Order is already complete" msgstr "" -#: order/models.py:1080 +#: order/models.py:1097 msgid "Order is already cancelled" msgstr "" -#: order/models.py:1084 +#: order/models.py:1101 msgid "Only an open order can be marked as complete" msgstr "" -#: order/models.py:1088 +#: order/models.py:1105 msgid "Order cannot be completed as there are incomplete shipments" msgstr "" -#: order/models.py:1093 +#: order/models.py:1110 msgid "Order cannot be completed as there are incomplete line items" msgstr "" -#: order/models.py:1357 +#: order/models.py:1374 msgid "Item quantity" msgstr "" -#: order/models.py:1374 +#: order/models.py:1391 msgid "Line item reference" msgstr "" -#: order/models.py:1381 +#: order/models.py:1398 msgid "Line item notes" msgstr "" -#: order/models.py:1393 +#: order/models.py:1410 msgid "Target date for this line item (leave blank to use the target date from the order)" msgstr "" -#: order/models.py:1414 +#: order/models.py:1431 msgid "Line item description (optional)" msgstr "" -#: order/models.py:1420 -msgid "Context" -msgstr "" - -#: order/models.py:1421 +#: order/models.py:1438 msgid "Additional context for this line" msgstr "" -#: order/models.py:1431 +#: order/models.py:1448 msgid "Unit price" msgstr "" -#: order/models.py:1445 +#: order/models.py:1462 msgid "Purchase Order Line Item" msgstr "" -#: order/models.py:1469 +#: order/models.py:1486 msgid "Supplier part must match supplier" msgstr "" -#: order/models.py:1476 -msgid "deleted" -msgstr "" - -#: order/models.py:1504 +#: order/models.py:1520 msgid "Supplier part" msgstr "" -#: order/models.py:1511 order/templates/order/order_base.html:201 +#: order/models.py:1527 order/templates/order/order_base.html:210 #: templates/js/translated/part.js:1876 templates/js/translated/part.js:1908 -#: templates/js/translated/purchase_order.js:1369 -#: templates/js/translated/purchase_order.js:2239 +#: templates/js/translated/purchase_order.js:1352 +#: templates/js/translated/purchase_order.js:2223 #: templates/js/translated/return_order.js:762 #: templates/js/translated/table_filters.js:119 #: templates/js/translated/table_filters.js:605 msgid "Received" msgstr "" -#: order/models.py:1512 +#: order/models.py:1528 msgid "Number of items received" msgstr "" -#: order/models.py:1520 stock/models.py:959 stock/serializers.py:610 -#: stock/templates/stock/item_base.html:183 -#: templates/js/translated/stock.js:2396 +#: order/models.py:1536 stock/models.py:1036 stock/serializers.py:637 +#: stock/templates/stock/item_base.html:180 +#: templates/js/translated/stock.js:2397 msgid "Purchase Price" msgstr "" -#: order/models.py:1521 +#: order/models.py:1537 msgid "Unit purchase price" msgstr "" -#: order/models.py:1536 -msgid "Where does the Purchaser want this item to be stored?" -msgstr "" - -#: order/models.py:1587 +#: order/models.py:1603 msgid "Purchase Order Extra Line" msgstr "" -#: order/models.py:1616 +#: order/models.py:1632 msgid "Sales Order Line Item" msgstr "" -#: order/models.py:1637 +#: order/models.py:1653 msgid "Virtual part cannot be assigned to a sales order" msgstr "" -#: order/models.py:1642 +#: order/models.py:1658 msgid "Only salable parts can be assigned to a sales order" msgstr "" -#: order/models.py:1668 part/templates/part/part_pricing.html:107 -#: part/templates/part/prices.html:139 templates/js/translated/pricing.js:957 +#: order/models.py:1684 part/templates/part/part_pricing.html:107 +#: part/templates/part/prices.html:139 templates/js/translated/pricing.js:955 msgid "Sale Price" msgstr "" -#: order/models.py:1669 +#: order/models.py:1685 msgid "Unit sale price" msgstr "" -#: order/models.py:1678 order/status_codes.py:48 -#: templates/js/translated/sales_order.js:1559 -#: templates/js/translated/sales_order.js:1680 -#: templates/js/translated/sales_order.js:1993 +#: order/models.py:1694 order/status_codes.py:50 +#: templates/js/translated/sales_order.js:1525 +#: templates/js/translated/sales_order.js:1661 +#: templates/js/translated/sales_order.js:1974 msgid "Shipped" msgstr "" -#: order/models.py:1679 +#: order/models.py:1695 msgid "Shipped quantity" msgstr "" -#: order/models.py:1751 +#: order/models.py:1769 msgid "Sales Order Shipment" msgstr "" -#: order/models.py:1772 +#: order/models.py:1801 msgid "Date of shipment" msgstr "" -#: order/models.py:1778 templates/js/translated/sales_order.js:1072 +#: order/models.py:1807 templates/js/translated/sales_order.js:1038 msgid "Delivery Date" msgstr "" -#: order/models.py:1779 +#: order/models.py:1808 msgid "Date of delivery of shipment" msgstr "" -#: order/models.py:1787 +#: order/models.py:1816 msgid "Checked By" msgstr "" -#: order/models.py:1788 +#: order/models.py:1817 msgid "User who checked this shipment" msgstr "" -#: order/models.py:1795 order/models.py:2018 order/serializers.py:1475 -#: order/serializers.py:1585 templates/js/translated/model_renderers.js:455 +#: order/models.py:1824 order/models.py:2051 order/serializers.py:1601 +#: order/serializers.py:1725 +#: report/templates/report/inventree_sales_order_shipment_report.html:14 +#: templates/js/translated/model_renderers.js:458 +#: templates/js/translated/sales_order.js:1615 msgid "Shipment" msgstr "" -#: order/models.py:1796 +#: order/models.py:1825 msgid "Shipment number" msgstr "" -#: order/models.py:1804 +#: order/models.py:1833 msgid "Tracking Number" msgstr "" -#: order/models.py:1805 +#: order/models.py:1834 msgid "Shipment tracking information" msgstr "" -#: order/models.py:1812 +#: order/models.py:1841 msgid "Invoice Number" msgstr "" -#: order/models.py:1813 +#: order/models.py:1842 msgid "Reference number for associated invoice" msgstr "" -#: order/models.py:1833 +#: order/models.py:1862 msgid "Shipment has already been sent" msgstr "" -#: order/models.py:1836 +#: order/models.py:1865 msgid "Shipment has no allocated stock items" msgstr "" -#: order/models.py:1912 +#: order/models.py:1945 msgid "Sales Order Extra Line" msgstr "" -#: order/models.py:1941 +#: order/models.py:1974 msgid "Sales Order Allocation" msgstr "" -#: order/models.py:1964 order/models.py:1966 +#: order/models.py:1997 order/models.py:1999 msgid "Stock item has not been assigned" msgstr "" -#: order/models.py:1973 +#: order/models.py:2006 msgid "Cannot allocate stock item to a line with a different part" msgstr "" -#: order/models.py:1976 +#: order/models.py:2009 msgid "Cannot allocate stock to a line without a part" msgstr "" -#: order/models.py:1979 +#: order/models.py:2012 msgid "Allocation quantity cannot exceed stock quantity" msgstr "" -#: order/models.py:1998 order/serializers.py:1345 +#: order/models.py:2031 order/serializers.py:1471 msgid "Quantity must be 1 for serialized stock item" msgstr "" -#: order/models.py:2001 +#: order/models.py:2034 msgid "Sales order does not match shipment" msgstr "" -#: order/models.py:2002 plugin/base/barcodes/api.py:524 +#: order/models.py:2035 plugin/base/barcodes/api.py:629 msgid "Shipment does not match sales order" msgstr "" -#: order/models.py:2010 +#: order/models.py:2043 msgid "Line" msgstr "" -#: order/models.py:2019 +#: order/models.py:2052 msgid "Sales order shipment reference" msgstr "" -#: order/models.py:2032 order/models.py:2391 +#: order/models.py:2065 order/models.py:2430 #: templates/js/translated/return_order.js:720 msgid "Item" msgstr "" -#: order/models.py:2033 +#: order/models.py:2066 msgid "Select stock item to allocate" msgstr "" -#: order/models.py:2042 +#: order/models.py:2075 msgid "Enter stock allocation quantity" msgstr "" -#: order/models.py:2136 +#: order/models.py:2175 msgid "Return Order reference" msgstr "" -#: order/models.py:2148 +#: order/models.py:2187 msgid "Company from which items are being returned" msgstr "" -#: order/models.py:2160 +#: order/models.py:2199 msgid "Return order status" msgstr "" -#: order/models.py:2362 +#: order/models.py:2401 msgid "Return Order Line Item" msgstr "" -#: order/models.py:2376 +#: order/models.py:2415 msgid "Only serialized items can be assigned to a Return Order" msgstr "" -#: order/models.py:2392 +#: order/models.py:2431 msgid "Select item to return from customer" msgstr "" -#: order/models.py:2398 +#: order/models.py:2437 msgid "Received Date" msgstr "" -#: order/models.py:2399 +#: order/models.py:2438 msgid "The date this this return item was received" msgstr "" -#: order/models.py:2410 templates/js/translated/return_order.js:731 +#: order/models.py:2449 templates/js/translated/return_order.js:731 #: templates/js/translated/table_filters.js:122 msgid "Outcome" msgstr "" -#: order/models.py:2411 +#: order/models.py:2450 msgid "Outcome for this line item" msgstr "" -#: order/models.py:2418 +#: order/models.py:2457 msgid "Cost associated with return or repair for this line item" msgstr "" -#: order/models.py:2428 +#: order/models.py:2467 msgid "Return Order Extra Line" msgstr "" -#: order/serializers.py:86 +#: order/serializers.py:87 +msgid "Order ID" +msgstr "" + +#: order/serializers.py:87 +msgid "ID of the order to duplicate" +msgstr "" + +#: order/serializers.py:93 +msgid "Copy Lines" +msgstr "" + +#: order/serializers.py:94 +msgid "Copy line items from the original order" +msgstr "" + +#: order/serializers.py:100 +msgid "Copy Extra Lines" +msgstr "" + +#: order/serializers.py:101 +msgid "Copy extra line items from the original order" +msgstr "" + +#: order/serializers.py:117 msgid "Completed Lines" msgstr "" -#: order/serializers.py:283 stock/admin.py:195 +#: order/serializers.py:161 +msgid "Duplicate Order" +msgstr "" + +#: order/serializers.py:162 +msgid "Specify options for duplicating this order" +msgstr "" + +#: order/serializers.py:234 +msgid "Invalid order ID" +msgstr "" + +#: order/serializers.py:374 stock/admin.py:196 msgid "Supplier Name" msgstr "" -#: order/serializers.py:331 +#: order/serializers.py:416 msgid "Order cannot be cancelled" msgstr "" -#: order/serializers.py:346 order/serializers.py:1366 +#: order/serializers.py:431 order/serializers.py:1492 msgid "Allow order to be closed with incomplete line items" msgstr "" -#: order/serializers.py:356 order/serializers.py:1376 +#: order/serializers.py:441 order/serializers.py:1502 msgid "Order has incomplete line items" msgstr "" -#: order/serializers.py:506 +#: order/serializers.py:591 msgid "Order is not open" msgstr "" -#: order/serializers.py:527 +#: order/serializers.py:612 msgid "Auto Pricing" msgstr "" -#: order/serializers.py:529 +#: order/serializers.py:614 msgid "Automatically calculate purchase price based on supplier part data" msgstr "" -#: order/serializers.py:539 +#: order/serializers.py:624 msgid "Purchase price currency" msgstr "" -#: order/serializers.py:545 +#: order/serializers.py:630 msgid "Merge Items" msgstr "" -#: order/serializers.py:547 +#: order/serializers.py:632 msgid "Merge items with the same part, destination and target date into one line item" msgstr "" -#: order/serializers.py:560 part/models.py:1033 +#: order/serializers.py:645 part/models.py:1094 part/serializers.py:387 msgid "Internal Part Number" msgstr "" -#: order/serializers.py:568 +#: order/serializers.py:653 msgid "Internal Part Name" msgstr "" -#: order/serializers.py:584 +#: order/serializers.py:669 msgid "Supplier part must be specified" msgstr "" -#: order/serializers.py:587 +#: order/serializers.py:672 msgid "Purchase order must be specified" msgstr "" -#: order/serializers.py:595 +#: order/serializers.py:680 msgid "Supplier must match purchase order" msgstr "" -#: order/serializers.py:596 +#: order/serializers.py:681 msgid "Purchase order must match supplier" msgstr "" -#: order/serializers.py:639 order/serializers.py:1446 +#: order/serializers.py:724 order/serializers.py:1572 msgid "Line Item" msgstr "" -#: order/serializers.py:645 +#: order/serializers.py:730 msgid "Line item does not match purchase order" msgstr "" -#: order/serializers.py:655 order/serializers.py:779 order/serializers.py:1782 +#: order/serializers.py:740 order/serializers.py:881 order/serializers.py:1934 msgid "Select destination location for received items" msgstr "" -#: order/serializers.py:671 templates/js/translated/purchase_order.js:1130 +#: order/serializers.py:756 templates/js/translated/purchase_order.js:1113 #: templates/js/translated/stock.js:1200 msgid "Enter batch code for incoming stock items" msgstr "" -#: order/serializers.py:679 templates/js/translated/purchase_order.js:1155 +#: order/serializers.py:764 templates/js/translated/purchase_order.js:1138 msgid "Enter serial numbers for incoming stock items" msgstr "" -#: order/serializers.py:691 +#: order/serializers.py:776 msgid "Override packaging information for incoming stock items" msgstr "" -#: order/serializers.py:699 +#: order/serializers.py:784 msgid "Additional note for incoming stock items" msgstr "" -#: order/serializers.py:706 templates/js/translated/barcode.js:52 +#: order/serializers.py:791 templates/js/translated/barcode.js:52 msgid "Barcode" msgstr "" -#: order/serializers.py:707 +#: order/serializers.py:792 msgid "Scanned barcode" msgstr "" -#: order/serializers.py:723 +#: order/serializers.py:808 msgid "Barcode is already in use" msgstr "" -#: order/serializers.py:747 +#: order/serializers.py:831 msgid "An integer quantity must be provided for trackable parts" msgstr "" -#: order/serializers.py:795 order/serializers.py:1798 +#: order/serializers.py:898 order/serializers.py:1950 msgid "Line items must be provided" msgstr "" -#: order/serializers.py:811 +#: order/serializers.py:914 msgid "Destination location must be specified" msgstr "" -#: order/serializers.py:822 +#: order/serializers.py:925 msgid "Supplied barcode values must be unique" msgstr "" -#: order/serializers.py:1187 +#: order/serializers.py:1221 msgid "Sale price currency" msgstr "" -#: order/serializers.py:1248 +#: order/serializers.py:1260 +msgid "Allocated Items" +msgstr "" + +#: order/serializers.py:1374 msgid "No shipment details provided" msgstr "" -#: order/serializers.py:1309 order/serializers.py:1455 +#: order/serializers.py:1435 order/serializers.py:1581 msgid "Line item is not associated with this order" msgstr "" -#: order/serializers.py:1328 +#: order/serializers.py:1454 msgid "Quantity must be positive" msgstr "" -#: order/serializers.py:1465 +#: order/serializers.py:1591 msgid "Enter serial numbers to allocate" msgstr "" -#: order/serializers.py:1487 order/serializers.py:1593 +#: order/serializers.py:1613 order/serializers.py:1733 msgid "Shipment has already been shipped" msgstr "" -#: order/serializers.py:1490 order/serializers.py:1596 +#: order/serializers.py:1616 order/serializers.py:1736 msgid "Shipment is not associated with this order" msgstr "" -#: order/serializers.py:1537 +#: order/serializers.py:1671 msgid "No match found for the following serial numbers" msgstr "" -#: order/serializers.py:1544 -msgid "The following serial numbers are already allocated" +#: order/serializers.py:1678 +msgid "The following serial numbers are unavailable" msgstr "" -#: order/serializers.py:1752 +#: order/serializers.py:1904 msgid "Return order line item" msgstr "" -#: order/serializers.py:1758 +#: order/serializers.py:1910 msgid "Line item does not match return order" msgstr "" -#: order/serializers.py:1761 +#: order/serializers.py:1913 msgid "Line item has already been received" msgstr "" -#: order/serializers.py:1790 +#: order/serializers.py:1942 msgid "Items can only be received against orders which are in progress" msgstr "" -#: order/serializers.py:1873 +#: order/serializers.py:2025 msgid "Line price currency" msgstr "" -#: order/status_codes.py:17 order/status_codes.py:52 stock/status_codes.py:16 +#: order/status_codes.py:17 order/status_codes.py:54 stock/status_codes.py:16 msgid "Lost" msgstr "" -#: order/status_codes.py:18 order/status_codes.py:53 stock/status_codes.py:22 +#: order/status_codes.py:18 order/status_codes.py:55 stock/status_codes.py:24 msgid "Returned" msgstr "" -#: order/status_codes.py:45 order/status_codes.py:77 +#: order/status_codes.py:47 order/status_codes.py:79 msgid "In Progress" msgstr "" -#: order/status_codes.py:101 +#: order/status_codes.py:105 msgid "Return" msgstr "" -#: order/status_codes.py:104 +#: order/status_codes.py:108 msgid "Repair" msgstr "" -#: order/status_codes.py:107 +#: order/status_codes.py:111 msgid "Replace" msgstr "" -#: order/status_codes.py:110 +#: order/status_codes.py:114 msgid "Refund" msgstr "" -#: order/status_codes.py:113 +#: order/status_codes.py:117 msgid "Reject" msgstr "" -#: order/tasks.py:25 +#: order/tasks.py:30 msgid "Overdue Purchase Order" msgstr "" -#: order/tasks.py:30 +#: order/tasks.py:35 #, python-brace-format msgid "Purchase order {po} is now overdue" msgstr "" -#: order/tasks.py:75 +#: order/tasks.py:80 msgid "Overdue Sales Order" msgstr "" -#: order/tasks.py:80 +#: order/tasks.py:85 #, python-brace-format msgid "Sales order {so} is now overdue" msgstr "" -#: order/templates/order/order_base.html:51 +#: order/templates/order/order_base.html:52 msgid "Print purchase order report" msgstr "" -#: order/templates/order/order_base.html:53 -#: order/templates/order/return_order_base.html:62 -#: order/templates/order/sales_order_base.html:62 +#: order/templates/order/order_base.html:54 +#: order/templates/order/return_order_base.html:63 +#: order/templates/order/sales_order_base.html:63 msgid "Export order to file" msgstr "" -#: order/templates/order/order_base.html:59 -#: order/templates/order/return_order_base.html:72 -#: order/templates/order/sales_order_base.html:71 +#: order/templates/order/order_base.html:60 +#: order/templates/order/return_order_base.html:73 +#: order/templates/order/sales_order_base.html:72 msgid "Order actions" msgstr "" -#: order/templates/order/order_base.html:64 -#: order/templates/order/return_order_base.html:76 -#: order/templates/order/sales_order_base.html:75 +#: order/templates/order/order_base.html:65 +#: order/templates/order/return_order_base.html:77 +#: order/templates/order/sales_order_base.html:76 msgid "Edit order" msgstr "" -#: order/templates/order/order_base.html:68 +#: order/templates/order/order_base.html:69 msgid "Duplicate order" msgstr "" -#: order/templates/order/order_base.html:73 -#: order/templates/order/return_order_base.html:78 -#: order/templates/order/sales_order_base.html:77 +#: order/templates/order/order_base.html:74 +#: order/templates/order/return_order_base.html:79 +#: order/templates/order/sales_order_base.html:78 msgid "Hold order" msgstr "" -#: order/templates/order/order_base.html:78 -#: order/templates/order/return_order_base.html:81 -#: order/templates/order/sales_order_base.html:80 +#: order/templates/order/order_base.html:79 +#: order/templates/order/return_order_base.html:82 +#: order/templates/order/sales_order_base.html:81 msgid "Cancel order" msgstr "" -#: order/templates/order/order_base.html:84 #: order/templates/order/order_base.html:85 -#: order/templates/order/return_order_base.html:85 +#: order/templates/order/order_base.html:86 #: order/templates/order/return_order_base.html:86 -#: order/templates/order/sales_order_base.html:86 +#: order/templates/order/return_order_base.html:87 #: order/templates/order/sales_order_base.html:87 +#: order/templates/order/sales_order_base.html:88 msgid "Issue Order" msgstr "" -#: order/templates/order/order_base.html:88 -#: order/templates/order/return_order_base.html:89 -msgid "Mark order as complete" -msgstr "" - #: order/templates/order/order_base.html:89 #: order/templates/order/return_order_base.html:90 -#: order/templates/order/sales_order_base.html:100 +msgid "Mark order as complete" +msgstr "" + +#: order/templates/order/order_base.html:90 +#: order/templates/order/return_order_base.html:91 +#: order/templates/order/sales_order_base.html:101 msgid "Complete Order" msgstr "" -#: order/templates/order/order_base.html:96 +#: order/templates/order/order_base.html:97 msgid "Supplier part thumbnail" msgstr "" -#: order/templates/order/order_base.html:116 -#: order/templates/order/return_order_base.html:109 -#: order/templates/order/sales_order_base.html:118 +#: order/templates/order/order_base.html:117 +#: order/templates/order/return_order_base.html:110 +#: order/templates/order/sales_order_base.html:119 msgid "Order Description" msgstr "" -#: order/templates/order/order_base.html:146 -msgid "No suppplier information available" -msgstr "" - -#: order/templates/order/order_base.html:159 -#: order/templates/order/sales_order_base.html:164 +#: order/templates/order/order_base.html:168 +#: order/templates/order/sales_order_base.html:165 msgid "Completed Line Items" msgstr "" -#: order/templates/order/order_base.html:165 -#: order/templates/order/sales_order_base.html:170 -#: order/templates/order/sales_order_base.html:180 +#: order/templates/order/order_base.html:174 +#: order/templates/order/sales_order_base.html:171 +#: order/templates/order/sales_order_base.html:181 msgid "Incomplete" msgstr "" -#: order/templates/order/order_base.html:184 -#: order/templates/order/return_order_base.html:160 +#: order/templates/order/order_base.html:193 +#: order/templates/order/return_order_base.html:161 #: report/templates/report/inventree_build_order_report.html:121 msgid "Issued" msgstr "" -#: order/templates/order/order_base.html:229 +#: order/templates/order/order_base.html:238 msgid "Total cost" msgstr "" -#: order/templates/order/order_base.html:233 -#: order/templates/order/return_order_base.html:202 -#: order/templates/order/sales_order_base.html:246 +#: order/templates/order/order_base.html:242 +#: order/templates/order/return_order_base.html:203 +#: order/templates/order/sales_order_base.html:247 msgid "Total cost could not be calculated" msgstr "" -#: order/templates/order/order_base.html:335 +#: order/templates/order/order_base.html:344 msgid "Purchase Order QR Code" msgstr "" -#: order/templates/order/order_base.html:347 +#: order/templates/order/order_base.html:356 msgid "Link Barcode to Purchase Order" msgstr "" @@ -6184,12 +6392,12 @@ msgstr "" #: part/templates/part/import_wizard/ajax_match_references.html:42 #: part/templates/part/import_wizard/match_fields.html:71 #: part/templates/part/import_wizard/match_references.html:49 -#: templates/js/translated/bom.js:133 templates/js/translated/build.js:530 -#: templates/js/translated/build.js:1802 -#: templates/js/translated/purchase_order.js:696 -#: templates/js/translated/purchase_order.js:1288 +#: templates/js/translated/bom.js:133 templates/js/translated/build.js:533 +#: templates/js/translated/build.js:1805 +#: templates/js/translated/purchase_order.js:679 +#: templates/js/translated/purchase_order.js:1271 #: templates/js/translated/return_order.js:505 -#: templates/js/translated/sales_order.js:1145 +#: templates/js/translated/sales_order.js:1111 #: templates/js/translated/stock.js:720 templates/js/translated/stock.js:889 #: templates/patterns/wizard/match_fields.html:70 msgid "Remove row" @@ -6242,7 +6450,7 @@ msgstr "" #: order/templates/order/purchase_order_detail.html:27 #: order/templates/order/return_order_detail.html:24 #: order/templates/order/sales_order_detail.html:24 -#: templates/js/translated/purchase_order.js:414 +#: templates/js/translated/purchase_order.js:397 #: templates/js/translated/return_order.js:458 #: templates/js/translated/sales_order.js:237 msgid "Add Line Item" @@ -6277,45 +6485,45 @@ msgstr "" msgid "Order Notes" msgstr "" -#: order/templates/order/return_order_base.html:18 -#: order/templates/order/sales_order_base.html:18 +#: order/templates/order/return_order_base.html:19 +#: order/templates/order/sales_order_base.html:19 msgid "Customer logo thumbnail" msgstr "" -#: order/templates/order/return_order_base.html:60 +#: order/templates/order/return_order_base.html:61 msgid "Print return order report" msgstr "" -#: order/templates/order/return_order_base.html:64 -#: order/templates/order/sales_order_base.html:64 +#: order/templates/order/return_order_base.html:65 +#: order/templates/order/sales_order_base.html:65 msgid "Print packing list" msgstr "" -#: order/templates/order/return_order_base.html:141 -#: order/templates/order/sales_order_base.html:158 +#: order/templates/order/return_order_base.html:142 +#: order/templates/order/sales_order_base.html:159 #: templates/js/translated/return_order.js:308 -#: templates/js/translated/sales_order.js:833 +#: templates/js/translated/sales_order.js:792 msgid "Customer Reference" msgstr "" -#: order/templates/order/return_order_base.html:198 -#: order/templates/order/sales_order_base.html:242 +#: order/templates/order/return_order_base.html:199 +#: order/templates/order/sales_order_base.html:243 #: part/templates/part/part_pricing.html:32 #: part/templates/part/part_pricing.html:58 #: part/templates/part/part_pricing.html:99 #: part/templates/part/part_pricing.html:114 #: templates/js/translated/part.js:1079 -#: templates/js/translated/purchase_order.js:1822 +#: templates/js/translated/purchase_order.js:1806 #: templates/js/translated/return_order.js:380 -#: templates/js/translated/sales_order.js:891 +#: templates/js/translated/sales_order.js:850 msgid "Total Cost" msgstr "" -#: order/templates/order/return_order_base.html:273 +#: order/templates/order/return_order_base.html:274 msgid "Return Order QR Code" msgstr "" -#: order/templates/order/return_order_base.html:285 +#: order/templates/order/return_order_base.html:286 msgid "Link Barcode to Return Order" msgstr "" @@ -6323,40 +6531,40 @@ msgstr "" msgid "Order Details" msgstr "" -#: order/templates/order/sales_order_base.html:60 +#: order/templates/order/sales_order_base.html:61 msgid "Print sales order report" msgstr "" -#: order/templates/order/sales_order_base.html:91 #: order/templates/order/sales_order_base.html:92 +#: order/templates/order/sales_order_base.html:93 msgid "Ship Items" msgstr "" -#: order/templates/order/sales_order_base.html:95 #: order/templates/order/sales_order_base.html:96 +#: order/templates/order/sales_order_base.html:97 msgid "Mark As Shipped" msgstr "" -#: order/templates/order/sales_order_base.html:99 -#: templates/js/translated/sales_order.js:536 +#: order/templates/order/sales_order_base.html:100 +#: templates/js/translated/sales_order.js:495 msgid "Complete Sales Order" msgstr "" -#: order/templates/order/sales_order_base.html:138 +#: order/templates/order/sales_order_base.html:139 msgid "This Sales Order has not been fully allocated" msgstr "" -#: order/templates/order/sales_order_base.html:176 +#: order/templates/order/sales_order_base.html:177 #: order/templates/order/sales_order_detail.html:99 #: order/templates/order/so_sidebar.html:11 msgid "Completed Shipments" msgstr "" -#: order/templates/order/sales_order_base.html:339 +#: order/templates/order/sales_order_base.html:340 msgid "Sales Order QR Code" msgstr "" -#: order/templates/order/sales_order_base.html:351 +#: order/templates/order/sales_order_base.html:352 msgid "Link Barcode to Sales Order" msgstr "" @@ -6370,7 +6578,7 @@ msgid "Pending Shipments" msgstr "" #: order/templates/order/sales_order_detail.html:71 -#: templates/js/translated/bom.js:1277 templates/js/translated/build.js:1063 +#: templates/js/translated/bom.js:1277 templates/js/translated/build.js:1066 #: templates/js/translated/filters.js:299 msgid "Actions" msgstr "" @@ -6383,39 +6591,40 @@ msgstr "" msgid "Match Supplier Parts" msgstr "" -#: order/views.py:406 +#: order/views.py:407 msgid "Sales order not found" msgstr "" -#: order/views.py:412 +#: order/views.py:413 msgid "Price not found" msgstr "" -#: order/views.py:415 +#: order/views.py:416 #, python-brace-format msgid "Updated {part} unit-price to {price}" msgstr "" -#: order/views.py:421 +#: order/views.py:422 #, python-brace-format msgid "Updated {part} unit-price to {price} and quantity to {qty}" msgstr "" -#: part/admin.py:48 part/models.py:1032 part/templates/part/part_base.html:269 +#: part/admin.py:48 part/models.py:1093 part/serializers.py:939 +#: part/templates/part/part_base.html:277 #: report/templates/report/inventree_stock_location_report.html:103 #: templates/js/translated/part.js:1233 templates/js/translated/part.js:2347 -#: templates/js/translated/stock.js:2121 +#: templates/js/translated/stock.js:2122 msgid "IPN" msgstr "" -#: part/admin.py:50 part/models.py:1041 part/templates/part/part_base.html:286 +#: part/admin.py:50 part/models.py:1102 part/templates/part/part_base.html:294 #: report/models.py:161 templates/js/translated/part.js:1238 #: templates/js/translated/part.js:2353 msgid "Revision" msgstr "" -#: part/admin.py:53 part/admin.py:319 part/models.py:1014 -#: part/templates/part/category.html:91 part/templates/part/part_base.html:307 +#: part/admin.py:53 part/admin.py:319 part/models.py:1075 +#: part/templates/part/category.html:91 part/templates/part/part_base.html:315 msgid "Keywords" msgstr "" @@ -6427,7 +6636,7 @@ msgstr "" msgid "Category ID" msgstr "" -#: part/admin.py:67 part/admin.py:304 part/serializers.py:880 +#: part/admin.py:67 part/admin.py:304 part/serializers.py:924 #: part/stocktake.py:222 msgid "Category Name" msgstr "" @@ -6440,11 +6649,11 @@ msgstr "" msgid "Default Supplier ID" msgstr "" -#: part/admin.py:81 part/models.py:1000 part/templates/part/part_base.html:177 +#: part/admin.py:81 part/models.py:1061 part/templates/part/part_base.html:178 msgid "Variant Of" msgstr "" -#: part/admin.py:84 part/models.py:1138 part/templates/part/part_base.html:203 +#: part/admin.py:84 part/models.py:1199 part/templates/part/part_base.html:204 msgid "Minimum Stock" msgstr "" @@ -6452,23 +6661,23 @@ msgstr "" msgid "Used In" msgstr "" -#: part/admin.py:150 part/serializers.py:897 -#: part/templates/part/part_base.html:241 stock/admin.py:235 +#: part/admin.py:150 part/serializers.py:949 +#: part/templates/part/part_base.html:249 stock/admin.py:236 #: templates/js/translated/part.js:717 templates/js/translated/part.js:2159 msgid "Building" msgstr "" -#: part/admin.py:155 part/models.py:3202 part/models.py:3216 +#: part/admin.py:155 part/models.py:3253 part/models.py:3267 #: templates/js/translated/part.js:976 msgid "Minimum Cost" msgstr "" -#: part/admin.py:158 part/models.py:3209 part/models.py:3223 +#: part/admin.py:158 part/models.py:3260 part/models.py:3274 #: templates/js/translated/part.js:986 msgid "Maximum Cost" msgstr "" -#: part/admin.py:308 part/admin.py:387 stock/admin.py:57 stock/admin.py:215 +#: part/admin.py:308 part/admin.py:387 stock/admin.py:57 stock/admin.py:216 msgid "Parent ID" msgstr "" @@ -6481,8 +6690,8 @@ msgstr "" msgid "Category Path" msgstr "" -#: part/admin.py:325 part/models.py:425 part/serializers.py:130 -#: part/serializers.py:290 part/serializers.py:415 +#: part/admin.py:325 part/models.py:420 part/serializers.py:130 +#: part/serializers.py:323 part/serializers.py:459 #: part/templates/part/cat_link.html:3 part/templates/part/category.html:20 #: part/templates/part/category.html:138 part/templates/part/category.html:158 #: part/templates/part/category_sidebar.html:9 @@ -6509,15 +6718,15 @@ msgstr "" msgid "Part Revision" msgstr "" -#: part/admin.py:418 part/serializers.py:1346 +#: part/admin.py:418 part/serializers.py:1400 #: templates/js/translated/pricing.js:358 -#: templates/js/translated/pricing.js:1024 +#: templates/js/translated/pricing.js:1022 msgid "Minimum Price" msgstr "" -#: part/admin.py:423 part/serializers.py:1361 +#: part/admin.py:423 part/serializers.py:1415 #: templates/js/translated/pricing.js:353 -#: templates/js/translated/pricing.js:1032 +#: templates/js/translated/pricing.js:1030 msgid "Maximum Price" msgstr "" @@ -6545,94 +6754,98 @@ msgstr "" msgid "Filter by top-level categories" msgstr "" +#: part/api.py:156 stock/api.py:343 +msgid "Cascade" +msgstr "" + #: part/api.py:158 msgid "Include sub-categories in filtered results" msgstr "" -#: part/api.py:179 templates/js/translated/part.js:311 +#: part/api.py:178 templates/js/translated/part.js:311 msgid "Parent" msgstr "" -#: part/api.py:181 +#: part/api.py:180 msgid "Filter by parent category" msgstr "" -#: part/api.py:214 +#: part/api.py:213 msgid "Exclude Tree" msgstr "" -#: part/api.py:216 +#: part/api.py:215 msgid "Exclude sub-categories under the specified category" msgstr "" -#: part/api.py:441 +#: part/api.py:440 msgid "Has Results" msgstr "" -#: part/api.py:608 +#: part/api.py:604 msgid "Incoming Purchase Order" msgstr "" -#: part/api.py:626 +#: part/api.py:618 msgid "Outgoing Sales Order" msgstr "" -#: part/api.py:642 +#: part/api.py:630 msgid "Stock produced by Build Order" msgstr "" -#: part/api.py:726 +#: part/api.py:712 msgid "Stock required for Build Order" msgstr "" -#: part/api.py:874 +#: part/api.py:858 msgid "Validate entire Bill of Materials" msgstr "" -#: part/api.py:880 +#: part/api.py:864 msgid "This option must be selected" msgstr "" -#: part/api.py:916 +#: part/api.py:900 msgid "Is Revision" msgstr "" -#: part/api.py:926 +#: part/api.py:910 msgid "Has Revisions" msgstr "" -#: part/api.py:1117 +#: part/api.py:1101 msgid "BOM Valid" msgstr "" -#: part/api.py:1523 part/models.py:1024 part/models.py:3489 part/models.py:4046 -#: part/serializers.py:430 part/serializers.py:1202 -#: part/templates/part/part_base.html:260 stock/api.py:781 +#: part/api.py:1509 part/models.py:1085 part/models.py:3540 part/models.py:4104 +#: part/serializers.py:474 part/serializers.py:1255 +#: part/templates/part/part_base.html:268 stock/api.py:781 #: templates/InvenTree/settings/settings_staff_js.html:300 #: templates/js/translated/notification.js:60 #: templates/js/translated/part.js:2383 msgid "Category" msgstr "" -#: part/api.py:1761 +#: part/api.py:1750 msgid "Assembly part is testable" msgstr "" -#: part/api.py:1770 +#: part/api.py:1759 msgid "Component part is testable" msgstr "" -#: part/api.py:1821 +#: part/api.py:1810 msgid "Uses" msgstr "" -#: part/bom.py:178 part/models.py:107 part/models.py:1077 -#: part/templates/part/category.html:113 part/templates/part/part_base.html:376 +#: part/bom.py:183 part/models.py:109 part/models.py:1138 +#: part/templates/part/category.html:113 part/templates/part/part_base.html:384 #: templates/js/translated/part.js:2397 msgid "Default Location" msgstr "" -#: part/bom.py:179 part/serializers.py:905 +#: part/bom.py:184 part/serializers.py:957 #: templates/email/low_stock_notification.html:16 msgid "Total Stock" msgstr "" @@ -6641,789 +6854,789 @@ msgstr "" msgid "Input quantity for price calculation" msgstr "" -#: part/models.py:88 part/models.py:4047 part/templates/part/category.html:16 +#: part/models.py:90 part/models.py:4105 part/templates/part/category.html:16 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "" -#: part/models.py:89 part/templates/part/category.html:133 +#: part/models.py:91 part/templates/part/category.html:133 #: templates/InvenTree/search.html:97 templates/js/translated/search.js:158 #: users/models.py:202 msgid "Part Categories" msgstr "" -#: part/models.py:108 +#: part/models.py:110 msgid "Default location for parts in this category" msgstr "" -#: part/models.py:113 stock/models.py:187 templates/js/translated/part.js:2828 -#: templates/js/translated/stock.js:2856 +#: part/models.py:115 stock/models.py:193 templates/js/translated/part.js:2828 +#: templates/js/translated/stock.js:2857 #: templates/js/translated/table_filters.js:246 #: templates/js/translated/table_filters.js:290 msgid "Structural" msgstr "" -#: part/models.py:115 +#: part/models.py:117 msgid "Parts may not be directly assigned to a structural category, but may be assigned to child categories." msgstr "" -#: part/models.py:124 +#: part/models.py:126 msgid "Default keywords" msgstr "" -#: part/models.py:125 +#: part/models.py:127 msgid "Default keywords for parts in this category" msgstr "" -#: part/models.py:131 stock/models.py:90 stock/models.py:169 +#: part/models.py:133 stock/models.py:96 stock/models.py:175 #: templates/InvenTree/settings/settings_staff_js.html:445 msgid "Icon" msgstr "" -#: part/models.py:132 part/serializers.py:143 part/serializers.py:161 -#: stock/models.py:170 +#: part/models.py:134 part/serializers.py:143 part/serializers.py:161 +#: stock/models.py:176 msgid "Icon (optional)" msgstr "" -#: part/models.py:178 +#: part/models.py:180 msgid "You cannot make this part category structural because some parts are already assigned to it!" msgstr "" -#: part/models.py:519 +#: part/models.py:514 msgid "Cannot delete this part as it is locked" msgstr "" -#: part/models.py:522 +#: part/models.py:517 msgid "Cannot delete this part as it is still active" msgstr "" -#: part/models.py:527 +#: part/models.py:522 msgid "Cannot delete this part as it is used in an assembly" msgstr "" -#: part/models.py:565 +#: part/models.py:560 msgid "Invalid choice for parent part" msgstr "" -#: part/models.py:613 part/models.py:620 +#: part/models.py:608 part/models.py:615 #, python-brace-format msgid "Part '{self}' cannot be used in BOM for '{parent}' (recursive)" msgstr "" -#: part/models.py:632 +#: part/models.py:627 #, python-brace-format msgid "Part '{parent}' is used in BOM for '{self}' (recursive)" msgstr "" -#: part/models.py:695 +#: part/models.py:694 #, python-brace-format msgid "IPN must match regex pattern {pattern}" msgstr "" -#: part/models.py:703 +#: part/models.py:702 msgid "Part cannot be a revision of itself" msgstr "" -#: part/models.py:710 +#: part/models.py:709 msgid "Cannot make a revision of a part which is already a revision" msgstr "" -#: part/models.py:717 +#: part/models.py:716 msgid "Revision code must be specified" msgstr "" -#: part/models.py:724 +#: part/models.py:723 msgid "Revisions are only allowed for assembly parts" msgstr "" -#: part/models.py:731 +#: part/models.py:730 msgid "Cannot make a revision of a template part" msgstr "" -#: part/models.py:737 +#: part/models.py:736 msgid "Parent part must point to the same template" msgstr "" -#: part/models.py:816 +#: part/models.py:832 msgid "Stock item with this serial number already exists" msgstr "" -#: part/models.py:917 +#: part/models.py:976 msgid "Duplicate IPN not allowed in part settings" msgstr "" -#: part/models.py:926 +#: part/models.py:988 msgid "Duplicate part revision already exists." msgstr "" -#: part/models.py:936 +#: part/models.py:997 msgid "Part with this Name, IPN and Revision already exists." msgstr "" -#: part/models.py:951 +#: part/models.py:1012 msgid "Parts cannot be assigned to structural part categories!" msgstr "" -#: part/models.py:983 part/models.py:4102 +#: part/models.py:1044 part/models.py:4160 msgid "Part name" msgstr "" -#: part/models.py:988 +#: part/models.py:1049 msgid "Is Template" msgstr "" -#: part/models.py:989 +#: part/models.py:1050 msgid "Is this part a template part?" msgstr "" -#: part/models.py:999 +#: part/models.py:1060 msgid "Is this part a variant of another part?" msgstr "" -#: part/models.py:1007 +#: part/models.py:1068 msgid "Part description (optional)" msgstr "" -#: part/models.py:1015 +#: part/models.py:1076 msgid "Part keywords to improve visibility in search results" msgstr "" -#: part/models.py:1025 +#: part/models.py:1086 msgid "Part category" msgstr "" -#: part/models.py:1040 +#: part/models.py:1101 msgid "Part revision or version number" msgstr "" -#: part/models.py:1050 +#: part/models.py:1111 msgid "Is this part a revision of another part?" msgstr "" -#: part/models.py:1051 part/templates/part/part_base.html:277 +#: part/models.py:1112 part/templates/part/part_base.html:285 msgid "Revision Of" msgstr "" -#: part/models.py:1075 +#: part/models.py:1136 msgid "Where is this item normally stored?" msgstr "" -#: part/models.py:1121 part/templates/part/part_base.html:385 +#: part/models.py:1182 part/templates/part/part_base.html:393 msgid "Default Supplier" msgstr "" -#: part/models.py:1122 +#: part/models.py:1183 msgid "Default supplier part" msgstr "" -#: part/models.py:1129 +#: part/models.py:1190 msgid "Default Expiry" msgstr "" -#: part/models.py:1130 +#: part/models.py:1191 msgid "Expiry time (in days) for stock items of this part" msgstr "" -#: part/models.py:1139 +#: part/models.py:1200 msgid "Minimum allowed stock level" msgstr "" -#: part/models.py:1148 +#: part/models.py:1209 msgid "Units of measure for this part" msgstr "" -#: part/models.py:1155 +#: part/models.py:1216 msgid "Can this part be built from other parts?" msgstr "" -#: part/models.py:1161 +#: part/models.py:1222 msgid "Can this part be used to build other parts?" msgstr "" -#: part/models.py:1167 +#: part/models.py:1228 msgid "Does this part have tracking for unique items?" msgstr "" -#: part/models.py:1173 +#: part/models.py:1234 msgid "Can this part have test results recorded against it?" msgstr "" -#: part/models.py:1179 +#: part/models.py:1240 msgid "Can this part be purchased from external suppliers?" msgstr "" -#: part/models.py:1185 +#: part/models.py:1246 msgid "Can this part be sold to customers?" msgstr "" -#: part/models.py:1189 +#: part/models.py:1250 msgid "Is this part active?" msgstr "" -#: part/models.py:1194 templates/js/translated/part.js:821 +#: part/models.py:1255 templates/js/translated/part.js:821 #: templates/js/translated/table_filters.js:724 msgid "Locked" msgstr "" -#: part/models.py:1195 +#: part/models.py:1256 msgid "Locked parts cannot be edited" msgstr "" -#: part/models.py:1201 +#: part/models.py:1262 msgid "Is this a virtual part, such as a software product or license?" msgstr "" -#: part/models.py:1207 +#: part/models.py:1268 msgid "BOM checksum" msgstr "" -#: part/models.py:1208 +#: part/models.py:1269 msgid "Stored BOM checksum" msgstr "" -#: part/models.py:1216 +#: part/models.py:1277 msgid "BOM checked by" msgstr "" -#: part/models.py:1221 +#: part/models.py:1282 msgid "BOM checked date" msgstr "" -#: part/models.py:1237 +#: part/models.py:1298 msgid "Creation User" msgstr "" -#: part/models.py:1247 +#: part/models.py:1308 msgid "Owner responsible for this part" msgstr "" -#: part/models.py:1252 part/templates/part/part_base.html:348 -#: stock/templates/stock/item_base.html:451 +#: part/models.py:1313 part/templates/part/part_base.html:356 +#: stock/templates/stock/item_base.html:448 #: templates/js/translated/part.js:2490 msgid "Last Stocktake" msgstr "" -#: part/models.py:2125 +#: part/models.py:2185 msgid "Sell multiple" msgstr "" -#: part/models.py:3116 +#: part/models.py:3167 msgid "Currency used to cache pricing calculations" msgstr "" -#: part/models.py:3132 +#: part/models.py:3183 msgid "Minimum BOM Cost" msgstr "" -#: part/models.py:3133 +#: part/models.py:3184 msgid "Minimum cost of component parts" msgstr "" -#: part/models.py:3139 +#: part/models.py:3190 msgid "Maximum BOM Cost" msgstr "" -#: part/models.py:3140 +#: part/models.py:3191 msgid "Maximum cost of component parts" msgstr "" -#: part/models.py:3146 +#: part/models.py:3197 msgid "Minimum Purchase Cost" msgstr "" -#: part/models.py:3147 +#: part/models.py:3198 msgid "Minimum historical purchase cost" msgstr "" -#: part/models.py:3153 +#: part/models.py:3204 msgid "Maximum Purchase Cost" msgstr "" -#: part/models.py:3154 +#: part/models.py:3205 msgid "Maximum historical purchase cost" msgstr "" -#: part/models.py:3160 +#: part/models.py:3211 msgid "Minimum Internal Price" msgstr "" -#: part/models.py:3161 +#: part/models.py:3212 msgid "Minimum cost based on internal price breaks" msgstr "" -#: part/models.py:3167 +#: part/models.py:3218 msgid "Maximum Internal Price" msgstr "" -#: part/models.py:3168 +#: part/models.py:3219 msgid "Maximum cost based on internal price breaks" msgstr "" -#: part/models.py:3174 +#: part/models.py:3225 msgid "Minimum Supplier Price" msgstr "" -#: part/models.py:3175 +#: part/models.py:3226 msgid "Minimum price of part from external suppliers" msgstr "" -#: part/models.py:3181 +#: part/models.py:3232 msgid "Maximum Supplier Price" msgstr "" -#: part/models.py:3182 +#: part/models.py:3233 msgid "Maximum price of part from external suppliers" msgstr "" -#: part/models.py:3188 +#: part/models.py:3239 msgid "Minimum Variant Cost" msgstr "" -#: part/models.py:3189 +#: part/models.py:3240 msgid "Calculated minimum cost of variant parts" msgstr "" -#: part/models.py:3195 +#: part/models.py:3246 msgid "Maximum Variant Cost" msgstr "" -#: part/models.py:3196 +#: part/models.py:3247 msgid "Calculated maximum cost of variant parts" msgstr "" -#: part/models.py:3203 +#: part/models.py:3254 msgid "Override minimum cost" msgstr "" -#: part/models.py:3210 +#: part/models.py:3261 msgid "Override maximum cost" msgstr "" -#: part/models.py:3217 +#: part/models.py:3268 msgid "Calculated overall minimum cost" msgstr "" -#: part/models.py:3224 +#: part/models.py:3275 msgid "Calculated overall maximum cost" msgstr "" -#: part/models.py:3230 +#: part/models.py:3281 msgid "Minimum Sale Price" msgstr "" -#: part/models.py:3231 +#: part/models.py:3282 msgid "Minimum sale price based on price breaks" msgstr "" -#: part/models.py:3237 +#: part/models.py:3288 msgid "Maximum Sale Price" msgstr "" -#: part/models.py:3238 +#: part/models.py:3289 msgid "Maximum sale price based on price breaks" msgstr "" -#: part/models.py:3244 +#: part/models.py:3295 msgid "Minimum Sale Cost" msgstr "" -#: part/models.py:3245 +#: part/models.py:3296 msgid "Minimum historical sale price" msgstr "" -#: part/models.py:3251 +#: part/models.py:3302 msgid "Maximum Sale Cost" msgstr "" -#: part/models.py:3252 +#: part/models.py:3303 msgid "Maximum historical sale price" msgstr "" -#: part/models.py:3271 +#: part/models.py:3322 msgid "Part for stocktake" msgstr "" -#: part/models.py:3276 +#: part/models.py:3327 msgid "Item Count" msgstr "" -#: part/models.py:3277 +#: part/models.py:3328 msgid "Number of individual stock entries at time of stocktake" msgstr "" -#: part/models.py:3285 +#: part/models.py:3336 msgid "Total available stock at time of stocktake" msgstr "" -#: part/models.py:3289 part/models.py:3372 +#: part/models.py:3340 part/models.py:3423 part/serializers.py:263 #: part/templates/part/part_scheduling.html:13 #: report/templates/report/inventree_test_report.html:106 #: templates/InvenTree/settings/plugin_settings.html:37 #: templates/InvenTree/settings/settings_staff_js.html:543 -#: templates/js/translated/part.js:1092 templates/js/translated/pricing.js:826 -#: templates/js/translated/pricing.js:950 -#: templates/js/translated/purchase_order.js:1801 -#: templates/js/translated/stock.js:2905 +#: templates/js/translated/part.js:1092 templates/js/translated/pricing.js:824 +#: templates/js/translated/pricing.js:948 +#: templates/js/translated/purchase_order.js:1785 +#: templates/js/translated/stock.js:2906 msgid "Date" msgstr "" -#: part/models.py:3290 +#: part/models.py:3341 msgid "Date stocktake was performed" msgstr "" -#: part/models.py:3298 +#: part/models.py:3349 msgid "Additional notes" msgstr "" -#: part/models.py:3308 +#: part/models.py:3359 msgid "User who performed this stocktake" msgstr "" -#: part/models.py:3314 +#: part/models.py:3365 msgid "Minimum Stock Cost" msgstr "" -#: part/models.py:3315 +#: part/models.py:3366 msgid "Estimated minimum cost of stock on hand" msgstr "" -#: part/models.py:3321 +#: part/models.py:3372 msgid "Maximum Stock Cost" msgstr "" -#: part/models.py:3322 +#: part/models.py:3373 msgid "Estimated maximum cost of stock on hand" msgstr "" -#: part/models.py:3378 templates/InvenTree/settings/settings_staff_js.html:532 +#: part/models.py:3429 templates/InvenTree/settings/settings_staff_js.html:532 msgid "Report" msgstr "" -#: part/models.py:3379 +#: part/models.py:3430 msgid "Stocktake report file (generated internally)" msgstr "" -#: part/models.py:3384 templates/InvenTree/settings/settings_staff_js.html:539 +#: part/models.py:3435 templates/InvenTree/settings/settings_staff_js.html:539 msgid "Part Count" msgstr "" -#: part/models.py:3385 +#: part/models.py:3436 msgid "Number of parts covered by stocktake" msgstr "" -#: part/models.py:3395 +#: part/models.py:3446 msgid "User who requested this stocktake report" msgstr "" -#: part/models.py:3405 +#: part/models.py:3456 msgid "Part Sale Price Break" msgstr "" -#: part/models.py:3517 +#: part/models.py:3568 msgid "Part Test Template" msgstr "" -#: part/models.py:3543 +#: part/models.py:3594 msgid "Invalid template name - must include at least one alphanumeric character" msgstr "" -#: part/models.py:3564 part/models.py:3733 +#: part/models.py:3615 part/models.py:3784 msgid "Choices must be unique" msgstr "" -#: part/models.py:3575 -msgid "Test templates can only be created for trackable parts" +#: part/models.py:3626 +msgid "Test templates can only be created for testable parts" msgstr "" -#: part/models.py:3586 +#: part/models.py:3637 msgid "Test template with the same key already exists for part" msgstr "" -#: part/models.py:3603 templates/js/translated/part.js:2898 +#: part/models.py:3654 templates/js/translated/part.js:2898 msgid "Test Name" msgstr "" -#: part/models.py:3604 +#: part/models.py:3655 msgid "Enter a name for the test" msgstr "" -#: part/models.py:3610 +#: part/models.py:3661 msgid "Test Key" msgstr "" -#: part/models.py:3611 +#: part/models.py:3662 msgid "Simplified key for the test" msgstr "" -#: part/models.py:3618 +#: part/models.py:3669 msgid "Test Description" msgstr "" -#: part/models.py:3619 +#: part/models.py:3670 msgid "Enter description for this test" msgstr "" -#: part/models.py:3623 report/models.py:208 +#: part/models.py:3674 report/models.py:216 #: templates/js/translated/part.js:2919 #: templates/js/translated/table_filters.js:502 msgid "Enabled" msgstr "" -#: part/models.py:3623 +#: part/models.py:3674 msgid "Is this test enabled?" msgstr "" -#: part/models.py:3628 templates/js/translated/part.js:2927 +#: part/models.py:3679 templates/js/translated/part.js:2927 #: templates/js/translated/table_filters.js:498 msgid "Required" msgstr "" -#: part/models.py:3629 +#: part/models.py:3680 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:3634 templates/js/translated/part.js:2935 +#: part/models.py:3685 templates/js/translated/part.js:2935 msgid "Requires Value" msgstr "" -#: part/models.py:3635 +#: part/models.py:3686 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:3640 templates/js/translated/part.js:2942 +#: part/models.py:3691 templates/js/translated/part.js:2942 msgid "Requires Attachment" msgstr "" -#: part/models.py:3642 +#: part/models.py:3693 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:3648 part/models.py:3792 templates/js/translated/part.js:1643 +#: part/models.py:3699 part/models.py:3843 templates/js/translated/part.js:1643 msgid "Choices" msgstr "" -#: part/models.py:3649 +#: part/models.py:3700 msgid "Valid choices for this test (comma-separated)" msgstr "" -#: part/models.py:3681 +#: part/models.py:3732 msgid "Part Parameter Template" msgstr "" -#: part/models.py:3708 +#: part/models.py:3759 msgid "Checkbox parameters cannot have units" msgstr "" -#: part/models.py:3713 +#: part/models.py:3764 msgid "Checkbox parameters cannot have choices" msgstr "" -#: part/models.py:3750 +#: part/models.py:3801 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:3765 +#: part/models.py:3816 msgid "Parameter Name" msgstr "" -#: part/models.py:3772 +#: part/models.py:3823 msgid "Physical units for this parameter" msgstr "" -#: part/models.py:3780 +#: part/models.py:3831 msgid "Parameter description" msgstr "" -#: part/models.py:3786 templates/js/translated/part.js:1634 +#: part/models.py:3837 templates/js/translated/part.js:1634 #: templates/js/translated/table_filters.js:837 msgid "Checkbox" msgstr "" -#: part/models.py:3787 +#: part/models.py:3838 msgid "Is this parameter a checkbox?" msgstr "" -#: part/models.py:3793 +#: part/models.py:3844 msgid "Valid choices for this parameter (comma-separated)" msgstr "" -#: part/models.py:3827 +#: part/models.py:3881 msgid "Part Parameter" msgstr "" -#: part/models.py:3853 +#: part/models.py:3907 msgid "Parameter cannot be modified - part is locked" msgstr "" -#: part/models.py:3889 +#: part/models.py:3945 msgid "Invalid choice for parameter value" msgstr "" -#: part/models.py:3938 +#: part/models.py:3996 msgid "Parent Part" msgstr "" -#: part/models.py:3946 part/models.py:4054 part/models.py:4055 +#: part/models.py:4004 part/models.py:4112 part/models.py:4113 #: templates/InvenTree/settings/settings_staff_js.html:295 msgid "Parameter Template" msgstr "" -#: part/models.py:3952 +#: part/models.py:4010 msgid "Parameter Value" msgstr "" -#: part/models.py:4002 +#: part/models.py:4060 msgid "Part Category Parameter Template" msgstr "" -#: part/models.py:4061 templates/InvenTree/settings/settings_staff_js.html:304 +#: part/models.py:4119 templates/InvenTree/settings/settings_staff_js.html:304 msgid "Default Value" msgstr "" -#: part/models.py:4062 +#: part/models.py:4120 msgid "Default Parameter Value" msgstr "" -#: part/models.py:4100 +#: part/models.py:4158 msgid "Part ID or part name" msgstr "" -#: part/models.py:4101 +#: part/models.py:4159 msgid "Unique part ID value" msgstr "" -#: part/models.py:4103 +#: part/models.py:4161 msgid "Part IPN value" msgstr "" -#: part/models.py:4104 +#: part/models.py:4162 msgid "Level" msgstr "" -#: part/models.py:4104 +#: part/models.py:4162 msgid "BOM level" msgstr "" -#: part/models.py:4215 +#: part/models.py:4272 msgid "BOM item cannot be modified - assembly is locked" msgstr "" -#: part/models.py:4222 +#: part/models.py:4279 msgid "BOM item cannot be modified - variant assembly is locked" msgstr "" -#: part/models.py:4232 +#: part/models.py:4289 msgid "Select parent part" msgstr "" -#: part/models.py:4242 +#: part/models.py:4299 msgid "Sub part" msgstr "" -#: part/models.py:4243 +#: part/models.py:4300 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:4254 +#: part/models.py:4311 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:4260 +#: part/models.py:4317 msgid "This BOM item is optional" msgstr "" -#: part/models.py:4266 +#: part/models.py:4323 msgid "This BOM item is consumable (it is not tracked in build orders)" msgstr "" -#: part/models.py:4273 part/templates/part/upload_bom.html:55 +#: part/models.py:4330 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "" -#: part/models.py:4274 +#: part/models.py:4331 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:4281 +#: part/models.py:4338 msgid "BOM item reference" msgstr "" -#: part/models.py:4289 +#: part/models.py:4346 msgid "BOM item notes" msgstr "" -#: part/models.py:4295 +#: part/models.py:4352 msgid "Checksum" msgstr "" -#: part/models.py:4296 +#: part/models.py:4353 msgid "BOM line checksum" msgstr "" -#: part/models.py:4301 templates/js/translated/table_filters.js:181 +#: part/models.py:4358 templates/js/translated/table_filters.js:181 msgid "Validated" msgstr "" -#: part/models.py:4302 +#: part/models.py:4359 msgid "This BOM item has been validated" msgstr "" -#: part/models.py:4307 part/templates/part/upload_bom.html:57 +#: part/models.py:4364 part/templates/part/upload_bom.html:57 #: templates/js/translated/bom.js:1054 #: templates/js/translated/table_filters.js:185 #: templates/js/translated/table_filters.js:218 msgid "Gets inherited" msgstr "" -#: part/models.py:4308 +#: part/models.py:4365 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:4314 +#: part/models.py:4371 msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:4399 stock/models.py:685 +#: part/models.py:4456 stock/models.py:762 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:4409 part/models.py:4411 +#: part/models.py:4466 part/models.py:4468 msgid "Sub part must be specified" msgstr "" -#: part/models.py:4551 +#: part/models.py:4613 msgid "BOM Item Substitute" msgstr "" -#: part/models.py:4572 +#: part/models.py:4634 msgid "Substitute part cannot be the same as the master part" msgstr "" -#: part/models.py:4585 +#: part/models.py:4647 msgid "Parent BOM item" msgstr "" -#: part/models.py:4593 +#: part/models.py:4655 msgid "Substitute part" msgstr "" -#: part/models.py:4609 +#: part/models.py:4671 msgid "Part 1" msgstr "" -#: part/models.py:4617 +#: part/models.py:4679 msgid "Part 2" msgstr "" -#: part/models.py:4618 +#: part/models.py:4680 msgid "Select Related Part" msgstr "" -#: part/models.py:4637 +#: part/models.py:4699 msgid "Part relationship cannot be created between a part and itself" msgstr "" -#: part/models.py:4642 +#: part/models.py:4704 msgid "Duplicate relationship already exists" msgstr "" @@ -7449,340 +7662,352 @@ msgstr "" msgid "Number of results recorded against this template" msgstr "" -#: part/serializers.py:225 part/serializers.py:243 stock/serializers.py:616 +#: part/serializers.py:225 part/serializers.py:243 stock/serializers.py:643 msgid "Purchase currency of this stock item" msgstr "" -#: part/serializers.py:291 +#: part/serializers.py:268 +msgid "Speculative Quantity" +msgstr "" + +#: part/serializers.py:277 +msgid "Model ID" +msgstr "" + +#: part/serializers.py:324 msgid "Number of parts using this template" msgstr "" -#: part/serializers.py:421 +#: part/serializers.py:465 msgid "No parts selected" msgstr "" -#: part/serializers.py:431 +#: part/serializers.py:475 msgid "Select category" msgstr "" -#: part/serializers.py:466 +#: part/serializers.py:510 msgid "Original Part" msgstr "" -#: part/serializers.py:467 +#: part/serializers.py:511 msgid "Select original part to duplicate" msgstr "" -#: part/serializers.py:472 +#: part/serializers.py:516 msgid "Copy Image" msgstr "" -#: part/serializers.py:473 +#: part/serializers.py:517 msgid "Copy image from original part" msgstr "" -#: part/serializers.py:479 part/templates/part/detail.html:293 +#: part/serializers.py:523 part/templates/part/detail.html:293 msgid "Copy BOM" msgstr "" -#: part/serializers.py:480 +#: part/serializers.py:524 msgid "Copy bill of materials from original part" msgstr "" -#: part/serializers.py:486 +#: part/serializers.py:530 msgid "Copy Parameters" msgstr "" -#: part/serializers.py:487 +#: part/serializers.py:531 msgid "Copy parameter data from original part" msgstr "" -#: part/serializers.py:493 +#: part/serializers.py:537 msgid "Copy Notes" msgstr "" -#: part/serializers.py:494 +#: part/serializers.py:538 msgid "Copy notes from original part" msgstr "" -#: part/serializers.py:512 +#: part/serializers.py:556 msgid "Initial Stock Quantity" msgstr "" -#: part/serializers.py:514 +#: part/serializers.py:558 msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added." msgstr "" -#: part/serializers.py:521 +#: part/serializers.py:565 msgid "Initial Stock Location" msgstr "" -#: part/serializers.py:522 +#: part/serializers.py:566 msgid "Specify initial stock location for this Part" msgstr "" -#: part/serializers.py:539 +#: part/serializers.py:583 msgid "Select supplier (or leave blank to skip)" msgstr "" -#: part/serializers.py:555 +#: part/serializers.py:599 msgid "Select manufacturer (or leave blank to skip)" msgstr "" -#: part/serializers.py:565 +#: part/serializers.py:609 msgid "Manufacturer part number" msgstr "" -#: part/serializers.py:572 +#: part/serializers.py:616 msgid "Selected company is not a valid supplier" msgstr "" -#: part/serializers.py:581 +#: part/serializers.py:625 msgid "Selected company is not a valid manufacturer" msgstr "" -#: part/serializers.py:592 +#: part/serializers.py:636 msgid "Manufacturer part matching this MPN already exists" msgstr "" -#: part/serializers.py:599 +#: part/serializers.py:643 msgid "Supplier part matching this SKU already exists" msgstr "" -#: part/serializers.py:903 +#: part/serializers.py:955 msgid "Revisions" msgstr "" -#: part/serializers.py:908 +#: part/serializers.py:960 msgid "Unallocated Stock" msgstr "" -#: part/serializers.py:911 +#: part/serializers.py:963 msgid "Variant Stock" msgstr "" -#: part/serializers.py:941 part/templates/part/copy_part.html:9 +#: part/serializers.py:993 part/templates/part/copy_part.html:9 #: templates/js/translated/part.js:474 msgid "Duplicate Part" msgstr "" -#: part/serializers.py:942 +#: part/serializers.py:994 msgid "Copy initial data from another Part" msgstr "" -#: part/serializers.py:948 templates/js/translated/part.js:103 +#: part/serializers.py:1000 templates/js/translated/part.js:103 msgid "Initial Stock" msgstr "" -#: part/serializers.py:949 +#: part/serializers.py:1001 msgid "Create Part with initial stock quantity" msgstr "" -#: part/serializers.py:955 +#: part/serializers.py:1007 msgid "Supplier Information" msgstr "" -#: part/serializers.py:956 +#: part/serializers.py:1008 msgid "Add initial supplier information for this part" msgstr "" -#: part/serializers.py:964 +#: part/serializers.py:1016 msgid "Copy Category Parameters" msgstr "" -#: part/serializers.py:965 +#: part/serializers.py:1017 msgid "Copy parameter templates from selected part category" msgstr "" -#: part/serializers.py:970 +#: part/serializers.py:1022 msgid "Existing Image" msgstr "" -#: part/serializers.py:971 +#: part/serializers.py:1023 msgid "Filename of an existing part image" msgstr "" -#: part/serializers.py:988 +#: part/serializers.py:1040 msgid "Image file does not exist" msgstr "" -#: part/serializers.py:1194 +#: part/serializers.py:1247 msgid "Limit stocktake report to a particular part, and any variant parts" msgstr "" -#: part/serializers.py:1204 +#: part/serializers.py:1257 msgid "Limit stocktake report to a particular part category, and any child categories" msgstr "" -#: part/serializers.py:1214 +#: part/serializers.py:1267 msgid "Limit stocktake report to a particular stock location, and any child locations" msgstr "" -#: part/serializers.py:1220 +#: part/serializers.py:1273 msgid "Exclude External Stock" msgstr "" -#: part/serializers.py:1221 +#: part/serializers.py:1274 msgid "Exclude stock items in external locations" msgstr "" -#: part/serializers.py:1226 +#: part/serializers.py:1279 msgid "Generate Report" msgstr "" -#: part/serializers.py:1227 +#: part/serializers.py:1280 msgid "Generate report file containing calculated stocktake data" msgstr "" -#: part/serializers.py:1232 +#: part/serializers.py:1285 msgid "Update Parts" msgstr "" -#: part/serializers.py:1233 +#: part/serializers.py:1286 msgid "Update specified parts with calculated stocktake data" msgstr "" -#: part/serializers.py:1241 +#: part/serializers.py:1294 msgid "Stocktake functionality is not enabled" msgstr "" -#: part/serializers.py:1347 +#: part/serializers.py:1299 +msgid "Background worker check failed" +msgstr "" + +#: part/serializers.py:1401 msgid "Override calculated value for minimum price" msgstr "" -#: part/serializers.py:1354 +#: part/serializers.py:1408 msgid "Minimum price currency" msgstr "" -#: part/serializers.py:1362 +#: part/serializers.py:1416 msgid "Override calculated value for maximum price" msgstr "" -#: part/serializers.py:1369 +#: part/serializers.py:1423 msgid "Maximum price currency" msgstr "" -#: part/serializers.py:1398 +#: part/serializers.py:1452 msgid "Update" msgstr "" -#: part/serializers.py:1399 +#: part/serializers.py:1453 msgid "Update pricing for this part" msgstr "" -#: part/serializers.py:1422 +#: part/serializers.py:1476 #, python-brace-format msgid "Could not convert from provided currencies to {default_currency}" msgstr "" -#: part/serializers.py:1429 +#: part/serializers.py:1483 msgid "Minimum price must not be greater than maximum price" msgstr "" -#: part/serializers.py:1432 +#: part/serializers.py:1486 msgid "Maximum price must not be less than minimum price" msgstr "" -#: part/serializers.py:1576 +#: part/serializers.py:1634 msgid "Select the parent assembly" msgstr "" -#: part/serializers.py:1585 +#: part/serializers.py:1643 msgid "Component Name" msgstr "" -#: part/serializers.py:1588 +#: part/serializers.py:1646 msgid "Component IPN" msgstr "" -#: part/serializers.py:1591 +#: part/serializers.py:1649 msgid "Component Description" msgstr "" -#: part/serializers.py:1597 +#: part/serializers.py:1655 msgid "Select the component part" msgstr "" -#: part/serializers.py:1606 part/templates/part/part_base.html:235 +#: part/serializers.py:1664 part/templates/part/part_base.html:243 #: templates/js/translated/bom.js:1219 msgid "Can Build" msgstr "" -#: part/serializers.py:1837 +#: part/serializers.py:1899 msgid "Select part to copy BOM from" msgstr "" -#: part/serializers.py:1845 +#: part/serializers.py:1907 msgid "Remove Existing Data" msgstr "" -#: part/serializers.py:1846 +#: part/serializers.py:1908 msgid "Remove existing BOM items before copying" msgstr "" -#: part/serializers.py:1851 +#: part/serializers.py:1913 msgid "Include Inherited" msgstr "" -#: part/serializers.py:1852 +#: part/serializers.py:1914 msgid "Include BOM items which are inherited from templated parts" msgstr "" -#: part/serializers.py:1857 +#: part/serializers.py:1919 msgid "Skip Invalid Rows" msgstr "" -#: part/serializers.py:1858 +#: part/serializers.py:1920 msgid "Enable this option to skip invalid rows" msgstr "" -#: part/serializers.py:1863 +#: part/serializers.py:1925 msgid "Copy Substitute Parts" msgstr "" -#: part/serializers.py:1864 +#: part/serializers.py:1926 msgid "Copy substitute parts when duplicate BOM items" msgstr "" -#: part/serializers.py:1901 +#: part/serializers.py:1963 msgid "Clear Existing BOM" msgstr "" -#: part/serializers.py:1902 +#: part/serializers.py:1964 msgid "Delete existing BOM items before uploading" msgstr "" -#: part/serializers.py:1934 +#: part/serializers.py:1996 msgid "No part column specified" msgstr "" -#: part/serializers.py:1978 +#: part/serializers.py:2040 msgid "Multiple matching parts found" msgstr "" -#: part/serializers.py:1981 +#: part/serializers.py:2043 msgid "No matching part found" msgstr "" -#: part/serializers.py:1984 +#: part/serializers.py:2045 msgid "Part is not designated as a component" msgstr "" -#: part/serializers.py:1993 +#: part/serializers.py:2054 msgid "Quantity not provided" msgstr "" -#: part/serializers.py:2001 +#: part/serializers.py:2062 msgid "Invalid quantity" msgstr "" -#: part/serializers.py:2024 +#: part/serializers.py:2085 msgid "At least one BOM item is required" msgstr "" #: part/stocktake.py:224 templates/js/translated/part.js:1073 #: templates/js/translated/part.js:1828 templates/js/translated/part.js:1884 -#: templates/js/translated/purchase_order.js:2154 +#: templates/js/translated/purchase_order.js:2138 msgid "Total Quantity" msgstr "" @@ -7932,9 +8157,9 @@ msgid "Add stocktake information" msgstr "" #: part/templates/part/detail.html:67 part/templates/part/part_sidebar.html:50 -#: stock/admin.py:255 templates/InvenTree/settings/part_stocktake.html:30 +#: stock/admin.py:256 templates/InvenTree/settings/part_stocktake.html:30 #: templates/InvenTree/settings/sidebar.html:53 -#: templates/js/translated/stock.js:2301 users/models.py:204 +#: templates/js/translated/stock.js:2302 users/models.py:204 msgid "Stocktake" msgstr "" @@ -8093,142 +8318,146 @@ msgstr "" msgid "Part List" msgstr "" -#: part/templates/part/part_base.html:25 part/templates/part/part_base.html:29 +#: part/templates/part/part_base.html:26 part/templates/part/part_base.html:30 msgid "You are subscribed to notifications for this part" msgstr "" -#: part/templates/part/part_base.html:33 +#: part/templates/part/part_base.html:34 msgid "Subscribe to notifications for this part" msgstr "" -#: part/templates/part/part_base.html:52 +#: part/templates/part/part_base.html:53 #: stock/templates/stock/item_base.html:62 -#: stock/templates/stock/location.html:71 templates/js/translated/label.js:136 +#: stock/templates/stock/location.html:72 templates/js/translated/label.js:136 msgid "Print Label" msgstr "" -#: part/templates/part/part_base.html:58 +#: part/templates/part/part_base.html:59 msgid "Show pricing information" msgstr "" -#: part/templates/part/part_base.html:63 -#: stock/templates/stock/item_base.html:110 -#: stock/templates/stock/location.html:80 +#: part/templates/part/part_base.html:64 +#: stock/templates/stock/item_base.html:107 +#: stock/templates/stock/location.html:81 msgid "Stock actions" msgstr "" -#: part/templates/part/part_base.html:70 +#: part/templates/part/part_base.html:71 msgid "Count part stock" msgstr "" -#: part/templates/part/part_base.html:76 +#: part/templates/part/part_base.html:77 msgid "Transfer part stock" msgstr "" -#: part/templates/part/part_base.html:91 templates/js/translated/part.js:2299 +#: part/templates/part/part_base.html:92 templates/js/translated/part.js:2299 msgid "Part actions" msgstr "" -#: part/templates/part/part_base.html:94 +#: part/templates/part/part_base.html:95 msgid "Duplicate part" msgstr "" -#: part/templates/part/part_base.html:97 +#: part/templates/part/part_base.html:98 msgid "Edit part" msgstr "" -#: part/templates/part/part_base.html:100 +#: part/templates/part/part_base.html:101 msgid "Delete part" msgstr "" -#: part/templates/part/part_base.html:119 +#: part/templates/part/part_base.html:120 msgid "Part is a template part (variants can be made from this part)" msgstr "" -#: part/templates/part/part_base.html:123 +#: part/templates/part/part_base.html:124 msgid "Part can be assembled from other parts" msgstr "" -#: part/templates/part/part_base.html:127 +#: part/templates/part/part_base.html:128 msgid "Part can be used in assemblies" msgstr "" -#: part/templates/part/part_base.html:131 +#: part/templates/part/part_base.html:132 msgid "Part stock is tracked by serial number" msgstr "" -#: part/templates/part/part_base.html:135 +#: part/templates/part/part_base.html:136 msgid "Part can be purchased from external suppliers" msgstr "" -#: part/templates/part/part_base.html:139 +#: part/templates/part/part_base.html:140 msgid "Part can be sold to customers" msgstr "" -#: part/templates/part/part_base.html:145 +#: part/templates/part/part_base.html:146 msgid "Part is not active" msgstr "" -#: part/templates/part/part_base.html:153 +#: part/templates/part/part_base.html:154 msgid "Part is virtual (not a physical part)" msgstr "" -#: part/templates/part/part_base.html:163 -#: part/templates/part/part_base.html:690 +#: part/templates/part/part_base.html:164 +#: part/templates/part/part_base.html:698 msgid "Show Part Details" msgstr "" #: part/templates/part/part_base.html:218 -#: stock/templates/stock/item_base.html:388 +msgid "Required for Orders" +msgstr "" + +#: part/templates/part/part_base.html:226 +#: stock/templates/stock/item_base.html:385 msgid "Allocated to Build Orders" msgstr "" -#: part/templates/part/part_base.html:227 -#: stock/templates/stock/item_base.html:381 +#: part/templates/part/part_base.html:235 +#: stock/templates/stock/item_base.html:378 msgid "Allocated to Sales Orders" msgstr "" -#: part/templates/part/part_base.html:300 +#: part/templates/part/part_base.html:308 msgid "Minimum stock level" msgstr "" -#: part/templates/part/part_base.html:331 templates/js/translated/bom.js:1071 +#: part/templates/part/part_base.html:339 templates/js/translated/bom.js:1071 #: templates/js/translated/part.js:1271 templates/js/translated/part.js:2463 #: templates/js/translated/pricing.js:391 -#: templates/js/translated/pricing.js:1054 +#: templates/js/translated/pricing.js:1052 msgid "Price Range" msgstr "" -#: part/templates/part/part_base.html:361 +#: part/templates/part/part_base.html:369 msgid "Latest Serial Number" msgstr "" -#: part/templates/part/part_base.html:365 -#: stock/templates/stock/item_base.html:322 +#: part/templates/part/part_base.html:373 +#: stock/templates/stock/item_base.html:319 msgid "Search for serial number" msgstr "" -#: part/templates/part/part_base.html:453 +#: part/templates/part/part_base.html:461 msgid "Part QR Code" msgstr "" -#: part/templates/part/part_base.html:470 +#: part/templates/part/part_base.html:478 msgid "Link Barcode to Part" msgstr "" -#: part/templates/part/part_base.html:520 +#: part/templates/part/part_base.html:528 msgid "Calculate" msgstr "" -#: part/templates/part/part_base.html:537 +#: part/templates/part/part_base.html:545 msgid "Remove associated image from this part" msgstr "" -#: part/templates/part/part_base.html:588 +#: part/templates/part/part_base.html:596 msgid "No matching images found" msgstr "" -#: part/templates/part/part_base.html:684 +#: part/templates/part/part_base.html:692 msgid "Hide Part Details" msgstr "" @@ -8282,13 +8511,13 @@ msgid "Variants" msgstr "" #: part/templates/part/part_sidebar.html:14 -#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:21 +#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:22 #: stock/templates/stock/stock_app_base.html:10 #: templates/InvenTree/search.html:153 #: templates/InvenTree/settings/sidebar.html:51 #: templates/js/translated/part.js:1249 templates/js/translated/part.js:2152 #: templates/js/translated/part.js:2411 templates/js/translated/stock.js:1066 -#: templates/js/translated/stock.js:2155 templates/navbar.html:31 +#: templates/js/translated/stock.js:2156 templates/navbar.html:31 msgid "Stock" msgstr "" @@ -8324,17 +8553,17 @@ msgstr "" #: part/templates/part/prices.html:18 #: templates/InvenTree/settings/settings_staff_js.html:80 #: templates/InvenTree/settings/user.html:24 -#: templates/js/translated/helpers.js:103 +#: templates/js/translated/helpers.js:104 #: templates/js/translated/pricing.js:628 templates/notes_buttons.html:3 #: templates/notes_buttons.html:4 msgid "Edit" msgstr "" -#: part/templates/part/prices.html:28 stock/admin.py:251 -#: stock/templates/stock/item_base.html:446 -#: templates/js/translated/company.js:1703 -#: templates/js/translated/company.js:1713 -#: templates/js/translated/stock.js:2331 +#: part/templates/part/prices.html:28 stock/admin.py:252 +#: stock/templates/stock/item_base.html:443 +#: templates/js/translated/company.js:1704 +#: templates/js/translated/company.js:1714 +#: templates/js/translated/stock.js:2332 msgid "Last Updated" msgstr "" @@ -8406,7 +8635,7 @@ msgid "Update Pricing" msgstr "" #: part/templates/part/stock_count.html:7 -#: templates/js/translated/model_renderers.js:228 +#: templates/js/translated/model_renderers.js:231 #: templates/js/translated/part.js:707 templates/js/translated/part.js:2147 #: templates/js/translated/part.js:2149 msgid "No Stock" @@ -8486,7 +8715,7 @@ msgstr "" msgid "Part Pricing" msgstr "" -#: plugin/api.py:172 +#: plugin/api.py:175 msgid "Plugin cannot be deleted as it is currently active" msgstr "" @@ -8498,78 +8727,85 @@ msgstr "" msgid "No matching action found" msgstr "" -#: plugin/base/barcodes/api.py:125 plugin/base/barcodes/api.py:371 -#: plugin/base/barcodes/api.py:546 +#: plugin/base/barcodes/api.py:203 msgid "No match found for barcode data" msgstr "" -#: plugin/base/barcodes/api.py:129 +#: plugin/base/barcodes/api.py:207 msgid "Match found for barcode data" msgstr "" -#: plugin/base/barcodes/api.py:163 plugin/base/barcodes/serializers.py:45 +#: plugin/base/barcodes/api.py:245 plugin/base/barcodes/serializers.py:72 msgid "Model is not supported" msgstr "" -#: plugin/base/barcodes/api.py:168 +#: plugin/base/barcodes/api.py:250 msgid "Model instance not found" msgstr "" -#: plugin/base/barcodes/api.py:197 -#: templates/js/translated/purchase_order.js:1468 +#: plugin/base/barcodes/api.py:279 +#: templates/js/translated/purchase_order.js:1452 msgid "Barcode matches existing item" msgstr "" -#: plugin/base/barcodes/api.py:336 +#: plugin/base/barcodes/api.py:418 msgid "No matching part data found" msgstr "" -#: plugin/base/barcodes/api.py:353 +#: plugin/base/barcodes/api.py:434 msgid "No matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:357 +#: plugin/base/barcodes/api.py:437 msgid "Multiple matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:381 +#: plugin/base/barcodes/api.py:450 plugin/base/barcodes/api.py:664 +msgid "No matching plugin found for barcode data" +msgstr "" + +#: plugin/base/barcodes/api.py:460 msgid "Matched supplier part" msgstr "" -#: plugin/base/barcodes/api.py:430 +#: plugin/base/barcodes/api.py:525 msgid "Item has already been received" msgstr "" -#: plugin/base/barcodes/api.py:467 +#: plugin/base/barcodes/api.py:563 msgid "No match for supplier barcode" msgstr "" -#: plugin/base/barcodes/api.py:510 +#: plugin/base/barcodes/api.py:612 msgid "Multiple matching line items found" msgstr "" -#: plugin/base/barcodes/api.py:513 +#: plugin/base/barcodes/api.py:615 msgid "No matching line item found" msgstr "" -#: plugin/base/barcodes/api.py:551 plugin/base/barcodes/api.py:558 +#: plugin/base/barcodes/api.py:661 +msgid "No sales order provided" +msgstr "" + +#: plugin/base/barcodes/api.py:670 msgid "Barcode does not match an existing stock item" msgstr "" -#: plugin/base/barcodes/api.py:569 +#: plugin/base/barcodes/api.py:686 msgid "Stock item does not match line item" msgstr "" -#: plugin/base/barcodes/api.py:593 templates/js/translated/build.js:2780 -#: templates/js/translated/sales_order.js:1953 +#: plugin/base/barcodes/api.py:716 templates/js/translated/build.js:2798 +#: templates/js/translated/sales_order.js:1934 msgid "Insufficient stock available" msgstr "" -#: plugin/base/barcodes/api.py:602 +#: plugin/base/barcodes/api.py:729 msgid "Stock item allocated to sales order" msgstr "" -#: plugin/base/barcodes/api.py:606 +#: plugin/base/barcodes/api.py:732 msgid "Not enough information" msgstr "" @@ -8591,75 +8827,75 @@ msgstr "" msgid "Purchase order does not match supplier" msgstr "" -#: plugin/base/barcodes/mixins.py:465 +#: plugin/base/barcodes/mixins.py:467 msgid "Failed to find pending line item for supplier part" msgstr "" -#: plugin/base/barcodes/mixins.py:496 +#: plugin/base/barcodes/mixins.py:498 msgid "Further information required to receive line item" msgstr "" -#: plugin/base/barcodes/mixins.py:504 +#: plugin/base/barcodes/mixins.py:506 msgid "Received purchase order line item" msgstr "" -#: plugin/base/barcodes/serializers.py:21 +#: plugin/base/barcodes/serializers.py:48 msgid "Scanned barcode data" msgstr "" -#: plugin/base/barcodes/serializers.py:30 +#: plugin/base/barcodes/serializers.py:57 msgid "Model name to generate barcode for" msgstr "" -#: plugin/base/barcodes/serializers.py:35 +#: plugin/base/barcodes/serializers.py:62 msgid "Primary key of model object to generate barcode for" msgstr "" -#: plugin/base/barcodes/serializers.py:105 +#: plugin/base/barcodes/serializers.py:132 msgid "Purchase Order to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:111 +#: plugin/base/barcodes/serializers.py:138 msgid "Purchase order is not pending" msgstr "" -#: plugin/base/barcodes/serializers.py:129 +#: plugin/base/barcodes/serializers.py:156 msgid "PurchaseOrder to receive items against" msgstr "" -#: plugin/base/barcodes/serializers.py:135 +#: plugin/base/barcodes/serializers.py:162 msgid "Purchase order has not been placed" msgstr "" -#: plugin/base/barcodes/serializers.py:143 +#: plugin/base/barcodes/serializers.py:170 msgid "Location to receive items into" msgstr "" -#: plugin/base/barcodes/serializers.py:149 +#: plugin/base/barcodes/serializers.py:176 msgid "Cannot select a structural location" msgstr "" -#: plugin/base/barcodes/serializers.py:163 +#: plugin/base/barcodes/serializers.py:190 msgid "Sales Order to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:169 +#: plugin/base/barcodes/serializers.py:196 msgid "Sales order is not pending" msgstr "" -#: plugin/base/barcodes/serializers.py:177 +#: plugin/base/barcodes/serializers.py:204 msgid "Sales order line item to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:184 +#: plugin/base/barcodes/serializers.py:211 msgid "Sales order shipment to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:190 +#: plugin/base/barcodes/serializers.py:217 msgid "Shipment has already been delivered" msgstr "" -#: plugin/base/barcodes/serializers.py:195 +#: plugin/base/barcodes/serializers.py:222 msgid "Quantity to allocate" msgstr "" @@ -8679,6 +8915,42 @@ msgstr "" msgid "No items provided to print" msgstr "" +#: plugin/base/ui/serializers.py:30 +msgid "Plugin Name" +msgstr "" + +#: plugin/base/ui/serializers.py:34 +msgid "Feature Type" +msgstr "" + +#: plugin/base/ui/serializers.py:39 +msgid "Feature Label" +msgstr "" + +#: plugin/base/ui/serializers.py:44 +msgid "Feature Title" +msgstr "" + +#: plugin/base/ui/serializers.py:49 +msgid "Feature Description" +msgstr "" + +#: plugin/base/ui/serializers.py:54 +msgid "Feature Icon" +msgstr "" + +#: plugin/base/ui/serializers.py:58 +msgid "Feature Options" +msgstr "" + +#: plugin/base/ui/serializers.py:61 +msgid "Feature Context" +msgstr "" + +#: plugin/base/ui/serializers.py:64 +msgid "Feature Source (javascript)" +msgstr "" + #: plugin/builtin/barcodes/inventree_barcode.py:27 msgid "InvenTree Barcodes" msgstr "" @@ -8756,7 +9028,7 @@ msgstr "" msgid "URL that is used to send messages to a slack channel" msgstr "" -#: plugin/builtin/integration/core_notifications.py:164 +#: plugin/builtin/integration/core_notifications.py:166 msgid "Open link" msgstr "" @@ -8794,11 +9066,11 @@ msgstr "" msgid "Provides support for printing using a machine" msgstr "" -#: plugin/builtin/labels/inventree_machine.py:149 +#: plugin/builtin/labels/inventree_machine.py:151 msgid "last used" msgstr "" -#: plugin/builtin/labels/inventree_machine.py:166 +#: plugin/builtin/labels/inventree_machine.py:168 msgid "Options" msgstr "" @@ -8822,7 +9094,7 @@ msgstr "" msgid "Print a border around each label" msgstr "" -#: plugin/builtin/labels/label_sheet.py:47 report/models.py:307 +#: plugin/builtin/labels/label_sheet.py:47 report/models.py:315 msgid "Landscape" msgstr "" @@ -8894,19 +9166,19 @@ msgstr "" msgid "The Supplier which acts as 'TME'" msgstr "" -#: plugin/installer.py:194 plugin/installer.py:282 +#: plugin/installer.py:199 plugin/installer.py:282 msgid "Only staff users can administer plugins" msgstr "" -#: plugin/installer.py:197 +#: plugin/installer.py:202 msgid "Plugin installation is disabled" msgstr "" -#: plugin/installer.py:248 +#: plugin/installer.py:246 msgid "Installed plugin successfully" msgstr "" -#: plugin/installer.py:254 +#: plugin/installer.py:251 #, python-brace-format msgid "Installed plugin into {path}" msgstr "" @@ -8943,10 +9215,6 @@ msgstr "" msgid "Plugin Configurations" msgstr "" -#: plugin/models.py:43 users/models.py:100 -msgid "Key" -msgstr "" - #: plugin/models.py:44 msgid "Key of plugin" msgstr "" @@ -8955,7 +9223,7 @@ msgstr "" msgid "PluginName of the plugin" msgstr "" -#: plugin/models.py:59 plugin/serializers.py:90 +#: plugin/models.py:59 plugin/serializers.py:115 msgid "Package Name" msgstr "" @@ -8984,17 +9252,17 @@ msgstr "" msgid "Package Plugin" msgstr "" -#: plugin/models.py:220 report/models.py:474 +#: plugin/models.py:259 report/models.py:482 #: templates/InvenTree/settings/plugin_settings.html:9 #: templates/js/translated/plugin.js:51 msgid "Plugin" msgstr "" -#: plugin/models.py:267 +#: plugin/models.py:306 msgid "Method" msgstr "" -#: plugin/plugin.py:270 +#: plugin/plugin.py:275 msgid "No author found" msgstr "" @@ -9053,81 +9321,157 @@ msgstr "" msgid "InvenTree Contributors" msgstr "" -#: plugin/serializers.py:81 -msgid "Source URL" +#: plugin/samples/integration/user_interface_sample.py:27 +msgid "Enable Part Panels" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:28 +msgid "Enable custom panels for Part views" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:33 +msgid "Enable Purchase Order Panels" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:34 +msgid "Enable custom panels for Purchase Order views" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:39 +msgid "Enable Broken Panels" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:40 +msgid "Enable broken panels for testing" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:45 +msgid "Enable Dynamic Panel" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:46 +msgid "Enable dynamic panels for testing" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:98 +msgid "Part Panel" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:131 +msgid "Broken Dashboard Item" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:133 +msgid "This is a broken dashboard item - it will not render!" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:139 +msgid "Sample Dashboard Item" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:141 +msgid "This is a sample dashboard item. It renders a simple string of HTML content." +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:147 +msgid "Context Dashboard Item" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:161 +msgid "Admin Dashboard Item" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:162 +msgid "This is an admin-only dashboard item." +msgstr "" + +#: plugin/serializers.py:82 +msgid "Source File" msgstr "" #: plugin/serializers.py:83 +msgid "Path to the source file for admin integration" +msgstr "" + +#: plugin/serializers.py:90 +msgid "Optional context data for the admin integration" +msgstr "" + +#: plugin/serializers.py:106 +msgid "Source URL" +msgstr "" + +#: plugin/serializers.py:108 msgid "Source for the package - this can be a custom registry or a VCS path" msgstr "" -#: plugin/serializers.py:92 +#: plugin/serializers.py:117 msgid "Name for the Plugin Package - can also contain a version indicator" msgstr "" -#: plugin/serializers.py:99 +#: plugin/serializers.py:124 #: templates/InvenTree/settings/plugin_settings.html:42 #: templates/js/translated/plugin.js:86 msgid "Version" msgstr "" -#: plugin/serializers.py:101 +#: plugin/serializers.py:126 msgid "Version specifier for the plugin. Leave blank for latest version." msgstr "" -#: plugin/serializers.py:106 +#: plugin/serializers.py:131 msgid "Confirm plugin installation" msgstr "" -#: plugin/serializers.py:108 +#: plugin/serializers.py:133 msgid "This will install this plugin now into the current instance. The instance will go into maintenance." msgstr "" -#: plugin/serializers.py:121 +#: plugin/serializers.py:146 msgid "Installation not confirmed" msgstr "" -#: plugin/serializers.py:123 +#: plugin/serializers.py:148 msgid "Either packagename of URL must be provided" msgstr "" -#: plugin/serializers.py:161 +#: plugin/serializers.py:184 msgid "Full reload" msgstr "" -#: plugin/serializers.py:162 +#: plugin/serializers.py:185 msgid "Perform a full reload of the plugin registry" msgstr "" -#: plugin/serializers.py:168 +#: plugin/serializers.py:191 msgid "Force reload" msgstr "" -#: plugin/serializers.py:170 +#: plugin/serializers.py:193 msgid "Force a reload of the plugin registry, even if it is already loaded" msgstr "" -#: plugin/serializers.py:177 +#: plugin/serializers.py:200 msgid "Collect plugins" msgstr "" -#: plugin/serializers.py:178 +#: plugin/serializers.py:201 msgid "Collect plugins and add them to the registry" msgstr "" -#: plugin/serializers.py:205 +#: plugin/serializers.py:228 msgid "Activate Plugin" msgstr "" -#: plugin/serializers.py:206 +#: plugin/serializers.py:229 msgid "Activate this plugin" msgstr "" -#: plugin/serializers.py:226 +#: plugin/serializers.py:249 msgid "Delete configuration" msgstr "" -#: plugin/serializers.py:227 +#: plugin/serializers.py:250 msgid "Delete the plugin configuration from the database" msgstr "" @@ -9135,11 +9479,11 @@ msgstr "" msgid "No valid objects provided to template" msgstr "" -#: report/api.py:103 report/models.py:438 report/serializers.py:98 -#: report/serializers.py:148 templates/js/translated/purchase_order.js:1817 +#: report/api.py:103 report/models.py:446 report/serializers.py:99 +#: report/serializers.py:149 templates/js/translated/purchase_order.js:1801 #: templates/js/translated/return_order.js:353 -#: templates/js/translated/sales_order.js:887 -#: templates/js/translated/sales_order.js:1047 +#: templates/js/translated/sales_order.js:846 +#: templates/js/translated/sales_order.js:1020 msgid "Items" msgstr "" @@ -9167,7 +9511,11 @@ msgstr "" msgid "Error printing label" msgstr "" -#: report/api.py:375 report/api.py:411 +#: report/api.py:358 +msgid "Report saved at time of printing" +msgstr "" + +#: report/api.py:384 report/api.py:420 #, python-brace-format msgid "Template file '{template}' is missing or does not exist" msgstr "" @@ -9204,135 +9552,143 @@ msgstr "" msgid "Revision number (auto-increments)" msgstr "" -#: report/models.py:202 +#: report/models.py:168 +msgid "Attach to Model on Print" +msgstr "" + +#: report/models.py:170 +msgid "Save report output as an attachment against linked model instance when printing" +msgstr "" + +#: report/models.py:210 msgid "Filename Pattern" msgstr "" -#: report/models.py:203 +#: report/models.py:211 msgid "Pattern for generating filenames" msgstr "" -#: report/models.py:208 +#: report/models.py:216 msgid "Template is enabled" msgstr "" -#: report/models.py:214 +#: report/models.py:222 msgid "Target model type for template" msgstr "" -#: report/models.py:234 +#: report/models.py:242 msgid "Filters" msgstr "" -#: report/models.py:235 +#: report/models.py:243 msgid "Template query filters (comma-separated list of key=value pairs)" msgstr "" -#: report/models.py:294 report/models.py:361 +#: report/models.py:302 report/models.py:369 msgid "Template file" msgstr "" -#: report/models.py:302 +#: report/models.py:310 msgid "Page size for PDF reports" msgstr "" -#: report/models.py:308 +#: report/models.py:316 msgid "Render report in landscape orientation" msgstr "" -#: report/models.py:367 +#: report/models.py:375 msgid "Width [mm]" msgstr "" -#: report/models.py:368 +#: report/models.py:376 msgid "Label width, specified in mm" msgstr "" -#: report/models.py:374 +#: report/models.py:382 msgid "Height [mm]" msgstr "" -#: report/models.py:375 +#: report/models.py:383 msgid "Label height, specified in mm" msgstr "" -#: report/models.py:438 +#: report/models.py:446 msgid "Number of items to process" msgstr "" -#: report/models.py:444 +#: report/models.py:452 msgid "Report generation is complete" msgstr "" -#: report/models.py:448 templates/js/translated/build.js:2349 +#: report/models.py:456 templates/js/translated/build.js:2352 msgid "Progress" msgstr "" -#: report/models.py:448 +#: report/models.py:456 msgid "Report generation progress" msgstr "" -#: report/models.py:456 +#: report/models.py:464 msgid "Report Template" msgstr "" -#: report/models.py:463 report/models.py:486 +#: report/models.py:471 report/models.py:494 msgid "Output File" msgstr "" -#: report/models.py:464 report/models.py:487 +#: report/models.py:472 report/models.py:495 msgid "Generated output file" msgstr "" -#: report/models.py:475 +#: report/models.py:483 msgid "Label output plugin" msgstr "" -#: report/models.py:479 +#: report/models.py:487 msgid "Label Template" msgstr "" -#: report/models.py:502 +#: report/models.py:510 msgid "Snippet" msgstr "" -#: report/models.py:503 +#: report/models.py:511 msgid "Report snippet file" msgstr "" -#: report/models.py:510 +#: report/models.py:518 msgid "Snippet file description" msgstr "" -#: report/models.py:528 +#: report/models.py:536 msgid "Asset" msgstr "" -#: report/models.py:529 +#: report/models.py:537 msgid "Report asset file" msgstr "" -#: report/models.py:536 +#: report/models.py:544 msgid "Asset file description" msgstr "" -#: report/serializers.py:91 +#: report/serializers.py:92 msgid "Select report template" msgstr "" -#: report/serializers.py:99 report/serializers.py:149 +#: report/serializers.py:100 report/serializers.py:150 msgid "List of item primary keys to include in the report" msgstr "" -#: report/serializers.py:132 +#: report/serializers.py:133 msgid "Select label template" msgstr "" -#: report/serializers.py:140 +#: report/serializers.py:141 msgid "Printing Plugin" msgstr "" -#: report/serializers.py:141 +#: report/serializers.py:142 msgid "Select plugin to use for label printing" msgstr "" @@ -9365,9 +9721,9 @@ msgstr "" #: report/templates/report/inventree_sales_order_report.html:30 #: templates/js/translated/order.js:341 templates/js/translated/pricing.js:527 #: templates/js/translated/pricing.js:596 -#: templates/js/translated/pricing.js:834 -#: templates/js/translated/purchase_order.js:2185 -#: templates/js/translated/sales_order.js:1873 +#: templates/js/translated/pricing.js:832 +#: templates/js/translated/purchase_order.js:2169 +#: templates/js/translated/sales_order.js:1854 msgid "Unit Price" msgstr "" @@ -9379,13 +9735,18 @@ msgstr "" #: report/templates/report/inventree_purchase_order_report.html:72 #: report/templates/report/inventree_sales_order_report.html:72 -#: templates/js/translated/purchase_order.js:2087 -#: templates/js/translated/sales_order.js:1842 +#: templates/js/translated/purchase_order.js:2071 +#: templates/js/translated/sales_order.js:1823 #: templates/test_statistics_table.html:8 #: templates/test_statistics_table.html:19 msgid "Total" msgstr "" +#: report/templates/report/inventree_sales_order_shipment_report.html:23 +#: stock/templates/stock/stock_sidebar.html:8 +msgid "Allocations" +msgstr "" + #: report/templates/report/inventree_stock_location_report.html:97 msgid "Stock location items" msgstr "" @@ -9403,15 +9764,13 @@ msgstr "" msgid "Test" msgstr "" -#: report/templates/report/inventree_test_report.html:103 stock/models.py:2544 -msgid "Result" -msgstr "" - #: report/templates/report/inventree_test_report.html:129 +#: templates/js/translated/stock.js:1448 msgid "Pass" msgstr "" #: report/templates/report/inventree_test_report.html:131 +#: templates/js/translated/stock.js:1450 msgid "Fail" msgstr "" @@ -9420,17 +9779,18 @@ msgid "No result (required)" msgstr "" #: report/templates/report/inventree_test_report.html:140 +#: templates/js/translated/stock.js:1455 msgid "No result" msgstr "" #: report/templates/report/inventree_test_report.html:153 -#: stock/serializers.py:599 stock/templates/stock/stock_sidebar.html:16 +#: stock/serializers.py:626 stock/templates/stock/stock_sidebar.html:16 msgid "Installed Items" msgstr "" -#: report/templates/report/inventree_test_report.html:167 stock/admin.py:161 +#: report/templates/report/inventree_test_report.html:167 stock/admin.py:162 #: templates/js/translated/stock.js:706 templates/js/translated/stock.js:877 -#: templates/js/translated/stock.js:3194 +#: templates/js/translated/stock.js:3195 msgid "Serial" msgstr "" @@ -9450,67 +9810,67 @@ msgstr "" msgid "company_image tag requires a Company instance" msgstr "" -#: stock/admin.py:51 stock/admin.py:171 +#: stock/admin.py:51 stock/admin.py:172 msgid "Location ID" msgstr "" -#: stock/admin.py:63 stock/templates/stock/location.html:128 -#: stock/templates/stock/location.html:134 +#: stock/admin.py:63 stock/templates/stock/location.html:129 +#: stock/templates/stock/location.html:135 msgid "Location Path" msgstr "" -#: stock/admin.py:148 +#: stock/admin.py:149 msgid "Stock Item ID" msgstr "" -#: stock/admin.py:167 +#: stock/admin.py:168 msgid "Status Code" msgstr "" -#: stock/admin.py:179 +#: stock/admin.py:180 msgid "Supplier Part ID" msgstr "" -#: stock/admin.py:184 +#: stock/admin.py:185 msgid "Supplier Part SKU" msgstr "" -#: stock/admin.py:189 +#: stock/admin.py:190 msgid "Supplier ID" msgstr "" -#: stock/admin.py:200 +#: stock/admin.py:201 msgid "Customer ID" msgstr "" -#: stock/admin.py:205 stock/models.py:825 -#: stock/templates/stock/item_base.html:354 +#: stock/admin.py:206 stock/models.py:902 +#: stock/templates/stock/item_base.html:351 msgid "Installed In" msgstr "" -#: stock/admin.py:210 +#: stock/admin.py:211 msgid "Build ID" msgstr "" -#: stock/admin.py:220 +#: stock/admin.py:221 msgid "Sales Order ID" msgstr "" -#: stock/admin.py:225 +#: stock/admin.py:226 msgid "Purchase Order ID" msgstr "" -#: stock/admin.py:240 +#: stock/admin.py:241 msgid "Review Needed" msgstr "" -#: stock/admin.py:245 +#: stock/admin.py:246 msgid "Delete on Deplete" msgstr "" -#: stock/admin.py:260 stock/models.py:919 -#: stock/templates/stock/item_base.html:433 -#: templates/js/translated/stock.js:2315 users/models.py:124 +#: stock/admin.py:261 stock/models.py:996 +#: stock/templates/stock/item_base.html:430 +#: templates/js/translated/stock.js:2316 users/models.py:124 msgid "Expiry Date" msgstr "" @@ -9526,11 +9886,11 @@ msgstr "" msgid "Include sub-locations in filtered results" msgstr "" -#: stock/api.py:367 stock/serializers.py:1186 +#: stock/api.py:366 stock/serializers.py:1217 msgid "Parent Location" msgstr "" -#: stock/api.py:368 +#: stock/api.py:367 msgid "Filter by parent location" msgstr "" @@ -9550,8 +9910,8 @@ msgstr "" msgid "Expiry date after" msgstr "" -#: stock/api.py:840 stock/serializers.py:604 -#: stock/templates/stock/item_base.html:439 +#: stock/api.py:840 stock/serializers.py:631 +#: stock/templates/stock/item_base.html:436 #: templates/js/translated/table_filters.js:448 msgid "Stale" msgstr "" @@ -9560,594 +9920,598 @@ msgstr "" msgid "Quantity is required" msgstr "" -#: stock/api.py:933 +#: stock/api.py:932 msgid "Valid part must be supplied" msgstr "" -#: stock/api.py:964 +#: stock/api.py:959 msgid "The given supplier part does not exist" msgstr "" -#: stock/api.py:974 +#: stock/api.py:969 msgid "The supplier part has a pack size defined, but flag use_pack_size not set" msgstr "" -#: stock/api.py:1005 +#: stock/api.py:996 msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "" -#: stock/models.py:64 +#: stock/models.py:70 msgid "Stock Location type" msgstr "" -#: stock/models.py:65 +#: stock/models.py:71 msgid "Stock Location types" msgstr "" -#: stock/models.py:91 +#: stock/models.py:97 msgid "Default icon for all locations that have no icon set (optional)" msgstr "" -#: stock/models.py:131 stock/models.py:807 -#: stock/templates/stock/location.html:17 +#: stock/models.py:137 stock/models.py:884 +#: stock/templates/stock/location.html:18 #: stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "" -#: stock/models.py:132 stock/templates/stock/location.html:183 +#: stock/models.py:138 stock/templates/stock/location.html:184 #: templates/InvenTree/search.html:166 templates/js/translated/search.js:178 #: users/models.py:205 msgid "Stock Locations" msgstr "" -#: stock/models.py:180 stock/models.py:968 -#: stock/templates/stock/item_base.html:247 +#: stock/models.py:186 stock/models.py:1045 +#: stock/templates/stock/item_base.html:244 msgid "Owner" msgstr "" -#: stock/models.py:181 stock/models.py:969 +#: stock/models.py:187 stock/models.py:1046 msgid "Select Owner" msgstr "" -#: stock/models.py:189 +#: stock/models.py:195 msgid "Stock items may not be directly located into a structural stock locations, but may be located to child locations." msgstr "" -#: stock/models.py:196 templates/js/translated/stock.js:2865 +#: stock/models.py:202 templates/js/translated/stock.js:2866 #: templates/js/translated/table_filters.js:250 msgid "External" msgstr "" -#: stock/models.py:197 +#: stock/models.py:203 msgid "This is an external stock location" msgstr "" -#: stock/models.py:203 templates/js/translated/stock.js:2874 +#: stock/models.py:209 templates/js/translated/stock.js:2875 #: templates/js/translated/table_filters.js:253 msgid "Location type" msgstr "" -#: stock/models.py:207 +#: stock/models.py:213 msgid "Stock location type of this location" msgstr "" -#: stock/models.py:279 +#: stock/models.py:285 msgid "You cannot make this stock location structural because some stock items are already located into it!" msgstr "" -#: stock/models.py:664 +#: stock/models.py:492 +msgid "Part must be specified" +msgstr "" + +#: stock/models.py:741 msgid "Stock items cannot be located into structural stock locations!" msgstr "" -#: stock/models.py:691 stock/serializers.py:480 +#: stock/models.py:768 stock/serializers.py:492 msgid "Stock item cannot be created for virtual parts" msgstr "" -#: stock/models.py:708 +#: stock/models.py:785 #, python-brace-format msgid "Part type ('{self.supplier_part.part}') must be {self.part}" msgstr "" -#: stock/models.py:718 stock/models.py:731 +#: stock/models.py:795 stock/models.py:808 msgid "Quantity must be 1 for item with a serial number" msgstr "" -#: stock/models.py:721 +#: stock/models.py:798 msgid "Serial number cannot be set if quantity greater than 1" msgstr "" -#: stock/models.py:743 +#: stock/models.py:820 msgid "Item cannot belong to itself" msgstr "" -#: stock/models.py:748 +#: stock/models.py:825 msgid "Item must have a build reference if is_building=True" msgstr "" -#: stock/models.py:761 +#: stock/models.py:838 msgid "Build reference does not point to the same part object" msgstr "" -#: stock/models.py:777 +#: stock/models.py:854 msgid "Parent Stock Item" msgstr "" -#: stock/models.py:789 +#: stock/models.py:866 msgid "Base part" msgstr "" -#: stock/models.py:799 +#: stock/models.py:876 msgid "Select a matching supplier part for this stock item" msgstr "" -#: stock/models.py:811 +#: stock/models.py:888 msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:819 stock/serializers.py:1580 +#: stock/models.py:896 stock/serializers.py:1611 msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:830 +#: stock/models.py:907 msgid "Is this item installed in another item?" msgstr "" -#: stock/models.py:849 +#: stock/models.py:926 msgid "Serial number for this item" msgstr "" -#: stock/models.py:863 stock/serializers.py:1563 +#: stock/models.py:940 stock/serializers.py:1594 msgid "Batch code for this stock item" msgstr "" -#: stock/models.py:868 +#: stock/models.py:945 msgid "Stock Quantity" msgstr "" -#: stock/models.py:878 +#: stock/models.py:955 msgid "Source Build" msgstr "" -#: stock/models.py:881 +#: stock/models.py:958 msgid "Build for this stock item" msgstr "" -#: stock/models.py:888 stock/templates/stock/item_base.html:363 +#: stock/models.py:965 stock/templates/stock/item_base.html:360 msgid "Consumed By" msgstr "" -#: stock/models.py:891 +#: stock/models.py:968 msgid "Build order which consumed this stock item" msgstr "" -#: stock/models.py:900 +#: stock/models.py:977 msgid "Source Purchase Order" msgstr "" -#: stock/models.py:904 +#: stock/models.py:981 msgid "Purchase order for this stock item" msgstr "" -#: stock/models.py:910 +#: stock/models.py:987 msgid "Destination Sales Order" msgstr "" -#: stock/models.py:921 +#: stock/models.py:998 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "" -#: stock/models.py:939 +#: stock/models.py:1016 msgid "Delete on deplete" msgstr "" -#: stock/models.py:940 +#: stock/models.py:1017 msgid "Delete this Stock Item when stock is depleted" msgstr "" -#: stock/models.py:960 +#: stock/models.py:1037 msgid "Single unit purchase price at time of purchase" msgstr "" -#: stock/models.py:991 +#: stock/models.py:1068 msgid "Converted to part" msgstr "" -#: stock/models.py:1511 +#: stock/models.py:1600 msgid "Part is not set as trackable" msgstr "" -#: stock/models.py:1517 +#: stock/models.py:1606 msgid "Quantity must be integer" msgstr "" -#: stock/models.py:1525 +#: stock/models.py:1614 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({self.quantity})" msgstr "" -#: stock/models.py:1531 -msgid "Serial numbers must be a list of integers" +#: stock/models.py:1620 +msgid "Serial numbers must be provided as a list" msgstr "" -#: stock/models.py:1536 +#: stock/models.py:1625 msgid "Quantity does not match serial numbers" msgstr "" -#: stock/models.py:1544 stock/serializers.py:726 -msgid "Serial numbers already exist" -msgstr "" - -#: stock/models.py:1641 +#: stock/models.py:1747 stock/models.py:2563 msgid "Test template does not exist" msgstr "" -#: stock/models.py:1659 +#: stock/models.py:1765 msgid "Stock item has been assigned to a sales order" msgstr "" -#: stock/models.py:1663 +#: stock/models.py:1769 msgid "Stock item is installed in another item" msgstr "" -#: stock/models.py:1666 +#: stock/models.py:1772 msgid "Stock item contains other items" msgstr "" -#: stock/models.py:1669 +#: stock/models.py:1775 msgid "Stock item has been assigned to a customer" msgstr "" -#: stock/models.py:1672 +#: stock/models.py:1778 msgid "Stock item is currently in production" msgstr "" -#: stock/models.py:1675 +#: stock/models.py:1781 msgid "Serialized stock cannot be merged" msgstr "" -#: stock/models.py:1682 stock/serializers.py:1469 +#: stock/models.py:1788 stock/serializers.py:1500 msgid "Duplicate stock items" msgstr "" -#: stock/models.py:1686 +#: stock/models.py:1792 msgid "Stock items must refer to the same part" msgstr "" -#: stock/models.py:1694 +#: stock/models.py:1800 msgid "Stock items must refer to the same supplier part" msgstr "" -#: stock/models.py:1699 +#: stock/models.py:1805 msgid "Stock status codes must match" msgstr "" -#: stock/models.py:1960 +#: stock/models.py:2066 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:2343 +#: stock/models.py:2462 msgid "Stock Item Tracking" msgstr "" -#: stock/models.py:2376 +#: stock/models.py:2495 msgid "Entry notes" msgstr "" -#: stock/models.py:2416 +#: stock/models.py:2535 msgid "Stock Item Test Result" msgstr "" -#: stock/models.py:2449 +#: stock/models.py:2566 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:2454 +#: stock/models.py:2570 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:2459 +#: stock/models.py:2575 msgid "Invalid value for this test" msgstr "" -#: stock/models.py:2544 +#: stock/models.py:2660 msgid "Test result" msgstr "" -#: stock/models.py:2551 +#: stock/models.py:2667 msgid "Test output value" msgstr "" -#: stock/models.py:2559 +#: stock/models.py:2675 stock/serializers.py:245 msgid "Test result attachment" msgstr "" -#: stock/models.py:2563 +#: stock/models.py:2679 msgid "Test notes" msgstr "" -#: stock/models.py:2571 templates/js/translated/stock.js:1633 +#: stock/models.py:2687 templates/js/translated/stock.js:1633 msgid "Test station" msgstr "" -#: stock/models.py:2572 +#: stock/models.py:2688 msgid "The identifier of the test station where the test was performed" msgstr "" -#: stock/models.py:2578 +#: stock/models.py:2694 msgid "Started" msgstr "" -#: stock/models.py:2579 +#: stock/models.py:2695 msgid "The timestamp of the test start" msgstr "" -#: stock/models.py:2585 +#: stock/models.py:2701 msgid "Finished" msgstr "" -#: stock/models.py:2586 +#: stock/models.py:2702 msgid "The timestamp of the test finish" msgstr "" -#: stock/serializers.py:76 +#: stock/serializers.py:77 msgid "Generated batch code" msgstr "" -#: stock/serializers.py:85 +#: stock/serializers.py:86 msgid "Select build order" msgstr "" -#: stock/serializers.py:94 +#: stock/serializers.py:95 msgid "Select stock item to generate batch code for" msgstr "" -#: stock/serializers.py:103 +#: stock/serializers.py:104 msgid "Select location to generate batch code for" msgstr "" -#: stock/serializers.py:112 +#: stock/serializers.py:113 msgid "Select part to generate batch code for" msgstr "" -#: stock/serializers.py:121 +#: stock/serializers.py:122 msgid "Select purchase order" msgstr "" -#: stock/serializers.py:128 +#: stock/serializers.py:129 msgid "Enter quantity for batch code" msgstr "" -#: stock/serializers.py:151 +#: stock/serializers.py:152 msgid "Generated serial number" msgstr "" -#: stock/serializers.py:160 +#: stock/serializers.py:161 msgid "Select part to generate serial number for" msgstr "" -#: stock/serializers.py:168 +#: stock/serializers.py:169 msgid "Quantity of serial numbers to generate" msgstr "" -#: stock/serializers.py:233 +#: stock/serializers.py:234 msgid "Test template for this result" msgstr "" -#: stock/serializers.py:254 +#: stock/serializers.py:258 msgid "Template ID or test name must be provided" msgstr "" -#: stock/serializers.py:286 +#: stock/serializers.py:290 msgid "The test finished time cannot be earlier than the test started time" msgstr "" -#: stock/serializers.py:323 +#: stock/serializers.py:327 msgid "Serial number is too large" msgstr "" -#: stock/serializers.py:452 stock/templates/stock/item_base.html:193 +#: stock/serializers.py:462 stock/templates/stock/item_base.html:190 msgid "Parent Item" msgstr "" -#: stock/serializers.py:453 +#: stock/serializers.py:463 msgid "Parent stock item" msgstr "" -#: stock/serializers.py:472 +#: stock/serializers.py:484 msgid "Use pack size when adding: the quantity defined is the number of packs" msgstr "" -#: stock/serializers.py:596 stock/templates/stock/item_base.html:437 +#: stock/serializers.py:623 stock/templates/stock/item_base.html:434 #: templates/js/translated/table_filters.js:442 users/models.py:174 msgid "Expired" msgstr "" -#: stock/serializers.py:602 stock/templates/stock/stock_sidebar.html:20 +#: stock/serializers.py:629 stock/templates/stock/stock_sidebar.html:20 msgid "Child Items" msgstr "" -#: stock/serializers.py:606 +#: stock/serializers.py:633 msgid "Tracking Items" msgstr "" -#: stock/serializers.py:612 +#: stock/serializers.py:639 msgid "Purchase price of this stock item, per unit or pack" msgstr "" -#: stock/serializers.py:631 +#: stock/serializers.py:658 msgid "Minimum Pricing" msgstr "" -#: stock/serializers.py:637 +#: stock/serializers.py:664 msgid "Maximum Pricing" msgstr "" -#: stock/serializers.py:661 +#: stock/serializers.py:688 msgid "Enter number of stock items to serialize" msgstr "" -#: stock/serializers.py:674 +#: stock/serializers.py:701 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({q})" msgstr "" -#: stock/serializers.py:681 +#: stock/serializers.py:708 msgid "Enter serial numbers for new items" msgstr "" -#: stock/serializers.py:692 stock/serializers.py:1426 stock/serializers.py:1682 +#: stock/serializers.py:719 stock/serializers.py:1457 stock/serializers.py:1713 msgid "Destination stock location" msgstr "" -#: stock/serializers.py:699 +#: stock/serializers.py:726 msgid "Optional note field" msgstr "" -#: stock/serializers.py:709 +#: stock/serializers.py:736 msgid "Serial numbers cannot be assigned to this part" msgstr "" -#: stock/serializers.py:764 +#: stock/serializers.py:756 +msgid "Serial numbers already exist" +msgstr "" + +#: stock/serializers.py:795 msgid "Select stock item to install" msgstr "" -#: stock/serializers.py:771 +#: stock/serializers.py:802 msgid "Quantity to Install" msgstr "" -#: stock/serializers.py:772 +#: stock/serializers.py:803 msgid "Enter the quantity of items to install" msgstr "" -#: stock/serializers.py:777 stock/serializers.py:857 stock/serializers.py:983 -#: stock/serializers.py:1033 +#: stock/serializers.py:808 stock/serializers.py:888 stock/serializers.py:1014 +#: stock/serializers.py:1064 msgid "Add transaction note (optional)" msgstr "" -#: stock/serializers.py:785 +#: stock/serializers.py:816 msgid "Quantity to install must be at least 1" msgstr "" -#: stock/serializers.py:793 +#: stock/serializers.py:824 msgid "Stock item is unavailable" msgstr "" -#: stock/serializers.py:804 +#: stock/serializers.py:835 msgid "Selected part is not in the Bill of Materials" msgstr "" -#: stock/serializers.py:817 +#: stock/serializers.py:848 msgid "Quantity to install must not exceed available quantity" msgstr "" -#: stock/serializers.py:852 +#: stock/serializers.py:883 msgid "Destination location for uninstalled item" msgstr "" -#: stock/serializers.py:903 +#: stock/serializers.py:934 msgid "Unsupported statistic type: " msgstr "" -#: stock/serializers.py:917 +#: stock/serializers.py:948 msgid "Select part to convert stock item into" msgstr "" -#: stock/serializers.py:930 +#: stock/serializers.py:961 msgid "Selected part is not a valid option for conversion" msgstr "" -#: stock/serializers.py:947 +#: stock/serializers.py:978 msgid "Cannot convert stock item with assigned SupplierPart" msgstr "" -#: stock/serializers.py:978 +#: stock/serializers.py:1009 msgid "Destination location for returned item" msgstr "" -#: stock/serializers.py:1015 +#: stock/serializers.py:1046 msgid "Select stock items to change status" msgstr "" -#: stock/serializers.py:1021 +#: stock/serializers.py:1052 msgid "No stock items selected" msgstr "" -#: stock/serializers.py:1117 stock/serializers.py:1194 -#: stock/templates/stock/location.html:162 -#: stock/templates/stock/location.html:219 +#: stock/serializers.py:1148 stock/serializers.py:1225 +#: stock/templates/stock/location.html:163 +#: stock/templates/stock/location.html:220 #: stock/templates/stock/location_sidebar.html:5 msgid "Sublocations" msgstr "" -#: stock/serializers.py:1187 templates/js/translated/stock.js:160 +#: stock/serializers.py:1218 templates/js/translated/stock.js:160 msgid "Parent stock location" msgstr "" -#: stock/serializers.py:1298 +#: stock/serializers.py:1329 msgid "Part must be salable" msgstr "" -#: stock/serializers.py:1302 +#: stock/serializers.py:1333 msgid "Item is allocated to a sales order" msgstr "" -#: stock/serializers.py:1306 +#: stock/serializers.py:1337 msgid "Item is allocated to a build order" msgstr "" -#: stock/serializers.py:1330 +#: stock/serializers.py:1361 msgid "Customer to assign stock items" msgstr "" -#: stock/serializers.py:1336 +#: stock/serializers.py:1367 msgid "Selected company is not a customer" msgstr "" -#: stock/serializers.py:1344 +#: stock/serializers.py:1375 msgid "Stock assignment notes" msgstr "" -#: stock/serializers.py:1354 stock/serializers.py:1608 +#: stock/serializers.py:1385 stock/serializers.py:1639 msgid "A list of stock items must be provided" msgstr "" -#: stock/serializers.py:1433 +#: stock/serializers.py:1464 msgid "Stock merging notes" msgstr "" -#: stock/serializers.py:1438 +#: stock/serializers.py:1469 msgid "Allow mismatched suppliers" msgstr "" -#: stock/serializers.py:1439 +#: stock/serializers.py:1470 msgid "Allow stock items with different supplier parts to be merged" msgstr "" -#: stock/serializers.py:1444 +#: stock/serializers.py:1475 msgid "Allow mismatched status" msgstr "" -#: stock/serializers.py:1445 +#: stock/serializers.py:1476 msgid "Allow stock items with different status codes to be merged" msgstr "" -#: stock/serializers.py:1455 +#: stock/serializers.py:1486 msgid "At least two stock items must be provided" msgstr "" -#: stock/serializers.py:1522 +#: stock/serializers.py:1553 msgid "No Change" msgstr "" -#: stock/serializers.py:1551 +#: stock/serializers.py:1582 msgid "StockItem primary key value" msgstr "" -#: stock/serializers.py:1570 +#: stock/serializers.py:1601 msgid "Stock item status code" msgstr "" -#: stock/serializers.py:1598 +#: stock/serializers.py:1629 msgid "Stock transaction notes" msgstr "" @@ -10175,107 +10539,107 @@ msgstr "" msgid "Quarantined" msgstr "" -#: stock/status_codes.py:40 +#: stock/status_codes.py:44 msgid "Legacy stock tracking entry" msgstr "" -#: stock/status_codes.py:42 templates/js/translated/stock.js:550 +#: stock/status_codes.py:46 templates/js/translated/stock.js:550 msgid "Stock item created" msgstr "" -#: stock/status_codes.py:45 +#: stock/status_codes.py:49 msgid "Edited stock item" msgstr "" -#: stock/status_codes.py:46 +#: stock/status_codes.py:50 msgid "Assigned serial number" msgstr "" -#: stock/status_codes.py:49 +#: stock/status_codes.py:53 msgid "Stock counted" msgstr "" -#: stock/status_codes.py:50 +#: stock/status_codes.py:54 msgid "Stock manually added" msgstr "" -#: stock/status_codes.py:51 +#: stock/status_codes.py:55 msgid "Stock manually removed" msgstr "" -#: stock/status_codes.py:54 +#: stock/status_codes.py:58 msgid "Location changed" msgstr "" -#: stock/status_codes.py:55 +#: stock/status_codes.py:59 msgid "Stock updated" msgstr "" -#: stock/status_codes.py:58 +#: stock/status_codes.py:62 msgid "Installed into assembly" msgstr "" -#: stock/status_codes.py:59 +#: stock/status_codes.py:63 msgid "Removed from assembly" msgstr "" -#: stock/status_codes.py:61 +#: stock/status_codes.py:65 msgid "Installed component item" msgstr "" -#: stock/status_codes.py:62 +#: stock/status_codes.py:66 msgid "Removed component item" msgstr "" -#: stock/status_codes.py:65 +#: stock/status_codes.py:69 msgid "Split from parent item" msgstr "" -#: stock/status_codes.py:66 +#: stock/status_codes.py:70 msgid "Split child item" msgstr "" -#: stock/status_codes.py:69 templates/js/translated/stock.js:1943 +#: stock/status_codes.py:73 templates/js/translated/stock.js:1944 msgid "Merged stock items" msgstr "" -#: stock/status_codes.py:72 +#: stock/status_codes.py:76 msgid "Converted to variant" msgstr "" -#: stock/status_codes.py:75 +#: stock/status_codes.py:79 msgid "Build order output created" msgstr "" -#: stock/status_codes.py:76 +#: stock/status_codes.py:80 msgid "Build order output completed" msgstr "" -#: stock/status_codes.py:77 +#: stock/status_codes.py:81 msgid "Build order output rejected" msgstr "" -#: stock/status_codes.py:78 templates/js/translated/stock.js:1849 +#: stock/status_codes.py:82 templates/js/translated/stock.js:1849 msgid "Consumed by build order" msgstr "" -#: stock/status_codes.py:81 +#: stock/status_codes.py:85 msgid "Shipped against Sales Order" msgstr "" -#: stock/status_codes.py:84 +#: stock/status_codes.py:88 msgid "Received against Purchase Order" msgstr "" -#: stock/status_codes.py:87 +#: stock/status_codes.py:91 msgid "Returned against Return Order" msgstr "" -#: stock/status_codes.py:90 templates/js/translated/table_filters.js:382 +#: stock/status_codes.py:94 templates/js/translated/table_filters.js:382 msgid "Sent to customer" msgstr "" -#: stock/status_codes.py:91 +#: stock/status_codes.py:95 msgid "Returned from customer" msgstr "" @@ -10296,7 +10660,7 @@ msgstr "" msgid "Test Data" msgstr "" -#: stock/templates/stock/item.html:85 stock/templates/stock/item_base.html:65 +#: stock/templates/stock/item.html:85 msgid "Test Report" msgstr "" @@ -10316,7 +10680,7 @@ msgstr "" msgid "Installed Stock Items" msgstr "" -#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3354 +#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3355 msgid "Install Stock Item" msgstr "" @@ -10328,208 +10692,212 @@ msgstr "" msgid "Add Test Result" msgstr "" -#: stock/templates/stock/item_base.html:33 +#: stock/templates/stock/item_base.html:34 msgid "Locate stock item" msgstr "" -#: stock/templates/stock/item_base.html:51 +#: stock/templates/stock/item_base.html:52 msgid "Scan to Location" msgstr "" #: stock/templates/stock/item_base.html:59 -#: stock/templates/stock/location.html:67 +#: stock/templates/stock/location.html:68 #: templates/js/translated/filters.js:434 msgid "Printing actions" msgstr "" -#: stock/templates/stock/item_base.html:75 +#: stock/templates/stock/item_base.html:64 templates/js/translated/report.js:49 +msgid "Print Report" +msgstr "" + +#: stock/templates/stock/item_base.html:72 msgid "Stock adjustment actions" msgstr "" -#: stock/templates/stock/item_base.html:79 -#: stock/templates/stock/location.html:87 templates/js/translated/stock.js:1909 +#: stock/templates/stock/item_base.html:76 +#: stock/templates/stock/location.html:88 templates/js/translated/stock.js:1909 msgid "Count stock" msgstr "" -#: stock/templates/stock/item_base.html:81 +#: stock/templates/stock/item_base.html:78 #: templates/js/translated/stock.js:1891 msgid "Add stock" msgstr "" -#: stock/templates/stock/item_base.html:82 +#: stock/templates/stock/item_base.html:79 #: templates/js/translated/stock.js:1900 msgid "Remove stock" msgstr "" -#: stock/templates/stock/item_base.html:85 +#: stock/templates/stock/item_base.html:82 msgid "Serialize stock" msgstr "" -#: stock/templates/stock/item_base.html:88 -#: stock/templates/stock/location.html:93 templates/js/translated/stock.js:1918 +#: stock/templates/stock/item_base.html:85 +#: stock/templates/stock/location.html:94 templates/js/translated/stock.js:1918 msgid "Transfer stock" msgstr "" -#: stock/templates/stock/item_base.html:91 -#: templates/js/translated/stock.js:1972 +#: stock/templates/stock/item_base.html:88 +#: templates/js/translated/stock.js:1973 msgid "Assign to customer" msgstr "" -#: stock/templates/stock/item_base.html:94 +#: stock/templates/stock/item_base.html:91 msgid "Return to stock" msgstr "" -#: stock/templates/stock/item_base.html:97 +#: stock/templates/stock/item_base.html:94 msgid "Uninstall stock item" msgstr "" -#: stock/templates/stock/item_base.html:97 +#: stock/templates/stock/item_base.html:94 msgid "Uninstall" msgstr "" -#: stock/templates/stock/item_base.html:101 +#: stock/templates/stock/item_base.html:98 msgid "Install stock item" msgstr "" -#: stock/templates/stock/item_base.html:101 +#: stock/templates/stock/item_base.html:98 msgid "Install" msgstr "" -#: stock/templates/stock/item_base.html:115 +#: stock/templates/stock/item_base.html:112 msgid "Convert to variant" msgstr "" -#: stock/templates/stock/item_base.html:118 +#: stock/templates/stock/item_base.html:115 msgid "Duplicate stock item" msgstr "" -#: stock/templates/stock/item_base.html:120 +#: stock/templates/stock/item_base.html:117 msgid "Edit stock item" msgstr "" -#: stock/templates/stock/item_base.html:123 +#: stock/templates/stock/item_base.html:120 msgid "Delete stock item" msgstr "" -#: stock/templates/stock/item_base.html:169 templates/InvenTree/search.html:139 -#: templates/js/translated/build.js:2295 templates/navbar.html:38 +#: stock/templates/stock/item_base.html:166 templates/InvenTree/search.html:139 +#: templates/js/translated/build.js:2298 templates/navbar.html:38 msgid "Build" msgstr "" -#: stock/templates/stock/item_base.html:211 +#: stock/templates/stock/item_base.html:208 msgid "No manufacturer set" msgstr "" -#: stock/templates/stock/item_base.html:251 +#: stock/templates/stock/item_base.html:248 msgid "You are not in the list of owners of this item. This stock item cannot be edited." msgstr "" -#: stock/templates/stock/item_base.html:252 -#: stock/templates/stock/location.html:146 +#: stock/templates/stock/item_base.html:249 +#: stock/templates/stock/location.html:147 msgid "Read only" msgstr "" -#: stock/templates/stock/item_base.html:265 +#: stock/templates/stock/item_base.html:262 msgid "This stock item is unavailable" msgstr "" -#: stock/templates/stock/item_base.html:271 +#: stock/templates/stock/item_base.html:268 msgid "This stock item is in production and cannot be edited." msgstr "" -#: stock/templates/stock/item_base.html:272 +#: stock/templates/stock/item_base.html:269 msgid "Edit the stock item from the build view." msgstr "" -#: stock/templates/stock/item_base.html:287 +#: stock/templates/stock/item_base.html:284 msgid "This stock item is allocated to Sales Order" msgstr "" -#: stock/templates/stock/item_base.html:295 +#: stock/templates/stock/item_base.html:292 msgid "This stock item is allocated to Build Order" msgstr "" -#: stock/templates/stock/item_base.html:311 +#: stock/templates/stock/item_base.html:308 msgid "This stock item is serialized. It has a unique serial number and the quantity cannot be adjusted" msgstr "" -#: stock/templates/stock/item_base.html:317 +#: stock/templates/stock/item_base.html:314 msgid "previous page" msgstr "" -#: stock/templates/stock/item_base.html:317 +#: stock/templates/stock/item_base.html:314 msgid "Navigate to previous serial number" msgstr "" -#: stock/templates/stock/item_base.html:326 +#: stock/templates/stock/item_base.html:323 msgid "next page" msgstr "" -#: stock/templates/stock/item_base.html:326 +#: stock/templates/stock/item_base.html:323 msgid "Navigate to next serial number" msgstr "" -#: stock/templates/stock/item_base.html:398 -#: templates/js/translated/build.js:2552 +#: stock/templates/stock/item_base.html:395 +#: templates/js/translated/build.js:2559 msgid "No location set" msgstr "" -#: stock/templates/stock/item_base.html:413 +#: stock/templates/stock/item_base.html:410 msgid "Tests" msgstr "" -#: stock/templates/stock/item_base.html:419 +#: stock/templates/stock/item_base.html:416 msgid "This stock item has not passed all required tests" msgstr "" -#: stock/templates/stock/item_base.html:437 +#: stock/templates/stock/item_base.html:434 #, python-format msgid "This StockItem expired on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:439 +#: stock/templates/stock/item_base.html:436 #, python-format msgid "This StockItem expires on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:455 +#: stock/templates/stock/item_base.html:452 msgid "No stocktake performed" msgstr "" -#: stock/templates/stock/item_base.html:504 -#: templates/js/translated/stock.js:2037 +#: stock/templates/stock/item_base.html:501 +#: templates/js/translated/stock.js:2038 msgid "stock item" msgstr "" -#: stock/templates/stock/item_base.html:527 +#: stock/templates/stock/item_base.html:524 msgid "Edit Stock Status" msgstr "" -#: stock/templates/stock/item_base.html:536 +#: stock/templates/stock/item_base.html:533 msgid "Stock Item QR Code" msgstr "" -#: stock/templates/stock/item_base.html:547 +#: stock/templates/stock/item_base.html:544 msgid "Link Barcode to Stock Item" msgstr "" -#: stock/templates/stock/item_base.html:611 +#: stock/templates/stock/item_base.html:608 msgid "Select one of the part variants listed below." msgstr "" -#: stock/templates/stock/item_base.html:614 +#: stock/templates/stock/item_base.html:611 msgid "Warning" msgstr "" -#: stock/templates/stock/item_base.html:615 +#: stock/templates/stock/item_base.html:612 msgid "This action cannot be easily undone" msgstr "" -#: stock/templates/stock/item_base.html:623 +#: stock/templates/stock/item_base.html:620 msgid "Convert Stock Item" msgstr "" -#: stock/templates/stock/item_base.html:656 +#: stock/templates/stock/item_base.html:653 msgid "Return to Stock" msgstr "" @@ -10541,84 +10909,84 @@ msgstr "" msgid "Select quantity to serialize, and unique serial numbers." msgstr "" -#: stock/templates/stock/location.html:35 +#: stock/templates/stock/location.html:36 msgid "Perform stocktake for this stock location" msgstr "" -#: stock/templates/stock/location.html:42 +#: stock/templates/stock/location.html:43 msgid "Locate stock location" msgstr "" -#: stock/templates/stock/location.html:60 +#: stock/templates/stock/location.html:61 msgid "Scan stock items into this location" msgstr "" -#: stock/templates/stock/location.html:60 +#: stock/templates/stock/location.html:61 msgid "Scan In Stock Items" msgstr "" -#: stock/templates/stock/location.html:61 +#: stock/templates/stock/location.html:62 msgid "Scan stock container into this location" msgstr "" -#: stock/templates/stock/location.html:61 +#: stock/templates/stock/location.html:62 msgid "Scan In Container" msgstr "" -#: stock/templates/stock/location.html:72 +#: stock/templates/stock/location.html:73 msgid "Print Location Report" msgstr "" -#: stock/templates/stock/location.html:101 +#: stock/templates/stock/location.html:102 msgid "Location actions" msgstr "" -#: stock/templates/stock/location.html:103 +#: stock/templates/stock/location.html:104 msgid "Edit location" msgstr "" -#: stock/templates/stock/location.html:105 +#: stock/templates/stock/location.html:106 msgid "Delete location" msgstr "" -#: stock/templates/stock/location.html:135 +#: stock/templates/stock/location.html:136 msgid "Top level stock location" msgstr "" -#: stock/templates/stock/location.html:141 +#: stock/templates/stock/location.html:142 msgid "Location Owner" msgstr "" -#: stock/templates/stock/location.html:145 +#: stock/templates/stock/location.html:146 msgid "You are not in the list of owners of this location. This stock location cannot be edited." msgstr "" -#: stock/templates/stock/location.html:173 +#: stock/templates/stock/location.html:174 msgid "Location Type" msgstr "" -#: stock/templates/stock/location.html:223 +#: stock/templates/stock/location.html:224 msgid "Create new stock location" msgstr "" -#: stock/templates/stock/location.html:224 +#: stock/templates/stock/location.html:225 msgid "New Location" msgstr "" -#: stock/templates/stock/location.html:298 -#: templates/js/translated/stock.js:2657 +#: stock/templates/stock/location.html:299 +#: templates/js/translated/stock.js:2658 msgid "stock location" msgstr "" -#: stock/templates/stock/location.html:320 +#: stock/templates/stock/location.html:321 msgid "Scanned stock container into this location" msgstr "" -#: stock/templates/stock/location.html:393 +#: stock/templates/stock/location.html:394 msgid "Stock Location QR Code" msgstr "" -#: stock/templates/stock/location.html:404 +#: stock/templates/stock/location.html:405 msgid "Link Barcode to Stock Location" msgstr "" @@ -10630,10 +10998,6 @@ msgstr "" msgid "Stock Tracking" msgstr "" -#: stock/templates/stock/stock_sidebar.html:8 -msgid "Allocations" -msgstr "" - #: templates/403.html:6 templates/403.html:12 templates/403_csrf.html:7 msgid "Permission Denied" msgstr "" @@ -11107,9 +11471,9 @@ msgid "Rate" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:81 -#: templates/js/translated/forms.js:548 templates/js/translated/helpers.js:108 +#: templates/js/translated/forms.js:548 templates/js/translated/helpers.js:109 #: templates/js/translated/part.js:395 templates/js/translated/pricing.js:629 -#: templates/js/translated/stock.js:252 users/models.py:406 +#: templates/js/translated/stock.js:252 users/models.py:408 msgid "Delete" msgstr "" @@ -11130,7 +11494,7 @@ msgid "No project codes found" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:158 -#: templates/js/translated/build.js:2400 +#: templates/js/translated/build.js:2403 msgid "group" msgstr "" @@ -11196,7 +11560,7 @@ msgid "Delete Location Type" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:503 -#: templates/InvenTree/settings/stock.html:38 +#: templates/InvenTree/settings/stock.html:39 msgid "New Location Type" msgstr "" @@ -11253,7 +11617,7 @@ msgstr "" msgid "Stock Settings" msgstr "" -#: templates/InvenTree/settings/stock.html:34 +#: templates/InvenTree/settings/stock.html:35 msgid "Stock Location Types" msgstr "" @@ -11280,7 +11644,7 @@ msgid "Unverified" msgstr "" #: templates/InvenTree/settings/user.html:80 -#: templates/js/translated/company.js:957 +#: templates/js/translated/company.js:958 msgid "Primary" msgstr "" @@ -11532,7 +11896,7 @@ msgid "Submit Bug Report" msgstr "" #: templates/about.html:91 templates/clip.html:4 -#: templates/js/translated/helpers.js:592 +#: templates/js/translated/helpers.js:598 msgid "copy to clipboard" msgstr "" @@ -11738,23 +12102,24 @@ msgstr "" msgid "Barcode Identifier" msgstr "" -#: templates/base.html:103 +#: templates/base.html:102 msgid "Server Restart Required" msgstr "" -#: templates/base.html:106 +#: templates/base.html:105 msgid "A configuration option has been changed which requires a server restart" msgstr "" -#: templates/base.html:106 templates/base.html:116 +#: templates/base.html:105 templates/base.html:115 +#: templates/socialaccount/authentication_error.html:13 msgid "Contact your system administrator for further information" msgstr "" -#: templates/base.html:113 +#: templates/base.html:112 msgid "Pending Database Migrations" msgstr "" -#: templates/base.html:116 +#: templates/base.html:115 msgid "There are pending database migrations which require attention" msgstr "" @@ -11787,7 +12152,7 @@ msgid "The following parts are low on required stock" msgstr "" #: templates/email/build_order_required_stock.html:18 -#: templates/js/translated/bom.js:1674 templates/js/translated/build.js:2747 +#: templates/js/translated/bom.js:1674 templates/js/translated/build.js:2765 msgid "Required Quantity" msgstr "" @@ -11801,7 +12166,7 @@ msgid "Click on the following link to view this part" msgstr "" #: templates/email/low_stock_notification.html:18 -#: templates/js/translated/part.js:3237 +#: templates/js/translated/part.js:3253 msgid "Minimum Quantity" msgstr "" @@ -12039,7 +12404,7 @@ msgstr "" #: templates/js/translated/bom.js:189 templates/js/translated/bom.js:700 #: templates/js/translated/modals.js:75 templates/js/translated/modals.js:629 #: templates/js/translated/modals.js:757 templates/js/translated/modals.js:1065 -#: templates/js/translated/purchase_order.js:797 templates/modals.html:15 +#: templates/js/translated/purchase_order.js:780 templates/modals.html:15 #: templates/modals.html:27 templates/modals.html:39 templates/modals.html:50 msgid "Close" msgstr "" @@ -12156,7 +12521,7 @@ msgstr "" msgid "Substitutes Available" msgstr "" -#: templates/js/translated/bom.js:950 templates/js/translated/build.js:2673 +#: templates/js/translated/bom.js:950 templates/js/translated/build.js:2682 msgid "Variant stock allowed" msgstr "" @@ -12176,30 +12541,30 @@ msgstr "" msgid "No pricing available" msgstr "" -#: templates/js/translated/bom.js:1184 templates/js/translated/build.js:2812 +#: templates/js/translated/bom.js:1184 templates/js/translated/build.js:2830 msgid "External stock" msgstr "" -#: templates/js/translated/bom.js:1188 templates/js/translated/build.js:2786 -#: templates/js/translated/sales_order.js:1946 +#: templates/js/translated/bom.js:1188 templates/js/translated/build.js:2804 +#: templates/js/translated/sales_order.js:1927 msgid "No Stock Available" msgstr "" -#: templates/js/translated/bom.js:1193 templates/js/translated/build.js:2790 +#: templates/js/translated/bom.js:1193 templates/js/translated/build.js:2808 msgid "Includes variant and substitute stock" msgstr "" -#: templates/js/translated/bom.js:1195 templates/js/translated/build.js:2792 +#: templates/js/translated/bom.js:1195 templates/js/translated/build.js:2810 #: templates/js/translated/part.js:1263 -#: templates/js/translated/sales_order.js:1943 +#: templates/js/translated/sales_order.js:1924 msgid "Includes variant stock" msgstr "" -#: templates/js/translated/bom.js:1197 templates/js/translated/build.js:2794 +#: templates/js/translated/bom.js:1197 templates/js/translated/build.js:2812 msgid "Includes substitute stock" msgstr "" -#: templates/js/translated/bom.js:1225 templates/js/translated/build.js:2777 +#: templates/js/translated/bom.js:1225 templates/js/translated/build.js:2795 msgid "Consumable item" msgstr "" @@ -12231,7 +12596,7 @@ msgstr "" msgid "No BOM items found" msgstr "" -#: templates/js/translated/bom.js:1657 templates/js/translated/build.js:2658 +#: templates/js/translated/bom.js:1657 templates/js/translated/build.js:2667 msgid "Required Part" msgstr "" @@ -12243,396 +12608,396 @@ msgstr "" msgid "Edit Build Order" msgstr "" -#: templates/js/translated/build.js:191 +#: templates/js/translated/build.js:194 msgid "Create Build Order" msgstr "" -#: templates/js/translated/build.js:223 +#: templates/js/translated/build.js:226 msgid "Cancel Build Order" msgstr "" -#: templates/js/translated/build.js:232 +#: templates/js/translated/build.js:235 msgid "Are you sure you wish to cancel this build?" msgstr "" -#: templates/js/translated/build.js:238 +#: templates/js/translated/build.js:241 msgid "Stock items have been allocated to this build order" msgstr "" -#: templates/js/translated/build.js:245 +#: templates/js/translated/build.js:248 msgid "There are incomplete outputs remaining for this build order" msgstr "" -#: templates/js/translated/build.js:297 +#: templates/js/translated/build.js:300 msgid "Build order is ready to be completed" msgstr "" -#: templates/js/translated/build.js:305 +#: templates/js/translated/build.js:308 msgid "This build order cannot be completed as there are incomplete outputs" msgstr "" -#: templates/js/translated/build.js:310 +#: templates/js/translated/build.js:313 msgid "Build Order is incomplete" msgstr "" -#: templates/js/translated/build.js:328 +#: templates/js/translated/build.js:331 msgid "Complete Build Order" msgstr "" -#: templates/js/translated/build.js:369 templates/js/translated/stock.js:127 +#: templates/js/translated/build.js:372 templates/js/translated/stock.js:127 #: templates/js/translated/stock.js:301 msgid "Next available serial number" msgstr "" -#: templates/js/translated/build.js:371 templates/js/translated/stock.js:129 +#: templates/js/translated/build.js:374 templates/js/translated/stock.js:129 #: templates/js/translated/stock.js:303 msgid "Latest serial number" msgstr "" -#: templates/js/translated/build.js:380 +#: templates/js/translated/build.js:383 msgid "The Bill of Materials contains trackable parts" msgstr "" -#: templates/js/translated/build.js:381 +#: templates/js/translated/build.js:384 msgid "Build outputs must be generated individually" msgstr "" -#: templates/js/translated/build.js:389 +#: templates/js/translated/build.js:392 msgid "Trackable parts can have serial numbers specified" msgstr "" -#: templates/js/translated/build.js:390 +#: templates/js/translated/build.js:393 msgid "Enter serial numbers to generate multiple single build outputs" msgstr "" -#: templates/js/translated/build.js:397 +#: templates/js/translated/build.js:400 msgid "Create Build Output" msgstr "" -#: templates/js/translated/build.js:428 +#: templates/js/translated/build.js:431 msgid "Allocate stock items to this build output" msgstr "" -#: templates/js/translated/build.js:436 +#: templates/js/translated/build.js:439 msgid "Deallocate stock from build output" msgstr "" -#: templates/js/translated/build.js:445 +#: templates/js/translated/build.js:448 msgid "Complete build output" msgstr "" -#: templates/js/translated/build.js:453 +#: templates/js/translated/build.js:456 msgid "Scrap build output" msgstr "" -#: templates/js/translated/build.js:460 +#: templates/js/translated/build.js:463 msgid "Delete build output" msgstr "" -#: templates/js/translated/build.js:480 +#: templates/js/translated/build.js:483 msgid "Are you sure you wish to deallocate the selected stock items from this build?" msgstr "" -#: templates/js/translated/build.js:498 +#: templates/js/translated/build.js:501 msgid "Deallocate Stock Items" msgstr "" -#: templates/js/translated/build.js:584 templates/js/translated/build.js:711 -#: templates/js/translated/build.js:836 +#: templates/js/translated/build.js:587 templates/js/translated/build.js:714 +#: templates/js/translated/build.js:839 msgid "Select Build Outputs" msgstr "" -#: templates/js/translated/build.js:585 templates/js/translated/build.js:712 -#: templates/js/translated/build.js:837 +#: templates/js/translated/build.js:588 templates/js/translated/build.js:715 +#: templates/js/translated/build.js:840 msgid "At least one build output must be selected" msgstr "" -#: templates/js/translated/build.js:599 +#: templates/js/translated/build.js:602 msgid "Selected build outputs will be marked as complete" msgstr "" -#: templates/js/translated/build.js:603 templates/js/translated/build.js:736 -#: templates/js/translated/build.js:859 +#: templates/js/translated/build.js:606 templates/js/translated/build.js:739 +#: templates/js/translated/build.js:862 msgid "Output" msgstr "" -#: templates/js/translated/build.js:630 +#: templates/js/translated/build.js:633 msgid "Complete Build Outputs" msgstr "" -#: templates/js/translated/build.js:727 +#: templates/js/translated/build.js:730 msgid "Selected build outputs will be marked as scrapped" msgstr "" -#: templates/js/translated/build.js:729 +#: templates/js/translated/build.js:732 msgid "Scrapped output are marked as rejected" msgstr "" -#: templates/js/translated/build.js:730 +#: templates/js/translated/build.js:733 msgid "Allocated stock items will no longer be available" msgstr "" -#: templates/js/translated/build.js:731 +#: templates/js/translated/build.js:734 msgid "The completion status of the build order will not be adjusted" msgstr "" -#: templates/js/translated/build.js:761 +#: templates/js/translated/build.js:764 msgid "Scrap Build Outputs" msgstr "" -#: templates/js/translated/build.js:851 +#: templates/js/translated/build.js:854 msgid "Selected build outputs will be deleted" msgstr "" -#: templates/js/translated/build.js:853 +#: templates/js/translated/build.js:856 msgid "Build output data will be permanently deleted" msgstr "" -#: templates/js/translated/build.js:854 +#: templates/js/translated/build.js:857 msgid "Allocated stock items will be returned to stock" msgstr "" -#: templates/js/translated/build.js:872 +#: templates/js/translated/build.js:875 msgid "Delete Build Outputs" msgstr "" -#: templates/js/translated/build.js:959 +#: templates/js/translated/build.js:962 msgid "Delete allocations" msgstr "" -#: templates/js/translated/build.js:966 +#: templates/js/translated/build.js:969 msgid "Delete Stock Allocations" msgstr "" -#: templates/js/translated/build.js:989 +#: templates/js/translated/build.js:992 msgid "No allocated stock" msgstr "" -#: templates/js/translated/build.js:1045 +#: templates/js/translated/build.js:1048 msgid "Stock item" msgstr "" -#: templates/js/translated/build.js:1070 +#: templates/js/translated/build.js:1073 msgid "Edit build allocation" msgstr "" -#: templates/js/translated/build.js:1071 +#: templates/js/translated/build.js:1074 msgid "Delete build allocation" msgstr "" -#: templates/js/translated/build.js:1089 +#: templates/js/translated/build.js:1092 msgid "Edit Build Allocation" msgstr "" -#: templates/js/translated/build.js:1102 +#: templates/js/translated/build.js:1105 msgid "Delete Build Allocation" msgstr "" -#: templates/js/translated/build.js:1133 +#: templates/js/translated/build.js:1136 msgid "No build order allocations found" msgstr "" -#: templates/js/translated/build.js:1178 +#: templates/js/translated/build.js:1181 msgid "Location not specified" msgstr "" -#: templates/js/translated/build.js:1200 +#: templates/js/translated/build.js:1203 msgid "Complete outputs" msgstr "" -#: templates/js/translated/build.js:1218 +#: templates/js/translated/build.js:1221 msgid "Scrap outputs" msgstr "" -#: templates/js/translated/build.js:1236 +#: templates/js/translated/build.js:1239 msgid "Delete outputs" msgstr "" -#: templates/js/translated/build.js:1289 +#: templates/js/translated/build.js:1292 msgid "build output" msgstr "" -#: templates/js/translated/build.js:1290 +#: templates/js/translated/build.js:1293 msgid "build outputs" msgstr "" -#: templates/js/translated/build.js:1294 +#: templates/js/translated/build.js:1297 msgid "Build output actions" msgstr "" -#: templates/js/translated/build.js:1470 +#: templates/js/translated/build.js:1473 msgid "No active build outputs found" msgstr "" -#: templates/js/translated/build.js:1563 +#: templates/js/translated/build.js:1566 msgid "Allocated Lines" msgstr "" -#: templates/js/translated/build.js:1577 +#: templates/js/translated/build.js:1580 msgid "Required Tests" msgstr "" -#: templates/js/translated/build.js:1749 -#: templates/js/translated/purchase_order.js:611 -#: templates/js/translated/sales_order.js:1207 +#: templates/js/translated/build.js:1752 +#: templates/js/translated/purchase_order.js:594 +#: templates/js/translated/sales_order.js:1173 msgid "Select Parts" msgstr "" -#: templates/js/translated/build.js:1750 -#: templates/js/translated/sales_order.js:1208 +#: templates/js/translated/build.js:1753 +#: templates/js/translated/sales_order.js:1174 msgid "You must select at least one part to allocate" msgstr "" -#: templates/js/translated/build.js:1813 -#: templates/js/translated/sales_order.js:1157 +#: templates/js/translated/build.js:1816 +#: templates/js/translated/sales_order.js:1123 msgid "Specify stock allocation quantity" msgstr "" -#: templates/js/translated/build.js:1890 +#: templates/js/translated/build.js:1893 msgid "All Parts Allocated" msgstr "" -#: templates/js/translated/build.js:1891 +#: templates/js/translated/build.js:1894 msgid "All selected parts have been fully allocated" msgstr "" -#: templates/js/translated/build.js:1905 -#: templates/js/translated/sales_order.js:1222 +#: templates/js/translated/build.js:1908 +#: templates/js/translated/sales_order.js:1188 msgid "Select source location (leave blank to take from all locations)" msgstr "" -#: templates/js/translated/build.js:1933 +#: templates/js/translated/build.js:1936 msgid "Allocate Stock Items to Build Order" msgstr "" -#: templates/js/translated/build.js:1944 -#: templates/js/translated/sales_order.js:1319 +#: templates/js/translated/build.js:1947 +#: templates/js/translated/sales_order.js:1285 msgid "No matching stock locations" msgstr "" -#: templates/js/translated/build.js:2017 -#: templates/js/translated/sales_order.js:1398 +#: templates/js/translated/build.js:2020 +#: templates/js/translated/sales_order.js:1364 msgid "No matching stock items" msgstr "" -#: templates/js/translated/build.js:2114 +#: templates/js/translated/build.js:2117 msgid "Automatic Stock Allocation" msgstr "" -#: templates/js/translated/build.js:2115 +#: templates/js/translated/build.js:2118 msgid "Stock items will be automatically allocated to this build order, according to the provided guidelines" msgstr "" -#: templates/js/translated/build.js:2117 +#: templates/js/translated/build.js:2120 msgid "If a location is specified, stock will only be allocated from that location" msgstr "" -#: templates/js/translated/build.js:2118 +#: templates/js/translated/build.js:2121 msgid "If stock is considered interchangeable, it will be allocated from the first location it is found" msgstr "" -#: templates/js/translated/build.js:2119 +#: templates/js/translated/build.js:2122 msgid "If substitute stock is allowed, it will be used where stock of the primary part cannot be found" msgstr "" -#: templates/js/translated/build.js:2149 +#: templates/js/translated/build.js:2152 msgid "Allocate Stock Items" msgstr "" -#: templates/js/translated/build.js:2254 +#: templates/js/translated/build.js:2257 msgid "No builds matching query" msgstr "" -#: templates/js/translated/build.js:2289 templates/js/translated/build.js:2652 +#: templates/js/translated/build.js:2292 templates/js/translated/build.js:2661 #: templates/js/translated/forms.js:2196 templates/js/translated/forms.js:2212 #: templates/js/translated/part.js:2322 templates/js/translated/part.js:2761 -#: templates/js/translated/stock.js:2068 templates/js/translated/stock.js:2795 +#: templates/js/translated/stock.js:2069 templates/js/translated/stock.js:2796 msgid "Select" msgstr "" -#: templates/js/translated/build.js:2303 +#: templates/js/translated/build.js:2306 msgid "Build order is overdue" msgstr "" -#: templates/js/translated/build.js:2385 templates/js/translated/stock.js:3126 +#: templates/js/translated/build.js:2388 templates/js/translated/stock.js:3127 msgid "No user information" msgstr "" -#: templates/js/translated/build.js:2561 -#: templates/js/translated/sales_order.js:1682 +#: templates/js/translated/build.js:2568 +#: templates/js/translated/sales_order.js:1663 msgid "Edit stock allocation" msgstr "" -#: templates/js/translated/build.js:2562 -#: templates/js/translated/sales_order.js:1683 +#: templates/js/translated/build.js:2569 +#: templates/js/translated/sales_order.js:1664 msgid "Delete stock allocation" msgstr "" -#: templates/js/translated/build.js:2577 +#: templates/js/translated/build.js:2584 msgid "Edit Allocation" msgstr "" -#: templates/js/translated/build.js:2589 +#: templates/js/translated/build.js:2596 msgid "Remove Allocation" msgstr "" -#: templates/js/translated/build.js:2628 +#: templates/js/translated/build.js:2636 msgid "build line" msgstr "" -#: templates/js/translated/build.js:2629 +#: templates/js/translated/build.js:2637 msgid "build lines" msgstr "" -#: templates/js/translated/build.js:2647 +#: templates/js/translated/build.js:2656 msgid "No build lines found" msgstr "" -#: templates/js/translated/build.js:2677 templates/js/translated/part.js:793 +#: templates/js/translated/build.js:2686 templates/js/translated/part.js:793 #: templates/js/translated/part.js:1209 msgid "Trackable part" msgstr "" -#: templates/js/translated/build.js:2720 +#: templates/js/translated/build.js:2729 msgid "Gets Inherited" msgstr "" -#: templates/js/translated/build.js:2730 +#: templates/js/translated/build.js:2748 msgid "Unit Quantity" msgstr "" -#: templates/js/translated/build.js:2782 -#: templates/js/translated/sales_order.js:1951 +#: templates/js/translated/build.js:2800 +#: templates/js/translated/sales_order.js:1932 msgid "Sufficient stock available" msgstr "" -#: templates/js/translated/build.js:2837 +#: templates/js/translated/build.js:2855 msgid "Consumable Item" msgstr "" -#: templates/js/translated/build.js:2844 +#: templates/js/translated/build.js:2862 msgid "Tracked item" msgstr "" -#: templates/js/translated/build.js:2845 +#: templates/js/translated/build.js:2863 msgid "Allocate tracked items against individual build outputs" msgstr "" -#: templates/js/translated/build.js:2853 -#: templates/js/translated/sales_order.js:2052 +#: templates/js/translated/build.js:2871 +#: templates/js/translated/sales_order.js:2033 msgid "Build stock" msgstr "" -#: templates/js/translated/build.js:2858 templates/js/translated/stock.js:1953 +#: templates/js/translated/build.js:2876 templates/js/translated/stock.js:1954 msgid "Order stock" msgstr "" -#: templates/js/translated/build.js:2862 -#: templates/js/translated/sales_order.js:2046 +#: templates/js/translated/build.js:2880 +#: templates/js/translated/sales_order.js:2027 msgid "Allocate stock" msgstr "" -#: templates/js/translated/build.js:2866 +#: templates/js/translated/build.js:2884 msgid "Remove stock allocation" msgstr "" @@ -12641,7 +13006,7 @@ msgid "Add Manufacturer" msgstr "" #: templates/js/translated/company.js:111 -#: templates/js/translated/company.js:213 +#: templates/js/translated/company.js:214 msgid "Add Manufacturer Part" msgstr "" @@ -12649,231 +13014,231 @@ msgstr "" msgid "Edit Manufacturer Part" msgstr "" -#: templates/js/translated/company.js:201 +#: templates/js/translated/company.js:202 #: templates/js/translated/purchase_order.js:93 msgid "Add Supplier" msgstr "" -#: templates/js/translated/company.js:243 -#: templates/js/translated/purchase_order.js:318 +#: templates/js/translated/company.js:244 +#: templates/js/translated/purchase_order.js:301 msgid "Add Supplier Part" msgstr "" -#: templates/js/translated/company.js:344 +#: templates/js/translated/company.js:345 msgid "All selected supplier parts will be deleted" msgstr "" -#: templates/js/translated/company.js:360 +#: templates/js/translated/company.js:361 msgid "Delete Supplier Parts" msgstr "" -#: templates/js/translated/company.js:466 +#: templates/js/translated/company.js:467 msgid "Add new Company" msgstr "" -#: templates/js/translated/company.js:546 +#: templates/js/translated/company.js:547 msgid "Parts Supplied" msgstr "" -#: templates/js/translated/company.js:555 +#: templates/js/translated/company.js:556 msgid "Parts Manufactured" msgstr "" -#: templates/js/translated/company.js:570 +#: templates/js/translated/company.js:571 msgid "No company information found" msgstr "" -#: templates/js/translated/company.js:619 +#: templates/js/translated/company.js:620 msgid "Create New Contact" msgstr "" -#: templates/js/translated/company.js:635 -#: templates/js/translated/company.js:758 +#: templates/js/translated/company.js:636 +#: templates/js/translated/company.js:759 msgid "Edit Contact" msgstr "" -#: templates/js/translated/company.js:672 +#: templates/js/translated/company.js:673 msgid "All selected contacts will be deleted" msgstr "" -#: templates/js/translated/company.js:678 -#: templates/js/translated/company.js:742 +#: templates/js/translated/company.js:679 +#: templates/js/translated/company.js:743 msgid "Role" msgstr "" -#: templates/js/translated/company.js:686 +#: templates/js/translated/company.js:687 msgid "Delete Contacts" msgstr "" -#: templates/js/translated/company.js:717 +#: templates/js/translated/company.js:718 msgid "No contacts found" msgstr "" -#: templates/js/translated/company.js:730 +#: templates/js/translated/company.js:731 msgid "Phone Number" msgstr "" -#: templates/js/translated/company.js:736 +#: templates/js/translated/company.js:737 msgid "Email Address" msgstr "" -#: templates/js/translated/company.js:762 +#: templates/js/translated/company.js:763 msgid "Delete Contact" msgstr "" -#: templates/js/translated/company.js:859 +#: templates/js/translated/company.js:860 msgid "Create New Address" msgstr "" -#: templates/js/translated/company.js:874 -#: templates/js/translated/company.js:1035 +#: templates/js/translated/company.js:875 +#: templates/js/translated/company.js:1036 msgid "Edit Address" msgstr "" -#: templates/js/translated/company.js:909 +#: templates/js/translated/company.js:910 msgid "All selected addresses will be deleted" msgstr "" -#: templates/js/translated/company.js:923 +#: templates/js/translated/company.js:924 msgid "Delete Addresses" msgstr "" -#: templates/js/translated/company.js:950 +#: templates/js/translated/company.js:951 msgid "No addresses found" msgstr "" -#: templates/js/translated/company.js:989 +#: templates/js/translated/company.js:990 msgid "Postal city" msgstr "" -#: templates/js/translated/company.js:995 +#: templates/js/translated/company.js:996 msgid "State/province" msgstr "" -#: templates/js/translated/company.js:1007 +#: templates/js/translated/company.js:1008 msgid "Courier notes" msgstr "" -#: templates/js/translated/company.js:1013 +#: templates/js/translated/company.js:1014 msgid "Internal notes" msgstr "" -#: templates/js/translated/company.js:1039 +#: templates/js/translated/company.js:1040 msgid "Delete Address" msgstr "" -#: templates/js/translated/company.js:1112 +#: templates/js/translated/company.js:1113 msgid "All selected manufacturer parts will be deleted" msgstr "" -#: templates/js/translated/company.js:1127 +#: templates/js/translated/company.js:1128 msgid "Delete Manufacturer Parts" msgstr "" -#: templates/js/translated/company.js:1161 +#: templates/js/translated/company.js:1162 msgid "All selected parameters will be deleted" msgstr "" -#: templates/js/translated/company.js:1175 +#: templates/js/translated/company.js:1176 msgid "Delete Parameters" msgstr "" -#: templates/js/translated/company.js:1191 -#: templates/js/translated/company.js:1479 templates/js/translated/part.js:2250 +#: templates/js/translated/company.js:1192 +#: templates/js/translated/company.js:1480 templates/js/translated/part.js:2250 msgid "Order parts" msgstr "" -#: templates/js/translated/company.js:1208 +#: templates/js/translated/company.js:1209 msgid "Delete manufacturer parts" msgstr "" -#: templates/js/translated/company.js:1240 +#: templates/js/translated/company.js:1241 msgid "Manufacturer part actions" msgstr "" -#: templates/js/translated/company.js:1259 +#: templates/js/translated/company.js:1260 msgid "No manufacturer parts found" msgstr "" -#: templates/js/translated/company.js:1279 -#: templates/js/translated/company.js:1567 templates/js/translated/part.js:801 +#: templates/js/translated/company.js:1280 +#: templates/js/translated/company.js:1568 templates/js/translated/part.js:801 #: templates/js/translated/part.js:1217 msgid "Template part" msgstr "" -#: templates/js/translated/company.js:1283 -#: templates/js/translated/company.js:1571 templates/js/translated/part.js:805 +#: templates/js/translated/company.js:1284 +#: templates/js/translated/company.js:1572 templates/js/translated/part.js:805 #: templates/js/translated/part.js:1221 msgid "Assembled part" msgstr "" -#: templates/js/translated/company.js:1403 templates/js/translated/part.js:1471 +#: templates/js/translated/company.js:1404 templates/js/translated/part.js:1471 msgid "No parameters found" msgstr "" -#: templates/js/translated/company.js:1438 templates/js/translated/part.js:1534 +#: templates/js/translated/company.js:1439 templates/js/translated/part.js:1534 msgid "Edit parameter" msgstr "" -#: templates/js/translated/company.js:1439 templates/js/translated/part.js:1535 +#: templates/js/translated/company.js:1440 templates/js/translated/part.js:1535 msgid "Delete parameter" msgstr "" -#: templates/js/translated/company.js:1456 templates/js/translated/part.js:1440 +#: templates/js/translated/company.js:1457 templates/js/translated/part.js:1440 msgid "Edit Parameter" msgstr "" -#: templates/js/translated/company.js:1465 templates/js/translated/part.js:1556 +#: templates/js/translated/company.js:1466 templates/js/translated/part.js:1556 msgid "Delete Parameter" msgstr "" -#: templates/js/translated/company.js:1496 +#: templates/js/translated/company.js:1497 msgid "Delete supplier parts" msgstr "" -#: templates/js/translated/company.js:1546 +#: templates/js/translated/company.js:1547 msgid "No supplier parts found" msgstr "" -#: templates/js/translated/company.js:1664 +#: templates/js/translated/company.js:1665 msgid "Base Units" msgstr "" -#: templates/js/translated/company.js:1694 +#: templates/js/translated/company.js:1695 msgid "Availability" msgstr "" -#: templates/js/translated/company.js:1725 +#: templates/js/translated/company.js:1726 msgid "Edit supplier part" msgstr "" -#: templates/js/translated/company.js:1726 +#: templates/js/translated/company.js:1727 msgid "Delete supplier part" msgstr "" -#: templates/js/translated/company.js:1779 +#: templates/js/translated/company.js:1780 #: templates/js/translated/pricing.js:694 msgid "Delete Price Break" msgstr "" -#: templates/js/translated/company.js:1789 +#: templates/js/translated/company.js:1790 #: templates/js/translated/pricing.js:712 msgid "Edit Price Break" msgstr "" -#: templates/js/translated/company.js:1804 +#: templates/js/translated/company.js:1805 msgid "No price break information found" msgstr "" -#: templates/js/translated/company.js:1833 +#: templates/js/translated/company.js:1834 msgid "Last updated" msgstr "" -#: templates/js/translated/company.js:1840 +#: templates/js/translated/company.js:1841 msgid "Edit price break" msgstr "" -#: templates/js/translated/company.js:1841 +#: templates/js/translated/company.js:1842 msgid "Delete price break" msgstr "" @@ -12977,19 +13342,19 @@ msgstr "" msgid "Select Columns" msgstr "" -#: templates/js/translated/helpers.js:80 +#: templates/js/translated/helpers.js:81 msgid "YES" msgstr "" -#: templates/js/translated/helpers.js:83 +#: templates/js/translated/helpers.js:84 msgid "NO" msgstr "" -#: templates/js/translated/helpers.js:96 +#: templates/js/translated/helpers.js:97 msgid "True" msgstr "" -#: templates/js/translated/helpers.js:97 +#: templates/js/translated/helpers.js:98 msgid "False" msgstr "" @@ -13131,7 +13496,7 @@ msgid "Delete Line" msgstr "" #: templates/js/translated/order.js:306 -#: templates/js/translated/purchase_order.js:2060 +#: templates/js/translated/purchase_order.js:2044 msgid "No line items found" msgstr "" @@ -13366,19 +13731,19 @@ msgid "Delete Part Parameter Template" msgstr "" #: templates/js/translated/part.js:1723 -#: templates/js/translated/purchase_order.js:1724 +#: templates/js/translated/purchase_order.js:1708 msgid "No purchase orders found" msgstr "" #: templates/js/translated/part.js:1867 -#: templates/js/translated/purchase_order.js:2223 +#: templates/js/translated/purchase_order.js:2207 #: templates/js/translated/return_order.js:754 -#: templates/js/translated/sales_order.js:1911 +#: templates/js/translated/sales_order.js:1892 msgid "This line item is overdue" msgstr "" #: templates/js/translated/part.js:1913 -#: templates/js/translated/purchase_order.js:2290 +#: templates/js/translated/purchase_order.js:2274 msgid "Receive line item" msgstr "" @@ -13419,7 +13784,7 @@ msgid "No category" msgstr "" #: templates/js/translated/part.js:2550 templates/js/translated/part.js:2680 -#: templates/js/translated/stock.js:2754 +#: templates/js/translated/stock.js:2755 msgid "Display as list" msgstr "" @@ -13431,7 +13796,7 @@ msgstr "" msgid "No subcategories found" msgstr "" -#: templates/js/translated/part.js:2700 templates/js/translated/stock.js:2774 +#: templates/js/translated/part.js:2700 templates/js/translated/stock.js:2775 msgid "Display as tree" msgstr "" @@ -13483,23 +13848,23 @@ msgstr "" msgid "Speculative" msgstr "" -#: templates/js/translated/part.js:3128 +#: templates/js/translated/part.js:3144 msgid "No scheduling information available for this part" msgstr "" -#: templates/js/translated/part.js:3134 +#: templates/js/translated/part.js:3150 msgid "Error fetching scheduling information for this part" msgstr "" -#: templates/js/translated/part.js:3230 +#: templates/js/translated/part.js:3246 msgid "Scheduled Stock Quantities" msgstr "" -#: templates/js/translated/part.js:3246 +#: templates/js/translated/part.js:3262 msgid "Maximum Quantity" msgstr "" -#: templates/js/translated/part.js:3291 +#: templates/js/translated/part.js:3307 msgid "Minimum Stock Level" msgstr "" @@ -13575,267 +13940,243 @@ msgstr "" msgid "Purchase Price History" msgstr "" -#: templates/js/translated/pricing.js:894 +#: templates/js/translated/pricing.js:892 msgid "No sales history data available" msgstr "" -#: templates/js/translated/pricing.js:916 +#: templates/js/translated/pricing.js:914 msgid "Sale Price History" msgstr "" -#: templates/js/translated/pricing.js:1005 +#: templates/js/translated/pricing.js:1003 msgid "No variant data available" msgstr "" -#: templates/js/translated/pricing.js:1045 +#: templates/js/translated/pricing.js:1043 msgid "Variant Part" msgstr "" -#: templates/js/translated/purchase_order.js:169 -msgid "Select purchase order to duplicate" -msgstr "" - -#: templates/js/translated/purchase_order.js:176 -msgid "Duplicate Line Items" -msgstr "" - -#: templates/js/translated/purchase_order.js:177 -msgid "Duplicate all line items from the selected order" -msgstr "" - -#: templates/js/translated/purchase_order.js:184 -msgid "Duplicate Extra Lines" -msgstr "" - -#: templates/js/translated/purchase_order.js:185 -msgid "Duplicate extra line items from the selected order" -msgstr "" - -#: templates/js/translated/purchase_order.js:206 +#: templates/js/translated/purchase_order.js:188 msgid "Edit Purchase Order" msgstr "" -#: templates/js/translated/purchase_order.js:223 +#: templates/js/translated/purchase_order.js:205 msgid "Duplication Options" msgstr "" -#: templates/js/translated/purchase_order.js:431 +#: templates/js/translated/purchase_order.js:414 msgid "Complete Purchase Order" msgstr "" -#: templates/js/translated/purchase_order.js:448 +#: templates/js/translated/purchase_order.js:431 #: templates/js/translated/return_order.js:210 -#: templates/js/translated/sales_order.js:552 +#: templates/js/translated/sales_order.js:511 msgid "Mark this order as complete?" msgstr "" -#: templates/js/translated/purchase_order.js:454 +#: templates/js/translated/purchase_order.js:437 msgid "All line items have been received" msgstr "" -#: templates/js/translated/purchase_order.js:459 +#: templates/js/translated/purchase_order.js:442 msgid "This order has line items which have not been marked as received." msgstr "" -#: templates/js/translated/purchase_order.js:460 +#: templates/js/translated/purchase_order.js:443 msgid "Completing this order means that the order and line items will no longer be editable." msgstr "" -#: templates/js/translated/purchase_order.js:483 +#: templates/js/translated/purchase_order.js:466 msgid "Cancel Purchase Order" msgstr "" -#: templates/js/translated/purchase_order.js:488 +#: templates/js/translated/purchase_order.js:471 msgid "Are you sure you wish to cancel this purchase order?" msgstr "" -#: templates/js/translated/purchase_order.js:494 +#: templates/js/translated/purchase_order.js:477 msgid "This purchase order can not be cancelled" msgstr "" -#: templates/js/translated/purchase_order.js:515 +#: templates/js/translated/purchase_order.js:498 #: templates/js/translated/return_order.js:164 msgid "After placing this order, line items will no longer be editable." msgstr "" -#: templates/js/translated/purchase_order.js:520 +#: templates/js/translated/purchase_order.js:503 msgid "Issue Purchase Order" msgstr "" -#: templates/js/translated/purchase_order.js:612 +#: templates/js/translated/purchase_order.js:595 msgid "At least one purchaseable part must be selected" msgstr "" -#: templates/js/translated/purchase_order.js:637 +#: templates/js/translated/purchase_order.js:620 msgid "Quantity to order" msgstr "" -#: templates/js/translated/purchase_order.js:646 +#: templates/js/translated/purchase_order.js:629 msgid "New supplier part" msgstr "" -#: templates/js/translated/purchase_order.js:664 +#: templates/js/translated/purchase_order.js:647 msgid "New purchase order" msgstr "" -#: templates/js/translated/purchase_order.js:705 +#: templates/js/translated/purchase_order.js:688 msgid "Add to purchase order" msgstr "" -#: templates/js/translated/purchase_order.js:755 +#: templates/js/translated/purchase_order.js:738 msgid "Merge" msgstr "" -#: templates/js/translated/purchase_order.js:859 +#: templates/js/translated/purchase_order.js:842 msgid "No matching supplier parts" msgstr "" -#: templates/js/translated/purchase_order.js:878 +#: templates/js/translated/purchase_order.js:861 msgid "No matching purchase orders" msgstr "" -#: templates/js/translated/purchase_order.js:1073 +#: templates/js/translated/purchase_order.js:1056 #: templates/js/translated/return_order.js:490 msgid "Select Line Items" msgstr "" -#: templates/js/translated/purchase_order.js:1074 +#: templates/js/translated/purchase_order.js:1057 #: templates/js/translated/return_order.js:491 msgid "At least one line item must be selected" msgstr "" -#: templates/js/translated/purchase_order.js:1104 +#: templates/js/translated/purchase_order.js:1087 msgid "Received Quantity" msgstr "" -#: templates/js/translated/purchase_order.js:1115 +#: templates/js/translated/purchase_order.js:1098 msgid "Quantity to receive" msgstr "" -#: templates/js/translated/purchase_order.js:1170 +#: templates/js/translated/purchase_order.js:1153 #: templates/js/translated/stock.js:1215 msgid "Specify packaging for incoming stock items" msgstr "" -#: templates/js/translated/purchase_order.js:1223 +#: templates/js/translated/purchase_order.js:1206 msgid "Stock Status" msgstr "" -#: templates/js/translated/purchase_order.js:1237 +#: templates/js/translated/purchase_order.js:1220 msgid "Add barcode" msgstr "" -#: templates/js/translated/purchase_order.js:1238 +#: templates/js/translated/purchase_order.js:1221 msgid "Remove barcode" msgstr "" -#: templates/js/translated/purchase_order.js:1241 +#: templates/js/translated/purchase_order.js:1224 msgid "Specify location" msgstr "" -#: templates/js/translated/purchase_order.js:1249 +#: templates/js/translated/purchase_order.js:1232 msgid "Add batch code" msgstr "" -#: templates/js/translated/purchase_order.js:1259 +#: templates/js/translated/purchase_order.js:1242 msgid "Specify packaging" msgstr "" -#: templates/js/translated/purchase_order.js:1270 +#: templates/js/translated/purchase_order.js:1253 msgid "Add serial numbers" msgstr "" -#: templates/js/translated/purchase_order.js:1281 +#: templates/js/translated/purchase_order.js:1264 msgid "Add note" msgstr "" -#: templates/js/translated/purchase_order.js:1338 +#: templates/js/translated/purchase_order.js:1321 msgid "Serials" msgstr "" -#: templates/js/translated/purchase_order.js:1368 +#: templates/js/translated/purchase_order.js:1351 msgid "Order Code" msgstr "" -#: templates/js/translated/purchase_order.js:1370 +#: templates/js/translated/purchase_order.js:1353 msgid "Quantity to Receive" msgstr "" -#: templates/js/translated/purchase_order.js:1395 +#: templates/js/translated/purchase_order.js:1379 #: templates/js/translated/return_order.js:559 msgid "Confirm receipt of items" msgstr "" -#: templates/js/translated/purchase_order.js:1396 +#: templates/js/translated/purchase_order.js:1380 msgid "Receive Purchase Order Items" msgstr "" -#: templates/js/translated/purchase_order.js:1464 +#: templates/js/translated/purchase_order.js:1448 msgid "Scan Item Barcode" msgstr "" -#: templates/js/translated/purchase_order.js:1465 +#: templates/js/translated/purchase_order.js:1449 msgid "Scan barcode on incoming item (must not match any existing stock items)" msgstr "" -#: templates/js/translated/purchase_order.js:1479 +#: templates/js/translated/purchase_order.js:1463 msgid "Invalid barcode data" msgstr "" -#: templates/js/translated/purchase_order.js:1751 +#: templates/js/translated/purchase_order.js:1735 #: templates/js/translated/return_order.js:285 -#: templates/js/translated/sales_order.js:810 -#: templates/js/translated/sales_order.js:1034 +#: templates/js/translated/sales_order.js:769 +#: templates/js/translated/sales_order.js:1007 msgid "Order is overdue" msgstr "" -#: templates/js/translated/purchase_order.js:1913 +#: templates/js/translated/purchase_order.js:1897 msgid "All selected Line items will be deleted" msgstr "" -#: templates/js/translated/purchase_order.js:1931 +#: templates/js/translated/purchase_order.js:1915 msgid "Delete selected Line items?" msgstr "" -#: templates/js/translated/purchase_order.js:1986 -#: templates/js/translated/sales_order.js:2106 +#: templates/js/translated/purchase_order.js:1970 +#: templates/js/translated/sales_order.js:2087 msgid "Duplicate Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2001 +#: templates/js/translated/purchase_order.js:1985 #: templates/js/translated/return_order.js:475 #: templates/js/translated/return_order.js:667 -#: templates/js/translated/sales_order.js:2119 +#: templates/js/translated/sales_order.js:2100 msgid "Edit Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2012 +#: templates/js/translated/purchase_order.js:1996 #: templates/js/translated/return_order.js:680 -#: templates/js/translated/sales_order.js:2130 +#: templates/js/translated/sales_order.js:2111 msgid "Delete Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2294 -#: templates/js/translated/sales_order.js:2060 +#: templates/js/translated/purchase_order.js:2278 +#: templates/js/translated/sales_order.js:2041 msgid "Duplicate line item" msgstr "" -#: templates/js/translated/purchase_order.js:2295 +#: templates/js/translated/purchase_order.js:2279 #: templates/js/translated/return_order.js:799 -#: templates/js/translated/sales_order.js:2061 +#: templates/js/translated/sales_order.js:2042 msgid "Edit line item" msgstr "" -#: templates/js/translated/purchase_order.js:2296 +#: templates/js/translated/purchase_order.js:2280 #: templates/js/translated/return_order.js:803 -#: templates/js/translated/sales_order.js:2067 +#: templates/js/translated/sales_order.js:2048 msgid "Delete line item" msgstr "" -#: templates/js/translated/report.js:49 -msgid "Print Report" -msgstr "" - #: templates/js/translated/report.js:68 msgid "Report print successful" msgstr "" @@ -13878,7 +14219,7 @@ msgid "No return orders found" msgstr "" #: templates/js/translated/return_order.js:299 -#: templates/js/translated/sales_order.js:824 +#: templates/js/translated/sales_order.js:783 msgid "Invalid Customer" msgstr "" @@ -13887,7 +14228,7 @@ msgid "Receive Return Order Items" msgstr "" #: templates/js/translated/return_order.js:691 -#: templates/js/translated/sales_order.js:2267 +#: templates/js/translated/sales_order.js:2248 msgid "No matching line items" msgstr "" @@ -13903,188 +14244,181 @@ msgstr "" msgid "Edit Sales Order" msgstr "" -#: templates/js/translated/sales_order.js:291 +#: templates/js/translated/sales_order.js:288 msgid "No stock items have been allocated to this shipment" msgstr "" -#: templates/js/translated/sales_order.js:296 -msgid "The following stock items will be shipped" -msgstr "" - -#: templates/js/translated/sales_order.js:336 +#: templates/js/translated/sales_order.js:294 msgid "Complete Shipment" msgstr "" -#: templates/js/translated/sales_order.js:360 +#: templates/js/translated/sales_order.js:318 msgid "Confirm Shipment" msgstr "" -#: templates/js/translated/sales_order.js:416 +#: templates/js/translated/sales_order.js:375 msgid "No pending shipments found" msgstr "" -#: templates/js/translated/sales_order.js:420 +#: templates/js/translated/sales_order.js:379 msgid "No stock items have been allocated to pending shipments" msgstr "" -#: templates/js/translated/sales_order.js:430 +#: templates/js/translated/sales_order.js:389 msgid "Complete Shipments" msgstr "" -#: templates/js/translated/sales_order.js:452 +#: templates/js/translated/sales_order.js:411 msgid "Skip" msgstr "" -#: templates/js/translated/sales_order.js:484 +#: templates/js/translated/sales_order.js:443 msgid "Ship Sales Order" msgstr "" -#: templates/js/translated/sales_order.js:500 +#: templates/js/translated/sales_order.js:459 msgid "Ship this order?" msgstr "" -#: templates/js/translated/sales_order.js:506 +#: templates/js/translated/sales_order.js:465 msgid "Order cannot be shipped as there are incomplete shipments" msgstr "" -#: templates/js/translated/sales_order.js:513 +#: templates/js/translated/sales_order.js:472 msgid "This order has line items which have not been completed." msgstr "" -#: templates/js/translated/sales_order.js:514 +#: templates/js/translated/sales_order.js:473 msgid "Shipping this order means that the order and line items will no longer be editable." msgstr "" -#: templates/js/translated/sales_order.js:572 +#: templates/js/translated/sales_order.js:531 msgid "Issue this Sales Order?" msgstr "" -#: templates/js/translated/sales_order.js:577 +#: templates/js/translated/sales_order.js:536 msgid "Issue Sales Order" msgstr "" -#: templates/js/translated/sales_order.js:596 +#: templates/js/translated/sales_order.js:555 msgid "Cancel Sales Order" msgstr "" -#: templates/js/translated/sales_order.js:601 +#: templates/js/translated/sales_order.js:560 msgid "Cancelling this order means that the order will no longer be editable." msgstr "" -#: templates/js/translated/sales_order.js:655 +#: templates/js/translated/sales_order.js:614 msgid "Create New Shipment" msgstr "" -#: templates/js/translated/sales_order.js:764 +#: templates/js/translated/sales_order.js:723 msgid "No sales orders found" msgstr "" -#: templates/js/translated/sales_order.js:944 +#: templates/js/translated/sales_order.js:907 msgid "Edit shipment" msgstr "" -#: templates/js/translated/sales_order.js:947 +#: templates/js/translated/sales_order.js:910 msgid "Complete shipment" msgstr "" -#: templates/js/translated/sales_order.js:952 +#: templates/js/translated/sales_order.js:915 msgid "Delete shipment" msgstr "" -#: templates/js/translated/sales_order.js:969 +#: templates/js/translated/sales_order.js:932 msgid "Edit Shipment" msgstr "" -#: templates/js/translated/sales_order.js:984 +#: templates/js/translated/sales_order.js:947 msgid "Delete Shipment" msgstr "" -#: templates/js/translated/sales_order.js:1017 +#: templates/js/translated/sales_order.js:989 msgid "No matching shipments found" msgstr "" -#: templates/js/translated/sales_order.js:1042 +#: templates/js/translated/sales_order.js:1015 msgid "Shipment Reference" msgstr "" -#: templates/js/translated/sales_order.js:1066 -#: templates/js/translated/sales_order.js:1565 +#: templates/js/translated/sales_order.js:1032 +#: templates/js/translated/sales_order.js:1531 msgid "Not shipped" msgstr "" -#: templates/js/translated/sales_order.js:1084 +#: templates/js/translated/sales_order.js:1050 msgid "Tracking" msgstr "" -#: templates/js/translated/sales_order.js:1088 +#: templates/js/translated/sales_order.js:1054 msgid "Invoice" msgstr "" -#: templates/js/translated/sales_order.js:1255 +#: templates/js/translated/sales_order.js:1221 msgid "Add Shipment" msgstr "" -#: templates/js/translated/sales_order.js:1306 +#: templates/js/translated/sales_order.js:1272 msgid "Confirm stock allocation" msgstr "" -#: templates/js/translated/sales_order.js:1307 +#: templates/js/translated/sales_order.js:1273 msgid "Allocate Stock Items to Sales Order" msgstr "" -#: templates/js/translated/sales_order.js:1513 +#: templates/js/translated/sales_order.js:1479 msgid "No sales order allocations found" msgstr "" -#: templates/js/translated/sales_order.js:1605 +#: templates/js/translated/sales_order.js:1571 msgid "Edit Stock Allocation" msgstr "" -#: templates/js/translated/sales_order.js:1619 +#: templates/js/translated/sales_order.js:1585 msgid "Confirm Delete Operation" msgstr "" -#: templates/js/translated/sales_order.js:1620 +#: templates/js/translated/sales_order.js:1586 msgid "Delete Stock Allocation" msgstr "" -#: templates/js/translated/sales_order.js:1659 -#: templates/js/translated/sales_order.js:1746 +#: templates/js/translated/sales_order.js:1640 +#: templates/js/translated/sales_order.js:1727 #: templates/js/translated/stock.js:1861 msgid "Shipped to customer" msgstr "" -#: templates/js/translated/sales_order.js:1667 -#: templates/js/translated/sales_order.js:1755 +#: templates/js/translated/sales_order.js:1648 +#: templates/js/translated/sales_order.js:1736 msgid "Stock location not specified" msgstr "" -#: templates/js/translated/sales_order.js:2044 -msgid "Allocate serial numbers" -msgstr "" - -#: templates/js/translated/sales_order.js:2048 -msgid "Purchase stock" -msgstr "" - -#: templates/js/translated/sales_order.js:2057 -#: templates/js/translated/sales_order.js:2245 -msgid "Calculate price" -msgstr "" - -#: templates/js/translated/sales_order.js:2071 -msgid "Cannot be deleted as items have been shipped" -msgstr "" - -#: templates/js/translated/sales_order.js:2074 -msgid "Cannot be deleted as items have been allocated" -msgstr "" - -#: templates/js/translated/sales_order.js:2145 +#: templates/js/translated/sales_order.js:2025 +#: templates/js/translated/sales_order.js:2126 msgid "Allocate Serial Numbers" msgstr "" -#: templates/js/translated/sales_order.js:2253 +#: templates/js/translated/sales_order.js:2029 +msgid "Purchase stock" +msgstr "" + +#: templates/js/translated/sales_order.js:2038 +#: templates/js/translated/sales_order.js:2226 +msgid "Calculate price" +msgstr "" + +#: templates/js/translated/sales_order.js:2052 +msgid "Cannot be deleted as items have been shipped" +msgstr "" + +#: templates/js/translated/sales_order.js:2055 +msgid "Cannot be deleted as items have been allocated" +msgstr "" + +#: templates/js/translated/sales_order.js:2234 msgid "Update Unit Price" msgstr "" @@ -14209,11 +14543,8 @@ msgid "Find Serial Number" msgstr "" #: templates/js/translated/stock.js:603 templates/js/translated/stock.js:604 -msgid "Enter serial number" -msgstr "" - #: templates/js/translated/stock.js:620 -msgid "Enter a serial number" +msgid "Enter serial number" msgstr "" #: templates/js/translated/stock.js:640 @@ -14284,7 +14615,7 @@ msgstr "" msgid "Add Stock" msgstr "" -#: templates/js/translated/stock.js:1049 users/models.py:396 +#: templates/js/translated/stock.js:1049 users/models.py:398 msgid "Add" msgstr "" @@ -14308,7 +14639,7 @@ msgstr "" msgid "Adjust packaging" msgstr "" -#: templates/js/translated/stock.js:1256 templates/js/translated/stock.js:3382 +#: templates/js/translated/stock.js:1256 templates/js/translated/stock.js:3383 msgid "Select Stock Items" msgstr "" @@ -14320,18 +14651,6 @@ msgstr "" msgid "Confirm stock adjustment" msgstr "" -#: templates/js/translated/stock.js:1448 -msgid "PASS" -msgstr "" - -#: templates/js/translated/stock.js:1450 -msgid "FAIL" -msgstr "" - -#: templates/js/translated/stock.js:1455 -msgid "NO RESULT" -msgstr "" - #: templates/js/translated/stock.js:1535 msgid "Pass test" msgstr "" @@ -14388,216 +14707,216 @@ msgstr "" msgid "No stock location set" msgstr "" -#: templates/js/translated/stock.js:1927 +#: templates/js/translated/stock.js:1928 msgid "Change stock status" msgstr "" -#: templates/js/translated/stock.js:1936 +#: templates/js/translated/stock.js:1937 msgid "Merge stock" msgstr "" -#: templates/js/translated/stock.js:1985 +#: templates/js/translated/stock.js:1986 msgid "Delete stock" msgstr "" -#: templates/js/translated/stock.js:2038 +#: templates/js/translated/stock.js:2039 msgid "stock items" msgstr "" -#: templates/js/translated/stock.js:2043 +#: templates/js/translated/stock.js:2044 msgid "Scan to location" msgstr "" -#: templates/js/translated/stock.js:2054 +#: templates/js/translated/stock.js:2055 msgid "Stock Actions" msgstr "" -#: templates/js/translated/stock.js:2098 +#: templates/js/translated/stock.js:2099 msgid "Load installed items" msgstr "" -#: templates/js/translated/stock.js:2176 +#: templates/js/translated/stock.js:2177 msgid "Stock item is in production" msgstr "" -#: templates/js/translated/stock.js:2181 +#: templates/js/translated/stock.js:2182 msgid "Stock item assigned to sales order" msgstr "" -#: templates/js/translated/stock.js:2184 +#: templates/js/translated/stock.js:2185 msgid "Stock item assigned to customer" msgstr "" -#: templates/js/translated/stock.js:2187 +#: templates/js/translated/stock.js:2188 msgid "Serialized stock item has been allocated" msgstr "" -#: templates/js/translated/stock.js:2189 +#: templates/js/translated/stock.js:2190 msgid "Stock item has been fully allocated" msgstr "" -#: templates/js/translated/stock.js:2191 +#: templates/js/translated/stock.js:2192 msgid "Stock item has been partially allocated" msgstr "" -#: templates/js/translated/stock.js:2194 +#: templates/js/translated/stock.js:2195 msgid "Stock item has been installed in another item" msgstr "" -#: templates/js/translated/stock.js:2196 +#: templates/js/translated/stock.js:2197 msgid "Stock item has been consumed by a build order" msgstr "" -#: templates/js/translated/stock.js:2200 +#: templates/js/translated/stock.js:2201 msgid "Stock item has expired" msgstr "" -#: templates/js/translated/stock.js:2202 +#: templates/js/translated/stock.js:2203 msgid "Stock item will expire soon" msgstr "" -#: templates/js/translated/stock.js:2207 +#: templates/js/translated/stock.js:2208 msgid "Stock item has been rejected" msgstr "" -#: templates/js/translated/stock.js:2209 +#: templates/js/translated/stock.js:2210 msgid "Stock item is lost" msgstr "" -#: templates/js/translated/stock.js:2211 +#: templates/js/translated/stock.js:2212 msgid "Stock item is destroyed" msgstr "" -#: templates/js/translated/stock.js:2215 +#: templates/js/translated/stock.js:2216 #: templates/js/translated/table_filters.js:357 msgid "Depleted" msgstr "" -#: templates/js/translated/stock.js:2380 +#: templates/js/translated/stock.js:2381 msgid "Supplier part not specified" msgstr "" -#: templates/js/translated/stock.js:2427 +#: templates/js/translated/stock.js:2428 msgid "Stock Value" msgstr "" -#: templates/js/translated/stock.js:2555 +#: templates/js/translated/stock.js:2556 msgid "No stock items matching query" msgstr "" -#: templates/js/translated/stock.js:2658 +#: templates/js/translated/stock.js:2659 msgid "stock locations" msgstr "" -#: templates/js/translated/stock.js:2813 +#: templates/js/translated/stock.js:2814 msgid "Load Sublocations" msgstr "" -#: templates/js/translated/stock.js:2930 +#: templates/js/translated/stock.js:2931 msgid "Details" msgstr "" -#: templates/js/translated/stock.js:2934 +#: templates/js/translated/stock.js:2935 msgid "No changes" msgstr "" -#: templates/js/translated/stock.js:2946 +#: templates/js/translated/stock.js:2947 msgid "Part information unavailable" msgstr "" -#: templates/js/translated/stock.js:2968 +#: templates/js/translated/stock.js:2969 msgid "Location no longer exists" msgstr "" -#: templates/js/translated/stock.js:2985 +#: templates/js/translated/stock.js:2986 msgid "Build order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3000 +#: templates/js/translated/stock.js:3001 msgid "Purchase order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3017 +#: templates/js/translated/stock.js:3018 msgid "Sales Order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3034 +#: templates/js/translated/stock.js:3035 msgid "Return Order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3053 +#: templates/js/translated/stock.js:3054 msgid "Customer no longer exists" msgstr "" -#: templates/js/translated/stock.js:3071 +#: templates/js/translated/stock.js:3072 msgid "Stock item no longer exists" msgstr "" -#: templates/js/translated/stock.js:3089 +#: templates/js/translated/stock.js:3090 msgid "Added" msgstr "" -#: templates/js/translated/stock.js:3097 +#: templates/js/translated/stock.js:3098 msgid "Removed" msgstr "" -#: templates/js/translated/stock.js:3169 +#: templates/js/translated/stock.js:3170 msgid "No installed items" msgstr "" -#: templates/js/translated/stock.js:3223 templates/js/translated/stock.js:3259 +#: templates/js/translated/stock.js:3224 templates/js/translated/stock.js:3260 msgid "Uninstall Stock Item" msgstr "" -#: templates/js/translated/stock.js:3280 +#: templates/js/translated/stock.js:3281 msgid "Select stock item to uninstall" msgstr "" -#: templates/js/translated/stock.js:3301 +#: templates/js/translated/stock.js:3302 msgid "Install another stock item into this item" msgstr "" -#: templates/js/translated/stock.js:3302 +#: templates/js/translated/stock.js:3303 msgid "Stock items can only be installed if they meet the following criteria" msgstr "" -#: templates/js/translated/stock.js:3304 +#: templates/js/translated/stock.js:3305 msgid "The Stock Item links to a Part which is the BOM for this Stock Item" msgstr "" -#: templates/js/translated/stock.js:3305 +#: templates/js/translated/stock.js:3306 msgid "The Stock Item is currently available in stock" msgstr "" -#: templates/js/translated/stock.js:3306 +#: templates/js/translated/stock.js:3307 msgid "The Stock Item is not already installed in another item" msgstr "" -#: templates/js/translated/stock.js:3307 +#: templates/js/translated/stock.js:3308 msgid "The Stock Item is tracked by either a batch code or serial number" msgstr "" -#: templates/js/translated/stock.js:3320 +#: templates/js/translated/stock.js:3321 msgid "Select part to install" msgstr "" -#: templates/js/translated/stock.js:3383 +#: templates/js/translated/stock.js:3384 msgid "Select one or more stock items" msgstr "" -#: templates/js/translated/stock.js:3396 +#: templates/js/translated/stock.js:3397 msgid "Selected stock items" msgstr "" -#: templates/js/translated/stock.js:3400 +#: templates/js/translated/stock.js:3401 msgid "Change Stock Status" msgstr "" -#: templates/js/translated/stock.js:3477 +#: templates/js/translated/stock.js:3478 msgid "This week" msgstr "" -#: templates/js/translated/stock.js:3485 +#: templates/js/translated/stock.js:3486 msgid "This month" msgstr "" @@ -14734,10 +15053,6 @@ msgstr "" msgid "Show items which are in production" msgstr "" -#: templates/js/translated/table_filters.js:372 -msgid "Include Variants" -msgstr "" - #: templates/js/translated/table_filters.js:373 msgid "Include stock items for variant parts" msgstr "" @@ -15012,10 +15327,6 @@ msgstr "" msgid "An error occurred while attempting to login via your social network account." msgstr "" -#: templates/socialaccount/authentication_error.html:13 -msgid "Contact your system administrator for further information." -msgstr "" - #: templates/socialaccount/login.html:13 #, python-format msgid "Connect %(provider)s" @@ -15141,27 +15452,27 @@ msgstr "" msgid "No" msgstr "" -#: users/admin.py:104 +#: users/admin.py:101 msgid "Users" msgstr "" -#: users/admin.py:105 +#: users/admin.py:102 msgid "Select which users are assigned to this group" msgstr "" -#: users/admin.py:249 +#: users/admin.py:246 msgid "The following users are members of multiple groups" msgstr "" -#: users/admin.py:283 +#: users/admin.py:280 msgid "Personal info" msgstr "" -#: users/admin.py:285 +#: users/admin.py:282 msgid "Permissions" msgstr "" -#: users/admin.py:288 +#: users/admin.py:285 msgid "Important dates" msgstr "" @@ -15205,35 +15516,35 @@ msgstr "" msgid "Revoked" msgstr "" -#: users/models.py:379 +#: users/models.py:381 msgid "Permission set" msgstr "" -#: users/models.py:388 +#: users/models.py:390 msgid "Group" msgstr "" -#: users/models.py:392 +#: users/models.py:394 msgid "View" msgstr "" -#: users/models.py:392 +#: users/models.py:394 msgid "Permission to view items" msgstr "" -#: users/models.py:396 +#: users/models.py:398 msgid "Permission to add items" msgstr "" -#: users/models.py:400 +#: users/models.py:402 msgid "Change" msgstr "" -#: users/models.py:402 +#: users/models.py:404 msgid "Permissions to edit items" msgstr "" -#: users/models.py:408 +#: users/models.py:410 msgid "Permission to delete items" msgstr "" diff --git a/src/backend/InvenTree/locale/hu/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/hu/LC_MESSAGES/django.po index fdd0b307b4..fef1bd4073 100644 --- a/src/backend/InvenTree/locale/hu/LC_MESSAGES/django.po +++ b/src/backend/InvenTree/locale/hu/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-08-20 01:22+0000\n" -"PO-Revision-Date: 2024-08-20 19:50\n" +"POT-Creation-Date: 2024-11-04 03:11+0000\n" +"PO-Revision-Date: 2024-11-04 03:14\n" "Last-Translator: \n" "Language-Team: Hungarian\n" "Language: hu_HU\n" @@ -14,81 +14,89 @@ msgstr "" "X-Crowdin-Project: inventree\n" "X-Crowdin-Project-ID: 452300\n" "X-Crowdin-Language: hu\n" -"X-Crowdin-File: /[inventree.InvenTree] l10/src/backend/InvenTree/locale/en/LC_MESSAGES/django.po\n" -"X-Crowdin-File-ID: 216\n" +"X-Crowdin-File: /src/backend/InvenTree/locale/en/LC_MESSAGES/django.po\n" +"X-Crowdin-File-ID: 250\n" -#: InvenTree/api.py:269 +#: InvenTree/api.py:270 msgid "API endpoint not found" msgstr "API funkciót nem találom" -#: InvenTree/api.py:502 +#: InvenTree/api.py:387 +msgid "Invalid items list provided" +msgstr "" + +#: InvenTree/api.py:396 +msgid "Invalid filters provided" +msgstr "" + +#: InvenTree/api.py:401 +msgid "No items found to delete" +msgstr "" + +#: InvenTree/api.py:515 msgid "User does not have permission to view this model" msgstr "Nincs jogosultságod az adatok megtekintéséhez" -#: InvenTree/conversion.py:160 +#: InvenTree/conversion.py:161 #, python-brace-format msgid "Invalid unit provided ({unit})" msgstr "Érvénytelen mennyiségi egység ({unit})" -#: InvenTree/conversion.py:177 +#: InvenTree/conversion.py:178 msgid "No value provided" msgstr "Nincs érték megadva" -#: InvenTree/conversion.py:204 +#: InvenTree/conversion.py:205 #, python-brace-format msgid "Could not convert {original} to {unit}" msgstr "{original} átváltása {unit}-ra sikertelen" -#: InvenTree/conversion.py:206 -msgid "Invalid quantity supplied" -msgstr "Hibás mennyiség" +#: InvenTree/conversion.py:207 InvenTree/conversion.py:221 +#: InvenTree/helpers.py:505 order/models.py:589 order/models.py:832 +msgid "Invalid quantity provided" +msgstr "Nem megfelelő mennyiség" -#: InvenTree/conversion.py:220 -#, python-brace-format -msgid "Invalid quantity supplied ({exc})" -msgstr "Hibás mennyiség ({exc})" - -#: InvenTree/exceptions.py:108 +#: InvenTree/exceptions.py:104 msgid "Error details can be found in the admin panel" msgstr "A hiba részleteit megtalálod az admin panelen" -#: InvenTree/fields.py:136 +#: InvenTree/fields.py:135 msgid "Enter date" msgstr "Dátum megadása" -#: InvenTree/fields.py:205 InvenTree/models.py:929 build/serializers.py:468 -#: build/serializers.py:546 build/templates/build/sidebar.html:29 -#: company/models.py:836 +#: InvenTree/fields.py:204 InvenTree/models.py:928 build/serializers.py:512 +#: build/serializers.py:590 build/templates/build/sidebar.html:29 +#: company/models.py:833 #: company/templates/company/manufacturer_part_sidebar.html:11 #: company/templates/company/sidebar.html:37 -#: company/templates/company/supplier_part_sidebar.html:11 order/models.py:1380 +#: company/templates/company/supplier_part_sidebar.html:11 order/models.py:1397 #: order/templates/order/po_sidebar.html:11 #: order/templates/order/return_order_sidebar.html:9 #: order/templates/order/so_sidebar.html:17 part/admin.py:59 -#: part/models.py:3297 part/templates/part/part_sidebar.html:65 +#: part/models.py:3348 part/templates/part/part_sidebar.html:65 #: report/templates/report/inventree_build_order_report.html:172 -#: stock/admin.py:230 stock/models.py:2375 stock/models.py:2563 -#: stock/serializers.py:698 stock/serializers.py:856 stock/serializers.py:982 -#: stock/serializers.py:1032 stock/serializers.py:1343 -#: stock/serializers.py:1432 stock/serializers.py:1597 +#: stock/admin.py:231 stock/models.py:2494 stock/models.py:2679 +#: stock/serializers.py:725 stock/serializers.py:887 stock/serializers.py:1013 +#: stock/serializers.py:1063 stock/serializers.py:1374 +#: stock/serializers.py:1463 stock/serializers.py:1628 #: stock/templates/stock/stock_sidebar.html:25 #: templates/js/translated/barcode.js:143 templates/js/translated/bom.js:1265 -#: templates/js/translated/company.js:1684 templates/js/translated/order.js:372 +#: templates/js/translated/company.js:1685 templates/js/translated/order.js:372 #: templates/js/translated/part.js:1087 -#: templates/js/translated/purchase_order.js:2270 +#: templates/js/translated/purchase_order.js:2254 #: templates/js/translated/return_order.js:774 -#: templates/js/translated/sales_order.js:1103 -#: templates/js/translated/sales_order.js:2018 -#: templates/js/translated/stock.js:1621 templates/js/translated/stock.js:2513 +#: templates/js/translated/sales_order.js:1069 +#: templates/js/translated/sales_order.js:1999 +#: templates/js/translated/stock.js:1621 templates/js/translated/stock.js:2514 msgid "Notes" msgstr "Megjegyzések" -#: InvenTree/format.py:164 +#: InvenTree/format.py:162 #, python-brace-format msgid "Value '{name}' does not appear in pattern format" msgstr "A(z) '{name}' érték nem a szükséges minta szerinti" -#: InvenTree/format.py:175 +#: InvenTree/format.py:173 msgid "Provided value does not match required pattern: " msgstr "A megadott érték nem felel meg a szükséges mintának: " @@ -132,397 +140,409 @@ msgstr "MFA regisztráció nincs engedélyezve." msgid "The provided primary email address is not valid." msgstr "A megadott elsődleges email cím nem valós." -#: InvenTree/forms.py:274 +#: InvenTree/forms.py:273 msgid "The provided email domain is not approved." msgstr "A megadott email domain nincs jóváhagyva." -#: InvenTree/forms.py:403 +#: InvenTree/forms.py:402 msgid "Registration is disabled." msgstr "Regisztráció le van tiltva." -#: InvenTree/helpers.py:491 order/models.py:567 order/models.py:810 -msgid "Invalid quantity provided" -msgstr "Nem megfelelő mennyiség" +#: InvenTree/helpers.py:509 +msgid "Cannot serialize more than 1000 items at once" +msgstr "" -#: InvenTree/helpers.py:499 +#: InvenTree/helpers.py:515 msgid "Empty serial number string" msgstr "Üres sorozatszám" -#: InvenTree/helpers.py:528 +#: InvenTree/helpers.py:544 msgid "Duplicate serial" msgstr "Duplikált sorozatszám" -#: InvenTree/helpers.py:560 InvenTree/helpers.py:603 +#: InvenTree/helpers.py:576 InvenTree/helpers.py:619 InvenTree/helpers.py:637 +#: InvenTree/helpers.py:644 InvenTree/helpers.py:663 #, python-brace-format -msgid "Invalid group range: {group}" -msgstr "Hibás tartomány: {group}" +msgid "Invalid group: {group}" +msgstr "" -#: InvenTree/helpers.py:591 +#: InvenTree/helpers.py:607 #, python-brace-format msgid "Group range {group} exceeds allowed quantity ({expected_quantity})" msgstr "Csoport tartomány {group} több mint az engedélyezett ({expected_quantity})" -#: InvenTree/helpers.py:621 InvenTree/helpers.py:628 InvenTree/helpers.py:647 -#, python-brace-format -msgid "Invalid group sequence: {group}" -msgstr "Hibás csoport-sor: {group}" - -#: InvenTree/helpers.py:657 +#: InvenTree/helpers.py:673 msgid "No serial numbers found" msgstr "Nem található sorozatszám" -#: InvenTree/helpers.py:662 +#: InvenTree/helpers.py:678 msgid "Number of unique serial numbers ({len(serials)}) must match quantity ({expected_quantity})" msgstr "Az egyedi sorozatszámok számának ({len(serials)}) meg kell egyeznie a mennyiséggel ({expected_quantity})" -#: InvenTree/helpers.py:780 +#: InvenTree/helpers.py:796 msgid "Remove HTML tags from this value" msgstr "HTML tag-ek eltávolítása ebből az értékből" -#: InvenTree/helpers_model.py:133 +#: InvenTree/helpers.py:881 +msgid "Data contains prohibited markdown content" +msgstr "" + +#: InvenTree/helpers_model.py:130 msgid "Connection error" msgstr "Csatlakozási hiba" -#: InvenTree/helpers_model.py:138 InvenTree/helpers_model.py:145 +#: InvenTree/helpers_model.py:135 InvenTree/helpers_model.py:142 msgid "Server responded with invalid status code" msgstr "A kiszolgáló érvénytelen státuszkóddal válaszolt" -#: InvenTree/helpers_model.py:141 +#: InvenTree/helpers_model.py:138 msgid "Exception occurred" msgstr "Kivétel történt" -#: InvenTree/helpers_model.py:151 +#: InvenTree/helpers_model.py:148 msgid "Server responded with invalid Content-Length value" msgstr "A kiszolgáló érvénytelen Content-Length értéket adott" -#: InvenTree/helpers_model.py:154 +#: InvenTree/helpers_model.py:151 msgid "Image size is too large" msgstr "A kép mérete túl nagy" -#: InvenTree/helpers_model.py:166 +#: InvenTree/helpers_model.py:163 msgid "Image download exceeded maximum size" msgstr "A kép letöltés meghaladja a maximális méretet" -#: InvenTree/helpers_model.py:171 +#: InvenTree/helpers_model.py:168 msgid "Remote server returned empty response" msgstr "A kiszolgáló üres választ adott" -#: InvenTree/helpers_model.py:179 +#: InvenTree/helpers_model.py:176 msgid "Supplied URL is not a valid image file" msgstr "A megadott URL nem egy érvényes kép fájl" -#: InvenTree/locales.py:18 +#: InvenTree/locales.py:20 msgid "Arabic" msgstr "Arab" -#: InvenTree/locales.py:19 +#: InvenTree/locales.py:21 msgid "Bulgarian" msgstr "Bolgár" -#: InvenTree/locales.py:20 +#: InvenTree/locales.py:22 msgid "Czech" msgstr "Cseh" -#: InvenTree/locales.py:21 +#: InvenTree/locales.py:23 msgid "Danish" msgstr "Dán" -#: InvenTree/locales.py:22 +#: InvenTree/locales.py:24 msgid "German" msgstr "Német" -#: InvenTree/locales.py:23 +#: InvenTree/locales.py:25 msgid "Greek" msgstr "Görög" -#: InvenTree/locales.py:24 +#: InvenTree/locales.py:26 msgid "English" msgstr "Angol" -#: InvenTree/locales.py:25 +#: InvenTree/locales.py:27 msgid "Spanish" msgstr "Spanyol" -#: InvenTree/locales.py:26 +#: InvenTree/locales.py:28 msgid "Spanish (Mexican)" msgstr "Spanyol (Mexikói)" -#: InvenTree/locales.py:27 +#: InvenTree/locales.py:29 msgid "Estonian" msgstr "Észt" -#: InvenTree/locales.py:28 +#: InvenTree/locales.py:30 msgid "Farsi / Persian" msgstr "Fárszi/Perzsa" -#: InvenTree/locales.py:29 +#: InvenTree/locales.py:31 msgid "Finnish" msgstr "Finn" -#: InvenTree/locales.py:30 +#: InvenTree/locales.py:32 msgid "French" msgstr "Francia" -#: InvenTree/locales.py:31 +#: InvenTree/locales.py:33 msgid "Hebrew" msgstr "Héber" -#: InvenTree/locales.py:32 +#: InvenTree/locales.py:34 msgid "Hindi" msgstr "Hindi" -#: InvenTree/locales.py:33 +#: InvenTree/locales.py:35 msgid "Hungarian" msgstr "Magyar" -#: InvenTree/locales.py:34 +#: InvenTree/locales.py:36 msgid "Italian" msgstr "Olasz" -#: InvenTree/locales.py:35 +#: InvenTree/locales.py:37 msgid "Japanese" msgstr "Japán" -#: InvenTree/locales.py:36 +#: InvenTree/locales.py:38 msgid "Korean" msgstr "Koreai" -#: InvenTree/locales.py:37 +#: InvenTree/locales.py:39 +msgid "Lithuanian" +msgstr "" + +#: InvenTree/locales.py:40 msgid "Latvian" msgstr "Litván" -#: InvenTree/locales.py:38 +#: InvenTree/locales.py:41 msgid "Dutch" msgstr "Holland" -#: InvenTree/locales.py:39 +#: InvenTree/locales.py:42 msgid "Norwegian" msgstr "Norvég" -#: InvenTree/locales.py:40 +#: InvenTree/locales.py:43 msgid "Polish" msgstr "Lengyel" -#: InvenTree/locales.py:41 +#: InvenTree/locales.py:44 msgid "Portuguese" msgstr "Portugál" -#: InvenTree/locales.py:42 +#: InvenTree/locales.py:45 msgid "Portuguese (Brazilian)" msgstr "Portugál (Brazíliai)" -#: InvenTree/locales.py:43 +#: InvenTree/locales.py:46 msgid "Romanian" msgstr "Román" -#: InvenTree/locales.py:44 +#: InvenTree/locales.py:47 msgid "Russian" msgstr "Orosz" -#: InvenTree/locales.py:45 +#: InvenTree/locales.py:48 msgid "Slovak" msgstr "Szlovák" -#: InvenTree/locales.py:46 +#: InvenTree/locales.py:49 msgid "Slovenian" msgstr "Szlovén" -#: InvenTree/locales.py:47 +#: InvenTree/locales.py:50 msgid "Serbian" msgstr "Szerb" -#: InvenTree/locales.py:48 +#: InvenTree/locales.py:51 msgid "Swedish" msgstr "Svéd" -#: InvenTree/locales.py:49 +#: InvenTree/locales.py:52 msgid "Thai" msgstr "Tháj" -#: InvenTree/locales.py:50 +#: InvenTree/locales.py:53 msgid "Turkish" msgstr "Török" -#: InvenTree/locales.py:51 +#: InvenTree/locales.py:54 msgid "Ukrainian" msgstr "Ukrán" -#: InvenTree/locales.py:52 +#: InvenTree/locales.py:55 msgid "Vietnamese" msgstr "Vietnámi" -#: InvenTree/locales.py:53 +#: InvenTree/locales.py:56 msgid "Chinese (Simplified)" msgstr "Kínai (egyszerűsített)" -#: InvenTree/locales.py:54 +#: InvenTree/locales.py:57 msgid "Chinese (Traditional)" msgstr "Kínai (Hagyományos)" #: InvenTree/magic_login.py:28 -#, python-brace-format -msgid "[{site_name}] Log in to the app" -msgstr "[{site_name}] Bejelentkezés" +msgid "Log in to the app" +msgstr "" -#: InvenTree/magic_login.py:38 InvenTree/serializers.py:415 -#: company/models.py:136 company/templates/company/company_base.html:138 +#: InvenTree/magic_login.py:38 InvenTree/serializers.py:416 +#: company/models.py:133 company/templates/company/company_base.html:138 #: templates/InvenTree/settings/user.html:49 -#: templates/js/translated/company.js:677 +#: templates/js/translated/company.js:678 msgid "Email" msgstr "Email" -#: InvenTree/models.py:103 +#: InvenTree/models.py:105 msgid "Error running plugin validation" msgstr "Hiba a plugin validálása közben" -#: InvenTree/models.py:172 +#: InvenTree/models.py:174 msgid "Metadata must be a python dict object" msgstr "A meta adatnak egy python dict objektumnak kell lennie" -#: InvenTree/models.py:178 +#: InvenTree/models.py:180 msgid "Plugin Metadata" msgstr "Plugin meta adatok" -#: InvenTree/models.py:179 +#: InvenTree/models.py:181 msgid "JSON metadata field, for use by external plugins" msgstr "JSON meta adat mező, külső pluginok számára" -#: InvenTree/models.py:409 +#: InvenTree/models.py:408 msgid "Improperly formatted pattern" msgstr "Helytelenül formázott minta" -#: InvenTree/models.py:416 +#: InvenTree/models.py:415 msgid "Unknown format key specified" msgstr "Ismeretlen formátum kulcs lett megadva" -#: InvenTree/models.py:422 +#: InvenTree/models.py:421 msgid "Missing required format key" msgstr "Hiányzó formátum kulcs" -#: InvenTree/models.py:433 +#: InvenTree/models.py:432 msgid "Reference field cannot be empty" msgstr "Az azonosító mező nem lehet üres" -#: InvenTree/models.py:441 +#: InvenTree/models.py:440 msgid "Reference must match required pattern" msgstr "Az azonosítónak egyeznie kell a mintával" -#: InvenTree/models.py:472 +#: InvenTree/models.py:471 msgid "Reference number is too large" msgstr "Azonosító szám túl nagy" -#: InvenTree/models.py:723 +#: InvenTree/models.py:722 msgid "Duplicate names cannot exist under the same parent" msgstr "Duplikált nevek nem lehetnek ugyanazon szülő alatt" -#: InvenTree/models.py:740 +#: InvenTree/models.py:739 msgid "Invalid choice" msgstr "Érvénytelen választás" -#: InvenTree/models.py:770 common/models.py:2702 common/models.py:3132 -#: common/serializers.py:412 company/models.py:593 machine/models.py:24 -#: part/models.py:983 part/models.py:3764 plugin/models.py:51 -#: report/models.py:149 stock/models.py:77 +#: InvenTree/models.py:769 common/models.py:2766 common/models.py:3193 +#: common/models.py:3413 common/serializers.py:460 company/models.py:590 +#: machine/models.py:24 part/models.py:1044 part/models.py:3815 +#: plugin/models.py:51 report/models.py:149 stock/models.py:83 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/notifications.html:17 #: templates/InvenTree/settings/plugin.html:83 #: templates/InvenTree/settings/plugin_settings.html:22 #: templates/InvenTree/settings/settings_staff_js.html:67 #: templates/InvenTree/settings/settings_staff_js.html:454 -#: templates/js/translated/company.js:676 -#: templates/js/translated/company.js:724 -#: templates/js/translated/company.js:913 -#: templates/js/translated/company.js:1165 -#: templates/js/translated/company.js:1413 templates/js/translated/part.js:1193 +#: templates/js/translated/company.js:677 +#: templates/js/translated/company.js:725 +#: templates/js/translated/company.js:914 +#: templates/js/translated/company.js:1166 +#: templates/js/translated/company.js:1414 templates/js/translated/part.js:1193 #: templates/js/translated/part.js:1481 templates/js/translated/part.js:1617 -#: templates/js/translated/part.js:2768 templates/js/translated/stock.js:2801 +#: templates/js/translated/part.js:2768 templates/js/translated/stock.js:2802 msgid "Name" msgstr "Név" -#: InvenTree/models.py:776 build/models.py:250 -#: build/templates/build/detail.html:24 common/models.py:156 -#: company/models.py:521 company/models.py:827 +#: InvenTree/models.py:775 build/models.py:251 +#: build/templates/build/detail.html:24 common/models.py:159 +#: company/models.py:518 company/models.py:824 #: company/templates/company/company_base.html:77 #: company/templates/company/manufacturer_part.html:75 -#: company/templates/company/supplier_part.html:107 order/models.py:288 -#: order/models.py:1413 part/admin.py:305 part/admin.py:411 part/models.py:1006 -#: part/models.py:3779 part/templates/part/category.html:79 -#: part/templates/part/part_base.html:170 +#: company/templates/company/supplier_part.html:108 order/models.py:295 +#: order/models.py:1430 part/admin.py:305 part/admin.py:411 part/models.py:1067 +#: part/models.py:3830 part/templates/part/category.html:79 +#: part/templates/part/part_base.html:171 #: part/templates/part/part_scheduling.html:12 report/models.py:155 -#: report/models.py:509 report/models.py:535 +#: report/models.py:517 report/models.py:543 #: report/templates/report/inventree_build_order_report.html:117 -#: stock/admin.py:54 stock/models.py:83 stock/templates/stock/location.html:122 +#: stock/admin.py:54 stock/models.py:89 stock/templates/stock/location.html:123 #: templates/InvenTree/settings/notifications.html:19 #: templates/InvenTree/settings/plugin_settings.html:27 #: templates/InvenTree/settings/settings_staff_js.html:170 #: templates/InvenTree/settings/settings_staff_js.html:459 #: templates/js/translated/bom.js:633 templates/js/translated/bom.js:963 -#: templates/js/translated/build.js:2311 templates/js/translated/company.js:519 -#: templates/js/translated/company.js:1330 -#: templates/js/translated/company.js:1641 templates/js/translated/index.js:119 +#: templates/js/translated/build.js:2314 templates/js/translated/company.js:520 +#: templates/js/translated/company.js:1331 +#: templates/js/translated/company.js:1642 templates/js/translated/index.js:119 #: templates/js/translated/order.js:323 templates/js/translated/part.js:1245 #: templates/js/translated/part.js:1490 templates/js/translated/part.js:1628 #: templates/js/translated/part.js:1965 templates/js/translated/part.js:2361 #: templates/js/translated/part.js:2803 templates/js/translated/part.js:2915 #: templates/js/translated/plugin.js:80 -#: templates/js/translated/purchase_order.js:1776 -#: templates/js/translated/purchase_order.js:1919 -#: templates/js/translated/purchase_order.js:2092 +#: templates/js/translated/purchase_order.js:1760 +#: templates/js/translated/purchase_order.js:1903 +#: templates/js/translated/purchase_order.js:2076 #: templates/js/translated/return_order.js:313 -#: templates/js/translated/sales_order.js:838 -#: templates/js/translated/sales_order.js:1848 -#: templates/js/translated/stock.js:1600 templates/js/translated/stock.js:2143 -#: templates/js/translated/stock.js:2832 templates/js/translated/stock.js:2915 +#: templates/js/translated/sales_order.js:797 +#: templates/js/translated/sales_order.js:1829 +#: templates/js/translated/stock.js:1600 templates/js/translated/stock.js:2144 +#: templates/js/translated/stock.js:2833 templates/js/translated/stock.js:2916 msgid "Description" msgstr "Leírás" -#: InvenTree/models.py:777 stock/models.py:84 +#: InvenTree/models.py:776 stock/models.py:90 msgid "Description (optional)" msgstr "Leírás (opcionális)" -#: InvenTree/models.py:792 templates/js/translated/part.js:2812 -#: templates/js/translated/stock.js:2841 +#: InvenTree/models.py:791 common/models.py:3546 +#: templates/js/translated/part.js:2812 templates/js/translated/stock.js:2842 msgid "Path" msgstr "Elérési út" -#: InvenTree/models.py:929 +#: InvenTree/models.py:928 msgid "Markdown notes (optional)" msgstr "Markdown megjegyzések (opcionális)" -#: InvenTree/models.py:960 +#: InvenTree/models.py:959 msgid "Barcode Data" msgstr "Vonalkód adat" -#: InvenTree/models.py:961 +#: InvenTree/models.py:960 msgid "Third party barcode data" msgstr "Harmadik féltől származó vonalkód adat" -#: InvenTree/models.py:967 +#: InvenTree/models.py:966 msgid "Barcode Hash" msgstr "Vonalkód hash" -#: InvenTree/models.py:968 +#: InvenTree/models.py:967 msgid "Unique hash of barcode data" msgstr "Egyedi vonalkód hash" -#: InvenTree/models.py:1035 +#: InvenTree/models.py:1034 msgid "Existing barcode found" msgstr "Létező vonalkód" -#: InvenTree/models.py:1078 +#: InvenTree/models.py:1112 +msgid "Task Failure" +msgstr "" + +#: InvenTree/models.py:1114 +#, python-brace-format +msgid "Background worker task '{instance.func}' failed after {n} attempts" +msgstr "" + +#: InvenTree/models.py:1142 msgid "Server Error" msgstr "Kiszolgálóhiba" -#: InvenTree/models.py:1079 +#: InvenTree/models.py:1143 msgid "An error has been logged by the server." msgstr "A kiszolgáló egy hibaüzenetet rögzített." -#: InvenTree/serializers.py:63 part/models.py:4387 +#: InvenTree/serializers.py:63 part/models.py:4444 msgid "Must be a valid number" msgstr "Érvényes számnak kell lennie" -#: InvenTree/serializers.py:100 company/models.py:186 -#: company/templates/company/company_base.html:112 part/models.py:3115 +#: InvenTree/serializers.py:100 company/models.py:183 +#: company/templates/company/company_base.html:112 part/models.py:3166 #: templates/InvenTree/settings/settings_staff_js.html:44 #: templates/currency_data.html:5 msgid "Currency" @@ -532,15 +552,15 @@ msgstr "Pénznem" msgid "Select currency from available options" msgstr "Válassz pénznemet a lehetőségek közül" -#: InvenTree/serializers.py:407 templates/InvenTree/settings/user.html:33 +#: InvenTree/serializers.py:405 templates/InvenTree/settings/user.html:33 msgid "Username" msgstr "Felhasználónév" -#: InvenTree/serializers.py:409 templates/InvenTree/settings/user.html:37 +#: InvenTree/serializers.py:408 templates/InvenTree/settings/user.html:37 msgid "First Name" msgstr "Keresztnév" -#: InvenTree/serializers.py:409 +#: InvenTree/serializers.py:408 msgid "First name of the user" msgstr "A felhasználó keresztneve" @@ -552,30 +572,30 @@ msgstr "Vezetéknév" msgid "Last name of the user" msgstr "A felhasználó vezetékneve" -#: InvenTree/serializers.py:415 +#: InvenTree/serializers.py:416 msgid "Email address of the user" msgstr "A felhasználó e-mail címe" -#: InvenTree/serializers.py:439 +#: InvenTree/serializers.py:441 msgid "Staff" msgstr "Személyzet" -#: InvenTree/serializers.py:439 +#: InvenTree/serializers.py:441 msgid "Does this user have staff permissions" -msgstr "" +msgstr "Van-e a felhasználónak személyzeti jogosultsága" -#: InvenTree/serializers.py:442 +#: InvenTree/serializers.py:445 msgid "Superuser" msgstr "Rendszergazda" -#: InvenTree/serializers.py:442 +#: InvenTree/serializers.py:445 msgid "Is this user a superuser" -msgstr "" +msgstr "A felhasználó rendszergazda-e" -#: InvenTree/serializers.py:445 common/models.py:2707 company/models.py:163 -#: company/models.py:801 machine/models.py:39 part/admin.py:88 -#: part/models.py:1189 plugin/models.py:66 -#: templates/js/translated/company.js:523 +#: InvenTree/serializers.py:449 common/models.py:2771 company/models.py:160 +#: company/models.py:798 machine/models.py:39 part/admin.py:88 +#: part/models.py:1250 plugin/models.py:66 +#: templates/js/translated/company.js:524 #: templates/js/translated/table_filters.js:134 #: templates/js/translated/table_filters.js:226 #: templates/js/translated/table_filters.js:513 @@ -585,230 +605,229 @@ msgstr "" msgid "Active" msgstr "Aktív" -#: InvenTree/serializers.py:445 +#: InvenTree/serializers.py:449 msgid "Is this user account active" msgstr "Aktív a felhasználói fiók" -#: InvenTree/serializers.py:463 +#: InvenTree/serializers.py:467 msgid "You do not have permission to change this user role." msgstr "Önnek nincs joga változtatni ezen a felhasználói szerepkörön." -#: InvenTree/serializers.py:475 +#: InvenTree/serializers.py:503 msgid "Only superusers can create new users" msgstr "Csak a superuser-ek hozhatnak létre felhasználókat" -#: InvenTree/serializers.py:494 +#: InvenTree/serializers.py:523 msgid "Your account has been created." msgstr "A fiókod sikeresen létrejött." -#: InvenTree/serializers.py:496 +#: InvenTree/serializers.py:525 msgid "Please use the password reset function to login" msgstr "Kérlek használd a jelszó visszállítás funkciót a belépéshez" -#: InvenTree/serializers.py:503 +#: InvenTree/serializers.py:531 msgid "Welcome to InvenTree" msgstr "Üdvözlet az InvenTree-ben" -#: InvenTree/serializers.py:561 +#: InvenTree/serializers.py:594 msgid "Invalid value" msgstr "Érvénytelen érték" -#: InvenTree/serializers.py:581 importer/models.py:63 +#: InvenTree/serializers.py:614 importer/models.py:64 msgid "Data File" msgstr "Adat fájl" -#: InvenTree/serializers.py:582 +#: InvenTree/serializers.py:615 msgid "Select data file for upload" msgstr "Fájl kiválasztása feltöltéshez" -#: InvenTree/serializers.py:599 -msgid "Unsupported file type" -msgstr "Nem támogatott fájltípus" +#: InvenTree/serializers.py:632 common/files.py:63 +msgid "Unsupported file format" +msgstr "" -#: InvenTree/serializers.py:605 +#: InvenTree/serializers.py:638 msgid "File is too large" msgstr "Fájl túl nagy" -#: InvenTree/serializers.py:626 +#: InvenTree/serializers.py:659 msgid "No columns found in file" msgstr "Nem találhatók oszlopok a fájlban" -#: InvenTree/serializers.py:629 +#: InvenTree/serializers.py:662 msgid "No data rows found in file" msgstr "Nincsenek adatsorok a fájlban" -#: InvenTree/serializers.py:742 +#: InvenTree/serializers.py:774 msgid "No data rows provided" msgstr "Nincs adatsor megadva" -#: InvenTree/serializers.py:745 +#: InvenTree/serializers.py:777 msgid "No data columns supplied" msgstr "Nincs adat oszlop megadva" -#: InvenTree/serializers.py:812 +#: InvenTree/serializers.py:843 #, python-brace-format msgid "Missing required column: '{name}'" msgstr "Szükséges oszlop hiányzik: '{name}'" -#: InvenTree/serializers.py:821 +#: InvenTree/serializers.py:852 #, python-brace-format msgid "Duplicate column: '{col}'" msgstr "Duplikált oszlop: '{col}'" -#: InvenTree/serializers.py:861 +#: InvenTree/serializers.py:891 msgid "Remote Image" msgstr "Távoli kép" -#: InvenTree/serializers.py:862 +#: InvenTree/serializers.py:892 msgid "URL of remote image file" msgstr "A távoli kép URL-je" -#: InvenTree/serializers.py:880 +#: InvenTree/serializers.py:910 msgid "Downloading images from remote URL is not enabled" msgstr "Képek letöltése távoli URL-ről nem engedélyezett" -#: InvenTree/status.py:66 part/serializers.py:1246 -msgid "Background worker check failed" -msgstr "Háttér folyamat ellenőrzés sikertelen" - -#: InvenTree/status.py:70 -msgid "Email backend not configured" -msgstr "Email backend nincs beállítva" - -#: InvenTree/status.py:73 -msgid "InvenTree system health checks failed" -msgstr "InvenTree rendszer állapotának ellenőrzése sikertelen" +#: InvenTree/serializers.py:917 +msgid "Failed to download image from remote URL" +msgstr "" #: InvenTree/templatetags/inventree_extras.py:184 msgid "Unknown database" msgstr "Ismeretlen adatbázis" -#: InvenTree/validators.py:32 InvenTree/validators.py:34 +#: InvenTree/validators.py:32 msgid "Invalid physical unit" msgstr "Érvénytelen fizikai mértékegység" -#: InvenTree/validators.py:40 +#: InvenTree/validators.py:38 msgid "Not a valid currency code" msgstr "Érvénytelen pénznem kód" -#: InvenTree/validators.py:118 InvenTree/validators.py:134 +#: InvenTree/validators.py:115 InvenTree/validators.py:131 msgid "Overage value must not be negative" msgstr "Túlszállítás nem lehet negatív" -#: InvenTree/validators.py:136 +#: InvenTree/validators.py:133 msgid "Overage must not exceed 100%" msgstr "Túlszállítás nem lehet több mint 100%" -#: InvenTree/validators.py:142 +#: InvenTree/validators.py:139 msgid "Invalid value for overage" msgstr "Érvénytelen érték a túlszállításra" -#: InvenTree/views.py:400 templates/InvenTree/settings/user.html:23 +#: InvenTree/views.py:399 templates/InvenTree/settings/user.html:23 msgid "Edit User Information" msgstr "Felhasználói információ módosítása" -#: InvenTree/views.py:412 templates/InvenTree/settings/user.html:20 +#: InvenTree/views.py:411 templates/InvenTree/settings/user.html:20 msgid "Set Password" msgstr "Jelszó beállítása" -#: InvenTree/views.py:434 +#: InvenTree/views.py:433 msgid "Password fields must match" msgstr "A jelszavaknak egyeznie kell" -#: InvenTree/views.py:442 +#: InvenTree/views.py:441 msgid "Wrong password provided" msgstr "Rossz jelszó lett megadva" -#: InvenTree/views.py:650 templates/navbar.html:160 +#: InvenTree/views.py:645 templates/navbar.html:160 msgid "System Information" msgstr "Rendszerinformáció" -#: InvenTree/views.py:657 templates/navbar.html:171 +#: InvenTree/views.py:652 templates/navbar.html:171 msgid "About InvenTree" msgstr "Verzió információk" -#: build/api.py:51 part/api.py:156 stock/api.py:343 -msgid "Cascade" -msgstr "Lépcsőzetes" - -#: build/api.py:64 build/models.py:261 -#: build/templates/build/build_base.html:191 +#: build/api.py:54 build/models.py:262 +#: build/templates/build/build_base.html:192 #: build/templates/build/detail.html:87 msgid "Parent Build" msgstr "Szülő gyártás" -#: build/api.py:89 order/api.py:92 templates/js/translated/table_filters.js:101 +#: build/api.py:58 build/api.py:625 order/api.py:396 order/api.py:611 +#: order/api.py:990 order/api.py:1187 +#: templates/js/translated/table_filters.js:372 +msgid "Include Variants" +msgstr "Változatokkal együtt" + +#: build/api.py:93 +msgid "Ancestor Build" +msgstr "Szülő Gyártás" + +#: build/api.py:112 order/api.py:90 +#: templates/js/translated/table_filters.js:101 #: templates/js/translated/table_filters.js:549 #: templates/js/translated/table_filters.js:633 #: templates/js/translated/table_filters.js:674 msgid "Assigned to me" msgstr "Hozzám rendelt" -#: build/api.py:106 build/templates/build/build_base.html:205 +#: build/api.py:129 build/templates/build/build_base.html:206 #: build/templates/build/detail.html:115 #: report/templates/report/inventree_build_order_report.html:152 #: templates/js/translated/table_filters.js:552 msgid "Issued By" msgstr "Kiállította" -#: build/api.py:125 +#: build/api.py:148 msgid "Assigned To" -msgstr "" +msgstr "Hozzárendelve" -#: build/api.py:301 +#: build/api.py:310 msgid "Build must be cancelled before it can be deleted" msgstr "A gyártást be kell fejezni a törlés előtt" -#: build/api.py:345 build/serializers.py:1288 part/models.py:4265 +#: build/api.py:354 build/serializers.py:1342 part/models.py:4322 #: templates/js/translated/bom.js:997 templates/js/translated/bom.js:1037 -#: templates/js/translated/build.js:2702 +#: templates/js/translated/build.js:2711 #: templates/js/translated/table_filters.js:197 #: templates/js/translated/table_filters.js:586 msgid "Consumable" msgstr "Fogyóeszköz" -#: build/api.py:346 build/serializers.py:1289 part/models.py:4259 +#: build/api.py:355 build/serializers.py:1343 part/models.py:4316 #: part/templates/part/upload_bom.html:58 templates/js/translated/bom.js:1001 -#: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2693 +#: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2702 #: templates/js/translated/table_filters.js:193 #: templates/js/translated/table_filters.js:222 #: templates/js/translated/table_filters.js:590 msgid "Optional" msgstr "Opcionális" -#: build/api.py:347 common/models.py:1489 part/admin.py:91 part/admin.py:428 -#: part/models.py:1154 part/serializers.py:1575 +#: build/api.py:356 common/models.py:1558 part/admin.py:91 part/admin.py:428 +#: part/models.py:1215 part/serializers.py:1633 #: templates/js/translated/bom.js:1639 #: templates/js/translated/table_filters.js:337 #: templates/js/translated/table_filters.js:729 msgid "Assembly" msgstr "Gyártmány" -#: build/api.py:348 templates/js/translated/table_filters.js:415 +#: build/api.py:357 templates/js/translated/table_filters.js:415 #: templates/js/translated/table_filters.js:582 msgid "Tracked" msgstr "Követett" -#: build/api.py:349 build/serializers.py:1290 part/models.py:1172 +#: build/api.py:358 build/serializers.py:1344 part/models.py:1233 #: templates/js/translated/table_filters.js:146 #: templates/js/translated/table_filters.js:779 msgid "Testable" -msgstr "" +msgstr "Ellenőrizhető" -#: build/api.py:351 part/admin.py:144 templates/js/translated/build.js:1917 -#: templates/js/translated/build.js:2820 -#: templates/js/translated/sales_order.js:1965 +#: build/api.py:360 order/api.py:779 part/admin.py:144 +#: templates/js/translated/build.js:1920 templates/js/translated/build.js:2838 +#: templates/js/translated/sales_order.js:1946 #: templates/js/translated/table_filters.js:574 msgid "Allocated" msgstr "Lefoglalva" -#: build/api.py:359 company/models.py:891 company/serializers.py:395 -#: company/templates/company/supplier_part.html:114 +#: build/api.py:368 company/models.py:888 company/serializers.py:399 +#: company/templates/company/supplier_part.html:115 #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:17 -#: templates/js/translated/bom.js:1162 templates/js/translated/build.js:2752 +#: templates/js/translated/bom.js:1162 templates/js/translated/build.js:2770 #: templates/js/translated/index.js:123 -#: templates/js/translated/model_renderers.js:235 +#: templates/js/translated/model_renderers.js:238 #: templates/js/translated/part.js:695 templates/js/translated/part.js:697 #: templates/js/translated/part.js:702 #: templates/js/translated/table_filters.js:347 @@ -816,16 +835,68 @@ msgstr "Lefoglalva" msgid "Available" msgstr "Elérhető" -#: build/models.py:86 build/templates/build/build_base.html:9 -#: build/templates/build/build_base.html:27 +#: build/api.py:640 build/models.py:268 build/serializers.py:1330 +#: build/templates/build/build_base.html:106 +#: build/templates/build/detail.html:29 company/models.py:1043 order/api.py:775 +#: order/api.py:1003 order/models.py:1519 order/models.py:1674 +#: order/models.py:1675 part/api.py:1495 part/api.py:1802 part/models.py:419 +#: part/models.py:3177 part/models.py:3321 part/models.py:3469 +#: part/models.py:3490 part/models.py:3512 part/models.py:3648 +#: part/models.py:3995 part/models.py:4158 part/models.py:4288 +#: part/models.py:4654 part/serializers.py:1245 part/serializers.py:1898 +#: part/templates/part/part_app_base.html:8 +#: part/templates/part/part_pricing.html:12 +#: part/templates/part/upload_bom.html:52 +#: report/templates/report/inventree_bill_of_materials_report.html:110 +#: report/templates/report/inventree_bill_of_materials_report.html:137 +#: report/templates/report/inventree_build_order_report.html:109 +#: report/templates/report/inventree_purchase_order_report.html:27 +#: report/templates/report/inventree_return_order_report.html:24 +#: report/templates/report/inventree_sales_order_report.html:27 +#: report/templates/report/inventree_sales_order_shipment_report.html:28 +#: report/templates/report/inventree_stock_location_report.html:102 +#: stock/serializers.py:112 stock/serializers.py:160 stock/serializers.py:456 +#: stock/serializers.py:947 templates/InvenTree/search.html:82 +#: templates/email/build_order_completed.html:17 +#: templates/email/build_order_required_stock.html:17 +#: templates/email/low_stock_notification.html:15 +#: templates/email/overdue_build_order.html:16 +#: templates/js/translated/barcode.js:577 templates/js/translated/bom.js:632 +#: templates/js/translated/bom.js:769 templates/js/translated/bom.js:905 +#: templates/js/translated/build.js:1005 templates/js/translated/build.js:1488 +#: templates/js/translated/build.js:1919 templates/js/translated/build.js:2337 +#: templates/js/translated/build.js:2514 templates/js/translated/company.js:349 +#: templates/js/translated/company.js:1117 +#: templates/js/translated/company.js:1272 +#: templates/js/translated/company.js:1560 templates/js/translated/index.js:109 +#: templates/js/translated/part.js:1950 templates/js/translated/part.js:2022 +#: templates/js/translated/part.js:2330 templates/js/translated/pricing.js:369 +#: templates/js/translated/purchase_order.js:734 +#: templates/js/translated/purchase_order.js:1350 +#: templates/js/translated/purchase_order.js:1902 +#: templates/js/translated/purchase_order.js:2061 +#: templates/js/translated/return_order.js:538 +#: templates/js/translated/return_order.js:708 +#: templates/js/translated/sales_order.js:1199 +#: templates/js/translated/sales_order.js:1608 +#: templates/js/translated/sales_order.js:1813 +#: templates/js/translated/stock.js:682 templates/js/translated/stock.js:848 +#: templates/js/translated/stock.js:1065 templates/js/translated/stock.js:2083 +#: templates/js/translated/stock.js:2942 templates/js/translated/stock.js:3175 +#: templates/js/translated/stock.js:3320 +msgid "Part" +msgstr "Alkatrész" + +#: build/api.py:662 build/models.py:88 build/templates/build/build_base.html:10 +#: build/templates/build/build_base.html:28 #: report/templates/report/inventree_build_order_report.html:105 -#: stock/serializers.py:84 templates/email/build_order_completed.html:16 +#: stock/serializers.py:85 templates/email/build_order_completed.html:16 #: templates/email/overdue_build_order.html:15 -#: templates/js/translated/build.js:1145 templates/js/translated/stock.js:2976 +#: templates/js/translated/build.js:1148 templates/js/translated/stock.js:2977 msgid "Build Order" msgstr "Gyártási utasítás" -#: build/models.py:87 build/templates/build/build_base.html:13 +#: build/models.py:89 build/templates/build/build_base.html:14 #: build/templates/build/index.html:8 build/templates/build/index.html:12 #: order/templates/order/sales_order_detail.html:111 #: order/templates/order/so_sidebar.html:13 @@ -836,268 +907,216 @@ msgstr "Gyártási utasítás" msgid "Build Orders" msgstr "Gyártási utasítások" -#: build/models.py:135 +#: build/models.py:136 msgid "Assembly BOM has not been validated" -msgstr "" +msgstr "Az alkatrészjegyzék még nincs jóváhagyva" -#: build/models.py:142 +#: build/models.py:143 msgid "Build order cannot be created for an inactive part" -msgstr "" +msgstr "Nem lehet inaktív alkatrészre Gyártást kezdeményezni" -#: build/models.py:149 +#: build/models.py:150 msgid "Build order cannot be created for an unlocked part" -msgstr "" +msgstr "Nem lehet lezáratlan alkatrészre Gyártást kezdeményezni" -#: build/models.py:163 +#: build/models.py:164 msgid "Invalid choice for parent build" msgstr "Hibás választás a szülő gyártásra" -#: build/models.py:174 order/models.py:239 +#: build/models.py:175 order/models.py:236 msgid "Responsible user or group must be specified" msgstr "Meg kell adni felelős felhasználót vagy csoportot" -#: build/models.py:180 +#: build/models.py:181 msgid "Build order part cannot be changed" msgstr "Gyártási rendelés alkatrész nem változtatható" -#: build/models.py:241 +#: build/models.py:242 msgid "Build Order Reference" msgstr "Gyártási utasítás azonosító" -#: build/models.py:242 build/serializers.py:1287 order/models.py:467 -#: order/models.py:978 order/models.py:1373 order/models.py:2135 -#: part/admin.py:414 part/models.py:4280 part/templates/part/upload_bom.html:54 +#: build/models.py:243 build/serializers.py:1341 order/models.py:479 +#: order/models.py:1005 order/models.py:1390 order/models.py:2174 +#: part/admin.py:414 part/models.py:4337 part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_bill_of_materials_report.html:139 #: report/templates/report/inventree_purchase_order_report.html:28 #: report/templates/report/inventree_return_order_report.html:26 #: report/templates/report/inventree_sales_order_report.html:28 #: templates/js/translated/bom.js:770 templates/js/translated/bom.js:973 -#: templates/js/translated/build.js:1011 templates/js/translated/build.js:2685 +#: templates/js/translated/build.js:1014 templates/js/translated/build.js:2694 #: templates/js/translated/order.js:316 templates/js/translated/pricing.js:386 -#: templates/js/translated/purchase_order.js:2135 +#: templates/js/translated/purchase_order.js:2119 #: templates/js/translated/return_order.js:727 -#: templates/js/translated/sales_order.js:1854 +#: templates/js/translated/sales_order.js:1835 msgid "Reference" msgstr "Azonosító" -#: build/models.py:253 +#: build/models.py:254 msgid "Brief description of the build (optional)" msgstr "Gyártás rövid leírása (opcionális)" -#: build/models.py:262 +#: build/models.py:263 msgid "BuildOrder to which this build is allocated" msgstr "Gyártás, amihez ez a gyártás hozzá van rendelve" -#: build/models.py:267 build/serializers.py:1278 -#: build/templates/build/build_base.html:105 -#: build/templates/build/detail.html:29 company/models.py:1046 order/api.py:767 -#: order/models.py:1503 order/models.py:1658 order/models.py:1659 -#: part/api.py:1509 part/api.py:1813 part/models.py:424 part/models.py:3126 -#: part/models.py:3270 part/models.py:3418 part/models.py:3439 -#: part/models.py:3461 part/models.py:3597 part/models.py:3937 -#: part/models.py:4100 part/models.py:4231 part/models.py:4592 -#: part/serializers.py:1192 part/serializers.py:1836 -#: part/templates/part/part_app_base.html:8 -#: part/templates/part/part_pricing.html:12 -#: part/templates/part/upload_bom.html:52 -#: report/templates/report/inventree_bill_of_materials_report.html:110 -#: report/templates/report/inventree_bill_of_materials_report.html:137 -#: report/templates/report/inventree_build_order_report.html:109 -#: report/templates/report/inventree_purchase_order_report.html:27 -#: report/templates/report/inventree_return_order_report.html:24 -#: report/templates/report/inventree_sales_order_report.html:27 -#: report/templates/report/inventree_stock_location_report.html:102 -#: stock/serializers.py:111 stock/serializers.py:159 stock/serializers.py:446 -#: stock/serializers.py:916 templates/InvenTree/search.html:82 -#: templates/email/build_order_completed.html:17 -#: templates/email/build_order_required_stock.html:17 -#: templates/email/low_stock_notification.html:15 -#: templates/email/overdue_build_order.html:16 -#: templates/js/translated/barcode.js:577 templates/js/translated/bom.js:632 -#: templates/js/translated/bom.js:769 templates/js/translated/bom.js:905 -#: templates/js/translated/build.js:1002 templates/js/translated/build.js:1485 -#: templates/js/translated/build.js:1916 templates/js/translated/build.js:2334 -#: templates/js/translated/build.js:2507 templates/js/translated/company.js:348 -#: templates/js/translated/company.js:1116 -#: templates/js/translated/company.js:1271 -#: templates/js/translated/company.js:1559 templates/js/translated/index.js:109 -#: templates/js/translated/part.js:1950 templates/js/translated/part.js:2022 -#: templates/js/translated/part.js:2330 templates/js/translated/pricing.js:369 -#: templates/js/translated/purchase_order.js:751 -#: templates/js/translated/purchase_order.js:1367 -#: templates/js/translated/purchase_order.js:1918 -#: templates/js/translated/purchase_order.js:2077 -#: templates/js/translated/return_order.js:538 -#: templates/js/translated/return_order.js:708 -#: templates/js/translated/sales_order.js:300 -#: templates/js/translated/sales_order.js:1233 -#: templates/js/translated/sales_order.js:1634 -#: templates/js/translated/sales_order.js:1832 -#: templates/js/translated/stock.js:682 templates/js/translated/stock.js:848 -#: templates/js/translated/stock.js:1065 templates/js/translated/stock.js:2082 -#: templates/js/translated/stock.js:2941 templates/js/translated/stock.js:3174 -#: templates/js/translated/stock.js:3319 -msgid "Part" -msgstr "Alkatrész" - -#: build/models.py:275 +#: build/models.py:274 msgid "Select part to build" msgstr "Válassz alkatrészt a gyártáshoz" -#: build/models.py:280 +#: build/models.py:279 msgid "Sales Order Reference" msgstr "Vevői rendelés azonosító" -#: build/models.py:284 +#: build/models.py:283 msgid "SalesOrder to which this build is allocated" msgstr "Vevői rendelés amihez ez a gyártás hozzá van rendelve" -#: build/models.py:289 build/serializers.py:1048 -#: templates/js/translated/build.js:1904 -#: templates/js/translated/sales_order.js:1221 +#: build/models.py:288 build/serializers.py:1092 +#: templates/js/translated/build.js:1907 +#: templates/js/translated/sales_order.js:1187 msgid "Source Location" msgstr "Forrás hely" -#: build/models.py:293 +#: build/models.py:292 msgid "Select location to take stock from for this build (leave blank to take from any stock location)" msgstr "Válassz helyet ahonnan készletet vegyünk el ehhez a gyártáshoz (hagyd üresen ha bárhonnan)" -#: build/models.py:298 +#: build/models.py:297 msgid "Destination Location" msgstr "Cél hely" -#: build/models.py:302 +#: build/models.py:301 msgid "Select location where the completed items will be stored" msgstr "Válassz helyet ahol a kész tételek tárolva lesznek" -#: build/models.py:306 +#: build/models.py:305 msgid "Build Quantity" msgstr "Gyártási mennyiség" -#: build/models.py:309 +#: build/models.py:308 msgid "Number of stock items to build" msgstr "Gyártandó készlet tételek száma" -#: build/models.py:313 +#: build/models.py:312 msgid "Completed items" msgstr "Kész tételek" -#: build/models.py:315 +#: build/models.py:314 msgid "Number of stock items which have been completed" msgstr "Elkészült készlet tételek száma" -#: build/models.py:319 +#: build/models.py:318 msgid "Build Status" msgstr "Gyártási állapot" -#: build/models.py:323 +#: build/models.py:322 msgid "Build status code" msgstr "Gyártás státusz kód" -#: build/models.py:332 build/serializers.py:302 build/serializers.py:1198 -#: order/serializers.py:670 stock/models.py:859 stock/serializers.py:76 -#: stock/serializers.py:1562 templates/js/translated/purchase_order.js:1129 +#: build/models.py:331 build/serializers.py:349 build/serializers.py:1243 +#: order/serializers.py:755 stock/models.py:936 stock/serializers.py:77 +#: stock/serializers.py:1593 templates/js/translated/purchase_order.js:1112 #: templates/js/translated/stock.js:1199 msgid "Batch Code" msgstr "Batch kód" -#: build/models.py:336 build/serializers.py:303 +#: build/models.py:335 build/serializers.py:350 msgid "Batch code for this build output" msgstr "Batch kód a gyártás kimenetéhez" -#: build/models.py:339 order/models.py:315 order/serializers.py:126 -#: part/models.py:1229 part/templates/part/part_base.html:319 +#: build/models.py:338 order/models.py:322 order/serializers.py:157 +#: part/models.py:1290 part/templates/part/part_base.html:327 #: templates/js/translated/return_order.js:338 -#: templates/js/translated/sales_order.js:863 +#: templates/js/translated/sales_order.js:822 msgid "Creation Date" msgstr "Létrehozás dátuma" -#: build/models.py:343 +#: build/models.py:342 msgid "Target completion date" msgstr "Befejezés cél dátuma" -#: build/models.py:344 +#: build/models.py:343 msgid "Target date for build completion. Build will be overdue after this date." msgstr "Cél dátum a gyártás befejezéséhez. Ez után késettnek számít majd." -#: build/models.py:347 order/models.py:526 order/models.py:2180 -#: templates/js/translated/build.js:2419 +#: build/models.py:346 order/models.py:538 order/models.py:2219 +#: templates/js/translated/build.js:2422 msgid "Completion Date" msgstr "Befejezés dátuma" -#: build/models.py:353 +#: build/models.py:352 msgid "completed by" msgstr "elkészítette" -#: build/models.py:361 templates/js/translated/build.js:2379 +#: build/models.py:360 templates/js/translated/build.js:2382 msgid "Issued by" msgstr "Indította" -#: build/models.py:362 +#: build/models.py:361 msgid "User who issued this build order" msgstr "Felhasználó aki ezt a gyártási utasítást kiállította" -#: build/models.py:370 build/templates/build/build_base.html:212 -#: build/templates/build/detail.html:122 common/models.py:165 order/api.py:142 -#: order/models.py:333 order/templates/order/order_base.html:222 -#: order/templates/order/return_order_base.html:191 -#: order/templates/order/sales_order_base.html:235 part/models.py:1246 -#: part/templates/part/part_base.html:399 +#: build/models.py:369 build/templates/build/build_base.html:213 +#: build/templates/build/detail.html:122 common/models.py:168 order/api.py:140 +#: order/models.py:340 order/templates/order/order_base.html:231 +#: order/templates/order/return_order_base.html:192 +#: order/templates/order/sales_order_base.html:236 part/models.py:1307 +#: part/templates/part/part_base.html:407 #: report/templates/report/inventree_build_order_report.html:158 #: templates/InvenTree/settings/settings_staff_js.html:150 -#: templates/js/translated/build.js:2391 -#: templates/js/translated/purchase_order.js:1833 +#: templates/js/translated/build.js:2394 +#: templates/js/translated/purchase_order.js:1817 #: templates/js/translated/return_order.js:358 #: templates/js/translated/table_filters.js:551 msgid "Responsible" msgstr "Felelős" -#: build/models.py:371 +#: build/models.py:370 msgid "User or group responsible for this build order" msgstr "Felhasználó vagy csoport aki felelős ezért a gyártásért" -#: build/models.py:376 build/templates/build/detail.html:108 +#: build/models.py:375 build/templates/build/detail.html:108 #: company/templates/company/manufacturer_part.html:107 -#: company/templates/company/supplier_part.html:194 -#: order/templates/order/order_base.html:172 -#: order/templates/order/return_order_base.html:148 -#: order/templates/order/sales_order_base.html:187 -#: part/templates/part/part_base.html:392 stock/models.py:855 -#: stock/templates/stock/item_base.html:200 -#: templates/js/translated/company.js:1019 +#: company/templates/company/supplier_part.html:195 +#: order/templates/order/order_base.html:181 +#: order/templates/order/return_order_base.html:149 +#: order/templates/order/sales_order_base.html:188 +#: part/templates/part/part_base.html:400 stock/models.py:932 +#: stock/templates/stock/item_base.html:197 +#: templates/js/translated/company.js:1020 msgid "External Link" msgstr "Külső link" -#: build/models.py:377 common/models.py:3273 part/models.py:1058 -#: stock/models.py:855 +#: build/models.py:376 common/models.py:3334 part/models.py:1119 +#: stock/models.py:932 msgid "Link to external URL" msgstr "Link külső URL-re" -#: build/models.py:381 +#: build/models.py:380 msgid "Build Priority" msgstr "Priorítás" -#: build/models.py:384 +#: build/models.py:383 msgid "Priority of this build order" msgstr "Gyártási utasítás priorítása" -#: build/models.py:391 common/models.py:135 common/models.py:149 -#: order/admin.py:18 order/api.py:128 order/models.py:297 +#: build/models.py:390 common/models.py:138 common/models.py:152 +#: order/admin.py:18 order/api.py:126 order/models.py:304 #: templates/InvenTree/settings/settings_staff_js.html:146 -#: templates/js/translated/build.js:2316 -#: templates/js/translated/purchase_order.js:1780 +#: templates/js/translated/build.js:2319 +#: templates/js/translated/purchase_order.js:1764 #: templates/js/translated/return_order.js:317 -#: templates/js/translated/sales_order.js:842 +#: templates/js/translated/sales_order.js:801 #: templates/js/translated/table_filters.js:47 #: templates/project_code_data.html:6 msgid "Project Code" msgstr "Projektszám" -#: build/models.py:392 +#: build/models.py:391 msgid "Project code for this build order" msgstr "Projekt kód a gyártáshoz" -#: build/models.py:651 build/models.py:778 +#: build/models.py:651 build/models.py:779 msgid "Failed to offload task to complete build allocations" msgstr "A gyártási foglalások teljesítése háttérfeladat elvégzése nem sikerült" @@ -1110,611 +1129,620 @@ msgstr "A {build} gyártási utasítás elkészült" msgid "A build order has been completed" msgstr "Gyártási utasítás elkészült" -#: build/models.py:967 build/models.py:1055 +#: build/models.py:858 build/serializers.py:393 +msgid "Serial numbers must be provided for trackable parts" +msgstr "Egyedi követésre jelölt alkatrészeknél kötelező sorozatszámot megadni" + +#: build/models.py:969 build/models.py:1058 msgid "No build output specified" msgstr "Nincs gyártási kimenet megadva" -#: build/models.py:970 +#: build/models.py:972 msgid "Build output is already completed" msgstr "Gyártási kimenet már kész" -#: build/models.py:973 +#: build/models.py:975 msgid "Build output does not match Build Order" msgstr "Gyártási kimenet nem egyezik a gyártási utasítással" -#: build/models.py:1059 build/serializers.py:235 build/serializers.py:284 -#: build/serializers.py:915 order/models.py:564 order/serializers.py:499 -#: order/serializers.py:665 part/serializers.py:1569 part/serializers.py:1999 -#: stock/models.py:700 stock/models.py:1520 stock/serializers.py:669 +#: build/models.py:1062 build/serializers.py:282 build/serializers.py:331 +#: build/serializers.py:959 order/models.py:586 order/serializers.py:584 +#: order/serializers.py:750 part/serializers.py:1627 part/serializers.py:2060 +#: stock/models.py:777 stock/models.py:1609 stock/serializers.py:696 msgid "Quantity must be greater than zero" msgstr "Mennyiségnek nullánál többnek kell lennie" -#: build/models.py:1064 build/serializers.py:240 +#: build/models.py:1067 build/serializers.py:287 msgid "Quantity cannot be greater than the output quantity" msgstr "A mennyiség nem lehet több mint a gyártási mennyiség" -#: build/models.py:1124 build/serializers.py:563 +#: build/models.py:1127 build/serializers.py:607 #, python-brace-format msgid "Build output {serial} has not passed all required tests" msgstr "A {serial} gyártási kimenet nem felelt meg az összes kötelező teszten" -#: build/models.py:1465 +#: build/models.py:1482 msgid "Build Order Line Item" -msgstr "" +msgstr "Gyártási Rendelés Sor Tétel" -#: build/models.py:1490 +#: build/models.py:1507 msgid "Build object" msgstr "Gyártás objektum" -#: build/models.py:1504 build/models.py:1760 build/serializers.py:222 -#: build/serializers.py:269 build/serializers.py:1295 -#: build/templates/build/build_base.html:110 -#: build/templates/build/detail.html:34 common/models.py:2579 -#: order/models.py:1356 order/models.py:2041 order/serializers.py:1460 +#: build/models.py:1521 build/models.py:1787 build/serializers.py:269 +#: build/serializers.py:316 build/serializers.py:1349 +#: build/templates/build/build_base.html:111 +#: build/templates/build/detail.html:34 common/models.py:2643 +#: order/models.py:1373 order/models.py:2074 order/serializers.py:1586 #: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:413 -#: part/forms.py:48 part/models.py:3284 part/models.py:4253 -#: part/templates/part/part_pricing.html:16 +#: part/forms.py:48 part/models.py:3335 part/models.py:4310 +#: part/serializers.py:265 part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_bill_of_materials_report.html:138 #: report/templates/report/inventree_build_order_report.html:113 #: report/templates/report/inventree_purchase_order_report.html:29 #: report/templates/report/inventree_sales_order_report.html:29 +#: report/templates/report/inventree_sales_order_shipment_report.html:47 +#: report/templates/report/inventree_sales_order_shipment_report.html:49 #: report/templates/report/inventree_stock_location_report.html:104 #: report/templates/report/inventree_test_report.html:90 -#: report/templates/report/inventree_test_report.html:169 stock/admin.py:159 -#: stock/serializers.py:127 stock/serializers.py:167 stock/serializers.py:660 -#: stock/templates/stock/item_base.html:287 -#: stock/templates/stock/item_base.html:295 -#: stock/templates/stock/item_base.html:342 +#: report/templates/report/inventree_test_report.html:169 stock/admin.py:160 +#: stock/serializers.py:128 stock/serializers.py:168 stock/serializers.py:687 +#: stock/templates/stock/item_base.html:284 +#: stock/templates/stock/item_base.html:292 +#: stock/templates/stock/item_base.html:339 #: templates/email/build_order_completed.html:18 #: templates/js/translated/barcode.js:579 templates/js/translated/bom.js:771 -#: templates/js/translated/bom.js:981 templates/js/translated/build.js:522 -#: templates/js/translated/build.js:737 templates/js/translated/build.js:1542 -#: templates/js/translated/build.js:1919 templates/js/translated/build.js:2529 -#: templates/js/translated/company.js:1818 -#: templates/js/translated/model_renderers.js:237 +#: templates/js/translated/bom.js:981 templates/js/translated/build.js:525 +#: templates/js/translated/build.js:740 templates/js/translated/build.js:1545 +#: templates/js/translated/build.js:1922 templates/js/translated/build.js:2536 +#: templates/js/translated/company.js:1819 +#: templates/js/translated/model_renderers.js:240 #: templates/js/translated/order.js:329 templates/js/translated/part.js:968 -#: templates/js/translated/part.js:1818 templates/js/translated/part.js:3360 +#: templates/js/translated/part.js:1818 templates/js/translated/part.js:3376 #: templates/js/translated/pricing.js:381 #: templates/js/translated/pricing.js:474 #: templates/js/translated/pricing.js:522 #: templates/js/translated/pricing.js:616 -#: templates/js/translated/purchase_order.js:754 -#: templates/js/translated/purchase_order.js:1922 -#: templates/js/translated/purchase_order.js:2141 -#: templates/js/translated/sales_order.js:317 -#: templates/js/translated/sales_order.js:1235 -#: templates/js/translated/sales_order.js:1554 -#: templates/js/translated/sales_order.js:1644 -#: templates/js/translated/sales_order.js:1734 -#: templates/js/translated/sales_order.js:1860 +#: templates/js/translated/purchase_order.js:737 +#: templates/js/translated/purchase_order.js:1906 +#: templates/js/translated/purchase_order.js:2125 +#: templates/js/translated/sales_order.js:1201 +#: templates/js/translated/sales_order.js:1520 +#: templates/js/translated/sales_order.js:1625 +#: templates/js/translated/sales_order.js:1715 +#: templates/js/translated/sales_order.js:1841 #: templates/js/translated/stock.js:570 templates/js/translated/stock.js:708 -#: templates/js/translated/stock.js:879 templates/js/translated/stock.js:3105 -#: templates/js/translated/stock.js:3188 +#: templates/js/translated/stock.js:879 templates/js/translated/stock.js:3106 +#: templates/js/translated/stock.js:3189 msgid "Quantity" msgstr "Mennyiség" -#: build/models.py:1505 +#: build/models.py:1522 msgid "Required quantity for build order" msgstr "Gyártáshoz szükséges mennyiség" -#: build/models.py:1585 +#: build/models.py:1602 msgid "Build item must specify a build output, as master part is marked as trackable" msgstr "Gyártási tételnek meg kell adnia a gyártási kimenetet, mivel a fő darab egyedi követésre kötelezett" -#: build/models.py:1594 +#: build/models.py:1611 #, python-brace-format msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgstr "A lefoglalt mennyiség ({q}) nem lépheti túl a szabad készletet ({a})" -#: build/models.py:1604 order/models.py:1992 +#: build/models.py:1628 order/models.py:2025 msgid "Stock item is over-allocated" msgstr "Készlet túlfoglalva" -#: build/models.py:1610 order/models.py:1995 +#: build/models.py:1634 order/models.py:2028 msgid "Allocation quantity must be greater than zero" msgstr "Lefoglalt mennyiségnek nullánál többnek kell lennie" -#: build/models.py:1616 +#: build/models.py:1640 msgid "Quantity must be 1 for serialized stock" msgstr "Egyedi követésre kötelezett tételeknél a menyiség 1 kell legyen" -#: build/models.py:1675 +#: build/models.py:1699 msgid "Selected stock item does not match BOM line" msgstr "A készlet tétel nem egyezik az alkatrészjegyzékkel" -#: build/models.py:1747 build/serializers.py:895 order/serializers.py:1297 -#: order/serializers.py:1318 stock/models.py:376 stock/serializers.py:93 -#: stock/serializers.py:763 stock/serializers.py:1281 stock/serializers.py:1393 -#: stock/templates/stock/item_base.html:10 -#: stock/templates/stock/item_base.html:23 -#: stock/templates/stock/item_base.html:194 -#: templates/js/translated/build.js:1918 -#: templates/js/translated/sales_order.js:301 -#: templates/js/translated/sales_order.js:1234 -#: templates/js/translated/sales_order.js:1535 -#: templates/js/translated/sales_order.js:1540 -#: templates/js/translated/sales_order.js:1641 -#: templates/js/translated/sales_order.js:1728 +#: build/models.py:1774 build/serializers.py:939 order/serializers.py:1423 +#: order/serializers.py:1444 +#: report/templates/report/inventree_sales_order_shipment_report.html:29 +#: stock/models.py:382 stock/serializers.py:94 stock/serializers.py:794 +#: stock/serializers.py:1312 stock/serializers.py:1424 +#: stock/templates/stock/item_base.html:11 +#: stock/templates/stock/item_base.html:24 +#: stock/templates/stock/item_base.html:191 +#: templates/js/translated/build.js:1921 +#: templates/js/translated/sales_order.js:1200 +#: templates/js/translated/sales_order.js:1501 +#: templates/js/translated/sales_order.js:1506 +#: templates/js/translated/sales_order.js:1622 +#: templates/js/translated/sales_order.js:1709 #: templates/js/translated/stock.js:683 templates/js/translated/stock.js:849 -#: templates/js/translated/stock.js:3061 +#: templates/js/translated/stock.js:3062 msgid "Stock Item" msgstr "Készlet tétel" -#: build/models.py:1748 +#: build/models.py:1775 msgid "Source stock item" msgstr "Forrás készlet tétel" -#: build/models.py:1761 +#: build/models.py:1788 msgid "Stock quantity to allocate to build" msgstr "Készlet mennyiség amit foglaljunk a gyártáshoz" -#: build/models.py:1769 +#: build/models.py:1796 msgid "Install into" msgstr "Beépítés ebbe" -#: build/models.py:1770 +#: build/models.py:1797 msgid "Destination stock item" msgstr "Cél készlet tétel" -#: build/serializers.py:91 +#: build/serializers.py:108 msgid "Build Level" -msgstr "" +msgstr "Gyártási Szint" -#: build/serializers.py:99 build/serializers.py:1190 build/serializers.py:1279 -#: part/admin.py:41 part/admin.py:408 part/models.py:4102 part/stocktake.py:219 -#: stock/admin.py:156 +#: build/serializers.py:116 build/serializers.py:1235 build/serializers.py:1331 +#: part/admin.py:41 part/admin.py:408 part/models.py:4160 part/stocktake.py:219 +#: stock/admin.py:157 msgid "Part Name" msgstr "Alkatrész neve" -#: build/serializers.py:111 +#: build/serializers.py:128 msgid "Project Code Label" msgstr "Projekt kód címke" -#: build/serializers.py:172 build/serializers.py:924 -#: templates/js/translated/build.js:1042 templates/js/translated/build.js:1495 +#: build/serializers.py:134 +msgid "Create Child Builds" +msgstr "Leszármazott Gyártások Létrehozása" + +#: build/serializers.py:135 +msgid "Automatically generate child build orders" +msgstr "Leszármazott Gyártások létrehozása automatikusan" + +#: build/serializers.py:219 build/serializers.py:968 +#: templates/js/translated/build.js:1045 templates/js/translated/build.js:1498 msgid "Build Output" msgstr "Gyártás kimenet" -#: build/serializers.py:184 +#: build/serializers.py:231 msgid "Build output does not match the parent build" msgstr "Gyártási kimenet nem egyezik a szülő gyártással" -#: build/serializers.py:188 +#: build/serializers.py:235 msgid "Output part does not match BuildOrder part" msgstr "Kimeneti alkatrész nem egyezik a gyártási utasításban lévő alkatrésszel" -#: build/serializers.py:192 +#: build/serializers.py:239 msgid "This build output has already been completed" msgstr "Ez a gyártási kimenet már elkészült" -#: build/serializers.py:203 +#: build/serializers.py:250 msgid "This build output is not fully allocated" msgstr "Ez a gyártási kimenet nincs teljesen lefoglalva" -#: build/serializers.py:223 build/serializers.py:270 +#: build/serializers.py:270 build/serializers.py:317 msgid "Enter quantity for build output" msgstr "Add meg a mennyiséget a gyártás kimenetéhez" -#: build/serializers.py:291 +#: build/serializers.py:338 msgid "Integer quantity required for trackable parts" msgstr "Egész számú mennyiség szükséges az egyedi követésre kötelezett alkatrészeknél" -#: build/serializers.py:294 +#: build/serializers.py:341 msgid "Integer quantity required, as the bill of materials contains trackable parts" msgstr "Egész számú mennyiség szükséges, mivel az alkatrészjegyzék egyedi követésre kötelezett alkatrészeket tartalmaz" -#: build/serializers.py:309 order/serializers.py:678 order/serializers.py:1464 -#: stock/serializers.py:680 templates/js/translated/purchase_order.js:1154 +#: build/serializers.py:356 order/serializers.py:763 order/serializers.py:1590 +#: stock/serializers.py:707 templates/js/translated/purchase_order.js:1137 #: templates/js/translated/stock.js:373 templates/js/translated/stock.js:571 msgid "Serial Numbers" msgstr "Sorozatszámok" -#: build/serializers.py:310 +#: build/serializers.py:357 msgid "Enter serial numbers for build outputs" msgstr "Add meg a sorozatszámokat a gyártás kimenetéhez" -#: build/serializers.py:315 build/serializers.py:456 build/serializers.py:528 -#: order/serializers.py:654 order/serializers.py:778 order/serializers.py:1781 -#: part/serializers.py:1212 stock/serializers.py:102 stock/serializers.py:691 -#: stock/serializers.py:851 stock/serializers.py:977 stock/serializers.py:1425 -#: stock/serializers.py:1681 stock/templates/stock/item_base.html:394 +#: build/serializers.py:362 build/serializers.py:500 build/serializers.py:572 +#: order/serializers.py:739 order/serializers.py:880 order/serializers.py:1933 +#: part/serializers.py:1265 stock/serializers.py:103 stock/serializers.py:718 +#: stock/serializers.py:882 stock/serializers.py:1008 stock/serializers.py:1456 +#: stock/serializers.py:1712 stock/templates/stock/item_base.html:391 #: templates/js/translated/barcode.js:578 -#: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1032 -#: templates/js/translated/build.js:1174 templates/js/translated/build.js:2544 -#: templates/js/translated/purchase_order.js:1210 -#: templates/js/translated/purchase_order.js:1320 -#: templates/js/translated/sales_order.js:1547 -#: templates/js/translated/sales_order.js:1655 -#: templates/js/translated/sales_order.js:1663 -#: templates/js/translated/sales_order.js:1742 +#: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1035 +#: templates/js/translated/build.js:1177 templates/js/translated/build.js:2551 +#: templates/js/translated/purchase_order.js:1193 +#: templates/js/translated/purchase_order.js:1303 +#: templates/js/translated/sales_order.js:1513 +#: templates/js/translated/sales_order.js:1636 +#: templates/js/translated/sales_order.js:1644 +#: templates/js/translated/sales_order.js:1723 #: templates/js/translated/stock.js:684 templates/js/translated/stock.js:850 -#: templates/js/translated/stock.js:1067 templates/js/translated/stock.js:2286 -#: templates/js/translated/stock.js:2955 +#: templates/js/translated/stock.js:1067 templates/js/translated/stock.js:2287 +#: templates/js/translated/stock.js:2956 msgid "Location" msgstr "Hely" -#: build/serializers.py:316 +#: build/serializers.py:363 msgid "Stock location for build output" msgstr "Legyártott készlet helye" -#: build/serializers.py:330 +#: build/serializers.py:377 msgid "Auto Allocate Serial Numbers" msgstr "Sorozatszámok automatikus hozzárendelése" -#: build/serializers.py:331 +#: build/serializers.py:378 msgid "Automatically allocate required items with matching serial numbers" msgstr "Szükséges tételek automatikus hozzárendelése a megfelelő sorozatszámokkal" -#: build/serializers.py:346 -msgid "Serial numbers must be provided for trackable parts" -msgstr "Egyedi követésre jelölt alkatrészeknél kötelező sorozatszámot megadni" - -#: build/serializers.py:371 stock/api.py:1031 +#: build/serializers.py:415 order/serializers.py:858 stock/api.py:1017 +#: stock/models.py:1632 msgid "The following serial numbers already exist or are invalid" msgstr "A következő sorozatszámok már léteznek vagy nem megfelelőek" -#: build/serializers.py:418 build/serializers.py:480 build/serializers.py:569 +#: build/serializers.py:462 build/serializers.py:524 build/serializers.py:613 msgid "A list of build outputs must be provided" msgstr "A gyártási kimenetek listáját meg kell adni" -#: build/serializers.py:457 +#: build/serializers.py:501 msgid "Stock location for scrapped outputs" msgstr "Selejtezet gyártási kimenetek helye" -#: build/serializers.py:463 +#: build/serializers.py:507 msgid "Discard Allocations" msgstr "Foglalások törlése" -#: build/serializers.py:464 +#: build/serializers.py:508 msgid "Discard any stock allocations for scrapped outputs" msgstr "Selejtezett kimenetek foglalásainak felszabadítása" -#: build/serializers.py:469 +#: build/serializers.py:513 msgid "Reason for scrapping build output(s)" msgstr "Selejtezés oka" -#: build/serializers.py:529 +#: build/serializers.py:573 msgid "Location for completed build outputs" msgstr "A kész gyártási kimenetek helye" -#: build/serializers.py:535 build/templates/build/build_base.html:159 -#: build/templates/build/detail.html:62 order/models.py:476 -#: order/models.py:1002 order/models.py:2159 order/serializers.py:686 -#: stock/admin.py:164 stock/serializers.py:1028 stock/serializers.py:1569 -#: stock/templates/stock/item_base.html:427 -#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2363 -#: templates/js/translated/purchase_order.js:1371 -#: templates/js/translated/purchase_order.js:1792 +#: build/serializers.py:579 build/templates/build/build_base.html:160 +#: build/templates/build/detail.html:62 order/models.py:488 +#: order/models.py:1029 order/models.py:2198 order/serializers.py:771 +#: stock/admin.py:165 stock/serializers.py:581 stock/serializers.py:1059 +#: stock/serializers.py:1600 stock/templates/stock/item_base.html:424 +#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2366 +#: templates/js/translated/purchase_order.js:1354 +#: templates/js/translated/purchase_order.js:1776 #: templates/js/translated/return_order.js:330 -#: templates/js/translated/sales_order.js:855 -#: templates/js/translated/stock.js:2261 templates/js/translated/stock.js:3079 -#: templates/js/translated/stock.js:3204 +#: templates/js/translated/sales_order.js:814 +#: templates/js/translated/stock.js:2262 templates/js/translated/stock.js:3080 +#: templates/js/translated/stock.js:3205 msgid "Status" msgstr "Állapot" -#: build/serializers.py:541 +#: build/serializers.py:585 msgid "Accept Incomplete Allocation" msgstr "Hiányos foglalás elfogadása" -#: build/serializers.py:542 +#: build/serializers.py:586 msgid "Complete outputs if stock has not been fully allocated" msgstr "Kimenetek befejezése akkor is ha a készlet nem\n" "lett teljesen lefoglalva" -#: build/serializers.py:654 +#: build/serializers.py:698 msgid "Consume Allocated Stock" msgstr "Lefoglalt készlet felhasználása" -#: build/serializers.py:655 +#: build/serializers.py:699 msgid "Consume any stock which has already been allocated to this build" msgstr "Az összes ehhez a gyártáshoz lefoglalt készlet felhasználása" -#: build/serializers.py:661 +#: build/serializers.py:705 msgid "Remove Incomplete Outputs" msgstr "Befejezetlen kimenetek törlése" -#: build/serializers.py:662 +#: build/serializers.py:706 msgid "Delete any build outputs which have not been completed" msgstr "A nem befejezett gyártási kimenetek törlése" -#: build/serializers.py:689 +#: build/serializers.py:733 msgid "Not permitted" msgstr "Nem engedélyezett" -#: build/serializers.py:690 +#: build/serializers.py:734 msgid "Accept as consumed by this build order" msgstr "Gyártásban fel lett használva" -#: build/serializers.py:691 +#: build/serializers.py:735 msgid "Deallocate before completing this build order" msgstr "Foglalás felszabadítása a készre jelentés előtt" -#: build/serializers.py:721 +#: build/serializers.py:765 msgid "Overallocated Stock" msgstr "Túlfoglalt készlet" -#: build/serializers.py:723 +#: build/serializers.py:767 msgid "How do you want to handle extra stock items assigned to the build order" msgstr "Hogyan kezeljük az gyártáshoz rendelt egyéb készletet" -#: build/serializers.py:733 +#: build/serializers.py:777 msgid "Some stock items have been overallocated" msgstr "Pár készlet tétel túl lett foglalva" -#: build/serializers.py:738 +#: build/serializers.py:782 msgid "Accept Unallocated" msgstr "Kiosztatlanok elfogadása" -#: build/serializers.py:739 +#: build/serializers.py:783 msgid "Accept that stock items have not been fully allocated to this build order" msgstr "Fogadd el hogy a készlet tételek nincsenek teljesen lefoglalva ehhez a gyártási utastáshoz" -#: build/serializers.py:749 templates/js/translated/build.js:316 +#: build/serializers.py:793 templates/js/translated/build.js:319 msgid "Required stock has not been fully allocated" msgstr "A szükséges készlet nem lett teljesen lefoglalva" -#: build/serializers.py:754 order/serializers.py:345 order/serializers.py:1365 +#: build/serializers.py:798 order/serializers.py:430 order/serializers.py:1491 msgid "Accept Incomplete" msgstr "Befejezetlenek elfogadása" -#: build/serializers.py:755 +#: build/serializers.py:799 msgid "Accept that the required number of build outputs have not been completed" msgstr "Fogadd el hogy a szükséges számú gyártási kimenet nem lett elérve" -#: build/serializers.py:765 templates/js/translated/build.js:320 +#: build/serializers.py:809 templates/js/translated/build.js:323 msgid "Required build quantity has not been completed" msgstr "Szükséges gyártási mennyiség nem lett elérve" -#: build/serializers.py:774 +#: build/serializers.py:818 msgid "Build order has open child build orders" -msgstr "" +msgstr "A Gyártásnak nyitott leszármazott Gyártása van" -#: build/serializers.py:777 +#: build/serializers.py:821 msgid "Build order must be in production state" -msgstr "" +msgstr "A Gyártásnak folyamatban kell lennie" -#: build/serializers.py:780 templates/js/translated/build.js:304 +#: build/serializers.py:824 templates/js/translated/build.js:307 msgid "Build order has incomplete outputs" msgstr "A gyártási utasítás befejezetlen kimeneteket tartalmaz" -#: build/serializers.py:818 +#: build/serializers.py:862 msgid "Build Line" msgstr "Gyártás sor" -#: build/serializers.py:828 +#: build/serializers.py:872 msgid "Build output" msgstr "Gyártás kimenet" -#: build/serializers.py:836 +#: build/serializers.py:880 msgid "Build output must point to the same build" msgstr "A gyártási kimenetnek ugyanarra a gyártásra kell mutatnia" -#: build/serializers.py:872 +#: build/serializers.py:916 msgid "Build Line Item" msgstr "Gyártás sor tétel" -#: build/serializers.py:886 +#: build/serializers.py:930 msgid "bom_item.part must point to the same part as the build order" msgstr "bom_item.part ugyanarra az alkatrészre kell mutasson mint a gyártási utasítás" -#: build/serializers.py:901 stock/serializers.py:1294 +#: build/serializers.py:945 stock/serializers.py:1325 msgid "Item must be in stock" msgstr "A tételnek kell legyen készlete" -#: build/serializers.py:949 order/serializers.py:1351 +#: build/serializers.py:993 order/serializers.py:1477 #, python-brace-format msgid "Available quantity ({q}) exceeded" msgstr "Rendelkezésre álló mennyiség ({q}) túllépve" -#: build/serializers.py:955 +#: build/serializers.py:999 msgid "Build output must be specified for allocation of tracked parts" msgstr "Gyártási kimenetet meg kell adni a követésre kötelezett alkatrészek lefoglalásához" -#: build/serializers.py:962 +#: build/serializers.py:1006 msgid "Build output cannot be specified for allocation of untracked parts" msgstr "Gyártási kimenetet nem lehet megadni a követésre kötelezett alkatrészek lefoglalásához" -#: build/serializers.py:986 order/serializers.py:1610 +#: build/serializers.py:1030 order/serializers.py:1750 msgid "Allocation items must be provided" msgstr "A lefoglalandó tételeket meg kell adni" -#: build/serializers.py:1049 +#: build/serializers.py:1093 msgid "Stock location where parts are to be sourced (leave blank to take from any location)" msgstr "Készlet hely ahonnan az alkatrészek származnak (hagyd üresen ha bárhonnan)" -#: build/serializers.py:1057 +#: build/serializers.py:1101 msgid "Exclude Location" msgstr "Hely kizárása" -#: build/serializers.py:1058 +#: build/serializers.py:1102 msgid "Exclude stock items from this selected location" msgstr "Készlet tételek kizárása erről a kiválasztott helyről" -#: build/serializers.py:1063 +#: build/serializers.py:1107 msgid "Interchangeable Stock" msgstr "Felcserélhető készlet" -#: build/serializers.py:1064 +#: build/serializers.py:1108 msgid "Stock items in multiple locations can be used interchangeably" msgstr "A különböző helyeken lévő készlet egyenrangúan felhasználható" -#: build/serializers.py:1069 +#: build/serializers.py:1113 msgid "Substitute Stock" msgstr "Készlet helyettesítés" -#: build/serializers.py:1070 +#: build/serializers.py:1114 msgid "Allow allocation of substitute parts" msgstr "Helyettesítő alkatrészek foglalásának engedélyezése" -#: build/serializers.py:1075 +#: build/serializers.py:1119 msgid "Optional Items" msgstr "Opcionális tételek" -#: build/serializers.py:1076 +#: build/serializers.py:1120 msgid "Allocate optional BOM items to build order" msgstr "Opcionális tételek lefoglalása a gyártáshoz" -#: build/serializers.py:1098 +#: build/serializers.py:1143 msgid "Failed to start auto-allocation task" msgstr "Nem sikerült az automatikus lefoglalás feladatot elindítani" -#: build/serializers.py:1181 +#: build/serializers.py:1226 stock/serializers.py:585 msgid "Supplier Part Number" -msgstr "" +msgstr "Beszállítói Cikkszám" -#: build/serializers.py:1182 company/models.py:506 +#: build/serializers.py:1227 company/models.py:503 stock/serializers.py:591 msgid "Manufacturer Part Number" msgstr "Gyártói cikkszám" -#: build/serializers.py:1183 stock/admin.py:53 stock/admin.py:175 -#: stock/serializers.py:457 +#: build/serializers.py:1228 stock/admin.py:53 stock/admin.py:176 +#: stock/serializers.py:467 msgid "Location Name" msgstr "Hely neve" -#: build/serializers.py:1184 +#: build/serializers.py:1229 build/serializers.py:1327 msgid "Build Reference" -msgstr "" +msgstr "Gyártási Hivatkozás" -#: build/serializers.py:1185 +#: build/serializers.py:1230 msgid "BOM Reference" -msgstr "" +msgstr "Alkatrészjegyzék Hivatkozás" -#: build/serializers.py:1186 company/models.py:852 -#: company/templates/company/supplier_part.html:160 order/serializers.py:690 -#: stock/admin.py:228 stock/models.py:818 stock/serializers.py:1579 -#: stock/templates/stock/item_base.html:240 -#: templates/js/translated/company.js:1646 -#: templates/js/translated/purchase_order.js:1169 -#: templates/js/translated/purchase_order.js:1332 +#: build/serializers.py:1231 company/models.py:849 +#: company/templates/company/supplier_part.html:161 order/serializers.py:775 +#: stock/admin.py:229 stock/models.py:895 stock/serializers.py:1610 +#: stock/templates/stock/item_base.html:237 +#: templates/js/translated/company.js:1647 +#: templates/js/translated/purchase_order.js:1152 +#: templates/js/translated/purchase_order.js:1315 #: templates/js/translated/stock.js:1214 templates/js/translated/stock.js:1246 -#: templates/js/translated/stock.js:2509 +#: templates/js/translated/stock.js:2510 msgid "Packaging" msgstr "Csomagolás" -#: build/serializers.py:1189 part/admin.py:39 part/admin.py:398 -#: part/models.py:4101 part/stocktake.py:218 stock/admin.py:152 +#: build/serializers.py:1234 part/admin.py:39 part/admin.py:398 +#: part/models.py:4159 part/stocktake.py:218 stock/admin.py:153 msgid "Part ID" msgstr "Alkatrész ID" -#: build/serializers.py:1191 build/serializers.py:1280 part/admin.py:402 -#: part/models.py:4103 +#: build/serializers.py:1236 build/serializers.py:1332 part/admin.py:402 +#: part/models.py:4161 msgid "Part IPN" msgstr "Alkatrész IPN" -#: build/serializers.py:1192 build/serializers.py:1282 part/admin.py:45 +#: build/serializers.py:1237 build/serializers.py:1334 part/admin.py:45 #: part/stocktake.py:220 msgid "Part Description" msgstr "Alkatrész leírása" -#: build/serializers.py:1195 +#: build/serializers.py:1240 msgid "BOM Part ID" -msgstr "" +msgstr "Alkatrészjegyzék Cikk Azonosító" -#: build/serializers.py:1196 +#: build/serializers.py:1241 msgid "BOM Part Name" -msgstr "" +msgstr "Alkatrészjegyzék Alkatrész Név" -#: build/serializers.py:1199 +#: build/serializers.py:1244 #: report/templates/report/inventree_return_order_report.html:25 -#: report/templates/report/inventree_test_report.html:88 stock/models.py:845 -#: stock/serializers.py:151 stock/templates/stock/item_base.html:311 -#: templates/js/translated/build.js:520 templates/js/translated/build.js:1540 -#: templates/js/translated/build.js:2527 -#: templates/js/translated/model_renderers.js:231 +#: report/templates/report/inventree_sales_order_shipment_report.html:45 +#: report/templates/report/inventree_test_report.html:88 stock/models.py:922 +#: stock/serializers.py:152 stock/templates/stock/item_base.html:308 +#: templates/js/translated/build.js:523 templates/js/translated/build.js:1543 +#: templates/js/translated/build.js:2534 +#: templates/js/translated/model_renderers.js:234 #: templates/js/translated/return_order.js:539 #: templates/js/translated/return_order.js:722 -#: templates/js/translated/sales_order.js:315 -#: templates/js/translated/sales_order.js:1647 -#: templates/js/translated/sales_order.js:1732 +#: templates/js/translated/sales_order.js:1628 +#: templates/js/translated/sales_order.js:1713 #: templates/js/translated/stock.js:602 msgid "Serial Number" msgstr "Sorozatszám" -#: build/serializers.py:1212 stock/serializers.py:593 -#: templates/js/translated/build.js:1017 templates/js/translated/build.js:1164 -#: templates/js/translated/build.js:2516 +#: build/serializers.py:1257 stock/serializers.py:620 +#: templates/js/translated/build.js:1020 templates/js/translated/build.js:1167 +#: templates/js/translated/build.js:2523 msgid "Allocated Quantity" msgstr "Lefoglalt mennyiség" -#: build/serializers.py:1213 stock/templates/stock/item_base.html:340 +#: build/serializers.py:1258 stock/templates/stock/item_base.html:337 msgid "Available Quantity" msgstr "Elérhető mennyiség" -#: build/serializers.py:1283 +#: build/serializers.py:1335 msgid "Part Category ID" -msgstr "" +msgstr "Alkatrész Kategória Azonosító" -#: build/serializers.py:1284 +#: build/serializers.py:1336 msgid "Part Category Name" -msgstr "" +msgstr "Alkatrész kategória Neve" -#: build/serializers.py:1291 common/models.py:1513 part/admin.py:113 -#: part/models.py:1166 templates/js/translated/table_filters.js:150 +#: build/serializers.py:1345 common/models.py:1582 part/admin.py:113 +#: part/models.py:1227 templates/js/translated/build.js:2738 +#: templates/js/translated/table_filters.js:150 #: templates/js/translated/table_filters.js:230 #: templates/js/translated/table_filters.js:783 msgid "Trackable" msgstr "Követésre kötelezett" -#: build/serializers.py:1292 +#: build/serializers.py:1346 msgid "Inherited" -msgstr "" +msgstr "Örökölt" -#: build/serializers.py:1293 part/models.py:4313 +#: build/serializers.py:1347 part/models.py:4370 #: part/templates/part/upload_bom.html:56 templates/js/translated/bom.js:1046 -#: templates/js/translated/build.js:2711 +#: templates/js/translated/build.js:2720 msgid "Allow Variants" msgstr "Változatok" -#: build/serializers.py:1297 part/models.py:4110 part/models.py:4584 +#: build/serializers.py:1351 part/models.py:4168 part/models.py:4646 #: stock/api.py:794 msgid "BOM Item" msgstr "Alkatrészjegyzék tétel" -#: build/serializers.py:1306 build/templates/build/detail.html:236 +#: build/serializers.py:1370 build/templates/build/detail.html:236 #: build/templates/build/sidebar.html:16 templates/js/translated/index.js:130 msgid "Allocated Stock" msgstr "Lefoglalt készlet" -#: build/serializers.py:1311 order/serializers.py:1175 part/admin.py:132 -#: part/bom.py:181 part/serializers.py:899 part/serializers.py:1602 -#: part/templates/part/part_base.html:210 templates/js/translated/bom.js:1208 -#: templates/js/translated/build.js:2804 templates/js/translated/part.js:712 +#: build/serializers.py:1375 order/serializers.py:1209 part/admin.py:132 +#: part/bom.py:186 part/serializers.py:951 part/serializers.py:1660 +#: part/templates/part/part_base.html:211 templates/js/translated/bom.js:1208 +#: templates/js/translated/build.js:2822 templates/js/translated/part.js:712 #: templates/js/translated/part.js:2155 #: templates/js/translated/table_filters.js:177 msgid "On Order" msgstr "Rendelve" -#: build/serializers.py:1316 order/serializers.py:1176 part/serializers.py:1604 -#: templates/js/translated/build.js:2808 +#: build/serializers.py:1380 order/serializers.py:1210 part/serializers.py:1662 +#: templates/js/translated/build.js:2826 #: templates/js/translated/table_filters.js:367 msgid "In Production" msgstr "Gyártásban" -#: build/serializers.py:1321 part/bom.py:180 part/serializers.py:1629 -#: part/templates/part/part_base.html:192 -#: templates/js/translated/sales_order.js:1929 -msgid "Available Stock" -msgstr "Elérhető készlet" - -#: build/serializers.py:1325 -msgid "Available Substitute Stock" -msgstr "" - -#: build/serializers.py:1326 -msgid "Available Variant Stock" -msgstr "" - -#: build/serializers.py:1327 -msgid "Total Available Stock" -msgstr "" - -#: build/serializers.py:1328 part/serializers.py:906 +#: build/serializers.py:1384 part/serializers.py:958 msgid "External Stock" msgstr "Külső raktárkészlet" -#: build/status_codes.py:11 generic/states/tests.py:17 order/status_codes.py:12 -#: order/status_codes.py:42 order/status_codes.py:74 order/status_codes.py:98 +#: build/serializers.py:1385 part/bom.py:185 part/serializers.py:1687 +#: part/templates/part/part_base.html:193 +#: templates/js/translated/sales_order.js:1910 +msgid "Available Stock" +msgstr "Elérhető készlet" + +#: build/serializers.py:1386 +msgid "Available Substitute Stock" +msgstr "Elérhető Helyettesítő Készlet" + +#: build/serializers.py:1387 +msgid "Available Variant Stock" +msgstr "Elérhető Készlet Változatokból" + +#: build/status_codes.py:11 generic/states/tests.py:21 +#: generic/states/tests.py:131 order/status_codes.py:12 +#: order/status_codes.py:44 order/status_codes.py:76 order/status_codes.py:102 #: templates/js/translated/table_filters.js:601 msgid "Pending" msgstr "Függőben" @@ -1723,21 +1751,21 @@ msgstr "Függőben" msgid "Production" msgstr "Folyamatban" -#: build/status_codes.py:13 order/status_codes.py:14 order/status_codes.py:49 -#: order/status_codes.py:79 +#: build/status_codes.py:13 order/status_codes.py:14 order/status_codes.py:51 +#: order/status_codes.py:81 msgid "On Hold" msgstr "Felfüggesztve" -#: build/status_codes.py:14 order/status_codes.py:16 order/status_codes.py:51 -#: order/status_codes.py:82 +#: build/status_codes.py:14 order/status_codes.py:16 order/status_codes.py:53 +#: order/status_codes.py:84 msgid "Cancelled" msgstr "Törölve" -#: build/status_codes.py:15 generic/states/tests.py:19 importer/models.py:509 -#: importer/status_codes.py:19 order/status_codes.py:15 -#: order/status_codes.py:50 order/status_codes.py:81 -#: order/templates/order/order_base.html:163 -#: order/templates/order/sales_order_base.html:168 report/models.py:443 +#: build/status_codes.py:15 generic/states/tests.py:23 importer/models.py:518 +#: importer/status_codes.py:27 order/status_codes.py:15 +#: order/status_codes.py:52 order/status_codes.py:83 +#: order/templates/order/order_base.html:172 +#: order/templates/order/sales_order_base.html:169 report/models.py:451 msgid "Complete" msgstr "Kész" @@ -1745,165 +1773,162 @@ msgstr "Kész" msgid "Stock required for build order" msgstr "A gyártási utasításhoz készlet szükséges" -#: build/tasks.py:201 +#: build/tasks.py:260 msgid "Overdue Build Order" msgstr "Késésben lévő gyártás" -#: build/tasks.py:206 +#: build/tasks.py:265 #, python-brace-format msgid "Build order {bo} is now overdue" msgstr "A {bo} gyártás most már késésben van" -#: build/templates/build/build_base.html:18 +#: build/templates/build/build_base.html:19 msgid "Part thumbnail" msgstr "Alkatrész bélyegkép" -#: build/templates/build/build_base.html:38 -#: company/templates/company/supplier_part.html:35 -#: order/templates/order/order_base.html:29 -#: order/templates/order/return_order_base.html:38 -#: order/templates/order/sales_order_base.html:38 -#: part/templates/part/part_base.html:41 -#: stock/templates/stock/item_base.html:40 -#: stock/templates/stock/location.html:52 +#: build/templates/build/build_base.html:39 +#: company/templates/company/supplier_part.html:36 +#: order/templates/order/order_base.html:30 +#: order/templates/order/return_order_base.html:39 +#: order/templates/order/sales_order_base.html:39 +#: part/templates/part/part_base.html:42 +#: stock/templates/stock/item_base.html:41 +#: stock/templates/stock/location.html:53 #: templates/js/translated/filters.js:338 msgid "Barcode actions" msgstr "Vonalkód műveletek" -#: build/templates/build/build_base.html:42 -#: company/templates/company/supplier_part.html:39 -#: order/templates/order/order_base.html:33 -#: order/templates/order/return_order_base.html:42 -#: order/templates/order/sales_order_base.html:42 -#: part/templates/part/part_base.html:44 -#: stock/templates/stock/item_base.html:44 -#: stock/templates/stock/location.html:54 templates/qr_button.html:1 +#: build/templates/build/build_base.html:43 +#: company/templates/company/supplier_part.html:40 +#: order/templates/order/order_base.html:34 +#: order/templates/order/return_order_base.html:43 +#: order/templates/order/sales_order_base.html:43 +#: part/templates/part/part_base.html:45 +#: stock/templates/stock/item_base.html:45 +#: stock/templates/stock/location.html:55 templates/qr_button.html:1 msgid "Show QR Code" msgstr "QR kód megjelenítése" -#: build/templates/build/build_base.html:45 -#: company/templates/company/supplier_part.html:41 -#: order/templates/order/order_base.html:36 -#: order/templates/order/return_order_base.html:45 -#: order/templates/order/sales_order_base.html:45 -#: part/templates/part/part_base.html:47 -#: stock/templates/stock/item_base.html:47 -#: stock/templates/stock/location.html:56 +#: build/templates/build/build_base.html:46 +#: company/templates/company/supplier_part.html:42 +#: order/templates/order/order_base.html:37 +#: order/templates/order/return_order_base.html:46 +#: order/templates/order/sales_order_base.html:46 +#: part/templates/part/part_base.html:48 +#: stock/templates/stock/item_base.html:48 +#: stock/templates/stock/location.html:57 #: templates/js/translated/barcode.js:527 #: templates/js/translated/barcode.js:532 msgid "Unlink Barcode" msgstr "Vonalkód leválasztása" -#: build/templates/build/build_base.html:47 -#: company/templates/company/supplier_part.html:43 -#: order/templates/order/order_base.html:38 -#: order/templates/order/return_order_base.html:47 -#: order/templates/order/sales_order_base.html:47 -#: part/templates/part/part_base.html:49 -#: stock/templates/stock/item_base.html:49 -#: stock/templates/stock/location.html:58 +#: build/templates/build/build_base.html:48 +#: company/templates/company/supplier_part.html:44 +#: order/templates/order/order_base.html:39 +#: order/templates/order/return_order_base.html:48 +#: order/templates/order/sales_order_base.html:48 +#: part/templates/part/part_base.html:50 +#: stock/templates/stock/item_base.html:50 +#: stock/templates/stock/location.html:59 msgid "Link Barcode" msgstr "Vonalkód hozzárendelése" -#: build/templates/build/build_base.html:56 -#: order/templates/order/order_base.html:46 -#: order/templates/order/return_order_base.html:55 -#: order/templates/order/sales_order_base.html:55 +#: build/templates/build/build_base.html:57 +#: order/templates/order/order_base.html:47 +#: order/templates/order/return_order_base.html:56 +#: order/templates/order/sales_order_base.html:56 msgid "Print actions" msgstr "Nyomtatási műveletek" -#: build/templates/build/build_base.html:60 +#: build/templates/build/build_base.html:61 msgid "Print build order report" msgstr "Gyártási riport nyomtatása" -#: build/templates/build/build_base.html:67 +#: build/templates/build/build_base.html:68 msgid "Build actions" msgstr "Gyártási műveletek" -#: build/templates/build/build_base.html:71 +#: build/templates/build/build_base.html:72 msgid "Edit Build" msgstr "Gyártás szerkesztése" -#: build/templates/build/build_base.html:73 +#: build/templates/build/build_base.html:74 msgid "Duplicate Build" msgstr "Gyártás másolása" -#: build/templates/build/build_base.html:76 +#: build/templates/build/build_base.html:77 msgid "Hold Build" -msgstr "" +msgstr "Gyártás felfüggesztése" -#: build/templates/build/build_base.html:79 +#: build/templates/build/build_base.html:80 msgid "Cancel Build" msgstr "Gyártás törlése" -#: build/templates/build/build_base.html:82 +#: build/templates/build/build_base.html:83 msgid "Delete Build" msgstr "Gyártás törlése" -#: build/templates/build/build_base.html:87 -msgid "Isueue Build" -msgstr "" - #: build/templates/build/build_base.html:88 +#: build/templates/build/build_base.html:89 msgid "Issue Build" -msgstr "" +msgstr "Gyártás Kiadása" -#: build/templates/build/build_base.html:91 #: build/templates/build/build_base.html:92 +#: build/templates/build/build_base.html:93 msgid "Complete Build" msgstr "Gyártás befejezése" -#: build/templates/build/build_base.html:115 +#: build/templates/build/build_base.html:116 msgid "Build Description" msgstr "Gyártás leírása" -#: build/templates/build/build_base.html:125 +#: build/templates/build/build_base.html:126 msgid "No build outputs have been created for this build order" msgstr "Ehhez a gyártási utasításhoz nem készült kimenet" -#: build/templates/build/build_base.html:132 +#: build/templates/build/build_base.html:133 msgid "Build Order is ready to mark as completed" msgstr "Gyártási utasítás elkészültnek jelölhető" -#: build/templates/build/build_base.html:137 +#: build/templates/build/build_base.html:138 msgid "Build Order cannot be completed as outstanding outputs remain" msgstr "Befejezetlen gyártási kimenetek vannak" -#: build/templates/build/build_base.html:142 +#: build/templates/build/build_base.html:143 msgid "Required build quantity has not yet been completed" msgstr "Szükséges gyártási mennyiség még nincs meg" -#: build/templates/build/build_base.html:147 +#: build/templates/build/build_base.html:148 msgid "Stock has not been fully allocated to this Build Order" msgstr "Még nincs lefoglalva a szükséges készlet" -#: build/templates/build/build_base.html:168 -#: build/templates/build/detail.html:138 order/models.py:308 -#: order/models.py:1391 order/serializers.py:174 -#: order/templates/order/order_base.html:191 -#: order/templates/order/return_order_base.html:167 -#: order/templates/order/sales_order_base.html:199 +#: build/templates/build/build_base.html:169 +#: build/templates/build/detail.html:138 order/models.py:315 +#: order/models.py:1408 order/serializers.py:254 +#: order/templates/order/order_base.html:200 +#: order/templates/order/return_order_base.html:168 +#: order/templates/order/sales_order_base.html:200 #: report/templates/report/inventree_build_order_report.html:125 -#: templates/js/translated/build.js:2411 templates/js/translated/part.js:1837 -#: templates/js/translated/purchase_order.js:1809 -#: templates/js/translated/purchase_order.js:2217 +#: templates/js/translated/build.js:2414 templates/js/translated/part.js:1837 +#: templates/js/translated/purchase_order.js:1793 +#: templates/js/translated/purchase_order.js:2201 #: templates/js/translated/return_order.js:346 #: templates/js/translated/return_order.js:749 -#: templates/js/translated/sales_order.js:871 -#: templates/js/translated/sales_order.js:1903 +#: templates/js/translated/sales_order.js:830 +#: templates/js/translated/sales_order.js:1884 msgid "Target Date" msgstr "Cél dátum" -#: build/templates/build/build_base.html:173 +#: build/templates/build/build_base.html:174 #, python-format msgid "This build was due on %(target)s" msgstr "Ez a gyártás %(target)s-n volt esedékes" -#: build/templates/build/build_base.html:173 -#: build/templates/build/build_base.html:230 -#: order/templates/order/order_base.html:127 -#: order/templates/order/return_order_base.html:120 -#: order/templates/order/sales_order_base.html:129 +#: build/templates/build/build_base.html:174 +#: build/templates/build/build_base.html:231 +#: order/templates/order/order_base.html:128 +#: order/templates/order/return_order_base.html:121 +#: order/templates/order/sales_order_base.html:130 #: templates/js/translated/table_filters.js:97 #: templates/js/translated/table_filters.js:545 #: templates/js/translated/table_filters.js:629 @@ -1911,49 +1936,50 @@ msgstr "Ez a gyártás %(target)s-n volt esedékes" msgid "Overdue" msgstr "Késésben" -#: build/templates/build/build_base.html:185 +#: build/templates/build/build_base.html:186 #: build/templates/build/detail.html:67 build/templates/build/sidebar.html:13 msgid "Completed Outputs" msgstr "Befejezett kimenetek" -#: build/templates/build/build_base.html:198 -#: build/templates/build/detail.html:101 order/api.py:1406 order/models.py:892 -#: order/models.py:1650 order/models.py:1765 order/models.py:1924 -#: order/templates/order/sales_order_base.html:9 -#: order/templates/order/sales_order_base.html:28 +#: build/templates/build/build_base.html:199 +#: build/templates/build/detail.html:101 order/api.py:1528 order/models.py:914 +#: order/models.py:1666 order/models.py:1794 order/models.py:1957 +#: order/templates/order/sales_order_base.html:10 +#: order/templates/order/sales_order_base.html:29 #: report/templates/report/inventree_build_order_report.html:135 #: report/templates/report/inventree_sales_order_report.html:14 -#: stock/templates/stock/item_base.html:369 +#: report/templates/report/inventree_sales_order_shipment_report.html:15 +#: stock/templates/stock/item_base.html:366 #: templates/email/overdue_sales_order.html:15 -#: templates/js/translated/pricing.js:929 -#: templates/js/translated/sales_order.js:805 -#: templates/js/translated/sales_order.js:1028 -#: templates/js/translated/stock.js:3008 +#: templates/js/translated/pricing.js:927 +#: templates/js/translated/sales_order.js:764 +#: templates/js/translated/sales_order.js:1001 +#: templates/js/translated/stock.js:3009 msgid "Sales Order" msgstr "Vevői rendelés" -#: build/templates/build/build_base.html:219 -#: build/templates/build/detail.html:94 templates/js/translated/build.js:2328 +#: build/templates/build/build_base.html:220 +#: build/templates/build/detail.html:94 templates/js/translated/build.js:2331 msgid "Priority" msgstr "Prioritás" -#: build/templates/build/build_base.html:267 +#: build/templates/build/build_base.html:268 msgid "Issue Build Order" -msgstr "" +msgstr "Gyártási Rendelés Kiadása" -#: build/templates/build/build_base.html:271 +#: build/templates/build/build_base.html:272 msgid "Issue this Build Order?" -msgstr "" +msgstr "Kiadja ezt a Gyártási Rendelést?" -#: build/templates/build/build_base.html:302 +#: build/templates/build/build_base.html:303 msgid "Delete Build Order" msgstr "Gyártási utasítás törlése" -#: build/templates/build/build_base.html:312 +#: build/templates/build/build_base.html:313 msgid "Build Order QR Code" msgstr "Gyártási utasítás QR kódja" -#: build/templates/build/build_base.html:324 +#: build/templates/build/build_base.html:325 msgid "Link Barcode to Build Order" msgstr "Vonalkód gyártáshoz rendelése" @@ -1969,8 +1995,9 @@ msgstr "Készlet forrás" msgid "Stock can be taken from any available location." msgstr "Készlet bármely rendelkezésre álló helyről felhasználható." -#: build/templates/build/detail.html:49 order/models.py:1532 -#: templates/js/translated/purchase_order.js:2259 +#: build/templates/build/detail.html:49 order/models.py:548 +#: order/models.py:1548 order/templates/order/order_base.html:135 +#: templates/js/translated/purchase_order.js:2243 msgid "Destination" msgstr "Cél" @@ -1982,23 +2009,24 @@ msgstr "A cél hely nincs megadva" msgid "Allocated Parts" msgstr "Lefoglalt alkatrészek" -#: build/templates/build/detail.html:80 stock/admin.py:162 -#: stock/templates/stock/item_base.html:162 -#: templates/js/translated/build.js:1553 -#: templates/js/translated/model_renderers.js:242 -#: templates/js/translated/purchase_order.js:1326 +#: build/templates/build/detail.html:80 +#: report/templates/report/inventree_sales_order_shipment_report.html:47 +#: stock/admin.py:163 stock/templates/stock/item_base.html:159 +#: templates/js/translated/build.js:1556 +#: templates/js/translated/model_renderers.js:245 +#: templates/js/translated/purchase_order.js:1309 #: templates/js/translated/stock.js:1139 templates/js/translated/stock.js:1240 -#: templates/js/translated/stock.js:2275 templates/js/translated/stock.js:3211 +#: templates/js/translated/stock.js:2276 templates/js/translated/stock.js:3212 #: templates/js/translated/table_filters.js:320 #: templates/js/translated/table_filters.js:411 msgid "Batch" msgstr "Köteg" #: build/templates/build/detail.html:133 -#: order/templates/order/order_base.html:178 -#: order/templates/order/return_order_base.html:154 -#: order/templates/order/sales_order_base.html:193 -#: templates/js/translated/build.js:2371 +#: order/templates/order/order_base.html:187 +#: order/templates/order/return_order_base.html:155 +#: order/templates/order/sales_order_base.html:194 +#: templates/js/translated/build.js:2374 msgid "Created" msgstr "Létrehozva" @@ -2006,8 +2034,8 @@ msgstr "Létrehozva" msgid "No target date set" msgstr "Nincs céldátum beállítva" -#: build/templates/build/detail.html:149 -#: order/templates/order/sales_order_base.html:209 +#: build/templates/build/detail.html:149 order/api.py:794 +#: order/templates/order/sales_order_base.html:210 #: templates/js/translated/table_filters.js:692 msgid "Completed" msgstr "Kész" @@ -2022,7 +2050,7 @@ msgstr "Alárendelt gyártások" #: build/templates/build/detail.html:177 msgid "Build Order Line Items" -msgstr "" +msgstr "Gyártási Rendelés Sor Tétel" #: build/templates/build/detail.html:181 msgid "Deallocate stock" @@ -2053,7 +2081,7 @@ msgid "Order required parts" msgstr "Szükséges alkatrészek rendelése" #: build/templates/build/detail.html:192 -#: templates/js/translated/purchase_order.js:795 +#: templates/js/translated/purchase_order.js:778 msgid "Order Parts" msgstr "Alkatrész rendelés" @@ -2083,7 +2111,7 @@ msgstr "Befejezett gyártási kimenetek" #: build/templates/build/detail.html:273 msgid "Build test statistics" -msgstr "" +msgstr "Gyártási Ellenőrzési Statisztika" #: build/templates/build/detail.html:288 build/templates/build/sidebar.html:27 #: company/templates/company/detail.html:229 @@ -2121,7 +2149,7 @@ msgstr "Új gyártási utasítás" msgid "Build Order Details" msgstr "Gyártási utasítás részletei" -#: build/templates/build/sidebar.html:8 order/serializers.py:82 +#: build/templates/build/sidebar.html:8 order/serializers.py:113 #: order/templates/order/po_sidebar.html:5 #: order/templates/order/return_order_detail.html:18 #: order/templates/order/so_sidebar.html:5 @@ -2138,45 +2166,40 @@ msgstr "Befejezetlen kimenetek" #: build/templates/build/sidebar.html:24 #: part/templates/part/part_sidebar.html:56 msgid "Test Statistics" -msgstr "" +msgstr "Ellenőrzési Statisztika" -#: common/api.py:693 +#: common/api.py:725 msgid "Is Link" -msgstr "" +msgstr "Ez egy hivatkozás" -#: common/api.py:701 +#: common/api.py:733 msgid "Is File" -msgstr "" +msgstr "Ez egy állomány" -#: common/api.py:744 +#: common/api.py:776 msgid "User does not have permission to delete these attachments" -msgstr "" +msgstr "A felhasználó nem jogosult ezen mellékletek törlésére" -#: common/api.py:761 +#: common/api.py:793 msgid "User does not have permission to delete this attachment" -msgstr "" +msgstr "A felhasználó nem jogosult ezen melléklet törlésére" -#: common/currency.py:132 +#: common/currency.py:134 msgid "Invalid currency code" msgstr "Érvénytelen valuta kód" -#: common/currency.py:134 +#: common/currency.py:136 msgid "Duplicate currency code" msgstr "Létező valuta kód" -#: common/currency.py:139 +#: common/currency.py:141 msgid "No valid currency codes provided" msgstr "Hiányzó érvényes valuta kód" -#: common/currency.py:156 +#: common/currency.py:158 msgid "No plugin" msgstr "Nincsen plugin" -#: common/files.py:63 -#, python-brace-format -msgid "Unsupported file format: {fmt}" -msgstr "Nem támogatott fájl formátum: {fmt}" - #: common/files.py:65 msgid "Error reading file (invalid encoding)" msgstr "Fájl beolvasási hiba (hibás encoding)" @@ -2193,1901 +2216,2057 @@ msgstr "Fájl beolvasási hiba (hibás dimenzió)" msgid "Error reading file (data could be corrupted)" msgstr "Fájl beolvasási hiba (sérült lehet)" -#: common/forms.py:12 +#: common/forms.py:12 common/forms.py:25 msgid "File" msgstr "Fájl" -#: common/forms.py:12 +#: common/forms.py:12 common/forms.py:26 msgid "Select file to upload" msgstr "Feltöltendő fájl kiválasztása" -#: common/forms.py:25 -msgid "{name.title()} File" -msgstr "{name.title()} Fájl" - -#: common/forms.py:26 -#, python-brace-format -msgid "Select {name} file to upload" -msgstr "{name} fájl kiválasztása feltöltéshez" - -#: common/models.py:86 +#: common/models.py:89 msgid "Updated" msgstr "Frissítve" -#: common/models.py:87 +#: common/models.py:90 msgid "Timestamp of last update" msgstr "Legutóbbi frissítés időpontja" -#: common/models.py:120 +#: common/models.py:123 msgid "Site URL is locked by configuration" msgstr "A site URL blokkolva van a konfigurációban" -#: common/models.py:150 +#: common/models.py:153 msgid "Unique project code" msgstr "Egyedi projektszám" -#: common/models.py:157 +#: common/models.py:160 msgid "Project description" msgstr "Projekt leírása" -#: common/models.py:166 +#: common/models.py:169 msgid "User or group responsible for this project" msgstr "A projektért felelős felhasználó vagy csoport" -#: common/models.py:783 -msgid "Settings key (must be unique - case insensitive)" -msgstr "Beállítások kulcs (egyedinek kell lennie, nem kis- nagybetű érzékeny)" +#: common/models.py:783 common/models.py:2236 common/models.py:2613 +msgid "Settings key" +msgstr "" #: common/models.py:787 msgid "Settings value" msgstr "Beállítás értéke" -#: common/models.py:839 +#: common/models.py:842 msgid "Chosen value is not a valid option" msgstr "A kiválasztott érték nem egy érvényes lehetőség" -#: common/models.py:855 +#: common/models.py:858 msgid "Value must be a boolean value" msgstr "Az érték bináris kell legyen" -#: common/models.py:863 +#: common/models.py:866 msgid "Value must be an integer value" msgstr "Az érték egész szám kell legyen" -#: common/models.py:900 +#: common/models.py:874 +msgid "Value must be a valid number" +msgstr "" + +#: common/models.py:899 +msgid "Value does not pass validation checks" +msgstr "" + +#: common/models.py:921 msgid "Key string must be unique" msgstr "Kulcs string egyedi kell legyen" -#: common/models.py:1132 +#: common/models.py:1189 msgid "No group" msgstr "Nincs csoport" -#: common/models.py:1231 +#: common/models.py:1288 msgid "Restart required" msgstr "Újraindítás szükséges" -#: common/models.py:1233 +#: common/models.py:1290 msgid "A setting has been changed which requires a server restart" msgstr "Egy olyan beállítás megváltozott ami a kiszolgáló újraindítását igényli" -#: common/models.py:1240 +#: common/models.py:1297 msgid "Pending migrations" msgstr "Függőben levő migrációk" -#: common/models.py:1241 +#: common/models.py:1298 msgid "Number of pending database migrations" msgstr "Függőben levő adatbázis migrációk" -#: common/models.py:1246 +#: common/models.py:1303 msgid "Server Instance Name" msgstr "Kiszolgáló példány neve" -#: common/models.py:1248 +#: common/models.py:1305 msgid "String descriptor for the server instance" msgstr "String leíró a kiszolgáló példányhoz" -#: common/models.py:1252 +#: common/models.py:1309 msgid "Use instance name" msgstr "Példány név használata" -#: common/models.py:1253 +#: common/models.py:1310 msgid "Use the instance name in the title-bar" msgstr "Példány név használata a címsorban" -#: common/models.py:1258 +#: common/models.py:1315 msgid "Restrict showing `about`" msgstr "Verzió infók megjelenítésének tiltása" -#: common/models.py:1259 +#: common/models.py:1316 msgid "Show the `about` modal only to superusers" msgstr "Verzió infók megjelenítése csak admin felhasználóknak" -#: common/models.py:1264 company/models.py:111 company/models.py:112 +#: common/models.py:1321 company/models.py:108 company/models.py:109 msgid "Company name" msgstr "Cég neve" -#: common/models.py:1265 +#: common/models.py:1322 msgid "Internal company name" msgstr "Belső cégnév" -#: common/models.py:1269 +#: common/models.py:1326 msgid "Base URL" msgstr "Kiindulási URL" -#: common/models.py:1270 +#: common/models.py:1327 msgid "Base URL for server instance" msgstr "Kiindulási URL a kiszolgáló példányhoz" -#: common/models.py:1276 +#: common/models.py:1333 msgid "Default Currency" msgstr "Alapértelmezett pénznem" -#: common/models.py:1277 +#: common/models.py:1334 msgid "Select base currency for pricing calculations" msgstr "Válassz alap pénznemet az ár számításokhoz" -#: common/models.py:1283 +#: common/models.py:1340 msgid "Supported Currencies" msgstr "Támogatott valuták" -#: common/models.py:1284 +#: common/models.py:1341 msgid "List of supported currency codes" msgstr "Támogatott valuták listája" -#: common/models.py:1290 +#: common/models.py:1347 msgid "Currency Update Interval" msgstr "Árfolyam frissítési gyakoriság" -#: common/models.py:1292 +#: common/models.py:1349 msgid "How often to update exchange rates (set to zero to disable)" msgstr "Milyen gyakran frissítse az árfolyamokat (nulla a kikapcsoláshoz)" -#: common/models.py:1295 common/models.py:1351 common/models.py:1364 -#: common/models.py:1372 common/models.py:1381 common/models.py:1390 -#: common/models.py:1627 common/models.py:1649 common/models.py:1764 -#: common/models.py:2146 +#: common/models.py:1352 common/models.py:1408 common/models.py:1421 +#: common/models.py:1429 common/models.py:1438 common/models.py:1447 +#: common/models.py:1696 common/models.py:1718 common/models.py:1819 +#: common/models.py:2208 msgid "days" msgstr "nap" -#: common/models.py:1299 +#: common/models.py:1356 msgid "Currency Update Plugin" msgstr "Árfolyam frissítő plugin" -#: common/models.py:1300 +#: common/models.py:1357 msgid "Currency update plugin to use" msgstr "Kiválasztott árfolyam frissítő plugin" -#: common/models.py:1305 +#: common/models.py:1362 msgid "Download from URL" msgstr "Letöltés URL-ről" -#: common/models.py:1307 +#: common/models.py:1364 msgid "Allow download of remote images and files from external URL" msgstr "Képek és fájlok letöltésének engedélyezése külső URL-ről" -#: common/models.py:1313 +#: common/models.py:1370 msgid "Download Size Limit" msgstr "Letöltési méret korlát" -#: common/models.py:1314 +#: common/models.py:1371 msgid "Maximum allowable download size for remote image" msgstr "Maximum megengedett letöltési mérete a távoli képeknek" -#: common/models.py:1320 +#: common/models.py:1377 msgid "User-agent used to download from URL" msgstr "Felhasznált User-agent az URL-ről letöltéshez" -#: common/models.py:1322 +#: common/models.py:1379 msgid "Allow to override the user-agent used to download images and files from external URL (leave blank for the default)" msgstr "A külső URL-ről letöltéshez használt user-agent felülbírálásának engedélyezése (hagyd üresen az alapértelmezéshez)" -#: common/models.py:1327 +#: common/models.py:1384 msgid "Strict URL Validation" msgstr "Erős URL validáció" -#: common/models.py:1328 +#: common/models.py:1385 msgid "Require schema specification when validating URLs" msgstr "Sablon specifikáció igénylése az URL validálásnál" -#: common/models.py:1333 +#: common/models.py:1390 msgid "Require confirm" msgstr "Megerősítés igénylése" -#: common/models.py:1334 +#: common/models.py:1391 msgid "Require explicit user confirmation for certain action." msgstr "Kérjen felhasználói megerősítést bizonyos műveletekhez" -#: common/models.py:1339 +#: common/models.py:1396 msgid "Tree Depth" msgstr "Fa mélység" -#: common/models.py:1341 +#: common/models.py:1398 msgid "Default tree depth for treeview. Deeper levels can be lazy loaded as they are needed." msgstr "Alapértelmezett mélység a fa nézetekben. A mélyebb szintek betöltődnek ha szükségesek." -#: common/models.py:1347 +#: common/models.py:1404 msgid "Update Check Interval" msgstr "Frissítés keresés gyakorisága" -#: common/models.py:1348 +#: common/models.py:1405 msgid "How often to check for updates (set to zero to disable)" msgstr "Milyen gyakran ellenőrizze van-e új frissítés (0=soha)" -#: common/models.py:1354 +#: common/models.py:1411 msgid "Automatic Backup" msgstr "Automatikus biztonsági mentés" -#: common/models.py:1355 +#: common/models.py:1412 msgid "Enable automatic backup of database and media files" msgstr "Adatbázis és média fájlok automatikus biztonsági mentése" -#: common/models.py:1360 +#: common/models.py:1417 msgid "Auto Backup Interval" msgstr "Automata biztonsági mentés gyakorisága" -#: common/models.py:1361 +#: common/models.py:1418 msgid "Specify number of days between automated backup events" msgstr "Hány naponta készüljön automatikus biztonsági mentés" -#: common/models.py:1367 +#: common/models.py:1424 msgid "Task Deletion Interval" msgstr "Feladat törlési gyakoriság" -#: common/models.py:1369 +#: common/models.py:1426 msgid "Background task results will be deleted after specified number of days" msgstr "Háttérfolyamat eredmények törlése megadott nap eltelte után" -#: common/models.py:1376 +#: common/models.py:1433 msgid "Error Log Deletion Interval" msgstr "Hibanapló törlési gyakoriság" -#: common/models.py:1378 +#: common/models.py:1435 msgid "Error logs will be deleted after specified number of days" msgstr "Hibanapló bejegyzések törlése megadott nap eltelte után" -#: common/models.py:1385 +#: common/models.py:1442 msgid "Notification Deletion Interval" msgstr "Értesítés törlési gyakoriság" -#: common/models.py:1387 +#: common/models.py:1444 msgid "User notifications will be deleted after specified number of days" msgstr "Felhasználói értesítések törlése megadott nap eltelte után" -#: common/models.py:1394 templates/InvenTree/settings/sidebar.html:31 +#: common/models.py:1451 templates/InvenTree/settings/sidebar.html:31 msgid "Barcode Support" msgstr "Vonalkód támogatás" -#: common/models.py:1395 +#: common/models.py:1452 msgid "Enable barcode scanner support in the web interface" msgstr "Vonalkód olvasó támogatás engedélyezése a web felületen" -#: common/models.py:1400 +#: common/models.py:1457 +msgid "Store Barcode Results" +msgstr "" + +#: common/models.py:1458 +msgid "Store barcode scan results in the database" +msgstr "" + +#: common/models.py:1463 +msgid "Barcode Scans Maximum Count" +msgstr "" + +#: common/models.py:1464 +msgid "Maximum number of barcode scan results to store" +msgstr "" + +#: common/models.py:1469 msgid "Barcode Input Delay" msgstr "Vonalkód beadási késleltetés" -#: common/models.py:1401 +#: common/models.py:1470 msgid "Barcode input processing delay time" msgstr "Vonalkód beadáskor a feldolgozás késleltetési ideje" -#: common/models.py:1407 +#: common/models.py:1476 msgid "Barcode Webcam Support" msgstr "Webkamerás vonalkód olvasás" -#: common/models.py:1408 +#: common/models.py:1477 msgid "Allow barcode scanning via webcam in browser" msgstr "Webkamerás kódolvasás engedélyezése a böngészőből" -#: common/models.py:1413 +#: common/models.py:1482 msgid "Barcode Show Data" -msgstr "" +msgstr "Vonalkód Adat Megjelenítése" -#: common/models.py:1414 +#: common/models.py:1483 msgid "Display barcode data in browser as text" -msgstr "" +msgstr "Vonalkód adat megjelenítése a böngészőben szövegként" -#: common/models.py:1419 +#: common/models.py:1488 msgid "Barcode Generation Plugin" -msgstr "" +msgstr "Vonalkód Generáló Plugin" -#: common/models.py:1420 +#: common/models.py:1489 msgid "Plugin to use for internal barcode data generation" -msgstr "" +msgstr "Belső vonalkód generálásra használatos plugin" -#: common/models.py:1425 +#: common/models.py:1494 msgid "Part Revisions" msgstr "Alkatrész változatok" -#: common/models.py:1426 +#: common/models.py:1495 msgid "Enable revision field for Part" msgstr "Alkatrész változat vagy verziószám tulajdonság használata" -#: common/models.py:1431 +#: common/models.py:1500 msgid "Assembly Revision Only" -msgstr "" +msgstr "Csak Összeállítás Verzió" -#: common/models.py:1432 +#: common/models.py:1501 msgid "Only allow revisions for assembly parts" -msgstr "" +msgstr "Csak összeállított alkatrészeknek lehessen verziója" -#: common/models.py:1437 +#: common/models.py:1506 msgid "Allow Deletion from Assembly" -msgstr "" +msgstr "Lehessen törölni az Összeállításból" -#: common/models.py:1438 +#: common/models.py:1507 msgid "Allow deletion of parts which are used in an assembly" -msgstr "" +msgstr "Lehessen olyan alkatrészt törölni ami Összeállításban szerepel" -#: common/models.py:1443 +#: common/models.py:1512 msgid "IPN Regex" msgstr "IPN reguláris kifejezés" -#: common/models.py:1444 +#: common/models.py:1513 msgid "Regular expression pattern for matching Part IPN" msgstr "Reguláris kifejezés ami illeszkedik az alkatrész IPN-re" -#: common/models.py:1447 +#: common/models.py:1516 msgid "Allow Duplicate IPN" msgstr "Többször is előforduló IPN engedélyezése" -#: common/models.py:1448 +#: common/models.py:1517 msgid "Allow multiple parts to share the same IPN" msgstr "Azonos IPN használható legyen több alkatrészre is" -#: common/models.py:1453 +#: common/models.py:1522 msgid "Allow Editing IPN" msgstr "IPN szerkesztésének engedélyezése" -#: common/models.py:1454 +#: common/models.py:1523 msgid "Allow changing the IPN value while editing a part" msgstr "IPN megváltoztatásánsak engedélyezése az alkatrész szerkesztése közben" -#: common/models.py:1459 +#: common/models.py:1528 msgid "Copy Part BOM Data" msgstr "Alkatrészjegyzék adatok másolása" -#: common/models.py:1460 +#: common/models.py:1529 msgid "Copy BOM data by default when duplicating a part" msgstr "Alkatrész másoláskor az alkatrészjegyzék adatokat is másoljuk alapból" -#: common/models.py:1465 +#: common/models.py:1534 msgid "Copy Part Parameter Data" msgstr "Alkatrész paraméterek másolása" -#: common/models.py:1466 +#: common/models.py:1535 msgid "Copy parameter data by default when duplicating a part" msgstr "Alkatrész másoláskor a paramétereket is másoljuk alapból" -#: common/models.py:1471 +#: common/models.py:1540 msgid "Copy Part Test Data" msgstr "Alkatrész teszt adatok másolása" -#: common/models.py:1472 +#: common/models.py:1541 msgid "Copy test data by default when duplicating a part" msgstr "Alkatrész másoláskor a tesztek adatait is másoljuk alapból" -#: common/models.py:1477 +#: common/models.py:1546 msgid "Copy Category Parameter Templates" msgstr "Kategória paraméter sablonok másolása" -#: common/models.py:1478 +#: common/models.py:1547 msgid "Copy category parameter templates when creating a part" msgstr "Kategória paraméter sablonok másolása alkatrész létrehozásakor" -#: common/models.py:1483 part/admin.py:108 part/models.py:3945 -#: report/models.py:293 report/models.py:360 report/serializers.py:90 -#: report/serializers.py:131 stock/serializers.py:232 +#: common/models.py:1552 part/admin.py:108 part/models.py:4003 +#: report/models.py:301 report/models.py:368 report/serializers.py:91 +#: report/serializers.py:132 stock/serializers.py:233 #: templates/js/translated/table_filters.js:138 #: templates/js/translated/table_filters.js:775 msgid "Template" msgstr "Sablon" -#: common/models.py:1484 +#: common/models.py:1553 msgid "Parts are templates by default" msgstr "Alkatrészek alapból sablon alkatrészek legyenek" -#: common/models.py:1490 +#: common/models.py:1559 msgid "Parts can be assembled from other components by default" msgstr "Alkatrészeket alapból lehessen gyártani másik alkatrészekből" -#: common/models.py:1495 part/admin.py:95 part/models.py:1160 -#: part/serializers.py:1596 templates/js/translated/table_filters.js:737 +#: common/models.py:1564 part/admin.py:95 part/models.py:1221 +#: part/serializers.py:1654 templates/js/translated/table_filters.js:737 msgid "Component" msgstr "Összetevő" -#: common/models.py:1496 +#: common/models.py:1565 msgid "Parts can be used as sub-components by default" msgstr "Alkatrészek alapból használhatók összetevőként más alkatrészekhez" -#: common/models.py:1501 part/admin.py:100 part/models.py:1178 +#: common/models.py:1570 part/admin.py:100 part/models.py:1239 msgid "Purchaseable" msgstr "Beszerezhető" -#: common/models.py:1502 +#: common/models.py:1571 msgid "Parts are purchaseable by default" msgstr "Alkatrészek alapból beszerezhetők legyenek" -#: common/models.py:1507 part/admin.py:104 part/models.py:1184 +#: common/models.py:1576 part/admin.py:104 part/models.py:1245 #: templates/js/translated/table_filters.js:763 msgid "Salable" msgstr "Értékesíthető" -#: common/models.py:1508 +#: common/models.py:1577 msgid "Parts are salable by default" msgstr "Alkatrészek alapból eladhatók legyenek" -#: common/models.py:1514 +#: common/models.py:1583 msgid "Parts are trackable by default" msgstr "Alkatrészek alapból követésre kötelezettek legyenek" -#: common/models.py:1519 part/admin.py:117 part/models.py:1200 -#: part/templates/part/part_base.html:154 +#: common/models.py:1588 part/admin.py:117 part/models.py:1261 +#: part/templates/part/part_base.html:155 #: templates/js/translated/table_filters.js:142 #: templates/js/translated/table_filters.js:787 msgid "Virtual" msgstr "Virtuális" -#: common/models.py:1520 +#: common/models.py:1589 msgid "Parts are virtual by default" msgstr "Alkatrészek alapból virtuálisak legyenek" -#: common/models.py:1525 +#: common/models.py:1594 msgid "Show Import in Views" msgstr "Importálás megjelenítése a nézetekben" -#: common/models.py:1526 +#: common/models.py:1595 msgid "Display the import wizard in some part views" msgstr "Import segéd megjelenítése néhány alkatrész nézetben" -#: common/models.py:1531 +#: common/models.py:1600 msgid "Show related parts" msgstr "Kapcsolódó alkatrészek megjelenítése" -#: common/models.py:1532 +#: common/models.py:1601 msgid "Display related parts for a part" msgstr "Alkatrész kapcsolódó alkatrészeinek megjelenítése" -#: common/models.py:1537 +#: common/models.py:1606 msgid "Initial Stock Data" msgstr "Kezdeti készlet adatok" -#: common/models.py:1538 +#: common/models.py:1607 msgid "Allow creation of initial stock when adding a new part" msgstr "Kezdeti készlet létrehozása új alkatrész felvételekor" -#: common/models.py:1543 templates/js/translated/part.js:108 +#: common/models.py:1612 templates/js/translated/part.js:108 msgid "Initial Supplier Data" msgstr "Kezdeti beszállítói adatok" -#: common/models.py:1545 +#: common/models.py:1614 msgid "Allow creation of initial supplier data when adding a new part" msgstr "Kezdeti beszállítói adatok létrehozása új alkatrész felvételekor" -#: common/models.py:1551 +#: common/models.py:1620 msgid "Part Name Display Format" msgstr "Alkatrész név megjelenítés formátuma" -#: common/models.py:1552 +#: common/models.py:1621 msgid "Format to display the part name" msgstr "Formátum az alkatrész név megjelenítéséhez" -#: common/models.py:1558 +#: common/models.py:1627 msgid "Part Category Default Icon" msgstr "Alkatrész kategória alapértelmezett ikon" -#: common/models.py:1559 +#: common/models.py:1628 msgid "Part category default icon (empty means no icon)" msgstr "Alkatrész kategória alapértelmezett ikon (üres ha nincs)" -#: common/models.py:1564 +#: common/models.py:1633 msgid "Enforce Parameter Units" msgstr "Csak választható mértékegységek" -#: common/models.py:1566 +#: common/models.py:1635 msgid "If units are provided, parameter values must match the specified units" msgstr "A megadott mértékegység csak a beállított lehetőségekből legyen elfogadva" -#: common/models.py:1572 +#: common/models.py:1641 msgid "Minimum Pricing Decimal Places" msgstr "Áraknál használt tizedesjegyek min. száma" -#: common/models.py:1574 +#: common/models.py:1643 msgid "Minimum number of decimal places to display when rendering pricing data" msgstr "Tizedejegyek minimális száma az árak megjelenítésekor" -#: common/models.py:1585 +#: common/models.py:1654 msgid "Maximum Pricing Decimal Places" msgstr "Áraknál használt tizedesjegyek max. száma" -#: common/models.py:1587 +#: common/models.py:1656 msgid "Maximum number of decimal places to display when rendering pricing data" msgstr "Tizedejegyek maximális száma az árak megjelenítésekor" -#: common/models.py:1598 +#: common/models.py:1667 msgid "Use Supplier Pricing" msgstr "Beszállítói árazás használata" -#: common/models.py:1600 +#: common/models.py:1669 msgid "Include supplier price breaks in overall pricing calculations" msgstr "Beszállítói ársávok megjelenítése az általános árkalkulációkban" -#: common/models.py:1606 +#: common/models.py:1675 msgid "Purchase History Override" msgstr "Beszerzési előzmények felülbírálása" -#: common/models.py:1608 +#: common/models.py:1677 msgid "Historical purchase order pricing overrides supplier price breaks" msgstr "Beszerzési árelőzmények felülírják a beszállítói ársávokat" -#: common/models.py:1614 +#: common/models.py:1683 msgid "Use Stock Item Pricing" msgstr "Készlet tétel ár használata" -#: common/models.py:1616 +#: common/models.py:1685 msgid "Use pricing from manually entered stock data for pricing calculations" msgstr "A kézzel bevitt készlet tétel árak használata az árszámításokhoz" -#: common/models.py:1622 +#: common/models.py:1691 msgid "Stock Item Pricing Age" msgstr "Készlet tétel ár kora" -#: common/models.py:1624 +#: common/models.py:1693 msgid "Exclude stock items older than this number of days from pricing calculations" msgstr "Az ennyi napnál régebbi készlet tételek kizárása az árszámításból" -#: common/models.py:1631 +#: common/models.py:1700 msgid "Use Variant Pricing" msgstr "Alkatrészváltozat árak használata" -#: common/models.py:1632 +#: common/models.py:1701 msgid "Include variant pricing in overall pricing calculations" msgstr "Alkatrészváltozat árak megjelenítése az általános árkalkulációkban" -#: common/models.py:1637 +#: common/models.py:1706 msgid "Active Variants Only" msgstr "Csak az aktív változatokat" -#: common/models.py:1639 +#: common/models.py:1708 msgid "Only use active variant parts for calculating variant pricing" msgstr "Csak az aktív alkatrészváltozatok használata az árazásban" -#: common/models.py:1645 +#: common/models.py:1714 msgid "Pricing Rebuild Interval" msgstr "Árazás újraszámítás gyakoriság" -#: common/models.py:1647 +#: common/models.py:1716 msgid "Number of days before part pricing is automatically updated" msgstr "Árak automatikus frissítése ennyi nap után" -#: common/models.py:1654 +#: common/models.py:1723 msgid "Internal Prices" msgstr "Belső árak" -#: common/models.py:1655 +#: common/models.py:1724 msgid "Enable internal prices for parts" msgstr "Alkatrészekhez belső ár engedélyezése" -#: common/models.py:1660 +#: common/models.py:1729 msgid "Internal Price Override" msgstr "Belső ár felülbírálása" -#: common/models.py:1662 +#: common/models.py:1731 msgid "If available, internal prices override price range calculations" msgstr "Ha elérhetőek az árkalkulációkban a belső árak lesznek alapul véve" -#: common/models.py:1668 +#: common/models.py:1737 msgid "Enable label printing" msgstr "Címke nyomtatás engedélyezése" -#: common/models.py:1669 +#: common/models.py:1738 msgid "Enable label printing from the web interface" msgstr "Címke nyomtatás engedélyezése a web felületről" -#: common/models.py:1674 +#: common/models.py:1743 msgid "Label Image DPI" msgstr "Címke kép DPI" -#: common/models.py:1676 +#: common/models.py:1745 msgid "DPI resolution when generating image files to supply to label printing plugins" msgstr "Képek felbontása amik átadásra kerülnek címkenyomtató pluginoknak" -#: common/models.py:1682 +#: common/models.py:1751 msgid "Enable Reports" msgstr "Riportok engedélyezése" -#: common/models.py:1683 +#: common/models.py:1752 msgid "Enable generation of reports" msgstr "Riportok előállításának engedélyezése" -#: common/models.py:1688 templates/stats.html:25 +#: common/models.py:1757 templates/stats.html:25 msgid "Debug Mode" msgstr "Debug mód" -#: common/models.py:1689 +#: common/models.py:1758 msgid "Generate reports in debug mode (HTML output)" msgstr "Riportok előállítása HTML formátumban (hibakereséshez)" -#: common/models.py:1694 +#: common/models.py:1763 msgid "Log Report Errors" msgstr "Jelentési hibák naplózása" -#: common/models.py:1695 +#: common/models.py:1764 msgid "Log errors which occur when generating reports" msgstr "Jelentések generálása közben jelentkező hibák naplózása" -#: common/models.py:1700 plugin/builtin/labels/label_sheet.py:28 -#: report/models.py:301 +#: common/models.py:1769 plugin/builtin/labels/label_sheet.py:28 +#: report/models.py:309 msgid "Page Size" msgstr "Lapméret" -#: common/models.py:1701 +#: common/models.py:1770 msgid "Default page size for PDF reports" msgstr "Alapértelmezett lapméret a PDF riportokhoz" -#: common/models.py:1706 -msgid "Enable Test Reports" -msgstr "Teszt riportok engedélyezése" - -#: common/models.py:1707 -msgid "Enable generation of test reports" -msgstr "Teszt riportok előállításának engedélyezése" - -#: common/models.py:1712 -msgid "Attach Test Reports" -msgstr "Teszt riportok hozzáadása" - -#: common/models.py:1714 -msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item" -msgstr "Teszt riport nyomtatáskor egy másolat hozzáadása a készlet tételhez" - -#: common/models.py:1720 +#: common/models.py:1775 msgid "Globally Unique Serials" msgstr "Globálisan egyedi sorozatszámok" -#: common/models.py:1721 +#: common/models.py:1776 msgid "Serial numbers for stock items must be globally unique" msgstr "A sorozatszámoknak egyedinek kell lennie a teljes készletre vonatkozóan" -#: common/models.py:1726 +#: common/models.py:1781 msgid "Autofill Serial Numbers" msgstr "Sorozatszámok automatikus kitöltése" -#: common/models.py:1727 +#: common/models.py:1782 msgid "Autofill serial numbers in forms" msgstr "Sorozatszámok automatikus kitöltése a formokon" -#: common/models.py:1732 +#: common/models.py:1787 msgid "Delete Depleted Stock" msgstr "Kimerült készlet törlése" -#: common/models.py:1734 +#: common/models.py:1789 msgid "Determines default behavior when a stock item is depleted" msgstr "Alapértelmezett művelet mikor a készlet tétel elfogy" -#: common/models.py:1740 +#: common/models.py:1795 msgid "Batch Code Template" msgstr "Batch kód sablon" -#: common/models.py:1742 +#: common/models.py:1797 msgid "Template for generating default batch codes for stock items" msgstr "Sablon a készlet tételekhez alapértelmezett batch kódok előállításához" -#: common/models.py:1747 +#: common/models.py:1802 msgid "Stock Expiry" msgstr "Készlet lejárata" -#: common/models.py:1748 +#: common/models.py:1803 msgid "Enable stock expiry functionality" msgstr "Készlet lejárat kezelésének engedélyezése" -#: common/models.py:1753 +#: common/models.py:1808 msgid "Sell Expired Stock" msgstr "Lejárt készlet értékesítése" -#: common/models.py:1754 +#: common/models.py:1809 msgid "Allow sale of expired stock" msgstr "Lejárt készlet értékesítésének engedélyezése" -#: common/models.py:1759 +#: common/models.py:1814 msgid "Stock Stale Time" msgstr "Álló készlet ideje" -#: common/models.py:1761 +#: common/models.py:1816 msgid "Number of days stock items are considered stale before expiring" msgstr "Napok száma amennyivel a lejárat előtt a készlet tételeket állottnak vesszük" -#: common/models.py:1768 +#: common/models.py:1823 msgid "Build Expired Stock" msgstr "Lejárt készlet gyártása" -#: common/models.py:1769 +#: common/models.py:1824 msgid "Allow building with expired stock" msgstr "Gyártás engedélyezése lejárt készletből" -#: common/models.py:1774 +#: common/models.py:1829 msgid "Stock Ownership Control" msgstr "Készlet tulajdonosok kezelése" -#: common/models.py:1775 +#: common/models.py:1830 msgid "Enable ownership control over stock locations and items" msgstr "Tulajdonosok kezelésének engedélyezése a készlet helyekre és tételekre" -#: common/models.py:1780 +#: common/models.py:1835 msgid "Stock Location Default Icon" msgstr "Hely alapértelmezett ikon" -#: common/models.py:1781 +#: common/models.py:1836 msgid "Stock location default icon (empty means no icon)" msgstr "Hely alapértelmezett ikon (üres ha nincs)" -#: common/models.py:1786 +#: common/models.py:1841 msgid "Show Installed Stock Items" msgstr "Beépített készlet megjelenítése" -#: common/models.py:1787 +#: common/models.py:1842 msgid "Display installed stock items in stock tables" msgstr "Beépített készlet tételek megjelenítése a készlet táblákban" -#: common/models.py:1792 +#: common/models.py:1847 msgid "Check BOM when installing items" msgstr "Tételek telepítésekor a darabjegyzék ellenőrzése" -#: common/models.py:1794 +#: common/models.py:1849 msgid "Installed stock items must exist in the BOM for the parent part" msgstr "A beépített tételeknek a szülő elem darabjegyzékében szerepelniük kell" -#: common/models.py:1800 +#: common/models.py:1855 msgid "Allow Out of Stock Transfer" -msgstr "" +msgstr "Lehet Hiányzó Készletet Mozgatni" -#: common/models.py:1802 +#: common/models.py:1857 msgid "Allow stock items which are not in stock to be transferred between stock locations" -msgstr "" +msgstr "Lehet-e olyan készleteket mozgatni készlethelyek között amik nincsenek raktáron" -#: common/models.py:1808 +#: common/models.py:1863 msgid "Build Order Reference Pattern" msgstr "Gyártási utasítás azonosító minta" -#: common/models.py:1810 +#: common/models.py:1865 msgid "Required pattern for generating Build Order reference field" msgstr "Szükséges minta a gyártási utasítás azonosító mező előállításához" -#: common/models.py:1816 common/models.py:1872 common/models.py:1894 -#: common/models.py:1930 +#: common/models.py:1871 common/models.py:1927 common/models.py:1949 +#: common/models.py:1985 msgid "Require Responsible Owner" msgstr "Felelős tulajdonos szükséges" -#: common/models.py:1817 common/models.py:1873 common/models.py:1895 -#: common/models.py:1931 +#: common/models.py:1872 common/models.py:1928 common/models.py:1950 +#: common/models.py:1986 msgid "A responsible owner must be assigned to each order" msgstr "Minden rendeléshez felelőst kell rendelni" -#: common/models.py:1822 +#: common/models.py:1877 msgid "Require Active Part" -msgstr "" +msgstr "Szükséges Aktív Alkatrész" -#: common/models.py:1823 +#: common/models.py:1878 msgid "Prevent build order creation for inactive parts" -msgstr "" +msgstr "Inaktív alkatrészekre nem lehet Gyártási Rendelést létrehozni" -#: common/models.py:1828 +#: common/models.py:1883 msgid "Require Locked Part" -msgstr "" +msgstr "Elvárás a Lezárt Alkatrész" -#: common/models.py:1829 +#: common/models.py:1884 msgid "Prevent build order creation for unlocked parts" -msgstr "" +msgstr "Megakadályozza, hogy nem lezárt alkatrészekre gyártási rendelést lehessen indítani" -#: common/models.py:1834 +#: common/models.py:1889 msgid "Require Valid BOM" -msgstr "" +msgstr "Jóváhagyott Alkatrészjegyzék Kötelező" -#: common/models.py:1836 +#: common/models.py:1891 msgid "Prevent build order creation unless BOM has been validated" -msgstr "" +msgstr "Megakadályozza gyártási rendelés készítését ha nincsen az Alkatrészjegyzék jóváhagyva" -#: common/models.py:1842 +#: common/models.py:1897 msgid "Require Closed Child Orders" -msgstr "" +msgstr "Leszármazott Gyártásoknak Lezártnak Kell Lennie" -#: common/models.py:1844 +#: common/models.py:1899 msgid "Prevent build order completion until all child orders are closed" -msgstr "" +msgstr "Amíg minden leszármazott gyártás le nincsen zárva nem lehet a szülő gyártást lezárni" -#: common/models.py:1850 +#: common/models.py:1905 msgid "Block Until Tests Pass" msgstr "Blokkolás a tesztek sikeres végrehajtásáig" -#: common/models.py:1852 +#: common/models.py:1907 msgid "Prevent build outputs from being completed until all required tests pass" msgstr "Nem lehet gyártási tételt befejezni amíg valamennyi kötelező teszt sikeres nem lett" -#: common/models.py:1858 +#: common/models.py:1913 msgid "Enable Return Orders" msgstr "Visszavétel engedélyezése" -#: common/models.py:1859 +#: common/models.py:1914 msgid "Enable return order functionality in the user interface" msgstr "Visszavételek engedélyezése a felületen" -#: common/models.py:1864 +#: common/models.py:1919 msgid "Return Order Reference Pattern" msgstr "Visszavétel azonosító minta" -#: common/models.py:1866 +#: common/models.py:1921 msgid "Required pattern for generating Return Order reference field" msgstr "Szükséges minta a visszavétel azonosító mező előállításához" -#: common/models.py:1878 +#: common/models.py:1933 msgid "Edit Completed Return Orders" msgstr "Befejezett visszavétel szerkesztése" -#: common/models.py:1880 +#: common/models.py:1935 msgid "Allow editing of return orders after they have been completed" msgstr "Visszavétel szerkesztésének engedélyezése befejezés után" -#: common/models.py:1886 +#: common/models.py:1941 msgid "Sales Order Reference Pattern" msgstr "Vevői rendelés azonosító minta" -#: common/models.py:1888 +#: common/models.py:1943 msgid "Required pattern for generating Sales Order reference field" msgstr "Szükséges minta a vevői rendelés azonosító mező előállításához" -#: common/models.py:1900 +#: common/models.py:1955 msgid "Sales Order Default Shipment" msgstr "Vevői rendeléshez alapértelmezett szállítmány" -#: common/models.py:1901 +#: common/models.py:1956 msgid "Enable creation of default shipment with sales orders" msgstr "Szállítmány automatikus létrehozása az új vevő rendelésekhez" -#: common/models.py:1906 +#: common/models.py:1961 msgid "Edit Completed Sales Orders" msgstr "Befejezett vevői rendelés szerkesztése" -#: common/models.py:1908 +#: common/models.py:1963 msgid "Allow editing of sales orders after they have been shipped or completed" msgstr "Vevői rendelések szerkesztésének engedélyezése szállítás vagy befejezés után" -#: common/models.py:1914 +#: common/models.py:1969 msgid "Mark Shipped Orders as Complete" -msgstr "" +msgstr "Leszállított Rendelések Készre jelölése" -#: common/models.py:1916 +#: common/models.py:1971 msgid "Sales orders marked as shipped will automatically be completed, bypassing the \"shipped\" status" -msgstr "" +msgstr "Leszállítottnak jelölt Értékesítési rendelések automatikusan Kész-re lesznek állítva, a \"Leszállított\" állapot átugrásával" -#: common/models.py:1922 +#: common/models.py:1977 msgid "Purchase Order Reference Pattern" msgstr "Beszerzési rendelés azonosító minta" -#: common/models.py:1924 +#: common/models.py:1979 msgid "Required pattern for generating Purchase Order reference field" msgstr "Szükséges minta a beszerzési rendelés azonosító mező előállításához" -#: common/models.py:1936 +#: common/models.py:1991 msgid "Edit Completed Purchase Orders" msgstr "Befejezett beszerzési rendelés szerkesztése" -#: common/models.py:1938 +#: common/models.py:1993 msgid "Allow editing of purchase orders after they have been shipped or completed" msgstr "Beszérzési rendelések szerkesztésének engedélyezése kiküldés vagy befejezés után" -#: common/models.py:1944 +#: common/models.py:1999 msgid "Auto Complete Purchase Orders" msgstr "Beszerzési rendelések automatikus befejezése" -#: common/models.py:1946 +#: common/models.py:2001 msgid "Automatically mark purchase orders as complete when all line items are received" msgstr "A beszerzési rendelés automatikus befejezése ha minden sortétel beérkezett" -#: common/models.py:1953 +#: common/models.py:2008 msgid "Enable password forgot" msgstr "Elfelejtett jelszó engedélyezése" -#: common/models.py:1954 +#: common/models.py:2009 msgid "Enable password forgot function on the login pages" msgstr "Elfelejtett jelszó funkció engedélyezése a bejentkező oldalon" -#: common/models.py:1959 +#: common/models.py:2014 msgid "Enable registration" msgstr "Regisztráció engedélyezése" -#: common/models.py:1960 +#: common/models.py:2015 msgid "Enable self-registration for users on the login pages" msgstr "Felhaszálók önkéntes regisztrációjának engedélyezése a bejelentkező oldalon" -#: common/models.py:1965 +#: common/models.py:2020 msgid "Enable SSO" msgstr "SSO engedélyezése" -#: common/models.py:1966 +#: common/models.py:2021 msgid "Enable SSO on the login pages" msgstr "SSO engedélyezése a bejelentkező oldalon" -#: common/models.py:1971 +#: common/models.py:2026 msgid "Enable SSO registration" msgstr "SSO regisztráció engedélyezése" -#: common/models.py:1973 +#: common/models.py:2028 msgid "Enable self-registration via SSO for users on the login pages" msgstr "Felhaszálók önkéntes regisztrációjának engedélyezése SSO-n keresztül a bejelentkező oldalon" -#: common/models.py:1979 +#: common/models.py:2034 msgid "Enable SSO group sync" -msgstr "" +msgstr "SSO csoport szinkronizálás engedélyezése" -#: common/models.py:1981 +#: common/models.py:2036 msgid "Enable synchronizing InvenTree groups with groups provided by the IdP" -msgstr "" +msgstr "Az InvenTree csoportok szinkronizálása a hitelesítésszolgáltatóhoz" -#: common/models.py:1987 +#: common/models.py:2042 msgid "SSO group key" -msgstr "" +msgstr "SSO csoport kulcs" -#: common/models.py:1989 +#: common/models.py:2044 msgid "The name of the groups claim attribute provided by the IdP" -msgstr "" +msgstr "A csoportkérés tulajdonság neve amit a hitelesítésszolgáltató nyújt" -#: common/models.py:1995 +#: common/models.py:2050 msgid "SSO group map" -msgstr "" +msgstr "SSO csoport hozzárendelés" -#: common/models.py:1997 +#: common/models.py:2052 msgid "A mapping from SSO groups to local InvenTree groups. If the local group does not exist, it will be created." -msgstr "" +msgstr "Az SSO csoportok hozzárendelése az InvenTree csoportokhoz. Ha a helyi csoport nem létezik, létre lesz hozva." -#: common/models.py:2003 +#: common/models.py:2058 msgid "Remove groups outside of SSO" -msgstr "" +msgstr "Az SSO-n kívüli csoportok eltávolítása" -#: common/models.py:2005 +#: common/models.py:2060 msgid "Whether groups assigned to the user should be removed if they are not backend by the IdP. Disabling this setting might cause security issues" -msgstr "" +msgstr "Ha egy felhasználóhoz rendelt csoport nem létezik az azonosításszolgáltatóban azt eltávolítsuk el. Ennek a kikapcsolása biztonsági problémákhoz vezethet" -#: common/models.py:2011 +#: common/models.py:2066 msgid "Email required" msgstr "Email szükséges" -#: common/models.py:2012 +#: common/models.py:2067 msgid "Require user to supply mail on signup" msgstr "Kötelező email megadás regisztrációkor" -#: common/models.py:2017 +#: common/models.py:2072 msgid "Auto-fill SSO users" msgstr "SSO felhasználók automatikus kitöltése" -#: common/models.py:2019 +#: common/models.py:2074 msgid "Automatically fill out user-details from SSO account-data" msgstr "Felhasználó adatainak automatikus kitöltése az SSO fiókadatokból" -#: common/models.py:2025 +#: common/models.py:2080 msgid "Mail twice" msgstr "Email kétszer" -#: common/models.py:2026 +#: common/models.py:2081 msgid "On signup ask users twice for their mail" msgstr "Regisztráláskor kétszer kérdezze a felhasználó email címét" -#: common/models.py:2031 +#: common/models.py:2086 msgid "Password twice" msgstr "Jelszó kétszer" -#: common/models.py:2032 +#: common/models.py:2087 msgid "On signup ask users twice for their password" msgstr "Regisztráláskor kétszer kérdezze a felhasználó jelszavát" -#: common/models.py:2037 +#: common/models.py:2092 msgid "Allowed domains" msgstr "Engedélyezett domainek" -#: common/models.py:2039 +#: common/models.py:2094 msgid "Restrict signup to certain domains (comma-separated, starting with @)" msgstr "Feliratkozás korlátozása megadott domain-ekre (vesszővel elválasztva, @-al kezdve)" -#: common/models.py:2045 +#: common/models.py:2100 msgid "Group on signup" msgstr "Csoport regisztráláskor" -#: common/models.py:2047 +#: common/models.py:2102 msgid "Group to which new users are assigned on registration. If SSO group sync is enabled, this group is only set if no group can be assigned from the IdP." -msgstr "" +msgstr "Ehhez a csoporthoz lesznek az új felhasználók rendelve. Ha az SSO csoport szinkronizálás engedélyezve van, akkor ez a csoport csak akkor lesz hozzárendelve a felhasználóhoz ha az azonosítás szolgáltató semmilyen csoportot nem rendelt hozzá." -#: common/models.py:2053 +#: common/models.py:2108 msgid "Enforce MFA" msgstr "Többfaktoros hitelesítés kényszerítése" -#: common/models.py:2054 +#: common/models.py:2109 msgid "Users must use multifactor security." msgstr "A felhasználóknak többfaktoros hitelesítést kell használniuk." -#: common/models.py:2059 +#: common/models.py:2114 msgid "Check plugins on startup" msgstr "Pluginok ellenőrzése indításkor" -#: common/models.py:2061 +#: common/models.py:2116 msgid "Check that all plugins are installed on startup - enable in container environments" msgstr "Ellenőrizze induláskor hogy minden plugin telepítve van - engedélyezd konténer környezetben (docker)" -#: common/models.py:2069 +#: common/models.py:2124 msgid "Check for plugin updates" msgstr "Plugin frissítések ellenőrzése" -#: common/models.py:2070 +#: common/models.py:2125 msgid "Enable periodic checks for updates to installed plugins" msgstr "Frissítések periódikus ellenőrzésének engedélyezése a telepített pluginokra" -#: common/models.py:2076 +#: common/models.py:2131 msgid "Enable URL integration" msgstr "URL integráció engedélyezése" -#: common/models.py:2077 +#: common/models.py:2132 msgid "Enable plugins to add URL routes" msgstr "URL útvonalalak hozzáadásának engedélyezése a pluginok számára" -#: common/models.py:2083 +#: common/models.py:2138 msgid "Enable navigation integration" msgstr "Navigációs integráció engedélyezése" -#: common/models.py:2084 +#: common/models.py:2139 msgid "Enable plugins to integrate into navigation" msgstr "Navigációs integráció engedélyezése a pluginok számára" -#: common/models.py:2090 +#: common/models.py:2145 msgid "Enable app integration" msgstr "App integráció engedélyezése" -#: common/models.py:2091 +#: common/models.py:2146 msgid "Enable plugins to add apps" msgstr "App hozzáadásának engedélyezése a pluginok számára" -#: common/models.py:2097 +#: common/models.py:2152 msgid "Enable schedule integration" msgstr "Ütemezés integráció engedélyezése" -#: common/models.py:2098 +#: common/models.py:2153 msgid "Enable plugins to run scheduled tasks" msgstr "Háttérben futó feladatok hozzáadásának engedélyezése a pluginok számára" -#: common/models.py:2104 +#: common/models.py:2159 msgid "Enable event integration" msgstr "Esemény integráció engedélyezése" -#: common/models.py:2105 +#: common/models.py:2160 msgid "Enable plugins to respond to internal events" msgstr "Belső eseményekre reagálás engedélyezése a pluginok számára" -#: common/models.py:2111 +#: common/models.py:2166 +msgid "Enable interface integration" +msgstr "" + +#: common/models.py:2167 +msgid "Enable plugins to integrate into the user interface" +msgstr "" + +#: common/models.py:2173 msgid "Enable project codes" msgstr "Projektszámok engedélyezése" -#: common/models.py:2112 +#: common/models.py:2174 msgid "Enable project codes for tracking projects" msgstr "Projektszámok használatának engedélyezése a projektek követéséhez" -#: common/models.py:2117 +#: common/models.py:2179 msgid "Stocktake Functionality" msgstr "Leltár funkció" -#: common/models.py:2119 +#: common/models.py:2181 msgid "Enable stocktake functionality for recording stock levels and calculating stock value" msgstr "Leltár funkció engedélyezése a készlet mennyiség és érték számításhoz" -#: common/models.py:2125 +#: common/models.py:2187 msgid "Exclude External Locations" msgstr "Külső helyek nélkül" -#: common/models.py:2127 +#: common/models.py:2189 msgid "Exclude stock items in external locations from stocktake calculations" msgstr "Külső helyek figyelmen kívül hagyása a leltár számításoknál" -#: common/models.py:2133 +#: common/models.py:2195 msgid "Automatic Stocktake Period" msgstr "Automatikus leltár időpontja" -#: common/models.py:2135 +#: common/models.py:2197 msgid "Number of days between automatic stocktake recording (set to zero to disable)" msgstr "Hány naponta történjen automatikus leltár (nulla egyenlő tiltva)" -#: common/models.py:2141 +#: common/models.py:2203 msgid "Report Deletion Interval" msgstr "Riport törlési gyakoriság" -#: common/models.py:2143 +#: common/models.py:2205 msgid "Stocktake reports will be deleted after specified number of days" msgstr "Régi leltár riportok törlése hány naponta történjen" -#: common/models.py:2150 +#: common/models.py:2212 msgid "Display Users full names" msgstr "Felhasználók teljes nevének megjelenítése" -#: common/models.py:2151 +#: common/models.py:2213 msgid "Display Users full names instead of usernames" msgstr "Felhasználói név helyett a felhasználók teljes neve jelenik meg" -#: common/models.py:2156 +#: common/models.py:2218 msgid "Enable Test Station Data" msgstr "Teszt állomás adatok engedélyezése" -#: common/models.py:2157 +#: common/models.py:2219 msgid "Enable test station data collection for test results" msgstr "Tesztállomás adatok gyűjtésének teszt eredménybe gyűjtésének engedélyezése" -#: common/models.py:2169 common/models.py:2549 -msgid "Settings key (must be unique - case insensitive" -msgstr "Beállítások kulcs (egyedinek kell lennie, nem kis- nagybetű érzékeny" +#: common/models.py:2224 +msgid "Create Template on Upload" +msgstr "" -#: common/models.py:2212 +#: common/models.py:2226 +msgid "Create a new test template when uploading test data which does not match an existing template" +msgstr "" + +#: common/models.py:2279 msgid "Hide inactive parts" msgstr "Inaktív alkatrészek elrejtése" -#: common/models.py:2214 +#: common/models.py:2281 msgid "Hide inactive parts in results displayed on the homepage" msgstr "Nem aktív alkatrészek elrejtése a kezdőlapon" -#: common/models.py:2220 +#: common/models.py:2287 msgid "Show subscribed parts" msgstr "Értesítésre beállított alkatrészek megjelenítése" -#: common/models.py:2221 +#: common/models.py:2288 msgid "Show subscribed parts on the homepage" msgstr "Alkatrész értesítések megjelenítése a főoldalon" -#: common/models.py:2226 +#: common/models.py:2293 msgid "Show subscribed categories" msgstr "Értesítésre beállított kategóriák megjelenítése" -#: common/models.py:2227 +#: common/models.py:2294 msgid "Show subscribed part categories on the homepage" msgstr "Alkatrész kategória értesítések megjelenítése a főoldalon" -#: common/models.py:2232 +#: common/models.py:2299 msgid "Show latest parts" msgstr "Legújabb alkatrészek megjelenítése" -#: common/models.py:2233 +#: common/models.py:2300 msgid "Show latest parts on the homepage" msgstr "Legújabb alkatrészek megjelenítése a főoldalon" -#: common/models.py:2238 +#: common/models.py:2305 msgid "Show invalid BOMs" msgstr "Hibás alkatrészjegyzékek megjelenítése" -#: common/models.py:2239 +#: common/models.py:2306 msgid "Show BOMs that await validation on the homepage" msgstr "Jóváhagyásra váró alkatrészjegyzékek megjelenítése a főoldalon" -#: common/models.py:2244 +#: common/models.py:2311 msgid "Show recent stock changes" msgstr "Legfrissebb készlet változások megjelenítése" -#: common/models.py:2245 +#: common/models.py:2312 msgid "Show recently changed stock items on the homepage" msgstr "Legutóbb megváltozott alkatrészek megjelenítése a főoldalon" -#: common/models.py:2250 +#: common/models.py:2317 msgid "Show low stock" msgstr "Alacsony készlet megjelenítése" -#: common/models.py:2251 +#: common/models.py:2318 msgid "Show low stock items on the homepage" msgstr "Alacsony készletek megjelenítése a főoldalon" -#: common/models.py:2256 +#: common/models.py:2323 msgid "Show depleted stock" msgstr "Kimerült készlet megjelenítése" -#: common/models.py:2257 +#: common/models.py:2324 msgid "Show depleted stock items on the homepage" msgstr "Kimerült készletek megjelenítése a főoldalon" -#: common/models.py:2262 +#: common/models.py:2329 msgid "Show needed stock" msgstr "Gyártáshoz szükséges készlet megjelenítése" -#: common/models.py:2263 +#: common/models.py:2330 msgid "Show stock items needed for builds on the homepage" msgstr "Gyártáshoz szükséges készletek megjelenítése a főoldalon" -#: common/models.py:2268 +#: common/models.py:2335 msgid "Show expired stock" msgstr "Lejárt készlet megjelenítése" -#: common/models.py:2269 +#: common/models.py:2336 msgid "Show expired stock items on the homepage" msgstr "Lejárt készletek megjelenítése a főoldalon" -#: common/models.py:2274 +#: common/models.py:2341 msgid "Show stale stock" msgstr "Állott készlet megjelenítése" -#: common/models.py:2275 +#: common/models.py:2342 msgid "Show stale stock items on the homepage" msgstr "Álló készletek megjelenítése a főoldalon" -#: common/models.py:2280 +#: common/models.py:2347 msgid "Show pending builds" msgstr "Függő gyártások megjelenítése" -#: common/models.py:2281 +#: common/models.py:2348 msgid "Show pending builds on the homepage" msgstr "Folyamatban lévő gyártások megjelenítése a főoldalon" -#: common/models.py:2286 +#: common/models.py:2353 msgid "Show overdue builds" msgstr "Késésben lévő gyártások megjelenítése" -#: common/models.py:2287 +#: common/models.py:2354 msgid "Show overdue builds on the homepage" msgstr "Késésben lévő gyártások megjelenítése a főoldalon" -#: common/models.py:2292 +#: common/models.py:2359 msgid "Show outstanding POs" msgstr "Kintlévő beszerzési rendelések megjelenítése" -#: common/models.py:2293 +#: common/models.py:2360 msgid "Show outstanding POs on the homepage" msgstr "Kintlévő beszerzési rendelések megjelenítése a főoldalon" -#: common/models.py:2298 +#: common/models.py:2365 msgid "Show overdue POs" msgstr "Késésben lévő megrendelések megjelenítése" -#: common/models.py:2299 +#: common/models.py:2366 msgid "Show overdue POs on the homepage" msgstr "Késésben lévő megrendelések megjelenítése a főoldalon" -#: common/models.py:2304 +#: common/models.py:2371 msgid "Show outstanding SOs" msgstr "Függő vevői rendelések megjelenítése" -#: common/models.py:2305 +#: common/models.py:2372 msgid "Show outstanding SOs on the homepage" msgstr "Függő vevői rendelések megjelenítése a főoldalon" -#: common/models.py:2310 +#: common/models.py:2377 msgid "Show overdue SOs" msgstr "Késésben lévő vevői rendelések megjelenítése" -#: common/models.py:2311 +#: common/models.py:2378 msgid "Show overdue SOs on the homepage" msgstr "Késésben lévő vevői rendelések megjelenítése a főoldalon" -#: common/models.py:2316 +#: common/models.py:2383 msgid "Show pending SO shipments" msgstr "Függő vevői szállítmányok megjelenítése" -#: common/models.py:2317 +#: common/models.py:2384 msgid "Show pending SO shipments on the homepage" msgstr "Folyamatban lévő vevői szállítmányok megjelenítése a főoldalon" -#: common/models.py:2322 +#: common/models.py:2389 msgid "Show News" msgstr "Hírek megjelenítése" -#: common/models.py:2323 +#: common/models.py:2390 msgid "Show news on the homepage" msgstr "Hírek megjelenítése a főoldalon" -#: common/models.py:2328 +#: common/models.py:2395 msgid "Inline label display" msgstr "Beágyazott címke megjelenítés" -#: common/models.py:2330 +#: common/models.py:2397 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "PDF címkék megjelenítése a böngészőben letöltés helyett" -#: common/models.py:2336 +#: common/models.py:2403 msgid "Default label printer" msgstr "Alapértelmezett címkenyomtató" -#: common/models.py:2338 +#: common/models.py:2405 msgid "Configure which label printer should be selected by default" msgstr "Melyik címkenyomtató legyen az alapértelmezett" -#: common/models.py:2344 +#: common/models.py:2411 msgid "Inline report display" msgstr "Beágyazott riport megjelenítés" -#: common/models.py:2346 +#: common/models.py:2413 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "PDF riport megjelenítése a böngészőben letöltés helyett" -#: common/models.py:2352 +#: common/models.py:2419 msgid "Search Parts" msgstr "Alkatrészek keresése" -#: common/models.py:2353 +#: common/models.py:2420 msgid "Display parts in search preview window" msgstr "Alkatrészek megjelenítése a keresési előnézetben" -#: common/models.py:2358 +#: common/models.py:2425 msgid "Search Supplier Parts" msgstr "Beszállítói alkatrészek keresése" -#: common/models.py:2359 +#: common/models.py:2426 msgid "Display supplier parts in search preview window" msgstr "Beszállítói alkatrészek megjelenítése a keresési előnézetben" -#: common/models.py:2364 +#: common/models.py:2431 msgid "Search Manufacturer Parts" msgstr "Gyártói alkatrészek keresése" -#: common/models.py:2365 +#: common/models.py:2432 msgid "Display manufacturer parts in search preview window" msgstr "Gyártói alkatrészek megjelenítése a keresési előnézetben" -#: common/models.py:2370 +#: common/models.py:2437 msgid "Hide Inactive Parts" msgstr "Inaktív alkatrészek elrejtése" -#: common/models.py:2371 +#: common/models.py:2438 msgid "Excluded inactive parts from search preview window" msgstr "Inaktív alkatrészek kihagyása a keresési előnézet találataiból" -#: common/models.py:2376 +#: common/models.py:2443 msgid "Search Categories" msgstr "Kategóriák keresése" -#: common/models.py:2377 +#: common/models.py:2444 msgid "Display part categories in search preview window" msgstr "Alkatrész kategóriák megjelenítése a keresési előnézetben" -#: common/models.py:2382 +#: common/models.py:2449 msgid "Search Stock" msgstr "Készlet keresése" -#: common/models.py:2383 +#: common/models.py:2450 msgid "Display stock items in search preview window" msgstr "Készlet tételek megjelenítése a keresési előnézetben" -#: common/models.py:2388 +#: common/models.py:2455 msgid "Hide Unavailable Stock Items" msgstr "Nem elérhető készlet tételek elrejtése" -#: common/models.py:2390 +#: common/models.py:2457 msgid "Exclude stock items which are not available from the search preview window" msgstr "Nem elérhető készlet kihagyása a keresési előnézet találataiból" -#: common/models.py:2396 +#: common/models.py:2463 msgid "Search Locations" msgstr "Helyek keresése" -#: common/models.py:2397 +#: common/models.py:2464 msgid "Display stock locations in search preview window" msgstr "Készlet helyek megjelenítése a keresési előnézetben" -#: common/models.py:2402 +#: common/models.py:2469 msgid "Search Companies" msgstr "Cégek keresése" -#: common/models.py:2403 +#: common/models.py:2470 msgid "Display companies in search preview window" msgstr "Cégek megjelenítése a keresési előnézetben" -#: common/models.py:2408 +#: common/models.py:2475 msgid "Search Build Orders" msgstr "Gyártási utasítások keresése" -#: common/models.py:2409 +#: common/models.py:2476 msgid "Display build orders in search preview window" msgstr "Gyártási utasítások megjelenítése a keresés előnézet ablakban" -#: common/models.py:2414 +#: common/models.py:2481 msgid "Search Purchase Orders" msgstr "Beszerzési rendelések keresése" -#: common/models.py:2415 +#: common/models.py:2482 msgid "Display purchase orders in search preview window" msgstr "Beszerzési rendelések megjelenítése a keresési előnézetben" -#: common/models.py:2420 +#: common/models.py:2487 msgid "Exclude Inactive Purchase Orders" msgstr "Inaktív beszerzési rendelések kihagyása" -#: common/models.py:2422 +#: common/models.py:2489 msgid "Exclude inactive purchase orders from search preview window" msgstr "Inaktív beszerzési rendelések kihagyása a keresési előnézet találataiból" -#: common/models.py:2428 +#: common/models.py:2495 msgid "Search Sales Orders" msgstr "Vevői rendelések keresése" -#: common/models.py:2429 +#: common/models.py:2496 msgid "Display sales orders in search preview window" msgstr "Vevői rendelések megjelenítése a keresési előnézetben" -#: common/models.py:2434 +#: common/models.py:2501 msgid "Exclude Inactive Sales Orders" msgstr "Inaktív vevői rendelések kihagyása" -#: common/models.py:2436 +#: common/models.py:2503 msgid "Exclude inactive sales orders from search preview window" msgstr "Inaktív vevői rendelések kihagyása a keresési előnézet találataiból" -#: common/models.py:2442 +#: common/models.py:2509 msgid "Search Return Orders" msgstr "Visszavétel keresése" -#: common/models.py:2443 +#: common/models.py:2510 msgid "Display return orders in search preview window" msgstr "Visszavételek megjelenítése a keresés előnézet ablakban" -#: common/models.py:2448 +#: common/models.py:2515 msgid "Exclude Inactive Return Orders" msgstr "Inaktív visszavételek kihagyása" -#: common/models.py:2450 +#: common/models.py:2517 msgid "Exclude inactive return orders from search preview window" msgstr "Inaktív visszavételek kihagyása a keresési előnézet találataiból" -#: common/models.py:2456 +#: common/models.py:2523 msgid "Search Preview Results" msgstr "Keresési előnézet eredményei" -#: common/models.py:2458 +#: common/models.py:2525 msgid "Number of results to show in each section of the search preview window" msgstr "A keresési előnézetben megjelenítendő eredmények száma szekciónként" -#: common/models.py:2464 +#: common/models.py:2531 msgid "Regex Search" msgstr "Regex keresés" -#: common/models.py:2465 +#: common/models.py:2532 msgid "Enable regular expressions in search queries" msgstr "Reguláris kifejezések engedélyezése a keresésekben" -#: common/models.py:2470 +#: common/models.py:2537 msgid "Whole Word Search" msgstr "Teljes szó keresés" -#: common/models.py:2471 +#: common/models.py:2538 msgid "Search queries return results for whole word matches" msgstr "A keresések csak teljes szóra egyező találatokat adjanak" -#: common/models.py:2476 +#: common/models.py:2543 msgid "Show Quantity in Forms" msgstr "Mennyiség megjelenítése a formokon" -#: common/models.py:2477 +#: common/models.py:2544 msgid "Display available part quantity in some forms" msgstr "Rendelkezésre álló alkatrész mennyiség megjelenítése néhány formon" -#: common/models.py:2482 +#: common/models.py:2549 msgid "Escape Key Closes Forms" msgstr "ESC billentyű zárja be a formot" -#: common/models.py:2483 +#: common/models.py:2550 msgid "Use the escape key to close modal forms" msgstr "ESC billentyű használata a modális formok bezárásához" -#: common/models.py:2488 +#: common/models.py:2555 msgid "Fixed Navbar" msgstr "Rögzített menüsor" -#: common/models.py:2489 +#: common/models.py:2556 msgid "The navbar position is fixed to the top of the screen" msgstr "A menü pozíciója mindig rögzítve a lap tetején" -#: common/models.py:2494 +#: common/models.py:2561 msgid "Date Format" msgstr "Dátum formátum" -#: common/models.py:2495 +#: common/models.py:2562 msgid "Preferred format for displaying dates" msgstr "Preferált dátum formátum a dátumok kijelzésekor" -#: common/models.py:2508 part/templates/part/detail.html:41 +#: common/models.py:2575 part/templates/part/detail.html:41 msgid "Part Scheduling" msgstr "Alkatrész ütemezés" -#: common/models.py:2509 +#: common/models.py:2576 msgid "Display part scheduling information" msgstr "Alkatrész ütemezési információk megjelenítése" -#: common/models.py:2514 part/templates/part/detail.html:62 +#: common/models.py:2581 part/templates/part/detail.html:62 msgid "Part Stocktake" msgstr "Alkatrész leltár" -#: common/models.py:2516 +#: common/models.py:2583 msgid "Display part stocktake information (if stocktake functionality is enabled)" msgstr "Alkatrész leltár információk megjelenítése (ha a leltár funkció engedélyezett)" -#: common/models.py:2522 +#: common/models.py:2589 msgid "Table String Length" msgstr "Táblázati szöveg hossz" -#: common/models.py:2524 +#: common/models.py:2591 msgid "Maximum length limit for strings displayed in table views" msgstr "Maximális szöveg hossz ami megjelenhet a táblázatokban" -#: common/models.py:2530 +#: common/models.py:2597 msgid "Receive error reports" msgstr "Hibariportok fogadása" -#: common/models.py:2531 +#: common/models.py:2598 msgid "Receive notifications for system errors" msgstr "Értesítések fogadása a rendszerhibákról" -#: common/models.py:2536 +#: common/models.py:2603 msgid "Last used printing machines" msgstr "Utoljára használt nyomtató gépek" -#: common/models.py:2537 +#: common/models.py:2604 msgid "Save the last used printing machines for a user" msgstr "Az utoljára használt nyomtató tárolása a felhasználóhoz" -#: common/models.py:2557 common/models.py:2558 common/models.py:2715 -#: common/models.py:2716 common/models.py:2961 common/models.py:2962 -#: common/models.py:3288 common/models.py:3289 importer/models.py:88 -#: part/models.py:3307 part/models.py:3394 part/models.py:3468 -#: part/models.py:3496 plugin/models.py:274 plugin/models.py:275 -#: report/templates/report/inventree_test_report.html:105 -#: templates/js/translated/stock.js:3120 users/models.py:111 +#: common/models.py:2621 common/models.py:2622 common/models.py:2779 +#: common/models.py:2780 common/models.py:3025 common/models.py:3026 +#: common/models.py:3349 common/models.py:3350 common/models.py:3534 +#: importer/models.py:89 part/models.py:3358 part/models.py:3445 +#: part/models.py:3519 part/models.py:3547 plugin/models.py:313 +#: plugin/models.py:314 report/templates/report/inventree_test_report.html:105 +#: templates/js/translated/stock.js:3121 users/models.py:111 msgid "User" msgstr "Felhasználó" -#: common/models.py:2580 +#: common/models.py:2644 msgid "Price break quantity" msgstr "Ársáv mennyiség" -#: common/models.py:2587 company/serializers.py:513 order/admin.py:42 -#: order/models.py:1430 order/models.py:2417 -#: templates/js/translated/company.js:1823 templates/js/translated/part.js:1892 +#: common/models.py:2651 company/serializers.py:524 order/admin.py:42 +#: order/models.py:1447 order/models.py:2456 +#: templates/js/translated/company.js:1824 templates/js/translated/part.js:1892 #: templates/js/translated/pricing.js:621 #: templates/js/translated/return_order.js:739 msgid "Price" msgstr "Ár" -#: common/models.py:2588 +#: common/models.py:2652 msgid "Unit price at specified quantity" msgstr "Egységár egy meghatározott mennyiség esetén" -#: common/models.py:2692 common/models.py:2877 +#: common/models.py:2756 common/models.py:2941 msgid "Endpoint" msgstr "Végpont" -#: common/models.py:2693 +#: common/models.py:2757 msgid "Endpoint at which this webhook is received" msgstr "Végpont ahol ez a webhook érkezik" -#: common/models.py:2703 +#: common/models.py:2767 msgid "Name for this webhook" msgstr "Webhook neve" -#: common/models.py:2707 +#: common/models.py:2771 msgid "Is this webhook active" msgstr "Aktív-e ez a webhook" -#: common/models.py:2723 users/models.py:159 +#: common/models.py:2787 users/models.py:159 msgid "Token" msgstr "Token" -#: common/models.py:2724 +#: common/models.py:2788 msgid "Token for access" msgstr "Token a hozzáféréshez" -#: common/models.py:2732 +#: common/models.py:2796 msgid "Secret" msgstr "Titok" -#: common/models.py:2733 +#: common/models.py:2797 msgid "Shared secret for HMAC" msgstr "Megosztott titok a HMAC-hoz" -#: common/models.py:2841 +#: common/models.py:2905 msgid "Message ID" msgstr "Üzenet azonosító" -#: common/models.py:2842 +#: common/models.py:2906 msgid "Unique identifier for this message" msgstr "Egyedi azonosító ehhez az üzenethez" -#: common/models.py:2850 +#: common/models.py:2914 msgid "Host" msgstr "Kiszolgáló" -#: common/models.py:2851 +#: common/models.py:2915 msgid "Host from which this message was received" msgstr "Kiszolgáló ahonnan ez az üzenet érkezett" -#: common/models.py:2859 +#: common/models.py:2923 msgid "Header" msgstr "Fejléc" -#: common/models.py:2860 +#: common/models.py:2924 msgid "Header of this message" msgstr "Üzenet fejléce" -#: common/models.py:2867 +#: common/models.py:2931 msgid "Body" msgstr "Törzs" -#: common/models.py:2868 +#: common/models.py:2932 msgid "Body of this message" msgstr "Üzenet törzse" -#: common/models.py:2878 +#: common/models.py:2942 msgid "Endpoint on which this message was received" msgstr "Végpont amin ez az üzenet érkezett" -#: common/models.py:2883 +#: common/models.py:2947 msgid "Worked on" msgstr "Dolgozott rajta" -#: common/models.py:2884 +#: common/models.py:2948 msgid "Was the work on this message finished?" msgstr "Befejeződött a munka ezzel az üzenettel?" -#: common/models.py:3010 +#: common/models.py:3074 msgid "Id" msgstr "Azonosító" -#: common/models.py:3012 templates/js/translated/company.js:965 -#: templates/js/translated/news.js:44 +#: common/models.py:3076 part/serializers.py:271 +#: templates/js/translated/company.js:966 templates/js/translated/news.js:44 msgid "Title" msgstr "Cím" -#: common/models.py:3014 common/models.py:3272 company/models.py:149 -#: company/models.py:446 company/models.py:512 company/models.py:818 -#: order/models.py:302 order/models.py:1385 order/models.py:1817 -#: part/admin.py:55 part/models.py:1057 +#: common/models.py:3078 common/models.py:3333 company/models.py:146 +#: company/models.py:443 company/models.py:509 company/models.py:815 +#: order/models.py:309 order/models.py:1402 order/models.py:1846 +#: part/admin.py:55 part/models.py:1118 #: part/templates/part/part_scheduling.html:11 #: report/templates/report/inventree_build_order_report.html:164 -#: stock/admin.py:229 templates/js/translated/company.js:1319 -#: templates/js/translated/company.js:1673 templates/js/translated/order.js:376 +#: stock/admin.py:230 templates/js/translated/company.js:1320 +#: templates/js/translated/company.js:1674 templates/js/translated/order.js:376 #: templates/js/translated/part.js:2475 -#: templates/js/translated/purchase_order.js:2110 -#: templates/js/translated/purchase_order.js:2274 +#: templates/js/translated/purchase_order.js:2094 +#: templates/js/translated/purchase_order.js:2258 #: templates/js/translated/return_order.js:778 -#: templates/js/translated/sales_order.js:1092 -#: templates/js/translated/sales_order.js:2023 +#: templates/js/translated/sales_order.js:1058 +#: templates/js/translated/sales_order.js:2004 msgid "Link" msgstr "Link" -#: common/models.py:3016 templates/js/translated/news.js:60 +#: common/models.py:3080 templates/js/translated/news.js:60 msgid "Published" msgstr "Közzétéve" -#: common/models.py:3018 templates/InvenTree/settings/plugin_settings.html:32 +#: common/models.py:3082 templates/InvenTree/settings/plugin_settings.html:32 #: templates/js/translated/news.js:56 templates/js/translated/plugin.js:103 msgid "Author" msgstr "Szerző" -#: common/models.py:3020 templates/js/translated/news.js:52 +#: common/models.py:3084 templates/js/translated/news.js:52 msgid "Summary" msgstr "Összefoglaló" -#: common/models.py:3023 +#: common/models.py:3087 msgid "Read" msgstr "Elolvasva" -#: common/models.py:3023 +#: common/models.py:3087 msgid "Was this news item read?" msgstr "Elolvasva?" -#: common/models.py:3040 company/models.py:159 part/models.py:1067 +#: common/models.py:3104 company/models.py:156 part/models.py:1128 #: report/templates/report/inventree_bill_of_materials_report.html:126 #: report/templates/report/inventree_bill_of_materials_report.html:148 #: report/templates/report/inventree_return_order_report.html:35 -#: stock/templates/stock/item_base.html:133 templates/503.html:31 +#: stock/templates/stock/item_base.html:130 templates/503.html:31 #: templates/hover_image.html:7 templates/hover_image.html:9 #: templates/modals.html:6 msgid "Image" msgstr "Kép" -#: common/models.py:3040 +#: common/models.py:3104 msgid "Image file" msgstr "Képfájl" -#: common/models.py:3052 common/models.py:3256 +#: common/models.py:3116 common/models.py:3317 msgid "Target model type for this image" -msgstr "" +msgstr "A képhez tartozó model típus" -#: common/models.py:3056 +#: common/models.py:3120 msgid "Target model ID for this image" -msgstr "" +msgstr "A képhez tartozó model azonosító" -#: common/models.py:3078 +#: common/models.py:3142 msgid "Custom Unit" -msgstr "" +msgstr "Egyedi mértékegység" -#: common/models.py:3099 +#: common/models.py:3160 msgid "Unit symbol must be unique" -msgstr "" +msgstr "A mértékegység szimbólumának egyedinek kell lennie" -#: common/models.py:3114 +#: common/models.py:3175 msgid "Unit name must be a valid identifier" msgstr "A mértékegységnek valós azonosítónak kell lennie" -#: common/models.py:3133 +#: common/models.py:3194 msgid "Unit name" msgstr "Egység neve" -#: common/models.py:3140 templates/InvenTree/settings/settings_staff_js.html:75 +#: common/models.py:3201 templates/InvenTree/settings/settings_staff_js.html:75 msgid "Symbol" msgstr "Szimbólum" -#: common/models.py:3141 +#: common/models.py:3202 msgid "Optional unit symbol" msgstr "Opcionális mértékegység szimbólum" -#: common/models.py:3147 templates/InvenTree/settings/settings_staff_js.html:71 +#: common/models.py:3208 templates/InvenTree/settings/settings_staff_js.html:71 msgid "Definition" msgstr "Definíció" -#: common/models.py:3148 +#: common/models.py:3209 msgid "Unit definition" msgstr "Mértékegység definíció" -#: common/models.py:3206 common/models.py:3263 stock/models.py:2558 -#: templates/js/translated/attachment.js:119 +#: common/models.py:3267 common/models.py:3324 stock/models.py:2674 +#: stock/serializers.py:244 templates/js/translated/attachment.js:119 #: templates/js/translated/attachment.js:345 msgid "Attachment" msgstr "Melléklet" -#: common/models.py:3218 +#: common/models.py:3279 msgid "Missing file" msgstr "Hiányzó fájl" -#: common/models.py:3219 +#: common/models.py:3280 msgid "Missing external link" msgstr "Hiányzó külső link" -#: common/models.py:3264 +#: common/models.py:3325 msgid "Select file to attach" msgstr "Válaszd ki a mellekelni kívánt fájlt" -#: common/models.py:3279 templates/js/translated/attachment.js:120 +#: common/models.py:3340 templates/js/translated/attachment.js:120 #: templates/js/translated/attachment.js:360 msgid "Comment" msgstr "Megjegyzés" -#: common/models.py:3280 +#: common/models.py:3341 msgid "Attachment comment" -msgstr "" +msgstr "Melléklet megjegyzés" -#: common/models.py:3296 +#: common/models.py:3357 msgid "Upload date" -msgstr "" +msgstr "Feltöltés dátuma" -#: common/models.py:3297 +#: common/models.py:3358 msgid "Date the file was uploaded" -msgstr "" +msgstr "A fájl feltöltésének dátuma" -#: common/models.py:3301 +#: common/models.py:3362 msgid "File size" msgstr "Fájl mérete" -#: common/models.py:3301 +#: common/models.py:3362 msgid "File size in bytes" msgstr "Fájlméret bájtban" -#: common/models.py:3339 common/serializers.py:562 +#: common/models.py:3400 common/serializers.py:609 msgid "Invalid model type specified for attachment" +msgstr "A melléklet model típusa érvénytelen" + +#: common/models.py:3409 plugin/models.py:43 users/models.py:100 +msgid "Key" +msgstr "Kulcs" + +#: common/models.py:3410 +msgid "Value that will be saved in the models database" +msgstr "A model adatbázisba tárolandó érték" + +#: common/models.py:3413 +msgid "Name of the state" +msgstr "Az állapot neve" + +#: common/models.py:3417 part/serializers.py:273 +msgid "Label" +msgstr "Címke" + +#: common/models.py:3418 +msgid "Label that will be displayed in the frontend" +msgstr "A felületen megjelenített címke" + +#: common/models.py:3424 +msgid "Color" +msgstr "Szín" + +#: common/models.py:3425 +msgid "Color that will be displayed in the frontend" +msgstr "A felöleten megjelenő szín" + +#: common/models.py:3428 +msgid "Logical Key" +msgstr "Logikai kulcs" + +#: common/models.py:3430 +msgid "State logical key that is equal to this custom state in business logic" +msgstr "Az állapot logikai kulcsa amely megegyezik az üzleti logika egyedi állapotával" + +#: common/models.py:3438 part/serializers.py:275 +msgid "Model" +msgstr "Model" + +#: common/models.py:3439 +msgid "Model this state is associated with" +msgstr "A Model amihez ez az állapot tartozik" + +#: common/models.py:3443 +msgid "Reference Status Set" +msgstr "Hivatkozott Állapot Készlet" + +#: common/models.py:3444 +msgid "Status set that is extended with this custom state" +msgstr "Az az Állapot készlet, melyet ez az egyedi állapot kibővít" + +#: common/models.py:3450 +msgid "Custom State" +msgstr "Egyedi Állapot" + +#: common/models.py:3451 +msgid "Custom States" +msgstr "Egyedi Állapotok" + +#: common/models.py:3466 +msgid "Model must be selected" +msgstr "Modelt választani kötelező" + +#: common/models.py:3469 +msgid "Key must be selected" +msgstr "Kulcsot választani kötelező" + +#: common/models.py:3472 +msgid "Logical key must be selected" +msgstr "Logikai kulcsot választani kötelező" + +#: common/models.py:3476 +msgid "Key must be different from logical key" +msgstr "A kulcs és a logikai kulcs nem lehet azonos" + +#: common/models.py:3480 +msgid "Reference status must be selected" +msgstr "Kötelező kiválasztani a bővítendő állapotot" + +#: common/models.py:3492 +msgid "Reference status set not found" +msgstr "A hivatkozott állapot nem található" + +#: common/models.py:3498 +msgid "Key must be different from the logical keys of the reference status" +msgstr "A kulcsnak eltérőnek kell lennie a hivatkozott állapotok logikai kulcsaitól" + +#: common/models.py:3504 +msgid "Logical key must be in the logical keys of the reference status" +msgstr "A logikai kulcsnak szerepelnie kell a hivatkozott állapotok logikai kulcsai közt" + +#: common/models.py:3519 +msgid "Barcode Scan" msgstr "" -#: common/notifications.py:314 +#: common/models.py:3523 importer/models.py:512 part/models.py:4009 +msgid "Data" +msgstr "Adat" + +#: common/models.py:3524 +msgid "Barcode data" +msgstr "" + +#: common/models.py:3535 +msgid "User who scanned the barcode" +msgstr "" + +#: common/models.py:3540 importer/models.py:60 +msgid "Timestamp" +msgstr "Időbélyeg" + +#: common/models.py:3541 +msgid "Date and time of the barcode scan" +msgstr "" + +#: common/models.py:3547 +msgid "URL endpoint which processed the barcode" +msgstr "" + +#: common/models.py:3554 order/models.py:1437 plugin/serializers.py:89 +msgid "Context" +msgstr "Kontextus" + +#: common/models.py:3555 +msgid "Context data for the barcode scan" +msgstr "" + +#: common/models.py:3562 +msgid "Response" +msgstr "" + +#: common/models.py:3563 +msgid "Response data from the barcode scan" +msgstr "" + +#: common/models.py:3569 report/templates/report/inventree_test_report.html:103 +#: stock/models.py:2660 +msgid "Result" +msgstr "Eredmény" + +#: common/models.py:3570 +msgid "Was the barcode scan successful?" +msgstr "" + +#: common/notifications.py:328 #, python-brace-format msgid "New {verbose_name}" msgstr "Új {verbose_name}" -#: common/notifications.py:316 +#: common/notifications.py:330 msgid "A new order has been created and assigned to you" msgstr "Egy új megrendelés létrehozva, és hozzád rendelve" -#: common/notifications.py:322 +#: common/notifications.py:336 #, python-brace-format msgid "{verbose_name} canceled" msgstr "{verbose_name} megszakítva" -#: common/notifications.py:324 +#: common/notifications.py:338 msgid "A order that is assigned to you was canceled" msgstr "Egy hozzád rendelt megrendelés megszakítva" -#: common/notifications.py:330 common/notifications.py:337 order/api.py:462 +#: common/notifications.py:344 common/notifications.py:351 order/api.py:440 msgid "Items Received" msgstr "Készlet érkezett" -#: common/notifications.py:332 +#: common/notifications.py:346 msgid "Items have been received against a purchase order" msgstr "Készlet érkezett egy beszerzési megrendeléshez" -#: common/notifications.py:339 +#: common/notifications.py:353 msgid "Items have been received against a return order" msgstr "Készlet érkezett vissza egy visszavétel miatt" -#: common/notifications.py:457 +#: common/notifications.py:475 msgid "Error raised by plugin" msgstr "Plugin hiba" -#: common/serializers.py:375 +#: common/serializers.py:423 msgid "Is Running" msgstr "Folyamatban" -#: common/serializers.py:381 +#: common/serializers.py:429 msgid "Pending Tasks" msgstr "Folyamatban lévő feladatok" -#: common/serializers.py:387 +#: common/serializers.py:435 msgid "Scheduled Tasks" msgstr "Ütemezett Feladatok" -#: common/serializers.py:393 +#: common/serializers.py:441 msgid "Failed Tasks" msgstr "Hibás feladatok" -#: common/serializers.py:408 +#: common/serializers.py:456 msgid "Task ID" msgstr "Feladat ID" -#: common/serializers.py:408 +#: common/serializers.py:456 msgid "Unique task ID" msgstr "Egyedi feladat ID" -#: common/serializers.py:410 +#: common/serializers.py:458 msgid "Lock" msgstr "Zárol" -#: common/serializers.py:410 +#: common/serializers.py:458 msgid "Lock time" msgstr "Zárolási idő" -#: common/serializers.py:412 +#: common/serializers.py:460 msgid "Task name" msgstr "Feladat neve" -#: common/serializers.py:414 +#: common/serializers.py:462 msgid "Function" msgstr "Funkció" -#: common/serializers.py:414 +#: common/serializers.py:462 msgid "Function name" msgstr "Funkció neve" -#: common/serializers.py:416 +#: common/serializers.py:464 msgid "Arguments" msgstr "Paraméterek" -#: common/serializers.py:416 +#: common/serializers.py:464 msgid "Task arguments" msgstr "Feladat paraméterei" -#: common/serializers.py:419 +#: common/serializers.py:467 msgid "Keyword Arguments" msgstr "Kulcsszó paraméterek" -#: common/serializers.py:419 +#: common/serializers.py:467 msgid "Task keyword arguments" msgstr "Feladat kulcsszó paraméterek" -#: common/serializers.py:529 +#: common/serializers.py:577 msgid "Filename" msgstr "Fájlnév" -#: common/serializers.py:536 report/api.py:100 report/serializers.py:53 +#: common/serializers.py:584 report/api.py:100 report/serializers.py:54 msgid "Model Type" msgstr "Modell típusa" -#: common/serializers.py:565 +#: common/serializers.py:612 msgid "User does not have permission to create or edit attachments for this model" -msgstr "" +msgstr "A felhasználónak nincs joga létrehozni vagy módosítani ehhez a modelhez tartozó mellékleteket" #: common/validators.py:35 msgid "No attachment model type provided" -msgstr "" +msgstr "A melléklethez nem tartozik model típus" #: common/validators.py:41 msgid "Invalid attachment model type" -msgstr "" +msgstr "Érvénytelen melléklet model típus" #: common/validators.py:82 msgid "Minimum places cannot be greater than maximum places" -msgstr "" +msgstr "A legkisebb helyiérték nem lehet nagyobb mint a legnagyobb helyiérték" #: common/validators.py:94 msgid "Maximum places cannot be less than minimum places" -msgstr "" +msgstr "A legnagyobb helyiérték nem lehet kisebb mint a legkisebb helyiérték" #: common/validators.py:105 msgid "An empty domain is not allowed." @@ -4117,15 +4296,15 @@ msgstr "Mezők egyeztetése" msgid "Match Items" msgstr "Tételek egyeztetése" -#: common/views.py:401 +#: common/views.py:397 msgid "Fields matching failed" msgstr "Mezők egyeztetése sikertelen" -#: common/views.py:464 +#: common/views.py:460 msgid "Parts imported" msgstr "Importált alkatrészek" -#: common/views.py:494 order/templates/order/order_wizard/match_fields.html:27 +#: common/views.py:490 order/templates/order/order_wizard/match_fields.html:27 #: order/templates/order/order_wizard/match_parts.html:19 #: order/templates/order/order_wizard/po_upload.html:49 #: part/templates/part/import_wizard/match_fields.html:27 @@ -4156,429 +4335,429 @@ msgstr "A saját alkatrész Aktív" msgid "Supplier is Active" msgstr "A Beszállító Aktív" -#: company/models.py:100 company/models.py:371 +#: company/models.py:97 company/models.py:368 #: company/templates/company/company_base.html:8 #: company/templates/company/company_base.html:12 stock/api.py:812 -#: templates/InvenTree/search.html:178 templates/js/translated/company.js:496 +#: templates/InvenTree/search.html:178 templates/js/translated/company.js:497 msgid "Company" msgstr "Cég" -#: company/models.py:101 company/views.py:51 +#: company/models.py:98 company/views.py:51 #: templates/js/translated/search.js:192 msgid "Companies" msgstr "Cégek" -#: company/models.py:117 +#: company/models.py:114 msgid "Company description" msgstr "Cég leírása" -#: company/models.py:118 +#: company/models.py:115 msgid "Description of the company" msgstr "A cég leírása" -#: company/models.py:123 company/templates/company/company_base.html:106 +#: company/models.py:120 company/templates/company/company_base.html:106 #: templates/InvenTree/settings/plugin_settings.html:54 -#: templates/js/translated/company.js:532 +#: templates/js/translated/company.js:533 msgid "Website" msgstr "Weboldal" -#: company/models.py:123 +#: company/models.py:120 msgid "Company website URL" msgstr "Cég weboldala" -#: company/models.py:128 +#: company/models.py:125 msgid "Phone number" msgstr "Telefonszám" -#: company/models.py:130 +#: company/models.py:127 msgid "Contact phone number" msgstr "Kapcsolattartó telefonszáma" -#: company/models.py:137 +#: company/models.py:134 msgid "Contact email address" msgstr "Kapcsolattartó email címe" -#: company/models.py:142 company/models.py:275 -#: company/templates/company/company_base.html:145 order/models.py:342 -#: order/templates/order/order_base.html:208 -#: order/templates/order/return_order_base.html:177 -#: order/templates/order/sales_order_base.html:221 +#: company/models.py:139 company/models.py:272 +#: company/templates/company/company_base.html:145 order/models.py:349 +#: order/templates/order/order_base.html:217 +#: order/templates/order/return_order_base.html:178 +#: order/templates/order/sales_order_base.html:222 msgid "Contact" msgstr "Névjegy" -#: company/models.py:144 +#: company/models.py:141 msgid "Point of contact" msgstr "Kapcsolattartó" -#: company/models.py:150 +#: company/models.py:147 msgid "Link to external company information" msgstr "Link a külső céginformációhoz" -#: company/models.py:163 +#: company/models.py:160 msgid "Is this company active?" msgstr "Ez a vállalat aktív?" -#: company/models.py:168 +#: company/models.py:165 msgid "Is customer" -msgstr "" +msgstr "Vevő" -#: company/models.py:169 +#: company/models.py:166 msgid "Do you sell items to this company?" msgstr "Értékesítesz alkatrészeket ennek a cégnek?" -#: company/models.py:174 +#: company/models.py:171 msgid "Is supplier" -msgstr "" +msgstr "Beszállító" -#: company/models.py:175 +#: company/models.py:172 msgid "Do you purchase items from this company?" msgstr "Vásárolsz alkatrészeket ettől a cégtől?" -#: company/models.py:180 +#: company/models.py:177 msgid "Is manufacturer" -msgstr "" +msgstr "Gyártó" -#: company/models.py:181 +#: company/models.py:178 msgid "Does this company manufacture parts?" msgstr "Gyárt ez a cég alkatrészeket?" -#: company/models.py:189 +#: company/models.py:186 msgid "Default currency used for this company" msgstr "Cég által használt alapértelmezett pénznem" -#: company/models.py:314 company/templates/company/company_base.html:124 -#: order/models.py:352 order/templates/order/order_base.html:215 -#: order/templates/order/return_order_base.html:184 -#: order/templates/order/sales_order_base.html:228 +#: company/models.py:311 company/templates/company/company_base.html:124 +#: order/models.py:359 order/templates/order/order_base.html:224 +#: order/templates/order/return_order_base.html:185 +#: order/templates/order/sales_order_base.html:229 msgid "Address" msgstr "Cím" -#: company/models.py:315 company/templates/company/sidebar.html:35 +#: company/models.py:312 company/templates/company/sidebar.html:35 msgid "Addresses" msgstr "Címek" -#: company/models.py:372 +#: company/models.py:369 msgid "Select company" msgstr "Cég kiválasztása" -#: company/models.py:377 +#: company/models.py:374 msgid "Address title" msgstr "Cím megnevezése" -#: company/models.py:378 +#: company/models.py:375 msgid "Title describing the address entry" msgstr "Címhez tartozó leírás, megnevezés" -#: company/models.py:384 +#: company/models.py:381 msgid "Primary address" msgstr "Elsődleges cím" -#: company/models.py:385 +#: company/models.py:382 msgid "Set as primary address" msgstr "Beállítás elsődleges címként" -#: company/models.py:390 templates/js/translated/company.js:914 -#: templates/js/translated/company.js:971 +#: company/models.py:387 templates/js/translated/company.js:915 +#: templates/js/translated/company.js:972 msgid "Line 1" msgstr "1. sor" -#: company/models.py:391 +#: company/models.py:388 msgid "Address line 1" msgstr "Cím első sora" -#: company/models.py:397 templates/js/translated/company.js:915 -#: templates/js/translated/company.js:977 +#: company/models.py:394 templates/js/translated/company.js:916 +#: templates/js/translated/company.js:978 msgid "Line 2" msgstr "2. sor" -#: company/models.py:398 +#: company/models.py:395 msgid "Address line 2" msgstr "Cím második sora" -#: company/models.py:404 company/models.py:405 -#: templates/js/translated/company.js:983 +#: company/models.py:401 company/models.py:402 +#: templates/js/translated/company.js:984 msgid "Postal code" msgstr "Irányítószám" -#: company/models.py:411 +#: company/models.py:408 msgid "City/Region" msgstr "Város/Régió" -#: company/models.py:412 +#: company/models.py:409 msgid "Postal code city/region" msgstr "Irányítószám város/régió" -#: company/models.py:418 +#: company/models.py:415 msgid "State/Province" msgstr "Állam/Megye" -#: company/models.py:419 +#: company/models.py:416 msgid "State or province" msgstr "Állam vagy megye" -#: company/models.py:425 templates/js/translated/company.js:1001 +#: company/models.py:422 templates/js/translated/company.js:1002 msgid "Country" msgstr "Ország" -#: company/models.py:426 +#: company/models.py:423 msgid "Address country" msgstr "Cím országa" -#: company/models.py:432 +#: company/models.py:429 msgid "Courier shipping notes" msgstr "Megjegyzés a futárnak" -#: company/models.py:433 +#: company/models.py:430 msgid "Notes for shipping courier" msgstr "Futárnak szóló megjegyzések" -#: company/models.py:439 +#: company/models.py:436 msgid "Internal shipping notes" msgstr "Belső szállítási megjegyzések" -#: company/models.py:440 +#: company/models.py:437 msgid "Shipping notes for internal use" msgstr "Szállítási megjegyzések belső használatra" -#: company/models.py:447 +#: company/models.py:444 msgid "Link to address information (external)" msgstr "Link a címinformációkhoz (külső)" -#: company/models.py:470 company/models.py:587 company/models.py:811 +#: company/models.py:467 company/models.py:584 company/models.py:808 #: company/templates/company/manufacturer_part.html:7 #: company/templates/company/manufacturer_part.html:24 -#: stock/templates/stock/item_base.html:217 +#: stock/templates/stock/item_base.html:214 msgid "Manufacturer Part" msgstr "Gyártói alkatrész" -#: company/models.py:487 company/models.py:779 stock/models.py:787 -#: stock/serializers.py:445 stock/templates/stock/item_base.html:142 +#: company/models.py:484 company/models.py:776 stock/models.py:864 +#: stock/serializers.py:455 stock/templates/stock/item_base.html:139 #: templates/js/translated/bom.js:622 msgid "Base Part" msgstr "Kiindulási alkatrész" -#: company/models.py:489 company/models.py:781 +#: company/models.py:486 company/models.py:778 msgid "Select part" msgstr "Válassz alkatrészt" -#: company/models.py:498 company/templates/company/company_base.html:82 +#: company/models.py:495 company/templates/company/company_base.html:82 #: company/templates/company/manufacturer_part.html:90 -#: company/templates/company/supplier_part.html:145 part/serializers.py:554 -#: stock/templates/stock/item_base.html:207 -#: templates/js/translated/company.js:507 -#: templates/js/translated/company.js:1118 -#: templates/js/translated/company.js:1296 -#: templates/js/translated/company.js:1611 +#: company/templates/company/supplier_part.html:146 part/serializers.py:598 +#: stock/templates/stock/item_base.html:204 +#: templates/js/translated/company.js:508 +#: templates/js/translated/company.js:1119 +#: templates/js/translated/company.js:1297 +#: templates/js/translated/company.js:1612 #: templates/js/translated/table_filters.js:812 msgid "Manufacturer" msgstr "Gyártó" -#: company/models.py:499 +#: company/models.py:496 msgid "Select manufacturer" msgstr "Gyártó kiválasztása" -#: company/models.py:505 company/templates/company/manufacturer_part.html:101 -#: company/templates/company/supplier_part.html:153 order/serializers.py:556 -#: part/serializers.py:564 templates/js/translated/company.js:351 -#: templates/js/translated/company.js:1117 -#: templates/js/translated/company.js:1312 -#: templates/js/translated/company.js:1630 templates/js/translated/part.js:1807 -#: templates/js/translated/purchase_order.js:1921 -#: templates/js/translated/purchase_order.js:2123 +#: company/models.py:502 company/templates/company/manufacturer_part.html:101 +#: company/templates/company/supplier_part.html:154 order/serializers.py:641 +#: part/serializers.py:608 templates/js/translated/company.js:352 +#: templates/js/translated/company.js:1118 +#: templates/js/translated/company.js:1313 +#: templates/js/translated/company.js:1631 templates/js/translated/part.js:1807 +#: templates/js/translated/purchase_order.js:1905 +#: templates/js/translated/purchase_order.js:2107 msgid "MPN" msgstr "MPN (Gyártói cikkszám)" -#: company/models.py:513 +#: company/models.py:510 msgid "URL for external manufacturer part link" msgstr "URL link a gyártói alkatrészhez" -#: company/models.py:522 +#: company/models.py:519 msgid "Manufacturer part description" msgstr "Gyártói alkatrész leírása" -#: company/models.py:575 +#: company/models.py:572 msgid "Manufacturer Part Parameter" -msgstr "" +msgstr "Gyártói Cikkszám" -#: company/models.py:594 +#: company/models.py:591 msgid "Parameter name" msgstr "Paraméter neve" -#: company/models.py:600 report/templates/report/inventree_test_report.html:104 -#: stock/models.py:2550 templates/js/translated/company.js:1166 -#: templates/js/translated/company.js:1419 templates/js/translated/part.js:1499 +#: company/models.py:597 report/templates/report/inventree_test_report.html:104 +#: stock/models.py:2666 templates/js/translated/company.js:1167 +#: templates/js/translated/company.js:1420 templates/js/translated/part.js:1499 #: templates/js/translated/stock.js:1607 msgid "Value" msgstr "Érték" -#: company/models.py:601 +#: company/models.py:598 msgid "Parameter value" msgstr "Paraméter értéke" -#: company/models.py:608 company/templates/company/supplier_part.html:168 -#: part/admin.py:57 part/models.py:1147 part/models.py:3771 -#: part/templates/part/part_base.html:293 -#: templates/js/translated/company.js:1425 templates/js/translated/part.js:1518 +#: company/models.py:605 company/templates/company/supplier_part.html:169 +#: part/admin.py:57 part/models.py:1208 part/models.py:3822 +#: part/templates/part/part_base.html:301 +#: templates/js/translated/company.js:1426 templates/js/translated/part.js:1518 #: templates/js/translated/part.js:1622 templates/js/translated/part.js:2376 msgid "Units" msgstr "Mértékegység" -#: company/models.py:609 +#: company/models.py:606 msgid "Parameter units" msgstr "Paraméter mértékegység" -#: company/models.py:662 company/templates/company/supplier_part.html:7 -#: company/templates/company/supplier_part.html:24 order/api.py:442 -#: order/serializers.py:491 stock/models.py:798 -#: stock/templates/stock/item_base.html:233 -#: templates/js/translated/build.js:1052 -#: templates/js/translated/company.js:1600 -#: templates/js/translated/purchase_order.js:752 -#: templates/js/translated/stock.js:2365 +#: company/models.py:659 company/templates/company/supplier_part.html:8 +#: company/templates/company/supplier_part.html:25 order/api.py:392 +#: order/serializers.py:576 stock/models.py:875 +#: stock/templates/stock/item_base.html:230 +#: templates/js/translated/build.js:1055 +#: templates/js/translated/company.js:1601 +#: templates/js/translated/purchase_order.js:735 +#: templates/js/translated/stock.js:2366 msgid "Supplier Part" msgstr "Beszállítói alkatrész" -#: company/models.py:719 +#: company/models.py:716 msgid "Pack units must be compatible with the base part units" msgstr "A csomagolási egységnek kompatibilisnek kell lennie az alkatrész mértékegységgel" -#: company/models.py:726 +#: company/models.py:723 msgid "Pack units must be greater than zero" msgstr "Csomagolási mennyiségnek nullánál többnek kell lennie" -#: company/models.py:740 +#: company/models.py:737 msgid "Linked manufacturer part must reference the same base part" msgstr "Kapcsolódó gyártói alkatrésznek ugyanarra a kiindulási alkatrészre kell hivatkoznia" -#: company/models.py:789 company/templates/company/company_base.html:87 -#: company/templates/company/supplier_part.html:129 order/models.py:491 -#: order/templates/order/order_base.html:141 part/bom.py:280 part/bom.py:318 -#: part/serializers.py:538 plugin/builtin/suppliers/digikey.py:25 +#: company/models.py:786 company/templates/company/company_base.html:87 +#: company/templates/company/supplier_part.html:130 order/models.py:503 +#: order/templates/order/order_base.html:150 part/bom.py:279 part/bom.py:314 +#: part/serializers.py:582 plugin/builtin/suppliers/digikey.py:25 #: plugin/builtin/suppliers/lcsc.py:26 plugin/builtin/suppliers/mouser.py:24 -#: plugin/builtin/suppliers/tme.py:26 stock/templates/stock/item_base.html:224 +#: plugin/builtin/suppliers/tme.py:26 stock/templates/stock/item_base.html:221 #: templates/email/overdue_purchase_order.html:16 -#: templates/js/translated/company.js:350 -#: templates/js/translated/company.js:511 -#: templates/js/translated/company.js:1584 templates/js/translated/part.js:1775 +#: templates/js/translated/company.js:351 +#: templates/js/translated/company.js:512 +#: templates/js/translated/company.js:1585 templates/js/translated/part.js:1775 #: templates/js/translated/pricing.js:498 -#: templates/js/translated/purchase_order.js:1759 +#: templates/js/translated/purchase_order.js:1743 #: templates/js/translated/table_filters.js:816 msgid "Supplier" msgstr "Beszállító" -#: company/models.py:790 +#: company/models.py:787 msgid "Select supplier" msgstr "Beszállító kiválasztása" -#: company/models.py:796 part/serializers.py:549 +#: company/models.py:793 part/serializers.py:593 msgid "Supplier stock keeping unit" msgstr "Beszállítói cikkszám" -#: company/models.py:802 +#: company/models.py:799 msgid "Is this supplier part active?" msgstr "Ez a szállítói termék aktív?" -#: company/models.py:812 +#: company/models.py:809 msgid "Select manufacturer part" msgstr "Gyártói alkatrész kiválasztása" -#: company/models.py:819 +#: company/models.py:816 msgid "URL for external supplier part link" msgstr "URL link a beszállítói alkatrészhez" -#: company/models.py:828 +#: company/models.py:825 msgid "Supplier part description" msgstr "Beszállítói alkatrész leírása" -#: company/models.py:835 company/templates/company/supplier_part.html:187 -#: order/serializers.py:698 part/admin.py:415 part/models.py:4288 +#: company/models.py:832 company/templates/company/supplier_part.html:188 +#: order/serializers.py:783 part/admin.py:415 part/models.py:4345 #: part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_bill_of_materials_report.html:140 #: report/templates/report/inventree_purchase_order_report.html:32 #: report/templates/report/inventree_return_order_report.html:27 #: report/templates/report/inventree_sales_order_report.html:32 #: report/templates/report/inventree_stock_location_report.html:105 -#: stock/serializers.py:776 templates/js/translated/purchase_order.js:1185 -#: templates/js/translated/purchase_order.js:1344 +#: stock/serializers.py:807 templates/js/translated/purchase_order.js:1168 +#: templates/js/translated/purchase_order.js:1327 msgid "Note" msgstr "Megjegyzés" -#: company/models.py:844 part/models.py:2117 +#: company/models.py:841 part/models.py:2177 msgid "base cost" msgstr "alap költség" -#: company/models.py:845 part/models.py:2118 +#: company/models.py:842 part/models.py:2178 msgid "Minimum charge (e.g. stocking fee)" msgstr "Minimális díj (pl. tárolási díj)" -#: company/models.py:853 +#: company/models.py:850 msgid "Part packaging" msgstr "Alkatrész csomagolás" -#: company/models.py:858 templates/js/translated/company.js:1651 +#: company/models.py:855 templates/js/translated/company.js:1652 #: templates/js/translated/part.js:1828 templates/js/translated/part.js:1884 -#: templates/js/translated/purchase_order.js:311 -#: templates/js/translated/purchase_order.js:841 -#: templates/js/translated/purchase_order.js:1103 -#: templates/js/translated/purchase_order.js:2154 -#: templates/js/translated/purchase_order.js:2171 +#: templates/js/translated/purchase_order.js:294 +#: templates/js/translated/purchase_order.js:824 +#: templates/js/translated/purchase_order.js:1086 +#: templates/js/translated/purchase_order.js:2138 +#: templates/js/translated/purchase_order.js:2155 msgid "Pack Quantity" msgstr "Csomagolási mennyiség" -#: company/models.py:860 +#: company/models.py:857 msgid "Total quantity supplied in a single pack. Leave empty for single items." msgstr "Egy csomagban kiszállítható mennyiség, hagyd üresen az egyedi tételeknél." -#: company/models.py:879 part/models.py:2124 +#: company/models.py:876 part/models.py:2184 msgid "multiple" msgstr "többszörös" -#: company/models.py:880 +#: company/models.py:877 msgid "Order multiple" msgstr "Többszörös rendelés" -#: company/models.py:892 +#: company/models.py:889 msgid "Quantity available from supplier" msgstr "Beszállítónál elérhető mennyiség" -#: company/models.py:898 +#: company/models.py:895 msgid "Availability Updated" msgstr "Elérhetőség frissítve" -#: company/models.py:899 +#: company/models.py:896 msgid "Date of last update of availability data" msgstr "Utolsó elérhetőségi adat frissítés" -#: company/models.py:1027 +#: company/models.py:1024 msgid "Supplier Price Break" -msgstr "" +msgstr "Beszállítói Ár Kedvezmény" -#: company/serializers.py:174 +#: company/serializers.py:178 msgid "Default currency used for this supplier" msgstr "Beszállító által használt alapértelmezett pénznem" -#: company/serializers.py:210 +#: company/serializers.py:214 msgid "Company Name" -msgstr "" +msgstr "Cégnév" -#: company/serializers.py:393 part/admin.py:126 part/serializers.py:898 -#: part/templates/part/part_base.html:197 -#: templates/js/translated/company.js:1689 +#: company/serializers.py:397 part/admin.py:126 part/serializers.py:950 +#: part/templates/part/part_base.html:198 stock/serializers.py:474 +#: templates/js/translated/company.js:1690 #: templates/js/translated/table_filters.js:362 msgid "In Stock" msgstr "Készleten" #: company/templates/company/company_base.html:16 -#: part/templates/part/part_base.html:146 -#: templates/js/translated/company.js:1287 -#: templates/js/translated/company.js:1575 -#: templates/js/translated/model_renderers.js:313 +#: part/templates/part/part_base.html:147 +#: templates/js/translated/company.js:1288 +#: templates/js/translated/company.js:1576 +#: templates/js/translated/model_renderers.js:316 #: templates/js/translated/part.js:817 templates/js/translated/part.js:1225 msgid "Inactive" msgstr "Inaktív" #: company/templates/company/company_base.html:27 -#: templates/js/translated/purchase_order.js:242 +#: templates/js/translated/purchase_order.js:224 msgid "Create Purchase Order" msgstr "Beszerzési rendelés létrehozása" @@ -4591,7 +4770,7 @@ msgid "Edit company information" msgstr "Cég adatainak szerkesztése" #: company/templates/company/company_base.html:39 -#: templates/js/translated/company.js:445 +#: templates/js/translated/company.js:446 msgid "Edit Company" msgstr "Cég szerkesztése" @@ -4606,11 +4785,12 @@ msgstr "Cég törlése" #: company/templates/company/company_base.html:53 #: company/templates/company/manufacturer_part.html:51 -#: company/templates/company/supplier_part.html:83 +#: company/templates/company/supplier_part.html:84 #: part/templates/part/part_thumb.html:20 #: report/templates/report/inventree_build_order_report.html:98 #: report/templates/report/inventree_purchase_order_report.html:40 #: report/templates/report/inventree_sales_order_report.html:40 +#: report/templates/report/inventree_sales_order_shipment_report.html:37 #: report/templates/report/inventree_test_report.html:84 #: report/templates/report/inventree_test_report.html:162 msgid "Part image" @@ -4631,16 +4811,16 @@ msgstr "Kép letöltése URL-ről" msgid "Delete image" msgstr "Kép törlése" -#: company/templates/company/company_base.html:92 order/models.py:990 -#: order/models.py:2147 order/templates/order/return_order_base.html:134 -#: order/templates/order/sales_order_base.html:151 stock/models.py:840 -#: stock/models.py:841 stock/serializers.py:1329 -#: stock/templates/stock/item_base.html:405 +#: company/templates/company/company_base.html:92 order/models.py:1017 +#: order/models.py:2186 order/templates/order/return_order_base.html:135 +#: order/templates/order/sales_order_base.html:152 stock/models.py:917 +#: stock/models.py:918 stock/serializers.py:1360 +#: stock/templates/stock/item_base.html:402 #: templates/email/overdue_sales_order.html:16 -#: templates/js/translated/company.js:503 +#: templates/js/translated/company.js:504 #: templates/js/translated/return_order.js:295 -#: templates/js/translated/sales_order.js:820 -#: templates/js/translated/stock.js:3043 +#: templates/js/translated/sales_order.js:779 +#: templates/js/translated/stock.js:3044 #: templates/js/translated/table_filters.js:820 msgid "Customer" msgstr "Vevő" @@ -4654,7 +4834,7 @@ msgid "Phone" msgstr "Telefonszám" #: company/templates/company/company_base.html:211 -#: part/templates/part/part_base.html:536 +#: part/templates/part/part_base.html:544 msgid "Remove Image" msgstr "Kép eltávolítása" @@ -4663,19 +4843,19 @@ msgid "Remove associated image from this company" msgstr "Céghez rendelt kép eltávolítása" #: company/templates/company/company_base.html:214 -#: part/templates/part/part_base.html:539 +#: part/templates/part/part_base.html:547 #: templates/InvenTree/settings/user.html:88 #: templates/InvenTree/settings/user_sso.html:43 msgid "Remove" msgstr "Törlés" #: company/templates/company/company_base.html:243 -#: part/templates/part/part_base.html:568 +#: part/templates/part/part_base.html:576 msgid "Upload Image" msgstr "Kép feltöltése" #: company/templates/company/company_base.html:258 -#: part/templates/part/part_base.html:622 +#: part/templates/part/part_base.html:630 msgid "Download Image" msgstr "Kép letöltése" @@ -4715,7 +4895,7 @@ msgstr "Beszállítói készlet" #: company/templates/company/detail.html:75 #: company/templates/company/sidebar.html:12 #: company/templates/company/supplier_part_sidebar.html:7 -#: order/templates/order/order_base.html:13 +#: order/templates/order/order_base.html:14 #: order/templates/order/purchase_orders.html:8 #: order/templates/order/purchase_orders.html:12 #: part/templates/part/detail.html:122 part/templates/part/part_sidebar.html:35 @@ -4738,7 +4918,7 @@ msgstr "Új beszerzési rendelés" #: company/templates/company/detail.html:101 #: company/templates/company/sidebar.html:21 -#: order/templates/order/sales_order_base.html:13 +#: order/templates/order/sales_order_base.html:14 #: order/templates/order/sales_orders.html:8 #: order/templates/order/sales_orders.html:15 #: part/templates/part/detail.html:143 part/templates/part/part_sidebar.html:39 @@ -4765,7 +4945,7 @@ msgstr "Hozzárendelt készlet" #: company/templates/company/detail.html:142 #: company/templates/company/sidebar.html:29 -#: order/templates/order/return_order_base.html:13 +#: order/templates/order/return_order_base.html:14 #: order/templates/order/return_orders.html:8 #: order/templates/order/return_orders.html:15 #: templates/InvenTree/settings/sidebar.html:61 @@ -4812,24 +4992,24 @@ msgid "Manufacturers" msgstr "Gyártók" #: company/templates/company/manufacturer_part.html:35 -#: company/templates/company/supplier_part.html:227 -#: part/templates/part/detail.html:125 part/templates/part/part_base.html:83 +#: company/templates/company/supplier_part.html:228 +#: part/templates/part/detail.html:125 part/templates/part/part_base.html:84 msgid "Order part" msgstr "Alkatrész rendelés" #: company/templates/company/manufacturer_part.html:39 -#: templates/js/translated/company.js:1343 +#: templates/js/translated/company.js:1344 msgid "Edit manufacturer part" msgstr "Gyártói alkatrész szerkesztése" #: company/templates/company/manufacturer_part.html:43 -#: templates/js/translated/company.js:1344 +#: templates/js/translated/company.js:1345 msgid "Delete manufacturer part" msgstr "Gyártói alkatrész törlése" #: company/templates/company/manufacturer_part.html:65 -#: company/templates/company/supplier_part.html:97 order/api.py:448 -#: order/serializers.py:564 +#: company/templates/company/supplier_part.html:98 order/api.py:411 +#: order/serializers.py:649 msgid "Internal Part" msgstr "Belső alkatrész" @@ -4838,8 +5018,8 @@ msgid "No manufacturer information available" msgstr "Nincs elérhető gyártói információ" #: company/templates/company/manufacturer_part.html:119 -#: company/templates/company/supplier_part.html:15 company/views.py:31 -#: part/admin.py:122 part/serializers.py:904 +#: company/templates/company/supplier_part.html:16 company/views.py:31 +#: part/admin.py:122 part/serializers.py:956 #: part/templates/part/part_sidebar.html:33 templates/InvenTree/search.html:190 #: templates/navbar.html:48 msgid "Suppliers" @@ -4861,7 +5041,7 @@ msgstr "Új paraméter" #: company/templates/company/manufacturer_part.html:177 msgid "Manufacturer Part Notes" -msgstr "" +msgstr "Gyártói Cikk Megjegyzés" #: company/templates/company/manufacturer_part.html:225 #: templates/js/translated/part.js:1429 @@ -4888,112 +5068,113 @@ msgstr "Hozzárendelt készlet tételek" msgid "Contacts" msgstr "Névjegyek" -#: company/templates/company/supplier_part.html:50 -#: templates/js/translated/company.js:1526 +#: company/templates/company/supplier_part.html:51 +#: templates/js/translated/company.js:1527 msgid "Supplier part actions" msgstr "Beszállítói alkatrész műveletek" -#: company/templates/company/supplier_part.html:55 #: company/templates/company/supplier_part.html:56 -#: company/templates/company/supplier_part.html:228 +#: company/templates/company/supplier_part.html:57 +#: company/templates/company/supplier_part.html:229 #: part/templates/part/detail.html:126 msgid "Order Part" msgstr "Alkatrész rendelése" -#: company/templates/company/supplier_part.html:60 #: company/templates/company/supplier_part.html:61 +#: company/templates/company/supplier_part.html:62 msgid "Update Availability" msgstr "Elérhetőség frissítése" -#: company/templates/company/supplier_part.html:63 #: company/templates/company/supplier_part.html:64 -#: templates/js/translated/company.js:294 +#: company/templates/company/supplier_part.html:65 +#: templates/js/translated/company.js:295 msgid "Edit Supplier Part" msgstr "Beszállítói alkatrész szerkesztése" -#: company/templates/company/supplier_part.html:68 #: company/templates/company/supplier_part.html:69 -#: templates/js/translated/company.js:269 +#: company/templates/company/supplier_part.html:70 +#: templates/js/translated/company.js:270 msgid "Duplicate Supplier Part" msgstr "Beszállítói alkatrész másolása" -#: company/templates/company/supplier_part.html:73 +#: company/templates/company/supplier_part.html:74 msgid "Delete Supplier Part" msgstr "Beszállítói alkatrész törlése" -#: company/templates/company/supplier_part.html:74 +#: company/templates/company/supplier_part.html:75 msgid "Delete Supplier Part" msgstr "Beszállítói alkatrész törlése" -#: company/templates/company/supplier_part.html:133 +#: company/templates/company/supplier_part.html:134 +#: order/templates/order/order_base.html:155 msgid "No supplier information available" msgstr "Nincs elérhető beszállítói információ" -#: company/templates/company/supplier_part.html:139 order/serializers.py:553 -#: part/bom.py:287 part/bom.py:319 part/serializers.py:548 -#: templates/js/translated/company.js:349 templates/js/translated/part.js:1793 +#: company/templates/company/supplier_part.html:140 order/serializers.py:638 +#: part/bom.py:286 part/bom.py:315 part/serializers.py:592 +#: templates/js/translated/company.js:350 templates/js/translated/part.js:1793 #: templates/js/translated/pricing.js:510 -#: templates/js/translated/purchase_order.js:1920 -#: templates/js/translated/purchase_order.js:2098 +#: templates/js/translated/purchase_order.js:1904 +#: templates/js/translated/purchase_order.js:2082 msgid "SKU" msgstr "SKU (leltári azonosító)" -#: company/templates/company/supplier_part.html:206 +#: company/templates/company/supplier_part.html:207 msgid "Supplier Part Stock" msgstr "Beszállítói készlet" -#: company/templates/company/supplier_part.html:209 -#: part/templates/part/detail.html:24 stock/templates/stock/location.html:204 +#: company/templates/company/supplier_part.html:210 +#: part/templates/part/detail.html:24 stock/templates/stock/location.html:205 msgid "Create new stock item" msgstr "Új készlet tétel létrehozása" -#: company/templates/company/supplier_part.html:210 -#: part/templates/part/detail.html:25 stock/templates/stock/location.html:205 +#: company/templates/company/supplier_part.html:211 +#: part/templates/part/detail.html:25 stock/templates/stock/location.html:206 #: templates/js/translated/stock.js:543 msgid "New Stock Item" msgstr "Új készlet tétel" -#: company/templates/company/supplier_part.html:223 +#: company/templates/company/supplier_part.html:224 msgid "Supplier Part Orders" msgstr "Beszállítói alkatrész rendelések" -#: company/templates/company/supplier_part.html:246 +#: company/templates/company/supplier_part.html:247 msgid "Pricing Information" msgstr "Árinformációk" -#: company/templates/company/supplier_part.html:251 -#: templates/js/translated/company.js:398 +#: company/templates/company/supplier_part.html:252 +#: templates/js/translated/company.js:399 #: templates/js/translated/pricing.js:684 msgid "Add Price Break" msgstr "Ársáv hozzáadása" -#: company/templates/company/supplier_part.html:270 +#: company/templates/company/supplier_part.html:271 msgid "Supplier Part Notes" -msgstr "" +msgstr "Szállítói Cikk Megjegyzés" -#: company/templates/company/supplier_part.html:305 +#: company/templates/company/supplier_part.html:306 msgid "Supplier Part QR Code" msgstr "Beszállítói alkatrész QR kód" -#: company/templates/company/supplier_part.html:316 +#: company/templates/company/supplier_part.html:317 msgid "Link Barcode to Supplier Part" msgstr "Vonalkód hozzárendelése a beszállítói alkatrészhez" -#: company/templates/company/supplier_part.html:388 +#: company/templates/company/supplier_part.html:389 msgid "Update Part Availability" msgstr "Alkatrész elérhetőség frissítése" #: company/templates/company/supplier_part_sidebar.html:5 -#: part/serializers.py:902 part/stocktake.py:223 +#: part/serializers.py:954 part/stocktake.py:223 #: part/templates/part/category.html:180 #: part/templates/part/category_sidebar.html:17 stock/admin.py:68 -#: stock/serializers.py:1014 stock/serializers.py:1192 -#: stock/templates/stock/location.html:167 -#: stock/templates/stock/location.html:188 -#: stock/templates/stock/location.html:200 +#: stock/serializers.py:1045 stock/serializers.py:1223 +#: stock/templates/stock/location.html:168 +#: stock/templates/stock/location.html:189 +#: stock/templates/stock/location.html:201 #: stock/templates/stock/location_sidebar.html:7 #: templates/InvenTree/search.html:155 templates/js/translated/part.js:1067 -#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2850 +#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2851 #: users/models.py:206 msgid "Stock Items" msgstr "Készlet tételek" @@ -5023,232 +5204,232 @@ msgstr "Új vevő" msgid "New Company" msgstr "Új cég" -#: generic/states/tests.py:18 order/status_codes.py:13 +#: generic/states/fields.py:118 +msgid "Custom status key" +msgstr "Saját Állapot Kulcs" + +#: generic/states/fields.py:119 +msgid "Additional status information for this item" +msgstr "További állapot információk erről a tételről" + +#: generic/states/tests.py:22 order/status_codes.py:13 msgid "Placed" msgstr "Kiküldve" -#: importer/mixins.py:263 +#: importer/mixins.py:261 msgid "Invalid export format" -msgstr "" +msgstr "Hibás export formátum" -#: importer/models.py:59 -msgid "Timestamp" -msgstr "" - -#: importer/models.py:64 +#: importer/models.py:65 msgid "Data file to import" -msgstr "" +msgstr "Importálandó adatfájl" -#: importer/models.py:73 templates/js/translated/tables.js:558 +#: importer/models.py:74 templates/js/translated/tables.js:558 msgid "Columns" msgstr "Oszlopok" -#: importer/models.py:84 +#: importer/models.py:85 msgid "Import status" -msgstr "" +msgstr "Betöltés állapota" -#: importer/models.py:94 +#: importer/models.py:95 msgid "Field Defaults" -msgstr "" +msgstr "Mező Alapértelmezett Érték" -#: importer/models.py:101 +#: importer/models.py:102 msgid "Field Overrides" -msgstr "" +msgstr "Mező Felülbírálás" -#: importer/models.py:108 +#: importer/models.py:109 msgid "Field Filters" -msgstr "" +msgstr "Mező Szűrők" -#: importer/models.py:230 +#: importer/models.py:239 msgid "Some required fields have not been mapped" -msgstr "" +msgstr "Néhány kötelező mező nem került hozzárendelésre" -#: importer/models.py:387 +#: importer/models.py:396 msgid "Column is already mapped to a database field" -msgstr "" - -#: importer/models.py:392 -msgid "Field is already mapped to a data column" -msgstr "" +msgstr "Oszlop már adatbázis mezőhöz lett rendelve" #: importer/models.py:401 +msgid "Field is already mapped to a data column" +msgstr "Adatbázis mező már adatfájl oszlophoz lett rendelve" + +#: importer/models.py:410 msgid "Column mapping must be linked to a valid import session" -msgstr "" +msgstr "Az oszlop összerendelésnek egy helyes importálási művelethez kell kapcsolódnia" -#: importer/models.py:406 +#: importer/models.py:415 msgid "Column does not exist in the data file" -msgstr "" +msgstr "Az Oszlop nem létezik ebben a fájlban" -#: importer/models.py:413 +#: importer/models.py:422 msgid "Field does not exist in the target model" -msgstr "" - -#: importer/models.py:417 -msgid "Selected field is read-only" -msgstr "" - -#: importer/models.py:422 importer/models.py:493 -msgid "Import Session" -msgstr "" +msgstr "A mező nem létezik a cél adatszerkezetben" #: importer/models.py:426 +msgid "Selected field is read-only" +msgstr "Kijelölt mező csak olvasható" + +#: importer/models.py:431 importer/models.py:502 +msgid "Import Session" +msgstr "Importálási művelet" + +#: importer/models.py:435 msgid "Field" -msgstr "" +msgstr "Mező" -#: importer/models.py:428 +#: importer/models.py:437 msgid "Column" -msgstr "" +msgstr "Oszlop" -#: importer/models.py:497 +#: importer/models.py:506 msgid "Row Index" -msgstr "" +msgstr "Sor száma" -#: importer/models.py:500 +#: importer/models.py:509 msgid "Original row data" -msgstr "" +msgstr "Eredeti sor adat" -#: importer/models.py:503 part/models.py:3951 -msgid "Data" -msgstr "Adat" - -#: importer/models.py:505 machine/models.py:110 +#: importer/models.py:514 machine/models.py:110 msgid "Errors" msgstr "Hibák" -#: importer/models.py:507 part/api.py:873 +#: importer/models.py:516 part/api.py:857 msgid "Valid" msgstr "Érvényes" #: importer/operations.py:28 importer/operations.py:49 msgid "Unsupported data file format" -msgstr "" +msgstr "Nem támogatott adatfájl formátum" #: importer/operations.py:40 msgid "Failed to open data file" -msgstr "" +msgstr "Adatfájl megnyitása sikertelen" #: importer/operations.py:51 msgid "Invalid data file dimensions" -msgstr "" +msgstr "Az adatállomány méretei - szélessége nem megfelelő" #: importer/serializers.py:91 msgid "Invalid field defaults" -msgstr "" +msgstr "Érvénytelen mező alapértelmezések" #: importer/serializers.py:104 msgid "Invalid field overrides" -msgstr "" +msgstr "Érvénytelen mező felülbírálások" #: importer/serializers.py:117 msgid "Invalid field filters" -msgstr "" +msgstr "Érvénytelen mező szűrések" #: importer/serializers.py:178 msgid "Rows" -msgstr "" +msgstr "Sorok" #: importer/serializers.py:179 msgid "List of row IDs to accept" -msgstr "" +msgstr "Az elfogadható azonosítók listája" #: importer/serializers.py:192 msgid "No rows provided" -msgstr "" +msgstr "Nincs sor megadva" #: importer/serializers.py:196 msgid "Row does not belong to this session" -msgstr "" +msgstr "A sor nem az aktuális művelethez kapcsolódik" #: importer/serializers.py:199 msgid "Row contains invalid data" -msgstr "" +msgstr "A Sor érvénytelen adatot tartalmaz" #: importer/serializers.py:202 msgid "Row has already been completed" -msgstr "" - -#: importer/status_codes.py:11 -msgid "Initializing" -msgstr "" - -#: importer/status_codes.py:12 -msgid "Mapping Columns" -msgstr "" +msgstr "A sor már be lett fejezve" #: importer/status_codes.py:13 -msgid "Importing Data" -msgstr "" +msgid "Initializing" +msgstr "Előkészítés" -#: importer/status_codes.py:16 +#: importer/status_codes.py:18 +msgid "Mapping Columns" +msgstr "Oszlopok összerendelése" + +#: importer/status_codes.py:21 +msgid "Importing Data" +msgstr "Adatok importálása" + +#: importer/status_codes.py:24 msgid "Processing Data" -msgstr "" +msgstr "Adatok feldolgozása" #: importer/validators.py:21 msgid "Data file exceeds maximum size limit" -msgstr "" +msgstr "Adatfájl meghaladja a maximális méretet" #: importer/validators.py:26 msgid "Data file contains no headers" -msgstr "" +msgstr "Adatfájlból hiányzik a fejléc" #: importer/validators.py:29 msgid "Data file contains too many columns" -msgstr "" +msgstr "Túl sok oszlop az adatfájlban" #: importer/validators.py:32 msgid "Data file contains too many rows" -msgstr "" +msgstr "Túl sok sor az adatfájlban" #: importer/validators.py:53 msgid "Value must be a valid dictionary object" -msgstr "" +msgstr "Az értéknek a érvényes szótár elemnek kell lennie" -#: machine/machine_types/label_printer.py:215 +#: machine/machine_types/label_printer.py:216 msgid "Copies" msgstr "Másolatok" -#: machine/machine_types/label_printer.py:216 +#: machine/machine_types/label_printer.py:217 msgid "Number of copies to print for each label" msgstr "Címkénkénti nyomtatandó mennyiség" -#: machine/machine_types/label_printer.py:231 +#: machine/machine_types/label_printer.py:232 msgid "Connected" msgstr "Csatlakoztatba" -#: machine/machine_types/label_printer.py:232 order/api.py:1410 -#: templates/js/translated/sales_order.js:1078 +#: machine/machine_types/label_printer.py:233 order/api.py:1532 +#: templates/js/translated/sales_order.js:1044 msgid "Unknown" msgstr "Ismeretlen" -#: machine/machine_types/label_printer.py:233 +#: machine/machine_types/label_printer.py:234 msgid "Printing" msgstr "Nyomtatás" -#: machine/machine_types/label_printer.py:234 +#: machine/machine_types/label_printer.py:235 msgid "No media" msgstr "Nincs papír" -#: machine/machine_types/label_printer.py:235 -msgid "Paper jam" -msgstr "" - #: machine/machine_types/label_printer.py:236 +msgid "Paper jam" +msgstr "Elakadt a papír" + +#: machine/machine_types/label_printer.py:237 msgid "Disconnected" msgstr "Nincs kapcsolat" -#: machine/machine_types/label_printer.py:243 +#: machine/machine_types/label_printer.py:244 msgid "Label Printer" msgstr "Címkenyomtató" -#: machine/machine_types/label_printer.py:244 +#: machine/machine_types/label_printer.py:245 msgid "Directly print labels for various items." msgstr "Közvetlen címkenyomtatás különféle tételekre." -#: machine/machine_types/label_printer.py:250 +#: machine/machine_types/label_printer.py:251 msgid "Printer Location" msgstr "Nyomtató helye" -#: machine/machine_types/label_printer.py:251 +#: machine/machine_types/label_printer.py:252 msgid "Scope the printer to a specific location" msgstr "Nyomtató korlátozása egy készlethelyhez" @@ -5308,79 +5489,75 @@ msgstr "Konfiguráció típusa" #: report/templates/report/inventree_purchase_order_report.html:31 #: report/templates/report/inventree_sales_order_report.html:31 #: templates/js/translated/order.js:352 -#: templates/js/translated/purchase_order.js:2195 -#: templates/js/translated/sales_order.js:1883 +#: templates/js/translated/purchase_order.js:2179 +#: templates/js/translated/sales_order.js:1864 msgid "Total Price" msgstr "Teljes ár" -#: order/api.py:80 order/api.py:151 order/serializers.py:93 -#: order/templates/order/order_base.html:123 -#: order/templates/order/return_order_base.html:116 -#: order/templates/order/sales_order_base.html:125 +#: order/api.py:78 order/api.py:149 order/serializers.py:124 +#: order/templates/order/order_base.html:124 +#: order/templates/order/return_order_base.html:117 +#: order/templates/order/sales_order_base.html:126 msgid "Order Status" msgstr "Rendelés állapota" -#: order/api.py:88 order/templates/order/order_base.html:111 -#: order/templates/order/return_order_base.html:104 -#: order/templates/order/sales_order_base.html:113 +#: order/api.py:86 order/templates/order/order_base.html:112 +#: order/templates/order/return_order_base.html:105 +#: order/templates/order/sales_order_base.html:114 msgid "Order Reference" msgstr "Rendelés azonosítója" -#: order/api.py:116 templates/js/translated/table_filters.js:93 +#: order/api.py:114 order/api.py:1022 +#: templates/js/translated/table_filters.js:93 #: templates/js/translated/table_filters.js:625 #: templates/js/translated/table_filters.js:651 #: templates/js/translated/table_filters.js:666 msgid "Outstanding" msgstr "Kintlévő" -#: order/api.py:132 +#: order/api.py:130 msgid "Has Project Code" -msgstr "" +msgstr "Van projektszáma" -#: order/api.py:155 templates/js/translated/table_filters.js:201 +#: order/api.py:153 templates/js/translated/table_filters.js:201 #: templates/js/translated/table_filters.js:791 msgid "Has Pricing" msgstr "Van árazás" -#: order/api.py:230 -msgid "No matching purchase order found" -msgstr "Nincs egyező beszerzési rendelés" - -#: order/api.py:425 order/api.py:763 order/models.py:1484 order/models.py:1598 -#: order/models.py:1649 order/models.py:1764 order/models.py:1923 -#: order/models.py:2383 order/models.py:2439 -#: templates/js/translated/sales_order.js:1524 +#: order/api.py:375 order/api.py:771 order/api.py:986 order/models.py:1500 +#: order/models.py:1614 order/models.py:1665 order/models.py:1793 +#: order/models.py:1956 order/models.py:2422 order/models.py:2478 +#: templates/js/translated/sales_order.js:1490 msgid "Order" msgstr "Rendelés" -#: order/api.py:429 order/api.py:784 +#: order/api.py:379 order/api.py:809 msgid "Order Complete" msgstr "A rendelés teljesítve" -#: order/api.py:452 +#: order/api.py:430 msgid "Order Pending" msgstr "A rendelés függőben" -#: order/api.py:1404 order/models.py:379 order/models.py:1485 -#: order/models.py:1599 order/templates/order/order_base.html:9 -#: order/templates/order/order_base.html:18 +#: order/api.py:1526 order/models.py:386 order/models.py:1501 +#: order/models.py:1615 order/templates/order/order_base.html:10 +#: order/templates/order/order_base.html:19 #: report/templates/report/inventree_purchase_order_report.html:14 -#: stock/serializers.py:120 stock/templates/stock/item_base.html:176 +#: stock/serializers.py:121 stock/templates/stock/item_base.html:173 #: templates/email/overdue_purchase_order.html:15 #: templates/js/translated/part.js:1752 templates/js/translated/pricing.js:804 -#: templates/js/translated/purchase_order.js:168 -#: templates/js/translated/purchase_order.js:753 -#: templates/js/translated/purchase_order.js:1743 -#: templates/js/translated/stock.js:2345 templates/js/translated/stock.js:2991 +#: templates/js/translated/purchase_order.js:736 +#: templates/js/translated/purchase_order.js:1727 +#: templates/js/translated/stock.js:2346 templates/js/translated/stock.js:2992 msgid "Purchase Order" msgstr "Beszerzési rendelés" -#: order/api.py:1408 order/models.py:2091 order/models.py:2384 -#: order/models.py:2440 order/templates/order/return_order_base.html:9 -#: order/templates/order/return_order_base.html:28 +#: order/api.py:1530 order/models.py:2124 order/models.py:2423 +#: order/models.py:2479 order/templates/order/return_order_base.html:10 +#: order/templates/order/return_order_base.html:29 #: report/templates/report/inventree_return_order_report.html:13 #: templates/js/translated/return_order.js:280 -#: templates/js/translated/stock.js:3025 +#: templates/js/translated/stock.js:3026 msgid "Return Order" msgstr "Visszavétel" @@ -5388,751 +5565,782 @@ msgstr "Visszavétel" msgid "Total price for this order" msgstr "A rendelés teljes ára" -#: order/models.py:95 order/serializers.py:71 +#: order/models.py:95 order/serializers.py:73 msgid "Order Currency" msgstr "Rendelés pénzneme" -#: order/models.py:98 order/serializers.py:72 +#: order/models.py:98 order/serializers.py:74 msgid "Currency for this order (leave blank to use company default)" msgstr "Megrendeléshez használt pénznem (hagyd üresen a cégnél alapértelmezetthez)" -#: order/models.py:246 +#: order/models.py:243 msgid "Contact does not match selected company" msgstr "A kapcsolattartó nem egyezik a kiválasztott céggel" -#: order/models.py:289 +#: order/models.py:296 msgid "Order description (optional)" msgstr "Rendelés leírása (opcionális)" -#: order/models.py:298 +#: order/models.py:305 msgid "Select project code for this order" msgstr "Válassz projektszámot ehhez a rendeléshez" -#: order/models.py:302 order/models.py:1385 order/models.py:1817 +#: order/models.py:309 order/models.py:1402 order/models.py:1846 msgid "Link to external page" msgstr "Link külső weboldalra" -#: order/models.py:310 +#: order/models.py:317 msgid "Expected date for order delivery. Order will be overdue after this date." msgstr "Várt teljesítési dátuma a megrendelésnek. Ezután már késésben lévőnek számít majd." -#: order/models.py:324 +#: order/models.py:331 msgid "Created By" msgstr "Készítette" -#: order/models.py:332 +#: order/models.py:339 msgid "User or group responsible for this order" msgstr "Felhasználó vagy csoport aki felelőse ennek a rendelésnek" -#: order/models.py:343 +#: order/models.py:350 msgid "Point of contact for this order" msgstr "Kapcsolattartó ehhez a rendeléshez" -#: order/models.py:353 +#: order/models.py:360 msgid "Company address for this order" msgstr "Cég címei ehhez a rendeléshez" -#: order/models.py:468 order/models.py:979 +#: order/models.py:480 order/models.py:1006 msgid "Order reference" msgstr "Rendelés azonosító" -#: order/models.py:477 +#: order/models.py:489 msgid "Purchase order status" msgstr "Beszerzési rendelés állapota" -#: order/models.py:492 +#: order/models.py:504 msgid "Company from which the items are being ordered" msgstr "Cég akitől a tételek beszerzésre kerülnek" -#: order/models.py:503 order/templates/order/order_base.html:153 -#: templates/js/translated/purchase_order.js:1772 +#: order/models.py:515 order/templates/order/order_base.html:162 +#: templates/js/translated/purchase_order.js:1756 msgid "Supplier Reference" msgstr "Beszállítói azonosító" -#: order/models.py:504 +#: order/models.py:516 msgid "Supplier order reference code" msgstr "Beszállítói rendelés azonosító kód" -#: order/models.py:513 +#: order/models.py:525 msgid "received by" msgstr "érkeztette" -#: order/models.py:519 order/models.py:2173 +#: order/models.py:531 order/models.py:2212 msgid "Issue Date" msgstr "Kiállítás dátuma" -#: order/models.py:520 order/models.py:2174 +#: order/models.py:532 order/models.py:2213 msgid "Date order was issued" msgstr "Kiállítás dátuma" -#: order/models.py:527 order/models.py:2181 +#: order/models.py:539 order/models.py:2220 msgid "Date order was completed" msgstr "Rendelés teljesítési dátuma" -#: order/models.py:571 +#: order/models.py:549 order/models.py:1552 +msgid "Destination for received items" +msgstr "" + +#: order/models.py:593 msgid "Part supplier must match PO supplier" msgstr "Az alkatrész beszállítója meg kell egyezzen a beszerzési rendelés beszállítójával" -#: order/models.py:806 +#: order/models.py:828 msgid "Quantity must be a positive number" msgstr "Mennyiség pozitív kell legyen" -#: order/models.py:991 +#: order/models.py:1018 msgid "Company to which the items are being sold" msgstr "Cég akinek a tételek értékesítésre kerülnek" -#: order/models.py:1003 +#: order/models.py:1030 msgid "Sales order status" -msgstr "" +msgstr "Értékesítési rendelés állapot" -#: order/models.py:1014 order/models.py:2166 +#: order/models.py:1041 order/models.py:2205 msgid "Customer Reference " msgstr "Vevői azonosító " -#: order/models.py:1015 order/models.py:2167 +#: order/models.py:1042 order/models.py:2206 msgid "Customer order reference code" msgstr "Megrendelés azonosító kódja a vevőnél" -#: order/models.py:1019 order/models.py:1771 -#: templates/js/translated/sales_order.js:879 -#: templates/js/translated/sales_order.js:1060 +#: order/models.py:1046 order/models.py:1800 +#: templates/js/translated/sales_order.js:838 +#: templates/js/translated/sales_order.js:1026 msgid "Shipment Date" msgstr "Kiszállítás dátuma" -#: order/models.py:1028 +#: order/models.py:1055 msgid "shipped by" msgstr "szállította" -#: order/models.py:1077 +#: order/models.py:1094 msgid "Order is already complete" -msgstr "" +msgstr "Rendelés már teljesítve" -#: order/models.py:1080 +#: order/models.py:1097 msgid "Order is already cancelled" -msgstr "" +msgstr "Rendelés már visszavonva" -#: order/models.py:1084 +#: order/models.py:1101 msgid "Only an open order can be marked as complete" msgstr "Csak nyitott rendelés jelölhető késznek" -#: order/models.py:1088 +#: order/models.py:1105 msgid "Order cannot be completed as there are incomplete shipments" msgstr "A rendelés nem jelölhető késznek mivel függő szállítmányok vannak" -#: order/models.py:1093 +#: order/models.py:1110 msgid "Order cannot be completed as there are incomplete line items" msgstr "A rendelés nem jelölhető késznek mivel nem teljesített sortételek vannak" -#: order/models.py:1357 +#: order/models.py:1374 msgid "Item quantity" msgstr "Tétel mennyiség" -#: order/models.py:1374 +#: order/models.py:1391 msgid "Line item reference" msgstr "Sortétel azonosító" -#: order/models.py:1381 +#: order/models.py:1398 msgid "Line item notes" msgstr "Sortétel megjegyzései" -#: order/models.py:1393 +#: order/models.py:1410 msgid "Target date for this line item (leave blank to use the target date from the order)" msgstr "Cél dátuma ennek a sortételnek (hagyd üresen a rendelés céldátum használatához)" -#: order/models.py:1414 +#: order/models.py:1431 msgid "Line item description (optional)" msgstr "Sortétel leírása (opcionális)" -#: order/models.py:1420 -msgid "Context" -msgstr "Kontextus" - -#: order/models.py:1421 +#: order/models.py:1438 msgid "Additional context for this line" msgstr "További kontextus ehhez a sorhoz" -#: order/models.py:1431 +#: order/models.py:1448 msgid "Unit price" msgstr "Egységár" -#: order/models.py:1445 +#: order/models.py:1462 msgid "Purchase Order Line Item" -msgstr "" +msgstr "Vevői Rendelés Sortétel" -#: order/models.py:1469 +#: order/models.py:1486 msgid "Supplier part must match supplier" msgstr "Beszállítói alkatrésznek egyeznie kell a beszállítóval" -#: order/models.py:1476 -msgid "deleted" -msgstr "törölve" - -#: order/models.py:1504 +#: order/models.py:1520 msgid "Supplier part" msgstr "Beszállítói alkatrész" -#: order/models.py:1511 order/templates/order/order_base.html:201 +#: order/models.py:1527 order/templates/order/order_base.html:210 #: templates/js/translated/part.js:1876 templates/js/translated/part.js:1908 -#: templates/js/translated/purchase_order.js:1369 -#: templates/js/translated/purchase_order.js:2239 +#: templates/js/translated/purchase_order.js:1352 +#: templates/js/translated/purchase_order.js:2223 #: templates/js/translated/return_order.js:762 #: templates/js/translated/table_filters.js:119 #: templates/js/translated/table_filters.js:605 msgid "Received" msgstr "Beérkezett" -#: order/models.py:1512 +#: order/models.py:1528 msgid "Number of items received" msgstr "Érkezett tételek száma" -#: order/models.py:1520 stock/models.py:959 stock/serializers.py:610 -#: stock/templates/stock/item_base.html:183 -#: templates/js/translated/stock.js:2396 +#: order/models.py:1536 stock/models.py:1036 stock/serializers.py:637 +#: stock/templates/stock/item_base.html:180 +#: templates/js/translated/stock.js:2397 msgid "Purchase Price" msgstr "Beszerzési ár" -#: order/models.py:1521 +#: order/models.py:1537 msgid "Unit purchase price" msgstr "Beszerzési egységár" -#: order/models.py:1536 -msgid "Where does the Purchaser want this item to be stored?" -msgstr "Mit szeretne a vevő hol tároljuk ezt az alkatrészt?" - -#: order/models.py:1587 +#: order/models.py:1603 msgid "Purchase Order Extra Line" -msgstr "" +msgstr "Vevői Rendelés Extra Sor" -#: order/models.py:1616 +#: order/models.py:1632 msgid "Sales Order Line Item" -msgstr "" +msgstr "Vevői Rendelés Sortétel" -#: order/models.py:1637 +#: order/models.py:1653 msgid "Virtual part cannot be assigned to a sales order" msgstr "Virtuális alkatrészt nem lehet vevői rendeléshez adni" -#: order/models.py:1642 +#: order/models.py:1658 msgid "Only salable parts can be assigned to a sales order" msgstr "Csak értékesíthető alkatrészeket lehet vevői rendeléshez adni" -#: order/models.py:1668 part/templates/part/part_pricing.html:107 -#: part/templates/part/prices.html:139 templates/js/translated/pricing.js:957 +#: order/models.py:1684 part/templates/part/part_pricing.html:107 +#: part/templates/part/prices.html:139 templates/js/translated/pricing.js:955 msgid "Sale Price" msgstr "Eladási ár" -#: order/models.py:1669 +#: order/models.py:1685 msgid "Unit sale price" msgstr "Eladási egységár" -#: order/models.py:1678 order/status_codes.py:48 -#: templates/js/translated/sales_order.js:1559 -#: templates/js/translated/sales_order.js:1680 -#: templates/js/translated/sales_order.js:1993 +#: order/models.py:1694 order/status_codes.py:50 +#: templates/js/translated/sales_order.js:1525 +#: templates/js/translated/sales_order.js:1661 +#: templates/js/translated/sales_order.js:1974 msgid "Shipped" msgstr "Kiszállítva" -#: order/models.py:1679 +#: order/models.py:1695 msgid "Shipped quantity" msgstr "Szállított mennyiség" -#: order/models.py:1751 +#: order/models.py:1769 msgid "Sales Order Shipment" -msgstr "" +msgstr "Vevői Rendelés Szállítása" -#: order/models.py:1772 +#: order/models.py:1801 msgid "Date of shipment" msgstr "Szállítás dátuma" -#: order/models.py:1778 templates/js/translated/sales_order.js:1072 +#: order/models.py:1807 templates/js/translated/sales_order.js:1038 msgid "Delivery Date" msgstr "Szállítási dátum" -#: order/models.py:1779 +#: order/models.py:1808 msgid "Date of delivery of shipment" msgstr "Kézbesítés dátuma" -#: order/models.py:1787 +#: order/models.py:1816 msgid "Checked By" msgstr "Ellenőrizte" -#: order/models.py:1788 +#: order/models.py:1817 msgid "User who checked this shipment" msgstr "Felhasználó aki ellenőrizte ezt a szállítmányt" -#: order/models.py:1795 order/models.py:2018 order/serializers.py:1475 -#: order/serializers.py:1585 templates/js/translated/model_renderers.js:455 +#: order/models.py:1824 order/models.py:2051 order/serializers.py:1601 +#: order/serializers.py:1725 +#: report/templates/report/inventree_sales_order_shipment_report.html:14 +#: templates/js/translated/model_renderers.js:458 +#: templates/js/translated/sales_order.js:1615 msgid "Shipment" msgstr "Szállítmány" -#: order/models.py:1796 +#: order/models.py:1825 msgid "Shipment number" msgstr "Szállítmány száma" -#: order/models.py:1804 +#: order/models.py:1833 msgid "Tracking Number" msgstr "Nyomkövetési szám" -#: order/models.py:1805 +#: order/models.py:1834 msgid "Shipment tracking information" msgstr "Szállítmány nyomkövetési információ" -#: order/models.py:1812 +#: order/models.py:1841 msgid "Invoice Number" msgstr "Számlaszám" -#: order/models.py:1813 +#: order/models.py:1842 msgid "Reference number for associated invoice" msgstr "Hozzátartozó számla referencia száma" -#: order/models.py:1833 +#: order/models.py:1862 msgid "Shipment has already been sent" msgstr "Szállítmány már elküldve" -#: order/models.py:1836 +#: order/models.py:1865 msgid "Shipment has no allocated stock items" msgstr "Szállítmány nem tartalmaz foglalt készlet tételeket" -#: order/models.py:1912 +#: order/models.py:1945 msgid "Sales Order Extra Line" -msgstr "" +msgstr "Vevői Rendelés Extra Sor" -#: order/models.py:1941 +#: order/models.py:1974 msgid "Sales Order Allocation" -msgstr "" +msgstr "Vevői rendeléshez foglalások" -#: order/models.py:1964 order/models.py:1966 +#: order/models.py:1997 order/models.py:1999 msgid "Stock item has not been assigned" msgstr "Készlet tétel nincs hozzárendelve" -#: order/models.py:1973 +#: order/models.py:2006 msgid "Cannot allocate stock item to a line with a different part" msgstr "Nem foglalható készlet egy másik fajta alkatrész sortételéhez" -#: order/models.py:1976 +#: order/models.py:2009 msgid "Cannot allocate stock to a line without a part" msgstr "Nem foglalható készlet egy olyan sorhoz amiben nincs alkatrész" -#: order/models.py:1979 +#: order/models.py:2012 msgid "Allocation quantity cannot exceed stock quantity" msgstr "A lefoglalandó mennyiség nem haladhatja meg a készlet mennyiségét" -#: order/models.py:1998 order/serializers.py:1345 +#: order/models.py:2031 order/serializers.py:1471 msgid "Quantity must be 1 for serialized stock item" msgstr "Egyedi követésre kötelezett tételeknél a menyiség 1 kell legyen" -#: order/models.py:2001 +#: order/models.py:2034 msgid "Sales order does not match shipment" msgstr "Vevői rendelés nem egyezik a szállítmánnyal" -#: order/models.py:2002 plugin/base/barcodes/api.py:524 +#: order/models.py:2035 plugin/base/barcodes/api.py:629 msgid "Shipment does not match sales order" msgstr "Szállítmány nem egyezik a vevői rendeléssel" -#: order/models.py:2010 +#: order/models.py:2043 msgid "Line" msgstr "Sor" -#: order/models.py:2019 +#: order/models.py:2052 msgid "Sales order shipment reference" msgstr "Vevői rendelés szállítmány azonosító" -#: order/models.py:2032 order/models.py:2391 +#: order/models.py:2065 order/models.py:2430 #: templates/js/translated/return_order.js:720 msgid "Item" msgstr "Tétel" -#: order/models.py:2033 +#: order/models.py:2066 msgid "Select stock item to allocate" msgstr "Válaszd ki a foglalásra szánt készlet tételt" -#: order/models.py:2042 +#: order/models.py:2075 msgid "Enter stock allocation quantity" msgstr "Készlet foglalási mennyiség megadása" -#: order/models.py:2136 +#: order/models.py:2175 msgid "Return Order reference" msgstr "Visszavétel azonosító" -#: order/models.py:2148 +#: order/models.py:2187 msgid "Company from which items are being returned" msgstr "Cég akitől a tételek visszavételre kerülnek" -#: order/models.py:2160 +#: order/models.py:2199 msgid "Return order status" msgstr "Visszavétel állapota" -#: order/models.py:2362 +#: order/models.py:2401 msgid "Return Order Line Item" -msgstr "" +msgstr "Visszavétel sortétel" -#: order/models.py:2376 +#: order/models.py:2415 msgid "Only serialized items can be assigned to a Return Order" msgstr "Csak szériaszámos tételek rendelhetők visszaszállítási utasításhoz" -#: order/models.py:2392 +#: order/models.py:2431 msgid "Select item to return from customer" msgstr "Válaszd ki a vevőtől visszavenni kívánt tételt" -#: order/models.py:2398 +#: order/models.py:2437 msgid "Received Date" msgstr "Visszavétel dátuma" -#: order/models.py:2399 +#: order/models.py:2438 msgid "The date this this return item was received" msgstr "Mikor lett visszavéve a tétel" -#: order/models.py:2410 templates/js/translated/return_order.js:731 +#: order/models.py:2449 templates/js/translated/return_order.js:731 #: templates/js/translated/table_filters.js:122 msgid "Outcome" msgstr "Kimenetel" -#: order/models.py:2411 +#: order/models.py:2450 msgid "Outcome for this line item" msgstr "Sortétel végső kimenetele" -#: order/models.py:2418 +#: order/models.py:2457 msgid "Cost associated with return or repair for this line item" msgstr "Sortétel visszaküldésének vagy javításának költsége" -#: order/models.py:2428 +#: order/models.py:2467 msgid "Return Order Extra Line" +msgstr "Visszavétel extra tétel" + +#: order/serializers.py:87 +msgid "Order ID" msgstr "" -#: order/serializers.py:86 +#: order/serializers.py:87 +msgid "ID of the order to duplicate" +msgstr "" + +#: order/serializers.py:93 +msgid "Copy Lines" +msgstr "" + +#: order/serializers.py:94 +msgid "Copy line items from the original order" +msgstr "" + +#: order/serializers.py:100 +msgid "Copy Extra Lines" +msgstr "" + +#: order/serializers.py:101 +msgid "Copy extra line items from the original order" +msgstr "" + +#: order/serializers.py:117 msgid "Completed Lines" msgstr "Kész sorok" -#: order/serializers.py:283 stock/admin.py:195 +#: order/serializers.py:161 +msgid "Duplicate Order" +msgstr "" + +#: order/serializers.py:162 +msgid "Specify options for duplicating this order" +msgstr "" + +#: order/serializers.py:234 +msgid "Invalid order ID" +msgstr "" + +#: order/serializers.py:374 stock/admin.py:196 msgid "Supplier Name" msgstr "Beszállító neve" -#: order/serializers.py:331 +#: order/serializers.py:416 msgid "Order cannot be cancelled" msgstr "A rendelést nem lehet törölni" -#: order/serializers.py:346 order/serializers.py:1366 +#: order/serializers.py:431 order/serializers.py:1492 msgid "Allow order to be closed with incomplete line items" msgstr "Rendelés lezárása teljesítetlen sortételek esetén is" -#: order/serializers.py:356 order/serializers.py:1376 +#: order/serializers.py:441 order/serializers.py:1502 msgid "Order has incomplete line items" msgstr "A rendelésben teljesítetlen sortételek vannak" -#: order/serializers.py:506 +#: order/serializers.py:591 msgid "Order is not open" msgstr "A rendelés nem nyitott" -#: order/serializers.py:527 +#: order/serializers.py:612 msgid "Auto Pricing" msgstr "Automata árazás" -#: order/serializers.py:529 +#: order/serializers.py:614 msgid "Automatically calculate purchase price based on supplier part data" msgstr "Beszerzési ár automatikus számítása a beszállítói alkatrész adatai alapján" -#: order/serializers.py:539 +#: order/serializers.py:624 msgid "Purchase price currency" msgstr "Beszérzési ár pénzneme" -#: order/serializers.py:545 +#: order/serializers.py:630 msgid "Merge Items" msgstr "Elemek összevonása" -#: order/serializers.py:547 +#: order/serializers.py:632 msgid "Merge items with the same part, destination and target date into one line item" msgstr "Azonos forrás és cél dátumú Alkatrész tételeinek összevonása egy tételre" -#: order/serializers.py:560 part/models.py:1033 +#: order/serializers.py:645 part/models.py:1094 part/serializers.py:387 msgid "Internal Part Number" msgstr "Belső cikkszám" -#: order/serializers.py:568 +#: order/serializers.py:653 msgid "Internal Part Name" -msgstr "" +msgstr "Belső cikkszám" -#: order/serializers.py:584 +#: order/serializers.py:669 msgid "Supplier part must be specified" msgstr "Beszállítói alkatrészt meg kell adni" -#: order/serializers.py:587 +#: order/serializers.py:672 msgid "Purchase order must be specified" msgstr "Beszerzési rendelést meg kell adni" -#: order/serializers.py:595 +#: order/serializers.py:680 msgid "Supplier must match purchase order" msgstr "A beszállítónak egyeznie kell a beszerzési rendelésben lévővel" -#: order/serializers.py:596 +#: order/serializers.py:681 msgid "Purchase order must match supplier" msgstr "A beszerzési rendelésnek egyeznie kell a beszállítóval" -#: order/serializers.py:639 order/serializers.py:1446 +#: order/serializers.py:724 order/serializers.py:1572 msgid "Line Item" msgstr "Sortétel" -#: order/serializers.py:645 +#: order/serializers.py:730 msgid "Line item does not match purchase order" msgstr "Sortétel nem egyezik a beszerzési megrendeléssel" -#: order/serializers.py:655 order/serializers.py:779 order/serializers.py:1782 +#: order/serializers.py:740 order/serializers.py:881 order/serializers.py:1934 msgid "Select destination location for received items" msgstr "Válassz cél helyet a beérkezett tételeknek" -#: order/serializers.py:671 templates/js/translated/purchase_order.js:1130 +#: order/serializers.py:756 templates/js/translated/purchase_order.js:1113 #: templates/js/translated/stock.js:1200 msgid "Enter batch code for incoming stock items" msgstr "Írd be a batch kódját a beérkezett tételeknek" -#: order/serializers.py:679 templates/js/translated/purchase_order.js:1155 +#: order/serializers.py:764 templates/js/translated/purchase_order.js:1138 msgid "Enter serial numbers for incoming stock items" msgstr "Írd be a sorozatszámokat a beérkezett tételekhez" -#: order/serializers.py:691 +#: order/serializers.py:776 msgid "Override packaging information for incoming stock items" -msgstr "" +msgstr "Bejövő készlettételek csomagolási információjának felülbírálata" -#: order/serializers.py:699 +#: order/serializers.py:784 msgid "Additional note for incoming stock items" -msgstr "" +msgstr "Kiegészítő megjegyzés beérkező készlettételekhez" -#: order/serializers.py:706 templates/js/translated/barcode.js:52 +#: order/serializers.py:791 templates/js/translated/barcode.js:52 msgid "Barcode" msgstr "Vonalkód" -#: order/serializers.py:707 +#: order/serializers.py:792 msgid "Scanned barcode" msgstr "Beolvasott vonalkód" -#: order/serializers.py:723 +#: order/serializers.py:808 msgid "Barcode is already in use" msgstr "Ez a vonalkód már használva van" -#: order/serializers.py:747 +#: order/serializers.py:831 msgid "An integer quantity must be provided for trackable parts" msgstr "Egész számú mennyiség szükséges az egyedi követésre kötelezett alkatrészeknél" -#: order/serializers.py:795 order/serializers.py:1798 +#: order/serializers.py:898 order/serializers.py:1950 msgid "Line items must be provided" msgstr "Sortételt meg kell adni" -#: order/serializers.py:811 +#: order/serializers.py:914 msgid "Destination location must be specified" msgstr "A cél helyet kötelező megadni" -#: order/serializers.py:822 +#: order/serializers.py:925 msgid "Supplied barcode values must be unique" msgstr "Megadott vonalkódoknak egyedieknek kel lenniük" -#: order/serializers.py:1187 +#: order/serializers.py:1221 msgid "Sale price currency" msgstr "Eladási ár pénzneme" -#: order/serializers.py:1248 +#: order/serializers.py:1260 +msgid "Allocated Items" +msgstr "" + +#: order/serializers.py:1374 msgid "No shipment details provided" msgstr "Nincsenek szállítmány részletek megadva" -#: order/serializers.py:1309 order/serializers.py:1455 +#: order/serializers.py:1435 order/serializers.py:1581 msgid "Line item is not associated with this order" msgstr "Sortétel nincs hozzárendelve ehhez a rendeléshez" -#: order/serializers.py:1328 +#: order/serializers.py:1454 msgid "Quantity must be positive" msgstr "Mennyiség pozitív kell legyen" -#: order/serializers.py:1465 +#: order/serializers.py:1591 msgid "Enter serial numbers to allocate" msgstr "Írd be a sorozatszámokat a kiosztáshoz" -#: order/serializers.py:1487 order/serializers.py:1593 +#: order/serializers.py:1613 order/serializers.py:1733 msgid "Shipment has already been shipped" msgstr "Szállítmány kiszállítva" -#: order/serializers.py:1490 order/serializers.py:1596 +#: order/serializers.py:1616 order/serializers.py:1736 msgid "Shipment is not associated with this order" msgstr "Szállítmány nincs hozzárendelve ehhez a rendeléshez" -#: order/serializers.py:1537 +#: order/serializers.py:1671 msgid "No match found for the following serial numbers" msgstr "Nincs találat a következő sorozatszámokra" -#: order/serializers.py:1544 -msgid "The following serial numbers are already allocated" -msgstr "A következő sorozatszámok már ki lettek osztva" +#: order/serializers.py:1678 +msgid "The following serial numbers are unavailable" +msgstr "" -#: order/serializers.py:1752 +#: order/serializers.py:1904 msgid "Return order line item" msgstr "Visszavétel sortétel" -#: order/serializers.py:1758 +#: order/serializers.py:1910 msgid "Line item does not match return order" msgstr "Sortétel nem egyezik a visszavétellel" -#: order/serializers.py:1761 +#: order/serializers.py:1913 msgid "Line item has already been received" msgstr "A sortétel már beérkezett" -#: order/serializers.py:1790 +#: order/serializers.py:1942 msgid "Items can only be received against orders which are in progress" msgstr "Csak folyamatban lévő megrendelés tételeit lehet bevételezni" -#: order/serializers.py:1873 +#: order/serializers.py:2025 msgid "Line price currency" msgstr "Sortétel pénzneme" -#: order/status_codes.py:17 order/status_codes.py:52 stock/status_codes.py:16 +#: order/status_codes.py:17 order/status_codes.py:54 stock/status_codes.py:16 msgid "Lost" msgstr "Elveszett" -#: order/status_codes.py:18 order/status_codes.py:53 stock/status_codes.py:22 +#: order/status_codes.py:18 order/status_codes.py:55 stock/status_codes.py:24 msgid "Returned" msgstr "Visszaküldve" -#: order/status_codes.py:45 order/status_codes.py:77 +#: order/status_codes.py:47 order/status_codes.py:79 msgid "In Progress" msgstr "Folyamatban" -#: order/status_codes.py:101 +#: order/status_codes.py:105 msgid "Return" msgstr "Visszavétel" -#: order/status_codes.py:104 +#: order/status_codes.py:108 msgid "Repair" msgstr "Javítás" -#: order/status_codes.py:107 +#: order/status_codes.py:111 msgid "Replace" msgstr "Csere" -#: order/status_codes.py:110 +#: order/status_codes.py:114 msgid "Refund" msgstr "Visszatérítés" -#: order/status_codes.py:113 +#: order/status_codes.py:117 msgid "Reject" msgstr "Elutasított" -#: order/tasks.py:25 +#: order/tasks.py:30 msgid "Overdue Purchase Order" msgstr "Késésben lévő beszerzés" -#: order/tasks.py:30 +#: order/tasks.py:35 #, python-brace-format msgid "Purchase order {po} is now overdue" msgstr "A {po} beszerzési rendelés most már késésben van" -#: order/tasks.py:75 +#: order/tasks.py:80 msgid "Overdue Sales Order" msgstr "Késésben lévő vevői rendelés" -#: order/tasks.py:80 +#: order/tasks.py:85 #, python-brace-format msgid "Sales order {so} is now overdue" msgstr "A {so} vevői rendelés most már késésben van" -#: order/templates/order/order_base.html:51 +#: order/templates/order/order_base.html:52 msgid "Print purchase order report" msgstr "Beszerzési rendelés nyomtatása" -#: order/templates/order/order_base.html:53 -#: order/templates/order/return_order_base.html:62 -#: order/templates/order/sales_order_base.html:62 +#: order/templates/order/order_base.html:54 +#: order/templates/order/return_order_base.html:63 +#: order/templates/order/sales_order_base.html:63 msgid "Export order to file" msgstr "Rendelés exportálása fájlba" -#: order/templates/order/order_base.html:59 -#: order/templates/order/return_order_base.html:72 -#: order/templates/order/sales_order_base.html:71 +#: order/templates/order/order_base.html:60 +#: order/templates/order/return_order_base.html:73 +#: order/templates/order/sales_order_base.html:72 msgid "Order actions" msgstr "Rendelés műveletek" -#: order/templates/order/order_base.html:64 -#: order/templates/order/return_order_base.html:76 -#: order/templates/order/sales_order_base.html:75 +#: order/templates/order/order_base.html:65 +#: order/templates/order/return_order_base.html:77 +#: order/templates/order/sales_order_base.html:76 msgid "Edit order" msgstr "Rendelés szerkesztése" -#: order/templates/order/order_base.html:68 +#: order/templates/order/order_base.html:69 msgid "Duplicate order" msgstr "Rendelés másolása" -#: order/templates/order/order_base.html:73 -#: order/templates/order/return_order_base.html:78 -#: order/templates/order/sales_order_base.html:77 +#: order/templates/order/order_base.html:74 +#: order/templates/order/return_order_base.html:79 +#: order/templates/order/sales_order_base.html:78 msgid "Hold order" -msgstr "" +msgstr "Rendelés Felfüggesztése" -#: order/templates/order/order_base.html:78 -#: order/templates/order/return_order_base.html:81 -#: order/templates/order/sales_order_base.html:80 +#: order/templates/order/order_base.html:79 +#: order/templates/order/return_order_base.html:82 +#: order/templates/order/sales_order_base.html:81 msgid "Cancel order" msgstr "Rendelés törlése" -#: order/templates/order/order_base.html:84 #: order/templates/order/order_base.html:85 -#: order/templates/order/return_order_base.html:85 +#: order/templates/order/order_base.html:86 #: order/templates/order/return_order_base.html:86 -#: order/templates/order/sales_order_base.html:86 +#: order/templates/order/return_order_base.html:87 #: order/templates/order/sales_order_base.html:87 +#: order/templates/order/sales_order_base.html:88 msgid "Issue Order" msgstr "Rendelés kiküldése" -#: order/templates/order/order_base.html:88 -#: order/templates/order/return_order_base.html:89 +#: order/templates/order/order_base.html:89 +#: order/templates/order/return_order_base.html:90 msgid "Mark order as complete" msgstr "Rendelés teljesítettnek jelölése" -#: order/templates/order/order_base.html:89 -#: order/templates/order/return_order_base.html:90 -#: order/templates/order/sales_order_base.html:100 +#: order/templates/order/order_base.html:90 +#: order/templates/order/return_order_base.html:91 +#: order/templates/order/sales_order_base.html:101 msgid "Complete Order" msgstr "Rendelés befejezése" -#: order/templates/order/order_base.html:96 +#: order/templates/order/order_base.html:97 msgid "Supplier part thumbnail" msgstr "Beszállítói alkatrész bélyegkép" -#: order/templates/order/order_base.html:116 -#: order/templates/order/return_order_base.html:109 -#: order/templates/order/sales_order_base.html:118 +#: order/templates/order/order_base.html:117 +#: order/templates/order/return_order_base.html:110 +#: order/templates/order/sales_order_base.html:119 msgid "Order Description" msgstr "Rendelés leírása" -#: order/templates/order/order_base.html:146 -msgid "No suppplier information available" -msgstr "Nincs elérhető beszállítói információ" - -#: order/templates/order/order_base.html:159 -#: order/templates/order/sales_order_base.html:164 +#: order/templates/order/order_base.html:168 +#: order/templates/order/sales_order_base.html:165 msgid "Completed Line Items" msgstr "Kész sortételek" -#: order/templates/order/order_base.html:165 -#: order/templates/order/sales_order_base.html:170 -#: order/templates/order/sales_order_base.html:180 +#: order/templates/order/order_base.html:174 +#: order/templates/order/sales_order_base.html:171 +#: order/templates/order/sales_order_base.html:181 msgid "Incomplete" msgstr "Hiányos" -#: order/templates/order/order_base.html:184 -#: order/templates/order/return_order_base.html:160 +#: order/templates/order/order_base.html:193 +#: order/templates/order/return_order_base.html:161 #: report/templates/report/inventree_build_order_report.html:121 msgid "Issued" msgstr "Kiküldve" -#: order/templates/order/order_base.html:229 +#: order/templates/order/order_base.html:238 msgid "Total cost" msgstr "Teljes költség" -#: order/templates/order/order_base.html:233 -#: order/templates/order/return_order_base.html:202 -#: order/templates/order/sales_order_base.html:246 +#: order/templates/order/order_base.html:242 +#: order/templates/order/return_order_base.html:203 +#: order/templates/order/sales_order_base.html:247 msgid "Total cost could not be calculated" msgstr "A teljes költség nem számolható" -#: order/templates/order/order_base.html:335 +#: order/templates/order/order_base.html:344 msgid "Purchase Order QR Code" msgstr "Beszerzési rendelés QR kódja" -#: order/templates/order/order_base.html:347 +#: order/templates/order/order_base.html:356 msgid "Link Barcode to Purchase Order" msgstr "Vonalkód hozzáadása a beszerzési rendeléshez" @@ -6185,12 +6393,12 @@ msgstr "Kijelöltek másolása" #: part/templates/part/import_wizard/ajax_match_references.html:42 #: part/templates/part/import_wizard/match_fields.html:71 #: part/templates/part/import_wizard/match_references.html:49 -#: templates/js/translated/bom.js:133 templates/js/translated/build.js:530 -#: templates/js/translated/build.js:1802 -#: templates/js/translated/purchase_order.js:696 -#: templates/js/translated/purchase_order.js:1288 +#: templates/js/translated/bom.js:133 templates/js/translated/build.js:533 +#: templates/js/translated/build.js:1805 +#: templates/js/translated/purchase_order.js:679 +#: templates/js/translated/purchase_order.js:1271 #: templates/js/translated/return_order.js:505 -#: templates/js/translated/sales_order.js:1145 +#: templates/js/translated/sales_order.js:1111 #: templates/js/translated/stock.js:720 templates/js/translated/stock.js:889 #: templates/patterns/wizard/match_fields.html:70 msgid "Remove row" @@ -6243,7 +6451,7 @@ msgstr "Beszerzési rendelés tételei" #: order/templates/order/purchase_order_detail.html:27 #: order/templates/order/return_order_detail.html:24 #: order/templates/order/sales_order_detail.html:24 -#: templates/js/translated/purchase_order.js:414 +#: templates/js/translated/purchase_order.js:397 #: templates/js/translated/return_order.js:458 #: templates/js/translated/sales_order.js:237 msgid "Add Line Item" @@ -6278,45 +6486,45 @@ msgstr "Érkezett tételek" msgid "Order Notes" msgstr "Rendelés megjegyzések" -#: order/templates/order/return_order_base.html:18 -#: order/templates/order/sales_order_base.html:18 +#: order/templates/order/return_order_base.html:19 +#: order/templates/order/sales_order_base.html:19 msgid "Customer logo thumbnail" msgstr "Vevő logó bélyegkép" -#: order/templates/order/return_order_base.html:60 +#: order/templates/order/return_order_base.html:61 msgid "Print return order report" msgstr "Visszavételi riport nyomtatása" -#: order/templates/order/return_order_base.html:64 -#: order/templates/order/sales_order_base.html:64 +#: order/templates/order/return_order_base.html:65 +#: order/templates/order/sales_order_base.html:65 msgid "Print packing list" msgstr "Csomagolási lista nyomtatása" -#: order/templates/order/return_order_base.html:141 -#: order/templates/order/sales_order_base.html:158 +#: order/templates/order/return_order_base.html:142 +#: order/templates/order/sales_order_base.html:159 #: templates/js/translated/return_order.js:308 -#: templates/js/translated/sales_order.js:833 +#: templates/js/translated/sales_order.js:792 msgid "Customer Reference" msgstr "Vevői azonosító" -#: order/templates/order/return_order_base.html:198 -#: order/templates/order/sales_order_base.html:242 +#: order/templates/order/return_order_base.html:199 +#: order/templates/order/sales_order_base.html:243 #: part/templates/part/part_pricing.html:32 #: part/templates/part/part_pricing.html:58 #: part/templates/part/part_pricing.html:99 #: part/templates/part/part_pricing.html:114 #: templates/js/translated/part.js:1079 -#: templates/js/translated/purchase_order.js:1822 +#: templates/js/translated/purchase_order.js:1806 #: templates/js/translated/return_order.js:380 -#: templates/js/translated/sales_order.js:891 +#: templates/js/translated/sales_order.js:850 msgid "Total Cost" msgstr "Teljes költség" -#: order/templates/order/return_order_base.html:273 +#: order/templates/order/return_order_base.html:274 msgid "Return Order QR Code" msgstr "Visszavétel QR kódja" -#: order/templates/order/return_order_base.html:285 +#: order/templates/order/return_order_base.html:286 msgid "Link Barcode to Return Order" msgstr "Vonalkód visszavételhez rendelése" @@ -6324,40 +6532,40 @@ msgstr "Vonalkód visszavételhez rendelése" msgid "Order Details" msgstr "Visszavétel részletei" -#: order/templates/order/sales_order_base.html:60 +#: order/templates/order/sales_order_base.html:61 msgid "Print sales order report" msgstr "Vevői rendelés nyomtatása" -#: order/templates/order/sales_order_base.html:91 #: order/templates/order/sales_order_base.html:92 +#: order/templates/order/sales_order_base.html:93 msgid "Ship Items" msgstr "Tételek kiszállítása" -#: order/templates/order/sales_order_base.html:95 #: order/templates/order/sales_order_base.html:96 +#: order/templates/order/sales_order_base.html:97 msgid "Mark As Shipped" -msgstr "" +msgstr "Kiszállítottnak Jelölve" -#: order/templates/order/sales_order_base.html:99 -#: templates/js/translated/sales_order.js:536 +#: order/templates/order/sales_order_base.html:100 +#: templates/js/translated/sales_order.js:495 msgid "Complete Sales Order" msgstr "Vevői rendelés befejezése, minden kiszállítva" -#: order/templates/order/sales_order_base.html:138 +#: order/templates/order/sales_order_base.html:139 msgid "This Sales Order has not been fully allocated" msgstr "Ehhez a vevői rendeléshez nincs minden alkatrész lefoglalva" -#: order/templates/order/sales_order_base.html:176 +#: order/templates/order/sales_order_base.html:177 #: order/templates/order/sales_order_detail.html:99 #: order/templates/order/so_sidebar.html:11 msgid "Completed Shipments" msgstr "Kész szállítmányok" -#: order/templates/order/sales_order_base.html:339 +#: order/templates/order/sales_order_base.html:340 msgid "Sales Order QR Code" msgstr "Vevő rendelés QR kódja" -#: order/templates/order/sales_order_base.html:351 +#: order/templates/order/sales_order_base.html:352 msgid "Link Barcode to Sales Order" msgstr "Vonalkód hozzáadása a vevői rendeléshez" @@ -6371,7 +6579,7 @@ msgid "Pending Shipments" msgstr "Függő szállítmányok" #: order/templates/order/sales_order_detail.html:71 -#: templates/js/translated/bom.js:1277 templates/js/translated/build.js:1063 +#: templates/js/translated/bom.js:1277 templates/js/translated/build.js:1066 #: templates/js/translated/filters.js:299 msgid "Actions" msgstr "Műveletek" @@ -6384,39 +6592,40 @@ msgstr "Új szállítmány" msgid "Match Supplier Parts" msgstr "Beszállítói alkatrészek egyeztetése" -#: order/views.py:406 +#: order/views.py:407 msgid "Sales order not found" msgstr "Vevő rendelés nem találhtó" -#: order/views.py:412 +#: order/views.py:413 msgid "Price not found" msgstr "Nem található ár" -#: order/views.py:415 +#: order/views.py:416 #, python-brace-format msgid "Updated {part} unit-price to {price}" msgstr "A {part} egységára {price}-ra módosítva" -#: order/views.py:421 +#: order/views.py:422 #, python-brace-format msgid "Updated {part} unit-price to {price} and quantity to {qty}" msgstr "A {part} alkatrész módosított egységára {price} mennyisége pedig {qty}" -#: part/admin.py:48 part/models.py:1032 part/templates/part/part_base.html:269 +#: part/admin.py:48 part/models.py:1093 part/serializers.py:939 +#: part/templates/part/part_base.html:277 #: report/templates/report/inventree_stock_location_report.html:103 #: templates/js/translated/part.js:1233 templates/js/translated/part.js:2347 -#: templates/js/translated/stock.js:2121 +#: templates/js/translated/stock.js:2122 msgid "IPN" msgstr "IPN (Belső Cikkszám)" -#: part/admin.py:50 part/models.py:1041 part/templates/part/part_base.html:286 +#: part/admin.py:50 part/models.py:1102 part/templates/part/part_base.html:294 #: report/models.py:161 templates/js/translated/part.js:1238 #: templates/js/translated/part.js:2353 msgid "Revision" msgstr "Változat" -#: part/admin.py:53 part/admin.py:319 part/models.py:1014 -#: part/templates/part/category.html:91 part/templates/part/part_base.html:307 +#: part/admin.py:53 part/admin.py:319 part/models.py:1075 +#: part/templates/part/category.html:91 part/templates/part/part_base.html:315 msgid "Keywords" msgstr "Kulcsszavak" @@ -6428,7 +6637,7 @@ msgstr "Alkatrész ábra" msgid "Category ID" msgstr "Kategória ID" -#: part/admin.py:67 part/admin.py:304 part/serializers.py:880 +#: part/admin.py:67 part/admin.py:304 part/serializers.py:924 #: part/stocktake.py:222 msgid "Category Name" msgstr "Kategória neve" @@ -6441,11 +6650,11 @@ msgstr "Alapértelmezett készlethely ID" msgid "Default Supplier ID" msgstr "Alapértelmezett beszállító ID" -#: part/admin.py:81 part/models.py:1000 part/templates/part/part_base.html:177 +#: part/admin.py:81 part/models.py:1061 part/templates/part/part_base.html:178 msgid "Variant Of" msgstr "Ebből a sablonból" -#: part/admin.py:84 part/models.py:1138 part/templates/part/part_base.html:203 +#: part/admin.py:84 part/models.py:1199 part/templates/part/part_base.html:204 msgid "Minimum Stock" msgstr "Minimális készlet" @@ -6453,23 +6662,23 @@ msgstr "Minimális készlet" msgid "Used In" msgstr "Felhasználva ebben" -#: part/admin.py:150 part/serializers.py:897 -#: part/templates/part/part_base.html:241 stock/admin.py:235 +#: part/admin.py:150 part/serializers.py:949 +#: part/templates/part/part_base.html:249 stock/admin.py:236 #: templates/js/translated/part.js:717 templates/js/translated/part.js:2159 msgid "Building" msgstr "Gyártásban" -#: part/admin.py:155 part/models.py:3202 part/models.py:3216 +#: part/admin.py:155 part/models.py:3253 part/models.py:3267 #: templates/js/translated/part.js:976 msgid "Minimum Cost" msgstr "Minimum költség" -#: part/admin.py:158 part/models.py:3209 part/models.py:3223 +#: part/admin.py:158 part/models.py:3260 part/models.py:3274 #: templates/js/translated/part.js:986 msgid "Maximum Cost" msgstr "Maximum költség" -#: part/admin.py:308 part/admin.py:387 stock/admin.py:57 stock/admin.py:215 +#: part/admin.py:308 part/admin.py:387 stock/admin.py:57 stock/admin.py:216 msgid "Parent ID" msgstr "Szülő ID" @@ -6482,8 +6691,8 @@ msgstr "Szülő neve" msgid "Category Path" msgstr "Kategória elérési út" -#: part/admin.py:325 part/models.py:425 part/serializers.py:130 -#: part/serializers.py:290 part/serializers.py:415 +#: part/admin.py:325 part/models.py:420 part/serializers.py:130 +#: part/serializers.py:323 part/serializers.py:459 #: part/templates/part/cat_link.html:3 part/templates/part/category.html:20 #: part/templates/part/category.html:138 part/templates/part/category.html:158 #: part/templates/part/category_sidebar.html:9 @@ -6508,17 +6717,17 @@ msgstr "Szülő IPN" #: part/admin.py:405 msgid "Part Revision" -msgstr "" +msgstr "Alkatrész változatok" -#: part/admin.py:418 part/serializers.py:1346 +#: part/admin.py:418 part/serializers.py:1400 #: templates/js/translated/pricing.js:358 -#: templates/js/translated/pricing.js:1024 +#: templates/js/translated/pricing.js:1022 msgid "Minimum Price" msgstr "Minimum ár" -#: part/admin.py:423 part/serializers.py:1361 +#: part/admin.py:423 part/serializers.py:1415 #: templates/js/translated/pricing.js:353 -#: templates/js/translated/pricing.js:1032 +#: templates/js/translated/pricing.js:1030 msgid "Maximum Price" msgstr "Maximum ár" @@ -6544,96 +6753,100 @@ msgstr "Felső szint" #: part/api.py:143 msgid "Filter by top-level categories" -msgstr "" +msgstr "Csúcs készlethelyre szűrés" + +#: part/api.py:156 stock/api.py:343 +msgid "Cascade" +msgstr "Lépcsőzetes" #: part/api.py:158 msgid "Include sub-categories in filtered results" msgstr "Szűrt eredmények tartalmazzák az alkategóriákat" -#: part/api.py:179 templates/js/translated/part.js:311 +#: part/api.py:178 templates/js/translated/part.js:311 msgid "Parent" msgstr "Szülő" -#: part/api.py:181 +#: part/api.py:180 msgid "Filter by parent category" msgstr "Szülő kategóriára szűrés" -#: part/api.py:214 +#: part/api.py:213 msgid "Exclude Tree" msgstr "Fa kihagyása" -#: part/api.py:216 +#: part/api.py:215 msgid "Exclude sub-categories under the specified category" msgstr "Az adott kategória alkategóriáinak kihagyása" -#: part/api.py:441 +#: part/api.py:440 msgid "Has Results" msgstr "Van találat" -#: part/api.py:608 +#: part/api.py:604 msgid "Incoming Purchase Order" msgstr "Beérkező beszerzési rendelés" -#: part/api.py:626 +#: part/api.py:618 msgid "Outgoing Sales Order" msgstr "Kimenő vevői rendelés" -#: part/api.py:642 +#: part/api.py:630 msgid "Stock produced by Build Order" msgstr "Gyártással előállított készlet" -#: part/api.py:726 +#: part/api.py:712 msgid "Stock required for Build Order" msgstr "A gyártási utasításhoz szükséges készlet" -#: part/api.py:874 +#: part/api.py:858 msgid "Validate entire Bill of Materials" msgstr "Teljes alkatrészjegyzék jóváhagyása" -#: part/api.py:880 +#: part/api.py:864 msgid "This option must be selected" msgstr "Ennek az opciónak ki kll lennie választva" -#: part/api.py:916 +#: part/api.py:900 msgid "Is Revision" -msgstr "" +msgstr "Változat" -#: part/api.py:926 +#: part/api.py:910 msgid "Has Revisions" -msgstr "" +msgstr "Vannak Változatok" -#: part/api.py:1117 +#: part/api.py:1101 msgid "BOM Valid" -msgstr "" +msgstr "Alkatrészjegyzék ellenőrizve" -#: part/api.py:1523 part/models.py:1024 part/models.py:3489 part/models.py:4046 -#: part/serializers.py:430 part/serializers.py:1202 -#: part/templates/part/part_base.html:260 stock/api.py:781 +#: part/api.py:1509 part/models.py:1085 part/models.py:3540 part/models.py:4104 +#: part/serializers.py:474 part/serializers.py:1255 +#: part/templates/part/part_base.html:268 stock/api.py:781 #: templates/InvenTree/settings/settings_staff_js.html:300 #: templates/js/translated/notification.js:60 #: templates/js/translated/part.js:2383 msgid "Category" msgstr "Kategória" -#: part/api.py:1761 +#: part/api.py:1750 msgid "Assembly part is testable" -msgstr "" +msgstr "Összeállított Alkatrész ellenőrizhető" -#: part/api.py:1770 +#: part/api.py:1759 msgid "Component part is testable" -msgstr "" +msgstr "Összetevő alkatrész ellenőrizhető" -#: part/api.py:1821 +#: part/api.py:1810 msgid "Uses" msgstr "Használ" -#: part/bom.py:178 part/models.py:107 part/models.py:1077 -#: part/templates/part/category.html:113 part/templates/part/part_base.html:376 +#: part/bom.py:183 part/models.py:109 part/models.py:1138 +#: part/templates/part/category.html:113 part/templates/part/part_base.html:384 #: templates/js/translated/part.js:2397 msgid "Default Location" msgstr "Alapértelmezett hely" -#: part/bom.py:179 part/serializers.py:905 +#: part/bom.py:184 part/serializers.py:957 #: templates/email/low_stock_notification.html:16 msgid "Total Stock" msgstr "Teljes készlet" @@ -6642,795 +6855,795 @@ msgstr "Teljes készlet" msgid "Input quantity for price calculation" msgstr "Add meg a mennyiséget az árszámításhoz" -#: part/models.py:88 part/models.py:4047 part/templates/part/category.html:16 +#: part/models.py:90 part/models.py:4105 part/templates/part/category.html:16 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "Alkatrész kategória" -#: part/models.py:89 part/templates/part/category.html:133 +#: part/models.py:91 part/templates/part/category.html:133 #: templates/InvenTree/search.html:97 templates/js/translated/search.js:158 #: users/models.py:202 msgid "Part Categories" msgstr "Alkatrész kategóriák" -#: part/models.py:108 +#: part/models.py:110 msgid "Default location for parts in this category" msgstr "Ebben a kategóriában lévő alkatrészek helye alapban" -#: part/models.py:113 stock/models.py:187 templates/js/translated/part.js:2828 -#: templates/js/translated/stock.js:2856 +#: part/models.py:115 stock/models.py:193 templates/js/translated/part.js:2828 +#: templates/js/translated/stock.js:2857 #: templates/js/translated/table_filters.js:246 #: templates/js/translated/table_filters.js:290 msgid "Structural" msgstr "Szerkezeti" -#: part/models.py:115 +#: part/models.py:117 msgid "Parts may not be directly assigned to a structural category, but may be assigned to child categories." msgstr "A szerkezeti alkatrész kategóriákhoz nem lehet direktben alkatrészeket hozzáadni, csak az alkategóriáikhoz." -#: part/models.py:124 +#: part/models.py:126 msgid "Default keywords" msgstr "Alapértelmezett kulcsszavak" -#: part/models.py:125 +#: part/models.py:127 msgid "Default keywords for parts in this category" msgstr "Ebben a kategóriában évő alkatrészek kulcsszavai alapban" -#: part/models.py:131 stock/models.py:90 stock/models.py:169 +#: part/models.py:133 stock/models.py:96 stock/models.py:175 #: templates/InvenTree/settings/settings_staff_js.html:445 msgid "Icon" msgstr "Ikon" -#: part/models.py:132 part/serializers.py:143 part/serializers.py:161 -#: stock/models.py:170 +#: part/models.py:134 part/serializers.py:143 part/serializers.py:161 +#: stock/models.py:176 msgid "Icon (optional)" msgstr "Ikon (opcionális)" -#: part/models.py:178 +#: part/models.py:180 msgid "You cannot make this part category structural because some parts are already assigned to it!" msgstr "Nem lehet az alkatrészkategóriát szerkezeti kategóriává tenni, mert már vannak itt alkatrészek!" -#: part/models.py:519 +#: part/models.py:514 msgid "Cannot delete this part as it is locked" -msgstr "" +msgstr "Lezárt alkatrész nem törölhető" + +#: part/models.py:517 +msgid "Cannot delete this part as it is still active" +msgstr "Aktív alkatrész nem törölhető" #: part/models.py:522 -msgid "Cannot delete this part as it is still active" -msgstr "" - -#: part/models.py:527 msgid "Cannot delete this part as it is used in an assembly" -msgstr "" +msgstr "Összeállításban felhasznált alkatrész nem törölhető" -#: part/models.py:565 +#: part/models.py:560 msgid "Invalid choice for parent part" msgstr "Hibás választás a szülő alkatrészre" -#: part/models.py:613 part/models.py:620 +#: part/models.py:608 part/models.py:615 #, python-brace-format msgid "Part '{self}' cannot be used in BOM for '{parent}' (recursive)" msgstr "Az '{self}' alkatrész nem használható a '{parent}' alkatrészjegyzékében (mert rekurzív lenne)" -#: part/models.py:632 +#: part/models.py:627 #, python-brace-format msgid "Part '{parent}' is used in BOM for '{self}' (recursive)" msgstr "Az '{parent}' alkatrész szerepel a '{self}' alkatrészjegyzékében (rekurzív)" -#: part/models.py:695 +#: part/models.py:694 #, python-brace-format msgid "IPN must match regex pattern {pattern}" msgstr "Az IPN belső cikkszámnak illeszkednie kell a {pattern} regex mintára" -#: part/models.py:703 +#: part/models.py:702 msgid "Part cannot be a revision of itself" -msgstr "" +msgstr "Alkatrész nem lehes saját magának verziója" -#: part/models.py:710 +#: part/models.py:709 msgid "Cannot make a revision of a part which is already a revision" -msgstr "" +msgstr "Nem lehet olyan alkatrészből új verziót csinálni ami már eleve egy verzió" -#: part/models.py:717 +#: part/models.py:716 msgid "Revision code must be specified" -msgstr "" +msgstr "Verzió kódot meg kell adni" -#: part/models.py:724 +#: part/models.py:723 msgid "Revisions are only allowed for assembly parts" -msgstr "" +msgstr "Verziók csak összeállított alkatrészeknél engedélyezettek" -#: part/models.py:731 +#: part/models.py:730 msgid "Cannot make a revision of a template part" -msgstr "" +msgstr "Nem lehet sablon alkatrészből új verziót csinálni" -#: part/models.py:737 +#: part/models.py:736 msgid "Parent part must point to the same template" -msgstr "" +msgstr "A szülő alkatrésznek azonos sablonra kell mutatnia" -#: part/models.py:816 +#: part/models.py:832 msgid "Stock item with this serial number already exists" msgstr "Létezik már készlet tétel ilyen a sorozatszámmal" -#: part/models.py:917 +#: part/models.py:976 msgid "Duplicate IPN not allowed in part settings" msgstr "Azonos IPN nem engedélyezett az alkatrészekre, már létezik ilyen" -#: part/models.py:926 +#: part/models.py:988 msgid "Duplicate part revision already exists." -msgstr "" +msgstr "Adott alkatrész verzióból már létezik egy." -#: part/models.py:936 +#: part/models.py:997 msgid "Part with this Name, IPN and Revision already exists." msgstr "Ilyen nevű, IPN-ű és reviziójú alkatrész már létezik." -#: part/models.py:951 +#: part/models.py:1012 msgid "Parts cannot be assigned to structural part categories!" msgstr "Szerkezeti kategóriákhoz nem lehet alkatrészeket rendelni!" -#: part/models.py:983 part/models.py:4102 +#: part/models.py:1044 part/models.py:4160 msgid "Part name" msgstr "Alkatrész neve" -#: part/models.py:988 +#: part/models.py:1049 msgid "Is Template" msgstr "Sablon-e" -#: part/models.py:989 +#: part/models.py:1050 msgid "Is this part a template part?" msgstr "Ez egy sablon alkatrész?" -#: part/models.py:999 +#: part/models.py:1060 msgid "Is this part a variant of another part?" msgstr "Ez az alkatrész egy másik változata?" -#: part/models.py:1007 +#: part/models.py:1068 msgid "Part description (optional)" msgstr "Alkatrész leírása (opcionális)" -#: part/models.py:1015 +#: part/models.py:1076 msgid "Part keywords to improve visibility in search results" msgstr "Alkatrész kulcsszavak amik segítik a megjelenést a keresési eredményekben" -#: part/models.py:1025 +#: part/models.py:1086 msgid "Part category" msgstr "Alkatrész kategória" -#: part/models.py:1040 +#: part/models.py:1101 msgid "Part revision or version number" msgstr "Alkatrész változat vagy verziószám (pl. szín, hossz, revízió, stb.)" -#: part/models.py:1050 +#: part/models.py:1111 msgid "Is this part a revision of another part?" -msgstr "" +msgstr "Ez egy másik alkatrész egy verziója?" -#: part/models.py:1051 part/templates/part/part_base.html:277 +#: part/models.py:1112 part/templates/part/part_base.html:285 msgid "Revision Of" -msgstr "" +msgstr "Ennek a verziója" -#: part/models.py:1075 +#: part/models.py:1136 msgid "Where is this item normally stored?" msgstr "Alapban hol tároljuk ezt az alkatrészt?" -#: part/models.py:1121 part/templates/part/part_base.html:385 +#: part/models.py:1182 part/templates/part/part_base.html:393 msgid "Default Supplier" msgstr "Alapértelmezett beszállító" -#: part/models.py:1122 +#: part/models.py:1183 msgid "Default supplier part" msgstr "Alapértelmezett beszállítói alkatrész" -#: part/models.py:1129 +#: part/models.py:1190 msgid "Default Expiry" msgstr "Alapértelmezett lejárat" -#: part/models.py:1130 +#: part/models.py:1191 msgid "Expiry time (in days) for stock items of this part" msgstr "Lejárati idő (napban) ennek az alkatrésznek a készleteire" -#: part/models.py:1139 +#: part/models.py:1200 msgid "Minimum allowed stock level" msgstr "Minimálisan megengedett készlet mennyiség" -#: part/models.py:1148 +#: part/models.py:1209 msgid "Units of measure for this part" msgstr "Alkatrész mértékegysége" -#: part/models.py:1155 +#: part/models.py:1216 msgid "Can this part be built from other parts?" msgstr "Gyártható-e ez az alkatrész más alkatrészekből?" -#: part/models.py:1161 +#: part/models.py:1222 msgid "Can this part be used to build other parts?" msgstr "Felhasználható-e ez az alkatrész más alkatrészek gyártásához?" -#: part/models.py:1167 +#: part/models.py:1228 msgid "Does this part have tracking for unique items?" msgstr "Kell-e külön követni az egyes példányait ennek az alkatrésznek?" -#: part/models.py:1173 +#: part/models.py:1234 msgid "Can this part have test results recorded against it?" -msgstr "" +msgstr "Lehet ehhez az alkatrészhez több ellenőrzési eredményt rögzíteni?" -#: part/models.py:1179 +#: part/models.py:1240 msgid "Can this part be purchased from external suppliers?" msgstr "Rendelhető-e ez az alkatrész egy külső beszállítótól?" -#: part/models.py:1185 +#: part/models.py:1246 msgid "Can this part be sold to customers?" msgstr "Értékesíthető-e önmagában ez az alkatrész a vevőknek?" -#: part/models.py:1189 +#: part/models.py:1250 msgid "Is this part active?" msgstr "Aktív-e ez az alkatrész?" -#: part/models.py:1194 templates/js/translated/part.js:821 +#: part/models.py:1255 templates/js/translated/part.js:821 #: templates/js/translated/table_filters.js:724 msgid "Locked" -msgstr "" +msgstr "Lezárt" -#: part/models.py:1195 +#: part/models.py:1256 msgid "Locked parts cannot be edited" -msgstr "" +msgstr "Lezárt alkatrészt nem lehet szerkeszteni" -#: part/models.py:1201 +#: part/models.py:1262 msgid "Is this a virtual part, such as a software product or license?" msgstr "Ez egy virtuális nem megfogható alkatrész, pl. szoftver vagy licenc?" -#: part/models.py:1207 +#: part/models.py:1268 msgid "BOM checksum" msgstr "Alkatrészjegyzék ellenőrző összeg" -#: part/models.py:1208 +#: part/models.py:1269 msgid "Stored BOM checksum" msgstr "Tárolt alkatrészjegyzék ellenőrző összeg" -#: part/models.py:1216 +#: part/models.py:1277 msgid "BOM checked by" msgstr "Alkatrészjegyzéket ellenőrizte" -#: part/models.py:1221 +#: part/models.py:1282 msgid "BOM checked date" msgstr "Alkatrészjegyzék ellenőrzési dátuma" -#: part/models.py:1237 +#: part/models.py:1298 msgid "Creation User" msgstr "Létrehozó" -#: part/models.py:1247 +#: part/models.py:1308 msgid "Owner responsible for this part" msgstr "Alkatrész felelőse" -#: part/models.py:1252 part/templates/part/part_base.html:348 -#: stock/templates/stock/item_base.html:451 +#: part/models.py:1313 part/templates/part/part_base.html:356 +#: stock/templates/stock/item_base.html:448 #: templates/js/translated/part.js:2490 msgid "Last Stocktake" msgstr "Utolsó leltár" -#: part/models.py:2125 +#: part/models.py:2185 msgid "Sell multiple" msgstr "Több értékesítése" -#: part/models.py:3116 +#: part/models.py:3167 msgid "Currency used to cache pricing calculations" msgstr "Árszámítások gyorstárazásához használt pénznem" -#: part/models.py:3132 +#: part/models.py:3183 msgid "Minimum BOM Cost" msgstr "Minimum alkatrészjegyzék költség" -#: part/models.py:3133 +#: part/models.py:3184 msgid "Minimum cost of component parts" msgstr "Összetevők minimum költsége" -#: part/models.py:3139 +#: part/models.py:3190 msgid "Maximum BOM Cost" msgstr "Maximum alkatrészjegyzék költség" -#: part/models.py:3140 +#: part/models.py:3191 msgid "Maximum cost of component parts" msgstr "Összetevők maximum költsége" -#: part/models.py:3146 +#: part/models.py:3197 msgid "Minimum Purchase Cost" msgstr "Minimum beszerzési ár" -#: part/models.py:3147 +#: part/models.py:3198 msgid "Minimum historical purchase cost" msgstr "Eddigi minimum beszerzési költség" -#: part/models.py:3153 +#: part/models.py:3204 msgid "Maximum Purchase Cost" msgstr "Maximum beszerzési ár" -#: part/models.py:3154 +#: part/models.py:3205 msgid "Maximum historical purchase cost" msgstr "Eddigi maximum beszerzési költség" -#: part/models.py:3160 +#: part/models.py:3211 msgid "Minimum Internal Price" msgstr "Minimum belső ár" -#: part/models.py:3161 +#: part/models.py:3212 msgid "Minimum cost based on internal price breaks" msgstr "Minimum költség a belső ársávok alapján" -#: part/models.py:3167 +#: part/models.py:3218 msgid "Maximum Internal Price" msgstr "Maximum belső ár" -#: part/models.py:3168 +#: part/models.py:3219 msgid "Maximum cost based on internal price breaks" msgstr "Maximum költség a belső ársávok alapján" -#: part/models.py:3174 +#: part/models.py:3225 msgid "Minimum Supplier Price" msgstr "Minimum beszállítói ár" -#: part/models.py:3175 +#: part/models.py:3226 msgid "Minimum price of part from external suppliers" msgstr "Minimum alkatrész ár a beszállítóktól" -#: part/models.py:3181 +#: part/models.py:3232 msgid "Maximum Supplier Price" msgstr "Maximum beszállítói ár" -#: part/models.py:3182 +#: part/models.py:3233 msgid "Maximum price of part from external suppliers" msgstr "Maximum alkatrész ár a beszállítóktól" -#: part/models.py:3188 +#: part/models.py:3239 msgid "Minimum Variant Cost" msgstr "Minimum alkatrészváltozat ár" -#: part/models.py:3189 +#: part/models.py:3240 msgid "Calculated minimum cost of variant parts" msgstr "Alkatrészváltozatok számolt minimum költsége" -#: part/models.py:3195 +#: part/models.py:3246 msgid "Maximum Variant Cost" msgstr "Maximum alkatrészváltozat ár" -#: part/models.py:3196 +#: part/models.py:3247 msgid "Calculated maximum cost of variant parts" msgstr "Alkatrészváltozatok számolt maximum költsége" -#: part/models.py:3203 +#: part/models.py:3254 msgid "Override minimum cost" msgstr "Minimum költség felülbírálása" -#: part/models.py:3210 +#: part/models.py:3261 msgid "Override maximum cost" msgstr "Maximum költség felülbírálása" -#: part/models.py:3217 +#: part/models.py:3268 msgid "Calculated overall minimum cost" msgstr "Számított általános minimum költség" -#: part/models.py:3224 +#: part/models.py:3275 msgid "Calculated overall maximum cost" msgstr "Számított általános maximum költség" -#: part/models.py:3230 +#: part/models.py:3281 msgid "Minimum Sale Price" msgstr "Minimum eladási ár" -#: part/models.py:3231 +#: part/models.py:3282 msgid "Minimum sale price based on price breaks" msgstr "Minimum eladási ár az ársávok alapján" -#: part/models.py:3237 +#: part/models.py:3288 msgid "Maximum Sale Price" msgstr "Maximum eladási ár" -#: part/models.py:3238 +#: part/models.py:3289 msgid "Maximum sale price based on price breaks" msgstr "Maximum eladási ár az ársávok alapján" -#: part/models.py:3244 +#: part/models.py:3295 msgid "Minimum Sale Cost" msgstr "Minimum eladási költség" -#: part/models.py:3245 +#: part/models.py:3296 msgid "Minimum historical sale price" msgstr "Eddigi minimum eladási ár" -#: part/models.py:3251 +#: part/models.py:3302 msgid "Maximum Sale Cost" msgstr "Maximum eladási költség" -#: part/models.py:3252 +#: part/models.py:3303 msgid "Maximum historical sale price" msgstr "Eddigi maximum eladási ár" -#: part/models.py:3271 +#: part/models.py:3322 msgid "Part for stocktake" msgstr "Leltározható alkatrész" -#: part/models.py:3276 +#: part/models.py:3327 msgid "Item Count" msgstr "Tételszám" -#: part/models.py:3277 +#: part/models.py:3328 msgid "Number of individual stock entries at time of stocktake" msgstr "Egyedi készlet tételek száma a leltárkor" -#: part/models.py:3285 +#: part/models.py:3336 msgid "Total available stock at time of stocktake" msgstr "Teljes készlet a leltárkor" -#: part/models.py:3289 part/models.py:3372 +#: part/models.py:3340 part/models.py:3423 part/serializers.py:263 #: part/templates/part/part_scheduling.html:13 #: report/templates/report/inventree_test_report.html:106 #: templates/InvenTree/settings/plugin_settings.html:37 #: templates/InvenTree/settings/settings_staff_js.html:543 -#: templates/js/translated/part.js:1092 templates/js/translated/pricing.js:826 -#: templates/js/translated/pricing.js:950 -#: templates/js/translated/purchase_order.js:1801 -#: templates/js/translated/stock.js:2905 +#: templates/js/translated/part.js:1092 templates/js/translated/pricing.js:824 +#: templates/js/translated/pricing.js:948 +#: templates/js/translated/purchase_order.js:1785 +#: templates/js/translated/stock.js:2906 msgid "Date" msgstr "Dátum" -#: part/models.py:3290 +#: part/models.py:3341 msgid "Date stocktake was performed" msgstr "Leltározva ekkor" -#: part/models.py:3298 +#: part/models.py:3349 msgid "Additional notes" msgstr "További megjegyzések" -#: part/models.py:3308 +#: part/models.py:3359 msgid "User who performed this stocktake" msgstr "Leltározta" -#: part/models.py:3314 +#: part/models.py:3365 msgid "Minimum Stock Cost" msgstr "Minimum készlet érték" -#: part/models.py:3315 +#: part/models.py:3366 msgid "Estimated minimum cost of stock on hand" msgstr "Becsült minimum raktárkészlet érték" -#: part/models.py:3321 +#: part/models.py:3372 msgid "Maximum Stock Cost" msgstr "Maximum készlet érték" -#: part/models.py:3322 +#: part/models.py:3373 msgid "Estimated maximum cost of stock on hand" msgstr "Becsült maximum raktárkészlet érték" -#: part/models.py:3378 templates/InvenTree/settings/settings_staff_js.html:532 +#: part/models.py:3429 templates/InvenTree/settings/settings_staff_js.html:532 msgid "Report" msgstr "Riport" -#: part/models.py:3379 +#: part/models.py:3430 msgid "Stocktake report file (generated internally)" msgstr "Leltár riport fájl (generált)" -#: part/models.py:3384 templates/InvenTree/settings/settings_staff_js.html:539 +#: part/models.py:3435 templates/InvenTree/settings/settings_staff_js.html:539 msgid "Part Count" msgstr "Alkatrész szám" -#: part/models.py:3385 +#: part/models.py:3436 msgid "Number of parts covered by stocktake" msgstr "Leltározott alkatrészek száma" -#: part/models.py:3395 +#: part/models.py:3446 msgid "User who requested this stocktake report" msgstr "Felhasználó aki a leltár riportot kérte" -#: part/models.py:3405 +#: part/models.py:3456 msgid "Part Sale Price Break" -msgstr "" +msgstr "Alkatrész értékesítési ársáv" -#: part/models.py:3517 +#: part/models.py:3568 msgid "Part Test Template" -msgstr "" +msgstr "Alkatrész Teszt Sablon" -#: part/models.py:3543 +#: part/models.py:3594 msgid "Invalid template name - must include at least one alphanumeric character" msgstr "Hibás sablon név - legalább egy alfanumerikus karakter kötelező" -#: part/models.py:3564 part/models.py:3733 +#: part/models.py:3615 part/models.py:3784 msgid "Choices must be unique" msgstr "A lehetőségek egyediek kell legyenek" -#: part/models.py:3575 -msgid "Test templates can only be created for trackable parts" -msgstr "Teszt sablont csak követésre kötelezett alkatrészhez lehet csinálni" +#: part/models.py:3626 +msgid "Test templates can only be created for testable parts" +msgstr "Teszt sablont csak ellenőrizhetőre beállított alkatrészhez lehet csinálni" -#: part/models.py:3586 +#: part/models.py:3637 msgid "Test template with the same key already exists for part" msgstr "Már létezik ilyen azonosítójú Teszt sablon ehhez az alkatrészhez" -#: part/models.py:3603 templates/js/translated/part.js:2898 +#: part/models.py:3654 templates/js/translated/part.js:2898 msgid "Test Name" msgstr "Teszt név" -#: part/models.py:3604 +#: part/models.py:3655 msgid "Enter a name for the test" msgstr "Add meg a teszt nevét" -#: part/models.py:3610 +#: part/models.py:3661 msgid "Test Key" msgstr "Teszt azonosító" -#: part/models.py:3611 +#: part/models.py:3662 msgid "Simplified key for the test" msgstr "Egyszerűsített Teszt azonosító" -#: part/models.py:3618 +#: part/models.py:3669 msgid "Test Description" msgstr "Teszt leírása" -#: part/models.py:3619 +#: part/models.py:3670 msgid "Enter description for this test" msgstr "Adj hozzá egy leírást ehhez a teszthez" -#: part/models.py:3623 report/models.py:208 +#: part/models.py:3674 report/models.py:216 #: templates/js/translated/part.js:2919 #: templates/js/translated/table_filters.js:502 msgid "Enabled" msgstr "Engedélyezve" -#: part/models.py:3623 +#: part/models.py:3674 msgid "Is this test enabled?" msgstr "Teszt engedélyezve?" -#: part/models.py:3628 templates/js/translated/part.js:2927 +#: part/models.py:3679 templates/js/translated/part.js:2927 #: templates/js/translated/table_filters.js:498 msgid "Required" msgstr "Kötelező" -#: part/models.py:3629 +#: part/models.py:3680 msgid "Is this test required to pass?" msgstr "Szükséges-e hogy ez a teszt sikeres legyen?" -#: part/models.py:3634 templates/js/translated/part.js:2935 +#: part/models.py:3685 templates/js/translated/part.js:2935 msgid "Requires Value" msgstr "Kötelező érték" -#: part/models.py:3635 +#: part/models.py:3686 msgid "Does this test require a value when adding a test result?" msgstr "Szükséges-e hogy ennek a tesztnek az eredményéhez kötelezően érték legyen rendelve?" -#: part/models.py:3640 templates/js/translated/part.js:2942 +#: part/models.py:3691 templates/js/translated/part.js:2942 msgid "Requires Attachment" msgstr "Kötelező melléklet" -#: part/models.py:3642 +#: part/models.py:3693 msgid "Does this test require a file attachment when adding a test result?" msgstr "Szükséges-e hogy ennek a tesztnek az eredményéhez kötelezően fájl melléklet legyen rendelve?" -#: part/models.py:3648 part/models.py:3792 templates/js/translated/part.js:1643 +#: part/models.py:3699 part/models.py:3843 templates/js/translated/part.js:1643 msgid "Choices" msgstr "Lehetőségek" -#: part/models.py:3649 +#: part/models.py:3700 msgid "Valid choices for this test (comma-separated)" -msgstr "" +msgstr "Választható lehetőségek ehhez a Teszthez (vesszővel elválasztva)" -#: part/models.py:3681 +#: part/models.py:3732 msgid "Part Parameter Template" -msgstr "" +msgstr "Alkatrész Paraméter Sablon" -#: part/models.py:3708 +#: part/models.py:3759 msgid "Checkbox parameters cannot have units" msgstr "Jelölőnégyzet paraméternek nem lehet mértékegysége" -#: part/models.py:3713 +#: part/models.py:3764 msgid "Checkbox parameters cannot have choices" msgstr "Jelölőnégyzet paraméternek nem lehetnek választási lehetőségei" -#: part/models.py:3750 +#: part/models.py:3801 msgid "Parameter template name must be unique" msgstr "A paraméter sablon nevének egyedinek kell lennie" -#: part/models.py:3765 +#: part/models.py:3816 msgid "Parameter Name" msgstr "Paraméter neve" -#: part/models.py:3772 +#: part/models.py:3823 msgid "Physical units for this parameter" msgstr "Paraméter mértékegysége" -#: part/models.py:3780 +#: part/models.py:3831 msgid "Parameter description" msgstr "Paraméter leírása" -#: part/models.py:3786 templates/js/translated/part.js:1634 +#: part/models.py:3837 templates/js/translated/part.js:1634 #: templates/js/translated/table_filters.js:837 msgid "Checkbox" msgstr "Jelölőnégyzet" -#: part/models.py:3787 +#: part/models.py:3838 msgid "Is this parameter a checkbox?" msgstr "Ez a paraméter egy jelölőnégyzet?" -#: part/models.py:3793 +#: part/models.py:3844 msgid "Valid choices for this parameter (comma-separated)" msgstr "Választható lehetőségek (vesszővel elválasztva)" -#: part/models.py:3827 +#: part/models.py:3881 msgid "Part Parameter" -msgstr "" +msgstr "Alkatrész Paraméter" -#: part/models.py:3853 +#: part/models.py:3907 msgid "Parameter cannot be modified - part is locked" -msgstr "" +msgstr "Lezárt alkatrész Paramétere nem szerkeszthető" -#: part/models.py:3889 +#: part/models.py:3945 msgid "Invalid choice for parameter value" msgstr "Hibás választás a paraméterre" -#: part/models.py:3938 +#: part/models.py:3996 msgid "Parent Part" msgstr "Szülő alkatrész" -#: part/models.py:3946 part/models.py:4054 part/models.py:4055 +#: part/models.py:4004 part/models.py:4112 part/models.py:4113 #: templates/InvenTree/settings/settings_staff_js.html:295 msgid "Parameter Template" msgstr "Paraméter sablon" -#: part/models.py:3952 +#: part/models.py:4010 msgid "Parameter Value" msgstr "Paraméter értéke" -#: part/models.py:4002 +#: part/models.py:4060 msgid "Part Category Parameter Template" -msgstr "" +msgstr "Alkatrészcsoport Paraméter Sablon" -#: part/models.py:4061 templates/InvenTree/settings/settings_staff_js.html:304 +#: part/models.py:4119 templates/InvenTree/settings/settings_staff_js.html:304 msgid "Default Value" msgstr "Alapértelmezett érték" -#: part/models.py:4062 +#: part/models.py:4120 msgid "Default Parameter Value" msgstr "Alapértelmezett paraméter érték" -#: part/models.py:4100 +#: part/models.py:4158 msgid "Part ID or part name" msgstr "Alkatrész ID vagy alkatrész név" -#: part/models.py:4101 +#: part/models.py:4159 msgid "Unique part ID value" msgstr "Egyedi alkatrész ID értéke" -#: part/models.py:4103 +#: part/models.py:4161 msgid "Part IPN value" msgstr "Alkatrész IPN érték" -#: part/models.py:4104 +#: part/models.py:4162 msgid "Level" msgstr "Szint" -#: part/models.py:4104 +#: part/models.py:4162 msgid "BOM level" msgstr "Alkatrészjegyzék szint" -#: part/models.py:4215 +#: part/models.py:4272 msgid "BOM item cannot be modified - assembly is locked" -msgstr "" +msgstr "Alkatrészjegyzék nem szerkeszthető mert az összeállítás le van zárva" -#: part/models.py:4222 +#: part/models.py:4279 msgid "BOM item cannot be modified - variant assembly is locked" -msgstr "" +msgstr "Alkatrészjegyzék nem szerkeszthető mert az összeállítás változat le van zárva" -#: part/models.py:4232 +#: part/models.py:4289 msgid "Select parent part" msgstr "Szülő alkatrész kiválasztása" -#: part/models.py:4242 +#: part/models.py:4299 msgid "Sub part" msgstr "Al alkatrész" -#: part/models.py:4243 +#: part/models.py:4300 msgid "Select part to be used in BOM" msgstr "Válaszd ki az alkatrészjegyzékben használandó alkatrészt" -#: part/models.py:4254 +#: part/models.py:4311 msgid "BOM quantity for this BOM item" msgstr "Alkatrészjegyzék mennyiség ehhez az alkatrészjegyzék tételhez" -#: part/models.py:4260 +#: part/models.py:4317 msgid "This BOM item is optional" msgstr "Ez az alkatrészjegyzék tétel opcionális" -#: part/models.py:4266 +#: part/models.py:4323 msgid "This BOM item is consumable (it is not tracked in build orders)" msgstr "Ez az alkatrészjegyzék tétel fogyóeszköz (készlete nincs követve a gyártásban)" -#: part/models.py:4273 part/templates/part/upload_bom.html:55 +#: part/models.py:4330 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "Többlet" -#: part/models.py:4274 +#: part/models.py:4331 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "Becsült gyártási veszteség (abszolút vagy százalékos)" -#: part/models.py:4281 +#: part/models.py:4338 msgid "BOM item reference" msgstr "Alkatrészjegyzék tétel azonosító" -#: part/models.py:4289 +#: part/models.py:4346 msgid "BOM item notes" msgstr "Alkatrészjegyzék tétel megjegyzései" -#: part/models.py:4295 +#: part/models.py:4352 msgid "Checksum" msgstr "Ellenőrző összeg" -#: part/models.py:4296 +#: part/models.py:4353 msgid "BOM line checksum" msgstr "Alkatrészjegyzék sor ellenőrző összeg" -#: part/models.py:4301 templates/js/translated/table_filters.js:181 +#: part/models.py:4358 templates/js/translated/table_filters.js:181 msgid "Validated" msgstr "Jóváhagyva" -#: part/models.py:4302 +#: part/models.py:4359 msgid "This BOM item has been validated" msgstr "Ez a BOM tétel jóvá lett hagyva" -#: part/models.py:4307 part/templates/part/upload_bom.html:57 +#: part/models.py:4364 part/templates/part/upload_bom.html:57 #: templates/js/translated/bom.js:1054 #: templates/js/translated/table_filters.js:185 #: templates/js/translated/table_filters.js:218 msgid "Gets inherited" msgstr "Öröklődött" -#: part/models.py:4308 +#: part/models.py:4365 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "Ezt az alkatrészjegyzék tételt az alkatrész változatok alkatrészjegyzékei is öröklik" -#: part/models.py:4314 +#: part/models.py:4371 msgid "Stock items for variant parts can be used for this BOM item" msgstr "Alkatrészváltozatok készlet tételei használhatók ehhez az alkatrészjegyzék tételhez" -#: part/models.py:4399 stock/models.py:685 +#: part/models.py:4456 stock/models.py:762 msgid "Quantity must be integer value for trackable parts" msgstr "A mennyiség egész szám kell legyen a követésre kötelezett alkatrészek esetén" -#: part/models.py:4409 part/models.py:4411 +#: part/models.py:4466 part/models.py:4468 msgid "Sub part must be specified" msgstr "Al alkatrészt kötelező megadni" -#: part/models.py:4551 +#: part/models.py:4613 msgid "BOM Item Substitute" msgstr "Alkatrészjegyzék tétel helyettesítő" -#: part/models.py:4572 +#: part/models.py:4634 msgid "Substitute part cannot be the same as the master part" msgstr "A helyettesítő alkatrész nem lehet ugyanaz mint a fő alkatrész" -#: part/models.py:4585 +#: part/models.py:4647 msgid "Parent BOM item" msgstr "Szülő alkatrészjegyzék tétel" -#: part/models.py:4593 +#: part/models.py:4655 msgid "Substitute part" msgstr "Helyettesítő alkatrész" -#: part/models.py:4609 +#: part/models.py:4671 msgid "Part 1" msgstr "1.rész" -#: part/models.py:4617 +#: part/models.py:4679 msgid "Part 2" msgstr "2.rész" -#: part/models.py:4618 +#: part/models.py:4680 msgid "Select Related Part" msgstr "Válassz kapcsolódó alkatrészt" -#: part/models.py:4637 +#: part/models.py:4699 msgid "Part relationship cannot be created between a part and itself" msgstr "Alkatrész kapcsolat nem hozható létre önmagával" -#: part/models.py:4642 +#: part/models.py:4704 msgid "Duplicate relationship already exists" msgstr "Már létezik duplikált alkatrész kapcsolat" #: part/serializers.py:124 msgid "Parent Category" -msgstr "" +msgstr "Szülő Kategória" #: part/serializers.py:125 templates/js/translated/part.js:312 msgid "Parent part category" @@ -7450,340 +7663,352 @@ msgstr "Eredmények" msgid "Number of results recorded against this template" msgstr "Eszerint a sablon szerint rögzített eredmények száma" -#: part/serializers.py:225 part/serializers.py:243 stock/serializers.py:616 +#: part/serializers.py:225 part/serializers.py:243 stock/serializers.py:643 msgid "Purchase currency of this stock item" msgstr "Beszerzési pénzneme ennek a készlet tételnek" -#: part/serializers.py:291 +#: part/serializers.py:268 +msgid "Speculative Quantity" +msgstr "" + +#: part/serializers.py:277 +msgid "Model ID" +msgstr "" + +#: part/serializers.py:324 msgid "Number of parts using this template" msgstr "Ennyi alkatrész használja ezt a sablont" -#: part/serializers.py:421 +#: part/serializers.py:465 msgid "No parts selected" msgstr "Nincs kiválasztva alkatrész" -#: part/serializers.py:431 +#: part/serializers.py:475 msgid "Select category" msgstr "Válassz kategóriát" -#: part/serializers.py:466 +#: part/serializers.py:510 msgid "Original Part" msgstr "Eredeti alkatrész" -#: part/serializers.py:467 +#: part/serializers.py:511 msgid "Select original part to duplicate" msgstr "Válassz eredeti alkatrészt a másoláshoz" -#: part/serializers.py:472 +#: part/serializers.py:516 msgid "Copy Image" msgstr "Kép másolása" -#: part/serializers.py:473 +#: part/serializers.py:517 msgid "Copy image from original part" msgstr "Kép másolása az eredeti alkatrészről" -#: part/serializers.py:479 part/templates/part/detail.html:293 +#: part/serializers.py:523 part/templates/part/detail.html:293 msgid "Copy BOM" msgstr "Alkatrészjegyzék másolása" -#: part/serializers.py:480 +#: part/serializers.py:524 msgid "Copy bill of materials from original part" msgstr "Alkatrészjegyzék másolása az eredeti alkatrészről" -#: part/serializers.py:486 +#: part/serializers.py:530 msgid "Copy Parameters" msgstr "Paraméterek másolása" -#: part/serializers.py:487 +#: part/serializers.py:531 msgid "Copy parameter data from original part" msgstr "Paraméterek másolása az eredeti alkatrészről" -#: part/serializers.py:493 +#: part/serializers.py:537 msgid "Copy Notes" msgstr "Megjegyzések másolása" -#: part/serializers.py:494 +#: part/serializers.py:538 msgid "Copy notes from original part" msgstr "Megjegyzések másolása az eredeti alkatrészről" -#: part/serializers.py:512 +#: part/serializers.py:556 msgid "Initial Stock Quantity" msgstr "Kezdeti készlet mennyiség" -#: part/serializers.py:514 +#: part/serializers.py:558 msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added." msgstr "Add meg a kezdeti készlet mennyiséget. Ha nulla akkor nem lesz készlet létrehozva." -#: part/serializers.py:521 +#: part/serializers.py:565 msgid "Initial Stock Location" msgstr "Kezdeti készlet hely" -#: part/serializers.py:522 +#: part/serializers.py:566 msgid "Specify initial stock location for this Part" msgstr "Add meg a kezdeti készlet helyét" -#: part/serializers.py:539 +#: part/serializers.py:583 msgid "Select supplier (or leave blank to skip)" msgstr "Válassz beszállítót (hagyd üresen ha nem kell létrehozni)" -#: part/serializers.py:555 +#: part/serializers.py:599 msgid "Select manufacturer (or leave blank to skip)" msgstr "Válassz gyártót (hagyd üresen ha nem kell létrehozni)" -#: part/serializers.py:565 +#: part/serializers.py:609 msgid "Manufacturer part number" msgstr "Gyártói cikkszám" -#: part/serializers.py:572 +#: part/serializers.py:616 msgid "Selected company is not a valid supplier" msgstr "A kiválasztott cég nem érvényes beszállító" -#: part/serializers.py:581 +#: part/serializers.py:625 msgid "Selected company is not a valid manufacturer" msgstr "A kiválasztott cég nem érvényes gyártó" -#: part/serializers.py:592 +#: part/serializers.py:636 msgid "Manufacturer part matching this MPN already exists" msgstr "Van már ilyen gyártói alkatrész" -#: part/serializers.py:599 +#: part/serializers.py:643 msgid "Supplier part matching this SKU already exists" msgstr "Van már ilyen beszállítói alkatrész" -#: part/serializers.py:903 +#: part/serializers.py:955 msgid "Revisions" -msgstr "" +msgstr "Verziók" -#: part/serializers.py:908 +#: part/serializers.py:960 msgid "Unallocated Stock" msgstr "Nem lefoglalt készlet" -#: part/serializers.py:911 +#: part/serializers.py:963 msgid "Variant Stock" msgstr "Variánsok Raktárkészlet" -#: part/serializers.py:941 part/templates/part/copy_part.html:9 +#: part/serializers.py:993 part/templates/part/copy_part.html:9 #: templates/js/translated/part.js:474 msgid "Duplicate Part" msgstr "Alkatrész másolása" -#: part/serializers.py:942 +#: part/serializers.py:994 msgid "Copy initial data from another Part" msgstr "Kezdeti adatok másolása egy másik alkatrészről" -#: part/serializers.py:948 templates/js/translated/part.js:103 +#: part/serializers.py:1000 templates/js/translated/part.js:103 msgid "Initial Stock" msgstr "Kezdeti készlet" -#: part/serializers.py:949 +#: part/serializers.py:1001 msgid "Create Part with initial stock quantity" msgstr "Kezdeti készlet mennyiség létrehozása" -#: part/serializers.py:955 +#: part/serializers.py:1007 msgid "Supplier Information" msgstr "Beszállító információ" -#: part/serializers.py:956 +#: part/serializers.py:1008 msgid "Add initial supplier information for this part" msgstr "Kezdeti beszállító adatok hozzáadása" -#: part/serializers.py:964 +#: part/serializers.py:1016 msgid "Copy Category Parameters" msgstr "Kategória paraméterek másolása" -#: part/serializers.py:965 +#: part/serializers.py:1017 msgid "Copy parameter templates from selected part category" msgstr "Paraméter sablonok másolása a kiválasztott alkatrész kategóriából" -#: part/serializers.py:970 +#: part/serializers.py:1022 msgid "Existing Image" msgstr "Meglévő kép" -#: part/serializers.py:971 +#: part/serializers.py:1023 msgid "Filename of an existing part image" msgstr "A meglévő alkatrész képfájl neve" -#: part/serializers.py:988 +#: part/serializers.py:1040 msgid "Image file does not exist" msgstr "A képfájl nem létezik" -#: part/serializers.py:1194 +#: part/serializers.py:1247 msgid "Limit stocktake report to a particular part, and any variant parts" msgstr "Leltár riport korlátozása bizonyos alkatrészre és variánsra" -#: part/serializers.py:1204 +#: part/serializers.py:1257 msgid "Limit stocktake report to a particular part category, and any child categories" msgstr "Leltár riport korlátozása bizonyos alkatrész kategóriára és az alatta lévőkre" -#: part/serializers.py:1214 +#: part/serializers.py:1267 msgid "Limit stocktake report to a particular stock location, and any child locations" msgstr "Leltár riport korlátozása bizonyos készlethelyre és az alatta lévőkre" -#: part/serializers.py:1220 +#: part/serializers.py:1273 msgid "Exclude External Stock" msgstr "Külső készlet nélkül" -#: part/serializers.py:1221 +#: part/serializers.py:1274 msgid "Exclude stock items in external locations" msgstr "Külső helyeken lévő készlet nélkül" -#: part/serializers.py:1226 +#: part/serializers.py:1279 msgid "Generate Report" msgstr "Riport létrehozása" -#: part/serializers.py:1227 +#: part/serializers.py:1280 msgid "Generate report file containing calculated stocktake data" msgstr "Riport fájl létrehozása a számított leltár adatokkal" -#: part/serializers.py:1232 +#: part/serializers.py:1285 msgid "Update Parts" msgstr "Alaktrészek frissítése" -#: part/serializers.py:1233 +#: part/serializers.py:1286 msgid "Update specified parts with calculated stocktake data" msgstr "Megadott alkatrészek frissítése a számított leltár adatokkal" -#: part/serializers.py:1241 +#: part/serializers.py:1294 msgid "Stocktake functionality is not enabled" msgstr "Leltár funkció nincs engedélyezve" -#: part/serializers.py:1347 +#: part/serializers.py:1299 +msgid "Background worker check failed" +msgstr "Háttér folyamat ellenőrzés sikertelen" + +#: part/serializers.py:1401 msgid "Override calculated value for minimum price" msgstr "Számított minimum ár felülbírálása" -#: part/serializers.py:1354 +#: part/serializers.py:1408 msgid "Minimum price currency" msgstr "Minimum ár pénzneme" -#: part/serializers.py:1362 +#: part/serializers.py:1416 msgid "Override calculated value for maximum price" msgstr "Számított maximum ár felülbírálása" -#: part/serializers.py:1369 +#: part/serializers.py:1423 msgid "Maximum price currency" msgstr "Maximum ár pénzneme" -#: part/serializers.py:1398 +#: part/serializers.py:1452 msgid "Update" msgstr "Frissítés" -#: part/serializers.py:1399 +#: part/serializers.py:1453 msgid "Update pricing for this part" msgstr "Alkatrész árak frissítése" -#: part/serializers.py:1422 +#: part/serializers.py:1476 #, python-brace-format msgid "Could not convert from provided currencies to {default_currency}" msgstr "Megadott pénznem átváltása {default_currency}-re sikertelen" -#: part/serializers.py:1429 +#: part/serializers.py:1483 msgid "Minimum price must not be greater than maximum price" msgstr "A Minimum ár nem lehet nagyobb mint a Maximum ár" -#: part/serializers.py:1432 +#: part/serializers.py:1486 msgid "Maximum price must not be less than minimum price" msgstr "A Maximum ár nem lehet kisebb mint a Minimum ár" -#: part/serializers.py:1576 +#: part/serializers.py:1634 msgid "Select the parent assembly" -msgstr "" +msgstr "Szülő összeállítás kiválasztása" -#: part/serializers.py:1585 +#: part/serializers.py:1643 msgid "Component Name" -msgstr "" +msgstr "Összetevő neve" -#: part/serializers.py:1588 +#: part/serializers.py:1646 msgid "Component IPN" -msgstr "" +msgstr "Összetevő Cikkszám" -#: part/serializers.py:1591 +#: part/serializers.py:1649 msgid "Component Description" -msgstr "" +msgstr "Összetevő Leírás" -#: part/serializers.py:1597 +#: part/serializers.py:1655 msgid "Select the component part" -msgstr "" +msgstr "Összetevő alkatrész kijelölése" -#: part/serializers.py:1606 part/templates/part/part_base.html:235 +#: part/serializers.py:1664 part/templates/part/part_base.html:243 #: templates/js/translated/bom.js:1219 msgid "Can Build" msgstr "Gyártható" -#: part/serializers.py:1837 +#: part/serializers.py:1899 msgid "Select part to copy BOM from" msgstr "Válassz alkatrészt ahonnan az alkatrészjegyzéket másoljuk" -#: part/serializers.py:1845 +#: part/serializers.py:1907 msgid "Remove Existing Data" msgstr "Létező adat törlése" -#: part/serializers.py:1846 +#: part/serializers.py:1908 msgid "Remove existing BOM items before copying" msgstr "Meglévő alkatrészjegyzék tételek törlése a másolás előtt" -#: part/serializers.py:1851 +#: part/serializers.py:1913 msgid "Include Inherited" msgstr "Örököltekkel együtt" -#: part/serializers.py:1852 +#: part/serializers.py:1914 msgid "Include BOM items which are inherited from templated parts" msgstr "Sablon alkatrészektől örökölt alkatrészjegyzék tételek használata" -#: part/serializers.py:1857 +#: part/serializers.py:1919 msgid "Skip Invalid Rows" msgstr "Hibás sorok kihagyása" -#: part/serializers.py:1858 +#: part/serializers.py:1920 msgid "Enable this option to skip invalid rows" msgstr "Engedély a hibás sorok kihagyására" -#: part/serializers.py:1863 +#: part/serializers.py:1925 msgid "Copy Substitute Parts" msgstr "Helyettesítő alkatrészek másolása" -#: part/serializers.py:1864 +#: part/serializers.py:1926 msgid "Copy substitute parts when duplicate BOM items" msgstr "Helyettesítő alkatrészek másolása az alkatrészjegyzék tételek másolásakor" -#: part/serializers.py:1901 +#: part/serializers.py:1963 msgid "Clear Existing BOM" msgstr "Meglévő alkatrészjegyzék törlése" -#: part/serializers.py:1902 +#: part/serializers.py:1964 msgid "Delete existing BOM items before uploading" msgstr "Meglévő alkatrészjegyzék tételek törlése a feltöltés előtt" -#: part/serializers.py:1934 +#: part/serializers.py:1996 msgid "No part column specified" msgstr "Nincs megadva alkatrész oszlop" -#: part/serializers.py:1978 +#: part/serializers.py:2040 msgid "Multiple matching parts found" msgstr "Több egyező alkatrész is található" -#: part/serializers.py:1981 +#: part/serializers.py:2043 msgid "No matching part found" msgstr "Nincs egyező alkatrész" -#: part/serializers.py:1984 +#: part/serializers.py:2045 msgid "Part is not designated as a component" msgstr "Az alkatrész nem lett összetevőként jelölve" -#: part/serializers.py:1993 +#: part/serializers.py:2054 msgid "Quantity not provided" msgstr "Mennyiség nincs megadva" -#: part/serializers.py:2001 +#: part/serializers.py:2062 msgid "Invalid quantity" msgstr "Érvénytelen mennyiség" -#: part/serializers.py:2024 +#: part/serializers.py:2085 msgid "At least one BOM item is required" msgstr "Legalább egy alkatrészjegyzék tétel szükséges" #: part/stocktake.py:224 templates/js/translated/part.js:1073 #: templates/js/translated/part.js:1828 templates/js/translated/part.js:1884 -#: templates/js/translated/purchase_order.js:2154 +#: templates/js/translated/purchase_order.js:2138 msgid "Total Quantity" msgstr "Teljes mennyiség" @@ -7933,9 +8158,9 @@ msgid "Add stocktake information" msgstr "Leltár információ hozzáadása" #: part/templates/part/detail.html:67 part/templates/part/part_sidebar.html:50 -#: stock/admin.py:255 templates/InvenTree/settings/part_stocktake.html:30 +#: stock/admin.py:256 templates/InvenTree/settings/part_stocktake.html:30 #: templates/InvenTree/settings/sidebar.html:53 -#: templates/js/translated/stock.js:2301 users/models.py:204 +#: templates/js/translated/stock.js:2302 users/models.py:204 msgid "Stocktake" msgstr "Leltár" @@ -7949,7 +8174,7 @@ msgstr "Teszt sablon hozzáadása" #: part/templates/part/detail.html:106 msgid "Part Test Statistics" -msgstr "" +msgstr "Alkatrész Ellenőrzési Statisztika" #: part/templates/part/detail.html:155 stock/templates/stock/item.html:49 msgid "Sales Order Allocations" @@ -8094,142 +8319,146 @@ msgstr "Fájlfomátum kiválasztása" msgid "Part List" msgstr "Alkatrész lista" -#: part/templates/part/part_base.html:25 part/templates/part/part_base.html:29 +#: part/templates/part/part_base.html:26 part/templates/part/part_base.html:30 msgid "You are subscribed to notifications for this part" msgstr "Értesítések beállítva erre az alkatrészre" -#: part/templates/part/part_base.html:33 +#: part/templates/part/part_base.html:34 msgid "Subscribe to notifications for this part" msgstr "Értesítések kérése erre az alkatrészre" -#: part/templates/part/part_base.html:52 +#: part/templates/part/part_base.html:53 #: stock/templates/stock/item_base.html:62 -#: stock/templates/stock/location.html:71 templates/js/translated/label.js:136 +#: stock/templates/stock/location.html:72 templates/js/translated/label.js:136 msgid "Print Label" msgstr "Címke nyomtatása" -#: part/templates/part/part_base.html:58 +#: part/templates/part/part_base.html:59 msgid "Show pricing information" msgstr "Árinformációk megjelenítése" -#: part/templates/part/part_base.html:63 -#: stock/templates/stock/item_base.html:110 -#: stock/templates/stock/location.html:80 +#: part/templates/part/part_base.html:64 +#: stock/templates/stock/item_base.html:107 +#: stock/templates/stock/location.html:81 msgid "Stock actions" msgstr "Készlet műveletek" -#: part/templates/part/part_base.html:70 +#: part/templates/part/part_base.html:71 msgid "Count part stock" msgstr "Készlet számolása" -#: part/templates/part/part_base.html:76 +#: part/templates/part/part_base.html:77 msgid "Transfer part stock" msgstr "Készlet áthelyezése" -#: part/templates/part/part_base.html:91 templates/js/translated/part.js:2299 +#: part/templates/part/part_base.html:92 templates/js/translated/part.js:2299 msgid "Part actions" msgstr "Készlet műveletek" -#: part/templates/part/part_base.html:94 +#: part/templates/part/part_base.html:95 msgid "Duplicate part" msgstr "Alkatrész másolása" -#: part/templates/part/part_base.html:97 +#: part/templates/part/part_base.html:98 msgid "Edit part" msgstr "Alkatrész szerkesztése" -#: part/templates/part/part_base.html:100 +#: part/templates/part/part_base.html:101 msgid "Delete part" msgstr "Alkatrész törlése" -#: part/templates/part/part_base.html:119 +#: part/templates/part/part_base.html:120 msgid "Part is a template part (variants can be made from this part)" msgstr "Sablon alkatrész (változatok létrehozhatók belőle)" -#: part/templates/part/part_base.html:123 +#: part/templates/part/part_base.html:124 msgid "Part can be assembled from other parts" msgstr "Ez az alkatrész gyártható másik alkatrészekből" -#: part/templates/part/part_base.html:127 +#: part/templates/part/part_base.html:128 msgid "Part can be used in assemblies" msgstr "Használható más alkatrészek gyártásához" -#: part/templates/part/part_base.html:131 +#: part/templates/part/part_base.html:132 msgid "Part stock is tracked by serial number" msgstr "Készlet sorozatszám alapján követendő" -#: part/templates/part/part_base.html:135 +#: part/templates/part/part_base.html:136 msgid "Part can be purchased from external suppliers" msgstr "Beszállítótól rendelhető" -#: part/templates/part/part_base.html:139 +#: part/templates/part/part_base.html:140 msgid "Part can be sold to customers" msgstr "Vevő által rendelhető, eladható" -#: part/templates/part/part_base.html:145 +#: part/templates/part/part_base.html:146 msgid "Part is not active" msgstr "Az alkatrész nem aktív" -#: part/templates/part/part_base.html:153 +#: part/templates/part/part_base.html:154 msgid "Part is virtual (not a physical part)" msgstr "Virtuális (nem kézzelfogható alkatrész)" -#: part/templates/part/part_base.html:163 -#: part/templates/part/part_base.html:690 +#: part/templates/part/part_base.html:164 +#: part/templates/part/part_base.html:698 msgid "Show Part Details" msgstr "Alkatrész részletei" #: part/templates/part/part_base.html:218 -#: stock/templates/stock/item_base.html:388 +msgid "Required for Orders" +msgstr "Rendeléshez szükséges" + +#: part/templates/part/part_base.html:226 +#: stock/templates/stock/item_base.html:385 msgid "Allocated to Build Orders" msgstr "Gyártáshoz lefoglalva" -#: part/templates/part/part_base.html:227 -#: stock/templates/stock/item_base.html:381 +#: part/templates/part/part_base.html:235 +#: stock/templates/stock/item_base.html:378 msgid "Allocated to Sales Orders" msgstr "Vevő rendeléshez lefoglalva" -#: part/templates/part/part_base.html:300 +#: part/templates/part/part_base.html:308 msgid "Minimum stock level" msgstr "Minimális készlet" -#: part/templates/part/part_base.html:331 templates/js/translated/bom.js:1071 +#: part/templates/part/part_base.html:339 templates/js/translated/bom.js:1071 #: templates/js/translated/part.js:1271 templates/js/translated/part.js:2463 #: templates/js/translated/pricing.js:391 -#: templates/js/translated/pricing.js:1054 +#: templates/js/translated/pricing.js:1052 msgid "Price Range" msgstr "Ártartomány" -#: part/templates/part/part_base.html:361 +#: part/templates/part/part_base.html:369 msgid "Latest Serial Number" msgstr "Legutolsó sorozatszám" -#: part/templates/part/part_base.html:365 -#: stock/templates/stock/item_base.html:322 +#: part/templates/part/part_base.html:373 +#: stock/templates/stock/item_base.html:319 msgid "Search for serial number" msgstr "Sorozatszámra keresés" -#: part/templates/part/part_base.html:453 +#: part/templates/part/part_base.html:461 msgid "Part QR Code" msgstr "Alkatrész QR kódja" -#: part/templates/part/part_base.html:470 +#: part/templates/part/part_base.html:478 msgid "Link Barcode to Part" msgstr "Vonalkód hozzárendelése az alkatrészhez" -#: part/templates/part/part_base.html:520 +#: part/templates/part/part_base.html:528 msgid "Calculate" msgstr "Számítás" -#: part/templates/part/part_base.html:537 +#: part/templates/part/part_base.html:545 msgid "Remove associated image from this part" msgstr "Alkatrészhez rendelt kép eltávolítása" -#: part/templates/part/part_base.html:588 +#: part/templates/part/part_base.html:596 msgid "No matching images found" msgstr "Nincs egyező kép" -#: part/templates/part/part_base.html:684 +#: part/templates/part/part_base.html:692 msgid "Hide Part Details" msgstr "Részletek elrejtése" @@ -8283,13 +8512,13 @@ msgid "Variants" msgstr "Változatok" #: part/templates/part/part_sidebar.html:14 -#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:21 +#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:22 #: stock/templates/stock/stock_app_base.html:10 #: templates/InvenTree/search.html:153 #: templates/InvenTree/settings/sidebar.html:51 #: templates/js/translated/part.js:1249 templates/js/translated/part.js:2152 #: templates/js/translated/part.js:2411 templates/js/translated/stock.js:1066 -#: templates/js/translated/stock.js:2155 templates/navbar.html:31 +#: templates/js/translated/stock.js:2156 templates/navbar.html:31 msgid "Stock" msgstr "Készlet" @@ -8325,17 +8554,17 @@ msgstr "Alkatrész árazás felülbírálása" #: part/templates/part/prices.html:18 #: templates/InvenTree/settings/settings_staff_js.html:80 #: templates/InvenTree/settings/user.html:24 -#: templates/js/translated/helpers.js:103 +#: templates/js/translated/helpers.js:104 #: templates/js/translated/pricing.js:628 templates/notes_buttons.html:3 #: templates/notes_buttons.html:4 msgid "Edit" msgstr "Szerkesztés" -#: part/templates/part/prices.html:28 stock/admin.py:251 -#: stock/templates/stock/item_base.html:446 -#: templates/js/translated/company.js:1703 -#: templates/js/translated/company.js:1713 -#: templates/js/translated/stock.js:2331 +#: part/templates/part/prices.html:28 stock/admin.py:252 +#: stock/templates/stock/item_base.html:443 +#: templates/js/translated/company.js:1704 +#: templates/js/translated/company.js:1714 +#: templates/js/translated/stock.js:2332 msgid "Last Updated" msgstr "Utoljára módosítva" @@ -8407,7 +8636,7 @@ msgid "Update Pricing" msgstr "Árazás Frissítése" #: part/templates/part/stock_count.html:7 -#: templates/js/translated/model_renderers.js:228 +#: templates/js/translated/model_renderers.js:231 #: templates/js/translated/part.js:707 templates/js/translated/part.js:2147 #: templates/js/translated/part.js:2149 msgid "No Stock" @@ -8487,7 +8716,7 @@ msgstr "Az alkatrész képe nem található" msgid "Part Pricing" msgstr "Alkatrész árak" -#: plugin/api.py:172 +#: plugin/api.py:175 msgid "Plugin cannot be deleted as it is currently active" msgstr "Plugin nem törölhető mivel még aktív" @@ -8499,78 +8728,85 @@ msgstr "Nincs megadva művelet" msgid "No matching action found" msgstr "Nincs egyező művelet" -#: plugin/base/barcodes/api.py:125 plugin/base/barcodes/api.py:371 -#: plugin/base/barcodes/api.py:546 +#: plugin/base/barcodes/api.py:203 msgid "No match found for barcode data" msgstr "Nincs egyező vonalkód" -#: plugin/base/barcodes/api.py:129 +#: plugin/base/barcodes/api.py:207 msgid "Match found for barcode data" msgstr "Egyezés vonalkódra" -#: plugin/base/barcodes/api.py:163 plugin/base/barcodes/serializers.py:45 +#: plugin/base/barcodes/api.py:245 plugin/base/barcodes/serializers.py:72 msgid "Model is not supported" -msgstr "" +msgstr "Model nem támogatott" -#: plugin/base/barcodes/api.py:168 +#: plugin/base/barcodes/api.py:250 msgid "Model instance not found" -msgstr "" +msgstr "Model példány hiányzik" -#: plugin/base/barcodes/api.py:197 -#: templates/js/translated/purchase_order.js:1468 +#: plugin/base/barcodes/api.py:279 +#: templates/js/translated/purchase_order.js:1452 msgid "Barcode matches existing item" msgstr "Ez a vonalkód már egy másik tételé" -#: plugin/base/barcodes/api.py:336 +#: plugin/base/barcodes/api.py:418 msgid "No matching part data found" msgstr "Nem található megfelelő alkatrész adat" -#: plugin/base/barcodes/api.py:353 +#: plugin/base/barcodes/api.py:434 msgid "No matching supplier parts found" msgstr "Nem található megfelelő beszállítói alkatrész" -#: plugin/base/barcodes/api.py:357 +#: plugin/base/barcodes/api.py:437 msgid "Multiple matching supplier parts found" msgstr "Több beszállítói alkatrész található" -#: plugin/base/barcodes/api.py:381 +#: plugin/base/barcodes/api.py:450 plugin/base/barcodes/api.py:664 +msgid "No matching plugin found for barcode data" +msgstr "" + +#: plugin/base/barcodes/api.py:460 msgid "Matched supplier part" msgstr "Beszállítói alkatrész található" -#: plugin/base/barcodes/api.py:430 +#: plugin/base/barcodes/api.py:525 msgid "Item has already been received" msgstr "Ez a termék már bevételezve" -#: plugin/base/barcodes/api.py:467 +#: plugin/base/barcodes/api.py:563 msgid "No match for supplier barcode" msgstr "Beszállítói vonalkód nem található" -#: plugin/base/barcodes/api.py:510 +#: plugin/base/barcodes/api.py:612 msgid "Multiple matching line items found" msgstr "Több egyező sortétel is található" -#: plugin/base/barcodes/api.py:513 +#: plugin/base/barcodes/api.py:615 msgid "No matching line item found" msgstr "Nincs egyező sortétel" -#: plugin/base/barcodes/api.py:551 plugin/base/barcodes/api.py:558 +#: plugin/base/barcodes/api.py:661 +msgid "No sales order provided" +msgstr "" + +#: plugin/base/barcodes/api.py:670 msgid "Barcode does not match an existing stock item" msgstr "Vonalkód nem egyezik egy létező készlet tétellel sem" -#: plugin/base/barcodes/api.py:569 +#: plugin/base/barcodes/api.py:686 msgid "Stock item does not match line item" msgstr "Készlet tétel nem egyezik a sortétellel" -#: plugin/base/barcodes/api.py:593 templates/js/translated/build.js:2780 -#: templates/js/translated/sales_order.js:1953 +#: plugin/base/barcodes/api.py:716 templates/js/translated/build.js:2798 +#: templates/js/translated/sales_order.js:1934 msgid "Insufficient stock available" msgstr "Nincs elegendő" -#: plugin/base/barcodes/api.py:602 +#: plugin/base/barcodes/api.py:729 msgid "Stock item allocated to sales order" msgstr "Készlet tétel lefoglalva egy vevői rendeléshez" -#: plugin/base/barcodes/api.py:606 +#: plugin/base/barcodes/api.py:732 msgid "Not enough information" msgstr "Nincs elég információ" @@ -8592,75 +8828,75 @@ msgstr "A '{order}' rendeléshez nem tartozik beszerzési rendelés" msgid "Purchase order does not match supplier" msgstr "A beszerzési rendelés nem egyezik a beszállítóval" -#: plugin/base/barcodes/mixins.py:465 +#: plugin/base/barcodes/mixins.py:467 msgid "Failed to find pending line item for supplier part" msgstr "Nem található függőben levő tétel a beszállítói alkatrészhez" -#: plugin/base/barcodes/mixins.py:496 +#: plugin/base/barcodes/mixins.py:498 msgid "Further information required to receive line item" msgstr "A tétel bevételezéséhez további információ szükséges" -#: plugin/base/barcodes/mixins.py:504 +#: plugin/base/barcodes/mixins.py:506 msgid "Received purchase order line item" msgstr "Beszerzési rendelés tétele bevételezve" -#: plugin/base/barcodes/serializers.py:21 +#: plugin/base/barcodes/serializers.py:48 msgid "Scanned barcode data" msgstr "Beolvasott vonalkód" -#: plugin/base/barcodes/serializers.py:30 +#: plugin/base/barcodes/serializers.py:57 msgid "Model name to generate barcode for" -msgstr "" +msgstr "Vonalkód generáláshoz kiválaszottt model neve" -#: plugin/base/barcodes/serializers.py:35 +#: plugin/base/barcodes/serializers.py:62 msgid "Primary key of model object to generate barcode for" -msgstr "" +msgstr "A vonalkódnyomtatáshoz kiválaszott model objektum azonosítója" -#: plugin/base/barcodes/serializers.py:105 +#: plugin/base/barcodes/serializers.py:132 msgid "Purchase Order to allocate items against" msgstr "Tételekhez rendelendő Beszerzési Rendelés" -#: plugin/base/barcodes/serializers.py:111 +#: plugin/base/barcodes/serializers.py:138 msgid "Purchase order is not pending" msgstr "Beszerzési rendelés nincs függőben" -#: plugin/base/barcodes/serializers.py:129 +#: plugin/base/barcodes/serializers.py:156 msgid "PurchaseOrder to receive items against" msgstr "Bevételezési tételekhez rendelendő Beszerzési Rendelés" -#: plugin/base/barcodes/serializers.py:135 +#: plugin/base/barcodes/serializers.py:162 msgid "Purchase order has not been placed" msgstr "Beszerzési rendelés nincs elküdve" -#: plugin/base/barcodes/serializers.py:143 +#: plugin/base/barcodes/serializers.py:170 msgid "Location to receive items into" msgstr "Bevételezés erre a készlet helyre" -#: plugin/base/barcodes/serializers.py:149 +#: plugin/base/barcodes/serializers.py:176 msgid "Cannot select a structural location" msgstr "Struktúrális hely nem választható" -#: plugin/base/barcodes/serializers.py:163 +#: plugin/base/barcodes/serializers.py:190 msgid "Sales Order to allocate items against" msgstr "Tételekhez rendelendő Vevői Rendelés" -#: plugin/base/barcodes/serializers.py:169 +#: plugin/base/barcodes/serializers.py:196 msgid "Sales order is not pending" msgstr "Vevői rendelés nincs függőben" -#: plugin/base/barcodes/serializers.py:177 +#: plugin/base/barcodes/serializers.py:204 msgid "Sales order line item to allocate items against" msgstr "Tételekhez rendelendő vevői rendelés sortétel" -#: plugin/base/barcodes/serializers.py:184 +#: plugin/base/barcodes/serializers.py:211 msgid "Sales order shipment to allocate items against" msgstr "Tételekhez rendelendő vevői rendelés szállítmány" -#: plugin/base/barcodes/serializers.py:190 +#: plugin/base/barcodes/serializers.py:217 msgid "Shipment has already been delivered" msgstr "Szállítmány kiszállítva" -#: plugin/base/barcodes/serializers.py:195 +#: plugin/base/barcodes/serializers.py:222 msgid "Quantity to allocate" msgstr "Lefoglalandó mennyiség" @@ -8678,6 +8914,42 @@ msgstr "A címke HTML nyomtatása sikertelen" #: plugin/base/label/mixins.py:149 msgid "No items provided to print" +msgstr "Nincs elem a nyomtatáshoz" + +#: plugin/base/ui/serializers.py:30 +msgid "Plugin Name" +msgstr "" + +#: plugin/base/ui/serializers.py:34 +msgid "Feature Type" +msgstr "" + +#: plugin/base/ui/serializers.py:39 +msgid "Feature Label" +msgstr "" + +#: plugin/base/ui/serializers.py:44 +msgid "Feature Title" +msgstr "" + +#: plugin/base/ui/serializers.py:49 +msgid "Feature Description" +msgstr "" + +#: plugin/base/ui/serializers.py:54 +msgid "Feature Icon" +msgstr "" + +#: plugin/base/ui/serializers.py:58 +msgid "Feature Options" +msgstr "" + +#: plugin/base/ui/serializers.py:61 +msgid "Feature Context" +msgstr "" + +#: plugin/base/ui/serializers.py:64 +msgid "Feature Source (javascript)" msgstr "" #: plugin/builtin/barcodes/inventree_barcode.py:27 @@ -8701,27 +8973,27 @@ msgstr "InvenTree fejlesztők" #: plugin/builtin/barcodes/inventree_barcode.py:34 msgid "Internal Barcode Format" -msgstr "" +msgstr "Belső Vonalkód Formátum" #: plugin/builtin/barcodes/inventree_barcode.py:35 msgid "Select an internal barcode format" -msgstr "" +msgstr "Belső vonalkód formátum kiválasztása" #: plugin/builtin/barcodes/inventree_barcode.py:37 msgid "JSON barcodes (human readable)" -msgstr "" +msgstr "JSON vonalkód (olvasható)" #: plugin/builtin/barcodes/inventree_barcode.py:38 msgid "Short barcodes (space optimized)" -msgstr "" +msgstr "Rövid vonalkód (tömörebb)" #: plugin/builtin/barcodes/inventree_barcode.py:43 msgid "Short Barcode Prefix" -msgstr "" +msgstr "Rövid Vonalkód Előtag" #: plugin/builtin/barcodes/inventree_barcode.py:45 msgid "Customize the prefix used for short barcodes, may be useful for environments with multiple InvenTree instances" -msgstr "" +msgstr "A rövid vonalkódok előtagjának beállítása hasznos lehet, ha több InvenTree példányt is használnak egy környezetben" #: plugin/builtin/integration/core_notifications.py:34 msgid "InvenTree Notifications" @@ -8757,7 +9029,7 @@ msgstr "Slack bejövő webhook URL" msgid "URL that is used to send messages to a slack channel" msgstr "URL az üzenetek küldéséhez egy a slack channel-re" -#: plugin/builtin/integration/core_notifications.py:164 +#: plugin/builtin/integration/core_notifications.py:166 msgid "Open link" msgstr "Link megnyitása" @@ -8795,11 +9067,11 @@ msgstr "InvenTree címkenyomtató" msgid "Provides support for printing using a machine" msgstr "Nyomtatási támogatást nyújt egy Berendezés által" -#: plugin/builtin/labels/inventree_machine.py:149 +#: plugin/builtin/labels/inventree_machine.py:151 msgid "last used" msgstr "utoljára használva" -#: plugin/builtin/labels/inventree_machine.py:166 +#: plugin/builtin/labels/inventree_machine.py:168 msgid "Options" msgstr "Opciók" @@ -8823,7 +9095,7 @@ msgstr "Szegély" msgid "Print a border around each label" msgstr "Az egyes címkék körüli margó" -#: plugin/builtin/labels/label_sheet.py:47 report/models.py:307 +#: plugin/builtin/labels/label_sheet.py:47 report/models.py:315 msgid "Landscape" msgstr "Fekvő" @@ -8895,19 +9167,19 @@ msgstr "TME vonalkódok támogatása" msgid "The Supplier which acts as 'TME'" msgstr "A 'TME' beszállító" -#: plugin/installer.py:194 plugin/installer.py:282 +#: plugin/installer.py:199 plugin/installer.py:282 msgid "Only staff users can administer plugins" msgstr "Csak a személyzeti felhasználók adminisztrálhatják a pluginokat" -#: plugin/installer.py:197 +#: plugin/installer.py:202 msgid "Plugin installation is disabled" msgstr "Plugin telepítés letiltva" -#: plugin/installer.py:248 +#: plugin/installer.py:246 msgid "Installed plugin successfully" msgstr "Plugin telepítése sikeres" -#: plugin/installer.py:254 +#: plugin/installer.py:251 #, python-brace-format msgid "Installed plugin into {path}" msgstr "Plugin telepítve ide: {path}" @@ -8944,10 +9216,6 @@ msgstr "Plugin beállítás" msgid "Plugin Configurations" msgstr "Plugin beállítások" -#: plugin/models.py:43 users/models.py:100 -msgid "Key" -msgstr "Kulcs" - #: plugin/models.py:44 msgid "Key of plugin" msgstr "Plugin kulcsa" @@ -8956,7 +9224,7 @@ msgstr "Plugin kulcsa" msgid "PluginName of the plugin" msgstr "PluginNeve a pluginnak" -#: plugin/models.py:59 plugin/serializers.py:90 +#: plugin/models.py:59 plugin/serializers.py:115 msgid "Package Name" msgstr "Csomag neve" @@ -8985,17 +9253,17 @@ msgstr "Beépített plugin" msgid "Package Plugin" msgstr "Csomag plugin" -#: plugin/models.py:220 report/models.py:474 +#: plugin/models.py:259 report/models.py:482 #: templates/InvenTree/settings/plugin_settings.html:9 #: templates/js/translated/plugin.js:51 msgid "Plugin" msgstr "Bővítmény" -#: plugin/models.py:267 +#: plugin/models.py:306 msgid "Method" msgstr "Módszer" -#: plugin/plugin.py:270 +#: plugin/plugin.py:275 msgid "No author found" msgstr "Nincs szerző" @@ -9054,81 +9322,157 @@ msgstr "Minta árfolyamváltó plugin" msgid "InvenTree Contributors" msgstr "InvenTree fejlesztők" -#: plugin/serializers.py:81 +#: plugin/samples/integration/user_interface_sample.py:27 +msgid "Enable Part Panels" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:28 +msgid "Enable custom panels for Part views" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:33 +msgid "Enable Purchase Order Panels" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:34 +msgid "Enable custom panels for Purchase Order views" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:39 +msgid "Enable Broken Panels" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:40 +msgid "Enable broken panels for testing" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:45 +msgid "Enable Dynamic Panel" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:46 +msgid "Enable dynamic panels for testing" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:98 +msgid "Part Panel" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:131 +msgid "Broken Dashboard Item" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:133 +msgid "This is a broken dashboard item - it will not render!" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:139 +msgid "Sample Dashboard Item" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:141 +msgid "This is a sample dashboard item. It renders a simple string of HTML content." +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:147 +msgid "Context Dashboard Item" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:161 +msgid "Admin Dashboard Item" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:162 +msgid "This is an admin-only dashboard item." +msgstr "" + +#: plugin/serializers.py:82 +msgid "Source File" +msgstr "" + +#: plugin/serializers.py:83 +msgid "Path to the source file for admin integration" +msgstr "" + +#: plugin/serializers.py:90 +msgid "Optional context data for the admin integration" +msgstr "" + +#: plugin/serializers.py:106 msgid "Source URL" msgstr "Forrás URL" -#: plugin/serializers.py:83 +#: plugin/serializers.py:108 msgid "Source for the package - this can be a custom registry or a VCS path" msgstr "Csomag forrása - ez lehet egy registry vagy VCS útvonal" -#: plugin/serializers.py:92 +#: plugin/serializers.py:117 msgid "Name for the Plugin Package - can also contain a version indicator" msgstr "Plugin csomag neve - verzió megjelölést is tartalmazhat" -#: plugin/serializers.py:99 +#: plugin/serializers.py:124 #: templates/InvenTree/settings/plugin_settings.html:42 #: templates/js/translated/plugin.js:86 msgid "Version" msgstr "Verzió" -#: plugin/serializers.py:101 +#: plugin/serializers.py:126 msgid "Version specifier for the plugin. Leave blank for latest version." msgstr "Verzió azonosító a pluginhoz. Hagyd üresen a legújabb verzióhoz." -#: plugin/serializers.py:106 +#: plugin/serializers.py:131 msgid "Confirm plugin installation" msgstr "Bővítmény telepítésének megerősítése" -#: plugin/serializers.py:108 +#: plugin/serializers.py:133 msgid "This will install this plugin now into the current instance. The instance will go into maintenance." msgstr "Ez telepíti ezt a plugint az aktuális példányra. A példány karbantartási módba megy." -#: plugin/serializers.py:121 +#: plugin/serializers.py:146 msgid "Installation not confirmed" msgstr "Tlepítés nincs megerősítve" -#: plugin/serializers.py:123 +#: plugin/serializers.py:148 msgid "Either packagename of URL must be provided" msgstr "Vagy csomag nevet vagy URL-t meg kell adni" -#: plugin/serializers.py:161 +#: plugin/serializers.py:184 msgid "Full reload" msgstr "Teljes újratöltés" -#: plugin/serializers.py:162 +#: plugin/serializers.py:185 msgid "Perform a full reload of the plugin registry" msgstr "A plugin tárolók teljes újratöltése" -#: plugin/serializers.py:168 +#: plugin/serializers.py:191 msgid "Force reload" msgstr "Kényszerített újratöltés" -#: plugin/serializers.py:170 +#: plugin/serializers.py:193 msgid "Force a reload of the plugin registry, even if it is already loaded" msgstr "Akkor is töltse újra a plugin tárolót ha már be lett töltve" -#: plugin/serializers.py:177 +#: plugin/serializers.py:200 msgid "Collect plugins" msgstr "Pluginok begyűjtése" -#: plugin/serializers.py:178 +#: plugin/serializers.py:201 msgid "Collect plugins and add them to the registry" msgstr "Pluginok begyűjtése és a tárolóhoz adása" -#: plugin/serializers.py:205 +#: plugin/serializers.py:228 msgid "Activate Plugin" msgstr "Plugin aktiválása" -#: plugin/serializers.py:206 +#: plugin/serializers.py:229 msgid "Activate this plugin" msgstr "Plugin bekapcsolása" -#: plugin/serializers.py:226 +#: plugin/serializers.py:249 msgid "Delete configuration" msgstr "Konfiguráció törlése" -#: plugin/serializers.py:227 +#: plugin/serializers.py:250 msgid "Delete the plugin configuration from the database" msgstr "Plugin konfiguráció törlése az adatbázisból" @@ -9136,39 +9480,43 @@ msgstr "Plugin konfiguráció törlése az adatbázisból" msgid "No valid objects provided to template" msgstr "Nincs érvényes objektum megadva a sablonhoz" -#: report/api.py:103 report/models.py:438 report/serializers.py:98 -#: report/serializers.py:148 templates/js/translated/purchase_order.js:1817 +#: report/api.py:103 report/models.py:446 report/serializers.py:99 +#: report/serializers.py:149 templates/js/translated/purchase_order.js:1801 #: templates/js/translated/return_order.js:353 -#: templates/js/translated/sales_order.js:887 -#: templates/js/translated/sales_order.js:1047 +#: templates/js/translated/sales_order.js:846 +#: templates/js/translated/sales_order.js:1020 msgid "Items" msgstr "Tételek" #: report/api.py:180 msgid "Plugin not found" -msgstr "" +msgstr "Plugin nem található" #: report/api.py:182 msgid "Plugin is not active" -msgstr "" +msgstr "Plugin nem aktív" #: report/api.py:184 msgid "Plugin does not support label printing" -msgstr "" +msgstr "Plugin nem támogatja a címkenyomtatást" #: report/api.py:233 msgid "Invalid label dimensions" -msgstr "" +msgstr "Érvénytelen címke méretek" #: report/api.py:248 report/api.py:329 msgid "No valid items provided to template" -msgstr "" +msgstr "Nincs érvényes tétel megadva a sablonhoz" #: report/api.py:283 msgid "Error printing label" msgstr "Címkenyomtatási hiba" -#: report/api.py:375 report/api.py:411 +#: report/api.py:358 +msgid "Report saved at time of printing" +msgstr "" + +#: report/api.py:384 report/api.py:420 #, python-brace-format msgid "Template file '{template}' is missing or does not exist" msgstr "A '{template}' sablon fájl hiányzik vagy nem érhető el" @@ -9191,7 +9539,7 @@ msgstr "„Letter” méret" #: report/models.py:118 msgid "Template file with this name already exists" -msgstr "" +msgstr "Ilyen nevű Sablon fájl már létezik" #: report/models.py:150 msgid "Template name" @@ -9199,143 +9547,151 @@ msgstr "Sablon neve" #: report/models.py:156 msgid "Template description" -msgstr "" +msgstr "Sablon leírása" #: report/models.py:162 msgid "Revision number (auto-increments)" +msgstr "Verziószám (automatikusan nő)" + +#: report/models.py:168 +msgid "Attach to Model on Print" msgstr "" -#: report/models.py:202 +#: report/models.py:170 +msgid "Save report output as an attachment against linked model instance when printing" +msgstr "" + +#: report/models.py:210 msgid "Filename Pattern" msgstr "Fájlnév minta" -#: report/models.py:203 +#: report/models.py:211 msgid "Pattern for generating filenames" -msgstr "" +msgstr "Minta a fájlnevek előállításához" -#: report/models.py:208 +#: report/models.py:216 msgid "Template is enabled" -msgstr "" +msgstr "Sablon engedélyezve" -#: report/models.py:214 +#: report/models.py:222 msgid "Target model type for template" -msgstr "" +msgstr "A sablon által célzott model típus" -#: report/models.py:234 +#: report/models.py:242 msgid "Filters" msgstr "Szűrők" -#: report/models.py:235 +#: report/models.py:243 msgid "Template query filters (comma-separated list of key=value pairs)" -msgstr "" +msgstr "Sablon lekérdezés szűrők (vesszővel elválasztott kulcs=érték párok)" -#: report/models.py:294 report/models.py:361 +#: report/models.py:302 report/models.py:369 msgid "Template file" -msgstr "" +msgstr "Sablon file" -#: report/models.py:302 +#: report/models.py:310 msgid "Page size for PDF reports" msgstr "Lapméret a PDF riportokhoz" -#: report/models.py:308 +#: report/models.py:316 msgid "Render report in landscape orientation" msgstr "Jelentés fekvő nézetben" -#: report/models.py:367 +#: report/models.py:375 msgid "Width [mm]" msgstr "Szélesség [mm]" -#: report/models.py:368 +#: report/models.py:376 msgid "Label width, specified in mm" msgstr "Címke szélessége, mm-ben" -#: report/models.py:374 +#: report/models.py:382 msgid "Height [mm]" msgstr "Magasság [mm]" -#: report/models.py:375 +#: report/models.py:383 msgid "Label height, specified in mm" msgstr "Címke magassága, mm-ben" -#: report/models.py:438 +#: report/models.py:446 msgid "Number of items to process" -msgstr "" +msgstr "Feldolgozandó elemek száma" -#: report/models.py:444 +#: report/models.py:452 msgid "Report generation is complete" -msgstr "" +msgstr "Jelentés készítés befejezve" -#: report/models.py:448 templates/js/translated/build.js:2349 +#: report/models.py:456 templates/js/translated/build.js:2352 msgid "Progress" msgstr "Haladás" -#: report/models.py:448 -msgid "Report generation progress" -msgstr "" - #: report/models.py:456 -msgid "Report Template" -msgstr "" +msgid "Report generation progress" +msgstr "Jelentés készítés állapota" -#: report/models.py:463 report/models.py:486 +#: report/models.py:464 +msgid "Report Template" +msgstr "Jelentéssablon" + +#: report/models.py:471 report/models.py:494 msgid "Output File" msgstr "Kimeneti Fájl" -#: report/models.py:464 report/models.py:487 +#: report/models.py:472 report/models.py:495 msgid "Generated output file" -msgstr "" +msgstr "Generált kimeneti állomány" -#: report/models.py:475 +#: report/models.py:483 msgid "Label output plugin" -msgstr "" +msgstr "Címke előállító plugin" -#: report/models.py:479 +#: report/models.py:487 msgid "Label Template" -msgstr "" +msgstr "Címke sablon" -#: report/models.py:502 +#: report/models.py:510 msgid "Snippet" msgstr "Részlet" -#: report/models.py:503 +#: report/models.py:511 msgid "Report snippet file" msgstr "Riport részlet fájl" -#: report/models.py:510 +#: report/models.py:518 msgid "Snippet file description" msgstr "Részlet fájl leírása" -#: report/models.py:528 +#: report/models.py:536 msgid "Asset" msgstr "Eszköz" -#: report/models.py:529 +#: report/models.py:537 msgid "Report asset file" msgstr "Riport asset fájl" -#: report/models.py:536 +#: report/models.py:544 msgid "Asset file description" msgstr "Asset fájl leírása" -#: report/serializers.py:91 +#: report/serializers.py:92 msgid "Select report template" -msgstr "" +msgstr "Riport sablon kiválasztása" -#: report/serializers.py:99 report/serializers.py:149 +#: report/serializers.py:100 report/serializers.py:150 msgid "List of item primary keys to include in the report" -msgstr "" +msgstr "A jelentésben levő tételek azonosítója" -#: report/serializers.py:132 +#: report/serializers.py:133 msgid "Select label template" msgstr "Címke sablon választás" -#: report/serializers.py:140 -msgid "Printing Plugin" -msgstr "" - #: report/serializers.py:141 +msgid "Printing Plugin" +msgstr "Nyomtató plugin" + +#: report/serializers.py:142 msgid "Select plugin to use for label printing" -msgstr "" +msgstr "Címkenyomtató plugin kiválasztása" #: report/templates/label/part_label.html:31 #: report/templates/label/stockitem_qr.html:21 @@ -9366,9 +9722,9 @@ msgstr "Beszállító törölve lett" #: report/templates/report/inventree_sales_order_report.html:30 #: templates/js/translated/order.js:341 templates/js/translated/pricing.js:527 #: templates/js/translated/pricing.js:596 -#: templates/js/translated/pricing.js:834 -#: templates/js/translated/purchase_order.js:2185 -#: templates/js/translated/sales_order.js:1873 +#: templates/js/translated/pricing.js:832 +#: templates/js/translated/purchase_order.js:2169 +#: templates/js/translated/sales_order.js:1854 msgid "Unit Price" msgstr "Egységár" @@ -9380,13 +9736,18 @@ msgstr "Egyéb tételek" #: report/templates/report/inventree_purchase_order_report.html:72 #: report/templates/report/inventree_sales_order_report.html:72 -#: templates/js/translated/purchase_order.js:2087 -#: templates/js/translated/sales_order.js:1842 +#: templates/js/translated/purchase_order.js:2071 +#: templates/js/translated/sales_order.js:1823 #: templates/test_statistics_table.html:8 #: templates/test_statistics_table.html:19 msgid "Total" msgstr "Összesen" +#: report/templates/report/inventree_sales_order_shipment_report.html:23 +#: stock/templates/stock/stock_sidebar.html:8 +msgid "Allocations" +msgstr "Foglalások" + #: report/templates/report/inventree_stock_location_report.html:97 msgid "Stock location items" msgstr "Készlethely tételek" @@ -9404,15 +9765,13 @@ msgstr "Teszt eredmények" msgid "Test" msgstr "Teszt" -#: report/templates/report/inventree_test_report.html:103 stock/models.py:2544 -msgid "Result" -msgstr "Eredmény" - #: report/templates/report/inventree_test_report.html:129 +#: templates/js/translated/stock.js:1448 msgid "Pass" msgstr "Sikeres" #: report/templates/report/inventree_test_report.html:131 +#: templates/js/translated/stock.js:1450 msgid "Fail" msgstr "Sikertelen" @@ -9421,17 +9780,18 @@ msgid "No result (required)" msgstr "Nincs eredmény (szükséges)" #: report/templates/report/inventree_test_report.html:140 +#: templates/js/translated/stock.js:1455 msgid "No result" msgstr "Nincs eredmény" #: report/templates/report/inventree_test_report.html:153 -#: stock/serializers.py:599 stock/templates/stock/stock_sidebar.html:16 +#: stock/serializers.py:626 stock/templates/stock/stock_sidebar.html:16 msgid "Installed Items" msgstr "Beépített tételek" -#: report/templates/report/inventree_test_report.html:167 stock/admin.py:161 +#: report/templates/report/inventree_test_report.html:167 stock/admin.py:162 #: templates/js/translated/stock.js:706 templates/js/translated/stock.js:877 -#: templates/js/translated/stock.js:3194 +#: templates/js/translated/stock.js:3195 msgid "Serial" msgstr "Sorozatszám" @@ -9451,67 +9811,67 @@ msgstr "part_image elem csak alkatrész példánynál használható" msgid "company_image tag requires a Company instance" msgstr "company_image elem csak cég példánynál használható" -#: stock/admin.py:51 stock/admin.py:171 +#: stock/admin.py:51 stock/admin.py:172 msgid "Location ID" msgstr "Hely ID" -#: stock/admin.py:63 stock/templates/stock/location.html:128 -#: stock/templates/stock/location.html:134 +#: stock/admin.py:63 stock/templates/stock/location.html:129 +#: stock/templates/stock/location.html:135 msgid "Location Path" msgstr "Hely elérési út" -#: stock/admin.py:148 +#: stock/admin.py:149 msgid "Stock Item ID" msgstr "Készlet tétel ID" -#: stock/admin.py:167 +#: stock/admin.py:168 msgid "Status Code" msgstr "Státuszkód" -#: stock/admin.py:179 +#: stock/admin.py:180 msgid "Supplier Part ID" msgstr "Beszállítói cikkszám" -#: stock/admin.py:184 +#: stock/admin.py:185 msgid "Supplier Part SKU" -msgstr "" +msgstr "Beszállítói cikkszám" -#: stock/admin.py:189 +#: stock/admin.py:190 msgid "Supplier ID" msgstr "Beszállító ID" -#: stock/admin.py:200 +#: stock/admin.py:201 msgid "Customer ID" msgstr "Vevő ID" -#: stock/admin.py:205 stock/models.py:825 -#: stock/templates/stock/item_base.html:354 +#: stock/admin.py:206 stock/models.py:902 +#: stock/templates/stock/item_base.html:351 msgid "Installed In" msgstr "Beépítve ebbe" -#: stock/admin.py:210 +#: stock/admin.py:211 msgid "Build ID" msgstr "Gyártás ID" -#: stock/admin.py:220 +#: stock/admin.py:221 msgid "Sales Order ID" msgstr "Vevői rendelés ID" -#: stock/admin.py:225 +#: stock/admin.py:226 msgid "Purchase Order ID" msgstr "Vevői rendelés azonosító" -#: stock/admin.py:240 +#: stock/admin.py:241 msgid "Review Needed" msgstr "Felülvizsgálat szükséges" -#: stock/admin.py:245 +#: stock/admin.py:246 msgid "Delete on Deplete" msgstr "Törlés ha kimerül" -#: stock/admin.py:260 stock/models.py:919 -#: stock/templates/stock/item_base.html:433 -#: templates/js/translated/stock.js:2315 users/models.py:124 +#: stock/admin.py:261 stock/models.py:996 +#: stock/templates/stock/item_base.html:430 +#: templates/js/translated/stock.js:2316 users/models.py:124 msgid "Expiry Date" msgstr "Lejárati dátum" @@ -9521,17 +9881,17 @@ msgstr "Hely mélységre szűrés" #: stock/api.py:330 msgid "Filter by top-level locations" -msgstr "" +msgstr "Csúcs készlethelyre szűrés" #: stock/api.py:345 msgid "Include sub-locations in filtered results" msgstr "Szűrt eredmények tartalmazzák az alhelyeket" -#: stock/api.py:367 stock/serializers.py:1186 +#: stock/api.py:366 stock/serializers.py:1217 msgid "Parent Location" msgstr "Szülő hely" -#: stock/api.py:368 +#: stock/api.py:367 msgid "Filter by parent location" msgstr "Szülő helyre szűrés" @@ -9551,8 +9911,8 @@ msgstr "Lejárat előtt" msgid "Expiry date after" msgstr "Lejárat után" -#: stock/api.py:840 stock/serializers.py:604 -#: stock/templates/stock/item_base.html:439 +#: stock/api.py:840 stock/serializers.py:631 +#: stock/templates/stock/item_base.html:436 #: templates/js/translated/table_filters.js:448 msgid "Stale" msgstr "Állott" @@ -9561,594 +9921,598 @@ msgstr "Állott" msgid "Quantity is required" msgstr "Mennyiség megadása kötelező" -#: stock/api.py:933 +#: stock/api.py:932 msgid "Valid part must be supplied" msgstr "Egy érvényes alkatrészt meg kell adni" -#: stock/api.py:964 +#: stock/api.py:959 msgid "The given supplier part does not exist" msgstr "A megadott beszállítói alkatrész nem létezik" -#: stock/api.py:974 +#: stock/api.py:969 msgid "The supplier part has a pack size defined, but flag use_pack_size not set" msgstr "A beszállítói alkatrészhez van megadva csomagolási mennyiség, de a use_pack_size flag nincs beállítva" -#: stock/api.py:1005 +#: stock/api.py:996 msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "Sorozatszámot nem lehet megadni nem követésre kötelezett alkatrész esetén" -#: stock/models.py:64 +#: stock/models.py:70 msgid "Stock Location type" msgstr "Készlethely típus" -#: stock/models.py:65 +#: stock/models.py:71 msgid "Stock Location types" msgstr "Készlethely típusok" -#: stock/models.py:91 +#: stock/models.py:97 msgid "Default icon for all locations that have no icon set (optional)" msgstr "Alapértelmezett ikon azokhoz a helyekhez, melyeknek nincs ikonja beállítva (válaszható)" -#: stock/models.py:131 stock/models.py:807 -#: stock/templates/stock/location.html:17 +#: stock/models.py:137 stock/models.py:884 +#: stock/templates/stock/location.html:18 #: stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "Készlet hely" -#: stock/models.py:132 stock/templates/stock/location.html:183 +#: stock/models.py:138 stock/templates/stock/location.html:184 #: templates/InvenTree/search.html:166 templates/js/translated/search.js:178 #: users/models.py:205 msgid "Stock Locations" msgstr "Készlethelyek" -#: stock/models.py:180 stock/models.py:968 -#: stock/templates/stock/item_base.html:247 +#: stock/models.py:186 stock/models.py:1045 +#: stock/templates/stock/item_base.html:244 msgid "Owner" msgstr "Tulajdonos" -#: stock/models.py:181 stock/models.py:969 +#: stock/models.py:187 stock/models.py:1046 msgid "Select Owner" msgstr "Tulajdonos kiválasztása" -#: stock/models.py:189 +#: stock/models.py:195 msgid "Stock items may not be directly located into a structural stock locations, but may be located to child locations." msgstr "A szerkezeti raktári helyekre nem lehet direktben raktározni, csak az al-helyekre." -#: stock/models.py:196 templates/js/translated/stock.js:2865 +#: stock/models.py:202 templates/js/translated/stock.js:2866 #: templates/js/translated/table_filters.js:250 msgid "External" msgstr "Külső" -#: stock/models.py:197 +#: stock/models.py:203 msgid "This is an external stock location" msgstr "Ez egy külső készlethely" -#: stock/models.py:203 templates/js/translated/stock.js:2874 +#: stock/models.py:209 templates/js/translated/stock.js:2875 #: templates/js/translated/table_filters.js:253 msgid "Location type" msgstr "Helyszín típusa" -#: stock/models.py:207 +#: stock/models.py:213 msgid "Stock location type of this location" msgstr "Tárolóhely típus" -#: stock/models.py:279 +#: stock/models.py:285 msgid "You cannot make this stock location structural because some stock items are already located into it!" msgstr "Nem lehet ezt a raktári helyet szerkezetivé tenni, mert már vannak itt tételek!" -#: stock/models.py:664 +#: stock/models.py:492 +msgid "Part must be specified" +msgstr "" + +#: stock/models.py:741 msgid "Stock items cannot be located into structural stock locations!" msgstr "A szerkezeti raktári helyre nem lehet készletet felvenni!" -#: stock/models.py:691 stock/serializers.py:480 +#: stock/models.py:768 stock/serializers.py:492 msgid "Stock item cannot be created for virtual parts" msgstr "Virtuális alkatrészből nem lehet készletet létrehozni" -#: stock/models.py:708 +#: stock/models.py:785 #, python-brace-format msgid "Part type ('{self.supplier_part.part}') must be {self.part}" msgstr "A beszállítói alkatrész típusa ('{self.supplier_part.part}') mindenképpen {self.part} kellene, hogy legyen" -#: stock/models.py:718 stock/models.py:731 +#: stock/models.py:795 stock/models.py:808 msgid "Quantity must be 1 for item with a serial number" msgstr "Mennyiség 1 kell legyen a sorozatszámmal rendelkező tételnél" -#: stock/models.py:721 +#: stock/models.py:798 msgid "Serial number cannot be set if quantity greater than 1" msgstr "Nem lehet sorozatszámot megadni ha a mennyiség több mint egy" -#: stock/models.py:743 +#: stock/models.py:820 msgid "Item cannot belong to itself" msgstr "A tétel nem tartozhat saját magához" -#: stock/models.py:748 +#: stock/models.py:825 msgid "Item must have a build reference if is_building=True" msgstr "A tételnek kell legyen gyártási azonosítója ha az is_bulding igaz" -#: stock/models.py:761 +#: stock/models.py:838 msgid "Build reference does not point to the same part object" msgstr "Gyártási azonosító nem ugyanarra az alkatrész objektumra mutat" -#: stock/models.py:777 +#: stock/models.py:854 msgid "Parent Stock Item" msgstr "Szülő készlet tétel" -#: stock/models.py:789 +#: stock/models.py:866 msgid "Base part" msgstr "Kiindulási alkatrész" -#: stock/models.py:799 +#: stock/models.py:876 msgid "Select a matching supplier part for this stock item" msgstr "Válassz egy egyező beszállítói alkatrészt ehhez a készlet tételhez" -#: stock/models.py:811 +#: stock/models.py:888 msgid "Where is this stock item located?" msgstr "Hol található ez az alkatrész?" -#: stock/models.py:819 stock/serializers.py:1580 +#: stock/models.py:896 stock/serializers.py:1611 msgid "Packaging this stock item is stored in" msgstr "A csomagolása ennek a készlet tételnek itt van tárolva" -#: stock/models.py:830 +#: stock/models.py:907 msgid "Is this item installed in another item?" msgstr "Ez a tétel be van építve egy másik tételbe?" -#: stock/models.py:849 +#: stock/models.py:926 msgid "Serial number for this item" msgstr "Sorozatszám ehhez a tételhez" -#: stock/models.py:863 stock/serializers.py:1563 +#: stock/models.py:940 stock/serializers.py:1594 msgid "Batch code for this stock item" msgstr "Batch kód ehhez a készlet tételhez" -#: stock/models.py:868 +#: stock/models.py:945 msgid "Stock Quantity" msgstr "Készlet mennyiség" -#: stock/models.py:878 +#: stock/models.py:955 msgid "Source Build" msgstr "Forrás gyártás" -#: stock/models.py:881 +#: stock/models.py:958 msgid "Build for this stock item" msgstr "Gyártás ehhez a készlet tételhez" -#: stock/models.py:888 stock/templates/stock/item_base.html:363 +#: stock/models.py:965 stock/templates/stock/item_base.html:360 msgid "Consumed By" msgstr "Felhasználva ebben" -#: stock/models.py:891 +#: stock/models.py:968 msgid "Build order which consumed this stock item" msgstr "Felhasználva ebben a gyártásban" -#: stock/models.py:900 +#: stock/models.py:977 msgid "Source Purchase Order" msgstr "Forrás beszerzési rendelés" -#: stock/models.py:904 +#: stock/models.py:981 msgid "Purchase order for this stock item" msgstr "Beszerzés ehhez a készlet tételhez" -#: stock/models.py:910 +#: stock/models.py:987 msgid "Destination Sales Order" msgstr "Cél vevői rendelés" -#: stock/models.py:921 +#: stock/models.py:998 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "Készlet tétel lejárati dátuma. A készlet lejártnak tekinthető ezután a dátum után" -#: stock/models.py:939 +#: stock/models.py:1016 msgid "Delete on deplete" msgstr "Törlés ha kimerül" -#: stock/models.py:940 +#: stock/models.py:1017 msgid "Delete this Stock Item when stock is depleted" msgstr "Készlet tétel törlése ha kimerül" -#: stock/models.py:960 +#: stock/models.py:1037 msgid "Single unit purchase price at time of purchase" msgstr "Egy egység beszerzési ára a beszerzés időpontjában" -#: stock/models.py:991 +#: stock/models.py:1068 msgid "Converted to part" msgstr "Alkatrésszé alakítva" -#: stock/models.py:1511 +#: stock/models.py:1600 msgid "Part is not set as trackable" msgstr "Az alkatrész nem követésre kötelezett" -#: stock/models.py:1517 +#: stock/models.py:1606 msgid "Quantity must be integer" msgstr "Mennyiség egész szám kell legyen" -#: stock/models.py:1525 +#: stock/models.py:1614 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({self.quantity})" msgstr "A mennyiség nem haladhatja meg az elérhető készletet ({self.quantity})" -#: stock/models.py:1531 -msgid "Serial numbers must be a list of integers" -msgstr "A sorozatszám egész számok listája kell legyen" +#: stock/models.py:1620 +msgid "Serial numbers must be provided as a list" +msgstr "" -#: stock/models.py:1536 +#: stock/models.py:1625 msgid "Quantity does not match serial numbers" msgstr "A mennyiség nem egyezik a megadott sorozatszámok számával" -#: stock/models.py:1544 stock/serializers.py:726 -msgid "Serial numbers already exist" -msgstr "A sorozatszámok már léteznek" - -#: stock/models.py:1641 +#: stock/models.py:1747 stock/models.py:2563 msgid "Test template does not exist" msgstr "Ez a Teszt sablon nem létezik" -#: stock/models.py:1659 +#: stock/models.py:1765 msgid "Stock item has been assigned to a sales order" msgstr "Készlet tétel hozzárendelve egy vevői rendeléshez" -#: stock/models.py:1663 +#: stock/models.py:1769 msgid "Stock item is installed in another item" msgstr "Készlet tétel beépül egy másikba" -#: stock/models.py:1666 +#: stock/models.py:1772 msgid "Stock item contains other items" msgstr "A készlet tétel más tételeket tartalmaz" -#: stock/models.py:1669 +#: stock/models.py:1775 msgid "Stock item has been assigned to a customer" msgstr "Készlet tétel hozzárendelve egy vevőhöz" -#: stock/models.py:1672 +#: stock/models.py:1778 msgid "Stock item is currently in production" msgstr "Készlet tétel gyártás alatt" -#: stock/models.py:1675 +#: stock/models.py:1781 msgid "Serialized stock cannot be merged" msgstr "Követésre kötelezett készlet nem vonható össze" -#: stock/models.py:1682 stock/serializers.py:1469 +#: stock/models.py:1788 stock/serializers.py:1500 msgid "Duplicate stock items" msgstr "Duplikált készlet tételek vannak" -#: stock/models.py:1686 +#: stock/models.py:1792 msgid "Stock items must refer to the same part" msgstr "A készlet tétel ugyanarra az alkatrészre kell vonatkozzon" -#: stock/models.py:1694 +#: stock/models.py:1800 msgid "Stock items must refer to the same supplier part" msgstr "A készlet tétel ugyanarra a beszállítói alkatrészre kell vonatkozzon" -#: stock/models.py:1699 +#: stock/models.py:1805 msgid "Stock status codes must match" msgstr "Készlet tételek állapotainak egyeznie kell" -#: stock/models.py:1960 +#: stock/models.py:2066 msgid "StockItem cannot be moved as it is not in stock" msgstr "Készlet tétel nem mozgatható mivel nincs készleten" -#: stock/models.py:2343 +#: stock/models.py:2462 msgid "Stock Item Tracking" -msgstr "" +msgstr "Készlettörténet" -#: stock/models.py:2376 +#: stock/models.py:2495 msgid "Entry notes" msgstr "Bejegyzés megjegyzései" -#: stock/models.py:2416 +#: stock/models.py:2535 msgid "Stock Item Test Result" -msgstr "" +msgstr "Készlet Tétel Ellenőrzés Eredménye" -#: stock/models.py:2449 +#: stock/models.py:2566 msgid "Value must be provided for this test" msgstr "Ehhez a teszthez meg kell adni értéket" -#: stock/models.py:2454 +#: stock/models.py:2570 msgid "Attachment must be uploaded for this test" msgstr "Ehhez a teszthez fel kell tölteni mellékletet" -#: stock/models.py:2459 +#: stock/models.py:2575 msgid "Invalid value for this test" -msgstr "" +msgstr "A teszt eredménye érvénytelen" -#: stock/models.py:2544 +#: stock/models.py:2660 msgid "Test result" msgstr "Teszt eredménye" -#: stock/models.py:2551 +#: stock/models.py:2667 msgid "Test output value" msgstr "Teszt kimeneti értéke" -#: stock/models.py:2559 +#: stock/models.py:2675 stock/serializers.py:245 msgid "Test result attachment" msgstr "Teszt eredmény melléklet" -#: stock/models.py:2563 +#: stock/models.py:2679 msgid "Test notes" msgstr "Tesztek megjegyzései" -#: stock/models.py:2571 templates/js/translated/stock.js:1633 +#: stock/models.py:2687 templates/js/translated/stock.js:1633 msgid "Test station" msgstr "Teszt állomás" -#: stock/models.py:2572 +#: stock/models.py:2688 msgid "The identifier of the test station where the test was performed" msgstr "A tesztet elvégző tesztállomás azonosítója" -#: stock/models.py:2578 +#: stock/models.py:2694 msgid "Started" msgstr "Elkezdődött" -#: stock/models.py:2579 +#: stock/models.py:2695 msgid "The timestamp of the test start" msgstr "A teszt indításának időpontja" -#: stock/models.py:2585 +#: stock/models.py:2701 msgid "Finished" msgstr "Befejezve" -#: stock/models.py:2586 +#: stock/models.py:2702 msgid "The timestamp of the test finish" msgstr "A teszt befejezésének időpontja" -#: stock/serializers.py:76 +#: stock/serializers.py:77 msgid "Generated batch code" -msgstr "" +msgstr "Generált köteg kód" -#: stock/serializers.py:85 +#: stock/serializers.py:86 msgid "Select build order" -msgstr "" +msgstr "Gyártási rendelés kiválasztása" -#: stock/serializers.py:94 +#: stock/serializers.py:95 msgid "Select stock item to generate batch code for" -msgstr "" +msgstr "Készlettétel amihez a köteg kódot generáljuk" -#: stock/serializers.py:103 +#: stock/serializers.py:104 msgid "Select location to generate batch code for" -msgstr "" +msgstr "Készlethely amihez a köteg kódot generáljuk" -#: stock/serializers.py:112 +#: stock/serializers.py:113 msgid "Select part to generate batch code for" -msgstr "" +msgstr "Alkatrész amihez a köteg kódot generáljuk" -#: stock/serializers.py:121 +#: stock/serializers.py:122 msgid "Select purchase order" -msgstr "" +msgstr "Beszerzési rendelés kiválasztása" -#: stock/serializers.py:128 +#: stock/serializers.py:129 msgid "Enter quantity for batch code" -msgstr "" +msgstr "Adja meg a mennyiséget a köteg kódhoz" -#: stock/serializers.py:151 +#: stock/serializers.py:152 msgid "Generated serial number" -msgstr "" +msgstr "Generált sorozatszám" -#: stock/serializers.py:160 +#: stock/serializers.py:161 msgid "Select part to generate serial number for" -msgstr "" +msgstr "Válassza ki az alkatrészt amihez sorozatszámot akar generálni" -#: stock/serializers.py:168 +#: stock/serializers.py:169 msgid "Quantity of serial numbers to generate" -msgstr "" +msgstr "Hány sorozatszámot generáljunk" -#: stock/serializers.py:233 +#: stock/serializers.py:234 msgid "Test template for this result" msgstr "Az eredmény Teszt sablonja" -#: stock/serializers.py:254 +#: stock/serializers.py:258 msgid "Template ID or test name must be provided" msgstr "Sablon azonosító vagy Teszt név szükséges" -#: stock/serializers.py:286 +#: stock/serializers.py:290 msgid "The test finished time cannot be earlier than the test started time" msgstr "A tesztet nem lehet a kezdésnél hamarabb befejezni" -#: stock/serializers.py:323 +#: stock/serializers.py:327 msgid "Serial number is too large" msgstr "Szériaszám túl nagy" -#: stock/serializers.py:452 stock/templates/stock/item_base.html:193 +#: stock/serializers.py:462 stock/templates/stock/item_base.html:190 msgid "Parent Item" msgstr "Szülő tétel" -#: stock/serializers.py:453 +#: stock/serializers.py:463 msgid "Parent stock item" -msgstr "" +msgstr "Szülő készlet tétel" -#: stock/serializers.py:472 +#: stock/serializers.py:484 msgid "Use pack size when adding: the quantity defined is the number of packs" msgstr "Csomagolási mennyiség használata: a megadott mennyiség ennyi csomag" -#: stock/serializers.py:596 stock/templates/stock/item_base.html:437 +#: stock/serializers.py:623 stock/templates/stock/item_base.html:434 #: templates/js/translated/table_filters.js:442 users/models.py:174 msgid "Expired" msgstr "Lejárt" -#: stock/serializers.py:602 stock/templates/stock/stock_sidebar.html:20 +#: stock/serializers.py:629 stock/templates/stock/stock_sidebar.html:20 msgid "Child Items" msgstr "Gyermek tételek" -#: stock/serializers.py:606 +#: stock/serializers.py:633 msgid "Tracking Items" -msgstr "" +msgstr "Nyilvántartott tételek" -#: stock/serializers.py:612 +#: stock/serializers.py:639 msgid "Purchase price of this stock item, per unit or pack" msgstr "Készlet tétel beszerzési ára, per darab vagy csomag" -#: stock/serializers.py:631 +#: stock/serializers.py:658 msgid "Minimum Pricing" -msgstr "" +msgstr "Minimum árazás" -#: stock/serializers.py:637 +#: stock/serializers.py:664 msgid "Maximum Pricing" -msgstr "" +msgstr "Maximum árazás" -#: stock/serializers.py:661 +#: stock/serializers.py:688 msgid "Enter number of stock items to serialize" msgstr "Add meg hány készlet tételt lássunk el sorozatszámmal" -#: stock/serializers.py:674 +#: stock/serializers.py:701 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({q})" msgstr "A mennyiség nem lépheti túl a rendelkezésre álló készletet ({q})" -#: stock/serializers.py:681 +#: stock/serializers.py:708 msgid "Enter serial numbers for new items" msgstr "Írd be a sorozatszámokat az új tételekhez" -#: stock/serializers.py:692 stock/serializers.py:1426 stock/serializers.py:1682 +#: stock/serializers.py:719 stock/serializers.py:1457 stock/serializers.py:1713 msgid "Destination stock location" msgstr "Cél készlet hely" -#: stock/serializers.py:699 +#: stock/serializers.py:726 msgid "Optional note field" msgstr "Opcionális megjegyzés mező" -#: stock/serializers.py:709 +#: stock/serializers.py:736 msgid "Serial numbers cannot be assigned to this part" msgstr "Sorozatszámokat nem lehet hozzárendelni ehhez az alkatrészhez" -#: stock/serializers.py:764 +#: stock/serializers.py:756 +msgid "Serial numbers already exist" +msgstr "A sorozatszámok már léteznek" + +#: stock/serializers.py:795 msgid "Select stock item to install" msgstr "Válaszd ki a beépítésre szánt készlet tételt" -#: stock/serializers.py:771 +#: stock/serializers.py:802 msgid "Quantity to Install" msgstr "Beépítendő mennyiség" -#: stock/serializers.py:772 +#: stock/serializers.py:803 msgid "Enter the quantity of items to install" msgstr "Adja meg a beépítendő mennyiséget" -#: stock/serializers.py:777 stock/serializers.py:857 stock/serializers.py:983 -#: stock/serializers.py:1033 +#: stock/serializers.py:808 stock/serializers.py:888 stock/serializers.py:1014 +#: stock/serializers.py:1064 msgid "Add transaction note (optional)" msgstr "Tranzakció megjegyzés hozzáadása (opcionális)" -#: stock/serializers.py:785 +#: stock/serializers.py:816 msgid "Quantity to install must be at least 1" msgstr "A beépítendő mennyiség legalább 1 legyen" -#: stock/serializers.py:793 +#: stock/serializers.py:824 msgid "Stock item is unavailable" msgstr "Készlet tétel nem elérhető" -#: stock/serializers.py:804 +#: stock/serializers.py:835 msgid "Selected part is not in the Bill of Materials" msgstr "A kiválasztott alkatrész nincs az alkatrészjegyzékben" -#: stock/serializers.py:817 +#: stock/serializers.py:848 msgid "Quantity to install must not exceed available quantity" msgstr "A beépítendő mennyiség nem haladhatja meg az elérhető mennyiséget" -#: stock/serializers.py:852 +#: stock/serializers.py:883 msgid "Destination location for uninstalled item" msgstr "Cél hely a kiszedett tételeknek" -#: stock/serializers.py:903 +#: stock/serializers.py:934 msgid "Unsupported statistic type: " -msgstr "" +msgstr "Nem támogatott statisztikai típus: " -#: stock/serializers.py:917 +#: stock/serializers.py:948 msgid "Select part to convert stock item into" msgstr "Válassz alkatrészt amire konvertáljuk a készletet" -#: stock/serializers.py:930 +#: stock/serializers.py:961 msgid "Selected part is not a valid option for conversion" msgstr "A kiválasztott alkatrész nem megfelelő a konverzióhoz" -#: stock/serializers.py:947 +#: stock/serializers.py:978 msgid "Cannot convert stock item with assigned SupplierPart" msgstr "Készlet tétel hozzárendelt beszállítói alkatrésszel nem konvertálható" -#: stock/serializers.py:978 +#: stock/serializers.py:1009 msgid "Destination location for returned item" msgstr "Cél hely a visszatérő tételeknek" -#: stock/serializers.py:1015 +#: stock/serializers.py:1046 msgid "Select stock items to change status" msgstr "Válaszd ki a státuszváltásra szánt készlet tételeket" -#: stock/serializers.py:1021 +#: stock/serializers.py:1052 msgid "No stock items selected" msgstr "Nincs készlet tétel kiválasztva" -#: stock/serializers.py:1117 stock/serializers.py:1194 -#: stock/templates/stock/location.html:162 -#: stock/templates/stock/location.html:219 +#: stock/serializers.py:1148 stock/serializers.py:1225 +#: stock/templates/stock/location.html:163 +#: stock/templates/stock/location.html:220 #: stock/templates/stock/location_sidebar.html:5 msgid "Sublocations" msgstr "Alhelyek" -#: stock/serializers.py:1187 templates/js/translated/stock.js:160 +#: stock/serializers.py:1218 templates/js/translated/stock.js:160 msgid "Parent stock location" msgstr "Felsőbb szintű készlet hely" -#: stock/serializers.py:1298 +#: stock/serializers.py:1329 msgid "Part must be salable" msgstr "Az alkatrésznek értékesíthetőnek kell lennie" -#: stock/serializers.py:1302 +#: stock/serializers.py:1333 msgid "Item is allocated to a sales order" msgstr "A tétel egy vevő rendeléshez foglalt" -#: stock/serializers.py:1306 +#: stock/serializers.py:1337 msgid "Item is allocated to a build order" msgstr "A tétel egy gyártási utasításhoz foglalt" -#: stock/serializers.py:1330 +#: stock/serializers.py:1361 msgid "Customer to assign stock items" msgstr "Vevő akihez rendeljük a készlet tételeket" -#: stock/serializers.py:1336 +#: stock/serializers.py:1367 msgid "Selected company is not a customer" msgstr "A kiválasztott cég nem egy vevő" -#: stock/serializers.py:1344 +#: stock/serializers.py:1375 msgid "Stock assignment notes" msgstr "Készlet hozzárendelés megjegyzései" -#: stock/serializers.py:1354 stock/serializers.py:1608 +#: stock/serializers.py:1385 stock/serializers.py:1639 msgid "A list of stock items must be provided" msgstr "A készlet tételek listáját meg kell adni" -#: stock/serializers.py:1433 +#: stock/serializers.py:1464 msgid "Stock merging notes" msgstr "Készlet összevonás megjegyzései" -#: stock/serializers.py:1438 +#: stock/serializers.py:1469 msgid "Allow mismatched suppliers" msgstr "Nem egyező beszállítók megengedése" -#: stock/serializers.py:1439 +#: stock/serializers.py:1470 msgid "Allow stock items with different supplier parts to be merged" msgstr "Különböző beszállítói alkatrészekből származó készletek összevonásának engedélyezése" -#: stock/serializers.py:1444 +#: stock/serializers.py:1475 msgid "Allow mismatched status" msgstr "Nem egyező állapotok megjelenítése" -#: stock/serializers.py:1445 +#: stock/serializers.py:1476 msgid "Allow stock items with different status codes to be merged" msgstr "Különböző állapotú készletek összevonásának engedélyezése" -#: stock/serializers.py:1455 +#: stock/serializers.py:1486 msgid "At least two stock items must be provided" msgstr "Legalább két készlet tételt meg kell adni" -#: stock/serializers.py:1522 +#: stock/serializers.py:1553 msgid "No Change" msgstr "Nincs változás" -#: stock/serializers.py:1551 +#: stock/serializers.py:1582 msgid "StockItem primary key value" msgstr "Készlet tétel elsődleges kulcs értéke" -#: stock/serializers.py:1570 +#: stock/serializers.py:1601 msgid "Stock item status code" msgstr "Készlet tétel státusz kódja" -#: stock/serializers.py:1598 +#: stock/serializers.py:1629 msgid "Stock transaction notes" msgstr "Készlet tranzakció megjegyzései" @@ -10176,107 +10540,107 @@ msgstr "Elutasított" msgid "Quarantined" msgstr "Karanténban" -#: stock/status_codes.py:40 +#: stock/status_codes.py:44 msgid "Legacy stock tracking entry" msgstr "Örökölt készlet követési bejegyzés" -#: stock/status_codes.py:42 templates/js/translated/stock.js:550 +#: stock/status_codes.py:46 templates/js/translated/stock.js:550 msgid "Stock item created" msgstr "Készlet tétel létrehozva" -#: stock/status_codes.py:45 +#: stock/status_codes.py:49 msgid "Edited stock item" msgstr "Szerkeszett készlet tétel" -#: stock/status_codes.py:46 +#: stock/status_codes.py:50 msgid "Assigned serial number" msgstr "Hozzárendelt sorozatszám" -#: stock/status_codes.py:49 +#: stock/status_codes.py:53 msgid "Stock counted" msgstr "Készlet leleltározva" -#: stock/status_codes.py:50 +#: stock/status_codes.py:54 msgid "Stock manually added" msgstr "Készlet manuálisan hozzáadva" -#: stock/status_codes.py:51 +#: stock/status_codes.py:55 msgid "Stock manually removed" msgstr "Készlet manuálisan elvéve" -#: stock/status_codes.py:54 +#: stock/status_codes.py:58 msgid "Location changed" msgstr "Hely megváltozott" -#: stock/status_codes.py:55 +#: stock/status_codes.py:59 msgid "Stock updated" msgstr "Készletadatok frissítve" -#: stock/status_codes.py:58 +#: stock/status_codes.py:62 msgid "Installed into assembly" msgstr "Gyártmányba beépült" -#: stock/status_codes.py:59 +#: stock/status_codes.py:63 msgid "Removed from assembly" msgstr "Gyártmányból eltávolítva" -#: stock/status_codes.py:61 +#: stock/status_codes.py:65 msgid "Installed component item" msgstr "Beépült összetevő tétel" -#: stock/status_codes.py:62 +#: stock/status_codes.py:66 msgid "Removed component item" msgstr "Eltávolított összetevő tétel" -#: stock/status_codes.py:65 +#: stock/status_codes.py:69 msgid "Split from parent item" msgstr "Szülő tételből szétválasztva" -#: stock/status_codes.py:66 +#: stock/status_codes.py:70 msgid "Split child item" msgstr "Szétválasztott gyermek tétel" -#: stock/status_codes.py:69 templates/js/translated/stock.js:1943 +#: stock/status_codes.py:73 templates/js/translated/stock.js:1944 msgid "Merged stock items" msgstr "Összevont készlet tétel" -#: stock/status_codes.py:72 +#: stock/status_codes.py:76 msgid "Converted to variant" msgstr "Alkatrészváltozattá alakítva" -#: stock/status_codes.py:75 +#: stock/status_codes.py:79 msgid "Build order output created" msgstr "Gyártási utasítás kimenete elkészült" -#: stock/status_codes.py:76 +#: stock/status_codes.py:80 msgid "Build order output completed" msgstr "Gyártási utasítás kimenete kész" -#: stock/status_codes.py:77 +#: stock/status_codes.py:81 msgid "Build order output rejected" msgstr "Gyártási utasítás kimenete elutasítva" -#: stock/status_codes.py:78 templates/js/translated/stock.js:1849 +#: stock/status_codes.py:82 templates/js/translated/stock.js:1849 msgid "Consumed by build order" msgstr "Gyártásra felhasználva" -#: stock/status_codes.py:81 +#: stock/status_codes.py:85 msgid "Shipped against Sales Order" msgstr "Vevői rendelésre kiszállítva" -#: stock/status_codes.py:84 +#: stock/status_codes.py:88 msgid "Received against Purchase Order" msgstr "Megrendelésre érkezett" -#: stock/status_codes.py:87 +#: stock/status_codes.py:91 msgid "Returned against Return Order" msgstr "Visszavéve" -#: stock/status_codes.py:90 templates/js/translated/table_filters.js:382 +#: stock/status_codes.py:94 templates/js/translated/table_filters.js:382 msgid "Sent to customer" msgstr "Vevőnek kiszállítva" -#: stock/status_codes.py:91 +#: stock/status_codes.py:95 msgid "Returned from customer" msgstr "Vevőtől visszaérkezett" @@ -10297,7 +10661,7 @@ msgstr "Ez a készlet tétel nem tartalmaz egy altételt sem" msgid "Test Data" msgstr "Teszt adatok" -#: stock/templates/stock/item.html:85 stock/templates/stock/item_base.html:65 +#: stock/templates/stock/item.html:85 msgid "Test Report" msgstr "Teszt riport" @@ -10317,7 +10681,7 @@ msgstr "Készlet tétel megjegyzések" msgid "Installed Stock Items" msgstr "Beépített készlet tételek" -#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3354 +#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3355 msgid "Install Stock Item" msgstr "Készlet tétel beépítése" @@ -10329,208 +10693,212 @@ msgstr "Készlet tétel összes teszt eredményének törlése" msgid "Add Test Result" msgstr "Teszt eredmény hozzáadása" -#: stock/templates/stock/item_base.html:33 +#: stock/templates/stock/item_base.html:34 msgid "Locate stock item" msgstr "Készlet tétel keresése" -#: stock/templates/stock/item_base.html:51 +#: stock/templates/stock/item_base.html:52 msgid "Scan to Location" msgstr "Áthelyezés kódolvasással" #: stock/templates/stock/item_base.html:59 -#: stock/templates/stock/location.html:67 +#: stock/templates/stock/location.html:68 #: templates/js/translated/filters.js:434 msgid "Printing actions" msgstr "Nyomtatási műveletek" -#: stock/templates/stock/item_base.html:75 +#: stock/templates/stock/item_base.html:64 templates/js/translated/report.js:49 +msgid "Print Report" +msgstr "Jelentés nyomtatása" + +#: stock/templates/stock/item_base.html:72 msgid "Stock adjustment actions" msgstr "Készlet módosítási műveletek" -#: stock/templates/stock/item_base.html:79 -#: stock/templates/stock/location.html:87 templates/js/translated/stock.js:1909 +#: stock/templates/stock/item_base.html:76 +#: stock/templates/stock/location.html:88 templates/js/translated/stock.js:1909 msgid "Count stock" msgstr "Leltározás" -#: stock/templates/stock/item_base.html:81 +#: stock/templates/stock/item_base.html:78 #: templates/js/translated/stock.js:1891 msgid "Add stock" msgstr "Készlet növelése" -#: stock/templates/stock/item_base.html:82 +#: stock/templates/stock/item_base.html:79 #: templates/js/translated/stock.js:1900 msgid "Remove stock" msgstr "Készlet csökkentése" -#: stock/templates/stock/item_base.html:85 +#: stock/templates/stock/item_base.html:82 msgid "Serialize stock" msgstr "Sorozatszámok előállítása" -#: stock/templates/stock/item_base.html:88 -#: stock/templates/stock/location.html:93 templates/js/translated/stock.js:1918 +#: stock/templates/stock/item_base.html:85 +#: stock/templates/stock/location.html:94 templates/js/translated/stock.js:1918 msgid "Transfer stock" msgstr "Készlet áthelyezése" -#: stock/templates/stock/item_base.html:91 -#: templates/js/translated/stock.js:1972 +#: stock/templates/stock/item_base.html:88 +#: templates/js/translated/stock.js:1973 msgid "Assign to customer" msgstr "Vevőhöz rendelése" -#: stock/templates/stock/item_base.html:94 +#: stock/templates/stock/item_base.html:91 msgid "Return to stock" msgstr "Visszavétel készletre" -#: stock/templates/stock/item_base.html:97 +#: stock/templates/stock/item_base.html:94 msgid "Uninstall stock item" msgstr "Készlet tétel kiszedése" -#: stock/templates/stock/item_base.html:97 +#: stock/templates/stock/item_base.html:94 msgid "Uninstall" msgstr "Kiszedés" -#: stock/templates/stock/item_base.html:101 +#: stock/templates/stock/item_base.html:98 msgid "Install stock item" msgstr "Készlet tétel beépítése" -#: stock/templates/stock/item_base.html:101 +#: stock/templates/stock/item_base.html:98 msgid "Install" msgstr "Beépítés" -#: stock/templates/stock/item_base.html:115 +#: stock/templates/stock/item_base.html:112 msgid "Convert to variant" msgstr "Változattá alakítás" -#: stock/templates/stock/item_base.html:118 +#: stock/templates/stock/item_base.html:115 msgid "Duplicate stock item" msgstr "Készlet tétel másolása" -#: stock/templates/stock/item_base.html:120 +#: stock/templates/stock/item_base.html:117 msgid "Edit stock item" msgstr "Készlet tétel szerkesztése" -#: stock/templates/stock/item_base.html:123 +#: stock/templates/stock/item_base.html:120 msgid "Delete stock item" msgstr "Készlet tétel törlése" -#: stock/templates/stock/item_base.html:169 templates/InvenTree/search.html:139 -#: templates/js/translated/build.js:2295 templates/navbar.html:38 +#: stock/templates/stock/item_base.html:166 templates/InvenTree/search.html:139 +#: templates/js/translated/build.js:2298 templates/navbar.html:38 msgid "Build" msgstr "Gyártás" -#: stock/templates/stock/item_base.html:211 +#: stock/templates/stock/item_base.html:208 msgid "No manufacturer set" msgstr "Nincs beállítva gyártó" -#: stock/templates/stock/item_base.html:251 +#: stock/templates/stock/item_base.html:248 msgid "You are not in the list of owners of this item. This stock item cannot be edited." msgstr "Úgytűnik nem vagy ennek a tételnek a tulajdonosa. Ezt így nem tudod módosítani." -#: stock/templates/stock/item_base.html:252 -#: stock/templates/stock/location.html:146 +#: stock/templates/stock/item_base.html:249 +#: stock/templates/stock/location.html:147 msgid "Read only" msgstr "Csak olvasható" -#: stock/templates/stock/item_base.html:265 +#: stock/templates/stock/item_base.html:262 msgid "This stock item is unavailable" msgstr "Ez a készlet tétel nem elérhető" -#: stock/templates/stock/item_base.html:271 +#: stock/templates/stock/item_base.html:268 msgid "This stock item is in production and cannot be edited." msgstr "Ez a készlet tétel éppen gyártás alatt van és itt még nem szerkeszthető." -#: stock/templates/stock/item_base.html:272 +#: stock/templates/stock/item_base.html:269 msgid "Edit the stock item from the build view." msgstr "A tétel szerkesztése most csak a gyártási nézetből lehetséges." -#: stock/templates/stock/item_base.html:287 +#: stock/templates/stock/item_base.html:284 msgid "This stock item is allocated to Sales Order" msgstr "Foglalva ehhez a vevői rendeléshez" -#: stock/templates/stock/item_base.html:295 +#: stock/templates/stock/item_base.html:292 msgid "This stock item is allocated to Build Order" msgstr "Foglalva ehhez a gyártási utasításhoz" -#: stock/templates/stock/item_base.html:311 +#: stock/templates/stock/item_base.html:308 msgid "This stock item is serialized. It has a unique serial number and the quantity cannot be adjusted" msgstr "Ez a készlet tétel egyedi követésre kötelezett. Egyedi sorozatszámmal rendelkezik így a mennyiség nem módosítható" -#: stock/templates/stock/item_base.html:317 +#: stock/templates/stock/item_base.html:314 msgid "previous page" msgstr "előző oldal" -#: stock/templates/stock/item_base.html:317 +#: stock/templates/stock/item_base.html:314 msgid "Navigate to previous serial number" msgstr "Menj az előző sorozatszámhoz" -#: stock/templates/stock/item_base.html:326 +#: stock/templates/stock/item_base.html:323 msgid "next page" msgstr "követkető oldal" -#: stock/templates/stock/item_base.html:326 +#: stock/templates/stock/item_base.html:323 msgid "Navigate to next serial number" msgstr "Menj a következő sorozatszámhoz" -#: stock/templates/stock/item_base.html:398 -#: templates/js/translated/build.js:2552 +#: stock/templates/stock/item_base.html:395 +#: templates/js/translated/build.js:2559 msgid "No location set" msgstr "Nincs beállítva hely" -#: stock/templates/stock/item_base.html:413 +#: stock/templates/stock/item_base.html:410 msgid "Tests" msgstr "Tesztek" -#: stock/templates/stock/item_base.html:419 +#: stock/templates/stock/item_base.html:416 msgid "This stock item has not passed all required tests" msgstr "Ez a készlet tétel nem felelt meg az összes szükséges teszten" -#: stock/templates/stock/item_base.html:437 +#: stock/templates/stock/item_base.html:434 #, python-format msgid "This StockItem expired on %(item.expiry_date)s" msgstr "Ez a készlet tétel lejárt %(item.expiry_date)s-n" -#: stock/templates/stock/item_base.html:439 +#: stock/templates/stock/item_base.html:436 #, python-format msgid "This StockItem expires on %(item.expiry_date)s" msgstr "Ez a készlet tétel lejár %(item.expiry_date)s-n" -#: stock/templates/stock/item_base.html:455 +#: stock/templates/stock/item_base.html:452 msgid "No stocktake performed" msgstr "Még nem volt leltározva" -#: stock/templates/stock/item_base.html:504 -#: templates/js/translated/stock.js:2037 +#: stock/templates/stock/item_base.html:501 +#: templates/js/translated/stock.js:2038 msgid "stock item" msgstr "készlet tétel" -#: stock/templates/stock/item_base.html:527 +#: stock/templates/stock/item_base.html:524 msgid "Edit Stock Status" msgstr "Készlet állapot szerkesztése" -#: stock/templates/stock/item_base.html:536 +#: stock/templates/stock/item_base.html:533 msgid "Stock Item QR Code" msgstr "Készlet tétel QR kódja" -#: stock/templates/stock/item_base.html:547 +#: stock/templates/stock/item_base.html:544 msgid "Link Barcode to Stock Item" msgstr "Vonalkód hozzárendelése a készlet tételhez" -#: stock/templates/stock/item_base.html:611 +#: stock/templates/stock/item_base.html:608 msgid "Select one of the part variants listed below." msgstr "Válassz a lenti alkatrész változatok közül" -#: stock/templates/stock/item_base.html:614 +#: stock/templates/stock/item_base.html:611 msgid "Warning" msgstr "Figyelem" -#: stock/templates/stock/item_base.html:615 +#: stock/templates/stock/item_base.html:612 msgid "This action cannot be easily undone" msgstr "Ez a művelet nem vonható vissza könnyen" -#: stock/templates/stock/item_base.html:623 +#: stock/templates/stock/item_base.html:620 msgid "Convert Stock Item" msgstr "Készlet tétel konvertálása" -#: stock/templates/stock/item_base.html:656 +#: stock/templates/stock/item_base.html:653 msgid "Return to Stock" msgstr "Visszavétel készletre" @@ -10542,84 +10910,84 @@ msgstr "Sorszámozott készletek létrehozása ebből a készlet tételből." msgid "Select quantity to serialize, and unique serial numbers." msgstr "Válassz mennyiséget és egyedi sorozatszámokat a sorozatszámozáshoz." -#: stock/templates/stock/location.html:35 +#: stock/templates/stock/location.html:36 msgid "Perform stocktake for this stock location" msgstr "Készlethely leltározása" -#: stock/templates/stock/location.html:42 +#: stock/templates/stock/location.html:43 msgid "Locate stock location" msgstr "Készlet hely keresése" -#: stock/templates/stock/location.html:60 +#: stock/templates/stock/location.html:61 msgid "Scan stock items into this location" msgstr "Készlet bevételezése erre a helyre" -#: stock/templates/stock/location.html:60 +#: stock/templates/stock/location.html:61 msgid "Scan In Stock Items" msgstr "Készlet vonalkódok beolvasása" -#: stock/templates/stock/location.html:61 +#: stock/templates/stock/location.html:62 msgid "Scan stock container into this location" msgstr "Készlet tároló bevételezése erre a helyre" -#: stock/templates/stock/location.html:61 +#: stock/templates/stock/location.html:62 msgid "Scan In Container" msgstr "Tároló vonalkód beolvasása" -#: stock/templates/stock/location.html:72 +#: stock/templates/stock/location.html:73 msgid "Print Location Report" msgstr "Készlethely riport nyomtatása" -#: stock/templates/stock/location.html:101 +#: stock/templates/stock/location.html:102 msgid "Location actions" msgstr "Hely műveletek" -#: stock/templates/stock/location.html:103 +#: stock/templates/stock/location.html:104 msgid "Edit location" msgstr "Hely szerkesztése" -#: stock/templates/stock/location.html:105 +#: stock/templates/stock/location.html:106 msgid "Delete location" msgstr "Hely törlése" -#: stock/templates/stock/location.html:135 +#: stock/templates/stock/location.html:136 msgid "Top level stock location" msgstr "Legfelső szintű készlet hely" -#: stock/templates/stock/location.html:141 +#: stock/templates/stock/location.html:142 msgid "Location Owner" msgstr "Hely tulajdonosa" -#: stock/templates/stock/location.html:145 +#: stock/templates/stock/location.html:146 msgid "You are not in the list of owners of this location. This stock location cannot be edited." msgstr "Úgytűnik nem vagy ennek a készlethelynek a tulajdonosa. Ezt így nem tudod módosítani." -#: stock/templates/stock/location.html:173 +#: stock/templates/stock/location.html:174 msgid "Location Type" -msgstr "" +msgstr "Készlethely Típus" -#: stock/templates/stock/location.html:223 +#: stock/templates/stock/location.html:224 msgid "Create new stock location" msgstr "Új készlet hely létrehozása" -#: stock/templates/stock/location.html:224 +#: stock/templates/stock/location.html:225 msgid "New Location" msgstr "Új hely" -#: stock/templates/stock/location.html:298 -#: templates/js/translated/stock.js:2657 +#: stock/templates/stock/location.html:299 +#: templates/js/translated/stock.js:2658 msgid "stock location" msgstr "készlet hely" -#: stock/templates/stock/location.html:320 +#: stock/templates/stock/location.html:321 msgid "Scanned stock container into this location" msgstr "Készlet tároló bevételezve erre a helyre" -#: stock/templates/stock/location.html:393 +#: stock/templates/stock/location.html:394 msgid "Stock Location QR Code" msgstr "Készlet hely QR kódja" -#: stock/templates/stock/location.html:404 +#: stock/templates/stock/location.html:405 msgid "Link Barcode to Stock Location" msgstr "Vonalkód hozzárendelése a készlet helyhez" @@ -10631,10 +10999,6 @@ msgstr "Betöltés..." msgid "Stock Tracking" msgstr "Készlettörténet" -#: stock/templates/stock/stock_sidebar.html:8 -msgid "Allocations" -msgstr "Foglalások" - #: templates/403.html:6 templates/403.html:12 templates/403_csrf.html:7 msgid "Permission Denied" msgstr "Hozzáférés megtagadva" @@ -11108,9 +11472,9 @@ msgid "Rate" msgstr "Árfolyam" #: templates/InvenTree/settings/settings_staff_js.html:81 -#: templates/js/translated/forms.js:548 templates/js/translated/helpers.js:108 +#: templates/js/translated/forms.js:548 templates/js/translated/helpers.js:109 #: templates/js/translated/part.js:395 templates/js/translated/pricing.js:629 -#: templates/js/translated/stock.js:252 users/models.py:406 +#: templates/js/translated/stock.js:252 users/models.py:408 msgid "Delete" msgstr "Törlés" @@ -11131,7 +11495,7 @@ msgid "No project codes found" msgstr "Nem találhatók projektszámok" #: templates/InvenTree/settings/settings_staff_js.html:158 -#: templates/js/translated/build.js:2400 +#: templates/js/translated/build.js:2403 msgid "group" msgstr "csoport" @@ -11197,7 +11561,7 @@ msgid "Delete Location Type" msgstr "Készlethely típus törlése" #: templates/InvenTree/settings/settings_staff_js.html:503 -#: templates/InvenTree/settings/stock.html:38 +#: templates/InvenTree/settings/stock.html:39 msgid "New Location Type" msgstr "Új készlethely típus" @@ -11254,7 +11618,7 @@ msgstr "Vevő rendelés beállításai" msgid "Stock Settings" msgstr "Készlet beállítások" -#: templates/InvenTree/settings/stock.html:34 +#: templates/InvenTree/settings/stock.html:35 msgid "Stock Location Types" msgstr "Készlethely típusok" @@ -11281,7 +11645,7 @@ msgid "Unverified" msgstr "Nem ellenőrzött" #: templates/InvenTree/settings/user.html:80 -#: templates/js/translated/company.js:957 +#: templates/js/translated/company.js:958 msgid "Primary" msgstr "Elsődleges" @@ -11533,7 +11897,7 @@ msgid "Submit Bug Report" msgstr "Hibabejelentés küldése" #: templates/about.html:91 templates/clip.html:4 -#: templates/js/translated/helpers.js:592 +#: templates/js/translated/helpers.js:598 msgid "copy to clipboard" msgstr "vágólapra másolás" @@ -11713,7 +12077,7 @@ msgstr "Olvasd be a lenti QR kódot egy kiválaszott token generátorral (péld #: templates/allauth_2fa/setup.html:20 msgid "Secret: " -msgstr "" +msgstr "Titok: " #: templates/allauth_2fa/setup.html:24 msgid "Step 2" @@ -11739,23 +12103,24 @@ msgstr "Melléklet hozzáadása" msgid "Barcode Identifier" msgstr "Vonalkód azonosító" -#: templates/base.html:103 +#: templates/base.html:102 msgid "Server Restart Required" msgstr "Kiszolgáló újraindítása szükséges" -#: templates/base.html:106 +#: templates/base.html:105 msgid "A configuration option has been changed which requires a server restart" msgstr "Egy olyan konfigurációs opció megváltozott ami a kiszolgáló újraindítását igényli" -#: templates/base.html:106 templates/base.html:116 +#: templates/base.html:105 templates/base.html:115 +#: templates/socialaccount/authentication_error.html:13 msgid "Contact your system administrator for further information" msgstr "Vedd fel a kapcsolatot a rendszergazdával további információkért" -#: templates/base.html:113 +#: templates/base.html:112 msgid "Pending Database Migrations" msgstr "Függőben levő adatbázis migrációk" -#: templates/base.html:116 +#: templates/base.html:115 msgid "There are pending database migrations which require attention" msgstr "Törődést igénylő függőben levő adatbázis migrációk találhatók" @@ -11788,7 +12153,7 @@ msgid "The following parts are low on required stock" msgstr "A következő alkatrészek szükséges készlete alacsony" #: templates/email/build_order_required_stock.html:18 -#: templates/js/translated/bom.js:1674 templates/js/translated/build.js:2747 +#: templates/js/translated/bom.js:1674 templates/js/translated/build.js:2765 msgid "Required Quantity" msgstr "Szükséges mennyiség" @@ -11802,7 +12167,7 @@ msgid "Click on the following link to view this part" msgstr "Klikk a következő linkre az alkatrész megjelenítéséhez" #: templates/email/low_stock_notification.html:18 -#: templates/js/translated/part.js:3237 +#: templates/js/translated/part.js:3253 msgid "Minimum Quantity" msgstr "Minimum mennyiség" @@ -12040,7 +12405,7 @@ msgstr "Sor adat" #: templates/js/translated/bom.js:189 templates/js/translated/bom.js:700 #: templates/js/translated/modals.js:75 templates/js/translated/modals.js:629 #: templates/js/translated/modals.js:757 templates/js/translated/modals.js:1065 -#: templates/js/translated/purchase_order.js:797 templates/modals.html:15 +#: templates/js/translated/purchase_order.js:780 templates/modals.html:15 #: templates/modals.html:27 templates/modals.html:39 templates/modals.html:50 msgid "Close" msgstr "Bezárás" @@ -12157,7 +12522,7 @@ msgstr "Alkatrészjegyzék betöltése az al-gyártmányhoz" msgid "Substitutes Available" msgstr "Vannak helyettesítők" -#: templates/js/translated/bom.js:950 templates/js/translated/build.js:2673 +#: templates/js/translated/bom.js:950 templates/js/translated/build.js:2682 msgid "Variant stock allowed" msgstr "Készletváltozatok engedélyezve" @@ -12177,30 +12542,30 @@ msgstr "Alkatrészjegyzék árazása nem teljes" msgid "No pricing available" msgstr "Nincsenek árak" -#: templates/js/translated/bom.js:1184 templates/js/translated/build.js:2812 +#: templates/js/translated/bom.js:1184 templates/js/translated/build.js:2830 msgid "External stock" msgstr "Külső raktárkészlet" -#: templates/js/translated/bom.js:1188 templates/js/translated/build.js:2786 -#: templates/js/translated/sales_order.js:1946 +#: templates/js/translated/bom.js:1188 templates/js/translated/build.js:2804 +#: templates/js/translated/sales_order.js:1927 msgid "No Stock Available" msgstr "Nincs szabad" -#: templates/js/translated/bom.js:1193 templates/js/translated/build.js:2790 +#: templates/js/translated/bom.js:1193 templates/js/translated/build.js:2808 msgid "Includes variant and substitute stock" msgstr "Változatokkal és helyettesítőkkel együtt" -#: templates/js/translated/bom.js:1195 templates/js/translated/build.js:2792 +#: templates/js/translated/bom.js:1195 templates/js/translated/build.js:2810 #: templates/js/translated/part.js:1263 -#: templates/js/translated/sales_order.js:1943 +#: templates/js/translated/sales_order.js:1924 msgid "Includes variant stock" msgstr "Változatokkal együtt" -#: templates/js/translated/bom.js:1197 templates/js/translated/build.js:2794 +#: templates/js/translated/bom.js:1197 templates/js/translated/build.js:2812 msgid "Includes substitute stock" msgstr "Helyettesítőkkel együtt" -#: templates/js/translated/bom.js:1225 templates/js/translated/build.js:2777 +#: templates/js/translated/bom.js:1225 templates/js/translated/build.js:2795 msgid "Consumable item" msgstr "Fogyóeszköz tétel" @@ -12232,7 +12597,7 @@ msgstr "Alkatrészjegyzék megtekintése" msgid "No BOM items found" msgstr "Nem találhatók alkatrészjegyzék tételek" -#: templates/js/translated/bom.js:1657 templates/js/translated/build.js:2658 +#: templates/js/translated/bom.js:1657 templates/js/translated/build.js:2667 msgid "Required Part" msgstr "Szükséges alkatrész" @@ -12244,396 +12609,396 @@ msgstr "Örökölve a szülő alkatrészjegyzéktől" msgid "Edit Build Order" msgstr "Gyártási utasítás szerkesztése" -#: templates/js/translated/build.js:191 +#: templates/js/translated/build.js:194 msgid "Create Build Order" msgstr "Gyártási utasítás létrehozása" -#: templates/js/translated/build.js:223 +#: templates/js/translated/build.js:226 msgid "Cancel Build Order" msgstr "Gyártási utasítás törlése" -#: templates/js/translated/build.js:232 +#: templates/js/translated/build.js:235 msgid "Are you sure you wish to cancel this build?" msgstr "Biztosan meg szeretnéd szakítani ezt a gyártást?" -#: templates/js/translated/build.js:238 +#: templates/js/translated/build.js:241 msgid "Stock items have been allocated to this build order" msgstr "Ehhez a gyártáshoz készlet lett hozzárendelve" -#: templates/js/translated/build.js:245 +#: templates/js/translated/build.js:248 msgid "There are incomplete outputs remaining for this build order" msgstr "Ennek a gyártásnak befejezetlen kimenetei vannak" -#: templates/js/translated/build.js:297 +#: templates/js/translated/build.js:300 msgid "Build order is ready to be completed" msgstr "Gyártási utasítás készen áll a befejezésre" -#: templates/js/translated/build.js:305 +#: templates/js/translated/build.js:308 msgid "This build order cannot be completed as there are incomplete outputs" msgstr "A rendelés nem jelölhető késznek mivel függő kimenetek vannak" -#: templates/js/translated/build.js:310 +#: templates/js/translated/build.js:313 msgid "Build Order is incomplete" msgstr "Gyártási utasítás befejezetlen" -#: templates/js/translated/build.js:328 +#: templates/js/translated/build.js:331 msgid "Complete Build Order" msgstr "Gyártási utasítás befejezése" -#: templates/js/translated/build.js:369 templates/js/translated/stock.js:127 +#: templates/js/translated/build.js:372 templates/js/translated/stock.js:127 #: templates/js/translated/stock.js:301 msgid "Next available serial number" msgstr "Következő szabad sorozatszám" -#: templates/js/translated/build.js:371 templates/js/translated/stock.js:129 +#: templates/js/translated/build.js:374 templates/js/translated/stock.js:129 #: templates/js/translated/stock.js:303 msgid "Latest serial number" msgstr "Legutolsó sorozatszám" -#: templates/js/translated/build.js:380 +#: templates/js/translated/build.js:383 msgid "The Bill of Materials contains trackable parts" msgstr "Az alkatrészjegyzék követésre kötelezett alkatrészeket tartalmaz" -#: templates/js/translated/build.js:381 +#: templates/js/translated/build.js:384 msgid "Build outputs must be generated individually" msgstr "A gyártási kimeneteket egyesével kell előállítani" -#: templates/js/translated/build.js:389 +#: templates/js/translated/build.js:392 msgid "Trackable parts can have serial numbers specified" msgstr "A követésre kötelezett alkatrészekhez sorozatszámot lehet rendelni" -#: templates/js/translated/build.js:390 +#: templates/js/translated/build.js:393 msgid "Enter serial numbers to generate multiple single build outputs" msgstr "Adj meg sorozatszámokat a több egyedi gyártási kimenet létrehozásához" -#: templates/js/translated/build.js:397 +#: templates/js/translated/build.js:400 msgid "Create Build Output" msgstr "Gyártási kimenet létrehozása" -#: templates/js/translated/build.js:428 +#: templates/js/translated/build.js:431 msgid "Allocate stock items to this build output" msgstr "Készlet tételek foglalása ehhez a gyártási kimenethez" -#: templates/js/translated/build.js:436 +#: templates/js/translated/build.js:439 msgid "Deallocate stock from build output" msgstr "Készlet felszabadítása a gyártási kimenetből" -#: templates/js/translated/build.js:445 +#: templates/js/translated/build.js:448 msgid "Complete build output" msgstr "Gyártási kimenet befejezése" -#: templates/js/translated/build.js:453 +#: templates/js/translated/build.js:456 msgid "Scrap build output" msgstr "Gyártási kimenet selejtezése" -#: templates/js/translated/build.js:460 +#: templates/js/translated/build.js:463 msgid "Delete build output" msgstr "Gyártási kimenet törlése" -#: templates/js/translated/build.js:480 +#: templates/js/translated/build.js:483 msgid "Are you sure you wish to deallocate the selected stock items from this build?" msgstr "Biztosan szeretnéd a már lefoglalt készlet tételeket felszabadítani ebből a gyártási utasításból?" -#: templates/js/translated/build.js:498 +#: templates/js/translated/build.js:501 msgid "Deallocate Stock Items" msgstr "Készlet tételek felszabadítása" -#: templates/js/translated/build.js:584 templates/js/translated/build.js:711 -#: templates/js/translated/build.js:836 +#: templates/js/translated/build.js:587 templates/js/translated/build.js:714 +#: templates/js/translated/build.js:839 msgid "Select Build Outputs" msgstr "Gyártási kimenetek kiválasztása" -#: templates/js/translated/build.js:585 templates/js/translated/build.js:712 -#: templates/js/translated/build.js:837 +#: templates/js/translated/build.js:588 templates/js/translated/build.js:715 +#: templates/js/translated/build.js:840 msgid "At least one build output must be selected" msgstr "Legalább egy gyártási kimenetet ki kell választani" -#: templates/js/translated/build.js:599 +#: templates/js/translated/build.js:602 msgid "Selected build outputs will be marked as complete" msgstr "A kiválasztott gyártási kimenetek késznek lesznek jelölve" -#: templates/js/translated/build.js:603 templates/js/translated/build.js:736 -#: templates/js/translated/build.js:859 +#: templates/js/translated/build.js:606 templates/js/translated/build.js:739 +#: templates/js/translated/build.js:862 msgid "Output" msgstr "Kimenet" -#: templates/js/translated/build.js:630 +#: templates/js/translated/build.js:633 msgid "Complete Build Outputs" msgstr "Gyártási kimenetek befejezése" -#: templates/js/translated/build.js:727 +#: templates/js/translated/build.js:730 msgid "Selected build outputs will be marked as scrapped" msgstr "A kiválasztott gyártási kimenetek selejtnek lesznek jelölve" -#: templates/js/translated/build.js:729 +#: templates/js/translated/build.js:732 msgid "Scrapped output are marked as rejected" msgstr "Selejtezett kimenetek elutasítottnak jelölve" -#: templates/js/translated/build.js:730 +#: templates/js/translated/build.js:733 msgid "Allocated stock items will no longer be available" msgstr "A lefoglalt készlet már nem lesz elérhető" -#: templates/js/translated/build.js:731 +#: templates/js/translated/build.js:734 msgid "The completion status of the build order will not be adjusted" msgstr "A befejezési státusza a gyártásnak nem fog változni" -#: templates/js/translated/build.js:761 +#: templates/js/translated/build.js:764 msgid "Scrap Build Outputs" msgstr "Gyártási kimenetek selejtezése" -#: templates/js/translated/build.js:851 +#: templates/js/translated/build.js:854 msgid "Selected build outputs will be deleted" msgstr "A kiválasztott gyártási kimenetek törölve lesznek" -#: templates/js/translated/build.js:853 +#: templates/js/translated/build.js:856 msgid "Build output data will be permanently deleted" msgstr "A gyártási kimenet adatai véglegesen törölve lesznek" -#: templates/js/translated/build.js:854 +#: templates/js/translated/build.js:857 msgid "Allocated stock items will be returned to stock" msgstr "A lefoglalt készlet tételek újra készletre kerülnek" -#: templates/js/translated/build.js:872 +#: templates/js/translated/build.js:875 msgid "Delete Build Outputs" msgstr "Gyártási kimenetek törlése" -#: templates/js/translated/build.js:959 +#: templates/js/translated/build.js:962 msgid "Delete allocations" -msgstr "" +msgstr "Hozzárendelések törlése" -#: templates/js/translated/build.js:966 +#: templates/js/translated/build.js:969 msgid "Delete Stock Allocations" -msgstr "" +msgstr "Hozzárendelt Készletek Törlése" -#: templates/js/translated/build.js:989 +#: templates/js/translated/build.js:992 msgid "No allocated stock" -msgstr "" +msgstr "Nincsen hozzárendelt készlet" -#: templates/js/translated/build.js:1045 +#: templates/js/translated/build.js:1048 msgid "Stock item" -msgstr "" +msgstr "Készlet tétel" -#: templates/js/translated/build.js:1070 +#: templates/js/translated/build.js:1073 msgid "Edit build allocation" -msgstr "" +msgstr "Gyártási készlet foglalások szerkesztése" -#: templates/js/translated/build.js:1071 +#: templates/js/translated/build.js:1074 msgid "Delete build allocation" -msgstr "" +msgstr "Gyártási készlet foglalások törlése" -#: templates/js/translated/build.js:1089 +#: templates/js/translated/build.js:1092 msgid "Edit Build Allocation" -msgstr "" +msgstr "Gyártási Készlet Foglalások Szerkesztése" -#: templates/js/translated/build.js:1102 +#: templates/js/translated/build.js:1105 msgid "Delete Build Allocation" -msgstr "" +msgstr "Gyártási Készlet Foglalások Törlése" -#: templates/js/translated/build.js:1133 +#: templates/js/translated/build.js:1136 msgid "No build order allocations found" msgstr "Nincs gyártási utasításhoz történő foglalás" -#: templates/js/translated/build.js:1178 +#: templates/js/translated/build.js:1181 msgid "Location not specified" msgstr "Hely nincs megadva" -#: templates/js/translated/build.js:1200 +#: templates/js/translated/build.js:1203 msgid "Complete outputs" msgstr "Kimenetek befejezése" -#: templates/js/translated/build.js:1218 +#: templates/js/translated/build.js:1221 msgid "Scrap outputs" msgstr "Kimenetek selejtezése" -#: templates/js/translated/build.js:1236 +#: templates/js/translated/build.js:1239 msgid "Delete outputs" msgstr "Kimenetek törlése" -#: templates/js/translated/build.js:1289 +#: templates/js/translated/build.js:1292 msgid "build output" msgstr "gyártás kimenet" -#: templates/js/translated/build.js:1290 +#: templates/js/translated/build.js:1293 msgid "build outputs" msgstr "gyártás kimenetek" -#: templates/js/translated/build.js:1294 +#: templates/js/translated/build.js:1297 msgid "Build output actions" msgstr "Gyártási kimenet műveletei" -#: templates/js/translated/build.js:1470 +#: templates/js/translated/build.js:1473 msgid "No active build outputs found" msgstr "Nem található aktív gyártási kimenet" -#: templates/js/translated/build.js:1563 +#: templates/js/translated/build.js:1566 msgid "Allocated Lines" msgstr "Lefoglalt sorok" -#: templates/js/translated/build.js:1577 +#: templates/js/translated/build.js:1580 msgid "Required Tests" msgstr "Szükséges tesztek" -#: templates/js/translated/build.js:1749 -#: templates/js/translated/purchase_order.js:611 -#: templates/js/translated/sales_order.js:1207 +#: templates/js/translated/build.js:1752 +#: templates/js/translated/purchase_order.js:594 +#: templates/js/translated/sales_order.js:1173 msgid "Select Parts" msgstr "Válassz alkatrészeket" -#: templates/js/translated/build.js:1750 -#: templates/js/translated/sales_order.js:1208 +#: templates/js/translated/build.js:1753 +#: templates/js/translated/sales_order.js:1174 msgid "You must select at least one part to allocate" msgstr "Legalább egy alkatrész választása szükséges a foglaláshoz" -#: templates/js/translated/build.js:1813 -#: templates/js/translated/sales_order.js:1157 +#: templates/js/translated/build.js:1816 +#: templates/js/translated/sales_order.js:1123 msgid "Specify stock allocation quantity" msgstr "Készlet foglalási mennyiség megadása" -#: templates/js/translated/build.js:1890 +#: templates/js/translated/build.js:1893 msgid "All Parts Allocated" msgstr "Minden alkatrész lefoglalva" -#: templates/js/translated/build.js:1891 +#: templates/js/translated/build.js:1894 msgid "All selected parts have been fully allocated" msgstr "Minden kiválasztott alkatrész teljesen lefoglalva" -#: templates/js/translated/build.js:1905 -#: templates/js/translated/sales_order.js:1222 +#: templates/js/translated/build.js:1908 +#: templates/js/translated/sales_order.js:1188 msgid "Select source location (leave blank to take from all locations)" msgstr "Válassz forrás helyet (vagy hagyd üresen ha bárhonnan)" -#: templates/js/translated/build.js:1933 +#: templates/js/translated/build.js:1936 msgid "Allocate Stock Items to Build Order" msgstr "Készlet foglalása a gyártási utasításhoz" -#: templates/js/translated/build.js:1944 -#: templates/js/translated/sales_order.js:1319 +#: templates/js/translated/build.js:1947 +#: templates/js/translated/sales_order.js:1285 msgid "No matching stock locations" msgstr "Nincs egyező készlethely" -#: templates/js/translated/build.js:2017 -#: templates/js/translated/sales_order.js:1398 +#: templates/js/translated/build.js:2020 +#: templates/js/translated/sales_order.js:1364 msgid "No matching stock items" msgstr "Nincs egyező készlet" -#: templates/js/translated/build.js:2114 +#: templates/js/translated/build.js:2117 msgid "Automatic Stock Allocation" msgstr "Automatikus készlet foglalás" -#: templates/js/translated/build.js:2115 +#: templates/js/translated/build.js:2118 msgid "Stock items will be automatically allocated to this build order, according to the provided guidelines" msgstr "A készlet automatikusan lefoglalásra kerül ehhez a gyártási utasításhoz, a következő feltételek szerint" -#: templates/js/translated/build.js:2117 +#: templates/js/translated/build.js:2120 msgid "If a location is specified, stock will only be allocated from that location" msgstr "Ha egy készlet hely meg van adva, akkor készlet csak arról a helyről lesz foglalva" -#: templates/js/translated/build.js:2118 +#: templates/js/translated/build.js:2121 msgid "If stock is considered interchangeable, it will be allocated from the first location it is found" msgstr "Ha a készlet helyettesíthetőnek minősül, akkor az első rendelkezésre álló helyről lesz lefoglalva" -#: templates/js/translated/build.js:2119 +#: templates/js/translated/build.js:2122 msgid "If substitute stock is allowed, it will be used where stock of the primary part cannot be found" msgstr "Ha a helyettesítő készlet engedélyezve van, akkor ott az lesz használva ha az elsődleges alkatrésznek nincs készlete" -#: templates/js/translated/build.js:2149 +#: templates/js/translated/build.js:2152 msgid "Allocate Stock Items" msgstr "Készlet tételek foglalása" -#: templates/js/translated/build.js:2254 +#: templates/js/translated/build.js:2257 msgid "No builds matching query" msgstr "Nincs a lekérdezéssel egyező gyártási utasítás" -#: templates/js/translated/build.js:2289 templates/js/translated/build.js:2652 +#: templates/js/translated/build.js:2292 templates/js/translated/build.js:2661 #: templates/js/translated/forms.js:2196 templates/js/translated/forms.js:2212 #: templates/js/translated/part.js:2322 templates/js/translated/part.js:2761 -#: templates/js/translated/stock.js:2068 templates/js/translated/stock.js:2795 +#: templates/js/translated/stock.js:2069 templates/js/translated/stock.js:2796 msgid "Select" msgstr "Kiválaszt" -#: templates/js/translated/build.js:2303 +#: templates/js/translated/build.js:2306 msgid "Build order is overdue" msgstr "Gyártás késésben van" -#: templates/js/translated/build.js:2385 templates/js/translated/stock.js:3126 +#: templates/js/translated/build.js:2388 templates/js/translated/stock.js:3127 msgid "No user information" msgstr "Nincs felhasználói információ" -#: templates/js/translated/build.js:2561 -#: templates/js/translated/sales_order.js:1682 +#: templates/js/translated/build.js:2568 +#: templates/js/translated/sales_order.js:1663 msgid "Edit stock allocation" msgstr "Készlet foglalások szerkesztése" -#: templates/js/translated/build.js:2562 -#: templates/js/translated/sales_order.js:1683 +#: templates/js/translated/build.js:2569 +#: templates/js/translated/sales_order.js:1664 msgid "Delete stock allocation" msgstr "Készlet foglalások törlése" -#: templates/js/translated/build.js:2577 +#: templates/js/translated/build.js:2584 msgid "Edit Allocation" msgstr "Foglalás szerkesztése" -#: templates/js/translated/build.js:2589 +#: templates/js/translated/build.js:2596 msgid "Remove Allocation" msgstr "Foglalás törlése" -#: templates/js/translated/build.js:2628 +#: templates/js/translated/build.js:2636 msgid "build line" msgstr "gyártás sor" -#: templates/js/translated/build.js:2629 +#: templates/js/translated/build.js:2637 msgid "build lines" msgstr "gyártás sorok" -#: templates/js/translated/build.js:2647 +#: templates/js/translated/build.js:2656 msgid "No build lines found" msgstr "Nincsenek gyártási sorok" -#: templates/js/translated/build.js:2677 templates/js/translated/part.js:793 +#: templates/js/translated/build.js:2686 templates/js/translated/part.js:793 #: templates/js/translated/part.js:1209 msgid "Trackable part" msgstr "Követésre kötelezett alkatrész" -#: templates/js/translated/build.js:2720 +#: templates/js/translated/build.js:2729 msgid "Gets Inherited" -msgstr "" +msgstr "Öröklődik" -#: templates/js/translated/build.js:2730 +#: templates/js/translated/build.js:2748 msgid "Unit Quantity" msgstr "Mennyiségi egység" -#: templates/js/translated/build.js:2782 -#: templates/js/translated/sales_order.js:1951 +#: templates/js/translated/build.js:2800 +#: templates/js/translated/sales_order.js:1932 msgid "Sufficient stock available" msgstr "Van elegendő" -#: templates/js/translated/build.js:2837 +#: templates/js/translated/build.js:2855 msgid "Consumable Item" msgstr "Fogyóeszköz tétel" -#: templates/js/translated/build.js:2844 +#: templates/js/translated/build.js:2862 msgid "Tracked item" msgstr "Követett tétel" -#: templates/js/translated/build.js:2845 +#: templates/js/translated/build.js:2863 msgid "Allocate tracked items against individual build outputs" msgstr "Egyedileg nyilvántartott tételek lefoglalása egyedi gyártási kimenetekhez" -#: templates/js/translated/build.js:2853 -#: templates/js/translated/sales_order.js:2052 +#: templates/js/translated/build.js:2871 +#: templates/js/translated/sales_order.js:2033 msgid "Build stock" msgstr "Gyártási készlet" -#: templates/js/translated/build.js:2858 templates/js/translated/stock.js:1953 +#: templates/js/translated/build.js:2876 templates/js/translated/stock.js:1954 msgid "Order stock" msgstr "Készlet rendelés" -#: templates/js/translated/build.js:2862 -#: templates/js/translated/sales_order.js:2046 +#: templates/js/translated/build.js:2880 +#: templates/js/translated/sales_order.js:2027 msgid "Allocate stock" msgstr "Lefoglalt készlet" -#: templates/js/translated/build.js:2866 +#: templates/js/translated/build.js:2884 msgid "Remove stock allocation" msgstr "Készlet foglalások törlése" @@ -12642,7 +13007,7 @@ msgid "Add Manufacturer" msgstr "Gyártó hozzáadása" #: templates/js/translated/company.js:111 -#: templates/js/translated/company.js:213 +#: templates/js/translated/company.js:214 msgid "Add Manufacturer Part" msgstr "Gyártói alkatrész hozzáadása" @@ -12650,231 +13015,231 @@ msgstr "Gyártói alkatrész hozzáadása" msgid "Edit Manufacturer Part" msgstr "Gyártói alkatrész szerkesztése" -#: templates/js/translated/company.js:201 +#: templates/js/translated/company.js:202 #: templates/js/translated/purchase_order.js:93 msgid "Add Supplier" msgstr "Beszállító hozzáadása" -#: templates/js/translated/company.js:243 -#: templates/js/translated/purchase_order.js:318 +#: templates/js/translated/company.js:244 +#: templates/js/translated/purchase_order.js:301 msgid "Add Supplier Part" msgstr "Beszállítói alkatrész hozzáadása" -#: templates/js/translated/company.js:344 +#: templates/js/translated/company.js:345 msgid "All selected supplier parts will be deleted" msgstr "Az összes kiválasztott beszállítói alkatrész törölve lesz" -#: templates/js/translated/company.js:360 +#: templates/js/translated/company.js:361 msgid "Delete Supplier Parts" msgstr "Beszállítói alkatrészek törlése" -#: templates/js/translated/company.js:466 +#: templates/js/translated/company.js:467 msgid "Add new Company" msgstr "Új cég hozzáadása" -#: templates/js/translated/company.js:546 +#: templates/js/translated/company.js:547 msgid "Parts Supplied" msgstr "Beszállított alkatrészek" -#: templates/js/translated/company.js:555 +#: templates/js/translated/company.js:556 msgid "Parts Manufactured" msgstr "Gyártott alkatrészek" -#: templates/js/translated/company.js:570 +#: templates/js/translated/company.js:571 msgid "No company information found" msgstr "Nem található céginformáció" -#: templates/js/translated/company.js:619 +#: templates/js/translated/company.js:620 msgid "Create New Contact" msgstr "Új névjegy létrehozása" -#: templates/js/translated/company.js:635 -#: templates/js/translated/company.js:758 +#: templates/js/translated/company.js:636 +#: templates/js/translated/company.js:759 msgid "Edit Contact" msgstr "Névjegy szerkesztése" -#: templates/js/translated/company.js:672 +#: templates/js/translated/company.js:673 msgid "All selected contacts will be deleted" msgstr "A kiválasztott névjegyek törlésre kerülnek" -#: templates/js/translated/company.js:678 -#: templates/js/translated/company.js:742 +#: templates/js/translated/company.js:679 +#: templates/js/translated/company.js:743 msgid "Role" msgstr "Szerepkör" -#: templates/js/translated/company.js:686 +#: templates/js/translated/company.js:687 msgid "Delete Contacts" msgstr "Névjegyek törlése" -#: templates/js/translated/company.js:717 +#: templates/js/translated/company.js:718 msgid "No contacts found" msgstr "Nem található névjegy" -#: templates/js/translated/company.js:730 +#: templates/js/translated/company.js:731 msgid "Phone Number" msgstr "Telefonszám" -#: templates/js/translated/company.js:736 +#: templates/js/translated/company.js:737 msgid "Email Address" msgstr "E-mail cím" -#: templates/js/translated/company.js:762 +#: templates/js/translated/company.js:763 msgid "Delete Contact" msgstr "Névjegy törlése" -#: templates/js/translated/company.js:859 +#: templates/js/translated/company.js:860 msgid "Create New Address" msgstr "Új cím létrehozása" -#: templates/js/translated/company.js:874 -#: templates/js/translated/company.js:1035 +#: templates/js/translated/company.js:875 +#: templates/js/translated/company.js:1036 msgid "Edit Address" msgstr "Cím szerkesztése" -#: templates/js/translated/company.js:909 +#: templates/js/translated/company.js:910 msgid "All selected addresses will be deleted" msgstr "Az összes kijelölt cím törlésre kerül" -#: templates/js/translated/company.js:923 +#: templates/js/translated/company.js:924 msgid "Delete Addresses" msgstr "Címek törlése" -#: templates/js/translated/company.js:950 +#: templates/js/translated/company.js:951 msgid "No addresses found" msgstr "Nincsenek címek" -#: templates/js/translated/company.js:989 +#: templates/js/translated/company.js:990 msgid "Postal city" msgstr "Város" -#: templates/js/translated/company.js:995 +#: templates/js/translated/company.js:996 msgid "State/province" msgstr "Állam/Megye" -#: templates/js/translated/company.js:1007 +#: templates/js/translated/company.js:1008 msgid "Courier notes" msgstr "Futár megjegyzések" -#: templates/js/translated/company.js:1013 +#: templates/js/translated/company.js:1014 msgid "Internal notes" msgstr "Belső megjegyzések" -#: templates/js/translated/company.js:1039 +#: templates/js/translated/company.js:1040 msgid "Delete Address" msgstr "Cím törlése" -#: templates/js/translated/company.js:1112 +#: templates/js/translated/company.js:1113 msgid "All selected manufacturer parts will be deleted" msgstr "Az összes kijelölt gyártói alkatrész törlésre kerül" -#: templates/js/translated/company.js:1127 +#: templates/js/translated/company.js:1128 msgid "Delete Manufacturer Parts" msgstr "Gyártói alkatrészek törlése" -#: templates/js/translated/company.js:1161 +#: templates/js/translated/company.js:1162 msgid "All selected parameters will be deleted" msgstr "Az összes kijelölt paraméter törlésre kerül" -#: templates/js/translated/company.js:1175 +#: templates/js/translated/company.js:1176 msgid "Delete Parameters" msgstr "Paraméterek törlése" -#: templates/js/translated/company.js:1191 -#: templates/js/translated/company.js:1479 templates/js/translated/part.js:2250 +#: templates/js/translated/company.js:1192 +#: templates/js/translated/company.js:1480 templates/js/translated/part.js:2250 msgid "Order parts" msgstr "Alkatrész rendelés" -#: templates/js/translated/company.js:1208 +#: templates/js/translated/company.js:1209 msgid "Delete manufacturer parts" msgstr "Gyártói alkatrészek törlése" -#: templates/js/translated/company.js:1240 +#: templates/js/translated/company.js:1241 msgid "Manufacturer part actions" msgstr "Gyártói alkatrész műveletek" -#: templates/js/translated/company.js:1259 +#: templates/js/translated/company.js:1260 msgid "No manufacturer parts found" msgstr "Nincs gyártói alkatrész" -#: templates/js/translated/company.js:1279 -#: templates/js/translated/company.js:1567 templates/js/translated/part.js:801 +#: templates/js/translated/company.js:1280 +#: templates/js/translated/company.js:1568 templates/js/translated/part.js:801 #: templates/js/translated/part.js:1217 msgid "Template part" msgstr "Sablon alkatrész" -#: templates/js/translated/company.js:1283 -#: templates/js/translated/company.js:1571 templates/js/translated/part.js:805 +#: templates/js/translated/company.js:1284 +#: templates/js/translated/company.js:1572 templates/js/translated/part.js:805 #: templates/js/translated/part.js:1221 msgid "Assembled part" msgstr "Gyártmány alkatrész" -#: templates/js/translated/company.js:1403 templates/js/translated/part.js:1471 +#: templates/js/translated/company.js:1404 templates/js/translated/part.js:1471 msgid "No parameters found" msgstr "Nem található paraméter" -#: templates/js/translated/company.js:1438 templates/js/translated/part.js:1534 +#: templates/js/translated/company.js:1439 templates/js/translated/part.js:1534 msgid "Edit parameter" msgstr "Paraméter szerkesztése" -#: templates/js/translated/company.js:1439 templates/js/translated/part.js:1535 +#: templates/js/translated/company.js:1440 templates/js/translated/part.js:1535 msgid "Delete parameter" msgstr "Paraméter törlése" -#: templates/js/translated/company.js:1456 templates/js/translated/part.js:1440 +#: templates/js/translated/company.js:1457 templates/js/translated/part.js:1440 msgid "Edit Parameter" msgstr "Paraméter szerkesztése" -#: templates/js/translated/company.js:1465 templates/js/translated/part.js:1556 +#: templates/js/translated/company.js:1466 templates/js/translated/part.js:1556 msgid "Delete Parameter" msgstr "Paraméter törlése" -#: templates/js/translated/company.js:1496 +#: templates/js/translated/company.js:1497 msgid "Delete supplier parts" msgstr "Beszállítói alkatrész törlése" -#: templates/js/translated/company.js:1546 +#: templates/js/translated/company.js:1547 msgid "No supplier parts found" msgstr "Nincs beszállítói alkatrész" -#: templates/js/translated/company.js:1664 +#: templates/js/translated/company.js:1665 msgid "Base Units" msgstr "Egység" -#: templates/js/translated/company.js:1694 +#: templates/js/translated/company.js:1695 msgid "Availability" msgstr "Elérhetőség" -#: templates/js/translated/company.js:1725 +#: templates/js/translated/company.js:1726 msgid "Edit supplier part" msgstr "Beszállítói alkatrész szerkesztése" -#: templates/js/translated/company.js:1726 +#: templates/js/translated/company.js:1727 msgid "Delete supplier part" msgstr "Beszállítói alkatrész törlése" -#: templates/js/translated/company.js:1779 +#: templates/js/translated/company.js:1780 #: templates/js/translated/pricing.js:694 msgid "Delete Price Break" msgstr "Ársáv törlése" -#: templates/js/translated/company.js:1789 +#: templates/js/translated/company.js:1790 #: templates/js/translated/pricing.js:712 msgid "Edit Price Break" msgstr "Ársáv szerkesztése" -#: templates/js/translated/company.js:1804 +#: templates/js/translated/company.js:1805 msgid "No price break information found" msgstr "Nincs ársáv információ" -#: templates/js/translated/company.js:1833 +#: templates/js/translated/company.js:1834 msgid "Last updated" msgstr "Utoljára módosítva" -#: templates/js/translated/company.js:1840 +#: templates/js/translated/company.js:1841 msgid "Edit price break" msgstr "Ársáv szerkesztése" -#: templates/js/translated/company.js:1841 +#: templates/js/translated/company.js:1842 msgid "Delete price break" msgstr "Ársáv törlése" @@ -12978,19 +13343,19 @@ msgstr "Mező név" msgid "Select Columns" msgstr "Oszlopok kiválasztása" -#: templates/js/translated/helpers.js:80 +#: templates/js/translated/helpers.js:81 msgid "YES" msgstr "IGEN" -#: templates/js/translated/helpers.js:83 +#: templates/js/translated/helpers.js:84 msgid "NO" msgstr "NEM" -#: templates/js/translated/helpers.js:96 +#: templates/js/translated/helpers.js:97 msgid "True" msgstr "Igaz" -#: templates/js/translated/helpers.js:97 +#: templates/js/translated/helpers.js:98 msgid "False" msgstr "Hamis" @@ -13105,11 +13470,11 @@ msgstr "Az értesítések itt fognak megjelenni" #: templates/js/translated/order.js:48 msgid "Hold Order" -msgstr "" +msgstr "Rendelés felfüggesztése" #: templates/js/translated/order.js:53 msgid "Are you sure you wish to place this order on hold?" -msgstr "" +msgstr "Biztosan felfüggeszti ennek a rendelésnek a kivitelezését?" #: templates/js/translated/order.js:114 msgid "Add Extra Line Item" @@ -13132,7 +13497,7 @@ msgid "Delete Line" msgstr "Sor törlése" #: templates/js/translated/order.js:306 -#: templates/js/translated/purchase_order.js:2060 +#: templates/js/translated/purchase_order.js:2044 msgid "No line items found" msgstr "Nem találhatók sortételek" @@ -13367,19 +13732,19 @@ msgid "Delete Part Parameter Template" msgstr "Alkatrész paraméter sablon törlése" #: templates/js/translated/part.js:1723 -#: templates/js/translated/purchase_order.js:1724 +#: templates/js/translated/purchase_order.js:1708 msgid "No purchase orders found" msgstr "Nem található beszerzési rendelés" #: templates/js/translated/part.js:1867 -#: templates/js/translated/purchase_order.js:2223 +#: templates/js/translated/purchase_order.js:2207 #: templates/js/translated/return_order.js:754 -#: templates/js/translated/sales_order.js:1911 +#: templates/js/translated/sales_order.js:1892 msgid "This line item is overdue" msgstr "Ez a sortétel késésben van" #: templates/js/translated/part.js:1913 -#: templates/js/translated/purchase_order.js:2290 +#: templates/js/translated/purchase_order.js:2274 msgid "Receive line item" msgstr "Sortétel bevételezése" @@ -13420,7 +13785,7 @@ msgid "No category" msgstr "Nincs kategória" #: templates/js/translated/part.js:2550 templates/js/translated/part.js:2680 -#: templates/js/translated/stock.js:2754 +#: templates/js/translated/stock.js:2755 msgid "Display as list" msgstr "Megjelenítés listaként" @@ -13432,7 +13797,7 @@ msgstr "Megjelenítés rácsnézetként" msgid "No subcategories found" msgstr "Nem találhatóak alkategóriák" -#: templates/js/translated/part.js:2700 templates/js/translated/stock.js:2774 +#: templates/js/translated/part.js:2700 templates/js/translated/stock.js:2775 msgid "Display as tree" msgstr "Megjelenítés fában" @@ -13454,11 +13819,11 @@ msgstr "találat" #: templates/js/translated/part.js:2955 msgid "Edit test template" -msgstr "" +msgstr "Teszt sablon szerkesztése" #: templates/js/translated/part.js:2956 msgid "Delete test template" -msgstr "" +msgstr "Teszt sablon törlése" #: templates/js/translated/part.js:2960 msgid "This test is defined for a parent part" @@ -13484,23 +13849,23 @@ msgstr "A megadott dátum a múltban van" msgid "Speculative" msgstr "Spekulatív" -#: templates/js/translated/part.js:3128 +#: templates/js/translated/part.js:3144 msgid "No scheduling information available for this part" msgstr "Az alkatrészhez nem áll rendelkezésre ütemezési információ" -#: templates/js/translated/part.js:3134 +#: templates/js/translated/part.js:3150 msgid "Error fetching scheduling information for this part" msgstr "Hiba az alkatrész ütemezési információinak betöltésekor" -#: templates/js/translated/part.js:3230 +#: templates/js/translated/part.js:3246 msgid "Scheduled Stock Quantities" msgstr "Ütemezett készlet mennyiség" -#: templates/js/translated/part.js:3246 +#: templates/js/translated/part.js:3262 msgid "Maximum Quantity" msgstr "Maximum mennyiség" -#: templates/js/translated/part.js:3291 +#: templates/js/translated/part.js:3307 msgid "Minimum Stock Level" msgstr "Minimális készlet" @@ -13576,274 +13941,250 @@ msgstr "Nincsenek beszerzési ár előzmények" msgid "Purchase Price History" msgstr "Beszerzési ár előzmények" -#: templates/js/translated/pricing.js:894 +#: templates/js/translated/pricing.js:892 msgid "No sales history data available" msgstr "Nincsenek eladási ár előzmények" -#: templates/js/translated/pricing.js:916 +#: templates/js/translated/pricing.js:914 msgid "Sale Price History" msgstr "Eladási ár előzmények" -#: templates/js/translated/pricing.js:1005 +#: templates/js/translated/pricing.js:1003 msgid "No variant data available" msgstr "Nincs alkatrészváltozat infomáció" -#: templates/js/translated/pricing.js:1045 +#: templates/js/translated/pricing.js:1043 msgid "Variant Part" msgstr "Alkatrészváltozat" -#: templates/js/translated/purchase_order.js:169 -msgid "Select purchase order to duplicate" -msgstr "Válaszd ki a lemásolandó beszerzési rendelést" - -#: templates/js/translated/purchase_order.js:176 -msgid "Duplicate Line Items" -msgstr "Sortételek másolása" - -#: templates/js/translated/purchase_order.js:177 -msgid "Duplicate all line items from the selected order" -msgstr "Összes sortétel másolása a kiválasztott rendelésből" - -#: templates/js/translated/purchase_order.js:184 -msgid "Duplicate Extra Lines" -msgstr "Egyéb tételek másolása" - -#: templates/js/translated/purchase_order.js:185 -msgid "Duplicate extra line items from the selected order" -msgstr "Összes egyéb tétel másolása a kiválasztott rendelésből" - -#: templates/js/translated/purchase_order.js:206 +#: templates/js/translated/purchase_order.js:188 msgid "Edit Purchase Order" msgstr "Beszerzési rendelés szerkesztése" -#: templates/js/translated/purchase_order.js:223 +#: templates/js/translated/purchase_order.js:205 msgid "Duplication Options" msgstr "Másolási opciók" -#: templates/js/translated/purchase_order.js:431 +#: templates/js/translated/purchase_order.js:414 msgid "Complete Purchase Order" msgstr "Beszerzési rendelés befejezése" -#: templates/js/translated/purchase_order.js:448 +#: templates/js/translated/purchase_order.js:431 #: templates/js/translated/return_order.js:210 -#: templates/js/translated/sales_order.js:552 +#: templates/js/translated/sales_order.js:511 msgid "Mark this order as complete?" msgstr "Rendelés befejezettnek jelölése?" -#: templates/js/translated/purchase_order.js:454 +#: templates/js/translated/purchase_order.js:437 msgid "All line items have been received" msgstr "Minden sortétel megérkezett" -#: templates/js/translated/purchase_order.js:459 +#: templates/js/translated/purchase_order.js:442 msgid "This order has line items which have not been marked as received." msgstr "Ez a rendelés olyan sortételeket tartalmaz amik még nem érkeztek be." -#: templates/js/translated/purchase_order.js:460 +#: templates/js/translated/purchase_order.js:443 msgid "Completing this order means that the order and line items will no longer be editable." msgstr "A rendelés befejezettnek jelölésével annak adatai és sortételei a továbbiakban már nem lesznek szerkeszthetők." -#: templates/js/translated/purchase_order.js:483 +#: templates/js/translated/purchase_order.js:466 msgid "Cancel Purchase Order" msgstr "Beszerzési rendelés törlése" -#: templates/js/translated/purchase_order.js:488 +#: templates/js/translated/purchase_order.js:471 msgid "Are you sure you wish to cancel this purchase order?" msgstr "Biztosan törölni szeretnéd ezt a beszerzési rendelést?" -#: templates/js/translated/purchase_order.js:494 +#: templates/js/translated/purchase_order.js:477 msgid "This purchase order can not be cancelled" msgstr "Ezt a beszerzési rendelést nem lehet törölni" -#: templates/js/translated/purchase_order.js:515 +#: templates/js/translated/purchase_order.js:498 #: templates/js/translated/return_order.js:164 msgid "After placing this order, line items will no longer be editable." msgstr "A kiküldés után a sortételek már nem lesznek szerkeszthetők." -#: templates/js/translated/purchase_order.js:520 +#: templates/js/translated/purchase_order.js:503 msgid "Issue Purchase Order" msgstr "Beszerzési rendelés kiküldése" -#: templates/js/translated/purchase_order.js:612 +#: templates/js/translated/purchase_order.js:595 msgid "At least one purchaseable part must be selected" msgstr "Legalább egy beszerezhető alkatrészt ki kell választani" -#: templates/js/translated/purchase_order.js:637 +#: templates/js/translated/purchase_order.js:620 msgid "Quantity to order" msgstr "Rendelendő mennyiség" -#: templates/js/translated/purchase_order.js:646 +#: templates/js/translated/purchase_order.js:629 msgid "New supplier part" msgstr "Új beszállítói alkatrész" -#: templates/js/translated/purchase_order.js:664 +#: templates/js/translated/purchase_order.js:647 msgid "New purchase order" msgstr "Új beszerzési rendelés" -#: templates/js/translated/purchase_order.js:705 +#: templates/js/translated/purchase_order.js:688 msgid "Add to purchase order" msgstr "Hozzáadás beszerzési rendeléshez" -#: templates/js/translated/purchase_order.js:755 +#: templates/js/translated/purchase_order.js:738 msgid "Merge" msgstr "Összevonás" -#: templates/js/translated/purchase_order.js:859 +#: templates/js/translated/purchase_order.js:842 msgid "No matching supplier parts" msgstr "Nincsenek egyező beszállítói alkatrészek" -#: templates/js/translated/purchase_order.js:878 +#: templates/js/translated/purchase_order.js:861 msgid "No matching purchase orders" msgstr "Nincsenek egyező beszerzési rendelések" -#: templates/js/translated/purchase_order.js:1073 +#: templates/js/translated/purchase_order.js:1056 #: templates/js/translated/return_order.js:490 msgid "Select Line Items" msgstr "Sortételek kiválasztása" -#: templates/js/translated/purchase_order.js:1074 +#: templates/js/translated/purchase_order.js:1057 #: templates/js/translated/return_order.js:491 msgid "At least one line item must be selected" msgstr "Legalább egy sortételt ki kell választani" -#: templates/js/translated/purchase_order.js:1104 +#: templates/js/translated/purchase_order.js:1087 msgid "Received Quantity" msgstr "Beérkezett mennyiség" -#: templates/js/translated/purchase_order.js:1115 +#: templates/js/translated/purchase_order.js:1098 msgid "Quantity to receive" msgstr "Érkező mennyiség" -#: templates/js/translated/purchase_order.js:1170 +#: templates/js/translated/purchase_order.js:1153 #: templates/js/translated/stock.js:1215 msgid "Specify packaging for incoming stock items" -msgstr "" +msgstr "Bejövő készlet tételek csomagolásának meghatározása" -#: templates/js/translated/purchase_order.js:1223 +#: templates/js/translated/purchase_order.js:1206 msgid "Stock Status" msgstr "Készlet állapota" -#: templates/js/translated/purchase_order.js:1237 +#: templates/js/translated/purchase_order.js:1220 msgid "Add barcode" msgstr "Vonalkód hozzáadása" -#: templates/js/translated/purchase_order.js:1238 +#: templates/js/translated/purchase_order.js:1221 msgid "Remove barcode" msgstr "Vonalkód eltávolítása" -#: templates/js/translated/purchase_order.js:1241 +#: templates/js/translated/purchase_order.js:1224 msgid "Specify location" msgstr "Add meg a helyet" -#: templates/js/translated/purchase_order.js:1249 +#: templates/js/translated/purchase_order.js:1232 msgid "Add batch code" msgstr "Batch kód hozzáadása" -#: templates/js/translated/purchase_order.js:1259 +#: templates/js/translated/purchase_order.js:1242 msgid "Specify packaging" -msgstr "" +msgstr "Csomagolás meghatározása" -#: templates/js/translated/purchase_order.js:1270 +#: templates/js/translated/purchase_order.js:1253 msgid "Add serial numbers" msgstr "Sorozatszám hozzáadása" -#: templates/js/translated/purchase_order.js:1281 +#: templates/js/translated/purchase_order.js:1264 msgid "Add note" -msgstr "" +msgstr "Jegyzet hozzáfűzése" -#: templates/js/translated/purchase_order.js:1338 +#: templates/js/translated/purchase_order.js:1321 msgid "Serials" msgstr "Sorozatszámok" -#: templates/js/translated/purchase_order.js:1368 +#: templates/js/translated/purchase_order.js:1351 msgid "Order Code" msgstr "Rendelési kód" -#: templates/js/translated/purchase_order.js:1370 +#: templates/js/translated/purchase_order.js:1353 msgid "Quantity to Receive" msgstr "Érkező mennyiség" -#: templates/js/translated/purchase_order.js:1395 +#: templates/js/translated/purchase_order.js:1379 #: templates/js/translated/return_order.js:559 msgid "Confirm receipt of items" msgstr "Bevételezés megerősítése" -#: templates/js/translated/purchase_order.js:1396 +#: templates/js/translated/purchase_order.js:1380 msgid "Receive Purchase Order Items" msgstr "Beszerzési rendelés tételeinek bevételezése" -#: templates/js/translated/purchase_order.js:1464 +#: templates/js/translated/purchase_order.js:1448 msgid "Scan Item Barcode" msgstr "Tétel vonalkód beolvasása" -#: templates/js/translated/purchase_order.js:1465 +#: templates/js/translated/purchase_order.js:1449 msgid "Scan barcode on incoming item (must not match any existing stock items)" msgstr "Beérkezett tétel vonalkódjának leolvasása (egyik meglévő készlet tétellel sem egyezhet)" -#: templates/js/translated/purchase_order.js:1479 +#: templates/js/translated/purchase_order.js:1463 msgid "Invalid barcode data" msgstr "Érvénytelen vonalkód adat" -#: templates/js/translated/purchase_order.js:1751 +#: templates/js/translated/purchase_order.js:1735 #: templates/js/translated/return_order.js:285 -#: templates/js/translated/sales_order.js:810 -#: templates/js/translated/sales_order.js:1034 +#: templates/js/translated/sales_order.js:769 +#: templates/js/translated/sales_order.js:1007 msgid "Order is overdue" msgstr "Rendelés késésben" -#: templates/js/translated/purchase_order.js:1913 +#: templates/js/translated/purchase_order.js:1897 msgid "All selected Line items will be deleted" msgstr "Az összes kijelölt sortétel törlésre kerül" -#: templates/js/translated/purchase_order.js:1931 +#: templates/js/translated/purchase_order.js:1915 msgid "Delete selected Line items?" msgstr "Töröljük a kiválasztott sortételeket?" -#: templates/js/translated/purchase_order.js:1986 -#: templates/js/translated/sales_order.js:2106 +#: templates/js/translated/purchase_order.js:1970 +#: templates/js/translated/sales_order.js:2087 msgid "Duplicate Line Item" msgstr "Sortétel másolása" -#: templates/js/translated/purchase_order.js:2001 +#: templates/js/translated/purchase_order.js:1985 #: templates/js/translated/return_order.js:475 #: templates/js/translated/return_order.js:667 -#: templates/js/translated/sales_order.js:2119 +#: templates/js/translated/sales_order.js:2100 msgid "Edit Line Item" msgstr "Sortétel szerkesztése" -#: templates/js/translated/purchase_order.js:2012 +#: templates/js/translated/purchase_order.js:1996 #: templates/js/translated/return_order.js:680 -#: templates/js/translated/sales_order.js:2130 +#: templates/js/translated/sales_order.js:2111 msgid "Delete Line Item" msgstr "Sortétel törlése" -#: templates/js/translated/purchase_order.js:2294 -#: templates/js/translated/sales_order.js:2060 +#: templates/js/translated/purchase_order.js:2278 +#: templates/js/translated/sales_order.js:2041 msgid "Duplicate line item" msgstr "Sortétel másolása" -#: templates/js/translated/purchase_order.js:2295 +#: templates/js/translated/purchase_order.js:2279 #: templates/js/translated/return_order.js:799 -#: templates/js/translated/sales_order.js:2061 +#: templates/js/translated/sales_order.js:2042 msgid "Edit line item" msgstr "Sortétel szerkesztése" -#: templates/js/translated/purchase_order.js:2296 +#: templates/js/translated/purchase_order.js:2280 #: templates/js/translated/return_order.js:803 -#: templates/js/translated/sales_order.js:2067 +#: templates/js/translated/sales_order.js:2048 msgid "Delete line item" msgstr "Sortétel törlése" -#: templates/js/translated/report.js:49 -msgid "Print Report" -msgstr "" - #: templates/js/translated/report.js:68 msgid "Report print successful" -msgstr "" +msgstr "Jelentés nyomtatása sikeres" #: templates/js/translated/report.js:73 msgid "Report printing failed" -msgstr "" +msgstr "Jelentés nyomtatása sikertelen" #: templates/js/translated/return_order.js:60 #: templates/js/translated/sales_order.js:86 @@ -13879,7 +14220,7 @@ msgid "No return orders found" msgstr "Nem található visszavétel" #: templates/js/translated/return_order.js:299 -#: templates/js/translated/sales_order.js:824 +#: templates/js/translated/sales_order.js:783 msgid "Invalid Customer" msgstr "Érvénytelen vevő" @@ -13888,7 +14229,7 @@ msgid "Receive Return Order Items" msgstr "Visszavétel tételeinek bevételezése" #: templates/js/translated/return_order.js:691 -#: templates/js/translated/sales_order.js:2267 +#: templates/js/translated/sales_order.js:2248 msgid "No matching line items" msgstr "Nincs egyező sortétel" @@ -13904,188 +14245,181 @@ msgstr "Vevői rendelés létrehozása" msgid "Edit Sales Order" msgstr "Vevői rendelés szerkesztése" -#: templates/js/translated/sales_order.js:291 +#: templates/js/translated/sales_order.js:288 msgid "No stock items have been allocated to this shipment" msgstr "Ehhez a szállítmányhoz nincs készlet hozzárendelve" -#: templates/js/translated/sales_order.js:296 -msgid "The following stock items will be shipped" -msgstr "A következő készlet tételek ki lesznek szállítva" - -#: templates/js/translated/sales_order.js:336 +#: templates/js/translated/sales_order.js:294 msgid "Complete Shipment" msgstr "Függő szállítmányok kiszállítása" -#: templates/js/translated/sales_order.js:360 +#: templates/js/translated/sales_order.js:318 msgid "Confirm Shipment" msgstr "Szállítmány megerősítése" -#: templates/js/translated/sales_order.js:416 +#: templates/js/translated/sales_order.js:375 msgid "No pending shipments found" msgstr "Nincs függő szállítmány" -#: templates/js/translated/sales_order.js:420 +#: templates/js/translated/sales_order.js:379 msgid "No stock items have been allocated to pending shipments" msgstr "A függő a szállítmányokhoz nincs készlet hozzárendelve" -#: templates/js/translated/sales_order.js:430 +#: templates/js/translated/sales_order.js:389 msgid "Complete Shipments" msgstr "Függő szállítmányok kiszállítása" -#: templates/js/translated/sales_order.js:452 +#: templates/js/translated/sales_order.js:411 msgid "Skip" msgstr "Kihagyás" -#: templates/js/translated/sales_order.js:484 +#: templates/js/translated/sales_order.js:443 msgid "Ship Sales Order" -msgstr "" +msgstr "Vevői rendelés kiszállítása" -#: templates/js/translated/sales_order.js:500 +#: templates/js/translated/sales_order.js:459 msgid "Ship this order?" -msgstr "" +msgstr "Biztosan kiszállította a rendelést?" -#: templates/js/translated/sales_order.js:506 +#: templates/js/translated/sales_order.js:465 msgid "Order cannot be shipped as there are incomplete shipments" -msgstr "" +msgstr "A rendelés nem kiszállítható mert vannak még hiányos szállítások" -#: templates/js/translated/sales_order.js:513 +#: templates/js/translated/sales_order.js:472 msgid "This order has line items which have not been completed." msgstr "Ez a rendelés olyan sortételeket tartalmaz amik még nem teljesítettek." -#: templates/js/translated/sales_order.js:514 +#: templates/js/translated/sales_order.js:473 msgid "Shipping this order means that the order and line items will no longer be editable." -msgstr "" +msgstr "A rendelés szállítása után a rendelés tételei nem lesznek szerkeszthetők." -#: templates/js/translated/sales_order.js:572 +#: templates/js/translated/sales_order.js:531 msgid "Issue this Sales Order?" msgstr "Vissza lett igazolva ez a vevői rendelés?" -#: templates/js/translated/sales_order.js:577 +#: templates/js/translated/sales_order.js:536 msgid "Issue Sales Order" msgstr "Vevői rendelés visszaigazolása" -#: templates/js/translated/sales_order.js:596 +#: templates/js/translated/sales_order.js:555 msgid "Cancel Sales Order" msgstr "Vevő rendelés törlése" -#: templates/js/translated/sales_order.js:601 +#: templates/js/translated/sales_order.js:560 msgid "Cancelling this order means that the order will no longer be editable." msgstr "A rendelés törlésével annak adatai a továbbiakban már nem lesznek szerkeszthetők." -#: templates/js/translated/sales_order.js:655 +#: templates/js/translated/sales_order.js:614 msgid "Create New Shipment" msgstr "Szállítmány létrehozása" -#: templates/js/translated/sales_order.js:764 +#: templates/js/translated/sales_order.js:723 msgid "No sales orders found" msgstr "Nem található vevői rendelés" -#: templates/js/translated/sales_order.js:944 +#: templates/js/translated/sales_order.js:907 msgid "Edit shipment" msgstr "Szállítmány szerkesztése" -#: templates/js/translated/sales_order.js:947 +#: templates/js/translated/sales_order.js:910 msgid "Complete shipment" msgstr "Szállítmány kiszállítása" -#: templates/js/translated/sales_order.js:952 +#: templates/js/translated/sales_order.js:915 msgid "Delete shipment" msgstr "Szállítmány törlése" -#: templates/js/translated/sales_order.js:969 +#: templates/js/translated/sales_order.js:932 msgid "Edit Shipment" msgstr "Szállítmány szerkesztése" -#: templates/js/translated/sales_order.js:984 +#: templates/js/translated/sales_order.js:947 msgid "Delete Shipment" msgstr "Szállítmány törlése" -#: templates/js/translated/sales_order.js:1017 +#: templates/js/translated/sales_order.js:989 msgid "No matching shipments found" msgstr "Nincs egyező szállímány" -#: templates/js/translated/sales_order.js:1042 +#: templates/js/translated/sales_order.js:1015 msgid "Shipment Reference" msgstr "Szállítmány azonosító" -#: templates/js/translated/sales_order.js:1066 -#: templates/js/translated/sales_order.js:1565 +#: templates/js/translated/sales_order.js:1032 +#: templates/js/translated/sales_order.js:1531 msgid "Not shipped" msgstr "Nincs kiszállítva" -#: templates/js/translated/sales_order.js:1084 +#: templates/js/translated/sales_order.js:1050 msgid "Tracking" msgstr "Nyomkövetés" -#: templates/js/translated/sales_order.js:1088 +#: templates/js/translated/sales_order.js:1054 msgid "Invoice" msgstr "Számla" -#: templates/js/translated/sales_order.js:1255 +#: templates/js/translated/sales_order.js:1221 msgid "Add Shipment" msgstr "Szállítmány hozzáadása" -#: templates/js/translated/sales_order.js:1306 +#: templates/js/translated/sales_order.js:1272 msgid "Confirm stock allocation" msgstr "Készlet foglalás megerősítése" -#: templates/js/translated/sales_order.js:1307 +#: templates/js/translated/sales_order.js:1273 msgid "Allocate Stock Items to Sales Order" msgstr "Készlet foglalása a vevői rendeléshez" -#: templates/js/translated/sales_order.js:1513 +#: templates/js/translated/sales_order.js:1479 msgid "No sales order allocations found" msgstr "Nincs vevői rendeléshez történő foglalás" -#: templates/js/translated/sales_order.js:1605 +#: templates/js/translated/sales_order.js:1571 msgid "Edit Stock Allocation" msgstr "Készlet foglalások szerkesztése" -#: templates/js/translated/sales_order.js:1619 +#: templates/js/translated/sales_order.js:1585 msgid "Confirm Delete Operation" msgstr "Törlési művelet megerősítése" -#: templates/js/translated/sales_order.js:1620 +#: templates/js/translated/sales_order.js:1586 msgid "Delete Stock Allocation" msgstr "Készlet foglalások törlése" -#: templates/js/translated/sales_order.js:1659 -#: templates/js/translated/sales_order.js:1746 +#: templates/js/translated/sales_order.js:1640 +#: templates/js/translated/sales_order.js:1727 #: templates/js/translated/stock.js:1861 msgid "Shipped to customer" msgstr "Vevőnek kiszállítva" -#: templates/js/translated/sales_order.js:1667 -#: templates/js/translated/sales_order.js:1755 +#: templates/js/translated/sales_order.js:1648 +#: templates/js/translated/sales_order.js:1736 msgid "Stock location not specified" msgstr "Készlethely nincs megadva" -#: templates/js/translated/sales_order.js:2044 -msgid "Allocate serial numbers" -msgstr "Sorozatszámok kiosztása" - -#: templates/js/translated/sales_order.js:2048 -msgid "Purchase stock" -msgstr "Készletrendelés" - -#: templates/js/translated/sales_order.js:2057 -#: templates/js/translated/sales_order.js:2245 -msgid "Calculate price" -msgstr "Árszámítás" - -#: templates/js/translated/sales_order.js:2071 -msgid "Cannot be deleted as items have been shipped" -msgstr "Nem törölhető mivel a tételek ki lettek szállítva" - -#: templates/js/translated/sales_order.js:2074 -msgid "Cannot be deleted as items have been allocated" -msgstr "Nem törölhető mivel tételek vannak lefoglalva" - -#: templates/js/translated/sales_order.js:2145 +#: templates/js/translated/sales_order.js:2025 +#: templates/js/translated/sales_order.js:2126 msgid "Allocate Serial Numbers" msgstr "Sorozatszámok kiosztása" -#: templates/js/translated/sales_order.js:2253 +#: templates/js/translated/sales_order.js:2029 +msgid "Purchase stock" +msgstr "Készletrendelés" + +#: templates/js/translated/sales_order.js:2038 +#: templates/js/translated/sales_order.js:2226 +msgid "Calculate price" +msgstr "Árszámítás" + +#: templates/js/translated/sales_order.js:2052 +msgid "Cannot be deleted as items have been shipped" +msgstr "Nem törölhető mivel a tételek ki lettek szállítva" + +#: templates/js/translated/sales_order.js:2055 +msgid "Cannot be deleted as items have been allocated" +msgstr "Nem törölhető mivel tételek vannak lefoglalva" + +#: templates/js/translated/sales_order.js:2234 msgid "Update Unit Price" msgstr "Egységár módosítása" @@ -14210,13 +14544,10 @@ msgid "Find Serial Number" msgstr "Sorozatszám keresése" #: templates/js/translated/stock.js:603 templates/js/translated/stock.js:604 +#: templates/js/translated/stock.js:620 msgid "Enter serial number" msgstr "Sorozatszám megadása" -#: templates/js/translated/stock.js:620 -msgid "Enter a serial number" -msgstr "Adj meg egy sorozatszámot" - #: templates/js/translated/stock.js:640 msgid "No matching serial number" msgstr "Nincs egyező sorozatszám" @@ -14285,7 +14616,7 @@ msgstr "Kivesz" msgid "Add Stock" msgstr "Készlet növelése" -#: templates/js/translated/stock.js:1049 users/models.py:396 +#: templates/js/translated/stock.js:1049 users/models.py:398 msgid "Add" msgstr "Hozzáad" @@ -14303,13 +14634,13 @@ msgstr "Készlet mennyiség megadása" #: templates/js/translated/stock.js:1168 msgid "Adjust batch code" -msgstr "" +msgstr "Köteg kód módosítása" #: templates/js/translated/stock.js:1178 msgid "Adjust packaging" -msgstr "" +msgstr "Csomagolás módosítása" -#: templates/js/translated/stock.js:1256 templates/js/translated/stock.js:3382 +#: templates/js/translated/stock.js:1256 templates/js/translated/stock.js:3383 msgid "Select Stock Items" msgstr "Készlet tételek kiválasztása" @@ -14321,18 +14652,6 @@ msgstr "Válassz legalább egy rendelkezésre álló készlet tételt" msgid "Confirm stock adjustment" msgstr "Készlet módosítás jóváhagyása" -#: templates/js/translated/stock.js:1448 -msgid "PASS" -msgstr "SIKER" - -#: templates/js/translated/stock.js:1450 -msgid "FAIL" -msgstr "SIKERTELEN" - -#: templates/js/translated/stock.js:1455 -msgid "NO RESULT" -msgstr "NINCS EREDMÉNY" - #: templates/js/translated/stock.js:1535 msgid "Pass test" msgstr "Teszt sikeres" @@ -14389,218 +14708,218 @@ msgstr "Vevő rendeléshez hozzárendelve" msgid "No stock location set" msgstr "Nincs hely megadva" -#: templates/js/translated/stock.js:1927 +#: templates/js/translated/stock.js:1928 msgid "Change stock status" msgstr "Készlet állapot módosítása" -#: templates/js/translated/stock.js:1936 +#: templates/js/translated/stock.js:1937 msgid "Merge stock" msgstr "Készlet összevonása" -#: templates/js/translated/stock.js:1985 +#: templates/js/translated/stock.js:1986 msgid "Delete stock" msgstr "Készlet törlése" -#: templates/js/translated/stock.js:2038 +#: templates/js/translated/stock.js:2039 msgid "stock items" msgstr "készlet tételek" -#: templates/js/translated/stock.js:2043 +#: templates/js/translated/stock.js:2044 msgid "Scan to location" msgstr "Beolvasás helyre" -#: templates/js/translated/stock.js:2054 +#: templates/js/translated/stock.js:2055 msgid "Stock Actions" msgstr "Készlet műveletek" -#: templates/js/translated/stock.js:2098 +#: templates/js/translated/stock.js:2099 msgid "Load installed items" msgstr "Beépített tételek betöltése" -#: templates/js/translated/stock.js:2176 +#: templates/js/translated/stock.js:2177 msgid "Stock item is in production" msgstr "Készlet tétel gyártás alatt" -#: templates/js/translated/stock.js:2181 +#: templates/js/translated/stock.js:2182 msgid "Stock item assigned to sales order" msgstr "Készlet tétel hozzárendelve egy vevői rendeléshez" -#: templates/js/translated/stock.js:2184 +#: templates/js/translated/stock.js:2185 msgid "Stock item assigned to customer" msgstr "Készlet tétel hozzárendelve egy vevőhöz" -#: templates/js/translated/stock.js:2187 +#: templates/js/translated/stock.js:2188 msgid "Serialized stock item has been allocated" msgstr "Egyedi követésre kötelezett készlet tétel lefoglalva" -#: templates/js/translated/stock.js:2189 +#: templates/js/translated/stock.js:2190 msgid "Stock item has been fully allocated" msgstr "Készlet tétel teljes egészében lefoglalva" -#: templates/js/translated/stock.js:2191 +#: templates/js/translated/stock.js:2192 msgid "Stock item has been partially allocated" msgstr "Készlet tétel részben lefoglalva" -#: templates/js/translated/stock.js:2194 +#: templates/js/translated/stock.js:2195 msgid "Stock item has been installed in another item" msgstr "Készlet tétel beépítve egy másikba" -#: templates/js/translated/stock.js:2196 +#: templates/js/translated/stock.js:2197 msgid "Stock item has been consumed by a build order" msgstr "Készlet tétel fel lett használva egy gyártásban" -#: templates/js/translated/stock.js:2200 +#: templates/js/translated/stock.js:2201 msgid "Stock item has expired" msgstr "Készlet tétel lejárt" -#: templates/js/translated/stock.js:2202 +#: templates/js/translated/stock.js:2203 msgid "Stock item will expire soon" msgstr "Készlet tétel hamarosan lejár" -#: templates/js/translated/stock.js:2207 +#: templates/js/translated/stock.js:2208 msgid "Stock item has been rejected" msgstr "Készlet tétel elutasítva" -#: templates/js/translated/stock.js:2209 +#: templates/js/translated/stock.js:2210 msgid "Stock item is lost" msgstr "Készlet tétel elveszett" -#: templates/js/translated/stock.js:2211 +#: templates/js/translated/stock.js:2212 msgid "Stock item is destroyed" msgstr "Készlet tétel megsemmisült" -#: templates/js/translated/stock.js:2215 +#: templates/js/translated/stock.js:2216 #: templates/js/translated/table_filters.js:357 msgid "Depleted" msgstr "Kimerült" -#: templates/js/translated/stock.js:2380 +#: templates/js/translated/stock.js:2381 msgid "Supplier part not specified" msgstr "Beszállítói alkatrész nincs megadva" -#: templates/js/translated/stock.js:2427 +#: templates/js/translated/stock.js:2428 msgid "Stock Value" msgstr "Készletérték" -#: templates/js/translated/stock.js:2555 +#: templates/js/translated/stock.js:2556 msgid "No stock items matching query" msgstr "Nincs a lekérdezésnek megfelelő készlet tétel" -#: templates/js/translated/stock.js:2658 +#: templates/js/translated/stock.js:2659 msgid "stock locations" msgstr "készlethelyek" -#: templates/js/translated/stock.js:2813 +#: templates/js/translated/stock.js:2814 msgid "Load Sublocations" msgstr "Alhelyek betöltése" -#: templates/js/translated/stock.js:2930 +#: templates/js/translated/stock.js:2931 msgid "Details" msgstr "Részletek" -#: templates/js/translated/stock.js:2934 +#: templates/js/translated/stock.js:2935 msgid "No changes" msgstr "Nincs változás" -#: templates/js/translated/stock.js:2946 +#: templates/js/translated/stock.js:2947 msgid "Part information unavailable" msgstr "Alkatrész információ nem áll rendelkezésre" -#: templates/js/translated/stock.js:2968 +#: templates/js/translated/stock.js:2969 msgid "Location no longer exists" msgstr "A hely már nem létezik" -#: templates/js/translated/stock.js:2985 +#: templates/js/translated/stock.js:2986 msgid "Build order no longer exists" msgstr "A gyártási utasítás már nem létezik" -#: templates/js/translated/stock.js:3000 +#: templates/js/translated/stock.js:3001 msgid "Purchase order no longer exists" msgstr "Beszerzési megrendelés már nem létezik" -#: templates/js/translated/stock.js:3017 +#: templates/js/translated/stock.js:3018 msgid "Sales Order no longer exists" msgstr "Vevői megrendelés már nem létezik" -#: templates/js/translated/stock.js:3034 +#: templates/js/translated/stock.js:3035 msgid "Return Order no longer exists" msgstr "Visszavétel már nem létezik" -#: templates/js/translated/stock.js:3053 +#: templates/js/translated/stock.js:3054 msgid "Customer no longer exists" msgstr "Vevő már nem létezik" -#: templates/js/translated/stock.js:3071 +#: templates/js/translated/stock.js:3072 msgid "Stock item no longer exists" msgstr "A készlet tétel már nem létezik" -#: templates/js/translated/stock.js:3089 +#: templates/js/translated/stock.js:3090 msgid "Added" msgstr "Hozzáadva" -#: templates/js/translated/stock.js:3097 +#: templates/js/translated/stock.js:3098 msgid "Removed" msgstr "Eltávolítva" -#: templates/js/translated/stock.js:3169 +#: templates/js/translated/stock.js:3170 msgid "No installed items" msgstr "Nincsenek beépített tételek" -#: templates/js/translated/stock.js:3223 templates/js/translated/stock.js:3259 +#: templates/js/translated/stock.js:3224 templates/js/translated/stock.js:3260 msgid "Uninstall Stock Item" msgstr "Készlet tétel kiszedése" -#: templates/js/translated/stock.js:3280 +#: templates/js/translated/stock.js:3281 msgid "Select stock item to uninstall" msgstr "Válaszd ki a kiszedni való készlet tételt" -#: templates/js/translated/stock.js:3301 +#: templates/js/translated/stock.js:3302 msgid "Install another stock item into this item" msgstr "Másik tétel beépítése ebbe a készlet tételbe" -#: templates/js/translated/stock.js:3302 +#: templates/js/translated/stock.js:3303 msgid "Stock items can only be installed if they meet the following criteria" msgstr "Készlet tételek csak akkor építhetők be ha teljesítik a következő kritériumokat" -#: templates/js/translated/stock.js:3304 +#: templates/js/translated/stock.js:3305 msgid "The Stock Item links to a Part which is the BOM for this Stock Item" msgstr "A készlet tétel egy olyan alkatrészre mutat ami alkatrészjegyzéke ennek a készlet tételnek" -#: templates/js/translated/stock.js:3305 +#: templates/js/translated/stock.js:3306 msgid "The Stock Item is currently available in stock" msgstr "A készlet tétel jelenleg elérhető készleten" -#: templates/js/translated/stock.js:3306 +#: templates/js/translated/stock.js:3307 msgid "The Stock Item is not already installed in another item" msgstr "A készlet tétel még nem épült be egy másik tételbe" -#: templates/js/translated/stock.js:3307 +#: templates/js/translated/stock.js:3308 msgid "The Stock Item is tracked by either a batch code or serial number" msgstr "A készlet tétel követett vagy sorozatszámmal vagy batch kóddal" -#: templates/js/translated/stock.js:3320 +#: templates/js/translated/stock.js:3321 msgid "Select part to install" msgstr "Válaszd ki a beépítendő alkatrészt" -#: templates/js/translated/stock.js:3383 +#: templates/js/translated/stock.js:3384 msgid "Select one or more stock items" msgstr "Válassz ki egy vagy több készlet tételt" -#: templates/js/translated/stock.js:3396 +#: templates/js/translated/stock.js:3397 msgid "Selected stock items" msgstr "Kiválasztott készlet tételek" -#: templates/js/translated/stock.js:3400 +#: templates/js/translated/stock.js:3401 msgid "Change Stock Status" msgstr "Készlet állapot módosítása" -#: templates/js/translated/stock.js:3477 +#: templates/js/translated/stock.js:3478 msgid "This week" -msgstr "" +msgstr "Aktuális hét" -#: templates/js/translated/stock.js:3485 +#: templates/js/translated/stock.js:3486 msgid "This month" -msgstr "" +msgstr "Aktuális hónap" #: templates/js/translated/table_filters.js:73 msgid "Has project code" @@ -14615,7 +14934,7 @@ msgstr "Rendelés állapota" #: templates/js/translated/table_filters.js:161 msgid "Testable Part" -msgstr "" +msgstr "Ellenőrizhető alkatrész" #: templates/js/translated/table_filters.js:165 msgid "Trackable Part" @@ -14735,10 +15054,6 @@ msgstr "Készleten lévő tételek megjelenítése" msgid "Show items which are in production" msgstr "Gyártásban lévő tételek megjelenítése" -#: templates/js/translated/table_filters.js:372 -msgid "Include Variants" -msgstr "Változatokkal együtt" - #: templates/js/translated/table_filters.js:373 msgid "Include stock items for variant parts" msgstr "Alkatrészváltozatok készletével együtt" @@ -14798,11 +15113,11 @@ msgstr "Beépített tételekkel együtt" #: templates/js/translated/table_filters.js:478 msgid "Interval start" -msgstr "" +msgstr "Intervallum eleje" #: templates/js/translated/table_filters.js:482 msgid "Interval end" -msgstr "" +msgstr "Invervallum vége" #: templates/js/translated/table_filters.js:536 msgid "Build status" @@ -14818,7 +15133,7 @@ msgstr "Aktív alkatrészek megjelenítése" #: templates/js/translated/table_filters.js:725 msgid "Show locked parts" -msgstr "" +msgstr "Lezárt alkatrészek megjelenítése" #: templates/js/translated/table_filters.js:733 msgid "Available stock" @@ -15013,10 +15328,6 @@ msgstr "Felhasználó bejelentkezési hiba" msgid "An error occurred while attempting to login via your social network account." msgstr "Hiba lépett fel a közösségi hálós bejelentkezés során." -#: templates/socialaccount/authentication_error.html:13 -msgid "Contact your system administrator for further information." -msgstr "Vedd fel a kapcsolatot a rendszergazdával további információkért." - #: templates/socialaccount/login.html:13 #, python-format msgid "Connect %(provider)s" @@ -15128,11 +15439,11 @@ msgstr "Email beállítások hiányoznak" #: templates/test_statistics_table.html:13 msgid "Passed" -msgstr "" +msgstr "Megfelelt" #: templates/test_statistics_table.html:16 msgid "Failed" -msgstr "" +msgstr "Elbukott" #: templates/yesnolabel.html:4 msgid "Yes" @@ -15142,27 +15453,27 @@ msgstr "Igen" msgid "No" msgstr "Nem" -#: users/admin.py:104 +#: users/admin.py:101 msgid "Users" msgstr "Felhasználók" -#: users/admin.py:105 +#: users/admin.py:102 msgid "Select which users are assigned to this group" msgstr "Válaszd ki mely felhasználók tartoznak ehhez a csoporthoz" -#: users/admin.py:249 +#: users/admin.py:246 msgid "The following users are members of multiple groups" msgstr "Az alábbi felhasználók több csoportnak is tagjai" -#: users/admin.py:283 +#: users/admin.py:280 msgid "Personal info" msgstr "Személyes adatok" -#: users/admin.py:285 +#: users/admin.py:282 msgid "Permissions" msgstr "Jogosultságok" -#: users/admin.py:288 +#: users/admin.py:285 msgid "Important dates" msgstr "Fontos dátumok" @@ -15206,35 +15517,35 @@ msgstr "Token utolsó használata" msgid "Revoked" msgstr "Visszavonva" -#: users/models.py:379 +#: users/models.py:381 msgid "Permission set" msgstr "Jogosultságok" -#: users/models.py:388 +#: users/models.py:390 msgid "Group" msgstr "Csoport" -#: users/models.py:392 +#: users/models.py:394 msgid "View" msgstr "Nézet" -#: users/models.py:392 +#: users/models.py:394 msgid "Permission to view items" msgstr "Jogosultság tételek megtekintéséhez" -#: users/models.py:396 +#: users/models.py:398 msgid "Permission to add items" msgstr "Jogosultság tételek hozzáadásához" -#: users/models.py:400 +#: users/models.py:402 msgid "Change" msgstr "Módosítás" -#: users/models.py:402 +#: users/models.py:404 msgid "Permissions to edit items" msgstr "Jogosultság tételek szerkesztéséhez" -#: users/models.py:408 +#: users/models.py:410 msgid "Permission to delete items" msgstr "Jogosultság tételek törléséhez" diff --git a/src/backend/InvenTree/locale/id/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/id/LC_MESSAGES/django.po index d866386fc6..04a4f068ec 100644 --- a/src/backend/InvenTree/locale/id/LC_MESSAGES/django.po +++ b/src/backend/InvenTree/locale/id/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-08-20 01:22+0000\n" -"PO-Revision-Date: 2024-08-20 19:51\n" +"POT-Creation-Date: 2024-11-04 03:11+0000\n" +"PO-Revision-Date: 2024-11-04 03:14\n" "Last-Translator: \n" "Language-Team: Indonesian\n" "Language: id_ID\n" @@ -14,81 +14,89 @@ msgstr "" "X-Crowdin-Project: inventree\n" "X-Crowdin-Project-ID: 452300\n" "X-Crowdin-Language: id\n" -"X-Crowdin-File: /[inventree.InvenTree] l10/src/backend/InvenTree/locale/en/LC_MESSAGES/django.po\n" -"X-Crowdin-File-ID: 216\n" +"X-Crowdin-File: /src/backend/InvenTree/locale/en/LC_MESSAGES/django.po\n" +"X-Crowdin-File-ID: 250\n" -#: InvenTree/api.py:269 +#: InvenTree/api.py:270 msgid "API endpoint not found" msgstr "API endpoint tidak ditemukan" -#: InvenTree/api.py:502 +#: InvenTree/api.py:387 +msgid "Invalid items list provided" +msgstr "" + +#: InvenTree/api.py:396 +msgid "Invalid filters provided" +msgstr "" + +#: InvenTree/api.py:401 +msgid "No items found to delete" +msgstr "" + +#: InvenTree/api.py:515 msgid "User does not have permission to view this model" msgstr "Pengguna tidak memiliki izin untuk melihat model ini" -#: InvenTree/conversion.py:160 +#: InvenTree/conversion.py:161 #, python-brace-format msgid "Invalid unit provided ({unit})" msgstr "" -#: InvenTree/conversion.py:177 +#: InvenTree/conversion.py:178 msgid "No value provided" msgstr "Nilai tidak tersedia" -#: InvenTree/conversion.py:204 +#: InvenTree/conversion.py:205 #, python-brace-format msgid "Could not convert {original} to {unit}" msgstr "" -#: InvenTree/conversion.py:206 -msgid "Invalid quantity supplied" -msgstr "" +#: InvenTree/conversion.py:207 InvenTree/conversion.py:221 +#: InvenTree/helpers.py:505 order/models.py:589 order/models.py:832 +msgid "Invalid quantity provided" +msgstr "Jumlah yang diberikan tidak valid" -#: InvenTree/conversion.py:220 -#, python-brace-format -msgid "Invalid quantity supplied ({exc})" -msgstr "" - -#: InvenTree/exceptions.py:108 +#: InvenTree/exceptions.py:104 msgid "Error details can be found in the admin panel" msgstr "Detail terkait galat dapat dilihat di panel admin" -#: InvenTree/fields.py:136 +#: InvenTree/fields.py:135 msgid "Enter date" msgstr "Masukkan tanggal" -#: InvenTree/fields.py:205 InvenTree/models.py:929 build/serializers.py:468 -#: build/serializers.py:546 build/templates/build/sidebar.html:29 -#: company/models.py:836 +#: InvenTree/fields.py:204 InvenTree/models.py:928 build/serializers.py:512 +#: build/serializers.py:590 build/templates/build/sidebar.html:29 +#: company/models.py:833 #: company/templates/company/manufacturer_part_sidebar.html:11 #: company/templates/company/sidebar.html:37 -#: company/templates/company/supplier_part_sidebar.html:11 order/models.py:1380 +#: company/templates/company/supplier_part_sidebar.html:11 order/models.py:1397 #: order/templates/order/po_sidebar.html:11 #: order/templates/order/return_order_sidebar.html:9 #: order/templates/order/so_sidebar.html:17 part/admin.py:59 -#: part/models.py:3297 part/templates/part/part_sidebar.html:65 +#: part/models.py:3348 part/templates/part/part_sidebar.html:65 #: report/templates/report/inventree_build_order_report.html:172 -#: stock/admin.py:230 stock/models.py:2375 stock/models.py:2563 -#: stock/serializers.py:698 stock/serializers.py:856 stock/serializers.py:982 -#: stock/serializers.py:1032 stock/serializers.py:1343 -#: stock/serializers.py:1432 stock/serializers.py:1597 +#: stock/admin.py:231 stock/models.py:2494 stock/models.py:2679 +#: stock/serializers.py:725 stock/serializers.py:887 stock/serializers.py:1013 +#: stock/serializers.py:1063 stock/serializers.py:1374 +#: stock/serializers.py:1463 stock/serializers.py:1628 #: stock/templates/stock/stock_sidebar.html:25 #: templates/js/translated/barcode.js:143 templates/js/translated/bom.js:1265 -#: templates/js/translated/company.js:1684 templates/js/translated/order.js:372 +#: templates/js/translated/company.js:1685 templates/js/translated/order.js:372 #: templates/js/translated/part.js:1087 -#: templates/js/translated/purchase_order.js:2270 +#: templates/js/translated/purchase_order.js:2254 #: templates/js/translated/return_order.js:774 -#: templates/js/translated/sales_order.js:1103 -#: templates/js/translated/sales_order.js:2018 -#: templates/js/translated/stock.js:1621 templates/js/translated/stock.js:2513 +#: templates/js/translated/sales_order.js:1069 +#: templates/js/translated/sales_order.js:1999 +#: templates/js/translated/stock.js:1621 templates/js/translated/stock.js:2514 msgid "Notes" msgstr "Catatan" -#: InvenTree/format.py:164 +#: InvenTree/format.py:162 #, python-brace-format msgid "Value '{name}' does not appear in pattern format" msgstr "" -#: InvenTree/format.py:175 +#: InvenTree/format.py:173 msgid "Provided value does not match required pattern: " msgstr "Nilai yang diberikan tidak sesuai dengan pola yang ditentukan: " @@ -132,397 +140,409 @@ msgstr "" msgid "The provided primary email address is not valid." msgstr "Alamat surel utama yang diberikan tidak valid." -#: InvenTree/forms.py:274 +#: InvenTree/forms.py:273 msgid "The provided email domain is not approved." msgstr "Domain surel yang diberikan tidak perbolehkan." -#: InvenTree/forms.py:403 +#: InvenTree/forms.py:402 msgid "Registration is disabled." msgstr "" -#: InvenTree/helpers.py:491 order/models.py:567 order/models.py:810 -msgid "Invalid quantity provided" -msgstr "Jumlah yang diberikan tidak valid" +#: InvenTree/helpers.py:509 +msgid "Cannot serialize more than 1000 items at once" +msgstr "" -#: InvenTree/helpers.py:499 +#: InvenTree/helpers.py:515 msgid "Empty serial number string" msgstr "Nomor seri kosong" -#: InvenTree/helpers.py:528 +#: InvenTree/helpers.py:544 msgid "Duplicate serial" -msgstr "" +msgstr "Gandakan Nomor Seri" -#: InvenTree/helpers.py:560 InvenTree/helpers.py:603 +#: InvenTree/helpers.py:576 InvenTree/helpers.py:619 InvenTree/helpers.py:637 +#: InvenTree/helpers.py:644 InvenTree/helpers.py:663 #, python-brace-format -msgid "Invalid group range: {group}" +msgid "Invalid group: {group}" msgstr "" -#: InvenTree/helpers.py:591 +#: InvenTree/helpers.py:607 #, python-brace-format msgid "Group range {group} exceeds allowed quantity ({expected_quantity})" msgstr "" -#: InvenTree/helpers.py:621 InvenTree/helpers.py:628 InvenTree/helpers.py:647 -#, python-brace-format -msgid "Invalid group sequence: {group}" -msgstr "" - -#: InvenTree/helpers.py:657 +#: InvenTree/helpers.py:673 msgid "No serial numbers found" msgstr "Tidak ada nomor seri ditemukan" -#: InvenTree/helpers.py:662 +#: InvenTree/helpers.py:678 msgid "Number of unique serial numbers ({len(serials)}) must match quantity ({expected_quantity})" msgstr "" -#: InvenTree/helpers.py:780 +#: InvenTree/helpers.py:796 msgid "Remove HTML tags from this value" msgstr "Hapus tag-tag HTML dari nilai ini" -#: InvenTree/helpers_model.py:133 -msgid "Connection error" +#: InvenTree/helpers.py:881 +msgid "Data contains prohibited markdown content" msgstr "" -#: InvenTree/helpers_model.py:138 InvenTree/helpers_model.py:145 +#: InvenTree/helpers_model.py:130 +msgid "Connection error" +msgstr "Koneksi Galat" + +#: InvenTree/helpers_model.py:135 InvenTree/helpers_model.py:142 msgid "Server responded with invalid status code" msgstr "" -#: InvenTree/helpers_model.py:141 +#: InvenTree/helpers_model.py:138 msgid "Exception occurred" msgstr "" -#: InvenTree/helpers_model.py:151 +#: InvenTree/helpers_model.py:148 msgid "Server responded with invalid Content-Length value" msgstr "" -#: InvenTree/helpers_model.py:154 +#: InvenTree/helpers_model.py:151 msgid "Image size is too large" msgstr "Ukuran gambar terlalu besar" -#: InvenTree/helpers_model.py:166 +#: InvenTree/helpers_model.py:163 msgid "Image download exceeded maximum size" msgstr "" -#: InvenTree/helpers_model.py:171 +#: InvenTree/helpers_model.py:168 msgid "Remote server returned empty response" msgstr "" -#: InvenTree/helpers_model.py:179 +#: InvenTree/helpers_model.py:176 msgid "Supplied URL is not a valid image file" msgstr "URL yang diberikan bukan file gambar yang valid" -#: InvenTree/locales.py:18 +#: InvenTree/locales.py:20 msgid "Arabic" -msgstr "" +msgstr "Bahasa Arab" -#: InvenTree/locales.py:19 +#: InvenTree/locales.py:21 msgid "Bulgarian" msgstr "" -#: InvenTree/locales.py:20 +#: InvenTree/locales.py:22 msgid "Czech" msgstr "Ceko" -#: InvenTree/locales.py:21 +#: InvenTree/locales.py:23 msgid "Danish" msgstr "Denmark" -#: InvenTree/locales.py:22 +#: InvenTree/locales.py:24 msgid "German" msgstr "Jerman" -#: InvenTree/locales.py:23 +#: InvenTree/locales.py:25 msgid "Greek" msgstr "Yunani" -#: InvenTree/locales.py:24 +#: InvenTree/locales.py:26 msgid "English" msgstr "Inggris" -#: InvenTree/locales.py:25 +#: InvenTree/locales.py:27 msgid "Spanish" msgstr "Spanyol" -#: InvenTree/locales.py:26 +#: InvenTree/locales.py:28 msgid "Spanish (Mexican)" msgstr "Spanyol (Meksiko)" -#: InvenTree/locales.py:27 +#: InvenTree/locales.py:29 msgid "Estonian" msgstr "" -#: InvenTree/locales.py:28 +#: InvenTree/locales.py:30 msgid "Farsi / Persian" msgstr "Farsi / Persia" -#: InvenTree/locales.py:29 +#: InvenTree/locales.py:31 msgid "Finnish" msgstr "" -#: InvenTree/locales.py:30 +#: InvenTree/locales.py:32 msgid "French" msgstr "Perancis" -#: InvenTree/locales.py:31 +#: InvenTree/locales.py:33 msgid "Hebrew" msgstr "Ibrani" -#: InvenTree/locales.py:32 +#: InvenTree/locales.py:34 msgid "Hindi" msgstr "" -#: InvenTree/locales.py:33 +#: InvenTree/locales.py:35 msgid "Hungarian" msgstr "Hungaria" -#: InvenTree/locales.py:34 +#: InvenTree/locales.py:36 msgid "Italian" msgstr "Itali" -#: InvenTree/locales.py:35 +#: InvenTree/locales.py:37 msgid "Japanese" msgstr "Jepang" -#: InvenTree/locales.py:36 +#: InvenTree/locales.py:38 msgid "Korean" msgstr "Korea" -#: InvenTree/locales.py:37 +#: InvenTree/locales.py:39 +msgid "Lithuanian" +msgstr "Bahasa Lithuania" + +#: InvenTree/locales.py:40 msgid "Latvian" msgstr "" -#: InvenTree/locales.py:38 +#: InvenTree/locales.py:41 msgid "Dutch" msgstr "Belanda" -#: InvenTree/locales.py:39 +#: InvenTree/locales.py:42 msgid "Norwegian" msgstr "Norwegia" -#: InvenTree/locales.py:40 +#: InvenTree/locales.py:43 msgid "Polish" msgstr "Polandia" -#: InvenTree/locales.py:41 +#: InvenTree/locales.py:44 msgid "Portuguese" msgstr "Portugis" -#: InvenTree/locales.py:42 +#: InvenTree/locales.py:45 msgid "Portuguese (Brazilian)" msgstr "Portugis (Brasil)" -#: InvenTree/locales.py:43 +#: InvenTree/locales.py:46 msgid "Romanian" msgstr "" -#: InvenTree/locales.py:44 +#: InvenTree/locales.py:47 msgid "Russian" msgstr "Rusia" -#: InvenTree/locales.py:45 +#: InvenTree/locales.py:48 msgid "Slovak" msgstr "" -#: InvenTree/locales.py:46 +#: InvenTree/locales.py:49 msgid "Slovenian" msgstr "" -#: InvenTree/locales.py:47 +#: InvenTree/locales.py:50 msgid "Serbian" msgstr "" -#: InvenTree/locales.py:48 +#: InvenTree/locales.py:51 msgid "Swedish" msgstr "Swedia" -#: InvenTree/locales.py:49 +#: InvenTree/locales.py:52 msgid "Thai" msgstr "" -#: InvenTree/locales.py:50 +#: InvenTree/locales.py:53 msgid "Turkish" msgstr "Turki" -#: InvenTree/locales.py:51 +#: InvenTree/locales.py:54 msgid "Ukrainian" msgstr "" -#: InvenTree/locales.py:52 +#: InvenTree/locales.py:55 msgid "Vietnamese" msgstr "Vietnam" -#: InvenTree/locales.py:53 +#: InvenTree/locales.py:56 msgid "Chinese (Simplified)" msgstr "" -#: InvenTree/locales.py:54 +#: InvenTree/locales.py:57 msgid "Chinese (Traditional)" msgstr "" #: InvenTree/magic_login.py:28 -#, python-brace-format -msgid "[{site_name}] Log in to the app" +msgid "Log in to the app" msgstr "" -#: InvenTree/magic_login.py:38 InvenTree/serializers.py:415 -#: company/models.py:136 company/templates/company/company_base.html:138 +#: InvenTree/magic_login.py:38 InvenTree/serializers.py:416 +#: company/models.py:133 company/templates/company/company_base.html:138 #: templates/InvenTree/settings/user.html:49 -#: templates/js/translated/company.js:677 +#: templates/js/translated/company.js:678 msgid "Email" msgstr "Surel" -#: InvenTree/models.py:103 +#: InvenTree/models.py:105 msgid "Error running plugin validation" msgstr "" -#: InvenTree/models.py:172 +#: InvenTree/models.py:174 msgid "Metadata must be a python dict object" msgstr "" -#: InvenTree/models.py:178 +#: InvenTree/models.py:180 msgid "Plugin Metadata" msgstr "" -#: InvenTree/models.py:179 +#: InvenTree/models.py:181 msgid "JSON metadata field, for use by external plugins" msgstr "" -#: InvenTree/models.py:409 +#: InvenTree/models.py:408 msgid "Improperly formatted pattern" msgstr "" -#: InvenTree/models.py:416 +#: InvenTree/models.py:415 msgid "Unknown format key specified" msgstr "" -#: InvenTree/models.py:422 +#: InvenTree/models.py:421 msgid "Missing required format key" msgstr "" -#: InvenTree/models.py:433 +#: InvenTree/models.py:432 msgid "Reference field cannot be empty" msgstr "" -#: InvenTree/models.py:441 +#: InvenTree/models.py:440 msgid "Reference must match required pattern" msgstr "" -#: InvenTree/models.py:472 +#: InvenTree/models.py:471 msgid "Reference number is too large" msgstr "" -#: InvenTree/models.py:723 +#: InvenTree/models.py:722 msgid "Duplicate names cannot exist under the same parent" msgstr "" -#: InvenTree/models.py:740 +#: InvenTree/models.py:739 msgid "Invalid choice" msgstr "Pilihan tidak valid" -#: InvenTree/models.py:770 common/models.py:2702 common/models.py:3132 -#: common/serializers.py:412 company/models.py:593 machine/models.py:24 -#: part/models.py:983 part/models.py:3764 plugin/models.py:51 -#: report/models.py:149 stock/models.py:77 +#: InvenTree/models.py:769 common/models.py:2766 common/models.py:3193 +#: common/models.py:3413 common/serializers.py:460 company/models.py:590 +#: machine/models.py:24 part/models.py:1044 part/models.py:3815 +#: plugin/models.py:51 report/models.py:149 stock/models.py:83 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/notifications.html:17 #: templates/InvenTree/settings/plugin.html:83 #: templates/InvenTree/settings/plugin_settings.html:22 #: templates/InvenTree/settings/settings_staff_js.html:67 #: templates/InvenTree/settings/settings_staff_js.html:454 -#: templates/js/translated/company.js:676 -#: templates/js/translated/company.js:724 -#: templates/js/translated/company.js:913 -#: templates/js/translated/company.js:1165 -#: templates/js/translated/company.js:1413 templates/js/translated/part.js:1193 +#: templates/js/translated/company.js:677 +#: templates/js/translated/company.js:725 +#: templates/js/translated/company.js:914 +#: templates/js/translated/company.js:1166 +#: templates/js/translated/company.js:1414 templates/js/translated/part.js:1193 #: templates/js/translated/part.js:1481 templates/js/translated/part.js:1617 -#: templates/js/translated/part.js:2768 templates/js/translated/stock.js:2801 +#: templates/js/translated/part.js:2768 templates/js/translated/stock.js:2802 msgid "Name" msgstr "Nama" -#: InvenTree/models.py:776 build/models.py:250 -#: build/templates/build/detail.html:24 common/models.py:156 -#: company/models.py:521 company/models.py:827 +#: InvenTree/models.py:775 build/models.py:251 +#: build/templates/build/detail.html:24 common/models.py:159 +#: company/models.py:518 company/models.py:824 #: company/templates/company/company_base.html:77 #: company/templates/company/manufacturer_part.html:75 -#: company/templates/company/supplier_part.html:107 order/models.py:288 -#: order/models.py:1413 part/admin.py:305 part/admin.py:411 part/models.py:1006 -#: part/models.py:3779 part/templates/part/category.html:79 -#: part/templates/part/part_base.html:170 +#: company/templates/company/supplier_part.html:108 order/models.py:295 +#: order/models.py:1430 part/admin.py:305 part/admin.py:411 part/models.py:1067 +#: part/models.py:3830 part/templates/part/category.html:79 +#: part/templates/part/part_base.html:171 #: part/templates/part/part_scheduling.html:12 report/models.py:155 -#: report/models.py:509 report/models.py:535 +#: report/models.py:517 report/models.py:543 #: report/templates/report/inventree_build_order_report.html:117 -#: stock/admin.py:54 stock/models.py:83 stock/templates/stock/location.html:122 +#: stock/admin.py:54 stock/models.py:89 stock/templates/stock/location.html:123 #: templates/InvenTree/settings/notifications.html:19 #: templates/InvenTree/settings/plugin_settings.html:27 #: templates/InvenTree/settings/settings_staff_js.html:170 #: templates/InvenTree/settings/settings_staff_js.html:459 #: templates/js/translated/bom.js:633 templates/js/translated/bom.js:963 -#: templates/js/translated/build.js:2311 templates/js/translated/company.js:519 -#: templates/js/translated/company.js:1330 -#: templates/js/translated/company.js:1641 templates/js/translated/index.js:119 +#: templates/js/translated/build.js:2314 templates/js/translated/company.js:520 +#: templates/js/translated/company.js:1331 +#: templates/js/translated/company.js:1642 templates/js/translated/index.js:119 #: templates/js/translated/order.js:323 templates/js/translated/part.js:1245 #: templates/js/translated/part.js:1490 templates/js/translated/part.js:1628 #: templates/js/translated/part.js:1965 templates/js/translated/part.js:2361 #: templates/js/translated/part.js:2803 templates/js/translated/part.js:2915 #: templates/js/translated/plugin.js:80 -#: templates/js/translated/purchase_order.js:1776 -#: templates/js/translated/purchase_order.js:1919 -#: templates/js/translated/purchase_order.js:2092 +#: templates/js/translated/purchase_order.js:1760 +#: templates/js/translated/purchase_order.js:1903 +#: templates/js/translated/purchase_order.js:2076 #: templates/js/translated/return_order.js:313 -#: templates/js/translated/sales_order.js:838 -#: templates/js/translated/sales_order.js:1848 -#: templates/js/translated/stock.js:1600 templates/js/translated/stock.js:2143 -#: templates/js/translated/stock.js:2832 templates/js/translated/stock.js:2915 +#: templates/js/translated/sales_order.js:797 +#: templates/js/translated/sales_order.js:1829 +#: templates/js/translated/stock.js:1600 templates/js/translated/stock.js:2144 +#: templates/js/translated/stock.js:2833 templates/js/translated/stock.js:2916 msgid "Description" msgstr "Keterangan" -#: InvenTree/models.py:777 stock/models.py:84 +#: InvenTree/models.py:776 stock/models.py:90 msgid "Description (optional)" msgstr "Keterangan (opsional)" -#: InvenTree/models.py:792 templates/js/translated/part.js:2812 -#: templates/js/translated/stock.js:2841 +#: InvenTree/models.py:791 common/models.py:3546 +#: templates/js/translated/part.js:2812 templates/js/translated/stock.js:2842 msgid "Path" msgstr "Direktori" -#: InvenTree/models.py:929 +#: InvenTree/models.py:928 msgid "Markdown notes (optional)" msgstr "" -#: InvenTree/models.py:960 +#: InvenTree/models.py:959 msgid "Barcode Data" msgstr "Data Barcode" -#: InvenTree/models.py:961 +#: InvenTree/models.py:960 msgid "Third party barcode data" msgstr "Data barcode pihak ketiga" -#: InvenTree/models.py:967 +#: InvenTree/models.py:966 msgid "Barcode Hash" msgstr "" -#: InvenTree/models.py:968 +#: InvenTree/models.py:967 msgid "Unique hash of barcode data" msgstr "Hash unik data barcode" -#: InvenTree/models.py:1035 +#: InvenTree/models.py:1034 msgid "Existing barcode found" msgstr "Sudah ada barcode yang sama" -#: InvenTree/models.py:1078 +#: InvenTree/models.py:1112 +msgid "Task Failure" +msgstr "" + +#: InvenTree/models.py:1114 +#, python-brace-format +msgid "Background worker task '{instance.func}' failed after {n} attempts" +msgstr "" + +#: InvenTree/models.py:1142 msgid "Server Error" msgstr "Terjadi Kesalahan Server" -#: InvenTree/models.py:1079 +#: InvenTree/models.py:1143 msgid "An error has been logged by the server." msgstr "Sebuah kesalahan telah dicatat oleh server." -#: InvenTree/serializers.py:63 part/models.py:4387 +#: InvenTree/serializers.py:63 part/models.py:4444 msgid "Must be a valid number" msgstr "Harus berupa angka yang valid" -#: InvenTree/serializers.py:100 company/models.py:186 -#: company/templates/company/company_base.html:112 part/models.py:3115 +#: InvenTree/serializers.py:100 company/models.py:183 +#: company/templates/company/company_base.html:112 part/models.py:3166 #: templates/InvenTree/settings/settings_staff_js.html:44 #: templates/currency_data.html:5 msgid "Currency" @@ -532,50 +552,50 @@ msgstr "Mata Uang" msgid "Select currency from available options" msgstr "" -#: InvenTree/serializers.py:407 templates/InvenTree/settings/user.html:33 +#: InvenTree/serializers.py:405 templates/InvenTree/settings/user.html:33 msgid "Username" -msgstr "" +msgstr "Nama Pengguna" -#: InvenTree/serializers.py:409 templates/InvenTree/settings/user.html:37 +#: InvenTree/serializers.py:408 templates/InvenTree/settings/user.html:37 msgid "First Name" -msgstr "" +msgstr "Nama Depan" -#: InvenTree/serializers.py:409 +#: InvenTree/serializers.py:408 msgid "First name of the user" -msgstr "" +msgstr "Nama depan dari pengguna" #: InvenTree/serializers.py:412 templates/InvenTree/settings/user.html:41 msgid "Last Name" -msgstr "" +msgstr "Nama Belakang" #: InvenTree/serializers.py:412 msgid "Last name of the user" -msgstr "" +msgstr "Nama belakang dari pengguna" -#: InvenTree/serializers.py:415 +#: InvenTree/serializers.py:416 msgid "Email address of the user" -msgstr "" +msgstr "Alamat surel dari pengguna" -#: InvenTree/serializers.py:439 +#: InvenTree/serializers.py:441 msgid "Staff" -msgstr "" +msgstr "Staf" -#: InvenTree/serializers.py:439 +#: InvenTree/serializers.py:441 msgid "Does this user have staff permissions" msgstr "" -#: InvenTree/serializers.py:442 +#: InvenTree/serializers.py:445 msgid "Superuser" msgstr "" -#: InvenTree/serializers.py:442 +#: InvenTree/serializers.py:445 msgid "Is this user a superuser" msgstr "" -#: InvenTree/serializers.py:445 common/models.py:2707 company/models.py:163 -#: company/models.py:801 machine/models.py:39 part/admin.py:88 -#: part/models.py:1189 plugin/models.py:66 -#: templates/js/translated/company.js:523 +#: InvenTree/serializers.py:449 common/models.py:2771 company/models.py:160 +#: company/models.py:798 machine/models.py:39 part/admin.py:88 +#: part/models.py:1250 plugin/models.py:66 +#: templates/js/translated/company.js:524 #: templates/js/translated/table_filters.js:134 #: templates/js/translated/table_filters.js:226 #: templates/js/translated/table_filters.js:513 @@ -583,249 +603,300 @@ msgstr "" #: templates/js/translated/table_filters.js:719 #: templates/js/translated/table_filters.js:808 users/models.py:182 msgid "Active" -msgstr "" +msgstr "Aktif" -#: InvenTree/serializers.py:445 +#: InvenTree/serializers.py:449 msgid "Is this user account active" msgstr "" -#: InvenTree/serializers.py:463 +#: InvenTree/serializers.py:467 msgid "You do not have permission to change this user role." msgstr "" -#: InvenTree/serializers.py:475 +#: InvenTree/serializers.py:503 msgid "Only superusers can create new users" msgstr "" -#: InvenTree/serializers.py:494 +#: InvenTree/serializers.py:523 msgid "Your account has been created." msgstr "" -#: InvenTree/serializers.py:496 +#: InvenTree/serializers.py:525 msgid "Please use the password reset function to login" msgstr "" -#: InvenTree/serializers.py:503 +#: InvenTree/serializers.py:531 msgid "Welcome to InvenTree" -msgstr "" +msgstr "Selamat Datang di InvenTree" -#: InvenTree/serializers.py:561 +#: InvenTree/serializers.py:594 msgid "Invalid value" msgstr "Nilai tidak valid" -#: InvenTree/serializers.py:581 importer/models.py:63 +#: InvenTree/serializers.py:614 importer/models.py:64 msgid "Data File" msgstr "File data" -#: InvenTree/serializers.py:582 +#: InvenTree/serializers.py:615 msgid "Select data file for upload" msgstr "Pilih file untuk diunggah" -#: InvenTree/serializers.py:599 -msgid "Unsupported file type" -msgstr "Jenis file tidak didukung" +#: InvenTree/serializers.py:632 common/files.py:63 +msgid "Unsupported file format" +msgstr "" -#: InvenTree/serializers.py:605 +#: InvenTree/serializers.py:638 msgid "File is too large" msgstr "Ukuran file terlalu besar" -#: InvenTree/serializers.py:626 +#: InvenTree/serializers.py:659 msgid "No columns found in file" msgstr "Tidak ditemukan kolom dalam file" -#: InvenTree/serializers.py:629 +#: InvenTree/serializers.py:662 msgid "No data rows found in file" msgstr "Tidak ditemukan barisan data dalam file" -#: InvenTree/serializers.py:742 +#: InvenTree/serializers.py:774 msgid "No data rows provided" msgstr "Tidak ada barisan data tersedia" -#: InvenTree/serializers.py:745 +#: InvenTree/serializers.py:777 msgid "No data columns supplied" msgstr "Tidak ada kolom data tersedia" -#: InvenTree/serializers.py:812 +#: InvenTree/serializers.py:843 #, python-brace-format msgid "Missing required column: '{name}'" msgstr "Kolom yang diperlukan kurang: '{name}'" -#: InvenTree/serializers.py:821 +#: InvenTree/serializers.py:852 #, python-brace-format msgid "Duplicate column: '{col}'" msgstr "Kolom duplikat: '{col}'" -#: InvenTree/serializers.py:861 +#: InvenTree/serializers.py:891 msgid "Remote Image" msgstr "" -#: InvenTree/serializers.py:862 +#: InvenTree/serializers.py:892 msgid "URL of remote image file" msgstr "URL file gambar external" -#: InvenTree/serializers.py:880 +#: InvenTree/serializers.py:910 msgid "Downloading images from remote URL is not enabled" msgstr "Unduhan gambar dari URL external tidak aktif" -#: InvenTree/status.py:66 part/serializers.py:1246 -msgid "Background worker check failed" +#: InvenTree/serializers.py:917 +msgid "Failed to download image from remote URL" msgstr "" -#: InvenTree/status.py:70 -msgid "Email backend not configured" -msgstr "" - -#: InvenTree/status.py:73 -msgid "InvenTree system health checks failed" -msgstr "Pengecekan kesehatan sistem InvenTree gagal" - #: InvenTree/templatetags/inventree_extras.py:184 msgid "Unknown database" msgstr "" -#: InvenTree/validators.py:32 InvenTree/validators.py:34 +#: InvenTree/validators.py:32 msgid "Invalid physical unit" msgstr "" -#: InvenTree/validators.py:40 +#: InvenTree/validators.py:38 msgid "Not a valid currency code" msgstr "Bukan kode mata uang yang valid" -#: InvenTree/validators.py:118 InvenTree/validators.py:134 +#: InvenTree/validators.py:115 InvenTree/validators.py:131 msgid "Overage value must not be negative" msgstr "Nilai kelebihan tidak boleh negatif" -#: InvenTree/validators.py:136 +#: InvenTree/validators.py:133 msgid "Overage must not exceed 100%" msgstr "Kelebihan tidak boleh melebihi 100%" -#: InvenTree/validators.py:142 +#: InvenTree/validators.py:139 msgid "Invalid value for overage" msgstr "Nilai kelebihan tidak valid" -#: InvenTree/views.py:400 templates/InvenTree/settings/user.html:23 +#: InvenTree/views.py:399 templates/InvenTree/settings/user.html:23 msgid "Edit User Information" msgstr "Ubah Informasi User" -#: InvenTree/views.py:412 templates/InvenTree/settings/user.html:20 +#: InvenTree/views.py:411 templates/InvenTree/settings/user.html:20 msgid "Set Password" msgstr "Atur Kata Sandi" -#: InvenTree/views.py:434 +#: InvenTree/views.py:433 msgid "Password fields must match" msgstr "Bidang kata sandi tidak cocok" -#: InvenTree/views.py:442 +#: InvenTree/views.py:441 msgid "Wrong password provided" msgstr "Kata sandi yang salah" -#: InvenTree/views.py:650 templates/navbar.html:160 +#: InvenTree/views.py:645 templates/navbar.html:160 msgid "System Information" msgstr "Informasi Sistem" -#: InvenTree/views.py:657 templates/navbar.html:171 +#: InvenTree/views.py:652 templates/navbar.html:171 msgid "About InvenTree" msgstr "Tentang InvenTree" -#: build/api.py:51 part/api.py:156 stock/api.py:343 -msgid "Cascade" -msgstr "" - -#: build/api.py:64 build/models.py:261 -#: build/templates/build/build_base.html:191 +#: build/api.py:54 build/models.py:262 +#: build/templates/build/build_base.html:192 #: build/templates/build/detail.html:87 msgid "Parent Build" msgstr "Produksi Induk" -#: build/api.py:89 order/api.py:92 templates/js/translated/table_filters.js:101 +#: build/api.py:58 build/api.py:625 order/api.py:396 order/api.py:611 +#: order/api.py:990 order/api.py:1187 +#: templates/js/translated/table_filters.js:372 +msgid "Include Variants" +msgstr "" + +#: build/api.py:93 +msgid "Ancestor Build" +msgstr "" + +#: build/api.py:112 order/api.py:90 +#: templates/js/translated/table_filters.js:101 #: templates/js/translated/table_filters.js:549 #: templates/js/translated/table_filters.js:633 #: templates/js/translated/table_filters.js:674 msgid "Assigned to me" msgstr "" -#: build/api.py:106 build/templates/build/build_base.html:205 +#: build/api.py:129 build/templates/build/build_base.html:206 #: build/templates/build/detail.html:115 #: report/templates/report/inventree_build_order_report.html:152 #: templates/js/translated/table_filters.js:552 msgid "Issued By" msgstr "" -#: build/api.py:125 +#: build/api.py:148 msgid "Assigned To" msgstr "" -#: build/api.py:301 +#: build/api.py:310 msgid "Build must be cancelled before it can be deleted" msgstr "Pesanan harus dibatalkan sebelum dapat dihapus" -#: build/api.py:345 build/serializers.py:1288 part/models.py:4265 +#: build/api.py:354 build/serializers.py:1342 part/models.py:4322 #: templates/js/translated/bom.js:997 templates/js/translated/bom.js:1037 -#: templates/js/translated/build.js:2702 +#: templates/js/translated/build.js:2711 #: templates/js/translated/table_filters.js:197 #: templates/js/translated/table_filters.js:586 msgid "Consumable" msgstr "" -#: build/api.py:346 build/serializers.py:1289 part/models.py:4259 +#: build/api.py:355 build/serializers.py:1343 part/models.py:4316 #: part/templates/part/upload_bom.html:58 templates/js/translated/bom.js:1001 -#: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2693 +#: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2702 #: templates/js/translated/table_filters.js:193 #: templates/js/translated/table_filters.js:222 #: templates/js/translated/table_filters.js:590 msgid "Optional" msgstr "" -#: build/api.py:347 common/models.py:1489 part/admin.py:91 part/admin.py:428 -#: part/models.py:1154 part/serializers.py:1575 +#: build/api.py:356 common/models.py:1558 part/admin.py:91 part/admin.py:428 +#: part/models.py:1215 part/serializers.py:1633 #: templates/js/translated/bom.js:1639 #: templates/js/translated/table_filters.js:337 #: templates/js/translated/table_filters.js:729 msgid "Assembly" msgstr "" -#: build/api.py:348 templates/js/translated/table_filters.js:415 +#: build/api.py:357 templates/js/translated/table_filters.js:415 #: templates/js/translated/table_filters.js:582 msgid "Tracked" msgstr "" -#: build/api.py:349 build/serializers.py:1290 part/models.py:1172 +#: build/api.py:358 build/serializers.py:1344 part/models.py:1233 #: templates/js/translated/table_filters.js:146 #: templates/js/translated/table_filters.js:779 msgid "Testable" msgstr "" -#: build/api.py:351 part/admin.py:144 templates/js/translated/build.js:1917 -#: templates/js/translated/build.js:2820 -#: templates/js/translated/sales_order.js:1965 +#: build/api.py:360 order/api.py:779 part/admin.py:144 +#: templates/js/translated/build.js:1920 templates/js/translated/build.js:2838 +#: templates/js/translated/sales_order.js:1946 #: templates/js/translated/table_filters.js:574 msgid "Allocated" msgstr "" -#: build/api.py:359 company/models.py:891 company/serializers.py:395 -#: company/templates/company/supplier_part.html:114 +#: build/api.py:368 company/models.py:888 company/serializers.py:399 +#: company/templates/company/supplier_part.html:115 #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:17 -#: templates/js/translated/bom.js:1162 templates/js/translated/build.js:2752 +#: templates/js/translated/bom.js:1162 templates/js/translated/build.js:2770 #: templates/js/translated/index.js:123 -#: templates/js/translated/model_renderers.js:235 +#: templates/js/translated/model_renderers.js:238 #: templates/js/translated/part.js:695 templates/js/translated/part.js:697 #: templates/js/translated/part.js:702 #: templates/js/translated/table_filters.js:347 #: templates/js/translated/table_filters.js:578 msgid "Available" -msgstr "" +msgstr "Tersedia" -#: build/models.py:86 build/templates/build/build_base.html:9 -#: build/templates/build/build_base.html:27 +#: build/api.py:640 build/models.py:268 build/serializers.py:1330 +#: build/templates/build/build_base.html:106 +#: build/templates/build/detail.html:29 company/models.py:1043 order/api.py:775 +#: order/api.py:1003 order/models.py:1519 order/models.py:1674 +#: order/models.py:1675 part/api.py:1495 part/api.py:1802 part/models.py:419 +#: part/models.py:3177 part/models.py:3321 part/models.py:3469 +#: part/models.py:3490 part/models.py:3512 part/models.py:3648 +#: part/models.py:3995 part/models.py:4158 part/models.py:4288 +#: part/models.py:4654 part/serializers.py:1245 part/serializers.py:1898 +#: part/templates/part/part_app_base.html:8 +#: part/templates/part/part_pricing.html:12 +#: part/templates/part/upload_bom.html:52 +#: report/templates/report/inventree_bill_of_materials_report.html:110 +#: report/templates/report/inventree_bill_of_materials_report.html:137 +#: report/templates/report/inventree_build_order_report.html:109 +#: report/templates/report/inventree_purchase_order_report.html:27 +#: report/templates/report/inventree_return_order_report.html:24 +#: report/templates/report/inventree_sales_order_report.html:27 +#: report/templates/report/inventree_sales_order_shipment_report.html:28 +#: report/templates/report/inventree_stock_location_report.html:102 +#: stock/serializers.py:112 stock/serializers.py:160 stock/serializers.py:456 +#: stock/serializers.py:947 templates/InvenTree/search.html:82 +#: templates/email/build_order_completed.html:17 +#: templates/email/build_order_required_stock.html:17 +#: templates/email/low_stock_notification.html:15 +#: templates/email/overdue_build_order.html:16 +#: templates/js/translated/barcode.js:577 templates/js/translated/bom.js:632 +#: templates/js/translated/bom.js:769 templates/js/translated/bom.js:905 +#: templates/js/translated/build.js:1005 templates/js/translated/build.js:1488 +#: templates/js/translated/build.js:1919 templates/js/translated/build.js:2337 +#: templates/js/translated/build.js:2514 templates/js/translated/company.js:349 +#: templates/js/translated/company.js:1117 +#: templates/js/translated/company.js:1272 +#: templates/js/translated/company.js:1560 templates/js/translated/index.js:109 +#: templates/js/translated/part.js:1950 templates/js/translated/part.js:2022 +#: templates/js/translated/part.js:2330 templates/js/translated/pricing.js:369 +#: templates/js/translated/purchase_order.js:734 +#: templates/js/translated/purchase_order.js:1350 +#: templates/js/translated/purchase_order.js:1902 +#: templates/js/translated/purchase_order.js:2061 +#: templates/js/translated/return_order.js:538 +#: templates/js/translated/return_order.js:708 +#: templates/js/translated/sales_order.js:1199 +#: templates/js/translated/sales_order.js:1608 +#: templates/js/translated/sales_order.js:1813 +#: templates/js/translated/stock.js:682 templates/js/translated/stock.js:848 +#: templates/js/translated/stock.js:1065 templates/js/translated/stock.js:2083 +#: templates/js/translated/stock.js:2942 templates/js/translated/stock.js:3175 +#: templates/js/translated/stock.js:3320 +msgid "Part" +msgstr "Bagian" + +#: build/api.py:662 build/models.py:88 build/templates/build/build_base.html:10 +#: build/templates/build/build_base.html:28 #: report/templates/report/inventree_build_order_report.html:105 -#: stock/serializers.py:84 templates/email/build_order_completed.html:16 +#: stock/serializers.py:85 templates/email/build_order_completed.html:16 #: templates/email/overdue_build_order.html:15 -#: templates/js/translated/build.js:1145 templates/js/translated/stock.js:2976 +#: templates/js/translated/build.js:1148 templates/js/translated/stock.js:2977 msgid "Build Order" msgstr "Order Produksi" -#: build/models.py:87 build/templates/build/build_base.html:13 +#: build/models.py:89 build/templates/build/build_base.html:14 #: build/templates/build/index.html:8 build/templates/build/index.html:12 #: order/templates/order/sales_order_detail.html:111 #: order/templates/order/so_sidebar.html:13 @@ -836,268 +907,216 @@ msgstr "Order Produksi" msgid "Build Orders" msgstr "Order Produksi" -#: build/models.py:135 +#: build/models.py:136 msgid "Assembly BOM has not been validated" msgstr "" -#: build/models.py:142 +#: build/models.py:143 msgid "Build order cannot be created for an inactive part" msgstr "" -#: build/models.py:149 +#: build/models.py:150 msgid "Build order cannot be created for an unlocked part" msgstr "" -#: build/models.py:163 +#: build/models.py:164 msgid "Invalid choice for parent build" msgstr "Pilihan produksi induk tidak valid" -#: build/models.py:174 order/models.py:239 +#: build/models.py:175 order/models.py:236 msgid "Responsible user or group must be specified" msgstr "" -#: build/models.py:180 +#: build/models.py:181 msgid "Build order part cannot be changed" msgstr "" -#: build/models.py:241 +#: build/models.py:242 msgid "Build Order Reference" msgstr "Referensi Order Produksi" -#: build/models.py:242 build/serializers.py:1287 order/models.py:467 -#: order/models.py:978 order/models.py:1373 order/models.py:2135 -#: part/admin.py:414 part/models.py:4280 part/templates/part/upload_bom.html:54 +#: build/models.py:243 build/serializers.py:1341 order/models.py:479 +#: order/models.py:1005 order/models.py:1390 order/models.py:2174 +#: part/admin.py:414 part/models.py:4337 part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_bill_of_materials_report.html:139 #: report/templates/report/inventree_purchase_order_report.html:28 #: report/templates/report/inventree_return_order_report.html:26 #: report/templates/report/inventree_sales_order_report.html:28 #: templates/js/translated/bom.js:770 templates/js/translated/bom.js:973 -#: templates/js/translated/build.js:1011 templates/js/translated/build.js:2685 +#: templates/js/translated/build.js:1014 templates/js/translated/build.js:2694 #: templates/js/translated/order.js:316 templates/js/translated/pricing.js:386 -#: templates/js/translated/purchase_order.js:2135 +#: templates/js/translated/purchase_order.js:2119 #: templates/js/translated/return_order.js:727 -#: templates/js/translated/sales_order.js:1854 +#: templates/js/translated/sales_order.js:1835 msgid "Reference" msgstr "Referensi" -#: build/models.py:253 +#: build/models.py:254 msgid "Brief description of the build (optional)" msgstr "" -#: build/models.py:262 +#: build/models.py:263 msgid "BuildOrder to which this build is allocated" msgstr "Produksi induk dari produksi ini" -#: build/models.py:267 build/serializers.py:1278 -#: build/templates/build/build_base.html:105 -#: build/templates/build/detail.html:29 company/models.py:1046 order/api.py:767 -#: order/models.py:1503 order/models.py:1658 order/models.py:1659 -#: part/api.py:1509 part/api.py:1813 part/models.py:424 part/models.py:3126 -#: part/models.py:3270 part/models.py:3418 part/models.py:3439 -#: part/models.py:3461 part/models.py:3597 part/models.py:3937 -#: part/models.py:4100 part/models.py:4231 part/models.py:4592 -#: part/serializers.py:1192 part/serializers.py:1836 -#: part/templates/part/part_app_base.html:8 -#: part/templates/part/part_pricing.html:12 -#: part/templates/part/upload_bom.html:52 -#: report/templates/report/inventree_bill_of_materials_report.html:110 -#: report/templates/report/inventree_bill_of_materials_report.html:137 -#: report/templates/report/inventree_build_order_report.html:109 -#: report/templates/report/inventree_purchase_order_report.html:27 -#: report/templates/report/inventree_return_order_report.html:24 -#: report/templates/report/inventree_sales_order_report.html:27 -#: report/templates/report/inventree_stock_location_report.html:102 -#: stock/serializers.py:111 stock/serializers.py:159 stock/serializers.py:446 -#: stock/serializers.py:916 templates/InvenTree/search.html:82 -#: templates/email/build_order_completed.html:17 -#: templates/email/build_order_required_stock.html:17 -#: templates/email/low_stock_notification.html:15 -#: templates/email/overdue_build_order.html:16 -#: templates/js/translated/barcode.js:577 templates/js/translated/bom.js:632 -#: templates/js/translated/bom.js:769 templates/js/translated/bom.js:905 -#: templates/js/translated/build.js:1002 templates/js/translated/build.js:1485 -#: templates/js/translated/build.js:1916 templates/js/translated/build.js:2334 -#: templates/js/translated/build.js:2507 templates/js/translated/company.js:348 -#: templates/js/translated/company.js:1116 -#: templates/js/translated/company.js:1271 -#: templates/js/translated/company.js:1559 templates/js/translated/index.js:109 -#: templates/js/translated/part.js:1950 templates/js/translated/part.js:2022 -#: templates/js/translated/part.js:2330 templates/js/translated/pricing.js:369 -#: templates/js/translated/purchase_order.js:751 -#: templates/js/translated/purchase_order.js:1367 -#: templates/js/translated/purchase_order.js:1918 -#: templates/js/translated/purchase_order.js:2077 -#: templates/js/translated/return_order.js:538 -#: templates/js/translated/return_order.js:708 -#: templates/js/translated/sales_order.js:300 -#: templates/js/translated/sales_order.js:1233 -#: templates/js/translated/sales_order.js:1634 -#: templates/js/translated/sales_order.js:1832 -#: templates/js/translated/stock.js:682 templates/js/translated/stock.js:848 -#: templates/js/translated/stock.js:1065 templates/js/translated/stock.js:2082 -#: templates/js/translated/stock.js:2941 templates/js/translated/stock.js:3174 -#: templates/js/translated/stock.js:3319 -msgid "Part" -msgstr "Bagian" - -#: build/models.py:275 +#: build/models.py:274 msgid "Select part to build" msgstr "Pilih bagian untuk diproduksi" -#: build/models.py:280 +#: build/models.py:279 msgid "Sales Order Reference" msgstr "Referensi Order Penjualan" -#: build/models.py:284 +#: build/models.py:283 msgid "SalesOrder to which this build is allocated" msgstr "Order penjualan yang teralokasikan ke pesanan ini" -#: build/models.py:289 build/serializers.py:1048 -#: templates/js/translated/build.js:1904 -#: templates/js/translated/sales_order.js:1221 +#: build/models.py:288 build/serializers.py:1092 +#: templates/js/translated/build.js:1907 +#: templates/js/translated/sales_order.js:1187 msgid "Source Location" msgstr "Lokasi Sumber" -#: build/models.py:293 +#: build/models.py:292 msgid "Select location to take stock from for this build (leave blank to take from any stock location)" msgstr "Pilih dari lokasi mana stok akan diambil untuk produksi ini (kosongkan untuk mengambil stok dari mana pun)" -#: build/models.py:298 +#: build/models.py:297 msgid "Destination Location" msgstr "Lokasi Tujuan" -#: build/models.py:302 +#: build/models.py:301 msgid "Select location where the completed items will be stored" msgstr "Pilih lokasi di mana item selesai akan disimpan" -#: build/models.py:306 +#: build/models.py:305 msgid "Build Quantity" msgstr "Jumlah Produksi" -#: build/models.py:309 +#: build/models.py:308 msgid "Number of stock items to build" msgstr "Jumlah item stok yang akan dibuat" -#: build/models.py:313 +#: build/models.py:312 msgid "Completed items" msgstr "Item selesai" -#: build/models.py:315 +#: build/models.py:314 msgid "Number of stock items which have been completed" msgstr "Jumlah stok item yang telah diselesaikan" -#: build/models.py:319 +#: build/models.py:318 msgid "Build Status" msgstr "Status pembuatan" -#: build/models.py:323 +#: build/models.py:322 msgid "Build status code" msgstr "Kode status pembuatan" -#: build/models.py:332 build/serializers.py:302 build/serializers.py:1198 -#: order/serializers.py:670 stock/models.py:859 stock/serializers.py:76 -#: stock/serializers.py:1562 templates/js/translated/purchase_order.js:1129 +#: build/models.py:331 build/serializers.py:349 build/serializers.py:1243 +#: order/serializers.py:755 stock/models.py:936 stock/serializers.py:77 +#: stock/serializers.py:1593 templates/js/translated/purchase_order.js:1112 #: templates/js/translated/stock.js:1199 msgid "Batch Code" msgstr "Kode Kelompok" -#: build/models.py:336 build/serializers.py:303 +#: build/models.py:335 build/serializers.py:350 msgid "Batch code for this build output" msgstr "Kode kelompok untuk hasil produksi ini" -#: build/models.py:339 order/models.py:315 order/serializers.py:126 -#: part/models.py:1229 part/templates/part/part_base.html:319 +#: build/models.py:338 order/models.py:322 order/serializers.py:157 +#: part/models.py:1290 part/templates/part/part_base.html:327 #: templates/js/translated/return_order.js:338 -#: templates/js/translated/sales_order.js:863 +#: templates/js/translated/sales_order.js:822 msgid "Creation Date" msgstr "Tanggal Pembuatan" -#: build/models.py:343 +#: build/models.py:342 msgid "Target completion date" msgstr "Target tanggal selesai" -#: build/models.py:344 +#: build/models.py:343 msgid "Target date for build completion. Build will be overdue after this date." msgstr "Target tanggal selesai produksi. Produksi akan menjadi terlambat setelah tanggal ini." -#: build/models.py:347 order/models.py:526 order/models.py:2180 -#: templates/js/translated/build.js:2419 +#: build/models.py:346 order/models.py:538 order/models.py:2219 +#: templates/js/translated/build.js:2422 msgid "Completion Date" msgstr "Tanggal selesai" -#: build/models.py:353 +#: build/models.py:352 msgid "completed by" msgstr "diselesaikan oleh" -#: build/models.py:361 templates/js/translated/build.js:2379 +#: build/models.py:360 templates/js/translated/build.js:2382 msgid "Issued by" msgstr "Diserahkan oleh" -#: build/models.py:362 +#: build/models.py:361 msgid "User who issued this build order" msgstr "Pengguna yang menyerahkan order ini" -#: build/models.py:370 build/templates/build/build_base.html:212 -#: build/templates/build/detail.html:122 common/models.py:165 order/api.py:142 -#: order/models.py:333 order/templates/order/order_base.html:222 -#: order/templates/order/return_order_base.html:191 -#: order/templates/order/sales_order_base.html:235 part/models.py:1246 -#: part/templates/part/part_base.html:399 +#: build/models.py:369 build/templates/build/build_base.html:213 +#: build/templates/build/detail.html:122 common/models.py:168 order/api.py:140 +#: order/models.py:340 order/templates/order/order_base.html:231 +#: order/templates/order/return_order_base.html:192 +#: order/templates/order/sales_order_base.html:236 part/models.py:1307 +#: part/templates/part/part_base.html:407 #: report/templates/report/inventree_build_order_report.html:158 #: templates/InvenTree/settings/settings_staff_js.html:150 -#: templates/js/translated/build.js:2391 -#: templates/js/translated/purchase_order.js:1833 +#: templates/js/translated/build.js:2394 +#: templates/js/translated/purchase_order.js:1817 #: templates/js/translated/return_order.js:358 #: templates/js/translated/table_filters.js:551 msgid "Responsible" msgstr "Penanggung Jawab" -#: build/models.py:371 +#: build/models.py:370 msgid "User or group responsible for this build order" msgstr "" -#: build/models.py:376 build/templates/build/detail.html:108 +#: build/models.py:375 build/templates/build/detail.html:108 #: company/templates/company/manufacturer_part.html:107 -#: company/templates/company/supplier_part.html:194 -#: order/templates/order/order_base.html:172 -#: order/templates/order/return_order_base.html:148 -#: order/templates/order/sales_order_base.html:187 -#: part/templates/part/part_base.html:392 stock/models.py:855 -#: stock/templates/stock/item_base.html:200 -#: templates/js/translated/company.js:1019 +#: company/templates/company/supplier_part.html:195 +#: order/templates/order/order_base.html:181 +#: order/templates/order/return_order_base.html:149 +#: order/templates/order/sales_order_base.html:188 +#: part/templates/part/part_base.html:400 stock/models.py:932 +#: stock/templates/stock/item_base.html:197 +#: templates/js/translated/company.js:1020 msgid "External Link" msgstr "Tautan eksternal" -#: build/models.py:377 common/models.py:3273 part/models.py:1058 -#: stock/models.py:855 +#: build/models.py:376 common/models.py:3334 part/models.py:1119 +#: stock/models.py:932 msgid "Link to external URL" msgstr "Tautan menuju URL eksternal" -#: build/models.py:381 +#: build/models.py:380 msgid "Build Priority" msgstr "" -#: build/models.py:384 +#: build/models.py:383 msgid "Priority of this build order" msgstr "" -#: build/models.py:391 common/models.py:135 common/models.py:149 -#: order/admin.py:18 order/api.py:128 order/models.py:297 +#: build/models.py:390 common/models.py:138 common/models.py:152 +#: order/admin.py:18 order/api.py:126 order/models.py:304 #: templates/InvenTree/settings/settings_staff_js.html:146 -#: templates/js/translated/build.js:2316 -#: templates/js/translated/purchase_order.js:1780 +#: templates/js/translated/build.js:2319 +#: templates/js/translated/purchase_order.js:1764 #: templates/js/translated/return_order.js:317 -#: templates/js/translated/sales_order.js:842 +#: templates/js/translated/sales_order.js:801 #: templates/js/translated/table_filters.js:47 #: templates/project_code_data.html:6 msgid "Project Code" msgstr "" -#: build/models.py:392 +#: build/models.py:391 msgid "Project code for this build order" msgstr "" -#: build/models.py:651 build/models.py:778 +#: build/models.py:651 build/models.py:779 msgid "Failed to offload task to complete build allocations" msgstr "" @@ -1110,633 +1129,642 @@ msgstr "" msgid "A build order has been completed" msgstr "" -#: build/models.py:967 build/models.py:1055 +#: build/models.py:858 build/serializers.py:393 +msgid "Serial numbers must be provided for trackable parts" +msgstr "" + +#: build/models.py:969 build/models.py:1058 msgid "No build output specified" msgstr "Tidak ada hasil produksi yang ditentukan" -#: build/models.py:970 +#: build/models.py:972 msgid "Build output is already completed" msgstr "Hasil produksi sudah selesai" -#: build/models.py:973 +#: build/models.py:975 msgid "Build output does not match Build Order" msgstr "Hasil produksi tidak sesuai dengan order produksi" -#: build/models.py:1059 build/serializers.py:235 build/serializers.py:284 -#: build/serializers.py:915 order/models.py:564 order/serializers.py:499 -#: order/serializers.py:665 part/serializers.py:1569 part/serializers.py:1999 -#: stock/models.py:700 stock/models.py:1520 stock/serializers.py:669 +#: build/models.py:1062 build/serializers.py:282 build/serializers.py:331 +#: build/serializers.py:959 order/models.py:586 order/serializers.py:584 +#: order/serializers.py:750 part/serializers.py:1627 part/serializers.py:2060 +#: stock/models.py:777 stock/models.py:1609 stock/serializers.py:696 msgid "Quantity must be greater than zero" msgstr "Jumlah harus lebih besar daripada nol" -#: build/models.py:1064 build/serializers.py:240 +#: build/models.py:1067 build/serializers.py:287 msgid "Quantity cannot be greater than the output quantity" msgstr "" -#: build/models.py:1124 build/serializers.py:563 +#: build/models.py:1127 build/serializers.py:607 #, python-brace-format msgid "Build output {serial} has not passed all required tests" msgstr "" -#: build/models.py:1465 +#: build/models.py:1482 msgid "Build Order Line Item" msgstr "" -#: build/models.py:1490 +#: build/models.py:1507 msgid "Build object" msgstr "" -#: build/models.py:1504 build/models.py:1760 build/serializers.py:222 -#: build/serializers.py:269 build/serializers.py:1295 -#: build/templates/build/build_base.html:110 -#: build/templates/build/detail.html:34 common/models.py:2579 -#: order/models.py:1356 order/models.py:2041 order/serializers.py:1460 +#: build/models.py:1521 build/models.py:1787 build/serializers.py:269 +#: build/serializers.py:316 build/serializers.py:1349 +#: build/templates/build/build_base.html:111 +#: build/templates/build/detail.html:34 common/models.py:2643 +#: order/models.py:1373 order/models.py:2074 order/serializers.py:1586 #: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:413 -#: part/forms.py:48 part/models.py:3284 part/models.py:4253 -#: part/templates/part/part_pricing.html:16 +#: part/forms.py:48 part/models.py:3335 part/models.py:4310 +#: part/serializers.py:265 part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_bill_of_materials_report.html:138 #: report/templates/report/inventree_build_order_report.html:113 #: report/templates/report/inventree_purchase_order_report.html:29 #: report/templates/report/inventree_sales_order_report.html:29 +#: report/templates/report/inventree_sales_order_shipment_report.html:47 +#: report/templates/report/inventree_sales_order_shipment_report.html:49 #: report/templates/report/inventree_stock_location_report.html:104 #: report/templates/report/inventree_test_report.html:90 -#: report/templates/report/inventree_test_report.html:169 stock/admin.py:159 -#: stock/serializers.py:127 stock/serializers.py:167 stock/serializers.py:660 -#: stock/templates/stock/item_base.html:287 -#: stock/templates/stock/item_base.html:295 -#: stock/templates/stock/item_base.html:342 +#: report/templates/report/inventree_test_report.html:169 stock/admin.py:160 +#: stock/serializers.py:128 stock/serializers.py:168 stock/serializers.py:687 +#: stock/templates/stock/item_base.html:284 +#: stock/templates/stock/item_base.html:292 +#: stock/templates/stock/item_base.html:339 #: templates/email/build_order_completed.html:18 #: templates/js/translated/barcode.js:579 templates/js/translated/bom.js:771 -#: templates/js/translated/bom.js:981 templates/js/translated/build.js:522 -#: templates/js/translated/build.js:737 templates/js/translated/build.js:1542 -#: templates/js/translated/build.js:1919 templates/js/translated/build.js:2529 -#: templates/js/translated/company.js:1818 -#: templates/js/translated/model_renderers.js:237 +#: templates/js/translated/bom.js:981 templates/js/translated/build.js:525 +#: templates/js/translated/build.js:740 templates/js/translated/build.js:1545 +#: templates/js/translated/build.js:1922 templates/js/translated/build.js:2536 +#: templates/js/translated/company.js:1819 +#: templates/js/translated/model_renderers.js:240 #: templates/js/translated/order.js:329 templates/js/translated/part.js:968 -#: templates/js/translated/part.js:1818 templates/js/translated/part.js:3360 +#: templates/js/translated/part.js:1818 templates/js/translated/part.js:3376 #: templates/js/translated/pricing.js:381 #: templates/js/translated/pricing.js:474 #: templates/js/translated/pricing.js:522 #: templates/js/translated/pricing.js:616 -#: templates/js/translated/purchase_order.js:754 -#: templates/js/translated/purchase_order.js:1922 -#: templates/js/translated/purchase_order.js:2141 -#: templates/js/translated/sales_order.js:317 -#: templates/js/translated/sales_order.js:1235 -#: templates/js/translated/sales_order.js:1554 -#: templates/js/translated/sales_order.js:1644 -#: templates/js/translated/sales_order.js:1734 -#: templates/js/translated/sales_order.js:1860 +#: templates/js/translated/purchase_order.js:737 +#: templates/js/translated/purchase_order.js:1906 +#: templates/js/translated/purchase_order.js:2125 +#: templates/js/translated/sales_order.js:1201 +#: templates/js/translated/sales_order.js:1520 +#: templates/js/translated/sales_order.js:1625 +#: templates/js/translated/sales_order.js:1715 +#: templates/js/translated/sales_order.js:1841 #: templates/js/translated/stock.js:570 templates/js/translated/stock.js:708 -#: templates/js/translated/stock.js:879 templates/js/translated/stock.js:3105 -#: templates/js/translated/stock.js:3188 +#: templates/js/translated/stock.js:879 templates/js/translated/stock.js:3106 +#: templates/js/translated/stock.js:3189 msgid "Quantity" msgstr "Jumlah" -#: build/models.py:1505 +#: build/models.py:1522 msgid "Required quantity for build order" msgstr "" -#: build/models.py:1585 +#: build/models.py:1602 msgid "Build item must specify a build output, as master part is marked as trackable" msgstr "Item produksi harus menentukan hasil produksi karena bagian utama telah ditandai sebagai dapat dilacak" -#: build/models.py:1594 +#: build/models.py:1611 #, python-brace-format msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgstr "" -#: build/models.py:1604 order/models.py:1992 +#: build/models.py:1628 order/models.py:2025 msgid "Stock item is over-allocated" msgstr "Item stok teralokasikan terlalu banyak" -#: build/models.py:1610 order/models.py:1995 +#: build/models.py:1634 order/models.py:2028 msgid "Allocation quantity must be greater than zero" msgstr "Jumlah yang dialokasikan harus lebih dari nol" -#: build/models.py:1616 +#: build/models.py:1640 msgid "Quantity must be 1 for serialized stock" msgstr "Jumlah harus 1 untuk stok dengan nomor seri" -#: build/models.py:1675 +#: build/models.py:1699 msgid "Selected stock item does not match BOM line" msgstr "" -#: build/models.py:1747 build/serializers.py:895 order/serializers.py:1297 -#: order/serializers.py:1318 stock/models.py:376 stock/serializers.py:93 -#: stock/serializers.py:763 stock/serializers.py:1281 stock/serializers.py:1393 -#: stock/templates/stock/item_base.html:10 -#: stock/templates/stock/item_base.html:23 -#: stock/templates/stock/item_base.html:194 -#: templates/js/translated/build.js:1918 -#: templates/js/translated/sales_order.js:301 -#: templates/js/translated/sales_order.js:1234 -#: templates/js/translated/sales_order.js:1535 -#: templates/js/translated/sales_order.js:1540 -#: templates/js/translated/sales_order.js:1641 -#: templates/js/translated/sales_order.js:1728 +#: build/models.py:1774 build/serializers.py:939 order/serializers.py:1423 +#: order/serializers.py:1444 +#: report/templates/report/inventree_sales_order_shipment_report.html:29 +#: stock/models.py:382 stock/serializers.py:94 stock/serializers.py:794 +#: stock/serializers.py:1312 stock/serializers.py:1424 +#: stock/templates/stock/item_base.html:11 +#: stock/templates/stock/item_base.html:24 +#: stock/templates/stock/item_base.html:191 +#: templates/js/translated/build.js:1921 +#: templates/js/translated/sales_order.js:1200 +#: templates/js/translated/sales_order.js:1501 +#: templates/js/translated/sales_order.js:1506 +#: templates/js/translated/sales_order.js:1622 +#: templates/js/translated/sales_order.js:1709 #: templates/js/translated/stock.js:683 templates/js/translated/stock.js:849 -#: templates/js/translated/stock.js:3061 +#: templates/js/translated/stock.js:3062 msgid "Stock Item" msgstr "Stok Item" -#: build/models.py:1748 +#: build/models.py:1775 msgid "Source stock item" msgstr "Sumber stok item" -#: build/models.py:1761 +#: build/models.py:1788 msgid "Stock quantity to allocate to build" msgstr "Jumlah stok yang dialokasikan ke produksi" -#: build/models.py:1769 +#: build/models.py:1796 msgid "Install into" msgstr "Pasang ke" -#: build/models.py:1770 +#: build/models.py:1797 msgid "Destination stock item" msgstr "Tujuan stok item" -#: build/serializers.py:91 +#: build/serializers.py:108 msgid "Build Level" msgstr "" -#: build/serializers.py:99 build/serializers.py:1190 build/serializers.py:1279 -#: part/admin.py:41 part/admin.py:408 part/models.py:4102 part/stocktake.py:219 -#: stock/admin.py:156 +#: build/serializers.py:116 build/serializers.py:1235 build/serializers.py:1331 +#: part/admin.py:41 part/admin.py:408 part/models.py:4160 part/stocktake.py:219 +#: stock/admin.py:157 msgid "Part Name" msgstr "" -#: build/serializers.py:111 +#: build/serializers.py:128 msgid "Project Code Label" msgstr "" -#: build/serializers.py:172 build/serializers.py:924 -#: templates/js/translated/build.js:1042 templates/js/translated/build.js:1495 +#: build/serializers.py:134 +msgid "Create Child Builds" +msgstr "" + +#: build/serializers.py:135 +msgid "Automatically generate child build orders" +msgstr "" + +#: build/serializers.py:219 build/serializers.py:968 +#: templates/js/translated/build.js:1045 templates/js/translated/build.js:1498 msgid "Build Output" msgstr "Hasil Produksi" -#: build/serializers.py:184 +#: build/serializers.py:231 msgid "Build output does not match the parent build" msgstr "Hasil produksi tidak sesuai dengan produksi induk" -#: build/serializers.py:188 +#: build/serializers.py:235 msgid "Output part does not match BuildOrder part" msgstr "Hasil bagian tidak sesuai dengan bagian dalam order produksi" -#: build/serializers.py:192 +#: build/serializers.py:239 msgid "This build output has already been completed" msgstr "Hasil produksi ini sudah diselesaikan" -#: build/serializers.py:203 +#: build/serializers.py:250 msgid "This build output is not fully allocated" msgstr "Hasil produksi tidak dialokasikan sepenuhnya" -#: build/serializers.py:223 build/serializers.py:270 +#: build/serializers.py:270 build/serializers.py:317 msgid "Enter quantity for build output" msgstr "Masukkan jumlah hasil pesanan" -#: build/serializers.py:291 +#: build/serializers.py:338 msgid "Integer quantity required for trackable parts" msgstr "Jumlah bagian yang dapat dilacak harus berupa angka bulat" -#: build/serializers.py:294 +#: build/serializers.py:341 msgid "Integer quantity required, as the bill of materials contains trackable parts" msgstr "Jumlah harus angka bulat karena terdapat bagian yang dapat dilacak dalam daftar barang" -#: build/serializers.py:309 order/serializers.py:678 order/serializers.py:1464 -#: stock/serializers.py:680 templates/js/translated/purchase_order.js:1154 +#: build/serializers.py:356 order/serializers.py:763 order/serializers.py:1590 +#: stock/serializers.py:707 templates/js/translated/purchase_order.js:1137 #: templates/js/translated/stock.js:373 templates/js/translated/stock.js:571 msgid "Serial Numbers" msgstr "Nomor Seri" -#: build/serializers.py:310 +#: build/serializers.py:357 msgid "Enter serial numbers for build outputs" msgstr "Masukkan nomor seri untuk hasil pesanan" -#: build/serializers.py:315 build/serializers.py:456 build/serializers.py:528 -#: order/serializers.py:654 order/serializers.py:778 order/serializers.py:1781 -#: part/serializers.py:1212 stock/serializers.py:102 stock/serializers.py:691 -#: stock/serializers.py:851 stock/serializers.py:977 stock/serializers.py:1425 -#: stock/serializers.py:1681 stock/templates/stock/item_base.html:394 +#: build/serializers.py:362 build/serializers.py:500 build/serializers.py:572 +#: order/serializers.py:739 order/serializers.py:880 order/serializers.py:1933 +#: part/serializers.py:1265 stock/serializers.py:103 stock/serializers.py:718 +#: stock/serializers.py:882 stock/serializers.py:1008 stock/serializers.py:1456 +#: stock/serializers.py:1712 stock/templates/stock/item_base.html:391 #: templates/js/translated/barcode.js:578 -#: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1032 -#: templates/js/translated/build.js:1174 templates/js/translated/build.js:2544 -#: templates/js/translated/purchase_order.js:1210 -#: templates/js/translated/purchase_order.js:1320 -#: templates/js/translated/sales_order.js:1547 -#: templates/js/translated/sales_order.js:1655 -#: templates/js/translated/sales_order.js:1663 -#: templates/js/translated/sales_order.js:1742 +#: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1035 +#: templates/js/translated/build.js:1177 templates/js/translated/build.js:2551 +#: templates/js/translated/purchase_order.js:1193 +#: templates/js/translated/purchase_order.js:1303 +#: templates/js/translated/sales_order.js:1513 +#: templates/js/translated/sales_order.js:1636 +#: templates/js/translated/sales_order.js:1644 +#: templates/js/translated/sales_order.js:1723 #: templates/js/translated/stock.js:684 templates/js/translated/stock.js:850 -#: templates/js/translated/stock.js:1067 templates/js/translated/stock.js:2286 -#: templates/js/translated/stock.js:2955 +#: templates/js/translated/stock.js:1067 templates/js/translated/stock.js:2287 +#: templates/js/translated/stock.js:2956 msgid "Location" msgstr "Lokasi" -#: build/serializers.py:316 +#: build/serializers.py:363 msgid "Stock location for build output" msgstr "" -#: build/serializers.py:330 +#: build/serializers.py:377 msgid "Auto Allocate Serial Numbers" msgstr "Alokasikan nomor seri secara otomatis" -#: build/serializers.py:331 +#: build/serializers.py:378 msgid "Automatically allocate required items with matching serial numbers" msgstr "Alokasikan item yang diperlukan dengan nomor seri yang sesuai secara otomatis" -#: build/serializers.py:346 -msgid "Serial numbers must be provided for trackable parts" -msgstr "" - -#: build/serializers.py:371 stock/api.py:1031 +#: build/serializers.py:415 order/serializers.py:858 stock/api.py:1017 +#: stock/models.py:1632 msgid "The following serial numbers already exist or are invalid" msgstr "Nomor-nomor seri berikut sudah ada atau tidak valid" -#: build/serializers.py:418 build/serializers.py:480 build/serializers.py:569 +#: build/serializers.py:462 build/serializers.py:524 build/serializers.py:613 msgid "A list of build outputs must be provided" msgstr "Daftar hasil pesanan harus disediakan" -#: build/serializers.py:457 +#: build/serializers.py:501 msgid "Stock location for scrapped outputs" msgstr "" -#: build/serializers.py:463 +#: build/serializers.py:507 msgid "Discard Allocations" msgstr "" -#: build/serializers.py:464 +#: build/serializers.py:508 msgid "Discard any stock allocations for scrapped outputs" msgstr "" -#: build/serializers.py:469 +#: build/serializers.py:513 msgid "Reason for scrapping build output(s)" msgstr "" -#: build/serializers.py:529 +#: build/serializers.py:573 msgid "Location for completed build outputs" msgstr "Lokasi hasil pesanan yang selesai" -#: build/serializers.py:535 build/templates/build/build_base.html:159 -#: build/templates/build/detail.html:62 order/models.py:476 -#: order/models.py:1002 order/models.py:2159 order/serializers.py:686 -#: stock/admin.py:164 stock/serializers.py:1028 stock/serializers.py:1569 -#: stock/templates/stock/item_base.html:427 -#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2363 -#: templates/js/translated/purchase_order.js:1371 -#: templates/js/translated/purchase_order.js:1792 +#: build/serializers.py:579 build/templates/build/build_base.html:160 +#: build/templates/build/detail.html:62 order/models.py:488 +#: order/models.py:1029 order/models.py:2198 order/serializers.py:771 +#: stock/admin.py:165 stock/serializers.py:581 stock/serializers.py:1059 +#: stock/serializers.py:1600 stock/templates/stock/item_base.html:424 +#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2366 +#: templates/js/translated/purchase_order.js:1354 +#: templates/js/translated/purchase_order.js:1776 #: templates/js/translated/return_order.js:330 -#: templates/js/translated/sales_order.js:855 -#: templates/js/translated/stock.js:2261 templates/js/translated/stock.js:3079 -#: templates/js/translated/stock.js:3204 +#: templates/js/translated/sales_order.js:814 +#: templates/js/translated/stock.js:2262 templates/js/translated/stock.js:3080 +#: templates/js/translated/stock.js:3205 msgid "Status" -msgstr "" +msgstr "Status" -#: build/serializers.py:541 +#: build/serializers.py:585 msgid "Accept Incomplete Allocation" msgstr "Terima Alokasi Tidak Lengkap" -#: build/serializers.py:542 +#: build/serializers.py:586 msgid "Complete outputs if stock has not been fully allocated" msgstr "" -#: build/serializers.py:654 +#: build/serializers.py:698 msgid "Consume Allocated Stock" msgstr "" -#: build/serializers.py:655 +#: build/serializers.py:699 msgid "Consume any stock which has already been allocated to this build" msgstr "" -#: build/serializers.py:661 +#: build/serializers.py:705 msgid "Remove Incomplete Outputs" msgstr "" -#: build/serializers.py:662 +#: build/serializers.py:706 msgid "Delete any build outputs which have not been completed" msgstr "" -#: build/serializers.py:689 +#: build/serializers.py:733 msgid "Not permitted" -msgstr "" +msgstr "Tidak diizinkan" -#: build/serializers.py:690 +#: build/serializers.py:734 msgid "Accept as consumed by this build order" msgstr "" -#: build/serializers.py:691 +#: build/serializers.py:735 msgid "Deallocate before completing this build order" msgstr "" -#: build/serializers.py:721 +#: build/serializers.py:765 msgid "Overallocated Stock" msgstr "" -#: build/serializers.py:723 +#: build/serializers.py:767 msgid "How do you want to handle extra stock items assigned to the build order" msgstr "" -#: build/serializers.py:733 +#: build/serializers.py:777 msgid "Some stock items have been overallocated" msgstr "" -#: build/serializers.py:738 +#: build/serializers.py:782 msgid "Accept Unallocated" msgstr "Terima Tidak Teralokasikan" -#: build/serializers.py:739 +#: build/serializers.py:783 msgid "Accept that stock items have not been fully allocated to this build order" msgstr "Terima bahwa stok item tidak teralokasikan sepenuhnya ke pesanan ini" -#: build/serializers.py:749 templates/js/translated/build.js:316 +#: build/serializers.py:793 templates/js/translated/build.js:319 msgid "Required stock has not been fully allocated" msgstr "Stok yang diperlukan belum teralokasikan sepenuhnya" -#: build/serializers.py:754 order/serializers.py:345 order/serializers.py:1365 +#: build/serializers.py:798 order/serializers.py:430 order/serializers.py:1491 msgid "Accept Incomplete" msgstr "Terima Tidak Selesai" -#: build/serializers.py:755 +#: build/serializers.py:799 msgid "Accept that the required number of build outputs have not been completed" msgstr "Terima bahwa jumlah hasil produksi yang diperlukan belum selesai" -#: build/serializers.py:765 templates/js/translated/build.js:320 +#: build/serializers.py:809 templates/js/translated/build.js:323 msgid "Required build quantity has not been completed" msgstr "Jumlah produksi yang diperlukan masih belum cukup" -#: build/serializers.py:774 +#: build/serializers.py:818 msgid "Build order has open child build orders" msgstr "" -#: build/serializers.py:777 +#: build/serializers.py:821 msgid "Build order must be in production state" msgstr "" -#: build/serializers.py:780 templates/js/translated/build.js:304 +#: build/serializers.py:824 templates/js/translated/build.js:307 msgid "Build order has incomplete outputs" msgstr "Order memiliki hasil produksi yang belum dilengkapi" -#: build/serializers.py:818 +#: build/serializers.py:862 msgid "Build Line" msgstr "" -#: build/serializers.py:828 +#: build/serializers.py:872 msgid "Build output" msgstr "Hasil produksi" -#: build/serializers.py:836 +#: build/serializers.py:880 msgid "Build output must point to the same build" msgstr "Hasil pesanan harus mengarah ke pesanan yang sama" -#: build/serializers.py:872 +#: build/serializers.py:916 msgid "Build Line Item" msgstr "" -#: build/serializers.py:886 +#: build/serializers.py:930 msgid "bom_item.part must point to the same part as the build order" msgstr "bom_item.part harus mengarah ke bagian yang sesuai dengan order produksi" -#: build/serializers.py:901 stock/serializers.py:1294 +#: build/serializers.py:945 stock/serializers.py:1325 msgid "Item must be in stock" msgstr "Item harus tersedia dalam stok" -#: build/serializers.py:949 order/serializers.py:1351 +#: build/serializers.py:993 order/serializers.py:1477 #, python-brace-format msgid "Available quantity ({q}) exceeded" msgstr "Jumlah tersedia ({q}) terlampaui" -#: build/serializers.py:955 +#: build/serializers.py:999 msgid "Build output must be specified for allocation of tracked parts" msgstr "Hasil produksi harus ditentukan untuk mengalokasikan bagian yang terlacak" -#: build/serializers.py:962 +#: build/serializers.py:1006 msgid "Build output cannot be specified for allocation of untracked parts" msgstr "Hasil produksi tidak dapat ditentukan untuk alokasi barang yang tidak terlacak" -#: build/serializers.py:986 order/serializers.py:1610 +#: build/serializers.py:1030 order/serializers.py:1750 msgid "Allocation items must be provided" msgstr "Item yang dialokasikan harus disediakan" -#: build/serializers.py:1049 +#: build/serializers.py:1093 msgid "Stock location where parts are to be sourced (leave blank to take from any location)" msgstr "Lokasi stok, dari mana bahan/bagian akan diambilkan (kosongkan untuk mengambil dari lokasi mana pun)" -#: build/serializers.py:1057 +#: build/serializers.py:1101 msgid "Exclude Location" msgstr "Lokasi tidak termasuk" -#: build/serializers.py:1058 +#: build/serializers.py:1102 msgid "Exclude stock items from this selected location" msgstr "Jangan ambil stok item dari lokasi yang dipilih" -#: build/serializers.py:1063 +#: build/serializers.py:1107 msgid "Interchangeable Stock" msgstr "Stok bergantian" -#: build/serializers.py:1064 +#: build/serializers.py:1108 msgid "Stock items in multiple locations can be used interchangeably" msgstr "Item stok di beberapa lokasi dapat digunakan secara bergantian" -#: build/serializers.py:1069 +#: build/serializers.py:1113 msgid "Substitute Stock" msgstr "Stok pengganti" -#: build/serializers.py:1070 +#: build/serializers.py:1114 msgid "Allow allocation of substitute parts" msgstr "Izinkan alokasi bagian pengganti" -#: build/serializers.py:1075 +#: build/serializers.py:1119 msgid "Optional Items" msgstr "" -#: build/serializers.py:1076 +#: build/serializers.py:1120 msgid "Allocate optional BOM items to build order" msgstr "" -#: build/serializers.py:1098 +#: build/serializers.py:1143 msgid "Failed to start auto-allocation task" msgstr "" -#: build/serializers.py:1181 +#: build/serializers.py:1226 stock/serializers.py:585 msgid "Supplier Part Number" msgstr "" -#: build/serializers.py:1182 company/models.py:506 +#: build/serializers.py:1227 company/models.py:503 stock/serializers.py:591 msgid "Manufacturer Part Number" msgstr "" -#: build/serializers.py:1183 stock/admin.py:53 stock/admin.py:175 -#: stock/serializers.py:457 +#: build/serializers.py:1228 stock/admin.py:53 stock/admin.py:176 +#: stock/serializers.py:467 msgid "Location Name" -msgstr "" +msgstr "Nama Lokasi" -#: build/serializers.py:1184 +#: build/serializers.py:1229 build/serializers.py:1327 msgid "Build Reference" msgstr "" -#: build/serializers.py:1185 +#: build/serializers.py:1230 msgid "BOM Reference" msgstr "" -#: build/serializers.py:1186 company/models.py:852 -#: company/templates/company/supplier_part.html:160 order/serializers.py:690 -#: stock/admin.py:228 stock/models.py:818 stock/serializers.py:1579 -#: stock/templates/stock/item_base.html:240 -#: templates/js/translated/company.js:1646 -#: templates/js/translated/purchase_order.js:1169 -#: templates/js/translated/purchase_order.js:1332 +#: build/serializers.py:1231 company/models.py:849 +#: company/templates/company/supplier_part.html:161 order/serializers.py:775 +#: stock/admin.py:229 stock/models.py:895 stock/serializers.py:1610 +#: stock/templates/stock/item_base.html:237 +#: templates/js/translated/company.js:1647 +#: templates/js/translated/purchase_order.js:1152 +#: templates/js/translated/purchase_order.js:1315 #: templates/js/translated/stock.js:1214 templates/js/translated/stock.js:1246 -#: templates/js/translated/stock.js:2509 +#: templates/js/translated/stock.js:2510 msgid "Packaging" msgstr "" -#: build/serializers.py:1189 part/admin.py:39 part/admin.py:398 -#: part/models.py:4101 part/stocktake.py:218 stock/admin.py:152 +#: build/serializers.py:1234 part/admin.py:39 part/admin.py:398 +#: part/models.py:4159 part/stocktake.py:218 stock/admin.py:153 msgid "Part ID" msgstr "" -#: build/serializers.py:1191 build/serializers.py:1280 part/admin.py:402 -#: part/models.py:4103 +#: build/serializers.py:1236 build/serializers.py:1332 part/admin.py:402 +#: part/models.py:4161 msgid "Part IPN" msgstr "" -#: build/serializers.py:1192 build/serializers.py:1282 part/admin.py:45 +#: build/serializers.py:1237 build/serializers.py:1334 part/admin.py:45 #: part/stocktake.py:220 msgid "Part Description" msgstr "" -#: build/serializers.py:1195 +#: build/serializers.py:1240 msgid "BOM Part ID" msgstr "" -#: build/serializers.py:1196 +#: build/serializers.py:1241 msgid "BOM Part Name" msgstr "" -#: build/serializers.py:1199 +#: build/serializers.py:1244 #: report/templates/report/inventree_return_order_report.html:25 -#: report/templates/report/inventree_test_report.html:88 stock/models.py:845 -#: stock/serializers.py:151 stock/templates/stock/item_base.html:311 -#: templates/js/translated/build.js:520 templates/js/translated/build.js:1540 -#: templates/js/translated/build.js:2527 -#: templates/js/translated/model_renderers.js:231 +#: report/templates/report/inventree_sales_order_shipment_report.html:45 +#: report/templates/report/inventree_test_report.html:88 stock/models.py:922 +#: stock/serializers.py:152 stock/templates/stock/item_base.html:308 +#: templates/js/translated/build.js:523 templates/js/translated/build.js:1543 +#: templates/js/translated/build.js:2534 +#: templates/js/translated/model_renderers.js:234 #: templates/js/translated/return_order.js:539 #: templates/js/translated/return_order.js:722 -#: templates/js/translated/sales_order.js:315 -#: templates/js/translated/sales_order.js:1647 -#: templates/js/translated/sales_order.js:1732 +#: templates/js/translated/sales_order.js:1628 +#: templates/js/translated/sales_order.js:1713 #: templates/js/translated/stock.js:602 msgid "Serial Number" -msgstr "" +msgstr "Nomor Seri" -#: build/serializers.py:1212 stock/serializers.py:593 -#: templates/js/translated/build.js:1017 templates/js/translated/build.js:1164 -#: templates/js/translated/build.js:2516 +#: build/serializers.py:1257 stock/serializers.py:620 +#: templates/js/translated/build.js:1020 templates/js/translated/build.js:1167 +#: templates/js/translated/build.js:2523 msgid "Allocated Quantity" msgstr "" -#: build/serializers.py:1213 stock/templates/stock/item_base.html:340 +#: build/serializers.py:1258 stock/templates/stock/item_base.html:337 msgid "Available Quantity" msgstr "" -#: build/serializers.py:1283 +#: build/serializers.py:1335 msgid "Part Category ID" msgstr "" -#: build/serializers.py:1284 +#: build/serializers.py:1336 msgid "Part Category Name" msgstr "" -#: build/serializers.py:1291 common/models.py:1513 part/admin.py:113 -#: part/models.py:1166 templates/js/translated/table_filters.js:150 +#: build/serializers.py:1345 common/models.py:1582 part/admin.py:113 +#: part/models.py:1227 templates/js/translated/build.js:2738 +#: templates/js/translated/table_filters.js:150 #: templates/js/translated/table_filters.js:230 #: templates/js/translated/table_filters.js:783 msgid "Trackable" msgstr "" -#: build/serializers.py:1292 +#: build/serializers.py:1346 msgid "Inherited" msgstr "" -#: build/serializers.py:1293 part/models.py:4313 +#: build/serializers.py:1347 part/models.py:4370 #: part/templates/part/upload_bom.html:56 templates/js/translated/bom.js:1046 -#: templates/js/translated/build.js:2711 +#: templates/js/translated/build.js:2720 msgid "Allow Variants" msgstr "" -#: build/serializers.py:1297 part/models.py:4110 part/models.py:4584 +#: build/serializers.py:1351 part/models.py:4168 part/models.py:4646 #: stock/api.py:794 msgid "BOM Item" msgstr "Item tagihan material" -#: build/serializers.py:1306 build/templates/build/detail.html:236 +#: build/serializers.py:1370 build/templates/build/detail.html:236 #: build/templates/build/sidebar.html:16 templates/js/translated/index.js:130 msgid "Allocated Stock" msgstr "" -#: build/serializers.py:1311 order/serializers.py:1175 part/admin.py:132 -#: part/bom.py:181 part/serializers.py:899 part/serializers.py:1602 -#: part/templates/part/part_base.html:210 templates/js/translated/bom.js:1208 -#: templates/js/translated/build.js:2804 templates/js/translated/part.js:712 +#: build/serializers.py:1375 order/serializers.py:1209 part/admin.py:132 +#: part/bom.py:186 part/serializers.py:951 part/serializers.py:1660 +#: part/templates/part/part_base.html:211 templates/js/translated/bom.js:1208 +#: templates/js/translated/build.js:2822 templates/js/translated/part.js:712 #: templates/js/translated/part.js:2155 #: templates/js/translated/table_filters.js:177 msgid "On Order" msgstr "" -#: build/serializers.py:1316 order/serializers.py:1176 part/serializers.py:1604 -#: templates/js/translated/build.js:2808 +#: build/serializers.py:1380 order/serializers.py:1210 part/serializers.py:1662 +#: templates/js/translated/build.js:2826 #: templates/js/translated/table_filters.js:367 msgid "In Production" msgstr "" -#: build/serializers.py:1321 part/bom.py:180 part/serializers.py:1629 -#: part/templates/part/part_base.html:192 -#: templates/js/translated/sales_order.js:1929 -msgid "Available Stock" -msgstr "" - -#: build/serializers.py:1325 -msgid "Available Substitute Stock" -msgstr "" - -#: build/serializers.py:1326 -msgid "Available Variant Stock" -msgstr "" - -#: build/serializers.py:1327 -msgid "Total Available Stock" -msgstr "" - -#: build/serializers.py:1328 part/serializers.py:906 +#: build/serializers.py:1384 part/serializers.py:958 msgid "External Stock" msgstr "" -#: build/status_codes.py:11 generic/states/tests.py:17 order/status_codes.py:12 -#: order/status_codes.py:42 order/status_codes.py:74 order/status_codes.py:98 +#: build/serializers.py:1385 part/bom.py:185 part/serializers.py:1687 +#: part/templates/part/part_base.html:193 +#: templates/js/translated/sales_order.js:1910 +msgid "Available Stock" +msgstr "" + +#: build/serializers.py:1386 +msgid "Available Substitute Stock" +msgstr "" + +#: build/serializers.py:1387 +msgid "Available Variant Stock" +msgstr "" + +#: build/status_codes.py:11 generic/states/tests.py:21 +#: generic/states/tests.py:131 order/status_codes.py:12 +#: order/status_codes.py:44 order/status_codes.py:76 order/status_codes.py:102 #: templates/js/translated/table_filters.js:601 msgid "Pending" -msgstr "" +msgstr "Tertunda" #: build/status_codes.py:12 msgid "Production" msgstr "Produksi" -#: build/status_codes.py:13 order/status_codes.py:14 order/status_codes.py:49 -#: order/status_codes.py:79 +#: build/status_codes.py:13 order/status_codes.py:14 order/status_codes.py:51 +#: order/status_codes.py:81 msgid "On Hold" msgstr "" -#: build/status_codes.py:14 order/status_codes.py:16 order/status_codes.py:51 -#: order/status_codes.py:82 +#: build/status_codes.py:14 order/status_codes.py:16 order/status_codes.py:53 +#: order/status_codes.py:84 msgid "Cancelled" msgstr "Dibatalkan" -#: build/status_codes.py:15 generic/states/tests.py:19 importer/models.py:509 -#: importer/status_codes.py:19 order/status_codes.py:15 -#: order/status_codes.py:50 order/status_codes.py:81 -#: order/templates/order/order_base.html:163 -#: order/templates/order/sales_order_base.html:168 report/models.py:443 +#: build/status_codes.py:15 generic/states/tests.py:23 importer/models.py:518 +#: importer/status_codes.py:27 order/status_codes.py:15 +#: order/status_codes.py:52 order/status_codes.py:83 +#: order/templates/order/order_base.html:172 +#: order/templates/order/sales_order_base.html:169 report/models.py:451 msgid "Complete" msgstr "Selesai" @@ -1744,165 +1772,162 @@ msgstr "Selesai" msgid "Stock required for build order" msgstr "Stok dibutuhkan untuk order produksi" -#: build/tasks.py:201 +#: build/tasks.py:260 msgid "Overdue Build Order" msgstr "" -#: build/tasks.py:206 +#: build/tasks.py:265 #, python-brace-format msgid "Build order {bo} is now overdue" msgstr "" -#: build/templates/build/build_base.html:18 +#: build/templates/build/build_base.html:19 msgid "Part thumbnail" msgstr "" -#: build/templates/build/build_base.html:38 -#: company/templates/company/supplier_part.html:35 -#: order/templates/order/order_base.html:29 -#: order/templates/order/return_order_base.html:38 -#: order/templates/order/sales_order_base.html:38 -#: part/templates/part/part_base.html:41 -#: stock/templates/stock/item_base.html:40 -#: stock/templates/stock/location.html:52 +#: build/templates/build/build_base.html:39 +#: company/templates/company/supplier_part.html:36 +#: order/templates/order/order_base.html:30 +#: order/templates/order/return_order_base.html:39 +#: order/templates/order/sales_order_base.html:39 +#: part/templates/part/part_base.html:42 +#: stock/templates/stock/item_base.html:41 +#: stock/templates/stock/location.html:53 #: templates/js/translated/filters.js:338 msgid "Barcode actions" msgstr "" -#: build/templates/build/build_base.html:42 -#: company/templates/company/supplier_part.html:39 -#: order/templates/order/order_base.html:33 -#: order/templates/order/return_order_base.html:42 -#: order/templates/order/sales_order_base.html:42 -#: part/templates/part/part_base.html:44 -#: stock/templates/stock/item_base.html:44 -#: stock/templates/stock/location.html:54 templates/qr_button.html:1 +#: build/templates/build/build_base.html:43 +#: company/templates/company/supplier_part.html:40 +#: order/templates/order/order_base.html:34 +#: order/templates/order/return_order_base.html:43 +#: order/templates/order/sales_order_base.html:43 +#: part/templates/part/part_base.html:45 +#: stock/templates/stock/item_base.html:45 +#: stock/templates/stock/location.html:55 templates/qr_button.html:1 msgid "Show QR Code" msgstr "Tampilkan kode QR" -#: build/templates/build/build_base.html:45 -#: company/templates/company/supplier_part.html:41 -#: order/templates/order/order_base.html:36 -#: order/templates/order/return_order_base.html:45 -#: order/templates/order/sales_order_base.html:45 -#: part/templates/part/part_base.html:47 -#: stock/templates/stock/item_base.html:47 -#: stock/templates/stock/location.html:56 +#: build/templates/build/build_base.html:46 +#: company/templates/company/supplier_part.html:42 +#: order/templates/order/order_base.html:37 +#: order/templates/order/return_order_base.html:46 +#: order/templates/order/sales_order_base.html:46 +#: part/templates/part/part_base.html:48 +#: stock/templates/stock/item_base.html:48 +#: stock/templates/stock/location.html:57 #: templates/js/translated/barcode.js:527 #: templates/js/translated/barcode.js:532 msgid "Unlink Barcode" msgstr "" -#: build/templates/build/build_base.html:47 -#: company/templates/company/supplier_part.html:43 -#: order/templates/order/order_base.html:38 -#: order/templates/order/return_order_base.html:47 -#: order/templates/order/sales_order_base.html:47 -#: part/templates/part/part_base.html:49 -#: stock/templates/stock/item_base.html:49 -#: stock/templates/stock/location.html:58 +#: build/templates/build/build_base.html:48 +#: company/templates/company/supplier_part.html:44 +#: order/templates/order/order_base.html:39 +#: order/templates/order/return_order_base.html:48 +#: order/templates/order/sales_order_base.html:48 +#: part/templates/part/part_base.html:50 +#: stock/templates/stock/item_base.html:50 +#: stock/templates/stock/location.html:59 msgid "Link Barcode" msgstr "" -#: build/templates/build/build_base.html:56 -#: order/templates/order/order_base.html:46 -#: order/templates/order/return_order_base.html:55 -#: order/templates/order/sales_order_base.html:55 +#: build/templates/build/build_base.html:57 +#: order/templates/order/order_base.html:47 +#: order/templates/order/return_order_base.html:56 +#: order/templates/order/sales_order_base.html:56 msgid "Print actions" msgstr "Cetak aksi" -#: build/templates/build/build_base.html:60 +#: build/templates/build/build_base.html:61 msgid "Print build order report" msgstr "Cetak laporan order produksi" -#: build/templates/build/build_base.html:67 +#: build/templates/build/build_base.html:68 msgid "Build actions" msgstr "Aksi produksi" -#: build/templates/build/build_base.html:71 +#: build/templates/build/build_base.html:72 msgid "Edit Build" msgstr "Ubah Produksi" -#: build/templates/build/build_base.html:73 +#: build/templates/build/build_base.html:74 msgid "Duplicate Build" msgstr "" -#: build/templates/build/build_base.html:76 +#: build/templates/build/build_base.html:77 msgid "Hold Build" msgstr "" -#: build/templates/build/build_base.html:79 +#: build/templates/build/build_base.html:80 msgid "Cancel Build" msgstr "Batalkan Produksi" -#: build/templates/build/build_base.html:82 +#: build/templates/build/build_base.html:83 msgid "Delete Build" msgstr "Hapus Produksi" -#: build/templates/build/build_base.html:87 -msgid "Isueue Build" -msgstr "" - #: build/templates/build/build_base.html:88 +#: build/templates/build/build_base.html:89 msgid "Issue Build" msgstr "" -#: build/templates/build/build_base.html:91 #: build/templates/build/build_base.html:92 +#: build/templates/build/build_base.html:93 msgid "Complete Build" msgstr "Selesaikan Produksi" -#: build/templates/build/build_base.html:115 +#: build/templates/build/build_base.html:116 msgid "Build Description" msgstr "Deskripsi Produksi" -#: build/templates/build/build_base.html:125 +#: build/templates/build/build_base.html:126 msgid "No build outputs have been created for this build order" msgstr "Tidak ada hasil pesanan yang dibuat oleh pesanan ini" -#: build/templates/build/build_base.html:132 +#: build/templates/build/build_base.html:133 msgid "Build Order is ready to mark as completed" msgstr "" -#: build/templates/build/build_base.html:137 +#: build/templates/build/build_base.html:138 msgid "Build Order cannot be completed as outstanding outputs remain" msgstr "" -#: build/templates/build/build_base.html:142 +#: build/templates/build/build_base.html:143 msgid "Required build quantity has not yet been completed" msgstr "" -#: build/templates/build/build_base.html:147 +#: build/templates/build/build_base.html:148 msgid "Stock has not been fully allocated to this Build Order" msgstr "" -#: build/templates/build/build_base.html:168 -#: build/templates/build/detail.html:138 order/models.py:308 -#: order/models.py:1391 order/serializers.py:174 -#: order/templates/order/order_base.html:191 -#: order/templates/order/return_order_base.html:167 -#: order/templates/order/sales_order_base.html:199 +#: build/templates/build/build_base.html:169 +#: build/templates/build/detail.html:138 order/models.py:315 +#: order/models.py:1408 order/serializers.py:254 +#: order/templates/order/order_base.html:200 +#: order/templates/order/return_order_base.html:168 +#: order/templates/order/sales_order_base.html:200 #: report/templates/report/inventree_build_order_report.html:125 -#: templates/js/translated/build.js:2411 templates/js/translated/part.js:1837 -#: templates/js/translated/purchase_order.js:1809 -#: templates/js/translated/purchase_order.js:2217 +#: templates/js/translated/build.js:2414 templates/js/translated/part.js:1837 +#: templates/js/translated/purchase_order.js:1793 +#: templates/js/translated/purchase_order.js:2201 #: templates/js/translated/return_order.js:346 #: templates/js/translated/return_order.js:749 -#: templates/js/translated/sales_order.js:871 -#: templates/js/translated/sales_order.js:1903 +#: templates/js/translated/sales_order.js:830 +#: templates/js/translated/sales_order.js:1884 msgid "Target Date" msgstr "" -#: build/templates/build/build_base.html:173 +#: build/templates/build/build_base.html:174 #, python-format msgid "This build was due on %(target)s" msgstr "" -#: build/templates/build/build_base.html:173 -#: build/templates/build/build_base.html:230 -#: order/templates/order/order_base.html:127 -#: order/templates/order/return_order_base.html:120 -#: order/templates/order/sales_order_base.html:129 +#: build/templates/build/build_base.html:174 +#: build/templates/build/build_base.html:231 +#: order/templates/order/order_base.html:128 +#: order/templates/order/return_order_base.html:121 +#: order/templates/order/sales_order_base.html:130 #: templates/js/translated/table_filters.js:97 #: templates/js/translated/table_filters.js:545 #: templates/js/translated/table_filters.js:629 @@ -1910,49 +1935,50 @@ msgstr "" msgid "Overdue" msgstr "" -#: build/templates/build/build_base.html:185 +#: build/templates/build/build_base.html:186 #: build/templates/build/detail.html:67 build/templates/build/sidebar.html:13 msgid "Completed Outputs" msgstr "" -#: build/templates/build/build_base.html:198 -#: build/templates/build/detail.html:101 order/api.py:1406 order/models.py:892 -#: order/models.py:1650 order/models.py:1765 order/models.py:1924 -#: order/templates/order/sales_order_base.html:9 -#: order/templates/order/sales_order_base.html:28 +#: build/templates/build/build_base.html:199 +#: build/templates/build/detail.html:101 order/api.py:1528 order/models.py:914 +#: order/models.py:1666 order/models.py:1794 order/models.py:1957 +#: order/templates/order/sales_order_base.html:10 +#: order/templates/order/sales_order_base.html:29 #: report/templates/report/inventree_build_order_report.html:135 #: report/templates/report/inventree_sales_order_report.html:14 -#: stock/templates/stock/item_base.html:369 +#: report/templates/report/inventree_sales_order_shipment_report.html:15 +#: stock/templates/stock/item_base.html:366 #: templates/email/overdue_sales_order.html:15 -#: templates/js/translated/pricing.js:929 -#: templates/js/translated/sales_order.js:805 -#: templates/js/translated/sales_order.js:1028 -#: templates/js/translated/stock.js:3008 +#: templates/js/translated/pricing.js:927 +#: templates/js/translated/sales_order.js:764 +#: templates/js/translated/sales_order.js:1001 +#: templates/js/translated/stock.js:3009 msgid "Sales Order" msgstr "" -#: build/templates/build/build_base.html:219 -#: build/templates/build/detail.html:94 templates/js/translated/build.js:2328 +#: build/templates/build/build_base.html:220 +#: build/templates/build/detail.html:94 templates/js/translated/build.js:2331 msgid "Priority" -msgstr "" +msgstr "Prioritas" -#: build/templates/build/build_base.html:267 +#: build/templates/build/build_base.html:268 msgid "Issue Build Order" msgstr "" -#: build/templates/build/build_base.html:271 +#: build/templates/build/build_base.html:272 msgid "Issue this Build Order?" msgstr "" -#: build/templates/build/build_base.html:302 +#: build/templates/build/build_base.html:303 msgid "Delete Build Order" msgstr "" -#: build/templates/build/build_base.html:312 +#: build/templates/build/build_base.html:313 msgid "Build Order QR Code" msgstr "" -#: build/templates/build/build_base.html:324 +#: build/templates/build/build_base.html:325 msgid "Link Barcode to Build Order" msgstr "" @@ -1968,8 +1994,9 @@ msgstr "" msgid "Stock can be taken from any available location." msgstr "" -#: build/templates/build/detail.html:49 order/models.py:1532 -#: templates/js/translated/purchase_order.js:2259 +#: build/templates/build/detail.html:49 order/models.py:548 +#: order/models.py:1548 order/templates/order/order_base.html:135 +#: templates/js/translated/purchase_order.js:2243 msgid "Destination" msgstr "" @@ -1981,35 +2008,36 @@ msgstr "" msgid "Allocated Parts" msgstr "" -#: build/templates/build/detail.html:80 stock/admin.py:162 -#: stock/templates/stock/item_base.html:162 -#: templates/js/translated/build.js:1553 -#: templates/js/translated/model_renderers.js:242 -#: templates/js/translated/purchase_order.js:1326 +#: build/templates/build/detail.html:80 +#: report/templates/report/inventree_sales_order_shipment_report.html:47 +#: stock/admin.py:163 stock/templates/stock/item_base.html:159 +#: templates/js/translated/build.js:1556 +#: templates/js/translated/model_renderers.js:245 +#: templates/js/translated/purchase_order.js:1309 #: templates/js/translated/stock.js:1139 templates/js/translated/stock.js:1240 -#: templates/js/translated/stock.js:2275 templates/js/translated/stock.js:3211 +#: templates/js/translated/stock.js:2276 templates/js/translated/stock.js:3212 #: templates/js/translated/table_filters.js:320 #: templates/js/translated/table_filters.js:411 msgid "Batch" msgstr "" #: build/templates/build/detail.html:133 -#: order/templates/order/order_base.html:178 -#: order/templates/order/return_order_base.html:154 -#: order/templates/order/sales_order_base.html:193 -#: templates/js/translated/build.js:2371 +#: order/templates/order/order_base.html:187 +#: order/templates/order/return_order_base.html:155 +#: order/templates/order/sales_order_base.html:194 +#: templates/js/translated/build.js:2374 msgid "Created" -msgstr "" +msgstr "Terbuat" #: build/templates/build/detail.html:144 msgid "No target date set" msgstr "" -#: build/templates/build/detail.html:149 -#: order/templates/order/sales_order_base.html:209 +#: build/templates/build/detail.html:149 order/api.py:794 +#: order/templates/order/sales_order_base.html:210 #: templates/js/translated/table_filters.js:692 msgid "Completed" -msgstr "" +msgstr "Selesai" #: build/templates/build/detail.html:153 msgid "Build not complete" @@ -2052,7 +2080,7 @@ msgid "Order required parts" msgstr "" #: build/templates/build/detail.html:192 -#: templates/js/translated/purchase_order.js:795 +#: templates/js/translated/purchase_order.js:778 msgid "Order Parts" msgstr "" @@ -2120,7 +2148,7 @@ msgstr "" msgid "Build Order Details" msgstr "" -#: build/templates/build/sidebar.html:8 order/serializers.py:82 +#: build/templates/build/sidebar.html:8 order/serializers.py:113 #: order/templates/order/po_sidebar.html:5 #: order/templates/order/return_order_detail.html:18 #: order/templates/order/so_sidebar.html:5 @@ -2139,43 +2167,38 @@ msgstr "" msgid "Test Statistics" msgstr "" -#: common/api.py:693 +#: common/api.py:725 msgid "Is Link" msgstr "" -#: common/api.py:701 +#: common/api.py:733 msgid "Is File" msgstr "" -#: common/api.py:744 +#: common/api.py:776 msgid "User does not have permission to delete these attachments" msgstr "" -#: common/api.py:761 +#: common/api.py:793 msgid "User does not have permission to delete this attachment" msgstr "" -#: common/currency.py:132 +#: common/currency.py:134 msgid "Invalid currency code" msgstr "" -#: common/currency.py:134 +#: common/currency.py:136 msgid "Duplicate currency code" msgstr "" -#: common/currency.py:139 +#: common/currency.py:141 msgid "No valid currency codes provided" msgstr "" -#: common/currency.py:156 +#: common/currency.py:158 msgid "No plugin" msgstr "" -#: common/files.py:63 -#, python-brace-format -msgid "Unsupported file format: {fmt}" -msgstr "" - #: common/files.py:65 msgid "Error reading file (invalid encoding)" msgstr "" @@ -2192,1883 +2215,2039 @@ msgstr "" msgid "Error reading file (data could be corrupted)" msgstr "" -#: common/forms.py:12 +#: common/forms.py:12 common/forms.py:25 msgid "File" -msgstr "" +msgstr "Berkas" -#: common/forms.py:12 +#: common/forms.py:12 common/forms.py:26 msgid "Select file to upload" msgstr "" -#: common/forms.py:25 -msgid "{name.title()} File" -msgstr "" - -#: common/forms.py:26 -#, python-brace-format -msgid "Select {name} file to upload" -msgstr "" - -#: common/models.py:86 +#: common/models.py:89 msgid "Updated" msgstr "" -#: common/models.py:87 +#: common/models.py:90 msgid "Timestamp of last update" msgstr "" -#: common/models.py:120 +#: common/models.py:123 msgid "Site URL is locked by configuration" msgstr "" -#: common/models.py:150 +#: common/models.py:153 msgid "Unique project code" msgstr "" -#: common/models.py:157 +#: common/models.py:160 msgid "Project description" msgstr "" -#: common/models.py:166 +#: common/models.py:169 msgid "User or group responsible for this project" msgstr "" -#: common/models.py:783 -msgid "Settings key (must be unique - case insensitive)" +#: common/models.py:783 common/models.py:2236 common/models.py:2613 +msgid "Settings key" msgstr "" #: common/models.py:787 msgid "Settings value" msgstr "" -#: common/models.py:839 +#: common/models.py:842 msgid "Chosen value is not a valid option" msgstr "" -#: common/models.py:855 +#: common/models.py:858 msgid "Value must be a boolean value" msgstr "" -#: common/models.py:863 +#: common/models.py:866 msgid "Value must be an integer value" msgstr "" -#: common/models.py:900 +#: common/models.py:874 +msgid "Value must be a valid number" +msgstr "" + +#: common/models.py:899 +msgid "Value does not pass validation checks" +msgstr "" + +#: common/models.py:921 msgid "Key string must be unique" msgstr "" -#: common/models.py:1132 +#: common/models.py:1189 msgid "No group" msgstr "" -#: common/models.py:1231 +#: common/models.py:1288 msgid "Restart required" msgstr "" -#: common/models.py:1233 +#: common/models.py:1290 msgid "A setting has been changed which requires a server restart" msgstr "" -#: common/models.py:1240 +#: common/models.py:1297 msgid "Pending migrations" msgstr "" -#: common/models.py:1241 +#: common/models.py:1298 msgid "Number of pending database migrations" msgstr "" -#: common/models.py:1246 +#: common/models.py:1303 msgid "Server Instance Name" msgstr "" -#: common/models.py:1248 +#: common/models.py:1305 msgid "String descriptor for the server instance" msgstr "" -#: common/models.py:1252 +#: common/models.py:1309 msgid "Use instance name" msgstr "" -#: common/models.py:1253 +#: common/models.py:1310 msgid "Use the instance name in the title-bar" msgstr "" -#: common/models.py:1258 +#: common/models.py:1315 msgid "Restrict showing `about`" msgstr "" -#: common/models.py:1259 +#: common/models.py:1316 msgid "Show the `about` modal only to superusers" msgstr "" -#: common/models.py:1264 company/models.py:111 company/models.py:112 +#: common/models.py:1321 company/models.py:108 company/models.py:109 msgid "Company name" -msgstr "" +msgstr "Nama Perusahaan" -#: common/models.py:1265 +#: common/models.py:1322 msgid "Internal company name" msgstr "" -#: common/models.py:1269 +#: common/models.py:1326 msgid "Base URL" msgstr "" -#: common/models.py:1270 +#: common/models.py:1327 msgid "Base URL for server instance" msgstr "" -#: common/models.py:1276 +#: common/models.py:1333 msgid "Default Currency" msgstr "" -#: common/models.py:1277 +#: common/models.py:1334 msgid "Select base currency for pricing calculations" msgstr "" -#: common/models.py:1283 +#: common/models.py:1340 msgid "Supported Currencies" msgstr "" -#: common/models.py:1284 +#: common/models.py:1341 msgid "List of supported currency codes" msgstr "" -#: common/models.py:1290 +#: common/models.py:1347 msgid "Currency Update Interval" msgstr "" -#: common/models.py:1292 +#: common/models.py:1349 msgid "How often to update exchange rates (set to zero to disable)" msgstr "" -#: common/models.py:1295 common/models.py:1351 common/models.py:1364 -#: common/models.py:1372 common/models.py:1381 common/models.py:1390 -#: common/models.py:1627 common/models.py:1649 common/models.py:1764 -#: common/models.py:2146 +#: common/models.py:1352 common/models.py:1408 common/models.py:1421 +#: common/models.py:1429 common/models.py:1438 common/models.py:1447 +#: common/models.py:1696 common/models.py:1718 common/models.py:1819 +#: common/models.py:2208 msgid "days" -msgstr "" +msgstr "Hari" -#: common/models.py:1299 +#: common/models.py:1356 msgid "Currency Update Plugin" msgstr "" -#: common/models.py:1300 +#: common/models.py:1357 msgid "Currency update plugin to use" msgstr "" -#: common/models.py:1305 +#: common/models.py:1362 msgid "Download from URL" msgstr "" -#: common/models.py:1307 +#: common/models.py:1364 msgid "Allow download of remote images and files from external URL" msgstr "" -#: common/models.py:1313 +#: common/models.py:1370 msgid "Download Size Limit" msgstr "" -#: common/models.py:1314 +#: common/models.py:1371 msgid "Maximum allowable download size for remote image" msgstr "" -#: common/models.py:1320 +#: common/models.py:1377 msgid "User-agent used to download from URL" msgstr "" -#: common/models.py:1322 +#: common/models.py:1379 msgid "Allow to override the user-agent used to download images and files from external URL (leave blank for the default)" msgstr "" -#: common/models.py:1327 +#: common/models.py:1384 msgid "Strict URL Validation" msgstr "" -#: common/models.py:1328 +#: common/models.py:1385 msgid "Require schema specification when validating URLs" msgstr "" -#: common/models.py:1333 +#: common/models.py:1390 msgid "Require confirm" msgstr "" -#: common/models.py:1334 +#: common/models.py:1391 msgid "Require explicit user confirmation for certain action." msgstr "" -#: common/models.py:1339 +#: common/models.py:1396 msgid "Tree Depth" msgstr "" -#: common/models.py:1341 +#: common/models.py:1398 msgid "Default tree depth for treeview. Deeper levels can be lazy loaded as they are needed." msgstr "" -#: common/models.py:1347 +#: common/models.py:1404 msgid "Update Check Interval" msgstr "" -#: common/models.py:1348 +#: common/models.py:1405 msgid "How often to check for updates (set to zero to disable)" msgstr "" -#: common/models.py:1354 +#: common/models.py:1411 msgid "Automatic Backup" msgstr "" -#: common/models.py:1355 +#: common/models.py:1412 msgid "Enable automatic backup of database and media files" msgstr "" -#: common/models.py:1360 +#: common/models.py:1417 msgid "Auto Backup Interval" msgstr "" -#: common/models.py:1361 +#: common/models.py:1418 msgid "Specify number of days between automated backup events" msgstr "" -#: common/models.py:1367 +#: common/models.py:1424 msgid "Task Deletion Interval" msgstr "" -#: common/models.py:1369 +#: common/models.py:1426 msgid "Background task results will be deleted after specified number of days" msgstr "" -#: common/models.py:1376 +#: common/models.py:1433 msgid "Error Log Deletion Interval" msgstr "" -#: common/models.py:1378 +#: common/models.py:1435 msgid "Error logs will be deleted after specified number of days" msgstr "" -#: common/models.py:1385 +#: common/models.py:1442 msgid "Notification Deletion Interval" msgstr "" -#: common/models.py:1387 +#: common/models.py:1444 msgid "User notifications will be deleted after specified number of days" msgstr "" -#: common/models.py:1394 templates/InvenTree/settings/sidebar.html:31 +#: common/models.py:1451 templates/InvenTree/settings/sidebar.html:31 msgid "Barcode Support" msgstr "" -#: common/models.py:1395 +#: common/models.py:1452 msgid "Enable barcode scanner support in the web interface" msgstr "" -#: common/models.py:1400 +#: common/models.py:1457 +msgid "Store Barcode Results" +msgstr "" + +#: common/models.py:1458 +msgid "Store barcode scan results in the database" +msgstr "" + +#: common/models.py:1463 +msgid "Barcode Scans Maximum Count" +msgstr "" + +#: common/models.py:1464 +msgid "Maximum number of barcode scan results to store" +msgstr "" + +#: common/models.py:1469 msgid "Barcode Input Delay" msgstr "" -#: common/models.py:1401 +#: common/models.py:1470 msgid "Barcode input processing delay time" msgstr "" -#: common/models.py:1407 +#: common/models.py:1476 msgid "Barcode Webcam Support" msgstr "" -#: common/models.py:1408 +#: common/models.py:1477 msgid "Allow barcode scanning via webcam in browser" msgstr "" -#: common/models.py:1413 +#: common/models.py:1482 msgid "Barcode Show Data" msgstr "" -#: common/models.py:1414 +#: common/models.py:1483 msgid "Display barcode data in browser as text" msgstr "" -#: common/models.py:1419 +#: common/models.py:1488 msgid "Barcode Generation Plugin" msgstr "" -#: common/models.py:1420 +#: common/models.py:1489 msgid "Plugin to use for internal barcode data generation" msgstr "" -#: common/models.py:1425 +#: common/models.py:1494 msgid "Part Revisions" msgstr "" -#: common/models.py:1426 +#: common/models.py:1495 msgid "Enable revision field for Part" msgstr "" -#: common/models.py:1431 +#: common/models.py:1500 msgid "Assembly Revision Only" msgstr "" -#: common/models.py:1432 +#: common/models.py:1501 msgid "Only allow revisions for assembly parts" msgstr "" -#: common/models.py:1437 +#: common/models.py:1506 msgid "Allow Deletion from Assembly" msgstr "" -#: common/models.py:1438 +#: common/models.py:1507 msgid "Allow deletion of parts which are used in an assembly" msgstr "" -#: common/models.py:1443 +#: common/models.py:1512 msgid "IPN Regex" msgstr "" -#: common/models.py:1444 +#: common/models.py:1513 msgid "Regular expression pattern for matching Part IPN" msgstr "" -#: common/models.py:1447 +#: common/models.py:1516 msgid "Allow Duplicate IPN" msgstr "" -#: common/models.py:1448 +#: common/models.py:1517 msgid "Allow multiple parts to share the same IPN" msgstr "" -#: common/models.py:1453 +#: common/models.py:1522 msgid "Allow Editing IPN" msgstr "" -#: common/models.py:1454 +#: common/models.py:1523 msgid "Allow changing the IPN value while editing a part" msgstr "" -#: common/models.py:1459 +#: common/models.py:1528 msgid "Copy Part BOM Data" msgstr "" -#: common/models.py:1460 +#: common/models.py:1529 msgid "Copy BOM data by default when duplicating a part" msgstr "" -#: common/models.py:1465 +#: common/models.py:1534 msgid "Copy Part Parameter Data" msgstr "" -#: common/models.py:1466 +#: common/models.py:1535 msgid "Copy parameter data by default when duplicating a part" msgstr "" -#: common/models.py:1471 +#: common/models.py:1540 msgid "Copy Part Test Data" msgstr "" -#: common/models.py:1472 +#: common/models.py:1541 msgid "Copy test data by default when duplicating a part" msgstr "" -#: common/models.py:1477 +#: common/models.py:1546 msgid "Copy Category Parameter Templates" msgstr "" -#: common/models.py:1478 +#: common/models.py:1547 msgid "Copy category parameter templates when creating a part" msgstr "" -#: common/models.py:1483 part/admin.py:108 part/models.py:3945 -#: report/models.py:293 report/models.py:360 report/serializers.py:90 -#: report/serializers.py:131 stock/serializers.py:232 +#: common/models.py:1552 part/admin.py:108 part/models.py:4003 +#: report/models.py:301 report/models.py:368 report/serializers.py:91 +#: report/serializers.py:132 stock/serializers.py:233 #: templates/js/translated/table_filters.js:138 #: templates/js/translated/table_filters.js:775 msgid "Template" msgstr "" -#: common/models.py:1484 +#: common/models.py:1553 msgid "Parts are templates by default" msgstr "" -#: common/models.py:1490 +#: common/models.py:1559 msgid "Parts can be assembled from other components by default" msgstr "" -#: common/models.py:1495 part/admin.py:95 part/models.py:1160 -#: part/serializers.py:1596 templates/js/translated/table_filters.js:737 +#: common/models.py:1564 part/admin.py:95 part/models.py:1221 +#: part/serializers.py:1654 templates/js/translated/table_filters.js:737 msgid "Component" -msgstr "" +msgstr "Komponen" -#: common/models.py:1496 +#: common/models.py:1565 msgid "Parts can be used as sub-components by default" msgstr "" -#: common/models.py:1501 part/admin.py:100 part/models.py:1178 +#: common/models.py:1570 part/admin.py:100 part/models.py:1239 msgid "Purchaseable" msgstr "" -#: common/models.py:1502 +#: common/models.py:1571 msgid "Parts are purchaseable by default" msgstr "" -#: common/models.py:1507 part/admin.py:104 part/models.py:1184 +#: common/models.py:1576 part/admin.py:104 part/models.py:1245 #: templates/js/translated/table_filters.js:763 msgid "Salable" msgstr "" -#: common/models.py:1508 +#: common/models.py:1577 msgid "Parts are salable by default" msgstr "" -#: common/models.py:1514 +#: common/models.py:1583 msgid "Parts are trackable by default" msgstr "" -#: common/models.py:1519 part/admin.py:117 part/models.py:1200 -#: part/templates/part/part_base.html:154 +#: common/models.py:1588 part/admin.py:117 part/models.py:1261 +#: part/templates/part/part_base.html:155 #: templates/js/translated/table_filters.js:142 #: templates/js/translated/table_filters.js:787 msgid "Virtual" msgstr "" -#: common/models.py:1520 +#: common/models.py:1589 msgid "Parts are virtual by default" msgstr "" -#: common/models.py:1525 +#: common/models.py:1594 msgid "Show Import in Views" msgstr "" -#: common/models.py:1526 +#: common/models.py:1595 msgid "Display the import wizard in some part views" msgstr "" -#: common/models.py:1531 +#: common/models.py:1600 msgid "Show related parts" msgstr "" -#: common/models.py:1532 +#: common/models.py:1601 msgid "Display related parts for a part" msgstr "" -#: common/models.py:1537 +#: common/models.py:1606 msgid "Initial Stock Data" msgstr "" -#: common/models.py:1538 +#: common/models.py:1607 msgid "Allow creation of initial stock when adding a new part" msgstr "" -#: common/models.py:1543 templates/js/translated/part.js:108 +#: common/models.py:1612 templates/js/translated/part.js:108 msgid "Initial Supplier Data" msgstr "" -#: common/models.py:1545 +#: common/models.py:1614 msgid "Allow creation of initial supplier data when adding a new part" msgstr "" -#: common/models.py:1551 +#: common/models.py:1620 msgid "Part Name Display Format" msgstr "" -#: common/models.py:1552 +#: common/models.py:1621 msgid "Format to display the part name" msgstr "" -#: common/models.py:1558 +#: common/models.py:1627 msgid "Part Category Default Icon" msgstr "" -#: common/models.py:1559 +#: common/models.py:1628 msgid "Part category default icon (empty means no icon)" msgstr "" -#: common/models.py:1564 +#: common/models.py:1633 msgid "Enforce Parameter Units" msgstr "" -#: common/models.py:1566 +#: common/models.py:1635 msgid "If units are provided, parameter values must match the specified units" msgstr "" -#: common/models.py:1572 +#: common/models.py:1641 msgid "Minimum Pricing Decimal Places" msgstr "" -#: common/models.py:1574 +#: common/models.py:1643 msgid "Minimum number of decimal places to display when rendering pricing data" msgstr "" -#: common/models.py:1585 +#: common/models.py:1654 msgid "Maximum Pricing Decimal Places" msgstr "" -#: common/models.py:1587 +#: common/models.py:1656 msgid "Maximum number of decimal places to display when rendering pricing data" msgstr "" -#: common/models.py:1598 +#: common/models.py:1667 msgid "Use Supplier Pricing" msgstr "" -#: common/models.py:1600 +#: common/models.py:1669 msgid "Include supplier price breaks in overall pricing calculations" msgstr "" -#: common/models.py:1606 +#: common/models.py:1675 msgid "Purchase History Override" msgstr "" -#: common/models.py:1608 +#: common/models.py:1677 msgid "Historical purchase order pricing overrides supplier price breaks" msgstr "" -#: common/models.py:1614 +#: common/models.py:1683 msgid "Use Stock Item Pricing" msgstr "" -#: common/models.py:1616 +#: common/models.py:1685 msgid "Use pricing from manually entered stock data for pricing calculations" msgstr "" -#: common/models.py:1622 +#: common/models.py:1691 msgid "Stock Item Pricing Age" msgstr "" -#: common/models.py:1624 +#: common/models.py:1693 msgid "Exclude stock items older than this number of days from pricing calculations" msgstr "" -#: common/models.py:1631 +#: common/models.py:1700 msgid "Use Variant Pricing" msgstr "" -#: common/models.py:1632 +#: common/models.py:1701 msgid "Include variant pricing in overall pricing calculations" msgstr "" -#: common/models.py:1637 +#: common/models.py:1706 msgid "Active Variants Only" msgstr "" -#: common/models.py:1639 +#: common/models.py:1708 msgid "Only use active variant parts for calculating variant pricing" msgstr "" -#: common/models.py:1645 +#: common/models.py:1714 msgid "Pricing Rebuild Interval" msgstr "" -#: common/models.py:1647 +#: common/models.py:1716 msgid "Number of days before part pricing is automatically updated" msgstr "" -#: common/models.py:1654 +#: common/models.py:1723 msgid "Internal Prices" msgstr "" -#: common/models.py:1655 +#: common/models.py:1724 msgid "Enable internal prices for parts" msgstr "" -#: common/models.py:1660 +#: common/models.py:1729 msgid "Internal Price Override" msgstr "" -#: common/models.py:1662 +#: common/models.py:1731 msgid "If available, internal prices override price range calculations" msgstr "" -#: common/models.py:1668 +#: common/models.py:1737 msgid "Enable label printing" msgstr "" -#: common/models.py:1669 +#: common/models.py:1738 msgid "Enable label printing from the web interface" msgstr "" -#: common/models.py:1674 +#: common/models.py:1743 msgid "Label Image DPI" msgstr "" -#: common/models.py:1676 +#: common/models.py:1745 msgid "DPI resolution when generating image files to supply to label printing plugins" msgstr "" -#: common/models.py:1682 +#: common/models.py:1751 msgid "Enable Reports" -msgstr "" +msgstr "Aktifkan Laporan" -#: common/models.py:1683 +#: common/models.py:1752 msgid "Enable generation of reports" msgstr "" -#: common/models.py:1688 templates/stats.html:25 +#: common/models.py:1757 templates/stats.html:25 msgid "Debug Mode" msgstr "" -#: common/models.py:1689 +#: common/models.py:1758 msgid "Generate reports in debug mode (HTML output)" msgstr "" -#: common/models.py:1694 +#: common/models.py:1763 msgid "Log Report Errors" msgstr "" -#: common/models.py:1695 +#: common/models.py:1764 msgid "Log errors which occur when generating reports" msgstr "" -#: common/models.py:1700 plugin/builtin/labels/label_sheet.py:28 -#: report/models.py:301 +#: common/models.py:1769 plugin/builtin/labels/label_sheet.py:28 +#: report/models.py:309 msgid "Page Size" -msgstr "" +msgstr "Ukuran Halaman" -#: common/models.py:1701 +#: common/models.py:1770 msgid "Default page size for PDF reports" msgstr "" -#: common/models.py:1706 -msgid "Enable Test Reports" -msgstr "" - -#: common/models.py:1707 -msgid "Enable generation of test reports" -msgstr "" - -#: common/models.py:1712 -msgid "Attach Test Reports" -msgstr "" - -#: common/models.py:1714 -msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item" -msgstr "" - -#: common/models.py:1720 +#: common/models.py:1775 msgid "Globally Unique Serials" msgstr "" -#: common/models.py:1721 +#: common/models.py:1776 msgid "Serial numbers for stock items must be globally unique" msgstr "" -#: common/models.py:1726 +#: common/models.py:1781 msgid "Autofill Serial Numbers" msgstr "" -#: common/models.py:1727 +#: common/models.py:1782 msgid "Autofill serial numbers in forms" msgstr "" -#: common/models.py:1732 +#: common/models.py:1787 msgid "Delete Depleted Stock" msgstr "" -#: common/models.py:1734 +#: common/models.py:1789 msgid "Determines default behavior when a stock item is depleted" msgstr "" -#: common/models.py:1740 +#: common/models.py:1795 msgid "Batch Code Template" msgstr "" -#: common/models.py:1742 +#: common/models.py:1797 msgid "Template for generating default batch codes for stock items" msgstr "" -#: common/models.py:1747 +#: common/models.py:1802 msgid "Stock Expiry" msgstr "" -#: common/models.py:1748 +#: common/models.py:1803 msgid "Enable stock expiry functionality" msgstr "" -#: common/models.py:1753 +#: common/models.py:1808 msgid "Sell Expired Stock" msgstr "" -#: common/models.py:1754 +#: common/models.py:1809 msgid "Allow sale of expired stock" msgstr "" -#: common/models.py:1759 +#: common/models.py:1814 msgid "Stock Stale Time" msgstr "" -#: common/models.py:1761 +#: common/models.py:1816 msgid "Number of days stock items are considered stale before expiring" msgstr "" -#: common/models.py:1768 +#: common/models.py:1823 msgid "Build Expired Stock" msgstr "" -#: common/models.py:1769 +#: common/models.py:1824 msgid "Allow building with expired stock" msgstr "" -#: common/models.py:1774 +#: common/models.py:1829 msgid "Stock Ownership Control" msgstr "" -#: common/models.py:1775 +#: common/models.py:1830 msgid "Enable ownership control over stock locations and items" msgstr "" -#: common/models.py:1780 +#: common/models.py:1835 msgid "Stock Location Default Icon" msgstr "" -#: common/models.py:1781 +#: common/models.py:1836 msgid "Stock location default icon (empty means no icon)" msgstr "" -#: common/models.py:1786 +#: common/models.py:1841 msgid "Show Installed Stock Items" msgstr "" -#: common/models.py:1787 +#: common/models.py:1842 msgid "Display installed stock items in stock tables" msgstr "" -#: common/models.py:1792 +#: common/models.py:1847 msgid "Check BOM when installing items" msgstr "" -#: common/models.py:1794 +#: common/models.py:1849 msgid "Installed stock items must exist in the BOM for the parent part" msgstr "" -#: common/models.py:1800 +#: common/models.py:1855 msgid "Allow Out of Stock Transfer" msgstr "" -#: common/models.py:1802 +#: common/models.py:1857 msgid "Allow stock items which are not in stock to be transferred between stock locations" msgstr "" -#: common/models.py:1808 +#: common/models.py:1863 msgid "Build Order Reference Pattern" msgstr "" -#: common/models.py:1810 +#: common/models.py:1865 msgid "Required pattern for generating Build Order reference field" msgstr "" -#: common/models.py:1816 common/models.py:1872 common/models.py:1894 -#: common/models.py:1930 +#: common/models.py:1871 common/models.py:1927 common/models.py:1949 +#: common/models.py:1985 msgid "Require Responsible Owner" msgstr "" -#: common/models.py:1817 common/models.py:1873 common/models.py:1895 -#: common/models.py:1931 +#: common/models.py:1872 common/models.py:1928 common/models.py:1950 +#: common/models.py:1986 msgid "A responsible owner must be assigned to each order" msgstr "" -#: common/models.py:1822 +#: common/models.py:1877 msgid "Require Active Part" msgstr "" -#: common/models.py:1823 +#: common/models.py:1878 msgid "Prevent build order creation for inactive parts" msgstr "" -#: common/models.py:1828 +#: common/models.py:1883 msgid "Require Locked Part" msgstr "" -#: common/models.py:1829 +#: common/models.py:1884 msgid "Prevent build order creation for unlocked parts" msgstr "" -#: common/models.py:1834 +#: common/models.py:1889 msgid "Require Valid BOM" msgstr "" -#: common/models.py:1836 +#: common/models.py:1891 msgid "Prevent build order creation unless BOM has been validated" msgstr "" -#: common/models.py:1842 +#: common/models.py:1897 msgid "Require Closed Child Orders" msgstr "" -#: common/models.py:1844 +#: common/models.py:1899 msgid "Prevent build order completion until all child orders are closed" msgstr "" -#: common/models.py:1850 +#: common/models.py:1905 msgid "Block Until Tests Pass" msgstr "" -#: common/models.py:1852 +#: common/models.py:1907 msgid "Prevent build outputs from being completed until all required tests pass" msgstr "" -#: common/models.py:1858 +#: common/models.py:1913 msgid "Enable Return Orders" msgstr "" -#: common/models.py:1859 +#: common/models.py:1914 msgid "Enable return order functionality in the user interface" msgstr "" -#: common/models.py:1864 +#: common/models.py:1919 msgid "Return Order Reference Pattern" msgstr "" -#: common/models.py:1866 +#: common/models.py:1921 msgid "Required pattern for generating Return Order reference field" msgstr "" -#: common/models.py:1878 +#: common/models.py:1933 msgid "Edit Completed Return Orders" msgstr "" -#: common/models.py:1880 +#: common/models.py:1935 msgid "Allow editing of return orders after they have been completed" msgstr "" -#: common/models.py:1886 +#: common/models.py:1941 msgid "Sales Order Reference Pattern" msgstr "" -#: common/models.py:1888 +#: common/models.py:1943 msgid "Required pattern for generating Sales Order reference field" msgstr "" -#: common/models.py:1900 +#: common/models.py:1955 msgid "Sales Order Default Shipment" msgstr "" -#: common/models.py:1901 +#: common/models.py:1956 msgid "Enable creation of default shipment with sales orders" msgstr "" -#: common/models.py:1906 +#: common/models.py:1961 msgid "Edit Completed Sales Orders" msgstr "" -#: common/models.py:1908 +#: common/models.py:1963 msgid "Allow editing of sales orders after they have been shipped or completed" msgstr "" -#: common/models.py:1914 +#: common/models.py:1969 msgid "Mark Shipped Orders as Complete" msgstr "" -#: common/models.py:1916 +#: common/models.py:1971 msgid "Sales orders marked as shipped will automatically be completed, bypassing the \"shipped\" status" msgstr "" -#: common/models.py:1922 +#: common/models.py:1977 msgid "Purchase Order Reference Pattern" msgstr "" -#: common/models.py:1924 +#: common/models.py:1979 msgid "Required pattern for generating Purchase Order reference field" msgstr "" -#: common/models.py:1936 +#: common/models.py:1991 msgid "Edit Completed Purchase Orders" msgstr "" -#: common/models.py:1938 +#: common/models.py:1993 msgid "Allow editing of purchase orders after they have been shipped or completed" msgstr "" -#: common/models.py:1944 +#: common/models.py:1999 msgid "Auto Complete Purchase Orders" msgstr "" -#: common/models.py:1946 +#: common/models.py:2001 msgid "Automatically mark purchase orders as complete when all line items are received" msgstr "" -#: common/models.py:1953 +#: common/models.py:2008 msgid "Enable password forgot" msgstr "" -#: common/models.py:1954 +#: common/models.py:2009 msgid "Enable password forgot function on the login pages" msgstr "" -#: common/models.py:1959 +#: common/models.py:2014 msgid "Enable registration" msgstr "" -#: common/models.py:1960 +#: common/models.py:2015 msgid "Enable self-registration for users on the login pages" msgstr "" -#: common/models.py:1965 +#: common/models.py:2020 msgid "Enable SSO" msgstr "" -#: common/models.py:1966 +#: common/models.py:2021 msgid "Enable SSO on the login pages" msgstr "" -#: common/models.py:1971 +#: common/models.py:2026 msgid "Enable SSO registration" msgstr "" -#: common/models.py:1973 +#: common/models.py:2028 msgid "Enable self-registration via SSO for users on the login pages" msgstr "" -#: common/models.py:1979 +#: common/models.py:2034 msgid "Enable SSO group sync" msgstr "" -#: common/models.py:1981 +#: common/models.py:2036 msgid "Enable synchronizing InvenTree groups with groups provided by the IdP" msgstr "" -#: common/models.py:1987 +#: common/models.py:2042 msgid "SSO group key" msgstr "" -#: common/models.py:1989 +#: common/models.py:2044 msgid "The name of the groups claim attribute provided by the IdP" msgstr "" -#: common/models.py:1995 +#: common/models.py:2050 msgid "SSO group map" msgstr "" -#: common/models.py:1997 +#: common/models.py:2052 msgid "A mapping from SSO groups to local InvenTree groups. If the local group does not exist, it will be created." msgstr "" -#: common/models.py:2003 +#: common/models.py:2058 msgid "Remove groups outside of SSO" msgstr "" -#: common/models.py:2005 +#: common/models.py:2060 msgid "Whether groups assigned to the user should be removed if they are not backend by the IdP. Disabling this setting might cause security issues" msgstr "" -#: common/models.py:2011 +#: common/models.py:2066 msgid "Email required" msgstr "Surel diperlukan" -#: common/models.py:2012 +#: common/models.py:2067 msgid "Require user to supply mail on signup" msgstr "" -#: common/models.py:2017 +#: common/models.py:2072 msgid "Auto-fill SSO users" msgstr "" -#: common/models.py:2019 +#: common/models.py:2074 msgid "Automatically fill out user-details from SSO account-data" msgstr "" -#: common/models.py:2025 +#: common/models.py:2080 msgid "Mail twice" msgstr "" -#: common/models.py:2026 +#: common/models.py:2081 msgid "On signup ask users twice for their mail" msgstr "" -#: common/models.py:2031 +#: common/models.py:2086 msgid "Password twice" msgstr "" -#: common/models.py:2032 +#: common/models.py:2087 msgid "On signup ask users twice for their password" msgstr "" -#: common/models.py:2037 +#: common/models.py:2092 msgid "Allowed domains" msgstr "" -#: common/models.py:2039 +#: common/models.py:2094 msgid "Restrict signup to certain domains (comma-separated, starting with @)" msgstr "" -#: common/models.py:2045 +#: common/models.py:2100 msgid "Group on signup" msgstr "" -#: common/models.py:2047 +#: common/models.py:2102 msgid "Group to which new users are assigned on registration. If SSO group sync is enabled, this group is only set if no group can be assigned from the IdP." msgstr "" -#: common/models.py:2053 +#: common/models.py:2108 msgid "Enforce MFA" msgstr "" -#: common/models.py:2054 +#: common/models.py:2109 msgid "Users must use multifactor security." msgstr "" -#: common/models.py:2059 +#: common/models.py:2114 msgid "Check plugins on startup" msgstr "" -#: common/models.py:2061 +#: common/models.py:2116 msgid "Check that all plugins are installed on startup - enable in container environments" msgstr "" -#: common/models.py:2069 +#: common/models.py:2124 msgid "Check for plugin updates" msgstr "" -#: common/models.py:2070 +#: common/models.py:2125 msgid "Enable periodic checks for updates to installed plugins" msgstr "" -#: common/models.py:2076 +#: common/models.py:2131 msgid "Enable URL integration" msgstr "" -#: common/models.py:2077 +#: common/models.py:2132 msgid "Enable plugins to add URL routes" msgstr "" -#: common/models.py:2083 +#: common/models.py:2138 msgid "Enable navigation integration" msgstr "" -#: common/models.py:2084 +#: common/models.py:2139 msgid "Enable plugins to integrate into navigation" msgstr "" -#: common/models.py:2090 +#: common/models.py:2145 msgid "Enable app integration" msgstr "" -#: common/models.py:2091 +#: common/models.py:2146 msgid "Enable plugins to add apps" msgstr "" -#: common/models.py:2097 +#: common/models.py:2152 msgid "Enable schedule integration" msgstr "" -#: common/models.py:2098 +#: common/models.py:2153 msgid "Enable plugins to run scheduled tasks" msgstr "" -#: common/models.py:2104 +#: common/models.py:2159 msgid "Enable event integration" msgstr "" -#: common/models.py:2105 +#: common/models.py:2160 msgid "Enable plugins to respond to internal events" msgstr "" -#: common/models.py:2111 +#: common/models.py:2166 +msgid "Enable interface integration" +msgstr "Aktifkan Integrasi Antarmuka" + +#: common/models.py:2167 +msgid "Enable plugins to integrate into the user interface" +msgstr "" + +#: common/models.py:2173 msgid "Enable project codes" msgstr "" -#: common/models.py:2112 +#: common/models.py:2174 msgid "Enable project codes for tracking projects" msgstr "" -#: common/models.py:2117 +#: common/models.py:2179 msgid "Stocktake Functionality" msgstr "" -#: common/models.py:2119 +#: common/models.py:2181 msgid "Enable stocktake functionality for recording stock levels and calculating stock value" msgstr "" -#: common/models.py:2125 +#: common/models.py:2187 msgid "Exclude External Locations" msgstr "" -#: common/models.py:2127 +#: common/models.py:2189 msgid "Exclude stock items in external locations from stocktake calculations" msgstr "" -#: common/models.py:2133 +#: common/models.py:2195 msgid "Automatic Stocktake Period" msgstr "" -#: common/models.py:2135 +#: common/models.py:2197 msgid "Number of days between automatic stocktake recording (set to zero to disable)" msgstr "" -#: common/models.py:2141 +#: common/models.py:2203 msgid "Report Deletion Interval" msgstr "" -#: common/models.py:2143 +#: common/models.py:2205 msgid "Stocktake reports will be deleted after specified number of days" msgstr "" -#: common/models.py:2150 +#: common/models.py:2212 msgid "Display Users full names" msgstr "" -#: common/models.py:2151 +#: common/models.py:2213 msgid "Display Users full names instead of usernames" msgstr "" -#: common/models.py:2156 +#: common/models.py:2218 msgid "Enable Test Station Data" msgstr "" -#: common/models.py:2157 +#: common/models.py:2219 msgid "Enable test station data collection for test results" msgstr "" -#: common/models.py:2169 common/models.py:2549 -msgid "Settings key (must be unique - case insensitive" -msgstr "" - -#: common/models.py:2212 -msgid "Hide inactive parts" -msgstr "" - -#: common/models.py:2214 -msgid "Hide inactive parts in results displayed on the homepage" -msgstr "" - -#: common/models.py:2220 -msgid "Show subscribed parts" -msgstr "" - -#: common/models.py:2221 -msgid "Show subscribed parts on the homepage" +#: common/models.py:2224 +msgid "Create Template on Upload" msgstr "" #: common/models.py:2226 -msgid "Show subscribed categories" +msgid "Create a new test template when uploading test data which does not match an existing template" msgstr "" -#: common/models.py:2227 -msgid "Show subscribed part categories on the homepage" -msgstr "" - -#: common/models.py:2232 -msgid "Show latest parts" -msgstr "" - -#: common/models.py:2233 -msgid "Show latest parts on the homepage" -msgstr "" - -#: common/models.py:2238 -msgid "Show invalid BOMs" -msgstr "" - -#: common/models.py:2239 -msgid "Show BOMs that await validation on the homepage" -msgstr "" - -#: common/models.py:2244 -msgid "Show recent stock changes" -msgstr "" - -#: common/models.py:2245 -msgid "Show recently changed stock items on the homepage" -msgstr "" - -#: common/models.py:2250 -msgid "Show low stock" -msgstr "" - -#: common/models.py:2251 -msgid "Show low stock items on the homepage" -msgstr "" - -#: common/models.py:2256 -msgid "Show depleted stock" -msgstr "" - -#: common/models.py:2257 -msgid "Show depleted stock items on the homepage" -msgstr "" - -#: common/models.py:2262 -msgid "Show needed stock" -msgstr "" - -#: common/models.py:2263 -msgid "Show stock items needed for builds on the homepage" -msgstr "" - -#: common/models.py:2268 -msgid "Show expired stock" -msgstr "" - -#: common/models.py:2269 -msgid "Show expired stock items on the homepage" -msgstr "" - -#: common/models.py:2274 -msgid "Show stale stock" -msgstr "" - -#: common/models.py:2275 -msgid "Show stale stock items on the homepage" -msgstr "" - -#: common/models.py:2280 -msgid "Show pending builds" +#: common/models.py:2279 +msgid "Hide inactive parts" msgstr "" #: common/models.py:2281 -msgid "Show pending builds on the homepage" -msgstr "" - -#: common/models.py:2286 -msgid "Show overdue builds" +msgid "Hide inactive parts in results displayed on the homepage" msgstr "" #: common/models.py:2287 -msgid "Show overdue builds on the homepage" +msgid "Show subscribed parts" msgstr "" -#: common/models.py:2292 -msgid "Show outstanding POs" +#: common/models.py:2288 +msgid "Show subscribed parts on the homepage" msgstr "" #: common/models.py:2293 -msgid "Show outstanding POs on the homepage" +msgid "Show subscribed categories" msgstr "" -#: common/models.py:2298 -msgid "Show overdue POs" +#: common/models.py:2294 +msgid "Show subscribed part categories on the homepage" msgstr "" #: common/models.py:2299 -msgid "Show overdue POs on the homepage" +msgid "Show latest parts" msgstr "" -#: common/models.py:2304 -msgid "Show outstanding SOs" +#: common/models.py:2300 +msgid "Show latest parts on the homepage" msgstr "" #: common/models.py:2305 -msgid "Show outstanding SOs on the homepage" +msgid "Show invalid BOMs" msgstr "" -#: common/models.py:2310 -msgid "Show overdue SOs" +#: common/models.py:2306 +msgid "Show BOMs that await validation on the homepage" msgstr "" #: common/models.py:2311 -msgid "Show overdue SOs on the homepage" +msgid "Show recent stock changes" msgstr "" -#: common/models.py:2316 -msgid "Show pending SO shipments" +#: common/models.py:2312 +msgid "Show recently changed stock items on the homepage" msgstr "" #: common/models.py:2317 -msgid "Show pending SO shipments on the homepage" +msgid "Show low stock" msgstr "" -#: common/models.py:2322 -msgid "Show News" +#: common/models.py:2318 +msgid "Show low stock items on the homepage" msgstr "" #: common/models.py:2323 -msgid "Show news on the homepage" +msgid "Show depleted stock" msgstr "" -#: common/models.py:2328 -msgid "Inline label display" +#: common/models.py:2324 +msgid "Show depleted stock items on the homepage" +msgstr "" + +#: common/models.py:2329 +msgid "Show needed stock" msgstr "" #: common/models.py:2330 -msgid "Display PDF labels in the browser, instead of downloading as a file" +msgid "Show stock items needed for builds on the homepage" +msgstr "" + +#: common/models.py:2335 +msgid "Show expired stock" msgstr "" #: common/models.py:2336 -msgid "Default label printer" +msgid "Show expired stock items on the homepage" msgstr "" -#: common/models.py:2338 -msgid "Configure which label printer should be selected by default" +#: common/models.py:2341 +msgid "Show stale stock" msgstr "" -#: common/models.py:2344 -msgid "Inline report display" +#: common/models.py:2342 +msgid "Show stale stock items on the homepage" msgstr "" -#: common/models.py:2346 -msgid "Display PDF reports in the browser, instead of downloading as a file" +#: common/models.py:2347 +msgid "Show pending builds" msgstr "" -#: common/models.py:2352 -msgid "Search Parts" +#: common/models.py:2348 +msgid "Show pending builds on the homepage" msgstr "" #: common/models.py:2353 -msgid "Display parts in search preview window" +msgid "Show overdue builds" msgstr "" -#: common/models.py:2358 -msgid "Search Supplier Parts" +#: common/models.py:2354 +msgid "Show overdue builds on the homepage" msgstr "" #: common/models.py:2359 -msgid "Display supplier parts in search preview window" +msgid "Show outstanding POs" msgstr "" -#: common/models.py:2364 -msgid "Search Manufacturer Parts" +#: common/models.py:2360 +msgid "Show outstanding POs on the homepage" msgstr "" #: common/models.py:2365 -msgid "Display manufacturer parts in search preview window" +msgid "Show overdue POs" msgstr "" -#: common/models.py:2370 -msgid "Hide Inactive Parts" +#: common/models.py:2366 +msgid "Show overdue POs on the homepage" msgstr "" #: common/models.py:2371 -msgid "Excluded inactive parts from search preview window" +msgid "Show outstanding SOs" msgstr "" -#: common/models.py:2376 -msgid "Search Categories" +#: common/models.py:2372 +msgid "Show outstanding SOs on the homepage" msgstr "" #: common/models.py:2377 -msgid "Display part categories in search preview window" +msgid "Show overdue SOs" msgstr "" -#: common/models.py:2382 -msgid "Search Stock" +#: common/models.py:2378 +msgid "Show overdue SOs on the homepage" msgstr "" #: common/models.py:2383 -msgid "Display stock items in search preview window" +msgid "Show pending SO shipments" msgstr "" -#: common/models.py:2388 -msgid "Hide Unavailable Stock Items" +#: common/models.py:2384 +msgid "Show pending SO shipments on the homepage" +msgstr "" + +#: common/models.py:2389 +msgid "Show News" msgstr "" #: common/models.py:2390 -msgid "Exclude stock items which are not available from the search preview window" +msgid "Show news on the homepage" msgstr "" -#: common/models.py:2396 -msgid "Search Locations" +#: common/models.py:2395 +msgid "Inline label display" msgstr "" #: common/models.py:2397 -msgid "Display stock locations in search preview window" -msgstr "" - -#: common/models.py:2402 -msgid "Search Companies" +msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "" #: common/models.py:2403 -msgid "Display companies in search preview window" +msgid "Default label printer" msgstr "" -#: common/models.py:2408 -msgid "Search Build Orders" +#: common/models.py:2405 +msgid "Configure which label printer should be selected by default" msgstr "" -#: common/models.py:2409 -msgid "Display build orders in search preview window" +#: common/models.py:2411 +msgid "Inline report display" msgstr "" -#: common/models.py:2414 -msgid "Search Purchase Orders" +#: common/models.py:2413 +msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:2415 -msgid "Display purchase orders in search preview window" -msgstr "" +#: common/models.py:2419 +msgid "Search Parts" +msgstr "Cari barang" #: common/models.py:2420 -msgid "Exclude Inactive Purchase Orders" +msgid "Display parts in search preview window" msgstr "" -#: common/models.py:2422 -msgid "Exclude inactive purchase orders from search preview window" +#: common/models.py:2425 +msgid "Search Supplier Parts" msgstr "" -#: common/models.py:2428 -msgid "Search Sales Orders" +#: common/models.py:2426 +msgid "Display supplier parts in search preview window" msgstr "" -#: common/models.py:2429 -msgid "Display sales orders in search preview window" +#: common/models.py:2431 +msgid "Search Manufacturer Parts" msgstr "" -#: common/models.py:2434 -msgid "Exclude Inactive Sales Orders" +#: common/models.py:2432 +msgid "Display manufacturer parts in search preview window" msgstr "" -#: common/models.py:2436 -msgid "Exclude inactive sales orders from search preview window" +#: common/models.py:2437 +msgid "Hide Inactive Parts" msgstr "" -#: common/models.py:2442 -msgid "Search Return Orders" +#: common/models.py:2438 +msgid "Excluded inactive parts from search preview window" msgstr "" #: common/models.py:2443 -msgid "Display return orders in search preview window" +msgid "Search Categories" msgstr "" -#: common/models.py:2448 -msgid "Exclude Inactive Return Orders" +#: common/models.py:2444 +msgid "Display part categories in search preview window" msgstr "" +#: common/models.py:2449 +msgid "Search Stock" +msgstr "Cari Persediaan" + #: common/models.py:2450 -msgid "Exclude inactive return orders from search preview window" +msgid "Display stock items in search preview window" msgstr "" -#: common/models.py:2456 -msgid "Search Preview Results" +#: common/models.py:2455 +msgid "Hide Unavailable Stock Items" msgstr "" -#: common/models.py:2458 -msgid "Number of results to show in each section of the search preview window" +#: common/models.py:2457 +msgid "Exclude stock items which are not available from the search preview window" msgstr "" +#: common/models.py:2463 +msgid "Search Locations" +msgstr "Cari Lokasi" + #: common/models.py:2464 -msgid "Regex Search" +msgid "Display stock locations in search preview window" msgstr "" -#: common/models.py:2465 -msgid "Enable regular expressions in search queries" -msgstr "" +#: common/models.py:2469 +msgid "Search Companies" +msgstr "Cari Perusahaan" #: common/models.py:2470 -msgid "Whole Word Search" +msgid "Display companies in search preview window" msgstr "" -#: common/models.py:2471 -msgid "Search queries return results for whole word matches" +#: common/models.py:2475 +msgid "Search Build Orders" msgstr "" #: common/models.py:2476 -msgid "Show Quantity in Forms" +msgid "Display build orders in search preview window" msgstr "" -#: common/models.py:2477 -msgid "Display available part quantity in some forms" +#: common/models.py:2481 +msgid "Search Purchase Orders" msgstr "" #: common/models.py:2482 -msgid "Escape Key Closes Forms" +msgid "Display purchase orders in search preview window" msgstr "" -#: common/models.py:2483 -msgid "Use the escape key to close modal forms" -msgstr "" - -#: common/models.py:2488 -msgid "Fixed Navbar" +#: common/models.py:2487 +msgid "Exclude Inactive Purchase Orders" msgstr "" #: common/models.py:2489 -msgid "The navbar position is fixed to the top of the screen" -msgstr "" - -#: common/models.py:2494 -msgid "Date Format" +msgid "Exclude inactive purchase orders from search preview window" msgstr "" #: common/models.py:2495 -msgid "Preferred format for displaying dates" +msgid "Search Sales Orders" msgstr "" -#: common/models.py:2508 part/templates/part/detail.html:41 -msgid "Part Scheduling" +#: common/models.py:2496 +msgid "Display sales orders in search preview window" +msgstr "" + +#: common/models.py:2501 +msgid "Exclude Inactive Sales Orders" +msgstr "" + +#: common/models.py:2503 +msgid "Exclude inactive sales orders from search preview window" msgstr "" #: common/models.py:2509 -msgid "Display part scheduling information" +msgid "Search Return Orders" msgstr "" -#: common/models.py:2514 part/templates/part/detail.html:62 -msgid "Part Stocktake" +#: common/models.py:2510 +msgid "Display return orders in search preview window" msgstr "" -#: common/models.py:2516 -msgid "Display part stocktake information (if stocktake functionality is enabled)" +#: common/models.py:2515 +msgid "Exclude Inactive Return Orders" msgstr "" -#: common/models.py:2522 -msgid "Table String Length" +#: common/models.py:2517 +msgid "Exclude inactive return orders from search preview window" msgstr "" -#: common/models.py:2524 -msgid "Maximum length limit for strings displayed in table views" +#: common/models.py:2523 +msgid "Search Preview Results" msgstr "" -#: common/models.py:2530 -msgid "Receive error reports" +#: common/models.py:2525 +msgid "Number of results to show in each section of the search preview window" msgstr "" #: common/models.py:2531 -msgid "Receive notifications for system errors" +msgid "Regex Search" msgstr "" -#: common/models.py:2536 -msgid "Last used printing machines" +#: common/models.py:2532 +msgid "Enable regular expressions in search queries" msgstr "" #: common/models.py:2537 +msgid "Whole Word Search" +msgstr "" + +#: common/models.py:2538 +msgid "Search queries return results for whole word matches" +msgstr "" + +#: common/models.py:2543 +msgid "Show Quantity in Forms" +msgstr "" + +#: common/models.py:2544 +msgid "Display available part quantity in some forms" +msgstr "" + +#: common/models.py:2549 +msgid "Escape Key Closes Forms" +msgstr "" + +#: common/models.py:2550 +msgid "Use the escape key to close modal forms" +msgstr "" + +#: common/models.py:2555 +msgid "Fixed Navbar" +msgstr "" + +#: common/models.py:2556 +msgid "The navbar position is fixed to the top of the screen" +msgstr "" + +#: common/models.py:2561 +msgid "Date Format" +msgstr "" + +#: common/models.py:2562 +msgid "Preferred format for displaying dates" +msgstr "" + +#: common/models.py:2575 part/templates/part/detail.html:41 +msgid "Part Scheduling" +msgstr "" + +#: common/models.py:2576 +msgid "Display part scheduling information" +msgstr "" + +#: common/models.py:2581 part/templates/part/detail.html:62 +msgid "Part Stocktake" +msgstr "" + +#: common/models.py:2583 +msgid "Display part stocktake information (if stocktake functionality is enabled)" +msgstr "" + +#: common/models.py:2589 +msgid "Table String Length" +msgstr "" + +#: common/models.py:2591 +msgid "Maximum length limit for strings displayed in table views" +msgstr "" + +#: common/models.py:2597 +msgid "Receive error reports" +msgstr "" + +#: common/models.py:2598 +msgid "Receive notifications for system errors" +msgstr "" + +#: common/models.py:2603 +msgid "Last used printing machines" +msgstr "" + +#: common/models.py:2604 msgid "Save the last used printing machines for a user" msgstr "" -#: common/models.py:2557 common/models.py:2558 common/models.py:2715 -#: common/models.py:2716 common/models.py:2961 common/models.py:2962 -#: common/models.py:3288 common/models.py:3289 importer/models.py:88 -#: part/models.py:3307 part/models.py:3394 part/models.py:3468 -#: part/models.py:3496 plugin/models.py:274 plugin/models.py:275 -#: report/templates/report/inventree_test_report.html:105 -#: templates/js/translated/stock.js:3120 users/models.py:111 +#: common/models.py:2621 common/models.py:2622 common/models.py:2779 +#: common/models.py:2780 common/models.py:3025 common/models.py:3026 +#: common/models.py:3349 common/models.py:3350 common/models.py:3534 +#: importer/models.py:89 part/models.py:3358 part/models.py:3445 +#: part/models.py:3519 part/models.py:3547 plugin/models.py:313 +#: plugin/models.py:314 report/templates/report/inventree_test_report.html:105 +#: templates/js/translated/stock.js:3121 users/models.py:111 msgid "User" msgstr "Pengguna" -#: common/models.py:2580 +#: common/models.py:2644 msgid "Price break quantity" msgstr "" -#: common/models.py:2587 company/serializers.py:513 order/admin.py:42 -#: order/models.py:1430 order/models.py:2417 -#: templates/js/translated/company.js:1823 templates/js/translated/part.js:1892 +#: common/models.py:2651 company/serializers.py:524 order/admin.py:42 +#: order/models.py:1447 order/models.py:2456 +#: templates/js/translated/company.js:1824 templates/js/translated/part.js:1892 #: templates/js/translated/pricing.js:621 #: templates/js/translated/return_order.js:739 msgid "Price" -msgstr "" +msgstr "Harga" -#: common/models.py:2588 +#: common/models.py:2652 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:2692 common/models.py:2877 +#: common/models.py:2756 common/models.py:2941 msgid "Endpoint" msgstr "" -#: common/models.py:2693 +#: common/models.py:2757 msgid "Endpoint at which this webhook is received" msgstr "" -#: common/models.py:2703 +#: common/models.py:2767 msgid "Name for this webhook" msgstr "" -#: common/models.py:2707 +#: common/models.py:2771 msgid "Is this webhook active" msgstr "" -#: common/models.py:2723 users/models.py:159 +#: common/models.py:2787 users/models.py:159 msgid "Token" msgstr "" -#: common/models.py:2724 +#: common/models.py:2788 msgid "Token for access" msgstr "" -#: common/models.py:2732 +#: common/models.py:2796 msgid "Secret" msgstr "" -#: common/models.py:2733 +#: common/models.py:2797 msgid "Shared secret for HMAC" msgstr "" -#: common/models.py:2841 +#: common/models.py:2905 msgid "Message ID" msgstr "" -#: common/models.py:2842 +#: common/models.py:2906 msgid "Unique identifier for this message" msgstr "" -#: common/models.py:2850 +#: common/models.py:2914 msgid "Host" msgstr "" -#: common/models.py:2851 +#: common/models.py:2915 msgid "Host from which this message was received" msgstr "" -#: common/models.py:2859 +#: common/models.py:2923 msgid "Header" msgstr "" -#: common/models.py:2860 +#: common/models.py:2924 msgid "Header of this message" msgstr "" -#: common/models.py:2867 +#: common/models.py:2931 msgid "Body" msgstr "" -#: common/models.py:2868 +#: common/models.py:2932 msgid "Body of this message" msgstr "" -#: common/models.py:2878 +#: common/models.py:2942 msgid "Endpoint on which this message was received" msgstr "" -#: common/models.py:2883 +#: common/models.py:2947 msgid "Worked on" msgstr "" -#: common/models.py:2884 +#: common/models.py:2948 msgid "Was the work on this message finished?" msgstr "" -#: common/models.py:3010 +#: common/models.py:3074 msgid "Id" msgstr "" -#: common/models.py:3012 templates/js/translated/company.js:965 -#: templates/js/translated/news.js:44 +#: common/models.py:3076 part/serializers.py:271 +#: templates/js/translated/company.js:966 templates/js/translated/news.js:44 msgid "Title" -msgstr "" +msgstr "Judul" -#: common/models.py:3014 common/models.py:3272 company/models.py:149 -#: company/models.py:446 company/models.py:512 company/models.py:818 -#: order/models.py:302 order/models.py:1385 order/models.py:1817 -#: part/admin.py:55 part/models.py:1057 +#: common/models.py:3078 common/models.py:3333 company/models.py:146 +#: company/models.py:443 company/models.py:509 company/models.py:815 +#: order/models.py:309 order/models.py:1402 order/models.py:1846 +#: part/admin.py:55 part/models.py:1118 #: part/templates/part/part_scheduling.html:11 #: report/templates/report/inventree_build_order_report.html:164 -#: stock/admin.py:229 templates/js/translated/company.js:1319 -#: templates/js/translated/company.js:1673 templates/js/translated/order.js:376 +#: stock/admin.py:230 templates/js/translated/company.js:1320 +#: templates/js/translated/company.js:1674 templates/js/translated/order.js:376 #: templates/js/translated/part.js:2475 -#: templates/js/translated/purchase_order.js:2110 -#: templates/js/translated/purchase_order.js:2274 +#: templates/js/translated/purchase_order.js:2094 +#: templates/js/translated/purchase_order.js:2258 #: templates/js/translated/return_order.js:778 -#: templates/js/translated/sales_order.js:1092 -#: templates/js/translated/sales_order.js:2023 +#: templates/js/translated/sales_order.js:1058 +#: templates/js/translated/sales_order.js:2004 msgid "Link" msgstr "Tautan" -#: common/models.py:3016 templates/js/translated/news.js:60 +#: common/models.py:3080 templates/js/translated/news.js:60 msgid "Published" msgstr "" -#: common/models.py:3018 templates/InvenTree/settings/plugin_settings.html:32 +#: common/models.py:3082 templates/InvenTree/settings/plugin_settings.html:32 #: templates/js/translated/news.js:56 templates/js/translated/plugin.js:103 msgid "Author" msgstr "" -#: common/models.py:3020 templates/js/translated/news.js:52 +#: common/models.py:3084 templates/js/translated/news.js:52 msgid "Summary" -msgstr "" +msgstr "Kesimpulan" -#: common/models.py:3023 +#: common/models.py:3087 msgid "Read" msgstr "" -#: common/models.py:3023 +#: common/models.py:3087 msgid "Was this news item read?" msgstr "" -#: common/models.py:3040 company/models.py:159 part/models.py:1067 +#: common/models.py:3104 company/models.py:156 part/models.py:1128 #: report/templates/report/inventree_bill_of_materials_report.html:126 #: report/templates/report/inventree_bill_of_materials_report.html:148 #: report/templates/report/inventree_return_order_report.html:35 -#: stock/templates/stock/item_base.html:133 templates/503.html:31 +#: stock/templates/stock/item_base.html:130 templates/503.html:31 #: templates/hover_image.html:7 templates/hover_image.html:9 #: templates/modals.html:6 msgid "Image" msgstr "" -#: common/models.py:3040 +#: common/models.py:3104 msgid "Image file" -msgstr "" +msgstr "Berkas Gambar" -#: common/models.py:3052 common/models.py:3256 +#: common/models.py:3116 common/models.py:3317 msgid "Target model type for this image" msgstr "" -#: common/models.py:3056 +#: common/models.py:3120 msgid "Target model ID for this image" msgstr "" -#: common/models.py:3078 +#: common/models.py:3142 msgid "Custom Unit" msgstr "" -#: common/models.py:3099 +#: common/models.py:3160 msgid "Unit symbol must be unique" msgstr "" -#: common/models.py:3114 +#: common/models.py:3175 msgid "Unit name must be a valid identifier" msgstr "" -#: common/models.py:3133 +#: common/models.py:3194 msgid "Unit name" msgstr "" -#: common/models.py:3140 templates/InvenTree/settings/settings_staff_js.html:75 +#: common/models.py:3201 templates/InvenTree/settings/settings_staff_js.html:75 msgid "Symbol" msgstr "" -#: common/models.py:3141 +#: common/models.py:3202 msgid "Optional unit symbol" msgstr "" -#: common/models.py:3147 templates/InvenTree/settings/settings_staff_js.html:71 +#: common/models.py:3208 templates/InvenTree/settings/settings_staff_js.html:71 msgid "Definition" msgstr "" -#: common/models.py:3148 +#: common/models.py:3209 msgid "Unit definition" msgstr "" -#: common/models.py:3206 common/models.py:3263 stock/models.py:2558 -#: templates/js/translated/attachment.js:119 +#: common/models.py:3267 common/models.py:3324 stock/models.py:2674 +#: stock/serializers.py:244 templates/js/translated/attachment.js:119 #: templates/js/translated/attachment.js:345 msgid "Attachment" msgstr "Lampiran" -#: common/models.py:3218 +#: common/models.py:3279 msgid "Missing file" msgstr "File tidak ditemukan" -#: common/models.py:3219 +#: common/models.py:3280 msgid "Missing external link" msgstr "Tautan eksternal tidak ditemukan" -#: common/models.py:3264 +#: common/models.py:3325 msgid "Select file to attach" msgstr "Pilih file untuk dilampirkan" -#: common/models.py:3279 templates/js/translated/attachment.js:120 +#: common/models.py:3340 templates/js/translated/attachment.js:120 #: templates/js/translated/attachment.js:360 msgid "Comment" msgstr "Komentar" -#: common/models.py:3280 +#: common/models.py:3341 msgid "Attachment comment" msgstr "" -#: common/models.py:3296 +#: common/models.py:3357 msgid "Upload date" msgstr "" -#: common/models.py:3297 +#: common/models.py:3358 msgid "Date the file was uploaded" msgstr "" -#: common/models.py:3301 +#: common/models.py:3362 msgid "File size" -msgstr "" +msgstr "Ukuran Berkas" -#: common/models.py:3301 +#: common/models.py:3362 msgid "File size in bytes" msgstr "" -#: common/models.py:3339 common/serializers.py:562 +#: common/models.py:3400 common/serializers.py:609 msgid "Invalid model type specified for attachment" msgstr "" -#: common/notifications.py:314 +#: common/models.py:3409 plugin/models.py:43 users/models.py:100 +msgid "Key" +msgstr "" + +#: common/models.py:3410 +msgid "Value that will be saved in the models database" +msgstr "" + +#: common/models.py:3413 +msgid "Name of the state" +msgstr "" + +#: common/models.py:3417 part/serializers.py:273 +msgid "Label" +msgstr "Label" + +#: common/models.py:3418 +msgid "Label that will be displayed in the frontend" +msgstr "" + +#: common/models.py:3424 +msgid "Color" +msgstr "" + +#: common/models.py:3425 +msgid "Color that will be displayed in the frontend" +msgstr "" + +#: common/models.py:3428 +msgid "Logical Key" +msgstr "" + +#: common/models.py:3430 +msgid "State logical key that is equal to this custom state in business logic" +msgstr "" + +#: common/models.py:3438 part/serializers.py:275 +msgid "Model" +msgstr "Model" + +#: common/models.py:3439 +msgid "Model this state is associated with" +msgstr "" + +#: common/models.py:3443 +msgid "Reference Status Set" +msgstr "" + +#: common/models.py:3444 +msgid "Status set that is extended with this custom state" +msgstr "" + +#: common/models.py:3450 +msgid "Custom State" +msgstr "" + +#: common/models.py:3451 +msgid "Custom States" +msgstr "" + +#: common/models.py:3466 +msgid "Model must be selected" +msgstr "" + +#: common/models.py:3469 +msgid "Key must be selected" +msgstr "" + +#: common/models.py:3472 +msgid "Logical key must be selected" +msgstr "" + +#: common/models.py:3476 +msgid "Key must be different from logical key" +msgstr "" + +#: common/models.py:3480 +msgid "Reference status must be selected" +msgstr "" + +#: common/models.py:3492 +msgid "Reference status set not found" +msgstr "" + +#: common/models.py:3498 +msgid "Key must be different from the logical keys of the reference status" +msgstr "" + +#: common/models.py:3504 +msgid "Logical key must be in the logical keys of the reference status" +msgstr "" + +#: common/models.py:3519 +msgid "Barcode Scan" +msgstr "" + +#: common/models.py:3523 importer/models.py:512 part/models.py:4009 +msgid "Data" +msgstr "" + +#: common/models.py:3524 +msgid "Barcode data" +msgstr "" + +#: common/models.py:3535 +msgid "User who scanned the barcode" +msgstr "" + +#: common/models.py:3540 importer/models.py:60 +msgid "Timestamp" +msgstr "" + +#: common/models.py:3541 +msgid "Date and time of the barcode scan" +msgstr "" + +#: common/models.py:3547 +msgid "URL endpoint which processed the barcode" +msgstr "" + +#: common/models.py:3554 order/models.py:1437 plugin/serializers.py:89 +msgid "Context" +msgstr "" + +#: common/models.py:3555 +msgid "Context data for the barcode scan" +msgstr "" + +#: common/models.py:3562 +msgid "Response" +msgstr "Respon" + +#: common/models.py:3563 +msgid "Response data from the barcode scan" +msgstr "" + +#: common/models.py:3569 report/templates/report/inventree_test_report.html:103 +#: stock/models.py:2660 +msgid "Result" +msgstr "" + +#: common/models.py:3570 +msgid "Was the barcode scan successful?" +msgstr "" + +#: common/notifications.py:328 #, python-brace-format msgid "New {verbose_name}" msgstr "" -#: common/notifications.py:316 +#: common/notifications.py:330 msgid "A new order has been created and assigned to you" msgstr "" -#: common/notifications.py:322 +#: common/notifications.py:336 #, python-brace-format msgid "{verbose_name} canceled" msgstr "" -#: common/notifications.py:324 +#: common/notifications.py:338 msgid "A order that is assigned to you was canceled" msgstr "" -#: common/notifications.py:330 common/notifications.py:337 order/api.py:462 +#: common/notifications.py:344 common/notifications.py:351 order/api.py:440 msgid "Items Received" -msgstr "" +msgstr "Barang diterima" -#: common/notifications.py:332 +#: common/notifications.py:346 msgid "Items have been received against a purchase order" msgstr "" -#: common/notifications.py:339 +#: common/notifications.py:353 msgid "Items have been received against a return order" msgstr "" -#: common/notifications.py:457 +#: common/notifications.py:475 msgid "Error raised by plugin" msgstr "" -#: common/serializers.py:375 +#: common/serializers.py:423 msgid "Is Running" msgstr "" -#: common/serializers.py:381 +#: common/serializers.py:429 msgid "Pending Tasks" msgstr "" -#: common/serializers.py:387 +#: common/serializers.py:435 msgid "Scheduled Tasks" msgstr "" -#: common/serializers.py:393 +#: common/serializers.py:441 msgid "Failed Tasks" msgstr "" -#: common/serializers.py:408 +#: common/serializers.py:456 msgid "Task ID" msgstr "" -#: common/serializers.py:408 +#: common/serializers.py:456 msgid "Unique task ID" msgstr "" -#: common/serializers.py:410 +#: common/serializers.py:458 msgid "Lock" msgstr "" -#: common/serializers.py:410 +#: common/serializers.py:458 msgid "Lock time" msgstr "" -#: common/serializers.py:412 +#: common/serializers.py:460 msgid "Task name" msgstr "" -#: common/serializers.py:414 +#: common/serializers.py:462 msgid "Function" msgstr "" -#: common/serializers.py:414 +#: common/serializers.py:462 msgid "Function name" msgstr "" -#: common/serializers.py:416 +#: common/serializers.py:464 msgid "Arguments" msgstr "" -#: common/serializers.py:416 +#: common/serializers.py:464 msgid "Task arguments" msgstr "" -#: common/serializers.py:419 +#: common/serializers.py:467 msgid "Keyword Arguments" msgstr "" -#: common/serializers.py:419 +#: common/serializers.py:467 msgid "Task keyword arguments" msgstr "" -#: common/serializers.py:529 +#: common/serializers.py:577 msgid "Filename" msgstr "Nama File" -#: common/serializers.py:536 report/api.py:100 report/serializers.py:53 +#: common/serializers.py:584 report/api.py:100 report/serializers.py:54 msgid "Model Type" msgstr "" -#: common/serializers.py:565 +#: common/serializers.py:612 msgid "User does not have permission to create or edit attachments for this model" msgstr "" @@ -4116,15 +4295,15 @@ msgstr "" msgid "Match Items" msgstr "" -#: common/views.py:401 +#: common/views.py:397 msgid "Fields matching failed" msgstr "" -#: common/views.py:464 +#: common/views.py:460 msgid "Parts imported" msgstr "" -#: common/views.py:494 order/templates/order/order_wizard/match_fields.html:27 +#: common/views.py:490 order/templates/order/order_wizard/match_fields.html:27 #: order/templates/order/order_wizard/match_parts.html:19 #: order/templates/order/order_wizard/po_upload.html:49 #: part/templates/part/import_wizard/match_fields.html:27 @@ -4155,429 +4334,429 @@ msgstr "" msgid "Supplier is Active" msgstr "" -#: company/models.py:100 company/models.py:371 +#: company/models.py:97 company/models.py:368 #: company/templates/company/company_base.html:8 #: company/templates/company/company_base.html:12 stock/api.py:812 -#: templates/InvenTree/search.html:178 templates/js/translated/company.js:496 +#: templates/InvenTree/search.html:178 templates/js/translated/company.js:497 msgid "Company" -msgstr "" +msgstr "Perusahaan" -#: company/models.py:101 company/views.py:51 +#: company/models.py:98 company/views.py:51 #: templates/js/translated/search.js:192 msgid "Companies" -msgstr "" +msgstr "Perusahaan" -#: company/models.py:117 +#: company/models.py:114 msgid "Company description" -msgstr "" +msgstr "Deskripsi Perusahaan" -#: company/models.py:118 +#: company/models.py:115 msgid "Description of the company" msgstr "" -#: company/models.py:123 company/templates/company/company_base.html:106 +#: company/models.py:120 company/templates/company/company_base.html:106 #: templates/InvenTree/settings/plugin_settings.html:54 -#: templates/js/translated/company.js:532 +#: templates/js/translated/company.js:533 msgid "Website" -msgstr "" +msgstr "Laman" -#: company/models.py:123 +#: company/models.py:120 msgid "Company website URL" msgstr "" -#: company/models.py:128 +#: company/models.py:125 msgid "Phone number" -msgstr "" +msgstr "Nomor Ponsel" -#: company/models.py:130 +#: company/models.py:127 msgid "Contact phone number" msgstr "" -#: company/models.py:137 +#: company/models.py:134 msgid "Contact email address" -msgstr "" +msgstr "Kontak alamat surel" -#: company/models.py:142 company/models.py:275 -#: company/templates/company/company_base.html:145 order/models.py:342 -#: order/templates/order/order_base.html:208 -#: order/templates/order/return_order_base.html:177 -#: order/templates/order/sales_order_base.html:221 +#: company/models.py:139 company/models.py:272 +#: company/templates/company/company_base.html:145 order/models.py:349 +#: order/templates/order/order_base.html:217 +#: order/templates/order/return_order_base.html:178 +#: order/templates/order/sales_order_base.html:222 msgid "Contact" -msgstr "" +msgstr "Kontak" -#: company/models.py:144 +#: company/models.py:141 msgid "Point of contact" msgstr "" -#: company/models.py:150 +#: company/models.py:147 msgid "Link to external company information" msgstr "" -#: company/models.py:163 +#: company/models.py:160 msgid "Is this company active?" msgstr "" -#: company/models.py:168 +#: company/models.py:165 msgid "Is customer" msgstr "" -#: company/models.py:169 +#: company/models.py:166 msgid "Do you sell items to this company?" msgstr "" -#: company/models.py:174 +#: company/models.py:171 msgid "Is supplier" msgstr "" -#: company/models.py:175 +#: company/models.py:172 msgid "Do you purchase items from this company?" msgstr "" -#: company/models.py:180 +#: company/models.py:177 msgid "Is manufacturer" msgstr "" -#: company/models.py:181 +#: company/models.py:178 msgid "Does this company manufacture parts?" msgstr "" -#: company/models.py:189 +#: company/models.py:186 msgid "Default currency used for this company" msgstr "" -#: company/models.py:314 company/templates/company/company_base.html:124 -#: order/models.py:352 order/templates/order/order_base.html:215 -#: order/templates/order/return_order_base.html:184 -#: order/templates/order/sales_order_base.html:228 +#: company/models.py:311 company/templates/company/company_base.html:124 +#: order/models.py:359 order/templates/order/order_base.html:224 +#: order/templates/order/return_order_base.html:185 +#: order/templates/order/sales_order_base.html:229 msgid "Address" msgstr "" -#: company/models.py:315 company/templates/company/sidebar.html:35 +#: company/models.py:312 company/templates/company/sidebar.html:35 msgid "Addresses" msgstr "" -#: company/models.py:372 +#: company/models.py:369 msgid "Select company" msgstr "" -#: company/models.py:377 +#: company/models.py:374 msgid "Address title" msgstr "" -#: company/models.py:378 +#: company/models.py:375 msgid "Title describing the address entry" msgstr "" -#: company/models.py:384 +#: company/models.py:381 msgid "Primary address" msgstr "" -#: company/models.py:385 +#: company/models.py:382 msgid "Set as primary address" msgstr "" -#: company/models.py:390 templates/js/translated/company.js:914 -#: templates/js/translated/company.js:971 +#: company/models.py:387 templates/js/translated/company.js:915 +#: templates/js/translated/company.js:972 msgid "Line 1" msgstr "" -#: company/models.py:391 +#: company/models.py:388 msgid "Address line 1" msgstr "" -#: company/models.py:397 templates/js/translated/company.js:915 -#: templates/js/translated/company.js:977 +#: company/models.py:394 templates/js/translated/company.js:916 +#: templates/js/translated/company.js:978 msgid "Line 2" msgstr "" -#: company/models.py:398 +#: company/models.py:395 msgid "Address line 2" msgstr "" -#: company/models.py:404 company/models.py:405 -#: templates/js/translated/company.js:983 +#: company/models.py:401 company/models.py:402 +#: templates/js/translated/company.js:984 msgid "Postal code" -msgstr "" +msgstr "Kode Pos" -#: company/models.py:411 +#: company/models.py:408 msgid "City/Region" msgstr "" -#: company/models.py:412 +#: company/models.py:409 msgid "Postal code city/region" msgstr "" -#: company/models.py:418 +#: company/models.py:415 msgid "State/Province" msgstr "" -#: company/models.py:419 +#: company/models.py:416 msgid "State or province" msgstr "" -#: company/models.py:425 templates/js/translated/company.js:1001 +#: company/models.py:422 templates/js/translated/company.js:1002 msgid "Country" msgstr "" -#: company/models.py:426 +#: company/models.py:423 msgid "Address country" msgstr "" -#: company/models.py:432 +#: company/models.py:429 msgid "Courier shipping notes" msgstr "" -#: company/models.py:433 +#: company/models.py:430 msgid "Notes for shipping courier" msgstr "" -#: company/models.py:439 +#: company/models.py:436 msgid "Internal shipping notes" msgstr "" -#: company/models.py:440 +#: company/models.py:437 msgid "Shipping notes for internal use" msgstr "" -#: company/models.py:447 +#: company/models.py:444 msgid "Link to address information (external)" msgstr "" -#: company/models.py:470 company/models.py:587 company/models.py:811 +#: company/models.py:467 company/models.py:584 company/models.py:808 #: company/templates/company/manufacturer_part.html:7 #: company/templates/company/manufacturer_part.html:24 -#: stock/templates/stock/item_base.html:217 +#: stock/templates/stock/item_base.html:214 msgid "Manufacturer Part" msgstr "" -#: company/models.py:487 company/models.py:779 stock/models.py:787 -#: stock/serializers.py:445 stock/templates/stock/item_base.html:142 +#: company/models.py:484 company/models.py:776 stock/models.py:864 +#: stock/serializers.py:455 stock/templates/stock/item_base.html:139 #: templates/js/translated/bom.js:622 msgid "Base Part" msgstr "" -#: company/models.py:489 company/models.py:781 +#: company/models.py:486 company/models.py:778 msgid "Select part" msgstr "" -#: company/models.py:498 company/templates/company/company_base.html:82 +#: company/models.py:495 company/templates/company/company_base.html:82 #: company/templates/company/manufacturer_part.html:90 -#: company/templates/company/supplier_part.html:145 part/serializers.py:554 -#: stock/templates/stock/item_base.html:207 -#: templates/js/translated/company.js:507 -#: templates/js/translated/company.js:1118 -#: templates/js/translated/company.js:1296 -#: templates/js/translated/company.js:1611 +#: company/templates/company/supplier_part.html:146 part/serializers.py:598 +#: stock/templates/stock/item_base.html:204 +#: templates/js/translated/company.js:508 +#: templates/js/translated/company.js:1119 +#: templates/js/translated/company.js:1297 +#: templates/js/translated/company.js:1612 #: templates/js/translated/table_filters.js:812 msgid "Manufacturer" msgstr "" -#: company/models.py:499 +#: company/models.py:496 msgid "Select manufacturer" msgstr "" -#: company/models.py:505 company/templates/company/manufacturer_part.html:101 -#: company/templates/company/supplier_part.html:153 order/serializers.py:556 -#: part/serializers.py:564 templates/js/translated/company.js:351 -#: templates/js/translated/company.js:1117 -#: templates/js/translated/company.js:1312 -#: templates/js/translated/company.js:1630 templates/js/translated/part.js:1807 -#: templates/js/translated/purchase_order.js:1921 -#: templates/js/translated/purchase_order.js:2123 +#: company/models.py:502 company/templates/company/manufacturer_part.html:101 +#: company/templates/company/supplier_part.html:154 order/serializers.py:641 +#: part/serializers.py:608 templates/js/translated/company.js:352 +#: templates/js/translated/company.js:1118 +#: templates/js/translated/company.js:1313 +#: templates/js/translated/company.js:1631 templates/js/translated/part.js:1807 +#: templates/js/translated/purchase_order.js:1905 +#: templates/js/translated/purchase_order.js:2107 msgid "MPN" msgstr "" -#: company/models.py:513 +#: company/models.py:510 msgid "URL for external manufacturer part link" msgstr "" -#: company/models.py:522 +#: company/models.py:519 msgid "Manufacturer part description" msgstr "" -#: company/models.py:575 +#: company/models.py:572 msgid "Manufacturer Part Parameter" msgstr "" -#: company/models.py:594 +#: company/models.py:591 msgid "Parameter name" msgstr "" -#: company/models.py:600 report/templates/report/inventree_test_report.html:104 -#: stock/models.py:2550 templates/js/translated/company.js:1166 -#: templates/js/translated/company.js:1419 templates/js/translated/part.js:1499 +#: company/models.py:597 report/templates/report/inventree_test_report.html:104 +#: stock/models.py:2666 templates/js/translated/company.js:1167 +#: templates/js/translated/company.js:1420 templates/js/translated/part.js:1499 #: templates/js/translated/stock.js:1607 msgid "Value" msgstr "" -#: company/models.py:601 +#: company/models.py:598 msgid "Parameter value" msgstr "" -#: company/models.py:608 company/templates/company/supplier_part.html:168 -#: part/admin.py:57 part/models.py:1147 part/models.py:3771 -#: part/templates/part/part_base.html:293 -#: templates/js/translated/company.js:1425 templates/js/translated/part.js:1518 +#: company/models.py:605 company/templates/company/supplier_part.html:169 +#: part/admin.py:57 part/models.py:1208 part/models.py:3822 +#: part/templates/part/part_base.html:301 +#: templates/js/translated/company.js:1426 templates/js/translated/part.js:1518 #: templates/js/translated/part.js:1622 templates/js/translated/part.js:2376 msgid "Units" msgstr "" -#: company/models.py:609 +#: company/models.py:606 msgid "Parameter units" msgstr "" -#: company/models.py:662 company/templates/company/supplier_part.html:7 -#: company/templates/company/supplier_part.html:24 order/api.py:442 -#: order/serializers.py:491 stock/models.py:798 -#: stock/templates/stock/item_base.html:233 -#: templates/js/translated/build.js:1052 -#: templates/js/translated/company.js:1600 -#: templates/js/translated/purchase_order.js:752 -#: templates/js/translated/stock.js:2365 +#: company/models.py:659 company/templates/company/supplier_part.html:8 +#: company/templates/company/supplier_part.html:25 order/api.py:392 +#: order/serializers.py:576 stock/models.py:875 +#: stock/templates/stock/item_base.html:230 +#: templates/js/translated/build.js:1055 +#: templates/js/translated/company.js:1601 +#: templates/js/translated/purchase_order.js:735 +#: templates/js/translated/stock.js:2366 msgid "Supplier Part" msgstr "" -#: company/models.py:719 +#: company/models.py:716 msgid "Pack units must be compatible with the base part units" msgstr "" -#: company/models.py:726 +#: company/models.py:723 msgid "Pack units must be greater than zero" msgstr "" -#: company/models.py:740 +#: company/models.py:737 msgid "Linked manufacturer part must reference the same base part" msgstr "" -#: company/models.py:789 company/templates/company/company_base.html:87 -#: company/templates/company/supplier_part.html:129 order/models.py:491 -#: order/templates/order/order_base.html:141 part/bom.py:280 part/bom.py:318 -#: part/serializers.py:538 plugin/builtin/suppliers/digikey.py:25 +#: company/models.py:786 company/templates/company/company_base.html:87 +#: company/templates/company/supplier_part.html:130 order/models.py:503 +#: order/templates/order/order_base.html:150 part/bom.py:279 part/bom.py:314 +#: part/serializers.py:582 plugin/builtin/suppliers/digikey.py:25 #: plugin/builtin/suppliers/lcsc.py:26 plugin/builtin/suppliers/mouser.py:24 -#: plugin/builtin/suppliers/tme.py:26 stock/templates/stock/item_base.html:224 +#: plugin/builtin/suppliers/tme.py:26 stock/templates/stock/item_base.html:221 #: templates/email/overdue_purchase_order.html:16 -#: templates/js/translated/company.js:350 -#: templates/js/translated/company.js:511 -#: templates/js/translated/company.js:1584 templates/js/translated/part.js:1775 +#: templates/js/translated/company.js:351 +#: templates/js/translated/company.js:512 +#: templates/js/translated/company.js:1585 templates/js/translated/part.js:1775 #: templates/js/translated/pricing.js:498 -#: templates/js/translated/purchase_order.js:1759 +#: templates/js/translated/purchase_order.js:1743 #: templates/js/translated/table_filters.js:816 msgid "Supplier" msgstr "" -#: company/models.py:790 +#: company/models.py:787 msgid "Select supplier" msgstr "" -#: company/models.py:796 part/serializers.py:549 +#: company/models.py:793 part/serializers.py:593 msgid "Supplier stock keeping unit" msgstr "" -#: company/models.py:802 +#: company/models.py:799 msgid "Is this supplier part active?" msgstr "" -#: company/models.py:812 +#: company/models.py:809 msgid "Select manufacturer part" msgstr "" -#: company/models.py:819 +#: company/models.py:816 msgid "URL for external supplier part link" msgstr "" -#: company/models.py:828 +#: company/models.py:825 msgid "Supplier part description" msgstr "" -#: company/models.py:835 company/templates/company/supplier_part.html:187 -#: order/serializers.py:698 part/admin.py:415 part/models.py:4288 +#: company/models.py:832 company/templates/company/supplier_part.html:188 +#: order/serializers.py:783 part/admin.py:415 part/models.py:4345 #: part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_bill_of_materials_report.html:140 #: report/templates/report/inventree_purchase_order_report.html:32 #: report/templates/report/inventree_return_order_report.html:27 #: report/templates/report/inventree_sales_order_report.html:32 #: report/templates/report/inventree_stock_location_report.html:105 -#: stock/serializers.py:776 templates/js/translated/purchase_order.js:1185 -#: templates/js/translated/purchase_order.js:1344 +#: stock/serializers.py:807 templates/js/translated/purchase_order.js:1168 +#: templates/js/translated/purchase_order.js:1327 msgid "Note" msgstr "" -#: company/models.py:844 part/models.py:2117 +#: company/models.py:841 part/models.py:2177 msgid "base cost" msgstr "" -#: company/models.py:845 part/models.py:2118 +#: company/models.py:842 part/models.py:2178 msgid "Minimum charge (e.g. stocking fee)" msgstr "" -#: company/models.py:853 +#: company/models.py:850 msgid "Part packaging" msgstr "" -#: company/models.py:858 templates/js/translated/company.js:1651 +#: company/models.py:855 templates/js/translated/company.js:1652 #: templates/js/translated/part.js:1828 templates/js/translated/part.js:1884 -#: templates/js/translated/purchase_order.js:311 -#: templates/js/translated/purchase_order.js:841 -#: templates/js/translated/purchase_order.js:1103 -#: templates/js/translated/purchase_order.js:2154 -#: templates/js/translated/purchase_order.js:2171 +#: templates/js/translated/purchase_order.js:294 +#: templates/js/translated/purchase_order.js:824 +#: templates/js/translated/purchase_order.js:1086 +#: templates/js/translated/purchase_order.js:2138 +#: templates/js/translated/purchase_order.js:2155 msgid "Pack Quantity" msgstr "" -#: company/models.py:860 +#: company/models.py:857 msgid "Total quantity supplied in a single pack. Leave empty for single items." msgstr "" -#: company/models.py:879 part/models.py:2124 +#: company/models.py:876 part/models.py:2184 msgid "multiple" msgstr "" -#: company/models.py:880 +#: company/models.py:877 msgid "Order multiple" msgstr "" -#: company/models.py:892 +#: company/models.py:889 msgid "Quantity available from supplier" msgstr "" -#: company/models.py:898 +#: company/models.py:895 msgid "Availability Updated" msgstr "" -#: company/models.py:899 +#: company/models.py:896 msgid "Date of last update of availability data" msgstr "" -#: company/models.py:1027 +#: company/models.py:1024 msgid "Supplier Price Break" msgstr "" -#: company/serializers.py:174 +#: company/serializers.py:178 msgid "Default currency used for this supplier" msgstr "" -#: company/serializers.py:210 +#: company/serializers.py:214 msgid "Company Name" msgstr "" -#: company/serializers.py:393 part/admin.py:126 part/serializers.py:898 -#: part/templates/part/part_base.html:197 -#: templates/js/translated/company.js:1689 +#: company/serializers.py:397 part/admin.py:126 part/serializers.py:950 +#: part/templates/part/part_base.html:198 stock/serializers.py:474 +#: templates/js/translated/company.js:1690 #: templates/js/translated/table_filters.js:362 msgid "In Stock" msgstr "" #: company/templates/company/company_base.html:16 -#: part/templates/part/part_base.html:146 -#: templates/js/translated/company.js:1287 -#: templates/js/translated/company.js:1575 -#: templates/js/translated/model_renderers.js:313 +#: part/templates/part/part_base.html:147 +#: templates/js/translated/company.js:1288 +#: templates/js/translated/company.js:1576 +#: templates/js/translated/model_renderers.js:316 #: templates/js/translated/part.js:817 templates/js/translated/part.js:1225 msgid "Inactive" -msgstr "" +msgstr "Tidak aktif" #: company/templates/company/company_base.html:27 -#: templates/js/translated/purchase_order.js:242 +#: templates/js/translated/purchase_order.js:224 msgid "Create Purchase Order" msgstr "" @@ -4590,7 +4769,7 @@ msgid "Edit company information" msgstr "" #: company/templates/company/company_base.html:39 -#: templates/js/translated/company.js:445 +#: templates/js/translated/company.js:446 msgid "Edit Company" msgstr "" @@ -4605,11 +4784,12 @@ msgstr "" #: company/templates/company/company_base.html:53 #: company/templates/company/manufacturer_part.html:51 -#: company/templates/company/supplier_part.html:83 +#: company/templates/company/supplier_part.html:84 #: part/templates/part/part_thumb.html:20 #: report/templates/report/inventree_build_order_report.html:98 #: report/templates/report/inventree_purchase_order_report.html:40 #: report/templates/report/inventree_sales_order_report.html:40 +#: report/templates/report/inventree_sales_order_shipment_report.html:37 #: report/templates/report/inventree_test_report.html:84 #: report/templates/report/inventree_test_report.html:162 msgid "Part image" @@ -4618,7 +4798,7 @@ msgstr "" #: company/templates/company/company_base.html:61 #: part/templates/part/part_thumb.html:12 msgid "Upload new image" -msgstr "" +msgstr "Unggah Gambar Baru" #: company/templates/company/company_base.html:64 #: part/templates/part/part_thumb.html:14 @@ -4628,21 +4808,21 @@ msgstr "" #: company/templates/company/company_base.html:66 #: part/templates/part/part_thumb.html:16 msgid "Delete image" -msgstr "" +msgstr "Hapus Gambar" -#: company/templates/company/company_base.html:92 order/models.py:990 -#: order/models.py:2147 order/templates/order/return_order_base.html:134 -#: order/templates/order/sales_order_base.html:151 stock/models.py:840 -#: stock/models.py:841 stock/serializers.py:1329 -#: stock/templates/stock/item_base.html:405 +#: company/templates/company/company_base.html:92 order/models.py:1017 +#: order/models.py:2186 order/templates/order/return_order_base.html:135 +#: order/templates/order/sales_order_base.html:152 stock/models.py:917 +#: stock/models.py:918 stock/serializers.py:1360 +#: stock/templates/stock/item_base.html:402 #: templates/email/overdue_sales_order.html:16 -#: templates/js/translated/company.js:503 +#: templates/js/translated/company.js:504 #: templates/js/translated/return_order.js:295 -#: templates/js/translated/sales_order.js:820 -#: templates/js/translated/stock.js:3043 +#: templates/js/translated/sales_order.js:779 +#: templates/js/translated/stock.js:3044 #: templates/js/translated/table_filters.js:820 msgid "Customer" -msgstr "" +msgstr "Pelanggan" #: company/templates/company/company_base.html:117 msgid "Uses default currency" @@ -4650,33 +4830,33 @@ msgstr "" #: company/templates/company/company_base.html:131 msgid "Phone" -msgstr "" +msgstr "Ponsel" #: company/templates/company/company_base.html:211 -#: part/templates/part/part_base.html:536 +#: part/templates/part/part_base.html:544 msgid "Remove Image" -msgstr "" +msgstr "Hapus Gambar" #: company/templates/company/company_base.html:212 msgid "Remove associated image from this company" msgstr "" #: company/templates/company/company_base.html:214 -#: part/templates/part/part_base.html:539 +#: part/templates/part/part_base.html:547 #: templates/InvenTree/settings/user.html:88 #: templates/InvenTree/settings/user_sso.html:43 msgid "Remove" msgstr "" #: company/templates/company/company_base.html:243 -#: part/templates/part/part_base.html:568 +#: part/templates/part/part_base.html:576 msgid "Upload Image" -msgstr "" +msgstr "Unggah Gambar" #: company/templates/company/company_base.html:258 -#: part/templates/part/part_base.html:622 +#: part/templates/part/part_base.html:630 msgid "Download Image" -msgstr "" +msgstr "Unduh Gambar" #: company/templates/company/detail.html:15 #: company/templates/company/manufacturer_part_sidebar.html:7 @@ -4714,7 +4894,7 @@ msgstr "" #: company/templates/company/detail.html:75 #: company/templates/company/sidebar.html:12 #: company/templates/company/supplier_part_sidebar.html:7 -#: order/templates/order/order_base.html:13 +#: order/templates/order/order_base.html:14 #: order/templates/order/purchase_orders.html:8 #: order/templates/order/purchase_orders.html:12 #: part/templates/part/detail.html:122 part/templates/part/part_sidebar.html:35 @@ -4737,7 +4917,7 @@ msgstr "" #: company/templates/company/detail.html:101 #: company/templates/company/sidebar.html:21 -#: order/templates/order/sales_order_base.html:13 +#: order/templates/order/sales_order_base.html:14 #: order/templates/order/sales_orders.html:8 #: order/templates/order/sales_orders.html:15 #: part/templates/part/detail.html:143 part/templates/part/part_sidebar.html:39 @@ -4764,7 +4944,7 @@ msgstr "" #: company/templates/company/detail.html:142 #: company/templates/company/sidebar.html:29 -#: order/templates/order/return_order_base.html:13 +#: order/templates/order/return_order_base.html:14 #: order/templates/order/return_orders.html:8 #: order/templates/order/return_orders.html:15 #: templates/InvenTree/settings/sidebar.html:61 @@ -4811,24 +4991,24 @@ msgid "Manufacturers" msgstr "" #: company/templates/company/manufacturer_part.html:35 -#: company/templates/company/supplier_part.html:227 -#: part/templates/part/detail.html:125 part/templates/part/part_base.html:83 +#: company/templates/company/supplier_part.html:228 +#: part/templates/part/detail.html:125 part/templates/part/part_base.html:84 msgid "Order part" msgstr "" #: company/templates/company/manufacturer_part.html:39 -#: templates/js/translated/company.js:1343 +#: templates/js/translated/company.js:1344 msgid "Edit manufacturer part" msgstr "" #: company/templates/company/manufacturer_part.html:43 -#: templates/js/translated/company.js:1344 +#: templates/js/translated/company.js:1345 msgid "Delete manufacturer part" msgstr "" #: company/templates/company/manufacturer_part.html:65 -#: company/templates/company/supplier_part.html:97 order/api.py:448 -#: order/serializers.py:564 +#: company/templates/company/supplier_part.html:98 order/api.py:411 +#: order/serializers.py:649 msgid "Internal Part" msgstr "" @@ -4837,8 +5017,8 @@ msgid "No manufacturer information available" msgstr "" #: company/templates/company/manufacturer_part.html:119 -#: company/templates/company/supplier_part.html:15 company/views.py:31 -#: part/admin.py:122 part/serializers.py:904 +#: company/templates/company/supplier_part.html:16 company/views.py:31 +#: part/admin.py:122 part/serializers.py:956 #: part/templates/part/part_sidebar.html:33 templates/InvenTree/search.html:190 #: templates/navbar.html:48 msgid "Suppliers" @@ -4887,112 +5067,113 @@ msgstr "" msgid "Contacts" msgstr "" -#: company/templates/company/supplier_part.html:50 -#: templates/js/translated/company.js:1526 +#: company/templates/company/supplier_part.html:51 +#: templates/js/translated/company.js:1527 msgid "Supplier part actions" msgstr "" -#: company/templates/company/supplier_part.html:55 #: company/templates/company/supplier_part.html:56 -#: company/templates/company/supplier_part.html:228 +#: company/templates/company/supplier_part.html:57 +#: company/templates/company/supplier_part.html:229 #: part/templates/part/detail.html:126 msgid "Order Part" msgstr "" -#: company/templates/company/supplier_part.html:60 #: company/templates/company/supplier_part.html:61 +#: company/templates/company/supplier_part.html:62 msgid "Update Availability" msgstr "" -#: company/templates/company/supplier_part.html:63 #: company/templates/company/supplier_part.html:64 -#: templates/js/translated/company.js:294 +#: company/templates/company/supplier_part.html:65 +#: templates/js/translated/company.js:295 msgid "Edit Supplier Part" msgstr "" -#: company/templates/company/supplier_part.html:68 #: company/templates/company/supplier_part.html:69 -#: templates/js/translated/company.js:269 +#: company/templates/company/supplier_part.html:70 +#: templates/js/translated/company.js:270 msgid "Duplicate Supplier Part" msgstr "" -#: company/templates/company/supplier_part.html:73 +#: company/templates/company/supplier_part.html:74 msgid "Delete Supplier Part" msgstr "" -#: company/templates/company/supplier_part.html:74 +#: company/templates/company/supplier_part.html:75 msgid "Delete Supplier Part" msgstr "" -#: company/templates/company/supplier_part.html:133 +#: company/templates/company/supplier_part.html:134 +#: order/templates/order/order_base.html:155 msgid "No supplier information available" msgstr "" -#: company/templates/company/supplier_part.html:139 order/serializers.py:553 -#: part/bom.py:287 part/bom.py:319 part/serializers.py:548 -#: templates/js/translated/company.js:349 templates/js/translated/part.js:1793 +#: company/templates/company/supplier_part.html:140 order/serializers.py:638 +#: part/bom.py:286 part/bom.py:315 part/serializers.py:592 +#: templates/js/translated/company.js:350 templates/js/translated/part.js:1793 #: templates/js/translated/pricing.js:510 -#: templates/js/translated/purchase_order.js:1920 -#: templates/js/translated/purchase_order.js:2098 +#: templates/js/translated/purchase_order.js:1904 +#: templates/js/translated/purchase_order.js:2082 msgid "SKU" msgstr "" -#: company/templates/company/supplier_part.html:206 +#: company/templates/company/supplier_part.html:207 msgid "Supplier Part Stock" msgstr "" -#: company/templates/company/supplier_part.html:209 -#: part/templates/part/detail.html:24 stock/templates/stock/location.html:204 +#: company/templates/company/supplier_part.html:210 +#: part/templates/part/detail.html:24 stock/templates/stock/location.html:205 msgid "Create new stock item" msgstr "" -#: company/templates/company/supplier_part.html:210 -#: part/templates/part/detail.html:25 stock/templates/stock/location.html:205 +#: company/templates/company/supplier_part.html:211 +#: part/templates/part/detail.html:25 stock/templates/stock/location.html:206 #: templates/js/translated/stock.js:543 msgid "New Stock Item" msgstr "" -#: company/templates/company/supplier_part.html:223 +#: company/templates/company/supplier_part.html:224 msgid "Supplier Part Orders" msgstr "" -#: company/templates/company/supplier_part.html:246 +#: company/templates/company/supplier_part.html:247 msgid "Pricing Information" msgstr "" -#: company/templates/company/supplier_part.html:251 -#: templates/js/translated/company.js:398 +#: company/templates/company/supplier_part.html:252 +#: templates/js/translated/company.js:399 #: templates/js/translated/pricing.js:684 msgid "Add Price Break" msgstr "" -#: company/templates/company/supplier_part.html:270 +#: company/templates/company/supplier_part.html:271 msgid "Supplier Part Notes" msgstr "" -#: company/templates/company/supplier_part.html:305 +#: company/templates/company/supplier_part.html:306 msgid "Supplier Part QR Code" msgstr "" -#: company/templates/company/supplier_part.html:316 +#: company/templates/company/supplier_part.html:317 msgid "Link Barcode to Supplier Part" msgstr "" -#: company/templates/company/supplier_part.html:388 +#: company/templates/company/supplier_part.html:389 msgid "Update Part Availability" msgstr "" #: company/templates/company/supplier_part_sidebar.html:5 -#: part/serializers.py:902 part/stocktake.py:223 +#: part/serializers.py:954 part/stocktake.py:223 #: part/templates/part/category.html:180 #: part/templates/part/category_sidebar.html:17 stock/admin.py:68 -#: stock/serializers.py:1014 stock/serializers.py:1192 -#: stock/templates/stock/location.html:167 -#: stock/templates/stock/location.html:188 -#: stock/templates/stock/location.html:200 +#: stock/serializers.py:1045 stock/serializers.py:1223 +#: stock/templates/stock/location.html:168 +#: stock/templates/stock/location.html:189 +#: stock/templates/stock/location.html:201 #: stock/templates/stock/location_sidebar.html:7 #: templates/InvenTree/search.html:155 templates/js/translated/part.js:1067 -#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2850 +#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2851 #: users/models.py:206 msgid "Stock Items" msgstr "" @@ -5016,105 +5197,105 @@ msgstr "" #: company/views.py:44 msgid "New Customer" -msgstr "" +msgstr "Pelanggan Baru" #: company/views.py:52 msgid "New Company" msgstr "" -#: generic/states/tests.py:18 order/status_codes.py:13 +#: generic/states/fields.py:118 +msgid "Custom status key" +msgstr "" + +#: generic/states/fields.py:119 +msgid "Additional status information for this item" +msgstr "" + +#: generic/states/tests.py:22 order/status_codes.py:13 msgid "Placed" msgstr "Diletakkan" -#: importer/mixins.py:263 +#: importer/mixins.py:261 msgid "Invalid export format" msgstr "" -#: importer/models.py:59 -msgid "Timestamp" -msgstr "" - -#: importer/models.py:64 +#: importer/models.py:65 msgid "Data file to import" msgstr "" -#: importer/models.py:73 templates/js/translated/tables.js:558 +#: importer/models.py:74 templates/js/translated/tables.js:558 msgid "Columns" msgstr "" -#: importer/models.py:84 +#: importer/models.py:85 msgid "Import status" msgstr "" -#: importer/models.py:94 +#: importer/models.py:95 msgid "Field Defaults" msgstr "" -#: importer/models.py:101 +#: importer/models.py:102 msgid "Field Overrides" msgstr "" -#: importer/models.py:108 +#: importer/models.py:109 msgid "Field Filters" msgstr "" -#: importer/models.py:230 +#: importer/models.py:239 msgid "Some required fields have not been mapped" msgstr "" -#: importer/models.py:387 +#: importer/models.py:396 msgid "Column is already mapped to a database field" msgstr "" -#: importer/models.py:392 +#: importer/models.py:401 msgid "Field is already mapped to a data column" msgstr "" -#: importer/models.py:401 +#: importer/models.py:410 msgid "Column mapping must be linked to a valid import session" msgstr "" -#: importer/models.py:406 +#: importer/models.py:415 msgid "Column does not exist in the data file" msgstr "" -#: importer/models.py:413 +#: importer/models.py:422 msgid "Field does not exist in the target model" msgstr "" -#: importer/models.py:417 +#: importer/models.py:426 msgid "Selected field is read-only" msgstr "" -#: importer/models.py:422 importer/models.py:493 +#: importer/models.py:431 importer/models.py:502 msgid "Import Session" msgstr "" -#: importer/models.py:426 +#: importer/models.py:435 msgid "Field" msgstr "" -#: importer/models.py:428 +#: importer/models.py:437 msgid "Column" msgstr "" -#: importer/models.py:497 +#: importer/models.py:506 msgid "Row Index" msgstr "" -#: importer/models.py:500 +#: importer/models.py:509 msgid "Original row data" msgstr "" -#: importer/models.py:503 part/models.py:3951 -msgid "Data" -msgstr "" - -#: importer/models.py:505 machine/models.py:110 +#: importer/models.py:514 machine/models.py:110 msgid "Errors" msgstr "" -#: importer/models.py:507 part/api.py:873 +#: importer/models.py:516 part/api.py:857 msgid "Valid" msgstr "" @@ -5166,19 +5347,19 @@ msgstr "" msgid "Row has already been completed" msgstr "" -#: importer/status_codes.py:11 +#: importer/status_codes.py:13 msgid "Initializing" msgstr "" -#: importer/status_codes.py:12 +#: importer/status_codes.py:18 msgid "Mapping Columns" msgstr "" -#: importer/status_codes.py:13 +#: importer/status_codes.py:21 msgid "Importing Data" msgstr "" -#: importer/status_codes.py:16 +#: importer/status_codes.py:24 msgid "Processing Data" msgstr "" @@ -5202,52 +5383,52 @@ msgstr "" msgid "Value must be a valid dictionary object" msgstr "" -#: machine/machine_types/label_printer.py:215 -msgid "Copies" -msgstr "" - #: machine/machine_types/label_printer.py:216 +msgid "Copies" +msgstr "Tersalin" + +#: machine/machine_types/label_printer.py:217 msgid "Number of copies to print for each label" msgstr "" -#: machine/machine_types/label_printer.py:231 +#: machine/machine_types/label_printer.py:232 msgid "Connected" msgstr "" -#: machine/machine_types/label_printer.py:232 order/api.py:1410 -#: templates/js/translated/sales_order.js:1078 +#: machine/machine_types/label_printer.py:233 order/api.py:1532 +#: templates/js/translated/sales_order.js:1044 msgid "Unknown" -msgstr "" +msgstr "Tidak diketahui" -#: machine/machine_types/label_printer.py:233 +#: machine/machine_types/label_printer.py:234 msgid "Printing" msgstr "" -#: machine/machine_types/label_printer.py:234 +#: machine/machine_types/label_printer.py:235 msgid "No media" msgstr "" -#: machine/machine_types/label_printer.py:235 +#: machine/machine_types/label_printer.py:236 msgid "Paper jam" msgstr "" -#: machine/machine_types/label_printer.py:236 +#: machine/machine_types/label_printer.py:237 msgid "Disconnected" -msgstr "" +msgstr "Jaringan Terputus" -#: machine/machine_types/label_printer.py:243 +#: machine/machine_types/label_printer.py:244 msgid "Label Printer" msgstr "" -#: machine/machine_types/label_printer.py:244 +#: machine/machine_types/label_printer.py:245 msgid "Directly print labels for various items." msgstr "" -#: machine/machine_types/label_printer.py:250 +#: machine/machine_types/label_printer.py:251 msgid "Printer Location" msgstr "" -#: machine/machine_types/label_printer.py:251 +#: machine/machine_types/label_printer.py:252 msgid "Scope the printer to a specific location" msgstr "" @@ -5307,79 +5488,75 @@ msgstr "" #: report/templates/report/inventree_purchase_order_report.html:31 #: report/templates/report/inventree_sales_order_report.html:31 #: templates/js/translated/order.js:352 -#: templates/js/translated/purchase_order.js:2195 -#: templates/js/translated/sales_order.js:1883 +#: templates/js/translated/purchase_order.js:2179 +#: templates/js/translated/sales_order.js:1864 msgid "Total Price" -msgstr "" +msgstr "Total Harga" -#: order/api.py:80 order/api.py:151 order/serializers.py:93 -#: order/templates/order/order_base.html:123 -#: order/templates/order/return_order_base.html:116 -#: order/templates/order/sales_order_base.html:125 +#: order/api.py:78 order/api.py:149 order/serializers.py:124 +#: order/templates/order/order_base.html:124 +#: order/templates/order/return_order_base.html:117 +#: order/templates/order/sales_order_base.html:126 msgid "Order Status" msgstr "" -#: order/api.py:88 order/templates/order/order_base.html:111 -#: order/templates/order/return_order_base.html:104 -#: order/templates/order/sales_order_base.html:113 +#: order/api.py:86 order/templates/order/order_base.html:112 +#: order/templates/order/return_order_base.html:105 +#: order/templates/order/sales_order_base.html:114 msgid "Order Reference" msgstr "" -#: order/api.py:116 templates/js/translated/table_filters.js:93 +#: order/api.py:114 order/api.py:1022 +#: templates/js/translated/table_filters.js:93 #: templates/js/translated/table_filters.js:625 #: templates/js/translated/table_filters.js:651 #: templates/js/translated/table_filters.js:666 msgid "Outstanding" msgstr "" -#: order/api.py:132 +#: order/api.py:130 msgid "Has Project Code" msgstr "" -#: order/api.py:155 templates/js/translated/table_filters.js:201 +#: order/api.py:153 templates/js/translated/table_filters.js:201 #: templates/js/translated/table_filters.js:791 msgid "Has Pricing" msgstr "" -#: order/api.py:230 -msgid "No matching purchase order found" -msgstr "" - -#: order/api.py:425 order/api.py:763 order/models.py:1484 order/models.py:1598 -#: order/models.py:1649 order/models.py:1764 order/models.py:1923 -#: order/models.py:2383 order/models.py:2439 -#: templates/js/translated/sales_order.js:1524 +#: order/api.py:375 order/api.py:771 order/api.py:986 order/models.py:1500 +#: order/models.py:1614 order/models.py:1665 order/models.py:1793 +#: order/models.py:1956 order/models.py:2422 order/models.py:2478 +#: templates/js/translated/sales_order.js:1490 msgid "Order" msgstr "" -#: order/api.py:429 order/api.py:784 +#: order/api.py:379 order/api.py:809 msgid "Order Complete" msgstr "" -#: order/api.py:452 +#: order/api.py:430 msgid "Order Pending" msgstr "" -#: order/api.py:1404 order/models.py:379 order/models.py:1485 -#: order/models.py:1599 order/templates/order/order_base.html:9 -#: order/templates/order/order_base.html:18 +#: order/api.py:1526 order/models.py:386 order/models.py:1501 +#: order/models.py:1615 order/templates/order/order_base.html:10 +#: order/templates/order/order_base.html:19 #: report/templates/report/inventree_purchase_order_report.html:14 -#: stock/serializers.py:120 stock/templates/stock/item_base.html:176 +#: stock/serializers.py:121 stock/templates/stock/item_base.html:173 #: templates/email/overdue_purchase_order.html:15 #: templates/js/translated/part.js:1752 templates/js/translated/pricing.js:804 -#: templates/js/translated/purchase_order.js:168 -#: templates/js/translated/purchase_order.js:753 -#: templates/js/translated/purchase_order.js:1743 -#: templates/js/translated/stock.js:2345 templates/js/translated/stock.js:2991 +#: templates/js/translated/purchase_order.js:736 +#: templates/js/translated/purchase_order.js:1727 +#: templates/js/translated/stock.js:2346 templates/js/translated/stock.js:2992 msgid "Purchase Order" msgstr "" -#: order/api.py:1408 order/models.py:2091 order/models.py:2384 -#: order/models.py:2440 order/templates/order/return_order_base.html:9 -#: order/templates/order/return_order_base.html:28 +#: order/api.py:1530 order/models.py:2124 order/models.py:2423 +#: order/models.py:2479 order/templates/order/return_order_base.html:10 +#: order/templates/order/return_order_base.html:29 #: report/templates/report/inventree_return_order_report.html:13 #: templates/js/translated/return_order.js:280 -#: templates/js/translated/stock.js:3025 +#: templates/js/translated/stock.js:3026 msgid "Return Order" msgstr "" @@ -5387,751 +5564,782 @@ msgstr "" msgid "Total price for this order" msgstr "" -#: order/models.py:95 order/serializers.py:71 +#: order/models.py:95 order/serializers.py:73 msgid "Order Currency" msgstr "" -#: order/models.py:98 order/serializers.py:72 +#: order/models.py:98 order/serializers.py:74 msgid "Currency for this order (leave blank to use company default)" msgstr "" -#: order/models.py:246 +#: order/models.py:243 msgid "Contact does not match selected company" msgstr "" -#: order/models.py:289 +#: order/models.py:296 msgid "Order description (optional)" msgstr "" -#: order/models.py:298 +#: order/models.py:305 msgid "Select project code for this order" msgstr "" -#: order/models.py:302 order/models.py:1385 order/models.py:1817 +#: order/models.py:309 order/models.py:1402 order/models.py:1846 msgid "Link to external page" msgstr "" -#: order/models.py:310 +#: order/models.py:317 msgid "Expected date for order delivery. Order will be overdue after this date." msgstr "" -#: order/models.py:324 +#: order/models.py:331 msgid "Created By" msgstr "" -#: order/models.py:332 +#: order/models.py:339 msgid "User or group responsible for this order" msgstr "" -#: order/models.py:343 +#: order/models.py:350 msgid "Point of contact for this order" msgstr "" -#: order/models.py:353 +#: order/models.py:360 msgid "Company address for this order" msgstr "" -#: order/models.py:468 order/models.py:979 +#: order/models.py:480 order/models.py:1006 msgid "Order reference" msgstr "" -#: order/models.py:477 +#: order/models.py:489 msgid "Purchase order status" msgstr "" -#: order/models.py:492 +#: order/models.py:504 msgid "Company from which the items are being ordered" msgstr "" -#: order/models.py:503 order/templates/order/order_base.html:153 -#: templates/js/translated/purchase_order.js:1772 +#: order/models.py:515 order/templates/order/order_base.html:162 +#: templates/js/translated/purchase_order.js:1756 msgid "Supplier Reference" msgstr "" -#: order/models.py:504 +#: order/models.py:516 msgid "Supplier order reference code" msgstr "" -#: order/models.py:513 +#: order/models.py:525 msgid "received by" msgstr "" -#: order/models.py:519 order/models.py:2173 +#: order/models.py:531 order/models.py:2212 msgid "Issue Date" msgstr "" -#: order/models.py:520 order/models.py:2174 +#: order/models.py:532 order/models.py:2213 msgid "Date order was issued" msgstr "" -#: order/models.py:527 order/models.py:2181 +#: order/models.py:539 order/models.py:2220 msgid "Date order was completed" msgstr "" -#: order/models.py:571 +#: order/models.py:549 order/models.py:1552 +msgid "Destination for received items" +msgstr "" + +#: order/models.py:593 msgid "Part supplier must match PO supplier" msgstr "" -#: order/models.py:806 +#: order/models.py:828 msgid "Quantity must be a positive number" msgstr "" -#: order/models.py:991 +#: order/models.py:1018 msgid "Company to which the items are being sold" msgstr "" -#: order/models.py:1003 +#: order/models.py:1030 msgid "Sales order status" msgstr "" -#: order/models.py:1014 order/models.py:2166 +#: order/models.py:1041 order/models.py:2205 msgid "Customer Reference " msgstr "" -#: order/models.py:1015 order/models.py:2167 +#: order/models.py:1042 order/models.py:2206 msgid "Customer order reference code" msgstr "" -#: order/models.py:1019 order/models.py:1771 -#: templates/js/translated/sales_order.js:879 -#: templates/js/translated/sales_order.js:1060 +#: order/models.py:1046 order/models.py:1800 +#: templates/js/translated/sales_order.js:838 +#: templates/js/translated/sales_order.js:1026 msgid "Shipment Date" msgstr "" -#: order/models.py:1028 +#: order/models.py:1055 msgid "shipped by" msgstr "" -#: order/models.py:1077 +#: order/models.py:1094 msgid "Order is already complete" msgstr "" -#: order/models.py:1080 +#: order/models.py:1097 msgid "Order is already cancelled" msgstr "" -#: order/models.py:1084 +#: order/models.py:1101 msgid "Only an open order can be marked as complete" msgstr "" -#: order/models.py:1088 +#: order/models.py:1105 msgid "Order cannot be completed as there are incomplete shipments" msgstr "" -#: order/models.py:1093 +#: order/models.py:1110 msgid "Order cannot be completed as there are incomplete line items" msgstr "" -#: order/models.py:1357 +#: order/models.py:1374 msgid "Item quantity" msgstr "" -#: order/models.py:1374 +#: order/models.py:1391 msgid "Line item reference" msgstr "" -#: order/models.py:1381 +#: order/models.py:1398 msgid "Line item notes" msgstr "" -#: order/models.py:1393 +#: order/models.py:1410 msgid "Target date for this line item (leave blank to use the target date from the order)" msgstr "" -#: order/models.py:1414 +#: order/models.py:1431 msgid "Line item description (optional)" msgstr "" -#: order/models.py:1420 -msgid "Context" -msgstr "" - -#: order/models.py:1421 +#: order/models.py:1438 msgid "Additional context for this line" msgstr "" -#: order/models.py:1431 +#: order/models.py:1448 msgid "Unit price" msgstr "" -#: order/models.py:1445 +#: order/models.py:1462 msgid "Purchase Order Line Item" msgstr "" -#: order/models.py:1469 +#: order/models.py:1486 msgid "Supplier part must match supplier" msgstr "" -#: order/models.py:1476 -msgid "deleted" -msgstr "" - -#: order/models.py:1504 +#: order/models.py:1520 msgid "Supplier part" msgstr "" -#: order/models.py:1511 order/templates/order/order_base.html:201 +#: order/models.py:1527 order/templates/order/order_base.html:210 #: templates/js/translated/part.js:1876 templates/js/translated/part.js:1908 -#: templates/js/translated/purchase_order.js:1369 -#: templates/js/translated/purchase_order.js:2239 +#: templates/js/translated/purchase_order.js:1352 +#: templates/js/translated/purchase_order.js:2223 #: templates/js/translated/return_order.js:762 #: templates/js/translated/table_filters.js:119 #: templates/js/translated/table_filters.js:605 msgid "Received" msgstr "" -#: order/models.py:1512 +#: order/models.py:1528 msgid "Number of items received" msgstr "" -#: order/models.py:1520 stock/models.py:959 stock/serializers.py:610 -#: stock/templates/stock/item_base.html:183 -#: templates/js/translated/stock.js:2396 +#: order/models.py:1536 stock/models.py:1036 stock/serializers.py:637 +#: stock/templates/stock/item_base.html:180 +#: templates/js/translated/stock.js:2397 msgid "Purchase Price" msgstr "" -#: order/models.py:1521 +#: order/models.py:1537 msgid "Unit purchase price" msgstr "" -#: order/models.py:1536 -msgid "Where does the Purchaser want this item to be stored?" -msgstr "" - -#: order/models.py:1587 +#: order/models.py:1603 msgid "Purchase Order Extra Line" msgstr "" -#: order/models.py:1616 +#: order/models.py:1632 msgid "Sales Order Line Item" msgstr "" -#: order/models.py:1637 +#: order/models.py:1653 msgid "Virtual part cannot be assigned to a sales order" msgstr "" -#: order/models.py:1642 +#: order/models.py:1658 msgid "Only salable parts can be assigned to a sales order" msgstr "" -#: order/models.py:1668 part/templates/part/part_pricing.html:107 -#: part/templates/part/prices.html:139 templates/js/translated/pricing.js:957 +#: order/models.py:1684 part/templates/part/part_pricing.html:107 +#: part/templates/part/prices.html:139 templates/js/translated/pricing.js:955 msgid "Sale Price" -msgstr "" +msgstr "Harga Jual" -#: order/models.py:1669 +#: order/models.py:1685 msgid "Unit sale price" msgstr "" -#: order/models.py:1678 order/status_codes.py:48 -#: templates/js/translated/sales_order.js:1559 -#: templates/js/translated/sales_order.js:1680 -#: templates/js/translated/sales_order.js:1993 +#: order/models.py:1694 order/status_codes.py:50 +#: templates/js/translated/sales_order.js:1525 +#: templates/js/translated/sales_order.js:1661 +#: templates/js/translated/sales_order.js:1974 msgid "Shipped" msgstr "Dikirim" -#: order/models.py:1679 +#: order/models.py:1695 msgid "Shipped quantity" msgstr "" -#: order/models.py:1751 +#: order/models.py:1769 msgid "Sales Order Shipment" msgstr "" -#: order/models.py:1772 +#: order/models.py:1801 msgid "Date of shipment" msgstr "" -#: order/models.py:1778 templates/js/translated/sales_order.js:1072 +#: order/models.py:1807 templates/js/translated/sales_order.js:1038 msgid "Delivery Date" msgstr "" -#: order/models.py:1779 +#: order/models.py:1808 msgid "Date of delivery of shipment" msgstr "" -#: order/models.py:1787 +#: order/models.py:1816 msgid "Checked By" msgstr "" -#: order/models.py:1788 +#: order/models.py:1817 msgid "User who checked this shipment" msgstr "" -#: order/models.py:1795 order/models.py:2018 order/serializers.py:1475 -#: order/serializers.py:1585 templates/js/translated/model_renderers.js:455 +#: order/models.py:1824 order/models.py:2051 order/serializers.py:1601 +#: order/serializers.py:1725 +#: report/templates/report/inventree_sales_order_shipment_report.html:14 +#: templates/js/translated/model_renderers.js:458 +#: templates/js/translated/sales_order.js:1615 msgid "Shipment" msgstr "" -#: order/models.py:1796 +#: order/models.py:1825 msgid "Shipment number" msgstr "" -#: order/models.py:1804 +#: order/models.py:1833 msgid "Tracking Number" msgstr "" -#: order/models.py:1805 +#: order/models.py:1834 msgid "Shipment tracking information" msgstr "" -#: order/models.py:1812 +#: order/models.py:1841 msgid "Invoice Number" msgstr "" -#: order/models.py:1813 +#: order/models.py:1842 msgid "Reference number for associated invoice" msgstr "" -#: order/models.py:1833 +#: order/models.py:1862 msgid "Shipment has already been sent" msgstr "" -#: order/models.py:1836 +#: order/models.py:1865 msgid "Shipment has no allocated stock items" msgstr "" -#: order/models.py:1912 +#: order/models.py:1945 msgid "Sales Order Extra Line" msgstr "" -#: order/models.py:1941 +#: order/models.py:1974 msgid "Sales Order Allocation" msgstr "" -#: order/models.py:1964 order/models.py:1966 +#: order/models.py:1997 order/models.py:1999 msgid "Stock item has not been assigned" msgstr "" -#: order/models.py:1973 +#: order/models.py:2006 msgid "Cannot allocate stock item to a line with a different part" msgstr "" -#: order/models.py:1976 +#: order/models.py:2009 msgid "Cannot allocate stock to a line without a part" msgstr "" -#: order/models.py:1979 +#: order/models.py:2012 msgid "Allocation quantity cannot exceed stock quantity" msgstr "" -#: order/models.py:1998 order/serializers.py:1345 +#: order/models.py:2031 order/serializers.py:1471 msgid "Quantity must be 1 for serialized stock item" msgstr "" -#: order/models.py:2001 +#: order/models.py:2034 msgid "Sales order does not match shipment" msgstr "" -#: order/models.py:2002 plugin/base/barcodes/api.py:524 +#: order/models.py:2035 plugin/base/barcodes/api.py:629 msgid "Shipment does not match sales order" msgstr "" -#: order/models.py:2010 +#: order/models.py:2043 msgid "Line" msgstr "" -#: order/models.py:2019 +#: order/models.py:2052 msgid "Sales order shipment reference" msgstr "" -#: order/models.py:2032 order/models.py:2391 +#: order/models.py:2065 order/models.py:2430 #: templates/js/translated/return_order.js:720 msgid "Item" msgstr "" -#: order/models.py:2033 +#: order/models.py:2066 msgid "Select stock item to allocate" msgstr "" -#: order/models.py:2042 +#: order/models.py:2075 msgid "Enter stock allocation quantity" msgstr "" -#: order/models.py:2136 +#: order/models.py:2175 msgid "Return Order reference" msgstr "" -#: order/models.py:2148 +#: order/models.py:2187 msgid "Company from which items are being returned" msgstr "" -#: order/models.py:2160 +#: order/models.py:2199 msgid "Return order status" msgstr "" -#: order/models.py:2362 +#: order/models.py:2401 msgid "Return Order Line Item" msgstr "" -#: order/models.py:2376 +#: order/models.py:2415 msgid "Only serialized items can be assigned to a Return Order" msgstr "" -#: order/models.py:2392 +#: order/models.py:2431 msgid "Select item to return from customer" msgstr "" -#: order/models.py:2398 +#: order/models.py:2437 msgid "Received Date" msgstr "" -#: order/models.py:2399 +#: order/models.py:2438 msgid "The date this this return item was received" msgstr "" -#: order/models.py:2410 templates/js/translated/return_order.js:731 +#: order/models.py:2449 templates/js/translated/return_order.js:731 #: templates/js/translated/table_filters.js:122 msgid "Outcome" msgstr "" -#: order/models.py:2411 +#: order/models.py:2450 msgid "Outcome for this line item" msgstr "" -#: order/models.py:2418 +#: order/models.py:2457 msgid "Cost associated with return or repair for this line item" msgstr "" -#: order/models.py:2428 +#: order/models.py:2467 msgid "Return Order Extra Line" msgstr "" -#: order/serializers.py:86 +#: order/serializers.py:87 +msgid "Order ID" +msgstr "Order ID" + +#: order/serializers.py:87 +msgid "ID of the order to duplicate" +msgstr "" + +#: order/serializers.py:93 +msgid "Copy Lines" +msgstr "Salin Baris" + +#: order/serializers.py:94 +msgid "Copy line items from the original order" +msgstr "" + +#: order/serializers.py:100 +msgid "Copy Extra Lines" +msgstr "" + +#: order/serializers.py:101 +msgid "Copy extra line items from the original order" +msgstr "" + +#: order/serializers.py:117 msgid "Completed Lines" msgstr "" -#: order/serializers.py:283 stock/admin.py:195 +#: order/serializers.py:161 +msgid "Duplicate Order" +msgstr "" + +#: order/serializers.py:162 +msgid "Specify options for duplicating this order" +msgstr "" + +#: order/serializers.py:234 +msgid "Invalid order ID" +msgstr "" + +#: order/serializers.py:374 stock/admin.py:196 msgid "Supplier Name" msgstr "" -#: order/serializers.py:331 +#: order/serializers.py:416 msgid "Order cannot be cancelled" msgstr "" -#: order/serializers.py:346 order/serializers.py:1366 +#: order/serializers.py:431 order/serializers.py:1492 msgid "Allow order to be closed with incomplete line items" msgstr "" -#: order/serializers.py:356 order/serializers.py:1376 +#: order/serializers.py:441 order/serializers.py:1502 msgid "Order has incomplete line items" msgstr "" -#: order/serializers.py:506 +#: order/serializers.py:591 msgid "Order is not open" msgstr "" -#: order/serializers.py:527 +#: order/serializers.py:612 msgid "Auto Pricing" msgstr "" -#: order/serializers.py:529 +#: order/serializers.py:614 msgid "Automatically calculate purchase price based on supplier part data" msgstr "" -#: order/serializers.py:539 +#: order/serializers.py:624 msgid "Purchase price currency" msgstr "" -#: order/serializers.py:545 +#: order/serializers.py:630 msgid "Merge Items" msgstr "" -#: order/serializers.py:547 +#: order/serializers.py:632 msgid "Merge items with the same part, destination and target date into one line item" msgstr "" -#: order/serializers.py:560 part/models.py:1033 +#: order/serializers.py:645 part/models.py:1094 part/serializers.py:387 msgid "Internal Part Number" msgstr "" -#: order/serializers.py:568 +#: order/serializers.py:653 msgid "Internal Part Name" msgstr "" -#: order/serializers.py:584 +#: order/serializers.py:669 msgid "Supplier part must be specified" msgstr "" -#: order/serializers.py:587 +#: order/serializers.py:672 msgid "Purchase order must be specified" msgstr "" -#: order/serializers.py:595 +#: order/serializers.py:680 msgid "Supplier must match purchase order" msgstr "" -#: order/serializers.py:596 +#: order/serializers.py:681 msgid "Purchase order must match supplier" msgstr "" -#: order/serializers.py:639 order/serializers.py:1446 +#: order/serializers.py:724 order/serializers.py:1572 msgid "Line Item" msgstr "" -#: order/serializers.py:645 +#: order/serializers.py:730 msgid "Line item does not match purchase order" msgstr "" -#: order/serializers.py:655 order/serializers.py:779 order/serializers.py:1782 +#: order/serializers.py:740 order/serializers.py:881 order/serializers.py:1934 msgid "Select destination location for received items" msgstr "" -#: order/serializers.py:671 templates/js/translated/purchase_order.js:1130 +#: order/serializers.py:756 templates/js/translated/purchase_order.js:1113 #: templates/js/translated/stock.js:1200 msgid "Enter batch code for incoming stock items" msgstr "" -#: order/serializers.py:679 templates/js/translated/purchase_order.js:1155 +#: order/serializers.py:764 templates/js/translated/purchase_order.js:1138 msgid "Enter serial numbers for incoming stock items" msgstr "" -#: order/serializers.py:691 +#: order/serializers.py:776 msgid "Override packaging information for incoming stock items" msgstr "" -#: order/serializers.py:699 +#: order/serializers.py:784 msgid "Additional note for incoming stock items" msgstr "" -#: order/serializers.py:706 templates/js/translated/barcode.js:52 +#: order/serializers.py:791 templates/js/translated/barcode.js:52 msgid "Barcode" msgstr "" -#: order/serializers.py:707 +#: order/serializers.py:792 msgid "Scanned barcode" msgstr "" -#: order/serializers.py:723 +#: order/serializers.py:808 msgid "Barcode is already in use" msgstr "" -#: order/serializers.py:747 +#: order/serializers.py:831 msgid "An integer quantity must be provided for trackable parts" msgstr "" -#: order/serializers.py:795 order/serializers.py:1798 +#: order/serializers.py:898 order/serializers.py:1950 msgid "Line items must be provided" msgstr "" -#: order/serializers.py:811 +#: order/serializers.py:914 msgid "Destination location must be specified" msgstr "" -#: order/serializers.py:822 +#: order/serializers.py:925 msgid "Supplied barcode values must be unique" msgstr "" -#: order/serializers.py:1187 +#: order/serializers.py:1221 msgid "Sale price currency" msgstr "" -#: order/serializers.py:1248 +#: order/serializers.py:1260 +msgid "Allocated Items" +msgstr "" + +#: order/serializers.py:1374 msgid "No shipment details provided" msgstr "" -#: order/serializers.py:1309 order/serializers.py:1455 +#: order/serializers.py:1435 order/serializers.py:1581 msgid "Line item is not associated with this order" msgstr "" -#: order/serializers.py:1328 +#: order/serializers.py:1454 msgid "Quantity must be positive" msgstr "" -#: order/serializers.py:1465 +#: order/serializers.py:1591 msgid "Enter serial numbers to allocate" msgstr "" -#: order/serializers.py:1487 order/serializers.py:1593 +#: order/serializers.py:1613 order/serializers.py:1733 msgid "Shipment has already been shipped" msgstr "" -#: order/serializers.py:1490 order/serializers.py:1596 +#: order/serializers.py:1616 order/serializers.py:1736 msgid "Shipment is not associated with this order" msgstr "" -#: order/serializers.py:1537 +#: order/serializers.py:1671 msgid "No match found for the following serial numbers" msgstr "" -#: order/serializers.py:1544 -msgid "The following serial numbers are already allocated" +#: order/serializers.py:1678 +msgid "The following serial numbers are unavailable" msgstr "" -#: order/serializers.py:1752 +#: order/serializers.py:1904 msgid "Return order line item" msgstr "" -#: order/serializers.py:1758 +#: order/serializers.py:1910 msgid "Line item does not match return order" msgstr "" -#: order/serializers.py:1761 +#: order/serializers.py:1913 msgid "Line item has already been received" msgstr "" -#: order/serializers.py:1790 +#: order/serializers.py:1942 msgid "Items can only be received against orders which are in progress" msgstr "" -#: order/serializers.py:1873 +#: order/serializers.py:2025 msgid "Line price currency" msgstr "" -#: order/status_codes.py:17 order/status_codes.py:52 stock/status_codes.py:16 +#: order/status_codes.py:17 order/status_codes.py:54 stock/status_codes.py:16 msgid "Lost" msgstr "Hilang" -#: order/status_codes.py:18 order/status_codes.py:53 stock/status_codes.py:22 +#: order/status_codes.py:18 order/status_codes.py:55 stock/status_codes.py:24 msgid "Returned" msgstr "Dikembalikan" -#: order/status_codes.py:45 order/status_codes.py:77 +#: order/status_codes.py:47 order/status_codes.py:79 msgid "In Progress" msgstr "" -#: order/status_codes.py:101 +#: order/status_codes.py:105 msgid "Return" msgstr "" -#: order/status_codes.py:104 +#: order/status_codes.py:108 msgid "Repair" msgstr "" -#: order/status_codes.py:107 +#: order/status_codes.py:111 msgid "Replace" -msgstr "" +msgstr "Ganti" -#: order/status_codes.py:110 +#: order/status_codes.py:114 msgid "Refund" msgstr "" -#: order/status_codes.py:113 +#: order/status_codes.py:117 msgid "Reject" -msgstr "" +msgstr "Tolak" -#: order/tasks.py:25 +#: order/tasks.py:30 msgid "Overdue Purchase Order" msgstr "" -#: order/tasks.py:30 +#: order/tasks.py:35 #, python-brace-format msgid "Purchase order {po} is now overdue" msgstr "" -#: order/tasks.py:75 +#: order/tasks.py:80 msgid "Overdue Sales Order" msgstr "" -#: order/tasks.py:80 +#: order/tasks.py:85 #, python-brace-format msgid "Sales order {so} is now overdue" msgstr "" -#: order/templates/order/order_base.html:51 +#: order/templates/order/order_base.html:52 msgid "Print purchase order report" msgstr "" -#: order/templates/order/order_base.html:53 -#: order/templates/order/return_order_base.html:62 -#: order/templates/order/sales_order_base.html:62 +#: order/templates/order/order_base.html:54 +#: order/templates/order/return_order_base.html:63 +#: order/templates/order/sales_order_base.html:63 msgid "Export order to file" msgstr "" -#: order/templates/order/order_base.html:59 -#: order/templates/order/return_order_base.html:72 -#: order/templates/order/sales_order_base.html:71 +#: order/templates/order/order_base.html:60 +#: order/templates/order/return_order_base.html:73 +#: order/templates/order/sales_order_base.html:72 msgid "Order actions" msgstr "" -#: order/templates/order/order_base.html:64 -#: order/templates/order/return_order_base.html:76 -#: order/templates/order/sales_order_base.html:75 +#: order/templates/order/order_base.html:65 +#: order/templates/order/return_order_base.html:77 +#: order/templates/order/sales_order_base.html:76 msgid "Edit order" msgstr "" -#: order/templates/order/order_base.html:68 +#: order/templates/order/order_base.html:69 msgid "Duplicate order" msgstr "" -#: order/templates/order/order_base.html:73 -#: order/templates/order/return_order_base.html:78 -#: order/templates/order/sales_order_base.html:77 +#: order/templates/order/order_base.html:74 +#: order/templates/order/return_order_base.html:79 +#: order/templates/order/sales_order_base.html:78 msgid "Hold order" msgstr "" -#: order/templates/order/order_base.html:78 -#: order/templates/order/return_order_base.html:81 -#: order/templates/order/sales_order_base.html:80 +#: order/templates/order/order_base.html:79 +#: order/templates/order/return_order_base.html:82 +#: order/templates/order/sales_order_base.html:81 msgid "Cancel order" msgstr "" -#: order/templates/order/order_base.html:84 #: order/templates/order/order_base.html:85 -#: order/templates/order/return_order_base.html:85 +#: order/templates/order/order_base.html:86 #: order/templates/order/return_order_base.html:86 -#: order/templates/order/sales_order_base.html:86 +#: order/templates/order/return_order_base.html:87 #: order/templates/order/sales_order_base.html:87 +#: order/templates/order/sales_order_base.html:88 msgid "Issue Order" msgstr "" -#: order/templates/order/order_base.html:88 -#: order/templates/order/return_order_base.html:89 -msgid "Mark order as complete" -msgstr "" - #: order/templates/order/order_base.html:89 #: order/templates/order/return_order_base.html:90 -#: order/templates/order/sales_order_base.html:100 +msgid "Mark order as complete" +msgstr "" + +#: order/templates/order/order_base.html:90 +#: order/templates/order/return_order_base.html:91 +#: order/templates/order/sales_order_base.html:101 msgid "Complete Order" msgstr "" -#: order/templates/order/order_base.html:96 +#: order/templates/order/order_base.html:97 msgid "Supplier part thumbnail" msgstr "" -#: order/templates/order/order_base.html:116 -#: order/templates/order/return_order_base.html:109 -#: order/templates/order/sales_order_base.html:118 +#: order/templates/order/order_base.html:117 +#: order/templates/order/return_order_base.html:110 +#: order/templates/order/sales_order_base.html:119 msgid "Order Description" msgstr "" -#: order/templates/order/order_base.html:146 -msgid "No suppplier information available" -msgstr "" - -#: order/templates/order/order_base.html:159 -#: order/templates/order/sales_order_base.html:164 +#: order/templates/order/order_base.html:168 +#: order/templates/order/sales_order_base.html:165 msgid "Completed Line Items" msgstr "" -#: order/templates/order/order_base.html:165 -#: order/templates/order/sales_order_base.html:170 -#: order/templates/order/sales_order_base.html:180 +#: order/templates/order/order_base.html:174 +#: order/templates/order/sales_order_base.html:171 +#: order/templates/order/sales_order_base.html:181 msgid "Incomplete" msgstr "" -#: order/templates/order/order_base.html:184 -#: order/templates/order/return_order_base.html:160 +#: order/templates/order/order_base.html:193 +#: order/templates/order/return_order_base.html:161 #: report/templates/report/inventree_build_order_report.html:121 msgid "Issued" msgstr "" -#: order/templates/order/order_base.html:229 +#: order/templates/order/order_base.html:238 msgid "Total cost" msgstr "" -#: order/templates/order/order_base.html:233 -#: order/templates/order/return_order_base.html:202 -#: order/templates/order/sales_order_base.html:246 +#: order/templates/order/order_base.html:242 +#: order/templates/order/return_order_base.html:203 +#: order/templates/order/sales_order_base.html:247 msgid "Total cost could not be calculated" msgstr "" -#: order/templates/order/order_base.html:335 +#: order/templates/order/order_base.html:344 msgid "Purchase Order QR Code" msgstr "" -#: order/templates/order/order_base.html:347 +#: order/templates/order/order_base.html:356 msgid "Link Barcode to Purchase Order" msgstr "" @@ -6184,12 +6392,12 @@ msgstr "" #: part/templates/part/import_wizard/ajax_match_references.html:42 #: part/templates/part/import_wizard/match_fields.html:71 #: part/templates/part/import_wizard/match_references.html:49 -#: templates/js/translated/bom.js:133 templates/js/translated/build.js:530 -#: templates/js/translated/build.js:1802 -#: templates/js/translated/purchase_order.js:696 -#: templates/js/translated/purchase_order.js:1288 +#: templates/js/translated/bom.js:133 templates/js/translated/build.js:533 +#: templates/js/translated/build.js:1805 +#: templates/js/translated/purchase_order.js:679 +#: templates/js/translated/purchase_order.js:1271 #: templates/js/translated/return_order.js:505 -#: templates/js/translated/sales_order.js:1145 +#: templates/js/translated/sales_order.js:1111 #: templates/js/translated/stock.js:720 templates/js/translated/stock.js:889 #: templates/patterns/wizard/match_fields.html:70 msgid "Remove row" @@ -6242,7 +6450,7 @@ msgstr "" #: order/templates/order/purchase_order_detail.html:27 #: order/templates/order/return_order_detail.html:24 #: order/templates/order/sales_order_detail.html:24 -#: templates/js/translated/purchase_order.js:414 +#: templates/js/translated/purchase_order.js:397 #: templates/js/translated/return_order.js:458 #: templates/js/translated/sales_order.js:237 msgid "Add Line Item" @@ -6277,45 +6485,45 @@ msgstr "" msgid "Order Notes" msgstr "" -#: order/templates/order/return_order_base.html:18 -#: order/templates/order/sales_order_base.html:18 +#: order/templates/order/return_order_base.html:19 +#: order/templates/order/sales_order_base.html:19 msgid "Customer logo thumbnail" msgstr "" -#: order/templates/order/return_order_base.html:60 +#: order/templates/order/return_order_base.html:61 msgid "Print return order report" msgstr "" -#: order/templates/order/return_order_base.html:64 -#: order/templates/order/sales_order_base.html:64 +#: order/templates/order/return_order_base.html:65 +#: order/templates/order/sales_order_base.html:65 msgid "Print packing list" msgstr "" -#: order/templates/order/return_order_base.html:141 -#: order/templates/order/sales_order_base.html:158 +#: order/templates/order/return_order_base.html:142 +#: order/templates/order/sales_order_base.html:159 #: templates/js/translated/return_order.js:308 -#: templates/js/translated/sales_order.js:833 +#: templates/js/translated/sales_order.js:792 msgid "Customer Reference" msgstr "" -#: order/templates/order/return_order_base.html:198 -#: order/templates/order/sales_order_base.html:242 +#: order/templates/order/return_order_base.html:199 +#: order/templates/order/sales_order_base.html:243 #: part/templates/part/part_pricing.html:32 #: part/templates/part/part_pricing.html:58 #: part/templates/part/part_pricing.html:99 #: part/templates/part/part_pricing.html:114 #: templates/js/translated/part.js:1079 -#: templates/js/translated/purchase_order.js:1822 +#: templates/js/translated/purchase_order.js:1806 #: templates/js/translated/return_order.js:380 -#: templates/js/translated/sales_order.js:891 +#: templates/js/translated/sales_order.js:850 msgid "Total Cost" msgstr "" -#: order/templates/order/return_order_base.html:273 +#: order/templates/order/return_order_base.html:274 msgid "Return Order QR Code" msgstr "" -#: order/templates/order/return_order_base.html:285 +#: order/templates/order/return_order_base.html:286 msgid "Link Barcode to Return Order" msgstr "" @@ -6323,40 +6531,40 @@ msgstr "" msgid "Order Details" msgstr "" -#: order/templates/order/sales_order_base.html:60 +#: order/templates/order/sales_order_base.html:61 msgid "Print sales order report" msgstr "" -#: order/templates/order/sales_order_base.html:91 #: order/templates/order/sales_order_base.html:92 +#: order/templates/order/sales_order_base.html:93 msgid "Ship Items" msgstr "" -#: order/templates/order/sales_order_base.html:95 #: order/templates/order/sales_order_base.html:96 +#: order/templates/order/sales_order_base.html:97 msgid "Mark As Shipped" msgstr "" -#: order/templates/order/sales_order_base.html:99 -#: templates/js/translated/sales_order.js:536 +#: order/templates/order/sales_order_base.html:100 +#: templates/js/translated/sales_order.js:495 msgid "Complete Sales Order" msgstr "" -#: order/templates/order/sales_order_base.html:138 +#: order/templates/order/sales_order_base.html:139 msgid "This Sales Order has not been fully allocated" msgstr "" -#: order/templates/order/sales_order_base.html:176 +#: order/templates/order/sales_order_base.html:177 #: order/templates/order/sales_order_detail.html:99 #: order/templates/order/so_sidebar.html:11 msgid "Completed Shipments" msgstr "" -#: order/templates/order/sales_order_base.html:339 +#: order/templates/order/sales_order_base.html:340 msgid "Sales Order QR Code" msgstr "" -#: order/templates/order/sales_order_base.html:351 +#: order/templates/order/sales_order_base.html:352 msgid "Link Barcode to Sales Order" msgstr "" @@ -6370,7 +6578,7 @@ msgid "Pending Shipments" msgstr "" #: order/templates/order/sales_order_detail.html:71 -#: templates/js/translated/bom.js:1277 templates/js/translated/build.js:1063 +#: templates/js/translated/bom.js:1277 templates/js/translated/build.js:1066 #: templates/js/translated/filters.js:299 msgid "Actions" msgstr "" @@ -6383,39 +6591,40 @@ msgstr "" msgid "Match Supplier Parts" msgstr "" -#: order/views.py:406 +#: order/views.py:407 msgid "Sales order not found" msgstr "" -#: order/views.py:412 +#: order/views.py:413 msgid "Price not found" msgstr "" -#: order/views.py:415 +#: order/views.py:416 #, python-brace-format msgid "Updated {part} unit-price to {price}" msgstr "" -#: order/views.py:421 +#: order/views.py:422 #, python-brace-format msgid "Updated {part} unit-price to {price} and quantity to {qty}" msgstr "" -#: part/admin.py:48 part/models.py:1032 part/templates/part/part_base.html:269 +#: part/admin.py:48 part/models.py:1093 part/serializers.py:939 +#: part/templates/part/part_base.html:277 #: report/templates/report/inventree_stock_location_report.html:103 #: templates/js/translated/part.js:1233 templates/js/translated/part.js:2347 -#: templates/js/translated/stock.js:2121 +#: templates/js/translated/stock.js:2122 msgid "IPN" msgstr "" -#: part/admin.py:50 part/models.py:1041 part/templates/part/part_base.html:286 +#: part/admin.py:50 part/models.py:1102 part/templates/part/part_base.html:294 #: report/models.py:161 templates/js/translated/part.js:1238 #: templates/js/translated/part.js:2353 msgid "Revision" msgstr "" -#: part/admin.py:53 part/admin.py:319 part/models.py:1014 -#: part/templates/part/category.html:91 part/templates/part/part_base.html:307 +#: part/admin.py:53 part/admin.py:319 part/models.py:1075 +#: part/templates/part/category.html:91 part/templates/part/part_base.html:315 msgid "Keywords" msgstr "" @@ -6427,7 +6636,7 @@ msgstr "" msgid "Category ID" msgstr "" -#: part/admin.py:67 part/admin.py:304 part/serializers.py:880 +#: part/admin.py:67 part/admin.py:304 part/serializers.py:924 #: part/stocktake.py:222 msgid "Category Name" msgstr "" @@ -6440,11 +6649,11 @@ msgstr "" msgid "Default Supplier ID" msgstr "" -#: part/admin.py:81 part/models.py:1000 part/templates/part/part_base.html:177 +#: part/admin.py:81 part/models.py:1061 part/templates/part/part_base.html:178 msgid "Variant Of" msgstr "" -#: part/admin.py:84 part/models.py:1138 part/templates/part/part_base.html:203 +#: part/admin.py:84 part/models.py:1199 part/templates/part/part_base.html:204 msgid "Minimum Stock" msgstr "" @@ -6452,23 +6661,23 @@ msgstr "" msgid "Used In" msgstr "" -#: part/admin.py:150 part/serializers.py:897 -#: part/templates/part/part_base.html:241 stock/admin.py:235 +#: part/admin.py:150 part/serializers.py:949 +#: part/templates/part/part_base.html:249 stock/admin.py:236 #: templates/js/translated/part.js:717 templates/js/translated/part.js:2159 msgid "Building" msgstr "" -#: part/admin.py:155 part/models.py:3202 part/models.py:3216 +#: part/admin.py:155 part/models.py:3253 part/models.py:3267 #: templates/js/translated/part.js:976 msgid "Minimum Cost" msgstr "" -#: part/admin.py:158 part/models.py:3209 part/models.py:3223 +#: part/admin.py:158 part/models.py:3260 part/models.py:3274 #: templates/js/translated/part.js:986 msgid "Maximum Cost" msgstr "" -#: part/admin.py:308 part/admin.py:387 stock/admin.py:57 stock/admin.py:215 +#: part/admin.py:308 part/admin.py:387 stock/admin.py:57 stock/admin.py:216 msgid "Parent ID" msgstr "" @@ -6481,8 +6690,8 @@ msgstr "" msgid "Category Path" msgstr "" -#: part/admin.py:325 part/models.py:425 part/serializers.py:130 -#: part/serializers.py:290 part/serializers.py:415 +#: part/admin.py:325 part/models.py:420 part/serializers.py:130 +#: part/serializers.py:323 part/serializers.py:459 #: part/templates/part/cat_link.html:3 part/templates/part/category.html:20 #: part/templates/part/category.html:138 part/templates/part/category.html:158 #: part/templates/part/category_sidebar.html:9 @@ -6509,17 +6718,17 @@ msgstr "" msgid "Part Revision" msgstr "" -#: part/admin.py:418 part/serializers.py:1346 +#: part/admin.py:418 part/serializers.py:1400 #: templates/js/translated/pricing.js:358 -#: templates/js/translated/pricing.js:1024 +#: templates/js/translated/pricing.js:1022 msgid "Minimum Price" -msgstr "" +msgstr "Harga Minimal" -#: part/admin.py:423 part/serializers.py:1361 +#: part/admin.py:423 part/serializers.py:1415 #: templates/js/translated/pricing.js:353 -#: templates/js/translated/pricing.js:1032 +#: templates/js/translated/pricing.js:1030 msgid "Maximum Price" -msgstr "" +msgstr "Harga Maksimal" #: part/api.py:104 msgid "Starred" @@ -6545,94 +6754,98 @@ msgstr "" msgid "Filter by top-level categories" msgstr "" +#: part/api.py:156 stock/api.py:343 +msgid "Cascade" +msgstr "" + #: part/api.py:158 msgid "Include sub-categories in filtered results" msgstr "" -#: part/api.py:179 templates/js/translated/part.js:311 +#: part/api.py:178 templates/js/translated/part.js:311 msgid "Parent" msgstr "" -#: part/api.py:181 +#: part/api.py:180 msgid "Filter by parent category" msgstr "" -#: part/api.py:214 +#: part/api.py:213 msgid "Exclude Tree" msgstr "" -#: part/api.py:216 +#: part/api.py:215 msgid "Exclude sub-categories under the specified category" msgstr "" -#: part/api.py:441 +#: part/api.py:440 msgid "Has Results" msgstr "" -#: part/api.py:608 +#: part/api.py:604 msgid "Incoming Purchase Order" msgstr "" -#: part/api.py:626 +#: part/api.py:618 msgid "Outgoing Sales Order" msgstr "" -#: part/api.py:642 +#: part/api.py:630 msgid "Stock produced by Build Order" msgstr "" -#: part/api.py:726 +#: part/api.py:712 msgid "Stock required for Build Order" msgstr "" -#: part/api.py:874 +#: part/api.py:858 msgid "Validate entire Bill of Materials" msgstr "" -#: part/api.py:880 +#: part/api.py:864 msgid "This option must be selected" msgstr "" -#: part/api.py:916 +#: part/api.py:900 msgid "Is Revision" msgstr "" -#: part/api.py:926 +#: part/api.py:910 msgid "Has Revisions" msgstr "" -#: part/api.py:1117 +#: part/api.py:1101 msgid "BOM Valid" msgstr "" -#: part/api.py:1523 part/models.py:1024 part/models.py:3489 part/models.py:4046 -#: part/serializers.py:430 part/serializers.py:1202 -#: part/templates/part/part_base.html:260 stock/api.py:781 +#: part/api.py:1509 part/models.py:1085 part/models.py:3540 part/models.py:4104 +#: part/serializers.py:474 part/serializers.py:1255 +#: part/templates/part/part_base.html:268 stock/api.py:781 #: templates/InvenTree/settings/settings_staff_js.html:300 #: templates/js/translated/notification.js:60 #: templates/js/translated/part.js:2383 msgid "Category" msgstr "" -#: part/api.py:1761 +#: part/api.py:1750 msgid "Assembly part is testable" msgstr "" -#: part/api.py:1770 +#: part/api.py:1759 msgid "Component part is testable" msgstr "" -#: part/api.py:1821 +#: part/api.py:1810 msgid "Uses" msgstr "" -#: part/bom.py:178 part/models.py:107 part/models.py:1077 -#: part/templates/part/category.html:113 part/templates/part/part_base.html:376 +#: part/bom.py:183 part/models.py:109 part/models.py:1138 +#: part/templates/part/category.html:113 part/templates/part/part_base.html:384 #: templates/js/translated/part.js:2397 msgid "Default Location" msgstr "" -#: part/bom.py:179 part/serializers.py:905 +#: part/bom.py:184 part/serializers.py:957 #: templates/email/low_stock_notification.html:16 msgid "Total Stock" msgstr "" @@ -6641,789 +6854,789 @@ msgstr "" msgid "Input quantity for price calculation" msgstr "" -#: part/models.py:88 part/models.py:4047 part/templates/part/category.html:16 +#: part/models.py:90 part/models.py:4105 part/templates/part/category.html:16 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "" -#: part/models.py:89 part/templates/part/category.html:133 +#: part/models.py:91 part/templates/part/category.html:133 #: templates/InvenTree/search.html:97 templates/js/translated/search.js:158 #: users/models.py:202 msgid "Part Categories" msgstr "" -#: part/models.py:108 +#: part/models.py:110 msgid "Default location for parts in this category" msgstr "" -#: part/models.py:113 stock/models.py:187 templates/js/translated/part.js:2828 -#: templates/js/translated/stock.js:2856 +#: part/models.py:115 stock/models.py:193 templates/js/translated/part.js:2828 +#: templates/js/translated/stock.js:2857 #: templates/js/translated/table_filters.js:246 #: templates/js/translated/table_filters.js:290 msgid "Structural" msgstr "" -#: part/models.py:115 +#: part/models.py:117 msgid "Parts may not be directly assigned to a structural category, but may be assigned to child categories." msgstr "" -#: part/models.py:124 +#: part/models.py:126 msgid "Default keywords" msgstr "" -#: part/models.py:125 +#: part/models.py:127 msgid "Default keywords for parts in this category" msgstr "" -#: part/models.py:131 stock/models.py:90 stock/models.py:169 +#: part/models.py:133 stock/models.py:96 stock/models.py:175 #: templates/InvenTree/settings/settings_staff_js.html:445 msgid "Icon" msgstr "" -#: part/models.py:132 part/serializers.py:143 part/serializers.py:161 -#: stock/models.py:170 +#: part/models.py:134 part/serializers.py:143 part/serializers.py:161 +#: stock/models.py:176 msgid "Icon (optional)" msgstr "" -#: part/models.py:178 +#: part/models.py:180 msgid "You cannot make this part category structural because some parts are already assigned to it!" msgstr "" -#: part/models.py:519 +#: part/models.py:514 msgid "Cannot delete this part as it is locked" msgstr "" -#: part/models.py:522 +#: part/models.py:517 msgid "Cannot delete this part as it is still active" msgstr "" -#: part/models.py:527 +#: part/models.py:522 msgid "Cannot delete this part as it is used in an assembly" msgstr "" -#: part/models.py:565 +#: part/models.py:560 msgid "Invalid choice for parent part" msgstr "" -#: part/models.py:613 part/models.py:620 +#: part/models.py:608 part/models.py:615 #, python-brace-format msgid "Part '{self}' cannot be used in BOM for '{parent}' (recursive)" msgstr "" -#: part/models.py:632 +#: part/models.py:627 #, python-brace-format msgid "Part '{parent}' is used in BOM for '{self}' (recursive)" msgstr "" -#: part/models.py:695 +#: part/models.py:694 #, python-brace-format msgid "IPN must match regex pattern {pattern}" msgstr "" -#: part/models.py:703 +#: part/models.py:702 msgid "Part cannot be a revision of itself" msgstr "" -#: part/models.py:710 +#: part/models.py:709 msgid "Cannot make a revision of a part which is already a revision" msgstr "" -#: part/models.py:717 +#: part/models.py:716 msgid "Revision code must be specified" msgstr "" -#: part/models.py:724 +#: part/models.py:723 msgid "Revisions are only allowed for assembly parts" msgstr "" -#: part/models.py:731 +#: part/models.py:730 msgid "Cannot make a revision of a template part" msgstr "" -#: part/models.py:737 +#: part/models.py:736 msgid "Parent part must point to the same template" msgstr "" -#: part/models.py:816 +#: part/models.py:832 msgid "Stock item with this serial number already exists" msgstr "" -#: part/models.py:917 +#: part/models.py:976 msgid "Duplicate IPN not allowed in part settings" msgstr "" -#: part/models.py:926 +#: part/models.py:988 msgid "Duplicate part revision already exists." msgstr "" -#: part/models.py:936 +#: part/models.py:997 msgid "Part with this Name, IPN and Revision already exists." msgstr "" -#: part/models.py:951 +#: part/models.py:1012 msgid "Parts cannot be assigned to structural part categories!" msgstr "" -#: part/models.py:983 part/models.py:4102 +#: part/models.py:1044 part/models.py:4160 msgid "Part name" msgstr "" -#: part/models.py:988 +#: part/models.py:1049 msgid "Is Template" msgstr "" -#: part/models.py:989 +#: part/models.py:1050 msgid "Is this part a template part?" msgstr "" -#: part/models.py:999 +#: part/models.py:1060 msgid "Is this part a variant of another part?" msgstr "" -#: part/models.py:1007 +#: part/models.py:1068 msgid "Part description (optional)" msgstr "" -#: part/models.py:1015 +#: part/models.py:1076 msgid "Part keywords to improve visibility in search results" msgstr "" -#: part/models.py:1025 +#: part/models.py:1086 msgid "Part category" msgstr "" -#: part/models.py:1040 +#: part/models.py:1101 msgid "Part revision or version number" msgstr "" -#: part/models.py:1050 +#: part/models.py:1111 msgid "Is this part a revision of another part?" msgstr "" -#: part/models.py:1051 part/templates/part/part_base.html:277 +#: part/models.py:1112 part/templates/part/part_base.html:285 msgid "Revision Of" msgstr "" -#: part/models.py:1075 +#: part/models.py:1136 msgid "Where is this item normally stored?" msgstr "" -#: part/models.py:1121 part/templates/part/part_base.html:385 +#: part/models.py:1182 part/templates/part/part_base.html:393 msgid "Default Supplier" msgstr "" -#: part/models.py:1122 +#: part/models.py:1183 msgid "Default supplier part" msgstr "" -#: part/models.py:1129 +#: part/models.py:1190 msgid "Default Expiry" msgstr "" -#: part/models.py:1130 +#: part/models.py:1191 msgid "Expiry time (in days) for stock items of this part" msgstr "" -#: part/models.py:1139 +#: part/models.py:1200 msgid "Minimum allowed stock level" msgstr "" -#: part/models.py:1148 +#: part/models.py:1209 msgid "Units of measure for this part" msgstr "" -#: part/models.py:1155 +#: part/models.py:1216 msgid "Can this part be built from other parts?" msgstr "" -#: part/models.py:1161 +#: part/models.py:1222 msgid "Can this part be used to build other parts?" msgstr "" -#: part/models.py:1167 +#: part/models.py:1228 msgid "Does this part have tracking for unique items?" msgstr "" -#: part/models.py:1173 +#: part/models.py:1234 msgid "Can this part have test results recorded against it?" msgstr "" -#: part/models.py:1179 +#: part/models.py:1240 msgid "Can this part be purchased from external suppliers?" msgstr "" -#: part/models.py:1185 +#: part/models.py:1246 msgid "Can this part be sold to customers?" msgstr "" -#: part/models.py:1189 +#: part/models.py:1250 msgid "Is this part active?" msgstr "" -#: part/models.py:1194 templates/js/translated/part.js:821 +#: part/models.py:1255 templates/js/translated/part.js:821 #: templates/js/translated/table_filters.js:724 msgid "Locked" msgstr "" -#: part/models.py:1195 +#: part/models.py:1256 msgid "Locked parts cannot be edited" msgstr "" -#: part/models.py:1201 +#: part/models.py:1262 msgid "Is this a virtual part, such as a software product or license?" msgstr "" -#: part/models.py:1207 +#: part/models.py:1268 msgid "BOM checksum" msgstr "" -#: part/models.py:1208 +#: part/models.py:1269 msgid "Stored BOM checksum" msgstr "" -#: part/models.py:1216 +#: part/models.py:1277 msgid "BOM checked by" msgstr "" -#: part/models.py:1221 +#: part/models.py:1282 msgid "BOM checked date" msgstr "" -#: part/models.py:1237 +#: part/models.py:1298 msgid "Creation User" msgstr "" -#: part/models.py:1247 +#: part/models.py:1308 msgid "Owner responsible for this part" msgstr "" -#: part/models.py:1252 part/templates/part/part_base.html:348 -#: stock/templates/stock/item_base.html:451 +#: part/models.py:1313 part/templates/part/part_base.html:356 +#: stock/templates/stock/item_base.html:448 #: templates/js/translated/part.js:2490 msgid "Last Stocktake" msgstr "" -#: part/models.py:2125 +#: part/models.py:2185 msgid "Sell multiple" msgstr "" -#: part/models.py:3116 +#: part/models.py:3167 msgid "Currency used to cache pricing calculations" msgstr "" -#: part/models.py:3132 +#: part/models.py:3183 msgid "Minimum BOM Cost" msgstr "" -#: part/models.py:3133 +#: part/models.py:3184 msgid "Minimum cost of component parts" msgstr "" -#: part/models.py:3139 +#: part/models.py:3190 msgid "Maximum BOM Cost" msgstr "" -#: part/models.py:3140 +#: part/models.py:3191 msgid "Maximum cost of component parts" msgstr "" -#: part/models.py:3146 +#: part/models.py:3197 msgid "Minimum Purchase Cost" msgstr "" -#: part/models.py:3147 +#: part/models.py:3198 msgid "Minimum historical purchase cost" msgstr "" -#: part/models.py:3153 +#: part/models.py:3204 msgid "Maximum Purchase Cost" msgstr "" -#: part/models.py:3154 +#: part/models.py:3205 msgid "Maximum historical purchase cost" msgstr "" -#: part/models.py:3160 +#: part/models.py:3211 msgid "Minimum Internal Price" msgstr "" -#: part/models.py:3161 +#: part/models.py:3212 msgid "Minimum cost based on internal price breaks" msgstr "" -#: part/models.py:3167 +#: part/models.py:3218 msgid "Maximum Internal Price" msgstr "" -#: part/models.py:3168 +#: part/models.py:3219 msgid "Maximum cost based on internal price breaks" msgstr "" -#: part/models.py:3174 +#: part/models.py:3225 msgid "Minimum Supplier Price" msgstr "" -#: part/models.py:3175 +#: part/models.py:3226 msgid "Minimum price of part from external suppliers" msgstr "" -#: part/models.py:3181 +#: part/models.py:3232 msgid "Maximum Supplier Price" msgstr "" -#: part/models.py:3182 +#: part/models.py:3233 msgid "Maximum price of part from external suppliers" msgstr "" -#: part/models.py:3188 +#: part/models.py:3239 msgid "Minimum Variant Cost" msgstr "" -#: part/models.py:3189 +#: part/models.py:3240 msgid "Calculated minimum cost of variant parts" msgstr "" -#: part/models.py:3195 +#: part/models.py:3246 msgid "Maximum Variant Cost" msgstr "" -#: part/models.py:3196 +#: part/models.py:3247 msgid "Calculated maximum cost of variant parts" msgstr "" -#: part/models.py:3203 +#: part/models.py:3254 msgid "Override minimum cost" msgstr "" -#: part/models.py:3210 +#: part/models.py:3261 msgid "Override maximum cost" msgstr "" -#: part/models.py:3217 +#: part/models.py:3268 msgid "Calculated overall minimum cost" msgstr "" -#: part/models.py:3224 +#: part/models.py:3275 msgid "Calculated overall maximum cost" msgstr "" -#: part/models.py:3230 +#: part/models.py:3281 msgid "Minimum Sale Price" msgstr "" -#: part/models.py:3231 +#: part/models.py:3282 msgid "Minimum sale price based on price breaks" msgstr "" -#: part/models.py:3237 +#: part/models.py:3288 msgid "Maximum Sale Price" msgstr "" -#: part/models.py:3238 +#: part/models.py:3289 msgid "Maximum sale price based on price breaks" msgstr "" -#: part/models.py:3244 +#: part/models.py:3295 msgid "Minimum Sale Cost" msgstr "" -#: part/models.py:3245 +#: part/models.py:3296 msgid "Minimum historical sale price" msgstr "" -#: part/models.py:3251 +#: part/models.py:3302 msgid "Maximum Sale Cost" msgstr "" -#: part/models.py:3252 +#: part/models.py:3303 msgid "Maximum historical sale price" msgstr "" -#: part/models.py:3271 +#: part/models.py:3322 msgid "Part for stocktake" msgstr "" -#: part/models.py:3276 +#: part/models.py:3327 msgid "Item Count" msgstr "" -#: part/models.py:3277 +#: part/models.py:3328 msgid "Number of individual stock entries at time of stocktake" msgstr "" -#: part/models.py:3285 +#: part/models.py:3336 msgid "Total available stock at time of stocktake" msgstr "" -#: part/models.py:3289 part/models.py:3372 +#: part/models.py:3340 part/models.py:3423 part/serializers.py:263 #: part/templates/part/part_scheduling.html:13 #: report/templates/report/inventree_test_report.html:106 #: templates/InvenTree/settings/plugin_settings.html:37 #: templates/InvenTree/settings/settings_staff_js.html:543 -#: templates/js/translated/part.js:1092 templates/js/translated/pricing.js:826 -#: templates/js/translated/pricing.js:950 -#: templates/js/translated/purchase_order.js:1801 -#: templates/js/translated/stock.js:2905 +#: templates/js/translated/part.js:1092 templates/js/translated/pricing.js:824 +#: templates/js/translated/pricing.js:948 +#: templates/js/translated/purchase_order.js:1785 +#: templates/js/translated/stock.js:2906 msgid "Date" -msgstr "" +msgstr "Tanggal" -#: part/models.py:3290 +#: part/models.py:3341 msgid "Date stocktake was performed" msgstr "" -#: part/models.py:3298 +#: part/models.py:3349 msgid "Additional notes" msgstr "" -#: part/models.py:3308 +#: part/models.py:3359 msgid "User who performed this stocktake" msgstr "" -#: part/models.py:3314 +#: part/models.py:3365 msgid "Minimum Stock Cost" msgstr "" -#: part/models.py:3315 +#: part/models.py:3366 msgid "Estimated minimum cost of stock on hand" msgstr "" -#: part/models.py:3321 +#: part/models.py:3372 msgid "Maximum Stock Cost" msgstr "" -#: part/models.py:3322 +#: part/models.py:3373 msgid "Estimated maximum cost of stock on hand" msgstr "" -#: part/models.py:3378 templates/InvenTree/settings/settings_staff_js.html:532 +#: part/models.py:3429 templates/InvenTree/settings/settings_staff_js.html:532 msgid "Report" -msgstr "" +msgstr "Lapor" -#: part/models.py:3379 +#: part/models.py:3430 msgid "Stocktake report file (generated internally)" msgstr "" -#: part/models.py:3384 templates/InvenTree/settings/settings_staff_js.html:539 +#: part/models.py:3435 templates/InvenTree/settings/settings_staff_js.html:539 msgid "Part Count" msgstr "" -#: part/models.py:3385 +#: part/models.py:3436 msgid "Number of parts covered by stocktake" msgstr "" -#: part/models.py:3395 +#: part/models.py:3446 msgid "User who requested this stocktake report" msgstr "" -#: part/models.py:3405 +#: part/models.py:3456 msgid "Part Sale Price Break" msgstr "" -#: part/models.py:3517 +#: part/models.py:3568 msgid "Part Test Template" msgstr "" -#: part/models.py:3543 +#: part/models.py:3594 msgid "Invalid template name - must include at least one alphanumeric character" msgstr "" -#: part/models.py:3564 part/models.py:3733 +#: part/models.py:3615 part/models.py:3784 msgid "Choices must be unique" msgstr "" -#: part/models.py:3575 -msgid "Test templates can only be created for trackable parts" +#: part/models.py:3626 +msgid "Test templates can only be created for testable parts" msgstr "" -#: part/models.py:3586 +#: part/models.py:3637 msgid "Test template with the same key already exists for part" msgstr "" -#: part/models.py:3603 templates/js/translated/part.js:2898 +#: part/models.py:3654 templates/js/translated/part.js:2898 msgid "Test Name" msgstr "" -#: part/models.py:3604 +#: part/models.py:3655 msgid "Enter a name for the test" msgstr "" -#: part/models.py:3610 +#: part/models.py:3661 msgid "Test Key" msgstr "" -#: part/models.py:3611 +#: part/models.py:3662 msgid "Simplified key for the test" msgstr "" -#: part/models.py:3618 +#: part/models.py:3669 msgid "Test Description" msgstr "" -#: part/models.py:3619 +#: part/models.py:3670 msgid "Enter description for this test" msgstr "" -#: part/models.py:3623 report/models.py:208 +#: part/models.py:3674 report/models.py:216 #: templates/js/translated/part.js:2919 #: templates/js/translated/table_filters.js:502 msgid "Enabled" -msgstr "" +msgstr "Aktif" -#: part/models.py:3623 +#: part/models.py:3674 msgid "Is this test enabled?" msgstr "" -#: part/models.py:3628 templates/js/translated/part.js:2927 +#: part/models.py:3679 templates/js/translated/part.js:2927 #: templates/js/translated/table_filters.js:498 msgid "Required" msgstr "" -#: part/models.py:3629 +#: part/models.py:3680 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:3634 templates/js/translated/part.js:2935 +#: part/models.py:3685 templates/js/translated/part.js:2935 msgid "Requires Value" msgstr "" -#: part/models.py:3635 +#: part/models.py:3686 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:3640 templates/js/translated/part.js:2942 +#: part/models.py:3691 templates/js/translated/part.js:2942 msgid "Requires Attachment" msgstr "" -#: part/models.py:3642 +#: part/models.py:3693 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:3648 part/models.py:3792 templates/js/translated/part.js:1643 +#: part/models.py:3699 part/models.py:3843 templates/js/translated/part.js:1643 msgid "Choices" -msgstr "" +msgstr "Pilihan" -#: part/models.py:3649 +#: part/models.py:3700 msgid "Valid choices for this test (comma-separated)" msgstr "" -#: part/models.py:3681 +#: part/models.py:3732 msgid "Part Parameter Template" msgstr "" -#: part/models.py:3708 +#: part/models.py:3759 msgid "Checkbox parameters cannot have units" msgstr "" -#: part/models.py:3713 +#: part/models.py:3764 msgid "Checkbox parameters cannot have choices" msgstr "" -#: part/models.py:3750 +#: part/models.py:3801 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:3765 +#: part/models.py:3816 msgid "Parameter Name" msgstr "" -#: part/models.py:3772 +#: part/models.py:3823 msgid "Physical units for this parameter" msgstr "" -#: part/models.py:3780 +#: part/models.py:3831 msgid "Parameter description" msgstr "" -#: part/models.py:3786 templates/js/translated/part.js:1634 +#: part/models.py:3837 templates/js/translated/part.js:1634 #: templates/js/translated/table_filters.js:837 msgid "Checkbox" msgstr "" -#: part/models.py:3787 +#: part/models.py:3838 msgid "Is this parameter a checkbox?" msgstr "" -#: part/models.py:3793 +#: part/models.py:3844 msgid "Valid choices for this parameter (comma-separated)" msgstr "" -#: part/models.py:3827 +#: part/models.py:3881 msgid "Part Parameter" msgstr "" -#: part/models.py:3853 +#: part/models.py:3907 msgid "Parameter cannot be modified - part is locked" msgstr "" -#: part/models.py:3889 +#: part/models.py:3945 msgid "Invalid choice for parameter value" msgstr "" -#: part/models.py:3938 +#: part/models.py:3996 msgid "Parent Part" msgstr "" -#: part/models.py:3946 part/models.py:4054 part/models.py:4055 +#: part/models.py:4004 part/models.py:4112 part/models.py:4113 #: templates/InvenTree/settings/settings_staff_js.html:295 msgid "Parameter Template" msgstr "" -#: part/models.py:3952 +#: part/models.py:4010 msgid "Parameter Value" msgstr "" -#: part/models.py:4002 +#: part/models.py:4060 msgid "Part Category Parameter Template" msgstr "" -#: part/models.py:4061 templates/InvenTree/settings/settings_staff_js.html:304 +#: part/models.py:4119 templates/InvenTree/settings/settings_staff_js.html:304 msgid "Default Value" msgstr "" -#: part/models.py:4062 +#: part/models.py:4120 msgid "Default Parameter Value" msgstr "" -#: part/models.py:4100 +#: part/models.py:4158 msgid "Part ID or part name" msgstr "" -#: part/models.py:4101 +#: part/models.py:4159 msgid "Unique part ID value" msgstr "" -#: part/models.py:4103 +#: part/models.py:4161 msgid "Part IPN value" msgstr "" -#: part/models.py:4104 +#: part/models.py:4162 msgid "Level" msgstr "" -#: part/models.py:4104 +#: part/models.py:4162 msgid "BOM level" msgstr "" -#: part/models.py:4215 +#: part/models.py:4272 msgid "BOM item cannot be modified - assembly is locked" msgstr "" -#: part/models.py:4222 +#: part/models.py:4279 msgid "BOM item cannot be modified - variant assembly is locked" msgstr "" -#: part/models.py:4232 +#: part/models.py:4289 msgid "Select parent part" msgstr "" -#: part/models.py:4242 +#: part/models.py:4299 msgid "Sub part" msgstr "" -#: part/models.py:4243 +#: part/models.py:4300 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:4254 +#: part/models.py:4311 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:4260 +#: part/models.py:4317 msgid "This BOM item is optional" msgstr "" -#: part/models.py:4266 +#: part/models.py:4323 msgid "This BOM item is consumable (it is not tracked in build orders)" msgstr "" -#: part/models.py:4273 part/templates/part/upload_bom.html:55 +#: part/models.py:4330 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "" -#: part/models.py:4274 +#: part/models.py:4331 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:4281 +#: part/models.py:4338 msgid "BOM item reference" msgstr "" -#: part/models.py:4289 +#: part/models.py:4346 msgid "BOM item notes" msgstr "" -#: part/models.py:4295 +#: part/models.py:4352 msgid "Checksum" msgstr "" -#: part/models.py:4296 +#: part/models.py:4353 msgid "BOM line checksum" msgstr "" -#: part/models.py:4301 templates/js/translated/table_filters.js:181 +#: part/models.py:4358 templates/js/translated/table_filters.js:181 msgid "Validated" msgstr "" -#: part/models.py:4302 +#: part/models.py:4359 msgid "This BOM item has been validated" msgstr "" -#: part/models.py:4307 part/templates/part/upload_bom.html:57 +#: part/models.py:4364 part/templates/part/upload_bom.html:57 #: templates/js/translated/bom.js:1054 #: templates/js/translated/table_filters.js:185 #: templates/js/translated/table_filters.js:218 msgid "Gets inherited" msgstr "" -#: part/models.py:4308 +#: part/models.py:4365 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:4314 +#: part/models.py:4371 msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:4399 stock/models.py:685 +#: part/models.py:4456 stock/models.py:762 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:4409 part/models.py:4411 +#: part/models.py:4466 part/models.py:4468 msgid "Sub part must be specified" msgstr "" -#: part/models.py:4551 +#: part/models.py:4613 msgid "BOM Item Substitute" msgstr "" -#: part/models.py:4572 +#: part/models.py:4634 msgid "Substitute part cannot be the same as the master part" msgstr "" -#: part/models.py:4585 +#: part/models.py:4647 msgid "Parent BOM item" msgstr "" -#: part/models.py:4593 +#: part/models.py:4655 msgid "Substitute part" msgstr "" -#: part/models.py:4609 +#: part/models.py:4671 msgid "Part 1" msgstr "" -#: part/models.py:4617 +#: part/models.py:4679 msgid "Part 2" msgstr "" -#: part/models.py:4618 +#: part/models.py:4680 msgid "Select Related Part" msgstr "" -#: part/models.py:4637 +#: part/models.py:4699 msgid "Part relationship cannot be created between a part and itself" msgstr "" -#: part/models.py:4642 +#: part/models.py:4704 msgid "Duplicate relationship already exists" msgstr "" @@ -7449,342 +7662,354 @@ msgstr "" msgid "Number of results recorded against this template" msgstr "" -#: part/serializers.py:225 part/serializers.py:243 stock/serializers.py:616 +#: part/serializers.py:225 part/serializers.py:243 stock/serializers.py:643 msgid "Purchase currency of this stock item" msgstr "" -#: part/serializers.py:291 +#: part/serializers.py:268 +msgid "Speculative Quantity" +msgstr "" + +#: part/serializers.py:277 +msgid "Model ID" +msgstr "" + +#: part/serializers.py:324 msgid "Number of parts using this template" msgstr "" -#: part/serializers.py:421 +#: part/serializers.py:465 msgid "No parts selected" msgstr "" -#: part/serializers.py:431 +#: part/serializers.py:475 msgid "Select category" msgstr "" -#: part/serializers.py:466 +#: part/serializers.py:510 msgid "Original Part" msgstr "" -#: part/serializers.py:467 +#: part/serializers.py:511 msgid "Select original part to duplicate" msgstr "" -#: part/serializers.py:472 +#: part/serializers.py:516 msgid "Copy Image" msgstr "" -#: part/serializers.py:473 +#: part/serializers.py:517 msgid "Copy image from original part" msgstr "" -#: part/serializers.py:479 part/templates/part/detail.html:293 +#: part/serializers.py:523 part/templates/part/detail.html:293 msgid "Copy BOM" msgstr "" -#: part/serializers.py:480 +#: part/serializers.py:524 msgid "Copy bill of materials from original part" msgstr "" -#: part/serializers.py:486 +#: part/serializers.py:530 msgid "Copy Parameters" msgstr "" -#: part/serializers.py:487 +#: part/serializers.py:531 msgid "Copy parameter data from original part" msgstr "" -#: part/serializers.py:493 +#: part/serializers.py:537 msgid "Copy Notes" msgstr "" -#: part/serializers.py:494 +#: part/serializers.py:538 msgid "Copy notes from original part" msgstr "" -#: part/serializers.py:512 +#: part/serializers.py:556 msgid "Initial Stock Quantity" msgstr "" -#: part/serializers.py:514 +#: part/serializers.py:558 msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added." msgstr "" -#: part/serializers.py:521 +#: part/serializers.py:565 msgid "Initial Stock Location" msgstr "" -#: part/serializers.py:522 +#: part/serializers.py:566 msgid "Specify initial stock location for this Part" msgstr "" -#: part/serializers.py:539 +#: part/serializers.py:583 msgid "Select supplier (or leave blank to skip)" msgstr "" -#: part/serializers.py:555 +#: part/serializers.py:599 msgid "Select manufacturer (or leave blank to skip)" msgstr "" -#: part/serializers.py:565 +#: part/serializers.py:609 msgid "Manufacturer part number" msgstr "" -#: part/serializers.py:572 +#: part/serializers.py:616 msgid "Selected company is not a valid supplier" msgstr "" -#: part/serializers.py:581 +#: part/serializers.py:625 msgid "Selected company is not a valid manufacturer" msgstr "" -#: part/serializers.py:592 +#: part/serializers.py:636 msgid "Manufacturer part matching this MPN already exists" msgstr "" -#: part/serializers.py:599 +#: part/serializers.py:643 msgid "Supplier part matching this SKU already exists" msgstr "" -#: part/serializers.py:903 +#: part/serializers.py:955 msgid "Revisions" msgstr "" -#: part/serializers.py:908 +#: part/serializers.py:960 msgid "Unallocated Stock" msgstr "" -#: part/serializers.py:911 +#: part/serializers.py:963 msgid "Variant Stock" msgstr "" -#: part/serializers.py:941 part/templates/part/copy_part.html:9 +#: part/serializers.py:993 part/templates/part/copy_part.html:9 #: templates/js/translated/part.js:474 msgid "Duplicate Part" msgstr "" -#: part/serializers.py:942 +#: part/serializers.py:994 msgid "Copy initial data from another Part" msgstr "" -#: part/serializers.py:948 templates/js/translated/part.js:103 +#: part/serializers.py:1000 templates/js/translated/part.js:103 msgid "Initial Stock" msgstr "" -#: part/serializers.py:949 +#: part/serializers.py:1001 msgid "Create Part with initial stock quantity" msgstr "" -#: part/serializers.py:955 +#: part/serializers.py:1007 msgid "Supplier Information" msgstr "" -#: part/serializers.py:956 +#: part/serializers.py:1008 msgid "Add initial supplier information for this part" msgstr "" -#: part/serializers.py:964 +#: part/serializers.py:1016 msgid "Copy Category Parameters" msgstr "" -#: part/serializers.py:965 +#: part/serializers.py:1017 msgid "Copy parameter templates from selected part category" msgstr "" -#: part/serializers.py:970 +#: part/serializers.py:1022 msgid "Existing Image" msgstr "" -#: part/serializers.py:971 +#: part/serializers.py:1023 msgid "Filename of an existing part image" msgstr "" -#: part/serializers.py:988 +#: part/serializers.py:1040 msgid "Image file does not exist" msgstr "" -#: part/serializers.py:1194 +#: part/serializers.py:1247 msgid "Limit stocktake report to a particular part, and any variant parts" msgstr "" -#: part/serializers.py:1204 +#: part/serializers.py:1257 msgid "Limit stocktake report to a particular part category, and any child categories" msgstr "" -#: part/serializers.py:1214 +#: part/serializers.py:1267 msgid "Limit stocktake report to a particular stock location, and any child locations" msgstr "" -#: part/serializers.py:1220 +#: part/serializers.py:1273 msgid "Exclude External Stock" msgstr "" -#: part/serializers.py:1221 +#: part/serializers.py:1274 msgid "Exclude stock items in external locations" msgstr "" -#: part/serializers.py:1226 +#: part/serializers.py:1279 msgid "Generate Report" msgstr "" -#: part/serializers.py:1227 +#: part/serializers.py:1280 msgid "Generate report file containing calculated stocktake data" msgstr "" -#: part/serializers.py:1232 +#: part/serializers.py:1285 msgid "Update Parts" msgstr "" -#: part/serializers.py:1233 +#: part/serializers.py:1286 msgid "Update specified parts with calculated stocktake data" msgstr "" -#: part/serializers.py:1241 +#: part/serializers.py:1294 msgid "Stocktake functionality is not enabled" msgstr "" -#: part/serializers.py:1347 +#: part/serializers.py:1299 +msgid "Background worker check failed" +msgstr "" + +#: part/serializers.py:1401 msgid "Override calculated value for minimum price" msgstr "" -#: part/serializers.py:1354 +#: part/serializers.py:1408 msgid "Minimum price currency" msgstr "" -#: part/serializers.py:1362 +#: part/serializers.py:1416 msgid "Override calculated value for maximum price" msgstr "" -#: part/serializers.py:1369 +#: part/serializers.py:1423 msgid "Maximum price currency" msgstr "" -#: part/serializers.py:1398 +#: part/serializers.py:1452 msgid "Update" -msgstr "" +msgstr "Perbarui" -#: part/serializers.py:1399 +#: part/serializers.py:1453 msgid "Update pricing for this part" msgstr "" -#: part/serializers.py:1422 +#: part/serializers.py:1476 #, python-brace-format msgid "Could not convert from provided currencies to {default_currency}" msgstr "" -#: part/serializers.py:1429 +#: part/serializers.py:1483 msgid "Minimum price must not be greater than maximum price" msgstr "" -#: part/serializers.py:1432 +#: part/serializers.py:1486 msgid "Maximum price must not be less than minimum price" msgstr "" -#: part/serializers.py:1576 +#: part/serializers.py:1634 msgid "Select the parent assembly" msgstr "" -#: part/serializers.py:1585 +#: part/serializers.py:1643 msgid "Component Name" msgstr "" -#: part/serializers.py:1588 +#: part/serializers.py:1646 msgid "Component IPN" msgstr "" -#: part/serializers.py:1591 +#: part/serializers.py:1649 msgid "Component Description" msgstr "" -#: part/serializers.py:1597 +#: part/serializers.py:1655 msgid "Select the component part" msgstr "" -#: part/serializers.py:1606 part/templates/part/part_base.html:235 +#: part/serializers.py:1664 part/templates/part/part_base.html:243 #: templates/js/translated/bom.js:1219 msgid "Can Build" msgstr "" -#: part/serializers.py:1837 +#: part/serializers.py:1899 msgid "Select part to copy BOM from" msgstr "" -#: part/serializers.py:1845 +#: part/serializers.py:1907 msgid "Remove Existing Data" msgstr "" -#: part/serializers.py:1846 +#: part/serializers.py:1908 msgid "Remove existing BOM items before copying" msgstr "" -#: part/serializers.py:1851 +#: part/serializers.py:1913 msgid "Include Inherited" msgstr "" -#: part/serializers.py:1852 +#: part/serializers.py:1914 msgid "Include BOM items which are inherited from templated parts" msgstr "" -#: part/serializers.py:1857 +#: part/serializers.py:1919 msgid "Skip Invalid Rows" msgstr "" -#: part/serializers.py:1858 +#: part/serializers.py:1920 msgid "Enable this option to skip invalid rows" msgstr "" -#: part/serializers.py:1863 +#: part/serializers.py:1925 msgid "Copy Substitute Parts" msgstr "" -#: part/serializers.py:1864 +#: part/serializers.py:1926 msgid "Copy substitute parts when duplicate BOM items" msgstr "" -#: part/serializers.py:1901 +#: part/serializers.py:1963 msgid "Clear Existing BOM" msgstr "" -#: part/serializers.py:1902 +#: part/serializers.py:1964 msgid "Delete existing BOM items before uploading" msgstr "" -#: part/serializers.py:1934 +#: part/serializers.py:1996 msgid "No part column specified" msgstr "" -#: part/serializers.py:1978 +#: part/serializers.py:2040 msgid "Multiple matching parts found" msgstr "" -#: part/serializers.py:1981 +#: part/serializers.py:2043 msgid "No matching part found" msgstr "" -#: part/serializers.py:1984 +#: part/serializers.py:2045 msgid "Part is not designated as a component" msgstr "" -#: part/serializers.py:1993 +#: part/serializers.py:2054 msgid "Quantity not provided" msgstr "" -#: part/serializers.py:2001 +#: part/serializers.py:2062 msgid "Invalid quantity" msgstr "" -#: part/serializers.py:2024 +#: part/serializers.py:2085 msgid "At least one BOM item is required" msgstr "" #: part/stocktake.py:224 templates/js/translated/part.js:1073 #: templates/js/translated/part.js:1828 templates/js/translated/part.js:1884 -#: templates/js/translated/purchase_order.js:2154 +#: templates/js/translated/purchase_order.js:2138 msgid "Total Quantity" -msgstr "" +msgstr "Jumlah Total" #: part/stocktake.py:225 msgid "Total Cost Min" @@ -7925,16 +8150,16 @@ msgstr "" #: part/templates/part/detail.html:45 part/templates/part/prices.html:15 #: templates/js/translated/tables.js:552 msgid "Refresh" -msgstr "" +msgstr "Muat Ulang" #: part/templates/part/detail.html:66 msgid "Add stocktake information" msgstr "" #: part/templates/part/detail.html:67 part/templates/part/part_sidebar.html:50 -#: stock/admin.py:255 templates/InvenTree/settings/part_stocktake.html:30 +#: stock/admin.py:256 templates/InvenTree/settings/part_stocktake.html:30 #: templates/InvenTree/settings/sidebar.html:53 -#: templates/js/translated/stock.js:2301 users/models.py:204 +#: templates/js/translated/stock.js:2302 users/models.py:204 msgid "Stocktake" msgstr "" @@ -8093,142 +8318,146 @@ msgstr "" msgid "Part List" msgstr "" -#: part/templates/part/part_base.html:25 part/templates/part/part_base.html:29 +#: part/templates/part/part_base.html:26 part/templates/part/part_base.html:30 msgid "You are subscribed to notifications for this part" msgstr "" -#: part/templates/part/part_base.html:33 +#: part/templates/part/part_base.html:34 msgid "Subscribe to notifications for this part" msgstr "" -#: part/templates/part/part_base.html:52 +#: part/templates/part/part_base.html:53 #: stock/templates/stock/item_base.html:62 -#: stock/templates/stock/location.html:71 templates/js/translated/label.js:136 +#: stock/templates/stock/location.html:72 templates/js/translated/label.js:136 msgid "Print Label" msgstr "" -#: part/templates/part/part_base.html:58 +#: part/templates/part/part_base.html:59 msgid "Show pricing information" msgstr "" -#: part/templates/part/part_base.html:63 -#: stock/templates/stock/item_base.html:110 -#: stock/templates/stock/location.html:80 +#: part/templates/part/part_base.html:64 +#: stock/templates/stock/item_base.html:107 +#: stock/templates/stock/location.html:81 msgid "Stock actions" msgstr "" -#: part/templates/part/part_base.html:70 +#: part/templates/part/part_base.html:71 msgid "Count part stock" msgstr "" -#: part/templates/part/part_base.html:76 +#: part/templates/part/part_base.html:77 msgid "Transfer part stock" msgstr "" -#: part/templates/part/part_base.html:91 templates/js/translated/part.js:2299 +#: part/templates/part/part_base.html:92 templates/js/translated/part.js:2299 msgid "Part actions" msgstr "" -#: part/templates/part/part_base.html:94 +#: part/templates/part/part_base.html:95 msgid "Duplicate part" msgstr "" -#: part/templates/part/part_base.html:97 +#: part/templates/part/part_base.html:98 msgid "Edit part" msgstr "" -#: part/templates/part/part_base.html:100 +#: part/templates/part/part_base.html:101 msgid "Delete part" msgstr "" -#: part/templates/part/part_base.html:119 +#: part/templates/part/part_base.html:120 msgid "Part is a template part (variants can be made from this part)" msgstr "" -#: part/templates/part/part_base.html:123 +#: part/templates/part/part_base.html:124 msgid "Part can be assembled from other parts" msgstr "" -#: part/templates/part/part_base.html:127 +#: part/templates/part/part_base.html:128 msgid "Part can be used in assemblies" msgstr "" -#: part/templates/part/part_base.html:131 +#: part/templates/part/part_base.html:132 msgid "Part stock is tracked by serial number" msgstr "" -#: part/templates/part/part_base.html:135 +#: part/templates/part/part_base.html:136 msgid "Part can be purchased from external suppliers" msgstr "" -#: part/templates/part/part_base.html:139 +#: part/templates/part/part_base.html:140 msgid "Part can be sold to customers" msgstr "" -#: part/templates/part/part_base.html:145 +#: part/templates/part/part_base.html:146 msgid "Part is not active" msgstr "" -#: part/templates/part/part_base.html:153 +#: part/templates/part/part_base.html:154 msgid "Part is virtual (not a physical part)" msgstr "" -#: part/templates/part/part_base.html:163 -#: part/templates/part/part_base.html:690 +#: part/templates/part/part_base.html:164 +#: part/templates/part/part_base.html:698 msgid "Show Part Details" msgstr "" #: part/templates/part/part_base.html:218 -#: stock/templates/stock/item_base.html:388 +msgid "Required for Orders" +msgstr "" + +#: part/templates/part/part_base.html:226 +#: stock/templates/stock/item_base.html:385 msgid "Allocated to Build Orders" msgstr "" -#: part/templates/part/part_base.html:227 -#: stock/templates/stock/item_base.html:381 +#: part/templates/part/part_base.html:235 +#: stock/templates/stock/item_base.html:378 msgid "Allocated to Sales Orders" msgstr "" -#: part/templates/part/part_base.html:300 +#: part/templates/part/part_base.html:308 msgid "Minimum stock level" msgstr "" -#: part/templates/part/part_base.html:331 templates/js/translated/bom.js:1071 +#: part/templates/part/part_base.html:339 templates/js/translated/bom.js:1071 #: templates/js/translated/part.js:1271 templates/js/translated/part.js:2463 #: templates/js/translated/pricing.js:391 -#: templates/js/translated/pricing.js:1054 +#: templates/js/translated/pricing.js:1052 msgid "Price Range" -msgstr "" +msgstr "Rentang Harga" -#: part/templates/part/part_base.html:361 +#: part/templates/part/part_base.html:369 msgid "Latest Serial Number" msgstr "" -#: part/templates/part/part_base.html:365 -#: stock/templates/stock/item_base.html:322 +#: part/templates/part/part_base.html:373 +#: stock/templates/stock/item_base.html:319 msgid "Search for serial number" msgstr "" -#: part/templates/part/part_base.html:453 +#: part/templates/part/part_base.html:461 msgid "Part QR Code" msgstr "" -#: part/templates/part/part_base.html:470 +#: part/templates/part/part_base.html:478 msgid "Link Barcode to Part" msgstr "" -#: part/templates/part/part_base.html:520 +#: part/templates/part/part_base.html:528 msgid "Calculate" -msgstr "" +msgstr "Hitung" -#: part/templates/part/part_base.html:537 +#: part/templates/part/part_base.html:545 msgid "Remove associated image from this part" msgstr "" -#: part/templates/part/part_base.html:588 +#: part/templates/part/part_base.html:596 msgid "No matching images found" msgstr "" -#: part/templates/part/part_base.html:684 +#: part/templates/part/part_base.html:692 msgid "Hide Part Details" msgstr "" @@ -8242,7 +8471,7 @@ msgstr "" #: part/templates/part/part_pricing.html:95 #: part/templates/part/part_pricing.html:110 msgid "Unit Cost" -msgstr "" +msgstr "Harga Unit" #: part/templates/part/part_pricing.html:40 msgid "No supplier pricing available" @@ -8282,13 +8511,13 @@ msgid "Variants" msgstr "" #: part/templates/part/part_sidebar.html:14 -#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:21 +#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:22 #: stock/templates/stock/stock_app_base.html:10 #: templates/InvenTree/search.html:153 #: templates/InvenTree/settings/sidebar.html:51 #: templates/js/translated/part.js:1249 templates/js/translated/part.js:2152 #: templates/js/translated/part.js:2411 templates/js/translated/stock.js:1066 -#: templates/js/translated/stock.js:2155 templates/navbar.html:31 +#: templates/js/translated/stock.js:2156 templates/navbar.html:31 msgid "Stock" msgstr "" @@ -8324,17 +8553,17 @@ msgstr "" #: part/templates/part/prices.html:18 #: templates/InvenTree/settings/settings_staff_js.html:80 #: templates/InvenTree/settings/user.html:24 -#: templates/js/translated/helpers.js:103 +#: templates/js/translated/helpers.js:104 #: templates/js/translated/pricing.js:628 templates/notes_buttons.html:3 #: templates/notes_buttons.html:4 msgid "Edit" msgstr "" -#: part/templates/part/prices.html:28 stock/admin.py:251 -#: stock/templates/stock/item_base.html:446 -#: templates/js/translated/company.js:1703 -#: templates/js/translated/company.js:1713 -#: templates/js/translated/stock.js:2331 +#: part/templates/part/prices.html:28 stock/admin.py:252 +#: stock/templates/stock/item_base.html:443 +#: templates/js/translated/company.js:1704 +#: templates/js/translated/company.js:1714 +#: templates/js/translated/stock.js:2332 msgid "Last Updated" msgstr "" @@ -8372,7 +8601,7 @@ msgstr "" #: part/templates/part/prices.html:149 part/templates/part/prices.html:326 msgid "Sale History" -msgstr "" +msgstr "Riwayat Penjualan" #: part/templates/part/prices.html:157 msgid "Sale price data is not available for this part" @@ -8406,7 +8635,7 @@ msgid "Update Pricing" msgstr "" #: part/templates/part/stock_count.html:7 -#: templates/js/translated/model_renderers.js:228 +#: templates/js/translated/model_renderers.js:231 #: templates/js/translated/part.js:707 templates/js/translated/part.js:2147 #: templates/js/translated/part.js:2149 msgid "No Stock" @@ -8486,7 +8715,7 @@ msgstr "" msgid "Part Pricing" msgstr "" -#: plugin/api.py:172 +#: plugin/api.py:175 msgid "Plugin cannot be deleted as it is currently active" msgstr "" @@ -8498,80 +8727,87 @@ msgstr "Tidak ada tindakan yang ditentukan" msgid "No matching action found" msgstr "Aksi tidak ditemukan" -#: plugin/base/barcodes/api.py:125 plugin/base/barcodes/api.py:371 -#: plugin/base/barcodes/api.py:546 +#: plugin/base/barcodes/api.py:203 msgid "No match found for barcode data" msgstr "" -#: plugin/base/barcodes/api.py:129 +#: plugin/base/barcodes/api.py:207 msgid "Match found for barcode data" msgstr "" -#: plugin/base/barcodes/api.py:163 plugin/base/barcodes/serializers.py:45 +#: plugin/base/barcodes/api.py:245 plugin/base/barcodes/serializers.py:72 msgid "Model is not supported" msgstr "" -#: plugin/base/barcodes/api.py:168 +#: plugin/base/barcodes/api.py:250 msgid "Model instance not found" msgstr "" -#: plugin/base/barcodes/api.py:197 -#: templates/js/translated/purchase_order.js:1468 +#: plugin/base/barcodes/api.py:279 +#: templates/js/translated/purchase_order.js:1452 msgid "Barcode matches existing item" msgstr "" -#: plugin/base/barcodes/api.py:336 +#: plugin/base/barcodes/api.py:418 msgid "No matching part data found" msgstr "" -#: plugin/base/barcodes/api.py:353 +#: plugin/base/barcodes/api.py:434 msgid "No matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:357 +#: plugin/base/barcodes/api.py:437 msgid "Multiple matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:381 +#: plugin/base/barcodes/api.py:450 plugin/base/barcodes/api.py:664 +msgid "No matching plugin found for barcode data" +msgstr "" + +#: plugin/base/barcodes/api.py:460 msgid "Matched supplier part" msgstr "" -#: plugin/base/barcodes/api.py:430 +#: plugin/base/barcodes/api.py:525 msgid "Item has already been received" msgstr "" -#: plugin/base/barcodes/api.py:467 +#: plugin/base/barcodes/api.py:563 msgid "No match for supplier barcode" msgstr "" -#: plugin/base/barcodes/api.py:510 +#: plugin/base/barcodes/api.py:612 msgid "Multiple matching line items found" msgstr "" -#: plugin/base/barcodes/api.py:513 +#: plugin/base/barcodes/api.py:615 msgid "No matching line item found" msgstr "" -#: plugin/base/barcodes/api.py:551 plugin/base/barcodes/api.py:558 +#: plugin/base/barcodes/api.py:661 +msgid "No sales order provided" +msgstr "" + +#: plugin/base/barcodes/api.py:670 msgid "Barcode does not match an existing stock item" msgstr "" -#: plugin/base/barcodes/api.py:569 +#: plugin/base/barcodes/api.py:686 msgid "Stock item does not match line item" msgstr "" -#: plugin/base/barcodes/api.py:593 templates/js/translated/build.js:2780 -#: templates/js/translated/sales_order.js:1953 +#: plugin/base/barcodes/api.py:716 templates/js/translated/build.js:2798 +#: templates/js/translated/sales_order.js:1934 msgid "Insufficient stock available" msgstr "" -#: plugin/base/barcodes/api.py:602 +#: plugin/base/barcodes/api.py:729 msgid "Stock item allocated to sales order" msgstr "" -#: plugin/base/barcodes/api.py:606 +#: plugin/base/barcodes/api.py:732 msgid "Not enough information" -msgstr "" +msgstr "Tidak cukup informasi" #: plugin/base/barcodes/mixins.py:172 plugin/base/barcodes/mixins.py:204 msgid "Found multiple matching supplier parts for barcode" @@ -8591,75 +8827,75 @@ msgstr "" msgid "Purchase order does not match supplier" msgstr "" -#: plugin/base/barcodes/mixins.py:465 +#: plugin/base/barcodes/mixins.py:467 msgid "Failed to find pending line item for supplier part" msgstr "" -#: plugin/base/barcodes/mixins.py:496 +#: plugin/base/barcodes/mixins.py:498 msgid "Further information required to receive line item" msgstr "" -#: plugin/base/barcodes/mixins.py:504 +#: plugin/base/barcodes/mixins.py:506 msgid "Received purchase order line item" msgstr "" -#: plugin/base/barcodes/serializers.py:21 +#: plugin/base/barcodes/serializers.py:48 msgid "Scanned barcode data" msgstr "" -#: plugin/base/barcodes/serializers.py:30 +#: plugin/base/barcodes/serializers.py:57 msgid "Model name to generate barcode for" msgstr "" -#: plugin/base/barcodes/serializers.py:35 +#: plugin/base/barcodes/serializers.py:62 msgid "Primary key of model object to generate barcode for" msgstr "" -#: plugin/base/barcodes/serializers.py:105 +#: plugin/base/barcodes/serializers.py:132 msgid "Purchase Order to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:111 +#: plugin/base/barcodes/serializers.py:138 msgid "Purchase order is not pending" msgstr "" -#: plugin/base/barcodes/serializers.py:129 +#: plugin/base/barcodes/serializers.py:156 msgid "PurchaseOrder to receive items against" msgstr "" -#: plugin/base/barcodes/serializers.py:135 +#: plugin/base/barcodes/serializers.py:162 msgid "Purchase order has not been placed" msgstr "" -#: plugin/base/barcodes/serializers.py:143 +#: plugin/base/barcodes/serializers.py:170 msgid "Location to receive items into" msgstr "" -#: plugin/base/barcodes/serializers.py:149 +#: plugin/base/barcodes/serializers.py:176 msgid "Cannot select a structural location" msgstr "" -#: plugin/base/barcodes/serializers.py:163 +#: plugin/base/barcodes/serializers.py:190 msgid "Sales Order to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:169 +#: plugin/base/barcodes/serializers.py:196 msgid "Sales order is not pending" msgstr "" -#: plugin/base/barcodes/serializers.py:177 +#: plugin/base/barcodes/serializers.py:204 msgid "Sales order line item to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:184 +#: plugin/base/barcodes/serializers.py:211 msgid "Sales order shipment to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:190 +#: plugin/base/barcodes/serializers.py:217 msgid "Shipment has already been delivered" msgstr "" -#: plugin/base/barcodes/serializers.py:195 +#: plugin/base/barcodes/serializers.py:222 msgid "Quantity to allocate" msgstr "" @@ -8679,6 +8915,42 @@ msgstr "" msgid "No items provided to print" msgstr "" +#: plugin/base/ui/serializers.py:30 +msgid "Plugin Name" +msgstr "" + +#: plugin/base/ui/serializers.py:34 +msgid "Feature Type" +msgstr "" + +#: plugin/base/ui/serializers.py:39 +msgid "Feature Label" +msgstr "" + +#: plugin/base/ui/serializers.py:44 +msgid "Feature Title" +msgstr "" + +#: plugin/base/ui/serializers.py:49 +msgid "Feature Description" +msgstr "" + +#: plugin/base/ui/serializers.py:54 +msgid "Feature Icon" +msgstr "" + +#: plugin/base/ui/serializers.py:58 +msgid "Feature Options" +msgstr "" + +#: plugin/base/ui/serializers.py:61 +msgid "Feature Context" +msgstr "" + +#: plugin/base/ui/serializers.py:64 +msgid "Feature Source (javascript)" +msgstr "" + #: plugin/builtin/barcodes/inventree_barcode.py:27 msgid "InvenTree Barcodes" msgstr "" @@ -8696,7 +8968,7 @@ msgstr "" #: plugin/builtin/suppliers/digikey.py:19 plugin/builtin/suppliers/lcsc.py:21 #: plugin/builtin/suppliers/mouser.py:19 plugin/builtin/suppliers/tme.py:21 msgid "InvenTree contributors" -msgstr "" +msgstr "Kontributor InvenTree" #: plugin/builtin/barcodes/inventree_barcode.py:34 msgid "Internal Barcode Format" @@ -8756,9 +9028,9 @@ msgstr "" msgid "URL that is used to send messages to a slack channel" msgstr "" -#: plugin/builtin/integration/core_notifications.py:164 +#: plugin/builtin/integration/core_notifications.py:166 msgid "Open link" -msgstr "" +msgstr "Buka Laman" #: plugin/builtin/integration/currency_exchange.py:22 msgid "InvenTree Currency Exchange" @@ -8794,11 +9066,11 @@ msgstr "" msgid "Provides support for printing using a machine" msgstr "" -#: plugin/builtin/labels/inventree_machine.py:149 +#: plugin/builtin/labels/inventree_machine.py:151 msgid "last used" msgstr "" -#: plugin/builtin/labels/inventree_machine.py:166 +#: plugin/builtin/labels/inventree_machine.py:168 msgid "Options" msgstr "" @@ -8822,7 +9094,7 @@ msgstr "" msgid "Print a border around each label" msgstr "" -#: plugin/builtin/labels/label_sheet.py:47 report/models.py:307 +#: plugin/builtin/labels/label_sheet.py:47 report/models.py:315 msgid "Landscape" msgstr "" @@ -8894,19 +9166,19 @@ msgstr "" msgid "The Supplier which acts as 'TME'" msgstr "" -#: plugin/installer.py:194 plugin/installer.py:282 +#: plugin/installer.py:199 plugin/installer.py:282 msgid "Only staff users can administer plugins" msgstr "" -#: plugin/installer.py:197 +#: plugin/installer.py:202 msgid "Plugin installation is disabled" msgstr "" -#: plugin/installer.py:248 +#: plugin/installer.py:246 msgid "Installed plugin successfully" msgstr "" -#: plugin/installer.py:254 +#: plugin/installer.py:251 #, python-brace-format msgid "Installed plugin into {path}" msgstr "" @@ -8943,10 +9215,6 @@ msgstr "" msgid "Plugin Configurations" msgstr "" -#: plugin/models.py:43 users/models.py:100 -msgid "Key" -msgstr "" - #: plugin/models.py:44 msgid "Key of plugin" msgstr "" @@ -8955,7 +9223,7 @@ msgstr "" msgid "PluginName of the plugin" msgstr "" -#: plugin/models.py:59 plugin/serializers.py:90 +#: plugin/models.py:59 plugin/serializers.py:115 msgid "Package Name" msgstr "" @@ -8970,7 +9238,7 @@ msgstr "" #: plugin/models.py:157 templates/js/translated/table_filters.js:377 #: templates/js/translated/table_filters.js:525 msgid "Installed" -msgstr "" +msgstr "Terpasang" #: plugin/models.py:166 msgid "Sample plugin" @@ -8984,17 +9252,17 @@ msgstr "" msgid "Package Plugin" msgstr "" -#: plugin/models.py:220 report/models.py:474 +#: plugin/models.py:259 report/models.py:482 #: templates/InvenTree/settings/plugin_settings.html:9 #: templates/js/translated/plugin.js:51 msgid "Plugin" msgstr "" -#: plugin/models.py:267 +#: plugin/models.py:306 msgid "Method" msgstr "" -#: plugin/plugin.py:270 +#: plugin/plugin.py:275 msgid "No author found" msgstr "" @@ -9051,83 +9319,159 @@ msgstr "" #: plugin/samples/integration/sample_currency_exchange.py:18 msgid "InvenTree Contributors" +msgstr "Kontributor InvenTree" + +#: plugin/samples/integration/user_interface_sample.py:27 +msgid "Enable Part Panels" msgstr "" -#: plugin/serializers.py:81 -msgid "Source URL" +#: plugin/samples/integration/user_interface_sample.py:28 +msgid "Enable custom panels for Part views" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:33 +msgid "Enable Purchase Order Panels" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:34 +msgid "Enable custom panels for Purchase Order views" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:39 +msgid "Enable Broken Panels" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:40 +msgid "Enable broken panels for testing" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:45 +msgid "Enable Dynamic Panel" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:46 +msgid "Enable dynamic panels for testing" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:98 +msgid "Part Panel" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:131 +msgid "Broken Dashboard Item" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:133 +msgid "This is a broken dashboard item - it will not render!" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:139 +msgid "Sample Dashboard Item" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:141 +msgid "This is a sample dashboard item. It renders a simple string of HTML content." +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:147 +msgid "Context Dashboard Item" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:161 +msgid "Admin Dashboard Item" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:162 +msgid "This is an admin-only dashboard item." +msgstr "" + +#: plugin/serializers.py:82 +msgid "Source File" msgstr "" #: plugin/serializers.py:83 -msgid "Source for the package - this can be a custom registry or a VCS path" +msgid "Path to the source file for admin integration" msgstr "" -#: plugin/serializers.py:92 -msgid "Name for the Plugin Package - can also contain a version indicator" -msgstr "" - -#: plugin/serializers.py:99 -#: templates/InvenTree/settings/plugin_settings.html:42 -#: templates/js/translated/plugin.js:86 -msgid "Version" -msgstr "" - -#: plugin/serializers.py:101 -msgid "Version specifier for the plugin. Leave blank for latest version." +#: plugin/serializers.py:90 +msgid "Optional context data for the admin integration" msgstr "" #: plugin/serializers.py:106 -msgid "Confirm plugin installation" +msgid "Source URL" msgstr "" #: plugin/serializers.py:108 +msgid "Source for the package - this can be a custom registry or a VCS path" +msgstr "" + +#: plugin/serializers.py:117 +msgid "Name for the Plugin Package - can also contain a version indicator" +msgstr "" + +#: plugin/serializers.py:124 +#: templates/InvenTree/settings/plugin_settings.html:42 +#: templates/js/translated/plugin.js:86 +msgid "Version" +msgstr "Versi" + +#: plugin/serializers.py:126 +msgid "Version specifier for the plugin. Leave blank for latest version." +msgstr "" + +#: plugin/serializers.py:131 +msgid "Confirm plugin installation" +msgstr "" + +#: plugin/serializers.py:133 msgid "This will install this plugin now into the current instance. The instance will go into maintenance." msgstr "" -#: plugin/serializers.py:121 +#: plugin/serializers.py:146 msgid "Installation not confirmed" msgstr "" -#: plugin/serializers.py:123 +#: plugin/serializers.py:148 msgid "Either packagename of URL must be provided" msgstr "" -#: plugin/serializers.py:161 +#: plugin/serializers.py:184 msgid "Full reload" msgstr "" -#: plugin/serializers.py:162 +#: plugin/serializers.py:185 msgid "Perform a full reload of the plugin registry" msgstr "" -#: plugin/serializers.py:168 +#: plugin/serializers.py:191 msgid "Force reload" msgstr "" -#: plugin/serializers.py:170 +#: plugin/serializers.py:193 msgid "Force a reload of the plugin registry, even if it is already loaded" msgstr "" -#: plugin/serializers.py:177 +#: plugin/serializers.py:200 msgid "Collect plugins" msgstr "" -#: plugin/serializers.py:178 +#: plugin/serializers.py:201 msgid "Collect plugins and add them to the registry" msgstr "" -#: plugin/serializers.py:205 +#: plugin/serializers.py:228 msgid "Activate Plugin" msgstr "" -#: plugin/serializers.py:206 +#: plugin/serializers.py:229 msgid "Activate this plugin" msgstr "" -#: plugin/serializers.py:226 +#: plugin/serializers.py:249 msgid "Delete configuration" msgstr "" -#: plugin/serializers.py:227 +#: plugin/serializers.py:250 msgid "Delete the plugin configuration from the database" msgstr "" @@ -9135,11 +9479,11 @@ msgstr "" msgid "No valid objects provided to template" msgstr "" -#: report/api.py:103 report/models.py:438 report/serializers.py:98 -#: report/serializers.py:148 templates/js/translated/purchase_order.js:1817 +#: report/api.py:103 report/models.py:446 report/serializers.py:99 +#: report/serializers.py:149 templates/js/translated/purchase_order.js:1801 #: templates/js/translated/return_order.js:353 -#: templates/js/translated/sales_order.js:887 -#: templates/js/translated/sales_order.js:1047 +#: templates/js/translated/sales_order.js:846 +#: templates/js/translated/sales_order.js:1020 msgid "Items" msgstr "" @@ -9167,26 +9511,30 @@ msgstr "" msgid "Error printing label" msgstr "" -#: report/api.py:375 report/api.py:411 +#: report/api.py:358 +msgid "Report saved at time of printing" +msgstr "" + +#: report/api.py:384 report/api.py:420 #, python-brace-format msgid "Template file '{template}' is missing or does not exist" msgstr "" #: report/helpers.py:43 msgid "A4" -msgstr "" +msgstr "A4" #: report/helpers.py:44 msgid "A3" -msgstr "" +msgstr "A3" #: report/helpers.py:45 msgid "Legal" -msgstr "" +msgstr "Legal" #: report/helpers.py:46 msgid "Letter" -msgstr "" +msgstr "Letter" #: report/models.py:118 msgid "Template file with this name already exists" @@ -9204,135 +9552,143 @@ msgstr "" msgid "Revision number (auto-increments)" msgstr "" -#: report/models.py:202 +#: report/models.py:168 +msgid "Attach to Model on Print" +msgstr "" + +#: report/models.py:170 +msgid "Save report output as an attachment against linked model instance when printing" +msgstr "" + +#: report/models.py:210 msgid "Filename Pattern" msgstr "" -#: report/models.py:203 +#: report/models.py:211 msgid "Pattern for generating filenames" msgstr "" -#: report/models.py:208 +#: report/models.py:216 msgid "Template is enabled" msgstr "" -#: report/models.py:214 +#: report/models.py:222 msgid "Target model type for template" msgstr "" -#: report/models.py:234 +#: report/models.py:242 msgid "Filters" msgstr "" -#: report/models.py:235 +#: report/models.py:243 msgid "Template query filters (comma-separated list of key=value pairs)" msgstr "" -#: report/models.py:294 report/models.py:361 +#: report/models.py:302 report/models.py:369 msgid "Template file" msgstr "" -#: report/models.py:302 +#: report/models.py:310 msgid "Page size for PDF reports" msgstr "" -#: report/models.py:308 +#: report/models.py:316 msgid "Render report in landscape orientation" msgstr "" -#: report/models.py:367 +#: report/models.py:375 msgid "Width [mm]" msgstr "" -#: report/models.py:368 +#: report/models.py:376 msgid "Label width, specified in mm" msgstr "" -#: report/models.py:374 +#: report/models.py:382 msgid "Height [mm]" msgstr "" -#: report/models.py:375 +#: report/models.py:383 msgid "Label height, specified in mm" msgstr "" -#: report/models.py:438 +#: report/models.py:446 msgid "Number of items to process" msgstr "" -#: report/models.py:444 +#: report/models.py:452 msgid "Report generation is complete" msgstr "" -#: report/models.py:448 templates/js/translated/build.js:2349 +#: report/models.py:456 templates/js/translated/build.js:2352 msgid "Progress" msgstr "" -#: report/models.py:448 +#: report/models.py:456 msgid "Report generation progress" msgstr "" -#: report/models.py:456 +#: report/models.py:464 msgid "Report Template" msgstr "" -#: report/models.py:463 report/models.py:486 +#: report/models.py:471 report/models.py:494 msgid "Output File" msgstr "" -#: report/models.py:464 report/models.py:487 +#: report/models.py:472 report/models.py:495 msgid "Generated output file" msgstr "" -#: report/models.py:475 +#: report/models.py:483 msgid "Label output plugin" msgstr "" -#: report/models.py:479 +#: report/models.py:487 msgid "Label Template" msgstr "" -#: report/models.py:502 +#: report/models.py:510 msgid "Snippet" msgstr "" -#: report/models.py:503 +#: report/models.py:511 msgid "Report snippet file" msgstr "" -#: report/models.py:510 +#: report/models.py:518 msgid "Snippet file description" msgstr "" -#: report/models.py:528 +#: report/models.py:536 msgid "Asset" msgstr "" -#: report/models.py:529 +#: report/models.py:537 msgid "Report asset file" msgstr "" -#: report/models.py:536 +#: report/models.py:544 msgid "Asset file description" msgstr "" -#: report/serializers.py:91 +#: report/serializers.py:92 msgid "Select report template" msgstr "" -#: report/serializers.py:99 report/serializers.py:149 +#: report/serializers.py:100 report/serializers.py:150 msgid "List of item primary keys to include in the report" msgstr "" -#: report/serializers.py:132 +#: report/serializers.py:133 msgid "Select label template" msgstr "" -#: report/serializers.py:140 +#: report/serializers.py:141 msgid "Printing Plugin" msgstr "" -#: report/serializers.py:141 +#: report/serializers.py:142 msgid "Select plugin to use for label printing" msgstr "" @@ -9365,9 +9721,9 @@ msgstr "" #: report/templates/report/inventree_sales_order_report.html:30 #: templates/js/translated/order.js:341 templates/js/translated/pricing.js:527 #: templates/js/translated/pricing.js:596 -#: templates/js/translated/pricing.js:834 -#: templates/js/translated/purchase_order.js:2185 -#: templates/js/translated/sales_order.js:1873 +#: templates/js/translated/pricing.js:832 +#: templates/js/translated/purchase_order.js:2169 +#: templates/js/translated/sales_order.js:1854 msgid "Unit Price" msgstr "" @@ -9379,13 +9735,18 @@ msgstr "" #: report/templates/report/inventree_purchase_order_report.html:72 #: report/templates/report/inventree_sales_order_report.html:72 -#: templates/js/translated/purchase_order.js:2087 -#: templates/js/translated/sales_order.js:1842 +#: templates/js/translated/purchase_order.js:2071 +#: templates/js/translated/sales_order.js:1823 #: templates/test_statistics_table.html:8 #: templates/test_statistics_table.html:19 msgid "Total" msgstr "" +#: report/templates/report/inventree_sales_order_shipment_report.html:23 +#: stock/templates/stock/stock_sidebar.html:8 +msgid "Allocations" +msgstr "" + #: report/templates/report/inventree_stock_location_report.html:97 msgid "Stock location items" msgstr "" @@ -9403,15 +9764,13 @@ msgstr "" msgid "Test" msgstr "" -#: report/templates/report/inventree_test_report.html:103 stock/models.py:2544 -msgid "Result" -msgstr "" - #: report/templates/report/inventree_test_report.html:129 +#: templates/js/translated/stock.js:1448 msgid "Pass" msgstr "" #: report/templates/report/inventree_test_report.html:131 +#: templates/js/translated/stock.js:1450 msgid "Fail" msgstr "" @@ -9420,17 +9779,18 @@ msgid "No result (required)" msgstr "" #: report/templates/report/inventree_test_report.html:140 +#: templates/js/translated/stock.js:1455 msgid "No result" msgstr "" #: report/templates/report/inventree_test_report.html:153 -#: stock/serializers.py:599 stock/templates/stock/stock_sidebar.html:16 +#: stock/serializers.py:626 stock/templates/stock/stock_sidebar.html:16 msgid "Installed Items" msgstr "" -#: report/templates/report/inventree_test_report.html:167 stock/admin.py:161 +#: report/templates/report/inventree_test_report.html:167 stock/admin.py:162 #: templates/js/translated/stock.js:706 templates/js/translated/stock.js:877 -#: templates/js/translated/stock.js:3194 +#: templates/js/translated/stock.js:3195 msgid "Serial" msgstr "" @@ -9450,67 +9810,67 @@ msgstr "" msgid "company_image tag requires a Company instance" msgstr "" -#: stock/admin.py:51 stock/admin.py:171 +#: stock/admin.py:51 stock/admin.py:172 msgid "Location ID" msgstr "" -#: stock/admin.py:63 stock/templates/stock/location.html:128 -#: stock/templates/stock/location.html:134 +#: stock/admin.py:63 stock/templates/stock/location.html:129 +#: stock/templates/stock/location.html:135 msgid "Location Path" msgstr "" -#: stock/admin.py:148 +#: stock/admin.py:149 msgid "Stock Item ID" msgstr "" -#: stock/admin.py:167 +#: stock/admin.py:168 msgid "Status Code" msgstr "" -#: stock/admin.py:179 +#: stock/admin.py:180 msgid "Supplier Part ID" msgstr "" -#: stock/admin.py:184 +#: stock/admin.py:185 msgid "Supplier Part SKU" msgstr "" -#: stock/admin.py:189 +#: stock/admin.py:190 msgid "Supplier ID" msgstr "" -#: stock/admin.py:200 +#: stock/admin.py:201 msgid "Customer ID" msgstr "" -#: stock/admin.py:205 stock/models.py:825 -#: stock/templates/stock/item_base.html:354 +#: stock/admin.py:206 stock/models.py:902 +#: stock/templates/stock/item_base.html:351 msgid "Installed In" msgstr "" -#: stock/admin.py:210 +#: stock/admin.py:211 msgid "Build ID" msgstr "" -#: stock/admin.py:220 +#: stock/admin.py:221 msgid "Sales Order ID" msgstr "" -#: stock/admin.py:225 +#: stock/admin.py:226 msgid "Purchase Order ID" msgstr "" -#: stock/admin.py:240 +#: stock/admin.py:241 msgid "Review Needed" msgstr "" -#: stock/admin.py:245 +#: stock/admin.py:246 msgid "Delete on Deplete" msgstr "" -#: stock/admin.py:260 stock/models.py:919 -#: stock/templates/stock/item_base.html:433 -#: templates/js/translated/stock.js:2315 users/models.py:124 +#: stock/admin.py:261 stock/models.py:996 +#: stock/templates/stock/item_base.html:430 +#: templates/js/translated/stock.js:2316 users/models.py:124 msgid "Expiry Date" msgstr "" @@ -9526,11 +9886,11 @@ msgstr "" msgid "Include sub-locations in filtered results" msgstr "" -#: stock/api.py:367 stock/serializers.py:1186 +#: stock/api.py:366 stock/serializers.py:1217 msgid "Parent Location" msgstr "" -#: stock/api.py:368 +#: stock/api.py:367 msgid "Filter by parent location" msgstr "" @@ -9550,8 +9910,8 @@ msgstr "" msgid "Expiry date after" msgstr "" -#: stock/api.py:840 stock/serializers.py:604 -#: stock/templates/stock/item_base.html:439 +#: stock/api.py:840 stock/serializers.py:631 +#: stock/templates/stock/item_base.html:436 #: templates/js/translated/table_filters.js:448 msgid "Stale" msgstr "" @@ -9560,594 +9920,598 @@ msgstr "" msgid "Quantity is required" msgstr "" -#: stock/api.py:933 +#: stock/api.py:932 msgid "Valid part must be supplied" msgstr "" -#: stock/api.py:964 +#: stock/api.py:959 msgid "The given supplier part does not exist" msgstr "" -#: stock/api.py:974 +#: stock/api.py:969 msgid "The supplier part has a pack size defined, but flag use_pack_size not set" msgstr "" -#: stock/api.py:1005 +#: stock/api.py:996 msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "" -#: stock/models.py:64 +#: stock/models.py:70 msgid "Stock Location type" msgstr "" -#: stock/models.py:65 +#: stock/models.py:71 msgid "Stock Location types" msgstr "" -#: stock/models.py:91 +#: stock/models.py:97 msgid "Default icon for all locations that have no icon set (optional)" msgstr "" -#: stock/models.py:131 stock/models.py:807 -#: stock/templates/stock/location.html:17 +#: stock/models.py:137 stock/models.py:884 +#: stock/templates/stock/location.html:18 #: stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "" -#: stock/models.py:132 stock/templates/stock/location.html:183 +#: stock/models.py:138 stock/templates/stock/location.html:184 #: templates/InvenTree/search.html:166 templates/js/translated/search.js:178 #: users/models.py:205 msgid "Stock Locations" msgstr "" -#: stock/models.py:180 stock/models.py:968 -#: stock/templates/stock/item_base.html:247 +#: stock/models.py:186 stock/models.py:1045 +#: stock/templates/stock/item_base.html:244 msgid "Owner" msgstr "" -#: stock/models.py:181 stock/models.py:969 +#: stock/models.py:187 stock/models.py:1046 msgid "Select Owner" msgstr "" -#: stock/models.py:189 +#: stock/models.py:195 msgid "Stock items may not be directly located into a structural stock locations, but may be located to child locations." msgstr "" -#: stock/models.py:196 templates/js/translated/stock.js:2865 +#: stock/models.py:202 templates/js/translated/stock.js:2866 #: templates/js/translated/table_filters.js:250 msgid "External" msgstr "" -#: stock/models.py:197 +#: stock/models.py:203 msgid "This is an external stock location" msgstr "" -#: stock/models.py:203 templates/js/translated/stock.js:2874 +#: stock/models.py:209 templates/js/translated/stock.js:2875 #: templates/js/translated/table_filters.js:253 msgid "Location type" msgstr "" -#: stock/models.py:207 +#: stock/models.py:213 msgid "Stock location type of this location" msgstr "" -#: stock/models.py:279 +#: stock/models.py:285 msgid "You cannot make this stock location structural because some stock items are already located into it!" msgstr "" -#: stock/models.py:664 +#: stock/models.py:492 +msgid "Part must be specified" +msgstr "" + +#: stock/models.py:741 msgid "Stock items cannot be located into structural stock locations!" msgstr "" -#: stock/models.py:691 stock/serializers.py:480 +#: stock/models.py:768 stock/serializers.py:492 msgid "Stock item cannot be created for virtual parts" msgstr "" -#: stock/models.py:708 +#: stock/models.py:785 #, python-brace-format msgid "Part type ('{self.supplier_part.part}') must be {self.part}" msgstr "" -#: stock/models.py:718 stock/models.py:731 +#: stock/models.py:795 stock/models.py:808 msgid "Quantity must be 1 for item with a serial number" msgstr "" -#: stock/models.py:721 +#: stock/models.py:798 msgid "Serial number cannot be set if quantity greater than 1" msgstr "" -#: stock/models.py:743 +#: stock/models.py:820 msgid "Item cannot belong to itself" msgstr "" -#: stock/models.py:748 +#: stock/models.py:825 msgid "Item must have a build reference if is_building=True" msgstr "" -#: stock/models.py:761 +#: stock/models.py:838 msgid "Build reference does not point to the same part object" msgstr "" -#: stock/models.py:777 +#: stock/models.py:854 msgid "Parent Stock Item" msgstr "" -#: stock/models.py:789 +#: stock/models.py:866 msgid "Base part" msgstr "" -#: stock/models.py:799 +#: stock/models.py:876 msgid "Select a matching supplier part for this stock item" msgstr "" -#: stock/models.py:811 +#: stock/models.py:888 msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:819 stock/serializers.py:1580 +#: stock/models.py:896 stock/serializers.py:1611 msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:830 +#: stock/models.py:907 msgid "Is this item installed in another item?" msgstr "" -#: stock/models.py:849 +#: stock/models.py:926 msgid "Serial number for this item" msgstr "" -#: stock/models.py:863 stock/serializers.py:1563 +#: stock/models.py:940 stock/serializers.py:1594 msgid "Batch code for this stock item" msgstr "" -#: stock/models.py:868 +#: stock/models.py:945 msgid "Stock Quantity" msgstr "" -#: stock/models.py:878 +#: stock/models.py:955 msgid "Source Build" msgstr "" -#: stock/models.py:881 +#: stock/models.py:958 msgid "Build for this stock item" msgstr "" -#: stock/models.py:888 stock/templates/stock/item_base.html:363 +#: stock/models.py:965 stock/templates/stock/item_base.html:360 msgid "Consumed By" msgstr "" -#: stock/models.py:891 +#: stock/models.py:968 msgid "Build order which consumed this stock item" msgstr "" -#: stock/models.py:900 +#: stock/models.py:977 msgid "Source Purchase Order" msgstr "" -#: stock/models.py:904 +#: stock/models.py:981 msgid "Purchase order for this stock item" msgstr "" -#: stock/models.py:910 +#: stock/models.py:987 msgid "Destination Sales Order" msgstr "" -#: stock/models.py:921 +#: stock/models.py:998 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "" -#: stock/models.py:939 +#: stock/models.py:1016 msgid "Delete on deplete" msgstr "" -#: stock/models.py:940 +#: stock/models.py:1017 msgid "Delete this Stock Item when stock is depleted" msgstr "" -#: stock/models.py:960 +#: stock/models.py:1037 msgid "Single unit purchase price at time of purchase" msgstr "" -#: stock/models.py:991 +#: stock/models.py:1068 msgid "Converted to part" msgstr "" -#: stock/models.py:1511 +#: stock/models.py:1600 msgid "Part is not set as trackable" msgstr "" -#: stock/models.py:1517 +#: stock/models.py:1606 msgid "Quantity must be integer" msgstr "" -#: stock/models.py:1525 +#: stock/models.py:1614 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({self.quantity})" msgstr "" -#: stock/models.py:1531 -msgid "Serial numbers must be a list of integers" +#: stock/models.py:1620 +msgid "Serial numbers must be provided as a list" msgstr "" -#: stock/models.py:1536 +#: stock/models.py:1625 msgid "Quantity does not match serial numbers" msgstr "" -#: stock/models.py:1544 stock/serializers.py:726 -msgid "Serial numbers already exist" -msgstr "" - -#: stock/models.py:1641 +#: stock/models.py:1747 stock/models.py:2563 msgid "Test template does not exist" msgstr "" -#: stock/models.py:1659 +#: stock/models.py:1765 msgid "Stock item has been assigned to a sales order" msgstr "" -#: stock/models.py:1663 +#: stock/models.py:1769 msgid "Stock item is installed in another item" msgstr "" -#: stock/models.py:1666 +#: stock/models.py:1772 msgid "Stock item contains other items" msgstr "" -#: stock/models.py:1669 +#: stock/models.py:1775 msgid "Stock item has been assigned to a customer" msgstr "" -#: stock/models.py:1672 +#: stock/models.py:1778 msgid "Stock item is currently in production" msgstr "" -#: stock/models.py:1675 +#: stock/models.py:1781 msgid "Serialized stock cannot be merged" msgstr "" -#: stock/models.py:1682 stock/serializers.py:1469 +#: stock/models.py:1788 stock/serializers.py:1500 msgid "Duplicate stock items" msgstr "" -#: stock/models.py:1686 +#: stock/models.py:1792 msgid "Stock items must refer to the same part" msgstr "" -#: stock/models.py:1694 +#: stock/models.py:1800 msgid "Stock items must refer to the same supplier part" msgstr "" -#: stock/models.py:1699 +#: stock/models.py:1805 msgid "Stock status codes must match" msgstr "" -#: stock/models.py:1960 +#: stock/models.py:2066 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:2343 +#: stock/models.py:2462 msgid "Stock Item Tracking" msgstr "" -#: stock/models.py:2376 +#: stock/models.py:2495 msgid "Entry notes" msgstr "" -#: stock/models.py:2416 +#: stock/models.py:2535 msgid "Stock Item Test Result" msgstr "" -#: stock/models.py:2449 +#: stock/models.py:2566 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:2454 +#: stock/models.py:2570 msgid "Attachment must be uploaded for this test" msgstr "Lampiran perlu diunggah untuk tes ini" -#: stock/models.py:2459 +#: stock/models.py:2575 msgid "Invalid value for this test" msgstr "" -#: stock/models.py:2544 +#: stock/models.py:2660 msgid "Test result" msgstr "" -#: stock/models.py:2551 +#: stock/models.py:2667 msgid "Test output value" msgstr "" -#: stock/models.py:2559 +#: stock/models.py:2675 stock/serializers.py:245 msgid "Test result attachment" msgstr "" -#: stock/models.py:2563 +#: stock/models.py:2679 msgid "Test notes" msgstr "" -#: stock/models.py:2571 templates/js/translated/stock.js:1633 +#: stock/models.py:2687 templates/js/translated/stock.js:1633 msgid "Test station" msgstr "" -#: stock/models.py:2572 +#: stock/models.py:2688 msgid "The identifier of the test station where the test was performed" msgstr "" -#: stock/models.py:2578 +#: stock/models.py:2694 msgid "Started" msgstr "" -#: stock/models.py:2579 +#: stock/models.py:2695 msgid "The timestamp of the test start" msgstr "" -#: stock/models.py:2585 +#: stock/models.py:2701 msgid "Finished" msgstr "" -#: stock/models.py:2586 +#: stock/models.py:2702 msgid "The timestamp of the test finish" msgstr "" -#: stock/serializers.py:76 +#: stock/serializers.py:77 msgid "Generated batch code" msgstr "" -#: stock/serializers.py:85 +#: stock/serializers.py:86 msgid "Select build order" msgstr "" -#: stock/serializers.py:94 +#: stock/serializers.py:95 msgid "Select stock item to generate batch code for" msgstr "" -#: stock/serializers.py:103 +#: stock/serializers.py:104 msgid "Select location to generate batch code for" msgstr "" -#: stock/serializers.py:112 +#: stock/serializers.py:113 msgid "Select part to generate batch code for" msgstr "" -#: stock/serializers.py:121 +#: stock/serializers.py:122 msgid "Select purchase order" msgstr "" -#: stock/serializers.py:128 +#: stock/serializers.py:129 msgid "Enter quantity for batch code" msgstr "" -#: stock/serializers.py:151 +#: stock/serializers.py:152 msgid "Generated serial number" msgstr "" -#: stock/serializers.py:160 +#: stock/serializers.py:161 msgid "Select part to generate serial number for" msgstr "" -#: stock/serializers.py:168 +#: stock/serializers.py:169 msgid "Quantity of serial numbers to generate" msgstr "" -#: stock/serializers.py:233 +#: stock/serializers.py:234 msgid "Test template for this result" msgstr "" -#: stock/serializers.py:254 +#: stock/serializers.py:258 msgid "Template ID or test name must be provided" msgstr "" -#: stock/serializers.py:286 +#: stock/serializers.py:290 msgid "The test finished time cannot be earlier than the test started time" msgstr "" -#: stock/serializers.py:323 +#: stock/serializers.py:327 msgid "Serial number is too large" msgstr "" -#: stock/serializers.py:452 stock/templates/stock/item_base.html:193 +#: stock/serializers.py:462 stock/templates/stock/item_base.html:190 msgid "Parent Item" msgstr "" -#: stock/serializers.py:453 +#: stock/serializers.py:463 msgid "Parent stock item" msgstr "" -#: stock/serializers.py:472 +#: stock/serializers.py:484 msgid "Use pack size when adding: the quantity defined is the number of packs" msgstr "" -#: stock/serializers.py:596 stock/templates/stock/item_base.html:437 +#: stock/serializers.py:623 stock/templates/stock/item_base.html:434 #: templates/js/translated/table_filters.js:442 users/models.py:174 msgid "Expired" msgstr "" -#: stock/serializers.py:602 stock/templates/stock/stock_sidebar.html:20 +#: stock/serializers.py:629 stock/templates/stock/stock_sidebar.html:20 msgid "Child Items" msgstr "" -#: stock/serializers.py:606 +#: stock/serializers.py:633 msgid "Tracking Items" msgstr "" -#: stock/serializers.py:612 +#: stock/serializers.py:639 msgid "Purchase price of this stock item, per unit or pack" msgstr "" -#: stock/serializers.py:631 +#: stock/serializers.py:658 msgid "Minimum Pricing" msgstr "" -#: stock/serializers.py:637 +#: stock/serializers.py:664 msgid "Maximum Pricing" msgstr "" -#: stock/serializers.py:661 +#: stock/serializers.py:688 msgid "Enter number of stock items to serialize" msgstr "" -#: stock/serializers.py:674 +#: stock/serializers.py:701 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({q})" msgstr "" -#: stock/serializers.py:681 +#: stock/serializers.py:708 msgid "Enter serial numbers for new items" msgstr "" -#: stock/serializers.py:692 stock/serializers.py:1426 stock/serializers.py:1682 +#: stock/serializers.py:719 stock/serializers.py:1457 stock/serializers.py:1713 msgid "Destination stock location" msgstr "" -#: stock/serializers.py:699 +#: stock/serializers.py:726 msgid "Optional note field" msgstr "" -#: stock/serializers.py:709 +#: stock/serializers.py:736 msgid "Serial numbers cannot be assigned to this part" msgstr "" -#: stock/serializers.py:764 +#: stock/serializers.py:756 +msgid "Serial numbers already exist" +msgstr "" + +#: stock/serializers.py:795 msgid "Select stock item to install" msgstr "" -#: stock/serializers.py:771 +#: stock/serializers.py:802 msgid "Quantity to Install" msgstr "" -#: stock/serializers.py:772 +#: stock/serializers.py:803 msgid "Enter the quantity of items to install" msgstr "" -#: stock/serializers.py:777 stock/serializers.py:857 stock/serializers.py:983 -#: stock/serializers.py:1033 +#: stock/serializers.py:808 stock/serializers.py:888 stock/serializers.py:1014 +#: stock/serializers.py:1064 msgid "Add transaction note (optional)" msgstr "" -#: stock/serializers.py:785 +#: stock/serializers.py:816 msgid "Quantity to install must be at least 1" msgstr "" -#: stock/serializers.py:793 +#: stock/serializers.py:824 msgid "Stock item is unavailable" msgstr "" -#: stock/serializers.py:804 +#: stock/serializers.py:835 msgid "Selected part is not in the Bill of Materials" msgstr "" -#: stock/serializers.py:817 +#: stock/serializers.py:848 msgid "Quantity to install must not exceed available quantity" msgstr "" -#: stock/serializers.py:852 +#: stock/serializers.py:883 msgid "Destination location for uninstalled item" msgstr "" -#: stock/serializers.py:903 +#: stock/serializers.py:934 msgid "Unsupported statistic type: " msgstr "" -#: stock/serializers.py:917 +#: stock/serializers.py:948 msgid "Select part to convert stock item into" msgstr "" -#: stock/serializers.py:930 +#: stock/serializers.py:961 msgid "Selected part is not a valid option for conversion" msgstr "" -#: stock/serializers.py:947 +#: stock/serializers.py:978 msgid "Cannot convert stock item with assigned SupplierPart" msgstr "" -#: stock/serializers.py:978 +#: stock/serializers.py:1009 msgid "Destination location for returned item" msgstr "" -#: stock/serializers.py:1015 +#: stock/serializers.py:1046 msgid "Select stock items to change status" msgstr "" -#: stock/serializers.py:1021 +#: stock/serializers.py:1052 msgid "No stock items selected" msgstr "" -#: stock/serializers.py:1117 stock/serializers.py:1194 -#: stock/templates/stock/location.html:162 -#: stock/templates/stock/location.html:219 +#: stock/serializers.py:1148 stock/serializers.py:1225 +#: stock/templates/stock/location.html:163 +#: stock/templates/stock/location.html:220 #: stock/templates/stock/location_sidebar.html:5 msgid "Sublocations" msgstr "" -#: stock/serializers.py:1187 templates/js/translated/stock.js:160 +#: stock/serializers.py:1218 templates/js/translated/stock.js:160 msgid "Parent stock location" msgstr "" -#: stock/serializers.py:1298 +#: stock/serializers.py:1329 msgid "Part must be salable" msgstr "" -#: stock/serializers.py:1302 +#: stock/serializers.py:1333 msgid "Item is allocated to a sales order" msgstr "" -#: stock/serializers.py:1306 +#: stock/serializers.py:1337 msgid "Item is allocated to a build order" msgstr "" -#: stock/serializers.py:1330 +#: stock/serializers.py:1361 msgid "Customer to assign stock items" msgstr "" -#: stock/serializers.py:1336 +#: stock/serializers.py:1367 msgid "Selected company is not a customer" msgstr "" -#: stock/serializers.py:1344 +#: stock/serializers.py:1375 msgid "Stock assignment notes" msgstr "" -#: stock/serializers.py:1354 stock/serializers.py:1608 +#: stock/serializers.py:1385 stock/serializers.py:1639 msgid "A list of stock items must be provided" msgstr "" -#: stock/serializers.py:1433 +#: stock/serializers.py:1464 msgid "Stock merging notes" msgstr "" -#: stock/serializers.py:1438 +#: stock/serializers.py:1469 msgid "Allow mismatched suppliers" msgstr "" -#: stock/serializers.py:1439 +#: stock/serializers.py:1470 msgid "Allow stock items with different supplier parts to be merged" msgstr "" -#: stock/serializers.py:1444 +#: stock/serializers.py:1475 msgid "Allow mismatched status" msgstr "" -#: stock/serializers.py:1445 +#: stock/serializers.py:1476 msgid "Allow stock items with different status codes to be merged" msgstr "" -#: stock/serializers.py:1455 +#: stock/serializers.py:1486 msgid "At least two stock items must be provided" msgstr "" -#: stock/serializers.py:1522 +#: stock/serializers.py:1553 msgid "No Change" msgstr "" -#: stock/serializers.py:1551 +#: stock/serializers.py:1582 msgid "StockItem primary key value" msgstr "" -#: stock/serializers.py:1570 +#: stock/serializers.py:1601 msgid "Stock item status code" msgstr "" -#: stock/serializers.py:1598 +#: stock/serializers.py:1629 msgid "Stock transaction notes" msgstr "" @@ -10175,107 +10539,107 @@ msgstr "Ditolak" msgid "Quarantined" msgstr "" -#: stock/status_codes.py:40 +#: stock/status_codes.py:44 msgid "Legacy stock tracking entry" msgstr "" -#: stock/status_codes.py:42 templates/js/translated/stock.js:550 +#: stock/status_codes.py:46 templates/js/translated/stock.js:550 msgid "Stock item created" msgstr "Item stok dibuat" -#: stock/status_codes.py:45 +#: stock/status_codes.py:49 msgid "Edited stock item" msgstr "Item stok diubah" -#: stock/status_codes.py:46 +#: stock/status_codes.py:50 msgid "Assigned serial number" msgstr "Nomor seri yang ditetapkan" -#: stock/status_codes.py:49 +#: stock/status_codes.py:53 msgid "Stock counted" msgstr "Stok terhitung" -#: stock/status_codes.py:50 +#: stock/status_codes.py:54 msgid "Stock manually added" msgstr "Stok yang ditambahkan manual" -#: stock/status_codes.py:51 +#: stock/status_codes.py:55 msgid "Stock manually removed" msgstr "Stok yang dikurangi manual" -#: stock/status_codes.py:54 +#: stock/status_codes.py:58 msgid "Location changed" msgstr "Lokasi berubah" -#: stock/status_codes.py:55 +#: stock/status_codes.py:59 msgid "Stock updated" msgstr "" -#: stock/status_codes.py:58 +#: stock/status_codes.py:62 msgid "Installed into assembly" msgstr "Dirakit ke" -#: stock/status_codes.py:59 +#: stock/status_codes.py:63 msgid "Removed from assembly" msgstr "Diambil dari" -#: stock/status_codes.py:61 +#: stock/status_codes.py:65 msgid "Installed component item" msgstr "Komponen terpasang" -#: stock/status_codes.py:62 +#: stock/status_codes.py:66 msgid "Removed component item" msgstr "Komponen terlepas" -#: stock/status_codes.py:65 +#: stock/status_codes.py:69 msgid "Split from parent item" msgstr "Dipisah dari item induk" -#: stock/status_codes.py:66 +#: stock/status_codes.py:70 msgid "Split child item" msgstr "Pisah item dari barang induk" -#: stock/status_codes.py:69 templates/js/translated/stock.js:1943 +#: stock/status_codes.py:73 templates/js/translated/stock.js:1944 msgid "Merged stock items" msgstr "Stok item digabungkan" -#: stock/status_codes.py:72 +#: stock/status_codes.py:76 msgid "Converted to variant" msgstr "Dikonversi ke variasi" -#: stock/status_codes.py:75 +#: stock/status_codes.py:79 msgid "Build order output created" msgstr "Output order produksi dibuat" -#: stock/status_codes.py:76 +#: stock/status_codes.py:80 msgid "Build order output completed" msgstr "Order output produksi selesai" -#: stock/status_codes.py:77 +#: stock/status_codes.py:81 msgid "Build order output rejected" msgstr "" -#: stock/status_codes.py:78 templates/js/translated/stock.js:1849 +#: stock/status_codes.py:82 templates/js/translated/stock.js:1849 msgid "Consumed by build order" msgstr "Terpakai oleh order produksi" -#: stock/status_codes.py:81 +#: stock/status_codes.py:85 msgid "Shipped against Sales Order" msgstr "" -#: stock/status_codes.py:84 +#: stock/status_codes.py:88 msgid "Received against Purchase Order" msgstr "" -#: stock/status_codes.py:87 +#: stock/status_codes.py:91 msgid "Returned against Return Order" msgstr "" -#: stock/status_codes.py:90 templates/js/translated/table_filters.js:382 +#: stock/status_codes.py:94 templates/js/translated/table_filters.js:382 msgid "Sent to customer" msgstr "Terkirim ke pelanggan" -#: stock/status_codes.py:91 +#: stock/status_codes.py:95 msgid "Returned from customer" msgstr "Dikembalikan pelanggan" @@ -10296,7 +10660,7 @@ msgstr "" msgid "Test Data" msgstr "" -#: stock/templates/stock/item.html:85 stock/templates/stock/item_base.html:65 +#: stock/templates/stock/item.html:85 msgid "Test Report" msgstr "" @@ -10316,7 +10680,7 @@ msgstr "" msgid "Installed Stock Items" msgstr "" -#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3354 +#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3355 msgid "Install Stock Item" msgstr "" @@ -10328,208 +10692,212 @@ msgstr "" msgid "Add Test Result" msgstr "" -#: stock/templates/stock/item_base.html:33 +#: stock/templates/stock/item_base.html:34 msgid "Locate stock item" msgstr "" -#: stock/templates/stock/item_base.html:51 +#: stock/templates/stock/item_base.html:52 msgid "Scan to Location" msgstr "" #: stock/templates/stock/item_base.html:59 -#: stock/templates/stock/location.html:67 +#: stock/templates/stock/location.html:68 #: templates/js/translated/filters.js:434 msgid "Printing actions" msgstr "" -#: stock/templates/stock/item_base.html:75 +#: stock/templates/stock/item_base.html:64 templates/js/translated/report.js:49 +msgid "Print Report" +msgstr "" + +#: stock/templates/stock/item_base.html:72 msgid "Stock adjustment actions" msgstr "" -#: stock/templates/stock/item_base.html:79 -#: stock/templates/stock/location.html:87 templates/js/translated/stock.js:1909 +#: stock/templates/stock/item_base.html:76 +#: stock/templates/stock/location.html:88 templates/js/translated/stock.js:1909 msgid "Count stock" msgstr "" -#: stock/templates/stock/item_base.html:81 +#: stock/templates/stock/item_base.html:78 #: templates/js/translated/stock.js:1891 msgid "Add stock" msgstr "" -#: stock/templates/stock/item_base.html:82 +#: stock/templates/stock/item_base.html:79 #: templates/js/translated/stock.js:1900 msgid "Remove stock" msgstr "" -#: stock/templates/stock/item_base.html:85 +#: stock/templates/stock/item_base.html:82 msgid "Serialize stock" msgstr "" -#: stock/templates/stock/item_base.html:88 -#: stock/templates/stock/location.html:93 templates/js/translated/stock.js:1918 +#: stock/templates/stock/item_base.html:85 +#: stock/templates/stock/location.html:94 templates/js/translated/stock.js:1918 msgid "Transfer stock" msgstr "" -#: stock/templates/stock/item_base.html:91 -#: templates/js/translated/stock.js:1972 +#: stock/templates/stock/item_base.html:88 +#: templates/js/translated/stock.js:1973 msgid "Assign to customer" msgstr "" -#: stock/templates/stock/item_base.html:94 +#: stock/templates/stock/item_base.html:91 msgid "Return to stock" msgstr "" -#: stock/templates/stock/item_base.html:97 +#: stock/templates/stock/item_base.html:94 msgid "Uninstall stock item" msgstr "" -#: stock/templates/stock/item_base.html:97 +#: stock/templates/stock/item_base.html:94 msgid "Uninstall" msgstr "" -#: stock/templates/stock/item_base.html:101 +#: stock/templates/stock/item_base.html:98 msgid "Install stock item" msgstr "" -#: stock/templates/stock/item_base.html:101 +#: stock/templates/stock/item_base.html:98 msgid "Install" msgstr "" -#: stock/templates/stock/item_base.html:115 +#: stock/templates/stock/item_base.html:112 msgid "Convert to variant" msgstr "" -#: stock/templates/stock/item_base.html:118 +#: stock/templates/stock/item_base.html:115 msgid "Duplicate stock item" msgstr "" -#: stock/templates/stock/item_base.html:120 +#: stock/templates/stock/item_base.html:117 msgid "Edit stock item" msgstr "" -#: stock/templates/stock/item_base.html:123 +#: stock/templates/stock/item_base.html:120 msgid "Delete stock item" msgstr "" -#: stock/templates/stock/item_base.html:169 templates/InvenTree/search.html:139 -#: templates/js/translated/build.js:2295 templates/navbar.html:38 +#: stock/templates/stock/item_base.html:166 templates/InvenTree/search.html:139 +#: templates/js/translated/build.js:2298 templates/navbar.html:38 msgid "Build" msgstr "Produksi" -#: stock/templates/stock/item_base.html:211 +#: stock/templates/stock/item_base.html:208 msgid "No manufacturer set" msgstr "" -#: stock/templates/stock/item_base.html:251 +#: stock/templates/stock/item_base.html:248 msgid "You are not in the list of owners of this item. This stock item cannot be edited." msgstr "" -#: stock/templates/stock/item_base.html:252 -#: stock/templates/stock/location.html:146 +#: stock/templates/stock/item_base.html:249 +#: stock/templates/stock/location.html:147 msgid "Read only" msgstr "" -#: stock/templates/stock/item_base.html:265 +#: stock/templates/stock/item_base.html:262 msgid "This stock item is unavailable" msgstr "" -#: stock/templates/stock/item_base.html:271 +#: stock/templates/stock/item_base.html:268 msgid "This stock item is in production and cannot be edited." msgstr "" -#: stock/templates/stock/item_base.html:272 +#: stock/templates/stock/item_base.html:269 msgid "Edit the stock item from the build view." msgstr "" -#: stock/templates/stock/item_base.html:287 +#: stock/templates/stock/item_base.html:284 msgid "This stock item is allocated to Sales Order" msgstr "" -#: stock/templates/stock/item_base.html:295 +#: stock/templates/stock/item_base.html:292 msgid "This stock item is allocated to Build Order" msgstr "" -#: stock/templates/stock/item_base.html:311 +#: stock/templates/stock/item_base.html:308 msgid "This stock item is serialized. It has a unique serial number and the quantity cannot be adjusted" msgstr "" -#: stock/templates/stock/item_base.html:317 +#: stock/templates/stock/item_base.html:314 msgid "previous page" msgstr "" -#: stock/templates/stock/item_base.html:317 +#: stock/templates/stock/item_base.html:314 msgid "Navigate to previous serial number" msgstr "" -#: stock/templates/stock/item_base.html:326 +#: stock/templates/stock/item_base.html:323 msgid "next page" msgstr "" -#: stock/templates/stock/item_base.html:326 +#: stock/templates/stock/item_base.html:323 msgid "Navigate to next serial number" msgstr "" -#: stock/templates/stock/item_base.html:398 -#: templates/js/translated/build.js:2552 +#: stock/templates/stock/item_base.html:395 +#: templates/js/translated/build.js:2559 msgid "No location set" msgstr "" -#: stock/templates/stock/item_base.html:413 +#: stock/templates/stock/item_base.html:410 msgid "Tests" msgstr "" -#: stock/templates/stock/item_base.html:419 +#: stock/templates/stock/item_base.html:416 msgid "This stock item has not passed all required tests" msgstr "" -#: stock/templates/stock/item_base.html:437 +#: stock/templates/stock/item_base.html:434 #, python-format msgid "This StockItem expired on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:439 +#: stock/templates/stock/item_base.html:436 #, python-format msgid "This StockItem expires on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:455 +#: stock/templates/stock/item_base.html:452 msgid "No stocktake performed" msgstr "" -#: stock/templates/stock/item_base.html:504 -#: templates/js/translated/stock.js:2037 +#: stock/templates/stock/item_base.html:501 +#: templates/js/translated/stock.js:2038 msgid "stock item" msgstr "" -#: stock/templates/stock/item_base.html:527 +#: stock/templates/stock/item_base.html:524 msgid "Edit Stock Status" msgstr "" -#: stock/templates/stock/item_base.html:536 +#: stock/templates/stock/item_base.html:533 msgid "Stock Item QR Code" msgstr "" -#: stock/templates/stock/item_base.html:547 +#: stock/templates/stock/item_base.html:544 msgid "Link Barcode to Stock Item" msgstr "" -#: stock/templates/stock/item_base.html:611 +#: stock/templates/stock/item_base.html:608 msgid "Select one of the part variants listed below." msgstr "" -#: stock/templates/stock/item_base.html:614 +#: stock/templates/stock/item_base.html:611 msgid "Warning" msgstr "" -#: stock/templates/stock/item_base.html:615 +#: stock/templates/stock/item_base.html:612 msgid "This action cannot be easily undone" msgstr "" -#: stock/templates/stock/item_base.html:623 +#: stock/templates/stock/item_base.html:620 msgid "Convert Stock Item" msgstr "" -#: stock/templates/stock/item_base.html:656 +#: stock/templates/stock/item_base.html:653 msgid "Return to Stock" msgstr "" @@ -10541,84 +10909,84 @@ msgstr "" msgid "Select quantity to serialize, and unique serial numbers." msgstr "" -#: stock/templates/stock/location.html:35 +#: stock/templates/stock/location.html:36 msgid "Perform stocktake for this stock location" msgstr "" -#: stock/templates/stock/location.html:42 +#: stock/templates/stock/location.html:43 msgid "Locate stock location" msgstr "" -#: stock/templates/stock/location.html:60 +#: stock/templates/stock/location.html:61 msgid "Scan stock items into this location" msgstr "" -#: stock/templates/stock/location.html:60 +#: stock/templates/stock/location.html:61 msgid "Scan In Stock Items" msgstr "" -#: stock/templates/stock/location.html:61 +#: stock/templates/stock/location.html:62 msgid "Scan stock container into this location" msgstr "" -#: stock/templates/stock/location.html:61 +#: stock/templates/stock/location.html:62 msgid "Scan In Container" msgstr "" -#: stock/templates/stock/location.html:72 +#: stock/templates/stock/location.html:73 msgid "Print Location Report" msgstr "" -#: stock/templates/stock/location.html:101 +#: stock/templates/stock/location.html:102 msgid "Location actions" msgstr "" -#: stock/templates/stock/location.html:103 +#: stock/templates/stock/location.html:104 msgid "Edit location" msgstr "" -#: stock/templates/stock/location.html:105 +#: stock/templates/stock/location.html:106 msgid "Delete location" msgstr "" -#: stock/templates/stock/location.html:135 +#: stock/templates/stock/location.html:136 msgid "Top level stock location" msgstr "" -#: stock/templates/stock/location.html:141 +#: stock/templates/stock/location.html:142 msgid "Location Owner" msgstr "" -#: stock/templates/stock/location.html:145 +#: stock/templates/stock/location.html:146 msgid "You are not in the list of owners of this location. This stock location cannot be edited." msgstr "" -#: stock/templates/stock/location.html:173 +#: stock/templates/stock/location.html:174 msgid "Location Type" msgstr "" -#: stock/templates/stock/location.html:223 +#: stock/templates/stock/location.html:224 msgid "Create new stock location" msgstr "" -#: stock/templates/stock/location.html:224 +#: stock/templates/stock/location.html:225 msgid "New Location" msgstr "" -#: stock/templates/stock/location.html:298 -#: templates/js/translated/stock.js:2657 +#: stock/templates/stock/location.html:299 +#: templates/js/translated/stock.js:2658 msgid "stock location" msgstr "" -#: stock/templates/stock/location.html:320 +#: stock/templates/stock/location.html:321 msgid "Scanned stock container into this location" msgstr "" -#: stock/templates/stock/location.html:393 +#: stock/templates/stock/location.html:394 msgid "Stock Location QR Code" msgstr "" -#: stock/templates/stock/location.html:404 +#: stock/templates/stock/location.html:405 msgid "Link Barcode to Stock Location" msgstr "" @@ -10630,10 +10998,6 @@ msgstr "" msgid "Stock Tracking" msgstr "" -#: stock/templates/stock/stock_sidebar.html:8 -msgid "Allocations" -msgstr "" - #: templates/403.html:6 templates/403.html:12 templates/403_csrf.html:7 msgid "Permission Denied" msgstr "" @@ -11044,7 +11408,7 @@ msgstr "" #: templates/InvenTree/settings/pricing.html:39 msgid "Update Now" -msgstr "" +msgstr "Perbarui Sekarang" #: templates/InvenTree/settings/pricing.html:47 #: templates/InvenTree/settings/pricing.html:51 @@ -11107,9 +11471,9 @@ msgid "Rate" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:81 -#: templates/js/translated/forms.js:548 templates/js/translated/helpers.js:108 +#: templates/js/translated/forms.js:548 templates/js/translated/helpers.js:109 #: templates/js/translated/part.js:395 templates/js/translated/pricing.js:629 -#: templates/js/translated/stock.js:252 users/models.py:406 +#: templates/js/translated/stock.js:252 users/models.py:408 msgid "Delete" msgstr "" @@ -11130,7 +11494,7 @@ msgid "No project codes found" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:158 -#: templates/js/translated/build.js:2400 +#: templates/js/translated/build.js:2403 msgid "group" msgstr "" @@ -11196,7 +11560,7 @@ msgid "Delete Location Type" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:503 -#: templates/InvenTree/settings/stock.html:38 +#: templates/InvenTree/settings/stock.html:39 msgid "New Location Type" msgstr "" @@ -11253,7 +11617,7 @@ msgstr "" msgid "Stock Settings" msgstr "" -#: templates/InvenTree/settings/stock.html:34 +#: templates/InvenTree/settings/stock.html:35 msgid "Stock Location Types" msgstr "" @@ -11280,7 +11644,7 @@ msgid "Unverified" msgstr "Tidak terverifikasi" #: templates/InvenTree/settings/user.html:80 -#: templates/js/translated/company.js:957 +#: templates/js/translated/company.js:958 msgid "Primary" msgstr "" @@ -11400,7 +11764,7 @@ msgstr "" #: templates/InvenTree/settings/user_display.html:50 msgid "Set Theme" -msgstr "" +msgstr "Atur Tema" #: templates/InvenTree/settings/user_display.html:58 msgid "Language Settings" @@ -11408,7 +11772,7 @@ msgstr "Pengaturan Bahasa" #: templates/InvenTree/settings/user_display.html:67 msgid "Select language" -msgstr "" +msgstr "Pilih Bahasa" #: templates/InvenTree/settings/user_display.html:83 #, python-format @@ -11421,7 +11785,7 @@ msgstr "" #: templates/InvenTree/settings/user_display.html:92 msgid "Set Language" -msgstr "" +msgstr "Atur Bahasa" #: templates/InvenTree/settings/user_display.html:95 msgid "Some languages are not complete" @@ -11509,7 +11873,7 @@ msgstr "" #: templates/about.html:59 msgid "Python Version" -msgstr "" +msgstr "Versi Python" #: templates/about.html:64 msgid "Django Version" @@ -11525,14 +11889,14 @@ msgstr "" #: templates/about.html:79 msgid "Mobile App" -msgstr "" +msgstr "Aplikasi Seluler" #: templates/about.html:84 msgid "Submit Bug Report" msgstr "" #: templates/about.html:91 templates/clip.html:4 -#: templates/js/translated/helpers.js:592 +#: templates/js/translated/helpers.js:598 msgid "copy to clipboard" msgstr "" @@ -11580,7 +11944,7 @@ msgstr "" #: templates/account/login.html:47 msgid "Forgot Password?" -msgstr "" +msgstr "Lupa Kata Sandi?" #: templates/account/login.html:55 msgid "or log in with" @@ -11628,7 +11992,7 @@ msgstr "" #: templates/account/password_reset_from_key.html:18 msgid "Change password" -msgstr "" +msgstr "Ganti Password" #: templates/account/password_reset_from_key.html:22 msgid "Your password is now changed." @@ -11696,7 +12060,7 @@ msgstr "" #: templates/allauth_2fa/remove.html:17 msgid "Disable 2FA" -msgstr "" +msgstr "Nonaktifkan 2FA" #: templates/allauth_2fa/setup.html:6 msgid "Setup Two-Factor Authentication" @@ -11738,23 +12102,24 @@ msgstr "" msgid "Barcode Identifier" msgstr "" -#: templates/base.html:103 +#: templates/base.html:102 msgid "Server Restart Required" msgstr "" -#: templates/base.html:106 +#: templates/base.html:105 msgid "A configuration option has been changed which requires a server restart" msgstr "" -#: templates/base.html:106 templates/base.html:116 +#: templates/base.html:105 templates/base.html:115 +#: templates/socialaccount/authentication_error.html:13 msgid "Contact your system administrator for further information" msgstr "" -#: templates/base.html:113 +#: templates/base.html:112 msgid "Pending Database Migrations" msgstr "" -#: templates/base.html:116 +#: templates/base.html:115 msgid "There are pending database migrations which require attention" msgstr "" @@ -11787,7 +12152,7 @@ msgid "The following parts are low on required stock" msgstr "" #: templates/email/build_order_required_stock.html:18 -#: templates/js/translated/bom.js:1674 templates/js/translated/build.js:2747 +#: templates/js/translated/bom.js:1674 templates/js/translated/build.js:2765 msgid "Required Quantity" msgstr "" @@ -11801,13 +12166,13 @@ msgid "Click on the following link to view this part" msgstr "" #: templates/email/low_stock_notification.html:18 -#: templates/js/translated/part.js:3237 +#: templates/js/translated/part.js:3253 msgid "Minimum Quantity" msgstr "" #: templates/js/translated/api.js:225 templates/js/translated/modals.js:1135 msgid "No Response" -msgstr "" +msgstr "Tidak ada Respon" #: templates/js/translated/api.js:226 templates/js/translated/modals.js:1136 msgid "No response from the InvenTree server" @@ -12039,7 +12404,7 @@ msgstr "" #: templates/js/translated/bom.js:189 templates/js/translated/bom.js:700 #: templates/js/translated/modals.js:75 templates/js/translated/modals.js:629 #: templates/js/translated/modals.js:757 templates/js/translated/modals.js:1065 -#: templates/js/translated/purchase_order.js:797 templates/modals.html:15 +#: templates/js/translated/purchase_order.js:780 templates/modals.html:15 #: templates/modals.html:27 templates/modals.html:39 templates/modals.html:50 msgid "Close" msgstr "" @@ -12156,7 +12521,7 @@ msgstr "" msgid "Substitutes Available" msgstr "" -#: templates/js/translated/bom.js:950 templates/js/translated/build.js:2673 +#: templates/js/translated/bom.js:950 templates/js/translated/build.js:2682 msgid "Variant stock allowed" msgstr "" @@ -12176,30 +12541,30 @@ msgstr "" msgid "No pricing available" msgstr "" -#: templates/js/translated/bom.js:1184 templates/js/translated/build.js:2812 +#: templates/js/translated/bom.js:1184 templates/js/translated/build.js:2830 msgid "External stock" msgstr "" -#: templates/js/translated/bom.js:1188 templates/js/translated/build.js:2786 -#: templates/js/translated/sales_order.js:1946 +#: templates/js/translated/bom.js:1188 templates/js/translated/build.js:2804 +#: templates/js/translated/sales_order.js:1927 msgid "No Stock Available" msgstr "" -#: templates/js/translated/bom.js:1193 templates/js/translated/build.js:2790 +#: templates/js/translated/bom.js:1193 templates/js/translated/build.js:2808 msgid "Includes variant and substitute stock" msgstr "" -#: templates/js/translated/bom.js:1195 templates/js/translated/build.js:2792 +#: templates/js/translated/bom.js:1195 templates/js/translated/build.js:2810 #: templates/js/translated/part.js:1263 -#: templates/js/translated/sales_order.js:1943 +#: templates/js/translated/sales_order.js:1924 msgid "Includes variant stock" msgstr "" -#: templates/js/translated/bom.js:1197 templates/js/translated/build.js:2794 +#: templates/js/translated/bom.js:1197 templates/js/translated/build.js:2812 msgid "Includes substitute stock" msgstr "" -#: templates/js/translated/bom.js:1225 templates/js/translated/build.js:2777 +#: templates/js/translated/bom.js:1225 templates/js/translated/build.js:2795 msgid "Consumable item" msgstr "" @@ -12231,7 +12596,7 @@ msgstr "" msgid "No BOM items found" msgstr "" -#: templates/js/translated/bom.js:1657 templates/js/translated/build.js:2658 +#: templates/js/translated/bom.js:1657 templates/js/translated/build.js:2667 msgid "Required Part" msgstr "" @@ -12243,396 +12608,396 @@ msgstr "" msgid "Edit Build Order" msgstr "" -#: templates/js/translated/build.js:191 +#: templates/js/translated/build.js:194 msgid "Create Build Order" msgstr "" -#: templates/js/translated/build.js:223 +#: templates/js/translated/build.js:226 msgid "Cancel Build Order" msgstr "" -#: templates/js/translated/build.js:232 +#: templates/js/translated/build.js:235 msgid "Are you sure you wish to cancel this build?" msgstr "" -#: templates/js/translated/build.js:238 +#: templates/js/translated/build.js:241 msgid "Stock items have been allocated to this build order" msgstr "" -#: templates/js/translated/build.js:245 +#: templates/js/translated/build.js:248 msgid "There are incomplete outputs remaining for this build order" msgstr "" -#: templates/js/translated/build.js:297 +#: templates/js/translated/build.js:300 msgid "Build order is ready to be completed" msgstr "" -#: templates/js/translated/build.js:305 +#: templates/js/translated/build.js:308 msgid "This build order cannot be completed as there are incomplete outputs" msgstr "" -#: templates/js/translated/build.js:310 +#: templates/js/translated/build.js:313 msgid "Build Order is incomplete" msgstr "" -#: templates/js/translated/build.js:328 +#: templates/js/translated/build.js:331 msgid "Complete Build Order" msgstr "" -#: templates/js/translated/build.js:369 templates/js/translated/stock.js:127 +#: templates/js/translated/build.js:372 templates/js/translated/stock.js:127 #: templates/js/translated/stock.js:301 msgid "Next available serial number" msgstr "" -#: templates/js/translated/build.js:371 templates/js/translated/stock.js:129 +#: templates/js/translated/build.js:374 templates/js/translated/stock.js:129 #: templates/js/translated/stock.js:303 msgid "Latest serial number" msgstr "" -#: templates/js/translated/build.js:380 +#: templates/js/translated/build.js:383 msgid "The Bill of Materials contains trackable parts" msgstr "" -#: templates/js/translated/build.js:381 +#: templates/js/translated/build.js:384 msgid "Build outputs must be generated individually" msgstr "" -#: templates/js/translated/build.js:389 +#: templates/js/translated/build.js:392 msgid "Trackable parts can have serial numbers specified" msgstr "" -#: templates/js/translated/build.js:390 +#: templates/js/translated/build.js:393 msgid "Enter serial numbers to generate multiple single build outputs" msgstr "" -#: templates/js/translated/build.js:397 +#: templates/js/translated/build.js:400 msgid "Create Build Output" msgstr "" -#: templates/js/translated/build.js:428 +#: templates/js/translated/build.js:431 msgid "Allocate stock items to this build output" msgstr "" -#: templates/js/translated/build.js:436 +#: templates/js/translated/build.js:439 msgid "Deallocate stock from build output" msgstr "" -#: templates/js/translated/build.js:445 +#: templates/js/translated/build.js:448 msgid "Complete build output" msgstr "" -#: templates/js/translated/build.js:453 +#: templates/js/translated/build.js:456 msgid "Scrap build output" msgstr "" -#: templates/js/translated/build.js:460 +#: templates/js/translated/build.js:463 msgid "Delete build output" msgstr "" -#: templates/js/translated/build.js:480 +#: templates/js/translated/build.js:483 msgid "Are you sure you wish to deallocate the selected stock items from this build?" msgstr "" -#: templates/js/translated/build.js:498 +#: templates/js/translated/build.js:501 msgid "Deallocate Stock Items" msgstr "" -#: templates/js/translated/build.js:584 templates/js/translated/build.js:711 -#: templates/js/translated/build.js:836 +#: templates/js/translated/build.js:587 templates/js/translated/build.js:714 +#: templates/js/translated/build.js:839 msgid "Select Build Outputs" msgstr "" -#: templates/js/translated/build.js:585 templates/js/translated/build.js:712 -#: templates/js/translated/build.js:837 +#: templates/js/translated/build.js:588 templates/js/translated/build.js:715 +#: templates/js/translated/build.js:840 msgid "At least one build output must be selected" msgstr "" -#: templates/js/translated/build.js:599 +#: templates/js/translated/build.js:602 msgid "Selected build outputs will be marked as complete" msgstr "" -#: templates/js/translated/build.js:603 templates/js/translated/build.js:736 -#: templates/js/translated/build.js:859 +#: templates/js/translated/build.js:606 templates/js/translated/build.js:739 +#: templates/js/translated/build.js:862 msgid "Output" msgstr "" -#: templates/js/translated/build.js:630 +#: templates/js/translated/build.js:633 msgid "Complete Build Outputs" msgstr "" -#: templates/js/translated/build.js:727 +#: templates/js/translated/build.js:730 msgid "Selected build outputs will be marked as scrapped" msgstr "" -#: templates/js/translated/build.js:729 +#: templates/js/translated/build.js:732 msgid "Scrapped output are marked as rejected" msgstr "" -#: templates/js/translated/build.js:730 +#: templates/js/translated/build.js:733 msgid "Allocated stock items will no longer be available" msgstr "" -#: templates/js/translated/build.js:731 +#: templates/js/translated/build.js:734 msgid "The completion status of the build order will not be adjusted" msgstr "" -#: templates/js/translated/build.js:761 +#: templates/js/translated/build.js:764 msgid "Scrap Build Outputs" msgstr "" -#: templates/js/translated/build.js:851 +#: templates/js/translated/build.js:854 msgid "Selected build outputs will be deleted" msgstr "" -#: templates/js/translated/build.js:853 +#: templates/js/translated/build.js:856 msgid "Build output data will be permanently deleted" msgstr "" -#: templates/js/translated/build.js:854 +#: templates/js/translated/build.js:857 msgid "Allocated stock items will be returned to stock" msgstr "" -#: templates/js/translated/build.js:872 +#: templates/js/translated/build.js:875 msgid "Delete Build Outputs" msgstr "" -#: templates/js/translated/build.js:959 +#: templates/js/translated/build.js:962 msgid "Delete allocations" msgstr "" -#: templates/js/translated/build.js:966 +#: templates/js/translated/build.js:969 msgid "Delete Stock Allocations" msgstr "" -#: templates/js/translated/build.js:989 +#: templates/js/translated/build.js:992 msgid "No allocated stock" msgstr "" -#: templates/js/translated/build.js:1045 +#: templates/js/translated/build.js:1048 msgid "Stock item" msgstr "" -#: templates/js/translated/build.js:1070 +#: templates/js/translated/build.js:1073 msgid "Edit build allocation" msgstr "" -#: templates/js/translated/build.js:1071 +#: templates/js/translated/build.js:1074 msgid "Delete build allocation" msgstr "" -#: templates/js/translated/build.js:1089 +#: templates/js/translated/build.js:1092 msgid "Edit Build Allocation" msgstr "" -#: templates/js/translated/build.js:1102 +#: templates/js/translated/build.js:1105 msgid "Delete Build Allocation" msgstr "" -#: templates/js/translated/build.js:1133 +#: templates/js/translated/build.js:1136 msgid "No build order allocations found" msgstr "" -#: templates/js/translated/build.js:1178 +#: templates/js/translated/build.js:1181 msgid "Location not specified" msgstr "" -#: templates/js/translated/build.js:1200 +#: templates/js/translated/build.js:1203 msgid "Complete outputs" msgstr "" -#: templates/js/translated/build.js:1218 +#: templates/js/translated/build.js:1221 msgid "Scrap outputs" msgstr "" -#: templates/js/translated/build.js:1236 +#: templates/js/translated/build.js:1239 msgid "Delete outputs" msgstr "" -#: templates/js/translated/build.js:1289 +#: templates/js/translated/build.js:1292 msgid "build output" msgstr "" -#: templates/js/translated/build.js:1290 +#: templates/js/translated/build.js:1293 msgid "build outputs" msgstr "" -#: templates/js/translated/build.js:1294 +#: templates/js/translated/build.js:1297 msgid "Build output actions" msgstr "" -#: templates/js/translated/build.js:1470 +#: templates/js/translated/build.js:1473 msgid "No active build outputs found" msgstr "" -#: templates/js/translated/build.js:1563 +#: templates/js/translated/build.js:1566 msgid "Allocated Lines" msgstr "" -#: templates/js/translated/build.js:1577 +#: templates/js/translated/build.js:1580 msgid "Required Tests" msgstr "" -#: templates/js/translated/build.js:1749 -#: templates/js/translated/purchase_order.js:611 -#: templates/js/translated/sales_order.js:1207 +#: templates/js/translated/build.js:1752 +#: templates/js/translated/purchase_order.js:594 +#: templates/js/translated/sales_order.js:1173 msgid "Select Parts" msgstr "" -#: templates/js/translated/build.js:1750 -#: templates/js/translated/sales_order.js:1208 +#: templates/js/translated/build.js:1753 +#: templates/js/translated/sales_order.js:1174 msgid "You must select at least one part to allocate" msgstr "" -#: templates/js/translated/build.js:1813 -#: templates/js/translated/sales_order.js:1157 +#: templates/js/translated/build.js:1816 +#: templates/js/translated/sales_order.js:1123 msgid "Specify stock allocation quantity" msgstr "" -#: templates/js/translated/build.js:1890 +#: templates/js/translated/build.js:1893 msgid "All Parts Allocated" msgstr "" -#: templates/js/translated/build.js:1891 +#: templates/js/translated/build.js:1894 msgid "All selected parts have been fully allocated" msgstr "" -#: templates/js/translated/build.js:1905 -#: templates/js/translated/sales_order.js:1222 +#: templates/js/translated/build.js:1908 +#: templates/js/translated/sales_order.js:1188 msgid "Select source location (leave blank to take from all locations)" msgstr "" -#: templates/js/translated/build.js:1933 +#: templates/js/translated/build.js:1936 msgid "Allocate Stock Items to Build Order" msgstr "" -#: templates/js/translated/build.js:1944 -#: templates/js/translated/sales_order.js:1319 +#: templates/js/translated/build.js:1947 +#: templates/js/translated/sales_order.js:1285 msgid "No matching stock locations" msgstr "" -#: templates/js/translated/build.js:2017 -#: templates/js/translated/sales_order.js:1398 +#: templates/js/translated/build.js:2020 +#: templates/js/translated/sales_order.js:1364 msgid "No matching stock items" msgstr "" -#: templates/js/translated/build.js:2114 +#: templates/js/translated/build.js:2117 msgid "Automatic Stock Allocation" msgstr "" -#: templates/js/translated/build.js:2115 +#: templates/js/translated/build.js:2118 msgid "Stock items will be automatically allocated to this build order, according to the provided guidelines" msgstr "" -#: templates/js/translated/build.js:2117 +#: templates/js/translated/build.js:2120 msgid "If a location is specified, stock will only be allocated from that location" msgstr "" -#: templates/js/translated/build.js:2118 +#: templates/js/translated/build.js:2121 msgid "If stock is considered interchangeable, it will be allocated from the first location it is found" msgstr "" -#: templates/js/translated/build.js:2119 +#: templates/js/translated/build.js:2122 msgid "If substitute stock is allowed, it will be used where stock of the primary part cannot be found" msgstr "" -#: templates/js/translated/build.js:2149 +#: templates/js/translated/build.js:2152 msgid "Allocate Stock Items" msgstr "" -#: templates/js/translated/build.js:2254 +#: templates/js/translated/build.js:2257 msgid "No builds matching query" msgstr "" -#: templates/js/translated/build.js:2289 templates/js/translated/build.js:2652 +#: templates/js/translated/build.js:2292 templates/js/translated/build.js:2661 #: templates/js/translated/forms.js:2196 templates/js/translated/forms.js:2212 #: templates/js/translated/part.js:2322 templates/js/translated/part.js:2761 -#: templates/js/translated/stock.js:2068 templates/js/translated/stock.js:2795 +#: templates/js/translated/stock.js:2069 templates/js/translated/stock.js:2796 msgid "Select" -msgstr "" +msgstr "Pilih" -#: templates/js/translated/build.js:2303 +#: templates/js/translated/build.js:2306 msgid "Build order is overdue" msgstr "" -#: templates/js/translated/build.js:2385 templates/js/translated/stock.js:3126 +#: templates/js/translated/build.js:2388 templates/js/translated/stock.js:3127 msgid "No user information" -msgstr "" +msgstr "Tidak ada Informasi Pengguna" -#: templates/js/translated/build.js:2561 -#: templates/js/translated/sales_order.js:1682 +#: templates/js/translated/build.js:2568 +#: templates/js/translated/sales_order.js:1663 msgid "Edit stock allocation" msgstr "" -#: templates/js/translated/build.js:2562 -#: templates/js/translated/sales_order.js:1683 +#: templates/js/translated/build.js:2569 +#: templates/js/translated/sales_order.js:1664 msgid "Delete stock allocation" msgstr "" -#: templates/js/translated/build.js:2577 +#: templates/js/translated/build.js:2584 msgid "Edit Allocation" msgstr "" -#: templates/js/translated/build.js:2589 +#: templates/js/translated/build.js:2596 msgid "Remove Allocation" msgstr "" -#: templates/js/translated/build.js:2628 +#: templates/js/translated/build.js:2636 msgid "build line" msgstr "" -#: templates/js/translated/build.js:2629 +#: templates/js/translated/build.js:2637 msgid "build lines" msgstr "" -#: templates/js/translated/build.js:2647 +#: templates/js/translated/build.js:2656 msgid "No build lines found" msgstr "" -#: templates/js/translated/build.js:2677 templates/js/translated/part.js:793 +#: templates/js/translated/build.js:2686 templates/js/translated/part.js:793 #: templates/js/translated/part.js:1209 msgid "Trackable part" msgstr "" -#: templates/js/translated/build.js:2720 +#: templates/js/translated/build.js:2729 msgid "Gets Inherited" msgstr "" -#: templates/js/translated/build.js:2730 +#: templates/js/translated/build.js:2748 msgid "Unit Quantity" msgstr "" -#: templates/js/translated/build.js:2782 -#: templates/js/translated/sales_order.js:1951 +#: templates/js/translated/build.js:2800 +#: templates/js/translated/sales_order.js:1932 msgid "Sufficient stock available" msgstr "" -#: templates/js/translated/build.js:2837 +#: templates/js/translated/build.js:2855 msgid "Consumable Item" msgstr "" -#: templates/js/translated/build.js:2844 +#: templates/js/translated/build.js:2862 msgid "Tracked item" msgstr "" -#: templates/js/translated/build.js:2845 +#: templates/js/translated/build.js:2863 msgid "Allocate tracked items against individual build outputs" msgstr "" -#: templates/js/translated/build.js:2853 -#: templates/js/translated/sales_order.js:2052 +#: templates/js/translated/build.js:2871 +#: templates/js/translated/sales_order.js:2033 msgid "Build stock" msgstr "" -#: templates/js/translated/build.js:2858 templates/js/translated/stock.js:1953 +#: templates/js/translated/build.js:2876 templates/js/translated/stock.js:1954 msgid "Order stock" msgstr "" -#: templates/js/translated/build.js:2862 -#: templates/js/translated/sales_order.js:2046 +#: templates/js/translated/build.js:2880 +#: templates/js/translated/sales_order.js:2027 msgid "Allocate stock" msgstr "" -#: templates/js/translated/build.js:2866 +#: templates/js/translated/build.js:2884 msgid "Remove stock allocation" msgstr "" @@ -12641,7 +13006,7 @@ msgid "Add Manufacturer" msgstr "" #: templates/js/translated/company.js:111 -#: templates/js/translated/company.js:213 +#: templates/js/translated/company.js:214 msgid "Add Manufacturer Part" msgstr "" @@ -12649,231 +13014,231 @@ msgstr "" msgid "Edit Manufacturer Part" msgstr "" -#: templates/js/translated/company.js:201 +#: templates/js/translated/company.js:202 #: templates/js/translated/purchase_order.js:93 msgid "Add Supplier" msgstr "" -#: templates/js/translated/company.js:243 -#: templates/js/translated/purchase_order.js:318 +#: templates/js/translated/company.js:244 +#: templates/js/translated/purchase_order.js:301 msgid "Add Supplier Part" msgstr "" -#: templates/js/translated/company.js:344 +#: templates/js/translated/company.js:345 msgid "All selected supplier parts will be deleted" msgstr "" -#: templates/js/translated/company.js:360 +#: templates/js/translated/company.js:361 msgid "Delete Supplier Parts" msgstr "" -#: templates/js/translated/company.js:466 +#: templates/js/translated/company.js:467 msgid "Add new Company" msgstr "" -#: templates/js/translated/company.js:546 +#: templates/js/translated/company.js:547 msgid "Parts Supplied" msgstr "" -#: templates/js/translated/company.js:555 +#: templates/js/translated/company.js:556 msgid "Parts Manufactured" msgstr "" -#: templates/js/translated/company.js:570 +#: templates/js/translated/company.js:571 msgid "No company information found" msgstr "" -#: templates/js/translated/company.js:619 +#: templates/js/translated/company.js:620 msgid "Create New Contact" -msgstr "" +msgstr "Buat Kontak Baru" -#: templates/js/translated/company.js:635 -#: templates/js/translated/company.js:758 +#: templates/js/translated/company.js:636 +#: templates/js/translated/company.js:759 msgid "Edit Contact" msgstr "" -#: templates/js/translated/company.js:672 +#: templates/js/translated/company.js:673 msgid "All selected contacts will be deleted" msgstr "" -#: templates/js/translated/company.js:678 -#: templates/js/translated/company.js:742 +#: templates/js/translated/company.js:679 +#: templates/js/translated/company.js:743 msgid "Role" msgstr "" -#: templates/js/translated/company.js:686 +#: templates/js/translated/company.js:687 msgid "Delete Contacts" msgstr "" -#: templates/js/translated/company.js:717 +#: templates/js/translated/company.js:718 msgid "No contacts found" msgstr "" -#: templates/js/translated/company.js:730 +#: templates/js/translated/company.js:731 msgid "Phone Number" -msgstr "" +msgstr "Nomor Telepon" -#: templates/js/translated/company.js:736 +#: templates/js/translated/company.js:737 msgid "Email Address" -msgstr "" +msgstr "Alamat Surel" -#: templates/js/translated/company.js:762 +#: templates/js/translated/company.js:763 msgid "Delete Contact" msgstr "" -#: templates/js/translated/company.js:859 +#: templates/js/translated/company.js:860 msgid "Create New Address" msgstr "" -#: templates/js/translated/company.js:874 -#: templates/js/translated/company.js:1035 +#: templates/js/translated/company.js:875 +#: templates/js/translated/company.js:1036 msgid "Edit Address" msgstr "" -#: templates/js/translated/company.js:909 +#: templates/js/translated/company.js:910 msgid "All selected addresses will be deleted" msgstr "" -#: templates/js/translated/company.js:923 +#: templates/js/translated/company.js:924 msgid "Delete Addresses" msgstr "" -#: templates/js/translated/company.js:950 +#: templates/js/translated/company.js:951 msgid "No addresses found" msgstr "" -#: templates/js/translated/company.js:989 +#: templates/js/translated/company.js:990 msgid "Postal city" -msgstr "" +msgstr "Kode Pos" -#: templates/js/translated/company.js:995 +#: templates/js/translated/company.js:996 msgid "State/province" -msgstr "" +msgstr "Negara Bagian/Provinsi" -#: templates/js/translated/company.js:1007 +#: templates/js/translated/company.js:1008 msgid "Courier notes" msgstr "" -#: templates/js/translated/company.js:1013 +#: templates/js/translated/company.js:1014 msgid "Internal notes" msgstr "" -#: templates/js/translated/company.js:1039 +#: templates/js/translated/company.js:1040 msgid "Delete Address" msgstr "" -#: templates/js/translated/company.js:1112 +#: templates/js/translated/company.js:1113 msgid "All selected manufacturer parts will be deleted" msgstr "" -#: templates/js/translated/company.js:1127 +#: templates/js/translated/company.js:1128 msgid "Delete Manufacturer Parts" msgstr "" -#: templates/js/translated/company.js:1161 +#: templates/js/translated/company.js:1162 msgid "All selected parameters will be deleted" msgstr "" -#: templates/js/translated/company.js:1175 +#: templates/js/translated/company.js:1176 msgid "Delete Parameters" msgstr "" -#: templates/js/translated/company.js:1191 -#: templates/js/translated/company.js:1479 templates/js/translated/part.js:2250 +#: templates/js/translated/company.js:1192 +#: templates/js/translated/company.js:1480 templates/js/translated/part.js:2250 msgid "Order parts" msgstr "" -#: templates/js/translated/company.js:1208 +#: templates/js/translated/company.js:1209 msgid "Delete manufacturer parts" msgstr "" -#: templates/js/translated/company.js:1240 +#: templates/js/translated/company.js:1241 msgid "Manufacturer part actions" msgstr "" -#: templates/js/translated/company.js:1259 +#: templates/js/translated/company.js:1260 msgid "No manufacturer parts found" msgstr "" -#: templates/js/translated/company.js:1279 -#: templates/js/translated/company.js:1567 templates/js/translated/part.js:801 +#: templates/js/translated/company.js:1280 +#: templates/js/translated/company.js:1568 templates/js/translated/part.js:801 #: templates/js/translated/part.js:1217 msgid "Template part" msgstr "" -#: templates/js/translated/company.js:1283 -#: templates/js/translated/company.js:1571 templates/js/translated/part.js:805 +#: templates/js/translated/company.js:1284 +#: templates/js/translated/company.js:1572 templates/js/translated/part.js:805 #: templates/js/translated/part.js:1221 msgid "Assembled part" msgstr "" -#: templates/js/translated/company.js:1403 templates/js/translated/part.js:1471 +#: templates/js/translated/company.js:1404 templates/js/translated/part.js:1471 msgid "No parameters found" msgstr "" -#: templates/js/translated/company.js:1438 templates/js/translated/part.js:1534 +#: templates/js/translated/company.js:1439 templates/js/translated/part.js:1534 msgid "Edit parameter" msgstr "" -#: templates/js/translated/company.js:1439 templates/js/translated/part.js:1535 +#: templates/js/translated/company.js:1440 templates/js/translated/part.js:1535 msgid "Delete parameter" msgstr "" -#: templates/js/translated/company.js:1456 templates/js/translated/part.js:1440 +#: templates/js/translated/company.js:1457 templates/js/translated/part.js:1440 msgid "Edit Parameter" msgstr "" -#: templates/js/translated/company.js:1465 templates/js/translated/part.js:1556 +#: templates/js/translated/company.js:1466 templates/js/translated/part.js:1556 msgid "Delete Parameter" msgstr "" -#: templates/js/translated/company.js:1496 +#: templates/js/translated/company.js:1497 msgid "Delete supplier parts" msgstr "" -#: templates/js/translated/company.js:1546 +#: templates/js/translated/company.js:1547 msgid "No supplier parts found" msgstr "" -#: templates/js/translated/company.js:1664 +#: templates/js/translated/company.js:1665 msgid "Base Units" msgstr "" -#: templates/js/translated/company.js:1694 +#: templates/js/translated/company.js:1695 msgid "Availability" msgstr "" -#: templates/js/translated/company.js:1725 +#: templates/js/translated/company.js:1726 msgid "Edit supplier part" msgstr "" -#: templates/js/translated/company.js:1726 +#: templates/js/translated/company.js:1727 msgid "Delete supplier part" msgstr "" -#: templates/js/translated/company.js:1779 +#: templates/js/translated/company.js:1780 #: templates/js/translated/pricing.js:694 msgid "Delete Price Break" msgstr "" -#: templates/js/translated/company.js:1789 +#: templates/js/translated/company.js:1790 #: templates/js/translated/pricing.js:712 msgid "Edit Price Break" msgstr "" -#: templates/js/translated/company.js:1804 +#: templates/js/translated/company.js:1805 msgid "No price break information found" msgstr "" -#: templates/js/translated/company.js:1833 +#: templates/js/translated/company.js:1834 msgid "Last updated" msgstr "" -#: templates/js/translated/company.js:1840 +#: templates/js/translated/company.js:1841 msgid "Edit price break" msgstr "" -#: templates/js/translated/company.js:1841 +#: templates/js/translated/company.js:1842 msgid "Delete price break" msgstr "" @@ -12977,19 +13342,19 @@ msgstr "" msgid "Select Columns" msgstr "" -#: templates/js/translated/helpers.js:80 +#: templates/js/translated/helpers.js:81 msgid "YES" -msgstr "" +msgstr "Ya" -#: templates/js/translated/helpers.js:83 +#: templates/js/translated/helpers.js:84 msgid "NO" -msgstr "" +msgstr "Tidak" -#: templates/js/translated/helpers.js:96 +#: templates/js/translated/helpers.js:97 msgid "True" msgstr "" -#: templates/js/translated/helpers.js:97 +#: templates/js/translated/helpers.js:98 msgid "False" msgstr "" @@ -13012,7 +13377,7 @@ msgstr "" #: templates/js/translated/modals.js:59 templates/js/translated/modals.js:159 #: templates/js/translated/modals.js:688 msgid "Cancel" -msgstr "" +msgstr "Batalkan" #: templates/js/translated/modals.js:64 templates/js/translated/modals.js:158 #: templates/js/translated/modals.js:756 templates/js/translated/modals.js:1064 @@ -13034,7 +13399,7 @@ msgstr "" #: templates/js/translated/modals.js:687 msgid "Accept" -msgstr "" +msgstr "Terima" #: templates/js/translated/modals.js:745 msgid "Loading Data" @@ -13084,7 +13449,7 @@ msgstr "" #: templates/js/translated/notification.js:65 msgid "Notification" -msgstr "" +msgstr "Notifikasi" #: templates/js/translated/notification.js:224 msgid "Mark as unread" @@ -13131,7 +13496,7 @@ msgid "Delete Line" msgstr "" #: templates/js/translated/order.js:306 -#: templates/js/translated/purchase_order.js:2060 +#: templates/js/translated/purchase_order.js:2044 msgid "No line items found" msgstr "" @@ -13299,7 +13664,7 @@ msgstr "" #: templates/js/translated/part.js:751 msgid "Demand" -msgstr "" +msgstr "Permintaan" #: templates/js/translated/part.js:774 msgid "Unit" @@ -13366,19 +13731,19 @@ msgid "Delete Part Parameter Template" msgstr "" #: templates/js/translated/part.js:1723 -#: templates/js/translated/purchase_order.js:1724 +#: templates/js/translated/purchase_order.js:1708 msgid "No purchase orders found" msgstr "" #: templates/js/translated/part.js:1867 -#: templates/js/translated/purchase_order.js:2223 +#: templates/js/translated/purchase_order.js:2207 #: templates/js/translated/return_order.js:754 -#: templates/js/translated/sales_order.js:1911 +#: templates/js/translated/sales_order.js:1892 msgid "This line item is overdue" msgstr "" #: templates/js/translated/part.js:1913 -#: templates/js/translated/purchase_order.js:2290 +#: templates/js/translated/purchase_order.js:2274 msgid "Receive line item" msgstr "" @@ -13419,7 +13784,7 @@ msgid "No category" msgstr "" #: templates/js/translated/part.js:2550 templates/js/translated/part.js:2680 -#: templates/js/translated/stock.js:2754 +#: templates/js/translated/stock.js:2755 msgid "Display as list" msgstr "" @@ -13431,7 +13796,7 @@ msgstr "" msgid "No subcategories found" msgstr "" -#: templates/js/translated/part.js:2700 templates/js/translated/stock.js:2774 +#: templates/js/translated/part.js:2700 templates/js/translated/stock.js:2775 msgid "Display as tree" msgstr "" @@ -13483,23 +13848,23 @@ msgstr "" msgid "Speculative" msgstr "" -#: templates/js/translated/part.js:3128 +#: templates/js/translated/part.js:3144 msgid "No scheduling information available for this part" msgstr "" -#: templates/js/translated/part.js:3134 +#: templates/js/translated/part.js:3150 msgid "Error fetching scheduling information for this part" msgstr "" -#: templates/js/translated/part.js:3230 +#: templates/js/translated/part.js:3246 msgid "Scheduled Stock Quantities" msgstr "" -#: templates/js/translated/part.js:3246 +#: templates/js/translated/part.js:3262 msgid "Maximum Quantity" msgstr "" -#: templates/js/translated/part.js:3291 +#: templates/js/translated/part.js:3307 msgid "Minimum Stock Level" msgstr "" @@ -13541,11 +13906,11 @@ msgstr "" #: templates/js/translated/plugin.js:189 msgid "Enable" -msgstr "" +msgstr "Aktifkan" #: templates/js/translated/plugin.js:189 msgid "Disable" -msgstr "" +msgstr "Nonaktifkan" #: templates/js/translated/plugin.js:203 msgid "Plugin updated" @@ -13575,267 +13940,243 @@ msgstr "" msgid "Purchase Price History" msgstr "" -#: templates/js/translated/pricing.js:894 +#: templates/js/translated/pricing.js:892 msgid "No sales history data available" msgstr "" -#: templates/js/translated/pricing.js:916 +#: templates/js/translated/pricing.js:914 msgid "Sale Price History" -msgstr "" +msgstr "Riwayat Harga Jual" -#: templates/js/translated/pricing.js:1005 +#: templates/js/translated/pricing.js:1003 msgid "No variant data available" msgstr "" -#: templates/js/translated/pricing.js:1045 +#: templates/js/translated/pricing.js:1043 msgid "Variant Part" msgstr "" -#: templates/js/translated/purchase_order.js:169 -msgid "Select purchase order to duplicate" -msgstr "" - -#: templates/js/translated/purchase_order.js:176 -msgid "Duplicate Line Items" -msgstr "" - -#: templates/js/translated/purchase_order.js:177 -msgid "Duplicate all line items from the selected order" -msgstr "" - -#: templates/js/translated/purchase_order.js:184 -msgid "Duplicate Extra Lines" -msgstr "" - -#: templates/js/translated/purchase_order.js:185 -msgid "Duplicate extra line items from the selected order" -msgstr "" - -#: templates/js/translated/purchase_order.js:206 +#: templates/js/translated/purchase_order.js:188 msgid "Edit Purchase Order" msgstr "" -#: templates/js/translated/purchase_order.js:223 +#: templates/js/translated/purchase_order.js:205 msgid "Duplication Options" msgstr "" -#: templates/js/translated/purchase_order.js:431 +#: templates/js/translated/purchase_order.js:414 msgid "Complete Purchase Order" msgstr "" -#: templates/js/translated/purchase_order.js:448 +#: templates/js/translated/purchase_order.js:431 #: templates/js/translated/return_order.js:210 -#: templates/js/translated/sales_order.js:552 +#: templates/js/translated/sales_order.js:511 msgid "Mark this order as complete?" msgstr "" -#: templates/js/translated/purchase_order.js:454 +#: templates/js/translated/purchase_order.js:437 msgid "All line items have been received" msgstr "" -#: templates/js/translated/purchase_order.js:459 +#: templates/js/translated/purchase_order.js:442 msgid "This order has line items which have not been marked as received." msgstr "" -#: templates/js/translated/purchase_order.js:460 +#: templates/js/translated/purchase_order.js:443 msgid "Completing this order means that the order and line items will no longer be editable." msgstr "" -#: templates/js/translated/purchase_order.js:483 +#: templates/js/translated/purchase_order.js:466 msgid "Cancel Purchase Order" msgstr "" -#: templates/js/translated/purchase_order.js:488 +#: templates/js/translated/purchase_order.js:471 msgid "Are you sure you wish to cancel this purchase order?" msgstr "" -#: templates/js/translated/purchase_order.js:494 +#: templates/js/translated/purchase_order.js:477 msgid "This purchase order can not be cancelled" msgstr "" -#: templates/js/translated/purchase_order.js:515 +#: templates/js/translated/purchase_order.js:498 #: templates/js/translated/return_order.js:164 msgid "After placing this order, line items will no longer be editable." msgstr "" -#: templates/js/translated/purchase_order.js:520 +#: templates/js/translated/purchase_order.js:503 msgid "Issue Purchase Order" msgstr "" -#: templates/js/translated/purchase_order.js:612 +#: templates/js/translated/purchase_order.js:595 msgid "At least one purchaseable part must be selected" msgstr "" -#: templates/js/translated/purchase_order.js:637 +#: templates/js/translated/purchase_order.js:620 msgid "Quantity to order" msgstr "" -#: templates/js/translated/purchase_order.js:646 +#: templates/js/translated/purchase_order.js:629 msgid "New supplier part" msgstr "" -#: templates/js/translated/purchase_order.js:664 +#: templates/js/translated/purchase_order.js:647 msgid "New purchase order" msgstr "" -#: templates/js/translated/purchase_order.js:705 +#: templates/js/translated/purchase_order.js:688 msgid "Add to purchase order" msgstr "" -#: templates/js/translated/purchase_order.js:755 +#: templates/js/translated/purchase_order.js:738 msgid "Merge" -msgstr "" +msgstr "Gabungkan" -#: templates/js/translated/purchase_order.js:859 +#: templates/js/translated/purchase_order.js:842 msgid "No matching supplier parts" msgstr "" -#: templates/js/translated/purchase_order.js:878 +#: templates/js/translated/purchase_order.js:861 msgid "No matching purchase orders" msgstr "" -#: templates/js/translated/purchase_order.js:1073 +#: templates/js/translated/purchase_order.js:1056 #: templates/js/translated/return_order.js:490 msgid "Select Line Items" msgstr "" -#: templates/js/translated/purchase_order.js:1074 +#: templates/js/translated/purchase_order.js:1057 #: templates/js/translated/return_order.js:491 msgid "At least one line item must be selected" msgstr "" -#: templates/js/translated/purchase_order.js:1104 +#: templates/js/translated/purchase_order.js:1087 msgid "Received Quantity" msgstr "" -#: templates/js/translated/purchase_order.js:1115 +#: templates/js/translated/purchase_order.js:1098 msgid "Quantity to receive" msgstr "" -#: templates/js/translated/purchase_order.js:1170 +#: templates/js/translated/purchase_order.js:1153 #: templates/js/translated/stock.js:1215 msgid "Specify packaging for incoming stock items" msgstr "" -#: templates/js/translated/purchase_order.js:1223 +#: templates/js/translated/purchase_order.js:1206 msgid "Stock Status" msgstr "" -#: templates/js/translated/purchase_order.js:1237 +#: templates/js/translated/purchase_order.js:1220 msgid "Add barcode" -msgstr "" +msgstr "Tambah Barcode" -#: templates/js/translated/purchase_order.js:1238 +#: templates/js/translated/purchase_order.js:1221 msgid "Remove barcode" msgstr "" -#: templates/js/translated/purchase_order.js:1241 +#: templates/js/translated/purchase_order.js:1224 msgid "Specify location" msgstr "" -#: templates/js/translated/purchase_order.js:1249 +#: templates/js/translated/purchase_order.js:1232 msgid "Add batch code" msgstr "" -#: templates/js/translated/purchase_order.js:1259 +#: templates/js/translated/purchase_order.js:1242 msgid "Specify packaging" msgstr "" -#: templates/js/translated/purchase_order.js:1270 +#: templates/js/translated/purchase_order.js:1253 msgid "Add serial numbers" msgstr "" -#: templates/js/translated/purchase_order.js:1281 +#: templates/js/translated/purchase_order.js:1264 msgid "Add note" -msgstr "" +msgstr "Tambah Catatan" -#: templates/js/translated/purchase_order.js:1338 +#: templates/js/translated/purchase_order.js:1321 msgid "Serials" msgstr "" -#: templates/js/translated/purchase_order.js:1368 +#: templates/js/translated/purchase_order.js:1351 msgid "Order Code" msgstr "" -#: templates/js/translated/purchase_order.js:1370 +#: templates/js/translated/purchase_order.js:1353 msgid "Quantity to Receive" msgstr "" -#: templates/js/translated/purchase_order.js:1395 +#: templates/js/translated/purchase_order.js:1379 #: templates/js/translated/return_order.js:559 msgid "Confirm receipt of items" msgstr "" -#: templates/js/translated/purchase_order.js:1396 +#: templates/js/translated/purchase_order.js:1380 msgid "Receive Purchase Order Items" msgstr "" -#: templates/js/translated/purchase_order.js:1464 +#: templates/js/translated/purchase_order.js:1448 msgid "Scan Item Barcode" msgstr "" -#: templates/js/translated/purchase_order.js:1465 +#: templates/js/translated/purchase_order.js:1449 msgid "Scan barcode on incoming item (must not match any existing stock items)" msgstr "" -#: templates/js/translated/purchase_order.js:1479 +#: templates/js/translated/purchase_order.js:1463 msgid "Invalid barcode data" msgstr "" -#: templates/js/translated/purchase_order.js:1751 +#: templates/js/translated/purchase_order.js:1735 #: templates/js/translated/return_order.js:285 -#: templates/js/translated/sales_order.js:810 -#: templates/js/translated/sales_order.js:1034 +#: templates/js/translated/sales_order.js:769 +#: templates/js/translated/sales_order.js:1007 msgid "Order is overdue" msgstr "" -#: templates/js/translated/purchase_order.js:1913 +#: templates/js/translated/purchase_order.js:1897 msgid "All selected Line items will be deleted" msgstr "" -#: templates/js/translated/purchase_order.js:1931 +#: templates/js/translated/purchase_order.js:1915 msgid "Delete selected Line items?" msgstr "" -#: templates/js/translated/purchase_order.js:1986 -#: templates/js/translated/sales_order.js:2106 +#: templates/js/translated/purchase_order.js:1970 +#: templates/js/translated/sales_order.js:2087 msgid "Duplicate Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2001 +#: templates/js/translated/purchase_order.js:1985 #: templates/js/translated/return_order.js:475 #: templates/js/translated/return_order.js:667 -#: templates/js/translated/sales_order.js:2119 +#: templates/js/translated/sales_order.js:2100 msgid "Edit Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2012 +#: templates/js/translated/purchase_order.js:1996 #: templates/js/translated/return_order.js:680 -#: templates/js/translated/sales_order.js:2130 +#: templates/js/translated/sales_order.js:2111 msgid "Delete Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2294 -#: templates/js/translated/sales_order.js:2060 +#: templates/js/translated/purchase_order.js:2278 +#: templates/js/translated/sales_order.js:2041 msgid "Duplicate line item" msgstr "" -#: templates/js/translated/purchase_order.js:2295 +#: templates/js/translated/purchase_order.js:2279 #: templates/js/translated/return_order.js:799 -#: templates/js/translated/sales_order.js:2061 +#: templates/js/translated/sales_order.js:2042 msgid "Edit line item" msgstr "" -#: templates/js/translated/purchase_order.js:2296 +#: templates/js/translated/purchase_order.js:2280 #: templates/js/translated/return_order.js:803 -#: templates/js/translated/sales_order.js:2067 +#: templates/js/translated/sales_order.js:2048 msgid "Delete line item" msgstr "" -#: templates/js/translated/report.js:49 -msgid "Print Report" -msgstr "" - #: templates/js/translated/report.js:68 msgid "Report print successful" msgstr "" @@ -13847,7 +14188,7 @@ msgstr "" #: templates/js/translated/return_order.js:60 #: templates/js/translated/sales_order.js:86 msgid "Add Customer" -msgstr "" +msgstr "Tambah Pelanggan" #: templates/js/translated/return_order.js:134 msgid "Create Return Order" @@ -13878,16 +14219,16 @@ msgid "No return orders found" msgstr "" #: templates/js/translated/return_order.js:299 -#: templates/js/translated/sales_order.js:824 +#: templates/js/translated/sales_order.js:783 msgid "Invalid Customer" -msgstr "" +msgstr "Pelanggan Tidak Valid" #: templates/js/translated/return_order.js:560 msgid "Receive Return Order Items" msgstr "" #: templates/js/translated/return_order.js:691 -#: templates/js/translated/sales_order.js:2267 +#: templates/js/translated/sales_order.js:2248 msgid "No matching line items" msgstr "" @@ -13903,188 +14244,181 @@ msgstr "" msgid "Edit Sales Order" msgstr "" -#: templates/js/translated/sales_order.js:291 +#: templates/js/translated/sales_order.js:288 msgid "No stock items have been allocated to this shipment" msgstr "" -#: templates/js/translated/sales_order.js:296 -msgid "The following stock items will be shipped" -msgstr "" - -#: templates/js/translated/sales_order.js:336 +#: templates/js/translated/sales_order.js:294 msgid "Complete Shipment" msgstr "" -#: templates/js/translated/sales_order.js:360 +#: templates/js/translated/sales_order.js:318 msgid "Confirm Shipment" msgstr "" -#: templates/js/translated/sales_order.js:416 +#: templates/js/translated/sales_order.js:375 msgid "No pending shipments found" msgstr "" -#: templates/js/translated/sales_order.js:420 +#: templates/js/translated/sales_order.js:379 msgid "No stock items have been allocated to pending shipments" msgstr "" -#: templates/js/translated/sales_order.js:430 +#: templates/js/translated/sales_order.js:389 msgid "Complete Shipments" msgstr "" -#: templates/js/translated/sales_order.js:452 +#: templates/js/translated/sales_order.js:411 msgid "Skip" -msgstr "" +msgstr "Lewati" -#: templates/js/translated/sales_order.js:484 +#: templates/js/translated/sales_order.js:443 msgid "Ship Sales Order" msgstr "" -#: templates/js/translated/sales_order.js:500 +#: templates/js/translated/sales_order.js:459 msgid "Ship this order?" msgstr "" -#: templates/js/translated/sales_order.js:506 +#: templates/js/translated/sales_order.js:465 msgid "Order cannot be shipped as there are incomplete shipments" msgstr "" -#: templates/js/translated/sales_order.js:513 +#: templates/js/translated/sales_order.js:472 msgid "This order has line items which have not been completed." msgstr "" -#: templates/js/translated/sales_order.js:514 +#: templates/js/translated/sales_order.js:473 msgid "Shipping this order means that the order and line items will no longer be editable." msgstr "" -#: templates/js/translated/sales_order.js:572 +#: templates/js/translated/sales_order.js:531 msgid "Issue this Sales Order?" msgstr "" -#: templates/js/translated/sales_order.js:577 +#: templates/js/translated/sales_order.js:536 msgid "Issue Sales Order" msgstr "" -#: templates/js/translated/sales_order.js:596 +#: templates/js/translated/sales_order.js:555 msgid "Cancel Sales Order" msgstr "" -#: templates/js/translated/sales_order.js:601 +#: templates/js/translated/sales_order.js:560 msgid "Cancelling this order means that the order will no longer be editable." msgstr "" -#: templates/js/translated/sales_order.js:655 +#: templates/js/translated/sales_order.js:614 msgid "Create New Shipment" msgstr "" -#: templates/js/translated/sales_order.js:764 +#: templates/js/translated/sales_order.js:723 msgid "No sales orders found" msgstr "" -#: templates/js/translated/sales_order.js:944 +#: templates/js/translated/sales_order.js:907 msgid "Edit shipment" msgstr "" -#: templates/js/translated/sales_order.js:947 +#: templates/js/translated/sales_order.js:910 msgid "Complete shipment" msgstr "" -#: templates/js/translated/sales_order.js:952 +#: templates/js/translated/sales_order.js:915 msgid "Delete shipment" msgstr "" -#: templates/js/translated/sales_order.js:969 +#: templates/js/translated/sales_order.js:932 msgid "Edit Shipment" msgstr "" -#: templates/js/translated/sales_order.js:984 +#: templates/js/translated/sales_order.js:947 msgid "Delete Shipment" msgstr "" -#: templates/js/translated/sales_order.js:1017 +#: templates/js/translated/sales_order.js:989 msgid "No matching shipments found" msgstr "" -#: templates/js/translated/sales_order.js:1042 +#: templates/js/translated/sales_order.js:1015 msgid "Shipment Reference" msgstr "" -#: templates/js/translated/sales_order.js:1066 -#: templates/js/translated/sales_order.js:1565 +#: templates/js/translated/sales_order.js:1032 +#: templates/js/translated/sales_order.js:1531 msgid "Not shipped" -msgstr "" +msgstr "Tidak Terkirim" -#: templates/js/translated/sales_order.js:1084 +#: templates/js/translated/sales_order.js:1050 msgid "Tracking" msgstr "" -#: templates/js/translated/sales_order.js:1088 +#: templates/js/translated/sales_order.js:1054 msgid "Invoice" msgstr "" -#: templates/js/translated/sales_order.js:1255 +#: templates/js/translated/sales_order.js:1221 msgid "Add Shipment" -msgstr "" +msgstr "Tambah Pengiriman" -#: templates/js/translated/sales_order.js:1306 +#: templates/js/translated/sales_order.js:1272 msgid "Confirm stock allocation" msgstr "" -#: templates/js/translated/sales_order.js:1307 +#: templates/js/translated/sales_order.js:1273 msgid "Allocate Stock Items to Sales Order" msgstr "" -#: templates/js/translated/sales_order.js:1513 +#: templates/js/translated/sales_order.js:1479 msgid "No sales order allocations found" msgstr "" -#: templates/js/translated/sales_order.js:1605 +#: templates/js/translated/sales_order.js:1571 msgid "Edit Stock Allocation" msgstr "" -#: templates/js/translated/sales_order.js:1619 +#: templates/js/translated/sales_order.js:1585 msgid "Confirm Delete Operation" msgstr "" -#: templates/js/translated/sales_order.js:1620 +#: templates/js/translated/sales_order.js:1586 msgid "Delete Stock Allocation" msgstr "" -#: templates/js/translated/sales_order.js:1659 -#: templates/js/translated/sales_order.js:1746 +#: templates/js/translated/sales_order.js:1640 +#: templates/js/translated/sales_order.js:1727 #: templates/js/translated/stock.js:1861 msgid "Shipped to customer" msgstr "" -#: templates/js/translated/sales_order.js:1667 -#: templates/js/translated/sales_order.js:1755 +#: templates/js/translated/sales_order.js:1648 +#: templates/js/translated/sales_order.js:1736 msgid "Stock location not specified" msgstr "" -#: templates/js/translated/sales_order.js:2044 -msgid "Allocate serial numbers" -msgstr "" - -#: templates/js/translated/sales_order.js:2048 -msgid "Purchase stock" -msgstr "" - -#: templates/js/translated/sales_order.js:2057 -#: templates/js/translated/sales_order.js:2245 -msgid "Calculate price" -msgstr "" - -#: templates/js/translated/sales_order.js:2071 -msgid "Cannot be deleted as items have been shipped" -msgstr "" - -#: templates/js/translated/sales_order.js:2074 -msgid "Cannot be deleted as items have been allocated" -msgstr "" - -#: templates/js/translated/sales_order.js:2145 +#: templates/js/translated/sales_order.js:2025 +#: templates/js/translated/sales_order.js:2126 msgid "Allocate Serial Numbers" msgstr "" -#: templates/js/translated/sales_order.js:2253 +#: templates/js/translated/sales_order.js:2029 +msgid "Purchase stock" +msgstr "" + +#: templates/js/translated/sales_order.js:2038 +#: templates/js/translated/sales_order.js:2226 +msgid "Calculate price" +msgstr "" + +#: templates/js/translated/sales_order.js:2052 +msgid "Cannot be deleted as items have been shipped" +msgstr "" + +#: templates/js/translated/sales_order.js:2055 +msgid "Cannot be deleted as items have been allocated" +msgstr "" + +#: templates/js/translated/sales_order.js:2234 msgid "Update Unit Price" msgstr "" @@ -14206,15 +14540,12 @@ msgstr "" #: templates/js/translated/stock.js:599 msgid "Find Serial Number" -msgstr "" +msgstr "Cari Nomor Seri" #: templates/js/translated/stock.js:603 templates/js/translated/stock.js:604 -msgid "Enter serial number" -msgstr "" - #: templates/js/translated/stock.js:620 -msgid "Enter a serial number" -msgstr "" +msgid "Enter serial number" +msgstr "Masukkan Nomor Seri" #: templates/js/translated/stock.js:640 msgid "No matching serial number" @@ -14284,7 +14615,7 @@ msgstr "" msgid "Add Stock" msgstr "" -#: templates/js/translated/stock.js:1049 users/models.py:396 +#: templates/js/translated/stock.js:1049 users/models.py:398 msgid "Add" msgstr "" @@ -14308,7 +14639,7 @@ msgstr "" msgid "Adjust packaging" msgstr "" -#: templates/js/translated/stock.js:1256 templates/js/translated/stock.js:3382 +#: templates/js/translated/stock.js:1256 templates/js/translated/stock.js:3383 msgid "Select Stock Items" msgstr "" @@ -14320,18 +14651,6 @@ msgstr "" msgid "Confirm stock adjustment" msgstr "" -#: templates/js/translated/stock.js:1448 -msgid "PASS" -msgstr "" - -#: templates/js/translated/stock.js:1450 -msgid "FAIL" -msgstr "" - -#: templates/js/translated/stock.js:1455 -msgid "NO RESULT" -msgstr "" - #: templates/js/translated/stock.js:1535 msgid "Pass test" msgstr "" @@ -14388,218 +14707,218 @@ msgstr "" msgid "No stock location set" msgstr "" -#: templates/js/translated/stock.js:1927 +#: templates/js/translated/stock.js:1928 msgid "Change stock status" msgstr "" -#: templates/js/translated/stock.js:1936 +#: templates/js/translated/stock.js:1937 msgid "Merge stock" msgstr "" -#: templates/js/translated/stock.js:1985 +#: templates/js/translated/stock.js:1986 msgid "Delete stock" msgstr "" -#: templates/js/translated/stock.js:2038 +#: templates/js/translated/stock.js:2039 msgid "stock items" msgstr "" -#: templates/js/translated/stock.js:2043 +#: templates/js/translated/stock.js:2044 msgid "Scan to location" msgstr "" -#: templates/js/translated/stock.js:2054 +#: templates/js/translated/stock.js:2055 msgid "Stock Actions" msgstr "" -#: templates/js/translated/stock.js:2098 +#: templates/js/translated/stock.js:2099 msgid "Load installed items" msgstr "" -#: templates/js/translated/stock.js:2176 +#: templates/js/translated/stock.js:2177 msgid "Stock item is in production" msgstr "" -#: templates/js/translated/stock.js:2181 +#: templates/js/translated/stock.js:2182 msgid "Stock item assigned to sales order" msgstr "" -#: templates/js/translated/stock.js:2184 +#: templates/js/translated/stock.js:2185 msgid "Stock item assigned to customer" msgstr "" -#: templates/js/translated/stock.js:2187 +#: templates/js/translated/stock.js:2188 msgid "Serialized stock item has been allocated" msgstr "" -#: templates/js/translated/stock.js:2189 +#: templates/js/translated/stock.js:2190 msgid "Stock item has been fully allocated" msgstr "" -#: templates/js/translated/stock.js:2191 +#: templates/js/translated/stock.js:2192 msgid "Stock item has been partially allocated" msgstr "" -#: templates/js/translated/stock.js:2194 +#: templates/js/translated/stock.js:2195 msgid "Stock item has been installed in another item" msgstr "" -#: templates/js/translated/stock.js:2196 +#: templates/js/translated/stock.js:2197 msgid "Stock item has been consumed by a build order" msgstr "" -#: templates/js/translated/stock.js:2200 +#: templates/js/translated/stock.js:2201 msgid "Stock item has expired" msgstr "" -#: templates/js/translated/stock.js:2202 +#: templates/js/translated/stock.js:2203 msgid "Stock item will expire soon" msgstr "" -#: templates/js/translated/stock.js:2207 +#: templates/js/translated/stock.js:2208 msgid "Stock item has been rejected" msgstr "" -#: templates/js/translated/stock.js:2209 +#: templates/js/translated/stock.js:2210 msgid "Stock item is lost" msgstr "" -#: templates/js/translated/stock.js:2211 +#: templates/js/translated/stock.js:2212 msgid "Stock item is destroyed" msgstr "" -#: templates/js/translated/stock.js:2215 +#: templates/js/translated/stock.js:2216 #: templates/js/translated/table_filters.js:357 msgid "Depleted" msgstr "" -#: templates/js/translated/stock.js:2380 +#: templates/js/translated/stock.js:2381 msgid "Supplier part not specified" msgstr "" -#: templates/js/translated/stock.js:2427 +#: templates/js/translated/stock.js:2428 msgid "Stock Value" msgstr "" -#: templates/js/translated/stock.js:2555 +#: templates/js/translated/stock.js:2556 msgid "No stock items matching query" msgstr "" -#: templates/js/translated/stock.js:2658 +#: templates/js/translated/stock.js:2659 msgid "stock locations" msgstr "" -#: templates/js/translated/stock.js:2813 +#: templates/js/translated/stock.js:2814 msgid "Load Sublocations" msgstr "" -#: templates/js/translated/stock.js:2930 +#: templates/js/translated/stock.js:2931 msgid "Details" -msgstr "" +msgstr "Rincian" -#: templates/js/translated/stock.js:2934 +#: templates/js/translated/stock.js:2935 msgid "No changes" -msgstr "" +msgstr "Tidak ada perubahan" -#: templates/js/translated/stock.js:2946 +#: templates/js/translated/stock.js:2947 msgid "Part information unavailable" msgstr "" -#: templates/js/translated/stock.js:2968 +#: templates/js/translated/stock.js:2969 msgid "Location no longer exists" msgstr "" -#: templates/js/translated/stock.js:2985 +#: templates/js/translated/stock.js:2986 msgid "Build order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3000 +#: templates/js/translated/stock.js:3001 msgid "Purchase order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3017 +#: templates/js/translated/stock.js:3018 msgid "Sales Order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3034 +#: templates/js/translated/stock.js:3035 msgid "Return Order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3053 +#: templates/js/translated/stock.js:3054 msgid "Customer no longer exists" msgstr "" -#: templates/js/translated/stock.js:3071 +#: templates/js/translated/stock.js:3072 msgid "Stock item no longer exists" msgstr "" -#: templates/js/translated/stock.js:3089 +#: templates/js/translated/stock.js:3090 msgid "Added" -msgstr "" +msgstr "Ditambahkan" -#: templates/js/translated/stock.js:3097 +#: templates/js/translated/stock.js:3098 msgid "Removed" -msgstr "" +msgstr "Terhapus" -#: templates/js/translated/stock.js:3169 +#: templates/js/translated/stock.js:3170 msgid "No installed items" msgstr "" -#: templates/js/translated/stock.js:3223 templates/js/translated/stock.js:3259 +#: templates/js/translated/stock.js:3224 templates/js/translated/stock.js:3260 msgid "Uninstall Stock Item" msgstr "" -#: templates/js/translated/stock.js:3280 +#: templates/js/translated/stock.js:3281 msgid "Select stock item to uninstall" msgstr "" -#: templates/js/translated/stock.js:3301 +#: templates/js/translated/stock.js:3302 msgid "Install another stock item into this item" msgstr "" -#: templates/js/translated/stock.js:3302 +#: templates/js/translated/stock.js:3303 msgid "Stock items can only be installed if they meet the following criteria" msgstr "" -#: templates/js/translated/stock.js:3304 +#: templates/js/translated/stock.js:3305 msgid "The Stock Item links to a Part which is the BOM for this Stock Item" msgstr "" -#: templates/js/translated/stock.js:3305 +#: templates/js/translated/stock.js:3306 msgid "The Stock Item is currently available in stock" msgstr "" -#: templates/js/translated/stock.js:3306 +#: templates/js/translated/stock.js:3307 msgid "The Stock Item is not already installed in another item" msgstr "" -#: templates/js/translated/stock.js:3307 +#: templates/js/translated/stock.js:3308 msgid "The Stock Item is tracked by either a batch code or serial number" msgstr "" -#: templates/js/translated/stock.js:3320 +#: templates/js/translated/stock.js:3321 msgid "Select part to install" msgstr "" -#: templates/js/translated/stock.js:3383 +#: templates/js/translated/stock.js:3384 msgid "Select one or more stock items" msgstr "" -#: templates/js/translated/stock.js:3396 +#: templates/js/translated/stock.js:3397 msgid "Selected stock items" msgstr "" -#: templates/js/translated/stock.js:3400 +#: templates/js/translated/stock.js:3401 msgid "Change Stock Status" msgstr "" -#: templates/js/translated/stock.js:3477 +#: templates/js/translated/stock.js:3478 msgid "This week" -msgstr "" +msgstr "Minggu ini" -#: templates/js/translated/stock.js:3485 +#: templates/js/translated/stock.js:3486 msgid "This month" -msgstr "" +msgstr "Bulan ini" #: templates/js/translated/table_filters.js:73 msgid "Has project code" @@ -14664,7 +14983,7 @@ msgstr "" #: templates/js/translated/table_filters.js:308 #: templates/js/translated/table_filters.js:394 msgid "Serial number GTE" -msgstr "" +msgstr "Nomor Seri GTE" #: templates/js/translated/table_filters.js:309 #: templates/js/translated/table_filters.js:395 @@ -14674,7 +14993,7 @@ msgstr "" #: templates/js/translated/table_filters.js:312 #: templates/js/translated/table_filters.js:398 msgid "Serial number LTE" -msgstr "" +msgstr "Nomor Seri LTE" #: templates/js/translated/table_filters.js:313 #: templates/js/translated/table_filters.js:399 @@ -14686,7 +15005,7 @@ msgstr "" #: templates/js/translated/table_filters.js:390 #: templates/js/translated/table_filters.js:391 msgid "Serial number" -msgstr "" +msgstr "Kode Seri" #: templates/js/translated/table_filters.js:321 #: templates/js/translated/table_filters.js:412 @@ -14734,10 +15053,6 @@ msgstr "" msgid "Show items which are in production" msgstr "" -#: templates/js/translated/table_filters.js:372 -msgid "Include Variants" -msgstr "" - #: templates/js/translated/table_filters.js:373 msgid "Include stock items for variant parts" msgstr "" @@ -14930,27 +15245,27 @@ msgstr "" #: templates/navbar.html:45 msgid "Buy" -msgstr "" +msgstr "Beli" #: templates/navbar.html:57 msgid "Sell" -msgstr "" +msgstr "Jual" #: templates/navbar.html:121 msgid "Show Notifications" -msgstr "" +msgstr "Tampilkan Notifikasi" #: templates/navbar.html:124 msgid "New Notifications" -msgstr "" +msgstr "Notifikasi baru" #: templates/navbar.html:144 users/models.py:201 msgid "Admin" -msgstr "" +msgstr "Admin" #: templates/navbar.html:148 msgid "Logout" -msgstr "" +msgstr "Keluar" #: templates/notes_buttons.html:6 templates/notes_buttons.html:7 msgid "Save" @@ -14974,7 +15289,7 @@ msgstr "" #: templates/pui_banner.html:15 msgid "here" -msgstr "" +msgstr "disini" #: templates/qr_code.html:11 msgid "QR data not provided" @@ -14994,7 +15309,7 @@ msgstr "" #: templates/search.html:12 msgid "Clear search" -msgstr "" +msgstr "Hapus Pencarian" #: templates/search.html:15 msgid "Close search menu" @@ -15012,14 +15327,10 @@ msgstr "" msgid "An error occurred while attempting to login via your social network account." msgstr "" -#: templates/socialaccount/authentication_error.html:13 -msgid "Contact your system administrator for further information." -msgstr "" - #: templates/socialaccount/login.html:13 #, python-format msgid "Connect %(provider)s" -msgstr "" +msgstr "Tersambung %(provider)s" #: templates/socialaccount/login.html:15 #, python-format @@ -15038,7 +15349,7 @@ msgstr "" #: templates/socialaccount/login.html:24 msgid "Continue" -msgstr "" +msgstr "Selanjutnya" #: templates/socialaccount/login.html:29 msgid "Invalid SSO Provider" @@ -15071,7 +15382,7 @@ msgstr "" #: templates/stats.html:18 msgid "Database" -msgstr "" +msgstr "Basis data" #: templates/stats.html:26 msgid "Server is running in debug mode" @@ -15131,37 +15442,37 @@ msgstr "" #: templates/test_statistics_table.html:16 msgid "Failed" -msgstr "" +msgstr "Gagal" #: templates/yesnolabel.html:4 msgid "Yes" -msgstr "" +msgstr "Ya" #: templates/yesnolabel.html:6 msgid "No" -msgstr "" +msgstr "Tidak" -#: users/admin.py:104 +#: users/admin.py:101 msgid "Users" -msgstr "" +msgstr "Pengguna" -#: users/admin.py:105 +#: users/admin.py:102 msgid "Select which users are assigned to this group" msgstr "" -#: users/admin.py:249 +#: users/admin.py:246 msgid "The following users are members of multiple groups" msgstr "" -#: users/admin.py:283 +#: users/admin.py:280 msgid "Personal info" msgstr "Data pribadi" -#: users/admin.py:285 +#: users/admin.py:282 msgid "Permissions" msgstr "" -#: users/admin.py:288 +#: users/admin.py:285 msgid "Important dates" msgstr "" @@ -15171,7 +15482,7 @@ msgstr "" #: users/authentication.py:32 msgid "Token has expired" -msgstr "" +msgstr "Token telah kadaluarsa" #: users/models.py:81 msgid "API Token" @@ -15183,7 +15494,7 @@ msgstr "" #: users/models.py:118 msgid "Token Name" -msgstr "" +msgstr "Nama Token" #: users/models.py:119 msgid "Custom token name" @@ -15195,7 +15506,7 @@ msgstr "" #: users/models.py:133 msgid "Last Seen" -msgstr "" +msgstr "Terakhir diliat" #: users/models.py:134 msgid "Last time the token was used" @@ -15205,35 +15516,35 @@ msgstr "" msgid "Revoked" msgstr "" -#: users/models.py:379 +#: users/models.py:381 msgid "Permission set" msgstr "" -#: users/models.py:388 +#: users/models.py:390 msgid "Group" msgstr "" -#: users/models.py:392 +#: users/models.py:394 msgid "View" msgstr "" -#: users/models.py:392 +#: users/models.py:394 msgid "Permission to view items" msgstr "" -#: users/models.py:396 +#: users/models.py:398 msgid "Permission to add items" msgstr "" -#: users/models.py:400 -msgid "Change" -msgstr "" - #: users/models.py:402 +msgid "Change" +msgstr "Ganti" + +#: users/models.py:404 msgid "Permissions to edit items" msgstr "" -#: users/models.py:408 +#: users/models.py:410 msgid "Permission to delete items" msgstr "" diff --git a/src/backend/InvenTree/locale/it/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/it/LC_MESSAGES/django.po index f5e08497ee..c2c94aa263 100644 --- a/src/backend/InvenTree/locale/it/LC_MESSAGES/django.po +++ b/src/backend/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: 2024-08-20 01:22+0000\n" -"PO-Revision-Date: 2024-08-20 19:50\n" +"POT-Creation-Date: 2024-11-04 03:11+0000\n" +"PO-Revision-Date: 2024-11-04 03:14\n" "Last-Translator: \n" "Language-Team: Italian\n" "Language: it_IT\n" @@ -14,81 +14,89 @@ msgstr "" "X-Crowdin-Project: inventree\n" "X-Crowdin-Project-ID: 452300\n" "X-Crowdin-Language: it\n" -"X-Crowdin-File: /[inventree.InvenTree] l10/src/backend/InvenTree/locale/en/LC_MESSAGES/django.po\n" -"X-Crowdin-File-ID: 216\n" +"X-Crowdin-File: /src/backend/InvenTree/locale/en/LC_MESSAGES/django.po\n" +"X-Crowdin-File-ID: 250\n" -#: InvenTree/api.py:269 +#: InvenTree/api.py:270 msgid "API endpoint not found" msgstr "Endpoint API non trovato" -#: InvenTree/api.py:502 +#: InvenTree/api.py:387 +msgid "Invalid items list provided" +msgstr "" + +#: InvenTree/api.py:396 +msgid "Invalid filters provided" +msgstr "" + +#: InvenTree/api.py:401 +msgid "No items found to delete" +msgstr "" + +#: InvenTree/api.py:515 msgid "User does not have permission to view this model" msgstr "L'utente non ha i permessi per vedere questo modello" -#: InvenTree/conversion.py:160 +#: InvenTree/conversion.py:161 #, python-brace-format msgid "Invalid unit provided ({unit})" msgstr "Unità fornita non valida ({unit})" -#: InvenTree/conversion.py:177 +#: InvenTree/conversion.py:178 msgid "No value provided" msgstr "Nessun valore specificato" -#: InvenTree/conversion.py:204 +#: InvenTree/conversion.py:205 #, python-brace-format msgid "Could not convert {original} to {unit}" msgstr "Impossibile convertire {original} in {unit}" -#: InvenTree/conversion.py:206 -msgid "Invalid quantity supplied" -msgstr "Quantità fornita non valida" +#: InvenTree/conversion.py:207 InvenTree/conversion.py:221 +#: InvenTree/helpers.py:505 order/models.py:589 order/models.py:832 +msgid "Invalid quantity provided" +msgstr "Quantità inserita non valida" -#: InvenTree/conversion.py:220 -#, python-brace-format -msgid "Invalid quantity supplied ({exc})" -msgstr "Quantità fornita non valida ({exc})" - -#: InvenTree/exceptions.py:108 +#: InvenTree/exceptions.py:104 msgid "Error details can be found in the admin panel" msgstr "I dettagli dell'errore possono essere trovati nel pannello di amministrazione" -#: InvenTree/fields.py:136 +#: InvenTree/fields.py:135 msgid "Enter date" msgstr "Inserisci la data" -#: InvenTree/fields.py:205 InvenTree/models.py:929 build/serializers.py:468 -#: build/serializers.py:546 build/templates/build/sidebar.html:29 -#: company/models.py:836 +#: InvenTree/fields.py:204 InvenTree/models.py:928 build/serializers.py:512 +#: build/serializers.py:590 build/templates/build/sidebar.html:29 +#: company/models.py:833 #: company/templates/company/manufacturer_part_sidebar.html:11 #: company/templates/company/sidebar.html:37 -#: company/templates/company/supplier_part_sidebar.html:11 order/models.py:1380 +#: company/templates/company/supplier_part_sidebar.html:11 order/models.py:1397 #: order/templates/order/po_sidebar.html:11 #: order/templates/order/return_order_sidebar.html:9 #: order/templates/order/so_sidebar.html:17 part/admin.py:59 -#: part/models.py:3297 part/templates/part/part_sidebar.html:65 +#: part/models.py:3348 part/templates/part/part_sidebar.html:65 #: report/templates/report/inventree_build_order_report.html:172 -#: stock/admin.py:230 stock/models.py:2375 stock/models.py:2563 -#: stock/serializers.py:698 stock/serializers.py:856 stock/serializers.py:982 -#: stock/serializers.py:1032 stock/serializers.py:1343 -#: stock/serializers.py:1432 stock/serializers.py:1597 +#: stock/admin.py:231 stock/models.py:2494 stock/models.py:2679 +#: stock/serializers.py:725 stock/serializers.py:887 stock/serializers.py:1013 +#: stock/serializers.py:1063 stock/serializers.py:1374 +#: stock/serializers.py:1463 stock/serializers.py:1628 #: stock/templates/stock/stock_sidebar.html:25 #: templates/js/translated/barcode.js:143 templates/js/translated/bom.js:1265 -#: templates/js/translated/company.js:1684 templates/js/translated/order.js:372 +#: templates/js/translated/company.js:1685 templates/js/translated/order.js:372 #: templates/js/translated/part.js:1087 -#: templates/js/translated/purchase_order.js:2270 +#: templates/js/translated/purchase_order.js:2254 #: templates/js/translated/return_order.js:774 -#: templates/js/translated/sales_order.js:1103 -#: templates/js/translated/sales_order.js:2018 -#: templates/js/translated/stock.js:1621 templates/js/translated/stock.js:2513 +#: templates/js/translated/sales_order.js:1069 +#: templates/js/translated/sales_order.js:1999 +#: templates/js/translated/stock.js:1621 templates/js/translated/stock.js:2514 msgid "Notes" msgstr "Note" -#: InvenTree/format.py:164 +#: InvenTree/format.py:162 #, python-brace-format msgid "Value '{name}' does not appear in pattern format" msgstr "Il valore '{name}' non è nel formato del pattern" -#: InvenTree/format.py:175 +#: InvenTree/format.py:173 msgid "Provided value does not match required pattern: " msgstr "Il valore fornito non corrisponde al modello richiesto: " @@ -126,403 +134,415 @@ msgstr "È necessario digitare la stessa e-mail ogni volta." #: InvenTree/forms.py:221 msgid "MFA Registration is disabled." -msgstr "" +msgstr "La registrazione MFA è disabilitata." #: InvenTree/forms.py:259 InvenTree/forms.py:267 msgid "The provided primary email address is not valid." msgstr "L'indirizzo email principale fornito non è valido." -#: InvenTree/forms.py:274 +#: InvenTree/forms.py:273 msgid "The provided email domain is not approved." msgstr "L'indirizzo di posta elettronica fornito non è approvato." -#: InvenTree/forms.py:403 +#: InvenTree/forms.py:402 msgid "Registration is disabled." msgstr "La registrazione è disabilitata." -#: InvenTree/helpers.py:491 order/models.py:567 order/models.py:810 -msgid "Invalid quantity provided" -msgstr "Quantità inserita non valida" +#: InvenTree/helpers.py:509 +msgid "Cannot serialize more than 1000 items at once" +msgstr "" -#: InvenTree/helpers.py:499 +#: InvenTree/helpers.py:515 msgid "Empty serial number string" msgstr "Numero seriale vuoto" -#: InvenTree/helpers.py:528 +#: InvenTree/helpers.py:544 msgid "Duplicate serial" msgstr "Seriale Duplicato" -#: InvenTree/helpers.py:560 InvenTree/helpers.py:603 +#: InvenTree/helpers.py:576 InvenTree/helpers.py:619 InvenTree/helpers.py:637 +#: InvenTree/helpers.py:644 InvenTree/helpers.py:663 #, python-brace-format -msgid "Invalid group range: {group}" -msgstr "Intervallo di gruppo non valido: {group}" +msgid "Invalid group: {group}" +msgstr "" -#: InvenTree/helpers.py:591 +#: InvenTree/helpers.py:607 #, python-brace-format msgid "Group range {group} exceeds allowed quantity ({expected_quantity})" msgstr "L'intervallo di gruppo {group} supera la quantità consentita ({expected_quantity})" -#: InvenTree/helpers.py:621 InvenTree/helpers.py:628 InvenTree/helpers.py:647 -#, python-brace-format -msgid "Invalid group sequence: {group}" -msgstr "Sequenza di gruppo non valida: {group}" - -#: InvenTree/helpers.py:657 +#: InvenTree/helpers.py:673 msgid "No serial numbers found" msgstr "Nessun numero di serie trovato" -#: InvenTree/helpers.py:662 +#: InvenTree/helpers.py:678 msgid "Number of unique serial numbers ({len(serials)}) must match quantity ({expected_quantity})" msgstr "Il numero di numeri di serie univoci ({len(serials)}) deve corrispondere alla quantità ({expected_quantity})" -#: InvenTree/helpers.py:780 +#: InvenTree/helpers.py:796 msgid "Remove HTML tags from this value" msgstr "Rimuovi i tag HTML da questo valore" -#: InvenTree/helpers_model.py:133 +#: InvenTree/helpers.py:881 +msgid "Data contains prohibited markdown content" +msgstr "" + +#: InvenTree/helpers_model.py:130 msgid "Connection error" msgstr "Errore di connessione" -#: InvenTree/helpers_model.py:138 InvenTree/helpers_model.py:145 +#: InvenTree/helpers_model.py:135 InvenTree/helpers_model.py:142 msgid "Server responded with invalid status code" msgstr "Il server ha risposto con un codice di stato non valido" -#: InvenTree/helpers_model.py:141 +#: InvenTree/helpers_model.py:138 msgid "Exception occurred" msgstr "Si è verificata un'eccezione" -#: InvenTree/helpers_model.py:151 +#: InvenTree/helpers_model.py:148 msgid "Server responded with invalid Content-Length value" msgstr "Il server ha risposto con valore Content-Length non valido" -#: InvenTree/helpers_model.py:154 +#: InvenTree/helpers_model.py:151 msgid "Image size is too large" msgstr "Immagine troppo grande" -#: InvenTree/helpers_model.py:166 +#: InvenTree/helpers_model.py:163 msgid "Image download exceeded maximum size" msgstr "Il download dell'immagine ha superato la dimensione massima" -#: InvenTree/helpers_model.py:171 +#: InvenTree/helpers_model.py:168 msgid "Remote server returned empty response" msgstr "Il server remoto ha restituito una risposta vuota" -#: InvenTree/helpers_model.py:179 +#: InvenTree/helpers_model.py:176 msgid "Supplied URL is not a valid image file" msgstr "L'URL fornito non è un file immagine valido" -#: InvenTree/locales.py:18 +#: InvenTree/locales.py:20 msgid "Arabic" msgstr "Arabo" -#: InvenTree/locales.py:19 +#: InvenTree/locales.py:21 msgid "Bulgarian" msgstr "Bulgaro" -#: InvenTree/locales.py:20 +#: InvenTree/locales.py:22 msgid "Czech" msgstr "Ceco" -#: InvenTree/locales.py:21 +#: InvenTree/locales.py:23 msgid "Danish" msgstr "Danese" -#: InvenTree/locales.py:22 +#: InvenTree/locales.py:24 msgid "German" msgstr "Tedesco" -#: InvenTree/locales.py:23 +#: InvenTree/locales.py:25 msgid "Greek" msgstr "Greco" -#: InvenTree/locales.py:24 +#: InvenTree/locales.py:26 msgid "English" msgstr "Inglese" -#: InvenTree/locales.py:25 +#: InvenTree/locales.py:27 msgid "Spanish" msgstr "Spagnolo" -#: InvenTree/locales.py:26 +#: InvenTree/locales.py:28 msgid "Spanish (Mexican)" msgstr "Spagnolo (Messicano)" -#: InvenTree/locales.py:27 +#: InvenTree/locales.py:29 msgid "Estonian" msgstr "Estone" -#: InvenTree/locales.py:28 +#: InvenTree/locales.py:30 msgid "Farsi / Persian" msgstr "Farsi / Persiano" -#: InvenTree/locales.py:29 +#: InvenTree/locales.py:31 msgid "Finnish" msgstr "Finlandese" -#: InvenTree/locales.py:30 +#: InvenTree/locales.py:32 msgid "French" msgstr "Francese" -#: InvenTree/locales.py:31 +#: InvenTree/locales.py:33 msgid "Hebrew" msgstr "Ebraico" -#: InvenTree/locales.py:32 +#: InvenTree/locales.py:34 msgid "Hindi" msgstr "Hindi" -#: InvenTree/locales.py:33 +#: InvenTree/locales.py:35 msgid "Hungarian" msgstr "Ungherese" -#: InvenTree/locales.py:34 +#: InvenTree/locales.py:36 msgid "Italian" msgstr "Italiano" -#: InvenTree/locales.py:35 +#: InvenTree/locales.py:37 msgid "Japanese" msgstr "Giapponese" -#: InvenTree/locales.py:36 +#: InvenTree/locales.py:38 msgid "Korean" msgstr "Coreano" -#: InvenTree/locales.py:37 +#: InvenTree/locales.py:39 +msgid "Lithuanian" +msgstr "" + +#: InvenTree/locales.py:40 msgid "Latvian" msgstr "Lettone" -#: InvenTree/locales.py:38 +#: InvenTree/locales.py:41 msgid "Dutch" msgstr "Olandese" -#: InvenTree/locales.py:39 +#: InvenTree/locales.py:42 msgid "Norwegian" msgstr "Norvegese" -#: InvenTree/locales.py:40 +#: InvenTree/locales.py:43 msgid "Polish" msgstr "Polacco" -#: InvenTree/locales.py:41 +#: InvenTree/locales.py:44 msgid "Portuguese" msgstr "Portoghese" -#: InvenTree/locales.py:42 +#: InvenTree/locales.py:45 msgid "Portuguese (Brazilian)" msgstr "Portoghese (Brasile)" -#: InvenTree/locales.py:43 +#: InvenTree/locales.py:46 msgid "Romanian" msgstr "Rumeno" -#: InvenTree/locales.py:44 +#: InvenTree/locales.py:47 msgid "Russian" msgstr "Russo" -#: InvenTree/locales.py:45 +#: InvenTree/locales.py:48 msgid "Slovak" msgstr "Slovacco" -#: InvenTree/locales.py:46 +#: InvenTree/locales.py:49 msgid "Slovenian" msgstr "Sloveno" -#: InvenTree/locales.py:47 +#: InvenTree/locales.py:50 msgid "Serbian" msgstr "Serbo" -#: InvenTree/locales.py:48 +#: InvenTree/locales.py:51 msgid "Swedish" msgstr "Svedese" -#: InvenTree/locales.py:49 +#: InvenTree/locales.py:52 msgid "Thai" msgstr "Thailandese" -#: InvenTree/locales.py:50 +#: InvenTree/locales.py:53 msgid "Turkish" msgstr "Turco" -#: InvenTree/locales.py:51 +#: InvenTree/locales.py:54 msgid "Ukrainian" msgstr "Ucraino" -#: InvenTree/locales.py:52 +#: InvenTree/locales.py:55 msgid "Vietnamese" msgstr "Vietnamita" -#: InvenTree/locales.py:53 +#: InvenTree/locales.py:56 msgid "Chinese (Simplified)" msgstr "Cinese (Semplificato)" -#: InvenTree/locales.py:54 +#: InvenTree/locales.py:57 msgid "Chinese (Traditional)" msgstr "Cinese (Tradizionale)" #: InvenTree/magic_login.py:28 -#, python-brace-format -msgid "[{site_name}] Log in to the app" -msgstr "[{site_name}] Accedi all'app" +msgid "Log in to the app" +msgstr "" -#: InvenTree/magic_login.py:38 InvenTree/serializers.py:415 -#: company/models.py:136 company/templates/company/company_base.html:138 +#: InvenTree/magic_login.py:38 InvenTree/serializers.py:416 +#: company/models.py:133 company/templates/company/company_base.html:138 #: templates/InvenTree/settings/user.html:49 -#: templates/js/translated/company.js:677 +#: templates/js/translated/company.js:678 msgid "Email" msgstr "Email" -#: InvenTree/models.py:103 +#: InvenTree/models.py:105 msgid "Error running plugin validation" msgstr "Errore nell'eseguire la convalida del plugin" -#: InvenTree/models.py:172 +#: InvenTree/models.py:174 msgid "Metadata must be a python dict object" msgstr "I metadati devono essere un oggetto python dict" -#: InvenTree/models.py:178 +#: InvenTree/models.py:180 msgid "Plugin Metadata" msgstr "Metadati Plugin" -#: InvenTree/models.py:179 +#: InvenTree/models.py:181 msgid "JSON metadata field, for use by external plugins" msgstr "Campo di metadati JSON, da utilizzare con plugin esterni" -#: InvenTree/models.py:409 +#: InvenTree/models.py:408 msgid "Improperly formatted pattern" msgstr "Schema formattato impropriamente" -#: InvenTree/models.py:416 +#: InvenTree/models.py:415 msgid "Unknown format key specified" msgstr "Formato chiave sconosciuta" -#: InvenTree/models.py:422 +#: InvenTree/models.py:421 msgid "Missing required format key" msgstr "Formato chiave mancante" -#: InvenTree/models.py:433 +#: InvenTree/models.py:432 msgid "Reference field cannot be empty" msgstr "Il campo di riferimento non può essere vuoto" -#: InvenTree/models.py:441 +#: InvenTree/models.py:440 msgid "Reference must match required pattern" msgstr "Il campo deve corrispondere al modello richiesto" -#: InvenTree/models.py:472 +#: InvenTree/models.py:471 msgid "Reference number is too large" msgstr "Numero di riferimento troppo grande" -#: InvenTree/models.py:723 +#: InvenTree/models.py:722 msgid "Duplicate names cannot exist under the same parent" msgstr "Nomi duplicati non possono esistere sotto lo stesso genitore" -#: InvenTree/models.py:740 +#: InvenTree/models.py:739 msgid "Invalid choice" msgstr "Scelta non valida" -#: InvenTree/models.py:770 common/models.py:2702 common/models.py:3132 -#: common/serializers.py:412 company/models.py:593 machine/models.py:24 -#: part/models.py:983 part/models.py:3764 plugin/models.py:51 -#: report/models.py:149 stock/models.py:77 +#: InvenTree/models.py:769 common/models.py:2766 common/models.py:3193 +#: common/models.py:3413 common/serializers.py:460 company/models.py:590 +#: machine/models.py:24 part/models.py:1044 part/models.py:3815 +#: plugin/models.py:51 report/models.py:149 stock/models.py:83 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/notifications.html:17 #: templates/InvenTree/settings/plugin.html:83 #: templates/InvenTree/settings/plugin_settings.html:22 #: templates/InvenTree/settings/settings_staff_js.html:67 #: templates/InvenTree/settings/settings_staff_js.html:454 -#: templates/js/translated/company.js:676 -#: templates/js/translated/company.js:724 -#: templates/js/translated/company.js:913 -#: templates/js/translated/company.js:1165 -#: templates/js/translated/company.js:1413 templates/js/translated/part.js:1193 +#: templates/js/translated/company.js:677 +#: templates/js/translated/company.js:725 +#: templates/js/translated/company.js:914 +#: templates/js/translated/company.js:1166 +#: templates/js/translated/company.js:1414 templates/js/translated/part.js:1193 #: templates/js/translated/part.js:1481 templates/js/translated/part.js:1617 -#: templates/js/translated/part.js:2768 templates/js/translated/stock.js:2801 +#: templates/js/translated/part.js:2768 templates/js/translated/stock.js:2802 msgid "Name" msgstr "Nome" -#: InvenTree/models.py:776 build/models.py:250 -#: build/templates/build/detail.html:24 common/models.py:156 -#: company/models.py:521 company/models.py:827 +#: InvenTree/models.py:775 build/models.py:251 +#: build/templates/build/detail.html:24 common/models.py:159 +#: company/models.py:518 company/models.py:824 #: company/templates/company/company_base.html:77 #: company/templates/company/manufacturer_part.html:75 -#: company/templates/company/supplier_part.html:107 order/models.py:288 -#: order/models.py:1413 part/admin.py:305 part/admin.py:411 part/models.py:1006 -#: part/models.py:3779 part/templates/part/category.html:79 -#: part/templates/part/part_base.html:170 +#: company/templates/company/supplier_part.html:108 order/models.py:295 +#: order/models.py:1430 part/admin.py:305 part/admin.py:411 part/models.py:1067 +#: part/models.py:3830 part/templates/part/category.html:79 +#: part/templates/part/part_base.html:171 #: part/templates/part/part_scheduling.html:12 report/models.py:155 -#: report/models.py:509 report/models.py:535 +#: report/models.py:517 report/models.py:543 #: report/templates/report/inventree_build_order_report.html:117 -#: stock/admin.py:54 stock/models.py:83 stock/templates/stock/location.html:122 +#: stock/admin.py:54 stock/models.py:89 stock/templates/stock/location.html:123 #: templates/InvenTree/settings/notifications.html:19 #: templates/InvenTree/settings/plugin_settings.html:27 #: templates/InvenTree/settings/settings_staff_js.html:170 #: templates/InvenTree/settings/settings_staff_js.html:459 #: templates/js/translated/bom.js:633 templates/js/translated/bom.js:963 -#: templates/js/translated/build.js:2311 templates/js/translated/company.js:519 -#: templates/js/translated/company.js:1330 -#: templates/js/translated/company.js:1641 templates/js/translated/index.js:119 +#: templates/js/translated/build.js:2314 templates/js/translated/company.js:520 +#: templates/js/translated/company.js:1331 +#: templates/js/translated/company.js:1642 templates/js/translated/index.js:119 #: templates/js/translated/order.js:323 templates/js/translated/part.js:1245 #: templates/js/translated/part.js:1490 templates/js/translated/part.js:1628 #: templates/js/translated/part.js:1965 templates/js/translated/part.js:2361 #: templates/js/translated/part.js:2803 templates/js/translated/part.js:2915 #: templates/js/translated/plugin.js:80 -#: templates/js/translated/purchase_order.js:1776 -#: templates/js/translated/purchase_order.js:1919 -#: templates/js/translated/purchase_order.js:2092 +#: templates/js/translated/purchase_order.js:1760 +#: templates/js/translated/purchase_order.js:1903 +#: templates/js/translated/purchase_order.js:2076 #: templates/js/translated/return_order.js:313 -#: templates/js/translated/sales_order.js:838 -#: templates/js/translated/sales_order.js:1848 -#: templates/js/translated/stock.js:1600 templates/js/translated/stock.js:2143 -#: templates/js/translated/stock.js:2832 templates/js/translated/stock.js:2915 +#: templates/js/translated/sales_order.js:797 +#: templates/js/translated/sales_order.js:1829 +#: templates/js/translated/stock.js:1600 templates/js/translated/stock.js:2144 +#: templates/js/translated/stock.js:2833 templates/js/translated/stock.js:2916 msgid "Description" msgstr "Descrizione" -#: InvenTree/models.py:777 stock/models.py:84 +#: InvenTree/models.py:776 stock/models.py:90 msgid "Description (optional)" msgstr "Descrizione (opzionale)" -#: InvenTree/models.py:792 templates/js/translated/part.js:2812 -#: templates/js/translated/stock.js:2841 +#: InvenTree/models.py:791 common/models.py:3546 +#: templates/js/translated/part.js:2812 templates/js/translated/stock.js:2842 msgid "Path" msgstr "Percorso" -#: InvenTree/models.py:929 +#: InvenTree/models.py:928 msgid "Markdown notes (optional)" msgstr "Note di Markdown (opzionale)" -#: InvenTree/models.py:960 +#: InvenTree/models.py:959 msgid "Barcode Data" msgstr "Dati del Codice a Barre" -#: InvenTree/models.py:961 +#: InvenTree/models.py:960 msgid "Third party barcode data" msgstr "Dati Codice a Barre applicazioni di terze parti" -#: InvenTree/models.py:967 +#: InvenTree/models.py:966 msgid "Barcode Hash" msgstr "Codice a Barre" -#: InvenTree/models.py:968 +#: InvenTree/models.py:967 msgid "Unique hash of barcode data" msgstr "Codice univoco del codice a barre" -#: InvenTree/models.py:1035 +#: InvenTree/models.py:1034 msgid "Existing barcode found" msgstr "Trovato codice a barre esistente" -#: InvenTree/models.py:1078 +#: InvenTree/models.py:1112 +msgid "Task Failure" +msgstr "" + +#: InvenTree/models.py:1114 +#, python-brace-format +msgid "Background worker task '{instance.func}' failed after {n} attempts" +msgstr "" + +#: InvenTree/models.py:1142 msgid "Server Error" msgstr "Errore del server" -#: InvenTree/models.py:1079 +#: InvenTree/models.py:1143 msgid "An error has been logged by the server." msgstr "Un errore è stato loggato dal server." -#: InvenTree/serializers.py:63 part/models.py:4387 +#: InvenTree/serializers.py:63 part/models.py:4444 msgid "Must be a valid number" msgstr "Deve essere un numero valido" -#: InvenTree/serializers.py:100 company/models.py:186 -#: company/templates/company/company_base.html:112 part/models.py:3115 +#: InvenTree/serializers.py:100 company/models.py:183 +#: company/templates/company/company_base.html:112 part/models.py:3166 #: templates/InvenTree/settings/settings_staff_js.html:44 #: templates/currency_data.html:5 msgid "Currency" @@ -532,15 +552,15 @@ msgstr "Valuta" msgid "Select currency from available options" msgstr "Selezionare la valuta dalle opzioni disponibili" -#: InvenTree/serializers.py:407 templates/InvenTree/settings/user.html:33 +#: InvenTree/serializers.py:405 templates/InvenTree/settings/user.html:33 msgid "Username" msgstr "Nome utente" -#: InvenTree/serializers.py:409 templates/InvenTree/settings/user.html:37 +#: InvenTree/serializers.py:408 templates/InvenTree/settings/user.html:37 msgid "First Name" msgstr "Nome" -#: InvenTree/serializers.py:409 +#: InvenTree/serializers.py:408 msgid "First name of the user" msgstr "Nome dell'utente" @@ -552,30 +572,30 @@ msgstr "Cognome" msgid "Last name of the user" msgstr "Cognome dell'utente" -#: InvenTree/serializers.py:415 +#: InvenTree/serializers.py:416 msgid "Email address of the user" msgstr "Indirizzo email dell'utente" -#: InvenTree/serializers.py:439 +#: InvenTree/serializers.py:441 msgid "Staff" msgstr "Staff" -#: InvenTree/serializers.py:439 +#: InvenTree/serializers.py:441 msgid "Does this user have staff permissions" msgstr "Questo utente ha i permessi dello staff" -#: InvenTree/serializers.py:442 +#: InvenTree/serializers.py:445 msgid "Superuser" msgstr "Superuser" -#: InvenTree/serializers.py:442 +#: InvenTree/serializers.py:445 msgid "Is this user a superuser" msgstr "Questo utente è un superutente" -#: InvenTree/serializers.py:445 common/models.py:2707 company/models.py:163 -#: company/models.py:801 machine/models.py:39 part/admin.py:88 -#: part/models.py:1189 plugin/models.py:66 -#: templates/js/translated/company.js:523 +#: InvenTree/serializers.py:449 common/models.py:2771 company/models.py:160 +#: company/models.py:798 machine/models.py:39 part/admin.py:88 +#: part/models.py:1250 plugin/models.py:66 +#: templates/js/translated/company.js:524 #: templates/js/translated/table_filters.js:134 #: templates/js/translated/table_filters.js:226 #: templates/js/translated/table_filters.js:513 @@ -585,230 +605,229 @@ msgstr "Questo utente è un superutente" msgid "Active" msgstr "Attivo" -#: InvenTree/serializers.py:445 +#: InvenTree/serializers.py:449 msgid "Is this user account active" msgstr "Questo account utente è attivo" -#: InvenTree/serializers.py:463 +#: InvenTree/serializers.py:467 msgid "You do not have permission to change this user role." msgstr "Non hai i permessi per cambiare il ruolo dell'utente." -#: InvenTree/serializers.py:475 +#: InvenTree/serializers.py:503 msgid "Only superusers can create new users" msgstr "Solo i superutenti possono creare nuovi utenti" -#: InvenTree/serializers.py:494 +#: InvenTree/serializers.py:523 msgid "Your account has been created." msgstr "Il tuo account è stato creato." -#: InvenTree/serializers.py:496 +#: InvenTree/serializers.py:525 msgid "Please use the password reset function to login" msgstr "Si prega di utilizzare la funzione di reset password per accedere" -#: InvenTree/serializers.py:503 +#: InvenTree/serializers.py:531 msgid "Welcome to InvenTree" msgstr "Benvenuto in InvenTree" -#: InvenTree/serializers.py:561 +#: InvenTree/serializers.py:594 msgid "Invalid value" msgstr "Valore non valido" -#: InvenTree/serializers.py:581 importer/models.py:63 +#: InvenTree/serializers.py:614 importer/models.py:64 msgid "Data File" msgstr "File dati" -#: InvenTree/serializers.py:582 +#: InvenTree/serializers.py:615 msgid "Select data file for upload" msgstr "Seleziona un file per il caricamento" -#: InvenTree/serializers.py:599 -msgid "Unsupported file type" -msgstr "Formato file non supportato" +#: InvenTree/serializers.py:632 common/files.py:63 +msgid "Unsupported file format" +msgstr "" -#: InvenTree/serializers.py:605 +#: InvenTree/serializers.py:638 msgid "File is too large" msgstr "File troppo grande" -#: InvenTree/serializers.py:626 +#: InvenTree/serializers.py:659 msgid "No columns found in file" msgstr "Nessun colonna trovata nel file" -#: InvenTree/serializers.py:629 +#: InvenTree/serializers.py:662 msgid "No data rows found in file" msgstr "Nessuna riga di dati trovata nel file" -#: InvenTree/serializers.py:742 +#: InvenTree/serializers.py:774 msgid "No data rows provided" msgstr "Nessun dato fornito" -#: InvenTree/serializers.py:745 +#: InvenTree/serializers.py:777 msgid "No data columns supplied" msgstr "Nessuna colonna di dati fornita" -#: InvenTree/serializers.py:812 +#: InvenTree/serializers.py:843 #, python-brace-format msgid "Missing required column: '{name}'" msgstr "Colonna richiesta mancante: '{name}'" -#: InvenTree/serializers.py:821 +#: InvenTree/serializers.py:852 #, python-brace-format msgid "Duplicate column: '{col}'" msgstr "Colonna duplicata: '{col}'" -#: InvenTree/serializers.py:861 +#: InvenTree/serializers.py:891 msgid "Remote Image" msgstr "Immagine Remota" -#: InvenTree/serializers.py:862 +#: InvenTree/serializers.py:892 msgid "URL of remote image file" msgstr "URL del file immagine remota" -#: InvenTree/serializers.py:880 +#: InvenTree/serializers.py:910 msgid "Downloading images from remote URL is not enabled" msgstr "Il download delle immagini da URL remoto non è abilitato" -#: InvenTree/status.py:66 part/serializers.py:1246 -msgid "Background worker check failed" -msgstr "Controllo in background non riuscito" - -#: InvenTree/status.py:70 -msgid "Email backend not configured" -msgstr "Server di posta non configurato" - -#: InvenTree/status.py:73 -msgid "InvenTree system health checks failed" -msgstr "Controlli di sistema InvenTree falliti" +#: InvenTree/serializers.py:917 +msgid "Failed to download image from remote URL" +msgstr "" #: InvenTree/templatetags/inventree_extras.py:184 msgid "Unknown database" msgstr "Database sconosciuto" -#: InvenTree/validators.py:32 InvenTree/validators.py:34 +#: InvenTree/validators.py:32 msgid "Invalid physical unit" msgstr "Unità fisica non valida" -#: InvenTree/validators.py:40 +#: InvenTree/validators.py:38 msgid "Not a valid currency code" msgstr "Non è un codice valuta valido" -#: InvenTree/validators.py:118 InvenTree/validators.py:134 +#: InvenTree/validators.py:115 InvenTree/validators.py:131 msgid "Overage value must not be negative" msgstr "Il sovra-valore non può essere negativo" -#: InvenTree/validators.py:136 +#: InvenTree/validators.py:133 msgid "Overage must not exceed 100%" msgstr "L'eccesso non deve superare il 100%" -#: InvenTree/validators.py:142 +#: InvenTree/validators.py:139 msgid "Invalid value for overage" msgstr "Valore non valido per eccedenza" -#: InvenTree/views.py:400 templates/InvenTree/settings/user.html:23 +#: InvenTree/views.py:399 templates/InvenTree/settings/user.html:23 msgid "Edit User Information" msgstr "Modifica informazioni utente" -#: InvenTree/views.py:412 templates/InvenTree/settings/user.html:20 +#: InvenTree/views.py:411 templates/InvenTree/settings/user.html:20 msgid "Set Password" msgstr "Imposta Password" -#: InvenTree/views.py:434 +#: InvenTree/views.py:433 msgid "Password fields must match" msgstr "Le password devono coincidere" -#: InvenTree/views.py:442 +#: InvenTree/views.py:441 msgid "Wrong password provided" msgstr "Password inserita non corretta" -#: InvenTree/views.py:650 templates/navbar.html:160 +#: InvenTree/views.py:645 templates/navbar.html:160 msgid "System Information" msgstr "Informazioni sistema" -#: InvenTree/views.py:657 templates/navbar.html:171 +#: InvenTree/views.py:652 templates/navbar.html:171 msgid "About InvenTree" msgstr "Informazioni Su InvenTree" -#: build/api.py:51 part/api.py:156 stock/api.py:343 -msgid "Cascade" -msgstr "" - -#: build/api.py:64 build/models.py:261 -#: build/templates/build/build_base.html:191 +#: build/api.py:54 build/models.py:262 +#: build/templates/build/build_base.html:192 #: build/templates/build/detail.html:87 msgid "Parent Build" msgstr "Produzione Genitore" -#: build/api.py:89 order/api.py:92 templates/js/translated/table_filters.js:101 +#: build/api.py:58 build/api.py:625 order/api.py:396 order/api.py:611 +#: order/api.py:990 order/api.py:1187 +#: templates/js/translated/table_filters.js:372 +msgid "Include Variants" +msgstr "" + +#: build/api.py:93 +msgid "Ancestor Build" +msgstr "" + +#: build/api.py:112 order/api.py:90 +#: templates/js/translated/table_filters.js:101 #: templates/js/translated/table_filters.js:549 #: templates/js/translated/table_filters.js:633 #: templates/js/translated/table_filters.js:674 msgid "Assigned to me" msgstr "" -#: build/api.py:106 build/templates/build/build_base.html:205 +#: build/api.py:129 build/templates/build/build_base.html:206 #: build/templates/build/detail.html:115 #: report/templates/report/inventree_build_order_report.html:152 #: templates/js/translated/table_filters.js:552 msgid "Issued By" msgstr "Inviato da" -#: build/api.py:125 +#: build/api.py:148 msgid "Assigned To" msgstr "" -#: build/api.py:301 +#: build/api.py:310 msgid "Build must be cancelled before it can be deleted" msgstr "La produzione deve essere annullata prima di poter essere eliminata" -#: build/api.py:345 build/serializers.py:1288 part/models.py:4265 +#: build/api.py:354 build/serializers.py:1342 part/models.py:4322 #: templates/js/translated/bom.js:997 templates/js/translated/bom.js:1037 -#: templates/js/translated/build.js:2702 +#: templates/js/translated/build.js:2711 #: templates/js/translated/table_filters.js:197 #: templates/js/translated/table_filters.js:586 msgid "Consumable" msgstr "Consumabile" -#: build/api.py:346 build/serializers.py:1289 part/models.py:4259 +#: build/api.py:355 build/serializers.py:1343 part/models.py:4316 #: part/templates/part/upload_bom.html:58 templates/js/translated/bom.js:1001 -#: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2693 +#: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2702 #: templates/js/translated/table_filters.js:193 #: templates/js/translated/table_filters.js:222 #: templates/js/translated/table_filters.js:590 msgid "Optional" msgstr "Opzionale" -#: build/api.py:347 common/models.py:1489 part/admin.py:91 part/admin.py:428 -#: part/models.py:1154 part/serializers.py:1575 +#: build/api.py:356 common/models.py:1558 part/admin.py:91 part/admin.py:428 +#: part/models.py:1215 part/serializers.py:1633 #: templates/js/translated/bom.js:1639 #: templates/js/translated/table_filters.js:337 #: templates/js/translated/table_filters.js:729 msgid "Assembly" msgstr "Assemblaggio" -#: build/api.py:348 templates/js/translated/table_filters.js:415 +#: build/api.py:357 templates/js/translated/table_filters.js:415 #: templates/js/translated/table_filters.js:582 msgid "Tracked" msgstr "Monitorato" -#: build/api.py:349 build/serializers.py:1290 part/models.py:1172 +#: build/api.py:358 build/serializers.py:1344 part/models.py:1233 #: templates/js/translated/table_filters.js:146 #: templates/js/translated/table_filters.js:779 msgid "Testable" msgstr "" -#: build/api.py:351 part/admin.py:144 templates/js/translated/build.js:1917 -#: templates/js/translated/build.js:2820 -#: templates/js/translated/sales_order.js:1965 +#: build/api.py:360 order/api.py:779 part/admin.py:144 +#: templates/js/translated/build.js:1920 templates/js/translated/build.js:2838 +#: templates/js/translated/sales_order.js:1946 #: templates/js/translated/table_filters.js:574 msgid "Allocated" msgstr "Allocato" -#: build/api.py:359 company/models.py:891 company/serializers.py:395 -#: company/templates/company/supplier_part.html:114 +#: build/api.py:368 company/models.py:888 company/serializers.py:399 +#: company/templates/company/supplier_part.html:115 #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:17 -#: templates/js/translated/bom.js:1162 templates/js/translated/build.js:2752 +#: templates/js/translated/bom.js:1162 templates/js/translated/build.js:2770 #: templates/js/translated/index.js:123 -#: templates/js/translated/model_renderers.js:235 +#: templates/js/translated/model_renderers.js:238 #: templates/js/translated/part.js:695 templates/js/translated/part.js:697 #: templates/js/translated/part.js:702 #: templates/js/translated/table_filters.js:347 @@ -816,16 +835,68 @@ msgstr "Allocato" msgid "Available" msgstr "Disponibile" -#: build/models.py:86 build/templates/build/build_base.html:9 -#: build/templates/build/build_base.html:27 +#: build/api.py:640 build/models.py:268 build/serializers.py:1330 +#: build/templates/build/build_base.html:106 +#: build/templates/build/detail.html:29 company/models.py:1043 order/api.py:775 +#: order/api.py:1003 order/models.py:1519 order/models.py:1674 +#: order/models.py:1675 part/api.py:1495 part/api.py:1802 part/models.py:419 +#: part/models.py:3177 part/models.py:3321 part/models.py:3469 +#: part/models.py:3490 part/models.py:3512 part/models.py:3648 +#: part/models.py:3995 part/models.py:4158 part/models.py:4288 +#: part/models.py:4654 part/serializers.py:1245 part/serializers.py:1898 +#: part/templates/part/part_app_base.html:8 +#: part/templates/part/part_pricing.html:12 +#: part/templates/part/upload_bom.html:52 +#: report/templates/report/inventree_bill_of_materials_report.html:110 +#: report/templates/report/inventree_bill_of_materials_report.html:137 +#: report/templates/report/inventree_build_order_report.html:109 +#: report/templates/report/inventree_purchase_order_report.html:27 +#: report/templates/report/inventree_return_order_report.html:24 +#: report/templates/report/inventree_sales_order_report.html:27 +#: report/templates/report/inventree_sales_order_shipment_report.html:28 +#: report/templates/report/inventree_stock_location_report.html:102 +#: stock/serializers.py:112 stock/serializers.py:160 stock/serializers.py:456 +#: stock/serializers.py:947 templates/InvenTree/search.html:82 +#: templates/email/build_order_completed.html:17 +#: templates/email/build_order_required_stock.html:17 +#: templates/email/low_stock_notification.html:15 +#: templates/email/overdue_build_order.html:16 +#: templates/js/translated/barcode.js:577 templates/js/translated/bom.js:632 +#: templates/js/translated/bom.js:769 templates/js/translated/bom.js:905 +#: templates/js/translated/build.js:1005 templates/js/translated/build.js:1488 +#: templates/js/translated/build.js:1919 templates/js/translated/build.js:2337 +#: templates/js/translated/build.js:2514 templates/js/translated/company.js:349 +#: templates/js/translated/company.js:1117 +#: templates/js/translated/company.js:1272 +#: templates/js/translated/company.js:1560 templates/js/translated/index.js:109 +#: templates/js/translated/part.js:1950 templates/js/translated/part.js:2022 +#: templates/js/translated/part.js:2330 templates/js/translated/pricing.js:369 +#: templates/js/translated/purchase_order.js:734 +#: templates/js/translated/purchase_order.js:1350 +#: templates/js/translated/purchase_order.js:1902 +#: templates/js/translated/purchase_order.js:2061 +#: templates/js/translated/return_order.js:538 +#: templates/js/translated/return_order.js:708 +#: templates/js/translated/sales_order.js:1199 +#: templates/js/translated/sales_order.js:1608 +#: templates/js/translated/sales_order.js:1813 +#: templates/js/translated/stock.js:682 templates/js/translated/stock.js:848 +#: templates/js/translated/stock.js:1065 templates/js/translated/stock.js:2083 +#: templates/js/translated/stock.js:2942 templates/js/translated/stock.js:3175 +#: templates/js/translated/stock.js:3320 +msgid "Part" +msgstr "Articolo" + +#: build/api.py:662 build/models.py:88 build/templates/build/build_base.html:10 +#: build/templates/build/build_base.html:28 #: report/templates/report/inventree_build_order_report.html:105 -#: stock/serializers.py:84 templates/email/build_order_completed.html:16 +#: stock/serializers.py:85 templates/email/build_order_completed.html:16 #: templates/email/overdue_build_order.html:15 -#: templates/js/translated/build.js:1145 templates/js/translated/stock.js:2976 +#: templates/js/translated/build.js:1148 templates/js/translated/stock.js:2977 msgid "Build Order" msgstr "Ordine di Produzione" -#: build/models.py:87 build/templates/build/build_base.html:13 +#: build/models.py:89 build/templates/build/build_base.html:14 #: build/templates/build/index.html:8 build/templates/build/index.html:12 #: order/templates/order/sales_order_detail.html:111 #: order/templates/order/so_sidebar.html:13 @@ -836,268 +907,216 @@ msgstr "Ordine di Produzione" msgid "Build Orders" msgstr "Ordini di Produzione" -#: build/models.py:135 +#: build/models.py:136 msgid "Assembly BOM has not been validated" msgstr "Assembly BOM non è stato convalidato" -#: build/models.py:142 +#: build/models.py:143 msgid "Build order cannot be created for an inactive part" msgstr "L'ordine di generazione non può essere creato per una parte inattiva" -#: build/models.py:149 +#: build/models.py:150 msgid "Build order cannot be created for an unlocked part" msgstr "L'ordine di compilazione non può essere creato per una parte sbloccata" -#: build/models.py:163 +#: build/models.py:164 msgid "Invalid choice for parent build" msgstr "Scelta non valida per la produzione genitore" -#: build/models.py:174 order/models.py:239 +#: build/models.py:175 order/models.py:236 msgid "Responsible user or group must be specified" msgstr "L'utente o il gruppo responsabile deve essere specificato" -#: build/models.py:180 +#: build/models.py:181 msgid "Build order part cannot be changed" msgstr "L'ordine di costruzione della parte non può essere cambiata" -#: build/models.py:241 +#: build/models.py:242 msgid "Build Order Reference" msgstr "Riferimento Ordine Di Produzione" -#: build/models.py:242 build/serializers.py:1287 order/models.py:467 -#: order/models.py:978 order/models.py:1373 order/models.py:2135 -#: part/admin.py:414 part/models.py:4280 part/templates/part/upload_bom.html:54 +#: build/models.py:243 build/serializers.py:1341 order/models.py:479 +#: order/models.py:1005 order/models.py:1390 order/models.py:2174 +#: part/admin.py:414 part/models.py:4337 part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_bill_of_materials_report.html:139 #: report/templates/report/inventree_purchase_order_report.html:28 #: report/templates/report/inventree_return_order_report.html:26 #: report/templates/report/inventree_sales_order_report.html:28 #: templates/js/translated/bom.js:770 templates/js/translated/bom.js:973 -#: templates/js/translated/build.js:1011 templates/js/translated/build.js:2685 +#: templates/js/translated/build.js:1014 templates/js/translated/build.js:2694 #: templates/js/translated/order.js:316 templates/js/translated/pricing.js:386 -#: templates/js/translated/purchase_order.js:2135 +#: templates/js/translated/purchase_order.js:2119 #: templates/js/translated/return_order.js:727 -#: templates/js/translated/sales_order.js:1854 +#: templates/js/translated/sales_order.js:1835 msgid "Reference" msgstr "Riferimento" -#: build/models.py:253 +#: build/models.py:254 msgid "Brief description of the build (optional)" msgstr "Breve descrizione della build (facoltativo)" -#: build/models.py:262 +#: build/models.py:263 msgid "BuildOrder to which this build is allocated" msgstr "Ordine di produzione a cui questa produzione viene assegnata" -#: build/models.py:267 build/serializers.py:1278 -#: build/templates/build/build_base.html:105 -#: build/templates/build/detail.html:29 company/models.py:1046 order/api.py:767 -#: order/models.py:1503 order/models.py:1658 order/models.py:1659 -#: part/api.py:1509 part/api.py:1813 part/models.py:424 part/models.py:3126 -#: part/models.py:3270 part/models.py:3418 part/models.py:3439 -#: part/models.py:3461 part/models.py:3597 part/models.py:3937 -#: part/models.py:4100 part/models.py:4231 part/models.py:4592 -#: part/serializers.py:1192 part/serializers.py:1836 -#: part/templates/part/part_app_base.html:8 -#: part/templates/part/part_pricing.html:12 -#: part/templates/part/upload_bom.html:52 -#: report/templates/report/inventree_bill_of_materials_report.html:110 -#: report/templates/report/inventree_bill_of_materials_report.html:137 -#: report/templates/report/inventree_build_order_report.html:109 -#: report/templates/report/inventree_purchase_order_report.html:27 -#: report/templates/report/inventree_return_order_report.html:24 -#: report/templates/report/inventree_sales_order_report.html:27 -#: report/templates/report/inventree_stock_location_report.html:102 -#: stock/serializers.py:111 stock/serializers.py:159 stock/serializers.py:446 -#: stock/serializers.py:916 templates/InvenTree/search.html:82 -#: templates/email/build_order_completed.html:17 -#: templates/email/build_order_required_stock.html:17 -#: templates/email/low_stock_notification.html:15 -#: templates/email/overdue_build_order.html:16 -#: templates/js/translated/barcode.js:577 templates/js/translated/bom.js:632 -#: templates/js/translated/bom.js:769 templates/js/translated/bom.js:905 -#: templates/js/translated/build.js:1002 templates/js/translated/build.js:1485 -#: templates/js/translated/build.js:1916 templates/js/translated/build.js:2334 -#: templates/js/translated/build.js:2507 templates/js/translated/company.js:348 -#: templates/js/translated/company.js:1116 -#: templates/js/translated/company.js:1271 -#: templates/js/translated/company.js:1559 templates/js/translated/index.js:109 -#: templates/js/translated/part.js:1950 templates/js/translated/part.js:2022 -#: templates/js/translated/part.js:2330 templates/js/translated/pricing.js:369 -#: templates/js/translated/purchase_order.js:751 -#: templates/js/translated/purchase_order.js:1367 -#: templates/js/translated/purchase_order.js:1918 -#: templates/js/translated/purchase_order.js:2077 -#: templates/js/translated/return_order.js:538 -#: templates/js/translated/return_order.js:708 -#: templates/js/translated/sales_order.js:300 -#: templates/js/translated/sales_order.js:1233 -#: templates/js/translated/sales_order.js:1634 -#: templates/js/translated/sales_order.js:1832 -#: templates/js/translated/stock.js:682 templates/js/translated/stock.js:848 -#: templates/js/translated/stock.js:1065 templates/js/translated/stock.js:2082 -#: templates/js/translated/stock.js:2941 templates/js/translated/stock.js:3174 -#: templates/js/translated/stock.js:3319 -msgid "Part" -msgstr "Articolo" - -#: build/models.py:275 +#: build/models.py:274 msgid "Select part to build" msgstr "Selezionare parte da produrre" -#: build/models.py:280 +#: build/models.py:279 msgid "Sales Order Reference" msgstr "Numero di riferimento ordine di vendita" -#: build/models.py:284 +#: build/models.py:283 msgid "SalesOrder to which this build is allocated" msgstr "Ordine di vendita a cui questa produzione viene assegnata" -#: build/models.py:289 build/serializers.py:1048 -#: templates/js/translated/build.js:1904 -#: templates/js/translated/sales_order.js:1221 +#: build/models.py:288 build/serializers.py:1092 +#: templates/js/translated/build.js:1907 +#: templates/js/translated/sales_order.js:1187 msgid "Source Location" msgstr "Posizione Di Origine" -#: build/models.py:293 +#: build/models.py:292 msgid "Select location to take stock from for this build (leave blank to take from any stock location)" msgstr "Seleziona la posizione da cui prelevare la giacenza (lasciare vuoto per prelevare da qualsiasi posizione di magazzino)" -#: build/models.py:298 +#: build/models.py:297 msgid "Destination Location" msgstr "Posizione Della Destinazione" -#: build/models.py:302 +#: build/models.py:301 msgid "Select location where the completed items will be stored" msgstr "Seleziona il luogo in cui gli articoli completati saranno immagazzinati" -#: build/models.py:306 +#: build/models.py:305 msgid "Build Quantity" msgstr "Quantità Produzione" -#: build/models.py:309 +#: build/models.py:308 msgid "Number of stock items to build" msgstr "Numero di articoli da costruire" -#: build/models.py:313 +#: build/models.py:312 msgid "Completed items" msgstr "Articoli completati" -#: build/models.py:315 +#: build/models.py:314 msgid "Number of stock items which have been completed" msgstr "Numero di articoli di magazzino che sono stati completati" -#: build/models.py:319 +#: build/models.py:318 msgid "Build Status" msgstr "Stato Produzione" -#: build/models.py:323 +#: build/models.py:322 msgid "Build status code" msgstr "Codice stato di produzione" -#: build/models.py:332 build/serializers.py:302 build/serializers.py:1198 -#: order/serializers.py:670 stock/models.py:859 stock/serializers.py:76 -#: stock/serializers.py:1562 templates/js/translated/purchase_order.js:1129 +#: build/models.py:331 build/serializers.py:349 build/serializers.py:1243 +#: order/serializers.py:755 stock/models.py:936 stock/serializers.py:77 +#: stock/serializers.py:1593 templates/js/translated/purchase_order.js:1112 #: templates/js/translated/stock.js:1199 msgid "Batch Code" msgstr "Codice Lotto" -#: build/models.py:336 build/serializers.py:303 +#: build/models.py:335 build/serializers.py:350 msgid "Batch code for this build output" msgstr "Codice del lotto per questa produzione" -#: build/models.py:339 order/models.py:315 order/serializers.py:126 -#: part/models.py:1229 part/templates/part/part_base.html:319 +#: build/models.py:338 order/models.py:322 order/serializers.py:157 +#: part/models.py:1290 part/templates/part/part_base.html:327 #: templates/js/translated/return_order.js:338 -#: templates/js/translated/sales_order.js:863 +#: templates/js/translated/sales_order.js:822 msgid "Creation Date" msgstr "Data di creazione" -#: build/models.py:343 +#: build/models.py:342 msgid "Target completion date" msgstr "Data completamento obiettivo" -#: build/models.py:344 +#: build/models.py:343 msgid "Target date for build completion. Build will be overdue after this date." msgstr "Data di completamento della produzione. Dopo tale data la produzione sarà in ritardo." -#: build/models.py:347 order/models.py:526 order/models.py:2180 -#: templates/js/translated/build.js:2419 +#: build/models.py:346 order/models.py:538 order/models.py:2219 +#: templates/js/translated/build.js:2422 msgid "Completion Date" msgstr "Data di completamento" -#: build/models.py:353 +#: build/models.py:352 msgid "completed by" msgstr "Completato da" -#: build/models.py:361 templates/js/translated/build.js:2379 +#: build/models.py:360 templates/js/translated/build.js:2382 msgid "Issued by" msgstr "Rilasciato da" -#: build/models.py:362 +#: build/models.py:361 msgid "User who issued this build order" msgstr "Utente che ha emesso questo ordine di costruzione" -#: build/models.py:370 build/templates/build/build_base.html:212 -#: build/templates/build/detail.html:122 common/models.py:165 order/api.py:142 -#: order/models.py:333 order/templates/order/order_base.html:222 -#: order/templates/order/return_order_base.html:191 -#: order/templates/order/sales_order_base.html:235 part/models.py:1246 -#: part/templates/part/part_base.html:399 +#: build/models.py:369 build/templates/build/build_base.html:213 +#: build/templates/build/detail.html:122 common/models.py:168 order/api.py:140 +#: order/models.py:340 order/templates/order/order_base.html:231 +#: order/templates/order/return_order_base.html:192 +#: order/templates/order/sales_order_base.html:236 part/models.py:1307 +#: part/templates/part/part_base.html:407 #: report/templates/report/inventree_build_order_report.html:158 #: templates/InvenTree/settings/settings_staff_js.html:150 -#: templates/js/translated/build.js:2391 -#: templates/js/translated/purchase_order.js:1833 +#: templates/js/translated/build.js:2394 +#: templates/js/translated/purchase_order.js:1817 #: templates/js/translated/return_order.js:358 #: templates/js/translated/table_filters.js:551 msgid "Responsible" msgstr "Responsabile" -#: build/models.py:371 +#: build/models.py:370 msgid "User or group responsible for this build order" msgstr "Utente o gruppo responsabile di questo ordine di produzione" -#: build/models.py:376 build/templates/build/detail.html:108 +#: build/models.py:375 build/templates/build/detail.html:108 #: company/templates/company/manufacturer_part.html:107 -#: company/templates/company/supplier_part.html:194 -#: order/templates/order/order_base.html:172 -#: order/templates/order/return_order_base.html:148 -#: order/templates/order/sales_order_base.html:187 -#: part/templates/part/part_base.html:392 stock/models.py:855 -#: stock/templates/stock/item_base.html:200 -#: templates/js/translated/company.js:1019 +#: company/templates/company/supplier_part.html:195 +#: order/templates/order/order_base.html:181 +#: order/templates/order/return_order_base.html:149 +#: order/templates/order/sales_order_base.html:188 +#: part/templates/part/part_base.html:400 stock/models.py:932 +#: stock/templates/stock/item_base.html:197 +#: templates/js/translated/company.js:1020 msgid "External Link" msgstr "Collegamento esterno" -#: build/models.py:377 common/models.py:3273 part/models.py:1058 -#: stock/models.py:855 +#: build/models.py:376 common/models.py:3334 part/models.py:1119 +#: stock/models.py:932 msgid "Link to external URL" msgstr "Link a URL esterno" -#: build/models.py:381 +#: build/models.py:380 msgid "Build Priority" msgstr "Priorità di produzione" -#: build/models.py:384 +#: build/models.py:383 msgid "Priority of this build order" msgstr "Priorità di questo ordine di produzione" -#: build/models.py:391 common/models.py:135 common/models.py:149 -#: order/admin.py:18 order/api.py:128 order/models.py:297 +#: build/models.py:390 common/models.py:138 common/models.py:152 +#: order/admin.py:18 order/api.py:126 order/models.py:304 #: templates/InvenTree/settings/settings_staff_js.html:146 -#: templates/js/translated/build.js:2316 -#: templates/js/translated/purchase_order.js:1780 +#: templates/js/translated/build.js:2319 +#: templates/js/translated/purchase_order.js:1764 #: templates/js/translated/return_order.js:317 -#: templates/js/translated/sales_order.js:842 +#: templates/js/translated/sales_order.js:801 #: templates/js/translated/table_filters.js:47 #: templates/project_code_data.html:6 msgid "Project Code" msgstr "Codice del progetto" -#: build/models.py:392 +#: build/models.py:391 msgid "Project code for this build order" msgstr "Codice del progetto per questo ordine di produzione" -#: build/models.py:651 build/models.py:778 +#: build/models.py:651 build/models.py:779 msgid "Failed to offload task to complete build allocations" msgstr "" @@ -1110,610 +1129,619 @@ msgstr "L'ordine di produzione {build} è stato completato" msgid "A build order has been completed" msgstr "L'ordine di produzione è stato completato" -#: build/models.py:967 build/models.py:1055 +#: build/models.py:858 build/serializers.py:393 +msgid "Serial numbers must be provided for trackable parts" +msgstr "" + +#: build/models.py:969 build/models.py:1058 msgid "No build output specified" msgstr "Nessun output di produzione specificato" -#: build/models.py:970 +#: build/models.py:972 msgid "Build output is already completed" msgstr "La produzione è stata completata" -#: build/models.py:973 +#: build/models.py:975 msgid "Build output does not match Build Order" msgstr "L'output della produzione non corrisponde all'ordine di compilazione" -#: build/models.py:1059 build/serializers.py:235 build/serializers.py:284 -#: build/serializers.py:915 order/models.py:564 order/serializers.py:499 -#: order/serializers.py:665 part/serializers.py:1569 part/serializers.py:1999 -#: stock/models.py:700 stock/models.py:1520 stock/serializers.py:669 +#: build/models.py:1062 build/serializers.py:282 build/serializers.py:331 +#: build/serializers.py:959 order/models.py:586 order/serializers.py:584 +#: order/serializers.py:750 part/serializers.py:1627 part/serializers.py:2060 +#: stock/models.py:777 stock/models.py:1609 stock/serializers.py:696 msgid "Quantity must be greater than zero" msgstr "La quantità deve essere maggiore di zero" -#: build/models.py:1064 build/serializers.py:240 +#: build/models.py:1067 build/serializers.py:287 msgid "Quantity cannot be greater than the output quantity" msgstr "La quantità non può essere maggiore della quantità in uscita" -#: build/models.py:1124 build/serializers.py:563 +#: build/models.py:1127 build/serializers.py:607 #, python-brace-format msgid "Build output {serial} has not passed all required tests" msgstr "" -#: build/models.py:1465 +#: build/models.py:1482 msgid "Build Order Line Item" msgstr "" -#: build/models.py:1490 +#: build/models.py:1507 msgid "Build object" msgstr "Crea oggetto" -#: build/models.py:1504 build/models.py:1760 build/serializers.py:222 -#: build/serializers.py:269 build/serializers.py:1295 -#: build/templates/build/build_base.html:110 -#: build/templates/build/detail.html:34 common/models.py:2579 -#: order/models.py:1356 order/models.py:2041 order/serializers.py:1460 +#: build/models.py:1521 build/models.py:1787 build/serializers.py:269 +#: build/serializers.py:316 build/serializers.py:1349 +#: build/templates/build/build_base.html:111 +#: build/templates/build/detail.html:34 common/models.py:2643 +#: order/models.py:1373 order/models.py:2074 order/serializers.py:1586 #: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:413 -#: part/forms.py:48 part/models.py:3284 part/models.py:4253 -#: part/templates/part/part_pricing.html:16 +#: part/forms.py:48 part/models.py:3335 part/models.py:4310 +#: part/serializers.py:265 part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_bill_of_materials_report.html:138 #: report/templates/report/inventree_build_order_report.html:113 #: report/templates/report/inventree_purchase_order_report.html:29 #: report/templates/report/inventree_sales_order_report.html:29 +#: report/templates/report/inventree_sales_order_shipment_report.html:47 +#: report/templates/report/inventree_sales_order_shipment_report.html:49 #: report/templates/report/inventree_stock_location_report.html:104 #: report/templates/report/inventree_test_report.html:90 -#: report/templates/report/inventree_test_report.html:169 stock/admin.py:159 -#: stock/serializers.py:127 stock/serializers.py:167 stock/serializers.py:660 -#: stock/templates/stock/item_base.html:287 -#: stock/templates/stock/item_base.html:295 -#: stock/templates/stock/item_base.html:342 +#: report/templates/report/inventree_test_report.html:169 stock/admin.py:160 +#: stock/serializers.py:128 stock/serializers.py:168 stock/serializers.py:687 +#: stock/templates/stock/item_base.html:284 +#: stock/templates/stock/item_base.html:292 +#: stock/templates/stock/item_base.html:339 #: templates/email/build_order_completed.html:18 #: templates/js/translated/barcode.js:579 templates/js/translated/bom.js:771 -#: templates/js/translated/bom.js:981 templates/js/translated/build.js:522 -#: templates/js/translated/build.js:737 templates/js/translated/build.js:1542 -#: templates/js/translated/build.js:1919 templates/js/translated/build.js:2529 -#: templates/js/translated/company.js:1818 -#: templates/js/translated/model_renderers.js:237 +#: templates/js/translated/bom.js:981 templates/js/translated/build.js:525 +#: templates/js/translated/build.js:740 templates/js/translated/build.js:1545 +#: templates/js/translated/build.js:1922 templates/js/translated/build.js:2536 +#: templates/js/translated/company.js:1819 +#: templates/js/translated/model_renderers.js:240 #: templates/js/translated/order.js:329 templates/js/translated/part.js:968 -#: templates/js/translated/part.js:1818 templates/js/translated/part.js:3360 +#: templates/js/translated/part.js:1818 templates/js/translated/part.js:3376 #: templates/js/translated/pricing.js:381 #: templates/js/translated/pricing.js:474 #: templates/js/translated/pricing.js:522 #: templates/js/translated/pricing.js:616 -#: templates/js/translated/purchase_order.js:754 -#: templates/js/translated/purchase_order.js:1922 -#: templates/js/translated/purchase_order.js:2141 -#: templates/js/translated/sales_order.js:317 -#: templates/js/translated/sales_order.js:1235 -#: templates/js/translated/sales_order.js:1554 -#: templates/js/translated/sales_order.js:1644 -#: templates/js/translated/sales_order.js:1734 -#: templates/js/translated/sales_order.js:1860 +#: templates/js/translated/purchase_order.js:737 +#: templates/js/translated/purchase_order.js:1906 +#: templates/js/translated/purchase_order.js:2125 +#: templates/js/translated/sales_order.js:1201 +#: templates/js/translated/sales_order.js:1520 +#: templates/js/translated/sales_order.js:1625 +#: templates/js/translated/sales_order.js:1715 +#: templates/js/translated/sales_order.js:1841 #: templates/js/translated/stock.js:570 templates/js/translated/stock.js:708 -#: templates/js/translated/stock.js:879 templates/js/translated/stock.js:3105 -#: templates/js/translated/stock.js:3188 +#: templates/js/translated/stock.js:879 templates/js/translated/stock.js:3106 +#: templates/js/translated/stock.js:3189 msgid "Quantity" msgstr "Quantità" -#: build/models.py:1505 +#: build/models.py:1522 msgid "Required quantity for build order" msgstr "Quantità richiesta per l'ordine di costruzione" -#: build/models.py:1585 +#: build/models.py:1602 msgid "Build item must specify a build output, as master part is marked as trackable" msgstr "L'elemento di compilazione deve specificare un output poiché la parte principale è contrassegnata come rintracciabile" -#: build/models.py:1594 +#: build/models.py:1611 #, python-brace-format msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgstr "La quantità assegnata ({q}) non deve essere maggiore della quantità disponibile ({a})" -#: build/models.py:1604 order/models.py:1992 +#: build/models.py:1628 order/models.py:2025 msgid "Stock item is over-allocated" msgstr "L'articolo in giacenza è sovrallocato" -#: build/models.py:1610 order/models.py:1995 +#: build/models.py:1634 order/models.py:2028 msgid "Allocation quantity must be greater than zero" msgstr "La quantità di assegnazione deve essere maggiore di zero" -#: build/models.py:1616 +#: build/models.py:1640 msgid "Quantity must be 1 for serialized stock" msgstr "La quantità deve essere 1 per lo stock serializzato" -#: build/models.py:1675 +#: build/models.py:1699 msgid "Selected stock item does not match BOM line" msgstr "L'articolo in stock selezionato non corrisponde alla voce nella BOM" -#: build/models.py:1747 build/serializers.py:895 order/serializers.py:1297 -#: order/serializers.py:1318 stock/models.py:376 stock/serializers.py:93 -#: stock/serializers.py:763 stock/serializers.py:1281 stock/serializers.py:1393 -#: stock/templates/stock/item_base.html:10 -#: stock/templates/stock/item_base.html:23 -#: stock/templates/stock/item_base.html:194 -#: templates/js/translated/build.js:1918 -#: templates/js/translated/sales_order.js:301 -#: templates/js/translated/sales_order.js:1234 -#: templates/js/translated/sales_order.js:1535 -#: templates/js/translated/sales_order.js:1540 -#: templates/js/translated/sales_order.js:1641 -#: templates/js/translated/sales_order.js:1728 +#: build/models.py:1774 build/serializers.py:939 order/serializers.py:1423 +#: order/serializers.py:1444 +#: report/templates/report/inventree_sales_order_shipment_report.html:29 +#: stock/models.py:382 stock/serializers.py:94 stock/serializers.py:794 +#: stock/serializers.py:1312 stock/serializers.py:1424 +#: stock/templates/stock/item_base.html:11 +#: stock/templates/stock/item_base.html:24 +#: stock/templates/stock/item_base.html:191 +#: templates/js/translated/build.js:1921 +#: templates/js/translated/sales_order.js:1200 +#: templates/js/translated/sales_order.js:1501 +#: templates/js/translated/sales_order.js:1506 +#: templates/js/translated/sales_order.js:1622 +#: templates/js/translated/sales_order.js:1709 #: templates/js/translated/stock.js:683 templates/js/translated/stock.js:849 -#: templates/js/translated/stock.js:3061 +#: templates/js/translated/stock.js:3062 msgid "Stock Item" msgstr "Articoli in magazzino" -#: build/models.py:1748 +#: build/models.py:1775 msgid "Source stock item" msgstr "Origine giacenza articolo" -#: build/models.py:1761 +#: build/models.py:1788 msgid "Stock quantity to allocate to build" msgstr "Quantità di magazzino da assegnare per la produzione" -#: build/models.py:1769 +#: build/models.py:1796 msgid "Install into" msgstr "Installa in" -#: build/models.py:1770 +#: build/models.py:1797 msgid "Destination stock item" msgstr "Destinazione articolo in giacenza" -#: build/serializers.py:91 +#: build/serializers.py:108 msgid "Build Level" msgstr "" -#: build/serializers.py:99 build/serializers.py:1190 build/serializers.py:1279 -#: part/admin.py:41 part/admin.py:408 part/models.py:4102 part/stocktake.py:219 -#: stock/admin.py:156 +#: build/serializers.py:116 build/serializers.py:1235 build/serializers.py:1331 +#: part/admin.py:41 part/admin.py:408 part/models.py:4160 part/stocktake.py:219 +#: stock/admin.py:157 msgid "Part Name" msgstr "Nome Articolo" -#: build/serializers.py:111 +#: build/serializers.py:128 msgid "Project Code Label" msgstr "" -#: build/serializers.py:172 build/serializers.py:924 -#: templates/js/translated/build.js:1042 templates/js/translated/build.js:1495 +#: build/serializers.py:134 +msgid "Create Child Builds" +msgstr "" + +#: build/serializers.py:135 +msgid "Automatically generate child build orders" +msgstr "" + +#: build/serializers.py:219 build/serializers.py:968 +#: templates/js/translated/build.js:1045 templates/js/translated/build.js:1498 msgid "Build Output" msgstr "Genera Output" -#: build/serializers.py:184 +#: build/serializers.py:231 msgid "Build output does not match the parent build" msgstr "L'output generato non corrisponde alla produzione principale" -#: build/serializers.py:188 +#: build/serializers.py:235 msgid "Output part does not match BuildOrder part" msgstr "L'output non corrisponde alle parti dell'ordine di produzione" -#: build/serializers.py:192 +#: build/serializers.py:239 msgid "This build output has already been completed" msgstr "Questa produzione è stata già completata" -#: build/serializers.py:203 +#: build/serializers.py:250 msgid "This build output is not fully allocated" msgstr "Questo output non è stato completamente assegnato" -#: build/serializers.py:223 build/serializers.py:270 +#: build/serializers.py:270 build/serializers.py:317 msgid "Enter quantity for build output" msgstr "Inserisci la quantità per l'output di compilazione" -#: build/serializers.py:291 +#: build/serializers.py:338 msgid "Integer quantity required for trackable parts" msgstr "Quantità totale richiesta per articoli rintracciabili" -#: build/serializers.py:294 +#: build/serializers.py:341 msgid "Integer quantity required, as the bill of materials contains trackable parts" msgstr "Quantità totale richiesta, poiché la fattura dei materiali contiene articoli rintracciabili" -#: build/serializers.py:309 order/serializers.py:678 order/serializers.py:1464 -#: stock/serializers.py:680 templates/js/translated/purchase_order.js:1154 +#: build/serializers.py:356 order/serializers.py:763 order/serializers.py:1590 +#: stock/serializers.py:707 templates/js/translated/purchase_order.js:1137 #: templates/js/translated/stock.js:373 templates/js/translated/stock.js:571 msgid "Serial Numbers" msgstr "Codice Seriale" -#: build/serializers.py:310 +#: build/serializers.py:357 msgid "Enter serial numbers for build outputs" msgstr "Inserisci i numeri di serie per gli output di compilazione (build option)" -#: build/serializers.py:315 build/serializers.py:456 build/serializers.py:528 -#: order/serializers.py:654 order/serializers.py:778 order/serializers.py:1781 -#: part/serializers.py:1212 stock/serializers.py:102 stock/serializers.py:691 -#: stock/serializers.py:851 stock/serializers.py:977 stock/serializers.py:1425 -#: stock/serializers.py:1681 stock/templates/stock/item_base.html:394 +#: build/serializers.py:362 build/serializers.py:500 build/serializers.py:572 +#: order/serializers.py:739 order/serializers.py:880 order/serializers.py:1933 +#: part/serializers.py:1265 stock/serializers.py:103 stock/serializers.py:718 +#: stock/serializers.py:882 stock/serializers.py:1008 stock/serializers.py:1456 +#: stock/serializers.py:1712 stock/templates/stock/item_base.html:391 #: templates/js/translated/barcode.js:578 -#: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1032 -#: templates/js/translated/build.js:1174 templates/js/translated/build.js:2544 -#: templates/js/translated/purchase_order.js:1210 -#: templates/js/translated/purchase_order.js:1320 -#: templates/js/translated/sales_order.js:1547 -#: templates/js/translated/sales_order.js:1655 -#: templates/js/translated/sales_order.js:1663 -#: templates/js/translated/sales_order.js:1742 +#: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1035 +#: templates/js/translated/build.js:1177 templates/js/translated/build.js:2551 +#: templates/js/translated/purchase_order.js:1193 +#: templates/js/translated/purchase_order.js:1303 +#: templates/js/translated/sales_order.js:1513 +#: templates/js/translated/sales_order.js:1636 +#: templates/js/translated/sales_order.js:1644 +#: templates/js/translated/sales_order.js:1723 #: templates/js/translated/stock.js:684 templates/js/translated/stock.js:850 -#: templates/js/translated/stock.js:1067 templates/js/translated/stock.js:2286 -#: templates/js/translated/stock.js:2955 +#: templates/js/translated/stock.js:1067 templates/js/translated/stock.js:2287 +#: templates/js/translated/stock.js:2956 msgid "Location" msgstr "Posizione" -#: build/serializers.py:316 +#: build/serializers.py:363 msgid "Stock location for build output" msgstr "" -#: build/serializers.py:330 +#: build/serializers.py:377 msgid "Auto Allocate Serial Numbers" msgstr "Numeri di Serie Assegnazione automatica" -#: build/serializers.py:331 +#: build/serializers.py:378 msgid "Automatically allocate required items with matching serial numbers" msgstr "Assegna automaticamente gli articoli richiesti con i numeri di serie corrispondenti" -#: build/serializers.py:346 -msgid "Serial numbers must be provided for trackable parts" -msgstr "" - -#: build/serializers.py:371 stock/api.py:1031 +#: build/serializers.py:415 order/serializers.py:858 stock/api.py:1017 +#: stock/models.py:1632 msgid "The following serial numbers already exist or are invalid" msgstr "I seguenti numeri di serie sono già esistenti o non sono validi" -#: build/serializers.py:418 build/serializers.py:480 build/serializers.py:569 +#: build/serializers.py:462 build/serializers.py:524 build/serializers.py:613 msgid "A list of build outputs must be provided" msgstr "Deve essere fornito un elenco dei risultati di produzione" -#: build/serializers.py:457 +#: build/serializers.py:501 msgid "Stock location for scrapped outputs" msgstr "" -#: build/serializers.py:463 +#: build/serializers.py:507 msgid "Discard Allocations" msgstr "" -#: build/serializers.py:464 +#: build/serializers.py:508 msgid "Discard any stock allocations for scrapped outputs" msgstr "" -#: build/serializers.py:469 +#: build/serializers.py:513 msgid "Reason for scrapping build output(s)" msgstr "" -#: build/serializers.py:529 +#: build/serializers.py:573 msgid "Location for completed build outputs" msgstr "Posizione per gli output di build completati" -#: build/serializers.py:535 build/templates/build/build_base.html:159 -#: build/templates/build/detail.html:62 order/models.py:476 -#: order/models.py:1002 order/models.py:2159 order/serializers.py:686 -#: stock/admin.py:164 stock/serializers.py:1028 stock/serializers.py:1569 -#: stock/templates/stock/item_base.html:427 -#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2363 -#: templates/js/translated/purchase_order.js:1371 -#: templates/js/translated/purchase_order.js:1792 +#: build/serializers.py:579 build/templates/build/build_base.html:160 +#: build/templates/build/detail.html:62 order/models.py:488 +#: order/models.py:1029 order/models.py:2198 order/serializers.py:771 +#: stock/admin.py:165 stock/serializers.py:581 stock/serializers.py:1059 +#: stock/serializers.py:1600 stock/templates/stock/item_base.html:424 +#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2366 +#: templates/js/translated/purchase_order.js:1354 +#: templates/js/translated/purchase_order.js:1776 #: templates/js/translated/return_order.js:330 -#: templates/js/translated/sales_order.js:855 -#: templates/js/translated/stock.js:2261 templates/js/translated/stock.js:3079 -#: templates/js/translated/stock.js:3204 +#: templates/js/translated/sales_order.js:814 +#: templates/js/translated/stock.js:2262 templates/js/translated/stock.js:3080 +#: templates/js/translated/stock.js:3205 msgid "Status" msgstr "Stato" -#: build/serializers.py:541 +#: build/serializers.py:585 msgid "Accept Incomplete Allocation" msgstr "Accetta Assegnazione Incompleta" -#: build/serializers.py:542 +#: build/serializers.py:586 msgid "Complete outputs if stock has not been fully allocated" msgstr "Completa l'output se le scorte non sono state interamente assegnate" -#: build/serializers.py:654 +#: build/serializers.py:698 msgid "Consume Allocated Stock" msgstr "" -#: build/serializers.py:655 +#: build/serializers.py:699 msgid "Consume any stock which has already been allocated to this build" msgstr "" -#: build/serializers.py:661 +#: build/serializers.py:705 msgid "Remove Incomplete Outputs" msgstr "Rimuovi Output Incompleti" -#: build/serializers.py:662 +#: build/serializers.py:706 msgid "Delete any build outputs which have not been completed" msgstr "Elimina gli output di produzione che non sono stati completati" -#: build/serializers.py:689 +#: build/serializers.py:733 msgid "Not permitted" msgstr "Non permesso" -#: build/serializers.py:690 +#: build/serializers.py:734 msgid "Accept as consumed by this build order" msgstr "Accetta come consumato da questo ordine di produzione" -#: build/serializers.py:691 +#: build/serializers.py:735 msgid "Deallocate before completing this build order" msgstr "Non assegnare prima di aver completato questo ordine di produzione" -#: build/serializers.py:721 +#: build/serializers.py:765 msgid "Overallocated Stock" msgstr "Giacenza in eccesso assegnata" -#: build/serializers.py:723 +#: build/serializers.py:767 msgid "How do you want to handle extra stock items assigned to the build order" msgstr "Come si desidera gestire gli elementi extra giacenza assegnati all'ordine di produzione" -#: build/serializers.py:733 +#: build/serializers.py:777 msgid "Some stock items have been overallocated" msgstr "Alcuni articoli di magazzino sono stati assegnati in eccedenza" -#: build/serializers.py:738 +#: build/serializers.py:782 msgid "Accept Unallocated" msgstr "Accetta Non Assegnato" -#: build/serializers.py:739 +#: build/serializers.py:783 msgid "Accept that stock items have not been fully allocated to this build order" msgstr "Accetta che gli elementi in giacenza non sono stati completamente assegnati a questo ordine di produzione" -#: build/serializers.py:749 templates/js/translated/build.js:316 +#: build/serializers.py:793 templates/js/translated/build.js:319 msgid "Required stock has not been fully allocated" msgstr "La giacenza richiesta non è stata completamente assegnata" -#: build/serializers.py:754 order/serializers.py:345 order/serializers.py:1365 +#: build/serializers.py:798 order/serializers.py:430 order/serializers.py:1491 msgid "Accept Incomplete" msgstr "Accetta Incompleta" -#: build/serializers.py:755 +#: build/serializers.py:799 msgid "Accept that the required number of build outputs have not been completed" msgstr "Accetta che il numero richiesto di output di produzione non sia stato completato" -#: build/serializers.py:765 templates/js/translated/build.js:320 +#: build/serializers.py:809 templates/js/translated/build.js:323 msgid "Required build quantity has not been completed" msgstr "La quantità di produzione richiesta non è stata completata" -#: build/serializers.py:774 +#: build/serializers.py:818 msgid "Build order has open child build orders" msgstr "" -#: build/serializers.py:777 +#: build/serializers.py:821 msgid "Build order must be in production state" msgstr "" -#: build/serializers.py:780 templates/js/translated/build.js:304 +#: build/serializers.py:824 templates/js/translated/build.js:307 msgid "Build order has incomplete outputs" msgstr "L'ordine di produzione ha output incompleti" -#: build/serializers.py:818 +#: build/serializers.py:862 msgid "Build Line" msgstr "Linea di produzione" -#: build/serializers.py:828 +#: build/serializers.py:872 msgid "Build output" msgstr "Genera Output" -#: build/serializers.py:836 +#: build/serializers.py:880 msgid "Build output must point to the same build" msgstr "L'output di produzione deve puntare alla stessa produzione" -#: build/serializers.py:872 +#: build/serializers.py:916 msgid "Build Line Item" msgstr "Articolo linea di produzione" -#: build/serializers.py:886 +#: build/serializers.py:930 msgid "bom_item.part must point to the same part as the build order" msgstr "gli elementi degli articoli della distinta base devono puntare alla stessa parte dell'ordine di produzione" -#: build/serializers.py:901 stock/serializers.py:1294 +#: build/serializers.py:945 stock/serializers.py:1325 msgid "Item must be in stock" msgstr "L'articolo deve essere disponibile" -#: build/serializers.py:949 order/serializers.py:1351 +#: build/serializers.py:993 order/serializers.py:1477 #, python-brace-format msgid "Available quantity ({q}) exceeded" msgstr "Quantità disponibile ({q}) superata" -#: build/serializers.py:955 +#: build/serializers.py:999 msgid "Build output must be specified for allocation of tracked parts" msgstr "L'output di produzione deve essere specificato per l'ubicazione delle parti tracciate" -#: build/serializers.py:962 +#: build/serializers.py:1006 msgid "Build output cannot be specified for allocation of untracked parts" msgstr "L'output di produzione non deve essere specificato per l'ubicazione delle parti non tracciate" -#: build/serializers.py:986 order/serializers.py:1610 +#: build/serializers.py:1030 order/serializers.py:1750 msgid "Allocation items must be provided" msgstr "Deve essere indicata l'allocazione dell'articolo" -#: build/serializers.py:1049 +#: build/serializers.py:1093 msgid "Stock location where parts are to be sourced (leave blank to take from any location)" msgstr "Posizione dello stock in cui le parti devono prelevate (lasciare vuoto per prelevare da qualsiasi luogo)" -#: build/serializers.py:1057 +#: build/serializers.py:1101 msgid "Exclude Location" msgstr "Escludi Ubicazione" -#: build/serializers.py:1058 +#: build/serializers.py:1102 msgid "Exclude stock items from this selected location" msgstr "Escludi gli elementi stock da questa ubicazione selezionata" -#: build/serializers.py:1063 +#: build/serializers.py:1107 msgid "Interchangeable Stock" msgstr "Scorte Intercambiabili" -#: build/serializers.py:1064 +#: build/serializers.py:1108 msgid "Stock items in multiple locations can be used interchangeably" msgstr "Gli elementi in magazzino in più sedi possono essere utilizzati in modo intercambiabile" -#: build/serializers.py:1069 +#: build/serializers.py:1113 msgid "Substitute Stock" msgstr "Sostituisci Giacenze" -#: build/serializers.py:1070 +#: build/serializers.py:1114 msgid "Allow allocation of substitute parts" msgstr "Consenti l'allocazione delle parti sostitutive" -#: build/serializers.py:1075 +#: build/serializers.py:1119 msgid "Optional Items" msgstr "Articoli Opzionali" -#: build/serializers.py:1076 +#: build/serializers.py:1120 msgid "Allocate optional BOM items to build order" msgstr "Assegna gli elementi opzionali della distinta base all'ordine di produzione" -#: build/serializers.py:1098 +#: build/serializers.py:1143 msgid "Failed to start auto-allocation task" msgstr "" -#: build/serializers.py:1181 +#: build/serializers.py:1226 stock/serializers.py:585 msgid "Supplier Part Number" msgstr "" -#: build/serializers.py:1182 company/models.py:506 +#: build/serializers.py:1227 company/models.py:503 stock/serializers.py:591 msgid "Manufacturer Part Number" msgstr "Codice articolo produttore" -#: build/serializers.py:1183 stock/admin.py:53 stock/admin.py:175 -#: stock/serializers.py:457 +#: build/serializers.py:1228 stock/admin.py:53 stock/admin.py:176 +#: stock/serializers.py:467 msgid "Location Name" msgstr "Nome Ubicazione" -#: build/serializers.py:1184 +#: build/serializers.py:1229 build/serializers.py:1327 msgid "Build Reference" msgstr "" -#: build/serializers.py:1185 +#: build/serializers.py:1230 msgid "BOM Reference" msgstr "" -#: build/serializers.py:1186 company/models.py:852 -#: company/templates/company/supplier_part.html:160 order/serializers.py:690 -#: stock/admin.py:228 stock/models.py:818 stock/serializers.py:1579 -#: stock/templates/stock/item_base.html:240 -#: templates/js/translated/company.js:1646 -#: templates/js/translated/purchase_order.js:1169 -#: templates/js/translated/purchase_order.js:1332 +#: build/serializers.py:1231 company/models.py:849 +#: company/templates/company/supplier_part.html:161 order/serializers.py:775 +#: stock/admin.py:229 stock/models.py:895 stock/serializers.py:1610 +#: stock/templates/stock/item_base.html:237 +#: templates/js/translated/company.js:1647 +#: templates/js/translated/purchase_order.js:1152 +#: templates/js/translated/purchase_order.js:1315 #: templates/js/translated/stock.js:1214 templates/js/translated/stock.js:1246 -#: templates/js/translated/stock.js:2509 +#: templates/js/translated/stock.js:2510 msgid "Packaging" msgstr "Confezionamento" -#: build/serializers.py:1189 part/admin.py:39 part/admin.py:398 -#: part/models.py:4101 part/stocktake.py:218 stock/admin.py:152 +#: build/serializers.py:1234 part/admin.py:39 part/admin.py:398 +#: part/models.py:4159 part/stocktake.py:218 stock/admin.py:153 msgid "Part ID" msgstr "Codice Articolo" -#: build/serializers.py:1191 build/serializers.py:1280 part/admin.py:402 -#: part/models.py:4103 +#: build/serializers.py:1236 build/serializers.py:1332 part/admin.py:402 +#: part/models.py:4161 msgid "Part IPN" msgstr "IPN Articolo" -#: build/serializers.py:1192 build/serializers.py:1282 part/admin.py:45 +#: build/serializers.py:1237 build/serializers.py:1334 part/admin.py:45 #: part/stocktake.py:220 msgid "Part Description" msgstr "Descrizione Articolo" -#: build/serializers.py:1195 +#: build/serializers.py:1240 msgid "BOM Part ID" msgstr "" -#: build/serializers.py:1196 +#: build/serializers.py:1241 msgid "BOM Part Name" msgstr "" -#: build/serializers.py:1199 +#: build/serializers.py:1244 #: report/templates/report/inventree_return_order_report.html:25 -#: report/templates/report/inventree_test_report.html:88 stock/models.py:845 -#: stock/serializers.py:151 stock/templates/stock/item_base.html:311 -#: templates/js/translated/build.js:520 templates/js/translated/build.js:1540 -#: templates/js/translated/build.js:2527 -#: templates/js/translated/model_renderers.js:231 +#: report/templates/report/inventree_sales_order_shipment_report.html:45 +#: report/templates/report/inventree_test_report.html:88 stock/models.py:922 +#: stock/serializers.py:152 stock/templates/stock/item_base.html:308 +#: templates/js/translated/build.js:523 templates/js/translated/build.js:1543 +#: templates/js/translated/build.js:2534 +#: templates/js/translated/model_renderers.js:234 #: templates/js/translated/return_order.js:539 #: templates/js/translated/return_order.js:722 -#: templates/js/translated/sales_order.js:315 -#: templates/js/translated/sales_order.js:1647 -#: templates/js/translated/sales_order.js:1732 +#: templates/js/translated/sales_order.js:1628 +#: templates/js/translated/sales_order.js:1713 #: templates/js/translated/stock.js:602 msgid "Serial Number" msgstr "Numero Seriale" -#: build/serializers.py:1212 stock/serializers.py:593 -#: templates/js/translated/build.js:1017 templates/js/translated/build.js:1164 -#: templates/js/translated/build.js:2516 +#: build/serializers.py:1257 stock/serializers.py:620 +#: templates/js/translated/build.js:1020 templates/js/translated/build.js:1167 +#: templates/js/translated/build.js:2523 msgid "Allocated Quantity" msgstr "" -#: build/serializers.py:1213 stock/templates/stock/item_base.html:340 +#: build/serializers.py:1258 stock/templates/stock/item_base.html:337 msgid "Available Quantity" msgstr "Quantità Disponibile" -#: build/serializers.py:1283 +#: build/serializers.py:1335 msgid "Part Category ID" msgstr "" -#: build/serializers.py:1284 +#: build/serializers.py:1336 msgid "Part Category Name" msgstr "" -#: build/serializers.py:1291 common/models.py:1513 part/admin.py:113 -#: part/models.py:1166 templates/js/translated/table_filters.js:150 +#: build/serializers.py:1345 common/models.py:1582 part/admin.py:113 +#: part/models.py:1227 templates/js/translated/build.js:2738 +#: templates/js/translated/table_filters.js:150 #: templates/js/translated/table_filters.js:230 #: templates/js/translated/table_filters.js:783 msgid "Trackable" msgstr "Tracciabile" -#: build/serializers.py:1292 +#: build/serializers.py:1346 msgid "Inherited" msgstr "" -#: build/serializers.py:1293 part/models.py:4313 +#: build/serializers.py:1347 part/models.py:4370 #: part/templates/part/upload_bom.html:56 templates/js/translated/bom.js:1046 -#: templates/js/translated/build.js:2711 +#: templates/js/translated/build.js:2720 msgid "Allow Variants" msgstr "Consenti Le Varianti" -#: build/serializers.py:1297 part/models.py:4110 part/models.py:4584 +#: build/serializers.py:1351 part/models.py:4168 part/models.py:4646 #: stock/api.py:794 msgid "BOM Item" msgstr "Distinta base (Bom)" -#: build/serializers.py:1306 build/templates/build/detail.html:236 +#: build/serializers.py:1370 build/templates/build/detail.html:236 #: build/templates/build/sidebar.html:16 templates/js/translated/index.js:130 msgid "Allocated Stock" msgstr "" -#: build/serializers.py:1311 order/serializers.py:1175 part/admin.py:132 -#: part/bom.py:181 part/serializers.py:899 part/serializers.py:1602 -#: part/templates/part/part_base.html:210 templates/js/translated/bom.js:1208 -#: templates/js/translated/build.js:2804 templates/js/translated/part.js:712 +#: build/serializers.py:1375 order/serializers.py:1209 part/admin.py:132 +#: part/bom.py:186 part/serializers.py:951 part/serializers.py:1660 +#: part/templates/part/part_base.html:211 templates/js/translated/bom.js:1208 +#: templates/js/translated/build.js:2822 templates/js/translated/part.js:712 #: templates/js/translated/part.js:2155 #: templates/js/translated/table_filters.js:177 msgid "On Order" msgstr "Ordinato" -#: build/serializers.py:1316 order/serializers.py:1176 part/serializers.py:1604 -#: templates/js/translated/build.js:2808 +#: build/serializers.py:1380 order/serializers.py:1210 part/serializers.py:1662 +#: templates/js/translated/build.js:2826 #: templates/js/translated/table_filters.js:367 msgid "In Production" msgstr "" -#: build/serializers.py:1321 part/bom.py:180 part/serializers.py:1629 -#: part/templates/part/part_base.html:192 -#: templates/js/translated/sales_order.js:1929 -msgid "Available Stock" -msgstr "Disponibilità in magazzino" - -#: build/serializers.py:1325 -msgid "Available Substitute Stock" -msgstr "" - -#: build/serializers.py:1326 -msgid "Available Variant Stock" -msgstr "" - -#: build/serializers.py:1327 -msgid "Total Available Stock" -msgstr "" - -#: build/serializers.py:1328 part/serializers.py:906 +#: build/serializers.py:1384 part/serializers.py:958 msgid "External Stock" msgstr "" -#: build/status_codes.py:11 generic/states/tests.py:17 order/status_codes.py:12 -#: order/status_codes.py:42 order/status_codes.py:74 order/status_codes.py:98 +#: build/serializers.py:1385 part/bom.py:185 part/serializers.py:1687 +#: part/templates/part/part_base.html:193 +#: templates/js/translated/sales_order.js:1910 +msgid "Available Stock" +msgstr "Disponibilità in magazzino" + +#: build/serializers.py:1386 +msgid "Available Substitute Stock" +msgstr "" + +#: build/serializers.py:1387 +msgid "Available Variant Stock" +msgstr "" + +#: build/status_codes.py:11 generic/states/tests.py:21 +#: generic/states/tests.py:131 order/status_codes.py:12 +#: order/status_codes.py:44 order/status_codes.py:76 order/status_codes.py:102 #: templates/js/translated/table_filters.js:601 msgid "Pending" msgstr "In attesa" @@ -1722,21 +1750,21 @@ msgstr "In attesa" msgid "Production" msgstr "Produzione" -#: build/status_codes.py:13 order/status_codes.py:14 order/status_codes.py:49 -#: order/status_codes.py:79 +#: build/status_codes.py:13 order/status_codes.py:14 order/status_codes.py:51 +#: order/status_codes.py:81 msgid "On Hold" msgstr "" -#: build/status_codes.py:14 order/status_codes.py:16 order/status_codes.py:51 -#: order/status_codes.py:82 +#: build/status_codes.py:14 order/status_codes.py:16 order/status_codes.py:53 +#: order/status_codes.py:84 msgid "Cancelled" msgstr "Annullato" -#: build/status_codes.py:15 generic/states/tests.py:19 importer/models.py:509 -#: importer/status_codes.py:19 order/status_codes.py:15 -#: order/status_codes.py:50 order/status_codes.py:81 -#: order/templates/order/order_base.html:163 -#: order/templates/order/sales_order_base.html:168 report/models.py:443 +#: build/status_codes.py:15 generic/states/tests.py:23 importer/models.py:518 +#: importer/status_codes.py:27 order/status_codes.py:15 +#: order/status_codes.py:52 order/status_codes.py:83 +#: order/templates/order/order_base.html:172 +#: order/templates/order/sales_order_base.html:169 report/models.py:451 msgid "Complete" msgstr "Completo" @@ -1744,165 +1772,162 @@ msgstr "Completo" msgid "Stock required for build order" msgstr "Giacenza richiesta per l'ordine di produzione" -#: build/tasks.py:201 +#: build/tasks.py:260 msgid "Overdue Build Order" msgstr "Ordine di produzione in ritardo" -#: build/tasks.py:206 +#: build/tasks.py:265 #, python-brace-format msgid "Build order {bo} is now overdue" msgstr "L'ordine di produzione {bo} è in ritardo" -#: build/templates/build/build_base.html:18 +#: build/templates/build/build_base.html:19 msgid "Part thumbnail" msgstr "Anteprima parte" -#: build/templates/build/build_base.html:38 -#: company/templates/company/supplier_part.html:35 -#: order/templates/order/order_base.html:29 -#: order/templates/order/return_order_base.html:38 -#: order/templates/order/sales_order_base.html:38 -#: part/templates/part/part_base.html:41 -#: stock/templates/stock/item_base.html:40 -#: stock/templates/stock/location.html:52 +#: build/templates/build/build_base.html:39 +#: company/templates/company/supplier_part.html:36 +#: order/templates/order/order_base.html:30 +#: order/templates/order/return_order_base.html:39 +#: order/templates/order/sales_order_base.html:39 +#: part/templates/part/part_base.html:42 +#: stock/templates/stock/item_base.html:41 +#: stock/templates/stock/location.html:53 #: templates/js/translated/filters.js:338 msgid "Barcode actions" msgstr "Azioni Barcode" -#: build/templates/build/build_base.html:42 -#: company/templates/company/supplier_part.html:39 -#: order/templates/order/order_base.html:33 -#: order/templates/order/return_order_base.html:42 -#: order/templates/order/sales_order_base.html:42 -#: part/templates/part/part_base.html:44 -#: stock/templates/stock/item_base.html:44 -#: stock/templates/stock/location.html:54 templates/qr_button.html:1 +#: build/templates/build/build_base.html:43 +#: company/templates/company/supplier_part.html:40 +#: order/templates/order/order_base.html:34 +#: order/templates/order/return_order_base.html:43 +#: order/templates/order/sales_order_base.html:43 +#: part/templates/part/part_base.html:45 +#: stock/templates/stock/item_base.html:45 +#: stock/templates/stock/location.html:55 templates/qr_button.html:1 msgid "Show QR Code" msgstr "Mostra QR Code" -#: build/templates/build/build_base.html:45 -#: company/templates/company/supplier_part.html:41 -#: order/templates/order/order_base.html:36 -#: order/templates/order/return_order_base.html:45 -#: order/templates/order/sales_order_base.html:45 -#: part/templates/part/part_base.html:47 -#: stock/templates/stock/item_base.html:47 -#: stock/templates/stock/location.html:56 +#: build/templates/build/build_base.html:46 +#: company/templates/company/supplier_part.html:42 +#: order/templates/order/order_base.html:37 +#: order/templates/order/return_order_base.html:46 +#: order/templates/order/sales_order_base.html:46 +#: part/templates/part/part_base.html:48 +#: stock/templates/stock/item_base.html:48 +#: stock/templates/stock/location.html:57 #: templates/js/translated/barcode.js:527 #: templates/js/translated/barcode.js:532 msgid "Unlink Barcode" msgstr "Scollega Codice a Barre" -#: build/templates/build/build_base.html:47 -#: company/templates/company/supplier_part.html:43 -#: order/templates/order/order_base.html:38 -#: order/templates/order/return_order_base.html:47 -#: order/templates/order/sales_order_base.html:47 -#: part/templates/part/part_base.html:49 -#: stock/templates/stock/item_base.html:49 -#: stock/templates/stock/location.html:58 +#: build/templates/build/build_base.html:48 +#: company/templates/company/supplier_part.html:44 +#: order/templates/order/order_base.html:39 +#: order/templates/order/return_order_base.html:48 +#: order/templates/order/sales_order_base.html:48 +#: part/templates/part/part_base.html:50 +#: stock/templates/stock/item_base.html:50 +#: stock/templates/stock/location.html:59 msgid "Link Barcode" msgstr "Collega Codice a Barre" -#: build/templates/build/build_base.html:56 -#: order/templates/order/order_base.html:46 -#: order/templates/order/return_order_base.html:55 -#: order/templates/order/sales_order_base.html:55 +#: build/templates/build/build_base.html:57 +#: order/templates/order/order_base.html:47 +#: order/templates/order/return_order_base.html:56 +#: order/templates/order/sales_order_base.html:56 msgid "Print actions" msgstr "Azioni di stampa" -#: build/templates/build/build_base.html:60 +#: build/templates/build/build_base.html:61 msgid "Print build order report" msgstr "Stampa report ordine di produzione" -#: build/templates/build/build_base.html:67 +#: build/templates/build/build_base.html:68 msgid "Build actions" msgstr "Azioni Produzione" -#: build/templates/build/build_base.html:71 +#: build/templates/build/build_base.html:72 msgid "Edit Build" msgstr "Modica Produzione" -#: build/templates/build/build_base.html:73 +#: build/templates/build/build_base.html:74 msgid "Duplicate Build" msgstr "Duplica Produzione" -#: build/templates/build/build_base.html:76 +#: build/templates/build/build_base.html:77 msgid "Hold Build" msgstr "" -#: build/templates/build/build_base.html:79 +#: build/templates/build/build_base.html:80 msgid "Cancel Build" msgstr "Annulla Produzione" -#: build/templates/build/build_base.html:82 +#: build/templates/build/build_base.html:83 msgid "Delete Build" msgstr "Elimina Produzione" -#: build/templates/build/build_base.html:87 -msgid "Isueue Build" -msgstr "" - #: build/templates/build/build_base.html:88 +#: build/templates/build/build_base.html:89 msgid "Issue Build" msgstr "" -#: build/templates/build/build_base.html:91 #: build/templates/build/build_base.html:92 +#: build/templates/build/build_base.html:93 msgid "Complete Build" msgstr "Completa Produzione" -#: build/templates/build/build_base.html:115 +#: build/templates/build/build_base.html:116 msgid "Build Description" msgstr "Descrizione Produzione" -#: build/templates/build/build_base.html:125 +#: build/templates/build/build_base.html:126 msgid "No build outputs have been created for this build order" msgstr "Nessun output di produzione è stato creato per questo ordine di produzione" -#: build/templates/build/build_base.html:132 +#: build/templates/build/build_base.html:133 msgid "Build Order is ready to mark as completed" msgstr "L'ordine di produzione è pronto per essere contrassegnato come completato" -#: build/templates/build/build_base.html:137 +#: build/templates/build/build_base.html:138 msgid "Build Order cannot be completed as outstanding outputs remain" msgstr "L'ordine di produzione non può essere completato poiché gli output rimangono in sospeso" -#: build/templates/build/build_base.html:142 +#: build/templates/build/build_base.html:143 msgid "Required build quantity has not yet been completed" msgstr "La quantità di produzione richiesta non è stata completata" -#: build/templates/build/build_base.html:147 +#: build/templates/build/build_base.html:148 msgid "Stock has not been fully allocated to this Build Order" msgstr "Lo stock non è stato completamente assegnato a questo ordine di produzione" -#: build/templates/build/build_base.html:168 -#: build/templates/build/detail.html:138 order/models.py:308 -#: order/models.py:1391 order/serializers.py:174 -#: order/templates/order/order_base.html:191 -#: order/templates/order/return_order_base.html:167 -#: order/templates/order/sales_order_base.html:199 +#: build/templates/build/build_base.html:169 +#: build/templates/build/detail.html:138 order/models.py:315 +#: order/models.py:1408 order/serializers.py:254 +#: order/templates/order/order_base.html:200 +#: order/templates/order/return_order_base.html:168 +#: order/templates/order/sales_order_base.html:200 #: report/templates/report/inventree_build_order_report.html:125 -#: templates/js/translated/build.js:2411 templates/js/translated/part.js:1837 -#: templates/js/translated/purchase_order.js:1809 -#: templates/js/translated/purchase_order.js:2217 +#: templates/js/translated/build.js:2414 templates/js/translated/part.js:1837 +#: templates/js/translated/purchase_order.js:1793 +#: templates/js/translated/purchase_order.js:2201 #: templates/js/translated/return_order.js:346 #: templates/js/translated/return_order.js:749 -#: templates/js/translated/sales_order.js:871 -#: templates/js/translated/sales_order.js:1903 +#: templates/js/translated/sales_order.js:830 +#: templates/js/translated/sales_order.js:1884 msgid "Target Date" msgstr "Data scadenza" -#: build/templates/build/build_base.html:173 +#: build/templates/build/build_base.html:174 #, python-format msgid "This build was due on %(target)s" msgstr "Questa produzione era in scadenza il %(target)s" -#: build/templates/build/build_base.html:173 -#: build/templates/build/build_base.html:230 -#: order/templates/order/order_base.html:127 -#: order/templates/order/return_order_base.html:120 -#: order/templates/order/sales_order_base.html:129 +#: build/templates/build/build_base.html:174 +#: build/templates/build/build_base.html:231 +#: order/templates/order/order_base.html:128 +#: order/templates/order/return_order_base.html:121 +#: order/templates/order/sales_order_base.html:130 #: templates/js/translated/table_filters.js:97 #: templates/js/translated/table_filters.js:545 #: templates/js/translated/table_filters.js:629 @@ -1910,49 +1935,50 @@ msgstr "Questa produzione era in scadenza il %(target)s" msgid "Overdue" msgstr "In ritardo" -#: build/templates/build/build_base.html:185 +#: build/templates/build/build_base.html:186 #: build/templates/build/detail.html:67 build/templates/build/sidebar.html:13 msgid "Completed Outputs" msgstr "Outputs Completati" -#: build/templates/build/build_base.html:198 -#: build/templates/build/detail.html:101 order/api.py:1406 order/models.py:892 -#: order/models.py:1650 order/models.py:1765 order/models.py:1924 -#: order/templates/order/sales_order_base.html:9 -#: order/templates/order/sales_order_base.html:28 +#: build/templates/build/build_base.html:199 +#: build/templates/build/detail.html:101 order/api.py:1528 order/models.py:914 +#: order/models.py:1666 order/models.py:1794 order/models.py:1957 +#: order/templates/order/sales_order_base.html:10 +#: order/templates/order/sales_order_base.html:29 #: report/templates/report/inventree_build_order_report.html:135 #: report/templates/report/inventree_sales_order_report.html:14 -#: stock/templates/stock/item_base.html:369 +#: report/templates/report/inventree_sales_order_shipment_report.html:15 +#: stock/templates/stock/item_base.html:366 #: templates/email/overdue_sales_order.html:15 -#: templates/js/translated/pricing.js:929 -#: templates/js/translated/sales_order.js:805 -#: templates/js/translated/sales_order.js:1028 -#: templates/js/translated/stock.js:3008 +#: templates/js/translated/pricing.js:927 +#: templates/js/translated/sales_order.js:764 +#: templates/js/translated/sales_order.js:1001 +#: templates/js/translated/stock.js:3009 msgid "Sales Order" msgstr "Ordini di Vendita" -#: build/templates/build/build_base.html:219 -#: build/templates/build/detail.html:94 templates/js/translated/build.js:2328 +#: build/templates/build/build_base.html:220 +#: build/templates/build/detail.html:94 templates/js/translated/build.js:2331 msgid "Priority" msgstr "Priorità" -#: build/templates/build/build_base.html:267 +#: build/templates/build/build_base.html:268 msgid "Issue Build Order" msgstr "" -#: build/templates/build/build_base.html:271 +#: build/templates/build/build_base.html:272 msgid "Issue this Build Order?" msgstr "" -#: build/templates/build/build_base.html:302 +#: build/templates/build/build_base.html:303 msgid "Delete Build Order" msgstr "Elimina ordine di produzione" -#: build/templates/build/build_base.html:312 +#: build/templates/build/build_base.html:313 msgid "Build Order QR Code" msgstr "Genera Codice QR Ordine di produzione" -#: build/templates/build/build_base.html:324 +#: build/templates/build/build_base.html:325 msgid "Link Barcode to Build Order" msgstr "Collega il codice a barre all'ordine di produzione" @@ -1968,8 +1994,9 @@ msgstr "Risorse di magazzino" msgid "Stock can be taken from any available location." msgstr "Lo stock può essere prelevato da qualsiasi posizione disponibile." -#: build/templates/build/detail.html:49 order/models.py:1532 -#: templates/js/translated/purchase_order.js:2259 +#: build/templates/build/detail.html:49 order/models.py:548 +#: order/models.py:1548 order/templates/order/order_base.html:135 +#: templates/js/translated/purchase_order.js:2243 msgid "Destination" msgstr "Destinazione" @@ -1981,23 +2008,24 @@ msgstr "Posizione di destinazione non specificata" msgid "Allocated Parts" msgstr "Articoli Assegnati" -#: build/templates/build/detail.html:80 stock/admin.py:162 -#: stock/templates/stock/item_base.html:162 -#: templates/js/translated/build.js:1553 -#: templates/js/translated/model_renderers.js:242 -#: templates/js/translated/purchase_order.js:1326 +#: build/templates/build/detail.html:80 +#: report/templates/report/inventree_sales_order_shipment_report.html:47 +#: stock/admin.py:163 stock/templates/stock/item_base.html:159 +#: templates/js/translated/build.js:1556 +#: templates/js/translated/model_renderers.js:245 +#: templates/js/translated/purchase_order.js:1309 #: templates/js/translated/stock.js:1139 templates/js/translated/stock.js:1240 -#: templates/js/translated/stock.js:2275 templates/js/translated/stock.js:3211 +#: templates/js/translated/stock.js:2276 templates/js/translated/stock.js:3212 #: templates/js/translated/table_filters.js:320 #: templates/js/translated/table_filters.js:411 msgid "Batch" msgstr "Lotto" #: build/templates/build/detail.html:133 -#: order/templates/order/order_base.html:178 -#: order/templates/order/return_order_base.html:154 -#: order/templates/order/sales_order_base.html:193 -#: templates/js/translated/build.js:2371 +#: order/templates/order/order_base.html:187 +#: order/templates/order/return_order_base.html:155 +#: order/templates/order/sales_order_base.html:194 +#: templates/js/translated/build.js:2374 msgid "Created" msgstr "Creato" @@ -2005,8 +2033,8 @@ msgstr "Creato" msgid "No target date set" msgstr "Nessuna data di destinazione impostata" -#: build/templates/build/detail.html:149 -#: order/templates/order/sales_order_base.html:209 +#: build/templates/build/detail.html:149 order/api.py:794 +#: order/templates/order/sales_order_base.html:210 #: templates/js/translated/table_filters.js:692 msgid "Completed" msgstr "Completato" @@ -2052,7 +2080,7 @@ msgid "Order required parts" msgstr "Ordina articoli richiesti" #: build/templates/build/detail.html:192 -#: templates/js/translated/purchase_order.js:795 +#: templates/js/translated/purchase_order.js:778 msgid "Order Parts" msgstr "Ordine Articoli" @@ -2120,7 +2148,7 @@ msgstr "Nuovo Ordine di Produzione" msgid "Build Order Details" msgstr "Dettagli Ordine di Produzione" -#: build/templates/build/sidebar.html:8 order/serializers.py:82 +#: build/templates/build/sidebar.html:8 order/serializers.py:113 #: order/templates/order/po_sidebar.html:5 #: order/templates/order/return_order_detail.html:18 #: order/templates/order/so_sidebar.html:5 @@ -2139,43 +2167,38 @@ msgstr "Output Incompleti" msgid "Test Statistics" msgstr "" -#: common/api.py:693 +#: common/api.py:725 msgid "Is Link" msgstr "" -#: common/api.py:701 +#: common/api.py:733 msgid "Is File" msgstr "" -#: common/api.py:744 +#: common/api.py:776 msgid "User does not have permission to delete these attachments" msgstr "" -#: common/api.py:761 +#: common/api.py:793 msgid "User does not have permission to delete this attachment" msgstr "" -#: common/currency.py:132 +#: common/currency.py:134 msgid "Invalid currency code" msgstr "" -#: common/currency.py:134 +#: common/currency.py:136 msgid "Duplicate currency code" msgstr "" -#: common/currency.py:139 +#: common/currency.py:141 msgid "No valid currency codes provided" msgstr "" -#: common/currency.py:156 +#: common/currency.py:158 msgid "No plugin" msgstr "" -#: common/files.py:63 -#, python-brace-format -msgid "Unsupported file format: {fmt}" -msgstr "Formato di file non supportato: {fmt}" - #: common/files.py:65 msgid "Error reading file (invalid encoding)" msgstr "Errore nella lettura del file (codifica non valida)" @@ -2192,1883 +2215,2039 @@ msgstr "Errore nella lettura del file (dimensione errata)" msgid "Error reading file (data could be corrupted)" msgstr "Errore di lettura del file (i dati potrebbero essere danneggiati)" -#: common/forms.py:12 +#: common/forms.py:12 common/forms.py:25 msgid "File" msgstr "" -#: common/forms.py:12 +#: common/forms.py:12 common/forms.py:26 msgid "Select file to upload" msgstr "Seleziona file da caricare" -#: common/forms.py:25 -msgid "{name.title()} File" -msgstr "" - -#: common/forms.py:26 -#, python-brace-format -msgid "Select {name} file to upload" -msgstr "Seleziona il file {name} da caricare" - -#: common/models.py:86 +#: common/models.py:89 msgid "Updated" msgstr "Aggiornato" -#: common/models.py:87 +#: common/models.py:90 msgid "Timestamp of last update" msgstr "Orario dell'ultimo aggiornamento" -#: common/models.py:120 +#: common/models.py:123 msgid "Site URL is locked by configuration" msgstr "" -#: common/models.py:150 +#: common/models.py:153 msgid "Unique project code" msgstr "Codice unico del progetto" -#: common/models.py:157 +#: common/models.py:160 msgid "Project description" msgstr "Descrizione del progetto" -#: common/models.py:166 +#: common/models.py:169 msgid "User or group responsible for this project" msgstr "" -#: common/models.py:783 -msgid "Settings key (must be unique - case insensitive)" -msgstr "Tasto impostazioni (deve essere univoco - maiuscole e minuscole)" +#: common/models.py:783 common/models.py:2236 common/models.py:2613 +msgid "Settings key" +msgstr "" #: common/models.py:787 msgid "Settings value" msgstr "Valore impostazioni" -#: common/models.py:839 +#: common/models.py:842 msgid "Chosen value is not a valid option" msgstr "Il valore specificato non è un opzione valida" -#: common/models.py:855 +#: common/models.py:858 msgid "Value must be a boolean value" msgstr "Il valore deve essere un valore booleano" -#: common/models.py:863 +#: common/models.py:866 msgid "Value must be an integer value" msgstr "Il valore deve essere un intero" -#: common/models.py:900 +#: common/models.py:874 +msgid "Value must be a valid number" +msgstr "" + +#: common/models.py:899 +msgid "Value does not pass validation checks" +msgstr "" + +#: common/models.py:921 msgid "Key string must be unique" msgstr "La stringa chiave deve essere univoca" -#: common/models.py:1132 +#: common/models.py:1189 msgid "No group" msgstr "Nessun gruppo" -#: common/models.py:1231 +#: common/models.py:1288 msgid "Restart required" msgstr "Riavvio richiesto" -#: common/models.py:1233 +#: common/models.py:1290 msgid "A setting has been changed which requires a server restart" msgstr "È stata modificata un'impostazione che richiede un riavvio del server" -#: common/models.py:1240 +#: common/models.py:1297 msgid "Pending migrations" msgstr "" -#: common/models.py:1241 +#: common/models.py:1298 msgid "Number of pending database migrations" msgstr "" -#: common/models.py:1246 +#: common/models.py:1303 msgid "Server Instance Name" msgstr "Nome Istanza Del Server" -#: common/models.py:1248 +#: common/models.py:1305 msgid "String descriptor for the server instance" msgstr "Descrittore stringa per l'istanza del server" -#: common/models.py:1252 +#: common/models.py:1309 msgid "Use instance name" msgstr "Utilizza nome istanza" -#: common/models.py:1253 +#: common/models.py:1310 msgid "Use the instance name in the title-bar" msgstr "Usa il nome dell'istanza nella barra del titolo" -#: common/models.py:1258 +#: common/models.py:1315 msgid "Restrict showing `about`" msgstr "Limita visualizzazione `Informazioni`" -#: common/models.py:1259 +#: common/models.py:1316 msgid "Show the `about` modal only to superusers" msgstr "Mostra la modalità `Informazioni` solo ai superusers" -#: common/models.py:1264 company/models.py:111 company/models.py:112 +#: common/models.py:1321 company/models.py:108 company/models.py:109 msgid "Company name" msgstr "Nome azienda" -#: common/models.py:1265 +#: common/models.py:1322 msgid "Internal company name" msgstr "Nome interno dell'azienda" -#: common/models.py:1269 +#: common/models.py:1326 msgid "Base URL" msgstr "URL Base" -#: common/models.py:1270 +#: common/models.py:1327 msgid "Base URL for server instance" msgstr "URL di base per l'istanza del server" -#: common/models.py:1276 +#: common/models.py:1333 msgid "Default Currency" msgstr "Valuta predefinita" -#: common/models.py:1277 +#: common/models.py:1334 msgid "Select base currency for pricing calculations" msgstr "" -#: common/models.py:1283 +#: common/models.py:1340 msgid "Supported Currencies" msgstr "" -#: common/models.py:1284 +#: common/models.py:1341 msgid "List of supported currency codes" msgstr "" -#: common/models.py:1290 +#: common/models.py:1347 msgid "Currency Update Interval" msgstr "" -#: common/models.py:1292 +#: common/models.py:1349 msgid "How often to update exchange rates (set to zero to disable)" msgstr "" -#: common/models.py:1295 common/models.py:1351 common/models.py:1364 -#: common/models.py:1372 common/models.py:1381 common/models.py:1390 -#: common/models.py:1627 common/models.py:1649 common/models.py:1764 -#: common/models.py:2146 +#: common/models.py:1352 common/models.py:1408 common/models.py:1421 +#: common/models.py:1429 common/models.py:1438 common/models.py:1447 +#: common/models.py:1696 common/models.py:1718 common/models.py:1819 +#: common/models.py:2208 msgid "days" msgstr "giorni" -#: common/models.py:1299 +#: common/models.py:1356 msgid "Currency Update Plugin" msgstr "" -#: common/models.py:1300 +#: common/models.py:1357 msgid "Currency update plugin to use" msgstr "" -#: common/models.py:1305 +#: common/models.py:1362 msgid "Download from URL" msgstr "Scarica dall'URL" -#: common/models.py:1307 +#: common/models.py:1364 msgid "Allow download of remote images and files from external URL" msgstr "Consenti il download di immagini e file remoti da URL esterno" -#: common/models.py:1313 +#: common/models.py:1370 msgid "Download Size Limit" msgstr "Limite Dimensione Download" -#: common/models.py:1314 +#: common/models.py:1371 msgid "Maximum allowable download size for remote image" msgstr "Dimensione massima consentita per il download dell'immagine remota" -#: common/models.py:1320 +#: common/models.py:1377 msgid "User-agent used to download from URL" msgstr "User-agent utilizzato per scaricare dall'URL" -#: common/models.py:1322 +#: common/models.py:1379 msgid "Allow to override the user-agent used to download images and files from external URL (leave blank for the default)" msgstr "Consenti di sovrascrivere l'user-agent utilizzato per scaricare immagini e file da URL esterno (lasciare vuoto per il predefinito)" -#: common/models.py:1327 +#: common/models.py:1384 msgid "Strict URL Validation" msgstr "" -#: common/models.py:1328 +#: common/models.py:1385 msgid "Require schema specification when validating URLs" msgstr "" -#: common/models.py:1333 +#: common/models.py:1390 msgid "Require confirm" msgstr "Richiesta conferma" -#: common/models.py:1334 +#: common/models.py:1391 msgid "Require explicit user confirmation for certain action." msgstr "Richiede una conferma esplicita dell'utente per una determinata azione." -#: common/models.py:1339 +#: common/models.py:1396 msgid "Tree Depth" msgstr "Profondità livelli" -#: common/models.py:1341 +#: common/models.py:1398 msgid "Default tree depth for treeview. Deeper levels can be lazy loaded as they are needed." msgstr "Profondità predefinita per la visualizzazione ad albero. I livelli più in alto possono essere caricati più lentamente quando necessari." -#: common/models.py:1347 +#: common/models.py:1404 msgid "Update Check Interval" msgstr "Aggiorna intervallo di controllo" -#: common/models.py:1348 +#: common/models.py:1405 msgid "How often to check for updates (set to zero to disable)" msgstr "Quanto spesso controllare gli aggiornamenti (impostare a zero per disabilitare)" -#: common/models.py:1354 +#: common/models.py:1411 msgid "Automatic Backup" msgstr "Backup automatico" -#: common/models.py:1355 +#: common/models.py:1412 msgid "Enable automatic backup of database and media files" msgstr "Abilita il backup automatico di database e file multimediali" -#: common/models.py:1360 +#: common/models.py:1417 msgid "Auto Backup Interval" msgstr "Intervallo Di Backup Automatico" -#: common/models.py:1361 +#: common/models.py:1418 msgid "Specify number of days between automated backup events" msgstr "Definisci i giorni intercorrenti tra un backup automatico e l'altro" -#: common/models.py:1367 +#: common/models.py:1424 msgid "Task Deletion Interval" msgstr "" -#: common/models.py:1369 +#: common/models.py:1426 msgid "Background task results will be deleted after specified number of days" msgstr "I risultati delle attività in background verranno eliminati dopo un determinato numero di giorni" -#: common/models.py:1376 +#: common/models.py:1433 msgid "Error Log Deletion Interval" msgstr "" -#: common/models.py:1378 +#: common/models.py:1435 msgid "Error logs will be deleted after specified number of days" msgstr "I log di errore verranno eliminati dopo il numero specificato di giorni" -#: common/models.py:1385 +#: common/models.py:1442 msgid "Notification Deletion Interval" msgstr "" -#: common/models.py:1387 +#: common/models.py:1444 msgid "User notifications will be deleted after specified number of days" msgstr "Le notifiche dell'utente verranno eliminate dopo il numero di giorni specificato" -#: common/models.py:1394 templates/InvenTree/settings/sidebar.html:31 +#: common/models.py:1451 templates/InvenTree/settings/sidebar.html:31 msgid "Barcode Support" msgstr "Supporto Codice A Barre" -#: common/models.py:1395 +#: common/models.py:1452 msgid "Enable barcode scanner support in the web interface" msgstr "" -#: common/models.py:1400 +#: common/models.py:1457 +msgid "Store Barcode Results" +msgstr "" + +#: common/models.py:1458 +msgid "Store barcode scan results in the database" +msgstr "" + +#: common/models.py:1463 +msgid "Barcode Scans Maximum Count" +msgstr "" + +#: common/models.py:1464 +msgid "Maximum number of barcode scan results to store" +msgstr "" + +#: common/models.py:1469 msgid "Barcode Input Delay" msgstr "Codice a barre inserito scaduto" -#: common/models.py:1401 +#: common/models.py:1470 msgid "Barcode input processing delay time" msgstr "Tempo di ritardo di elaborazione codice a barre" -#: common/models.py:1407 +#: common/models.py:1476 msgid "Barcode Webcam Support" msgstr "Codice a Barre Supporto Webcam" -#: common/models.py:1408 +#: common/models.py:1477 msgid "Allow barcode scanning via webcam in browser" msgstr "Consenti la scansione del codice a barre tramite webcam nel browser" -#: common/models.py:1413 +#: common/models.py:1482 msgid "Barcode Show Data" msgstr "" -#: common/models.py:1414 +#: common/models.py:1483 msgid "Display barcode data in browser as text" msgstr "" -#: common/models.py:1419 +#: common/models.py:1488 msgid "Barcode Generation Plugin" msgstr "" -#: common/models.py:1420 +#: common/models.py:1489 msgid "Plugin to use for internal barcode data generation" msgstr "" -#: common/models.py:1425 +#: common/models.py:1494 msgid "Part Revisions" msgstr "" -#: common/models.py:1426 +#: common/models.py:1495 msgid "Enable revision field for Part" msgstr "Abilita il campo revisione per l'articolo" -#: common/models.py:1431 +#: common/models.py:1500 msgid "Assembly Revision Only" msgstr "" -#: common/models.py:1432 +#: common/models.py:1501 msgid "Only allow revisions for assembly parts" msgstr "" -#: common/models.py:1437 +#: common/models.py:1506 msgid "Allow Deletion from Assembly" msgstr "" -#: common/models.py:1438 +#: common/models.py:1507 msgid "Allow deletion of parts which are used in an assembly" msgstr "" -#: common/models.py:1443 +#: common/models.py:1512 msgid "IPN Regex" msgstr "" -#: common/models.py:1444 +#: common/models.py:1513 msgid "Regular expression pattern for matching Part IPN" msgstr "Schema di espressione regolare per l'articolo corrispondente IPN" -#: common/models.py:1447 +#: common/models.py:1516 msgid "Allow Duplicate IPN" msgstr "Consenti duplicati IPN" -#: common/models.py:1448 +#: common/models.py:1517 msgid "Allow multiple parts to share the same IPN" msgstr "Permetti a più articoli di condividere lo stesso IPN" -#: common/models.py:1453 +#: common/models.py:1522 msgid "Allow Editing IPN" msgstr "Permetti modifiche al part number interno (IPN)" -#: common/models.py:1454 +#: common/models.py:1523 msgid "Allow changing the IPN value while editing a part" msgstr "Consenti di modificare il valore del part number durante la modifica di un articolo" -#: common/models.py:1459 +#: common/models.py:1528 msgid "Copy Part BOM Data" msgstr "Copia I Dati Della distinta base dell'articolo" -#: common/models.py:1460 +#: common/models.py:1529 msgid "Copy BOM data by default when duplicating a part" msgstr "Copia i dati della Distinta Base predefinita quando duplichi un articolo" -#: common/models.py:1465 +#: common/models.py:1534 msgid "Copy Part Parameter Data" msgstr "Copia I Dati Parametro dell'articolo" -#: common/models.py:1466 +#: common/models.py:1535 msgid "Copy parameter data by default when duplicating a part" msgstr "Copia i dati dei parametri di default quando si duplica un articolo" -#: common/models.py:1471 +#: common/models.py:1540 msgid "Copy Part Test Data" msgstr "Copia I Dati dell'Articolo Test" -#: common/models.py:1472 +#: common/models.py:1541 msgid "Copy test data by default when duplicating a part" msgstr "Copia i dati di prova di default quando si duplica un articolo" -#: common/models.py:1477 +#: common/models.py:1546 msgid "Copy Category Parameter Templates" msgstr "Copia Template Parametri Categoria" -#: common/models.py:1478 +#: common/models.py:1547 msgid "Copy category parameter templates when creating a part" msgstr "Copia i modelli dei parametri categoria quando si crea un articolo" -#: common/models.py:1483 part/admin.py:108 part/models.py:3945 -#: report/models.py:293 report/models.py:360 report/serializers.py:90 -#: report/serializers.py:131 stock/serializers.py:232 +#: common/models.py:1552 part/admin.py:108 part/models.py:4003 +#: report/models.py:301 report/models.py:368 report/serializers.py:91 +#: report/serializers.py:132 stock/serializers.py:233 #: templates/js/translated/table_filters.js:138 #: templates/js/translated/table_filters.js:775 msgid "Template" msgstr "Modello" -#: common/models.py:1484 +#: common/models.py:1553 msgid "Parts are templates by default" msgstr "Gli articoli sono modelli per impostazione predefinita" -#: common/models.py:1490 +#: common/models.py:1559 msgid "Parts can be assembled from other components by default" msgstr "Gli articoli possono essere assemblate da altri componenti per impostazione predefinita" -#: common/models.py:1495 part/admin.py:95 part/models.py:1160 -#: part/serializers.py:1596 templates/js/translated/table_filters.js:737 +#: common/models.py:1564 part/admin.py:95 part/models.py:1221 +#: part/serializers.py:1654 templates/js/translated/table_filters.js:737 msgid "Component" msgstr "Componente" -#: common/models.py:1496 +#: common/models.py:1565 msgid "Parts can be used as sub-components by default" msgstr "Gli articoli possono essere assemblati da altri componenti per impostazione predefinita" -#: common/models.py:1501 part/admin.py:100 part/models.py:1178 +#: common/models.py:1570 part/admin.py:100 part/models.py:1239 msgid "Purchaseable" msgstr "Acquistabile" -#: common/models.py:1502 +#: common/models.py:1571 msgid "Parts are purchaseable by default" msgstr "Gli articoli sono acquistabili per impostazione predefinita" -#: common/models.py:1507 part/admin.py:104 part/models.py:1184 +#: common/models.py:1576 part/admin.py:104 part/models.py:1245 #: templates/js/translated/table_filters.js:763 msgid "Salable" msgstr "Vendibile" -#: common/models.py:1508 +#: common/models.py:1577 msgid "Parts are salable by default" msgstr "Gli articoli sono acquistabili per impostazione predefinita" -#: common/models.py:1514 +#: common/models.py:1583 msgid "Parts are trackable by default" msgstr "Gli articoli sono tracciabili per impostazione predefinita" -#: common/models.py:1519 part/admin.py:117 part/models.py:1200 -#: part/templates/part/part_base.html:154 +#: common/models.py:1588 part/admin.py:117 part/models.py:1261 +#: part/templates/part/part_base.html:155 #: templates/js/translated/table_filters.js:142 #: templates/js/translated/table_filters.js:787 msgid "Virtual" msgstr "Virtuale" -#: common/models.py:1520 +#: common/models.py:1589 msgid "Parts are virtual by default" msgstr "Gli articoli sono virtuali per impostazione predefinita" -#: common/models.py:1525 +#: common/models.py:1594 msgid "Show Import in Views" msgstr "Mostra l'importazione nelle viste" -#: common/models.py:1526 +#: common/models.py:1595 msgid "Display the import wizard in some part views" msgstr "Mostra la procedura guidata di importazione in alcune viste articoli" -#: common/models.py:1531 +#: common/models.py:1600 msgid "Show related parts" msgstr "Mostra articoli correlati" -#: common/models.py:1532 +#: common/models.py:1601 msgid "Display related parts for a part" msgstr "Visualizza parti correlate per ogni articolo" -#: common/models.py:1537 +#: common/models.py:1606 msgid "Initial Stock Data" msgstr "Dati iniziali dello stock" -#: common/models.py:1538 +#: common/models.py:1607 msgid "Allow creation of initial stock when adding a new part" msgstr "Consentire la creazione di uno stock iniziale quando si aggiunge una nuova parte" -#: common/models.py:1543 templates/js/translated/part.js:108 +#: common/models.py:1612 templates/js/translated/part.js:108 msgid "Initial Supplier Data" msgstr "Dati iniziali del fornitore" -#: common/models.py:1545 +#: common/models.py:1614 msgid "Allow creation of initial supplier data when adding a new part" msgstr "Consentire la creazione dei dati iniziali del fornitore quando si aggiunge una nuova parte" -#: common/models.py:1551 +#: common/models.py:1620 msgid "Part Name Display Format" msgstr "Formato di visualizzazione del nome articolo" -#: common/models.py:1552 +#: common/models.py:1621 msgid "Format to display the part name" msgstr "Formato per visualizzare il nome dell'articolo" -#: common/models.py:1558 +#: common/models.py:1627 msgid "Part Category Default Icon" msgstr "Icona predefinita Categoria Articolo" -#: common/models.py:1559 +#: common/models.py:1628 msgid "Part category default icon (empty means no icon)" msgstr "Icona predefinita Categoria Articolo (vuoto significa nessuna icona)" -#: common/models.py:1564 +#: common/models.py:1633 msgid "Enforce Parameter Units" msgstr "" -#: common/models.py:1566 +#: common/models.py:1635 msgid "If units are provided, parameter values must match the specified units" msgstr "" -#: common/models.py:1572 +#: common/models.py:1641 msgid "Minimum Pricing Decimal Places" msgstr "" -#: common/models.py:1574 +#: common/models.py:1643 msgid "Minimum number of decimal places to display when rendering pricing data" msgstr "" -#: common/models.py:1585 +#: common/models.py:1654 msgid "Maximum Pricing Decimal Places" msgstr "" -#: common/models.py:1587 +#: common/models.py:1656 msgid "Maximum number of decimal places to display when rendering pricing data" msgstr "" -#: common/models.py:1598 +#: common/models.py:1667 msgid "Use Supplier Pricing" msgstr "Usa Prezzi Fornitore" -#: common/models.py:1600 +#: common/models.py:1669 msgid "Include supplier price breaks in overall pricing calculations" msgstr "Includere le discontinuità di prezzo del fornitore nei calcoli generali dei prezzi" -#: common/models.py:1606 +#: common/models.py:1675 msgid "Purchase History Override" msgstr "Ignora la Cronologia Acquisti" -#: common/models.py:1608 +#: common/models.py:1677 msgid "Historical purchase order pricing overrides supplier price breaks" msgstr "Cronologia dei prezzi dell'ordine di acquisto del fornitore superati con discontinuità di prezzo" -#: common/models.py:1614 +#: common/models.py:1683 msgid "Use Stock Item Pricing" msgstr "Utilizzare i prezzi degli articoli in stock" -#: common/models.py:1616 +#: common/models.py:1685 msgid "Use pricing from manually entered stock data for pricing calculations" msgstr "Utilizzare i prezzi dei dati di magazzino inseriti manualmente per il calcolo dei prezzi" -#: common/models.py:1622 +#: common/models.py:1691 msgid "Stock Item Pricing Age" msgstr "Età dei prezzi degli articoli in stock" -#: common/models.py:1624 +#: common/models.py:1693 msgid "Exclude stock items older than this number of days from pricing calculations" msgstr "Escludere dal calcolo dei prezzi gli articoli in giacenza più vecchi di questo numero di giorni" -#: common/models.py:1631 +#: common/models.py:1700 msgid "Use Variant Pricing" msgstr "Utilizza Variazione di Prezzo" -#: common/models.py:1632 +#: common/models.py:1701 msgid "Include variant pricing in overall pricing calculations" msgstr "Includi la variante dei prezzi nei calcoli dei prezzi complessivi" -#: common/models.py:1637 +#: common/models.py:1706 msgid "Active Variants Only" msgstr "Solo Varianti Attive" -#: common/models.py:1639 +#: common/models.py:1708 msgid "Only use active variant parts for calculating variant pricing" msgstr "Utilizza solo articoli di varianti attive per calcolare i prezzi delle varianti" -#: common/models.py:1645 +#: common/models.py:1714 msgid "Pricing Rebuild Interval" msgstr "" -#: common/models.py:1647 +#: common/models.py:1716 msgid "Number of days before part pricing is automatically updated" msgstr "Numero di giorni prima che il prezzo dell'articolo venga aggiornato automaticamente" -#: common/models.py:1654 +#: common/models.py:1723 msgid "Internal Prices" msgstr "Prezzi interni" -#: common/models.py:1655 +#: common/models.py:1724 msgid "Enable internal prices for parts" msgstr "Abilita prezzi interni per gli articoli" -#: common/models.py:1660 +#: common/models.py:1729 msgid "Internal Price Override" msgstr "Sovrascrivi Prezzo Interno" -#: common/models.py:1662 +#: common/models.py:1731 msgid "If available, internal prices override price range calculations" msgstr "Se disponibile, i prezzi interni sostituiscono i calcoli della fascia di prezzo" -#: common/models.py:1668 +#: common/models.py:1737 msgid "Enable label printing" msgstr "Abilita stampa etichette" -#: common/models.py:1669 +#: common/models.py:1738 msgid "Enable label printing from the web interface" msgstr "Abilita la stampa di etichette dall'interfaccia web" -#: common/models.py:1674 +#: common/models.py:1743 msgid "Label Image DPI" msgstr "Etichetta Immagine DPI" -#: common/models.py:1676 +#: common/models.py:1745 msgid "DPI resolution when generating image files to supply to label printing plugins" msgstr "Risoluzione DPI quando si generano file di immagine da fornire ai plugin di stampa per etichette" -#: common/models.py:1682 +#: common/models.py:1751 msgid "Enable Reports" msgstr "Abilita Report di Stampa" -#: common/models.py:1683 +#: common/models.py:1752 msgid "Enable generation of reports" msgstr "Abilita generazione di report di stampa" -#: common/models.py:1688 templates/stats.html:25 +#: common/models.py:1757 templates/stats.html:25 msgid "Debug Mode" msgstr "Modalità Debug" -#: common/models.py:1689 +#: common/models.py:1758 msgid "Generate reports in debug mode (HTML output)" msgstr "Genera report in modalità debug (output HTML)" -#: common/models.py:1694 +#: common/models.py:1763 msgid "Log Report Errors" msgstr "" -#: common/models.py:1695 +#: common/models.py:1764 msgid "Log errors which occur when generating reports" msgstr "" -#: common/models.py:1700 plugin/builtin/labels/label_sheet.py:28 -#: report/models.py:301 +#: common/models.py:1769 plugin/builtin/labels/label_sheet.py:28 +#: report/models.py:309 msgid "Page Size" msgstr "Dimensioni pagina" -#: common/models.py:1701 +#: common/models.py:1770 msgid "Default page size for PDF reports" msgstr "Dimensione predefinita della pagina per i report PDF" -#: common/models.py:1706 -msgid "Enable Test Reports" -msgstr "Abilita Rapporto di Prova" - -#: common/models.py:1707 -msgid "Enable generation of test reports" -msgstr "Abilita generazione di stampe di prova" - -#: common/models.py:1712 -msgid "Attach Test Reports" -msgstr "Allega Rapporto di Prova" - -#: common/models.py:1714 -msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item" -msgstr "Quando si stampa un rapporto di prova, allegare una copia del rapporto di prova all'elemento di magazzino associato" - -#: common/models.py:1720 +#: common/models.py:1775 msgid "Globally Unique Serials" msgstr "Seriali Unici Globali" -#: common/models.py:1721 +#: common/models.py:1776 msgid "Serial numbers for stock items must be globally unique" msgstr "I numeri di serie per gli articoli di magazzino devono essere univoci" -#: common/models.py:1726 +#: common/models.py:1781 msgid "Autofill Serial Numbers" msgstr "Auto Riempimento Numeri Seriali" -#: common/models.py:1727 +#: common/models.py:1782 msgid "Autofill serial numbers in forms" msgstr "Auto riempimento numeri nel modulo" -#: common/models.py:1732 +#: common/models.py:1787 msgid "Delete Depleted Stock" msgstr "Elimina scorte esaurite" -#: common/models.py:1734 +#: common/models.py:1789 msgid "Determines default behavior when a stock item is depleted" msgstr "" -#: common/models.py:1740 +#: common/models.py:1795 msgid "Batch Code Template" msgstr "Modello Codice a Barre" -#: common/models.py:1742 +#: common/models.py:1797 msgid "Template for generating default batch codes for stock items" msgstr "Modello per la generazione di codici batch predefiniti per gli elementi stock" -#: common/models.py:1747 +#: common/models.py:1802 msgid "Stock Expiry" msgstr "Scadenza giacenza" -#: common/models.py:1748 +#: common/models.py:1803 msgid "Enable stock expiry functionality" msgstr "Abilita funzionalità di scadenza della giacenza" -#: common/models.py:1753 +#: common/models.py:1808 msgid "Sell Expired Stock" msgstr "Vendi giacenza scaduta" -#: common/models.py:1754 +#: common/models.py:1809 msgid "Allow sale of expired stock" msgstr "Consenti la vendita di stock scaduti" -#: common/models.py:1759 +#: common/models.py:1814 msgid "Stock Stale Time" msgstr "Tempo di Scorta del Magazzino" -#: common/models.py:1761 +#: common/models.py:1816 msgid "Number of days stock items are considered stale before expiring" msgstr "Numero di giorni in cui gli articoli in magazzino sono considerati obsoleti prima della scadenza" -#: common/models.py:1768 +#: common/models.py:1823 msgid "Build Expired Stock" msgstr "Crea giacenza scaduta" -#: common/models.py:1769 +#: common/models.py:1824 msgid "Allow building with expired stock" msgstr "Permetti produzione con stock scaduto" -#: common/models.py:1774 +#: common/models.py:1829 msgid "Stock Ownership Control" msgstr "Controllo della proprietà della giacenza" -#: common/models.py:1775 +#: common/models.py:1830 msgid "Enable ownership control over stock locations and items" msgstr "Abilita il controllo della proprietà sulle posizioni e gli oggetti in giacenza" -#: common/models.py:1780 +#: common/models.py:1835 msgid "Stock Location Default Icon" msgstr "Icona Predefinita Ubicazione di Magazzino" -#: common/models.py:1781 +#: common/models.py:1836 msgid "Stock location default icon (empty means no icon)" msgstr "Icona Predefinita Ubicazione di Magazzino (vuoto significa nessuna icona)" -#: common/models.py:1786 +#: common/models.py:1841 msgid "Show Installed Stock Items" msgstr "" -#: common/models.py:1787 +#: common/models.py:1842 msgid "Display installed stock items in stock tables" msgstr "" -#: common/models.py:1792 +#: common/models.py:1847 msgid "Check BOM when installing items" msgstr "" -#: common/models.py:1794 +#: common/models.py:1849 msgid "Installed stock items must exist in the BOM for the parent part" msgstr "" -#: common/models.py:1800 +#: common/models.py:1855 msgid "Allow Out of Stock Transfer" msgstr "" -#: common/models.py:1802 +#: common/models.py:1857 msgid "Allow stock items which are not in stock to be transferred between stock locations" msgstr "" -#: common/models.py:1808 +#: common/models.py:1863 msgid "Build Order Reference Pattern" msgstr "Modello Di Riferimento Ordine Di Produzione" -#: common/models.py:1810 +#: common/models.py:1865 msgid "Required pattern for generating Build Order reference field" msgstr "Modello richiesto per generare il campo di riferimento ordine di produzione" -#: common/models.py:1816 common/models.py:1872 common/models.py:1894 -#: common/models.py:1930 +#: common/models.py:1871 common/models.py:1927 common/models.py:1949 +#: common/models.py:1985 msgid "Require Responsible Owner" msgstr "" -#: common/models.py:1817 common/models.py:1873 common/models.py:1895 -#: common/models.py:1931 +#: common/models.py:1872 common/models.py:1928 common/models.py:1950 +#: common/models.py:1986 msgid "A responsible owner must be assigned to each order" msgstr "" -#: common/models.py:1822 +#: common/models.py:1877 msgid "Require Active Part" msgstr "" -#: common/models.py:1823 +#: common/models.py:1878 msgid "Prevent build order creation for inactive parts" msgstr "" -#: common/models.py:1828 +#: common/models.py:1883 msgid "Require Locked Part" msgstr "" -#: common/models.py:1829 +#: common/models.py:1884 msgid "Prevent build order creation for unlocked parts" msgstr "" -#: common/models.py:1834 +#: common/models.py:1889 msgid "Require Valid BOM" msgstr "" -#: common/models.py:1836 +#: common/models.py:1891 msgid "Prevent build order creation unless BOM has been validated" msgstr "" -#: common/models.py:1842 +#: common/models.py:1897 msgid "Require Closed Child Orders" msgstr "" -#: common/models.py:1844 +#: common/models.py:1899 msgid "Prevent build order completion until all child orders are closed" msgstr "" -#: common/models.py:1850 +#: common/models.py:1905 msgid "Block Until Tests Pass" msgstr "" -#: common/models.py:1852 +#: common/models.py:1907 msgid "Prevent build outputs from being completed until all required tests pass" msgstr "" -#: common/models.py:1858 +#: common/models.py:1913 msgid "Enable Return Orders" msgstr "" -#: common/models.py:1859 +#: common/models.py:1914 msgid "Enable return order functionality in the user interface" msgstr "" -#: common/models.py:1864 +#: common/models.py:1919 msgid "Return Order Reference Pattern" msgstr "" -#: common/models.py:1866 +#: common/models.py:1921 msgid "Required pattern for generating Return Order reference field" msgstr "" -#: common/models.py:1878 +#: common/models.py:1933 msgid "Edit Completed Return Orders" msgstr "" -#: common/models.py:1880 +#: common/models.py:1935 msgid "Allow editing of return orders after they have been completed" msgstr "" -#: common/models.py:1886 +#: common/models.py:1941 msgid "Sales Order Reference Pattern" msgstr "Modello Di Riferimento Ordine Di Vendita" -#: common/models.py:1888 +#: common/models.py:1943 msgid "Required pattern for generating Sales Order reference field" msgstr "Modello richiesto per generare il campo di riferimento ordine di vendita" -#: common/models.py:1900 +#: common/models.py:1955 msgid "Sales Order Default Shipment" msgstr "Spedizione Predefinita Ordine Di Vendita" -#: common/models.py:1901 +#: common/models.py:1956 msgid "Enable creation of default shipment with sales orders" msgstr "Abilita la creazione di spedizioni predefinite con ordini di vendita" -#: common/models.py:1906 +#: common/models.py:1961 msgid "Edit Completed Sales Orders" msgstr "Modifica Ordini Di Vendita Completati" -#: common/models.py:1908 +#: common/models.py:1963 msgid "Allow editing of sales orders after they have been shipped or completed" msgstr "Consenti la modifica degli ordini di vendita dopo che sono stati spediti o completati" -#: common/models.py:1914 +#: common/models.py:1969 msgid "Mark Shipped Orders as Complete" msgstr "" -#: common/models.py:1916 +#: common/models.py:1971 msgid "Sales orders marked as shipped will automatically be completed, bypassing the \"shipped\" status" msgstr "" -#: common/models.py:1922 +#: common/models.py:1977 msgid "Purchase Order Reference Pattern" msgstr "Modello di Riferimento Ordine D'Acquisto" -#: common/models.py:1924 +#: common/models.py:1979 msgid "Required pattern for generating Purchase Order reference field" msgstr "Modello richiesto per generare il campo di riferimento ordine di acquisto" -#: common/models.py:1936 +#: common/models.py:1991 msgid "Edit Completed Purchase Orders" msgstr "Modifica Ordini Di Acquisto Completati" -#: common/models.py:1938 +#: common/models.py:1993 msgid "Allow editing of purchase orders after they have been shipped or completed" msgstr "Consenti la modifica degli ordini di acquisto dopo che sono stati spediti o completati" -#: common/models.py:1944 +#: common/models.py:1999 msgid "Auto Complete Purchase Orders" msgstr "" -#: common/models.py:1946 +#: common/models.py:2001 msgid "Automatically mark purchase orders as complete when all line items are received" msgstr "" -#: common/models.py:1953 +#: common/models.py:2008 msgid "Enable password forgot" msgstr "Abilita password dimenticata" -#: common/models.py:1954 +#: common/models.py:2009 msgid "Enable password forgot function on the login pages" msgstr "Abilita la funzione password dimenticata nelle pagine di accesso" -#: common/models.py:1959 +#: common/models.py:2014 msgid "Enable registration" msgstr "Abilita registrazione" -#: common/models.py:1960 +#: common/models.py:2015 msgid "Enable self-registration for users on the login pages" msgstr "Abilita auto-registrazione per gli utenti nelle pagine di accesso" -#: common/models.py:1965 +#: common/models.py:2020 msgid "Enable SSO" msgstr "SSO abilitato" -#: common/models.py:1966 +#: common/models.py:2021 msgid "Enable SSO on the login pages" msgstr "Abilita SSO nelle pagine di accesso" -#: common/models.py:1971 +#: common/models.py:2026 msgid "Enable SSO registration" msgstr "Abilita registrazione SSO" -#: common/models.py:1973 +#: common/models.py:2028 msgid "Enable self-registration via SSO for users on the login pages" msgstr "Abilita l'auto-registrazione tramite SSO per gli utenti nelle pagine di accesso" -#: common/models.py:1979 +#: common/models.py:2034 msgid "Enable SSO group sync" msgstr "" -#: common/models.py:1981 +#: common/models.py:2036 msgid "Enable synchronizing InvenTree groups with groups provided by the IdP" msgstr "" -#: common/models.py:1987 +#: common/models.py:2042 msgid "SSO group key" msgstr "" -#: common/models.py:1989 +#: common/models.py:2044 msgid "The name of the groups claim attribute provided by the IdP" msgstr "" -#: common/models.py:1995 +#: common/models.py:2050 msgid "SSO group map" msgstr "" -#: common/models.py:1997 +#: common/models.py:2052 msgid "A mapping from SSO groups to local InvenTree groups. If the local group does not exist, it will be created." msgstr "" -#: common/models.py:2003 +#: common/models.py:2058 msgid "Remove groups outside of SSO" msgstr "" -#: common/models.py:2005 +#: common/models.py:2060 msgid "Whether groups assigned to the user should be removed if they are not backend by the IdP. Disabling this setting might cause security issues" msgstr "" -#: common/models.py:2011 +#: common/models.py:2066 msgid "Email required" msgstr "Email richiesta" -#: common/models.py:2012 +#: common/models.py:2067 msgid "Require user to supply mail on signup" msgstr "Richiedi all'utente di fornire una email al momento dell'iscrizione" -#: common/models.py:2017 +#: common/models.py:2072 msgid "Auto-fill SSO users" msgstr "Riempimento automatico degli utenti SSO" -#: common/models.py:2019 +#: common/models.py:2074 msgid "Automatically fill out user-details from SSO account-data" msgstr "Compila automaticamente i dettagli dell'utente dai dati dell'account SSO" -#: common/models.py:2025 +#: common/models.py:2080 msgid "Mail twice" msgstr "Posta due volte" -#: common/models.py:2026 +#: common/models.py:2081 msgid "On signup ask users twice for their mail" msgstr "Al momento della registrazione chiedere due volte all'utente l'indirizzo di posta elettronica" -#: common/models.py:2031 +#: common/models.py:2086 msgid "Password twice" msgstr "Password due volte" -#: common/models.py:2032 +#: common/models.py:2087 msgid "On signup ask users twice for their password" msgstr "Al momento della registrazione chiedere agli utenti due volte l'inserimento della password" -#: common/models.py:2037 +#: common/models.py:2092 msgid "Allowed domains" msgstr "Domini consentiti" -#: common/models.py:2039 +#: common/models.py:2094 msgid "Restrict signup to certain domains (comma-separated, starting with @)" msgstr "" -#: common/models.py:2045 +#: common/models.py:2100 msgid "Group on signup" msgstr "Gruppo iscrizione" -#: common/models.py:2047 +#: common/models.py:2102 msgid "Group to which new users are assigned on registration. If SSO group sync is enabled, this group is only set if no group can be assigned from the IdP." msgstr "" -#: common/models.py:2053 +#: common/models.py:2108 msgid "Enforce MFA" msgstr "Applica MFA" -#: common/models.py:2054 +#: common/models.py:2109 msgid "Users must use multifactor security." msgstr "Gli utenti devono utilizzare la sicurezza a due fattori." -#: common/models.py:2059 +#: common/models.py:2114 msgid "Check plugins on startup" msgstr "Controlla i plugin all'avvio" -#: common/models.py:2061 +#: common/models.py:2116 msgid "Check that all plugins are installed on startup - enable in container environments" msgstr "Controlla che tutti i plugin siano installati all'avvio - abilita in ambienti contenitore" -#: common/models.py:2069 +#: common/models.py:2124 msgid "Check for plugin updates" msgstr "" -#: common/models.py:2070 +#: common/models.py:2125 msgid "Enable periodic checks for updates to installed plugins" msgstr "" -#: common/models.py:2076 +#: common/models.py:2131 msgid "Enable URL integration" msgstr "Abilita l'integrazione URL" -#: common/models.py:2077 +#: common/models.py:2132 msgid "Enable plugins to add URL routes" msgstr "Attiva plugin per aggiungere percorsi URL" -#: common/models.py:2083 +#: common/models.py:2138 msgid "Enable navigation integration" msgstr "Attiva integrazione navigazione" -#: common/models.py:2084 +#: common/models.py:2139 msgid "Enable plugins to integrate into navigation" msgstr "Abilita i plugin per l'integrazione nella navigazione" -#: common/models.py:2090 +#: common/models.py:2145 msgid "Enable app integration" msgstr "Abilita l'app integrata" -#: common/models.py:2091 +#: common/models.py:2146 msgid "Enable plugins to add apps" msgstr "Abilita plugin per aggiungere applicazioni" -#: common/models.py:2097 +#: common/models.py:2152 msgid "Enable schedule integration" msgstr "Abilita integrazione pianificazione" -#: common/models.py:2098 +#: common/models.py:2153 msgid "Enable plugins to run scheduled tasks" msgstr "Abilita i plugin per eseguire le attività pianificate" -#: common/models.py:2104 +#: common/models.py:2159 msgid "Enable event integration" msgstr "Abilita eventi integrati" -#: common/models.py:2105 +#: common/models.py:2160 msgid "Enable plugins to respond to internal events" msgstr "Abilita plugin per rispondere agli eventi interni" -#: common/models.py:2111 +#: common/models.py:2166 +msgid "Enable interface integration" +msgstr "" + +#: common/models.py:2167 +msgid "Enable plugins to integrate into the user interface" +msgstr "" + +#: common/models.py:2173 msgid "Enable project codes" msgstr "" -#: common/models.py:2112 +#: common/models.py:2174 msgid "Enable project codes for tracking projects" msgstr "" -#: common/models.py:2117 +#: common/models.py:2179 msgid "Stocktake Functionality" msgstr "Funzionalità Dell'Inventario" -#: common/models.py:2119 +#: common/models.py:2181 msgid "Enable stocktake functionality for recording stock levels and calculating stock value" msgstr "Abilita la funzionalità d'inventario per la registrazione dei livelli di magazzino e il calcolo del valore di magazzino" -#: common/models.py:2125 +#: common/models.py:2187 msgid "Exclude External Locations" msgstr "" -#: common/models.py:2127 +#: common/models.py:2189 msgid "Exclude stock items in external locations from stocktake calculations" msgstr "" -#: common/models.py:2133 +#: common/models.py:2195 msgid "Automatic Stocktake Period" msgstr "Inventario periodico automatico" -#: common/models.py:2135 +#: common/models.py:2197 msgid "Number of days between automatic stocktake recording (set to zero to disable)" msgstr "Numero di giorni tra la registrazione automatica dell'inventario (imposta 0 per disabilitare)" -#: common/models.py:2141 +#: common/models.py:2203 msgid "Report Deletion Interval" msgstr "" -#: common/models.py:2143 +#: common/models.py:2205 msgid "Stocktake reports will be deleted after specified number of days" msgstr "I rapporti d'inventario verranno eliminati dopo il numero specificato di giorni" -#: common/models.py:2150 +#: common/models.py:2212 msgid "Display Users full names" msgstr "" -#: common/models.py:2151 +#: common/models.py:2213 msgid "Display Users full names instead of usernames" msgstr "" -#: common/models.py:2156 +#: common/models.py:2218 msgid "Enable Test Station Data" msgstr "" -#: common/models.py:2157 +#: common/models.py:2219 msgid "Enable test station data collection for test results" msgstr "" -#: common/models.py:2169 common/models.py:2549 -msgid "Settings key (must be unique - case insensitive" -msgstr "Tasto impostazioni (deve essere univoco - maiuscole e minuscole" +#: common/models.py:2224 +msgid "Create Template on Upload" +msgstr "" -#: common/models.py:2212 +#: common/models.py:2226 +msgid "Create a new test template when uploading test data which does not match an existing template" +msgstr "" + +#: common/models.py:2279 msgid "Hide inactive parts" msgstr "Nascondi Articoli Inattivi" -#: common/models.py:2214 +#: common/models.py:2281 msgid "Hide inactive parts in results displayed on the homepage" msgstr "" -#: common/models.py:2220 +#: common/models.py:2287 msgid "Show subscribed parts" msgstr "Mostra articoli sottoscritti" -#: common/models.py:2221 +#: common/models.py:2288 msgid "Show subscribed parts on the homepage" msgstr "Mostra gli articoli sottoscritti nella homepage" -#: common/models.py:2226 +#: common/models.py:2293 msgid "Show subscribed categories" msgstr "Mostra le categorie sottoscritte" -#: common/models.py:2227 +#: common/models.py:2294 msgid "Show subscribed part categories on the homepage" msgstr "Mostra le categorie dei componenti sottoscritti nella homepage" -#: common/models.py:2232 +#: common/models.py:2299 msgid "Show latest parts" msgstr "Mostra ultimi articoli" -#: common/models.py:2233 +#: common/models.py:2300 msgid "Show latest parts on the homepage" msgstr "Mostra gli ultimi articoli sulla homepage" -#: common/models.py:2238 +#: common/models.py:2305 msgid "Show invalid BOMs" msgstr "" -#: common/models.py:2239 +#: common/models.py:2306 msgid "Show BOMs that await validation on the homepage" msgstr "Mostra le distinte base che attendono la convalida sulla homepage" -#: common/models.py:2244 +#: common/models.py:2311 msgid "Show recent stock changes" msgstr "Mostra le modifiche recenti alle giacenze" -#: common/models.py:2245 +#: common/models.py:2312 msgid "Show recently changed stock items on the homepage" msgstr "Mostra le giacenze modificate di recente nella homepage" -#: common/models.py:2250 +#: common/models.py:2317 msgid "Show low stock" msgstr "Mostra disponibilità scarsa delle giacenze" -#: common/models.py:2251 +#: common/models.py:2318 msgid "Show low stock items on the homepage" msgstr "Mostra disponibilità scarsa degli articoli sulla homepage" -#: common/models.py:2256 +#: common/models.py:2323 msgid "Show depleted stock" msgstr "Mostra scorte esaurite" -#: common/models.py:2257 +#: common/models.py:2324 msgid "Show depleted stock items on the homepage" msgstr "Mostra disponibilità scarsa delle scorte degli articoli sulla homepage" -#: common/models.py:2262 +#: common/models.py:2329 msgid "Show needed stock" msgstr "Mostra scorte necessarie" -#: common/models.py:2263 +#: common/models.py:2330 msgid "Show stock items needed for builds on the homepage" msgstr "Mostra le scorte degli articoli necessari per la produzione sulla homepage" -#: common/models.py:2268 +#: common/models.py:2335 msgid "Show expired stock" msgstr "Mostra scorte esaurite" -#: common/models.py:2269 +#: common/models.py:2336 msgid "Show expired stock items on the homepage" msgstr "Mostra gli articoli stock scaduti nella home page" -#: common/models.py:2274 +#: common/models.py:2341 msgid "Show stale stock" msgstr "Mostra scorte obsolete" -#: common/models.py:2275 +#: common/models.py:2342 msgid "Show stale stock items on the homepage" msgstr "Mostra gli elementi obsoleti esistenti sulla home page" -#: common/models.py:2280 +#: common/models.py:2347 msgid "Show pending builds" msgstr "Mostra produzioni in attesa" -#: common/models.py:2281 +#: common/models.py:2348 msgid "Show pending builds on the homepage" msgstr "Mostra produzioni in attesa sulla homepage" -#: common/models.py:2286 +#: common/models.py:2353 msgid "Show overdue builds" msgstr "Mostra produzioni in ritardo" -#: common/models.py:2287 +#: common/models.py:2354 msgid "Show overdue builds on the homepage" msgstr "Mostra produzioni in ritardo sulla home page" -#: common/models.py:2292 +#: common/models.py:2359 msgid "Show outstanding POs" msgstr "Mostra ordini di produzione inevasi" -#: common/models.py:2293 +#: common/models.py:2360 msgid "Show outstanding POs on the homepage" msgstr "Mostra ordini di produzione inevasi sulla home page" -#: common/models.py:2298 +#: common/models.py:2365 msgid "Show overdue POs" msgstr "Mostra Ordini di Produzione in ritardo" -#: common/models.py:2299 +#: common/models.py:2366 msgid "Show overdue POs on the homepage" msgstr "Mostra Ordini di Produzione in ritardo sulla home page" -#: common/models.py:2304 +#: common/models.py:2371 msgid "Show outstanding SOs" msgstr "Mostra Ordini di Vendita inevasi" -#: common/models.py:2305 +#: common/models.py:2372 msgid "Show outstanding SOs on the homepage" msgstr "Mostra Ordini di Vendita inevasi sulla home page" -#: common/models.py:2310 +#: common/models.py:2377 msgid "Show overdue SOs" msgstr "Mostra Ordini di Vendita in ritardo" -#: common/models.py:2311 +#: common/models.py:2378 msgid "Show overdue SOs on the homepage" msgstr "Mostra Ordini di Vendita in ritardo sulla home page" -#: common/models.py:2316 +#: common/models.py:2383 msgid "Show pending SO shipments" msgstr "" -#: common/models.py:2317 +#: common/models.py:2384 msgid "Show pending SO shipments on the homepage" msgstr "" -#: common/models.py:2322 +#: common/models.py:2389 msgid "Show News" msgstr "Mostra Notizie" -#: common/models.py:2323 +#: common/models.py:2390 msgid "Show news on the homepage" msgstr "Mostra notizie sulla home page" -#: common/models.py:2328 +#: common/models.py:2395 msgid "Inline label display" msgstr "Visualizzazione dell'etichetta in linea" -#: common/models.py:2330 +#: common/models.py:2397 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "Visualizza le etichette PDF nel browser, invece di scaricare come file" -#: common/models.py:2336 +#: common/models.py:2403 msgid "Default label printer" msgstr "Stampante per etichette predefinita" -#: common/models.py:2338 +#: common/models.py:2405 msgid "Configure which label printer should be selected by default" msgstr "Configura quale stampante di etichette deve essere selezionata per impostazione predefinita" -#: common/models.py:2344 +#: common/models.py:2411 msgid "Inline report display" msgstr "Visualizzazione dell'etichetta in linea" -#: common/models.py:2346 +#: common/models.py:2413 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "Visualizza le etichette PDF nel browser, invece di scaricare come file" -#: common/models.py:2352 +#: common/models.py:2419 msgid "Search Parts" msgstr "Cerca Articoli" -#: common/models.py:2353 +#: common/models.py:2420 msgid "Display parts in search preview window" msgstr "Mostra articoli della ricerca nella finestra di anteprima" -#: common/models.py:2358 +#: common/models.py:2425 msgid "Search Supplier Parts" msgstr "" -#: common/models.py:2359 +#: common/models.py:2426 msgid "Display supplier parts in search preview window" msgstr "Mostra articoli del fornitore nella finestra di anteprima" -#: common/models.py:2364 +#: common/models.py:2431 msgid "Search Manufacturer Parts" msgstr "Cerca Articoli Produttore" -#: common/models.py:2365 +#: common/models.py:2432 msgid "Display manufacturer parts in search preview window" msgstr "Mostra articoli del produttore nella finestra di anteprima" -#: common/models.py:2370 +#: common/models.py:2437 msgid "Hide Inactive Parts" msgstr "Nascondi Articoli Inattivi" -#: common/models.py:2371 +#: common/models.py:2438 msgid "Excluded inactive parts from search preview window" msgstr "Escludi articoli inattivi dalla finestra di anteprima della ricerca" -#: common/models.py:2376 +#: common/models.py:2443 msgid "Search Categories" msgstr "Cerca Categorie" -#: common/models.py:2377 +#: common/models.py:2444 msgid "Display part categories in search preview window" msgstr "Mostra categorie articolo nella finestra di anteprima di ricerca" -#: common/models.py:2382 +#: common/models.py:2449 msgid "Search Stock" msgstr "Cerca Giacenze" -#: common/models.py:2383 +#: common/models.py:2450 msgid "Display stock items in search preview window" msgstr "Mostra articoli in giacenza nella finestra di anteprima della ricerca" -#: common/models.py:2388 +#: common/models.py:2455 msgid "Hide Unavailable Stock Items" msgstr "Nascondi elementi non disponibili" -#: common/models.py:2390 +#: common/models.py:2457 msgid "Exclude stock items which are not available from the search preview window" msgstr "Escludi gli elementi stock che non sono disponibili dalla finestra di anteprima di ricerca" -#: common/models.py:2396 +#: common/models.py:2463 msgid "Search Locations" msgstr "Cerca Ubicazioni" -#: common/models.py:2397 +#: common/models.py:2464 msgid "Display stock locations in search preview window" msgstr "Mostra ubicazioni delle giacenze nella finestra di anteprima di ricerca" -#: common/models.py:2402 +#: common/models.py:2469 msgid "Search Companies" msgstr "Cerca Aziende" -#: common/models.py:2403 +#: common/models.py:2470 msgid "Display companies in search preview window" msgstr "Mostra le aziende nella finestra di anteprima di ricerca" -#: common/models.py:2408 +#: common/models.py:2475 msgid "Search Build Orders" msgstr "Cerca Ordini Di Produzione" -#: common/models.py:2409 +#: common/models.py:2476 msgid "Display build orders in search preview window" msgstr "Mostra gli ordini di produzione nella finestra di anteprima di ricerca" -#: common/models.py:2414 +#: common/models.py:2481 msgid "Search Purchase Orders" msgstr "Cerca Ordini di Acquisto" -#: common/models.py:2415 +#: common/models.py:2482 msgid "Display purchase orders in search preview window" msgstr "Mostra gli ordini di acquisto nella finestra di anteprima di ricerca" -#: common/models.py:2420 +#: common/models.py:2487 msgid "Exclude Inactive Purchase Orders" msgstr "Escludi Ordini D'Acquisto Inattivi" -#: common/models.py:2422 +#: common/models.py:2489 msgid "Exclude inactive purchase orders from search preview window" msgstr "Escludi ordini di acquisto inattivi dalla finestra di anteprima di ricerca" -#: common/models.py:2428 +#: common/models.py:2495 msgid "Search Sales Orders" msgstr "Cerca Ordini Di Vendita" -#: common/models.py:2429 +#: common/models.py:2496 msgid "Display sales orders in search preview window" msgstr "Visualizzazione degli ordini di vendita nella finestra di anteprima della ricerca" -#: common/models.py:2434 +#: common/models.py:2501 msgid "Exclude Inactive Sales Orders" msgstr "Escludi Ordini Di Vendita Inattivi" -#: common/models.py:2436 +#: common/models.py:2503 msgid "Exclude inactive sales orders from search preview window" msgstr "Escludi ordini di vendita inattivi dalla finestra di anteprima di ricerca" -#: common/models.py:2442 +#: common/models.py:2509 msgid "Search Return Orders" msgstr "Cerca Ordini Di Reso" -#: common/models.py:2443 +#: common/models.py:2510 msgid "Display return orders in search preview window" msgstr "" -#: common/models.py:2448 +#: common/models.py:2515 msgid "Exclude Inactive Return Orders" msgstr "" -#: common/models.py:2450 +#: common/models.py:2517 msgid "Exclude inactive return orders from search preview window" msgstr "" -#: common/models.py:2456 +#: common/models.py:2523 msgid "Search Preview Results" msgstr "Risultati Dell'Anteprima Di Ricerca" -#: common/models.py:2458 +#: common/models.py:2525 msgid "Number of results to show in each section of the search preview window" msgstr "Numero di risultati da visualizzare in ciascuna sezione della finestra di anteprima della ricerca" -#: common/models.py:2464 +#: common/models.py:2531 msgid "Regex Search" msgstr "Ricerca con regex" -#: common/models.py:2465 +#: common/models.py:2532 msgid "Enable regular expressions in search queries" msgstr "" -#: common/models.py:2470 +#: common/models.py:2537 msgid "Whole Word Search" msgstr "" -#: common/models.py:2471 +#: common/models.py:2538 msgid "Search queries return results for whole word matches" msgstr "" -#: common/models.py:2476 +#: common/models.py:2543 msgid "Show Quantity in Forms" msgstr "Mostra quantità nei moduli" -#: common/models.py:2477 +#: common/models.py:2544 msgid "Display available part quantity in some forms" msgstr "Visualizzare la quantità di pezzi disponibili in alcuni moduli" -#: common/models.py:2482 +#: common/models.py:2549 msgid "Escape Key Closes Forms" msgstr "Il tasto Esc chiude i moduli" -#: common/models.py:2483 +#: common/models.py:2550 msgid "Use the escape key to close modal forms" msgstr "Utilizzare il tasto Esc per chiudere i moduli modali" -#: common/models.py:2488 +#: common/models.py:2555 msgid "Fixed Navbar" msgstr "Barra di navigazione fissa" -#: common/models.py:2489 +#: common/models.py:2556 msgid "The navbar position is fixed to the top of the screen" msgstr "La posizione della barra di navigazione è fissata nella parte superiore dello schermo" -#: common/models.py:2494 +#: common/models.py:2561 msgid "Date Format" msgstr "Formato Data" -#: common/models.py:2495 +#: common/models.py:2562 msgid "Preferred format for displaying dates" msgstr "Formato predefinito per visualizzare le date" -#: common/models.py:2508 part/templates/part/detail.html:41 +#: common/models.py:2575 part/templates/part/detail.html:41 msgid "Part Scheduling" msgstr "Programmazione Prodotto" -#: common/models.py:2509 +#: common/models.py:2576 msgid "Display part scheduling information" msgstr "Mostra informazioni sulla pianificazione del prodotto" -#: common/models.py:2514 part/templates/part/detail.html:62 +#: common/models.py:2581 part/templates/part/detail.html:62 msgid "Part Stocktake" msgstr "Inventario Prodotto" -#: common/models.py:2516 +#: common/models.py:2583 msgid "Display part stocktake information (if stocktake functionality is enabled)" msgstr "Visualizza le informazioni d'inventario dell'articolo (se la funzionalità d'inventario è abilitata)" -#: common/models.py:2522 +#: common/models.py:2589 msgid "Table String Length" msgstr "Lunghezza Stringa Tabella" -#: common/models.py:2524 +#: common/models.py:2591 msgid "Maximum length limit for strings displayed in table views" msgstr "" -#: common/models.py:2530 +#: common/models.py:2597 msgid "Receive error reports" msgstr "" -#: common/models.py:2531 +#: common/models.py:2598 msgid "Receive notifications for system errors" msgstr "" -#: common/models.py:2536 +#: common/models.py:2603 msgid "Last used printing machines" msgstr "" -#: common/models.py:2537 +#: common/models.py:2604 msgid "Save the last used printing machines for a user" msgstr "" -#: common/models.py:2557 common/models.py:2558 common/models.py:2715 -#: common/models.py:2716 common/models.py:2961 common/models.py:2962 -#: common/models.py:3288 common/models.py:3289 importer/models.py:88 -#: part/models.py:3307 part/models.py:3394 part/models.py:3468 -#: part/models.py:3496 plugin/models.py:274 plugin/models.py:275 -#: report/templates/report/inventree_test_report.html:105 -#: templates/js/translated/stock.js:3120 users/models.py:111 +#: common/models.py:2621 common/models.py:2622 common/models.py:2779 +#: common/models.py:2780 common/models.py:3025 common/models.py:3026 +#: common/models.py:3349 common/models.py:3350 common/models.py:3534 +#: importer/models.py:89 part/models.py:3358 part/models.py:3445 +#: part/models.py:3519 part/models.py:3547 plugin/models.py:313 +#: plugin/models.py:314 report/templates/report/inventree_test_report.html:105 +#: templates/js/translated/stock.js:3121 users/models.py:111 msgid "User" msgstr "Utente" -#: common/models.py:2580 +#: common/models.py:2644 msgid "Price break quantity" msgstr "Quantità prezzo limite" -#: common/models.py:2587 company/serializers.py:513 order/admin.py:42 -#: order/models.py:1430 order/models.py:2417 -#: templates/js/translated/company.js:1823 templates/js/translated/part.js:1892 +#: common/models.py:2651 company/serializers.py:524 order/admin.py:42 +#: order/models.py:1447 order/models.py:2456 +#: templates/js/translated/company.js:1824 templates/js/translated/part.js:1892 #: templates/js/translated/pricing.js:621 #: templates/js/translated/return_order.js:739 msgid "Price" msgstr "Prezzo" -#: common/models.py:2588 +#: common/models.py:2652 msgid "Unit price at specified quantity" msgstr "Prezzo unitario in quantità specificata" -#: common/models.py:2692 common/models.py:2877 +#: common/models.py:2756 common/models.py:2941 msgid "Endpoint" msgstr "Scadenza" -#: common/models.py:2693 +#: common/models.py:2757 msgid "Endpoint at which this webhook is received" msgstr "Scadenza in cui questa notifica viene ricevuta" -#: common/models.py:2703 +#: common/models.py:2767 msgid "Name for this webhook" msgstr "Nome per questa notifica" -#: common/models.py:2707 +#: common/models.py:2771 msgid "Is this webhook active" msgstr "È questa notifica attiva" -#: common/models.py:2723 users/models.py:159 +#: common/models.py:2787 users/models.py:159 msgid "Token" msgstr "" -#: common/models.py:2724 +#: common/models.py:2788 msgid "Token for access" msgstr "Token per l'accesso" -#: common/models.py:2732 +#: common/models.py:2796 msgid "Secret" msgstr "Segreto" -#: common/models.py:2733 +#: common/models.py:2797 msgid "Shared secret for HMAC" msgstr "Segreto condiviso per HMAC" -#: common/models.py:2841 +#: common/models.py:2905 msgid "Message ID" msgstr "ID Messaggio" -#: common/models.py:2842 +#: common/models.py:2906 msgid "Unique identifier for this message" msgstr "Identificatore unico per questo messaggio" -#: common/models.py:2850 +#: common/models.py:2914 msgid "Host" msgstr "" -#: common/models.py:2851 +#: common/models.py:2915 msgid "Host from which this message was received" msgstr "Host da cui questo messaggio è stato ricevuto" -#: common/models.py:2859 +#: common/models.py:2923 msgid "Header" msgstr "Intestazione" -#: common/models.py:2860 +#: common/models.py:2924 msgid "Header of this message" msgstr "Intestazione di questo messaggio" -#: common/models.py:2867 +#: common/models.py:2931 msgid "Body" msgstr "Contenuto" -#: common/models.py:2868 +#: common/models.py:2932 msgid "Body of this message" msgstr "Contenuto di questo messaggio" -#: common/models.py:2878 +#: common/models.py:2942 msgid "Endpoint on which this message was received" msgstr "Scadenza in cui questo messaggio è stato ricevuto" -#: common/models.py:2883 +#: common/models.py:2947 msgid "Worked on" msgstr "Lavorato il" -#: common/models.py:2884 +#: common/models.py:2948 msgid "Was the work on this message finished?" msgstr "Il lavoro su questo messaggio è terminato?" -#: common/models.py:3010 +#: common/models.py:3074 msgid "Id" msgstr "" -#: common/models.py:3012 templates/js/translated/company.js:965 -#: templates/js/translated/news.js:44 +#: common/models.py:3076 part/serializers.py:271 +#: templates/js/translated/company.js:966 templates/js/translated/news.js:44 msgid "Title" msgstr "Titolo" -#: common/models.py:3014 common/models.py:3272 company/models.py:149 -#: company/models.py:446 company/models.py:512 company/models.py:818 -#: order/models.py:302 order/models.py:1385 order/models.py:1817 -#: part/admin.py:55 part/models.py:1057 +#: common/models.py:3078 common/models.py:3333 company/models.py:146 +#: company/models.py:443 company/models.py:509 company/models.py:815 +#: order/models.py:309 order/models.py:1402 order/models.py:1846 +#: part/admin.py:55 part/models.py:1118 #: part/templates/part/part_scheduling.html:11 #: report/templates/report/inventree_build_order_report.html:164 -#: stock/admin.py:229 templates/js/translated/company.js:1319 -#: templates/js/translated/company.js:1673 templates/js/translated/order.js:376 +#: stock/admin.py:230 templates/js/translated/company.js:1320 +#: templates/js/translated/company.js:1674 templates/js/translated/order.js:376 #: templates/js/translated/part.js:2475 -#: templates/js/translated/purchase_order.js:2110 -#: templates/js/translated/purchase_order.js:2274 +#: templates/js/translated/purchase_order.js:2094 +#: templates/js/translated/purchase_order.js:2258 #: templates/js/translated/return_order.js:778 -#: templates/js/translated/sales_order.js:1092 -#: templates/js/translated/sales_order.js:2023 +#: templates/js/translated/sales_order.js:1058 +#: templates/js/translated/sales_order.js:2004 msgid "Link" msgstr "Collegamento" -#: common/models.py:3016 templates/js/translated/news.js:60 +#: common/models.py:3080 templates/js/translated/news.js:60 msgid "Published" msgstr "Pubblicato" -#: common/models.py:3018 templates/InvenTree/settings/plugin_settings.html:32 +#: common/models.py:3082 templates/InvenTree/settings/plugin_settings.html:32 #: templates/js/translated/news.js:56 templates/js/translated/plugin.js:103 msgid "Author" msgstr "Autore" -#: common/models.py:3020 templates/js/translated/news.js:52 +#: common/models.py:3084 templates/js/translated/news.js:52 msgid "Summary" msgstr "Riepilogo" -#: common/models.py:3023 +#: common/models.py:3087 msgid "Read" msgstr "Letto" -#: common/models.py:3023 +#: common/models.py:3087 msgid "Was this news item read?" msgstr "Queste notizie sull'elemento sono state lette?" -#: common/models.py:3040 company/models.py:159 part/models.py:1067 +#: common/models.py:3104 company/models.py:156 part/models.py:1128 #: report/templates/report/inventree_bill_of_materials_report.html:126 #: report/templates/report/inventree_bill_of_materials_report.html:148 #: report/templates/report/inventree_return_order_report.html:35 -#: stock/templates/stock/item_base.html:133 templates/503.html:31 +#: stock/templates/stock/item_base.html:130 templates/503.html:31 #: templates/hover_image.html:7 templates/hover_image.html:9 #: templates/modals.html:6 msgid "Image" msgstr "Immagine" -#: common/models.py:3040 +#: common/models.py:3104 msgid "Image file" msgstr "File immagine" -#: common/models.py:3052 common/models.py:3256 +#: common/models.py:3116 common/models.py:3317 msgid "Target model type for this image" msgstr "" -#: common/models.py:3056 +#: common/models.py:3120 msgid "Target model ID for this image" msgstr "" -#: common/models.py:3078 +#: common/models.py:3142 msgid "Custom Unit" msgstr "" -#: common/models.py:3099 +#: common/models.py:3160 msgid "Unit symbol must be unique" msgstr "" -#: common/models.py:3114 +#: common/models.py:3175 msgid "Unit name must be a valid identifier" msgstr "" -#: common/models.py:3133 +#: common/models.py:3194 msgid "Unit name" msgstr "" -#: common/models.py:3140 templates/InvenTree/settings/settings_staff_js.html:75 +#: common/models.py:3201 templates/InvenTree/settings/settings_staff_js.html:75 msgid "Symbol" msgstr "" -#: common/models.py:3141 +#: common/models.py:3202 msgid "Optional unit symbol" msgstr "" -#: common/models.py:3147 templates/InvenTree/settings/settings_staff_js.html:71 +#: common/models.py:3208 templates/InvenTree/settings/settings_staff_js.html:71 msgid "Definition" msgstr "" -#: common/models.py:3148 +#: common/models.py:3209 msgid "Unit definition" msgstr "" -#: common/models.py:3206 common/models.py:3263 stock/models.py:2558 -#: templates/js/translated/attachment.js:119 +#: common/models.py:3267 common/models.py:3324 stock/models.py:2674 +#: stock/serializers.py:244 templates/js/translated/attachment.js:119 #: templates/js/translated/attachment.js:345 msgid "Attachment" msgstr "Allegato" -#: common/models.py:3218 +#: common/models.py:3279 msgid "Missing file" msgstr "File mancante" -#: common/models.py:3219 +#: common/models.py:3280 msgid "Missing external link" msgstr "Link esterno mancante" -#: common/models.py:3264 +#: common/models.py:3325 msgid "Select file to attach" msgstr "Seleziona file da allegare" -#: common/models.py:3279 templates/js/translated/attachment.js:120 +#: common/models.py:3340 templates/js/translated/attachment.js:120 #: templates/js/translated/attachment.js:360 msgid "Comment" msgstr "Commento" -#: common/models.py:3280 +#: common/models.py:3341 msgid "Attachment comment" msgstr "" -#: common/models.py:3296 +#: common/models.py:3357 msgid "Upload date" msgstr "" -#: common/models.py:3297 +#: common/models.py:3358 msgid "Date the file was uploaded" msgstr "" -#: common/models.py:3301 +#: common/models.py:3362 msgid "File size" msgstr "" -#: common/models.py:3301 +#: common/models.py:3362 msgid "File size in bytes" msgstr "" -#: common/models.py:3339 common/serializers.py:562 +#: common/models.py:3400 common/serializers.py:609 msgid "Invalid model type specified for attachment" msgstr "" -#: common/notifications.py:314 +#: common/models.py:3409 plugin/models.py:43 users/models.py:100 +msgid "Key" +msgstr "" + +#: common/models.py:3410 +msgid "Value that will be saved in the models database" +msgstr "" + +#: common/models.py:3413 +msgid "Name of the state" +msgstr "" + +#: common/models.py:3417 part/serializers.py:273 +msgid "Label" +msgstr "" + +#: common/models.py:3418 +msgid "Label that will be displayed in the frontend" +msgstr "" + +#: common/models.py:3424 +msgid "Color" +msgstr "" + +#: common/models.py:3425 +msgid "Color that will be displayed in the frontend" +msgstr "" + +#: common/models.py:3428 +msgid "Logical Key" +msgstr "" + +#: common/models.py:3430 +msgid "State logical key that is equal to this custom state in business logic" +msgstr "" + +#: common/models.py:3438 part/serializers.py:275 +msgid "Model" +msgstr "" + +#: common/models.py:3439 +msgid "Model this state is associated with" +msgstr "" + +#: common/models.py:3443 +msgid "Reference Status Set" +msgstr "" + +#: common/models.py:3444 +msgid "Status set that is extended with this custom state" +msgstr "" + +#: common/models.py:3450 +msgid "Custom State" +msgstr "" + +#: common/models.py:3451 +msgid "Custom States" +msgstr "" + +#: common/models.py:3466 +msgid "Model must be selected" +msgstr "" + +#: common/models.py:3469 +msgid "Key must be selected" +msgstr "" + +#: common/models.py:3472 +msgid "Logical key must be selected" +msgstr "" + +#: common/models.py:3476 +msgid "Key must be different from logical key" +msgstr "" + +#: common/models.py:3480 +msgid "Reference status must be selected" +msgstr "" + +#: common/models.py:3492 +msgid "Reference status set not found" +msgstr "" + +#: common/models.py:3498 +msgid "Key must be different from the logical keys of the reference status" +msgstr "" + +#: common/models.py:3504 +msgid "Logical key must be in the logical keys of the reference status" +msgstr "" + +#: common/models.py:3519 +msgid "Barcode Scan" +msgstr "" + +#: common/models.py:3523 importer/models.py:512 part/models.py:4009 +msgid "Data" +msgstr "Dati" + +#: common/models.py:3524 +msgid "Barcode data" +msgstr "" + +#: common/models.py:3535 +msgid "User who scanned the barcode" +msgstr "" + +#: common/models.py:3540 importer/models.py:60 +msgid "Timestamp" +msgstr "" + +#: common/models.py:3541 +msgid "Date and time of the barcode scan" +msgstr "" + +#: common/models.py:3547 +msgid "URL endpoint which processed the barcode" +msgstr "" + +#: common/models.py:3554 order/models.py:1437 plugin/serializers.py:89 +msgid "Context" +msgstr "Contesto" + +#: common/models.py:3555 +msgid "Context data for the barcode scan" +msgstr "" + +#: common/models.py:3562 +msgid "Response" +msgstr "" + +#: common/models.py:3563 +msgid "Response data from the barcode scan" +msgstr "" + +#: common/models.py:3569 report/templates/report/inventree_test_report.html:103 +#: stock/models.py:2660 +msgid "Result" +msgstr "Risultato" + +#: common/models.py:3570 +msgid "Was the barcode scan successful?" +msgstr "" + +#: common/notifications.py:328 #, python-brace-format msgid "New {verbose_name}" msgstr "Nuovo {verbose_name}" -#: common/notifications.py:316 +#: common/notifications.py:330 msgid "A new order has been created and assigned to you" msgstr "Un nuovo ordine è stato creato e assegnato a te" -#: common/notifications.py:322 +#: common/notifications.py:336 #, python-brace-format msgid "{verbose_name} canceled" msgstr "" -#: common/notifications.py:324 +#: common/notifications.py:338 msgid "A order that is assigned to you was canceled" msgstr "" -#: common/notifications.py:330 common/notifications.py:337 order/api.py:462 +#: common/notifications.py:344 common/notifications.py:351 order/api.py:440 msgid "Items Received" msgstr "Elemento ricevuto" -#: common/notifications.py:332 +#: common/notifications.py:346 msgid "Items have been received against a purchase order" msgstr "Gli elementi sono stati ricevuti a fronte di un ordine di acquisto" -#: common/notifications.py:339 +#: common/notifications.py:353 msgid "Items have been received against a return order" msgstr "" -#: common/notifications.py:457 +#: common/notifications.py:475 msgid "Error raised by plugin" msgstr "Errore generato dal plugin" -#: common/serializers.py:375 +#: common/serializers.py:423 msgid "Is Running" msgstr "" -#: common/serializers.py:381 +#: common/serializers.py:429 msgid "Pending Tasks" msgstr "" -#: common/serializers.py:387 +#: common/serializers.py:435 msgid "Scheduled Tasks" msgstr "" -#: common/serializers.py:393 +#: common/serializers.py:441 msgid "Failed Tasks" msgstr "" -#: common/serializers.py:408 +#: common/serializers.py:456 msgid "Task ID" msgstr "" -#: common/serializers.py:408 +#: common/serializers.py:456 msgid "Unique task ID" msgstr "" -#: common/serializers.py:410 +#: common/serializers.py:458 msgid "Lock" msgstr "" -#: common/serializers.py:410 +#: common/serializers.py:458 msgid "Lock time" msgstr "" -#: common/serializers.py:412 +#: common/serializers.py:460 msgid "Task name" msgstr "" -#: common/serializers.py:414 +#: common/serializers.py:462 msgid "Function" msgstr "" -#: common/serializers.py:414 +#: common/serializers.py:462 msgid "Function name" msgstr "" -#: common/serializers.py:416 +#: common/serializers.py:464 msgid "Arguments" msgstr "" -#: common/serializers.py:416 +#: common/serializers.py:464 msgid "Task arguments" msgstr "" -#: common/serializers.py:419 +#: common/serializers.py:467 msgid "Keyword Arguments" msgstr "" -#: common/serializers.py:419 +#: common/serializers.py:467 msgid "Task keyword arguments" msgstr "" -#: common/serializers.py:529 +#: common/serializers.py:577 msgid "Filename" msgstr "Nome del file" -#: common/serializers.py:536 report/api.py:100 report/serializers.py:53 +#: common/serializers.py:584 report/api.py:100 report/serializers.py:54 msgid "Model Type" msgstr "" -#: common/serializers.py:565 +#: common/serializers.py:612 msgid "User does not have permission to create or edit attachments for this model" msgstr "" @@ -4116,15 +4295,15 @@ msgstr "Abbina Campi" msgid "Match Items" msgstr "Elementi corrispondenti" -#: common/views.py:401 +#: common/views.py:397 msgid "Fields matching failed" msgstr "Corrispondenza campi non riuscita" -#: common/views.py:464 +#: common/views.py:460 msgid "Parts imported" msgstr "Articoli importati" -#: common/views.py:494 order/templates/order/order_wizard/match_fields.html:27 +#: common/views.py:490 order/templates/order/order_wizard/match_fields.html:27 #: order/templates/order/order_wizard/match_parts.html:19 #: order/templates/order/order_wizard/po_upload.html:49 #: part/templates/part/import_wizard/match_fields.html:27 @@ -4155,429 +4334,429 @@ msgstr "" msgid "Supplier is Active" msgstr "" -#: company/models.py:100 company/models.py:371 +#: company/models.py:97 company/models.py:368 #: company/templates/company/company_base.html:8 #: company/templates/company/company_base.html:12 stock/api.py:812 -#: templates/InvenTree/search.html:178 templates/js/translated/company.js:496 +#: templates/InvenTree/search.html:178 templates/js/translated/company.js:497 msgid "Company" msgstr "Azienda" -#: company/models.py:101 company/views.py:51 +#: company/models.py:98 company/views.py:51 #: templates/js/translated/search.js:192 msgid "Companies" msgstr "Aziende" -#: company/models.py:117 +#: company/models.py:114 msgid "Company description" msgstr "Descrizione azienda" -#: company/models.py:118 +#: company/models.py:115 msgid "Description of the company" msgstr "Descrizione dell'azienda" -#: company/models.py:123 company/templates/company/company_base.html:106 +#: company/models.py:120 company/templates/company/company_base.html:106 #: templates/InvenTree/settings/plugin_settings.html:54 -#: templates/js/translated/company.js:532 +#: templates/js/translated/company.js:533 msgid "Website" msgstr "Sito Web" -#: company/models.py:123 +#: company/models.py:120 msgid "Company website URL" msgstr "Sito web aziendale" -#: company/models.py:128 +#: company/models.py:125 msgid "Phone number" msgstr "Telefono" -#: company/models.py:130 +#: company/models.py:127 msgid "Contact phone number" msgstr "Numero di telefono di contatto" -#: company/models.py:137 +#: company/models.py:134 msgid "Contact email address" msgstr "Indirizzo email" -#: company/models.py:142 company/models.py:275 -#: company/templates/company/company_base.html:145 order/models.py:342 -#: order/templates/order/order_base.html:208 -#: order/templates/order/return_order_base.html:177 -#: order/templates/order/sales_order_base.html:221 +#: company/models.py:139 company/models.py:272 +#: company/templates/company/company_base.html:145 order/models.py:349 +#: order/templates/order/order_base.html:217 +#: order/templates/order/return_order_base.html:178 +#: order/templates/order/sales_order_base.html:222 msgid "Contact" msgstr "Contatto" -#: company/models.py:144 +#: company/models.py:141 msgid "Point of contact" msgstr "Punto di contatto" -#: company/models.py:150 +#: company/models.py:147 msgid "Link to external company information" msgstr "Collegamento alle informazioni aziendali esterne" -#: company/models.py:163 +#: company/models.py:160 msgid "Is this company active?" msgstr "" -#: company/models.py:168 +#: company/models.py:165 msgid "Is customer" msgstr "" -#: company/models.py:169 +#: company/models.py:166 msgid "Do you sell items to this company?" msgstr "Vendi oggetti a questa azienda?" -#: company/models.py:174 +#: company/models.py:171 msgid "Is supplier" msgstr "" -#: company/models.py:175 +#: company/models.py:172 msgid "Do you purchase items from this company?" msgstr "Acquistate articoli da questa azienda?" -#: company/models.py:180 +#: company/models.py:177 msgid "Is manufacturer" msgstr "" -#: company/models.py:181 +#: company/models.py:178 msgid "Does this company manufacture parts?" msgstr "Questa azienda produce articoli?" -#: company/models.py:189 +#: company/models.py:186 msgid "Default currency used for this company" msgstr "Valuta predefinita utilizzata per questa azienda" -#: company/models.py:314 company/templates/company/company_base.html:124 -#: order/models.py:352 order/templates/order/order_base.html:215 -#: order/templates/order/return_order_base.html:184 -#: order/templates/order/sales_order_base.html:228 +#: company/models.py:311 company/templates/company/company_base.html:124 +#: order/models.py:359 order/templates/order/order_base.html:224 +#: order/templates/order/return_order_base.html:185 +#: order/templates/order/sales_order_base.html:229 msgid "Address" msgstr "Indirizzo" -#: company/models.py:315 company/templates/company/sidebar.html:35 +#: company/models.py:312 company/templates/company/sidebar.html:35 msgid "Addresses" msgstr "" -#: company/models.py:372 +#: company/models.py:369 msgid "Select company" msgstr "" -#: company/models.py:377 +#: company/models.py:374 msgid "Address title" msgstr "" -#: company/models.py:378 +#: company/models.py:375 msgid "Title describing the address entry" msgstr "" -#: company/models.py:384 +#: company/models.py:381 msgid "Primary address" msgstr "" -#: company/models.py:385 +#: company/models.py:382 msgid "Set as primary address" msgstr "" -#: company/models.py:390 templates/js/translated/company.js:914 -#: templates/js/translated/company.js:971 +#: company/models.py:387 templates/js/translated/company.js:915 +#: templates/js/translated/company.js:972 msgid "Line 1" msgstr "" -#: company/models.py:391 +#: company/models.py:388 msgid "Address line 1" msgstr "" -#: company/models.py:397 templates/js/translated/company.js:915 -#: templates/js/translated/company.js:977 +#: company/models.py:394 templates/js/translated/company.js:916 +#: templates/js/translated/company.js:978 msgid "Line 2" msgstr "" -#: company/models.py:398 +#: company/models.py:395 msgid "Address line 2" msgstr "" -#: company/models.py:404 company/models.py:405 -#: templates/js/translated/company.js:983 +#: company/models.py:401 company/models.py:402 +#: templates/js/translated/company.js:984 msgid "Postal code" msgstr "" -#: company/models.py:411 +#: company/models.py:408 msgid "City/Region" msgstr "" -#: company/models.py:412 +#: company/models.py:409 msgid "Postal code city/region" msgstr "" -#: company/models.py:418 +#: company/models.py:415 msgid "State/Province" msgstr "" -#: company/models.py:419 +#: company/models.py:416 msgid "State or province" msgstr "" -#: company/models.py:425 templates/js/translated/company.js:1001 +#: company/models.py:422 templates/js/translated/company.js:1002 msgid "Country" msgstr "" -#: company/models.py:426 +#: company/models.py:423 msgid "Address country" msgstr "" -#: company/models.py:432 +#: company/models.py:429 msgid "Courier shipping notes" msgstr "" -#: company/models.py:433 +#: company/models.py:430 msgid "Notes for shipping courier" msgstr "" -#: company/models.py:439 +#: company/models.py:436 msgid "Internal shipping notes" msgstr "" -#: company/models.py:440 +#: company/models.py:437 msgid "Shipping notes for internal use" msgstr "" -#: company/models.py:447 +#: company/models.py:444 msgid "Link to address information (external)" msgstr "" -#: company/models.py:470 company/models.py:587 company/models.py:811 +#: company/models.py:467 company/models.py:584 company/models.py:808 #: company/templates/company/manufacturer_part.html:7 #: company/templates/company/manufacturer_part.html:24 -#: stock/templates/stock/item_base.html:217 +#: stock/templates/stock/item_base.html:214 msgid "Manufacturer Part" msgstr "Codice articolo produttore" -#: company/models.py:487 company/models.py:779 stock/models.py:787 -#: stock/serializers.py:445 stock/templates/stock/item_base.html:142 +#: company/models.py:484 company/models.py:776 stock/models.py:864 +#: stock/serializers.py:455 stock/templates/stock/item_base.html:139 #: templates/js/translated/bom.js:622 msgid "Base Part" msgstr "Articolo di base" -#: company/models.py:489 company/models.py:781 +#: company/models.py:486 company/models.py:778 msgid "Select part" msgstr "Seleziona articolo" -#: company/models.py:498 company/templates/company/company_base.html:82 +#: company/models.py:495 company/templates/company/company_base.html:82 #: company/templates/company/manufacturer_part.html:90 -#: company/templates/company/supplier_part.html:145 part/serializers.py:554 -#: stock/templates/stock/item_base.html:207 -#: templates/js/translated/company.js:507 -#: templates/js/translated/company.js:1118 -#: templates/js/translated/company.js:1296 -#: templates/js/translated/company.js:1611 +#: company/templates/company/supplier_part.html:146 part/serializers.py:598 +#: stock/templates/stock/item_base.html:204 +#: templates/js/translated/company.js:508 +#: templates/js/translated/company.js:1119 +#: templates/js/translated/company.js:1297 +#: templates/js/translated/company.js:1612 #: templates/js/translated/table_filters.js:812 msgid "Manufacturer" msgstr "Produttore" -#: company/models.py:499 +#: company/models.py:496 msgid "Select manufacturer" msgstr "Seleziona Produttore" -#: company/models.py:505 company/templates/company/manufacturer_part.html:101 -#: company/templates/company/supplier_part.html:153 order/serializers.py:556 -#: part/serializers.py:564 templates/js/translated/company.js:351 -#: templates/js/translated/company.js:1117 -#: templates/js/translated/company.js:1312 -#: templates/js/translated/company.js:1630 templates/js/translated/part.js:1807 -#: templates/js/translated/purchase_order.js:1921 -#: templates/js/translated/purchase_order.js:2123 +#: company/models.py:502 company/templates/company/manufacturer_part.html:101 +#: company/templates/company/supplier_part.html:154 order/serializers.py:641 +#: part/serializers.py:608 templates/js/translated/company.js:352 +#: templates/js/translated/company.js:1118 +#: templates/js/translated/company.js:1313 +#: templates/js/translated/company.js:1631 templates/js/translated/part.js:1807 +#: templates/js/translated/purchase_order.js:1905 +#: templates/js/translated/purchase_order.js:2107 msgid "MPN" msgstr "Codice articolo produttore (MPN)" -#: company/models.py:513 +#: company/models.py:510 msgid "URL for external manufacturer part link" msgstr "URL dell'articolo del fornitore" -#: company/models.py:522 +#: company/models.py:519 msgid "Manufacturer part description" msgstr "Descrizione articolo costruttore" -#: company/models.py:575 +#: company/models.py:572 msgid "Manufacturer Part Parameter" msgstr "" -#: company/models.py:594 +#: company/models.py:591 msgid "Parameter name" msgstr "Nome parametro" -#: company/models.py:600 report/templates/report/inventree_test_report.html:104 -#: stock/models.py:2550 templates/js/translated/company.js:1166 -#: templates/js/translated/company.js:1419 templates/js/translated/part.js:1499 +#: company/models.py:597 report/templates/report/inventree_test_report.html:104 +#: stock/models.py:2666 templates/js/translated/company.js:1167 +#: templates/js/translated/company.js:1420 templates/js/translated/part.js:1499 #: templates/js/translated/stock.js:1607 msgid "Value" msgstr "Valore" -#: company/models.py:601 +#: company/models.py:598 msgid "Parameter value" msgstr "Valore del parametro" -#: company/models.py:608 company/templates/company/supplier_part.html:168 -#: part/admin.py:57 part/models.py:1147 part/models.py:3771 -#: part/templates/part/part_base.html:293 -#: templates/js/translated/company.js:1425 templates/js/translated/part.js:1518 +#: company/models.py:605 company/templates/company/supplier_part.html:169 +#: part/admin.py:57 part/models.py:1208 part/models.py:3822 +#: part/templates/part/part_base.html:301 +#: templates/js/translated/company.js:1426 templates/js/translated/part.js:1518 #: templates/js/translated/part.js:1622 templates/js/translated/part.js:2376 msgid "Units" msgstr "Unità" -#: company/models.py:609 +#: company/models.py:606 msgid "Parameter units" msgstr "Unità parametri" -#: company/models.py:662 company/templates/company/supplier_part.html:7 -#: company/templates/company/supplier_part.html:24 order/api.py:442 -#: order/serializers.py:491 stock/models.py:798 -#: stock/templates/stock/item_base.html:233 -#: templates/js/translated/build.js:1052 -#: templates/js/translated/company.js:1600 -#: templates/js/translated/purchase_order.js:752 -#: templates/js/translated/stock.js:2365 +#: company/models.py:659 company/templates/company/supplier_part.html:8 +#: company/templates/company/supplier_part.html:25 order/api.py:392 +#: order/serializers.py:576 stock/models.py:875 +#: stock/templates/stock/item_base.html:230 +#: templates/js/translated/build.js:1055 +#: templates/js/translated/company.js:1601 +#: templates/js/translated/purchase_order.js:735 +#: templates/js/translated/stock.js:2366 msgid "Supplier Part" msgstr "Articolo Fornitore" -#: company/models.py:719 +#: company/models.py:716 msgid "Pack units must be compatible with the base part units" msgstr "" -#: company/models.py:726 +#: company/models.py:723 msgid "Pack units must be greater than zero" msgstr "" -#: company/models.py:740 +#: company/models.py:737 msgid "Linked manufacturer part must reference the same base part" msgstr "L'articolo del costruttore collegato deve riferirsi alla stesso articolo" -#: company/models.py:789 company/templates/company/company_base.html:87 -#: company/templates/company/supplier_part.html:129 order/models.py:491 -#: order/templates/order/order_base.html:141 part/bom.py:280 part/bom.py:318 -#: part/serializers.py:538 plugin/builtin/suppliers/digikey.py:25 +#: company/models.py:786 company/templates/company/company_base.html:87 +#: company/templates/company/supplier_part.html:130 order/models.py:503 +#: order/templates/order/order_base.html:150 part/bom.py:279 part/bom.py:314 +#: part/serializers.py:582 plugin/builtin/suppliers/digikey.py:25 #: plugin/builtin/suppliers/lcsc.py:26 plugin/builtin/suppliers/mouser.py:24 -#: plugin/builtin/suppliers/tme.py:26 stock/templates/stock/item_base.html:224 +#: plugin/builtin/suppliers/tme.py:26 stock/templates/stock/item_base.html:221 #: templates/email/overdue_purchase_order.html:16 -#: templates/js/translated/company.js:350 -#: templates/js/translated/company.js:511 -#: templates/js/translated/company.js:1584 templates/js/translated/part.js:1775 +#: templates/js/translated/company.js:351 +#: templates/js/translated/company.js:512 +#: templates/js/translated/company.js:1585 templates/js/translated/part.js:1775 #: templates/js/translated/pricing.js:498 -#: templates/js/translated/purchase_order.js:1759 +#: templates/js/translated/purchase_order.js:1743 #: templates/js/translated/table_filters.js:816 msgid "Supplier" msgstr "Fornitore" -#: company/models.py:790 +#: company/models.py:787 msgid "Select supplier" msgstr "Seleziona fornitore" -#: company/models.py:796 part/serializers.py:549 +#: company/models.py:793 part/serializers.py:593 msgid "Supplier stock keeping unit" msgstr "Unità di giacenza magazzino fornitore" -#: company/models.py:802 +#: company/models.py:799 msgid "Is this supplier part active?" msgstr "" -#: company/models.py:812 +#: company/models.py:809 msgid "Select manufacturer part" msgstr "Selezionare un produttore" -#: company/models.py:819 +#: company/models.py:816 msgid "URL for external supplier part link" msgstr "URL dell'articolo del fornitore" -#: company/models.py:828 +#: company/models.py:825 msgid "Supplier part description" msgstr "Descrizione articolo fornitore" -#: company/models.py:835 company/templates/company/supplier_part.html:187 -#: order/serializers.py:698 part/admin.py:415 part/models.py:4288 +#: company/models.py:832 company/templates/company/supplier_part.html:188 +#: order/serializers.py:783 part/admin.py:415 part/models.py:4345 #: part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_bill_of_materials_report.html:140 #: report/templates/report/inventree_purchase_order_report.html:32 #: report/templates/report/inventree_return_order_report.html:27 #: report/templates/report/inventree_sales_order_report.html:32 #: report/templates/report/inventree_stock_location_report.html:105 -#: stock/serializers.py:776 templates/js/translated/purchase_order.js:1185 -#: templates/js/translated/purchase_order.js:1344 +#: stock/serializers.py:807 templates/js/translated/purchase_order.js:1168 +#: templates/js/translated/purchase_order.js:1327 msgid "Note" msgstr "Nota" -#: company/models.py:844 part/models.py:2117 +#: company/models.py:841 part/models.py:2177 msgid "base cost" msgstr "costo base" -#: company/models.py:845 part/models.py:2118 +#: company/models.py:842 part/models.py:2178 msgid "Minimum charge (e.g. stocking fee)" msgstr "Onere minimo (ad esempio tassa di stoccaggio)" -#: company/models.py:853 +#: company/models.py:850 msgid "Part packaging" msgstr "Imballaggio del pezzo" -#: company/models.py:858 templates/js/translated/company.js:1651 +#: company/models.py:855 templates/js/translated/company.js:1652 #: templates/js/translated/part.js:1828 templates/js/translated/part.js:1884 -#: templates/js/translated/purchase_order.js:311 -#: templates/js/translated/purchase_order.js:841 -#: templates/js/translated/purchase_order.js:1103 -#: templates/js/translated/purchase_order.js:2154 -#: templates/js/translated/purchase_order.js:2171 +#: templates/js/translated/purchase_order.js:294 +#: templates/js/translated/purchase_order.js:824 +#: templates/js/translated/purchase_order.js:1086 +#: templates/js/translated/purchase_order.js:2138 +#: templates/js/translated/purchase_order.js:2155 msgid "Pack Quantity" msgstr "Quantità Confezione" -#: company/models.py:860 +#: company/models.py:857 msgid "Total quantity supplied in a single pack. Leave empty for single items." msgstr "" -#: company/models.py:879 part/models.py:2124 +#: company/models.py:876 part/models.py:2184 msgid "multiple" msgstr "multiplo" -#: company/models.py:880 +#: company/models.py:877 msgid "Order multiple" msgstr "Ordine multiplo" -#: company/models.py:892 +#: company/models.py:889 msgid "Quantity available from supplier" msgstr "Quantità disponibile dal fornitore" -#: company/models.py:898 +#: company/models.py:895 msgid "Availability Updated" msgstr "Disponibilità Aggiornata" -#: company/models.py:899 +#: company/models.py:896 msgid "Date of last update of availability data" msgstr "Data dell’ultimo aggiornamento dei dati sulla disponibilità" -#: company/models.py:1027 +#: company/models.py:1024 msgid "Supplier Price Break" msgstr "" -#: company/serializers.py:174 +#: company/serializers.py:178 msgid "Default currency used for this supplier" msgstr "Valuta predefinita utilizzata per questo fornitore" -#: company/serializers.py:210 +#: company/serializers.py:214 msgid "Company Name" msgstr "" -#: company/serializers.py:393 part/admin.py:126 part/serializers.py:898 -#: part/templates/part/part_base.html:197 -#: templates/js/translated/company.js:1689 +#: company/serializers.py:397 part/admin.py:126 part/serializers.py:950 +#: part/templates/part/part_base.html:198 stock/serializers.py:474 +#: templates/js/translated/company.js:1690 #: templates/js/translated/table_filters.js:362 msgid "In Stock" msgstr "In magazzino" #: company/templates/company/company_base.html:16 -#: part/templates/part/part_base.html:146 -#: templates/js/translated/company.js:1287 -#: templates/js/translated/company.js:1575 -#: templates/js/translated/model_renderers.js:313 +#: part/templates/part/part_base.html:147 +#: templates/js/translated/company.js:1288 +#: templates/js/translated/company.js:1576 +#: templates/js/translated/model_renderers.js:316 #: templates/js/translated/part.js:817 templates/js/translated/part.js:1225 msgid "Inactive" msgstr "Inattivo" #: company/templates/company/company_base.html:27 -#: templates/js/translated/purchase_order.js:242 +#: templates/js/translated/purchase_order.js:224 msgid "Create Purchase Order" msgstr "Crea ordine d'acquisto" @@ -4590,7 +4769,7 @@ msgid "Edit company information" msgstr "Modifica le informazioni dell'azienda" #: company/templates/company/company_base.html:39 -#: templates/js/translated/company.js:445 +#: templates/js/translated/company.js:446 msgid "Edit Company" msgstr "Modifica azienda" @@ -4605,11 +4784,12 @@ msgstr "Elimina Azienda" #: company/templates/company/company_base.html:53 #: company/templates/company/manufacturer_part.html:51 -#: company/templates/company/supplier_part.html:83 +#: company/templates/company/supplier_part.html:84 #: part/templates/part/part_thumb.html:20 #: report/templates/report/inventree_build_order_report.html:98 #: report/templates/report/inventree_purchase_order_report.html:40 #: report/templates/report/inventree_sales_order_report.html:40 +#: report/templates/report/inventree_sales_order_shipment_report.html:37 #: report/templates/report/inventree_test_report.html:84 #: report/templates/report/inventree_test_report.html:162 msgid "Part image" @@ -4630,16 +4810,16 @@ msgstr "Scarica immagine dall'URL" msgid "Delete image" msgstr "Elimina immagine" -#: company/templates/company/company_base.html:92 order/models.py:990 -#: order/models.py:2147 order/templates/order/return_order_base.html:134 -#: order/templates/order/sales_order_base.html:151 stock/models.py:840 -#: stock/models.py:841 stock/serializers.py:1329 -#: stock/templates/stock/item_base.html:405 +#: company/templates/company/company_base.html:92 order/models.py:1017 +#: order/models.py:2186 order/templates/order/return_order_base.html:135 +#: order/templates/order/sales_order_base.html:152 stock/models.py:917 +#: stock/models.py:918 stock/serializers.py:1360 +#: stock/templates/stock/item_base.html:402 #: templates/email/overdue_sales_order.html:16 -#: templates/js/translated/company.js:503 +#: templates/js/translated/company.js:504 #: templates/js/translated/return_order.js:295 -#: templates/js/translated/sales_order.js:820 -#: templates/js/translated/stock.js:3043 +#: templates/js/translated/sales_order.js:779 +#: templates/js/translated/stock.js:3044 #: templates/js/translated/table_filters.js:820 msgid "Customer" msgstr "Cliente" @@ -4653,7 +4833,7 @@ msgid "Phone" msgstr "Telefono" #: company/templates/company/company_base.html:211 -#: part/templates/part/part_base.html:536 +#: part/templates/part/part_base.html:544 msgid "Remove Image" msgstr "" @@ -4662,19 +4842,19 @@ msgid "Remove associated image from this company" msgstr "" #: company/templates/company/company_base.html:214 -#: part/templates/part/part_base.html:539 +#: part/templates/part/part_base.html:547 #: templates/InvenTree/settings/user.html:88 #: templates/InvenTree/settings/user_sso.html:43 msgid "Remove" msgstr "Rimuovi" #: company/templates/company/company_base.html:243 -#: part/templates/part/part_base.html:568 +#: part/templates/part/part_base.html:576 msgid "Upload Image" msgstr "" #: company/templates/company/company_base.html:258 -#: part/templates/part/part_base.html:622 +#: part/templates/part/part_base.html:630 msgid "Download Image" msgstr "" @@ -4714,7 +4894,7 @@ msgstr "Giacenza Fornitore" #: company/templates/company/detail.html:75 #: company/templates/company/sidebar.html:12 #: company/templates/company/supplier_part_sidebar.html:7 -#: order/templates/order/order_base.html:13 +#: order/templates/order/order_base.html:14 #: order/templates/order/purchase_orders.html:8 #: order/templates/order/purchase_orders.html:12 #: part/templates/part/detail.html:122 part/templates/part/part_sidebar.html:35 @@ -4737,7 +4917,7 @@ msgstr "Nuovo Ordine di Acquisto" #: company/templates/company/detail.html:101 #: company/templates/company/sidebar.html:21 -#: order/templates/order/sales_order_base.html:13 +#: order/templates/order/sales_order_base.html:14 #: order/templates/order/sales_orders.html:8 #: order/templates/order/sales_orders.html:15 #: part/templates/part/detail.html:143 part/templates/part/part_sidebar.html:39 @@ -4764,7 +4944,7 @@ msgstr "Assegna Giacenza" #: company/templates/company/detail.html:142 #: company/templates/company/sidebar.html:29 -#: order/templates/order/return_order_base.html:13 +#: order/templates/order/return_order_base.html:14 #: order/templates/order/return_orders.html:8 #: order/templates/order/return_orders.html:15 #: templates/InvenTree/settings/sidebar.html:61 @@ -4811,24 +4991,24 @@ msgid "Manufacturers" msgstr "Produttori" #: company/templates/company/manufacturer_part.html:35 -#: company/templates/company/supplier_part.html:227 -#: part/templates/part/detail.html:125 part/templates/part/part_base.html:83 +#: company/templates/company/supplier_part.html:228 +#: part/templates/part/detail.html:125 part/templates/part/part_base.html:84 msgid "Order part" msgstr "Articoli ordinati" #: company/templates/company/manufacturer_part.html:39 -#: templates/js/translated/company.js:1343 +#: templates/js/translated/company.js:1344 msgid "Edit manufacturer part" msgstr "Modifica articolo produttore" #: company/templates/company/manufacturer_part.html:43 -#: templates/js/translated/company.js:1344 +#: templates/js/translated/company.js:1345 msgid "Delete manufacturer part" msgstr "Cancella articolo produttore" #: company/templates/company/manufacturer_part.html:65 -#: company/templates/company/supplier_part.html:97 order/api.py:448 -#: order/serializers.py:564 +#: company/templates/company/supplier_part.html:98 order/api.py:411 +#: order/serializers.py:649 msgid "Internal Part" msgstr "Articolo interno" @@ -4837,8 +5017,8 @@ msgid "No manufacturer information available" msgstr "Nessuna informazione sul produttore disponibile" #: company/templates/company/manufacturer_part.html:119 -#: company/templates/company/supplier_part.html:15 company/views.py:31 -#: part/admin.py:122 part/serializers.py:904 +#: company/templates/company/supplier_part.html:16 company/views.py:31 +#: part/admin.py:122 part/serializers.py:956 #: part/templates/part/part_sidebar.html:33 templates/InvenTree/search.html:190 #: templates/navbar.html:48 msgid "Suppliers" @@ -4887,112 +5067,113 @@ msgstr "Elementi in Giacenza Impegnati" msgid "Contacts" msgstr "Contatti" -#: company/templates/company/supplier_part.html:50 -#: templates/js/translated/company.js:1526 +#: company/templates/company/supplier_part.html:51 +#: templates/js/translated/company.js:1527 msgid "Supplier part actions" msgstr "Azioni Articolo Fornitore" -#: company/templates/company/supplier_part.html:55 #: company/templates/company/supplier_part.html:56 -#: company/templates/company/supplier_part.html:228 +#: company/templates/company/supplier_part.html:57 +#: company/templates/company/supplier_part.html:229 #: part/templates/part/detail.html:126 msgid "Order Part" msgstr "Ordine Articolo" -#: company/templates/company/supplier_part.html:60 #: company/templates/company/supplier_part.html:61 +#: company/templates/company/supplier_part.html:62 msgid "Update Availability" msgstr "Aggiorna Disponibilità" -#: company/templates/company/supplier_part.html:63 #: company/templates/company/supplier_part.html:64 -#: templates/js/translated/company.js:294 +#: company/templates/company/supplier_part.html:65 +#: templates/js/translated/company.js:295 msgid "Edit Supplier Part" msgstr "Modifica fornitore articolo" -#: company/templates/company/supplier_part.html:68 #: company/templates/company/supplier_part.html:69 -#: templates/js/translated/company.js:269 +#: company/templates/company/supplier_part.html:70 +#: templates/js/translated/company.js:270 msgid "Duplicate Supplier Part" msgstr "Duplica Articoli Fornitore" -#: company/templates/company/supplier_part.html:73 +#: company/templates/company/supplier_part.html:74 msgid "Delete Supplier Part" msgstr "Cancella Articolo Fornitore" -#: company/templates/company/supplier_part.html:74 +#: company/templates/company/supplier_part.html:75 msgid "Delete Supplier Part" msgstr "Elimina Articolo Fornitore" -#: company/templates/company/supplier_part.html:133 +#: company/templates/company/supplier_part.html:134 +#: order/templates/order/order_base.html:155 msgid "No supplier information available" msgstr "Nessuna informazione sul fornitore disponibile" -#: company/templates/company/supplier_part.html:139 order/serializers.py:553 -#: part/bom.py:287 part/bom.py:319 part/serializers.py:548 -#: templates/js/translated/company.js:349 templates/js/translated/part.js:1793 +#: company/templates/company/supplier_part.html:140 order/serializers.py:638 +#: part/bom.py:286 part/bom.py:315 part/serializers.py:592 +#: templates/js/translated/company.js:350 templates/js/translated/part.js:1793 #: templates/js/translated/pricing.js:510 -#: templates/js/translated/purchase_order.js:1920 -#: templates/js/translated/purchase_order.js:2098 +#: templates/js/translated/purchase_order.js:1904 +#: templates/js/translated/purchase_order.js:2082 msgid "SKU" msgstr "" -#: company/templates/company/supplier_part.html:206 +#: company/templates/company/supplier_part.html:207 msgid "Supplier Part Stock" msgstr "Fornitore articolo in giacenza" -#: company/templates/company/supplier_part.html:209 -#: part/templates/part/detail.html:24 stock/templates/stock/location.html:204 +#: company/templates/company/supplier_part.html:210 +#: part/templates/part/detail.html:24 stock/templates/stock/location.html:205 msgid "Create new stock item" msgstr "Crea nuova allocazione magazzino" -#: company/templates/company/supplier_part.html:210 -#: part/templates/part/detail.html:25 stock/templates/stock/location.html:205 +#: company/templates/company/supplier_part.html:211 +#: part/templates/part/detail.html:25 stock/templates/stock/location.html:206 #: templates/js/translated/stock.js:543 msgid "New Stock Item" msgstr "Nuovo Elemento in giacenza" -#: company/templates/company/supplier_part.html:223 +#: company/templates/company/supplier_part.html:224 msgid "Supplier Part Orders" msgstr "Ordini articoli fornitore" -#: company/templates/company/supplier_part.html:246 +#: company/templates/company/supplier_part.html:247 msgid "Pricing Information" msgstr "Informazioni Prezzi" -#: company/templates/company/supplier_part.html:251 -#: templates/js/translated/company.js:398 +#: company/templates/company/supplier_part.html:252 +#: templates/js/translated/company.js:399 #: templates/js/translated/pricing.js:684 msgid "Add Price Break" msgstr "Aggiungi riduzione prezzo" -#: company/templates/company/supplier_part.html:270 +#: company/templates/company/supplier_part.html:271 msgid "Supplier Part Notes" msgstr "" -#: company/templates/company/supplier_part.html:305 +#: company/templates/company/supplier_part.html:306 msgid "Supplier Part QR Code" msgstr "" -#: company/templates/company/supplier_part.html:316 +#: company/templates/company/supplier_part.html:317 msgid "Link Barcode to Supplier Part" msgstr "" -#: company/templates/company/supplier_part.html:388 +#: company/templates/company/supplier_part.html:389 msgid "Update Part Availability" msgstr "" #: company/templates/company/supplier_part_sidebar.html:5 -#: part/serializers.py:902 part/stocktake.py:223 +#: part/serializers.py:954 part/stocktake.py:223 #: part/templates/part/category.html:180 #: part/templates/part/category_sidebar.html:17 stock/admin.py:68 -#: stock/serializers.py:1014 stock/serializers.py:1192 -#: stock/templates/stock/location.html:167 -#: stock/templates/stock/location.html:188 -#: stock/templates/stock/location.html:200 +#: stock/serializers.py:1045 stock/serializers.py:1223 +#: stock/templates/stock/location.html:168 +#: stock/templates/stock/location.html:189 +#: stock/templates/stock/location.html:201 #: stock/templates/stock/location_sidebar.html:7 #: templates/InvenTree/search.html:155 templates/js/translated/part.js:1067 -#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2850 +#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2851 #: users/models.py:206 msgid "Stock Items" msgstr "Articoli in magazzino" @@ -5022,99 +5203,99 @@ msgstr "Nuovo cliente" msgid "New Company" msgstr "Nuova Azienda" -#: generic/states/tests.py:18 order/status_codes.py:13 +#: generic/states/fields.py:118 +msgid "Custom status key" +msgstr "" + +#: generic/states/fields.py:119 +msgid "Additional status information for this item" +msgstr "" + +#: generic/states/tests.py:22 order/status_codes.py:13 msgid "Placed" msgstr "Inviato" -#: importer/mixins.py:263 +#: importer/mixins.py:261 msgid "Invalid export format" msgstr "" -#: importer/models.py:59 -msgid "Timestamp" -msgstr "" - -#: importer/models.py:64 +#: importer/models.py:65 msgid "Data file to import" msgstr "" -#: importer/models.py:73 templates/js/translated/tables.js:558 +#: importer/models.py:74 templates/js/translated/tables.js:558 msgid "Columns" msgstr "" -#: importer/models.py:84 +#: importer/models.py:85 msgid "Import status" msgstr "" -#: importer/models.py:94 +#: importer/models.py:95 msgid "Field Defaults" msgstr "" -#: importer/models.py:101 +#: importer/models.py:102 msgid "Field Overrides" msgstr "" -#: importer/models.py:108 +#: importer/models.py:109 msgid "Field Filters" msgstr "" -#: importer/models.py:230 +#: importer/models.py:239 msgid "Some required fields have not been mapped" msgstr "" -#: importer/models.py:387 +#: importer/models.py:396 msgid "Column is already mapped to a database field" msgstr "" -#: importer/models.py:392 +#: importer/models.py:401 msgid "Field is already mapped to a data column" msgstr "" -#: importer/models.py:401 +#: importer/models.py:410 msgid "Column mapping must be linked to a valid import session" msgstr "" -#: importer/models.py:406 +#: importer/models.py:415 msgid "Column does not exist in the data file" msgstr "" -#: importer/models.py:413 +#: importer/models.py:422 msgid "Field does not exist in the target model" msgstr "" -#: importer/models.py:417 +#: importer/models.py:426 msgid "Selected field is read-only" msgstr "" -#: importer/models.py:422 importer/models.py:493 +#: importer/models.py:431 importer/models.py:502 msgid "Import Session" msgstr "" -#: importer/models.py:426 +#: importer/models.py:435 msgid "Field" msgstr "" -#: importer/models.py:428 +#: importer/models.py:437 msgid "Column" msgstr "" -#: importer/models.py:497 +#: importer/models.py:506 msgid "Row Index" msgstr "" -#: importer/models.py:500 +#: importer/models.py:509 msgid "Original row data" msgstr "" -#: importer/models.py:503 part/models.py:3951 -msgid "Data" -msgstr "Dati" - -#: importer/models.py:505 machine/models.py:110 +#: importer/models.py:514 machine/models.py:110 msgid "Errors" msgstr "" -#: importer/models.py:507 part/api.py:873 +#: importer/models.py:516 part/api.py:857 msgid "Valid" msgstr "Valido" @@ -5166,19 +5347,19 @@ msgstr "" msgid "Row has already been completed" msgstr "" -#: importer/status_codes.py:11 +#: importer/status_codes.py:13 msgid "Initializing" msgstr "" -#: importer/status_codes.py:12 +#: importer/status_codes.py:18 msgid "Mapping Columns" msgstr "" -#: importer/status_codes.py:13 +#: importer/status_codes.py:21 msgid "Importing Data" msgstr "" -#: importer/status_codes.py:16 +#: importer/status_codes.py:24 msgid "Processing Data" msgstr "" @@ -5202,52 +5383,52 @@ msgstr "" msgid "Value must be a valid dictionary object" msgstr "" -#: machine/machine_types/label_printer.py:215 +#: machine/machine_types/label_printer.py:216 msgid "Copies" msgstr "" -#: machine/machine_types/label_printer.py:216 +#: machine/machine_types/label_printer.py:217 msgid "Number of copies to print for each label" msgstr "" -#: machine/machine_types/label_printer.py:231 +#: machine/machine_types/label_printer.py:232 msgid "Connected" msgstr "" -#: machine/machine_types/label_printer.py:232 order/api.py:1410 -#: templates/js/translated/sales_order.js:1078 +#: machine/machine_types/label_printer.py:233 order/api.py:1532 +#: templates/js/translated/sales_order.js:1044 msgid "Unknown" msgstr "Sconosciuto" -#: machine/machine_types/label_printer.py:233 +#: machine/machine_types/label_printer.py:234 msgid "Printing" msgstr "" -#: machine/machine_types/label_printer.py:234 +#: machine/machine_types/label_printer.py:235 msgid "No media" msgstr "" -#: machine/machine_types/label_printer.py:235 +#: machine/machine_types/label_printer.py:236 msgid "Paper jam" msgstr "" -#: machine/machine_types/label_printer.py:236 +#: machine/machine_types/label_printer.py:237 msgid "Disconnected" msgstr "" -#: machine/machine_types/label_printer.py:243 +#: machine/machine_types/label_printer.py:244 msgid "Label Printer" msgstr "" -#: machine/machine_types/label_printer.py:244 +#: machine/machine_types/label_printer.py:245 msgid "Directly print labels for various items." msgstr "" -#: machine/machine_types/label_printer.py:250 +#: machine/machine_types/label_printer.py:251 msgid "Printer Location" msgstr "" -#: machine/machine_types/label_printer.py:251 +#: machine/machine_types/label_printer.py:252 msgid "Scope the printer to a specific location" msgstr "" @@ -5307,79 +5488,75 @@ msgstr "" #: report/templates/report/inventree_purchase_order_report.html:31 #: report/templates/report/inventree_sales_order_report.html:31 #: templates/js/translated/order.js:352 -#: templates/js/translated/purchase_order.js:2195 -#: templates/js/translated/sales_order.js:1883 +#: templates/js/translated/purchase_order.js:2179 +#: templates/js/translated/sales_order.js:1864 msgid "Total Price" msgstr "Prezzo Totale" -#: order/api.py:80 order/api.py:151 order/serializers.py:93 -#: order/templates/order/order_base.html:123 -#: order/templates/order/return_order_base.html:116 -#: order/templates/order/sales_order_base.html:125 +#: order/api.py:78 order/api.py:149 order/serializers.py:124 +#: order/templates/order/order_base.html:124 +#: order/templates/order/return_order_base.html:117 +#: order/templates/order/sales_order_base.html:126 msgid "Order Status" msgstr "Stato dell'ordine" -#: order/api.py:88 order/templates/order/order_base.html:111 -#: order/templates/order/return_order_base.html:104 -#: order/templates/order/sales_order_base.html:113 +#: order/api.py:86 order/templates/order/order_base.html:112 +#: order/templates/order/return_order_base.html:105 +#: order/templates/order/sales_order_base.html:114 msgid "Order Reference" msgstr "Riferimento ordine" -#: order/api.py:116 templates/js/translated/table_filters.js:93 +#: order/api.py:114 order/api.py:1022 +#: templates/js/translated/table_filters.js:93 #: templates/js/translated/table_filters.js:625 #: templates/js/translated/table_filters.js:651 #: templates/js/translated/table_filters.js:666 msgid "Outstanding" msgstr "" -#: order/api.py:132 +#: order/api.py:130 msgid "Has Project Code" msgstr "" -#: order/api.py:155 templates/js/translated/table_filters.js:201 +#: order/api.py:153 templates/js/translated/table_filters.js:201 #: templates/js/translated/table_filters.js:791 msgid "Has Pricing" msgstr "" -#: order/api.py:230 -msgid "No matching purchase order found" -msgstr "Nessun ordine di acquisto corrispondente trovato" - -#: order/api.py:425 order/api.py:763 order/models.py:1484 order/models.py:1598 -#: order/models.py:1649 order/models.py:1764 order/models.py:1923 -#: order/models.py:2383 order/models.py:2439 -#: templates/js/translated/sales_order.js:1524 +#: order/api.py:375 order/api.py:771 order/api.py:986 order/models.py:1500 +#: order/models.py:1614 order/models.py:1665 order/models.py:1793 +#: order/models.py:1956 order/models.py:2422 order/models.py:2478 +#: templates/js/translated/sales_order.js:1490 msgid "Order" msgstr "Ordine" -#: order/api.py:429 order/api.py:784 +#: order/api.py:379 order/api.py:809 msgid "Order Complete" msgstr "" -#: order/api.py:452 +#: order/api.py:430 msgid "Order Pending" msgstr "" -#: order/api.py:1404 order/models.py:379 order/models.py:1485 -#: order/models.py:1599 order/templates/order/order_base.html:9 -#: order/templates/order/order_base.html:18 +#: order/api.py:1526 order/models.py:386 order/models.py:1501 +#: order/models.py:1615 order/templates/order/order_base.html:10 +#: order/templates/order/order_base.html:19 #: report/templates/report/inventree_purchase_order_report.html:14 -#: stock/serializers.py:120 stock/templates/stock/item_base.html:176 +#: stock/serializers.py:121 stock/templates/stock/item_base.html:173 #: templates/email/overdue_purchase_order.html:15 #: templates/js/translated/part.js:1752 templates/js/translated/pricing.js:804 -#: templates/js/translated/purchase_order.js:168 -#: templates/js/translated/purchase_order.js:753 -#: templates/js/translated/purchase_order.js:1743 -#: templates/js/translated/stock.js:2345 templates/js/translated/stock.js:2991 +#: templates/js/translated/purchase_order.js:736 +#: templates/js/translated/purchase_order.js:1727 +#: templates/js/translated/stock.js:2346 templates/js/translated/stock.js:2992 msgid "Purchase Order" msgstr "Ordine D'Acquisto" -#: order/api.py:1408 order/models.py:2091 order/models.py:2384 -#: order/models.py:2440 order/templates/order/return_order_base.html:9 -#: order/templates/order/return_order_base.html:28 +#: order/api.py:1530 order/models.py:2124 order/models.py:2423 +#: order/models.py:2479 order/templates/order/return_order_base.html:10 +#: order/templates/order/return_order_base.html:29 #: report/templates/report/inventree_return_order_report.html:13 #: templates/js/translated/return_order.js:280 -#: templates/js/translated/stock.js:3025 +#: templates/js/translated/stock.js:3026 msgid "Return Order" msgstr "Restituisci ordine" @@ -5387,751 +5564,782 @@ msgstr "Restituisci ordine" msgid "Total price for this order" msgstr "Prezzo totale dell'ordine" -#: order/models.py:95 order/serializers.py:71 +#: order/models.py:95 order/serializers.py:73 msgid "Order Currency" msgstr "" -#: order/models.py:98 order/serializers.py:72 +#: order/models.py:98 order/serializers.py:74 msgid "Currency for this order (leave blank to use company default)" msgstr "" -#: order/models.py:246 +#: order/models.py:243 msgid "Contact does not match selected company" msgstr "Il contatto non corrisponde all'azienda selezionata" -#: order/models.py:289 +#: order/models.py:296 msgid "Order description (optional)" msgstr "Descrizione dell'ordine (opzionale)" -#: order/models.py:298 +#: order/models.py:305 msgid "Select project code for this order" msgstr "Seleziona il codice del progetto per questo ordine" -#: order/models.py:302 order/models.py:1385 order/models.py:1817 +#: order/models.py:309 order/models.py:1402 order/models.py:1846 msgid "Link to external page" msgstr "Collegamento a un sito web esterno" -#: order/models.py:310 +#: order/models.py:317 msgid "Expected date for order delivery. Order will be overdue after this date." msgstr "Data prevista per la consegna dell'ordine. L'ordine scadrà dopo questa data." -#: order/models.py:324 +#: order/models.py:331 msgid "Created By" msgstr "Creato Da" -#: order/models.py:332 +#: order/models.py:339 msgid "User or group responsible for this order" msgstr "Utente o gruppo responsabile di questo ordine" -#: order/models.py:343 +#: order/models.py:350 msgid "Point of contact for this order" msgstr "Punto di contatto per questo ordine" -#: order/models.py:353 +#: order/models.py:360 msgid "Company address for this order" msgstr "" -#: order/models.py:468 order/models.py:979 +#: order/models.py:480 order/models.py:1006 msgid "Order reference" msgstr "Riferimento ordine" -#: order/models.py:477 +#: order/models.py:489 msgid "Purchase order status" msgstr "Stato ordine d'acquisto" -#: order/models.py:492 +#: order/models.py:504 msgid "Company from which the items are being ordered" msgstr "Azienda da cui sono stati ordinati gli articoli" -#: order/models.py:503 order/templates/order/order_base.html:153 -#: templates/js/translated/purchase_order.js:1772 +#: order/models.py:515 order/templates/order/order_base.html:162 +#: templates/js/translated/purchase_order.js:1756 msgid "Supplier Reference" msgstr "Riferimento fornitore" -#: order/models.py:504 +#: order/models.py:516 msgid "Supplier order reference code" msgstr "Codice di riferimento ordine fornitore" -#: order/models.py:513 +#: order/models.py:525 msgid "received by" msgstr "ricevuto da" -#: order/models.py:519 order/models.py:2173 +#: order/models.py:531 order/models.py:2212 msgid "Issue Date" msgstr "Data di emissione" -#: order/models.py:520 order/models.py:2174 +#: order/models.py:532 order/models.py:2213 msgid "Date order was issued" msgstr "Data di emissione ordine" -#: order/models.py:527 order/models.py:2181 +#: order/models.py:539 order/models.py:2220 msgid "Date order was completed" msgstr "Data ordine completato" -#: order/models.py:571 +#: order/models.py:549 order/models.py:1552 +msgid "Destination for received items" +msgstr "" + +#: order/models.py:593 msgid "Part supplier must match PO supplier" msgstr "Il fornitore dell'articolo deve corrispondere al fornitore dell'ordine di produzione" -#: order/models.py:806 +#: order/models.py:828 msgid "Quantity must be a positive number" msgstr "La quantità deve essere un numero positivo" -#: order/models.py:991 +#: order/models.py:1018 msgid "Company to which the items are being sold" msgstr "Azienda da cui sono stati ordinati gli elementi" -#: order/models.py:1003 +#: order/models.py:1030 msgid "Sales order status" msgstr "" -#: order/models.py:1014 order/models.py:2166 +#: order/models.py:1041 order/models.py:2205 msgid "Customer Reference " msgstr "Riferimento Cliente " -#: order/models.py:1015 order/models.py:2167 +#: order/models.py:1042 order/models.py:2206 msgid "Customer order reference code" msgstr "Codice di riferimento Ordine del Cliente" -#: order/models.py:1019 order/models.py:1771 -#: templates/js/translated/sales_order.js:879 -#: templates/js/translated/sales_order.js:1060 +#: order/models.py:1046 order/models.py:1800 +#: templates/js/translated/sales_order.js:838 +#: templates/js/translated/sales_order.js:1026 msgid "Shipment Date" msgstr "Data di spedizione" -#: order/models.py:1028 +#: order/models.py:1055 msgid "shipped by" msgstr "spedito da" -#: order/models.py:1077 +#: order/models.py:1094 msgid "Order is already complete" msgstr "" -#: order/models.py:1080 +#: order/models.py:1097 msgid "Order is already cancelled" msgstr "" -#: order/models.py:1084 +#: order/models.py:1101 msgid "Only an open order can be marked as complete" msgstr "Solo un ordine aperto può essere contrassegnato come completo" -#: order/models.py:1088 +#: order/models.py:1105 msgid "Order cannot be completed as there are incomplete shipments" msgstr "L'ordine non può essere completato in quanto ci sono spedizioni incomplete" -#: order/models.py:1093 +#: order/models.py:1110 msgid "Order cannot be completed as there are incomplete line items" msgstr "L'ordine non può essere completato perché ci sono elementi di riga incompleti" -#: order/models.py:1357 +#: order/models.py:1374 msgid "Item quantity" msgstr "Quantità Elementi" -#: order/models.py:1374 +#: order/models.py:1391 msgid "Line item reference" msgstr "Riferimento Linea Elemento" -#: order/models.py:1381 +#: order/models.py:1398 msgid "Line item notes" msgstr "Note linea elemento" -#: order/models.py:1393 +#: order/models.py:1410 msgid "Target date for this line item (leave blank to use the target date from the order)" msgstr "Data di destinazione per questa voce di riga (lasciare vuoto per utilizzare la data di destinazione dall'ordine)" -#: order/models.py:1414 +#: order/models.py:1431 msgid "Line item description (optional)" msgstr "" -#: order/models.py:1420 -msgid "Context" -msgstr "Contesto" - -#: order/models.py:1421 +#: order/models.py:1438 msgid "Additional context for this line" msgstr "Contesto aggiuntivo per questa voce" -#: order/models.py:1431 +#: order/models.py:1448 msgid "Unit price" msgstr "Prezzo unitario" -#: order/models.py:1445 +#: order/models.py:1462 msgid "Purchase Order Line Item" msgstr "" -#: order/models.py:1469 +#: order/models.py:1486 msgid "Supplier part must match supplier" msgstr "L'articolo del fornitore deve corrispondere al fornitore" -#: order/models.py:1476 -msgid "deleted" -msgstr "eliminato" - -#: order/models.py:1504 +#: order/models.py:1520 msgid "Supplier part" msgstr "Articolo Fornitore" -#: order/models.py:1511 order/templates/order/order_base.html:201 +#: order/models.py:1527 order/templates/order/order_base.html:210 #: templates/js/translated/part.js:1876 templates/js/translated/part.js:1908 -#: templates/js/translated/purchase_order.js:1369 -#: templates/js/translated/purchase_order.js:2239 +#: templates/js/translated/purchase_order.js:1352 +#: templates/js/translated/purchase_order.js:2223 #: templates/js/translated/return_order.js:762 #: templates/js/translated/table_filters.js:119 #: templates/js/translated/table_filters.js:605 msgid "Received" msgstr "Ricevuto" -#: order/models.py:1512 +#: order/models.py:1528 msgid "Number of items received" msgstr "Numero di elementi ricevuti" -#: order/models.py:1520 stock/models.py:959 stock/serializers.py:610 -#: stock/templates/stock/item_base.html:183 -#: templates/js/translated/stock.js:2396 +#: order/models.py:1536 stock/models.py:1036 stock/serializers.py:637 +#: stock/templates/stock/item_base.html:180 +#: templates/js/translated/stock.js:2397 msgid "Purchase Price" msgstr "Prezzo di Acquisto" -#: order/models.py:1521 +#: order/models.py:1537 msgid "Unit purchase price" msgstr "Prezzo di acquisto unitario" -#: order/models.py:1536 -msgid "Where does the Purchaser want this item to be stored?" -msgstr "Dove l'Acquirente desidera che questo elemento venga immagazzinato?" - -#: order/models.py:1587 +#: order/models.py:1603 msgid "Purchase Order Extra Line" msgstr "" -#: order/models.py:1616 +#: order/models.py:1632 msgid "Sales Order Line Item" msgstr "" -#: order/models.py:1637 +#: order/models.py:1653 msgid "Virtual part cannot be assigned to a sales order" msgstr "Un articolo virtuale non può essere assegnato ad un ordine di vendita" -#: order/models.py:1642 +#: order/models.py:1658 msgid "Only salable parts can be assigned to a sales order" msgstr "Solo gli articoli vendibili possono essere assegnati a un ordine di vendita" -#: order/models.py:1668 part/templates/part/part_pricing.html:107 -#: part/templates/part/prices.html:139 templates/js/translated/pricing.js:957 +#: order/models.py:1684 part/templates/part/part_pricing.html:107 +#: part/templates/part/prices.html:139 templates/js/translated/pricing.js:955 msgid "Sale Price" msgstr "Prezzo di Vendita" -#: order/models.py:1669 +#: order/models.py:1685 msgid "Unit sale price" msgstr "Prezzo unitario di vendita" -#: order/models.py:1678 order/status_codes.py:48 -#: templates/js/translated/sales_order.js:1559 -#: templates/js/translated/sales_order.js:1680 -#: templates/js/translated/sales_order.js:1993 +#: order/models.py:1694 order/status_codes.py:50 +#: templates/js/translated/sales_order.js:1525 +#: templates/js/translated/sales_order.js:1661 +#: templates/js/translated/sales_order.js:1974 msgid "Shipped" msgstr "Spedito" -#: order/models.py:1679 +#: order/models.py:1695 msgid "Shipped quantity" msgstr "Quantità spedita" -#: order/models.py:1751 +#: order/models.py:1769 msgid "Sales Order Shipment" msgstr "" -#: order/models.py:1772 +#: order/models.py:1801 msgid "Date of shipment" msgstr "Data di spedizione" -#: order/models.py:1778 templates/js/translated/sales_order.js:1072 +#: order/models.py:1807 templates/js/translated/sales_order.js:1038 msgid "Delivery Date" msgstr "" -#: order/models.py:1779 +#: order/models.py:1808 msgid "Date of delivery of shipment" msgstr "" -#: order/models.py:1787 +#: order/models.py:1816 msgid "Checked By" msgstr "Verificato Da" -#: order/models.py:1788 +#: order/models.py:1817 msgid "User who checked this shipment" msgstr "Utente che ha controllato questa spedizione" -#: order/models.py:1795 order/models.py:2018 order/serializers.py:1475 -#: order/serializers.py:1585 templates/js/translated/model_renderers.js:455 +#: order/models.py:1824 order/models.py:2051 order/serializers.py:1601 +#: order/serializers.py:1725 +#: report/templates/report/inventree_sales_order_shipment_report.html:14 +#: templates/js/translated/model_renderers.js:458 +#: templates/js/translated/sales_order.js:1615 msgid "Shipment" msgstr "Spedizione" -#: order/models.py:1796 +#: order/models.py:1825 msgid "Shipment number" msgstr "Numero di spedizione" -#: order/models.py:1804 +#: order/models.py:1833 msgid "Tracking Number" msgstr "Numero di monitoraggio" -#: order/models.py:1805 +#: order/models.py:1834 msgid "Shipment tracking information" msgstr "Informazioni di monitoraggio della spedizione" -#: order/models.py:1812 +#: order/models.py:1841 msgid "Invoice Number" msgstr "Numero Fattura" -#: order/models.py:1813 +#: order/models.py:1842 msgid "Reference number for associated invoice" msgstr "Numero di riferimento per la fattura associata" -#: order/models.py:1833 +#: order/models.py:1862 msgid "Shipment has already been sent" msgstr "La spedizione è già stata spedita" -#: order/models.py:1836 +#: order/models.py:1865 msgid "Shipment has no allocated stock items" msgstr "La spedizione non ha articoli di stock assegnati" -#: order/models.py:1912 +#: order/models.py:1945 msgid "Sales Order Extra Line" msgstr "" -#: order/models.py:1941 +#: order/models.py:1974 msgid "Sales Order Allocation" msgstr "" -#: order/models.py:1964 order/models.py:1966 +#: order/models.py:1997 order/models.py:1999 msgid "Stock item has not been assigned" msgstr "L'elemento di magazzino non è stato assegnato" -#: order/models.py:1973 +#: order/models.py:2006 msgid "Cannot allocate stock item to a line with a different part" msgstr "Impossibile allocare l'elemento stock a una linea con un articolo diverso" -#: order/models.py:1976 +#: order/models.py:2009 msgid "Cannot allocate stock to a line without a part" msgstr "Impossibile allocare stock a una riga senza un articolo" -#: order/models.py:1979 +#: order/models.py:2012 msgid "Allocation quantity cannot exceed stock quantity" msgstr "La quantità di ripartizione non puo' superare la disponibilità della giacenza" -#: order/models.py:1998 order/serializers.py:1345 +#: order/models.py:2031 order/serializers.py:1471 msgid "Quantity must be 1 for serialized stock item" msgstr "La quantità deve essere 1 per l'elemento serializzato" -#: order/models.py:2001 +#: order/models.py:2034 msgid "Sales order does not match shipment" msgstr "L'ordine di vendita non corrisponde alla spedizione" -#: order/models.py:2002 plugin/base/barcodes/api.py:524 +#: order/models.py:2035 plugin/base/barcodes/api.py:629 msgid "Shipment does not match sales order" msgstr "La spedizione non corrisponde all'ordine di vendita" -#: order/models.py:2010 +#: order/models.py:2043 msgid "Line" msgstr "Linea" -#: order/models.py:2019 +#: order/models.py:2052 msgid "Sales order shipment reference" msgstr "Riferimento della spedizione ordine di vendita" -#: order/models.py:2032 order/models.py:2391 +#: order/models.py:2065 order/models.py:2430 #: templates/js/translated/return_order.js:720 msgid "Item" msgstr "Elemento" -#: order/models.py:2033 +#: order/models.py:2066 msgid "Select stock item to allocate" msgstr "Seleziona elemento stock da allocare" -#: order/models.py:2042 +#: order/models.py:2075 msgid "Enter stock allocation quantity" msgstr "Inserisci la quantità assegnata alla giacenza" -#: order/models.py:2136 +#: order/models.py:2175 msgid "Return Order reference" msgstr "" -#: order/models.py:2148 +#: order/models.py:2187 msgid "Company from which items are being returned" msgstr "" -#: order/models.py:2160 +#: order/models.py:2199 msgid "Return order status" msgstr "" -#: order/models.py:2362 +#: order/models.py:2401 msgid "Return Order Line Item" msgstr "" -#: order/models.py:2376 +#: order/models.py:2415 msgid "Only serialized items can be assigned to a Return Order" msgstr "" -#: order/models.py:2392 +#: order/models.py:2431 msgid "Select item to return from customer" msgstr "Seleziona l'elemento da restituire dal cliente" -#: order/models.py:2398 +#: order/models.py:2437 msgid "Received Date" msgstr "Data di ricezione" -#: order/models.py:2399 +#: order/models.py:2438 msgid "The date this this return item was received" msgstr "" -#: order/models.py:2410 templates/js/translated/return_order.js:731 +#: order/models.py:2449 templates/js/translated/return_order.js:731 #: templates/js/translated/table_filters.js:122 msgid "Outcome" msgstr "Risultati" -#: order/models.py:2411 +#: order/models.py:2450 msgid "Outcome for this line item" msgstr "" -#: order/models.py:2418 +#: order/models.py:2457 msgid "Cost associated with return or repair for this line item" msgstr "" -#: order/models.py:2428 +#: order/models.py:2467 msgid "Return Order Extra Line" msgstr "" -#: order/serializers.py:86 +#: order/serializers.py:87 +msgid "Order ID" +msgstr "" + +#: order/serializers.py:87 +msgid "ID of the order to duplicate" +msgstr "" + +#: order/serializers.py:93 +msgid "Copy Lines" +msgstr "" + +#: order/serializers.py:94 +msgid "Copy line items from the original order" +msgstr "" + +#: order/serializers.py:100 +msgid "Copy Extra Lines" +msgstr "" + +#: order/serializers.py:101 +msgid "Copy extra line items from the original order" +msgstr "" + +#: order/serializers.py:117 msgid "Completed Lines" msgstr "" -#: order/serializers.py:283 stock/admin.py:195 +#: order/serializers.py:161 +msgid "Duplicate Order" +msgstr "" + +#: order/serializers.py:162 +msgid "Specify options for duplicating this order" +msgstr "" + +#: order/serializers.py:234 +msgid "Invalid order ID" +msgstr "" + +#: order/serializers.py:374 stock/admin.py:196 msgid "Supplier Name" msgstr "Nome Fornitore" -#: order/serializers.py:331 +#: order/serializers.py:416 msgid "Order cannot be cancelled" msgstr "L'ordine non può essere cancellato" -#: order/serializers.py:346 order/serializers.py:1366 +#: order/serializers.py:431 order/serializers.py:1492 msgid "Allow order to be closed with incomplete line items" msgstr "Consenti di chiudere l'ordine con elementi di riga incompleti" -#: order/serializers.py:356 order/serializers.py:1376 +#: order/serializers.py:441 order/serializers.py:1502 msgid "Order has incomplete line items" msgstr "L'ordine ha elementi di riga incompleti" -#: order/serializers.py:506 +#: order/serializers.py:591 msgid "Order is not open" msgstr "L'ordine non è aperto" -#: order/serializers.py:527 +#: order/serializers.py:612 msgid "Auto Pricing" msgstr "" -#: order/serializers.py:529 +#: order/serializers.py:614 msgid "Automatically calculate purchase price based on supplier part data" msgstr "" -#: order/serializers.py:539 +#: order/serializers.py:624 msgid "Purchase price currency" msgstr "Valuta prezzo d'acquisto" -#: order/serializers.py:545 +#: order/serializers.py:630 msgid "Merge Items" msgstr "" -#: order/serializers.py:547 +#: order/serializers.py:632 msgid "Merge items with the same part, destination and target date into one line item" msgstr "" -#: order/serializers.py:560 part/models.py:1033 +#: order/serializers.py:645 part/models.py:1094 part/serializers.py:387 msgid "Internal Part Number" msgstr "Numero Dell'articolo Interno" -#: order/serializers.py:568 +#: order/serializers.py:653 msgid "Internal Part Name" msgstr "" -#: order/serializers.py:584 +#: order/serializers.py:669 msgid "Supplier part must be specified" msgstr "L'articolo del fornitore deve essere specificato" -#: order/serializers.py:587 +#: order/serializers.py:672 msgid "Purchase order must be specified" msgstr "L'ordine di acquisto deve essere specificato" -#: order/serializers.py:595 +#: order/serializers.py:680 msgid "Supplier must match purchase order" msgstr "Il fornitore deve essere abbinato all'ordine d'acquisto" -#: order/serializers.py:596 +#: order/serializers.py:681 msgid "Purchase order must match supplier" msgstr "L'ordine di acquisto deve essere abbinato al fornitore" -#: order/serializers.py:639 order/serializers.py:1446 +#: order/serializers.py:724 order/serializers.py:1572 msgid "Line Item" msgstr "Elemento Riga" -#: order/serializers.py:645 +#: order/serializers.py:730 msgid "Line item does not match purchase order" msgstr "L'elemento di riga non corrisponde all'ordine di acquisto" -#: order/serializers.py:655 order/serializers.py:779 order/serializers.py:1782 +#: order/serializers.py:740 order/serializers.py:881 order/serializers.py:1934 msgid "Select destination location for received items" msgstr "Seleziona la posizione di destinazione per gli elementi ricevuti" -#: order/serializers.py:671 templates/js/translated/purchase_order.js:1130 +#: order/serializers.py:756 templates/js/translated/purchase_order.js:1113 #: templates/js/translated/stock.js:1200 msgid "Enter batch code for incoming stock items" msgstr "Inserisci il codice univoco per gli articoli in arrivo" -#: order/serializers.py:679 templates/js/translated/purchase_order.js:1155 +#: order/serializers.py:764 templates/js/translated/purchase_order.js:1138 msgid "Enter serial numbers for incoming stock items" msgstr "Inserisci i numeri di serie per gli articoli stock in arrivo" -#: order/serializers.py:691 +#: order/serializers.py:776 msgid "Override packaging information for incoming stock items" msgstr "" -#: order/serializers.py:699 +#: order/serializers.py:784 msgid "Additional note for incoming stock items" msgstr "" -#: order/serializers.py:706 templates/js/translated/barcode.js:52 +#: order/serializers.py:791 templates/js/translated/barcode.js:52 msgid "Barcode" msgstr "Codice a Barre" -#: order/serializers.py:707 +#: order/serializers.py:792 msgid "Scanned barcode" msgstr "Codice a barre scansionato" -#: order/serializers.py:723 +#: order/serializers.py:808 msgid "Barcode is already in use" msgstr "Il codice a barre è già in uso" -#: order/serializers.py:747 +#: order/serializers.py:831 msgid "An integer quantity must be provided for trackable parts" msgstr "Deve essere fornita una quantità intera per gli articoli rintracciabili" -#: order/serializers.py:795 order/serializers.py:1798 +#: order/serializers.py:898 order/serializers.py:1950 msgid "Line items must be provided" msgstr "Gli elementi di linea devono essere forniti" -#: order/serializers.py:811 +#: order/serializers.py:914 msgid "Destination location must be specified" msgstr "La destinazione deve essere specificata" -#: order/serializers.py:822 +#: order/serializers.py:925 msgid "Supplied barcode values must be unique" msgstr "I valori dei codici a barre forniti devono essere univoci" -#: order/serializers.py:1187 +#: order/serializers.py:1221 msgid "Sale price currency" msgstr "Valuta prezzo di vendita" -#: order/serializers.py:1248 +#: order/serializers.py:1260 +msgid "Allocated Items" +msgstr "" + +#: order/serializers.py:1374 msgid "No shipment details provided" msgstr "Nessun dettaglio di spedizione fornito" -#: order/serializers.py:1309 order/serializers.py:1455 +#: order/serializers.py:1435 order/serializers.py:1581 msgid "Line item is not associated with this order" msgstr "L'elemento di riga non è associato a questo ordine" -#: order/serializers.py:1328 +#: order/serializers.py:1454 msgid "Quantity must be positive" msgstr "La quantità deve essere positiva" -#: order/serializers.py:1465 +#: order/serializers.py:1591 msgid "Enter serial numbers to allocate" msgstr "Inserisci i numeri di serie da assegnare" -#: order/serializers.py:1487 order/serializers.py:1593 +#: order/serializers.py:1613 order/serializers.py:1733 msgid "Shipment has already been shipped" msgstr "La spedizione è già stata spedita" -#: order/serializers.py:1490 order/serializers.py:1596 +#: order/serializers.py:1616 order/serializers.py:1736 msgid "Shipment is not associated with this order" msgstr "La spedizione non è associata con questo ordine" -#: order/serializers.py:1537 +#: order/serializers.py:1671 msgid "No match found for the following serial numbers" msgstr "Nessuna corrispondenza trovata per i seguenti numeri di serie" -#: order/serializers.py:1544 -msgid "The following serial numbers are already allocated" -msgstr "I seguenti numeri di serie sono già assegnati" +#: order/serializers.py:1678 +msgid "The following serial numbers are unavailable" +msgstr "" -#: order/serializers.py:1752 +#: order/serializers.py:1904 msgid "Return order line item" msgstr "" -#: order/serializers.py:1758 +#: order/serializers.py:1910 msgid "Line item does not match return order" msgstr "" -#: order/serializers.py:1761 +#: order/serializers.py:1913 msgid "Line item has already been received" msgstr "" -#: order/serializers.py:1790 +#: order/serializers.py:1942 msgid "Items can only be received against orders which are in progress" msgstr "" -#: order/serializers.py:1873 +#: order/serializers.py:2025 msgid "Line price currency" msgstr "" -#: order/status_codes.py:17 order/status_codes.py:52 stock/status_codes.py:16 +#: order/status_codes.py:17 order/status_codes.py:54 stock/status_codes.py:16 msgid "Lost" msgstr "Perso" -#: order/status_codes.py:18 order/status_codes.py:53 stock/status_codes.py:22 +#: order/status_codes.py:18 order/status_codes.py:55 stock/status_codes.py:24 msgid "Returned" msgstr "Reso" -#: order/status_codes.py:45 order/status_codes.py:77 +#: order/status_codes.py:47 order/status_codes.py:79 msgid "In Progress" msgstr "In corso" -#: order/status_codes.py:101 +#: order/status_codes.py:105 msgid "Return" msgstr "Indietro" -#: order/status_codes.py:104 +#: order/status_codes.py:108 msgid "Repair" msgstr "Riparare" -#: order/status_codes.py:107 +#: order/status_codes.py:111 msgid "Replace" msgstr "Sostituire" -#: order/status_codes.py:110 +#: order/status_codes.py:114 msgid "Refund" msgstr "Rimborso" -#: order/status_codes.py:113 +#: order/status_codes.py:117 msgid "Reject" msgstr "Rifiuta" -#: order/tasks.py:25 +#: order/tasks.py:30 msgid "Overdue Purchase Order" msgstr "Ordine D'Acquisto in ritardo" -#: order/tasks.py:30 +#: order/tasks.py:35 #, python-brace-format msgid "Purchase order {po} is now overdue" msgstr "L'ordine d'acquisto {po} è in ritardo" -#: order/tasks.py:75 +#: order/tasks.py:80 msgid "Overdue Sales Order" msgstr "Ordini Di Vendita in ritardo" -#: order/tasks.py:80 +#: order/tasks.py:85 #, python-brace-format msgid "Sales order {so} is now overdue" msgstr "L'ordine di vendita {so} è ora in ritardo" -#: order/templates/order/order_base.html:51 +#: order/templates/order/order_base.html:52 msgid "Print purchase order report" msgstr "Stampa report ordine acquisto" -#: order/templates/order/order_base.html:53 -#: order/templates/order/return_order_base.html:62 -#: order/templates/order/sales_order_base.html:62 +#: order/templates/order/order_base.html:54 +#: order/templates/order/return_order_base.html:63 +#: order/templates/order/sales_order_base.html:63 msgid "Export order to file" msgstr "Esportare File Ordine" -#: order/templates/order/order_base.html:59 -#: order/templates/order/return_order_base.html:72 -#: order/templates/order/sales_order_base.html:71 +#: order/templates/order/order_base.html:60 +#: order/templates/order/return_order_base.html:73 +#: order/templates/order/sales_order_base.html:72 msgid "Order actions" msgstr "Azioni Ordine" -#: order/templates/order/order_base.html:64 -#: order/templates/order/return_order_base.html:76 -#: order/templates/order/sales_order_base.html:75 +#: order/templates/order/order_base.html:65 +#: order/templates/order/return_order_base.html:77 +#: order/templates/order/sales_order_base.html:76 msgid "Edit order" msgstr "Modifica ordine" -#: order/templates/order/order_base.html:68 +#: order/templates/order/order_base.html:69 msgid "Duplicate order" msgstr "Duplica Ordine" -#: order/templates/order/order_base.html:73 -#: order/templates/order/return_order_base.html:78 -#: order/templates/order/sales_order_base.html:77 +#: order/templates/order/order_base.html:74 +#: order/templates/order/return_order_base.html:79 +#: order/templates/order/sales_order_base.html:78 msgid "Hold order" msgstr "" -#: order/templates/order/order_base.html:78 -#: order/templates/order/return_order_base.html:81 -#: order/templates/order/sales_order_base.html:80 +#: order/templates/order/order_base.html:79 +#: order/templates/order/return_order_base.html:82 +#: order/templates/order/sales_order_base.html:81 msgid "Cancel order" msgstr "Annulla l'ordine" -#: order/templates/order/order_base.html:84 #: order/templates/order/order_base.html:85 -#: order/templates/order/return_order_base.html:85 +#: order/templates/order/order_base.html:86 #: order/templates/order/return_order_base.html:86 -#: order/templates/order/sales_order_base.html:86 +#: order/templates/order/return_order_base.html:87 #: order/templates/order/sales_order_base.html:87 +#: order/templates/order/sales_order_base.html:88 msgid "Issue Order" msgstr "" -#: order/templates/order/order_base.html:88 -#: order/templates/order/return_order_base.html:89 +#: order/templates/order/order_base.html:89 +#: order/templates/order/return_order_base.html:90 msgid "Mark order as complete" msgstr "Contrassegna ordine come completato" -#: order/templates/order/order_base.html:89 -#: order/templates/order/return_order_base.html:90 -#: order/templates/order/sales_order_base.html:100 +#: order/templates/order/order_base.html:90 +#: order/templates/order/return_order_base.html:91 +#: order/templates/order/sales_order_base.html:101 msgid "Complete Order" msgstr "Completa l'ordine" -#: order/templates/order/order_base.html:96 +#: order/templates/order/order_base.html:97 msgid "Supplier part thumbnail" msgstr "" -#: order/templates/order/order_base.html:116 -#: order/templates/order/return_order_base.html:109 -#: order/templates/order/sales_order_base.html:118 +#: order/templates/order/order_base.html:117 +#: order/templates/order/return_order_base.html:110 +#: order/templates/order/sales_order_base.html:119 msgid "Order Description" msgstr "Descrizione Dell'Ordine" -#: order/templates/order/order_base.html:146 -msgid "No suppplier information available" -msgstr "Nessuna informazione sul fornitore disponibile" - -#: order/templates/order/order_base.html:159 -#: order/templates/order/sales_order_base.html:164 +#: order/templates/order/order_base.html:168 +#: order/templates/order/sales_order_base.html:165 msgid "Completed Line Items" msgstr "Elementi della linea completati" -#: order/templates/order/order_base.html:165 -#: order/templates/order/sales_order_base.html:170 -#: order/templates/order/sales_order_base.html:180 +#: order/templates/order/order_base.html:174 +#: order/templates/order/sales_order_base.html:171 +#: order/templates/order/sales_order_base.html:181 msgid "Incomplete" msgstr "Incompleto" -#: order/templates/order/order_base.html:184 -#: order/templates/order/return_order_base.html:160 +#: order/templates/order/order_base.html:193 +#: order/templates/order/return_order_base.html:161 #: report/templates/report/inventree_build_order_report.html:121 msgid "Issued" msgstr "Emesso" -#: order/templates/order/order_base.html:229 +#: order/templates/order/order_base.html:238 msgid "Total cost" msgstr "Costo totale" -#: order/templates/order/order_base.html:233 -#: order/templates/order/return_order_base.html:202 -#: order/templates/order/sales_order_base.html:246 +#: order/templates/order/order_base.html:242 +#: order/templates/order/return_order_base.html:203 +#: order/templates/order/sales_order_base.html:247 msgid "Total cost could not be calculated" msgstr "Il costo totale non può essere calcolato" -#: order/templates/order/order_base.html:335 +#: order/templates/order/order_base.html:344 msgid "Purchase Order QR Code" msgstr "" -#: order/templates/order/order_base.html:347 +#: order/templates/order/order_base.html:356 msgid "Link Barcode to Purchase Order" msgstr "" @@ -6184,12 +6392,12 @@ msgstr "Duplica selezionati" #: part/templates/part/import_wizard/ajax_match_references.html:42 #: part/templates/part/import_wizard/match_fields.html:71 #: part/templates/part/import_wizard/match_references.html:49 -#: templates/js/translated/bom.js:133 templates/js/translated/build.js:530 -#: templates/js/translated/build.js:1802 -#: templates/js/translated/purchase_order.js:696 -#: templates/js/translated/purchase_order.js:1288 +#: templates/js/translated/bom.js:133 templates/js/translated/build.js:533 +#: templates/js/translated/build.js:1805 +#: templates/js/translated/purchase_order.js:679 +#: templates/js/translated/purchase_order.js:1271 #: templates/js/translated/return_order.js:505 -#: templates/js/translated/sales_order.js:1145 +#: templates/js/translated/sales_order.js:1111 #: templates/js/translated/stock.js:720 templates/js/translated/stock.js:889 #: templates/patterns/wizard/match_fields.html:70 msgid "Remove row" @@ -6242,7 +6450,7 @@ msgstr "Elementi D'Ordine D'Acquisto" #: order/templates/order/purchase_order_detail.html:27 #: order/templates/order/return_order_detail.html:24 #: order/templates/order/sales_order_detail.html:24 -#: templates/js/translated/purchase_order.js:414 +#: templates/js/translated/purchase_order.js:397 #: templates/js/translated/return_order.js:458 #: templates/js/translated/sales_order.js:237 msgid "Add Line Item" @@ -6277,45 +6485,45 @@ msgstr "Elementi Ricevuti" msgid "Order Notes" msgstr "Note dell'Ordine" -#: order/templates/order/return_order_base.html:18 -#: order/templates/order/sales_order_base.html:18 +#: order/templates/order/return_order_base.html:19 +#: order/templates/order/sales_order_base.html:19 msgid "Customer logo thumbnail" msgstr "" -#: order/templates/order/return_order_base.html:60 +#: order/templates/order/return_order_base.html:61 msgid "Print return order report" msgstr "Stampa rapporto ordine di reso" -#: order/templates/order/return_order_base.html:64 -#: order/templates/order/sales_order_base.html:64 +#: order/templates/order/return_order_base.html:65 +#: order/templates/order/sales_order_base.html:65 msgid "Print packing list" msgstr "Stampa lista d'imballaggio" -#: order/templates/order/return_order_base.html:141 -#: order/templates/order/sales_order_base.html:158 +#: order/templates/order/return_order_base.html:142 +#: order/templates/order/sales_order_base.html:159 #: templates/js/translated/return_order.js:308 -#: templates/js/translated/sales_order.js:833 +#: templates/js/translated/sales_order.js:792 msgid "Customer Reference" msgstr "Riferimento Cliente" -#: order/templates/order/return_order_base.html:198 -#: order/templates/order/sales_order_base.html:242 +#: order/templates/order/return_order_base.html:199 +#: order/templates/order/sales_order_base.html:243 #: part/templates/part/part_pricing.html:32 #: part/templates/part/part_pricing.html:58 #: part/templates/part/part_pricing.html:99 #: part/templates/part/part_pricing.html:114 #: templates/js/translated/part.js:1079 -#: templates/js/translated/purchase_order.js:1822 +#: templates/js/translated/purchase_order.js:1806 #: templates/js/translated/return_order.js:380 -#: templates/js/translated/sales_order.js:891 +#: templates/js/translated/sales_order.js:850 msgid "Total Cost" msgstr "Costo Totale" -#: order/templates/order/return_order_base.html:273 +#: order/templates/order/return_order_base.html:274 msgid "Return Order QR Code" msgstr "" -#: order/templates/order/return_order_base.html:285 +#: order/templates/order/return_order_base.html:286 msgid "Link Barcode to Return Order" msgstr "" @@ -6323,40 +6531,40 @@ msgstr "" msgid "Order Details" msgstr "Dettagli dell'ordine" -#: order/templates/order/sales_order_base.html:60 +#: order/templates/order/sales_order_base.html:61 msgid "Print sales order report" msgstr "Stampa il rapporto dell'ordine delle vendite" -#: order/templates/order/sales_order_base.html:91 #: order/templates/order/sales_order_base.html:92 +#: order/templates/order/sales_order_base.html:93 msgid "Ship Items" msgstr "Spedisci oggetti" -#: order/templates/order/sales_order_base.html:95 #: order/templates/order/sales_order_base.html:96 +#: order/templates/order/sales_order_base.html:97 msgid "Mark As Shipped" msgstr "" -#: order/templates/order/sales_order_base.html:99 -#: templates/js/translated/sales_order.js:536 +#: order/templates/order/sales_order_base.html:100 +#: templates/js/translated/sales_order.js:495 msgid "Complete Sales Order" msgstr "Completa Ordine Di Vendita" -#: order/templates/order/sales_order_base.html:138 +#: order/templates/order/sales_order_base.html:139 msgid "This Sales Order has not been fully allocated" msgstr "Questo Ordine di Vendita non è stato assegnato completamente" -#: order/templates/order/sales_order_base.html:176 +#: order/templates/order/sales_order_base.html:177 #: order/templates/order/sales_order_detail.html:99 #: order/templates/order/so_sidebar.html:11 msgid "Completed Shipments" msgstr "Spedizioni Completate" -#: order/templates/order/sales_order_base.html:339 +#: order/templates/order/sales_order_base.html:340 msgid "Sales Order QR Code" msgstr "" -#: order/templates/order/sales_order_base.html:351 +#: order/templates/order/sales_order_base.html:352 msgid "Link Barcode to Sales Order" msgstr "" @@ -6370,7 +6578,7 @@ msgid "Pending Shipments" msgstr "Spedizione in sospeso" #: order/templates/order/sales_order_detail.html:71 -#: templates/js/translated/bom.js:1277 templates/js/translated/build.js:1063 +#: templates/js/translated/bom.js:1277 templates/js/translated/build.js:1066 #: templates/js/translated/filters.js:299 msgid "Actions" msgstr "Azioni" @@ -6383,39 +6591,40 @@ msgstr "Nuova spedizione" msgid "Match Supplier Parts" msgstr "Corrispondenza Articoli del Fornitore" -#: order/views.py:406 +#: order/views.py:407 msgid "Sales order not found" msgstr "Ordine di Vendita non trovato" -#: order/views.py:412 +#: order/views.py:413 msgid "Price not found" msgstr "Prezzo non trovato" -#: order/views.py:415 +#: order/views.py:416 #, python-brace-format msgid "Updated {part} unit-price to {price}" msgstr "Aggiornato {part} prezzo unitario a {price}" -#: order/views.py:421 +#: order/views.py:422 #, python-brace-format msgid "Updated {part} unit-price to {price} and quantity to {qty}" msgstr "Aggiornato {part} unità prezzo a {price} e quantità a {qty}" -#: part/admin.py:48 part/models.py:1032 part/templates/part/part_base.html:269 +#: part/admin.py:48 part/models.py:1093 part/serializers.py:939 +#: part/templates/part/part_base.html:277 #: report/templates/report/inventree_stock_location_report.html:103 #: templates/js/translated/part.js:1233 templates/js/translated/part.js:2347 -#: templates/js/translated/stock.js:2121 +#: templates/js/translated/stock.js:2122 msgid "IPN" msgstr "IPN - Numero di riferimento interno" -#: part/admin.py:50 part/models.py:1041 part/templates/part/part_base.html:286 +#: part/admin.py:50 part/models.py:1102 part/templates/part/part_base.html:294 #: report/models.py:161 templates/js/translated/part.js:1238 #: templates/js/translated/part.js:2353 msgid "Revision" msgstr "Revisione" -#: part/admin.py:53 part/admin.py:319 part/models.py:1014 -#: part/templates/part/category.html:91 part/templates/part/part_base.html:307 +#: part/admin.py:53 part/admin.py:319 part/models.py:1075 +#: part/templates/part/category.html:91 part/templates/part/part_base.html:315 msgid "Keywords" msgstr "Parole Chiave" @@ -6427,7 +6636,7 @@ msgstr "" msgid "Category ID" msgstr "Id Categoria" -#: part/admin.py:67 part/admin.py:304 part/serializers.py:880 +#: part/admin.py:67 part/admin.py:304 part/serializers.py:924 #: part/stocktake.py:222 msgid "Category Name" msgstr "Nome Categoria" @@ -6440,11 +6649,11 @@ msgstr "Posizione Predefinita ID" msgid "Default Supplier ID" msgstr "ID Fornitore Predefinito" -#: part/admin.py:81 part/models.py:1000 part/templates/part/part_base.html:177 +#: part/admin.py:81 part/models.py:1061 part/templates/part/part_base.html:178 msgid "Variant Of" msgstr "Variante Di" -#: part/admin.py:84 part/models.py:1138 part/templates/part/part_base.html:203 +#: part/admin.py:84 part/models.py:1199 part/templates/part/part_base.html:204 msgid "Minimum Stock" msgstr "Scorta Minima" @@ -6452,23 +6661,23 @@ msgstr "Scorta Minima" msgid "Used In" msgstr "Utilizzato In" -#: part/admin.py:150 part/serializers.py:897 -#: part/templates/part/part_base.html:241 stock/admin.py:235 +#: part/admin.py:150 part/serializers.py:949 +#: part/templates/part/part_base.html:249 stock/admin.py:236 #: templates/js/translated/part.js:717 templates/js/translated/part.js:2159 msgid "Building" msgstr "In Costruzione" -#: part/admin.py:155 part/models.py:3202 part/models.py:3216 +#: part/admin.py:155 part/models.py:3253 part/models.py:3267 #: templates/js/translated/part.js:976 msgid "Minimum Cost" msgstr "Costo Minimo" -#: part/admin.py:158 part/models.py:3209 part/models.py:3223 +#: part/admin.py:158 part/models.py:3260 part/models.py:3274 #: templates/js/translated/part.js:986 msgid "Maximum Cost" msgstr "Costo Massimo" -#: part/admin.py:308 part/admin.py:387 stock/admin.py:57 stock/admin.py:215 +#: part/admin.py:308 part/admin.py:387 stock/admin.py:57 stock/admin.py:216 msgid "Parent ID" msgstr "ID principale" @@ -6481,8 +6690,8 @@ msgstr "Nome Principale" msgid "Category Path" msgstr "Percorso Categoria" -#: part/admin.py:325 part/models.py:425 part/serializers.py:130 -#: part/serializers.py:290 part/serializers.py:415 +#: part/admin.py:325 part/models.py:420 part/serializers.py:130 +#: part/serializers.py:323 part/serializers.py:459 #: part/templates/part/cat_link.html:3 part/templates/part/category.html:20 #: part/templates/part/category.html:138 part/templates/part/category.html:158 #: part/templates/part/category_sidebar.html:9 @@ -6509,15 +6718,15 @@ msgstr "IPN Principale" msgid "Part Revision" msgstr "" -#: part/admin.py:418 part/serializers.py:1346 +#: part/admin.py:418 part/serializers.py:1400 #: templates/js/translated/pricing.js:358 -#: templates/js/translated/pricing.js:1024 +#: templates/js/translated/pricing.js:1022 msgid "Minimum Price" msgstr "Prezzo Minimo" -#: part/admin.py:423 part/serializers.py:1361 +#: part/admin.py:423 part/serializers.py:1415 #: templates/js/translated/pricing.js:353 -#: templates/js/translated/pricing.js:1032 +#: templates/js/translated/pricing.js:1030 msgid "Maximum Price" msgstr "Prezzo Massimo" @@ -6545,94 +6754,98 @@ msgstr "" msgid "Filter by top-level categories" msgstr "" +#: part/api.py:156 stock/api.py:343 +msgid "Cascade" +msgstr "" + #: part/api.py:158 msgid "Include sub-categories in filtered results" msgstr "" -#: part/api.py:179 templates/js/translated/part.js:311 +#: part/api.py:178 templates/js/translated/part.js:311 msgid "Parent" msgstr "" -#: part/api.py:181 +#: part/api.py:180 msgid "Filter by parent category" msgstr "" -#: part/api.py:214 +#: part/api.py:213 msgid "Exclude Tree" msgstr "" -#: part/api.py:216 +#: part/api.py:215 msgid "Exclude sub-categories under the specified category" msgstr "" -#: part/api.py:441 +#: part/api.py:440 msgid "Has Results" msgstr "" -#: part/api.py:608 +#: part/api.py:604 msgid "Incoming Purchase Order" msgstr "Ordine D'Acquisto In Arrivo" -#: part/api.py:626 +#: part/api.py:618 msgid "Outgoing Sales Order" msgstr "Ordine di Vendita in Uscita" -#: part/api.py:642 +#: part/api.py:630 msgid "Stock produced by Build Order" msgstr "Giacenza prodotta dall'Ordine di Costruzione" -#: part/api.py:726 +#: part/api.py:712 msgid "Stock required for Build Order" msgstr "Giacenza richiesta per l'Ordine di Produzione" -#: part/api.py:874 +#: part/api.py:858 msgid "Validate entire Bill of Materials" msgstr "Convalida l'intera Fattura dei Materiali" -#: part/api.py:880 +#: part/api.py:864 msgid "This option must be selected" msgstr "Questa opzione deve essere selezionata" -#: part/api.py:916 +#: part/api.py:900 msgid "Is Revision" msgstr "" -#: part/api.py:926 +#: part/api.py:910 msgid "Has Revisions" msgstr "" -#: part/api.py:1117 +#: part/api.py:1101 msgid "BOM Valid" msgstr "" -#: part/api.py:1523 part/models.py:1024 part/models.py:3489 part/models.py:4046 -#: part/serializers.py:430 part/serializers.py:1202 -#: part/templates/part/part_base.html:260 stock/api.py:781 +#: part/api.py:1509 part/models.py:1085 part/models.py:3540 part/models.py:4104 +#: part/serializers.py:474 part/serializers.py:1255 +#: part/templates/part/part_base.html:268 stock/api.py:781 #: templates/InvenTree/settings/settings_staff_js.html:300 #: templates/js/translated/notification.js:60 #: templates/js/translated/part.js:2383 msgid "Category" msgstr "Categoria" -#: part/api.py:1761 +#: part/api.py:1750 msgid "Assembly part is testable" msgstr "" -#: part/api.py:1770 +#: part/api.py:1759 msgid "Component part is testable" msgstr "" -#: part/api.py:1821 +#: part/api.py:1810 msgid "Uses" msgstr "" -#: part/bom.py:178 part/models.py:107 part/models.py:1077 -#: part/templates/part/category.html:113 part/templates/part/part_base.html:376 +#: part/bom.py:183 part/models.py:109 part/models.py:1138 +#: part/templates/part/category.html:113 part/templates/part/part_base.html:384 #: templates/js/translated/part.js:2397 msgid "Default Location" msgstr "Posizione Predefinita" -#: part/bom.py:179 part/serializers.py:905 +#: part/bom.py:184 part/serializers.py:957 #: templates/email/low_stock_notification.html:16 msgid "Total Stock" msgstr "Giacenze Totali" @@ -6641,789 +6854,789 @@ msgstr "Giacenze Totali" msgid "Input quantity for price calculation" msgstr "Digita la quantità per il calcolo del prezzo" -#: part/models.py:88 part/models.py:4047 part/templates/part/category.html:16 +#: part/models.py:90 part/models.py:4105 part/templates/part/category.html:16 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "Categoria Articoli" -#: part/models.py:89 part/templates/part/category.html:133 +#: part/models.py:91 part/templates/part/category.html:133 #: templates/InvenTree/search.html:97 templates/js/translated/search.js:158 #: users/models.py:202 msgid "Part Categories" msgstr "Categorie Articolo" -#: part/models.py:108 +#: part/models.py:110 msgid "Default location for parts in this category" msgstr "Posizione predefinita per gli articoli di questa categoria" -#: part/models.py:113 stock/models.py:187 templates/js/translated/part.js:2828 -#: templates/js/translated/stock.js:2856 +#: part/models.py:115 stock/models.py:193 templates/js/translated/part.js:2828 +#: templates/js/translated/stock.js:2857 #: templates/js/translated/table_filters.js:246 #: templates/js/translated/table_filters.js:290 msgid "Structural" msgstr "Strutturale" -#: part/models.py:115 +#: part/models.py:117 msgid "Parts may not be directly assigned to a structural category, but may be assigned to child categories." msgstr "Le parti non possono essere assegnate direttamente a una categoria strutturale, ma possono essere assegnate a categorie subordinate." -#: part/models.py:124 +#: part/models.py:126 msgid "Default keywords" msgstr "Keywords predefinite" -#: part/models.py:125 +#: part/models.py:127 msgid "Default keywords for parts in this category" msgstr "Parole chiave predefinite per gli articoli in questa categoria" -#: part/models.py:131 stock/models.py:90 stock/models.py:169 +#: part/models.py:133 stock/models.py:96 stock/models.py:175 #: templates/InvenTree/settings/settings_staff_js.html:445 msgid "Icon" msgstr "Icona" -#: part/models.py:132 part/serializers.py:143 part/serializers.py:161 -#: stock/models.py:170 +#: part/models.py:134 part/serializers.py:143 part/serializers.py:161 +#: stock/models.py:176 msgid "Icon (optional)" msgstr "Icona (facoltativa)" -#: part/models.py:178 +#: part/models.py:180 msgid "You cannot make this part category structural because some parts are already assigned to it!" msgstr "Non puoi rendere principale questa categoria di articoli perché alcuni articoli sono già assegnati!" -#: part/models.py:519 +#: part/models.py:514 msgid "Cannot delete this part as it is locked" msgstr "" -#: part/models.py:522 +#: part/models.py:517 msgid "Cannot delete this part as it is still active" msgstr "" -#: part/models.py:527 +#: part/models.py:522 msgid "Cannot delete this part as it is used in an assembly" msgstr "" -#: part/models.py:565 +#: part/models.py:560 msgid "Invalid choice for parent part" msgstr "Scelta non valida per l'articolo principale" -#: part/models.py:613 part/models.py:620 +#: part/models.py:608 part/models.py:615 #, python-brace-format msgid "Part '{self}' cannot be used in BOM for '{parent}' (recursive)" msgstr "" -#: part/models.py:632 +#: part/models.py:627 #, python-brace-format msgid "Part '{parent}' is used in BOM for '{self}' (recursive)" msgstr "" -#: part/models.py:695 +#: part/models.py:694 #, python-brace-format msgid "IPN must match regex pattern {pattern}" msgstr "" -#: part/models.py:703 +#: part/models.py:702 msgid "Part cannot be a revision of itself" msgstr "" -#: part/models.py:710 +#: part/models.py:709 msgid "Cannot make a revision of a part which is already a revision" msgstr "" -#: part/models.py:717 +#: part/models.py:716 msgid "Revision code must be specified" msgstr "" -#: part/models.py:724 +#: part/models.py:723 msgid "Revisions are only allowed for assembly parts" msgstr "" -#: part/models.py:731 +#: part/models.py:730 msgid "Cannot make a revision of a template part" msgstr "" -#: part/models.py:737 +#: part/models.py:736 msgid "Parent part must point to the same template" msgstr "" -#: part/models.py:816 +#: part/models.py:832 msgid "Stock item with this serial number already exists" msgstr "Esiste già un elemento stock con questo numero seriale" -#: part/models.py:917 +#: part/models.py:976 msgid "Duplicate IPN not allowed in part settings" msgstr "Non è consentito duplicare IPN nelle impostazioni dell'articolo" -#: part/models.py:926 +#: part/models.py:988 msgid "Duplicate part revision already exists." msgstr "" -#: part/models.py:936 +#: part/models.py:997 msgid "Part with this Name, IPN and Revision already exists." msgstr "Un articolo con questo Nome, IPN e Revisione esiste già." -#: part/models.py:951 +#: part/models.py:1012 msgid "Parts cannot be assigned to structural part categories!" msgstr "Gli articoli non possono essere assegnati a categorie articolo principali!" -#: part/models.py:983 part/models.py:4102 +#: part/models.py:1044 part/models.py:4160 msgid "Part name" msgstr "Nome articolo" -#: part/models.py:988 +#: part/models.py:1049 msgid "Is Template" msgstr "È Template" -#: part/models.py:989 +#: part/models.py:1050 msgid "Is this part a template part?" msgstr "Quest'articolo è un articolo di template?" -#: part/models.py:999 +#: part/models.py:1060 msgid "Is this part a variant of another part?" msgstr "Questa parte è una variante di un altro articolo?" -#: part/models.py:1007 +#: part/models.py:1068 msgid "Part description (optional)" msgstr "" -#: part/models.py:1015 +#: part/models.py:1076 msgid "Part keywords to improve visibility in search results" msgstr "Parole chiave per migliorare la visibilità nei risultati di ricerca" -#: part/models.py:1025 +#: part/models.py:1086 msgid "Part category" msgstr "Categoria articolo" -#: part/models.py:1040 +#: part/models.py:1101 msgid "Part revision or version number" msgstr "Numero di revisione o di versione" -#: part/models.py:1050 +#: part/models.py:1111 msgid "Is this part a revision of another part?" msgstr "" -#: part/models.py:1051 part/templates/part/part_base.html:277 +#: part/models.py:1112 part/templates/part/part_base.html:285 msgid "Revision Of" msgstr "" -#: part/models.py:1075 +#: part/models.py:1136 msgid "Where is this item normally stored?" msgstr "Dove viene normalmente immagazzinato questo articolo?" -#: part/models.py:1121 part/templates/part/part_base.html:385 +#: part/models.py:1182 part/templates/part/part_base.html:393 msgid "Default Supplier" msgstr "Fornitore predefinito" -#: part/models.py:1122 +#: part/models.py:1183 msgid "Default supplier part" msgstr "Articolo fornitore predefinito" -#: part/models.py:1129 +#: part/models.py:1190 msgid "Default Expiry" msgstr "Scadenza Predefinita" -#: part/models.py:1130 +#: part/models.py:1191 msgid "Expiry time (in days) for stock items of this part" msgstr "Scadenza (in giorni) per gli articoli in giacenza di questo pezzo" -#: part/models.py:1139 +#: part/models.py:1200 msgid "Minimum allowed stock level" msgstr "Livello minimo di giacenza consentito" -#: part/models.py:1148 +#: part/models.py:1209 msgid "Units of measure for this part" msgstr "Unita di misura per questo articolo" -#: part/models.py:1155 +#: part/models.py:1216 msgid "Can this part be built from other parts?" msgstr "Questo articolo può essere costruito da altri articoli?" -#: part/models.py:1161 +#: part/models.py:1222 msgid "Can this part be used to build other parts?" msgstr "Questo articolo può essere utilizzato per costruire altri articoli?" -#: part/models.py:1167 +#: part/models.py:1228 msgid "Does this part have tracking for unique items?" msgstr "Questo articolo ha il tracciamento per gli elementi unici?" -#: part/models.py:1173 +#: part/models.py:1234 msgid "Can this part have test results recorded against it?" msgstr "" -#: part/models.py:1179 +#: part/models.py:1240 msgid "Can this part be purchased from external suppliers?" msgstr "Quest'articolo può essere acquistato da fornitori esterni?" -#: part/models.py:1185 +#: part/models.py:1246 msgid "Can this part be sold to customers?" msgstr "Questo pezzo può essere venduto ai clienti?" -#: part/models.py:1189 +#: part/models.py:1250 msgid "Is this part active?" msgstr "Quest'articolo è attivo?" -#: part/models.py:1194 templates/js/translated/part.js:821 +#: part/models.py:1255 templates/js/translated/part.js:821 #: templates/js/translated/table_filters.js:724 msgid "Locked" msgstr "" -#: part/models.py:1195 +#: part/models.py:1256 msgid "Locked parts cannot be edited" msgstr "" -#: part/models.py:1201 +#: part/models.py:1262 msgid "Is this a virtual part, such as a software product or license?" msgstr "È una parte virtuale, come un prodotto software o una licenza?" -#: part/models.py:1207 +#: part/models.py:1268 msgid "BOM checksum" msgstr "Somma di controllo Distinta Base" -#: part/models.py:1208 +#: part/models.py:1269 msgid "Stored BOM checksum" msgstr "Somma di controllo immagazzinata Distinta Base" -#: part/models.py:1216 +#: part/models.py:1277 msgid "BOM checked by" msgstr "Distinta Base controllata da" -#: part/models.py:1221 +#: part/models.py:1282 msgid "BOM checked date" msgstr "Data di verifica Distinta Base" -#: part/models.py:1237 +#: part/models.py:1298 msgid "Creation User" msgstr "Creazione Utente" -#: part/models.py:1247 +#: part/models.py:1308 msgid "Owner responsible for this part" msgstr "" -#: part/models.py:1252 part/templates/part/part_base.html:348 -#: stock/templates/stock/item_base.html:451 +#: part/models.py:1313 part/templates/part/part_base.html:356 +#: stock/templates/stock/item_base.html:448 #: templates/js/translated/part.js:2490 msgid "Last Stocktake" msgstr "Ultimo Inventario" -#: part/models.py:2125 +#: part/models.py:2185 msgid "Sell multiple" msgstr "Vendita multipla" -#: part/models.py:3116 +#: part/models.py:3167 msgid "Currency used to cache pricing calculations" msgstr "Valuta utilizzata per calcolare i prezzi" -#: part/models.py:3132 +#: part/models.py:3183 msgid "Minimum BOM Cost" msgstr "Costo Minimo Distinta Base" -#: part/models.py:3133 +#: part/models.py:3184 msgid "Minimum cost of component parts" msgstr "Costo minimo dei componenti dell'articolo" -#: part/models.py:3139 +#: part/models.py:3190 msgid "Maximum BOM Cost" msgstr "Costo Massimo Distinta Base" -#: part/models.py:3140 +#: part/models.py:3191 msgid "Maximum cost of component parts" msgstr "Costo massimo dei componenti dell'articolo" -#: part/models.py:3146 +#: part/models.py:3197 msgid "Minimum Purchase Cost" msgstr "Importo Acquisto Minimo" -#: part/models.py:3147 +#: part/models.py:3198 msgid "Minimum historical purchase cost" msgstr "Costo minimo di acquisto storico" -#: part/models.py:3153 +#: part/models.py:3204 msgid "Maximum Purchase Cost" msgstr "Importo massimo acquisto" -#: part/models.py:3154 +#: part/models.py:3205 msgid "Maximum historical purchase cost" msgstr "Costo massimo di acquisto storico" -#: part/models.py:3160 +#: part/models.py:3211 msgid "Minimum Internal Price" msgstr "Prezzo Interno Minimo" -#: part/models.py:3161 +#: part/models.py:3212 msgid "Minimum cost based on internal price breaks" msgstr "Costo minimo basato su interruzioni di prezzo interne" -#: part/models.py:3167 +#: part/models.py:3218 msgid "Maximum Internal Price" msgstr "Prezzo Interno Massimo" -#: part/models.py:3168 +#: part/models.py:3219 msgid "Maximum cost based on internal price breaks" msgstr "Costo massimo basato su interruzioni di prezzo interne" -#: part/models.py:3174 +#: part/models.py:3225 msgid "Minimum Supplier Price" msgstr "Prezzo Minimo Fornitore" -#: part/models.py:3175 +#: part/models.py:3226 msgid "Minimum price of part from external suppliers" msgstr "Prezzo minimo articolo da fornitori esterni" -#: part/models.py:3181 +#: part/models.py:3232 msgid "Maximum Supplier Price" msgstr "Prezzo Massimo Fornitore" -#: part/models.py:3182 +#: part/models.py:3233 msgid "Maximum price of part from external suppliers" msgstr "Prezzo massimo dell'articolo proveniente da fornitori esterni" -#: part/models.py:3188 +#: part/models.py:3239 msgid "Minimum Variant Cost" msgstr "Variazione di costo minimo" -#: part/models.py:3189 +#: part/models.py:3240 msgid "Calculated minimum cost of variant parts" msgstr "Costo minimo calcolato di variazione dell'articolo" -#: part/models.py:3195 +#: part/models.py:3246 msgid "Maximum Variant Cost" msgstr "Massima variazione di costo" -#: part/models.py:3196 +#: part/models.py:3247 msgid "Calculated maximum cost of variant parts" msgstr "Costo massimo calcolato di variazione dell'articolo" -#: part/models.py:3203 +#: part/models.py:3254 msgid "Override minimum cost" msgstr "" -#: part/models.py:3210 +#: part/models.py:3261 msgid "Override maximum cost" msgstr "" -#: part/models.py:3217 +#: part/models.py:3268 msgid "Calculated overall minimum cost" msgstr "Costo minimo totale calcolato" -#: part/models.py:3224 +#: part/models.py:3275 msgid "Calculated overall maximum cost" msgstr "Costo massimo totale calcolato" -#: part/models.py:3230 +#: part/models.py:3281 msgid "Minimum Sale Price" msgstr "Prezzo Di Vendita Minimo" -#: part/models.py:3231 +#: part/models.py:3282 msgid "Minimum sale price based on price breaks" msgstr "Prezzo minimo di vendita basato sulle interruzioni di prezzo" -#: part/models.py:3237 +#: part/models.py:3288 msgid "Maximum Sale Price" msgstr "Prezzo Di Vendita Massimo" -#: part/models.py:3238 +#: part/models.py:3289 msgid "Maximum sale price based on price breaks" msgstr "Prezzo massimo di vendita basato sulle interruzioni di prezzo" -#: part/models.py:3244 +#: part/models.py:3295 msgid "Minimum Sale Cost" msgstr "Costo Di Vendita Minimo" -#: part/models.py:3245 +#: part/models.py:3296 msgid "Minimum historical sale price" msgstr "Prezzo storico minimo di vendita" -#: part/models.py:3251 +#: part/models.py:3302 msgid "Maximum Sale Cost" msgstr "Costo Di Vendita Minimo" -#: part/models.py:3252 +#: part/models.py:3303 msgid "Maximum historical sale price" msgstr "Prezzo storico massimo di vendita" -#: part/models.py:3271 +#: part/models.py:3322 msgid "Part for stocktake" msgstr "Articolo per l'inventario" -#: part/models.py:3276 +#: part/models.py:3327 msgid "Item Count" msgstr "Contatore Elemento" -#: part/models.py:3277 +#: part/models.py:3328 msgid "Number of individual stock entries at time of stocktake" msgstr "Numero di scorte individuali al momento dell'inventario" -#: part/models.py:3285 +#: part/models.py:3336 msgid "Total available stock at time of stocktake" msgstr "Totale delle scorte disponibili al momento dell'inventario" -#: part/models.py:3289 part/models.py:3372 +#: part/models.py:3340 part/models.py:3423 part/serializers.py:263 #: part/templates/part/part_scheduling.html:13 #: report/templates/report/inventree_test_report.html:106 #: templates/InvenTree/settings/plugin_settings.html:37 #: templates/InvenTree/settings/settings_staff_js.html:543 -#: templates/js/translated/part.js:1092 templates/js/translated/pricing.js:826 -#: templates/js/translated/pricing.js:950 -#: templates/js/translated/purchase_order.js:1801 -#: templates/js/translated/stock.js:2905 +#: templates/js/translated/part.js:1092 templates/js/translated/pricing.js:824 +#: templates/js/translated/pricing.js:948 +#: templates/js/translated/purchase_order.js:1785 +#: templates/js/translated/stock.js:2906 msgid "Date" msgstr "Data" -#: part/models.py:3290 +#: part/models.py:3341 msgid "Date stocktake was performed" msgstr "Data in cui è stato effettuato l'inventario" -#: part/models.py:3298 +#: part/models.py:3349 msgid "Additional notes" msgstr "Note aggiuntive" -#: part/models.py:3308 +#: part/models.py:3359 msgid "User who performed this stocktake" msgstr "Utente che ha eseguito questo inventario" -#: part/models.py:3314 +#: part/models.py:3365 msgid "Minimum Stock Cost" msgstr "Costo Minimo Scorta" -#: part/models.py:3315 +#: part/models.py:3366 msgid "Estimated minimum cost of stock on hand" msgstr "Costo minimo stimato di magazzino a disposizione" -#: part/models.py:3321 +#: part/models.py:3372 msgid "Maximum Stock Cost" msgstr "Costo Massimo Scorte" -#: part/models.py:3322 +#: part/models.py:3373 msgid "Estimated maximum cost of stock on hand" msgstr "Costo massimo stimato di magazzino a disposizione" -#: part/models.py:3378 templates/InvenTree/settings/settings_staff_js.html:532 +#: part/models.py:3429 templates/InvenTree/settings/settings_staff_js.html:532 msgid "Report" msgstr "" -#: part/models.py:3379 +#: part/models.py:3430 msgid "Stocktake report file (generated internally)" msgstr "File Report Inventario (generato internamente)" -#: part/models.py:3384 templates/InvenTree/settings/settings_staff_js.html:539 +#: part/models.py:3435 templates/InvenTree/settings/settings_staff_js.html:539 msgid "Part Count" msgstr "Conteggio Articolo" -#: part/models.py:3385 +#: part/models.py:3436 msgid "Number of parts covered by stocktake" msgstr "Numero di articoli oggetto d'inventario" -#: part/models.py:3395 +#: part/models.py:3446 msgid "User who requested this stocktake report" msgstr "Utente che ha richiesto questo report inventario" -#: part/models.py:3405 +#: part/models.py:3456 msgid "Part Sale Price Break" msgstr "" -#: part/models.py:3517 +#: part/models.py:3568 msgid "Part Test Template" msgstr "" -#: part/models.py:3543 +#: part/models.py:3594 msgid "Invalid template name - must include at least one alphanumeric character" msgstr "" -#: part/models.py:3564 part/models.py:3733 +#: part/models.py:3615 part/models.py:3784 msgid "Choices must be unique" msgstr "" -#: part/models.py:3575 -msgid "Test templates can only be created for trackable parts" -msgstr "Il modello di prova può essere creato solo per gli articoli rintracciabili" +#: part/models.py:3626 +msgid "Test templates can only be created for testable parts" +msgstr "" -#: part/models.py:3586 +#: part/models.py:3637 msgid "Test template with the same key already exists for part" msgstr "" -#: part/models.py:3603 templates/js/translated/part.js:2898 +#: part/models.py:3654 templates/js/translated/part.js:2898 msgid "Test Name" msgstr "Nome Test" -#: part/models.py:3604 +#: part/models.py:3655 msgid "Enter a name for the test" msgstr "Inserisci un nome per la prova" -#: part/models.py:3610 +#: part/models.py:3661 msgid "Test Key" msgstr "" -#: part/models.py:3611 +#: part/models.py:3662 msgid "Simplified key for the test" msgstr "" -#: part/models.py:3618 +#: part/models.py:3669 msgid "Test Description" msgstr "Descrizione Di Prova" -#: part/models.py:3619 +#: part/models.py:3670 msgid "Enter description for this test" msgstr "Inserisci descrizione per questa prova" -#: part/models.py:3623 report/models.py:208 +#: part/models.py:3674 report/models.py:216 #: templates/js/translated/part.js:2919 #: templates/js/translated/table_filters.js:502 msgid "Enabled" msgstr "Abilitato" -#: part/models.py:3623 +#: part/models.py:3674 msgid "Is this test enabled?" msgstr "" -#: part/models.py:3628 templates/js/translated/part.js:2927 +#: part/models.py:3679 templates/js/translated/part.js:2927 #: templates/js/translated/table_filters.js:498 msgid "Required" msgstr "Richiesto" -#: part/models.py:3629 +#: part/models.py:3680 msgid "Is this test required to pass?" msgstr "Questa prova è necessaria per passare?" -#: part/models.py:3634 templates/js/translated/part.js:2935 +#: part/models.py:3685 templates/js/translated/part.js:2935 msgid "Requires Value" msgstr "Valore richiesto" -#: part/models.py:3635 +#: part/models.py:3686 msgid "Does this test require a value when adding a test result?" msgstr "Questa prova richiede un valore quando si aggiunge un risultato di prova?" -#: part/models.py:3640 templates/js/translated/part.js:2942 +#: part/models.py:3691 templates/js/translated/part.js:2942 msgid "Requires Attachment" msgstr "Allegato Richiesto" -#: part/models.py:3642 +#: part/models.py:3693 msgid "Does this test require a file attachment when adding a test result?" msgstr "Questa prova richiede un file allegato quando si aggiunge un risultato di prova?" -#: part/models.py:3648 part/models.py:3792 templates/js/translated/part.js:1643 +#: part/models.py:3699 part/models.py:3843 templates/js/translated/part.js:1643 msgid "Choices" msgstr "" -#: part/models.py:3649 +#: part/models.py:3700 msgid "Valid choices for this test (comma-separated)" msgstr "" -#: part/models.py:3681 +#: part/models.py:3732 msgid "Part Parameter Template" msgstr "" -#: part/models.py:3708 +#: part/models.py:3759 msgid "Checkbox parameters cannot have units" msgstr "" -#: part/models.py:3713 +#: part/models.py:3764 msgid "Checkbox parameters cannot have choices" msgstr "" -#: part/models.py:3750 +#: part/models.py:3801 msgid "Parameter template name must be unique" msgstr "Il nome del modello del parametro deve essere univoco" -#: part/models.py:3765 +#: part/models.py:3816 msgid "Parameter Name" msgstr "Nome Parametro" -#: part/models.py:3772 +#: part/models.py:3823 msgid "Physical units for this parameter" msgstr "" -#: part/models.py:3780 +#: part/models.py:3831 msgid "Parameter description" msgstr "Descrizione del parametro" -#: part/models.py:3786 templates/js/translated/part.js:1634 +#: part/models.py:3837 templates/js/translated/part.js:1634 #: templates/js/translated/table_filters.js:837 msgid "Checkbox" msgstr "" -#: part/models.py:3787 +#: part/models.py:3838 msgid "Is this parameter a checkbox?" msgstr "" -#: part/models.py:3793 +#: part/models.py:3844 msgid "Valid choices for this parameter (comma-separated)" msgstr "" -#: part/models.py:3827 +#: part/models.py:3881 msgid "Part Parameter" msgstr "" -#: part/models.py:3853 +#: part/models.py:3907 msgid "Parameter cannot be modified - part is locked" msgstr "" -#: part/models.py:3889 +#: part/models.py:3945 msgid "Invalid choice for parameter value" msgstr "" -#: part/models.py:3938 +#: part/models.py:3996 msgid "Parent Part" msgstr "Articolo principale" -#: part/models.py:3946 part/models.py:4054 part/models.py:4055 +#: part/models.py:4004 part/models.py:4112 part/models.py:4113 #: templates/InvenTree/settings/settings_staff_js.html:295 msgid "Parameter Template" msgstr "Modello Parametro" -#: part/models.py:3952 +#: part/models.py:4010 msgid "Parameter Value" msgstr "Valore del Parametro" -#: part/models.py:4002 +#: part/models.py:4060 msgid "Part Category Parameter Template" msgstr "" -#: part/models.py:4061 templates/InvenTree/settings/settings_staff_js.html:304 +#: part/models.py:4119 templates/InvenTree/settings/settings_staff_js.html:304 msgid "Default Value" msgstr "Valore Predefinito" -#: part/models.py:4062 +#: part/models.py:4120 msgid "Default Parameter Value" msgstr "Valore Parametro Predefinito" -#: part/models.py:4100 +#: part/models.py:4158 msgid "Part ID or part name" msgstr "ID articolo o nome articolo" -#: part/models.py:4101 +#: part/models.py:4159 msgid "Unique part ID value" msgstr "Valore ID articolo univoco" -#: part/models.py:4103 +#: part/models.py:4161 msgid "Part IPN value" msgstr "Valore IPN articolo" -#: part/models.py:4104 +#: part/models.py:4162 msgid "Level" msgstr "Livello" -#: part/models.py:4104 +#: part/models.py:4162 msgid "BOM level" msgstr "Livello distinta base" -#: part/models.py:4215 +#: part/models.py:4272 msgid "BOM item cannot be modified - assembly is locked" msgstr "" -#: part/models.py:4222 +#: part/models.py:4279 msgid "BOM item cannot be modified - variant assembly is locked" msgstr "" -#: part/models.py:4232 +#: part/models.py:4289 msgid "Select parent part" msgstr "Seleziona articolo principale" -#: part/models.py:4242 +#: part/models.py:4299 msgid "Sub part" msgstr "Articolo subordinato" -#: part/models.py:4243 +#: part/models.py:4300 msgid "Select part to be used in BOM" msgstr "Seleziona l'articolo da utilizzare nella Distinta Base" -#: part/models.py:4254 +#: part/models.py:4311 msgid "BOM quantity for this BOM item" msgstr "Quantità Distinta Base per questo elemento Distinta Base" -#: part/models.py:4260 +#: part/models.py:4317 msgid "This BOM item is optional" msgstr "Questo elemento della Distinta Base è opzionale" -#: part/models.py:4266 +#: part/models.py:4323 msgid "This BOM item is consumable (it is not tracked in build orders)" msgstr "Questo elemento della Distinta Base è consumabile (non è tracciato negli ordini di produzione)" -#: part/models.py:4273 part/templates/part/upload_bom.html:55 +#: part/models.py:4330 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "Eccedenza" -#: part/models.py:4274 +#: part/models.py:4331 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "Quantità stimata scarti di produzione (assoluta o percentuale)" -#: part/models.py:4281 +#: part/models.py:4338 msgid "BOM item reference" msgstr "Riferimento Elemento Distinta Base" -#: part/models.py:4289 +#: part/models.py:4346 msgid "BOM item notes" msgstr "Note Elemento Distinta Base" -#: part/models.py:4295 +#: part/models.py:4352 msgid "Checksum" msgstr "Codice di controllo" -#: part/models.py:4296 +#: part/models.py:4353 msgid "BOM line checksum" msgstr "Codice di controllo Distinta Base" -#: part/models.py:4301 templates/js/translated/table_filters.js:181 +#: part/models.py:4358 templates/js/translated/table_filters.js:181 msgid "Validated" msgstr "Convalidato" -#: part/models.py:4302 +#: part/models.py:4359 msgid "This BOM item has been validated" msgstr "" -#: part/models.py:4307 part/templates/part/upload_bom.html:57 +#: part/models.py:4364 part/templates/part/upload_bom.html:57 #: templates/js/translated/bom.js:1054 #: templates/js/translated/table_filters.js:185 #: templates/js/translated/table_filters.js:218 msgid "Gets inherited" msgstr "" -#: part/models.py:4308 +#: part/models.py:4365 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "Questo elemento della Distinta Base viene ereditato dalle Distinte Base per gli articoli varianti" -#: part/models.py:4314 +#: part/models.py:4371 msgid "Stock items for variant parts can be used for this BOM item" msgstr "Gli elementi in giacenza per gli articoli varianti possono essere utilizzati per questo elemento Distinta Base" -#: part/models.py:4399 stock/models.py:685 +#: part/models.py:4456 stock/models.py:762 msgid "Quantity must be integer value for trackable parts" msgstr "La quantità deve essere un valore intero per gli articoli rintracciabili" -#: part/models.py:4409 part/models.py:4411 +#: part/models.py:4466 part/models.py:4468 msgid "Sub part must be specified" msgstr "L'articolo subordinato deve essere specificato" -#: part/models.py:4551 +#: part/models.py:4613 msgid "BOM Item Substitute" msgstr "Elemento Distinta Base Sostituito" -#: part/models.py:4572 +#: part/models.py:4634 msgid "Substitute part cannot be the same as the master part" msgstr "La parte sostituita non può essere la stessa dell'articolo principale" -#: part/models.py:4585 +#: part/models.py:4647 msgid "Parent BOM item" msgstr "Elemento principale Distinta Base" -#: part/models.py:4593 +#: part/models.py:4655 msgid "Substitute part" msgstr "Sostituisci l'Articolo" -#: part/models.py:4609 +#: part/models.py:4671 msgid "Part 1" msgstr "Articolo 1" -#: part/models.py:4617 +#: part/models.py:4679 msgid "Part 2" msgstr "Articolo 2" -#: part/models.py:4618 +#: part/models.py:4680 msgid "Select Related Part" msgstr "Seleziona Prodotto Relativo" -#: part/models.py:4637 +#: part/models.py:4699 msgid "Part relationship cannot be created between a part and itself" msgstr "Non si può creare una relazione tra l'articolo e sé stesso" -#: part/models.py:4642 +#: part/models.py:4704 msgid "Duplicate relationship already exists" msgstr "La relazione duplicata esiste già" @@ -7449,340 +7662,352 @@ msgstr "" msgid "Number of results recorded against this template" msgstr "" -#: part/serializers.py:225 part/serializers.py:243 stock/serializers.py:616 +#: part/serializers.py:225 part/serializers.py:243 stock/serializers.py:643 msgid "Purchase currency of this stock item" msgstr "Valuta di acquisto di questo articolo in stock" -#: part/serializers.py:291 +#: part/serializers.py:268 +msgid "Speculative Quantity" +msgstr "" + +#: part/serializers.py:277 +msgid "Model ID" +msgstr "" + +#: part/serializers.py:324 msgid "Number of parts using this template" msgstr "" -#: part/serializers.py:421 +#: part/serializers.py:465 msgid "No parts selected" msgstr "" -#: part/serializers.py:431 +#: part/serializers.py:475 msgid "Select category" msgstr "" -#: part/serializers.py:466 +#: part/serializers.py:510 msgid "Original Part" msgstr "Articolo Originale" -#: part/serializers.py:467 +#: part/serializers.py:511 msgid "Select original part to duplicate" msgstr "Seleziona l'articolo originale da duplicare" -#: part/serializers.py:472 +#: part/serializers.py:516 msgid "Copy Image" msgstr "Copia immagine" -#: part/serializers.py:473 +#: part/serializers.py:517 msgid "Copy image from original part" msgstr "Copia immagine dall'articolo originale" -#: part/serializers.py:479 part/templates/part/detail.html:293 +#: part/serializers.py:523 part/templates/part/detail.html:293 msgid "Copy BOM" msgstr "Copia Distinta Base" -#: part/serializers.py:480 +#: part/serializers.py:524 msgid "Copy bill of materials from original part" msgstr "Copia fattura dei materiali dall'articolo originale" -#: part/serializers.py:486 +#: part/serializers.py:530 msgid "Copy Parameters" msgstr "Copia parametri" -#: part/serializers.py:487 +#: part/serializers.py:531 msgid "Copy parameter data from original part" msgstr "Copia i dati dei parametri dall'articolo originale" -#: part/serializers.py:493 +#: part/serializers.py:537 msgid "Copy Notes" msgstr "" -#: part/serializers.py:494 +#: part/serializers.py:538 msgid "Copy notes from original part" msgstr "" -#: part/serializers.py:512 +#: part/serializers.py:556 msgid "Initial Stock Quantity" msgstr "Quantità iniziale" -#: part/serializers.py:514 +#: part/serializers.py:558 msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added." msgstr "Specificare la quantità iniziale disponibile per questo Articolo. Se la quantità è zero, non viene aggiunta alcuna quantità." -#: part/serializers.py:521 +#: part/serializers.py:565 msgid "Initial Stock Location" msgstr "Ubicazione Iniziale Magazzino" -#: part/serializers.py:522 +#: part/serializers.py:566 msgid "Specify initial stock location for this Part" msgstr "Specificare l'ubicazione iniziale del magazzino per questo Articolo" -#: part/serializers.py:539 +#: part/serializers.py:583 msgid "Select supplier (or leave blank to skip)" msgstr "Seleziona il fornitore (o lascia vuoto per saltare)" -#: part/serializers.py:555 +#: part/serializers.py:599 msgid "Select manufacturer (or leave blank to skip)" msgstr "Seleziona il produttore (o lascia vuoto per saltare)" -#: part/serializers.py:565 +#: part/serializers.py:609 msgid "Manufacturer part number" msgstr "Codice articolo Produttore" -#: part/serializers.py:572 +#: part/serializers.py:616 msgid "Selected company is not a valid supplier" msgstr "L'azienda selezionata non è un fornitore valido" -#: part/serializers.py:581 +#: part/serializers.py:625 msgid "Selected company is not a valid manufacturer" msgstr "L'azienda selezionata non è un produttore valido" -#: part/serializers.py:592 +#: part/serializers.py:636 msgid "Manufacturer part matching this MPN already exists" msgstr "L'articolo del produttore che corrisponde a questo MPN esiste già" -#: part/serializers.py:599 +#: part/serializers.py:643 msgid "Supplier part matching this SKU already exists" msgstr "L'articolo del fornitore che corrisponde a questo SKU esiste già" -#: part/serializers.py:903 +#: part/serializers.py:955 msgid "Revisions" msgstr "" -#: part/serializers.py:908 +#: part/serializers.py:960 msgid "Unallocated Stock" msgstr "" -#: part/serializers.py:911 +#: part/serializers.py:963 msgid "Variant Stock" msgstr "" -#: part/serializers.py:941 part/templates/part/copy_part.html:9 +#: part/serializers.py:993 part/templates/part/copy_part.html:9 #: templates/js/translated/part.js:474 msgid "Duplicate Part" msgstr "Duplica articolo" -#: part/serializers.py:942 +#: part/serializers.py:994 msgid "Copy initial data from another Part" msgstr "Copia i dati iniziali da un altro Articolo" -#: part/serializers.py:948 templates/js/translated/part.js:103 +#: part/serializers.py:1000 templates/js/translated/part.js:103 msgid "Initial Stock" msgstr "Stock iniziale" -#: part/serializers.py:949 +#: part/serializers.py:1001 msgid "Create Part with initial stock quantity" msgstr "Crea Articolo con quantità di scorta iniziale" -#: part/serializers.py:955 +#: part/serializers.py:1007 msgid "Supplier Information" msgstr "Informazioni Fornitore" -#: part/serializers.py:956 +#: part/serializers.py:1008 msgid "Add initial supplier information for this part" msgstr "Aggiungi le informazioni iniziali del fornitore per questo articolo" -#: part/serializers.py:964 +#: part/serializers.py:1016 msgid "Copy Category Parameters" msgstr "Copia Parametri Categoria" -#: part/serializers.py:965 +#: part/serializers.py:1017 msgid "Copy parameter templates from selected part category" msgstr "Copia i parametri dai modelli della categoria articolo selezionata" -#: part/serializers.py:970 +#: part/serializers.py:1022 msgid "Existing Image" msgstr "" -#: part/serializers.py:971 +#: part/serializers.py:1023 msgid "Filename of an existing part image" msgstr "" -#: part/serializers.py:988 +#: part/serializers.py:1040 msgid "Image file does not exist" msgstr "" -#: part/serializers.py:1194 +#: part/serializers.py:1247 msgid "Limit stocktake report to a particular part, and any variant parts" msgstr "Limitare il report d'inventario ad un articolo particolare e a eventuali articoli varianti" -#: part/serializers.py:1204 +#: part/serializers.py:1257 msgid "Limit stocktake report to a particular part category, and any child categories" msgstr "Limita il report d'inventario ad una particolare categoria articolo, e a eventuali categorie secondarie" -#: part/serializers.py:1214 +#: part/serializers.py:1267 msgid "Limit stocktake report to a particular stock location, and any child locations" msgstr "Limita il report d'inventario ad una particolare ubicazione di magazzino, e a eventuali ubicazioni secondarie" -#: part/serializers.py:1220 +#: part/serializers.py:1273 msgid "Exclude External Stock" msgstr "" -#: part/serializers.py:1221 +#: part/serializers.py:1274 msgid "Exclude stock items in external locations" msgstr "" -#: part/serializers.py:1226 +#: part/serializers.py:1279 msgid "Generate Report" msgstr "Genera Report" -#: part/serializers.py:1227 +#: part/serializers.py:1280 msgid "Generate report file containing calculated stocktake data" msgstr "Genera file di report contenente dati di inventario calcolati" -#: part/serializers.py:1232 +#: part/serializers.py:1285 msgid "Update Parts" msgstr "Aggiorna Articoli" -#: part/serializers.py:1233 +#: part/serializers.py:1286 msgid "Update specified parts with calculated stocktake data" msgstr "Aggiorna gli articoli specificati con i dati calcolati di inventario" -#: part/serializers.py:1241 +#: part/serializers.py:1294 msgid "Stocktake functionality is not enabled" msgstr "La funzione Inventario non è abilitata" -#: part/serializers.py:1347 +#: part/serializers.py:1299 +msgid "Background worker check failed" +msgstr "Controllo in background non riuscito" + +#: part/serializers.py:1401 msgid "Override calculated value for minimum price" msgstr "" -#: part/serializers.py:1354 +#: part/serializers.py:1408 msgid "Minimum price currency" msgstr "" -#: part/serializers.py:1362 +#: part/serializers.py:1416 msgid "Override calculated value for maximum price" msgstr "" -#: part/serializers.py:1369 +#: part/serializers.py:1423 msgid "Maximum price currency" msgstr "" -#: part/serializers.py:1398 +#: part/serializers.py:1452 msgid "Update" msgstr "Aggiorna" -#: part/serializers.py:1399 +#: part/serializers.py:1453 msgid "Update pricing for this part" msgstr "Aggiorna i prezzi per questo articolo" -#: part/serializers.py:1422 +#: part/serializers.py:1476 #, python-brace-format msgid "Could not convert from provided currencies to {default_currency}" msgstr "" -#: part/serializers.py:1429 +#: part/serializers.py:1483 msgid "Minimum price must not be greater than maximum price" msgstr "" -#: part/serializers.py:1432 +#: part/serializers.py:1486 msgid "Maximum price must not be less than minimum price" msgstr "" -#: part/serializers.py:1576 +#: part/serializers.py:1634 msgid "Select the parent assembly" msgstr "" -#: part/serializers.py:1585 +#: part/serializers.py:1643 msgid "Component Name" msgstr "" -#: part/serializers.py:1588 +#: part/serializers.py:1646 msgid "Component IPN" msgstr "" -#: part/serializers.py:1591 +#: part/serializers.py:1649 msgid "Component Description" msgstr "" -#: part/serializers.py:1597 +#: part/serializers.py:1655 msgid "Select the component part" msgstr "" -#: part/serializers.py:1606 part/templates/part/part_base.html:235 +#: part/serializers.py:1664 part/templates/part/part_base.html:243 #: templates/js/translated/bom.js:1219 msgid "Can Build" msgstr "Puoi produrre" -#: part/serializers.py:1837 +#: part/serializers.py:1899 msgid "Select part to copy BOM from" msgstr "Seleziona l'articolo da cui copiare la distinta base" -#: part/serializers.py:1845 +#: part/serializers.py:1907 msgid "Remove Existing Data" msgstr "Rimuovi Dati Esistenti" -#: part/serializers.py:1846 +#: part/serializers.py:1908 msgid "Remove existing BOM items before copying" msgstr "Rimuovi elementi distinta base esistenti prima di copiare" -#: part/serializers.py:1851 +#: part/serializers.py:1913 msgid "Include Inherited" msgstr "Includi Ereditato" -#: part/serializers.py:1852 +#: part/serializers.py:1914 msgid "Include BOM items which are inherited from templated parts" msgstr "Includi gli elementi Distinta Base ereditati da prodotti template" -#: part/serializers.py:1857 +#: part/serializers.py:1919 msgid "Skip Invalid Rows" msgstr "Salta Righe Non Valide" -#: part/serializers.py:1858 +#: part/serializers.py:1920 msgid "Enable this option to skip invalid rows" msgstr "Abilita questa opzione per saltare le righe non valide" -#: part/serializers.py:1863 +#: part/serializers.py:1925 msgid "Copy Substitute Parts" msgstr "Copia Articoli sostitutivi" -#: part/serializers.py:1864 +#: part/serializers.py:1926 msgid "Copy substitute parts when duplicate BOM items" msgstr "Copia articoli sostitutivi quando duplichi gli elementi distinta base" -#: part/serializers.py:1901 +#: part/serializers.py:1963 msgid "Clear Existing BOM" msgstr "Cancella Distinta Base esistente" -#: part/serializers.py:1902 +#: part/serializers.py:1964 msgid "Delete existing BOM items before uploading" msgstr "Rimuovi elementi distinta base esistenti prima del caricamento" -#: part/serializers.py:1934 +#: part/serializers.py:1996 msgid "No part column specified" msgstr "Nessuna colonna articolo specificata" -#: part/serializers.py:1978 +#: part/serializers.py:2040 msgid "Multiple matching parts found" msgstr "Trovati più articoli corrispondenti" -#: part/serializers.py:1981 +#: part/serializers.py:2043 msgid "No matching part found" msgstr "Nessun articolo corrispondente trovato" -#: part/serializers.py:1984 +#: part/serializers.py:2045 msgid "Part is not designated as a component" msgstr "L'articolo non è indicato come componente" -#: part/serializers.py:1993 +#: part/serializers.py:2054 msgid "Quantity not provided" msgstr "Quantità non fornita" -#: part/serializers.py:2001 +#: part/serializers.py:2062 msgid "Invalid quantity" msgstr "Quantità non valida" -#: part/serializers.py:2024 +#: part/serializers.py:2085 msgid "At least one BOM item is required" msgstr "Almeno un elemento della distinta base è richiesto" #: part/stocktake.py:224 templates/js/translated/part.js:1073 #: templates/js/translated/part.js:1828 templates/js/translated/part.js:1884 -#: templates/js/translated/purchase_order.js:2154 +#: templates/js/translated/purchase_order.js:2138 msgid "Total Quantity" msgstr "Quantità Totale" @@ -7932,9 +8157,9 @@ msgid "Add stocktake information" msgstr "Aggiungi informazioni inventario" #: part/templates/part/detail.html:67 part/templates/part/part_sidebar.html:50 -#: stock/admin.py:255 templates/InvenTree/settings/part_stocktake.html:30 +#: stock/admin.py:256 templates/InvenTree/settings/part_stocktake.html:30 #: templates/InvenTree/settings/sidebar.html:53 -#: templates/js/translated/stock.js:2301 users/models.py:204 +#: templates/js/translated/stock.js:2302 users/models.py:204 msgid "Stocktake" msgstr "Inventario" @@ -8093,142 +8318,146 @@ msgstr "Seleziona il formato del file" msgid "Part List" msgstr "Elenco Articolo" -#: part/templates/part/part_base.html:25 part/templates/part/part_base.html:29 +#: part/templates/part/part_base.html:26 part/templates/part/part_base.html:30 msgid "You are subscribed to notifications for this part" msgstr "Sei iscritto alle notifiche per questo articolo" -#: part/templates/part/part_base.html:33 +#: part/templates/part/part_base.html:34 msgid "Subscribe to notifications for this part" msgstr "Sottoscrivi le notifiche per questo articolo" -#: part/templates/part/part_base.html:52 +#: part/templates/part/part_base.html:53 #: stock/templates/stock/item_base.html:62 -#: stock/templates/stock/location.html:71 templates/js/translated/label.js:136 +#: stock/templates/stock/location.html:72 templates/js/translated/label.js:136 msgid "Print Label" msgstr "Stampa Etichetta" -#: part/templates/part/part_base.html:58 +#: part/templates/part/part_base.html:59 msgid "Show pricing information" msgstr "Mostra informazioni sui prezzi" -#: part/templates/part/part_base.html:63 -#: stock/templates/stock/item_base.html:110 -#: stock/templates/stock/location.html:80 +#: part/templates/part/part_base.html:64 +#: stock/templates/stock/item_base.html:107 +#: stock/templates/stock/location.html:81 msgid "Stock actions" msgstr "Azioni magazzino" -#: part/templates/part/part_base.html:70 +#: part/templates/part/part_base.html:71 msgid "Count part stock" msgstr "Conta articoli magazzino" -#: part/templates/part/part_base.html:76 +#: part/templates/part/part_base.html:77 msgid "Transfer part stock" msgstr "Trasferisci giacenza" -#: part/templates/part/part_base.html:91 templates/js/translated/part.js:2299 +#: part/templates/part/part_base.html:92 templates/js/translated/part.js:2299 msgid "Part actions" msgstr "Azioni articolo" -#: part/templates/part/part_base.html:94 +#: part/templates/part/part_base.html:95 msgid "Duplicate part" msgstr "Duplica articolo" -#: part/templates/part/part_base.html:97 +#: part/templates/part/part_base.html:98 msgid "Edit part" msgstr "Modifica articolo" -#: part/templates/part/part_base.html:100 +#: part/templates/part/part_base.html:101 msgid "Delete part" msgstr "Cancella articolo" -#: part/templates/part/part_base.html:119 +#: part/templates/part/part_base.html:120 msgid "Part is a template part (variants can be made from this part)" msgstr "L'articolo è una articolo modello (le varianti possono essere fatte da questo articolo)" -#: part/templates/part/part_base.html:123 +#: part/templates/part/part_base.html:124 msgid "Part can be assembled from other parts" msgstr "L'articolo può essere assemblato da altri articoli" -#: part/templates/part/part_base.html:127 +#: part/templates/part/part_base.html:128 msgid "Part can be used in assemblies" msgstr "L'articolo può essere utilizzato negli assemblaggi" -#: part/templates/part/part_base.html:131 +#: part/templates/part/part_base.html:132 msgid "Part stock is tracked by serial number" msgstr "Lo stock dell'articolo è tracciato dal numero di serie" -#: part/templates/part/part_base.html:135 +#: part/templates/part/part_base.html:136 msgid "Part can be purchased from external suppliers" msgstr "L'articolo può essere acquistato da fornitori esterni" -#: part/templates/part/part_base.html:139 +#: part/templates/part/part_base.html:140 msgid "Part can be sold to customers" msgstr "La parte può essere venduta ai clienti" -#: part/templates/part/part_base.html:145 +#: part/templates/part/part_base.html:146 msgid "Part is not active" msgstr "L'articolo non è attivo" -#: part/templates/part/part_base.html:153 +#: part/templates/part/part_base.html:154 msgid "Part is virtual (not a physical part)" msgstr "L'Articolo è virtuale (non è un articolo fisico)" -#: part/templates/part/part_base.html:163 -#: part/templates/part/part_base.html:690 +#: part/templates/part/part_base.html:164 +#: part/templates/part/part_base.html:698 msgid "Show Part Details" msgstr "Mostra i Dettagli Articolo" #: part/templates/part/part_base.html:218 -#: stock/templates/stock/item_base.html:388 +msgid "Required for Orders" +msgstr "" + +#: part/templates/part/part_base.html:226 +#: stock/templates/stock/item_base.html:385 msgid "Allocated to Build Orders" msgstr "Assegnato agli Ordini di Produzione" -#: part/templates/part/part_base.html:227 -#: stock/templates/stock/item_base.html:381 +#: part/templates/part/part_base.html:235 +#: stock/templates/stock/item_base.html:378 msgid "Allocated to Sales Orders" msgstr "Assegnato agli Ordini di Vendita" -#: part/templates/part/part_base.html:300 +#: part/templates/part/part_base.html:308 msgid "Minimum stock level" msgstr "Livello minimo di giacenza" -#: part/templates/part/part_base.html:331 templates/js/translated/bom.js:1071 +#: part/templates/part/part_base.html:339 templates/js/translated/bom.js:1071 #: templates/js/translated/part.js:1271 templates/js/translated/part.js:2463 #: templates/js/translated/pricing.js:391 -#: templates/js/translated/pricing.js:1054 +#: templates/js/translated/pricing.js:1052 msgid "Price Range" msgstr "Fascia di Prezzo" -#: part/templates/part/part_base.html:361 +#: part/templates/part/part_base.html:369 msgid "Latest Serial Number" msgstr "Ultimo Numero Di Serie" -#: part/templates/part/part_base.html:365 -#: stock/templates/stock/item_base.html:322 +#: part/templates/part/part_base.html:373 +#: stock/templates/stock/item_base.html:319 msgid "Search for serial number" msgstr "Ricerca per numero seriale" -#: part/templates/part/part_base.html:453 +#: part/templates/part/part_base.html:461 msgid "Part QR Code" msgstr "" -#: part/templates/part/part_base.html:470 +#: part/templates/part/part_base.html:478 msgid "Link Barcode to Part" msgstr "" -#: part/templates/part/part_base.html:520 +#: part/templates/part/part_base.html:528 msgid "Calculate" msgstr "" -#: part/templates/part/part_base.html:537 +#: part/templates/part/part_base.html:545 msgid "Remove associated image from this part" msgstr "" -#: part/templates/part/part_base.html:588 +#: part/templates/part/part_base.html:596 msgid "No matching images found" msgstr "" -#: part/templates/part/part_base.html:684 +#: part/templates/part/part_base.html:692 msgid "Hide Part Details" msgstr "" @@ -8282,13 +8511,13 @@ msgid "Variants" msgstr "Varianti" #: part/templates/part/part_sidebar.html:14 -#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:21 +#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:22 #: stock/templates/stock/stock_app_base.html:10 #: templates/InvenTree/search.html:153 #: templates/InvenTree/settings/sidebar.html:51 #: templates/js/translated/part.js:1249 templates/js/translated/part.js:2152 #: templates/js/translated/part.js:2411 templates/js/translated/stock.js:1066 -#: templates/js/translated/stock.js:2155 templates/navbar.html:31 +#: templates/js/translated/stock.js:2156 templates/navbar.html:31 msgid "Stock" msgstr "Magazzino" @@ -8324,17 +8553,17 @@ msgstr "" #: part/templates/part/prices.html:18 #: templates/InvenTree/settings/settings_staff_js.html:80 #: templates/InvenTree/settings/user.html:24 -#: templates/js/translated/helpers.js:103 +#: templates/js/translated/helpers.js:104 #: templates/js/translated/pricing.js:628 templates/notes_buttons.html:3 #: templates/notes_buttons.html:4 msgid "Edit" msgstr "Modifica" -#: part/templates/part/prices.html:28 stock/admin.py:251 -#: stock/templates/stock/item_base.html:446 -#: templates/js/translated/company.js:1703 -#: templates/js/translated/company.js:1713 -#: templates/js/translated/stock.js:2331 +#: part/templates/part/prices.html:28 stock/admin.py:252 +#: stock/templates/stock/item_base.html:443 +#: templates/js/translated/company.js:1704 +#: templates/js/translated/company.js:1714 +#: templates/js/translated/stock.js:2332 msgid "Last Updated" msgstr "Ultimo aggiornamento" @@ -8406,7 +8635,7 @@ msgid "Update Pricing" msgstr "" #: part/templates/part/stock_count.html:7 -#: templates/js/translated/model_renderers.js:228 +#: templates/js/translated/model_renderers.js:231 #: templates/js/translated/part.js:707 templates/js/translated/part.js:2147 #: templates/js/translated/part.js:2149 msgid "No Stock" @@ -8486,7 +8715,7 @@ msgstr "Immagine articolo non trovata" msgid "Part Pricing" msgstr "Prezzo Articolo" -#: plugin/api.py:172 +#: plugin/api.py:175 msgid "Plugin cannot be deleted as it is currently active" msgstr "" @@ -8498,78 +8727,85 @@ msgstr "Nessuna azione specificata" msgid "No matching action found" msgstr "Nessuna azione corrispondente trovata" -#: plugin/base/barcodes/api.py:125 plugin/base/barcodes/api.py:371 -#: plugin/base/barcodes/api.py:546 +#: plugin/base/barcodes/api.py:203 msgid "No match found for barcode data" msgstr "Nessuna corrispondenza trovata per i dati del codice a barre" -#: plugin/base/barcodes/api.py:129 +#: plugin/base/barcodes/api.py:207 msgid "Match found for barcode data" msgstr "Corrispondenza trovata per i dati del codice a barre" -#: plugin/base/barcodes/api.py:163 plugin/base/barcodes/serializers.py:45 +#: plugin/base/barcodes/api.py:245 plugin/base/barcodes/serializers.py:72 msgid "Model is not supported" msgstr "" -#: plugin/base/barcodes/api.py:168 +#: plugin/base/barcodes/api.py:250 msgid "Model instance not found" msgstr "" -#: plugin/base/barcodes/api.py:197 -#: templates/js/translated/purchase_order.js:1468 +#: plugin/base/barcodes/api.py:279 +#: templates/js/translated/purchase_order.js:1452 msgid "Barcode matches existing item" msgstr "Il codice a barre corrisponde a un elemento esistente" -#: plugin/base/barcodes/api.py:336 +#: plugin/base/barcodes/api.py:418 msgid "No matching part data found" msgstr "" -#: plugin/base/barcodes/api.py:353 +#: plugin/base/barcodes/api.py:434 msgid "No matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:357 +#: plugin/base/barcodes/api.py:437 msgid "Multiple matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:381 +#: plugin/base/barcodes/api.py:450 plugin/base/barcodes/api.py:664 +msgid "No matching plugin found for barcode data" +msgstr "" + +#: plugin/base/barcodes/api.py:460 msgid "Matched supplier part" msgstr "" -#: plugin/base/barcodes/api.py:430 +#: plugin/base/barcodes/api.py:525 msgid "Item has already been received" msgstr "" -#: plugin/base/barcodes/api.py:467 +#: plugin/base/barcodes/api.py:563 msgid "No match for supplier barcode" msgstr "" -#: plugin/base/barcodes/api.py:510 +#: plugin/base/barcodes/api.py:612 msgid "Multiple matching line items found" msgstr "" -#: plugin/base/barcodes/api.py:513 +#: plugin/base/barcodes/api.py:615 msgid "No matching line item found" msgstr "" -#: plugin/base/barcodes/api.py:551 plugin/base/barcodes/api.py:558 +#: plugin/base/barcodes/api.py:661 +msgid "No sales order provided" +msgstr "" + +#: plugin/base/barcodes/api.py:670 msgid "Barcode does not match an existing stock item" msgstr "" -#: plugin/base/barcodes/api.py:569 +#: plugin/base/barcodes/api.py:686 msgid "Stock item does not match line item" msgstr "" -#: plugin/base/barcodes/api.py:593 templates/js/translated/build.js:2780 -#: templates/js/translated/sales_order.js:1953 +#: plugin/base/barcodes/api.py:716 templates/js/translated/build.js:2798 +#: templates/js/translated/sales_order.js:1934 msgid "Insufficient stock available" msgstr "Scorte insufficienti disponibili" -#: plugin/base/barcodes/api.py:602 +#: plugin/base/barcodes/api.py:729 msgid "Stock item allocated to sales order" msgstr "" -#: plugin/base/barcodes/api.py:606 +#: plugin/base/barcodes/api.py:732 msgid "Not enough information" msgstr "" @@ -8591,75 +8827,75 @@ msgstr "" msgid "Purchase order does not match supplier" msgstr "" -#: plugin/base/barcodes/mixins.py:465 +#: plugin/base/barcodes/mixins.py:467 msgid "Failed to find pending line item for supplier part" msgstr "" -#: plugin/base/barcodes/mixins.py:496 +#: plugin/base/barcodes/mixins.py:498 msgid "Further information required to receive line item" msgstr "" -#: plugin/base/barcodes/mixins.py:504 +#: plugin/base/barcodes/mixins.py:506 msgid "Received purchase order line item" msgstr "" -#: plugin/base/barcodes/serializers.py:21 +#: plugin/base/barcodes/serializers.py:48 msgid "Scanned barcode data" msgstr "" -#: plugin/base/barcodes/serializers.py:30 +#: plugin/base/barcodes/serializers.py:57 msgid "Model name to generate barcode for" msgstr "" -#: plugin/base/barcodes/serializers.py:35 +#: plugin/base/barcodes/serializers.py:62 msgid "Primary key of model object to generate barcode for" msgstr "" -#: plugin/base/barcodes/serializers.py:105 +#: plugin/base/barcodes/serializers.py:132 msgid "Purchase Order to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:111 +#: plugin/base/barcodes/serializers.py:138 msgid "Purchase order is not pending" msgstr "" -#: plugin/base/barcodes/serializers.py:129 +#: plugin/base/barcodes/serializers.py:156 msgid "PurchaseOrder to receive items against" msgstr "" -#: plugin/base/barcodes/serializers.py:135 +#: plugin/base/barcodes/serializers.py:162 msgid "Purchase order has not been placed" msgstr "" -#: plugin/base/barcodes/serializers.py:143 +#: plugin/base/barcodes/serializers.py:170 msgid "Location to receive items into" msgstr "" -#: plugin/base/barcodes/serializers.py:149 +#: plugin/base/barcodes/serializers.py:176 msgid "Cannot select a structural location" msgstr "" -#: plugin/base/barcodes/serializers.py:163 +#: plugin/base/barcodes/serializers.py:190 msgid "Sales Order to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:169 +#: plugin/base/barcodes/serializers.py:196 msgid "Sales order is not pending" msgstr "" -#: plugin/base/barcodes/serializers.py:177 +#: plugin/base/barcodes/serializers.py:204 msgid "Sales order line item to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:184 +#: plugin/base/barcodes/serializers.py:211 msgid "Sales order shipment to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:190 +#: plugin/base/barcodes/serializers.py:217 msgid "Shipment has already been delivered" msgstr "" -#: plugin/base/barcodes/serializers.py:195 +#: plugin/base/barcodes/serializers.py:222 msgid "Quantity to allocate" msgstr "" @@ -8679,6 +8915,42 @@ msgstr "" msgid "No items provided to print" msgstr "" +#: plugin/base/ui/serializers.py:30 +msgid "Plugin Name" +msgstr "" + +#: plugin/base/ui/serializers.py:34 +msgid "Feature Type" +msgstr "" + +#: plugin/base/ui/serializers.py:39 +msgid "Feature Label" +msgstr "" + +#: plugin/base/ui/serializers.py:44 +msgid "Feature Title" +msgstr "" + +#: plugin/base/ui/serializers.py:49 +msgid "Feature Description" +msgstr "" + +#: plugin/base/ui/serializers.py:54 +msgid "Feature Icon" +msgstr "" + +#: plugin/base/ui/serializers.py:58 +msgid "Feature Options" +msgstr "" + +#: plugin/base/ui/serializers.py:61 +msgid "Feature Context" +msgstr "" + +#: plugin/base/ui/serializers.py:64 +msgid "Feature Source (javascript)" +msgstr "" + #: plugin/builtin/barcodes/inventree_barcode.py:27 msgid "InvenTree Barcodes" msgstr "InvenTree Codice a Barre" @@ -8756,7 +9028,7 @@ msgstr "Rallentamenti in entrata notifiche url" msgid "URL that is used to send messages to a slack channel" msgstr "Questo URL è stato utilizzato per inviare messaggi a un canale rallentato" -#: plugin/builtin/integration/core_notifications.py:164 +#: plugin/builtin/integration/core_notifications.py:166 msgid "Open link" msgstr "Apri collegamento" @@ -8794,11 +9066,11 @@ msgstr "" msgid "Provides support for printing using a machine" msgstr "" -#: plugin/builtin/labels/inventree_machine.py:149 +#: plugin/builtin/labels/inventree_machine.py:151 msgid "last used" msgstr "" -#: plugin/builtin/labels/inventree_machine.py:166 +#: plugin/builtin/labels/inventree_machine.py:168 msgid "Options" msgstr "" @@ -8822,7 +9094,7 @@ msgstr "" msgid "Print a border around each label" msgstr "" -#: plugin/builtin/labels/label_sheet.py:47 report/models.py:307 +#: plugin/builtin/labels/label_sheet.py:47 report/models.py:315 msgid "Landscape" msgstr "" @@ -8894,19 +9166,19 @@ msgstr "" msgid "The Supplier which acts as 'TME'" msgstr "" -#: plugin/installer.py:194 plugin/installer.py:282 +#: plugin/installer.py:199 plugin/installer.py:282 msgid "Only staff users can administer plugins" msgstr "" -#: plugin/installer.py:197 +#: plugin/installer.py:202 msgid "Plugin installation is disabled" msgstr "" -#: plugin/installer.py:248 +#: plugin/installer.py:246 msgid "Installed plugin successfully" msgstr "" -#: plugin/installer.py:254 +#: plugin/installer.py:251 #, python-brace-format msgid "Installed plugin into {path}" msgstr "" @@ -8943,10 +9215,6 @@ msgstr "Configurazione Plugin" msgid "Plugin Configurations" msgstr "Configurazioni Plugin" -#: plugin/models.py:43 users/models.py:100 -msgid "Key" -msgstr "" - #: plugin/models.py:44 msgid "Key of plugin" msgstr "Key dei plugin" @@ -8955,7 +9223,7 @@ msgstr "Key dei plugin" msgid "PluginName of the plugin" msgstr "PluginName del plugin" -#: plugin/models.py:59 plugin/serializers.py:90 +#: plugin/models.py:59 plugin/serializers.py:115 msgid "Package Name" msgstr "Nome Pacchetto" @@ -8984,17 +9252,17 @@ msgstr "Plugin Integrato" msgid "Package Plugin" msgstr "" -#: plugin/models.py:220 report/models.py:474 +#: plugin/models.py:259 report/models.py:482 #: templates/InvenTree/settings/plugin_settings.html:9 #: templates/js/translated/plugin.js:51 msgid "Plugin" msgstr "" -#: plugin/models.py:267 +#: plugin/models.py:306 msgid "Method" msgstr "Metodo" -#: plugin/plugin.py:270 +#: plugin/plugin.py:275 msgid "No author found" msgstr "Nessun autore trovato" @@ -9053,81 +9321,157 @@ msgstr "" msgid "InvenTree Contributors" msgstr "" -#: plugin/serializers.py:81 +#: plugin/samples/integration/user_interface_sample.py:27 +msgid "Enable Part Panels" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:28 +msgid "Enable custom panels for Part views" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:33 +msgid "Enable Purchase Order Panels" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:34 +msgid "Enable custom panels for Purchase Order views" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:39 +msgid "Enable Broken Panels" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:40 +msgid "Enable broken panels for testing" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:45 +msgid "Enable Dynamic Panel" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:46 +msgid "Enable dynamic panels for testing" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:98 +msgid "Part Panel" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:131 +msgid "Broken Dashboard Item" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:133 +msgid "This is a broken dashboard item - it will not render!" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:139 +msgid "Sample Dashboard Item" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:141 +msgid "This is a sample dashboard item. It renders a simple string of HTML content." +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:147 +msgid "Context Dashboard Item" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:161 +msgid "Admin Dashboard Item" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:162 +msgid "This is an admin-only dashboard item." +msgstr "" + +#: plugin/serializers.py:82 +msgid "Source File" +msgstr "" + +#: plugin/serializers.py:83 +msgid "Path to the source file for admin integration" +msgstr "" + +#: plugin/serializers.py:90 +msgid "Optional context data for the admin integration" +msgstr "" + +#: plugin/serializers.py:106 msgid "Source URL" msgstr "URL di origine" -#: plugin/serializers.py:83 +#: plugin/serializers.py:108 msgid "Source for the package - this can be a custom registry or a VCS path" msgstr "Fonte per il pacchetto - questo può essere un registro personalizzato o un percorso VCS" -#: plugin/serializers.py:92 +#: plugin/serializers.py:117 msgid "Name for the Plugin Package - can also contain a version indicator" msgstr "Nome per il Pacchetto Plugin - può anche contenere un indicatore di versione" -#: plugin/serializers.py:99 +#: plugin/serializers.py:124 #: templates/InvenTree/settings/plugin_settings.html:42 #: templates/js/translated/plugin.js:86 msgid "Version" msgstr "Versione" -#: plugin/serializers.py:101 +#: plugin/serializers.py:126 msgid "Version specifier for the plugin. Leave blank for latest version." msgstr "" -#: plugin/serializers.py:106 +#: plugin/serializers.py:131 msgid "Confirm plugin installation" msgstr "Conferma installazione plugin" -#: plugin/serializers.py:108 +#: plugin/serializers.py:133 msgid "This will install this plugin now into the current instance. The instance will go into maintenance." msgstr "Questo plugin verrà installato ora nell'istanza corrente. L'istanza andrà in manutenzione." -#: plugin/serializers.py:121 +#: plugin/serializers.py:146 msgid "Installation not confirmed" msgstr "Installazione non confermata" -#: plugin/serializers.py:123 +#: plugin/serializers.py:148 msgid "Either packagename of URL must be provided" msgstr "Deve essere fornito uno dei nomi del pacchetto URL" -#: plugin/serializers.py:161 +#: plugin/serializers.py:184 msgid "Full reload" msgstr "" -#: plugin/serializers.py:162 +#: plugin/serializers.py:185 msgid "Perform a full reload of the plugin registry" msgstr "" -#: plugin/serializers.py:168 +#: plugin/serializers.py:191 msgid "Force reload" msgstr "" -#: plugin/serializers.py:170 +#: plugin/serializers.py:193 msgid "Force a reload of the plugin registry, even if it is already loaded" msgstr "" -#: plugin/serializers.py:177 +#: plugin/serializers.py:200 msgid "Collect plugins" msgstr "" -#: plugin/serializers.py:178 +#: plugin/serializers.py:201 msgid "Collect plugins and add them to the registry" msgstr "" -#: plugin/serializers.py:205 +#: plugin/serializers.py:228 msgid "Activate Plugin" msgstr "" -#: plugin/serializers.py:206 +#: plugin/serializers.py:229 msgid "Activate this plugin" msgstr "" -#: plugin/serializers.py:226 +#: plugin/serializers.py:249 msgid "Delete configuration" msgstr "" -#: plugin/serializers.py:227 +#: plugin/serializers.py:250 msgid "Delete the plugin configuration from the database" msgstr "" @@ -9135,11 +9479,11 @@ msgstr "" msgid "No valid objects provided to template" msgstr "Nessun oggetto valido fornito nel modello" -#: report/api.py:103 report/models.py:438 report/serializers.py:98 -#: report/serializers.py:148 templates/js/translated/purchase_order.js:1817 +#: report/api.py:103 report/models.py:446 report/serializers.py:99 +#: report/serializers.py:149 templates/js/translated/purchase_order.js:1801 #: templates/js/translated/return_order.js:353 -#: templates/js/translated/sales_order.js:887 -#: templates/js/translated/sales_order.js:1047 +#: templates/js/translated/sales_order.js:846 +#: templates/js/translated/sales_order.js:1020 msgid "Items" msgstr "" @@ -9167,7 +9511,11 @@ msgstr "" msgid "Error printing label" msgstr "" -#: report/api.py:375 report/api.py:411 +#: report/api.py:358 +msgid "Report saved at time of printing" +msgstr "" + +#: report/api.py:384 report/api.py:420 #, python-brace-format msgid "Template file '{template}' is missing or does not exist" msgstr "Il file del modello '{template}' è mancante o non esiste" @@ -9198,141 +9546,149 @@ msgstr "Nome modello" #: report/models.py:156 msgid "Template description" -msgstr "" +msgstr "Descrizione del template" #: report/models.py:162 msgid "Revision number (auto-increments)" msgstr "" -#: report/models.py:202 +#: report/models.py:168 +msgid "Attach to Model on Print" +msgstr "" + +#: report/models.py:170 +msgid "Save report output as an attachment against linked model instance when printing" +msgstr "" + +#: report/models.py:210 msgid "Filename Pattern" msgstr "Formato del nome file" -#: report/models.py:203 +#: report/models.py:211 msgid "Pattern for generating filenames" msgstr "" -#: report/models.py:208 +#: report/models.py:216 msgid "Template is enabled" msgstr "" -#: report/models.py:214 +#: report/models.py:222 msgid "Target model type for template" msgstr "" -#: report/models.py:234 +#: report/models.py:242 msgid "Filters" msgstr "Filtri" -#: report/models.py:235 +#: report/models.py:243 msgid "Template query filters (comma-separated list of key=value pairs)" msgstr "" -#: report/models.py:294 report/models.py:361 +#: report/models.py:302 report/models.py:369 msgid "Template file" msgstr "" -#: report/models.py:302 +#: report/models.py:310 msgid "Page size for PDF reports" msgstr "" -#: report/models.py:308 +#: report/models.py:316 msgid "Render report in landscape orientation" msgstr "" -#: report/models.py:367 +#: report/models.py:375 msgid "Width [mm]" msgstr "Larghezza [mm]" -#: report/models.py:368 +#: report/models.py:376 msgid "Label width, specified in mm" msgstr "Larghezza dell'etichetta, specificata in mm" -#: report/models.py:374 +#: report/models.py:382 msgid "Height [mm]" msgstr "Altezza [mm]" -#: report/models.py:375 +#: report/models.py:383 msgid "Label height, specified in mm" msgstr "Larghezza dell'etichetta, specificata in mm" -#: report/models.py:438 +#: report/models.py:446 msgid "Number of items to process" msgstr "" -#: report/models.py:444 +#: report/models.py:452 msgid "Report generation is complete" msgstr "" -#: report/models.py:448 templates/js/translated/build.js:2349 +#: report/models.py:456 templates/js/translated/build.js:2352 msgid "Progress" msgstr "" -#: report/models.py:448 +#: report/models.py:456 msgid "Report generation progress" msgstr "" -#: report/models.py:456 +#: report/models.py:464 msgid "Report Template" msgstr "" -#: report/models.py:463 report/models.py:486 +#: report/models.py:471 report/models.py:494 msgid "Output File" msgstr "" -#: report/models.py:464 report/models.py:487 +#: report/models.py:472 report/models.py:495 msgid "Generated output file" msgstr "" -#: report/models.py:475 +#: report/models.py:483 msgid "Label output plugin" msgstr "" -#: report/models.py:479 +#: report/models.py:487 msgid "Label Template" msgstr "" -#: report/models.py:502 +#: report/models.py:510 msgid "Snippet" msgstr "" -#: report/models.py:503 +#: report/models.py:511 msgid "Report snippet file" msgstr "Report file snippet" -#: report/models.py:510 +#: report/models.py:518 msgid "Snippet file description" msgstr "Descrizione file snippet" -#: report/models.py:528 +#: report/models.py:536 msgid "Asset" msgstr "Risorsa" -#: report/models.py:529 +#: report/models.py:537 msgid "Report asset file" msgstr "Report file risorsa" -#: report/models.py:536 +#: report/models.py:544 msgid "Asset file description" msgstr "File risorsa descrizione" -#: report/serializers.py:91 +#: report/serializers.py:92 msgid "Select report template" msgstr "" -#: report/serializers.py:99 report/serializers.py:149 +#: report/serializers.py:100 report/serializers.py:150 msgid "List of item primary keys to include in the report" msgstr "" -#: report/serializers.py:132 +#: report/serializers.py:133 msgid "Select label template" msgstr "" -#: report/serializers.py:140 +#: report/serializers.py:141 msgid "Printing Plugin" msgstr "" -#: report/serializers.py:141 +#: report/serializers.py:142 msgid "Select plugin to use for label printing" msgstr "" @@ -9365,9 +9721,9 @@ msgstr "Il fornitore è stato eliminato" #: report/templates/report/inventree_sales_order_report.html:30 #: templates/js/translated/order.js:341 templates/js/translated/pricing.js:527 #: templates/js/translated/pricing.js:596 -#: templates/js/translated/pricing.js:834 -#: templates/js/translated/purchase_order.js:2185 -#: templates/js/translated/sales_order.js:1873 +#: templates/js/translated/pricing.js:832 +#: templates/js/translated/purchase_order.js:2169 +#: templates/js/translated/sales_order.js:1854 msgid "Unit Price" msgstr "Prezzo Unitario" @@ -9379,13 +9735,18 @@ msgstr "" #: report/templates/report/inventree_purchase_order_report.html:72 #: report/templates/report/inventree_sales_order_report.html:72 -#: templates/js/translated/purchase_order.js:2087 -#: templates/js/translated/sales_order.js:1842 +#: templates/js/translated/purchase_order.js:2071 +#: templates/js/translated/sales_order.js:1823 #: templates/test_statistics_table.html:8 #: templates/test_statistics_table.html:19 msgid "Total" msgstr "Totale" +#: report/templates/report/inventree_sales_order_shipment_report.html:23 +#: stock/templates/stock/stock_sidebar.html:8 +msgid "Allocations" +msgstr "Assegnazioni" + #: report/templates/report/inventree_stock_location_report.html:97 msgid "Stock location items" msgstr "" @@ -9403,15 +9764,13 @@ msgstr "Risultati Test" msgid "Test" msgstr "" -#: report/templates/report/inventree_test_report.html:103 stock/models.py:2544 -msgid "Result" -msgstr "Risultato" - #: report/templates/report/inventree_test_report.html:129 +#: templates/js/translated/stock.js:1448 msgid "Pass" msgstr "Passaggio" #: report/templates/report/inventree_test_report.html:131 +#: templates/js/translated/stock.js:1450 msgid "Fail" msgstr "Fallito" @@ -9420,17 +9779,18 @@ msgid "No result (required)" msgstr "Nessun risultato (richiesto)" #: report/templates/report/inventree_test_report.html:140 +#: templates/js/translated/stock.js:1455 msgid "No result" msgstr "Nessun risultato" #: report/templates/report/inventree_test_report.html:153 -#: stock/serializers.py:599 stock/templates/stock/stock_sidebar.html:16 +#: stock/serializers.py:626 stock/templates/stock/stock_sidebar.html:16 msgid "Installed Items" msgstr "Elementi installati" -#: report/templates/report/inventree_test_report.html:167 stock/admin.py:161 +#: report/templates/report/inventree_test_report.html:167 stock/admin.py:162 #: templates/js/translated/stock.js:706 templates/js/translated/stock.js:877 -#: templates/js/translated/stock.js:3194 +#: templates/js/translated/stock.js:3195 msgid "Serial" msgstr "Seriale" @@ -9450,67 +9810,67 @@ msgstr "" msgid "company_image tag requires a Company instance" msgstr "" -#: stock/admin.py:51 stock/admin.py:171 +#: stock/admin.py:51 stock/admin.py:172 msgid "Location ID" msgstr "ID Posizione" -#: stock/admin.py:63 stock/templates/stock/location.html:128 -#: stock/templates/stock/location.html:134 +#: stock/admin.py:63 stock/templates/stock/location.html:129 +#: stock/templates/stock/location.html:135 msgid "Location Path" msgstr "Percorso Ubicazione" -#: stock/admin.py:148 +#: stock/admin.py:149 msgid "Stock Item ID" msgstr "ID Elemento Stock" -#: stock/admin.py:167 +#: stock/admin.py:168 msgid "Status Code" msgstr "Codici di stato" -#: stock/admin.py:179 +#: stock/admin.py:180 msgid "Supplier Part ID" msgstr "ID Articolo Fornitore" -#: stock/admin.py:184 +#: stock/admin.py:185 msgid "Supplier Part SKU" msgstr "" -#: stock/admin.py:189 +#: stock/admin.py:190 msgid "Supplier ID" msgstr "ID Fornitore" -#: stock/admin.py:200 +#: stock/admin.py:201 msgid "Customer ID" msgstr "ID Cliente" -#: stock/admin.py:205 stock/models.py:825 -#: stock/templates/stock/item_base.html:354 +#: stock/admin.py:206 stock/models.py:902 +#: stock/templates/stock/item_base.html:351 msgid "Installed In" msgstr "Installato In" -#: stock/admin.py:210 +#: stock/admin.py:211 msgid "Build ID" msgstr "ID Costruttore" -#: stock/admin.py:220 +#: stock/admin.py:221 msgid "Sales Order ID" msgstr "ID Ordine Vendita" -#: stock/admin.py:225 +#: stock/admin.py:226 msgid "Purchase Order ID" msgstr "ID Ordine D'acquisto" -#: stock/admin.py:240 +#: stock/admin.py:241 msgid "Review Needed" msgstr "Revisione Necessaria" -#: stock/admin.py:245 +#: stock/admin.py:246 msgid "Delete on Deplete" msgstr "Elimina al esaurimento" -#: stock/admin.py:260 stock/models.py:919 -#: stock/templates/stock/item_base.html:433 -#: templates/js/translated/stock.js:2315 users/models.py:124 +#: stock/admin.py:261 stock/models.py:996 +#: stock/templates/stock/item_base.html:430 +#: templates/js/translated/stock.js:2316 users/models.py:124 msgid "Expiry Date" msgstr "Data di Scadenza" @@ -9526,11 +9886,11 @@ msgstr "" msgid "Include sub-locations in filtered results" msgstr "" -#: stock/api.py:367 stock/serializers.py:1186 +#: stock/api.py:366 stock/serializers.py:1217 msgid "Parent Location" msgstr "" -#: stock/api.py:368 +#: stock/api.py:367 msgid "Filter by parent location" msgstr "" @@ -9550,8 +9910,8 @@ msgstr "" msgid "Expiry date after" msgstr "" -#: stock/api.py:840 stock/serializers.py:604 -#: stock/templates/stock/item_base.html:439 +#: stock/api.py:840 stock/serializers.py:631 +#: stock/templates/stock/item_base.html:436 #: templates/js/translated/table_filters.js:448 msgid "Stale" msgstr "Obsoleto" @@ -9560,594 +9920,598 @@ msgstr "Obsoleto" msgid "Quantity is required" msgstr "La quantità è richiesta" -#: stock/api.py:933 +#: stock/api.py:932 msgid "Valid part must be supplied" msgstr "Deve essere fornita un articolo valido" -#: stock/api.py:964 +#: stock/api.py:959 msgid "The given supplier part does not exist" msgstr "" -#: stock/api.py:974 +#: stock/api.py:969 msgid "The supplier part has a pack size defined, but flag use_pack_size not set" msgstr "" -#: stock/api.py:1005 +#: stock/api.py:996 msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "I numeri di serie non possono essere forniti per un articolo non tracciabile" -#: stock/models.py:64 +#: stock/models.py:70 msgid "Stock Location type" msgstr "" -#: stock/models.py:65 +#: stock/models.py:71 msgid "Stock Location types" msgstr "" -#: stock/models.py:91 +#: stock/models.py:97 msgid "Default icon for all locations that have no icon set (optional)" msgstr "" -#: stock/models.py:131 stock/models.py:807 -#: stock/templates/stock/location.html:17 +#: stock/models.py:137 stock/models.py:884 +#: stock/templates/stock/location.html:18 #: stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "Ubicazione magazzino" -#: stock/models.py:132 stock/templates/stock/location.html:183 +#: stock/models.py:138 stock/templates/stock/location.html:184 #: templates/InvenTree/search.html:166 templates/js/translated/search.js:178 #: users/models.py:205 msgid "Stock Locations" msgstr "Posizioni magazzino" -#: stock/models.py:180 stock/models.py:968 -#: stock/templates/stock/item_base.html:247 +#: stock/models.py:186 stock/models.py:1045 +#: stock/templates/stock/item_base.html:244 msgid "Owner" msgstr "Proprietario" -#: stock/models.py:181 stock/models.py:969 +#: stock/models.py:187 stock/models.py:1046 msgid "Select Owner" msgstr "Seleziona Owner" -#: stock/models.py:189 +#: stock/models.py:195 msgid "Stock items may not be directly located into a structural stock locations, but may be located to child locations." msgstr "Gli elementi di magazzino non possono essere direttamente situati in un magazzino strutturale, ma possono essere situati in ubicazioni secondarie." -#: stock/models.py:196 templates/js/translated/stock.js:2865 +#: stock/models.py:202 templates/js/translated/stock.js:2866 #: templates/js/translated/table_filters.js:250 msgid "External" msgstr "Esterno" -#: stock/models.py:197 +#: stock/models.py:203 msgid "This is an external stock location" msgstr "Si tratta di una posizione esterna al magazzino" -#: stock/models.py:203 templates/js/translated/stock.js:2874 +#: stock/models.py:209 templates/js/translated/stock.js:2875 #: templates/js/translated/table_filters.js:253 msgid "Location type" msgstr "" -#: stock/models.py:207 +#: stock/models.py:213 msgid "Stock location type of this location" msgstr "" -#: stock/models.py:279 +#: stock/models.py:285 msgid "You cannot make this stock location structural because some stock items are already located into it!" msgstr "Non puoi rendere strutturale questa posizione di magazzino perché alcuni elementi di magazzino sono già posizionati al suo interno!" -#: stock/models.py:664 +#: stock/models.py:492 +msgid "Part must be specified" +msgstr "" + +#: stock/models.py:741 msgid "Stock items cannot be located into structural stock locations!" msgstr "Gli articoli di magazzino non possono essere ubicati in posizioni di magazzino strutturali!" -#: stock/models.py:691 stock/serializers.py:480 +#: stock/models.py:768 stock/serializers.py:492 msgid "Stock item cannot be created for virtual parts" msgstr "Non è possibile creare un elemento di magazzino per articoli virtuali" -#: stock/models.py:708 +#: stock/models.py:785 #, python-brace-format msgid "Part type ('{self.supplier_part.part}') must be {self.part}" msgstr "" -#: stock/models.py:718 stock/models.py:731 +#: stock/models.py:795 stock/models.py:808 msgid "Quantity must be 1 for item with a serial number" msgstr "La quantità deve essere 1 per elementi con un numero di serie" -#: stock/models.py:721 +#: stock/models.py:798 msgid "Serial number cannot be set if quantity greater than 1" msgstr "Il numero di serie non può essere impostato se la quantità è maggiore di 1" -#: stock/models.py:743 +#: stock/models.py:820 msgid "Item cannot belong to itself" msgstr "L'elemento non può appartenere a se stesso" -#: stock/models.py:748 +#: stock/models.py:825 msgid "Item must have a build reference if is_building=True" msgstr "L'elemento deve avere un riferimento di costruzione se is_building=True" -#: stock/models.py:761 +#: stock/models.py:838 msgid "Build reference does not point to the same part object" msgstr "Il riferimento di costruzione non punta allo stesso oggetto dell'articolo" -#: stock/models.py:777 +#: stock/models.py:854 msgid "Parent Stock Item" msgstr "Elemento di magazzino principale" -#: stock/models.py:789 +#: stock/models.py:866 msgid "Base part" msgstr "Articolo base" -#: stock/models.py:799 +#: stock/models.py:876 msgid "Select a matching supplier part for this stock item" msgstr "Seleziona un fornitore articolo corrispondente per questo elemento di magazzino" -#: stock/models.py:811 +#: stock/models.py:888 msgid "Where is this stock item located?" msgstr "Dove si trova questo articolo di magazzino?" -#: stock/models.py:819 stock/serializers.py:1580 +#: stock/models.py:896 stock/serializers.py:1611 msgid "Packaging this stock item is stored in" msgstr "Imballaggio di questo articolo di magazzino è collocato in" -#: stock/models.py:830 +#: stock/models.py:907 msgid "Is this item installed in another item?" msgstr "Questo elemento è stato installato su un altro elemento?" -#: stock/models.py:849 +#: stock/models.py:926 msgid "Serial number for this item" msgstr "Numero di serie per questo elemento" -#: stock/models.py:863 stock/serializers.py:1563 +#: stock/models.py:940 stock/serializers.py:1594 msgid "Batch code for this stock item" msgstr "Codice lotto per questo elemento di magazzino" -#: stock/models.py:868 +#: stock/models.py:945 msgid "Stock Quantity" msgstr "Quantità disponibile" -#: stock/models.py:878 +#: stock/models.py:955 msgid "Source Build" msgstr "Genera Costruzione" -#: stock/models.py:881 +#: stock/models.py:958 msgid "Build for this stock item" msgstr "Costruisci per questo elemento di magazzino" -#: stock/models.py:888 stock/templates/stock/item_base.html:363 +#: stock/models.py:965 stock/templates/stock/item_base.html:360 msgid "Consumed By" msgstr "" -#: stock/models.py:891 +#: stock/models.py:968 msgid "Build order which consumed this stock item" msgstr "" -#: stock/models.py:900 +#: stock/models.py:977 msgid "Source Purchase Order" msgstr "Origina Ordine di Acquisto" -#: stock/models.py:904 +#: stock/models.py:981 msgid "Purchase order for this stock item" msgstr "Ordine d'acquisto per questo articolo in magazzino" -#: stock/models.py:910 +#: stock/models.py:987 msgid "Destination Sales Order" msgstr "Destinazione Ordine di Vendita" -#: stock/models.py:921 +#: stock/models.py:998 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "Data di scadenza per l'elemento di magazzino. Le scorte saranno considerate scadute dopo questa data" -#: stock/models.py:939 +#: stock/models.py:1016 msgid "Delete on deplete" msgstr "Elimina al esaurimento" -#: stock/models.py:940 +#: stock/models.py:1017 msgid "Delete this Stock Item when stock is depleted" msgstr "Cancella questo Elemento di Magazzino quando la giacenza è esaurita" -#: stock/models.py:960 +#: stock/models.py:1037 msgid "Single unit purchase price at time of purchase" msgstr "Prezzo di acquisto unitario al momento dell’acquisto" -#: stock/models.py:991 +#: stock/models.py:1068 msgid "Converted to part" msgstr "Convertito in articolo" -#: stock/models.py:1511 +#: stock/models.py:1600 msgid "Part is not set as trackable" msgstr "L'articolo non è impostato come tracciabile" -#: stock/models.py:1517 +#: stock/models.py:1606 msgid "Quantity must be integer" msgstr "La quantità deve essere un numero intero" -#: stock/models.py:1525 +#: stock/models.py:1614 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({self.quantity})" msgstr "" -#: stock/models.py:1531 -msgid "Serial numbers must be a list of integers" -msgstr "I numeri di serie devono essere numeri interi" +#: stock/models.py:1620 +msgid "Serial numbers must be provided as a list" +msgstr "" -#: stock/models.py:1536 +#: stock/models.py:1625 msgid "Quantity does not match serial numbers" msgstr "La quantità non corrisponde ai numeri di serie" -#: stock/models.py:1544 stock/serializers.py:726 -msgid "Serial numbers already exist" -msgstr "Numeri di serie già esistenti" - -#: stock/models.py:1641 +#: stock/models.py:1747 stock/models.py:2563 msgid "Test template does not exist" msgstr "" -#: stock/models.py:1659 +#: stock/models.py:1765 msgid "Stock item has been assigned to a sales order" msgstr "L'elemento di magazzino è stato assegnato a un ordine di vendita" -#: stock/models.py:1663 +#: stock/models.py:1769 msgid "Stock item is installed in another item" msgstr "L'elemento di magazzino è installato in un altro elemento" -#: stock/models.py:1666 +#: stock/models.py:1772 msgid "Stock item contains other items" msgstr "L'elemento di magazzino contiene altri elementi" -#: stock/models.py:1669 +#: stock/models.py:1775 msgid "Stock item has been assigned to a customer" msgstr "L'elemento di magazzino è stato assegnato a un cliente" -#: stock/models.py:1672 +#: stock/models.py:1778 msgid "Stock item is currently in production" msgstr "L'elemento di magazzino è attualmente in produzione" -#: stock/models.py:1675 +#: stock/models.py:1781 msgid "Serialized stock cannot be merged" msgstr "Il magazzino serializzato non può essere unito" -#: stock/models.py:1682 stock/serializers.py:1469 +#: stock/models.py:1788 stock/serializers.py:1500 msgid "Duplicate stock items" msgstr "Duplica elementi di magazzino" -#: stock/models.py:1686 +#: stock/models.py:1792 msgid "Stock items must refer to the same part" msgstr "Gli elementi di magazzino devono riferirsi allo stesso articolo" -#: stock/models.py:1694 +#: stock/models.py:1800 msgid "Stock items must refer to the same supplier part" msgstr "Gli elementi di magazzino devono riferirsi allo stesso articolo fornitore" -#: stock/models.py:1699 +#: stock/models.py:1805 msgid "Stock status codes must match" msgstr "I codici di stato dello stock devono corrispondere" -#: stock/models.py:1960 +#: stock/models.py:2066 msgid "StockItem cannot be moved as it is not in stock" msgstr "Le giacenze non possono essere spostate perché non disponibili" -#: stock/models.py:2343 +#: stock/models.py:2462 msgid "Stock Item Tracking" msgstr "" -#: stock/models.py:2376 +#: stock/models.py:2495 msgid "Entry notes" msgstr "Note d'ingresso" -#: stock/models.py:2416 +#: stock/models.py:2535 msgid "Stock Item Test Result" msgstr "" -#: stock/models.py:2449 +#: stock/models.py:2566 msgid "Value must be provided for this test" msgstr "Il valore deve essere fornito per questo test" -#: stock/models.py:2454 +#: stock/models.py:2570 msgid "Attachment must be uploaded for this test" msgstr "L'allegato deve essere caricato per questo test" -#: stock/models.py:2459 +#: stock/models.py:2575 msgid "Invalid value for this test" msgstr "" -#: stock/models.py:2544 +#: stock/models.py:2660 msgid "Test result" msgstr "Risultato Test" -#: stock/models.py:2551 +#: stock/models.py:2667 msgid "Test output value" msgstr "Test valore output" -#: stock/models.py:2559 +#: stock/models.py:2675 stock/serializers.py:245 msgid "Test result attachment" msgstr "Risultato della prova allegato" -#: stock/models.py:2563 +#: stock/models.py:2679 msgid "Test notes" msgstr "Note del test" -#: stock/models.py:2571 templates/js/translated/stock.js:1633 +#: stock/models.py:2687 templates/js/translated/stock.js:1633 msgid "Test station" msgstr "" -#: stock/models.py:2572 +#: stock/models.py:2688 msgid "The identifier of the test station where the test was performed" msgstr "" -#: stock/models.py:2578 +#: stock/models.py:2694 msgid "Started" msgstr "" -#: stock/models.py:2579 +#: stock/models.py:2695 msgid "The timestamp of the test start" msgstr "" -#: stock/models.py:2585 +#: stock/models.py:2701 msgid "Finished" msgstr "" -#: stock/models.py:2586 +#: stock/models.py:2702 msgid "The timestamp of the test finish" msgstr "" -#: stock/serializers.py:76 +#: stock/serializers.py:77 msgid "Generated batch code" msgstr "" -#: stock/serializers.py:85 +#: stock/serializers.py:86 msgid "Select build order" msgstr "" -#: stock/serializers.py:94 +#: stock/serializers.py:95 msgid "Select stock item to generate batch code for" msgstr "" -#: stock/serializers.py:103 +#: stock/serializers.py:104 msgid "Select location to generate batch code for" msgstr "" -#: stock/serializers.py:112 +#: stock/serializers.py:113 msgid "Select part to generate batch code for" msgstr "" -#: stock/serializers.py:121 +#: stock/serializers.py:122 msgid "Select purchase order" msgstr "" -#: stock/serializers.py:128 +#: stock/serializers.py:129 msgid "Enter quantity for batch code" msgstr "" -#: stock/serializers.py:151 +#: stock/serializers.py:152 msgid "Generated serial number" msgstr "" -#: stock/serializers.py:160 +#: stock/serializers.py:161 msgid "Select part to generate serial number for" msgstr "" -#: stock/serializers.py:168 +#: stock/serializers.py:169 msgid "Quantity of serial numbers to generate" msgstr "" -#: stock/serializers.py:233 +#: stock/serializers.py:234 msgid "Test template for this result" msgstr "" -#: stock/serializers.py:254 +#: stock/serializers.py:258 msgid "Template ID or test name must be provided" msgstr "" -#: stock/serializers.py:286 +#: stock/serializers.py:290 msgid "The test finished time cannot be earlier than the test started time" msgstr "" -#: stock/serializers.py:323 +#: stock/serializers.py:327 msgid "Serial number is too large" msgstr "Il numero di serie è troppo grande" -#: stock/serializers.py:452 stock/templates/stock/item_base.html:193 +#: stock/serializers.py:462 stock/templates/stock/item_base.html:190 msgid "Parent Item" msgstr "Elemento principale" -#: stock/serializers.py:453 +#: stock/serializers.py:463 msgid "Parent stock item" msgstr "" -#: stock/serializers.py:472 +#: stock/serializers.py:484 msgid "Use pack size when adding: the quantity defined is the number of packs" msgstr "" -#: stock/serializers.py:596 stock/templates/stock/item_base.html:437 +#: stock/serializers.py:623 stock/templates/stock/item_base.html:434 #: templates/js/translated/table_filters.js:442 users/models.py:174 msgid "Expired" msgstr "Scaduto" -#: stock/serializers.py:602 stock/templates/stock/stock_sidebar.html:20 +#: stock/serializers.py:629 stock/templates/stock/stock_sidebar.html:20 msgid "Child Items" msgstr "Elementi secondari" -#: stock/serializers.py:606 +#: stock/serializers.py:633 msgid "Tracking Items" msgstr "" -#: stock/serializers.py:612 +#: stock/serializers.py:639 msgid "Purchase price of this stock item, per unit or pack" msgstr "" -#: stock/serializers.py:631 +#: stock/serializers.py:658 msgid "Minimum Pricing" msgstr "" -#: stock/serializers.py:637 +#: stock/serializers.py:664 msgid "Maximum Pricing" msgstr "" -#: stock/serializers.py:661 +#: stock/serializers.py:688 msgid "Enter number of stock items to serialize" msgstr "Inserisci il numero di elementi di magazzino da serializzare" -#: stock/serializers.py:674 +#: stock/serializers.py:701 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({q})" msgstr "La quantità non deve superare la quantità disponibile ({q})" -#: stock/serializers.py:681 +#: stock/serializers.py:708 msgid "Enter serial numbers for new items" msgstr "Inserisci i numeri di serie per i nuovi elementi" -#: stock/serializers.py:692 stock/serializers.py:1426 stock/serializers.py:1682 +#: stock/serializers.py:719 stock/serializers.py:1457 stock/serializers.py:1713 msgid "Destination stock location" msgstr "Posizione magazzino di destinazione" -#: stock/serializers.py:699 +#: stock/serializers.py:726 msgid "Optional note field" msgstr "Note opzionali elemento" -#: stock/serializers.py:709 +#: stock/serializers.py:736 msgid "Serial numbers cannot be assigned to this part" msgstr "Numeri di serie non possono essere assegnati a questo articolo" -#: stock/serializers.py:764 +#: stock/serializers.py:756 +msgid "Serial numbers already exist" +msgstr "Numeri di serie già esistenti" + +#: stock/serializers.py:795 msgid "Select stock item to install" msgstr "Seleziona elementi di magazzino da installare" -#: stock/serializers.py:771 +#: stock/serializers.py:802 msgid "Quantity to Install" msgstr "" -#: stock/serializers.py:772 +#: stock/serializers.py:803 msgid "Enter the quantity of items to install" msgstr "" -#: stock/serializers.py:777 stock/serializers.py:857 stock/serializers.py:983 -#: stock/serializers.py:1033 +#: stock/serializers.py:808 stock/serializers.py:888 stock/serializers.py:1014 +#: stock/serializers.py:1064 msgid "Add transaction note (optional)" msgstr "Aggiungi nota di transazione (opzionale)" -#: stock/serializers.py:785 +#: stock/serializers.py:816 msgid "Quantity to install must be at least 1" msgstr "" -#: stock/serializers.py:793 +#: stock/serializers.py:824 msgid "Stock item is unavailable" msgstr "Elemento di magazzino non disponibile" -#: stock/serializers.py:804 +#: stock/serializers.py:835 msgid "Selected part is not in the Bill of Materials" msgstr "L'articolo selezionato non è nella Fattura dei Materiali" -#: stock/serializers.py:817 +#: stock/serializers.py:848 msgid "Quantity to install must not exceed available quantity" msgstr "" -#: stock/serializers.py:852 +#: stock/serializers.py:883 msgid "Destination location for uninstalled item" msgstr "Posizione di destinazione per gli elementi disinstallati" -#: stock/serializers.py:903 +#: stock/serializers.py:934 msgid "Unsupported statistic type: " msgstr "" -#: stock/serializers.py:917 +#: stock/serializers.py:948 msgid "Select part to convert stock item into" msgstr "Seleziona l'articolo in cui convertire l'elemento di magazzino" -#: stock/serializers.py:930 +#: stock/serializers.py:961 msgid "Selected part is not a valid option for conversion" msgstr "L'articolo selezionato non è una valida opzione per la conversione" -#: stock/serializers.py:947 +#: stock/serializers.py:978 msgid "Cannot convert stock item with assigned SupplierPart" msgstr "" -#: stock/serializers.py:978 +#: stock/serializers.py:1009 msgid "Destination location for returned item" msgstr "Posizione di destinazione per l'elemento restituito" -#: stock/serializers.py:1015 +#: stock/serializers.py:1046 msgid "Select stock items to change status" msgstr "" -#: stock/serializers.py:1021 +#: stock/serializers.py:1052 msgid "No stock items selected" msgstr "" -#: stock/serializers.py:1117 stock/serializers.py:1194 -#: stock/templates/stock/location.html:162 -#: stock/templates/stock/location.html:219 +#: stock/serializers.py:1148 stock/serializers.py:1225 +#: stock/templates/stock/location.html:163 +#: stock/templates/stock/location.html:220 #: stock/templates/stock/location_sidebar.html:5 msgid "Sublocations" msgstr "Sottoallocazioni" -#: stock/serializers.py:1187 templates/js/translated/stock.js:160 +#: stock/serializers.py:1218 templates/js/translated/stock.js:160 msgid "Parent stock location" msgstr "" -#: stock/serializers.py:1298 +#: stock/serializers.py:1329 msgid "Part must be salable" msgstr "L'articolo deve essere vendibile" -#: stock/serializers.py:1302 +#: stock/serializers.py:1333 msgid "Item is allocated to a sales order" msgstr "L'elemento è assegnato a un ordine di vendita" -#: stock/serializers.py:1306 +#: stock/serializers.py:1337 msgid "Item is allocated to a build order" msgstr "Elemento assegnato a un ordine di costruzione" -#: stock/serializers.py:1330 +#: stock/serializers.py:1361 msgid "Customer to assign stock items" msgstr "Cliente a cui assegnare elementi di magazzino" -#: stock/serializers.py:1336 +#: stock/serializers.py:1367 msgid "Selected company is not a customer" msgstr "L'azienda selezionata non è un cliente" -#: stock/serializers.py:1344 +#: stock/serializers.py:1375 msgid "Stock assignment notes" msgstr "Note sull'assegnazione delle scorte" -#: stock/serializers.py:1354 stock/serializers.py:1608 +#: stock/serializers.py:1385 stock/serializers.py:1639 msgid "A list of stock items must be provided" msgstr "Deve essere fornito un elenco degli elementi di magazzino" -#: stock/serializers.py:1433 +#: stock/serializers.py:1464 msgid "Stock merging notes" msgstr "Note di fusione di magazzino" -#: stock/serializers.py:1438 +#: stock/serializers.py:1469 msgid "Allow mismatched suppliers" msgstr "Consenti fornitori non corrispondenti" -#: stock/serializers.py:1439 +#: stock/serializers.py:1470 msgid "Allow stock items with different supplier parts to be merged" msgstr "Consenti di unire gli elementi di magazzino che hanno fornitori diversi" -#: stock/serializers.py:1444 +#: stock/serializers.py:1475 msgid "Allow mismatched status" msgstr "Consenti stato non corrispondente" -#: stock/serializers.py:1445 +#: stock/serializers.py:1476 msgid "Allow stock items with different status codes to be merged" msgstr "Consenti di unire gli elementi di magazzino con diversi codici di stato" -#: stock/serializers.py:1455 +#: stock/serializers.py:1486 msgid "At least two stock items must be provided" msgstr "Devono essere riforniti almeno due elementi in magazzino" -#: stock/serializers.py:1522 +#: stock/serializers.py:1553 msgid "No Change" msgstr "" -#: stock/serializers.py:1551 +#: stock/serializers.py:1582 msgid "StockItem primary key value" msgstr "Valore di chiave primaria StockItem" -#: stock/serializers.py:1570 +#: stock/serializers.py:1601 msgid "Stock item status code" msgstr "" -#: stock/serializers.py:1598 +#: stock/serializers.py:1629 msgid "Stock transaction notes" msgstr "Note sugli spostamenti di magazzino" @@ -10175,107 +10539,107 @@ msgstr "Respinto" msgid "Quarantined" msgstr "In quarantena" -#: stock/status_codes.py:40 +#: stock/status_codes.py:44 msgid "Legacy stock tracking entry" msgstr "Voce di tracciamento stock preesistente" -#: stock/status_codes.py:42 templates/js/translated/stock.js:550 +#: stock/status_codes.py:46 templates/js/translated/stock.js:550 msgid "Stock item created" msgstr "Elemento stock creato" -#: stock/status_codes.py:45 +#: stock/status_codes.py:49 msgid "Edited stock item" msgstr "Elemento stock modificato" -#: stock/status_codes.py:46 +#: stock/status_codes.py:50 msgid "Assigned serial number" msgstr "Numero di serie assegnato" -#: stock/status_codes.py:49 +#: stock/status_codes.py:53 msgid "Stock counted" msgstr "Stock contato" -#: stock/status_codes.py:50 +#: stock/status_codes.py:54 msgid "Stock manually added" msgstr "Stock aggiunto manualmente" -#: stock/status_codes.py:51 +#: stock/status_codes.py:55 msgid "Stock manually removed" msgstr "Stock rimosso manualmente" -#: stock/status_codes.py:54 +#: stock/status_codes.py:58 msgid "Location changed" msgstr "Posizione cambiata" -#: stock/status_codes.py:55 +#: stock/status_codes.py:59 msgid "Stock updated" msgstr "Stock aggiornato" -#: stock/status_codes.py:58 +#: stock/status_codes.py:62 msgid "Installed into assembly" msgstr "Installato nell'assemblaggio" -#: stock/status_codes.py:59 +#: stock/status_codes.py:63 msgid "Removed from assembly" msgstr "Rimosso dall'assemblaggio" -#: stock/status_codes.py:61 +#: stock/status_codes.py:65 msgid "Installed component item" msgstr "Componente installato" -#: stock/status_codes.py:62 +#: stock/status_codes.py:66 msgid "Removed component item" msgstr "Elemento componente rimosso" -#: stock/status_codes.py:65 +#: stock/status_codes.py:69 msgid "Split from parent item" msgstr "Diviso dall'elemento genitore" -#: stock/status_codes.py:66 +#: stock/status_codes.py:70 msgid "Split child item" msgstr "Dividi elemento figlio" -#: stock/status_codes.py:69 templates/js/translated/stock.js:1943 +#: stock/status_codes.py:73 templates/js/translated/stock.js:1944 msgid "Merged stock items" msgstr "Elemento stock raggruppato" -#: stock/status_codes.py:72 +#: stock/status_codes.py:76 msgid "Converted to variant" msgstr "Convertito in variante" -#: stock/status_codes.py:75 +#: stock/status_codes.py:79 msgid "Build order output created" msgstr "Genera l'output dell'ordine creato" -#: stock/status_codes.py:76 +#: stock/status_codes.py:80 msgid "Build order output completed" msgstr "Build order output completato" -#: stock/status_codes.py:77 +#: stock/status_codes.py:81 msgid "Build order output rejected" msgstr "Ordine di costruzione rifiutato" -#: stock/status_codes.py:78 templates/js/translated/stock.js:1849 +#: stock/status_codes.py:82 templates/js/translated/stock.js:1849 msgid "Consumed by build order" msgstr "Impegnato dall'ordine di costruzione" -#: stock/status_codes.py:81 +#: stock/status_codes.py:85 msgid "Shipped against Sales Order" msgstr "Spedito contro l'ordine di vendita" -#: stock/status_codes.py:84 +#: stock/status_codes.py:88 msgid "Received against Purchase Order" msgstr "Ricevuto contro l'ordine di acquisto" -#: stock/status_codes.py:87 +#: stock/status_codes.py:91 msgid "Returned against Return Order" msgstr "Restituito contro l'ordine di ritorno" -#: stock/status_codes.py:90 templates/js/translated/table_filters.js:382 +#: stock/status_codes.py:94 templates/js/translated/table_filters.js:382 msgid "Sent to customer" msgstr "Inviato al cliente" -#: stock/status_codes.py:91 +#: stock/status_codes.py:95 msgid "Returned from customer" msgstr "Restituito dal cliente" @@ -10296,7 +10660,7 @@ msgstr "Questo elemento di magazzino non ha nessun elemento secondario" msgid "Test Data" msgstr "Dati di Test" -#: stock/templates/stock/item.html:85 stock/templates/stock/item_base.html:65 +#: stock/templates/stock/item.html:85 msgid "Test Report" msgstr "Rapporto del Test" @@ -10316,7 +10680,7 @@ msgstr "Note Elemento di magazzino" msgid "Installed Stock Items" msgstr "Elementi di magazzino installati" -#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3354 +#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3355 msgid "Install Stock Item" msgstr "Installa Elemento Magazzino" @@ -10328,208 +10692,212 @@ msgstr "Elimina tutti i risultati del test per questo elemento di magazzino" msgid "Add Test Result" msgstr "" -#: stock/templates/stock/item_base.html:33 +#: stock/templates/stock/item_base.html:34 msgid "Locate stock item" msgstr "Individua elemento di magazzino" -#: stock/templates/stock/item_base.html:51 +#: stock/templates/stock/item_base.html:52 msgid "Scan to Location" msgstr "Scansiona nella posizione" #: stock/templates/stock/item_base.html:59 -#: stock/templates/stock/location.html:67 +#: stock/templates/stock/location.html:68 #: templates/js/translated/filters.js:434 msgid "Printing actions" msgstr "Impostazioni di stampa" -#: stock/templates/stock/item_base.html:75 +#: stock/templates/stock/item_base.html:64 templates/js/translated/report.js:49 +msgid "Print Report" +msgstr "" + +#: stock/templates/stock/item_base.html:72 msgid "Stock adjustment actions" msgstr "Azioni adeguamento giacenza" -#: stock/templates/stock/item_base.html:79 -#: stock/templates/stock/location.html:87 templates/js/translated/stock.js:1909 +#: stock/templates/stock/item_base.html:76 +#: stock/templates/stock/location.html:88 templates/js/translated/stock.js:1909 msgid "Count stock" msgstr "Conta giacenza" -#: stock/templates/stock/item_base.html:81 +#: stock/templates/stock/item_base.html:78 #: templates/js/translated/stock.js:1891 msgid "Add stock" msgstr "Aggiungi giacenza" -#: stock/templates/stock/item_base.html:82 +#: stock/templates/stock/item_base.html:79 #: templates/js/translated/stock.js:1900 msgid "Remove stock" msgstr "Rimuovi giacenza" -#: stock/templates/stock/item_base.html:85 +#: stock/templates/stock/item_base.html:82 msgid "Serialize stock" msgstr "Serializza magazzino" -#: stock/templates/stock/item_base.html:88 -#: stock/templates/stock/location.html:93 templates/js/translated/stock.js:1918 +#: stock/templates/stock/item_base.html:85 +#: stock/templates/stock/location.html:94 templates/js/translated/stock.js:1918 msgid "Transfer stock" msgstr "Trasferisci giacenza" -#: stock/templates/stock/item_base.html:91 -#: templates/js/translated/stock.js:1972 +#: stock/templates/stock/item_base.html:88 +#: templates/js/translated/stock.js:1973 msgid "Assign to customer" msgstr "Assegna al cliente" -#: stock/templates/stock/item_base.html:94 +#: stock/templates/stock/item_base.html:91 msgid "Return to stock" msgstr "Torna al magazzino" -#: stock/templates/stock/item_base.html:97 +#: stock/templates/stock/item_base.html:94 msgid "Uninstall stock item" msgstr "Disinstalla elemento di magazzino" -#: stock/templates/stock/item_base.html:97 +#: stock/templates/stock/item_base.html:94 msgid "Uninstall" msgstr "Disinstalla" -#: stock/templates/stock/item_base.html:101 +#: stock/templates/stock/item_base.html:98 msgid "Install stock item" msgstr "Installa elementi stock" -#: stock/templates/stock/item_base.html:101 +#: stock/templates/stock/item_base.html:98 msgid "Install" msgstr "Installa" -#: stock/templates/stock/item_base.html:115 +#: stock/templates/stock/item_base.html:112 msgid "Convert to variant" msgstr "Converti in variante" -#: stock/templates/stock/item_base.html:118 +#: stock/templates/stock/item_base.html:115 msgid "Duplicate stock item" msgstr "Duplica elemento di magazzino" -#: stock/templates/stock/item_base.html:120 +#: stock/templates/stock/item_base.html:117 msgid "Edit stock item" msgstr "Modifica elemento di magazzino" -#: stock/templates/stock/item_base.html:123 +#: stock/templates/stock/item_base.html:120 msgid "Delete stock item" msgstr "Cancella elemento di magazzino" -#: stock/templates/stock/item_base.html:169 templates/InvenTree/search.html:139 -#: templates/js/translated/build.js:2295 templates/navbar.html:38 +#: stock/templates/stock/item_base.html:166 templates/InvenTree/search.html:139 +#: templates/js/translated/build.js:2298 templates/navbar.html:38 msgid "Build" msgstr "Produzione" -#: stock/templates/stock/item_base.html:211 +#: stock/templates/stock/item_base.html:208 msgid "No manufacturer set" msgstr "Nessun produttore impostato" -#: stock/templates/stock/item_base.html:251 +#: stock/templates/stock/item_base.html:248 msgid "You are not in the list of owners of this item. This stock item cannot be edited." msgstr "Non sei nell'elenco dei proprietari di questo elemento. Questo elemento di magazzino non può essere modificato." -#: stock/templates/stock/item_base.html:252 -#: stock/templates/stock/location.html:146 +#: stock/templates/stock/item_base.html:249 +#: stock/templates/stock/location.html:147 msgid "Read only" msgstr "Sola lettura" -#: stock/templates/stock/item_base.html:265 +#: stock/templates/stock/item_base.html:262 msgid "This stock item is unavailable" msgstr "Elemento di magazzino non disponibile" -#: stock/templates/stock/item_base.html:271 +#: stock/templates/stock/item_base.html:268 msgid "This stock item is in production and cannot be edited." msgstr "Questo elemento di magazzino è in produzione e non può essere modificato." -#: stock/templates/stock/item_base.html:272 +#: stock/templates/stock/item_base.html:269 msgid "Edit the stock item from the build view." msgstr "Modifica l'elemento di magazzino dalla visualizzazione generata." -#: stock/templates/stock/item_base.html:287 +#: stock/templates/stock/item_base.html:284 msgid "This stock item is allocated to Sales Order" msgstr "Questo elemento di magazzino è stato assegnato all'Ordine di Vendita" -#: stock/templates/stock/item_base.html:295 +#: stock/templates/stock/item_base.html:292 msgid "This stock item is allocated to Build Order" msgstr "Questo elemento di magazzino è stato assegnato all'Ordine di Produzione" -#: stock/templates/stock/item_base.html:311 +#: stock/templates/stock/item_base.html:308 msgid "This stock item is serialized. It has a unique serial number and the quantity cannot be adjusted" msgstr "" -#: stock/templates/stock/item_base.html:317 +#: stock/templates/stock/item_base.html:314 msgid "previous page" msgstr "pagina precedente" -#: stock/templates/stock/item_base.html:317 +#: stock/templates/stock/item_base.html:314 msgid "Navigate to previous serial number" msgstr "Vai al numero di serie precedente" -#: stock/templates/stock/item_base.html:326 +#: stock/templates/stock/item_base.html:323 msgid "next page" msgstr "pagina successiva" -#: stock/templates/stock/item_base.html:326 +#: stock/templates/stock/item_base.html:323 msgid "Navigate to next serial number" msgstr "Vai al numero di serie successivo" -#: stock/templates/stock/item_base.html:398 -#: templates/js/translated/build.js:2552 +#: stock/templates/stock/item_base.html:395 +#: templates/js/translated/build.js:2559 msgid "No location set" msgstr "Nessuna posizione impostata" -#: stock/templates/stock/item_base.html:413 +#: stock/templates/stock/item_base.html:410 msgid "Tests" msgstr "Test" -#: stock/templates/stock/item_base.html:419 +#: stock/templates/stock/item_base.html:416 msgid "This stock item has not passed all required tests" msgstr "Questo elemento di magazzino non ha superato i test richiesti" -#: stock/templates/stock/item_base.html:437 +#: stock/templates/stock/item_base.html:434 #, python-format msgid "This StockItem expired on %(item.expiry_date)s" msgstr "Questo Elemento Stock è scaduto il %(item.expiry_date)s" -#: stock/templates/stock/item_base.html:439 +#: stock/templates/stock/item_base.html:436 #, python-format msgid "This StockItem expires on %(item.expiry_date)s" msgstr "Questo Elemento Stock scade il %(item.expiry_date)s" -#: stock/templates/stock/item_base.html:455 +#: stock/templates/stock/item_base.html:452 msgid "No stocktake performed" msgstr "Nessun inventario eseguito" -#: stock/templates/stock/item_base.html:504 -#: templates/js/translated/stock.js:2037 +#: stock/templates/stock/item_base.html:501 +#: templates/js/translated/stock.js:2038 msgid "stock item" msgstr "" -#: stock/templates/stock/item_base.html:527 +#: stock/templates/stock/item_base.html:524 msgid "Edit Stock Status" msgstr "" -#: stock/templates/stock/item_base.html:536 +#: stock/templates/stock/item_base.html:533 msgid "Stock Item QR Code" msgstr "" -#: stock/templates/stock/item_base.html:547 +#: stock/templates/stock/item_base.html:544 msgid "Link Barcode to Stock Item" msgstr "" -#: stock/templates/stock/item_base.html:611 +#: stock/templates/stock/item_base.html:608 msgid "Select one of the part variants listed below." msgstr "Selezionare una delle varianti dell'articolo elencate sotto." -#: stock/templates/stock/item_base.html:614 +#: stock/templates/stock/item_base.html:611 msgid "Warning" msgstr "Attenzione" -#: stock/templates/stock/item_base.html:615 +#: stock/templates/stock/item_base.html:612 msgid "This action cannot be easily undone" msgstr "Questa azione non può essere facilmente annullata" -#: stock/templates/stock/item_base.html:623 +#: stock/templates/stock/item_base.html:620 msgid "Convert Stock Item" msgstr "" -#: stock/templates/stock/item_base.html:656 +#: stock/templates/stock/item_base.html:653 msgid "Return to Stock" msgstr "" @@ -10541,84 +10909,84 @@ msgstr "Crea elementi serializzati da questo elemento di magazzino." msgid "Select quantity to serialize, and unique serial numbers." msgstr "Seleziona la quantità da serializzare e i numeri di serie univoci." -#: stock/templates/stock/location.html:35 +#: stock/templates/stock/location.html:36 msgid "Perform stocktake for this stock location" msgstr "Esegui inventario per questa ubicazione di magazzino" -#: stock/templates/stock/location.html:42 +#: stock/templates/stock/location.html:43 msgid "Locate stock location" msgstr "Individua ubicazione di magazzino" -#: stock/templates/stock/location.html:60 +#: stock/templates/stock/location.html:61 msgid "Scan stock items into this location" msgstr "Scansiona gli elementi in magazzino in questa ubicazione" -#: stock/templates/stock/location.html:60 +#: stock/templates/stock/location.html:61 msgid "Scan In Stock Items" msgstr "Scansiona Elementi Stock" -#: stock/templates/stock/location.html:61 +#: stock/templates/stock/location.html:62 msgid "Scan stock container into this location" msgstr "Scansiona il contenitore magazzino in questa posizione" -#: stock/templates/stock/location.html:61 +#: stock/templates/stock/location.html:62 msgid "Scan In Container" msgstr "Scansiona container" -#: stock/templates/stock/location.html:72 +#: stock/templates/stock/location.html:73 msgid "Print Location Report" msgstr "" -#: stock/templates/stock/location.html:101 +#: stock/templates/stock/location.html:102 msgid "Location actions" msgstr "Azioni posizione" -#: stock/templates/stock/location.html:103 +#: stock/templates/stock/location.html:104 msgid "Edit location" msgstr "Modifica la posizione" -#: stock/templates/stock/location.html:105 +#: stock/templates/stock/location.html:106 msgid "Delete location" msgstr "Elimina la posizione" -#: stock/templates/stock/location.html:135 +#: stock/templates/stock/location.html:136 msgid "Top level stock location" msgstr "Posizione stock di livello superiore" -#: stock/templates/stock/location.html:141 +#: stock/templates/stock/location.html:142 msgid "Location Owner" msgstr "Proprietario Posizione" -#: stock/templates/stock/location.html:145 +#: stock/templates/stock/location.html:146 msgid "You are not in the list of owners of this location. This stock location cannot be edited." msgstr "Non sei nell'elenco dei proprietari di questa posizione. Questa posizione di giacenza non può essere modificata." -#: stock/templates/stock/location.html:173 +#: stock/templates/stock/location.html:174 msgid "Location Type" msgstr "" -#: stock/templates/stock/location.html:223 +#: stock/templates/stock/location.html:224 msgid "Create new stock location" msgstr "Crea nuova posizione di magazzino" -#: stock/templates/stock/location.html:224 +#: stock/templates/stock/location.html:225 msgid "New Location" msgstr "Nuova Posizione" -#: stock/templates/stock/location.html:298 -#: templates/js/translated/stock.js:2657 +#: stock/templates/stock/location.html:299 +#: templates/js/translated/stock.js:2658 msgid "stock location" msgstr "" -#: stock/templates/stock/location.html:320 +#: stock/templates/stock/location.html:321 msgid "Scanned stock container into this location" msgstr "" -#: stock/templates/stock/location.html:393 +#: stock/templates/stock/location.html:394 msgid "Stock Location QR Code" msgstr "" -#: stock/templates/stock/location.html:404 +#: stock/templates/stock/location.html:405 msgid "Link Barcode to Stock Location" msgstr "" @@ -10630,10 +10998,6 @@ msgstr "Caricamento..." msgid "Stock Tracking" msgstr "Rilevamento Stock" -#: stock/templates/stock/stock_sidebar.html:8 -msgid "Allocations" -msgstr "Assegnazioni" - #: templates/403.html:6 templates/403.html:12 templates/403_csrf.html:7 msgid "Permission Denied" msgstr "Permesso negato" @@ -11107,9 +11471,9 @@ msgid "Rate" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:81 -#: templates/js/translated/forms.js:548 templates/js/translated/helpers.js:108 +#: templates/js/translated/forms.js:548 templates/js/translated/helpers.js:109 #: templates/js/translated/part.js:395 templates/js/translated/pricing.js:629 -#: templates/js/translated/stock.js:252 users/models.py:406 +#: templates/js/translated/stock.js:252 users/models.py:408 msgid "Delete" msgstr "Elimina" @@ -11130,7 +11494,7 @@ msgid "No project codes found" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:158 -#: templates/js/translated/build.js:2400 +#: templates/js/translated/build.js:2403 msgid "group" msgstr "" @@ -11196,7 +11560,7 @@ msgid "Delete Location Type" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:503 -#: templates/InvenTree/settings/stock.html:38 +#: templates/InvenTree/settings/stock.html:39 msgid "New Location Type" msgstr "" @@ -11253,7 +11617,7 @@ msgstr "Impostazioni Ordine di Vendita" msgid "Stock Settings" msgstr "Impostazioni Magazzino" -#: templates/InvenTree/settings/stock.html:34 +#: templates/InvenTree/settings/stock.html:35 msgid "Stock Location Types" msgstr "" @@ -11280,7 +11644,7 @@ msgid "Unverified" msgstr "Non verificato" #: templates/InvenTree/settings/user.html:80 -#: templates/js/translated/company.js:957 +#: templates/js/translated/company.js:958 msgid "Primary" msgstr "Principale" @@ -11532,7 +11896,7 @@ msgid "Submit Bug Report" msgstr "Invia Segnalazione Bug" #: templates/about.html:91 templates/clip.html:4 -#: templates/js/translated/helpers.js:592 +#: templates/js/translated/helpers.js:598 msgid "copy to clipboard" msgstr "copia negli appunti" @@ -11738,23 +12102,24 @@ msgstr "Aggiungi allegato" msgid "Barcode Identifier" msgstr "Codice a Barre Identificativo" -#: templates/base.html:103 +#: templates/base.html:102 msgid "Server Restart Required" msgstr "È necessario riavviare il server" -#: templates/base.html:106 +#: templates/base.html:105 msgid "A configuration option has been changed which requires a server restart" msgstr "È stata modificata un'impostazione che richiede un riavvio del server" -#: templates/base.html:106 templates/base.html:116 +#: templates/base.html:105 templates/base.html:115 +#: templates/socialaccount/authentication_error.html:13 msgid "Contact your system administrator for further information" msgstr "Contatta l'amministratore per maggiori informazioni" -#: templates/base.html:113 +#: templates/base.html:112 msgid "Pending Database Migrations" msgstr "" -#: templates/base.html:116 +#: templates/base.html:115 msgid "There are pending database migrations which require attention" msgstr "" @@ -11787,7 +12152,7 @@ msgid "The following parts are low on required stock" msgstr "I seguenti articoli sono pochi nel magazzino richiesto" #: templates/email/build_order_required_stock.html:18 -#: templates/js/translated/bom.js:1674 templates/js/translated/build.js:2747 +#: templates/js/translated/bom.js:1674 templates/js/translated/build.js:2765 msgid "Required Quantity" msgstr "Quantità richiesta" @@ -11801,7 +12166,7 @@ msgid "Click on the following link to view this part" msgstr "Clicca il seguente link per visualizzare questo articolo" #: templates/email/low_stock_notification.html:18 -#: templates/js/translated/part.js:3237 +#: templates/js/translated/part.js:3253 msgid "Minimum Quantity" msgstr "Quantità minima" @@ -12039,7 +12404,7 @@ msgstr "" #: templates/js/translated/bom.js:189 templates/js/translated/bom.js:700 #: templates/js/translated/modals.js:75 templates/js/translated/modals.js:629 #: templates/js/translated/modals.js:757 templates/js/translated/modals.js:1065 -#: templates/js/translated/purchase_order.js:797 templates/modals.html:15 +#: templates/js/translated/purchase_order.js:780 templates/modals.html:15 #: templates/modals.html:27 templates/modals.html:39 templates/modals.html:50 msgid "Close" msgstr "Chiudi" @@ -12156,7 +12521,7 @@ msgstr "" msgid "Substitutes Available" msgstr "" -#: templates/js/translated/bom.js:950 templates/js/translated/build.js:2673 +#: templates/js/translated/bom.js:950 templates/js/translated/build.js:2682 msgid "Variant stock allowed" msgstr "" @@ -12176,30 +12541,30 @@ msgstr "" msgid "No pricing available" msgstr "" -#: templates/js/translated/bom.js:1184 templates/js/translated/build.js:2812 +#: templates/js/translated/bom.js:1184 templates/js/translated/build.js:2830 msgid "External stock" msgstr "" -#: templates/js/translated/bom.js:1188 templates/js/translated/build.js:2786 -#: templates/js/translated/sales_order.js:1946 +#: templates/js/translated/bom.js:1188 templates/js/translated/build.js:2804 +#: templates/js/translated/sales_order.js:1927 msgid "No Stock Available" msgstr "" -#: templates/js/translated/bom.js:1193 templates/js/translated/build.js:2790 +#: templates/js/translated/bom.js:1193 templates/js/translated/build.js:2808 msgid "Includes variant and substitute stock" msgstr "" -#: templates/js/translated/bom.js:1195 templates/js/translated/build.js:2792 +#: templates/js/translated/bom.js:1195 templates/js/translated/build.js:2810 #: templates/js/translated/part.js:1263 -#: templates/js/translated/sales_order.js:1943 +#: templates/js/translated/sales_order.js:1924 msgid "Includes variant stock" msgstr "" -#: templates/js/translated/bom.js:1197 templates/js/translated/build.js:2794 +#: templates/js/translated/bom.js:1197 templates/js/translated/build.js:2812 msgid "Includes substitute stock" msgstr "" -#: templates/js/translated/bom.js:1225 templates/js/translated/build.js:2777 +#: templates/js/translated/bom.js:1225 templates/js/translated/build.js:2795 msgid "Consumable item" msgstr "" @@ -12231,7 +12596,7 @@ msgstr "" msgid "No BOM items found" msgstr "" -#: templates/js/translated/bom.js:1657 templates/js/translated/build.js:2658 +#: templates/js/translated/bom.js:1657 templates/js/translated/build.js:2667 msgid "Required Part" msgstr "" @@ -12243,396 +12608,396 @@ msgstr "" msgid "Edit Build Order" msgstr "" -#: templates/js/translated/build.js:191 +#: templates/js/translated/build.js:194 msgid "Create Build Order" msgstr "" -#: templates/js/translated/build.js:223 +#: templates/js/translated/build.js:226 msgid "Cancel Build Order" msgstr "" -#: templates/js/translated/build.js:232 +#: templates/js/translated/build.js:235 msgid "Are you sure you wish to cancel this build?" msgstr "" -#: templates/js/translated/build.js:238 +#: templates/js/translated/build.js:241 msgid "Stock items have been allocated to this build order" msgstr "" -#: templates/js/translated/build.js:245 +#: templates/js/translated/build.js:248 msgid "There are incomplete outputs remaining for this build order" msgstr "" -#: templates/js/translated/build.js:297 +#: templates/js/translated/build.js:300 msgid "Build order is ready to be completed" msgstr "" -#: templates/js/translated/build.js:305 +#: templates/js/translated/build.js:308 msgid "This build order cannot be completed as there are incomplete outputs" msgstr "" -#: templates/js/translated/build.js:310 +#: templates/js/translated/build.js:313 msgid "Build Order is incomplete" msgstr "" -#: templates/js/translated/build.js:328 +#: templates/js/translated/build.js:331 msgid "Complete Build Order" msgstr "" -#: templates/js/translated/build.js:369 templates/js/translated/stock.js:127 +#: templates/js/translated/build.js:372 templates/js/translated/stock.js:127 #: templates/js/translated/stock.js:301 msgid "Next available serial number" msgstr "" -#: templates/js/translated/build.js:371 templates/js/translated/stock.js:129 +#: templates/js/translated/build.js:374 templates/js/translated/stock.js:129 #: templates/js/translated/stock.js:303 msgid "Latest serial number" msgstr "" -#: templates/js/translated/build.js:380 +#: templates/js/translated/build.js:383 msgid "The Bill of Materials contains trackable parts" msgstr "" -#: templates/js/translated/build.js:381 +#: templates/js/translated/build.js:384 msgid "Build outputs must be generated individually" msgstr "" -#: templates/js/translated/build.js:389 +#: templates/js/translated/build.js:392 msgid "Trackable parts can have serial numbers specified" msgstr "" -#: templates/js/translated/build.js:390 +#: templates/js/translated/build.js:393 msgid "Enter serial numbers to generate multiple single build outputs" msgstr "" -#: templates/js/translated/build.js:397 +#: templates/js/translated/build.js:400 msgid "Create Build Output" msgstr "" -#: templates/js/translated/build.js:428 +#: templates/js/translated/build.js:431 msgid "Allocate stock items to this build output" msgstr "" -#: templates/js/translated/build.js:436 +#: templates/js/translated/build.js:439 msgid "Deallocate stock from build output" msgstr "" -#: templates/js/translated/build.js:445 +#: templates/js/translated/build.js:448 msgid "Complete build output" msgstr "" -#: templates/js/translated/build.js:453 +#: templates/js/translated/build.js:456 msgid "Scrap build output" msgstr "" -#: templates/js/translated/build.js:460 +#: templates/js/translated/build.js:463 msgid "Delete build output" msgstr "" -#: templates/js/translated/build.js:480 +#: templates/js/translated/build.js:483 msgid "Are you sure you wish to deallocate the selected stock items from this build?" msgstr "" -#: templates/js/translated/build.js:498 +#: templates/js/translated/build.js:501 msgid "Deallocate Stock Items" msgstr "" -#: templates/js/translated/build.js:584 templates/js/translated/build.js:711 -#: templates/js/translated/build.js:836 +#: templates/js/translated/build.js:587 templates/js/translated/build.js:714 +#: templates/js/translated/build.js:839 msgid "Select Build Outputs" msgstr "" -#: templates/js/translated/build.js:585 templates/js/translated/build.js:712 -#: templates/js/translated/build.js:837 +#: templates/js/translated/build.js:588 templates/js/translated/build.js:715 +#: templates/js/translated/build.js:840 msgid "At least one build output must be selected" msgstr "" -#: templates/js/translated/build.js:599 +#: templates/js/translated/build.js:602 msgid "Selected build outputs will be marked as complete" msgstr "" -#: templates/js/translated/build.js:603 templates/js/translated/build.js:736 -#: templates/js/translated/build.js:859 +#: templates/js/translated/build.js:606 templates/js/translated/build.js:739 +#: templates/js/translated/build.js:862 msgid "Output" msgstr "" -#: templates/js/translated/build.js:630 +#: templates/js/translated/build.js:633 msgid "Complete Build Outputs" msgstr "" -#: templates/js/translated/build.js:727 +#: templates/js/translated/build.js:730 msgid "Selected build outputs will be marked as scrapped" msgstr "" -#: templates/js/translated/build.js:729 +#: templates/js/translated/build.js:732 msgid "Scrapped output are marked as rejected" msgstr "" -#: templates/js/translated/build.js:730 +#: templates/js/translated/build.js:733 msgid "Allocated stock items will no longer be available" msgstr "" -#: templates/js/translated/build.js:731 +#: templates/js/translated/build.js:734 msgid "The completion status of the build order will not be adjusted" msgstr "" -#: templates/js/translated/build.js:761 +#: templates/js/translated/build.js:764 msgid "Scrap Build Outputs" msgstr "" -#: templates/js/translated/build.js:851 +#: templates/js/translated/build.js:854 msgid "Selected build outputs will be deleted" msgstr "" -#: templates/js/translated/build.js:853 +#: templates/js/translated/build.js:856 msgid "Build output data will be permanently deleted" msgstr "" -#: templates/js/translated/build.js:854 +#: templates/js/translated/build.js:857 msgid "Allocated stock items will be returned to stock" msgstr "" -#: templates/js/translated/build.js:872 +#: templates/js/translated/build.js:875 msgid "Delete Build Outputs" msgstr "" -#: templates/js/translated/build.js:959 +#: templates/js/translated/build.js:962 msgid "Delete allocations" msgstr "" -#: templates/js/translated/build.js:966 +#: templates/js/translated/build.js:969 msgid "Delete Stock Allocations" msgstr "" -#: templates/js/translated/build.js:989 +#: templates/js/translated/build.js:992 msgid "No allocated stock" msgstr "" -#: templates/js/translated/build.js:1045 +#: templates/js/translated/build.js:1048 msgid "Stock item" msgstr "" -#: templates/js/translated/build.js:1070 +#: templates/js/translated/build.js:1073 msgid "Edit build allocation" msgstr "" -#: templates/js/translated/build.js:1071 +#: templates/js/translated/build.js:1074 msgid "Delete build allocation" msgstr "" -#: templates/js/translated/build.js:1089 +#: templates/js/translated/build.js:1092 msgid "Edit Build Allocation" msgstr "" -#: templates/js/translated/build.js:1102 +#: templates/js/translated/build.js:1105 msgid "Delete Build Allocation" msgstr "" -#: templates/js/translated/build.js:1133 +#: templates/js/translated/build.js:1136 msgid "No build order allocations found" msgstr "" -#: templates/js/translated/build.js:1178 +#: templates/js/translated/build.js:1181 msgid "Location not specified" msgstr "" -#: templates/js/translated/build.js:1200 +#: templates/js/translated/build.js:1203 msgid "Complete outputs" msgstr "" -#: templates/js/translated/build.js:1218 +#: templates/js/translated/build.js:1221 msgid "Scrap outputs" msgstr "" -#: templates/js/translated/build.js:1236 +#: templates/js/translated/build.js:1239 msgid "Delete outputs" msgstr "" -#: templates/js/translated/build.js:1289 +#: templates/js/translated/build.js:1292 msgid "build output" msgstr "" -#: templates/js/translated/build.js:1290 +#: templates/js/translated/build.js:1293 msgid "build outputs" msgstr "" -#: templates/js/translated/build.js:1294 +#: templates/js/translated/build.js:1297 msgid "Build output actions" msgstr "" -#: templates/js/translated/build.js:1470 +#: templates/js/translated/build.js:1473 msgid "No active build outputs found" msgstr "" -#: templates/js/translated/build.js:1563 +#: templates/js/translated/build.js:1566 msgid "Allocated Lines" msgstr "" -#: templates/js/translated/build.js:1577 +#: templates/js/translated/build.js:1580 msgid "Required Tests" msgstr "" -#: templates/js/translated/build.js:1749 -#: templates/js/translated/purchase_order.js:611 -#: templates/js/translated/sales_order.js:1207 +#: templates/js/translated/build.js:1752 +#: templates/js/translated/purchase_order.js:594 +#: templates/js/translated/sales_order.js:1173 msgid "Select Parts" msgstr "" -#: templates/js/translated/build.js:1750 -#: templates/js/translated/sales_order.js:1208 +#: templates/js/translated/build.js:1753 +#: templates/js/translated/sales_order.js:1174 msgid "You must select at least one part to allocate" msgstr "" -#: templates/js/translated/build.js:1813 -#: templates/js/translated/sales_order.js:1157 +#: templates/js/translated/build.js:1816 +#: templates/js/translated/sales_order.js:1123 msgid "Specify stock allocation quantity" msgstr "" -#: templates/js/translated/build.js:1890 +#: templates/js/translated/build.js:1893 msgid "All Parts Allocated" msgstr "" -#: templates/js/translated/build.js:1891 +#: templates/js/translated/build.js:1894 msgid "All selected parts have been fully allocated" msgstr "" -#: templates/js/translated/build.js:1905 -#: templates/js/translated/sales_order.js:1222 +#: templates/js/translated/build.js:1908 +#: templates/js/translated/sales_order.js:1188 msgid "Select source location (leave blank to take from all locations)" msgstr "" -#: templates/js/translated/build.js:1933 +#: templates/js/translated/build.js:1936 msgid "Allocate Stock Items to Build Order" msgstr "" -#: templates/js/translated/build.js:1944 -#: templates/js/translated/sales_order.js:1319 +#: templates/js/translated/build.js:1947 +#: templates/js/translated/sales_order.js:1285 msgid "No matching stock locations" msgstr "" -#: templates/js/translated/build.js:2017 -#: templates/js/translated/sales_order.js:1398 +#: templates/js/translated/build.js:2020 +#: templates/js/translated/sales_order.js:1364 msgid "No matching stock items" msgstr "" -#: templates/js/translated/build.js:2114 +#: templates/js/translated/build.js:2117 msgid "Automatic Stock Allocation" msgstr "" -#: templates/js/translated/build.js:2115 +#: templates/js/translated/build.js:2118 msgid "Stock items will be automatically allocated to this build order, according to the provided guidelines" msgstr "" -#: templates/js/translated/build.js:2117 +#: templates/js/translated/build.js:2120 msgid "If a location is specified, stock will only be allocated from that location" msgstr "" -#: templates/js/translated/build.js:2118 +#: templates/js/translated/build.js:2121 msgid "If stock is considered interchangeable, it will be allocated from the first location it is found" msgstr "" -#: templates/js/translated/build.js:2119 +#: templates/js/translated/build.js:2122 msgid "If substitute stock is allowed, it will be used where stock of the primary part cannot be found" msgstr "" -#: templates/js/translated/build.js:2149 +#: templates/js/translated/build.js:2152 msgid "Allocate Stock Items" msgstr "" -#: templates/js/translated/build.js:2254 +#: templates/js/translated/build.js:2257 msgid "No builds matching query" msgstr "" -#: templates/js/translated/build.js:2289 templates/js/translated/build.js:2652 +#: templates/js/translated/build.js:2292 templates/js/translated/build.js:2661 #: templates/js/translated/forms.js:2196 templates/js/translated/forms.js:2212 #: templates/js/translated/part.js:2322 templates/js/translated/part.js:2761 -#: templates/js/translated/stock.js:2068 templates/js/translated/stock.js:2795 +#: templates/js/translated/stock.js:2069 templates/js/translated/stock.js:2796 msgid "Select" msgstr "" -#: templates/js/translated/build.js:2303 +#: templates/js/translated/build.js:2306 msgid "Build order is overdue" msgstr "" -#: templates/js/translated/build.js:2385 templates/js/translated/stock.js:3126 +#: templates/js/translated/build.js:2388 templates/js/translated/stock.js:3127 msgid "No user information" msgstr "" -#: templates/js/translated/build.js:2561 -#: templates/js/translated/sales_order.js:1682 +#: templates/js/translated/build.js:2568 +#: templates/js/translated/sales_order.js:1663 msgid "Edit stock allocation" msgstr "" -#: templates/js/translated/build.js:2562 -#: templates/js/translated/sales_order.js:1683 +#: templates/js/translated/build.js:2569 +#: templates/js/translated/sales_order.js:1664 msgid "Delete stock allocation" msgstr "" -#: templates/js/translated/build.js:2577 +#: templates/js/translated/build.js:2584 msgid "Edit Allocation" msgstr "" -#: templates/js/translated/build.js:2589 +#: templates/js/translated/build.js:2596 msgid "Remove Allocation" msgstr "" -#: templates/js/translated/build.js:2628 +#: templates/js/translated/build.js:2636 msgid "build line" msgstr "" -#: templates/js/translated/build.js:2629 +#: templates/js/translated/build.js:2637 msgid "build lines" msgstr "" -#: templates/js/translated/build.js:2647 +#: templates/js/translated/build.js:2656 msgid "No build lines found" msgstr "" -#: templates/js/translated/build.js:2677 templates/js/translated/part.js:793 +#: templates/js/translated/build.js:2686 templates/js/translated/part.js:793 #: templates/js/translated/part.js:1209 msgid "Trackable part" msgstr "" -#: templates/js/translated/build.js:2720 +#: templates/js/translated/build.js:2729 msgid "Gets Inherited" msgstr "" -#: templates/js/translated/build.js:2730 +#: templates/js/translated/build.js:2748 msgid "Unit Quantity" msgstr "" -#: templates/js/translated/build.js:2782 -#: templates/js/translated/sales_order.js:1951 +#: templates/js/translated/build.js:2800 +#: templates/js/translated/sales_order.js:1932 msgid "Sufficient stock available" msgstr "" -#: templates/js/translated/build.js:2837 +#: templates/js/translated/build.js:2855 msgid "Consumable Item" msgstr "" -#: templates/js/translated/build.js:2844 +#: templates/js/translated/build.js:2862 msgid "Tracked item" msgstr "" -#: templates/js/translated/build.js:2845 +#: templates/js/translated/build.js:2863 msgid "Allocate tracked items against individual build outputs" msgstr "" -#: templates/js/translated/build.js:2853 -#: templates/js/translated/sales_order.js:2052 +#: templates/js/translated/build.js:2871 +#: templates/js/translated/sales_order.js:2033 msgid "Build stock" msgstr "" -#: templates/js/translated/build.js:2858 templates/js/translated/stock.js:1953 +#: templates/js/translated/build.js:2876 templates/js/translated/stock.js:1954 msgid "Order stock" msgstr "" -#: templates/js/translated/build.js:2862 -#: templates/js/translated/sales_order.js:2046 +#: templates/js/translated/build.js:2880 +#: templates/js/translated/sales_order.js:2027 msgid "Allocate stock" msgstr "" -#: templates/js/translated/build.js:2866 +#: templates/js/translated/build.js:2884 msgid "Remove stock allocation" msgstr "" @@ -12641,7 +13006,7 @@ msgid "Add Manufacturer" msgstr "" #: templates/js/translated/company.js:111 -#: templates/js/translated/company.js:213 +#: templates/js/translated/company.js:214 msgid "Add Manufacturer Part" msgstr "" @@ -12649,231 +13014,231 @@ msgstr "" msgid "Edit Manufacturer Part" msgstr "" -#: templates/js/translated/company.js:201 +#: templates/js/translated/company.js:202 #: templates/js/translated/purchase_order.js:93 msgid "Add Supplier" msgstr "" -#: templates/js/translated/company.js:243 -#: templates/js/translated/purchase_order.js:318 +#: templates/js/translated/company.js:244 +#: templates/js/translated/purchase_order.js:301 msgid "Add Supplier Part" msgstr "" -#: templates/js/translated/company.js:344 +#: templates/js/translated/company.js:345 msgid "All selected supplier parts will be deleted" msgstr "" -#: templates/js/translated/company.js:360 +#: templates/js/translated/company.js:361 msgid "Delete Supplier Parts" msgstr "" -#: templates/js/translated/company.js:466 +#: templates/js/translated/company.js:467 msgid "Add new Company" msgstr "" -#: templates/js/translated/company.js:546 +#: templates/js/translated/company.js:547 msgid "Parts Supplied" msgstr "" -#: templates/js/translated/company.js:555 +#: templates/js/translated/company.js:556 msgid "Parts Manufactured" msgstr "" -#: templates/js/translated/company.js:570 +#: templates/js/translated/company.js:571 msgid "No company information found" msgstr "" -#: templates/js/translated/company.js:619 +#: templates/js/translated/company.js:620 msgid "Create New Contact" msgstr "" -#: templates/js/translated/company.js:635 -#: templates/js/translated/company.js:758 +#: templates/js/translated/company.js:636 +#: templates/js/translated/company.js:759 msgid "Edit Contact" msgstr "" -#: templates/js/translated/company.js:672 +#: templates/js/translated/company.js:673 msgid "All selected contacts will be deleted" msgstr "" -#: templates/js/translated/company.js:678 -#: templates/js/translated/company.js:742 +#: templates/js/translated/company.js:679 +#: templates/js/translated/company.js:743 msgid "Role" msgstr "" -#: templates/js/translated/company.js:686 +#: templates/js/translated/company.js:687 msgid "Delete Contacts" msgstr "" -#: templates/js/translated/company.js:717 +#: templates/js/translated/company.js:718 msgid "No contacts found" msgstr "" -#: templates/js/translated/company.js:730 +#: templates/js/translated/company.js:731 msgid "Phone Number" msgstr "" -#: templates/js/translated/company.js:736 +#: templates/js/translated/company.js:737 msgid "Email Address" msgstr "" -#: templates/js/translated/company.js:762 +#: templates/js/translated/company.js:763 msgid "Delete Contact" msgstr "" -#: templates/js/translated/company.js:859 +#: templates/js/translated/company.js:860 msgid "Create New Address" msgstr "" -#: templates/js/translated/company.js:874 -#: templates/js/translated/company.js:1035 +#: templates/js/translated/company.js:875 +#: templates/js/translated/company.js:1036 msgid "Edit Address" msgstr "" -#: templates/js/translated/company.js:909 +#: templates/js/translated/company.js:910 msgid "All selected addresses will be deleted" msgstr "" -#: templates/js/translated/company.js:923 +#: templates/js/translated/company.js:924 msgid "Delete Addresses" msgstr "" -#: templates/js/translated/company.js:950 +#: templates/js/translated/company.js:951 msgid "No addresses found" msgstr "" -#: templates/js/translated/company.js:989 +#: templates/js/translated/company.js:990 msgid "Postal city" msgstr "" -#: templates/js/translated/company.js:995 +#: templates/js/translated/company.js:996 msgid "State/province" msgstr "" -#: templates/js/translated/company.js:1007 +#: templates/js/translated/company.js:1008 msgid "Courier notes" msgstr "" -#: templates/js/translated/company.js:1013 +#: templates/js/translated/company.js:1014 msgid "Internal notes" msgstr "" -#: templates/js/translated/company.js:1039 +#: templates/js/translated/company.js:1040 msgid "Delete Address" msgstr "" -#: templates/js/translated/company.js:1112 +#: templates/js/translated/company.js:1113 msgid "All selected manufacturer parts will be deleted" msgstr "" -#: templates/js/translated/company.js:1127 +#: templates/js/translated/company.js:1128 msgid "Delete Manufacturer Parts" msgstr "" -#: templates/js/translated/company.js:1161 +#: templates/js/translated/company.js:1162 msgid "All selected parameters will be deleted" msgstr "" -#: templates/js/translated/company.js:1175 +#: templates/js/translated/company.js:1176 msgid "Delete Parameters" msgstr "" -#: templates/js/translated/company.js:1191 -#: templates/js/translated/company.js:1479 templates/js/translated/part.js:2250 +#: templates/js/translated/company.js:1192 +#: templates/js/translated/company.js:1480 templates/js/translated/part.js:2250 msgid "Order parts" msgstr "" -#: templates/js/translated/company.js:1208 +#: templates/js/translated/company.js:1209 msgid "Delete manufacturer parts" msgstr "" -#: templates/js/translated/company.js:1240 +#: templates/js/translated/company.js:1241 msgid "Manufacturer part actions" msgstr "" -#: templates/js/translated/company.js:1259 +#: templates/js/translated/company.js:1260 msgid "No manufacturer parts found" msgstr "" -#: templates/js/translated/company.js:1279 -#: templates/js/translated/company.js:1567 templates/js/translated/part.js:801 +#: templates/js/translated/company.js:1280 +#: templates/js/translated/company.js:1568 templates/js/translated/part.js:801 #: templates/js/translated/part.js:1217 msgid "Template part" msgstr "" -#: templates/js/translated/company.js:1283 -#: templates/js/translated/company.js:1571 templates/js/translated/part.js:805 +#: templates/js/translated/company.js:1284 +#: templates/js/translated/company.js:1572 templates/js/translated/part.js:805 #: templates/js/translated/part.js:1221 msgid "Assembled part" msgstr "" -#: templates/js/translated/company.js:1403 templates/js/translated/part.js:1471 +#: templates/js/translated/company.js:1404 templates/js/translated/part.js:1471 msgid "No parameters found" msgstr "" -#: templates/js/translated/company.js:1438 templates/js/translated/part.js:1534 +#: templates/js/translated/company.js:1439 templates/js/translated/part.js:1534 msgid "Edit parameter" msgstr "" -#: templates/js/translated/company.js:1439 templates/js/translated/part.js:1535 +#: templates/js/translated/company.js:1440 templates/js/translated/part.js:1535 msgid "Delete parameter" msgstr "" -#: templates/js/translated/company.js:1456 templates/js/translated/part.js:1440 +#: templates/js/translated/company.js:1457 templates/js/translated/part.js:1440 msgid "Edit Parameter" msgstr "" -#: templates/js/translated/company.js:1465 templates/js/translated/part.js:1556 +#: templates/js/translated/company.js:1466 templates/js/translated/part.js:1556 msgid "Delete Parameter" msgstr "" -#: templates/js/translated/company.js:1496 +#: templates/js/translated/company.js:1497 msgid "Delete supplier parts" msgstr "" -#: templates/js/translated/company.js:1546 +#: templates/js/translated/company.js:1547 msgid "No supplier parts found" msgstr "" -#: templates/js/translated/company.js:1664 +#: templates/js/translated/company.js:1665 msgid "Base Units" msgstr "" -#: templates/js/translated/company.js:1694 +#: templates/js/translated/company.js:1695 msgid "Availability" msgstr "" -#: templates/js/translated/company.js:1725 +#: templates/js/translated/company.js:1726 msgid "Edit supplier part" msgstr "" -#: templates/js/translated/company.js:1726 +#: templates/js/translated/company.js:1727 msgid "Delete supplier part" msgstr "" -#: templates/js/translated/company.js:1779 +#: templates/js/translated/company.js:1780 #: templates/js/translated/pricing.js:694 msgid "Delete Price Break" msgstr "" -#: templates/js/translated/company.js:1789 +#: templates/js/translated/company.js:1790 #: templates/js/translated/pricing.js:712 msgid "Edit Price Break" msgstr "" -#: templates/js/translated/company.js:1804 +#: templates/js/translated/company.js:1805 msgid "No price break information found" msgstr "" -#: templates/js/translated/company.js:1833 +#: templates/js/translated/company.js:1834 msgid "Last updated" -msgstr "" +msgstr "Ultima modifica" -#: templates/js/translated/company.js:1840 +#: templates/js/translated/company.js:1841 msgid "Edit price break" msgstr "" -#: templates/js/translated/company.js:1841 +#: templates/js/translated/company.js:1842 msgid "Delete price break" msgstr "" @@ -12977,19 +13342,19 @@ msgstr "" msgid "Select Columns" msgstr "" -#: templates/js/translated/helpers.js:80 +#: templates/js/translated/helpers.js:81 msgid "YES" msgstr "" -#: templates/js/translated/helpers.js:83 +#: templates/js/translated/helpers.js:84 msgid "NO" msgstr "" -#: templates/js/translated/helpers.js:96 +#: templates/js/translated/helpers.js:97 msgid "True" msgstr "" -#: templates/js/translated/helpers.js:97 +#: templates/js/translated/helpers.js:98 msgid "False" msgstr "" @@ -13131,7 +13496,7 @@ msgid "Delete Line" msgstr "" #: templates/js/translated/order.js:306 -#: templates/js/translated/purchase_order.js:2060 +#: templates/js/translated/purchase_order.js:2044 msgid "No line items found" msgstr "" @@ -13366,19 +13731,19 @@ msgid "Delete Part Parameter Template" msgstr "" #: templates/js/translated/part.js:1723 -#: templates/js/translated/purchase_order.js:1724 +#: templates/js/translated/purchase_order.js:1708 msgid "No purchase orders found" msgstr "" #: templates/js/translated/part.js:1867 -#: templates/js/translated/purchase_order.js:2223 +#: templates/js/translated/purchase_order.js:2207 #: templates/js/translated/return_order.js:754 -#: templates/js/translated/sales_order.js:1911 +#: templates/js/translated/sales_order.js:1892 msgid "This line item is overdue" msgstr "" #: templates/js/translated/part.js:1913 -#: templates/js/translated/purchase_order.js:2290 +#: templates/js/translated/purchase_order.js:2274 msgid "Receive line item" msgstr "" @@ -13419,7 +13784,7 @@ msgid "No category" msgstr "" #: templates/js/translated/part.js:2550 templates/js/translated/part.js:2680 -#: templates/js/translated/stock.js:2754 +#: templates/js/translated/stock.js:2755 msgid "Display as list" msgstr "" @@ -13431,7 +13796,7 @@ msgstr "" msgid "No subcategories found" msgstr "" -#: templates/js/translated/part.js:2700 templates/js/translated/stock.js:2774 +#: templates/js/translated/part.js:2700 templates/js/translated/stock.js:2775 msgid "Display as tree" msgstr "" @@ -13483,23 +13848,23 @@ msgstr "" msgid "Speculative" msgstr "" -#: templates/js/translated/part.js:3128 +#: templates/js/translated/part.js:3144 msgid "No scheduling information available for this part" msgstr "" -#: templates/js/translated/part.js:3134 +#: templates/js/translated/part.js:3150 msgid "Error fetching scheduling information for this part" msgstr "" -#: templates/js/translated/part.js:3230 +#: templates/js/translated/part.js:3246 msgid "Scheduled Stock Quantities" msgstr "" -#: templates/js/translated/part.js:3246 +#: templates/js/translated/part.js:3262 msgid "Maximum Quantity" msgstr "" -#: templates/js/translated/part.js:3291 +#: templates/js/translated/part.js:3307 msgid "Minimum Stock Level" msgstr "" @@ -13575,267 +13940,243 @@ msgstr "" msgid "Purchase Price History" msgstr "" -#: templates/js/translated/pricing.js:894 +#: templates/js/translated/pricing.js:892 msgid "No sales history data available" msgstr "" -#: templates/js/translated/pricing.js:916 +#: templates/js/translated/pricing.js:914 msgid "Sale Price History" msgstr "" -#: templates/js/translated/pricing.js:1005 +#: templates/js/translated/pricing.js:1003 msgid "No variant data available" msgstr "" -#: templates/js/translated/pricing.js:1045 +#: templates/js/translated/pricing.js:1043 msgid "Variant Part" msgstr "" -#: templates/js/translated/purchase_order.js:169 -msgid "Select purchase order to duplicate" -msgstr "" - -#: templates/js/translated/purchase_order.js:176 -msgid "Duplicate Line Items" -msgstr "" - -#: templates/js/translated/purchase_order.js:177 -msgid "Duplicate all line items from the selected order" -msgstr "" - -#: templates/js/translated/purchase_order.js:184 -msgid "Duplicate Extra Lines" -msgstr "" - -#: templates/js/translated/purchase_order.js:185 -msgid "Duplicate extra line items from the selected order" -msgstr "" - -#: templates/js/translated/purchase_order.js:206 +#: templates/js/translated/purchase_order.js:188 msgid "Edit Purchase Order" msgstr "" -#: templates/js/translated/purchase_order.js:223 +#: templates/js/translated/purchase_order.js:205 msgid "Duplication Options" msgstr "" -#: templates/js/translated/purchase_order.js:431 +#: templates/js/translated/purchase_order.js:414 msgid "Complete Purchase Order" msgstr "" -#: templates/js/translated/purchase_order.js:448 +#: templates/js/translated/purchase_order.js:431 #: templates/js/translated/return_order.js:210 -#: templates/js/translated/sales_order.js:552 +#: templates/js/translated/sales_order.js:511 msgid "Mark this order as complete?" msgstr "" -#: templates/js/translated/purchase_order.js:454 +#: templates/js/translated/purchase_order.js:437 msgid "All line items have been received" msgstr "" -#: templates/js/translated/purchase_order.js:459 +#: templates/js/translated/purchase_order.js:442 msgid "This order has line items which have not been marked as received." msgstr "" -#: templates/js/translated/purchase_order.js:460 +#: templates/js/translated/purchase_order.js:443 msgid "Completing this order means that the order and line items will no longer be editable." msgstr "" -#: templates/js/translated/purchase_order.js:483 +#: templates/js/translated/purchase_order.js:466 msgid "Cancel Purchase Order" msgstr "" -#: templates/js/translated/purchase_order.js:488 +#: templates/js/translated/purchase_order.js:471 msgid "Are you sure you wish to cancel this purchase order?" msgstr "" -#: templates/js/translated/purchase_order.js:494 +#: templates/js/translated/purchase_order.js:477 msgid "This purchase order can not be cancelled" msgstr "" -#: templates/js/translated/purchase_order.js:515 +#: templates/js/translated/purchase_order.js:498 #: templates/js/translated/return_order.js:164 msgid "After placing this order, line items will no longer be editable." msgstr "" -#: templates/js/translated/purchase_order.js:520 +#: templates/js/translated/purchase_order.js:503 msgid "Issue Purchase Order" msgstr "" -#: templates/js/translated/purchase_order.js:612 +#: templates/js/translated/purchase_order.js:595 msgid "At least one purchaseable part must be selected" msgstr "" -#: templates/js/translated/purchase_order.js:637 +#: templates/js/translated/purchase_order.js:620 msgid "Quantity to order" msgstr "" -#: templates/js/translated/purchase_order.js:646 +#: templates/js/translated/purchase_order.js:629 msgid "New supplier part" msgstr "" -#: templates/js/translated/purchase_order.js:664 +#: templates/js/translated/purchase_order.js:647 msgid "New purchase order" msgstr "" -#: templates/js/translated/purchase_order.js:705 +#: templates/js/translated/purchase_order.js:688 msgid "Add to purchase order" msgstr "" -#: templates/js/translated/purchase_order.js:755 +#: templates/js/translated/purchase_order.js:738 msgid "Merge" msgstr "" -#: templates/js/translated/purchase_order.js:859 +#: templates/js/translated/purchase_order.js:842 msgid "No matching supplier parts" msgstr "" -#: templates/js/translated/purchase_order.js:878 +#: templates/js/translated/purchase_order.js:861 msgid "No matching purchase orders" msgstr "" -#: templates/js/translated/purchase_order.js:1073 +#: templates/js/translated/purchase_order.js:1056 #: templates/js/translated/return_order.js:490 msgid "Select Line Items" msgstr "" -#: templates/js/translated/purchase_order.js:1074 +#: templates/js/translated/purchase_order.js:1057 #: templates/js/translated/return_order.js:491 msgid "At least one line item must be selected" msgstr "" -#: templates/js/translated/purchase_order.js:1104 +#: templates/js/translated/purchase_order.js:1087 msgid "Received Quantity" msgstr "" -#: templates/js/translated/purchase_order.js:1115 +#: templates/js/translated/purchase_order.js:1098 msgid "Quantity to receive" msgstr "" -#: templates/js/translated/purchase_order.js:1170 +#: templates/js/translated/purchase_order.js:1153 #: templates/js/translated/stock.js:1215 msgid "Specify packaging for incoming stock items" msgstr "" -#: templates/js/translated/purchase_order.js:1223 +#: templates/js/translated/purchase_order.js:1206 msgid "Stock Status" msgstr "" -#: templates/js/translated/purchase_order.js:1237 +#: templates/js/translated/purchase_order.js:1220 msgid "Add barcode" msgstr "" -#: templates/js/translated/purchase_order.js:1238 +#: templates/js/translated/purchase_order.js:1221 msgid "Remove barcode" msgstr "" -#: templates/js/translated/purchase_order.js:1241 +#: templates/js/translated/purchase_order.js:1224 msgid "Specify location" msgstr "" -#: templates/js/translated/purchase_order.js:1249 +#: templates/js/translated/purchase_order.js:1232 msgid "Add batch code" msgstr "" -#: templates/js/translated/purchase_order.js:1259 +#: templates/js/translated/purchase_order.js:1242 msgid "Specify packaging" msgstr "" -#: templates/js/translated/purchase_order.js:1270 +#: templates/js/translated/purchase_order.js:1253 msgid "Add serial numbers" msgstr "" -#: templates/js/translated/purchase_order.js:1281 +#: templates/js/translated/purchase_order.js:1264 msgid "Add note" msgstr "" -#: templates/js/translated/purchase_order.js:1338 +#: templates/js/translated/purchase_order.js:1321 msgid "Serials" msgstr "" -#: templates/js/translated/purchase_order.js:1368 +#: templates/js/translated/purchase_order.js:1351 msgid "Order Code" msgstr "" -#: templates/js/translated/purchase_order.js:1370 +#: templates/js/translated/purchase_order.js:1353 msgid "Quantity to Receive" msgstr "" -#: templates/js/translated/purchase_order.js:1395 +#: templates/js/translated/purchase_order.js:1379 #: templates/js/translated/return_order.js:559 msgid "Confirm receipt of items" msgstr "" -#: templates/js/translated/purchase_order.js:1396 +#: templates/js/translated/purchase_order.js:1380 msgid "Receive Purchase Order Items" msgstr "" -#: templates/js/translated/purchase_order.js:1464 +#: templates/js/translated/purchase_order.js:1448 msgid "Scan Item Barcode" msgstr "" -#: templates/js/translated/purchase_order.js:1465 +#: templates/js/translated/purchase_order.js:1449 msgid "Scan barcode on incoming item (must not match any existing stock items)" msgstr "" -#: templates/js/translated/purchase_order.js:1479 +#: templates/js/translated/purchase_order.js:1463 msgid "Invalid barcode data" msgstr "" -#: templates/js/translated/purchase_order.js:1751 +#: templates/js/translated/purchase_order.js:1735 #: templates/js/translated/return_order.js:285 -#: templates/js/translated/sales_order.js:810 -#: templates/js/translated/sales_order.js:1034 +#: templates/js/translated/sales_order.js:769 +#: templates/js/translated/sales_order.js:1007 msgid "Order is overdue" msgstr "" -#: templates/js/translated/purchase_order.js:1913 +#: templates/js/translated/purchase_order.js:1897 msgid "All selected Line items will be deleted" msgstr "" -#: templates/js/translated/purchase_order.js:1931 +#: templates/js/translated/purchase_order.js:1915 msgid "Delete selected Line items?" msgstr "" -#: templates/js/translated/purchase_order.js:1986 -#: templates/js/translated/sales_order.js:2106 +#: templates/js/translated/purchase_order.js:1970 +#: templates/js/translated/sales_order.js:2087 msgid "Duplicate Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2001 +#: templates/js/translated/purchase_order.js:1985 #: templates/js/translated/return_order.js:475 #: templates/js/translated/return_order.js:667 -#: templates/js/translated/sales_order.js:2119 +#: templates/js/translated/sales_order.js:2100 msgid "Edit Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2012 +#: templates/js/translated/purchase_order.js:1996 #: templates/js/translated/return_order.js:680 -#: templates/js/translated/sales_order.js:2130 +#: templates/js/translated/sales_order.js:2111 msgid "Delete Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2294 -#: templates/js/translated/sales_order.js:2060 +#: templates/js/translated/purchase_order.js:2278 +#: templates/js/translated/sales_order.js:2041 msgid "Duplicate line item" msgstr "" -#: templates/js/translated/purchase_order.js:2295 +#: templates/js/translated/purchase_order.js:2279 #: templates/js/translated/return_order.js:799 -#: templates/js/translated/sales_order.js:2061 +#: templates/js/translated/sales_order.js:2042 msgid "Edit line item" msgstr "" -#: templates/js/translated/purchase_order.js:2296 +#: templates/js/translated/purchase_order.js:2280 #: templates/js/translated/return_order.js:803 -#: templates/js/translated/sales_order.js:2067 +#: templates/js/translated/sales_order.js:2048 msgid "Delete line item" msgstr "" -#: templates/js/translated/report.js:49 -msgid "Print Report" -msgstr "" - #: templates/js/translated/report.js:68 msgid "Report print successful" msgstr "" @@ -13878,7 +14219,7 @@ msgid "No return orders found" msgstr "" #: templates/js/translated/return_order.js:299 -#: templates/js/translated/sales_order.js:824 +#: templates/js/translated/sales_order.js:783 msgid "Invalid Customer" msgstr "" @@ -13887,7 +14228,7 @@ msgid "Receive Return Order Items" msgstr "" #: templates/js/translated/return_order.js:691 -#: templates/js/translated/sales_order.js:2267 +#: templates/js/translated/sales_order.js:2248 msgid "No matching line items" msgstr "" @@ -13903,188 +14244,181 @@ msgstr "" msgid "Edit Sales Order" msgstr "" -#: templates/js/translated/sales_order.js:291 +#: templates/js/translated/sales_order.js:288 msgid "No stock items have been allocated to this shipment" msgstr "" -#: templates/js/translated/sales_order.js:296 -msgid "The following stock items will be shipped" -msgstr "" - -#: templates/js/translated/sales_order.js:336 +#: templates/js/translated/sales_order.js:294 msgid "Complete Shipment" msgstr "" -#: templates/js/translated/sales_order.js:360 +#: templates/js/translated/sales_order.js:318 msgid "Confirm Shipment" msgstr "" -#: templates/js/translated/sales_order.js:416 +#: templates/js/translated/sales_order.js:375 msgid "No pending shipments found" msgstr "" -#: templates/js/translated/sales_order.js:420 +#: templates/js/translated/sales_order.js:379 msgid "No stock items have been allocated to pending shipments" msgstr "" -#: templates/js/translated/sales_order.js:430 +#: templates/js/translated/sales_order.js:389 msgid "Complete Shipments" msgstr "" -#: templates/js/translated/sales_order.js:452 +#: templates/js/translated/sales_order.js:411 msgid "Skip" msgstr "" -#: templates/js/translated/sales_order.js:484 +#: templates/js/translated/sales_order.js:443 msgid "Ship Sales Order" msgstr "" -#: templates/js/translated/sales_order.js:500 +#: templates/js/translated/sales_order.js:459 msgid "Ship this order?" msgstr "" -#: templates/js/translated/sales_order.js:506 +#: templates/js/translated/sales_order.js:465 msgid "Order cannot be shipped as there are incomplete shipments" msgstr "" -#: templates/js/translated/sales_order.js:513 +#: templates/js/translated/sales_order.js:472 msgid "This order has line items which have not been completed." msgstr "" -#: templates/js/translated/sales_order.js:514 +#: templates/js/translated/sales_order.js:473 msgid "Shipping this order means that the order and line items will no longer be editable." msgstr "" -#: templates/js/translated/sales_order.js:572 +#: templates/js/translated/sales_order.js:531 msgid "Issue this Sales Order?" msgstr "" -#: templates/js/translated/sales_order.js:577 +#: templates/js/translated/sales_order.js:536 msgid "Issue Sales Order" msgstr "" -#: templates/js/translated/sales_order.js:596 +#: templates/js/translated/sales_order.js:555 msgid "Cancel Sales Order" msgstr "" -#: templates/js/translated/sales_order.js:601 +#: templates/js/translated/sales_order.js:560 msgid "Cancelling this order means that the order will no longer be editable." msgstr "" -#: templates/js/translated/sales_order.js:655 +#: templates/js/translated/sales_order.js:614 msgid "Create New Shipment" msgstr "" -#: templates/js/translated/sales_order.js:764 +#: templates/js/translated/sales_order.js:723 msgid "No sales orders found" msgstr "" -#: templates/js/translated/sales_order.js:944 +#: templates/js/translated/sales_order.js:907 msgid "Edit shipment" msgstr "" -#: templates/js/translated/sales_order.js:947 +#: templates/js/translated/sales_order.js:910 msgid "Complete shipment" msgstr "" -#: templates/js/translated/sales_order.js:952 +#: templates/js/translated/sales_order.js:915 msgid "Delete shipment" msgstr "" -#: templates/js/translated/sales_order.js:969 +#: templates/js/translated/sales_order.js:932 msgid "Edit Shipment" msgstr "" -#: templates/js/translated/sales_order.js:984 +#: templates/js/translated/sales_order.js:947 msgid "Delete Shipment" msgstr "" -#: templates/js/translated/sales_order.js:1017 +#: templates/js/translated/sales_order.js:989 msgid "No matching shipments found" msgstr "" -#: templates/js/translated/sales_order.js:1042 +#: templates/js/translated/sales_order.js:1015 msgid "Shipment Reference" msgstr "" -#: templates/js/translated/sales_order.js:1066 -#: templates/js/translated/sales_order.js:1565 +#: templates/js/translated/sales_order.js:1032 +#: templates/js/translated/sales_order.js:1531 msgid "Not shipped" msgstr "" -#: templates/js/translated/sales_order.js:1084 +#: templates/js/translated/sales_order.js:1050 msgid "Tracking" msgstr "" -#: templates/js/translated/sales_order.js:1088 +#: templates/js/translated/sales_order.js:1054 msgid "Invoice" msgstr "" -#: templates/js/translated/sales_order.js:1255 +#: templates/js/translated/sales_order.js:1221 msgid "Add Shipment" msgstr "" -#: templates/js/translated/sales_order.js:1306 +#: templates/js/translated/sales_order.js:1272 msgid "Confirm stock allocation" msgstr "" -#: templates/js/translated/sales_order.js:1307 +#: templates/js/translated/sales_order.js:1273 msgid "Allocate Stock Items to Sales Order" msgstr "" -#: templates/js/translated/sales_order.js:1513 +#: templates/js/translated/sales_order.js:1479 msgid "No sales order allocations found" msgstr "" -#: templates/js/translated/sales_order.js:1605 +#: templates/js/translated/sales_order.js:1571 msgid "Edit Stock Allocation" msgstr "" -#: templates/js/translated/sales_order.js:1619 +#: templates/js/translated/sales_order.js:1585 msgid "Confirm Delete Operation" msgstr "" -#: templates/js/translated/sales_order.js:1620 +#: templates/js/translated/sales_order.js:1586 msgid "Delete Stock Allocation" msgstr "" -#: templates/js/translated/sales_order.js:1659 -#: templates/js/translated/sales_order.js:1746 +#: templates/js/translated/sales_order.js:1640 +#: templates/js/translated/sales_order.js:1727 #: templates/js/translated/stock.js:1861 msgid "Shipped to customer" msgstr "" -#: templates/js/translated/sales_order.js:1667 -#: templates/js/translated/sales_order.js:1755 +#: templates/js/translated/sales_order.js:1648 +#: templates/js/translated/sales_order.js:1736 msgid "Stock location not specified" msgstr "" -#: templates/js/translated/sales_order.js:2044 -msgid "Allocate serial numbers" -msgstr "" - -#: templates/js/translated/sales_order.js:2048 -msgid "Purchase stock" -msgstr "" - -#: templates/js/translated/sales_order.js:2057 -#: templates/js/translated/sales_order.js:2245 -msgid "Calculate price" -msgstr "" - -#: templates/js/translated/sales_order.js:2071 -msgid "Cannot be deleted as items have been shipped" -msgstr "" - -#: templates/js/translated/sales_order.js:2074 -msgid "Cannot be deleted as items have been allocated" -msgstr "" - -#: templates/js/translated/sales_order.js:2145 +#: templates/js/translated/sales_order.js:2025 +#: templates/js/translated/sales_order.js:2126 msgid "Allocate Serial Numbers" msgstr "" -#: templates/js/translated/sales_order.js:2253 +#: templates/js/translated/sales_order.js:2029 +msgid "Purchase stock" +msgstr "" + +#: templates/js/translated/sales_order.js:2038 +#: templates/js/translated/sales_order.js:2226 +msgid "Calculate price" +msgstr "" + +#: templates/js/translated/sales_order.js:2052 +msgid "Cannot be deleted as items have been shipped" +msgstr "" + +#: templates/js/translated/sales_order.js:2055 +msgid "Cannot be deleted as items have been allocated" +msgstr "" + +#: templates/js/translated/sales_order.js:2234 msgid "Update Unit Price" msgstr "" @@ -14209,11 +14543,8 @@ msgid "Find Serial Number" msgstr "" #: templates/js/translated/stock.js:603 templates/js/translated/stock.js:604 -msgid "Enter serial number" -msgstr "" - #: templates/js/translated/stock.js:620 -msgid "Enter a serial number" +msgid "Enter serial number" msgstr "" #: templates/js/translated/stock.js:640 @@ -14284,7 +14615,7 @@ msgstr "" msgid "Add Stock" msgstr "" -#: templates/js/translated/stock.js:1049 users/models.py:396 +#: templates/js/translated/stock.js:1049 users/models.py:398 msgid "Add" msgstr "Aggiungi" @@ -14308,7 +14639,7 @@ msgstr "" msgid "Adjust packaging" msgstr "" -#: templates/js/translated/stock.js:1256 templates/js/translated/stock.js:3382 +#: templates/js/translated/stock.js:1256 templates/js/translated/stock.js:3383 msgid "Select Stock Items" msgstr "" @@ -14320,18 +14651,6 @@ msgstr "" msgid "Confirm stock adjustment" msgstr "" -#: templates/js/translated/stock.js:1448 -msgid "PASS" -msgstr "" - -#: templates/js/translated/stock.js:1450 -msgid "FAIL" -msgstr "" - -#: templates/js/translated/stock.js:1455 -msgid "NO RESULT" -msgstr "" - #: templates/js/translated/stock.js:1535 msgid "Pass test" msgstr "" @@ -14388,216 +14707,216 @@ msgstr "" msgid "No stock location set" msgstr "" -#: templates/js/translated/stock.js:1927 +#: templates/js/translated/stock.js:1928 msgid "Change stock status" msgstr "" -#: templates/js/translated/stock.js:1936 +#: templates/js/translated/stock.js:1937 msgid "Merge stock" msgstr "" -#: templates/js/translated/stock.js:1985 +#: templates/js/translated/stock.js:1986 msgid "Delete stock" msgstr "" -#: templates/js/translated/stock.js:2038 +#: templates/js/translated/stock.js:2039 msgid "stock items" msgstr "" -#: templates/js/translated/stock.js:2043 +#: templates/js/translated/stock.js:2044 msgid "Scan to location" msgstr "" -#: templates/js/translated/stock.js:2054 +#: templates/js/translated/stock.js:2055 msgid "Stock Actions" msgstr "" -#: templates/js/translated/stock.js:2098 +#: templates/js/translated/stock.js:2099 msgid "Load installed items" msgstr "" -#: templates/js/translated/stock.js:2176 +#: templates/js/translated/stock.js:2177 msgid "Stock item is in production" msgstr "" -#: templates/js/translated/stock.js:2181 +#: templates/js/translated/stock.js:2182 msgid "Stock item assigned to sales order" msgstr "" -#: templates/js/translated/stock.js:2184 +#: templates/js/translated/stock.js:2185 msgid "Stock item assigned to customer" msgstr "" -#: templates/js/translated/stock.js:2187 +#: templates/js/translated/stock.js:2188 msgid "Serialized stock item has been allocated" msgstr "" -#: templates/js/translated/stock.js:2189 +#: templates/js/translated/stock.js:2190 msgid "Stock item has been fully allocated" msgstr "" -#: templates/js/translated/stock.js:2191 +#: templates/js/translated/stock.js:2192 msgid "Stock item has been partially allocated" msgstr "" -#: templates/js/translated/stock.js:2194 +#: templates/js/translated/stock.js:2195 msgid "Stock item has been installed in another item" msgstr "" -#: templates/js/translated/stock.js:2196 +#: templates/js/translated/stock.js:2197 msgid "Stock item has been consumed by a build order" msgstr "" -#: templates/js/translated/stock.js:2200 +#: templates/js/translated/stock.js:2201 msgid "Stock item has expired" msgstr "" -#: templates/js/translated/stock.js:2202 +#: templates/js/translated/stock.js:2203 msgid "Stock item will expire soon" msgstr "" -#: templates/js/translated/stock.js:2207 +#: templates/js/translated/stock.js:2208 msgid "Stock item has been rejected" msgstr "" -#: templates/js/translated/stock.js:2209 +#: templates/js/translated/stock.js:2210 msgid "Stock item is lost" msgstr "" -#: templates/js/translated/stock.js:2211 +#: templates/js/translated/stock.js:2212 msgid "Stock item is destroyed" msgstr "" -#: templates/js/translated/stock.js:2215 +#: templates/js/translated/stock.js:2216 #: templates/js/translated/table_filters.js:357 msgid "Depleted" msgstr "" -#: templates/js/translated/stock.js:2380 +#: templates/js/translated/stock.js:2381 msgid "Supplier part not specified" msgstr "" -#: templates/js/translated/stock.js:2427 +#: templates/js/translated/stock.js:2428 msgid "Stock Value" msgstr "" -#: templates/js/translated/stock.js:2555 +#: templates/js/translated/stock.js:2556 msgid "No stock items matching query" msgstr "" -#: templates/js/translated/stock.js:2658 +#: templates/js/translated/stock.js:2659 msgid "stock locations" msgstr "" -#: templates/js/translated/stock.js:2813 +#: templates/js/translated/stock.js:2814 msgid "Load Sublocations" msgstr "" -#: templates/js/translated/stock.js:2930 +#: templates/js/translated/stock.js:2931 msgid "Details" msgstr "" -#: templates/js/translated/stock.js:2934 +#: templates/js/translated/stock.js:2935 msgid "No changes" msgstr "" -#: templates/js/translated/stock.js:2946 +#: templates/js/translated/stock.js:2947 msgid "Part information unavailable" msgstr "" -#: templates/js/translated/stock.js:2968 +#: templates/js/translated/stock.js:2969 msgid "Location no longer exists" msgstr "" -#: templates/js/translated/stock.js:2985 +#: templates/js/translated/stock.js:2986 msgid "Build order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3000 +#: templates/js/translated/stock.js:3001 msgid "Purchase order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3017 +#: templates/js/translated/stock.js:3018 msgid "Sales Order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3034 +#: templates/js/translated/stock.js:3035 msgid "Return Order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3053 +#: templates/js/translated/stock.js:3054 msgid "Customer no longer exists" msgstr "" -#: templates/js/translated/stock.js:3071 +#: templates/js/translated/stock.js:3072 msgid "Stock item no longer exists" msgstr "" -#: templates/js/translated/stock.js:3089 +#: templates/js/translated/stock.js:3090 msgid "Added" msgstr "" -#: templates/js/translated/stock.js:3097 +#: templates/js/translated/stock.js:3098 msgid "Removed" msgstr "" -#: templates/js/translated/stock.js:3169 +#: templates/js/translated/stock.js:3170 msgid "No installed items" msgstr "" -#: templates/js/translated/stock.js:3223 templates/js/translated/stock.js:3259 +#: templates/js/translated/stock.js:3224 templates/js/translated/stock.js:3260 msgid "Uninstall Stock Item" msgstr "" -#: templates/js/translated/stock.js:3280 +#: templates/js/translated/stock.js:3281 msgid "Select stock item to uninstall" msgstr "" -#: templates/js/translated/stock.js:3301 +#: templates/js/translated/stock.js:3302 msgid "Install another stock item into this item" msgstr "" -#: templates/js/translated/stock.js:3302 +#: templates/js/translated/stock.js:3303 msgid "Stock items can only be installed if they meet the following criteria" msgstr "" -#: templates/js/translated/stock.js:3304 +#: templates/js/translated/stock.js:3305 msgid "The Stock Item links to a Part which is the BOM for this Stock Item" msgstr "" -#: templates/js/translated/stock.js:3305 +#: templates/js/translated/stock.js:3306 msgid "The Stock Item is currently available in stock" msgstr "" -#: templates/js/translated/stock.js:3306 +#: templates/js/translated/stock.js:3307 msgid "The Stock Item is not already installed in another item" msgstr "" -#: templates/js/translated/stock.js:3307 +#: templates/js/translated/stock.js:3308 msgid "The Stock Item is tracked by either a batch code or serial number" msgstr "" -#: templates/js/translated/stock.js:3320 +#: templates/js/translated/stock.js:3321 msgid "Select part to install" msgstr "" -#: templates/js/translated/stock.js:3383 +#: templates/js/translated/stock.js:3384 msgid "Select one or more stock items" msgstr "" -#: templates/js/translated/stock.js:3396 +#: templates/js/translated/stock.js:3397 msgid "Selected stock items" msgstr "" -#: templates/js/translated/stock.js:3400 +#: templates/js/translated/stock.js:3401 msgid "Change Stock Status" msgstr "" -#: templates/js/translated/stock.js:3477 +#: templates/js/translated/stock.js:3478 msgid "This week" msgstr "" -#: templates/js/translated/stock.js:3485 +#: templates/js/translated/stock.js:3486 msgid "This month" msgstr "" @@ -14734,10 +15053,6 @@ msgstr "" msgid "Show items which are in production" msgstr "" -#: templates/js/translated/table_filters.js:372 -msgid "Include Variants" -msgstr "" - #: templates/js/translated/table_filters.js:373 msgid "Include stock items for variant parts" msgstr "" @@ -15012,10 +15327,6 @@ msgstr "Accesso Account Fallito" msgid "An error occurred while attempting to login via your social network account." msgstr "Si è verificato un errore durante il tentativo di accedere tramite il tuo account di social network." -#: templates/socialaccount/authentication_error.html:13 -msgid "Contact your system administrator for further information." -msgstr "Contatta l'amministratore di sistema per maggiori informazioni." - #: templates/socialaccount/login.html:13 #, python-format msgid "Connect %(provider)s" @@ -15141,27 +15452,27 @@ msgstr "Si" msgid "No" msgstr "" -#: users/admin.py:104 +#: users/admin.py:101 msgid "Users" msgstr "Utenti" -#: users/admin.py:105 +#: users/admin.py:102 msgid "Select which users are assigned to this group" msgstr "Selezionare quali utenti sono assegnati a questo gruppo" -#: users/admin.py:249 +#: users/admin.py:246 msgid "The following users are members of multiple groups" msgstr "" -#: users/admin.py:283 +#: users/admin.py:280 msgid "Personal info" msgstr "Informazioni personali" -#: users/admin.py:285 +#: users/admin.py:282 msgid "Permissions" msgstr "Permessi" -#: users/admin.py:288 +#: users/admin.py:285 msgid "Important dates" msgstr "Date Importanti" @@ -15205,35 +15516,35 @@ msgstr "" msgid "Revoked" msgstr "" -#: users/models.py:379 +#: users/models.py:381 msgid "Permission set" msgstr "Impostazione autorizzazioni" -#: users/models.py:388 +#: users/models.py:390 msgid "Group" msgstr "Gruppo" -#: users/models.py:392 +#: users/models.py:394 msgid "View" msgstr "Visualizza" -#: users/models.py:392 +#: users/models.py:394 msgid "Permission to view items" msgstr "Autorizzazione a visualizzare gli articoli" -#: users/models.py:396 +#: users/models.py:398 msgid "Permission to add items" msgstr "Autorizzazione ad aggiungere elementi" -#: users/models.py:400 +#: users/models.py:402 msgid "Change" msgstr "Modificare" -#: users/models.py:402 +#: users/models.py:404 msgid "Permissions to edit items" msgstr "Permessi per modificare gli elementi" -#: users/models.py:408 +#: users/models.py:410 msgid "Permission to delete items" msgstr "Autorizzazione ad eliminare gli elementi" diff --git a/src/backend/InvenTree/locale/ja/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/ja/LC_MESSAGES/django.po index 281ce186ac..759a1893e5 100644 --- a/src/backend/InvenTree/locale/ja/LC_MESSAGES/django.po +++ b/src/backend/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: 2024-08-20 01:22+0000\n" -"PO-Revision-Date: 2024-08-20 19:51\n" +"POT-Creation-Date: 2024-11-04 03:11+0000\n" +"PO-Revision-Date: 2024-11-04 03:14\n" "Last-Translator: \n" "Language-Team: Japanese\n" "Language: ja_JP\n" @@ -14,81 +14,89 @@ msgstr "" "X-Crowdin-Project: inventree\n" "X-Crowdin-Project-ID: 452300\n" "X-Crowdin-Language: ja\n" -"X-Crowdin-File: /[inventree.InvenTree] l10/src/backend/InvenTree/locale/en/LC_MESSAGES/django.po\n" -"X-Crowdin-File-ID: 216\n" +"X-Crowdin-File: /src/backend/InvenTree/locale/en/LC_MESSAGES/django.po\n" +"X-Crowdin-File-ID: 250\n" -#: InvenTree/api.py:269 +#: InvenTree/api.py:270 msgid "API endpoint not found" msgstr "APIエンドポイントが見つかりません" -#: InvenTree/api.py:502 +#: InvenTree/api.py:387 +msgid "Invalid items list provided" +msgstr "" + +#: InvenTree/api.py:396 +msgid "Invalid filters provided" +msgstr "" + +#: InvenTree/api.py:401 +msgid "No items found to delete" +msgstr "" + +#: InvenTree/api.py:515 msgid "User does not have permission to view this model" msgstr "ユーザーにこのモデルを表示する権限がありません" -#: InvenTree/conversion.py:160 +#: InvenTree/conversion.py:161 #, python-brace-format msgid "Invalid unit provided ({unit})" msgstr "" -#: InvenTree/conversion.py:177 +#: InvenTree/conversion.py:178 msgid "No value provided" msgstr "値がありません" -#: InvenTree/conversion.py:204 +#: InvenTree/conversion.py:205 #, python-brace-format msgid "Could not convert {original} to {unit}" msgstr "" -#: InvenTree/conversion.py:206 -msgid "Invalid quantity supplied" -msgstr "" +#: InvenTree/conversion.py:207 InvenTree/conversion.py:221 +#: InvenTree/helpers.py:505 order/models.py:589 order/models.py:832 +msgid "Invalid quantity provided" +msgstr "数量コードが無効です" -#: InvenTree/conversion.py:220 -#, python-brace-format -msgid "Invalid quantity supplied ({exc})" -msgstr "" - -#: InvenTree/exceptions.py:108 +#: InvenTree/exceptions.py:104 msgid "Error details can be found in the admin panel" msgstr "エラーの詳細は管理者パネルで確認できます" -#: InvenTree/fields.py:136 +#: InvenTree/fields.py:135 msgid "Enter date" msgstr "日付を入力する" -#: InvenTree/fields.py:205 InvenTree/models.py:929 build/serializers.py:468 -#: build/serializers.py:546 build/templates/build/sidebar.html:29 -#: company/models.py:836 +#: InvenTree/fields.py:204 InvenTree/models.py:928 build/serializers.py:512 +#: build/serializers.py:590 build/templates/build/sidebar.html:29 +#: company/models.py:833 #: company/templates/company/manufacturer_part_sidebar.html:11 #: company/templates/company/sidebar.html:37 -#: company/templates/company/supplier_part_sidebar.html:11 order/models.py:1380 +#: company/templates/company/supplier_part_sidebar.html:11 order/models.py:1397 #: order/templates/order/po_sidebar.html:11 #: order/templates/order/return_order_sidebar.html:9 #: order/templates/order/so_sidebar.html:17 part/admin.py:59 -#: part/models.py:3297 part/templates/part/part_sidebar.html:65 +#: part/models.py:3348 part/templates/part/part_sidebar.html:65 #: report/templates/report/inventree_build_order_report.html:172 -#: stock/admin.py:230 stock/models.py:2375 stock/models.py:2563 -#: stock/serializers.py:698 stock/serializers.py:856 stock/serializers.py:982 -#: stock/serializers.py:1032 stock/serializers.py:1343 -#: stock/serializers.py:1432 stock/serializers.py:1597 +#: stock/admin.py:231 stock/models.py:2494 stock/models.py:2679 +#: stock/serializers.py:725 stock/serializers.py:887 stock/serializers.py:1013 +#: stock/serializers.py:1063 stock/serializers.py:1374 +#: stock/serializers.py:1463 stock/serializers.py:1628 #: stock/templates/stock/stock_sidebar.html:25 #: templates/js/translated/barcode.js:143 templates/js/translated/bom.js:1265 -#: templates/js/translated/company.js:1684 templates/js/translated/order.js:372 +#: templates/js/translated/company.js:1685 templates/js/translated/order.js:372 #: templates/js/translated/part.js:1087 -#: templates/js/translated/purchase_order.js:2270 +#: templates/js/translated/purchase_order.js:2254 #: templates/js/translated/return_order.js:774 -#: templates/js/translated/sales_order.js:1103 -#: templates/js/translated/sales_order.js:2018 -#: templates/js/translated/stock.js:1621 templates/js/translated/stock.js:2513 +#: templates/js/translated/sales_order.js:1069 +#: templates/js/translated/sales_order.js:1999 +#: templates/js/translated/stock.js:1621 templates/js/translated/stock.js:2514 msgid "Notes" msgstr "メモ" -#: InvenTree/format.py:164 +#: InvenTree/format.py:162 #, python-brace-format msgid "Value '{name}' does not appear in pattern format" msgstr "値 '{name}' はパターン形式で表示されません" -#: InvenTree/format.py:175 +#: InvenTree/format.py:173 msgid "Provided value does not match required pattern: " msgstr "指定された値が必要なパターンと一致しません: " @@ -132,397 +140,409 @@ msgstr "" msgid "The provided primary email address is not valid." msgstr "指定されたプライマリEメールアドレスは無効です。" -#: InvenTree/forms.py:274 +#: InvenTree/forms.py:273 msgid "The provided email domain is not approved." msgstr "指定されたメールドメインは承認されていません。" -#: InvenTree/forms.py:403 +#: InvenTree/forms.py:402 msgid "Registration is disabled." msgstr "" -#: InvenTree/helpers.py:491 order/models.py:567 order/models.py:810 -msgid "Invalid quantity provided" -msgstr "数量コードが無効です" +#: InvenTree/helpers.py:509 +msgid "Cannot serialize more than 1000 items at once" +msgstr "" -#: InvenTree/helpers.py:499 +#: InvenTree/helpers.py:515 msgid "Empty serial number string" msgstr "シリアル番号は空です" -#: InvenTree/helpers.py:528 +#: InvenTree/helpers.py:544 msgid "Duplicate serial" msgstr "" -#: InvenTree/helpers.py:560 InvenTree/helpers.py:603 +#: InvenTree/helpers.py:576 InvenTree/helpers.py:619 InvenTree/helpers.py:637 +#: InvenTree/helpers.py:644 InvenTree/helpers.py:663 #, python-brace-format -msgid "Invalid group range: {group}" +msgid "Invalid group: {group}" msgstr "" -#: InvenTree/helpers.py:591 +#: InvenTree/helpers.py:607 #, python-brace-format msgid "Group range {group} exceeds allowed quantity ({expected_quantity})" msgstr "" -#: InvenTree/helpers.py:621 InvenTree/helpers.py:628 InvenTree/helpers.py:647 -#, python-brace-format -msgid "Invalid group sequence: {group}" -msgstr "" - -#: InvenTree/helpers.py:657 +#: InvenTree/helpers.py:673 msgid "No serial numbers found" msgstr "シリアル番号が見つかりません" -#: InvenTree/helpers.py:662 +#: InvenTree/helpers.py:678 msgid "Number of unique serial numbers ({len(serials)}) must match quantity ({expected_quantity})" msgstr "" -#: InvenTree/helpers.py:780 +#: InvenTree/helpers.py:796 msgid "Remove HTML tags from this value" msgstr "この値からHTMLタグを削除" -#: InvenTree/helpers_model.py:133 +#: InvenTree/helpers.py:881 +msgid "Data contains prohibited markdown content" +msgstr "" + +#: InvenTree/helpers_model.py:130 msgid "Connection error" msgstr "接続エラー" -#: InvenTree/helpers_model.py:138 InvenTree/helpers_model.py:145 +#: InvenTree/helpers_model.py:135 InvenTree/helpers_model.py:142 msgid "Server responded with invalid status code" msgstr "サーバは無効なステータスコードで応答しました" -#: InvenTree/helpers_model.py:141 +#: InvenTree/helpers_model.py:138 msgid "Exception occurred" msgstr "例外が発生しました" -#: InvenTree/helpers_model.py:151 +#: InvenTree/helpers_model.py:148 msgid "Server responded with invalid Content-Length value" msgstr "サーバーが無効なContent-Length値で応答しました" -#: InvenTree/helpers_model.py:154 +#: InvenTree/helpers_model.py:151 msgid "Image size is too large" msgstr "画像サイズが大きすぎます" -#: InvenTree/helpers_model.py:166 +#: InvenTree/helpers_model.py:163 msgid "Image download exceeded maximum size" msgstr "画像のダウンロードが最大サイズを超えました" -#: InvenTree/helpers_model.py:171 +#: InvenTree/helpers_model.py:168 msgid "Remote server returned empty response" msgstr "リモートサーバーが空のレスポンスを返しました" -#: InvenTree/helpers_model.py:179 +#: InvenTree/helpers_model.py:176 msgid "Supplied URL is not a valid image file" msgstr "指定されたURLは有効な画像ファイルではありません" -#: InvenTree/locales.py:18 +#: InvenTree/locales.py:20 msgid "Arabic" msgstr "" -#: InvenTree/locales.py:19 +#: InvenTree/locales.py:21 msgid "Bulgarian" msgstr "" -#: InvenTree/locales.py:20 +#: InvenTree/locales.py:22 msgid "Czech" msgstr "チェコ語" -#: InvenTree/locales.py:21 +#: InvenTree/locales.py:23 msgid "Danish" msgstr "" -#: InvenTree/locales.py:22 +#: InvenTree/locales.py:24 msgid "German" msgstr "ドイツ語" -#: InvenTree/locales.py:23 +#: InvenTree/locales.py:25 msgid "Greek" msgstr "ギリシャ語" -#: InvenTree/locales.py:24 +#: InvenTree/locales.py:26 msgid "English" msgstr "英語" -#: InvenTree/locales.py:25 +#: InvenTree/locales.py:27 msgid "Spanish" msgstr "スペイン語" -#: InvenTree/locales.py:26 +#: InvenTree/locales.py:28 msgid "Spanish (Mexican)" msgstr "スペイン語(メキシコ)" -#: InvenTree/locales.py:27 +#: InvenTree/locales.py:29 msgid "Estonian" msgstr "" -#: InvenTree/locales.py:28 +#: InvenTree/locales.py:30 msgid "Farsi / Persian" msgstr "" -#: InvenTree/locales.py:29 +#: InvenTree/locales.py:31 msgid "Finnish" msgstr "" -#: InvenTree/locales.py:30 +#: InvenTree/locales.py:32 msgid "French" msgstr "フランス語" -#: InvenTree/locales.py:31 +#: InvenTree/locales.py:33 msgid "Hebrew" msgstr "ヘブライ語" -#: InvenTree/locales.py:32 +#: InvenTree/locales.py:34 msgid "Hindi" msgstr "ヒンディー語" -#: InvenTree/locales.py:33 +#: InvenTree/locales.py:35 msgid "Hungarian" msgstr "ハンガリー語" -#: InvenTree/locales.py:34 +#: InvenTree/locales.py:36 msgid "Italian" msgstr "イタリア語" -#: InvenTree/locales.py:35 +#: InvenTree/locales.py:37 msgid "Japanese" msgstr "日本語" -#: InvenTree/locales.py:36 +#: InvenTree/locales.py:38 msgid "Korean" msgstr "韓国語" -#: InvenTree/locales.py:37 +#: InvenTree/locales.py:39 +msgid "Lithuanian" +msgstr "" + +#: InvenTree/locales.py:40 msgid "Latvian" msgstr "" -#: InvenTree/locales.py:38 +#: InvenTree/locales.py:41 msgid "Dutch" msgstr "オランダ語" -#: InvenTree/locales.py:39 +#: InvenTree/locales.py:42 msgid "Norwegian" msgstr "ノルウェー語" -#: InvenTree/locales.py:40 +#: InvenTree/locales.py:43 msgid "Polish" msgstr "ポーランド語" -#: InvenTree/locales.py:41 +#: InvenTree/locales.py:44 msgid "Portuguese" msgstr "ポルトガル語" -#: InvenTree/locales.py:42 +#: InvenTree/locales.py:45 msgid "Portuguese (Brazilian)" msgstr "ポルトガル語 (ブラジル)" -#: InvenTree/locales.py:43 +#: InvenTree/locales.py:46 msgid "Romanian" msgstr "" -#: InvenTree/locales.py:44 +#: InvenTree/locales.py:47 msgid "Russian" msgstr "ロシア語" -#: InvenTree/locales.py:45 +#: InvenTree/locales.py:48 msgid "Slovak" msgstr "" -#: InvenTree/locales.py:46 +#: InvenTree/locales.py:49 msgid "Slovenian" msgstr "スロベニア語" -#: InvenTree/locales.py:47 +#: InvenTree/locales.py:50 msgid "Serbian" msgstr "" -#: InvenTree/locales.py:48 +#: InvenTree/locales.py:51 msgid "Swedish" msgstr "スウェーデン語" -#: InvenTree/locales.py:49 +#: InvenTree/locales.py:52 msgid "Thai" msgstr "タイ語" -#: InvenTree/locales.py:50 +#: InvenTree/locales.py:53 msgid "Turkish" msgstr "トルコ語" -#: InvenTree/locales.py:51 +#: InvenTree/locales.py:54 msgid "Ukrainian" msgstr "" -#: InvenTree/locales.py:52 +#: InvenTree/locales.py:55 msgid "Vietnamese" msgstr "ベトナム語" -#: InvenTree/locales.py:53 +#: InvenTree/locales.py:56 msgid "Chinese (Simplified)" msgstr "" -#: InvenTree/locales.py:54 +#: InvenTree/locales.py:57 msgid "Chinese (Traditional)" msgstr "" #: InvenTree/magic_login.py:28 -#, python-brace-format -msgid "[{site_name}] Log in to the app" +msgid "Log in to the app" msgstr "" -#: InvenTree/magic_login.py:38 InvenTree/serializers.py:415 -#: company/models.py:136 company/templates/company/company_base.html:138 +#: InvenTree/magic_login.py:38 InvenTree/serializers.py:416 +#: company/models.py:133 company/templates/company/company_base.html:138 #: templates/InvenTree/settings/user.html:49 -#: templates/js/translated/company.js:677 +#: templates/js/translated/company.js:678 msgid "Email" msgstr "メールアドレス" -#: InvenTree/models.py:103 +#: InvenTree/models.py:105 msgid "Error running plugin validation" msgstr "" -#: InvenTree/models.py:172 +#: InvenTree/models.py:174 msgid "Metadata must be a python dict object" msgstr "" -#: InvenTree/models.py:178 +#: InvenTree/models.py:180 msgid "Plugin Metadata" msgstr "プラグインメタデータ" -#: InvenTree/models.py:179 +#: InvenTree/models.py:181 msgid "JSON metadata field, for use by external plugins" msgstr "外部プラグインで使用するためのJSONメタデータフィールド" -#: InvenTree/models.py:409 +#: InvenTree/models.py:408 msgid "Improperly formatted pattern" msgstr "" -#: InvenTree/models.py:416 +#: InvenTree/models.py:415 msgid "Unknown format key specified" msgstr "" -#: InvenTree/models.py:422 +#: InvenTree/models.py:421 msgid "Missing required format key" msgstr "" -#: InvenTree/models.py:433 +#: InvenTree/models.py:432 msgid "Reference field cannot be empty" msgstr "" -#: InvenTree/models.py:441 +#: InvenTree/models.py:440 msgid "Reference must match required pattern" msgstr "" -#: InvenTree/models.py:472 +#: InvenTree/models.py:471 msgid "Reference number is too large" msgstr "" -#: InvenTree/models.py:723 +#: InvenTree/models.py:722 msgid "Duplicate names cannot exist under the same parent" msgstr "" -#: InvenTree/models.py:740 +#: InvenTree/models.py:739 msgid "Invalid choice" msgstr "無効な選択です" -#: InvenTree/models.py:770 common/models.py:2702 common/models.py:3132 -#: common/serializers.py:412 company/models.py:593 machine/models.py:24 -#: part/models.py:983 part/models.py:3764 plugin/models.py:51 -#: report/models.py:149 stock/models.py:77 +#: InvenTree/models.py:769 common/models.py:2766 common/models.py:3193 +#: common/models.py:3413 common/serializers.py:460 company/models.py:590 +#: machine/models.py:24 part/models.py:1044 part/models.py:3815 +#: plugin/models.py:51 report/models.py:149 stock/models.py:83 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/notifications.html:17 #: templates/InvenTree/settings/plugin.html:83 #: templates/InvenTree/settings/plugin_settings.html:22 #: templates/InvenTree/settings/settings_staff_js.html:67 #: templates/InvenTree/settings/settings_staff_js.html:454 -#: templates/js/translated/company.js:676 -#: templates/js/translated/company.js:724 -#: templates/js/translated/company.js:913 -#: templates/js/translated/company.js:1165 -#: templates/js/translated/company.js:1413 templates/js/translated/part.js:1193 +#: templates/js/translated/company.js:677 +#: templates/js/translated/company.js:725 +#: templates/js/translated/company.js:914 +#: templates/js/translated/company.js:1166 +#: templates/js/translated/company.js:1414 templates/js/translated/part.js:1193 #: templates/js/translated/part.js:1481 templates/js/translated/part.js:1617 -#: templates/js/translated/part.js:2768 templates/js/translated/stock.js:2801 +#: templates/js/translated/part.js:2768 templates/js/translated/stock.js:2802 msgid "Name" msgstr "お名前" -#: InvenTree/models.py:776 build/models.py:250 -#: build/templates/build/detail.html:24 common/models.py:156 -#: company/models.py:521 company/models.py:827 +#: InvenTree/models.py:775 build/models.py:251 +#: build/templates/build/detail.html:24 common/models.py:159 +#: company/models.py:518 company/models.py:824 #: company/templates/company/company_base.html:77 #: company/templates/company/manufacturer_part.html:75 -#: company/templates/company/supplier_part.html:107 order/models.py:288 -#: order/models.py:1413 part/admin.py:305 part/admin.py:411 part/models.py:1006 -#: part/models.py:3779 part/templates/part/category.html:79 -#: part/templates/part/part_base.html:170 +#: company/templates/company/supplier_part.html:108 order/models.py:295 +#: order/models.py:1430 part/admin.py:305 part/admin.py:411 part/models.py:1067 +#: part/models.py:3830 part/templates/part/category.html:79 +#: part/templates/part/part_base.html:171 #: part/templates/part/part_scheduling.html:12 report/models.py:155 -#: report/models.py:509 report/models.py:535 +#: report/models.py:517 report/models.py:543 #: report/templates/report/inventree_build_order_report.html:117 -#: stock/admin.py:54 stock/models.py:83 stock/templates/stock/location.html:122 +#: stock/admin.py:54 stock/models.py:89 stock/templates/stock/location.html:123 #: templates/InvenTree/settings/notifications.html:19 #: templates/InvenTree/settings/plugin_settings.html:27 #: templates/InvenTree/settings/settings_staff_js.html:170 #: templates/InvenTree/settings/settings_staff_js.html:459 #: templates/js/translated/bom.js:633 templates/js/translated/bom.js:963 -#: templates/js/translated/build.js:2311 templates/js/translated/company.js:519 -#: templates/js/translated/company.js:1330 -#: templates/js/translated/company.js:1641 templates/js/translated/index.js:119 +#: templates/js/translated/build.js:2314 templates/js/translated/company.js:520 +#: templates/js/translated/company.js:1331 +#: templates/js/translated/company.js:1642 templates/js/translated/index.js:119 #: templates/js/translated/order.js:323 templates/js/translated/part.js:1245 #: templates/js/translated/part.js:1490 templates/js/translated/part.js:1628 #: templates/js/translated/part.js:1965 templates/js/translated/part.js:2361 #: templates/js/translated/part.js:2803 templates/js/translated/part.js:2915 #: templates/js/translated/plugin.js:80 -#: templates/js/translated/purchase_order.js:1776 -#: templates/js/translated/purchase_order.js:1919 -#: templates/js/translated/purchase_order.js:2092 +#: templates/js/translated/purchase_order.js:1760 +#: templates/js/translated/purchase_order.js:1903 +#: templates/js/translated/purchase_order.js:2076 #: templates/js/translated/return_order.js:313 -#: templates/js/translated/sales_order.js:838 -#: templates/js/translated/sales_order.js:1848 -#: templates/js/translated/stock.js:1600 templates/js/translated/stock.js:2143 -#: templates/js/translated/stock.js:2832 templates/js/translated/stock.js:2915 +#: templates/js/translated/sales_order.js:797 +#: templates/js/translated/sales_order.js:1829 +#: templates/js/translated/stock.js:1600 templates/js/translated/stock.js:2144 +#: templates/js/translated/stock.js:2833 templates/js/translated/stock.js:2916 msgid "Description" msgstr "説明" -#: InvenTree/models.py:777 stock/models.py:84 +#: InvenTree/models.py:776 stock/models.py:90 msgid "Description (optional)" msgstr "説明 (オプション)" -#: InvenTree/models.py:792 templates/js/translated/part.js:2812 -#: templates/js/translated/stock.js:2841 +#: InvenTree/models.py:791 common/models.py:3546 +#: templates/js/translated/part.js:2812 templates/js/translated/stock.js:2842 msgid "Path" msgstr "" -#: InvenTree/models.py:929 +#: InvenTree/models.py:928 msgid "Markdown notes (optional)" msgstr "マークダウンメモ (オプション)" -#: InvenTree/models.py:960 +#: InvenTree/models.py:959 msgid "Barcode Data" msgstr "バーコード情報" -#: InvenTree/models.py:961 +#: InvenTree/models.py:960 msgid "Third party barcode data" msgstr "サードパーティ製バーコードデータ" -#: InvenTree/models.py:967 +#: InvenTree/models.py:966 msgid "Barcode Hash" msgstr "" -#: InvenTree/models.py:968 +#: InvenTree/models.py:967 msgid "Unique hash of barcode data" msgstr "" -#: InvenTree/models.py:1035 +#: InvenTree/models.py:1034 msgid "Existing barcode found" msgstr "" -#: InvenTree/models.py:1078 +#: InvenTree/models.py:1112 +msgid "Task Failure" +msgstr "" + +#: InvenTree/models.py:1114 +#, python-brace-format +msgid "Background worker task '{instance.func}' failed after {n} attempts" +msgstr "" + +#: InvenTree/models.py:1142 msgid "Server Error" msgstr "" -#: InvenTree/models.py:1079 +#: InvenTree/models.py:1143 msgid "An error has been logged by the server." msgstr "" -#: InvenTree/serializers.py:63 part/models.py:4387 +#: InvenTree/serializers.py:63 part/models.py:4444 msgid "Must be a valid number" msgstr "有効な数字でなければなりません" -#: InvenTree/serializers.py:100 company/models.py:186 -#: company/templates/company/company_base.html:112 part/models.py:3115 +#: InvenTree/serializers.py:100 company/models.py:183 +#: company/templates/company/company_base.html:112 part/models.py:3166 #: templates/InvenTree/settings/settings_staff_js.html:44 #: templates/currency_data.html:5 msgid "Currency" @@ -532,15 +552,15 @@ msgstr "通貨" msgid "Select currency from available options" msgstr "利用可能なオプションから通貨を選択してください" -#: InvenTree/serializers.py:407 templates/InvenTree/settings/user.html:33 +#: InvenTree/serializers.py:405 templates/InvenTree/settings/user.html:33 msgid "Username" msgstr "" -#: InvenTree/serializers.py:409 templates/InvenTree/settings/user.html:37 +#: InvenTree/serializers.py:408 templates/InvenTree/settings/user.html:37 msgid "First Name" msgstr "" -#: InvenTree/serializers.py:409 +#: InvenTree/serializers.py:408 msgid "First name of the user" msgstr "" @@ -552,30 +572,30 @@ msgstr "" msgid "Last name of the user" msgstr "" -#: InvenTree/serializers.py:415 +#: InvenTree/serializers.py:416 msgid "Email address of the user" msgstr "" -#: InvenTree/serializers.py:439 +#: InvenTree/serializers.py:441 msgid "Staff" msgstr "" -#: InvenTree/serializers.py:439 +#: InvenTree/serializers.py:441 msgid "Does this user have staff permissions" msgstr "" -#: InvenTree/serializers.py:442 +#: InvenTree/serializers.py:445 msgid "Superuser" msgstr "" -#: InvenTree/serializers.py:442 +#: InvenTree/serializers.py:445 msgid "Is this user a superuser" msgstr "" -#: InvenTree/serializers.py:445 common/models.py:2707 company/models.py:163 -#: company/models.py:801 machine/models.py:39 part/admin.py:88 -#: part/models.py:1189 plugin/models.py:66 -#: templates/js/translated/company.js:523 +#: InvenTree/serializers.py:449 common/models.py:2771 company/models.py:160 +#: company/models.py:798 machine/models.py:39 part/admin.py:88 +#: part/models.py:1250 plugin/models.py:66 +#: templates/js/translated/company.js:524 #: templates/js/translated/table_filters.js:134 #: templates/js/translated/table_filters.js:226 #: templates/js/translated/table_filters.js:513 @@ -585,230 +605,229 @@ msgstr "" msgid "Active" msgstr "" -#: InvenTree/serializers.py:445 +#: InvenTree/serializers.py:449 msgid "Is this user account active" msgstr "" -#: InvenTree/serializers.py:463 +#: InvenTree/serializers.py:467 msgid "You do not have permission to change this user role." msgstr "このユーザのロールを変更する権限がありません" -#: InvenTree/serializers.py:475 +#: InvenTree/serializers.py:503 msgid "Only superusers can create new users" msgstr "" -#: InvenTree/serializers.py:494 +#: InvenTree/serializers.py:523 msgid "Your account has been created." msgstr "" -#: InvenTree/serializers.py:496 +#: InvenTree/serializers.py:525 msgid "Please use the password reset function to login" msgstr "" -#: InvenTree/serializers.py:503 +#: InvenTree/serializers.py:531 msgid "Welcome to InvenTree" msgstr "" -#: InvenTree/serializers.py:561 +#: InvenTree/serializers.py:594 msgid "Invalid value" msgstr "無効な値です。" -#: InvenTree/serializers.py:581 importer/models.py:63 +#: InvenTree/serializers.py:614 importer/models.py:64 msgid "Data File" msgstr "データファイル" -#: InvenTree/serializers.py:582 +#: InvenTree/serializers.py:615 msgid "Select data file for upload" msgstr "アップロードするファイルを選択" -#: InvenTree/serializers.py:599 -msgid "Unsupported file type" -msgstr "サポートされていないファイル形式" +#: InvenTree/serializers.py:632 common/files.py:63 +msgid "Unsupported file format" +msgstr "" -#: InvenTree/serializers.py:605 +#: InvenTree/serializers.py:638 msgid "File is too large" msgstr "ファイルサイズが大きすぎます" -#: InvenTree/serializers.py:626 +#: InvenTree/serializers.py:659 msgid "No columns found in file" msgstr "ファイルに列が見つかりません" -#: InvenTree/serializers.py:629 +#: InvenTree/serializers.py:662 msgid "No data rows found in file" msgstr "ファイルにデータ行がみつかりません" -#: InvenTree/serializers.py:742 +#: InvenTree/serializers.py:774 msgid "No data rows provided" msgstr "データが入力されていません" -#: InvenTree/serializers.py:745 +#: InvenTree/serializers.py:777 msgid "No data columns supplied" msgstr "データ列が指定されていません" -#: InvenTree/serializers.py:812 +#: InvenTree/serializers.py:843 #, python-brace-format msgid "Missing required column: '{name}'" msgstr "必須の列がありません: {name}" -#: InvenTree/serializers.py:821 +#: InvenTree/serializers.py:852 #, python-brace-format msgid "Duplicate column: '{col}'" msgstr "{col} 列が重複しています。" -#: InvenTree/serializers.py:861 +#: InvenTree/serializers.py:891 msgid "Remote Image" msgstr "" -#: InvenTree/serializers.py:862 +#: InvenTree/serializers.py:892 msgid "URL of remote image file" msgstr "外部画像ファイルのURL" -#: InvenTree/serializers.py:880 +#: InvenTree/serializers.py:910 msgid "Downloading images from remote URL is not enabled" msgstr "外部URLからの画像ダウンロードは許可されていません" -#: InvenTree/status.py:66 part/serializers.py:1246 -msgid "Background worker check failed" -msgstr "バックグラウンドワーカーのチェックに失敗しました" - -#: InvenTree/status.py:70 -msgid "Email backend not configured" -msgstr "メールアドレスが未設定です" - -#: InvenTree/status.py:73 -msgid "InvenTree system health checks failed" -msgstr "InvenTree システムのヘルスチェックに失敗しました" +#: InvenTree/serializers.py:917 +msgid "Failed to download image from remote URL" +msgstr "" #: InvenTree/templatetags/inventree_extras.py:184 msgid "Unknown database" msgstr "" -#: InvenTree/validators.py:32 InvenTree/validators.py:34 +#: InvenTree/validators.py:32 msgid "Invalid physical unit" msgstr "" -#: InvenTree/validators.py:40 +#: InvenTree/validators.py:38 msgid "Not a valid currency code" msgstr "" -#: InvenTree/validators.py:118 InvenTree/validators.py:134 +#: InvenTree/validators.py:115 InvenTree/validators.py:131 msgid "Overage value must not be negative" msgstr "" -#: InvenTree/validators.py:136 +#: InvenTree/validators.py:133 msgid "Overage must not exceed 100%" msgstr "" -#: InvenTree/validators.py:142 +#: InvenTree/validators.py:139 msgid "Invalid value for overage" msgstr "" -#: InvenTree/views.py:400 templates/InvenTree/settings/user.html:23 +#: InvenTree/views.py:399 templates/InvenTree/settings/user.html:23 msgid "Edit User Information" msgstr "ユーザー情報を編集" -#: InvenTree/views.py:412 templates/InvenTree/settings/user.html:20 +#: InvenTree/views.py:411 templates/InvenTree/settings/user.html:20 msgid "Set Password" msgstr "パスワードを設定" -#: InvenTree/views.py:434 +#: InvenTree/views.py:433 msgid "Password fields must match" msgstr "パスワードが一致しません" -#: InvenTree/views.py:442 +#: InvenTree/views.py:441 msgid "Wrong password provided" msgstr "パスワードが間違っています" -#: InvenTree/views.py:650 templates/navbar.html:160 +#: InvenTree/views.py:645 templates/navbar.html:160 msgid "System Information" msgstr "システム情報" -#: InvenTree/views.py:657 templates/navbar.html:171 +#: InvenTree/views.py:652 templates/navbar.html:171 msgid "About InvenTree" msgstr "InvenTree について" -#: build/api.py:51 part/api.py:156 stock/api.py:343 -msgid "Cascade" -msgstr "" - -#: build/api.py:64 build/models.py:261 -#: build/templates/build/build_base.html:191 +#: build/api.py:54 build/models.py:262 +#: build/templates/build/build_base.html:192 #: build/templates/build/detail.html:87 msgid "Parent Build" msgstr "" -#: build/api.py:89 order/api.py:92 templates/js/translated/table_filters.js:101 +#: build/api.py:58 build/api.py:625 order/api.py:396 order/api.py:611 +#: order/api.py:990 order/api.py:1187 +#: templates/js/translated/table_filters.js:372 +msgid "Include Variants" +msgstr "" + +#: build/api.py:93 +msgid "Ancestor Build" +msgstr "" + +#: build/api.py:112 order/api.py:90 +#: templates/js/translated/table_filters.js:101 #: templates/js/translated/table_filters.js:549 #: templates/js/translated/table_filters.js:633 #: templates/js/translated/table_filters.js:674 msgid "Assigned to me" msgstr "" -#: build/api.py:106 build/templates/build/build_base.html:205 +#: build/api.py:129 build/templates/build/build_base.html:206 #: build/templates/build/detail.html:115 #: report/templates/report/inventree_build_order_report.html:152 #: templates/js/translated/table_filters.js:552 msgid "Issued By" msgstr "" -#: build/api.py:125 +#: build/api.py:148 msgid "Assigned To" msgstr "" -#: build/api.py:301 +#: build/api.py:310 msgid "Build must be cancelled before it can be deleted" msgstr "" -#: build/api.py:345 build/serializers.py:1288 part/models.py:4265 +#: build/api.py:354 build/serializers.py:1342 part/models.py:4322 #: templates/js/translated/bom.js:997 templates/js/translated/bom.js:1037 -#: templates/js/translated/build.js:2702 +#: templates/js/translated/build.js:2711 #: templates/js/translated/table_filters.js:197 #: templates/js/translated/table_filters.js:586 msgid "Consumable" msgstr "" -#: build/api.py:346 build/serializers.py:1289 part/models.py:4259 +#: build/api.py:355 build/serializers.py:1343 part/models.py:4316 #: part/templates/part/upload_bom.html:58 templates/js/translated/bom.js:1001 -#: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2693 +#: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2702 #: templates/js/translated/table_filters.js:193 #: templates/js/translated/table_filters.js:222 #: templates/js/translated/table_filters.js:590 msgid "Optional" msgstr "オプション" -#: build/api.py:347 common/models.py:1489 part/admin.py:91 part/admin.py:428 -#: part/models.py:1154 part/serializers.py:1575 +#: build/api.py:356 common/models.py:1558 part/admin.py:91 part/admin.py:428 +#: part/models.py:1215 part/serializers.py:1633 #: templates/js/translated/bom.js:1639 #: templates/js/translated/table_filters.js:337 #: templates/js/translated/table_filters.js:729 msgid "Assembly" msgstr "アセンブリ" -#: build/api.py:348 templates/js/translated/table_filters.js:415 +#: build/api.py:357 templates/js/translated/table_filters.js:415 #: templates/js/translated/table_filters.js:582 msgid "Tracked" msgstr "" -#: build/api.py:349 build/serializers.py:1290 part/models.py:1172 +#: build/api.py:358 build/serializers.py:1344 part/models.py:1233 #: templates/js/translated/table_filters.js:146 #: templates/js/translated/table_filters.js:779 msgid "Testable" msgstr "" -#: build/api.py:351 part/admin.py:144 templates/js/translated/build.js:1917 -#: templates/js/translated/build.js:2820 -#: templates/js/translated/sales_order.js:1965 +#: build/api.py:360 order/api.py:779 part/admin.py:144 +#: templates/js/translated/build.js:1920 templates/js/translated/build.js:2838 +#: templates/js/translated/sales_order.js:1946 #: templates/js/translated/table_filters.js:574 msgid "Allocated" msgstr "" -#: build/api.py:359 company/models.py:891 company/serializers.py:395 -#: company/templates/company/supplier_part.html:114 +#: build/api.py:368 company/models.py:888 company/serializers.py:399 +#: company/templates/company/supplier_part.html:115 #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:17 -#: templates/js/translated/bom.js:1162 templates/js/translated/build.js:2752 +#: templates/js/translated/bom.js:1162 templates/js/translated/build.js:2770 #: templates/js/translated/index.js:123 -#: templates/js/translated/model_renderers.js:235 +#: templates/js/translated/model_renderers.js:238 #: templates/js/translated/part.js:695 templates/js/translated/part.js:697 #: templates/js/translated/part.js:702 #: templates/js/translated/table_filters.js:347 @@ -816,16 +835,68 @@ msgstr "" msgid "Available" msgstr "" -#: build/models.py:86 build/templates/build/build_base.html:9 -#: build/templates/build/build_base.html:27 +#: build/api.py:640 build/models.py:268 build/serializers.py:1330 +#: build/templates/build/build_base.html:106 +#: build/templates/build/detail.html:29 company/models.py:1043 order/api.py:775 +#: order/api.py:1003 order/models.py:1519 order/models.py:1674 +#: order/models.py:1675 part/api.py:1495 part/api.py:1802 part/models.py:419 +#: part/models.py:3177 part/models.py:3321 part/models.py:3469 +#: part/models.py:3490 part/models.py:3512 part/models.py:3648 +#: part/models.py:3995 part/models.py:4158 part/models.py:4288 +#: part/models.py:4654 part/serializers.py:1245 part/serializers.py:1898 +#: part/templates/part/part_app_base.html:8 +#: part/templates/part/part_pricing.html:12 +#: part/templates/part/upload_bom.html:52 +#: report/templates/report/inventree_bill_of_materials_report.html:110 +#: report/templates/report/inventree_bill_of_materials_report.html:137 +#: report/templates/report/inventree_build_order_report.html:109 +#: report/templates/report/inventree_purchase_order_report.html:27 +#: report/templates/report/inventree_return_order_report.html:24 +#: report/templates/report/inventree_sales_order_report.html:27 +#: report/templates/report/inventree_sales_order_shipment_report.html:28 +#: report/templates/report/inventree_stock_location_report.html:102 +#: stock/serializers.py:112 stock/serializers.py:160 stock/serializers.py:456 +#: stock/serializers.py:947 templates/InvenTree/search.html:82 +#: templates/email/build_order_completed.html:17 +#: templates/email/build_order_required_stock.html:17 +#: templates/email/low_stock_notification.html:15 +#: templates/email/overdue_build_order.html:16 +#: templates/js/translated/barcode.js:577 templates/js/translated/bom.js:632 +#: templates/js/translated/bom.js:769 templates/js/translated/bom.js:905 +#: templates/js/translated/build.js:1005 templates/js/translated/build.js:1488 +#: templates/js/translated/build.js:1919 templates/js/translated/build.js:2337 +#: templates/js/translated/build.js:2514 templates/js/translated/company.js:349 +#: templates/js/translated/company.js:1117 +#: templates/js/translated/company.js:1272 +#: templates/js/translated/company.js:1560 templates/js/translated/index.js:109 +#: templates/js/translated/part.js:1950 templates/js/translated/part.js:2022 +#: templates/js/translated/part.js:2330 templates/js/translated/pricing.js:369 +#: templates/js/translated/purchase_order.js:734 +#: templates/js/translated/purchase_order.js:1350 +#: templates/js/translated/purchase_order.js:1902 +#: templates/js/translated/purchase_order.js:2061 +#: templates/js/translated/return_order.js:538 +#: templates/js/translated/return_order.js:708 +#: templates/js/translated/sales_order.js:1199 +#: templates/js/translated/sales_order.js:1608 +#: templates/js/translated/sales_order.js:1813 +#: templates/js/translated/stock.js:682 templates/js/translated/stock.js:848 +#: templates/js/translated/stock.js:1065 templates/js/translated/stock.js:2083 +#: templates/js/translated/stock.js:2942 templates/js/translated/stock.js:3175 +#: templates/js/translated/stock.js:3320 +msgid "Part" +msgstr "パーツ" + +#: build/api.py:662 build/models.py:88 build/templates/build/build_base.html:10 +#: build/templates/build/build_base.html:28 #: report/templates/report/inventree_build_order_report.html:105 -#: stock/serializers.py:84 templates/email/build_order_completed.html:16 +#: stock/serializers.py:85 templates/email/build_order_completed.html:16 #: templates/email/overdue_build_order.html:15 -#: templates/js/translated/build.js:1145 templates/js/translated/stock.js:2976 +#: templates/js/translated/build.js:1148 templates/js/translated/stock.js:2977 msgid "Build Order" msgstr "組立注文" -#: build/models.py:87 build/templates/build/build_base.html:13 +#: build/models.py:89 build/templates/build/build_base.html:14 #: build/templates/build/index.html:8 build/templates/build/index.html:12 #: order/templates/order/sales_order_detail.html:111 #: order/templates/order/so_sidebar.html:13 @@ -836,268 +907,216 @@ msgstr "組立注文" msgid "Build Orders" msgstr "組立注文" -#: build/models.py:135 +#: build/models.py:136 msgid "Assembly BOM has not been validated" msgstr "" -#: build/models.py:142 +#: build/models.py:143 msgid "Build order cannot be created for an inactive part" msgstr "" -#: build/models.py:149 +#: build/models.py:150 msgid "Build order cannot be created for an unlocked part" msgstr "" -#: build/models.py:163 +#: build/models.py:164 msgid "Invalid choice for parent build" msgstr "" -#: build/models.py:174 order/models.py:239 +#: build/models.py:175 order/models.py:236 msgid "Responsible user or group must be specified" msgstr "" -#: build/models.py:180 +#: build/models.py:181 msgid "Build order part cannot be changed" msgstr "" -#: build/models.py:241 +#: build/models.py:242 msgid "Build Order Reference" msgstr "" -#: build/models.py:242 build/serializers.py:1287 order/models.py:467 -#: order/models.py:978 order/models.py:1373 order/models.py:2135 -#: part/admin.py:414 part/models.py:4280 part/templates/part/upload_bom.html:54 +#: build/models.py:243 build/serializers.py:1341 order/models.py:479 +#: order/models.py:1005 order/models.py:1390 order/models.py:2174 +#: part/admin.py:414 part/models.py:4337 part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_bill_of_materials_report.html:139 #: report/templates/report/inventree_purchase_order_report.html:28 #: report/templates/report/inventree_return_order_report.html:26 #: report/templates/report/inventree_sales_order_report.html:28 #: templates/js/translated/bom.js:770 templates/js/translated/bom.js:973 -#: templates/js/translated/build.js:1011 templates/js/translated/build.js:2685 +#: templates/js/translated/build.js:1014 templates/js/translated/build.js:2694 #: templates/js/translated/order.js:316 templates/js/translated/pricing.js:386 -#: templates/js/translated/purchase_order.js:2135 +#: templates/js/translated/purchase_order.js:2119 #: templates/js/translated/return_order.js:727 -#: templates/js/translated/sales_order.js:1854 +#: templates/js/translated/sales_order.js:1835 msgid "Reference" msgstr "" -#: build/models.py:253 +#: build/models.py:254 msgid "Brief description of the build (optional)" msgstr "" -#: build/models.py:262 +#: build/models.py:263 msgid "BuildOrder to which this build is allocated" msgstr "" -#: build/models.py:267 build/serializers.py:1278 -#: build/templates/build/build_base.html:105 -#: build/templates/build/detail.html:29 company/models.py:1046 order/api.py:767 -#: order/models.py:1503 order/models.py:1658 order/models.py:1659 -#: part/api.py:1509 part/api.py:1813 part/models.py:424 part/models.py:3126 -#: part/models.py:3270 part/models.py:3418 part/models.py:3439 -#: part/models.py:3461 part/models.py:3597 part/models.py:3937 -#: part/models.py:4100 part/models.py:4231 part/models.py:4592 -#: part/serializers.py:1192 part/serializers.py:1836 -#: part/templates/part/part_app_base.html:8 -#: part/templates/part/part_pricing.html:12 -#: part/templates/part/upload_bom.html:52 -#: report/templates/report/inventree_bill_of_materials_report.html:110 -#: report/templates/report/inventree_bill_of_materials_report.html:137 -#: report/templates/report/inventree_build_order_report.html:109 -#: report/templates/report/inventree_purchase_order_report.html:27 -#: report/templates/report/inventree_return_order_report.html:24 -#: report/templates/report/inventree_sales_order_report.html:27 -#: report/templates/report/inventree_stock_location_report.html:102 -#: stock/serializers.py:111 stock/serializers.py:159 stock/serializers.py:446 -#: stock/serializers.py:916 templates/InvenTree/search.html:82 -#: templates/email/build_order_completed.html:17 -#: templates/email/build_order_required_stock.html:17 -#: templates/email/low_stock_notification.html:15 -#: templates/email/overdue_build_order.html:16 -#: templates/js/translated/barcode.js:577 templates/js/translated/bom.js:632 -#: templates/js/translated/bom.js:769 templates/js/translated/bom.js:905 -#: templates/js/translated/build.js:1002 templates/js/translated/build.js:1485 -#: templates/js/translated/build.js:1916 templates/js/translated/build.js:2334 -#: templates/js/translated/build.js:2507 templates/js/translated/company.js:348 -#: templates/js/translated/company.js:1116 -#: templates/js/translated/company.js:1271 -#: templates/js/translated/company.js:1559 templates/js/translated/index.js:109 -#: templates/js/translated/part.js:1950 templates/js/translated/part.js:2022 -#: templates/js/translated/part.js:2330 templates/js/translated/pricing.js:369 -#: templates/js/translated/purchase_order.js:751 -#: templates/js/translated/purchase_order.js:1367 -#: templates/js/translated/purchase_order.js:1918 -#: templates/js/translated/purchase_order.js:2077 -#: templates/js/translated/return_order.js:538 -#: templates/js/translated/return_order.js:708 -#: templates/js/translated/sales_order.js:300 -#: templates/js/translated/sales_order.js:1233 -#: templates/js/translated/sales_order.js:1634 -#: templates/js/translated/sales_order.js:1832 -#: templates/js/translated/stock.js:682 templates/js/translated/stock.js:848 -#: templates/js/translated/stock.js:1065 templates/js/translated/stock.js:2082 -#: templates/js/translated/stock.js:2941 templates/js/translated/stock.js:3174 -#: templates/js/translated/stock.js:3319 -msgid "Part" -msgstr "パーツ" - -#: build/models.py:275 +#: build/models.py:274 msgid "Select part to build" msgstr "" -#: build/models.py:280 +#: build/models.py:279 msgid "Sales Order Reference" msgstr "" -#: build/models.py:284 +#: build/models.py:283 msgid "SalesOrder to which this build is allocated" msgstr "" -#: build/models.py:289 build/serializers.py:1048 -#: templates/js/translated/build.js:1904 -#: templates/js/translated/sales_order.js:1221 +#: build/models.py:288 build/serializers.py:1092 +#: templates/js/translated/build.js:1907 +#: templates/js/translated/sales_order.js:1187 msgid "Source Location" msgstr "" -#: build/models.py:293 +#: build/models.py:292 msgid "Select location to take stock from for this build (leave blank to take from any stock location)" msgstr "" -#: build/models.py:298 +#: build/models.py:297 msgid "Destination Location" msgstr "" -#: build/models.py:302 +#: build/models.py:301 msgid "Select location where the completed items will be stored" msgstr "" -#: build/models.py:306 +#: build/models.py:305 msgid "Build Quantity" msgstr "" -#: build/models.py:309 +#: build/models.py:308 msgid "Number of stock items to build" msgstr "" -#: build/models.py:313 +#: build/models.py:312 msgid "Completed items" msgstr "" -#: build/models.py:315 +#: build/models.py:314 msgid "Number of stock items which have been completed" msgstr "" -#: build/models.py:319 +#: build/models.py:318 msgid "Build Status" msgstr "組立状況" -#: build/models.py:323 +#: build/models.py:322 msgid "Build status code" msgstr "" -#: build/models.py:332 build/serializers.py:302 build/serializers.py:1198 -#: order/serializers.py:670 stock/models.py:859 stock/serializers.py:76 -#: stock/serializers.py:1562 templates/js/translated/purchase_order.js:1129 +#: build/models.py:331 build/serializers.py:349 build/serializers.py:1243 +#: order/serializers.py:755 stock/models.py:936 stock/serializers.py:77 +#: stock/serializers.py:1593 templates/js/translated/purchase_order.js:1112 #: templates/js/translated/stock.js:1199 msgid "Batch Code" msgstr "" -#: build/models.py:336 build/serializers.py:303 +#: build/models.py:335 build/serializers.py:350 msgid "Batch code for this build output" msgstr "" -#: build/models.py:339 order/models.py:315 order/serializers.py:126 -#: part/models.py:1229 part/templates/part/part_base.html:319 +#: build/models.py:338 order/models.py:322 order/serializers.py:157 +#: part/models.py:1290 part/templates/part/part_base.html:327 #: templates/js/translated/return_order.js:338 -#: templates/js/translated/sales_order.js:863 +#: templates/js/translated/sales_order.js:822 msgid "Creation Date" msgstr "作成日時" -#: build/models.py:343 +#: build/models.py:342 msgid "Target completion date" msgstr "" -#: build/models.py:344 +#: build/models.py:343 msgid "Target date for build completion. Build will be overdue after this date." msgstr "" -#: build/models.py:347 order/models.py:526 order/models.py:2180 -#: templates/js/translated/build.js:2419 +#: build/models.py:346 order/models.py:538 order/models.py:2219 +#: templates/js/translated/build.js:2422 msgid "Completion Date" msgstr "" -#: build/models.py:353 +#: build/models.py:352 msgid "completed by" msgstr "" -#: build/models.py:361 templates/js/translated/build.js:2379 +#: build/models.py:360 templates/js/translated/build.js:2382 msgid "Issued by" msgstr "" -#: build/models.py:362 +#: build/models.py:361 msgid "User who issued this build order" msgstr "" -#: build/models.py:370 build/templates/build/build_base.html:212 -#: build/templates/build/detail.html:122 common/models.py:165 order/api.py:142 -#: order/models.py:333 order/templates/order/order_base.html:222 -#: order/templates/order/return_order_base.html:191 -#: order/templates/order/sales_order_base.html:235 part/models.py:1246 -#: part/templates/part/part_base.html:399 +#: build/models.py:369 build/templates/build/build_base.html:213 +#: build/templates/build/detail.html:122 common/models.py:168 order/api.py:140 +#: order/models.py:340 order/templates/order/order_base.html:231 +#: order/templates/order/return_order_base.html:192 +#: order/templates/order/sales_order_base.html:236 part/models.py:1307 +#: part/templates/part/part_base.html:407 #: report/templates/report/inventree_build_order_report.html:158 #: templates/InvenTree/settings/settings_staff_js.html:150 -#: templates/js/translated/build.js:2391 -#: templates/js/translated/purchase_order.js:1833 +#: templates/js/translated/build.js:2394 +#: templates/js/translated/purchase_order.js:1817 #: templates/js/translated/return_order.js:358 #: templates/js/translated/table_filters.js:551 msgid "Responsible" msgstr "" -#: build/models.py:371 +#: build/models.py:370 msgid "User or group responsible for this build order" msgstr "" -#: build/models.py:376 build/templates/build/detail.html:108 +#: build/models.py:375 build/templates/build/detail.html:108 #: company/templates/company/manufacturer_part.html:107 -#: company/templates/company/supplier_part.html:194 -#: order/templates/order/order_base.html:172 -#: order/templates/order/return_order_base.html:148 -#: order/templates/order/sales_order_base.html:187 -#: part/templates/part/part_base.html:392 stock/models.py:855 -#: stock/templates/stock/item_base.html:200 -#: templates/js/translated/company.js:1019 +#: company/templates/company/supplier_part.html:195 +#: order/templates/order/order_base.html:181 +#: order/templates/order/return_order_base.html:149 +#: order/templates/order/sales_order_base.html:188 +#: part/templates/part/part_base.html:400 stock/models.py:932 +#: stock/templates/stock/item_base.html:197 +#: templates/js/translated/company.js:1020 msgid "External Link" msgstr "外部リンク" -#: build/models.py:377 common/models.py:3273 part/models.py:1058 -#: stock/models.py:855 +#: build/models.py:376 common/models.py:3334 part/models.py:1119 +#: stock/models.py:932 msgid "Link to external URL" msgstr "外部 サイト へのリンク" -#: build/models.py:381 +#: build/models.py:380 msgid "Build Priority" msgstr "組立優先度" -#: build/models.py:384 +#: build/models.py:383 msgid "Priority of this build order" msgstr "" -#: build/models.py:391 common/models.py:135 common/models.py:149 -#: order/admin.py:18 order/api.py:128 order/models.py:297 +#: build/models.py:390 common/models.py:138 common/models.py:152 +#: order/admin.py:18 order/api.py:126 order/models.py:304 #: templates/InvenTree/settings/settings_staff_js.html:146 -#: templates/js/translated/build.js:2316 -#: templates/js/translated/purchase_order.js:1780 +#: templates/js/translated/build.js:2319 +#: templates/js/translated/purchase_order.js:1764 #: templates/js/translated/return_order.js:317 -#: templates/js/translated/sales_order.js:842 +#: templates/js/translated/sales_order.js:801 #: templates/js/translated/table_filters.js:47 #: templates/project_code_data.html:6 msgid "Project Code" msgstr "" -#: build/models.py:392 +#: build/models.py:391 msgid "Project code for this build order" msgstr "" -#: build/models.py:651 build/models.py:778 +#: build/models.py:651 build/models.py:779 msgid "Failed to offload task to complete build allocations" msgstr "" @@ -1110,610 +1129,619 @@ msgstr "" msgid "A build order has been completed" msgstr "" -#: build/models.py:967 build/models.py:1055 +#: build/models.py:858 build/serializers.py:393 +msgid "Serial numbers must be provided for trackable parts" +msgstr "" + +#: build/models.py:969 build/models.py:1058 msgid "No build output specified" msgstr "" -#: build/models.py:970 +#: build/models.py:972 msgid "Build output is already completed" msgstr "" -#: build/models.py:973 +#: build/models.py:975 msgid "Build output does not match Build Order" msgstr "" -#: build/models.py:1059 build/serializers.py:235 build/serializers.py:284 -#: build/serializers.py:915 order/models.py:564 order/serializers.py:499 -#: order/serializers.py:665 part/serializers.py:1569 part/serializers.py:1999 -#: stock/models.py:700 stock/models.py:1520 stock/serializers.py:669 +#: build/models.py:1062 build/serializers.py:282 build/serializers.py:331 +#: build/serializers.py:959 order/models.py:586 order/serializers.py:584 +#: order/serializers.py:750 part/serializers.py:1627 part/serializers.py:2060 +#: stock/models.py:777 stock/models.py:1609 stock/serializers.py:696 msgid "Quantity must be greater than zero" msgstr "" -#: build/models.py:1064 build/serializers.py:240 +#: build/models.py:1067 build/serializers.py:287 msgid "Quantity cannot be greater than the output quantity" msgstr "" -#: build/models.py:1124 build/serializers.py:563 +#: build/models.py:1127 build/serializers.py:607 #, python-brace-format msgid "Build output {serial} has not passed all required tests" msgstr "" -#: build/models.py:1465 +#: build/models.py:1482 msgid "Build Order Line Item" msgstr "" -#: build/models.py:1490 +#: build/models.py:1507 msgid "Build object" msgstr "" -#: build/models.py:1504 build/models.py:1760 build/serializers.py:222 -#: build/serializers.py:269 build/serializers.py:1295 -#: build/templates/build/build_base.html:110 -#: build/templates/build/detail.html:34 common/models.py:2579 -#: order/models.py:1356 order/models.py:2041 order/serializers.py:1460 +#: build/models.py:1521 build/models.py:1787 build/serializers.py:269 +#: build/serializers.py:316 build/serializers.py:1349 +#: build/templates/build/build_base.html:111 +#: build/templates/build/detail.html:34 common/models.py:2643 +#: order/models.py:1373 order/models.py:2074 order/serializers.py:1586 #: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:413 -#: part/forms.py:48 part/models.py:3284 part/models.py:4253 -#: part/templates/part/part_pricing.html:16 +#: part/forms.py:48 part/models.py:3335 part/models.py:4310 +#: part/serializers.py:265 part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_bill_of_materials_report.html:138 #: report/templates/report/inventree_build_order_report.html:113 #: report/templates/report/inventree_purchase_order_report.html:29 #: report/templates/report/inventree_sales_order_report.html:29 +#: report/templates/report/inventree_sales_order_shipment_report.html:47 +#: report/templates/report/inventree_sales_order_shipment_report.html:49 #: report/templates/report/inventree_stock_location_report.html:104 #: report/templates/report/inventree_test_report.html:90 -#: report/templates/report/inventree_test_report.html:169 stock/admin.py:159 -#: stock/serializers.py:127 stock/serializers.py:167 stock/serializers.py:660 -#: stock/templates/stock/item_base.html:287 -#: stock/templates/stock/item_base.html:295 -#: stock/templates/stock/item_base.html:342 +#: report/templates/report/inventree_test_report.html:169 stock/admin.py:160 +#: stock/serializers.py:128 stock/serializers.py:168 stock/serializers.py:687 +#: stock/templates/stock/item_base.html:284 +#: stock/templates/stock/item_base.html:292 +#: stock/templates/stock/item_base.html:339 #: templates/email/build_order_completed.html:18 #: templates/js/translated/barcode.js:579 templates/js/translated/bom.js:771 -#: templates/js/translated/bom.js:981 templates/js/translated/build.js:522 -#: templates/js/translated/build.js:737 templates/js/translated/build.js:1542 -#: templates/js/translated/build.js:1919 templates/js/translated/build.js:2529 -#: templates/js/translated/company.js:1818 -#: templates/js/translated/model_renderers.js:237 +#: templates/js/translated/bom.js:981 templates/js/translated/build.js:525 +#: templates/js/translated/build.js:740 templates/js/translated/build.js:1545 +#: templates/js/translated/build.js:1922 templates/js/translated/build.js:2536 +#: templates/js/translated/company.js:1819 +#: templates/js/translated/model_renderers.js:240 #: templates/js/translated/order.js:329 templates/js/translated/part.js:968 -#: templates/js/translated/part.js:1818 templates/js/translated/part.js:3360 +#: templates/js/translated/part.js:1818 templates/js/translated/part.js:3376 #: templates/js/translated/pricing.js:381 #: templates/js/translated/pricing.js:474 #: templates/js/translated/pricing.js:522 #: templates/js/translated/pricing.js:616 -#: templates/js/translated/purchase_order.js:754 -#: templates/js/translated/purchase_order.js:1922 -#: templates/js/translated/purchase_order.js:2141 -#: templates/js/translated/sales_order.js:317 -#: templates/js/translated/sales_order.js:1235 -#: templates/js/translated/sales_order.js:1554 -#: templates/js/translated/sales_order.js:1644 -#: templates/js/translated/sales_order.js:1734 -#: templates/js/translated/sales_order.js:1860 +#: templates/js/translated/purchase_order.js:737 +#: templates/js/translated/purchase_order.js:1906 +#: templates/js/translated/purchase_order.js:2125 +#: templates/js/translated/sales_order.js:1201 +#: templates/js/translated/sales_order.js:1520 +#: templates/js/translated/sales_order.js:1625 +#: templates/js/translated/sales_order.js:1715 +#: templates/js/translated/sales_order.js:1841 #: templates/js/translated/stock.js:570 templates/js/translated/stock.js:708 -#: templates/js/translated/stock.js:879 templates/js/translated/stock.js:3105 -#: templates/js/translated/stock.js:3188 +#: templates/js/translated/stock.js:879 templates/js/translated/stock.js:3106 +#: templates/js/translated/stock.js:3189 msgid "Quantity" msgstr "数量" -#: build/models.py:1505 +#: build/models.py:1522 msgid "Required quantity for build order" msgstr "" -#: build/models.py:1585 +#: build/models.py:1602 msgid "Build item must specify a build output, as master part is marked as trackable" msgstr "" -#: build/models.py:1594 +#: build/models.py:1611 #, python-brace-format msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgstr "" -#: build/models.py:1604 order/models.py:1992 +#: build/models.py:1628 order/models.py:2025 msgid "Stock item is over-allocated" msgstr "" -#: build/models.py:1610 order/models.py:1995 +#: build/models.py:1634 order/models.py:2028 msgid "Allocation quantity must be greater than zero" msgstr "" -#: build/models.py:1616 +#: build/models.py:1640 msgid "Quantity must be 1 for serialized stock" msgstr "" -#: build/models.py:1675 +#: build/models.py:1699 msgid "Selected stock item does not match BOM line" msgstr "" -#: build/models.py:1747 build/serializers.py:895 order/serializers.py:1297 -#: order/serializers.py:1318 stock/models.py:376 stock/serializers.py:93 -#: stock/serializers.py:763 stock/serializers.py:1281 stock/serializers.py:1393 -#: stock/templates/stock/item_base.html:10 -#: stock/templates/stock/item_base.html:23 -#: stock/templates/stock/item_base.html:194 -#: templates/js/translated/build.js:1918 -#: templates/js/translated/sales_order.js:301 -#: templates/js/translated/sales_order.js:1234 -#: templates/js/translated/sales_order.js:1535 -#: templates/js/translated/sales_order.js:1540 -#: templates/js/translated/sales_order.js:1641 -#: templates/js/translated/sales_order.js:1728 +#: build/models.py:1774 build/serializers.py:939 order/serializers.py:1423 +#: order/serializers.py:1444 +#: report/templates/report/inventree_sales_order_shipment_report.html:29 +#: stock/models.py:382 stock/serializers.py:94 stock/serializers.py:794 +#: stock/serializers.py:1312 stock/serializers.py:1424 +#: stock/templates/stock/item_base.html:11 +#: stock/templates/stock/item_base.html:24 +#: stock/templates/stock/item_base.html:191 +#: templates/js/translated/build.js:1921 +#: templates/js/translated/sales_order.js:1200 +#: templates/js/translated/sales_order.js:1501 +#: templates/js/translated/sales_order.js:1506 +#: templates/js/translated/sales_order.js:1622 +#: templates/js/translated/sales_order.js:1709 #: templates/js/translated/stock.js:683 templates/js/translated/stock.js:849 -#: templates/js/translated/stock.js:3061 +#: templates/js/translated/stock.js:3062 msgid "Stock Item" msgstr "在庫商品" -#: build/models.py:1748 +#: build/models.py:1775 msgid "Source stock item" msgstr "" -#: build/models.py:1761 +#: build/models.py:1788 msgid "Stock quantity to allocate to build" msgstr "" -#: build/models.py:1769 +#: build/models.py:1796 msgid "Install into" msgstr "" -#: build/models.py:1770 +#: build/models.py:1797 msgid "Destination stock item" msgstr "" -#: build/serializers.py:91 +#: build/serializers.py:108 msgid "Build Level" msgstr "" -#: build/serializers.py:99 build/serializers.py:1190 build/serializers.py:1279 -#: part/admin.py:41 part/admin.py:408 part/models.py:4102 part/stocktake.py:219 -#: stock/admin.py:156 +#: build/serializers.py:116 build/serializers.py:1235 build/serializers.py:1331 +#: part/admin.py:41 part/admin.py:408 part/models.py:4160 part/stocktake.py:219 +#: stock/admin.py:157 msgid "Part Name" msgstr "" -#: build/serializers.py:111 +#: build/serializers.py:128 msgid "Project Code Label" msgstr "" -#: build/serializers.py:172 build/serializers.py:924 -#: templates/js/translated/build.js:1042 templates/js/translated/build.js:1495 +#: build/serializers.py:134 +msgid "Create Child Builds" +msgstr "" + +#: build/serializers.py:135 +msgid "Automatically generate child build orders" +msgstr "" + +#: build/serializers.py:219 build/serializers.py:968 +#: templates/js/translated/build.js:1045 templates/js/translated/build.js:1498 msgid "Build Output" msgstr "" -#: build/serializers.py:184 +#: build/serializers.py:231 msgid "Build output does not match the parent build" msgstr "" -#: build/serializers.py:188 +#: build/serializers.py:235 msgid "Output part does not match BuildOrder part" msgstr "" -#: build/serializers.py:192 +#: build/serializers.py:239 msgid "This build output has already been completed" msgstr "" -#: build/serializers.py:203 +#: build/serializers.py:250 msgid "This build output is not fully allocated" msgstr "" -#: build/serializers.py:223 build/serializers.py:270 +#: build/serializers.py:270 build/serializers.py:317 msgid "Enter quantity for build output" msgstr "" -#: build/serializers.py:291 +#: build/serializers.py:338 msgid "Integer quantity required for trackable parts" msgstr "" -#: build/serializers.py:294 +#: build/serializers.py:341 msgid "Integer quantity required, as the bill of materials contains trackable parts" msgstr "" -#: build/serializers.py:309 order/serializers.py:678 order/serializers.py:1464 -#: stock/serializers.py:680 templates/js/translated/purchase_order.js:1154 +#: build/serializers.py:356 order/serializers.py:763 order/serializers.py:1590 +#: stock/serializers.py:707 templates/js/translated/purchase_order.js:1137 #: templates/js/translated/stock.js:373 templates/js/translated/stock.js:571 msgid "Serial Numbers" msgstr "シリアル番号" -#: build/serializers.py:310 +#: build/serializers.py:357 msgid "Enter serial numbers for build outputs" msgstr "" -#: build/serializers.py:315 build/serializers.py:456 build/serializers.py:528 -#: order/serializers.py:654 order/serializers.py:778 order/serializers.py:1781 -#: part/serializers.py:1212 stock/serializers.py:102 stock/serializers.py:691 -#: stock/serializers.py:851 stock/serializers.py:977 stock/serializers.py:1425 -#: stock/serializers.py:1681 stock/templates/stock/item_base.html:394 +#: build/serializers.py:362 build/serializers.py:500 build/serializers.py:572 +#: order/serializers.py:739 order/serializers.py:880 order/serializers.py:1933 +#: part/serializers.py:1265 stock/serializers.py:103 stock/serializers.py:718 +#: stock/serializers.py:882 stock/serializers.py:1008 stock/serializers.py:1456 +#: stock/serializers.py:1712 stock/templates/stock/item_base.html:391 #: templates/js/translated/barcode.js:578 -#: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1032 -#: templates/js/translated/build.js:1174 templates/js/translated/build.js:2544 -#: templates/js/translated/purchase_order.js:1210 -#: templates/js/translated/purchase_order.js:1320 -#: templates/js/translated/sales_order.js:1547 -#: templates/js/translated/sales_order.js:1655 -#: templates/js/translated/sales_order.js:1663 -#: templates/js/translated/sales_order.js:1742 +#: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1035 +#: templates/js/translated/build.js:1177 templates/js/translated/build.js:2551 +#: templates/js/translated/purchase_order.js:1193 +#: templates/js/translated/purchase_order.js:1303 +#: templates/js/translated/sales_order.js:1513 +#: templates/js/translated/sales_order.js:1636 +#: templates/js/translated/sales_order.js:1644 +#: templates/js/translated/sales_order.js:1723 #: templates/js/translated/stock.js:684 templates/js/translated/stock.js:850 -#: templates/js/translated/stock.js:1067 templates/js/translated/stock.js:2286 -#: templates/js/translated/stock.js:2955 +#: templates/js/translated/stock.js:1067 templates/js/translated/stock.js:2287 +#: templates/js/translated/stock.js:2956 msgid "Location" msgstr "" -#: build/serializers.py:316 +#: build/serializers.py:363 msgid "Stock location for build output" msgstr "" -#: build/serializers.py:330 +#: build/serializers.py:377 msgid "Auto Allocate Serial Numbers" msgstr "" -#: build/serializers.py:331 +#: build/serializers.py:378 msgid "Automatically allocate required items with matching serial numbers" msgstr "" -#: build/serializers.py:346 -msgid "Serial numbers must be provided for trackable parts" -msgstr "" - -#: build/serializers.py:371 stock/api.py:1031 +#: build/serializers.py:415 order/serializers.py:858 stock/api.py:1017 +#: stock/models.py:1632 msgid "The following serial numbers already exist or are invalid" msgstr "" -#: build/serializers.py:418 build/serializers.py:480 build/serializers.py:569 +#: build/serializers.py:462 build/serializers.py:524 build/serializers.py:613 msgid "A list of build outputs must be provided" msgstr "" -#: build/serializers.py:457 +#: build/serializers.py:501 msgid "Stock location for scrapped outputs" msgstr "" -#: build/serializers.py:463 +#: build/serializers.py:507 msgid "Discard Allocations" msgstr "" -#: build/serializers.py:464 +#: build/serializers.py:508 msgid "Discard any stock allocations for scrapped outputs" msgstr "" -#: build/serializers.py:469 +#: build/serializers.py:513 msgid "Reason for scrapping build output(s)" msgstr "" -#: build/serializers.py:529 +#: build/serializers.py:573 msgid "Location for completed build outputs" msgstr "" -#: build/serializers.py:535 build/templates/build/build_base.html:159 -#: build/templates/build/detail.html:62 order/models.py:476 -#: order/models.py:1002 order/models.py:2159 order/serializers.py:686 -#: stock/admin.py:164 stock/serializers.py:1028 stock/serializers.py:1569 -#: stock/templates/stock/item_base.html:427 -#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2363 -#: templates/js/translated/purchase_order.js:1371 -#: templates/js/translated/purchase_order.js:1792 +#: build/serializers.py:579 build/templates/build/build_base.html:160 +#: build/templates/build/detail.html:62 order/models.py:488 +#: order/models.py:1029 order/models.py:2198 order/serializers.py:771 +#: stock/admin.py:165 stock/serializers.py:581 stock/serializers.py:1059 +#: stock/serializers.py:1600 stock/templates/stock/item_base.html:424 +#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2366 +#: templates/js/translated/purchase_order.js:1354 +#: templates/js/translated/purchase_order.js:1776 #: templates/js/translated/return_order.js:330 -#: templates/js/translated/sales_order.js:855 -#: templates/js/translated/stock.js:2261 templates/js/translated/stock.js:3079 -#: templates/js/translated/stock.js:3204 +#: templates/js/translated/sales_order.js:814 +#: templates/js/translated/stock.js:2262 templates/js/translated/stock.js:3080 +#: templates/js/translated/stock.js:3205 msgid "Status" msgstr "ステータス" -#: build/serializers.py:541 +#: build/serializers.py:585 msgid "Accept Incomplete Allocation" msgstr "" -#: build/serializers.py:542 +#: build/serializers.py:586 msgid "Complete outputs if stock has not been fully allocated" msgstr "" -#: build/serializers.py:654 +#: build/serializers.py:698 msgid "Consume Allocated Stock" msgstr "" -#: build/serializers.py:655 +#: build/serializers.py:699 msgid "Consume any stock which has already been allocated to this build" msgstr "" -#: build/serializers.py:661 +#: build/serializers.py:705 msgid "Remove Incomplete Outputs" msgstr "" -#: build/serializers.py:662 +#: build/serializers.py:706 msgid "Delete any build outputs which have not been completed" msgstr "" -#: build/serializers.py:689 +#: build/serializers.py:733 msgid "Not permitted" msgstr "" -#: build/serializers.py:690 +#: build/serializers.py:734 msgid "Accept as consumed by this build order" msgstr "" -#: build/serializers.py:691 +#: build/serializers.py:735 msgid "Deallocate before completing this build order" msgstr "" -#: build/serializers.py:721 +#: build/serializers.py:765 msgid "Overallocated Stock" msgstr "" -#: build/serializers.py:723 +#: build/serializers.py:767 msgid "How do you want to handle extra stock items assigned to the build order" msgstr "" -#: build/serializers.py:733 +#: build/serializers.py:777 msgid "Some stock items have been overallocated" msgstr "" -#: build/serializers.py:738 +#: build/serializers.py:782 msgid "Accept Unallocated" msgstr "" -#: build/serializers.py:739 +#: build/serializers.py:783 msgid "Accept that stock items have not been fully allocated to this build order" msgstr "" -#: build/serializers.py:749 templates/js/translated/build.js:316 +#: build/serializers.py:793 templates/js/translated/build.js:319 msgid "Required stock has not been fully allocated" msgstr "" -#: build/serializers.py:754 order/serializers.py:345 order/serializers.py:1365 +#: build/serializers.py:798 order/serializers.py:430 order/serializers.py:1491 msgid "Accept Incomplete" msgstr "" -#: build/serializers.py:755 +#: build/serializers.py:799 msgid "Accept that the required number of build outputs have not been completed" msgstr "" -#: build/serializers.py:765 templates/js/translated/build.js:320 +#: build/serializers.py:809 templates/js/translated/build.js:323 msgid "Required build quantity has not been completed" msgstr "" -#: build/serializers.py:774 +#: build/serializers.py:818 msgid "Build order has open child build orders" msgstr "" -#: build/serializers.py:777 +#: build/serializers.py:821 msgid "Build order must be in production state" msgstr "" -#: build/serializers.py:780 templates/js/translated/build.js:304 +#: build/serializers.py:824 templates/js/translated/build.js:307 msgid "Build order has incomplete outputs" msgstr "" -#: build/serializers.py:818 +#: build/serializers.py:862 msgid "Build Line" msgstr "組立ライン" -#: build/serializers.py:828 +#: build/serializers.py:872 msgid "Build output" msgstr "" -#: build/serializers.py:836 +#: build/serializers.py:880 msgid "Build output must point to the same build" msgstr "" -#: build/serializers.py:872 +#: build/serializers.py:916 msgid "Build Line Item" msgstr "" -#: build/serializers.py:886 +#: build/serializers.py:930 msgid "bom_item.part must point to the same part as the build order" msgstr "" -#: build/serializers.py:901 stock/serializers.py:1294 +#: build/serializers.py:945 stock/serializers.py:1325 msgid "Item must be in stock" msgstr "" -#: build/serializers.py:949 order/serializers.py:1351 +#: build/serializers.py:993 order/serializers.py:1477 #, python-brace-format msgid "Available quantity ({q}) exceeded" msgstr "" -#: build/serializers.py:955 +#: build/serializers.py:999 msgid "Build output must be specified for allocation of tracked parts" msgstr "" -#: build/serializers.py:962 +#: build/serializers.py:1006 msgid "Build output cannot be specified for allocation of untracked parts" msgstr "" -#: build/serializers.py:986 order/serializers.py:1610 +#: build/serializers.py:1030 order/serializers.py:1750 msgid "Allocation items must be provided" msgstr "" -#: build/serializers.py:1049 +#: build/serializers.py:1093 msgid "Stock location where parts are to be sourced (leave blank to take from any location)" msgstr "" -#: build/serializers.py:1057 +#: build/serializers.py:1101 msgid "Exclude Location" msgstr "" -#: build/serializers.py:1058 +#: build/serializers.py:1102 msgid "Exclude stock items from this selected location" msgstr "" -#: build/serializers.py:1063 +#: build/serializers.py:1107 msgid "Interchangeable Stock" msgstr "" -#: build/serializers.py:1064 +#: build/serializers.py:1108 msgid "Stock items in multiple locations can be used interchangeably" msgstr "" -#: build/serializers.py:1069 +#: build/serializers.py:1113 msgid "Substitute Stock" msgstr "" -#: build/serializers.py:1070 +#: build/serializers.py:1114 msgid "Allow allocation of substitute parts" msgstr "" -#: build/serializers.py:1075 +#: build/serializers.py:1119 msgid "Optional Items" msgstr "" -#: build/serializers.py:1076 +#: build/serializers.py:1120 msgid "Allocate optional BOM items to build order" msgstr "" -#: build/serializers.py:1098 +#: build/serializers.py:1143 msgid "Failed to start auto-allocation task" msgstr "" -#: build/serializers.py:1181 +#: build/serializers.py:1226 stock/serializers.py:585 msgid "Supplier Part Number" msgstr "" -#: build/serializers.py:1182 company/models.py:506 +#: build/serializers.py:1227 company/models.py:503 stock/serializers.py:591 msgid "Manufacturer Part Number" msgstr "" -#: build/serializers.py:1183 stock/admin.py:53 stock/admin.py:175 -#: stock/serializers.py:457 +#: build/serializers.py:1228 stock/admin.py:53 stock/admin.py:176 +#: stock/serializers.py:467 msgid "Location Name" msgstr "" -#: build/serializers.py:1184 +#: build/serializers.py:1229 build/serializers.py:1327 msgid "Build Reference" msgstr "" -#: build/serializers.py:1185 +#: build/serializers.py:1230 msgid "BOM Reference" msgstr "" -#: build/serializers.py:1186 company/models.py:852 -#: company/templates/company/supplier_part.html:160 order/serializers.py:690 -#: stock/admin.py:228 stock/models.py:818 stock/serializers.py:1579 -#: stock/templates/stock/item_base.html:240 -#: templates/js/translated/company.js:1646 -#: templates/js/translated/purchase_order.js:1169 -#: templates/js/translated/purchase_order.js:1332 +#: build/serializers.py:1231 company/models.py:849 +#: company/templates/company/supplier_part.html:161 order/serializers.py:775 +#: stock/admin.py:229 stock/models.py:895 stock/serializers.py:1610 +#: stock/templates/stock/item_base.html:237 +#: templates/js/translated/company.js:1647 +#: templates/js/translated/purchase_order.js:1152 +#: templates/js/translated/purchase_order.js:1315 #: templates/js/translated/stock.js:1214 templates/js/translated/stock.js:1246 -#: templates/js/translated/stock.js:2509 +#: templates/js/translated/stock.js:2510 msgid "Packaging" msgstr "" -#: build/serializers.py:1189 part/admin.py:39 part/admin.py:398 -#: part/models.py:4101 part/stocktake.py:218 stock/admin.py:152 +#: build/serializers.py:1234 part/admin.py:39 part/admin.py:398 +#: part/models.py:4159 part/stocktake.py:218 stock/admin.py:153 msgid "Part ID" msgstr "" -#: build/serializers.py:1191 build/serializers.py:1280 part/admin.py:402 -#: part/models.py:4103 +#: build/serializers.py:1236 build/serializers.py:1332 part/admin.py:402 +#: part/models.py:4161 msgid "Part IPN" msgstr "" -#: build/serializers.py:1192 build/serializers.py:1282 part/admin.py:45 +#: build/serializers.py:1237 build/serializers.py:1334 part/admin.py:45 #: part/stocktake.py:220 msgid "Part Description" msgstr "" -#: build/serializers.py:1195 +#: build/serializers.py:1240 msgid "BOM Part ID" msgstr "" -#: build/serializers.py:1196 +#: build/serializers.py:1241 msgid "BOM Part Name" msgstr "" -#: build/serializers.py:1199 +#: build/serializers.py:1244 #: report/templates/report/inventree_return_order_report.html:25 -#: report/templates/report/inventree_test_report.html:88 stock/models.py:845 -#: stock/serializers.py:151 stock/templates/stock/item_base.html:311 -#: templates/js/translated/build.js:520 templates/js/translated/build.js:1540 -#: templates/js/translated/build.js:2527 -#: templates/js/translated/model_renderers.js:231 +#: report/templates/report/inventree_sales_order_shipment_report.html:45 +#: report/templates/report/inventree_test_report.html:88 stock/models.py:922 +#: stock/serializers.py:152 stock/templates/stock/item_base.html:308 +#: templates/js/translated/build.js:523 templates/js/translated/build.js:1543 +#: templates/js/translated/build.js:2534 +#: templates/js/translated/model_renderers.js:234 #: templates/js/translated/return_order.js:539 #: templates/js/translated/return_order.js:722 -#: templates/js/translated/sales_order.js:315 -#: templates/js/translated/sales_order.js:1647 -#: templates/js/translated/sales_order.js:1732 +#: templates/js/translated/sales_order.js:1628 +#: templates/js/translated/sales_order.js:1713 #: templates/js/translated/stock.js:602 msgid "Serial Number" msgstr "シリアル番号" -#: build/serializers.py:1212 stock/serializers.py:593 -#: templates/js/translated/build.js:1017 templates/js/translated/build.js:1164 -#: templates/js/translated/build.js:2516 +#: build/serializers.py:1257 stock/serializers.py:620 +#: templates/js/translated/build.js:1020 templates/js/translated/build.js:1167 +#: templates/js/translated/build.js:2523 msgid "Allocated Quantity" msgstr "" -#: build/serializers.py:1213 stock/templates/stock/item_base.html:340 +#: build/serializers.py:1258 stock/templates/stock/item_base.html:337 msgid "Available Quantity" msgstr "" -#: build/serializers.py:1283 +#: build/serializers.py:1335 msgid "Part Category ID" msgstr "" -#: build/serializers.py:1284 +#: build/serializers.py:1336 msgid "Part Category Name" msgstr "" -#: build/serializers.py:1291 common/models.py:1513 part/admin.py:113 -#: part/models.py:1166 templates/js/translated/table_filters.js:150 +#: build/serializers.py:1345 common/models.py:1582 part/admin.py:113 +#: part/models.py:1227 templates/js/translated/build.js:2738 +#: templates/js/translated/table_filters.js:150 #: templates/js/translated/table_filters.js:230 #: templates/js/translated/table_filters.js:783 msgid "Trackable" msgstr "追跡可能" -#: build/serializers.py:1292 +#: build/serializers.py:1346 msgid "Inherited" msgstr "" -#: build/serializers.py:1293 part/models.py:4313 +#: build/serializers.py:1347 part/models.py:4370 #: part/templates/part/upload_bom.html:56 templates/js/translated/bom.js:1046 -#: templates/js/translated/build.js:2711 +#: templates/js/translated/build.js:2720 msgid "Allow Variants" msgstr "" -#: build/serializers.py:1297 part/models.py:4110 part/models.py:4584 +#: build/serializers.py:1351 part/models.py:4168 part/models.py:4646 #: stock/api.py:794 msgid "BOM Item" msgstr "" -#: build/serializers.py:1306 build/templates/build/detail.html:236 +#: build/serializers.py:1370 build/templates/build/detail.html:236 #: build/templates/build/sidebar.html:16 templates/js/translated/index.js:130 msgid "Allocated Stock" msgstr "" -#: build/serializers.py:1311 order/serializers.py:1175 part/admin.py:132 -#: part/bom.py:181 part/serializers.py:899 part/serializers.py:1602 -#: part/templates/part/part_base.html:210 templates/js/translated/bom.js:1208 -#: templates/js/translated/build.js:2804 templates/js/translated/part.js:712 +#: build/serializers.py:1375 order/serializers.py:1209 part/admin.py:132 +#: part/bom.py:186 part/serializers.py:951 part/serializers.py:1660 +#: part/templates/part/part_base.html:211 templates/js/translated/bom.js:1208 +#: templates/js/translated/build.js:2822 templates/js/translated/part.js:712 #: templates/js/translated/part.js:2155 #: templates/js/translated/table_filters.js:177 msgid "On Order" msgstr "" -#: build/serializers.py:1316 order/serializers.py:1176 part/serializers.py:1604 -#: templates/js/translated/build.js:2808 +#: build/serializers.py:1380 order/serializers.py:1210 part/serializers.py:1662 +#: templates/js/translated/build.js:2826 #: templates/js/translated/table_filters.js:367 msgid "In Production" msgstr "" -#: build/serializers.py:1321 part/bom.py:180 part/serializers.py:1629 -#: part/templates/part/part_base.html:192 -#: templates/js/translated/sales_order.js:1929 -msgid "Available Stock" -msgstr "" - -#: build/serializers.py:1325 -msgid "Available Substitute Stock" -msgstr "" - -#: build/serializers.py:1326 -msgid "Available Variant Stock" -msgstr "" - -#: build/serializers.py:1327 -msgid "Total Available Stock" -msgstr "" - -#: build/serializers.py:1328 part/serializers.py:906 +#: build/serializers.py:1384 part/serializers.py:958 msgid "External Stock" msgstr "" -#: build/status_codes.py:11 generic/states/tests.py:17 order/status_codes.py:12 -#: order/status_codes.py:42 order/status_codes.py:74 order/status_codes.py:98 +#: build/serializers.py:1385 part/bom.py:185 part/serializers.py:1687 +#: part/templates/part/part_base.html:193 +#: templates/js/translated/sales_order.js:1910 +msgid "Available Stock" +msgstr "" + +#: build/serializers.py:1386 +msgid "Available Substitute Stock" +msgstr "" + +#: build/serializers.py:1387 +msgid "Available Variant Stock" +msgstr "" + +#: build/status_codes.py:11 generic/states/tests.py:21 +#: generic/states/tests.py:131 order/status_codes.py:12 +#: order/status_codes.py:44 order/status_codes.py:76 order/status_codes.py:102 #: templates/js/translated/table_filters.js:601 msgid "Pending" msgstr "処理待ち" @@ -1722,21 +1750,21 @@ msgstr "処理待ち" msgid "Production" msgstr "生産" -#: build/status_codes.py:13 order/status_codes.py:14 order/status_codes.py:49 -#: order/status_codes.py:79 +#: build/status_codes.py:13 order/status_codes.py:14 order/status_codes.py:51 +#: order/status_codes.py:81 msgid "On Hold" msgstr "" -#: build/status_codes.py:14 order/status_codes.py:16 order/status_codes.py:51 -#: order/status_codes.py:82 +#: build/status_codes.py:14 order/status_codes.py:16 order/status_codes.py:53 +#: order/status_codes.py:84 msgid "Cancelled" msgstr "キャンセル済" -#: build/status_codes.py:15 generic/states/tests.py:19 importer/models.py:509 -#: importer/status_codes.py:19 order/status_codes.py:15 -#: order/status_codes.py:50 order/status_codes.py:81 -#: order/templates/order/order_base.html:163 -#: order/templates/order/sales_order_base.html:168 report/models.py:443 +#: build/status_codes.py:15 generic/states/tests.py:23 importer/models.py:518 +#: importer/status_codes.py:27 order/status_codes.py:15 +#: order/status_codes.py:52 order/status_codes.py:83 +#: order/templates/order/order_base.html:172 +#: order/templates/order/sales_order_base.html:169 report/models.py:451 msgid "Complete" msgstr "完了" @@ -1744,165 +1772,162 @@ msgstr "完了" msgid "Stock required for build order" msgstr "" -#: build/tasks.py:201 +#: build/tasks.py:260 msgid "Overdue Build Order" msgstr "" -#: build/tasks.py:206 +#: build/tasks.py:265 #, python-brace-format msgid "Build order {bo} is now overdue" msgstr "" -#: build/templates/build/build_base.html:18 +#: build/templates/build/build_base.html:19 msgid "Part thumbnail" msgstr "" -#: build/templates/build/build_base.html:38 -#: company/templates/company/supplier_part.html:35 -#: order/templates/order/order_base.html:29 -#: order/templates/order/return_order_base.html:38 -#: order/templates/order/sales_order_base.html:38 -#: part/templates/part/part_base.html:41 -#: stock/templates/stock/item_base.html:40 -#: stock/templates/stock/location.html:52 +#: build/templates/build/build_base.html:39 +#: company/templates/company/supplier_part.html:36 +#: order/templates/order/order_base.html:30 +#: order/templates/order/return_order_base.html:39 +#: order/templates/order/sales_order_base.html:39 +#: part/templates/part/part_base.html:42 +#: stock/templates/stock/item_base.html:41 +#: stock/templates/stock/location.html:53 #: templates/js/translated/filters.js:338 msgid "Barcode actions" msgstr "" -#: build/templates/build/build_base.html:42 -#: company/templates/company/supplier_part.html:39 -#: order/templates/order/order_base.html:33 -#: order/templates/order/return_order_base.html:42 -#: order/templates/order/sales_order_base.html:42 -#: part/templates/part/part_base.html:44 -#: stock/templates/stock/item_base.html:44 -#: stock/templates/stock/location.html:54 templates/qr_button.html:1 +#: build/templates/build/build_base.html:43 +#: company/templates/company/supplier_part.html:40 +#: order/templates/order/order_base.html:34 +#: order/templates/order/return_order_base.html:43 +#: order/templates/order/sales_order_base.html:43 +#: part/templates/part/part_base.html:45 +#: stock/templates/stock/item_base.html:45 +#: stock/templates/stock/location.html:55 templates/qr_button.html:1 msgid "Show QR Code" msgstr "" -#: build/templates/build/build_base.html:45 -#: company/templates/company/supplier_part.html:41 -#: order/templates/order/order_base.html:36 -#: order/templates/order/return_order_base.html:45 -#: order/templates/order/sales_order_base.html:45 -#: part/templates/part/part_base.html:47 -#: stock/templates/stock/item_base.html:47 -#: stock/templates/stock/location.html:56 +#: build/templates/build/build_base.html:46 +#: company/templates/company/supplier_part.html:42 +#: order/templates/order/order_base.html:37 +#: order/templates/order/return_order_base.html:46 +#: order/templates/order/sales_order_base.html:46 +#: part/templates/part/part_base.html:48 +#: stock/templates/stock/item_base.html:48 +#: stock/templates/stock/location.html:57 #: templates/js/translated/barcode.js:527 #: templates/js/translated/barcode.js:532 msgid "Unlink Barcode" msgstr "" -#: build/templates/build/build_base.html:47 -#: company/templates/company/supplier_part.html:43 -#: order/templates/order/order_base.html:38 -#: order/templates/order/return_order_base.html:47 -#: order/templates/order/sales_order_base.html:47 -#: part/templates/part/part_base.html:49 -#: stock/templates/stock/item_base.html:49 -#: stock/templates/stock/location.html:58 +#: build/templates/build/build_base.html:48 +#: company/templates/company/supplier_part.html:44 +#: order/templates/order/order_base.html:39 +#: order/templates/order/return_order_base.html:48 +#: order/templates/order/sales_order_base.html:48 +#: part/templates/part/part_base.html:50 +#: stock/templates/stock/item_base.html:50 +#: stock/templates/stock/location.html:59 msgid "Link Barcode" msgstr "" -#: build/templates/build/build_base.html:56 -#: order/templates/order/order_base.html:46 -#: order/templates/order/return_order_base.html:55 -#: order/templates/order/sales_order_base.html:55 +#: build/templates/build/build_base.html:57 +#: order/templates/order/order_base.html:47 +#: order/templates/order/return_order_base.html:56 +#: order/templates/order/sales_order_base.html:56 msgid "Print actions" msgstr "" -#: build/templates/build/build_base.html:60 +#: build/templates/build/build_base.html:61 msgid "Print build order report" msgstr "" -#: build/templates/build/build_base.html:67 +#: build/templates/build/build_base.html:68 msgid "Build actions" msgstr "" -#: build/templates/build/build_base.html:71 +#: build/templates/build/build_base.html:72 msgid "Edit Build" msgstr "組立を編集" -#: build/templates/build/build_base.html:73 +#: build/templates/build/build_base.html:74 msgid "Duplicate Build" msgstr "" -#: build/templates/build/build_base.html:76 +#: build/templates/build/build_base.html:77 msgid "Hold Build" msgstr "" -#: build/templates/build/build_base.html:79 +#: build/templates/build/build_base.html:80 msgid "Cancel Build" msgstr "組立をキャンセル" -#: build/templates/build/build_base.html:82 +#: build/templates/build/build_base.html:83 msgid "Delete Build" msgstr "組立を削除" -#: build/templates/build/build_base.html:87 -msgid "Isueue Build" -msgstr "" - #: build/templates/build/build_base.html:88 +#: build/templates/build/build_base.html:89 msgid "Issue Build" msgstr "" -#: build/templates/build/build_base.html:91 #: build/templates/build/build_base.html:92 +#: build/templates/build/build_base.html:93 msgid "Complete Build" msgstr "" -#: build/templates/build/build_base.html:115 +#: build/templates/build/build_base.html:116 msgid "Build Description" msgstr "" -#: build/templates/build/build_base.html:125 +#: build/templates/build/build_base.html:126 msgid "No build outputs have been created for this build order" msgstr "" -#: build/templates/build/build_base.html:132 +#: build/templates/build/build_base.html:133 msgid "Build Order is ready to mark as completed" msgstr "" -#: build/templates/build/build_base.html:137 +#: build/templates/build/build_base.html:138 msgid "Build Order cannot be completed as outstanding outputs remain" msgstr "" -#: build/templates/build/build_base.html:142 +#: build/templates/build/build_base.html:143 msgid "Required build quantity has not yet been completed" msgstr "" -#: build/templates/build/build_base.html:147 +#: build/templates/build/build_base.html:148 msgid "Stock has not been fully allocated to this Build Order" msgstr "" -#: build/templates/build/build_base.html:168 -#: build/templates/build/detail.html:138 order/models.py:308 -#: order/models.py:1391 order/serializers.py:174 -#: order/templates/order/order_base.html:191 -#: order/templates/order/return_order_base.html:167 -#: order/templates/order/sales_order_base.html:199 +#: build/templates/build/build_base.html:169 +#: build/templates/build/detail.html:138 order/models.py:315 +#: order/models.py:1408 order/serializers.py:254 +#: order/templates/order/order_base.html:200 +#: order/templates/order/return_order_base.html:168 +#: order/templates/order/sales_order_base.html:200 #: report/templates/report/inventree_build_order_report.html:125 -#: templates/js/translated/build.js:2411 templates/js/translated/part.js:1837 -#: templates/js/translated/purchase_order.js:1809 -#: templates/js/translated/purchase_order.js:2217 +#: templates/js/translated/build.js:2414 templates/js/translated/part.js:1837 +#: templates/js/translated/purchase_order.js:1793 +#: templates/js/translated/purchase_order.js:2201 #: templates/js/translated/return_order.js:346 #: templates/js/translated/return_order.js:749 -#: templates/js/translated/sales_order.js:871 -#: templates/js/translated/sales_order.js:1903 +#: templates/js/translated/sales_order.js:830 +#: templates/js/translated/sales_order.js:1884 msgid "Target Date" msgstr "" -#: build/templates/build/build_base.html:173 +#: build/templates/build/build_base.html:174 #, python-format msgid "This build was due on %(target)s" msgstr "" -#: build/templates/build/build_base.html:173 -#: build/templates/build/build_base.html:230 -#: order/templates/order/order_base.html:127 -#: order/templates/order/return_order_base.html:120 -#: order/templates/order/sales_order_base.html:129 +#: build/templates/build/build_base.html:174 +#: build/templates/build/build_base.html:231 +#: order/templates/order/order_base.html:128 +#: order/templates/order/return_order_base.html:121 +#: order/templates/order/sales_order_base.html:130 #: templates/js/translated/table_filters.js:97 #: templates/js/translated/table_filters.js:545 #: templates/js/translated/table_filters.js:629 @@ -1910,49 +1935,50 @@ msgstr "" msgid "Overdue" msgstr "" -#: build/templates/build/build_base.html:185 +#: build/templates/build/build_base.html:186 #: build/templates/build/detail.html:67 build/templates/build/sidebar.html:13 msgid "Completed Outputs" msgstr "" -#: build/templates/build/build_base.html:198 -#: build/templates/build/detail.html:101 order/api.py:1406 order/models.py:892 -#: order/models.py:1650 order/models.py:1765 order/models.py:1924 -#: order/templates/order/sales_order_base.html:9 -#: order/templates/order/sales_order_base.html:28 +#: build/templates/build/build_base.html:199 +#: build/templates/build/detail.html:101 order/api.py:1528 order/models.py:914 +#: order/models.py:1666 order/models.py:1794 order/models.py:1957 +#: order/templates/order/sales_order_base.html:10 +#: order/templates/order/sales_order_base.html:29 #: report/templates/report/inventree_build_order_report.html:135 #: report/templates/report/inventree_sales_order_report.html:14 -#: stock/templates/stock/item_base.html:369 +#: report/templates/report/inventree_sales_order_shipment_report.html:15 +#: stock/templates/stock/item_base.html:366 #: templates/email/overdue_sales_order.html:15 -#: templates/js/translated/pricing.js:929 -#: templates/js/translated/sales_order.js:805 -#: templates/js/translated/sales_order.js:1028 -#: templates/js/translated/stock.js:3008 +#: templates/js/translated/pricing.js:927 +#: templates/js/translated/sales_order.js:764 +#: templates/js/translated/sales_order.js:1001 +#: templates/js/translated/stock.js:3009 msgid "Sales Order" msgstr "" -#: build/templates/build/build_base.html:219 -#: build/templates/build/detail.html:94 templates/js/translated/build.js:2328 +#: build/templates/build/build_base.html:220 +#: build/templates/build/detail.html:94 templates/js/translated/build.js:2331 msgid "Priority" msgstr "" -#: build/templates/build/build_base.html:267 +#: build/templates/build/build_base.html:268 msgid "Issue Build Order" msgstr "" -#: build/templates/build/build_base.html:271 +#: build/templates/build/build_base.html:272 msgid "Issue this Build Order?" msgstr "" -#: build/templates/build/build_base.html:302 +#: build/templates/build/build_base.html:303 msgid "Delete Build Order" msgstr "" -#: build/templates/build/build_base.html:312 +#: build/templates/build/build_base.html:313 msgid "Build Order QR Code" msgstr "" -#: build/templates/build/build_base.html:324 +#: build/templates/build/build_base.html:325 msgid "Link Barcode to Build Order" msgstr "" @@ -1968,8 +1994,9 @@ msgstr "" msgid "Stock can be taken from any available location." msgstr "" -#: build/templates/build/detail.html:49 order/models.py:1532 -#: templates/js/translated/purchase_order.js:2259 +#: build/templates/build/detail.html:49 order/models.py:548 +#: order/models.py:1548 order/templates/order/order_base.html:135 +#: templates/js/translated/purchase_order.js:2243 msgid "Destination" msgstr "" @@ -1981,23 +2008,24 @@ msgstr "" msgid "Allocated Parts" msgstr "" -#: build/templates/build/detail.html:80 stock/admin.py:162 -#: stock/templates/stock/item_base.html:162 -#: templates/js/translated/build.js:1553 -#: templates/js/translated/model_renderers.js:242 -#: templates/js/translated/purchase_order.js:1326 +#: build/templates/build/detail.html:80 +#: report/templates/report/inventree_sales_order_shipment_report.html:47 +#: stock/admin.py:163 stock/templates/stock/item_base.html:159 +#: templates/js/translated/build.js:1556 +#: templates/js/translated/model_renderers.js:245 +#: templates/js/translated/purchase_order.js:1309 #: templates/js/translated/stock.js:1139 templates/js/translated/stock.js:1240 -#: templates/js/translated/stock.js:2275 templates/js/translated/stock.js:3211 +#: templates/js/translated/stock.js:2276 templates/js/translated/stock.js:3212 #: templates/js/translated/table_filters.js:320 #: templates/js/translated/table_filters.js:411 msgid "Batch" msgstr "" #: build/templates/build/detail.html:133 -#: order/templates/order/order_base.html:178 -#: order/templates/order/return_order_base.html:154 -#: order/templates/order/sales_order_base.html:193 -#: templates/js/translated/build.js:2371 +#: order/templates/order/order_base.html:187 +#: order/templates/order/return_order_base.html:155 +#: order/templates/order/sales_order_base.html:194 +#: templates/js/translated/build.js:2374 msgid "Created" msgstr "" @@ -2005,8 +2033,8 @@ msgstr "" msgid "No target date set" msgstr "" -#: build/templates/build/detail.html:149 -#: order/templates/order/sales_order_base.html:209 +#: build/templates/build/detail.html:149 order/api.py:794 +#: order/templates/order/sales_order_base.html:210 #: templates/js/translated/table_filters.js:692 msgid "Completed" msgstr "" @@ -2052,7 +2080,7 @@ msgid "Order required parts" msgstr "注文必須パーツ" #: build/templates/build/detail.html:192 -#: templates/js/translated/purchase_order.js:795 +#: templates/js/translated/purchase_order.js:778 msgid "Order Parts" msgstr "パーツの注文" @@ -2120,7 +2148,7 @@ msgstr "" msgid "Build Order Details" msgstr "" -#: build/templates/build/sidebar.html:8 order/serializers.py:82 +#: build/templates/build/sidebar.html:8 order/serializers.py:113 #: order/templates/order/po_sidebar.html:5 #: order/templates/order/return_order_detail.html:18 #: order/templates/order/so_sidebar.html:5 @@ -2139,43 +2167,38 @@ msgstr "" msgid "Test Statistics" msgstr "" -#: common/api.py:693 +#: common/api.py:725 msgid "Is Link" msgstr "" -#: common/api.py:701 +#: common/api.py:733 msgid "Is File" msgstr "" -#: common/api.py:744 +#: common/api.py:776 msgid "User does not have permission to delete these attachments" msgstr "" -#: common/api.py:761 +#: common/api.py:793 msgid "User does not have permission to delete this attachment" msgstr "" -#: common/currency.py:132 +#: common/currency.py:134 msgid "Invalid currency code" msgstr "" -#: common/currency.py:134 +#: common/currency.py:136 msgid "Duplicate currency code" msgstr "" -#: common/currency.py:139 +#: common/currency.py:141 msgid "No valid currency codes provided" msgstr "" -#: common/currency.py:156 +#: common/currency.py:158 msgid "No plugin" msgstr "" -#: common/files.py:63 -#, python-brace-format -msgid "Unsupported file format: {fmt}" -msgstr "" - #: common/files.py:65 msgid "Error reading file (invalid encoding)" msgstr "" @@ -2192,1883 +2215,2039 @@ msgstr "" msgid "Error reading file (data could be corrupted)" msgstr "" -#: common/forms.py:12 +#: common/forms.py:12 common/forms.py:25 msgid "File" msgstr "ファイル" -#: common/forms.py:12 +#: common/forms.py:12 common/forms.py:26 msgid "Select file to upload" msgstr "" -#: common/forms.py:25 -msgid "{name.title()} File" -msgstr "" - -#: common/forms.py:26 -#, python-brace-format -msgid "Select {name} file to upload" -msgstr "" - -#: common/models.py:86 +#: common/models.py:89 msgid "Updated" msgstr "" -#: common/models.py:87 +#: common/models.py:90 msgid "Timestamp of last update" msgstr "" -#: common/models.py:120 +#: common/models.py:123 msgid "Site URL is locked by configuration" msgstr "" -#: common/models.py:150 +#: common/models.py:153 msgid "Unique project code" msgstr "" -#: common/models.py:157 +#: common/models.py:160 msgid "Project description" msgstr "" -#: common/models.py:166 +#: common/models.py:169 msgid "User or group responsible for this project" msgstr "" -#: common/models.py:783 -msgid "Settings key (must be unique - case insensitive)" +#: common/models.py:783 common/models.py:2236 common/models.py:2613 +msgid "Settings key" msgstr "" #: common/models.py:787 msgid "Settings value" msgstr "" -#: common/models.py:839 +#: common/models.py:842 msgid "Chosen value is not a valid option" msgstr "" -#: common/models.py:855 +#: common/models.py:858 msgid "Value must be a boolean value" msgstr "" -#: common/models.py:863 +#: common/models.py:866 msgid "Value must be an integer value" msgstr "" -#: common/models.py:900 +#: common/models.py:874 +msgid "Value must be a valid number" +msgstr "" + +#: common/models.py:899 +msgid "Value does not pass validation checks" +msgstr "" + +#: common/models.py:921 msgid "Key string must be unique" msgstr "" -#: common/models.py:1132 +#: common/models.py:1189 msgid "No group" msgstr "" -#: common/models.py:1231 +#: common/models.py:1288 msgid "Restart required" msgstr "" -#: common/models.py:1233 +#: common/models.py:1290 msgid "A setting has been changed which requires a server restart" msgstr "" -#: common/models.py:1240 +#: common/models.py:1297 msgid "Pending migrations" msgstr "" -#: common/models.py:1241 +#: common/models.py:1298 msgid "Number of pending database migrations" msgstr "" -#: common/models.py:1246 +#: common/models.py:1303 msgid "Server Instance Name" msgstr "" -#: common/models.py:1248 +#: common/models.py:1305 msgid "String descriptor for the server instance" msgstr "" -#: common/models.py:1252 +#: common/models.py:1309 msgid "Use instance name" msgstr "" -#: common/models.py:1253 +#: common/models.py:1310 msgid "Use the instance name in the title-bar" msgstr "" -#: common/models.py:1258 +#: common/models.py:1315 msgid "Restrict showing `about`" msgstr "" -#: common/models.py:1259 +#: common/models.py:1316 msgid "Show the `about` modal only to superusers" msgstr "" -#: common/models.py:1264 company/models.py:111 company/models.py:112 +#: common/models.py:1321 company/models.py:108 company/models.py:109 msgid "Company name" msgstr "" -#: common/models.py:1265 +#: common/models.py:1322 msgid "Internal company name" msgstr "" -#: common/models.py:1269 +#: common/models.py:1326 msgid "Base URL" msgstr "" -#: common/models.py:1270 +#: common/models.py:1327 msgid "Base URL for server instance" msgstr "" -#: common/models.py:1276 +#: common/models.py:1333 msgid "Default Currency" msgstr "" -#: common/models.py:1277 +#: common/models.py:1334 msgid "Select base currency for pricing calculations" msgstr "" -#: common/models.py:1283 +#: common/models.py:1340 msgid "Supported Currencies" msgstr "" -#: common/models.py:1284 +#: common/models.py:1341 msgid "List of supported currency codes" msgstr "" -#: common/models.py:1290 +#: common/models.py:1347 msgid "Currency Update Interval" msgstr "" -#: common/models.py:1292 +#: common/models.py:1349 msgid "How often to update exchange rates (set to zero to disable)" msgstr "" -#: common/models.py:1295 common/models.py:1351 common/models.py:1364 -#: common/models.py:1372 common/models.py:1381 common/models.py:1390 -#: common/models.py:1627 common/models.py:1649 common/models.py:1764 -#: common/models.py:2146 +#: common/models.py:1352 common/models.py:1408 common/models.py:1421 +#: common/models.py:1429 common/models.py:1438 common/models.py:1447 +#: common/models.py:1696 common/models.py:1718 common/models.py:1819 +#: common/models.py:2208 msgid "days" msgstr "" -#: common/models.py:1299 +#: common/models.py:1356 msgid "Currency Update Plugin" msgstr "" -#: common/models.py:1300 +#: common/models.py:1357 msgid "Currency update plugin to use" msgstr "" -#: common/models.py:1305 +#: common/models.py:1362 msgid "Download from URL" msgstr "" -#: common/models.py:1307 +#: common/models.py:1364 msgid "Allow download of remote images and files from external URL" msgstr "外部URLからの画像ダウンロードを許可する" -#: common/models.py:1313 +#: common/models.py:1370 msgid "Download Size Limit" msgstr "" -#: common/models.py:1314 +#: common/models.py:1371 msgid "Maximum allowable download size for remote image" msgstr "外部URL画像の最大サイズ" -#: common/models.py:1320 +#: common/models.py:1377 msgid "User-agent used to download from URL" msgstr "" -#: common/models.py:1322 +#: common/models.py:1379 msgid "Allow to override the user-agent used to download images and files from external URL (leave blank for the default)" msgstr "" -#: common/models.py:1327 +#: common/models.py:1384 msgid "Strict URL Validation" msgstr "" -#: common/models.py:1328 +#: common/models.py:1385 msgid "Require schema specification when validating URLs" msgstr "" -#: common/models.py:1333 +#: common/models.py:1390 msgid "Require confirm" msgstr "" -#: common/models.py:1334 +#: common/models.py:1391 msgid "Require explicit user confirmation for certain action." msgstr "" -#: common/models.py:1339 +#: common/models.py:1396 msgid "Tree Depth" msgstr "" -#: common/models.py:1341 +#: common/models.py:1398 msgid "Default tree depth for treeview. Deeper levels can be lazy loaded as they are needed." msgstr "" -#: common/models.py:1347 +#: common/models.py:1404 msgid "Update Check Interval" msgstr "" -#: common/models.py:1348 +#: common/models.py:1405 msgid "How often to check for updates (set to zero to disable)" msgstr "" -#: common/models.py:1354 +#: common/models.py:1411 msgid "Automatic Backup" msgstr "" -#: common/models.py:1355 +#: common/models.py:1412 msgid "Enable automatic backup of database and media files" msgstr "" -#: common/models.py:1360 +#: common/models.py:1417 msgid "Auto Backup Interval" msgstr "" -#: common/models.py:1361 +#: common/models.py:1418 msgid "Specify number of days between automated backup events" msgstr "" -#: common/models.py:1367 +#: common/models.py:1424 msgid "Task Deletion Interval" msgstr "" -#: common/models.py:1369 +#: common/models.py:1426 msgid "Background task results will be deleted after specified number of days" msgstr "" -#: common/models.py:1376 +#: common/models.py:1433 msgid "Error Log Deletion Interval" msgstr "" -#: common/models.py:1378 +#: common/models.py:1435 msgid "Error logs will be deleted after specified number of days" msgstr "" -#: common/models.py:1385 +#: common/models.py:1442 msgid "Notification Deletion Interval" msgstr "" -#: common/models.py:1387 +#: common/models.py:1444 msgid "User notifications will be deleted after specified number of days" msgstr "" -#: common/models.py:1394 templates/InvenTree/settings/sidebar.html:31 +#: common/models.py:1451 templates/InvenTree/settings/sidebar.html:31 msgid "Barcode Support" msgstr "" -#: common/models.py:1395 +#: common/models.py:1452 msgid "Enable barcode scanner support in the web interface" msgstr "" -#: common/models.py:1400 +#: common/models.py:1457 +msgid "Store Barcode Results" +msgstr "" + +#: common/models.py:1458 +msgid "Store barcode scan results in the database" +msgstr "" + +#: common/models.py:1463 +msgid "Barcode Scans Maximum Count" +msgstr "" + +#: common/models.py:1464 +msgid "Maximum number of barcode scan results to store" +msgstr "" + +#: common/models.py:1469 msgid "Barcode Input Delay" msgstr "" -#: common/models.py:1401 +#: common/models.py:1470 msgid "Barcode input processing delay time" msgstr "" -#: common/models.py:1407 +#: common/models.py:1476 msgid "Barcode Webcam Support" msgstr "" -#: common/models.py:1408 +#: common/models.py:1477 msgid "Allow barcode scanning via webcam in browser" msgstr "" -#: common/models.py:1413 +#: common/models.py:1482 msgid "Barcode Show Data" msgstr "" -#: common/models.py:1414 +#: common/models.py:1483 msgid "Display barcode data in browser as text" msgstr "" -#: common/models.py:1419 +#: common/models.py:1488 msgid "Barcode Generation Plugin" msgstr "" -#: common/models.py:1420 +#: common/models.py:1489 msgid "Plugin to use for internal barcode data generation" msgstr "" -#: common/models.py:1425 +#: common/models.py:1494 msgid "Part Revisions" msgstr "" -#: common/models.py:1426 +#: common/models.py:1495 msgid "Enable revision field for Part" msgstr "" -#: common/models.py:1431 +#: common/models.py:1500 msgid "Assembly Revision Only" msgstr "" -#: common/models.py:1432 +#: common/models.py:1501 msgid "Only allow revisions for assembly parts" msgstr "" -#: common/models.py:1437 +#: common/models.py:1506 msgid "Allow Deletion from Assembly" msgstr "" -#: common/models.py:1438 +#: common/models.py:1507 msgid "Allow deletion of parts which are used in an assembly" msgstr "" -#: common/models.py:1443 +#: common/models.py:1512 msgid "IPN Regex" msgstr "" -#: common/models.py:1444 +#: common/models.py:1513 msgid "Regular expression pattern for matching Part IPN" msgstr "" -#: common/models.py:1447 +#: common/models.py:1516 msgid "Allow Duplicate IPN" msgstr "" -#: common/models.py:1448 +#: common/models.py:1517 msgid "Allow multiple parts to share the same IPN" msgstr "" -#: common/models.py:1453 +#: common/models.py:1522 msgid "Allow Editing IPN" msgstr "" -#: common/models.py:1454 +#: common/models.py:1523 msgid "Allow changing the IPN value while editing a part" msgstr "" -#: common/models.py:1459 +#: common/models.py:1528 msgid "Copy Part BOM Data" msgstr "" -#: common/models.py:1460 +#: common/models.py:1529 msgid "Copy BOM data by default when duplicating a part" msgstr "" -#: common/models.py:1465 +#: common/models.py:1534 msgid "Copy Part Parameter Data" msgstr "" -#: common/models.py:1466 +#: common/models.py:1535 msgid "Copy parameter data by default when duplicating a part" msgstr "" -#: common/models.py:1471 +#: common/models.py:1540 msgid "Copy Part Test Data" msgstr "" -#: common/models.py:1472 +#: common/models.py:1541 msgid "Copy test data by default when duplicating a part" msgstr "" -#: common/models.py:1477 +#: common/models.py:1546 msgid "Copy Category Parameter Templates" msgstr "" -#: common/models.py:1478 +#: common/models.py:1547 msgid "Copy category parameter templates when creating a part" msgstr "" -#: common/models.py:1483 part/admin.py:108 part/models.py:3945 -#: report/models.py:293 report/models.py:360 report/serializers.py:90 -#: report/serializers.py:131 stock/serializers.py:232 +#: common/models.py:1552 part/admin.py:108 part/models.py:4003 +#: report/models.py:301 report/models.py:368 report/serializers.py:91 +#: report/serializers.py:132 stock/serializers.py:233 #: templates/js/translated/table_filters.js:138 #: templates/js/translated/table_filters.js:775 msgid "Template" msgstr "テンプレート" -#: common/models.py:1484 +#: common/models.py:1553 msgid "Parts are templates by default" msgstr "パーツはデフォルトのテンプレートです" -#: common/models.py:1490 +#: common/models.py:1559 msgid "Parts can be assembled from other components by default" msgstr "パーツはデフォルトで他のコンポーネントから組み立てることができます" -#: common/models.py:1495 part/admin.py:95 part/models.py:1160 -#: part/serializers.py:1596 templates/js/translated/table_filters.js:737 +#: common/models.py:1564 part/admin.py:95 part/models.py:1221 +#: part/serializers.py:1654 templates/js/translated/table_filters.js:737 msgid "Component" msgstr "コンポーネント" -#: common/models.py:1496 +#: common/models.py:1565 msgid "Parts can be used as sub-components by default" msgstr "パーツはデフォルトでサブコンポーネントとして使用できます" -#: common/models.py:1501 part/admin.py:100 part/models.py:1178 +#: common/models.py:1570 part/admin.py:100 part/models.py:1239 msgid "Purchaseable" msgstr "購入可能" -#: common/models.py:1502 +#: common/models.py:1571 msgid "Parts are purchaseable by default" msgstr "パーツはデフォルトで購入可能です" -#: common/models.py:1507 part/admin.py:104 part/models.py:1184 +#: common/models.py:1576 part/admin.py:104 part/models.py:1245 #: templates/js/translated/table_filters.js:763 msgid "Salable" msgstr "販売可能" -#: common/models.py:1508 +#: common/models.py:1577 msgid "Parts are salable by default" msgstr "パーツはデフォルトで販売可能です" -#: common/models.py:1514 +#: common/models.py:1583 msgid "Parts are trackable by default" msgstr "パーツはデフォルトで追跡可能です" -#: common/models.py:1519 part/admin.py:117 part/models.py:1200 -#: part/templates/part/part_base.html:154 +#: common/models.py:1588 part/admin.py:117 part/models.py:1261 +#: part/templates/part/part_base.html:155 #: templates/js/translated/table_filters.js:142 #: templates/js/translated/table_filters.js:787 msgid "Virtual" msgstr "" -#: common/models.py:1520 +#: common/models.py:1589 msgid "Parts are virtual by default" msgstr "" -#: common/models.py:1525 +#: common/models.py:1594 msgid "Show Import in Views" msgstr "" -#: common/models.py:1526 +#: common/models.py:1595 msgid "Display the import wizard in some part views" msgstr "" -#: common/models.py:1531 +#: common/models.py:1600 msgid "Show related parts" msgstr "" -#: common/models.py:1532 +#: common/models.py:1601 msgid "Display related parts for a part" msgstr "" -#: common/models.py:1537 +#: common/models.py:1606 msgid "Initial Stock Data" msgstr "" -#: common/models.py:1538 +#: common/models.py:1607 msgid "Allow creation of initial stock when adding a new part" msgstr "" -#: common/models.py:1543 templates/js/translated/part.js:108 +#: common/models.py:1612 templates/js/translated/part.js:108 msgid "Initial Supplier Data" msgstr "" -#: common/models.py:1545 +#: common/models.py:1614 msgid "Allow creation of initial supplier data when adding a new part" msgstr "" -#: common/models.py:1551 +#: common/models.py:1620 msgid "Part Name Display Format" msgstr "" -#: common/models.py:1552 +#: common/models.py:1621 msgid "Format to display the part name" msgstr "" -#: common/models.py:1558 +#: common/models.py:1627 msgid "Part Category Default Icon" msgstr "" -#: common/models.py:1559 +#: common/models.py:1628 msgid "Part category default icon (empty means no icon)" msgstr "" -#: common/models.py:1564 +#: common/models.py:1633 msgid "Enforce Parameter Units" msgstr "" -#: common/models.py:1566 +#: common/models.py:1635 msgid "If units are provided, parameter values must match the specified units" msgstr "" -#: common/models.py:1572 +#: common/models.py:1641 msgid "Minimum Pricing Decimal Places" msgstr "" -#: common/models.py:1574 +#: common/models.py:1643 msgid "Minimum number of decimal places to display when rendering pricing data" msgstr "" -#: common/models.py:1585 +#: common/models.py:1654 msgid "Maximum Pricing Decimal Places" msgstr "" -#: common/models.py:1587 +#: common/models.py:1656 msgid "Maximum number of decimal places to display when rendering pricing data" msgstr "" -#: common/models.py:1598 +#: common/models.py:1667 msgid "Use Supplier Pricing" msgstr "" -#: common/models.py:1600 +#: common/models.py:1669 msgid "Include supplier price breaks in overall pricing calculations" msgstr "" -#: common/models.py:1606 +#: common/models.py:1675 msgid "Purchase History Override" msgstr "" -#: common/models.py:1608 +#: common/models.py:1677 msgid "Historical purchase order pricing overrides supplier price breaks" msgstr "" -#: common/models.py:1614 +#: common/models.py:1683 msgid "Use Stock Item Pricing" msgstr "" -#: common/models.py:1616 +#: common/models.py:1685 msgid "Use pricing from manually entered stock data for pricing calculations" msgstr "" -#: common/models.py:1622 +#: common/models.py:1691 msgid "Stock Item Pricing Age" msgstr "" -#: common/models.py:1624 +#: common/models.py:1693 msgid "Exclude stock items older than this number of days from pricing calculations" msgstr "" -#: common/models.py:1631 +#: common/models.py:1700 msgid "Use Variant Pricing" msgstr "" -#: common/models.py:1632 +#: common/models.py:1701 msgid "Include variant pricing in overall pricing calculations" msgstr "" -#: common/models.py:1637 +#: common/models.py:1706 msgid "Active Variants Only" msgstr "" -#: common/models.py:1639 +#: common/models.py:1708 msgid "Only use active variant parts for calculating variant pricing" msgstr "" -#: common/models.py:1645 +#: common/models.py:1714 msgid "Pricing Rebuild Interval" msgstr "" -#: common/models.py:1647 +#: common/models.py:1716 msgid "Number of days before part pricing is automatically updated" msgstr "" -#: common/models.py:1654 +#: common/models.py:1723 msgid "Internal Prices" msgstr "" -#: common/models.py:1655 +#: common/models.py:1724 msgid "Enable internal prices for parts" msgstr "" -#: common/models.py:1660 +#: common/models.py:1729 msgid "Internal Price Override" msgstr "" -#: common/models.py:1662 +#: common/models.py:1731 msgid "If available, internal prices override price range calculations" msgstr "" -#: common/models.py:1668 +#: common/models.py:1737 msgid "Enable label printing" msgstr "" -#: common/models.py:1669 +#: common/models.py:1738 msgid "Enable label printing from the web interface" msgstr "" -#: common/models.py:1674 +#: common/models.py:1743 msgid "Label Image DPI" msgstr "" -#: common/models.py:1676 +#: common/models.py:1745 msgid "DPI resolution when generating image files to supply to label printing plugins" msgstr "" -#: common/models.py:1682 +#: common/models.py:1751 msgid "Enable Reports" msgstr "" -#: common/models.py:1683 +#: common/models.py:1752 msgid "Enable generation of reports" msgstr "" -#: common/models.py:1688 templates/stats.html:25 +#: common/models.py:1757 templates/stats.html:25 msgid "Debug Mode" msgstr "デバッグモード" -#: common/models.py:1689 +#: common/models.py:1758 msgid "Generate reports in debug mode (HTML output)" msgstr "" -#: common/models.py:1694 +#: common/models.py:1763 msgid "Log Report Errors" msgstr "" -#: common/models.py:1695 +#: common/models.py:1764 msgid "Log errors which occur when generating reports" msgstr "" -#: common/models.py:1700 plugin/builtin/labels/label_sheet.py:28 -#: report/models.py:301 +#: common/models.py:1769 plugin/builtin/labels/label_sheet.py:28 +#: report/models.py:309 msgid "Page Size" msgstr "" -#: common/models.py:1701 +#: common/models.py:1770 msgid "Default page size for PDF reports" msgstr "" -#: common/models.py:1706 -msgid "Enable Test Reports" -msgstr "" - -#: common/models.py:1707 -msgid "Enable generation of test reports" -msgstr "" - -#: common/models.py:1712 -msgid "Attach Test Reports" -msgstr "" - -#: common/models.py:1714 -msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item" -msgstr "" - -#: common/models.py:1720 +#: common/models.py:1775 msgid "Globally Unique Serials" msgstr "" -#: common/models.py:1721 +#: common/models.py:1776 msgid "Serial numbers for stock items must be globally unique" msgstr "" -#: common/models.py:1726 +#: common/models.py:1781 msgid "Autofill Serial Numbers" msgstr "シリアル番号を自動入力" -#: common/models.py:1727 +#: common/models.py:1782 msgid "Autofill serial numbers in forms" msgstr "" -#: common/models.py:1732 +#: common/models.py:1787 msgid "Delete Depleted Stock" msgstr "" -#: common/models.py:1734 +#: common/models.py:1789 msgid "Determines default behavior when a stock item is depleted" msgstr "" -#: common/models.py:1740 +#: common/models.py:1795 msgid "Batch Code Template" msgstr "" -#: common/models.py:1742 +#: common/models.py:1797 msgid "Template for generating default batch codes for stock items" msgstr "" -#: common/models.py:1747 +#: common/models.py:1802 msgid "Stock Expiry" msgstr "" -#: common/models.py:1748 +#: common/models.py:1803 msgid "Enable stock expiry functionality" msgstr "" -#: common/models.py:1753 +#: common/models.py:1808 msgid "Sell Expired Stock" msgstr "" -#: common/models.py:1754 +#: common/models.py:1809 msgid "Allow sale of expired stock" msgstr "" -#: common/models.py:1759 +#: common/models.py:1814 msgid "Stock Stale Time" msgstr "" -#: common/models.py:1761 +#: common/models.py:1816 msgid "Number of days stock items are considered stale before expiring" msgstr "" -#: common/models.py:1768 +#: common/models.py:1823 msgid "Build Expired Stock" msgstr "" -#: common/models.py:1769 +#: common/models.py:1824 msgid "Allow building with expired stock" msgstr "" -#: common/models.py:1774 +#: common/models.py:1829 msgid "Stock Ownership Control" msgstr "" -#: common/models.py:1775 +#: common/models.py:1830 msgid "Enable ownership control over stock locations and items" msgstr "" -#: common/models.py:1780 +#: common/models.py:1835 msgid "Stock Location Default Icon" msgstr "" -#: common/models.py:1781 +#: common/models.py:1836 msgid "Stock location default icon (empty means no icon)" msgstr "" -#: common/models.py:1786 +#: common/models.py:1841 msgid "Show Installed Stock Items" msgstr "" -#: common/models.py:1787 +#: common/models.py:1842 msgid "Display installed stock items in stock tables" msgstr "" -#: common/models.py:1792 +#: common/models.py:1847 msgid "Check BOM when installing items" msgstr "" -#: common/models.py:1794 +#: common/models.py:1849 msgid "Installed stock items must exist in the BOM for the parent part" msgstr "" -#: common/models.py:1800 +#: common/models.py:1855 msgid "Allow Out of Stock Transfer" msgstr "" -#: common/models.py:1802 +#: common/models.py:1857 msgid "Allow stock items which are not in stock to be transferred between stock locations" msgstr "" -#: common/models.py:1808 +#: common/models.py:1863 msgid "Build Order Reference Pattern" msgstr "" -#: common/models.py:1810 +#: common/models.py:1865 msgid "Required pattern for generating Build Order reference field" msgstr "" -#: common/models.py:1816 common/models.py:1872 common/models.py:1894 -#: common/models.py:1930 +#: common/models.py:1871 common/models.py:1927 common/models.py:1949 +#: common/models.py:1985 msgid "Require Responsible Owner" msgstr "" -#: common/models.py:1817 common/models.py:1873 common/models.py:1895 -#: common/models.py:1931 +#: common/models.py:1872 common/models.py:1928 common/models.py:1950 +#: common/models.py:1986 msgid "A responsible owner must be assigned to each order" msgstr "" -#: common/models.py:1822 +#: common/models.py:1877 msgid "Require Active Part" msgstr "" -#: common/models.py:1823 +#: common/models.py:1878 msgid "Prevent build order creation for inactive parts" msgstr "" -#: common/models.py:1828 +#: common/models.py:1883 msgid "Require Locked Part" msgstr "" -#: common/models.py:1829 +#: common/models.py:1884 msgid "Prevent build order creation for unlocked parts" msgstr "" -#: common/models.py:1834 +#: common/models.py:1889 msgid "Require Valid BOM" msgstr "" -#: common/models.py:1836 +#: common/models.py:1891 msgid "Prevent build order creation unless BOM has been validated" msgstr "" -#: common/models.py:1842 +#: common/models.py:1897 msgid "Require Closed Child Orders" msgstr "" -#: common/models.py:1844 +#: common/models.py:1899 msgid "Prevent build order completion until all child orders are closed" msgstr "" -#: common/models.py:1850 +#: common/models.py:1905 msgid "Block Until Tests Pass" msgstr "" -#: common/models.py:1852 +#: common/models.py:1907 msgid "Prevent build outputs from being completed until all required tests pass" msgstr "" -#: common/models.py:1858 +#: common/models.py:1913 msgid "Enable Return Orders" msgstr "" -#: common/models.py:1859 +#: common/models.py:1914 msgid "Enable return order functionality in the user interface" msgstr "" -#: common/models.py:1864 +#: common/models.py:1919 msgid "Return Order Reference Pattern" msgstr "" -#: common/models.py:1866 +#: common/models.py:1921 msgid "Required pattern for generating Return Order reference field" msgstr "" -#: common/models.py:1878 +#: common/models.py:1933 msgid "Edit Completed Return Orders" msgstr "" -#: common/models.py:1880 +#: common/models.py:1935 msgid "Allow editing of return orders after they have been completed" msgstr "" -#: common/models.py:1886 +#: common/models.py:1941 msgid "Sales Order Reference Pattern" msgstr "" -#: common/models.py:1888 +#: common/models.py:1943 msgid "Required pattern for generating Sales Order reference field" msgstr "" -#: common/models.py:1900 +#: common/models.py:1955 msgid "Sales Order Default Shipment" msgstr "" -#: common/models.py:1901 +#: common/models.py:1956 msgid "Enable creation of default shipment with sales orders" msgstr "" -#: common/models.py:1906 +#: common/models.py:1961 msgid "Edit Completed Sales Orders" msgstr "" -#: common/models.py:1908 +#: common/models.py:1963 msgid "Allow editing of sales orders after they have been shipped or completed" msgstr "" -#: common/models.py:1914 +#: common/models.py:1969 msgid "Mark Shipped Orders as Complete" msgstr "" -#: common/models.py:1916 +#: common/models.py:1971 msgid "Sales orders marked as shipped will automatically be completed, bypassing the \"shipped\" status" msgstr "" -#: common/models.py:1922 +#: common/models.py:1977 msgid "Purchase Order Reference Pattern" msgstr "" -#: common/models.py:1924 +#: common/models.py:1979 msgid "Required pattern for generating Purchase Order reference field" msgstr "" -#: common/models.py:1936 +#: common/models.py:1991 msgid "Edit Completed Purchase Orders" msgstr "" -#: common/models.py:1938 +#: common/models.py:1993 msgid "Allow editing of purchase orders after they have been shipped or completed" msgstr "" -#: common/models.py:1944 +#: common/models.py:1999 msgid "Auto Complete Purchase Orders" msgstr "" -#: common/models.py:1946 +#: common/models.py:2001 msgid "Automatically mark purchase orders as complete when all line items are received" msgstr "" -#: common/models.py:1953 +#: common/models.py:2008 msgid "Enable password forgot" msgstr "" -#: common/models.py:1954 +#: common/models.py:2009 msgid "Enable password forgot function on the login pages" msgstr "" -#: common/models.py:1959 +#: common/models.py:2014 msgid "Enable registration" msgstr "" -#: common/models.py:1960 +#: common/models.py:2015 msgid "Enable self-registration for users on the login pages" msgstr "" -#: common/models.py:1965 +#: common/models.py:2020 msgid "Enable SSO" msgstr "" -#: common/models.py:1966 +#: common/models.py:2021 msgid "Enable SSO on the login pages" msgstr "" -#: common/models.py:1971 +#: common/models.py:2026 msgid "Enable SSO registration" msgstr "" -#: common/models.py:1973 +#: common/models.py:2028 msgid "Enable self-registration via SSO for users on the login pages" msgstr "" -#: common/models.py:1979 +#: common/models.py:2034 msgid "Enable SSO group sync" msgstr "" -#: common/models.py:1981 +#: common/models.py:2036 msgid "Enable synchronizing InvenTree groups with groups provided by the IdP" msgstr "" -#: common/models.py:1987 +#: common/models.py:2042 msgid "SSO group key" msgstr "" -#: common/models.py:1989 +#: common/models.py:2044 msgid "The name of the groups claim attribute provided by the IdP" msgstr "" -#: common/models.py:1995 +#: common/models.py:2050 msgid "SSO group map" msgstr "" -#: common/models.py:1997 +#: common/models.py:2052 msgid "A mapping from SSO groups to local InvenTree groups. If the local group does not exist, it will be created." msgstr "" -#: common/models.py:2003 +#: common/models.py:2058 msgid "Remove groups outside of SSO" msgstr "" -#: common/models.py:2005 +#: common/models.py:2060 msgid "Whether groups assigned to the user should be removed if they are not backend by the IdP. Disabling this setting might cause security issues" msgstr "" -#: common/models.py:2011 +#: common/models.py:2066 msgid "Email required" msgstr "メールアドレスは必須です" -#: common/models.py:2012 +#: common/models.py:2067 msgid "Require user to supply mail on signup" msgstr "" -#: common/models.py:2017 +#: common/models.py:2072 msgid "Auto-fill SSO users" msgstr "" -#: common/models.py:2019 +#: common/models.py:2074 msgid "Automatically fill out user-details from SSO account-data" msgstr "" -#: common/models.py:2025 +#: common/models.py:2080 msgid "Mail twice" msgstr "" -#: common/models.py:2026 +#: common/models.py:2081 msgid "On signup ask users twice for their mail" msgstr "" -#: common/models.py:2031 +#: common/models.py:2086 msgid "Password twice" msgstr "" -#: common/models.py:2032 +#: common/models.py:2087 msgid "On signup ask users twice for their password" msgstr "" -#: common/models.py:2037 +#: common/models.py:2092 msgid "Allowed domains" msgstr "" -#: common/models.py:2039 +#: common/models.py:2094 msgid "Restrict signup to certain domains (comma-separated, starting with @)" msgstr "" -#: common/models.py:2045 +#: common/models.py:2100 msgid "Group on signup" msgstr "" -#: common/models.py:2047 +#: common/models.py:2102 msgid "Group to which new users are assigned on registration. If SSO group sync is enabled, this group is only set if no group can be assigned from the IdP." msgstr "" -#: common/models.py:2053 +#: common/models.py:2108 msgid "Enforce MFA" msgstr "" -#: common/models.py:2054 +#: common/models.py:2109 msgid "Users must use multifactor security." msgstr "" -#: common/models.py:2059 +#: common/models.py:2114 msgid "Check plugins on startup" msgstr "" -#: common/models.py:2061 +#: common/models.py:2116 msgid "Check that all plugins are installed on startup - enable in container environments" msgstr "" -#: common/models.py:2069 +#: common/models.py:2124 msgid "Check for plugin updates" msgstr "" -#: common/models.py:2070 +#: common/models.py:2125 msgid "Enable periodic checks for updates to installed plugins" msgstr "" -#: common/models.py:2076 +#: common/models.py:2131 msgid "Enable URL integration" msgstr "" -#: common/models.py:2077 +#: common/models.py:2132 msgid "Enable plugins to add URL routes" msgstr "" -#: common/models.py:2083 +#: common/models.py:2138 msgid "Enable navigation integration" msgstr "" -#: common/models.py:2084 +#: common/models.py:2139 msgid "Enable plugins to integrate into navigation" msgstr "" -#: common/models.py:2090 +#: common/models.py:2145 msgid "Enable app integration" msgstr "" -#: common/models.py:2091 +#: common/models.py:2146 msgid "Enable plugins to add apps" msgstr "" -#: common/models.py:2097 +#: common/models.py:2152 msgid "Enable schedule integration" msgstr "" -#: common/models.py:2098 +#: common/models.py:2153 msgid "Enable plugins to run scheduled tasks" msgstr "" -#: common/models.py:2104 +#: common/models.py:2159 msgid "Enable event integration" msgstr "" -#: common/models.py:2105 +#: common/models.py:2160 msgid "Enable plugins to respond to internal events" msgstr "" -#: common/models.py:2111 +#: common/models.py:2166 +msgid "Enable interface integration" +msgstr "" + +#: common/models.py:2167 +msgid "Enable plugins to integrate into the user interface" +msgstr "" + +#: common/models.py:2173 msgid "Enable project codes" msgstr "" -#: common/models.py:2112 +#: common/models.py:2174 msgid "Enable project codes for tracking projects" msgstr "" -#: common/models.py:2117 +#: common/models.py:2179 msgid "Stocktake Functionality" msgstr "" -#: common/models.py:2119 +#: common/models.py:2181 msgid "Enable stocktake functionality for recording stock levels and calculating stock value" msgstr "" -#: common/models.py:2125 +#: common/models.py:2187 msgid "Exclude External Locations" msgstr "" -#: common/models.py:2127 +#: common/models.py:2189 msgid "Exclude stock items in external locations from stocktake calculations" msgstr "" -#: common/models.py:2133 +#: common/models.py:2195 msgid "Automatic Stocktake Period" msgstr "" -#: common/models.py:2135 +#: common/models.py:2197 msgid "Number of days between automatic stocktake recording (set to zero to disable)" msgstr "" -#: common/models.py:2141 +#: common/models.py:2203 msgid "Report Deletion Interval" msgstr "" -#: common/models.py:2143 +#: common/models.py:2205 msgid "Stocktake reports will be deleted after specified number of days" msgstr "" -#: common/models.py:2150 +#: common/models.py:2212 msgid "Display Users full names" msgstr "" -#: common/models.py:2151 +#: common/models.py:2213 msgid "Display Users full names instead of usernames" msgstr "" -#: common/models.py:2156 +#: common/models.py:2218 msgid "Enable Test Station Data" msgstr "" -#: common/models.py:2157 +#: common/models.py:2219 msgid "Enable test station data collection for test results" msgstr "" -#: common/models.py:2169 common/models.py:2549 -msgid "Settings key (must be unique - case insensitive" -msgstr "" - -#: common/models.py:2212 -msgid "Hide inactive parts" -msgstr "非アクティブな部品を非表示" - -#: common/models.py:2214 -msgid "Hide inactive parts in results displayed on the homepage" -msgstr "" - -#: common/models.py:2220 -msgid "Show subscribed parts" -msgstr "購読中の部品を表示" - -#: common/models.py:2221 -msgid "Show subscribed parts on the homepage" +#: common/models.py:2224 +msgid "Create Template on Upload" msgstr "" #: common/models.py:2226 -msgid "Show subscribed categories" -msgstr "購読中のカテゴリを表示" - -#: common/models.py:2227 -msgid "Show subscribed part categories on the homepage" +msgid "Create a new test template when uploading test data which does not match an existing template" msgstr "" -#: common/models.py:2232 -msgid "Show latest parts" -msgstr "" - -#: common/models.py:2233 -msgid "Show latest parts on the homepage" -msgstr "" - -#: common/models.py:2238 -msgid "Show invalid BOMs" -msgstr "" - -#: common/models.py:2239 -msgid "Show BOMs that await validation on the homepage" -msgstr "" - -#: common/models.py:2244 -msgid "Show recent stock changes" -msgstr "" - -#: common/models.py:2245 -msgid "Show recently changed stock items on the homepage" -msgstr "" - -#: common/models.py:2250 -msgid "Show low stock" -msgstr "" - -#: common/models.py:2251 -msgid "Show low stock items on the homepage" -msgstr "" - -#: common/models.py:2256 -msgid "Show depleted stock" -msgstr "" - -#: common/models.py:2257 -msgid "Show depleted stock items on the homepage" -msgstr "" - -#: common/models.py:2262 -msgid "Show needed stock" -msgstr "" - -#: common/models.py:2263 -msgid "Show stock items needed for builds on the homepage" -msgstr "" - -#: common/models.py:2268 -msgid "Show expired stock" -msgstr "" - -#: common/models.py:2269 -msgid "Show expired stock items on the homepage" -msgstr "" - -#: common/models.py:2274 -msgid "Show stale stock" -msgstr "" - -#: common/models.py:2275 -msgid "Show stale stock items on the homepage" -msgstr "" - -#: common/models.py:2280 -msgid "Show pending builds" -msgstr "" +#: common/models.py:2279 +msgid "Hide inactive parts" +msgstr "非アクティブな部品を非表示" #: common/models.py:2281 -msgid "Show pending builds on the homepage" -msgstr "" - -#: common/models.py:2286 -msgid "Show overdue builds" +msgid "Hide inactive parts in results displayed on the homepage" msgstr "" #: common/models.py:2287 -msgid "Show overdue builds on the homepage" -msgstr "" +msgid "Show subscribed parts" +msgstr "購読中の部品を表示" -#: common/models.py:2292 -msgid "Show outstanding POs" +#: common/models.py:2288 +msgid "Show subscribed parts on the homepage" msgstr "" #: common/models.py:2293 -msgid "Show outstanding POs on the homepage" -msgstr "" +msgid "Show subscribed categories" +msgstr "購読中のカテゴリを表示" -#: common/models.py:2298 -msgid "Show overdue POs" +#: common/models.py:2294 +msgid "Show subscribed part categories on the homepage" msgstr "" #: common/models.py:2299 -msgid "Show overdue POs on the homepage" +msgid "Show latest parts" msgstr "" -#: common/models.py:2304 -msgid "Show outstanding SOs" +#: common/models.py:2300 +msgid "Show latest parts on the homepage" msgstr "" #: common/models.py:2305 -msgid "Show outstanding SOs on the homepage" +msgid "Show invalid BOMs" msgstr "" -#: common/models.py:2310 -msgid "Show overdue SOs" +#: common/models.py:2306 +msgid "Show BOMs that await validation on the homepage" msgstr "" #: common/models.py:2311 -msgid "Show overdue SOs on the homepage" +msgid "Show recent stock changes" msgstr "" -#: common/models.py:2316 -msgid "Show pending SO shipments" +#: common/models.py:2312 +msgid "Show recently changed stock items on the homepage" msgstr "" #: common/models.py:2317 -msgid "Show pending SO shipments on the homepage" +msgid "Show low stock" msgstr "" -#: common/models.py:2322 -msgid "Show News" +#: common/models.py:2318 +msgid "Show low stock items on the homepage" msgstr "" #: common/models.py:2323 -msgid "Show news on the homepage" +msgid "Show depleted stock" msgstr "" -#: common/models.py:2328 -msgid "Inline label display" +#: common/models.py:2324 +msgid "Show depleted stock items on the homepage" +msgstr "" + +#: common/models.py:2329 +msgid "Show needed stock" msgstr "" #: common/models.py:2330 -msgid "Display PDF labels in the browser, instead of downloading as a file" +msgid "Show stock items needed for builds on the homepage" +msgstr "" + +#: common/models.py:2335 +msgid "Show expired stock" msgstr "" #: common/models.py:2336 -msgid "Default label printer" +msgid "Show expired stock items on the homepage" msgstr "" -#: common/models.py:2338 -msgid "Configure which label printer should be selected by default" +#: common/models.py:2341 +msgid "Show stale stock" msgstr "" -#: common/models.py:2344 -msgid "Inline report display" +#: common/models.py:2342 +msgid "Show stale stock items on the homepage" msgstr "" -#: common/models.py:2346 -msgid "Display PDF reports in the browser, instead of downloading as a file" +#: common/models.py:2347 +msgid "Show pending builds" msgstr "" -#: common/models.py:2352 -msgid "Search Parts" +#: common/models.py:2348 +msgid "Show pending builds on the homepage" msgstr "" #: common/models.py:2353 -msgid "Display parts in search preview window" +msgid "Show overdue builds" msgstr "" -#: common/models.py:2358 -msgid "Search Supplier Parts" +#: common/models.py:2354 +msgid "Show overdue builds on the homepage" msgstr "" #: common/models.py:2359 -msgid "Display supplier parts in search preview window" +msgid "Show outstanding POs" msgstr "" -#: common/models.py:2364 -msgid "Search Manufacturer Parts" +#: common/models.py:2360 +msgid "Show outstanding POs on the homepage" msgstr "" #: common/models.py:2365 -msgid "Display manufacturer parts in search preview window" +msgid "Show overdue POs" msgstr "" -#: common/models.py:2370 -msgid "Hide Inactive Parts" +#: common/models.py:2366 +msgid "Show overdue POs on the homepage" msgstr "" #: common/models.py:2371 -msgid "Excluded inactive parts from search preview window" +msgid "Show outstanding SOs" msgstr "" -#: common/models.py:2376 -msgid "Search Categories" +#: common/models.py:2372 +msgid "Show outstanding SOs on the homepage" msgstr "" #: common/models.py:2377 -msgid "Display part categories in search preview window" +msgid "Show overdue SOs" msgstr "" -#: common/models.py:2382 -msgid "Search Stock" +#: common/models.py:2378 +msgid "Show overdue SOs on the homepage" msgstr "" #: common/models.py:2383 -msgid "Display stock items in search preview window" +msgid "Show pending SO shipments" msgstr "" -#: common/models.py:2388 -msgid "Hide Unavailable Stock Items" +#: common/models.py:2384 +msgid "Show pending SO shipments on the homepage" +msgstr "" + +#: common/models.py:2389 +msgid "Show News" msgstr "" #: common/models.py:2390 -msgid "Exclude stock items which are not available from the search preview window" +msgid "Show news on the homepage" msgstr "" -#: common/models.py:2396 -msgid "Search Locations" +#: common/models.py:2395 +msgid "Inline label display" msgstr "" #: common/models.py:2397 -msgid "Display stock locations in search preview window" -msgstr "" - -#: common/models.py:2402 -msgid "Search Companies" +msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "" #: common/models.py:2403 -msgid "Display companies in search preview window" +msgid "Default label printer" msgstr "" -#: common/models.py:2408 -msgid "Search Build Orders" +#: common/models.py:2405 +msgid "Configure which label printer should be selected by default" msgstr "" -#: common/models.py:2409 -msgid "Display build orders in search preview window" +#: common/models.py:2411 +msgid "Inline report display" msgstr "" -#: common/models.py:2414 -msgid "Search Purchase Orders" +#: common/models.py:2413 +msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:2415 -msgid "Display purchase orders in search preview window" +#: common/models.py:2419 +msgid "Search Parts" msgstr "" #: common/models.py:2420 -msgid "Exclude Inactive Purchase Orders" +msgid "Display parts in search preview window" msgstr "" -#: common/models.py:2422 -msgid "Exclude inactive purchase orders from search preview window" +#: common/models.py:2425 +msgid "Search Supplier Parts" msgstr "" -#: common/models.py:2428 -msgid "Search Sales Orders" +#: common/models.py:2426 +msgid "Display supplier parts in search preview window" msgstr "" -#: common/models.py:2429 -msgid "Display sales orders in search preview window" +#: common/models.py:2431 +msgid "Search Manufacturer Parts" msgstr "" -#: common/models.py:2434 -msgid "Exclude Inactive Sales Orders" +#: common/models.py:2432 +msgid "Display manufacturer parts in search preview window" msgstr "" -#: common/models.py:2436 -msgid "Exclude inactive sales orders from search preview window" +#: common/models.py:2437 +msgid "Hide Inactive Parts" msgstr "" -#: common/models.py:2442 -msgid "Search Return Orders" +#: common/models.py:2438 +msgid "Excluded inactive parts from search preview window" msgstr "" #: common/models.py:2443 -msgid "Display return orders in search preview window" +msgid "Search Categories" msgstr "" -#: common/models.py:2448 -msgid "Exclude Inactive Return Orders" +#: common/models.py:2444 +msgid "Display part categories in search preview window" +msgstr "" + +#: common/models.py:2449 +msgid "Search Stock" msgstr "" #: common/models.py:2450 -msgid "Exclude inactive return orders from search preview window" +msgid "Display stock items in search preview window" msgstr "" -#: common/models.py:2456 -msgid "Search Preview Results" +#: common/models.py:2455 +msgid "Hide Unavailable Stock Items" msgstr "" -#: common/models.py:2458 -msgid "Number of results to show in each section of the search preview window" +#: common/models.py:2457 +msgid "Exclude stock items which are not available from the search preview window" +msgstr "" + +#: common/models.py:2463 +msgid "Search Locations" msgstr "" #: common/models.py:2464 -msgid "Regex Search" +msgid "Display stock locations in search preview window" msgstr "" -#: common/models.py:2465 -msgid "Enable regular expressions in search queries" +#: common/models.py:2469 +msgid "Search Companies" msgstr "" #: common/models.py:2470 -msgid "Whole Word Search" +msgid "Display companies in search preview window" msgstr "" -#: common/models.py:2471 -msgid "Search queries return results for whole word matches" +#: common/models.py:2475 +msgid "Search Build Orders" msgstr "" #: common/models.py:2476 -msgid "Show Quantity in Forms" +msgid "Display build orders in search preview window" msgstr "" -#: common/models.py:2477 -msgid "Display available part quantity in some forms" +#: common/models.py:2481 +msgid "Search Purchase Orders" msgstr "" #: common/models.py:2482 -msgid "Escape Key Closes Forms" +msgid "Display purchase orders in search preview window" msgstr "" -#: common/models.py:2483 -msgid "Use the escape key to close modal forms" -msgstr "" - -#: common/models.py:2488 -msgid "Fixed Navbar" +#: common/models.py:2487 +msgid "Exclude Inactive Purchase Orders" msgstr "" #: common/models.py:2489 -msgid "The navbar position is fixed to the top of the screen" -msgstr "" - -#: common/models.py:2494 -msgid "Date Format" +msgid "Exclude inactive purchase orders from search preview window" msgstr "" #: common/models.py:2495 -msgid "Preferred format for displaying dates" +msgid "Search Sales Orders" msgstr "" -#: common/models.py:2508 part/templates/part/detail.html:41 -msgid "Part Scheduling" +#: common/models.py:2496 +msgid "Display sales orders in search preview window" +msgstr "" + +#: common/models.py:2501 +msgid "Exclude Inactive Sales Orders" +msgstr "" + +#: common/models.py:2503 +msgid "Exclude inactive sales orders from search preview window" msgstr "" #: common/models.py:2509 -msgid "Display part scheduling information" +msgid "Search Return Orders" msgstr "" -#: common/models.py:2514 part/templates/part/detail.html:62 -msgid "Part Stocktake" +#: common/models.py:2510 +msgid "Display return orders in search preview window" msgstr "" -#: common/models.py:2516 -msgid "Display part stocktake information (if stocktake functionality is enabled)" +#: common/models.py:2515 +msgid "Exclude Inactive Return Orders" msgstr "" -#: common/models.py:2522 -msgid "Table String Length" +#: common/models.py:2517 +msgid "Exclude inactive return orders from search preview window" msgstr "" -#: common/models.py:2524 -msgid "Maximum length limit for strings displayed in table views" +#: common/models.py:2523 +msgid "Search Preview Results" msgstr "" -#: common/models.py:2530 -msgid "Receive error reports" +#: common/models.py:2525 +msgid "Number of results to show in each section of the search preview window" msgstr "" #: common/models.py:2531 -msgid "Receive notifications for system errors" +msgid "Regex Search" msgstr "" -#: common/models.py:2536 -msgid "Last used printing machines" +#: common/models.py:2532 +msgid "Enable regular expressions in search queries" msgstr "" #: common/models.py:2537 +msgid "Whole Word Search" +msgstr "" + +#: common/models.py:2538 +msgid "Search queries return results for whole word matches" +msgstr "" + +#: common/models.py:2543 +msgid "Show Quantity in Forms" +msgstr "" + +#: common/models.py:2544 +msgid "Display available part quantity in some forms" +msgstr "" + +#: common/models.py:2549 +msgid "Escape Key Closes Forms" +msgstr "" + +#: common/models.py:2550 +msgid "Use the escape key to close modal forms" +msgstr "" + +#: common/models.py:2555 +msgid "Fixed Navbar" +msgstr "" + +#: common/models.py:2556 +msgid "The navbar position is fixed to the top of the screen" +msgstr "" + +#: common/models.py:2561 +msgid "Date Format" +msgstr "" + +#: common/models.py:2562 +msgid "Preferred format for displaying dates" +msgstr "" + +#: common/models.py:2575 part/templates/part/detail.html:41 +msgid "Part Scheduling" +msgstr "" + +#: common/models.py:2576 +msgid "Display part scheduling information" +msgstr "" + +#: common/models.py:2581 part/templates/part/detail.html:62 +msgid "Part Stocktake" +msgstr "" + +#: common/models.py:2583 +msgid "Display part stocktake information (if stocktake functionality is enabled)" +msgstr "" + +#: common/models.py:2589 +msgid "Table String Length" +msgstr "" + +#: common/models.py:2591 +msgid "Maximum length limit for strings displayed in table views" +msgstr "" + +#: common/models.py:2597 +msgid "Receive error reports" +msgstr "" + +#: common/models.py:2598 +msgid "Receive notifications for system errors" +msgstr "" + +#: common/models.py:2603 +msgid "Last used printing machines" +msgstr "" + +#: common/models.py:2604 msgid "Save the last used printing machines for a user" msgstr "" -#: common/models.py:2557 common/models.py:2558 common/models.py:2715 -#: common/models.py:2716 common/models.py:2961 common/models.py:2962 -#: common/models.py:3288 common/models.py:3289 importer/models.py:88 -#: part/models.py:3307 part/models.py:3394 part/models.py:3468 -#: part/models.py:3496 plugin/models.py:274 plugin/models.py:275 -#: report/templates/report/inventree_test_report.html:105 -#: templates/js/translated/stock.js:3120 users/models.py:111 +#: common/models.py:2621 common/models.py:2622 common/models.py:2779 +#: common/models.py:2780 common/models.py:3025 common/models.py:3026 +#: common/models.py:3349 common/models.py:3350 common/models.py:3534 +#: importer/models.py:89 part/models.py:3358 part/models.py:3445 +#: part/models.py:3519 part/models.py:3547 plugin/models.py:313 +#: plugin/models.py:314 report/templates/report/inventree_test_report.html:105 +#: templates/js/translated/stock.js:3121 users/models.py:111 msgid "User" msgstr "ユーザー" -#: common/models.py:2580 +#: common/models.py:2644 msgid "Price break quantity" msgstr "" -#: common/models.py:2587 company/serializers.py:513 order/admin.py:42 -#: order/models.py:1430 order/models.py:2417 -#: templates/js/translated/company.js:1823 templates/js/translated/part.js:1892 +#: common/models.py:2651 company/serializers.py:524 order/admin.py:42 +#: order/models.py:1447 order/models.py:2456 +#: templates/js/translated/company.js:1824 templates/js/translated/part.js:1892 #: templates/js/translated/pricing.js:621 #: templates/js/translated/return_order.js:739 msgid "Price" msgstr "" -#: common/models.py:2588 +#: common/models.py:2652 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:2692 common/models.py:2877 +#: common/models.py:2756 common/models.py:2941 msgid "Endpoint" msgstr "" -#: common/models.py:2693 +#: common/models.py:2757 msgid "Endpoint at which this webhook is received" msgstr "" -#: common/models.py:2703 +#: common/models.py:2767 msgid "Name for this webhook" msgstr "" -#: common/models.py:2707 +#: common/models.py:2771 msgid "Is this webhook active" msgstr "" -#: common/models.py:2723 users/models.py:159 +#: common/models.py:2787 users/models.py:159 msgid "Token" msgstr "" -#: common/models.py:2724 +#: common/models.py:2788 msgid "Token for access" msgstr "" -#: common/models.py:2732 +#: common/models.py:2796 msgid "Secret" msgstr "" -#: common/models.py:2733 +#: common/models.py:2797 msgid "Shared secret for HMAC" msgstr "" -#: common/models.py:2841 +#: common/models.py:2905 msgid "Message ID" msgstr "メッセージ ID:" -#: common/models.py:2842 +#: common/models.py:2906 msgid "Unique identifier for this message" msgstr "" -#: common/models.py:2850 +#: common/models.py:2914 msgid "Host" msgstr "" -#: common/models.py:2851 +#: common/models.py:2915 msgid "Host from which this message was received" msgstr "" -#: common/models.py:2859 +#: common/models.py:2923 msgid "Header" msgstr "" -#: common/models.py:2860 +#: common/models.py:2924 msgid "Header of this message" msgstr "" -#: common/models.py:2867 +#: common/models.py:2931 msgid "Body" msgstr "" -#: common/models.py:2868 +#: common/models.py:2932 msgid "Body of this message" msgstr "" -#: common/models.py:2878 +#: common/models.py:2942 msgid "Endpoint on which this message was received" msgstr "" -#: common/models.py:2883 +#: common/models.py:2947 msgid "Worked on" msgstr "" -#: common/models.py:2884 +#: common/models.py:2948 msgid "Was the work on this message finished?" msgstr "" -#: common/models.py:3010 +#: common/models.py:3074 msgid "Id" msgstr "" -#: common/models.py:3012 templates/js/translated/company.js:965 -#: templates/js/translated/news.js:44 +#: common/models.py:3076 part/serializers.py:271 +#: templates/js/translated/company.js:966 templates/js/translated/news.js:44 msgid "Title" msgstr "" -#: common/models.py:3014 common/models.py:3272 company/models.py:149 -#: company/models.py:446 company/models.py:512 company/models.py:818 -#: order/models.py:302 order/models.py:1385 order/models.py:1817 -#: part/admin.py:55 part/models.py:1057 +#: common/models.py:3078 common/models.py:3333 company/models.py:146 +#: company/models.py:443 company/models.py:509 company/models.py:815 +#: order/models.py:309 order/models.py:1402 order/models.py:1846 +#: part/admin.py:55 part/models.py:1118 #: part/templates/part/part_scheduling.html:11 #: report/templates/report/inventree_build_order_report.html:164 -#: stock/admin.py:229 templates/js/translated/company.js:1319 -#: templates/js/translated/company.js:1673 templates/js/translated/order.js:376 +#: stock/admin.py:230 templates/js/translated/company.js:1320 +#: templates/js/translated/company.js:1674 templates/js/translated/order.js:376 #: templates/js/translated/part.js:2475 -#: templates/js/translated/purchase_order.js:2110 -#: templates/js/translated/purchase_order.js:2274 +#: templates/js/translated/purchase_order.js:2094 +#: templates/js/translated/purchase_order.js:2258 #: templates/js/translated/return_order.js:778 -#: templates/js/translated/sales_order.js:1092 -#: templates/js/translated/sales_order.js:2023 +#: templates/js/translated/sales_order.js:1058 +#: templates/js/translated/sales_order.js:2004 msgid "Link" msgstr "リンク" -#: common/models.py:3016 templates/js/translated/news.js:60 +#: common/models.py:3080 templates/js/translated/news.js:60 msgid "Published" msgstr "" -#: common/models.py:3018 templates/InvenTree/settings/plugin_settings.html:32 +#: common/models.py:3082 templates/InvenTree/settings/plugin_settings.html:32 #: templates/js/translated/news.js:56 templates/js/translated/plugin.js:103 msgid "Author" msgstr "" -#: common/models.py:3020 templates/js/translated/news.js:52 +#: common/models.py:3084 templates/js/translated/news.js:52 msgid "Summary" msgstr "" -#: common/models.py:3023 +#: common/models.py:3087 msgid "Read" msgstr "" -#: common/models.py:3023 +#: common/models.py:3087 msgid "Was this news item read?" msgstr "" -#: common/models.py:3040 company/models.py:159 part/models.py:1067 +#: common/models.py:3104 company/models.py:156 part/models.py:1128 #: report/templates/report/inventree_bill_of_materials_report.html:126 #: report/templates/report/inventree_bill_of_materials_report.html:148 #: report/templates/report/inventree_return_order_report.html:35 -#: stock/templates/stock/item_base.html:133 templates/503.html:31 +#: stock/templates/stock/item_base.html:130 templates/503.html:31 #: templates/hover_image.html:7 templates/hover_image.html:9 #: templates/modals.html:6 msgid "Image" msgstr "" -#: common/models.py:3040 +#: common/models.py:3104 msgid "Image file" msgstr "" -#: common/models.py:3052 common/models.py:3256 +#: common/models.py:3116 common/models.py:3317 msgid "Target model type for this image" msgstr "" -#: common/models.py:3056 +#: common/models.py:3120 msgid "Target model ID for this image" msgstr "" -#: common/models.py:3078 +#: common/models.py:3142 msgid "Custom Unit" msgstr "" -#: common/models.py:3099 +#: common/models.py:3160 msgid "Unit symbol must be unique" msgstr "" -#: common/models.py:3114 +#: common/models.py:3175 msgid "Unit name must be a valid identifier" msgstr "" -#: common/models.py:3133 +#: common/models.py:3194 msgid "Unit name" msgstr "" -#: common/models.py:3140 templates/InvenTree/settings/settings_staff_js.html:75 +#: common/models.py:3201 templates/InvenTree/settings/settings_staff_js.html:75 msgid "Symbol" msgstr "" -#: common/models.py:3141 +#: common/models.py:3202 msgid "Optional unit symbol" msgstr "" -#: common/models.py:3147 templates/InvenTree/settings/settings_staff_js.html:71 +#: common/models.py:3208 templates/InvenTree/settings/settings_staff_js.html:71 msgid "Definition" msgstr "" -#: common/models.py:3148 +#: common/models.py:3209 msgid "Unit definition" msgstr "" -#: common/models.py:3206 common/models.py:3263 stock/models.py:2558 -#: templates/js/translated/attachment.js:119 +#: common/models.py:3267 common/models.py:3324 stock/models.py:2674 +#: stock/serializers.py:244 templates/js/translated/attachment.js:119 #: templates/js/translated/attachment.js:345 msgid "Attachment" msgstr "添付ファイル" -#: common/models.py:3218 +#: common/models.py:3279 msgid "Missing file" msgstr "ファイルがありません" -#: common/models.py:3219 +#: common/models.py:3280 msgid "Missing external link" msgstr "外部リンクが見つかりません。" -#: common/models.py:3264 +#: common/models.py:3325 msgid "Select file to attach" msgstr "添付ファイルを選択" -#: common/models.py:3279 templates/js/translated/attachment.js:120 +#: common/models.py:3340 templates/js/translated/attachment.js:120 #: templates/js/translated/attachment.js:360 msgid "Comment" msgstr "コメント:" -#: common/models.py:3280 +#: common/models.py:3341 msgid "Attachment comment" msgstr "" -#: common/models.py:3296 +#: common/models.py:3357 msgid "Upload date" msgstr "" -#: common/models.py:3297 +#: common/models.py:3358 msgid "Date the file was uploaded" msgstr "" -#: common/models.py:3301 +#: common/models.py:3362 msgid "File size" msgstr "" -#: common/models.py:3301 +#: common/models.py:3362 msgid "File size in bytes" msgstr "" -#: common/models.py:3339 common/serializers.py:562 +#: common/models.py:3400 common/serializers.py:609 msgid "Invalid model type specified for attachment" msgstr "" -#: common/notifications.py:314 +#: common/models.py:3409 plugin/models.py:43 users/models.py:100 +msgid "Key" +msgstr "" + +#: common/models.py:3410 +msgid "Value that will be saved in the models database" +msgstr "" + +#: common/models.py:3413 +msgid "Name of the state" +msgstr "" + +#: common/models.py:3417 part/serializers.py:273 +msgid "Label" +msgstr "" + +#: common/models.py:3418 +msgid "Label that will be displayed in the frontend" +msgstr "" + +#: common/models.py:3424 +msgid "Color" +msgstr "" + +#: common/models.py:3425 +msgid "Color that will be displayed in the frontend" +msgstr "" + +#: common/models.py:3428 +msgid "Logical Key" +msgstr "" + +#: common/models.py:3430 +msgid "State logical key that is equal to this custom state in business logic" +msgstr "" + +#: common/models.py:3438 part/serializers.py:275 +msgid "Model" +msgstr "" + +#: common/models.py:3439 +msgid "Model this state is associated with" +msgstr "" + +#: common/models.py:3443 +msgid "Reference Status Set" +msgstr "" + +#: common/models.py:3444 +msgid "Status set that is extended with this custom state" +msgstr "" + +#: common/models.py:3450 +msgid "Custom State" +msgstr "" + +#: common/models.py:3451 +msgid "Custom States" +msgstr "" + +#: common/models.py:3466 +msgid "Model must be selected" +msgstr "" + +#: common/models.py:3469 +msgid "Key must be selected" +msgstr "" + +#: common/models.py:3472 +msgid "Logical key must be selected" +msgstr "" + +#: common/models.py:3476 +msgid "Key must be different from logical key" +msgstr "" + +#: common/models.py:3480 +msgid "Reference status must be selected" +msgstr "" + +#: common/models.py:3492 +msgid "Reference status set not found" +msgstr "" + +#: common/models.py:3498 +msgid "Key must be different from the logical keys of the reference status" +msgstr "" + +#: common/models.py:3504 +msgid "Logical key must be in the logical keys of the reference status" +msgstr "" + +#: common/models.py:3519 +msgid "Barcode Scan" +msgstr "" + +#: common/models.py:3523 importer/models.py:512 part/models.py:4009 +msgid "Data" +msgstr "" + +#: common/models.py:3524 +msgid "Barcode data" +msgstr "" + +#: common/models.py:3535 +msgid "User who scanned the barcode" +msgstr "" + +#: common/models.py:3540 importer/models.py:60 +msgid "Timestamp" +msgstr "" + +#: common/models.py:3541 +msgid "Date and time of the barcode scan" +msgstr "" + +#: common/models.py:3547 +msgid "URL endpoint which processed the barcode" +msgstr "" + +#: common/models.py:3554 order/models.py:1437 plugin/serializers.py:89 +msgid "Context" +msgstr "" + +#: common/models.py:3555 +msgid "Context data for the barcode scan" +msgstr "" + +#: common/models.py:3562 +msgid "Response" +msgstr "" + +#: common/models.py:3563 +msgid "Response data from the barcode scan" +msgstr "" + +#: common/models.py:3569 report/templates/report/inventree_test_report.html:103 +#: stock/models.py:2660 +msgid "Result" +msgstr "" + +#: common/models.py:3570 +msgid "Was the barcode scan successful?" +msgstr "" + +#: common/notifications.py:328 #, python-brace-format msgid "New {verbose_name}" msgstr "" -#: common/notifications.py:316 +#: common/notifications.py:330 msgid "A new order has been created and assigned to you" msgstr "" -#: common/notifications.py:322 +#: common/notifications.py:336 #, python-brace-format msgid "{verbose_name} canceled" msgstr "" -#: common/notifications.py:324 +#: common/notifications.py:338 msgid "A order that is assigned to you was canceled" msgstr "" -#: common/notifications.py:330 common/notifications.py:337 order/api.py:462 +#: common/notifications.py:344 common/notifications.py:351 order/api.py:440 msgid "Items Received" msgstr "" -#: common/notifications.py:332 +#: common/notifications.py:346 msgid "Items have been received against a purchase order" msgstr "" -#: common/notifications.py:339 +#: common/notifications.py:353 msgid "Items have been received against a return order" msgstr "" -#: common/notifications.py:457 +#: common/notifications.py:475 msgid "Error raised by plugin" msgstr "" -#: common/serializers.py:375 +#: common/serializers.py:423 msgid "Is Running" msgstr "" -#: common/serializers.py:381 +#: common/serializers.py:429 msgid "Pending Tasks" msgstr "" -#: common/serializers.py:387 +#: common/serializers.py:435 msgid "Scheduled Tasks" msgstr "" -#: common/serializers.py:393 +#: common/serializers.py:441 msgid "Failed Tasks" msgstr "" -#: common/serializers.py:408 +#: common/serializers.py:456 msgid "Task ID" msgstr "" -#: common/serializers.py:408 +#: common/serializers.py:456 msgid "Unique task ID" msgstr "" -#: common/serializers.py:410 +#: common/serializers.py:458 msgid "Lock" msgstr "" -#: common/serializers.py:410 +#: common/serializers.py:458 msgid "Lock time" msgstr "" -#: common/serializers.py:412 +#: common/serializers.py:460 msgid "Task name" msgstr "" -#: common/serializers.py:414 +#: common/serializers.py:462 msgid "Function" msgstr "" -#: common/serializers.py:414 +#: common/serializers.py:462 msgid "Function name" msgstr "" -#: common/serializers.py:416 +#: common/serializers.py:464 msgid "Arguments" msgstr "" -#: common/serializers.py:416 +#: common/serializers.py:464 msgid "Task arguments" msgstr "" -#: common/serializers.py:419 +#: common/serializers.py:467 msgid "Keyword Arguments" msgstr "" -#: common/serializers.py:419 +#: common/serializers.py:467 msgid "Task keyword arguments" msgstr "" -#: common/serializers.py:529 +#: common/serializers.py:577 msgid "Filename" msgstr "ファイル名" -#: common/serializers.py:536 report/api.py:100 report/serializers.py:53 +#: common/serializers.py:584 report/api.py:100 report/serializers.py:54 msgid "Model Type" msgstr "" -#: common/serializers.py:565 +#: common/serializers.py:612 msgid "User does not have permission to create or edit attachments for this model" msgstr "" @@ -4116,15 +4295,15 @@ msgstr "" msgid "Match Items" msgstr "" -#: common/views.py:401 +#: common/views.py:397 msgid "Fields matching failed" msgstr "" -#: common/views.py:464 +#: common/views.py:460 msgid "Parts imported" msgstr "" -#: common/views.py:494 order/templates/order/order_wizard/match_fields.html:27 +#: common/views.py:490 order/templates/order/order_wizard/match_fields.html:27 #: order/templates/order/order_wizard/match_parts.html:19 #: order/templates/order/order_wizard/po_upload.html:49 #: part/templates/part/import_wizard/match_fields.html:27 @@ -4155,429 +4334,429 @@ msgstr "" msgid "Supplier is Active" msgstr "" -#: company/models.py:100 company/models.py:371 +#: company/models.py:97 company/models.py:368 #: company/templates/company/company_base.html:8 #: company/templates/company/company_base.html:12 stock/api.py:812 -#: templates/InvenTree/search.html:178 templates/js/translated/company.js:496 +#: templates/InvenTree/search.html:178 templates/js/translated/company.js:497 msgid "Company" msgstr "" -#: company/models.py:101 company/views.py:51 +#: company/models.py:98 company/views.py:51 #: templates/js/translated/search.js:192 msgid "Companies" msgstr "" -#: company/models.py:117 +#: company/models.py:114 msgid "Company description" msgstr "" -#: company/models.py:118 +#: company/models.py:115 msgid "Description of the company" msgstr "" -#: company/models.py:123 company/templates/company/company_base.html:106 +#: company/models.py:120 company/templates/company/company_base.html:106 #: templates/InvenTree/settings/plugin_settings.html:54 -#: templates/js/translated/company.js:532 +#: templates/js/translated/company.js:533 msgid "Website" msgstr "" -#: company/models.py:123 +#: company/models.py:120 msgid "Company website URL" msgstr "" -#: company/models.py:128 +#: company/models.py:125 msgid "Phone number" msgstr "" -#: company/models.py:130 +#: company/models.py:127 msgid "Contact phone number" msgstr "" -#: company/models.py:137 +#: company/models.py:134 msgid "Contact email address" msgstr "連絡先メールアドレス" -#: company/models.py:142 company/models.py:275 -#: company/templates/company/company_base.html:145 order/models.py:342 -#: order/templates/order/order_base.html:208 -#: order/templates/order/return_order_base.html:177 -#: order/templates/order/sales_order_base.html:221 +#: company/models.py:139 company/models.py:272 +#: company/templates/company/company_base.html:145 order/models.py:349 +#: order/templates/order/order_base.html:217 +#: order/templates/order/return_order_base.html:178 +#: order/templates/order/sales_order_base.html:222 msgid "Contact" msgstr "" -#: company/models.py:144 +#: company/models.py:141 msgid "Point of contact" msgstr "" -#: company/models.py:150 +#: company/models.py:147 msgid "Link to external company information" msgstr "" -#: company/models.py:163 +#: company/models.py:160 msgid "Is this company active?" msgstr "" -#: company/models.py:168 +#: company/models.py:165 msgid "Is customer" msgstr "" -#: company/models.py:169 +#: company/models.py:166 msgid "Do you sell items to this company?" msgstr "" -#: company/models.py:174 +#: company/models.py:171 msgid "Is supplier" msgstr "" -#: company/models.py:175 +#: company/models.py:172 msgid "Do you purchase items from this company?" msgstr "" -#: company/models.py:180 +#: company/models.py:177 msgid "Is manufacturer" msgstr "" -#: company/models.py:181 +#: company/models.py:178 msgid "Does this company manufacture parts?" msgstr "" -#: company/models.py:189 +#: company/models.py:186 msgid "Default currency used for this company" msgstr "" -#: company/models.py:314 company/templates/company/company_base.html:124 -#: order/models.py:352 order/templates/order/order_base.html:215 -#: order/templates/order/return_order_base.html:184 -#: order/templates/order/sales_order_base.html:228 +#: company/models.py:311 company/templates/company/company_base.html:124 +#: order/models.py:359 order/templates/order/order_base.html:224 +#: order/templates/order/return_order_base.html:185 +#: order/templates/order/sales_order_base.html:229 msgid "Address" msgstr "" -#: company/models.py:315 company/templates/company/sidebar.html:35 +#: company/models.py:312 company/templates/company/sidebar.html:35 msgid "Addresses" msgstr "" -#: company/models.py:372 +#: company/models.py:369 msgid "Select company" msgstr "" -#: company/models.py:377 +#: company/models.py:374 msgid "Address title" msgstr "" -#: company/models.py:378 +#: company/models.py:375 msgid "Title describing the address entry" msgstr "" -#: company/models.py:384 +#: company/models.py:381 msgid "Primary address" msgstr "" -#: company/models.py:385 +#: company/models.py:382 msgid "Set as primary address" msgstr "" -#: company/models.py:390 templates/js/translated/company.js:914 -#: templates/js/translated/company.js:971 +#: company/models.py:387 templates/js/translated/company.js:915 +#: templates/js/translated/company.js:972 msgid "Line 1" msgstr "" -#: company/models.py:391 +#: company/models.py:388 msgid "Address line 1" msgstr "" -#: company/models.py:397 templates/js/translated/company.js:915 -#: templates/js/translated/company.js:977 +#: company/models.py:394 templates/js/translated/company.js:916 +#: templates/js/translated/company.js:978 msgid "Line 2" msgstr "" -#: company/models.py:398 +#: company/models.py:395 msgid "Address line 2" msgstr "" -#: company/models.py:404 company/models.py:405 -#: templates/js/translated/company.js:983 +#: company/models.py:401 company/models.py:402 +#: templates/js/translated/company.js:984 msgid "Postal code" msgstr "" -#: company/models.py:411 +#: company/models.py:408 msgid "City/Region" msgstr "" -#: company/models.py:412 +#: company/models.py:409 msgid "Postal code city/region" msgstr "" -#: company/models.py:418 +#: company/models.py:415 msgid "State/Province" msgstr "" -#: company/models.py:419 +#: company/models.py:416 msgid "State or province" msgstr "" -#: company/models.py:425 templates/js/translated/company.js:1001 +#: company/models.py:422 templates/js/translated/company.js:1002 msgid "Country" msgstr "" -#: company/models.py:426 +#: company/models.py:423 msgid "Address country" msgstr "" -#: company/models.py:432 +#: company/models.py:429 msgid "Courier shipping notes" msgstr "" -#: company/models.py:433 +#: company/models.py:430 msgid "Notes for shipping courier" msgstr "" -#: company/models.py:439 +#: company/models.py:436 msgid "Internal shipping notes" msgstr "" -#: company/models.py:440 +#: company/models.py:437 msgid "Shipping notes for internal use" msgstr "" -#: company/models.py:447 +#: company/models.py:444 msgid "Link to address information (external)" msgstr "" -#: company/models.py:470 company/models.py:587 company/models.py:811 +#: company/models.py:467 company/models.py:584 company/models.py:808 #: company/templates/company/manufacturer_part.html:7 #: company/templates/company/manufacturer_part.html:24 -#: stock/templates/stock/item_base.html:217 +#: stock/templates/stock/item_base.html:214 msgid "Manufacturer Part" msgstr "メーカー・パーツ" -#: company/models.py:487 company/models.py:779 stock/models.py:787 -#: stock/serializers.py:445 stock/templates/stock/item_base.html:142 +#: company/models.py:484 company/models.py:776 stock/models.py:864 +#: stock/serializers.py:455 stock/templates/stock/item_base.html:139 #: templates/js/translated/bom.js:622 msgid "Base Part" msgstr "" -#: company/models.py:489 company/models.py:781 +#: company/models.py:486 company/models.py:778 msgid "Select part" msgstr "" -#: company/models.py:498 company/templates/company/company_base.html:82 +#: company/models.py:495 company/templates/company/company_base.html:82 #: company/templates/company/manufacturer_part.html:90 -#: company/templates/company/supplier_part.html:145 part/serializers.py:554 -#: stock/templates/stock/item_base.html:207 -#: templates/js/translated/company.js:507 -#: templates/js/translated/company.js:1118 -#: templates/js/translated/company.js:1296 -#: templates/js/translated/company.js:1611 +#: company/templates/company/supplier_part.html:146 part/serializers.py:598 +#: stock/templates/stock/item_base.html:204 +#: templates/js/translated/company.js:508 +#: templates/js/translated/company.js:1119 +#: templates/js/translated/company.js:1297 +#: templates/js/translated/company.js:1612 #: templates/js/translated/table_filters.js:812 msgid "Manufacturer" msgstr "製造元" -#: company/models.py:499 +#: company/models.py:496 msgid "Select manufacturer" msgstr "" -#: company/models.py:505 company/templates/company/manufacturer_part.html:101 -#: company/templates/company/supplier_part.html:153 order/serializers.py:556 -#: part/serializers.py:564 templates/js/translated/company.js:351 -#: templates/js/translated/company.js:1117 -#: templates/js/translated/company.js:1312 -#: templates/js/translated/company.js:1630 templates/js/translated/part.js:1807 -#: templates/js/translated/purchase_order.js:1921 -#: templates/js/translated/purchase_order.js:2123 +#: company/models.py:502 company/templates/company/manufacturer_part.html:101 +#: company/templates/company/supplier_part.html:154 order/serializers.py:641 +#: part/serializers.py:608 templates/js/translated/company.js:352 +#: templates/js/translated/company.js:1118 +#: templates/js/translated/company.js:1313 +#: templates/js/translated/company.js:1631 templates/js/translated/part.js:1807 +#: templates/js/translated/purchase_order.js:1905 +#: templates/js/translated/purchase_order.js:2107 msgid "MPN" msgstr "" -#: company/models.py:513 +#: company/models.py:510 msgid "URL for external manufacturer part link" msgstr "" -#: company/models.py:522 +#: company/models.py:519 msgid "Manufacturer part description" msgstr "" -#: company/models.py:575 +#: company/models.py:572 msgid "Manufacturer Part Parameter" msgstr "" -#: company/models.py:594 +#: company/models.py:591 msgid "Parameter name" msgstr "" -#: company/models.py:600 report/templates/report/inventree_test_report.html:104 -#: stock/models.py:2550 templates/js/translated/company.js:1166 -#: templates/js/translated/company.js:1419 templates/js/translated/part.js:1499 +#: company/models.py:597 report/templates/report/inventree_test_report.html:104 +#: stock/models.py:2666 templates/js/translated/company.js:1167 +#: templates/js/translated/company.js:1420 templates/js/translated/part.js:1499 #: templates/js/translated/stock.js:1607 msgid "Value" msgstr "" -#: company/models.py:601 +#: company/models.py:598 msgid "Parameter value" msgstr "" -#: company/models.py:608 company/templates/company/supplier_part.html:168 -#: part/admin.py:57 part/models.py:1147 part/models.py:3771 -#: part/templates/part/part_base.html:293 -#: templates/js/translated/company.js:1425 templates/js/translated/part.js:1518 +#: company/models.py:605 company/templates/company/supplier_part.html:169 +#: part/admin.py:57 part/models.py:1208 part/models.py:3822 +#: part/templates/part/part_base.html:301 +#: templates/js/translated/company.js:1426 templates/js/translated/part.js:1518 #: templates/js/translated/part.js:1622 templates/js/translated/part.js:2376 msgid "Units" msgstr "" -#: company/models.py:609 +#: company/models.py:606 msgid "Parameter units" msgstr "" -#: company/models.py:662 company/templates/company/supplier_part.html:7 -#: company/templates/company/supplier_part.html:24 order/api.py:442 -#: order/serializers.py:491 stock/models.py:798 -#: stock/templates/stock/item_base.html:233 -#: templates/js/translated/build.js:1052 -#: templates/js/translated/company.js:1600 -#: templates/js/translated/purchase_order.js:752 -#: templates/js/translated/stock.js:2365 +#: company/models.py:659 company/templates/company/supplier_part.html:8 +#: company/templates/company/supplier_part.html:25 order/api.py:392 +#: order/serializers.py:576 stock/models.py:875 +#: stock/templates/stock/item_base.html:230 +#: templates/js/translated/build.js:1055 +#: templates/js/translated/company.js:1601 +#: templates/js/translated/purchase_order.js:735 +#: templates/js/translated/stock.js:2366 msgid "Supplier Part" msgstr "" -#: company/models.py:719 +#: company/models.py:716 msgid "Pack units must be compatible with the base part units" msgstr "" -#: company/models.py:726 +#: company/models.py:723 msgid "Pack units must be greater than zero" msgstr "" -#: company/models.py:740 +#: company/models.py:737 msgid "Linked manufacturer part must reference the same base part" msgstr "" -#: company/models.py:789 company/templates/company/company_base.html:87 -#: company/templates/company/supplier_part.html:129 order/models.py:491 -#: order/templates/order/order_base.html:141 part/bom.py:280 part/bom.py:318 -#: part/serializers.py:538 plugin/builtin/suppliers/digikey.py:25 +#: company/models.py:786 company/templates/company/company_base.html:87 +#: company/templates/company/supplier_part.html:130 order/models.py:503 +#: order/templates/order/order_base.html:150 part/bom.py:279 part/bom.py:314 +#: part/serializers.py:582 plugin/builtin/suppliers/digikey.py:25 #: plugin/builtin/suppliers/lcsc.py:26 plugin/builtin/suppliers/mouser.py:24 -#: plugin/builtin/suppliers/tme.py:26 stock/templates/stock/item_base.html:224 +#: plugin/builtin/suppliers/tme.py:26 stock/templates/stock/item_base.html:221 #: templates/email/overdue_purchase_order.html:16 -#: templates/js/translated/company.js:350 -#: templates/js/translated/company.js:511 -#: templates/js/translated/company.js:1584 templates/js/translated/part.js:1775 +#: templates/js/translated/company.js:351 +#: templates/js/translated/company.js:512 +#: templates/js/translated/company.js:1585 templates/js/translated/part.js:1775 #: templates/js/translated/pricing.js:498 -#: templates/js/translated/purchase_order.js:1759 +#: templates/js/translated/purchase_order.js:1743 #: templates/js/translated/table_filters.js:816 msgid "Supplier" msgstr "仕入先" -#: company/models.py:790 +#: company/models.py:787 msgid "Select supplier" msgstr "" -#: company/models.py:796 part/serializers.py:549 +#: company/models.py:793 part/serializers.py:593 msgid "Supplier stock keeping unit" msgstr "" -#: company/models.py:802 +#: company/models.py:799 msgid "Is this supplier part active?" msgstr "" -#: company/models.py:812 +#: company/models.py:809 msgid "Select manufacturer part" msgstr "" -#: company/models.py:819 +#: company/models.py:816 msgid "URL for external supplier part link" msgstr "" -#: company/models.py:828 +#: company/models.py:825 msgid "Supplier part description" msgstr "" -#: company/models.py:835 company/templates/company/supplier_part.html:187 -#: order/serializers.py:698 part/admin.py:415 part/models.py:4288 +#: company/models.py:832 company/templates/company/supplier_part.html:188 +#: order/serializers.py:783 part/admin.py:415 part/models.py:4345 #: part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_bill_of_materials_report.html:140 #: report/templates/report/inventree_purchase_order_report.html:32 #: report/templates/report/inventree_return_order_report.html:27 #: report/templates/report/inventree_sales_order_report.html:32 #: report/templates/report/inventree_stock_location_report.html:105 -#: stock/serializers.py:776 templates/js/translated/purchase_order.js:1185 -#: templates/js/translated/purchase_order.js:1344 +#: stock/serializers.py:807 templates/js/translated/purchase_order.js:1168 +#: templates/js/translated/purchase_order.js:1327 msgid "Note" msgstr "" -#: company/models.py:844 part/models.py:2117 +#: company/models.py:841 part/models.py:2177 msgid "base cost" msgstr "" -#: company/models.py:845 part/models.py:2118 +#: company/models.py:842 part/models.py:2178 msgid "Minimum charge (e.g. stocking fee)" msgstr "" -#: company/models.py:853 +#: company/models.py:850 msgid "Part packaging" msgstr "" -#: company/models.py:858 templates/js/translated/company.js:1651 +#: company/models.py:855 templates/js/translated/company.js:1652 #: templates/js/translated/part.js:1828 templates/js/translated/part.js:1884 -#: templates/js/translated/purchase_order.js:311 -#: templates/js/translated/purchase_order.js:841 -#: templates/js/translated/purchase_order.js:1103 -#: templates/js/translated/purchase_order.js:2154 -#: templates/js/translated/purchase_order.js:2171 +#: templates/js/translated/purchase_order.js:294 +#: templates/js/translated/purchase_order.js:824 +#: templates/js/translated/purchase_order.js:1086 +#: templates/js/translated/purchase_order.js:2138 +#: templates/js/translated/purchase_order.js:2155 msgid "Pack Quantity" msgstr "" -#: company/models.py:860 +#: company/models.py:857 msgid "Total quantity supplied in a single pack. Leave empty for single items." msgstr "" -#: company/models.py:879 part/models.py:2124 +#: company/models.py:876 part/models.py:2184 msgid "multiple" msgstr "" -#: company/models.py:880 +#: company/models.py:877 msgid "Order multiple" msgstr "" -#: company/models.py:892 +#: company/models.py:889 msgid "Quantity available from supplier" msgstr "" -#: company/models.py:898 +#: company/models.py:895 msgid "Availability Updated" msgstr "" -#: company/models.py:899 +#: company/models.py:896 msgid "Date of last update of availability data" msgstr "" -#: company/models.py:1027 +#: company/models.py:1024 msgid "Supplier Price Break" msgstr "" -#: company/serializers.py:174 +#: company/serializers.py:178 msgid "Default currency used for this supplier" msgstr "" -#: company/serializers.py:210 +#: company/serializers.py:214 msgid "Company Name" msgstr "" -#: company/serializers.py:393 part/admin.py:126 part/serializers.py:898 -#: part/templates/part/part_base.html:197 -#: templates/js/translated/company.js:1689 +#: company/serializers.py:397 part/admin.py:126 part/serializers.py:950 +#: part/templates/part/part_base.html:198 stock/serializers.py:474 +#: templates/js/translated/company.js:1690 #: templates/js/translated/table_filters.js:362 msgid "In Stock" msgstr "" #: company/templates/company/company_base.html:16 -#: part/templates/part/part_base.html:146 -#: templates/js/translated/company.js:1287 -#: templates/js/translated/company.js:1575 -#: templates/js/translated/model_renderers.js:313 +#: part/templates/part/part_base.html:147 +#: templates/js/translated/company.js:1288 +#: templates/js/translated/company.js:1576 +#: templates/js/translated/model_renderers.js:316 #: templates/js/translated/part.js:817 templates/js/translated/part.js:1225 msgid "Inactive" msgstr "" #: company/templates/company/company_base.html:27 -#: templates/js/translated/purchase_order.js:242 +#: templates/js/translated/purchase_order.js:224 msgid "Create Purchase Order" msgstr "" @@ -4590,7 +4769,7 @@ msgid "Edit company information" msgstr "" #: company/templates/company/company_base.html:39 -#: templates/js/translated/company.js:445 +#: templates/js/translated/company.js:446 msgid "Edit Company" msgstr "" @@ -4605,11 +4784,12 @@ msgstr "" #: company/templates/company/company_base.html:53 #: company/templates/company/manufacturer_part.html:51 -#: company/templates/company/supplier_part.html:83 +#: company/templates/company/supplier_part.html:84 #: part/templates/part/part_thumb.html:20 #: report/templates/report/inventree_build_order_report.html:98 #: report/templates/report/inventree_purchase_order_report.html:40 #: report/templates/report/inventree_sales_order_report.html:40 +#: report/templates/report/inventree_sales_order_shipment_report.html:37 #: report/templates/report/inventree_test_report.html:84 #: report/templates/report/inventree_test_report.html:162 msgid "Part image" @@ -4630,16 +4810,16 @@ msgstr "" msgid "Delete image" msgstr "" -#: company/templates/company/company_base.html:92 order/models.py:990 -#: order/models.py:2147 order/templates/order/return_order_base.html:134 -#: order/templates/order/sales_order_base.html:151 stock/models.py:840 -#: stock/models.py:841 stock/serializers.py:1329 -#: stock/templates/stock/item_base.html:405 +#: company/templates/company/company_base.html:92 order/models.py:1017 +#: order/models.py:2186 order/templates/order/return_order_base.html:135 +#: order/templates/order/sales_order_base.html:152 stock/models.py:917 +#: stock/models.py:918 stock/serializers.py:1360 +#: stock/templates/stock/item_base.html:402 #: templates/email/overdue_sales_order.html:16 -#: templates/js/translated/company.js:503 +#: templates/js/translated/company.js:504 #: templates/js/translated/return_order.js:295 -#: templates/js/translated/sales_order.js:820 -#: templates/js/translated/stock.js:3043 +#: templates/js/translated/sales_order.js:779 +#: templates/js/translated/stock.js:3044 #: templates/js/translated/table_filters.js:820 msgid "Customer" msgstr "顧客" @@ -4653,7 +4833,7 @@ msgid "Phone" msgstr "" #: company/templates/company/company_base.html:211 -#: part/templates/part/part_base.html:536 +#: part/templates/part/part_base.html:544 msgid "Remove Image" msgstr "" @@ -4662,19 +4842,19 @@ msgid "Remove associated image from this company" msgstr "" #: company/templates/company/company_base.html:214 -#: part/templates/part/part_base.html:539 +#: part/templates/part/part_base.html:547 #: templates/InvenTree/settings/user.html:88 #: templates/InvenTree/settings/user_sso.html:43 msgid "Remove" msgstr "" #: company/templates/company/company_base.html:243 -#: part/templates/part/part_base.html:568 +#: part/templates/part/part_base.html:576 msgid "Upload Image" msgstr "" #: company/templates/company/company_base.html:258 -#: part/templates/part/part_base.html:622 +#: part/templates/part/part_base.html:630 msgid "Download Image" msgstr "" @@ -4714,7 +4894,7 @@ msgstr "" #: company/templates/company/detail.html:75 #: company/templates/company/sidebar.html:12 #: company/templates/company/supplier_part_sidebar.html:7 -#: order/templates/order/order_base.html:13 +#: order/templates/order/order_base.html:14 #: order/templates/order/purchase_orders.html:8 #: order/templates/order/purchase_orders.html:12 #: part/templates/part/detail.html:122 part/templates/part/part_sidebar.html:35 @@ -4737,7 +4917,7 @@ msgstr "" #: company/templates/company/detail.html:101 #: company/templates/company/sidebar.html:21 -#: order/templates/order/sales_order_base.html:13 +#: order/templates/order/sales_order_base.html:14 #: order/templates/order/sales_orders.html:8 #: order/templates/order/sales_orders.html:15 #: part/templates/part/detail.html:143 part/templates/part/part_sidebar.html:39 @@ -4764,7 +4944,7 @@ msgstr "" #: company/templates/company/detail.html:142 #: company/templates/company/sidebar.html:29 -#: order/templates/order/return_order_base.html:13 +#: order/templates/order/return_order_base.html:14 #: order/templates/order/return_orders.html:8 #: order/templates/order/return_orders.html:15 #: templates/InvenTree/settings/sidebar.html:61 @@ -4811,24 +4991,24 @@ msgid "Manufacturers" msgstr "メーカー" #: company/templates/company/manufacturer_part.html:35 -#: company/templates/company/supplier_part.html:227 -#: part/templates/part/detail.html:125 part/templates/part/part_base.html:83 +#: company/templates/company/supplier_part.html:228 +#: part/templates/part/detail.html:125 part/templates/part/part_base.html:84 msgid "Order part" msgstr "パーツの注文" #: company/templates/company/manufacturer_part.html:39 -#: templates/js/translated/company.js:1343 +#: templates/js/translated/company.js:1344 msgid "Edit manufacturer part" msgstr "メーカー・パーツの編集" #: company/templates/company/manufacturer_part.html:43 -#: templates/js/translated/company.js:1344 +#: templates/js/translated/company.js:1345 msgid "Delete manufacturer part" msgstr "メーカー・パーツを削除" #: company/templates/company/manufacturer_part.html:65 -#: company/templates/company/supplier_part.html:97 order/api.py:448 -#: order/serializers.py:564 +#: company/templates/company/supplier_part.html:98 order/api.py:411 +#: order/serializers.py:649 msgid "Internal Part" msgstr "内部パーツ" @@ -4837,8 +5017,8 @@ msgid "No manufacturer information available" msgstr "" #: company/templates/company/manufacturer_part.html:119 -#: company/templates/company/supplier_part.html:15 company/views.py:31 -#: part/admin.py:122 part/serializers.py:904 +#: company/templates/company/supplier_part.html:16 company/views.py:31 +#: part/admin.py:122 part/serializers.py:956 #: part/templates/part/part_sidebar.html:33 templates/InvenTree/search.html:190 #: templates/navbar.html:48 msgid "Suppliers" @@ -4887,112 +5067,113 @@ msgstr "" msgid "Contacts" msgstr "" -#: company/templates/company/supplier_part.html:50 -#: templates/js/translated/company.js:1526 +#: company/templates/company/supplier_part.html:51 +#: templates/js/translated/company.js:1527 msgid "Supplier part actions" msgstr "" -#: company/templates/company/supplier_part.html:55 #: company/templates/company/supplier_part.html:56 -#: company/templates/company/supplier_part.html:228 +#: company/templates/company/supplier_part.html:57 +#: company/templates/company/supplier_part.html:229 #: part/templates/part/detail.html:126 msgid "Order Part" msgstr "" -#: company/templates/company/supplier_part.html:60 #: company/templates/company/supplier_part.html:61 +#: company/templates/company/supplier_part.html:62 msgid "Update Availability" msgstr "" -#: company/templates/company/supplier_part.html:63 #: company/templates/company/supplier_part.html:64 -#: templates/js/translated/company.js:294 +#: company/templates/company/supplier_part.html:65 +#: templates/js/translated/company.js:295 msgid "Edit Supplier Part" msgstr "" -#: company/templates/company/supplier_part.html:68 #: company/templates/company/supplier_part.html:69 -#: templates/js/translated/company.js:269 +#: company/templates/company/supplier_part.html:70 +#: templates/js/translated/company.js:270 msgid "Duplicate Supplier Part" msgstr "" -#: company/templates/company/supplier_part.html:73 +#: company/templates/company/supplier_part.html:74 msgid "Delete Supplier Part" msgstr "" -#: company/templates/company/supplier_part.html:74 +#: company/templates/company/supplier_part.html:75 msgid "Delete Supplier Part" msgstr "" -#: company/templates/company/supplier_part.html:133 +#: company/templates/company/supplier_part.html:134 +#: order/templates/order/order_base.html:155 msgid "No supplier information available" msgstr "" -#: company/templates/company/supplier_part.html:139 order/serializers.py:553 -#: part/bom.py:287 part/bom.py:319 part/serializers.py:548 -#: templates/js/translated/company.js:349 templates/js/translated/part.js:1793 +#: company/templates/company/supplier_part.html:140 order/serializers.py:638 +#: part/bom.py:286 part/bom.py:315 part/serializers.py:592 +#: templates/js/translated/company.js:350 templates/js/translated/part.js:1793 #: templates/js/translated/pricing.js:510 -#: templates/js/translated/purchase_order.js:1920 -#: templates/js/translated/purchase_order.js:2098 +#: templates/js/translated/purchase_order.js:1904 +#: templates/js/translated/purchase_order.js:2082 msgid "SKU" msgstr "" -#: company/templates/company/supplier_part.html:206 +#: company/templates/company/supplier_part.html:207 msgid "Supplier Part Stock" msgstr "" -#: company/templates/company/supplier_part.html:209 -#: part/templates/part/detail.html:24 stock/templates/stock/location.html:204 +#: company/templates/company/supplier_part.html:210 +#: part/templates/part/detail.html:24 stock/templates/stock/location.html:205 msgid "Create new stock item" msgstr "" -#: company/templates/company/supplier_part.html:210 -#: part/templates/part/detail.html:25 stock/templates/stock/location.html:205 +#: company/templates/company/supplier_part.html:211 +#: part/templates/part/detail.html:25 stock/templates/stock/location.html:206 #: templates/js/translated/stock.js:543 msgid "New Stock Item" msgstr "" -#: company/templates/company/supplier_part.html:223 +#: company/templates/company/supplier_part.html:224 msgid "Supplier Part Orders" msgstr "" -#: company/templates/company/supplier_part.html:246 +#: company/templates/company/supplier_part.html:247 msgid "Pricing Information" msgstr "" -#: company/templates/company/supplier_part.html:251 -#: templates/js/translated/company.js:398 +#: company/templates/company/supplier_part.html:252 +#: templates/js/translated/company.js:399 #: templates/js/translated/pricing.js:684 msgid "Add Price Break" msgstr "" -#: company/templates/company/supplier_part.html:270 +#: company/templates/company/supplier_part.html:271 msgid "Supplier Part Notes" msgstr "" -#: company/templates/company/supplier_part.html:305 +#: company/templates/company/supplier_part.html:306 msgid "Supplier Part QR Code" msgstr "" -#: company/templates/company/supplier_part.html:316 +#: company/templates/company/supplier_part.html:317 msgid "Link Barcode to Supplier Part" msgstr "" -#: company/templates/company/supplier_part.html:388 +#: company/templates/company/supplier_part.html:389 msgid "Update Part Availability" msgstr "" #: company/templates/company/supplier_part_sidebar.html:5 -#: part/serializers.py:902 part/stocktake.py:223 +#: part/serializers.py:954 part/stocktake.py:223 #: part/templates/part/category.html:180 #: part/templates/part/category_sidebar.html:17 stock/admin.py:68 -#: stock/serializers.py:1014 stock/serializers.py:1192 -#: stock/templates/stock/location.html:167 -#: stock/templates/stock/location.html:188 -#: stock/templates/stock/location.html:200 +#: stock/serializers.py:1045 stock/serializers.py:1223 +#: stock/templates/stock/location.html:168 +#: stock/templates/stock/location.html:189 +#: stock/templates/stock/location.html:201 #: stock/templates/stock/location_sidebar.html:7 #: templates/InvenTree/search.html:155 templates/js/translated/part.js:1067 -#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2850 +#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2851 #: users/models.py:206 msgid "Stock Items" msgstr "在庫商品" @@ -5022,99 +5203,99 @@ msgstr "" msgid "New Company" msgstr "" -#: generic/states/tests.py:18 order/status_codes.py:13 +#: generic/states/fields.py:118 +msgid "Custom status key" +msgstr "" + +#: generic/states/fields.py:119 +msgid "Additional status information for this item" +msgstr "" + +#: generic/states/tests.py:22 order/status_codes.py:13 msgid "Placed" msgstr "設置済" -#: importer/mixins.py:263 +#: importer/mixins.py:261 msgid "Invalid export format" msgstr "" -#: importer/models.py:59 -msgid "Timestamp" -msgstr "" - -#: importer/models.py:64 +#: importer/models.py:65 msgid "Data file to import" msgstr "" -#: importer/models.py:73 templates/js/translated/tables.js:558 +#: importer/models.py:74 templates/js/translated/tables.js:558 msgid "Columns" msgstr "" -#: importer/models.py:84 +#: importer/models.py:85 msgid "Import status" msgstr "" -#: importer/models.py:94 +#: importer/models.py:95 msgid "Field Defaults" msgstr "" -#: importer/models.py:101 +#: importer/models.py:102 msgid "Field Overrides" msgstr "" -#: importer/models.py:108 +#: importer/models.py:109 msgid "Field Filters" msgstr "" -#: importer/models.py:230 +#: importer/models.py:239 msgid "Some required fields have not been mapped" msgstr "" -#: importer/models.py:387 +#: importer/models.py:396 msgid "Column is already mapped to a database field" msgstr "" -#: importer/models.py:392 +#: importer/models.py:401 msgid "Field is already mapped to a data column" msgstr "" -#: importer/models.py:401 +#: importer/models.py:410 msgid "Column mapping must be linked to a valid import session" msgstr "" -#: importer/models.py:406 +#: importer/models.py:415 msgid "Column does not exist in the data file" msgstr "" -#: importer/models.py:413 +#: importer/models.py:422 msgid "Field does not exist in the target model" msgstr "" -#: importer/models.py:417 +#: importer/models.py:426 msgid "Selected field is read-only" msgstr "" -#: importer/models.py:422 importer/models.py:493 +#: importer/models.py:431 importer/models.py:502 msgid "Import Session" msgstr "" -#: importer/models.py:426 +#: importer/models.py:435 msgid "Field" msgstr "" -#: importer/models.py:428 +#: importer/models.py:437 msgid "Column" msgstr "" -#: importer/models.py:497 +#: importer/models.py:506 msgid "Row Index" msgstr "" -#: importer/models.py:500 +#: importer/models.py:509 msgid "Original row data" msgstr "" -#: importer/models.py:503 part/models.py:3951 -msgid "Data" -msgstr "" - -#: importer/models.py:505 machine/models.py:110 +#: importer/models.py:514 machine/models.py:110 msgid "Errors" msgstr "" -#: importer/models.py:507 part/api.py:873 +#: importer/models.py:516 part/api.py:857 msgid "Valid" msgstr "" @@ -5166,19 +5347,19 @@ msgstr "" msgid "Row has already been completed" msgstr "" -#: importer/status_codes.py:11 +#: importer/status_codes.py:13 msgid "Initializing" msgstr "" -#: importer/status_codes.py:12 +#: importer/status_codes.py:18 msgid "Mapping Columns" msgstr "" -#: importer/status_codes.py:13 +#: importer/status_codes.py:21 msgid "Importing Data" msgstr "" -#: importer/status_codes.py:16 +#: importer/status_codes.py:24 msgid "Processing Data" msgstr "" @@ -5202,52 +5383,52 @@ msgstr "" msgid "Value must be a valid dictionary object" msgstr "" -#: machine/machine_types/label_printer.py:215 +#: machine/machine_types/label_printer.py:216 msgid "Copies" msgstr "" -#: machine/machine_types/label_printer.py:216 +#: machine/machine_types/label_printer.py:217 msgid "Number of copies to print for each label" msgstr "" -#: machine/machine_types/label_printer.py:231 +#: machine/machine_types/label_printer.py:232 msgid "Connected" msgstr "" -#: machine/machine_types/label_printer.py:232 order/api.py:1410 -#: templates/js/translated/sales_order.js:1078 +#: machine/machine_types/label_printer.py:233 order/api.py:1532 +#: templates/js/translated/sales_order.js:1044 msgid "Unknown" msgstr "" -#: machine/machine_types/label_printer.py:233 +#: machine/machine_types/label_printer.py:234 msgid "Printing" msgstr "" -#: machine/machine_types/label_printer.py:234 +#: machine/machine_types/label_printer.py:235 msgid "No media" msgstr "" -#: machine/machine_types/label_printer.py:235 +#: machine/machine_types/label_printer.py:236 msgid "Paper jam" msgstr "" -#: machine/machine_types/label_printer.py:236 +#: machine/machine_types/label_printer.py:237 msgid "Disconnected" msgstr "" -#: machine/machine_types/label_printer.py:243 +#: machine/machine_types/label_printer.py:244 msgid "Label Printer" msgstr "" -#: machine/machine_types/label_printer.py:244 +#: machine/machine_types/label_printer.py:245 msgid "Directly print labels for various items." msgstr "" -#: machine/machine_types/label_printer.py:250 +#: machine/machine_types/label_printer.py:251 msgid "Printer Location" msgstr "" -#: machine/machine_types/label_printer.py:251 +#: machine/machine_types/label_printer.py:252 msgid "Scope the printer to a specific location" msgstr "" @@ -5307,79 +5488,75 @@ msgstr "" #: report/templates/report/inventree_purchase_order_report.html:31 #: report/templates/report/inventree_sales_order_report.html:31 #: templates/js/translated/order.js:352 -#: templates/js/translated/purchase_order.js:2195 -#: templates/js/translated/sales_order.js:1883 +#: templates/js/translated/purchase_order.js:2179 +#: templates/js/translated/sales_order.js:1864 msgid "Total Price" msgstr "" -#: order/api.py:80 order/api.py:151 order/serializers.py:93 -#: order/templates/order/order_base.html:123 -#: order/templates/order/return_order_base.html:116 -#: order/templates/order/sales_order_base.html:125 +#: order/api.py:78 order/api.py:149 order/serializers.py:124 +#: order/templates/order/order_base.html:124 +#: order/templates/order/return_order_base.html:117 +#: order/templates/order/sales_order_base.html:126 msgid "Order Status" msgstr "" -#: order/api.py:88 order/templates/order/order_base.html:111 -#: order/templates/order/return_order_base.html:104 -#: order/templates/order/sales_order_base.html:113 +#: order/api.py:86 order/templates/order/order_base.html:112 +#: order/templates/order/return_order_base.html:105 +#: order/templates/order/sales_order_base.html:114 msgid "Order Reference" msgstr "" -#: order/api.py:116 templates/js/translated/table_filters.js:93 +#: order/api.py:114 order/api.py:1022 +#: templates/js/translated/table_filters.js:93 #: templates/js/translated/table_filters.js:625 #: templates/js/translated/table_filters.js:651 #: templates/js/translated/table_filters.js:666 msgid "Outstanding" msgstr "" -#: order/api.py:132 +#: order/api.py:130 msgid "Has Project Code" msgstr "" -#: order/api.py:155 templates/js/translated/table_filters.js:201 +#: order/api.py:153 templates/js/translated/table_filters.js:201 #: templates/js/translated/table_filters.js:791 msgid "Has Pricing" msgstr "" -#: order/api.py:230 -msgid "No matching purchase order found" -msgstr "" - -#: order/api.py:425 order/api.py:763 order/models.py:1484 order/models.py:1598 -#: order/models.py:1649 order/models.py:1764 order/models.py:1923 -#: order/models.py:2383 order/models.py:2439 -#: templates/js/translated/sales_order.js:1524 +#: order/api.py:375 order/api.py:771 order/api.py:986 order/models.py:1500 +#: order/models.py:1614 order/models.py:1665 order/models.py:1793 +#: order/models.py:1956 order/models.py:2422 order/models.py:2478 +#: templates/js/translated/sales_order.js:1490 msgid "Order" msgstr "" -#: order/api.py:429 order/api.py:784 +#: order/api.py:379 order/api.py:809 msgid "Order Complete" msgstr "" -#: order/api.py:452 +#: order/api.py:430 msgid "Order Pending" msgstr "" -#: order/api.py:1404 order/models.py:379 order/models.py:1485 -#: order/models.py:1599 order/templates/order/order_base.html:9 -#: order/templates/order/order_base.html:18 +#: order/api.py:1526 order/models.py:386 order/models.py:1501 +#: order/models.py:1615 order/templates/order/order_base.html:10 +#: order/templates/order/order_base.html:19 #: report/templates/report/inventree_purchase_order_report.html:14 -#: stock/serializers.py:120 stock/templates/stock/item_base.html:176 +#: stock/serializers.py:121 stock/templates/stock/item_base.html:173 #: templates/email/overdue_purchase_order.html:15 #: templates/js/translated/part.js:1752 templates/js/translated/pricing.js:804 -#: templates/js/translated/purchase_order.js:168 -#: templates/js/translated/purchase_order.js:753 -#: templates/js/translated/purchase_order.js:1743 -#: templates/js/translated/stock.js:2345 templates/js/translated/stock.js:2991 +#: templates/js/translated/purchase_order.js:736 +#: templates/js/translated/purchase_order.js:1727 +#: templates/js/translated/stock.js:2346 templates/js/translated/stock.js:2992 msgid "Purchase Order" msgstr "" -#: order/api.py:1408 order/models.py:2091 order/models.py:2384 -#: order/models.py:2440 order/templates/order/return_order_base.html:9 -#: order/templates/order/return_order_base.html:28 +#: order/api.py:1530 order/models.py:2124 order/models.py:2423 +#: order/models.py:2479 order/templates/order/return_order_base.html:10 +#: order/templates/order/return_order_base.html:29 #: report/templates/report/inventree_return_order_report.html:13 #: templates/js/translated/return_order.js:280 -#: templates/js/translated/stock.js:3025 +#: templates/js/translated/stock.js:3026 msgid "Return Order" msgstr "" @@ -5387,751 +5564,782 @@ msgstr "" msgid "Total price for this order" msgstr "" -#: order/models.py:95 order/serializers.py:71 +#: order/models.py:95 order/serializers.py:73 msgid "Order Currency" msgstr "" -#: order/models.py:98 order/serializers.py:72 +#: order/models.py:98 order/serializers.py:74 msgid "Currency for this order (leave blank to use company default)" msgstr "" -#: order/models.py:246 +#: order/models.py:243 msgid "Contact does not match selected company" msgstr "" -#: order/models.py:289 +#: order/models.py:296 msgid "Order description (optional)" msgstr "" -#: order/models.py:298 +#: order/models.py:305 msgid "Select project code for this order" msgstr "" -#: order/models.py:302 order/models.py:1385 order/models.py:1817 +#: order/models.py:309 order/models.py:1402 order/models.py:1846 msgid "Link to external page" msgstr "外部ページへのリンク" -#: order/models.py:310 +#: order/models.py:317 msgid "Expected date for order delivery. Order will be overdue after this date." msgstr "" -#: order/models.py:324 +#: order/models.py:331 msgid "Created By" msgstr "" -#: order/models.py:332 +#: order/models.py:339 msgid "User or group responsible for this order" msgstr "" -#: order/models.py:343 +#: order/models.py:350 msgid "Point of contact for this order" msgstr "" -#: order/models.py:353 +#: order/models.py:360 msgid "Company address for this order" msgstr "" -#: order/models.py:468 order/models.py:979 +#: order/models.py:480 order/models.py:1006 msgid "Order reference" msgstr "" -#: order/models.py:477 +#: order/models.py:489 msgid "Purchase order status" msgstr "" -#: order/models.py:492 +#: order/models.py:504 msgid "Company from which the items are being ordered" msgstr "" -#: order/models.py:503 order/templates/order/order_base.html:153 -#: templates/js/translated/purchase_order.js:1772 +#: order/models.py:515 order/templates/order/order_base.html:162 +#: templates/js/translated/purchase_order.js:1756 msgid "Supplier Reference" msgstr "" -#: order/models.py:504 +#: order/models.py:516 msgid "Supplier order reference code" msgstr "" -#: order/models.py:513 +#: order/models.py:525 msgid "received by" msgstr "" -#: order/models.py:519 order/models.py:2173 +#: order/models.py:531 order/models.py:2212 msgid "Issue Date" msgstr "" -#: order/models.py:520 order/models.py:2174 +#: order/models.py:532 order/models.py:2213 msgid "Date order was issued" msgstr "" -#: order/models.py:527 order/models.py:2181 +#: order/models.py:539 order/models.py:2220 msgid "Date order was completed" msgstr "" -#: order/models.py:571 +#: order/models.py:549 order/models.py:1552 +msgid "Destination for received items" +msgstr "" + +#: order/models.py:593 msgid "Part supplier must match PO supplier" msgstr "" -#: order/models.py:806 +#: order/models.py:828 msgid "Quantity must be a positive number" msgstr "" -#: order/models.py:991 +#: order/models.py:1018 msgid "Company to which the items are being sold" msgstr "" -#: order/models.py:1003 +#: order/models.py:1030 msgid "Sales order status" msgstr "" -#: order/models.py:1014 order/models.py:2166 +#: order/models.py:1041 order/models.py:2205 msgid "Customer Reference " msgstr "" -#: order/models.py:1015 order/models.py:2167 +#: order/models.py:1042 order/models.py:2206 msgid "Customer order reference code" msgstr "" -#: order/models.py:1019 order/models.py:1771 -#: templates/js/translated/sales_order.js:879 -#: templates/js/translated/sales_order.js:1060 +#: order/models.py:1046 order/models.py:1800 +#: templates/js/translated/sales_order.js:838 +#: templates/js/translated/sales_order.js:1026 msgid "Shipment Date" msgstr "" -#: order/models.py:1028 +#: order/models.py:1055 msgid "shipped by" msgstr "" -#: order/models.py:1077 +#: order/models.py:1094 msgid "Order is already complete" msgstr "" -#: order/models.py:1080 +#: order/models.py:1097 msgid "Order is already cancelled" msgstr "" -#: order/models.py:1084 +#: order/models.py:1101 msgid "Only an open order can be marked as complete" msgstr "" -#: order/models.py:1088 +#: order/models.py:1105 msgid "Order cannot be completed as there are incomplete shipments" msgstr "" -#: order/models.py:1093 +#: order/models.py:1110 msgid "Order cannot be completed as there are incomplete line items" msgstr "" -#: order/models.py:1357 +#: order/models.py:1374 msgid "Item quantity" msgstr "" -#: order/models.py:1374 +#: order/models.py:1391 msgid "Line item reference" msgstr "" -#: order/models.py:1381 +#: order/models.py:1398 msgid "Line item notes" msgstr "" -#: order/models.py:1393 +#: order/models.py:1410 msgid "Target date for this line item (leave blank to use the target date from the order)" msgstr "" -#: order/models.py:1414 +#: order/models.py:1431 msgid "Line item description (optional)" msgstr "" -#: order/models.py:1420 -msgid "Context" -msgstr "" - -#: order/models.py:1421 +#: order/models.py:1438 msgid "Additional context for this line" msgstr "" -#: order/models.py:1431 +#: order/models.py:1448 msgid "Unit price" msgstr "" -#: order/models.py:1445 +#: order/models.py:1462 msgid "Purchase Order Line Item" msgstr "" -#: order/models.py:1469 +#: order/models.py:1486 msgid "Supplier part must match supplier" msgstr "" -#: order/models.py:1476 -msgid "deleted" -msgstr "" - -#: order/models.py:1504 +#: order/models.py:1520 msgid "Supplier part" msgstr "" -#: order/models.py:1511 order/templates/order/order_base.html:201 +#: order/models.py:1527 order/templates/order/order_base.html:210 #: templates/js/translated/part.js:1876 templates/js/translated/part.js:1908 -#: templates/js/translated/purchase_order.js:1369 -#: templates/js/translated/purchase_order.js:2239 +#: templates/js/translated/purchase_order.js:1352 +#: templates/js/translated/purchase_order.js:2223 #: templates/js/translated/return_order.js:762 #: templates/js/translated/table_filters.js:119 #: templates/js/translated/table_filters.js:605 msgid "Received" msgstr "" -#: order/models.py:1512 +#: order/models.py:1528 msgid "Number of items received" msgstr "" -#: order/models.py:1520 stock/models.py:959 stock/serializers.py:610 -#: stock/templates/stock/item_base.html:183 -#: templates/js/translated/stock.js:2396 +#: order/models.py:1536 stock/models.py:1036 stock/serializers.py:637 +#: stock/templates/stock/item_base.html:180 +#: templates/js/translated/stock.js:2397 msgid "Purchase Price" msgstr "購入金額" -#: order/models.py:1521 +#: order/models.py:1537 msgid "Unit purchase price" msgstr "" -#: order/models.py:1536 -msgid "Where does the Purchaser want this item to be stored?" -msgstr "" - -#: order/models.py:1587 +#: order/models.py:1603 msgid "Purchase Order Extra Line" msgstr "" -#: order/models.py:1616 +#: order/models.py:1632 msgid "Sales Order Line Item" msgstr "" -#: order/models.py:1637 +#: order/models.py:1653 msgid "Virtual part cannot be assigned to a sales order" msgstr "" -#: order/models.py:1642 +#: order/models.py:1658 msgid "Only salable parts can be assigned to a sales order" msgstr "" -#: order/models.py:1668 part/templates/part/part_pricing.html:107 -#: part/templates/part/prices.html:139 templates/js/translated/pricing.js:957 +#: order/models.py:1684 part/templates/part/part_pricing.html:107 +#: part/templates/part/prices.html:139 templates/js/translated/pricing.js:955 msgid "Sale Price" msgstr "" -#: order/models.py:1669 +#: order/models.py:1685 msgid "Unit sale price" msgstr "" -#: order/models.py:1678 order/status_codes.py:48 -#: templates/js/translated/sales_order.js:1559 -#: templates/js/translated/sales_order.js:1680 -#: templates/js/translated/sales_order.js:1993 +#: order/models.py:1694 order/status_codes.py:50 +#: templates/js/translated/sales_order.js:1525 +#: templates/js/translated/sales_order.js:1661 +#: templates/js/translated/sales_order.js:1974 msgid "Shipped" msgstr "発送済み" -#: order/models.py:1679 +#: order/models.py:1695 msgid "Shipped quantity" msgstr "" -#: order/models.py:1751 +#: order/models.py:1769 msgid "Sales Order Shipment" msgstr "" -#: order/models.py:1772 +#: order/models.py:1801 msgid "Date of shipment" msgstr "" -#: order/models.py:1778 templates/js/translated/sales_order.js:1072 +#: order/models.py:1807 templates/js/translated/sales_order.js:1038 msgid "Delivery Date" msgstr "" -#: order/models.py:1779 +#: order/models.py:1808 msgid "Date of delivery of shipment" msgstr "" -#: order/models.py:1787 +#: order/models.py:1816 msgid "Checked By" msgstr "" -#: order/models.py:1788 +#: order/models.py:1817 msgid "User who checked this shipment" msgstr "" -#: order/models.py:1795 order/models.py:2018 order/serializers.py:1475 -#: order/serializers.py:1585 templates/js/translated/model_renderers.js:455 +#: order/models.py:1824 order/models.py:2051 order/serializers.py:1601 +#: order/serializers.py:1725 +#: report/templates/report/inventree_sales_order_shipment_report.html:14 +#: templates/js/translated/model_renderers.js:458 +#: templates/js/translated/sales_order.js:1615 msgid "Shipment" msgstr "" -#: order/models.py:1796 +#: order/models.py:1825 msgid "Shipment number" msgstr "" -#: order/models.py:1804 +#: order/models.py:1833 msgid "Tracking Number" msgstr "" -#: order/models.py:1805 +#: order/models.py:1834 msgid "Shipment tracking information" msgstr "" -#: order/models.py:1812 +#: order/models.py:1841 msgid "Invoice Number" msgstr "" -#: order/models.py:1813 +#: order/models.py:1842 msgid "Reference number for associated invoice" msgstr "" -#: order/models.py:1833 +#: order/models.py:1862 msgid "Shipment has already been sent" msgstr "" -#: order/models.py:1836 +#: order/models.py:1865 msgid "Shipment has no allocated stock items" msgstr "" -#: order/models.py:1912 +#: order/models.py:1945 msgid "Sales Order Extra Line" msgstr "" -#: order/models.py:1941 +#: order/models.py:1974 msgid "Sales Order Allocation" msgstr "" -#: order/models.py:1964 order/models.py:1966 +#: order/models.py:1997 order/models.py:1999 msgid "Stock item has not been assigned" msgstr "" -#: order/models.py:1973 +#: order/models.py:2006 msgid "Cannot allocate stock item to a line with a different part" msgstr "" -#: order/models.py:1976 +#: order/models.py:2009 msgid "Cannot allocate stock to a line without a part" msgstr "" -#: order/models.py:1979 +#: order/models.py:2012 msgid "Allocation quantity cannot exceed stock quantity" msgstr "" -#: order/models.py:1998 order/serializers.py:1345 +#: order/models.py:2031 order/serializers.py:1471 msgid "Quantity must be 1 for serialized stock item" msgstr "" -#: order/models.py:2001 +#: order/models.py:2034 msgid "Sales order does not match shipment" msgstr "" -#: order/models.py:2002 plugin/base/barcodes/api.py:524 +#: order/models.py:2035 plugin/base/barcodes/api.py:629 msgid "Shipment does not match sales order" msgstr "" -#: order/models.py:2010 +#: order/models.py:2043 msgid "Line" msgstr "" -#: order/models.py:2019 +#: order/models.py:2052 msgid "Sales order shipment reference" msgstr "" -#: order/models.py:2032 order/models.py:2391 +#: order/models.py:2065 order/models.py:2430 #: templates/js/translated/return_order.js:720 msgid "Item" msgstr "" -#: order/models.py:2033 +#: order/models.py:2066 msgid "Select stock item to allocate" msgstr "" -#: order/models.py:2042 +#: order/models.py:2075 msgid "Enter stock allocation quantity" msgstr "" -#: order/models.py:2136 +#: order/models.py:2175 msgid "Return Order reference" msgstr "" -#: order/models.py:2148 +#: order/models.py:2187 msgid "Company from which items are being returned" msgstr "" -#: order/models.py:2160 +#: order/models.py:2199 msgid "Return order status" msgstr "" -#: order/models.py:2362 +#: order/models.py:2401 msgid "Return Order Line Item" msgstr "" -#: order/models.py:2376 +#: order/models.py:2415 msgid "Only serialized items can be assigned to a Return Order" msgstr "" -#: order/models.py:2392 +#: order/models.py:2431 msgid "Select item to return from customer" msgstr "" -#: order/models.py:2398 +#: order/models.py:2437 msgid "Received Date" msgstr "" -#: order/models.py:2399 +#: order/models.py:2438 msgid "The date this this return item was received" msgstr "" -#: order/models.py:2410 templates/js/translated/return_order.js:731 +#: order/models.py:2449 templates/js/translated/return_order.js:731 #: templates/js/translated/table_filters.js:122 msgid "Outcome" msgstr "" -#: order/models.py:2411 +#: order/models.py:2450 msgid "Outcome for this line item" msgstr "" -#: order/models.py:2418 +#: order/models.py:2457 msgid "Cost associated with return or repair for this line item" msgstr "" -#: order/models.py:2428 +#: order/models.py:2467 msgid "Return Order Extra Line" msgstr "" -#: order/serializers.py:86 +#: order/serializers.py:87 +msgid "Order ID" +msgstr "" + +#: order/serializers.py:87 +msgid "ID of the order to duplicate" +msgstr "" + +#: order/serializers.py:93 +msgid "Copy Lines" +msgstr "" + +#: order/serializers.py:94 +msgid "Copy line items from the original order" +msgstr "" + +#: order/serializers.py:100 +msgid "Copy Extra Lines" +msgstr "" + +#: order/serializers.py:101 +msgid "Copy extra line items from the original order" +msgstr "" + +#: order/serializers.py:117 msgid "Completed Lines" msgstr "" -#: order/serializers.py:283 stock/admin.py:195 +#: order/serializers.py:161 +msgid "Duplicate Order" +msgstr "" + +#: order/serializers.py:162 +msgid "Specify options for duplicating this order" +msgstr "" + +#: order/serializers.py:234 +msgid "Invalid order ID" +msgstr "" + +#: order/serializers.py:374 stock/admin.py:196 msgid "Supplier Name" msgstr "" -#: order/serializers.py:331 +#: order/serializers.py:416 msgid "Order cannot be cancelled" msgstr "" -#: order/serializers.py:346 order/serializers.py:1366 +#: order/serializers.py:431 order/serializers.py:1492 msgid "Allow order to be closed with incomplete line items" msgstr "" -#: order/serializers.py:356 order/serializers.py:1376 +#: order/serializers.py:441 order/serializers.py:1502 msgid "Order has incomplete line items" msgstr "" -#: order/serializers.py:506 +#: order/serializers.py:591 msgid "Order is not open" msgstr "" -#: order/serializers.py:527 +#: order/serializers.py:612 msgid "Auto Pricing" msgstr "" -#: order/serializers.py:529 +#: order/serializers.py:614 msgid "Automatically calculate purchase price based on supplier part data" msgstr "" -#: order/serializers.py:539 +#: order/serializers.py:624 msgid "Purchase price currency" msgstr "" -#: order/serializers.py:545 +#: order/serializers.py:630 msgid "Merge Items" msgstr "" -#: order/serializers.py:547 +#: order/serializers.py:632 msgid "Merge items with the same part, destination and target date into one line item" msgstr "" -#: order/serializers.py:560 part/models.py:1033 +#: order/serializers.py:645 part/models.py:1094 part/serializers.py:387 msgid "Internal Part Number" msgstr "" -#: order/serializers.py:568 +#: order/serializers.py:653 msgid "Internal Part Name" msgstr "" -#: order/serializers.py:584 +#: order/serializers.py:669 msgid "Supplier part must be specified" msgstr "" -#: order/serializers.py:587 +#: order/serializers.py:672 msgid "Purchase order must be specified" msgstr "" -#: order/serializers.py:595 +#: order/serializers.py:680 msgid "Supplier must match purchase order" msgstr "" -#: order/serializers.py:596 +#: order/serializers.py:681 msgid "Purchase order must match supplier" msgstr "" -#: order/serializers.py:639 order/serializers.py:1446 +#: order/serializers.py:724 order/serializers.py:1572 msgid "Line Item" msgstr "" -#: order/serializers.py:645 +#: order/serializers.py:730 msgid "Line item does not match purchase order" msgstr "" -#: order/serializers.py:655 order/serializers.py:779 order/serializers.py:1782 +#: order/serializers.py:740 order/serializers.py:881 order/serializers.py:1934 msgid "Select destination location for received items" msgstr "" -#: order/serializers.py:671 templates/js/translated/purchase_order.js:1130 +#: order/serializers.py:756 templates/js/translated/purchase_order.js:1113 #: templates/js/translated/stock.js:1200 msgid "Enter batch code for incoming stock items" msgstr "" -#: order/serializers.py:679 templates/js/translated/purchase_order.js:1155 +#: order/serializers.py:764 templates/js/translated/purchase_order.js:1138 msgid "Enter serial numbers for incoming stock items" msgstr "" -#: order/serializers.py:691 +#: order/serializers.py:776 msgid "Override packaging information for incoming stock items" msgstr "" -#: order/serializers.py:699 +#: order/serializers.py:784 msgid "Additional note for incoming stock items" msgstr "" -#: order/serializers.py:706 templates/js/translated/barcode.js:52 +#: order/serializers.py:791 templates/js/translated/barcode.js:52 msgid "Barcode" msgstr "" -#: order/serializers.py:707 +#: order/serializers.py:792 msgid "Scanned barcode" msgstr "" -#: order/serializers.py:723 +#: order/serializers.py:808 msgid "Barcode is already in use" msgstr "" -#: order/serializers.py:747 +#: order/serializers.py:831 msgid "An integer quantity must be provided for trackable parts" msgstr "" -#: order/serializers.py:795 order/serializers.py:1798 +#: order/serializers.py:898 order/serializers.py:1950 msgid "Line items must be provided" msgstr "" -#: order/serializers.py:811 +#: order/serializers.py:914 msgid "Destination location must be specified" msgstr "" -#: order/serializers.py:822 +#: order/serializers.py:925 msgid "Supplied barcode values must be unique" msgstr "" -#: order/serializers.py:1187 +#: order/serializers.py:1221 msgid "Sale price currency" msgstr "" -#: order/serializers.py:1248 +#: order/serializers.py:1260 +msgid "Allocated Items" +msgstr "" + +#: order/serializers.py:1374 msgid "No shipment details provided" msgstr "" -#: order/serializers.py:1309 order/serializers.py:1455 +#: order/serializers.py:1435 order/serializers.py:1581 msgid "Line item is not associated with this order" msgstr "" -#: order/serializers.py:1328 +#: order/serializers.py:1454 msgid "Quantity must be positive" msgstr "" -#: order/serializers.py:1465 +#: order/serializers.py:1591 msgid "Enter serial numbers to allocate" msgstr "割り当てるシリアル番号を入力" -#: order/serializers.py:1487 order/serializers.py:1593 +#: order/serializers.py:1613 order/serializers.py:1733 msgid "Shipment has already been shipped" msgstr "" -#: order/serializers.py:1490 order/serializers.py:1596 +#: order/serializers.py:1616 order/serializers.py:1736 msgid "Shipment is not associated with this order" msgstr "" -#: order/serializers.py:1537 +#: order/serializers.py:1671 msgid "No match found for the following serial numbers" msgstr "" -#: order/serializers.py:1544 -msgid "The following serial numbers are already allocated" +#: order/serializers.py:1678 +msgid "The following serial numbers are unavailable" msgstr "" -#: order/serializers.py:1752 +#: order/serializers.py:1904 msgid "Return order line item" msgstr "" -#: order/serializers.py:1758 +#: order/serializers.py:1910 msgid "Line item does not match return order" msgstr "" -#: order/serializers.py:1761 +#: order/serializers.py:1913 msgid "Line item has already been received" msgstr "" -#: order/serializers.py:1790 +#: order/serializers.py:1942 msgid "Items can only be received against orders which are in progress" msgstr "" -#: order/serializers.py:1873 +#: order/serializers.py:2025 msgid "Line price currency" msgstr "" -#: order/status_codes.py:17 order/status_codes.py:52 stock/status_codes.py:16 +#: order/status_codes.py:17 order/status_codes.py:54 stock/status_codes.py:16 msgid "Lost" msgstr "紛失" -#: order/status_codes.py:18 order/status_codes.py:53 stock/status_codes.py:22 +#: order/status_codes.py:18 order/status_codes.py:55 stock/status_codes.py:24 msgid "Returned" msgstr "返品済" -#: order/status_codes.py:45 order/status_codes.py:77 +#: order/status_codes.py:47 order/status_codes.py:79 msgid "In Progress" msgstr "処理中" -#: order/status_codes.py:101 +#: order/status_codes.py:105 msgid "Return" msgstr "" -#: order/status_codes.py:104 +#: order/status_codes.py:108 msgid "Repair" msgstr "" -#: order/status_codes.py:107 +#: order/status_codes.py:111 msgid "Replace" msgstr "" -#: order/status_codes.py:110 +#: order/status_codes.py:114 msgid "Refund" msgstr "" -#: order/status_codes.py:113 +#: order/status_codes.py:117 msgid "Reject" msgstr "" -#: order/tasks.py:25 +#: order/tasks.py:30 msgid "Overdue Purchase Order" msgstr "" -#: order/tasks.py:30 +#: order/tasks.py:35 #, python-brace-format msgid "Purchase order {po} is now overdue" msgstr "" -#: order/tasks.py:75 +#: order/tasks.py:80 msgid "Overdue Sales Order" msgstr "" -#: order/tasks.py:80 +#: order/tasks.py:85 #, python-brace-format msgid "Sales order {so} is now overdue" msgstr "" -#: order/templates/order/order_base.html:51 +#: order/templates/order/order_base.html:52 msgid "Print purchase order report" msgstr "" -#: order/templates/order/order_base.html:53 -#: order/templates/order/return_order_base.html:62 -#: order/templates/order/sales_order_base.html:62 +#: order/templates/order/order_base.html:54 +#: order/templates/order/return_order_base.html:63 +#: order/templates/order/sales_order_base.html:63 msgid "Export order to file" msgstr "" -#: order/templates/order/order_base.html:59 -#: order/templates/order/return_order_base.html:72 -#: order/templates/order/sales_order_base.html:71 +#: order/templates/order/order_base.html:60 +#: order/templates/order/return_order_base.html:73 +#: order/templates/order/sales_order_base.html:72 msgid "Order actions" msgstr "" -#: order/templates/order/order_base.html:64 -#: order/templates/order/return_order_base.html:76 -#: order/templates/order/sales_order_base.html:75 +#: order/templates/order/order_base.html:65 +#: order/templates/order/return_order_base.html:77 +#: order/templates/order/sales_order_base.html:76 msgid "Edit order" msgstr "" -#: order/templates/order/order_base.html:68 +#: order/templates/order/order_base.html:69 msgid "Duplicate order" msgstr "" -#: order/templates/order/order_base.html:73 -#: order/templates/order/return_order_base.html:78 -#: order/templates/order/sales_order_base.html:77 +#: order/templates/order/order_base.html:74 +#: order/templates/order/return_order_base.html:79 +#: order/templates/order/sales_order_base.html:78 msgid "Hold order" msgstr "" -#: order/templates/order/order_base.html:78 -#: order/templates/order/return_order_base.html:81 -#: order/templates/order/sales_order_base.html:80 +#: order/templates/order/order_base.html:79 +#: order/templates/order/return_order_base.html:82 +#: order/templates/order/sales_order_base.html:81 msgid "Cancel order" msgstr "" -#: order/templates/order/order_base.html:84 #: order/templates/order/order_base.html:85 -#: order/templates/order/return_order_base.html:85 +#: order/templates/order/order_base.html:86 #: order/templates/order/return_order_base.html:86 -#: order/templates/order/sales_order_base.html:86 +#: order/templates/order/return_order_base.html:87 #: order/templates/order/sales_order_base.html:87 +#: order/templates/order/sales_order_base.html:88 msgid "Issue Order" msgstr "" -#: order/templates/order/order_base.html:88 -#: order/templates/order/return_order_base.html:89 -msgid "Mark order as complete" -msgstr "" - #: order/templates/order/order_base.html:89 #: order/templates/order/return_order_base.html:90 -#: order/templates/order/sales_order_base.html:100 +msgid "Mark order as complete" +msgstr "" + +#: order/templates/order/order_base.html:90 +#: order/templates/order/return_order_base.html:91 +#: order/templates/order/sales_order_base.html:101 msgid "Complete Order" msgstr "" -#: order/templates/order/order_base.html:96 +#: order/templates/order/order_base.html:97 msgid "Supplier part thumbnail" msgstr "" -#: order/templates/order/order_base.html:116 -#: order/templates/order/return_order_base.html:109 -#: order/templates/order/sales_order_base.html:118 +#: order/templates/order/order_base.html:117 +#: order/templates/order/return_order_base.html:110 +#: order/templates/order/sales_order_base.html:119 msgid "Order Description" msgstr "" -#: order/templates/order/order_base.html:146 -msgid "No suppplier information available" -msgstr "" - -#: order/templates/order/order_base.html:159 -#: order/templates/order/sales_order_base.html:164 +#: order/templates/order/order_base.html:168 +#: order/templates/order/sales_order_base.html:165 msgid "Completed Line Items" msgstr "" -#: order/templates/order/order_base.html:165 -#: order/templates/order/sales_order_base.html:170 -#: order/templates/order/sales_order_base.html:180 +#: order/templates/order/order_base.html:174 +#: order/templates/order/sales_order_base.html:171 +#: order/templates/order/sales_order_base.html:181 msgid "Incomplete" msgstr "" -#: order/templates/order/order_base.html:184 -#: order/templates/order/return_order_base.html:160 +#: order/templates/order/order_base.html:193 +#: order/templates/order/return_order_base.html:161 #: report/templates/report/inventree_build_order_report.html:121 msgid "Issued" msgstr "" -#: order/templates/order/order_base.html:229 +#: order/templates/order/order_base.html:238 msgid "Total cost" msgstr "" -#: order/templates/order/order_base.html:233 -#: order/templates/order/return_order_base.html:202 -#: order/templates/order/sales_order_base.html:246 +#: order/templates/order/order_base.html:242 +#: order/templates/order/return_order_base.html:203 +#: order/templates/order/sales_order_base.html:247 msgid "Total cost could not be calculated" msgstr "" -#: order/templates/order/order_base.html:335 +#: order/templates/order/order_base.html:344 msgid "Purchase Order QR Code" msgstr "" -#: order/templates/order/order_base.html:347 +#: order/templates/order/order_base.html:356 msgid "Link Barcode to Purchase Order" msgstr "" @@ -6184,12 +6392,12 @@ msgstr "" #: part/templates/part/import_wizard/ajax_match_references.html:42 #: part/templates/part/import_wizard/match_fields.html:71 #: part/templates/part/import_wizard/match_references.html:49 -#: templates/js/translated/bom.js:133 templates/js/translated/build.js:530 -#: templates/js/translated/build.js:1802 -#: templates/js/translated/purchase_order.js:696 -#: templates/js/translated/purchase_order.js:1288 +#: templates/js/translated/bom.js:133 templates/js/translated/build.js:533 +#: templates/js/translated/build.js:1805 +#: templates/js/translated/purchase_order.js:679 +#: templates/js/translated/purchase_order.js:1271 #: templates/js/translated/return_order.js:505 -#: templates/js/translated/sales_order.js:1145 +#: templates/js/translated/sales_order.js:1111 #: templates/js/translated/stock.js:720 templates/js/translated/stock.js:889 #: templates/patterns/wizard/match_fields.html:70 msgid "Remove row" @@ -6242,7 +6450,7 @@ msgstr "" #: order/templates/order/purchase_order_detail.html:27 #: order/templates/order/return_order_detail.html:24 #: order/templates/order/sales_order_detail.html:24 -#: templates/js/translated/purchase_order.js:414 +#: templates/js/translated/purchase_order.js:397 #: templates/js/translated/return_order.js:458 #: templates/js/translated/sales_order.js:237 msgid "Add Line Item" @@ -6277,45 +6485,45 @@ msgstr "" msgid "Order Notes" msgstr "" -#: order/templates/order/return_order_base.html:18 -#: order/templates/order/sales_order_base.html:18 +#: order/templates/order/return_order_base.html:19 +#: order/templates/order/sales_order_base.html:19 msgid "Customer logo thumbnail" msgstr "" -#: order/templates/order/return_order_base.html:60 +#: order/templates/order/return_order_base.html:61 msgid "Print return order report" msgstr "" -#: order/templates/order/return_order_base.html:64 -#: order/templates/order/sales_order_base.html:64 +#: order/templates/order/return_order_base.html:65 +#: order/templates/order/sales_order_base.html:65 msgid "Print packing list" msgstr "" -#: order/templates/order/return_order_base.html:141 -#: order/templates/order/sales_order_base.html:158 +#: order/templates/order/return_order_base.html:142 +#: order/templates/order/sales_order_base.html:159 #: templates/js/translated/return_order.js:308 -#: templates/js/translated/sales_order.js:833 +#: templates/js/translated/sales_order.js:792 msgid "Customer Reference" msgstr "" -#: order/templates/order/return_order_base.html:198 -#: order/templates/order/sales_order_base.html:242 +#: order/templates/order/return_order_base.html:199 +#: order/templates/order/sales_order_base.html:243 #: part/templates/part/part_pricing.html:32 #: part/templates/part/part_pricing.html:58 #: part/templates/part/part_pricing.html:99 #: part/templates/part/part_pricing.html:114 #: templates/js/translated/part.js:1079 -#: templates/js/translated/purchase_order.js:1822 +#: templates/js/translated/purchase_order.js:1806 #: templates/js/translated/return_order.js:380 -#: templates/js/translated/sales_order.js:891 +#: templates/js/translated/sales_order.js:850 msgid "Total Cost" msgstr "" -#: order/templates/order/return_order_base.html:273 +#: order/templates/order/return_order_base.html:274 msgid "Return Order QR Code" msgstr "" -#: order/templates/order/return_order_base.html:285 +#: order/templates/order/return_order_base.html:286 msgid "Link Barcode to Return Order" msgstr "" @@ -6323,40 +6531,40 @@ msgstr "" msgid "Order Details" msgstr "" -#: order/templates/order/sales_order_base.html:60 +#: order/templates/order/sales_order_base.html:61 msgid "Print sales order report" msgstr "" -#: order/templates/order/sales_order_base.html:91 #: order/templates/order/sales_order_base.html:92 +#: order/templates/order/sales_order_base.html:93 msgid "Ship Items" msgstr "" -#: order/templates/order/sales_order_base.html:95 #: order/templates/order/sales_order_base.html:96 +#: order/templates/order/sales_order_base.html:97 msgid "Mark As Shipped" msgstr "" -#: order/templates/order/sales_order_base.html:99 -#: templates/js/translated/sales_order.js:536 +#: order/templates/order/sales_order_base.html:100 +#: templates/js/translated/sales_order.js:495 msgid "Complete Sales Order" msgstr "" -#: order/templates/order/sales_order_base.html:138 +#: order/templates/order/sales_order_base.html:139 msgid "This Sales Order has not been fully allocated" msgstr "" -#: order/templates/order/sales_order_base.html:176 +#: order/templates/order/sales_order_base.html:177 #: order/templates/order/sales_order_detail.html:99 #: order/templates/order/so_sidebar.html:11 msgid "Completed Shipments" msgstr "" -#: order/templates/order/sales_order_base.html:339 +#: order/templates/order/sales_order_base.html:340 msgid "Sales Order QR Code" msgstr "" -#: order/templates/order/sales_order_base.html:351 +#: order/templates/order/sales_order_base.html:352 msgid "Link Barcode to Sales Order" msgstr "" @@ -6370,7 +6578,7 @@ msgid "Pending Shipments" msgstr "" #: order/templates/order/sales_order_detail.html:71 -#: templates/js/translated/bom.js:1277 templates/js/translated/build.js:1063 +#: templates/js/translated/bom.js:1277 templates/js/translated/build.js:1066 #: templates/js/translated/filters.js:299 msgid "Actions" msgstr "" @@ -6383,39 +6591,40 @@ msgstr "" msgid "Match Supplier Parts" msgstr "" -#: order/views.py:406 +#: order/views.py:407 msgid "Sales order not found" msgstr "" -#: order/views.py:412 +#: order/views.py:413 msgid "Price not found" msgstr "" -#: order/views.py:415 +#: order/views.py:416 #, python-brace-format msgid "Updated {part} unit-price to {price}" msgstr "" -#: order/views.py:421 +#: order/views.py:422 #, python-brace-format msgid "Updated {part} unit-price to {price} and quantity to {qty}" msgstr "" -#: part/admin.py:48 part/models.py:1032 part/templates/part/part_base.html:269 +#: part/admin.py:48 part/models.py:1093 part/serializers.py:939 +#: part/templates/part/part_base.html:277 #: report/templates/report/inventree_stock_location_report.html:103 #: templates/js/translated/part.js:1233 templates/js/translated/part.js:2347 -#: templates/js/translated/stock.js:2121 +#: templates/js/translated/stock.js:2122 msgid "IPN" msgstr "" -#: part/admin.py:50 part/models.py:1041 part/templates/part/part_base.html:286 +#: part/admin.py:50 part/models.py:1102 part/templates/part/part_base.html:294 #: report/models.py:161 templates/js/translated/part.js:1238 #: templates/js/translated/part.js:2353 msgid "Revision" msgstr "" -#: part/admin.py:53 part/admin.py:319 part/models.py:1014 -#: part/templates/part/category.html:91 part/templates/part/part_base.html:307 +#: part/admin.py:53 part/admin.py:319 part/models.py:1075 +#: part/templates/part/category.html:91 part/templates/part/part_base.html:315 msgid "Keywords" msgstr "キーワード" @@ -6427,7 +6636,7 @@ msgstr "" msgid "Category ID" msgstr "カテゴリID" -#: part/admin.py:67 part/admin.py:304 part/serializers.py:880 +#: part/admin.py:67 part/admin.py:304 part/serializers.py:924 #: part/stocktake.py:222 msgid "Category Name" msgstr "カテゴリ名" @@ -6440,11 +6649,11 @@ msgstr "" msgid "Default Supplier ID" msgstr "" -#: part/admin.py:81 part/models.py:1000 part/templates/part/part_base.html:177 +#: part/admin.py:81 part/models.py:1061 part/templates/part/part_base.html:178 msgid "Variant Of" msgstr "" -#: part/admin.py:84 part/models.py:1138 part/templates/part/part_base.html:203 +#: part/admin.py:84 part/models.py:1199 part/templates/part/part_base.html:204 msgid "Minimum Stock" msgstr "" @@ -6452,23 +6661,23 @@ msgstr "" msgid "Used In" msgstr "" -#: part/admin.py:150 part/serializers.py:897 -#: part/templates/part/part_base.html:241 stock/admin.py:235 +#: part/admin.py:150 part/serializers.py:949 +#: part/templates/part/part_base.html:249 stock/admin.py:236 #: templates/js/translated/part.js:717 templates/js/translated/part.js:2159 msgid "Building" msgstr "" -#: part/admin.py:155 part/models.py:3202 part/models.py:3216 +#: part/admin.py:155 part/models.py:3253 part/models.py:3267 #: templates/js/translated/part.js:976 msgid "Minimum Cost" msgstr "" -#: part/admin.py:158 part/models.py:3209 part/models.py:3223 +#: part/admin.py:158 part/models.py:3260 part/models.py:3274 #: templates/js/translated/part.js:986 msgid "Maximum Cost" msgstr "" -#: part/admin.py:308 part/admin.py:387 stock/admin.py:57 stock/admin.py:215 +#: part/admin.py:308 part/admin.py:387 stock/admin.py:57 stock/admin.py:216 msgid "Parent ID" msgstr "" @@ -6481,8 +6690,8 @@ msgstr "" msgid "Category Path" msgstr "" -#: part/admin.py:325 part/models.py:425 part/serializers.py:130 -#: part/serializers.py:290 part/serializers.py:415 +#: part/admin.py:325 part/models.py:420 part/serializers.py:130 +#: part/serializers.py:323 part/serializers.py:459 #: part/templates/part/cat_link.html:3 part/templates/part/category.html:20 #: part/templates/part/category.html:138 part/templates/part/category.html:158 #: part/templates/part/category_sidebar.html:9 @@ -6509,15 +6718,15 @@ msgstr "" msgid "Part Revision" msgstr "" -#: part/admin.py:418 part/serializers.py:1346 +#: part/admin.py:418 part/serializers.py:1400 #: templates/js/translated/pricing.js:358 -#: templates/js/translated/pricing.js:1024 +#: templates/js/translated/pricing.js:1022 msgid "Minimum Price" msgstr "" -#: part/admin.py:423 part/serializers.py:1361 +#: part/admin.py:423 part/serializers.py:1415 #: templates/js/translated/pricing.js:353 -#: templates/js/translated/pricing.js:1032 +#: templates/js/translated/pricing.js:1030 msgid "Maximum Price" msgstr "" @@ -6545,94 +6754,98 @@ msgstr "" msgid "Filter by top-level categories" msgstr "" +#: part/api.py:156 stock/api.py:343 +msgid "Cascade" +msgstr "" + #: part/api.py:158 msgid "Include sub-categories in filtered results" msgstr "" -#: part/api.py:179 templates/js/translated/part.js:311 +#: part/api.py:178 templates/js/translated/part.js:311 msgid "Parent" msgstr "" -#: part/api.py:181 +#: part/api.py:180 msgid "Filter by parent category" msgstr "" -#: part/api.py:214 +#: part/api.py:213 msgid "Exclude Tree" msgstr "" -#: part/api.py:216 +#: part/api.py:215 msgid "Exclude sub-categories under the specified category" msgstr "" -#: part/api.py:441 +#: part/api.py:440 msgid "Has Results" msgstr "" -#: part/api.py:608 +#: part/api.py:604 msgid "Incoming Purchase Order" msgstr "" -#: part/api.py:626 +#: part/api.py:618 msgid "Outgoing Sales Order" msgstr "" -#: part/api.py:642 +#: part/api.py:630 msgid "Stock produced by Build Order" msgstr "" -#: part/api.py:726 +#: part/api.py:712 msgid "Stock required for Build Order" msgstr "" -#: part/api.py:874 +#: part/api.py:858 msgid "Validate entire Bill of Materials" msgstr "" -#: part/api.py:880 +#: part/api.py:864 msgid "This option must be selected" msgstr "" -#: part/api.py:916 +#: part/api.py:900 msgid "Is Revision" msgstr "" -#: part/api.py:926 +#: part/api.py:910 msgid "Has Revisions" msgstr "" -#: part/api.py:1117 +#: part/api.py:1101 msgid "BOM Valid" msgstr "" -#: part/api.py:1523 part/models.py:1024 part/models.py:3489 part/models.py:4046 -#: part/serializers.py:430 part/serializers.py:1202 -#: part/templates/part/part_base.html:260 stock/api.py:781 +#: part/api.py:1509 part/models.py:1085 part/models.py:3540 part/models.py:4104 +#: part/serializers.py:474 part/serializers.py:1255 +#: part/templates/part/part_base.html:268 stock/api.py:781 #: templates/InvenTree/settings/settings_staff_js.html:300 #: templates/js/translated/notification.js:60 #: templates/js/translated/part.js:2383 msgid "Category" msgstr "カテゴリ" -#: part/api.py:1761 +#: part/api.py:1750 msgid "Assembly part is testable" msgstr "" -#: part/api.py:1770 +#: part/api.py:1759 msgid "Component part is testable" msgstr "" -#: part/api.py:1821 +#: part/api.py:1810 msgid "Uses" msgstr "" -#: part/bom.py:178 part/models.py:107 part/models.py:1077 -#: part/templates/part/category.html:113 part/templates/part/part_base.html:376 +#: part/bom.py:183 part/models.py:109 part/models.py:1138 +#: part/templates/part/category.html:113 part/templates/part/part_base.html:384 #: templates/js/translated/part.js:2397 msgid "Default Location" msgstr "" -#: part/bom.py:179 part/serializers.py:905 +#: part/bom.py:184 part/serializers.py:957 #: templates/email/low_stock_notification.html:16 msgid "Total Stock" msgstr "" @@ -6641,789 +6854,789 @@ msgstr "" msgid "Input quantity for price calculation" msgstr "" -#: part/models.py:88 part/models.py:4047 part/templates/part/category.html:16 +#: part/models.py:90 part/models.py:4105 part/templates/part/category.html:16 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "パーツカテゴリ" -#: part/models.py:89 part/templates/part/category.html:133 +#: part/models.py:91 part/templates/part/category.html:133 #: templates/InvenTree/search.html:97 templates/js/translated/search.js:158 #: users/models.py:202 msgid "Part Categories" msgstr "パーツカテゴリ" -#: part/models.py:108 +#: part/models.py:110 msgid "Default location for parts in this category" msgstr "" -#: part/models.py:113 stock/models.py:187 templates/js/translated/part.js:2828 -#: templates/js/translated/stock.js:2856 +#: part/models.py:115 stock/models.py:193 templates/js/translated/part.js:2828 +#: templates/js/translated/stock.js:2857 #: templates/js/translated/table_filters.js:246 #: templates/js/translated/table_filters.js:290 msgid "Structural" msgstr "" -#: part/models.py:115 +#: part/models.py:117 msgid "Parts may not be directly assigned to a structural category, but may be assigned to child categories." msgstr "" -#: part/models.py:124 +#: part/models.py:126 msgid "Default keywords" msgstr "" -#: part/models.py:125 +#: part/models.py:127 msgid "Default keywords for parts in this category" msgstr "" -#: part/models.py:131 stock/models.py:90 stock/models.py:169 +#: part/models.py:133 stock/models.py:96 stock/models.py:175 #: templates/InvenTree/settings/settings_staff_js.html:445 msgid "Icon" msgstr "" -#: part/models.py:132 part/serializers.py:143 part/serializers.py:161 -#: stock/models.py:170 +#: part/models.py:134 part/serializers.py:143 part/serializers.py:161 +#: stock/models.py:176 msgid "Icon (optional)" msgstr "" -#: part/models.py:178 +#: part/models.py:180 msgid "You cannot make this part category structural because some parts are already assigned to it!" msgstr "" -#: part/models.py:519 +#: part/models.py:514 msgid "Cannot delete this part as it is locked" msgstr "" -#: part/models.py:522 +#: part/models.py:517 msgid "Cannot delete this part as it is still active" msgstr "" -#: part/models.py:527 +#: part/models.py:522 msgid "Cannot delete this part as it is used in an assembly" msgstr "" -#: part/models.py:565 +#: part/models.py:560 msgid "Invalid choice for parent part" msgstr "" -#: part/models.py:613 part/models.py:620 +#: part/models.py:608 part/models.py:615 #, python-brace-format msgid "Part '{self}' cannot be used in BOM for '{parent}' (recursive)" msgstr "" -#: part/models.py:632 +#: part/models.py:627 #, python-brace-format msgid "Part '{parent}' is used in BOM for '{self}' (recursive)" msgstr "" -#: part/models.py:695 +#: part/models.py:694 #, python-brace-format msgid "IPN must match regex pattern {pattern}" msgstr "" -#: part/models.py:703 +#: part/models.py:702 msgid "Part cannot be a revision of itself" msgstr "" -#: part/models.py:710 +#: part/models.py:709 msgid "Cannot make a revision of a part which is already a revision" msgstr "" -#: part/models.py:717 +#: part/models.py:716 msgid "Revision code must be specified" msgstr "" -#: part/models.py:724 +#: part/models.py:723 msgid "Revisions are only allowed for assembly parts" msgstr "" -#: part/models.py:731 +#: part/models.py:730 msgid "Cannot make a revision of a template part" msgstr "" -#: part/models.py:737 +#: part/models.py:736 msgid "Parent part must point to the same template" msgstr "" -#: part/models.py:816 +#: part/models.py:832 msgid "Stock item with this serial number already exists" msgstr "" -#: part/models.py:917 +#: part/models.py:976 msgid "Duplicate IPN not allowed in part settings" msgstr "" -#: part/models.py:926 +#: part/models.py:988 msgid "Duplicate part revision already exists." msgstr "" -#: part/models.py:936 +#: part/models.py:997 msgid "Part with this Name, IPN and Revision already exists." msgstr "" -#: part/models.py:951 +#: part/models.py:1012 msgid "Parts cannot be assigned to structural part categories!" msgstr "" -#: part/models.py:983 part/models.py:4102 +#: part/models.py:1044 part/models.py:4160 msgid "Part name" msgstr "" -#: part/models.py:988 +#: part/models.py:1049 msgid "Is Template" msgstr "" -#: part/models.py:989 +#: part/models.py:1050 msgid "Is this part a template part?" msgstr "" -#: part/models.py:999 +#: part/models.py:1060 msgid "Is this part a variant of another part?" msgstr "" -#: part/models.py:1007 +#: part/models.py:1068 msgid "Part description (optional)" msgstr "" -#: part/models.py:1015 +#: part/models.py:1076 msgid "Part keywords to improve visibility in search results" msgstr "" -#: part/models.py:1025 +#: part/models.py:1086 msgid "Part category" msgstr "パーツカテゴリ" -#: part/models.py:1040 +#: part/models.py:1101 msgid "Part revision or version number" msgstr "" -#: part/models.py:1050 +#: part/models.py:1111 msgid "Is this part a revision of another part?" msgstr "" -#: part/models.py:1051 part/templates/part/part_base.html:277 +#: part/models.py:1112 part/templates/part/part_base.html:285 msgid "Revision Of" msgstr "" -#: part/models.py:1075 +#: part/models.py:1136 msgid "Where is this item normally stored?" msgstr "" -#: part/models.py:1121 part/templates/part/part_base.html:385 +#: part/models.py:1182 part/templates/part/part_base.html:393 msgid "Default Supplier" msgstr "" -#: part/models.py:1122 +#: part/models.py:1183 msgid "Default supplier part" msgstr "" -#: part/models.py:1129 +#: part/models.py:1190 msgid "Default Expiry" msgstr "" -#: part/models.py:1130 +#: part/models.py:1191 msgid "Expiry time (in days) for stock items of this part" msgstr "" -#: part/models.py:1139 +#: part/models.py:1200 msgid "Minimum allowed stock level" msgstr "" -#: part/models.py:1148 +#: part/models.py:1209 msgid "Units of measure for this part" msgstr "" -#: part/models.py:1155 +#: part/models.py:1216 msgid "Can this part be built from other parts?" msgstr "" -#: part/models.py:1161 +#: part/models.py:1222 msgid "Can this part be used to build other parts?" msgstr "" -#: part/models.py:1167 +#: part/models.py:1228 msgid "Does this part have tracking for unique items?" msgstr "" -#: part/models.py:1173 +#: part/models.py:1234 msgid "Can this part have test results recorded against it?" msgstr "" -#: part/models.py:1179 +#: part/models.py:1240 msgid "Can this part be purchased from external suppliers?" msgstr "" -#: part/models.py:1185 +#: part/models.py:1246 msgid "Can this part be sold to customers?" msgstr "" -#: part/models.py:1189 +#: part/models.py:1250 msgid "Is this part active?" msgstr "" -#: part/models.py:1194 templates/js/translated/part.js:821 +#: part/models.py:1255 templates/js/translated/part.js:821 #: templates/js/translated/table_filters.js:724 msgid "Locked" msgstr "" -#: part/models.py:1195 +#: part/models.py:1256 msgid "Locked parts cannot be edited" msgstr "" -#: part/models.py:1201 +#: part/models.py:1262 msgid "Is this a virtual part, such as a software product or license?" msgstr "" -#: part/models.py:1207 +#: part/models.py:1268 msgid "BOM checksum" msgstr "" -#: part/models.py:1208 +#: part/models.py:1269 msgid "Stored BOM checksum" msgstr "" -#: part/models.py:1216 +#: part/models.py:1277 msgid "BOM checked by" msgstr "" -#: part/models.py:1221 +#: part/models.py:1282 msgid "BOM checked date" msgstr "" -#: part/models.py:1237 +#: part/models.py:1298 msgid "Creation User" msgstr "" -#: part/models.py:1247 +#: part/models.py:1308 msgid "Owner responsible for this part" msgstr "" -#: part/models.py:1252 part/templates/part/part_base.html:348 -#: stock/templates/stock/item_base.html:451 +#: part/models.py:1313 part/templates/part/part_base.html:356 +#: stock/templates/stock/item_base.html:448 #: templates/js/translated/part.js:2490 msgid "Last Stocktake" msgstr "" -#: part/models.py:2125 +#: part/models.py:2185 msgid "Sell multiple" msgstr "" -#: part/models.py:3116 +#: part/models.py:3167 msgid "Currency used to cache pricing calculations" msgstr "" -#: part/models.py:3132 +#: part/models.py:3183 msgid "Minimum BOM Cost" msgstr "" -#: part/models.py:3133 +#: part/models.py:3184 msgid "Minimum cost of component parts" msgstr "" -#: part/models.py:3139 +#: part/models.py:3190 msgid "Maximum BOM Cost" msgstr "" -#: part/models.py:3140 +#: part/models.py:3191 msgid "Maximum cost of component parts" msgstr "" -#: part/models.py:3146 +#: part/models.py:3197 msgid "Minimum Purchase Cost" msgstr "" -#: part/models.py:3147 +#: part/models.py:3198 msgid "Minimum historical purchase cost" msgstr "" -#: part/models.py:3153 +#: part/models.py:3204 msgid "Maximum Purchase Cost" msgstr "" -#: part/models.py:3154 +#: part/models.py:3205 msgid "Maximum historical purchase cost" msgstr "" -#: part/models.py:3160 +#: part/models.py:3211 msgid "Minimum Internal Price" msgstr "" -#: part/models.py:3161 +#: part/models.py:3212 msgid "Minimum cost based on internal price breaks" msgstr "" -#: part/models.py:3167 +#: part/models.py:3218 msgid "Maximum Internal Price" msgstr "" -#: part/models.py:3168 +#: part/models.py:3219 msgid "Maximum cost based on internal price breaks" msgstr "" -#: part/models.py:3174 +#: part/models.py:3225 msgid "Minimum Supplier Price" msgstr "" -#: part/models.py:3175 +#: part/models.py:3226 msgid "Minimum price of part from external suppliers" msgstr "" -#: part/models.py:3181 +#: part/models.py:3232 msgid "Maximum Supplier Price" msgstr "" -#: part/models.py:3182 +#: part/models.py:3233 msgid "Maximum price of part from external suppliers" msgstr "" -#: part/models.py:3188 +#: part/models.py:3239 msgid "Minimum Variant Cost" msgstr "" -#: part/models.py:3189 +#: part/models.py:3240 msgid "Calculated minimum cost of variant parts" msgstr "" -#: part/models.py:3195 +#: part/models.py:3246 msgid "Maximum Variant Cost" msgstr "" -#: part/models.py:3196 +#: part/models.py:3247 msgid "Calculated maximum cost of variant parts" msgstr "" -#: part/models.py:3203 +#: part/models.py:3254 msgid "Override minimum cost" msgstr "" -#: part/models.py:3210 +#: part/models.py:3261 msgid "Override maximum cost" msgstr "" -#: part/models.py:3217 +#: part/models.py:3268 msgid "Calculated overall minimum cost" msgstr "" -#: part/models.py:3224 +#: part/models.py:3275 msgid "Calculated overall maximum cost" msgstr "" -#: part/models.py:3230 +#: part/models.py:3281 msgid "Minimum Sale Price" msgstr "" -#: part/models.py:3231 +#: part/models.py:3282 msgid "Minimum sale price based on price breaks" msgstr "" -#: part/models.py:3237 +#: part/models.py:3288 msgid "Maximum Sale Price" msgstr "" -#: part/models.py:3238 +#: part/models.py:3289 msgid "Maximum sale price based on price breaks" msgstr "" -#: part/models.py:3244 +#: part/models.py:3295 msgid "Minimum Sale Cost" msgstr "" -#: part/models.py:3245 +#: part/models.py:3296 msgid "Minimum historical sale price" msgstr "" -#: part/models.py:3251 +#: part/models.py:3302 msgid "Maximum Sale Cost" msgstr "" -#: part/models.py:3252 +#: part/models.py:3303 msgid "Maximum historical sale price" msgstr "" -#: part/models.py:3271 +#: part/models.py:3322 msgid "Part for stocktake" msgstr "" -#: part/models.py:3276 +#: part/models.py:3327 msgid "Item Count" msgstr "" -#: part/models.py:3277 +#: part/models.py:3328 msgid "Number of individual stock entries at time of stocktake" msgstr "" -#: part/models.py:3285 +#: part/models.py:3336 msgid "Total available stock at time of stocktake" msgstr "" -#: part/models.py:3289 part/models.py:3372 +#: part/models.py:3340 part/models.py:3423 part/serializers.py:263 #: part/templates/part/part_scheduling.html:13 #: report/templates/report/inventree_test_report.html:106 #: templates/InvenTree/settings/plugin_settings.html:37 #: templates/InvenTree/settings/settings_staff_js.html:543 -#: templates/js/translated/part.js:1092 templates/js/translated/pricing.js:826 -#: templates/js/translated/pricing.js:950 -#: templates/js/translated/purchase_order.js:1801 -#: templates/js/translated/stock.js:2905 +#: templates/js/translated/part.js:1092 templates/js/translated/pricing.js:824 +#: templates/js/translated/pricing.js:948 +#: templates/js/translated/purchase_order.js:1785 +#: templates/js/translated/stock.js:2906 msgid "Date" msgstr "" -#: part/models.py:3290 +#: part/models.py:3341 msgid "Date stocktake was performed" msgstr "" -#: part/models.py:3298 +#: part/models.py:3349 msgid "Additional notes" msgstr "" -#: part/models.py:3308 +#: part/models.py:3359 msgid "User who performed this stocktake" msgstr "" -#: part/models.py:3314 +#: part/models.py:3365 msgid "Minimum Stock Cost" msgstr "" -#: part/models.py:3315 +#: part/models.py:3366 msgid "Estimated minimum cost of stock on hand" msgstr "" -#: part/models.py:3321 +#: part/models.py:3372 msgid "Maximum Stock Cost" msgstr "" -#: part/models.py:3322 +#: part/models.py:3373 msgid "Estimated maximum cost of stock on hand" msgstr "" -#: part/models.py:3378 templates/InvenTree/settings/settings_staff_js.html:532 +#: part/models.py:3429 templates/InvenTree/settings/settings_staff_js.html:532 msgid "Report" msgstr "" -#: part/models.py:3379 +#: part/models.py:3430 msgid "Stocktake report file (generated internally)" msgstr "" -#: part/models.py:3384 templates/InvenTree/settings/settings_staff_js.html:539 +#: part/models.py:3435 templates/InvenTree/settings/settings_staff_js.html:539 msgid "Part Count" msgstr "" -#: part/models.py:3385 +#: part/models.py:3436 msgid "Number of parts covered by stocktake" msgstr "" -#: part/models.py:3395 +#: part/models.py:3446 msgid "User who requested this stocktake report" msgstr "" -#: part/models.py:3405 +#: part/models.py:3456 msgid "Part Sale Price Break" msgstr "" -#: part/models.py:3517 +#: part/models.py:3568 msgid "Part Test Template" msgstr "" -#: part/models.py:3543 +#: part/models.py:3594 msgid "Invalid template name - must include at least one alphanumeric character" msgstr "" -#: part/models.py:3564 part/models.py:3733 +#: part/models.py:3615 part/models.py:3784 msgid "Choices must be unique" msgstr "" -#: part/models.py:3575 -msgid "Test templates can only be created for trackable parts" +#: part/models.py:3626 +msgid "Test templates can only be created for testable parts" msgstr "" -#: part/models.py:3586 +#: part/models.py:3637 msgid "Test template with the same key already exists for part" msgstr "" -#: part/models.py:3603 templates/js/translated/part.js:2898 +#: part/models.py:3654 templates/js/translated/part.js:2898 msgid "Test Name" msgstr "" -#: part/models.py:3604 +#: part/models.py:3655 msgid "Enter a name for the test" msgstr "" -#: part/models.py:3610 +#: part/models.py:3661 msgid "Test Key" msgstr "" -#: part/models.py:3611 +#: part/models.py:3662 msgid "Simplified key for the test" msgstr "" -#: part/models.py:3618 +#: part/models.py:3669 msgid "Test Description" msgstr "" -#: part/models.py:3619 +#: part/models.py:3670 msgid "Enter description for this test" msgstr "" -#: part/models.py:3623 report/models.py:208 +#: part/models.py:3674 report/models.py:216 #: templates/js/translated/part.js:2919 #: templates/js/translated/table_filters.js:502 msgid "Enabled" msgstr "" -#: part/models.py:3623 +#: part/models.py:3674 msgid "Is this test enabled?" msgstr "" -#: part/models.py:3628 templates/js/translated/part.js:2927 +#: part/models.py:3679 templates/js/translated/part.js:2927 #: templates/js/translated/table_filters.js:498 msgid "Required" msgstr "" -#: part/models.py:3629 +#: part/models.py:3680 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:3634 templates/js/translated/part.js:2935 +#: part/models.py:3685 templates/js/translated/part.js:2935 msgid "Requires Value" msgstr "" -#: part/models.py:3635 +#: part/models.py:3686 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:3640 templates/js/translated/part.js:2942 +#: part/models.py:3691 templates/js/translated/part.js:2942 msgid "Requires Attachment" msgstr "" -#: part/models.py:3642 +#: part/models.py:3693 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:3648 part/models.py:3792 templates/js/translated/part.js:1643 +#: part/models.py:3699 part/models.py:3843 templates/js/translated/part.js:1643 msgid "Choices" msgstr "" -#: part/models.py:3649 +#: part/models.py:3700 msgid "Valid choices for this test (comma-separated)" msgstr "" -#: part/models.py:3681 +#: part/models.py:3732 msgid "Part Parameter Template" msgstr "" -#: part/models.py:3708 +#: part/models.py:3759 msgid "Checkbox parameters cannot have units" msgstr "" -#: part/models.py:3713 +#: part/models.py:3764 msgid "Checkbox parameters cannot have choices" msgstr "" -#: part/models.py:3750 +#: part/models.py:3801 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:3765 +#: part/models.py:3816 msgid "Parameter Name" msgstr "" -#: part/models.py:3772 +#: part/models.py:3823 msgid "Physical units for this parameter" msgstr "" -#: part/models.py:3780 +#: part/models.py:3831 msgid "Parameter description" msgstr "" -#: part/models.py:3786 templates/js/translated/part.js:1634 +#: part/models.py:3837 templates/js/translated/part.js:1634 #: templates/js/translated/table_filters.js:837 msgid "Checkbox" msgstr "" -#: part/models.py:3787 +#: part/models.py:3838 msgid "Is this parameter a checkbox?" msgstr "" -#: part/models.py:3793 +#: part/models.py:3844 msgid "Valid choices for this parameter (comma-separated)" msgstr "" -#: part/models.py:3827 +#: part/models.py:3881 msgid "Part Parameter" msgstr "" -#: part/models.py:3853 +#: part/models.py:3907 msgid "Parameter cannot be modified - part is locked" msgstr "" -#: part/models.py:3889 +#: part/models.py:3945 msgid "Invalid choice for parameter value" msgstr "" -#: part/models.py:3938 +#: part/models.py:3996 msgid "Parent Part" msgstr "" -#: part/models.py:3946 part/models.py:4054 part/models.py:4055 +#: part/models.py:4004 part/models.py:4112 part/models.py:4113 #: templates/InvenTree/settings/settings_staff_js.html:295 msgid "Parameter Template" msgstr "" -#: part/models.py:3952 +#: part/models.py:4010 msgid "Parameter Value" msgstr "" -#: part/models.py:4002 +#: part/models.py:4060 msgid "Part Category Parameter Template" msgstr "" -#: part/models.py:4061 templates/InvenTree/settings/settings_staff_js.html:304 +#: part/models.py:4119 templates/InvenTree/settings/settings_staff_js.html:304 msgid "Default Value" msgstr "" -#: part/models.py:4062 +#: part/models.py:4120 msgid "Default Parameter Value" msgstr "" -#: part/models.py:4100 +#: part/models.py:4158 msgid "Part ID or part name" msgstr "" -#: part/models.py:4101 +#: part/models.py:4159 msgid "Unique part ID value" msgstr "" -#: part/models.py:4103 +#: part/models.py:4161 msgid "Part IPN value" msgstr "" -#: part/models.py:4104 +#: part/models.py:4162 msgid "Level" msgstr "" -#: part/models.py:4104 +#: part/models.py:4162 msgid "BOM level" msgstr "" -#: part/models.py:4215 +#: part/models.py:4272 msgid "BOM item cannot be modified - assembly is locked" msgstr "" -#: part/models.py:4222 +#: part/models.py:4279 msgid "BOM item cannot be modified - variant assembly is locked" msgstr "" -#: part/models.py:4232 +#: part/models.py:4289 msgid "Select parent part" msgstr "" -#: part/models.py:4242 +#: part/models.py:4299 msgid "Sub part" msgstr "" -#: part/models.py:4243 +#: part/models.py:4300 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:4254 +#: part/models.py:4311 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:4260 +#: part/models.py:4317 msgid "This BOM item is optional" msgstr "" -#: part/models.py:4266 +#: part/models.py:4323 msgid "This BOM item is consumable (it is not tracked in build orders)" msgstr "" -#: part/models.py:4273 part/templates/part/upload_bom.html:55 +#: part/models.py:4330 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "" -#: part/models.py:4274 +#: part/models.py:4331 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:4281 +#: part/models.py:4338 msgid "BOM item reference" msgstr "" -#: part/models.py:4289 +#: part/models.py:4346 msgid "BOM item notes" msgstr "" -#: part/models.py:4295 +#: part/models.py:4352 msgid "Checksum" msgstr "" -#: part/models.py:4296 +#: part/models.py:4353 msgid "BOM line checksum" msgstr "" -#: part/models.py:4301 templates/js/translated/table_filters.js:181 +#: part/models.py:4358 templates/js/translated/table_filters.js:181 msgid "Validated" msgstr "" -#: part/models.py:4302 +#: part/models.py:4359 msgid "This BOM item has been validated" msgstr "" -#: part/models.py:4307 part/templates/part/upload_bom.html:57 +#: part/models.py:4364 part/templates/part/upload_bom.html:57 #: templates/js/translated/bom.js:1054 #: templates/js/translated/table_filters.js:185 #: templates/js/translated/table_filters.js:218 msgid "Gets inherited" msgstr "" -#: part/models.py:4308 +#: part/models.py:4365 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:4314 +#: part/models.py:4371 msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:4399 stock/models.py:685 +#: part/models.py:4456 stock/models.py:762 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:4409 part/models.py:4411 +#: part/models.py:4466 part/models.py:4468 msgid "Sub part must be specified" msgstr "" -#: part/models.py:4551 +#: part/models.py:4613 msgid "BOM Item Substitute" msgstr "" -#: part/models.py:4572 +#: part/models.py:4634 msgid "Substitute part cannot be the same as the master part" msgstr "" -#: part/models.py:4585 +#: part/models.py:4647 msgid "Parent BOM item" msgstr "" -#: part/models.py:4593 +#: part/models.py:4655 msgid "Substitute part" msgstr "" -#: part/models.py:4609 +#: part/models.py:4671 msgid "Part 1" msgstr "" -#: part/models.py:4617 +#: part/models.py:4679 msgid "Part 2" msgstr "" -#: part/models.py:4618 +#: part/models.py:4680 msgid "Select Related Part" msgstr "" -#: part/models.py:4637 +#: part/models.py:4699 msgid "Part relationship cannot be created between a part and itself" msgstr "" -#: part/models.py:4642 +#: part/models.py:4704 msgid "Duplicate relationship already exists" msgstr "" @@ -7449,340 +7662,352 @@ msgstr "" msgid "Number of results recorded against this template" msgstr "" -#: part/serializers.py:225 part/serializers.py:243 stock/serializers.py:616 +#: part/serializers.py:225 part/serializers.py:243 stock/serializers.py:643 msgid "Purchase currency of this stock item" msgstr "" -#: part/serializers.py:291 +#: part/serializers.py:268 +msgid "Speculative Quantity" +msgstr "" + +#: part/serializers.py:277 +msgid "Model ID" +msgstr "" + +#: part/serializers.py:324 msgid "Number of parts using this template" msgstr "" -#: part/serializers.py:421 +#: part/serializers.py:465 msgid "No parts selected" msgstr "" -#: part/serializers.py:431 +#: part/serializers.py:475 msgid "Select category" msgstr "カテゴリを選択" -#: part/serializers.py:466 +#: part/serializers.py:510 msgid "Original Part" msgstr "" -#: part/serializers.py:467 +#: part/serializers.py:511 msgid "Select original part to duplicate" msgstr "" -#: part/serializers.py:472 +#: part/serializers.py:516 msgid "Copy Image" msgstr "" -#: part/serializers.py:473 +#: part/serializers.py:517 msgid "Copy image from original part" msgstr "" -#: part/serializers.py:479 part/templates/part/detail.html:293 +#: part/serializers.py:523 part/templates/part/detail.html:293 msgid "Copy BOM" msgstr "" -#: part/serializers.py:480 +#: part/serializers.py:524 msgid "Copy bill of materials from original part" msgstr "" -#: part/serializers.py:486 +#: part/serializers.py:530 msgid "Copy Parameters" msgstr "" -#: part/serializers.py:487 +#: part/serializers.py:531 msgid "Copy parameter data from original part" msgstr "" -#: part/serializers.py:493 +#: part/serializers.py:537 msgid "Copy Notes" msgstr "" -#: part/serializers.py:494 +#: part/serializers.py:538 msgid "Copy notes from original part" msgstr "" -#: part/serializers.py:512 +#: part/serializers.py:556 msgid "Initial Stock Quantity" msgstr "" -#: part/serializers.py:514 +#: part/serializers.py:558 msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added." msgstr "" -#: part/serializers.py:521 +#: part/serializers.py:565 msgid "Initial Stock Location" msgstr "" -#: part/serializers.py:522 +#: part/serializers.py:566 msgid "Specify initial stock location for this Part" msgstr "" -#: part/serializers.py:539 +#: part/serializers.py:583 msgid "Select supplier (or leave blank to skip)" msgstr "" -#: part/serializers.py:555 +#: part/serializers.py:599 msgid "Select manufacturer (or leave blank to skip)" msgstr "" -#: part/serializers.py:565 +#: part/serializers.py:609 msgid "Manufacturer part number" msgstr "" -#: part/serializers.py:572 +#: part/serializers.py:616 msgid "Selected company is not a valid supplier" msgstr "" -#: part/serializers.py:581 +#: part/serializers.py:625 msgid "Selected company is not a valid manufacturer" msgstr "" -#: part/serializers.py:592 +#: part/serializers.py:636 msgid "Manufacturer part matching this MPN already exists" msgstr "" -#: part/serializers.py:599 +#: part/serializers.py:643 msgid "Supplier part matching this SKU already exists" msgstr "" -#: part/serializers.py:903 +#: part/serializers.py:955 msgid "Revisions" msgstr "" -#: part/serializers.py:908 +#: part/serializers.py:960 msgid "Unallocated Stock" msgstr "" -#: part/serializers.py:911 +#: part/serializers.py:963 msgid "Variant Stock" msgstr "" -#: part/serializers.py:941 part/templates/part/copy_part.html:9 +#: part/serializers.py:993 part/templates/part/copy_part.html:9 #: templates/js/translated/part.js:474 msgid "Duplicate Part" msgstr "" -#: part/serializers.py:942 +#: part/serializers.py:994 msgid "Copy initial data from another Part" msgstr "" -#: part/serializers.py:948 templates/js/translated/part.js:103 +#: part/serializers.py:1000 templates/js/translated/part.js:103 msgid "Initial Stock" msgstr "" -#: part/serializers.py:949 +#: part/serializers.py:1001 msgid "Create Part with initial stock quantity" msgstr "" -#: part/serializers.py:955 +#: part/serializers.py:1007 msgid "Supplier Information" msgstr "" -#: part/serializers.py:956 +#: part/serializers.py:1008 msgid "Add initial supplier information for this part" msgstr "" -#: part/serializers.py:964 +#: part/serializers.py:1016 msgid "Copy Category Parameters" msgstr "" -#: part/serializers.py:965 +#: part/serializers.py:1017 msgid "Copy parameter templates from selected part category" msgstr "" -#: part/serializers.py:970 +#: part/serializers.py:1022 msgid "Existing Image" msgstr "" -#: part/serializers.py:971 +#: part/serializers.py:1023 msgid "Filename of an existing part image" msgstr "" -#: part/serializers.py:988 +#: part/serializers.py:1040 msgid "Image file does not exist" msgstr "" -#: part/serializers.py:1194 +#: part/serializers.py:1247 msgid "Limit stocktake report to a particular part, and any variant parts" msgstr "" -#: part/serializers.py:1204 +#: part/serializers.py:1257 msgid "Limit stocktake report to a particular part category, and any child categories" msgstr "" -#: part/serializers.py:1214 +#: part/serializers.py:1267 msgid "Limit stocktake report to a particular stock location, and any child locations" msgstr "" -#: part/serializers.py:1220 +#: part/serializers.py:1273 msgid "Exclude External Stock" msgstr "" -#: part/serializers.py:1221 +#: part/serializers.py:1274 msgid "Exclude stock items in external locations" msgstr "" -#: part/serializers.py:1226 +#: part/serializers.py:1279 msgid "Generate Report" msgstr "" -#: part/serializers.py:1227 +#: part/serializers.py:1280 msgid "Generate report file containing calculated stocktake data" msgstr "" -#: part/serializers.py:1232 +#: part/serializers.py:1285 msgid "Update Parts" msgstr "" -#: part/serializers.py:1233 +#: part/serializers.py:1286 msgid "Update specified parts with calculated stocktake data" msgstr "" -#: part/serializers.py:1241 +#: part/serializers.py:1294 msgid "Stocktake functionality is not enabled" msgstr "" -#: part/serializers.py:1347 +#: part/serializers.py:1299 +msgid "Background worker check failed" +msgstr "バックグラウンドワーカーのチェックに失敗しました" + +#: part/serializers.py:1401 msgid "Override calculated value for minimum price" msgstr "" -#: part/serializers.py:1354 +#: part/serializers.py:1408 msgid "Minimum price currency" msgstr "" -#: part/serializers.py:1362 +#: part/serializers.py:1416 msgid "Override calculated value for maximum price" msgstr "" -#: part/serializers.py:1369 +#: part/serializers.py:1423 msgid "Maximum price currency" msgstr "" -#: part/serializers.py:1398 +#: part/serializers.py:1452 msgid "Update" msgstr "" -#: part/serializers.py:1399 +#: part/serializers.py:1453 msgid "Update pricing for this part" msgstr "" -#: part/serializers.py:1422 +#: part/serializers.py:1476 #, python-brace-format msgid "Could not convert from provided currencies to {default_currency}" msgstr "" -#: part/serializers.py:1429 +#: part/serializers.py:1483 msgid "Minimum price must not be greater than maximum price" msgstr "" -#: part/serializers.py:1432 +#: part/serializers.py:1486 msgid "Maximum price must not be less than minimum price" msgstr "" -#: part/serializers.py:1576 +#: part/serializers.py:1634 msgid "Select the parent assembly" msgstr "" -#: part/serializers.py:1585 +#: part/serializers.py:1643 msgid "Component Name" msgstr "" -#: part/serializers.py:1588 +#: part/serializers.py:1646 msgid "Component IPN" msgstr "" -#: part/serializers.py:1591 +#: part/serializers.py:1649 msgid "Component Description" msgstr "" -#: part/serializers.py:1597 +#: part/serializers.py:1655 msgid "Select the component part" msgstr "" -#: part/serializers.py:1606 part/templates/part/part_base.html:235 +#: part/serializers.py:1664 part/templates/part/part_base.html:243 #: templates/js/translated/bom.js:1219 msgid "Can Build" msgstr "" -#: part/serializers.py:1837 +#: part/serializers.py:1899 msgid "Select part to copy BOM from" msgstr "" -#: part/serializers.py:1845 +#: part/serializers.py:1907 msgid "Remove Existing Data" msgstr "" -#: part/serializers.py:1846 +#: part/serializers.py:1908 msgid "Remove existing BOM items before copying" msgstr "" -#: part/serializers.py:1851 +#: part/serializers.py:1913 msgid "Include Inherited" msgstr "" -#: part/serializers.py:1852 +#: part/serializers.py:1914 msgid "Include BOM items which are inherited from templated parts" msgstr "" -#: part/serializers.py:1857 +#: part/serializers.py:1919 msgid "Skip Invalid Rows" msgstr "" -#: part/serializers.py:1858 +#: part/serializers.py:1920 msgid "Enable this option to skip invalid rows" msgstr "" -#: part/serializers.py:1863 +#: part/serializers.py:1925 msgid "Copy Substitute Parts" msgstr "" -#: part/serializers.py:1864 +#: part/serializers.py:1926 msgid "Copy substitute parts when duplicate BOM items" msgstr "" -#: part/serializers.py:1901 +#: part/serializers.py:1963 msgid "Clear Existing BOM" msgstr "" -#: part/serializers.py:1902 +#: part/serializers.py:1964 msgid "Delete existing BOM items before uploading" msgstr "" -#: part/serializers.py:1934 +#: part/serializers.py:1996 msgid "No part column specified" msgstr "" -#: part/serializers.py:1978 +#: part/serializers.py:2040 msgid "Multiple matching parts found" msgstr "" -#: part/serializers.py:1981 +#: part/serializers.py:2043 msgid "No matching part found" msgstr "" -#: part/serializers.py:1984 +#: part/serializers.py:2045 msgid "Part is not designated as a component" msgstr "" -#: part/serializers.py:1993 +#: part/serializers.py:2054 msgid "Quantity not provided" msgstr "" -#: part/serializers.py:2001 +#: part/serializers.py:2062 msgid "Invalid quantity" msgstr "" -#: part/serializers.py:2024 +#: part/serializers.py:2085 msgid "At least one BOM item is required" msgstr "" #: part/stocktake.py:224 templates/js/translated/part.js:1073 #: templates/js/translated/part.js:1828 templates/js/translated/part.js:1884 -#: templates/js/translated/purchase_order.js:2154 +#: templates/js/translated/purchase_order.js:2138 msgid "Total Quantity" msgstr "" @@ -7932,9 +8157,9 @@ msgid "Add stocktake information" msgstr "" #: part/templates/part/detail.html:67 part/templates/part/part_sidebar.html:50 -#: stock/admin.py:255 templates/InvenTree/settings/part_stocktake.html:30 +#: stock/admin.py:256 templates/InvenTree/settings/part_stocktake.html:30 #: templates/InvenTree/settings/sidebar.html:53 -#: templates/js/translated/stock.js:2301 users/models.py:204 +#: templates/js/translated/stock.js:2302 users/models.py:204 msgid "Stocktake" msgstr "" @@ -8093,142 +8318,146 @@ msgstr "" msgid "Part List" msgstr "" -#: part/templates/part/part_base.html:25 part/templates/part/part_base.html:29 +#: part/templates/part/part_base.html:26 part/templates/part/part_base.html:30 msgid "You are subscribed to notifications for this part" msgstr "" -#: part/templates/part/part_base.html:33 +#: part/templates/part/part_base.html:34 msgid "Subscribe to notifications for this part" msgstr "このパーツの通知を受け取る" -#: part/templates/part/part_base.html:52 +#: part/templates/part/part_base.html:53 #: stock/templates/stock/item_base.html:62 -#: stock/templates/stock/location.html:71 templates/js/translated/label.js:136 +#: stock/templates/stock/location.html:72 templates/js/translated/label.js:136 msgid "Print Label" msgstr "" -#: part/templates/part/part_base.html:58 +#: part/templates/part/part_base.html:59 msgid "Show pricing information" msgstr "" -#: part/templates/part/part_base.html:63 -#: stock/templates/stock/item_base.html:110 -#: stock/templates/stock/location.html:80 +#: part/templates/part/part_base.html:64 +#: stock/templates/stock/item_base.html:107 +#: stock/templates/stock/location.html:81 msgid "Stock actions" msgstr "" -#: part/templates/part/part_base.html:70 +#: part/templates/part/part_base.html:71 msgid "Count part stock" msgstr "" -#: part/templates/part/part_base.html:76 +#: part/templates/part/part_base.html:77 msgid "Transfer part stock" msgstr "" -#: part/templates/part/part_base.html:91 templates/js/translated/part.js:2299 +#: part/templates/part/part_base.html:92 templates/js/translated/part.js:2299 msgid "Part actions" msgstr "" -#: part/templates/part/part_base.html:94 +#: part/templates/part/part_base.html:95 msgid "Duplicate part" msgstr "" -#: part/templates/part/part_base.html:97 +#: part/templates/part/part_base.html:98 msgid "Edit part" msgstr "" -#: part/templates/part/part_base.html:100 +#: part/templates/part/part_base.html:101 msgid "Delete part" msgstr "" -#: part/templates/part/part_base.html:119 +#: part/templates/part/part_base.html:120 msgid "Part is a template part (variants can be made from this part)" msgstr "" -#: part/templates/part/part_base.html:123 +#: part/templates/part/part_base.html:124 msgid "Part can be assembled from other parts" msgstr "" -#: part/templates/part/part_base.html:127 +#: part/templates/part/part_base.html:128 msgid "Part can be used in assemblies" msgstr "" -#: part/templates/part/part_base.html:131 +#: part/templates/part/part_base.html:132 msgid "Part stock is tracked by serial number" msgstr "" -#: part/templates/part/part_base.html:135 +#: part/templates/part/part_base.html:136 msgid "Part can be purchased from external suppliers" msgstr "" -#: part/templates/part/part_base.html:139 +#: part/templates/part/part_base.html:140 msgid "Part can be sold to customers" msgstr "" -#: part/templates/part/part_base.html:145 +#: part/templates/part/part_base.html:146 msgid "Part is not active" msgstr "" -#: part/templates/part/part_base.html:153 +#: part/templates/part/part_base.html:154 msgid "Part is virtual (not a physical part)" msgstr "" -#: part/templates/part/part_base.html:163 -#: part/templates/part/part_base.html:690 +#: part/templates/part/part_base.html:164 +#: part/templates/part/part_base.html:698 msgid "Show Part Details" msgstr "" #: part/templates/part/part_base.html:218 -#: stock/templates/stock/item_base.html:388 +msgid "Required for Orders" +msgstr "" + +#: part/templates/part/part_base.html:226 +#: stock/templates/stock/item_base.html:385 msgid "Allocated to Build Orders" msgstr "" -#: part/templates/part/part_base.html:227 -#: stock/templates/stock/item_base.html:381 +#: part/templates/part/part_base.html:235 +#: stock/templates/stock/item_base.html:378 msgid "Allocated to Sales Orders" msgstr "" -#: part/templates/part/part_base.html:300 +#: part/templates/part/part_base.html:308 msgid "Minimum stock level" msgstr "" -#: part/templates/part/part_base.html:331 templates/js/translated/bom.js:1071 +#: part/templates/part/part_base.html:339 templates/js/translated/bom.js:1071 #: templates/js/translated/part.js:1271 templates/js/translated/part.js:2463 #: templates/js/translated/pricing.js:391 -#: templates/js/translated/pricing.js:1054 +#: templates/js/translated/pricing.js:1052 msgid "Price Range" msgstr "" -#: part/templates/part/part_base.html:361 +#: part/templates/part/part_base.html:369 msgid "Latest Serial Number" msgstr "" -#: part/templates/part/part_base.html:365 -#: stock/templates/stock/item_base.html:322 +#: part/templates/part/part_base.html:373 +#: stock/templates/stock/item_base.html:319 msgid "Search for serial number" msgstr "シリアル番号で検索" -#: part/templates/part/part_base.html:453 +#: part/templates/part/part_base.html:461 msgid "Part QR Code" msgstr "" -#: part/templates/part/part_base.html:470 +#: part/templates/part/part_base.html:478 msgid "Link Barcode to Part" msgstr "" -#: part/templates/part/part_base.html:520 +#: part/templates/part/part_base.html:528 msgid "Calculate" msgstr "" -#: part/templates/part/part_base.html:537 +#: part/templates/part/part_base.html:545 msgid "Remove associated image from this part" msgstr "" -#: part/templates/part/part_base.html:588 +#: part/templates/part/part_base.html:596 msgid "No matching images found" msgstr "" -#: part/templates/part/part_base.html:684 +#: part/templates/part/part_base.html:692 msgid "Hide Part Details" msgstr "" @@ -8282,13 +8511,13 @@ msgid "Variants" msgstr "" #: part/templates/part/part_sidebar.html:14 -#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:21 +#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:22 #: stock/templates/stock/stock_app_base.html:10 #: templates/InvenTree/search.html:153 #: templates/InvenTree/settings/sidebar.html:51 #: templates/js/translated/part.js:1249 templates/js/translated/part.js:2152 #: templates/js/translated/part.js:2411 templates/js/translated/stock.js:1066 -#: templates/js/translated/stock.js:2155 templates/navbar.html:31 +#: templates/js/translated/stock.js:2156 templates/navbar.html:31 msgid "Stock" msgstr "在庫" @@ -8324,17 +8553,17 @@ msgstr "" #: part/templates/part/prices.html:18 #: templates/InvenTree/settings/settings_staff_js.html:80 #: templates/InvenTree/settings/user.html:24 -#: templates/js/translated/helpers.js:103 +#: templates/js/translated/helpers.js:104 #: templates/js/translated/pricing.js:628 templates/notes_buttons.html:3 #: templates/notes_buttons.html:4 msgid "Edit" msgstr "" -#: part/templates/part/prices.html:28 stock/admin.py:251 -#: stock/templates/stock/item_base.html:446 -#: templates/js/translated/company.js:1703 -#: templates/js/translated/company.js:1713 -#: templates/js/translated/stock.js:2331 +#: part/templates/part/prices.html:28 stock/admin.py:252 +#: stock/templates/stock/item_base.html:443 +#: templates/js/translated/company.js:1704 +#: templates/js/translated/company.js:1714 +#: templates/js/translated/stock.js:2332 msgid "Last Updated" msgstr "" @@ -8406,7 +8635,7 @@ msgid "Update Pricing" msgstr "" #: part/templates/part/stock_count.html:7 -#: templates/js/translated/model_renderers.js:228 +#: templates/js/translated/model_renderers.js:231 #: templates/js/translated/part.js:707 templates/js/translated/part.js:2147 #: templates/js/translated/part.js:2149 msgid "No Stock" @@ -8486,7 +8715,7 @@ msgstr "" msgid "Part Pricing" msgstr "" -#: plugin/api.py:172 +#: plugin/api.py:175 msgid "Plugin cannot be deleted as it is currently active" msgstr "" @@ -8498,78 +8727,85 @@ msgstr "アクションが指定されていません" msgid "No matching action found" msgstr "一致するアクションが見つかりませんでした" -#: plugin/base/barcodes/api.py:125 plugin/base/barcodes/api.py:371 -#: plugin/base/barcodes/api.py:546 +#: plugin/base/barcodes/api.py:203 msgid "No match found for barcode data" msgstr "" -#: plugin/base/barcodes/api.py:129 +#: plugin/base/barcodes/api.py:207 msgid "Match found for barcode data" msgstr "" -#: plugin/base/barcodes/api.py:163 plugin/base/barcodes/serializers.py:45 +#: plugin/base/barcodes/api.py:245 plugin/base/barcodes/serializers.py:72 msgid "Model is not supported" msgstr "" -#: plugin/base/barcodes/api.py:168 +#: plugin/base/barcodes/api.py:250 msgid "Model instance not found" msgstr "" -#: plugin/base/barcodes/api.py:197 -#: templates/js/translated/purchase_order.js:1468 +#: plugin/base/barcodes/api.py:279 +#: templates/js/translated/purchase_order.js:1452 msgid "Barcode matches existing item" msgstr "" -#: plugin/base/barcodes/api.py:336 +#: plugin/base/barcodes/api.py:418 msgid "No matching part data found" msgstr "" -#: plugin/base/barcodes/api.py:353 +#: plugin/base/barcodes/api.py:434 msgid "No matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:357 +#: plugin/base/barcodes/api.py:437 msgid "Multiple matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:381 +#: plugin/base/barcodes/api.py:450 plugin/base/barcodes/api.py:664 +msgid "No matching plugin found for barcode data" +msgstr "" + +#: plugin/base/barcodes/api.py:460 msgid "Matched supplier part" msgstr "" -#: plugin/base/barcodes/api.py:430 +#: plugin/base/barcodes/api.py:525 msgid "Item has already been received" msgstr "" -#: plugin/base/barcodes/api.py:467 +#: plugin/base/barcodes/api.py:563 msgid "No match for supplier barcode" msgstr "" -#: plugin/base/barcodes/api.py:510 +#: plugin/base/barcodes/api.py:612 msgid "Multiple matching line items found" msgstr "" -#: plugin/base/barcodes/api.py:513 +#: plugin/base/barcodes/api.py:615 msgid "No matching line item found" msgstr "" -#: plugin/base/barcodes/api.py:551 plugin/base/barcodes/api.py:558 +#: plugin/base/barcodes/api.py:661 +msgid "No sales order provided" +msgstr "" + +#: plugin/base/barcodes/api.py:670 msgid "Barcode does not match an existing stock item" msgstr "" -#: plugin/base/barcodes/api.py:569 +#: plugin/base/barcodes/api.py:686 msgid "Stock item does not match line item" msgstr "" -#: plugin/base/barcodes/api.py:593 templates/js/translated/build.js:2780 -#: templates/js/translated/sales_order.js:1953 +#: plugin/base/barcodes/api.py:716 templates/js/translated/build.js:2798 +#: templates/js/translated/sales_order.js:1934 msgid "Insufficient stock available" msgstr "" -#: plugin/base/barcodes/api.py:602 +#: plugin/base/barcodes/api.py:729 msgid "Stock item allocated to sales order" msgstr "" -#: plugin/base/barcodes/api.py:606 +#: plugin/base/barcodes/api.py:732 msgid "Not enough information" msgstr "" @@ -8591,75 +8827,75 @@ msgstr "" msgid "Purchase order does not match supplier" msgstr "" -#: plugin/base/barcodes/mixins.py:465 +#: plugin/base/barcodes/mixins.py:467 msgid "Failed to find pending line item for supplier part" msgstr "" -#: plugin/base/barcodes/mixins.py:496 +#: plugin/base/barcodes/mixins.py:498 msgid "Further information required to receive line item" msgstr "" -#: plugin/base/barcodes/mixins.py:504 +#: plugin/base/barcodes/mixins.py:506 msgid "Received purchase order line item" msgstr "" -#: plugin/base/barcodes/serializers.py:21 +#: plugin/base/barcodes/serializers.py:48 msgid "Scanned barcode data" msgstr "" -#: plugin/base/barcodes/serializers.py:30 +#: plugin/base/barcodes/serializers.py:57 msgid "Model name to generate barcode for" msgstr "" -#: plugin/base/barcodes/serializers.py:35 +#: plugin/base/barcodes/serializers.py:62 msgid "Primary key of model object to generate barcode for" msgstr "" -#: plugin/base/barcodes/serializers.py:105 +#: plugin/base/barcodes/serializers.py:132 msgid "Purchase Order to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:111 +#: plugin/base/barcodes/serializers.py:138 msgid "Purchase order is not pending" msgstr "" -#: plugin/base/barcodes/serializers.py:129 +#: plugin/base/barcodes/serializers.py:156 msgid "PurchaseOrder to receive items against" msgstr "" -#: plugin/base/barcodes/serializers.py:135 +#: plugin/base/barcodes/serializers.py:162 msgid "Purchase order has not been placed" msgstr "" -#: plugin/base/barcodes/serializers.py:143 +#: plugin/base/barcodes/serializers.py:170 msgid "Location to receive items into" msgstr "" -#: plugin/base/barcodes/serializers.py:149 +#: plugin/base/barcodes/serializers.py:176 msgid "Cannot select a structural location" msgstr "" -#: plugin/base/barcodes/serializers.py:163 +#: plugin/base/barcodes/serializers.py:190 msgid "Sales Order to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:169 +#: plugin/base/barcodes/serializers.py:196 msgid "Sales order is not pending" msgstr "" -#: plugin/base/barcodes/serializers.py:177 +#: plugin/base/barcodes/serializers.py:204 msgid "Sales order line item to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:184 +#: plugin/base/barcodes/serializers.py:211 msgid "Sales order shipment to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:190 +#: plugin/base/barcodes/serializers.py:217 msgid "Shipment has already been delivered" msgstr "" -#: plugin/base/barcodes/serializers.py:195 +#: plugin/base/barcodes/serializers.py:222 msgid "Quantity to allocate" msgstr "" @@ -8679,6 +8915,42 @@ msgstr "" msgid "No items provided to print" msgstr "" +#: plugin/base/ui/serializers.py:30 +msgid "Plugin Name" +msgstr "" + +#: plugin/base/ui/serializers.py:34 +msgid "Feature Type" +msgstr "" + +#: plugin/base/ui/serializers.py:39 +msgid "Feature Label" +msgstr "" + +#: plugin/base/ui/serializers.py:44 +msgid "Feature Title" +msgstr "" + +#: plugin/base/ui/serializers.py:49 +msgid "Feature Description" +msgstr "" + +#: plugin/base/ui/serializers.py:54 +msgid "Feature Icon" +msgstr "" + +#: plugin/base/ui/serializers.py:58 +msgid "Feature Options" +msgstr "" + +#: plugin/base/ui/serializers.py:61 +msgid "Feature Context" +msgstr "" + +#: plugin/base/ui/serializers.py:64 +msgid "Feature Source (javascript)" +msgstr "" + #: plugin/builtin/barcodes/inventree_barcode.py:27 msgid "InvenTree Barcodes" msgstr "" @@ -8756,7 +9028,7 @@ msgstr "" msgid "URL that is used to send messages to a slack channel" msgstr "" -#: plugin/builtin/integration/core_notifications.py:164 +#: plugin/builtin/integration/core_notifications.py:166 msgid "Open link" msgstr "" @@ -8794,11 +9066,11 @@ msgstr "" msgid "Provides support for printing using a machine" msgstr "" -#: plugin/builtin/labels/inventree_machine.py:149 +#: plugin/builtin/labels/inventree_machine.py:151 msgid "last used" msgstr "" -#: plugin/builtin/labels/inventree_machine.py:166 +#: plugin/builtin/labels/inventree_machine.py:168 msgid "Options" msgstr "" @@ -8822,7 +9094,7 @@ msgstr "" msgid "Print a border around each label" msgstr "" -#: plugin/builtin/labels/label_sheet.py:47 report/models.py:307 +#: plugin/builtin/labels/label_sheet.py:47 report/models.py:315 msgid "Landscape" msgstr "" @@ -8894,19 +9166,19 @@ msgstr "" msgid "The Supplier which acts as 'TME'" msgstr "" -#: plugin/installer.py:194 plugin/installer.py:282 +#: plugin/installer.py:199 plugin/installer.py:282 msgid "Only staff users can administer plugins" msgstr "" -#: plugin/installer.py:197 +#: plugin/installer.py:202 msgid "Plugin installation is disabled" msgstr "" -#: plugin/installer.py:248 +#: plugin/installer.py:246 msgid "Installed plugin successfully" msgstr "" -#: plugin/installer.py:254 +#: plugin/installer.py:251 #, python-brace-format msgid "Installed plugin into {path}" msgstr "" @@ -8943,10 +9215,6 @@ msgstr "" msgid "Plugin Configurations" msgstr "" -#: plugin/models.py:43 users/models.py:100 -msgid "Key" -msgstr "" - #: plugin/models.py:44 msgid "Key of plugin" msgstr "" @@ -8955,7 +9223,7 @@ msgstr "" msgid "PluginName of the plugin" msgstr "" -#: plugin/models.py:59 plugin/serializers.py:90 +#: plugin/models.py:59 plugin/serializers.py:115 msgid "Package Name" msgstr "" @@ -8984,17 +9252,17 @@ msgstr "" msgid "Package Plugin" msgstr "" -#: plugin/models.py:220 report/models.py:474 +#: plugin/models.py:259 report/models.py:482 #: templates/InvenTree/settings/plugin_settings.html:9 #: templates/js/translated/plugin.js:51 msgid "Plugin" msgstr "" -#: plugin/models.py:267 +#: plugin/models.py:306 msgid "Method" msgstr "" -#: plugin/plugin.py:270 +#: plugin/plugin.py:275 msgid "No author found" msgstr "" @@ -9053,81 +9321,157 @@ msgstr "" msgid "InvenTree Contributors" msgstr "" -#: plugin/serializers.py:81 -msgid "Source URL" +#: plugin/samples/integration/user_interface_sample.py:27 +msgid "Enable Part Panels" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:28 +msgid "Enable custom panels for Part views" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:33 +msgid "Enable Purchase Order Panels" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:34 +msgid "Enable custom panels for Purchase Order views" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:39 +msgid "Enable Broken Panels" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:40 +msgid "Enable broken panels for testing" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:45 +msgid "Enable Dynamic Panel" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:46 +msgid "Enable dynamic panels for testing" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:98 +msgid "Part Panel" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:131 +msgid "Broken Dashboard Item" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:133 +msgid "This is a broken dashboard item - it will not render!" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:139 +msgid "Sample Dashboard Item" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:141 +msgid "This is a sample dashboard item. It renders a simple string of HTML content." +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:147 +msgid "Context Dashboard Item" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:161 +msgid "Admin Dashboard Item" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:162 +msgid "This is an admin-only dashboard item." +msgstr "" + +#: plugin/serializers.py:82 +msgid "Source File" msgstr "" #: plugin/serializers.py:83 +msgid "Path to the source file for admin integration" +msgstr "" + +#: plugin/serializers.py:90 +msgid "Optional context data for the admin integration" +msgstr "" + +#: plugin/serializers.py:106 +msgid "Source URL" +msgstr "" + +#: plugin/serializers.py:108 msgid "Source for the package - this can be a custom registry or a VCS path" msgstr "" -#: plugin/serializers.py:92 +#: plugin/serializers.py:117 msgid "Name for the Plugin Package - can also contain a version indicator" msgstr "" -#: plugin/serializers.py:99 +#: plugin/serializers.py:124 #: templates/InvenTree/settings/plugin_settings.html:42 #: templates/js/translated/plugin.js:86 msgid "Version" msgstr "" -#: plugin/serializers.py:101 +#: plugin/serializers.py:126 msgid "Version specifier for the plugin. Leave blank for latest version." msgstr "" -#: plugin/serializers.py:106 +#: plugin/serializers.py:131 msgid "Confirm plugin installation" msgstr "" -#: plugin/serializers.py:108 +#: plugin/serializers.py:133 msgid "This will install this plugin now into the current instance. The instance will go into maintenance." msgstr "" -#: plugin/serializers.py:121 +#: plugin/serializers.py:146 msgid "Installation not confirmed" msgstr "" -#: plugin/serializers.py:123 +#: plugin/serializers.py:148 msgid "Either packagename of URL must be provided" msgstr "" -#: plugin/serializers.py:161 +#: plugin/serializers.py:184 msgid "Full reload" msgstr "" -#: plugin/serializers.py:162 +#: plugin/serializers.py:185 msgid "Perform a full reload of the plugin registry" msgstr "" -#: plugin/serializers.py:168 +#: plugin/serializers.py:191 msgid "Force reload" msgstr "" -#: plugin/serializers.py:170 +#: plugin/serializers.py:193 msgid "Force a reload of the plugin registry, even if it is already loaded" msgstr "" -#: plugin/serializers.py:177 +#: plugin/serializers.py:200 msgid "Collect plugins" msgstr "" -#: plugin/serializers.py:178 +#: plugin/serializers.py:201 msgid "Collect plugins and add them to the registry" msgstr "" -#: plugin/serializers.py:205 +#: plugin/serializers.py:228 msgid "Activate Plugin" msgstr "" -#: plugin/serializers.py:206 +#: plugin/serializers.py:229 msgid "Activate this plugin" msgstr "" -#: plugin/serializers.py:226 +#: plugin/serializers.py:249 msgid "Delete configuration" msgstr "" -#: plugin/serializers.py:227 +#: plugin/serializers.py:250 msgid "Delete the plugin configuration from the database" msgstr "" @@ -9135,11 +9479,11 @@ msgstr "" msgid "No valid objects provided to template" msgstr "" -#: report/api.py:103 report/models.py:438 report/serializers.py:98 -#: report/serializers.py:148 templates/js/translated/purchase_order.js:1817 +#: report/api.py:103 report/models.py:446 report/serializers.py:99 +#: report/serializers.py:149 templates/js/translated/purchase_order.js:1801 #: templates/js/translated/return_order.js:353 -#: templates/js/translated/sales_order.js:887 -#: templates/js/translated/sales_order.js:1047 +#: templates/js/translated/sales_order.js:846 +#: templates/js/translated/sales_order.js:1020 msgid "Items" msgstr "" @@ -9167,7 +9511,11 @@ msgstr "" msgid "Error printing label" msgstr "" -#: report/api.py:375 report/api.py:411 +#: report/api.py:358 +msgid "Report saved at time of printing" +msgstr "" + +#: report/api.py:384 report/api.py:420 #, python-brace-format msgid "Template file '{template}' is missing or does not exist" msgstr "" @@ -9204,135 +9552,143 @@ msgstr "" msgid "Revision number (auto-increments)" msgstr "" -#: report/models.py:202 +#: report/models.py:168 +msgid "Attach to Model on Print" +msgstr "" + +#: report/models.py:170 +msgid "Save report output as an attachment against linked model instance when printing" +msgstr "" + +#: report/models.py:210 msgid "Filename Pattern" msgstr "" -#: report/models.py:203 +#: report/models.py:211 msgid "Pattern for generating filenames" msgstr "" -#: report/models.py:208 +#: report/models.py:216 msgid "Template is enabled" msgstr "" -#: report/models.py:214 +#: report/models.py:222 msgid "Target model type for template" msgstr "" -#: report/models.py:234 +#: report/models.py:242 msgid "Filters" msgstr "" -#: report/models.py:235 +#: report/models.py:243 msgid "Template query filters (comma-separated list of key=value pairs)" msgstr "" -#: report/models.py:294 report/models.py:361 +#: report/models.py:302 report/models.py:369 msgid "Template file" msgstr "" -#: report/models.py:302 +#: report/models.py:310 msgid "Page size for PDF reports" msgstr "" -#: report/models.py:308 +#: report/models.py:316 msgid "Render report in landscape orientation" msgstr "" -#: report/models.py:367 +#: report/models.py:375 msgid "Width [mm]" msgstr "" -#: report/models.py:368 +#: report/models.py:376 msgid "Label width, specified in mm" msgstr "" -#: report/models.py:374 +#: report/models.py:382 msgid "Height [mm]" msgstr "" -#: report/models.py:375 +#: report/models.py:383 msgid "Label height, specified in mm" msgstr "" -#: report/models.py:438 +#: report/models.py:446 msgid "Number of items to process" msgstr "" -#: report/models.py:444 +#: report/models.py:452 msgid "Report generation is complete" msgstr "" -#: report/models.py:448 templates/js/translated/build.js:2349 +#: report/models.py:456 templates/js/translated/build.js:2352 msgid "Progress" msgstr "" -#: report/models.py:448 +#: report/models.py:456 msgid "Report generation progress" msgstr "" -#: report/models.py:456 +#: report/models.py:464 msgid "Report Template" msgstr "" -#: report/models.py:463 report/models.py:486 +#: report/models.py:471 report/models.py:494 msgid "Output File" msgstr "" -#: report/models.py:464 report/models.py:487 +#: report/models.py:472 report/models.py:495 msgid "Generated output file" msgstr "" -#: report/models.py:475 +#: report/models.py:483 msgid "Label output plugin" msgstr "" -#: report/models.py:479 +#: report/models.py:487 msgid "Label Template" msgstr "" -#: report/models.py:502 +#: report/models.py:510 msgid "Snippet" msgstr "" -#: report/models.py:503 +#: report/models.py:511 msgid "Report snippet file" msgstr "" -#: report/models.py:510 +#: report/models.py:518 msgid "Snippet file description" msgstr "" -#: report/models.py:528 +#: report/models.py:536 msgid "Asset" msgstr "" -#: report/models.py:529 +#: report/models.py:537 msgid "Report asset file" msgstr "" -#: report/models.py:536 +#: report/models.py:544 msgid "Asset file description" msgstr "" -#: report/serializers.py:91 +#: report/serializers.py:92 msgid "Select report template" msgstr "" -#: report/serializers.py:99 report/serializers.py:149 +#: report/serializers.py:100 report/serializers.py:150 msgid "List of item primary keys to include in the report" msgstr "" -#: report/serializers.py:132 +#: report/serializers.py:133 msgid "Select label template" msgstr "" -#: report/serializers.py:140 +#: report/serializers.py:141 msgid "Printing Plugin" msgstr "" -#: report/serializers.py:141 +#: report/serializers.py:142 msgid "Select plugin to use for label printing" msgstr "" @@ -9365,9 +9721,9 @@ msgstr "" #: report/templates/report/inventree_sales_order_report.html:30 #: templates/js/translated/order.js:341 templates/js/translated/pricing.js:527 #: templates/js/translated/pricing.js:596 -#: templates/js/translated/pricing.js:834 -#: templates/js/translated/purchase_order.js:2185 -#: templates/js/translated/sales_order.js:1873 +#: templates/js/translated/pricing.js:832 +#: templates/js/translated/purchase_order.js:2169 +#: templates/js/translated/sales_order.js:1854 msgid "Unit Price" msgstr "" @@ -9379,13 +9735,18 @@ msgstr "" #: report/templates/report/inventree_purchase_order_report.html:72 #: report/templates/report/inventree_sales_order_report.html:72 -#: templates/js/translated/purchase_order.js:2087 -#: templates/js/translated/sales_order.js:1842 +#: templates/js/translated/purchase_order.js:2071 +#: templates/js/translated/sales_order.js:1823 #: templates/test_statistics_table.html:8 #: templates/test_statistics_table.html:19 msgid "Total" msgstr "" +#: report/templates/report/inventree_sales_order_shipment_report.html:23 +#: stock/templates/stock/stock_sidebar.html:8 +msgid "Allocations" +msgstr "" + #: report/templates/report/inventree_stock_location_report.html:97 msgid "Stock location items" msgstr "" @@ -9403,15 +9764,13 @@ msgstr "" msgid "Test" msgstr "" -#: report/templates/report/inventree_test_report.html:103 stock/models.py:2544 -msgid "Result" -msgstr "" - #: report/templates/report/inventree_test_report.html:129 +#: templates/js/translated/stock.js:1448 msgid "Pass" msgstr "" #: report/templates/report/inventree_test_report.html:131 +#: templates/js/translated/stock.js:1450 msgid "Fail" msgstr "" @@ -9420,17 +9779,18 @@ msgid "No result (required)" msgstr "" #: report/templates/report/inventree_test_report.html:140 +#: templates/js/translated/stock.js:1455 msgid "No result" msgstr "" #: report/templates/report/inventree_test_report.html:153 -#: stock/serializers.py:599 stock/templates/stock/stock_sidebar.html:16 +#: stock/serializers.py:626 stock/templates/stock/stock_sidebar.html:16 msgid "Installed Items" msgstr "" -#: report/templates/report/inventree_test_report.html:167 stock/admin.py:161 +#: report/templates/report/inventree_test_report.html:167 stock/admin.py:162 #: templates/js/translated/stock.js:706 templates/js/translated/stock.js:877 -#: templates/js/translated/stock.js:3194 +#: templates/js/translated/stock.js:3195 msgid "Serial" msgstr "" @@ -9450,67 +9810,67 @@ msgstr "" msgid "company_image tag requires a Company instance" msgstr "" -#: stock/admin.py:51 stock/admin.py:171 +#: stock/admin.py:51 stock/admin.py:172 msgid "Location ID" msgstr "" -#: stock/admin.py:63 stock/templates/stock/location.html:128 -#: stock/templates/stock/location.html:134 +#: stock/admin.py:63 stock/templates/stock/location.html:129 +#: stock/templates/stock/location.html:135 msgid "Location Path" msgstr "" -#: stock/admin.py:148 +#: stock/admin.py:149 msgid "Stock Item ID" msgstr "" -#: stock/admin.py:167 +#: stock/admin.py:168 msgid "Status Code" msgstr "" -#: stock/admin.py:179 +#: stock/admin.py:180 msgid "Supplier Part ID" msgstr "" -#: stock/admin.py:184 +#: stock/admin.py:185 msgid "Supplier Part SKU" msgstr "" -#: stock/admin.py:189 +#: stock/admin.py:190 msgid "Supplier ID" msgstr "" -#: stock/admin.py:200 +#: stock/admin.py:201 msgid "Customer ID" msgstr "" -#: stock/admin.py:205 stock/models.py:825 -#: stock/templates/stock/item_base.html:354 +#: stock/admin.py:206 stock/models.py:902 +#: stock/templates/stock/item_base.html:351 msgid "Installed In" msgstr "" -#: stock/admin.py:210 +#: stock/admin.py:211 msgid "Build ID" msgstr "" -#: stock/admin.py:220 +#: stock/admin.py:221 msgid "Sales Order ID" msgstr "" -#: stock/admin.py:225 +#: stock/admin.py:226 msgid "Purchase Order ID" msgstr "" -#: stock/admin.py:240 +#: stock/admin.py:241 msgid "Review Needed" msgstr "" -#: stock/admin.py:245 +#: stock/admin.py:246 msgid "Delete on Deplete" msgstr "" -#: stock/admin.py:260 stock/models.py:919 -#: stock/templates/stock/item_base.html:433 -#: templates/js/translated/stock.js:2315 users/models.py:124 +#: stock/admin.py:261 stock/models.py:996 +#: stock/templates/stock/item_base.html:430 +#: templates/js/translated/stock.js:2316 users/models.py:124 msgid "Expiry Date" msgstr "" @@ -9526,11 +9886,11 @@ msgstr "" msgid "Include sub-locations in filtered results" msgstr "" -#: stock/api.py:367 stock/serializers.py:1186 +#: stock/api.py:366 stock/serializers.py:1217 msgid "Parent Location" msgstr "" -#: stock/api.py:368 +#: stock/api.py:367 msgid "Filter by parent location" msgstr "" @@ -9550,8 +9910,8 @@ msgstr "" msgid "Expiry date after" msgstr "" -#: stock/api.py:840 stock/serializers.py:604 -#: stock/templates/stock/item_base.html:439 +#: stock/api.py:840 stock/serializers.py:631 +#: stock/templates/stock/item_base.html:436 #: templates/js/translated/table_filters.js:448 msgid "Stale" msgstr "" @@ -9560,594 +9920,598 @@ msgstr "" msgid "Quantity is required" msgstr "" -#: stock/api.py:933 +#: stock/api.py:932 msgid "Valid part must be supplied" msgstr "" -#: stock/api.py:964 +#: stock/api.py:959 msgid "The given supplier part does not exist" msgstr "" -#: stock/api.py:974 +#: stock/api.py:969 msgid "The supplier part has a pack size defined, but flag use_pack_size not set" msgstr "" -#: stock/api.py:1005 +#: stock/api.py:996 msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "" -#: stock/models.py:64 +#: stock/models.py:70 msgid "Stock Location type" msgstr "" -#: stock/models.py:65 +#: stock/models.py:71 msgid "Stock Location types" msgstr "" -#: stock/models.py:91 +#: stock/models.py:97 msgid "Default icon for all locations that have no icon set (optional)" msgstr "" -#: stock/models.py:131 stock/models.py:807 -#: stock/templates/stock/location.html:17 +#: stock/models.py:137 stock/models.py:884 +#: stock/templates/stock/location.html:18 #: stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "" -#: stock/models.py:132 stock/templates/stock/location.html:183 +#: stock/models.py:138 stock/templates/stock/location.html:184 #: templates/InvenTree/search.html:166 templates/js/translated/search.js:178 #: users/models.py:205 msgid "Stock Locations" msgstr "" -#: stock/models.py:180 stock/models.py:968 -#: stock/templates/stock/item_base.html:247 +#: stock/models.py:186 stock/models.py:1045 +#: stock/templates/stock/item_base.html:244 msgid "Owner" msgstr "" -#: stock/models.py:181 stock/models.py:969 +#: stock/models.py:187 stock/models.py:1046 msgid "Select Owner" msgstr "" -#: stock/models.py:189 +#: stock/models.py:195 msgid "Stock items may not be directly located into a structural stock locations, but may be located to child locations." msgstr "" -#: stock/models.py:196 templates/js/translated/stock.js:2865 +#: stock/models.py:202 templates/js/translated/stock.js:2866 #: templates/js/translated/table_filters.js:250 msgid "External" msgstr "" -#: stock/models.py:197 +#: stock/models.py:203 msgid "This is an external stock location" msgstr "" -#: stock/models.py:203 templates/js/translated/stock.js:2874 +#: stock/models.py:209 templates/js/translated/stock.js:2875 #: templates/js/translated/table_filters.js:253 msgid "Location type" msgstr "" -#: stock/models.py:207 +#: stock/models.py:213 msgid "Stock location type of this location" msgstr "" -#: stock/models.py:279 +#: stock/models.py:285 msgid "You cannot make this stock location structural because some stock items are already located into it!" msgstr "" -#: stock/models.py:664 +#: stock/models.py:492 +msgid "Part must be specified" +msgstr "" + +#: stock/models.py:741 msgid "Stock items cannot be located into structural stock locations!" msgstr "" -#: stock/models.py:691 stock/serializers.py:480 +#: stock/models.py:768 stock/serializers.py:492 msgid "Stock item cannot be created for virtual parts" msgstr "" -#: stock/models.py:708 +#: stock/models.py:785 #, python-brace-format msgid "Part type ('{self.supplier_part.part}') must be {self.part}" msgstr "" -#: stock/models.py:718 stock/models.py:731 +#: stock/models.py:795 stock/models.py:808 msgid "Quantity must be 1 for item with a serial number" msgstr "" -#: stock/models.py:721 +#: stock/models.py:798 msgid "Serial number cannot be set if quantity greater than 1" msgstr "" -#: stock/models.py:743 +#: stock/models.py:820 msgid "Item cannot belong to itself" msgstr "" -#: stock/models.py:748 +#: stock/models.py:825 msgid "Item must have a build reference if is_building=True" msgstr "" -#: stock/models.py:761 +#: stock/models.py:838 msgid "Build reference does not point to the same part object" msgstr "" -#: stock/models.py:777 +#: stock/models.py:854 msgid "Parent Stock Item" msgstr "" -#: stock/models.py:789 +#: stock/models.py:866 msgid "Base part" msgstr "" -#: stock/models.py:799 +#: stock/models.py:876 msgid "Select a matching supplier part for this stock item" msgstr "" -#: stock/models.py:811 +#: stock/models.py:888 msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:819 stock/serializers.py:1580 +#: stock/models.py:896 stock/serializers.py:1611 msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:830 +#: stock/models.py:907 msgid "Is this item installed in another item?" msgstr "" -#: stock/models.py:849 +#: stock/models.py:926 msgid "Serial number for this item" msgstr "" -#: stock/models.py:863 stock/serializers.py:1563 +#: stock/models.py:940 stock/serializers.py:1594 msgid "Batch code for this stock item" msgstr "" -#: stock/models.py:868 +#: stock/models.py:945 msgid "Stock Quantity" msgstr "" -#: stock/models.py:878 +#: stock/models.py:955 msgid "Source Build" msgstr "" -#: stock/models.py:881 +#: stock/models.py:958 msgid "Build for this stock item" msgstr "" -#: stock/models.py:888 stock/templates/stock/item_base.html:363 +#: stock/models.py:965 stock/templates/stock/item_base.html:360 msgid "Consumed By" msgstr "" -#: stock/models.py:891 +#: stock/models.py:968 msgid "Build order which consumed this stock item" msgstr "" -#: stock/models.py:900 +#: stock/models.py:977 msgid "Source Purchase Order" msgstr "" -#: stock/models.py:904 +#: stock/models.py:981 msgid "Purchase order for this stock item" msgstr "" -#: stock/models.py:910 +#: stock/models.py:987 msgid "Destination Sales Order" msgstr "" -#: stock/models.py:921 +#: stock/models.py:998 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "" -#: stock/models.py:939 +#: stock/models.py:1016 msgid "Delete on deplete" msgstr "" -#: stock/models.py:940 +#: stock/models.py:1017 msgid "Delete this Stock Item when stock is depleted" msgstr "" -#: stock/models.py:960 +#: stock/models.py:1037 msgid "Single unit purchase price at time of purchase" msgstr "" -#: stock/models.py:991 +#: stock/models.py:1068 msgid "Converted to part" msgstr "" -#: stock/models.py:1511 +#: stock/models.py:1600 msgid "Part is not set as trackable" msgstr "" -#: stock/models.py:1517 +#: stock/models.py:1606 msgid "Quantity must be integer" msgstr "" -#: stock/models.py:1525 +#: stock/models.py:1614 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({self.quantity})" msgstr "" -#: stock/models.py:1531 -msgid "Serial numbers must be a list of integers" +#: stock/models.py:1620 +msgid "Serial numbers must be provided as a list" msgstr "" -#: stock/models.py:1536 +#: stock/models.py:1625 msgid "Quantity does not match serial numbers" msgstr "" -#: stock/models.py:1544 stock/serializers.py:726 -msgid "Serial numbers already exist" -msgstr "シリアル番号が既に存在します" - -#: stock/models.py:1641 +#: stock/models.py:1747 stock/models.py:2563 msgid "Test template does not exist" msgstr "" -#: stock/models.py:1659 +#: stock/models.py:1765 msgid "Stock item has been assigned to a sales order" msgstr "" -#: stock/models.py:1663 +#: stock/models.py:1769 msgid "Stock item is installed in another item" msgstr "" -#: stock/models.py:1666 +#: stock/models.py:1772 msgid "Stock item contains other items" msgstr "" -#: stock/models.py:1669 +#: stock/models.py:1775 msgid "Stock item has been assigned to a customer" msgstr "" -#: stock/models.py:1672 +#: stock/models.py:1778 msgid "Stock item is currently in production" msgstr "" -#: stock/models.py:1675 +#: stock/models.py:1781 msgid "Serialized stock cannot be merged" msgstr "" -#: stock/models.py:1682 stock/serializers.py:1469 +#: stock/models.py:1788 stock/serializers.py:1500 msgid "Duplicate stock items" msgstr "" -#: stock/models.py:1686 +#: stock/models.py:1792 msgid "Stock items must refer to the same part" msgstr "" -#: stock/models.py:1694 +#: stock/models.py:1800 msgid "Stock items must refer to the same supplier part" msgstr "" -#: stock/models.py:1699 +#: stock/models.py:1805 msgid "Stock status codes must match" msgstr "" -#: stock/models.py:1960 +#: stock/models.py:2066 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:2343 +#: stock/models.py:2462 msgid "Stock Item Tracking" msgstr "" -#: stock/models.py:2376 +#: stock/models.py:2495 msgid "Entry notes" msgstr "" -#: stock/models.py:2416 +#: stock/models.py:2535 msgid "Stock Item Test Result" msgstr "" -#: stock/models.py:2449 +#: stock/models.py:2566 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:2454 +#: stock/models.py:2570 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:2459 +#: stock/models.py:2575 msgid "Invalid value for this test" msgstr "" -#: stock/models.py:2544 +#: stock/models.py:2660 msgid "Test result" msgstr "" -#: stock/models.py:2551 +#: stock/models.py:2667 msgid "Test output value" msgstr "" -#: stock/models.py:2559 +#: stock/models.py:2675 stock/serializers.py:245 msgid "Test result attachment" msgstr "" -#: stock/models.py:2563 +#: stock/models.py:2679 msgid "Test notes" msgstr "" -#: stock/models.py:2571 templates/js/translated/stock.js:1633 +#: stock/models.py:2687 templates/js/translated/stock.js:1633 msgid "Test station" msgstr "" -#: stock/models.py:2572 +#: stock/models.py:2688 msgid "The identifier of the test station where the test was performed" msgstr "" -#: stock/models.py:2578 +#: stock/models.py:2694 msgid "Started" msgstr "" -#: stock/models.py:2579 +#: stock/models.py:2695 msgid "The timestamp of the test start" msgstr "" -#: stock/models.py:2585 +#: stock/models.py:2701 msgid "Finished" msgstr "" -#: stock/models.py:2586 +#: stock/models.py:2702 msgid "The timestamp of the test finish" msgstr "" -#: stock/serializers.py:76 +#: stock/serializers.py:77 msgid "Generated batch code" msgstr "" -#: stock/serializers.py:85 +#: stock/serializers.py:86 msgid "Select build order" msgstr "" -#: stock/serializers.py:94 +#: stock/serializers.py:95 msgid "Select stock item to generate batch code for" msgstr "" -#: stock/serializers.py:103 +#: stock/serializers.py:104 msgid "Select location to generate batch code for" msgstr "" -#: stock/serializers.py:112 +#: stock/serializers.py:113 msgid "Select part to generate batch code for" msgstr "" -#: stock/serializers.py:121 +#: stock/serializers.py:122 msgid "Select purchase order" msgstr "" -#: stock/serializers.py:128 +#: stock/serializers.py:129 msgid "Enter quantity for batch code" msgstr "" -#: stock/serializers.py:151 +#: stock/serializers.py:152 msgid "Generated serial number" msgstr "" -#: stock/serializers.py:160 +#: stock/serializers.py:161 msgid "Select part to generate serial number for" msgstr "" -#: stock/serializers.py:168 +#: stock/serializers.py:169 msgid "Quantity of serial numbers to generate" msgstr "" -#: stock/serializers.py:233 +#: stock/serializers.py:234 msgid "Test template for this result" msgstr "" -#: stock/serializers.py:254 +#: stock/serializers.py:258 msgid "Template ID or test name must be provided" msgstr "" -#: stock/serializers.py:286 +#: stock/serializers.py:290 msgid "The test finished time cannot be earlier than the test started time" msgstr "" -#: stock/serializers.py:323 +#: stock/serializers.py:327 msgid "Serial number is too large" msgstr "シリアル番号が大きすぎます" -#: stock/serializers.py:452 stock/templates/stock/item_base.html:193 +#: stock/serializers.py:462 stock/templates/stock/item_base.html:190 msgid "Parent Item" msgstr "" -#: stock/serializers.py:453 +#: stock/serializers.py:463 msgid "Parent stock item" msgstr "" -#: stock/serializers.py:472 +#: stock/serializers.py:484 msgid "Use pack size when adding: the quantity defined is the number of packs" msgstr "" -#: stock/serializers.py:596 stock/templates/stock/item_base.html:437 +#: stock/serializers.py:623 stock/templates/stock/item_base.html:434 #: templates/js/translated/table_filters.js:442 users/models.py:174 msgid "Expired" msgstr "期限切れ" -#: stock/serializers.py:602 stock/templates/stock/stock_sidebar.html:20 +#: stock/serializers.py:629 stock/templates/stock/stock_sidebar.html:20 msgid "Child Items" msgstr "" -#: stock/serializers.py:606 +#: stock/serializers.py:633 msgid "Tracking Items" msgstr "" -#: stock/serializers.py:612 +#: stock/serializers.py:639 msgid "Purchase price of this stock item, per unit or pack" msgstr "" -#: stock/serializers.py:631 +#: stock/serializers.py:658 msgid "Minimum Pricing" msgstr "" -#: stock/serializers.py:637 +#: stock/serializers.py:664 msgid "Maximum Pricing" msgstr "" -#: stock/serializers.py:661 +#: stock/serializers.py:688 msgid "Enter number of stock items to serialize" msgstr "" -#: stock/serializers.py:674 +#: stock/serializers.py:701 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({q})" msgstr "" -#: stock/serializers.py:681 +#: stock/serializers.py:708 msgid "Enter serial numbers for new items" msgstr "" -#: stock/serializers.py:692 stock/serializers.py:1426 stock/serializers.py:1682 +#: stock/serializers.py:719 stock/serializers.py:1457 stock/serializers.py:1713 msgid "Destination stock location" msgstr "" -#: stock/serializers.py:699 +#: stock/serializers.py:726 msgid "Optional note field" msgstr "" -#: stock/serializers.py:709 +#: stock/serializers.py:736 msgid "Serial numbers cannot be assigned to this part" msgstr "" -#: stock/serializers.py:764 +#: stock/serializers.py:756 +msgid "Serial numbers already exist" +msgstr "シリアル番号が既に存在します" + +#: stock/serializers.py:795 msgid "Select stock item to install" msgstr "" -#: stock/serializers.py:771 +#: stock/serializers.py:802 msgid "Quantity to Install" msgstr "" -#: stock/serializers.py:772 +#: stock/serializers.py:803 msgid "Enter the quantity of items to install" msgstr "" -#: stock/serializers.py:777 stock/serializers.py:857 stock/serializers.py:983 -#: stock/serializers.py:1033 +#: stock/serializers.py:808 stock/serializers.py:888 stock/serializers.py:1014 +#: stock/serializers.py:1064 msgid "Add transaction note (optional)" msgstr "" -#: stock/serializers.py:785 +#: stock/serializers.py:816 msgid "Quantity to install must be at least 1" msgstr "" -#: stock/serializers.py:793 +#: stock/serializers.py:824 msgid "Stock item is unavailable" msgstr "" -#: stock/serializers.py:804 +#: stock/serializers.py:835 msgid "Selected part is not in the Bill of Materials" msgstr "" -#: stock/serializers.py:817 +#: stock/serializers.py:848 msgid "Quantity to install must not exceed available quantity" msgstr "" -#: stock/serializers.py:852 +#: stock/serializers.py:883 msgid "Destination location for uninstalled item" msgstr "" -#: stock/serializers.py:903 +#: stock/serializers.py:934 msgid "Unsupported statistic type: " msgstr "" -#: stock/serializers.py:917 +#: stock/serializers.py:948 msgid "Select part to convert stock item into" msgstr "" -#: stock/serializers.py:930 +#: stock/serializers.py:961 msgid "Selected part is not a valid option for conversion" msgstr "" -#: stock/serializers.py:947 +#: stock/serializers.py:978 msgid "Cannot convert stock item with assigned SupplierPart" msgstr "" -#: stock/serializers.py:978 +#: stock/serializers.py:1009 msgid "Destination location for returned item" msgstr "" -#: stock/serializers.py:1015 +#: stock/serializers.py:1046 msgid "Select stock items to change status" msgstr "" -#: stock/serializers.py:1021 +#: stock/serializers.py:1052 msgid "No stock items selected" msgstr "" -#: stock/serializers.py:1117 stock/serializers.py:1194 -#: stock/templates/stock/location.html:162 -#: stock/templates/stock/location.html:219 +#: stock/serializers.py:1148 stock/serializers.py:1225 +#: stock/templates/stock/location.html:163 +#: stock/templates/stock/location.html:220 #: stock/templates/stock/location_sidebar.html:5 msgid "Sublocations" msgstr "" -#: stock/serializers.py:1187 templates/js/translated/stock.js:160 +#: stock/serializers.py:1218 templates/js/translated/stock.js:160 msgid "Parent stock location" msgstr "" -#: stock/serializers.py:1298 +#: stock/serializers.py:1329 msgid "Part must be salable" msgstr "パーツは販売可能でなければなりません" -#: stock/serializers.py:1302 +#: stock/serializers.py:1333 msgid "Item is allocated to a sales order" msgstr "" -#: stock/serializers.py:1306 +#: stock/serializers.py:1337 msgid "Item is allocated to a build order" msgstr "" -#: stock/serializers.py:1330 +#: stock/serializers.py:1361 msgid "Customer to assign stock items" msgstr "" -#: stock/serializers.py:1336 +#: stock/serializers.py:1367 msgid "Selected company is not a customer" msgstr "" -#: stock/serializers.py:1344 +#: stock/serializers.py:1375 msgid "Stock assignment notes" msgstr "" -#: stock/serializers.py:1354 stock/serializers.py:1608 +#: stock/serializers.py:1385 stock/serializers.py:1639 msgid "A list of stock items must be provided" msgstr "" -#: stock/serializers.py:1433 +#: stock/serializers.py:1464 msgid "Stock merging notes" msgstr "" -#: stock/serializers.py:1438 +#: stock/serializers.py:1469 msgid "Allow mismatched suppliers" msgstr "" -#: stock/serializers.py:1439 +#: stock/serializers.py:1470 msgid "Allow stock items with different supplier parts to be merged" msgstr "" -#: stock/serializers.py:1444 +#: stock/serializers.py:1475 msgid "Allow mismatched status" msgstr "" -#: stock/serializers.py:1445 +#: stock/serializers.py:1476 msgid "Allow stock items with different status codes to be merged" msgstr "" -#: stock/serializers.py:1455 +#: stock/serializers.py:1486 msgid "At least two stock items must be provided" msgstr "" -#: stock/serializers.py:1522 +#: stock/serializers.py:1553 msgid "No Change" msgstr "" -#: stock/serializers.py:1551 +#: stock/serializers.py:1582 msgid "StockItem primary key value" msgstr "" -#: stock/serializers.py:1570 +#: stock/serializers.py:1601 msgid "Stock item status code" msgstr "" -#: stock/serializers.py:1598 +#: stock/serializers.py:1629 msgid "Stock transaction notes" msgstr "" @@ -10175,107 +10539,107 @@ msgstr "却下済み" msgid "Quarantined" msgstr "" -#: stock/status_codes.py:40 +#: stock/status_codes.py:44 msgid "Legacy stock tracking entry" msgstr "" -#: stock/status_codes.py:42 templates/js/translated/stock.js:550 +#: stock/status_codes.py:46 templates/js/translated/stock.js:550 msgid "Stock item created" msgstr "在庫商品を作成しました" -#: stock/status_codes.py:45 +#: stock/status_codes.py:49 msgid "Edited stock item" msgstr "在庫商品編集済み" -#: stock/status_codes.py:46 +#: stock/status_codes.py:50 msgid "Assigned serial number" msgstr "割り当てられたシリアル番号" -#: stock/status_codes.py:49 +#: stock/status_codes.py:53 msgid "Stock counted" msgstr "在庫数" -#: stock/status_codes.py:50 +#: stock/status_codes.py:54 msgid "Stock manually added" msgstr "手動在庫追加が完了しました" -#: stock/status_codes.py:51 +#: stock/status_codes.py:55 msgid "Stock manually removed" msgstr "手動在庫削除が完了しました" -#: stock/status_codes.py:54 +#: stock/status_codes.py:58 msgid "Location changed" msgstr "ロケーションが変更されました" -#: stock/status_codes.py:55 +#: stock/status_codes.py:59 msgid "Stock updated" msgstr "" -#: stock/status_codes.py:58 +#: stock/status_codes.py:62 msgid "Installed into assembly" msgstr "アセンブリへインストールしました" -#: stock/status_codes.py:59 +#: stock/status_codes.py:63 msgid "Removed from assembly" msgstr "アセンブリから削除しました" -#: stock/status_codes.py:61 +#: stock/status_codes.py:65 msgid "Installed component item" msgstr "インストール済みのコンポーネント項目" -#: stock/status_codes.py:62 +#: stock/status_codes.py:66 msgid "Removed component item" msgstr "コンポーネント項目を削除しました" -#: stock/status_codes.py:65 +#: stock/status_codes.py:69 msgid "Split from parent item" msgstr "親アイテムから分割する" -#: stock/status_codes.py:66 +#: stock/status_codes.py:70 msgid "Split child item" msgstr "子項目を分割" -#: stock/status_codes.py:69 templates/js/translated/stock.js:1943 +#: stock/status_codes.py:73 templates/js/translated/stock.js:1944 msgid "Merged stock items" msgstr "商品在庫をマージしました" -#: stock/status_codes.py:72 +#: stock/status_codes.py:76 msgid "Converted to variant" msgstr "" -#: stock/status_codes.py:75 +#: stock/status_codes.py:79 msgid "Build order output created" msgstr "組立注文の出力が作成されました" -#: stock/status_codes.py:76 +#: stock/status_codes.py:80 msgid "Build order output completed" msgstr "組立注文の出力が完了しました" -#: stock/status_codes.py:77 +#: stock/status_codes.py:81 msgid "Build order output rejected" msgstr "" -#: stock/status_codes.py:78 templates/js/translated/stock.js:1849 +#: stock/status_codes.py:82 templates/js/translated/stock.js:1849 msgid "Consumed by build order" msgstr "" -#: stock/status_codes.py:81 +#: stock/status_codes.py:85 msgid "Shipped against Sales Order" msgstr "" -#: stock/status_codes.py:84 +#: stock/status_codes.py:88 msgid "Received against Purchase Order" msgstr "" -#: stock/status_codes.py:87 +#: stock/status_codes.py:91 msgid "Returned against Return Order" msgstr "" -#: stock/status_codes.py:90 templates/js/translated/table_filters.js:382 +#: stock/status_codes.py:94 templates/js/translated/table_filters.js:382 msgid "Sent to customer" msgstr "顧客に送信されました" -#: stock/status_codes.py:91 +#: stock/status_codes.py:95 msgid "Returned from customer" msgstr "顧客からの返品" @@ -10296,7 +10660,7 @@ msgstr "" msgid "Test Data" msgstr "" -#: stock/templates/stock/item.html:85 stock/templates/stock/item_base.html:65 +#: stock/templates/stock/item.html:85 msgid "Test Report" msgstr "" @@ -10316,7 +10680,7 @@ msgstr "" msgid "Installed Stock Items" msgstr "" -#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3354 +#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3355 msgid "Install Stock Item" msgstr "" @@ -10328,208 +10692,212 @@ msgstr "" msgid "Add Test Result" msgstr "" -#: stock/templates/stock/item_base.html:33 +#: stock/templates/stock/item_base.html:34 msgid "Locate stock item" msgstr "" -#: stock/templates/stock/item_base.html:51 +#: stock/templates/stock/item_base.html:52 msgid "Scan to Location" msgstr "" #: stock/templates/stock/item_base.html:59 -#: stock/templates/stock/location.html:67 +#: stock/templates/stock/location.html:68 #: templates/js/translated/filters.js:434 msgid "Printing actions" msgstr "" -#: stock/templates/stock/item_base.html:75 +#: stock/templates/stock/item_base.html:64 templates/js/translated/report.js:49 +msgid "Print Report" +msgstr "" + +#: stock/templates/stock/item_base.html:72 msgid "Stock adjustment actions" msgstr "" -#: stock/templates/stock/item_base.html:79 -#: stock/templates/stock/location.html:87 templates/js/translated/stock.js:1909 +#: stock/templates/stock/item_base.html:76 +#: stock/templates/stock/location.html:88 templates/js/translated/stock.js:1909 msgid "Count stock" msgstr "" -#: stock/templates/stock/item_base.html:81 +#: stock/templates/stock/item_base.html:78 #: templates/js/translated/stock.js:1891 msgid "Add stock" msgstr "" -#: stock/templates/stock/item_base.html:82 +#: stock/templates/stock/item_base.html:79 #: templates/js/translated/stock.js:1900 msgid "Remove stock" msgstr "" -#: stock/templates/stock/item_base.html:85 +#: stock/templates/stock/item_base.html:82 msgid "Serialize stock" msgstr "" -#: stock/templates/stock/item_base.html:88 -#: stock/templates/stock/location.html:93 templates/js/translated/stock.js:1918 +#: stock/templates/stock/item_base.html:85 +#: stock/templates/stock/location.html:94 templates/js/translated/stock.js:1918 msgid "Transfer stock" msgstr "" -#: stock/templates/stock/item_base.html:91 -#: templates/js/translated/stock.js:1972 +#: stock/templates/stock/item_base.html:88 +#: templates/js/translated/stock.js:1973 msgid "Assign to customer" msgstr "" -#: stock/templates/stock/item_base.html:94 +#: stock/templates/stock/item_base.html:91 msgid "Return to stock" msgstr "" -#: stock/templates/stock/item_base.html:97 +#: stock/templates/stock/item_base.html:94 msgid "Uninstall stock item" msgstr "" -#: stock/templates/stock/item_base.html:97 +#: stock/templates/stock/item_base.html:94 msgid "Uninstall" msgstr "" -#: stock/templates/stock/item_base.html:101 +#: stock/templates/stock/item_base.html:98 msgid "Install stock item" msgstr "" -#: stock/templates/stock/item_base.html:101 +#: stock/templates/stock/item_base.html:98 msgid "Install" msgstr "" -#: stock/templates/stock/item_base.html:115 +#: stock/templates/stock/item_base.html:112 msgid "Convert to variant" msgstr "" -#: stock/templates/stock/item_base.html:118 +#: stock/templates/stock/item_base.html:115 msgid "Duplicate stock item" msgstr "" -#: stock/templates/stock/item_base.html:120 +#: stock/templates/stock/item_base.html:117 msgid "Edit stock item" msgstr "" -#: stock/templates/stock/item_base.html:123 +#: stock/templates/stock/item_base.html:120 msgid "Delete stock item" msgstr "" -#: stock/templates/stock/item_base.html:169 templates/InvenTree/search.html:139 -#: templates/js/translated/build.js:2295 templates/navbar.html:38 +#: stock/templates/stock/item_base.html:166 templates/InvenTree/search.html:139 +#: templates/js/translated/build.js:2298 templates/navbar.html:38 msgid "Build" msgstr "組立" -#: stock/templates/stock/item_base.html:211 +#: stock/templates/stock/item_base.html:208 msgid "No manufacturer set" msgstr "" -#: stock/templates/stock/item_base.html:251 +#: stock/templates/stock/item_base.html:248 msgid "You are not in the list of owners of this item. This stock item cannot be edited." msgstr "" -#: stock/templates/stock/item_base.html:252 -#: stock/templates/stock/location.html:146 +#: stock/templates/stock/item_base.html:249 +#: stock/templates/stock/location.html:147 msgid "Read only" msgstr "" -#: stock/templates/stock/item_base.html:265 +#: stock/templates/stock/item_base.html:262 msgid "This stock item is unavailable" msgstr "" -#: stock/templates/stock/item_base.html:271 +#: stock/templates/stock/item_base.html:268 msgid "This stock item is in production and cannot be edited." msgstr "" -#: stock/templates/stock/item_base.html:272 +#: stock/templates/stock/item_base.html:269 msgid "Edit the stock item from the build view." msgstr "" -#: stock/templates/stock/item_base.html:287 +#: stock/templates/stock/item_base.html:284 msgid "This stock item is allocated to Sales Order" msgstr "" -#: stock/templates/stock/item_base.html:295 +#: stock/templates/stock/item_base.html:292 msgid "This stock item is allocated to Build Order" msgstr "" -#: stock/templates/stock/item_base.html:311 +#: stock/templates/stock/item_base.html:308 msgid "This stock item is serialized. It has a unique serial number and the quantity cannot be adjusted" msgstr "" -#: stock/templates/stock/item_base.html:317 +#: stock/templates/stock/item_base.html:314 msgid "previous page" msgstr "" -#: stock/templates/stock/item_base.html:317 +#: stock/templates/stock/item_base.html:314 msgid "Navigate to previous serial number" msgstr "" -#: stock/templates/stock/item_base.html:326 +#: stock/templates/stock/item_base.html:323 msgid "next page" msgstr "" -#: stock/templates/stock/item_base.html:326 +#: stock/templates/stock/item_base.html:323 msgid "Navigate to next serial number" msgstr "" -#: stock/templates/stock/item_base.html:398 -#: templates/js/translated/build.js:2552 +#: stock/templates/stock/item_base.html:395 +#: templates/js/translated/build.js:2559 msgid "No location set" msgstr "" -#: stock/templates/stock/item_base.html:413 +#: stock/templates/stock/item_base.html:410 msgid "Tests" msgstr "" -#: stock/templates/stock/item_base.html:419 +#: stock/templates/stock/item_base.html:416 msgid "This stock item has not passed all required tests" msgstr "" -#: stock/templates/stock/item_base.html:437 +#: stock/templates/stock/item_base.html:434 #, python-format msgid "This StockItem expired on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:439 +#: stock/templates/stock/item_base.html:436 #, python-format msgid "This StockItem expires on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:455 +#: stock/templates/stock/item_base.html:452 msgid "No stocktake performed" msgstr "" -#: stock/templates/stock/item_base.html:504 -#: templates/js/translated/stock.js:2037 +#: stock/templates/stock/item_base.html:501 +#: templates/js/translated/stock.js:2038 msgid "stock item" msgstr "" -#: stock/templates/stock/item_base.html:527 +#: stock/templates/stock/item_base.html:524 msgid "Edit Stock Status" msgstr "" -#: stock/templates/stock/item_base.html:536 +#: stock/templates/stock/item_base.html:533 msgid "Stock Item QR Code" msgstr "" -#: stock/templates/stock/item_base.html:547 +#: stock/templates/stock/item_base.html:544 msgid "Link Barcode to Stock Item" msgstr "" -#: stock/templates/stock/item_base.html:611 +#: stock/templates/stock/item_base.html:608 msgid "Select one of the part variants listed below." msgstr "" -#: stock/templates/stock/item_base.html:614 +#: stock/templates/stock/item_base.html:611 msgid "Warning" msgstr "" -#: stock/templates/stock/item_base.html:615 +#: stock/templates/stock/item_base.html:612 msgid "This action cannot be easily undone" msgstr "" -#: stock/templates/stock/item_base.html:623 +#: stock/templates/stock/item_base.html:620 msgid "Convert Stock Item" msgstr "" -#: stock/templates/stock/item_base.html:656 +#: stock/templates/stock/item_base.html:653 msgid "Return to Stock" msgstr "" @@ -10541,84 +10909,84 @@ msgstr "" msgid "Select quantity to serialize, and unique serial numbers." msgstr "" -#: stock/templates/stock/location.html:35 +#: stock/templates/stock/location.html:36 msgid "Perform stocktake for this stock location" msgstr "" -#: stock/templates/stock/location.html:42 +#: stock/templates/stock/location.html:43 msgid "Locate stock location" msgstr "" -#: stock/templates/stock/location.html:60 +#: stock/templates/stock/location.html:61 msgid "Scan stock items into this location" msgstr "" -#: stock/templates/stock/location.html:60 +#: stock/templates/stock/location.html:61 msgid "Scan In Stock Items" msgstr "" -#: stock/templates/stock/location.html:61 +#: stock/templates/stock/location.html:62 msgid "Scan stock container into this location" msgstr "" -#: stock/templates/stock/location.html:61 +#: stock/templates/stock/location.html:62 msgid "Scan In Container" msgstr "" -#: stock/templates/stock/location.html:72 +#: stock/templates/stock/location.html:73 msgid "Print Location Report" msgstr "" -#: stock/templates/stock/location.html:101 +#: stock/templates/stock/location.html:102 msgid "Location actions" msgstr "" -#: stock/templates/stock/location.html:103 +#: stock/templates/stock/location.html:104 msgid "Edit location" msgstr "" -#: stock/templates/stock/location.html:105 +#: stock/templates/stock/location.html:106 msgid "Delete location" msgstr "" -#: stock/templates/stock/location.html:135 +#: stock/templates/stock/location.html:136 msgid "Top level stock location" msgstr "" -#: stock/templates/stock/location.html:141 +#: stock/templates/stock/location.html:142 msgid "Location Owner" msgstr "" -#: stock/templates/stock/location.html:145 +#: stock/templates/stock/location.html:146 msgid "You are not in the list of owners of this location. This stock location cannot be edited." msgstr "" -#: stock/templates/stock/location.html:173 +#: stock/templates/stock/location.html:174 msgid "Location Type" msgstr "" -#: stock/templates/stock/location.html:223 +#: stock/templates/stock/location.html:224 msgid "Create new stock location" msgstr "" -#: stock/templates/stock/location.html:224 +#: stock/templates/stock/location.html:225 msgid "New Location" msgstr "" -#: stock/templates/stock/location.html:298 -#: templates/js/translated/stock.js:2657 +#: stock/templates/stock/location.html:299 +#: templates/js/translated/stock.js:2658 msgid "stock location" msgstr "" -#: stock/templates/stock/location.html:320 +#: stock/templates/stock/location.html:321 msgid "Scanned stock container into this location" msgstr "" -#: stock/templates/stock/location.html:393 +#: stock/templates/stock/location.html:394 msgid "Stock Location QR Code" msgstr "" -#: stock/templates/stock/location.html:404 +#: stock/templates/stock/location.html:405 msgid "Link Barcode to Stock Location" msgstr "" @@ -10630,10 +10998,6 @@ msgstr "" msgid "Stock Tracking" msgstr "" -#: stock/templates/stock/stock_sidebar.html:8 -msgid "Allocations" -msgstr "" - #: templates/403.html:6 templates/403.html:12 templates/403_csrf.html:7 msgid "Permission Denied" msgstr "" @@ -11107,9 +11471,9 @@ msgid "Rate" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:81 -#: templates/js/translated/forms.js:548 templates/js/translated/helpers.js:108 +#: templates/js/translated/forms.js:548 templates/js/translated/helpers.js:109 #: templates/js/translated/part.js:395 templates/js/translated/pricing.js:629 -#: templates/js/translated/stock.js:252 users/models.py:406 +#: templates/js/translated/stock.js:252 users/models.py:408 msgid "Delete" msgstr "" @@ -11130,7 +11494,7 @@ msgid "No project codes found" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:158 -#: templates/js/translated/build.js:2400 +#: templates/js/translated/build.js:2403 msgid "group" msgstr "" @@ -11196,7 +11560,7 @@ msgid "Delete Location Type" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:503 -#: templates/InvenTree/settings/stock.html:38 +#: templates/InvenTree/settings/stock.html:39 msgid "New Location Type" msgstr "" @@ -11253,7 +11617,7 @@ msgstr "" msgid "Stock Settings" msgstr "" -#: templates/InvenTree/settings/stock.html:34 +#: templates/InvenTree/settings/stock.html:35 msgid "Stock Location Types" msgstr "" @@ -11280,7 +11644,7 @@ msgid "Unverified" msgstr "" #: templates/InvenTree/settings/user.html:80 -#: templates/js/translated/company.js:957 +#: templates/js/translated/company.js:958 msgid "Primary" msgstr "" @@ -11532,7 +11896,7 @@ msgid "Submit Bug Report" msgstr "" #: templates/about.html:91 templates/clip.html:4 -#: templates/js/translated/helpers.js:592 +#: templates/js/translated/helpers.js:598 msgid "copy to clipboard" msgstr "" @@ -11738,23 +12102,24 @@ msgstr "" msgid "Barcode Identifier" msgstr "" -#: templates/base.html:103 +#: templates/base.html:102 msgid "Server Restart Required" msgstr "" -#: templates/base.html:106 +#: templates/base.html:105 msgid "A configuration option has been changed which requires a server restart" msgstr "" -#: templates/base.html:106 templates/base.html:116 +#: templates/base.html:105 templates/base.html:115 +#: templates/socialaccount/authentication_error.html:13 msgid "Contact your system administrator for further information" msgstr "" -#: templates/base.html:113 +#: templates/base.html:112 msgid "Pending Database Migrations" msgstr "" -#: templates/base.html:116 +#: templates/base.html:115 msgid "There are pending database migrations which require attention" msgstr "" @@ -11787,7 +12152,7 @@ msgid "The following parts are low on required stock" msgstr "" #: templates/email/build_order_required_stock.html:18 -#: templates/js/translated/bom.js:1674 templates/js/translated/build.js:2747 +#: templates/js/translated/bom.js:1674 templates/js/translated/build.js:2765 msgid "Required Quantity" msgstr "" @@ -11801,7 +12166,7 @@ msgid "Click on the following link to view this part" msgstr "このパーツを表示するには、次のリンクをクリックしてください" #: templates/email/low_stock_notification.html:18 -#: templates/js/translated/part.js:3237 +#: templates/js/translated/part.js:3253 msgid "Minimum Quantity" msgstr "最小在庫" @@ -12039,7 +12404,7 @@ msgstr "" #: templates/js/translated/bom.js:189 templates/js/translated/bom.js:700 #: templates/js/translated/modals.js:75 templates/js/translated/modals.js:629 #: templates/js/translated/modals.js:757 templates/js/translated/modals.js:1065 -#: templates/js/translated/purchase_order.js:797 templates/modals.html:15 +#: templates/js/translated/purchase_order.js:780 templates/modals.html:15 #: templates/modals.html:27 templates/modals.html:39 templates/modals.html:50 msgid "Close" msgstr "" @@ -12156,7 +12521,7 @@ msgstr "" msgid "Substitutes Available" msgstr "" -#: templates/js/translated/bom.js:950 templates/js/translated/build.js:2673 +#: templates/js/translated/bom.js:950 templates/js/translated/build.js:2682 msgid "Variant stock allowed" msgstr "" @@ -12176,30 +12541,30 @@ msgstr "" msgid "No pricing available" msgstr "" -#: templates/js/translated/bom.js:1184 templates/js/translated/build.js:2812 +#: templates/js/translated/bom.js:1184 templates/js/translated/build.js:2830 msgid "External stock" msgstr "" -#: templates/js/translated/bom.js:1188 templates/js/translated/build.js:2786 -#: templates/js/translated/sales_order.js:1946 +#: templates/js/translated/bom.js:1188 templates/js/translated/build.js:2804 +#: templates/js/translated/sales_order.js:1927 msgid "No Stock Available" msgstr "" -#: templates/js/translated/bom.js:1193 templates/js/translated/build.js:2790 +#: templates/js/translated/bom.js:1193 templates/js/translated/build.js:2808 msgid "Includes variant and substitute stock" msgstr "" -#: templates/js/translated/bom.js:1195 templates/js/translated/build.js:2792 +#: templates/js/translated/bom.js:1195 templates/js/translated/build.js:2810 #: templates/js/translated/part.js:1263 -#: templates/js/translated/sales_order.js:1943 +#: templates/js/translated/sales_order.js:1924 msgid "Includes variant stock" msgstr "" -#: templates/js/translated/bom.js:1197 templates/js/translated/build.js:2794 +#: templates/js/translated/bom.js:1197 templates/js/translated/build.js:2812 msgid "Includes substitute stock" msgstr "" -#: templates/js/translated/bom.js:1225 templates/js/translated/build.js:2777 +#: templates/js/translated/bom.js:1225 templates/js/translated/build.js:2795 msgid "Consumable item" msgstr "" @@ -12231,7 +12596,7 @@ msgstr "" msgid "No BOM items found" msgstr "" -#: templates/js/translated/bom.js:1657 templates/js/translated/build.js:2658 +#: templates/js/translated/bom.js:1657 templates/js/translated/build.js:2667 msgid "Required Part" msgstr "" @@ -12243,396 +12608,396 @@ msgstr "" msgid "Edit Build Order" msgstr "" -#: templates/js/translated/build.js:191 +#: templates/js/translated/build.js:194 msgid "Create Build Order" msgstr "" -#: templates/js/translated/build.js:223 +#: templates/js/translated/build.js:226 msgid "Cancel Build Order" msgstr "" -#: templates/js/translated/build.js:232 +#: templates/js/translated/build.js:235 msgid "Are you sure you wish to cancel this build?" msgstr "" -#: templates/js/translated/build.js:238 +#: templates/js/translated/build.js:241 msgid "Stock items have been allocated to this build order" msgstr "" -#: templates/js/translated/build.js:245 +#: templates/js/translated/build.js:248 msgid "There are incomplete outputs remaining for this build order" msgstr "" -#: templates/js/translated/build.js:297 +#: templates/js/translated/build.js:300 msgid "Build order is ready to be completed" msgstr "" -#: templates/js/translated/build.js:305 +#: templates/js/translated/build.js:308 msgid "This build order cannot be completed as there are incomplete outputs" msgstr "" -#: templates/js/translated/build.js:310 +#: templates/js/translated/build.js:313 msgid "Build Order is incomplete" msgstr "" -#: templates/js/translated/build.js:328 +#: templates/js/translated/build.js:331 msgid "Complete Build Order" msgstr "" -#: templates/js/translated/build.js:369 templates/js/translated/stock.js:127 +#: templates/js/translated/build.js:372 templates/js/translated/stock.js:127 #: templates/js/translated/stock.js:301 msgid "Next available serial number" msgstr "" -#: templates/js/translated/build.js:371 templates/js/translated/stock.js:129 +#: templates/js/translated/build.js:374 templates/js/translated/stock.js:129 #: templates/js/translated/stock.js:303 msgid "Latest serial number" msgstr "" -#: templates/js/translated/build.js:380 +#: templates/js/translated/build.js:383 msgid "The Bill of Materials contains trackable parts" msgstr "" -#: templates/js/translated/build.js:381 +#: templates/js/translated/build.js:384 msgid "Build outputs must be generated individually" msgstr "" -#: templates/js/translated/build.js:389 +#: templates/js/translated/build.js:392 msgid "Trackable parts can have serial numbers specified" msgstr "" -#: templates/js/translated/build.js:390 +#: templates/js/translated/build.js:393 msgid "Enter serial numbers to generate multiple single build outputs" msgstr "" -#: templates/js/translated/build.js:397 +#: templates/js/translated/build.js:400 msgid "Create Build Output" msgstr "" -#: templates/js/translated/build.js:428 +#: templates/js/translated/build.js:431 msgid "Allocate stock items to this build output" msgstr "" -#: templates/js/translated/build.js:436 +#: templates/js/translated/build.js:439 msgid "Deallocate stock from build output" msgstr "" -#: templates/js/translated/build.js:445 +#: templates/js/translated/build.js:448 msgid "Complete build output" msgstr "" -#: templates/js/translated/build.js:453 +#: templates/js/translated/build.js:456 msgid "Scrap build output" msgstr "" -#: templates/js/translated/build.js:460 +#: templates/js/translated/build.js:463 msgid "Delete build output" msgstr "" -#: templates/js/translated/build.js:480 +#: templates/js/translated/build.js:483 msgid "Are you sure you wish to deallocate the selected stock items from this build?" msgstr "" -#: templates/js/translated/build.js:498 +#: templates/js/translated/build.js:501 msgid "Deallocate Stock Items" msgstr "" -#: templates/js/translated/build.js:584 templates/js/translated/build.js:711 -#: templates/js/translated/build.js:836 +#: templates/js/translated/build.js:587 templates/js/translated/build.js:714 +#: templates/js/translated/build.js:839 msgid "Select Build Outputs" msgstr "" -#: templates/js/translated/build.js:585 templates/js/translated/build.js:712 -#: templates/js/translated/build.js:837 +#: templates/js/translated/build.js:588 templates/js/translated/build.js:715 +#: templates/js/translated/build.js:840 msgid "At least one build output must be selected" msgstr "" -#: templates/js/translated/build.js:599 +#: templates/js/translated/build.js:602 msgid "Selected build outputs will be marked as complete" msgstr "" -#: templates/js/translated/build.js:603 templates/js/translated/build.js:736 -#: templates/js/translated/build.js:859 +#: templates/js/translated/build.js:606 templates/js/translated/build.js:739 +#: templates/js/translated/build.js:862 msgid "Output" msgstr "" -#: templates/js/translated/build.js:630 +#: templates/js/translated/build.js:633 msgid "Complete Build Outputs" msgstr "" -#: templates/js/translated/build.js:727 +#: templates/js/translated/build.js:730 msgid "Selected build outputs will be marked as scrapped" msgstr "" -#: templates/js/translated/build.js:729 +#: templates/js/translated/build.js:732 msgid "Scrapped output are marked as rejected" msgstr "" -#: templates/js/translated/build.js:730 +#: templates/js/translated/build.js:733 msgid "Allocated stock items will no longer be available" msgstr "" -#: templates/js/translated/build.js:731 +#: templates/js/translated/build.js:734 msgid "The completion status of the build order will not be adjusted" msgstr "" -#: templates/js/translated/build.js:761 +#: templates/js/translated/build.js:764 msgid "Scrap Build Outputs" msgstr "" -#: templates/js/translated/build.js:851 +#: templates/js/translated/build.js:854 msgid "Selected build outputs will be deleted" msgstr "" -#: templates/js/translated/build.js:853 +#: templates/js/translated/build.js:856 msgid "Build output data will be permanently deleted" msgstr "" -#: templates/js/translated/build.js:854 +#: templates/js/translated/build.js:857 msgid "Allocated stock items will be returned to stock" msgstr "" -#: templates/js/translated/build.js:872 +#: templates/js/translated/build.js:875 msgid "Delete Build Outputs" msgstr "" -#: templates/js/translated/build.js:959 +#: templates/js/translated/build.js:962 msgid "Delete allocations" msgstr "" -#: templates/js/translated/build.js:966 +#: templates/js/translated/build.js:969 msgid "Delete Stock Allocations" msgstr "" -#: templates/js/translated/build.js:989 +#: templates/js/translated/build.js:992 msgid "No allocated stock" msgstr "" -#: templates/js/translated/build.js:1045 +#: templates/js/translated/build.js:1048 msgid "Stock item" msgstr "" -#: templates/js/translated/build.js:1070 +#: templates/js/translated/build.js:1073 msgid "Edit build allocation" msgstr "" -#: templates/js/translated/build.js:1071 +#: templates/js/translated/build.js:1074 msgid "Delete build allocation" msgstr "" -#: templates/js/translated/build.js:1089 +#: templates/js/translated/build.js:1092 msgid "Edit Build Allocation" msgstr "" -#: templates/js/translated/build.js:1102 +#: templates/js/translated/build.js:1105 msgid "Delete Build Allocation" msgstr "" -#: templates/js/translated/build.js:1133 +#: templates/js/translated/build.js:1136 msgid "No build order allocations found" msgstr "" -#: templates/js/translated/build.js:1178 +#: templates/js/translated/build.js:1181 msgid "Location not specified" msgstr "" -#: templates/js/translated/build.js:1200 +#: templates/js/translated/build.js:1203 msgid "Complete outputs" msgstr "" -#: templates/js/translated/build.js:1218 +#: templates/js/translated/build.js:1221 msgid "Scrap outputs" msgstr "" -#: templates/js/translated/build.js:1236 +#: templates/js/translated/build.js:1239 msgid "Delete outputs" msgstr "" -#: templates/js/translated/build.js:1289 +#: templates/js/translated/build.js:1292 msgid "build output" msgstr "" -#: templates/js/translated/build.js:1290 +#: templates/js/translated/build.js:1293 msgid "build outputs" msgstr "" -#: templates/js/translated/build.js:1294 +#: templates/js/translated/build.js:1297 msgid "Build output actions" msgstr "" -#: templates/js/translated/build.js:1470 +#: templates/js/translated/build.js:1473 msgid "No active build outputs found" msgstr "" -#: templates/js/translated/build.js:1563 +#: templates/js/translated/build.js:1566 msgid "Allocated Lines" msgstr "" -#: templates/js/translated/build.js:1577 +#: templates/js/translated/build.js:1580 msgid "Required Tests" msgstr "" -#: templates/js/translated/build.js:1749 -#: templates/js/translated/purchase_order.js:611 -#: templates/js/translated/sales_order.js:1207 +#: templates/js/translated/build.js:1752 +#: templates/js/translated/purchase_order.js:594 +#: templates/js/translated/sales_order.js:1173 msgid "Select Parts" msgstr "" -#: templates/js/translated/build.js:1750 -#: templates/js/translated/sales_order.js:1208 +#: templates/js/translated/build.js:1753 +#: templates/js/translated/sales_order.js:1174 msgid "You must select at least one part to allocate" msgstr "" -#: templates/js/translated/build.js:1813 -#: templates/js/translated/sales_order.js:1157 +#: templates/js/translated/build.js:1816 +#: templates/js/translated/sales_order.js:1123 msgid "Specify stock allocation quantity" msgstr "" -#: templates/js/translated/build.js:1890 +#: templates/js/translated/build.js:1893 msgid "All Parts Allocated" msgstr "" -#: templates/js/translated/build.js:1891 +#: templates/js/translated/build.js:1894 msgid "All selected parts have been fully allocated" msgstr "" -#: templates/js/translated/build.js:1905 -#: templates/js/translated/sales_order.js:1222 +#: templates/js/translated/build.js:1908 +#: templates/js/translated/sales_order.js:1188 msgid "Select source location (leave blank to take from all locations)" msgstr "" -#: templates/js/translated/build.js:1933 +#: templates/js/translated/build.js:1936 msgid "Allocate Stock Items to Build Order" msgstr "" -#: templates/js/translated/build.js:1944 -#: templates/js/translated/sales_order.js:1319 +#: templates/js/translated/build.js:1947 +#: templates/js/translated/sales_order.js:1285 msgid "No matching stock locations" msgstr "" -#: templates/js/translated/build.js:2017 -#: templates/js/translated/sales_order.js:1398 +#: templates/js/translated/build.js:2020 +#: templates/js/translated/sales_order.js:1364 msgid "No matching stock items" msgstr "" -#: templates/js/translated/build.js:2114 +#: templates/js/translated/build.js:2117 msgid "Automatic Stock Allocation" msgstr "" -#: templates/js/translated/build.js:2115 +#: templates/js/translated/build.js:2118 msgid "Stock items will be automatically allocated to this build order, according to the provided guidelines" msgstr "" -#: templates/js/translated/build.js:2117 +#: templates/js/translated/build.js:2120 msgid "If a location is specified, stock will only be allocated from that location" msgstr "" -#: templates/js/translated/build.js:2118 +#: templates/js/translated/build.js:2121 msgid "If stock is considered interchangeable, it will be allocated from the first location it is found" msgstr "" -#: templates/js/translated/build.js:2119 +#: templates/js/translated/build.js:2122 msgid "If substitute stock is allowed, it will be used where stock of the primary part cannot be found" msgstr "" -#: templates/js/translated/build.js:2149 +#: templates/js/translated/build.js:2152 msgid "Allocate Stock Items" msgstr "" -#: templates/js/translated/build.js:2254 +#: templates/js/translated/build.js:2257 msgid "No builds matching query" msgstr "" -#: templates/js/translated/build.js:2289 templates/js/translated/build.js:2652 +#: templates/js/translated/build.js:2292 templates/js/translated/build.js:2661 #: templates/js/translated/forms.js:2196 templates/js/translated/forms.js:2212 #: templates/js/translated/part.js:2322 templates/js/translated/part.js:2761 -#: templates/js/translated/stock.js:2068 templates/js/translated/stock.js:2795 +#: templates/js/translated/stock.js:2069 templates/js/translated/stock.js:2796 msgid "Select" msgstr "" -#: templates/js/translated/build.js:2303 +#: templates/js/translated/build.js:2306 msgid "Build order is overdue" msgstr "" -#: templates/js/translated/build.js:2385 templates/js/translated/stock.js:3126 +#: templates/js/translated/build.js:2388 templates/js/translated/stock.js:3127 msgid "No user information" msgstr "" -#: templates/js/translated/build.js:2561 -#: templates/js/translated/sales_order.js:1682 +#: templates/js/translated/build.js:2568 +#: templates/js/translated/sales_order.js:1663 msgid "Edit stock allocation" msgstr "" -#: templates/js/translated/build.js:2562 -#: templates/js/translated/sales_order.js:1683 +#: templates/js/translated/build.js:2569 +#: templates/js/translated/sales_order.js:1664 msgid "Delete stock allocation" msgstr "" -#: templates/js/translated/build.js:2577 +#: templates/js/translated/build.js:2584 msgid "Edit Allocation" msgstr "" -#: templates/js/translated/build.js:2589 +#: templates/js/translated/build.js:2596 msgid "Remove Allocation" msgstr "" -#: templates/js/translated/build.js:2628 +#: templates/js/translated/build.js:2636 msgid "build line" msgstr "" -#: templates/js/translated/build.js:2629 +#: templates/js/translated/build.js:2637 msgid "build lines" msgstr "" -#: templates/js/translated/build.js:2647 +#: templates/js/translated/build.js:2656 msgid "No build lines found" msgstr "" -#: templates/js/translated/build.js:2677 templates/js/translated/part.js:793 +#: templates/js/translated/build.js:2686 templates/js/translated/part.js:793 #: templates/js/translated/part.js:1209 msgid "Trackable part" msgstr "" -#: templates/js/translated/build.js:2720 +#: templates/js/translated/build.js:2729 msgid "Gets Inherited" msgstr "" -#: templates/js/translated/build.js:2730 +#: templates/js/translated/build.js:2748 msgid "Unit Quantity" msgstr "" -#: templates/js/translated/build.js:2782 -#: templates/js/translated/sales_order.js:1951 +#: templates/js/translated/build.js:2800 +#: templates/js/translated/sales_order.js:1932 msgid "Sufficient stock available" msgstr "" -#: templates/js/translated/build.js:2837 +#: templates/js/translated/build.js:2855 msgid "Consumable Item" msgstr "" -#: templates/js/translated/build.js:2844 +#: templates/js/translated/build.js:2862 msgid "Tracked item" msgstr "" -#: templates/js/translated/build.js:2845 +#: templates/js/translated/build.js:2863 msgid "Allocate tracked items against individual build outputs" msgstr "" -#: templates/js/translated/build.js:2853 -#: templates/js/translated/sales_order.js:2052 +#: templates/js/translated/build.js:2871 +#: templates/js/translated/sales_order.js:2033 msgid "Build stock" msgstr "" -#: templates/js/translated/build.js:2858 templates/js/translated/stock.js:1953 +#: templates/js/translated/build.js:2876 templates/js/translated/stock.js:1954 msgid "Order stock" msgstr "" -#: templates/js/translated/build.js:2862 -#: templates/js/translated/sales_order.js:2046 +#: templates/js/translated/build.js:2880 +#: templates/js/translated/sales_order.js:2027 msgid "Allocate stock" msgstr "" -#: templates/js/translated/build.js:2866 +#: templates/js/translated/build.js:2884 msgid "Remove stock allocation" msgstr "" @@ -12641,7 +13006,7 @@ msgid "Add Manufacturer" msgstr "" #: templates/js/translated/company.js:111 -#: templates/js/translated/company.js:213 +#: templates/js/translated/company.js:214 msgid "Add Manufacturer Part" msgstr "" @@ -12649,231 +13014,231 @@ msgstr "" msgid "Edit Manufacturer Part" msgstr "" -#: templates/js/translated/company.js:201 +#: templates/js/translated/company.js:202 #: templates/js/translated/purchase_order.js:93 msgid "Add Supplier" msgstr "" -#: templates/js/translated/company.js:243 -#: templates/js/translated/purchase_order.js:318 +#: templates/js/translated/company.js:244 +#: templates/js/translated/purchase_order.js:301 msgid "Add Supplier Part" msgstr "" -#: templates/js/translated/company.js:344 +#: templates/js/translated/company.js:345 msgid "All selected supplier parts will be deleted" msgstr "" -#: templates/js/translated/company.js:360 +#: templates/js/translated/company.js:361 msgid "Delete Supplier Parts" msgstr "" -#: templates/js/translated/company.js:466 +#: templates/js/translated/company.js:467 msgid "Add new Company" msgstr "" -#: templates/js/translated/company.js:546 +#: templates/js/translated/company.js:547 msgid "Parts Supplied" msgstr "" -#: templates/js/translated/company.js:555 +#: templates/js/translated/company.js:556 msgid "Parts Manufactured" msgstr "" -#: templates/js/translated/company.js:570 +#: templates/js/translated/company.js:571 msgid "No company information found" msgstr "" -#: templates/js/translated/company.js:619 +#: templates/js/translated/company.js:620 msgid "Create New Contact" msgstr "" -#: templates/js/translated/company.js:635 -#: templates/js/translated/company.js:758 +#: templates/js/translated/company.js:636 +#: templates/js/translated/company.js:759 msgid "Edit Contact" msgstr "" -#: templates/js/translated/company.js:672 +#: templates/js/translated/company.js:673 msgid "All selected contacts will be deleted" msgstr "" -#: templates/js/translated/company.js:678 -#: templates/js/translated/company.js:742 +#: templates/js/translated/company.js:679 +#: templates/js/translated/company.js:743 msgid "Role" msgstr "" -#: templates/js/translated/company.js:686 +#: templates/js/translated/company.js:687 msgid "Delete Contacts" msgstr "" -#: templates/js/translated/company.js:717 +#: templates/js/translated/company.js:718 msgid "No contacts found" msgstr "" -#: templates/js/translated/company.js:730 +#: templates/js/translated/company.js:731 msgid "Phone Number" msgstr "" -#: templates/js/translated/company.js:736 +#: templates/js/translated/company.js:737 msgid "Email Address" msgstr "" -#: templates/js/translated/company.js:762 +#: templates/js/translated/company.js:763 msgid "Delete Contact" msgstr "" -#: templates/js/translated/company.js:859 +#: templates/js/translated/company.js:860 msgid "Create New Address" msgstr "" -#: templates/js/translated/company.js:874 -#: templates/js/translated/company.js:1035 +#: templates/js/translated/company.js:875 +#: templates/js/translated/company.js:1036 msgid "Edit Address" msgstr "" -#: templates/js/translated/company.js:909 +#: templates/js/translated/company.js:910 msgid "All selected addresses will be deleted" msgstr "" -#: templates/js/translated/company.js:923 +#: templates/js/translated/company.js:924 msgid "Delete Addresses" msgstr "" -#: templates/js/translated/company.js:950 +#: templates/js/translated/company.js:951 msgid "No addresses found" msgstr "" -#: templates/js/translated/company.js:989 +#: templates/js/translated/company.js:990 msgid "Postal city" msgstr "" -#: templates/js/translated/company.js:995 +#: templates/js/translated/company.js:996 msgid "State/province" msgstr "" -#: templates/js/translated/company.js:1007 +#: templates/js/translated/company.js:1008 msgid "Courier notes" msgstr "" -#: templates/js/translated/company.js:1013 +#: templates/js/translated/company.js:1014 msgid "Internal notes" msgstr "" -#: templates/js/translated/company.js:1039 +#: templates/js/translated/company.js:1040 msgid "Delete Address" msgstr "" -#: templates/js/translated/company.js:1112 +#: templates/js/translated/company.js:1113 msgid "All selected manufacturer parts will be deleted" msgstr "" -#: templates/js/translated/company.js:1127 +#: templates/js/translated/company.js:1128 msgid "Delete Manufacturer Parts" msgstr "" -#: templates/js/translated/company.js:1161 +#: templates/js/translated/company.js:1162 msgid "All selected parameters will be deleted" msgstr "" -#: templates/js/translated/company.js:1175 +#: templates/js/translated/company.js:1176 msgid "Delete Parameters" msgstr "" -#: templates/js/translated/company.js:1191 -#: templates/js/translated/company.js:1479 templates/js/translated/part.js:2250 +#: templates/js/translated/company.js:1192 +#: templates/js/translated/company.js:1480 templates/js/translated/part.js:2250 msgid "Order parts" msgstr "" -#: templates/js/translated/company.js:1208 +#: templates/js/translated/company.js:1209 msgid "Delete manufacturer parts" msgstr "" -#: templates/js/translated/company.js:1240 +#: templates/js/translated/company.js:1241 msgid "Manufacturer part actions" msgstr "" -#: templates/js/translated/company.js:1259 +#: templates/js/translated/company.js:1260 msgid "No manufacturer parts found" msgstr "" -#: templates/js/translated/company.js:1279 -#: templates/js/translated/company.js:1567 templates/js/translated/part.js:801 +#: templates/js/translated/company.js:1280 +#: templates/js/translated/company.js:1568 templates/js/translated/part.js:801 #: templates/js/translated/part.js:1217 msgid "Template part" msgstr "" -#: templates/js/translated/company.js:1283 -#: templates/js/translated/company.js:1571 templates/js/translated/part.js:805 +#: templates/js/translated/company.js:1284 +#: templates/js/translated/company.js:1572 templates/js/translated/part.js:805 #: templates/js/translated/part.js:1221 msgid "Assembled part" msgstr "" -#: templates/js/translated/company.js:1403 templates/js/translated/part.js:1471 +#: templates/js/translated/company.js:1404 templates/js/translated/part.js:1471 msgid "No parameters found" msgstr "" -#: templates/js/translated/company.js:1438 templates/js/translated/part.js:1534 +#: templates/js/translated/company.js:1439 templates/js/translated/part.js:1534 msgid "Edit parameter" msgstr "" -#: templates/js/translated/company.js:1439 templates/js/translated/part.js:1535 +#: templates/js/translated/company.js:1440 templates/js/translated/part.js:1535 msgid "Delete parameter" msgstr "" -#: templates/js/translated/company.js:1456 templates/js/translated/part.js:1440 +#: templates/js/translated/company.js:1457 templates/js/translated/part.js:1440 msgid "Edit Parameter" msgstr "" -#: templates/js/translated/company.js:1465 templates/js/translated/part.js:1556 +#: templates/js/translated/company.js:1466 templates/js/translated/part.js:1556 msgid "Delete Parameter" msgstr "" -#: templates/js/translated/company.js:1496 +#: templates/js/translated/company.js:1497 msgid "Delete supplier parts" msgstr "" -#: templates/js/translated/company.js:1546 +#: templates/js/translated/company.js:1547 msgid "No supplier parts found" msgstr "" -#: templates/js/translated/company.js:1664 +#: templates/js/translated/company.js:1665 msgid "Base Units" msgstr "" -#: templates/js/translated/company.js:1694 +#: templates/js/translated/company.js:1695 msgid "Availability" msgstr "" -#: templates/js/translated/company.js:1725 +#: templates/js/translated/company.js:1726 msgid "Edit supplier part" msgstr "" -#: templates/js/translated/company.js:1726 +#: templates/js/translated/company.js:1727 msgid "Delete supplier part" msgstr "" -#: templates/js/translated/company.js:1779 +#: templates/js/translated/company.js:1780 #: templates/js/translated/pricing.js:694 msgid "Delete Price Break" msgstr "" -#: templates/js/translated/company.js:1789 +#: templates/js/translated/company.js:1790 #: templates/js/translated/pricing.js:712 msgid "Edit Price Break" msgstr "" -#: templates/js/translated/company.js:1804 +#: templates/js/translated/company.js:1805 msgid "No price break information found" msgstr "" -#: templates/js/translated/company.js:1833 +#: templates/js/translated/company.js:1834 msgid "Last updated" msgstr "" -#: templates/js/translated/company.js:1840 +#: templates/js/translated/company.js:1841 msgid "Edit price break" msgstr "" -#: templates/js/translated/company.js:1841 +#: templates/js/translated/company.js:1842 msgid "Delete price break" msgstr "" @@ -12977,19 +13342,19 @@ msgstr "" msgid "Select Columns" msgstr "" -#: templates/js/translated/helpers.js:80 +#: templates/js/translated/helpers.js:81 msgid "YES" msgstr "" -#: templates/js/translated/helpers.js:83 +#: templates/js/translated/helpers.js:84 msgid "NO" msgstr "" -#: templates/js/translated/helpers.js:96 +#: templates/js/translated/helpers.js:97 msgid "True" msgstr "" -#: templates/js/translated/helpers.js:97 +#: templates/js/translated/helpers.js:98 msgid "False" msgstr "" @@ -13131,7 +13496,7 @@ msgid "Delete Line" msgstr "" #: templates/js/translated/order.js:306 -#: templates/js/translated/purchase_order.js:2060 +#: templates/js/translated/purchase_order.js:2044 msgid "No line items found" msgstr "" @@ -13366,19 +13731,19 @@ msgid "Delete Part Parameter Template" msgstr "" #: templates/js/translated/part.js:1723 -#: templates/js/translated/purchase_order.js:1724 +#: templates/js/translated/purchase_order.js:1708 msgid "No purchase orders found" msgstr "" #: templates/js/translated/part.js:1867 -#: templates/js/translated/purchase_order.js:2223 +#: templates/js/translated/purchase_order.js:2207 #: templates/js/translated/return_order.js:754 -#: templates/js/translated/sales_order.js:1911 +#: templates/js/translated/sales_order.js:1892 msgid "This line item is overdue" msgstr "" #: templates/js/translated/part.js:1913 -#: templates/js/translated/purchase_order.js:2290 +#: templates/js/translated/purchase_order.js:2274 msgid "Receive line item" msgstr "" @@ -13419,7 +13784,7 @@ msgid "No category" msgstr "" #: templates/js/translated/part.js:2550 templates/js/translated/part.js:2680 -#: templates/js/translated/stock.js:2754 +#: templates/js/translated/stock.js:2755 msgid "Display as list" msgstr "" @@ -13431,7 +13796,7 @@ msgstr "" msgid "No subcategories found" msgstr "" -#: templates/js/translated/part.js:2700 templates/js/translated/stock.js:2774 +#: templates/js/translated/part.js:2700 templates/js/translated/stock.js:2775 msgid "Display as tree" msgstr "" @@ -13483,23 +13848,23 @@ msgstr "" msgid "Speculative" msgstr "" -#: templates/js/translated/part.js:3128 +#: templates/js/translated/part.js:3144 msgid "No scheduling information available for this part" msgstr "" -#: templates/js/translated/part.js:3134 +#: templates/js/translated/part.js:3150 msgid "Error fetching scheduling information for this part" msgstr "" -#: templates/js/translated/part.js:3230 +#: templates/js/translated/part.js:3246 msgid "Scheduled Stock Quantities" msgstr "" -#: templates/js/translated/part.js:3246 +#: templates/js/translated/part.js:3262 msgid "Maximum Quantity" msgstr "" -#: templates/js/translated/part.js:3291 +#: templates/js/translated/part.js:3307 msgid "Minimum Stock Level" msgstr "" @@ -13575,267 +13940,243 @@ msgstr "" msgid "Purchase Price History" msgstr "" -#: templates/js/translated/pricing.js:894 +#: templates/js/translated/pricing.js:892 msgid "No sales history data available" msgstr "" -#: templates/js/translated/pricing.js:916 +#: templates/js/translated/pricing.js:914 msgid "Sale Price History" msgstr "" -#: templates/js/translated/pricing.js:1005 +#: templates/js/translated/pricing.js:1003 msgid "No variant data available" msgstr "" -#: templates/js/translated/pricing.js:1045 +#: templates/js/translated/pricing.js:1043 msgid "Variant Part" msgstr "" -#: templates/js/translated/purchase_order.js:169 -msgid "Select purchase order to duplicate" -msgstr "" - -#: templates/js/translated/purchase_order.js:176 -msgid "Duplicate Line Items" -msgstr "" - -#: templates/js/translated/purchase_order.js:177 -msgid "Duplicate all line items from the selected order" -msgstr "" - -#: templates/js/translated/purchase_order.js:184 -msgid "Duplicate Extra Lines" -msgstr "" - -#: templates/js/translated/purchase_order.js:185 -msgid "Duplicate extra line items from the selected order" -msgstr "" - -#: templates/js/translated/purchase_order.js:206 +#: templates/js/translated/purchase_order.js:188 msgid "Edit Purchase Order" msgstr "" -#: templates/js/translated/purchase_order.js:223 +#: templates/js/translated/purchase_order.js:205 msgid "Duplication Options" msgstr "" -#: templates/js/translated/purchase_order.js:431 +#: templates/js/translated/purchase_order.js:414 msgid "Complete Purchase Order" msgstr "" -#: templates/js/translated/purchase_order.js:448 +#: templates/js/translated/purchase_order.js:431 #: templates/js/translated/return_order.js:210 -#: templates/js/translated/sales_order.js:552 +#: templates/js/translated/sales_order.js:511 msgid "Mark this order as complete?" msgstr "" -#: templates/js/translated/purchase_order.js:454 +#: templates/js/translated/purchase_order.js:437 msgid "All line items have been received" msgstr "" -#: templates/js/translated/purchase_order.js:459 +#: templates/js/translated/purchase_order.js:442 msgid "This order has line items which have not been marked as received." msgstr "" -#: templates/js/translated/purchase_order.js:460 +#: templates/js/translated/purchase_order.js:443 msgid "Completing this order means that the order and line items will no longer be editable." msgstr "" -#: templates/js/translated/purchase_order.js:483 +#: templates/js/translated/purchase_order.js:466 msgid "Cancel Purchase Order" msgstr "" -#: templates/js/translated/purchase_order.js:488 +#: templates/js/translated/purchase_order.js:471 msgid "Are you sure you wish to cancel this purchase order?" msgstr "" -#: templates/js/translated/purchase_order.js:494 +#: templates/js/translated/purchase_order.js:477 msgid "This purchase order can not be cancelled" msgstr "" -#: templates/js/translated/purchase_order.js:515 +#: templates/js/translated/purchase_order.js:498 #: templates/js/translated/return_order.js:164 msgid "After placing this order, line items will no longer be editable." msgstr "" -#: templates/js/translated/purchase_order.js:520 +#: templates/js/translated/purchase_order.js:503 msgid "Issue Purchase Order" msgstr "" -#: templates/js/translated/purchase_order.js:612 +#: templates/js/translated/purchase_order.js:595 msgid "At least one purchaseable part must be selected" msgstr "" -#: templates/js/translated/purchase_order.js:637 +#: templates/js/translated/purchase_order.js:620 msgid "Quantity to order" msgstr "" -#: templates/js/translated/purchase_order.js:646 +#: templates/js/translated/purchase_order.js:629 msgid "New supplier part" msgstr "" -#: templates/js/translated/purchase_order.js:664 +#: templates/js/translated/purchase_order.js:647 msgid "New purchase order" msgstr "" -#: templates/js/translated/purchase_order.js:705 +#: templates/js/translated/purchase_order.js:688 msgid "Add to purchase order" msgstr "" -#: templates/js/translated/purchase_order.js:755 +#: templates/js/translated/purchase_order.js:738 msgid "Merge" msgstr "" -#: templates/js/translated/purchase_order.js:859 +#: templates/js/translated/purchase_order.js:842 msgid "No matching supplier parts" msgstr "" -#: templates/js/translated/purchase_order.js:878 +#: templates/js/translated/purchase_order.js:861 msgid "No matching purchase orders" msgstr "" -#: templates/js/translated/purchase_order.js:1073 +#: templates/js/translated/purchase_order.js:1056 #: templates/js/translated/return_order.js:490 msgid "Select Line Items" msgstr "" -#: templates/js/translated/purchase_order.js:1074 +#: templates/js/translated/purchase_order.js:1057 #: templates/js/translated/return_order.js:491 msgid "At least one line item must be selected" msgstr "" -#: templates/js/translated/purchase_order.js:1104 +#: templates/js/translated/purchase_order.js:1087 msgid "Received Quantity" msgstr "" -#: templates/js/translated/purchase_order.js:1115 +#: templates/js/translated/purchase_order.js:1098 msgid "Quantity to receive" msgstr "" -#: templates/js/translated/purchase_order.js:1170 +#: templates/js/translated/purchase_order.js:1153 #: templates/js/translated/stock.js:1215 msgid "Specify packaging for incoming stock items" msgstr "" -#: templates/js/translated/purchase_order.js:1223 +#: templates/js/translated/purchase_order.js:1206 msgid "Stock Status" msgstr "" -#: templates/js/translated/purchase_order.js:1237 +#: templates/js/translated/purchase_order.js:1220 msgid "Add barcode" msgstr "" -#: templates/js/translated/purchase_order.js:1238 +#: templates/js/translated/purchase_order.js:1221 msgid "Remove barcode" msgstr "" -#: templates/js/translated/purchase_order.js:1241 +#: templates/js/translated/purchase_order.js:1224 msgid "Specify location" msgstr "" -#: templates/js/translated/purchase_order.js:1249 +#: templates/js/translated/purchase_order.js:1232 msgid "Add batch code" msgstr "" -#: templates/js/translated/purchase_order.js:1259 +#: templates/js/translated/purchase_order.js:1242 msgid "Specify packaging" msgstr "" -#: templates/js/translated/purchase_order.js:1270 +#: templates/js/translated/purchase_order.js:1253 msgid "Add serial numbers" msgstr "" -#: templates/js/translated/purchase_order.js:1281 +#: templates/js/translated/purchase_order.js:1264 msgid "Add note" msgstr "" -#: templates/js/translated/purchase_order.js:1338 +#: templates/js/translated/purchase_order.js:1321 msgid "Serials" msgstr "" -#: templates/js/translated/purchase_order.js:1368 +#: templates/js/translated/purchase_order.js:1351 msgid "Order Code" msgstr "" -#: templates/js/translated/purchase_order.js:1370 +#: templates/js/translated/purchase_order.js:1353 msgid "Quantity to Receive" msgstr "" -#: templates/js/translated/purchase_order.js:1395 +#: templates/js/translated/purchase_order.js:1379 #: templates/js/translated/return_order.js:559 msgid "Confirm receipt of items" msgstr "" -#: templates/js/translated/purchase_order.js:1396 +#: templates/js/translated/purchase_order.js:1380 msgid "Receive Purchase Order Items" msgstr "" -#: templates/js/translated/purchase_order.js:1464 +#: templates/js/translated/purchase_order.js:1448 msgid "Scan Item Barcode" msgstr "" -#: templates/js/translated/purchase_order.js:1465 +#: templates/js/translated/purchase_order.js:1449 msgid "Scan barcode on incoming item (must not match any existing stock items)" msgstr "" -#: templates/js/translated/purchase_order.js:1479 +#: templates/js/translated/purchase_order.js:1463 msgid "Invalid barcode data" msgstr "" -#: templates/js/translated/purchase_order.js:1751 +#: templates/js/translated/purchase_order.js:1735 #: templates/js/translated/return_order.js:285 -#: templates/js/translated/sales_order.js:810 -#: templates/js/translated/sales_order.js:1034 +#: templates/js/translated/sales_order.js:769 +#: templates/js/translated/sales_order.js:1007 msgid "Order is overdue" msgstr "" -#: templates/js/translated/purchase_order.js:1913 +#: templates/js/translated/purchase_order.js:1897 msgid "All selected Line items will be deleted" msgstr "" -#: templates/js/translated/purchase_order.js:1931 +#: templates/js/translated/purchase_order.js:1915 msgid "Delete selected Line items?" msgstr "" -#: templates/js/translated/purchase_order.js:1986 -#: templates/js/translated/sales_order.js:2106 +#: templates/js/translated/purchase_order.js:1970 +#: templates/js/translated/sales_order.js:2087 msgid "Duplicate Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2001 +#: templates/js/translated/purchase_order.js:1985 #: templates/js/translated/return_order.js:475 #: templates/js/translated/return_order.js:667 -#: templates/js/translated/sales_order.js:2119 +#: templates/js/translated/sales_order.js:2100 msgid "Edit Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2012 +#: templates/js/translated/purchase_order.js:1996 #: templates/js/translated/return_order.js:680 -#: templates/js/translated/sales_order.js:2130 +#: templates/js/translated/sales_order.js:2111 msgid "Delete Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2294 -#: templates/js/translated/sales_order.js:2060 +#: templates/js/translated/purchase_order.js:2278 +#: templates/js/translated/sales_order.js:2041 msgid "Duplicate line item" msgstr "" -#: templates/js/translated/purchase_order.js:2295 +#: templates/js/translated/purchase_order.js:2279 #: templates/js/translated/return_order.js:799 -#: templates/js/translated/sales_order.js:2061 +#: templates/js/translated/sales_order.js:2042 msgid "Edit line item" msgstr "" -#: templates/js/translated/purchase_order.js:2296 +#: templates/js/translated/purchase_order.js:2280 #: templates/js/translated/return_order.js:803 -#: templates/js/translated/sales_order.js:2067 +#: templates/js/translated/sales_order.js:2048 msgid "Delete line item" msgstr "" -#: templates/js/translated/report.js:49 -msgid "Print Report" -msgstr "" - #: templates/js/translated/report.js:68 msgid "Report print successful" msgstr "" @@ -13878,7 +14219,7 @@ msgid "No return orders found" msgstr "" #: templates/js/translated/return_order.js:299 -#: templates/js/translated/sales_order.js:824 +#: templates/js/translated/sales_order.js:783 msgid "Invalid Customer" msgstr "" @@ -13887,7 +14228,7 @@ msgid "Receive Return Order Items" msgstr "" #: templates/js/translated/return_order.js:691 -#: templates/js/translated/sales_order.js:2267 +#: templates/js/translated/sales_order.js:2248 msgid "No matching line items" msgstr "" @@ -13903,188 +14244,181 @@ msgstr "" msgid "Edit Sales Order" msgstr "" -#: templates/js/translated/sales_order.js:291 +#: templates/js/translated/sales_order.js:288 msgid "No stock items have been allocated to this shipment" msgstr "" -#: templates/js/translated/sales_order.js:296 -msgid "The following stock items will be shipped" -msgstr "" - -#: templates/js/translated/sales_order.js:336 +#: templates/js/translated/sales_order.js:294 msgid "Complete Shipment" msgstr "" -#: templates/js/translated/sales_order.js:360 +#: templates/js/translated/sales_order.js:318 msgid "Confirm Shipment" msgstr "" -#: templates/js/translated/sales_order.js:416 +#: templates/js/translated/sales_order.js:375 msgid "No pending shipments found" msgstr "" -#: templates/js/translated/sales_order.js:420 +#: templates/js/translated/sales_order.js:379 msgid "No stock items have been allocated to pending shipments" msgstr "" -#: templates/js/translated/sales_order.js:430 +#: templates/js/translated/sales_order.js:389 msgid "Complete Shipments" msgstr "" -#: templates/js/translated/sales_order.js:452 +#: templates/js/translated/sales_order.js:411 msgid "Skip" msgstr "" -#: templates/js/translated/sales_order.js:484 +#: templates/js/translated/sales_order.js:443 msgid "Ship Sales Order" msgstr "" -#: templates/js/translated/sales_order.js:500 +#: templates/js/translated/sales_order.js:459 msgid "Ship this order?" msgstr "" -#: templates/js/translated/sales_order.js:506 +#: templates/js/translated/sales_order.js:465 msgid "Order cannot be shipped as there are incomplete shipments" msgstr "" -#: templates/js/translated/sales_order.js:513 +#: templates/js/translated/sales_order.js:472 msgid "This order has line items which have not been completed." msgstr "" -#: templates/js/translated/sales_order.js:514 +#: templates/js/translated/sales_order.js:473 msgid "Shipping this order means that the order and line items will no longer be editable." msgstr "" -#: templates/js/translated/sales_order.js:572 +#: templates/js/translated/sales_order.js:531 msgid "Issue this Sales Order?" msgstr "" -#: templates/js/translated/sales_order.js:577 +#: templates/js/translated/sales_order.js:536 msgid "Issue Sales Order" msgstr "" -#: templates/js/translated/sales_order.js:596 +#: templates/js/translated/sales_order.js:555 msgid "Cancel Sales Order" msgstr "" -#: templates/js/translated/sales_order.js:601 +#: templates/js/translated/sales_order.js:560 msgid "Cancelling this order means that the order will no longer be editable." msgstr "" -#: templates/js/translated/sales_order.js:655 +#: templates/js/translated/sales_order.js:614 msgid "Create New Shipment" msgstr "" -#: templates/js/translated/sales_order.js:764 +#: templates/js/translated/sales_order.js:723 msgid "No sales orders found" msgstr "" -#: templates/js/translated/sales_order.js:944 +#: templates/js/translated/sales_order.js:907 msgid "Edit shipment" msgstr "" -#: templates/js/translated/sales_order.js:947 +#: templates/js/translated/sales_order.js:910 msgid "Complete shipment" msgstr "" -#: templates/js/translated/sales_order.js:952 +#: templates/js/translated/sales_order.js:915 msgid "Delete shipment" msgstr "" -#: templates/js/translated/sales_order.js:969 +#: templates/js/translated/sales_order.js:932 msgid "Edit Shipment" msgstr "" -#: templates/js/translated/sales_order.js:984 +#: templates/js/translated/sales_order.js:947 msgid "Delete Shipment" msgstr "" -#: templates/js/translated/sales_order.js:1017 +#: templates/js/translated/sales_order.js:989 msgid "No matching shipments found" msgstr "" -#: templates/js/translated/sales_order.js:1042 +#: templates/js/translated/sales_order.js:1015 msgid "Shipment Reference" msgstr "" -#: templates/js/translated/sales_order.js:1066 -#: templates/js/translated/sales_order.js:1565 +#: templates/js/translated/sales_order.js:1032 +#: templates/js/translated/sales_order.js:1531 msgid "Not shipped" msgstr "" -#: templates/js/translated/sales_order.js:1084 +#: templates/js/translated/sales_order.js:1050 msgid "Tracking" msgstr "" -#: templates/js/translated/sales_order.js:1088 +#: templates/js/translated/sales_order.js:1054 msgid "Invoice" msgstr "" -#: templates/js/translated/sales_order.js:1255 +#: templates/js/translated/sales_order.js:1221 msgid "Add Shipment" msgstr "" -#: templates/js/translated/sales_order.js:1306 +#: templates/js/translated/sales_order.js:1272 msgid "Confirm stock allocation" msgstr "" -#: templates/js/translated/sales_order.js:1307 +#: templates/js/translated/sales_order.js:1273 msgid "Allocate Stock Items to Sales Order" msgstr "" -#: templates/js/translated/sales_order.js:1513 +#: templates/js/translated/sales_order.js:1479 msgid "No sales order allocations found" msgstr "" -#: templates/js/translated/sales_order.js:1605 +#: templates/js/translated/sales_order.js:1571 msgid "Edit Stock Allocation" msgstr "" -#: templates/js/translated/sales_order.js:1619 +#: templates/js/translated/sales_order.js:1585 msgid "Confirm Delete Operation" msgstr "" -#: templates/js/translated/sales_order.js:1620 +#: templates/js/translated/sales_order.js:1586 msgid "Delete Stock Allocation" msgstr "" -#: templates/js/translated/sales_order.js:1659 -#: templates/js/translated/sales_order.js:1746 +#: templates/js/translated/sales_order.js:1640 +#: templates/js/translated/sales_order.js:1727 #: templates/js/translated/stock.js:1861 msgid "Shipped to customer" msgstr "" -#: templates/js/translated/sales_order.js:1667 -#: templates/js/translated/sales_order.js:1755 +#: templates/js/translated/sales_order.js:1648 +#: templates/js/translated/sales_order.js:1736 msgid "Stock location not specified" msgstr "" -#: templates/js/translated/sales_order.js:2044 -msgid "Allocate serial numbers" -msgstr "" - -#: templates/js/translated/sales_order.js:2048 -msgid "Purchase stock" -msgstr "" - -#: templates/js/translated/sales_order.js:2057 -#: templates/js/translated/sales_order.js:2245 -msgid "Calculate price" -msgstr "" - -#: templates/js/translated/sales_order.js:2071 -msgid "Cannot be deleted as items have been shipped" -msgstr "" - -#: templates/js/translated/sales_order.js:2074 -msgid "Cannot be deleted as items have been allocated" -msgstr "" - -#: templates/js/translated/sales_order.js:2145 +#: templates/js/translated/sales_order.js:2025 +#: templates/js/translated/sales_order.js:2126 msgid "Allocate Serial Numbers" msgstr "" -#: templates/js/translated/sales_order.js:2253 +#: templates/js/translated/sales_order.js:2029 +msgid "Purchase stock" +msgstr "" + +#: templates/js/translated/sales_order.js:2038 +#: templates/js/translated/sales_order.js:2226 +msgid "Calculate price" +msgstr "" + +#: templates/js/translated/sales_order.js:2052 +msgid "Cannot be deleted as items have been shipped" +msgstr "" + +#: templates/js/translated/sales_order.js:2055 +msgid "Cannot be deleted as items have been allocated" +msgstr "" + +#: templates/js/translated/sales_order.js:2234 msgid "Update Unit Price" msgstr "" @@ -14209,11 +14543,8 @@ msgid "Find Serial Number" msgstr "" #: templates/js/translated/stock.js:603 templates/js/translated/stock.js:604 -msgid "Enter serial number" -msgstr "" - #: templates/js/translated/stock.js:620 -msgid "Enter a serial number" +msgid "Enter serial number" msgstr "" #: templates/js/translated/stock.js:640 @@ -14284,7 +14615,7 @@ msgstr "" msgid "Add Stock" msgstr "" -#: templates/js/translated/stock.js:1049 users/models.py:396 +#: templates/js/translated/stock.js:1049 users/models.py:398 msgid "Add" msgstr "" @@ -14308,7 +14639,7 @@ msgstr "" msgid "Adjust packaging" msgstr "" -#: templates/js/translated/stock.js:1256 templates/js/translated/stock.js:3382 +#: templates/js/translated/stock.js:1256 templates/js/translated/stock.js:3383 msgid "Select Stock Items" msgstr "" @@ -14320,18 +14651,6 @@ msgstr "" msgid "Confirm stock adjustment" msgstr "" -#: templates/js/translated/stock.js:1448 -msgid "PASS" -msgstr "" - -#: templates/js/translated/stock.js:1450 -msgid "FAIL" -msgstr "" - -#: templates/js/translated/stock.js:1455 -msgid "NO RESULT" -msgstr "" - #: templates/js/translated/stock.js:1535 msgid "Pass test" msgstr "" @@ -14388,216 +14707,216 @@ msgstr "" msgid "No stock location set" msgstr "" -#: templates/js/translated/stock.js:1927 +#: templates/js/translated/stock.js:1928 msgid "Change stock status" msgstr "" -#: templates/js/translated/stock.js:1936 +#: templates/js/translated/stock.js:1937 msgid "Merge stock" msgstr "" -#: templates/js/translated/stock.js:1985 +#: templates/js/translated/stock.js:1986 msgid "Delete stock" msgstr "" -#: templates/js/translated/stock.js:2038 +#: templates/js/translated/stock.js:2039 msgid "stock items" msgstr "" -#: templates/js/translated/stock.js:2043 +#: templates/js/translated/stock.js:2044 msgid "Scan to location" msgstr "" -#: templates/js/translated/stock.js:2054 +#: templates/js/translated/stock.js:2055 msgid "Stock Actions" msgstr "" -#: templates/js/translated/stock.js:2098 +#: templates/js/translated/stock.js:2099 msgid "Load installed items" msgstr "" -#: templates/js/translated/stock.js:2176 +#: templates/js/translated/stock.js:2177 msgid "Stock item is in production" msgstr "" -#: templates/js/translated/stock.js:2181 +#: templates/js/translated/stock.js:2182 msgid "Stock item assigned to sales order" msgstr "" -#: templates/js/translated/stock.js:2184 +#: templates/js/translated/stock.js:2185 msgid "Stock item assigned to customer" msgstr "" -#: templates/js/translated/stock.js:2187 +#: templates/js/translated/stock.js:2188 msgid "Serialized stock item has been allocated" msgstr "" -#: templates/js/translated/stock.js:2189 +#: templates/js/translated/stock.js:2190 msgid "Stock item has been fully allocated" msgstr "" -#: templates/js/translated/stock.js:2191 +#: templates/js/translated/stock.js:2192 msgid "Stock item has been partially allocated" msgstr "" -#: templates/js/translated/stock.js:2194 +#: templates/js/translated/stock.js:2195 msgid "Stock item has been installed in another item" msgstr "" -#: templates/js/translated/stock.js:2196 +#: templates/js/translated/stock.js:2197 msgid "Stock item has been consumed by a build order" msgstr "" -#: templates/js/translated/stock.js:2200 +#: templates/js/translated/stock.js:2201 msgid "Stock item has expired" msgstr "" -#: templates/js/translated/stock.js:2202 +#: templates/js/translated/stock.js:2203 msgid "Stock item will expire soon" msgstr "" -#: templates/js/translated/stock.js:2207 +#: templates/js/translated/stock.js:2208 msgid "Stock item has been rejected" msgstr "" -#: templates/js/translated/stock.js:2209 +#: templates/js/translated/stock.js:2210 msgid "Stock item is lost" msgstr "" -#: templates/js/translated/stock.js:2211 +#: templates/js/translated/stock.js:2212 msgid "Stock item is destroyed" msgstr "" -#: templates/js/translated/stock.js:2215 +#: templates/js/translated/stock.js:2216 #: templates/js/translated/table_filters.js:357 msgid "Depleted" msgstr "" -#: templates/js/translated/stock.js:2380 +#: templates/js/translated/stock.js:2381 msgid "Supplier part not specified" msgstr "" -#: templates/js/translated/stock.js:2427 +#: templates/js/translated/stock.js:2428 msgid "Stock Value" msgstr "" -#: templates/js/translated/stock.js:2555 +#: templates/js/translated/stock.js:2556 msgid "No stock items matching query" msgstr "" -#: templates/js/translated/stock.js:2658 +#: templates/js/translated/stock.js:2659 msgid "stock locations" msgstr "" -#: templates/js/translated/stock.js:2813 +#: templates/js/translated/stock.js:2814 msgid "Load Sublocations" msgstr "" -#: templates/js/translated/stock.js:2930 +#: templates/js/translated/stock.js:2931 msgid "Details" msgstr "" -#: templates/js/translated/stock.js:2934 +#: templates/js/translated/stock.js:2935 msgid "No changes" msgstr "" -#: templates/js/translated/stock.js:2946 +#: templates/js/translated/stock.js:2947 msgid "Part information unavailable" msgstr "" -#: templates/js/translated/stock.js:2968 +#: templates/js/translated/stock.js:2969 msgid "Location no longer exists" msgstr "" -#: templates/js/translated/stock.js:2985 +#: templates/js/translated/stock.js:2986 msgid "Build order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3000 +#: templates/js/translated/stock.js:3001 msgid "Purchase order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3017 +#: templates/js/translated/stock.js:3018 msgid "Sales Order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3034 +#: templates/js/translated/stock.js:3035 msgid "Return Order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3053 +#: templates/js/translated/stock.js:3054 msgid "Customer no longer exists" msgstr "" -#: templates/js/translated/stock.js:3071 +#: templates/js/translated/stock.js:3072 msgid "Stock item no longer exists" msgstr "" -#: templates/js/translated/stock.js:3089 +#: templates/js/translated/stock.js:3090 msgid "Added" msgstr "" -#: templates/js/translated/stock.js:3097 +#: templates/js/translated/stock.js:3098 msgid "Removed" msgstr "" -#: templates/js/translated/stock.js:3169 +#: templates/js/translated/stock.js:3170 msgid "No installed items" msgstr "" -#: templates/js/translated/stock.js:3223 templates/js/translated/stock.js:3259 +#: templates/js/translated/stock.js:3224 templates/js/translated/stock.js:3260 msgid "Uninstall Stock Item" msgstr "" -#: templates/js/translated/stock.js:3280 +#: templates/js/translated/stock.js:3281 msgid "Select stock item to uninstall" msgstr "" -#: templates/js/translated/stock.js:3301 +#: templates/js/translated/stock.js:3302 msgid "Install another stock item into this item" msgstr "" -#: templates/js/translated/stock.js:3302 +#: templates/js/translated/stock.js:3303 msgid "Stock items can only be installed if they meet the following criteria" msgstr "" -#: templates/js/translated/stock.js:3304 +#: templates/js/translated/stock.js:3305 msgid "The Stock Item links to a Part which is the BOM for this Stock Item" msgstr "" -#: templates/js/translated/stock.js:3305 +#: templates/js/translated/stock.js:3306 msgid "The Stock Item is currently available in stock" msgstr "" -#: templates/js/translated/stock.js:3306 +#: templates/js/translated/stock.js:3307 msgid "The Stock Item is not already installed in another item" msgstr "" -#: templates/js/translated/stock.js:3307 +#: templates/js/translated/stock.js:3308 msgid "The Stock Item is tracked by either a batch code or serial number" msgstr "" -#: templates/js/translated/stock.js:3320 +#: templates/js/translated/stock.js:3321 msgid "Select part to install" msgstr "" -#: templates/js/translated/stock.js:3383 +#: templates/js/translated/stock.js:3384 msgid "Select one or more stock items" msgstr "" -#: templates/js/translated/stock.js:3396 +#: templates/js/translated/stock.js:3397 msgid "Selected stock items" msgstr "" -#: templates/js/translated/stock.js:3400 +#: templates/js/translated/stock.js:3401 msgid "Change Stock Status" msgstr "" -#: templates/js/translated/stock.js:3477 +#: templates/js/translated/stock.js:3478 msgid "This week" msgstr "" -#: templates/js/translated/stock.js:3485 +#: templates/js/translated/stock.js:3486 msgid "This month" msgstr "" @@ -14734,10 +15053,6 @@ msgstr "" msgid "Show items which are in production" msgstr "" -#: templates/js/translated/table_filters.js:372 -msgid "Include Variants" -msgstr "" - #: templates/js/translated/table_filters.js:373 msgid "Include stock items for variant parts" msgstr "" @@ -15012,10 +15327,6 @@ msgstr "" msgid "An error occurred while attempting to login via your social network account." msgstr "" -#: templates/socialaccount/authentication_error.html:13 -msgid "Contact your system administrator for further information." -msgstr "" - #: templates/socialaccount/login.html:13 #, python-format msgid "Connect %(provider)s" @@ -15141,27 +15452,27 @@ msgstr "" msgid "No" msgstr "" -#: users/admin.py:104 +#: users/admin.py:101 msgid "Users" msgstr "" -#: users/admin.py:105 +#: users/admin.py:102 msgid "Select which users are assigned to this group" msgstr "" -#: users/admin.py:249 +#: users/admin.py:246 msgid "The following users are members of multiple groups" msgstr "" -#: users/admin.py:283 +#: users/admin.py:280 msgid "Personal info" msgstr "個人情報" -#: users/admin.py:285 +#: users/admin.py:282 msgid "Permissions" msgstr "許可" -#: users/admin.py:288 +#: users/admin.py:285 msgid "Important dates" msgstr "重要な日付" @@ -15205,35 +15516,35 @@ msgstr "" msgid "Revoked" msgstr "" -#: users/models.py:379 +#: users/models.py:381 msgid "Permission set" msgstr "パーミッション設定" -#: users/models.py:388 +#: users/models.py:390 msgid "Group" msgstr "グループ" -#: users/models.py:392 +#: users/models.py:394 msgid "View" msgstr "表示" -#: users/models.py:392 +#: users/models.py:394 msgid "Permission to view items" msgstr "項目を表示する権限" -#: users/models.py:396 +#: users/models.py:398 msgid "Permission to add items" msgstr "項目を追加する権限" -#: users/models.py:400 +#: users/models.py:402 msgid "Change" msgstr "変更" -#: users/models.py:402 +#: users/models.py:404 msgid "Permissions to edit items" msgstr "項目を編集する権限" -#: users/models.py:408 +#: users/models.py:410 msgid "Permission to delete items" msgstr "項目を削除する権限" diff --git a/src/backend/InvenTree/locale/ko/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/ko/LC_MESSAGES/django.po index 5a9af447b3..7ba98025a0 100644 --- a/src/backend/InvenTree/locale/ko/LC_MESSAGES/django.po +++ b/src/backend/InvenTree/locale/ko/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-08-20 01:22+0000\n" -"PO-Revision-Date: 2024-08-20 19:51\n" +"POT-Creation-Date: 2024-11-04 03:11+0000\n" +"PO-Revision-Date: 2024-11-04 03:14\n" "Last-Translator: \n" "Language-Team: Korean\n" "Language: ko_KR\n" @@ -14,81 +14,89 @@ msgstr "" "X-Crowdin-Project: inventree\n" "X-Crowdin-Project-ID: 452300\n" "X-Crowdin-Language: ko\n" -"X-Crowdin-File: /[inventree.InvenTree] l10/src/backend/InvenTree/locale/en/LC_MESSAGES/django.po\n" -"X-Crowdin-File-ID: 216\n" +"X-Crowdin-File: /src/backend/InvenTree/locale/en/LC_MESSAGES/django.po\n" +"X-Crowdin-File-ID: 250\n" -#: InvenTree/api.py:269 +#: InvenTree/api.py:270 msgid "API endpoint not found" msgstr "" -#: InvenTree/api.py:502 +#: InvenTree/api.py:387 +msgid "Invalid items list provided" +msgstr "" + +#: InvenTree/api.py:396 +msgid "Invalid filters provided" +msgstr "" + +#: InvenTree/api.py:401 +msgid "No items found to delete" +msgstr "" + +#: InvenTree/api.py:515 msgid "User does not have permission to view this model" msgstr "" -#: InvenTree/conversion.py:160 +#: InvenTree/conversion.py:161 #, python-brace-format msgid "Invalid unit provided ({unit})" msgstr "" -#: InvenTree/conversion.py:177 +#: InvenTree/conversion.py:178 msgid "No value provided" msgstr "" -#: InvenTree/conversion.py:204 +#: InvenTree/conversion.py:205 #, python-brace-format msgid "Could not convert {original} to {unit}" msgstr "" -#: InvenTree/conversion.py:206 -msgid "Invalid quantity supplied" +#: InvenTree/conversion.py:207 InvenTree/conversion.py:221 +#: InvenTree/helpers.py:505 order/models.py:589 order/models.py:832 +msgid "Invalid quantity provided" msgstr "" -#: InvenTree/conversion.py:220 -#, python-brace-format -msgid "Invalid quantity supplied ({exc})" -msgstr "" - -#: InvenTree/exceptions.py:108 +#: InvenTree/exceptions.py:104 msgid "Error details can be found in the admin panel" msgstr "" -#: InvenTree/fields.py:136 +#: InvenTree/fields.py:135 msgid "Enter date" msgstr "" -#: InvenTree/fields.py:205 InvenTree/models.py:929 build/serializers.py:468 -#: build/serializers.py:546 build/templates/build/sidebar.html:29 -#: company/models.py:836 +#: InvenTree/fields.py:204 InvenTree/models.py:928 build/serializers.py:512 +#: build/serializers.py:590 build/templates/build/sidebar.html:29 +#: company/models.py:833 #: company/templates/company/manufacturer_part_sidebar.html:11 #: company/templates/company/sidebar.html:37 -#: company/templates/company/supplier_part_sidebar.html:11 order/models.py:1380 +#: company/templates/company/supplier_part_sidebar.html:11 order/models.py:1397 #: order/templates/order/po_sidebar.html:11 #: order/templates/order/return_order_sidebar.html:9 #: order/templates/order/so_sidebar.html:17 part/admin.py:59 -#: part/models.py:3297 part/templates/part/part_sidebar.html:65 +#: part/models.py:3348 part/templates/part/part_sidebar.html:65 #: report/templates/report/inventree_build_order_report.html:172 -#: stock/admin.py:230 stock/models.py:2375 stock/models.py:2563 -#: stock/serializers.py:698 stock/serializers.py:856 stock/serializers.py:982 -#: stock/serializers.py:1032 stock/serializers.py:1343 -#: stock/serializers.py:1432 stock/serializers.py:1597 +#: stock/admin.py:231 stock/models.py:2494 stock/models.py:2679 +#: stock/serializers.py:725 stock/serializers.py:887 stock/serializers.py:1013 +#: stock/serializers.py:1063 stock/serializers.py:1374 +#: stock/serializers.py:1463 stock/serializers.py:1628 #: stock/templates/stock/stock_sidebar.html:25 #: templates/js/translated/barcode.js:143 templates/js/translated/bom.js:1265 -#: templates/js/translated/company.js:1684 templates/js/translated/order.js:372 +#: templates/js/translated/company.js:1685 templates/js/translated/order.js:372 #: templates/js/translated/part.js:1087 -#: templates/js/translated/purchase_order.js:2270 +#: templates/js/translated/purchase_order.js:2254 #: templates/js/translated/return_order.js:774 -#: templates/js/translated/sales_order.js:1103 -#: templates/js/translated/sales_order.js:2018 -#: templates/js/translated/stock.js:1621 templates/js/translated/stock.js:2513 +#: templates/js/translated/sales_order.js:1069 +#: templates/js/translated/sales_order.js:1999 +#: templates/js/translated/stock.js:1621 templates/js/translated/stock.js:2514 msgid "Notes" msgstr "" -#: InvenTree/format.py:164 +#: InvenTree/format.py:162 #, python-brace-format msgid "Value '{name}' does not appear in pattern format" msgstr "" -#: InvenTree/format.py:175 +#: InvenTree/format.py:173 msgid "Provided value does not match required pattern: " msgstr "" @@ -132,397 +140,409 @@ msgstr "" msgid "The provided primary email address is not valid." msgstr "" -#: InvenTree/forms.py:274 +#: InvenTree/forms.py:273 msgid "The provided email domain is not approved." msgstr "" -#: InvenTree/forms.py:403 +#: InvenTree/forms.py:402 msgid "Registration is disabled." msgstr "" -#: InvenTree/helpers.py:491 order/models.py:567 order/models.py:810 -msgid "Invalid quantity provided" +#: InvenTree/helpers.py:509 +msgid "Cannot serialize more than 1000 items at once" msgstr "" -#: InvenTree/helpers.py:499 +#: InvenTree/helpers.py:515 msgid "Empty serial number string" msgstr "" -#: InvenTree/helpers.py:528 +#: InvenTree/helpers.py:544 msgid "Duplicate serial" msgstr "" -#: InvenTree/helpers.py:560 InvenTree/helpers.py:603 +#: InvenTree/helpers.py:576 InvenTree/helpers.py:619 InvenTree/helpers.py:637 +#: InvenTree/helpers.py:644 InvenTree/helpers.py:663 #, python-brace-format -msgid "Invalid group range: {group}" +msgid "Invalid group: {group}" msgstr "" -#: InvenTree/helpers.py:591 +#: InvenTree/helpers.py:607 #, python-brace-format msgid "Group range {group} exceeds allowed quantity ({expected_quantity})" msgstr "" -#: InvenTree/helpers.py:621 InvenTree/helpers.py:628 InvenTree/helpers.py:647 -#, python-brace-format -msgid "Invalid group sequence: {group}" -msgstr "" - -#: InvenTree/helpers.py:657 +#: InvenTree/helpers.py:673 msgid "No serial numbers found" msgstr "" -#: InvenTree/helpers.py:662 +#: InvenTree/helpers.py:678 msgid "Number of unique serial numbers ({len(serials)}) must match quantity ({expected_quantity})" msgstr "" -#: InvenTree/helpers.py:780 +#: InvenTree/helpers.py:796 msgid "Remove HTML tags from this value" msgstr "" -#: InvenTree/helpers_model.py:133 +#: InvenTree/helpers.py:881 +msgid "Data contains prohibited markdown content" +msgstr "" + +#: InvenTree/helpers_model.py:130 msgid "Connection error" msgstr "" -#: InvenTree/helpers_model.py:138 InvenTree/helpers_model.py:145 +#: InvenTree/helpers_model.py:135 InvenTree/helpers_model.py:142 msgid "Server responded with invalid status code" msgstr "" -#: InvenTree/helpers_model.py:141 +#: InvenTree/helpers_model.py:138 msgid "Exception occurred" msgstr "" -#: InvenTree/helpers_model.py:151 +#: InvenTree/helpers_model.py:148 msgid "Server responded with invalid Content-Length value" msgstr "" -#: InvenTree/helpers_model.py:154 +#: InvenTree/helpers_model.py:151 msgid "Image size is too large" msgstr "" -#: InvenTree/helpers_model.py:166 +#: InvenTree/helpers_model.py:163 msgid "Image download exceeded maximum size" msgstr "" -#: InvenTree/helpers_model.py:171 +#: InvenTree/helpers_model.py:168 msgid "Remote server returned empty response" msgstr "" -#: InvenTree/helpers_model.py:179 +#: InvenTree/helpers_model.py:176 msgid "Supplied URL is not a valid image file" msgstr "" -#: InvenTree/locales.py:18 +#: InvenTree/locales.py:20 msgid "Arabic" msgstr "" -#: InvenTree/locales.py:19 +#: InvenTree/locales.py:21 msgid "Bulgarian" msgstr "" -#: InvenTree/locales.py:20 +#: InvenTree/locales.py:22 msgid "Czech" msgstr "" -#: InvenTree/locales.py:21 +#: InvenTree/locales.py:23 msgid "Danish" msgstr "" -#: InvenTree/locales.py:22 +#: InvenTree/locales.py:24 msgid "German" msgstr "" -#: InvenTree/locales.py:23 +#: InvenTree/locales.py:25 msgid "Greek" msgstr "" -#: InvenTree/locales.py:24 +#: InvenTree/locales.py:26 msgid "English" msgstr "" -#: InvenTree/locales.py:25 +#: InvenTree/locales.py:27 msgid "Spanish" msgstr "" -#: InvenTree/locales.py:26 +#: InvenTree/locales.py:28 msgid "Spanish (Mexican)" msgstr "" -#: InvenTree/locales.py:27 +#: InvenTree/locales.py:29 msgid "Estonian" msgstr "" -#: InvenTree/locales.py:28 +#: InvenTree/locales.py:30 msgid "Farsi / Persian" msgstr "" -#: InvenTree/locales.py:29 +#: InvenTree/locales.py:31 msgid "Finnish" msgstr "" -#: InvenTree/locales.py:30 +#: InvenTree/locales.py:32 msgid "French" msgstr "" -#: InvenTree/locales.py:31 +#: InvenTree/locales.py:33 msgid "Hebrew" msgstr "" -#: InvenTree/locales.py:32 +#: InvenTree/locales.py:34 msgid "Hindi" msgstr "" -#: InvenTree/locales.py:33 +#: InvenTree/locales.py:35 msgid "Hungarian" msgstr "" -#: InvenTree/locales.py:34 +#: InvenTree/locales.py:36 msgid "Italian" msgstr "" -#: InvenTree/locales.py:35 +#: InvenTree/locales.py:37 msgid "Japanese" msgstr "" -#: InvenTree/locales.py:36 +#: InvenTree/locales.py:38 msgid "Korean" msgstr "" -#: InvenTree/locales.py:37 -msgid "Latvian" -msgstr "" - -#: InvenTree/locales.py:38 -msgid "Dutch" -msgstr "" - #: InvenTree/locales.py:39 -msgid "Norwegian" +msgid "Lithuanian" msgstr "" #: InvenTree/locales.py:40 -msgid "Polish" +msgid "Latvian" msgstr "" #: InvenTree/locales.py:41 -msgid "Portuguese" +msgid "Dutch" msgstr "" #: InvenTree/locales.py:42 -msgid "Portuguese (Brazilian)" +msgid "Norwegian" msgstr "" #: InvenTree/locales.py:43 -msgid "Romanian" +msgid "Polish" msgstr "" #: InvenTree/locales.py:44 -msgid "Russian" +msgid "Portuguese" msgstr "" #: InvenTree/locales.py:45 -msgid "Slovak" +msgid "Portuguese (Brazilian)" msgstr "" #: InvenTree/locales.py:46 -msgid "Slovenian" +msgid "Romanian" msgstr "" #: InvenTree/locales.py:47 -msgid "Serbian" +msgid "Russian" msgstr "" #: InvenTree/locales.py:48 -msgid "Swedish" +msgid "Slovak" msgstr "" #: InvenTree/locales.py:49 -msgid "Thai" +msgid "Slovenian" msgstr "" #: InvenTree/locales.py:50 -msgid "Turkish" +msgid "Serbian" msgstr "" #: InvenTree/locales.py:51 -msgid "Ukrainian" +msgid "Swedish" msgstr "" #: InvenTree/locales.py:52 -msgid "Vietnamese" +msgid "Thai" msgstr "" #: InvenTree/locales.py:53 -msgid "Chinese (Simplified)" +msgid "Turkish" msgstr "" #: InvenTree/locales.py:54 +msgid "Ukrainian" +msgstr "" + +#: InvenTree/locales.py:55 +msgid "Vietnamese" +msgstr "" + +#: InvenTree/locales.py:56 +msgid "Chinese (Simplified)" +msgstr "" + +#: InvenTree/locales.py:57 msgid "Chinese (Traditional)" msgstr "" #: InvenTree/magic_login.py:28 -#, python-brace-format -msgid "[{site_name}] Log in to the app" +msgid "Log in to the app" msgstr "" -#: InvenTree/magic_login.py:38 InvenTree/serializers.py:415 -#: company/models.py:136 company/templates/company/company_base.html:138 +#: InvenTree/magic_login.py:38 InvenTree/serializers.py:416 +#: company/models.py:133 company/templates/company/company_base.html:138 #: templates/InvenTree/settings/user.html:49 -#: templates/js/translated/company.js:677 +#: templates/js/translated/company.js:678 msgid "Email" msgstr "" -#: InvenTree/models.py:103 +#: InvenTree/models.py:105 msgid "Error running plugin validation" msgstr "" -#: InvenTree/models.py:172 +#: InvenTree/models.py:174 msgid "Metadata must be a python dict object" msgstr "" -#: InvenTree/models.py:178 +#: InvenTree/models.py:180 msgid "Plugin Metadata" msgstr "" -#: InvenTree/models.py:179 +#: InvenTree/models.py:181 msgid "JSON metadata field, for use by external plugins" msgstr "" -#: InvenTree/models.py:409 +#: InvenTree/models.py:408 msgid "Improperly formatted pattern" msgstr "" -#: InvenTree/models.py:416 +#: InvenTree/models.py:415 msgid "Unknown format key specified" msgstr "" -#: InvenTree/models.py:422 +#: InvenTree/models.py:421 msgid "Missing required format key" msgstr "" -#: InvenTree/models.py:433 +#: InvenTree/models.py:432 msgid "Reference field cannot be empty" msgstr "" -#: InvenTree/models.py:441 +#: InvenTree/models.py:440 msgid "Reference must match required pattern" msgstr "" -#: InvenTree/models.py:472 +#: InvenTree/models.py:471 msgid "Reference number is too large" msgstr "" -#: InvenTree/models.py:723 +#: InvenTree/models.py:722 msgid "Duplicate names cannot exist under the same parent" msgstr "" -#: InvenTree/models.py:740 +#: InvenTree/models.py:739 msgid "Invalid choice" msgstr "" -#: InvenTree/models.py:770 common/models.py:2702 common/models.py:3132 -#: common/serializers.py:412 company/models.py:593 machine/models.py:24 -#: part/models.py:983 part/models.py:3764 plugin/models.py:51 -#: report/models.py:149 stock/models.py:77 +#: InvenTree/models.py:769 common/models.py:2766 common/models.py:3193 +#: common/models.py:3413 common/serializers.py:460 company/models.py:590 +#: machine/models.py:24 part/models.py:1044 part/models.py:3815 +#: plugin/models.py:51 report/models.py:149 stock/models.py:83 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/notifications.html:17 #: templates/InvenTree/settings/plugin.html:83 #: templates/InvenTree/settings/plugin_settings.html:22 #: templates/InvenTree/settings/settings_staff_js.html:67 #: templates/InvenTree/settings/settings_staff_js.html:454 -#: templates/js/translated/company.js:676 -#: templates/js/translated/company.js:724 -#: templates/js/translated/company.js:913 -#: templates/js/translated/company.js:1165 -#: templates/js/translated/company.js:1413 templates/js/translated/part.js:1193 +#: templates/js/translated/company.js:677 +#: templates/js/translated/company.js:725 +#: templates/js/translated/company.js:914 +#: templates/js/translated/company.js:1166 +#: templates/js/translated/company.js:1414 templates/js/translated/part.js:1193 #: templates/js/translated/part.js:1481 templates/js/translated/part.js:1617 -#: templates/js/translated/part.js:2768 templates/js/translated/stock.js:2801 +#: templates/js/translated/part.js:2768 templates/js/translated/stock.js:2802 msgid "Name" msgstr "" -#: InvenTree/models.py:776 build/models.py:250 -#: build/templates/build/detail.html:24 common/models.py:156 -#: company/models.py:521 company/models.py:827 +#: InvenTree/models.py:775 build/models.py:251 +#: build/templates/build/detail.html:24 common/models.py:159 +#: company/models.py:518 company/models.py:824 #: company/templates/company/company_base.html:77 #: company/templates/company/manufacturer_part.html:75 -#: company/templates/company/supplier_part.html:107 order/models.py:288 -#: order/models.py:1413 part/admin.py:305 part/admin.py:411 part/models.py:1006 -#: part/models.py:3779 part/templates/part/category.html:79 -#: part/templates/part/part_base.html:170 +#: company/templates/company/supplier_part.html:108 order/models.py:295 +#: order/models.py:1430 part/admin.py:305 part/admin.py:411 part/models.py:1067 +#: part/models.py:3830 part/templates/part/category.html:79 +#: part/templates/part/part_base.html:171 #: part/templates/part/part_scheduling.html:12 report/models.py:155 -#: report/models.py:509 report/models.py:535 +#: report/models.py:517 report/models.py:543 #: report/templates/report/inventree_build_order_report.html:117 -#: stock/admin.py:54 stock/models.py:83 stock/templates/stock/location.html:122 +#: stock/admin.py:54 stock/models.py:89 stock/templates/stock/location.html:123 #: templates/InvenTree/settings/notifications.html:19 #: templates/InvenTree/settings/plugin_settings.html:27 #: templates/InvenTree/settings/settings_staff_js.html:170 #: templates/InvenTree/settings/settings_staff_js.html:459 #: templates/js/translated/bom.js:633 templates/js/translated/bom.js:963 -#: templates/js/translated/build.js:2311 templates/js/translated/company.js:519 -#: templates/js/translated/company.js:1330 -#: templates/js/translated/company.js:1641 templates/js/translated/index.js:119 +#: templates/js/translated/build.js:2314 templates/js/translated/company.js:520 +#: templates/js/translated/company.js:1331 +#: templates/js/translated/company.js:1642 templates/js/translated/index.js:119 #: templates/js/translated/order.js:323 templates/js/translated/part.js:1245 #: templates/js/translated/part.js:1490 templates/js/translated/part.js:1628 #: templates/js/translated/part.js:1965 templates/js/translated/part.js:2361 #: templates/js/translated/part.js:2803 templates/js/translated/part.js:2915 #: templates/js/translated/plugin.js:80 -#: templates/js/translated/purchase_order.js:1776 -#: templates/js/translated/purchase_order.js:1919 -#: templates/js/translated/purchase_order.js:2092 +#: templates/js/translated/purchase_order.js:1760 +#: templates/js/translated/purchase_order.js:1903 +#: templates/js/translated/purchase_order.js:2076 #: templates/js/translated/return_order.js:313 -#: templates/js/translated/sales_order.js:838 -#: templates/js/translated/sales_order.js:1848 -#: templates/js/translated/stock.js:1600 templates/js/translated/stock.js:2143 -#: templates/js/translated/stock.js:2832 templates/js/translated/stock.js:2915 +#: templates/js/translated/sales_order.js:797 +#: templates/js/translated/sales_order.js:1829 +#: templates/js/translated/stock.js:1600 templates/js/translated/stock.js:2144 +#: templates/js/translated/stock.js:2833 templates/js/translated/stock.js:2916 msgid "Description" msgstr "" -#: InvenTree/models.py:777 stock/models.py:84 +#: InvenTree/models.py:776 stock/models.py:90 msgid "Description (optional)" msgstr "" -#: InvenTree/models.py:792 templates/js/translated/part.js:2812 -#: templates/js/translated/stock.js:2841 +#: InvenTree/models.py:791 common/models.py:3546 +#: templates/js/translated/part.js:2812 templates/js/translated/stock.js:2842 msgid "Path" msgstr "" -#: InvenTree/models.py:929 +#: InvenTree/models.py:928 msgid "Markdown notes (optional)" msgstr "" -#: InvenTree/models.py:960 +#: InvenTree/models.py:959 msgid "Barcode Data" msgstr "" -#: InvenTree/models.py:961 +#: InvenTree/models.py:960 msgid "Third party barcode data" msgstr "" -#: InvenTree/models.py:967 +#: InvenTree/models.py:966 msgid "Barcode Hash" msgstr "" -#: InvenTree/models.py:968 +#: InvenTree/models.py:967 msgid "Unique hash of barcode data" msgstr "" -#: InvenTree/models.py:1035 +#: InvenTree/models.py:1034 msgid "Existing barcode found" msgstr "" -#: InvenTree/models.py:1078 +#: InvenTree/models.py:1112 +msgid "Task Failure" +msgstr "" + +#: InvenTree/models.py:1114 +#, python-brace-format +msgid "Background worker task '{instance.func}' failed after {n} attempts" +msgstr "" + +#: InvenTree/models.py:1142 msgid "Server Error" msgstr "" -#: InvenTree/models.py:1079 +#: InvenTree/models.py:1143 msgid "An error has been logged by the server." msgstr "" -#: InvenTree/serializers.py:63 part/models.py:4387 +#: InvenTree/serializers.py:63 part/models.py:4444 msgid "Must be a valid number" msgstr "" -#: InvenTree/serializers.py:100 company/models.py:186 -#: company/templates/company/company_base.html:112 part/models.py:3115 +#: InvenTree/serializers.py:100 company/models.py:183 +#: company/templates/company/company_base.html:112 part/models.py:3166 #: templates/InvenTree/settings/settings_staff_js.html:44 #: templates/currency_data.html:5 msgid "Currency" @@ -532,15 +552,15 @@ msgstr "" msgid "Select currency from available options" msgstr "" -#: InvenTree/serializers.py:407 templates/InvenTree/settings/user.html:33 +#: InvenTree/serializers.py:405 templates/InvenTree/settings/user.html:33 msgid "Username" msgstr "" -#: InvenTree/serializers.py:409 templates/InvenTree/settings/user.html:37 +#: InvenTree/serializers.py:408 templates/InvenTree/settings/user.html:37 msgid "First Name" msgstr "" -#: InvenTree/serializers.py:409 +#: InvenTree/serializers.py:408 msgid "First name of the user" msgstr "" @@ -552,30 +572,30 @@ msgstr "" msgid "Last name of the user" msgstr "" -#: InvenTree/serializers.py:415 +#: InvenTree/serializers.py:416 msgid "Email address of the user" msgstr "" -#: InvenTree/serializers.py:439 +#: InvenTree/serializers.py:441 msgid "Staff" msgstr "" -#: InvenTree/serializers.py:439 +#: InvenTree/serializers.py:441 msgid "Does this user have staff permissions" msgstr "" -#: InvenTree/serializers.py:442 +#: InvenTree/serializers.py:445 msgid "Superuser" msgstr "" -#: InvenTree/serializers.py:442 +#: InvenTree/serializers.py:445 msgid "Is this user a superuser" msgstr "" -#: InvenTree/serializers.py:445 common/models.py:2707 company/models.py:163 -#: company/models.py:801 machine/models.py:39 part/admin.py:88 -#: part/models.py:1189 plugin/models.py:66 -#: templates/js/translated/company.js:523 +#: InvenTree/serializers.py:449 common/models.py:2771 company/models.py:160 +#: company/models.py:798 machine/models.py:39 part/admin.py:88 +#: part/models.py:1250 plugin/models.py:66 +#: templates/js/translated/company.js:524 #: templates/js/translated/table_filters.js:134 #: templates/js/translated/table_filters.js:226 #: templates/js/translated/table_filters.js:513 @@ -585,230 +605,229 @@ msgstr "" msgid "Active" msgstr "" -#: InvenTree/serializers.py:445 +#: InvenTree/serializers.py:449 msgid "Is this user account active" msgstr "" -#: InvenTree/serializers.py:463 +#: InvenTree/serializers.py:467 msgid "You do not have permission to change this user role." msgstr "" -#: InvenTree/serializers.py:475 +#: InvenTree/serializers.py:503 msgid "Only superusers can create new users" msgstr "" -#: InvenTree/serializers.py:494 +#: InvenTree/serializers.py:523 msgid "Your account has been created." msgstr "" -#: InvenTree/serializers.py:496 +#: InvenTree/serializers.py:525 msgid "Please use the password reset function to login" msgstr "" -#: InvenTree/serializers.py:503 +#: InvenTree/serializers.py:531 msgid "Welcome to InvenTree" msgstr "" -#: InvenTree/serializers.py:561 +#: InvenTree/serializers.py:594 msgid "Invalid value" msgstr "" -#: InvenTree/serializers.py:581 importer/models.py:63 +#: InvenTree/serializers.py:614 importer/models.py:64 msgid "Data File" msgstr "" -#: InvenTree/serializers.py:582 +#: InvenTree/serializers.py:615 msgid "Select data file for upload" msgstr "" -#: InvenTree/serializers.py:599 -msgid "Unsupported file type" +#: InvenTree/serializers.py:632 common/files.py:63 +msgid "Unsupported file format" msgstr "" -#: InvenTree/serializers.py:605 +#: InvenTree/serializers.py:638 msgid "File is too large" msgstr "" -#: InvenTree/serializers.py:626 +#: InvenTree/serializers.py:659 msgid "No columns found in file" msgstr "" -#: InvenTree/serializers.py:629 +#: InvenTree/serializers.py:662 msgid "No data rows found in file" msgstr "" -#: InvenTree/serializers.py:742 +#: InvenTree/serializers.py:774 msgid "No data rows provided" msgstr "" -#: InvenTree/serializers.py:745 +#: InvenTree/serializers.py:777 msgid "No data columns supplied" msgstr "" -#: InvenTree/serializers.py:812 +#: InvenTree/serializers.py:843 #, python-brace-format msgid "Missing required column: '{name}'" msgstr "" -#: InvenTree/serializers.py:821 +#: InvenTree/serializers.py:852 #, python-brace-format msgid "Duplicate column: '{col}'" msgstr "" -#: InvenTree/serializers.py:861 +#: InvenTree/serializers.py:891 msgid "Remote Image" msgstr "" -#: InvenTree/serializers.py:862 +#: InvenTree/serializers.py:892 msgid "URL of remote image file" msgstr "" -#: InvenTree/serializers.py:880 +#: InvenTree/serializers.py:910 msgid "Downloading images from remote URL is not enabled" msgstr "" -#: InvenTree/status.py:66 part/serializers.py:1246 -msgid "Background worker check failed" -msgstr "" - -#: InvenTree/status.py:70 -msgid "Email backend not configured" -msgstr "" - -#: InvenTree/status.py:73 -msgid "InvenTree system health checks failed" +#: InvenTree/serializers.py:917 +msgid "Failed to download image from remote URL" msgstr "" #: InvenTree/templatetags/inventree_extras.py:184 msgid "Unknown database" msgstr "" -#: InvenTree/validators.py:32 InvenTree/validators.py:34 +#: InvenTree/validators.py:32 msgid "Invalid physical unit" msgstr "" -#: InvenTree/validators.py:40 +#: InvenTree/validators.py:38 msgid "Not a valid currency code" msgstr "" -#: InvenTree/validators.py:118 InvenTree/validators.py:134 +#: InvenTree/validators.py:115 InvenTree/validators.py:131 msgid "Overage value must not be negative" msgstr "" -#: InvenTree/validators.py:136 +#: InvenTree/validators.py:133 msgid "Overage must not exceed 100%" msgstr "" -#: InvenTree/validators.py:142 +#: InvenTree/validators.py:139 msgid "Invalid value for overage" msgstr "" -#: InvenTree/views.py:400 templates/InvenTree/settings/user.html:23 +#: InvenTree/views.py:399 templates/InvenTree/settings/user.html:23 msgid "Edit User Information" msgstr "" -#: InvenTree/views.py:412 templates/InvenTree/settings/user.html:20 +#: InvenTree/views.py:411 templates/InvenTree/settings/user.html:20 msgid "Set Password" msgstr "" -#: InvenTree/views.py:434 +#: InvenTree/views.py:433 msgid "Password fields must match" msgstr "" -#: InvenTree/views.py:442 +#: InvenTree/views.py:441 msgid "Wrong password provided" msgstr "" -#: InvenTree/views.py:650 templates/navbar.html:160 +#: InvenTree/views.py:645 templates/navbar.html:160 msgid "System Information" msgstr "" -#: InvenTree/views.py:657 templates/navbar.html:171 +#: InvenTree/views.py:652 templates/navbar.html:171 msgid "About InvenTree" msgstr "" -#: build/api.py:51 part/api.py:156 stock/api.py:343 -msgid "Cascade" -msgstr "" - -#: build/api.py:64 build/models.py:261 -#: build/templates/build/build_base.html:191 +#: build/api.py:54 build/models.py:262 +#: build/templates/build/build_base.html:192 #: build/templates/build/detail.html:87 msgid "Parent Build" msgstr "" -#: build/api.py:89 order/api.py:92 templates/js/translated/table_filters.js:101 +#: build/api.py:58 build/api.py:625 order/api.py:396 order/api.py:611 +#: order/api.py:990 order/api.py:1187 +#: templates/js/translated/table_filters.js:372 +msgid "Include Variants" +msgstr "" + +#: build/api.py:93 +msgid "Ancestor Build" +msgstr "" + +#: build/api.py:112 order/api.py:90 +#: templates/js/translated/table_filters.js:101 #: templates/js/translated/table_filters.js:549 #: templates/js/translated/table_filters.js:633 #: templates/js/translated/table_filters.js:674 msgid "Assigned to me" msgstr "" -#: build/api.py:106 build/templates/build/build_base.html:205 +#: build/api.py:129 build/templates/build/build_base.html:206 #: build/templates/build/detail.html:115 #: report/templates/report/inventree_build_order_report.html:152 #: templates/js/translated/table_filters.js:552 msgid "Issued By" msgstr "" -#: build/api.py:125 +#: build/api.py:148 msgid "Assigned To" msgstr "" -#: build/api.py:301 +#: build/api.py:310 msgid "Build must be cancelled before it can be deleted" msgstr "" -#: build/api.py:345 build/serializers.py:1288 part/models.py:4265 +#: build/api.py:354 build/serializers.py:1342 part/models.py:4322 #: templates/js/translated/bom.js:997 templates/js/translated/bom.js:1037 -#: templates/js/translated/build.js:2702 +#: templates/js/translated/build.js:2711 #: templates/js/translated/table_filters.js:197 #: templates/js/translated/table_filters.js:586 msgid "Consumable" msgstr "" -#: build/api.py:346 build/serializers.py:1289 part/models.py:4259 +#: build/api.py:355 build/serializers.py:1343 part/models.py:4316 #: part/templates/part/upload_bom.html:58 templates/js/translated/bom.js:1001 -#: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2693 +#: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2702 #: templates/js/translated/table_filters.js:193 #: templates/js/translated/table_filters.js:222 #: templates/js/translated/table_filters.js:590 msgid "Optional" msgstr "" -#: build/api.py:347 common/models.py:1489 part/admin.py:91 part/admin.py:428 -#: part/models.py:1154 part/serializers.py:1575 +#: build/api.py:356 common/models.py:1558 part/admin.py:91 part/admin.py:428 +#: part/models.py:1215 part/serializers.py:1633 #: templates/js/translated/bom.js:1639 #: templates/js/translated/table_filters.js:337 #: templates/js/translated/table_filters.js:729 msgid "Assembly" msgstr "" -#: build/api.py:348 templates/js/translated/table_filters.js:415 +#: build/api.py:357 templates/js/translated/table_filters.js:415 #: templates/js/translated/table_filters.js:582 msgid "Tracked" msgstr "" -#: build/api.py:349 build/serializers.py:1290 part/models.py:1172 +#: build/api.py:358 build/serializers.py:1344 part/models.py:1233 #: templates/js/translated/table_filters.js:146 #: templates/js/translated/table_filters.js:779 msgid "Testable" msgstr "" -#: build/api.py:351 part/admin.py:144 templates/js/translated/build.js:1917 -#: templates/js/translated/build.js:2820 -#: templates/js/translated/sales_order.js:1965 +#: build/api.py:360 order/api.py:779 part/admin.py:144 +#: templates/js/translated/build.js:1920 templates/js/translated/build.js:2838 +#: templates/js/translated/sales_order.js:1946 #: templates/js/translated/table_filters.js:574 msgid "Allocated" msgstr "" -#: build/api.py:359 company/models.py:891 company/serializers.py:395 -#: company/templates/company/supplier_part.html:114 +#: build/api.py:368 company/models.py:888 company/serializers.py:399 +#: company/templates/company/supplier_part.html:115 #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:17 -#: templates/js/translated/bom.js:1162 templates/js/translated/build.js:2752 +#: templates/js/translated/bom.js:1162 templates/js/translated/build.js:2770 #: templates/js/translated/index.js:123 -#: templates/js/translated/model_renderers.js:235 +#: templates/js/translated/model_renderers.js:238 #: templates/js/translated/part.js:695 templates/js/translated/part.js:697 #: templates/js/translated/part.js:702 #: templates/js/translated/table_filters.js:347 @@ -816,16 +835,68 @@ msgstr "" msgid "Available" msgstr "" -#: build/models.py:86 build/templates/build/build_base.html:9 -#: build/templates/build/build_base.html:27 +#: build/api.py:640 build/models.py:268 build/serializers.py:1330 +#: build/templates/build/build_base.html:106 +#: build/templates/build/detail.html:29 company/models.py:1043 order/api.py:775 +#: order/api.py:1003 order/models.py:1519 order/models.py:1674 +#: order/models.py:1675 part/api.py:1495 part/api.py:1802 part/models.py:419 +#: part/models.py:3177 part/models.py:3321 part/models.py:3469 +#: part/models.py:3490 part/models.py:3512 part/models.py:3648 +#: part/models.py:3995 part/models.py:4158 part/models.py:4288 +#: part/models.py:4654 part/serializers.py:1245 part/serializers.py:1898 +#: part/templates/part/part_app_base.html:8 +#: part/templates/part/part_pricing.html:12 +#: part/templates/part/upload_bom.html:52 +#: report/templates/report/inventree_bill_of_materials_report.html:110 +#: report/templates/report/inventree_bill_of_materials_report.html:137 +#: report/templates/report/inventree_build_order_report.html:109 +#: report/templates/report/inventree_purchase_order_report.html:27 +#: report/templates/report/inventree_return_order_report.html:24 +#: report/templates/report/inventree_sales_order_report.html:27 +#: report/templates/report/inventree_sales_order_shipment_report.html:28 +#: report/templates/report/inventree_stock_location_report.html:102 +#: stock/serializers.py:112 stock/serializers.py:160 stock/serializers.py:456 +#: stock/serializers.py:947 templates/InvenTree/search.html:82 +#: templates/email/build_order_completed.html:17 +#: templates/email/build_order_required_stock.html:17 +#: templates/email/low_stock_notification.html:15 +#: templates/email/overdue_build_order.html:16 +#: templates/js/translated/barcode.js:577 templates/js/translated/bom.js:632 +#: templates/js/translated/bom.js:769 templates/js/translated/bom.js:905 +#: templates/js/translated/build.js:1005 templates/js/translated/build.js:1488 +#: templates/js/translated/build.js:1919 templates/js/translated/build.js:2337 +#: templates/js/translated/build.js:2514 templates/js/translated/company.js:349 +#: templates/js/translated/company.js:1117 +#: templates/js/translated/company.js:1272 +#: templates/js/translated/company.js:1560 templates/js/translated/index.js:109 +#: templates/js/translated/part.js:1950 templates/js/translated/part.js:2022 +#: templates/js/translated/part.js:2330 templates/js/translated/pricing.js:369 +#: templates/js/translated/purchase_order.js:734 +#: templates/js/translated/purchase_order.js:1350 +#: templates/js/translated/purchase_order.js:1902 +#: templates/js/translated/purchase_order.js:2061 +#: templates/js/translated/return_order.js:538 +#: templates/js/translated/return_order.js:708 +#: templates/js/translated/sales_order.js:1199 +#: templates/js/translated/sales_order.js:1608 +#: templates/js/translated/sales_order.js:1813 +#: templates/js/translated/stock.js:682 templates/js/translated/stock.js:848 +#: templates/js/translated/stock.js:1065 templates/js/translated/stock.js:2083 +#: templates/js/translated/stock.js:2942 templates/js/translated/stock.js:3175 +#: templates/js/translated/stock.js:3320 +msgid "Part" +msgstr "" + +#: build/api.py:662 build/models.py:88 build/templates/build/build_base.html:10 +#: build/templates/build/build_base.html:28 #: report/templates/report/inventree_build_order_report.html:105 -#: stock/serializers.py:84 templates/email/build_order_completed.html:16 +#: stock/serializers.py:85 templates/email/build_order_completed.html:16 #: templates/email/overdue_build_order.html:15 -#: templates/js/translated/build.js:1145 templates/js/translated/stock.js:2976 +#: templates/js/translated/build.js:1148 templates/js/translated/stock.js:2977 msgid "Build Order" msgstr "" -#: build/models.py:87 build/templates/build/build_base.html:13 +#: build/models.py:89 build/templates/build/build_base.html:14 #: build/templates/build/index.html:8 build/templates/build/index.html:12 #: order/templates/order/sales_order_detail.html:111 #: order/templates/order/so_sidebar.html:13 @@ -836,268 +907,216 @@ msgstr "" msgid "Build Orders" msgstr "" -#: build/models.py:135 +#: build/models.py:136 msgid "Assembly BOM has not been validated" msgstr "" -#: build/models.py:142 +#: build/models.py:143 msgid "Build order cannot be created for an inactive part" msgstr "" -#: build/models.py:149 +#: build/models.py:150 msgid "Build order cannot be created for an unlocked part" msgstr "" -#: build/models.py:163 +#: build/models.py:164 msgid "Invalid choice for parent build" msgstr "" -#: build/models.py:174 order/models.py:239 +#: build/models.py:175 order/models.py:236 msgid "Responsible user or group must be specified" msgstr "" -#: build/models.py:180 +#: build/models.py:181 msgid "Build order part cannot be changed" msgstr "" -#: build/models.py:241 +#: build/models.py:242 msgid "Build Order Reference" msgstr "" -#: build/models.py:242 build/serializers.py:1287 order/models.py:467 -#: order/models.py:978 order/models.py:1373 order/models.py:2135 -#: part/admin.py:414 part/models.py:4280 part/templates/part/upload_bom.html:54 +#: build/models.py:243 build/serializers.py:1341 order/models.py:479 +#: order/models.py:1005 order/models.py:1390 order/models.py:2174 +#: part/admin.py:414 part/models.py:4337 part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_bill_of_materials_report.html:139 #: report/templates/report/inventree_purchase_order_report.html:28 #: report/templates/report/inventree_return_order_report.html:26 #: report/templates/report/inventree_sales_order_report.html:28 #: templates/js/translated/bom.js:770 templates/js/translated/bom.js:973 -#: templates/js/translated/build.js:1011 templates/js/translated/build.js:2685 +#: templates/js/translated/build.js:1014 templates/js/translated/build.js:2694 #: templates/js/translated/order.js:316 templates/js/translated/pricing.js:386 -#: templates/js/translated/purchase_order.js:2135 +#: templates/js/translated/purchase_order.js:2119 #: templates/js/translated/return_order.js:727 -#: templates/js/translated/sales_order.js:1854 +#: templates/js/translated/sales_order.js:1835 msgid "Reference" msgstr "" -#: build/models.py:253 +#: build/models.py:254 msgid "Brief description of the build (optional)" msgstr "" -#: build/models.py:262 +#: build/models.py:263 msgid "BuildOrder to which this build is allocated" msgstr "" -#: build/models.py:267 build/serializers.py:1278 -#: build/templates/build/build_base.html:105 -#: build/templates/build/detail.html:29 company/models.py:1046 order/api.py:767 -#: order/models.py:1503 order/models.py:1658 order/models.py:1659 -#: part/api.py:1509 part/api.py:1813 part/models.py:424 part/models.py:3126 -#: part/models.py:3270 part/models.py:3418 part/models.py:3439 -#: part/models.py:3461 part/models.py:3597 part/models.py:3937 -#: part/models.py:4100 part/models.py:4231 part/models.py:4592 -#: part/serializers.py:1192 part/serializers.py:1836 -#: part/templates/part/part_app_base.html:8 -#: part/templates/part/part_pricing.html:12 -#: part/templates/part/upload_bom.html:52 -#: report/templates/report/inventree_bill_of_materials_report.html:110 -#: report/templates/report/inventree_bill_of_materials_report.html:137 -#: report/templates/report/inventree_build_order_report.html:109 -#: report/templates/report/inventree_purchase_order_report.html:27 -#: report/templates/report/inventree_return_order_report.html:24 -#: report/templates/report/inventree_sales_order_report.html:27 -#: report/templates/report/inventree_stock_location_report.html:102 -#: stock/serializers.py:111 stock/serializers.py:159 stock/serializers.py:446 -#: stock/serializers.py:916 templates/InvenTree/search.html:82 -#: templates/email/build_order_completed.html:17 -#: templates/email/build_order_required_stock.html:17 -#: templates/email/low_stock_notification.html:15 -#: templates/email/overdue_build_order.html:16 -#: templates/js/translated/barcode.js:577 templates/js/translated/bom.js:632 -#: templates/js/translated/bom.js:769 templates/js/translated/bom.js:905 -#: templates/js/translated/build.js:1002 templates/js/translated/build.js:1485 -#: templates/js/translated/build.js:1916 templates/js/translated/build.js:2334 -#: templates/js/translated/build.js:2507 templates/js/translated/company.js:348 -#: templates/js/translated/company.js:1116 -#: templates/js/translated/company.js:1271 -#: templates/js/translated/company.js:1559 templates/js/translated/index.js:109 -#: templates/js/translated/part.js:1950 templates/js/translated/part.js:2022 -#: templates/js/translated/part.js:2330 templates/js/translated/pricing.js:369 -#: templates/js/translated/purchase_order.js:751 -#: templates/js/translated/purchase_order.js:1367 -#: templates/js/translated/purchase_order.js:1918 -#: templates/js/translated/purchase_order.js:2077 -#: templates/js/translated/return_order.js:538 -#: templates/js/translated/return_order.js:708 -#: templates/js/translated/sales_order.js:300 -#: templates/js/translated/sales_order.js:1233 -#: templates/js/translated/sales_order.js:1634 -#: templates/js/translated/sales_order.js:1832 -#: templates/js/translated/stock.js:682 templates/js/translated/stock.js:848 -#: templates/js/translated/stock.js:1065 templates/js/translated/stock.js:2082 -#: templates/js/translated/stock.js:2941 templates/js/translated/stock.js:3174 -#: templates/js/translated/stock.js:3319 -msgid "Part" -msgstr "" - -#: build/models.py:275 +#: build/models.py:274 msgid "Select part to build" msgstr "" -#: build/models.py:280 +#: build/models.py:279 msgid "Sales Order Reference" msgstr "" -#: build/models.py:284 +#: build/models.py:283 msgid "SalesOrder to which this build is allocated" msgstr "" -#: build/models.py:289 build/serializers.py:1048 -#: templates/js/translated/build.js:1904 -#: templates/js/translated/sales_order.js:1221 +#: build/models.py:288 build/serializers.py:1092 +#: templates/js/translated/build.js:1907 +#: templates/js/translated/sales_order.js:1187 msgid "Source Location" msgstr "" -#: build/models.py:293 +#: build/models.py:292 msgid "Select location to take stock from for this build (leave blank to take from any stock location)" msgstr "" -#: build/models.py:298 +#: build/models.py:297 msgid "Destination Location" msgstr "" -#: build/models.py:302 +#: build/models.py:301 msgid "Select location where the completed items will be stored" msgstr "" -#: build/models.py:306 +#: build/models.py:305 msgid "Build Quantity" msgstr "" -#: build/models.py:309 +#: build/models.py:308 msgid "Number of stock items to build" msgstr "" -#: build/models.py:313 +#: build/models.py:312 msgid "Completed items" msgstr "" -#: build/models.py:315 +#: build/models.py:314 msgid "Number of stock items which have been completed" msgstr "" -#: build/models.py:319 +#: build/models.py:318 msgid "Build Status" msgstr "" -#: build/models.py:323 +#: build/models.py:322 msgid "Build status code" msgstr "" -#: build/models.py:332 build/serializers.py:302 build/serializers.py:1198 -#: order/serializers.py:670 stock/models.py:859 stock/serializers.py:76 -#: stock/serializers.py:1562 templates/js/translated/purchase_order.js:1129 +#: build/models.py:331 build/serializers.py:349 build/serializers.py:1243 +#: order/serializers.py:755 stock/models.py:936 stock/serializers.py:77 +#: stock/serializers.py:1593 templates/js/translated/purchase_order.js:1112 #: templates/js/translated/stock.js:1199 msgid "Batch Code" msgstr "" -#: build/models.py:336 build/serializers.py:303 +#: build/models.py:335 build/serializers.py:350 msgid "Batch code for this build output" msgstr "" -#: build/models.py:339 order/models.py:315 order/serializers.py:126 -#: part/models.py:1229 part/templates/part/part_base.html:319 +#: build/models.py:338 order/models.py:322 order/serializers.py:157 +#: part/models.py:1290 part/templates/part/part_base.html:327 #: templates/js/translated/return_order.js:338 -#: templates/js/translated/sales_order.js:863 +#: templates/js/translated/sales_order.js:822 msgid "Creation Date" msgstr "" -#: build/models.py:343 +#: build/models.py:342 msgid "Target completion date" msgstr "" -#: build/models.py:344 +#: build/models.py:343 msgid "Target date for build completion. Build will be overdue after this date." msgstr "" -#: build/models.py:347 order/models.py:526 order/models.py:2180 -#: templates/js/translated/build.js:2419 +#: build/models.py:346 order/models.py:538 order/models.py:2219 +#: templates/js/translated/build.js:2422 msgid "Completion Date" msgstr "" -#: build/models.py:353 +#: build/models.py:352 msgid "completed by" msgstr "" -#: build/models.py:361 templates/js/translated/build.js:2379 +#: build/models.py:360 templates/js/translated/build.js:2382 msgid "Issued by" msgstr "" -#: build/models.py:362 +#: build/models.py:361 msgid "User who issued this build order" msgstr "" -#: build/models.py:370 build/templates/build/build_base.html:212 -#: build/templates/build/detail.html:122 common/models.py:165 order/api.py:142 -#: order/models.py:333 order/templates/order/order_base.html:222 -#: order/templates/order/return_order_base.html:191 -#: order/templates/order/sales_order_base.html:235 part/models.py:1246 -#: part/templates/part/part_base.html:399 +#: build/models.py:369 build/templates/build/build_base.html:213 +#: build/templates/build/detail.html:122 common/models.py:168 order/api.py:140 +#: order/models.py:340 order/templates/order/order_base.html:231 +#: order/templates/order/return_order_base.html:192 +#: order/templates/order/sales_order_base.html:236 part/models.py:1307 +#: part/templates/part/part_base.html:407 #: report/templates/report/inventree_build_order_report.html:158 #: templates/InvenTree/settings/settings_staff_js.html:150 -#: templates/js/translated/build.js:2391 -#: templates/js/translated/purchase_order.js:1833 +#: templates/js/translated/build.js:2394 +#: templates/js/translated/purchase_order.js:1817 #: templates/js/translated/return_order.js:358 #: templates/js/translated/table_filters.js:551 msgid "Responsible" msgstr "" -#: build/models.py:371 +#: build/models.py:370 msgid "User or group responsible for this build order" msgstr "" -#: build/models.py:376 build/templates/build/detail.html:108 +#: build/models.py:375 build/templates/build/detail.html:108 #: company/templates/company/manufacturer_part.html:107 -#: company/templates/company/supplier_part.html:194 -#: order/templates/order/order_base.html:172 -#: order/templates/order/return_order_base.html:148 -#: order/templates/order/sales_order_base.html:187 -#: part/templates/part/part_base.html:392 stock/models.py:855 -#: stock/templates/stock/item_base.html:200 -#: templates/js/translated/company.js:1019 +#: company/templates/company/supplier_part.html:195 +#: order/templates/order/order_base.html:181 +#: order/templates/order/return_order_base.html:149 +#: order/templates/order/sales_order_base.html:188 +#: part/templates/part/part_base.html:400 stock/models.py:932 +#: stock/templates/stock/item_base.html:197 +#: templates/js/translated/company.js:1020 msgid "External Link" msgstr "" -#: build/models.py:377 common/models.py:3273 part/models.py:1058 -#: stock/models.py:855 +#: build/models.py:376 common/models.py:3334 part/models.py:1119 +#: stock/models.py:932 msgid "Link to external URL" msgstr "" -#: build/models.py:381 +#: build/models.py:380 msgid "Build Priority" msgstr "" -#: build/models.py:384 +#: build/models.py:383 msgid "Priority of this build order" msgstr "" -#: build/models.py:391 common/models.py:135 common/models.py:149 -#: order/admin.py:18 order/api.py:128 order/models.py:297 +#: build/models.py:390 common/models.py:138 common/models.py:152 +#: order/admin.py:18 order/api.py:126 order/models.py:304 #: templates/InvenTree/settings/settings_staff_js.html:146 -#: templates/js/translated/build.js:2316 -#: templates/js/translated/purchase_order.js:1780 +#: templates/js/translated/build.js:2319 +#: templates/js/translated/purchase_order.js:1764 #: templates/js/translated/return_order.js:317 -#: templates/js/translated/sales_order.js:842 +#: templates/js/translated/sales_order.js:801 #: templates/js/translated/table_filters.js:47 #: templates/project_code_data.html:6 msgid "Project Code" msgstr "" -#: build/models.py:392 +#: build/models.py:391 msgid "Project code for this build order" msgstr "" -#: build/models.py:651 build/models.py:778 +#: build/models.py:651 build/models.py:779 msgid "Failed to offload task to complete build allocations" msgstr "" @@ -1110,610 +1129,619 @@ msgstr "" msgid "A build order has been completed" msgstr "" -#: build/models.py:967 build/models.py:1055 +#: build/models.py:858 build/serializers.py:393 +msgid "Serial numbers must be provided for trackable parts" +msgstr "" + +#: build/models.py:969 build/models.py:1058 msgid "No build output specified" msgstr "" -#: build/models.py:970 +#: build/models.py:972 msgid "Build output is already completed" msgstr "" -#: build/models.py:973 +#: build/models.py:975 msgid "Build output does not match Build Order" msgstr "" -#: build/models.py:1059 build/serializers.py:235 build/serializers.py:284 -#: build/serializers.py:915 order/models.py:564 order/serializers.py:499 -#: order/serializers.py:665 part/serializers.py:1569 part/serializers.py:1999 -#: stock/models.py:700 stock/models.py:1520 stock/serializers.py:669 +#: build/models.py:1062 build/serializers.py:282 build/serializers.py:331 +#: build/serializers.py:959 order/models.py:586 order/serializers.py:584 +#: order/serializers.py:750 part/serializers.py:1627 part/serializers.py:2060 +#: stock/models.py:777 stock/models.py:1609 stock/serializers.py:696 msgid "Quantity must be greater than zero" msgstr "" -#: build/models.py:1064 build/serializers.py:240 +#: build/models.py:1067 build/serializers.py:287 msgid "Quantity cannot be greater than the output quantity" msgstr "" -#: build/models.py:1124 build/serializers.py:563 +#: build/models.py:1127 build/serializers.py:607 #, python-brace-format msgid "Build output {serial} has not passed all required tests" msgstr "" -#: build/models.py:1465 +#: build/models.py:1482 msgid "Build Order Line Item" msgstr "" -#: build/models.py:1490 +#: build/models.py:1507 msgid "Build object" msgstr "" -#: build/models.py:1504 build/models.py:1760 build/serializers.py:222 -#: build/serializers.py:269 build/serializers.py:1295 -#: build/templates/build/build_base.html:110 -#: build/templates/build/detail.html:34 common/models.py:2579 -#: order/models.py:1356 order/models.py:2041 order/serializers.py:1460 +#: build/models.py:1521 build/models.py:1787 build/serializers.py:269 +#: build/serializers.py:316 build/serializers.py:1349 +#: build/templates/build/build_base.html:111 +#: build/templates/build/detail.html:34 common/models.py:2643 +#: order/models.py:1373 order/models.py:2074 order/serializers.py:1586 #: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:413 -#: part/forms.py:48 part/models.py:3284 part/models.py:4253 -#: part/templates/part/part_pricing.html:16 +#: part/forms.py:48 part/models.py:3335 part/models.py:4310 +#: part/serializers.py:265 part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_bill_of_materials_report.html:138 #: report/templates/report/inventree_build_order_report.html:113 #: report/templates/report/inventree_purchase_order_report.html:29 #: report/templates/report/inventree_sales_order_report.html:29 +#: report/templates/report/inventree_sales_order_shipment_report.html:47 +#: report/templates/report/inventree_sales_order_shipment_report.html:49 #: report/templates/report/inventree_stock_location_report.html:104 #: report/templates/report/inventree_test_report.html:90 -#: report/templates/report/inventree_test_report.html:169 stock/admin.py:159 -#: stock/serializers.py:127 stock/serializers.py:167 stock/serializers.py:660 -#: stock/templates/stock/item_base.html:287 -#: stock/templates/stock/item_base.html:295 -#: stock/templates/stock/item_base.html:342 +#: report/templates/report/inventree_test_report.html:169 stock/admin.py:160 +#: stock/serializers.py:128 stock/serializers.py:168 stock/serializers.py:687 +#: stock/templates/stock/item_base.html:284 +#: stock/templates/stock/item_base.html:292 +#: stock/templates/stock/item_base.html:339 #: templates/email/build_order_completed.html:18 #: templates/js/translated/barcode.js:579 templates/js/translated/bom.js:771 -#: templates/js/translated/bom.js:981 templates/js/translated/build.js:522 -#: templates/js/translated/build.js:737 templates/js/translated/build.js:1542 -#: templates/js/translated/build.js:1919 templates/js/translated/build.js:2529 -#: templates/js/translated/company.js:1818 -#: templates/js/translated/model_renderers.js:237 +#: templates/js/translated/bom.js:981 templates/js/translated/build.js:525 +#: templates/js/translated/build.js:740 templates/js/translated/build.js:1545 +#: templates/js/translated/build.js:1922 templates/js/translated/build.js:2536 +#: templates/js/translated/company.js:1819 +#: templates/js/translated/model_renderers.js:240 #: templates/js/translated/order.js:329 templates/js/translated/part.js:968 -#: templates/js/translated/part.js:1818 templates/js/translated/part.js:3360 +#: templates/js/translated/part.js:1818 templates/js/translated/part.js:3376 #: templates/js/translated/pricing.js:381 #: templates/js/translated/pricing.js:474 #: templates/js/translated/pricing.js:522 #: templates/js/translated/pricing.js:616 -#: templates/js/translated/purchase_order.js:754 -#: templates/js/translated/purchase_order.js:1922 -#: templates/js/translated/purchase_order.js:2141 -#: templates/js/translated/sales_order.js:317 -#: templates/js/translated/sales_order.js:1235 -#: templates/js/translated/sales_order.js:1554 -#: templates/js/translated/sales_order.js:1644 -#: templates/js/translated/sales_order.js:1734 -#: templates/js/translated/sales_order.js:1860 +#: templates/js/translated/purchase_order.js:737 +#: templates/js/translated/purchase_order.js:1906 +#: templates/js/translated/purchase_order.js:2125 +#: templates/js/translated/sales_order.js:1201 +#: templates/js/translated/sales_order.js:1520 +#: templates/js/translated/sales_order.js:1625 +#: templates/js/translated/sales_order.js:1715 +#: templates/js/translated/sales_order.js:1841 #: templates/js/translated/stock.js:570 templates/js/translated/stock.js:708 -#: templates/js/translated/stock.js:879 templates/js/translated/stock.js:3105 -#: templates/js/translated/stock.js:3188 +#: templates/js/translated/stock.js:879 templates/js/translated/stock.js:3106 +#: templates/js/translated/stock.js:3189 msgid "Quantity" msgstr "" -#: build/models.py:1505 +#: build/models.py:1522 msgid "Required quantity for build order" msgstr "" -#: build/models.py:1585 +#: build/models.py:1602 msgid "Build item must specify a build output, as master part is marked as trackable" msgstr "" -#: build/models.py:1594 +#: build/models.py:1611 #, python-brace-format msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgstr "" -#: build/models.py:1604 order/models.py:1992 +#: build/models.py:1628 order/models.py:2025 msgid "Stock item is over-allocated" msgstr "" -#: build/models.py:1610 order/models.py:1995 +#: build/models.py:1634 order/models.py:2028 msgid "Allocation quantity must be greater than zero" msgstr "" -#: build/models.py:1616 +#: build/models.py:1640 msgid "Quantity must be 1 for serialized stock" msgstr "" -#: build/models.py:1675 +#: build/models.py:1699 msgid "Selected stock item does not match BOM line" msgstr "" -#: build/models.py:1747 build/serializers.py:895 order/serializers.py:1297 -#: order/serializers.py:1318 stock/models.py:376 stock/serializers.py:93 -#: stock/serializers.py:763 stock/serializers.py:1281 stock/serializers.py:1393 -#: stock/templates/stock/item_base.html:10 -#: stock/templates/stock/item_base.html:23 -#: stock/templates/stock/item_base.html:194 -#: templates/js/translated/build.js:1918 -#: templates/js/translated/sales_order.js:301 -#: templates/js/translated/sales_order.js:1234 -#: templates/js/translated/sales_order.js:1535 -#: templates/js/translated/sales_order.js:1540 -#: templates/js/translated/sales_order.js:1641 -#: templates/js/translated/sales_order.js:1728 +#: build/models.py:1774 build/serializers.py:939 order/serializers.py:1423 +#: order/serializers.py:1444 +#: report/templates/report/inventree_sales_order_shipment_report.html:29 +#: stock/models.py:382 stock/serializers.py:94 stock/serializers.py:794 +#: stock/serializers.py:1312 stock/serializers.py:1424 +#: stock/templates/stock/item_base.html:11 +#: stock/templates/stock/item_base.html:24 +#: stock/templates/stock/item_base.html:191 +#: templates/js/translated/build.js:1921 +#: templates/js/translated/sales_order.js:1200 +#: templates/js/translated/sales_order.js:1501 +#: templates/js/translated/sales_order.js:1506 +#: templates/js/translated/sales_order.js:1622 +#: templates/js/translated/sales_order.js:1709 #: templates/js/translated/stock.js:683 templates/js/translated/stock.js:849 -#: templates/js/translated/stock.js:3061 +#: templates/js/translated/stock.js:3062 msgid "Stock Item" msgstr "" -#: build/models.py:1748 +#: build/models.py:1775 msgid "Source stock item" msgstr "" -#: build/models.py:1761 +#: build/models.py:1788 msgid "Stock quantity to allocate to build" msgstr "" -#: build/models.py:1769 +#: build/models.py:1796 msgid "Install into" msgstr "" -#: build/models.py:1770 +#: build/models.py:1797 msgid "Destination stock item" msgstr "" -#: build/serializers.py:91 +#: build/serializers.py:108 msgid "Build Level" msgstr "" -#: build/serializers.py:99 build/serializers.py:1190 build/serializers.py:1279 -#: part/admin.py:41 part/admin.py:408 part/models.py:4102 part/stocktake.py:219 -#: stock/admin.py:156 +#: build/serializers.py:116 build/serializers.py:1235 build/serializers.py:1331 +#: part/admin.py:41 part/admin.py:408 part/models.py:4160 part/stocktake.py:219 +#: stock/admin.py:157 msgid "Part Name" msgstr "" -#: build/serializers.py:111 +#: build/serializers.py:128 msgid "Project Code Label" msgstr "" -#: build/serializers.py:172 build/serializers.py:924 -#: templates/js/translated/build.js:1042 templates/js/translated/build.js:1495 +#: build/serializers.py:134 +msgid "Create Child Builds" +msgstr "" + +#: build/serializers.py:135 +msgid "Automatically generate child build orders" +msgstr "" + +#: build/serializers.py:219 build/serializers.py:968 +#: templates/js/translated/build.js:1045 templates/js/translated/build.js:1498 msgid "Build Output" msgstr "" -#: build/serializers.py:184 +#: build/serializers.py:231 msgid "Build output does not match the parent build" msgstr "" -#: build/serializers.py:188 +#: build/serializers.py:235 msgid "Output part does not match BuildOrder part" msgstr "" -#: build/serializers.py:192 +#: build/serializers.py:239 msgid "This build output has already been completed" msgstr "" -#: build/serializers.py:203 +#: build/serializers.py:250 msgid "This build output is not fully allocated" msgstr "" -#: build/serializers.py:223 build/serializers.py:270 +#: build/serializers.py:270 build/serializers.py:317 msgid "Enter quantity for build output" msgstr "" -#: build/serializers.py:291 +#: build/serializers.py:338 msgid "Integer quantity required for trackable parts" msgstr "" -#: build/serializers.py:294 +#: build/serializers.py:341 msgid "Integer quantity required, as the bill of materials contains trackable parts" msgstr "" -#: build/serializers.py:309 order/serializers.py:678 order/serializers.py:1464 -#: stock/serializers.py:680 templates/js/translated/purchase_order.js:1154 +#: build/serializers.py:356 order/serializers.py:763 order/serializers.py:1590 +#: stock/serializers.py:707 templates/js/translated/purchase_order.js:1137 #: templates/js/translated/stock.js:373 templates/js/translated/stock.js:571 msgid "Serial Numbers" msgstr "" -#: build/serializers.py:310 +#: build/serializers.py:357 msgid "Enter serial numbers for build outputs" msgstr "" -#: build/serializers.py:315 build/serializers.py:456 build/serializers.py:528 -#: order/serializers.py:654 order/serializers.py:778 order/serializers.py:1781 -#: part/serializers.py:1212 stock/serializers.py:102 stock/serializers.py:691 -#: stock/serializers.py:851 stock/serializers.py:977 stock/serializers.py:1425 -#: stock/serializers.py:1681 stock/templates/stock/item_base.html:394 +#: build/serializers.py:362 build/serializers.py:500 build/serializers.py:572 +#: order/serializers.py:739 order/serializers.py:880 order/serializers.py:1933 +#: part/serializers.py:1265 stock/serializers.py:103 stock/serializers.py:718 +#: stock/serializers.py:882 stock/serializers.py:1008 stock/serializers.py:1456 +#: stock/serializers.py:1712 stock/templates/stock/item_base.html:391 #: templates/js/translated/barcode.js:578 -#: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1032 -#: templates/js/translated/build.js:1174 templates/js/translated/build.js:2544 -#: templates/js/translated/purchase_order.js:1210 -#: templates/js/translated/purchase_order.js:1320 -#: templates/js/translated/sales_order.js:1547 -#: templates/js/translated/sales_order.js:1655 -#: templates/js/translated/sales_order.js:1663 -#: templates/js/translated/sales_order.js:1742 +#: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1035 +#: templates/js/translated/build.js:1177 templates/js/translated/build.js:2551 +#: templates/js/translated/purchase_order.js:1193 +#: templates/js/translated/purchase_order.js:1303 +#: templates/js/translated/sales_order.js:1513 +#: templates/js/translated/sales_order.js:1636 +#: templates/js/translated/sales_order.js:1644 +#: templates/js/translated/sales_order.js:1723 #: templates/js/translated/stock.js:684 templates/js/translated/stock.js:850 -#: templates/js/translated/stock.js:1067 templates/js/translated/stock.js:2286 -#: templates/js/translated/stock.js:2955 +#: templates/js/translated/stock.js:1067 templates/js/translated/stock.js:2287 +#: templates/js/translated/stock.js:2956 msgid "Location" msgstr "" -#: build/serializers.py:316 +#: build/serializers.py:363 msgid "Stock location for build output" msgstr "" -#: build/serializers.py:330 +#: build/serializers.py:377 msgid "Auto Allocate Serial Numbers" msgstr "" -#: build/serializers.py:331 +#: build/serializers.py:378 msgid "Automatically allocate required items with matching serial numbers" msgstr "" -#: build/serializers.py:346 -msgid "Serial numbers must be provided for trackable parts" -msgstr "" - -#: build/serializers.py:371 stock/api.py:1031 +#: build/serializers.py:415 order/serializers.py:858 stock/api.py:1017 +#: stock/models.py:1632 msgid "The following serial numbers already exist or are invalid" msgstr "" -#: build/serializers.py:418 build/serializers.py:480 build/serializers.py:569 +#: build/serializers.py:462 build/serializers.py:524 build/serializers.py:613 msgid "A list of build outputs must be provided" msgstr "" -#: build/serializers.py:457 +#: build/serializers.py:501 msgid "Stock location for scrapped outputs" msgstr "" -#: build/serializers.py:463 +#: build/serializers.py:507 msgid "Discard Allocations" msgstr "" -#: build/serializers.py:464 +#: build/serializers.py:508 msgid "Discard any stock allocations for scrapped outputs" msgstr "" -#: build/serializers.py:469 +#: build/serializers.py:513 msgid "Reason for scrapping build output(s)" msgstr "" -#: build/serializers.py:529 +#: build/serializers.py:573 msgid "Location for completed build outputs" msgstr "" -#: build/serializers.py:535 build/templates/build/build_base.html:159 -#: build/templates/build/detail.html:62 order/models.py:476 -#: order/models.py:1002 order/models.py:2159 order/serializers.py:686 -#: stock/admin.py:164 stock/serializers.py:1028 stock/serializers.py:1569 -#: stock/templates/stock/item_base.html:427 -#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2363 -#: templates/js/translated/purchase_order.js:1371 -#: templates/js/translated/purchase_order.js:1792 +#: build/serializers.py:579 build/templates/build/build_base.html:160 +#: build/templates/build/detail.html:62 order/models.py:488 +#: order/models.py:1029 order/models.py:2198 order/serializers.py:771 +#: stock/admin.py:165 stock/serializers.py:581 stock/serializers.py:1059 +#: stock/serializers.py:1600 stock/templates/stock/item_base.html:424 +#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2366 +#: templates/js/translated/purchase_order.js:1354 +#: templates/js/translated/purchase_order.js:1776 #: templates/js/translated/return_order.js:330 -#: templates/js/translated/sales_order.js:855 -#: templates/js/translated/stock.js:2261 templates/js/translated/stock.js:3079 -#: templates/js/translated/stock.js:3204 +#: templates/js/translated/sales_order.js:814 +#: templates/js/translated/stock.js:2262 templates/js/translated/stock.js:3080 +#: templates/js/translated/stock.js:3205 msgid "Status" msgstr "" -#: build/serializers.py:541 +#: build/serializers.py:585 msgid "Accept Incomplete Allocation" msgstr "" -#: build/serializers.py:542 +#: build/serializers.py:586 msgid "Complete outputs if stock has not been fully allocated" msgstr "" -#: build/serializers.py:654 +#: build/serializers.py:698 msgid "Consume Allocated Stock" msgstr "" -#: build/serializers.py:655 +#: build/serializers.py:699 msgid "Consume any stock which has already been allocated to this build" msgstr "" -#: build/serializers.py:661 +#: build/serializers.py:705 msgid "Remove Incomplete Outputs" msgstr "" -#: build/serializers.py:662 +#: build/serializers.py:706 msgid "Delete any build outputs which have not been completed" msgstr "" -#: build/serializers.py:689 +#: build/serializers.py:733 msgid "Not permitted" msgstr "" -#: build/serializers.py:690 +#: build/serializers.py:734 msgid "Accept as consumed by this build order" msgstr "" -#: build/serializers.py:691 +#: build/serializers.py:735 msgid "Deallocate before completing this build order" msgstr "" -#: build/serializers.py:721 +#: build/serializers.py:765 msgid "Overallocated Stock" msgstr "" -#: build/serializers.py:723 +#: build/serializers.py:767 msgid "How do you want to handle extra stock items assigned to the build order" msgstr "" -#: build/serializers.py:733 +#: build/serializers.py:777 msgid "Some stock items have been overallocated" msgstr "" -#: build/serializers.py:738 +#: build/serializers.py:782 msgid "Accept Unallocated" msgstr "" -#: build/serializers.py:739 +#: build/serializers.py:783 msgid "Accept that stock items have not been fully allocated to this build order" msgstr "" -#: build/serializers.py:749 templates/js/translated/build.js:316 +#: build/serializers.py:793 templates/js/translated/build.js:319 msgid "Required stock has not been fully allocated" msgstr "" -#: build/serializers.py:754 order/serializers.py:345 order/serializers.py:1365 +#: build/serializers.py:798 order/serializers.py:430 order/serializers.py:1491 msgid "Accept Incomplete" msgstr "" -#: build/serializers.py:755 +#: build/serializers.py:799 msgid "Accept that the required number of build outputs have not been completed" msgstr "" -#: build/serializers.py:765 templates/js/translated/build.js:320 +#: build/serializers.py:809 templates/js/translated/build.js:323 msgid "Required build quantity has not been completed" msgstr "" -#: build/serializers.py:774 +#: build/serializers.py:818 msgid "Build order has open child build orders" msgstr "" -#: build/serializers.py:777 +#: build/serializers.py:821 msgid "Build order must be in production state" msgstr "" -#: build/serializers.py:780 templates/js/translated/build.js:304 +#: build/serializers.py:824 templates/js/translated/build.js:307 msgid "Build order has incomplete outputs" msgstr "" -#: build/serializers.py:818 +#: build/serializers.py:862 msgid "Build Line" msgstr "" -#: build/serializers.py:828 +#: build/serializers.py:872 msgid "Build output" msgstr "" -#: build/serializers.py:836 +#: build/serializers.py:880 msgid "Build output must point to the same build" msgstr "" -#: build/serializers.py:872 +#: build/serializers.py:916 msgid "Build Line Item" msgstr "" -#: build/serializers.py:886 +#: build/serializers.py:930 msgid "bom_item.part must point to the same part as the build order" msgstr "" -#: build/serializers.py:901 stock/serializers.py:1294 +#: build/serializers.py:945 stock/serializers.py:1325 msgid "Item must be in stock" msgstr "" -#: build/serializers.py:949 order/serializers.py:1351 +#: build/serializers.py:993 order/serializers.py:1477 #, python-brace-format msgid "Available quantity ({q}) exceeded" msgstr "" -#: build/serializers.py:955 +#: build/serializers.py:999 msgid "Build output must be specified for allocation of tracked parts" msgstr "" -#: build/serializers.py:962 +#: build/serializers.py:1006 msgid "Build output cannot be specified for allocation of untracked parts" msgstr "" -#: build/serializers.py:986 order/serializers.py:1610 +#: build/serializers.py:1030 order/serializers.py:1750 msgid "Allocation items must be provided" msgstr "" -#: build/serializers.py:1049 +#: build/serializers.py:1093 msgid "Stock location where parts are to be sourced (leave blank to take from any location)" msgstr "" -#: build/serializers.py:1057 +#: build/serializers.py:1101 msgid "Exclude Location" msgstr "" -#: build/serializers.py:1058 +#: build/serializers.py:1102 msgid "Exclude stock items from this selected location" msgstr "" -#: build/serializers.py:1063 +#: build/serializers.py:1107 msgid "Interchangeable Stock" msgstr "" -#: build/serializers.py:1064 +#: build/serializers.py:1108 msgid "Stock items in multiple locations can be used interchangeably" msgstr "" -#: build/serializers.py:1069 +#: build/serializers.py:1113 msgid "Substitute Stock" msgstr "" -#: build/serializers.py:1070 +#: build/serializers.py:1114 msgid "Allow allocation of substitute parts" msgstr "" -#: build/serializers.py:1075 +#: build/serializers.py:1119 msgid "Optional Items" msgstr "" -#: build/serializers.py:1076 +#: build/serializers.py:1120 msgid "Allocate optional BOM items to build order" msgstr "" -#: build/serializers.py:1098 +#: build/serializers.py:1143 msgid "Failed to start auto-allocation task" msgstr "" -#: build/serializers.py:1181 +#: build/serializers.py:1226 stock/serializers.py:585 msgid "Supplier Part Number" msgstr "" -#: build/serializers.py:1182 company/models.py:506 +#: build/serializers.py:1227 company/models.py:503 stock/serializers.py:591 msgid "Manufacturer Part Number" msgstr "" -#: build/serializers.py:1183 stock/admin.py:53 stock/admin.py:175 -#: stock/serializers.py:457 +#: build/serializers.py:1228 stock/admin.py:53 stock/admin.py:176 +#: stock/serializers.py:467 msgid "Location Name" msgstr "" -#: build/serializers.py:1184 +#: build/serializers.py:1229 build/serializers.py:1327 msgid "Build Reference" msgstr "" -#: build/serializers.py:1185 +#: build/serializers.py:1230 msgid "BOM Reference" msgstr "" -#: build/serializers.py:1186 company/models.py:852 -#: company/templates/company/supplier_part.html:160 order/serializers.py:690 -#: stock/admin.py:228 stock/models.py:818 stock/serializers.py:1579 -#: stock/templates/stock/item_base.html:240 -#: templates/js/translated/company.js:1646 -#: templates/js/translated/purchase_order.js:1169 -#: templates/js/translated/purchase_order.js:1332 +#: build/serializers.py:1231 company/models.py:849 +#: company/templates/company/supplier_part.html:161 order/serializers.py:775 +#: stock/admin.py:229 stock/models.py:895 stock/serializers.py:1610 +#: stock/templates/stock/item_base.html:237 +#: templates/js/translated/company.js:1647 +#: templates/js/translated/purchase_order.js:1152 +#: templates/js/translated/purchase_order.js:1315 #: templates/js/translated/stock.js:1214 templates/js/translated/stock.js:1246 -#: templates/js/translated/stock.js:2509 +#: templates/js/translated/stock.js:2510 msgid "Packaging" msgstr "" -#: build/serializers.py:1189 part/admin.py:39 part/admin.py:398 -#: part/models.py:4101 part/stocktake.py:218 stock/admin.py:152 +#: build/serializers.py:1234 part/admin.py:39 part/admin.py:398 +#: part/models.py:4159 part/stocktake.py:218 stock/admin.py:153 msgid "Part ID" msgstr "" -#: build/serializers.py:1191 build/serializers.py:1280 part/admin.py:402 -#: part/models.py:4103 +#: build/serializers.py:1236 build/serializers.py:1332 part/admin.py:402 +#: part/models.py:4161 msgid "Part IPN" msgstr "" -#: build/serializers.py:1192 build/serializers.py:1282 part/admin.py:45 +#: build/serializers.py:1237 build/serializers.py:1334 part/admin.py:45 #: part/stocktake.py:220 msgid "Part Description" msgstr "" -#: build/serializers.py:1195 +#: build/serializers.py:1240 msgid "BOM Part ID" msgstr "" -#: build/serializers.py:1196 +#: build/serializers.py:1241 msgid "BOM Part Name" msgstr "" -#: build/serializers.py:1199 +#: build/serializers.py:1244 #: report/templates/report/inventree_return_order_report.html:25 -#: report/templates/report/inventree_test_report.html:88 stock/models.py:845 -#: stock/serializers.py:151 stock/templates/stock/item_base.html:311 -#: templates/js/translated/build.js:520 templates/js/translated/build.js:1540 -#: templates/js/translated/build.js:2527 -#: templates/js/translated/model_renderers.js:231 +#: report/templates/report/inventree_sales_order_shipment_report.html:45 +#: report/templates/report/inventree_test_report.html:88 stock/models.py:922 +#: stock/serializers.py:152 stock/templates/stock/item_base.html:308 +#: templates/js/translated/build.js:523 templates/js/translated/build.js:1543 +#: templates/js/translated/build.js:2534 +#: templates/js/translated/model_renderers.js:234 #: templates/js/translated/return_order.js:539 #: templates/js/translated/return_order.js:722 -#: templates/js/translated/sales_order.js:315 -#: templates/js/translated/sales_order.js:1647 -#: templates/js/translated/sales_order.js:1732 +#: templates/js/translated/sales_order.js:1628 +#: templates/js/translated/sales_order.js:1713 #: templates/js/translated/stock.js:602 msgid "Serial Number" msgstr "" -#: build/serializers.py:1212 stock/serializers.py:593 -#: templates/js/translated/build.js:1017 templates/js/translated/build.js:1164 -#: templates/js/translated/build.js:2516 +#: build/serializers.py:1257 stock/serializers.py:620 +#: templates/js/translated/build.js:1020 templates/js/translated/build.js:1167 +#: templates/js/translated/build.js:2523 msgid "Allocated Quantity" msgstr "" -#: build/serializers.py:1213 stock/templates/stock/item_base.html:340 +#: build/serializers.py:1258 stock/templates/stock/item_base.html:337 msgid "Available Quantity" msgstr "" -#: build/serializers.py:1283 +#: build/serializers.py:1335 msgid "Part Category ID" msgstr "" -#: build/serializers.py:1284 +#: build/serializers.py:1336 msgid "Part Category Name" msgstr "" -#: build/serializers.py:1291 common/models.py:1513 part/admin.py:113 -#: part/models.py:1166 templates/js/translated/table_filters.js:150 +#: build/serializers.py:1345 common/models.py:1582 part/admin.py:113 +#: part/models.py:1227 templates/js/translated/build.js:2738 +#: templates/js/translated/table_filters.js:150 #: templates/js/translated/table_filters.js:230 #: templates/js/translated/table_filters.js:783 msgid "Trackable" msgstr "" -#: build/serializers.py:1292 +#: build/serializers.py:1346 msgid "Inherited" msgstr "" -#: build/serializers.py:1293 part/models.py:4313 +#: build/serializers.py:1347 part/models.py:4370 #: part/templates/part/upload_bom.html:56 templates/js/translated/bom.js:1046 -#: templates/js/translated/build.js:2711 +#: templates/js/translated/build.js:2720 msgid "Allow Variants" msgstr "" -#: build/serializers.py:1297 part/models.py:4110 part/models.py:4584 +#: build/serializers.py:1351 part/models.py:4168 part/models.py:4646 #: stock/api.py:794 msgid "BOM Item" msgstr "" -#: build/serializers.py:1306 build/templates/build/detail.html:236 +#: build/serializers.py:1370 build/templates/build/detail.html:236 #: build/templates/build/sidebar.html:16 templates/js/translated/index.js:130 msgid "Allocated Stock" msgstr "" -#: build/serializers.py:1311 order/serializers.py:1175 part/admin.py:132 -#: part/bom.py:181 part/serializers.py:899 part/serializers.py:1602 -#: part/templates/part/part_base.html:210 templates/js/translated/bom.js:1208 -#: templates/js/translated/build.js:2804 templates/js/translated/part.js:712 +#: build/serializers.py:1375 order/serializers.py:1209 part/admin.py:132 +#: part/bom.py:186 part/serializers.py:951 part/serializers.py:1660 +#: part/templates/part/part_base.html:211 templates/js/translated/bom.js:1208 +#: templates/js/translated/build.js:2822 templates/js/translated/part.js:712 #: templates/js/translated/part.js:2155 #: templates/js/translated/table_filters.js:177 msgid "On Order" msgstr "" -#: build/serializers.py:1316 order/serializers.py:1176 part/serializers.py:1604 -#: templates/js/translated/build.js:2808 +#: build/serializers.py:1380 order/serializers.py:1210 part/serializers.py:1662 +#: templates/js/translated/build.js:2826 #: templates/js/translated/table_filters.js:367 msgid "In Production" msgstr "" -#: build/serializers.py:1321 part/bom.py:180 part/serializers.py:1629 -#: part/templates/part/part_base.html:192 -#: templates/js/translated/sales_order.js:1929 -msgid "Available Stock" -msgstr "" - -#: build/serializers.py:1325 -msgid "Available Substitute Stock" -msgstr "" - -#: build/serializers.py:1326 -msgid "Available Variant Stock" -msgstr "" - -#: build/serializers.py:1327 -msgid "Total Available Stock" -msgstr "" - -#: build/serializers.py:1328 part/serializers.py:906 +#: build/serializers.py:1384 part/serializers.py:958 msgid "External Stock" msgstr "" -#: build/status_codes.py:11 generic/states/tests.py:17 order/status_codes.py:12 -#: order/status_codes.py:42 order/status_codes.py:74 order/status_codes.py:98 +#: build/serializers.py:1385 part/bom.py:185 part/serializers.py:1687 +#: part/templates/part/part_base.html:193 +#: templates/js/translated/sales_order.js:1910 +msgid "Available Stock" +msgstr "" + +#: build/serializers.py:1386 +msgid "Available Substitute Stock" +msgstr "" + +#: build/serializers.py:1387 +msgid "Available Variant Stock" +msgstr "" + +#: build/status_codes.py:11 generic/states/tests.py:21 +#: generic/states/tests.py:131 order/status_codes.py:12 +#: order/status_codes.py:44 order/status_codes.py:76 order/status_codes.py:102 #: templates/js/translated/table_filters.js:601 msgid "Pending" msgstr "" @@ -1722,21 +1750,21 @@ msgstr "" msgid "Production" msgstr "" -#: build/status_codes.py:13 order/status_codes.py:14 order/status_codes.py:49 -#: order/status_codes.py:79 +#: build/status_codes.py:13 order/status_codes.py:14 order/status_codes.py:51 +#: order/status_codes.py:81 msgid "On Hold" msgstr "" -#: build/status_codes.py:14 order/status_codes.py:16 order/status_codes.py:51 -#: order/status_codes.py:82 +#: build/status_codes.py:14 order/status_codes.py:16 order/status_codes.py:53 +#: order/status_codes.py:84 msgid "Cancelled" msgstr "" -#: build/status_codes.py:15 generic/states/tests.py:19 importer/models.py:509 -#: importer/status_codes.py:19 order/status_codes.py:15 -#: order/status_codes.py:50 order/status_codes.py:81 -#: order/templates/order/order_base.html:163 -#: order/templates/order/sales_order_base.html:168 report/models.py:443 +#: build/status_codes.py:15 generic/states/tests.py:23 importer/models.py:518 +#: importer/status_codes.py:27 order/status_codes.py:15 +#: order/status_codes.py:52 order/status_codes.py:83 +#: order/templates/order/order_base.html:172 +#: order/templates/order/sales_order_base.html:169 report/models.py:451 msgid "Complete" msgstr "" @@ -1744,165 +1772,162 @@ msgstr "" msgid "Stock required for build order" msgstr "" -#: build/tasks.py:201 +#: build/tasks.py:260 msgid "Overdue Build Order" msgstr "" -#: build/tasks.py:206 +#: build/tasks.py:265 #, python-brace-format msgid "Build order {bo} is now overdue" msgstr "" -#: build/templates/build/build_base.html:18 +#: build/templates/build/build_base.html:19 msgid "Part thumbnail" msgstr "" -#: build/templates/build/build_base.html:38 -#: company/templates/company/supplier_part.html:35 -#: order/templates/order/order_base.html:29 -#: order/templates/order/return_order_base.html:38 -#: order/templates/order/sales_order_base.html:38 -#: part/templates/part/part_base.html:41 -#: stock/templates/stock/item_base.html:40 -#: stock/templates/stock/location.html:52 +#: build/templates/build/build_base.html:39 +#: company/templates/company/supplier_part.html:36 +#: order/templates/order/order_base.html:30 +#: order/templates/order/return_order_base.html:39 +#: order/templates/order/sales_order_base.html:39 +#: part/templates/part/part_base.html:42 +#: stock/templates/stock/item_base.html:41 +#: stock/templates/stock/location.html:53 #: templates/js/translated/filters.js:338 msgid "Barcode actions" msgstr "" -#: build/templates/build/build_base.html:42 -#: company/templates/company/supplier_part.html:39 -#: order/templates/order/order_base.html:33 -#: order/templates/order/return_order_base.html:42 -#: order/templates/order/sales_order_base.html:42 -#: part/templates/part/part_base.html:44 -#: stock/templates/stock/item_base.html:44 -#: stock/templates/stock/location.html:54 templates/qr_button.html:1 +#: build/templates/build/build_base.html:43 +#: company/templates/company/supplier_part.html:40 +#: order/templates/order/order_base.html:34 +#: order/templates/order/return_order_base.html:43 +#: order/templates/order/sales_order_base.html:43 +#: part/templates/part/part_base.html:45 +#: stock/templates/stock/item_base.html:45 +#: stock/templates/stock/location.html:55 templates/qr_button.html:1 msgid "Show QR Code" msgstr "" -#: build/templates/build/build_base.html:45 -#: company/templates/company/supplier_part.html:41 -#: order/templates/order/order_base.html:36 -#: order/templates/order/return_order_base.html:45 -#: order/templates/order/sales_order_base.html:45 -#: part/templates/part/part_base.html:47 -#: stock/templates/stock/item_base.html:47 -#: stock/templates/stock/location.html:56 +#: build/templates/build/build_base.html:46 +#: company/templates/company/supplier_part.html:42 +#: order/templates/order/order_base.html:37 +#: order/templates/order/return_order_base.html:46 +#: order/templates/order/sales_order_base.html:46 +#: part/templates/part/part_base.html:48 +#: stock/templates/stock/item_base.html:48 +#: stock/templates/stock/location.html:57 #: templates/js/translated/barcode.js:527 #: templates/js/translated/barcode.js:532 msgid "Unlink Barcode" msgstr "" -#: build/templates/build/build_base.html:47 -#: company/templates/company/supplier_part.html:43 -#: order/templates/order/order_base.html:38 -#: order/templates/order/return_order_base.html:47 -#: order/templates/order/sales_order_base.html:47 -#: part/templates/part/part_base.html:49 -#: stock/templates/stock/item_base.html:49 -#: stock/templates/stock/location.html:58 +#: build/templates/build/build_base.html:48 +#: company/templates/company/supplier_part.html:44 +#: order/templates/order/order_base.html:39 +#: order/templates/order/return_order_base.html:48 +#: order/templates/order/sales_order_base.html:48 +#: part/templates/part/part_base.html:50 +#: stock/templates/stock/item_base.html:50 +#: stock/templates/stock/location.html:59 msgid "Link Barcode" msgstr "" -#: build/templates/build/build_base.html:56 -#: order/templates/order/order_base.html:46 -#: order/templates/order/return_order_base.html:55 -#: order/templates/order/sales_order_base.html:55 +#: build/templates/build/build_base.html:57 +#: order/templates/order/order_base.html:47 +#: order/templates/order/return_order_base.html:56 +#: order/templates/order/sales_order_base.html:56 msgid "Print actions" msgstr "" -#: build/templates/build/build_base.html:60 +#: build/templates/build/build_base.html:61 msgid "Print build order report" msgstr "" -#: build/templates/build/build_base.html:67 +#: build/templates/build/build_base.html:68 msgid "Build actions" msgstr "" -#: build/templates/build/build_base.html:71 +#: build/templates/build/build_base.html:72 msgid "Edit Build" msgstr "" -#: build/templates/build/build_base.html:73 +#: build/templates/build/build_base.html:74 msgid "Duplicate Build" msgstr "" -#: build/templates/build/build_base.html:76 +#: build/templates/build/build_base.html:77 msgid "Hold Build" msgstr "" -#: build/templates/build/build_base.html:79 +#: build/templates/build/build_base.html:80 msgid "Cancel Build" msgstr "" -#: build/templates/build/build_base.html:82 +#: build/templates/build/build_base.html:83 msgid "Delete Build" msgstr "" -#: build/templates/build/build_base.html:87 -msgid "Isueue Build" -msgstr "" - #: build/templates/build/build_base.html:88 +#: build/templates/build/build_base.html:89 msgid "Issue Build" msgstr "" -#: build/templates/build/build_base.html:91 #: build/templates/build/build_base.html:92 +#: build/templates/build/build_base.html:93 msgid "Complete Build" msgstr "" -#: build/templates/build/build_base.html:115 +#: build/templates/build/build_base.html:116 msgid "Build Description" msgstr "" -#: build/templates/build/build_base.html:125 +#: build/templates/build/build_base.html:126 msgid "No build outputs have been created for this build order" msgstr "" -#: build/templates/build/build_base.html:132 +#: build/templates/build/build_base.html:133 msgid "Build Order is ready to mark as completed" msgstr "" -#: build/templates/build/build_base.html:137 +#: build/templates/build/build_base.html:138 msgid "Build Order cannot be completed as outstanding outputs remain" msgstr "" -#: build/templates/build/build_base.html:142 +#: build/templates/build/build_base.html:143 msgid "Required build quantity has not yet been completed" msgstr "" -#: build/templates/build/build_base.html:147 +#: build/templates/build/build_base.html:148 msgid "Stock has not been fully allocated to this Build Order" msgstr "" -#: build/templates/build/build_base.html:168 -#: build/templates/build/detail.html:138 order/models.py:308 -#: order/models.py:1391 order/serializers.py:174 -#: order/templates/order/order_base.html:191 -#: order/templates/order/return_order_base.html:167 -#: order/templates/order/sales_order_base.html:199 +#: build/templates/build/build_base.html:169 +#: build/templates/build/detail.html:138 order/models.py:315 +#: order/models.py:1408 order/serializers.py:254 +#: order/templates/order/order_base.html:200 +#: order/templates/order/return_order_base.html:168 +#: order/templates/order/sales_order_base.html:200 #: report/templates/report/inventree_build_order_report.html:125 -#: templates/js/translated/build.js:2411 templates/js/translated/part.js:1837 -#: templates/js/translated/purchase_order.js:1809 -#: templates/js/translated/purchase_order.js:2217 +#: templates/js/translated/build.js:2414 templates/js/translated/part.js:1837 +#: templates/js/translated/purchase_order.js:1793 +#: templates/js/translated/purchase_order.js:2201 #: templates/js/translated/return_order.js:346 #: templates/js/translated/return_order.js:749 -#: templates/js/translated/sales_order.js:871 -#: templates/js/translated/sales_order.js:1903 +#: templates/js/translated/sales_order.js:830 +#: templates/js/translated/sales_order.js:1884 msgid "Target Date" msgstr "" -#: build/templates/build/build_base.html:173 +#: build/templates/build/build_base.html:174 #, python-format msgid "This build was due on %(target)s" msgstr "" -#: build/templates/build/build_base.html:173 -#: build/templates/build/build_base.html:230 -#: order/templates/order/order_base.html:127 -#: order/templates/order/return_order_base.html:120 -#: order/templates/order/sales_order_base.html:129 +#: build/templates/build/build_base.html:174 +#: build/templates/build/build_base.html:231 +#: order/templates/order/order_base.html:128 +#: order/templates/order/return_order_base.html:121 +#: order/templates/order/sales_order_base.html:130 #: templates/js/translated/table_filters.js:97 #: templates/js/translated/table_filters.js:545 #: templates/js/translated/table_filters.js:629 @@ -1910,49 +1935,50 @@ msgstr "" msgid "Overdue" msgstr "" -#: build/templates/build/build_base.html:185 +#: build/templates/build/build_base.html:186 #: build/templates/build/detail.html:67 build/templates/build/sidebar.html:13 msgid "Completed Outputs" msgstr "" -#: build/templates/build/build_base.html:198 -#: build/templates/build/detail.html:101 order/api.py:1406 order/models.py:892 -#: order/models.py:1650 order/models.py:1765 order/models.py:1924 -#: order/templates/order/sales_order_base.html:9 -#: order/templates/order/sales_order_base.html:28 +#: build/templates/build/build_base.html:199 +#: build/templates/build/detail.html:101 order/api.py:1528 order/models.py:914 +#: order/models.py:1666 order/models.py:1794 order/models.py:1957 +#: order/templates/order/sales_order_base.html:10 +#: order/templates/order/sales_order_base.html:29 #: report/templates/report/inventree_build_order_report.html:135 #: report/templates/report/inventree_sales_order_report.html:14 -#: stock/templates/stock/item_base.html:369 +#: report/templates/report/inventree_sales_order_shipment_report.html:15 +#: stock/templates/stock/item_base.html:366 #: templates/email/overdue_sales_order.html:15 -#: templates/js/translated/pricing.js:929 -#: templates/js/translated/sales_order.js:805 -#: templates/js/translated/sales_order.js:1028 -#: templates/js/translated/stock.js:3008 +#: templates/js/translated/pricing.js:927 +#: templates/js/translated/sales_order.js:764 +#: templates/js/translated/sales_order.js:1001 +#: templates/js/translated/stock.js:3009 msgid "Sales Order" msgstr "" -#: build/templates/build/build_base.html:219 -#: build/templates/build/detail.html:94 templates/js/translated/build.js:2328 +#: build/templates/build/build_base.html:220 +#: build/templates/build/detail.html:94 templates/js/translated/build.js:2331 msgid "Priority" msgstr "" -#: build/templates/build/build_base.html:267 +#: build/templates/build/build_base.html:268 msgid "Issue Build Order" msgstr "" -#: build/templates/build/build_base.html:271 +#: build/templates/build/build_base.html:272 msgid "Issue this Build Order?" msgstr "" -#: build/templates/build/build_base.html:302 +#: build/templates/build/build_base.html:303 msgid "Delete Build Order" msgstr "" -#: build/templates/build/build_base.html:312 +#: build/templates/build/build_base.html:313 msgid "Build Order QR Code" msgstr "" -#: build/templates/build/build_base.html:324 +#: build/templates/build/build_base.html:325 msgid "Link Barcode to Build Order" msgstr "" @@ -1968,8 +1994,9 @@ msgstr "" msgid "Stock can be taken from any available location." msgstr "" -#: build/templates/build/detail.html:49 order/models.py:1532 -#: templates/js/translated/purchase_order.js:2259 +#: build/templates/build/detail.html:49 order/models.py:548 +#: order/models.py:1548 order/templates/order/order_base.html:135 +#: templates/js/translated/purchase_order.js:2243 msgid "Destination" msgstr "" @@ -1981,23 +2008,24 @@ msgstr "" msgid "Allocated Parts" msgstr "" -#: build/templates/build/detail.html:80 stock/admin.py:162 -#: stock/templates/stock/item_base.html:162 -#: templates/js/translated/build.js:1553 -#: templates/js/translated/model_renderers.js:242 -#: templates/js/translated/purchase_order.js:1326 +#: build/templates/build/detail.html:80 +#: report/templates/report/inventree_sales_order_shipment_report.html:47 +#: stock/admin.py:163 stock/templates/stock/item_base.html:159 +#: templates/js/translated/build.js:1556 +#: templates/js/translated/model_renderers.js:245 +#: templates/js/translated/purchase_order.js:1309 #: templates/js/translated/stock.js:1139 templates/js/translated/stock.js:1240 -#: templates/js/translated/stock.js:2275 templates/js/translated/stock.js:3211 +#: templates/js/translated/stock.js:2276 templates/js/translated/stock.js:3212 #: templates/js/translated/table_filters.js:320 #: templates/js/translated/table_filters.js:411 msgid "Batch" msgstr "" #: build/templates/build/detail.html:133 -#: order/templates/order/order_base.html:178 -#: order/templates/order/return_order_base.html:154 -#: order/templates/order/sales_order_base.html:193 -#: templates/js/translated/build.js:2371 +#: order/templates/order/order_base.html:187 +#: order/templates/order/return_order_base.html:155 +#: order/templates/order/sales_order_base.html:194 +#: templates/js/translated/build.js:2374 msgid "Created" msgstr "" @@ -2005,8 +2033,8 @@ msgstr "" msgid "No target date set" msgstr "" -#: build/templates/build/detail.html:149 -#: order/templates/order/sales_order_base.html:209 +#: build/templates/build/detail.html:149 order/api.py:794 +#: order/templates/order/sales_order_base.html:210 #: templates/js/translated/table_filters.js:692 msgid "Completed" msgstr "" @@ -2052,7 +2080,7 @@ msgid "Order required parts" msgstr "" #: build/templates/build/detail.html:192 -#: templates/js/translated/purchase_order.js:795 +#: templates/js/translated/purchase_order.js:778 msgid "Order Parts" msgstr "" @@ -2120,7 +2148,7 @@ msgstr "" msgid "Build Order Details" msgstr "" -#: build/templates/build/sidebar.html:8 order/serializers.py:82 +#: build/templates/build/sidebar.html:8 order/serializers.py:113 #: order/templates/order/po_sidebar.html:5 #: order/templates/order/return_order_detail.html:18 #: order/templates/order/so_sidebar.html:5 @@ -2139,43 +2167,38 @@ msgstr "" msgid "Test Statistics" msgstr "" -#: common/api.py:693 +#: common/api.py:725 msgid "Is Link" msgstr "" -#: common/api.py:701 +#: common/api.py:733 msgid "Is File" msgstr "" -#: common/api.py:744 +#: common/api.py:776 msgid "User does not have permission to delete these attachments" msgstr "" -#: common/api.py:761 +#: common/api.py:793 msgid "User does not have permission to delete this attachment" msgstr "" -#: common/currency.py:132 +#: common/currency.py:134 msgid "Invalid currency code" msgstr "" -#: common/currency.py:134 +#: common/currency.py:136 msgid "Duplicate currency code" msgstr "" -#: common/currency.py:139 +#: common/currency.py:141 msgid "No valid currency codes provided" msgstr "" -#: common/currency.py:156 +#: common/currency.py:158 msgid "No plugin" msgstr "" -#: common/files.py:63 -#, python-brace-format -msgid "Unsupported file format: {fmt}" -msgstr "" - #: common/files.py:65 msgid "Error reading file (invalid encoding)" msgstr "" @@ -2192,1883 +2215,2039 @@ msgstr "" msgid "Error reading file (data could be corrupted)" msgstr "" -#: common/forms.py:12 +#: common/forms.py:12 common/forms.py:25 msgid "File" msgstr "" -#: common/forms.py:12 +#: common/forms.py:12 common/forms.py:26 msgid "Select file to upload" msgstr "" -#: common/forms.py:25 -msgid "{name.title()} File" -msgstr "" - -#: common/forms.py:26 -#, python-brace-format -msgid "Select {name} file to upload" -msgstr "" - -#: common/models.py:86 +#: common/models.py:89 msgid "Updated" msgstr "" -#: common/models.py:87 +#: common/models.py:90 msgid "Timestamp of last update" msgstr "" -#: common/models.py:120 +#: common/models.py:123 msgid "Site URL is locked by configuration" msgstr "" -#: common/models.py:150 +#: common/models.py:153 msgid "Unique project code" msgstr "" -#: common/models.py:157 +#: common/models.py:160 msgid "Project description" msgstr "" -#: common/models.py:166 +#: common/models.py:169 msgid "User or group responsible for this project" msgstr "" -#: common/models.py:783 -msgid "Settings key (must be unique - case insensitive)" +#: common/models.py:783 common/models.py:2236 common/models.py:2613 +msgid "Settings key" msgstr "" #: common/models.py:787 msgid "Settings value" msgstr "" -#: common/models.py:839 +#: common/models.py:842 msgid "Chosen value is not a valid option" msgstr "" -#: common/models.py:855 +#: common/models.py:858 msgid "Value must be a boolean value" msgstr "" -#: common/models.py:863 +#: common/models.py:866 msgid "Value must be an integer value" msgstr "" -#: common/models.py:900 +#: common/models.py:874 +msgid "Value must be a valid number" +msgstr "" + +#: common/models.py:899 +msgid "Value does not pass validation checks" +msgstr "" + +#: common/models.py:921 msgid "Key string must be unique" msgstr "" -#: common/models.py:1132 +#: common/models.py:1189 msgid "No group" msgstr "" -#: common/models.py:1231 +#: common/models.py:1288 msgid "Restart required" msgstr "" -#: common/models.py:1233 +#: common/models.py:1290 msgid "A setting has been changed which requires a server restart" msgstr "" -#: common/models.py:1240 +#: common/models.py:1297 msgid "Pending migrations" msgstr "" -#: common/models.py:1241 +#: common/models.py:1298 msgid "Number of pending database migrations" msgstr "" -#: common/models.py:1246 +#: common/models.py:1303 msgid "Server Instance Name" msgstr "" -#: common/models.py:1248 +#: common/models.py:1305 msgid "String descriptor for the server instance" msgstr "" -#: common/models.py:1252 +#: common/models.py:1309 msgid "Use instance name" msgstr "" -#: common/models.py:1253 +#: common/models.py:1310 msgid "Use the instance name in the title-bar" msgstr "" -#: common/models.py:1258 +#: common/models.py:1315 msgid "Restrict showing `about`" msgstr "" -#: common/models.py:1259 +#: common/models.py:1316 msgid "Show the `about` modal only to superusers" msgstr "" -#: common/models.py:1264 company/models.py:111 company/models.py:112 +#: common/models.py:1321 company/models.py:108 company/models.py:109 msgid "Company name" msgstr "" -#: common/models.py:1265 +#: common/models.py:1322 msgid "Internal company name" msgstr "" -#: common/models.py:1269 +#: common/models.py:1326 msgid "Base URL" msgstr "" -#: common/models.py:1270 +#: common/models.py:1327 msgid "Base URL for server instance" msgstr "" -#: common/models.py:1276 +#: common/models.py:1333 msgid "Default Currency" msgstr "" -#: common/models.py:1277 +#: common/models.py:1334 msgid "Select base currency for pricing calculations" msgstr "" -#: common/models.py:1283 +#: common/models.py:1340 msgid "Supported Currencies" msgstr "" -#: common/models.py:1284 +#: common/models.py:1341 msgid "List of supported currency codes" msgstr "" -#: common/models.py:1290 +#: common/models.py:1347 msgid "Currency Update Interval" msgstr "" -#: common/models.py:1292 +#: common/models.py:1349 msgid "How often to update exchange rates (set to zero to disable)" msgstr "" -#: common/models.py:1295 common/models.py:1351 common/models.py:1364 -#: common/models.py:1372 common/models.py:1381 common/models.py:1390 -#: common/models.py:1627 common/models.py:1649 common/models.py:1764 -#: common/models.py:2146 +#: common/models.py:1352 common/models.py:1408 common/models.py:1421 +#: common/models.py:1429 common/models.py:1438 common/models.py:1447 +#: common/models.py:1696 common/models.py:1718 common/models.py:1819 +#: common/models.py:2208 msgid "days" msgstr "" -#: common/models.py:1299 +#: common/models.py:1356 msgid "Currency Update Plugin" msgstr "" -#: common/models.py:1300 +#: common/models.py:1357 msgid "Currency update plugin to use" msgstr "" -#: common/models.py:1305 +#: common/models.py:1362 msgid "Download from URL" msgstr "" -#: common/models.py:1307 +#: common/models.py:1364 msgid "Allow download of remote images and files from external URL" msgstr "" -#: common/models.py:1313 +#: common/models.py:1370 msgid "Download Size Limit" msgstr "" -#: common/models.py:1314 +#: common/models.py:1371 msgid "Maximum allowable download size for remote image" msgstr "" -#: common/models.py:1320 +#: common/models.py:1377 msgid "User-agent used to download from URL" msgstr "" -#: common/models.py:1322 +#: common/models.py:1379 msgid "Allow to override the user-agent used to download images and files from external URL (leave blank for the default)" msgstr "" -#: common/models.py:1327 +#: common/models.py:1384 msgid "Strict URL Validation" msgstr "" -#: common/models.py:1328 +#: common/models.py:1385 msgid "Require schema specification when validating URLs" msgstr "" -#: common/models.py:1333 +#: common/models.py:1390 msgid "Require confirm" msgstr "" -#: common/models.py:1334 +#: common/models.py:1391 msgid "Require explicit user confirmation for certain action." msgstr "" -#: common/models.py:1339 +#: common/models.py:1396 msgid "Tree Depth" msgstr "" -#: common/models.py:1341 +#: common/models.py:1398 msgid "Default tree depth for treeview. Deeper levels can be lazy loaded as they are needed." msgstr "" -#: common/models.py:1347 +#: common/models.py:1404 msgid "Update Check Interval" msgstr "" -#: common/models.py:1348 +#: common/models.py:1405 msgid "How often to check for updates (set to zero to disable)" msgstr "" -#: common/models.py:1354 +#: common/models.py:1411 msgid "Automatic Backup" msgstr "" -#: common/models.py:1355 +#: common/models.py:1412 msgid "Enable automatic backup of database and media files" msgstr "" -#: common/models.py:1360 +#: common/models.py:1417 msgid "Auto Backup Interval" msgstr "" -#: common/models.py:1361 +#: common/models.py:1418 msgid "Specify number of days between automated backup events" msgstr "" -#: common/models.py:1367 +#: common/models.py:1424 msgid "Task Deletion Interval" msgstr "" -#: common/models.py:1369 +#: common/models.py:1426 msgid "Background task results will be deleted after specified number of days" msgstr "" -#: common/models.py:1376 +#: common/models.py:1433 msgid "Error Log Deletion Interval" msgstr "" -#: common/models.py:1378 +#: common/models.py:1435 msgid "Error logs will be deleted after specified number of days" msgstr "" -#: common/models.py:1385 +#: common/models.py:1442 msgid "Notification Deletion Interval" msgstr "" -#: common/models.py:1387 +#: common/models.py:1444 msgid "User notifications will be deleted after specified number of days" msgstr "" -#: common/models.py:1394 templates/InvenTree/settings/sidebar.html:31 +#: common/models.py:1451 templates/InvenTree/settings/sidebar.html:31 msgid "Barcode Support" msgstr "" -#: common/models.py:1395 +#: common/models.py:1452 msgid "Enable barcode scanner support in the web interface" msgstr "" -#: common/models.py:1400 +#: common/models.py:1457 +msgid "Store Barcode Results" +msgstr "" + +#: common/models.py:1458 +msgid "Store barcode scan results in the database" +msgstr "" + +#: common/models.py:1463 +msgid "Barcode Scans Maximum Count" +msgstr "" + +#: common/models.py:1464 +msgid "Maximum number of barcode scan results to store" +msgstr "" + +#: common/models.py:1469 msgid "Barcode Input Delay" msgstr "" -#: common/models.py:1401 +#: common/models.py:1470 msgid "Barcode input processing delay time" msgstr "" -#: common/models.py:1407 +#: common/models.py:1476 msgid "Barcode Webcam Support" msgstr "" -#: common/models.py:1408 +#: common/models.py:1477 msgid "Allow barcode scanning via webcam in browser" msgstr "" -#: common/models.py:1413 +#: common/models.py:1482 msgid "Barcode Show Data" msgstr "" -#: common/models.py:1414 +#: common/models.py:1483 msgid "Display barcode data in browser as text" msgstr "" -#: common/models.py:1419 +#: common/models.py:1488 msgid "Barcode Generation Plugin" msgstr "" -#: common/models.py:1420 +#: common/models.py:1489 msgid "Plugin to use for internal barcode data generation" msgstr "" -#: common/models.py:1425 +#: common/models.py:1494 msgid "Part Revisions" msgstr "" -#: common/models.py:1426 +#: common/models.py:1495 msgid "Enable revision field for Part" msgstr "" -#: common/models.py:1431 +#: common/models.py:1500 msgid "Assembly Revision Only" msgstr "" -#: common/models.py:1432 +#: common/models.py:1501 msgid "Only allow revisions for assembly parts" msgstr "" -#: common/models.py:1437 +#: common/models.py:1506 msgid "Allow Deletion from Assembly" msgstr "" -#: common/models.py:1438 +#: common/models.py:1507 msgid "Allow deletion of parts which are used in an assembly" msgstr "" -#: common/models.py:1443 +#: common/models.py:1512 msgid "IPN Regex" msgstr "" -#: common/models.py:1444 +#: common/models.py:1513 msgid "Regular expression pattern for matching Part IPN" msgstr "" -#: common/models.py:1447 +#: common/models.py:1516 msgid "Allow Duplicate IPN" msgstr "" -#: common/models.py:1448 +#: common/models.py:1517 msgid "Allow multiple parts to share the same IPN" msgstr "" -#: common/models.py:1453 +#: common/models.py:1522 msgid "Allow Editing IPN" msgstr "" -#: common/models.py:1454 +#: common/models.py:1523 msgid "Allow changing the IPN value while editing a part" msgstr "" -#: common/models.py:1459 +#: common/models.py:1528 msgid "Copy Part BOM Data" msgstr "" -#: common/models.py:1460 +#: common/models.py:1529 msgid "Copy BOM data by default when duplicating a part" msgstr "" -#: common/models.py:1465 +#: common/models.py:1534 msgid "Copy Part Parameter Data" msgstr "" -#: common/models.py:1466 +#: common/models.py:1535 msgid "Copy parameter data by default when duplicating a part" msgstr "" -#: common/models.py:1471 +#: common/models.py:1540 msgid "Copy Part Test Data" msgstr "" -#: common/models.py:1472 +#: common/models.py:1541 msgid "Copy test data by default when duplicating a part" msgstr "" -#: common/models.py:1477 +#: common/models.py:1546 msgid "Copy Category Parameter Templates" msgstr "" -#: common/models.py:1478 +#: common/models.py:1547 msgid "Copy category parameter templates when creating a part" msgstr "" -#: common/models.py:1483 part/admin.py:108 part/models.py:3945 -#: report/models.py:293 report/models.py:360 report/serializers.py:90 -#: report/serializers.py:131 stock/serializers.py:232 +#: common/models.py:1552 part/admin.py:108 part/models.py:4003 +#: report/models.py:301 report/models.py:368 report/serializers.py:91 +#: report/serializers.py:132 stock/serializers.py:233 #: templates/js/translated/table_filters.js:138 #: templates/js/translated/table_filters.js:775 msgid "Template" msgstr "" -#: common/models.py:1484 +#: common/models.py:1553 msgid "Parts are templates by default" msgstr "" -#: common/models.py:1490 +#: common/models.py:1559 msgid "Parts can be assembled from other components by default" msgstr "" -#: common/models.py:1495 part/admin.py:95 part/models.py:1160 -#: part/serializers.py:1596 templates/js/translated/table_filters.js:737 +#: common/models.py:1564 part/admin.py:95 part/models.py:1221 +#: part/serializers.py:1654 templates/js/translated/table_filters.js:737 msgid "Component" msgstr "" -#: common/models.py:1496 +#: common/models.py:1565 msgid "Parts can be used as sub-components by default" msgstr "" -#: common/models.py:1501 part/admin.py:100 part/models.py:1178 +#: common/models.py:1570 part/admin.py:100 part/models.py:1239 msgid "Purchaseable" msgstr "" -#: common/models.py:1502 +#: common/models.py:1571 msgid "Parts are purchaseable by default" msgstr "" -#: common/models.py:1507 part/admin.py:104 part/models.py:1184 +#: common/models.py:1576 part/admin.py:104 part/models.py:1245 #: templates/js/translated/table_filters.js:763 msgid "Salable" msgstr "" -#: common/models.py:1508 +#: common/models.py:1577 msgid "Parts are salable by default" msgstr "" -#: common/models.py:1514 +#: common/models.py:1583 msgid "Parts are trackable by default" msgstr "" -#: common/models.py:1519 part/admin.py:117 part/models.py:1200 -#: part/templates/part/part_base.html:154 +#: common/models.py:1588 part/admin.py:117 part/models.py:1261 +#: part/templates/part/part_base.html:155 #: templates/js/translated/table_filters.js:142 #: templates/js/translated/table_filters.js:787 msgid "Virtual" msgstr "" -#: common/models.py:1520 +#: common/models.py:1589 msgid "Parts are virtual by default" msgstr "" -#: common/models.py:1525 +#: common/models.py:1594 msgid "Show Import in Views" msgstr "" -#: common/models.py:1526 +#: common/models.py:1595 msgid "Display the import wizard in some part views" msgstr "" -#: common/models.py:1531 +#: common/models.py:1600 msgid "Show related parts" msgstr "" -#: common/models.py:1532 +#: common/models.py:1601 msgid "Display related parts for a part" msgstr "" -#: common/models.py:1537 +#: common/models.py:1606 msgid "Initial Stock Data" msgstr "" -#: common/models.py:1538 +#: common/models.py:1607 msgid "Allow creation of initial stock when adding a new part" msgstr "" -#: common/models.py:1543 templates/js/translated/part.js:108 +#: common/models.py:1612 templates/js/translated/part.js:108 msgid "Initial Supplier Data" msgstr "" -#: common/models.py:1545 +#: common/models.py:1614 msgid "Allow creation of initial supplier data when adding a new part" msgstr "" -#: common/models.py:1551 +#: common/models.py:1620 msgid "Part Name Display Format" msgstr "" -#: common/models.py:1552 +#: common/models.py:1621 msgid "Format to display the part name" msgstr "" -#: common/models.py:1558 +#: common/models.py:1627 msgid "Part Category Default Icon" msgstr "" -#: common/models.py:1559 +#: common/models.py:1628 msgid "Part category default icon (empty means no icon)" msgstr "" -#: common/models.py:1564 +#: common/models.py:1633 msgid "Enforce Parameter Units" msgstr "" -#: common/models.py:1566 +#: common/models.py:1635 msgid "If units are provided, parameter values must match the specified units" msgstr "" -#: common/models.py:1572 +#: common/models.py:1641 msgid "Minimum Pricing Decimal Places" msgstr "" -#: common/models.py:1574 +#: common/models.py:1643 msgid "Minimum number of decimal places to display when rendering pricing data" msgstr "" -#: common/models.py:1585 +#: common/models.py:1654 msgid "Maximum Pricing Decimal Places" msgstr "" -#: common/models.py:1587 +#: common/models.py:1656 msgid "Maximum number of decimal places to display when rendering pricing data" msgstr "" -#: common/models.py:1598 +#: common/models.py:1667 msgid "Use Supplier Pricing" msgstr "" -#: common/models.py:1600 +#: common/models.py:1669 msgid "Include supplier price breaks in overall pricing calculations" msgstr "" -#: common/models.py:1606 +#: common/models.py:1675 msgid "Purchase History Override" msgstr "" -#: common/models.py:1608 +#: common/models.py:1677 msgid "Historical purchase order pricing overrides supplier price breaks" msgstr "" -#: common/models.py:1614 +#: common/models.py:1683 msgid "Use Stock Item Pricing" msgstr "" -#: common/models.py:1616 +#: common/models.py:1685 msgid "Use pricing from manually entered stock data for pricing calculations" msgstr "" -#: common/models.py:1622 +#: common/models.py:1691 msgid "Stock Item Pricing Age" msgstr "" -#: common/models.py:1624 +#: common/models.py:1693 msgid "Exclude stock items older than this number of days from pricing calculations" msgstr "" -#: common/models.py:1631 +#: common/models.py:1700 msgid "Use Variant Pricing" msgstr "" -#: common/models.py:1632 +#: common/models.py:1701 msgid "Include variant pricing in overall pricing calculations" msgstr "" -#: common/models.py:1637 +#: common/models.py:1706 msgid "Active Variants Only" msgstr "" -#: common/models.py:1639 +#: common/models.py:1708 msgid "Only use active variant parts for calculating variant pricing" msgstr "" -#: common/models.py:1645 +#: common/models.py:1714 msgid "Pricing Rebuild Interval" msgstr "" -#: common/models.py:1647 +#: common/models.py:1716 msgid "Number of days before part pricing is automatically updated" msgstr "" -#: common/models.py:1654 +#: common/models.py:1723 msgid "Internal Prices" msgstr "" -#: common/models.py:1655 +#: common/models.py:1724 msgid "Enable internal prices for parts" msgstr "" -#: common/models.py:1660 +#: common/models.py:1729 msgid "Internal Price Override" msgstr "" -#: common/models.py:1662 +#: common/models.py:1731 msgid "If available, internal prices override price range calculations" msgstr "" -#: common/models.py:1668 +#: common/models.py:1737 msgid "Enable label printing" msgstr "" -#: common/models.py:1669 +#: common/models.py:1738 msgid "Enable label printing from the web interface" msgstr "" -#: common/models.py:1674 +#: common/models.py:1743 msgid "Label Image DPI" msgstr "" -#: common/models.py:1676 +#: common/models.py:1745 msgid "DPI resolution when generating image files to supply to label printing plugins" msgstr "" -#: common/models.py:1682 +#: common/models.py:1751 msgid "Enable Reports" msgstr "" -#: common/models.py:1683 +#: common/models.py:1752 msgid "Enable generation of reports" msgstr "" -#: common/models.py:1688 templates/stats.html:25 +#: common/models.py:1757 templates/stats.html:25 msgid "Debug Mode" msgstr "" -#: common/models.py:1689 +#: common/models.py:1758 msgid "Generate reports in debug mode (HTML output)" msgstr "" -#: common/models.py:1694 +#: common/models.py:1763 msgid "Log Report Errors" msgstr "" -#: common/models.py:1695 +#: common/models.py:1764 msgid "Log errors which occur when generating reports" msgstr "" -#: common/models.py:1700 plugin/builtin/labels/label_sheet.py:28 -#: report/models.py:301 +#: common/models.py:1769 plugin/builtin/labels/label_sheet.py:28 +#: report/models.py:309 msgid "Page Size" msgstr "" -#: common/models.py:1701 +#: common/models.py:1770 msgid "Default page size for PDF reports" msgstr "" -#: common/models.py:1706 -msgid "Enable Test Reports" -msgstr "" - -#: common/models.py:1707 -msgid "Enable generation of test reports" -msgstr "" - -#: common/models.py:1712 -msgid "Attach Test Reports" -msgstr "" - -#: common/models.py:1714 -msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item" -msgstr "" - -#: common/models.py:1720 +#: common/models.py:1775 msgid "Globally Unique Serials" msgstr "" -#: common/models.py:1721 +#: common/models.py:1776 msgid "Serial numbers for stock items must be globally unique" msgstr "" -#: common/models.py:1726 +#: common/models.py:1781 msgid "Autofill Serial Numbers" msgstr "" -#: common/models.py:1727 +#: common/models.py:1782 msgid "Autofill serial numbers in forms" msgstr "" -#: common/models.py:1732 +#: common/models.py:1787 msgid "Delete Depleted Stock" msgstr "" -#: common/models.py:1734 +#: common/models.py:1789 msgid "Determines default behavior when a stock item is depleted" msgstr "" -#: common/models.py:1740 +#: common/models.py:1795 msgid "Batch Code Template" msgstr "" -#: common/models.py:1742 +#: common/models.py:1797 msgid "Template for generating default batch codes for stock items" msgstr "" -#: common/models.py:1747 +#: common/models.py:1802 msgid "Stock Expiry" msgstr "" -#: common/models.py:1748 +#: common/models.py:1803 msgid "Enable stock expiry functionality" msgstr "" -#: common/models.py:1753 +#: common/models.py:1808 msgid "Sell Expired Stock" msgstr "" -#: common/models.py:1754 +#: common/models.py:1809 msgid "Allow sale of expired stock" msgstr "" -#: common/models.py:1759 +#: common/models.py:1814 msgid "Stock Stale Time" msgstr "" -#: common/models.py:1761 +#: common/models.py:1816 msgid "Number of days stock items are considered stale before expiring" msgstr "" -#: common/models.py:1768 +#: common/models.py:1823 msgid "Build Expired Stock" msgstr "" -#: common/models.py:1769 +#: common/models.py:1824 msgid "Allow building with expired stock" msgstr "" -#: common/models.py:1774 +#: common/models.py:1829 msgid "Stock Ownership Control" msgstr "" -#: common/models.py:1775 +#: common/models.py:1830 msgid "Enable ownership control over stock locations and items" msgstr "" -#: common/models.py:1780 +#: common/models.py:1835 msgid "Stock Location Default Icon" msgstr "" -#: common/models.py:1781 +#: common/models.py:1836 msgid "Stock location default icon (empty means no icon)" msgstr "" -#: common/models.py:1786 +#: common/models.py:1841 msgid "Show Installed Stock Items" msgstr "" -#: common/models.py:1787 +#: common/models.py:1842 msgid "Display installed stock items in stock tables" msgstr "" -#: common/models.py:1792 +#: common/models.py:1847 msgid "Check BOM when installing items" msgstr "" -#: common/models.py:1794 +#: common/models.py:1849 msgid "Installed stock items must exist in the BOM for the parent part" msgstr "" -#: common/models.py:1800 +#: common/models.py:1855 msgid "Allow Out of Stock Transfer" msgstr "" -#: common/models.py:1802 +#: common/models.py:1857 msgid "Allow stock items which are not in stock to be transferred between stock locations" msgstr "" -#: common/models.py:1808 +#: common/models.py:1863 msgid "Build Order Reference Pattern" msgstr "" -#: common/models.py:1810 +#: common/models.py:1865 msgid "Required pattern for generating Build Order reference field" msgstr "" -#: common/models.py:1816 common/models.py:1872 common/models.py:1894 -#: common/models.py:1930 +#: common/models.py:1871 common/models.py:1927 common/models.py:1949 +#: common/models.py:1985 msgid "Require Responsible Owner" msgstr "" -#: common/models.py:1817 common/models.py:1873 common/models.py:1895 -#: common/models.py:1931 +#: common/models.py:1872 common/models.py:1928 common/models.py:1950 +#: common/models.py:1986 msgid "A responsible owner must be assigned to each order" msgstr "" -#: common/models.py:1822 +#: common/models.py:1877 msgid "Require Active Part" msgstr "" -#: common/models.py:1823 +#: common/models.py:1878 msgid "Prevent build order creation for inactive parts" msgstr "" -#: common/models.py:1828 +#: common/models.py:1883 msgid "Require Locked Part" msgstr "" -#: common/models.py:1829 +#: common/models.py:1884 msgid "Prevent build order creation for unlocked parts" msgstr "" -#: common/models.py:1834 +#: common/models.py:1889 msgid "Require Valid BOM" msgstr "" -#: common/models.py:1836 +#: common/models.py:1891 msgid "Prevent build order creation unless BOM has been validated" msgstr "" -#: common/models.py:1842 +#: common/models.py:1897 msgid "Require Closed Child Orders" msgstr "" -#: common/models.py:1844 +#: common/models.py:1899 msgid "Prevent build order completion until all child orders are closed" msgstr "" -#: common/models.py:1850 +#: common/models.py:1905 msgid "Block Until Tests Pass" msgstr "" -#: common/models.py:1852 +#: common/models.py:1907 msgid "Prevent build outputs from being completed until all required tests pass" msgstr "" -#: common/models.py:1858 +#: common/models.py:1913 msgid "Enable Return Orders" msgstr "" -#: common/models.py:1859 +#: common/models.py:1914 msgid "Enable return order functionality in the user interface" msgstr "" -#: common/models.py:1864 +#: common/models.py:1919 msgid "Return Order Reference Pattern" msgstr "" -#: common/models.py:1866 +#: common/models.py:1921 msgid "Required pattern for generating Return Order reference field" msgstr "" -#: common/models.py:1878 +#: common/models.py:1933 msgid "Edit Completed Return Orders" msgstr "" -#: common/models.py:1880 +#: common/models.py:1935 msgid "Allow editing of return orders after they have been completed" msgstr "" -#: common/models.py:1886 +#: common/models.py:1941 msgid "Sales Order Reference Pattern" msgstr "" -#: common/models.py:1888 +#: common/models.py:1943 msgid "Required pattern for generating Sales Order reference field" msgstr "" -#: common/models.py:1900 +#: common/models.py:1955 msgid "Sales Order Default Shipment" msgstr "" -#: common/models.py:1901 +#: common/models.py:1956 msgid "Enable creation of default shipment with sales orders" msgstr "" -#: common/models.py:1906 +#: common/models.py:1961 msgid "Edit Completed Sales Orders" msgstr "" -#: common/models.py:1908 +#: common/models.py:1963 msgid "Allow editing of sales orders after they have been shipped or completed" msgstr "" -#: common/models.py:1914 +#: common/models.py:1969 msgid "Mark Shipped Orders as Complete" msgstr "" -#: common/models.py:1916 +#: common/models.py:1971 msgid "Sales orders marked as shipped will automatically be completed, bypassing the \"shipped\" status" msgstr "" -#: common/models.py:1922 +#: common/models.py:1977 msgid "Purchase Order Reference Pattern" msgstr "" -#: common/models.py:1924 +#: common/models.py:1979 msgid "Required pattern for generating Purchase Order reference field" msgstr "" -#: common/models.py:1936 +#: common/models.py:1991 msgid "Edit Completed Purchase Orders" msgstr "" -#: common/models.py:1938 +#: common/models.py:1993 msgid "Allow editing of purchase orders after they have been shipped or completed" msgstr "" -#: common/models.py:1944 +#: common/models.py:1999 msgid "Auto Complete Purchase Orders" msgstr "" -#: common/models.py:1946 +#: common/models.py:2001 msgid "Automatically mark purchase orders as complete when all line items are received" msgstr "" -#: common/models.py:1953 +#: common/models.py:2008 msgid "Enable password forgot" msgstr "" -#: common/models.py:1954 +#: common/models.py:2009 msgid "Enable password forgot function on the login pages" msgstr "" -#: common/models.py:1959 +#: common/models.py:2014 msgid "Enable registration" msgstr "" -#: common/models.py:1960 +#: common/models.py:2015 msgid "Enable self-registration for users on the login pages" msgstr "" -#: common/models.py:1965 +#: common/models.py:2020 msgid "Enable SSO" msgstr "" -#: common/models.py:1966 +#: common/models.py:2021 msgid "Enable SSO on the login pages" msgstr "" -#: common/models.py:1971 +#: common/models.py:2026 msgid "Enable SSO registration" msgstr "" -#: common/models.py:1973 +#: common/models.py:2028 msgid "Enable self-registration via SSO for users on the login pages" msgstr "" -#: common/models.py:1979 +#: common/models.py:2034 msgid "Enable SSO group sync" msgstr "" -#: common/models.py:1981 +#: common/models.py:2036 msgid "Enable synchronizing InvenTree groups with groups provided by the IdP" msgstr "" -#: common/models.py:1987 +#: common/models.py:2042 msgid "SSO group key" msgstr "" -#: common/models.py:1989 +#: common/models.py:2044 msgid "The name of the groups claim attribute provided by the IdP" msgstr "" -#: common/models.py:1995 +#: common/models.py:2050 msgid "SSO group map" msgstr "" -#: common/models.py:1997 +#: common/models.py:2052 msgid "A mapping from SSO groups to local InvenTree groups. If the local group does not exist, it will be created." msgstr "" -#: common/models.py:2003 +#: common/models.py:2058 msgid "Remove groups outside of SSO" msgstr "" -#: common/models.py:2005 +#: common/models.py:2060 msgid "Whether groups assigned to the user should be removed if they are not backend by the IdP. Disabling this setting might cause security issues" msgstr "" -#: common/models.py:2011 +#: common/models.py:2066 msgid "Email required" msgstr "" -#: common/models.py:2012 +#: common/models.py:2067 msgid "Require user to supply mail on signup" msgstr "" -#: common/models.py:2017 +#: common/models.py:2072 msgid "Auto-fill SSO users" msgstr "" -#: common/models.py:2019 +#: common/models.py:2074 msgid "Automatically fill out user-details from SSO account-data" msgstr "" -#: common/models.py:2025 +#: common/models.py:2080 msgid "Mail twice" msgstr "" -#: common/models.py:2026 +#: common/models.py:2081 msgid "On signup ask users twice for their mail" msgstr "" -#: common/models.py:2031 +#: common/models.py:2086 msgid "Password twice" msgstr "" -#: common/models.py:2032 +#: common/models.py:2087 msgid "On signup ask users twice for their password" msgstr "" -#: common/models.py:2037 +#: common/models.py:2092 msgid "Allowed domains" msgstr "" -#: common/models.py:2039 +#: common/models.py:2094 msgid "Restrict signup to certain domains (comma-separated, starting with @)" msgstr "" -#: common/models.py:2045 +#: common/models.py:2100 msgid "Group on signup" msgstr "" -#: common/models.py:2047 +#: common/models.py:2102 msgid "Group to which new users are assigned on registration. If SSO group sync is enabled, this group is only set if no group can be assigned from the IdP." msgstr "" -#: common/models.py:2053 +#: common/models.py:2108 msgid "Enforce MFA" msgstr "" -#: common/models.py:2054 +#: common/models.py:2109 msgid "Users must use multifactor security." msgstr "" -#: common/models.py:2059 +#: common/models.py:2114 msgid "Check plugins on startup" msgstr "" -#: common/models.py:2061 +#: common/models.py:2116 msgid "Check that all plugins are installed on startup - enable in container environments" msgstr "" -#: common/models.py:2069 +#: common/models.py:2124 msgid "Check for plugin updates" msgstr "" -#: common/models.py:2070 +#: common/models.py:2125 msgid "Enable periodic checks for updates to installed plugins" msgstr "" -#: common/models.py:2076 +#: common/models.py:2131 msgid "Enable URL integration" msgstr "" -#: common/models.py:2077 +#: common/models.py:2132 msgid "Enable plugins to add URL routes" msgstr "" -#: common/models.py:2083 +#: common/models.py:2138 msgid "Enable navigation integration" msgstr "" -#: common/models.py:2084 +#: common/models.py:2139 msgid "Enable plugins to integrate into navigation" msgstr "" -#: common/models.py:2090 +#: common/models.py:2145 msgid "Enable app integration" msgstr "" -#: common/models.py:2091 +#: common/models.py:2146 msgid "Enable plugins to add apps" msgstr "" -#: common/models.py:2097 +#: common/models.py:2152 msgid "Enable schedule integration" msgstr "" -#: common/models.py:2098 +#: common/models.py:2153 msgid "Enable plugins to run scheduled tasks" msgstr "" -#: common/models.py:2104 +#: common/models.py:2159 msgid "Enable event integration" msgstr "" -#: common/models.py:2105 +#: common/models.py:2160 msgid "Enable plugins to respond to internal events" msgstr "" -#: common/models.py:2111 +#: common/models.py:2166 +msgid "Enable interface integration" +msgstr "" + +#: common/models.py:2167 +msgid "Enable plugins to integrate into the user interface" +msgstr "" + +#: common/models.py:2173 msgid "Enable project codes" msgstr "" -#: common/models.py:2112 +#: common/models.py:2174 msgid "Enable project codes for tracking projects" msgstr "" -#: common/models.py:2117 +#: common/models.py:2179 msgid "Stocktake Functionality" msgstr "" -#: common/models.py:2119 +#: common/models.py:2181 msgid "Enable stocktake functionality for recording stock levels and calculating stock value" msgstr "" -#: common/models.py:2125 +#: common/models.py:2187 msgid "Exclude External Locations" msgstr "" -#: common/models.py:2127 +#: common/models.py:2189 msgid "Exclude stock items in external locations from stocktake calculations" msgstr "" -#: common/models.py:2133 +#: common/models.py:2195 msgid "Automatic Stocktake Period" msgstr "" -#: common/models.py:2135 +#: common/models.py:2197 msgid "Number of days between automatic stocktake recording (set to zero to disable)" msgstr "" -#: common/models.py:2141 +#: common/models.py:2203 msgid "Report Deletion Interval" msgstr "" -#: common/models.py:2143 +#: common/models.py:2205 msgid "Stocktake reports will be deleted after specified number of days" msgstr "" -#: common/models.py:2150 +#: common/models.py:2212 msgid "Display Users full names" msgstr "" -#: common/models.py:2151 +#: common/models.py:2213 msgid "Display Users full names instead of usernames" msgstr "" -#: common/models.py:2156 +#: common/models.py:2218 msgid "Enable Test Station Data" msgstr "" -#: common/models.py:2157 +#: common/models.py:2219 msgid "Enable test station data collection for test results" msgstr "" -#: common/models.py:2169 common/models.py:2549 -msgid "Settings key (must be unique - case insensitive" -msgstr "" - -#: common/models.py:2212 -msgid "Hide inactive parts" -msgstr "" - -#: common/models.py:2214 -msgid "Hide inactive parts in results displayed on the homepage" -msgstr "" - -#: common/models.py:2220 -msgid "Show subscribed parts" -msgstr "" - -#: common/models.py:2221 -msgid "Show subscribed parts on the homepage" +#: common/models.py:2224 +msgid "Create Template on Upload" msgstr "" #: common/models.py:2226 -msgid "Show subscribed categories" +msgid "Create a new test template when uploading test data which does not match an existing template" msgstr "" -#: common/models.py:2227 -msgid "Show subscribed part categories on the homepage" -msgstr "" - -#: common/models.py:2232 -msgid "Show latest parts" -msgstr "" - -#: common/models.py:2233 -msgid "Show latest parts on the homepage" -msgstr "" - -#: common/models.py:2238 -msgid "Show invalid BOMs" -msgstr "" - -#: common/models.py:2239 -msgid "Show BOMs that await validation on the homepage" -msgstr "" - -#: common/models.py:2244 -msgid "Show recent stock changes" -msgstr "" - -#: common/models.py:2245 -msgid "Show recently changed stock items on the homepage" -msgstr "" - -#: common/models.py:2250 -msgid "Show low stock" -msgstr "" - -#: common/models.py:2251 -msgid "Show low stock items on the homepage" -msgstr "" - -#: common/models.py:2256 -msgid "Show depleted stock" -msgstr "" - -#: common/models.py:2257 -msgid "Show depleted stock items on the homepage" -msgstr "" - -#: common/models.py:2262 -msgid "Show needed stock" -msgstr "" - -#: common/models.py:2263 -msgid "Show stock items needed for builds on the homepage" -msgstr "" - -#: common/models.py:2268 -msgid "Show expired stock" -msgstr "" - -#: common/models.py:2269 -msgid "Show expired stock items on the homepage" -msgstr "" - -#: common/models.py:2274 -msgid "Show stale stock" -msgstr "" - -#: common/models.py:2275 -msgid "Show stale stock items on the homepage" -msgstr "" - -#: common/models.py:2280 -msgid "Show pending builds" +#: common/models.py:2279 +msgid "Hide inactive parts" msgstr "" #: common/models.py:2281 -msgid "Show pending builds on the homepage" -msgstr "" - -#: common/models.py:2286 -msgid "Show overdue builds" +msgid "Hide inactive parts in results displayed on the homepage" msgstr "" #: common/models.py:2287 -msgid "Show overdue builds on the homepage" +msgid "Show subscribed parts" msgstr "" -#: common/models.py:2292 -msgid "Show outstanding POs" +#: common/models.py:2288 +msgid "Show subscribed parts on the homepage" msgstr "" #: common/models.py:2293 -msgid "Show outstanding POs on the homepage" +msgid "Show subscribed categories" msgstr "" -#: common/models.py:2298 -msgid "Show overdue POs" +#: common/models.py:2294 +msgid "Show subscribed part categories on the homepage" msgstr "" #: common/models.py:2299 -msgid "Show overdue POs on the homepage" +msgid "Show latest parts" msgstr "" -#: common/models.py:2304 -msgid "Show outstanding SOs" +#: common/models.py:2300 +msgid "Show latest parts on the homepage" msgstr "" #: common/models.py:2305 -msgid "Show outstanding SOs on the homepage" +msgid "Show invalid BOMs" msgstr "" -#: common/models.py:2310 -msgid "Show overdue SOs" +#: common/models.py:2306 +msgid "Show BOMs that await validation on the homepage" msgstr "" #: common/models.py:2311 -msgid "Show overdue SOs on the homepage" +msgid "Show recent stock changes" msgstr "" -#: common/models.py:2316 -msgid "Show pending SO shipments" +#: common/models.py:2312 +msgid "Show recently changed stock items on the homepage" msgstr "" #: common/models.py:2317 -msgid "Show pending SO shipments on the homepage" +msgid "Show low stock" msgstr "" -#: common/models.py:2322 -msgid "Show News" +#: common/models.py:2318 +msgid "Show low stock items on the homepage" msgstr "" #: common/models.py:2323 -msgid "Show news on the homepage" +msgid "Show depleted stock" msgstr "" -#: common/models.py:2328 -msgid "Inline label display" +#: common/models.py:2324 +msgid "Show depleted stock items on the homepage" +msgstr "" + +#: common/models.py:2329 +msgid "Show needed stock" msgstr "" #: common/models.py:2330 -msgid "Display PDF labels in the browser, instead of downloading as a file" +msgid "Show stock items needed for builds on the homepage" +msgstr "" + +#: common/models.py:2335 +msgid "Show expired stock" msgstr "" #: common/models.py:2336 -msgid "Default label printer" +msgid "Show expired stock items on the homepage" msgstr "" -#: common/models.py:2338 -msgid "Configure which label printer should be selected by default" +#: common/models.py:2341 +msgid "Show stale stock" msgstr "" -#: common/models.py:2344 -msgid "Inline report display" +#: common/models.py:2342 +msgid "Show stale stock items on the homepage" msgstr "" -#: common/models.py:2346 -msgid "Display PDF reports in the browser, instead of downloading as a file" +#: common/models.py:2347 +msgid "Show pending builds" msgstr "" -#: common/models.py:2352 -msgid "Search Parts" +#: common/models.py:2348 +msgid "Show pending builds on the homepage" msgstr "" #: common/models.py:2353 -msgid "Display parts in search preview window" +msgid "Show overdue builds" msgstr "" -#: common/models.py:2358 -msgid "Search Supplier Parts" +#: common/models.py:2354 +msgid "Show overdue builds on the homepage" msgstr "" #: common/models.py:2359 -msgid "Display supplier parts in search preview window" +msgid "Show outstanding POs" msgstr "" -#: common/models.py:2364 -msgid "Search Manufacturer Parts" +#: common/models.py:2360 +msgid "Show outstanding POs on the homepage" msgstr "" #: common/models.py:2365 -msgid "Display manufacturer parts in search preview window" +msgid "Show overdue POs" msgstr "" -#: common/models.py:2370 -msgid "Hide Inactive Parts" +#: common/models.py:2366 +msgid "Show overdue POs on the homepage" msgstr "" #: common/models.py:2371 -msgid "Excluded inactive parts from search preview window" +msgid "Show outstanding SOs" msgstr "" -#: common/models.py:2376 -msgid "Search Categories" +#: common/models.py:2372 +msgid "Show outstanding SOs on the homepage" msgstr "" #: common/models.py:2377 -msgid "Display part categories in search preview window" +msgid "Show overdue SOs" msgstr "" -#: common/models.py:2382 -msgid "Search Stock" +#: common/models.py:2378 +msgid "Show overdue SOs on the homepage" msgstr "" #: common/models.py:2383 -msgid "Display stock items in search preview window" +msgid "Show pending SO shipments" msgstr "" -#: common/models.py:2388 -msgid "Hide Unavailable Stock Items" +#: common/models.py:2384 +msgid "Show pending SO shipments on the homepage" +msgstr "" + +#: common/models.py:2389 +msgid "Show News" msgstr "" #: common/models.py:2390 -msgid "Exclude stock items which are not available from the search preview window" +msgid "Show news on the homepage" msgstr "" -#: common/models.py:2396 -msgid "Search Locations" +#: common/models.py:2395 +msgid "Inline label display" msgstr "" #: common/models.py:2397 -msgid "Display stock locations in search preview window" -msgstr "" - -#: common/models.py:2402 -msgid "Search Companies" +msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "" #: common/models.py:2403 -msgid "Display companies in search preview window" +msgid "Default label printer" msgstr "" -#: common/models.py:2408 -msgid "Search Build Orders" +#: common/models.py:2405 +msgid "Configure which label printer should be selected by default" msgstr "" -#: common/models.py:2409 -msgid "Display build orders in search preview window" +#: common/models.py:2411 +msgid "Inline report display" msgstr "" -#: common/models.py:2414 -msgid "Search Purchase Orders" +#: common/models.py:2413 +msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:2415 -msgid "Display purchase orders in search preview window" +#: common/models.py:2419 +msgid "Search Parts" msgstr "" #: common/models.py:2420 -msgid "Exclude Inactive Purchase Orders" +msgid "Display parts in search preview window" msgstr "" -#: common/models.py:2422 -msgid "Exclude inactive purchase orders from search preview window" +#: common/models.py:2425 +msgid "Search Supplier Parts" msgstr "" -#: common/models.py:2428 -msgid "Search Sales Orders" +#: common/models.py:2426 +msgid "Display supplier parts in search preview window" msgstr "" -#: common/models.py:2429 -msgid "Display sales orders in search preview window" +#: common/models.py:2431 +msgid "Search Manufacturer Parts" msgstr "" -#: common/models.py:2434 -msgid "Exclude Inactive Sales Orders" +#: common/models.py:2432 +msgid "Display manufacturer parts in search preview window" msgstr "" -#: common/models.py:2436 -msgid "Exclude inactive sales orders from search preview window" +#: common/models.py:2437 +msgid "Hide Inactive Parts" msgstr "" -#: common/models.py:2442 -msgid "Search Return Orders" +#: common/models.py:2438 +msgid "Excluded inactive parts from search preview window" msgstr "" #: common/models.py:2443 -msgid "Display return orders in search preview window" +msgid "Search Categories" msgstr "" -#: common/models.py:2448 -msgid "Exclude Inactive Return Orders" +#: common/models.py:2444 +msgid "Display part categories in search preview window" +msgstr "" + +#: common/models.py:2449 +msgid "Search Stock" msgstr "" #: common/models.py:2450 -msgid "Exclude inactive return orders from search preview window" +msgid "Display stock items in search preview window" msgstr "" -#: common/models.py:2456 -msgid "Search Preview Results" +#: common/models.py:2455 +msgid "Hide Unavailable Stock Items" msgstr "" -#: common/models.py:2458 -msgid "Number of results to show in each section of the search preview window" +#: common/models.py:2457 +msgid "Exclude stock items which are not available from the search preview window" +msgstr "" + +#: common/models.py:2463 +msgid "Search Locations" msgstr "" #: common/models.py:2464 -msgid "Regex Search" +msgid "Display stock locations in search preview window" msgstr "" -#: common/models.py:2465 -msgid "Enable regular expressions in search queries" +#: common/models.py:2469 +msgid "Search Companies" msgstr "" #: common/models.py:2470 -msgid "Whole Word Search" +msgid "Display companies in search preview window" msgstr "" -#: common/models.py:2471 -msgid "Search queries return results for whole word matches" +#: common/models.py:2475 +msgid "Search Build Orders" msgstr "" #: common/models.py:2476 -msgid "Show Quantity in Forms" +msgid "Display build orders in search preview window" msgstr "" -#: common/models.py:2477 -msgid "Display available part quantity in some forms" +#: common/models.py:2481 +msgid "Search Purchase Orders" msgstr "" #: common/models.py:2482 -msgid "Escape Key Closes Forms" +msgid "Display purchase orders in search preview window" msgstr "" -#: common/models.py:2483 -msgid "Use the escape key to close modal forms" -msgstr "" - -#: common/models.py:2488 -msgid "Fixed Navbar" +#: common/models.py:2487 +msgid "Exclude Inactive Purchase Orders" msgstr "" #: common/models.py:2489 -msgid "The navbar position is fixed to the top of the screen" -msgstr "" - -#: common/models.py:2494 -msgid "Date Format" +msgid "Exclude inactive purchase orders from search preview window" msgstr "" #: common/models.py:2495 -msgid "Preferred format for displaying dates" +msgid "Search Sales Orders" msgstr "" -#: common/models.py:2508 part/templates/part/detail.html:41 -msgid "Part Scheduling" +#: common/models.py:2496 +msgid "Display sales orders in search preview window" +msgstr "" + +#: common/models.py:2501 +msgid "Exclude Inactive Sales Orders" +msgstr "" + +#: common/models.py:2503 +msgid "Exclude inactive sales orders from search preview window" msgstr "" #: common/models.py:2509 -msgid "Display part scheduling information" +msgid "Search Return Orders" msgstr "" -#: common/models.py:2514 part/templates/part/detail.html:62 -msgid "Part Stocktake" +#: common/models.py:2510 +msgid "Display return orders in search preview window" msgstr "" -#: common/models.py:2516 -msgid "Display part stocktake information (if stocktake functionality is enabled)" +#: common/models.py:2515 +msgid "Exclude Inactive Return Orders" msgstr "" -#: common/models.py:2522 -msgid "Table String Length" +#: common/models.py:2517 +msgid "Exclude inactive return orders from search preview window" msgstr "" -#: common/models.py:2524 -msgid "Maximum length limit for strings displayed in table views" +#: common/models.py:2523 +msgid "Search Preview Results" msgstr "" -#: common/models.py:2530 -msgid "Receive error reports" +#: common/models.py:2525 +msgid "Number of results to show in each section of the search preview window" msgstr "" #: common/models.py:2531 -msgid "Receive notifications for system errors" +msgid "Regex Search" msgstr "" -#: common/models.py:2536 -msgid "Last used printing machines" +#: common/models.py:2532 +msgid "Enable regular expressions in search queries" msgstr "" #: common/models.py:2537 +msgid "Whole Word Search" +msgstr "" + +#: common/models.py:2538 +msgid "Search queries return results for whole word matches" +msgstr "" + +#: common/models.py:2543 +msgid "Show Quantity in Forms" +msgstr "" + +#: common/models.py:2544 +msgid "Display available part quantity in some forms" +msgstr "" + +#: common/models.py:2549 +msgid "Escape Key Closes Forms" +msgstr "" + +#: common/models.py:2550 +msgid "Use the escape key to close modal forms" +msgstr "" + +#: common/models.py:2555 +msgid "Fixed Navbar" +msgstr "" + +#: common/models.py:2556 +msgid "The navbar position is fixed to the top of the screen" +msgstr "" + +#: common/models.py:2561 +msgid "Date Format" +msgstr "" + +#: common/models.py:2562 +msgid "Preferred format for displaying dates" +msgstr "" + +#: common/models.py:2575 part/templates/part/detail.html:41 +msgid "Part Scheduling" +msgstr "" + +#: common/models.py:2576 +msgid "Display part scheduling information" +msgstr "" + +#: common/models.py:2581 part/templates/part/detail.html:62 +msgid "Part Stocktake" +msgstr "" + +#: common/models.py:2583 +msgid "Display part stocktake information (if stocktake functionality is enabled)" +msgstr "" + +#: common/models.py:2589 +msgid "Table String Length" +msgstr "" + +#: common/models.py:2591 +msgid "Maximum length limit for strings displayed in table views" +msgstr "" + +#: common/models.py:2597 +msgid "Receive error reports" +msgstr "" + +#: common/models.py:2598 +msgid "Receive notifications for system errors" +msgstr "" + +#: common/models.py:2603 +msgid "Last used printing machines" +msgstr "" + +#: common/models.py:2604 msgid "Save the last used printing machines for a user" msgstr "" -#: common/models.py:2557 common/models.py:2558 common/models.py:2715 -#: common/models.py:2716 common/models.py:2961 common/models.py:2962 -#: common/models.py:3288 common/models.py:3289 importer/models.py:88 -#: part/models.py:3307 part/models.py:3394 part/models.py:3468 -#: part/models.py:3496 plugin/models.py:274 plugin/models.py:275 -#: report/templates/report/inventree_test_report.html:105 -#: templates/js/translated/stock.js:3120 users/models.py:111 +#: common/models.py:2621 common/models.py:2622 common/models.py:2779 +#: common/models.py:2780 common/models.py:3025 common/models.py:3026 +#: common/models.py:3349 common/models.py:3350 common/models.py:3534 +#: importer/models.py:89 part/models.py:3358 part/models.py:3445 +#: part/models.py:3519 part/models.py:3547 plugin/models.py:313 +#: plugin/models.py:314 report/templates/report/inventree_test_report.html:105 +#: templates/js/translated/stock.js:3121 users/models.py:111 msgid "User" msgstr "" -#: common/models.py:2580 +#: common/models.py:2644 msgid "Price break quantity" msgstr "" -#: common/models.py:2587 company/serializers.py:513 order/admin.py:42 -#: order/models.py:1430 order/models.py:2417 -#: templates/js/translated/company.js:1823 templates/js/translated/part.js:1892 +#: common/models.py:2651 company/serializers.py:524 order/admin.py:42 +#: order/models.py:1447 order/models.py:2456 +#: templates/js/translated/company.js:1824 templates/js/translated/part.js:1892 #: templates/js/translated/pricing.js:621 #: templates/js/translated/return_order.js:739 msgid "Price" msgstr "" -#: common/models.py:2588 +#: common/models.py:2652 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:2692 common/models.py:2877 +#: common/models.py:2756 common/models.py:2941 msgid "Endpoint" msgstr "" -#: common/models.py:2693 +#: common/models.py:2757 msgid "Endpoint at which this webhook is received" msgstr "" -#: common/models.py:2703 +#: common/models.py:2767 msgid "Name for this webhook" msgstr "" -#: common/models.py:2707 +#: common/models.py:2771 msgid "Is this webhook active" msgstr "" -#: common/models.py:2723 users/models.py:159 +#: common/models.py:2787 users/models.py:159 msgid "Token" msgstr "" -#: common/models.py:2724 +#: common/models.py:2788 msgid "Token for access" msgstr "" -#: common/models.py:2732 +#: common/models.py:2796 msgid "Secret" msgstr "" -#: common/models.py:2733 +#: common/models.py:2797 msgid "Shared secret for HMAC" msgstr "" -#: common/models.py:2841 +#: common/models.py:2905 msgid "Message ID" msgstr "" -#: common/models.py:2842 +#: common/models.py:2906 msgid "Unique identifier for this message" msgstr "" -#: common/models.py:2850 +#: common/models.py:2914 msgid "Host" msgstr "" -#: common/models.py:2851 +#: common/models.py:2915 msgid "Host from which this message was received" msgstr "" -#: common/models.py:2859 +#: common/models.py:2923 msgid "Header" msgstr "" -#: common/models.py:2860 +#: common/models.py:2924 msgid "Header of this message" msgstr "" -#: common/models.py:2867 +#: common/models.py:2931 msgid "Body" msgstr "" -#: common/models.py:2868 +#: common/models.py:2932 msgid "Body of this message" msgstr "" -#: common/models.py:2878 +#: common/models.py:2942 msgid "Endpoint on which this message was received" msgstr "" -#: common/models.py:2883 +#: common/models.py:2947 msgid "Worked on" msgstr "" -#: common/models.py:2884 +#: common/models.py:2948 msgid "Was the work on this message finished?" msgstr "" -#: common/models.py:3010 +#: common/models.py:3074 msgid "Id" msgstr "" -#: common/models.py:3012 templates/js/translated/company.js:965 -#: templates/js/translated/news.js:44 +#: common/models.py:3076 part/serializers.py:271 +#: templates/js/translated/company.js:966 templates/js/translated/news.js:44 msgid "Title" msgstr "" -#: common/models.py:3014 common/models.py:3272 company/models.py:149 -#: company/models.py:446 company/models.py:512 company/models.py:818 -#: order/models.py:302 order/models.py:1385 order/models.py:1817 -#: part/admin.py:55 part/models.py:1057 +#: common/models.py:3078 common/models.py:3333 company/models.py:146 +#: company/models.py:443 company/models.py:509 company/models.py:815 +#: order/models.py:309 order/models.py:1402 order/models.py:1846 +#: part/admin.py:55 part/models.py:1118 #: part/templates/part/part_scheduling.html:11 #: report/templates/report/inventree_build_order_report.html:164 -#: stock/admin.py:229 templates/js/translated/company.js:1319 -#: templates/js/translated/company.js:1673 templates/js/translated/order.js:376 +#: stock/admin.py:230 templates/js/translated/company.js:1320 +#: templates/js/translated/company.js:1674 templates/js/translated/order.js:376 #: templates/js/translated/part.js:2475 -#: templates/js/translated/purchase_order.js:2110 -#: templates/js/translated/purchase_order.js:2274 +#: templates/js/translated/purchase_order.js:2094 +#: templates/js/translated/purchase_order.js:2258 #: templates/js/translated/return_order.js:778 -#: templates/js/translated/sales_order.js:1092 -#: templates/js/translated/sales_order.js:2023 +#: templates/js/translated/sales_order.js:1058 +#: templates/js/translated/sales_order.js:2004 msgid "Link" msgstr "" -#: common/models.py:3016 templates/js/translated/news.js:60 +#: common/models.py:3080 templates/js/translated/news.js:60 msgid "Published" msgstr "" -#: common/models.py:3018 templates/InvenTree/settings/plugin_settings.html:32 +#: common/models.py:3082 templates/InvenTree/settings/plugin_settings.html:32 #: templates/js/translated/news.js:56 templates/js/translated/plugin.js:103 msgid "Author" msgstr "" -#: common/models.py:3020 templates/js/translated/news.js:52 +#: common/models.py:3084 templates/js/translated/news.js:52 msgid "Summary" msgstr "" -#: common/models.py:3023 +#: common/models.py:3087 msgid "Read" msgstr "" -#: common/models.py:3023 +#: common/models.py:3087 msgid "Was this news item read?" msgstr "" -#: common/models.py:3040 company/models.py:159 part/models.py:1067 +#: common/models.py:3104 company/models.py:156 part/models.py:1128 #: report/templates/report/inventree_bill_of_materials_report.html:126 #: report/templates/report/inventree_bill_of_materials_report.html:148 #: report/templates/report/inventree_return_order_report.html:35 -#: stock/templates/stock/item_base.html:133 templates/503.html:31 +#: stock/templates/stock/item_base.html:130 templates/503.html:31 #: templates/hover_image.html:7 templates/hover_image.html:9 #: templates/modals.html:6 msgid "Image" msgstr "" -#: common/models.py:3040 +#: common/models.py:3104 msgid "Image file" msgstr "" -#: common/models.py:3052 common/models.py:3256 +#: common/models.py:3116 common/models.py:3317 msgid "Target model type for this image" msgstr "" -#: common/models.py:3056 +#: common/models.py:3120 msgid "Target model ID for this image" msgstr "" -#: common/models.py:3078 +#: common/models.py:3142 msgid "Custom Unit" msgstr "" -#: common/models.py:3099 +#: common/models.py:3160 msgid "Unit symbol must be unique" msgstr "" -#: common/models.py:3114 +#: common/models.py:3175 msgid "Unit name must be a valid identifier" msgstr "" -#: common/models.py:3133 +#: common/models.py:3194 msgid "Unit name" msgstr "" -#: common/models.py:3140 templates/InvenTree/settings/settings_staff_js.html:75 +#: common/models.py:3201 templates/InvenTree/settings/settings_staff_js.html:75 msgid "Symbol" msgstr "" -#: common/models.py:3141 +#: common/models.py:3202 msgid "Optional unit symbol" msgstr "" -#: common/models.py:3147 templates/InvenTree/settings/settings_staff_js.html:71 +#: common/models.py:3208 templates/InvenTree/settings/settings_staff_js.html:71 msgid "Definition" msgstr "" -#: common/models.py:3148 +#: common/models.py:3209 msgid "Unit definition" msgstr "" -#: common/models.py:3206 common/models.py:3263 stock/models.py:2558 -#: templates/js/translated/attachment.js:119 +#: common/models.py:3267 common/models.py:3324 stock/models.py:2674 +#: stock/serializers.py:244 templates/js/translated/attachment.js:119 #: templates/js/translated/attachment.js:345 msgid "Attachment" msgstr "" -#: common/models.py:3218 +#: common/models.py:3279 msgid "Missing file" msgstr "" -#: common/models.py:3219 +#: common/models.py:3280 msgid "Missing external link" msgstr "" -#: common/models.py:3264 +#: common/models.py:3325 msgid "Select file to attach" msgstr "" -#: common/models.py:3279 templates/js/translated/attachment.js:120 +#: common/models.py:3340 templates/js/translated/attachment.js:120 #: templates/js/translated/attachment.js:360 msgid "Comment" msgstr "" -#: common/models.py:3280 +#: common/models.py:3341 msgid "Attachment comment" msgstr "" -#: common/models.py:3296 +#: common/models.py:3357 msgid "Upload date" msgstr "" -#: common/models.py:3297 +#: common/models.py:3358 msgid "Date the file was uploaded" msgstr "" -#: common/models.py:3301 +#: common/models.py:3362 msgid "File size" msgstr "" -#: common/models.py:3301 +#: common/models.py:3362 msgid "File size in bytes" msgstr "" -#: common/models.py:3339 common/serializers.py:562 +#: common/models.py:3400 common/serializers.py:609 msgid "Invalid model type specified for attachment" msgstr "" -#: common/notifications.py:314 +#: common/models.py:3409 plugin/models.py:43 users/models.py:100 +msgid "Key" +msgstr "" + +#: common/models.py:3410 +msgid "Value that will be saved in the models database" +msgstr "" + +#: common/models.py:3413 +msgid "Name of the state" +msgstr "" + +#: common/models.py:3417 part/serializers.py:273 +msgid "Label" +msgstr "" + +#: common/models.py:3418 +msgid "Label that will be displayed in the frontend" +msgstr "" + +#: common/models.py:3424 +msgid "Color" +msgstr "" + +#: common/models.py:3425 +msgid "Color that will be displayed in the frontend" +msgstr "" + +#: common/models.py:3428 +msgid "Logical Key" +msgstr "" + +#: common/models.py:3430 +msgid "State logical key that is equal to this custom state in business logic" +msgstr "" + +#: common/models.py:3438 part/serializers.py:275 +msgid "Model" +msgstr "" + +#: common/models.py:3439 +msgid "Model this state is associated with" +msgstr "" + +#: common/models.py:3443 +msgid "Reference Status Set" +msgstr "" + +#: common/models.py:3444 +msgid "Status set that is extended with this custom state" +msgstr "" + +#: common/models.py:3450 +msgid "Custom State" +msgstr "" + +#: common/models.py:3451 +msgid "Custom States" +msgstr "" + +#: common/models.py:3466 +msgid "Model must be selected" +msgstr "" + +#: common/models.py:3469 +msgid "Key must be selected" +msgstr "" + +#: common/models.py:3472 +msgid "Logical key must be selected" +msgstr "" + +#: common/models.py:3476 +msgid "Key must be different from logical key" +msgstr "" + +#: common/models.py:3480 +msgid "Reference status must be selected" +msgstr "" + +#: common/models.py:3492 +msgid "Reference status set not found" +msgstr "" + +#: common/models.py:3498 +msgid "Key must be different from the logical keys of the reference status" +msgstr "" + +#: common/models.py:3504 +msgid "Logical key must be in the logical keys of the reference status" +msgstr "" + +#: common/models.py:3519 +msgid "Barcode Scan" +msgstr "" + +#: common/models.py:3523 importer/models.py:512 part/models.py:4009 +msgid "Data" +msgstr "" + +#: common/models.py:3524 +msgid "Barcode data" +msgstr "" + +#: common/models.py:3535 +msgid "User who scanned the barcode" +msgstr "" + +#: common/models.py:3540 importer/models.py:60 +msgid "Timestamp" +msgstr "" + +#: common/models.py:3541 +msgid "Date and time of the barcode scan" +msgstr "" + +#: common/models.py:3547 +msgid "URL endpoint which processed the barcode" +msgstr "" + +#: common/models.py:3554 order/models.py:1437 plugin/serializers.py:89 +msgid "Context" +msgstr "" + +#: common/models.py:3555 +msgid "Context data for the barcode scan" +msgstr "" + +#: common/models.py:3562 +msgid "Response" +msgstr "" + +#: common/models.py:3563 +msgid "Response data from the barcode scan" +msgstr "" + +#: common/models.py:3569 report/templates/report/inventree_test_report.html:103 +#: stock/models.py:2660 +msgid "Result" +msgstr "" + +#: common/models.py:3570 +msgid "Was the barcode scan successful?" +msgstr "" + +#: common/notifications.py:328 #, python-brace-format msgid "New {verbose_name}" msgstr "" -#: common/notifications.py:316 +#: common/notifications.py:330 msgid "A new order has been created and assigned to you" msgstr "" -#: common/notifications.py:322 +#: common/notifications.py:336 #, python-brace-format msgid "{verbose_name} canceled" msgstr "" -#: common/notifications.py:324 +#: common/notifications.py:338 msgid "A order that is assigned to you was canceled" msgstr "" -#: common/notifications.py:330 common/notifications.py:337 order/api.py:462 +#: common/notifications.py:344 common/notifications.py:351 order/api.py:440 msgid "Items Received" msgstr "" -#: common/notifications.py:332 +#: common/notifications.py:346 msgid "Items have been received against a purchase order" msgstr "" -#: common/notifications.py:339 +#: common/notifications.py:353 msgid "Items have been received against a return order" msgstr "" -#: common/notifications.py:457 +#: common/notifications.py:475 msgid "Error raised by plugin" msgstr "" -#: common/serializers.py:375 +#: common/serializers.py:423 msgid "Is Running" msgstr "" -#: common/serializers.py:381 +#: common/serializers.py:429 msgid "Pending Tasks" msgstr "" -#: common/serializers.py:387 +#: common/serializers.py:435 msgid "Scheduled Tasks" msgstr "" -#: common/serializers.py:393 +#: common/serializers.py:441 msgid "Failed Tasks" msgstr "" -#: common/serializers.py:408 +#: common/serializers.py:456 msgid "Task ID" msgstr "" -#: common/serializers.py:408 +#: common/serializers.py:456 msgid "Unique task ID" msgstr "" -#: common/serializers.py:410 +#: common/serializers.py:458 msgid "Lock" msgstr "" -#: common/serializers.py:410 +#: common/serializers.py:458 msgid "Lock time" msgstr "" -#: common/serializers.py:412 +#: common/serializers.py:460 msgid "Task name" msgstr "" -#: common/serializers.py:414 +#: common/serializers.py:462 msgid "Function" msgstr "" -#: common/serializers.py:414 +#: common/serializers.py:462 msgid "Function name" msgstr "" -#: common/serializers.py:416 +#: common/serializers.py:464 msgid "Arguments" msgstr "" -#: common/serializers.py:416 +#: common/serializers.py:464 msgid "Task arguments" msgstr "" -#: common/serializers.py:419 +#: common/serializers.py:467 msgid "Keyword Arguments" msgstr "" -#: common/serializers.py:419 +#: common/serializers.py:467 msgid "Task keyword arguments" msgstr "" -#: common/serializers.py:529 +#: common/serializers.py:577 msgid "Filename" msgstr "" -#: common/serializers.py:536 report/api.py:100 report/serializers.py:53 +#: common/serializers.py:584 report/api.py:100 report/serializers.py:54 msgid "Model Type" msgstr "" -#: common/serializers.py:565 +#: common/serializers.py:612 msgid "User does not have permission to create or edit attachments for this model" msgstr "" @@ -4116,15 +4295,15 @@ msgstr "" msgid "Match Items" msgstr "" -#: common/views.py:401 +#: common/views.py:397 msgid "Fields matching failed" msgstr "" -#: common/views.py:464 +#: common/views.py:460 msgid "Parts imported" msgstr "" -#: common/views.py:494 order/templates/order/order_wizard/match_fields.html:27 +#: common/views.py:490 order/templates/order/order_wizard/match_fields.html:27 #: order/templates/order/order_wizard/match_parts.html:19 #: order/templates/order/order_wizard/po_upload.html:49 #: part/templates/part/import_wizard/match_fields.html:27 @@ -4155,429 +4334,429 @@ msgstr "" msgid "Supplier is Active" msgstr "" -#: company/models.py:100 company/models.py:371 +#: company/models.py:97 company/models.py:368 #: company/templates/company/company_base.html:8 #: company/templates/company/company_base.html:12 stock/api.py:812 -#: templates/InvenTree/search.html:178 templates/js/translated/company.js:496 +#: templates/InvenTree/search.html:178 templates/js/translated/company.js:497 msgid "Company" msgstr "" -#: company/models.py:101 company/views.py:51 +#: company/models.py:98 company/views.py:51 #: templates/js/translated/search.js:192 msgid "Companies" msgstr "" -#: company/models.py:117 +#: company/models.py:114 msgid "Company description" msgstr "" -#: company/models.py:118 +#: company/models.py:115 msgid "Description of the company" msgstr "" -#: company/models.py:123 company/templates/company/company_base.html:106 +#: company/models.py:120 company/templates/company/company_base.html:106 #: templates/InvenTree/settings/plugin_settings.html:54 -#: templates/js/translated/company.js:532 +#: templates/js/translated/company.js:533 msgid "Website" msgstr "" -#: company/models.py:123 +#: company/models.py:120 msgid "Company website URL" msgstr "" -#: company/models.py:128 +#: company/models.py:125 msgid "Phone number" msgstr "" -#: company/models.py:130 +#: company/models.py:127 msgid "Contact phone number" msgstr "" -#: company/models.py:137 +#: company/models.py:134 msgid "Contact email address" msgstr "" -#: company/models.py:142 company/models.py:275 -#: company/templates/company/company_base.html:145 order/models.py:342 -#: order/templates/order/order_base.html:208 -#: order/templates/order/return_order_base.html:177 -#: order/templates/order/sales_order_base.html:221 +#: company/models.py:139 company/models.py:272 +#: company/templates/company/company_base.html:145 order/models.py:349 +#: order/templates/order/order_base.html:217 +#: order/templates/order/return_order_base.html:178 +#: order/templates/order/sales_order_base.html:222 msgid "Contact" msgstr "" -#: company/models.py:144 +#: company/models.py:141 msgid "Point of contact" msgstr "" -#: company/models.py:150 +#: company/models.py:147 msgid "Link to external company information" msgstr "" -#: company/models.py:163 +#: company/models.py:160 msgid "Is this company active?" msgstr "" -#: company/models.py:168 +#: company/models.py:165 msgid "Is customer" msgstr "" -#: company/models.py:169 +#: company/models.py:166 msgid "Do you sell items to this company?" msgstr "" -#: company/models.py:174 +#: company/models.py:171 msgid "Is supplier" msgstr "" -#: company/models.py:175 +#: company/models.py:172 msgid "Do you purchase items from this company?" msgstr "" -#: company/models.py:180 +#: company/models.py:177 msgid "Is manufacturer" msgstr "" -#: company/models.py:181 +#: company/models.py:178 msgid "Does this company manufacture parts?" msgstr "" -#: company/models.py:189 +#: company/models.py:186 msgid "Default currency used for this company" msgstr "" -#: company/models.py:314 company/templates/company/company_base.html:124 -#: order/models.py:352 order/templates/order/order_base.html:215 -#: order/templates/order/return_order_base.html:184 -#: order/templates/order/sales_order_base.html:228 +#: company/models.py:311 company/templates/company/company_base.html:124 +#: order/models.py:359 order/templates/order/order_base.html:224 +#: order/templates/order/return_order_base.html:185 +#: order/templates/order/sales_order_base.html:229 msgid "Address" msgstr "" -#: company/models.py:315 company/templates/company/sidebar.html:35 +#: company/models.py:312 company/templates/company/sidebar.html:35 msgid "Addresses" msgstr "" -#: company/models.py:372 +#: company/models.py:369 msgid "Select company" msgstr "" -#: company/models.py:377 +#: company/models.py:374 msgid "Address title" msgstr "" -#: company/models.py:378 +#: company/models.py:375 msgid "Title describing the address entry" msgstr "" -#: company/models.py:384 +#: company/models.py:381 msgid "Primary address" msgstr "" -#: company/models.py:385 +#: company/models.py:382 msgid "Set as primary address" msgstr "" -#: company/models.py:390 templates/js/translated/company.js:914 -#: templates/js/translated/company.js:971 +#: company/models.py:387 templates/js/translated/company.js:915 +#: templates/js/translated/company.js:972 msgid "Line 1" msgstr "" -#: company/models.py:391 +#: company/models.py:388 msgid "Address line 1" msgstr "" -#: company/models.py:397 templates/js/translated/company.js:915 -#: templates/js/translated/company.js:977 +#: company/models.py:394 templates/js/translated/company.js:916 +#: templates/js/translated/company.js:978 msgid "Line 2" msgstr "" -#: company/models.py:398 +#: company/models.py:395 msgid "Address line 2" msgstr "" -#: company/models.py:404 company/models.py:405 -#: templates/js/translated/company.js:983 +#: company/models.py:401 company/models.py:402 +#: templates/js/translated/company.js:984 msgid "Postal code" msgstr "" -#: company/models.py:411 +#: company/models.py:408 msgid "City/Region" msgstr "" -#: company/models.py:412 +#: company/models.py:409 msgid "Postal code city/region" msgstr "" -#: company/models.py:418 +#: company/models.py:415 msgid "State/Province" msgstr "" -#: company/models.py:419 +#: company/models.py:416 msgid "State or province" msgstr "" -#: company/models.py:425 templates/js/translated/company.js:1001 +#: company/models.py:422 templates/js/translated/company.js:1002 msgid "Country" msgstr "" -#: company/models.py:426 +#: company/models.py:423 msgid "Address country" msgstr "" -#: company/models.py:432 +#: company/models.py:429 msgid "Courier shipping notes" msgstr "" -#: company/models.py:433 +#: company/models.py:430 msgid "Notes for shipping courier" msgstr "" -#: company/models.py:439 +#: company/models.py:436 msgid "Internal shipping notes" msgstr "" -#: company/models.py:440 +#: company/models.py:437 msgid "Shipping notes for internal use" msgstr "" -#: company/models.py:447 +#: company/models.py:444 msgid "Link to address information (external)" msgstr "" -#: company/models.py:470 company/models.py:587 company/models.py:811 +#: company/models.py:467 company/models.py:584 company/models.py:808 #: company/templates/company/manufacturer_part.html:7 #: company/templates/company/manufacturer_part.html:24 -#: stock/templates/stock/item_base.html:217 +#: stock/templates/stock/item_base.html:214 msgid "Manufacturer Part" msgstr "" -#: company/models.py:487 company/models.py:779 stock/models.py:787 -#: stock/serializers.py:445 stock/templates/stock/item_base.html:142 +#: company/models.py:484 company/models.py:776 stock/models.py:864 +#: stock/serializers.py:455 stock/templates/stock/item_base.html:139 #: templates/js/translated/bom.js:622 msgid "Base Part" msgstr "" -#: company/models.py:489 company/models.py:781 +#: company/models.py:486 company/models.py:778 msgid "Select part" msgstr "" -#: company/models.py:498 company/templates/company/company_base.html:82 +#: company/models.py:495 company/templates/company/company_base.html:82 #: company/templates/company/manufacturer_part.html:90 -#: company/templates/company/supplier_part.html:145 part/serializers.py:554 -#: stock/templates/stock/item_base.html:207 -#: templates/js/translated/company.js:507 -#: templates/js/translated/company.js:1118 -#: templates/js/translated/company.js:1296 -#: templates/js/translated/company.js:1611 +#: company/templates/company/supplier_part.html:146 part/serializers.py:598 +#: stock/templates/stock/item_base.html:204 +#: templates/js/translated/company.js:508 +#: templates/js/translated/company.js:1119 +#: templates/js/translated/company.js:1297 +#: templates/js/translated/company.js:1612 #: templates/js/translated/table_filters.js:812 msgid "Manufacturer" msgstr "" -#: company/models.py:499 +#: company/models.py:496 msgid "Select manufacturer" msgstr "" -#: company/models.py:505 company/templates/company/manufacturer_part.html:101 -#: company/templates/company/supplier_part.html:153 order/serializers.py:556 -#: part/serializers.py:564 templates/js/translated/company.js:351 -#: templates/js/translated/company.js:1117 -#: templates/js/translated/company.js:1312 -#: templates/js/translated/company.js:1630 templates/js/translated/part.js:1807 -#: templates/js/translated/purchase_order.js:1921 -#: templates/js/translated/purchase_order.js:2123 +#: company/models.py:502 company/templates/company/manufacturer_part.html:101 +#: company/templates/company/supplier_part.html:154 order/serializers.py:641 +#: part/serializers.py:608 templates/js/translated/company.js:352 +#: templates/js/translated/company.js:1118 +#: templates/js/translated/company.js:1313 +#: templates/js/translated/company.js:1631 templates/js/translated/part.js:1807 +#: templates/js/translated/purchase_order.js:1905 +#: templates/js/translated/purchase_order.js:2107 msgid "MPN" msgstr "" -#: company/models.py:513 +#: company/models.py:510 msgid "URL for external manufacturer part link" msgstr "" -#: company/models.py:522 +#: company/models.py:519 msgid "Manufacturer part description" msgstr "" -#: company/models.py:575 +#: company/models.py:572 msgid "Manufacturer Part Parameter" msgstr "" -#: company/models.py:594 +#: company/models.py:591 msgid "Parameter name" msgstr "" -#: company/models.py:600 report/templates/report/inventree_test_report.html:104 -#: stock/models.py:2550 templates/js/translated/company.js:1166 -#: templates/js/translated/company.js:1419 templates/js/translated/part.js:1499 +#: company/models.py:597 report/templates/report/inventree_test_report.html:104 +#: stock/models.py:2666 templates/js/translated/company.js:1167 +#: templates/js/translated/company.js:1420 templates/js/translated/part.js:1499 #: templates/js/translated/stock.js:1607 msgid "Value" msgstr "" -#: company/models.py:601 +#: company/models.py:598 msgid "Parameter value" msgstr "" -#: company/models.py:608 company/templates/company/supplier_part.html:168 -#: part/admin.py:57 part/models.py:1147 part/models.py:3771 -#: part/templates/part/part_base.html:293 -#: templates/js/translated/company.js:1425 templates/js/translated/part.js:1518 +#: company/models.py:605 company/templates/company/supplier_part.html:169 +#: part/admin.py:57 part/models.py:1208 part/models.py:3822 +#: part/templates/part/part_base.html:301 +#: templates/js/translated/company.js:1426 templates/js/translated/part.js:1518 #: templates/js/translated/part.js:1622 templates/js/translated/part.js:2376 msgid "Units" msgstr "" -#: company/models.py:609 +#: company/models.py:606 msgid "Parameter units" msgstr "" -#: company/models.py:662 company/templates/company/supplier_part.html:7 -#: company/templates/company/supplier_part.html:24 order/api.py:442 -#: order/serializers.py:491 stock/models.py:798 -#: stock/templates/stock/item_base.html:233 -#: templates/js/translated/build.js:1052 -#: templates/js/translated/company.js:1600 -#: templates/js/translated/purchase_order.js:752 -#: templates/js/translated/stock.js:2365 +#: company/models.py:659 company/templates/company/supplier_part.html:8 +#: company/templates/company/supplier_part.html:25 order/api.py:392 +#: order/serializers.py:576 stock/models.py:875 +#: stock/templates/stock/item_base.html:230 +#: templates/js/translated/build.js:1055 +#: templates/js/translated/company.js:1601 +#: templates/js/translated/purchase_order.js:735 +#: templates/js/translated/stock.js:2366 msgid "Supplier Part" msgstr "" -#: company/models.py:719 +#: company/models.py:716 msgid "Pack units must be compatible with the base part units" msgstr "" -#: company/models.py:726 +#: company/models.py:723 msgid "Pack units must be greater than zero" msgstr "" -#: company/models.py:740 +#: company/models.py:737 msgid "Linked manufacturer part must reference the same base part" msgstr "" -#: company/models.py:789 company/templates/company/company_base.html:87 -#: company/templates/company/supplier_part.html:129 order/models.py:491 -#: order/templates/order/order_base.html:141 part/bom.py:280 part/bom.py:318 -#: part/serializers.py:538 plugin/builtin/suppliers/digikey.py:25 +#: company/models.py:786 company/templates/company/company_base.html:87 +#: company/templates/company/supplier_part.html:130 order/models.py:503 +#: order/templates/order/order_base.html:150 part/bom.py:279 part/bom.py:314 +#: part/serializers.py:582 plugin/builtin/suppliers/digikey.py:25 #: plugin/builtin/suppliers/lcsc.py:26 plugin/builtin/suppliers/mouser.py:24 -#: plugin/builtin/suppliers/tme.py:26 stock/templates/stock/item_base.html:224 +#: plugin/builtin/suppliers/tme.py:26 stock/templates/stock/item_base.html:221 #: templates/email/overdue_purchase_order.html:16 -#: templates/js/translated/company.js:350 -#: templates/js/translated/company.js:511 -#: templates/js/translated/company.js:1584 templates/js/translated/part.js:1775 +#: templates/js/translated/company.js:351 +#: templates/js/translated/company.js:512 +#: templates/js/translated/company.js:1585 templates/js/translated/part.js:1775 #: templates/js/translated/pricing.js:498 -#: templates/js/translated/purchase_order.js:1759 +#: templates/js/translated/purchase_order.js:1743 #: templates/js/translated/table_filters.js:816 msgid "Supplier" msgstr "" -#: company/models.py:790 +#: company/models.py:787 msgid "Select supplier" msgstr "" -#: company/models.py:796 part/serializers.py:549 +#: company/models.py:793 part/serializers.py:593 msgid "Supplier stock keeping unit" msgstr "" -#: company/models.py:802 +#: company/models.py:799 msgid "Is this supplier part active?" msgstr "" -#: company/models.py:812 +#: company/models.py:809 msgid "Select manufacturer part" msgstr "" -#: company/models.py:819 +#: company/models.py:816 msgid "URL for external supplier part link" msgstr "" -#: company/models.py:828 +#: company/models.py:825 msgid "Supplier part description" msgstr "" -#: company/models.py:835 company/templates/company/supplier_part.html:187 -#: order/serializers.py:698 part/admin.py:415 part/models.py:4288 +#: company/models.py:832 company/templates/company/supplier_part.html:188 +#: order/serializers.py:783 part/admin.py:415 part/models.py:4345 #: part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_bill_of_materials_report.html:140 #: report/templates/report/inventree_purchase_order_report.html:32 #: report/templates/report/inventree_return_order_report.html:27 #: report/templates/report/inventree_sales_order_report.html:32 #: report/templates/report/inventree_stock_location_report.html:105 -#: stock/serializers.py:776 templates/js/translated/purchase_order.js:1185 -#: templates/js/translated/purchase_order.js:1344 +#: stock/serializers.py:807 templates/js/translated/purchase_order.js:1168 +#: templates/js/translated/purchase_order.js:1327 msgid "Note" msgstr "" -#: company/models.py:844 part/models.py:2117 +#: company/models.py:841 part/models.py:2177 msgid "base cost" msgstr "" -#: company/models.py:845 part/models.py:2118 +#: company/models.py:842 part/models.py:2178 msgid "Minimum charge (e.g. stocking fee)" msgstr "" -#: company/models.py:853 +#: company/models.py:850 msgid "Part packaging" msgstr "" -#: company/models.py:858 templates/js/translated/company.js:1651 +#: company/models.py:855 templates/js/translated/company.js:1652 #: templates/js/translated/part.js:1828 templates/js/translated/part.js:1884 -#: templates/js/translated/purchase_order.js:311 -#: templates/js/translated/purchase_order.js:841 -#: templates/js/translated/purchase_order.js:1103 -#: templates/js/translated/purchase_order.js:2154 -#: templates/js/translated/purchase_order.js:2171 +#: templates/js/translated/purchase_order.js:294 +#: templates/js/translated/purchase_order.js:824 +#: templates/js/translated/purchase_order.js:1086 +#: templates/js/translated/purchase_order.js:2138 +#: templates/js/translated/purchase_order.js:2155 msgid "Pack Quantity" msgstr "" -#: company/models.py:860 +#: company/models.py:857 msgid "Total quantity supplied in a single pack. Leave empty for single items." msgstr "" -#: company/models.py:879 part/models.py:2124 +#: company/models.py:876 part/models.py:2184 msgid "multiple" msgstr "" -#: company/models.py:880 +#: company/models.py:877 msgid "Order multiple" msgstr "" -#: company/models.py:892 +#: company/models.py:889 msgid "Quantity available from supplier" msgstr "" -#: company/models.py:898 +#: company/models.py:895 msgid "Availability Updated" msgstr "" -#: company/models.py:899 +#: company/models.py:896 msgid "Date of last update of availability data" msgstr "" -#: company/models.py:1027 +#: company/models.py:1024 msgid "Supplier Price Break" msgstr "" -#: company/serializers.py:174 +#: company/serializers.py:178 msgid "Default currency used for this supplier" msgstr "" -#: company/serializers.py:210 +#: company/serializers.py:214 msgid "Company Name" msgstr "" -#: company/serializers.py:393 part/admin.py:126 part/serializers.py:898 -#: part/templates/part/part_base.html:197 -#: templates/js/translated/company.js:1689 +#: company/serializers.py:397 part/admin.py:126 part/serializers.py:950 +#: part/templates/part/part_base.html:198 stock/serializers.py:474 +#: templates/js/translated/company.js:1690 #: templates/js/translated/table_filters.js:362 msgid "In Stock" msgstr "" #: company/templates/company/company_base.html:16 -#: part/templates/part/part_base.html:146 -#: templates/js/translated/company.js:1287 -#: templates/js/translated/company.js:1575 -#: templates/js/translated/model_renderers.js:313 +#: part/templates/part/part_base.html:147 +#: templates/js/translated/company.js:1288 +#: templates/js/translated/company.js:1576 +#: templates/js/translated/model_renderers.js:316 #: templates/js/translated/part.js:817 templates/js/translated/part.js:1225 msgid "Inactive" msgstr "" #: company/templates/company/company_base.html:27 -#: templates/js/translated/purchase_order.js:242 +#: templates/js/translated/purchase_order.js:224 msgid "Create Purchase Order" msgstr "" @@ -4590,7 +4769,7 @@ msgid "Edit company information" msgstr "" #: company/templates/company/company_base.html:39 -#: templates/js/translated/company.js:445 +#: templates/js/translated/company.js:446 msgid "Edit Company" msgstr "" @@ -4605,11 +4784,12 @@ msgstr "" #: company/templates/company/company_base.html:53 #: company/templates/company/manufacturer_part.html:51 -#: company/templates/company/supplier_part.html:83 +#: company/templates/company/supplier_part.html:84 #: part/templates/part/part_thumb.html:20 #: report/templates/report/inventree_build_order_report.html:98 #: report/templates/report/inventree_purchase_order_report.html:40 #: report/templates/report/inventree_sales_order_report.html:40 +#: report/templates/report/inventree_sales_order_shipment_report.html:37 #: report/templates/report/inventree_test_report.html:84 #: report/templates/report/inventree_test_report.html:162 msgid "Part image" @@ -4630,16 +4810,16 @@ msgstr "" msgid "Delete image" msgstr "" -#: company/templates/company/company_base.html:92 order/models.py:990 -#: order/models.py:2147 order/templates/order/return_order_base.html:134 -#: order/templates/order/sales_order_base.html:151 stock/models.py:840 -#: stock/models.py:841 stock/serializers.py:1329 -#: stock/templates/stock/item_base.html:405 +#: company/templates/company/company_base.html:92 order/models.py:1017 +#: order/models.py:2186 order/templates/order/return_order_base.html:135 +#: order/templates/order/sales_order_base.html:152 stock/models.py:917 +#: stock/models.py:918 stock/serializers.py:1360 +#: stock/templates/stock/item_base.html:402 #: templates/email/overdue_sales_order.html:16 -#: templates/js/translated/company.js:503 +#: templates/js/translated/company.js:504 #: templates/js/translated/return_order.js:295 -#: templates/js/translated/sales_order.js:820 -#: templates/js/translated/stock.js:3043 +#: templates/js/translated/sales_order.js:779 +#: templates/js/translated/stock.js:3044 #: templates/js/translated/table_filters.js:820 msgid "Customer" msgstr "" @@ -4653,7 +4833,7 @@ msgid "Phone" msgstr "" #: company/templates/company/company_base.html:211 -#: part/templates/part/part_base.html:536 +#: part/templates/part/part_base.html:544 msgid "Remove Image" msgstr "" @@ -4662,19 +4842,19 @@ msgid "Remove associated image from this company" msgstr "" #: company/templates/company/company_base.html:214 -#: part/templates/part/part_base.html:539 +#: part/templates/part/part_base.html:547 #: templates/InvenTree/settings/user.html:88 #: templates/InvenTree/settings/user_sso.html:43 msgid "Remove" msgstr "" #: company/templates/company/company_base.html:243 -#: part/templates/part/part_base.html:568 +#: part/templates/part/part_base.html:576 msgid "Upload Image" msgstr "" #: company/templates/company/company_base.html:258 -#: part/templates/part/part_base.html:622 +#: part/templates/part/part_base.html:630 msgid "Download Image" msgstr "" @@ -4714,7 +4894,7 @@ msgstr "" #: company/templates/company/detail.html:75 #: company/templates/company/sidebar.html:12 #: company/templates/company/supplier_part_sidebar.html:7 -#: order/templates/order/order_base.html:13 +#: order/templates/order/order_base.html:14 #: order/templates/order/purchase_orders.html:8 #: order/templates/order/purchase_orders.html:12 #: part/templates/part/detail.html:122 part/templates/part/part_sidebar.html:35 @@ -4737,7 +4917,7 @@ msgstr "" #: company/templates/company/detail.html:101 #: company/templates/company/sidebar.html:21 -#: order/templates/order/sales_order_base.html:13 +#: order/templates/order/sales_order_base.html:14 #: order/templates/order/sales_orders.html:8 #: order/templates/order/sales_orders.html:15 #: part/templates/part/detail.html:143 part/templates/part/part_sidebar.html:39 @@ -4764,7 +4944,7 @@ msgstr "" #: company/templates/company/detail.html:142 #: company/templates/company/sidebar.html:29 -#: order/templates/order/return_order_base.html:13 +#: order/templates/order/return_order_base.html:14 #: order/templates/order/return_orders.html:8 #: order/templates/order/return_orders.html:15 #: templates/InvenTree/settings/sidebar.html:61 @@ -4811,24 +4991,24 @@ msgid "Manufacturers" msgstr "" #: company/templates/company/manufacturer_part.html:35 -#: company/templates/company/supplier_part.html:227 -#: part/templates/part/detail.html:125 part/templates/part/part_base.html:83 +#: company/templates/company/supplier_part.html:228 +#: part/templates/part/detail.html:125 part/templates/part/part_base.html:84 msgid "Order part" msgstr "" #: company/templates/company/manufacturer_part.html:39 -#: templates/js/translated/company.js:1343 +#: templates/js/translated/company.js:1344 msgid "Edit manufacturer part" msgstr "" #: company/templates/company/manufacturer_part.html:43 -#: templates/js/translated/company.js:1344 +#: templates/js/translated/company.js:1345 msgid "Delete manufacturer part" msgstr "" #: company/templates/company/manufacturer_part.html:65 -#: company/templates/company/supplier_part.html:97 order/api.py:448 -#: order/serializers.py:564 +#: company/templates/company/supplier_part.html:98 order/api.py:411 +#: order/serializers.py:649 msgid "Internal Part" msgstr "" @@ -4837,8 +5017,8 @@ msgid "No manufacturer information available" msgstr "" #: company/templates/company/manufacturer_part.html:119 -#: company/templates/company/supplier_part.html:15 company/views.py:31 -#: part/admin.py:122 part/serializers.py:904 +#: company/templates/company/supplier_part.html:16 company/views.py:31 +#: part/admin.py:122 part/serializers.py:956 #: part/templates/part/part_sidebar.html:33 templates/InvenTree/search.html:190 #: templates/navbar.html:48 msgid "Suppliers" @@ -4887,112 +5067,113 @@ msgstr "" msgid "Contacts" msgstr "" -#: company/templates/company/supplier_part.html:50 -#: templates/js/translated/company.js:1526 +#: company/templates/company/supplier_part.html:51 +#: templates/js/translated/company.js:1527 msgid "Supplier part actions" msgstr "" -#: company/templates/company/supplier_part.html:55 #: company/templates/company/supplier_part.html:56 -#: company/templates/company/supplier_part.html:228 +#: company/templates/company/supplier_part.html:57 +#: company/templates/company/supplier_part.html:229 #: part/templates/part/detail.html:126 msgid "Order Part" msgstr "" -#: company/templates/company/supplier_part.html:60 #: company/templates/company/supplier_part.html:61 +#: company/templates/company/supplier_part.html:62 msgid "Update Availability" msgstr "" -#: company/templates/company/supplier_part.html:63 #: company/templates/company/supplier_part.html:64 -#: templates/js/translated/company.js:294 +#: company/templates/company/supplier_part.html:65 +#: templates/js/translated/company.js:295 msgid "Edit Supplier Part" msgstr "" -#: company/templates/company/supplier_part.html:68 #: company/templates/company/supplier_part.html:69 -#: templates/js/translated/company.js:269 +#: company/templates/company/supplier_part.html:70 +#: templates/js/translated/company.js:270 msgid "Duplicate Supplier Part" msgstr "" -#: company/templates/company/supplier_part.html:73 +#: company/templates/company/supplier_part.html:74 msgid "Delete Supplier Part" msgstr "" -#: company/templates/company/supplier_part.html:74 +#: company/templates/company/supplier_part.html:75 msgid "Delete Supplier Part" msgstr "" -#: company/templates/company/supplier_part.html:133 +#: company/templates/company/supplier_part.html:134 +#: order/templates/order/order_base.html:155 msgid "No supplier information available" msgstr "" -#: company/templates/company/supplier_part.html:139 order/serializers.py:553 -#: part/bom.py:287 part/bom.py:319 part/serializers.py:548 -#: templates/js/translated/company.js:349 templates/js/translated/part.js:1793 +#: company/templates/company/supplier_part.html:140 order/serializers.py:638 +#: part/bom.py:286 part/bom.py:315 part/serializers.py:592 +#: templates/js/translated/company.js:350 templates/js/translated/part.js:1793 #: templates/js/translated/pricing.js:510 -#: templates/js/translated/purchase_order.js:1920 -#: templates/js/translated/purchase_order.js:2098 +#: templates/js/translated/purchase_order.js:1904 +#: templates/js/translated/purchase_order.js:2082 msgid "SKU" msgstr "" -#: company/templates/company/supplier_part.html:206 +#: company/templates/company/supplier_part.html:207 msgid "Supplier Part Stock" msgstr "" -#: company/templates/company/supplier_part.html:209 -#: part/templates/part/detail.html:24 stock/templates/stock/location.html:204 +#: company/templates/company/supplier_part.html:210 +#: part/templates/part/detail.html:24 stock/templates/stock/location.html:205 msgid "Create new stock item" msgstr "" -#: company/templates/company/supplier_part.html:210 -#: part/templates/part/detail.html:25 stock/templates/stock/location.html:205 +#: company/templates/company/supplier_part.html:211 +#: part/templates/part/detail.html:25 stock/templates/stock/location.html:206 #: templates/js/translated/stock.js:543 msgid "New Stock Item" msgstr "" -#: company/templates/company/supplier_part.html:223 +#: company/templates/company/supplier_part.html:224 msgid "Supplier Part Orders" msgstr "" -#: company/templates/company/supplier_part.html:246 +#: company/templates/company/supplier_part.html:247 msgid "Pricing Information" msgstr "" -#: company/templates/company/supplier_part.html:251 -#: templates/js/translated/company.js:398 +#: company/templates/company/supplier_part.html:252 +#: templates/js/translated/company.js:399 #: templates/js/translated/pricing.js:684 msgid "Add Price Break" msgstr "" -#: company/templates/company/supplier_part.html:270 +#: company/templates/company/supplier_part.html:271 msgid "Supplier Part Notes" msgstr "" -#: company/templates/company/supplier_part.html:305 +#: company/templates/company/supplier_part.html:306 msgid "Supplier Part QR Code" msgstr "" -#: company/templates/company/supplier_part.html:316 +#: company/templates/company/supplier_part.html:317 msgid "Link Barcode to Supplier Part" msgstr "" -#: company/templates/company/supplier_part.html:388 +#: company/templates/company/supplier_part.html:389 msgid "Update Part Availability" msgstr "" #: company/templates/company/supplier_part_sidebar.html:5 -#: part/serializers.py:902 part/stocktake.py:223 +#: part/serializers.py:954 part/stocktake.py:223 #: part/templates/part/category.html:180 #: part/templates/part/category_sidebar.html:17 stock/admin.py:68 -#: stock/serializers.py:1014 stock/serializers.py:1192 -#: stock/templates/stock/location.html:167 -#: stock/templates/stock/location.html:188 -#: stock/templates/stock/location.html:200 +#: stock/serializers.py:1045 stock/serializers.py:1223 +#: stock/templates/stock/location.html:168 +#: stock/templates/stock/location.html:189 +#: stock/templates/stock/location.html:201 #: stock/templates/stock/location_sidebar.html:7 #: templates/InvenTree/search.html:155 templates/js/translated/part.js:1067 -#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2850 +#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2851 #: users/models.py:206 msgid "Stock Items" msgstr "" @@ -5022,99 +5203,99 @@ msgstr "" msgid "New Company" msgstr "" -#: generic/states/tests.py:18 order/status_codes.py:13 +#: generic/states/fields.py:118 +msgid "Custom status key" +msgstr "" + +#: generic/states/fields.py:119 +msgid "Additional status information for this item" +msgstr "" + +#: generic/states/tests.py:22 order/status_codes.py:13 msgid "Placed" msgstr "" -#: importer/mixins.py:263 +#: importer/mixins.py:261 msgid "Invalid export format" msgstr "" -#: importer/models.py:59 -msgid "Timestamp" -msgstr "" - -#: importer/models.py:64 +#: importer/models.py:65 msgid "Data file to import" msgstr "" -#: importer/models.py:73 templates/js/translated/tables.js:558 +#: importer/models.py:74 templates/js/translated/tables.js:558 msgid "Columns" msgstr "" -#: importer/models.py:84 +#: importer/models.py:85 msgid "Import status" msgstr "" -#: importer/models.py:94 +#: importer/models.py:95 msgid "Field Defaults" msgstr "" -#: importer/models.py:101 +#: importer/models.py:102 msgid "Field Overrides" msgstr "" -#: importer/models.py:108 +#: importer/models.py:109 msgid "Field Filters" msgstr "" -#: importer/models.py:230 +#: importer/models.py:239 msgid "Some required fields have not been mapped" msgstr "" -#: importer/models.py:387 +#: importer/models.py:396 msgid "Column is already mapped to a database field" msgstr "" -#: importer/models.py:392 +#: importer/models.py:401 msgid "Field is already mapped to a data column" msgstr "" -#: importer/models.py:401 +#: importer/models.py:410 msgid "Column mapping must be linked to a valid import session" msgstr "" -#: importer/models.py:406 +#: importer/models.py:415 msgid "Column does not exist in the data file" msgstr "" -#: importer/models.py:413 +#: importer/models.py:422 msgid "Field does not exist in the target model" msgstr "" -#: importer/models.py:417 +#: importer/models.py:426 msgid "Selected field is read-only" msgstr "" -#: importer/models.py:422 importer/models.py:493 +#: importer/models.py:431 importer/models.py:502 msgid "Import Session" msgstr "" -#: importer/models.py:426 +#: importer/models.py:435 msgid "Field" msgstr "" -#: importer/models.py:428 +#: importer/models.py:437 msgid "Column" msgstr "" -#: importer/models.py:497 +#: importer/models.py:506 msgid "Row Index" msgstr "" -#: importer/models.py:500 +#: importer/models.py:509 msgid "Original row data" msgstr "" -#: importer/models.py:503 part/models.py:3951 -msgid "Data" -msgstr "" - -#: importer/models.py:505 machine/models.py:110 +#: importer/models.py:514 machine/models.py:110 msgid "Errors" msgstr "" -#: importer/models.py:507 part/api.py:873 +#: importer/models.py:516 part/api.py:857 msgid "Valid" msgstr "" @@ -5166,19 +5347,19 @@ msgstr "" msgid "Row has already been completed" msgstr "" -#: importer/status_codes.py:11 +#: importer/status_codes.py:13 msgid "Initializing" msgstr "" -#: importer/status_codes.py:12 +#: importer/status_codes.py:18 msgid "Mapping Columns" msgstr "" -#: importer/status_codes.py:13 +#: importer/status_codes.py:21 msgid "Importing Data" msgstr "" -#: importer/status_codes.py:16 +#: importer/status_codes.py:24 msgid "Processing Data" msgstr "" @@ -5202,52 +5383,52 @@ msgstr "" msgid "Value must be a valid dictionary object" msgstr "" -#: machine/machine_types/label_printer.py:215 +#: machine/machine_types/label_printer.py:216 msgid "Copies" msgstr "" -#: machine/machine_types/label_printer.py:216 +#: machine/machine_types/label_printer.py:217 msgid "Number of copies to print for each label" msgstr "" -#: machine/machine_types/label_printer.py:231 +#: machine/machine_types/label_printer.py:232 msgid "Connected" msgstr "" -#: machine/machine_types/label_printer.py:232 order/api.py:1410 -#: templates/js/translated/sales_order.js:1078 +#: machine/machine_types/label_printer.py:233 order/api.py:1532 +#: templates/js/translated/sales_order.js:1044 msgid "Unknown" msgstr "" -#: machine/machine_types/label_printer.py:233 +#: machine/machine_types/label_printer.py:234 msgid "Printing" msgstr "" -#: machine/machine_types/label_printer.py:234 +#: machine/machine_types/label_printer.py:235 msgid "No media" msgstr "" -#: machine/machine_types/label_printer.py:235 +#: machine/machine_types/label_printer.py:236 msgid "Paper jam" msgstr "" -#: machine/machine_types/label_printer.py:236 +#: machine/machine_types/label_printer.py:237 msgid "Disconnected" msgstr "" -#: machine/machine_types/label_printer.py:243 +#: machine/machine_types/label_printer.py:244 msgid "Label Printer" msgstr "" -#: machine/machine_types/label_printer.py:244 +#: machine/machine_types/label_printer.py:245 msgid "Directly print labels for various items." msgstr "" -#: machine/machine_types/label_printer.py:250 +#: machine/machine_types/label_printer.py:251 msgid "Printer Location" msgstr "" -#: machine/machine_types/label_printer.py:251 +#: machine/machine_types/label_printer.py:252 msgid "Scope the printer to a specific location" msgstr "" @@ -5307,79 +5488,75 @@ msgstr "" #: report/templates/report/inventree_purchase_order_report.html:31 #: report/templates/report/inventree_sales_order_report.html:31 #: templates/js/translated/order.js:352 -#: templates/js/translated/purchase_order.js:2195 -#: templates/js/translated/sales_order.js:1883 +#: templates/js/translated/purchase_order.js:2179 +#: templates/js/translated/sales_order.js:1864 msgid "Total Price" msgstr "" -#: order/api.py:80 order/api.py:151 order/serializers.py:93 -#: order/templates/order/order_base.html:123 -#: order/templates/order/return_order_base.html:116 -#: order/templates/order/sales_order_base.html:125 +#: order/api.py:78 order/api.py:149 order/serializers.py:124 +#: order/templates/order/order_base.html:124 +#: order/templates/order/return_order_base.html:117 +#: order/templates/order/sales_order_base.html:126 msgid "Order Status" msgstr "" -#: order/api.py:88 order/templates/order/order_base.html:111 -#: order/templates/order/return_order_base.html:104 -#: order/templates/order/sales_order_base.html:113 +#: order/api.py:86 order/templates/order/order_base.html:112 +#: order/templates/order/return_order_base.html:105 +#: order/templates/order/sales_order_base.html:114 msgid "Order Reference" msgstr "" -#: order/api.py:116 templates/js/translated/table_filters.js:93 +#: order/api.py:114 order/api.py:1022 +#: templates/js/translated/table_filters.js:93 #: templates/js/translated/table_filters.js:625 #: templates/js/translated/table_filters.js:651 #: templates/js/translated/table_filters.js:666 msgid "Outstanding" msgstr "" -#: order/api.py:132 +#: order/api.py:130 msgid "Has Project Code" msgstr "" -#: order/api.py:155 templates/js/translated/table_filters.js:201 +#: order/api.py:153 templates/js/translated/table_filters.js:201 #: templates/js/translated/table_filters.js:791 msgid "Has Pricing" msgstr "" -#: order/api.py:230 -msgid "No matching purchase order found" -msgstr "" - -#: order/api.py:425 order/api.py:763 order/models.py:1484 order/models.py:1598 -#: order/models.py:1649 order/models.py:1764 order/models.py:1923 -#: order/models.py:2383 order/models.py:2439 -#: templates/js/translated/sales_order.js:1524 +#: order/api.py:375 order/api.py:771 order/api.py:986 order/models.py:1500 +#: order/models.py:1614 order/models.py:1665 order/models.py:1793 +#: order/models.py:1956 order/models.py:2422 order/models.py:2478 +#: templates/js/translated/sales_order.js:1490 msgid "Order" msgstr "" -#: order/api.py:429 order/api.py:784 +#: order/api.py:379 order/api.py:809 msgid "Order Complete" msgstr "" -#: order/api.py:452 +#: order/api.py:430 msgid "Order Pending" msgstr "" -#: order/api.py:1404 order/models.py:379 order/models.py:1485 -#: order/models.py:1599 order/templates/order/order_base.html:9 -#: order/templates/order/order_base.html:18 +#: order/api.py:1526 order/models.py:386 order/models.py:1501 +#: order/models.py:1615 order/templates/order/order_base.html:10 +#: order/templates/order/order_base.html:19 #: report/templates/report/inventree_purchase_order_report.html:14 -#: stock/serializers.py:120 stock/templates/stock/item_base.html:176 +#: stock/serializers.py:121 stock/templates/stock/item_base.html:173 #: templates/email/overdue_purchase_order.html:15 #: templates/js/translated/part.js:1752 templates/js/translated/pricing.js:804 -#: templates/js/translated/purchase_order.js:168 -#: templates/js/translated/purchase_order.js:753 -#: templates/js/translated/purchase_order.js:1743 -#: templates/js/translated/stock.js:2345 templates/js/translated/stock.js:2991 +#: templates/js/translated/purchase_order.js:736 +#: templates/js/translated/purchase_order.js:1727 +#: templates/js/translated/stock.js:2346 templates/js/translated/stock.js:2992 msgid "Purchase Order" msgstr "" -#: order/api.py:1408 order/models.py:2091 order/models.py:2384 -#: order/models.py:2440 order/templates/order/return_order_base.html:9 -#: order/templates/order/return_order_base.html:28 +#: order/api.py:1530 order/models.py:2124 order/models.py:2423 +#: order/models.py:2479 order/templates/order/return_order_base.html:10 +#: order/templates/order/return_order_base.html:29 #: report/templates/report/inventree_return_order_report.html:13 #: templates/js/translated/return_order.js:280 -#: templates/js/translated/stock.js:3025 +#: templates/js/translated/stock.js:3026 msgid "Return Order" msgstr "" @@ -5387,751 +5564,782 @@ msgstr "" msgid "Total price for this order" msgstr "" -#: order/models.py:95 order/serializers.py:71 +#: order/models.py:95 order/serializers.py:73 msgid "Order Currency" msgstr "" -#: order/models.py:98 order/serializers.py:72 +#: order/models.py:98 order/serializers.py:74 msgid "Currency for this order (leave blank to use company default)" msgstr "" -#: order/models.py:246 +#: order/models.py:243 msgid "Contact does not match selected company" msgstr "" -#: order/models.py:289 +#: order/models.py:296 msgid "Order description (optional)" msgstr "" -#: order/models.py:298 +#: order/models.py:305 msgid "Select project code for this order" msgstr "" -#: order/models.py:302 order/models.py:1385 order/models.py:1817 +#: order/models.py:309 order/models.py:1402 order/models.py:1846 msgid "Link to external page" msgstr "" -#: order/models.py:310 +#: order/models.py:317 msgid "Expected date for order delivery. Order will be overdue after this date." msgstr "" -#: order/models.py:324 +#: order/models.py:331 msgid "Created By" msgstr "" -#: order/models.py:332 +#: order/models.py:339 msgid "User or group responsible for this order" msgstr "" -#: order/models.py:343 +#: order/models.py:350 msgid "Point of contact for this order" msgstr "" -#: order/models.py:353 +#: order/models.py:360 msgid "Company address for this order" msgstr "" -#: order/models.py:468 order/models.py:979 +#: order/models.py:480 order/models.py:1006 msgid "Order reference" msgstr "" -#: order/models.py:477 +#: order/models.py:489 msgid "Purchase order status" msgstr "" -#: order/models.py:492 +#: order/models.py:504 msgid "Company from which the items are being ordered" msgstr "" -#: order/models.py:503 order/templates/order/order_base.html:153 -#: templates/js/translated/purchase_order.js:1772 +#: order/models.py:515 order/templates/order/order_base.html:162 +#: templates/js/translated/purchase_order.js:1756 msgid "Supplier Reference" msgstr "" -#: order/models.py:504 +#: order/models.py:516 msgid "Supplier order reference code" msgstr "" -#: order/models.py:513 +#: order/models.py:525 msgid "received by" msgstr "" -#: order/models.py:519 order/models.py:2173 +#: order/models.py:531 order/models.py:2212 msgid "Issue Date" msgstr "" -#: order/models.py:520 order/models.py:2174 +#: order/models.py:532 order/models.py:2213 msgid "Date order was issued" msgstr "" -#: order/models.py:527 order/models.py:2181 +#: order/models.py:539 order/models.py:2220 msgid "Date order was completed" msgstr "" -#: order/models.py:571 +#: order/models.py:549 order/models.py:1552 +msgid "Destination for received items" +msgstr "" + +#: order/models.py:593 msgid "Part supplier must match PO supplier" msgstr "" -#: order/models.py:806 +#: order/models.py:828 msgid "Quantity must be a positive number" msgstr "" -#: order/models.py:991 +#: order/models.py:1018 msgid "Company to which the items are being sold" msgstr "" -#: order/models.py:1003 +#: order/models.py:1030 msgid "Sales order status" msgstr "" -#: order/models.py:1014 order/models.py:2166 +#: order/models.py:1041 order/models.py:2205 msgid "Customer Reference " msgstr "" -#: order/models.py:1015 order/models.py:2167 +#: order/models.py:1042 order/models.py:2206 msgid "Customer order reference code" msgstr "" -#: order/models.py:1019 order/models.py:1771 -#: templates/js/translated/sales_order.js:879 -#: templates/js/translated/sales_order.js:1060 +#: order/models.py:1046 order/models.py:1800 +#: templates/js/translated/sales_order.js:838 +#: templates/js/translated/sales_order.js:1026 msgid "Shipment Date" msgstr "" -#: order/models.py:1028 +#: order/models.py:1055 msgid "shipped by" msgstr "" -#: order/models.py:1077 +#: order/models.py:1094 msgid "Order is already complete" msgstr "" -#: order/models.py:1080 +#: order/models.py:1097 msgid "Order is already cancelled" msgstr "" -#: order/models.py:1084 +#: order/models.py:1101 msgid "Only an open order can be marked as complete" msgstr "" -#: order/models.py:1088 +#: order/models.py:1105 msgid "Order cannot be completed as there are incomplete shipments" msgstr "" -#: order/models.py:1093 +#: order/models.py:1110 msgid "Order cannot be completed as there are incomplete line items" msgstr "" -#: order/models.py:1357 +#: order/models.py:1374 msgid "Item quantity" msgstr "" -#: order/models.py:1374 +#: order/models.py:1391 msgid "Line item reference" msgstr "" -#: order/models.py:1381 +#: order/models.py:1398 msgid "Line item notes" msgstr "" -#: order/models.py:1393 +#: order/models.py:1410 msgid "Target date for this line item (leave blank to use the target date from the order)" msgstr "" -#: order/models.py:1414 +#: order/models.py:1431 msgid "Line item description (optional)" msgstr "" -#: order/models.py:1420 -msgid "Context" -msgstr "" - -#: order/models.py:1421 +#: order/models.py:1438 msgid "Additional context for this line" msgstr "" -#: order/models.py:1431 +#: order/models.py:1448 msgid "Unit price" msgstr "" -#: order/models.py:1445 +#: order/models.py:1462 msgid "Purchase Order Line Item" msgstr "" -#: order/models.py:1469 +#: order/models.py:1486 msgid "Supplier part must match supplier" msgstr "" -#: order/models.py:1476 -msgid "deleted" -msgstr "" - -#: order/models.py:1504 +#: order/models.py:1520 msgid "Supplier part" msgstr "" -#: order/models.py:1511 order/templates/order/order_base.html:201 +#: order/models.py:1527 order/templates/order/order_base.html:210 #: templates/js/translated/part.js:1876 templates/js/translated/part.js:1908 -#: templates/js/translated/purchase_order.js:1369 -#: templates/js/translated/purchase_order.js:2239 +#: templates/js/translated/purchase_order.js:1352 +#: templates/js/translated/purchase_order.js:2223 #: templates/js/translated/return_order.js:762 #: templates/js/translated/table_filters.js:119 #: templates/js/translated/table_filters.js:605 msgid "Received" msgstr "" -#: order/models.py:1512 +#: order/models.py:1528 msgid "Number of items received" msgstr "" -#: order/models.py:1520 stock/models.py:959 stock/serializers.py:610 -#: stock/templates/stock/item_base.html:183 -#: templates/js/translated/stock.js:2396 +#: order/models.py:1536 stock/models.py:1036 stock/serializers.py:637 +#: stock/templates/stock/item_base.html:180 +#: templates/js/translated/stock.js:2397 msgid "Purchase Price" msgstr "" -#: order/models.py:1521 +#: order/models.py:1537 msgid "Unit purchase price" msgstr "" -#: order/models.py:1536 -msgid "Where does the Purchaser want this item to be stored?" -msgstr "" - -#: order/models.py:1587 +#: order/models.py:1603 msgid "Purchase Order Extra Line" msgstr "" -#: order/models.py:1616 +#: order/models.py:1632 msgid "Sales Order Line Item" msgstr "" -#: order/models.py:1637 +#: order/models.py:1653 msgid "Virtual part cannot be assigned to a sales order" msgstr "" -#: order/models.py:1642 +#: order/models.py:1658 msgid "Only salable parts can be assigned to a sales order" msgstr "" -#: order/models.py:1668 part/templates/part/part_pricing.html:107 -#: part/templates/part/prices.html:139 templates/js/translated/pricing.js:957 +#: order/models.py:1684 part/templates/part/part_pricing.html:107 +#: part/templates/part/prices.html:139 templates/js/translated/pricing.js:955 msgid "Sale Price" msgstr "" -#: order/models.py:1669 +#: order/models.py:1685 msgid "Unit sale price" msgstr "" -#: order/models.py:1678 order/status_codes.py:48 -#: templates/js/translated/sales_order.js:1559 -#: templates/js/translated/sales_order.js:1680 -#: templates/js/translated/sales_order.js:1993 +#: order/models.py:1694 order/status_codes.py:50 +#: templates/js/translated/sales_order.js:1525 +#: templates/js/translated/sales_order.js:1661 +#: templates/js/translated/sales_order.js:1974 msgid "Shipped" msgstr "" -#: order/models.py:1679 +#: order/models.py:1695 msgid "Shipped quantity" msgstr "" -#: order/models.py:1751 +#: order/models.py:1769 msgid "Sales Order Shipment" msgstr "" -#: order/models.py:1772 +#: order/models.py:1801 msgid "Date of shipment" msgstr "" -#: order/models.py:1778 templates/js/translated/sales_order.js:1072 +#: order/models.py:1807 templates/js/translated/sales_order.js:1038 msgid "Delivery Date" msgstr "" -#: order/models.py:1779 +#: order/models.py:1808 msgid "Date of delivery of shipment" msgstr "" -#: order/models.py:1787 +#: order/models.py:1816 msgid "Checked By" msgstr "" -#: order/models.py:1788 +#: order/models.py:1817 msgid "User who checked this shipment" msgstr "" -#: order/models.py:1795 order/models.py:2018 order/serializers.py:1475 -#: order/serializers.py:1585 templates/js/translated/model_renderers.js:455 +#: order/models.py:1824 order/models.py:2051 order/serializers.py:1601 +#: order/serializers.py:1725 +#: report/templates/report/inventree_sales_order_shipment_report.html:14 +#: templates/js/translated/model_renderers.js:458 +#: templates/js/translated/sales_order.js:1615 msgid "Shipment" msgstr "" -#: order/models.py:1796 +#: order/models.py:1825 msgid "Shipment number" msgstr "" -#: order/models.py:1804 +#: order/models.py:1833 msgid "Tracking Number" msgstr "" -#: order/models.py:1805 +#: order/models.py:1834 msgid "Shipment tracking information" msgstr "" -#: order/models.py:1812 +#: order/models.py:1841 msgid "Invoice Number" msgstr "" -#: order/models.py:1813 +#: order/models.py:1842 msgid "Reference number for associated invoice" msgstr "" -#: order/models.py:1833 +#: order/models.py:1862 msgid "Shipment has already been sent" msgstr "" -#: order/models.py:1836 +#: order/models.py:1865 msgid "Shipment has no allocated stock items" msgstr "" -#: order/models.py:1912 +#: order/models.py:1945 msgid "Sales Order Extra Line" msgstr "" -#: order/models.py:1941 +#: order/models.py:1974 msgid "Sales Order Allocation" msgstr "" -#: order/models.py:1964 order/models.py:1966 +#: order/models.py:1997 order/models.py:1999 msgid "Stock item has not been assigned" msgstr "" -#: order/models.py:1973 +#: order/models.py:2006 msgid "Cannot allocate stock item to a line with a different part" msgstr "" -#: order/models.py:1976 +#: order/models.py:2009 msgid "Cannot allocate stock to a line without a part" msgstr "" -#: order/models.py:1979 +#: order/models.py:2012 msgid "Allocation quantity cannot exceed stock quantity" msgstr "" -#: order/models.py:1998 order/serializers.py:1345 +#: order/models.py:2031 order/serializers.py:1471 msgid "Quantity must be 1 for serialized stock item" msgstr "" -#: order/models.py:2001 +#: order/models.py:2034 msgid "Sales order does not match shipment" msgstr "" -#: order/models.py:2002 plugin/base/barcodes/api.py:524 +#: order/models.py:2035 plugin/base/barcodes/api.py:629 msgid "Shipment does not match sales order" msgstr "" -#: order/models.py:2010 +#: order/models.py:2043 msgid "Line" msgstr "" -#: order/models.py:2019 +#: order/models.py:2052 msgid "Sales order shipment reference" msgstr "" -#: order/models.py:2032 order/models.py:2391 +#: order/models.py:2065 order/models.py:2430 #: templates/js/translated/return_order.js:720 msgid "Item" msgstr "" -#: order/models.py:2033 +#: order/models.py:2066 msgid "Select stock item to allocate" msgstr "" -#: order/models.py:2042 +#: order/models.py:2075 msgid "Enter stock allocation quantity" msgstr "" -#: order/models.py:2136 +#: order/models.py:2175 msgid "Return Order reference" msgstr "" -#: order/models.py:2148 +#: order/models.py:2187 msgid "Company from which items are being returned" msgstr "" -#: order/models.py:2160 +#: order/models.py:2199 msgid "Return order status" msgstr "" -#: order/models.py:2362 +#: order/models.py:2401 msgid "Return Order Line Item" msgstr "" -#: order/models.py:2376 +#: order/models.py:2415 msgid "Only serialized items can be assigned to a Return Order" msgstr "" -#: order/models.py:2392 +#: order/models.py:2431 msgid "Select item to return from customer" msgstr "" -#: order/models.py:2398 +#: order/models.py:2437 msgid "Received Date" msgstr "" -#: order/models.py:2399 +#: order/models.py:2438 msgid "The date this this return item was received" msgstr "" -#: order/models.py:2410 templates/js/translated/return_order.js:731 +#: order/models.py:2449 templates/js/translated/return_order.js:731 #: templates/js/translated/table_filters.js:122 msgid "Outcome" msgstr "" -#: order/models.py:2411 +#: order/models.py:2450 msgid "Outcome for this line item" msgstr "" -#: order/models.py:2418 +#: order/models.py:2457 msgid "Cost associated with return or repair for this line item" msgstr "" -#: order/models.py:2428 +#: order/models.py:2467 msgid "Return Order Extra Line" msgstr "" -#: order/serializers.py:86 +#: order/serializers.py:87 +msgid "Order ID" +msgstr "" + +#: order/serializers.py:87 +msgid "ID of the order to duplicate" +msgstr "" + +#: order/serializers.py:93 +msgid "Copy Lines" +msgstr "" + +#: order/serializers.py:94 +msgid "Copy line items from the original order" +msgstr "" + +#: order/serializers.py:100 +msgid "Copy Extra Lines" +msgstr "" + +#: order/serializers.py:101 +msgid "Copy extra line items from the original order" +msgstr "" + +#: order/serializers.py:117 msgid "Completed Lines" msgstr "" -#: order/serializers.py:283 stock/admin.py:195 +#: order/serializers.py:161 +msgid "Duplicate Order" +msgstr "" + +#: order/serializers.py:162 +msgid "Specify options for duplicating this order" +msgstr "" + +#: order/serializers.py:234 +msgid "Invalid order ID" +msgstr "" + +#: order/serializers.py:374 stock/admin.py:196 msgid "Supplier Name" msgstr "" -#: order/serializers.py:331 +#: order/serializers.py:416 msgid "Order cannot be cancelled" msgstr "" -#: order/serializers.py:346 order/serializers.py:1366 +#: order/serializers.py:431 order/serializers.py:1492 msgid "Allow order to be closed with incomplete line items" msgstr "" -#: order/serializers.py:356 order/serializers.py:1376 +#: order/serializers.py:441 order/serializers.py:1502 msgid "Order has incomplete line items" msgstr "" -#: order/serializers.py:506 +#: order/serializers.py:591 msgid "Order is not open" msgstr "" -#: order/serializers.py:527 +#: order/serializers.py:612 msgid "Auto Pricing" msgstr "" -#: order/serializers.py:529 +#: order/serializers.py:614 msgid "Automatically calculate purchase price based on supplier part data" msgstr "" -#: order/serializers.py:539 +#: order/serializers.py:624 msgid "Purchase price currency" msgstr "" -#: order/serializers.py:545 +#: order/serializers.py:630 msgid "Merge Items" msgstr "" -#: order/serializers.py:547 +#: order/serializers.py:632 msgid "Merge items with the same part, destination and target date into one line item" msgstr "" -#: order/serializers.py:560 part/models.py:1033 +#: order/serializers.py:645 part/models.py:1094 part/serializers.py:387 msgid "Internal Part Number" msgstr "" -#: order/serializers.py:568 +#: order/serializers.py:653 msgid "Internal Part Name" msgstr "" -#: order/serializers.py:584 +#: order/serializers.py:669 msgid "Supplier part must be specified" msgstr "" -#: order/serializers.py:587 +#: order/serializers.py:672 msgid "Purchase order must be specified" msgstr "" -#: order/serializers.py:595 +#: order/serializers.py:680 msgid "Supplier must match purchase order" msgstr "" -#: order/serializers.py:596 +#: order/serializers.py:681 msgid "Purchase order must match supplier" msgstr "" -#: order/serializers.py:639 order/serializers.py:1446 +#: order/serializers.py:724 order/serializers.py:1572 msgid "Line Item" msgstr "" -#: order/serializers.py:645 +#: order/serializers.py:730 msgid "Line item does not match purchase order" msgstr "" -#: order/serializers.py:655 order/serializers.py:779 order/serializers.py:1782 +#: order/serializers.py:740 order/serializers.py:881 order/serializers.py:1934 msgid "Select destination location for received items" msgstr "" -#: order/serializers.py:671 templates/js/translated/purchase_order.js:1130 +#: order/serializers.py:756 templates/js/translated/purchase_order.js:1113 #: templates/js/translated/stock.js:1200 msgid "Enter batch code for incoming stock items" msgstr "" -#: order/serializers.py:679 templates/js/translated/purchase_order.js:1155 +#: order/serializers.py:764 templates/js/translated/purchase_order.js:1138 msgid "Enter serial numbers for incoming stock items" msgstr "" -#: order/serializers.py:691 +#: order/serializers.py:776 msgid "Override packaging information for incoming stock items" msgstr "" -#: order/serializers.py:699 +#: order/serializers.py:784 msgid "Additional note for incoming stock items" msgstr "" -#: order/serializers.py:706 templates/js/translated/barcode.js:52 +#: order/serializers.py:791 templates/js/translated/barcode.js:52 msgid "Barcode" msgstr "" -#: order/serializers.py:707 +#: order/serializers.py:792 msgid "Scanned barcode" msgstr "" -#: order/serializers.py:723 +#: order/serializers.py:808 msgid "Barcode is already in use" msgstr "" -#: order/serializers.py:747 +#: order/serializers.py:831 msgid "An integer quantity must be provided for trackable parts" msgstr "" -#: order/serializers.py:795 order/serializers.py:1798 +#: order/serializers.py:898 order/serializers.py:1950 msgid "Line items must be provided" msgstr "" -#: order/serializers.py:811 +#: order/serializers.py:914 msgid "Destination location must be specified" msgstr "" -#: order/serializers.py:822 +#: order/serializers.py:925 msgid "Supplied barcode values must be unique" msgstr "" -#: order/serializers.py:1187 +#: order/serializers.py:1221 msgid "Sale price currency" msgstr "" -#: order/serializers.py:1248 +#: order/serializers.py:1260 +msgid "Allocated Items" +msgstr "" + +#: order/serializers.py:1374 msgid "No shipment details provided" msgstr "" -#: order/serializers.py:1309 order/serializers.py:1455 +#: order/serializers.py:1435 order/serializers.py:1581 msgid "Line item is not associated with this order" msgstr "" -#: order/serializers.py:1328 +#: order/serializers.py:1454 msgid "Quantity must be positive" msgstr "" -#: order/serializers.py:1465 +#: order/serializers.py:1591 msgid "Enter serial numbers to allocate" msgstr "" -#: order/serializers.py:1487 order/serializers.py:1593 +#: order/serializers.py:1613 order/serializers.py:1733 msgid "Shipment has already been shipped" msgstr "" -#: order/serializers.py:1490 order/serializers.py:1596 +#: order/serializers.py:1616 order/serializers.py:1736 msgid "Shipment is not associated with this order" msgstr "" -#: order/serializers.py:1537 +#: order/serializers.py:1671 msgid "No match found for the following serial numbers" msgstr "" -#: order/serializers.py:1544 -msgid "The following serial numbers are already allocated" +#: order/serializers.py:1678 +msgid "The following serial numbers are unavailable" msgstr "" -#: order/serializers.py:1752 +#: order/serializers.py:1904 msgid "Return order line item" msgstr "" -#: order/serializers.py:1758 +#: order/serializers.py:1910 msgid "Line item does not match return order" msgstr "" -#: order/serializers.py:1761 +#: order/serializers.py:1913 msgid "Line item has already been received" msgstr "" -#: order/serializers.py:1790 +#: order/serializers.py:1942 msgid "Items can only be received against orders which are in progress" msgstr "" -#: order/serializers.py:1873 +#: order/serializers.py:2025 msgid "Line price currency" msgstr "" -#: order/status_codes.py:17 order/status_codes.py:52 stock/status_codes.py:16 +#: order/status_codes.py:17 order/status_codes.py:54 stock/status_codes.py:16 msgid "Lost" msgstr "" -#: order/status_codes.py:18 order/status_codes.py:53 stock/status_codes.py:22 +#: order/status_codes.py:18 order/status_codes.py:55 stock/status_codes.py:24 msgid "Returned" msgstr "" -#: order/status_codes.py:45 order/status_codes.py:77 +#: order/status_codes.py:47 order/status_codes.py:79 msgid "In Progress" msgstr "" -#: order/status_codes.py:101 +#: order/status_codes.py:105 msgid "Return" msgstr "" -#: order/status_codes.py:104 +#: order/status_codes.py:108 msgid "Repair" msgstr "" -#: order/status_codes.py:107 +#: order/status_codes.py:111 msgid "Replace" msgstr "" -#: order/status_codes.py:110 +#: order/status_codes.py:114 msgid "Refund" msgstr "" -#: order/status_codes.py:113 +#: order/status_codes.py:117 msgid "Reject" msgstr "" -#: order/tasks.py:25 +#: order/tasks.py:30 msgid "Overdue Purchase Order" msgstr "" -#: order/tasks.py:30 +#: order/tasks.py:35 #, python-brace-format msgid "Purchase order {po} is now overdue" msgstr "" -#: order/tasks.py:75 +#: order/tasks.py:80 msgid "Overdue Sales Order" msgstr "" -#: order/tasks.py:80 +#: order/tasks.py:85 #, python-brace-format msgid "Sales order {so} is now overdue" msgstr "" -#: order/templates/order/order_base.html:51 +#: order/templates/order/order_base.html:52 msgid "Print purchase order report" msgstr "" -#: order/templates/order/order_base.html:53 -#: order/templates/order/return_order_base.html:62 -#: order/templates/order/sales_order_base.html:62 +#: order/templates/order/order_base.html:54 +#: order/templates/order/return_order_base.html:63 +#: order/templates/order/sales_order_base.html:63 msgid "Export order to file" msgstr "" -#: order/templates/order/order_base.html:59 -#: order/templates/order/return_order_base.html:72 -#: order/templates/order/sales_order_base.html:71 +#: order/templates/order/order_base.html:60 +#: order/templates/order/return_order_base.html:73 +#: order/templates/order/sales_order_base.html:72 msgid "Order actions" msgstr "" -#: order/templates/order/order_base.html:64 -#: order/templates/order/return_order_base.html:76 -#: order/templates/order/sales_order_base.html:75 +#: order/templates/order/order_base.html:65 +#: order/templates/order/return_order_base.html:77 +#: order/templates/order/sales_order_base.html:76 msgid "Edit order" msgstr "" -#: order/templates/order/order_base.html:68 +#: order/templates/order/order_base.html:69 msgid "Duplicate order" msgstr "" -#: order/templates/order/order_base.html:73 -#: order/templates/order/return_order_base.html:78 -#: order/templates/order/sales_order_base.html:77 +#: order/templates/order/order_base.html:74 +#: order/templates/order/return_order_base.html:79 +#: order/templates/order/sales_order_base.html:78 msgid "Hold order" msgstr "" -#: order/templates/order/order_base.html:78 -#: order/templates/order/return_order_base.html:81 -#: order/templates/order/sales_order_base.html:80 +#: order/templates/order/order_base.html:79 +#: order/templates/order/return_order_base.html:82 +#: order/templates/order/sales_order_base.html:81 msgid "Cancel order" msgstr "" -#: order/templates/order/order_base.html:84 #: order/templates/order/order_base.html:85 -#: order/templates/order/return_order_base.html:85 +#: order/templates/order/order_base.html:86 #: order/templates/order/return_order_base.html:86 -#: order/templates/order/sales_order_base.html:86 +#: order/templates/order/return_order_base.html:87 #: order/templates/order/sales_order_base.html:87 +#: order/templates/order/sales_order_base.html:88 msgid "Issue Order" msgstr "" -#: order/templates/order/order_base.html:88 -#: order/templates/order/return_order_base.html:89 -msgid "Mark order as complete" -msgstr "" - #: order/templates/order/order_base.html:89 #: order/templates/order/return_order_base.html:90 -#: order/templates/order/sales_order_base.html:100 +msgid "Mark order as complete" +msgstr "" + +#: order/templates/order/order_base.html:90 +#: order/templates/order/return_order_base.html:91 +#: order/templates/order/sales_order_base.html:101 msgid "Complete Order" msgstr "" -#: order/templates/order/order_base.html:96 +#: order/templates/order/order_base.html:97 msgid "Supplier part thumbnail" msgstr "" -#: order/templates/order/order_base.html:116 -#: order/templates/order/return_order_base.html:109 -#: order/templates/order/sales_order_base.html:118 +#: order/templates/order/order_base.html:117 +#: order/templates/order/return_order_base.html:110 +#: order/templates/order/sales_order_base.html:119 msgid "Order Description" msgstr "" -#: order/templates/order/order_base.html:146 -msgid "No suppplier information available" -msgstr "" - -#: order/templates/order/order_base.html:159 -#: order/templates/order/sales_order_base.html:164 +#: order/templates/order/order_base.html:168 +#: order/templates/order/sales_order_base.html:165 msgid "Completed Line Items" msgstr "" -#: order/templates/order/order_base.html:165 -#: order/templates/order/sales_order_base.html:170 -#: order/templates/order/sales_order_base.html:180 +#: order/templates/order/order_base.html:174 +#: order/templates/order/sales_order_base.html:171 +#: order/templates/order/sales_order_base.html:181 msgid "Incomplete" msgstr "" -#: order/templates/order/order_base.html:184 -#: order/templates/order/return_order_base.html:160 +#: order/templates/order/order_base.html:193 +#: order/templates/order/return_order_base.html:161 #: report/templates/report/inventree_build_order_report.html:121 msgid "Issued" msgstr "" -#: order/templates/order/order_base.html:229 +#: order/templates/order/order_base.html:238 msgid "Total cost" msgstr "" -#: order/templates/order/order_base.html:233 -#: order/templates/order/return_order_base.html:202 -#: order/templates/order/sales_order_base.html:246 +#: order/templates/order/order_base.html:242 +#: order/templates/order/return_order_base.html:203 +#: order/templates/order/sales_order_base.html:247 msgid "Total cost could not be calculated" msgstr "" -#: order/templates/order/order_base.html:335 +#: order/templates/order/order_base.html:344 msgid "Purchase Order QR Code" msgstr "" -#: order/templates/order/order_base.html:347 +#: order/templates/order/order_base.html:356 msgid "Link Barcode to Purchase Order" msgstr "" @@ -6184,12 +6392,12 @@ msgstr "" #: part/templates/part/import_wizard/ajax_match_references.html:42 #: part/templates/part/import_wizard/match_fields.html:71 #: part/templates/part/import_wizard/match_references.html:49 -#: templates/js/translated/bom.js:133 templates/js/translated/build.js:530 -#: templates/js/translated/build.js:1802 -#: templates/js/translated/purchase_order.js:696 -#: templates/js/translated/purchase_order.js:1288 +#: templates/js/translated/bom.js:133 templates/js/translated/build.js:533 +#: templates/js/translated/build.js:1805 +#: templates/js/translated/purchase_order.js:679 +#: templates/js/translated/purchase_order.js:1271 #: templates/js/translated/return_order.js:505 -#: templates/js/translated/sales_order.js:1145 +#: templates/js/translated/sales_order.js:1111 #: templates/js/translated/stock.js:720 templates/js/translated/stock.js:889 #: templates/patterns/wizard/match_fields.html:70 msgid "Remove row" @@ -6242,7 +6450,7 @@ msgstr "" #: order/templates/order/purchase_order_detail.html:27 #: order/templates/order/return_order_detail.html:24 #: order/templates/order/sales_order_detail.html:24 -#: templates/js/translated/purchase_order.js:414 +#: templates/js/translated/purchase_order.js:397 #: templates/js/translated/return_order.js:458 #: templates/js/translated/sales_order.js:237 msgid "Add Line Item" @@ -6277,45 +6485,45 @@ msgstr "" msgid "Order Notes" msgstr "" -#: order/templates/order/return_order_base.html:18 -#: order/templates/order/sales_order_base.html:18 +#: order/templates/order/return_order_base.html:19 +#: order/templates/order/sales_order_base.html:19 msgid "Customer logo thumbnail" msgstr "" -#: order/templates/order/return_order_base.html:60 +#: order/templates/order/return_order_base.html:61 msgid "Print return order report" msgstr "" -#: order/templates/order/return_order_base.html:64 -#: order/templates/order/sales_order_base.html:64 +#: order/templates/order/return_order_base.html:65 +#: order/templates/order/sales_order_base.html:65 msgid "Print packing list" msgstr "" -#: order/templates/order/return_order_base.html:141 -#: order/templates/order/sales_order_base.html:158 +#: order/templates/order/return_order_base.html:142 +#: order/templates/order/sales_order_base.html:159 #: templates/js/translated/return_order.js:308 -#: templates/js/translated/sales_order.js:833 +#: templates/js/translated/sales_order.js:792 msgid "Customer Reference" msgstr "" -#: order/templates/order/return_order_base.html:198 -#: order/templates/order/sales_order_base.html:242 +#: order/templates/order/return_order_base.html:199 +#: order/templates/order/sales_order_base.html:243 #: part/templates/part/part_pricing.html:32 #: part/templates/part/part_pricing.html:58 #: part/templates/part/part_pricing.html:99 #: part/templates/part/part_pricing.html:114 #: templates/js/translated/part.js:1079 -#: templates/js/translated/purchase_order.js:1822 +#: templates/js/translated/purchase_order.js:1806 #: templates/js/translated/return_order.js:380 -#: templates/js/translated/sales_order.js:891 +#: templates/js/translated/sales_order.js:850 msgid "Total Cost" msgstr "" -#: order/templates/order/return_order_base.html:273 +#: order/templates/order/return_order_base.html:274 msgid "Return Order QR Code" msgstr "" -#: order/templates/order/return_order_base.html:285 +#: order/templates/order/return_order_base.html:286 msgid "Link Barcode to Return Order" msgstr "" @@ -6323,40 +6531,40 @@ msgstr "" msgid "Order Details" msgstr "" -#: order/templates/order/sales_order_base.html:60 +#: order/templates/order/sales_order_base.html:61 msgid "Print sales order report" msgstr "" -#: order/templates/order/sales_order_base.html:91 #: order/templates/order/sales_order_base.html:92 +#: order/templates/order/sales_order_base.html:93 msgid "Ship Items" msgstr "" -#: order/templates/order/sales_order_base.html:95 #: order/templates/order/sales_order_base.html:96 +#: order/templates/order/sales_order_base.html:97 msgid "Mark As Shipped" msgstr "" -#: order/templates/order/sales_order_base.html:99 -#: templates/js/translated/sales_order.js:536 +#: order/templates/order/sales_order_base.html:100 +#: templates/js/translated/sales_order.js:495 msgid "Complete Sales Order" msgstr "" -#: order/templates/order/sales_order_base.html:138 +#: order/templates/order/sales_order_base.html:139 msgid "This Sales Order has not been fully allocated" msgstr "" -#: order/templates/order/sales_order_base.html:176 +#: order/templates/order/sales_order_base.html:177 #: order/templates/order/sales_order_detail.html:99 #: order/templates/order/so_sidebar.html:11 msgid "Completed Shipments" msgstr "" -#: order/templates/order/sales_order_base.html:339 +#: order/templates/order/sales_order_base.html:340 msgid "Sales Order QR Code" msgstr "" -#: order/templates/order/sales_order_base.html:351 +#: order/templates/order/sales_order_base.html:352 msgid "Link Barcode to Sales Order" msgstr "" @@ -6370,7 +6578,7 @@ msgid "Pending Shipments" msgstr "" #: order/templates/order/sales_order_detail.html:71 -#: templates/js/translated/bom.js:1277 templates/js/translated/build.js:1063 +#: templates/js/translated/bom.js:1277 templates/js/translated/build.js:1066 #: templates/js/translated/filters.js:299 msgid "Actions" msgstr "" @@ -6383,39 +6591,40 @@ msgstr "" msgid "Match Supplier Parts" msgstr "" -#: order/views.py:406 +#: order/views.py:407 msgid "Sales order not found" msgstr "" -#: order/views.py:412 +#: order/views.py:413 msgid "Price not found" msgstr "" -#: order/views.py:415 +#: order/views.py:416 #, python-brace-format msgid "Updated {part} unit-price to {price}" msgstr "" -#: order/views.py:421 +#: order/views.py:422 #, python-brace-format msgid "Updated {part} unit-price to {price} and quantity to {qty}" msgstr "" -#: part/admin.py:48 part/models.py:1032 part/templates/part/part_base.html:269 +#: part/admin.py:48 part/models.py:1093 part/serializers.py:939 +#: part/templates/part/part_base.html:277 #: report/templates/report/inventree_stock_location_report.html:103 #: templates/js/translated/part.js:1233 templates/js/translated/part.js:2347 -#: templates/js/translated/stock.js:2121 +#: templates/js/translated/stock.js:2122 msgid "IPN" msgstr "" -#: part/admin.py:50 part/models.py:1041 part/templates/part/part_base.html:286 +#: part/admin.py:50 part/models.py:1102 part/templates/part/part_base.html:294 #: report/models.py:161 templates/js/translated/part.js:1238 #: templates/js/translated/part.js:2353 msgid "Revision" msgstr "" -#: part/admin.py:53 part/admin.py:319 part/models.py:1014 -#: part/templates/part/category.html:91 part/templates/part/part_base.html:307 +#: part/admin.py:53 part/admin.py:319 part/models.py:1075 +#: part/templates/part/category.html:91 part/templates/part/part_base.html:315 msgid "Keywords" msgstr "" @@ -6427,7 +6636,7 @@ msgstr "" msgid "Category ID" msgstr "" -#: part/admin.py:67 part/admin.py:304 part/serializers.py:880 +#: part/admin.py:67 part/admin.py:304 part/serializers.py:924 #: part/stocktake.py:222 msgid "Category Name" msgstr "" @@ -6440,11 +6649,11 @@ msgstr "" msgid "Default Supplier ID" msgstr "" -#: part/admin.py:81 part/models.py:1000 part/templates/part/part_base.html:177 +#: part/admin.py:81 part/models.py:1061 part/templates/part/part_base.html:178 msgid "Variant Of" msgstr "" -#: part/admin.py:84 part/models.py:1138 part/templates/part/part_base.html:203 +#: part/admin.py:84 part/models.py:1199 part/templates/part/part_base.html:204 msgid "Minimum Stock" msgstr "" @@ -6452,23 +6661,23 @@ msgstr "" msgid "Used In" msgstr "" -#: part/admin.py:150 part/serializers.py:897 -#: part/templates/part/part_base.html:241 stock/admin.py:235 +#: part/admin.py:150 part/serializers.py:949 +#: part/templates/part/part_base.html:249 stock/admin.py:236 #: templates/js/translated/part.js:717 templates/js/translated/part.js:2159 msgid "Building" msgstr "" -#: part/admin.py:155 part/models.py:3202 part/models.py:3216 +#: part/admin.py:155 part/models.py:3253 part/models.py:3267 #: templates/js/translated/part.js:976 msgid "Minimum Cost" msgstr "" -#: part/admin.py:158 part/models.py:3209 part/models.py:3223 +#: part/admin.py:158 part/models.py:3260 part/models.py:3274 #: templates/js/translated/part.js:986 msgid "Maximum Cost" msgstr "" -#: part/admin.py:308 part/admin.py:387 stock/admin.py:57 stock/admin.py:215 +#: part/admin.py:308 part/admin.py:387 stock/admin.py:57 stock/admin.py:216 msgid "Parent ID" msgstr "" @@ -6481,8 +6690,8 @@ msgstr "" msgid "Category Path" msgstr "" -#: part/admin.py:325 part/models.py:425 part/serializers.py:130 -#: part/serializers.py:290 part/serializers.py:415 +#: part/admin.py:325 part/models.py:420 part/serializers.py:130 +#: part/serializers.py:323 part/serializers.py:459 #: part/templates/part/cat_link.html:3 part/templates/part/category.html:20 #: part/templates/part/category.html:138 part/templates/part/category.html:158 #: part/templates/part/category_sidebar.html:9 @@ -6509,15 +6718,15 @@ msgstr "" msgid "Part Revision" msgstr "" -#: part/admin.py:418 part/serializers.py:1346 +#: part/admin.py:418 part/serializers.py:1400 #: templates/js/translated/pricing.js:358 -#: templates/js/translated/pricing.js:1024 +#: templates/js/translated/pricing.js:1022 msgid "Minimum Price" msgstr "" -#: part/admin.py:423 part/serializers.py:1361 +#: part/admin.py:423 part/serializers.py:1415 #: templates/js/translated/pricing.js:353 -#: templates/js/translated/pricing.js:1032 +#: templates/js/translated/pricing.js:1030 msgid "Maximum Price" msgstr "" @@ -6545,94 +6754,98 @@ msgstr "" msgid "Filter by top-level categories" msgstr "" +#: part/api.py:156 stock/api.py:343 +msgid "Cascade" +msgstr "" + #: part/api.py:158 msgid "Include sub-categories in filtered results" msgstr "" -#: part/api.py:179 templates/js/translated/part.js:311 +#: part/api.py:178 templates/js/translated/part.js:311 msgid "Parent" msgstr "" -#: part/api.py:181 +#: part/api.py:180 msgid "Filter by parent category" msgstr "" -#: part/api.py:214 +#: part/api.py:213 msgid "Exclude Tree" msgstr "" -#: part/api.py:216 +#: part/api.py:215 msgid "Exclude sub-categories under the specified category" msgstr "" -#: part/api.py:441 +#: part/api.py:440 msgid "Has Results" msgstr "" -#: part/api.py:608 +#: part/api.py:604 msgid "Incoming Purchase Order" msgstr "" -#: part/api.py:626 +#: part/api.py:618 msgid "Outgoing Sales Order" msgstr "" -#: part/api.py:642 +#: part/api.py:630 msgid "Stock produced by Build Order" msgstr "" -#: part/api.py:726 +#: part/api.py:712 msgid "Stock required for Build Order" msgstr "" -#: part/api.py:874 +#: part/api.py:858 msgid "Validate entire Bill of Materials" msgstr "" -#: part/api.py:880 +#: part/api.py:864 msgid "This option must be selected" msgstr "" -#: part/api.py:916 +#: part/api.py:900 msgid "Is Revision" msgstr "" -#: part/api.py:926 +#: part/api.py:910 msgid "Has Revisions" msgstr "" -#: part/api.py:1117 +#: part/api.py:1101 msgid "BOM Valid" msgstr "" -#: part/api.py:1523 part/models.py:1024 part/models.py:3489 part/models.py:4046 -#: part/serializers.py:430 part/serializers.py:1202 -#: part/templates/part/part_base.html:260 stock/api.py:781 +#: part/api.py:1509 part/models.py:1085 part/models.py:3540 part/models.py:4104 +#: part/serializers.py:474 part/serializers.py:1255 +#: part/templates/part/part_base.html:268 stock/api.py:781 #: templates/InvenTree/settings/settings_staff_js.html:300 #: templates/js/translated/notification.js:60 #: templates/js/translated/part.js:2383 msgid "Category" msgstr "" -#: part/api.py:1761 +#: part/api.py:1750 msgid "Assembly part is testable" msgstr "" -#: part/api.py:1770 +#: part/api.py:1759 msgid "Component part is testable" msgstr "" -#: part/api.py:1821 +#: part/api.py:1810 msgid "Uses" msgstr "" -#: part/bom.py:178 part/models.py:107 part/models.py:1077 -#: part/templates/part/category.html:113 part/templates/part/part_base.html:376 +#: part/bom.py:183 part/models.py:109 part/models.py:1138 +#: part/templates/part/category.html:113 part/templates/part/part_base.html:384 #: templates/js/translated/part.js:2397 msgid "Default Location" msgstr "" -#: part/bom.py:179 part/serializers.py:905 +#: part/bom.py:184 part/serializers.py:957 #: templates/email/low_stock_notification.html:16 msgid "Total Stock" msgstr "" @@ -6641,789 +6854,789 @@ msgstr "" msgid "Input quantity for price calculation" msgstr "" -#: part/models.py:88 part/models.py:4047 part/templates/part/category.html:16 +#: part/models.py:90 part/models.py:4105 part/templates/part/category.html:16 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "" -#: part/models.py:89 part/templates/part/category.html:133 +#: part/models.py:91 part/templates/part/category.html:133 #: templates/InvenTree/search.html:97 templates/js/translated/search.js:158 #: users/models.py:202 msgid "Part Categories" msgstr "" -#: part/models.py:108 +#: part/models.py:110 msgid "Default location for parts in this category" msgstr "" -#: part/models.py:113 stock/models.py:187 templates/js/translated/part.js:2828 -#: templates/js/translated/stock.js:2856 +#: part/models.py:115 stock/models.py:193 templates/js/translated/part.js:2828 +#: templates/js/translated/stock.js:2857 #: templates/js/translated/table_filters.js:246 #: templates/js/translated/table_filters.js:290 msgid "Structural" msgstr "" -#: part/models.py:115 +#: part/models.py:117 msgid "Parts may not be directly assigned to a structural category, but may be assigned to child categories." msgstr "" -#: part/models.py:124 +#: part/models.py:126 msgid "Default keywords" msgstr "" -#: part/models.py:125 +#: part/models.py:127 msgid "Default keywords for parts in this category" msgstr "" -#: part/models.py:131 stock/models.py:90 stock/models.py:169 +#: part/models.py:133 stock/models.py:96 stock/models.py:175 #: templates/InvenTree/settings/settings_staff_js.html:445 msgid "Icon" msgstr "" -#: part/models.py:132 part/serializers.py:143 part/serializers.py:161 -#: stock/models.py:170 +#: part/models.py:134 part/serializers.py:143 part/serializers.py:161 +#: stock/models.py:176 msgid "Icon (optional)" msgstr "" -#: part/models.py:178 +#: part/models.py:180 msgid "You cannot make this part category structural because some parts are already assigned to it!" msgstr "" -#: part/models.py:519 +#: part/models.py:514 msgid "Cannot delete this part as it is locked" msgstr "" -#: part/models.py:522 +#: part/models.py:517 msgid "Cannot delete this part as it is still active" msgstr "" -#: part/models.py:527 +#: part/models.py:522 msgid "Cannot delete this part as it is used in an assembly" msgstr "" -#: part/models.py:565 +#: part/models.py:560 msgid "Invalid choice for parent part" msgstr "" -#: part/models.py:613 part/models.py:620 +#: part/models.py:608 part/models.py:615 #, python-brace-format msgid "Part '{self}' cannot be used in BOM for '{parent}' (recursive)" msgstr "" -#: part/models.py:632 +#: part/models.py:627 #, python-brace-format msgid "Part '{parent}' is used in BOM for '{self}' (recursive)" msgstr "" -#: part/models.py:695 +#: part/models.py:694 #, python-brace-format msgid "IPN must match regex pattern {pattern}" msgstr "" -#: part/models.py:703 +#: part/models.py:702 msgid "Part cannot be a revision of itself" msgstr "" -#: part/models.py:710 +#: part/models.py:709 msgid "Cannot make a revision of a part which is already a revision" msgstr "" -#: part/models.py:717 +#: part/models.py:716 msgid "Revision code must be specified" msgstr "" -#: part/models.py:724 +#: part/models.py:723 msgid "Revisions are only allowed for assembly parts" msgstr "" -#: part/models.py:731 +#: part/models.py:730 msgid "Cannot make a revision of a template part" msgstr "" -#: part/models.py:737 +#: part/models.py:736 msgid "Parent part must point to the same template" msgstr "" -#: part/models.py:816 +#: part/models.py:832 msgid "Stock item with this serial number already exists" msgstr "" -#: part/models.py:917 +#: part/models.py:976 msgid "Duplicate IPN not allowed in part settings" msgstr "" -#: part/models.py:926 +#: part/models.py:988 msgid "Duplicate part revision already exists." msgstr "" -#: part/models.py:936 +#: part/models.py:997 msgid "Part with this Name, IPN and Revision already exists." msgstr "" -#: part/models.py:951 +#: part/models.py:1012 msgid "Parts cannot be assigned to structural part categories!" msgstr "" -#: part/models.py:983 part/models.py:4102 +#: part/models.py:1044 part/models.py:4160 msgid "Part name" msgstr "" -#: part/models.py:988 +#: part/models.py:1049 msgid "Is Template" msgstr "" -#: part/models.py:989 +#: part/models.py:1050 msgid "Is this part a template part?" msgstr "" -#: part/models.py:999 +#: part/models.py:1060 msgid "Is this part a variant of another part?" msgstr "" -#: part/models.py:1007 +#: part/models.py:1068 msgid "Part description (optional)" msgstr "" -#: part/models.py:1015 +#: part/models.py:1076 msgid "Part keywords to improve visibility in search results" msgstr "" -#: part/models.py:1025 +#: part/models.py:1086 msgid "Part category" msgstr "" -#: part/models.py:1040 +#: part/models.py:1101 msgid "Part revision or version number" msgstr "" -#: part/models.py:1050 +#: part/models.py:1111 msgid "Is this part a revision of another part?" msgstr "" -#: part/models.py:1051 part/templates/part/part_base.html:277 +#: part/models.py:1112 part/templates/part/part_base.html:285 msgid "Revision Of" msgstr "" -#: part/models.py:1075 +#: part/models.py:1136 msgid "Where is this item normally stored?" msgstr "" -#: part/models.py:1121 part/templates/part/part_base.html:385 +#: part/models.py:1182 part/templates/part/part_base.html:393 msgid "Default Supplier" msgstr "" -#: part/models.py:1122 +#: part/models.py:1183 msgid "Default supplier part" msgstr "" -#: part/models.py:1129 +#: part/models.py:1190 msgid "Default Expiry" msgstr "" -#: part/models.py:1130 +#: part/models.py:1191 msgid "Expiry time (in days) for stock items of this part" msgstr "" -#: part/models.py:1139 +#: part/models.py:1200 msgid "Minimum allowed stock level" msgstr "" -#: part/models.py:1148 +#: part/models.py:1209 msgid "Units of measure for this part" msgstr "" -#: part/models.py:1155 +#: part/models.py:1216 msgid "Can this part be built from other parts?" msgstr "" -#: part/models.py:1161 +#: part/models.py:1222 msgid "Can this part be used to build other parts?" msgstr "" -#: part/models.py:1167 +#: part/models.py:1228 msgid "Does this part have tracking for unique items?" msgstr "" -#: part/models.py:1173 +#: part/models.py:1234 msgid "Can this part have test results recorded against it?" msgstr "" -#: part/models.py:1179 +#: part/models.py:1240 msgid "Can this part be purchased from external suppliers?" msgstr "" -#: part/models.py:1185 +#: part/models.py:1246 msgid "Can this part be sold to customers?" msgstr "" -#: part/models.py:1189 +#: part/models.py:1250 msgid "Is this part active?" msgstr "" -#: part/models.py:1194 templates/js/translated/part.js:821 +#: part/models.py:1255 templates/js/translated/part.js:821 #: templates/js/translated/table_filters.js:724 msgid "Locked" msgstr "" -#: part/models.py:1195 +#: part/models.py:1256 msgid "Locked parts cannot be edited" msgstr "" -#: part/models.py:1201 +#: part/models.py:1262 msgid "Is this a virtual part, such as a software product or license?" msgstr "" -#: part/models.py:1207 +#: part/models.py:1268 msgid "BOM checksum" msgstr "" -#: part/models.py:1208 +#: part/models.py:1269 msgid "Stored BOM checksum" msgstr "" -#: part/models.py:1216 +#: part/models.py:1277 msgid "BOM checked by" msgstr "" -#: part/models.py:1221 +#: part/models.py:1282 msgid "BOM checked date" msgstr "" -#: part/models.py:1237 +#: part/models.py:1298 msgid "Creation User" msgstr "" -#: part/models.py:1247 +#: part/models.py:1308 msgid "Owner responsible for this part" msgstr "" -#: part/models.py:1252 part/templates/part/part_base.html:348 -#: stock/templates/stock/item_base.html:451 +#: part/models.py:1313 part/templates/part/part_base.html:356 +#: stock/templates/stock/item_base.html:448 #: templates/js/translated/part.js:2490 msgid "Last Stocktake" msgstr "" -#: part/models.py:2125 +#: part/models.py:2185 msgid "Sell multiple" msgstr "" -#: part/models.py:3116 +#: part/models.py:3167 msgid "Currency used to cache pricing calculations" msgstr "" -#: part/models.py:3132 +#: part/models.py:3183 msgid "Minimum BOM Cost" msgstr "" -#: part/models.py:3133 +#: part/models.py:3184 msgid "Minimum cost of component parts" msgstr "" -#: part/models.py:3139 +#: part/models.py:3190 msgid "Maximum BOM Cost" msgstr "" -#: part/models.py:3140 +#: part/models.py:3191 msgid "Maximum cost of component parts" msgstr "" -#: part/models.py:3146 +#: part/models.py:3197 msgid "Minimum Purchase Cost" msgstr "" -#: part/models.py:3147 +#: part/models.py:3198 msgid "Minimum historical purchase cost" msgstr "" -#: part/models.py:3153 +#: part/models.py:3204 msgid "Maximum Purchase Cost" msgstr "" -#: part/models.py:3154 +#: part/models.py:3205 msgid "Maximum historical purchase cost" msgstr "" -#: part/models.py:3160 +#: part/models.py:3211 msgid "Minimum Internal Price" msgstr "" -#: part/models.py:3161 +#: part/models.py:3212 msgid "Minimum cost based on internal price breaks" msgstr "" -#: part/models.py:3167 +#: part/models.py:3218 msgid "Maximum Internal Price" msgstr "" -#: part/models.py:3168 +#: part/models.py:3219 msgid "Maximum cost based on internal price breaks" msgstr "" -#: part/models.py:3174 +#: part/models.py:3225 msgid "Minimum Supplier Price" msgstr "" -#: part/models.py:3175 +#: part/models.py:3226 msgid "Minimum price of part from external suppliers" msgstr "" -#: part/models.py:3181 +#: part/models.py:3232 msgid "Maximum Supplier Price" msgstr "" -#: part/models.py:3182 +#: part/models.py:3233 msgid "Maximum price of part from external suppliers" msgstr "" -#: part/models.py:3188 +#: part/models.py:3239 msgid "Minimum Variant Cost" msgstr "" -#: part/models.py:3189 +#: part/models.py:3240 msgid "Calculated minimum cost of variant parts" msgstr "" -#: part/models.py:3195 +#: part/models.py:3246 msgid "Maximum Variant Cost" msgstr "" -#: part/models.py:3196 +#: part/models.py:3247 msgid "Calculated maximum cost of variant parts" msgstr "" -#: part/models.py:3203 +#: part/models.py:3254 msgid "Override minimum cost" msgstr "" -#: part/models.py:3210 +#: part/models.py:3261 msgid "Override maximum cost" msgstr "" -#: part/models.py:3217 +#: part/models.py:3268 msgid "Calculated overall minimum cost" msgstr "" -#: part/models.py:3224 +#: part/models.py:3275 msgid "Calculated overall maximum cost" msgstr "" -#: part/models.py:3230 +#: part/models.py:3281 msgid "Minimum Sale Price" msgstr "" -#: part/models.py:3231 +#: part/models.py:3282 msgid "Minimum sale price based on price breaks" msgstr "" -#: part/models.py:3237 +#: part/models.py:3288 msgid "Maximum Sale Price" msgstr "" -#: part/models.py:3238 +#: part/models.py:3289 msgid "Maximum sale price based on price breaks" msgstr "" -#: part/models.py:3244 +#: part/models.py:3295 msgid "Minimum Sale Cost" msgstr "" -#: part/models.py:3245 +#: part/models.py:3296 msgid "Minimum historical sale price" msgstr "" -#: part/models.py:3251 +#: part/models.py:3302 msgid "Maximum Sale Cost" msgstr "" -#: part/models.py:3252 +#: part/models.py:3303 msgid "Maximum historical sale price" msgstr "" -#: part/models.py:3271 +#: part/models.py:3322 msgid "Part for stocktake" msgstr "" -#: part/models.py:3276 +#: part/models.py:3327 msgid "Item Count" msgstr "" -#: part/models.py:3277 +#: part/models.py:3328 msgid "Number of individual stock entries at time of stocktake" msgstr "" -#: part/models.py:3285 +#: part/models.py:3336 msgid "Total available stock at time of stocktake" msgstr "" -#: part/models.py:3289 part/models.py:3372 +#: part/models.py:3340 part/models.py:3423 part/serializers.py:263 #: part/templates/part/part_scheduling.html:13 #: report/templates/report/inventree_test_report.html:106 #: templates/InvenTree/settings/plugin_settings.html:37 #: templates/InvenTree/settings/settings_staff_js.html:543 -#: templates/js/translated/part.js:1092 templates/js/translated/pricing.js:826 -#: templates/js/translated/pricing.js:950 -#: templates/js/translated/purchase_order.js:1801 -#: templates/js/translated/stock.js:2905 +#: templates/js/translated/part.js:1092 templates/js/translated/pricing.js:824 +#: templates/js/translated/pricing.js:948 +#: templates/js/translated/purchase_order.js:1785 +#: templates/js/translated/stock.js:2906 msgid "Date" msgstr "" -#: part/models.py:3290 +#: part/models.py:3341 msgid "Date stocktake was performed" msgstr "" -#: part/models.py:3298 +#: part/models.py:3349 msgid "Additional notes" msgstr "" -#: part/models.py:3308 +#: part/models.py:3359 msgid "User who performed this stocktake" msgstr "" -#: part/models.py:3314 +#: part/models.py:3365 msgid "Minimum Stock Cost" msgstr "" -#: part/models.py:3315 +#: part/models.py:3366 msgid "Estimated minimum cost of stock on hand" msgstr "" -#: part/models.py:3321 +#: part/models.py:3372 msgid "Maximum Stock Cost" msgstr "" -#: part/models.py:3322 +#: part/models.py:3373 msgid "Estimated maximum cost of stock on hand" msgstr "" -#: part/models.py:3378 templates/InvenTree/settings/settings_staff_js.html:532 +#: part/models.py:3429 templates/InvenTree/settings/settings_staff_js.html:532 msgid "Report" msgstr "" -#: part/models.py:3379 +#: part/models.py:3430 msgid "Stocktake report file (generated internally)" msgstr "" -#: part/models.py:3384 templates/InvenTree/settings/settings_staff_js.html:539 +#: part/models.py:3435 templates/InvenTree/settings/settings_staff_js.html:539 msgid "Part Count" msgstr "" -#: part/models.py:3385 +#: part/models.py:3436 msgid "Number of parts covered by stocktake" msgstr "" -#: part/models.py:3395 +#: part/models.py:3446 msgid "User who requested this stocktake report" msgstr "" -#: part/models.py:3405 +#: part/models.py:3456 msgid "Part Sale Price Break" msgstr "" -#: part/models.py:3517 +#: part/models.py:3568 msgid "Part Test Template" msgstr "" -#: part/models.py:3543 +#: part/models.py:3594 msgid "Invalid template name - must include at least one alphanumeric character" msgstr "" -#: part/models.py:3564 part/models.py:3733 +#: part/models.py:3615 part/models.py:3784 msgid "Choices must be unique" msgstr "" -#: part/models.py:3575 -msgid "Test templates can only be created for trackable parts" +#: part/models.py:3626 +msgid "Test templates can only be created for testable parts" msgstr "" -#: part/models.py:3586 +#: part/models.py:3637 msgid "Test template with the same key already exists for part" msgstr "" -#: part/models.py:3603 templates/js/translated/part.js:2898 +#: part/models.py:3654 templates/js/translated/part.js:2898 msgid "Test Name" msgstr "" -#: part/models.py:3604 +#: part/models.py:3655 msgid "Enter a name for the test" msgstr "" -#: part/models.py:3610 +#: part/models.py:3661 msgid "Test Key" msgstr "" -#: part/models.py:3611 +#: part/models.py:3662 msgid "Simplified key for the test" msgstr "" -#: part/models.py:3618 +#: part/models.py:3669 msgid "Test Description" msgstr "" -#: part/models.py:3619 +#: part/models.py:3670 msgid "Enter description for this test" msgstr "" -#: part/models.py:3623 report/models.py:208 +#: part/models.py:3674 report/models.py:216 #: templates/js/translated/part.js:2919 #: templates/js/translated/table_filters.js:502 msgid "Enabled" msgstr "" -#: part/models.py:3623 +#: part/models.py:3674 msgid "Is this test enabled?" msgstr "" -#: part/models.py:3628 templates/js/translated/part.js:2927 +#: part/models.py:3679 templates/js/translated/part.js:2927 #: templates/js/translated/table_filters.js:498 msgid "Required" msgstr "" -#: part/models.py:3629 +#: part/models.py:3680 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:3634 templates/js/translated/part.js:2935 +#: part/models.py:3685 templates/js/translated/part.js:2935 msgid "Requires Value" msgstr "" -#: part/models.py:3635 +#: part/models.py:3686 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:3640 templates/js/translated/part.js:2942 +#: part/models.py:3691 templates/js/translated/part.js:2942 msgid "Requires Attachment" msgstr "" -#: part/models.py:3642 +#: part/models.py:3693 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:3648 part/models.py:3792 templates/js/translated/part.js:1643 +#: part/models.py:3699 part/models.py:3843 templates/js/translated/part.js:1643 msgid "Choices" msgstr "" -#: part/models.py:3649 +#: part/models.py:3700 msgid "Valid choices for this test (comma-separated)" msgstr "" -#: part/models.py:3681 +#: part/models.py:3732 msgid "Part Parameter Template" msgstr "" -#: part/models.py:3708 +#: part/models.py:3759 msgid "Checkbox parameters cannot have units" msgstr "" -#: part/models.py:3713 +#: part/models.py:3764 msgid "Checkbox parameters cannot have choices" msgstr "" -#: part/models.py:3750 +#: part/models.py:3801 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:3765 +#: part/models.py:3816 msgid "Parameter Name" msgstr "" -#: part/models.py:3772 +#: part/models.py:3823 msgid "Physical units for this parameter" msgstr "" -#: part/models.py:3780 +#: part/models.py:3831 msgid "Parameter description" msgstr "" -#: part/models.py:3786 templates/js/translated/part.js:1634 +#: part/models.py:3837 templates/js/translated/part.js:1634 #: templates/js/translated/table_filters.js:837 msgid "Checkbox" msgstr "" -#: part/models.py:3787 +#: part/models.py:3838 msgid "Is this parameter a checkbox?" msgstr "" -#: part/models.py:3793 +#: part/models.py:3844 msgid "Valid choices for this parameter (comma-separated)" msgstr "" -#: part/models.py:3827 +#: part/models.py:3881 msgid "Part Parameter" msgstr "" -#: part/models.py:3853 +#: part/models.py:3907 msgid "Parameter cannot be modified - part is locked" msgstr "" -#: part/models.py:3889 +#: part/models.py:3945 msgid "Invalid choice for parameter value" msgstr "" -#: part/models.py:3938 +#: part/models.py:3996 msgid "Parent Part" msgstr "" -#: part/models.py:3946 part/models.py:4054 part/models.py:4055 +#: part/models.py:4004 part/models.py:4112 part/models.py:4113 #: templates/InvenTree/settings/settings_staff_js.html:295 msgid "Parameter Template" msgstr "" -#: part/models.py:3952 +#: part/models.py:4010 msgid "Parameter Value" msgstr "" -#: part/models.py:4002 +#: part/models.py:4060 msgid "Part Category Parameter Template" msgstr "" -#: part/models.py:4061 templates/InvenTree/settings/settings_staff_js.html:304 +#: part/models.py:4119 templates/InvenTree/settings/settings_staff_js.html:304 msgid "Default Value" msgstr "" -#: part/models.py:4062 +#: part/models.py:4120 msgid "Default Parameter Value" msgstr "" -#: part/models.py:4100 +#: part/models.py:4158 msgid "Part ID or part name" msgstr "" -#: part/models.py:4101 +#: part/models.py:4159 msgid "Unique part ID value" msgstr "" -#: part/models.py:4103 +#: part/models.py:4161 msgid "Part IPN value" msgstr "" -#: part/models.py:4104 +#: part/models.py:4162 msgid "Level" msgstr "" -#: part/models.py:4104 +#: part/models.py:4162 msgid "BOM level" msgstr "" -#: part/models.py:4215 +#: part/models.py:4272 msgid "BOM item cannot be modified - assembly is locked" msgstr "" -#: part/models.py:4222 +#: part/models.py:4279 msgid "BOM item cannot be modified - variant assembly is locked" msgstr "" -#: part/models.py:4232 +#: part/models.py:4289 msgid "Select parent part" msgstr "" -#: part/models.py:4242 +#: part/models.py:4299 msgid "Sub part" msgstr "" -#: part/models.py:4243 +#: part/models.py:4300 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:4254 +#: part/models.py:4311 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:4260 +#: part/models.py:4317 msgid "This BOM item is optional" msgstr "" -#: part/models.py:4266 +#: part/models.py:4323 msgid "This BOM item is consumable (it is not tracked in build orders)" msgstr "" -#: part/models.py:4273 part/templates/part/upload_bom.html:55 +#: part/models.py:4330 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "" -#: part/models.py:4274 +#: part/models.py:4331 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:4281 +#: part/models.py:4338 msgid "BOM item reference" msgstr "" -#: part/models.py:4289 +#: part/models.py:4346 msgid "BOM item notes" msgstr "" -#: part/models.py:4295 +#: part/models.py:4352 msgid "Checksum" msgstr "" -#: part/models.py:4296 +#: part/models.py:4353 msgid "BOM line checksum" msgstr "" -#: part/models.py:4301 templates/js/translated/table_filters.js:181 +#: part/models.py:4358 templates/js/translated/table_filters.js:181 msgid "Validated" msgstr "" -#: part/models.py:4302 +#: part/models.py:4359 msgid "This BOM item has been validated" msgstr "" -#: part/models.py:4307 part/templates/part/upload_bom.html:57 +#: part/models.py:4364 part/templates/part/upload_bom.html:57 #: templates/js/translated/bom.js:1054 #: templates/js/translated/table_filters.js:185 #: templates/js/translated/table_filters.js:218 msgid "Gets inherited" msgstr "" -#: part/models.py:4308 +#: part/models.py:4365 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:4314 +#: part/models.py:4371 msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:4399 stock/models.py:685 +#: part/models.py:4456 stock/models.py:762 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:4409 part/models.py:4411 +#: part/models.py:4466 part/models.py:4468 msgid "Sub part must be specified" msgstr "" -#: part/models.py:4551 +#: part/models.py:4613 msgid "BOM Item Substitute" msgstr "" -#: part/models.py:4572 +#: part/models.py:4634 msgid "Substitute part cannot be the same as the master part" msgstr "" -#: part/models.py:4585 +#: part/models.py:4647 msgid "Parent BOM item" msgstr "" -#: part/models.py:4593 +#: part/models.py:4655 msgid "Substitute part" msgstr "" -#: part/models.py:4609 +#: part/models.py:4671 msgid "Part 1" msgstr "" -#: part/models.py:4617 +#: part/models.py:4679 msgid "Part 2" msgstr "" -#: part/models.py:4618 +#: part/models.py:4680 msgid "Select Related Part" msgstr "" -#: part/models.py:4637 +#: part/models.py:4699 msgid "Part relationship cannot be created between a part and itself" msgstr "" -#: part/models.py:4642 +#: part/models.py:4704 msgid "Duplicate relationship already exists" msgstr "" @@ -7449,340 +7662,352 @@ msgstr "" msgid "Number of results recorded against this template" msgstr "" -#: part/serializers.py:225 part/serializers.py:243 stock/serializers.py:616 +#: part/serializers.py:225 part/serializers.py:243 stock/serializers.py:643 msgid "Purchase currency of this stock item" msgstr "" -#: part/serializers.py:291 +#: part/serializers.py:268 +msgid "Speculative Quantity" +msgstr "" + +#: part/serializers.py:277 +msgid "Model ID" +msgstr "" + +#: part/serializers.py:324 msgid "Number of parts using this template" msgstr "" -#: part/serializers.py:421 +#: part/serializers.py:465 msgid "No parts selected" msgstr "" -#: part/serializers.py:431 +#: part/serializers.py:475 msgid "Select category" msgstr "" -#: part/serializers.py:466 +#: part/serializers.py:510 msgid "Original Part" msgstr "" -#: part/serializers.py:467 +#: part/serializers.py:511 msgid "Select original part to duplicate" msgstr "" -#: part/serializers.py:472 +#: part/serializers.py:516 msgid "Copy Image" msgstr "" -#: part/serializers.py:473 +#: part/serializers.py:517 msgid "Copy image from original part" msgstr "" -#: part/serializers.py:479 part/templates/part/detail.html:293 +#: part/serializers.py:523 part/templates/part/detail.html:293 msgid "Copy BOM" msgstr "" -#: part/serializers.py:480 +#: part/serializers.py:524 msgid "Copy bill of materials from original part" msgstr "" -#: part/serializers.py:486 +#: part/serializers.py:530 msgid "Copy Parameters" msgstr "" -#: part/serializers.py:487 +#: part/serializers.py:531 msgid "Copy parameter data from original part" msgstr "" -#: part/serializers.py:493 +#: part/serializers.py:537 msgid "Copy Notes" msgstr "" -#: part/serializers.py:494 +#: part/serializers.py:538 msgid "Copy notes from original part" msgstr "" -#: part/serializers.py:512 +#: part/serializers.py:556 msgid "Initial Stock Quantity" msgstr "" -#: part/serializers.py:514 +#: part/serializers.py:558 msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added." msgstr "" -#: part/serializers.py:521 +#: part/serializers.py:565 msgid "Initial Stock Location" msgstr "" -#: part/serializers.py:522 +#: part/serializers.py:566 msgid "Specify initial stock location for this Part" msgstr "" -#: part/serializers.py:539 +#: part/serializers.py:583 msgid "Select supplier (or leave blank to skip)" msgstr "" -#: part/serializers.py:555 +#: part/serializers.py:599 msgid "Select manufacturer (or leave blank to skip)" msgstr "" -#: part/serializers.py:565 +#: part/serializers.py:609 msgid "Manufacturer part number" msgstr "" -#: part/serializers.py:572 +#: part/serializers.py:616 msgid "Selected company is not a valid supplier" msgstr "" -#: part/serializers.py:581 +#: part/serializers.py:625 msgid "Selected company is not a valid manufacturer" msgstr "" -#: part/serializers.py:592 +#: part/serializers.py:636 msgid "Manufacturer part matching this MPN already exists" msgstr "" -#: part/serializers.py:599 +#: part/serializers.py:643 msgid "Supplier part matching this SKU already exists" msgstr "" -#: part/serializers.py:903 +#: part/serializers.py:955 msgid "Revisions" msgstr "" -#: part/serializers.py:908 +#: part/serializers.py:960 msgid "Unallocated Stock" msgstr "" -#: part/serializers.py:911 +#: part/serializers.py:963 msgid "Variant Stock" msgstr "" -#: part/serializers.py:941 part/templates/part/copy_part.html:9 +#: part/serializers.py:993 part/templates/part/copy_part.html:9 #: templates/js/translated/part.js:474 msgid "Duplicate Part" msgstr "" -#: part/serializers.py:942 +#: part/serializers.py:994 msgid "Copy initial data from another Part" msgstr "" -#: part/serializers.py:948 templates/js/translated/part.js:103 +#: part/serializers.py:1000 templates/js/translated/part.js:103 msgid "Initial Stock" msgstr "" -#: part/serializers.py:949 +#: part/serializers.py:1001 msgid "Create Part with initial stock quantity" msgstr "" -#: part/serializers.py:955 +#: part/serializers.py:1007 msgid "Supplier Information" msgstr "" -#: part/serializers.py:956 +#: part/serializers.py:1008 msgid "Add initial supplier information for this part" msgstr "" -#: part/serializers.py:964 +#: part/serializers.py:1016 msgid "Copy Category Parameters" msgstr "" -#: part/serializers.py:965 +#: part/serializers.py:1017 msgid "Copy parameter templates from selected part category" msgstr "" -#: part/serializers.py:970 +#: part/serializers.py:1022 msgid "Existing Image" msgstr "" -#: part/serializers.py:971 +#: part/serializers.py:1023 msgid "Filename of an existing part image" msgstr "" -#: part/serializers.py:988 +#: part/serializers.py:1040 msgid "Image file does not exist" msgstr "" -#: part/serializers.py:1194 +#: part/serializers.py:1247 msgid "Limit stocktake report to a particular part, and any variant parts" msgstr "" -#: part/serializers.py:1204 +#: part/serializers.py:1257 msgid "Limit stocktake report to a particular part category, and any child categories" msgstr "" -#: part/serializers.py:1214 +#: part/serializers.py:1267 msgid "Limit stocktake report to a particular stock location, and any child locations" msgstr "" -#: part/serializers.py:1220 +#: part/serializers.py:1273 msgid "Exclude External Stock" msgstr "" -#: part/serializers.py:1221 +#: part/serializers.py:1274 msgid "Exclude stock items in external locations" msgstr "" -#: part/serializers.py:1226 +#: part/serializers.py:1279 msgid "Generate Report" msgstr "" -#: part/serializers.py:1227 +#: part/serializers.py:1280 msgid "Generate report file containing calculated stocktake data" msgstr "" -#: part/serializers.py:1232 +#: part/serializers.py:1285 msgid "Update Parts" msgstr "" -#: part/serializers.py:1233 +#: part/serializers.py:1286 msgid "Update specified parts with calculated stocktake data" msgstr "" -#: part/serializers.py:1241 +#: part/serializers.py:1294 msgid "Stocktake functionality is not enabled" msgstr "" -#: part/serializers.py:1347 +#: part/serializers.py:1299 +msgid "Background worker check failed" +msgstr "" + +#: part/serializers.py:1401 msgid "Override calculated value for minimum price" msgstr "" -#: part/serializers.py:1354 +#: part/serializers.py:1408 msgid "Minimum price currency" msgstr "" -#: part/serializers.py:1362 +#: part/serializers.py:1416 msgid "Override calculated value for maximum price" msgstr "" -#: part/serializers.py:1369 +#: part/serializers.py:1423 msgid "Maximum price currency" msgstr "" -#: part/serializers.py:1398 +#: part/serializers.py:1452 msgid "Update" msgstr "" -#: part/serializers.py:1399 +#: part/serializers.py:1453 msgid "Update pricing for this part" msgstr "" -#: part/serializers.py:1422 +#: part/serializers.py:1476 #, python-brace-format msgid "Could not convert from provided currencies to {default_currency}" msgstr "" -#: part/serializers.py:1429 +#: part/serializers.py:1483 msgid "Minimum price must not be greater than maximum price" msgstr "" -#: part/serializers.py:1432 +#: part/serializers.py:1486 msgid "Maximum price must not be less than minimum price" msgstr "" -#: part/serializers.py:1576 +#: part/serializers.py:1634 msgid "Select the parent assembly" msgstr "" -#: part/serializers.py:1585 +#: part/serializers.py:1643 msgid "Component Name" msgstr "" -#: part/serializers.py:1588 +#: part/serializers.py:1646 msgid "Component IPN" msgstr "" -#: part/serializers.py:1591 +#: part/serializers.py:1649 msgid "Component Description" msgstr "" -#: part/serializers.py:1597 +#: part/serializers.py:1655 msgid "Select the component part" msgstr "" -#: part/serializers.py:1606 part/templates/part/part_base.html:235 +#: part/serializers.py:1664 part/templates/part/part_base.html:243 #: templates/js/translated/bom.js:1219 msgid "Can Build" msgstr "" -#: part/serializers.py:1837 +#: part/serializers.py:1899 msgid "Select part to copy BOM from" msgstr "" -#: part/serializers.py:1845 +#: part/serializers.py:1907 msgid "Remove Existing Data" msgstr "" -#: part/serializers.py:1846 +#: part/serializers.py:1908 msgid "Remove existing BOM items before copying" msgstr "" -#: part/serializers.py:1851 +#: part/serializers.py:1913 msgid "Include Inherited" msgstr "" -#: part/serializers.py:1852 +#: part/serializers.py:1914 msgid "Include BOM items which are inherited from templated parts" msgstr "" -#: part/serializers.py:1857 +#: part/serializers.py:1919 msgid "Skip Invalid Rows" msgstr "" -#: part/serializers.py:1858 +#: part/serializers.py:1920 msgid "Enable this option to skip invalid rows" msgstr "" -#: part/serializers.py:1863 +#: part/serializers.py:1925 msgid "Copy Substitute Parts" msgstr "" -#: part/serializers.py:1864 +#: part/serializers.py:1926 msgid "Copy substitute parts when duplicate BOM items" msgstr "" -#: part/serializers.py:1901 +#: part/serializers.py:1963 msgid "Clear Existing BOM" msgstr "" -#: part/serializers.py:1902 +#: part/serializers.py:1964 msgid "Delete existing BOM items before uploading" msgstr "" -#: part/serializers.py:1934 +#: part/serializers.py:1996 msgid "No part column specified" msgstr "" -#: part/serializers.py:1978 +#: part/serializers.py:2040 msgid "Multiple matching parts found" msgstr "" -#: part/serializers.py:1981 +#: part/serializers.py:2043 msgid "No matching part found" msgstr "" -#: part/serializers.py:1984 +#: part/serializers.py:2045 msgid "Part is not designated as a component" msgstr "" -#: part/serializers.py:1993 +#: part/serializers.py:2054 msgid "Quantity not provided" msgstr "" -#: part/serializers.py:2001 +#: part/serializers.py:2062 msgid "Invalid quantity" msgstr "" -#: part/serializers.py:2024 +#: part/serializers.py:2085 msgid "At least one BOM item is required" msgstr "" #: part/stocktake.py:224 templates/js/translated/part.js:1073 #: templates/js/translated/part.js:1828 templates/js/translated/part.js:1884 -#: templates/js/translated/purchase_order.js:2154 +#: templates/js/translated/purchase_order.js:2138 msgid "Total Quantity" msgstr "" @@ -7932,9 +8157,9 @@ msgid "Add stocktake information" msgstr "" #: part/templates/part/detail.html:67 part/templates/part/part_sidebar.html:50 -#: stock/admin.py:255 templates/InvenTree/settings/part_stocktake.html:30 +#: stock/admin.py:256 templates/InvenTree/settings/part_stocktake.html:30 #: templates/InvenTree/settings/sidebar.html:53 -#: templates/js/translated/stock.js:2301 users/models.py:204 +#: templates/js/translated/stock.js:2302 users/models.py:204 msgid "Stocktake" msgstr "" @@ -8093,142 +8318,146 @@ msgstr "" msgid "Part List" msgstr "" -#: part/templates/part/part_base.html:25 part/templates/part/part_base.html:29 +#: part/templates/part/part_base.html:26 part/templates/part/part_base.html:30 msgid "You are subscribed to notifications for this part" msgstr "" -#: part/templates/part/part_base.html:33 +#: part/templates/part/part_base.html:34 msgid "Subscribe to notifications for this part" msgstr "" -#: part/templates/part/part_base.html:52 +#: part/templates/part/part_base.html:53 #: stock/templates/stock/item_base.html:62 -#: stock/templates/stock/location.html:71 templates/js/translated/label.js:136 +#: stock/templates/stock/location.html:72 templates/js/translated/label.js:136 msgid "Print Label" msgstr "" -#: part/templates/part/part_base.html:58 +#: part/templates/part/part_base.html:59 msgid "Show pricing information" msgstr "" -#: part/templates/part/part_base.html:63 -#: stock/templates/stock/item_base.html:110 -#: stock/templates/stock/location.html:80 +#: part/templates/part/part_base.html:64 +#: stock/templates/stock/item_base.html:107 +#: stock/templates/stock/location.html:81 msgid "Stock actions" msgstr "" -#: part/templates/part/part_base.html:70 +#: part/templates/part/part_base.html:71 msgid "Count part stock" msgstr "" -#: part/templates/part/part_base.html:76 +#: part/templates/part/part_base.html:77 msgid "Transfer part stock" msgstr "" -#: part/templates/part/part_base.html:91 templates/js/translated/part.js:2299 +#: part/templates/part/part_base.html:92 templates/js/translated/part.js:2299 msgid "Part actions" msgstr "" -#: part/templates/part/part_base.html:94 +#: part/templates/part/part_base.html:95 msgid "Duplicate part" msgstr "" -#: part/templates/part/part_base.html:97 +#: part/templates/part/part_base.html:98 msgid "Edit part" msgstr "" -#: part/templates/part/part_base.html:100 +#: part/templates/part/part_base.html:101 msgid "Delete part" msgstr "" -#: part/templates/part/part_base.html:119 +#: part/templates/part/part_base.html:120 msgid "Part is a template part (variants can be made from this part)" msgstr "" -#: part/templates/part/part_base.html:123 +#: part/templates/part/part_base.html:124 msgid "Part can be assembled from other parts" msgstr "" -#: part/templates/part/part_base.html:127 +#: part/templates/part/part_base.html:128 msgid "Part can be used in assemblies" msgstr "" -#: part/templates/part/part_base.html:131 +#: part/templates/part/part_base.html:132 msgid "Part stock is tracked by serial number" msgstr "" -#: part/templates/part/part_base.html:135 +#: part/templates/part/part_base.html:136 msgid "Part can be purchased from external suppliers" msgstr "" -#: part/templates/part/part_base.html:139 +#: part/templates/part/part_base.html:140 msgid "Part can be sold to customers" msgstr "" -#: part/templates/part/part_base.html:145 +#: part/templates/part/part_base.html:146 msgid "Part is not active" msgstr "" -#: part/templates/part/part_base.html:153 +#: part/templates/part/part_base.html:154 msgid "Part is virtual (not a physical part)" msgstr "" -#: part/templates/part/part_base.html:163 -#: part/templates/part/part_base.html:690 +#: part/templates/part/part_base.html:164 +#: part/templates/part/part_base.html:698 msgid "Show Part Details" msgstr "" #: part/templates/part/part_base.html:218 -#: stock/templates/stock/item_base.html:388 +msgid "Required for Orders" +msgstr "" + +#: part/templates/part/part_base.html:226 +#: stock/templates/stock/item_base.html:385 msgid "Allocated to Build Orders" msgstr "" -#: part/templates/part/part_base.html:227 -#: stock/templates/stock/item_base.html:381 +#: part/templates/part/part_base.html:235 +#: stock/templates/stock/item_base.html:378 msgid "Allocated to Sales Orders" msgstr "" -#: part/templates/part/part_base.html:300 +#: part/templates/part/part_base.html:308 msgid "Minimum stock level" msgstr "" -#: part/templates/part/part_base.html:331 templates/js/translated/bom.js:1071 +#: part/templates/part/part_base.html:339 templates/js/translated/bom.js:1071 #: templates/js/translated/part.js:1271 templates/js/translated/part.js:2463 #: templates/js/translated/pricing.js:391 -#: templates/js/translated/pricing.js:1054 +#: templates/js/translated/pricing.js:1052 msgid "Price Range" msgstr "" -#: part/templates/part/part_base.html:361 +#: part/templates/part/part_base.html:369 msgid "Latest Serial Number" msgstr "" -#: part/templates/part/part_base.html:365 -#: stock/templates/stock/item_base.html:322 +#: part/templates/part/part_base.html:373 +#: stock/templates/stock/item_base.html:319 msgid "Search for serial number" msgstr "" -#: part/templates/part/part_base.html:453 +#: part/templates/part/part_base.html:461 msgid "Part QR Code" msgstr "" -#: part/templates/part/part_base.html:470 +#: part/templates/part/part_base.html:478 msgid "Link Barcode to Part" msgstr "" -#: part/templates/part/part_base.html:520 +#: part/templates/part/part_base.html:528 msgid "Calculate" msgstr "" -#: part/templates/part/part_base.html:537 +#: part/templates/part/part_base.html:545 msgid "Remove associated image from this part" msgstr "" -#: part/templates/part/part_base.html:588 +#: part/templates/part/part_base.html:596 msgid "No matching images found" msgstr "" -#: part/templates/part/part_base.html:684 +#: part/templates/part/part_base.html:692 msgid "Hide Part Details" msgstr "" @@ -8282,13 +8511,13 @@ msgid "Variants" msgstr "" #: part/templates/part/part_sidebar.html:14 -#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:21 +#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:22 #: stock/templates/stock/stock_app_base.html:10 #: templates/InvenTree/search.html:153 #: templates/InvenTree/settings/sidebar.html:51 #: templates/js/translated/part.js:1249 templates/js/translated/part.js:2152 #: templates/js/translated/part.js:2411 templates/js/translated/stock.js:1066 -#: templates/js/translated/stock.js:2155 templates/navbar.html:31 +#: templates/js/translated/stock.js:2156 templates/navbar.html:31 msgid "Stock" msgstr "" @@ -8324,17 +8553,17 @@ msgstr "" #: part/templates/part/prices.html:18 #: templates/InvenTree/settings/settings_staff_js.html:80 #: templates/InvenTree/settings/user.html:24 -#: templates/js/translated/helpers.js:103 +#: templates/js/translated/helpers.js:104 #: templates/js/translated/pricing.js:628 templates/notes_buttons.html:3 #: templates/notes_buttons.html:4 msgid "Edit" msgstr "" -#: part/templates/part/prices.html:28 stock/admin.py:251 -#: stock/templates/stock/item_base.html:446 -#: templates/js/translated/company.js:1703 -#: templates/js/translated/company.js:1713 -#: templates/js/translated/stock.js:2331 +#: part/templates/part/prices.html:28 stock/admin.py:252 +#: stock/templates/stock/item_base.html:443 +#: templates/js/translated/company.js:1704 +#: templates/js/translated/company.js:1714 +#: templates/js/translated/stock.js:2332 msgid "Last Updated" msgstr "" @@ -8406,7 +8635,7 @@ msgid "Update Pricing" msgstr "" #: part/templates/part/stock_count.html:7 -#: templates/js/translated/model_renderers.js:228 +#: templates/js/translated/model_renderers.js:231 #: templates/js/translated/part.js:707 templates/js/translated/part.js:2147 #: templates/js/translated/part.js:2149 msgid "No Stock" @@ -8486,7 +8715,7 @@ msgstr "" msgid "Part Pricing" msgstr "" -#: plugin/api.py:172 +#: plugin/api.py:175 msgid "Plugin cannot be deleted as it is currently active" msgstr "" @@ -8498,78 +8727,85 @@ msgstr "" msgid "No matching action found" msgstr "" -#: plugin/base/barcodes/api.py:125 plugin/base/barcodes/api.py:371 -#: plugin/base/barcodes/api.py:546 +#: plugin/base/barcodes/api.py:203 msgid "No match found for barcode data" msgstr "" -#: plugin/base/barcodes/api.py:129 +#: plugin/base/barcodes/api.py:207 msgid "Match found for barcode data" msgstr "" -#: plugin/base/barcodes/api.py:163 plugin/base/barcodes/serializers.py:45 +#: plugin/base/barcodes/api.py:245 plugin/base/barcodes/serializers.py:72 msgid "Model is not supported" msgstr "" -#: plugin/base/barcodes/api.py:168 +#: plugin/base/barcodes/api.py:250 msgid "Model instance not found" msgstr "" -#: plugin/base/barcodes/api.py:197 -#: templates/js/translated/purchase_order.js:1468 +#: plugin/base/barcodes/api.py:279 +#: templates/js/translated/purchase_order.js:1452 msgid "Barcode matches existing item" msgstr "" -#: plugin/base/barcodes/api.py:336 +#: plugin/base/barcodes/api.py:418 msgid "No matching part data found" msgstr "" -#: plugin/base/barcodes/api.py:353 +#: plugin/base/barcodes/api.py:434 msgid "No matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:357 +#: plugin/base/barcodes/api.py:437 msgid "Multiple matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:381 +#: plugin/base/barcodes/api.py:450 plugin/base/barcodes/api.py:664 +msgid "No matching plugin found for barcode data" +msgstr "" + +#: plugin/base/barcodes/api.py:460 msgid "Matched supplier part" msgstr "" -#: plugin/base/barcodes/api.py:430 +#: plugin/base/barcodes/api.py:525 msgid "Item has already been received" msgstr "" -#: plugin/base/barcodes/api.py:467 +#: plugin/base/barcodes/api.py:563 msgid "No match for supplier barcode" msgstr "" -#: plugin/base/barcodes/api.py:510 +#: plugin/base/barcodes/api.py:612 msgid "Multiple matching line items found" msgstr "" -#: plugin/base/barcodes/api.py:513 +#: plugin/base/barcodes/api.py:615 msgid "No matching line item found" msgstr "" -#: plugin/base/barcodes/api.py:551 plugin/base/barcodes/api.py:558 +#: plugin/base/barcodes/api.py:661 +msgid "No sales order provided" +msgstr "" + +#: plugin/base/barcodes/api.py:670 msgid "Barcode does not match an existing stock item" msgstr "" -#: plugin/base/barcodes/api.py:569 +#: plugin/base/barcodes/api.py:686 msgid "Stock item does not match line item" msgstr "" -#: plugin/base/barcodes/api.py:593 templates/js/translated/build.js:2780 -#: templates/js/translated/sales_order.js:1953 +#: plugin/base/barcodes/api.py:716 templates/js/translated/build.js:2798 +#: templates/js/translated/sales_order.js:1934 msgid "Insufficient stock available" msgstr "" -#: plugin/base/barcodes/api.py:602 +#: plugin/base/barcodes/api.py:729 msgid "Stock item allocated to sales order" msgstr "" -#: plugin/base/barcodes/api.py:606 +#: plugin/base/barcodes/api.py:732 msgid "Not enough information" msgstr "" @@ -8591,75 +8827,75 @@ msgstr "" msgid "Purchase order does not match supplier" msgstr "" -#: plugin/base/barcodes/mixins.py:465 +#: plugin/base/barcodes/mixins.py:467 msgid "Failed to find pending line item for supplier part" msgstr "" -#: plugin/base/barcodes/mixins.py:496 +#: plugin/base/barcodes/mixins.py:498 msgid "Further information required to receive line item" msgstr "" -#: plugin/base/barcodes/mixins.py:504 +#: plugin/base/barcodes/mixins.py:506 msgid "Received purchase order line item" msgstr "" -#: plugin/base/barcodes/serializers.py:21 +#: plugin/base/barcodes/serializers.py:48 msgid "Scanned barcode data" msgstr "" -#: plugin/base/barcodes/serializers.py:30 +#: plugin/base/barcodes/serializers.py:57 msgid "Model name to generate barcode for" msgstr "" -#: plugin/base/barcodes/serializers.py:35 +#: plugin/base/barcodes/serializers.py:62 msgid "Primary key of model object to generate barcode for" msgstr "" -#: plugin/base/barcodes/serializers.py:105 +#: plugin/base/barcodes/serializers.py:132 msgid "Purchase Order to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:111 +#: plugin/base/barcodes/serializers.py:138 msgid "Purchase order is not pending" msgstr "" -#: plugin/base/barcodes/serializers.py:129 +#: plugin/base/barcodes/serializers.py:156 msgid "PurchaseOrder to receive items against" msgstr "" -#: plugin/base/barcodes/serializers.py:135 +#: plugin/base/barcodes/serializers.py:162 msgid "Purchase order has not been placed" msgstr "" -#: plugin/base/barcodes/serializers.py:143 +#: plugin/base/barcodes/serializers.py:170 msgid "Location to receive items into" msgstr "" -#: plugin/base/barcodes/serializers.py:149 +#: plugin/base/barcodes/serializers.py:176 msgid "Cannot select a structural location" msgstr "" -#: plugin/base/barcodes/serializers.py:163 +#: plugin/base/barcodes/serializers.py:190 msgid "Sales Order to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:169 +#: plugin/base/barcodes/serializers.py:196 msgid "Sales order is not pending" msgstr "" -#: plugin/base/barcodes/serializers.py:177 +#: plugin/base/barcodes/serializers.py:204 msgid "Sales order line item to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:184 +#: plugin/base/barcodes/serializers.py:211 msgid "Sales order shipment to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:190 +#: plugin/base/barcodes/serializers.py:217 msgid "Shipment has already been delivered" msgstr "" -#: plugin/base/barcodes/serializers.py:195 +#: plugin/base/barcodes/serializers.py:222 msgid "Quantity to allocate" msgstr "" @@ -8679,6 +8915,42 @@ msgstr "" msgid "No items provided to print" msgstr "" +#: plugin/base/ui/serializers.py:30 +msgid "Plugin Name" +msgstr "" + +#: plugin/base/ui/serializers.py:34 +msgid "Feature Type" +msgstr "" + +#: plugin/base/ui/serializers.py:39 +msgid "Feature Label" +msgstr "" + +#: plugin/base/ui/serializers.py:44 +msgid "Feature Title" +msgstr "" + +#: plugin/base/ui/serializers.py:49 +msgid "Feature Description" +msgstr "" + +#: plugin/base/ui/serializers.py:54 +msgid "Feature Icon" +msgstr "" + +#: plugin/base/ui/serializers.py:58 +msgid "Feature Options" +msgstr "" + +#: plugin/base/ui/serializers.py:61 +msgid "Feature Context" +msgstr "" + +#: plugin/base/ui/serializers.py:64 +msgid "Feature Source (javascript)" +msgstr "" + #: plugin/builtin/barcodes/inventree_barcode.py:27 msgid "InvenTree Barcodes" msgstr "" @@ -8756,7 +9028,7 @@ msgstr "" msgid "URL that is used to send messages to a slack channel" msgstr "" -#: plugin/builtin/integration/core_notifications.py:164 +#: plugin/builtin/integration/core_notifications.py:166 msgid "Open link" msgstr "" @@ -8794,11 +9066,11 @@ msgstr "" msgid "Provides support for printing using a machine" msgstr "" -#: plugin/builtin/labels/inventree_machine.py:149 +#: plugin/builtin/labels/inventree_machine.py:151 msgid "last used" msgstr "" -#: plugin/builtin/labels/inventree_machine.py:166 +#: plugin/builtin/labels/inventree_machine.py:168 msgid "Options" msgstr "" @@ -8822,7 +9094,7 @@ msgstr "" msgid "Print a border around each label" msgstr "" -#: plugin/builtin/labels/label_sheet.py:47 report/models.py:307 +#: plugin/builtin/labels/label_sheet.py:47 report/models.py:315 msgid "Landscape" msgstr "" @@ -8894,19 +9166,19 @@ msgstr "" msgid "The Supplier which acts as 'TME'" msgstr "" -#: plugin/installer.py:194 plugin/installer.py:282 +#: plugin/installer.py:199 plugin/installer.py:282 msgid "Only staff users can administer plugins" msgstr "" -#: plugin/installer.py:197 +#: plugin/installer.py:202 msgid "Plugin installation is disabled" msgstr "" -#: plugin/installer.py:248 +#: plugin/installer.py:246 msgid "Installed plugin successfully" msgstr "" -#: plugin/installer.py:254 +#: plugin/installer.py:251 #, python-brace-format msgid "Installed plugin into {path}" msgstr "" @@ -8943,10 +9215,6 @@ msgstr "" msgid "Plugin Configurations" msgstr "" -#: plugin/models.py:43 users/models.py:100 -msgid "Key" -msgstr "" - #: plugin/models.py:44 msgid "Key of plugin" msgstr "" @@ -8955,7 +9223,7 @@ msgstr "" msgid "PluginName of the plugin" msgstr "" -#: plugin/models.py:59 plugin/serializers.py:90 +#: plugin/models.py:59 plugin/serializers.py:115 msgid "Package Name" msgstr "" @@ -8984,17 +9252,17 @@ msgstr "" msgid "Package Plugin" msgstr "" -#: plugin/models.py:220 report/models.py:474 +#: plugin/models.py:259 report/models.py:482 #: templates/InvenTree/settings/plugin_settings.html:9 #: templates/js/translated/plugin.js:51 msgid "Plugin" msgstr "" -#: plugin/models.py:267 +#: plugin/models.py:306 msgid "Method" msgstr "" -#: plugin/plugin.py:270 +#: plugin/plugin.py:275 msgid "No author found" msgstr "" @@ -9053,81 +9321,157 @@ msgstr "" msgid "InvenTree Contributors" msgstr "" -#: plugin/serializers.py:81 -msgid "Source URL" +#: plugin/samples/integration/user_interface_sample.py:27 +msgid "Enable Part Panels" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:28 +msgid "Enable custom panels for Part views" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:33 +msgid "Enable Purchase Order Panels" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:34 +msgid "Enable custom panels for Purchase Order views" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:39 +msgid "Enable Broken Panels" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:40 +msgid "Enable broken panels for testing" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:45 +msgid "Enable Dynamic Panel" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:46 +msgid "Enable dynamic panels for testing" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:98 +msgid "Part Panel" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:131 +msgid "Broken Dashboard Item" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:133 +msgid "This is a broken dashboard item - it will not render!" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:139 +msgid "Sample Dashboard Item" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:141 +msgid "This is a sample dashboard item. It renders a simple string of HTML content." +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:147 +msgid "Context Dashboard Item" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:161 +msgid "Admin Dashboard Item" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:162 +msgid "This is an admin-only dashboard item." +msgstr "" + +#: plugin/serializers.py:82 +msgid "Source File" msgstr "" #: plugin/serializers.py:83 +msgid "Path to the source file for admin integration" +msgstr "" + +#: plugin/serializers.py:90 +msgid "Optional context data for the admin integration" +msgstr "" + +#: plugin/serializers.py:106 +msgid "Source URL" +msgstr "" + +#: plugin/serializers.py:108 msgid "Source for the package - this can be a custom registry or a VCS path" msgstr "" -#: plugin/serializers.py:92 +#: plugin/serializers.py:117 msgid "Name for the Plugin Package - can also contain a version indicator" msgstr "" -#: plugin/serializers.py:99 +#: plugin/serializers.py:124 #: templates/InvenTree/settings/plugin_settings.html:42 #: templates/js/translated/plugin.js:86 msgid "Version" msgstr "" -#: plugin/serializers.py:101 +#: plugin/serializers.py:126 msgid "Version specifier for the plugin. Leave blank for latest version." msgstr "" -#: plugin/serializers.py:106 +#: plugin/serializers.py:131 msgid "Confirm plugin installation" msgstr "" -#: plugin/serializers.py:108 +#: plugin/serializers.py:133 msgid "This will install this plugin now into the current instance. The instance will go into maintenance." msgstr "" -#: plugin/serializers.py:121 +#: plugin/serializers.py:146 msgid "Installation not confirmed" msgstr "" -#: plugin/serializers.py:123 +#: plugin/serializers.py:148 msgid "Either packagename of URL must be provided" msgstr "" -#: plugin/serializers.py:161 +#: plugin/serializers.py:184 msgid "Full reload" msgstr "" -#: plugin/serializers.py:162 +#: plugin/serializers.py:185 msgid "Perform a full reload of the plugin registry" msgstr "" -#: plugin/serializers.py:168 +#: plugin/serializers.py:191 msgid "Force reload" msgstr "" -#: plugin/serializers.py:170 +#: plugin/serializers.py:193 msgid "Force a reload of the plugin registry, even if it is already loaded" msgstr "" -#: plugin/serializers.py:177 +#: plugin/serializers.py:200 msgid "Collect plugins" msgstr "" -#: plugin/serializers.py:178 +#: plugin/serializers.py:201 msgid "Collect plugins and add them to the registry" msgstr "" -#: plugin/serializers.py:205 +#: plugin/serializers.py:228 msgid "Activate Plugin" msgstr "" -#: plugin/serializers.py:206 +#: plugin/serializers.py:229 msgid "Activate this plugin" msgstr "" -#: plugin/serializers.py:226 +#: plugin/serializers.py:249 msgid "Delete configuration" msgstr "" -#: plugin/serializers.py:227 +#: plugin/serializers.py:250 msgid "Delete the plugin configuration from the database" msgstr "" @@ -9135,11 +9479,11 @@ msgstr "" msgid "No valid objects provided to template" msgstr "" -#: report/api.py:103 report/models.py:438 report/serializers.py:98 -#: report/serializers.py:148 templates/js/translated/purchase_order.js:1817 +#: report/api.py:103 report/models.py:446 report/serializers.py:99 +#: report/serializers.py:149 templates/js/translated/purchase_order.js:1801 #: templates/js/translated/return_order.js:353 -#: templates/js/translated/sales_order.js:887 -#: templates/js/translated/sales_order.js:1047 +#: templates/js/translated/sales_order.js:846 +#: templates/js/translated/sales_order.js:1020 msgid "Items" msgstr "" @@ -9167,7 +9511,11 @@ msgstr "" msgid "Error printing label" msgstr "" -#: report/api.py:375 report/api.py:411 +#: report/api.py:358 +msgid "Report saved at time of printing" +msgstr "" + +#: report/api.py:384 report/api.py:420 #, python-brace-format msgid "Template file '{template}' is missing or does not exist" msgstr "" @@ -9204,135 +9552,143 @@ msgstr "" msgid "Revision number (auto-increments)" msgstr "" -#: report/models.py:202 +#: report/models.py:168 +msgid "Attach to Model on Print" +msgstr "" + +#: report/models.py:170 +msgid "Save report output as an attachment against linked model instance when printing" +msgstr "" + +#: report/models.py:210 msgid "Filename Pattern" msgstr "" -#: report/models.py:203 +#: report/models.py:211 msgid "Pattern for generating filenames" msgstr "" -#: report/models.py:208 +#: report/models.py:216 msgid "Template is enabled" msgstr "" -#: report/models.py:214 +#: report/models.py:222 msgid "Target model type for template" msgstr "" -#: report/models.py:234 +#: report/models.py:242 msgid "Filters" msgstr "" -#: report/models.py:235 +#: report/models.py:243 msgid "Template query filters (comma-separated list of key=value pairs)" msgstr "" -#: report/models.py:294 report/models.py:361 +#: report/models.py:302 report/models.py:369 msgid "Template file" msgstr "" -#: report/models.py:302 +#: report/models.py:310 msgid "Page size for PDF reports" msgstr "" -#: report/models.py:308 +#: report/models.py:316 msgid "Render report in landscape orientation" msgstr "" -#: report/models.py:367 +#: report/models.py:375 msgid "Width [mm]" msgstr "" -#: report/models.py:368 +#: report/models.py:376 msgid "Label width, specified in mm" msgstr "" -#: report/models.py:374 +#: report/models.py:382 msgid "Height [mm]" msgstr "" -#: report/models.py:375 +#: report/models.py:383 msgid "Label height, specified in mm" msgstr "" -#: report/models.py:438 +#: report/models.py:446 msgid "Number of items to process" msgstr "" -#: report/models.py:444 +#: report/models.py:452 msgid "Report generation is complete" msgstr "" -#: report/models.py:448 templates/js/translated/build.js:2349 +#: report/models.py:456 templates/js/translated/build.js:2352 msgid "Progress" msgstr "" -#: report/models.py:448 +#: report/models.py:456 msgid "Report generation progress" msgstr "" -#: report/models.py:456 +#: report/models.py:464 msgid "Report Template" msgstr "" -#: report/models.py:463 report/models.py:486 +#: report/models.py:471 report/models.py:494 msgid "Output File" msgstr "" -#: report/models.py:464 report/models.py:487 +#: report/models.py:472 report/models.py:495 msgid "Generated output file" msgstr "" -#: report/models.py:475 +#: report/models.py:483 msgid "Label output plugin" msgstr "" -#: report/models.py:479 +#: report/models.py:487 msgid "Label Template" msgstr "" -#: report/models.py:502 +#: report/models.py:510 msgid "Snippet" msgstr "" -#: report/models.py:503 +#: report/models.py:511 msgid "Report snippet file" msgstr "" -#: report/models.py:510 +#: report/models.py:518 msgid "Snippet file description" msgstr "" -#: report/models.py:528 +#: report/models.py:536 msgid "Asset" msgstr "" -#: report/models.py:529 +#: report/models.py:537 msgid "Report asset file" msgstr "" -#: report/models.py:536 +#: report/models.py:544 msgid "Asset file description" msgstr "" -#: report/serializers.py:91 +#: report/serializers.py:92 msgid "Select report template" msgstr "" -#: report/serializers.py:99 report/serializers.py:149 +#: report/serializers.py:100 report/serializers.py:150 msgid "List of item primary keys to include in the report" msgstr "" -#: report/serializers.py:132 +#: report/serializers.py:133 msgid "Select label template" msgstr "" -#: report/serializers.py:140 +#: report/serializers.py:141 msgid "Printing Plugin" msgstr "" -#: report/serializers.py:141 +#: report/serializers.py:142 msgid "Select plugin to use for label printing" msgstr "" @@ -9365,9 +9721,9 @@ msgstr "" #: report/templates/report/inventree_sales_order_report.html:30 #: templates/js/translated/order.js:341 templates/js/translated/pricing.js:527 #: templates/js/translated/pricing.js:596 -#: templates/js/translated/pricing.js:834 -#: templates/js/translated/purchase_order.js:2185 -#: templates/js/translated/sales_order.js:1873 +#: templates/js/translated/pricing.js:832 +#: templates/js/translated/purchase_order.js:2169 +#: templates/js/translated/sales_order.js:1854 msgid "Unit Price" msgstr "" @@ -9379,13 +9735,18 @@ msgstr "" #: report/templates/report/inventree_purchase_order_report.html:72 #: report/templates/report/inventree_sales_order_report.html:72 -#: templates/js/translated/purchase_order.js:2087 -#: templates/js/translated/sales_order.js:1842 +#: templates/js/translated/purchase_order.js:2071 +#: templates/js/translated/sales_order.js:1823 #: templates/test_statistics_table.html:8 #: templates/test_statistics_table.html:19 msgid "Total" msgstr "" +#: report/templates/report/inventree_sales_order_shipment_report.html:23 +#: stock/templates/stock/stock_sidebar.html:8 +msgid "Allocations" +msgstr "" + #: report/templates/report/inventree_stock_location_report.html:97 msgid "Stock location items" msgstr "" @@ -9403,15 +9764,13 @@ msgstr "" msgid "Test" msgstr "" -#: report/templates/report/inventree_test_report.html:103 stock/models.py:2544 -msgid "Result" -msgstr "" - #: report/templates/report/inventree_test_report.html:129 +#: templates/js/translated/stock.js:1448 msgid "Pass" msgstr "" #: report/templates/report/inventree_test_report.html:131 +#: templates/js/translated/stock.js:1450 msgid "Fail" msgstr "" @@ -9420,17 +9779,18 @@ msgid "No result (required)" msgstr "" #: report/templates/report/inventree_test_report.html:140 +#: templates/js/translated/stock.js:1455 msgid "No result" msgstr "" #: report/templates/report/inventree_test_report.html:153 -#: stock/serializers.py:599 stock/templates/stock/stock_sidebar.html:16 +#: stock/serializers.py:626 stock/templates/stock/stock_sidebar.html:16 msgid "Installed Items" msgstr "" -#: report/templates/report/inventree_test_report.html:167 stock/admin.py:161 +#: report/templates/report/inventree_test_report.html:167 stock/admin.py:162 #: templates/js/translated/stock.js:706 templates/js/translated/stock.js:877 -#: templates/js/translated/stock.js:3194 +#: templates/js/translated/stock.js:3195 msgid "Serial" msgstr "" @@ -9450,67 +9810,67 @@ msgstr "" msgid "company_image tag requires a Company instance" msgstr "" -#: stock/admin.py:51 stock/admin.py:171 +#: stock/admin.py:51 stock/admin.py:172 msgid "Location ID" msgstr "" -#: stock/admin.py:63 stock/templates/stock/location.html:128 -#: stock/templates/stock/location.html:134 +#: stock/admin.py:63 stock/templates/stock/location.html:129 +#: stock/templates/stock/location.html:135 msgid "Location Path" msgstr "" -#: stock/admin.py:148 +#: stock/admin.py:149 msgid "Stock Item ID" msgstr "" -#: stock/admin.py:167 +#: stock/admin.py:168 msgid "Status Code" msgstr "" -#: stock/admin.py:179 +#: stock/admin.py:180 msgid "Supplier Part ID" msgstr "" -#: stock/admin.py:184 +#: stock/admin.py:185 msgid "Supplier Part SKU" msgstr "" -#: stock/admin.py:189 +#: stock/admin.py:190 msgid "Supplier ID" msgstr "" -#: stock/admin.py:200 +#: stock/admin.py:201 msgid "Customer ID" msgstr "" -#: stock/admin.py:205 stock/models.py:825 -#: stock/templates/stock/item_base.html:354 +#: stock/admin.py:206 stock/models.py:902 +#: stock/templates/stock/item_base.html:351 msgid "Installed In" msgstr "" -#: stock/admin.py:210 +#: stock/admin.py:211 msgid "Build ID" msgstr "" -#: stock/admin.py:220 +#: stock/admin.py:221 msgid "Sales Order ID" msgstr "" -#: stock/admin.py:225 +#: stock/admin.py:226 msgid "Purchase Order ID" msgstr "" -#: stock/admin.py:240 +#: stock/admin.py:241 msgid "Review Needed" msgstr "" -#: stock/admin.py:245 +#: stock/admin.py:246 msgid "Delete on Deplete" msgstr "" -#: stock/admin.py:260 stock/models.py:919 -#: stock/templates/stock/item_base.html:433 -#: templates/js/translated/stock.js:2315 users/models.py:124 +#: stock/admin.py:261 stock/models.py:996 +#: stock/templates/stock/item_base.html:430 +#: templates/js/translated/stock.js:2316 users/models.py:124 msgid "Expiry Date" msgstr "" @@ -9526,11 +9886,11 @@ msgstr "" msgid "Include sub-locations in filtered results" msgstr "" -#: stock/api.py:367 stock/serializers.py:1186 +#: stock/api.py:366 stock/serializers.py:1217 msgid "Parent Location" msgstr "" -#: stock/api.py:368 +#: stock/api.py:367 msgid "Filter by parent location" msgstr "" @@ -9550,8 +9910,8 @@ msgstr "" msgid "Expiry date after" msgstr "" -#: stock/api.py:840 stock/serializers.py:604 -#: stock/templates/stock/item_base.html:439 +#: stock/api.py:840 stock/serializers.py:631 +#: stock/templates/stock/item_base.html:436 #: templates/js/translated/table_filters.js:448 msgid "Stale" msgstr "" @@ -9560,594 +9920,598 @@ msgstr "" msgid "Quantity is required" msgstr "" -#: stock/api.py:933 +#: stock/api.py:932 msgid "Valid part must be supplied" msgstr "" -#: stock/api.py:964 +#: stock/api.py:959 msgid "The given supplier part does not exist" msgstr "" -#: stock/api.py:974 +#: stock/api.py:969 msgid "The supplier part has a pack size defined, but flag use_pack_size not set" msgstr "" -#: stock/api.py:1005 +#: stock/api.py:996 msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "" -#: stock/models.py:64 +#: stock/models.py:70 msgid "Stock Location type" msgstr "" -#: stock/models.py:65 +#: stock/models.py:71 msgid "Stock Location types" msgstr "" -#: stock/models.py:91 +#: stock/models.py:97 msgid "Default icon for all locations that have no icon set (optional)" msgstr "" -#: stock/models.py:131 stock/models.py:807 -#: stock/templates/stock/location.html:17 +#: stock/models.py:137 stock/models.py:884 +#: stock/templates/stock/location.html:18 #: stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "" -#: stock/models.py:132 stock/templates/stock/location.html:183 +#: stock/models.py:138 stock/templates/stock/location.html:184 #: templates/InvenTree/search.html:166 templates/js/translated/search.js:178 #: users/models.py:205 msgid "Stock Locations" msgstr "" -#: stock/models.py:180 stock/models.py:968 -#: stock/templates/stock/item_base.html:247 +#: stock/models.py:186 stock/models.py:1045 +#: stock/templates/stock/item_base.html:244 msgid "Owner" msgstr "" -#: stock/models.py:181 stock/models.py:969 +#: stock/models.py:187 stock/models.py:1046 msgid "Select Owner" msgstr "" -#: stock/models.py:189 +#: stock/models.py:195 msgid "Stock items may not be directly located into a structural stock locations, but may be located to child locations." msgstr "" -#: stock/models.py:196 templates/js/translated/stock.js:2865 +#: stock/models.py:202 templates/js/translated/stock.js:2866 #: templates/js/translated/table_filters.js:250 msgid "External" msgstr "" -#: stock/models.py:197 +#: stock/models.py:203 msgid "This is an external stock location" msgstr "" -#: stock/models.py:203 templates/js/translated/stock.js:2874 +#: stock/models.py:209 templates/js/translated/stock.js:2875 #: templates/js/translated/table_filters.js:253 msgid "Location type" msgstr "" -#: stock/models.py:207 +#: stock/models.py:213 msgid "Stock location type of this location" msgstr "" -#: stock/models.py:279 +#: stock/models.py:285 msgid "You cannot make this stock location structural because some stock items are already located into it!" msgstr "" -#: stock/models.py:664 +#: stock/models.py:492 +msgid "Part must be specified" +msgstr "" + +#: stock/models.py:741 msgid "Stock items cannot be located into structural stock locations!" msgstr "" -#: stock/models.py:691 stock/serializers.py:480 +#: stock/models.py:768 stock/serializers.py:492 msgid "Stock item cannot be created for virtual parts" msgstr "" -#: stock/models.py:708 +#: stock/models.py:785 #, python-brace-format msgid "Part type ('{self.supplier_part.part}') must be {self.part}" msgstr "" -#: stock/models.py:718 stock/models.py:731 +#: stock/models.py:795 stock/models.py:808 msgid "Quantity must be 1 for item with a serial number" msgstr "" -#: stock/models.py:721 +#: stock/models.py:798 msgid "Serial number cannot be set if quantity greater than 1" msgstr "" -#: stock/models.py:743 +#: stock/models.py:820 msgid "Item cannot belong to itself" msgstr "" -#: stock/models.py:748 +#: stock/models.py:825 msgid "Item must have a build reference if is_building=True" msgstr "" -#: stock/models.py:761 +#: stock/models.py:838 msgid "Build reference does not point to the same part object" msgstr "" -#: stock/models.py:777 +#: stock/models.py:854 msgid "Parent Stock Item" msgstr "" -#: stock/models.py:789 +#: stock/models.py:866 msgid "Base part" msgstr "" -#: stock/models.py:799 +#: stock/models.py:876 msgid "Select a matching supplier part for this stock item" msgstr "" -#: stock/models.py:811 +#: stock/models.py:888 msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:819 stock/serializers.py:1580 +#: stock/models.py:896 stock/serializers.py:1611 msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:830 +#: stock/models.py:907 msgid "Is this item installed in another item?" msgstr "" -#: stock/models.py:849 +#: stock/models.py:926 msgid "Serial number for this item" msgstr "" -#: stock/models.py:863 stock/serializers.py:1563 +#: stock/models.py:940 stock/serializers.py:1594 msgid "Batch code for this stock item" msgstr "" -#: stock/models.py:868 +#: stock/models.py:945 msgid "Stock Quantity" msgstr "" -#: stock/models.py:878 +#: stock/models.py:955 msgid "Source Build" msgstr "" -#: stock/models.py:881 +#: stock/models.py:958 msgid "Build for this stock item" msgstr "" -#: stock/models.py:888 stock/templates/stock/item_base.html:363 +#: stock/models.py:965 stock/templates/stock/item_base.html:360 msgid "Consumed By" msgstr "" -#: stock/models.py:891 +#: stock/models.py:968 msgid "Build order which consumed this stock item" msgstr "" -#: stock/models.py:900 +#: stock/models.py:977 msgid "Source Purchase Order" msgstr "" -#: stock/models.py:904 +#: stock/models.py:981 msgid "Purchase order for this stock item" msgstr "" -#: stock/models.py:910 +#: stock/models.py:987 msgid "Destination Sales Order" msgstr "" -#: stock/models.py:921 +#: stock/models.py:998 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "" -#: stock/models.py:939 +#: stock/models.py:1016 msgid "Delete on deplete" msgstr "" -#: stock/models.py:940 +#: stock/models.py:1017 msgid "Delete this Stock Item when stock is depleted" msgstr "" -#: stock/models.py:960 +#: stock/models.py:1037 msgid "Single unit purchase price at time of purchase" msgstr "" -#: stock/models.py:991 +#: stock/models.py:1068 msgid "Converted to part" msgstr "" -#: stock/models.py:1511 +#: stock/models.py:1600 msgid "Part is not set as trackable" msgstr "" -#: stock/models.py:1517 +#: stock/models.py:1606 msgid "Quantity must be integer" msgstr "" -#: stock/models.py:1525 +#: stock/models.py:1614 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({self.quantity})" msgstr "" -#: stock/models.py:1531 -msgid "Serial numbers must be a list of integers" +#: stock/models.py:1620 +msgid "Serial numbers must be provided as a list" msgstr "" -#: stock/models.py:1536 +#: stock/models.py:1625 msgid "Quantity does not match serial numbers" msgstr "" -#: stock/models.py:1544 stock/serializers.py:726 -msgid "Serial numbers already exist" -msgstr "" - -#: stock/models.py:1641 +#: stock/models.py:1747 stock/models.py:2563 msgid "Test template does not exist" msgstr "" -#: stock/models.py:1659 +#: stock/models.py:1765 msgid "Stock item has been assigned to a sales order" msgstr "" -#: stock/models.py:1663 +#: stock/models.py:1769 msgid "Stock item is installed in another item" msgstr "" -#: stock/models.py:1666 +#: stock/models.py:1772 msgid "Stock item contains other items" msgstr "" -#: stock/models.py:1669 +#: stock/models.py:1775 msgid "Stock item has been assigned to a customer" msgstr "" -#: stock/models.py:1672 +#: stock/models.py:1778 msgid "Stock item is currently in production" msgstr "" -#: stock/models.py:1675 +#: stock/models.py:1781 msgid "Serialized stock cannot be merged" msgstr "" -#: stock/models.py:1682 stock/serializers.py:1469 +#: stock/models.py:1788 stock/serializers.py:1500 msgid "Duplicate stock items" msgstr "" -#: stock/models.py:1686 +#: stock/models.py:1792 msgid "Stock items must refer to the same part" msgstr "" -#: stock/models.py:1694 +#: stock/models.py:1800 msgid "Stock items must refer to the same supplier part" msgstr "" -#: stock/models.py:1699 +#: stock/models.py:1805 msgid "Stock status codes must match" msgstr "" -#: stock/models.py:1960 +#: stock/models.py:2066 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:2343 +#: stock/models.py:2462 msgid "Stock Item Tracking" msgstr "" -#: stock/models.py:2376 +#: stock/models.py:2495 msgid "Entry notes" msgstr "" -#: stock/models.py:2416 +#: stock/models.py:2535 msgid "Stock Item Test Result" msgstr "" -#: stock/models.py:2449 +#: stock/models.py:2566 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:2454 +#: stock/models.py:2570 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:2459 +#: stock/models.py:2575 msgid "Invalid value for this test" msgstr "" -#: stock/models.py:2544 +#: stock/models.py:2660 msgid "Test result" msgstr "" -#: stock/models.py:2551 +#: stock/models.py:2667 msgid "Test output value" msgstr "" -#: stock/models.py:2559 +#: stock/models.py:2675 stock/serializers.py:245 msgid "Test result attachment" msgstr "" -#: stock/models.py:2563 +#: stock/models.py:2679 msgid "Test notes" msgstr "" -#: stock/models.py:2571 templates/js/translated/stock.js:1633 +#: stock/models.py:2687 templates/js/translated/stock.js:1633 msgid "Test station" msgstr "" -#: stock/models.py:2572 +#: stock/models.py:2688 msgid "The identifier of the test station where the test was performed" msgstr "" -#: stock/models.py:2578 +#: stock/models.py:2694 msgid "Started" msgstr "" -#: stock/models.py:2579 +#: stock/models.py:2695 msgid "The timestamp of the test start" msgstr "" -#: stock/models.py:2585 +#: stock/models.py:2701 msgid "Finished" msgstr "" -#: stock/models.py:2586 +#: stock/models.py:2702 msgid "The timestamp of the test finish" msgstr "" -#: stock/serializers.py:76 +#: stock/serializers.py:77 msgid "Generated batch code" msgstr "" -#: stock/serializers.py:85 +#: stock/serializers.py:86 msgid "Select build order" msgstr "" -#: stock/serializers.py:94 +#: stock/serializers.py:95 msgid "Select stock item to generate batch code for" msgstr "" -#: stock/serializers.py:103 +#: stock/serializers.py:104 msgid "Select location to generate batch code for" msgstr "" -#: stock/serializers.py:112 +#: stock/serializers.py:113 msgid "Select part to generate batch code for" msgstr "" -#: stock/serializers.py:121 +#: stock/serializers.py:122 msgid "Select purchase order" msgstr "" -#: stock/serializers.py:128 +#: stock/serializers.py:129 msgid "Enter quantity for batch code" msgstr "" -#: stock/serializers.py:151 +#: stock/serializers.py:152 msgid "Generated serial number" msgstr "" -#: stock/serializers.py:160 +#: stock/serializers.py:161 msgid "Select part to generate serial number for" msgstr "" -#: stock/serializers.py:168 +#: stock/serializers.py:169 msgid "Quantity of serial numbers to generate" msgstr "" -#: stock/serializers.py:233 +#: stock/serializers.py:234 msgid "Test template for this result" msgstr "" -#: stock/serializers.py:254 +#: stock/serializers.py:258 msgid "Template ID or test name must be provided" msgstr "" -#: stock/serializers.py:286 +#: stock/serializers.py:290 msgid "The test finished time cannot be earlier than the test started time" msgstr "" -#: stock/serializers.py:323 +#: stock/serializers.py:327 msgid "Serial number is too large" msgstr "" -#: stock/serializers.py:452 stock/templates/stock/item_base.html:193 +#: stock/serializers.py:462 stock/templates/stock/item_base.html:190 msgid "Parent Item" msgstr "" -#: stock/serializers.py:453 +#: stock/serializers.py:463 msgid "Parent stock item" msgstr "" -#: stock/serializers.py:472 +#: stock/serializers.py:484 msgid "Use pack size when adding: the quantity defined is the number of packs" msgstr "" -#: stock/serializers.py:596 stock/templates/stock/item_base.html:437 +#: stock/serializers.py:623 stock/templates/stock/item_base.html:434 #: templates/js/translated/table_filters.js:442 users/models.py:174 msgid "Expired" msgstr "" -#: stock/serializers.py:602 stock/templates/stock/stock_sidebar.html:20 +#: stock/serializers.py:629 stock/templates/stock/stock_sidebar.html:20 msgid "Child Items" msgstr "" -#: stock/serializers.py:606 +#: stock/serializers.py:633 msgid "Tracking Items" msgstr "" -#: stock/serializers.py:612 +#: stock/serializers.py:639 msgid "Purchase price of this stock item, per unit or pack" msgstr "" -#: stock/serializers.py:631 +#: stock/serializers.py:658 msgid "Minimum Pricing" msgstr "" -#: stock/serializers.py:637 +#: stock/serializers.py:664 msgid "Maximum Pricing" msgstr "" -#: stock/serializers.py:661 +#: stock/serializers.py:688 msgid "Enter number of stock items to serialize" msgstr "" -#: stock/serializers.py:674 +#: stock/serializers.py:701 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({q})" msgstr "" -#: stock/serializers.py:681 +#: stock/serializers.py:708 msgid "Enter serial numbers for new items" msgstr "" -#: stock/serializers.py:692 stock/serializers.py:1426 stock/serializers.py:1682 +#: stock/serializers.py:719 stock/serializers.py:1457 stock/serializers.py:1713 msgid "Destination stock location" msgstr "" -#: stock/serializers.py:699 +#: stock/serializers.py:726 msgid "Optional note field" msgstr "" -#: stock/serializers.py:709 +#: stock/serializers.py:736 msgid "Serial numbers cannot be assigned to this part" msgstr "" -#: stock/serializers.py:764 +#: stock/serializers.py:756 +msgid "Serial numbers already exist" +msgstr "" + +#: stock/serializers.py:795 msgid "Select stock item to install" msgstr "" -#: stock/serializers.py:771 +#: stock/serializers.py:802 msgid "Quantity to Install" msgstr "" -#: stock/serializers.py:772 +#: stock/serializers.py:803 msgid "Enter the quantity of items to install" msgstr "" -#: stock/serializers.py:777 stock/serializers.py:857 stock/serializers.py:983 -#: stock/serializers.py:1033 +#: stock/serializers.py:808 stock/serializers.py:888 stock/serializers.py:1014 +#: stock/serializers.py:1064 msgid "Add transaction note (optional)" msgstr "" -#: stock/serializers.py:785 +#: stock/serializers.py:816 msgid "Quantity to install must be at least 1" msgstr "" -#: stock/serializers.py:793 +#: stock/serializers.py:824 msgid "Stock item is unavailable" msgstr "" -#: stock/serializers.py:804 +#: stock/serializers.py:835 msgid "Selected part is not in the Bill of Materials" msgstr "" -#: stock/serializers.py:817 +#: stock/serializers.py:848 msgid "Quantity to install must not exceed available quantity" msgstr "" -#: stock/serializers.py:852 +#: stock/serializers.py:883 msgid "Destination location for uninstalled item" msgstr "" -#: stock/serializers.py:903 +#: stock/serializers.py:934 msgid "Unsupported statistic type: " msgstr "" -#: stock/serializers.py:917 +#: stock/serializers.py:948 msgid "Select part to convert stock item into" msgstr "" -#: stock/serializers.py:930 +#: stock/serializers.py:961 msgid "Selected part is not a valid option for conversion" msgstr "" -#: stock/serializers.py:947 +#: stock/serializers.py:978 msgid "Cannot convert stock item with assigned SupplierPart" msgstr "" -#: stock/serializers.py:978 +#: stock/serializers.py:1009 msgid "Destination location for returned item" msgstr "" -#: stock/serializers.py:1015 +#: stock/serializers.py:1046 msgid "Select stock items to change status" msgstr "" -#: stock/serializers.py:1021 +#: stock/serializers.py:1052 msgid "No stock items selected" msgstr "" -#: stock/serializers.py:1117 stock/serializers.py:1194 -#: stock/templates/stock/location.html:162 -#: stock/templates/stock/location.html:219 +#: stock/serializers.py:1148 stock/serializers.py:1225 +#: stock/templates/stock/location.html:163 +#: stock/templates/stock/location.html:220 #: stock/templates/stock/location_sidebar.html:5 msgid "Sublocations" msgstr "" -#: stock/serializers.py:1187 templates/js/translated/stock.js:160 +#: stock/serializers.py:1218 templates/js/translated/stock.js:160 msgid "Parent stock location" msgstr "" -#: stock/serializers.py:1298 +#: stock/serializers.py:1329 msgid "Part must be salable" msgstr "" -#: stock/serializers.py:1302 +#: stock/serializers.py:1333 msgid "Item is allocated to a sales order" msgstr "" -#: stock/serializers.py:1306 +#: stock/serializers.py:1337 msgid "Item is allocated to a build order" msgstr "" -#: stock/serializers.py:1330 +#: stock/serializers.py:1361 msgid "Customer to assign stock items" msgstr "" -#: stock/serializers.py:1336 +#: stock/serializers.py:1367 msgid "Selected company is not a customer" msgstr "" -#: stock/serializers.py:1344 +#: stock/serializers.py:1375 msgid "Stock assignment notes" msgstr "" -#: stock/serializers.py:1354 stock/serializers.py:1608 +#: stock/serializers.py:1385 stock/serializers.py:1639 msgid "A list of stock items must be provided" msgstr "" -#: stock/serializers.py:1433 +#: stock/serializers.py:1464 msgid "Stock merging notes" msgstr "" -#: stock/serializers.py:1438 +#: stock/serializers.py:1469 msgid "Allow mismatched suppliers" msgstr "" -#: stock/serializers.py:1439 +#: stock/serializers.py:1470 msgid "Allow stock items with different supplier parts to be merged" msgstr "" -#: stock/serializers.py:1444 +#: stock/serializers.py:1475 msgid "Allow mismatched status" msgstr "" -#: stock/serializers.py:1445 +#: stock/serializers.py:1476 msgid "Allow stock items with different status codes to be merged" msgstr "" -#: stock/serializers.py:1455 +#: stock/serializers.py:1486 msgid "At least two stock items must be provided" msgstr "" -#: stock/serializers.py:1522 +#: stock/serializers.py:1553 msgid "No Change" msgstr "" -#: stock/serializers.py:1551 +#: stock/serializers.py:1582 msgid "StockItem primary key value" msgstr "" -#: stock/serializers.py:1570 +#: stock/serializers.py:1601 msgid "Stock item status code" msgstr "" -#: stock/serializers.py:1598 +#: stock/serializers.py:1629 msgid "Stock transaction notes" msgstr "" @@ -10175,107 +10539,107 @@ msgstr "" msgid "Quarantined" msgstr "" -#: stock/status_codes.py:40 +#: stock/status_codes.py:44 msgid "Legacy stock tracking entry" msgstr "" -#: stock/status_codes.py:42 templates/js/translated/stock.js:550 +#: stock/status_codes.py:46 templates/js/translated/stock.js:550 msgid "Stock item created" msgstr "" -#: stock/status_codes.py:45 +#: stock/status_codes.py:49 msgid "Edited stock item" msgstr "" -#: stock/status_codes.py:46 +#: stock/status_codes.py:50 msgid "Assigned serial number" msgstr "" -#: stock/status_codes.py:49 +#: stock/status_codes.py:53 msgid "Stock counted" msgstr "" -#: stock/status_codes.py:50 +#: stock/status_codes.py:54 msgid "Stock manually added" msgstr "" -#: stock/status_codes.py:51 +#: stock/status_codes.py:55 msgid "Stock manually removed" msgstr "" -#: stock/status_codes.py:54 +#: stock/status_codes.py:58 msgid "Location changed" msgstr "" -#: stock/status_codes.py:55 +#: stock/status_codes.py:59 msgid "Stock updated" msgstr "" -#: stock/status_codes.py:58 +#: stock/status_codes.py:62 msgid "Installed into assembly" msgstr "" -#: stock/status_codes.py:59 +#: stock/status_codes.py:63 msgid "Removed from assembly" msgstr "" -#: stock/status_codes.py:61 +#: stock/status_codes.py:65 msgid "Installed component item" msgstr "" -#: stock/status_codes.py:62 +#: stock/status_codes.py:66 msgid "Removed component item" msgstr "" -#: stock/status_codes.py:65 +#: stock/status_codes.py:69 msgid "Split from parent item" msgstr "" -#: stock/status_codes.py:66 +#: stock/status_codes.py:70 msgid "Split child item" msgstr "" -#: stock/status_codes.py:69 templates/js/translated/stock.js:1943 +#: stock/status_codes.py:73 templates/js/translated/stock.js:1944 msgid "Merged stock items" msgstr "" -#: stock/status_codes.py:72 +#: stock/status_codes.py:76 msgid "Converted to variant" msgstr "" -#: stock/status_codes.py:75 +#: stock/status_codes.py:79 msgid "Build order output created" msgstr "" -#: stock/status_codes.py:76 +#: stock/status_codes.py:80 msgid "Build order output completed" msgstr "" -#: stock/status_codes.py:77 +#: stock/status_codes.py:81 msgid "Build order output rejected" msgstr "" -#: stock/status_codes.py:78 templates/js/translated/stock.js:1849 +#: stock/status_codes.py:82 templates/js/translated/stock.js:1849 msgid "Consumed by build order" msgstr "" -#: stock/status_codes.py:81 +#: stock/status_codes.py:85 msgid "Shipped against Sales Order" msgstr "" -#: stock/status_codes.py:84 +#: stock/status_codes.py:88 msgid "Received against Purchase Order" msgstr "" -#: stock/status_codes.py:87 +#: stock/status_codes.py:91 msgid "Returned against Return Order" msgstr "" -#: stock/status_codes.py:90 templates/js/translated/table_filters.js:382 +#: stock/status_codes.py:94 templates/js/translated/table_filters.js:382 msgid "Sent to customer" msgstr "" -#: stock/status_codes.py:91 +#: stock/status_codes.py:95 msgid "Returned from customer" msgstr "" @@ -10296,7 +10660,7 @@ msgstr "" msgid "Test Data" msgstr "" -#: stock/templates/stock/item.html:85 stock/templates/stock/item_base.html:65 +#: stock/templates/stock/item.html:85 msgid "Test Report" msgstr "" @@ -10316,7 +10680,7 @@ msgstr "" msgid "Installed Stock Items" msgstr "" -#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3354 +#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3355 msgid "Install Stock Item" msgstr "" @@ -10328,208 +10692,212 @@ msgstr "" msgid "Add Test Result" msgstr "" -#: stock/templates/stock/item_base.html:33 +#: stock/templates/stock/item_base.html:34 msgid "Locate stock item" msgstr "" -#: stock/templates/stock/item_base.html:51 +#: stock/templates/stock/item_base.html:52 msgid "Scan to Location" msgstr "" #: stock/templates/stock/item_base.html:59 -#: stock/templates/stock/location.html:67 +#: stock/templates/stock/location.html:68 #: templates/js/translated/filters.js:434 msgid "Printing actions" msgstr "" -#: stock/templates/stock/item_base.html:75 +#: stock/templates/stock/item_base.html:64 templates/js/translated/report.js:49 +msgid "Print Report" +msgstr "" + +#: stock/templates/stock/item_base.html:72 msgid "Stock adjustment actions" msgstr "" -#: stock/templates/stock/item_base.html:79 -#: stock/templates/stock/location.html:87 templates/js/translated/stock.js:1909 +#: stock/templates/stock/item_base.html:76 +#: stock/templates/stock/location.html:88 templates/js/translated/stock.js:1909 msgid "Count stock" msgstr "" -#: stock/templates/stock/item_base.html:81 +#: stock/templates/stock/item_base.html:78 #: templates/js/translated/stock.js:1891 msgid "Add stock" msgstr "" -#: stock/templates/stock/item_base.html:82 +#: stock/templates/stock/item_base.html:79 #: templates/js/translated/stock.js:1900 msgid "Remove stock" msgstr "" -#: stock/templates/stock/item_base.html:85 +#: stock/templates/stock/item_base.html:82 msgid "Serialize stock" msgstr "" -#: stock/templates/stock/item_base.html:88 -#: stock/templates/stock/location.html:93 templates/js/translated/stock.js:1918 +#: stock/templates/stock/item_base.html:85 +#: stock/templates/stock/location.html:94 templates/js/translated/stock.js:1918 msgid "Transfer stock" msgstr "" -#: stock/templates/stock/item_base.html:91 -#: templates/js/translated/stock.js:1972 +#: stock/templates/stock/item_base.html:88 +#: templates/js/translated/stock.js:1973 msgid "Assign to customer" msgstr "" -#: stock/templates/stock/item_base.html:94 +#: stock/templates/stock/item_base.html:91 msgid "Return to stock" msgstr "" -#: stock/templates/stock/item_base.html:97 +#: stock/templates/stock/item_base.html:94 msgid "Uninstall stock item" msgstr "" -#: stock/templates/stock/item_base.html:97 +#: stock/templates/stock/item_base.html:94 msgid "Uninstall" msgstr "" -#: stock/templates/stock/item_base.html:101 +#: stock/templates/stock/item_base.html:98 msgid "Install stock item" msgstr "" -#: stock/templates/stock/item_base.html:101 +#: stock/templates/stock/item_base.html:98 msgid "Install" msgstr "" -#: stock/templates/stock/item_base.html:115 +#: stock/templates/stock/item_base.html:112 msgid "Convert to variant" msgstr "" -#: stock/templates/stock/item_base.html:118 +#: stock/templates/stock/item_base.html:115 msgid "Duplicate stock item" msgstr "" -#: stock/templates/stock/item_base.html:120 +#: stock/templates/stock/item_base.html:117 msgid "Edit stock item" msgstr "" -#: stock/templates/stock/item_base.html:123 +#: stock/templates/stock/item_base.html:120 msgid "Delete stock item" msgstr "" -#: stock/templates/stock/item_base.html:169 templates/InvenTree/search.html:139 -#: templates/js/translated/build.js:2295 templates/navbar.html:38 +#: stock/templates/stock/item_base.html:166 templates/InvenTree/search.html:139 +#: templates/js/translated/build.js:2298 templates/navbar.html:38 msgid "Build" msgstr "" -#: stock/templates/stock/item_base.html:211 +#: stock/templates/stock/item_base.html:208 msgid "No manufacturer set" msgstr "" -#: stock/templates/stock/item_base.html:251 +#: stock/templates/stock/item_base.html:248 msgid "You are not in the list of owners of this item. This stock item cannot be edited." msgstr "" -#: stock/templates/stock/item_base.html:252 -#: stock/templates/stock/location.html:146 +#: stock/templates/stock/item_base.html:249 +#: stock/templates/stock/location.html:147 msgid "Read only" msgstr "" -#: stock/templates/stock/item_base.html:265 +#: stock/templates/stock/item_base.html:262 msgid "This stock item is unavailable" msgstr "" -#: stock/templates/stock/item_base.html:271 +#: stock/templates/stock/item_base.html:268 msgid "This stock item is in production and cannot be edited." msgstr "" -#: stock/templates/stock/item_base.html:272 +#: stock/templates/stock/item_base.html:269 msgid "Edit the stock item from the build view." msgstr "" -#: stock/templates/stock/item_base.html:287 +#: stock/templates/stock/item_base.html:284 msgid "This stock item is allocated to Sales Order" msgstr "" -#: stock/templates/stock/item_base.html:295 +#: stock/templates/stock/item_base.html:292 msgid "This stock item is allocated to Build Order" msgstr "" -#: stock/templates/stock/item_base.html:311 +#: stock/templates/stock/item_base.html:308 msgid "This stock item is serialized. It has a unique serial number and the quantity cannot be adjusted" msgstr "" -#: stock/templates/stock/item_base.html:317 +#: stock/templates/stock/item_base.html:314 msgid "previous page" msgstr "" -#: stock/templates/stock/item_base.html:317 +#: stock/templates/stock/item_base.html:314 msgid "Navigate to previous serial number" msgstr "" -#: stock/templates/stock/item_base.html:326 +#: stock/templates/stock/item_base.html:323 msgid "next page" msgstr "" -#: stock/templates/stock/item_base.html:326 +#: stock/templates/stock/item_base.html:323 msgid "Navigate to next serial number" msgstr "" -#: stock/templates/stock/item_base.html:398 -#: templates/js/translated/build.js:2552 +#: stock/templates/stock/item_base.html:395 +#: templates/js/translated/build.js:2559 msgid "No location set" msgstr "" -#: stock/templates/stock/item_base.html:413 +#: stock/templates/stock/item_base.html:410 msgid "Tests" msgstr "" -#: stock/templates/stock/item_base.html:419 +#: stock/templates/stock/item_base.html:416 msgid "This stock item has not passed all required tests" msgstr "" -#: stock/templates/stock/item_base.html:437 +#: stock/templates/stock/item_base.html:434 #, python-format msgid "This StockItem expired on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:439 +#: stock/templates/stock/item_base.html:436 #, python-format msgid "This StockItem expires on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:455 +#: stock/templates/stock/item_base.html:452 msgid "No stocktake performed" msgstr "" -#: stock/templates/stock/item_base.html:504 -#: templates/js/translated/stock.js:2037 +#: stock/templates/stock/item_base.html:501 +#: templates/js/translated/stock.js:2038 msgid "stock item" msgstr "" -#: stock/templates/stock/item_base.html:527 +#: stock/templates/stock/item_base.html:524 msgid "Edit Stock Status" msgstr "" -#: stock/templates/stock/item_base.html:536 +#: stock/templates/stock/item_base.html:533 msgid "Stock Item QR Code" msgstr "" -#: stock/templates/stock/item_base.html:547 +#: stock/templates/stock/item_base.html:544 msgid "Link Barcode to Stock Item" msgstr "" -#: stock/templates/stock/item_base.html:611 +#: stock/templates/stock/item_base.html:608 msgid "Select one of the part variants listed below." msgstr "" -#: stock/templates/stock/item_base.html:614 +#: stock/templates/stock/item_base.html:611 msgid "Warning" msgstr "" -#: stock/templates/stock/item_base.html:615 +#: stock/templates/stock/item_base.html:612 msgid "This action cannot be easily undone" msgstr "" -#: stock/templates/stock/item_base.html:623 +#: stock/templates/stock/item_base.html:620 msgid "Convert Stock Item" msgstr "" -#: stock/templates/stock/item_base.html:656 +#: stock/templates/stock/item_base.html:653 msgid "Return to Stock" msgstr "" @@ -10541,84 +10909,84 @@ msgstr "" msgid "Select quantity to serialize, and unique serial numbers." msgstr "" -#: stock/templates/stock/location.html:35 +#: stock/templates/stock/location.html:36 msgid "Perform stocktake for this stock location" msgstr "" -#: stock/templates/stock/location.html:42 +#: stock/templates/stock/location.html:43 msgid "Locate stock location" msgstr "" -#: stock/templates/stock/location.html:60 +#: stock/templates/stock/location.html:61 msgid "Scan stock items into this location" msgstr "" -#: stock/templates/stock/location.html:60 +#: stock/templates/stock/location.html:61 msgid "Scan In Stock Items" msgstr "" -#: stock/templates/stock/location.html:61 +#: stock/templates/stock/location.html:62 msgid "Scan stock container into this location" msgstr "" -#: stock/templates/stock/location.html:61 +#: stock/templates/stock/location.html:62 msgid "Scan In Container" msgstr "" -#: stock/templates/stock/location.html:72 +#: stock/templates/stock/location.html:73 msgid "Print Location Report" msgstr "" -#: stock/templates/stock/location.html:101 +#: stock/templates/stock/location.html:102 msgid "Location actions" msgstr "" -#: stock/templates/stock/location.html:103 +#: stock/templates/stock/location.html:104 msgid "Edit location" msgstr "" -#: stock/templates/stock/location.html:105 +#: stock/templates/stock/location.html:106 msgid "Delete location" msgstr "" -#: stock/templates/stock/location.html:135 +#: stock/templates/stock/location.html:136 msgid "Top level stock location" msgstr "" -#: stock/templates/stock/location.html:141 +#: stock/templates/stock/location.html:142 msgid "Location Owner" msgstr "" -#: stock/templates/stock/location.html:145 +#: stock/templates/stock/location.html:146 msgid "You are not in the list of owners of this location. This stock location cannot be edited." msgstr "" -#: stock/templates/stock/location.html:173 +#: stock/templates/stock/location.html:174 msgid "Location Type" msgstr "" -#: stock/templates/stock/location.html:223 +#: stock/templates/stock/location.html:224 msgid "Create new stock location" msgstr "" -#: stock/templates/stock/location.html:224 +#: stock/templates/stock/location.html:225 msgid "New Location" msgstr "" -#: stock/templates/stock/location.html:298 -#: templates/js/translated/stock.js:2657 +#: stock/templates/stock/location.html:299 +#: templates/js/translated/stock.js:2658 msgid "stock location" msgstr "" -#: stock/templates/stock/location.html:320 +#: stock/templates/stock/location.html:321 msgid "Scanned stock container into this location" msgstr "" -#: stock/templates/stock/location.html:393 +#: stock/templates/stock/location.html:394 msgid "Stock Location QR Code" msgstr "" -#: stock/templates/stock/location.html:404 +#: stock/templates/stock/location.html:405 msgid "Link Barcode to Stock Location" msgstr "" @@ -10630,10 +10998,6 @@ msgstr "" msgid "Stock Tracking" msgstr "" -#: stock/templates/stock/stock_sidebar.html:8 -msgid "Allocations" -msgstr "" - #: templates/403.html:6 templates/403.html:12 templates/403_csrf.html:7 msgid "Permission Denied" msgstr "" @@ -11107,9 +11471,9 @@ msgid "Rate" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:81 -#: templates/js/translated/forms.js:548 templates/js/translated/helpers.js:108 +#: templates/js/translated/forms.js:548 templates/js/translated/helpers.js:109 #: templates/js/translated/part.js:395 templates/js/translated/pricing.js:629 -#: templates/js/translated/stock.js:252 users/models.py:406 +#: templates/js/translated/stock.js:252 users/models.py:408 msgid "Delete" msgstr "" @@ -11130,7 +11494,7 @@ msgid "No project codes found" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:158 -#: templates/js/translated/build.js:2400 +#: templates/js/translated/build.js:2403 msgid "group" msgstr "" @@ -11196,7 +11560,7 @@ msgid "Delete Location Type" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:503 -#: templates/InvenTree/settings/stock.html:38 +#: templates/InvenTree/settings/stock.html:39 msgid "New Location Type" msgstr "" @@ -11253,7 +11617,7 @@ msgstr "" msgid "Stock Settings" msgstr "" -#: templates/InvenTree/settings/stock.html:34 +#: templates/InvenTree/settings/stock.html:35 msgid "Stock Location Types" msgstr "" @@ -11280,7 +11644,7 @@ msgid "Unverified" msgstr "" #: templates/InvenTree/settings/user.html:80 -#: templates/js/translated/company.js:957 +#: templates/js/translated/company.js:958 msgid "Primary" msgstr "" @@ -11532,7 +11896,7 @@ msgid "Submit Bug Report" msgstr "" #: templates/about.html:91 templates/clip.html:4 -#: templates/js/translated/helpers.js:592 +#: templates/js/translated/helpers.js:598 msgid "copy to clipboard" msgstr "" @@ -11738,23 +12102,24 @@ msgstr "" msgid "Barcode Identifier" msgstr "" -#: templates/base.html:103 +#: templates/base.html:102 msgid "Server Restart Required" msgstr "" -#: templates/base.html:106 +#: templates/base.html:105 msgid "A configuration option has been changed which requires a server restart" msgstr "" -#: templates/base.html:106 templates/base.html:116 +#: templates/base.html:105 templates/base.html:115 +#: templates/socialaccount/authentication_error.html:13 msgid "Contact your system administrator for further information" msgstr "" -#: templates/base.html:113 +#: templates/base.html:112 msgid "Pending Database Migrations" msgstr "" -#: templates/base.html:116 +#: templates/base.html:115 msgid "There are pending database migrations which require attention" msgstr "" @@ -11787,7 +12152,7 @@ msgid "The following parts are low on required stock" msgstr "" #: templates/email/build_order_required_stock.html:18 -#: templates/js/translated/bom.js:1674 templates/js/translated/build.js:2747 +#: templates/js/translated/bom.js:1674 templates/js/translated/build.js:2765 msgid "Required Quantity" msgstr "" @@ -11801,7 +12166,7 @@ msgid "Click on the following link to view this part" msgstr "" #: templates/email/low_stock_notification.html:18 -#: templates/js/translated/part.js:3237 +#: templates/js/translated/part.js:3253 msgid "Minimum Quantity" msgstr "" @@ -12039,7 +12404,7 @@ msgstr "" #: templates/js/translated/bom.js:189 templates/js/translated/bom.js:700 #: templates/js/translated/modals.js:75 templates/js/translated/modals.js:629 #: templates/js/translated/modals.js:757 templates/js/translated/modals.js:1065 -#: templates/js/translated/purchase_order.js:797 templates/modals.html:15 +#: templates/js/translated/purchase_order.js:780 templates/modals.html:15 #: templates/modals.html:27 templates/modals.html:39 templates/modals.html:50 msgid "Close" msgstr "" @@ -12156,7 +12521,7 @@ msgstr "" msgid "Substitutes Available" msgstr "" -#: templates/js/translated/bom.js:950 templates/js/translated/build.js:2673 +#: templates/js/translated/bom.js:950 templates/js/translated/build.js:2682 msgid "Variant stock allowed" msgstr "" @@ -12176,30 +12541,30 @@ msgstr "" msgid "No pricing available" msgstr "" -#: templates/js/translated/bom.js:1184 templates/js/translated/build.js:2812 +#: templates/js/translated/bom.js:1184 templates/js/translated/build.js:2830 msgid "External stock" msgstr "" -#: templates/js/translated/bom.js:1188 templates/js/translated/build.js:2786 -#: templates/js/translated/sales_order.js:1946 +#: templates/js/translated/bom.js:1188 templates/js/translated/build.js:2804 +#: templates/js/translated/sales_order.js:1927 msgid "No Stock Available" msgstr "" -#: templates/js/translated/bom.js:1193 templates/js/translated/build.js:2790 +#: templates/js/translated/bom.js:1193 templates/js/translated/build.js:2808 msgid "Includes variant and substitute stock" msgstr "" -#: templates/js/translated/bom.js:1195 templates/js/translated/build.js:2792 +#: templates/js/translated/bom.js:1195 templates/js/translated/build.js:2810 #: templates/js/translated/part.js:1263 -#: templates/js/translated/sales_order.js:1943 +#: templates/js/translated/sales_order.js:1924 msgid "Includes variant stock" msgstr "" -#: templates/js/translated/bom.js:1197 templates/js/translated/build.js:2794 +#: templates/js/translated/bom.js:1197 templates/js/translated/build.js:2812 msgid "Includes substitute stock" msgstr "" -#: templates/js/translated/bom.js:1225 templates/js/translated/build.js:2777 +#: templates/js/translated/bom.js:1225 templates/js/translated/build.js:2795 msgid "Consumable item" msgstr "" @@ -12231,7 +12596,7 @@ msgstr "" msgid "No BOM items found" msgstr "" -#: templates/js/translated/bom.js:1657 templates/js/translated/build.js:2658 +#: templates/js/translated/bom.js:1657 templates/js/translated/build.js:2667 msgid "Required Part" msgstr "" @@ -12243,396 +12608,396 @@ msgstr "" msgid "Edit Build Order" msgstr "" -#: templates/js/translated/build.js:191 +#: templates/js/translated/build.js:194 msgid "Create Build Order" msgstr "" -#: templates/js/translated/build.js:223 +#: templates/js/translated/build.js:226 msgid "Cancel Build Order" msgstr "" -#: templates/js/translated/build.js:232 +#: templates/js/translated/build.js:235 msgid "Are you sure you wish to cancel this build?" msgstr "" -#: templates/js/translated/build.js:238 +#: templates/js/translated/build.js:241 msgid "Stock items have been allocated to this build order" msgstr "" -#: templates/js/translated/build.js:245 +#: templates/js/translated/build.js:248 msgid "There are incomplete outputs remaining for this build order" msgstr "" -#: templates/js/translated/build.js:297 +#: templates/js/translated/build.js:300 msgid "Build order is ready to be completed" msgstr "" -#: templates/js/translated/build.js:305 +#: templates/js/translated/build.js:308 msgid "This build order cannot be completed as there are incomplete outputs" msgstr "" -#: templates/js/translated/build.js:310 +#: templates/js/translated/build.js:313 msgid "Build Order is incomplete" msgstr "" -#: templates/js/translated/build.js:328 +#: templates/js/translated/build.js:331 msgid "Complete Build Order" msgstr "" -#: templates/js/translated/build.js:369 templates/js/translated/stock.js:127 +#: templates/js/translated/build.js:372 templates/js/translated/stock.js:127 #: templates/js/translated/stock.js:301 msgid "Next available serial number" msgstr "" -#: templates/js/translated/build.js:371 templates/js/translated/stock.js:129 +#: templates/js/translated/build.js:374 templates/js/translated/stock.js:129 #: templates/js/translated/stock.js:303 msgid "Latest serial number" msgstr "" -#: templates/js/translated/build.js:380 +#: templates/js/translated/build.js:383 msgid "The Bill of Materials contains trackable parts" msgstr "" -#: templates/js/translated/build.js:381 +#: templates/js/translated/build.js:384 msgid "Build outputs must be generated individually" msgstr "" -#: templates/js/translated/build.js:389 +#: templates/js/translated/build.js:392 msgid "Trackable parts can have serial numbers specified" msgstr "" -#: templates/js/translated/build.js:390 +#: templates/js/translated/build.js:393 msgid "Enter serial numbers to generate multiple single build outputs" msgstr "" -#: templates/js/translated/build.js:397 +#: templates/js/translated/build.js:400 msgid "Create Build Output" msgstr "" -#: templates/js/translated/build.js:428 +#: templates/js/translated/build.js:431 msgid "Allocate stock items to this build output" msgstr "" -#: templates/js/translated/build.js:436 +#: templates/js/translated/build.js:439 msgid "Deallocate stock from build output" msgstr "" -#: templates/js/translated/build.js:445 +#: templates/js/translated/build.js:448 msgid "Complete build output" msgstr "" -#: templates/js/translated/build.js:453 +#: templates/js/translated/build.js:456 msgid "Scrap build output" msgstr "" -#: templates/js/translated/build.js:460 +#: templates/js/translated/build.js:463 msgid "Delete build output" msgstr "" -#: templates/js/translated/build.js:480 +#: templates/js/translated/build.js:483 msgid "Are you sure you wish to deallocate the selected stock items from this build?" msgstr "" -#: templates/js/translated/build.js:498 +#: templates/js/translated/build.js:501 msgid "Deallocate Stock Items" msgstr "" -#: templates/js/translated/build.js:584 templates/js/translated/build.js:711 -#: templates/js/translated/build.js:836 +#: templates/js/translated/build.js:587 templates/js/translated/build.js:714 +#: templates/js/translated/build.js:839 msgid "Select Build Outputs" msgstr "" -#: templates/js/translated/build.js:585 templates/js/translated/build.js:712 -#: templates/js/translated/build.js:837 +#: templates/js/translated/build.js:588 templates/js/translated/build.js:715 +#: templates/js/translated/build.js:840 msgid "At least one build output must be selected" msgstr "" -#: templates/js/translated/build.js:599 +#: templates/js/translated/build.js:602 msgid "Selected build outputs will be marked as complete" msgstr "" -#: templates/js/translated/build.js:603 templates/js/translated/build.js:736 -#: templates/js/translated/build.js:859 +#: templates/js/translated/build.js:606 templates/js/translated/build.js:739 +#: templates/js/translated/build.js:862 msgid "Output" msgstr "" -#: templates/js/translated/build.js:630 +#: templates/js/translated/build.js:633 msgid "Complete Build Outputs" msgstr "" -#: templates/js/translated/build.js:727 +#: templates/js/translated/build.js:730 msgid "Selected build outputs will be marked as scrapped" msgstr "" -#: templates/js/translated/build.js:729 +#: templates/js/translated/build.js:732 msgid "Scrapped output are marked as rejected" msgstr "" -#: templates/js/translated/build.js:730 +#: templates/js/translated/build.js:733 msgid "Allocated stock items will no longer be available" msgstr "" -#: templates/js/translated/build.js:731 +#: templates/js/translated/build.js:734 msgid "The completion status of the build order will not be adjusted" msgstr "" -#: templates/js/translated/build.js:761 +#: templates/js/translated/build.js:764 msgid "Scrap Build Outputs" msgstr "" -#: templates/js/translated/build.js:851 +#: templates/js/translated/build.js:854 msgid "Selected build outputs will be deleted" msgstr "" -#: templates/js/translated/build.js:853 +#: templates/js/translated/build.js:856 msgid "Build output data will be permanently deleted" msgstr "" -#: templates/js/translated/build.js:854 +#: templates/js/translated/build.js:857 msgid "Allocated stock items will be returned to stock" msgstr "" -#: templates/js/translated/build.js:872 +#: templates/js/translated/build.js:875 msgid "Delete Build Outputs" msgstr "" -#: templates/js/translated/build.js:959 +#: templates/js/translated/build.js:962 msgid "Delete allocations" msgstr "" -#: templates/js/translated/build.js:966 +#: templates/js/translated/build.js:969 msgid "Delete Stock Allocations" msgstr "" -#: templates/js/translated/build.js:989 +#: templates/js/translated/build.js:992 msgid "No allocated stock" msgstr "" -#: templates/js/translated/build.js:1045 +#: templates/js/translated/build.js:1048 msgid "Stock item" msgstr "" -#: templates/js/translated/build.js:1070 +#: templates/js/translated/build.js:1073 msgid "Edit build allocation" msgstr "" -#: templates/js/translated/build.js:1071 +#: templates/js/translated/build.js:1074 msgid "Delete build allocation" msgstr "" -#: templates/js/translated/build.js:1089 +#: templates/js/translated/build.js:1092 msgid "Edit Build Allocation" msgstr "" -#: templates/js/translated/build.js:1102 +#: templates/js/translated/build.js:1105 msgid "Delete Build Allocation" msgstr "" -#: templates/js/translated/build.js:1133 +#: templates/js/translated/build.js:1136 msgid "No build order allocations found" msgstr "" -#: templates/js/translated/build.js:1178 +#: templates/js/translated/build.js:1181 msgid "Location not specified" msgstr "" -#: templates/js/translated/build.js:1200 +#: templates/js/translated/build.js:1203 msgid "Complete outputs" msgstr "" -#: templates/js/translated/build.js:1218 +#: templates/js/translated/build.js:1221 msgid "Scrap outputs" msgstr "" -#: templates/js/translated/build.js:1236 +#: templates/js/translated/build.js:1239 msgid "Delete outputs" msgstr "" -#: templates/js/translated/build.js:1289 +#: templates/js/translated/build.js:1292 msgid "build output" msgstr "" -#: templates/js/translated/build.js:1290 +#: templates/js/translated/build.js:1293 msgid "build outputs" msgstr "" -#: templates/js/translated/build.js:1294 +#: templates/js/translated/build.js:1297 msgid "Build output actions" msgstr "" -#: templates/js/translated/build.js:1470 +#: templates/js/translated/build.js:1473 msgid "No active build outputs found" msgstr "" -#: templates/js/translated/build.js:1563 +#: templates/js/translated/build.js:1566 msgid "Allocated Lines" msgstr "" -#: templates/js/translated/build.js:1577 +#: templates/js/translated/build.js:1580 msgid "Required Tests" msgstr "" -#: templates/js/translated/build.js:1749 -#: templates/js/translated/purchase_order.js:611 -#: templates/js/translated/sales_order.js:1207 +#: templates/js/translated/build.js:1752 +#: templates/js/translated/purchase_order.js:594 +#: templates/js/translated/sales_order.js:1173 msgid "Select Parts" msgstr "" -#: templates/js/translated/build.js:1750 -#: templates/js/translated/sales_order.js:1208 +#: templates/js/translated/build.js:1753 +#: templates/js/translated/sales_order.js:1174 msgid "You must select at least one part to allocate" msgstr "" -#: templates/js/translated/build.js:1813 -#: templates/js/translated/sales_order.js:1157 +#: templates/js/translated/build.js:1816 +#: templates/js/translated/sales_order.js:1123 msgid "Specify stock allocation quantity" msgstr "" -#: templates/js/translated/build.js:1890 +#: templates/js/translated/build.js:1893 msgid "All Parts Allocated" msgstr "" -#: templates/js/translated/build.js:1891 +#: templates/js/translated/build.js:1894 msgid "All selected parts have been fully allocated" msgstr "" -#: templates/js/translated/build.js:1905 -#: templates/js/translated/sales_order.js:1222 +#: templates/js/translated/build.js:1908 +#: templates/js/translated/sales_order.js:1188 msgid "Select source location (leave blank to take from all locations)" msgstr "" -#: templates/js/translated/build.js:1933 +#: templates/js/translated/build.js:1936 msgid "Allocate Stock Items to Build Order" msgstr "" -#: templates/js/translated/build.js:1944 -#: templates/js/translated/sales_order.js:1319 +#: templates/js/translated/build.js:1947 +#: templates/js/translated/sales_order.js:1285 msgid "No matching stock locations" msgstr "" -#: templates/js/translated/build.js:2017 -#: templates/js/translated/sales_order.js:1398 +#: templates/js/translated/build.js:2020 +#: templates/js/translated/sales_order.js:1364 msgid "No matching stock items" msgstr "" -#: templates/js/translated/build.js:2114 +#: templates/js/translated/build.js:2117 msgid "Automatic Stock Allocation" msgstr "" -#: templates/js/translated/build.js:2115 +#: templates/js/translated/build.js:2118 msgid "Stock items will be automatically allocated to this build order, according to the provided guidelines" msgstr "" -#: templates/js/translated/build.js:2117 +#: templates/js/translated/build.js:2120 msgid "If a location is specified, stock will only be allocated from that location" msgstr "" -#: templates/js/translated/build.js:2118 +#: templates/js/translated/build.js:2121 msgid "If stock is considered interchangeable, it will be allocated from the first location it is found" msgstr "" -#: templates/js/translated/build.js:2119 +#: templates/js/translated/build.js:2122 msgid "If substitute stock is allowed, it will be used where stock of the primary part cannot be found" msgstr "" -#: templates/js/translated/build.js:2149 +#: templates/js/translated/build.js:2152 msgid "Allocate Stock Items" msgstr "" -#: templates/js/translated/build.js:2254 +#: templates/js/translated/build.js:2257 msgid "No builds matching query" msgstr "" -#: templates/js/translated/build.js:2289 templates/js/translated/build.js:2652 +#: templates/js/translated/build.js:2292 templates/js/translated/build.js:2661 #: templates/js/translated/forms.js:2196 templates/js/translated/forms.js:2212 #: templates/js/translated/part.js:2322 templates/js/translated/part.js:2761 -#: templates/js/translated/stock.js:2068 templates/js/translated/stock.js:2795 +#: templates/js/translated/stock.js:2069 templates/js/translated/stock.js:2796 msgid "Select" msgstr "" -#: templates/js/translated/build.js:2303 +#: templates/js/translated/build.js:2306 msgid "Build order is overdue" msgstr "" -#: templates/js/translated/build.js:2385 templates/js/translated/stock.js:3126 +#: templates/js/translated/build.js:2388 templates/js/translated/stock.js:3127 msgid "No user information" msgstr "" -#: templates/js/translated/build.js:2561 -#: templates/js/translated/sales_order.js:1682 +#: templates/js/translated/build.js:2568 +#: templates/js/translated/sales_order.js:1663 msgid "Edit stock allocation" msgstr "" -#: templates/js/translated/build.js:2562 -#: templates/js/translated/sales_order.js:1683 +#: templates/js/translated/build.js:2569 +#: templates/js/translated/sales_order.js:1664 msgid "Delete stock allocation" msgstr "" -#: templates/js/translated/build.js:2577 +#: templates/js/translated/build.js:2584 msgid "Edit Allocation" msgstr "" -#: templates/js/translated/build.js:2589 +#: templates/js/translated/build.js:2596 msgid "Remove Allocation" msgstr "" -#: templates/js/translated/build.js:2628 +#: templates/js/translated/build.js:2636 msgid "build line" msgstr "" -#: templates/js/translated/build.js:2629 +#: templates/js/translated/build.js:2637 msgid "build lines" msgstr "" -#: templates/js/translated/build.js:2647 +#: templates/js/translated/build.js:2656 msgid "No build lines found" msgstr "" -#: templates/js/translated/build.js:2677 templates/js/translated/part.js:793 +#: templates/js/translated/build.js:2686 templates/js/translated/part.js:793 #: templates/js/translated/part.js:1209 msgid "Trackable part" msgstr "" -#: templates/js/translated/build.js:2720 +#: templates/js/translated/build.js:2729 msgid "Gets Inherited" msgstr "" -#: templates/js/translated/build.js:2730 +#: templates/js/translated/build.js:2748 msgid "Unit Quantity" msgstr "" -#: templates/js/translated/build.js:2782 -#: templates/js/translated/sales_order.js:1951 +#: templates/js/translated/build.js:2800 +#: templates/js/translated/sales_order.js:1932 msgid "Sufficient stock available" msgstr "" -#: templates/js/translated/build.js:2837 +#: templates/js/translated/build.js:2855 msgid "Consumable Item" msgstr "" -#: templates/js/translated/build.js:2844 +#: templates/js/translated/build.js:2862 msgid "Tracked item" msgstr "" -#: templates/js/translated/build.js:2845 +#: templates/js/translated/build.js:2863 msgid "Allocate tracked items against individual build outputs" msgstr "" -#: templates/js/translated/build.js:2853 -#: templates/js/translated/sales_order.js:2052 +#: templates/js/translated/build.js:2871 +#: templates/js/translated/sales_order.js:2033 msgid "Build stock" msgstr "" -#: templates/js/translated/build.js:2858 templates/js/translated/stock.js:1953 +#: templates/js/translated/build.js:2876 templates/js/translated/stock.js:1954 msgid "Order stock" msgstr "" -#: templates/js/translated/build.js:2862 -#: templates/js/translated/sales_order.js:2046 +#: templates/js/translated/build.js:2880 +#: templates/js/translated/sales_order.js:2027 msgid "Allocate stock" msgstr "" -#: templates/js/translated/build.js:2866 +#: templates/js/translated/build.js:2884 msgid "Remove stock allocation" msgstr "" @@ -12641,7 +13006,7 @@ msgid "Add Manufacturer" msgstr "" #: templates/js/translated/company.js:111 -#: templates/js/translated/company.js:213 +#: templates/js/translated/company.js:214 msgid "Add Manufacturer Part" msgstr "" @@ -12649,231 +13014,231 @@ msgstr "" msgid "Edit Manufacturer Part" msgstr "" -#: templates/js/translated/company.js:201 +#: templates/js/translated/company.js:202 #: templates/js/translated/purchase_order.js:93 msgid "Add Supplier" msgstr "" -#: templates/js/translated/company.js:243 -#: templates/js/translated/purchase_order.js:318 +#: templates/js/translated/company.js:244 +#: templates/js/translated/purchase_order.js:301 msgid "Add Supplier Part" msgstr "" -#: templates/js/translated/company.js:344 +#: templates/js/translated/company.js:345 msgid "All selected supplier parts will be deleted" msgstr "" -#: templates/js/translated/company.js:360 +#: templates/js/translated/company.js:361 msgid "Delete Supplier Parts" msgstr "" -#: templates/js/translated/company.js:466 +#: templates/js/translated/company.js:467 msgid "Add new Company" msgstr "" -#: templates/js/translated/company.js:546 +#: templates/js/translated/company.js:547 msgid "Parts Supplied" msgstr "" -#: templates/js/translated/company.js:555 +#: templates/js/translated/company.js:556 msgid "Parts Manufactured" msgstr "" -#: templates/js/translated/company.js:570 +#: templates/js/translated/company.js:571 msgid "No company information found" msgstr "" -#: templates/js/translated/company.js:619 +#: templates/js/translated/company.js:620 msgid "Create New Contact" msgstr "" -#: templates/js/translated/company.js:635 -#: templates/js/translated/company.js:758 +#: templates/js/translated/company.js:636 +#: templates/js/translated/company.js:759 msgid "Edit Contact" msgstr "" -#: templates/js/translated/company.js:672 +#: templates/js/translated/company.js:673 msgid "All selected contacts will be deleted" msgstr "" -#: templates/js/translated/company.js:678 -#: templates/js/translated/company.js:742 +#: templates/js/translated/company.js:679 +#: templates/js/translated/company.js:743 msgid "Role" msgstr "" -#: templates/js/translated/company.js:686 +#: templates/js/translated/company.js:687 msgid "Delete Contacts" msgstr "" -#: templates/js/translated/company.js:717 +#: templates/js/translated/company.js:718 msgid "No contacts found" msgstr "" -#: templates/js/translated/company.js:730 +#: templates/js/translated/company.js:731 msgid "Phone Number" msgstr "" -#: templates/js/translated/company.js:736 +#: templates/js/translated/company.js:737 msgid "Email Address" msgstr "" -#: templates/js/translated/company.js:762 +#: templates/js/translated/company.js:763 msgid "Delete Contact" msgstr "" -#: templates/js/translated/company.js:859 +#: templates/js/translated/company.js:860 msgid "Create New Address" msgstr "" -#: templates/js/translated/company.js:874 -#: templates/js/translated/company.js:1035 +#: templates/js/translated/company.js:875 +#: templates/js/translated/company.js:1036 msgid "Edit Address" msgstr "" -#: templates/js/translated/company.js:909 +#: templates/js/translated/company.js:910 msgid "All selected addresses will be deleted" msgstr "" -#: templates/js/translated/company.js:923 +#: templates/js/translated/company.js:924 msgid "Delete Addresses" msgstr "" -#: templates/js/translated/company.js:950 +#: templates/js/translated/company.js:951 msgid "No addresses found" msgstr "" -#: templates/js/translated/company.js:989 +#: templates/js/translated/company.js:990 msgid "Postal city" msgstr "" -#: templates/js/translated/company.js:995 +#: templates/js/translated/company.js:996 msgid "State/province" msgstr "" -#: templates/js/translated/company.js:1007 +#: templates/js/translated/company.js:1008 msgid "Courier notes" msgstr "" -#: templates/js/translated/company.js:1013 +#: templates/js/translated/company.js:1014 msgid "Internal notes" msgstr "" -#: templates/js/translated/company.js:1039 +#: templates/js/translated/company.js:1040 msgid "Delete Address" msgstr "" -#: templates/js/translated/company.js:1112 +#: templates/js/translated/company.js:1113 msgid "All selected manufacturer parts will be deleted" msgstr "" -#: templates/js/translated/company.js:1127 +#: templates/js/translated/company.js:1128 msgid "Delete Manufacturer Parts" msgstr "" -#: templates/js/translated/company.js:1161 +#: templates/js/translated/company.js:1162 msgid "All selected parameters will be deleted" msgstr "" -#: templates/js/translated/company.js:1175 +#: templates/js/translated/company.js:1176 msgid "Delete Parameters" msgstr "" -#: templates/js/translated/company.js:1191 -#: templates/js/translated/company.js:1479 templates/js/translated/part.js:2250 +#: templates/js/translated/company.js:1192 +#: templates/js/translated/company.js:1480 templates/js/translated/part.js:2250 msgid "Order parts" msgstr "" -#: templates/js/translated/company.js:1208 +#: templates/js/translated/company.js:1209 msgid "Delete manufacturer parts" msgstr "" -#: templates/js/translated/company.js:1240 +#: templates/js/translated/company.js:1241 msgid "Manufacturer part actions" msgstr "" -#: templates/js/translated/company.js:1259 +#: templates/js/translated/company.js:1260 msgid "No manufacturer parts found" msgstr "" -#: templates/js/translated/company.js:1279 -#: templates/js/translated/company.js:1567 templates/js/translated/part.js:801 +#: templates/js/translated/company.js:1280 +#: templates/js/translated/company.js:1568 templates/js/translated/part.js:801 #: templates/js/translated/part.js:1217 msgid "Template part" msgstr "" -#: templates/js/translated/company.js:1283 -#: templates/js/translated/company.js:1571 templates/js/translated/part.js:805 +#: templates/js/translated/company.js:1284 +#: templates/js/translated/company.js:1572 templates/js/translated/part.js:805 #: templates/js/translated/part.js:1221 msgid "Assembled part" msgstr "" -#: templates/js/translated/company.js:1403 templates/js/translated/part.js:1471 +#: templates/js/translated/company.js:1404 templates/js/translated/part.js:1471 msgid "No parameters found" msgstr "" -#: templates/js/translated/company.js:1438 templates/js/translated/part.js:1534 +#: templates/js/translated/company.js:1439 templates/js/translated/part.js:1534 msgid "Edit parameter" msgstr "" -#: templates/js/translated/company.js:1439 templates/js/translated/part.js:1535 +#: templates/js/translated/company.js:1440 templates/js/translated/part.js:1535 msgid "Delete parameter" msgstr "" -#: templates/js/translated/company.js:1456 templates/js/translated/part.js:1440 +#: templates/js/translated/company.js:1457 templates/js/translated/part.js:1440 msgid "Edit Parameter" msgstr "" -#: templates/js/translated/company.js:1465 templates/js/translated/part.js:1556 +#: templates/js/translated/company.js:1466 templates/js/translated/part.js:1556 msgid "Delete Parameter" msgstr "" -#: templates/js/translated/company.js:1496 +#: templates/js/translated/company.js:1497 msgid "Delete supplier parts" msgstr "" -#: templates/js/translated/company.js:1546 +#: templates/js/translated/company.js:1547 msgid "No supplier parts found" msgstr "" -#: templates/js/translated/company.js:1664 +#: templates/js/translated/company.js:1665 msgid "Base Units" msgstr "" -#: templates/js/translated/company.js:1694 +#: templates/js/translated/company.js:1695 msgid "Availability" msgstr "" -#: templates/js/translated/company.js:1725 +#: templates/js/translated/company.js:1726 msgid "Edit supplier part" msgstr "" -#: templates/js/translated/company.js:1726 +#: templates/js/translated/company.js:1727 msgid "Delete supplier part" msgstr "" -#: templates/js/translated/company.js:1779 +#: templates/js/translated/company.js:1780 #: templates/js/translated/pricing.js:694 msgid "Delete Price Break" msgstr "" -#: templates/js/translated/company.js:1789 +#: templates/js/translated/company.js:1790 #: templates/js/translated/pricing.js:712 msgid "Edit Price Break" msgstr "" -#: templates/js/translated/company.js:1804 +#: templates/js/translated/company.js:1805 msgid "No price break information found" msgstr "" -#: templates/js/translated/company.js:1833 +#: templates/js/translated/company.js:1834 msgid "Last updated" msgstr "" -#: templates/js/translated/company.js:1840 +#: templates/js/translated/company.js:1841 msgid "Edit price break" msgstr "" -#: templates/js/translated/company.js:1841 +#: templates/js/translated/company.js:1842 msgid "Delete price break" msgstr "" @@ -12977,19 +13342,19 @@ msgstr "" msgid "Select Columns" msgstr "" -#: templates/js/translated/helpers.js:80 +#: templates/js/translated/helpers.js:81 msgid "YES" msgstr "" -#: templates/js/translated/helpers.js:83 +#: templates/js/translated/helpers.js:84 msgid "NO" msgstr "" -#: templates/js/translated/helpers.js:96 +#: templates/js/translated/helpers.js:97 msgid "True" msgstr "" -#: templates/js/translated/helpers.js:97 +#: templates/js/translated/helpers.js:98 msgid "False" msgstr "" @@ -13131,7 +13496,7 @@ msgid "Delete Line" msgstr "" #: templates/js/translated/order.js:306 -#: templates/js/translated/purchase_order.js:2060 +#: templates/js/translated/purchase_order.js:2044 msgid "No line items found" msgstr "" @@ -13366,19 +13731,19 @@ msgid "Delete Part Parameter Template" msgstr "" #: templates/js/translated/part.js:1723 -#: templates/js/translated/purchase_order.js:1724 +#: templates/js/translated/purchase_order.js:1708 msgid "No purchase orders found" msgstr "" #: templates/js/translated/part.js:1867 -#: templates/js/translated/purchase_order.js:2223 +#: templates/js/translated/purchase_order.js:2207 #: templates/js/translated/return_order.js:754 -#: templates/js/translated/sales_order.js:1911 +#: templates/js/translated/sales_order.js:1892 msgid "This line item is overdue" msgstr "" #: templates/js/translated/part.js:1913 -#: templates/js/translated/purchase_order.js:2290 +#: templates/js/translated/purchase_order.js:2274 msgid "Receive line item" msgstr "" @@ -13419,7 +13784,7 @@ msgid "No category" msgstr "" #: templates/js/translated/part.js:2550 templates/js/translated/part.js:2680 -#: templates/js/translated/stock.js:2754 +#: templates/js/translated/stock.js:2755 msgid "Display as list" msgstr "" @@ -13431,7 +13796,7 @@ msgstr "" msgid "No subcategories found" msgstr "" -#: templates/js/translated/part.js:2700 templates/js/translated/stock.js:2774 +#: templates/js/translated/part.js:2700 templates/js/translated/stock.js:2775 msgid "Display as tree" msgstr "" @@ -13483,23 +13848,23 @@ msgstr "" msgid "Speculative" msgstr "" -#: templates/js/translated/part.js:3128 +#: templates/js/translated/part.js:3144 msgid "No scheduling information available for this part" msgstr "" -#: templates/js/translated/part.js:3134 +#: templates/js/translated/part.js:3150 msgid "Error fetching scheduling information for this part" msgstr "" -#: templates/js/translated/part.js:3230 +#: templates/js/translated/part.js:3246 msgid "Scheduled Stock Quantities" msgstr "" -#: templates/js/translated/part.js:3246 +#: templates/js/translated/part.js:3262 msgid "Maximum Quantity" msgstr "" -#: templates/js/translated/part.js:3291 +#: templates/js/translated/part.js:3307 msgid "Minimum Stock Level" msgstr "" @@ -13575,267 +13940,243 @@ msgstr "" msgid "Purchase Price History" msgstr "" -#: templates/js/translated/pricing.js:894 +#: templates/js/translated/pricing.js:892 msgid "No sales history data available" msgstr "" -#: templates/js/translated/pricing.js:916 +#: templates/js/translated/pricing.js:914 msgid "Sale Price History" msgstr "" -#: templates/js/translated/pricing.js:1005 +#: templates/js/translated/pricing.js:1003 msgid "No variant data available" msgstr "" -#: templates/js/translated/pricing.js:1045 +#: templates/js/translated/pricing.js:1043 msgid "Variant Part" msgstr "" -#: templates/js/translated/purchase_order.js:169 -msgid "Select purchase order to duplicate" -msgstr "" - -#: templates/js/translated/purchase_order.js:176 -msgid "Duplicate Line Items" -msgstr "" - -#: templates/js/translated/purchase_order.js:177 -msgid "Duplicate all line items from the selected order" -msgstr "" - -#: templates/js/translated/purchase_order.js:184 -msgid "Duplicate Extra Lines" -msgstr "" - -#: templates/js/translated/purchase_order.js:185 -msgid "Duplicate extra line items from the selected order" -msgstr "" - -#: templates/js/translated/purchase_order.js:206 +#: templates/js/translated/purchase_order.js:188 msgid "Edit Purchase Order" msgstr "" -#: templates/js/translated/purchase_order.js:223 +#: templates/js/translated/purchase_order.js:205 msgid "Duplication Options" msgstr "" -#: templates/js/translated/purchase_order.js:431 +#: templates/js/translated/purchase_order.js:414 msgid "Complete Purchase Order" msgstr "" -#: templates/js/translated/purchase_order.js:448 +#: templates/js/translated/purchase_order.js:431 #: templates/js/translated/return_order.js:210 -#: templates/js/translated/sales_order.js:552 +#: templates/js/translated/sales_order.js:511 msgid "Mark this order as complete?" msgstr "" -#: templates/js/translated/purchase_order.js:454 +#: templates/js/translated/purchase_order.js:437 msgid "All line items have been received" msgstr "" -#: templates/js/translated/purchase_order.js:459 +#: templates/js/translated/purchase_order.js:442 msgid "This order has line items which have not been marked as received." msgstr "" -#: templates/js/translated/purchase_order.js:460 +#: templates/js/translated/purchase_order.js:443 msgid "Completing this order means that the order and line items will no longer be editable." msgstr "" -#: templates/js/translated/purchase_order.js:483 +#: templates/js/translated/purchase_order.js:466 msgid "Cancel Purchase Order" msgstr "" -#: templates/js/translated/purchase_order.js:488 +#: templates/js/translated/purchase_order.js:471 msgid "Are you sure you wish to cancel this purchase order?" msgstr "" -#: templates/js/translated/purchase_order.js:494 +#: templates/js/translated/purchase_order.js:477 msgid "This purchase order can not be cancelled" msgstr "" -#: templates/js/translated/purchase_order.js:515 +#: templates/js/translated/purchase_order.js:498 #: templates/js/translated/return_order.js:164 msgid "After placing this order, line items will no longer be editable." msgstr "" -#: templates/js/translated/purchase_order.js:520 +#: templates/js/translated/purchase_order.js:503 msgid "Issue Purchase Order" msgstr "" -#: templates/js/translated/purchase_order.js:612 +#: templates/js/translated/purchase_order.js:595 msgid "At least one purchaseable part must be selected" msgstr "" -#: templates/js/translated/purchase_order.js:637 +#: templates/js/translated/purchase_order.js:620 msgid "Quantity to order" msgstr "" -#: templates/js/translated/purchase_order.js:646 +#: templates/js/translated/purchase_order.js:629 msgid "New supplier part" msgstr "" -#: templates/js/translated/purchase_order.js:664 +#: templates/js/translated/purchase_order.js:647 msgid "New purchase order" msgstr "" -#: templates/js/translated/purchase_order.js:705 +#: templates/js/translated/purchase_order.js:688 msgid "Add to purchase order" msgstr "" -#: templates/js/translated/purchase_order.js:755 +#: templates/js/translated/purchase_order.js:738 msgid "Merge" msgstr "" -#: templates/js/translated/purchase_order.js:859 +#: templates/js/translated/purchase_order.js:842 msgid "No matching supplier parts" msgstr "" -#: templates/js/translated/purchase_order.js:878 +#: templates/js/translated/purchase_order.js:861 msgid "No matching purchase orders" msgstr "" -#: templates/js/translated/purchase_order.js:1073 +#: templates/js/translated/purchase_order.js:1056 #: templates/js/translated/return_order.js:490 msgid "Select Line Items" msgstr "" -#: templates/js/translated/purchase_order.js:1074 +#: templates/js/translated/purchase_order.js:1057 #: templates/js/translated/return_order.js:491 msgid "At least one line item must be selected" msgstr "" -#: templates/js/translated/purchase_order.js:1104 +#: templates/js/translated/purchase_order.js:1087 msgid "Received Quantity" msgstr "" -#: templates/js/translated/purchase_order.js:1115 +#: templates/js/translated/purchase_order.js:1098 msgid "Quantity to receive" msgstr "" -#: templates/js/translated/purchase_order.js:1170 +#: templates/js/translated/purchase_order.js:1153 #: templates/js/translated/stock.js:1215 msgid "Specify packaging for incoming stock items" msgstr "" -#: templates/js/translated/purchase_order.js:1223 +#: templates/js/translated/purchase_order.js:1206 msgid "Stock Status" msgstr "" -#: templates/js/translated/purchase_order.js:1237 +#: templates/js/translated/purchase_order.js:1220 msgid "Add barcode" msgstr "" -#: templates/js/translated/purchase_order.js:1238 +#: templates/js/translated/purchase_order.js:1221 msgid "Remove barcode" msgstr "" -#: templates/js/translated/purchase_order.js:1241 +#: templates/js/translated/purchase_order.js:1224 msgid "Specify location" msgstr "" -#: templates/js/translated/purchase_order.js:1249 +#: templates/js/translated/purchase_order.js:1232 msgid "Add batch code" msgstr "" -#: templates/js/translated/purchase_order.js:1259 +#: templates/js/translated/purchase_order.js:1242 msgid "Specify packaging" msgstr "" -#: templates/js/translated/purchase_order.js:1270 +#: templates/js/translated/purchase_order.js:1253 msgid "Add serial numbers" msgstr "" -#: templates/js/translated/purchase_order.js:1281 +#: templates/js/translated/purchase_order.js:1264 msgid "Add note" msgstr "" -#: templates/js/translated/purchase_order.js:1338 +#: templates/js/translated/purchase_order.js:1321 msgid "Serials" msgstr "" -#: templates/js/translated/purchase_order.js:1368 +#: templates/js/translated/purchase_order.js:1351 msgid "Order Code" msgstr "" -#: templates/js/translated/purchase_order.js:1370 +#: templates/js/translated/purchase_order.js:1353 msgid "Quantity to Receive" msgstr "" -#: templates/js/translated/purchase_order.js:1395 +#: templates/js/translated/purchase_order.js:1379 #: templates/js/translated/return_order.js:559 msgid "Confirm receipt of items" msgstr "" -#: templates/js/translated/purchase_order.js:1396 +#: templates/js/translated/purchase_order.js:1380 msgid "Receive Purchase Order Items" msgstr "" -#: templates/js/translated/purchase_order.js:1464 +#: templates/js/translated/purchase_order.js:1448 msgid "Scan Item Barcode" msgstr "" -#: templates/js/translated/purchase_order.js:1465 +#: templates/js/translated/purchase_order.js:1449 msgid "Scan barcode on incoming item (must not match any existing stock items)" msgstr "" -#: templates/js/translated/purchase_order.js:1479 +#: templates/js/translated/purchase_order.js:1463 msgid "Invalid barcode data" msgstr "" -#: templates/js/translated/purchase_order.js:1751 +#: templates/js/translated/purchase_order.js:1735 #: templates/js/translated/return_order.js:285 -#: templates/js/translated/sales_order.js:810 -#: templates/js/translated/sales_order.js:1034 +#: templates/js/translated/sales_order.js:769 +#: templates/js/translated/sales_order.js:1007 msgid "Order is overdue" msgstr "" -#: templates/js/translated/purchase_order.js:1913 +#: templates/js/translated/purchase_order.js:1897 msgid "All selected Line items will be deleted" msgstr "" -#: templates/js/translated/purchase_order.js:1931 +#: templates/js/translated/purchase_order.js:1915 msgid "Delete selected Line items?" msgstr "" -#: templates/js/translated/purchase_order.js:1986 -#: templates/js/translated/sales_order.js:2106 +#: templates/js/translated/purchase_order.js:1970 +#: templates/js/translated/sales_order.js:2087 msgid "Duplicate Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2001 +#: templates/js/translated/purchase_order.js:1985 #: templates/js/translated/return_order.js:475 #: templates/js/translated/return_order.js:667 -#: templates/js/translated/sales_order.js:2119 +#: templates/js/translated/sales_order.js:2100 msgid "Edit Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2012 +#: templates/js/translated/purchase_order.js:1996 #: templates/js/translated/return_order.js:680 -#: templates/js/translated/sales_order.js:2130 +#: templates/js/translated/sales_order.js:2111 msgid "Delete Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2294 -#: templates/js/translated/sales_order.js:2060 +#: templates/js/translated/purchase_order.js:2278 +#: templates/js/translated/sales_order.js:2041 msgid "Duplicate line item" msgstr "" -#: templates/js/translated/purchase_order.js:2295 +#: templates/js/translated/purchase_order.js:2279 #: templates/js/translated/return_order.js:799 -#: templates/js/translated/sales_order.js:2061 +#: templates/js/translated/sales_order.js:2042 msgid "Edit line item" msgstr "" -#: templates/js/translated/purchase_order.js:2296 +#: templates/js/translated/purchase_order.js:2280 #: templates/js/translated/return_order.js:803 -#: templates/js/translated/sales_order.js:2067 +#: templates/js/translated/sales_order.js:2048 msgid "Delete line item" msgstr "" -#: templates/js/translated/report.js:49 -msgid "Print Report" -msgstr "" - #: templates/js/translated/report.js:68 msgid "Report print successful" msgstr "" @@ -13878,7 +14219,7 @@ msgid "No return orders found" msgstr "" #: templates/js/translated/return_order.js:299 -#: templates/js/translated/sales_order.js:824 +#: templates/js/translated/sales_order.js:783 msgid "Invalid Customer" msgstr "" @@ -13887,7 +14228,7 @@ msgid "Receive Return Order Items" msgstr "" #: templates/js/translated/return_order.js:691 -#: templates/js/translated/sales_order.js:2267 +#: templates/js/translated/sales_order.js:2248 msgid "No matching line items" msgstr "" @@ -13903,188 +14244,181 @@ msgstr "" msgid "Edit Sales Order" msgstr "" -#: templates/js/translated/sales_order.js:291 +#: templates/js/translated/sales_order.js:288 msgid "No stock items have been allocated to this shipment" msgstr "" -#: templates/js/translated/sales_order.js:296 -msgid "The following stock items will be shipped" -msgstr "" - -#: templates/js/translated/sales_order.js:336 +#: templates/js/translated/sales_order.js:294 msgid "Complete Shipment" msgstr "" -#: templates/js/translated/sales_order.js:360 +#: templates/js/translated/sales_order.js:318 msgid "Confirm Shipment" msgstr "" -#: templates/js/translated/sales_order.js:416 +#: templates/js/translated/sales_order.js:375 msgid "No pending shipments found" msgstr "" -#: templates/js/translated/sales_order.js:420 +#: templates/js/translated/sales_order.js:379 msgid "No stock items have been allocated to pending shipments" msgstr "" -#: templates/js/translated/sales_order.js:430 +#: templates/js/translated/sales_order.js:389 msgid "Complete Shipments" msgstr "" -#: templates/js/translated/sales_order.js:452 +#: templates/js/translated/sales_order.js:411 msgid "Skip" msgstr "" -#: templates/js/translated/sales_order.js:484 +#: templates/js/translated/sales_order.js:443 msgid "Ship Sales Order" msgstr "" -#: templates/js/translated/sales_order.js:500 +#: templates/js/translated/sales_order.js:459 msgid "Ship this order?" msgstr "" -#: templates/js/translated/sales_order.js:506 +#: templates/js/translated/sales_order.js:465 msgid "Order cannot be shipped as there are incomplete shipments" msgstr "" -#: templates/js/translated/sales_order.js:513 +#: templates/js/translated/sales_order.js:472 msgid "This order has line items which have not been completed." msgstr "" -#: templates/js/translated/sales_order.js:514 +#: templates/js/translated/sales_order.js:473 msgid "Shipping this order means that the order and line items will no longer be editable." msgstr "" -#: templates/js/translated/sales_order.js:572 +#: templates/js/translated/sales_order.js:531 msgid "Issue this Sales Order?" msgstr "" -#: templates/js/translated/sales_order.js:577 +#: templates/js/translated/sales_order.js:536 msgid "Issue Sales Order" msgstr "" -#: templates/js/translated/sales_order.js:596 +#: templates/js/translated/sales_order.js:555 msgid "Cancel Sales Order" msgstr "" -#: templates/js/translated/sales_order.js:601 +#: templates/js/translated/sales_order.js:560 msgid "Cancelling this order means that the order will no longer be editable." msgstr "" -#: templates/js/translated/sales_order.js:655 +#: templates/js/translated/sales_order.js:614 msgid "Create New Shipment" msgstr "" -#: templates/js/translated/sales_order.js:764 +#: templates/js/translated/sales_order.js:723 msgid "No sales orders found" msgstr "" -#: templates/js/translated/sales_order.js:944 +#: templates/js/translated/sales_order.js:907 msgid "Edit shipment" msgstr "" -#: templates/js/translated/sales_order.js:947 +#: templates/js/translated/sales_order.js:910 msgid "Complete shipment" msgstr "" -#: templates/js/translated/sales_order.js:952 +#: templates/js/translated/sales_order.js:915 msgid "Delete shipment" msgstr "" -#: templates/js/translated/sales_order.js:969 +#: templates/js/translated/sales_order.js:932 msgid "Edit Shipment" msgstr "" -#: templates/js/translated/sales_order.js:984 +#: templates/js/translated/sales_order.js:947 msgid "Delete Shipment" msgstr "" -#: templates/js/translated/sales_order.js:1017 +#: templates/js/translated/sales_order.js:989 msgid "No matching shipments found" msgstr "" -#: templates/js/translated/sales_order.js:1042 +#: templates/js/translated/sales_order.js:1015 msgid "Shipment Reference" msgstr "" -#: templates/js/translated/sales_order.js:1066 -#: templates/js/translated/sales_order.js:1565 +#: templates/js/translated/sales_order.js:1032 +#: templates/js/translated/sales_order.js:1531 msgid "Not shipped" msgstr "" -#: templates/js/translated/sales_order.js:1084 +#: templates/js/translated/sales_order.js:1050 msgid "Tracking" msgstr "" -#: templates/js/translated/sales_order.js:1088 +#: templates/js/translated/sales_order.js:1054 msgid "Invoice" msgstr "" -#: templates/js/translated/sales_order.js:1255 +#: templates/js/translated/sales_order.js:1221 msgid "Add Shipment" msgstr "" -#: templates/js/translated/sales_order.js:1306 +#: templates/js/translated/sales_order.js:1272 msgid "Confirm stock allocation" msgstr "" -#: templates/js/translated/sales_order.js:1307 +#: templates/js/translated/sales_order.js:1273 msgid "Allocate Stock Items to Sales Order" msgstr "" -#: templates/js/translated/sales_order.js:1513 +#: templates/js/translated/sales_order.js:1479 msgid "No sales order allocations found" msgstr "" -#: templates/js/translated/sales_order.js:1605 +#: templates/js/translated/sales_order.js:1571 msgid "Edit Stock Allocation" msgstr "" -#: templates/js/translated/sales_order.js:1619 +#: templates/js/translated/sales_order.js:1585 msgid "Confirm Delete Operation" msgstr "" -#: templates/js/translated/sales_order.js:1620 +#: templates/js/translated/sales_order.js:1586 msgid "Delete Stock Allocation" msgstr "" -#: templates/js/translated/sales_order.js:1659 -#: templates/js/translated/sales_order.js:1746 +#: templates/js/translated/sales_order.js:1640 +#: templates/js/translated/sales_order.js:1727 #: templates/js/translated/stock.js:1861 msgid "Shipped to customer" msgstr "" -#: templates/js/translated/sales_order.js:1667 -#: templates/js/translated/sales_order.js:1755 +#: templates/js/translated/sales_order.js:1648 +#: templates/js/translated/sales_order.js:1736 msgid "Stock location not specified" msgstr "" -#: templates/js/translated/sales_order.js:2044 -msgid "Allocate serial numbers" -msgstr "" - -#: templates/js/translated/sales_order.js:2048 -msgid "Purchase stock" -msgstr "" - -#: templates/js/translated/sales_order.js:2057 -#: templates/js/translated/sales_order.js:2245 -msgid "Calculate price" -msgstr "" - -#: templates/js/translated/sales_order.js:2071 -msgid "Cannot be deleted as items have been shipped" -msgstr "" - -#: templates/js/translated/sales_order.js:2074 -msgid "Cannot be deleted as items have been allocated" -msgstr "" - -#: templates/js/translated/sales_order.js:2145 +#: templates/js/translated/sales_order.js:2025 +#: templates/js/translated/sales_order.js:2126 msgid "Allocate Serial Numbers" msgstr "" -#: templates/js/translated/sales_order.js:2253 +#: templates/js/translated/sales_order.js:2029 +msgid "Purchase stock" +msgstr "" + +#: templates/js/translated/sales_order.js:2038 +#: templates/js/translated/sales_order.js:2226 +msgid "Calculate price" +msgstr "" + +#: templates/js/translated/sales_order.js:2052 +msgid "Cannot be deleted as items have been shipped" +msgstr "" + +#: templates/js/translated/sales_order.js:2055 +msgid "Cannot be deleted as items have been allocated" +msgstr "" + +#: templates/js/translated/sales_order.js:2234 msgid "Update Unit Price" msgstr "" @@ -14209,11 +14543,8 @@ msgid "Find Serial Number" msgstr "" #: templates/js/translated/stock.js:603 templates/js/translated/stock.js:604 -msgid "Enter serial number" -msgstr "" - #: templates/js/translated/stock.js:620 -msgid "Enter a serial number" +msgid "Enter serial number" msgstr "" #: templates/js/translated/stock.js:640 @@ -14284,7 +14615,7 @@ msgstr "" msgid "Add Stock" msgstr "" -#: templates/js/translated/stock.js:1049 users/models.py:396 +#: templates/js/translated/stock.js:1049 users/models.py:398 msgid "Add" msgstr "" @@ -14308,7 +14639,7 @@ msgstr "" msgid "Adjust packaging" msgstr "" -#: templates/js/translated/stock.js:1256 templates/js/translated/stock.js:3382 +#: templates/js/translated/stock.js:1256 templates/js/translated/stock.js:3383 msgid "Select Stock Items" msgstr "" @@ -14320,18 +14651,6 @@ msgstr "" msgid "Confirm stock adjustment" msgstr "" -#: templates/js/translated/stock.js:1448 -msgid "PASS" -msgstr "" - -#: templates/js/translated/stock.js:1450 -msgid "FAIL" -msgstr "" - -#: templates/js/translated/stock.js:1455 -msgid "NO RESULT" -msgstr "" - #: templates/js/translated/stock.js:1535 msgid "Pass test" msgstr "" @@ -14388,216 +14707,216 @@ msgstr "" msgid "No stock location set" msgstr "" -#: templates/js/translated/stock.js:1927 +#: templates/js/translated/stock.js:1928 msgid "Change stock status" msgstr "" -#: templates/js/translated/stock.js:1936 +#: templates/js/translated/stock.js:1937 msgid "Merge stock" msgstr "" -#: templates/js/translated/stock.js:1985 +#: templates/js/translated/stock.js:1986 msgid "Delete stock" msgstr "" -#: templates/js/translated/stock.js:2038 +#: templates/js/translated/stock.js:2039 msgid "stock items" msgstr "" -#: templates/js/translated/stock.js:2043 +#: templates/js/translated/stock.js:2044 msgid "Scan to location" msgstr "" -#: templates/js/translated/stock.js:2054 +#: templates/js/translated/stock.js:2055 msgid "Stock Actions" msgstr "" -#: templates/js/translated/stock.js:2098 +#: templates/js/translated/stock.js:2099 msgid "Load installed items" msgstr "" -#: templates/js/translated/stock.js:2176 +#: templates/js/translated/stock.js:2177 msgid "Stock item is in production" msgstr "" -#: templates/js/translated/stock.js:2181 +#: templates/js/translated/stock.js:2182 msgid "Stock item assigned to sales order" msgstr "" -#: templates/js/translated/stock.js:2184 +#: templates/js/translated/stock.js:2185 msgid "Stock item assigned to customer" msgstr "" -#: templates/js/translated/stock.js:2187 +#: templates/js/translated/stock.js:2188 msgid "Serialized stock item has been allocated" msgstr "" -#: templates/js/translated/stock.js:2189 +#: templates/js/translated/stock.js:2190 msgid "Stock item has been fully allocated" msgstr "" -#: templates/js/translated/stock.js:2191 +#: templates/js/translated/stock.js:2192 msgid "Stock item has been partially allocated" msgstr "" -#: templates/js/translated/stock.js:2194 +#: templates/js/translated/stock.js:2195 msgid "Stock item has been installed in another item" msgstr "" -#: templates/js/translated/stock.js:2196 +#: templates/js/translated/stock.js:2197 msgid "Stock item has been consumed by a build order" msgstr "" -#: templates/js/translated/stock.js:2200 +#: templates/js/translated/stock.js:2201 msgid "Stock item has expired" msgstr "" -#: templates/js/translated/stock.js:2202 +#: templates/js/translated/stock.js:2203 msgid "Stock item will expire soon" msgstr "" -#: templates/js/translated/stock.js:2207 +#: templates/js/translated/stock.js:2208 msgid "Stock item has been rejected" msgstr "" -#: templates/js/translated/stock.js:2209 +#: templates/js/translated/stock.js:2210 msgid "Stock item is lost" msgstr "" -#: templates/js/translated/stock.js:2211 +#: templates/js/translated/stock.js:2212 msgid "Stock item is destroyed" msgstr "" -#: templates/js/translated/stock.js:2215 +#: templates/js/translated/stock.js:2216 #: templates/js/translated/table_filters.js:357 msgid "Depleted" msgstr "" -#: templates/js/translated/stock.js:2380 +#: templates/js/translated/stock.js:2381 msgid "Supplier part not specified" msgstr "" -#: templates/js/translated/stock.js:2427 +#: templates/js/translated/stock.js:2428 msgid "Stock Value" msgstr "" -#: templates/js/translated/stock.js:2555 +#: templates/js/translated/stock.js:2556 msgid "No stock items matching query" msgstr "" -#: templates/js/translated/stock.js:2658 +#: templates/js/translated/stock.js:2659 msgid "stock locations" msgstr "" -#: templates/js/translated/stock.js:2813 +#: templates/js/translated/stock.js:2814 msgid "Load Sublocations" msgstr "" -#: templates/js/translated/stock.js:2930 +#: templates/js/translated/stock.js:2931 msgid "Details" msgstr "" -#: templates/js/translated/stock.js:2934 +#: templates/js/translated/stock.js:2935 msgid "No changes" msgstr "" -#: templates/js/translated/stock.js:2946 +#: templates/js/translated/stock.js:2947 msgid "Part information unavailable" msgstr "" -#: templates/js/translated/stock.js:2968 +#: templates/js/translated/stock.js:2969 msgid "Location no longer exists" msgstr "" -#: templates/js/translated/stock.js:2985 +#: templates/js/translated/stock.js:2986 msgid "Build order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3000 +#: templates/js/translated/stock.js:3001 msgid "Purchase order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3017 +#: templates/js/translated/stock.js:3018 msgid "Sales Order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3034 +#: templates/js/translated/stock.js:3035 msgid "Return Order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3053 +#: templates/js/translated/stock.js:3054 msgid "Customer no longer exists" msgstr "" -#: templates/js/translated/stock.js:3071 +#: templates/js/translated/stock.js:3072 msgid "Stock item no longer exists" msgstr "" -#: templates/js/translated/stock.js:3089 +#: templates/js/translated/stock.js:3090 msgid "Added" msgstr "" -#: templates/js/translated/stock.js:3097 +#: templates/js/translated/stock.js:3098 msgid "Removed" msgstr "" -#: templates/js/translated/stock.js:3169 +#: templates/js/translated/stock.js:3170 msgid "No installed items" msgstr "" -#: templates/js/translated/stock.js:3223 templates/js/translated/stock.js:3259 +#: templates/js/translated/stock.js:3224 templates/js/translated/stock.js:3260 msgid "Uninstall Stock Item" msgstr "" -#: templates/js/translated/stock.js:3280 +#: templates/js/translated/stock.js:3281 msgid "Select stock item to uninstall" msgstr "" -#: templates/js/translated/stock.js:3301 +#: templates/js/translated/stock.js:3302 msgid "Install another stock item into this item" msgstr "" -#: templates/js/translated/stock.js:3302 +#: templates/js/translated/stock.js:3303 msgid "Stock items can only be installed if they meet the following criteria" msgstr "" -#: templates/js/translated/stock.js:3304 +#: templates/js/translated/stock.js:3305 msgid "The Stock Item links to a Part which is the BOM for this Stock Item" msgstr "" -#: templates/js/translated/stock.js:3305 +#: templates/js/translated/stock.js:3306 msgid "The Stock Item is currently available in stock" msgstr "" -#: templates/js/translated/stock.js:3306 +#: templates/js/translated/stock.js:3307 msgid "The Stock Item is not already installed in another item" msgstr "" -#: templates/js/translated/stock.js:3307 +#: templates/js/translated/stock.js:3308 msgid "The Stock Item is tracked by either a batch code or serial number" msgstr "" -#: templates/js/translated/stock.js:3320 +#: templates/js/translated/stock.js:3321 msgid "Select part to install" msgstr "" -#: templates/js/translated/stock.js:3383 +#: templates/js/translated/stock.js:3384 msgid "Select one or more stock items" msgstr "" -#: templates/js/translated/stock.js:3396 +#: templates/js/translated/stock.js:3397 msgid "Selected stock items" msgstr "" -#: templates/js/translated/stock.js:3400 +#: templates/js/translated/stock.js:3401 msgid "Change Stock Status" msgstr "" -#: templates/js/translated/stock.js:3477 +#: templates/js/translated/stock.js:3478 msgid "This week" msgstr "" -#: templates/js/translated/stock.js:3485 +#: templates/js/translated/stock.js:3486 msgid "This month" msgstr "" @@ -14734,10 +15053,6 @@ msgstr "" msgid "Show items which are in production" msgstr "" -#: templates/js/translated/table_filters.js:372 -msgid "Include Variants" -msgstr "" - #: templates/js/translated/table_filters.js:373 msgid "Include stock items for variant parts" msgstr "" @@ -15012,10 +15327,6 @@ msgstr "" msgid "An error occurred while attempting to login via your social network account." msgstr "" -#: templates/socialaccount/authentication_error.html:13 -msgid "Contact your system administrator for further information." -msgstr "" - #: templates/socialaccount/login.html:13 #, python-format msgid "Connect %(provider)s" @@ -15141,27 +15452,27 @@ msgstr "" msgid "No" msgstr "" -#: users/admin.py:104 +#: users/admin.py:101 msgid "Users" msgstr "" -#: users/admin.py:105 +#: users/admin.py:102 msgid "Select which users are assigned to this group" msgstr "" -#: users/admin.py:249 +#: users/admin.py:246 msgid "The following users are members of multiple groups" msgstr "" -#: users/admin.py:283 +#: users/admin.py:280 msgid "Personal info" msgstr "" -#: users/admin.py:285 +#: users/admin.py:282 msgid "Permissions" msgstr "" -#: users/admin.py:288 +#: users/admin.py:285 msgid "Important dates" msgstr "" @@ -15205,35 +15516,35 @@ msgstr "" msgid "Revoked" msgstr "" -#: users/models.py:379 +#: users/models.py:381 msgid "Permission set" msgstr "" -#: users/models.py:388 +#: users/models.py:390 msgid "Group" msgstr "" -#: users/models.py:392 +#: users/models.py:394 msgid "View" msgstr "" -#: users/models.py:392 +#: users/models.py:394 msgid "Permission to view items" msgstr "" -#: users/models.py:396 +#: users/models.py:398 msgid "Permission to add items" msgstr "" -#: users/models.py:400 +#: users/models.py:402 msgid "Change" msgstr "" -#: users/models.py:402 +#: users/models.py:404 msgid "Permissions to edit items" msgstr "" -#: users/models.py:408 +#: users/models.py:410 msgid "Permission to delete items" msgstr "" diff --git a/src/backend/InvenTree/locale/lt/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/lt/LC_MESSAGES/django.po new file mode 100644 index 0000000000..5ef3ecfa35 --- /dev/null +++ b/src/backend/InvenTree/locale/lt/LC_MESSAGES/django.po @@ -0,0 +1,15550 @@ +msgid "" +msgstr "" +"Project-Id-Version: inventree\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2024-11-04 03:11+0000\n" +"PO-Revision-Date: 2024-11-04 03:14\n" +"Last-Translator: \n" +"Language-Team: Lithuanian\n" +"Language: lt_LT\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=4; plural=(n%10==1 && (n%100>19 || n%100<11) ? 0 : (n%10>=2 && n%10<=9) && (n%100>19 || n%100<11) ? 1 : n%1!=0 ? 2: 3);\n" +"X-Crowdin-Project: inventree\n" +"X-Crowdin-Project-ID: 452300\n" +"X-Crowdin-Language: lt\n" +"X-Crowdin-File: /src/backend/InvenTree/locale/en/LC_MESSAGES/django.po\n" +"X-Crowdin-File-ID: 250\n" + +#: InvenTree/api.py:270 +msgid "API endpoint not found" +msgstr "" + +#: InvenTree/api.py:387 +msgid "Invalid items list provided" +msgstr "" + +#: InvenTree/api.py:396 +msgid "Invalid filters provided" +msgstr "" + +#: InvenTree/api.py:401 +msgid "No items found to delete" +msgstr "" + +#: InvenTree/api.py:515 +msgid "User does not have permission to view this model" +msgstr "" + +#: InvenTree/conversion.py:161 +#, python-brace-format +msgid "Invalid unit provided ({unit})" +msgstr "" + +#: InvenTree/conversion.py:178 +msgid "No value provided" +msgstr "" + +#: InvenTree/conversion.py:205 +#, python-brace-format +msgid "Could not convert {original} to {unit}" +msgstr "" + +#: InvenTree/conversion.py:207 InvenTree/conversion.py:221 +#: InvenTree/helpers.py:505 order/models.py:589 order/models.py:832 +msgid "Invalid quantity provided" +msgstr "" + +#: InvenTree/exceptions.py:104 +msgid "Error details can be found in the admin panel" +msgstr "" + +#: InvenTree/fields.py:135 +msgid "Enter date" +msgstr "" + +#: InvenTree/fields.py:204 InvenTree/models.py:928 build/serializers.py:512 +#: build/serializers.py:590 build/templates/build/sidebar.html:29 +#: company/models.py:833 +#: company/templates/company/manufacturer_part_sidebar.html:11 +#: company/templates/company/sidebar.html:37 +#: company/templates/company/supplier_part_sidebar.html:11 order/models.py:1397 +#: order/templates/order/po_sidebar.html:11 +#: order/templates/order/return_order_sidebar.html:9 +#: order/templates/order/so_sidebar.html:17 part/admin.py:59 +#: part/models.py:3348 part/templates/part/part_sidebar.html:65 +#: report/templates/report/inventree_build_order_report.html:172 +#: stock/admin.py:231 stock/models.py:2494 stock/models.py:2679 +#: stock/serializers.py:725 stock/serializers.py:887 stock/serializers.py:1013 +#: stock/serializers.py:1063 stock/serializers.py:1374 +#: stock/serializers.py:1463 stock/serializers.py:1628 +#: stock/templates/stock/stock_sidebar.html:25 +#: templates/js/translated/barcode.js:143 templates/js/translated/bom.js:1265 +#: templates/js/translated/company.js:1685 templates/js/translated/order.js:372 +#: templates/js/translated/part.js:1087 +#: templates/js/translated/purchase_order.js:2254 +#: templates/js/translated/return_order.js:774 +#: templates/js/translated/sales_order.js:1069 +#: templates/js/translated/sales_order.js:1999 +#: templates/js/translated/stock.js:1621 templates/js/translated/stock.js:2514 +msgid "Notes" +msgstr "" + +#: InvenTree/format.py:162 +#, python-brace-format +msgid "Value '{name}' does not appear in pattern format" +msgstr "" + +#: InvenTree/format.py:173 +msgid "Provided value does not match required pattern: " +msgstr "" + +#: InvenTree/forms.py:129 +msgid "Enter password" +msgstr "" + +#: InvenTree/forms.py:130 +msgid "Enter new password" +msgstr "" + +#: InvenTree/forms.py:139 +msgid "Confirm password" +msgstr "" + +#: InvenTree/forms.py:140 +msgid "Confirm new password" +msgstr "" + +#: InvenTree/forms.py:144 +msgid "Old password" +msgstr "" + +#: InvenTree/forms.py:183 +msgid "Email (again)" +msgstr "" + +#: InvenTree/forms.py:187 +msgid "Email address confirmation" +msgstr "" + +#: InvenTree/forms.py:210 +msgid "You must type the same email each time." +msgstr "" + +#: InvenTree/forms.py:221 +msgid "MFA Registration is disabled." +msgstr "" + +#: InvenTree/forms.py:259 InvenTree/forms.py:267 +msgid "The provided primary email address is not valid." +msgstr "" + +#: InvenTree/forms.py:273 +msgid "The provided email domain is not approved." +msgstr "" + +#: InvenTree/forms.py:402 +msgid "Registration is disabled." +msgstr "" + +#: InvenTree/helpers.py:509 +msgid "Cannot serialize more than 1000 items at once" +msgstr "" + +#: InvenTree/helpers.py:515 +msgid "Empty serial number string" +msgstr "" + +#: InvenTree/helpers.py:544 +msgid "Duplicate serial" +msgstr "" + +#: InvenTree/helpers.py:576 InvenTree/helpers.py:619 InvenTree/helpers.py:637 +#: InvenTree/helpers.py:644 InvenTree/helpers.py:663 +#, python-brace-format +msgid "Invalid group: {group}" +msgstr "" + +#: InvenTree/helpers.py:607 +#, python-brace-format +msgid "Group range {group} exceeds allowed quantity ({expected_quantity})" +msgstr "" + +#: InvenTree/helpers.py:673 +msgid "No serial numbers found" +msgstr "" + +#: InvenTree/helpers.py:678 +msgid "Number of unique serial numbers ({len(serials)}) must match quantity ({expected_quantity})" +msgstr "" + +#: InvenTree/helpers.py:796 +msgid "Remove HTML tags from this value" +msgstr "" + +#: InvenTree/helpers.py:881 +msgid "Data contains prohibited markdown content" +msgstr "" + +#: InvenTree/helpers_model.py:130 +msgid "Connection error" +msgstr "" + +#: InvenTree/helpers_model.py:135 InvenTree/helpers_model.py:142 +msgid "Server responded with invalid status code" +msgstr "" + +#: InvenTree/helpers_model.py:138 +msgid "Exception occurred" +msgstr "" + +#: InvenTree/helpers_model.py:148 +msgid "Server responded with invalid Content-Length value" +msgstr "" + +#: InvenTree/helpers_model.py:151 +msgid "Image size is too large" +msgstr "" + +#: InvenTree/helpers_model.py:163 +msgid "Image download exceeded maximum size" +msgstr "" + +#: InvenTree/helpers_model.py:168 +msgid "Remote server returned empty response" +msgstr "" + +#: InvenTree/helpers_model.py:176 +msgid "Supplied URL is not a valid image file" +msgstr "" + +#: InvenTree/locales.py:20 +msgid "Arabic" +msgstr "" + +#: InvenTree/locales.py:21 +msgid "Bulgarian" +msgstr "" + +#: InvenTree/locales.py:22 +msgid "Czech" +msgstr "" + +#: InvenTree/locales.py:23 +msgid "Danish" +msgstr "" + +#: InvenTree/locales.py:24 +msgid "German" +msgstr "" + +#: InvenTree/locales.py:25 +msgid "Greek" +msgstr "" + +#: InvenTree/locales.py:26 +msgid "English" +msgstr "" + +#: InvenTree/locales.py:27 +msgid "Spanish" +msgstr "" + +#: InvenTree/locales.py:28 +msgid "Spanish (Mexican)" +msgstr "" + +#: InvenTree/locales.py:29 +msgid "Estonian" +msgstr "" + +#: InvenTree/locales.py:30 +msgid "Farsi / Persian" +msgstr "" + +#: InvenTree/locales.py:31 +msgid "Finnish" +msgstr "" + +#: InvenTree/locales.py:32 +msgid "French" +msgstr "" + +#: InvenTree/locales.py:33 +msgid "Hebrew" +msgstr "" + +#: InvenTree/locales.py:34 +msgid "Hindi" +msgstr "" + +#: InvenTree/locales.py:35 +msgid "Hungarian" +msgstr "" + +#: InvenTree/locales.py:36 +msgid "Italian" +msgstr "" + +#: InvenTree/locales.py:37 +msgid "Japanese" +msgstr "" + +#: InvenTree/locales.py:38 +msgid "Korean" +msgstr "" + +#: InvenTree/locales.py:39 +msgid "Lithuanian" +msgstr "" + +#: InvenTree/locales.py:40 +msgid "Latvian" +msgstr "" + +#: InvenTree/locales.py:41 +msgid "Dutch" +msgstr "" + +#: InvenTree/locales.py:42 +msgid "Norwegian" +msgstr "" + +#: InvenTree/locales.py:43 +msgid "Polish" +msgstr "" + +#: InvenTree/locales.py:44 +msgid "Portuguese" +msgstr "" + +#: InvenTree/locales.py:45 +msgid "Portuguese (Brazilian)" +msgstr "" + +#: InvenTree/locales.py:46 +msgid "Romanian" +msgstr "" + +#: InvenTree/locales.py:47 +msgid "Russian" +msgstr "" + +#: InvenTree/locales.py:48 +msgid "Slovak" +msgstr "" + +#: InvenTree/locales.py:49 +msgid "Slovenian" +msgstr "" + +#: InvenTree/locales.py:50 +msgid "Serbian" +msgstr "" + +#: InvenTree/locales.py:51 +msgid "Swedish" +msgstr "" + +#: InvenTree/locales.py:52 +msgid "Thai" +msgstr "" + +#: InvenTree/locales.py:53 +msgid "Turkish" +msgstr "" + +#: InvenTree/locales.py:54 +msgid "Ukrainian" +msgstr "" + +#: InvenTree/locales.py:55 +msgid "Vietnamese" +msgstr "" + +#: InvenTree/locales.py:56 +msgid "Chinese (Simplified)" +msgstr "" + +#: InvenTree/locales.py:57 +msgid "Chinese (Traditional)" +msgstr "" + +#: InvenTree/magic_login.py:28 +msgid "Log in to the app" +msgstr "" + +#: InvenTree/magic_login.py:38 InvenTree/serializers.py:416 +#: company/models.py:133 company/templates/company/company_base.html:138 +#: templates/InvenTree/settings/user.html:49 +#: templates/js/translated/company.js:678 +msgid "Email" +msgstr "" + +#: InvenTree/models.py:105 +msgid "Error running plugin validation" +msgstr "" + +#: InvenTree/models.py:174 +msgid "Metadata must be a python dict object" +msgstr "" + +#: InvenTree/models.py:180 +msgid "Plugin Metadata" +msgstr "" + +#: InvenTree/models.py:181 +msgid "JSON metadata field, for use by external plugins" +msgstr "" + +#: InvenTree/models.py:408 +msgid "Improperly formatted pattern" +msgstr "" + +#: InvenTree/models.py:415 +msgid "Unknown format key specified" +msgstr "" + +#: InvenTree/models.py:421 +msgid "Missing required format key" +msgstr "" + +#: InvenTree/models.py:432 +msgid "Reference field cannot be empty" +msgstr "" + +#: InvenTree/models.py:440 +msgid "Reference must match required pattern" +msgstr "" + +#: InvenTree/models.py:471 +msgid "Reference number is too large" +msgstr "" + +#: InvenTree/models.py:722 +msgid "Duplicate names cannot exist under the same parent" +msgstr "" + +#: InvenTree/models.py:739 +msgid "Invalid choice" +msgstr "" + +#: InvenTree/models.py:769 common/models.py:2766 common/models.py:3193 +#: common/models.py:3413 common/serializers.py:460 company/models.py:590 +#: machine/models.py:24 part/models.py:1044 part/models.py:3815 +#: plugin/models.py:51 report/models.py:149 stock/models.py:83 +#: templates/InvenTree/settings/mixins/urls.html:13 +#: templates/InvenTree/settings/notifications.html:17 +#: templates/InvenTree/settings/plugin.html:83 +#: templates/InvenTree/settings/plugin_settings.html:22 +#: templates/InvenTree/settings/settings_staff_js.html:67 +#: templates/InvenTree/settings/settings_staff_js.html:454 +#: templates/js/translated/company.js:677 +#: templates/js/translated/company.js:725 +#: templates/js/translated/company.js:914 +#: templates/js/translated/company.js:1166 +#: templates/js/translated/company.js:1414 templates/js/translated/part.js:1193 +#: templates/js/translated/part.js:1481 templates/js/translated/part.js:1617 +#: templates/js/translated/part.js:2768 templates/js/translated/stock.js:2802 +msgid "Name" +msgstr "" + +#: InvenTree/models.py:775 build/models.py:251 +#: build/templates/build/detail.html:24 common/models.py:159 +#: company/models.py:518 company/models.py:824 +#: company/templates/company/company_base.html:77 +#: company/templates/company/manufacturer_part.html:75 +#: company/templates/company/supplier_part.html:108 order/models.py:295 +#: order/models.py:1430 part/admin.py:305 part/admin.py:411 part/models.py:1067 +#: part/models.py:3830 part/templates/part/category.html:79 +#: part/templates/part/part_base.html:171 +#: part/templates/part/part_scheduling.html:12 report/models.py:155 +#: report/models.py:517 report/models.py:543 +#: report/templates/report/inventree_build_order_report.html:117 +#: stock/admin.py:54 stock/models.py:89 stock/templates/stock/location.html:123 +#: templates/InvenTree/settings/notifications.html:19 +#: templates/InvenTree/settings/plugin_settings.html:27 +#: templates/InvenTree/settings/settings_staff_js.html:170 +#: templates/InvenTree/settings/settings_staff_js.html:459 +#: templates/js/translated/bom.js:633 templates/js/translated/bom.js:963 +#: templates/js/translated/build.js:2314 templates/js/translated/company.js:520 +#: templates/js/translated/company.js:1331 +#: templates/js/translated/company.js:1642 templates/js/translated/index.js:119 +#: templates/js/translated/order.js:323 templates/js/translated/part.js:1245 +#: templates/js/translated/part.js:1490 templates/js/translated/part.js:1628 +#: templates/js/translated/part.js:1965 templates/js/translated/part.js:2361 +#: templates/js/translated/part.js:2803 templates/js/translated/part.js:2915 +#: templates/js/translated/plugin.js:80 +#: templates/js/translated/purchase_order.js:1760 +#: templates/js/translated/purchase_order.js:1903 +#: templates/js/translated/purchase_order.js:2076 +#: templates/js/translated/return_order.js:313 +#: templates/js/translated/sales_order.js:797 +#: templates/js/translated/sales_order.js:1829 +#: templates/js/translated/stock.js:1600 templates/js/translated/stock.js:2144 +#: templates/js/translated/stock.js:2833 templates/js/translated/stock.js:2916 +msgid "Description" +msgstr "" + +#: InvenTree/models.py:776 stock/models.py:90 +msgid "Description (optional)" +msgstr "" + +#: InvenTree/models.py:791 common/models.py:3546 +#: templates/js/translated/part.js:2812 templates/js/translated/stock.js:2842 +msgid "Path" +msgstr "" + +#: InvenTree/models.py:928 +msgid "Markdown notes (optional)" +msgstr "" + +#: InvenTree/models.py:959 +msgid "Barcode Data" +msgstr "" + +#: InvenTree/models.py:960 +msgid "Third party barcode data" +msgstr "" + +#: InvenTree/models.py:966 +msgid "Barcode Hash" +msgstr "" + +#: InvenTree/models.py:967 +msgid "Unique hash of barcode data" +msgstr "" + +#: InvenTree/models.py:1034 +msgid "Existing barcode found" +msgstr "" + +#: InvenTree/models.py:1112 +msgid "Task Failure" +msgstr "" + +#: InvenTree/models.py:1114 +#, python-brace-format +msgid "Background worker task '{instance.func}' failed after {n} attempts" +msgstr "" + +#: InvenTree/models.py:1142 +msgid "Server Error" +msgstr "" + +#: InvenTree/models.py:1143 +msgid "An error has been logged by the server." +msgstr "" + +#: InvenTree/serializers.py:63 part/models.py:4444 +msgid "Must be a valid number" +msgstr "" + +#: InvenTree/serializers.py:100 company/models.py:183 +#: company/templates/company/company_base.html:112 part/models.py:3166 +#: templates/InvenTree/settings/settings_staff_js.html:44 +#: templates/currency_data.html:5 +msgid "Currency" +msgstr "" + +#: InvenTree/serializers.py:103 +msgid "Select currency from available options" +msgstr "" + +#: InvenTree/serializers.py:405 templates/InvenTree/settings/user.html:33 +msgid "Username" +msgstr "" + +#: InvenTree/serializers.py:408 templates/InvenTree/settings/user.html:37 +msgid "First Name" +msgstr "" + +#: InvenTree/serializers.py:408 +msgid "First name of the user" +msgstr "" + +#: InvenTree/serializers.py:412 templates/InvenTree/settings/user.html:41 +msgid "Last Name" +msgstr "" + +#: InvenTree/serializers.py:412 +msgid "Last name of the user" +msgstr "" + +#: InvenTree/serializers.py:416 +msgid "Email address of the user" +msgstr "" + +#: InvenTree/serializers.py:441 +msgid "Staff" +msgstr "" + +#: InvenTree/serializers.py:441 +msgid "Does this user have staff permissions" +msgstr "" + +#: InvenTree/serializers.py:445 +msgid "Superuser" +msgstr "" + +#: InvenTree/serializers.py:445 +msgid "Is this user a superuser" +msgstr "" + +#: InvenTree/serializers.py:449 common/models.py:2771 company/models.py:160 +#: company/models.py:798 machine/models.py:39 part/admin.py:88 +#: part/models.py:1250 plugin/models.py:66 +#: templates/js/translated/company.js:524 +#: templates/js/translated/table_filters.js:134 +#: templates/js/translated/table_filters.js:226 +#: templates/js/translated/table_filters.js:513 +#: templates/js/translated/table_filters.js:541 +#: templates/js/translated/table_filters.js:719 +#: templates/js/translated/table_filters.js:808 users/models.py:182 +msgid "Active" +msgstr "" + +#: InvenTree/serializers.py:449 +msgid "Is this user account active" +msgstr "" + +#: InvenTree/serializers.py:467 +msgid "You do not have permission to change this user role." +msgstr "" + +#: InvenTree/serializers.py:503 +msgid "Only superusers can create new users" +msgstr "" + +#: InvenTree/serializers.py:523 +msgid "Your account has been created." +msgstr "" + +#: InvenTree/serializers.py:525 +msgid "Please use the password reset function to login" +msgstr "" + +#: InvenTree/serializers.py:531 +msgid "Welcome to InvenTree" +msgstr "" + +#: InvenTree/serializers.py:594 +msgid "Invalid value" +msgstr "" + +#: InvenTree/serializers.py:614 importer/models.py:64 +msgid "Data File" +msgstr "" + +#: InvenTree/serializers.py:615 +msgid "Select data file for upload" +msgstr "" + +#: InvenTree/serializers.py:632 common/files.py:63 +msgid "Unsupported file format" +msgstr "" + +#: InvenTree/serializers.py:638 +msgid "File is too large" +msgstr "" + +#: InvenTree/serializers.py:659 +msgid "No columns found in file" +msgstr "" + +#: InvenTree/serializers.py:662 +msgid "No data rows found in file" +msgstr "" + +#: InvenTree/serializers.py:774 +msgid "No data rows provided" +msgstr "" + +#: InvenTree/serializers.py:777 +msgid "No data columns supplied" +msgstr "" + +#: InvenTree/serializers.py:843 +#, python-brace-format +msgid "Missing required column: '{name}'" +msgstr "" + +#: InvenTree/serializers.py:852 +#, python-brace-format +msgid "Duplicate column: '{col}'" +msgstr "" + +#: InvenTree/serializers.py:891 +msgid "Remote Image" +msgstr "" + +#: InvenTree/serializers.py:892 +msgid "URL of remote image file" +msgstr "" + +#: InvenTree/serializers.py:910 +msgid "Downloading images from remote URL is not enabled" +msgstr "" + +#: InvenTree/serializers.py:917 +msgid "Failed to download image from remote URL" +msgstr "" + +#: InvenTree/templatetags/inventree_extras.py:184 +msgid "Unknown database" +msgstr "" + +#: InvenTree/validators.py:32 +msgid "Invalid physical unit" +msgstr "" + +#: InvenTree/validators.py:38 +msgid "Not a valid currency code" +msgstr "" + +#: InvenTree/validators.py:115 InvenTree/validators.py:131 +msgid "Overage value must not be negative" +msgstr "" + +#: InvenTree/validators.py:133 +msgid "Overage must not exceed 100%" +msgstr "" + +#: InvenTree/validators.py:139 +msgid "Invalid value for overage" +msgstr "" + +#: InvenTree/views.py:399 templates/InvenTree/settings/user.html:23 +msgid "Edit User Information" +msgstr "" + +#: InvenTree/views.py:411 templates/InvenTree/settings/user.html:20 +msgid "Set Password" +msgstr "" + +#: InvenTree/views.py:433 +msgid "Password fields must match" +msgstr "" + +#: InvenTree/views.py:441 +msgid "Wrong password provided" +msgstr "" + +#: InvenTree/views.py:645 templates/navbar.html:160 +msgid "System Information" +msgstr "" + +#: InvenTree/views.py:652 templates/navbar.html:171 +msgid "About InvenTree" +msgstr "" + +#: build/api.py:54 build/models.py:262 +#: build/templates/build/build_base.html:192 +#: build/templates/build/detail.html:87 +msgid "Parent Build" +msgstr "" + +#: build/api.py:58 build/api.py:625 order/api.py:396 order/api.py:611 +#: order/api.py:990 order/api.py:1187 +#: templates/js/translated/table_filters.js:372 +msgid "Include Variants" +msgstr "" + +#: build/api.py:93 +msgid "Ancestor Build" +msgstr "" + +#: build/api.py:112 order/api.py:90 +#: templates/js/translated/table_filters.js:101 +#: templates/js/translated/table_filters.js:549 +#: templates/js/translated/table_filters.js:633 +#: templates/js/translated/table_filters.js:674 +msgid "Assigned to me" +msgstr "" + +#: build/api.py:129 build/templates/build/build_base.html:206 +#: build/templates/build/detail.html:115 +#: report/templates/report/inventree_build_order_report.html:152 +#: templates/js/translated/table_filters.js:552 +msgid "Issued By" +msgstr "" + +#: build/api.py:148 +msgid "Assigned To" +msgstr "" + +#: build/api.py:310 +msgid "Build must be cancelled before it can be deleted" +msgstr "" + +#: build/api.py:354 build/serializers.py:1342 part/models.py:4322 +#: templates/js/translated/bom.js:997 templates/js/translated/bom.js:1037 +#: templates/js/translated/build.js:2711 +#: templates/js/translated/table_filters.js:197 +#: templates/js/translated/table_filters.js:586 +msgid "Consumable" +msgstr "" + +#: build/api.py:355 build/serializers.py:1343 part/models.py:4316 +#: part/templates/part/upload_bom.html:58 templates/js/translated/bom.js:1001 +#: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2702 +#: templates/js/translated/table_filters.js:193 +#: templates/js/translated/table_filters.js:222 +#: templates/js/translated/table_filters.js:590 +msgid "Optional" +msgstr "" + +#: build/api.py:356 common/models.py:1558 part/admin.py:91 part/admin.py:428 +#: part/models.py:1215 part/serializers.py:1633 +#: templates/js/translated/bom.js:1639 +#: templates/js/translated/table_filters.js:337 +#: templates/js/translated/table_filters.js:729 +msgid "Assembly" +msgstr "" + +#: build/api.py:357 templates/js/translated/table_filters.js:415 +#: templates/js/translated/table_filters.js:582 +msgid "Tracked" +msgstr "" + +#: build/api.py:358 build/serializers.py:1344 part/models.py:1233 +#: templates/js/translated/table_filters.js:146 +#: templates/js/translated/table_filters.js:779 +msgid "Testable" +msgstr "" + +#: build/api.py:360 order/api.py:779 part/admin.py:144 +#: templates/js/translated/build.js:1920 templates/js/translated/build.js:2838 +#: templates/js/translated/sales_order.js:1946 +#: templates/js/translated/table_filters.js:574 +msgid "Allocated" +msgstr "" + +#: build/api.py:368 company/models.py:888 company/serializers.py:399 +#: company/templates/company/supplier_part.html:115 +#: templates/email/build_order_required_stock.html:19 +#: templates/email/low_stock_notification.html:17 +#: templates/js/translated/bom.js:1162 templates/js/translated/build.js:2770 +#: templates/js/translated/index.js:123 +#: templates/js/translated/model_renderers.js:238 +#: templates/js/translated/part.js:695 templates/js/translated/part.js:697 +#: templates/js/translated/part.js:702 +#: templates/js/translated/table_filters.js:347 +#: templates/js/translated/table_filters.js:578 +msgid "Available" +msgstr "" + +#: build/api.py:640 build/models.py:268 build/serializers.py:1330 +#: build/templates/build/build_base.html:106 +#: build/templates/build/detail.html:29 company/models.py:1043 order/api.py:775 +#: order/api.py:1003 order/models.py:1519 order/models.py:1674 +#: order/models.py:1675 part/api.py:1495 part/api.py:1802 part/models.py:419 +#: part/models.py:3177 part/models.py:3321 part/models.py:3469 +#: part/models.py:3490 part/models.py:3512 part/models.py:3648 +#: part/models.py:3995 part/models.py:4158 part/models.py:4288 +#: part/models.py:4654 part/serializers.py:1245 part/serializers.py:1898 +#: part/templates/part/part_app_base.html:8 +#: part/templates/part/part_pricing.html:12 +#: part/templates/part/upload_bom.html:52 +#: report/templates/report/inventree_bill_of_materials_report.html:110 +#: report/templates/report/inventree_bill_of_materials_report.html:137 +#: report/templates/report/inventree_build_order_report.html:109 +#: report/templates/report/inventree_purchase_order_report.html:27 +#: report/templates/report/inventree_return_order_report.html:24 +#: report/templates/report/inventree_sales_order_report.html:27 +#: report/templates/report/inventree_sales_order_shipment_report.html:28 +#: report/templates/report/inventree_stock_location_report.html:102 +#: stock/serializers.py:112 stock/serializers.py:160 stock/serializers.py:456 +#: stock/serializers.py:947 templates/InvenTree/search.html:82 +#: templates/email/build_order_completed.html:17 +#: templates/email/build_order_required_stock.html:17 +#: templates/email/low_stock_notification.html:15 +#: templates/email/overdue_build_order.html:16 +#: templates/js/translated/barcode.js:577 templates/js/translated/bom.js:632 +#: templates/js/translated/bom.js:769 templates/js/translated/bom.js:905 +#: templates/js/translated/build.js:1005 templates/js/translated/build.js:1488 +#: templates/js/translated/build.js:1919 templates/js/translated/build.js:2337 +#: templates/js/translated/build.js:2514 templates/js/translated/company.js:349 +#: templates/js/translated/company.js:1117 +#: templates/js/translated/company.js:1272 +#: templates/js/translated/company.js:1560 templates/js/translated/index.js:109 +#: templates/js/translated/part.js:1950 templates/js/translated/part.js:2022 +#: templates/js/translated/part.js:2330 templates/js/translated/pricing.js:369 +#: templates/js/translated/purchase_order.js:734 +#: templates/js/translated/purchase_order.js:1350 +#: templates/js/translated/purchase_order.js:1902 +#: templates/js/translated/purchase_order.js:2061 +#: templates/js/translated/return_order.js:538 +#: templates/js/translated/return_order.js:708 +#: templates/js/translated/sales_order.js:1199 +#: templates/js/translated/sales_order.js:1608 +#: templates/js/translated/sales_order.js:1813 +#: templates/js/translated/stock.js:682 templates/js/translated/stock.js:848 +#: templates/js/translated/stock.js:1065 templates/js/translated/stock.js:2083 +#: templates/js/translated/stock.js:2942 templates/js/translated/stock.js:3175 +#: templates/js/translated/stock.js:3320 +msgid "Part" +msgstr "" + +#: build/api.py:662 build/models.py:88 build/templates/build/build_base.html:10 +#: build/templates/build/build_base.html:28 +#: report/templates/report/inventree_build_order_report.html:105 +#: stock/serializers.py:85 templates/email/build_order_completed.html:16 +#: templates/email/overdue_build_order.html:15 +#: templates/js/translated/build.js:1148 templates/js/translated/stock.js:2977 +msgid "Build Order" +msgstr "" + +#: build/models.py:89 build/templates/build/build_base.html:14 +#: build/templates/build/index.html:8 build/templates/build/index.html:12 +#: order/templates/order/sales_order_detail.html:111 +#: order/templates/order/so_sidebar.html:13 +#: part/templates/part/part_sidebar.html:22 templates/InvenTree/index.html:196 +#: templates/InvenTree/search.html:141 +#: templates/InvenTree/settings/sidebar.html:55 +#: templates/js/translated/search.js:186 users/models.py:207 +msgid "Build Orders" +msgstr "" + +#: build/models.py:136 +msgid "Assembly BOM has not been validated" +msgstr "" + +#: build/models.py:143 +msgid "Build order cannot be created for an inactive part" +msgstr "" + +#: build/models.py:150 +msgid "Build order cannot be created for an unlocked part" +msgstr "" + +#: build/models.py:164 +msgid "Invalid choice for parent build" +msgstr "" + +#: build/models.py:175 order/models.py:236 +msgid "Responsible user or group must be specified" +msgstr "" + +#: build/models.py:181 +msgid "Build order part cannot be changed" +msgstr "" + +#: build/models.py:242 +msgid "Build Order Reference" +msgstr "" + +#: build/models.py:243 build/serializers.py:1341 order/models.py:479 +#: order/models.py:1005 order/models.py:1390 order/models.py:2174 +#: part/admin.py:414 part/models.py:4337 part/templates/part/upload_bom.html:54 +#: report/templates/report/inventree_bill_of_materials_report.html:139 +#: report/templates/report/inventree_purchase_order_report.html:28 +#: report/templates/report/inventree_return_order_report.html:26 +#: report/templates/report/inventree_sales_order_report.html:28 +#: templates/js/translated/bom.js:770 templates/js/translated/bom.js:973 +#: templates/js/translated/build.js:1014 templates/js/translated/build.js:2694 +#: templates/js/translated/order.js:316 templates/js/translated/pricing.js:386 +#: templates/js/translated/purchase_order.js:2119 +#: templates/js/translated/return_order.js:727 +#: templates/js/translated/sales_order.js:1835 +msgid "Reference" +msgstr "" + +#: build/models.py:254 +msgid "Brief description of the build (optional)" +msgstr "" + +#: build/models.py:263 +msgid "BuildOrder to which this build is allocated" +msgstr "" + +#: build/models.py:274 +msgid "Select part to build" +msgstr "" + +#: build/models.py:279 +msgid "Sales Order Reference" +msgstr "" + +#: build/models.py:283 +msgid "SalesOrder to which this build is allocated" +msgstr "" + +#: build/models.py:288 build/serializers.py:1092 +#: templates/js/translated/build.js:1907 +#: templates/js/translated/sales_order.js:1187 +msgid "Source Location" +msgstr "" + +#: build/models.py:292 +msgid "Select location to take stock from for this build (leave blank to take from any stock location)" +msgstr "" + +#: build/models.py:297 +msgid "Destination Location" +msgstr "" + +#: build/models.py:301 +msgid "Select location where the completed items will be stored" +msgstr "" + +#: build/models.py:305 +msgid "Build Quantity" +msgstr "" + +#: build/models.py:308 +msgid "Number of stock items to build" +msgstr "" + +#: build/models.py:312 +msgid "Completed items" +msgstr "" + +#: build/models.py:314 +msgid "Number of stock items which have been completed" +msgstr "" + +#: build/models.py:318 +msgid "Build Status" +msgstr "" + +#: build/models.py:322 +msgid "Build status code" +msgstr "" + +#: build/models.py:331 build/serializers.py:349 build/serializers.py:1243 +#: order/serializers.py:755 stock/models.py:936 stock/serializers.py:77 +#: stock/serializers.py:1593 templates/js/translated/purchase_order.js:1112 +#: templates/js/translated/stock.js:1199 +msgid "Batch Code" +msgstr "" + +#: build/models.py:335 build/serializers.py:350 +msgid "Batch code for this build output" +msgstr "" + +#: build/models.py:338 order/models.py:322 order/serializers.py:157 +#: part/models.py:1290 part/templates/part/part_base.html:327 +#: templates/js/translated/return_order.js:338 +#: templates/js/translated/sales_order.js:822 +msgid "Creation Date" +msgstr "" + +#: build/models.py:342 +msgid "Target completion date" +msgstr "" + +#: build/models.py:343 +msgid "Target date for build completion. Build will be overdue after this date." +msgstr "" + +#: build/models.py:346 order/models.py:538 order/models.py:2219 +#: templates/js/translated/build.js:2422 +msgid "Completion Date" +msgstr "" + +#: build/models.py:352 +msgid "completed by" +msgstr "" + +#: build/models.py:360 templates/js/translated/build.js:2382 +msgid "Issued by" +msgstr "" + +#: build/models.py:361 +msgid "User who issued this build order" +msgstr "" + +#: build/models.py:369 build/templates/build/build_base.html:213 +#: build/templates/build/detail.html:122 common/models.py:168 order/api.py:140 +#: order/models.py:340 order/templates/order/order_base.html:231 +#: order/templates/order/return_order_base.html:192 +#: order/templates/order/sales_order_base.html:236 part/models.py:1307 +#: part/templates/part/part_base.html:407 +#: report/templates/report/inventree_build_order_report.html:158 +#: templates/InvenTree/settings/settings_staff_js.html:150 +#: templates/js/translated/build.js:2394 +#: templates/js/translated/purchase_order.js:1817 +#: templates/js/translated/return_order.js:358 +#: templates/js/translated/table_filters.js:551 +msgid "Responsible" +msgstr "" + +#: build/models.py:370 +msgid "User or group responsible for this build order" +msgstr "" + +#: build/models.py:375 build/templates/build/detail.html:108 +#: company/templates/company/manufacturer_part.html:107 +#: company/templates/company/supplier_part.html:195 +#: order/templates/order/order_base.html:181 +#: order/templates/order/return_order_base.html:149 +#: order/templates/order/sales_order_base.html:188 +#: part/templates/part/part_base.html:400 stock/models.py:932 +#: stock/templates/stock/item_base.html:197 +#: templates/js/translated/company.js:1020 +msgid "External Link" +msgstr "" + +#: build/models.py:376 common/models.py:3334 part/models.py:1119 +#: stock/models.py:932 +msgid "Link to external URL" +msgstr "" + +#: build/models.py:380 +msgid "Build Priority" +msgstr "" + +#: build/models.py:383 +msgid "Priority of this build order" +msgstr "" + +#: build/models.py:390 common/models.py:138 common/models.py:152 +#: order/admin.py:18 order/api.py:126 order/models.py:304 +#: templates/InvenTree/settings/settings_staff_js.html:146 +#: templates/js/translated/build.js:2319 +#: templates/js/translated/purchase_order.js:1764 +#: templates/js/translated/return_order.js:317 +#: templates/js/translated/sales_order.js:801 +#: templates/js/translated/table_filters.js:47 +#: templates/project_code_data.html:6 +msgid "Project Code" +msgstr "" + +#: build/models.py:391 +msgid "Project code for this build order" +msgstr "" + +#: build/models.py:651 build/models.py:779 +msgid "Failed to offload task to complete build allocations" +msgstr "" + +#: build/models.py:673 +#, python-brace-format +msgid "Build order {build} has been completed" +msgstr "" + +#: build/models.py:679 +msgid "A build order has been completed" +msgstr "" + +#: build/models.py:858 build/serializers.py:393 +msgid "Serial numbers must be provided for trackable parts" +msgstr "" + +#: build/models.py:969 build/models.py:1058 +msgid "No build output specified" +msgstr "" + +#: build/models.py:972 +msgid "Build output is already completed" +msgstr "" + +#: build/models.py:975 +msgid "Build output does not match Build Order" +msgstr "" + +#: build/models.py:1062 build/serializers.py:282 build/serializers.py:331 +#: build/serializers.py:959 order/models.py:586 order/serializers.py:584 +#: order/serializers.py:750 part/serializers.py:1627 part/serializers.py:2060 +#: stock/models.py:777 stock/models.py:1609 stock/serializers.py:696 +msgid "Quantity must be greater than zero" +msgstr "" + +#: build/models.py:1067 build/serializers.py:287 +msgid "Quantity cannot be greater than the output quantity" +msgstr "" + +#: build/models.py:1127 build/serializers.py:607 +#, python-brace-format +msgid "Build output {serial} has not passed all required tests" +msgstr "" + +#: build/models.py:1482 +msgid "Build Order Line Item" +msgstr "" + +#: build/models.py:1507 +msgid "Build object" +msgstr "" + +#: build/models.py:1521 build/models.py:1787 build/serializers.py:269 +#: build/serializers.py:316 build/serializers.py:1349 +#: build/templates/build/build_base.html:111 +#: build/templates/build/detail.html:34 common/models.py:2643 +#: order/models.py:1373 order/models.py:2074 order/serializers.py:1586 +#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:413 +#: part/forms.py:48 part/models.py:3335 part/models.py:4310 +#: part/serializers.py:265 part/templates/part/part_pricing.html:16 +#: part/templates/part/upload_bom.html:53 +#: report/templates/report/inventree_bill_of_materials_report.html:138 +#: report/templates/report/inventree_build_order_report.html:113 +#: report/templates/report/inventree_purchase_order_report.html:29 +#: report/templates/report/inventree_sales_order_report.html:29 +#: report/templates/report/inventree_sales_order_shipment_report.html:47 +#: report/templates/report/inventree_sales_order_shipment_report.html:49 +#: report/templates/report/inventree_stock_location_report.html:104 +#: report/templates/report/inventree_test_report.html:90 +#: report/templates/report/inventree_test_report.html:169 stock/admin.py:160 +#: stock/serializers.py:128 stock/serializers.py:168 stock/serializers.py:687 +#: stock/templates/stock/item_base.html:284 +#: stock/templates/stock/item_base.html:292 +#: stock/templates/stock/item_base.html:339 +#: templates/email/build_order_completed.html:18 +#: templates/js/translated/barcode.js:579 templates/js/translated/bom.js:771 +#: templates/js/translated/bom.js:981 templates/js/translated/build.js:525 +#: templates/js/translated/build.js:740 templates/js/translated/build.js:1545 +#: templates/js/translated/build.js:1922 templates/js/translated/build.js:2536 +#: templates/js/translated/company.js:1819 +#: templates/js/translated/model_renderers.js:240 +#: templates/js/translated/order.js:329 templates/js/translated/part.js:968 +#: templates/js/translated/part.js:1818 templates/js/translated/part.js:3376 +#: templates/js/translated/pricing.js:381 +#: templates/js/translated/pricing.js:474 +#: templates/js/translated/pricing.js:522 +#: templates/js/translated/pricing.js:616 +#: templates/js/translated/purchase_order.js:737 +#: templates/js/translated/purchase_order.js:1906 +#: templates/js/translated/purchase_order.js:2125 +#: templates/js/translated/sales_order.js:1201 +#: templates/js/translated/sales_order.js:1520 +#: templates/js/translated/sales_order.js:1625 +#: templates/js/translated/sales_order.js:1715 +#: templates/js/translated/sales_order.js:1841 +#: templates/js/translated/stock.js:570 templates/js/translated/stock.js:708 +#: templates/js/translated/stock.js:879 templates/js/translated/stock.js:3106 +#: templates/js/translated/stock.js:3189 +msgid "Quantity" +msgstr "" + +#: build/models.py:1522 +msgid "Required quantity for build order" +msgstr "" + +#: build/models.py:1602 +msgid "Build item must specify a build output, as master part is marked as trackable" +msgstr "" + +#: build/models.py:1611 +#, python-brace-format +msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" +msgstr "" + +#: build/models.py:1628 order/models.py:2025 +msgid "Stock item is over-allocated" +msgstr "" + +#: build/models.py:1634 order/models.py:2028 +msgid "Allocation quantity must be greater than zero" +msgstr "" + +#: build/models.py:1640 +msgid "Quantity must be 1 for serialized stock" +msgstr "" + +#: build/models.py:1699 +msgid "Selected stock item does not match BOM line" +msgstr "" + +#: build/models.py:1774 build/serializers.py:939 order/serializers.py:1423 +#: order/serializers.py:1444 +#: report/templates/report/inventree_sales_order_shipment_report.html:29 +#: stock/models.py:382 stock/serializers.py:94 stock/serializers.py:794 +#: stock/serializers.py:1312 stock/serializers.py:1424 +#: stock/templates/stock/item_base.html:11 +#: stock/templates/stock/item_base.html:24 +#: stock/templates/stock/item_base.html:191 +#: templates/js/translated/build.js:1921 +#: templates/js/translated/sales_order.js:1200 +#: templates/js/translated/sales_order.js:1501 +#: templates/js/translated/sales_order.js:1506 +#: templates/js/translated/sales_order.js:1622 +#: templates/js/translated/sales_order.js:1709 +#: templates/js/translated/stock.js:683 templates/js/translated/stock.js:849 +#: templates/js/translated/stock.js:3062 +msgid "Stock Item" +msgstr "" + +#: build/models.py:1775 +msgid "Source stock item" +msgstr "" + +#: build/models.py:1788 +msgid "Stock quantity to allocate to build" +msgstr "" + +#: build/models.py:1796 +msgid "Install into" +msgstr "" + +#: build/models.py:1797 +msgid "Destination stock item" +msgstr "" + +#: build/serializers.py:108 +msgid "Build Level" +msgstr "" + +#: build/serializers.py:116 build/serializers.py:1235 build/serializers.py:1331 +#: part/admin.py:41 part/admin.py:408 part/models.py:4160 part/stocktake.py:219 +#: stock/admin.py:157 +msgid "Part Name" +msgstr "" + +#: build/serializers.py:128 +msgid "Project Code Label" +msgstr "" + +#: build/serializers.py:134 +msgid "Create Child Builds" +msgstr "" + +#: build/serializers.py:135 +msgid "Automatically generate child build orders" +msgstr "" + +#: build/serializers.py:219 build/serializers.py:968 +#: templates/js/translated/build.js:1045 templates/js/translated/build.js:1498 +msgid "Build Output" +msgstr "" + +#: build/serializers.py:231 +msgid "Build output does not match the parent build" +msgstr "" + +#: build/serializers.py:235 +msgid "Output part does not match BuildOrder part" +msgstr "" + +#: build/serializers.py:239 +msgid "This build output has already been completed" +msgstr "" + +#: build/serializers.py:250 +msgid "This build output is not fully allocated" +msgstr "" + +#: build/serializers.py:270 build/serializers.py:317 +msgid "Enter quantity for build output" +msgstr "" + +#: build/serializers.py:338 +msgid "Integer quantity required for trackable parts" +msgstr "" + +#: build/serializers.py:341 +msgid "Integer quantity required, as the bill of materials contains trackable parts" +msgstr "" + +#: build/serializers.py:356 order/serializers.py:763 order/serializers.py:1590 +#: stock/serializers.py:707 templates/js/translated/purchase_order.js:1137 +#: templates/js/translated/stock.js:373 templates/js/translated/stock.js:571 +msgid "Serial Numbers" +msgstr "" + +#: build/serializers.py:357 +msgid "Enter serial numbers for build outputs" +msgstr "" + +#: build/serializers.py:362 build/serializers.py:500 build/serializers.py:572 +#: order/serializers.py:739 order/serializers.py:880 order/serializers.py:1933 +#: part/serializers.py:1265 stock/serializers.py:103 stock/serializers.py:718 +#: stock/serializers.py:882 stock/serializers.py:1008 stock/serializers.py:1456 +#: stock/serializers.py:1712 stock/templates/stock/item_base.html:391 +#: templates/js/translated/barcode.js:578 +#: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1035 +#: templates/js/translated/build.js:1177 templates/js/translated/build.js:2551 +#: templates/js/translated/purchase_order.js:1193 +#: templates/js/translated/purchase_order.js:1303 +#: templates/js/translated/sales_order.js:1513 +#: templates/js/translated/sales_order.js:1636 +#: templates/js/translated/sales_order.js:1644 +#: templates/js/translated/sales_order.js:1723 +#: templates/js/translated/stock.js:684 templates/js/translated/stock.js:850 +#: templates/js/translated/stock.js:1067 templates/js/translated/stock.js:2287 +#: templates/js/translated/stock.js:2956 +msgid "Location" +msgstr "" + +#: build/serializers.py:363 +msgid "Stock location for build output" +msgstr "" + +#: build/serializers.py:377 +msgid "Auto Allocate Serial Numbers" +msgstr "" + +#: build/serializers.py:378 +msgid "Automatically allocate required items with matching serial numbers" +msgstr "" + +#: build/serializers.py:415 order/serializers.py:858 stock/api.py:1017 +#: stock/models.py:1632 +msgid "The following serial numbers already exist or are invalid" +msgstr "" + +#: build/serializers.py:462 build/serializers.py:524 build/serializers.py:613 +msgid "A list of build outputs must be provided" +msgstr "" + +#: build/serializers.py:501 +msgid "Stock location for scrapped outputs" +msgstr "" + +#: build/serializers.py:507 +msgid "Discard Allocations" +msgstr "" + +#: build/serializers.py:508 +msgid "Discard any stock allocations for scrapped outputs" +msgstr "" + +#: build/serializers.py:513 +msgid "Reason for scrapping build output(s)" +msgstr "" + +#: build/serializers.py:573 +msgid "Location for completed build outputs" +msgstr "" + +#: build/serializers.py:579 build/templates/build/build_base.html:160 +#: build/templates/build/detail.html:62 order/models.py:488 +#: order/models.py:1029 order/models.py:2198 order/serializers.py:771 +#: stock/admin.py:165 stock/serializers.py:581 stock/serializers.py:1059 +#: stock/serializers.py:1600 stock/templates/stock/item_base.html:424 +#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2366 +#: templates/js/translated/purchase_order.js:1354 +#: templates/js/translated/purchase_order.js:1776 +#: templates/js/translated/return_order.js:330 +#: templates/js/translated/sales_order.js:814 +#: templates/js/translated/stock.js:2262 templates/js/translated/stock.js:3080 +#: templates/js/translated/stock.js:3205 +msgid "Status" +msgstr "" + +#: build/serializers.py:585 +msgid "Accept Incomplete Allocation" +msgstr "" + +#: build/serializers.py:586 +msgid "Complete outputs if stock has not been fully allocated" +msgstr "" + +#: build/serializers.py:698 +msgid "Consume Allocated Stock" +msgstr "" + +#: build/serializers.py:699 +msgid "Consume any stock which has already been allocated to this build" +msgstr "" + +#: build/serializers.py:705 +msgid "Remove Incomplete Outputs" +msgstr "" + +#: build/serializers.py:706 +msgid "Delete any build outputs which have not been completed" +msgstr "" + +#: build/serializers.py:733 +msgid "Not permitted" +msgstr "" + +#: build/serializers.py:734 +msgid "Accept as consumed by this build order" +msgstr "" + +#: build/serializers.py:735 +msgid "Deallocate before completing this build order" +msgstr "" + +#: build/serializers.py:765 +msgid "Overallocated Stock" +msgstr "" + +#: build/serializers.py:767 +msgid "How do you want to handle extra stock items assigned to the build order" +msgstr "" + +#: build/serializers.py:777 +msgid "Some stock items have been overallocated" +msgstr "" + +#: build/serializers.py:782 +msgid "Accept Unallocated" +msgstr "" + +#: build/serializers.py:783 +msgid "Accept that stock items have not been fully allocated to this build order" +msgstr "" + +#: build/serializers.py:793 templates/js/translated/build.js:319 +msgid "Required stock has not been fully allocated" +msgstr "" + +#: build/serializers.py:798 order/serializers.py:430 order/serializers.py:1491 +msgid "Accept Incomplete" +msgstr "" + +#: build/serializers.py:799 +msgid "Accept that the required number of build outputs have not been completed" +msgstr "" + +#: build/serializers.py:809 templates/js/translated/build.js:323 +msgid "Required build quantity has not been completed" +msgstr "" + +#: build/serializers.py:818 +msgid "Build order has open child build orders" +msgstr "" + +#: build/serializers.py:821 +msgid "Build order must be in production state" +msgstr "" + +#: build/serializers.py:824 templates/js/translated/build.js:307 +msgid "Build order has incomplete outputs" +msgstr "" + +#: build/serializers.py:862 +msgid "Build Line" +msgstr "" + +#: build/serializers.py:872 +msgid "Build output" +msgstr "" + +#: build/serializers.py:880 +msgid "Build output must point to the same build" +msgstr "" + +#: build/serializers.py:916 +msgid "Build Line Item" +msgstr "" + +#: build/serializers.py:930 +msgid "bom_item.part must point to the same part as the build order" +msgstr "" + +#: build/serializers.py:945 stock/serializers.py:1325 +msgid "Item must be in stock" +msgstr "" + +#: build/serializers.py:993 order/serializers.py:1477 +#, python-brace-format +msgid "Available quantity ({q}) exceeded" +msgstr "" + +#: build/serializers.py:999 +msgid "Build output must be specified for allocation of tracked parts" +msgstr "" + +#: build/serializers.py:1006 +msgid "Build output cannot be specified for allocation of untracked parts" +msgstr "" + +#: build/serializers.py:1030 order/serializers.py:1750 +msgid "Allocation items must be provided" +msgstr "" + +#: build/serializers.py:1093 +msgid "Stock location where parts are to be sourced (leave blank to take from any location)" +msgstr "" + +#: build/serializers.py:1101 +msgid "Exclude Location" +msgstr "" + +#: build/serializers.py:1102 +msgid "Exclude stock items from this selected location" +msgstr "" + +#: build/serializers.py:1107 +msgid "Interchangeable Stock" +msgstr "" + +#: build/serializers.py:1108 +msgid "Stock items in multiple locations can be used interchangeably" +msgstr "" + +#: build/serializers.py:1113 +msgid "Substitute Stock" +msgstr "" + +#: build/serializers.py:1114 +msgid "Allow allocation of substitute parts" +msgstr "" + +#: build/serializers.py:1119 +msgid "Optional Items" +msgstr "" + +#: build/serializers.py:1120 +msgid "Allocate optional BOM items to build order" +msgstr "" + +#: build/serializers.py:1143 +msgid "Failed to start auto-allocation task" +msgstr "" + +#: build/serializers.py:1226 stock/serializers.py:585 +msgid "Supplier Part Number" +msgstr "" + +#: build/serializers.py:1227 company/models.py:503 stock/serializers.py:591 +msgid "Manufacturer Part Number" +msgstr "" + +#: build/serializers.py:1228 stock/admin.py:53 stock/admin.py:176 +#: stock/serializers.py:467 +msgid "Location Name" +msgstr "" + +#: build/serializers.py:1229 build/serializers.py:1327 +msgid "Build Reference" +msgstr "" + +#: build/serializers.py:1230 +msgid "BOM Reference" +msgstr "" + +#: build/serializers.py:1231 company/models.py:849 +#: company/templates/company/supplier_part.html:161 order/serializers.py:775 +#: stock/admin.py:229 stock/models.py:895 stock/serializers.py:1610 +#: stock/templates/stock/item_base.html:237 +#: templates/js/translated/company.js:1647 +#: templates/js/translated/purchase_order.js:1152 +#: templates/js/translated/purchase_order.js:1315 +#: templates/js/translated/stock.js:1214 templates/js/translated/stock.js:1246 +#: templates/js/translated/stock.js:2510 +msgid "Packaging" +msgstr "" + +#: build/serializers.py:1234 part/admin.py:39 part/admin.py:398 +#: part/models.py:4159 part/stocktake.py:218 stock/admin.py:153 +msgid "Part ID" +msgstr "" + +#: build/serializers.py:1236 build/serializers.py:1332 part/admin.py:402 +#: part/models.py:4161 +msgid "Part IPN" +msgstr "" + +#: build/serializers.py:1237 build/serializers.py:1334 part/admin.py:45 +#: part/stocktake.py:220 +msgid "Part Description" +msgstr "" + +#: build/serializers.py:1240 +msgid "BOM Part ID" +msgstr "" + +#: build/serializers.py:1241 +msgid "BOM Part Name" +msgstr "" + +#: build/serializers.py:1244 +#: report/templates/report/inventree_return_order_report.html:25 +#: report/templates/report/inventree_sales_order_shipment_report.html:45 +#: report/templates/report/inventree_test_report.html:88 stock/models.py:922 +#: stock/serializers.py:152 stock/templates/stock/item_base.html:308 +#: templates/js/translated/build.js:523 templates/js/translated/build.js:1543 +#: templates/js/translated/build.js:2534 +#: templates/js/translated/model_renderers.js:234 +#: templates/js/translated/return_order.js:539 +#: templates/js/translated/return_order.js:722 +#: templates/js/translated/sales_order.js:1628 +#: templates/js/translated/sales_order.js:1713 +#: templates/js/translated/stock.js:602 +msgid "Serial Number" +msgstr "" + +#: build/serializers.py:1257 stock/serializers.py:620 +#: templates/js/translated/build.js:1020 templates/js/translated/build.js:1167 +#: templates/js/translated/build.js:2523 +msgid "Allocated Quantity" +msgstr "" + +#: build/serializers.py:1258 stock/templates/stock/item_base.html:337 +msgid "Available Quantity" +msgstr "" + +#: build/serializers.py:1335 +msgid "Part Category ID" +msgstr "" + +#: build/serializers.py:1336 +msgid "Part Category Name" +msgstr "" + +#: build/serializers.py:1345 common/models.py:1582 part/admin.py:113 +#: part/models.py:1227 templates/js/translated/build.js:2738 +#: templates/js/translated/table_filters.js:150 +#: templates/js/translated/table_filters.js:230 +#: templates/js/translated/table_filters.js:783 +msgid "Trackable" +msgstr "" + +#: build/serializers.py:1346 +msgid "Inherited" +msgstr "" + +#: build/serializers.py:1347 part/models.py:4370 +#: part/templates/part/upload_bom.html:56 templates/js/translated/bom.js:1046 +#: templates/js/translated/build.js:2720 +msgid "Allow Variants" +msgstr "" + +#: build/serializers.py:1351 part/models.py:4168 part/models.py:4646 +#: stock/api.py:794 +msgid "BOM Item" +msgstr "" + +#: build/serializers.py:1370 build/templates/build/detail.html:236 +#: build/templates/build/sidebar.html:16 templates/js/translated/index.js:130 +msgid "Allocated Stock" +msgstr "" + +#: build/serializers.py:1375 order/serializers.py:1209 part/admin.py:132 +#: part/bom.py:186 part/serializers.py:951 part/serializers.py:1660 +#: part/templates/part/part_base.html:211 templates/js/translated/bom.js:1208 +#: templates/js/translated/build.js:2822 templates/js/translated/part.js:712 +#: templates/js/translated/part.js:2155 +#: templates/js/translated/table_filters.js:177 +msgid "On Order" +msgstr "" + +#: build/serializers.py:1380 order/serializers.py:1210 part/serializers.py:1662 +#: templates/js/translated/build.js:2826 +#: templates/js/translated/table_filters.js:367 +msgid "In Production" +msgstr "" + +#: build/serializers.py:1384 part/serializers.py:958 +msgid "External Stock" +msgstr "" + +#: build/serializers.py:1385 part/bom.py:185 part/serializers.py:1687 +#: part/templates/part/part_base.html:193 +#: templates/js/translated/sales_order.js:1910 +msgid "Available Stock" +msgstr "" + +#: build/serializers.py:1386 +msgid "Available Substitute Stock" +msgstr "" + +#: build/serializers.py:1387 +msgid "Available Variant Stock" +msgstr "" + +#: build/status_codes.py:11 generic/states/tests.py:21 +#: generic/states/tests.py:131 order/status_codes.py:12 +#: order/status_codes.py:44 order/status_codes.py:76 order/status_codes.py:102 +#: templates/js/translated/table_filters.js:601 +msgid "Pending" +msgstr "" + +#: build/status_codes.py:12 +msgid "Production" +msgstr "" + +#: build/status_codes.py:13 order/status_codes.py:14 order/status_codes.py:51 +#: order/status_codes.py:81 +msgid "On Hold" +msgstr "" + +#: build/status_codes.py:14 order/status_codes.py:16 order/status_codes.py:53 +#: order/status_codes.py:84 +msgid "Cancelled" +msgstr "" + +#: build/status_codes.py:15 generic/states/tests.py:23 importer/models.py:518 +#: importer/status_codes.py:27 order/status_codes.py:15 +#: order/status_codes.py:52 order/status_codes.py:83 +#: order/templates/order/order_base.html:172 +#: order/templates/order/sales_order_base.html:169 report/models.py:451 +msgid "Complete" +msgstr "" + +#: build/tasks.py:184 +msgid "Stock required for build order" +msgstr "" + +#: build/tasks.py:260 +msgid "Overdue Build Order" +msgstr "" + +#: build/tasks.py:265 +#, python-brace-format +msgid "Build order {bo} is now overdue" +msgstr "" + +#: build/templates/build/build_base.html:19 +msgid "Part thumbnail" +msgstr "" + +#: build/templates/build/build_base.html:39 +#: company/templates/company/supplier_part.html:36 +#: order/templates/order/order_base.html:30 +#: order/templates/order/return_order_base.html:39 +#: order/templates/order/sales_order_base.html:39 +#: part/templates/part/part_base.html:42 +#: stock/templates/stock/item_base.html:41 +#: stock/templates/stock/location.html:53 +#: templates/js/translated/filters.js:338 +msgid "Barcode actions" +msgstr "" + +#: build/templates/build/build_base.html:43 +#: company/templates/company/supplier_part.html:40 +#: order/templates/order/order_base.html:34 +#: order/templates/order/return_order_base.html:43 +#: order/templates/order/sales_order_base.html:43 +#: part/templates/part/part_base.html:45 +#: stock/templates/stock/item_base.html:45 +#: stock/templates/stock/location.html:55 templates/qr_button.html:1 +msgid "Show QR Code" +msgstr "" + +#: build/templates/build/build_base.html:46 +#: company/templates/company/supplier_part.html:42 +#: order/templates/order/order_base.html:37 +#: order/templates/order/return_order_base.html:46 +#: order/templates/order/sales_order_base.html:46 +#: part/templates/part/part_base.html:48 +#: stock/templates/stock/item_base.html:48 +#: stock/templates/stock/location.html:57 +#: templates/js/translated/barcode.js:527 +#: templates/js/translated/barcode.js:532 +msgid "Unlink Barcode" +msgstr "" + +#: build/templates/build/build_base.html:48 +#: company/templates/company/supplier_part.html:44 +#: order/templates/order/order_base.html:39 +#: order/templates/order/return_order_base.html:48 +#: order/templates/order/sales_order_base.html:48 +#: part/templates/part/part_base.html:50 +#: stock/templates/stock/item_base.html:50 +#: stock/templates/stock/location.html:59 +msgid "Link Barcode" +msgstr "" + +#: build/templates/build/build_base.html:57 +#: order/templates/order/order_base.html:47 +#: order/templates/order/return_order_base.html:56 +#: order/templates/order/sales_order_base.html:56 +msgid "Print actions" +msgstr "" + +#: build/templates/build/build_base.html:61 +msgid "Print build order report" +msgstr "" + +#: build/templates/build/build_base.html:68 +msgid "Build actions" +msgstr "" + +#: build/templates/build/build_base.html:72 +msgid "Edit Build" +msgstr "" + +#: build/templates/build/build_base.html:74 +msgid "Duplicate Build" +msgstr "" + +#: build/templates/build/build_base.html:77 +msgid "Hold Build" +msgstr "" + +#: build/templates/build/build_base.html:80 +msgid "Cancel Build" +msgstr "" + +#: build/templates/build/build_base.html:83 +msgid "Delete Build" +msgstr "" + +#: build/templates/build/build_base.html:88 +#: build/templates/build/build_base.html:89 +msgid "Issue Build" +msgstr "" + +#: build/templates/build/build_base.html:92 +#: build/templates/build/build_base.html:93 +msgid "Complete Build" +msgstr "" + +#: build/templates/build/build_base.html:116 +msgid "Build Description" +msgstr "" + +#: build/templates/build/build_base.html:126 +msgid "No build outputs have been created for this build order" +msgstr "" + +#: build/templates/build/build_base.html:133 +msgid "Build Order is ready to mark as completed" +msgstr "" + +#: build/templates/build/build_base.html:138 +msgid "Build Order cannot be completed as outstanding outputs remain" +msgstr "" + +#: build/templates/build/build_base.html:143 +msgid "Required build quantity has not yet been completed" +msgstr "" + +#: build/templates/build/build_base.html:148 +msgid "Stock has not been fully allocated to this Build Order" +msgstr "" + +#: build/templates/build/build_base.html:169 +#: build/templates/build/detail.html:138 order/models.py:315 +#: order/models.py:1408 order/serializers.py:254 +#: order/templates/order/order_base.html:200 +#: order/templates/order/return_order_base.html:168 +#: order/templates/order/sales_order_base.html:200 +#: report/templates/report/inventree_build_order_report.html:125 +#: templates/js/translated/build.js:2414 templates/js/translated/part.js:1837 +#: templates/js/translated/purchase_order.js:1793 +#: templates/js/translated/purchase_order.js:2201 +#: templates/js/translated/return_order.js:346 +#: templates/js/translated/return_order.js:749 +#: templates/js/translated/sales_order.js:830 +#: templates/js/translated/sales_order.js:1884 +msgid "Target Date" +msgstr "" + +#: build/templates/build/build_base.html:174 +#, python-format +msgid "This build was due on %(target)s" +msgstr "" + +#: build/templates/build/build_base.html:174 +#: build/templates/build/build_base.html:231 +#: order/templates/order/order_base.html:128 +#: order/templates/order/return_order_base.html:121 +#: order/templates/order/sales_order_base.html:130 +#: templates/js/translated/table_filters.js:97 +#: templates/js/translated/table_filters.js:545 +#: templates/js/translated/table_filters.js:629 +#: templates/js/translated/table_filters.js:670 +msgid "Overdue" +msgstr "" + +#: build/templates/build/build_base.html:186 +#: build/templates/build/detail.html:67 build/templates/build/sidebar.html:13 +msgid "Completed Outputs" +msgstr "" + +#: build/templates/build/build_base.html:199 +#: build/templates/build/detail.html:101 order/api.py:1528 order/models.py:914 +#: order/models.py:1666 order/models.py:1794 order/models.py:1957 +#: order/templates/order/sales_order_base.html:10 +#: order/templates/order/sales_order_base.html:29 +#: report/templates/report/inventree_build_order_report.html:135 +#: report/templates/report/inventree_sales_order_report.html:14 +#: report/templates/report/inventree_sales_order_shipment_report.html:15 +#: stock/templates/stock/item_base.html:366 +#: templates/email/overdue_sales_order.html:15 +#: templates/js/translated/pricing.js:927 +#: templates/js/translated/sales_order.js:764 +#: templates/js/translated/sales_order.js:1001 +#: templates/js/translated/stock.js:3009 +msgid "Sales Order" +msgstr "" + +#: build/templates/build/build_base.html:220 +#: build/templates/build/detail.html:94 templates/js/translated/build.js:2331 +msgid "Priority" +msgstr "" + +#: build/templates/build/build_base.html:268 +msgid "Issue Build Order" +msgstr "" + +#: build/templates/build/build_base.html:272 +msgid "Issue this Build Order?" +msgstr "" + +#: build/templates/build/build_base.html:303 +msgid "Delete Build Order" +msgstr "" + +#: build/templates/build/build_base.html:313 +msgid "Build Order QR Code" +msgstr "" + +#: build/templates/build/build_base.html:325 +msgid "Link Barcode to Build Order" +msgstr "" + +#: build/templates/build/detail.html:15 +msgid "Build Details" +msgstr "" + +#: build/templates/build/detail.html:38 +msgid "Stock Source" +msgstr "" + +#: build/templates/build/detail.html:43 +msgid "Stock can be taken from any available location." +msgstr "" + +#: build/templates/build/detail.html:49 order/models.py:548 +#: order/models.py:1548 order/templates/order/order_base.html:135 +#: templates/js/translated/purchase_order.js:2243 +msgid "Destination" +msgstr "" + +#: build/templates/build/detail.html:56 +msgid "Destination location not specified" +msgstr "" + +#: build/templates/build/detail.html:73 +msgid "Allocated Parts" +msgstr "" + +#: build/templates/build/detail.html:80 +#: report/templates/report/inventree_sales_order_shipment_report.html:47 +#: stock/admin.py:163 stock/templates/stock/item_base.html:159 +#: templates/js/translated/build.js:1556 +#: templates/js/translated/model_renderers.js:245 +#: templates/js/translated/purchase_order.js:1309 +#: templates/js/translated/stock.js:1139 templates/js/translated/stock.js:1240 +#: templates/js/translated/stock.js:2276 templates/js/translated/stock.js:3212 +#: templates/js/translated/table_filters.js:320 +#: templates/js/translated/table_filters.js:411 +msgid "Batch" +msgstr "" + +#: build/templates/build/detail.html:133 +#: order/templates/order/order_base.html:187 +#: order/templates/order/return_order_base.html:155 +#: order/templates/order/sales_order_base.html:194 +#: templates/js/translated/build.js:2374 +msgid "Created" +msgstr "" + +#: build/templates/build/detail.html:144 +msgid "No target date set" +msgstr "" + +#: build/templates/build/detail.html:149 order/api.py:794 +#: order/templates/order/sales_order_base.html:210 +#: templates/js/translated/table_filters.js:692 +msgid "Completed" +msgstr "" + +#: build/templates/build/detail.html:153 +msgid "Build not complete" +msgstr "" + +#: build/templates/build/detail.html:164 build/templates/build/sidebar.html:21 +msgid "Child Build Orders" +msgstr "" + +#: build/templates/build/detail.html:177 +msgid "Build Order Line Items" +msgstr "" + +#: build/templates/build/detail.html:181 +msgid "Deallocate stock" +msgstr "" + +#: build/templates/build/detail.html:182 +msgid "Deallocate Stock" +msgstr "" + +#: build/templates/build/detail.html:184 +msgid "Automatically allocate stock to build" +msgstr "" + +#: build/templates/build/detail.html:185 +msgid "Auto Allocate" +msgstr "" + +#: build/templates/build/detail.html:187 +msgid "Manually allocate stock to build" +msgstr "" + +#: build/templates/build/detail.html:188 +msgid "Allocate Stock" +msgstr "" + +#: build/templates/build/detail.html:191 +msgid "Order required parts" +msgstr "" + +#: build/templates/build/detail.html:192 +#: templates/js/translated/purchase_order.js:778 +msgid "Order Parts" +msgstr "" + +#: build/templates/build/detail.html:205 +msgid "Available stock has been filtered based on specified source location for this build order" +msgstr "" + +#: build/templates/build/detail.html:215 +msgid "Incomplete Build Outputs" +msgstr "" + +#: build/templates/build/detail.html:219 +msgid "Create new build output" +msgstr "" + +#: build/templates/build/detail.html:220 +msgid "New Build Output" +msgstr "" + +#: build/templates/build/detail.html:249 build/templates/build/sidebar.html:19 +msgid "Consumed Stock" +msgstr "" + +#: build/templates/build/detail.html:261 +msgid "Completed Build Outputs" +msgstr "" + +#: build/templates/build/detail.html:273 +msgid "Build test statistics" +msgstr "" + +#: build/templates/build/detail.html:288 build/templates/build/sidebar.html:27 +#: company/templates/company/detail.html:229 +#: company/templates/company/manufacturer_part.html:141 +#: company/templates/company/manufacturer_part_sidebar.html:9 +#: company/templates/company/sidebar.html:39 +#: order/templates/order/po_sidebar.html:9 +#: order/templates/order/purchase_order_detail.html:84 +#: order/templates/order/return_order_detail.html:70 +#: order/templates/order/return_order_sidebar.html:7 +#: order/templates/order/sales_order_detail.html:124 +#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:233 +#: part/templates/part/part_sidebar.html:63 stock/templates/stock/item.html:110 +#: stock/templates/stock/stock_sidebar.html:23 +msgid "Attachments" +msgstr "" + +#: build/templates/build/detail.html:303 +msgid "Build Notes" +msgstr "" + +#: build/templates/build/detail.html:458 +msgid "Allocation Complete" +msgstr "" + +#: build/templates/build/detail.html:459 +msgid "All lines have been fully allocated" +msgstr "" + +#: build/templates/build/index.html:18 part/templates/part/detail.html:335 +msgid "New Build Order" +msgstr "" + +#: build/templates/build/sidebar.html:5 +msgid "Build Order Details" +msgstr "" + +#: build/templates/build/sidebar.html:8 order/serializers.py:113 +#: order/templates/order/po_sidebar.html:5 +#: order/templates/order/return_order_detail.html:18 +#: order/templates/order/so_sidebar.html:5 +#: report/templates/report/inventree_purchase_order_report.html:22 +#: report/templates/report/inventree_return_order_report.html:19 +#: report/templates/report/inventree_sales_order_report.html:22 +msgid "Line Items" +msgstr "" + +#: build/templates/build/sidebar.html:10 +msgid "Incomplete Outputs" +msgstr "" + +#: build/templates/build/sidebar.html:24 +#: part/templates/part/part_sidebar.html:56 +msgid "Test Statistics" +msgstr "" + +#: common/api.py:725 +msgid "Is Link" +msgstr "" + +#: common/api.py:733 +msgid "Is File" +msgstr "" + +#: common/api.py:776 +msgid "User does not have permission to delete these attachments" +msgstr "" + +#: common/api.py:793 +msgid "User does not have permission to delete this attachment" +msgstr "" + +#: common/currency.py:134 +msgid "Invalid currency code" +msgstr "" + +#: common/currency.py:136 +msgid "Duplicate currency code" +msgstr "" + +#: common/currency.py:141 +msgid "No valid currency codes provided" +msgstr "" + +#: common/currency.py:158 +msgid "No plugin" +msgstr "" + +#: common/files.py:65 +msgid "Error reading file (invalid encoding)" +msgstr "" + +#: common/files.py:70 +msgid "Error reading file (invalid format)" +msgstr "" + +#: common/files.py:72 +msgid "Error reading file (incorrect dimension)" +msgstr "" + +#: common/files.py:74 +msgid "Error reading file (data could be corrupted)" +msgstr "" + +#: common/forms.py:12 common/forms.py:25 +msgid "File" +msgstr "" + +#: common/forms.py:12 common/forms.py:26 +msgid "Select file to upload" +msgstr "" + +#: common/models.py:89 +msgid "Updated" +msgstr "" + +#: common/models.py:90 +msgid "Timestamp of last update" +msgstr "" + +#: common/models.py:123 +msgid "Site URL is locked by configuration" +msgstr "" + +#: common/models.py:153 +msgid "Unique project code" +msgstr "" + +#: common/models.py:160 +msgid "Project description" +msgstr "" + +#: common/models.py:169 +msgid "User or group responsible for this project" +msgstr "" + +#: common/models.py:783 common/models.py:2236 common/models.py:2613 +msgid "Settings key" +msgstr "" + +#: common/models.py:787 +msgid "Settings value" +msgstr "" + +#: common/models.py:842 +msgid "Chosen value is not a valid option" +msgstr "" + +#: common/models.py:858 +msgid "Value must be a boolean value" +msgstr "" + +#: common/models.py:866 +msgid "Value must be an integer value" +msgstr "" + +#: common/models.py:874 +msgid "Value must be a valid number" +msgstr "" + +#: common/models.py:899 +msgid "Value does not pass validation checks" +msgstr "" + +#: common/models.py:921 +msgid "Key string must be unique" +msgstr "" + +#: common/models.py:1189 +msgid "No group" +msgstr "" + +#: common/models.py:1288 +msgid "Restart required" +msgstr "" + +#: common/models.py:1290 +msgid "A setting has been changed which requires a server restart" +msgstr "" + +#: common/models.py:1297 +msgid "Pending migrations" +msgstr "" + +#: common/models.py:1298 +msgid "Number of pending database migrations" +msgstr "" + +#: common/models.py:1303 +msgid "Server Instance Name" +msgstr "" + +#: common/models.py:1305 +msgid "String descriptor for the server instance" +msgstr "" + +#: common/models.py:1309 +msgid "Use instance name" +msgstr "" + +#: common/models.py:1310 +msgid "Use the instance name in the title-bar" +msgstr "" + +#: common/models.py:1315 +msgid "Restrict showing `about`" +msgstr "" + +#: common/models.py:1316 +msgid "Show the `about` modal only to superusers" +msgstr "" + +#: common/models.py:1321 company/models.py:108 company/models.py:109 +msgid "Company name" +msgstr "" + +#: common/models.py:1322 +msgid "Internal company name" +msgstr "" + +#: common/models.py:1326 +msgid "Base URL" +msgstr "" + +#: common/models.py:1327 +msgid "Base URL for server instance" +msgstr "" + +#: common/models.py:1333 +msgid "Default Currency" +msgstr "" + +#: common/models.py:1334 +msgid "Select base currency for pricing calculations" +msgstr "" + +#: common/models.py:1340 +msgid "Supported Currencies" +msgstr "" + +#: common/models.py:1341 +msgid "List of supported currency codes" +msgstr "" + +#: common/models.py:1347 +msgid "Currency Update Interval" +msgstr "" + +#: common/models.py:1349 +msgid "How often to update exchange rates (set to zero to disable)" +msgstr "" + +#: common/models.py:1352 common/models.py:1408 common/models.py:1421 +#: common/models.py:1429 common/models.py:1438 common/models.py:1447 +#: common/models.py:1696 common/models.py:1718 common/models.py:1819 +#: common/models.py:2208 +msgid "days" +msgstr "" + +#: common/models.py:1356 +msgid "Currency Update Plugin" +msgstr "" + +#: common/models.py:1357 +msgid "Currency update plugin to use" +msgstr "" + +#: common/models.py:1362 +msgid "Download from URL" +msgstr "" + +#: common/models.py:1364 +msgid "Allow download of remote images and files from external URL" +msgstr "" + +#: common/models.py:1370 +msgid "Download Size Limit" +msgstr "" + +#: common/models.py:1371 +msgid "Maximum allowable download size for remote image" +msgstr "" + +#: common/models.py:1377 +msgid "User-agent used to download from URL" +msgstr "" + +#: common/models.py:1379 +msgid "Allow to override the user-agent used to download images and files from external URL (leave blank for the default)" +msgstr "" + +#: common/models.py:1384 +msgid "Strict URL Validation" +msgstr "" + +#: common/models.py:1385 +msgid "Require schema specification when validating URLs" +msgstr "" + +#: common/models.py:1390 +msgid "Require confirm" +msgstr "" + +#: common/models.py:1391 +msgid "Require explicit user confirmation for certain action." +msgstr "" + +#: common/models.py:1396 +msgid "Tree Depth" +msgstr "" + +#: common/models.py:1398 +msgid "Default tree depth for treeview. Deeper levels can be lazy loaded as they are needed." +msgstr "" + +#: common/models.py:1404 +msgid "Update Check Interval" +msgstr "" + +#: common/models.py:1405 +msgid "How often to check for updates (set to zero to disable)" +msgstr "" + +#: common/models.py:1411 +msgid "Automatic Backup" +msgstr "" + +#: common/models.py:1412 +msgid "Enable automatic backup of database and media files" +msgstr "" + +#: common/models.py:1417 +msgid "Auto Backup Interval" +msgstr "" + +#: common/models.py:1418 +msgid "Specify number of days between automated backup events" +msgstr "" + +#: common/models.py:1424 +msgid "Task Deletion Interval" +msgstr "" + +#: common/models.py:1426 +msgid "Background task results will be deleted after specified number of days" +msgstr "" + +#: common/models.py:1433 +msgid "Error Log Deletion Interval" +msgstr "" + +#: common/models.py:1435 +msgid "Error logs will be deleted after specified number of days" +msgstr "" + +#: common/models.py:1442 +msgid "Notification Deletion Interval" +msgstr "" + +#: common/models.py:1444 +msgid "User notifications will be deleted after specified number of days" +msgstr "" + +#: common/models.py:1451 templates/InvenTree/settings/sidebar.html:31 +msgid "Barcode Support" +msgstr "" + +#: common/models.py:1452 +msgid "Enable barcode scanner support in the web interface" +msgstr "" + +#: common/models.py:1457 +msgid "Store Barcode Results" +msgstr "" + +#: common/models.py:1458 +msgid "Store barcode scan results in the database" +msgstr "" + +#: common/models.py:1463 +msgid "Barcode Scans Maximum Count" +msgstr "" + +#: common/models.py:1464 +msgid "Maximum number of barcode scan results to store" +msgstr "" + +#: common/models.py:1469 +msgid "Barcode Input Delay" +msgstr "" + +#: common/models.py:1470 +msgid "Barcode input processing delay time" +msgstr "" + +#: common/models.py:1476 +msgid "Barcode Webcam Support" +msgstr "" + +#: common/models.py:1477 +msgid "Allow barcode scanning via webcam in browser" +msgstr "" + +#: common/models.py:1482 +msgid "Barcode Show Data" +msgstr "" + +#: common/models.py:1483 +msgid "Display barcode data in browser as text" +msgstr "" + +#: common/models.py:1488 +msgid "Barcode Generation Plugin" +msgstr "" + +#: common/models.py:1489 +msgid "Plugin to use for internal barcode data generation" +msgstr "" + +#: common/models.py:1494 +msgid "Part Revisions" +msgstr "" + +#: common/models.py:1495 +msgid "Enable revision field for Part" +msgstr "" + +#: common/models.py:1500 +msgid "Assembly Revision Only" +msgstr "" + +#: common/models.py:1501 +msgid "Only allow revisions for assembly parts" +msgstr "" + +#: common/models.py:1506 +msgid "Allow Deletion from Assembly" +msgstr "" + +#: common/models.py:1507 +msgid "Allow deletion of parts which are used in an assembly" +msgstr "" + +#: common/models.py:1512 +msgid "IPN Regex" +msgstr "" + +#: common/models.py:1513 +msgid "Regular expression pattern for matching Part IPN" +msgstr "" + +#: common/models.py:1516 +msgid "Allow Duplicate IPN" +msgstr "" + +#: common/models.py:1517 +msgid "Allow multiple parts to share the same IPN" +msgstr "" + +#: common/models.py:1522 +msgid "Allow Editing IPN" +msgstr "" + +#: common/models.py:1523 +msgid "Allow changing the IPN value while editing a part" +msgstr "" + +#: common/models.py:1528 +msgid "Copy Part BOM Data" +msgstr "" + +#: common/models.py:1529 +msgid "Copy BOM data by default when duplicating a part" +msgstr "" + +#: common/models.py:1534 +msgid "Copy Part Parameter Data" +msgstr "" + +#: common/models.py:1535 +msgid "Copy parameter data by default when duplicating a part" +msgstr "" + +#: common/models.py:1540 +msgid "Copy Part Test Data" +msgstr "" + +#: common/models.py:1541 +msgid "Copy test data by default when duplicating a part" +msgstr "" + +#: common/models.py:1546 +msgid "Copy Category Parameter Templates" +msgstr "" + +#: common/models.py:1547 +msgid "Copy category parameter templates when creating a part" +msgstr "" + +#: common/models.py:1552 part/admin.py:108 part/models.py:4003 +#: report/models.py:301 report/models.py:368 report/serializers.py:91 +#: report/serializers.py:132 stock/serializers.py:233 +#: templates/js/translated/table_filters.js:138 +#: templates/js/translated/table_filters.js:775 +msgid "Template" +msgstr "" + +#: common/models.py:1553 +msgid "Parts are templates by default" +msgstr "" + +#: common/models.py:1559 +msgid "Parts can be assembled from other components by default" +msgstr "" + +#: common/models.py:1564 part/admin.py:95 part/models.py:1221 +#: part/serializers.py:1654 templates/js/translated/table_filters.js:737 +msgid "Component" +msgstr "" + +#: common/models.py:1565 +msgid "Parts can be used as sub-components by default" +msgstr "" + +#: common/models.py:1570 part/admin.py:100 part/models.py:1239 +msgid "Purchaseable" +msgstr "" + +#: common/models.py:1571 +msgid "Parts are purchaseable by default" +msgstr "" + +#: common/models.py:1576 part/admin.py:104 part/models.py:1245 +#: templates/js/translated/table_filters.js:763 +msgid "Salable" +msgstr "" + +#: common/models.py:1577 +msgid "Parts are salable by default" +msgstr "" + +#: common/models.py:1583 +msgid "Parts are trackable by default" +msgstr "" + +#: common/models.py:1588 part/admin.py:117 part/models.py:1261 +#: part/templates/part/part_base.html:155 +#: templates/js/translated/table_filters.js:142 +#: templates/js/translated/table_filters.js:787 +msgid "Virtual" +msgstr "" + +#: common/models.py:1589 +msgid "Parts are virtual by default" +msgstr "" + +#: common/models.py:1594 +msgid "Show Import in Views" +msgstr "" + +#: common/models.py:1595 +msgid "Display the import wizard in some part views" +msgstr "" + +#: common/models.py:1600 +msgid "Show related parts" +msgstr "" + +#: common/models.py:1601 +msgid "Display related parts for a part" +msgstr "" + +#: common/models.py:1606 +msgid "Initial Stock Data" +msgstr "" + +#: common/models.py:1607 +msgid "Allow creation of initial stock when adding a new part" +msgstr "" + +#: common/models.py:1612 templates/js/translated/part.js:108 +msgid "Initial Supplier Data" +msgstr "" + +#: common/models.py:1614 +msgid "Allow creation of initial supplier data when adding a new part" +msgstr "" + +#: common/models.py:1620 +msgid "Part Name Display Format" +msgstr "" + +#: common/models.py:1621 +msgid "Format to display the part name" +msgstr "" + +#: common/models.py:1627 +msgid "Part Category Default Icon" +msgstr "" + +#: common/models.py:1628 +msgid "Part category default icon (empty means no icon)" +msgstr "" + +#: common/models.py:1633 +msgid "Enforce Parameter Units" +msgstr "" + +#: common/models.py:1635 +msgid "If units are provided, parameter values must match the specified units" +msgstr "" + +#: common/models.py:1641 +msgid "Minimum Pricing Decimal Places" +msgstr "" + +#: common/models.py:1643 +msgid "Minimum number of decimal places to display when rendering pricing data" +msgstr "" + +#: common/models.py:1654 +msgid "Maximum Pricing Decimal Places" +msgstr "" + +#: common/models.py:1656 +msgid "Maximum number of decimal places to display when rendering pricing data" +msgstr "" + +#: common/models.py:1667 +msgid "Use Supplier Pricing" +msgstr "" + +#: common/models.py:1669 +msgid "Include supplier price breaks in overall pricing calculations" +msgstr "" + +#: common/models.py:1675 +msgid "Purchase History Override" +msgstr "" + +#: common/models.py:1677 +msgid "Historical purchase order pricing overrides supplier price breaks" +msgstr "" + +#: common/models.py:1683 +msgid "Use Stock Item Pricing" +msgstr "" + +#: common/models.py:1685 +msgid "Use pricing from manually entered stock data for pricing calculations" +msgstr "" + +#: common/models.py:1691 +msgid "Stock Item Pricing Age" +msgstr "" + +#: common/models.py:1693 +msgid "Exclude stock items older than this number of days from pricing calculations" +msgstr "" + +#: common/models.py:1700 +msgid "Use Variant Pricing" +msgstr "" + +#: common/models.py:1701 +msgid "Include variant pricing in overall pricing calculations" +msgstr "" + +#: common/models.py:1706 +msgid "Active Variants Only" +msgstr "" + +#: common/models.py:1708 +msgid "Only use active variant parts for calculating variant pricing" +msgstr "" + +#: common/models.py:1714 +msgid "Pricing Rebuild Interval" +msgstr "" + +#: common/models.py:1716 +msgid "Number of days before part pricing is automatically updated" +msgstr "" + +#: common/models.py:1723 +msgid "Internal Prices" +msgstr "" + +#: common/models.py:1724 +msgid "Enable internal prices for parts" +msgstr "" + +#: common/models.py:1729 +msgid "Internal Price Override" +msgstr "" + +#: common/models.py:1731 +msgid "If available, internal prices override price range calculations" +msgstr "" + +#: common/models.py:1737 +msgid "Enable label printing" +msgstr "" + +#: common/models.py:1738 +msgid "Enable label printing from the web interface" +msgstr "" + +#: common/models.py:1743 +msgid "Label Image DPI" +msgstr "" + +#: common/models.py:1745 +msgid "DPI resolution when generating image files to supply to label printing plugins" +msgstr "" + +#: common/models.py:1751 +msgid "Enable Reports" +msgstr "" + +#: common/models.py:1752 +msgid "Enable generation of reports" +msgstr "" + +#: common/models.py:1757 templates/stats.html:25 +msgid "Debug Mode" +msgstr "" + +#: common/models.py:1758 +msgid "Generate reports in debug mode (HTML output)" +msgstr "" + +#: common/models.py:1763 +msgid "Log Report Errors" +msgstr "" + +#: common/models.py:1764 +msgid "Log errors which occur when generating reports" +msgstr "" + +#: common/models.py:1769 plugin/builtin/labels/label_sheet.py:28 +#: report/models.py:309 +msgid "Page Size" +msgstr "" + +#: common/models.py:1770 +msgid "Default page size for PDF reports" +msgstr "" + +#: common/models.py:1775 +msgid "Globally Unique Serials" +msgstr "" + +#: common/models.py:1776 +msgid "Serial numbers for stock items must be globally unique" +msgstr "" + +#: common/models.py:1781 +msgid "Autofill Serial Numbers" +msgstr "" + +#: common/models.py:1782 +msgid "Autofill serial numbers in forms" +msgstr "" + +#: common/models.py:1787 +msgid "Delete Depleted Stock" +msgstr "" + +#: common/models.py:1789 +msgid "Determines default behavior when a stock item is depleted" +msgstr "" + +#: common/models.py:1795 +msgid "Batch Code Template" +msgstr "" + +#: common/models.py:1797 +msgid "Template for generating default batch codes for stock items" +msgstr "" + +#: common/models.py:1802 +msgid "Stock Expiry" +msgstr "" + +#: common/models.py:1803 +msgid "Enable stock expiry functionality" +msgstr "" + +#: common/models.py:1808 +msgid "Sell Expired Stock" +msgstr "" + +#: common/models.py:1809 +msgid "Allow sale of expired stock" +msgstr "" + +#: common/models.py:1814 +msgid "Stock Stale Time" +msgstr "" + +#: common/models.py:1816 +msgid "Number of days stock items are considered stale before expiring" +msgstr "" + +#: common/models.py:1823 +msgid "Build Expired Stock" +msgstr "" + +#: common/models.py:1824 +msgid "Allow building with expired stock" +msgstr "" + +#: common/models.py:1829 +msgid "Stock Ownership Control" +msgstr "" + +#: common/models.py:1830 +msgid "Enable ownership control over stock locations and items" +msgstr "" + +#: common/models.py:1835 +msgid "Stock Location Default Icon" +msgstr "" + +#: common/models.py:1836 +msgid "Stock location default icon (empty means no icon)" +msgstr "" + +#: common/models.py:1841 +msgid "Show Installed Stock Items" +msgstr "" + +#: common/models.py:1842 +msgid "Display installed stock items in stock tables" +msgstr "" + +#: common/models.py:1847 +msgid "Check BOM when installing items" +msgstr "" + +#: common/models.py:1849 +msgid "Installed stock items must exist in the BOM for the parent part" +msgstr "" + +#: common/models.py:1855 +msgid "Allow Out of Stock Transfer" +msgstr "" + +#: common/models.py:1857 +msgid "Allow stock items which are not in stock to be transferred between stock locations" +msgstr "" + +#: common/models.py:1863 +msgid "Build Order Reference Pattern" +msgstr "" + +#: common/models.py:1865 +msgid "Required pattern for generating Build Order reference field" +msgstr "" + +#: common/models.py:1871 common/models.py:1927 common/models.py:1949 +#: common/models.py:1985 +msgid "Require Responsible Owner" +msgstr "" + +#: common/models.py:1872 common/models.py:1928 common/models.py:1950 +#: common/models.py:1986 +msgid "A responsible owner must be assigned to each order" +msgstr "" + +#: common/models.py:1877 +msgid "Require Active Part" +msgstr "" + +#: common/models.py:1878 +msgid "Prevent build order creation for inactive parts" +msgstr "" + +#: common/models.py:1883 +msgid "Require Locked Part" +msgstr "" + +#: common/models.py:1884 +msgid "Prevent build order creation for unlocked parts" +msgstr "" + +#: common/models.py:1889 +msgid "Require Valid BOM" +msgstr "" + +#: common/models.py:1891 +msgid "Prevent build order creation unless BOM has been validated" +msgstr "" + +#: common/models.py:1897 +msgid "Require Closed Child Orders" +msgstr "" + +#: common/models.py:1899 +msgid "Prevent build order completion until all child orders are closed" +msgstr "" + +#: common/models.py:1905 +msgid "Block Until Tests Pass" +msgstr "" + +#: common/models.py:1907 +msgid "Prevent build outputs from being completed until all required tests pass" +msgstr "" + +#: common/models.py:1913 +msgid "Enable Return Orders" +msgstr "" + +#: common/models.py:1914 +msgid "Enable return order functionality in the user interface" +msgstr "" + +#: common/models.py:1919 +msgid "Return Order Reference Pattern" +msgstr "" + +#: common/models.py:1921 +msgid "Required pattern for generating Return Order reference field" +msgstr "" + +#: common/models.py:1933 +msgid "Edit Completed Return Orders" +msgstr "" + +#: common/models.py:1935 +msgid "Allow editing of return orders after they have been completed" +msgstr "" + +#: common/models.py:1941 +msgid "Sales Order Reference Pattern" +msgstr "" + +#: common/models.py:1943 +msgid "Required pattern for generating Sales Order reference field" +msgstr "" + +#: common/models.py:1955 +msgid "Sales Order Default Shipment" +msgstr "" + +#: common/models.py:1956 +msgid "Enable creation of default shipment with sales orders" +msgstr "" + +#: common/models.py:1961 +msgid "Edit Completed Sales Orders" +msgstr "" + +#: common/models.py:1963 +msgid "Allow editing of sales orders after they have been shipped or completed" +msgstr "" + +#: common/models.py:1969 +msgid "Mark Shipped Orders as Complete" +msgstr "" + +#: common/models.py:1971 +msgid "Sales orders marked as shipped will automatically be completed, bypassing the \"shipped\" status" +msgstr "" + +#: common/models.py:1977 +msgid "Purchase Order Reference Pattern" +msgstr "" + +#: common/models.py:1979 +msgid "Required pattern for generating Purchase Order reference field" +msgstr "" + +#: common/models.py:1991 +msgid "Edit Completed Purchase Orders" +msgstr "" + +#: common/models.py:1993 +msgid "Allow editing of purchase orders after they have been shipped or completed" +msgstr "" + +#: common/models.py:1999 +msgid "Auto Complete Purchase Orders" +msgstr "" + +#: common/models.py:2001 +msgid "Automatically mark purchase orders as complete when all line items are received" +msgstr "" + +#: common/models.py:2008 +msgid "Enable password forgot" +msgstr "" + +#: common/models.py:2009 +msgid "Enable password forgot function on the login pages" +msgstr "" + +#: common/models.py:2014 +msgid "Enable registration" +msgstr "" + +#: common/models.py:2015 +msgid "Enable self-registration for users on the login pages" +msgstr "" + +#: common/models.py:2020 +msgid "Enable SSO" +msgstr "" + +#: common/models.py:2021 +msgid "Enable SSO on the login pages" +msgstr "" + +#: common/models.py:2026 +msgid "Enable SSO registration" +msgstr "" + +#: common/models.py:2028 +msgid "Enable self-registration via SSO for users on the login pages" +msgstr "" + +#: common/models.py:2034 +msgid "Enable SSO group sync" +msgstr "" + +#: common/models.py:2036 +msgid "Enable synchronizing InvenTree groups with groups provided by the IdP" +msgstr "" + +#: common/models.py:2042 +msgid "SSO group key" +msgstr "" + +#: common/models.py:2044 +msgid "The name of the groups claim attribute provided by the IdP" +msgstr "" + +#: common/models.py:2050 +msgid "SSO group map" +msgstr "" + +#: common/models.py:2052 +msgid "A mapping from SSO groups to local InvenTree groups. If the local group does not exist, it will be created." +msgstr "" + +#: common/models.py:2058 +msgid "Remove groups outside of SSO" +msgstr "" + +#: common/models.py:2060 +msgid "Whether groups assigned to the user should be removed if they are not backend by the IdP. Disabling this setting might cause security issues" +msgstr "" + +#: common/models.py:2066 +msgid "Email required" +msgstr "" + +#: common/models.py:2067 +msgid "Require user to supply mail on signup" +msgstr "" + +#: common/models.py:2072 +msgid "Auto-fill SSO users" +msgstr "" + +#: common/models.py:2074 +msgid "Automatically fill out user-details from SSO account-data" +msgstr "" + +#: common/models.py:2080 +msgid "Mail twice" +msgstr "" + +#: common/models.py:2081 +msgid "On signup ask users twice for their mail" +msgstr "" + +#: common/models.py:2086 +msgid "Password twice" +msgstr "" + +#: common/models.py:2087 +msgid "On signup ask users twice for their password" +msgstr "" + +#: common/models.py:2092 +msgid "Allowed domains" +msgstr "" + +#: common/models.py:2094 +msgid "Restrict signup to certain domains (comma-separated, starting with @)" +msgstr "" + +#: common/models.py:2100 +msgid "Group on signup" +msgstr "" + +#: common/models.py:2102 +msgid "Group to which new users are assigned on registration. If SSO group sync is enabled, this group is only set if no group can be assigned from the IdP." +msgstr "" + +#: common/models.py:2108 +msgid "Enforce MFA" +msgstr "" + +#: common/models.py:2109 +msgid "Users must use multifactor security." +msgstr "" + +#: common/models.py:2114 +msgid "Check plugins on startup" +msgstr "" + +#: common/models.py:2116 +msgid "Check that all plugins are installed on startup - enable in container environments" +msgstr "" + +#: common/models.py:2124 +msgid "Check for plugin updates" +msgstr "" + +#: common/models.py:2125 +msgid "Enable periodic checks for updates to installed plugins" +msgstr "" + +#: common/models.py:2131 +msgid "Enable URL integration" +msgstr "" + +#: common/models.py:2132 +msgid "Enable plugins to add URL routes" +msgstr "" + +#: common/models.py:2138 +msgid "Enable navigation integration" +msgstr "" + +#: common/models.py:2139 +msgid "Enable plugins to integrate into navigation" +msgstr "" + +#: common/models.py:2145 +msgid "Enable app integration" +msgstr "" + +#: common/models.py:2146 +msgid "Enable plugins to add apps" +msgstr "" + +#: common/models.py:2152 +msgid "Enable schedule integration" +msgstr "" + +#: common/models.py:2153 +msgid "Enable plugins to run scheduled tasks" +msgstr "" + +#: common/models.py:2159 +msgid "Enable event integration" +msgstr "" + +#: common/models.py:2160 +msgid "Enable plugins to respond to internal events" +msgstr "" + +#: common/models.py:2166 +msgid "Enable interface integration" +msgstr "" + +#: common/models.py:2167 +msgid "Enable plugins to integrate into the user interface" +msgstr "" + +#: common/models.py:2173 +msgid "Enable project codes" +msgstr "" + +#: common/models.py:2174 +msgid "Enable project codes for tracking projects" +msgstr "" + +#: common/models.py:2179 +msgid "Stocktake Functionality" +msgstr "" + +#: common/models.py:2181 +msgid "Enable stocktake functionality for recording stock levels and calculating stock value" +msgstr "" + +#: common/models.py:2187 +msgid "Exclude External Locations" +msgstr "" + +#: common/models.py:2189 +msgid "Exclude stock items in external locations from stocktake calculations" +msgstr "" + +#: common/models.py:2195 +msgid "Automatic Stocktake Period" +msgstr "" + +#: common/models.py:2197 +msgid "Number of days between automatic stocktake recording (set to zero to disable)" +msgstr "" + +#: common/models.py:2203 +msgid "Report Deletion Interval" +msgstr "" + +#: common/models.py:2205 +msgid "Stocktake reports will be deleted after specified number of days" +msgstr "" + +#: common/models.py:2212 +msgid "Display Users full names" +msgstr "" + +#: common/models.py:2213 +msgid "Display Users full names instead of usernames" +msgstr "" + +#: common/models.py:2218 +msgid "Enable Test Station Data" +msgstr "" + +#: common/models.py:2219 +msgid "Enable test station data collection for test results" +msgstr "" + +#: common/models.py:2224 +msgid "Create Template on Upload" +msgstr "" + +#: common/models.py:2226 +msgid "Create a new test template when uploading test data which does not match an existing template" +msgstr "" + +#: common/models.py:2279 +msgid "Hide inactive parts" +msgstr "" + +#: common/models.py:2281 +msgid "Hide inactive parts in results displayed on the homepage" +msgstr "" + +#: common/models.py:2287 +msgid "Show subscribed parts" +msgstr "" + +#: common/models.py:2288 +msgid "Show subscribed parts on the homepage" +msgstr "" + +#: common/models.py:2293 +msgid "Show subscribed categories" +msgstr "" + +#: common/models.py:2294 +msgid "Show subscribed part categories on the homepage" +msgstr "" + +#: common/models.py:2299 +msgid "Show latest parts" +msgstr "" + +#: common/models.py:2300 +msgid "Show latest parts on the homepage" +msgstr "" + +#: common/models.py:2305 +msgid "Show invalid BOMs" +msgstr "" + +#: common/models.py:2306 +msgid "Show BOMs that await validation on the homepage" +msgstr "" + +#: common/models.py:2311 +msgid "Show recent stock changes" +msgstr "" + +#: common/models.py:2312 +msgid "Show recently changed stock items on the homepage" +msgstr "" + +#: common/models.py:2317 +msgid "Show low stock" +msgstr "" + +#: common/models.py:2318 +msgid "Show low stock items on the homepage" +msgstr "" + +#: common/models.py:2323 +msgid "Show depleted stock" +msgstr "" + +#: common/models.py:2324 +msgid "Show depleted stock items on the homepage" +msgstr "" + +#: common/models.py:2329 +msgid "Show needed stock" +msgstr "" + +#: common/models.py:2330 +msgid "Show stock items needed for builds on the homepage" +msgstr "" + +#: common/models.py:2335 +msgid "Show expired stock" +msgstr "" + +#: common/models.py:2336 +msgid "Show expired stock items on the homepage" +msgstr "" + +#: common/models.py:2341 +msgid "Show stale stock" +msgstr "" + +#: common/models.py:2342 +msgid "Show stale stock items on the homepage" +msgstr "" + +#: common/models.py:2347 +msgid "Show pending builds" +msgstr "" + +#: common/models.py:2348 +msgid "Show pending builds on the homepage" +msgstr "" + +#: common/models.py:2353 +msgid "Show overdue builds" +msgstr "" + +#: common/models.py:2354 +msgid "Show overdue builds on the homepage" +msgstr "" + +#: common/models.py:2359 +msgid "Show outstanding POs" +msgstr "" + +#: common/models.py:2360 +msgid "Show outstanding POs on the homepage" +msgstr "" + +#: common/models.py:2365 +msgid "Show overdue POs" +msgstr "" + +#: common/models.py:2366 +msgid "Show overdue POs on the homepage" +msgstr "" + +#: common/models.py:2371 +msgid "Show outstanding SOs" +msgstr "" + +#: common/models.py:2372 +msgid "Show outstanding SOs on the homepage" +msgstr "" + +#: common/models.py:2377 +msgid "Show overdue SOs" +msgstr "" + +#: common/models.py:2378 +msgid "Show overdue SOs on the homepage" +msgstr "" + +#: common/models.py:2383 +msgid "Show pending SO shipments" +msgstr "" + +#: common/models.py:2384 +msgid "Show pending SO shipments on the homepage" +msgstr "" + +#: common/models.py:2389 +msgid "Show News" +msgstr "" + +#: common/models.py:2390 +msgid "Show news on the homepage" +msgstr "" + +#: common/models.py:2395 +msgid "Inline label display" +msgstr "" + +#: common/models.py:2397 +msgid "Display PDF labels in the browser, instead of downloading as a file" +msgstr "" + +#: common/models.py:2403 +msgid "Default label printer" +msgstr "" + +#: common/models.py:2405 +msgid "Configure which label printer should be selected by default" +msgstr "" + +#: common/models.py:2411 +msgid "Inline report display" +msgstr "" + +#: common/models.py:2413 +msgid "Display PDF reports in the browser, instead of downloading as a file" +msgstr "" + +#: common/models.py:2419 +msgid "Search Parts" +msgstr "" + +#: common/models.py:2420 +msgid "Display parts in search preview window" +msgstr "" + +#: common/models.py:2425 +msgid "Search Supplier Parts" +msgstr "" + +#: common/models.py:2426 +msgid "Display supplier parts in search preview window" +msgstr "" + +#: common/models.py:2431 +msgid "Search Manufacturer Parts" +msgstr "" + +#: common/models.py:2432 +msgid "Display manufacturer parts in search preview window" +msgstr "" + +#: common/models.py:2437 +msgid "Hide Inactive Parts" +msgstr "" + +#: common/models.py:2438 +msgid "Excluded inactive parts from search preview window" +msgstr "" + +#: common/models.py:2443 +msgid "Search Categories" +msgstr "" + +#: common/models.py:2444 +msgid "Display part categories in search preview window" +msgstr "" + +#: common/models.py:2449 +msgid "Search Stock" +msgstr "" + +#: common/models.py:2450 +msgid "Display stock items in search preview window" +msgstr "" + +#: common/models.py:2455 +msgid "Hide Unavailable Stock Items" +msgstr "" + +#: common/models.py:2457 +msgid "Exclude stock items which are not available from the search preview window" +msgstr "" + +#: common/models.py:2463 +msgid "Search Locations" +msgstr "" + +#: common/models.py:2464 +msgid "Display stock locations in search preview window" +msgstr "" + +#: common/models.py:2469 +msgid "Search Companies" +msgstr "" + +#: common/models.py:2470 +msgid "Display companies in search preview window" +msgstr "" + +#: common/models.py:2475 +msgid "Search Build Orders" +msgstr "" + +#: common/models.py:2476 +msgid "Display build orders in search preview window" +msgstr "" + +#: common/models.py:2481 +msgid "Search Purchase Orders" +msgstr "" + +#: common/models.py:2482 +msgid "Display purchase orders in search preview window" +msgstr "" + +#: common/models.py:2487 +msgid "Exclude Inactive Purchase Orders" +msgstr "" + +#: common/models.py:2489 +msgid "Exclude inactive purchase orders from search preview window" +msgstr "" + +#: common/models.py:2495 +msgid "Search Sales Orders" +msgstr "" + +#: common/models.py:2496 +msgid "Display sales orders in search preview window" +msgstr "" + +#: common/models.py:2501 +msgid "Exclude Inactive Sales Orders" +msgstr "" + +#: common/models.py:2503 +msgid "Exclude inactive sales orders from search preview window" +msgstr "" + +#: common/models.py:2509 +msgid "Search Return Orders" +msgstr "" + +#: common/models.py:2510 +msgid "Display return orders in search preview window" +msgstr "" + +#: common/models.py:2515 +msgid "Exclude Inactive Return Orders" +msgstr "" + +#: common/models.py:2517 +msgid "Exclude inactive return orders from search preview window" +msgstr "" + +#: common/models.py:2523 +msgid "Search Preview Results" +msgstr "" + +#: common/models.py:2525 +msgid "Number of results to show in each section of the search preview window" +msgstr "" + +#: common/models.py:2531 +msgid "Regex Search" +msgstr "" + +#: common/models.py:2532 +msgid "Enable regular expressions in search queries" +msgstr "" + +#: common/models.py:2537 +msgid "Whole Word Search" +msgstr "" + +#: common/models.py:2538 +msgid "Search queries return results for whole word matches" +msgstr "" + +#: common/models.py:2543 +msgid "Show Quantity in Forms" +msgstr "" + +#: common/models.py:2544 +msgid "Display available part quantity in some forms" +msgstr "" + +#: common/models.py:2549 +msgid "Escape Key Closes Forms" +msgstr "" + +#: common/models.py:2550 +msgid "Use the escape key to close modal forms" +msgstr "" + +#: common/models.py:2555 +msgid "Fixed Navbar" +msgstr "" + +#: common/models.py:2556 +msgid "The navbar position is fixed to the top of the screen" +msgstr "" + +#: common/models.py:2561 +msgid "Date Format" +msgstr "" + +#: common/models.py:2562 +msgid "Preferred format for displaying dates" +msgstr "" + +#: common/models.py:2575 part/templates/part/detail.html:41 +msgid "Part Scheduling" +msgstr "" + +#: common/models.py:2576 +msgid "Display part scheduling information" +msgstr "" + +#: common/models.py:2581 part/templates/part/detail.html:62 +msgid "Part Stocktake" +msgstr "" + +#: common/models.py:2583 +msgid "Display part stocktake information (if stocktake functionality is enabled)" +msgstr "" + +#: common/models.py:2589 +msgid "Table String Length" +msgstr "" + +#: common/models.py:2591 +msgid "Maximum length limit for strings displayed in table views" +msgstr "" + +#: common/models.py:2597 +msgid "Receive error reports" +msgstr "" + +#: common/models.py:2598 +msgid "Receive notifications for system errors" +msgstr "" + +#: common/models.py:2603 +msgid "Last used printing machines" +msgstr "" + +#: common/models.py:2604 +msgid "Save the last used printing machines for a user" +msgstr "" + +#: common/models.py:2621 common/models.py:2622 common/models.py:2779 +#: common/models.py:2780 common/models.py:3025 common/models.py:3026 +#: common/models.py:3349 common/models.py:3350 common/models.py:3534 +#: importer/models.py:89 part/models.py:3358 part/models.py:3445 +#: part/models.py:3519 part/models.py:3547 plugin/models.py:313 +#: plugin/models.py:314 report/templates/report/inventree_test_report.html:105 +#: templates/js/translated/stock.js:3121 users/models.py:111 +msgid "User" +msgstr "" + +#: common/models.py:2644 +msgid "Price break quantity" +msgstr "" + +#: common/models.py:2651 company/serializers.py:524 order/admin.py:42 +#: order/models.py:1447 order/models.py:2456 +#: templates/js/translated/company.js:1824 templates/js/translated/part.js:1892 +#: templates/js/translated/pricing.js:621 +#: templates/js/translated/return_order.js:739 +msgid "Price" +msgstr "" + +#: common/models.py:2652 +msgid "Unit price at specified quantity" +msgstr "" + +#: common/models.py:2756 common/models.py:2941 +msgid "Endpoint" +msgstr "" + +#: common/models.py:2757 +msgid "Endpoint at which this webhook is received" +msgstr "" + +#: common/models.py:2767 +msgid "Name for this webhook" +msgstr "" + +#: common/models.py:2771 +msgid "Is this webhook active" +msgstr "" + +#: common/models.py:2787 users/models.py:159 +msgid "Token" +msgstr "" + +#: common/models.py:2788 +msgid "Token for access" +msgstr "" + +#: common/models.py:2796 +msgid "Secret" +msgstr "" + +#: common/models.py:2797 +msgid "Shared secret for HMAC" +msgstr "" + +#: common/models.py:2905 +msgid "Message ID" +msgstr "" + +#: common/models.py:2906 +msgid "Unique identifier for this message" +msgstr "" + +#: common/models.py:2914 +msgid "Host" +msgstr "" + +#: common/models.py:2915 +msgid "Host from which this message was received" +msgstr "" + +#: common/models.py:2923 +msgid "Header" +msgstr "" + +#: common/models.py:2924 +msgid "Header of this message" +msgstr "" + +#: common/models.py:2931 +msgid "Body" +msgstr "" + +#: common/models.py:2932 +msgid "Body of this message" +msgstr "" + +#: common/models.py:2942 +msgid "Endpoint on which this message was received" +msgstr "" + +#: common/models.py:2947 +msgid "Worked on" +msgstr "" + +#: common/models.py:2948 +msgid "Was the work on this message finished?" +msgstr "" + +#: common/models.py:3074 +msgid "Id" +msgstr "" + +#: common/models.py:3076 part/serializers.py:271 +#: templates/js/translated/company.js:966 templates/js/translated/news.js:44 +msgid "Title" +msgstr "" + +#: common/models.py:3078 common/models.py:3333 company/models.py:146 +#: company/models.py:443 company/models.py:509 company/models.py:815 +#: order/models.py:309 order/models.py:1402 order/models.py:1846 +#: part/admin.py:55 part/models.py:1118 +#: part/templates/part/part_scheduling.html:11 +#: report/templates/report/inventree_build_order_report.html:164 +#: stock/admin.py:230 templates/js/translated/company.js:1320 +#: templates/js/translated/company.js:1674 templates/js/translated/order.js:376 +#: templates/js/translated/part.js:2475 +#: templates/js/translated/purchase_order.js:2094 +#: templates/js/translated/purchase_order.js:2258 +#: templates/js/translated/return_order.js:778 +#: templates/js/translated/sales_order.js:1058 +#: templates/js/translated/sales_order.js:2004 +msgid "Link" +msgstr "" + +#: common/models.py:3080 templates/js/translated/news.js:60 +msgid "Published" +msgstr "" + +#: common/models.py:3082 templates/InvenTree/settings/plugin_settings.html:32 +#: templates/js/translated/news.js:56 templates/js/translated/plugin.js:103 +msgid "Author" +msgstr "" + +#: common/models.py:3084 templates/js/translated/news.js:52 +msgid "Summary" +msgstr "" + +#: common/models.py:3087 +msgid "Read" +msgstr "" + +#: common/models.py:3087 +msgid "Was this news item read?" +msgstr "" + +#: common/models.py:3104 company/models.py:156 part/models.py:1128 +#: report/templates/report/inventree_bill_of_materials_report.html:126 +#: report/templates/report/inventree_bill_of_materials_report.html:148 +#: report/templates/report/inventree_return_order_report.html:35 +#: stock/templates/stock/item_base.html:130 templates/503.html:31 +#: templates/hover_image.html:7 templates/hover_image.html:9 +#: templates/modals.html:6 +msgid "Image" +msgstr "" + +#: common/models.py:3104 +msgid "Image file" +msgstr "" + +#: common/models.py:3116 common/models.py:3317 +msgid "Target model type for this image" +msgstr "" + +#: common/models.py:3120 +msgid "Target model ID for this image" +msgstr "" + +#: common/models.py:3142 +msgid "Custom Unit" +msgstr "" + +#: common/models.py:3160 +msgid "Unit symbol must be unique" +msgstr "" + +#: common/models.py:3175 +msgid "Unit name must be a valid identifier" +msgstr "" + +#: common/models.py:3194 +msgid "Unit name" +msgstr "" + +#: common/models.py:3201 templates/InvenTree/settings/settings_staff_js.html:75 +msgid "Symbol" +msgstr "" + +#: common/models.py:3202 +msgid "Optional unit symbol" +msgstr "" + +#: common/models.py:3208 templates/InvenTree/settings/settings_staff_js.html:71 +msgid "Definition" +msgstr "" + +#: common/models.py:3209 +msgid "Unit definition" +msgstr "" + +#: common/models.py:3267 common/models.py:3324 stock/models.py:2674 +#: stock/serializers.py:244 templates/js/translated/attachment.js:119 +#: templates/js/translated/attachment.js:345 +msgid "Attachment" +msgstr "" + +#: common/models.py:3279 +msgid "Missing file" +msgstr "" + +#: common/models.py:3280 +msgid "Missing external link" +msgstr "" + +#: common/models.py:3325 +msgid "Select file to attach" +msgstr "" + +#: common/models.py:3340 templates/js/translated/attachment.js:120 +#: templates/js/translated/attachment.js:360 +msgid "Comment" +msgstr "" + +#: common/models.py:3341 +msgid "Attachment comment" +msgstr "" + +#: common/models.py:3357 +msgid "Upload date" +msgstr "" + +#: common/models.py:3358 +msgid "Date the file was uploaded" +msgstr "" + +#: common/models.py:3362 +msgid "File size" +msgstr "" + +#: common/models.py:3362 +msgid "File size in bytes" +msgstr "" + +#: common/models.py:3400 common/serializers.py:609 +msgid "Invalid model type specified for attachment" +msgstr "" + +#: common/models.py:3409 plugin/models.py:43 users/models.py:100 +msgid "Key" +msgstr "" + +#: common/models.py:3410 +msgid "Value that will be saved in the models database" +msgstr "" + +#: common/models.py:3413 +msgid "Name of the state" +msgstr "" + +#: common/models.py:3417 part/serializers.py:273 +msgid "Label" +msgstr "" + +#: common/models.py:3418 +msgid "Label that will be displayed in the frontend" +msgstr "" + +#: common/models.py:3424 +msgid "Color" +msgstr "" + +#: common/models.py:3425 +msgid "Color that will be displayed in the frontend" +msgstr "" + +#: common/models.py:3428 +msgid "Logical Key" +msgstr "" + +#: common/models.py:3430 +msgid "State logical key that is equal to this custom state in business logic" +msgstr "" + +#: common/models.py:3438 part/serializers.py:275 +msgid "Model" +msgstr "" + +#: common/models.py:3439 +msgid "Model this state is associated with" +msgstr "" + +#: common/models.py:3443 +msgid "Reference Status Set" +msgstr "" + +#: common/models.py:3444 +msgid "Status set that is extended with this custom state" +msgstr "" + +#: common/models.py:3450 +msgid "Custom State" +msgstr "" + +#: common/models.py:3451 +msgid "Custom States" +msgstr "" + +#: common/models.py:3466 +msgid "Model must be selected" +msgstr "" + +#: common/models.py:3469 +msgid "Key must be selected" +msgstr "" + +#: common/models.py:3472 +msgid "Logical key must be selected" +msgstr "" + +#: common/models.py:3476 +msgid "Key must be different from logical key" +msgstr "" + +#: common/models.py:3480 +msgid "Reference status must be selected" +msgstr "" + +#: common/models.py:3492 +msgid "Reference status set not found" +msgstr "" + +#: common/models.py:3498 +msgid "Key must be different from the logical keys of the reference status" +msgstr "" + +#: common/models.py:3504 +msgid "Logical key must be in the logical keys of the reference status" +msgstr "" + +#: common/models.py:3519 +msgid "Barcode Scan" +msgstr "" + +#: common/models.py:3523 importer/models.py:512 part/models.py:4009 +msgid "Data" +msgstr "" + +#: common/models.py:3524 +msgid "Barcode data" +msgstr "" + +#: common/models.py:3535 +msgid "User who scanned the barcode" +msgstr "" + +#: common/models.py:3540 importer/models.py:60 +msgid "Timestamp" +msgstr "" + +#: common/models.py:3541 +msgid "Date and time of the barcode scan" +msgstr "" + +#: common/models.py:3547 +msgid "URL endpoint which processed the barcode" +msgstr "" + +#: common/models.py:3554 order/models.py:1437 plugin/serializers.py:89 +msgid "Context" +msgstr "" + +#: common/models.py:3555 +msgid "Context data for the barcode scan" +msgstr "" + +#: common/models.py:3562 +msgid "Response" +msgstr "" + +#: common/models.py:3563 +msgid "Response data from the barcode scan" +msgstr "" + +#: common/models.py:3569 report/templates/report/inventree_test_report.html:103 +#: stock/models.py:2660 +msgid "Result" +msgstr "" + +#: common/models.py:3570 +msgid "Was the barcode scan successful?" +msgstr "" + +#: common/notifications.py:328 +#, python-brace-format +msgid "New {verbose_name}" +msgstr "" + +#: common/notifications.py:330 +msgid "A new order has been created and assigned to you" +msgstr "" + +#: common/notifications.py:336 +#, python-brace-format +msgid "{verbose_name} canceled" +msgstr "" + +#: common/notifications.py:338 +msgid "A order that is assigned to you was canceled" +msgstr "" + +#: common/notifications.py:344 common/notifications.py:351 order/api.py:440 +msgid "Items Received" +msgstr "" + +#: common/notifications.py:346 +msgid "Items have been received against a purchase order" +msgstr "" + +#: common/notifications.py:353 +msgid "Items have been received against a return order" +msgstr "" + +#: common/notifications.py:475 +msgid "Error raised by plugin" +msgstr "" + +#: common/serializers.py:423 +msgid "Is Running" +msgstr "" + +#: common/serializers.py:429 +msgid "Pending Tasks" +msgstr "" + +#: common/serializers.py:435 +msgid "Scheduled Tasks" +msgstr "" + +#: common/serializers.py:441 +msgid "Failed Tasks" +msgstr "" + +#: common/serializers.py:456 +msgid "Task ID" +msgstr "" + +#: common/serializers.py:456 +msgid "Unique task ID" +msgstr "" + +#: common/serializers.py:458 +msgid "Lock" +msgstr "" + +#: common/serializers.py:458 +msgid "Lock time" +msgstr "" + +#: common/serializers.py:460 +msgid "Task name" +msgstr "" + +#: common/serializers.py:462 +msgid "Function" +msgstr "" + +#: common/serializers.py:462 +msgid "Function name" +msgstr "" + +#: common/serializers.py:464 +msgid "Arguments" +msgstr "" + +#: common/serializers.py:464 +msgid "Task arguments" +msgstr "" + +#: common/serializers.py:467 +msgid "Keyword Arguments" +msgstr "" + +#: common/serializers.py:467 +msgid "Task keyword arguments" +msgstr "" + +#: common/serializers.py:577 +msgid "Filename" +msgstr "" + +#: common/serializers.py:584 report/api.py:100 report/serializers.py:54 +msgid "Model Type" +msgstr "" + +#: common/serializers.py:612 +msgid "User does not have permission to create or edit attachments for this model" +msgstr "" + +#: common/validators.py:35 +msgid "No attachment model type provided" +msgstr "" + +#: common/validators.py:41 +msgid "Invalid attachment model type" +msgstr "" + +#: common/validators.py:82 +msgid "Minimum places cannot be greater than maximum places" +msgstr "" + +#: common/validators.py:94 +msgid "Maximum places cannot be less than minimum places" +msgstr "" + +#: common/validators.py:105 +msgid "An empty domain is not allowed." +msgstr "" + +#: common/validators.py:107 +#, python-brace-format +msgid "Invalid domain name: {domain}" +msgstr "" + +#: common/views.py:84 order/templates/order/order_wizard/po_upload.html:51 +#: order/templates/order/purchase_order_detail.html:24 order/views.py:118 +#: part/templates/part/import_wizard/part_upload.html:58 part/views.py:109 +#: templates/patterns/wizard/upload.html:37 +msgid "Upload File" +msgstr "" + +#: common/views.py:84 order/templates/order/order_wizard/match_fields.html:52 +#: order/views.py:119 +#: part/templates/part/import_wizard/ajax_match_fields.html:45 +#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:110 +#: templates/patterns/wizard/match_fields.html:51 +msgid "Match Fields" +msgstr "" + +#: common/views.py:84 +msgid "Match Items" +msgstr "" + +#: common/views.py:397 +msgid "Fields matching failed" +msgstr "" + +#: common/views.py:460 +msgid "Parts imported" +msgstr "" + +#: common/views.py:490 order/templates/order/order_wizard/match_fields.html:27 +#: order/templates/order/order_wizard/match_parts.html:19 +#: order/templates/order/order_wizard/po_upload.html:49 +#: part/templates/part/import_wizard/match_fields.html:27 +#: part/templates/part/import_wizard/match_references.html:19 +#: part/templates/part/import_wizard/part_upload.html:56 +#: templates/patterns/wizard/match_fields.html:26 +#: templates/patterns/wizard/upload.html:35 +msgid "Previous Step" +msgstr "" + +#: company/api.py:141 +msgid "Part is Active" +msgstr "" + +#: company/api.py:145 +msgid "Manufacturer is Active" +msgstr "" + +#: company/api.py:278 +msgid "Supplier Part is Active" +msgstr "" + +#: company/api.py:282 +msgid "Internal Part is Active" +msgstr "" + +#: company/api.py:286 +msgid "Supplier is Active" +msgstr "" + +#: company/models.py:97 company/models.py:368 +#: company/templates/company/company_base.html:8 +#: company/templates/company/company_base.html:12 stock/api.py:812 +#: templates/InvenTree/search.html:178 templates/js/translated/company.js:497 +msgid "Company" +msgstr "" + +#: company/models.py:98 company/views.py:51 +#: templates/js/translated/search.js:192 +msgid "Companies" +msgstr "" + +#: company/models.py:114 +msgid "Company description" +msgstr "" + +#: company/models.py:115 +msgid "Description of the company" +msgstr "" + +#: company/models.py:120 company/templates/company/company_base.html:106 +#: templates/InvenTree/settings/plugin_settings.html:54 +#: templates/js/translated/company.js:533 +msgid "Website" +msgstr "" + +#: company/models.py:120 +msgid "Company website URL" +msgstr "" + +#: company/models.py:125 +msgid "Phone number" +msgstr "" + +#: company/models.py:127 +msgid "Contact phone number" +msgstr "" + +#: company/models.py:134 +msgid "Contact email address" +msgstr "" + +#: company/models.py:139 company/models.py:272 +#: company/templates/company/company_base.html:145 order/models.py:349 +#: order/templates/order/order_base.html:217 +#: order/templates/order/return_order_base.html:178 +#: order/templates/order/sales_order_base.html:222 +msgid "Contact" +msgstr "" + +#: company/models.py:141 +msgid "Point of contact" +msgstr "" + +#: company/models.py:147 +msgid "Link to external company information" +msgstr "" + +#: company/models.py:160 +msgid "Is this company active?" +msgstr "" + +#: company/models.py:165 +msgid "Is customer" +msgstr "" + +#: company/models.py:166 +msgid "Do you sell items to this company?" +msgstr "" + +#: company/models.py:171 +msgid "Is supplier" +msgstr "" + +#: company/models.py:172 +msgid "Do you purchase items from this company?" +msgstr "" + +#: company/models.py:177 +msgid "Is manufacturer" +msgstr "" + +#: company/models.py:178 +msgid "Does this company manufacture parts?" +msgstr "" + +#: company/models.py:186 +msgid "Default currency used for this company" +msgstr "" + +#: company/models.py:311 company/templates/company/company_base.html:124 +#: order/models.py:359 order/templates/order/order_base.html:224 +#: order/templates/order/return_order_base.html:185 +#: order/templates/order/sales_order_base.html:229 +msgid "Address" +msgstr "" + +#: company/models.py:312 company/templates/company/sidebar.html:35 +msgid "Addresses" +msgstr "" + +#: company/models.py:369 +msgid "Select company" +msgstr "" + +#: company/models.py:374 +msgid "Address title" +msgstr "" + +#: company/models.py:375 +msgid "Title describing the address entry" +msgstr "" + +#: company/models.py:381 +msgid "Primary address" +msgstr "" + +#: company/models.py:382 +msgid "Set as primary address" +msgstr "" + +#: company/models.py:387 templates/js/translated/company.js:915 +#: templates/js/translated/company.js:972 +msgid "Line 1" +msgstr "" + +#: company/models.py:388 +msgid "Address line 1" +msgstr "" + +#: company/models.py:394 templates/js/translated/company.js:916 +#: templates/js/translated/company.js:978 +msgid "Line 2" +msgstr "" + +#: company/models.py:395 +msgid "Address line 2" +msgstr "" + +#: company/models.py:401 company/models.py:402 +#: templates/js/translated/company.js:984 +msgid "Postal code" +msgstr "" + +#: company/models.py:408 +msgid "City/Region" +msgstr "" + +#: company/models.py:409 +msgid "Postal code city/region" +msgstr "" + +#: company/models.py:415 +msgid "State/Province" +msgstr "" + +#: company/models.py:416 +msgid "State or province" +msgstr "" + +#: company/models.py:422 templates/js/translated/company.js:1002 +msgid "Country" +msgstr "" + +#: company/models.py:423 +msgid "Address country" +msgstr "" + +#: company/models.py:429 +msgid "Courier shipping notes" +msgstr "" + +#: company/models.py:430 +msgid "Notes for shipping courier" +msgstr "" + +#: company/models.py:436 +msgid "Internal shipping notes" +msgstr "" + +#: company/models.py:437 +msgid "Shipping notes for internal use" +msgstr "" + +#: company/models.py:444 +msgid "Link to address information (external)" +msgstr "" + +#: company/models.py:467 company/models.py:584 company/models.py:808 +#: company/templates/company/manufacturer_part.html:7 +#: company/templates/company/manufacturer_part.html:24 +#: stock/templates/stock/item_base.html:214 +msgid "Manufacturer Part" +msgstr "" + +#: company/models.py:484 company/models.py:776 stock/models.py:864 +#: stock/serializers.py:455 stock/templates/stock/item_base.html:139 +#: templates/js/translated/bom.js:622 +msgid "Base Part" +msgstr "" + +#: company/models.py:486 company/models.py:778 +msgid "Select part" +msgstr "" + +#: company/models.py:495 company/templates/company/company_base.html:82 +#: company/templates/company/manufacturer_part.html:90 +#: company/templates/company/supplier_part.html:146 part/serializers.py:598 +#: stock/templates/stock/item_base.html:204 +#: templates/js/translated/company.js:508 +#: templates/js/translated/company.js:1119 +#: templates/js/translated/company.js:1297 +#: templates/js/translated/company.js:1612 +#: templates/js/translated/table_filters.js:812 +msgid "Manufacturer" +msgstr "" + +#: company/models.py:496 +msgid "Select manufacturer" +msgstr "" + +#: company/models.py:502 company/templates/company/manufacturer_part.html:101 +#: company/templates/company/supplier_part.html:154 order/serializers.py:641 +#: part/serializers.py:608 templates/js/translated/company.js:352 +#: templates/js/translated/company.js:1118 +#: templates/js/translated/company.js:1313 +#: templates/js/translated/company.js:1631 templates/js/translated/part.js:1807 +#: templates/js/translated/purchase_order.js:1905 +#: templates/js/translated/purchase_order.js:2107 +msgid "MPN" +msgstr "" + +#: company/models.py:510 +msgid "URL for external manufacturer part link" +msgstr "" + +#: company/models.py:519 +msgid "Manufacturer part description" +msgstr "" + +#: company/models.py:572 +msgid "Manufacturer Part Parameter" +msgstr "" + +#: company/models.py:591 +msgid "Parameter name" +msgstr "" + +#: company/models.py:597 report/templates/report/inventree_test_report.html:104 +#: stock/models.py:2666 templates/js/translated/company.js:1167 +#: templates/js/translated/company.js:1420 templates/js/translated/part.js:1499 +#: templates/js/translated/stock.js:1607 +msgid "Value" +msgstr "" + +#: company/models.py:598 +msgid "Parameter value" +msgstr "" + +#: company/models.py:605 company/templates/company/supplier_part.html:169 +#: part/admin.py:57 part/models.py:1208 part/models.py:3822 +#: part/templates/part/part_base.html:301 +#: templates/js/translated/company.js:1426 templates/js/translated/part.js:1518 +#: templates/js/translated/part.js:1622 templates/js/translated/part.js:2376 +msgid "Units" +msgstr "" + +#: company/models.py:606 +msgid "Parameter units" +msgstr "" + +#: company/models.py:659 company/templates/company/supplier_part.html:8 +#: company/templates/company/supplier_part.html:25 order/api.py:392 +#: order/serializers.py:576 stock/models.py:875 +#: stock/templates/stock/item_base.html:230 +#: templates/js/translated/build.js:1055 +#: templates/js/translated/company.js:1601 +#: templates/js/translated/purchase_order.js:735 +#: templates/js/translated/stock.js:2366 +msgid "Supplier Part" +msgstr "" + +#: company/models.py:716 +msgid "Pack units must be compatible with the base part units" +msgstr "" + +#: company/models.py:723 +msgid "Pack units must be greater than zero" +msgstr "" + +#: company/models.py:737 +msgid "Linked manufacturer part must reference the same base part" +msgstr "" + +#: company/models.py:786 company/templates/company/company_base.html:87 +#: company/templates/company/supplier_part.html:130 order/models.py:503 +#: order/templates/order/order_base.html:150 part/bom.py:279 part/bom.py:314 +#: part/serializers.py:582 plugin/builtin/suppliers/digikey.py:25 +#: plugin/builtin/suppliers/lcsc.py:26 plugin/builtin/suppliers/mouser.py:24 +#: plugin/builtin/suppliers/tme.py:26 stock/templates/stock/item_base.html:221 +#: templates/email/overdue_purchase_order.html:16 +#: templates/js/translated/company.js:351 +#: templates/js/translated/company.js:512 +#: templates/js/translated/company.js:1585 templates/js/translated/part.js:1775 +#: templates/js/translated/pricing.js:498 +#: templates/js/translated/purchase_order.js:1743 +#: templates/js/translated/table_filters.js:816 +msgid "Supplier" +msgstr "" + +#: company/models.py:787 +msgid "Select supplier" +msgstr "" + +#: company/models.py:793 part/serializers.py:593 +msgid "Supplier stock keeping unit" +msgstr "" + +#: company/models.py:799 +msgid "Is this supplier part active?" +msgstr "" + +#: company/models.py:809 +msgid "Select manufacturer part" +msgstr "" + +#: company/models.py:816 +msgid "URL for external supplier part link" +msgstr "" + +#: company/models.py:825 +msgid "Supplier part description" +msgstr "" + +#: company/models.py:832 company/templates/company/supplier_part.html:188 +#: order/serializers.py:783 part/admin.py:415 part/models.py:4345 +#: part/templates/part/upload_bom.html:59 +#: report/templates/report/inventree_bill_of_materials_report.html:140 +#: report/templates/report/inventree_purchase_order_report.html:32 +#: report/templates/report/inventree_return_order_report.html:27 +#: report/templates/report/inventree_sales_order_report.html:32 +#: report/templates/report/inventree_stock_location_report.html:105 +#: stock/serializers.py:807 templates/js/translated/purchase_order.js:1168 +#: templates/js/translated/purchase_order.js:1327 +msgid "Note" +msgstr "" + +#: company/models.py:841 part/models.py:2177 +msgid "base cost" +msgstr "" + +#: company/models.py:842 part/models.py:2178 +msgid "Minimum charge (e.g. stocking fee)" +msgstr "" + +#: company/models.py:850 +msgid "Part packaging" +msgstr "" + +#: company/models.py:855 templates/js/translated/company.js:1652 +#: templates/js/translated/part.js:1828 templates/js/translated/part.js:1884 +#: templates/js/translated/purchase_order.js:294 +#: templates/js/translated/purchase_order.js:824 +#: templates/js/translated/purchase_order.js:1086 +#: templates/js/translated/purchase_order.js:2138 +#: templates/js/translated/purchase_order.js:2155 +msgid "Pack Quantity" +msgstr "" + +#: company/models.py:857 +msgid "Total quantity supplied in a single pack. Leave empty for single items." +msgstr "" + +#: company/models.py:876 part/models.py:2184 +msgid "multiple" +msgstr "" + +#: company/models.py:877 +msgid "Order multiple" +msgstr "" + +#: company/models.py:889 +msgid "Quantity available from supplier" +msgstr "" + +#: company/models.py:895 +msgid "Availability Updated" +msgstr "" + +#: company/models.py:896 +msgid "Date of last update of availability data" +msgstr "" + +#: company/models.py:1024 +msgid "Supplier Price Break" +msgstr "" + +#: company/serializers.py:178 +msgid "Default currency used for this supplier" +msgstr "" + +#: company/serializers.py:214 +msgid "Company Name" +msgstr "" + +#: company/serializers.py:397 part/admin.py:126 part/serializers.py:950 +#: part/templates/part/part_base.html:198 stock/serializers.py:474 +#: templates/js/translated/company.js:1690 +#: templates/js/translated/table_filters.js:362 +msgid "In Stock" +msgstr "" + +#: company/templates/company/company_base.html:16 +#: part/templates/part/part_base.html:147 +#: templates/js/translated/company.js:1288 +#: templates/js/translated/company.js:1576 +#: templates/js/translated/model_renderers.js:316 +#: templates/js/translated/part.js:817 templates/js/translated/part.js:1225 +msgid "Inactive" +msgstr "" + +#: company/templates/company/company_base.html:27 +#: templates/js/translated/purchase_order.js:224 +msgid "Create Purchase Order" +msgstr "" + +#: company/templates/company/company_base.html:33 +msgid "Company actions" +msgstr "" + +#: company/templates/company/company_base.html:38 +msgid "Edit company information" +msgstr "" + +#: company/templates/company/company_base.html:39 +#: templates/js/translated/company.js:446 +msgid "Edit Company" +msgstr "" + +#: company/templates/company/company_base.html:43 +msgid "Delete company" +msgstr "" + +#: company/templates/company/company_base.html:44 +#: company/templates/company/company_base.html:168 +msgid "Delete Company" +msgstr "" + +#: company/templates/company/company_base.html:53 +#: company/templates/company/manufacturer_part.html:51 +#: company/templates/company/supplier_part.html:84 +#: part/templates/part/part_thumb.html:20 +#: report/templates/report/inventree_build_order_report.html:98 +#: report/templates/report/inventree_purchase_order_report.html:40 +#: report/templates/report/inventree_sales_order_report.html:40 +#: report/templates/report/inventree_sales_order_shipment_report.html:37 +#: report/templates/report/inventree_test_report.html:84 +#: report/templates/report/inventree_test_report.html:162 +msgid "Part image" +msgstr "" + +#: company/templates/company/company_base.html:61 +#: part/templates/part/part_thumb.html:12 +msgid "Upload new image" +msgstr "" + +#: company/templates/company/company_base.html:64 +#: part/templates/part/part_thumb.html:14 +msgid "Download image from URL" +msgstr "" + +#: company/templates/company/company_base.html:66 +#: part/templates/part/part_thumb.html:16 +msgid "Delete image" +msgstr "" + +#: company/templates/company/company_base.html:92 order/models.py:1017 +#: order/models.py:2186 order/templates/order/return_order_base.html:135 +#: order/templates/order/sales_order_base.html:152 stock/models.py:917 +#: stock/models.py:918 stock/serializers.py:1360 +#: stock/templates/stock/item_base.html:402 +#: templates/email/overdue_sales_order.html:16 +#: templates/js/translated/company.js:504 +#: templates/js/translated/return_order.js:295 +#: templates/js/translated/sales_order.js:779 +#: templates/js/translated/stock.js:3044 +#: templates/js/translated/table_filters.js:820 +msgid "Customer" +msgstr "" + +#: company/templates/company/company_base.html:117 +msgid "Uses default currency" +msgstr "" + +#: company/templates/company/company_base.html:131 +msgid "Phone" +msgstr "" + +#: company/templates/company/company_base.html:211 +#: part/templates/part/part_base.html:544 +msgid "Remove Image" +msgstr "" + +#: company/templates/company/company_base.html:212 +msgid "Remove associated image from this company" +msgstr "" + +#: company/templates/company/company_base.html:214 +#: part/templates/part/part_base.html:547 +#: templates/InvenTree/settings/user.html:88 +#: templates/InvenTree/settings/user_sso.html:43 +msgid "Remove" +msgstr "" + +#: company/templates/company/company_base.html:243 +#: part/templates/part/part_base.html:576 +msgid "Upload Image" +msgstr "" + +#: company/templates/company/company_base.html:258 +#: part/templates/part/part_base.html:630 +msgid "Download Image" +msgstr "" + +#: company/templates/company/detail.html:15 +#: company/templates/company/manufacturer_part_sidebar.html:7 +#: templates/InvenTree/search.html:120 templates/js/translated/search.js:147 +msgid "Supplier Parts" +msgstr "" + +#: company/templates/company/detail.html:19 +msgid "Create new supplier part" +msgstr "" + +#: company/templates/company/detail.html:20 +#: company/templates/company/manufacturer_part.html:123 +#: part/templates/part/detail.html:372 +msgid "New Supplier Part" +msgstr "" + +#: company/templates/company/detail.html:41 templates/InvenTree/search.html:105 +#: templates/js/translated/search.js:151 +msgid "Manufacturer Parts" +msgstr "" + +#: company/templates/company/detail.html:45 +msgid "Create new manufacturer part" +msgstr "" + +#: company/templates/company/detail.html:46 part/templates/part/detail.html:392 +msgid "New Manufacturer Part" +msgstr "" + +#: company/templates/company/detail.html:65 +msgid "Supplier Stock" +msgstr "" + +#: company/templates/company/detail.html:75 +#: company/templates/company/sidebar.html:12 +#: company/templates/company/supplier_part_sidebar.html:7 +#: order/templates/order/order_base.html:14 +#: order/templates/order/purchase_orders.html:8 +#: order/templates/order/purchase_orders.html:12 +#: part/templates/part/detail.html:122 part/templates/part/part_sidebar.html:35 +#: templates/InvenTree/index.html:227 templates/InvenTree/search.html:199 +#: templates/InvenTree/settings/sidebar.html:57 +#: templates/js/translated/search.js:205 templates/navbar.html:50 +#: users/models.py:208 +msgid "Purchase Orders" +msgstr "" + +#: company/templates/company/detail.html:79 +#: order/templates/order/purchase_orders.html:17 +msgid "Create new purchase order" +msgstr "" + +#: company/templates/company/detail.html:80 +#: order/templates/order/purchase_orders.html:18 +msgid "New Purchase Order" +msgstr "" + +#: company/templates/company/detail.html:101 +#: company/templates/company/sidebar.html:21 +#: order/templates/order/sales_order_base.html:14 +#: order/templates/order/sales_orders.html:8 +#: order/templates/order/sales_orders.html:15 +#: part/templates/part/detail.html:143 part/templates/part/part_sidebar.html:39 +#: templates/InvenTree/index.html:259 templates/InvenTree/search.html:219 +#: templates/InvenTree/settings/sidebar.html:59 +#: templates/js/translated/search.js:219 templates/navbar.html:62 +#: users/models.py:209 +msgid "Sales Orders" +msgstr "" + +#: company/templates/company/detail.html:105 +#: order/templates/order/sales_orders.html:20 +msgid "Create new sales order" +msgstr "" + +#: company/templates/company/detail.html:106 +#: order/templates/order/sales_orders.html:21 +msgid "New Sales Order" +msgstr "" + +#: company/templates/company/detail.html:126 +msgid "Assigned Stock" +msgstr "" + +#: company/templates/company/detail.html:142 +#: company/templates/company/sidebar.html:29 +#: order/templates/order/return_order_base.html:14 +#: order/templates/order/return_orders.html:8 +#: order/templates/order/return_orders.html:15 +#: templates/InvenTree/settings/sidebar.html:61 +#: templates/js/translated/search.js:232 templates/navbar.html:65 +#: users/models.py:210 +msgid "Return Orders" +msgstr "" + +#: company/templates/company/detail.html:146 +#: order/templates/order/return_orders.html:20 +msgid "Create new return order" +msgstr "" + +#: company/templates/company/detail.html:147 +#: order/templates/order/return_orders.html:21 +msgid "New Return Order" +msgstr "" + +#: company/templates/company/detail.html:168 +msgid "Company Notes" +msgstr "" + +#: company/templates/company/detail.html:183 +msgid "Company Contacts" +msgstr "" + +#: company/templates/company/detail.html:187 +#: company/templates/company/detail.html:188 +msgid "Add Contact" +msgstr "" + +#: company/templates/company/detail.html:206 +msgid "Company addresses" +msgstr "" + +#: company/templates/company/detail.html:210 +#: company/templates/company/detail.html:211 +msgid "Add Address" +msgstr "" + +#: company/templates/company/manufacturer_part.html:15 company/views.py:37 +#: templates/InvenTree/search.html:180 templates/navbar.html:49 +msgid "Manufacturers" +msgstr "" + +#: company/templates/company/manufacturer_part.html:35 +#: company/templates/company/supplier_part.html:228 +#: part/templates/part/detail.html:125 part/templates/part/part_base.html:84 +msgid "Order part" +msgstr "" + +#: company/templates/company/manufacturer_part.html:39 +#: templates/js/translated/company.js:1344 +msgid "Edit manufacturer part" +msgstr "" + +#: company/templates/company/manufacturer_part.html:43 +#: templates/js/translated/company.js:1345 +msgid "Delete manufacturer part" +msgstr "" + +#: company/templates/company/manufacturer_part.html:65 +#: company/templates/company/supplier_part.html:98 order/api.py:411 +#: order/serializers.py:649 +msgid "Internal Part" +msgstr "" + +#: company/templates/company/manufacturer_part.html:95 +msgid "No manufacturer information available" +msgstr "" + +#: company/templates/company/manufacturer_part.html:119 +#: company/templates/company/supplier_part.html:16 company/views.py:31 +#: part/admin.py:122 part/serializers.py:956 +#: part/templates/part/part_sidebar.html:33 templates/InvenTree/search.html:190 +#: templates/navbar.html:48 +msgid "Suppliers" +msgstr "" + +#: company/templates/company/manufacturer_part.html:156 +#: company/templates/company/manufacturer_part_sidebar.html:5 +#: part/templates/part/category_sidebar.html:20 +#: part/templates/part/detail.html:211 part/templates/part/part_sidebar.html:8 +msgid "Parameters" +msgstr "" + +#: company/templates/company/manufacturer_part.html:160 +#: part/templates/part/detail.html:216 +#: templates/InvenTree/settings/category.html:12 +#: templates/InvenTree/settings/part_parameters.html:24 +msgid "New Parameter" +msgstr "" + +#: company/templates/company/manufacturer_part.html:177 +msgid "Manufacturer Part Notes" +msgstr "" + +#: company/templates/company/manufacturer_part.html:225 +#: templates/js/translated/part.js:1429 +msgid "Add Parameter" +msgstr "" + +#: company/templates/company/sidebar.html:6 +msgid "Manufactured Parts" +msgstr "" + +#: company/templates/company/sidebar.html:10 +msgid "Supplied Parts" +msgstr "" + +#: company/templates/company/sidebar.html:16 +msgid "Supplied Stock Items" +msgstr "" + +#: company/templates/company/sidebar.html:25 +msgid "Assigned Stock Items" +msgstr "" + +#: company/templates/company/sidebar.html:33 +msgid "Contacts" +msgstr "" + +#: company/templates/company/supplier_part.html:51 +#: templates/js/translated/company.js:1527 +msgid "Supplier part actions" +msgstr "" + +#: company/templates/company/supplier_part.html:56 +#: company/templates/company/supplier_part.html:57 +#: company/templates/company/supplier_part.html:229 +#: part/templates/part/detail.html:126 +msgid "Order Part" +msgstr "" + +#: company/templates/company/supplier_part.html:61 +#: company/templates/company/supplier_part.html:62 +msgid "Update Availability" +msgstr "" + +#: company/templates/company/supplier_part.html:64 +#: company/templates/company/supplier_part.html:65 +#: templates/js/translated/company.js:295 +msgid "Edit Supplier Part" +msgstr "" + +#: company/templates/company/supplier_part.html:69 +#: company/templates/company/supplier_part.html:70 +#: templates/js/translated/company.js:270 +msgid "Duplicate Supplier Part" +msgstr "" + +#: company/templates/company/supplier_part.html:74 +msgid "Delete Supplier Part" +msgstr "" + +#: company/templates/company/supplier_part.html:75 +msgid "Delete Supplier Part" +msgstr "" + +#: company/templates/company/supplier_part.html:134 +#: order/templates/order/order_base.html:155 +msgid "No supplier information available" +msgstr "" + +#: company/templates/company/supplier_part.html:140 order/serializers.py:638 +#: part/bom.py:286 part/bom.py:315 part/serializers.py:592 +#: templates/js/translated/company.js:350 templates/js/translated/part.js:1793 +#: templates/js/translated/pricing.js:510 +#: templates/js/translated/purchase_order.js:1904 +#: templates/js/translated/purchase_order.js:2082 +msgid "SKU" +msgstr "" + +#: company/templates/company/supplier_part.html:207 +msgid "Supplier Part Stock" +msgstr "" + +#: company/templates/company/supplier_part.html:210 +#: part/templates/part/detail.html:24 stock/templates/stock/location.html:205 +msgid "Create new stock item" +msgstr "" + +#: company/templates/company/supplier_part.html:211 +#: part/templates/part/detail.html:25 stock/templates/stock/location.html:206 +#: templates/js/translated/stock.js:543 +msgid "New Stock Item" +msgstr "" + +#: company/templates/company/supplier_part.html:224 +msgid "Supplier Part Orders" +msgstr "" + +#: company/templates/company/supplier_part.html:247 +msgid "Pricing Information" +msgstr "" + +#: company/templates/company/supplier_part.html:252 +#: templates/js/translated/company.js:399 +#: templates/js/translated/pricing.js:684 +msgid "Add Price Break" +msgstr "" + +#: company/templates/company/supplier_part.html:271 +msgid "Supplier Part Notes" +msgstr "" + +#: company/templates/company/supplier_part.html:306 +msgid "Supplier Part QR Code" +msgstr "" + +#: company/templates/company/supplier_part.html:317 +msgid "Link Barcode to Supplier Part" +msgstr "" + +#: company/templates/company/supplier_part.html:389 +msgid "Update Part Availability" +msgstr "" + +#: company/templates/company/supplier_part_sidebar.html:5 +#: part/serializers.py:954 part/stocktake.py:223 +#: part/templates/part/category.html:180 +#: part/templates/part/category_sidebar.html:17 stock/admin.py:68 +#: stock/serializers.py:1045 stock/serializers.py:1223 +#: stock/templates/stock/location.html:168 +#: stock/templates/stock/location.html:189 +#: stock/templates/stock/location.html:201 +#: stock/templates/stock/location_sidebar.html:7 +#: templates/InvenTree/search.html:155 templates/js/translated/part.js:1067 +#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2851 +#: users/models.py:206 +msgid "Stock Items" +msgstr "" + +#: company/templates/company/supplier_part_sidebar.html:9 +msgid "Supplier Part Pricing" +msgstr "" + +#: company/views.py:32 +msgid "New Supplier" +msgstr "" + +#: company/views.py:38 +msgid "New Manufacturer" +msgstr "" + +#: company/views.py:43 templates/InvenTree/search.html:210 +#: templates/navbar.html:60 +msgid "Customers" +msgstr "" + +#: company/views.py:44 +msgid "New Customer" +msgstr "" + +#: company/views.py:52 +msgid "New Company" +msgstr "" + +#: generic/states/fields.py:118 +msgid "Custom status key" +msgstr "" + +#: generic/states/fields.py:119 +msgid "Additional status information for this item" +msgstr "" + +#: generic/states/tests.py:22 order/status_codes.py:13 +msgid "Placed" +msgstr "" + +#: importer/mixins.py:261 +msgid "Invalid export format" +msgstr "" + +#: importer/models.py:65 +msgid "Data file to import" +msgstr "" + +#: importer/models.py:74 templates/js/translated/tables.js:558 +msgid "Columns" +msgstr "" + +#: importer/models.py:85 +msgid "Import status" +msgstr "" + +#: importer/models.py:95 +msgid "Field Defaults" +msgstr "" + +#: importer/models.py:102 +msgid "Field Overrides" +msgstr "" + +#: importer/models.py:109 +msgid "Field Filters" +msgstr "" + +#: importer/models.py:239 +msgid "Some required fields have not been mapped" +msgstr "" + +#: importer/models.py:396 +msgid "Column is already mapped to a database field" +msgstr "" + +#: importer/models.py:401 +msgid "Field is already mapped to a data column" +msgstr "" + +#: importer/models.py:410 +msgid "Column mapping must be linked to a valid import session" +msgstr "" + +#: importer/models.py:415 +msgid "Column does not exist in the data file" +msgstr "" + +#: importer/models.py:422 +msgid "Field does not exist in the target model" +msgstr "" + +#: importer/models.py:426 +msgid "Selected field is read-only" +msgstr "" + +#: importer/models.py:431 importer/models.py:502 +msgid "Import Session" +msgstr "" + +#: importer/models.py:435 +msgid "Field" +msgstr "" + +#: importer/models.py:437 +msgid "Column" +msgstr "" + +#: importer/models.py:506 +msgid "Row Index" +msgstr "" + +#: importer/models.py:509 +msgid "Original row data" +msgstr "" + +#: importer/models.py:514 machine/models.py:110 +msgid "Errors" +msgstr "" + +#: importer/models.py:516 part/api.py:857 +msgid "Valid" +msgstr "" + +#: importer/operations.py:28 importer/operations.py:49 +msgid "Unsupported data file format" +msgstr "" + +#: importer/operations.py:40 +msgid "Failed to open data file" +msgstr "" + +#: importer/operations.py:51 +msgid "Invalid data file dimensions" +msgstr "" + +#: importer/serializers.py:91 +msgid "Invalid field defaults" +msgstr "" + +#: importer/serializers.py:104 +msgid "Invalid field overrides" +msgstr "" + +#: importer/serializers.py:117 +msgid "Invalid field filters" +msgstr "" + +#: importer/serializers.py:178 +msgid "Rows" +msgstr "" + +#: importer/serializers.py:179 +msgid "List of row IDs to accept" +msgstr "" + +#: importer/serializers.py:192 +msgid "No rows provided" +msgstr "" + +#: importer/serializers.py:196 +msgid "Row does not belong to this session" +msgstr "" + +#: importer/serializers.py:199 +msgid "Row contains invalid data" +msgstr "" + +#: importer/serializers.py:202 +msgid "Row has already been completed" +msgstr "" + +#: importer/status_codes.py:13 +msgid "Initializing" +msgstr "" + +#: importer/status_codes.py:18 +msgid "Mapping Columns" +msgstr "" + +#: importer/status_codes.py:21 +msgid "Importing Data" +msgstr "" + +#: importer/status_codes.py:24 +msgid "Processing Data" +msgstr "" + +#: importer/validators.py:21 +msgid "Data file exceeds maximum size limit" +msgstr "" + +#: importer/validators.py:26 +msgid "Data file contains no headers" +msgstr "" + +#: importer/validators.py:29 +msgid "Data file contains too many columns" +msgstr "" + +#: importer/validators.py:32 +msgid "Data file contains too many rows" +msgstr "" + +#: importer/validators.py:53 +msgid "Value must be a valid dictionary object" +msgstr "" + +#: machine/machine_types/label_printer.py:216 +msgid "Copies" +msgstr "" + +#: machine/machine_types/label_printer.py:217 +msgid "Number of copies to print for each label" +msgstr "" + +#: machine/machine_types/label_printer.py:232 +msgid "Connected" +msgstr "" + +#: machine/machine_types/label_printer.py:233 order/api.py:1532 +#: templates/js/translated/sales_order.js:1044 +msgid "Unknown" +msgstr "" + +#: machine/machine_types/label_printer.py:234 +msgid "Printing" +msgstr "" + +#: machine/machine_types/label_printer.py:235 +msgid "No media" +msgstr "" + +#: machine/machine_types/label_printer.py:236 +msgid "Paper jam" +msgstr "" + +#: machine/machine_types/label_printer.py:237 +msgid "Disconnected" +msgstr "" + +#: machine/machine_types/label_printer.py:244 +msgid "Label Printer" +msgstr "" + +#: machine/machine_types/label_printer.py:245 +msgid "Directly print labels for various items." +msgstr "" + +#: machine/machine_types/label_printer.py:251 +msgid "Printer Location" +msgstr "" + +#: machine/machine_types/label_printer.py:252 +msgid "Scope the printer to a specific location" +msgstr "" + +#: machine/models.py:25 +msgid "Name of machine" +msgstr "" + +#: machine/models.py:29 +msgid "Machine Type" +msgstr "" + +#: machine/models.py:29 +msgid "Type of machine" +msgstr "" + +#: machine/models.py:34 machine/models.py:146 +msgid "Driver" +msgstr "" + +#: machine/models.py:35 +msgid "Driver used for the machine" +msgstr "" + +#: machine/models.py:39 +msgid "Machines can be disabled" +msgstr "" + +#: machine/models.py:95 +msgid "Driver available" +msgstr "" + +#: machine/models.py:100 +msgid "No errors" +msgstr "" + +#: machine/models.py:105 +msgid "Initialized" +msgstr "" + +#: machine/models.py:117 +msgid "Machine status" +msgstr "" + +#: machine/models.py:145 +msgid "Machine" +msgstr "" + +#: machine/models.py:151 +msgid "Machine Config" +msgstr "" + +#: machine/models.py:156 +msgid "Config type" +msgstr "" + +#: order/admin.py:30 order/models.py:89 +#: report/templates/report/inventree_purchase_order_report.html:31 +#: report/templates/report/inventree_sales_order_report.html:31 +#: templates/js/translated/order.js:352 +#: templates/js/translated/purchase_order.js:2179 +#: templates/js/translated/sales_order.js:1864 +msgid "Total Price" +msgstr "" + +#: order/api.py:78 order/api.py:149 order/serializers.py:124 +#: order/templates/order/order_base.html:124 +#: order/templates/order/return_order_base.html:117 +#: order/templates/order/sales_order_base.html:126 +msgid "Order Status" +msgstr "" + +#: order/api.py:86 order/templates/order/order_base.html:112 +#: order/templates/order/return_order_base.html:105 +#: order/templates/order/sales_order_base.html:114 +msgid "Order Reference" +msgstr "" + +#: order/api.py:114 order/api.py:1022 +#: templates/js/translated/table_filters.js:93 +#: templates/js/translated/table_filters.js:625 +#: templates/js/translated/table_filters.js:651 +#: templates/js/translated/table_filters.js:666 +msgid "Outstanding" +msgstr "" + +#: order/api.py:130 +msgid "Has Project Code" +msgstr "" + +#: order/api.py:153 templates/js/translated/table_filters.js:201 +#: templates/js/translated/table_filters.js:791 +msgid "Has Pricing" +msgstr "" + +#: order/api.py:375 order/api.py:771 order/api.py:986 order/models.py:1500 +#: order/models.py:1614 order/models.py:1665 order/models.py:1793 +#: order/models.py:1956 order/models.py:2422 order/models.py:2478 +#: templates/js/translated/sales_order.js:1490 +msgid "Order" +msgstr "" + +#: order/api.py:379 order/api.py:809 +msgid "Order Complete" +msgstr "" + +#: order/api.py:430 +msgid "Order Pending" +msgstr "" + +#: order/api.py:1526 order/models.py:386 order/models.py:1501 +#: order/models.py:1615 order/templates/order/order_base.html:10 +#: order/templates/order/order_base.html:19 +#: report/templates/report/inventree_purchase_order_report.html:14 +#: stock/serializers.py:121 stock/templates/stock/item_base.html:173 +#: templates/email/overdue_purchase_order.html:15 +#: templates/js/translated/part.js:1752 templates/js/translated/pricing.js:804 +#: templates/js/translated/purchase_order.js:736 +#: templates/js/translated/purchase_order.js:1727 +#: templates/js/translated/stock.js:2346 templates/js/translated/stock.js:2992 +msgid "Purchase Order" +msgstr "" + +#: order/api.py:1530 order/models.py:2124 order/models.py:2423 +#: order/models.py:2479 order/templates/order/return_order_base.html:10 +#: order/templates/order/return_order_base.html:29 +#: report/templates/report/inventree_return_order_report.html:13 +#: templates/js/translated/return_order.js:280 +#: templates/js/translated/stock.js:3026 +msgid "Return Order" +msgstr "" + +#: order/models.py:90 +msgid "Total price for this order" +msgstr "" + +#: order/models.py:95 order/serializers.py:73 +msgid "Order Currency" +msgstr "" + +#: order/models.py:98 order/serializers.py:74 +msgid "Currency for this order (leave blank to use company default)" +msgstr "" + +#: order/models.py:243 +msgid "Contact does not match selected company" +msgstr "" + +#: order/models.py:296 +msgid "Order description (optional)" +msgstr "" + +#: order/models.py:305 +msgid "Select project code for this order" +msgstr "" + +#: order/models.py:309 order/models.py:1402 order/models.py:1846 +msgid "Link to external page" +msgstr "" + +#: order/models.py:317 +msgid "Expected date for order delivery. Order will be overdue after this date." +msgstr "" + +#: order/models.py:331 +msgid "Created By" +msgstr "" + +#: order/models.py:339 +msgid "User or group responsible for this order" +msgstr "" + +#: order/models.py:350 +msgid "Point of contact for this order" +msgstr "" + +#: order/models.py:360 +msgid "Company address for this order" +msgstr "" + +#: order/models.py:480 order/models.py:1006 +msgid "Order reference" +msgstr "" + +#: order/models.py:489 +msgid "Purchase order status" +msgstr "" + +#: order/models.py:504 +msgid "Company from which the items are being ordered" +msgstr "" + +#: order/models.py:515 order/templates/order/order_base.html:162 +#: templates/js/translated/purchase_order.js:1756 +msgid "Supplier Reference" +msgstr "" + +#: order/models.py:516 +msgid "Supplier order reference code" +msgstr "" + +#: order/models.py:525 +msgid "received by" +msgstr "" + +#: order/models.py:531 order/models.py:2212 +msgid "Issue Date" +msgstr "" + +#: order/models.py:532 order/models.py:2213 +msgid "Date order was issued" +msgstr "" + +#: order/models.py:539 order/models.py:2220 +msgid "Date order was completed" +msgstr "" + +#: order/models.py:549 order/models.py:1552 +msgid "Destination for received items" +msgstr "" + +#: order/models.py:593 +msgid "Part supplier must match PO supplier" +msgstr "" + +#: order/models.py:828 +msgid "Quantity must be a positive number" +msgstr "" + +#: order/models.py:1018 +msgid "Company to which the items are being sold" +msgstr "" + +#: order/models.py:1030 +msgid "Sales order status" +msgstr "" + +#: order/models.py:1041 order/models.py:2205 +msgid "Customer Reference " +msgstr "" + +#: order/models.py:1042 order/models.py:2206 +msgid "Customer order reference code" +msgstr "" + +#: order/models.py:1046 order/models.py:1800 +#: templates/js/translated/sales_order.js:838 +#: templates/js/translated/sales_order.js:1026 +msgid "Shipment Date" +msgstr "" + +#: order/models.py:1055 +msgid "shipped by" +msgstr "" + +#: order/models.py:1094 +msgid "Order is already complete" +msgstr "" + +#: order/models.py:1097 +msgid "Order is already cancelled" +msgstr "" + +#: order/models.py:1101 +msgid "Only an open order can be marked as complete" +msgstr "" + +#: order/models.py:1105 +msgid "Order cannot be completed as there are incomplete shipments" +msgstr "" + +#: order/models.py:1110 +msgid "Order cannot be completed as there are incomplete line items" +msgstr "" + +#: order/models.py:1374 +msgid "Item quantity" +msgstr "" + +#: order/models.py:1391 +msgid "Line item reference" +msgstr "" + +#: order/models.py:1398 +msgid "Line item notes" +msgstr "" + +#: order/models.py:1410 +msgid "Target date for this line item (leave blank to use the target date from the order)" +msgstr "" + +#: order/models.py:1431 +msgid "Line item description (optional)" +msgstr "" + +#: order/models.py:1438 +msgid "Additional context for this line" +msgstr "" + +#: order/models.py:1448 +msgid "Unit price" +msgstr "" + +#: order/models.py:1462 +msgid "Purchase Order Line Item" +msgstr "" + +#: order/models.py:1486 +msgid "Supplier part must match supplier" +msgstr "" + +#: order/models.py:1520 +msgid "Supplier part" +msgstr "" + +#: order/models.py:1527 order/templates/order/order_base.html:210 +#: templates/js/translated/part.js:1876 templates/js/translated/part.js:1908 +#: templates/js/translated/purchase_order.js:1352 +#: templates/js/translated/purchase_order.js:2223 +#: templates/js/translated/return_order.js:762 +#: templates/js/translated/table_filters.js:119 +#: templates/js/translated/table_filters.js:605 +msgid "Received" +msgstr "" + +#: order/models.py:1528 +msgid "Number of items received" +msgstr "" + +#: order/models.py:1536 stock/models.py:1036 stock/serializers.py:637 +#: stock/templates/stock/item_base.html:180 +#: templates/js/translated/stock.js:2397 +msgid "Purchase Price" +msgstr "" + +#: order/models.py:1537 +msgid "Unit purchase price" +msgstr "" + +#: order/models.py:1603 +msgid "Purchase Order Extra Line" +msgstr "" + +#: order/models.py:1632 +msgid "Sales Order Line Item" +msgstr "" + +#: order/models.py:1653 +msgid "Virtual part cannot be assigned to a sales order" +msgstr "" + +#: order/models.py:1658 +msgid "Only salable parts can be assigned to a sales order" +msgstr "" + +#: order/models.py:1684 part/templates/part/part_pricing.html:107 +#: part/templates/part/prices.html:139 templates/js/translated/pricing.js:955 +msgid "Sale Price" +msgstr "" + +#: order/models.py:1685 +msgid "Unit sale price" +msgstr "" + +#: order/models.py:1694 order/status_codes.py:50 +#: templates/js/translated/sales_order.js:1525 +#: templates/js/translated/sales_order.js:1661 +#: templates/js/translated/sales_order.js:1974 +msgid "Shipped" +msgstr "" + +#: order/models.py:1695 +msgid "Shipped quantity" +msgstr "" + +#: order/models.py:1769 +msgid "Sales Order Shipment" +msgstr "" + +#: order/models.py:1801 +msgid "Date of shipment" +msgstr "" + +#: order/models.py:1807 templates/js/translated/sales_order.js:1038 +msgid "Delivery Date" +msgstr "" + +#: order/models.py:1808 +msgid "Date of delivery of shipment" +msgstr "" + +#: order/models.py:1816 +msgid "Checked By" +msgstr "" + +#: order/models.py:1817 +msgid "User who checked this shipment" +msgstr "" + +#: order/models.py:1824 order/models.py:2051 order/serializers.py:1601 +#: order/serializers.py:1725 +#: report/templates/report/inventree_sales_order_shipment_report.html:14 +#: templates/js/translated/model_renderers.js:458 +#: templates/js/translated/sales_order.js:1615 +msgid "Shipment" +msgstr "" + +#: order/models.py:1825 +msgid "Shipment number" +msgstr "" + +#: order/models.py:1833 +msgid "Tracking Number" +msgstr "" + +#: order/models.py:1834 +msgid "Shipment tracking information" +msgstr "" + +#: order/models.py:1841 +msgid "Invoice Number" +msgstr "" + +#: order/models.py:1842 +msgid "Reference number for associated invoice" +msgstr "" + +#: order/models.py:1862 +msgid "Shipment has already been sent" +msgstr "" + +#: order/models.py:1865 +msgid "Shipment has no allocated stock items" +msgstr "" + +#: order/models.py:1945 +msgid "Sales Order Extra Line" +msgstr "" + +#: order/models.py:1974 +msgid "Sales Order Allocation" +msgstr "" + +#: order/models.py:1997 order/models.py:1999 +msgid "Stock item has not been assigned" +msgstr "" + +#: order/models.py:2006 +msgid "Cannot allocate stock item to a line with a different part" +msgstr "" + +#: order/models.py:2009 +msgid "Cannot allocate stock to a line without a part" +msgstr "" + +#: order/models.py:2012 +msgid "Allocation quantity cannot exceed stock quantity" +msgstr "" + +#: order/models.py:2031 order/serializers.py:1471 +msgid "Quantity must be 1 for serialized stock item" +msgstr "" + +#: order/models.py:2034 +msgid "Sales order does not match shipment" +msgstr "" + +#: order/models.py:2035 plugin/base/barcodes/api.py:629 +msgid "Shipment does not match sales order" +msgstr "" + +#: order/models.py:2043 +msgid "Line" +msgstr "" + +#: order/models.py:2052 +msgid "Sales order shipment reference" +msgstr "" + +#: order/models.py:2065 order/models.py:2430 +#: templates/js/translated/return_order.js:720 +msgid "Item" +msgstr "" + +#: order/models.py:2066 +msgid "Select stock item to allocate" +msgstr "" + +#: order/models.py:2075 +msgid "Enter stock allocation quantity" +msgstr "" + +#: order/models.py:2175 +msgid "Return Order reference" +msgstr "" + +#: order/models.py:2187 +msgid "Company from which items are being returned" +msgstr "" + +#: order/models.py:2199 +msgid "Return order status" +msgstr "" + +#: order/models.py:2401 +msgid "Return Order Line Item" +msgstr "" + +#: order/models.py:2415 +msgid "Only serialized items can be assigned to a Return Order" +msgstr "" + +#: order/models.py:2431 +msgid "Select item to return from customer" +msgstr "" + +#: order/models.py:2437 +msgid "Received Date" +msgstr "" + +#: order/models.py:2438 +msgid "The date this this return item was received" +msgstr "" + +#: order/models.py:2449 templates/js/translated/return_order.js:731 +#: templates/js/translated/table_filters.js:122 +msgid "Outcome" +msgstr "" + +#: order/models.py:2450 +msgid "Outcome for this line item" +msgstr "" + +#: order/models.py:2457 +msgid "Cost associated with return or repair for this line item" +msgstr "" + +#: order/models.py:2467 +msgid "Return Order Extra Line" +msgstr "" + +#: order/serializers.py:87 +msgid "Order ID" +msgstr "" + +#: order/serializers.py:87 +msgid "ID of the order to duplicate" +msgstr "" + +#: order/serializers.py:93 +msgid "Copy Lines" +msgstr "" + +#: order/serializers.py:94 +msgid "Copy line items from the original order" +msgstr "" + +#: order/serializers.py:100 +msgid "Copy Extra Lines" +msgstr "" + +#: order/serializers.py:101 +msgid "Copy extra line items from the original order" +msgstr "" + +#: order/serializers.py:117 +msgid "Completed Lines" +msgstr "" + +#: order/serializers.py:161 +msgid "Duplicate Order" +msgstr "" + +#: order/serializers.py:162 +msgid "Specify options for duplicating this order" +msgstr "" + +#: order/serializers.py:234 +msgid "Invalid order ID" +msgstr "" + +#: order/serializers.py:374 stock/admin.py:196 +msgid "Supplier Name" +msgstr "" + +#: order/serializers.py:416 +msgid "Order cannot be cancelled" +msgstr "" + +#: order/serializers.py:431 order/serializers.py:1492 +msgid "Allow order to be closed with incomplete line items" +msgstr "" + +#: order/serializers.py:441 order/serializers.py:1502 +msgid "Order has incomplete line items" +msgstr "" + +#: order/serializers.py:591 +msgid "Order is not open" +msgstr "" + +#: order/serializers.py:612 +msgid "Auto Pricing" +msgstr "" + +#: order/serializers.py:614 +msgid "Automatically calculate purchase price based on supplier part data" +msgstr "" + +#: order/serializers.py:624 +msgid "Purchase price currency" +msgstr "" + +#: order/serializers.py:630 +msgid "Merge Items" +msgstr "" + +#: order/serializers.py:632 +msgid "Merge items with the same part, destination and target date into one line item" +msgstr "" + +#: order/serializers.py:645 part/models.py:1094 part/serializers.py:387 +msgid "Internal Part Number" +msgstr "" + +#: order/serializers.py:653 +msgid "Internal Part Name" +msgstr "" + +#: order/serializers.py:669 +msgid "Supplier part must be specified" +msgstr "" + +#: order/serializers.py:672 +msgid "Purchase order must be specified" +msgstr "" + +#: order/serializers.py:680 +msgid "Supplier must match purchase order" +msgstr "" + +#: order/serializers.py:681 +msgid "Purchase order must match supplier" +msgstr "" + +#: order/serializers.py:724 order/serializers.py:1572 +msgid "Line Item" +msgstr "" + +#: order/serializers.py:730 +msgid "Line item does not match purchase order" +msgstr "" + +#: order/serializers.py:740 order/serializers.py:881 order/serializers.py:1934 +msgid "Select destination location for received items" +msgstr "" + +#: order/serializers.py:756 templates/js/translated/purchase_order.js:1113 +#: templates/js/translated/stock.js:1200 +msgid "Enter batch code for incoming stock items" +msgstr "" + +#: order/serializers.py:764 templates/js/translated/purchase_order.js:1138 +msgid "Enter serial numbers for incoming stock items" +msgstr "" + +#: order/serializers.py:776 +msgid "Override packaging information for incoming stock items" +msgstr "" + +#: order/serializers.py:784 +msgid "Additional note for incoming stock items" +msgstr "" + +#: order/serializers.py:791 templates/js/translated/barcode.js:52 +msgid "Barcode" +msgstr "" + +#: order/serializers.py:792 +msgid "Scanned barcode" +msgstr "" + +#: order/serializers.py:808 +msgid "Barcode is already in use" +msgstr "" + +#: order/serializers.py:831 +msgid "An integer quantity must be provided for trackable parts" +msgstr "" + +#: order/serializers.py:898 order/serializers.py:1950 +msgid "Line items must be provided" +msgstr "" + +#: order/serializers.py:914 +msgid "Destination location must be specified" +msgstr "" + +#: order/serializers.py:925 +msgid "Supplied barcode values must be unique" +msgstr "" + +#: order/serializers.py:1221 +msgid "Sale price currency" +msgstr "" + +#: order/serializers.py:1260 +msgid "Allocated Items" +msgstr "" + +#: order/serializers.py:1374 +msgid "No shipment details provided" +msgstr "" + +#: order/serializers.py:1435 order/serializers.py:1581 +msgid "Line item is not associated with this order" +msgstr "" + +#: order/serializers.py:1454 +msgid "Quantity must be positive" +msgstr "" + +#: order/serializers.py:1591 +msgid "Enter serial numbers to allocate" +msgstr "" + +#: order/serializers.py:1613 order/serializers.py:1733 +msgid "Shipment has already been shipped" +msgstr "" + +#: order/serializers.py:1616 order/serializers.py:1736 +msgid "Shipment is not associated with this order" +msgstr "" + +#: order/serializers.py:1671 +msgid "No match found for the following serial numbers" +msgstr "" + +#: order/serializers.py:1678 +msgid "The following serial numbers are unavailable" +msgstr "" + +#: order/serializers.py:1904 +msgid "Return order line item" +msgstr "" + +#: order/serializers.py:1910 +msgid "Line item does not match return order" +msgstr "" + +#: order/serializers.py:1913 +msgid "Line item has already been received" +msgstr "" + +#: order/serializers.py:1942 +msgid "Items can only be received against orders which are in progress" +msgstr "" + +#: order/serializers.py:2025 +msgid "Line price currency" +msgstr "" + +#: order/status_codes.py:17 order/status_codes.py:54 stock/status_codes.py:16 +msgid "Lost" +msgstr "" + +#: order/status_codes.py:18 order/status_codes.py:55 stock/status_codes.py:24 +msgid "Returned" +msgstr "" + +#: order/status_codes.py:47 order/status_codes.py:79 +msgid "In Progress" +msgstr "" + +#: order/status_codes.py:105 +msgid "Return" +msgstr "" + +#: order/status_codes.py:108 +msgid "Repair" +msgstr "" + +#: order/status_codes.py:111 +msgid "Replace" +msgstr "" + +#: order/status_codes.py:114 +msgid "Refund" +msgstr "" + +#: order/status_codes.py:117 +msgid "Reject" +msgstr "" + +#: order/tasks.py:30 +msgid "Overdue Purchase Order" +msgstr "" + +#: order/tasks.py:35 +#, python-brace-format +msgid "Purchase order {po} is now overdue" +msgstr "" + +#: order/tasks.py:80 +msgid "Overdue Sales Order" +msgstr "" + +#: order/tasks.py:85 +#, python-brace-format +msgid "Sales order {so} is now overdue" +msgstr "" + +#: order/templates/order/order_base.html:52 +msgid "Print purchase order report" +msgstr "" + +#: order/templates/order/order_base.html:54 +#: order/templates/order/return_order_base.html:63 +#: order/templates/order/sales_order_base.html:63 +msgid "Export order to file" +msgstr "" + +#: order/templates/order/order_base.html:60 +#: order/templates/order/return_order_base.html:73 +#: order/templates/order/sales_order_base.html:72 +msgid "Order actions" +msgstr "" + +#: order/templates/order/order_base.html:65 +#: order/templates/order/return_order_base.html:77 +#: order/templates/order/sales_order_base.html:76 +msgid "Edit order" +msgstr "" + +#: order/templates/order/order_base.html:69 +msgid "Duplicate order" +msgstr "" + +#: order/templates/order/order_base.html:74 +#: order/templates/order/return_order_base.html:79 +#: order/templates/order/sales_order_base.html:78 +msgid "Hold order" +msgstr "" + +#: order/templates/order/order_base.html:79 +#: order/templates/order/return_order_base.html:82 +#: order/templates/order/sales_order_base.html:81 +msgid "Cancel order" +msgstr "" + +#: order/templates/order/order_base.html:85 +#: order/templates/order/order_base.html:86 +#: order/templates/order/return_order_base.html:86 +#: order/templates/order/return_order_base.html:87 +#: order/templates/order/sales_order_base.html:87 +#: order/templates/order/sales_order_base.html:88 +msgid "Issue Order" +msgstr "" + +#: order/templates/order/order_base.html:89 +#: order/templates/order/return_order_base.html:90 +msgid "Mark order as complete" +msgstr "" + +#: order/templates/order/order_base.html:90 +#: order/templates/order/return_order_base.html:91 +#: order/templates/order/sales_order_base.html:101 +msgid "Complete Order" +msgstr "" + +#: order/templates/order/order_base.html:97 +msgid "Supplier part thumbnail" +msgstr "" + +#: order/templates/order/order_base.html:117 +#: order/templates/order/return_order_base.html:110 +#: order/templates/order/sales_order_base.html:119 +msgid "Order Description" +msgstr "" + +#: order/templates/order/order_base.html:168 +#: order/templates/order/sales_order_base.html:165 +msgid "Completed Line Items" +msgstr "" + +#: order/templates/order/order_base.html:174 +#: order/templates/order/sales_order_base.html:171 +#: order/templates/order/sales_order_base.html:181 +msgid "Incomplete" +msgstr "" + +#: order/templates/order/order_base.html:193 +#: order/templates/order/return_order_base.html:161 +#: report/templates/report/inventree_build_order_report.html:121 +msgid "Issued" +msgstr "" + +#: order/templates/order/order_base.html:238 +msgid "Total cost" +msgstr "" + +#: order/templates/order/order_base.html:242 +#: order/templates/order/return_order_base.html:203 +#: order/templates/order/sales_order_base.html:247 +msgid "Total cost could not be calculated" +msgstr "" + +#: order/templates/order/order_base.html:344 +msgid "Purchase Order QR Code" +msgstr "" + +#: order/templates/order/order_base.html:356 +msgid "Link Barcode to Purchase Order" +msgstr "" + +#: order/templates/order/order_wizard/match_fields.html:9 +#: part/templates/part/import_wizard/ajax_match_fields.html:9 +#: part/templates/part/import_wizard/match_fields.html:9 +#: templates/patterns/wizard/match_fields.html:8 +msgid "Missing selections for the following required columns" +msgstr "" + +#: order/templates/order/order_wizard/match_fields.html:20 +#: part/templates/part/import_wizard/ajax_match_fields.html:20 +#: part/templates/part/import_wizard/match_fields.html:20 +#: templates/patterns/wizard/match_fields.html:19 +msgid "Duplicate selections found, see below. Fix them then retry submitting." +msgstr "" + +#: order/templates/order/order_wizard/match_fields.html:29 +#: order/templates/order/order_wizard/match_parts.html:21 +#: part/templates/part/import_wizard/match_fields.html:29 +#: part/templates/part/import_wizard/match_references.html:21 +#: templates/patterns/wizard/match_fields.html:28 +msgid "Submit Selections" +msgstr "" + +#: order/templates/order/order_wizard/match_fields.html:35 +#: part/templates/part/import_wizard/ajax_match_fields.html:28 +#: part/templates/part/import_wizard/match_fields.html:35 +#: templates/patterns/wizard/match_fields.html:34 +msgid "File Fields" +msgstr "" + +#: order/templates/order/order_wizard/match_fields.html:42 +#: part/templates/part/import_wizard/ajax_match_fields.html:35 +#: part/templates/part/import_wizard/match_fields.html:42 +#: templates/patterns/wizard/match_fields.html:41 +msgid "Remove column" +msgstr "" + +#: order/templates/order/order_wizard/match_fields.html:60 +#: part/templates/part/import_wizard/ajax_match_fields.html:53 +#: part/templates/part/import_wizard/match_fields.html:60 +#: templates/patterns/wizard/match_fields.html:59 +msgid "Duplicate selection" +msgstr "" + +#: order/templates/order/order_wizard/match_fields.html:71 +#: order/templates/order/order_wizard/match_parts.html:52 +#: part/templates/part/import_wizard/ajax_match_fields.html:64 +#: part/templates/part/import_wizard/ajax_match_references.html:42 +#: part/templates/part/import_wizard/match_fields.html:71 +#: part/templates/part/import_wizard/match_references.html:49 +#: templates/js/translated/bom.js:133 templates/js/translated/build.js:533 +#: templates/js/translated/build.js:1805 +#: templates/js/translated/purchase_order.js:679 +#: templates/js/translated/purchase_order.js:1271 +#: templates/js/translated/return_order.js:505 +#: templates/js/translated/sales_order.js:1111 +#: templates/js/translated/stock.js:720 templates/js/translated/stock.js:889 +#: templates/patterns/wizard/match_fields.html:70 +msgid "Remove row" +msgstr "" + +#: order/templates/order/order_wizard/match_parts.html:12 +#: part/templates/part/import_wizard/ajax_match_references.html:12 +#: part/templates/part/import_wizard/match_references.html:12 +msgid "Errors exist in the submitted data" +msgstr "" + +#: order/templates/order/order_wizard/match_parts.html:28 +#: part/templates/part/import_wizard/ajax_match_references.html:21 +#: part/templates/part/import_wizard/match_references.html:28 +msgid "Row" +msgstr "" + +#: order/templates/order/order_wizard/match_parts.html:29 +msgid "Select Supplier Part" +msgstr "" + +#: order/templates/order/order_wizard/po_upload.html:8 +msgid "Return to Orders" +msgstr "" + +#: order/templates/order/order_wizard/po_upload.html:13 +msgid "Upload File for Purchase Order" +msgstr "" + +#: order/templates/order/order_wizard/po_upload.html:14 +msgid "Order is already processed. Files cannot be uploaded." +msgstr "" + +#: order/templates/order/order_wizard/po_upload.html:27 +#: part/templates/part/import_wizard/ajax_part_upload.html:10 +#: part/templates/part/import_wizard/part_upload.html:26 +#: templates/patterns/wizard/upload.html:13 +#, python-format +msgid "Step %(step)s of %(count)s" +msgstr "" + +#: order/templates/order/po_sidebar.html:7 +msgid "Received Stock" +msgstr "" + +#: order/templates/order/purchase_order_detail.html:18 +msgid "Purchase Order Items" +msgstr "" + +#: order/templates/order/purchase_order_detail.html:27 +#: order/templates/order/return_order_detail.html:24 +#: order/templates/order/sales_order_detail.html:24 +#: templates/js/translated/purchase_order.js:397 +#: templates/js/translated/return_order.js:458 +#: templates/js/translated/sales_order.js:237 +msgid "Add Line Item" +msgstr "" + +#: order/templates/order/purchase_order_detail.html:31 +#: order/templates/order/purchase_order_detail.html:32 +#: order/templates/order/return_order_detail.html:28 +#: order/templates/order/return_order_detail.html:29 +msgid "Receive Line Items" +msgstr "" + +#: order/templates/order/purchase_order_detail.html:50 +#: order/templates/order/return_order_detail.html:45 +#: order/templates/order/sales_order_detail.html:41 +msgid "Extra Lines" +msgstr "" + +#: order/templates/order/purchase_order_detail.html:56 +#: order/templates/order/return_order_detail.html:51 +#: order/templates/order/sales_order_detail.html:47 +msgid "Add Extra Line" +msgstr "" + +#: order/templates/order/purchase_order_detail.html:74 +msgid "Received Items" +msgstr "" + +#: order/templates/order/purchase_order_detail.html:99 +#: order/templates/order/return_order_detail.html:85 +#: order/templates/order/sales_order_detail.html:139 +msgid "Order Notes" +msgstr "" + +#: order/templates/order/return_order_base.html:19 +#: order/templates/order/sales_order_base.html:19 +msgid "Customer logo thumbnail" +msgstr "" + +#: order/templates/order/return_order_base.html:61 +msgid "Print return order report" +msgstr "" + +#: order/templates/order/return_order_base.html:65 +#: order/templates/order/sales_order_base.html:65 +msgid "Print packing list" +msgstr "" + +#: order/templates/order/return_order_base.html:142 +#: order/templates/order/sales_order_base.html:159 +#: templates/js/translated/return_order.js:308 +#: templates/js/translated/sales_order.js:792 +msgid "Customer Reference" +msgstr "" + +#: order/templates/order/return_order_base.html:199 +#: order/templates/order/sales_order_base.html:243 +#: part/templates/part/part_pricing.html:32 +#: part/templates/part/part_pricing.html:58 +#: part/templates/part/part_pricing.html:99 +#: part/templates/part/part_pricing.html:114 +#: templates/js/translated/part.js:1079 +#: templates/js/translated/purchase_order.js:1806 +#: templates/js/translated/return_order.js:380 +#: templates/js/translated/sales_order.js:850 +msgid "Total Cost" +msgstr "" + +#: order/templates/order/return_order_base.html:274 +msgid "Return Order QR Code" +msgstr "" + +#: order/templates/order/return_order_base.html:286 +msgid "Link Barcode to Return Order" +msgstr "" + +#: order/templates/order/return_order_sidebar.html:5 +msgid "Order Details" +msgstr "" + +#: order/templates/order/sales_order_base.html:61 +msgid "Print sales order report" +msgstr "" + +#: order/templates/order/sales_order_base.html:92 +#: order/templates/order/sales_order_base.html:93 +msgid "Ship Items" +msgstr "" + +#: order/templates/order/sales_order_base.html:96 +#: order/templates/order/sales_order_base.html:97 +msgid "Mark As Shipped" +msgstr "" + +#: order/templates/order/sales_order_base.html:100 +#: templates/js/translated/sales_order.js:495 +msgid "Complete Sales Order" +msgstr "" + +#: order/templates/order/sales_order_base.html:139 +msgid "This Sales Order has not been fully allocated" +msgstr "" + +#: order/templates/order/sales_order_base.html:177 +#: order/templates/order/sales_order_detail.html:99 +#: order/templates/order/so_sidebar.html:11 +msgid "Completed Shipments" +msgstr "" + +#: order/templates/order/sales_order_base.html:340 +msgid "Sales Order QR Code" +msgstr "" + +#: order/templates/order/sales_order_base.html:352 +msgid "Link Barcode to Sales Order" +msgstr "" + +#: order/templates/order/sales_order_detail.html:18 +msgid "Sales Order Items" +msgstr "" + +#: order/templates/order/sales_order_detail.html:67 +#: order/templates/order/so_sidebar.html:8 templates/InvenTree/index.html:284 +msgid "Pending Shipments" +msgstr "" + +#: order/templates/order/sales_order_detail.html:71 +#: templates/js/translated/bom.js:1277 templates/js/translated/build.js:1066 +#: templates/js/translated/filters.js:299 +msgid "Actions" +msgstr "" + +#: order/templates/order/sales_order_detail.html:80 +msgid "New Shipment" +msgstr "" + +#: order/views.py:120 +msgid "Match Supplier Parts" +msgstr "" + +#: order/views.py:407 +msgid "Sales order not found" +msgstr "" + +#: order/views.py:413 +msgid "Price not found" +msgstr "" + +#: order/views.py:416 +#, python-brace-format +msgid "Updated {part} unit-price to {price}" +msgstr "" + +#: order/views.py:422 +#, python-brace-format +msgid "Updated {part} unit-price to {price} and quantity to {qty}" +msgstr "" + +#: part/admin.py:48 part/models.py:1093 part/serializers.py:939 +#: part/templates/part/part_base.html:277 +#: report/templates/report/inventree_stock_location_report.html:103 +#: templates/js/translated/part.js:1233 templates/js/translated/part.js:2347 +#: templates/js/translated/stock.js:2122 +msgid "IPN" +msgstr "" + +#: part/admin.py:50 part/models.py:1102 part/templates/part/part_base.html:294 +#: report/models.py:161 templates/js/translated/part.js:1238 +#: templates/js/translated/part.js:2353 +msgid "Revision" +msgstr "" + +#: part/admin.py:53 part/admin.py:319 part/models.py:1075 +#: part/templates/part/category.html:91 part/templates/part/part_base.html:315 +msgid "Keywords" +msgstr "" + +#: part/admin.py:60 +msgid "Part Image" +msgstr "" + +#: part/admin.py:63 part/admin.py:302 part/stocktake.py:221 +msgid "Category ID" +msgstr "" + +#: part/admin.py:67 part/admin.py:304 part/serializers.py:924 +#: part/stocktake.py:222 +msgid "Category Name" +msgstr "" + +#: part/admin.py:71 part/admin.py:316 +msgid "Default Location ID" +msgstr "" + +#: part/admin.py:76 +msgid "Default Supplier ID" +msgstr "" + +#: part/admin.py:81 part/models.py:1061 part/templates/part/part_base.html:178 +msgid "Variant Of" +msgstr "" + +#: part/admin.py:84 part/models.py:1199 part/templates/part/part_base.html:204 +msgid "Minimum Stock" +msgstr "" + +#: part/admin.py:138 part/templates/part/part_sidebar.html:27 +msgid "Used In" +msgstr "" + +#: part/admin.py:150 part/serializers.py:949 +#: part/templates/part/part_base.html:249 stock/admin.py:236 +#: templates/js/translated/part.js:717 templates/js/translated/part.js:2159 +msgid "Building" +msgstr "" + +#: part/admin.py:155 part/models.py:3253 part/models.py:3267 +#: templates/js/translated/part.js:976 +msgid "Minimum Cost" +msgstr "" + +#: part/admin.py:158 part/models.py:3260 part/models.py:3274 +#: templates/js/translated/part.js:986 +msgid "Maximum Cost" +msgstr "" + +#: part/admin.py:308 part/admin.py:387 stock/admin.py:57 stock/admin.py:216 +msgid "Parent ID" +msgstr "" + +#: part/admin.py:312 part/admin.py:394 stock/admin.py:61 +msgid "Parent Name" +msgstr "" + +#: part/admin.py:320 part/templates/part/category.html:85 +#: part/templates/part/category.html:98 +msgid "Category Path" +msgstr "" + +#: part/admin.py:325 part/models.py:420 part/serializers.py:130 +#: part/serializers.py:323 part/serializers.py:459 +#: part/templates/part/cat_link.html:3 part/templates/part/category.html:20 +#: part/templates/part/category.html:138 part/templates/part/category.html:158 +#: part/templates/part/category_sidebar.html:9 +#: templates/InvenTree/index.html:36 templates/InvenTree/search.html:84 +#: templates/InvenTree/settings/sidebar.html:47 +#: templates/js/translated/part.js:2822 templates/js/translated/search.js:130 +#: templates/navbar.html:24 users/models.py:203 +msgid "Parts" +msgstr "" + +#: part/admin.py:378 +msgid "BOM Level" +msgstr "" + +#: part/admin.py:381 +msgid "BOM Item ID" +msgstr "" + +#: part/admin.py:391 +msgid "Parent IPN" +msgstr "" + +#: part/admin.py:405 +msgid "Part Revision" +msgstr "" + +#: part/admin.py:418 part/serializers.py:1400 +#: templates/js/translated/pricing.js:358 +#: templates/js/translated/pricing.js:1022 +msgid "Minimum Price" +msgstr "" + +#: part/admin.py:423 part/serializers.py:1415 +#: templates/js/translated/pricing.js:353 +#: templates/js/translated/pricing.js:1030 +msgid "Maximum Price" +msgstr "" + +#: part/api.py:104 +msgid "Starred" +msgstr "" + +#: part/api.py:106 +msgid "Filter by starred categories" +msgstr "" + +#: part/api.py:123 stock/api.py:310 +msgid "Depth" +msgstr "" + +#: part/api.py:123 +msgid "Filter by category depth" +msgstr "" + +#: part/api.py:141 stock/api.py:328 +msgid "Top Level" +msgstr "" + +#: part/api.py:143 +msgid "Filter by top-level categories" +msgstr "" + +#: part/api.py:156 stock/api.py:343 +msgid "Cascade" +msgstr "" + +#: part/api.py:158 +msgid "Include sub-categories in filtered results" +msgstr "" + +#: part/api.py:178 templates/js/translated/part.js:311 +msgid "Parent" +msgstr "" + +#: part/api.py:180 +msgid "Filter by parent category" +msgstr "" + +#: part/api.py:213 +msgid "Exclude Tree" +msgstr "" + +#: part/api.py:215 +msgid "Exclude sub-categories under the specified category" +msgstr "" + +#: part/api.py:440 +msgid "Has Results" +msgstr "" + +#: part/api.py:604 +msgid "Incoming Purchase Order" +msgstr "" + +#: part/api.py:618 +msgid "Outgoing Sales Order" +msgstr "" + +#: part/api.py:630 +msgid "Stock produced by Build Order" +msgstr "" + +#: part/api.py:712 +msgid "Stock required for Build Order" +msgstr "" + +#: part/api.py:858 +msgid "Validate entire Bill of Materials" +msgstr "" + +#: part/api.py:864 +msgid "This option must be selected" +msgstr "" + +#: part/api.py:900 +msgid "Is Revision" +msgstr "" + +#: part/api.py:910 +msgid "Has Revisions" +msgstr "" + +#: part/api.py:1101 +msgid "BOM Valid" +msgstr "" + +#: part/api.py:1509 part/models.py:1085 part/models.py:3540 part/models.py:4104 +#: part/serializers.py:474 part/serializers.py:1255 +#: part/templates/part/part_base.html:268 stock/api.py:781 +#: templates/InvenTree/settings/settings_staff_js.html:300 +#: templates/js/translated/notification.js:60 +#: templates/js/translated/part.js:2383 +msgid "Category" +msgstr "" + +#: part/api.py:1750 +msgid "Assembly part is testable" +msgstr "" + +#: part/api.py:1759 +msgid "Component part is testable" +msgstr "" + +#: part/api.py:1810 +msgid "Uses" +msgstr "" + +#: part/bom.py:183 part/models.py:109 part/models.py:1138 +#: part/templates/part/category.html:113 part/templates/part/part_base.html:384 +#: templates/js/translated/part.js:2397 +msgid "Default Location" +msgstr "" + +#: part/bom.py:184 part/serializers.py:957 +#: templates/email/low_stock_notification.html:16 +msgid "Total Stock" +msgstr "" + +#: part/forms.py:49 +msgid "Input quantity for price calculation" +msgstr "" + +#: part/models.py:90 part/models.py:4105 part/templates/part/category.html:16 +#: part/templates/part/part_app_base.html:10 +msgid "Part Category" +msgstr "" + +#: part/models.py:91 part/templates/part/category.html:133 +#: templates/InvenTree/search.html:97 templates/js/translated/search.js:158 +#: users/models.py:202 +msgid "Part Categories" +msgstr "" + +#: part/models.py:110 +msgid "Default location for parts in this category" +msgstr "" + +#: part/models.py:115 stock/models.py:193 templates/js/translated/part.js:2828 +#: templates/js/translated/stock.js:2857 +#: templates/js/translated/table_filters.js:246 +#: templates/js/translated/table_filters.js:290 +msgid "Structural" +msgstr "" + +#: part/models.py:117 +msgid "Parts may not be directly assigned to a structural category, but may be assigned to child categories." +msgstr "" + +#: part/models.py:126 +msgid "Default keywords" +msgstr "" + +#: part/models.py:127 +msgid "Default keywords for parts in this category" +msgstr "" + +#: part/models.py:133 stock/models.py:96 stock/models.py:175 +#: templates/InvenTree/settings/settings_staff_js.html:445 +msgid "Icon" +msgstr "" + +#: part/models.py:134 part/serializers.py:143 part/serializers.py:161 +#: stock/models.py:176 +msgid "Icon (optional)" +msgstr "" + +#: part/models.py:180 +msgid "You cannot make this part category structural because some parts are already assigned to it!" +msgstr "" + +#: part/models.py:514 +msgid "Cannot delete this part as it is locked" +msgstr "" + +#: part/models.py:517 +msgid "Cannot delete this part as it is still active" +msgstr "" + +#: part/models.py:522 +msgid "Cannot delete this part as it is used in an assembly" +msgstr "" + +#: part/models.py:560 +msgid "Invalid choice for parent part" +msgstr "" + +#: part/models.py:608 part/models.py:615 +#, python-brace-format +msgid "Part '{self}' cannot be used in BOM for '{parent}' (recursive)" +msgstr "" + +#: part/models.py:627 +#, python-brace-format +msgid "Part '{parent}' is used in BOM for '{self}' (recursive)" +msgstr "" + +#: part/models.py:694 +#, python-brace-format +msgid "IPN must match regex pattern {pattern}" +msgstr "" + +#: part/models.py:702 +msgid "Part cannot be a revision of itself" +msgstr "" + +#: part/models.py:709 +msgid "Cannot make a revision of a part which is already a revision" +msgstr "" + +#: part/models.py:716 +msgid "Revision code must be specified" +msgstr "" + +#: part/models.py:723 +msgid "Revisions are only allowed for assembly parts" +msgstr "" + +#: part/models.py:730 +msgid "Cannot make a revision of a template part" +msgstr "" + +#: part/models.py:736 +msgid "Parent part must point to the same template" +msgstr "" + +#: part/models.py:832 +msgid "Stock item with this serial number already exists" +msgstr "" + +#: part/models.py:976 +msgid "Duplicate IPN not allowed in part settings" +msgstr "" + +#: part/models.py:988 +msgid "Duplicate part revision already exists." +msgstr "" + +#: part/models.py:997 +msgid "Part with this Name, IPN and Revision already exists." +msgstr "" + +#: part/models.py:1012 +msgid "Parts cannot be assigned to structural part categories!" +msgstr "" + +#: part/models.py:1044 part/models.py:4160 +msgid "Part name" +msgstr "" + +#: part/models.py:1049 +msgid "Is Template" +msgstr "" + +#: part/models.py:1050 +msgid "Is this part a template part?" +msgstr "" + +#: part/models.py:1060 +msgid "Is this part a variant of another part?" +msgstr "" + +#: part/models.py:1068 +msgid "Part description (optional)" +msgstr "" + +#: part/models.py:1076 +msgid "Part keywords to improve visibility in search results" +msgstr "" + +#: part/models.py:1086 +msgid "Part category" +msgstr "" + +#: part/models.py:1101 +msgid "Part revision or version number" +msgstr "" + +#: part/models.py:1111 +msgid "Is this part a revision of another part?" +msgstr "" + +#: part/models.py:1112 part/templates/part/part_base.html:285 +msgid "Revision Of" +msgstr "" + +#: part/models.py:1136 +msgid "Where is this item normally stored?" +msgstr "" + +#: part/models.py:1182 part/templates/part/part_base.html:393 +msgid "Default Supplier" +msgstr "" + +#: part/models.py:1183 +msgid "Default supplier part" +msgstr "" + +#: part/models.py:1190 +msgid "Default Expiry" +msgstr "" + +#: part/models.py:1191 +msgid "Expiry time (in days) for stock items of this part" +msgstr "" + +#: part/models.py:1200 +msgid "Minimum allowed stock level" +msgstr "" + +#: part/models.py:1209 +msgid "Units of measure for this part" +msgstr "" + +#: part/models.py:1216 +msgid "Can this part be built from other parts?" +msgstr "" + +#: part/models.py:1222 +msgid "Can this part be used to build other parts?" +msgstr "" + +#: part/models.py:1228 +msgid "Does this part have tracking for unique items?" +msgstr "" + +#: part/models.py:1234 +msgid "Can this part have test results recorded against it?" +msgstr "" + +#: part/models.py:1240 +msgid "Can this part be purchased from external suppliers?" +msgstr "" + +#: part/models.py:1246 +msgid "Can this part be sold to customers?" +msgstr "" + +#: part/models.py:1250 +msgid "Is this part active?" +msgstr "" + +#: part/models.py:1255 templates/js/translated/part.js:821 +#: templates/js/translated/table_filters.js:724 +msgid "Locked" +msgstr "" + +#: part/models.py:1256 +msgid "Locked parts cannot be edited" +msgstr "" + +#: part/models.py:1262 +msgid "Is this a virtual part, such as a software product or license?" +msgstr "" + +#: part/models.py:1268 +msgid "BOM checksum" +msgstr "" + +#: part/models.py:1269 +msgid "Stored BOM checksum" +msgstr "" + +#: part/models.py:1277 +msgid "BOM checked by" +msgstr "" + +#: part/models.py:1282 +msgid "BOM checked date" +msgstr "" + +#: part/models.py:1298 +msgid "Creation User" +msgstr "" + +#: part/models.py:1308 +msgid "Owner responsible for this part" +msgstr "" + +#: part/models.py:1313 part/templates/part/part_base.html:356 +#: stock/templates/stock/item_base.html:448 +#: templates/js/translated/part.js:2490 +msgid "Last Stocktake" +msgstr "" + +#: part/models.py:2185 +msgid "Sell multiple" +msgstr "" + +#: part/models.py:3167 +msgid "Currency used to cache pricing calculations" +msgstr "" + +#: part/models.py:3183 +msgid "Minimum BOM Cost" +msgstr "" + +#: part/models.py:3184 +msgid "Minimum cost of component parts" +msgstr "" + +#: part/models.py:3190 +msgid "Maximum BOM Cost" +msgstr "" + +#: part/models.py:3191 +msgid "Maximum cost of component parts" +msgstr "" + +#: part/models.py:3197 +msgid "Minimum Purchase Cost" +msgstr "" + +#: part/models.py:3198 +msgid "Minimum historical purchase cost" +msgstr "" + +#: part/models.py:3204 +msgid "Maximum Purchase Cost" +msgstr "" + +#: part/models.py:3205 +msgid "Maximum historical purchase cost" +msgstr "" + +#: part/models.py:3211 +msgid "Minimum Internal Price" +msgstr "" + +#: part/models.py:3212 +msgid "Minimum cost based on internal price breaks" +msgstr "" + +#: part/models.py:3218 +msgid "Maximum Internal Price" +msgstr "" + +#: part/models.py:3219 +msgid "Maximum cost based on internal price breaks" +msgstr "" + +#: part/models.py:3225 +msgid "Minimum Supplier Price" +msgstr "" + +#: part/models.py:3226 +msgid "Minimum price of part from external suppliers" +msgstr "" + +#: part/models.py:3232 +msgid "Maximum Supplier Price" +msgstr "" + +#: part/models.py:3233 +msgid "Maximum price of part from external suppliers" +msgstr "" + +#: part/models.py:3239 +msgid "Minimum Variant Cost" +msgstr "" + +#: part/models.py:3240 +msgid "Calculated minimum cost of variant parts" +msgstr "" + +#: part/models.py:3246 +msgid "Maximum Variant Cost" +msgstr "" + +#: part/models.py:3247 +msgid "Calculated maximum cost of variant parts" +msgstr "" + +#: part/models.py:3254 +msgid "Override minimum cost" +msgstr "" + +#: part/models.py:3261 +msgid "Override maximum cost" +msgstr "" + +#: part/models.py:3268 +msgid "Calculated overall minimum cost" +msgstr "" + +#: part/models.py:3275 +msgid "Calculated overall maximum cost" +msgstr "" + +#: part/models.py:3281 +msgid "Minimum Sale Price" +msgstr "" + +#: part/models.py:3282 +msgid "Minimum sale price based on price breaks" +msgstr "" + +#: part/models.py:3288 +msgid "Maximum Sale Price" +msgstr "" + +#: part/models.py:3289 +msgid "Maximum sale price based on price breaks" +msgstr "" + +#: part/models.py:3295 +msgid "Minimum Sale Cost" +msgstr "" + +#: part/models.py:3296 +msgid "Minimum historical sale price" +msgstr "" + +#: part/models.py:3302 +msgid "Maximum Sale Cost" +msgstr "" + +#: part/models.py:3303 +msgid "Maximum historical sale price" +msgstr "" + +#: part/models.py:3322 +msgid "Part for stocktake" +msgstr "" + +#: part/models.py:3327 +msgid "Item Count" +msgstr "" + +#: part/models.py:3328 +msgid "Number of individual stock entries at time of stocktake" +msgstr "" + +#: part/models.py:3336 +msgid "Total available stock at time of stocktake" +msgstr "" + +#: part/models.py:3340 part/models.py:3423 part/serializers.py:263 +#: part/templates/part/part_scheduling.html:13 +#: report/templates/report/inventree_test_report.html:106 +#: templates/InvenTree/settings/plugin_settings.html:37 +#: templates/InvenTree/settings/settings_staff_js.html:543 +#: templates/js/translated/part.js:1092 templates/js/translated/pricing.js:824 +#: templates/js/translated/pricing.js:948 +#: templates/js/translated/purchase_order.js:1785 +#: templates/js/translated/stock.js:2906 +msgid "Date" +msgstr "" + +#: part/models.py:3341 +msgid "Date stocktake was performed" +msgstr "" + +#: part/models.py:3349 +msgid "Additional notes" +msgstr "" + +#: part/models.py:3359 +msgid "User who performed this stocktake" +msgstr "" + +#: part/models.py:3365 +msgid "Minimum Stock Cost" +msgstr "" + +#: part/models.py:3366 +msgid "Estimated minimum cost of stock on hand" +msgstr "" + +#: part/models.py:3372 +msgid "Maximum Stock Cost" +msgstr "" + +#: part/models.py:3373 +msgid "Estimated maximum cost of stock on hand" +msgstr "" + +#: part/models.py:3429 templates/InvenTree/settings/settings_staff_js.html:532 +msgid "Report" +msgstr "" + +#: part/models.py:3430 +msgid "Stocktake report file (generated internally)" +msgstr "" + +#: part/models.py:3435 templates/InvenTree/settings/settings_staff_js.html:539 +msgid "Part Count" +msgstr "" + +#: part/models.py:3436 +msgid "Number of parts covered by stocktake" +msgstr "" + +#: part/models.py:3446 +msgid "User who requested this stocktake report" +msgstr "" + +#: part/models.py:3456 +msgid "Part Sale Price Break" +msgstr "" + +#: part/models.py:3568 +msgid "Part Test Template" +msgstr "" + +#: part/models.py:3594 +msgid "Invalid template name - must include at least one alphanumeric character" +msgstr "" + +#: part/models.py:3615 part/models.py:3784 +msgid "Choices must be unique" +msgstr "" + +#: part/models.py:3626 +msgid "Test templates can only be created for testable parts" +msgstr "" + +#: part/models.py:3637 +msgid "Test template with the same key already exists for part" +msgstr "" + +#: part/models.py:3654 templates/js/translated/part.js:2898 +msgid "Test Name" +msgstr "" + +#: part/models.py:3655 +msgid "Enter a name for the test" +msgstr "" + +#: part/models.py:3661 +msgid "Test Key" +msgstr "" + +#: part/models.py:3662 +msgid "Simplified key for the test" +msgstr "" + +#: part/models.py:3669 +msgid "Test Description" +msgstr "" + +#: part/models.py:3670 +msgid "Enter description for this test" +msgstr "" + +#: part/models.py:3674 report/models.py:216 +#: templates/js/translated/part.js:2919 +#: templates/js/translated/table_filters.js:502 +msgid "Enabled" +msgstr "" + +#: part/models.py:3674 +msgid "Is this test enabled?" +msgstr "" + +#: part/models.py:3679 templates/js/translated/part.js:2927 +#: templates/js/translated/table_filters.js:498 +msgid "Required" +msgstr "" + +#: part/models.py:3680 +msgid "Is this test required to pass?" +msgstr "" + +#: part/models.py:3685 templates/js/translated/part.js:2935 +msgid "Requires Value" +msgstr "" + +#: part/models.py:3686 +msgid "Does this test require a value when adding a test result?" +msgstr "" + +#: part/models.py:3691 templates/js/translated/part.js:2942 +msgid "Requires Attachment" +msgstr "" + +#: part/models.py:3693 +msgid "Does this test require a file attachment when adding a test result?" +msgstr "" + +#: part/models.py:3699 part/models.py:3843 templates/js/translated/part.js:1643 +msgid "Choices" +msgstr "" + +#: part/models.py:3700 +msgid "Valid choices for this test (comma-separated)" +msgstr "" + +#: part/models.py:3732 +msgid "Part Parameter Template" +msgstr "" + +#: part/models.py:3759 +msgid "Checkbox parameters cannot have units" +msgstr "" + +#: part/models.py:3764 +msgid "Checkbox parameters cannot have choices" +msgstr "" + +#: part/models.py:3801 +msgid "Parameter template name must be unique" +msgstr "" + +#: part/models.py:3816 +msgid "Parameter Name" +msgstr "" + +#: part/models.py:3823 +msgid "Physical units for this parameter" +msgstr "" + +#: part/models.py:3831 +msgid "Parameter description" +msgstr "" + +#: part/models.py:3837 templates/js/translated/part.js:1634 +#: templates/js/translated/table_filters.js:837 +msgid "Checkbox" +msgstr "" + +#: part/models.py:3838 +msgid "Is this parameter a checkbox?" +msgstr "" + +#: part/models.py:3844 +msgid "Valid choices for this parameter (comma-separated)" +msgstr "" + +#: part/models.py:3881 +msgid "Part Parameter" +msgstr "" + +#: part/models.py:3907 +msgid "Parameter cannot be modified - part is locked" +msgstr "" + +#: part/models.py:3945 +msgid "Invalid choice for parameter value" +msgstr "" + +#: part/models.py:3996 +msgid "Parent Part" +msgstr "" + +#: part/models.py:4004 part/models.py:4112 part/models.py:4113 +#: templates/InvenTree/settings/settings_staff_js.html:295 +msgid "Parameter Template" +msgstr "" + +#: part/models.py:4010 +msgid "Parameter Value" +msgstr "" + +#: part/models.py:4060 +msgid "Part Category Parameter Template" +msgstr "" + +#: part/models.py:4119 templates/InvenTree/settings/settings_staff_js.html:304 +msgid "Default Value" +msgstr "" + +#: part/models.py:4120 +msgid "Default Parameter Value" +msgstr "" + +#: part/models.py:4158 +msgid "Part ID or part name" +msgstr "" + +#: part/models.py:4159 +msgid "Unique part ID value" +msgstr "" + +#: part/models.py:4161 +msgid "Part IPN value" +msgstr "" + +#: part/models.py:4162 +msgid "Level" +msgstr "" + +#: part/models.py:4162 +msgid "BOM level" +msgstr "" + +#: part/models.py:4272 +msgid "BOM item cannot be modified - assembly is locked" +msgstr "" + +#: part/models.py:4279 +msgid "BOM item cannot be modified - variant assembly is locked" +msgstr "" + +#: part/models.py:4289 +msgid "Select parent part" +msgstr "" + +#: part/models.py:4299 +msgid "Sub part" +msgstr "" + +#: part/models.py:4300 +msgid "Select part to be used in BOM" +msgstr "" + +#: part/models.py:4311 +msgid "BOM quantity for this BOM item" +msgstr "" + +#: part/models.py:4317 +msgid "This BOM item is optional" +msgstr "" + +#: part/models.py:4323 +msgid "This BOM item is consumable (it is not tracked in build orders)" +msgstr "" + +#: part/models.py:4330 part/templates/part/upload_bom.html:55 +msgid "Overage" +msgstr "" + +#: part/models.py:4331 +msgid "Estimated build wastage quantity (absolute or percentage)" +msgstr "" + +#: part/models.py:4338 +msgid "BOM item reference" +msgstr "" + +#: part/models.py:4346 +msgid "BOM item notes" +msgstr "" + +#: part/models.py:4352 +msgid "Checksum" +msgstr "" + +#: part/models.py:4353 +msgid "BOM line checksum" +msgstr "" + +#: part/models.py:4358 templates/js/translated/table_filters.js:181 +msgid "Validated" +msgstr "" + +#: part/models.py:4359 +msgid "This BOM item has been validated" +msgstr "" + +#: part/models.py:4364 part/templates/part/upload_bom.html:57 +#: templates/js/translated/bom.js:1054 +#: templates/js/translated/table_filters.js:185 +#: templates/js/translated/table_filters.js:218 +msgid "Gets inherited" +msgstr "" + +#: part/models.py:4365 +msgid "This BOM item is inherited by BOMs for variant parts" +msgstr "" + +#: part/models.py:4371 +msgid "Stock items for variant parts can be used for this BOM item" +msgstr "" + +#: part/models.py:4456 stock/models.py:762 +msgid "Quantity must be integer value for trackable parts" +msgstr "" + +#: part/models.py:4466 part/models.py:4468 +msgid "Sub part must be specified" +msgstr "" + +#: part/models.py:4613 +msgid "BOM Item Substitute" +msgstr "" + +#: part/models.py:4634 +msgid "Substitute part cannot be the same as the master part" +msgstr "" + +#: part/models.py:4647 +msgid "Parent BOM item" +msgstr "" + +#: part/models.py:4655 +msgid "Substitute part" +msgstr "" + +#: part/models.py:4671 +msgid "Part 1" +msgstr "" + +#: part/models.py:4679 +msgid "Part 2" +msgstr "" + +#: part/models.py:4680 +msgid "Select Related Part" +msgstr "" + +#: part/models.py:4699 +msgid "Part relationship cannot be created between a part and itself" +msgstr "" + +#: part/models.py:4704 +msgid "Duplicate relationship already exists" +msgstr "" + +#: part/serializers.py:124 +msgid "Parent Category" +msgstr "" + +#: part/serializers.py:125 templates/js/translated/part.js:312 +msgid "Parent part category" +msgstr "" + +#: part/serializers.py:132 part/serializers.py:158 +#: part/templates/part/category.html:119 part/templates/part/category.html:204 +#: part/templates/part/category_sidebar.html:7 +msgid "Subcategories" +msgstr "" + +#: part/serializers.py:197 +msgid "Results" +msgstr "" + +#: part/serializers.py:198 +msgid "Number of results recorded against this template" +msgstr "" + +#: part/serializers.py:225 part/serializers.py:243 stock/serializers.py:643 +msgid "Purchase currency of this stock item" +msgstr "" + +#: part/serializers.py:268 +msgid "Speculative Quantity" +msgstr "" + +#: part/serializers.py:277 +msgid "Model ID" +msgstr "" + +#: part/serializers.py:324 +msgid "Number of parts using this template" +msgstr "" + +#: part/serializers.py:465 +msgid "No parts selected" +msgstr "" + +#: part/serializers.py:475 +msgid "Select category" +msgstr "" + +#: part/serializers.py:510 +msgid "Original Part" +msgstr "" + +#: part/serializers.py:511 +msgid "Select original part to duplicate" +msgstr "" + +#: part/serializers.py:516 +msgid "Copy Image" +msgstr "" + +#: part/serializers.py:517 +msgid "Copy image from original part" +msgstr "" + +#: part/serializers.py:523 part/templates/part/detail.html:293 +msgid "Copy BOM" +msgstr "" + +#: part/serializers.py:524 +msgid "Copy bill of materials from original part" +msgstr "" + +#: part/serializers.py:530 +msgid "Copy Parameters" +msgstr "" + +#: part/serializers.py:531 +msgid "Copy parameter data from original part" +msgstr "" + +#: part/serializers.py:537 +msgid "Copy Notes" +msgstr "" + +#: part/serializers.py:538 +msgid "Copy notes from original part" +msgstr "" + +#: part/serializers.py:556 +msgid "Initial Stock Quantity" +msgstr "" + +#: part/serializers.py:558 +msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added." +msgstr "" + +#: part/serializers.py:565 +msgid "Initial Stock Location" +msgstr "" + +#: part/serializers.py:566 +msgid "Specify initial stock location for this Part" +msgstr "" + +#: part/serializers.py:583 +msgid "Select supplier (or leave blank to skip)" +msgstr "" + +#: part/serializers.py:599 +msgid "Select manufacturer (or leave blank to skip)" +msgstr "" + +#: part/serializers.py:609 +msgid "Manufacturer part number" +msgstr "" + +#: part/serializers.py:616 +msgid "Selected company is not a valid supplier" +msgstr "" + +#: part/serializers.py:625 +msgid "Selected company is not a valid manufacturer" +msgstr "" + +#: part/serializers.py:636 +msgid "Manufacturer part matching this MPN already exists" +msgstr "" + +#: part/serializers.py:643 +msgid "Supplier part matching this SKU already exists" +msgstr "" + +#: part/serializers.py:955 +msgid "Revisions" +msgstr "" + +#: part/serializers.py:960 +msgid "Unallocated Stock" +msgstr "" + +#: part/serializers.py:963 +msgid "Variant Stock" +msgstr "" + +#: part/serializers.py:993 part/templates/part/copy_part.html:9 +#: templates/js/translated/part.js:474 +msgid "Duplicate Part" +msgstr "" + +#: part/serializers.py:994 +msgid "Copy initial data from another Part" +msgstr "" + +#: part/serializers.py:1000 templates/js/translated/part.js:103 +msgid "Initial Stock" +msgstr "" + +#: part/serializers.py:1001 +msgid "Create Part with initial stock quantity" +msgstr "" + +#: part/serializers.py:1007 +msgid "Supplier Information" +msgstr "" + +#: part/serializers.py:1008 +msgid "Add initial supplier information for this part" +msgstr "" + +#: part/serializers.py:1016 +msgid "Copy Category Parameters" +msgstr "" + +#: part/serializers.py:1017 +msgid "Copy parameter templates from selected part category" +msgstr "" + +#: part/serializers.py:1022 +msgid "Existing Image" +msgstr "" + +#: part/serializers.py:1023 +msgid "Filename of an existing part image" +msgstr "" + +#: part/serializers.py:1040 +msgid "Image file does not exist" +msgstr "" + +#: part/serializers.py:1247 +msgid "Limit stocktake report to a particular part, and any variant parts" +msgstr "" + +#: part/serializers.py:1257 +msgid "Limit stocktake report to a particular part category, and any child categories" +msgstr "" + +#: part/serializers.py:1267 +msgid "Limit stocktake report to a particular stock location, and any child locations" +msgstr "" + +#: part/serializers.py:1273 +msgid "Exclude External Stock" +msgstr "" + +#: part/serializers.py:1274 +msgid "Exclude stock items in external locations" +msgstr "" + +#: part/serializers.py:1279 +msgid "Generate Report" +msgstr "" + +#: part/serializers.py:1280 +msgid "Generate report file containing calculated stocktake data" +msgstr "" + +#: part/serializers.py:1285 +msgid "Update Parts" +msgstr "" + +#: part/serializers.py:1286 +msgid "Update specified parts with calculated stocktake data" +msgstr "" + +#: part/serializers.py:1294 +msgid "Stocktake functionality is not enabled" +msgstr "" + +#: part/serializers.py:1299 +msgid "Background worker check failed" +msgstr "" + +#: part/serializers.py:1401 +msgid "Override calculated value for minimum price" +msgstr "" + +#: part/serializers.py:1408 +msgid "Minimum price currency" +msgstr "" + +#: part/serializers.py:1416 +msgid "Override calculated value for maximum price" +msgstr "" + +#: part/serializers.py:1423 +msgid "Maximum price currency" +msgstr "" + +#: part/serializers.py:1452 +msgid "Update" +msgstr "" + +#: part/serializers.py:1453 +msgid "Update pricing for this part" +msgstr "" + +#: part/serializers.py:1476 +#, python-brace-format +msgid "Could not convert from provided currencies to {default_currency}" +msgstr "" + +#: part/serializers.py:1483 +msgid "Minimum price must not be greater than maximum price" +msgstr "" + +#: part/serializers.py:1486 +msgid "Maximum price must not be less than minimum price" +msgstr "" + +#: part/serializers.py:1634 +msgid "Select the parent assembly" +msgstr "" + +#: part/serializers.py:1643 +msgid "Component Name" +msgstr "" + +#: part/serializers.py:1646 +msgid "Component IPN" +msgstr "" + +#: part/serializers.py:1649 +msgid "Component Description" +msgstr "" + +#: part/serializers.py:1655 +msgid "Select the component part" +msgstr "" + +#: part/serializers.py:1664 part/templates/part/part_base.html:243 +#: templates/js/translated/bom.js:1219 +msgid "Can Build" +msgstr "" + +#: part/serializers.py:1899 +msgid "Select part to copy BOM from" +msgstr "" + +#: part/serializers.py:1907 +msgid "Remove Existing Data" +msgstr "" + +#: part/serializers.py:1908 +msgid "Remove existing BOM items before copying" +msgstr "" + +#: part/serializers.py:1913 +msgid "Include Inherited" +msgstr "" + +#: part/serializers.py:1914 +msgid "Include BOM items which are inherited from templated parts" +msgstr "" + +#: part/serializers.py:1919 +msgid "Skip Invalid Rows" +msgstr "" + +#: part/serializers.py:1920 +msgid "Enable this option to skip invalid rows" +msgstr "" + +#: part/serializers.py:1925 +msgid "Copy Substitute Parts" +msgstr "" + +#: part/serializers.py:1926 +msgid "Copy substitute parts when duplicate BOM items" +msgstr "" + +#: part/serializers.py:1963 +msgid "Clear Existing BOM" +msgstr "" + +#: part/serializers.py:1964 +msgid "Delete existing BOM items before uploading" +msgstr "" + +#: part/serializers.py:1996 +msgid "No part column specified" +msgstr "" + +#: part/serializers.py:2040 +msgid "Multiple matching parts found" +msgstr "" + +#: part/serializers.py:2043 +msgid "No matching part found" +msgstr "" + +#: part/serializers.py:2045 +msgid "Part is not designated as a component" +msgstr "" + +#: part/serializers.py:2054 +msgid "Quantity not provided" +msgstr "" + +#: part/serializers.py:2062 +msgid "Invalid quantity" +msgstr "" + +#: part/serializers.py:2085 +msgid "At least one BOM item is required" +msgstr "" + +#: part/stocktake.py:224 templates/js/translated/part.js:1073 +#: templates/js/translated/part.js:1828 templates/js/translated/part.js:1884 +#: templates/js/translated/purchase_order.js:2138 +msgid "Total Quantity" +msgstr "" + +#: part/stocktake.py:225 +msgid "Total Cost Min" +msgstr "" + +#: part/stocktake.py:226 +msgid "Total Cost Max" +msgstr "" + +#: part/stocktake.py:284 +msgid "Stocktake Report Available" +msgstr "" + +#: part/stocktake.py:285 +msgid "A new stocktake report is available for download" +msgstr "" + +#: part/tasks.py:37 +msgid "Low stock notification" +msgstr "" + +#: part/tasks.py:39 +#, python-brace-format +msgid "The available stock for {part.name} has fallen below the configured minimum level" +msgstr "" + +#: part/templates/part/bom.html:6 +msgid "You do not have permission to edit the BOM." +msgstr "" + +#: part/templates/part/bom.html:15 +msgid "The BOM this part has been changed, and must be validated" +msgstr "" + +#: part/templates/part/bom.html:17 +#, python-format +msgid "This BOM was last checked by %(checker)s on %(check_date)s" +msgstr "" + +#: part/templates/part/bom.html:21 +msgid "This BOM has not been validated." +msgstr "" + +#: part/templates/part/category.html:32 +msgid "Perform stocktake for this part category" +msgstr "" + +#: part/templates/part/category.html:38 part/templates/part/category.html:42 +msgid "You are subscribed to notifications for this category" +msgstr "" + +#: part/templates/part/category.html:46 +msgid "Subscribe to notifications for this category" +msgstr "" + +#: part/templates/part/category.html:52 +msgid "Category Actions" +msgstr "" + +#: part/templates/part/category.html:57 +msgid "Edit category" +msgstr "" + +#: part/templates/part/category.html:58 +msgid "Edit Category" +msgstr "" + +#: part/templates/part/category.html:62 +msgid "Delete category" +msgstr "" + +#: part/templates/part/category.html:63 +msgid "Delete Category" +msgstr "" + +#: part/templates/part/category.html:99 +msgid "Top level part category" +msgstr "" + +#: part/templates/part/category.html:124 +msgid "Parts (Including subcategories)" +msgstr "" + +#: part/templates/part/category.html:162 +msgid "Create new part" +msgstr "" + +#: part/templates/part/category.html:163 templates/js/translated/bom.js:444 +msgid "New Part" +msgstr "" + +#: part/templates/part/category.html:189 +#: templates/InvenTree/settings/part_parameters.html:7 +#: templates/InvenTree/settings/sidebar.html:49 +msgid "Part Parameters" +msgstr "" + +#: part/templates/part/category.html:208 +msgid "Create new part category" +msgstr "" + +#: part/templates/part/category.html:209 +msgid "New Category" +msgstr "" + +#: part/templates/part/category_sidebar.html:13 +msgid "Import Parts" +msgstr "" + +#: part/templates/part/copy_part.html:10 +#, python-format +msgid "Make a copy of part '%(full_name)s'." +msgstr "" + +#: part/templates/part/copy_part.html:14 +#: part/templates/part/create_part.html:11 +msgid "Possible Matching Parts" +msgstr "" + +#: part/templates/part/copy_part.html:15 +#: part/templates/part/create_part.html:12 +msgid "The new part may be a duplicate of these existing parts" +msgstr "" + +#: part/templates/part/create_part.html:17 +#, python-format +msgid "%(full_name)s - %(desc)s (%(match_per)s%% match)" +msgstr "" + +#: part/templates/part/detail.html:20 +msgid "Part Stock" +msgstr "" + +#: part/templates/part/detail.html:44 +msgid "Refresh scheduling data" +msgstr "" + +#: part/templates/part/detail.html:45 part/templates/part/prices.html:15 +#: templates/js/translated/tables.js:552 +msgid "Refresh" +msgstr "" + +#: part/templates/part/detail.html:66 +msgid "Add stocktake information" +msgstr "" + +#: part/templates/part/detail.html:67 part/templates/part/part_sidebar.html:50 +#: stock/admin.py:256 templates/InvenTree/settings/part_stocktake.html:30 +#: templates/InvenTree/settings/sidebar.html:53 +#: templates/js/translated/stock.js:2302 users/models.py:204 +msgid "Stocktake" +msgstr "" + +#: part/templates/part/detail.html:83 +msgid "Part Test Templates" +msgstr "" + +#: part/templates/part/detail.html:88 +msgid "Add Test Template" +msgstr "" + +#: part/templates/part/detail.html:106 +msgid "Part Test Statistics" +msgstr "" + +#: part/templates/part/detail.html:155 stock/templates/stock/item.html:49 +msgid "Sales Order Allocations" +msgstr "" + +#: part/templates/part/detail.html:172 +msgid "Part Notes" +msgstr "" + +#: part/templates/part/detail.html:187 +msgid "Part Variants" +msgstr "" + +#: part/templates/part/detail.html:191 +msgid "Create new variant" +msgstr "" + +#: part/templates/part/detail.html:192 +msgid "New Variant" +msgstr "" + +#: part/templates/part/detail.html:215 +msgid "Add new parameter" +msgstr "" + +#: part/templates/part/detail.html:248 part/templates/part/part_sidebar.html:60 +msgid "Related Parts" +msgstr "" + +#: part/templates/part/detail.html:252 part/templates/part/detail.html:253 +msgid "Add Related" +msgstr "" + +#: part/templates/part/detail.html:271 part/templates/part/part_sidebar.html:17 +#: report/templates/report/inventree_bill_of_materials_report.html:100 +msgid "Bill of Materials" +msgstr "" + +#: part/templates/part/detail.html:276 +msgid "Export actions" +msgstr "" + +#: part/templates/part/detail.html:280 templates/js/translated/bom.js:340 +msgid "Export BOM" +msgstr "" + +#: part/templates/part/detail.html:282 +msgid "Print BOM Report" +msgstr "" + +#: part/templates/part/detail.html:288 +msgid "BOM actions" +msgstr "" + +#: part/templates/part/detail.html:292 +msgid "Upload BOM" +msgstr "" + +#: part/templates/part/detail.html:294 +msgid "Validate BOM" +msgstr "" + +#: part/templates/part/detail.html:299 part/templates/part/detail.html:300 +#: templates/js/translated/bom.js:1320 templates/js/translated/bom.js:1321 +msgid "Add BOM Item" +msgstr "" + +#: part/templates/part/detail.html:313 +msgid "Assemblies" +msgstr "" + +#: part/templates/part/detail.html:329 +msgid "Part Builds" +msgstr "" + +#: part/templates/part/detail.html:354 stock/templates/stock/item.html:36 +msgid "Build Order Allocations" +msgstr "" + +#: part/templates/part/detail.html:368 +msgid "Part Suppliers" +msgstr "" + +#: part/templates/part/detail.html:388 +msgid "Part Manufacturers" +msgstr "" + +#: part/templates/part/detail.html:672 +msgid "Related Part" +msgstr "" + +#: part/templates/part/detail.html:680 +msgid "Add Related Part" +msgstr "" + +#: part/templates/part/detail.html:765 +msgid "Add Test Result Template" +msgstr "" + +#: part/templates/part/import_wizard/ajax_part_upload.html:29 +#: part/templates/part/import_wizard/part_upload.html:14 +msgid "Insufficient privileges." +msgstr "" + +#: part/templates/part/import_wizard/part_upload.html:8 +msgid "Return to Parts" +msgstr "" + +#: part/templates/part/import_wizard/part_upload.html:13 +msgid "Import Parts from File" +msgstr "" + +#: part/templates/part/import_wizard/part_upload.html:31 +msgid "Requirements for part import" +msgstr "" + +#: part/templates/part/import_wizard/part_upload.html:33 +msgid "The part import file must contain the required named columns as provided in the " +msgstr "" + +#: part/templates/part/import_wizard/part_upload.html:33 +msgid "Part Import Template" +msgstr "" + +#: part/templates/part/import_wizard/part_upload.html:89 +msgid "Download Part Import Template" +msgstr "" + +#: part/templates/part/import_wizard/part_upload.html:92 +#: templates/js/translated/bom.js:309 templates/js/translated/bom.js:343 +#: templates/js/translated/order.js:154 templates/js/translated/tables.js:189 +msgid "Format" +msgstr "" + +#: part/templates/part/import_wizard/part_upload.html:93 +#: templates/js/translated/bom.js:310 templates/js/translated/bom.js:344 +#: templates/js/translated/order.js:155 +msgid "Select file format" +msgstr "" + +#: part/templates/part/part_app_base.html:12 +msgid "Part List" +msgstr "" + +#: part/templates/part/part_base.html:26 part/templates/part/part_base.html:30 +msgid "You are subscribed to notifications for this part" +msgstr "" + +#: part/templates/part/part_base.html:34 +msgid "Subscribe to notifications for this part" +msgstr "" + +#: part/templates/part/part_base.html:53 +#: stock/templates/stock/item_base.html:62 +#: stock/templates/stock/location.html:72 templates/js/translated/label.js:136 +msgid "Print Label" +msgstr "" + +#: part/templates/part/part_base.html:59 +msgid "Show pricing information" +msgstr "" + +#: part/templates/part/part_base.html:64 +#: stock/templates/stock/item_base.html:107 +#: stock/templates/stock/location.html:81 +msgid "Stock actions" +msgstr "" + +#: part/templates/part/part_base.html:71 +msgid "Count part stock" +msgstr "" + +#: part/templates/part/part_base.html:77 +msgid "Transfer part stock" +msgstr "" + +#: part/templates/part/part_base.html:92 templates/js/translated/part.js:2299 +msgid "Part actions" +msgstr "" + +#: part/templates/part/part_base.html:95 +msgid "Duplicate part" +msgstr "" + +#: part/templates/part/part_base.html:98 +msgid "Edit part" +msgstr "" + +#: part/templates/part/part_base.html:101 +msgid "Delete part" +msgstr "" + +#: part/templates/part/part_base.html:120 +msgid "Part is a template part (variants can be made from this part)" +msgstr "" + +#: part/templates/part/part_base.html:124 +msgid "Part can be assembled from other parts" +msgstr "" + +#: part/templates/part/part_base.html:128 +msgid "Part can be used in assemblies" +msgstr "" + +#: part/templates/part/part_base.html:132 +msgid "Part stock is tracked by serial number" +msgstr "" + +#: part/templates/part/part_base.html:136 +msgid "Part can be purchased from external suppliers" +msgstr "" + +#: part/templates/part/part_base.html:140 +msgid "Part can be sold to customers" +msgstr "" + +#: part/templates/part/part_base.html:146 +msgid "Part is not active" +msgstr "" + +#: part/templates/part/part_base.html:154 +msgid "Part is virtual (not a physical part)" +msgstr "" + +#: part/templates/part/part_base.html:164 +#: part/templates/part/part_base.html:698 +msgid "Show Part Details" +msgstr "" + +#: part/templates/part/part_base.html:218 +msgid "Required for Orders" +msgstr "" + +#: part/templates/part/part_base.html:226 +#: stock/templates/stock/item_base.html:385 +msgid "Allocated to Build Orders" +msgstr "" + +#: part/templates/part/part_base.html:235 +#: stock/templates/stock/item_base.html:378 +msgid "Allocated to Sales Orders" +msgstr "" + +#: part/templates/part/part_base.html:308 +msgid "Minimum stock level" +msgstr "" + +#: part/templates/part/part_base.html:339 templates/js/translated/bom.js:1071 +#: templates/js/translated/part.js:1271 templates/js/translated/part.js:2463 +#: templates/js/translated/pricing.js:391 +#: templates/js/translated/pricing.js:1052 +msgid "Price Range" +msgstr "" + +#: part/templates/part/part_base.html:369 +msgid "Latest Serial Number" +msgstr "" + +#: part/templates/part/part_base.html:373 +#: stock/templates/stock/item_base.html:319 +msgid "Search for serial number" +msgstr "" + +#: part/templates/part/part_base.html:461 +msgid "Part QR Code" +msgstr "" + +#: part/templates/part/part_base.html:478 +msgid "Link Barcode to Part" +msgstr "" + +#: part/templates/part/part_base.html:528 +msgid "Calculate" +msgstr "" + +#: part/templates/part/part_base.html:545 +msgid "Remove associated image from this part" +msgstr "" + +#: part/templates/part/part_base.html:596 +msgid "No matching images found" +msgstr "" + +#: part/templates/part/part_base.html:692 +msgid "Hide Part Details" +msgstr "" + +#: part/templates/part/part_pricing.html:22 part/templates/part/prices.html:76 +#: part/templates/part/prices.html:227 templates/js/translated/pricing.js:485 +msgid "Supplier Pricing" +msgstr "" + +#: part/templates/part/part_pricing.html:26 +#: part/templates/part/part_pricing.html:52 +#: part/templates/part/part_pricing.html:95 +#: part/templates/part/part_pricing.html:110 +msgid "Unit Cost" +msgstr "" + +#: part/templates/part/part_pricing.html:40 +msgid "No supplier pricing available" +msgstr "" + +#: part/templates/part/part_pricing.html:48 part/templates/part/prices.html:90 +#: part/templates/part/prices.html:250 +msgid "BOM Pricing" +msgstr "" + +#: part/templates/part/part_pricing.html:66 +msgid "Unit Purchase Price" +msgstr "" + +#: part/templates/part/part_pricing.html:72 +msgid "Total Purchase Price" +msgstr "" + +#: part/templates/part/part_pricing.html:83 +msgid "No BOM pricing available" +msgstr "" + +#: part/templates/part/part_pricing.html:92 +msgid "Internal Price" +msgstr "" + +#: part/templates/part/part_pricing.html:123 +msgid "No pricing information is available for this part." +msgstr "" + +#: part/templates/part/part_scheduling.html:14 +msgid "Scheduled Quantity" +msgstr "" + +#: part/templates/part/part_sidebar.html:11 +msgid "Variants" +msgstr "" + +#: part/templates/part/part_sidebar.html:14 +#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:22 +#: stock/templates/stock/stock_app_base.html:10 +#: templates/InvenTree/search.html:153 +#: templates/InvenTree/settings/sidebar.html:51 +#: templates/js/translated/part.js:1249 templates/js/translated/part.js:2152 +#: templates/js/translated/part.js:2411 templates/js/translated/stock.js:1066 +#: templates/js/translated/stock.js:2156 templates/navbar.html:31 +msgid "Stock" +msgstr "" + +#: part/templates/part/part_sidebar.html:30 +#: templates/InvenTree/settings/sidebar.html:39 +msgid "Pricing" +msgstr "" + +#: part/templates/part/part_sidebar.html:44 +msgid "Scheduling" +msgstr "" + +#: part/templates/part/part_sidebar.html:54 +msgid "Test Templates" +msgstr "" + +#: part/templates/part/part_thumb.html:11 +msgid "Select from existing images" +msgstr "" + +#: part/templates/part/prices.html:11 +msgid "Pricing Overview" +msgstr "" + +#: part/templates/part/prices.html:14 +msgid "Refresh Part Pricing" +msgstr "" + +#: part/templates/part/prices.html:17 +msgid "Override Part Pricing" +msgstr "" + +#: part/templates/part/prices.html:18 +#: templates/InvenTree/settings/settings_staff_js.html:80 +#: templates/InvenTree/settings/user.html:24 +#: templates/js/translated/helpers.js:104 +#: templates/js/translated/pricing.js:628 templates/notes_buttons.html:3 +#: templates/notes_buttons.html:4 +msgid "Edit" +msgstr "" + +#: part/templates/part/prices.html:28 stock/admin.py:252 +#: stock/templates/stock/item_base.html:443 +#: templates/js/translated/company.js:1704 +#: templates/js/translated/company.js:1714 +#: templates/js/translated/stock.js:2332 +msgid "Last Updated" +msgstr "" + +#: part/templates/part/prices.html:37 part/templates/part/prices.html:127 +msgid "Price Category" +msgstr "" + +#: part/templates/part/prices.html:38 part/templates/part/prices.html:128 +msgid "Minimum" +msgstr "" + +#: part/templates/part/prices.html:39 part/templates/part/prices.html:129 +msgid "Maximum" +msgstr "" + +#: part/templates/part/prices.html:51 part/templates/part/prices.html:174 +msgid "Internal Pricing" +msgstr "" + +#: part/templates/part/prices.html:64 part/templates/part/prices.html:206 +msgid "Purchase History" +msgstr "" + +#: part/templates/part/prices.html:98 part/templates/part/prices.html:274 +msgid "Variant Pricing" +msgstr "" + +#: part/templates/part/prices.html:106 +msgid "Pricing Overrides" +msgstr "" + +#: part/templates/part/prices.html:113 +msgid "Overall Pricing" +msgstr "" + +#: part/templates/part/prices.html:149 part/templates/part/prices.html:326 +msgid "Sale History" +msgstr "" + +#: part/templates/part/prices.html:157 +msgid "Sale price data is not available for this part" +msgstr "" + +#: part/templates/part/prices.html:164 +msgid "Price range data is not available for this part." +msgstr "" + +#: part/templates/part/prices.html:175 part/templates/part/prices.html:207 +#: part/templates/part/prices.html:228 part/templates/part/prices.html:251 +#: part/templates/part/prices.html:275 part/templates/part/prices.html:298 +#: part/templates/part/prices.html:327 +msgid "Jump to overview" +msgstr "" + +#: part/templates/part/prices.html:180 +msgid "Add Internal Price Break" +msgstr "" + +#: part/templates/part/prices.html:297 +msgid "Sale Pricing" +msgstr "" + +#: part/templates/part/prices.html:303 +msgid "Add Sell Price Break" +msgstr "" + +#: part/templates/part/pricing_javascript.html:24 +msgid "Update Pricing" +msgstr "" + +#: part/templates/part/stock_count.html:7 +#: templates/js/translated/model_renderers.js:231 +#: templates/js/translated/part.js:707 templates/js/translated/part.js:2147 +#: templates/js/translated/part.js:2149 +msgid "No Stock" +msgstr "" + +#: part/templates/part/stock_count.html:9 templates/InvenTree/index.html:120 +msgid "Low Stock" +msgstr "" + +#: part/templates/part/upload_bom.html:8 +msgid "Return to BOM" +msgstr "" + +#: part/templates/part/upload_bom.html:13 +msgid "Upload Bill of Materials" +msgstr "" + +#: part/templates/part/upload_bom.html:19 +msgid "BOM upload requirements" +msgstr "" + +#: part/templates/part/upload_bom.html:23 +#: part/templates/part/upload_bom.html:90 +msgid "Upload BOM File" +msgstr "" + +#: part/templates/part/upload_bom.html:29 +msgid "Submit BOM Data" +msgstr "" + +#: part/templates/part/upload_bom.html:37 +msgid "Requirements for BOM upload" +msgstr "" + +#: part/templates/part/upload_bom.html:39 +msgid "The BOM file must contain the required named columns as provided in the " +msgstr "" + +#: part/templates/part/upload_bom.html:39 +msgid "BOM Upload Template" +msgstr "" + +#: part/templates/part/upload_bom.html:40 +msgid "Each part must already exist in the database" +msgstr "" + +#: part/templates/part/variant_part.html:9 +msgid "Create new part variant" +msgstr "" + +#: part/templates/part/variant_part.html:10 +msgid "Create a new variant part from this template" +msgstr "" + +#: part/views.py:111 +msgid "Match References" +msgstr "" + +#: part/views.py:275 +#, python-brace-format +msgid "Can't import part {new_part.name} because there is no category assigned" +msgstr "" + +#: part/views.py:425 +msgid "Select Part Image" +msgstr "" + +#: part/views.py:448 +msgid "Updated part image" +msgstr "" + +#: part/views.py:451 +msgid "Part image not found" +msgstr "" + +#: part/views.py:545 +msgid "Part Pricing" +msgstr "" + +#: plugin/api.py:175 +msgid "Plugin cannot be deleted as it is currently active" +msgstr "" + +#: plugin/base/action/api.py:32 +msgid "No action specified" +msgstr "" + +#: plugin/base/action/api.py:41 +msgid "No matching action found" +msgstr "" + +#: plugin/base/barcodes/api.py:203 +msgid "No match found for barcode data" +msgstr "" + +#: plugin/base/barcodes/api.py:207 +msgid "Match found for barcode data" +msgstr "" + +#: plugin/base/barcodes/api.py:245 plugin/base/barcodes/serializers.py:72 +msgid "Model is not supported" +msgstr "" + +#: plugin/base/barcodes/api.py:250 +msgid "Model instance not found" +msgstr "" + +#: plugin/base/barcodes/api.py:279 +#: templates/js/translated/purchase_order.js:1452 +msgid "Barcode matches existing item" +msgstr "" + +#: plugin/base/barcodes/api.py:418 +msgid "No matching part data found" +msgstr "" + +#: plugin/base/barcodes/api.py:434 +msgid "No matching supplier parts found" +msgstr "" + +#: plugin/base/barcodes/api.py:437 +msgid "Multiple matching supplier parts found" +msgstr "" + +#: plugin/base/barcodes/api.py:450 plugin/base/barcodes/api.py:664 +msgid "No matching plugin found for barcode data" +msgstr "" + +#: plugin/base/barcodes/api.py:460 +msgid "Matched supplier part" +msgstr "" + +#: plugin/base/barcodes/api.py:525 +msgid "Item has already been received" +msgstr "" + +#: plugin/base/barcodes/api.py:563 +msgid "No match for supplier barcode" +msgstr "" + +#: plugin/base/barcodes/api.py:612 +msgid "Multiple matching line items found" +msgstr "" + +#: plugin/base/barcodes/api.py:615 +msgid "No matching line item found" +msgstr "" + +#: plugin/base/barcodes/api.py:661 +msgid "No sales order provided" +msgstr "" + +#: plugin/base/barcodes/api.py:670 +msgid "Barcode does not match an existing stock item" +msgstr "" + +#: plugin/base/barcodes/api.py:686 +msgid "Stock item does not match line item" +msgstr "" + +#: plugin/base/barcodes/api.py:716 templates/js/translated/build.js:2798 +#: templates/js/translated/sales_order.js:1934 +msgid "Insufficient stock available" +msgstr "" + +#: plugin/base/barcodes/api.py:729 +msgid "Stock item allocated to sales order" +msgstr "" + +#: plugin/base/barcodes/api.py:732 +msgid "Not enough information" +msgstr "" + +#: plugin/base/barcodes/mixins.py:172 plugin/base/barcodes/mixins.py:204 +msgid "Found multiple matching supplier parts for barcode" +msgstr "" + +#: plugin/base/barcodes/mixins.py:222 +#, python-brace-format +msgid "Found multiple purchase orders matching '{order}'" +msgstr "" + +#: plugin/base/barcodes/mixins.py:226 +#, python-brace-format +msgid "No matching purchase order for '{order}'" +msgstr "" + +#: plugin/base/barcodes/mixins.py:231 +msgid "Purchase order does not match supplier" +msgstr "" + +#: plugin/base/barcodes/mixins.py:467 +msgid "Failed to find pending line item for supplier part" +msgstr "" + +#: plugin/base/barcodes/mixins.py:498 +msgid "Further information required to receive line item" +msgstr "" + +#: plugin/base/barcodes/mixins.py:506 +msgid "Received purchase order line item" +msgstr "" + +#: plugin/base/barcodes/serializers.py:48 +msgid "Scanned barcode data" +msgstr "" + +#: plugin/base/barcodes/serializers.py:57 +msgid "Model name to generate barcode for" +msgstr "" + +#: plugin/base/barcodes/serializers.py:62 +msgid "Primary key of model object to generate barcode for" +msgstr "" + +#: plugin/base/barcodes/serializers.py:132 +msgid "Purchase Order to allocate items against" +msgstr "" + +#: plugin/base/barcodes/serializers.py:138 +msgid "Purchase order is not pending" +msgstr "" + +#: plugin/base/barcodes/serializers.py:156 +msgid "PurchaseOrder to receive items against" +msgstr "" + +#: plugin/base/barcodes/serializers.py:162 +msgid "Purchase order has not been placed" +msgstr "" + +#: plugin/base/barcodes/serializers.py:170 +msgid "Location to receive items into" +msgstr "" + +#: plugin/base/barcodes/serializers.py:176 +msgid "Cannot select a structural location" +msgstr "" + +#: plugin/base/barcodes/serializers.py:190 +msgid "Sales Order to allocate items against" +msgstr "" + +#: plugin/base/barcodes/serializers.py:196 +msgid "Sales order is not pending" +msgstr "" + +#: plugin/base/barcodes/serializers.py:204 +msgid "Sales order line item to allocate items against" +msgstr "" + +#: plugin/base/barcodes/serializers.py:211 +msgid "Sales order shipment to allocate items against" +msgstr "" + +#: plugin/base/barcodes/serializers.py:217 +msgid "Shipment has already been delivered" +msgstr "" + +#: plugin/base/barcodes/serializers.py:222 +msgid "Quantity to allocate" +msgstr "" + +#: plugin/base/label/label.py:39 templates/js/translated/label.js:148 +msgid "Label printing failed" +msgstr "" + +#: plugin/base/label/mixins.py:54 +msgid "Error rendering label to PDF" +msgstr "" + +#: plugin/base/label/mixins.py:68 +msgid "Error rendering label to HTML" +msgstr "" + +#: plugin/base/label/mixins.py:149 +msgid "No items provided to print" +msgstr "" + +#: plugin/base/ui/serializers.py:30 +msgid "Plugin Name" +msgstr "" + +#: plugin/base/ui/serializers.py:34 +msgid "Feature Type" +msgstr "" + +#: plugin/base/ui/serializers.py:39 +msgid "Feature Label" +msgstr "" + +#: plugin/base/ui/serializers.py:44 +msgid "Feature Title" +msgstr "" + +#: plugin/base/ui/serializers.py:49 +msgid "Feature Description" +msgstr "" + +#: plugin/base/ui/serializers.py:54 +msgid "Feature Icon" +msgstr "" + +#: plugin/base/ui/serializers.py:58 +msgid "Feature Options" +msgstr "" + +#: plugin/base/ui/serializers.py:61 +msgid "Feature Context" +msgstr "" + +#: plugin/base/ui/serializers.py:64 +msgid "Feature Source (javascript)" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:27 +msgid "InvenTree Barcodes" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:28 +msgid "Provides native support for barcodes" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:30 +#: plugin/builtin/integration/core_notifications.py:35 +#: plugin/builtin/integration/currency_exchange.py:21 +#: plugin/builtin/labels/inventree_label.py:22 +#: plugin/builtin/labels/inventree_machine.py:64 +#: plugin/builtin/labels/label_sheet.py:63 +#: plugin/builtin/suppliers/digikey.py:19 plugin/builtin/suppliers/lcsc.py:21 +#: plugin/builtin/suppliers/mouser.py:19 plugin/builtin/suppliers/tme.py:21 +msgid "InvenTree contributors" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:34 +msgid "Internal Barcode Format" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:35 +msgid "Select an internal barcode format" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:37 +msgid "JSON barcodes (human readable)" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:38 +msgid "Short barcodes (space optimized)" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:43 +msgid "Short Barcode Prefix" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:45 +msgid "Customize the prefix used for short barcodes, may be useful for environments with multiple InvenTree instances" +msgstr "" + +#: plugin/builtin/integration/core_notifications.py:34 +msgid "InvenTree Notifications" +msgstr "" + +#: plugin/builtin/integration/core_notifications.py:36 +msgid "Integrated outgoing notification methods" +msgstr "" + +#: plugin/builtin/integration/core_notifications.py:41 +#: plugin/builtin/integration/core_notifications.py:80 +msgid "Enable email notifications" +msgstr "" + +#: plugin/builtin/integration/core_notifications.py:42 +#: plugin/builtin/integration/core_notifications.py:81 +msgid "Allow sending of emails for event notifications" +msgstr "" + +#: plugin/builtin/integration/core_notifications.py:47 +msgid "Enable slack notifications" +msgstr "" + +#: plugin/builtin/integration/core_notifications.py:49 +msgid "Allow sending of slack channel messages for event notifications" +msgstr "" + +#: plugin/builtin/integration/core_notifications.py:55 +msgid "Slack incoming webhook url" +msgstr "" + +#: plugin/builtin/integration/core_notifications.py:56 +msgid "URL that is used to send messages to a slack channel" +msgstr "" + +#: plugin/builtin/integration/core_notifications.py:166 +msgid "Open link" +msgstr "" + +#: plugin/builtin/integration/currency_exchange.py:22 +msgid "InvenTree Currency Exchange" +msgstr "" + +#: plugin/builtin/integration/currency_exchange.py:23 +msgid "Default currency exchange integration" +msgstr "" + +#: plugin/builtin/labels/inventree_label.py:19 +msgid "InvenTree PDF label printer" +msgstr "" + +#: plugin/builtin/labels/inventree_label.py:20 +msgid "Provides native support for printing PDF labels" +msgstr "" + +#: plugin/builtin/labels/inventree_label.py:28 +#: plugin/builtin/labels/label_sheet.py:69 +msgid "Debug mode" +msgstr "" + +#: plugin/builtin/labels/inventree_label.py:29 +#: plugin/builtin/labels/label_sheet.py:70 +msgid "Enable debug mode - returns raw HTML instead of PDF" +msgstr "" + +#: plugin/builtin/labels/inventree_machine.py:61 +msgid "InvenTree machine label printer" +msgstr "" + +#: plugin/builtin/labels/inventree_machine.py:62 +msgid "Provides support for printing using a machine" +msgstr "" + +#: plugin/builtin/labels/inventree_machine.py:151 +msgid "last used" +msgstr "" + +#: plugin/builtin/labels/inventree_machine.py:168 +msgid "Options" +msgstr "" + +#: plugin/builtin/labels/label_sheet.py:29 +msgid "Page size for the label sheet" +msgstr "" + +#: plugin/builtin/labels/label_sheet.py:34 +msgid "Skip Labels" +msgstr "" + +#: plugin/builtin/labels/label_sheet.py:35 +msgid "Skip this number of labels when printing label sheets" +msgstr "" + +#: plugin/builtin/labels/label_sheet.py:41 +msgid "Border" +msgstr "" + +#: plugin/builtin/labels/label_sheet.py:42 +msgid "Print a border around each label" +msgstr "" + +#: plugin/builtin/labels/label_sheet.py:47 report/models.py:315 +msgid "Landscape" +msgstr "" + +#: plugin/builtin/labels/label_sheet.py:48 +msgid "Print the label sheet in landscape mode" +msgstr "" + +#: plugin/builtin/labels/label_sheet.py:60 +msgid "InvenTree Label Sheet Printer" +msgstr "" + +#: plugin/builtin/labels/label_sheet.py:61 +msgid "Arrays multiple labels onto a single sheet" +msgstr "" + +#: plugin/builtin/labels/label_sheet.py:106 +msgid "Label is too large for page size" +msgstr "" + +#: plugin/builtin/labels/label_sheet.py:140 +msgid "No labels were generated" +msgstr "" + +#: plugin/builtin/suppliers/digikey.py:16 +msgid "Supplier Integration - DigiKey" +msgstr "" + +#: plugin/builtin/suppliers/digikey.py:17 +msgid "Provides support for scanning DigiKey barcodes" +msgstr "" + +#: plugin/builtin/suppliers/digikey.py:26 +msgid "The Supplier which acts as 'DigiKey'" +msgstr "" + +#: plugin/builtin/suppliers/lcsc.py:18 +msgid "Supplier Integration - LCSC" +msgstr "" + +#: plugin/builtin/suppliers/lcsc.py:19 +msgid "Provides support for scanning LCSC barcodes" +msgstr "" + +#: plugin/builtin/suppliers/lcsc.py:27 +msgid "The Supplier which acts as 'LCSC'" +msgstr "" + +#: plugin/builtin/suppliers/mouser.py:16 +msgid "Supplier Integration - Mouser" +msgstr "" + +#: plugin/builtin/suppliers/mouser.py:17 +msgid "Provides support for scanning Mouser barcodes" +msgstr "" + +#: plugin/builtin/suppliers/mouser.py:25 +msgid "The Supplier which acts as 'Mouser'" +msgstr "" + +#: plugin/builtin/suppliers/tme.py:18 +msgid "Supplier Integration - TME" +msgstr "" + +#: plugin/builtin/suppliers/tme.py:19 +msgid "Provides support for scanning TME barcodes" +msgstr "" + +#: plugin/builtin/suppliers/tme.py:27 +msgid "The Supplier which acts as 'TME'" +msgstr "" + +#: plugin/installer.py:199 plugin/installer.py:282 +msgid "Only staff users can administer plugins" +msgstr "" + +#: plugin/installer.py:202 +msgid "Plugin installation is disabled" +msgstr "" + +#: plugin/installer.py:246 +msgid "Installed plugin successfully" +msgstr "" + +#: plugin/installer.py:251 +#, python-brace-format +msgid "Installed plugin into {path}" +msgstr "" + +#: plugin/installer.py:273 +msgid "Plugin was not found in registry" +msgstr "" + +#: plugin/installer.py:276 +msgid "Plugin is not a packaged plugin" +msgstr "" + +#: plugin/installer.py:279 +msgid "Plugin package name not found" +msgstr "" + +#: plugin/installer.py:299 +msgid "Plugin uninstalling is disabled" +msgstr "" + +#: plugin/installer.py:303 +msgid "Plugin cannot be uninstalled as it is currently active" +msgstr "" + +#: plugin/installer.py:316 +msgid "Uninstalled plugin successfully" +msgstr "" + +#: plugin/models.py:36 +msgid "Plugin Configuration" +msgstr "" + +#: plugin/models.py:37 +msgid "Plugin Configurations" +msgstr "" + +#: plugin/models.py:44 +msgid "Key of plugin" +msgstr "" + +#: plugin/models.py:52 +msgid "PluginName of the plugin" +msgstr "" + +#: plugin/models.py:59 plugin/serializers.py:115 +msgid "Package Name" +msgstr "" + +#: plugin/models.py:61 +msgid "Name of the installed package, if the plugin was installed via PIP" +msgstr "" + +#: plugin/models.py:66 +msgid "Is the plugin active" +msgstr "" + +#: plugin/models.py:157 templates/js/translated/table_filters.js:377 +#: templates/js/translated/table_filters.js:525 +msgid "Installed" +msgstr "" + +#: plugin/models.py:166 +msgid "Sample plugin" +msgstr "" + +#: plugin/models.py:174 +msgid "Builtin Plugin" +msgstr "" + +#: plugin/models.py:182 +msgid "Package Plugin" +msgstr "" + +#: plugin/models.py:259 report/models.py:482 +#: templates/InvenTree/settings/plugin_settings.html:9 +#: templates/js/translated/plugin.js:51 +msgid "Plugin" +msgstr "" + +#: plugin/models.py:306 +msgid "Method" +msgstr "" + +#: plugin/plugin.py:275 +msgid "No author found" +msgstr "" + +#: plugin/registry.py:534 +#, python-brace-format +msgid "Plugin '{p}' is not compatible with the current InvenTree version {v}" +msgstr "" + +#: plugin/registry.py:537 +#, python-brace-format +msgid "Plugin requires at least version {v}" +msgstr "" + +#: plugin/registry.py:539 +#, python-brace-format +msgid "Plugin requires at most version {v}" +msgstr "" + +#: plugin/samples/integration/sample.py:52 +msgid "Enable PO" +msgstr "" + +#: plugin/samples/integration/sample.py:53 +msgid "Enable PO functionality in InvenTree interface" +msgstr "" + +#: plugin/samples/integration/sample.py:58 +msgid "API Key" +msgstr "" + +#: plugin/samples/integration/sample.py:59 +msgid "Key required for accessing external API" +msgstr "" + +#: plugin/samples/integration/sample.py:63 +msgid "Numerical" +msgstr "" + +#: plugin/samples/integration/sample.py:64 +msgid "A numerical setting" +msgstr "" + +#: plugin/samples/integration/sample.py:69 +msgid "Choice Setting" +msgstr "" + +#: plugin/samples/integration/sample.py:70 +msgid "A setting with multiple choices" +msgstr "" + +#: plugin/samples/integration/sample_currency_exchange.py:15 +msgid "Sample currency exchange plugin" +msgstr "" + +#: plugin/samples/integration/sample_currency_exchange.py:18 +msgid "InvenTree Contributors" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:27 +msgid "Enable Part Panels" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:28 +msgid "Enable custom panels for Part views" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:33 +msgid "Enable Purchase Order Panels" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:34 +msgid "Enable custom panels for Purchase Order views" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:39 +msgid "Enable Broken Panels" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:40 +msgid "Enable broken panels for testing" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:45 +msgid "Enable Dynamic Panel" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:46 +msgid "Enable dynamic panels for testing" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:98 +msgid "Part Panel" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:131 +msgid "Broken Dashboard Item" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:133 +msgid "This is a broken dashboard item - it will not render!" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:139 +msgid "Sample Dashboard Item" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:141 +msgid "This is a sample dashboard item. It renders a simple string of HTML content." +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:147 +msgid "Context Dashboard Item" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:161 +msgid "Admin Dashboard Item" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:162 +msgid "This is an admin-only dashboard item." +msgstr "" + +#: plugin/serializers.py:82 +msgid "Source File" +msgstr "" + +#: plugin/serializers.py:83 +msgid "Path to the source file for admin integration" +msgstr "" + +#: plugin/serializers.py:90 +msgid "Optional context data for the admin integration" +msgstr "" + +#: plugin/serializers.py:106 +msgid "Source URL" +msgstr "" + +#: plugin/serializers.py:108 +msgid "Source for the package - this can be a custom registry or a VCS path" +msgstr "" + +#: plugin/serializers.py:117 +msgid "Name for the Plugin Package - can also contain a version indicator" +msgstr "" + +#: plugin/serializers.py:124 +#: templates/InvenTree/settings/plugin_settings.html:42 +#: templates/js/translated/plugin.js:86 +msgid "Version" +msgstr "" + +#: plugin/serializers.py:126 +msgid "Version specifier for the plugin. Leave blank for latest version." +msgstr "" + +#: plugin/serializers.py:131 +msgid "Confirm plugin installation" +msgstr "" + +#: plugin/serializers.py:133 +msgid "This will install this plugin now into the current instance. The instance will go into maintenance." +msgstr "" + +#: plugin/serializers.py:146 +msgid "Installation not confirmed" +msgstr "" + +#: plugin/serializers.py:148 +msgid "Either packagename of URL must be provided" +msgstr "" + +#: plugin/serializers.py:184 +msgid "Full reload" +msgstr "" + +#: plugin/serializers.py:185 +msgid "Perform a full reload of the plugin registry" +msgstr "" + +#: plugin/serializers.py:191 +msgid "Force reload" +msgstr "" + +#: plugin/serializers.py:193 +msgid "Force a reload of the plugin registry, even if it is already loaded" +msgstr "" + +#: plugin/serializers.py:200 +msgid "Collect plugins" +msgstr "" + +#: plugin/serializers.py:201 +msgid "Collect plugins and add them to the registry" +msgstr "" + +#: plugin/serializers.py:228 +msgid "Activate Plugin" +msgstr "" + +#: plugin/serializers.py:229 +msgid "Activate this plugin" +msgstr "" + +#: plugin/serializers.py:249 +msgid "Delete configuration" +msgstr "" + +#: plugin/serializers.py:250 +msgid "Delete the plugin configuration from the database" +msgstr "" + +#: report/api.py:88 +msgid "No valid objects provided to template" +msgstr "" + +#: report/api.py:103 report/models.py:446 report/serializers.py:99 +#: report/serializers.py:149 templates/js/translated/purchase_order.js:1801 +#: templates/js/translated/return_order.js:353 +#: templates/js/translated/sales_order.js:846 +#: templates/js/translated/sales_order.js:1020 +msgid "Items" +msgstr "" + +#: report/api.py:180 +msgid "Plugin not found" +msgstr "" + +#: report/api.py:182 +msgid "Plugin is not active" +msgstr "" + +#: report/api.py:184 +msgid "Plugin does not support label printing" +msgstr "" + +#: report/api.py:233 +msgid "Invalid label dimensions" +msgstr "" + +#: report/api.py:248 report/api.py:329 +msgid "No valid items provided to template" +msgstr "" + +#: report/api.py:283 +msgid "Error printing label" +msgstr "" + +#: report/api.py:358 +msgid "Report saved at time of printing" +msgstr "" + +#: report/api.py:384 report/api.py:420 +#, python-brace-format +msgid "Template file '{template}' is missing or does not exist" +msgstr "" + +#: report/helpers.py:43 +msgid "A4" +msgstr "" + +#: report/helpers.py:44 +msgid "A3" +msgstr "" + +#: report/helpers.py:45 +msgid "Legal" +msgstr "" + +#: report/helpers.py:46 +msgid "Letter" +msgstr "" + +#: report/models.py:118 +msgid "Template file with this name already exists" +msgstr "" + +#: report/models.py:150 +msgid "Template name" +msgstr "" + +#: report/models.py:156 +msgid "Template description" +msgstr "" + +#: report/models.py:162 +msgid "Revision number (auto-increments)" +msgstr "" + +#: report/models.py:168 +msgid "Attach to Model on Print" +msgstr "" + +#: report/models.py:170 +msgid "Save report output as an attachment against linked model instance when printing" +msgstr "" + +#: report/models.py:210 +msgid "Filename Pattern" +msgstr "" + +#: report/models.py:211 +msgid "Pattern for generating filenames" +msgstr "" + +#: report/models.py:216 +msgid "Template is enabled" +msgstr "" + +#: report/models.py:222 +msgid "Target model type for template" +msgstr "" + +#: report/models.py:242 +msgid "Filters" +msgstr "" + +#: report/models.py:243 +msgid "Template query filters (comma-separated list of key=value pairs)" +msgstr "" + +#: report/models.py:302 report/models.py:369 +msgid "Template file" +msgstr "" + +#: report/models.py:310 +msgid "Page size for PDF reports" +msgstr "" + +#: report/models.py:316 +msgid "Render report in landscape orientation" +msgstr "" + +#: report/models.py:375 +msgid "Width [mm]" +msgstr "" + +#: report/models.py:376 +msgid "Label width, specified in mm" +msgstr "" + +#: report/models.py:382 +msgid "Height [mm]" +msgstr "" + +#: report/models.py:383 +msgid "Label height, specified in mm" +msgstr "" + +#: report/models.py:446 +msgid "Number of items to process" +msgstr "" + +#: report/models.py:452 +msgid "Report generation is complete" +msgstr "" + +#: report/models.py:456 templates/js/translated/build.js:2352 +msgid "Progress" +msgstr "" + +#: report/models.py:456 +msgid "Report generation progress" +msgstr "" + +#: report/models.py:464 +msgid "Report Template" +msgstr "" + +#: report/models.py:471 report/models.py:494 +msgid "Output File" +msgstr "" + +#: report/models.py:472 report/models.py:495 +msgid "Generated output file" +msgstr "" + +#: report/models.py:483 +msgid "Label output plugin" +msgstr "" + +#: report/models.py:487 +msgid "Label Template" +msgstr "" + +#: report/models.py:510 +msgid "Snippet" +msgstr "" + +#: report/models.py:511 +msgid "Report snippet file" +msgstr "" + +#: report/models.py:518 +msgid "Snippet file description" +msgstr "" + +#: report/models.py:536 +msgid "Asset" +msgstr "" + +#: report/models.py:537 +msgid "Report asset file" +msgstr "" + +#: report/models.py:544 +msgid "Asset file description" +msgstr "" + +#: report/serializers.py:92 +msgid "Select report template" +msgstr "" + +#: report/serializers.py:100 report/serializers.py:150 +msgid "List of item primary keys to include in the report" +msgstr "" + +#: report/serializers.py:133 +msgid "Select label template" +msgstr "" + +#: report/serializers.py:141 +msgid "Printing Plugin" +msgstr "" + +#: report/serializers.py:142 +msgid "Select plugin to use for label printing" +msgstr "" + +#: report/templates/label/part_label.html:31 +#: report/templates/label/stockitem_qr.html:21 +#: report/templates/label/stocklocation_qr.html:20 +#: templates/allauth_2fa/setup.html:18 +msgid "QR Code" +msgstr "" + +#: report/templates/label/part_label_code128.html:31 +#: report/templates/label/stocklocation_qr_and_text.html:31 +#: templates/qr_code.html:7 +msgid "QR code" +msgstr "" + +#: report/templates/report/inventree_bill_of_materials_report.html:133 +msgid "Materials needed" +msgstr "" + +#: report/templates/report/inventree_build_order_report.html:146 +msgid "Required For" +msgstr "" + +#: report/templates/report/inventree_purchase_order_report.html:15 +msgid "Supplier was deleted" +msgstr "" + +#: report/templates/report/inventree_purchase_order_report.html:30 +#: report/templates/report/inventree_sales_order_report.html:30 +#: templates/js/translated/order.js:341 templates/js/translated/pricing.js:527 +#: templates/js/translated/pricing.js:596 +#: templates/js/translated/pricing.js:832 +#: templates/js/translated/purchase_order.js:2169 +#: templates/js/translated/sales_order.js:1854 +msgid "Unit Price" +msgstr "" + +#: report/templates/report/inventree_purchase_order_report.html:55 +#: report/templates/report/inventree_return_order_report.html:48 +#: report/templates/report/inventree_sales_order_report.html:55 +msgid "Extra Line Items" +msgstr "" + +#: report/templates/report/inventree_purchase_order_report.html:72 +#: report/templates/report/inventree_sales_order_report.html:72 +#: templates/js/translated/purchase_order.js:2071 +#: templates/js/translated/sales_order.js:1823 +#: templates/test_statistics_table.html:8 +#: templates/test_statistics_table.html:19 +msgid "Total" +msgstr "" + +#: report/templates/report/inventree_sales_order_shipment_report.html:23 +#: stock/templates/stock/stock_sidebar.html:8 +msgid "Allocations" +msgstr "" + +#: report/templates/report/inventree_stock_location_report.html:97 +msgid "Stock location items" +msgstr "" + +#: report/templates/report/inventree_test_report.html:21 +msgid "Stock Item Test Report" +msgstr "" + +#: report/templates/report/inventree_test_report.html:97 +msgid "Test Results" +msgstr "" + +#: report/templates/report/inventree_test_report.html:102 +#: templates/js/translated/stock.js:1580 +msgid "Test" +msgstr "" + +#: report/templates/report/inventree_test_report.html:129 +#: templates/js/translated/stock.js:1448 +msgid "Pass" +msgstr "" + +#: report/templates/report/inventree_test_report.html:131 +#: templates/js/translated/stock.js:1450 +msgid "Fail" +msgstr "" + +#: report/templates/report/inventree_test_report.html:138 +msgid "No result (required)" +msgstr "" + +#: report/templates/report/inventree_test_report.html:140 +#: templates/js/translated/stock.js:1455 +msgid "No result" +msgstr "" + +#: report/templates/report/inventree_test_report.html:153 +#: stock/serializers.py:626 stock/templates/stock/stock_sidebar.html:16 +msgid "Installed Items" +msgstr "" + +#: report/templates/report/inventree_test_report.html:167 stock/admin.py:162 +#: templates/js/translated/stock.js:706 templates/js/translated/stock.js:877 +#: templates/js/translated/stock.js:3195 +msgid "Serial" +msgstr "" + +#: report/templatetags/report.py:98 +msgid "Asset file does not exist" +msgstr "" + +#: report/templatetags/report.py:154 report/templatetags/report.py:233 +msgid "Image file not found" +msgstr "" + +#: report/templatetags/report.py:258 +msgid "part_image tag requires a Part instance" +msgstr "" + +#: report/templatetags/report.py:299 +msgid "company_image tag requires a Company instance" +msgstr "" + +#: stock/admin.py:51 stock/admin.py:172 +msgid "Location ID" +msgstr "" + +#: stock/admin.py:63 stock/templates/stock/location.html:129 +#: stock/templates/stock/location.html:135 +msgid "Location Path" +msgstr "" + +#: stock/admin.py:149 +msgid "Stock Item ID" +msgstr "" + +#: stock/admin.py:168 +msgid "Status Code" +msgstr "" + +#: stock/admin.py:180 +msgid "Supplier Part ID" +msgstr "" + +#: stock/admin.py:185 +msgid "Supplier Part SKU" +msgstr "" + +#: stock/admin.py:190 +msgid "Supplier ID" +msgstr "" + +#: stock/admin.py:201 +msgid "Customer ID" +msgstr "" + +#: stock/admin.py:206 stock/models.py:902 +#: stock/templates/stock/item_base.html:351 +msgid "Installed In" +msgstr "" + +#: stock/admin.py:211 +msgid "Build ID" +msgstr "" + +#: stock/admin.py:221 +msgid "Sales Order ID" +msgstr "" + +#: stock/admin.py:226 +msgid "Purchase Order ID" +msgstr "" + +#: stock/admin.py:241 +msgid "Review Needed" +msgstr "" + +#: stock/admin.py:246 +msgid "Delete on Deplete" +msgstr "" + +#: stock/admin.py:261 stock/models.py:996 +#: stock/templates/stock/item_base.html:430 +#: templates/js/translated/stock.js:2316 users/models.py:124 +msgid "Expiry Date" +msgstr "" + +#: stock/api.py:310 +msgid "Filter by location depth" +msgstr "" + +#: stock/api.py:330 +msgid "Filter by top-level locations" +msgstr "" + +#: stock/api.py:345 +msgid "Include sub-locations in filtered results" +msgstr "" + +#: stock/api.py:366 stock/serializers.py:1217 +msgid "Parent Location" +msgstr "" + +#: stock/api.py:367 +msgid "Filter by parent location" +msgstr "" + +#: stock/api.py:615 templates/js/translated/table_filters.js:434 +msgid "External Location" +msgstr "" + +#: stock/api.py:803 +msgid "Part Tree" +msgstr "" + +#: stock/api.py:833 +msgid "Expiry date before" +msgstr "" + +#: stock/api.py:837 +msgid "Expiry date after" +msgstr "" + +#: stock/api.py:840 stock/serializers.py:631 +#: stock/templates/stock/item_base.html:436 +#: templates/js/translated/table_filters.js:448 +msgid "Stale" +msgstr "" + +#: stock/api.py:927 +msgid "Quantity is required" +msgstr "" + +#: stock/api.py:932 +msgid "Valid part must be supplied" +msgstr "" + +#: stock/api.py:959 +msgid "The given supplier part does not exist" +msgstr "" + +#: stock/api.py:969 +msgid "The supplier part has a pack size defined, but flag use_pack_size not set" +msgstr "" + +#: stock/api.py:996 +msgid "Serial numbers cannot be supplied for a non-trackable part" +msgstr "" + +#: stock/models.py:70 +msgid "Stock Location type" +msgstr "" + +#: stock/models.py:71 +msgid "Stock Location types" +msgstr "" + +#: stock/models.py:97 +msgid "Default icon for all locations that have no icon set (optional)" +msgstr "" + +#: stock/models.py:137 stock/models.py:884 +#: stock/templates/stock/location.html:18 +#: stock/templates/stock/stock_app_base.html:8 +msgid "Stock Location" +msgstr "" + +#: stock/models.py:138 stock/templates/stock/location.html:184 +#: templates/InvenTree/search.html:166 templates/js/translated/search.js:178 +#: users/models.py:205 +msgid "Stock Locations" +msgstr "" + +#: stock/models.py:186 stock/models.py:1045 +#: stock/templates/stock/item_base.html:244 +msgid "Owner" +msgstr "" + +#: stock/models.py:187 stock/models.py:1046 +msgid "Select Owner" +msgstr "" + +#: stock/models.py:195 +msgid "Stock items may not be directly located into a structural stock locations, but may be located to child locations." +msgstr "" + +#: stock/models.py:202 templates/js/translated/stock.js:2866 +#: templates/js/translated/table_filters.js:250 +msgid "External" +msgstr "" + +#: stock/models.py:203 +msgid "This is an external stock location" +msgstr "" + +#: stock/models.py:209 templates/js/translated/stock.js:2875 +#: templates/js/translated/table_filters.js:253 +msgid "Location type" +msgstr "" + +#: stock/models.py:213 +msgid "Stock location type of this location" +msgstr "" + +#: stock/models.py:285 +msgid "You cannot make this stock location structural because some stock items are already located into it!" +msgstr "" + +#: stock/models.py:492 +msgid "Part must be specified" +msgstr "" + +#: stock/models.py:741 +msgid "Stock items cannot be located into structural stock locations!" +msgstr "" + +#: stock/models.py:768 stock/serializers.py:492 +msgid "Stock item cannot be created for virtual parts" +msgstr "" + +#: stock/models.py:785 +#, python-brace-format +msgid "Part type ('{self.supplier_part.part}') must be {self.part}" +msgstr "" + +#: stock/models.py:795 stock/models.py:808 +msgid "Quantity must be 1 for item with a serial number" +msgstr "" + +#: stock/models.py:798 +msgid "Serial number cannot be set if quantity greater than 1" +msgstr "" + +#: stock/models.py:820 +msgid "Item cannot belong to itself" +msgstr "" + +#: stock/models.py:825 +msgid "Item must have a build reference if is_building=True" +msgstr "" + +#: stock/models.py:838 +msgid "Build reference does not point to the same part object" +msgstr "" + +#: stock/models.py:854 +msgid "Parent Stock Item" +msgstr "" + +#: stock/models.py:866 +msgid "Base part" +msgstr "" + +#: stock/models.py:876 +msgid "Select a matching supplier part for this stock item" +msgstr "" + +#: stock/models.py:888 +msgid "Where is this stock item located?" +msgstr "" + +#: stock/models.py:896 stock/serializers.py:1611 +msgid "Packaging this stock item is stored in" +msgstr "" + +#: stock/models.py:907 +msgid "Is this item installed in another item?" +msgstr "" + +#: stock/models.py:926 +msgid "Serial number for this item" +msgstr "" + +#: stock/models.py:940 stock/serializers.py:1594 +msgid "Batch code for this stock item" +msgstr "" + +#: stock/models.py:945 +msgid "Stock Quantity" +msgstr "" + +#: stock/models.py:955 +msgid "Source Build" +msgstr "" + +#: stock/models.py:958 +msgid "Build for this stock item" +msgstr "" + +#: stock/models.py:965 stock/templates/stock/item_base.html:360 +msgid "Consumed By" +msgstr "" + +#: stock/models.py:968 +msgid "Build order which consumed this stock item" +msgstr "" + +#: stock/models.py:977 +msgid "Source Purchase Order" +msgstr "" + +#: stock/models.py:981 +msgid "Purchase order for this stock item" +msgstr "" + +#: stock/models.py:987 +msgid "Destination Sales Order" +msgstr "" + +#: stock/models.py:998 +msgid "Expiry date for stock item. Stock will be considered expired after this date" +msgstr "" + +#: stock/models.py:1016 +msgid "Delete on deplete" +msgstr "" + +#: stock/models.py:1017 +msgid "Delete this Stock Item when stock is depleted" +msgstr "" + +#: stock/models.py:1037 +msgid "Single unit purchase price at time of purchase" +msgstr "" + +#: stock/models.py:1068 +msgid "Converted to part" +msgstr "" + +#: stock/models.py:1600 +msgid "Part is not set as trackable" +msgstr "" + +#: stock/models.py:1606 +msgid "Quantity must be integer" +msgstr "" + +#: stock/models.py:1614 +#, python-brace-format +msgid "Quantity must not exceed available stock quantity ({self.quantity})" +msgstr "" + +#: stock/models.py:1620 +msgid "Serial numbers must be provided as a list" +msgstr "" + +#: stock/models.py:1625 +msgid "Quantity does not match serial numbers" +msgstr "" + +#: stock/models.py:1747 stock/models.py:2563 +msgid "Test template does not exist" +msgstr "" + +#: stock/models.py:1765 +msgid "Stock item has been assigned to a sales order" +msgstr "" + +#: stock/models.py:1769 +msgid "Stock item is installed in another item" +msgstr "" + +#: stock/models.py:1772 +msgid "Stock item contains other items" +msgstr "" + +#: stock/models.py:1775 +msgid "Stock item has been assigned to a customer" +msgstr "" + +#: stock/models.py:1778 +msgid "Stock item is currently in production" +msgstr "" + +#: stock/models.py:1781 +msgid "Serialized stock cannot be merged" +msgstr "" + +#: stock/models.py:1788 stock/serializers.py:1500 +msgid "Duplicate stock items" +msgstr "" + +#: stock/models.py:1792 +msgid "Stock items must refer to the same part" +msgstr "" + +#: stock/models.py:1800 +msgid "Stock items must refer to the same supplier part" +msgstr "" + +#: stock/models.py:1805 +msgid "Stock status codes must match" +msgstr "" + +#: stock/models.py:2066 +msgid "StockItem cannot be moved as it is not in stock" +msgstr "" + +#: stock/models.py:2462 +msgid "Stock Item Tracking" +msgstr "" + +#: stock/models.py:2495 +msgid "Entry notes" +msgstr "" + +#: stock/models.py:2535 +msgid "Stock Item Test Result" +msgstr "" + +#: stock/models.py:2566 +msgid "Value must be provided for this test" +msgstr "" + +#: stock/models.py:2570 +msgid "Attachment must be uploaded for this test" +msgstr "" + +#: stock/models.py:2575 +msgid "Invalid value for this test" +msgstr "" + +#: stock/models.py:2660 +msgid "Test result" +msgstr "" + +#: stock/models.py:2667 +msgid "Test output value" +msgstr "" + +#: stock/models.py:2675 stock/serializers.py:245 +msgid "Test result attachment" +msgstr "" + +#: stock/models.py:2679 +msgid "Test notes" +msgstr "" + +#: stock/models.py:2687 templates/js/translated/stock.js:1633 +msgid "Test station" +msgstr "" + +#: stock/models.py:2688 +msgid "The identifier of the test station where the test was performed" +msgstr "" + +#: stock/models.py:2694 +msgid "Started" +msgstr "" + +#: stock/models.py:2695 +msgid "The timestamp of the test start" +msgstr "" + +#: stock/models.py:2701 +msgid "Finished" +msgstr "" + +#: stock/models.py:2702 +msgid "The timestamp of the test finish" +msgstr "" + +#: stock/serializers.py:77 +msgid "Generated batch code" +msgstr "" + +#: stock/serializers.py:86 +msgid "Select build order" +msgstr "" + +#: stock/serializers.py:95 +msgid "Select stock item to generate batch code for" +msgstr "" + +#: stock/serializers.py:104 +msgid "Select location to generate batch code for" +msgstr "" + +#: stock/serializers.py:113 +msgid "Select part to generate batch code for" +msgstr "" + +#: stock/serializers.py:122 +msgid "Select purchase order" +msgstr "" + +#: stock/serializers.py:129 +msgid "Enter quantity for batch code" +msgstr "" + +#: stock/serializers.py:152 +msgid "Generated serial number" +msgstr "" + +#: stock/serializers.py:161 +msgid "Select part to generate serial number for" +msgstr "" + +#: stock/serializers.py:169 +msgid "Quantity of serial numbers to generate" +msgstr "" + +#: stock/serializers.py:234 +msgid "Test template for this result" +msgstr "" + +#: stock/serializers.py:258 +msgid "Template ID or test name must be provided" +msgstr "" + +#: stock/serializers.py:290 +msgid "The test finished time cannot be earlier than the test started time" +msgstr "" + +#: stock/serializers.py:327 +msgid "Serial number is too large" +msgstr "" + +#: stock/serializers.py:462 stock/templates/stock/item_base.html:190 +msgid "Parent Item" +msgstr "" + +#: stock/serializers.py:463 +msgid "Parent stock item" +msgstr "" + +#: stock/serializers.py:484 +msgid "Use pack size when adding: the quantity defined is the number of packs" +msgstr "" + +#: stock/serializers.py:623 stock/templates/stock/item_base.html:434 +#: templates/js/translated/table_filters.js:442 users/models.py:174 +msgid "Expired" +msgstr "" + +#: stock/serializers.py:629 stock/templates/stock/stock_sidebar.html:20 +msgid "Child Items" +msgstr "" + +#: stock/serializers.py:633 +msgid "Tracking Items" +msgstr "" + +#: stock/serializers.py:639 +msgid "Purchase price of this stock item, per unit or pack" +msgstr "" + +#: stock/serializers.py:658 +msgid "Minimum Pricing" +msgstr "" + +#: stock/serializers.py:664 +msgid "Maximum Pricing" +msgstr "" + +#: stock/serializers.py:688 +msgid "Enter number of stock items to serialize" +msgstr "" + +#: stock/serializers.py:701 +#, python-brace-format +msgid "Quantity must not exceed available stock quantity ({q})" +msgstr "" + +#: stock/serializers.py:708 +msgid "Enter serial numbers for new items" +msgstr "" + +#: stock/serializers.py:719 stock/serializers.py:1457 stock/serializers.py:1713 +msgid "Destination stock location" +msgstr "" + +#: stock/serializers.py:726 +msgid "Optional note field" +msgstr "" + +#: stock/serializers.py:736 +msgid "Serial numbers cannot be assigned to this part" +msgstr "" + +#: stock/serializers.py:756 +msgid "Serial numbers already exist" +msgstr "" + +#: stock/serializers.py:795 +msgid "Select stock item to install" +msgstr "" + +#: stock/serializers.py:802 +msgid "Quantity to Install" +msgstr "" + +#: stock/serializers.py:803 +msgid "Enter the quantity of items to install" +msgstr "" + +#: stock/serializers.py:808 stock/serializers.py:888 stock/serializers.py:1014 +#: stock/serializers.py:1064 +msgid "Add transaction note (optional)" +msgstr "" + +#: stock/serializers.py:816 +msgid "Quantity to install must be at least 1" +msgstr "" + +#: stock/serializers.py:824 +msgid "Stock item is unavailable" +msgstr "" + +#: stock/serializers.py:835 +msgid "Selected part is not in the Bill of Materials" +msgstr "" + +#: stock/serializers.py:848 +msgid "Quantity to install must not exceed available quantity" +msgstr "" + +#: stock/serializers.py:883 +msgid "Destination location for uninstalled item" +msgstr "" + +#: stock/serializers.py:934 +msgid "Unsupported statistic type: " +msgstr "" + +#: stock/serializers.py:948 +msgid "Select part to convert stock item into" +msgstr "" + +#: stock/serializers.py:961 +msgid "Selected part is not a valid option for conversion" +msgstr "" + +#: stock/serializers.py:978 +msgid "Cannot convert stock item with assigned SupplierPart" +msgstr "" + +#: stock/serializers.py:1009 +msgid "Destination location for returned item" +msgstr "" + +#: stock/serializers.py:1046 +msgid "Select stock items to change status" +msgstr "" + +#: stock/serializers.py:1052 +msgid "No stock items selected" +msgstr "" + +#: stock/serializers.py:1148 stock/serializers.py:1225 +#: stock/templates/stock/location.html:163 +#: stock/templates/stock/location.html:220 +#: stock/templates/stock/location_sidebar.html:5 +msgid "Sublocations" +msgstr "" + +#: stock/serializers.py:1218 templates/js/translated/stock.js:160 +msgid "Parent stock location" +msgstr "" + +#: stock/serializers.py:1329 +msgid "Part must be salable" +msgstr "" + +#: stock/serializers.py:1333 +msgid "Item is allocated to a sales order" +msgstr "" + +#: stock/serializers.py:1337 +msgid "Item is allocated to a build order" +msgstr "" + +#: stock/serializers.py:1361 +msgid "Customer to assign stock items" +msgstr "" + +#: stock/serializers.py:1367 +msgid "Selected company is not a customer" +msgstr "" + +#: stock/serializers.py:1375 +msgid "Stock assignment notes" +msgstr "" + +#: stock/serializers.py:1385 stock/serializers.py:1639 +msgid "A list of stock items must be provided" +msgstr "" + +#: stock/serializers.py:1464 +msgid "Stock merging notes" +msgstr "" + +#: stock/serializers.py:1469 +msgid "Allow mismatched suppliers" +msgstr "" + +#: stock/serializers.py:1470 +msgid "Allow stock items with different supplier parts to be merged" +msgstr "" + +#: stock/serializers.py:1475 +msgid "Allow mismatched status" +msgstr "" + +#: stock/serializers.py:1476 +msgid "Allow stock items with different status codes to be merged" +msgstr "" + +#: stock/serializers.py:1486 +msgid "At least two stock items must be provided" +msgstr "" + +#: stock/serializers.py:1553 +msgid "No Change" +msgstr "" + +#: stock/serializers.py:1582 +msgid "StockItem primary key value" +msgstr "" + +#: stock/serializers.py:1601 +msgid "Stock item status code" +msgstr "" + +#: stock/serializers.py:1629 +msgid "Stock transaction notes" +msgstr "" + +#: stock/status_codes.py:11 +msgid "OK" +msgstr "" + +#: stock/status_codes.py:12 +msgid "Attention needed" +msgstr "" + +#: stock/status_codes.py:13 +msgid "Damaged" +msgstr "" + +#: stock/status_codes.py:14 +msgid "Destroyed" +msgstr "" + +#: stock/status_codes.py:15 +msgid "Rejected" +msgstr "" + +#: stock/status_codes.py:19 +msgid "Quarantined" +msgstr "" + +#: stock/status_codes.py:44 +msgid "Legacy stock tracking entry" +msgstr "" + +#: stock/status_codes.py:46 templates/js/translated/stock.js:550 +msgid "Stock item created" +msgstr "" + +#: stock/status_codes.py:49 +msgid "Edited stock item" +msgstr "" + +#: stock/status_codes.py:50 +msgid "Assigned serial number" +msgstr "" + +#: stock/status_codes.py:53 +msgid "Stock counted" +msgstr "" + +#: stock/status_codes.py:54 +msgid "Stock manually added" +msgstr "" + +#: stock/status_codes.py:55 +msgid "Stock manually removed" +msgstr "" + +#: stock/status_codes.py:58 +msgid "Location changed" +msgstr "" + +#: stock/status_codes.py:59 +msgid "Stock updated" +msgstr "" + +#: stock/status_codes.py:62 +msgid "Installed into assembly" +msgstr "" + +#: stock/status_codes.py:63 +msgid "Removed from assembly" +msgstr "" + +#: stock/status_codes.py:65 +msgid "Installed component item" +msgstr "" + +#: stock/status_codes.py:66 +msgid "Removed component item" +msgstr "" + +#: stock/status_codes.py:69 +msgid "Split from parent item" +msgstr "" + +#: stock/status_codes.py:70 +msgid "Split child item" +msgstr "" + +#: stock/status_codes.py:73 templates/js/translated/stock.js:1944 +msgid "Merged stock items" +msgstr "" + +#: stock/status_codes.py:76 +msgid "Converted to variant" +msgstr "" + +#: stock/status_codes.py:79 +msgid "Build order output created" +msgstr "" + +#: stock/status_codes.py:80 +msgid "Build order output completed" +msgstr "" + +#: stock/status_codes.py:81 +msgid "Build order output rejected" +msgstr "" + +#: stock/status_codes.py:82 templates/js/translated/stock.js:1849 +msgid "Consumed by build order" +msgstr "" + +#: stock/status_codes.py:85 +msgid "Shipped against Sales Order" +msgstr "" + +#: stock/status_codes.py:88 +msgid "Received against Purchase Order" +msgstr "" + +#: stock/status_codes.py:91 +msgid "Returned against Return Order" +msgstr "" + +#: stock/status_codes.py:94 templates/js/translated/table_filters.js:382 +msgid "Sent to customer" +msgstr "" + +#: stock/status_codes.py:95 +msgid "Returned from customer" +msgstr "" + +#: stock/templates/stock/item.html:17 +msgid "Stock Tracking Information" +msgstr "" + +#: stock/templates/stock/item.html:63 +msgid "Child Stock Items" +msgstr "" + +#: stock/templates/stock/item.html:72 +msgid "This stock item does not have any child items" +msgstr "" + +#: stock/templates/stock/item.html:81 +#: stock/templates/stock/stock_sidebar.html:12 +msgid "Test Data" +msgstr "" + +#: stock/templates/stock/item.html:85 +msgid "Test Report" +msgstr "" + +#: stock/templates/stock/item.html:89 stock/templates/stock/item.html:276 +msgid "Delete Test Data" +msgstr "" + +#: stock/templates/stock/item.html:93 +msgid "Add Test Data" +msgstr "" + +#: stock/templates/stock/item.html:125 +msgid "Stock Item Notes" +msgstr "" + +#: stock/templates/stock/item.html:140 +msgid "Installed Stock Items" +msgstr "" + +#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3355 +msgid "Install Stock Item" +msgstr "" + +#: stock/templates/stock/item.html:264 +msgid "Delete all test results for this stock item" +msgstr "" + +#: stock/templates/stock/item.html:294 templates/js/translated/stock.js:1786 +msgid "Add Test Result" +msgstr "" + +#: stock/templates/stock/item_base.html:34 +msgid "Locate stock item" +msgstr "" + +#: stock/templates/stock/item_base.html:52 +msgid "Scan to Location" +msgstr "" + +#: stock/templates/stock/item_base.html:59 +#: stock/templates/stock/location.html:68 +#: templates/js/translated/filters.js:434 +msgid "Printing actions" +msgstr "" + +#: stock/templates/stock/item_base.html:64 templates/js/translated/report.js:49 +msgid "Print Report" +msgstr "" + +#: stock/templates/stock/item_base.html:72 +msgid "Stock adjustment actions" +msgstr "" + +#: stock/templates/stock/item_base.html:76 +#: stock/templates/stock/location.html:88 templates/js/translated/stock.js:1909 +msgid "Count stock" +msgstr "" + +#: stock/templates/stock/item_base.html:78 +#: templates/js/translated/stock.js:1891 +msgid "Add stock" +msgstr "" + +#: stock/templates/stock/item_base.html:79 +#: templates/js/translated/stock.js:1900 +msgid "Remove stock" +msgstr "" + +#: stock/templates/stock/item_base.html:82 +msgid "Serialize stock" +msgstr "" + +#: stock/templates/stock/item_base.html:85 +#: stock/templates/stock/location.html:94 templates/js/translated/stock.js:1918 +msgid "Transfer stock" +msgstr "" + +#: stock/templates/stock/item_base.html:88 +#: templates/js/translated/stock.js:1973 +msgid "Assign to customer" +msgstr "" + +#: stock/templates/stock/item_base.html:91 +msgid "Return to stock" +msgstr "" + +#: stock/templates/stock/item_base.html:94 +msgid "Uninstall stock item" +msgstr "" + +#: stock/templates/stock/item_base.html:94 +msgid "Uninstall" +msgstr "" + +#: stock/templates/stock/item_base.html:98 +msgid "Install stock item" +msgstr "" + +#: stock/templates/stock/item_base.html:98 +msgid "Install" +msgstr "" + +#: stock/templates/stock/item_base.html:112 +msgid "Convert to variant" +msgstr "" + +#: stock/templates/stock/item_base.html:115 +msgid "Duplicate stock item" +msgstr "" + +#: stock/templates/stock/item_base.html:117 +msgid "Edit stock item" +msgstr "" + +#: stock/templates/stock/item_base.html:120 +msgid "Delete stock item" +msgstr "" + +#: stock/templates/stock/item_base.html:166 templates/InvenTree/search.html:139 +#: templates/js/translated/build.js:2298 templates/navbar.html:38 +msgid "Build" +msgstr "" + +#: stock/templates/stock/item_base.html:208 +msgid "No manufacturer set" +msgstr "" + +#: stock/templates/stock/item_base.html:248 +msgid "You are not in the list of owners of this item. This stock item cannot be edited." +msgstr "" + +#: stock/templates/stock/item_base.html:249 +#: stock/templates/stock/location.html:147 +msgid "Read only" +msgstr "" + +#: stock/templates/stock/item_base.html:262 +msgid "This stock item is unavailable" +msgstr "" + +#: stock/templates/stock/item_base.html:268 +msgid "This stock item is in production and cannot be edited." +msgstr "" + +#: stock/templates/stock/item_base.html:269 +msgid "Edit the stock item from the build view." +msgstr "" + +#: stock/templates/stock/item_base.html:284 +msgid "This stock item is allocated to Sales Order" +msgstr "" + +#: stock/templates/stock/item_base.html:292 +msgid "This stock item is allocated to Build Order" +msgstr "" + +#: stock/templates/stock/item_base.html:308 +msgid "This stock item is serialized. It has a unique serial number and the quantity cannot be adjusted" +msgstr "" + +#: stock/templates/stock/item_base.html:314 +msgid "previous page" +msgstr "" + +#: stock/templates/stock/item_base.html:314 +msgid "Navigate to previous serial number" +msgstr "" + +#: stock/templates/stock/item_base.html:323 +msgid "next page" +msgstr "" + +#: stock/templates/stock/item_base.html:323 +msgid "Navigate to next serial number" +msgstr "" + +#: stock/templates/stock/item_base.html:395 +#: templates/js/translated/build.js:2559 +msgid "No location set" +msgstr "" + +#: stock/templates/stock/item_base.html:410 +msgid "Tests" +msgstr "" + +#: stock/templates/stock/item_base.html:416 +msgid "This stock item has not passed all required tests" +msgstr "" + +#: stock/templates/stock/item_base.html:434 +#, python-format +msgid "This StockItem expired on %(item.expiry_date)s" +msgstr "" + +#: stock/templates/stock/item_base.html:436 +#, python-format +msgid "This StockItem expires on %(item.expiry_date)s" +msgstr "" + +#: stock/templates/stock/item_base.html:452 +msgid "No stocktake performed" +msgstr "" + +#: stock/templates/stock/item_base.html:501 +#: templates/js/translated/stock.js:2038 +msgid "stock item" +msgstr "" + +#: stock/templates/stock/item_base.html:524 +msgid "Edit Stock Status" +msgstr "" + +#: stock/templates/stock/item_base.html:533 +msgid "Stock Item QR Code" +msgstr "" + +#: stock/templates/stock/item_base.html:544 +msgid "Link Barcode to Stock Item" +msgstr "" + +#: stock/templates/stock/item_base.html:608 +msgid "Select one of the part variants listed below." +msgstr "" + +#: stock/templates/stock/item_base.html:611 +msgid "Warning" +msgstr "" + +#: stock/templates/stock/item_base.html:612 +msgid "This action cannot be easily undone" +msgstr "" + +#: stock/templates/stock/item_base.html:620 +msgid "Convert Stock Item" +msgstr "" + +#: stock/templates/stock/item_base.html:653 +msgid "Return to Stock" +msgstr "" + +#: stock/templates/stock/item_serialize.html:5 +msgid "Create serialized items from this stock item." +msgstr "" + +#: stock/templates/stock/item_serialize.html:7 +msgid "Select quantity to serialize, and unique serial numbers." +msgstr "" + +#: stock/templates/stock/location.html:36 +msgid "Perform stocktake for this stock location" +msgstr "" + +#: stock/templates/stock/location.html:43 +msgid "Locate stock location" +msgstr "" + +#: stock/templates/stock/location.html:61 +msgid "Scan stock items into this location" +msgstr "" + +#: stock/templates/stock/location.html:61 +msgid "Scan In Stock Items" +msgstr "" + +#: stock/templates/stock/location.html:62 +msgid "Scan stock container into this location" +msgstr "" + +#: stock/templates/stock/location.html:62 +msgid "Scan In Container" +msgstr "" + +#: stock/templates/stock/location.html:73 +msgid "Print Location Report" +msgstr "" + +#: stock/templates/stock/location.html:102 +msgid "Location actions" +msgstr "" + +#: stock/templates/stock/location.html:104 +msgid "Edit location" +msgstr "" + +#: stock/templates/stock/location.html:106 +msgid "Delete location" +msgstr "" + +#: stock/templates/stock/location.html:136 +msgid "Top level stock location" +msgstr "" + +#: stock/templates/stock/location.html:142 +msgid "Location Owner" +msgstr "" + +#: stock/templates/stock/location.html:146 +msgid "You are not in the list of owners of this location. This stock location cannot be edited." +msgstr "" + +#: stock/templates/stock/location.html:174 +msgid "Location Type" +msgstr "" + +#: stock/templates/stock/location.html:224 +msgid "Create new stock location" +msgstr "" + +#: stock/templates/stock/location.html:225 +msgid "New Location" +msgstr "" + +#: stock/templates/stock/location.html:299 +#: templates/js/translated/stock.js:2658 +msgid "stock location" +msgstr "" + +#: stock/templates/stock/location.html:321 +msgid "Scanned stock container into this location" +msgstr "" + +#: stock/templates/stock/location.html:394 +msgid "Stock Location QR Code" +msgstr "" + +#: stock/templates/stock/location.html:405 +msgid "Link Barcode to Stock Location" +msgstr "" + +#: stock/templates/stock/stock_app_base.html:16 +msgid "Loading..." +msgstr "" + +#: stock/templates/stock/stock_sidebar.html:5 +msgid "Stock Tracking" +msgstr "" + +#: templates/403.html:6 templates/403.html:12 templates/403_csrf.html:7 +msgid "Permission Denied" +msgstr "" + +#: templates/403.html:15 +msgid "You do not have permission to view this page." +msgstr "" + +#: templates/403_csrf.html:11 +msgid "Authentication Failure" +msgstr "" + +#: templates/403_csrf.html:14 +msgid "You have been logged out from InvenTree." +msgstr "" + +#: templates/403_csrf.html:19 templates/InvenTree/settings/sidebar.html:29 +#: templates/navbar.html:150 +msgid "Login" +msgstr "" + +#: templates/404.html:6 templates/404.html:12 +msgid "Page Not Found" +msgstr "" + +#: templates/404.html:15 +msgid "The requested page does not exist" +msgstr "" + +#: templates/500.html:6 templates/500.html:12 +msgid "Internal Server Error" +msgstr "" + +#: templates/500.html:15 +#, python-format +msgid "The %(inventree_title)s server raised an internal error" +msgstr "" + +#: templates/500.html:16 +msgid "Refer to the error log in the admin interface for further details" +msgstr "" + +#: templates/503.html:11 templates/503.html:33 +msgid "Site is in Maintenance" +msgstr "" + +#: templates/503.html:39 +msgid "The site is currently in maintenance and should be up again soon!" +msgstr "" + +#: templates/InvenTree/index.html:7 +msgid "Index" +msgstr "" + +#: templates/InvenTree/index.html:39 +msgid "Subscribed Parts" +msgstr "" + +#: templates/InvenTree/index.html:52 +msgid "Subscribed Categories" +msgstr "" + +#: templates/InvenTree/index.html:62 +msgid "Latest Parts" +msgstr "" + +#: templates/InvenTree/index.html:77 +msgid "BOM Waiting Validation" +msgstr "" + +#: templates/InvenTree/index.html:106 +msgid "Recently Updated" +msgstr "" + +#: templates/InvenTree/index.html:134 +msgid "Depleted Stock" +msgstr "" + +#: templates/InvenTree/index.html:148 +msgid "Required for Build Orders" +msgstr "" + +#: templates/InvenTree/index.html:156 +msgid "Expired Stock" +msgstr "" + +#: templates/InvenTree/index.html:172 +msgid "Stale Stock" +msgstr "" + +#: templates/InvenTree/index.html:199 +msgid "Build Orders In Progress" +msgstr "" + +#: templates/InvenTree/index.html:210 +msgid "Overdue Build Orders" +msgstr "" + +#: templates/InvenTree/index.html:230 +msgid "Outstanding Purchase Orders" +msgstr "" + +#: templates/InvenTree/index.html:241 +msgid "Overdue Purchase Orders" +msgstr "" + +#: templates/InvenTree/index.html:262 +msgid "Outstanding Sales Orders" +msgstr "" + +#: templates/InvenTree/index.html:273 +msgid "Overdue Sales Orders" +msgstr "" + +#: templates/InvenTree/index.html:299 +msgid "InvenTree News" +msgstr "" + +#: templates/InvenTree/index.html:301 +msgid "Current News" +msgstr "" + +#: templates/InvenTree/notifications/history.html:9 +msgid "Notification History" +msgstr "" + +#: templates/InvenTree/notifications/history.html:13 +#: templates/InvenTree/notifications/history.html:14 +#: templates/InvenTree/notifications/notifications.html:75 +msgid "Delete Notifications" +msgstr "" + +#: templates/InvenTree/notifications/inbox.html:9 +msgid "Pending Notifications" +msgstr "" + +#: templates/InvenTree/notifications/inbox.html:13 +#: templates/InvenTree/notifications/inbox.html:14 +msgid "Mark all as read" +msgstr "" + +#: templates/InvenTree/notifications/notifications.html:10 +#: templates/InvenTree/notifications/sidebar.html:5 +#: templates/InvenTree/settings/sidebar.html:17 +#: templates/InvenTree/settings/sidebar.html:37 templates/notifications.html:5 +msgid "Notifications" +msgstr "" + +#: templates/InvenTree/notifications/notifications.html:38 +msgid "No unread notifications found" +msgstr "" + +#: templates/InvenTree/notifications/notifications.html:58 +msgid "No notification history found" +msgstr "" + +#: templates/InvenTree/notifications/notifications.html:65 +msgid "Delete all read notifications" +msgstr "" + +#: templates/InvenTree/notifications/notifications.html:89 +#: templates/js/translated/notification.js:85 +msgid "Delete Notification" +msgstr "" + +#: templates/InvenTree/notifications/sidebar.html:8 +msgid "Inbox" +msgstr "" + +#: templates/InvenTree/notifications/sidebar.html:10 +msgid "History" +msgstr "" + +#: templates/InvenTree/search.html:8 +msgid "Search Results" +msgstr "" + +#: templates/InvenTree/settings/barcode.html:8 +msgid "Barcode Settings" +msgstr "" + +#: templates/InvenTree/settings/build.html:8 +msgid "Build Order Settings" +msgstr "" + +#: templates/InvenTree/settings/category.html:7 +msgid "Category Settings" +msgstr "" + +#: templates/InvenTree/settings/global.html:8 +msgid "Server Settings" +msgstr "" + +#: templates/InvenTree/settings/label.html:8 +#: templates/InvenTree/settings/user_labels.html:9 +msgid "Label Settings" +msgstr "" + +#: templates/InvenTree/settings/login.html:8 +msgid "Login Settings" +msgstr "" + +#: templates/InvenTree/settings/login.html:15 +msgid "Outgoing email has not been configured. Some login and sign-up features may not work correctly!" +msgstr "" + +#: templates/InvenTree/settings/login.html:27 templates/account/signup.html:5 +#: templates/socialaccount/signup.html:5 +msgid "Signup" +msgstr "" + +#: templates/InvenTree/settings/login.html:36 +msgid "Single Sign On" +msgstr "" + +#: templates/InvenTree/settings/mixins/settings.html:5 +#: templates/InvenTree/settings/settings.html:12 templates/navbar.html:147 +msgid "Settings" +msgstr "" + +#: templates/InvenTree/settings/mixins/urls.html:5 +msgid "URLs" +msgstr "" + +#: templates/InvenTree/settings/mixins/urls.html:8 +#, python-format +msgid "The Base-URL for this plugin is %(base)s." +msgstr "" + +#: templates/InvenTree/settings/mixins/urls.html:14 +msgid "URL" +msgstr "" + +#: templates/InvenTree/settings/mixins/urls.html:23 +msgid "Open in new tab" +msgstr "" + +#: templates/InvenTree/settings/notifications.html:9 +#: templates/InvenTree/settings/user_notifications.html:9 +msgid "Notification Settings" +msgstr "" + +#: templates/InvenTree/settings/notifications.html:18 +msgid "Slug" +msgstr "" + +#: templates/InvenTree/settings/part.html:7 +msgid "Part Settings" +msgstr "" + +#: templates/InvenTree/settings/part.html:44 +msgid "Part Import" +msgstr "" + +#: templates/InvenTree/settings/part.html:48 +msgid "Import Part" +msgstr "" + +#: templates/InvenTree/settings/part_parameters.html:20 +msgid "Part Parameter Templates" +msgstr "" + +#: templates/InvenTree/settings/part_stocktake.html:7 +msgid "Stocktake Settings" +msgstr "" + +#: templates/InvenTree/settings/part_stocktake.html:25 +msgid "Stocktake Reports" +msgstr "" + +#: templates/InvenTree/settings/physical_units.html:8 +#: templates/InvenTree/settings/sidebar.html:35 +msgid "Physical Units" +msgstr "" + +#: templates/InvenTree/settings/physical_units.html:12 +msgid "Add Unit" +msgstr "" + +#: templates/InvenTree/settings/plugin.html:9 +#: templates/InvenTree/settings/sidebar.html:64 +msgid "Plugin Settings" +msgstr "" + +#: templates/InvenTree/settings/plugin.html:15 +msgid "Changing the settings below require you to immediately restart the server. Do not change this while under active usage." +msgstr "" + +#: templates/InvenTree/settings/plugin.html:38 +#: templates/InvenTree/settings/sidebar.html:66 +msgid "Plugins" +msgstr "" + +#: templates/InvenTree/settings/plugin.html:44 +#: templates/InvenTree/settings/plugin.html:45 +#: templates/js/translated/plugin.js:151 +msgid "Install Plugin" +msgstr "" + +#: templates/InvenTree/settings/plugin.html:47 +#: templates/InvenTree/settings/plugin.html:48 +#: templates/js/translated/plugin.js:224 +msgid "Reload Plugins" +msgstr "" + +#: templates/InvenTree/settings/plugin.html:58 +msgid "External plugins are not enabled for this InvenTree installation" +msgstr "" + +#: templates/InvenTree/settings/plugin.html:73 +msgid "Plugin Error Stack" +msgstr "" + +#: templates/InvenTree/settings/plugin.html:82 +msgid "Stage" +msgstr "" + +#: templates/InvenTree/settings/plugin.html:84 +#: templates/js/translated/notification.js:76 +msgid "Message" +msgstr "" + +#: templates/InvenTree/settings/plugin_settings.html:16 +msgid "Plugin information" +msgstr "" + +#: templates/InvenTree/settings/plugin_settings.html:47 +msgid "no version information supplied" +msgstr "" + +#: templates/InvenTree/settings/plugin_settings.html:61 +msgid "License" +msgstr "" + +#: templates/InvenTree/settings/plugin_settings.html:70 +msgid "The code information is pulled from the latest git commit for this plugin. It might not reflect official version numbers or information but the actual code running." +msgstr "" + +#: templates/InvenTree/settings/plugin_settings.html:76 +msgid "Package information" +msgstr "" + +#: templates/InvenTree/settings/plugin_settings.html:82 +msgid "Installation method" +msgstr "" + +#: templates/InvenTree/settings/plugin_settings.html:85 +msgid "This plugin was installed as a package" +msgstr "" + +#: templates/InvenTree/settings/plugin_settings.html:87 +msgid "This plugin was found in a local server path" +msgstr "" + +#: templates/InvenTree/settings/plugin_settings.html:93 +msgid "Installation path" +msgstr "" + +#: templates/InvenTree/settings/plugin_settings.html:100 +#: templates/js/translated/plugin.js:68 +#: templates/js/translated/table_filters.js:517 +msgid "Builtin" +msgstr "" + +#: templates/InvenTree/settings/plugin_settings.html:101 +msgid "This is a builtin plugin which cannot be disabled" +msgstr "" + +#: templates/InvenTree/settings/plugin_settings.html:107 +#: templates/js/translated/plugin.js:72 +#: templates/js/translated/table_filters.js:521 +msgid "Sample" +msgstr "" + +#: templates/InvenTree/settings/plugin_settings.html:108 +msgid "This is a sample plugin" +msgstr "" + +#: templates/InvenTree/settings/plugin_settings.html:113 +msgid "Commit Author" +msgstr "" + +#: templates/InvenTree/settings/plugin_settings.html:117 +#: templates/about.html:36 +msgid "Commit Date" +msgstr "" + +#: templates/InvenTree/settings/plugin_settings.html:121 +#: templates/about.html:29 +msgid "Commit Hash" +msgstr "" + +#: templates/InvenTree/settings/plugin_settings.html:125 +msgid "Commit Message" +msgstr "" + +#: templates/InvenTree/settings/po.html:7 +msgid "Purchase Order Settings" +msgstr "" + +#: templates/InvenTree/settings/pricing.html:7 +msgid "Pricing Settings" +msgstr "" + +#: templates/InvenTree/settings/pricing.html:35 +msgid "Exchange Rates" +msgstr "" + +#: templates/InvenTree/settings/pricing.html:39 +msgid "Update Now" +msgstr "" + +#: templates/InvenTree/settings/pricing.html:47 +#: templates/InvenTree/settings/pricing.html:51 +msgid "Last Update" +msgstr "" + +#: templates/InvenTree/settings/pricing.html:51 +msgid "Never" +msgstr "" + +#: templates/InvenTree/settings/project_codes.html:8 +msgid "Project Code Settings" +msgstr "" + +#: templates/InvenTree/settings/project_codes.html:21 +#: templates/InvenTree/settings/sidebar.html:33 +msgid "Project Codes" +msgstr "" + +#: templates/InvenTree/settings/project_codes.html:25 +#: templates/InvenTree/settings/settings_staff_js.html:216 +msgid "New Project Code" +msgstr "" + +#: templates/InvenTree/settings/report.html:8 +#: templates/InvenTree/settings/user_reporting.html:9 +msgid "Report Settings" +msgstr "" + +#: templates/InvenTree/settings/returns.html:7 +msgid "Return Order Settings" +msgstr "" + +#: templates/InvenTree/settings/setting.html:31 +msgid "No value set" +msgstr "" + +#: templates/InvenTree/settings/setting.html:46 +msgid "Edit setting" +msgstr "" + +#: templates/InvenTree/settings/settings_js.html:58 +msgid "Edit Plugin Setting" +msgstr "" + +#: templates/InvenTree/settings/settings_js.html:60 +msgid "Edit Notification Setting" +msgstr "" + +#: templates/InvenTree/settings/settings_js.html:63 +msgid "Edit Global Setting" +msgstr "" + +#: templates/InvenTree/settings/settings_js.html:65 +msgid "Edit User Setting" +msgstr "" + +#: templates/InvenTree/settings/settings_staff_js.html:49 +msgid "Rate" +msgstr "" + +#: templates/InvenTree/settings/settings_staff_js.html:81 +#: templates/js/translated/forms.js:548 templates/js/translated/helpers.js:109 +#: templates/js/translated/part.js:395 templates/js/translated/pricing.js:629 +#: templates/js/translated/stock.js:252 users/models.py:408 +msgid "Delete" +msgstr "" + +#: templates/InvenTree/settings/settings_staff_js.html:95 +msgid "Edit Custom Unit" +msgstr "" + +#: templates/InvenTree/settings/settings_staff_js.html:110 +msgid "Delete Custom Unit" +msgstr "" + +#: templates/InvenTree/settings/settings_staff_js.html:124 +msgid "New Custom Unit" +msgstr "" + +#: templates/InvenTree/settings/settings_staff_js.html:140 +msgid "No project codes found" +msgstr "" + +#: templates/InvenTree/settings/settings_staff_js.html:158 +#: templates/js/translated/build.js:2403 +msgid "group" +msgstr "" + +#: templates/InvenTree/settings/settings_staff_js.html:175 +#: templates/InvenTree/settings/settings_staff_js.html:189 +msgid "Edit Project Code" +msgstr "" + +#: templates/InvenTree/settings/settings_staff_js.html:176 +#: templates/InvenTree/settings/settings_staff_js.html:203 +msgid "Delete Project Code" +msgstr "" + +#: templates/InvenTree/settings/settings_staff_js.html:285 +msgid "No category parameter templates found" +msgstr "" + +#: templates/InvenTree/settings/settings_staff_js.html:308 +#: templates/js/translated/part.js:1652 +msgid "Edit Template" +msgstr "" + +#: templates/InvenTree/settings/settings_staff_js.html:309 +#: templates/js/translated/part.js:1653 +msgid "Delete Template" +msgstr "" + +#: templates/InvenTree/settings/settings_staff_js.html:326 +msgid "Edit Category Parameter Template" +msgstr "" + +#: templates/InvenTree/settings/settings_staff_js.html:352 +msgid "Delete Category Parameter Template" +msgstr "" + +#: templates/InvenTree/settings/settings_staff_js.html:387 +msgid "Create Category Parameter Template" +msgstr "" + +#: templates/InvenTree/settings/settings_staff_js.html:416 +msgid "Create Part Parameter Template" +msgstr "" + +#: templates/InvenTree/settings/settings_staff_js.html:439 +msgid "No stock location types found" +msgstr "" + +#: templates/InvenTree/settings/settings_staff_js.html:464 +msgid "Location count" +msgstr "" + +#: templates/InvenTree/settings/settings_staff_js.html:469 +#: templates/InvenTree/settings/settings_staff_js.html:483 +msgid "Edit Location Type" +msgstr "" + +#: templates/InvenTree/settings/settings_staff_js.html:470 +msgid "Delete Location type" +msgstr "" + +#: templates/InvenTree/settings/settings_staff_js.html:493 +msgid "Delete Location Type" +msgstr "" + +#: templates/InvenTree/settings/settings_staff_js.html:503 +#: templates/InvenTree/settings/stock.html:39 +msgid "New Location Type" +msgstr "" + +#: templates/InvenTree/settings/sidebar.html:6 +#: templates/InvenTree/settings/user_settings.html:9 +msgid "User Settings" +msgstr "" + +#: templates/InvenTree/settings/sidebar.html:9 +msgid "Account" +msgstr "" + +#: templates/InvenTree/settings/sidebar.html:11 +msgid "Display" +msgstr "" + +#: templates/InvenTree/settings/sidebar.html:13 +msgid "Home Page" +msgstr "" + +#: templates/InvenTree/settings/sidebar.html:15 +#: templates/js/translated/forms.js:2200 templates/js/translated/tables.js:543 +#: templates/navbar.html:107 templates/search.html:8 +#: templates/search_form.html:6 templates/search_form.html:7 +msgid "Search" +msgstr "" + +#: templates/InvenTree/settings/sidebar.html:19 +#: templates/InvenTree/settings/sidebar.html:43 +msgid "Reporting" +msgstr "" + +#: templates/InvenTree/settings/sidebar.html:24 +msgid "Global Settings" +msgstr "" + +#: templates/InvenTree/settings/sidebar.html:27 templates/stats.html:9 +msgid "Server" +msgstr "" + +#: templates/InvenTree/settings/sidebar.html:41 +msgid "Labels" +msgstr "" + +#: templates/InvenTree/settings/sidebar.html:45 +msgid "Categories" +msgstr "" + +#: templates/InvenTree/settings/so.html:7 +msgid "Sales Order Settings" +msgstr "" + +#: templates/InvenTree/settings/stock.html:7 +msgid "Stock Settings" +msgstr "" + +#: templates/InvenTree/settings/stock.html:35 +msgid "Stock Location Types" +msgstr "" + +#: templates/InvenTree/settings/user.html:13 +msgid "Account Settings" +msgstr "" + +#: templates/InvenTree/settings/user.html:19 +#: templates/account/password_reset_from_key.html:4 +#: templates/account/password_reset_from_key.html:7 +msgid "Change Password" +msgstr "" + +#: templates/InvenTree/settings/user.html:55 +msgid "The following email addresses are associated with your account:" +msgstr "" + +#: templates/InvenTree/settings/user.html:76 +msgid "Verified" +msgstr "" + +#: templates/InvenTree/settings/user.html:78 +msgid "Unverified" +msgstr "" + +#: templates/InvenTree/settings/user.html:80 +#: templates/js/translated/company.js:958 +msgid "Primary" +msgstr "" + +#: templates/InvenTree/settings/user.html:86 +msgid "Make Primary" +msgstr "" + +#: templates/InvenTree/settings/user.html:87 +msgid "Re-send Verification" +msgstr "" + +#: templates/InvenTree/settings/user.html:96 +msgid "Warning:" +msgstr "" + +#: templates/InvenTree/settings/user.html:97 +msgid "You currently do not have any email address set up. You should really add an email address so you can receive notifications, reset your password, etc." +msgstr "" + +#: templates/InvenTree/settings/user.html:105 +msgid "Add Email Address" +msgstr "" + +#: templates/InvenTree/settings/user.html:110 +msgid "Add Email" +msgstr "" + +#: templates/InvenTree/settings/user.html:120 +msgid "Multifactor" +msgstr "" + +#: templates/InvenTree/settings/user.html:125 +msgid "You have these factors available:" +msgstr "" + +#: templates/InvenTree/settings/user.html:135 +msgid "TOTP" +msgstr "" + +#: templates/InvenTree/settings/user.html:141 +msgid "Static" +msgstr "" + +#: templates/InvenTree/settings/user.html:150 +msgid "Multifactor authentication is not configured for your account" +msgstr "" + +#: templates/InvenTree/settings/user.html:157 +msgid "Change factors" +msgstr "" + +#: templates/InvenTree/settings/user.html:158 +msgid "Setup multifactor" +msgstr "" + +#: templates/InvenTree/settings/user.html:160 +msgid "Remove multifactor" +msgstr "" + +#: templates/InvenTree/settings/user.html:171 +msgid "Active Sessions" +msgstr "" + +#: templates/InvenTree/settings/user.html:177 +msgid "Log out active sessions (except this one)" +msgstr "" + +#: templates/InvenTree/settings/user.html:178 +msgid "Log Out Active Sessions" +msgstr "" + +#: templates/InvenTree/settings/user.html:187 +msgid "unknown on unknown" +msgstr "" + +#: templates/InvenTree/settings/user.html:188 +msgid "unknown" +msgstr "" + +#: templates/InvenTree/settings/user.html:192 +msgid "IP Address" +msgstr "" + +#: templates/InvenTree/settings/user.html:193 +msgid "Device" +msgstr "" + +#: templates/InvenTree/settings/user.html:194 +msgid "Last Activity" +msgstr "" + +#: templates/InvenTree/settings/user.html:207 +#, python-format +msgid "%(time)s ago (this session)" +msgstr "" + +#: templates/InvenTree/settings/user.html:209 +#, python-format +msgid "%(time)s ago" +msgstr "" + +#: templates/InvenTree/settings/user.html:223 +msgid "Do you really want to remove the selected email address?" +msgstr "" + +#: templates/InvenTree/settings/user_display.html:9 +msgid "Display Settings" +msgstr "" + +#: templates/InvenTree/settings/user_display.html:29 +msgid "Theme Settings" +msgstr "" + +#: templates/InvenTree/settings/user_display.html:39 +msgid "Select theme" +msgstr "" + +#: templates/InvenTree/settings/user_display.html:50 +msgid "Set Theme" +msgstr "" + +#: templates/InvenTree/settings/user_display.html:58 +msgid "Language Settings" +msgstr "" + +#: templates/InvenTree/settings/user_display.html:67 +msgid "Select language" +msgstr "" + +#: templates/InvenTree/settings/user_display.html:83 +#, python-format +msgid "%(lang_translated)s%% translated" +msgstr "" + +#: templates/InvenTree/settings/user_display.html:85 +msgid "No translations available" +msgstr "" + +#: templates/InvenTree/settings/user_display.html:92 +msgid "Set Language" +msgstr "" + +#: templates/InvenTree/settings/user_display.html:95 +msgid "Some languages are not complete" +msgstr "" + +#: templates/InvenTree/settings/user_display.html:97 +msgid "Show only sufficient" +msgstr "" + +#: templates/InvenTree/settings/user_display.html:99 +msgid "and hidden." +msgstr "" + +#: templates/InvenTree/settings/user_display.html:99 +msgid "Show them too" +msgstr "" + +#: templates/InvenTree/settings/user_display.html:106 +msgid "Help the translation efforts!" +msgstr "" + +#: templates/InvenTree/settings/user_display.html:107 +msgid "Native language translation of the web application is community contributed via crowdin. Contributions are welcomed and encouraged." +msgstr "" + +#: templates/InvenTree/settings/user_display.html:108 +msgid "InvenTree Translation Project" +msgstr "" + +#: templates/InvenTree/settings/user_homepage.html:9 +msgid "Home Page Settings" +msgstr "" + +#: templates/InvenTree/settings/user_search.html:9 +msgid "Search Settings" +msgstr "" + +#: templates/InvenTree/settings/user_sso.html:9 +msgid "Single Sign On Accounts" +msgstr "" + +#: templates/InvenTree/settings/user_sso.html:16 +msgid "You can sign in to your account using any of the following third party accounts:" +msgstr "" + +#: templates/InvenTree/settings/user_sso.html:52 +msgid "There are no social network accounts connected to this account." +msgstr "" + +#: templates/InvenTree/settings/user_sso.html:58 +msgid "Add SSO Account" +msgstr "" + +#: templates/InvenTree/settings/user_sso.html:67 +msgid "Single Sign On is not enabled for this server" +msgstr "" + +#: templates/about.html:9 +msgid "InvenTree Version" +msgstr "" + +#: templates/about.html:14 +msgid "Development Version" +msgstr "" + +#: templates/about.html:17 +msgid "Up to Date" +msgstr "" + +#: templates/about.html:19 +msgid "Update Available" +msgstr "" + +#: templates/about.html:43 +msgid "Commit Branch" +msgstr "" + +#: templates/about.html:49 +msgid "InvenTree Documentation" +msgstr "" + +#: templates/about.html:54 +msgid "API Version" +msgstr "" + +#: templates/about.html:59 +msgid "Python Version" +msgstr "" + +#: templates/about.html:64 +msgid "Django Version" +msgstr "" + +#: templates/about.html:69 +msgid "View Code on GitHub" +msgstr "" + +#: templates/about.html:74 +msgid "Credits" +msgstr "" + +#: templates/about.html:79 +msgid "Mobile App" +msgstr "" + +#: templates/about.html:84 +msgid "Submit Bug Report" +msgstr "" + +#: templates/about.html:91 templates/clip.html:4 +#: templates/js/translated/helpers.js:598 +msgid "copy to clipboard" +msgstr "" + +#: templates/about.html:91 +msgid "copy version information" +msgstr "" + +#: templates/account/base.html:66 templates/navbar.html:17 +msgid "InvenTree logo" +msgstr "" + +#: templates/account/email_confirm.html:6 +#: templates/account/email_confirm.html:9 +msgid "Confirm Email Address" +msgstr "" + +#: templates/account/email_confirm.html:15 +#, python-format +msgid "Please confirm that %(email)s is an email address for user %(user_display)s." +msgstr "" + +#: templates/account/email_confirm.html:21 templates/js/translated/forms.js:775 +msgid "Confirm" +msgstr "" + +#: templates/account/email_confirm.html:29 +#, python-format +msgid "This email confirmation link expired or is invalid. Please issue a new email confirmation request." +msgstr "" + +#: templates/account/login.html:6 templates/account/login.html:19 +#: templates/account/login.html:40 templates/socialaccount/login.html:5 +msgid "Sign In" +msgstr "" + +#: templates/account/login.html:23 +msgid "Not a member?" +msgstr "" + +#: templates/account/login.html:25 templates/account/signup.html:11 +#: templates/account/signup.html:22 templates/socialaccount/signup.html:8 +#: templates/socialaccount/signup.html:23 +msgid "Sign Up" +msgstr "" + +#: templates/account/login.html:47 +msgid "Forgot Password?" +msgstr "" + +#: templates/account/login.html:55 +msgid "or log in with" +msgstr "" + +#: templates/account/logout.html:5 templates/account/logout.html:8 +#: templates/account/logout.html:20 +msgid "Sign Out" +msgstr "" + +#: templates/account/logout.html:10 +msgid "Are you sure you want to sign out?" +msgstr "" + +#: templates/account/logout.html:27 templates/allauth_2fa/backup_tokens.html:35 +#: templates/allauth_2fa/remove.html:24 templates/allauth_2fa/setup.html:45 +msgid "Return to Site" +msgstr "" + +#: templates/account/password_reset.html:5 +#: templates/account/password_reset.html:12 +msgid "Password Reset" +msgstr "" + +#: templates/account/password_reset.html:18 +msgid "Forgotten your password? Enter your email address below, and we'll send you an email allowing you to reset it." +msgstr "" + +#: templates/account/password_reset.html:23 +msgid "Reset My Password" +msgstr "" + +#: templates/account/password_reset.html:27 templates/account/signup.html:37 +msgid "This function is currently disabled. Please contact an administrator." +msgstr "" + +#: templates/account/password_reset_from_key.html:7 +msgid "Bad Token" +msgstr "" + +#: templates/account/password_reset_from_key.html:11 +#, python-format +msgid "The password reset link was invalid, possibly because it has already been used. Please request a new password reset." +msgstr "" + +#: templates/account/password_reset_from_key.html:18 +msgid "Change password" +msgstr "" + +#: templates/account/password_reset_from_key.html:22 +msgid "Your password is now changed." +msgstr "" + +#: templates/account/signup.html:13 +#, python-format +msgid "Already have an account? Then please sign in." +msgstr "" + +#: templates/account/signup.html:28 +msgid "Use a SSO-provider for signup" +msgstr "" + +#: templates/account/signup_closed.html:5 +#: templates/account/signup_closed.html:8 +msgid "Sign Up Closed" +msgstr "" + +#: templates/account/signup_closed.html:10 +msgid "Sign up is currently closed." +msgstr "" + +#: templates/account/signup_closed.html:15 +#: templates/socialaccount/authentication_error.html:19 +#: templates/socialaccount/login.html:38 templates/socialaccount/signup.html:30 +msgid "Return to login page" +msgstr "" + +#: templates/admin_button.html:8 +msgid "View in administration panel" +msgstr "" + +#: templates/allauth_2fa/authenticate.html:5 +msgid "Two-Factor Authentication" +msgstr "" + +#: templates/allauth_2fa/authenticate.html:13 +msgid "Authenticate" +msgstr "" + +#: templates/allauth_2fa/backup_tokens.html:6 +msgid "Two-Factor Authentication Backup Tokens" +msgstr "" + +#: templates/allauth_2fa/backup_tokens.html:17 +msgid "Backup tokens have been generated, but are not revealed here for security reasons. Press the button below to generate new ones." +msgstr "" + +#: templates/allauth_2fa/backup_tokens.html:20 +msgid "No backup tokens are available. Press the button below to generate some." +msgstr "" + +#: templates/allauth_2fa/backup_tokens.html:28 +msgid "Generate Tokens" +msgstr "" + +#: templates/allauth_2fa/remove.html:6 +msgid "Disable Two-Factor Authentication" +msgstr "" + +#: templates/allauth_2fa/remove.html:9 +msgid "Are you sure?" +msgstr "" + +#: templates/allauth_2fa/remove.html:17 +msgid "Disable 2FA" +msgstr "" + +#: templates/allauth_2fa/setup.html:6 +msgid "Setup Two-Factor Authentication" +msgstr "" + +#: templates/allauth_2fa/setup.html:10 +msgid "Step 1" +msgstr "" + +#: templates/allauth_2fa/setup.html:14 +msgid "Scan the QR code below with a token generator of your choice (for instance Google Authenticator)." +msgstr "" + +#: templates/allauth_2fa/setup.html:20 +msgid "Secret: " +msgstr "" + +#: templates/allauth_2fa/setup.html:24 +msgid "Step 2" +msgstr "" + +#: templates/allauth_2fa/setup.html:28 +msgid "Input a token generated by the app:" +msgstr "" + +#: templates/allauth_2fa/setup.html:38 +msgid "Verify" +msgstr "" + +#: templates/attachment_button.html:4 templates/js/translated/attachment.js:70 +msgid "Add Link" +msgstr "" + +#: templates/attachment_button.html:7 templates/js/translated/attachment.js:48 +msgid "Add Attachment" +msgstr "" + +#: templates/barcode_data.html:5 +msgid "Barcode Identifier" +msgstr "" + +#: templates/base.html:102 +msgid "Server Restart Required" +msgstr "" + +#: templates/base.html:105 +msgid "A configuration option has been changed which requires a server restart" +msgstr "" + +#: templates/base.html:105 templates/base.html:115 +#: templates/socialaccount/authentication_error.html:13 +msgid "Contact your system administrator for further information" +msgstr "" + +#: templates/base.html:112 +msgid "Pending Database Migrations" +msgstr "" + +#: templates/base.html:115 +msgid "There are pending database migrations which require attention" +msgstr "" + +#: templates/email/build_order_completed.html:9 +#: templates/email/canceled_order_assigned.html:9 +#: templates/email/new_order_assigned.html:9 +#: templates/email/overdue_build_order.html:9 +#: templates/email/overdue_purchase_order.html:9 +#: templates/email/overdue_sales_order.html:9 +#: templates/email/purchase_order_received.html:9 +#: templates/email/return_order_received.html:9 +msgid "Click on the following link to view this order" +msgstr "" + +#: templates/email/build_order_required_stock.html:7 +msgid "Stock is required for the following build order" +msgstr "" + +#: templates/email/build_order_required_stock.html:8 +#, python-format +msgid "Build order %(build)s - building %(quantity)s x %(part)s" +msgstr "" + +#: templates/email/build_order_required_stock.html:10 +msgid "Click on the following link to view this build order" +msgstr "" + +#: templates/email/build_order_required_stock.html:14 +msgid "The following parts are low on required stock" +msgstr "" + +#: templates/email/build_order_required_stock.html:18 +#: templates/js/translated/bom.js:1674 templates/js/translated/build.js:2765 +msgid "Required Quantity" +msgstr "" + +#: templates/email/build_order_required_stock.html:38 +#: templates/email/low_stock_notification.html:30 +msgid "You are receiving this email because you are subscribed to notifications for this part " +msgstr "" + +#: templates/email/low_stock_notification.html:9 +msgid "Click on the following link to view this part" +msgstr "" + +#: templates/email/low_stock_notification.html:18 +#: templates/js/translated/part.js:3253 +msgid "Minimum Quantity" +msgstr "" + +#: templates/js/translated/api.js:225 templates/js/translated/modals.js:1135 +msgid "No Response" +msgstr "" + +#: templates/js/translated/api.js:226 templates/js/translated/modals.js:1136 +msgid "No response from the InvenTree server" +msgstr "" + +#: templates/js/translated/api.js:232 +msgid "Error 400: Bad request" +msgstr "" + +#: templates/js/translated/api.js:233 +msgid "API request returned error code 400" +msgstr "" + +#: templates/js/translated/api.js:237 templates/js/translated/modals.js:1145 +msgid "Error 401: Not Authenticated" +msgstr "" + +#: templates/js/translated/api.js:238 templates/js/translated/modals.js:1146 +msgid "Authentication credentials not supplied" +msgstr "" + +#: templates/js/translated/api.js:242 templates/js/translated/modals.js:1150 +msgid "Error 403: Permission Denied" +msgstr "" + +#: templates/js/translated/api.js:243 templates/js/translated/modals.js:1151 +msgid "You do not have the required permissions to access this function" +msgstr "" + +#: templates/js/translated/api.js:247 templates/js/translated/modals.js:1155 +msgid "Error 404: Resource Not Found" +msgstr "" + +#: templates/js/translated/api.js:248 templates/js/translated/modals.js:1156 +msgid "The requested resource could not be located on the server" +msgstr "" + +#: templates/js/translated/api.js:252 +msgid "Error 405: Method Not Allowed" +msgstr "" + +#: templates/js/translated/api.js:253 +msgid "HTTP method not allowed at URL" +msgstr "" + +#: templates/js/translated/api.js:257 templates/js/translated/modals.js:1160 +msgid "Error 408: Timeout" +msgstr "" + +#: templates/js/translated/api.js:258 templates/js/translated/modals.js:1161 +msgid "Connection timeout while requesting data from server" +msgstr "" + +#: templates/js/translated/api.js:261 +msgid "Error 503: Service Unavailable" +msgstr "" + +#: templates/js/translated/api.js:262 +msgid "The server is currently unavailable" +msgstr "" + +#: templates/js/translated/api.js:265 +msgid "Unhandled Error Code" +msgstr "" + +#: templates/js/translated/api.js:266 +msgid "Error code" +msgstr "" + +#: templates/js/translated/attachment.js:114 +msgid "All selected attachments will be deleted" +msgstr "" + +#: templates/js/translated/attachment.js:129 +msgid "Delete Attachments" +msgstr "" + +#: templates/js/translated/attachment.js:205 +msgid "Delete attachments" +msgstr "" + +#: templates/js/translated/attachment.js:260 +msgid "Attachment actions" +msgstr "" + +#: templates/js/translated/attachment.js:294 +msgid "No attachments found" +msgstr "" + +#: templates/js/translated/attachment.js:334 +msgid "Edit Attachment" +msgstr "" + +#: templates/js/translated/attachment.js:365 +msgid "Upload Date" +msgstr "" + +#: templates/js/translated/attachment.js:385 +msgid "Edit attachment" +msgstr "" + +#: templates/js/translated/attachment.js:393 +msgid "Delete attachment" +msgstr "" + +#: templates/js/translated/barcode.js:43 +msgid "Scan barcode data here using barcode scanner" +msgstr "" + +#: templates/js/translated/barcode.js:45 +msgid "Enter barcode data" +msgstr "" + +#: templates/js/translated/barcode.js:59 +msgid "Scan barcode using connected webcam" +msgstr "" + +#: templates/js/translated/barcode.js:138 +msgid "Enter optional notes for stock transfer" +msgstr "" + +#: templates/js/translated/barcode.js:139 +msgid "Enter notes" +msgstr "" + +#: templates/js/translated/barcode.js:188 +msgid "Server error" +msgstr "" + +#: templates/js/translated/barcode.js:217 +msgid "Unknown response from server" +msgstr "" + +#: templates/js/translated/barcode.js:252 +#: templates/js/translated/modals.js:1125 +msgid "Invalid server response" +msgstr "" + +#: templates/js/translated/barcode.js:403 +msgid "Scan barcode data" +msgstr "" + +#: templates/js/translated/barcode.js:451 templates/navbar.html:114 +msgid "Scan Barcode" +msgstr "" + +#: templates/js/translated/barcode.js:489 +msgid "No URL in response" +msgstr "" + +#: templates/js/translated/barcode.js:529 +msgid "This will remove the link to the associated barcode" +msgstr "" + +#: templates/js/translated/barcode.js:535 +msgid "Unlink" +msgstr "" + +#: templates/js/translated/barcode.js:598 templates/js/translated/stock.js:1188 +msgid "Remove stock item" +msgstr "" + +#: templates/js/translated/barcode.js:641 +msgid "Scan Stock Items Into Location" +msgstr "" + +#: templates/js/translated/barcode.js:643 +msgid "Scan stock item barcode to check in to this location" +msgstr "" + +#: templates/js/translated/barcode.js:646 +#: templates/js/translated/barcode.js:843 +msgid "Check In" +msgstr "" + +#: templates/js/translated/barcode.js:678 +msgid "No barcode provided" +msgstr "" + +#: templates/js/translated/barcode.js:718 +msgid "Stock Item already scanned" +msgstr "" + +#: templates/js/translated/barcode.js:722 +msgid "Stock Item already in this location" +msgstr "" + +#: templates/js/translated/barcode.js:729 +msgid "Added stock item" +msgstr "" + +#: templates/js/translated/barcode.js:738 +msgid "Barcode does not match valid stock item" +msgstr "" + +#: templates/js/translated/barcode.js:757 +msgid "Scan Stock Container Into Location" +msgstr "" + +#: templates/js/translated/barcode.js:759 +msgid "Scan stock container barcode to check in to this location" +msgstr "" + +#: templates/js/translated/barcode.js:793 +msgid "Barcode does not match valid stock location" +msgstr "" + +#: templates/js/translated/barcode.js:837 +msgid "Check Into Location" +msgstr "" + +#: templates/js/translated/barcode.js:906 +#: templates/js/translated/barcode.js:915 +msgid "Barcode does not match a valid location" +msgstr "" + +#: templates/js/translated/bom.js:78 +msgid "Create BOM Item" +msgstr "" + +#: templates/js/translated/bom.js:132 +msgid "Display row data" +msgstr "" + +#: templates/js/translated/bom.js:188 +msgid "Row Data" +msgstr "" + +#: templates/js/translated/bom.js:189 templates/js/translated/bom.js:700 +#: templates/js/translated/modals.js:75 templates/js/translated/modals.js:629 +#: templates/js/translated/modals.js:757 templates/js/translated/modals.js:1065 +#: templates/js/translated/purchase_order.js:780 templates/modals.html:15 +#: templates/modals.html:27 templates/modals.html:39 templates/modals.html:50 +msgid "Close" +msgstr "" + +#: templates/js/translated/bom.js:306 +msgid "Download BOM Template" +msgstr "" + +#: templates/js/translated/bom.js:351 +msgid "Multi Level BOM" +msgstr "" + +#: templates/js/translated/bom.js:352 +msgid "Include BOM data for subassemblies" +msgstr "" + +#: templates/js/translated/bom.js:357 +msgid "Levels" +msgstr "" + +#: templates/js/translated/bom.js:358 +msgid "Select maximum number of BOM levels to export (0 = all levels)" +msgstr "" + +#: templates/js/translated/bom.js:365 +msgid "Include Alternative Parts" +msgstr "" + +#: templates/js/translated/bom.js:366 +msgid "Include alternative parts in exported BOM" +msgstr "" + +#: templates/js/translated/bom.js:371 +msgid "Include Parameter Data" +msgstr "" + +#: templates/js/translated/bom.js:372 +msgid "Include part parameter data in exported BOM" +msgstr "" + +#: templates/js/translated/bom.js:377 +msgid "Include Stock Data" +msgstr "" + +#: templates/js/translated/bom.js:378 +msgid "Include part stock data in exported BOM" +msgstr "" + +#: templates/js/translated/bom.js:383 +msgid "Include Manufacturer Data" +msgstr "" + +#: templates/js/translated/bom.js:384 +msgid "Include part manufacturer data in exported BOM" +msgstr "" + +#: templates/js/translated/bom.js:389 +msgid "Include Supplier Data" +msgstr "" + +#: templates/js/translated/bom.js:390 +msgid "Include part supplier data in exported BOM" +msgstr "" + +#: templates/js/translated/bom.js:395 +msgid "Include Pricing Data" +msgstr "" + +#: templates/js/translated/bom.js:396 +msgid "Include part pricing data in exported BOM" +msgstr "" + +#: templates/js/translated/bom.js:591 +msgid "Remove substitute part" +msgstr "" + +#: templates/js/translated/bom.js:645 +msgid "Select and add a new substitute part using the input below" +msgstr "" + +#: templates/js/translated/bom.js:656 +msgid "Are you sure you wish to remove this substitute part link?" +msgstr "" + +#: templates/js/translated/bom.js:662 +msgid "Remove Substitute Part" +msgstr "" + +#: templates/js/translated/bom.js:701 +msgid "Add Substitute" +msgstr "" + +#: templates/js/translated/bom.js:702 +msgid "Edit BOM Item Substitutes" +msgstr "" + +#: templates/js/translated/bom.js:764 +msgid "All selected BOM items will be deleted" +msgstr "" + +#: templates/js/translated/bom.js:780 +msgid "Delete selected BOM items?" +msgstr "" + +#: templates/js/translated/bom.js:826 +msgid "Delete items" +msgstr "" + +#: templates/js/translated/bom.js:936 +msgid "Load BOM for subassembly" +msgstr "" + +#: templates/js/translated/bom.js:946 +msgid "Substitutes Available" +msgstr "" + +#: templates/js/translated/bom.js:950 templates/js/translated/build.js:2682 +msgid "Variant stock allowed" +msgstr "" + +#: templates/js/translated/bom.js:1014 +msgid "Substitutes" +msgstr "" + +#: templates/js/translated/bom.js:1139 +msgid "BOM pricing is complete" +msgstr "" + +#: templates/js/translated/bom.js:1144 +msgid "BOM pricing is incomplete" +msgstr "" + +#: templates/js/translated/bom.js:1151 +msgid "No pricing available" +msgstr "" + +#: templates/js/translated/bom.js:1184 templates/js/translated/build.js:2830 +msgid "External stock" +msgstr "" + +#: templates/js/translated/bom.js:1188 templates/js/translated/build.js:2804 +#: templates/js/translated/sales_order.js:1927 +msgid "No Stock Available" +msgstr "" + +#: templates/js/translated/bom.js:1193 templates/js/translated/build.js:2808 +msgid "Includes variant and substitute stock" +msgstr "" + +#: templates/js/translated/bom.js:1195 templates/js/translated/build.js:2810 +#: templates/js/translated/part.js:1263 +#: templates/js/translated/sales_order.js:1924 +msgid "Includes variant stock" +msgstr "" + +#: templates/js/translated/bom.js:1197 templates/js/translated/build.js:2812 +msgid "Includes substitute stock" +msgstr "" + +#: templates/js/translated/bom.js:1225 templates/js/translated/build.js:2795 +msgid "Consumable item" +msgstr "" + +#: templates/js/translated/bom.js:1285 +msgid "Validate BOM Item" +msgstr "" + +#: templates/js/translated/bom.js:1287 +msgid "This line has been validated" +msgstr "" + +#: templates/js/translated/bom.js:1289 +msgid "Edit substitute parts" +msgstr "" + +#: templates/js/translated/bom.js:1291 templates/js/translated/bom.js:1486 +msgid "Edit BOM Item" +msgstr "" + +#: templates/js/translated/bom.js:1293 +msgid "Delete BOM Item" +msgstr "" + +#: templates/js/translated/bom.js:1313 +msgid "View BOM" +msgstr "" + +#: templates/js/translated/bom.js:1397 +msgid "No BOM items found" +msgstr "" + +#: templates/js/translated/bom.js:1657 templates/js/translated/build.js:2667 +msgid "Required Part" +msgstr "" + +#: templates/js/translated/bom.js:1683 +msgid "Inherited from parent BOM" +msgstr "" + +#: templates/js/translated/build.js:143 +msgid "Edit Build Order" +msgstr "" + +#: templates/js/translated/build.js:194 +msgid "Create Build Order" +msgstr "" + +#: templates/js/translated/build.js:226 +msgid "Cancel Build Order" +msgstr "" + +#: templates/js/translated/build.js:235 +msgid "Are you sure you wish to cancel this build?" +msgstr "" + +#: templates/js/translated/build.js:241 +msgid "Stock items have been allocated to this build order" +msgstr "" + +#: templates/js/translated/build.js:248 +msgid "There are incomplete outputs remaining for this build order" +msgstr "" + +#: templates/js/translated/build.js:300 +msgid "Build order is ready to be completed" +msgstr "" + +#: templates/js/translated/build.js:308 +msgid "This build order cannot be completed as there are incomplete outputs" +msgstr "" + +#: templates/js/translated/build.js:313 +msgid "Build Order is incomplete" +msgstr "" + +#: templates/js/translated/build.js:331 +msgid "Complete Build Order" +msgstr "" + +#: templates/js/translated/build.js:372 templates/js/translated/stock.js:127 +#: templates/js/translated/stock.js:301 +msgid "Next available serial number" +msgstr "" + +#: templates/js/translated/build.js:374 templates/js/translated/stock.js:129 +#: templates/js/translated/stock.js:303 +msgid "Latest serial number" +msgstr "" + +#: templates/js/translated/build.js:383 +msgid "The Bill of Materials contains trackable parts" +msgstr "" + +#: templates/js/translated/build.js:384 +msgid "Build outputs must be generated individually" +msgstr "" + +#: templates/js/translated/build.js:392 +msgid "Trackable parts can have serial numbers specified" +msgstr "" + +#: templates/js/translated/build.js:393 +msgid "Enter serial numbers to generate multiple single build outputs" +msgstr "" + +#: templates/js/translated/build.js:400 +msgid "Create Build Output" +msgstr "" + +#: templates/js/translated/build.js:431 +msgid "Allocate stock items to this build output" +msgstr "" + +#: templates/js/translated/build.js:439 +msgid "Deallocate stock from build output" +msgstr "" + +#: templates/js/translated/build.js:448 +msgid "Complete build output" +msgstr "" + +#: templates/js/translated/build.js:456 +msgid "Scrap build output" +msgstr "" + +#: templates/js/translated/build.js:463 +msgid "Delete build output" +msgstr "" + +#: templates/js/translated/build.js:483 +msgid "Are you sure you wish to deallocate the selected stock items from this build?" +msgstr "" + +#: templates/js/translated/build.js:501 +msgid "Deallocate Stock Items" +msgstr "" + +#: templates/js/translated/build.js:587 templates/js/translated/build.js:714 +#: templates/js/translated/build.js:839 +msgid "Select Build Outputs" +msgstr "" + +#: templates/js/translated/build.js:588 templates/js/translated/build.js:715 +#: templates/js/translated/build.js:840 +msgid "At least one build output must be selected" +msgstr "" + +#: templates/js/translated/build.js:602 +msgid "Selected build outputs will be marked as complete" +msgstr "" + +#: templates/js/translated/build.js:606 templates/js/translated/build.js:739 +#: templates/js/translated/build.js:862 +msgid "Output" +msgstr "" + +#: templates/js/translated/build.js:633 +msgid "Complete Build Outputs" +msgstr "" + +#: templates/js/translated/build.js:730 +msgid "Selected build outputs will be marked as scrapped" +msgstr "" + +#: templates/js/translated/build.js:732 +msgid "Scrapped output are marked as rejected" +msgstr "" + +#: templates/js/translated/build.js:733 +msgid "Allocated stock items will no longer be available" +msgstr "" + +#: templates/js/translated/build.js:734 +msgid "The completion status of the build order will not be adjusted" +msgstr "" + +#: templates/js/translated/build.js:764 +msgid "Scrap Build Outputs" +msgstr "" + +#: templates/js/translated/build.js:854 +msgid "Selected build outputs will be deleted" +msgstr "" + +#: templates/js/translated/build.js:856 +msgid "Build output data will be permanently deleted" +msgstr "" + +#: templates/js/translated/build.js:857 +msgid "Allocated stock items will be returned to stock" +msgstr "" + +#: templates/js/translated/build.js:875 +msgid "Delete Build Outputs" +msgstr "" + +#: templates/js/translated/build.js:962 +msgid "Delete allocations" +msgstr "" + +#: templates/js/translated/build.js:969 +msgid "Delete Stock Allocations" +msgstr "" + +#: templates/js/translated/build.js:992 +msgid "No allocated stock" +msgstr "" + +#: templates/js/translated/build.js:1048 +msgid "Stock item" +msgstr "" + +#: templates/js/translated/build.js:1073 +msgid "Edit build allocation" +msgstr "" + +#: templates/js/translated/build.js:1074 +msgid "Delete build allocation" +msgstr "" + +#: templates/js/translated/build.js:1092 +msgid "Edit Build Allocation" +msgstr "" + +#: templates/js/translated/build.js:1105 +msgid "Delete Build Allocation" +msgstr "" + +#: templates/js/translated/build.js:1136 +msgid "No build order allocations found" +msgstr "" + +#: templates/js/translated/build.js:1181 +msgid "Location not specified" +msgstr "" + +#: templates/js/translated/build.js:1203 +msgid "Complete outputs" +msgstr "" + +#: templates/js/translated/build.js:1221 +msgid "Scrap outputs" +msgstr "" + +#: templates/js/translated/build.js:1239 +msgid "Delete outputs" +msgstr "" + +#: templates/js/translated/build.js:1292 +msgid "build output" +msgstr "" + +#: templates/js/translated/build.js:1293 +msgid "build outputs" +msgstr "" + +#: templates/js/translated/build.js:1297 +msgid "Build output actions" +msgstr "" + +#: templates/js/translated/build.js:1473 +msgid "No active build outputs found" +msgstr "" + +#: templates/js/translated/build.js:1566 +msgid "Allocated Lines" +msgstr "" + +#: templates/js/translated/build.js:1580 +msgid "Required Tests" +msgstr "" + +#: templates/js/translated/build.js:1752 +#: templates/js/translated/purchase_order.js:594 +#: templates/js/translated/sales_order.js:1173 +msgid "Select Parts" +msgstr "" + +#: templates/js/translated/build.js:1753 +#: templates/js/translated/sales_order.js:1174 +msgid "You must select at least one part to allocate" +msgstr "" + +#: templates/js/translated/build.js:1816 +#: templates/js/translated/sales_order.js:1123 +msgid "Specify stock allocation quantity" +msgstr "" + +#: templates/js/translated/build.js:1893 +msgid "All Parts Allocated" +msgstr "" + +#: templates/js/translated/build.js:1894 +msgid "All selected parts have been fully allocated" +msgstr "" + +#: templates/js/translated/build.js:1908 +#: templates/js/translated/sales_order.js:1188 +msgid "Select source location (leave blank to take from all locations)" +msgstr "" + +#: templates/js/translated/build.js:1936 +msgid "Allocate Stock Items to Build Order" +msgstr "" + +#: templates/js/translated/build.js:1947 +#: templates/js/translated/sales_order.js:1285 +msgid "No matching stock locations" +msgstr "" + +#: templates/js/translated/build.js:2020 +#: templates/js/translated/sales_order.js:1364 +msgid "No matching stock items" +msgstr "" + +#: templates/js/translated/build.js:2117 +msgid "Automatic Stock Allocation" +msgstr "" + +#: templates/js/translated/build.js:2118 +msgid "Stock items will be automatically allocated to this build order, according to the provided guidelines" +msgstr "" + +#: templates/js/translated/build.js:2120 +msgid "If a location is specified, stock will only be allocated from that location" +msgstr "" + +#: templates/js/translated/build.js:2121 +msgid "If stock is considered interchangeable, it will be allocated from the first location it is found" +msgstr "" + +#: templates/js/translated/build.js:2122 +msgid "If substitute stock is allowed, it will be used where stock of the primary part cannot be found" +msgstr "" + +#: templates/js/translated/build.js:2152 +msgid "Allocate Stock Items" +msgstr "" + +#: templates/js/translated/build.js:2257 +msgid "No builds matching query" +msgstr "" + +#: templates/js/translated/build.js:2292 templates/js/translated/build.js:2661 +#: templates/js/translated/forms.js:2196 templates/js/translated/forms.js:2212 +#: templates/js/translated/part.js:2322 templates/js/translated/part.js:2761 +#: templates/js/translated/stock.js:2069 templates/js/translated/stock.js:2796 +msgid "Select" +msgstr "" + +#: templates/js/translated/build.js:2306 +msgid "Build order is overdue" +msgstr "" + +#: templates/js/translated/build.js:2388 templates/js/translated/stock.js:3127 +msgid "No user information" +msgstr "" + +#: templates/js/translated/build.js:2568 +#: templates/js/translated/sales_order.js:1663 +msgid "Edit stock allocation" +msgstr "" + +#: templates/js/translated/build.js:2569 +#: templates/js/translated/sales_order.js:1664 +msgid "Delete stock allocation" +msgstr "" + +#: templates/js/translated/build.js:2584 +msgid "Edit Allocation" +msgstr "" + +#: templates/js/translated/build.js:2596 +msgid "Remove Allocation" +msgstr "" + +#: templates/js/translated/build.js:2636 +msgid "build line" +msgstr "" + +#: templates/js/translated/build.js:2637 +msgid "build lines" +msgstr "" + +#: templates/js/translated/build.js:2656 +msgid "No build lines found" +msgstr "" + +#: templates/js/translated/build.js:2686 templates/js/translated/part.js:793 +#: templates/js/translated/part.js:1209 +msgid "Trackable part" +msgstr "" + +#: templates/js/translated/build.js:2729 +msgid "Gets Inherited" +msgstr "" + +#: templates/js/translated/build.js:2748 +msgid "Unit Quantity" +msgstr "" + +#: templates/js/translated/build.js:2800 +#: templates/js/translated/sales_order.js:1932 +msgid "Sufficient stock available" +msgstr "" + +#: templates/js/translated/build.js:2855 +msgid "Consumable Item" +msgstr "" + +#: templates/js/translated/build.js:2862 +msgid "Tracked item" +msgstr "" + +#: templates/js/translated/build.js:2863 +msgid "Allocate tracked items against individual build outputs" +msgstr "" + +#: templates/js/translated/build.js:2871 +#: templates/js/translated/sales_order.js:2033 +msgid "Build stock" +msgstr "" + +#: templates/js/translated/build.js:2876 templates/js/translated/stock.js:1954 +msgid "Order stock" +msgstr "" + +#: templates/js/translated/build.js:2880 +#: templates/js/translated/sales_order.js:2027 +msgid "Allocate stock" +msgstr "" + +#: templates/js/translated/build.js:2884 +msgid "Remove stock allocation" +msgstr "" + +#: templates/js/translated/company.js:98 +msgid "Add Manufacturer" +msgstr "" + +#: templates/js/translated/company.js:111 +#: templates/js/translated/company.js:214 +msgid "Add Manufacturer Part" +msgstr "" + +#: templates/js/translated/company.js:132 +msgid "Edit Manufacturer Part" +msgstr "" + +#: templates/js/translated/company.js:202 +#: templates/js/translated/purchase_order.js:93 +msgid "Add Supplier" +msgstr "" + +#: templates/js/translated/company.js:244 +#: templates/js/translated/purchase_order.js:301 +msgid "Add Supplier Part" +msgstr "" + +#: templates/js/translated/company.js:345 +msgid "All selected supplier parts will be deleted" +msgstr "" + +#: templates/js/translated/company.js:361 +msgid "Delete Supplier Parts" +msgstr "" + +#: templates/js/translated/company.js:467 +msgid "Add new Company" +msgstr "" + +#: templates/js/translated/company.js:547 +msgid "Parts Supplied" +msgstr "" + +#: templates/js/translated/company.js:556 +msgid "Parts Manufactured" +msgstr "" + +#: templates/js/translated/company.js:571 +msgid "No company information found" +msgstr "" + +#: templates/js/translated/company.js:620 +msgid "Create New Contact" +msgstr "" + +#: templates/js/translated/company.js:636 +#: templates/js/translated/company.js:759 +msgid "Edit Contact" +msgstr "" + +#: templates/js/translated/company.js:673 +msgid "All selected contacts will be deleted" +msgstr "" + +#: templates/js/translated/company.js:679 +#: templates/js/translated/company.js:743 +msgid "Role" +msgstr "" + +#: templates/js/translated/company.js:687 +msgid "Delete Contacts" +msgstr "" + +#: templates/js/translated/company.js:718 +msgid "No contacts found" +msgstr "" + +#: templates/js/translated/company.js:731 +msgid "Phone Number" +msgstr "" + +#: templates/js/translated/company.js:737 +msgid "Email Address" +msgstr "" + +#: templates/js/translated/company.js:763 +msgid "Delete Contact" +msgstr "" + +#: templates/js/translated/company.js:860 +msgid "Create New Address" +msgstr "" + +#: templates/js/translated/company.js:875 +#: templates/js/translated/company.js:1036 +msgid "Edit Address" +msgstr "" + +#: templates/js/translated/company.js:910 +msgid "All selected addresses will be deleted" +msgstr "" + +#: templates/js/translated/company.js:924 +msgid "Delete Addresses" +msgstr "" + +#: templates/js/translated/company.js:951 +msgid "No addresses found" +msgstr "" + +#: templates/js/translated/company.js:990 +msgid "Postal city" +msgstr "" + +#: templates/js/translated/company.js:996 +msgid "State/province" +msgstr "" + +#: templates/js/translated/company.js:1008 +msgid "Courier notes" +msgstr "" + +#: templates/js/translated/company.js:1014 +msgid "Internal notes" +msgstr "" + +#: templates/js/translated/company.js:1040 +msgid "Delete Address" +msgstr "" + +#: templates/js/translated/company.js:1113 +msgid "All selected manufacturer parts will be deleted" +msgstr "" + +#: templates/js/translated/company.js:1128 +msgid "Delete Manufacturer Parts" +msgstr "" + +#: templates/js/translated/company.js:1162 +msgid "All selected parameters will be deleted" +msgstr "" + +#: templates/js/translated/company.js:1176 +msgid "Delete Parameters" +msgstr "" + +#: templates/js/translated/company.js:1192 +#: templates/js/translated/company.js:1480 templates/js/translated/part.js:2250 +msgid "Order parts" +msgstr "" + +#: templates/js/translated/company.js:1209 +msgid "Delete manufacturer parts" +msgstr "" + +#: templates/js/translated/company.js:1241 +msgid "Manufacturer part actions" +msgstr "" + +#: templates/js/translated/company.js:1260 +msgid "No manufacturer parts found" +msgstr "" + +#: templates/js/translated/company.js:1280 +#: templates/js/translated/company.js:1568 templates/js/translated/part.js:801 +#: templates/js/translated/part.js:1217 +msgid "Template part" +msgstr "" + +#: templates/js/translated/company.js:1284 +#: templates/js/translated/company.js:1572 templates/js/translated/part.js:805 +#: templates/js/translated/part.js:1221 +msgid "Assembled part" +msgstr "" + +#: templates/js/translated/company.js:1404 templates/js/translated/part.js:1471 +msgid "No parameters found" +msgstr "" + +#: templates/js/translated/company.js:1439 templates/js/translated/part.js:1534 +msgid "Edit parameter" +msgstr "" + +#: templates/js/translated/company.js:1440 templates/js/translated/part.js:1535 +msgid "Delete parameter" +msgstr "" + +#: templates/js/translated/company.js:1457 templates/js/translated/part.js:1440 +msgid "Edit Parameter" +msgstr "" + +#: templates/js/translated/company.js:1466 templates/js/translated/part.js:1556 +msgid "Delete Parameter" +msgstr "" + +#: templates/js/translated/company.js:1497 +msgid "Delete supplier parts" +msgstr "" + +#: templates/js/translated/company.js:1547 +msgid "No supplier parts found" +msgstr "" + +#: templates/js/translated/company.js:1665 +msgid "Base Units" +msgstr "" + +#: templates/js/translated/company.js:1695 +msgid "Availability" +msgstr "" + +#: templates/js/translated/company.js:1726 +msgid "Edit supplier part" +msgstr "" + +#: templates/js/translated/company.js:1727 +msgid "Delete supplier part" +msgstr "" + +#: templates/js/translated/company.js:1780 +#: templates/js/translated/pricing.js:694 +msgid "Delete Price Break" +msgstr "" + +#: templates/js/translated/company.js:1790 +#: templates/js/translated/pricing.js:712 +msgid "Edit Price Break" +msgstr "" + +#: templates/js/translated/company.js:1805 +msgid "No price break information found" +msgstr "" + +#: templates/js/translated/company.js:1834 +msgid "Last updated" +msgstr "" + +#: templates/js/translated/company.js:1841 +msgid "Edit price break" +msgstr "" + +#: templates/js/translated/company.js:1842 +msgid "Delete price break" +msgstr "" + +#: templates/js/translated/filters.js:189 +#: templates/js/translated/filters.js:670 +msgid "true" +msgstr "" + +#: templates/js/translated/filters.js:193 +#: templates/js/translated/filters.js:671 +msgid "false" +msgstr "" + +#: templates/js/translated/filters.js:217 +msgid "Select filter" +msgstr "" + +#: templates/js/translated/filters.js:440 +msgid "Print Labels" +msgstr "" + +#: templates/js/translated/filters.js:444 +msgid "Print Reports" +msgstr "" + +#: templates/js/translated/filters.js:456 +msgid "Download table data" +msgstr "" + +#: templates/js/translated/filters.js:463 +msgid "Reload table data" +msgstr "" + +#: templates/js/translated/filters.js:472 +msgid "Add new filter" +msgstr "" + +#: templates/js/translated/filters.js:480 +msgid "Clear all filters" +msgstr "" + +#: templates/js/translated/filters.js:580 +msgid "Create filter" +msgstr "" + +#: templates/js/translated/forms.js:379 templates/js/translated/forms.js:394 +#: templates/js/translated/forms.js:408 templates/js/translated/forms.js:422 +msgid "Action Prohibited" +msgstr "" + +#: templates/js/translated/forms.js:381 +msgid "Create operation not allowed" +msgstr "" + +#: templates/js/translated/forms.js:396 +msgid "Update operation not allowed" +msgstr "" + +#: templates/js/translated/forms.js:410 +msgid "Delete operation not allowed" +msgstr "" + +#: templates/js/translated/forms.js:424 +msgid "View operation not allowed" +msgstr "" + +#: templates/js/translated/forms.js:801 +msgid "Keep this form open" +msgstr "" + +#: templates/js/translated/forms.js:904 +msgid "Enter a valid number" +msgstr "" + +#: templates/js/translated/forms.js:1478 templates/modals.html:19 +#: templates/modals.html:43 +msgid "Form errors exist" +msgstr "" + +#: templates/js/translated/forms.js:2008 +msgid "No results found" +msgstr "" + +#: templates/js/translated/forms.js:2318 templates/js/translated/search.js:239 +msgid "Searching" +msgstr "" + +#: templates/js/translated/forms.js:2532 +msgid "Clear input" +msgstr "" + +#: templates/js/translated/forms.js:3134 +msgid "File Column" +msgstr "" + +#: templates/js/translated/forms.js:3134 +msgid "Field Name" +msgstr "" + +#: templates/js/translated/forms.js:3146 +msgid "Select Columns" +msgstr "" + +#: templates/js/translated/helpers.js:81 +msgid "YES" +msgstr "" + +#: templates/js/translated/helpers.js:84 +msgid "NO" +msgstr "" + +#: templates/js/translated/helpers.js:97 +msgid "True" +msgstr "" + +#: templates/js/translated/helpers.js:98 +msgid "False" +msgstr "" + +#: templates/js/translated/index.js:104 +msgid "No parts required for builds" +msgstr "" + +#: templates/js/translated/label.js:48 templates/js/translated/report.js:38 +msgid "Select Items" +msgstr "" + +#: templates/js/translated/label.js:49 templates/js/translated/report.js:39 +msgid "No items selected for printing" +msgstr "" + +#: templates/js/translated/label.js:143 +msgid "Labels sent to printer" +msgstr "" + +#: templates/js/translated/modals.js:59 templates/js/translated/modals.js:159 +#: templates/js/translated/modals.js:688 +msgid "Cancel" +msgstr "" + +#: templates/js/translated/modals.js:64 templates/js/translated/modals.js:158 +#: templates/js/translated/modals.js:756 templates/js/translated/modals.js:1064 +#: templates/modals.html:28 templates/modals.html:51 +msgid "Submit" +msgstr "" + +#: templates/js/translated/modals.js:157 +msgid "Form Title" +msgstr "" + +#: templates/js/translated/modals.js:446 +msgid "Waiting for server..." +msgstr "" + +#: templates/js/translated/modals.js:597 +msgid "Show Error Information" +msgstr "" + +#: templates/js/translated/modals.js:687 +msgid "Accept" +msgstr "" + +#: templates/js/translated/modals.js:745 +msgid "Loading Data" +msgstr "" + +#: templates/js/translated/modals.js:1016 +msgid "Invalid response from server" +msgstr "" + +#: templates/js/translated/modals.js:1016 +msgid "Form data missing from server response" +msgstr "" + +#: templates/js/translated/modals.js:1028 +msgid "Error posting form data" +msgstr "" + +#: templates/js/translated/modals.js:1125 +msgid "JSON response missing form data" +msgstr "" + +#: templates/js/translated/modals.js:1140 +msgid "Error 400: Bad Request" +msgstr "" + +#: templates/js/translated/modals.js:1141 +msgid "Server returned error code 400" +msgstr "" + +#: templates/js/translated/modals.js:1164 +msgid "Error requesting form data" +msgstr "" + +#: templates/js/translated/news.js:33 +msgid "No news found" +msgstr "" + +#: templates/js/translated/news.js:38 +#: templates/js/translated/notification.js:46 +#: templates/js/translated/part.js:1611 +msgid "ID" +msgstr "" + +#: templates/js/translated/notification.js:52 +msgid "Age" +msgstr "" + +#: templates/js/translated/notification.js:65 +msgid "Notification" +msgstr "" + +#: templates/js/translated/notification.js:224 +msgid "Mark as unread" +msgstr "" + +#: templates/js/translated/notification.js:228 +msgid "Mark as read" +msgstr "" + +#: templates/js/translated/notification.js:254 +msgid "No unread notifications" +msgstr "" + +#: templates/js/translated/notification.js:296 templates/notifications.html:12 +msgid "Notifications will load here" +msgstr "" + +#: templates/js/translated/order.js:48 +msgid "Hold Order" +msgstr "" + +#: templates/js/translated/order.js:53 +msgid "Are you sure you wish to place this order on hold?" +msgstr "" + +#: templates/js/translated/order.js:114 +msgid "Add Extra Line Item" +msgstr "" + +#: templates/js/translated/order.js:151 +msgid "Export Order" +msgstr "" + +#: templates/js/translated/order.js:266 +msgid "Duplicate Line" +msgstr "" + +#: templates/js/translated/order.js:280 +msgid "Edit Line" +msgstr "" + +#: templates/js/translated/order.js:293 +msgid "Delete Line" +msgstr "" + +#: templates/js/translated/order.js:306 +#: templates/js/translated/purchase_order.js:2044 +msgid "No line items found" +msgstr "" + +#: templates/js/translated/order.js:394 +msgid "Duplicate line" +msgstr "" + +#: templates/js/translated/order.js:395 +msgid "Edit line" +msgstr "" + +#: templates/js/translated/order.js:399 +msgid "Delete line" +msgstr "" + +#: templates/js/translated/part.js:91 +msgid "Part Attributes" +msgstr "" + +#: templates/js/translated/part.js:95 +msgid "Part Creation Options" +msgstr "" + +#: templates/js/translated/part.js:99 +msgid "Part Duplication Options" +msgstr "" + +#: templates/js/translated/part.js:122 +msgid "Add Part Category" +msgstr "" + +#: templates/js/translated/part.js:334 templates/js/translated/stock.js:147 +#: templates/js/translated/stock.js:182 +msgid "Icon (optional) - Explore all available icons on" +msgstr "" + +#: templates/js/translated/part.js:355 +msgid "Create Part Category" +msgstr "" + +#: templates/js/translated/part.js:358 +msgid "Create new category after this one" +msgstr "" + +#: templates/js/translated/part.js:359 +msgid "Part category created" +msgstr "" + +#: templates/js/translated/part.js:373 +msgid "Edit Part Category" +msgstr "" + +#: templates/js/translated/part.js:386 +msgid "Are you sure you want to delete this part category?" +msgstr "" + +#: templates/js/translated/part.js:391 +msgid "Move to parent category" +msgstr "" + +#: templates/js/translated/part.js:400 +msgid "Delete Part Category" +msgstr "" + +#: templates/js/translated/part.js:404 +msgid "Action for parts in this category" +msgstr "" + +#: templates/js/translated/part.js:409 +msgid "Action for child categories" +msgstr "" + +#: templates/js/translated/part.js:433 +msgid "Create Part" +msgstr "" + +#: templates/js/translated/part.js:435 +msgid "Create another part after this one" +msgstr "" + +#: templates/js/translated/part.js:436 +msgid "Part created successfully" +msgstr "" + +#: templates/js/translated/part.js:464 +msgid "Edit Part" +msgstr "" + +#: templates/js/translated/part.js:466 +msgid "Part edited" +msgstr "" + +#: templates/js/translated/part.js:477 +msgid "Create Part Variant" +msgstr "" + +#: templates/js/translated/part.js:534 +msgid "Active Part" +msgstr "" + +#: templates/js/translated/part.js:535 +msgid "Part cannot be deleted as it is currently active" +msgstr "" + +#: templates/js/translated/part.js:549 +msgid "Deleting this part cannot be reversed" +msgstr "" + +#: templates/js/translated/part.js:551 +msgid "Any stock items for this part will be deleted" +msgstr "" + +#: templates/js/translated/part.js:552 +msgid "This part will be removed from any Bills of Material" +msgstr "" + +#: templates/js/translated/part.js:553 +msgid "All manufacturer and supplier information for this part will be deleted" +msgstr "" + +#: templates/js/translated/part.js:560 +msgid "Delete Part" +msgstr "" + +#: templates/js/translated/part.js:596 +msgid "You are subscribed to notifications for this item" +msgstr "" + +#: templates/js/translated/part.js:598 +msgid "You have subscribed to notifications for this item" +msgstr "" + +#: templates/js/translated/part.js:603 +msgid "Subscribe to notifications for this item" +msgstr "" + +#: templates/js/translated/part.js:605 +msgid "You have unsubscribed to notifications for this item" +msgstr "" + +#: templates/js/translated/part.js:622 +msgid "Validating the BOM will mark each line item as valid" +msgstr "" + +#: templates/js/translated/part.js:632 +msgid "Validate Bill of Materials" +msgstr "" + +#: templates/js/translated/part.js:635 +msgid "Validated Bill of Materials" +msgstr "" + +#: templates/js/translated/part.js:660 +msgid "Copy Bill of Materials" +msgstr "" + +#: templates/js/translated/part.js:688 +#: templates/js/translated/table_filters.js:755 +msgid "Low stock" +msgstr "" + +#: templates/js/translated/part.js:691 +msgid "No stock available" +msgstr "" + +#: templates/js/translated/part.js:751 +msgid "Demand" +msgstr "" + +#: templates/js/translated/part.js:774 +msgid "Unit" +msgstr "" + +#: templates/js/translated/part.js:797 templates/js/translated/part.js:1213 +msgid "Virtual part" +msgstr "" + +#: templates/js/translated/part.js:809 +msgid "Subscribed part" +msgstr "" + +#: templates/js/translated/part.js:813 +msgid "Salable part" +msgstr "" + +#: templates/js/translated/part.js:896 +msgid "Schedule generation of a new stocktake report." +msgstr "" + +#: templates/js/translated/part.js:896 +msgid "Once complete, the stocktake report will be available for download." +msgstr "" + +#: templates/js/translated/part.js:904 +msgid "Generate Stocktake Report" +msgstr "" + +#: templates/js/translated/part.js:908 +msgid "Stocktake report scheduled" +msgstr "" + +#: templates/js/translated/part.js:1057 +msgid "No stocktake information available" +msgstr "" + +#: templates/js/translated/part.js:1115 templates/js/translated/part.js:1151 +msgid "Edit Stocktake Entry" +msgstr "" + +#: templates/js/translated/part.js:1119 templates/js/translated/part.js:1161 +msgid "Delete Stocktake Entry" +msgstr "" + +#: templates/js/translated/part.js:1288 +msgid "No variants found" +msgstr "" + +#: templates/js/translated/part.js:1606 +msgid "No part parameter templates found" +msgstr "" + +#: templates/js/translated/part.js:1669 +msgid "Edit Part Parameter Template" +msgstr "" + +#: templates/js/translated/part.js:1681 +msgid "Any parameters which reference this template will also be deleted" +msgstr "" + +#: templates/js/translated/part.js:1689 +msgid "Delete Part Parameter Template" +msgstr "" + +#: templates/js/translated/part.js:1723 +#: templates/js/translated/purchase_order.js:1708 +msgid "No purchase orders found" +msgstr "" + +#: templates/js/translated/part.js:1867 +#: templates/js/translated/purchase_order.js:2207 +#: templates/js/translated/return_order.js:754 +#: templates/js/translated/sales_order.js:1892 +msgid "This line item is overdue" +msgstr "" + +#: templates/js/translated/part.js:1913 +#: templates/js/translated/purchase_order.js:2274 +msgid "Receive line item" +msgstr "" + +#: templates/js/translated/part.js:1976 +msgid "Delete part relationship" +msgstr "" + +#: templates/js/translated/part.js:1998 +msgid "Delete Part Relationship" +msgstr "" + +#: templates/js/translated/part.js:2086 templates/js/translated/part.js:2525 +msgid "No parts found" +msgstr "" + +#: templates/js/translated/part.js:2207 +msgid "Set the part category for the selected parts" +msgstr "" + +#: templates/js/translated/part.js:2212 +msgid "Set Part Category" +msgstr "" + +#: templates/js/translated/part.js:2241 +msgid "Set category" +msgstr "" + +#: templates/js/translated/part.js:2293 +msgid "part" +msgstr "" + +#: templates/js/translated/part.js:2294 +msgid "parts" +msgstr "" + +#: templates/js/translated/part.js:2390 +msgid "No category" +msgstr "" + +#: templates/js/translated/part.js:2550 templates/js/translated/part.js:2680 +#: templates/js/translated/stock.js:2755 +msgid "Display as list" +msgstr "" + +#: templates/js/translated/part.js:2566 +msgid "Display as grid" +msgstr "" + +#: templates/js/translated/part.js:2664 +msgid "No subcategories found" +msgstr "" + +#: templates/js/translated/part.js:2700 templates/js/translated/stock.js:2775 +msgid "Display as tree" +msgstr "" + +#: templates/js/translated/part.js:2780 +msgid "Load Subcategories" +msgstr "" + +#: templates/js/translated/part.js:2795 +msgid "Subscribed category" +msgstr "" + +#: templates/js/translated/part.js:2883 +msgid "No test templates matching query" +msgstr "" + +#: templates/js/translated/part.js:2905 templates/js/translated/search.js:342 +msgid "results" +msgstr "" + +#: templates/js/translated/part.js:2955 +msgid "Edit test template" +msgstr "" + +#: templates/js/translated/part.js:2956 +msgid "Delete test template" +msgstr "" + +#: templates/js/translated/part.js:2960 +msgid "This test is defined for a parent part" +msgstr "" + +#: templates/js/translated/part.js:2976 +msgid "Edit Test Result Template" +msgstr "" + +#: templates/js/translated/part.js:2990 +msgid "Delete Test Result Template" +msgstr "" + +#: templates/js/translated/part.js:3069 templates/js/translated/part.js:3070 +msgid "No date specified" +msgstr "" + +#: templates/js/translated/part.js:3072 +msgid "Specified date is in the past" +msgstr "" + +#: templates/js/translated/part.js:3078 +msgid "Speculative" +msgstr "" + +#: templates/js/translated/part.js:3144 +msgid "No scheduling information available for this part" +msgstr "" + +#: templates/js/translated/part.js:3150 +msgid "Error fetching scheduling information for this part" +msgstr "" + +#: templates/js/translated/part.js:3246 +msgid "Scheduled Stock Quantities" +msgstr "" + +#: templates/js/translated/part.js:3262 +msgid "Maximum Quantity" +msgstr "" + +#: templates/js/translated/part.js:3307 +msgid "Minimum Stock Level" +msgstr "" + +#: templates/js/translated/plugin.js:46 +msgid "No plugins found" +msgstr "" + +#: templates/js/translated/plugin.js:58 +msgid "This plugin is no longer installed" +msgstr "" + +#: templates/js/translated/plugin.js:60 +msgid "This plugin is active" +msgstr "" + +#: templates/js/translated/plugin.js:62 +msgid "This plugin is installed but not active" +msgstr "" + +#: templates/js/translated/plugin.js:117 templates/js/translated/plugin.js:186 +msgid "Disable Plugin" +msgstr "" + +#: templates/js/translated/plugin.js:119 templates/js/translated/plugin.js:186 +msgid "Enable Plugin" +msgstr "" + +#: templates/js/translated/plugin.js:158 +msgid "The Plugin was installed" +msgstr "" + +#: templates/js/translated/plugin.js:177 +msgid "Are you sure you want to enable this plugin?" +msgstr "" + +#: templates/js/translated/plugin.js:181 +msgid "Are you sure you want to disable this plugin?" +msgstr "" + +#: templates/js/translated/plugin.js:189 +msgid "Enable" +msgstr "" + +#: templates/js/translated/plugin.js:189 +msgid "Disable" +msgstr "" + +#: templates/js/translated/plugin.js:203 +msgid "Plugin updated" +msgstr "" + +#: templates/js/translated/pricing.js:159 +msgid "Error fetching currency data" +msgstr "" + +#: templates/js/translated/pricing.js:321 +msgid "No BOM data available" +msgstr "" + +#: templates/js/translated/pricing.js:463 +msgid "No supplier pricing data available" +msgstr "" + +#: templates/js/translated/pricing.js:572 +msgid "No price break data available" +msgstr "" + +#: templates/js/translated/pricing.js:755 +msgid "No purchase history data available" +msgstr "" + +#: templates/js/translated/pricing.js:791 +msgid "Purchase Price History" +msgstr "" + +#: templates/js/translated/pricing.js:892 +msgid "No sales history data available" +msgstr "" + +#: templates/js/translated/pricing.js:914 +msgid "Sale Price History" +msgstr "" + +#: templates/js/translated/pricing.js:1003 +msgid "No variant data available" +msgstr "" + +#: templates/js/translated/pricing.js:1043 +msgid "Variant Part" +msgstr "" + +#: templates/js/translated/purchase_order.js:188 +msgid "Edit Purchase Order" +msgstr "" + +#: templates/js/translated/purchase_order.js:205 +msgid "Duplication Options" +msgstr "" + +#: templates/js/translated/purchase_order.js:414 +msgid "Complete Purchase Order" +msgstr "" + +#: templates/js/translated/purchase_order.js:431 +#: templates/js/translated/return_order.js:210 +#: templates/js/translated/sales_order.js:511 +msgid "Mark this order as complete?" +msgstr "" + +#: templates/js/translated/purchase_order.js:437 +msgid "All line items have been received" +msgstr "" + +#: templates/js/translated/purchase_order.js:442 +msgid "This order has line items which have not been marked as received." +msgstr "" + +#: templates/js/translated/purchase_order.js:443 +msgid "Completing this order means that the order and line items will no longer be editable." +msgstr "" + +#: templates/js/translated/purchase_order.js:466 +msgid "Cancel Purchase Order" +msgstr "" + +#: templates/js/translated/purchase_order.js:471 +msgid "Are you sure you wish to cancel this purchase order?" +msgstr "" + +#: templates/js/translated/purchase_order.js:477 +msgid "This purchase order can not be cancelled" +msgstr "" + +#: templates/js/translated/purchase_order.js:498 +#: templates/js/translated/return_order.js:164 +msgid "After placing this order, line items will no longer be editable." +msgstr "" + +#: templates/js/translated/purchase_order.js:503 +msgid "Issue Purchase Order" +msgstr "" + +#: templates/js/translated/purchase_order.js:595 +msgid "At least one purchaseable part must be selected" +msgstr "" + +#: templates/js/translated/purchase_order.js:620 +msgid "Quantity to order" +msgstr "" + +#: templates/js/translated/purchase_order.js:629 +msgid "New supplier part" +msgstr "" + +#: templates/js/translated/purchase_order.js:647 +msgid "New purchase order" +msgstr "" + +#: templates/js/translated/purchase_order.js:688 +msgid "Add to purchase order" +msgstr "" + +#: templates/js/translated/purchase_order.js:738 +msgid "Merge" +msgstr "" + +#: templates/js/translated/purchase_order.js:842 +msgid "No matching supplier parts" +msgstr "" + +#: templates/js/translated/purchase_order.js:861 +msgid "No matching purchase orders" +msgstr "" + +#: templates/js/translated/purchase_order.js:1056 +#: templates/js/translated/return_order.js:490 +msgid "Select Line Items" +msgstr "" + +#: templates/js/translated/purchase_order.js:1057 +#: templates/js/translated/return_order.js:491 +msgid "At least one line item must be selected" +msgstr "" + +#: templates/js/translated/purchase_order.js:1087 +msgid "Received Quantity" +msgstr "" + +#: templates/js/translated/purchase_order.js:1098 +msgid "Quantity to receive" +msgstr "" + +#: templates/js/translated/purchase_order.js:1153 +#: templates/js/translated/stock.js:1215 +msgid "Specify packaging for incoming stock items" +msgstr "" + +#: templates/js/translated/purchase_order.js:1206 +msgid "Stock Status" +msgstr "" + +#: templates/js/translated/purchase_order.js:1220 +msgid "Add barcode" +msgstr "" + +#: templates/js/translated/purchase_order.js:1221 +msgid "Remove barcode" +msgstr "" + +#: templates/js/translated/purchase_order.js:1224 +msgid "Specify location" +msgstr "" + +#: templates/js/translated/purchase_order.js:1232 +msgid "Add batch code" +msgstr "" + +#: templates/js/translated/purchase_order.js:1242 +msgid "Specify packaging" +msgstr "" + +#: templates/js/translated/purchase_order.js:1253 +msgid "Add serial numbers" +msgstr "" + +#: templates/js/translated/purchase_order.js:1264 +msgid "Add note" +msgstr "" + +#: templates/js/translated/purchase_order.js:1321 +msgid "Serials" +msgstr "" + +#: templates/js/translated/purchase_order.js:1351 +msgid "Order Code" +msgstr "" + +#: templates/js/translated/purchase_order.js:1353 +msgid "Quantity to Receive" +msgstr "" + +#: templates/js/translated/purchase_order.js:1379 +#: templates/js/translated/return_order.js:559 +msgid "Confirm receipt of items" +msgstr "" + +#: templates/js/translated/purchase_order.js:1380 +msgid "Receive Purchase Order Items" +msgstr "" + +#: templates/js/translated/purchase_order.js:1448 +msgid "Scan Item Barcode" +msgstr "" + +#: templates/js/translated/purchase_order.js:1449 +msgid "Scan barcode on incoming item (must not match any existing stock items)" +msgstr "" + +#: templates/js/translated/purchase_order.js:1463 +msgid "Invalid barcode data" +msgstr "" + +#: templates/js/translated/purchase_order.js:1735 +#: templates/js/translated/return_order.js:285 +#: templates/js/translated/sales_order.js:769 +#: templates/js/translated/sales_order.js:1007 +msgid "Order is overdue" +msgstr "" + +#: templates/js/translated/purchase_order.js:1897 +msgid "All selected Line items will be deleted" +msgstr "" + +#: templates/js/translated/purchase_order.js:1915 +msgid "Delete selected Line items?" +msgstr "" + +#: templates/js/translated/purchase_order.js:1970 +#: templates/js/translated/sales_order.js:2087 +msgid "Duplicate Line Item" +msgstr "" + +#: templates/js/translated/purchase_order.js:1985 +#: templates/js/translated/return_order.js:475 +#: templates/js/translated/return_order.js:667 +#: templates/js/translated/sales_order.js:2100 +msgid "Edit Line Item" +msgstr "" + +#: templates/js/translated/purchase_order.js:1996 +#: templates/js/translated/return_order.js:680 +#: templates/js/translated/sales_order.js:2111 +msgid "Delete Line Item" +msgstr "" + +#: templates/js/translated/purchase_order.js:2278 +#: templates/js/translated/sales_order.js:2041 +msgid "Duplicate line item" +msgstr "" + +#: templates/js/translated/purchase_order.js:2279 +#: templates/js/translated/return_order.js:799 +#: templates/js/translated/sales_order.js:2042 +msgid "Edit line item" +msgstr "" + +#: templates/js/translated/purchase_order.js:2280 +#: templates/js/translated/return_order.js:803 +#: templates/js/translated/sales_order.js:2048 +msgid "Delete line item" +msgstr "" + +#: templates/js/translated/report.js:68 +msgid "Report print successful" +msgstr "" + +#: templates/js/translated/report.js:73 +msgid "Report printing failed" +msgstr "" + +#: templates/js/translated/return_order.js:60 +#: templates/js/translated/sales_order.js:86 +msgid "Add Customer" +msgstr "" + +#: templates/js/translated/return_order.js:134 +msgid "Create Return Order" +msgstr "" + +#: templates/js/translated/return_order.js:149 +msgid "Edit Return Order" +msgstr "" + +#: templates/js/translated/return_order.js:169 +msgid "Issue Return Order" +msgstr "" + +#: templates/js/translated/return_order.js:186 +msgid "Are you sure you wish to cancel this Return Order?" +msgstr "" + +#: templates/js/translated/return_order.js:193 +msgid "Cancel Return Order" +msgstr "" + +#: templates/js/translated/return_order.js:218 +msgid "Complete Return Order" +msgstr "" + +#: templates/js/translated/return_order.js:265 +msgid "No return orders found" +msgstr "" + +#: templates/js/translated/return_order.js:299 +#: templates/js/translated/sales_order.js:783 +msgid "Invalid Customer" +msgstr "" + +#: templates/js/translated/return_order.js:560 +msgid "Receive Return Order Items" +msgstr "" + +#: templates/js/translated/return_order.js:691 +#: templates/js/translated/sales_order.js:2248 +msgid "No matching line items" +msgstr "" + +#: templates/js/translated/return_order.js:796 +msgid "Mark item as received" +msgstr "" + +#: templates/js/translated/sales_order.js:161 +msgid "Create Sales Order" +msgstr "" + +#: templates/js/translated/sales_order.js:176 +msgid "Edit Sales Order" +msgstr "" + +#: templates/js/translated/sales_order.js:288 +msgid "No stock items have been allocated to this shipment" +msgstr "" + +#: templates/js/translated/sales_order.js:294 +msgid "Complete Shipment" +msgstr "" + +#: templates/js/translated/sales_order.js:318 +msgid "Confirm Shipment" +msgstr "" + +#: templates/js/translated/sales_order.js:375 +msgid "No pending shipments found" +msgstr "" + +#: templates/js/translated/sales_order.js:379 +msgid "No stock items have been allocated to pending shipments" +msgstr "" + +#: templates/js/translated/sales_order.js:389 +msgid "Complete Shipments" +msgstr "" + +#: templates/js/translated/sales_order.js:411 +msgid "Skip" +msgstr "" + +#: templates/js/translated/sales_order.js:443 +msgid "Ship Sales Order" +msgstr "" + +#: templates/js/translated/sales_order.js:459 +msgid "Ship this order?" +msgstr "" + +#: templates/js/translated/sales_order.js:465 +msgid "Order cannot be shipped as there are incomplete shipments" +msgstr "" + +#: templates/js/translated/sales_order.js:472 +msgid "This order has line items which have not been completed." +msgstr "" + +#: templates/js/translated/sales_order.js:473 +msgid "Shipping this order means that the order and line items will no longer be editable." +msgstr "" + +#: templates/js/translated/sales_order.js:531 +msgid "Issue this Sales Order?" +msgstr "" + +#: templates/js/translated/sales_order.js:536 +msgid "Issue Sales Order" +msgstr "" + +#: templates/js/translated/sales_order.js:555 +msgid "Cancel Sales Order" +msgstr "" + +#: templates/js/translated/sales_order.js:560 +msgid "Cancelling this order means that the order will no longer be editable." +msgstr "" + +#: templates/js/translated/sales_order.js:614 +msgid "Create New Shipment" +msgstr "" + +#: templates/js/translated/sales_order.js:723 +msgid "No sales orders found" +msgstr "" + +#: templates/js/translated/sales_order.js:907 +msgid "Edit shipment" +msgstr "" + +#: templates/js/translated/sales_order.js:910 +msgid "Complete shipment" +msgstr "" + +#: templates/js/translated/sales_order.js:915 +msgid "Delete shipment" +msgstr "" + +#: templates/js/translated/sales_order.js:932 +msgid "Edit Shipment" +msgstr "" + +#: templates/js/translated/sales_order.js:947 +msgid "Delete Shipment" +msgstr "" + +#: templates/js/translated/sales_order.js:989 +msgid "No matching shipments found" +msgstr "" + +#: templates/js/translated/sales_order.js:1015 +msgid "Shipment Reference" +msgstr "" + +#: templates/js/translated/sales_order.js:1032 +#: templates/js/translated/sales_order.js:1531 +msgid "Not shipped" +msgstr "" + +#: templates/js/translated/sales_order.js:1050 +msgid "Tracking" +msgstr "" + +#: templates/js/translated/sales_order.js:1054 +msgid "Invoice" +msgstr "" + +#: templates/js/translated/sales_order.js:1221 +msgid "Add Shipment" +msgstr "" + +#: templates/js/translated/sales_order.js:1272 +msgid "Confirm stock allocation" +msgstr "" + +#: templates/js/translated/sales_order.js:1273 +msgid "Allocate Stock Items to Sales Order" +msgstr "" + +#: templates/js/translated/sales_order.js:1479 +msgid "No sales order allocations found" +msgstr "" + +#: templates/js/translated/sales_order.js:1571 +msgid "Edit Stock Allocation" +msgstr "" + +#: templates/js/translated/sales_order.js:1585 +msgid "Confirm Delete Operation" +msgstr "" + +#: templates/js/translated/sales_order.js:1586 +msgid "Delete Stock Allocation" +msgstr "" + +#: templates/js/translated/sales_order.js:1640 +#: templates/js/translated/sales_order.js:1727 +#: templates/js/translated/stock.js:1861 +msgid "Shipped to customer" +msgstr "" + +#: templates/js/translated/sales_order.js:1648 +#: templates/js/translated/sales_order.js:1736 +msgid "Stock location not specified" +msgstr "" + +#: templates/js/translated/sales_order.js:2025 +#: templates/js/translated/sales_order.js:2126 +msgid "Allocate Serial Numbers" +msgstr "" + +#: templates/js/translated/sales_order.js:2029 +msgid "Purchase stock" +msgstr "" + +#: templates/js/translated/sales_order.js:2038 +#: templates/js/translated/sales_order.js:2226 +msgid "Calculate price" +msgstr "" + +#: templates/js/translated/sales_order.js:2052 +msgid "Cannot be deleted as items have been shipped" +msgstr "" + +#: templates/js/translated/sales_order.js:2055 +msgid "Cannot be deleted as items have been allocated" +msgstr "" + +#: templates/js/translated/sales_order.js:2234 +msgid "Update Unit Price" +msgstr "" + +#: templates/js/translated/search.js:270 +msgid "No results" +msgstr "" + +#: templates/js/translated/search.js:292 templates/search.html:25 +msgid "Enter search query" +msgstr "" + +#: templates/js/translated/search.js:342 +msgid "result" +msgstr "" + +#: templates/js/translated/search.js:352 +msgid "Minimize results" +msgstr "" + +#: templates/js/translated/search.js:355 +msgid "Remove results" +msgstr "" + +#: templates/js/translated/stock.js:106 +msgid "Serialize Stock Item" +msgstr "" + +#: templates/js/translated/stock.js:137 +msgid "Confirm Stock Serialization" +msgstr "" + +#: templates/js/translated/stock.js:173 +msgid "Add Location type" +msgstr "" + +#: templates/js/translated/stock.js:209 +msgid "Edit Stock Location" +msgstr "" + +#: templates/js/translated/stock.js:224 +msgid "New Stock Location" +msgstr "" + +#: templates/js/translated/stock.js:226 +msgid "Create another location after this one" +msgstr "" + +#: templates/js/translated/stock.js:227 +msgid "Stock location created" +msgstr "" + +#: templates/js/translated/stock.js:241 +msgid "Are you sure you want to delete this stock location?" +msgstr "" + +#: templates/js/translated/stock.js:248 +msgid "Move to parent stock location" +msgstr "" + +#: templates/js/translated/stock.js:257 +msgid "Delete Stock Location" +msgstr "" + +#: templates/js/translated/stock.js:261 +msgid "Action for stock items in this stock location" +msgstr "" + +#: templates/js/translated/stock.js:266 +msgid "Action for sub-locations" +msgstr "" + +#: templates/js/translated/stock.js:320 +msgid "This part cannot be serialized" +msgstr "" + +#: templates/js/translated/stock.js:356 +msgid "Add given quantity as packs instead of individual items" +msgstr "" + +#: templates/js/translated/stock.js:368 +msgid "Enter initial quantity for this stock item" +msgstr "" + +#: templates/js/translated/stock.js:374 +msgid "Enter serial numbers for new stock (or leave blank)" +msgstr "" + +#: templates/js/translated/stock.js:445 +msgid "Stock item duplicated" +msgstr "" + +#: templates/js/translated/stock.js:465 +msgid "Duplicate Stock Item" +msgstr "" + +#: templates/js/translated/stock.js:481 +msgid "Are you sure you want to delete this stock item?" +msgstr "" + +#: templates/js/translated/stock.js:486 +msgid "Delete Stock Item" +msgstr "" + +#: templates/js/translated/stock.js:507 +msgid "Edit Stock Item" +msgstr "" + +#: templates/js/translated/stock.js:549 +msgid "Create another item after this one" +msgstr "" + +#: templates/js/translated/stock.js:561 +msgid "Created new stock item" +msgstr "" + +#: templates/js/translated/stock.js:574 +msgid "Created multiple stock items" +msgstr "" + +#: templates/js/translated/stock.js:599 +msgid "Find Serial Number" +msgstr "" + +#: templates/js/translated/stock.js:603 templates/js/translated/stock.js:604 +#: templates/js/translated/stock.js:620 +msgid "Enter serial number" +msgstr "" + +#: templates/js/translated/stock.js:640 +msgid "No matching serial number" +msgstr "" + +#: templates/js/translated/stock.js:649 +msgid "More than one matching result found" +msgstr "" + +#: templates/js/translated/stock.js:757 +msgid "Confirm stock assignment" +msgstr "" + +#: templates/js/translated/stock.js:758 +msgid "Assign Stock to Customer" +msgstr "" + +#: templates/js/translated/stock.js:835 +msgid "Warning: Merge operation cannot be reversed" +msgstr "" + +#: templates/js/translated/stock.js:836 +msgid "Some information will be lost when merging stock items" +msgstr "" + +#: templates/js/translated/stock.js:838 +msgid "Stock transaction history will be deleted for merged items" +msgstr "" + +#: templates/js/translated/stock.js:839 +msgid "Supplier part information will be deleted for merged items" +msgstr "" + +#: templates/js/translated/stock.js:933 +msgid "Confirm stock item merge" +msgstr "" + +#: templates/js/translated/stock.js:934 +msgid "Merge Stock Items" +msgstr "" + +#: templates/js/translated/stock.js:1031 +msgid "Transfer Stock" +msgstr "" + +#: templates/js/translated/stock.js:1032 +msgid "Move" +msgstr "" + +#: templates/js/translated/stock.js:1038 +msgid "Count Stock" +msgstr "" + +#: templates/js/translated/stock.js:1039 +msgid "Count" +msgstr "" + +#: templates/js/translated/stock.js:1043 +msgid "Remove Stock" +msgstr "" + +#: templates/js/translated/stock.js:1044 +msgid "Take" +msgstr "" + +#: templates/js/translated/stock.js:1048 +msgid "Add Stock" +msgstr "" + +#: templates/js/translated/stock.js:1049 users/models.py:398 +msgid "Add" +msgstr "" + +#: templates/js/translated/stock.js:1053 +msgid "Delete Stock" +msgstr "" + +#: templates/js/translated/stock.js:1152 +msgid "Quantity cannot be adjusted for serialized stock" +msgstr "" + +#: templates/js/translated/stock.js:1152 +msgid "Specify stock quantity" +msgstr "" + +#: templates/js/translated/stock.js:1168 +msgid "Adjust batch code" +msgstr "" + +#: templates/js/translated/stock.js:1178 +msgid "Adjust packaging" +msgstr "" + +#: templates/js/translated/stock.js:1256 templates/js/translated/stock.js:3383 +msgid "Select Stock Items" +msgstr "" + +#: templates/js/translated/stock.js:1257 +msgid "Select at least one available stock item" +msgstr "" + +#: templates/js/translated/stock.js:1303 +msgid "Confirm stock adjustment" +msgstr "" + +#: templates/js/translated/stock.js:1535 +msgid "Pass test" +msgstr "" + +#: templates/js/translated/stock.js:1538 +msgid "Add test result" +msgstr "" + +#: templates/js/translated/stock.js:1541 +msgid "Edit test result" +msgstr "" + +#: templates/js/translated/stock.js:1542 templates/js/translated/stock.js:1816 +msgid "Delete test result" +msgstr "" + +#: templates/js/translated/stock.js:1561 +msgid "No test results found" +msgstr "" + +#: templates/js/translated/stock.js:1625 +msgid "Test Date" +msgstr "" + +#: templates/js/translated/stock.js:1638 +msgid "Test started" +msgstr "" + +#: templates/js/translated/stock.js:1647 +msgid "Test finished" +msgstr "" + +#: templates/js/translated/stock.js:1801 +msgid "Edit Test Result" +msgstr "" + +#: templates/js/translated/stock.js:1821 +msgid "Delete Test Result" +msgstr "" + +#: templates/js/translated/stock.js:1853 +msgid "In production" +msgstr "" + +#: templates/js/translated/stock.js:1857 +msgid "Installed in Stock Item" +msgstr "" + +#: templates/js/translated/stock.js:1865 +msgid "Assigned to Sales Order" +msgstr "" + +#: templates/js/translated/stock.js:1871 +msgid "No stock location set" +msgstr "" + +#: templates/js/translated/stock.js:1928 +msgid "Change stock status" +msgstr "" + +#: templates/js/translated/stock.js:1937 +msgid "Merge stock" +msgstr "" + +#: templates/js/translated/stock.js:1986 +msgid "Delete stock" +msgstr "" + +#: templates/js/translated/stock.js:2039 +msgid "stock items" +msgstr "" + +#: templates/js/translated/stock.js:2044 +msgid "Scan to location" +msgstr "" + +#: templates/js/translated/stock.js:2055 +msgid "Stock Actions" +msgstr "" + +#: templates/js/translated/stock.js:2099 +msgid "Load installed items" +msgstr "" + +#: templates/js/translated/stock.js:2177 +msgid "Stock item is in production" +msgstr "" + +#: templates/js/translated/stock.js:2182 +msgid "Stock item assigned to sales order" +msgstr "" + +#: templates/js/translated/stock.js:2185 +msgid "Stock item assigned to customer" +msgstr "" + +#: templates/js/translated/stock.js:2188 +msgid "Serialized stock item has been allocated" +msgstr "" + +#: templates/js/translated/stock.js:2190 +msgid "Stock item has been fully allocated" +msgstr "" + +#: templates/js/translated/stock.js:2192 +msgid "Stock item has been partially allocated" +msgstr "" + +#: templates/js/translated/stock.js:2195 +msgid "Stock item has been installed in another item" +msgstr "" + +#: templates/js/translated/stock.js:2197 +msgid "Stock item has been consumed by a build order" +msgstr "" + +#: templates/js/translated/stock.js:2201 +msgid "Stock item has expired" +msgstr "" + +#: templates/js/translated/stock.js:2203 +msgid "Stock item will expire soon" +msgstr "" + +#: templates/js/translated/stock.js:2208 +msgid "Stock item has been rejected" +msgstr "" + +#: templates/js/translated/stock.js:2210 +msgid "Stock item is lost" +msgstr "" + +#: templates/js/translated/stock.js:2212 +msgid "Stock item is destroyed" +msgstr "" + +#: templates/js/translated/stock.js:2216 +#: templates/js/translated/table_filters.js:357 +msgid "Depleted" +msgstr "" + +#: templates/js/translated/stock.js:2381 +msgid "Supplier part not specified" +msgstr "" + +#: templates/js/translated/stock.js:2428 +msgid "Stock Value" +msgstr "" + +#: templates/js/translated/stock.js:2556 +msgid "No stock items matching query" +msgstr "" + +#: templates/js/translated/stock.js:2659 +msgid "stock locations" +msgstr "" + +#: templates/js/translated/stock.js:2814 +msgid "Load Sublocations" +msgstr "" + +#: templates/js/translated/stock.js:2931 +msgid "Details" +msgstr "" + +#: templates/js/translated/stock.js:2935 +msgid "No changes" +msgstr "" + +#: templates/js/translated/stock.js:2947 +msgid "Part information unavailable" +msgstr "" + +#: templates/js/translated/stock.js:2969 +msgid "Location no longer exists" +msgstr "" + +#: templates/js/translated/stock.js:2986 +msgid "Build order no longer exists" +msgstr "" + +#: templates/js/translated/stock.js:3001 +msgid "Purchase order no longer exists" +msgstr "" + +#: templates/js/translated/stock.js:3018 +msgid "Sales Order no longer exists" +msgstr "" + +#: templates/js/translated/stock.js:3035 +msgid "Return Order no longer exists" +msgstr "" + +#: templates/js/translated/stock.js:3054 +msgid "Customer no longer exists" +msgstr "" + +#: templates/js/translated/stock.js:3072 +msgid "Stock item no longer exists" +msgstr "" + +#: templates/js/translated/stock.js:3090 +msgid "Added" +msgstr "" + +#: templates/js/translated/stock.js:3098 +msgid "Removed" +msgstr "" + +#: templates/js/translated/stock.js:3170 +msgid "No installed items" +msgstr "" + +#: templates/js/translated/stock.js:3224 templates/js/translated/stock.js:3260 +msgid "Uninstall Stock Item" +msgstr "" + +#: templates/js/translated/stock.js:3281 +msgid "Select stock item to uninstall" +msgstr "" + +#: templates/js/translated/stock.js:3302 +msgid "Install another stock item into this item" +msgstr "" + +#: templates/js/translated/stock.js:3303 +msgid "Stock items can only be installed if they meet the following criteria" +msgstr "" + +#: templates/js/translated/stock.js:3305 +msgid "The Stock Item links to a Part which is the BOM for this Stock Item" +msgstr "" + +#: templates/js/translated/stock.js:3306 +msgid "The Stock Item is currently available in stock" +msgstr "" + +#: templates/js/translated/stock.js:3307 +msgid "The Stock Item is not already installed in another item" +msgstr "" + +#: templates/js/translated/stock.js:3308 +msgid "The Stock Item is tracked by either a batch code or serial number" +msgstr "" + +#: templates/js/translated/stock.js:3321 +msgid "Select part to install" +msgstr "" + +#: templates/js/translated/stock.js:3384 +msgid "Select one or more stock items" +msgstr "" + +#: templates/js/translated/stock.js:3397 +msgid "Selected stock items" +msgstr "" + +#: templates/js/translated/stock.js:3401 +msgid "Change Stock Status" +msgstr "" + +#: templates/js/translated/stock.js:3478 +msgid "This week" +msgstr "" + +#: templates/js/translated/stock.js:3486 +msgid "This month" +msgstr "" + +#: templates/js/translated/table_filters.js:73 +msgid "Has project code" +msgstr "" + +#: templates/js/translated/table_filters.js:88 +#: templates/js/translated/table_filters.js:608 +#: templates/js/translated/table_filters.js:620 +#: templates/js/translated/table_filters.js:661 +msgid "Order status" +msgstr "" + +#: templates/js/translated/table_filters.js:161 +msgid "Testable Part" +msgstr "" + +#: templates/js/translated/table_filters.js:165 +msgid "Trackable Part" +msgstr "" + +#: templates/js/translated/table_filters.js:169 +msgid "Assembled Part" +msgstr "" + +#: templates/js/translated/table_filters.js:173 +msgid "Has Available Stock" +msgstr "" + +#: templates/js/translated/table_filters.js:189 +msgid "Allow Variant Stock" +msgstr "" + +#: templates/js/translated/table_filters.js:241 +#: templates/js/translated/table_filters.js:352 +msgid "Include sublocations" +msgstr "" + +#: templates/js/translated/table_filters.js:242 +msgid "Include locations" +msgstr "" + +#: templates/js/translated/table_filters.js:274 +msgid "Has location type" +msgstr "" + +#: templates/js/translated/table_filters.js:285 +#: templates/js/translated/table_filters.js:286 +#: templates/js/translated/table_filters.js:714 +msgid "Include subcategories" +msgstr "" + +#: templates/js/translated/table_filters.js:294 +#: templates/js/translated/table_filters.js:767 +msgid "Subscribed" +msgstr "" + +#: templates/js/translated/table_filters.js:305 +#: templates/js/translated/table_filters.js:387 +msgid "Is Serialized" +msgstr "" + +#: templates/js/translated/table_filters.js:308 +#: templates/js/translated/table_filters.js:394 +msgid "Serial number GTE" +msgstr "" + +#: templates/js/translated/table_filters.js:309 +#: templates/js/translated/table_filters.js:395 +msgid "Serial number greater than or equal to" +msgstr "" + +#: templates/js/translated/table_filters.js:312 +#: templates/js/translated/table_filters.js:398 +msgid "Serial number LTE" +msgstr "" + +#: templates/js/translated/table_filters.js:313 +#: templates/js/translated/table_filters.js:399 +msgid "Serial number less than or equal to" +msgstr "" + +#: templates/js/translated/table_filters.js:316 +#: templates/js/translated/table_filters.js:317 +#: templates/js/translated/table_filters.js:390 +#: templates/js/translated/table_filters.js:391 +msgid "Serial number" +msgstr "" + +#: templates/js/translated/table_filters.js:321 +#: templates/js/translated/table_filters.js:412 +msgid "Batch code" +msgstr "" + +#: templates/js/translated/table_filters.js:332 +#: templates/js/translated/table_filters.js:703 +msgid "Active parts" +msgstr "" + +#: templates/js/translated/table_filters.js:333 +msgid "Show stock for active parts" +msgstr "" + +#: templates/js/translated/table_filters.js:338 +msgid "Part is an assembly" +msgstr "" + +#: templates/js/translated/table_filters.js:342 +msgid "Is allocated" +msgstr "" + +#: templates/js/translated/table_filters.js:343 +msgid "Item has been allocated" +msgstr "" + +#: templates/js/translated/table_filters.js:348 +msgid "Stock is available for use" +msgstr "" + +#: templates/js/translated/table_filters.js:353 +msgid "Include stock in sublocations" +msgstr "" + +#: templates/js/translated/table_filters.js:358 +msgid "Show stock items which are depleted" +msgstr "" + +#: templates/js/translated/table_filters.js:363 +msgid "Show items which are in stock" +msgstr "" + +#: templates/js/translated/table_filters.js:368 +msgid "Show items which are in production" +msgstr "" + +#: templates/js/translated/table_filters.js:373 +msgid "Include stock items for variant parts" +msgstr "" + +#: templates/js/translated/table_filters.js:378 +msgid "Show stock items which are installed in another item" +msgstr "" + +#: templates/js/translated/table_filters.js:383 +msgid "Show items which have been assigned to a customer" +msgstr "" + +#: templates/js/translated/table_filters.js:403 +#: templates/js/translated/table_filters.js:404 +msgid "Stock status" +msgstr "" + +#: templates/js/translated/table_filters.js:407 +msgid "Has batch code" +msgstr "" + +#: templates/js/translated/table_filters.js:416 +msgid "Stock item is tracked by either batch code or serial number" +msgstr "" + +#: templates/js/translated/table_filters.js:421 +msgid "Has purchase price" +msgstr "" + +#: templates/js/translated/table_filters.js:422 +msgid "Show stock items which have a purchase price set" +msgstr "" + +#: templates/js/translated/table_filters.js:426 +msgid "Expiry Date before" +msgstr "" + +#: templates/js/translated/table_filters.js:430 +msgid "Expiry Date after" +msgstr "" + +#: templates/js/translated/table_filters.js:443 +msgid "Show stock items which have expired" +msgstr "" + +#: templates/js/translated/table_filters.js:449 +msgid "Show stock which is close to expiring" +msgstr "" + +#: templates/js/translated/table_filters.js:463 +msgid "Test Passed" +msgstr "" + +#: templates/js/translated/table_filters.js:467 +msgid "Include Installed Items" +msgstr "" + +#: templates/js/translated/table_filters.js:478 +msgid "Interval start" +msgstr "" + +#: templates/js/translated/table_filters.js:482 +msgid "Interval end" +msgstr "" + +#: templates/js/translated/table_filters.js:536 +msgid "Build status" +msgstr "" + +#: templates/js/translated/table_filters.js:715 +msgid "Include parts in subcategories" +msgstr "" + +#: templates/js/translated/table_filters.js:720 +msgid "Show active parts" +msgstr "" + +#: templates/js/translated/table_filters.js:725 +msgid "Show locked parts" +msgstr "" + +#: templates/js/translated/table_filters.js:733 +msgid "Available stock" +msgstr "" + +#: templates/js/translated/table_filters.js:741 +#: templates/js/translated/table_filters.js:845 +msgid "Has Units" +msgstr "" + +#: templates/js/translated/table_filters.js:742 +msgid "Part has defined units" +msgstr "" + +#: templates/js/translated/table_filters.js:746 +msgid "Has IPN" +msgstr "" + +#: templates/js/translated/table_filters.js:747 +msgid "Part has internal part number" +msgstr "" + +#: templates/js/translated/table_filters.js:751 +msgid "In stock" +msgstr "" + +#: templates/js/translated/table_filters.js:759 +msgid "Purchasable" +msgstr "" + +#: templates/js/translated/table_filters.js:771 +msgid "Has stocktake entries" +msgstr "" + +#: templates/js/translated/table_filters.js:841 +msgid "Has Choices" +msgstr "" + +#: templates/js/translated/tables.js:92 +msgid "Display calendar view" +msgstr "" + +#: templates/js/translated/tables.js:102 +msgid "Display list view" +msgstr "" + +#: templates/js/translated/tables.js:112 +msgid "Display tree view" +msgstr "" + +#: templates/js/translated/tables.js:130 +msgid "Expand all rows" +msgstr "" + +#: templates/js/translated/tables.js:136 +msgid "Collapse all rows" +msgstr "" + +#: templates/js/translated/tables.js:186 +msgid "Export Table Data" +msgstr "" + +#: templates/js/translated/tables.js:190 +msgid "Select File Format" +msgstr "" + +#: templates/js/translated/tables.js:529 +msgid "Loading data" +msgstr "" + +#: templates/js/translated/tables.js:532 +msgid "rows per page" +msgstr "" + +#: templates/js/translated/tables.js:537 +msgid "Showing all rows" +msgstr "" + +#: templates/js/translated/tables.js:539 +msgid "Showing" +msgstr "" + +#: templates/js/translated/tables.js:539 +msgid "to" +msgstr "" + +#: templates/js/translated/tables.js:539 +msgid "of" +msgstr "" + +#: templates/js/translated/tables.js:539 +msgid "rows" +msgstr "" + +#: templates/js/translated/tables.js:546 +msgid "No matching results" +msgstr "" + +#: templates/js/translated/tables.js:549 +msgid "Hide/Show pagination" +msgstr "" + +#: templates/js/translated/tables.js:555 +msgid "Toggle" +msgstr "" + +#: templates/js/translated/tables.js:561 +msgid "All" +msgstr "" + +#: templates/navbar.html:45 +msgid "Buy" +msgstr "" + +#: templates/navbar.html:57 +msgid "Sell" +msgstr "" + +#: templates/navbar.html:121 +msgid "Show Notifications" +msgstr "" + +#: templates/navbar.html:124 +msgid "New Notifications" +msgstr "" + +#: templates/navbar.html:144 users/models.py:201 +msgid "Admin" +msgstr "" + +#: templates/navbar.html:148 +msgid "Logout" +msgstr "" + +#: templates/notes_buttons.html:6 templates/notes_buttons.html:7 +msgid "Save" +msgstr "" + +#: templates/notifications.html:9 +msgid "Show all notifications and history" +msgstr "" + +#: templates/pui_banner.html:9 +msgid "Platform UI - the new UI for InvenTree - provides more modern administration options." +msgstr "" + +#: templates/pui_banner.html:12 +msgid "Platform UI - the new UI for InvenTree - is ready to be tested." +msgstr "" + +#: templates/pui_banner.html:15 +msgid "Try it out now" +msgstr "" + +#: templates/pui_banner.html:15 +msgid "here" +msgstr "" + +#: templates/qr_code.html:11 +msgid "QR data not provided" +msgstr "" + +#: templates/registration/logged_out.html:7 +msgid "You were logged out successfully." +msgstr "" + +#: templates/registration/logged_out.html:9 +msgid "Log in again" +msgstr "" + +#: templates/search.html:9 +msgid "Show full search results" +msgstr "" + +#: templates/search.html:12 +msgid "Clear search" +msgstr "" + +#: templates/search.html:15 +msgid "Close search menu" +msgstr "" + +#: templates/socialaccount/authentication_error.html:5 +msgid "Social Network Login Failure" +msgstr "" + +#: templates/socialaccount/authentication_error.html:8 +msgid "Account Login Failure" +msgstr "" + +#: templates/socialaccount/authentication_error.html:11 +msgid "An error occurred while attempting to login via your social network account." +msgstr "" + +#: templates/socialaccount/login.html:13 +#, python-format +msgid "Connect %(provider)s" +msgstr "" + +#: templates/socialaccount/login.html:15 +#, python-format +msgid "You are about to connect a new third party account from %(provider)s." +msgstr "" + +#: templates/socialaccount/login.html:17 +#, python-format +msgid "Sign In Via %(provider)s" +msgstr "" + +#: templates/socialaccount/login.html:19 +#, python-format +msgid "You are about to sign in using a third party account from %(provider)s." +msgstr "" + +#: templates/socialaccount/login.html:24 +msgid "Continue" +msgstr "" + +#: templates/socialaccount/login.html:29 +msgid "Invalid SSO Provider" +msgstr "" + +#: templates/socialaccount/login.html:31 +msgid "The selected SSO provider is invalid, or has not been correctly configured" +msgstr "" + +#: templates/socialaccount/signup.html:11 +#, python-format +msgid "You are about to use your %(provider_name)s account to login to %(site_name)s." +msgstr "" + +#: templates/socialaccount/signup.html:13 +msgid "As a final step, please complete the following form" +msgstr "" + +#: templates/socialaccount/snippets/provider_list.html:26 +msgid "Provider has not been configured" +msgstr "" + +#: templates/socialaccount/snippets/provider_list.html:35 +msgid "No SSO providers have been configured" +msgstr "" + +#: templates/stats.html:13 +msgid "Instance Name" +msgstr "" + +#: templates/stats.html:18 +msgid "Database" +msgstr "" + +#: templates/stats.html:26 +msgid "Server is running in debug mode" +msgstr "" + +#: templates/stats.html:33 +msgid "Docker Mode" +msgstr "" + +#: templates/stats.html:34 +msgid "Server is deployed using docker" +msgstr "" + +#: templates/stats.html:39 +msgid "Plugin Support" +msgstr "" + +#: templates/stats.html:43 +msgid "Plugin support enabled" +msgstr "" + +#: templates/stats.html:45 +msgid "Plugin support disabled" +msgstr "" + +#: templates/stats.html:52 +msgid "Server status" +msgstr "" + +#: templates/stats.html:55 +msgid "Healthy" +msgstr "" + +#: templates/stats.html:57 +msgid "Issues detected" +msgstr "" + +#: templates/stats.html:64 +msgid "Background Worker" +msgstr "" + +#: templates/stats.html:67 +msgid "Background worker not running" +msgstr "" + +#: templates/stats.html:75 +msgid "Email Settings" +msgstr "" + +#: templates/stats.html:78 +msgid "Email settings not configured" +msgstr "" + +#: templates/test_statistics_table.html:13 +msgid "Passed" +msgstr "" + +#: templates/test_statistics_table.html:16 +msgid "Failed" +msgstr "" + +#: templates/yesnolabel.html:4 +msgid "Yes" +msgstr "" + +#: templates/yesnolabel.html:6 +msgid "No" +msgstr "" + +#: users/admin.py:101 +msgid "Users" +msgstr "" + +#: users/admin.py:102 +msgid "Select which users are assigned to this group" +msgstr "" + +#: users/admin.py:246 +msgid "The following users are members of multiple groups" +msgstr "" + +#: users/admin.py:280 +msgid "Personal info" +msgstr "" + +#: users/admin.py:282 +msgid "Permissions" +msgstr "" + +#: users/admin.py:285 +msgid "Important dates" +msgstr "" + +#: users/authentication.py:29 users/models.py:138 +msgid "Token has been revoked" +msgstr "" + +#: users/authentication.py:32 +msgid "Token has expired" +msgstr "" + +#: users/models.py:81 +msgid "API Token" +msgstr "" + +#: users/models.py:82 +msgid "API Tokens" +msgstr "" + +#: users/models.py:118 +msgid "Token Name" +msgstr "" + +#: users/models.py:119 +msgid "Custom token name" +msgstr "" + +#: users/models.py:125 +msgid "Token expiry date" +msgstr "" + +#: users/models.py:133 +msgid "Last Seen" +msgstr "" + +#: users/models.py:134 +msgid "Last time the token was used" +msgstr "" + +#: users/models.py:138 +msgid "Revoked" +msgstr "" + +#: users/models.py:381 +msgid "Permission set" +msgstr "" + +#: users/models.py:390 +msgid "Group" +msgstr "" + +#: users/models.py:394 +msgid "View" +msgstr "" + +#: users/models.py:394 +msgid "Permission to view items" +msgstr "" + +#: users/models.py:398 +msgid "Permission to add items" +msgstr "" + +#: users/models.py:402 +msgid "Change" +msgstr "" + +#: users/models.py:404 +msgid "Permissions to edit items" +msgstr "" + +#: users/models.py:410 +msgid "Permission to delete items" +msgstr "" + diff --git a/src/backend/InvenTree/locale/lv/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/lv/LC_MESSAGES/django.po index 14c02fb132..4f725e6242 100644 --- a/src/backend/InvenTree/locale/lv/LC_MESSAGES/django.po +++ b/src/backend/InvenTree/locale/lv/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-08-20 01:22+0000\n" -"PO-Revision-Date: 2024-08-20 19:51\n" +"POT-Creation-Date: 2024-11-04 03:11+0000\n" +"PO-Revision-Date: 2024-11-04 03:14\n" "Last-Translator: \n" "Language-Team: Latvian\n" "Language: lv_LV\n" @@ -14,81 +14,89 @@ msgstr "" "X-Crowdin-Project: inventree\n" "X-Crowdin-Project-ID: 452300\n" "X-Crowdin-Language: lv\n" -"X-Crowdin-File: /[inventree.InvenTree] l10/src/backend/InvenTree/locale/en/LC_MESSAGES/django.po\n" -"X-Crowdin-File-ID: 216\n" +"X-Crowdin-File: /src/backend/InvenTree/locale/en/LC_MESSAGES/django.po\n" +"X-Crowdin-File-ID: 250\n" -#: InvenTree/api.py:269 +#: InvenTree/api.py:270 msgid "API endpoint not found" msgstr "API galapunkts nav atrasts" -#: InvenTree/api.py:502 +#: InvenTree/api.py:387 +msgid "Invalid items list provided" +msgstr "" + +#: InvenTree/api.py:396 +msgid "Invalid filters provided" +msgstr "" + +#: InvenTree/api.py:401 +msgid "No items found to delete" +msgstr "" + +#: InvenTree/api.py:515 msgid "User does not have permission to view this model" msgstr "Lietotājam nav atļaujas, lai apskatītu šo modeli" -#: InvenTree/conversion.py:160 +#: InvenTree/conversion.py:161 #, python-brace-format msgid "Invalid unit provided ({unit})" msgstr "Norādīta nederīga vienība ({unit})" -#: InvenTree/conversion.py:177 +#: InvenTree/conversion.py:178 msgid "No value provided" msgstr "Nav norādīta vērtība" -#: InvenTree/conversion.py:204 +#: InvenTree/conversion.py:205 #, python-brace-format msgid "Could not convert {original} to {unit}" msgstr "Nevarēja konvertēt {original} par {unit}" -#: InvenTree/conversion.py:206 -msgid "Invalid quantity supplied" -msgstr "" +#: InvenTree/conversion.py:207 InvenTree/conversion.py:221 +#: InvenTree/helpers.py:505 order/models.py:589 order/models.py:832 +msgid "Invalid quantity provided" +msgstr "Norādītais daudzums nav derīgs" -#: InvenTree/conversion.py:220 -#, python-brace-format -msgid "Invalid quantity supplied ({exc})" -msgstr "" - -#: InvenTree/exceptions.py:108 +#: InvenTree/exceptions.py:104 msgid "Error details can be found in the admin panel" msgstr "" -#: InvenTree/fields.py:136 +#: InvenTree/fields.py:135 msgid "Enter date" msgstr "Ievadiet datumu" -#: InvenTree/fields.py:205 InvenTree/models.py:929 build/serializers.py:468 -#: build/serializers.py:546 build/templates/build/sidebar.html:29 -#: company/models.py:836 +#: InvenTree/fields.py:204 InvenTree/models.py:928 build/serializers.py:512 +#: build/serializers.py:590 build/templates/build/sidebar.html:29 +#: company/models.py:833 #: company/templates/company/manufacturer_part_sidebar.html:11 #: company/templates/company/sidebar.html:37 -#: company/templates/company/supplier_part_sidebar.html:11 order/models.py:1380 +#: company/templates/company/supplier_part_sidebar.html:11 order/models.py:1397 #: order/templates/order/po_sidebar.html:11 #: order/templates/order/return_order_sidebar.html:9 #: order/templates/order/so_sidebar.html:17 part/admin.py:59 -#: part/models.py:3297 part/templates/part/part_sidebar.html:65 +#: part/models.py:3348 part/templates/part/part_sidebar.html:65 #: report/templates/report/inventree_build_order_report.html:172 -#: stock/admin.py:230 stock/models.py:2375 stock/models.py:2563 -#: stock/serializers.py:698 stock/serializers.py:856 stock/serializers.py:982 -#: stock/serializers.py:1032 stock/serializers.py:1343 -#: stock/serializers.py:1432 stock/serializers.py:1597 +#: stock/admin.py:231 stock/models.py:2494 stock/models.py:2679 +#: stock/serializers.py:725 stock/serializers.py:887 stock/serializers.py:1013 +#: stock/serializers.py:1063 stock/serializers.py:1374 +#: stock/serializers.py:1463 stock/serializers.py:1628 #: stock/templates/stock/stock_sidebar.html:25 #: templates/js/translated/barcode.js:143 templates/js/translated/bom.js:1265 -#: templates/js/translated/company.js:1684 templates/js/translated/order.js:372 +#: templates/js/translated/company.js:1685 templates/js/translated/order.js:372 #: templates/js/translated/part.js:1087 -#: templates/js/translated/purchase_order.js:2270 +#: templates/js/translated/purchase_order.js:2254 #: templates/js/translated/return_order.js:774 -#: templates/js/translated/sales_order.js:1103 -#: templates/js/translated/sales_order.js:2018 -#: templates/js/translated/stock.js:1621 templates/js/translated/stock.js:2513 +#: templates/js/translated/sales_order.js:1069 +#: templates/js/translated/sales_order.js:1999 +#: templates/js/translated/stock.js:1621 templates/js/translated/stock.js:2514 msgid "Notes" msgstr "Piezīmes" -#: InvenTree/format.py:164 +#: InvenTree/format.py:162 #, python-brace-format msgid "Value '{name}' does not appear in pattern format" msgstr "Vērtība '{name}' neparādās vajadzīgajā formātā" -#: InvenTree/format.py:175 +#: InvenTree/format.py:173 msgid "Provided value does not match required pattern: " msgstr "Norādītā vērtība neatbilst nepieciešamajam formātam: " @@ -132,397 +140,409 @@ msgstr "" msgid "The provided primary email address is not valid." msgstr "Norādītā primārā e-pasta adrese nav derīga." -#: InvenTree/forms.py:274 +#: InvenTree/forms.py:273 msgid "The provided email domain is not approved." msgstr "Norādītais e-pasta domēns nav apstiprināts." -#: InvenTree/forms.py:403 +#: InvenTree/forms.py:402 msgid "Registration is disabled." msgstr "Reģistrācija ir izslēgta." -#: InvenTree/helpers.py:491 order/models.py:567 order/models.py:810 -msgid "Invalid quantity provided" -msgstr "Norādītais daudzums nav derīgs" +#: InvenTree/helpers.py:509 +msgid "Cannot serialize more than 1000 items at once" +msgstr "" -#: InvenTree/helpers.py:499 +#: InvenTree/helpers.py:515 msgid "Empty serial number string" msgstr "Tukša sērijas numura rinda" -#: InvenTree/helpers.py:528 +#: InvenTree/helpers.py:544 msgid "Duplicate serial" msgstr "Atkārtojas sērijas numurs" -#: InvenTree/helpers.py:560 InvenTree/helpers.py:603 +#: InvenTree/helpers.py:576 InvenTree/helpers.py:619 InvenTree/helpers.py:637 +#: InvenTree/helpers.py:644 InvenTree/helpers.py:663 #, python-brace-format -msgid "Invalid group range: {group}" -msgstr "Nederīgs grupas diapazons: {group}" +msgid "Invalid group: {group}" +msgstr "" -#: InvenTree/helpers.py:591 +#: InvenTree/helpers.py:607 #, python-brace-format msgid "Group range {group} exceeds allowed quantity ({expected_quantity})" msgstr "Grupas diapazons {group} pārsniedz pieļaujamo daudzumu ({expected_quantity})" -#: InvenTree/helpers.py:621 InvenTree/helpers.py:628 InvenTree/helpers.py:647 -#, python-brace-format -msgid "Invalid group sequence: {group}" -msgstr "Nederīga grupas secība: {group}" - -#: InvenTree/helpers.py:657 +#: InvenTree/helpers.py:673 msgid "No serial numbers found" msgstr "Netika atrasts neviens sērijas numurs" -#: InvenTree/helpers.py:662 +#: InvenTree/helpers.py:678 msgid "Number of unique serial numbers ({len(serials)}) must match quantity ({expected_quantity})" msgstr "Unikālo sērijas numuru skaitam ({len(serials)}) jāatbilst daudzumam ({expected_quantity})" -#: InvenTree/helpers.py:780 +#: InvenTree/helpers.py:796 msgid "Remove HTML tags from this value" msgstr "Noņemiet HTML tagus no šīs vērtības" -#: InvenTree/helpers_model.py:133 +#: InvenTree/helpers.py:881 +msgid "Data contains prohibited markdown content" +msgstr "" + +#: InvenTree/helpers_model.py:130 msgid "Connection error" msgstr "Savienojuma kļūda" -#: InvenTree/helpers_model.py:138 InvenTree/helpers_model.py:145 +#: InvenTree/helpers_model.py:135 InvenTree/helpers_model.py:142 msgid "Server responded with invalid status code" msgstr "Serveris atbildēja ar nederīgu statusa kodu" -#: InvenTree/helpers_model.py:141 +#: InvenTree/helpers_model.py:138 msgid "Exception occurred" msgstr "Radās izņēmums" -#: InvenTree/helpers_model.py:151 +#: InvenTree/helpers_model.py:148 msgid "Server responded with invalid Content-Length value" msgstr "Serveris atbildēja ar nederīgu Content-Length vērtību" -#: InvenTree/helpers_model.py:154 +#: InvenTree/helpers_model.py:151 msgid "Image size is too large" msgstr "Attēla izmērs ir pārāk liels" -#: InvenTree/helpers_model.py:166 +#: InvenTree/helpers_model.py:163 msgid "Image download exceeded maximum size" msgstr "Attēla lejupielāde pārsniedz maksimālo izmēru" -#: InvenTree/helpers_model.py:171 +#: InvenTree/helpers_model.py:168 msgid "Remote server returned empty response" msgstr "Attālais serveris atgrieza tukšu atbildi" -#: InvenTree/helpers_model.py:179 +#: InvenTree/helpers_model.py:176 msgid "Supplied URL is not a valid image file" msgstr "Norādītajā URL nav derīgs attēla fails" -#: InvenTree/locales.py:18 +#: InvenTree/locales.py:20 msgid "Arabic" msgstr "" -#: InvenTree/locales.py:19 +#: InvenTree/locales.py:21 msgid "Bulgarian" msgstr "Bulgāru" -#: InvenTree/locales.py:20 +#: InvenTree/locales.py:22 msgid "Czech" msgstr "Čehu" -#: InvenTree/locales.py:21 +#: InvenTree/locales.py:23 msgid "Danish" msgstr "Dāņu" -#: InvenTree/locales.py:22 +#: InvenTree/locales.py:24 msgid "German" msgstr "Vācu" -#: InvenTree/locales.py:23 +#: InvenTree/locales.py:25 msgid "Greek" msgstr "Grieķu" -#: InvenTree/locales.py:24 +#: InvenTree/locales.py:26 msgid "English" msgstr "Angļu" -#: InvenTree/locales.py:25 +#: InvenTree/locales.py:27 msgid "Spanish" msgstr "Spāņu" -#: InvenTree/locales.py:26 +#: InvenTree/locales.py:28 msgid "Spanish (Mexican)" msgstr "Spāņu (Meksikāņu)" -#: InvenTree/locales.py:27 +#: InvenTree/locales.py:29 msgid "Estonian" msgstr "" -#: InvenTree/locales.py:28 +#: InvenTree/locales.py:30 msgid "Farsi / Persian" msgstr "Farsi / Persiešu" -#: InvenTree/locales.py:29 +#: InvenTree/locales.py:31 msgid "Finnish" msgstr "Somu" -#: InvenTree/locales.py:30 +#: InvenTree/locales.py:32 msgid "French" msgstr "" -#: InvenTree/locales.py:31 +#: InvenTree/locales.py:33 msgid "Hebrew" msgstr "" -#: InvenTree/locales.py:32 +#: InvenTree/locales.py:34 msgid "Hindi" msgstr "" -#: InvenTree/locales.py:33 +#: InvenTree/locales.py:35 msgid "Hungarian" msgstr "" -#: InvenTree/locales.py:34 +#: InvenTree/locales.py:36 msgid "Italian" msgstr "" -#: InvenTree/locales.py:35 +#: InvenTree/locales.py:37 msgid "Japanese" msgstr "" -#: InvenTree/locales.py:36 +#: InvenTree/locales.py:38 msgid "Korean" msgstr "" -#: InvenTree/locales.py:37 -msgid "Latvian" -msgstr "" - -#: InvenTree/locales.py:38 -msgid "Dutch" -msgstr "" - #: InvenTree/locales.py:39 -msgid "Norwegian" +msgid "Lithuanian" msgstr "" #: InvenTree/locales.py:40 -msgid "Polish" +msgid "Latvian" msgstr "" #: InvenTree/locales.py:41 -msgid "Portuguese" +msgid "Dutch" msgstr "" #: InvenTree/locales.py:42 -msgid "Portuguese (Brazilian)" +msgid "Norwegian" msgstr "" #: InvenTree/locales.py:43 -msgid "Romanian" +msgid "Polish" msgstr "" #: InvenTree/locales.py:44 -msgid "Russian" +msgid "Portuguese" msgstr "" #: InvenTree/locales.py:45 -msgid "Slovak" +msgid "Portuguese (Brazilian)" msgstr "" #: InvenTree/locales.py:46 -msgid "Slovenian" +msgid "Romanian" msgstr "" #: InvenTree/locales.py:47 -msgid "Serbian" +msgid "Russian" msgstr "" #: InvenTree/locales.py:48 -msgid "Swedish" +msgid "Slovak" msgstr "" #: InvenTree/locales.py:49 -msgid "Thai" +msgid "Slovenian" msgstr "" #: InvenTree/locales.py:50 -msgid "Turkish" +msgid "Serbian" msgstr "" #: InvenTree/locales.py:51 -msgid "Ukrainian" +msgid "Swedish" msgstr "" #: InvenTree/locales.py:52 -msgid "Vietnamese" +msgid "Thai" msgstr "" #: InvenTree/locales.py:53 -msgid "Chinese (Simplified)" +msgid "Turkish" msgstr "" #: InvenTree/locales.py:54 +msgid "Ukrainian" +msgstr "" + +#: InvenTree/locales.py:55 +msgid "Vietnamese" +msgstr "" + +#: InvenTree/locales.py:56 +msgid "Chinese (Simplified)" +msgstr "" + +#: InvenTree/locales.py:57 msgid "Chinese (Traditional)" msgstr "" #: InvenTree/magic_login.py:28 -#, python-brace-format -msgid "[{site_name}] Log in to the app" +msgid "Log in to the app" msgstr "" -#: InvenTree/magic_login.py:38 InvenTree/serializers.py:415 -#: company/models.py:136 company/templates/company/company_base.html:138 +#: InvenTree/magic_login.py:38 InvenTree/serializers.py:416 +#: company/models.py:133 company/templates/company/company_base.html:138 #: templates/InvenTree/settings/user.html:49 -#: templates/js/translated/company.js:677 +#: templates/js/translated/company.js:678 msgid "Email" msgstr "" -#: InvenTree/models.py:103 +#: InvenTree/models.py:105 msgid "Error running plugin validation" msgstr "" -#: InvenTree/models.py:172 +#: InvenTree/models.py:174 msgid "Metadata must be a python dict object" msgstr "" -#: InvenTree/models.py:178 +#: InvenTree/models.py:180 msgid "Plugin Metadata" msgstr "" -#: InvenTree/models.py:179 +#: InvenTree/models.py:181 msgid "JSON metadata field, for use by external plugins" msgstr "" -#: InvenTree/models.py:409 +#: InvenTree/models.py:408 msgid "Improperly formatted pattern" msgstr "" -#: InvenTree/models.py:416 +#: InvenTree/models.py:415 msgid "Unknown format key specified" msgstr "" -#: InvenTree/models.py:422 +#: InvenTree/models.py:421 msgid "Missing required format key" msgstr "" -#: InvenTree/models.py:433 +#: InvenTree/models.py:432 msgid "Reference field cannot be empty" msgstr "" -#: InvenTree/models.py:441 +#: InvenTree/models.py:440 msgid "Reference must match required pattern" msgstr "" -#: InvenTree/models.py:472 +#: InvenTree/models.py:471 msgid "Reference number is too large" msgstr "" -#: InvenTree/models.py:723 +#: InvenTree/models.py:722 msgid "Duplicate names cannot exist under the same parent" msgstr "" -#: InvenTree/models.py:740 +#: InvenTree/models.py:739 msgid "Invalid choice" msgstr "" -#: InvenTree/models.py:770 common/models.py:2702 common/models.py:3132 -#: common/serializers.py:412 company/models.py:593 machine/models.py:24 -#: part/models.py:983 part/models.py:3764 plugin/models.py:51 -#: report/models.py:149 stock/models.py:77 +#: InvenTree/models.py:769 common/models.py:2766 common/models.py:3193 +#: common/models.py:3413 common/serializers.py:460 company/models.py:590 +#: machine/models.py:24 part/models.py:1044 part/models.py:3815 +#: plugin/models.py:51 report/models.py:149 stock/models.py:83 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/notifications.html:17 #: templates/InvenTree/settings/plugin.html:83 #: templates/InvenTree/settings/plugin_settings.html:22 #: templates/InvenTree/settings/settings_staff_js.html:67 #: templates/InvenTree/settings/settings_staff_js.html:454 -#: templates/js/translated/company.js:676 -#: templates/js/translated/company.js:724 -#: templates/js/translated/company.js:913 -#: templates/js/translated/company.js:1165 -#: templates/js/translated/company.js:1413 templates/js/translated/part.js:1193 +#: templates/js/translated/company.js:677 +#: templates/js/translated/company.js:725 +#: templates/js/translated/company.js:914 +#: templates/js/translated/company.js:1166 +#: templates/js/translated/company.js:1414 templates/js/translated/part.js:1193 #: templates/js/translated/part.js:1481 templates/js/translated/part.js:1617 -#: templates/js/translated/part.js:2768 templates/js/translated/stock.js:2801 +#: templates/js/translated/part.js:2768 templates/js/translated/stock.js:2802 msgid "Name" msgstr "" -#: InvenTree/models.py:776 build/models.py:250 -#: build/templates/build/detail.html:24 common/models.py:156 -#: company/models.py:521 company/models.py:827 +#: InvenTree/models.py:775 build/models.py:251 +#: build/templates/build/detail.html:24 common/models.py:159 +#: company/models.py:518 company/models.py:824 #: company/templates/company/company_base.html:77 #: company/templates/company/manufacturer_part.html:75 -#: company/templates/company/supplier_part.html:107 order/models.py:288 -#: order/models.py:1413 part/admin.py:305 part/admin.py:411 part/models.py:1006 -#: part/models.py:3779 part/templates/part/category.html:79 -#: part/templates/part/part_base.html:170 +#: company/templates/company/supplier_part.html:108 order/models.py:295 +#: order/models.py:1430 part/admin.py:305 part/admin.py:411 part/models.py:1067 +#: part/models.py:3830 part/templates/part/category.html:79 +#: part/templates/part/part_base.html:171 #: part/templates/part/part_scheduling.html:12 report/models.py:155 -#: report/models.py:509 report/models.py:535 +#: report/models.py:517 report/models.py:543 #: report/templates/report/inventree_build_order_report.html:117 -#: stock/admin.py:54 stock/models.py:83 stock/templates/stock/location.html:122 +#: stock/admin.py:54 stock/models.py:89 stock/templates/stock/location.html:123 #: templates/InvenTree/settings/notifications.html:19 #: templates/InvenTree/settings/plugin_settings.html:27 #: templates/InvenTree/settings/settings_staff_js.html:170 #: templates/InvenTree/settings/settings_staff_js.html:459 #: templates/js/translated/bom.js:633 templates/js/translated/bom.js:963 -#: templates/js/translated/build.js:2311 templates/js/translated/company.js:519 -#: templates/js/translated/company.js:1330 -#: templates/js/translated/company.js:1641 templates/js/translated/index.js:119 +#: templates/js/translated/build.js:2314 templates/js/translated/company.js:520 +#: templates/js/translated/company.js:1331 +#: templates/js/translated/company.js:1642 templates/js/translated/index.js:119 #: templates/js/translated/order.js:323 templates/js/translated/part.js:1245 #: templates/js/translated/part.js:1490 templates/js/translated/part.js:1628 #: templates/js/translated/part.js:1965 templates/js/translated/part.js:2361 #: templates/js/translated/part.js:2803 templates/js/translated/part.js:2915 #: templates/js/translated/plugin.js:80 -#: templates/js/translated/purchase_order.js:1776 -#: templates/js/translated/purchase_order.js:1919 -#: templates/js/translated/purchase_order.js:2092 +#: templates/js/translated/purchase_order.js:1760 +#: templates/js/translated/purchase_order.js:1903 +#: templates/js/translated/purchase_order.js:2076 #: templates/js/translated/return_order.js:313 -#: templates/js/translated/sales_order.js:838 -#: templates/js/translated/sales_order.js:1848 -#: templates/js/translated/stock.js:1600 templates/js/translated/stock.js:2143 -#: templates/js/translated/stock.js:2832 templates/js/translated/stock.js:2915 +#: templates/js/translated/sales_order.js:797 +#: templates/js/translated/sales_order.js:1829 +#: templates/js/translated/stock.js:1600 templates/js/translated/stock.js:2144 +#: templates/js/translated/stock.js:2833 templates/js/translated/stock.js:2916 msgid "Description" msgstr "" -#: InvenTree/models.py:777 stock/models.py:84 +#: InvenTree/models.py:776 stock/models.py:90 msgid "Description (optional)" msgstr "" -#: InvenTree/models.py:792 templates/js/translated/part.js:2812 -#: templates/js/translated/stock.js:2841 +#: InvenTree/models.py:791 common/models.py:3546 +#: templates/js/translated/part.js:2812 templates/js/translated/stock.js:2842 msgid "Path" msgstr "" -#: InvenTree/models.py:929 +#: InvenTree/models.py:928 msgid "Markdown notes (optional)" msgstr "" -#: InvenTree/models.py:960 +#: InvenTree/models.py:959 msgid "Barcode Data" msgstr "" -#: InvenTree/models.py:961 +#: InvenTree/models.py:960 msgid "Third party barcode data" msgstr "" -#: InvenTree/models.py:967 +#: InvenTree/models.py:966 msgid "Barcode Hash" msgstr "" -#: InvenTree/models.py:968 +#: InvenTree/models.py:967 msgid "Unique hash of barcode data" msgstr "" -#: InvenTree/models.py:1035 +#: InvenTree/models.py:1034 msgid "Existing barcode found" msgstr "" -#: InvenTree/models.py:1078 +#: InvenTree/models.py:1112 +msgid "Task Failure" +msgstr "" + +#: InvenTree/models.py:1114 +#, python-brace-format +msgid "Background worker task '{instance.func}' failed after {n} attempts" +msgstr "" + +#: InvenTree/models.py:1142 msgid "Server Error" msgstr "" -#: InvenTree/models.py:1079 +#: InvenTree/models.py:1143 msgid "An error has been logged by the server." msgstr "" -#: InvenTree/serializers.py:63 part/models.py:4387 +#: InvenTree/serializers.py:63 part/models.py:4444 msgid "Must be a valid number" msgstr "" -#: InvenTree/serializers.py:100 company/models.py:186 -#: company/templates/company/company_base.html:112 part/models.py:3115 +#: InvenTree/serializers.py:100 company/models.py:183 +#: company/templates/company/company_base.html:112 part/models.py:3166 #: templates/InvenTree/settings/settings_staff_js.html:44 #: templates/currency_data.html:5 msgid "Currency" @@ -532,15 +552,15 @@ msgstr "" msgid "Select currency from available options" msgstr "" -#: InvenTree/serializers.py:407 templates/InvenTree/settings/user.html:33 +#: InvenTree/serializers.py:405 templates/InvenTree/settings/user.html:33 msgid "Username" msgstr "" -#: InvenTree/serializers.py:409 templates/InvenTree/settings/user.html:37 +#: InvenTree/serializers.py:408 templates/InvenTree/settings/user.html:37 msgid "First Name" msgstr "" -#: InvenTree/serializers.py:409 +#: InvenTree/serializers.py:408 msgid "First name of the user" msgstr "" @@ -552,30 +572,30 @@ msgstr "" msgid "Last name of the user" msgstr "" -#: InvenTree/serializers.py:415 +#: InvenTree/serializers.py:416 msgid "Email address of the user" msgstr "" -#: InvenTree/serializers.py:439 +#: InvenTree/serializers.py:441 msgid "Staff" msgstr "" -#: InvenTree/serializers.py:439 +#: InvenTree/serializers.py:441 msgid "Does this user have staff permissions" msgstr "" -#: InvenTree/serializers.py:442 +#: InvenTree/serializers.py:445 msgid "Superuser" msgstr "" -#: InvenTree/serializers.py:442 +#: InvenTree/serializers.py:445 msgid "Is this user a superuser" msgstr "" -#: InvenTree/serializers.py:445 common/models.py:2707 company/models.py:163 -#: company/models.py:801 machine/models.py:39 part/admin.py:88 -#: part/models.py:1189 plugin/models.py:66 -#: templates/js/translated/company.js:523 +#: InvenTree/serializers.py:449 common/models.py:2771 company/models.py:160 +#: company/models.py:798 machine/models.py:39 part/admin.py:88 +#: part/models.py:1250 plugin/models.py:66 +#: templates/js/translated/company.js:524 #: templates/js/translated/table_filters.js:134 #: templates/js/translated/table_filters.js:226 #: templates/js/translated/table_filters.js:513 @@ -585,230 +605,229 @@ msgstr "" msgid "Active" msgstr "" -#: InvenTree/serializers.py:445 +#: InvenTree/serializers.py:449 msgid "Is this user account active" msgstr "" -#: InvenTree/serializers.py:463 +#: InvenTree/serializers.py:467 msgid "You do not have permission to change this user role." msgstr "" -#: InvenTree/serializers.py:475 +#: InvenTree/serializers.py:503 msgid "Only superusers can create new users" msgstr "" -#: InvenTree/serializers.py:494 +#: InvenTree/serializers.py:523 msgid "Your account has been created." msgstr "" -#: InvenTree/serializers.py:496 +#: InvenTree/serializers.py:525 msgid "Please use the password reset function to login" msgstr "" -#: InvenTree/serializers.py:503 +#: InvenTree/serializers.py:531 msgid "Welcome to InvenTree" msgstr "" -#: InvenTree/serializers.py:561 +#: InvenTree/serializers.py:594 msgid "Invalid value" msgstr "" -#: InvenTree/serializers.py:581 importer/models.py:63 +#: InvenTree/serializers.py:614 importer/models.py:64 msgid "Data File" msgstr "" -#: InvenTree/serializers.py:582 +#: InvenTree/serializers.py:615 msgid "Select data file for upload" msgstr "" -#: InvenTree/serializers.py:599 -msgid "Unsupported file type" +#: InvenTree/serializers.py:632 common/files.py:63 +msgid "Unsupported file format" msgstr "" -#: InvenTree/serializers.py:605 +#: InvenTree/serializers.py:638 msgid "File is too large" msgstr "" -#: InvenTree/serializers.py:626 +#: InvenTree/serializers.py:659 msgid "No columns found in file" msgstr "" -#: InvenTree/serializers.py:629 +#: InvenTree/serializers.py:662 msgid "No data rows found in file" msgstr "" -#: InvenTree/serializers.py:742 +#: InvenTree/serializers.py:774 msgid "No data rows provided" msgstr "" -#: InvenTree/serializers.py:745 +#: InvenTree/serializers.py:777 msgid "No data columns supplied" msgstr "" -#: InvenTree/serializers.py:812 +#: InvenTree/serializers.py:843 #, python-brace-format msgid "Missing required column: '{name}'" msgstr "" -#: InvenTree/serializers.py:821 +#: InvenTree/serializers.py:852 #, python-brace-format msgid "Duplicate column: '{col}'" msgstr "" -#: InvenTree/serializers.py:861 +#: InvenTree/serializers.py:891 msgid "Remote Image" msgstr "" -#: InvenTree/serializers.py:862 +#: InvenTree/serializers.py:892 msgid "URL of remote image file" msgstr "" -#: InvenTree/serializers.py:880 +#: InvenTree/serializers.py:910 msgid "Downloading images from remote URL is not enabled" msgstr "" -#: InvenTree/status.py:66 part/serializers.py:1246 -msgid "Background worker check failed" -msgstr "" - -#: InvenTree/status.py:70 -msgid "Email backend not configured" -msgstr "" - -#: InvenTree/status.py:73 -msgid "InvenTree system health checks failed" +#: InvenTree/serializers.py:917 +msgid "Failed to download image from remote URL" msgstr "" #: InvenTree/templatetags/inventree_extras.py:184 msgid "Unknown database" msgstr "" -#: InvenTree/validators.py:32 InvenTree/validators.py:34 +#: InvenTree/validators.py:32 msgid "Invalid physical unit" msgstr "" -#: InvenTree/validators.py:40 +#: InvenTree/validators.py:38 msgid "Not a valid currency code" msgstr "" -#: InvenTree/validators.py:118 InvenTree/validators.py:134 +#: InvenTree/validators.py:115 InvenTree/validators.py:131 msgid "Overage value must not be negative" msgstr "" -#: InvenTree/validators.py:136 +#: InvenTree/validators.py:133 msgid "Overage must not exceed 100%" msgstr "" -#: InvenTree/validators.py:142 +#: InvenTree/validators.py:139 msgid "Invalid value for overage" msgstr "" -#: InvenTree/views.py:400 templates/InvenTree/settings/user.html:23 +#: InvenTree/views.py:399 templates/InvenTree/settings/user.html:23 msgid "Edit User Information" msgstr "" -#: InvenTree/views.py:412 templates/InvenTree/settings/user.html:20 +#: InvenTree/views.py:411 templates/InvenTree/settings/user.html:20 msgid "Set Password" msgstr "" -#: InvenTree/views.py:434 +#: InvenTree/views.py:433 msgid "Password fields must match" msgstr "" -#: InvenTree/views.py:442 +#: InvenTree/views.py:441 msgid "Wrong password provided" msgstr "" -#: InvenTree/views.py:650 templates/navbar.html:160 +#: InvenTree/views.py:645 templates/navbar.html:160 msgid "System Information" msgstr "" -#: InvenTree/views.py:657 templates/navbar.html:171 +#: InvenTree/views.py:652 templates/navbar.html:171 msgid "About InvenTree" msgstr "" -#: build/api.py:51 part/api.py:156 stock/api.py:343 -msgid "Cascade" -msgstr "" - -#: build/api.py:64 build/models.py:261 -#: build/templates/build/build_base.html:191 +#: build/api.py:54 build/models.py:262 +#: build/templates/build/build_base.html:192 #: build/templates/build/detail.html:87 msgid "Parent Build" msgstr "" -#: build/api.py:89 order/api.py:92 templates/js/translated/table_filters.js:101 +#: build/api.py:58 build/api.py:625 order/api.py:396 order/api.py:611 +#: order/api.py:990 order/api.py:1187 +#: templates/js/translated/table_filters.js:372 +msgid "Include Variants" +msgstr "" + +#: build/api.py:93 +msgid "Ancestor Build" +msgstr "" + +#: build/api.py:112 order/api.py:90 +#: templates/js/translated/table_filters.js:101 #: templates/js/translated/table_filters.js:549 #: templates/js/translated/table_filters.js:633 #: templates/js/translated/table_filters.js:674 msgid "Assigned to me" msgstr "" -#: build/api.py:106 build/templates/build/build_base.html:205 +#: build/api.py:129 build/templates/build/build_base.html:206 #: build/templates/build/detail.html:115 #: report/templates/report/inventree_build_order_report.html:152 #: templates/js/translated/table_filters.js:552 msgid "Issued By" msgstr "" -#: build/api.py:125 +#: build/api.py:148 msgid "Assigned To" msgstr "" -#: build/api.py:301 +#: build/api.py:310 msgid "Build must be cancelled before it can be deleted" msgstr "" -#: build/api.py:345 build/serializers.py:1288 part/models.py:4265 +#: build/api.py:354 build/serializers.py:1342 part/models.py:4322 #: templates/js/translated/bom.js:997 templates/js/translated/bom.js:1037 -#: templates/js/translated/build.js:2702 +#: templates/js/translated/build.js:2711 #: templates/js/translated/table_filters.js:197 #: templates/js/translated/table_filters.js:586 msgid "Consumable" msgstr "" -#: build/api.py:346 build/serializers.py:1289 part/models.py:4259 +#: build/api.py:355 build/serializers.py:1343 part/models.py:4316 #: part/templates/part/upload_bom.html:58 templates/js/translated/bom.js:1001 -#: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2693 +#: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2702 #: templates/js/translated/table_filters.js:193 #: templates/js/translated/table_filters.js:222 #: templates/js/translated/table_filters.js:590 msgid "Optional" msgstr "" -#: build/api.py:347 common/models.py:1489 part/admin.py:91 part/admin.py:428 -#: part/models.py:1154 part/serializers.py:1575 +#: build/api.py:356 common/models.py:1558 part/admin.py:91 part/admin.py:428 +#: part/models.py:1215 part/serializers.py:1633 #: templates/js/translated/bom.js:1639 #: templates/js/translated/table_filters.js:337 #: templates/js/translated/table_filters.js:729 msgid "Assembly" msgstr "" -#: build/api.py:348 templates/js/translated/table_filters.js:415 +#: build/api.py:357 templates/js/translated/table_filters.js:415 #: templates/js/translated/table_filters.js:582 msgid "Tracked" msgstr "" -#: build/api.py:349 build/serializers.py:1290 part/models.py:1172 +#: build/api.py:358 build/serializers.py:1344 part/models.py:1233 #: templates/js/translated/table_filters.js:146 #: templates/js/translated/table_filters.js:779 msgid "Testable" msgstr "" -#: build/api.py:351 part/admin.py:144 templates/js/translated/build.js:1917 -#: templates/js/translated/build.js:2820 -#: templates/js/translated/sales_order.js:1965 +#: build/api.py:360 order/api.py:779 part/admin.py:144 +#: templates/js/translated/build.js:1920 templates/js/translated/build.js:2838 +#: templates/js/translated/sales_order.js:1946 #: templates/js/translated/table_filters.js:574 msgid "Allocated" msgstr "" -#: build/api.py:359 company/models.py:891 company/serializers.py:395 -#: company/templates/company/supplier_part.html:114 +#: build/api.py:368 company/models.py:888 company/serializers.py:399 +#: company/templates/company/supplier_part.html:115 #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:17 -#: templates/js/translated/bom.js:1162 templates/js/translated/build.js:2752 +#: templates/js/translated/bom.js:1162 templates/js/translated/build.js:2770 #: templates/js/translated/index.js:123 -#: templates/js/translated/model_renderers.js:235 +#: templates/js/translated/model_renderers.js:238 #: templates/js/translated/part.js:695 templates/js/translated/part.js:697 #: templates/js/translated/part.js:702 #: templates/js/translated/table_filters.js:347 @@ -816,16 +835,68 @@ msgstr "" msgid "Available" msgstr "" -#: build/models.py:86 build/templates/build/build_base.html:9 -#: build/templates/build/build_base.html:27 +#: build/api.py:640 build/models.py:268 build/serializers.py:1330 +#: build/templates/build/build_base.html:106 +#: build/templates/build/detail.html:29 company/models.py:1043 order/api.py:775 +#: order/api.py:1003 order/models.py:1519 order/models.py:1674 +#: order/models.py:1675 part/api.py:1495 part/api.py:1802 part/models.py:419 +#: part/models.py:3177 part/models.py:3321 part/models.py:3469 +#: part/models.py:3490 part/models.py:3512 part/models.py:3648 +#: part/models.py:3995 part/models.py:4158 part/models.py:4288 +#: part/models.py:4654 part/serializers.py:1245 part/serializers.py:1898 +#: part/templates/part/part_app_base.html:8 +#: part/templates/part/part_pricing.html:12 +#: part/templates/part/upload_bom.html:52 +#: report/templates/report/inventree_bill_of_materials_report.html:110 +#: report/templates/report/inventree_bill_of_materials_report.html:137 +#: report/templates/report/inventree_build_order_report.html:109 +#: report/templates/report/inventree_purchase_order_report.html:27 +#: report/templates/report/inventree_return_order_report.html:24 +#: report/templates/report/inventree_sales_order_report.html:27 +#: report/templates/report/inventree_sales_order_shipment_report.html:28 +#: report/templates/report/inventree_stock_location_report.html:102 +#: stock/serializers.py:112 stock/serializers.py:160 stock/serializers.py:456 +#: stock/serializers.py:947 templates/InvenTree/search.html:82 +#: templates/email/build_order_completed.html:17 +#: templates/email/build_order_required_stock.html:17 +#: templates/email/low_stock_notification.html:15 +#: templates/email/overdue_build_order.html:16 +#: templates/js/translated/barcode.js:577 templates/js/translated/bom.js:632 +#: templates/js/translated/bom.js:769 templates/js/translated/bom.js:905 +#: templates/js/translated/build.js:1005 templates/js/translated/build.js:1488 +#: templates/js/translated/build.js:1919 templates/js/translated/build.js:2337 +#: templates/js/translated/build.js:2514 templates/js/translated/company.js:349 +#: templates/js/translated/company.js:1117 +#: templates/js/translated/company.js:1272 +#: templates/js/translated/company.js:1560 templates/js/translated/index.js:109 +#: templates/js/translated/part.js:1950 templates/js/translated/part.js:2022 +#: templates/js/translated/part.js:2330 templates/js/translated/pricing.js:369 +#: templates/js/translated/purchase_order.js:734 +#: templates/js/translated/purchase_order.js:1350 +#: templates/js/translated/purchase_order.js:1902 +#: templates/js/translated/purchase_order.js:2061 +#: templates/js/translated/return_order.js:538 +#: templates/js/translated/return_order.js:708 +#: templates/js/translated/sales_order.js:1199 +#: templates/js/translated/sales_order.js:1608 +#: templates/js/translated/sales_order.js:1813 +#: templates/js/translated/stock.js:682 templates/js/translated/stock.js:848 +#: templates/js/translated/stock.js:1065 templates/js/translated/stock.js:2083 +#: templates/js/translated/stock.js:2942 templates/js/translated/stock.js:3175 +#: templates/js/translated/stock.js:3320 +msgid "Part" +msgstr "" + +#: build/api.py:662 build/models.py:88 build/templates/build/build_base.html:10 +#: build/templates/build/build_base.html:28 #: report/templates/report/inventree_build_order_report.html:105 -#: stock/serializers.py:84 templates/email/build_order_completed.html:16 +#: stock/serializers.py:85 templates/email/build_order_completed.html:16 #: templates/email/overdue_build_order.html:15 -#: templates/js/translated/build.js:1145 templates/js/translated/stock.js:2976 +#: templates/js/translated/build.js:1148 templates/js/translated/stock.js:2977 msgid "Build Order" msgstr "" -#: build/models.py:87 build/templates/build/build_base.html:13 +#: build/models.py:89 build/templates/build/build_base.html:14 #: build/templates/build/index.html:8 build/templates/build/index.html:12 #: order/templates/order/sales_order_detail.html:111 #: order/templates/order/so_sidebar.html:13 @@ -836,268 +907,216 @@ msgstr "" msgid "Build Orders" msgstr "" -#: build/models.py:135 +#: build/models.py:136 msgid "Assembly BOM has not been validated" msgstr "" -#: build/models.py:142 +#: build/models.py:143 msgid "Build order cannot be created for an inactive part" msgstr "" -#: build/models.py:149 +#: build/models.py:150 msgid "Build order cannot be created for an unlocked part" msgstr "" -#: build/models.py:163 +#: build/models.py:164 msgid "Invalid choice for parent build" msgstr "" -#: build/models.py:174 order/models.py:239 +#: build/models.py:175 order/models.py:236 msgid "Responsible user or group must be specified" msgstr "" -#: build/models.py:180 +#: build/models.py:181 msgid "Build order part cannot be changed" msgstr "" -#: build/models.py:241 +#: build/models.py:242 msgid "Build Order Reference" msgstr "" -#: build/models.py:242 build/serializers.py:1287 order/models.py:467 -#: order/models.py:978 order/models.py:1373 order/models.py:2135 -#: part/admin.py:414 part/models.py:4280 part/templates/part/upload_bom.html:54 +#: build/models.py:243 build/serializers.py:1341 order/models.py:479 +#: order/models.py:1005 order/models.py:1390 order/models.py:2174 +#: part/admin.py:414 part/models.py:4337 part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_bill_of_materials_report.html:139 #: report/templates/report/inventree_purchase_order_report.html:28 #: report/templates/report/inventree_return_order_report.html:26 #: report/templates/report/inventree_sales_order_report.html:28 #: templates/js/translated/bom.js:770 templates/js/translated/bom.js:973 -#: templates/js/translated/build.js:1011 templates/js/translated/build.js:2685 +#: templates/js/translated/build.js:1014 templates/js/translated/build.js:2694 #: templates/js/translated/order.js:316 templates/js/translated/pricing.js:386 -#: templates/js/translated/purchase_order.js:2135 +#: templates/js/translated/purchase_order.js:2119 #: templates/js/translated/return_order.js:727 -#: templates/js/translated/sales_order.js:1854 +#: templates/js/translated/sales_order.js:1835 msgid "Reference" msgstr "" -#: build/models.py:253 +#: build/models.py:254 msgid "Brief description of the build (optional)" msgstr "" -#: build/models.py:262 +#: build/models.py:263 msgid "BuildOrder to which this build is allocated" msgstr "" -#: build/models.py:267 build/serializers.py:1278 -#: build/templates/build/build_base.html:105 -#: build/templates/build/detail.html:29 company/models.py:1046 order/api.py:767 -#: order/models.py:1503 order/models.py:1658 order/models.py:1659 -#: part/api.py:1509 part/api.py:1813 part/models.py:424 part/models.py:3126 -#: part/models.py:3270 part/models.py:3418 part/models.py:3439 -#: part/models.py:3461 part/models.py:3597 part/models.py:3937 -#: part/models.py:4100 part/models.py:4231 part/models.py:4592 -#: part/serializers.py:1192 part/serializers.py:1836 -#: part/templates/part/part_app_base.html:8 -#: part/templates/part/part_pricing.html:12 -#: part/templates/part/upload_bom.html:52 -#: report/templates/report/inventree_bill_of_materials_report.html:110 -#: report/templates/report/inventree_bill_of_materials_report.html:137 -#: report/templates/report/inventree_build_order_report.html:109 -#: report/templates/report/inventree_purchase_order_report.html:27 -#: report/templates/report/inventree_return_order_report.html:24 -#: report/templates/report/inventree_sales_order_report.html:27 -#: report/templates/report/inventree_stock_location_report.html:102 -#: stock/serializers.py:111 stock/serializers.py:159 stock/serializers.py:446 -#: stock/serializers.py:916 templates/InvenTree/search.html:82 -#: templates/email/build_order_completed.html:17 -#: templates/email/build_order_required_stock.html:17 -#: templates/email/low_stock_notification.html:15 -#: templates/email/overdue_build_order.html:16 -#: templates/js/translated/barcode.js:577 templates/js/translated/bom.js:632 -#: templates/js/translated/bom.js:769 templates/js/translated/bom.js:905 -#: templates/js/translated/build.js:1002 templates/js/translated/build.js:1485 -#: templates/js/translated/build.js:1916 templates/js/translated/build.js:2334 -#: templates/js/translated/build.js:2507 templates/js/translated/company.js:348 -#: templates/js/translated/company.js:1116 -#: templates/js/translated/company.js:1271 -#: templates/js/translated/company.js:1559 templates/js/translated/index.js:109 -#: templates/js/translated/part.js:1950 templates/js/translated/part.js:2022 -#: templates/js/translated/part.js:2330 templates/js/translated/pricing.js:369 -#: templates/js/translated/purchase_order.js:751 -#: templates/js/translated/purchase_order.js:1367 -#: templates/js/translated/purchase_order.js:1918 -#: templates/js/translated/purchase_order.js:2077 -#: templates/js/translated/return_order.js:538 -#: templates/js/translated/return_order.js:708 -#: templates/js/translated/sales_order.js:300 -#: templates/js/translated/sales_order.js:1233 -#: templates/js/translated/sales_order.js:1634 -#: templates/js/translated/sales_order.js:1832 -#: templates/js/translated/stock.js:682 templates/js/translated/stock.js:848 -#: templates/js/translated/stock.js:1065 templates/js/translated/stock.js:2082 -#: templates/js/translated/stock.js:2941 templates/js/translated/stock.js:3174 -#: templates/js/translated/stock.js:3319 -msgid "Part" -msgstr "" - -#: build/models.py:275 +#: build/models.py:274 msgid "Select part to build" msgstr "" -#: build/models.py:280 +#: build/models.py:279 msgid "Sales Order Reference" msgstr "" -#: build/models.py:284 +#: build/models.py:283 msgid "SalesOrder to which this build is allocated" msgstr "" -#: build/models.py:289 build/serializers.py:1048 -#: templates/js/translated/build.js:1904 -#: templates/js/translated/sales_order.js:1221 +#: build/models.py:288 build/serializers.py:1092 +#: templates/js/translated/build.js:1907 +#: templates/js/translated/sales_order.js:1187 msgid "Source Location" msgstr "" -#: build/models.py:293 +#: build/models.py:292 msgid "Select location to take stock from for this build (leave blank to take from any stock location)" msgstr "" -#: build/models.py:298 +#: build/models.py:297 msgid "Destination Location" msgstr "" -#: build/models.py:302 +#: build/models.py:301 msgid "Select location where the completed items will be stored" msgstr "" -#: build/models.py:306 +#: build/models.py:305 msgid "Build Quantity" msgstr "" -#: build/models.py:309 +#: build/models.py:308 msgid "Number of stock items to build" msgstr "" -#: build/models.py:313 +#: build/models.py:312 msgid "Completed items" msgstr "" -#: build/models.py:315 +#: build/models.py:314 msgid "Number of stock items which have been completed" msgstr "" -#: build/models.py:319 +#: build/models.py:318 msgid "Build Status" msgstr "" -#: build/models.py:323 +#: build/models.py:322 msgid "Build status code" msgstr "" -#: build/models.py:332 build/serializers.py:302 build/serializers.py:1198 -#: order/serializers.py:670 stock/models.py:859 stock/serializers.py:76 -#: stock/serializers.py:1562 templates/js/translated/purchase_order.js:1129 +#: build/models.py:331 build/serializers.py:349 build/serializers.py:1243 +#: order/serializers.py:755 stock/models.py:936 stock/serializers.py:77 +#: stock/serializers.py:1593 templates/js/translated/purchase_order.js:1112 #: templates/js/translated/stock.js:1199 msgid "Batch Code" msgstr "" -#: build/models.py:336 build/serializers.py:303 +#: build/models.py:335 build/serializers.py:350 msgid "Batch code for this build output" msgstr "" -#: build/models.py:339 order/models.py:315 order/serializers.py:126 -#: part/models.py:1229 part/templates/part/part_base.html:319 +#: build/models.py:338 order/models.py:322 order/serializers.py:157 +#: part/models.py:1290 part/templates/part/part_base.html:327 #: templates/js/translated/return_order.js:338 -#: templates/js/translated/sales_order.js:863 +#: templates/js/translated/sales_order.js:822 msgid "Creation Date" msgstr "" -#: build/models.py:343 +#: build/models.py:342 msgid "Target completion date" msgstr "" -#: build/models.py:344 +#: build/models.py:343 msgid "Target date for build completion. Build will be overdue after this date." msgstr "" -#: build/models.py:347 order/models.py:526 order/models.py:2180 -#: templates/js/translated/build.js:2419 +#: build/models.py:346 order/models.py:538 order/models.py:2219 +#: templates/js/translated/build.js:2422 msgid "Completion Date" msgstr "" -#: build/models.py:353 +#: build/models.py:352 msgid "completed by" msgstr "" -#: build/models.py:361 templates/js/translated/build.js:2379 +#: build/models.py:360 templates/js/translated/build.js:2382 msgid "Issued by" msgstr "" -#: build/models.py:362 +#: build/models.py:361 msgid "User who issued this build order" msgstr "" -#: build/models.py:370 build/templates/build/build_base.html:212 -#: build/templates/build/detail.html:122 common/models.py:165 order/api.py:142 -#: order/models.py:333 order/templates/order/order_base.html:222 -#: order/templates/order/return_order_base.html:191 -#: order/templates/order/sales_order_base.html:235 part/models.py:1246 -#: part/templates/part/part_base.html:399 +#: build/models.py:369 build/templates/build/build_base.html:213 +#: build/templates/build/detail.html:122 common/models.py:168 order/api.py:140 +#: order/models.py:340 order/templates/order/order_base.html:231 +#: order/templates/order/return_order_base.html:192 +#: order/templates/order/sales_order_base.html:236 part/models.py:1307 +#: part/templates/part/part_base.html:407 #: report/templates/report/inventree_build_order_report.html:158 #: templates/InvenTree/settings/settings_staff_js.html:150 -#: templates/js/translated/build.js:2391 -#: templates/js/translated/purchase_order.js:1833 +#: templates/js/translated/build.js:2394 +#: templates/js/translated/purchase_order.js:1817 #: templates/js/translated/return_order.js:358 #: templates/js/translated/table_filters.js:551 msgid "Responsible" msgstr "" -#: build/models.py:371 +#: build/models.py:370 msgid "User or group responsible for this build order" msgstr "" -#: build/models.py:376 build/templates/build/detail.html:108 +#: build/models.py:375 build/templates/build/detail.html:108 #: company/templates/company/manufacturer_part.html:107 -#: company/templates/company/supplier_part.html:194 -#: order/templates/order/order_base.html:172 -#: order/templates/order/return_order_base.html:148 -#: order/templates/order/sales_order_base.html:187 -#: part/templates/part/part_base.html:392 stock/models.py:855 -#: stock/templates/stock/item_base.html:200 -#: templates/js/translated/company.js:1019 +#: company/templates/company/supplier_part.html:195 +#: order/templates/order/order_base.html:181 +#: order/templates/order/return_order_base.html:149 +#: order/templates/order/sales_order_base.html:188 +#: part/templates/part/part_base.html:400 stock/models.py:932 +#: stock/templates/stock/item_base.html:197 +#: templates/js/translated/company.js:1020 msgid "External Link" msgstr "" -#: build/models.py:377 common/models.py:3273 part/models.py:1058 -#: stock/models.py:855 +#: build/models.py:376 common/models.py:3334 part/models.py:1119 +#: stock/models.py:932 msgid "Link to external URL" msgstr "" -#: build/models.py:381 +#: build/models.py:380 msgid "Build Priority" msgstr "" -#: build/models.py:384 +#: build/models.py:383 msgid "Priority of this build order" msgstr "" -#: build/models.py:391 common/models.py:135 common/models.py:149 -#: order/admin.py:18 order/api.py:128 order/models.py:297 +#: build/models.py:390 common/models.py:138 common/models.py:152 +#: order/admin.py:18 order/api.py:126 order/models.py:304 #: templates/InvenTree/settings/settings_staff_js.html:146 -#: templates/js/translated/build.js:2316 -#: templates/js/translated/purchase_order.js:1780 +#: templates/js/translated/build.js:2319 +#: templates/js/translated/purchase_order.js:1764 #: templates/js/translated/return_order.js:317 -#: templates/js/translated/sales_order.js:842 +#: templates/js/translated/sales_order.js:801 #: templates/js/translated/table_filters.js:47 #: templates/project_code_data.html:6 msgid "Project Code" msgstr "" -#: build/models.py:392 +#: build/models.py:391 msgid "Project code for this build order" msgstr "" -#: build/models.py:651 build/models.py:778 +#: build/models.py:651 build/models.py:779 msgid "Failed to offload task to complete build allocations" msgstr "" @@ -1110,610 +1129,619 @@ msgstr "" msgid "A build order has been completed" msgstr "" -#: build/models.py:967 build/models.py:1055 +#: build/models.py:858 build/serializers.py:393 +msgid "Serial numbers must be provided for trackable parts" +msgstr "" + +#: build/models.py:969 build/models.py:1058 msgid "No build output specified" msgstr "" -#: build/models.py:970 +#: build/models.py:972 msgid "Build output is already completed" msgstr "" -#: build/models.py:973 +#: build/models.py:975 msgid "Build output does not match Build Order" msgstr "" -#: build/models.py:1059 build/serializers.py:235 build/serializers.py:284 -#: build/serializers.py:915 order/models.py:564 order/serializers.py:499 -#: order/serializers.py:665 part/serializers.py:1569 part/serializers.py:1999 -#: stock/models.py:700 stock/models.py:1520 stock/serializers.py:669 +#: build/models.py:1062 build/serializers.py:282 build/serializers.py:331 +#: build/serializers.py:959 order/models.py:586 order/serializers.py:584 +#: order/serializers.py:750 part/serializers.py:1627 part/serializers.py:2060 +#: stock/models.py:777 stock/models.py:1609 stock/serializers.py:696 msgid "Quantity must be greater than zero" msgstr "" -#: build/models.py:1064 build/serializers.py:240 +#: build/models.py:1067 build/serializers.py:287 msgid "Quantity cannot be greater than the output quantity" msgstr "" -#: build/models.py:1124 build/serializers.py:563 +#: build/models.py:1127 build/serializers.py:607 #, python-brace-format msgid "Build output {serial} has not passed all required tests" msgstr "" -#: build/models.py:1465 +#: build/models.py:1482 msgid "Build Order Line Item" msgstr "" -#: build/models.py:1490 +#: build/models.py:1507 msgid "Build object" msgstr "" -#: build/models.py:1504 build/models.py:1760 build/serializers.py:222 -#: build/serializers.py:269 build/serializers.py:1295 -#: build/templates/build/build_base.html:110 -#: build/templates/build/detail.html:34 common/models.py:2579 -#: order/models.py:1356 order/models.py:2041 order/serializers.py:1460 +#: build/models.py:1521 build/models.py:1787 build/serializers.py:269 +#: build/serializers.py:316 build/serializers.py:1349 +#: build/templates/build/build_base.html:111 +#: build/templates/build/detail.html:34 common/models.py:2643 +#: order/models.py:1373 order/models.py:2074 order/serializers.py:1586 #: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:413 -#: part/forms.py:48 part/models.py:3284 part/models.py:4253 -#: part/templates/part/part_pricing.html:16 +#: part/forms.py:48 part/models.py:3335 part/models.py:4310 +#: part/serializers.py:265 part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_bill_of_materials_report.html:138 #: report/templates/report/inventree_build_order_report.html:113 #: report/templates/report/inventree_purchase_order_report.html:29 #: report/templates/report/inventree_sales_order_report.html:29 +#: report/templates/report/inventree_sales_order_shipment_report.html:47 +#: report/templates/report/inventree_sales_order_shipment_report.html:49 #: report/templates/report/inventree_stock_location_report.html:104 #: report/templates/report/inventree_test_report.html:90 -#: report/templates/report/inventree_test_report.html:169 stock/admin.py:159 -#: stock/serializers.py:127 stock/serializers.py:167 stock/serializers.py:660 -#: stock/templates/stock/item_base.html:287 -#: stock/templates/stock/item_base.html:295 -#: stock/templates/stock/item_base.html:342 +#: report/templates/report/inventree_test_report.html:169 stock/admin.py:160 +#: stock/serializers.py:128 stock/serializers.py:168 stock/serializers.py:687 +#: stock/templates/stock/item_base.html:284 +#: stock/templates/stock/item_base.html:292 +#: stock/templates/stock/item_base.html:339 #: templates/email/build_order_completed.html:18 #: templates/js/translated/barcode.js:579 templates/js/translated/bom.js:771 -#: templates/js/translated/bom.js:981 templates/js/translated/build.js:522 -#: templates/js/translated/build.js:737 templates/js/translated/build.js:1542 -#: templates/js/translated/build.js:1919 templates/js/translated/build.js:2529 -#: templates/js/translated/company.js:1818 -#: templates/js/translated/model_renderers.js:237 +#: templates/js/translated/bom.js:981 templates/js/translated/build.js:525 +#: templates/js/translated/build.js:740 templates/js/translated/build.js:1545 +#: templates/js/translated/build.js:1922 templates/js/translated/build.js:2536 +#: templates/js/translated/company.js:1819 +#: templates/js/translated/model_renderers.js:240 #: templates/js/translated/order.js:329 templates/js/translated/part.js:968 -#: templates/js/translated/part.js:1818 templates/js/translated/part.js:3360 +#: templates/js/translated/part.js:1818 templates/js/translated/part.js:3376 #: templates/js/translated/pricing.js:381 #: templates/js/translated/pricing.js:474 #: templates/js/translated/pricing.js:522 #: templates/js/translated/pricing.js:616 -#: templates/js/translated/purchase_order.js:754 -#: templates/js/translated/purchase_order.js:1922 -#: templates/js/translated/purchase_order.js:2141 -#: templates/js/translated/sales_order.js:317 -#: templates/js/translated/sales_order.js:1235 -#: templates/js/translated/sales_order.js:1554 -#: templates/js/translated/sales_order.js:1644 -#: templates/js/translated/sales_order.js:1734 -#: templates/js/translated/sales_order.js:1860 +#: templates/js/translated/purchase_order.js:737 +#: templates/js/translated/purchase_order.js:1906 +#: templates/js/translated/purchase_order.js:2125 +#: templates/js/translated/sales_order.js:1201 +#: templates/js/translated/sales_order.js:1520 +#: templates/js/translated/sales_order.js:1625 +#: templates/js/translated/sales_order.js:1715 +#: templates/js/translated/sales_order.js:1841 #: templates/js/translated/stock.js:570 templates/js/translated/stock.js:708 -#: templates/js/translated/stock.js:879 templates/js/translated/stock.js:3105 -#: templates/js/translated/stock.js:3188 +#: templates/js/translated/stock.js:879 templates/js/translated/stock.js:3106 +#: templates/js/translated/stock.js:3189 msgid "Quantity" msgstr "" -#: build/models.py:1505 +#: build/models.py:1522 msgid "Required quantity for build order" msgstr "" -#: build/models.py:1585 +#: build/models.py:1602 msgid "Build item must specify a build output, as master part is marked as trackable" msgstr "" -#: build/models.py:1594 +#: build/models.py:1611 #, python-brace-format msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgstr "" -#: build/models.py:1604 order/models.py:1992 +#: build/models.py:1628 order/models.py:2025 msgid "Stock item is over-allocated" msgstr "" -#: build/models.py:1610 order/models.py:1995 +#: build/models.py:1634 order/models.py:2028 msgid "Allocation quantity must be greater than zero" msgstr "" -#: build/models.py:1616 +#: build/models.py:1640 msgid "Quantity must be 1 for serialized stock" msgstr "" -#: build/models.py:1675 +#: build/models.py:1699 msgid "Selected stock item does not match BOM line" msgstr "" -#: build/models.py:1747 build/serializers.py:895 order/serializers.py:1297 -#: order/serializers.py:1318 stock/models.py:376 stock/serializers.py:93 -#: stock/serializers.py:763 stock/serializers.py:1281 stock/serializers.py:1393 -#: stock/templates/stock/item_base.html:10 -#: stock/templates/stock/item_base.html:23 -#: stock/templates/stock/item_base.html:194 -#: templates/js/translated/build.js:1918 -#: templates/js/translated/sales_order.js:301 -#: templates/js/translated/sales_order.js:1234 -#: templates/js/translated/sales_order.js:1535 -#: templates/js/translated/sales_order.js:1540 -#: templates/js/translated/sales_order.js:1641 -#: templates/js/translated/sales_order.js:1728 +#: build/models.py:1774 build/serializers.py:939 order/serializers.py:1423 +#: order/serializers.py:1444 +#: report/templates/report/inventree_sales_order_shipment_report.html:29 +#: stock/models.py:382 stock/serializers.py:94 stock/serializers.py:794 +#: stock/serializers.py:1312 stock/serializers.py:1424 +#: stock/templates/stock/item_base.html:11 +#: stock/templates/stock/item_base.html:24 +#: stock/templates/stock/item_base.html:191 +#: templates/js/translated/build.js:1921 +#: templates/js/translated/sales_order.js:1200 +#: templates/js/translated/sales_order.js:1501 +#: templates/js/translated/sales_order.js:1506 +#: templates/js/translated/sales_order.js:1622 +#: templates/js/translated/sales_order.js:1709 #: templates/js/translated/stock.js:683 templates/js/translated/stock.js:849 -#: templates/js/translated/stock.js:3061 +#: templates/js/translated/stock.js:3062 msgid "Stock Item" msgstr "" -#: build/models.py:1748 +#: build/models.py:1775 msgid "Source stock item" msgstr "" -#: build/models.py:1761 +#: build/models.py:1788 msgid "Stock quantity to allocate to build" msgstr "" -#: build/models.py:1769 +#: build/models.py:1796 msgid "Install into" msgstr "" -#: build/models.py:1770 +#: build/models.py:1797 msgid "Destination stock item" msgstr "" -#: build/serializers.py:91 +#: build/serializers.py:108 msgid "Build Level" msgstr "" -#: build/serializers.py:99 build/serializers.py:1190 build/serializers.py:1279 -#: part/admin.py:41 part/admin.py:408 part/models.py:4102 part/stocktake.py:219 -#: stock/admin.py:156 +#: build/serializers.py:116 build/serializers.py:1235 build/serializers.py:1331 +#: part/admin.py:41 part/admin.py:408 part/models.py:4160 part/stocktake.py:219 +#: stock/admin.py:157 msgid "Part Name" msgstr "" -#: build/serializers.py:111 +#: build/serializers.py:128 msgid "Project Code Label" msgstr "" -#: build/serializers.py:172 build/serializers.py:924 -#: templates/js/translated/build.js:1042 templates/js/translated/build.js:1495 +#: build/serializers.py:134 +msgid "Create Child Builds" +msgstr "" + +#: build/serializers.py:135 +msgid "Automatically generate child build orders" +msgstr "" + +#: build/serializers.py:219 build/serializers.py:968 +#: templates/js/translated/build.js:1045 templates/js/translated/build.js:1498 msgid "Build Output" msgstr "" -#: build/serializers.py:184 +#: build/serializers.py:231 msgid "Build output does not match the parent build" msgstr "" -#: build/serializers.py:188 +#: build/serializers.py:235 msgid "Output part does not match BuildOrder part" msgstr "" -#: build/serializers.py:192 +#: build/serializers.py:239 msgid "This build output has already been completed" msgstr "" -#: build/serializers.py:203 +#: build/serializers.py:250 msgid "This build output is not fully allocated" msgstr "" -#: build/serializers.py:223 build/serializers.py:270 +#: build/serializers.py:270 build/serializers.py:317 msgid "Enter quantity for build output" msgstr "" -#: build/serializers.py:291 +#: build/serializers.py:338 msgid "Integer quantity required for trackable parts" msgstr "" -#: build/serializers.py:294 +#: build/serializers.py:341 msgid "Integer quantity required, as the bill of materials contains trackable parts" msgstr "" -#: build/serializers.py:309 order/serializers.py:678 order/serializers.py:1464 -#: stock/serializers.py:680 templates/js/translated/purchase_order.js:1154 +#: build/serializers.py:356 order/serializers.py:763 order/serializers.py:1590 +#: stock/serializers.py:707 templates/js/translated/purchase_order.js:1137 #: templates/js/translated/stock.js:373 templates/js/translated/stock.js:571 msgid "Serial Numbers" msgstr "" -#: build/serializers.py:310 +#: build/serializers.py:357 msgid "Enter serial numbers for build outputs" msgstr "" -#: build/serializers.py:315 build/serializers.py:456 build/serializers.py:528 -#: order/serializers.py:654 order/serializers.py:778 order/serializers.py:1781 -#: part/serializers.py:1212 stock/serializers.py:102 stock/serializers.py:691 -#: stock/serializers.py:851 stock/serializers.py:977 stock/serializers.py:1425 -#: stock/serializers.py:1681 stock/templates/stock/item_base.html:394 +#: build/serializers.py:362 build/serializers.py:500 build/serializers.py:572 +#: order/serializers.py:739 order/serializers.py:880 order/serializers.py:1933 +#: part/serializers.py:1265 stock/serializers.py:103 stock/serializers.py:718 +#: stock/serializers.py:882 stock/serializers.py:1008 stock/serializers.py:1456 +#: stock/serializers.py:1712 stock/templates/stock/item_base.html:391 #: templates/js/translated/barcode.js:578 -#: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1032 -#: templates/js/translated/build.js:1174 templates/js/translated/build.js:2544 -#: templates/js/translated/purchase_order.js:1210 -#: templates/js/translated/purchase_order.js:1320 -#: templates/js/translated/sales_order.js:1547 -#: templates/js/translated/sales_order.js:1655 -#: templates/js/translated/sales_order.js:1663 -#: templates/js/translated/sales_order.js:1742 +#: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1035 +#: templates/js/translated/build.js:1177 templates/js/translated/build.js:2551 +#: templates/js/translated/purchase_order.js:1193 +#: templates/js/translated/purchase_order.js:1303 +#: templates/js/translated/sales_order.js:1513 +#: templates/js/translated/sales_order.js:1636 +#: templates/js/translated/sales_order.js:1644 +#: templates/js/translated/sales_order.js:1723 #: templates/js/translated/stock.js:684 templates/js/translated/stock.js:850 -#: templates/js/translated/stock.js:1067 templates/js/translated/stock.js:2286 -#: templates/js/translated/stock.js:2955 +#: templates/js/translated/stock.js:1067 templates/js/translated/stock.js:2287 +#: templates/js/translated/stock.js:2956 msgid "Location" msgstr "" -#: build/serializers.py:316 +#: build/serializers.py:363 msgid "Stock location for build output" msgstr "" -#: build/serializers.py:330 +#: build/serializers.py:377 msgid "Auto Allocate Serial Numbers" msgstr "" -#: build/serializers.py:331 +#: build/serializers.py:378 msgid "Automatically allocate required items with matching serial numbers" msgstr "" -#: build/serializers.py:346 -msgid "Serial numbers must be provided for trackable parts" -msgstr "" - -#: build/serializers.py:371 stock/api.py:1031 +#: build/serializers.py:415 order/serializers.py:858 stock/api.py:1017 +#: stock/models.py:1632 msgid "The following serial numbers already exist or are invalid" msgstr "" -#: build/serializers.py:418 build/serializers.py:480 build/serializers.py:569 +#: build/serializers.py:462 build/serializers.py:524 build/serializers.py:613 msgid "A list of build outputs must be provided" msgstr "" -#: build/serializers.py:457 +#: build/serializers.py:501 msgid "Stock location for scrapped outputs" msgstr "" -#: build/serializers.py:463 +#: build/serializers.py:507 msgid "Discard Allocations" msgstr "" -#: build/serializers.py:464 +#: build/serializers.py:508 msgid "Discard any stock allocations for scrapped outputs" msgstr "" -#: build/serializers.py:469 +#: build/serializers.py:513 msgid "Reason for scrapping build output(s)" msgstr "" -#: build/serializers.py:529 +#: build/serializers.py:573 msgid "Location for completed build outputs" msgstr "" -#: build/serializers.py:535 build/templates/build/build_base.html:159 -#: build/templates/build/detail.html:62 order/models.py:476 -#: order/models.py:1002 order/models.py:2159 order/serializers.py:686 -#: stock/admin.py:164 stock/serializers.py:1028 stock/serializers.py:1569 -#: stock/templates/stock/item_base.html:427 -#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2363 -#: templates/js/translated/purchase_order.js:1371 -#: templates/js/translated/purchase_order.js:1792 +#: build/serializers.py:579 build/templates/build/build_base.html:160 +#: build/templates/build/detail.html:62 order/models.py:488 +#: order/models.py:1029 order/models.py:2198 order/serializers.py:771 +#: stock/admin.py:165 stock/serializers.py:581 stock/serializers.py:1059 +#: stock/serializers.py:1600 stock/templates/stock/item_base.html:424 +#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2366 +#: templates/js/translated/purchase_order.js:1354 +#: templates/js/translated/purchase_order.js:1776 #: templates/js/translated/return_order.js:330 -#: templates/js/translated/sales_order.js:855 -#: templates/js/translated/stock.js:2261 templates/js/translated/stock.js:3079 -#: templates/js/translated/stock.js:3204 +#: templates/js/translated/sales_order.js:814 +#: templates/js/translated/stock.js:2262 templates/js/translated/stock.js:3080 +#: templates/js/translated/stock.js:3205 msgid "Status" msgstr "" -#: build/serializers.py:541 +#: build/serializers.py:585 msgid "Accept Incomplete Allocation" msgstr "" -#: build/serializers.py:542 +#: build/serializers.py:586 msgid "Complete outputs if stock has not been fully allocated" msgstr "" -#: build/serializers.py:654 +#: build/serializers.py:698 msgid "Consume Allocated Stock" msgstr "" -#: build/serializers.py:655 +#: build/serializers.py:699 msgid "Consume any stock which has already been allocated to this build" msgstr "" -#: build/serializers.py:661 +#: build/serializers.py:705 msgid "Remove Incomplete Outputs" msgstr "" -#: build/serializers.py:662 +#: build/serializers.py:706 msgid "Delete any build outputs which have not been completed" msgstr "" -#: build/serializers.py:689 +#: build/serializers.py:733 msgid "Not permitted" msgstr "" -#: build/serializers.py:690 +#: build/serializers.py:734 msgid "Accept as consumed by this build order" msgstr "" -#: build/serializers.py:691 +#: build/serializers.py:735 msgid "Deallocate before completing this build order" msgstr "" -#: build/serializers.py:721 +#: build/serializers.py:765 msgid "Overallocated Stock" msgstr "" -#: build/serializers.py:723 +#: build/serializers.py:767 msgid "How do you want to handle extra stock items assigned to the build order" msgstr "" -#: build/serializers.py:733 +#: build/serializers.py:777 msgid "Some stock items have been overallocated" msgstr "" -#: build/serializers.py:738 +#: build/serializers.py:782 msgid "Accept Unallocated" msgstr "" -#: build/serializers.py:739 +#: build/serializers.py:783 msgid "Accept that stock items have not been fully allocated to this build order" msgstr "" -#: build/serializers.py:749 templates/js/translated/build.js:316 +#: build/serializers.py:793 templates/js/translated/build.js:319 msgid "Required stock has not been fully allocated" msgstr "" -#: build/serializers.py:754 order/serializers.py:345 order/serializers.py:1365 +#: build/serializers.py:798 order/serializers.py:430 order/serializers.py:1491 msgid "Accept Incomplete" msgstr "" -#: build/serializers.py:755 +#: build/serializers.py:799 msgid "Accept that the required number of build outputs have not been completed" msgstr "" -#: build/serializers.py:765 templates/js/translated/build.js:320 +#: build/serializers.py:809 templates/js/translated/build.js:323 msgid "Required build quantity has not been completed" msgstr "" -#: build/serializers.py:774 +#: build/serializers.py:818 msgid "Build order has open child build orders" msgstr "" -#: build/serializers.py:777 +#: build/serializers.py:821 msgid "Build order must be in production state" msgstr "" -#: build/serializers.py:780 templates/js/translated/build.js:304 +#: build/serializers.py:824 templates/js/translated/build.js:307 msgid "Build order has incomplete outputs" msgstr "" -#: build/serializers.py:818 +#: build/serializers.py:862 msgid "Build Line" msgstr "" -#: build/serializers.py:828 +#: build/serializers.py:872 msgid "Build output" msgstr "" -#: build/serializers.py:836 +#: build/serializers.py:880 msgid "Build output must point to the same build" msgstr "" -#: build/serializers.py:872 +#: build/serializers.py:916 msgid "Build Line Item" msgstr "" -#: build/serializers.py:886 +#: build/serializers.py:930 msgid "bom_item.part must point to the same part as the build order" msgstr "" -#: build/serializers.py:901 stock/serializers.py:1294 +#: build/serializers.py:945 stock/serializers.py:1325 msgid "Item must be in stock" msgstr "" -#: build/serializers.py:949 order/serializers.py:1351 +#: build/serializers.py:993 order/serializers.py:1477 #, python-brace-format msgid "Available quantity ({q}) exceeded" msgstr "" -#: build/serializers.py:955 +#: build/serializers.py:999 msgid "Build output must be specified for allocation of tracked parts" msgstr "" -#: build/serializers.py:962 +#: build/serializers.py:1006 msgid "Build output cannot be specified for allocation of untracked parts" msgstr "" -#: build/serializers.py:986 order/serializers.py:1610 +#: build/serializers.py:1030 order/serializers.py:1750 msgid "Allocation items must be provided" msgstr "" -#: build/serializers.py:1049 +#: build/serializers.py:1093 msgid "Stock location where parts are to be sourced (leave blank to take from any location)" msgstr "" -#: build/serializers.py:1057 +#: build/serializers.py:1101 msgid "Exclude Location" msgstr "" -#: build/serializers.py:1058 +#: build/serializers.py:1102 msgid "Exclude stock items from this selected location" msgstr "" -#: build/serializers.py:1063 +#: build/serializers.py:1107 msgid "Interchangeable Stock" msgstr "" -#: build/serializers.py:1064 +#: build/serializers.py:1108 msgid "Stock items in multiple locations can be used interchangeably" msgstr "" -#: build/serializers.py:1069 +#: build/serializers.py:1113 msgid "Substitute Stock" msgstr "" -#: build/serializers.py:1070 +#: build/serializers.py:1114 msgid "Allow allocation of substitute parts" msgstr "" -#: build/serializers.py:1075 +#: build/serializers.py:1119 msgid "Optional Items" msgstr "" -#: build/serializers.py:1076 +#: build/serializers.py:1120 msgid "Allocate optional BOM items to build order" msgstr "" -#: build/serializers.py:1098 +#: build/serializers.py:1143 msgid "Failed to start auto-allocation task" msgstr "" -#: build/serializers.py:1181 +#: build/serializers.py:1226 stock/serializers.py:585 msgid "Supplier Part Number" msgstr "" -#: build/serializers.py:1182 company/models.py:506 +#: build/serializers.py:1227 company/models.py:503 stock/serializers.py:591 msgid "Manufacturer Part Number" msgstr "" -#: build/serializers.py:1183 stock/admin.py:53 stock/admin.py:175 -#: stock/serializers.py:457 +#: build/serializers.py:1228 stock/admin.py:53 stock/admin.py:176 +#: stock/serializers.py:467 msgid "Location Name" msgstr "" -#: build/serializers.py:1184 +#: build/serializers.py:1229 build/serializers.py:1327 msgid "Build Reference" msgstr "" -#: build/serializers.py:1185 +#: build/serializers.py:1230 msgid "BOM Reference" msgstr "" -#: build/serializers.py:1186 company/models.py:852 -#: company/templates/company/supplier_part.html:160 order/serializers.py:690 -#: stock/admin.py:228 stock/models.py:818 stock/serializers.py:1579 -#: stock/templates/stock/item_base.html:240 -#: templates/js/translated/company.js:1646 -#: templates/js/translated/purchase_order.js:1169 -#: templates/js/translated/purchase_order.js:1332 +#: build/serializers.py:1231 company/models.py:849 +#: company/templates/company/supplier_part.html:161 order/serializers.py:775 +#: stock/admin.py:229 stock/models.py:895 stock/serializers.py:1610 +#: stock/templates/stock/item_base.html:237 +#: templates/js/translated/company.js:1647 +#: templates/js/translated/purchase_order.js:1152 +#: templates/js/translated/purchase_order.js:1315 #: templates/js/translated/stock.js:1214 templates/js/translated/stock.js:1246 -#: templates/js/translated/stock.js:2509 +#: templates/js/translated/stock.js:2510 msgid "Packaging" msgstr "" -#: build/serializers.py:1189 part/admin.py:39 part/admin.py:398 -#: part/models.py:4101 part/stocktake.py:218 stock/admin.py:152 +#: build/serializers.py:1234 part/admin.py:39 part/admin.py:398 +#: part/models.py:4159 part/stocktake.py:218 stock/admin.py:153 msgid "Part ID" msgstr "" -#: build/serializers.py:1191 build/serializers.py:1280 part/admin.py:402 -#: part/models.py:4103 +#: build/serializers.py:1236 build/serializers.py:1332 part/admin.py:402 +#: part/models.py:4161 msgid "Part IPN" msgstr "" -#: build/serializers.py:1192 build/serializers.py:1282 part/admin.py:45 +#: build/serializers.py:1237 build/serializers.py:1334 part/admin.py:45 #: part/stocktake.py:220 msgid "Part Description" msgstr "" -#: build/serializers.py:1195 +#: build/serializers.py:1240 msgid "BOM Part ID" msgstr "" -#: build/serializers.py:1196 +#: build/serializers.py:1241 msgid "BOM Part Name" msgstr "" -#: build/serializers.py:1199 +#: build/serializers.py:1244 #: report/templates/report/inventree_return_order_report.html:25 -#: report/templates/report/inventree_test_report.html:88 stock/models.py:845 -#: stock/serializers.py:151 stock/templates/stock/item_base.html:311 -#: templates/js/translated/build.js:520 templates/js/translated/build.js:1540 -#: templates/js/translated/build.js:2527 -#: templates/js/translated/model_renderers.js:231 +#: report/templates/report/inventree_sales_order_shipment_report.html:45 +#: report/templates/report/inventree_test_report.html:88 stock/models.py:922 +#: stock/serializers.py:152 stock/templates/stock/item_base.html:308 +#: templates/js/translated/build.js:523 templates/js/translated/build.js:1543 +#: templates/js/translated/build.js:2534 +#: templates/js/translated/model_renderers.js:234 #: templates/js/translated/return_order.js:539 #: templates/js/translated/return_order.js:722 -#: templates/js/translated/sales_order.js:315 -#: templates/js/translated/sales_order.js:1647 -#: templates/js/translated/sales_order.js:1732 +#: templates/js/translated/sales_order.js:1628 +#: templates/js/translated/sales_order.js:1713 #: templates/js/translated/stock.js:602 msgid "Serial Number" msgstr "" -#: build/serializers.py:1212 stock/serializers.py:593 -#: templates/js/translated/build.js:1017 templates/js/translated/build.js:1164 -#: templates/js/translated/build.js:2516 +#: build/serializers.py:1257 stock/serializers.py:620 +#: templates/js/translated/build.js:1020 templates/js/translated/build.js:1167 +#: templates/js/translated/build.js:2523 msgid "Allocated Quantity" msgstr "" -#: build/serializers.py:1213 stock/templates/stock/item_base.html:340 +#: build/serializers.py:1258 stock/templates/stock/item_base.html:337 msgid "Available Quantity" msgstr "" -#: build/serializers.py:1283 +#: build/serializers.py:1335 msgid "Part Category ID" msgstr "" -#: build/serializers.py:1284 +#: build/serializers.py:1336 msgid "Part Category Name" msgstr "" -#: build/serializers.py:1291 common/models.py:1513 part/admin.py:113 -#: part/models.py:1166 templates/js/translated/table_filters.js:150 +#: build/serializers.py:1345 common/models.py:1582 part/admin.py:113 +#: part/models.py:1227 templates/js/translated/build.js:2738 +#: templates/js/translated/table_filters.js:150 #: templates/js/translated/table_filters.js:230 #: templates/js/translated/table_filters.js:783 msgid "Trackable" msgstr "" -#: build/serializers.py:1292 +#: build/serializers.py:1346 msgid "Inherited" msgstr "" -#: build/serializers.py:1293 part/models.py:4313 +#: build/serializers.py:1347 part/models.py:4370 #: part/templates/part/upload_bom.html:56 templates/js/translated/bom.js:1046 -#: templates/js/translated/build.js:2711 +#: templates/js/translated/build.js:2720 msgid "Allow Variants" msgstr "" -#: build/serializers.py:1297 part/models.py:4110 part/models.py:4584 +#: build/serializers.py:1351 part/models.py:4168 part/models.py:4646 #: stock/api.py:794 msgid "BOM Item" msgstr "" -#: build/serializers.py:1306 build/templates/build/detail.html:236 +#: build/serializers.py:1370 build/templates/build/detail.html:236 #: build/templates/build/sidebar.html:16 templates/js/translated/index.js:130 msgid "Allocated Stock" msgstr "" -#: build/serializers.py:1311 order/serializers.py:1175 part/admin.py:132 -#: part/bom.py:181 part/serializers.py:899 part/serializers.py:1602 -#: part/templates/part/part_base.html:210 templates/js/translated/bom.js:1208 -#: templates/js/translated/build.js:2804 templates/js/translated/part.js:712 +#: build/serializers.py:1375 order/serializers.py:1209 part/admin.py:132 +#: part/bom.py:186 part/serializers.py:951 part/serializers.py:1660 +#: part/templates/part/part_base.html:211 templates/js/translated/bom.js:1208 +#: templates/js/translated/build.js:2822 templates/js/translated/part.js:712 #: templates/js/translated/part.js:2155 #: templates/js/translated/table_filters.js:177 msgid "On Order" msgstr "" -#: build/serializers.py:1316 order/serializers.py:1176 part/serializers.py:1604 -#: templates/js/translated/build.js:2808 +#: build/serializers.py:1380 order/serializers.py:1210 part/serializers.py:1662 +#: templates/js/translated/build.js:2826 #: templates/js/translated/table_filters.js:367 msgid "In Production" msgstr "" -#: build/serializers.py:1321 part/bom.py:180 part/serializers.py:1629 -#: part/templates/part/part_base.html:192 -#: templates/js/translated/sales_order.js:1929 -msgid "Available Stock" -msgstr "" - -#: build/serializers.py:1325 -msgid "Available Substitute Stock" -msgstr "" - -#: build/serializers.py:1326 -msgid "Available Variant Stock" -msgstr "" - -#: build/serializers.py:1327 -msgid "Total Available Stock" -msgstr "" - -#: build/serializers.py:1328 part/serializers.py:906 +#: build/serializers.py:1384 part/serializers.py:958 msgid "External Stock" msgstr "" -#: build/status_codes.py:11 generic/states/tests.py:17 order/status_codes.py:12 -#: order/status_codes.py:42 order/status_codes.py:74 order/status_codes.py:98 +#: build/serializers.py:1385 part/bom.py:185 part/serializers.py:1687 +#: part/templates/part/part_base.html:193 +#: templates/js/translated/sales_order.js:1910 +msgid "Available Stock" +msgstr "" + +#: build/serializers.py:1386 +msgid "Available Substitute Stock" +msgstr "" + +#: build/serializers.py:1387 +msgid "Available Variant Stock" +msgstr "" + +#: build/status_codes.py:11 generic/states/tests.py:21 +#: generic/states/tests.py:131 order/status_codes.py:12 +#: order/status_codes.py:44 order/status_codes.py:76 order/status_codes.py:102 #: templates/js/translated/table_filters.js:601 msgid "Pending" msgstr "" @@ -1722,21 +1750,21 @@ msgstr "" msgid "Production" msgstr "" -#: build/status_codes.py:13 order/status_codes.py:14 order/status_codes.py:49 -#: order/status_codes.py:79 +#: build/status_codes.py:13 order/status_codes.py:14 order/status_codes.py:51 +#: order/status_codes.py:81 msgid "On Hold" msgstr "" -#: build/status_codes.py:14 order/status_codes.py:16 order/status_codes.py:51 -#: order/status_codes.py:82 +#: build/status_codes.py:14 order/status_codes.py:16 order/status_codes.py:53 +#: order/status_codes.py:84 msgid "Cancelled" msgstr "" -#: build/status_codes.py:15 generic/states/tests.py:19 importer/models.py:509 -#: importer/status_codes.py:19 order/status_codes.py:15 -#: order/status_codes.py:50 order/status_codes.py:81 -#: order/templates/order/order_base.html:163 -#: order/templates/order/sales_order_base.html:168 report/models.py:443 +#: build/status_codes.py:15 generic/states/tests.py:23 importer/models.py:518 +#: importer/status_codes.py:27 order/status_codes.py:15 +#: order/status_codes.py:52 order/status_codes.py:83 +#: order/templates/order/order_base.html:172 +#: order/templates/order/sales_order_base.html:169 report/models.py:451 msgid "Complete" msgstr "" @@ -1744,165 +1772,162 @@ msgstr "" msgid "Stock required for build order" msgstr "" -#: build/tasks.py:201 +#: build/tasks.py:260 msgid "Overdue Build Order" msgstr "" -#: build/tasks.py:206 +#: build/tasks.py:265 #, python-brace-format msgid "Build order {bo} is now overdue" msgstr "" -#: build/templates/build/build_base.html:18 +#: build/templates/build/build_base.html:19 msgid "Part thumbnail" msgstr "" -#: build/templates/build/build_base.html:38 -#: company/templates/company/supplier_part.html:35 -#: order/templates/order/order_base.html:29 -#: order/templates/order/return_order_base.html:38 -#: order/templates/order/sales_order_base.html:38 -#: part/templates/part/part_base.html:41 -#: stock/templates/stock/item_base.html:40 -#: stock/templates/stock/location.html:52 +#: build/templates/build/build_base.html:39 +#: company/templates/company/supplier_part.html:36 +#: order/templates/order/order_base.html:30 +#: order/templates/order/return_order_base.html:39 +#: order/templates/order/sales_order_base.html:39 +#: part/templates/part/part_base.html:42 +#: stock/templates/stock/item_base.html:41 +#: stock/templates/stock/location.html:53 #: templates/js/translated/filters.js:338 msgid "Barcode actions" msgstr "" -#: build/templates/build/build_base.html:42 -#: company/templates/company/supplier_part.html:39 -#: order/templates/order/order_base.html:33 -#: order/templates/order/return_order_base.html:42 -#: order/templates/order/sales_order_base.html:42 -#: part/templates/part/part_base.html:44 -#: stock/templates/stock/item_base.html:44 -#: stock/templates/stock/location.html:54 templates/qr_button.html:1 +#: build/templates/build/build_base.html:43 +#: company/templates/company/supplier_part.html:40 +#: order/templates/order/order_base.html:34 +#: order/templates/order/return_order_base.html:43 +#: order/templates/order/sales_order_base.html:43 +#: part/templates/part/part_base.html:45 +#: stock/templates/stock/item_base.html:45 +#: stock/templates/stock/location.html:55 templates/qr_button.html:1 msgid "Show QR Code" msgstr "" -#: build/templates/build/build_base.html:45 -#: company/templates/company/supplier_part.html:41 -#: order/templates/order/order_base.html:36 -#: order/templates/order/return_order_base.html:45 -#: order/templates/order/sales_order_base.html:45 -#: part/templates/part/part_base.html:47 -#: stock/templates/stock/item_base.html:47 -#: stock/templates/stock/location.html:56 +#: build/templates/build/build_base.html:46 +#: company/templates/company/supplier_part.html:42 +#: order/templates/order/order_base.html:37 +#: order/templates/order/return_order_base.html:46 +#: order/templates/order/sales_order_base.html:46 +#: part/templates/part/part_base.html:48 +#: stock/templates/stock/item_base.html:48 +#: stock/templates/stock/location.html:57 #: templates/js/translated/barcode.js:527 #: templates/js/translated/barcode.js:532 msgid "Unlink Barcode" msgstr "" -#: build/templates/build/build_base.html:47 -#: company/templates/company/supplier_part.html:43 -#: order/templates/order/order_base.html:38 -#: order/templates/order/return_order_base.html:47 -#: order/templates/order/sales_order_base.html:47 -#: part/templates/part/part_base.html:49 -#: stock/templates/stock/item_base.html:49 -#: stock/templates/stock/location.html:58 +#: build/templates/build/build_base.html:48 +#: company/templates/company/supplier_part.html:44 +#: order/templates/order/order_base.html:39 +#: order/templates/order/return_order_base.html:48 +#: order/templates/order/sales_order_base.html:48 +#: part/templates/part/part_base.html:50 +#: stock/templates/stock/item_base.html:50 +#: stock/templates/stock/location.html:59 msgid "Link Barcode" msgstr "" -#: build/templates/build/build_base.html:56 -#: order/templates/order/order_base.html:46 -#: order/templates/order/return_order_base.html:55 -#: order/templates/order/sales_order_base.html:55 +#: build/templates/build/build_base.html:57 +#: order/templates/order/order_base.html:47 +#: order/templates/order/return_order_base.html:56 +#: order/templates/order/sales_order_base.html:56 msgid "Print actions" msgstr "" -#: build/templates/build/build_base.html:60 +#: build/templates/build/build_base.html:61 msgid "Print build order report" msgstr "" -#: build/templates/build/build_base.html:67 +#: build/templates/build/build_base.html:68 msgid "Build actions" msgstr "" -#: build/templates/build/build_base.html:71 +#: build/templates/build/build_base.html:72 msgid "Edit Build" msgstr "" -#: build/templates/build/build_base.html:73 +#: build/templates/build/build_base.html:74 msgid "Duplicate Build" msgstr "" -#: build/templates/build/build_base.html:76 +#: build/templates/build/build_base.html:77 msgid "Hold Build" msgstr "" -#: build/templates/build/build_base.html:79 +#: build/templates/build/build_base.html:80 msgid "Cancel Build" msgstr "" -#: build/templates/build/build_base.html:82 +#: build/templates/build/build_base.html:83 msgid "Delete Build" msgstr "" -#: build/templates/build/build_base.html:87 -msgid "Isueue Build" -msgstr "" - #: build/templates/build/build_base.html:88 +#: build/templates/build/build_base.html:89 msgid "Issue Build" msgstr "" -#: build/templates/build/build_base.html:91 #: build/templates/build/build_base.html:92 +#: build/templates/build/build_base.html:93 msgid "Complete Build" msgstr "" -#: build/templates/build/build_base.html:115 +#: build/templates/build/build_base.html:116 msgid "Build Description" msgstr "" -#: build/templates/build/build_base.html:125 +#: build/templates/build/build_base.html:126 msgid "No build outputs have been created for this build order" msgstr "" -#: build/templates/build/build_base.html:132 +#: build/templates/build/build_base.html:133 msgid "Build Order is ready to mark as completed" msgstr "" -#: build/templates/build/build_base.html:137 +#: build/templates/build/build_base.html:138 msgid "Build Order cannot be completed as outstanding outputs remain" msgstr "" -#: build/templates/build/build_base.html:142 +#: build/templates/build/build_base.html:143 msgid "Required build quantity has not yet been completed" msgstr "" -#: build/templates/build/build_base.html:147 +#: build/templates/build/build_base.html:148 msgid "Stock has not been fully allocated to this Build Order" msgstr "" -#: build/templates/build/build_base.html:168 -#: build/templates/build/detail.html:138 order/models.py:308 -#: order/models.py:1391 order/serializers.py:174 -#: order/templates/order/order_base.html:191 -#: order/templates/order/return_order_base.html:167 -#: order/templates/order/sales_order_base.html:199 +#: build/templates/build/build_base.html:169 +#: build/templates/build/detail.html:138 order/models.py:315 +#: order/models.py:1408 order/serializers.py:254 +#: order/templates/order/order_base.html:200 +#: order/templates/order/return_order_base.html:168 +#: order/templates/order/sales_order_base.html:200 #: report/templates/report/inventree_build_order_report.html:125 -#: templates/js/translated/build.js:2411 templates/js/translated/part.js:1837 -#: templates/js/translated/purchase_order.js:1809 -#: templates/js/translated/purchase_order.js:2217 +#: templates/js/translated/build.js:2414 templates/js/translated/part.js:1837 +#: templates/js/translated/purchase_order.js:1793 +#: templates/js/translated/purchase_order.js:2201 #: templates/js/translated/return_order.js:346 #: templates/js/translated/return_order.js:749 -#: templates/js/translated/sales_order.js:871 -#: templates/js/translated/sales_order.js:1903 +#: templates/js/translated/sales_order.js:830 +#: templates/js/translated/sales_order.js:1884 msgid "Target Date" msgstr "" -#: build/templates/build/build_base.html:173 +#: build/templates/build/build_base.html:174 #, python-format msgid "This build was due on %(target)s" msgstr "" -#: build/templates/build/build_base.html:173 -#: build/templates/build/build_base.html:230 -#: order/templates/order/order_base.html:127 -#: order/templates/order/return_order_base.html:120 -#: order/templates/order/sales_order_base.html:129 +#: build/templates/build/build_base.html:174 +#: build/templates/build/build_base.html:231 +#: order/templates/order/order_base.html:128 +#: order/templates/order/return_order_base.html:121 +#: order/templates/order/sales_order_base.html:130 #: templates/js/translated/table_filters.js:97 #: templates/js/translated/table_filters.js:545 #: templates/js/translated/table_filters.js:629 @@ -1910,49 +1935,50 @@ msgstr "" msgid "Overdue" msgstr "" -#: build/templates/build/build_base.html:185 +#: build/templates/build/build_base.html:186 #: build/templates/build/detail.html:67 build/templates/build/sidebar.html:13 msgid "Completed Outputs" msgstr "" -#: build/templates/build/build_base.html:198 -#: build/templates/build/detail.html:101 order/api.py:1406 order/models.py:892 -#: order/models.py:1650 order/models.py:1765 order/models.py:1924 -#: order/templates/order/sales_order_base.html:9 -#: order/templates/order/sales_order_base.html:28 +#: build/templates/build/build_base.html:199 +#: build/templates/build/detail.html:101 order/api.py:1528 order/models.py:914 +#: order/models.py:1666 order/models.py:1794 order/models.py:1957 +#: order/templates/order/sales_order_base.html:10 +#: order/templates/order/sales_order_base.html:29 #: report/templates/report/inventree_build_order_report.html:135 #: report/templates/report/inventree_sales_order_report.html:14 -#: stock/templates/stock/item_base.html:369 +#: report/templates/report/inventree_sales_order_shipment_report.html:15 +#: stock/templates/stock/item_base.html:366 #: templates/email/overdue_sales_order.html:15 -#: templates/js/translated/pricing.js:929 -#: templates/js/translated/sales_order.js:805 -#: templates/js/translated/sales_order.js:1028 -#: templates/js/translated/stock.js:3008 +#: templates/js/translated/pricing.js:927 +#: templates/js/translated/sales_order.js:764 +#: templates/js/translated/sales_order.js:1001 +#: templates/js/translated/stock.js:3009 msgid "Sales Order" msgstr "" -#: build/templates/build/build_base.html:219 -#: build/templates/build/detail.html:94 templates/js/translated/build.js:2328 +#: build/templates/build/build_base.html:220 +#: build/templates/build/detail.html:94 templates/js/translated/build.js:2331 msgid "Priority" msgstr "" -#: build/templates/build/build_base.html:267 +#: build/templates/build/build_base.html:268 msgid "Issue Build Order" msgstr "" -#: build/templates/build/build_base.html:271 +#: build/templates/build/build_base.html:272 msgid "Issue this Build Order?" msgstr "" -#: build/templates/build/build_base.html:302 +#: build/templates/build/build_base.html:303 msgid "Delete Build Order" msgstr "" -#: build/templates/build/build_base.html:312 +#: build/templates/build/build_base.html:313 msgid "Build Order QR Code" msgstr "" -#: build/templates/build/build_base.html:324 +#: build/templates/build/build_base.html:325 msgid "Link Barcode to Build Order" msgstr "" @@ -1968,8 +1994,9 @@ msgstr "" msgid "Stock can be taken from any available location." msgstr "" -#: build/templates/build/detail.html:49 order/models.py:1532 -#: templates/js/translated/purchase_order.js:2259 +#: build/templates/build/detail.html:49 order/models.py:548 +#: order/models.py:1548 order/templates/order/order_base.html:135 +#: templates/js/translated/purchase_order.js:2243 msgid "Destination" msgstr "" @@ -1981,23 +2008,24 @@ msgstr "" msgid "Allocated Parts" msgstr "" -#: build/templates/build/detail.html:80 stock/admin.py:162 -#: stock/templates/stock/item_base.html:162 -#: templates/js/translated/build.js:1553 -#: templates/js/translated/model_renderers.js:242 -#: templates/js/translated/purchase_order.js:1326 +#: build/templates/build/detail.html:80 +#: report/templates/report/inventree_sales_order_shipment_report.html:47 +#: stock/admin.py:163 stock/templates/stock/item_base.html:159 +#: templates/js/translated/build.js:1556 +#: templates/js/translated/model_renderers.js:245 +#: templates/js/translated/purchase_order.js:1309 #: templates/js/translated/stock.js:1139 templates/js/translated/stock.js:1240 -#: templates/js/translated/stock.js:2275 templates/js/translated/stock.js:3211 +#: templates/js/translated/stock.js:2276 templates/js/translated/stock.js:3212 #: templates/js/translated/table_filters.js:320 #: templates/js/translated/table_filters.js:411 msgid "Batch" msgstr "" #: build/templates/build/detail.html:133 -#: order/templates/order/order_base.html:178 -#: order/templates/order/return_order_base.html:154 -#: order/templates/order/sales_order_base.html:193 -#: templates/js/translated/build.js:2371 +#: order/templates/order/order_base.html:187 +#: order/templates/order/return_order_base.html:155 +#: order/templates/order/sales_order_base.html:194 +#: templates/js/translated/build.js:2374 msgid "Created" msgstr "" @@ -2005,8 +2033,8 @@ msgstr "" msgid "No target date set" msgstr "" -#: build/templates/build/detail.html:149 -#: order/templates/order/sales_order_base.html:209 +#: build/templates/build/detail.html:149 order/api.py:794 +#: order/templates/order/sales_order_base.html:210 #: templates/js/translated/table_filters.js:692 msgid "Completed" msgstr "" @@ -2052,7 +2080,7 @@ msgid "Order required parts" msgstr "" #: build/templates/build/detail.html:192 -#: templates/js/translated/purchase_order.js:795 +#: templates/js/translated/purchase_order.js:778 msgid "Order Parts" msgstr "" @@ -2120,7 +2148,7 @@ msgstr "" msgid "Build Order Details" msgstr "" -#: build/templates/build/sidebar.html:8 order/serializers.py:82 +#: build/templates/build/sidebar.html:8 order/serializers.py:113 #: order/templates/order/po_sidebar.html:5 #: order/templates/order/return_order_detail.html:18 #: order/templates/order/so_sidebar.html:5 @@ -2139,43 +2167,38 @@ msgstr "" msgid "Test Statistics" msgstr "" -#: common/api.py:693 +#: common/api.py:725 msgid "Is Link" msgstr "" -#: common/api.py:701 +#: common/api.py:733 msgid "Is File" msgstr "" -#: common/api.py:744 +#: common/api.py:776 msgid "User does not have permission to delete these attachments" msgstr "" -#: common/api.py:761 +#: common/api.py:793 msgid "User does not have permission to delete this attachment" msgstr "" -#: common/currency.py:132 +#: common/currency.py:134 msgid "Invalid currency code" msgstr "" -#: common/currency.py:134 +#: common/currency.py:136 msgid "Duplicate currency code" msgstr "" -#: common/currency.py:139 +#: common/currency.py:141 msgid "No valid currency codes provided" msgstr "" -#: common/currency.py:156 +#: common/currency.py:158 msgid "No plugin" msgstr "" -#: common/files.py:63 -#, python-brace-format -msgid "Unsupported file format: {fmt}" -msgstr "" - #: common/files.py:65 msgid "Error reading file (invalid encoding)" msgstr "" @@ -2192,1883 +2215,2039 @@ msgstr "" msgid "Error reading file (data could be corrupted)" msgstr "" -#: common/forms.py:12 +#: common/forms.py:12 common/forms.py:25 msgid "File" msgstr "" -#: common/forms.py:12 +#: common/forms.py:12 common/forms.py:26 msgid "Select file to upload" msgstr "" -#: common/forms.py:25 -msgid "{name.title()} File" -msgstr "" - -#: common/forms.py:26 -#, python-brace-format -msgid "Select {name} file to upload" -msgstr "" - -#: common/models.py:86 +#: common/models.py:89 msgid "Updated" msgstr "" -#: common/models.py:87 +#: common/models.py:90 msgid "Timestamp of last update" msgstr "" -#: common/models.py:120 +#: common/models.py:123 msgid "Site URL is locked by configuration" msgstr "" -#: common/models.py:150 +#: common/models.py:153 msgid "Unique project code" msgstr "" -#: common/models.py:157 +#: common/models.py:160 msgid "Project description" msgstr "" -#: common/models.py:166 +#: common/models.py:169 msgid "User or group responsible for this project" msgstr "" -#: common/models.py:783 -msgid "Settings key (must be unique - case insensitive)" +#: common/models.py:783 common/models.py:2236 common/models.py:2613 +msgid "Settings key" msgstr "" #: common/models.py:787 msgid "Settings value" msgstr "" -#: common/models.py:839 +#: common/models.py:842 msgid "Chosen value is not a valid option" msgstr "" -#: common/models.py:855 +#: common/models.py:858 msgid "Value must be a boolean value" msgstr "" -#: common/models.py:863 +#: common/models.py:866 msgid "Value must be an integer value" msgstr "" -#: common/models.py:900 +#: common/models.py:874 +msgid "Value must be a valid number" +msgstr "" + +#: common/models.py:899 +msgid "Value does not pass validation checks" +msgstr "" + +#: common/models.py:921 msgid "Key string must be unique" msgstr "" -#: common/models.py:1132 +#: common/models.py:1189 msgid "No group" msgstr "" -#: common/models.py:1231 +#: common/models.py:1288 msgid "Restart required" msgstr "" -#: common/models.py:1233 +#: common/models.py:1290 msgid "A setting has been changed which requires a server restart" msgstr "" -#: common/models.py:1240 +#: common/models.py:1297 msgid "Pending migrations" msgstr "" -#: common/models.py:1241 +#: common/models.py:1298 msgid "Number of pending database migrations" msgstr "" -#: common/models.py:1246 +#: common/models.py:1303 msgid "Server Instance Name" msgstr "" -#: common/models.py:1248 +#: common/models.py:1305 msgid "String descriptor for the server instance" msgstr "" -#: common/models.py:1252 +#: common/models.py:1309 msgid "Use instance name" msgstr "" -#: common/models.py:1253 +#: common/models.py:1310 msgid "Use the instance name in the title-bar" msgstr "" -#: common/models.py:1258 +#: common/models.py:1315 msgid "Restrict showing `about`" msgstr "" -#: common/models.py:1259 +#: common/models.py:1316 msgid "Show the `about` modal only to superusers" msgstr "" -#: common/models.py:1264 company/models.py:111 company/models.py:112 +#: common/models.py:1321 company/models.py:108 company/models.py:109 msgid "Company name" msgstr "" -#: common/models.py:1265 +#: common/models.py:1322 msgid "Internal company name" msgstr "" -#: common/models.py:1269 +#: common/models.py:1326 msgid "Base URL" msgstr "" -#: common/models.py:1270 +#: common/models.py:1327 msgid "Base URL for server instance" msgstr "" -#: common/models.py:1276 +#: common/models.py:1333 msgid "Default Currency" msgstr "" -#: common/models.py:1277 +#: common/models.py:1334 msgid "Select base currency for pricing calculations" msgstr "" -#: common/models.py:1283 +#: common/models.py:1340 msgid "Supported Currencies" msgstr "" -#: common/models.py:1284 +#: common/models.py:1341 msgid "List of supported currency codes" msgstr "" -#: common/models.py:1290 +#: common/models.py:1347 msgid "Currency Update Interval" msgstr "" -#: common/models.py:1292 +#: common/models.py:1349 msgid "How often to update exchange rates (set to zero to disable)" msgstr "" -#: common/models.py:1295 common/models.py:1351 common/models.py:1364 -#: common/models.py:1372 common/models.py:1381 common/models.py:1390 -#: common/models.py:1627 common/models.py:1649 common/models.py:1764 -#: common/models.py:2146 +#: common/models.py:1352 common/models.py:1408 common/models.py:1421 +#: common/models.py:1429 common/models.py:1438 common/models.py:1447 +#: common/models.py:1696 common/models.py:1718 common/models.py:1819 +#: common/models.py:2208 msgid "days" msgstr "" -#: common/models.py:1299 +#: common/models.py:1356 msgid "Currency Update Plugin" msgstr "" -#: common/models.py:1300 +#: common/models.py:1357 msgid "Currency update plugin to use" msgstr "" -#: common/models.py:1305 +#: common/models.py:1362 msgid "Download from URL" msgstr "" -#: common/models.py:1307 +#: common/models.py:1364 msgid "Allow download of remote images and files from external URL" msgstr "" -#: common/models.py:1313 +#: common/models.py:1370 msgid "Download Size Limit" msgstr "" -#: common/models.py:1314 +#: common/models.py:1371 msgid "Maximum allowable download size for remote image" msgstr "" -#: common/models.py:1320 +#: common/models.py:1377 msgid "User-agent used to download from URL" msgstr "" -#: common/models.py:1322 +#: common/models.py:1379 msgid "Allow to override the user-agent used to download images and files from external URL (leave blank for the default)" msgstr "" -#: common/models.py:1327 +#: common/models.py:1384 msgid "Strict URL Validation" msgstr "" -#: common/models.py:1328 +#: common/models.py:1385 msgid "Require schema specification when validating URLs" msgstr "" -#: common/models.py:1333 +#: common/models.py:1390 msgid "Require confirm" msgstr "" -#: common/models.py:1334 +#: common/models.py:1391 msgid "Require explicit user confirmation for certain action." msgstr "" -#: common/models.py:1339 +#: common/models.py:1396 msgid "Tree Depth" msgstr "" -#: common/models.py:1341 +#: common/models.py:1398 msgid "Default tree depth for treeview. Deeper levels can be lazy loaded as they are needed." msgstr "" -#: common/models.py:1347 +#: common/models.py:1404 msgid "Update Check Interval" msgstr "" -#: common/models.py:1348 +#: common/models.py:1405 msgid "How often to check for updates (set to zero to disable)" msgstr "" -#: common/models.py:1354 +#: common/models.py:1411 msgid "Automatic Backup" msgstr "" -#: common/models.py:1355 +#: common/models.py:1412 msgid "Enable automatic backup of database and media files" msgstr "" -#: common/models.py:1360 +#: common/models.py:1417 msgid "Auto Backup Interval" msgstr "" -#: common/models.py:1361 +#: common/models.py:1418 msgid "Specify number of days between automated backup events" msgstr "" -#: common/models.py:1367 +#: common/models.py:1424 msgid "Task Deletion Interval" msgstr "" -#: common/models.py:1369 +#: common/models.py:1426 msgid "Background task results will be deleted after specified number of days" msgstr "" -#: common/models.py:1376 +#: common/models.py:1433 msgid "Error Log Deletion Interval" msgstr "" -#: common/models.py:1378 +#: common/models.py:1435 msgid "Error logs will be deleted after specified number of days" msgstr "" -#: common/models.py:1385 +#: common/models.py:1442 msgid "Notification Deletion Interval" msgstr "" -#: common/models.py:1387 +#: common/models.py:1444 msgid "User notifications will be deleted after specified number of days" msgstr "" -#: common/models.py:1394 templates/InvenTree/settings/sidebar.html:31 +#: common/models.py:1451 templates/InvenTree/settings/sidebar.html:31 msgid "Barcode Support" msgstr "" -#: common/models.py:1395 +#: common/models.py:1452 msgid "Enable barcode scanner support in the web interface" msgstr "" -#: common/models.py:1400 +#: common/models.py:1457 +msgid "Store Barcode Results" +msgstr "" + +#: common/models.py:1458 +msgid "Store barcode scan results in the database" +msgstr "" + +#: common/models.py:1463 +msgid "Barcode Scans Maximum Count" +msgstr "" + +#: common/models.py:1464 +msgid "Maximum number of barcode scan results to store" +msgstr "" + +#: common/models.py:1469 msgid "Barcode Input Delay" msgstr "" -#: common/models.py:1401 +#: common/models.py:1470 msgid "Barcode input processing delay time" msgstr "" -#: common/models.py:1407 +#: common/models.py:1476 msgid "Barcode Webcam Support" msgstr "" -#: common/models.py:1408 +#: common/models.py:1477 msgid "Allow barcode scanning via webcam in browser" msgstr "" -#: common/models.py:1413 +#: common/models.py:1482 msgid "Barcode Show Data" msgstr "" -#: common/models.py:1414 +#: common/models.py:1483 msgid "Display barcode data in browser as text" msgstr "" -#: common/models.py:1419 +#: common/models.py:1488 msgid "Barcode Generation Plugin" msgstr "" -#: common/models.py:1420 +#: common/models.py:1489 msgid "Plugin to use for internal barcode data generation" msgstr "" -#: common/models.py:1425 +#: common/models.py:1494 msgid "Part Revisions" msgstr "" -#: common/models.py:1426 +#: common/models.py:1495 msgid "Enable revision field for Part" msgstr "" -#: common/models.py:1431 +#: common/models.py:1500 msgid "Assembly Revision Only" msgstr "" -#: common/models.py:1432 +#: common/models.py:1501 msgid "Only allow revisions for assembly parts" msgstr "" -#: common/models.py:1437 +#: common/models.py:1506 msgid "Allow Deletion from Assembly" msgstr "" -#: common/models.py:1438 +#: common/models.py:1507 msgid "Allow deletion of parts which are used in an assembly" msgstr "" -#: common/models.py:1443 +#: common/models.py:1512 msgid "IPN Regex" msgstr "" -#: common/models.py:1444 +#: common/models.py:1513 msgid "Regular expression pattern for matching Part IPN" msgstr "" -#: common/models.py:1447 +#: common/models.py:1516 msgid "Allow Duplicate IPN" msgstr "" -#: common/models.py:1448 +#: common/models.py:1517 msgid "Allow multiple parts to share the same IPN" msgstr "" -#: common/models.py:1453 +#: common/models.py:1522 msgid "Allow Editing IPN" msgstr "" -#: common/models.py:1454 +#: common/models.py:1523 msgid "Allow changing the IPN value while editing a part" msgstr "" -#: common/models.py:1459 +#: common/models.py:1528 msgid "Copy Part BOM Data" msgstr "" -#: common/models.py:1460 +#: common/models.py:1529 msgid "Copy BOM data by default when duplicating a part" msgstr "" -#: common/models.py:1465 +#: common/models.py:1534 msgid "Copy Part Parameter Data" msgstr "" -#: common/models.py:1466 +#: common/models.py:1535 msgid "Copy parameter data by default when duplicating a part" msgstr "" -#: common/models.py:1471 +#: common/models.py:1540 msgid "Copy Part Test Data" msgstr "" -#: common/models.py:1472 +#: common/models.py:1541 msgid "Copy test data by default when duplicating a part" msgstr "" -#: common/models.py:1477 +#: common/models.py:1546 msgid "Copy Category Parameter Templates" msgstr "" -#: common/models.py:1478 +#: common/models.py:1547 msgid "Copy category parameter templates when creating a part" msgstr "" -#: common/models.py:1483 part/admin.py:108 part/models.py:3945 -#: report/models.py:293 report/models.py:360 report/serializers.py:90 -#: report/serializers.py:131 stock/serializers.py:232 +#: common/models.py:1552 part/admin.py:108 part/models.py:4003 +#: report/models.py:301 report/models.py:368 report/serializers.py:91 +#: report/serializers.py:132 stock/serializers.py:233 #: templates/js/translated/table_filters.js:138 #: templates/js/translated/table_filters.js:775 msgid "Template" msgstr "" -#: common/models.py:1484 +#: common/models.py:1553 msgid "Parts are templates by default" msgstr "" -#: common/models.py:1490 +#: common/models.py:1559 msgid "Parts can be assembled from other components by default" msgstr "" -#: common/models.py:1495 part/admin.py:95 part/models.py:1160 -#: part/serializers.py:1596 templates/js/translated/table_filters.js:737 +#: common/models.py:1564 part/admin.py:95 part/models.py:1221 +#: part/serializers.py:1654 templates/js/translated/table_filters.js:737 msgid "Component" msgstr "" -#: common/models.py:1496 +#: common/models.py:1565 msgid "Parts can be used as sub-components by default" msgstr "" -#: common/models.py:1501 part/admin.py:100 part/models.py:1178 +#: common/models.py:1570 part/admin.py:100 part/models.py:1239 msgid "Purchaseable" msgstr "" -#: common/models.py:1502 +#: common/models.py:1571 msgid "Parts are purchaseable by default" msgstr "" -#: common/models.py:1507 part/admin.py:104 part/models.py:1184 +#: common/models.py:1576 part/admin.py:104 part/models.py:1245 #: templates/js/translated/table_filters.js:763 msgid "Salable" msgstr "" -#: common/models.py:1508 +#: common/models.py:1577 msgid "Parts are salable by default" msgstr "" -#: common/models.py:1514 +#: common/models.py:1583 msgid "Parts are trackable by default" msgstr "" -#: common/models.py:1519 part/admin.py:117 part/models.py:1200 -#: part/templates/part/part_base.html:154 +#: common/models.py:1588 part/admin.py:117 part/models.py:1261 +#: part/templates/part/part_base.html:155 #: templates/js/translated/table_filters.js:142 #: templates/js/translated/table_filters.js:787 msgid "Virtual" msgstr "" -#: common/models.py:1520 +#: common/models.py:1589 msgid "Parts are virtual by default" msgstr "" -#: common/models.py:1525 +#: common/models.py:1594 msgid "Show Import in Views" msgstr "" -#: common/models.py:1526 +#: common/models.py:1595 msgid "Display the import wizard in some part views" msgstr "" -#: common/models.py:1531 +#: common/models.py:1600 msgid "Show related parts" msgstr "" -#: common/models.py:1532 +#: common/models.py:1601 msgid "Display related parts for a part" msgstr "" -#: common/models.py:1537 +#: common/models.py:1606 msgid "Initial Stock Data" msgstr "" -#: common/models.py:1538 +#: common/models.py:1607 msgid "Allow creation of initial stock when adding a new part" msgstr "" -#: common/models.py:1543 templates/js/translated/part.js:108 +#: common/models.py:1612 templates/js/translated/part.js:108 msgid "Initial Supplier Data" msgstr "" -#: common/models.py:1545 +#: common/models.py:1614 msgid "Allow creation of initial supplier data when adding a new part" msgstr "" -#: common/models.py:1551 +#: common/models.py:1620 msgid "Part Name Display Format" msgstr "" -#: common/models.py:1552 +#: common/models.py:1621 msgid "Format to display the part name" msgstr "" -#: common/models.py:1558 +#: common/models.py:1627 msgid "Part Category Default Icon" msgstr "" -#: common/models.py:1559 +#: common/models.py:1628 msgid "Part category default icon (empty means no icon)" msgstr "" -#: common/models.py:1564 +#: common/models.py:1633 msgid "Enforce Parameter Units" msgstr "" -#: common/models.py:1566 +#: common/models.py:1635 msgid "If units are provided, parameter values must match the specified units" msgstr "" -#: common/models.py:1572 +#: common/models.py:1641 msgid "Minimum Pricing Decimal Places" msgstr "" -#: common/models.py:1574 +#: common/models.py:1643 msgid "Minimum number of decimal places to display when rendering pricing data" msgstr "" -#: common/models.py:1585 +#: common/models.py:1654 msgid "Maximum Pricing Decimal Places" msgstr "" -#: common/models.py:1587 +#: common/models.py:1656 msgid "Maximum number of decimal places to display when rendering pricing data" msgstr "" -#: common/models.py:1598 +#: common/models.py:1667 msgid "Use Supplier Pricing" msgstr "" -#: common/models.py:1600 +#: common/models.py:1669 msgid "Include supplier price breaks in overall pricing calculations" msgstr "" -#: common/models.py:1606 +#: common/models.py:1675 msgid "Purchase History Override" msgstr "" -#: common/models.py:1608 +#: common/models.py:1677 msgid "Historical purchase order pricing overrides supplier price breaks" msgstr "" -#: common/models.py:1614 +#: common/models.py:1683 msgid "Use Stock Item Pricing" msgstr "" -#: common/models.py:1616 +#: common/models.py:1685 msgid "Use pricing from manually entered stock data for pricing calculations" msgstr "" -#: common/models.py:1622 +#: common/models.py:1691 msgid "Stock Item Pricing Age" msgstr "" -#: common/models.py:1624 +#: common/models.py:1693 msgid "Exclude stock items older than this number of days from pricing calculations" msgstr "" -#: common/models.py:1631 +#: common/models.py:1700 msgid "Use Variant Pricing" msgstr "" -#: common/models.py:1632 +#: common/models.py:1701 msgid "Include variant pricing in overall pricing calculations" msgstr "" -#: common/models.py:1637 +#: common/models.py:1706 msgid "Active Variants Only" msgstr "" -#: common/models.py:1639 +#: common/models.py:1708 msgid "Only use active variant parts for calculating variant pricing" msgstr "" -#: common/models.py:1645 +#: common/models.py:1714 msgid "Pricing Rebuild Interval" msgstr "" -#: common/models.py:1647 +#: common/models.py:1716 msgid "Number of days before part pricing is automatically updated" msgstr "" -#: common/models.py:1654 +#: common/models.py:1723 msgid "Internal Prices" msgstr "" -#: common/models.py:1655 +#: common/models.py:1724 msgid "Enable internal prices for parts" msgstr "" -#: common/models.py:1660 +#: common/models.py:1729 msgid "Internal Price Override" msgstr "" -#: common/models.py:1662 +#: common/models.py:1731 msgid "If available, internal prices override price range calculations" msgstr "" -#: common/models.py:1668 +#: common/models.py:1737 msgid "Enable label printing" msgstr "" -#: common/models.py:1669 +#: common/models.py:1738 msgid "Enable label printing from the web interface" msgstr "" -#: common/models.py:1674 +#: common/models.py:1743 msgid "Label Image DPI" msgstr "" -#: common/models.py:1676 +#: common/models.py:1745 msgid "DPI resolution when generating image files to supply to label printing plugins" msgstr "" -#: common/models.py:1682 +#: common/models.py:1751 msgid "Enable Reports" msgstr "" -#: common/models.py:1683 +#: common/models.py:1752 msgid "Enable generation of reports" msgstr "" -#: common/models.py:1688 templates/stats.html:25 +#: common/models.py:1757 templates/stats.html:25 msgid "Debug Mode" msgstr "" -#: common/models.py:1689 +#: common/models.py:1758 msgid "Generate reports in debug mode (HTML output)" msgstr "" -#: common/models.py:1694 +#: common/models.py:1763 msgid "Log Report Errors" msgstr "" -#: common/models.py:1695 +#: common/models.py:1764 msgid "Log errors which occur when generating reports" msgstr "" -#: common/models.py:1700 plugin/builtin/labels/label_sheet.py:28 -#: report/models.py:301 +#: common/models.py:1769 plugin/builtin/labels/label_sheet.py:28 +#: report/models.py:309 msgid "Page Size" msgstr "" -#: common/models.py:1701 +#: common/models.py:1770 msgid "Default page size for PDF reports" msgstr "" -#: common/models.py:1706 -msgid "Enable Test Reports" -msgstr "" - -#: common/models.py:1707 -msgid "Enable generation of test reports" -msgstr "" - -#: common/models.py:1712 -msgid "Attach Test Reports" -msgstr "" - -#: common/models.py:1714 -msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item" -msgstr "" - -#: common/models.py:1720 +#: common/models.py:1775 msgid "Globally Unique Serials" msgstr "" -#: common/models.py:1721 +#: common/models.py:1776 msgid "Serial numbers for stock items must be globally unique" msgstr "" -#: common/models.py:1726 +#: common/models.py:1781 msgid "Autofill Serial Numbers" msgstr "" -#: common/models.py:1727 +#: common/models.py:1782 msgid "Autofill serial numbers in forms" msgstr "" -#: common/models.py:1732 +#: common/models.py:1787 msgid "Delete Depleted Stock" msgstr "" -#: common/models.py:1734 +#: common/models.py:1789 msgid "Determines default behavior when a stock item is depleted" msgstr "" -#: common/models.py:1740 +#: common/models.py:1795 msgid "Batch Code Template" msgstr "" -#: common/models.py:1742 +#: common/models.py:1797 msgid "Template for generating default batch codes for stock items" msgstr "" -#: common/models.py:1747 +#: common/models.py:1802 msgid "Stock Expiry" msgstr "" -#: common/models.py:1748 +#: common/models.py:1803 msgid "Enable stock expiry functionality" msgstr "" -#: common/models.py:1753 +#: common/models.py:1808 msgid "Sell Expired Stock" msgstr "" -#: common/models.py:1754 +#: common/models.py:1809 msgid "Allow sale of expired stock" msgstr "" -#: common/models.py:1759 +#: common/models.py:1814 msgid "Stock Stale Time" msgstr "" -#: common/models.py:1761 +#: common/models.py:1816 msgid "Number of days stock items are considered stale before expiring" msgstr "" -#: common/models.py:1768 +#: common/models.py:1823 msgid "Build Expired Stock" msgstr "" -#: common/models.py:1769 +#: common/models.py:1824 msgid "Allow building with expired stock" msgstr "" -#: common/models.py:1774 +#: common/models.py:1829 msgid "Stock Ownership Control" msgstr "" -#: common/models.py:1775 +#: common/models.py:1830 msgid "Enable ownership control over stock locations and items" msgstr "" -#: common/models.py:1780 +#: common/models.py:1835 msgid "Stock Location Default Icon" msgstr "" -#: common/models.py:1781 +#: common/models.py:1836 msgid "Stock location default icon (empty means no icon)" msgstr "" -#: common/models.py:1786 +#: common/models.py:1841 msgid "Show Installed Stock Items" msgstr "" -#: common/models.py:1787 +#: common/models.py:1842 msgid "Display installed stock items in stock tables" msgstr "" -#: common/models.py:1792 +#: common/models.py:1847 msgid "Check BOM when installing items" msgstr "" -#: common/models.py:1794 +#: common/models.py:1849 msgid "Installed stock items must exist in the BOM for the parent part" msgstr "" -#: common/models.py:1800 +#: common/models.py:1855 msgid "Allow Out of Stock Transfer" msgstr "" -#: common/models.py:1802 +#: common/models.py:1857 msgid "Allow stock items which are not in stock to be transferred between stock locations" msgstr "" -#: common/models.py:1808 +#: common/models.py:1863 msgid "Build Order Reference Pattern" msgstr "" -#: common/models.py:1810 +#: common/models.py:1865 msgid "Required pattern for generating Build Order reference field" msgstr "" -#: common/models.py:1816 common/models.py:1872 common/models.py:1894 -#: common/models.py:1930 +#: common/models.py:1871 common/models.py:1927 common/models.py:1949 +#: common/models.py:1985 msgid "Require Responsible Owner" msgstr "" -#: common/models.py:1817 common/models.py:1873 common/models.py:1895 -#: common/models.py:1931 +#: common/models.py:1872 common/models.py:1928 common/models.py:1950 +#: common/models.py:1986 msgid "A responsible owner must be assigned to each order" msgstr "" -#: common/models.py:1822 +#: common/models.py:1877 msgid "Require Active Part" msgstr "" -#: common/models.py:1823 +#: common/models.py:1878 msgid "Prevent build order creation for inactive parts" msgstr "" -#: common/models.py:1828 +#: common/models.py:1883 msgid "Require Locked Part" msgstr "" -#: common/models.py:1829 +#: common/models.py:1884 msgid "Prevent build order creation for unlocked parts" msgstr "" -#: common/models.py:1834 +#: common/models.py:1889 msgid "Require Valid BOM" msgstr "" -#: common/models.py:1836 +#: common/models.py:1891 msgid "Prevent build order creation unless BOM has been validated" msgstr "" -#: common/models.py:1842 +#: common/models.py:1897 msgid "Require Closed Child Orders" msgstr "" -#: common/models.py:1844 +#: common/models.py:1899 msgid "Prevent build order completion until all child orders are closed" msgstr "" -#: common/models.py:1850 +#: common/models.py:1905 msgid "Block Until Tests Pass" msgstr "" -#: common/models.py:1852 +#: common/models.py:1907 msgid "Prevent build outputs from being completed until all required tests pass" msgstr "" -#: common/models.py:1858 +#: common/models.py:1913 msgid "Enable Return Orders" msgstr "" -#: common/models.py:1859 +#: common/models.py:1914 msgid "Enable return order functionality in the user interface" msgstr "" -#: common/models.py:1864 +#: common/models.py:1919 msgid "Return Order Reference Pattern" msgstr "" -#: common/models.py:1866 +#: common/models.py:1921 msgid "Required pattern for generating Return Order reference field" msgstr "" -#: common/models.py:1878 +#: common/models.py:1933 msgid "Edit Completed Return Orders" msgstr "" -#: common/models.py:1880 +#: common/models.py:1935 msgid "Allow editing of return orders after they have been completed" msgstr "" -#: common/models.py:1886 +#: common/models.py:1941 msgid "Sales Order Reference Pattern" msgstr "" -#: common/models.py:1888 +#: common/models.py:1943 msgid "Required pattern for generating Sales Order reference field" msgstr "" -#: common/models.py:1900 +#: common/models.py:1955 msgid "Sales Order Default Shipment" msgstr "" -#: common/models.py:1901 +#: common/models.py:1956 msgid "Enable creation of default shipment with sales orders" msgstr "" -#: common/models.py:1906 +#: common/models.py:1961 msgid "Edit Completed Sales Orders" msgstr "" -#: common/models.py:1908 +#: common/models.py:1963 msgid "Allow editing of sales orders after they have been shipped or completed" msgstr "" -#: common/models.py:1914 +#: common/models.py:1969 msgid "Mark Shipped Orders as Complete" msgstr "" -#: common/models.py:1916 +#: common/models.py:1971 msgid "Sales orders marked as shipped will automatically be completed, bypassing the \"shipped\" status" msgstr "" -#: common/models.py:1922 +#: common/models.py:1977 msgid "Purchase Order Reference Pattern" msgstr "" -#: common/models.py:1924 +#: common/models.py:1979 msgid "Required pattern for generating Purchase Order reference field" msgstr "" -#: common/models.py:1936 +#: common/models.py:1991 msgid "Edit Completed Purchase Orders" msgstr "" -#: common/models.py:1938 +#: common/models.py:1993 msgid "Allow editing of purchase orders after they have been shipped or completed" msgstr "" -#: common/models.py:1944 +#: common/models.py:1999 msgid "Auto Complete Purchase Orders" msgstr "" -#: common/models.py:1946 +#: common/models.py:2001 msgid "Automatically mark purchase orders as complete when all line items are received" msgstr "" -#: common/models.py:1953 +#: common/models.py:2008 msgid "Enable password forgot" msgstr "" -#: common/models.py:1954 +#: common/models.py:2009 msgid "Enable password forgot function on the login pages" msgstr "" -#: common/models.py:1959 +#: common/models.py:2014 msgid "Enable registration" msgstr "" -#: common/models.py:1960 +#: common/models.py:2015 msgid "Enable self-registration for users on the login pages" msgstr "" -#: common/models.py:1965 +#: common/models.py:2020 msgid "Enable SSO" msgstr "" -#: common/models.py:1966 +#: common/models.py:2021 msgid "Enable SSO on the login pages" msgstr "" -#: common/models.py:1971 +#: common/models.py:2026 msgid "Enable SSO registration" msgstr "" -#: common/models.py:1973 +#: common/models.py:2028 msgid "Enable self-registration via SSO for users on the login pages" msgstr "" -#: common/models.py:1979 +#: common/models.py:2034 msgid "Enable SSO group sync" msgstr "" -#: common/models.py:1981 +#: common/models.py:2036 msgid "Enable synchronizing InvenTree groups with groups provided by the IdP" msgstr "" -#: common/models.py:1987 +#: common/models.py:2042 msgid "SSO group key" msgstr "" -#: common/models.py:1989 +#: common/models.py:2044 msgid "The name of the groups claim attribute provided by the IdP" msgstr "" -#: common/models.py:1995 +#: common/models.py:2050 msgid "SSO group map" msgstr "" -#: common/models.py:1997 +#: common/models.py:2052 msgid "A mapping from SSO groups to local InvenTree groups. If the local group does not exist, it will be created." msgstr "" -#: common/models.py:2003 +#: common/models.py:2058 msgid "Remove groups outside of SSO" msgstr "" -#: common/models.py:2005 +#: common/models.py:2060 msgid "Whether groups assigned to the user should be removed if they are not backend by the IdP. Disabling this setting might cause security issues" msgstr "" -#: common/models.py:2011 +#: common/models.py:2066 msgid "Email required" msgstr "" -#: common/models.py:2012 +#: common/models.py:2067 msgid "Require user to supply mail on signup" msgstr "" -#: common/models.py:2017 +#: common/models.py:2072 msgid "Auto-fill SSO users" msgstr "" -#: common/models.py:2019 +#: common/models.py:2074 msgid "Automatically fill out user-details from SSO account-data" msgstr "" -#: common/models.py:2025 +#: common/models.py:2080 msgid "Mail twice" msgstr "" -#: common/models.py:2026 +#: common/models.py:2081 msgid "On signup ask users twice for their mail" msgstr "" -#: common/models.py:2031 +#: common/models.py:2086 msgid "Password twice" msgstr "" -#: common/models.py:2032 +#: common/models.py:2087 msgid "On signup ask users twice for their password" msgstr "" -#: common/models.py:2037 +#: common/models.py:2092 msgid "Allowed domains" msgstr "" -#: common/models.py:2039 +#: common/models.py:2094 msgid "Restrict signup to certain domains (comma-separated, starting with @)" msgstr "" -#: common/models.py:2045 +#: common/models.py:2100 msgid "Group on signup" msgstr "" -#: common/models.py:2047 +#: common/models.py:2102 msgid "Group to which new users are assigned on registration. If SSO group sync is enabled, this group is only set if no group can be assigned from the IdP." msgstr "" -#: common/models.py:2053 +#: common/models.py:2108 msgid "Enforce MFA" msgstr "" -#: common/models.py:2054 +#: common/models.py:2109 msgid "Users must use multifactor security." msgstr "" -#: common/models.py:2059 +#: common/models.py:2114 msgid "Check plugins on startup" msgstr "" -#: common/models.py:2061 +#: common/models.py:2116 msgid "Check that all plugins are installed on startup - enable in container environments" msgstr "" -#: common/models.py:2069 +#: common/models.py:2124 msgid "Check for plugin updates" msgstr "" -#: common/models.py:2070 +#: common/models.py:2125 msgid "Enable periodic checks for updates to installed plugins" msgstr "" -#: common/models.py:2076 +#: common/models.py:2131 msgid "Enable URL integration" msgstr "" -#: common/models.py:2077 +#: common/models.py:2132 msgid "Enable plugins to add URL routes" msgstr "" -#: common/models.py:2083 +#: common/models.py:2138 msgid "Enable navigation integration" msgstr "" -#: common/models.py:2084 +#: common/models.py:2139 msgid "Enable plugins to integrate into navigation" msgstr "" -#: common/models.py:2090 +#: common/models.py:2145 msgid "Enable app integration" msgstr "" -#: common/models.py:2091 +#: common/models.py:2146 msgid "Enable plugins to add apps" msgstr "" -#: common/models.py:2097 +#: common/models.py:2152 msgid "Enable schedule integration" msgstr "" -#: common/models.py:2098 +#: common/models.py:2153 msgid "Enable plugins to run scheduled tasks" msgstr "" -#: common/models.py:2104 +#: common/models.py:2159 msgid "Enable event integration" msgstr "" -#: common/models.py:2105 +#: common/models.py:2160 msgid "Enable plugins to respond to internal events" msgstr "" -#: common/models.py:2111 +#: common/models.py:2166 +msgid "Enable interface integration" +msgstr "" + +#: common/models.py:2167 +msgid "Enable plugins to integrate into the user interface" +msgstr "" + +#: common/models.py:2173 msgid "Enable project codes" msgstr "" -#: common/models.py:2112 +#: common/models.py:2174 msgid "Enable project codes for tracking projects" msgstr "" -#: common/models.py:2117 +#: common/models.py:2179 msgid "Stocktake Functionality" msgstr "" -#: common/models.py:2119 +#: common/models.py:2181 msgid "Enable stocktake functionality for recording stock levels and calculating stock value" msgstr "" -#: common/models.py:2125 +#: common/models.py:2187 msgid "Exclude External Locations" msgstr "" -#: common/models.py:2127 +#: common/models.py:2189 msgid "Exclude stock items in external locations from stocktake calculations" msgstr "" -#: common/models.py:2133 +#: common/models.py:2195 msgid "Automatic Stocktake Period" msgstr "" -#: common/models.py:2135 +#: common/models.py:2197 msgid "Number of days between automatic stocktake recording (set to zero to disable)" msgstr "" -#: common/models.py:2141 +#: common/models.py:2203 msgid "Report Deletion Interval" msgstr "" -#: common/models.py:2143 +#: common/models.py:2205 msgid "Stocktake reports will be deleted after specified number of days" msgstr "" -#: common/models.py:2150 +#: common/models.py:2212 msgid "Display Users full names" msgstr "" -#: common/models.py:2151 +#: common/models.py:2213 msgid "Display Users full names instead of usernames" msgstr "" -#: common/models.py:2156 +#: common/models.py:2218 msgid "Enable Test Station Data" msgstr "" -#: common/models.py:2157 +#: common/models.py:2219 msgid "Enable test station data collection for test results" msgstr "" -#: common/models.py:2169 common/models.py:2549 -msgid "Settings key (must be unique - case insensitive" -msgstr "" - -#: common/models.py:2212 -msgid "Hide inactive parts" -msgstr "" - -#: common/models.py:2214 -msgid "Hide inactive parts in results displayed on the homepage" -msgstr "" - -#: common/models.py:2220 -msgid "Show subscribed parts" -msgstr "" - -#: common/models.py:2221 -msgid "Show subscribed parts on the homepage" +#: common/models.py:2224 +msgid "Create Template on Upload" msgstr "" #: common/models.py:2226 -msgid "Show subscribed categories" +msgid "Create a new test template when uploading test data which does not match an existing template" msgstr "" -#: common/models.py:2227 -msgid "Show subscribed part categories on the homepage" -msgstr "" - -#: common/models.py:2232 -msgid "Show latest parts" -msgstr "" - -#: common/models.py:2233 -msgid "Show latest parts on the homepage" -msgstr "" - -#: common/models.py:2238 -msgid "Show invalid BOMs" -msgstr "" - -#: common/models.py:2239 -msgid "Show BOMs that await validation on the homepage" -msgstr "" - -#: common/models.py:2244 -msgid "Show recent stock changes" -msgstr "" - -#: common/models.py:2245 -msgid "Show recently changed stock items on the homepage" -msgstr "" - -#: common/models.py:2250 -msgid "Show low stock" -msgstr "" - -#: common/models.py:2251 -msgid "Show low stock items on the homepage" -msgstr "" - -#: common/models.py:2256 -msgid "Show depleted stock" -msgstr "" - -#: common/models.py:2257 -msgid "Show depleted stock items on the homepage" -msgstr "" - -#: common/models.py:2262 -msgid "Show needed stock" -msgstr "" - -#: common/models.py:2263 -msgid "Show stock items needed for builds on the homepage" -msgstr "" - -#: common/models.py:2268 -msgid "Show expired stock" -msgstr "" - -#: common/models.py:2269 -msgid "Show expired stock items on the homepage" -msgstr "" - -#: common/models.py:2274 -msgid "Show stale stock" -msgstr "" - -#: common/models.py:2275 -msgid "Show stale stock items on the homepage" -msgstr "" - -#: common/models.py:2280 -msgid "Show pending builds" +#: common/models.py:2279 +msgid "Hide inactive parts" msgstr "" #: common/models.py:2281 -msgid "Show pending builds on the homepage" -msgstr "" - -#: common/models.py:2286 -msgid "Show overdue builds" +msgid "Hide inactive parts in results displayed on the homepage" msgstr "" #: common/models.py:2287 -msgid "Show overdue builds on the homepage" +msgid "Show subscribed parts" msgstr "" -#: common/models.py:2292 -msgid "Show outstanding POs" +#: common/models.py:2288 +msgid "Show subscribed parts on the homepage" msgstr "" #: common/models.py:2293 -msgid "Show outstanding POs on the homepage" +msgid "Show subscribed categories" msgstr "" -#: common/models.py:2298 -msgid "Show overdue POs" +#: common/models.py:2294 +msgid "Show subscribed part categories on the homepage" msgstr "" #: common/models.py:2299 -msgid "Show overdue POs on the homepage" +msgid "Show latest parts" msgstr "" -#: common/models.py:2304 -msgid "Show outstanding SOs" +#: common/models.py:2300 +msgid "Show latest parts on the homepage" msgstr "" #: common/models.py:2305 -msgid "Show outstanding SOs on the homepage" +msgid "Show invalid BOMs" msgstr "" -#: common/models.py:2310 -msgid "Show overdue SOs" +#: common/models.py:2306 +msgid "Show BOMs that await validation on the homepage" msgstr "" #: common/models.py:2311 -msgid "Show overdue SOs on the homepage" +msgid "Show recent stock changes" msgstr "" -#: common/models.py:2316 -msgid "Show pending SO shipments" +#: common/models.py:2312 +msgid "Show recently changed stock items on the homepage" msgstr "" #: common/models.py:2317 -msgid "Show pending SO shipments on the homepage" +msgid "Show low stock" msgstr "" -#: common/models.py:2322 -msgid "Show News" +#: common/models.py:2318 +msgid "Show low stock items on the homepage" msgstr "" #: common/models.py:2323 -msgid "Show news on the homepage" +msgid "Show depleted stock" msgstr "" -#: common/models.py:2328 -msgid "Inline label display" +#: common/models.py:2324 +msgid "Show depleted stock items on the homepage" +msgstr "" + +#: common/models.py:2329 +msgid "Show needed stock" msgstr "" #: common/models.py:2330 -msgid "Display PDF labels in the browser, instead of downloading as a file" +msgid "Show stock items needed for builds on the homepage" +msgstr "" + +#: common/models.py:2335 +msgid "Show expired stock" msgstr "" #: common/models.py:2336 -msgid "Default label printer" +msgid "Show expired stock items on the homepage" msgstr "" -#: common/models.py:2338 -msgid "Configure which label printer should be selected by default" +#: common/models.py:2341 +msgid "Show stale stock" msgstr "" -#: common/models.py:2344 -msgid "Inline report display" +#: common/models.py:2342 +msgid "Show stale stock items on the homepage" msgstr "" -#: common/models.py:2346 -msgid "Display PDF reports in the browser, instead of downloading as a file" +#: common/models.py:2347 +msgid "Show pending builds" msgstr "" -#: common/models.py:2352 -msgid "Search Parts" +#: common/models.py:2348 +msgid "Show pending builds on the homepage" msgstr "" #: common/models.py:2353 -msgid "Display parts in search preview window" +msgid "Show overdue builds" msgstr "" -#: common/models.py:2358 -msgid "Search Supplier Parts" +#: common/models.py:2354 +msgid "Show overdue builds on the homepage" msgstr "" #: common/models.py:2359 -msgid "Display supplier parts in search preview window" +msgid "Show outstanding POs" msgstr "" -#: common/models.py:2364 -msgid "Search Manufacturer Parts" +#: common/models.py:2360 +msgid "Show outstanding POs on the homepage" msgstr "" #: common/models.py:2365 -msgid "Display manufacturer parts in search preview window" +msgid "Show overdue POs" msgstr "" -#: common/models.py:2370 -msgid "Hide Inactive Parts" +#: common/models.py:2366 +msgid "Show overdue POs on the homepage" msgstr "" #: common/models.py:2371 -msgid "Excluded inactive parts from search preview window" +msgid "Show outstanding SOs" msgstr "" -#: common/models.py:2376 -msgid "Search Categories" +#: common/models.py:2372 +msgid "Show outstanding SOs on the homepage" msgstr "" #: common/models.py:2377 -msgid "Display part categories in search preview window" +msgid "Show overdue SOs" msgstr "" -#: common/models.py:2382 -msgid "Search Stock" +#: common/models.py:2378 +msgid "Show overdue SOs on the homepage" msgstr "" #: common/models.py:2383 -msgid "Display stock items in search preview window" +msgid "Show pending SO shipments" msgstr "" -#: common/models.py:2388 -msgid "Hide Unavailable Stock Items" +#: common/models.py:2384 +msgid "Show pending SO shipments on the homepage" +msgstr "" + +#: common/models.py:2389 +msgid "Show News" msgstr "" #: common/models.py:2390 -msgid "Exclude stock items which are not available from the search preview window" +msgid "Show news on the homepage" msgstr "" -#: common/models.py:2396 -msgid "Search Locations" +#: common/models.py:2395 +msgid "Inline label display" msgstr "" #: common/models.py:2397 -msgid "Display stock locations in search preview window" -msgstr "" - -#: common/models.py:2402 -msgid "Search Companies" +msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "" #: common/models.py:2403 -msgid "Display companies in search preview window" +msgid "Default label printer" msgstr "" -#: common/models.py:2408 -msgid "Search Build Orders" +#: common/models.py:2405 +msgid "Configure which label printer should be selected by default" msgstr "" -#: common/models.py:2409 -msgid "Display build orders in search preview window" +#: common/models.py:2411 +msgid "Inline report display" msgstr "" -#: common/models.py:2414 -msgid "Search Purchase Orders" +#: common/models.py:2413 +msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:2415 -msgid "Display purchase orders in search preview window" +#: common/models.py:2419 +msgid "Search Parts" msgstr "" #: common/models.py:2420 -msgid "Exclude Inactive Purchase Orders" +msgid "Display parts in search preview window" msgstr "" -#: common/models.py:2422 -msgid "Exclude inactive purchase orders from search preview window" +#: common/models.py:2425 +msgid "Search Supplier Parts" msgstr "" -#: common/models.py:2428 -msgid "Search Sales Orders" +#: common/models.py:2426 +msgid "Display supplier parts in search preview window" msgstr "" -#: common/models.py:2429 -msgid "Display sales orders in search preview window" +#: common/models.py:2431 +msgid "Search Manufacturer Parts" msgstr "" -#: common/models.py:2434 -msgid "Exclude Inactive Sales Orders" +#: common/models.py:2432 +msgid "Display manufacturer parts in search preview window" msgstr "" -#: common/models.py:2436 -msgid "Exclude inactive sales orders from search preview window" +#: common/models.py:2437 +msgid "Hide Inactive Parts" msgstr "" -#: common/models.py:2442 -msgid "Search Return Orders" +#: common/models.py:2438 +msgid "Excluded inactive parts from search preview window" msgstr "" #: common/models.py:2443 -msgid "Display return orders in search preview window" +msgid "Search Categories" msgstr "" -#: common/models.py:2448 -msgid "Exclude Inactive Return Orders" +#: common/models.py:2444 +msgid "Display part categories in search preview window" +msgstr "" + +#: common/models.py:2449 +msgid "Search Stock" msgstr "" #: common/models.py:2450 -msgid "Exclude inactive return orders from search preview window" +msgid "Display stock items in search preview window" msgstr "" -#: common/models.py:2456 -msgid "Search Preview Results" +#: common/models.py:2455 +msgid "Hide Unavailable Stock Items" msgstr "" -#: common/models.py:2458 -msgid "Number of results to show in each section of the search preview window" +#: common/models.py:2457 +msgid "Exclude stock items which are not available from the search preview window" +msgstr "" + +#: common/models.py:2463 +msgid "Search Locations" msgstr "" #: common/models.py:2464 -msgid "Regex Search" +msgid "Display stock locations in search preview window" msgstr "" -#: common/models.py:2465 -msgid "Enable regular expressions in search queries" +#: common/models.py:2469 +msgid "Search Companies" msgstr "" #: common/models.py:2470 -msgid "Whole Word Search" +msgid "Display companies in search preview window" msgstr "" -#: common/models.py:2471 -msgid "Search queries return results for whole word matches" +#: common/models.py:2475 +msgid "Search Build Orders" msgstr "" #: common/models.py:2476 -msgid "Show Quantity in Forms" +msgid "Display build orders in search preview window" msgstr "" -#: common/models.py:2477 -msgid "Display available part quantity in some forms" +#: common/models.py:2481 +msgid "Search Purchase Orders" msgstr "" #: common/models.py:2482 -msgid "Escape Key Closes Forms" +msgid "Display purchase orders in search preview window" msgstr "" -#: common/models.py:2483 -msgid "Use the escape key to close modal forms" -msgstr "" - -#: common/models.py:2488 -msgid "Fixed Navbar" +#: common/models.py:2487 +msgid "Exclude Inactive Purchase Orders" msgstr "" #: common/models.py:2489 -msgid "The navbar position is fixed to the top of the screen" -msgstr "" - -#: common/models.py:2494 -msgid "Date Format" +msgid "Exclude inactive purchase orders from search preview window" msgstr "" #: common/models.py:2495 -msgid "Preferred format for displaying dates" +msgid "Search Sales Orders" msgstr "" -#: common/models.py:2508 part/templates/part/detail.html:41 -msgid "Part Scheduling" +#: common/models.py:2496 +msgid "Display sales orders in search preview window" +msgstr "" + +#: common/models.py:2501 +msgid "Exclude Inactive Sales Orders" +msgstr "" + +#: common/models.py:2503 +msgid "Exclude inactive sales orders from search preview window" msgstr "" #: common/models.py:2509 -msgid "Display part scheduling information" +msgid "Search Return Orders" msgstr "" -#: common/models.py:2514 part/templates/part/detail.html:62 -msgid "Part Stocktake" +#: common/models.py:2510 +msgid "Display return orders in search preview window" msgstr "" -#: common/models.py:2516 -msgid "Display part stocktake information (if stocktake functionality is enabled)" +#: common/models.py:2515 +msgid "Exclude Inactive Return Orders" msgstr "" -#: common/models.py:2522 -msgid "Table String Length" +#: common/models.py:2517 +msgid "Exclude inactive return orders from search preview window" msgstr "" -#: common/models.py:2524 -msgid "Maximum length limit for strings displayed in table views" +#: common/models.py:2523 +msgid "Search Preview Results" msgstr "" -#: common/models.py:2530 -msgid "Receive error reports" +#: common/models.py:2525 +msgid "Number of results to show in each section of the search preview window" msgstr "" #: common/models.py:2531 -msgid "Receive notifications for system errors" +msgid "Regex Search" msgstr "" -#: common/models.py:2536 -msgid "Last used printing machines" +#: common/models.py:2532 +msgid "Enable regular expressions in search queries" msgstr "" #: common/models.py:2537 +msgid "Whole Word Search" +msgstr "" + +#: common/models.py:2538 +msgid "Search queries return results for whole word matches" +msgstr "" + +#: common/models.py:2543 +msgid "Show Quantity in Forms" +msgstr "" + +#: common/models.py:2544 +msgid "Display available part quantity in some forms" +msgstr "" + +#: common/models.py:2549 +msgid "Escape Key Closes Forms" +msgstr "" + +#: common/models.py:2550 +msgid "Use the escape key to close modal forms" +msgstr "" + +#: common/models.py:2555 +msgid "Fixed Navbar" +msgstr "" + +#: common/models.py:2556 +msgid "The navbar position is fixed to the top of the screen" +msgstr "" + +#: common/models.py:2561 +msgid "Date Format" +msgstr "" + +#: common/models.py:2562 +msgid "Preferred format for displaying dates" +msgstr "" + +#: common/models.py:2575 part/templates/part/detail.html:41 +msgid "Part Scheduling" +msgstr "" + +#: common/models.py:2576 +msgid "Display part scheduling information" +msgstr "" + +#: common/models.py:2581 part/templates/part/detail.html:62 +msgid "Part Stocktake" +msgstr "" + +#: common/models.py:2583 +msgid "Display part stocktake information (if stocktake functionality is enabled)" +msgstr "" + +#: common/models.py:2589 +msgid "Table String Length" +msgstr "" + +#: common/models.py:2591 +msgid "Maximum length limit for strings displayed in table views" +msgstr "" + +#: common/models.py:2597 +msgid "Receive error reports" +msgstr "" + +#: common/models.py:2598 +msgid "Receive notifications for system errors" +msgstr "" + +#: common/models.py:2603 +msgid "Last used printing machines" +msgstr "" + +#: common/models.py:2604 msgid "Save the last used printing machines for a user" msgstr "" -#: common/models.py:2557 common/models.py:2558 common/models.py:2715 -#: common/models.py:2716 common/models.py:2961 common/models.py:2962 -#: common/models.py:3288 common/models.py:3289 importer/models.py:88 -#: part/models.py:3307 part/models.py:3394 part/models.py:3468 -#: part/models.py:3496 plugin/models.py:274 plugin/models.py:275 -#: report/templates/report/inventree_test_report.html:105 -#: templates/js/translated/stock.js:3120 users/models.py:111 +#: common/models.py:2621 common/models.py:2622 common/models.py:2779 +#: common/models.py:2780 common/models.py:3025 common/models.py:3026 +#: common/models.py:3349 common/models.py:3350 common/models.py:3534 +#: importer/models.py:89 part/models.py:3358 part/models.py:3445 +#: part/models.py:3519 part/models.py:3547 plugin/models.py:313 +#: plugin/models.py:314 report/templates/report/inventree_test_report.html:105 +#: templates/js/translated/stock.js:3121 users/models.py:111 msgid "User" msgstr "" -#: common/models.py:2580 +#: common/models.py:2644 msgid "Price break quantity" msgstr "" -#: common/models.py:2587 company/serializers.py:513 order/admin.py:42 -#: order/models.py:1430 order/models.py:2417 -#: templates/js/translated/company.js:1823 templates/js/translated/part.js:1892 +#: common/models.py:2651 company/serializers.py:524 order/admin.py:42 +#: order/models.py:1447 order/models.py:2456 +#: templates/js/translated/company.js:1824 templates/js/translated/part.js:1892 #: templates/js/translated/pricing.js:621 #: templates/js/translated/return_order.js:739 msgid "Price" msgstr "" -#: common/models.py:2588 +#: common/models.py:2652 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:2692 common/models.py:2877 +#: common/models.py:2756 common/models.py:2941 msgid "Endpoint" msgstr "" -#: common/models.py:2693 +#: common/models.py:2757 msgid "Endpoint at which this webhook is received" msgstr "" -#: common/models.py:2703 +#: common/models.py:2767 msgid "Name for this webhook" msgstr "" -#: common/models.py:2707 +#: common/models.py:2771 msgid "Is this webhook active" msgstr "" -#: common/models.py:2723 users/models.py:159 +#: common/models.py:2787 users/models.py:159 msgid "Token" msgstr "" -#: common/models.py:2724 +#: common/models.py:2788 msgid "Token for access" msgstr "" -#: common/models.py:2732 +#: common/models.py:2796 msgid "Secret" msgstr "" -#: common/models.py:2733 +#: common/models.py:2797 msgid "Shared secret for HMAC" msgstr "" -#: common/models.py:2841 +#: common/models.py:2905 msgid "Message ID" msgstr "" -#: common/models.py:2842 +#: common/models.py:2906 msgid "Unique identifier for this message" msgstr "" -#: common/models.py:2850 +#: common/models.py:2914 msgid "Host" msgstr "" -#: common/models.py:2851 +#: common/models.py:2915 msgid "Host from which this message was received" msgstr "" -#: common/models.py:2859 +#: common/models.py:2923 msgid "Header" msgstr "" -#: common/models.py:2860 +#: common/models.py:2924 msgid "Header of this message" msgstr "" -#: common/models.py:2867 +#: common/models.py:2931 msgid "Body" msgstr "" -#: common/models.py:2868 +#: common/models.py:2932 msgid "Body of this message" msgstr "" -#: common/models.py:2878 +#: common/models.py:2942 msgid "Endpoint on which this message was received" msgstr "" -#: common/models.py:2883 +#: common/models.py:2947 msgid "Worked on" msgstr "" -#: common/models.py:2884 +#: common/models.py:2948 msgid "Was the work on this message finished?" msgstr "" -#: common/models.py:3010 +#: common/models.py:3074 msgid "Id" msgstr "" -#: common/models.py:3012 templates/js/translated/company.js:965 -#: templates/js/translated/news.js:44 +#: common/models.py:3076 part/serializers.py:271 +#: templates/js/translated/company.js:966 templates/js/translated/news.js:44 msgid "Title" msgstr "" -#: common/models.py:3014 common/models.py:3272 company/models.py:149 -#: company/models.py:446 company/models.py:512 company/models.py:818 -#: order/models.py:302 order/models.py:1385 order/models.py:1817 -#: part/admin.py:55 part/models.py:1057 +#: common/models.py:3078 common/models.py:3333 company/models.py:146 +#: company/models.py:443 company/models.py:509 company/models.py:815 +#: order/models.py:309 order/models.py:1402 order/models.py:1846 +#: part/admin.py:55 part/models.py:1118 #: part/templates/part/part_scheduling.html:11 #: report/templates/report/inventree_build_order_report.html:164 -#: stock/admin.py:229 templates/js/translated/company.js:1319 -#: templates/js/translated/company.js:1673 templates/js/translated/order.js:376 +#: stock/admin.py:230 templates/js/translated/company.js:1320 +#: templates/js/translated/company.js:1674 templates/js/translated/order.js:376 #: templates/js/translated/part.js:2475 -#: templates/js/translated/purchase_order.js:2110 -#: templates/js/translated/purchase_order.js:2274 +#: templates/js/translated/purchase_order.js:2094 +#: templates/js/translated/purchase_order.js:2258 #: templates/js/translated/return_order.js:778 -#: templates/js/translated/sales_order.js:1092 -#: templates/js/translated/sales_order.js:2023 +#: templates/js/translated/sales_order.js:1058 +#: templates/js/translated/sales_order.js:2004 msgid "Link" msgstr "" -#: common/models.py:3016 templates/js/translated/news.js:60 +#: common/models.py:3080 templates/js/translated/news.js:60 msgid "Published" msgstr "" -#: common/models.py:3018 templates/InvenTree/settings/plugin_settings.html:32 +#: common/models.py:3082 templates/InvenTree/settings/plugin_settings.html:32 #: templates/js/translated/news.js:56 templates/js/translated/plugin.js:103 msgid "Author" msgstr "" -#: common/models.py:3020 templates/js/translated/news.js:52 +#: common/models.py:3084 templates/js/translated/news.js:52 msgid "Summary" msgstr "" -#: common/models.py:3023 +#: common/models.py:3087 msgid "Read" msgstr "" -#: common/models.py:3023 +#: common/models.py:3087 msgid "Was this news item read?" msgstr "" -#: common/models.py:3040 company/models.py:159 part/models.py:1067 +#: common/models.py:3104 company/models.py:156 part/models.py:1128 #: report/templates/report/inventree_bill_of_materials_report.html:126 #: report/templates/report/inventree_bill_of_materials_report.html:148 #: report/templates/report/inventree_return_order_report.html:35 -#: stock/templates/stock/item_base.html:133 templates/503.html:31 +#: stock/templates/stock/item_base.html:130 templates/503.html:31 #: templates/hover_image.html:7 templates/hover_image.html:9 #: templates/modals.html:6 msgid "Image" msgstr "" -#: common/models.py:3040 +#: common/models.py:3104 msgid "Image file" msgstr "" -#: common/models.py:3052 common/models.py:3256 +#: common/models.py:3116 common/models.py:3317 msgid "Target model type for this image" msgstr "" -#: common/models.py:3056 +#: common/models.py:3120 msgid "Target model ID for this image" msgstr "" -#: common/models.py:3078 +#: common/models.py:3142 msgid "Custom Unit" msgstr "" -#: common/models.py:3099 +#: common/models.py:3160 msgid "Unit symbol must be unique" msgstr "" -#: common/models.py:3114 +#: common/models.py:3175 msgid "Unit name must be a valid identifier" msgstr "" -#: common/models.py:3133 +#: common/models.py:3194 msgid "Unit name" msgstr "" -#: common/models.py:3140 templates/InvenTree/settings/settings_staff_js.html:75 +#: common/models.py:3201 templates/InvenTree/settings/settings_staff_js.html:75 msgid "Symbol" msgstr "" -#: common/models.py:3141 +#: common/models.py:3202 msgid "Optional unit symbol" msgstr "" -#: common/models.py:3147 templates/InvenTree/settings/settings_staff_js.html:71 +#: common/models.py:3208 templates/InvenTree/settings/settings_staff_js.html:71 msgid "Definition" msgstr "" -#: common/models.py:3148 +#: common/models.py:3209 msgid "Unit definition" msgstr "" -#: common/models.py:3206 common/models.py:3263 stock/models.py:2558 -#: templates/js/translated/attachment.js:119 +#: common/models.py:3267 common/models.py:3324 stock/models.py:2674 +#: stock/serializers.py:244 templates/js/translated/attachment.js:119 #: templates/js/translated/attachment.js:345 msgid "Attachment" msgstr "" -#: common/models.py:3218 +#: common/models.py:3279 msgid "Missing file" msgstr "" -#: common/models.py:3219 +#: common/models.py:3280 msgid "Missing external link" msgstr "" -#: common/models.py:3264 +#: common/models.py:3325 msgid "Select file to attach" msgstr "" -#: common/models.py:3279 templates/js/translated/attachment.js:120 +#: common/models.py:3340 templates/js/translated/attachment.js:120 #: templates/js/translated/attachment.js:360 msgid "Comment" msgstr "" -#: common/models.py:3280 +#: common/models.py:3341 msgid "Attachment comment" msgstr "" -#: common/models.py:3296 +#: common/models.py:3357 msgid "Upload date" msgstr "" -#: common/models.py:3297 +#: common/models.py:3358 msgid "Date the file was uploaded" msgstr "" -#: common/models.py:3301 +#: common/models.py:3362 msgid "File size" msgstr "" -#: common/models.py:3301 +#: common/models.py:3362 msgid "File size in bytes" msgstr "" -#: common/models.py:3339 common/serializers.py:562 +#: common/models.py:3400 common/serializers.py:609 msgid "Invalid model type specified for attachment" msgstr "" -#: common/notifications.py:314 +#: common/models.py:3409 plugin/models.py:43 users/models.py:100 +msgid "Key" +msgstr "" + +#: common/models.py:3410 +msgid "Value that will be saved in the models database" +msgstr "" + +#: common/models.py:3413 +msgid "Name of the state" +msgstr "" + +#: common/models.py:3417 part/serializers.py:273 +msgid "Label" +msgstr "" + +#: common/models.py:3418 +msgid "Label that will be displayed in the frontend" +msgstr "" + +#: common/models.py:3424 +msgid "Color" +msgstr "" + +#: common/models.py:3425 +msgid "Color that will be displayed in the frontend" +msgstr "" + +#: common/models.py:3428 +msgid "Logical Key" +msgstr "" + +#: common/models.py:3430 +msgid "State logical key that is equal to this custom state in business logic" +msgstr "" + +#: common/models.py:3438 part/serializers.py:275 +msgid "Model" +msgstr "" + +#: common/models.py:3439 +msgid "Model this state is associated with" +msgstr "" + +#: common/models.py:3443 +msgid "Reference Status Set" +msgstr "" + +#: common/models.py:3444 +msgid "Status set that is extended with this custom state" +msgstr "" + +#: common/models.py:3450 +msgid "Custom State" +msgstr "" + +#: common/models.py:3451 +msgid "Custom States" +msgstr "" + +#: common/models.py:3466 +msgid "Model must be selected" +msgstr "" + +#: common/models.py:3469 +msgid "Key must be selected" +msgstr "" + +#: common/models.py:3472 +msgid "Logical key must be selected" +msgstr "" + +#: common/models.py:3476 +msgid "Key must be different from logical key" +msgstr "" + +#: common/models.py:3480 +msgid "Reference status must be selected" +msgstr "" + +#: common/models.py:3492 +msgid "Reference status set not found" +msgstr "" + +#: common/models.py:3498 +msgid "Key must be different from the logical keys of the reference status" +msgstr "" + +#: common/models.py:3504 +msgid "Logical key must be in the logical keys of the reference status" +msgstr "" + +#: common/models.py:3519 +msgid "Barcode Scan" +msgstr "" + +#: common/models.py:3523 importer/models.py:512 part/models.py:4009 +msgid "Data" +msgstr "" + +#: common/models.py:3524 +msgid "Barcode data" +msgstr "" + +#: common/models.py:3535 +msgid "User who scanned the barcode" +msgstr "" + +#: common/models.py:3540 importer/models.py:60 +msgid "Timestamp" +msgstr "" + +#: common/models.py:3541 +msgid "Date and time of the barcode scan" +msgstr "" + +#: common/models.py:3547 +msgid "URL endpoint which processed the barcode" +msgstr "" + +#: common/models.py:3554 order/models.py:1437 plugin/serializers.py:89 +msgid "Context" +msgstr "" + +#: common/models.py:3555 +msgid "Context data for the barcode scan" +msgstr "" + +#: common/models.py:3562 +msgid "Response" +msgstr "" + +#: common/models.py:3563 +msgid "Response data from the barcode scan" +msgstr "" + +#: common/models.py:3569 report/templates/report/inventree_test_report.html:103 +#: stock/models.py:2660 +msgid "Result" +msgstr "" + +#: common/models.py:3570 +msgid "Was the barcode scan successful?" +msgstr "" + +#: common/notifications.py:328 #, python-brace-format msgid "New {verbose_name}" msgstr "" -#: common/notifications.py:316 +#: common/notifications.py:330 msgid "A new order has been created and assigned to you" msgstr "" -#: common/notifications.py:322 +#: common/notifications.py:336 #, python-brace-format msgid "{verbose_name} canceled" msgstr "" -#: common/notifications.py:324 +#: common/notifications.py:338 msgid "A order that is assigned to you was canceled" msgstr "" -#: common/notifications.py:330 common/notifications.py:337 order/api.py:462 +#: common/notifications.py:344 common/notifications.py:351 order/api.py:440 msgid "Items Received" msgstr "" -#: common/notifications.py:332 +#: common/notifications.py:346 msgid "Items have been received against a purchase order" msgstr "" -#: common/notifications.py:339 +#: common/notifications.py:353 msgid "Items have been received against a return order" msgstr "" -#: common/notifications.py:457 +#: common/notifications.py:475 msgid "Error raised by plugin" msgstr "" -#: common/serializers.py:375 +#: common/serializers.py:423 msgid "Is Running" msgstr "" -#: common/serializers.py:381 +#: common/serializers.py:429 msgid "Pending Tasks" msgstr "" -#: common/serializers.py:387 +#: common/serializers.py:435 msgid "Scheduled Tasks" msgstr "" -#: common/serializers.py:393 +#: common/serializers.py:441 msgid "Failed Tasks" msgstr "" -#: common/serializers.py:408 +#: common/serializers.py:456 msgid "Task ID" msgstr "" -#: common/serializers.py:408 +#: common/serializers.py:456 msgid "Unique task ID" msgstr "" -#: common/serializers.py:410 +#: common/serializers.py:458 msgid "Lock" msgstr "" -#: common/serializers.py:410 +#: common/serializers.py:458 msgid "Lock time" msgstr "" -#: common/serializers.py:412 +#: common/serializers.py:460 msgid "Task name" msgstr "" -#: common/serializers.py:414 +#: common/serializers.py:462 msgid "Function" msgstr "" -#: common/serializers.py:414 +#: common/serializers.py:462 msgid "Function name" msgstr "" -#: common/serializers.py:416 +#: common/serializers.py:464 msgid "Arguments" msgstr "" -#: common/serializers.py:416 +#: common/serializers.py:464 msgid "Task arguments" msgstr "" -#: common/serializers.py:419 +#: common/serializers.py:467 msgid "Keyword Arguments" msgstr "" -#: common/serializers.py:419 +#: common/serializers.py:467 msgid "Task keyword arguments" msgstr "" -#: common/serializers.py:529 +#: common/serializers.py:577 msgid "Filename" msgstr "" -#: common/serializers.py:536 report/api.py:100 report/serializers.py:53 +#: common/serializers.py:584 report/api.py:100 report/serializers.py:54 msgid "Model Type" msgstr "" -#: common/serializers.py:565 +#: common/serializers.py:612 msgid "User does not have permission to create or edit attachments for this model" msgstr "" @@ -4116,15 +4295,15 @@ msgstr "" msgid "Match Items" msgstr "" -#: common/views.py:401 +#: common/views.py:397 msgid "Fields matching failed" msgstr "" -#: common/views.py:464 +#: common/views.py:460 msgid "Parts imported" msgstr "" -#: common/views.py:494 order/templates/order/order_wizard/match_fields.html:27 +#: common/views.py:490 order/templates/order/order_wizard/match_fields.html:27 #: order/templates/order/order_wizard/match_parts.html:19 #: order/templates/order/order_wizard/po_upload.html:49 #: part/templates/part/import_wizard/match_fields.html:27 @@ -4155,429 +4334,429 @@ msgstr "" msgid "Supplier is Active" msgstr "" -#: company/models.py:100 company/models.py:371 +#: company/models.py:97 company/models.py:368 #: company/templates/company/company_base.html:8 #: company/templates/company/company_base.html:12 stock/api.py:812 -#: templates/InvenTree/search.html:178 templates/js/translated/company.js:496 +#: templates/InvenTree/search.html:178 templates/js/translated/company.js:497 msgid "Company" msgstr "" -#: company/models.py:101 company/views.py:51 +#: company/models.py:98 company/views.py:51 #: templates/js/translated/search.js:192 msgid "Companies" msgstr "" -#: company/models.py:117 +#: company/models.py:114 msgid "Company description" msgstr "" -#: company/models.py:118 +#: company/models.py:115 msgid "Description of the company" msgstr "" -#: company/models.py:123 company/templates/company/company_base.html:106 +#: company/models.py:120 company/templates/company/company_base.html:106 #: templates/InvenTree/settings/plugin_settings.html:54 -#: templates/js/translated/company.js:532 +#: templates/js/translated/company.js:533 msgid "Website" msgstr "" -#: company/models.py:123 +#: company/models.py:120 msgid "Company website URL" msgstr "" -#: company/models.py:128 +#: company/models.py:125 msgid "Phone number" msgstr "" -#: company/models.py:130 +#: company/models.py:127 msgid "Contact phone number" msgstr "" -#: company/models.py:137 +#: company/models.py:134 msgid "Contact email address" msgstr "" -#: company/models.py:142 company/models.py:275 -#: company/templates/company/company_base.html:145 order/models.py:342 -#: order/templates/order/order_base.html:208 -#: order/templates/order/return_order_base.html:177 -#: order/templates/order/sales_order_base.html:221 +#: company/models.py:139 company/models.py:272 +#: company/templates/company/company_base.html:145 order/models.py:349 +#: order/templates/order/order_base.html:217 +#: order/templates/order/return_order_base.html:178 +#: order/templates/order/sales_order_base.html:222 msgid "Contact" msgstr "" -#: company/models.py:144 +#: company/models.py:141 msgid "Point of contact" msgstr "" -#: company/models.py:150 +#: company/models.py:147 msgid "Link to external company information" msgstr "" -#: company/models.py:163 +#: company/models.py:160 msgid "Is this company active?" msgstr "" -#: company/models.py:168 +#: company/models.py:165 msgid "Is customer" msgstr "" -#: company/models.py:169 +#: company/models.py:166 msgid "Do you sell items to this company?" msgstr "" -#: company/models.py:174 +#: company/models.py:171 msgid "Is supplier" msgstr "" -#: company/models.py:175 +#: company/models.py:172 msgid "Do you purchase items from this company?" msgstr "" -#: company/models.py:180 +#: company/models.py:177 msgid "Is manufacturer" msgstr "" -#: company/models.py:181 +#: company/models.py:178 msgid "Does this company manufacture parts?" msgstr "" -#: company/models.py:189 +#: company/models.py:186 msgid "Default currency used for this company" msgstr "" -#: company/models.py:314 company/templates/company/company_base.html:124 -#: order/models.py:352 order/templates/order/order_base.html:215 -#: order/templates/order/return_order_base.html:184 -#: order/templates/order/sales_order_base.html:228 +#: company/models.py:311 company/templates/company/company_base.html:124 +#: order/models.py:359 order/templates/order/order_base.html:224 +#: order/templates/order/return_order_base.html:185 +#: order/templates/order/sales_order_base.html:229 msgid "Address" msgstr "" -#: company/models.py:315 company/templates/company/sidebar.html:35 +#: company/models.py:312 company/templates/company/sidebar.html:35 msgid "Addresses" msgstr "" -#: company/models.py:372 +#: company/models.py:369 msgid "Select company" msgstr "" -#: company/models.py:377 +#: company/models.py:374 msgid "Address title" msgstr "" -#: company/models.py:378 +#: company/models.py:375 msgid "Title describing the address entry" msgstr "" -#: company/models.py:384 +#: company/models.py:381 msgid "Primary address" msgstr "" -#: company/models.py:385 +#: company/models.py:382 msgid "Set as primary address" msgstr "" -#: company/models.py:390 templates/js/translated/company.js:914 -#: templates/js/translated/company.js:971 +#: company/models.py:387 templates/js/translated/company.js:915 +#: templates/js/translated/company.js:972 msgid "Line 1" msgstr "" -#: company/models.py:391 +#: company/models.py:388 msgid "Address line 1" msgstr "" -#: company/models.py:397 templates/js/translated/company.js:915 -#: templates/js/translated/company.js:977 +#: company/models.py:394 templates/js/translated/company.js:916 +#: templates/js/translated/company.js:978 msgid "Line 2" msgstr "" -#: company/models.py:398 +#: company/models.py:395 msgid "Address line 2" msgstr "" -#: company/models.py:404 company/models.py:405 -#: templates/js/translated/company.js:983 +#: company/models.py:401 company/models.py:402 +#: templates/js/translated/company.js:984 msgid "Postal code" msgstr "" -#: company/models.py:411 +#: company/models.py:408 msgid "City/Region" msgstr "" -#: company/models.py:412 +#: company/models.py:409 msgid "Postal code city/region" msgstr "" -#: company/models.py:418 +#: company/models.py:415 msgid "State/Province" msgstr "" -#: company/models.py:419 +#: company/models.py:416 msgid "State or province" msgstr "" -#: company/models.py:425 templates/js/translated/company.js:1001 +#: company/models.py:422 templates/js/translated/company.js:1002 msgid "Country" msgstr "" -#: company/models.py:426 +#: company/models.py:423 msgid "Address country" msgstr "" -#: company/models.py:432 +#: company/models.py:429 msgid "Courier shipping notes" msgstr "" -#: company/models.py:433 +#: company/models.py:430 msgid "Notes for shipping courier" msgstr "" -#: company/models.py:439 +#: company/models.py:436 msgid "Internal shipping notes" msgstr "" -#: company/models.py:440 +#: company/models.py:437 msgid "Shipping notes for internal use" msgstr "" -#: company/models.py:447 +#: company/models.py:444 msgid "Link to address information (external)" msgstr "" -#: company/models.py:470 company/models.py:587 company/models.py:811 +#: company/models.py:467 company/models.py:584 company/models.py:808 #: company/templates/company/manufacturer_part.html:7 #: company/templates/company/manufacturer_part.html:24 -#: stock/templates/stock/item_base.html:217 +#: stock/templates/stock/item_base.html:214 msgid "Manufacturer Part" msgstr "" -#: company/models.py:487 company/models.py:779 stock/models.py:787 -#: stock/serializers.py:445 stock/templates/stock/item_base.html:142 +#: company/models.py:484 company/models.py:776 stock/models.py:864 +#: stock/serializers.py:455 stock/templates/stock/item_base.html:139 #: templates/js/translated/bom.js:622 msgid "Base Part" msgstr "" -#: company/models.py:489 company/models.py:781 +#: company/models.py:486 company/models.py:778 msgid "Select part" msgstr "" -#: company/models.py:498 company/templates/company/company_base.html:82 +#: company/models.py:495 company/templates/company/company_base.html:82 #: company/templates/company/manufacturer_part.html:90 -#: company/templates/company/supplier_part.html:145 part/serializers.py:554 -#: stock/templates/stock/item_base.html:207 -#: templates/js/translated/company.js:507 -#: templates/js/translated/company.js:1118 -#: templates/js/translated/company.js:1296 -#: templates/js/translated/company.js:1611 +#: company/templates/company/supplier_part.html:146 part/serializers.py:598 +#: stock/templates/stock/item_base.html:204 +#: templates/js/translated/company.js:508 +#: templates/js/translated/company.js:1119 +#: templates/js/translated/company.js:1297 +#: templates/js/translated/company.js:1612 #: templates/js/translated/table_filters.js:812 msgid "Manufacturer" msgstr "" -#: company/models.py:499 +#: company/models.py:496 msgid "Select manufacturer" msgstr "" -#: company/models.py:505 company/templates/company/manufacturer_part.html:101 -#: company/templates/company/supplier_part.html:153 order/serializers.py:556 -#: part/serializers.py:564 templates/js/translated/company.js:351 -#: templates/js/translated/company.js:1117 -#: templates/js/translated/company.js:1312 -#: templates/js/translated/company.js:1630 templates/js/translated/part.js:1807 -#: templates/js/translated/purchase_order.js:1921 -#: templates/js/translated/purchase_order.js:2123 +#: company/models.py:502 company/templates/company/manufacturer_part.html:101 +#: company/templates/company/supplier_part.html:154 order/serializers.py:641 +#: part/serializers.py:608 templates/js/translated/company.js:352 +#: templates/js/translated/company.js:1118 +#: templates/js/translated/company.js:1313 +#: templates/js/translated/company.js:1631 templates/js/translated/part.js:1807 +#: templates/js/translated/purchase_order.js:1905 +#: templates/js/translated/purchase_order.js:2107 msgid "MPN" msgstr "" -#: company/models.py:513 +#: company/models.py:510 msgid "URL for external manufacturer part link" msgstr "" -#: company/models.py:522 +#: company/models.py:519 msgid "Manufacturer part description" msgstr "" -#: company/models.py:575 +#: company/models.py:572 msgid "Manufacturer Part Parameter" msgstr "" -#: company/models.py:594 +#: company/models.py:591 msgid "Parameter name" msgstr "" -#: company/models.py:600 report/templates/report/inventree_test_report.html:104 -#: stock/models.py:2550 templates/js/translated/company.js:1166 -#: templates/js/translated/company.js:1419 templates/js/translated/part.js:1499 +#: company/models.py:597 report/templates/report/inventree_test_report.html:104 +#: stock/models.py:2666 templates/js/translated/company.js:1167 +#: templates/js/translated/company.js:1420 templates/js/translated/part.js:1499 #: templates/js/translated/stock.js:1607 msgid "Value" msgstr "" -#: company/models.py:601 +#: company/models.py:598 msgid "Parameter value" msgstr "" -#: company/models.py:608 company/templates/company/supplier_part.html:168 -#: part/admin.py:57 part/models.py:1147 part/models.py:3771 -#: part/templates/part/part_base.html:293 -#: templates/js/translated/company.js:1425 templates/js/translated/part.js:1518 +#: company/models.py:605 company/templates/company/supplier_part.html:169 +#: part/admin.py:57 part/models.py:1208 part/models.py:3822 +#: part/templates/part/part_base.html:301 +#: templates/js/translated/company.js:1426 templates/js/translated/part.js:1518 #: templates/js/translated/part.js:1622 templates/js/translated/part.js:2376 msgid "Units" msgstr "" -#: company/models.py:609 +#: company/models.py:606 msgid "Parameter units" msgstr "" -#: company/models.py:662 company/templates/company/supplier_part.html:7 -#: company/templates/company/supplier_part.html:24 order/api.py:442 -#: order/serializers.py:491 stock/models.py:798 -#: stock/templates/stock/item_base.html:233 -#: templates/js/translated/build.js:1052 -#: templates/js/translated/company.js:1600 -#: templates/js/translated/purchase_order.js:752 -#: templates/js/translated/stock.js:2365 +#: company/models.py:659 company/templates/company/supplier_part.html:8 +#: company/templates/company/supplier_part.html:25 order/api.py:392 +#: order/serializers.py:576 stock/models.py:875 +#: stock/templates/stock/item_base.html:230 +#: templates/js/translated/build.js:1055 +#: templates/js/translated/company.js:1601 +#: templates/js/translated/purchase_order.js:735 +#: templates/js/translated/stock.js:2366 msgid "Supplier Part" msgstr "" -#: company/models.py:719 +#: company/models.py:716 msgid "Pack units must be compatible with the base part units" msgstr "" -#: company/models.py:726 +#: company/models.py:723 msgid "Pack units must be greater than zero" msgstr "" -#: company/models.py:740 +#: company/models.py:737 msgid "Linked manufacturer part must reference the same base part" msgstr "" -#: company/models.py:789 company/templates/company/company_base.html:87 -#: company/templates/company/supplier_part.html:129 order/models.py:491 -#: order/templates/order/order_base.html:141 part/bom.py:280 part/bom.py:318 -#: part/serializers.py:538 plugin/builtin/suppliers/digikey.py:25 +#: company/models.py:786 company/templates/company/company_base.html:87 +#: company/templates/company/supplier_part.html:130 order/models.py:503 +#: order/templates/order/order_base.html:150 part/bom.py:279 part/bom.py:314 +#: part/serializers.py:582 plugin/builtin/suppliers/digikey.py:25 #: plugin/builtin/suppliers/lcsc.py:26 plugin/builtin/suppliers/mouser.py:24 -#: plugin/builtin/suppliers/tme.py:26 stock/templates/stock/item_base.html:224 +#: plugin/builtin/suppliers/tme.py:26 stock/templates/stock/item_base.html:221 #: templates/email/overdue_purchase_order.html:16 -#: templates/js/translated/company.js:350 -#: templates/js/translated/company.js:511 -#: templates/js/translated/company.js:1584 templates/js/translated/part.js:1775 +#: templates/js/translated/company.js:351 +#: templates/js/translated/company.js:512 +#: templates/js/translated/company.js:1585 templates/js/translated/part.js:1775 #: templates/js/translated/pricing.js:498 -#: templates/js/translated/purchase_order.js:1759 +#: templates/js/translated/purchase_order.js:1743 #: templates/js/translated/table_filters.js:816 msgid "Supplier" msgstr "" -#: company/models.py:790 +#: company/models.py:787 msgid "Select supplier" msgstr "" -#: company/models.py:796 part/serializers.py:549 +#: company/models.py:793 part/serializers.py:593 msgid "Supplier stock keeping unit" msgstr "" -#: company/models.py:802 +#: company/models.py:799 msgid "Is this supplier part active?" msgstr "" -#: company/models.py:812 +#: company/models.py:809 msgid "Select manufacturer part" msgstr "" -#: company/models.py:819 +#: company/models.py:816 msgid "URL for external supplier part link" msgstr "" -#: company/models.py:828 +#: company/models.py:825 msgid "Supplier part description" msgstr "" -#: company/models.py:835 company/templates/company/supplier_part.html:187 -#: order/serializers.py:698 part/admin.py:415 part/models.py:4288 +#: company/models.py:832 company/templates/company/supplier_part.html:188 +#: order/serializers.py:783 part/admin.py:415 part/models.py:4345 #: part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_bill_of_materials_report.html:140 #: report/templates/report/inventree_purchase_order_report.html:32 #: report/templates/report/inventree_return_order_report.html:27 #: report/templates/report/inventree_sales_order_report.html:32 #: report/templates/report/inventree_stock_location_report.html:105 -#: stock/serializers.py:776 templates/js/translated/purchase_order.js:1185 -#: templates/js/translated/purchase_order.js:1344 +#: stock/serializers.py:807 templates/js/translated/purchase_order.js:1168 +#: templates/js/translated/purchase_order.js:1327 msgid "Note" msgstr "" -#: company/models.py:844 part/models.py:2117 +#: company/models.py:841 part/models.py:2177 msgid "base cost" msgstr "" -#: company/models.py:845 part/models.py:2118 +#: company/models.py:842 part/models.py:2178 msgid "Minimum charge (e.g. stocking fee)" msgstr "" -#: company/models.py:853 +#: company/models.py:850 msgid "Part packaging" msgstr "" -#: company/models.py:858 templates/js/translated/company.js:1651 +#: company/models.py:855 templates/js/translated/company.js:1652 #: templates/js/translated/part.js:1828 templates/js/translated/part.js:1884 -#: templates/js/translated/purchase_order.js:311 -#: templates/js/translated/purchase_order.js:841 -#: templates/js/translated/purchase_order.js:1103 -#: templates/js/translated/purchase_order.js:2154 -#: templates/js/translated/purchase_order.js:2171 +#: templates/js/translated/purchase_order.js:294 +#: templates/js/translated/purchase_order.js:824 +#: templates/js/translated/purchase_order.js:1086 +#: templates/js/translated/purchase_order.js:2138 +#: templates/js/translated/purchase_order.js:2155 msgid "Pack Quantity" msgstr "" -#: company/models.py:860 +#: company/models.py:857 msgid "Total quantity supplied in a single pack. Leave empty for single items." msgstr "" -#: company/models.py:879 part/models.py:2124 +#: company/models.py:876 part/models.py:2184 msgid "multiple" msgstr "" -#: company/models.py:880 +#: company/models.py:877 msgid "Order multiple" msgstr "" -#: company/models.py:892 +#: company/models.py:889 msgid "Quantity available from supplier" msgstr "" -#: company/models.py:898 +#: company/models.py:895 msgid "Availability Updated" msgstr "" -#: company/models.py:899 +#: company/models.py:896 msgid "Date of last update of availability data" msgstr "" -#: company/models.py:1027 +#: company/models.py:1024 msgid "Supplier Price Break" msgstr "" -#: company/serializers.py:174 +#: company/serializers.py:178 msgid "Default currency used for this supplier" msgstr "" -#: company/serializers.py:210 +#: company/serializers.py:214 msgid "Company Name" msgstr "" -#: company/serializers.py:393 part/admin.py:126 part/serializers.py:898 -#: part/templates/part/part_base.html:197 -#: templates/js/translated/company.js:1689 +#: company/serializers.py:397 part/admin.py:126 part/serializers.py:950 +#: part/templates/part/part_base.html:198 stock/serializers.py:474 +#: templates/js/translated/company.js:1690 #: templates/js/translated/table_filters.js:362 msgid "In Stock" msgstr "" #: company/templates/company/company_base.html:16 -#: part/templates/part/part_base.html:146 -#: templates/js/translated/company.js:1287 -#: templates/js/translated/company.js:1575 -#: templates/js/translated/model_renderers.js:313 +#: part/templates/part/part_base.html:147 +#: templates/js/translated/company.js:1288 +#: templates/js/translated/company.js:1576 +#: templates/js/translated/model_renderers.js:316 #: templates/js/translated/part.js:817 templates/js/translated/part.js:1225 msgid "Inactive" msgstr "" #: company/templates/company/company_base.html:27 -#: templates/js/translated/purchase_order.js:242 +#: templates/js/translated/purchase_order.js:224 msgid "Create Purchase Order" msgstr "" @@ -4590,7 +4769,7 @@ msgid "Edit company information" msgstr "" #: company/templates/company/company_base.html:39 -#: templates/js/translated/company.js:445 +#: templates/js/translated/company.js:446 msgid "Edit Company" msgstr "" @@ -4605,11 +4784,12 @@ msgstr "" #: company/templates/company/company_base.html:53 #: company/templates/company/manufacturer_part.html:51 -#: company/templates/company/supplier_part.html:83 +#: company/templates/company/supplier_part.html:84 #: part/templates/part/part_thumb.html:20 #: report/templates/report/inventree_build_order_report.html:98 #: report/templates/report/inventree_purchase_order_report.html:40 #: report/templates/report/inventree_sales_order_report.html:40 +#: report/templates/report/inventree_sales_order_shipment_report.html:37 #: report/templates/report/inventree_test_report.html:84 #: report/templates/report/inventree_test_report.html:162 msgid "Part image" @@ -4630,16 +4810,16 @@ msgstr "" msgid "Delete image" msgstr "" -#: company/templates/company/company_base.html:92 order/models.py:990 -#: order/models.py:2147 order/templates/order/return_order_base.html:134 -#: order/templates/order/sales_order_base.html:151 stock/models.py:840 -#: stock/models.py:841 stock/serializers.py:1329 -#: stock/templates/stock/item_base.html:405 +#: company/templates/company/company_base.html:92 order/models.py:1017 +#: order/models.py:2186 order/templates/order/return_order_base.html:135 +#: order/templates/order/sales_order_base.html:152 stock/models.py:917 +#: stock/models.py:918 stock/serializers.py:1360 +#: stock/templates/stock/item_base.html:402 #: templates/email/overdue_sales_order.html:16 -#: templates/js/translated/company.js:503 +#: templates/js/translated/company.js:504 #: templates/js/translated/return_order.js:295 -#: templates/js/translated/sales_order.js:820 -#: templates/js/translated/stock.js:3043 +#: templates/js/translated/sales_order.js:779 +#: templates/js/translated/stock.js:3044 #: templates/js/translated/table_filters.js:820 msgid "Customer" msgstr "" @@ -4653,7 +4833,7 @@ msgid "Phone" msgstr "" #: company/templates/company/company_base.html:211 -#: part/templates/part/part_base.html:536 +#: part/templates/part/part_base.html:544 msgid "Remove Image" msgstr "" @@ -4662,19 +4842,19 @@ msgid "Remove associated image from this company" msgstr "" #: company/templates/company/company_base.html:214 -#: part/templates/part/part_base.html:539 +#: part/templates/part/part_base.html:547 #: templates/InvenTree/settings/user.html:88 #: templates/InvenTree/settings/user_sso.html:43 msgid "Remove" msgstr "" #: company/templates/company/company_base.html:243 -#: part/templates/part/part_base.html:568 +#: part/templates/part/part_base.html:576 msgid "Upload Image" msgstr "" #: company/templates/company/company_base.html:258 -#: part/templates/part/part_base.html:622 +#: part/templates/part/part_base.html:630 msgid "Download Image" msgstr "" @@ -4714,7 +4894,7 @@ msgstr "" #: company/templates/company/detail.html:75 #: company/templates/company/sidebar.html:12 #: company/templates/company/supplier_part_sidebar.html:7 -#: order/templates/order/order_base.html:13 +#: order/templates/order/order_base.html:14 #: order/templates/order/purchase_orders.html:8 #: order/templates/order/purchase_orders.html:12 #: part/templates/part/detail.html:122 part/templates/part/part_sidebar.html:35 @@ -4737,7 +4917,7 @@ msgstr "" #: company/templates/company/detail.html:101 #: company/templates/company/sidebar.html:21 -#: order/templates/order/sales_order_base.html:13 +#: order/templates/order/sales_order_base.html:14 #: order/templates/order/sales_orders.html:8 #: order/templates/order/sales_orders.html:15 #: part/templates/part/detail.html:143 part/templates/part/part_sidebar.html:39 @@ -4764,7 +4944,7 @@ msgstr "" #: company/templates/company/detail.html:142 #: company/templates/company/sidebar.html:29 -#: order/templates/order/return_order_base.html:13 +#: order/templates/order/return_order_base.html:14 #: order/templates/order/return_orders.html:8 #: order/templates/order/return_orders.html:15 #: templates/InvenTree/settings/sidebar.html:61 @@ -4811,24 +4991,24 @@ msgid "Manufacturers" msgstr "" #: company/templates/company/manufacturer_part.html:35 -#: company/templates/company/supplier_part.html:227 -#: part/templates/part/detail.html:125 part/templates/part/part_base.html:83 +#: company/templates/company/supplier_part.html:228 +#: part/templates/part/detail.html:125 part/templates/part/part_base.html:84 msgid "Order part" msgstr "" #: company/templates/company/manufacturer_part.html:39 -#: templates/js/translated/company.js:1343 +#: templates/js/translated/company.js:1344 msgid "Edit manufacturer part" msgstr "" #: company/templates/company/manufacturer_part.html:43 -#: templates/js/translated/company.js:1344 +#: templates/js/translated/company.js:1345 msgid "Delete manufacturer part" msgstr "" #: company/templates/company/manufacturer_part.html:65 -#: company/templates/company/supplier_part.html:97 order/api.py:448 -#: order/serializers.py:564 +#: company/templates/company/supplier_part.html:98 order/api.py:411 +#: order/serializers.py:649 msgid "Internal Part" msgstr "" @@ -4837,8 +5017,8 @@ msgid "No manufacturer information available" msgstr "" #: company/templates/company/manufacturer_part.html:119 -#: company/templates/company/supplier_part.html:15 company/views.py:31 -#: part/admin.py:122 part/serializers.py:904 +#: company/templates/company/supplier_part.html:16 company/views.py:31 +#: part/admin.py:122 part/serializers.py:956 #: part/templates/part/part_sidebar.html:33 templates/InvenTree/search.html:190 #: templates/navbar.html:48 msgid "Suppliers" @@ -4887,112 +5067,113 @@ msgstr "" msgid "Contacts" msgstr "" -#: company/templates/company/supplier_part.html:50 -#: templates/js/translated/company.js:1526 +#: company/templates/company/supplier_part.html:51 +#: templates/js/translated/company.js:1527 msgid "Supplier part actions" msgstr "" -#: company/templates/company/supplier_part.html:55 #: company/templates/company/supplier_part.html:56 -#: company/templates/company/supplier_part.html:228 +#: company/templates/company/supplier_part.html:57 +#: company/templates/company/supplier_part.html:229 #: part/templates/part/detail.html:126 msgid "Order Part" msgstr "" -#: company/templates/company/supplier_part.html:60 #: company/templates/company/supplier_part.html:61 +#: company/templates/company/supplier_part.html:62 msgid "Update Availability" msgstr "" -#: company/templates/company/supplier_part.html:63 #: company/templates/company/supplier_part.html:64 -#: templates/js/translated/company.js:294 +#: company/templates/company/supplier_part.html:65 +#: templates/js/translated/company.js:295 msgid "Edit Supplier Part" msgstr "" -#: company/templates/company/supplier_part.html:68 #: company/templates/company/supplier_part.html:69 -#: templates/js/translated/company.js:269 +#: company/templates/company/supplier_part.html:70 +#: templates/js/translated/company.js:270 msgid "Duplicate Supplier Part" msgstr "" -#: company/templates/company/supplier_part.html:73 +#: company/templates/company/supplier_part.html:74 msgid "Delete Supplier Part" msgstr "" -#: company/templates/company/supplier_part.html:74 +#: company/templates/company/supplier_part.html:75 msgid "Delete Supplier Part" msgstr "" -#: company/templates/company/supplier_part.html:133 +#: company/templates/company/supplier_part.html:134 +#: order/templates/order/order_base.html:155 msgid "No supplier information available" msgstr "" -#: company/templates/company/supplier_part.html:139 order/serializers.py:553 -#: part/bom.py:287 part/bom.py:319 part/serializers.py:548 -#: templates/js/translated/company.js:349 templates/js/translated/part.js:1793 +#: company/templates/company/supplier_part.html:140 order/serializers.py:638 +#: part/bom.py:286 part/bom.py:315 part/serializers.py:592 +#: templates/js/translated/company.js:350 templates/js/translated/part.js:1793 #: templates/js/translated/pricing.js:510 -#: templates/js/translated/purchase_order.js:1920 -#: templates/js/translated/purchase_order.js:2098 +#: templates/js/translated/purchase_order.js:1904 +#: templates/js/translated/purchase_order.js:2082 msgid "SKU" msgstr "" -#: company/templates/company/supplier_part.html:206 +#: company/templates/company/supplier_part.html:207 msgid "Supplier Part Stock" msgstr "" -#: company/templates/company/supplier_part.html:209 -#: part/templates/part/detail.html:24 stock/templates/stock/location.html:204 +#: company/templates/company/supplier_part.html:210 +#: part/templates/part/detail.html:24 stock/templates/stock/location.html:205 msgid "Create new stock item" msgstr "" -#: company/templates/company/supplier_part.html:210 -#: part/templates/part/detail.html:25 stock/templates/stock/location.html:205 +#: company/templates/company/supplier_part.html:211 +#: part/templates/part/detail.html:25 stock/templates/stock/location.html:206 #: templates/js/translated/stock.js:543 msgid "New Stock Item" msgstr "" -#: company/templates/company/supplier_part.html:223 +#: company/templates/company/supplier_part.html:224 msgid "Supplier Part Orders" msgstr "" -#: company/templates/company/supplier_part.html:246 +#: company/templates/company/supplier_part.html:247 msgid "Pricing Information" msgstr "" -#: company/templates/company/supplier_part.html:251 -#: templates/js/translated/company.js:398 +#: company/templates/company/supplier_part.html:252 +#: templates/js/translated/company.js:399 #: templates/js/translated/pricing.js:684 msgid "Add Price Break" msgstr "" -#: company/templates/company/supplier_part.html:270 +#: company/templates/company/supplier_part.html:271 msgid "Supplier Part Notes" msgstr "" -#: company/templates/company/supplier_part.html:305 +#: company/templates/company/supplier_part.html:306 msgid "Supplier Part QR Code" msgstr "" -#: company/templates/company/supplier_part.html:316 +#: company/templates/company/supplier_part.html:317 msgid "Link Barcode to Supplier Part" msgstr "" -#: company/templates/company/supplier_part.html:388 +#: company/templates/company/supplier_part.html:389 msgid "Update Part Availability" msgstr "" #: company/templates/company/supplier_part_sidebar.html:5 -#: part/serializers.py:902 part/stocktake.py:223 +#: part/serializers.py:954 part/stocktake.py:223 #: part/templates/part/category.html:180 #: part/templates/part/category_sidebar.html:17 stock/admin.py:68 -#: stock/serializers.py:1014 stock/serializers.py:1192 -#: stock/templates/stock/location.html:167 -#: stock/templates/stock/location.html:188 -#: stock/templates/stock/location.html:200 +#: stock/serializers.py:1045 stock/serializers.py:1223 +#: stock/templates/stock/location.html:168 +#: stock/templates/stock/location.html:189 +#: stock/templates/stock/location.html:201 #: stock/templates/stock/location_sidebar.html:7 #: templates/InvenTree/search.html:155 templates/js/translated/part.js:1067 -#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2850 +#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2851 #: users/models.py:206 msgid "Stock Items" msgstr "" @@ -5022,99 +5203,99 @@ msgstr "" msgid "New Company" msgstr "" -#: generic/states/tests.py:18 order/status_codes.py:13 +#: generic/states/fields.py:118 +msgid "Custom status key" +msgstr "" + +#: generic/states/fields.py:119 +msgid "Additional status information for this item" +msgstr "" + +#: generic/states/tests.py:22 order/status_codes.py:13 msgid "Placed" msgstr "" -#: importer/mixins.py:263 +#: importer/mixins.py:261 msgid "Invalid export format" msgstr "" -#: importer/models.py:59 -msgid "Timestamp" -msgstr "" - -#: importer/models.py:64 +#: importer/models.py:65 msgid "Data file to import" msgstr "" -#: importer/models.py:73 templates/js/translated/tables.js:558 +#: importer/models.py:74 templates/js/translated/tables.js:558 msgid "Columns" msgstr "" -#: importer/models.py:84 +#: importer/models.py:85 msgid "Import status" msgstr "" -#: importer/models.py:94 +#: importer/models.py:95 msgid "Field Defaults" msgstr "" -#: importer/models.py:101 +#: importer/models.py:102 msgid "Field Overrides" msgstr "" -#: importer/models.py:108 +#: importer/models.py:109 msgid "Field Filters" msgstr "" -#: importer/models.py:230 +#: importer/models.py:239 msgid "Some required fields have not been mapped" msgstr "" -#: importer/models.py:387 +#: importer/models.py:396 msgid "Column is already mapped to a database field" msgstr "" -#: importer/models.py:392 +#: importer/models.py:401 msgid "Field is already mapped to a data column" msgstr "" -#: importer/models.py:401 +#: importer/models.py:410 msgid "Column mapping must be linked to a valid import session" msgstr "" -#: importer/models.py:406 +#: importer/models.py:415 msgid "Column does not exist in the data file" msgstr "" -#: importer/models.py:413 +#: importer/models.py:422 msgid "Field does not exist in the target model" msgstr "" -#: importer/models.py:417 +#: importer/models.py:426 msgid "Selected field is read-only" msgstr "" -#: importer/models.py:422 importer/models.py:493 +#: importer/models.py:431 importer/models.py:502 msgid "Import Session" msgstr "" -#: importer/models.py:426 +#: importer/models.py:435 msgid "Field" msgstr "" -#: importer/models.py:428 +#: importer/models.py:437 msgid "Column" msgstr "" -#: importer/models.py:497 +#: importer/models.py:506 msgid "Row Index" msgstr "" -#: importer/models.py:500 +#: importer/models.py:509 msgid "Original row data" msgstr "" -#: importer/models.py:503 part/models.py:3951 -msgid "Data" -msgstr "" - -#: importer/models.py:505 machine/models.py:110 +#: importer/models.py:514 machine/models.py:110 msgid "Errors" msgstr "" -#: importer/models.py:507 part/api.py:873 +#: importer/models.py:516 part/api.py:857 msgid "Valid" msgstr "" @@ -5166,19 +5347,19 @@ msgstr "" msgid "Row has already been completed" msgstr "" -#: importer/status_codes.py:11 +#: importer/status_codes.py:13 msgid "Initializing" msgstr "" -#: importer/status_codes.py:12 +#: importer/status_codes.py:18 msgid "Mapping Columns" msgstr "" -#: importer/status_codes.py:13 +#: importer/status_codes.py:21 msgid "Importing Data" msgstr "" -#: importer/status_codes.py:16 +#: importer/status_codes.py:24 msgid "Processing Data" msgstr "" @@ -5202,52 +5383,52 @@ msgstr "" msgid "Value must be a valid dictionary object" msgstr "" -#: machine/machine_types/label_printer.py:215 +#: machine/machine_types/label_printer.py:216 msgid "Copies" msgstr "" -#: machine/machine_types/label_printer.py:216 +#: machine/machine_types/label_printer.py:217 msgid "Number of copies to print for each label" msgstr "" -#: machine/machine_types/label_printer.py:231 +#: machine/machine_types/label_printer.py:232 msgid "Connected" msgstr "" -#: machine/machine_types/label_printer.py:232 order/api.py:1410 -#: templates/js/translated/sales_order.js:1078 +#: machine/machine_types/label_printer.py:233 order/api.py:1532 +#: templates/js/translated/sales_order.js:1044 msgid "Unknown" msgstr "" -#: machine/machine_types/label_printer.py:233 +#: machine/machine_types/label_printer.py:234 msgid "Printing" msgstr "" -#: machine/machine_types/label_printer.py:234 +#: machine/machine_types/label_printer.py:235 msgid "No media" msgstr "" -#: machine/machine_types/label_printer.py:235 +#: machine/machine_types/label_printer.py:236 msgid "Paper jam" msgstr "" -#: machine/machine_types/label_printer.py:236 +#: machine/machine_types/label_printer.py:237 msgid "Disconnected" msgstr "" -#: machine/machine_types/label_printer.py:243 +#: machine/machine_types/label_printer.py:244 msgid "Label Printer" msgstr "" -#: machine/machine_types/label_printer.py:244 +#: machine/machine_types/label_printer.py:245 msgid "Directly print labels for various items." msgstr "" -#: machine/machine_types/label_printer.py:250 +#: machine/machine_types/label_printer.py:251 msgid "Printer Location" msgstr "" -#: machine/machine_types/label_printer.py:251 +#: machine/machine_types/label_printer.py:252 msgid "Scope the printer to a specific location" msgstr "" @@ -5307,79 +5488,75 @@ msgstr "" #: report/templates/report/inventree_purchase_order_report.html:31 #: report/templates/report/inventree_sales_order_report.html:31 #: templates/js/translated/order.js:352 -#: templates/js/translated/purchase_order.js:2195 -#: templates/js/translated/sales_order.js:1883 +#: templates/js/translated/purchase_order.js:2179 +#: templates/js/translated/sales_order.js:1864 msgid "Total Price" msgstr "" -#: order/api.py:80 order/api.py:151 order/serializers.py:93 -#: order/templates/order/order_base.html:123 -#: order/templates/order/return_order_base.html:116 -#: order/templates/order/sales_order_base.html:125 +#: order/api.py:78 order/api.py:149 order/serializers.py:124 +#: order/templates/order/order_base.html:124 +#: order/templates/order/return_order_base.html:117 +#: order/templates/order/sales_order_base.html:126 msgid "Order Status" msgstr "" -#: order/api.py:88 order/templates/order/order_base.html:111 -#: order/templates/order/return_order_base.html:104 -#: order/templates/order/sales_order_base.html:113 +#: order/api.py:86 order/templates/order/order_base.html:112 +#: order/templates/order/return_order_base.html:105 +#: order/templates/order/sales_order_base.html:114 msgid "Order Reference" msgstr "" -#: order/api.py:116 templates/js/translated/table_filters.js:93 +#: order/api.py:114 order/api.py:1022 +#: templates/js/translated/table_filters.js:93 #: templates/js/translated/table_filters.js:625 #: templates/js/translated/table_filters.js:651 #: templates/js/translated/table_filters.js:666 msgid "Outstanding" msgstr "" -#: order/api.py:132 +#: order/api.py:130 msgid "Has Project Code" msgstr "" -#: order/api.py:155 templates/js/translated/table_filters.js:201 +#: order/api.py:153 templates/js/translated/table_filters.js:201 #: templates/js/translated/table_filters.js:791 msgid "Has Pricing" msgstr "" -#: order/api.py:230 -msgid "No matching purchase order found" -msgstr "" - -#: order/api.py:425 order/api.py:763 order/models.py:1484 order/models.py:1598 -#: order/models.py:1649 order/models.py:1764 order/models.py:1923 -#: order/models.py:2383 order/models.py:2439 -#: templates/js/translated/sales_order.js:1524 +#: order/api.py:375 order/api.py:771 order/api.py:986 order/models.py:1500 +#: order/models.py:1614 order/models.py:1665 order/models.py:1793 +#: order/models.py:1956 order/models.py:2422 order/models.py:2478 +#: templates/js/translated/sales_order.js:1490 msgid "Order" msgstr "" -#: order/api.py:429 order/api.py:784 +#: order/api.py:379 order/api.py:809 msgid "Order Complete" msgstr "" -#: order/api.py:452 +#: order/api.py:430 msgid "Order Pending" msgstr "" -#: order/api.py:1404 order/models.py:379 order/models.py:1485 -#: order/models.py:1599 order/templates/order/order_base.html:9 -#: order/templates/order/order_base.html:18 +#: order/api.py:1526 order/models.py:386 order/models.py:1501 +#: order/models.py:1615 order/templates/order/order_base.html:10 +#: order/templates/order/order_base.html:19 #: report/templates/report/inventree_purchase_order_report.html:14 -#: stock/serializers.py:120 stock/templates/stock/item_base.html:176 +#: stock/serializers.py:121 stock/templates/stock/item_base.html:173 #: templates/email/overdue_purchase_order.html:15 #: templates/js/translated/part.js:1752 templates/js/translated/pricing.js:804 -#: templates/js/translated/purchase_order.js:168 -#: templates/js/translated/purchase_order.js:753 -#: templates/js/translated/purchase_order.js:1743 -#: templates/js/translated/stock.js:2345 templates/js/translated/stock.js:2991 +#: templates/js/translated/purchase_order.js:736 +#: templates/js/translated/purchase_order.js:1727 +#: templates/js/translated/stock.js:2346 templates/js/translated/stock.js:2992 msgid "Purchase Order" msgstr "" -#: order/api.py:1408 order/models.py:2091 order/models.py:2384 -#: order/models.py:2440 order/templates/order/return_order_base.html:9 -#: order/templates/order/return_order_base.html:28 +#: order/api.py:1530 order/models.py:2124 order/models.py:2423 +#: order/models.py:2479 order/templates/order/return_order_base.html:10 +#: order/templates/order/return_order_base.html:29 #: report/templates/report/inventree_return_order_report.html:13 #: templates/js/translated/return_order.js:280 -#: templates/js/translated/stock.js:3025 +#: templates/js/translated/stock.js:3026 msgid "Return Order" msgstr "" @@ -5387,751 +5564,782 @@ msgstr "" msgid "Total price for this order" msgstr "" -#: order/models.py:95 order/serializers.py:71 +#: order/models.py:95 order/serializers.py:73 msgid "Order Currency" msgstr "" -#: order/models.py:98 order/serializers.py:72 +#: order/models.py:98 order/serializers.py:74 msgid "Currency for this order (leave blank to use company default)" msgstr "" -#: order/models.py:246 +#: order/models.py:243 msgid "Contact does not match selected company" msgstr "" -#: order/models.py:289 +#: order/models.py:296 msgid "Order description (optional)" msgstr "" -#: order/models.py:298 +#: order/models.py:305 msgid "Select project code for this order" msgstr "" -#: order/models.py:302 order/models.py:1385 order/models.py:1817 +#: order/models.py:309 order/models.py:1402 order/models.py:1846 msgid "Link to external page" msgstr "" -#: order/models.py:310 +#: order/models.py:317 msgid "Expected date for order delivery. Order will be overdue after this date." msgstr "" -#: order/models.py:324 +#: order/models.py:331 msgid "Created By" msgstr "" -#: order/models.py:332 +#: order/models.py:339 msgid "User or group responsible for this order" msgstr "" -#: order/models.py:343 +#: order/models.py:350 msgid "Point of contact for this order" msgstr "" -#: order/models.py:353 +#: order/models.py:360 msgid "Company address for this order" msgstr "" -#: order/models.py:468 order/models.py:979 +#: order/models.py:480 order/models.py:1006 msgid "Order reference" msgstr "" -#: order/models.py:477 +#: order/models.py:489 msgid "Purchase order status" msgstr "" -#: order/models.py:492 +#: order/models.py:504 msgid "Company from which the items are being ordered" msgstr "" -#: order/models.py:503 order/templates/order/order_base.html:153 -#: templates/js/translated/purchase_order.js:1772 +#: order/models.py:515 order/templates/order/order_base.html:162 +#: templates/js/translated/purchase_order.js:1756 msgid "Supplier Reference" msgstr "" -#: order/models.py:504 +#: order/models.py:516 msgid "Supplier order reference code" msgstr "" -#: order/models.py:513 +#: order/models.py:525 msgid "received by" msgstr "" -#: order/models.py:519 order/models.py:2173 +#: order/models.py:531 order/models.py:2212 msgid "Issue Date" msgstr "" -#: order/models.py:520 order/models.py:2174 +#: order/models.py:532 order/models.py:2213 msgid "Date order was issued" msgstr "" -#: order/models.py:527 order/models.py:2181 +#: order/models.py:539 order/models.py:2220 msgid "Date order was completed" msgstr "" -#: order/models.py:571 +#: order/models.py:549 order/models.py:1552 +msgid "Destination for received items" +msgstr "" + +#: order/models.py:593 msgid "Part supplier must match PO supplier" msgstr "" -#: order/models.py:806 +#: order/models.py:828 msgid "Quantity must be a positive number" msgstr "" -#: order/models.py:991 +#: order/models.py:1018 msgid "Company to which the items are being sold" msgstr "" -#: order/models.py:1003 +#: order/models.py:1030 msgid "Sales order status" msgstr "" -#: order/models.py:1014 order/models.py:2166 +#: order/models.py:1041 order/models.py:2205 msgid "Customer Reference " msgstr "" -#: order/models.py:1015 order/models.py:2167 +#: order/models.py:1042 order/models.py:2206 msgid "Customer order reference code" msgstr "" -#: order/models.py:1019 order/models.py:1771 -#: templates/js/translated/sales_order.js:879 -#: templates/js/translated/sales_order.js:1060 +#: order/models.py:1046 order/models.py:1800 +#: templates/js/translated/sales_order.js:838 +#: templates/js/translated/sales_order.js:1026 msgid "Shipment Date" msgstr "" -#: order/models.py:1028 +#: order/models.py:1055 msgid "shipped by" msgstr "" -#: order/models.py:1077 +#: order/models.py:1094 msgid "Order is already complete" msgstr "" -#: order/models.py:1080 +#: order/models.py:1097 msgid "Order is already cancelled" msgstr "" -#: order/models.py:1084 +#: order/models.py:1101 msgid "Only an open order can be marked as complete" msgstr "" -#: order/models.py:1088 +#: order/models.py:1105 msgid "Order cannot be completed as there are incomplete shipments" msgstr "" -#: order/models.py:1093 +#: order/models.py:1110 msgid "Order cannot be completed as there are incomplete line items" msgstr "" -#: order/models.py:1357 +#: order/models.py:1374 msgid "Item quantity" msgstr "" -#: order/models.py:1374 +#: order/models.py:1391 msgid "Line item reference" msgstr "" -#: order/models.py:1381 +#: order/models.py:1398 msgid "Line item notes" msgstr "" -#: order/models.py:1393 +#: order/models.py:1410 msgid "Target date for this line item (leave blank to use the target date from the order)" msgstr "" -#: order/models.py:1414 +#: order/models.py:1431 msgid "Line item description (optional)" msgstr "" -#: order/models.py:1420 -msgid "Context" -msgstr "" - -#: order/models.py:1421 +#: order/models.py:1438 msgid "Additional context for this line" msgstr "" -#: order/models.py:1431 +#: order/models.py:1448 msgid "Unit price" msgstr "" -#: order/models.py:1445 +#: order/models.py:1462 msgid "Purchase Order Line Item" msgstr "" -#: order/models.py:1469 +#: order/models.py:1486 msgid "Supplier part must match supplier" msgstr "" -#: order/models.py:1476 -msgid "deleted" -msgstr "" - -#: order/models.py:1504 +#: order/models.py:1520 msgid "Supplier part" msgstr "" -#: order/models.py:1511 order/templates/order/order_base.html:201 +#: order/models.py:1527 order/templates/order/order_base.html:210 #: templates/js/translated/part.js:1876 templates/js/translated/part.js:1908 -#: templates/js/translated/purchase_order.js:1369 -#: templates/js/translated/purchase_order.js:2239 +#: templates/js/translated/purchase_order.js:1352 +#: templates/js/translated/purchase_order.js:2223 #: templates/js/translated/return_order.js:762 #: templates/js/translated/table_filters.js:119 #: templates/js/translated/table_filters.js:605 msgid "Received" msgstr "" -#: order/models.py:1512 +#: order/models.py:1528 msgid "Number of items received" msgstr "" -#: order/models.py:1520 stock/models.py:959 stock/serializers.py:610 -#: stock/templates/stock/item_base.html:183 -#: templates/js/translated/stock.js:2396 +#: order/models.py:1536 stock/models.py:1036 stock/serializers.py:637 +#: stock/templates/stock/item_base.html:180 +#: templates/js/translated/stock.js:2397 msgid "Purchase Price" msgstr "" -#: order/models.py:1521 +#: order/models.py:1537 msgid "Unit purchase price" msgstr "" -#: order/models.py:1536 -msgid "Where does the Purchaser want this item to be stored?" -msgstr "" - -#: order/models.py:1587 +#: order/models.py:1603 msgid "Purchase Order Extra Line" msgstr "" -#: order/models.py:1616 +#: order/models.py:1632 msgid "Sales Order Line Item" msgstr "" -#: order/models.py:1637 +#: order/models.py:1653 msgid "Virtual part cannot be assigned to a sales order" msgstr "" -#: order/models.py:1642 +#: order/models.py:1658 msgid "Only salable parts can be assigned to a sales order" msgstr "" -#: order/models.py:1668 part/templates/part/part_pricing.html:107 -#: part/templates/part/prices.html:139 templates/js/translated/pricing.js:957 +#: order/models.py:1684 part/templates/part/part_pricing.html:107 +#: part/templates/part/prices.html:139 templates/js/translated/pricing.js:955 msgid "Sale Price" msgstr "" -#: order/models.py:1669 +#: order/models.py:1685 msgid "Unit sale price" msgstr "" -#: order/models.py:1678 order/status_codes.py:48 -#: templates/js/translated/sales_order.js:1559 -#: templates/js/translated/sales_order.js:1680 -#: templates/js/translated/sales_order.js:1993 +#: order/models.py:1694 order/status_codes.py:50 +#: templates/js/translated/sales_order.js:1525 +#: templates/js/translated/sales_order.js:1661 +#: templates/js/translated/sales_order.js:1974 msgid "Shipped" msgstr "" -#: order/models.py:1679 +#: order/models.py:1695 msgid "Shipped quantity" msgstr "" -#: order/models.py:1751 +#: order/models.py:1769 msgid "Sales Order Shipment" msgstr "" -#: order/models.py:1772 +#: order/models.py:1801 msgid "Date of shipment" msgstr "" -#: order/models.py:1778 templates/js/translated/sales_order.js:1072 +#: order/models.py:1807 templates/js/translated/sales_order.js:1038 msgid "Delivery Date" msgstr "" -#: order/models.py:1779 +#: order/models.py:1808 msgid "Date of delivery of shipment" msgstr "" -#: order/models.py:1787 +#: order/models.py:1816 msgid "Checked By" msgstr "" -#: order/models.py:1788 +#: order/models.py:1817 msgid "User who checked this shipment" msgstr "" -#: order/models.py:1795 order/models.py:2018 order/serializers.py:1475 -#: order/serializers.py:1585 templates/js/translated/model_renderers.js:455 +#: order/models.py:1824 order/models.py:2051 order/serializers.py:1601 +#: order/serializers.py:1725 +#: report/templates/report/inventree_sales_order_shipment_report.html:14 +#: templates/js/translated/model_renderers.js:458 +#: templates/js/translated/sales_order.js:1615 msgid "Shipment" msgstr "" -#: order/models.py:1796 +#: order/models.py:1825 msgid "Shipment number" msgstr "" -#: order/models.py:1804 +#: order/models.py:1833 msgid "Tracking Number" msgstr "" -#: order/models.py:1805 +#: order/models.py:1834 msgid "Shipment tracking information" msgstr "" -#: order/models.py:1812 +#: order/models.py:1841 msgid "Invoice Number" msgstr "" -#: order/models.py:1813 +#: order/models.py:1842 msgid "Reference number for associated invoice" msgstr "" -#: order/models.py:1833 +#: order/models.py:1862 msgid "Shipment has already been sent" msgstr "" -#: order/models.py:1836 +#: order/models.py:1865 msgid "Shipment has no allocated stock items" msgstr "" -#: order/models.py:1912 +#: order/models.py:1945 msgid "Sales Order Extra Line" msgstr "" -#: order/models.py:1941 +#: order/models.py:1974 msgid "Sales Order Allocation" msgstr "" -#: order/models.py:1964 order/models.py:1966 +#: order/models.py:1997 order/models.py:1999 msgid "Stock item has not been assigned" msgstr "" -#: order/models.py:1973 +#: order/models.py:2006 msgid "Cannot allocate stock item to a line with a different part" msgstr "" -#: order/models.py:1976 +#: order/models.py:2009 msgid "Cannot allocate stock to a line without a part" msgstr "" -#: order/models.py:1979 +#: order/models.py:2012 msgid "Allocation quantity cannot exceed stock quantity" msgstr "" -#: order/models.py:1998 order/serializers.py:1345 +#: order/models.py:2031 order/serializers.py:1471 msgid "Quantity must be 1 for serialized stock item" msgstr "" -#: order/models.py:2001 +#: order/models.py:2034 msgid "Sales order does not match shipment" msgstr "" -#: order/models.py:2002 plugin/base/barcodes/api.py:524 +#: order/models.py:2035 plugin/base/barcodes/api.py:629 msgid "Shipment does not match sales order" msgstr "" -#: order/models.py:2010 +#: order/models.py:2043 msgid "Line" msgstr "" -#: order/models.py:2019 +#: order/models.py:2052 msgid "Sales order shipment reference" msgstr "" -#: order/models.py:2032 order/models.py:2391 +#: order/models.py:2065 order/models.py:2430 #: templates/js/translated/return_order.js:720 msgid "Item" msgstr "" -#: order/models.py:2033 +#: order/models.py:2066 msgid "Select stock item to allocate" msgstr "" -#: order/models.py:2042 +#: order/models.py:2075 msgid "Enter stock allocation quantity" msgstr "" -#: order/models.py:2136 +#: order/models.py:2175 msgid "Return Order reference" msgstr "" -#: order/models.py:2148 +#: order/models.py:2187 msgid "Company from which items are being returned" msgstr "" -#: order/models.py:2160 +#: order/models.py:2199 msgid "Return order status" msgstr "" -#: order/models.py:2362 +#: order/models.py:2401 msgid "Return Order Line Item" msgstr "" -#: order/models.py:2376 +#: order/models.py:2415 msgid "Only serialized items can be assigned to a Return Order" msgstr "" -#: order/models.py:2392 +#: order/models.py:2431 msgid "Select item to return from customer" msgstr "" -#: order/models.py:2398 +#: order/models.py:2437 msgid "Received Date" msgstr "" -#: order/models.py:2399 +#: order/models.py:2438 msgid "The date this this return item was received" msgstr "" -#: order/models.py:2410 templates/js/translated/return_order.js:731 +#: order/models.py:2449 templates/js/translated/return_order.js:731 #: templates/js/translated/table_filters.js:122 msgid "Outcome" msgstr "" -#: order/models.py:2411 +#: order/models.py:2450 msgid "Outcome for this line item" msgstr "" -#: order/models.py:2418 +#: order/models.py:2457 msgid "Cost associated with return or repair for this line item" msgstr "" -#: order/models.py:2428 +#: order/models.py:2467 msgid "Return Order Extra Line" msgstr "" -#: order/serializers.py:86 +#: order/serializers.py:87 +msgid "Order ID" +msgstr "" + +#: order/serializers.py:87 +msgid "ID of the order to duplicate" +msgstr "" + +#: order/serializers.py:93 +msgid "Copy Lines" +msgstr "" + +#: order/serializers.py:94 +msgid "Copy line items from the original order" +msgstr "" + +#: order/serializers.py:100 +msgid "Copy Extra Lines" +msgstr "" + +#: order/serializers.py:101 +msgid "Copy extra line items from the original order" +msgstr "" + +#: order/serializers.py:117 msgid "Completed Lines" msgstr "" -#: order/serializers.py:283 stock/admin.py:195 +#: order/serializers.py:161 +msgid "Duplicate Order" +msgstr "" + +#: order/serializers.py:162 +msgid "Specify options for duplicating this order" +msgstr "" + +#: order/serializers.py:234 +msgid "Invalid order ID" +msgstr "" + +#: order/serializers.py:374 stock/admin.py:196 msgid "Supplier Name" msgstr "" -#: order/serializers.py:331 +#: order/serializers.py:416 msgid "Order cannot be cancelled" msgstr "" -#: order/serializers.py:346 order/serializers.py:1366 +#: order/serializers.py:431 order/serializers.py:1492 msgid "Allow order to be closed with incomplete line items" msgstr "" -#: order/serializers.py:356 order/serializers.py:1376 +#: order/serializers.py:441 order/serializers.py:1502 msgid "Order has incomplete line items" msgstr "" -#: order/serializers.py:506 +#: order/serializers.py:591 msgid "Order is not open" msgstr "" -#: order/serializers.py:527 +#: order/serializers.py:612 msgid "Auto Pricing" msgstr "" -#: order/serializers.py:529 +#: order/serializers.py:614 msgid "Automatically calculate purchase price based on supplier part data" msgstr "" -#: order/serializers.py:539 +#: order/serializers.py:624 msgid "Purchase price currency" msgstr "" -#: order/serializers.py:545 +#: order/serializers.py:630 msgid "Merge Items" msgstr "" -#: order/serializers.py:547 +#: order/serializers.py:632 msgid "Merge items with the same part, destination and target date into one line item" msgstr "" -#: order/serializers.py:560 part/models.py:1033 +#: order/serializers.py:645 part/models.py:1094 part/serializers.py:387 msgid "Internal Part Number" msgstr "" -#: order/serializers.py:568 +#: order/serializers.py:653 msgid "Internal Part Name" msgstr "" -#: order/serializers.py:584 +#: order/serializers.py:669 msgid "Supplier part must be specified" msgstr "" -#: order/serializers.py:587 +#: order/serializers.py:672 msgid "Purchase order must be specified" msgstr "" -#: order/serializers.py:595 +#: order/serializers.py:680 msgid "Supplier must match purchase order" msgstr "" -#: order/serializers.py:596 +#: order/serializers.py:681 msgid "Purchase order must match supplier" msgstr "" -#: order/serializers.py:639 order/serializers.py:1446 +#: order/serializers.py:724 order/serializers.py:1572 msgid "Line Item" msgstr "" -#: order/serializers.py:645 +#: order/serializers.py:730 msgid "Line item does not match purchase order" msgstr "" -#: order/serializers.py:655 order/serializers.py:779 order/serializers.py:1782 +#: order/serializers.py:740 order/serializers.py:881 order/serializers.py:1934 msgid "Select destination location for received items" msgstr "" -#: order/serializers.py:671 templates/js/translated/purchase_order.js:1130 +#: order/serializers.py:756 templates/js/translated/purchase_order.js:1113 #: templates/js/translated/stock.js:1200 msgid "Enter batch code for incoming stock items" msgstr "" -#: order/serializers.py:679 templates/js/translated/purchase_order.js:1155 +#: order/serializers.py:764 templates/js/translated/purchase_order.js:1138 msgid "Enter serial numbers for incoming stock items" msgstr "" -#: order/serializers.py:691 +#: order/serializers.py:776 msgid "Override packaging information for incoming stock items" msgstr "" -#: order/serializers.py:699 +#: order/serializers.py:784 msgid "Additional note for incoming stock items" msgstr "" -#: order/serializers.py:706 templates/js/translated/barcode.js:52 +#: order/serializers.py:791 templates/js/translated/barcode.js:52 msgid "Barcode" msgstr "" -#: order/serializers.py:707 +#: order/serializers.py:792 msgid "Scanned barcode" msgstr "" -#: order/serializers.py:723 +#: order/serializers.py:808 msgid "Barcode is already in use" msgstr "" -#: order/serializers.py:747 +#: order/serializers.py:831 msgid "An integer quantity must be provided for trackable parts" msgstr "" -#: order/serializers.py:795 order/serializers.py:1798 +#: order/serializers.py:898 order/serializers.py:1950 msgid "Line items must be provided" msgstr "" -#: order/serializers.py:811 +#: order/serializers.py:914 msgid "Destination location must be specified" msgstr "" -#: order/serializers.py:822 +#: order/serializers.py:925 msgid "Supplied barcode values must be unique" msgstr "" -#: order/serializers.py:1187 +#: order/serializers.py:1221 msgid "Sale price currency" msgstr "" -#: order/serializers.py:1248 +#: order/serializers.py:1260 +msgid "Allocated Items" +msgstr "" + +#: order/serializers.py:1374 msgid "No shipment details provided" msgstr "" -#: order/serializers.py:1309 order/serializers.py:1455 +#: order/serializers.py:1435 order/serializers.py:1581 msgid "Line item is not associated with this order" msgstr "" -#: order/serializers.py:1328 +#: order/serializers.py:1454 msgid "Quantity must be positive" msgstr "" -#: order/serializers.py:1465 +#: order/serializers.py:1591 msgid "Enter serial numbers to allocate" msgstr "" -#: order/serializers.py:1487 order/serializers.py:1593 +#: order/serializers.py:1613 order/serializers.py:1733 msgid "Shipment has already been shipped" msgstr "" -#: order/serializers.py:1490 order/serializers.py:1596 +#: order/serializers.py:1616 order/serializers.py:1736 msgid "Shipment is not associated with this order" msgstr "" -#: order/serializers.py:1537 +#: order/serializers.py:1671 msgid "No match found for the following serial numbers" msgstr "" -#: order/serializers.py:1544 -msgid "The following serial numbers are already allocated" +#: order/serializers.py:1678 +msgid "The following serial numbers are unavailable" msgstr "" -#: order/serializers.py:1752 +#: order/serializers.py:1904 msgid "Return order line item" msgstr "" -#: order/serializers.py:1758 +#: order/serializers.py:1910 msgid "Line item does not match return order" msgstr "" -#: order/serializers.py:1761 +#: order/serializers.py:1913 msgid "Line item has already been received" msgstr "" -#: order/serializers.py:1790 +#: order/serializers.py:1942 msgid "Items can only be received against orders which are in progress" msgstr "" -#: order/serializers.py:1873 +#: order/serializers.py:2025 msgid "Line price currency" msgstr "" -#: order/status_codes.py:17 order/status_codes.py:52 stock/status_codes.py:16 +#: order/status_codes.py:17 order/status_codes.py:54 stock/status_codes.py:16 msgid "Lost" msgstr "" -#: order/status_codes.py:18 order/status_codes.py:53 stock/status_codes.py:22 +#: order/status_codes.py:18 order/status_codes.py:55 stock/status_codes.py:24 msgid "Returned" msgstr "" -#: order/status_codes.py:45 order/status_codes.py:77 +#: order/status_codes.py:47 order/status_codes.py:79 msgid "In Progress" msgstr "" -#: order/status_codes.py:101 +#: order/status_codes.py:105 msgid "Return" msgstr "" -#: order/status_codes.py:104 +#: order/status_codes.py:108 msgid "Repair" msgstr "" -#: order/status_codes.py:107 +#: order/status_codes.py:111 msgid "Replace" msgstr "" -#: order/status_codes.py:110 +#: order/status_codes.py:114 msgid "Refund" msgstr "" -#: order/status_codes.py:113 +#: order/status_codes.py:117 msgid "Reject" msgstr "" -#: order/tasks.py:25 +#: order/tasks.py:30 msgid "Overdue Purchase Order" msgstr "" -#: order/tasks.py:30 +#: order/tasks.py:35 #, python-brace-format msgid "Purchase order {po} is now overdue" msgstr "" -#: order/tasks.py:75 +#: order/tasks.py:80 msgid "Overdue Sales Order" msgstr "" -#: order/tasks.py:80 +#: order/tasks.py:85 #, python-brace-format msgid "Sales order {so} is now overdue" msgstr "" -#: order/templates/order/order_base.html:51 +#: order/templates/order/order_base.html:52 msgid "Print purchase order report" msgstr "" -#: order/templates/order/order_base.html:53 -#: order/templates/order/return_order_base.html:62 -#: order/templates/order/sales_order_base.html:62 +#: order/templates/order/order_base.html:54 +#: order/templates/order/return_order_base.html:63 +#: order/templates/order/sales_order_base.html:63 msgid "Export order to file" msgstr "" -#: order/templates/order/order_base.html:59 -#: order/templates/order/return_order_base.html:72 -#: order/templates/order/sales_order_base.html:71 +#: order/templates/order/order_base.html:60 +#: order/templates/order/return_order_base.html:73 +#: order/templates/order/sales_order_base.html:72 msgid "Order actions" msgstr "" -#: order/templates/order/order_base.html:64 -#: order/templates/order/return_order_base.html:76 -#: order/templates/order/sales_order_base.html:75 +#: order/templates/order/order_base.html:65 +#: order/templates/order/return_order_base.html:77 +#: order/templates/order/sales_order_base.html:76 msgid "Edit order" msgstr "" -#: order/templates/order/order_base.html:68 +#: order/templates/order/order_base.html:69 msgid "Duplicate order" msgstr "" -#: order/templates/order/order_base.html:73 -#: order/templates/order/return_order_base.html:78 -#: order/templates/order/sales_order_base.html:77 +#: order/templates/order/order_base.html:74 +#: order/templates/order/return_order_base.html:79 +#: order/templates/order/sales_order_base.html:78 msgid "Hold order" msgstr "" -#: order/templates/order/order_base.html:78 -#: order/templates/order/return_order_base.html:81 -#: order/templates/order/sales_order_base.html:80 +#: order/templates/order/order_base.html:79 +#: order/templates/order/return_order_base.html:82 +#: order/templates/order/sales_order_base.html:81 msgid "Cancel order" msgstr "" -#: order/templates/order/order_base.html:84 #: order/templates/order/order_base.html:85 -#: order/templates/order/return_order_base.html:85 +#: order/templates/order/order_base.html:86 #: order/templates/order/return_order_base.html:86 -#: order/templates/order/sales_order_base.html:86 +#: order/templates/order/return_order_base.html:87 #: order/templates/order/sales_order_base.html:87 +#: order/templates/order/sales_order_base.html:88 msgid "Issue Order" msgstr "" -#: order/templates/order/order_base.html:88 -#: order/templates/order/return_order_base.html:89 -msgid "Mark order as complete" -msgstr "" - #: order/templates/order/order_base.html:89 #: order/templates/order/return_order_base.html:90 -#: order/templates/order/sales_order_base.html:100 +msgid "Mark order as complete" +msgstr "" + +#: order/templates/order/order_base.html:90 +#: order/templates/order/return_order_base.html:91 +#: order/templates/order/sales_order_base.html:101 msgid "Complete Order" msgstr "" -#: order/templates/order/order_base.html:96 +#: order/templates/order/order_base.html:97 msgid "Supplier part thumbnail" msgstr "" -#: order/templates/order/order_base.html:116 -#: order/templates/order/return_order_base.html:109 -#: order/templates/order/sales_order_base.html:118 +#: order/templates/order/order_base.html:117 +#: order/templates/order/return_order_base.html:110 +#: order/templates/order/sales_order_base.html:119 msgid "Order Description" msgstr "" -#: order/templates/order/order_base.html:146 -msgid "No suppplier information available" -msgstr "" - -#: order/templates/order/order_base.html:159 -#: order/templates/order/sales_order_base.html:164 +#: order/templates/order/order_base.html:168 +#: order/templates/order/sales_order_base.html:165 msgid "Completed Line Items" msgstr "" -#: order/templates/order/order_base.html:165 -#: order/templates/order/sales_order_base.html:170 -#: order/templates/order/sales_order_base.html:180 +#: order/templates/order/order_base.html:174 +#: order/templates/order/sales_order_base.html:171 +#: order/templates/order/sales_order_base.html:181 msgid "Incomplete" msgstr "" -#: order/templates/order/order_base.html:184 -#: order/templates/order/return_order_base.html:160 +#: order/templates/order/order_base.html:193 +#: order/templates/order/return_order_base.html:161 #: report/templates/report/inventree_build_order_report.html:121 msgid "Issued" msgstr "" -#: order/templates/order/order_base.html:229 +#: order/templates/order/order_base.html:238 msgid "Total cost" msgstr "" -#: order/templates/order/order_base.html:233 -#: order/templates/order/return_order_base.html:202 -#: order/templates/order/sales_order_base.html:246 +#: order/templates/order/order_base.html:242 +#: order/templates/order/return_order_base.html:203 +#: order/templates/order/sales_order_base.html:247 msgid "Total cost could not be calculated" msgstr "" -#: order/templates/order/order_base.html:335 +#: order/templates/order/order_base.html:344 msgid "Purchase Order QR Code" msgstr "" -#: order/templates/order/order_base.html:347 +#: order/templates/order/order_base.html:356 msgid "Link Barcode to Purchase Order" msgstr "" @@ -6184,12 +6392,12 @@ msgstr "" #: part/templates/part/import_wizard/ajax_match_references.html:42 #: part/templates/part/import_wizard/match_fields.html:71 #: part/templates/part/import_wizard/match_references.html:49 -#: templates/js/translated/bom.js:133 templates/js/translated/build.js:530 -#: templates/js/translated/build.js:1802 -#: templates/js/translated/purchase_order.js:696 -#: templates/js/translated/purchase_order.js:1288 +#: templates/js/translated/bom.js:133 templates/js/translated/build.js:533 +#: templates/js/translated/build.js:1805 +#: templates/js/translated/purchase_order.js:679 +#: templates/js/translated/purchase_order.js:1271 #: templates/js/translated/return_order.js:505 -#: templates/js/translated/sales_order.js:1145 +#: templates/js/translated/sales_order.js:1111 #: templates/js/translated/stock.js:720 templates/js/translated/stock.js:889 #: templates/patterns/wizard/match_fields.html:70 msgid "Remove row" @@ -6242,7 +6450,7 @@ msgstr "" #: order/templates/order/purchase_order_detail.html:27 #: order/templates/order/return_order_detail.html:24 #: order/templates/order/sales_order_detail.html:24 -#: templates/js/translated/purchase_order.js:414 +#: templates/js/translated/purchase_order.js:397 #: templates/js/translated/return_order.js:458 #: templates/js/translated/sales_order.js:237 msgid "Add Line Item" @@ -6277,45 +6485,45 @@ msgstr "" msgid "Order Notes" msgstr "" -#: order/templates/order/return_order_base.html:18 -#: order/templates/order/sales_order_base.html:18 +#: order/templates/order/return_order_base.html:19 +#: order/templates/order/sales_order_base.html:19 msgid "Customer logo thumbnail" msgstr "" -#: order/templates/order/return_order_base.html:60 +#: order/templates/order/return_order_base.html:61 msgid "Print return order report" msgstr "" -#: order/templates/order/return_order_base.html:64 -#: order/templates/order/sales_order_base.html:64 +#: order/templates/order/return_order_base.html:65 +#: order/templates/order/sales_order_base.html:65 msgid "Print packing list" msgstr "" -#: order/templates/order/return_order_base.html:141 -#: order/templates/order/sales_order_base.html:158 +#: order/templates/order/return_order_base.html:142 +#: order/templates/order/sales_order_base.html:159 #: templates/js/translated/return_order.js:308 -#: templates/js/translated/sales_order.js:833 +#: templates/js/translated/sales_order.js:792 msgid "Customer Reference" msgstr "" -#: order/templates/order/return_order_base.html:198 -#: order/templates/order/sales_order_base.html:242 +#: order/templates/order/return_order_base.html:199 +#: order/templates/order/sales_order_base.html:243 #: part/templates/part/part_pricing.html:32 #: part/templates/part/part_pricing.html:58 #: part/templates/part/part_pricing.html:99 #: part/templates/part/part_pricing.html:114 #: templates/js/translated/part.js:1079 -#: templates/js/translated/purchase_order.js:1822 +#: templates/js/translated/purchase_order.js:1806 #: templates/js/translated/return_order.js:380 -#: templates/js/translated/sales_order.js:891 +#: templates/js/translated/sales_order.js:850 msgid "Total Cost" msgstr "" -#: order/templates/order/return_order_base.html:273 +#: order/templates/order/return_order_base.html:274 msgid "Return Order QR Code" msgstr "" -#: order/templates/order/return_order_base.html:285 +#: order/templates/order/return_order_base.html:286 msgid "Link Barcode to Return Order" msgstr "" @@ -6323,40 +6531,40 @@ msgstr "" msgid "Order Details" msgstr "" -#: order/templates/order/sales_order_base.html:60 +#: order/templates/order/sales_order_base.html:61 msgid "Print sales order report" msgstr "" -#: order/templates/order/sales_order_base.html:91 #: order/templates/order/sales_order_base.html:92 +#: order/templates/order/sales_order_base.html:93 msgid "Ship Items" msgstr "" -#: order/templates/order/sales_order_base.html:95 #: order/templates/order/sales_order_base.html:96 +#: order/templates/order/sales_order_base.html:97 msgid "Mark As Shipped" msgstr "" -#: order/templates/order/sales_order_base.html:99 -#: templates/js/translated/sales_order.js:536 +#: order/templates/order/sales_order_base.html:100 +#: templates/js/translated/sales_order.js:495 msgid "Complete Sales Order" msgstr "" -#: order/templates/order/sales_order_base.html:138 +#: order/templates/order/sales_order_base.html:139 msgid "This Sales Order has not been fully allocated" msgstr "" -#: order/templates/order/sales_order_base.html:176 +#: order/templates/order/sales_order_base.html:177 #: order/templates/order/sales_order_detail.html:99 #: order/templates/order/so_sidebar.html:11 msgid "Completed Shipments" msgstr "" -#: order/templates/order/sales_order_base.html:339 +#: order/templates/order/sales_order_base.html:340 msgid "Sales Order QR Code" msgstr "" -#: order/templates/order/sales_order_base.html:351 +#: order/templates/order/sales_order_base.html:352 msgid "Link Barcode to Sales Order" msgstr "" @@ -6370,7 +6578,7 @@ msgid "Pending Shipments" msgstr "" #: order/templates/order/sales_order_detail.html:71 -#: templates/js/translated/bom.js:1277 templates/js/translated/build.js:1063 +#: templates/js/translated/bom.js:1277 templates/js/translated/build.js:1066 #: templates/js/translated/filters.js:299 msgid "Actions" msgstr "" @@ -6383,39 +6591,40 @@ msgstr "" msgid "Match Supplier Parts" msgstr "" -#: order/views.py:406 +#: order/views.py:407 msgid "Sales order not found" msgstr "" -#: order/views.py:412 +#: order/views.py:413 msgid "Price not found" msgstr "" -#: order/views.py:415 +#: order/views.py:416 #, python-brace-format msgid "Updated {part} unit-price to {price}" msgstr "" -#: order/views.py:421 +#: order/views.py:422 #, python-brace-format msgid "Updated {part} unit-price to {price} and quantity to {qty}" msgstr "" -#: part/admin.py:48 part/models.py:1032 part/templates/part/part_base.html:269 +#: part/admin.py:48 part/models.py:1093 part/serializers.py:939 +#: part/templates/part/part_base.html:277 #: report/templates/report/inventree_stock_location_report.html:103 #: templates/js/translated/part.js:1233 templates/js/translated/part.js:2347 -#: templates/js/translated/stock.js:2121 +#: templates/js/translated/stock.js:2122 msgid "IPN" msgstr "" -#: part/admin.py:50 part/models.py:1041 part/templates/part/part_base.html:286 +#: part/admin.py:50 part/models.py:1102 part/templates/part/part_base.html:294 #: report/models.py:161 templates/js/translated/part.js:1238 #: templates/js/translated/part.js:2353 msgid "Revision" msgstr "" -#: part/admin.py:53 part/admin.py:319 part/models.py:1014 -#: part/templates/part/category.html:91 part/templates/part/part_base.html:307 +#: part/admin.py:53 part/admin.py:319 part/models.py:1075 +#: part/templates/part/category.html:91 part/templates/part/part_base.html:315 msgid "Keywords" msgstr "" @@ -6427,7 +6636,7 @@ msgstr "" msgid "Category ID" msgstr "" -#: part/admin.py:67 part/admin.py:304 part/serializers.py:880 +#: part/admin.py:67 part/admin.py:304 part/serializers.py:924 #: part/stocktake.py:222 msgid "Category Name" msgstr "" @@ -6440,11 +6649,11 @@ msgstr "" msgid "Default Supplier ID" msgstr "" -#: part/admin.py:81 part/models.py:1000 part/templates/part/part_base.html:177 +#: part/admin.py:81 part/models.py:1061 part/templates/part/part_base.html:178 msgid "Variant Of" msgstr "" -#: part/admin.py:84 part/models.py:1138 part/templates/part/part_base.html:203 +#: part/admin.py:84 part/models.py:1199 part/templates/part/part_base.html:204 msgid "Minimum Stock" msgstr "" @@ -6452,23 +6661,23 @@ msgstr "" msgid "Used In" msgstr "" -#: part/admin.py:150 part/serializers.py:897 -#: part/templates/part/part_base.html:241 stock/admin.py:235 +#: part/admin.py:150 part/serializers.py:949 +#: part/templates/part/part_base.html:249 stock/admin.py:236 #: templates/js/translated/part.js:717 templates/js/translated/part.js:2159 msgid "Building" msgstr "" -#: part/admin.py:155 part/models.py:3202 part/models.py:3216 +#: part/admin.py:155 part/models.py:3253 part/models.py:3267 #: templates/js/translated/part.js:976 msgid "Minimum Cost" msgstr "" -#: part/admin.py:158 part/models.py:3209 part/models.py:3223 +#: part/admin.py:158 part/models.py:3260 part/models.py:3274 #: templates/js/translated/part.js:986 msgid "Maximum Cost" msgstr "" -#: part/admin.py:308 part/admin.py:387 stock/admin.py:57 stock/admin.py:215 +#: part/admin.py:308 part/admin.py:387 stock/admin.py:57 stock/admin.py:216 msgid "Parent ID" msgstr "" @@ -6481,8 +6690,8 @@ msgstr "" msgid "Category Path" msgstr "" -#: part/admin.py:325 part/models.py:425 part/serializers.py:130 -#: part/serializers.py:290 part/serializers.py:415 +#: part/admin.py:325 part/models.py:420 part/serializers.py:130 +#: part/serializers.py:323 part/serializers.py:459 #: part/templates/part/cat_link.html:3 part/templates/part/category.html:20 #: part/templates/part/category.html:138 part/templates/part/category.html:158 #: part/templates/part/category_sidebar.html:9 @@ -6509,15 +6718,15 @@ msgstr "" msgid "Part Revision" msgstr "" -#: part/admin.py:418 part/serializers.py:1346 +#: part/admin.py:418 part/serializers.py:1400 #: templates/js/translated/pricing.js:358 -#: templates/js/translated/pricing.js:1024 +#: templates/js/translated/pricing.js:1022 msgid "Minimum Price" msgstr "" -#: part/admin.py:423 part/serializers.py:1361 +#: part/admin.py:423 part/serializers.py:1415 #: templates/js/translated/pricing.js:353 -#: templates/js/translated/pricing.js:1032 +#: templates/js/translated/pricing.js:1030 msgid "Maximum Price" msgstr "" @@ -6545,94 +6754,98 @@ msgstr "" msgid "Filter by top-level categories" msgstr "" +#: part/api.py:156 stock/api.py:343 +msgid "Cascade" +msgstr "" + #: part/api.py:158 msgid "Include sub-categories in filtered results" msgstr "" -#: part/api.py:179 templates/js/translated/part.js:311 +#: part/api.py:178 templates/js/translated/part.js:311 msgid "Parent" msgstr "" -#: part/api.py:181 +#: part/api.py:180 msgid "Filter by parent category" msgstr "" -#: part/api.py:214 +#: part/api.py:213 msgid "Exclude Tree" msgstr "" -#: part/api.py:216 +#: part/api.py:215 msgid "Exclude sub-categories under the specified category" msgstr "" -#: part/api.py:441 +#: part/api.py:440 msgid "Has Results" msgstr "" -#: part/api.py:608 +#: part/api.py:604 msgid "Incoming Purchase Order" msgstr "" -#: part/api.py:626 +#: part/api.py:618 msgid "Outgoing Sales Order" msgstr "" -#: part/api.py:642 +#: part/api.py:630 msgid "Stock produced by Build Order" msgstr "" -#: part/api.py:726 +#: part/api.py:712 msgid "Stock required for Build Order" msgstr "" -#: part/api.py:874 +#: part/api.py:858 msgid "Validate entire Bill of Materials" msgstr "" -#: part/api.py:880 +#: part/api.py:864 msgid "This option must be selected" msgstr "" -#: part/api.py:916 +#: part/api.py:900 msgid "Is Revision" msgstr "" -#: part/api.py:926 +#: part/api.py:910 msgid "Has Revisions" msgstr "" -#: part/api.py:1117 +#: part/api.py:1101 msgid "BOM Valid" msgstr "" -#: part/api.py:1523 part/models.py:1024 part/models.py:3489 part/models.py:4046 -#: part/serializers.py:430 part/serializers.py:1202 -#: part/templates/part/part_base.html:260 stock/api.py:781 +#: part/api.py:1509 part/models.py:1085 part/models.py:3540 part/models.py:4104 +#: part/serializers.py:474 part/serializers.py:1255 +#: part/templates/part/part_base.html:268 stock/api.py:781 #: templates/InvenTree/settings/settings_staff_js.html:300 #: templates/js/translated/notification.js:60 #: templates/js/translated/part.js:2383 msgid "Category" msgstr "" -#: part/api.py:1761 +#: part/api.py:1750 msgid "Assembly part is testable" msgstr "" -#: part/api.py:1770 +#: part/api.py:1759 msgid "Component part is testable" msgstr "" -#: part/api.py:1821 +#: part/api.py:1810 msgid "Uses" msgstr "" -#: part/bom.py:178 part/models.py:107 part/models.py:1077 -#: part/templates/part/category.html:113 part/templates/part/part_base.html:376 +#: part/bom.py:183 part/models.py:109 part/models.py:1138 +#: part/templates/part/category.html:113 part/templates/part/part_base.html:384 #: templates/js/translated/part.js:2397 msgid "Default Location" msgstr "" -#: part/bom.py:179 part/serializers.py:905 +#: part/bom.py:184 part/serializers.py:957 #: templates/email/low_stock_notification.html:16 msgid "Total Stock" msgstr "" @@ -6641,789 +6854,789 @@ msgstr "" msgid "Input quantity for price calculation" msgstr "" -#: part/models.py:88 part/models.py:4047 part/templates/part/category.html:16 +#: part/models.py:90 part/models.py:4105 part/templates/part/category.html:16 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "" -#: part/models.py:89 part/templates/part/category.html:133 +#: part/models.py:91 part/templates/part/category.html:133 #: templates/InvenTree/search.html:97 templates/js/translated/search.js:158 #: users/models.py:202 msgid "Part Categories" msgstr "" -#: part/models.py:108 +#: part/models.py:110 msgid "Default location for parts in this category" msgstr "" -#: part/models.py:113 stock/models.py:187 templates/js/translated/part.js:2828 -#: templates/js/translated/stock.js:2856 +#: part/models.py:115 stock/models.py:193 templates/js/translated/part.js:2828 +#: templates/js/translated/stock.js:2857 #: templates/js/translated/table_filters.js:246 #: templates/js/translated/table_filters.js:290 msgid "Structural" msgstr "" -#: part/models.py:115 +#: part/models.py:117 msgid "Parts may not be directly assigned to a structural category, but may be assigned to child categories." msgstr "" -#: part/models.py:124 +#: part/models.py:126 msgid "Default keywords" msgstr "" -#: part/models.py:125 +#: part/models.py:127 msgid "Default keywords for parts in this category" msgstr "" -#: part/models.py:131 stock/models.py:90 stock/models.py:169 +#: part/models.py:133 stock/models.py:96 stock/models.py:175 #: templates/InvenTree/settings/settings_staff_js.html:445 msgid "Icon" msgstr "" -#: part/models.py:132 part/serializers.py:143 part/serializers.py:161 -#: stock/models.py:170 +#: part/models.py:134 part/serializers.py:143 part/serializers.py:161 +#: stock/models.py:176 msgid "Icon (optional)" msgstr "" -#: part/models.py:178 +#: part/models.py:180 msgid "You cannot make this part category structural because some parts are already assigned to it!" msgstr "" -#: part/models.py:519 +#: part/models.py:514 msgid "Cannot delete this part as it is locked" msgstr "" -#: part/models.py:522 +#: part/models.py:517 msgid "Cannot delete this part as it is still active" msgstr "" -#: part/models.py:527 +#: part/models.py:522 msgid "Cannot delete this part as it is used in an assembly" msgstr "" -#: part/models.py:565 +#: part/models.py:560 msgid "Invalid choice for parent part" msgstr "" -#: part/models.py:613 part/models.py:620 +#: part/models.py:608 part/models.py:615 #, python-brace-format msgid "Part '{self}' cannot be used in BOM for '{parent}' (recursive)" msgstr "" -#: part/models.py:632 +#: part/models.py:627 #, python-brace-format msgid "Part '{parent}' is used in BOM for '{self}' (recursive)" msgstr "" -#: part/models.py:695 +#: part/models.py:694 #, python-brace-format msgid "IPN must match regex pattern {pattern}" msgstr "" -#: part/models.py:703 +#: part/models.py:702 msgid "Part cannot be a revision of itself" msgstr "" -#: part/models.py:710 +#: part/models.py:709 msgid "Cannot make a revision of a part which is already a revision" msgstr "" -#: part/models.py:717 +#: part/models.py:716 msgid "Revision code must be specified" msgstr "" -#: part/models.py:724 +#: part/models.py:723 msgid "Revisions are only allowed for assembly parts" msgstr "" -#: part/models.py:731 +#: part/models.py:730 msgid "Cannot make a revision of a template part" msgstr "" -#: part/models.py:737 +#: part/models.py:736 msgid "Parent part must point to the same template" msgstr "" -#: part/models.py:816 +#: part/models.py:832 msgid "Stock item with this serial number already exists" msgstr "" -#: part/models.py:917 +#: part/models.py:976 msgid "Duplicate IPN not allowed in part settings" msgstr "" -#: part/models.py:926 +#: part/models.py:988 msgid "Duplicate part revision already exists." msgstr "" -#: part/models.py:936 +#: part/models.py:997 msgid "Part with this Name, IPN and Revision already exists." msgstr "" -#: part/models.py:951 +#: part/models.py:1012 msgid "Parts cannot be assigned to structural part categories!" msgstr "" -#: part/models.py:983 part/models.py:4102 +#: part/models.py:1044 part/models.py:4160 msgid "Part name" msgstr "" -#: part/models.py:988 +#: part/models.py:1049 msgid "Is Template" msgstr "" -#: part/models.py:989 +#: part/models.py:1050 msgid "Is this part a template part?" msgstr "" -#: part/models.py:999 +#: part/models.py:1060 msgid "Is this part a variant of another part?" msgstr "" -#: part/models.py:1007 +#: part/models.py:1068 msgid "Part description (optional)" msgstr "" -#: part/models.py:1015 +#: part/models.py:1076 msgid "Part keywords to improve visibility in search results" msgstr "" -#: part/models.py:1025 +#: part/models.py:1086 msgid "Part category" msgstr "" -#: part/models.py:1040 +#: part/models.py:1101 msgid "Part revision or version number" msgstr "" -#: part/models.py:1050 +#: part/models.py:1111 msgid "Is this part a revision of another part?" msgstr "" -#: part/models.py:1051 part/templates/part/part_base.html:277 +#: part/models.py:1112 part/templates/part/part_base.html:285 msgid "Revision Of" msgstr "" -#: part/models.py:1075 +#: part/models.py:1136 msgid "Where is this item normally stored?" msgstr "" -#: part/models.py:1121 part/templates/part/part_base.html:385 +#: part/models.py:1182 part/templates/part/part_base.html:393 msgid "Default Supplier" msgstr "" -#: part/models.py:1122 +#: part/models.py:1183 msgid "Default supplier part" msgstr "" -#: part/models.py:1129 +#: part/models.py:1190 msgid "Default Expiry" msgstr "" -#: part/models.py:1130 +#: part/models.py:1191 msgid "Expiry time (in days) for stock items of this part" msgstr "" -#: part/models.py:1139 +#: part/models.py:1200 msgid "Minimum allowed stock level" msgstr "" -#: part/models.py:1148 +#: part/models.py:1209 msgid "Units of measure for this part" msgstr "" -#: part/models.py:1155 +#: part/models.py:1216 msgid "Can this part be built from other parts?" msgstr "" -#: part/models.py:1161 +#: part/models.py:1222 msgid "Can this part be used to build other parts?" msgstr "" -#: part/models.py:1167 +#: part/models.py:1228 msgid "Does this part have tracking for unique items?" msgstr "" -#: part/models.py:1173 +#: part/models.py:1234 msgid "Can this part have test results recorded against it?" msgstr "" -#: part/models.py:1179 +#: part/models.py:1240 msgid "Can this part be purchased from external suppliers?" msgstr "" -#: part/models.py:1185 +#: part/models.py:1246 msgid "Can this part be sold to customers?" msgstr "" -#: part/models.py:1189 +#: part/models.py:1250 msgid "Is this part active?" msgstr "" -#: part/models.py:1194 templates/js/translated/part.js:821 +#: part/models.py:1255 templates/js/translated/part.js:821 #: templates/js/translated/table_filters.js:724 msgid "Locked" msgstr "" -#: part/models.py:1195 +#: part/models.py:1256 msgid "Locked parts cannot be edited" msgstr "" -#: part/models.py:1201 +#: part/models.py:1262 msgid "Is this a virtual part, such as a software product or license?" msgstr "" -#: part/models.py:1207 +#: part/models.py:1268 msgid "BOM checksum" msgstr "" -#: part/models.py:1208 +#: part/models.py:1269 msgid "Stored BOM checksum" msgstr "" -#: part/models.py:1216 +#: part/models.py:1277 msgid "BOM checked by" msgstr "" -#: part/models.py:1221 +#: part/models.py:1282 msgid "BOM checked date" msgstr "" -#: part/models.py:1237 +#: part/models.py:1298 msgid "Creation User" msgstr "" -#: part/models.py:1247 +#: part/models.py:1308 msgid "Owner responsible for this part" msgstr "" -#: part/models.py:1252 part/templates/part/part_base.html:348 -#: stock/templates/stock/item_base.html:451 +#: part/models.py:1313 part/templates/part/part_base.html:356 +#: stock/templates/stock/item_base.html:448 #: templates/js/translated/part.js:2490 msgid "Last Stocktake" msgstr "" -#: part/models.py:2125 +#: part/models.py:2185 msgid "Sell multiple" msgstr "" -#: part/models.py:3116 +#: part/models.py:3167 msgid "Currency used to cache pricing calculations" msgstr "" -#: part/models.py:3132 +#: part/models.py:3183 msgid "Minimum BOM Cost" msgstr "" -#: part/models.py:3133 +#: part/models.py:3184 msgid "Minimum cost of component parts" msgstr "" -#: part/models.py:3139 +#: part/models.py:3190 msgid "Maximum BOM Cost" msgstr "" -#: part/models.py:3140 +#: part/models.py:3191 msgid "Maximum cost of component parts" msgstr "" -#: part/models.py:3146 +#: part/models.py:3197 msgid "Minimum Purchase Cost" msgstr "" -#: part/models.py:3147 +#: part/models.py:3198 msgid "Minimum historical purchase cost" msgstr "" -#: part/models.py:3153 +#: part/models.py:3204 msgid "Maximum Purchase Cost" msgstr "" -#: part/models.py:3154 +#: part/models.py:3205 msgid "Maximum historical purchase cost" msgstr "" -#: part/models.py:3160 +#: part/models.py:3211 msgid "Minimum Internal Price" msgstr "" -#: part/models.py:3161 +#: part/models.py:3212 msgid "Minimum cost based on internal price breaks" msgstr "" -#: part/models.py:3167 +#: part/models.py:3218 msgid "Maximum Internal Price" msgstr "" -#: part/models.py:3168 +#: part/models.py:3219 msgid "Maximum cost based on internal price breaks" msgstr "" -#: part/models.py:3174 +#: part/models.py:3225 msgid "Minimum Supplier Price" msgstr "" -#: part/models.py:3175 +#: part/models.py:3226 msgid "Minimum price of part from external suppliers" msgstr "" -#: part/models.py:3181 +#: part/models.py:3232 msgid "Maximum Supplier Price" msgstr "" -#: part/models.py:3182 +#: part/models.py:3233 msgid "Maximum price of part from external suppliers" msgstr "" -#: part/models.py:3188 +#: part/models.py:3239 msgid "Minimum Variant Cost" msgstr "" -#: part/models.py:3189 +#: part/models.py:3240 msgid "Calculated minimum cost of variant parts" msgstr "" -#: part/models.py:3195 +#: part/models.py:3246 msgid "Maximum Variant Cost" msgstr "" -#: part/models.py:3196 +#: part/models.py:3247 msgid "Calculated maximum cost of variant parts" msgstr "" -#: part/models.py:3203 +#: part/models.py:3254 msgid "Override minimum cost" msgstr "" -#: part/models.py:3210 +#: part/models.py:3261 msgid "Override maximum cost" msgstr "" -#: part/models.py:3217 +#: part/models.py:3268 msgid "Calculated overall minimum cost" msgstr "" -#: part/models.py:3224 +#: part/models.py:3275 msgid "Calculated overall maximum cost" msgstr "" -#: part/models.py:3230 +#: part/models.py:3281 msgid "Minimum Sale Price" msgstr "" -#: part/models.py:3231 +#: part/models.py:3282 msgid "Minimum sale price based on price breaks" msgstr "" -#: part/models.py:3237 +#: part/models.py:3288 msgid "Maximum Sale Price" msgstr "" -#: part/models.py:3238 +#: part/models.py:3289 msgid "Maximum sale price based on price breaks" msgstr "" -#: part/models.py:3244 +#: part/models.py:3295 msgid "Minimum Sale Cost" msgstr "" -#: part/models.py:3245 +#: part/models.py:3296 msgid "Minimum historical sale price" msgstr "" -#: part/models.py:3251 +#: part/models.py:3302 msgid "Maximum Sale Cost" msgstr "" -#: part/models.py:3252 +#: part/models.py:3303 msgid "Maximum historical sale price" msgstr "" -#: part/models.py:3271 +#: part/models.py:3322 msgid "Part for stocktake" msgstr "" -#: part/models.py:3276 +#: part/models.py:3327 msgid "Item Count" msgstr "" -#: part/models.py:3277 +#: part/models.py:3328 msgid "Number of individual stock entries at time of stocktake" msgstr "" -#: part/models.py:3285 +#: part/models.py:3336 msgid "Total available stock at time of stocktake" msgstr "" -#: part/models.py:3289 part/models.py:3372 +#: part/models.py:3340 part/models.py:3423 part/serializers.py:263 #: part/templates/part/part_scheduling.html:13 #: report/templates/report/inventree_test_report.html:106 #: templates/InvenTree/settings/plugin_settings.html:37 #: templates/InvenTree/settings/settings_staff_js.html:543 -#: templates/js/translated/part.js:1092 templates/js/translated/pricing.js:826 -#: templates/js/translated/pricing.js:950 -#: templates/js/translated/purchase_order.js:1801 -#: templates/js/translated/stock.js:2905 +#: templates/js/translated/part.js:1092 templates/js/translated/pricing.js:824 +#: templates/js/translated/pricing.js:948 +#: templates/js/translated/purchase_order.js:1785 +#: templates/js/translated/stock.js:2906 msgid "Date" msgstr "" -#: part/models.py:3290 +#: part/models.py:3341 msgid "Date stocktake was performed" msgstr "" -#: part/models.py:3298 +#: part/models.py:3349 msgid "Additional notes" msgstr "" -#: part/models.py:3308 +#: part/models.py:3359 msgid "User who performed this stocktake" msgstr "" -#: part/models.py:3314 +#: part/models.py:3365 msgid "Minimum Stock Cost" msgstr "" -#: part/models.py:3315 +#: part/models.py:3366 msgid "Estimated minimum cost of stock on hand" msgstr "" -#: part/models.py:3321 +#: part/models.py:3372 msgid "Maximum Stock Cost" msgstr "" -#: part/models.py:3322 +#: part/models.py:3373 msgid "Estimated maximum cost of stock on hand" msgstr "" -#: part/models.py:3378 templates/InvenTree/settings/settings_staff_js.html:532 +#: part/models.py:3429 templates/InvenTree/settings/settings_staff_js.html:532 msgid "Report" msgstr "" -#: part/models.py:3379 +#: part/models.py:3430 msgid "Stocktake report file (generated internally)" msgstr "" -#: part/models.py:3384 templates/InvenTree/settings/settings_staff_js.html:539 +#: part/models.py:3435 templates/InvenTree/settings/settings_staff_js.html:539 msgid "Part Count" msgstr "" -#: part/models.py:3385 +#: part/models.py:3436 msgid "Number of parts covered by stocktake" msgstr "" -#: part/models.py:3395 +#: part/models.py:3446 msgid "User who requested this stocktake report" msgstr "" -#: part/models.py:3405 +#: part/models.py:3456 msgid "Part Sale Price Break" msgstr "" -#: part/models.py:3517 +#: part/models.py:3568 msgid "Part Test Template" msgstr "" -#: part/models.py:3543 +#: part/models.py:3594 msgid "Invalid template name - must include at least one alphanumeric character" msgstr "" -#: part/models.py:3564 part/models.py:3733 +#: part/models.py:3615 part/models.py:3784 msgid "Choices must be unique" msgstr "" -#: part/models.py:3575 -msgid "Test templates can only be created for trackable parts" +#: part/models.py:3626 +msgid "Test templates can only be created for testable parts" msgstr "" -#: part/models.py:3586 +#: part/models.py:3637 msgid "Test template with the same key already exists for part" msgstr "" -#: part/models.py:3603 templates/js/translated/part.js:2898 +#: part/models.py:3654 templates/js/translated/part.js:2898 msgid "Test Name" msgstr "" -#: part/models.py:3604 +#: part/models.py:3655 msgid "Enter a name for the test" msgstr "" -#: part/models.py:3610 +#: part/models.py:3661 msgid "Test Key" msgstr "" -#: part/models.py:3611 +#: part/models.py:3662 msgid "Simplified key for the test" msgstr "" -#: part/models.py:3618 +#: part/models.py:3669 msgid "Test Description" msgstr "" -#: part/models.py:3619 +#: part/models.py:3670 msgid "Enter description for this test" msgstr "" -#: part/models.py:3623 report/models.py:208 +#: part/models.py:3674 report/models.py:216 #: templates/js/translated/part.js:2919 #: templates/js/translated/table_filters.js:502 msgid "Enabled" msgstr "" -#: part/models.py:3623 +#: part/models.py:3674 msgid "Is this test enabled?" msgstr "" -#: part/models.py:3628 templates/js/translated/part.js:2927 +#: part/models.py:3679 templates/js/translated/part.js:2927 #: templates/js/translated/table_filters.js:498 msgid "Required" msgstr "" -#: part/models.py:3629 +#: part/models.py:3680 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:3634 templates/js/translated/part.js:2935 +#: part/models.py:3685 templates/js/translated/part.js:2935 msgid "Requires Value" msgstr "" -#: part/models.py:3635 +#: part/models.py:3686 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:3640 templates/js/translated/part.js:2942 +#: part/models.py:3691 templates/js/translated/part.js:2942 msgid "Requires Attachment" msgstr "" -#: part/models.py:3642 +#: part/models.py:3693 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:3648 part/models.py:3792 templates/js/translated/part.js:1643 +#: part/models.py:3699 part/models.py:3843 templates/js/translated/part.js:1643 msgid "Choices" msgstr "" -#: part/models.py:3649 +#: part/models.py:3700 msgid "Valid choices for this test (comma-separated)" msgstr "" -#: part/models.py:3681 +#: part/models.py:3732 msgid "Part Parameter Template" msgstr "" -#: part/models.py:3708 +#: part/models.py:3759 msgid "Checkbox parameters cannot have units" msgstr "" -#: part/models.py:3713 +#: part/models.py:3764 msgid "Checkbox parameters cannot have choices" msgstr "" -#: part/models.py:3750 +#: part/models.py:3801 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:3765 +#: part/models.py:3816 msgid "Parameter Name" msgstr "" -#: part/models.py:3772 +#: part/models.py:3823 msgid "Physical units for this parameter" msgstr "" -#: part/models.py:3780 +#: part/models.py:3831 msgid "Parameter description" msgstr "" -#: part/models.py:3786 templates/js/translated/part.js:1634 +#: part/models.py:3837 templates/js/translated/part.js:1634 #: templates/js/translated/table_filters.js:837 msgid "Checkbox" msgstr "" -#: part/models.py:3787 +#: part/models.py:3838 msgid "Is this parameter a checkbox?" msgstr "" -#: part/models.py:3793 +#: part/models.py:3844 msgid "Valid choices for this parameter (comma-separated)" msgstr "" -#: part/models.py:3827 +#: part/models.py:3881 msgid "Part Parameter" msgstr "" -#: part/models.py:3853 +#: part/models.py:3907 msgid "Parameter cannot be modified - part is locked" msgstr "" -#: part/models.py:3889 +#: part/models.py:3945 msgid "Invalid choice for parameter value" msgstr "" -#: part/models.py:3938 +#: part/models.py:3996 msgid "Parent Part" msgstr "" -#: part/models.py:3946 part/models.py:4054 part/models.py:4055 +#: part/models.py:4004 part/models.py:4112 part/models.py:4113 #: templates/InvenTree/settings/settings_staff_js.html:295 msgid "Parameter Template" msgstr "" -#: part/models.py:3952 +#: part/models.py:4010 msgid "Parameter Value" msgstr "" -#: part/models.py:4002 +#: part/models.py:4060 msgid "Part Category Parameter Template" msgstr "" -#: part/models.py:4061 templates/InvenTree/settings/settings_staff_js.html:304 +#: part/models.py:4119 templates/InvenTree/settings/settings_staff_js.html:304 msgid "Default Value" msgstr "" -#: part/models.py:4062 +#: part/models.py:4120 msgid "Default Parameter Value" msgstr "" -#: part/models.py:4100 +#: part/models.py:4158 msgid "Part ID or part name" msgstr "" -#: part/models.py:4101 +#: part/models.py:4159 msgid "Unique part ID value" msgstr "" -#: part/models.py:4103 +#: part/models.py:4161 msgid "Part IPN value" msgstr "" -#: part/models.py:4104 +#: part/models.py:4162 msgid "Level" msgstr "" -#: part/models.py:4104 +#: part/models.py:4162 msgid "BOM level" msgstr "" -#: part/models.py:4215 +#: part/models.py:4272 msgid "BOM item cannot be modified - assembly is locked" msgstr "" -#: part/models.py:4222 +#: part/models.py:4279 msgid "BOM item cannot be modified - variant assembly is locked" msgstr "" -#: part/models.py:4232 +#: part/models.py:4289 msgid "Select parent part" msgstr "" -#: part/models.py:4242 +#: part/models.py:4299 msgid "Sub part" msgstr "" -#: part/models.py:4243 +#: part/models.py:4300 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:4254 +#: part/models.py:4311 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:4260 +#: part/models.py:4317 msgid "This BOM item is optional" msgstr "" -#: part/models.py:4266 +#: part/models.py:4323 msgid "This BOM item is consumable (it is not tracked in build orders)" msgstr "" -#: part/models.py:4273 part/templates/part/upload_bom.html:55 +#: part/models.py:4330 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "" -#: part/models.py:4274 +#: part/models.py:4331 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:4281 +#: part/models.py:4338 msgid "BOM item reference" msgstr "" -#: part/models.py:4289 +#: part/models.py:4346 msgid "BOM item notes" msgstr "" -#: part/models.py:4295 +#: part/models.py:4352 msgid "Checksum" msgstr "" -#: part/models.py:4296 +#: part/models.py:4353 msgid "BOM line checksum" msgstr "" -#: part/models.py:4301 templates/js/translated/table_filters.js:181 +#: part/models.py:4358 templates/js/translated/table_filters.js:181 msgid "Validated" msgstr "" -#: part/models.py:4302 +#: part/models.py:4359 msgid "This BOM item has been validated" msgstr "" -#: part/models.py:4307 part/templates/part/upload_bom.html:57 +#: part/models.py:4364 part/templates/part/upload_bom.html:57 #: templates/js/translated/bom.js:1054 #: templates/js/translated/table_filters.js:185 #: templates/js/translated/table_filters.js:218 msgid "Gets inherited" msgstr "" -#: part/models.py:4308 +#: part/models.py:4365 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:4314 +#: part/models.py:4371 msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:4399 stock/models.py:685 +#: part/models.py:4456 stock/models.py:762 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:4409 part/models.py:4411 +#: part/models.py:4466 part/models.py:4468 msgid "Sub part must be specified" msgstr "" -#: part/models.py:4551 +#: part/models.py:4613 msgid "BOM Item Substitute" msgstr "" -#: part/models.py:4572 +#: part/models.py:4634 msgid "Substitute part cannot be the same as the master part" msgstr "" -#: part/models.py:4585 +#: part/models.py:4647 msgid "Parent BOM item" msgstr "" -#: part/models.py:4593 +#: part/models.py:4655 msgid "Substitute part" msgstr "" -#: part/models.py:4609 +#: part/models.py:4671 msgid "Part 1" msgstr "" -#: part/models.py:4617 +#: part/models.py:4679 msgid "Part 2" msgstr "" -#: part/models.py:4618 +#: part/models.py:4680 msgid "Select Related Part" msgstr "" -#: part/models.py:4637 +#: part/models.py:4699 msgid "Part relationship cannot be created between a part and itself" msgstr "" -#: part/models.py:4642 +#: part/models.py:4704 msgid "Duplicate relationship already exists" msgstr "" @@ -7449,340 +7662,352 @@ msgstr "" msgid "Number of results recorded against this template" msgstr "" -#: part/serializers.py:225 part/serializers.py:243 stock/serializers.py:616 +#: part/serializers.py:225 part/serializers.py:243 stock/serializers.py:643 msgid "Purchase currency of this stock item" msgstr "" -#: part/serializers.py:291 +#: part/serializers.py:268 +msgid "Speculative Quantity" +msgstr "" + +#: part/serializers.py:277 +msgid "Model ID" +msgstr "" + +#: part/serializers.py:324 msgid "Number of parts using this template" msgstr "" -#: part/serializers.py:421 +#: part/serializers.py:465 msgid "No parts selected" msgstr "" -#: part/serializers.py:431 +#: part/serializers.py:475 msgid "Select category" msgstr "" -#: part/serializers.py:466 +#: part/serializers.py:510 msgid "Original Part" msgstr "" -#: part/serializers.py:467 +#: part/serializers.py:511 msgid "Select original part to duplicate" msgstr "" -#: part/serializers.py:472 +#: part/serializers.py:516 msgid "Copy Image" msgstr "" -#: part/serializers.py:473 +#: part/serializers.py:517 msgid "Copy image from original part" msgstr "" -#: part/serializers.py:479 part/templates/part/detail.html:293 +#: part/serializers.py:523 part/templates/part/detail.html:293 msgid "Copy BOM" msgstr "" -#: part/serializers.py:480 +#: part/serializers.py:524 msgid "Copy bill of materials from original part" msgstr "" -#: part/serializers.py:486 +#: part/serializers.py:530 msgid "Copy Parameters" msgstr "" -#: part/serializers.py:487 +#: part/serializers.py:531 msgid "Copy parameter data from original part" msgstr "" -#: part/serializers.py:493 +#: part/serializers.py:537 msgid "Copy Notes" msgstr "" -#: part/serializers.py:494 +#: part/serializers.py:538 msgid "Copy notes from original part" msgstr "" -#: part/serializers.py:512 +#: part/serializers.py:556 msgid "Initial Stock Quantity" msgstr "" -#: part/serializers.py:514 +#: part/serializers.py:558 msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added." msgstr "" -#: part/serializers.py:521 +#: part/serializers.py:565 msgid "Initial Stock Location" msgstr "" -#: part/serializers.py:522 +#: part/serializers.py:566 msgid "Specify initial stock location for this Part" msgstr "" -#: part/serializers.py:539 +#: part/serializers.py:583 msgid "Select supplier (or leave blank to skip)" msgstr "" -#: part/serializers.py:555 +#: part/serializers.py:599 msgid "Select manufacturer (or leave blank to skip)" msgstr "" -#: part/serializers.py:565 +#: part/serializers.py:609 msgid "Manufacturer part number" msgstr "" -#: part/serializers.py:572 +#: part/serializers.py:616 msgid "Selected company is not a valid supplier" msgstr "" -#: part/serializers.py:581 +#: part/serializers.py:625 msgid "Selected company is not a valid manufacturer" msgstr "" -#: part/serializers.py:592 +#: part/serializers.py:636 msgid "Manufacturer part matching this MPN already exists" msgstr "" -#: part/serializers.py:599 +#: part/serializers.py:643 msgid "Supplier part matching this SKU already exists" msgstr "" -#: part/serializers.py:903 +#: part/serializers.py:955 msgid "Revisions" msgstr "" -#: part/serializers.py:908 +#: part/serializers.py:960 msgid "Unallocated Stock" msgstr "" -#: part/serializers.py:911 +#: part/serializers.py:963 msgid "Variant Stock" msgstr "" -#: part/serializers.py:941 part/templates/part/copy_part.html:9 +#: part/serializers.py:993 part/templates/part/copy_part.html:9 #: templates/js/translated/part.js:474 msgid "Duplicate Part" msgstr "" -#: part/serializers.py:942 +#: part/serializers.py:994 msgid "Copy initial data from another Part" msgstr "" -#: part/serializers.py:948 templates/js/translated/part.js:103 +#: part/serializers.py:1000 templates/js/translated/part.js:103 msgid "Initial Stock" msgstr "" -#: part/serializers.py:949 +#: part/serializers.py:1001 msgid "Create Part with initial stock quantity" msgstr "" -#: part/serializers.py:955 +#: part/serializers.py:1007 msgid "Supplier Information" msgstr "" -#: part/serializers.py:956 +#: part/serializers.py:1008 msgid "Add initial supplier information for this part" msgstr "" -#: part/serializers.py:964 +#: part/serializers.py:1016 msgid "Copy Category Parameters" msgstr "" -#: part/serializers.py:965 +#: part/serializers.py:1017 msgid "Copy parameter templates from selected part category" msgstr "" -#: part/serializers.py:970 +#: part/serializers.py:1022 msgid "Existing Image" msgstr "" -#: part/serializers.py:971 +#: part/serializers.py:1023 msgid "Filename of an existing part image" msgstr "" -#: part/serializers.py:988 +#: part/serializers.py:1040 msgid "Image file does not exist" msgstr "" -#: part/serializers.py:1194 +#: part/serializers.py:1247 msgid "Limit stocktake report to a particular part, and any variant parts" msgstr "" -#: part/serializers.py:1204 +#: part/serializers.py:1257 msgid "Limit stocktake report to a particular part category, and any child categories" msgstr "" -#: part/serializers.py:1214 +#: part/serializers.py:1267 msgid "Limit stocktake report to a particular stock location, and any child locations" msgstr "" -#: part/serializers.py:1220 +#: part/serializers.py:1273 msgid "Exclude External Stock" msgstr "" -#: part/serializers.py:1221 +#: part/serializers.py:1274 msgid "Exclude stock items in external locations" msgstr "" -#: part/serializers.py:1226 +#: part/serializers.py:1279 msgid "Generate Report" msgstr "" -#: part/serializers.py:1227 +#: part/serializers.py:1280 msgid "Generate report file containing calculated stocktake data" msgstr "" -#: part/serializers.py:1232 +#: part/serializers.py:1285 msgid "Update Parts" msgstr "" -#: part/serializers.py:1233 +#: part/serializers.py:1286 msgid "Update specified parts with calculated stocktake data" msgstr "" -#: part/serializers.py:1241 +#: part/serializers.py:1294 msgid "Stocktake functionality is not enabled" msgstr "" -#: part/serializers.py:1347 +#: part/serializers.py:1299 +msgid "Background worker check failed" +msgstr "" + +#: part/serializers.py:1401 msgid "Override calculated value for minimum price" msgstr "" -#: part/serializers.py:1354 +#: part/serializers.py:1408 msgid "Minimum price currency" msgstr "" -#: part/serializers.py:1362 +#: part/serializers.py:1416 msgid "Override calculated value for maximum price" msgstr "" -#: part/serializers.py:1369 +#: part/serializers.py:1423 msgid "Maximum price currency" msgstr "" -#: part/serializers.py:1398 +#: part/serializers.py:1452 msgid "Update" msgstr "" -#: part/serializers.py:1399 +#: part/serializers.py:1453 msgid "Update pricing for this part" msgstr "" -#: part/serializers.py:1422 +#: part/serializers.py:1476 #, python-brace-format msgid "Could not convert from provided currencies to {default_currency}" msgstr "" -#: part/serializers.py:1429 +#: part/serializers.py:1483 msgid "Minimum price must not be greater than maximum price" msgstr "" -#: part/serializers.py:1432 +#: part/serializers.py:1486 msgid "Maximum price must not be less than minimum price" msgstr "" -#: part/serializers.py:1576 +#: part/serializers.py:1634 msgid "Select the parent assembly" msgstr "" -#: part/serializers.py:1585 +#: part/serializers.py:1643 msgid "Component Name" msgstr "" -#: part/serializers.py:1588 +#: part/serializers.py:1646 msgid "Component IPN" msgstr "" -#: part/serializers.py:1591 +#: part/serializers.py:1649 msgid "Component Description" msgstr "" -#: part/serializers.py:1597 +#: part/serializers.py:1655 msgid "Select the component part" msgstr "" -#: part/serializers.py:1606 part/templates/part/part_base.html:235 +#: part/serializers.py:1664 part/templates/part/part_base.html:243 #: templates/js/translated/bom.js:1219 msgid "Can Build" msgstr "" -#: part/serializers.py:1837 +#: part/serializers.py:1899 msgid "Select part to copy BOM from" msgstr "" -#: part/serializers.py:1845 +#: part/serializers.py:1907 msgid "Remove Existing Data" msgstr "" -#: part/serializers.py:1846 +#: part/serializers.py:1908 msgid "Remove existing BOM items before copying" msgstr "" -#: part/serializers.py:1851 +#: part/serializers.py:1913 msgid "Include Inherited" msgstr "" -#: part/serializers.py:1852 +#: part/serializers.py:1914 msgid "Include BOM items which are inherited from templated parts" msgstr "" -#: part/serializers.py:1857 +#: part/serializers.py:1919 msgid "Skip Invalid Rows" msgstr "" -#: part/serializers.py:1858 +#: part/serializers.py:1920 msgid "Enable this option to skip invalid rows" msgstr "" -#: part/serializers.py:1863 +#: part/serializers.py:1925 msgid "Copy Substitute Parts" msgstr "" -#: part/serializers.py:1864 +#: part/serializers.py:1926 msgid "Copy substitute parts when duplicate BOM items" msgstr "" -#: part/serializers.py:1901 +#: part/serializers.py:1963 msgid "Clear Existing BOM" msgstr "" -#: part/serializers.py:1902 +#: part/serializers.py:1964 msgid "Delete existing BOM items before uploading" msgstr "" -#: part/serializers.py:1934 +#: part/serializers.py:1996 msgid "No part column specified" msgstr "" -#: part/serializers.py:1978 +#: part/serializers.py:2040 msgid "Multiple matching parts found" msgstr "" -#: part/serializers.py:1981 +#: part/serializers.py:2043 msgid "No matching part found" msgstr "" -#: part/serializers.py:1984 +#: part/serializers.py:2045 msgid "Part is not designated as a component" msgstr "" -#: part/serializers.py:1993 +#: part/serializers.py:2054 msgid "Quantity not provided" msgstr "" -#: part/serializers.py:2001 +#: part/serializers.py:2062 msgid "Invalid quantity" msgstr "" -#: part/serializers.py:2024 +#: part/serializers.py:2085 msgid "At least one BOM item is required" msgstr "" #: part/stocktake.py:224 templates/js/translated/part.js:1073 #: templates/js/translated/part.js:1828 templates/js/translated/part.js:1884 -#: templates/js/translated/purchase_order.js:2154 +#: templates/js/translated/purchase_order.js:2138 msgid "Total Quantity" msgstr "" @@ -7932,9 +8157,9 @@ msgid "Add stocktake information" msgstr "" #: part/templates/part/detail.html:67 part/templates/part/part_sidebar.html:50 -#: stock/admin.py:255 templates/InvenTree/settings/part_stocktake.html:30 +#: stock/admin.py:256 templates/InvenTree/settings/part_stocktake.html:30 #: templates/InvenTree/settings/sidebar.html:53 -#: templates/js/translated/stock.js:2301 users/models.py:204 +#: templates/js/translated/stock.js:2302 users/models.py:204 msgid "Stocktake" msgstr "" @@ -8093,142 +8318,146 @@ msgstr "" msgid "Part List" msgstr "" -#: part/templates/part/part_base.html:25 part/templates/part/part_base.html:29 +#: part/templates/part/part_base.html:26 part/templates/part/part_base.html:30 msgid "You are subscribed to notifications for this part" msgstr "" -#: part/templates/part/part_base.html:33 +#: part/templates/part/part_base.html:34 msgid "Subscribe to notifications for this part" msgstr "" -#: part/templates/part/part_base.html:52 +#: part/templates/part/part_base.html:53 #: stock/templates/stock/item_base.html:62 -#: stock/templates/stock/location.html:71 templates/js/translated/label.js:136 +#: stock/templates/stock/location.html:72 templates/js/translated/label.js:136 msgid "Print Label" msgstr "" -#: part/templates/part/part_base.html:58 +#: part/templates/part/part_base.html:59 msgid "Show pricing information" msgstr "" -#: part/templates/part/part_base.html:63 -#: stock/templates/stock/item_base.html:110 -#: stock/templates/stock/location.html:80 +#: part/templates/part/part_base.html:64 +#: stock/templates/stock/item_base.html:107 +#: stock/templates/stock/location.html:81 msgid "Stock actions" msgstr "" -#: part/templates/part/part_base.html:70 +#: part/templates/part/part_base.html:71 msgid "Count part stock" msgstr "" -#: part/templates/part/part_base.html:76 +#: part/templates/part/part_base.html:77 msgid "Transfer part stock" msgstr "" -#: part/templates/part/part_base.html:91 templates/js/translated/part.js:2299 +#: part/templates/part/part_base.html:92 templates/js/translated/part.js:2299 msgid "Part actions" msgstr "" -#: part/templates/part/part_base.html:94 +#: part/templates/part/part_base.html:95 msgid "Duplicate part" msgstr "" -#: part/templates/part/part_base.html:97 +#: part/templates/part/part_base.html:98 msgid "Edit part" msgstr "" -#: part/templates/part/part_base.html:100 +#: part/templates/part/part_base.html:101 msgid "Delete part" msgstr "" -#: part/templates/part/part_base.html:119 +#: part/templates/part/part_base.html:120 msgid "Part is a template part (variants can be made from this part)" msgstr "" -#: part/templates/part/part_base.html:123 +#: part/templates/part/part_base.html:124 msgid "Part can be assembled from other parts" msgstr "" -#: part/templates/part/part_base.html:127 +#: part/templates/part/part_base.html:128 msgid "Part can be used in assemblies" msgstr "" -#: part/templates/part/part_base.html:131 +#: part/templates/part/part_base.html:132 msgid "Part stock is tracked by serial number" msgstr "" -#: part/templates/part/part_base.html:135 +#: part/templates/part/part_base.html:136 msgid "Part can be purchased from external suppliers" msgstr "" -#: part/templates/part/part_base.html:139 +#: part/templates/part/part_base.html:140 msgid "Part can be sold to customers" msgstr "" -#: part/templates/part/part_base.html:145 +#: part/templates/part/part_base.html:146 msgid "Part is not active" msgstr "" -#: part/templates/part/part_base.html:153 +#: part/templates/part/part_base.html:154 msgid "Part is virtual (not a physical part)" msgstr "" -#: part/templates/part/part_base.html:163 -#: part/templates/part/part_base.html:690 +#: part/templates/part/part_base.html:164 +#: part/templates/part/part_base.html:698 msgid "Show Part Details" msgstr "" #: part/templates/part/part_base.html:218 -#: stock/templates/stock/item_base.html:388 +msgid "Required for Orders" +msgstr "" + +#: part/templates/part/part_base.html:226 +#: stock/templates/stock/item_base.html:385 msgid "Allocated to Build Orders" msgstr "" -#: part/templates/part/part_base.html:227 -#: stock/templates/stock/item_base.html:381 +#: part/templates/part/part_base.html:235 +#: stock/templates/stock/item_base.html:378 msgid "Allocated to Sales Orders" msgstr "" -#: part/templates/part/part_base.html:300 +#: part/templates/part/part_base.html:308 msgid "Minimum stock level" msgstr "" -#: part/templates/part/part_base.html:331 templates/js/translated/bom.js:1071 +#: part/templates/part/part_base.html:339 templates/js/translated/bom.js:1071 #: templates/js/translated/part.js:1271 templates/js/translated/part.js:2463 #: templates/js/translated/pricing.js:391 -#: templates/js/translated/pricing.js:1054 +#: templates/js/translated/pricing.js:1052 msgid "Price Range" msgstr "" -#: part/templates/part/part_base.html:361 +#: part/templates/part/part_base.html:369 msgid "Latest Serial Number" msgstr "" -#: part/templates/part/part_base.html:365 -#: stock/templates/stock/item_base.html:322 +#: part/templates/part/part_base.html:373 +#: stock/templates/stock/item_base.html:319 msgid "Search for serial number" msgstr "" -#: part/templates/part/part_base.html:453 +#: part/templates/part/part_base.html:461 msgid "Part QR Code" msgstr "" -#: part/templates/part/part_base.html:470 +#: part/templates/part/part_base.html:478 msgid "Link Barcode to Part" msgstr "" -#: part/templates/part/part_base.html:520 +#: part/templates/part/part_base.html:528 msgid "Calculate" msgstr "" -#: part/templates/part/part_base.html:537 +#: part/templates/part/part_base.html:545 msgid "Remove associated image from this part" msgstr "" -#: part/templates/part/part_base.html:588 +#: part/templates/part/part_base.html:596 msgid "No matching images found" msgstr "" -#: part/templates/part/part_base.html:684 +#: part/templates/part/part_base.html:692 msgid "Hide Part Details" msgstr "" @@ -8282,13 +8511,13 @@ msgid "Variants" msgstr "" #: part/templates/part/part_sidebar.html:14 -#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:21 +#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:22 #: stock/templates/stock/stock_app_base.html:10 #: templates/InvenTree/search.html:153 #: templates/InvenTree/settings/sidebar.html:51 #: templates/js/translated/part.js:1249 templates/js/translated/part.js:2152 #: templates/js/translated/part.js:2411 templates/js/translated/stock.js:1066 -#: templates/js/translated/stock.js:2155 templates/navbar.html:31 +#: templates/js/translated/stock.js:2156 templates/navbar.html:31 msgid "Stock" msgstr "" @@ -8324,17 +8553,17 @@ msgstr "" #: part/templates/part/prices.html:18 #: templates/InvenTree/settings/settings_staff_js.html:80 #: templates/InvenTree/settings/user.html:24 -#: templates/js/translated/helpers.js:103 +#: templates/js/translated/helpers.js:104 #: templates/js/translated/pricing.js:628 templates/notes_buttons.html:3 #: templates/notes_buttons.html:4 msgid "Edit" msgstr "" -#: part/templates/part/prices.html:28 stock/admin.py:251 -#: stock/templates/stock/item_base.html:446 -#: templates/js/translated/company.js:1703 -#: templates/js/translated/company.js:1713 -#: templates/js/translated/stock.js:2331 +#: part/templates/part/prices.html:28 stock/admin.py:252 +#: stock/templates/stock/item_base.html:443 +#: templates/js/translated/company.js:1704 +#: templates/js/translated/company.js:1714 +#: templates/js/translated/stock.js:2332 msgid "Last Updated" msgstr "" @@ -8406,7 +8635,7 @@ msgid "Update Pricing" msgstr "" #: part/templates/part/stock_count.html:7 -#: templates/js/translated/model_renderers.js:228 +#: templates/js/translated/model_renderers.js:231 #: templates/js/translated/part.js:707 templates/js/translated/part.js:2147 #: templates/js/translated/part.js:2149 msgid "No Stock" @@ -8486,7 +8715,7 @@ msgstr "" msgid "Part Pricing" msgstr "" -#: plugin/api.py:172 +#: plugin/api.py:175 msgid "Plugin cannot be deleted as it is currently active" msgstr "" @@ -8498,78 +8727,85 @@ msgstr "" msgid "No matching action found" msgstr "" -#: plugin/base/barcodes/api.py:125 plugin/base/barcodes/api.py:371 -#: plugin/base/barcodes/api.py:546 +#: plugin/base/barcodes/api.py:203 msgid "No match found for barcode data" msgstr "" -#: plugin/base/barcodes/api.py:129 +#: plugin/base/barcodes/api.py:207 msgid "Match found for barcode data" msgstr "" -#: plugin/base/barcodes/api.py:163 plugin/base/barcodes/serializers.py:45 +#: plugin/base/barcodes/api.py:245 plugin/base/barcodes/serializers.py:72 msgid "Model is not supported" msgstr "" -#: plugin/base/barcodes/api.py:168 +#: plugin/base/barcodes/api.py:250 msgid "Model instance not found" msgstr "" -#: plugin/base/barcodes/api.py:197 -#: templates/js/translated/purchase_order.js:1468 +#: plugin/base/barcodes/api.py:279 +#: templates/js/translated/purchase_order.js:1452 msgid "Barcode matches existing item" msgstr "" -#: plugin/base/barcodes/api.py:336 +#: plugin/base/barcodes/api.py:418 msgid "No matching part data found" msgstr "" -#: plugin/base/barcodes/api.py:353 +#: plugin/base/barcodes/api.py:434 msgid "No matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:357 +#: plugin/base/barcodes/api.py:437 msgid "Multiple matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:381 +#: plugin/base/barcodes/api.py:450 plugin/base/barcodes/api.py:664 +msgid "No matching plugin found for barcode data" +msgstr "" + +#: plugin/base/barcodes/api.py:460 msgid "Matched supplier part" msgstr "" -#: plugin/base/barcodes/api.py:430 +#: plugin/base/barcodes/api.py:525 msgid "Item has already been received" msgstr "" -#: plugin/base/barcodes/api.py:467 +#: plugin/base/barcodes/api.py:563 msgid "No match for supplier barcode" msgstr "" -#: plugin/base/barcodes/api.py:510 +#: plugin/base/barcodes/api.py:612 msgid "Multiple matching line items found" msgstr "" -#: plugin/base/barcodes/api.py:513 +#: plugin/base/barcodes/api.py:615 msgid "No matching line item found" msgstr "" -#: plugin/base/barcodes/api.py:551 plugin/base/barcodes/api.py:558 +#: plugin/base/barcodes/api.py:661 +msgid "No sales order provided" +msgstr "" + +#: plugin/base/barcodes/api.py:670 msgid "Barcode does not match an existing stock item" msgstr "" -#: plugin/base/barcodes/api.py:569 +#: plugin/base/barcodes/api.py:686 msgid "Stock item does not match line item" msgstr "" -#: plugin/base/barcodes/api.py:593 templates/js/translated/build.js:2780 -#: templates/js/translated/sales_order.js:1953 +#: plugin/base/barcodes/api.py:716 templates/js/translated/build.js:2798 +#: templates/js/translated/sales_order.js:1934 msgid "Insufficient stock available" msgstr "" -#: plugin/base/barcodes/api.py:602 +#: plugin/base/barcodes/api.py:729 msgid "Stock item allocated to sales order" msgstr "" -#: plugin/base/barcodes/api.py:606 +#: plugin/base/barcodes/api.py:732 msgid "Not enough information" msgstr "" @@ -8591,75 +8827,75 @@ msgstr "" msgid "Purchase order does not match supplier" msgstr "" -#: plugin/base/barcodes/mixins.py:465 +#: plugin/base/barcodes/mixins.py:467 msgid "Failed to find pending line item for supplier part" msgstr "" -#: plugin/base/barcodes/mixins.py:496 +#: plugin/base/barcodes/mixins.py:498 msgid "Further information required to receive line item" msgstr "" -#: plugin/base/barcodes/mixins.py:504 +#: plugin/base/barcodes/mixins.py:506 msgid "Received purchase order line item" msgstr "" -#: plugin/base/barcodes/serializers.py:21 +#: plugin/base/barcodes/serializers.py:48 msgid "Scanned barcode data" msgstr "" -#: plugin/base/barcodes/serializers.py:30 +#: plugin/base/barcodes/serializers.py:57 msgid "Model name to generate barcode for" msgstr "" -#: plugin/base/barcodes/serializers.py:35 +#: plugin/base/barcodes/serializers.py:62 msgid "Primary key of model object to generate barcode for" msgstr "" -#: plugin/base/barcodes/serializers.py:105 +#: plugin/base/barcodes/serializers.py:132 msgid "Purchase Order to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:111 +#: plugin/base/barcodes/serializers.py:138 msgid "Purchase order is not pending" msgstr "" -#: plugin/base/barcodes/serializers.py:129 +#: plugin/base/barcodes/serializers.py:156 msgid "PurchaseOrder to receive items against" msgstr "" -#: plugin/base/barcodes/serializers.py:135 +#: plugin/base/barcodes/serializers.py:162 msgid "Purchase order has not been placed" msgstr "" -#: plugin/base/barcodes/serializers.py:143 +#: plugin/base/barcodes/serializers.py:170 msgid "Location to receive items into" msgstr "" -#: plugin/base/barcodes/serializers.py:149 +#: plugin/base/barcodes/serializers.py:176 msgid "Cannot select a structural location" msgstr "" -#: plugin/base/barcodes/serializers.py:163 +#: plugin/base/barcodes/serializers.py:190 msgid "Sales Order to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:169 +#: plugin/base/barcodes/serializers.py:196 msgid "Sales order is not pending" msgstr "" -#: plugin/base/barcodes/serializers.py:177 +#: plugin/base/barcodes/serializers.py:204 msgid "Sales order line item to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:184 +#: plugin/base/barcodes/serializers.py:211 msgid "Sales order shipment to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:190 +#: plugin/base/barcodes/serializers.py:217 msgid "Shipment has already been delivered" msgstr "" -#: plugin/base/barcodes/serializers.py:195 +#: plugin/base/barcodes/serializers.py:222 msgid "Quantity to allocate" msgstr "" @@ -8679,6 +8915,42 @@ msgstr "" msgid "No items provided to print" msgstr "" +#: plugin/base/ui/serializers.py:30 +msgid "Plugin Name" +msgstr "" + +#: plugin/base/ui/serializers.py:34 +msgid "Feature Type" +msgstr "" + +#: plugin/base/ui/serializers.py:39 +msgid "Feature Label" +msgstr "" + +#: plugin/base/ui/serializers.py:44 +msgid "Feature Title" +msgstr "" + +#: plugin/base/ui/serializers.py:49 +msgid "Feature Description" +msgstr "" + +#: plugin/base/ui/serializers.py:54 +msgid "Feature Icon" +msgstr "" + +#: plugin/base/ui/serializers.py:58 +msgid "Feature Options" +msgstr "" + +#: plugin/base/ui/serializers.py:61 +msgid "Feature Context" +msgstr "" + +#: plugin/base/ui/serializers.py:64 +msgid "Feature Source (javascript)" +msgstr "" + #: plugin/builtin/barcodes/inventree_barcode.py:27 msgid "InvenTree Barcodes" msgstr "" @@ -8756,7 +9028,7 @@ msgstr "" msgid "URL that is used to send messages to a slack channel" msgstr "" -#: plugin/builtin/integration/core_notifications.py:164 +#: plugin/builtin/integration/core_notifications.py:166 msgid "Open link" msgstr "" @@ -8794,11 +9066,11 @@ msgstr "" msgid "Provides support for printing using a machine" msgstr "" -#: plugin/builtin/labels/inventree_machine.py:149 +#: plugin/builtin/labels/inventree_machine.py:151 msgid "last used" msgstr "" -#: plugin/builtin/labels/inventree_machine.py:166 +#: plugin/builtin/labels/inventree_machine.py:168 msgid "Options" msgstr "" @@ -8822,7 +9094,7 @@ msgstr "" msgid "Print a border around each label" msgstr "" -#: plugin/builtin/labels/label_sheet.py:47 report/models.py:307 +#: plugin/builtin/labels/label_sheet.py:47 report/models.py:315 msgid "Landscape" msgstr "" @@ -8894,19 +9166,19 @@ msgstr "" msgid "The Supplier which acts as 'TME'" msgstr "" -#: plugin/installer.py:194 plugin/installer.py:282 +#: plugin/installer.py:199 plugin/installer.py:282 msgid "Only staff users can administer plugins" msgstr "" -#: plugin/installer.py:197 +#: plugin/installer.py:202 msgid "Plugin installation is disabled" msgstr "" -#: plugin/installer.py:248 +#: plugin/installer.py:246 msgid "Installed plugin successfully" msgstr "" -#: plugin/installer.py:254 +#: plugin/installer.py:251 #, python-brace-format msgid "Installed plugin into {path}" msgstr "" @@ -8943,10 +9215,6 @@ msgstr "" msgid "Plugin Configurations" msgstr "" -#: plugin/models.py:43 users/models.py:100 -msgid "Key" -msgstr "" - #: plugin/models.py:44 msgid "Key of plugin" msgstr "" @@ -8955,7 +9223,7 @@ msgstr "" msgid "PluginName of the plugin" msgstr "" -#: plugin/models.py:59 plugin/serializers.py:90 +#: plugin/models.py:59 plugin/serializers.py:115 msgid "Package Name" msgstr "" @@ -8984,17 +9252,17 @@ msgstr "" msgid "Package Plugin" msgstr "" -#: plugin/models.py:220 report/models.py:474 +#: plugin/models.py:259 report/models.py:482 #: templates/InvenTree/settings/plugin_settings.html:9 #: templates/js/translated/plugin.js:51 msgid "Plugin" msgstr "" -#: plugin/models.py:267 +#: plugin/models.py:306 msgid "Method" msgstr "" -#: plugin/plugin.py:270 +#: plugin/plugin.py:275 msgid "No author found" msgstr "" @@ -9053,81 +9321,157 @@ msgstr "" msgid "InvenTree Contributors" msgstr "" -#: plugin/serializers.py:81 -msgid "Source URL" +#: plugin/samples/integration/user_interface_sample.py:27 +msgid "Enable Part Panels" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:28 +msgid "Enable custom panels for Part views" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:33 +msgid "Enable Purchase Order Panels" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:34 +msgid "Enable custom panels for Purchase Order views" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:39 +msgid "Enable Broken Panels" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:40 +msgid "Enable broken panels for testing" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:45 +msgid "Enable Dynamic Panel" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:46 +msgid "Enable dynamic panels for testing" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:98 +msgid "Part Panel" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:131 +msgid "Broken Dashboard Item" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:133 +msgid "This is a broken dashboard item - it will not render!" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:139 +msgid "Sample Dashboard Item" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:141 +msgid "This is a sample dashboard item. It renders a simple string of HTML content." +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:147 +msgid "Context Dashboard Item" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:161 +msgid "Admin Dashboard Item" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:162 +msgid "This is an admin-only dashboard item." +msgstr "" + +#: plugin/serializers.py:82 +msgid "Source File" msgstr "" #: plugin/serializers.py:83 +msgid "Path to the source file for admin integration" +msgstr "" + +#: plugin/serializers.py:90 +msgid "Optional context data for the admin integration" +msgstr "" + +#: plugin/serializers.py:106 +msgid "Source URL" +msgstr "" + +#: plugin/serializers.py:108 msgid "Source for the package - this can be a custom registry or a VCS path" msgstr "" -#: plugin/serializers.py:92 +#: plugin/serializers.py:117 msgid "Name for the Plugin Package - can also contain a version indicator" msgstr "" -#: plugin/serializers.py:99 +#: plugin/serializers.py:124 #: templates/InvenTree/settings/plugin_settings.html:42 #: templates/js/translated/plugin.js:86 msgid "Version" msgstr "" -#: plugin/serializers.py:101 +#: plugin/serializers.py:126 msgid "Version specifier for the plugin. Leave blank for latest version." msgstr "" -#: plugin/serializers.py:106 +#: plugin/serializers.py:131 msgid "Confirm plugin installation" msgstr "" -#: plugin/serializers.py:108 +#: plugin/serializers.py:133 msgid "This will install this plugin now into the current instance. The instance will go into maintenance." msgstr "" -#: plugin/serializers.py:121 +#: plugin/serializers.py:146 msgid "Installation not confirmed" msgstr "" -#: plugin/serializers.py:123 +#: plugin/serializers.py:148 msgid "Either packagename of URL must be provided" msgstr "" -#: plugin/serializers.py:161 +#: plugin/serializers.py:184 msgid "Full reload" msgstr "" -#: plugin/serializers.py:162 +#: plugin/serializers.py:185 msgid "Perform a full reload of the plugin registry" msgstr "" -#: plugin/serializers.py:168 +#: plugin/serializers.py:191 msgid "Force reload" msgstr "" -#: plugin/serializers.py:170 +#: plugin/serializers.py:193 msgid "Force a reload of the plugin registry, even if it is already loaded" msgstr "" -#: plugin/serializers.py:177 +#: plugin/serializers.py:200 msgid "Collect plugins" msgstr "" -#: plugin/serializers.py:178 +#: plugin/serializers.py:201 msgid "Collect plugins and add them to the registry" msgstr "" -#: plugin/serializers.py:205 +#: plugin/serializers.py:228 msgid "Activate Plugin" msgstr "" -#: plugin/serializers.py:206 +#: plugin/serializers.py:229 msgid "Activate this plugin" msgstr "" -#: plugin/serializers.py:226 +#: plugin/serializers.py:249 msgid "Delete configuration" msgstr "" -#: plugin/serializers.py:227 +#: plugin/serializers.py:250 msgid "Delete the plugin configuration from the database" msgstr "" @@ -9135,11 +9479,11 @@ msgstr "" msgid "No valid objects provided to template" msgstr "" -#: report/api.py:103 report/models.py:438 report/serializers.py:98 -#: report/serializers.py:148 templates/js/translated/purchase_order.js:1817 +#: report/api.py:103 report/models.py:446 report/serializers.py:99 +#: report/serializers.py:149 templates/js/translated/purchase_order.js:1801 #: templates/js/translated/return_order.js:353 -#: templates/js/translated/sales_order.js:887 -#: templates/js/translated/sales_order.js:1047 +#: templates/js/translated/sales_order.js:846 +#: templates/js/translated/sales_order.js:1020 msgid "Items" msgstr "" @@ -9167,7 +9511,11 @@ msgstr "" msgid "Error printing label" msgstr "" -#: report/api.py:375 report/api.py:411 +#: report/api.py:358 +msgid "Report saved at time of printing" +msgstr "" + +#: report/api.py:384 report/api.py:420 #, python-brace-format msgid "Template file '{template}' is missing or does not exist" msgstr "" @@ -9204,135 +9552,143 @@ msgstr "" msgid "Revision number (auto-increments)" msgstr "" -#: report/models.py:202 +#: report/models.py:168 +msgid "Attach to Model on Print" +msgstr "" + +#: report/models.py:170 +msgid "Save report output as an attachment against linked model instance when printing" +msgstr "" + +#: report/models.py:210 msgid "Filename Pattern" msgstr "" -#: report/models.py:203 +#: report/models.py:211 msgid "Pattern for generating filenames" msgstr "" -#: report/models.py:208 +#: report/models.py:216 msgid "Template is enabled" msgstr "" -#: report/models.py:214 +#: report/models.py:222 msgid "Target model type for template" msgstr "" -#: report/models.py:234 +#: report/models.py:242 msgid "Filters" msgstr "" -#: report/models.py:235 +#: report/models.py:243 msgid "Template query filters (comma-separated list of key=value pairs)" msgstr "" -#: report/models.py:294 report/models.py:361 +#: report/models.py:302 report/models.py:369 msgid "Template file" msgstr "" -#: report/models.py:302 +#: report/models.py:310 msgid "Page size for PDF reports" msgstr "" -#: report/models.py:308 +#: report/models.py:316 msgid "Render report in landscape orientation" msgstr "" -#: report/models.py:367 +#: report/models.py:375 msgid "Width [mm]" msgstr "" -#: report/models.py:368 +#: report/models.py:376 msgid "Label width, specified in mm" msgstr "" -#: report/models.py:374 +#: report/models.py:382 msgid "Height [mm]" msgstr "" -#: report/models.py:375 +#: report/models.py:383 msgid "Label height, specified in mm" msgstr "" -#: report/models.py:438 +#: report/models.py:446 msgid "Number of items to process" msgstr "" -#: report/models.py:444 +#: report/models.py:452 msgid "Report generation is complete" msgstr "" -#: report/models.py:448 templates/js/translated/build.js:2349 +#: report/models.py:456 templates/js/translated/build.js:2352 msgid "Progress" msgstr "" -#: report/models.py:448 +#: report/models.py:456 msgid "Report generation progress" msgstr "" -#: report/models.py:456 +#: report/models.py:464 msgid "Report Template" msgstr "" -#: report/models.py:463 report/models.py:486 +#: report/models.py:471 report/models.py:494 msgid "Output File" msgstr "" -#: report/models.py:464 report/models.py:487 +#: report/models.py:472 report/models.py:495 msgid "Generated output file" msgstr "" -#: report/models.py:475 +#: report/models.py:483 msgid "Label output plugin" msgstr "" -#: report/models.py:479 +#: report/models.py:487 msgid "Label Template" msgstr "" -#: report/models.py:502 +#: report/models.py:510 msgid "Snippet" msgstr "" -#: report/models.py:503 +#: report/models.py:511 msgid "Report snippet file" msgstr "" -#: report/models.py:510 +#: report/models.py:518 msgid "Snippet file description" msgstr "" -#: report/models.py:528 +#: report/models.py:536 msgid "Asset" msgstr "" -#: report/models.py:529 +#: report/models.py:537 msgid "Report asset file" msgstr "" -#: report/models.py:536 +#: report/models.py:544 msgid "Asset file description" msgstr "" -#: report/serializers.py:91 +#: report/serializers.py:92 msgid "Select report template" msgstr "" -#: report/serializers.py:99 report/serializers.py:149 +#: report/serializers.py:100 report/serializers.py:150 msgid "List of item primary keys to include in the report" msgstr "" -#: report/serializers.py:132 +#: report/serializers.py:133 msgid "Select label template" msgstr "" -#: report/serializers.py:140 +#: report/serializers.py:141 msgid "Printing Plugin" msgstr "" -#: report/serializers.py:141 +#: report/serializers.py:142 msgid "Select plugin to use for label printing" msgstr "" @@ -9365,9 +9721,9 @@ msgstr "" #: report/templates/report/inventree_sales_order_report.html:30 #: templates/js/translated/order.js:341 templates/js/translated/pricing.js:527 #: templates/js/translated/pricing.js:596 -#: templates/js/translated/pricing.js:834 -#: templates/js/translated/purchase_order.js:2185 -#: templates/js/translated/sales_order.js:1873 +#: templates/js/translated/pricing.js:832 +#: templates/js/translated/purchase_order.js:2169 +#: templates/js/translated/sales_order.js:1854 msgid "Unit Price" msgstr "" @@ -9379,13 +9735,18 @@ msgstr "" #: report/templates/report/inventree_purchase_order_report.html:72 #: report/templates/report/inventree_sales_order_report.html:72 -#: templates/js/translated/purchase_order.js:2087 -#: templates/js/translated/sales_order.js:1842 +#: templates/js/translated/purchase_order.js:2071 +#: templates/js/translated/sales_order.js:1823 #: templates/test_statistics_table.html:8 #: templates/test_statistics_table.html:19 msgid "Total" msgstr "" +#: report/templates/report/inventree_sales_order_shipment_report.html:23 +#: stock/templates/stock/stock_sidebar.html:8 +msgid "Allocations" +msgstr "" + #: report/templates/report/inventree_stock_location_report.html:97 msgid "Stock location items" msgstr "" @@ -9403,15 +9764,13 @@ msgstr "" msgid "Test" msgstr "" -#: report/templates/report/inventree_test_report.html:103 stock/models.py:2544 -msgid "Result" -msgstr "" - #: report/templates/report/inventree_test_report.html:129 +#: templates/js/translated/stock.js:1448 msgid "Pass" msgstr "" #: report/templates/report/inventree_test_report.html:131 +#: templates/js/translated/stock.js:1450 msgid "Fail" msgstr "" @@ -9420,17 +9779,18 @@ msgid "No result (required)" msgstr "" #: report/templates/report/inventree_test_report.html:140 +#: templates/js/translated/stock.js:1455 msgid "No result" msgstr "" #: report/templates/report/inventree_test_report.html:153 -#: stock/serializers.py:599 stock/templates/stock/stock_sidebar.html:16 +#: stock/serializers.py:626 stock/templates/stock/stock_sidebar.html:16 msgid "Installed Items" msgstr "" -#: report/templates/report/inventree_test_report.html:167 stock/admin.py:161 +#: report/templates/report/inventree_test_report.html:167 stock/admin.py:162 #: templates/js/translated/stock.js:706 templates/js/translated/stock.js:877 -#: templates/js/translated/stock.js:3194 +#: templates/js/translated/stock.js:3195 msgid "Serial" msgstr "" @@ -9450,67 +9810,67 @@ msgstr "" msgid "company_image tag requires a Company instance" msgstr "" -#: stock/admin.py:51 stock/admin.py:171 +#: stock/admin.py:51 stock/admin.py:172 msgid "Location ID" msgstr "" -#: stock/admin.py:63 stock/templates/stock/location.html:128 -#: stock/templates/stock/location.html:134 +#: stock/admin.py:63 stock/templates/stock/location.html:129 +#: stock/templates/stock/location.html:135 msgid "Location Path" msgstr "" -#: stock/admin.py:148 +#: stock/admin.py:149 msgid "Stock Item ID" msgstr "" -#: stock/admin.py:167 +#: stock/admin.py:168 msgid "Status Code" msgstr "" -#: stock/admin.py:179 +#: stock/admin.py:180 msgid "Supplier Part ID" msgstr "" -#: stock/admin.py:184 +#: stock/admin.py:185 msgid "Supplier Part SKU" msgstr "" -#: stock/admin.py:189 +#: stock/admin.py:190 msgid "Supplier ID" msgstr "" -#: stock/admin.py:200 +#: stock/admin.py:201 msgid "Customer ID" msgstr "" -#: stock/admin.py:205 stock/models.py:825 -#: stock/templates/stock/item_base.html:354 +#: stock/admin.py:206 stock/models.py:902 +#: stock/templates/stock/item_base.html:351 msgid "Installed In" msgstr "" -#: stock/admin.py:210 +#: stock/admin.py:211 msgid "Build ID" msgstr "" -#: stock/admin.py:220 +#: stock/admin.py:221 msgid "Sales Order ID" msgstr "" -#: stock/admin.py:225 +#: stock/admin.py:226 msgid "Purchase Order ID" msgstr "" -#: stock/admin.py:240 +#: stock/admin.py:241 msgid "Review Needed" msgstr "" -#: stock/admin.py:245 +#: stock/admin.py:246 msgid "Delete on Deplete" msgstr "" -#: stock/admin.py:260 stock/models.py:919 -#: stock/templates/stock/item_base.html:433 -#: templates/js/translated/stock.js:2315 users/models.py:124 +#: stock/admin.py:261 stock/models.py:996 +#: stock/templates/stock/item_base.html:430 +#: templates/js/translated/stock.js:2316 users/models.py:124 msgid "Expiry Date" msgstr "" @@ -9526,11 +9886,11 @@ msgstr "" msgid "Include sub-locations in filtered results" msgstr "" -#: stock/api.py:367 stock/serializers.py:1186 +#: stock/api.py:366 stock/serializers.py:1217 msgid "Parent Location" msgstr "" -#: stock/api.py:368 +#: stock/api.py:367 msgid "Filter by parent location" msgstr "" @@ -9550,8 +9910,8 @@ msgstr "" msgid "Expiry date after" msgstr "" -#: stock/api.py:840 stock/serializers.py:604 -#: stock/templates/stock/item_base.html:439 +#: stock/api.py:840 stock/serializers.py:631 +#: stock/templates/stock/item_base.html:436 #: templates/js/translated/table_filters.js:448 msgid "Stale" msgstr "" @@ -9560,594 +9920,598 @@ msgstr "" msgid "Quantity is required" msgstr "" -#: stock/api.py:933 +#: stock/api.py:932 msgid "Valid part must be supplied" msgstr "" -#: stock/api.py:964 +#: stock/api.py:959 msgid "The given supplier part does not exist" msgstr "" -#: stock/api.py:974 +#: stock/api.py:969 msgid "The supplier part has a pack size defined, but flag use_pack_size not set" msgstr "" -#: stock/api.py:1005 +#: stock/api.py:996 msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "" -#: stock/models.py:64 +#: stock/models.py:70 msgid "Stock Location type" msgstr "" -#: stock/models.py:65 +#: stock/models.py:71 msgid "Stock Location types" msgstr "" -#: stock/models.py:91 +#: stock/models.py:97 msgid "Default icon for all locations that have no icon set (optional)" msgstr "" -#: stock/models.py:131 stock/models.py:807 -#: stock/templates/stock/location.html:17 +#: stock/models.py:137 stock/models.py:884 +#: stock/templates/stock/location.html:18 #: stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "" -#: stock/models.py:132 stock/templates/stock/location.html:183 +#: stock/models.py:138 stock/templates/stock/location.html:184 #: templates/InvenTree/search.html:166 templates/js/translated/search.js:178 #: users/models.py:205 msgid "Stock Locations" msgstr "" -#: stock/models.py:180 stock/models.py:968 -#: stock/templates/stock/item_base.html:247 +#: stock/models.py:186 stock/models.py:1045 +#: stock/templates/stock/item_base.html:244 msgid "Owner" msgstr "" -#: stock/models.py:181 stock/models.py:969 +#: stock/models.py:187 stock/models.py:1046 msgid "Select Owner" msgstr "" -#: stock/models.py:189 +#: stock/models.py:195 msgid "Stock items may not be directly located into a structural stock locations, but may be located to child locations." msgstr "" -#: stock/models.py:196 templates/js/translated/stock.js:2865 +#: stock/models.py:202 templates/js/translated/stock.js:2866 #: templates/js/translated/table_filters.js:250 msgid "External" msgstr "" -#: stock/models.py:197 +#: stock/models.py:203 msgid "This is an external stock location" msgstr "" -#: stock/models.py:203 templates/js/translated/stock.js:2874 +#: stock/models.py:209 templates/js/translated/stock.js:2875 #: templates/js/translated/table_filters.js:253 msgid "Location type" msgstr "" -#: stock/models.py:207 +#: stock/models.py:213 msgid "Stock location type of this location" msgstr "" -#: stock/models.py:279 +#: stock/models.py:285 msgid "You cannot make this stock location structural because some stock items are already located into it!" msgstr "" -#: stock/models.py:664 +#: stock/models.py:492 +msgid "Part must be specified" +msgstr "" + +#: stock/models.py:741 msgid "Stock items cannot be located into structural stock locations!" msgstr "" -#: stock/models.py:691 stock/serializers.py:480 +#: stock/models.py:768 stock/serializers.py:492 msgid "Stock item cannot be created for virtual parts" msgstr "" -#: stock/models.py:708 +#: stock/models.py:785 #, python-brace-format msgid "Part type ('{self.supplier_part.part}') must be {self.part}" msgstr "" -#: stock/models.py:718 stock/models.py:731 +#: stock/models.py:795 stock/models.py:808 msgid "Quantity must be 1 for item with a serial number" msgstr "" -#: stock/models.py:721 +#: stock/models.py:798 msgid "Serial number cannot be set if quantity greater than 1" msgstr "" -#: stock/models.py:743 +#: stock/models.py:820 msgid "Item cannot belong to itself" msgstr "" -#: stock/models.py:748 +#: stock/models.py:825 msgid "Item must have a build reference if is_building=True" msgstr "" -#: stock/models.py:761 +#: stock/models.py:838 msgid "Build reference does not point to the same part object" msgstr "" -#: stock/models.py:777 +#: stock/models.py:854 msgid "Parent Stock Item" msgstr "" -#: stock/models.py:789 +#: stock/models.py:866 msgid "Base part" msgstr "" -#: stock/models.py:799 +#: stock/models.py:876 msgid "Select a matching supplier part for this stock item" msgstr "" -#: stock/models.py:811 +#: stock/models.py:888 msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:819 stock/serializers.py:1580 +#: stock/models.py:896 stock/serializers.py:1611 msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:830 +#: stock/models.py:907 msgid "Is this item installed in another item?" msgstr "" -#: stock/models.py:849 +#: stock/models.py:926 msgid "Serial number for this item" msgstr "" -#: stock/models.py:863 stock/serializers.py:1563 +#: stock/models.py:940 stock/serializers.py:1594 msgid "Batch code for this stock item" msgstr "" -#: stock/models.py:868 +#: stock/models.py:945 msgid "Stock Quantity" msgstr "" -#: stock/models.py:878 +#: stock/models.py:955 msgid "Source Build" msgstr "" -#: stock/models.py:881 +#: stock/models.py:958 msgid "Build for this stock item" msgstr "" -#: stock/models.py:888 stock/templates/stock/item_base.html:363 +#: stock/models.py:965 stock/templates/stock/item_base.html:360 msgid "Consumed By" msgstr "" -#: stock/models.py:891 +#: stock/models.py:968 msgid "Build order which consumed this stock item" msgstr "" -#: stock/models.py:900 +#: stock/models.py:977 msgid "Source Purchase Order" msgstr "" -#: stock/models.py:904 +#: stock/models.py:981 msgid "Purchase order for this stock item" msgstr "" -#: stock/models.py:910 +#: stock/models.py:987 msgid "Destination Sales Order" msgstr "" -#: stock/models.py:921 +#: stock/models.py:998 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "" -#: stock/models.py:939 +#: stock/models.py:1016 msgid "Delete on deplete" msgstr "" -#: stock/models.py:940 +#: stock/models.py:1017 msgid "Delete this Stock Item when stock is depleted" msgstr "" -#: stock/models.py:960 +#: stock/models.py:1037 msgid "Single unit purchase price at time of purchase" msgstr "" -#: stock/models.py:991 +#: stock/models.py:1068 msgid "Converted to part" msgstr "" -#: stock/models.py:1511 +#: stock/models.py:1600 msgid "Part is not set as trackable" msgstr "" -#: stock/models.py:1517 +#: stock/models.py:1606 msgid "Quantity must be integer" msgstr "" -#: stock/models.py:1525 +#: stock/models.py:1614 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({self.quantity})" msgstr "" -#: stock/models.py:1531 -msgid "Serial numbers must be a list of integers" +#: stock/models.py:1620 +msgid "Serial numbers must be provided as a list" msgstr "" -#: stock/models.py:1536 +#: stock/models.py:1625 msgid "Quantity does not match serial numbers" msgstr "" -#: stock/models.py:1544 stock/serializers.py:726 -msgid "Serial numbers already exist" -msgstr "" - -#: stock/models.py:1641 +#: stock/models.py:1747 stock/models.py:2563 msgid "Test template does not exist" msgstr "" -#: stock/models.py:1659 +#: stock/models.py:1765 msgid "Stock item has been assigned to a sales order" msgstr "" -#: stock/models.py:1663 +#: stock/models.py:1769 msgid "Stock item is installed in another item" msgstr "" -#: stock/models.py:1666 +#: stock/models.py:1772 msgid "Stock item contains other items" msgstr "" -#: stock/models.py:1669 +#: stock/models.py:1775 msgid "Stock item has been assigned to a customer" msgstr "" -#: stock/models.py:1672 +#: stock/models.py:1778 msgid "Stock item is currently in production" msgstr "" -#: stock/models.py:1675 +#: stock/models.py:1781 msgid "Serialized stock cannot be merged" msgstr "" -#: stock/models.py:1682 stock/serializers.py:1469 +#: stock/models.py:1788 stock/serializers.py:1500 msgid "Duplicate stock items" msgstr "" -#: stock/models.py:1686 +#: stock/models.py:1792 msgid "Stock items must refer to the same part" msgstr "" -#: stock/models.py:1694 +#: stock/models.py:1800 msgid "Stock items must refer to the same supplier part" msgstr "" -#: stock/models.py:1699 +#: stock/models.py:1805 msgid "Stock status codes must match" msgstr "" -#: stock/models.py:1960 +#: stock/models.py:2066 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:2343 +#: stock/models.py:2462 msgid "Stock Item Tracking" msgstr "" -#: stock/models.py:2376 +#: stock/models.py:2495 msgid "Entry notes" msgstr "" -#: stock/models.py:2416 +#: stock/models.py:2535 msgid "Stock Item Test Result" msgstr "" -#: stock/models.py:2449 +#: stock/models.py:2566 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:2454 +#: stock/models.py:2570 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:2459 +#: stock/models.py:2575 msgid "Invalid value for this test" msgstr "" -#: stock/models.py:2544 +#: stock/models.py:2660 msgid "Test result" msgstr "" -#: stock/models.py:2551 +#: stock/models.py:2667 msgid "Test output value" msgstr "" -#: stock/models.py:2559 +#: stock/models.py:2675 stock/serializers.py:245 msgid "Test result attachment" msgstr "" -#: stock/models.py:2563 +#: stock/models.py:2679 msgid "Test notes" msgstr "" -#: stock/models.py:2571 templates/js/translated/stock.js:1633 +#: stock/models.py:2687 templates/js/translated/stock.js:1633 msgid "Test station" msgstr "" -#: stock/models.py:2572 +#: stock/models.py:2688 msgid "The identifier of the test station where the test was performed" msgstr "" -#: stock/models.py:2578 +#: stock/models.py:2694 msgid "Started" msgstr "" -#: stock/models.py:2579 +#: stock/models.py:2695 msgid "The timestamp of the test start" msgstr "" -#: stock/models.py:2585 +#: stock/models.py:2701 msgid "Finished" msgstr "" -#: stock/models.py:2586 +#: stock/models.py:2702 msgid "The timestamp of the test finish" msgstr "" -#: stock/serializers.py:76 +#: stock/serializers.py:77 msgid "Generated batch code" msgstr "" -#: stock/serializers.py:85 +#: stock/serializers.py:86 msgid "Select build order" msgstr "" -#: stock/serializers.py:94 +#: stock/serializers.py:95 msgid "Select stock item to generate batch code for" msgstr "" -#: stock/serializers.py:103 +#: stock/serializers.py:104 msgid "Select location to generate batch code for" msgstr "" -#: stock/serializers.py:112 +#: stock/serializers.py:113 msgid "Select part to generate batch code for" msgstr "" -#: stock/serializers.py:121 +#: stock/serializers.py:122 msgid "Select purchase order" msgstr "" -#: stock/serializers.py:128 +#: stock/serializers.py:129 msgid "Enter quantity for batch code" msgstr "" -#: stock/serializers.py:151 +#: stock/serializers.py:152 msgid "Generated serial number" msgstr "" -#: stock/serializers.py:160 +#: stock/serializers.py:161 msgid "Select part to generate serial number for" msgstr "" -#: stock/serializers.py:168 +#: stock/serializers.py:169 msgid "Quantity of serial numbers to generate" msgstr "" -#: stock/serializers.py:233 +#: stock/serializers.py:234 msgid "Test template for this result" msgstr "" -#: stock/serializers.py:254 +#: stock/serializers.py:258 msgid "Template ID or test name must be provided" msgstr "" -#: stock/serializers.py:286 +#: stock/serializers.py:290 msgid "The test finished time cannot be earlier than the test started time" msgstr "" -#: stock/serializers.py:323 +#: stock/serializers.py:327 msgid "Serial number is too large" msgstr "" -#: stock/serializers.py:452 stock/templates/stock/item_base.html:193 +#: stock/serializers.py:462 stock/templates/stock/item_base.html:190 msgid "Parent Item" msgstr "" -#: stock/serializers.py:453 +#: stock/serializers.py:463 msgid "Parent stock item" msgstr "" -#: stock/serializers.py:472 +#: stock/serializers.py:484 msgid "Use pack size when adding: the quantity defined is the number of packs" msgstr "" -#: stock/serializers.py:596 stock/templates/stock/item_base.html:437 +#: stock/serializers.py:623 stock/templates/stock/item_base.html:434 #: templates/js/translated/table_filters.js:442 users/models.py:174 msgid "Expired" msgstr "" -#: stock/serializers.py:602 stock/templates/stock/stock_sidebar.html:20 +#: stock/serializers.py:629 stock/templates/stock/stock_sidebar.html:20 msgid "Child Items" msgstr "" -#: stock/serializers.py:606 +#: stock/serializers.py:633 msgid "Tracking Items" msgstr "" -#: stock/serializers.py:612 +#: stock/serializers.py:639 msgid "Purchase price of this stock item, per unit or pack" msgstr "" -#: stock/serializers.py:631 +#: stock/serializers.py:658 msgid "Minimum Pricing" msgstr "" -#: stock/serializers.py:637 +#: stock/serializers.py:664 msgid "Maximum Pricing" msgstr "" -#: stock/serializers.py:661 +#: stock/serializers.py:688 msgid "Enter number of stock items to serialize" msgstr "" -#: stock/serializers.py:674 +#: stock/serializers.py:701 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({q})" msgstr "" -#: stock/serializers.py:681 +#: stock/serializers.py:708 msgid "Enter serial numbers for new items" msgstr "" -#: stock/serializers.py:692 stock/serializers.py:1426 stock/serializers.py:1682 +#: stock/serializers.py:719 stock/serializers.py:1457 stock/serializers.py:1713 msgid "Destination stock location" msgstr "" -#: stock/serializers.py:699 +#: stock/serializers.py:726 msgid "Optional note field" msgstr "" -#: stock/serializers.py:709 +#: stock/serializers.py:736 msgid "Serial numbers cannot be assigned to this part" msgstr "" -#: stock/serializers.py:764 +#: stock/serializers.py:756 +msgid "Serial numbers already exist" +msgstr "" + +#: stock/serializers.py:795 msgid "Select stock item to install" msgstr "" -#: stock/serializers.py:771 +#: stock/serializers.py:802 msgid "Quantity to Install" msgstr "" -#: stock/serializers.py:772 +#: stock/serializers.py:803 msgid "Enter the quantity of items to install" msgstr "" -#: stock/serializers.py:777 stock/serializers.py:857 stock/serializers.py:983 -#: stock/serializers.py:1033 +#: stock/serializers.py:808 stock/serializers.py:888 stock/serializers.py:1014 +#: stock/serializers.py:1064 msgid "Add transaction note (optional)" msgstr "" -#: stock/serializers.py:785 +#: stock/serializers.py:816 msgid "Quantity to install must be at least 1" msgstr "" -#: stock/serializers.py:793 +#: stock/serializers.py:824 msgid "Stock item is unavailable" msgstr "" -#: stock/serializers.py:804 +#: stock/serializers.py:835 msgid "Selected part is not in the Bill of Materials" msgstr "" -#: stock/serializers.py:817 +#: stock/serializers.py:848 msgid "Quantity to install must not exceed available quantity" msgstr "" -#: stock/serializers.py:852 +#: stock/serializers.py:883 msgid "Destination location for uninstalled item" msgstr "" -#: stock/serializers.py:903 +#: stock/serializers.py:934 msgid "Unsupported statistic type: " msgstr "" -#: stock/serializers.py:917 +#: stock/serializers.py:948 msgid "Select part to convert stock item into" msgstr "" -#: stock/serializers.py:930 +#: stock/serializers.py:961 msgid "Selected part is not a valid option for conversion" msgstr "" -#: stock/serializers.py:947 +#: stock/serializers.py:978 msgid "Cannot convert stock item with assigned SupplierPart" msgstr "" -#: stock/serializers.py:978 +#: stock/serializers.py:1009 msgid "Destination location for returned item" msgstr "" -#: stock/serializers.py:1015 +#: stock/serializers.py:1046 msgid "Select stock items to change status" msgstr "" -#: stock/serializers.py:1021 +#: stock/serializers.py:1052 msgid "No stock items selected" msgstr "" -#: stock/serializers.py:1117 stock/serializers.py:1194 -#: stock/templates/stock/location.html:162 -#: stock/templates/stock/location.html:219 +#: stock/serializers.py:1148 stock/serializers.py:1225 +#: stock/templates/stock/location.html:163 +#: stock/templates/stock/location.html:220 #: stock/templates/stock/location_sidebar.html:5 msgid "Sublocations" msgstr "" -#: stock/serializers.py:1187 templates/js/translated/stock.js:160 +#: stock/serializers.py:1218 templates/js/translated/stock.js:160 msgid "Parent stock location" msgstr "" -#: stock/serializers.py:1298 +#: stock/serializers.py:1329 msgid "Part must be salable" msgstr "" -#: stock/serializers.py:1302 +#: stock/serializers.py:1333 msgid "Item is allocated to a sales order" msgstr "" -#: stock/serializers.py:1306 +#: stock/serializers.py:1337 msgid "Item is allocated to a build order" msgstr "" -#: stock/serializers.py:1330 +#: stock/serializers.py:1361 msgid "Customer to assign stock items" msgstr "" -#: stock/serializers.py:1336 +#: stock/serializers.py:1367 msgid "Selected company is not a customer" msgstr "" -#: stock/serializers.py:1344 +#: stock/serializers.py:1375 msgid "Stock assignment notes" msgstr "" -#: stock/serializers.py:1354 stock/serializers.py:1608 +#: stock/serializers.py:1385 stock/serializers.py:1639 msgid "A list of stock items must be provided" msgstr "" -#: stock/serializers.py:1433 +#: stock/serializers.py:1464 msgid "Stock merging notes" msgstr "" -#: stock/serializers.py:1438 +#: stock/serializers.py:1469 msgid "Allow mismatched suppliers" msgstr "" -#: stock/serializers.py:1439 +#: stock/serializers.py:1470 msgid "Allow stock items with different supplier parts to be merged" msgstr "" -#: stock/serializers.py:1444 +#: stock/serializers.py:1475 msgid "Allow mismatched status" msgstr "" -#: stock/serializers.py:1445 +#: stock/serializers.py:1476 msgid "Allow stock items with different status codes to be merged" msgstr "" -#: stock/serializers.py:1455 +#: stock/serializers.py:1486 msgid "At least two stock items must be provided" msgstr "" -#: stock/serializers.py:1522 +#: stock/serializers.py:1553 msgid "No Change" msgstr "" -#: stock/serializers.py:1551 +#: stock/serializers.py:1582 msgid "StockItem primary key value" msgstr "" -#: stock/serializers.py:1570 +#: stock/serializers.py:1601 msgid "Stock item status code" msgstr "" -#: stock/serializers.py:1598 +#: stock/serializers.py:1629 msgid "Stock transaction notes" msgstr "" @@ -10175,107 +10539,107 @@ msgstr "" msgid "Quarantined" msgstr "" -#: stock/status_codes.py:40 +#: stock/status_codes.py:44 msgid "Legacy stock tracking entry" msgstr "" -#: stock/status_codes.py:42 templates/js/translated/stock.js:550 +#: stock/status_codes.py:46 templates/js/translated/stock.js:550 msgid "Stock item created" msgstr "" -#: stock/status_codes.py:45 +#: stock/status_codes.py:49 msgid "Edited stock item" msgstr "" -#: stock/status_codes.py:46 +#: stock/status_codes.py:50 msgid "Assigned serial number" msgstr "" -#: stock/status_codes.py:49 +#: stock/status_codes.py:53 msgid "Stock counted" msgstr "" -#: stock/status_codes.py:50 +#: stock/status_codes.py:54 msgid "Stock manually added" msgstr "" -#: stock/status_codes.py:51 +#: stock/status_codes.py:55 msgid "Stock manually removed" msgstr "" -#: stock/status_codes.py:54 +#: stock/status_codes.py:58 msgid "Location changed" msgstr "" -#: stock/status_codes.py:55 +#: stock/status_codes.py:59 msgid "Stock updated" msgstr "" -#: stock/status_codes.py:58 +#: stock/status_codes.py:62 msgid "Installed into assembly" msgstr "" -#: stock/status_codes.py:59 +#: stock/status_codes.py:63 msgid "Removed from assembly" msgstr "" -#: stock/status_codes.py:61 +#: stock/status_codes.py:65 msgid "Installed component item" msgstr "" -#: stock/status_codes.py:62 +#: stock/status_codes.py:66 msgid "Removed component item" msgstr "" -#: stock/status_codes.py:65 +#: stock/status_codes.py:69 msgid "Split from parent item" msgstr "" -#: stock/status_codes.py:66 +#: stock/status_codes.py:70 msgid "Split child item" msgstr "" -#: stock/status_codes.py:69 templates/js/translated/stock.js:1943 +#: stock/status_codes.py:73 templates/js/translated/stock.js:1944 msgid "Merged stock items" msgstr "" -#: stock/status_codes.py:72 +#: stock/status_codes.py:76 msgid "Converted to variant" msgstr "" -#: stock/status_codes.py:75 +#: stock/status_codes.py:79 msgid "Build order output created" msgstr "" -#: stock/status_codes.py:76 +#: stock/status_codes.py:80 msgid "Build order output completed" msgstr "" -#: stock/status_codes.py:77 +#: stock/status_codes.py:81 msgid "Build order output rejected" msgstr "" -#: stock/status_codes.py:78 templates/js/translated/stock.js:1849 +#: stock/status_codes.py:82 templates/js/translated/stock.js:1849 msgid "Consumed by build order" msgstr "" -#: stock/status_codes.py:81 +#: stock/status_codes.py:85 msgid "Shipped against Sales Order" msgstr "" -#: stock/status_codes.py:84 +#: stock/status_codes.py:88 msgid "Received against Purchase Order" msgstr "" -#: stock/status_codes.py:87 +#: stock/status_codes.py:91 msgid "Returned against Return Order" msgstr "" -#: stock/status_codes.py:90 templates/js/translated/table_filters.js:382 +#: stock/status_codes.py:94 templates/js/translated/table_filters.js:382 msgid "Sent to customer" msgstr "" -#: stock/status_codes.py:91 +#: stock/status_codes.py:95 msgid "Returned from customer" msgstr "" @@ -10296,7 +10660,7 @@ msgstr "" msgid "Test Data" msgstr "" -#: stock/templates/stock/item.html:85 stock/templates/stock/item_base.html:65 +#: stock/templates/stock/item.html:85 msgid "Test Report" msgstr "" @@ -10316,7 +10680,7 @@ msgstr "" msgid "Installed Stock Items" msgstr "" -#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3354 +#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3355 msgid "Install Stock Item" msgstr "" @@ -10328,208 +10692,212 @@ msgstr "" msgid "Add Test Result" msgstr "" -#: stock/templates/stock/item_base.html:33 +#: stock/templates/stock/item_base.html:34 msgid "Locate stock item" msgstr "" -#: stock/templates/stock/item_base.html:51 +#: stock/templates/stock/item_base.html:52 msgid "Scan to Location" msgstr "" #: stock/templates/stock/item_base.html:59 -#: stock/templates/stock/location.html:67 +#: stock/templates/stock/location.html:68 #: templates/js/translated/filters.js:434 msgid "Printing actions" msgstr "" -#: stock/templates/stock/item_base.html:75 +#: stock/templates/stock/item_base.html:64 templates/js/translated/report.js:49 +msgid "Print Report" +msgstr "" + +#: stock/templates/stock/item_base.html:72 msgid "Stock adjustment actions" msgstr "" -#: stock/templates/stock/item_base.html:79 -#: stock/templates/stock/location.html:87 templates/js/translated/stock.js:1909 +#: stock/templates/stock/item_base.html:76 +#: stock/templates/stock/location.html:88 templates/js/translated/stock.js:1909 msgid "Count stock" msgstr "" -#: stock/templates/stock/item_base.html:81 +#: stock/templates/stock/item_base.html:78 #: templates/js/translated/stock.js:1891 msgid "Add stock" msgstr "" -#: stock/templates/stock/item_base.html:82 +#: stock/templates/stock/item_base.html:79 #: templates/js/translated/stock.js:1900 msgid "Remove stock" msgstr "" -#: stock/templates/stock/item_base.html:85 +#: stock/templates/stock/item_base.html:82 msgid "Serialize stock" msgstr "" -#: stock/templates/stock/item_base.html:88 -#: stock/templates/stock/location.html:93 templates/js/translated/stock.js:1918 +#: stock/templates/stock/item_base.html:85 +#: stock/templates/stock/location.html:94 templates/js/translated/stock.js:1918 msgid "Transfer stock" msgstr "" -#: stock/templates/stock/item_base.html:91 -#: templates/js/translated/stock.js:1972 +#: stock/templates/stock/item_base.html:88 +#: templates/js/translated/stock.js:1973 msgid "Assign to customer" msgstr "" -#: stock/templates/stock/item_base.html:94 +#: stock/templates/stock/item_base.html:91 msgid "Return to stock" msgstr "" -#: stock/templates/stock/item_base.html:97 +#: stock/templates/stock/item_base.html:94 msgid "Uninstall stock item" msgstr "" -#: stock/templates/stock/item_base.html:97 +#: stock/templates/stock/item_base.html:94 msgid "Uninstall" msgstr "" -#: stock/templates/stock/item_base.html:101 +#: stock/templates/stock/item_base.html:98 msgid "Install stock item" msgstr "" -#: stock/templates/stock/item_base.html:101 +#: stock/templates/stock/item_base.html:98 msgid "Install" msgstr "" -#: stock/templates/stock/item_base.html:115 +#: stock/templates/stock/item_base.html:112 msgid "Convert to variant" msgstr "" -#: stock/templates/stock/item_base.html:118 +#: stock/templates/stock/item_base.html:115 msgid "Duplicate stock item" msgstr "" -#: stock/templates/stock/item_base.html:120 +#: stock/templates/stock/item_base.html:117 msgid "Edit stock item" msgstr "" -#: stock/templates/stock/item_base.html:123 +#: stock/templates/stock/item_base.html:120 msgid "Delete stock item" msgstr "" -#: stock/templates/stock/item_base.html:169 templates/InvenTree/search.html:139 -#: templates/js/translated/build.js:2295 templates/navbar.html:38 +#: stock/templates/stock/item_base.html:166 templates/InvenTree/search.html:139 +#: templates/js/translated/build.js:2298 templates/navbar.html:38 msgid "Build" msgstr "" -#: stock/templates/stock/item_base.html:211 +#: stock/templates/stock/item_base.html:208 msgid "No manufacturer set" msgstr "" -#: stock/templates/stock/item_base.html:251 +#: stock/templates/stock/item_base.html:248 msgid "You are not in the list of owners of this item. This stock item cannot be edited." msgstr "" -#: stock/templates/stock/item_base.html:252 -#: stock/templates/stock/location.html:146 +#: stock/templates/stock/item_base.html:249 +#: stock/templates/stock/location.html:147 msgid "Read only" msgstr "" -#: stock/templates/stock/item_base.html:265 +#: stock/templates/stock/item_base.html:262 msgid "This stock item is unavailable" msgstr "" -#: stock/templates/stock/item_base.html:271 +#: stock/templates/stock/item_base.html:268 msgid "This stock item is in production and cannot be edited." msgstr "" -#: stock/templates/stock/item_base.html:272 +#: stock/templates/stock/item_base.html:269 msgid "Edit the stock item from the build view." msgstr "" -#: stock/templates/stock/item_base.html:287 +#: stock/templates/stock/item_base.html:284 msgid "This stock item is allocated to Sales Order" msgstr "" -#: stock/templates/stock/item_base.html:295 +#: stock/templates/stock/item_base.html:292 msgid "This stock item is allocated to Build Order" msgstr "" -#: stock/templates/stock/item_base.html:311 +#: stock/templates/stock/item_base.html:308 msgid "This stock item is serialized. It has a unique serial number and the quantity cannot be adjusted" msgstr "" -#: stock/templates/stock/item_base.html:317 +#: stock/templates/stock/item_base.html:314 msgid "previous page" msgstr "" -#: stock/templates/stock/item_base.html:317 +#: stock/templates/stock/item_base.html:314 msgid "Navigate to previous serial number" msgstr "" -#: stock/templates/stock/item_base.html:326 +#: stock/templates/stock/item_base.html:323 msgid "next page" msgstr "" -#: stock/templates/stock/item_base.html:326 +#: stock/templates/stock/item_base.html:323 msgid "Navigate to next serial number" msgstr "" -#: stock/templates/stock/item_base.html:398 -#: templates/js/translated/build.js:2552 +#: stock/templates/stock/item_base.html:395 +#: templates/js/translated/build.js:2559 msgid "No location set" msgstr "" -#: stock/templates/stock/item_base.html:413 +#: stock/templates/stock/item_base.html:410 msgid "Tests" msgstr "" -#: stock/templates/stock/item_base.html:419 +#: stock/templates/stock/item_base.html:416 msgid "This stock item has not passed all required tests" msgstr "" -#: stock/templates/stock/item_base.html:437 +#: stock/templates/stock/item_base.html:434 #, python-format msgid "This StockItem expired on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:439 +#: stock/templates/stock/item_base.html:436 #, python-format msgid "This StockItem expires on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:455 +#: stock/templates/stock/item_base.html:452 msgid "No stocktake performed" msgstr "" -#: stock/templates/stock/item_base.html:504 -#: templates/js/translated/stock.js:2037 +#: stock/templates/stock/item_base.html:501 +#: templates/js/translated/stock.js:2038 msgid "stock item" msgstr "" -#: stock/templates/stock/item_base.html:527 +#: stock/templates/stock/item_base.html:524 msgid "Edit Stock Status" msgstr "" -#: stock/templates/stock/item_base.html:536 +#: stock/templates/stock/item_base.html:533 msgid "Stock Item QR Code" msgstr "" -#: stock/templates/stock/item_base.html:547 +#: stock/templates/stock/item_base.html:544 msgid "Link Barcode to Stock Item" msgstr "" -#: stock/templates/stock/item_base.html:611 +#: stock/templates/stock/item_base.html:608 msgid "Select one of the part variants listed below." msgstr "" -#: stock/templates/stock/item_base.html:614 +#: stock/templates/stock/item_base.html:611 msgid "Warning" msgstr "" -#: stock/templates/stock/item_base.html:615 +#: stock/templates/stock/item_base.html:612 msgid "This action cannot be easily undone" msgstr "" -#: stock/templates/stock/item_base.html:623 +#: stock/templates/stock/item_base.html:620 msgid "Convert Stock Item" msgstr "" -#: stock/templates/stock/item_base.html:656 +#: stock/templates/stock/item_base.html:653 msgid "Return to Stock" msgstr "" @@ -10541,84 +10909,84 @@ msgstr "" msgid "Select quantity to serialize, and unique serial numbers." msgstr "" -#: stock/templates/stock/location.html:35 +#: stock/templates/stock/location.html:36 msgid "Perform stocktake for this stock location" msgstr "" -#: stock/templates/stock/location.html:42 +#: stock/templates/stock/location.html:43 msgid "Locate stock location" msgstr "" -#: stock/templates/stock/location.html:60 +#: stock/templates/stock/location.html:61 msgid "Scan stock items into this location" msgstr "" -#: stock/templates/stock/location.html:60 +#: stock/templates/stock/location.html:61 msgid "Scan In Stock Items" msgstr "" -#: stock/templates/stock/location.html:61 +#: stock/templates/stock/location.html:62 msgid "Scan stock container into this location" msgstr "" -#: stock/templates/stock/location.html:61 +#: stock/templates/stock/location.html:62 msgid "Scan In Container" msgstr "" -#: stock/templates/stock/location.html:72 +#: stock/templates/stock/location.html:73 msgid "Print Location Report" msgstr "" -#: stock/templates/stock/location.html:101 +#: stock/templates/stock/location.html:102 msgid "Location actions" msgstr "" -#: stock/templates/stock/location.html:103 +#: stock/templates/stock/location.html:104 msgid "Edit location" msgstr "" -#: stock/templates/stock/location.html:105 +#: stock/templates/stock/location.html:106 msgid "Delete location" msgstr "" -#: stock/templates/stock/location.html:135 +#: stock/templates/stock/location.html:136 msgid "Top level stock location" msgstr "" -#: stock/templates/stock/location.html:141 +#: stock/templates/stock/location.html:142 msgid "Location Owner" msgstr "" -#: stock/templates/stock/location.html:145 +#: stock/templates/stock/location.html:146 msgid "You are not in the list of owners of this location. This stock location cannot be edited." msgstr "" -#: stock/templates/stock/location.html:173 +#: stock/templates/stock/location.html:174 msgid "Location Type" msgstr "" -#: stock/templates/stock/location.html:223 +#: stock/templates/stock/location.html:224 msgid "Create new stock location" msgstr "" -#: stock/templates/stock/location.html:224 +#: stock/templates/stock/location.html:225 msgid "New Location" msgstr "" -#: stock/templates/stock/location.html:298 -#: templates/js/translated/stock.js:2657 +#: stock/templates/stock/location.html:299 +#: templates/js/translated/stock.js:2658 msgid "stock location" msgstr "" -#: stock/templates/stock/location.html:320 +#: stock/templates/stock/location.html:321 msgid "Scanned stock container into this location" msgstr "" -#: stock/templates/stock/location.html:393 +#: stock/templates/stock/location.html:394 msgid "Stock Location QR Code" msgstr "" -#: stock/templates/stock/location.html:404 +#: stock/templates/stock/location.html:405 msgid "Link Barcode to Stock Location" msgstr "" @@ -10630,10 +10998,6 @@ msgstr "" msgid "Stock Tracking" msgstr "" -#: stock/templates/stock/stock_sidebar.html:8 -msgid "Allocations" -msgstr "" - #: templates/403.html:6 templates/403.html:12 templates/403_csrf.html:7 msgid "Permission Denied" msgstr "" @@ -11107,9 +11471,9 @@ msgid "Rate" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:81 -#: templates/js/translated/forms.js:548 templates/js/translated/helpers.js:108 +#: templates/js/translated/forms.js:548 templates/js/translated/helpers.js:109 #: templates/js/translated/part.js:395 templates/js/translated/pricing.js:629 -#: templates/js/translated/stock.js:252 users/models.py:406 +#: templates/js/translated/stock.js:252 users/models.py:408 msgid "Delete" msgstr "" @@ -11130,7 +11494,7 @@ msgid "No project codes found" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:158 -#: templates/js/translated/build.js:2400 +#: templates/js/translated/build.js:2403 msgid "group" msgstr "" @@ -11196,7 +11560,7 @@ msgid "Delete Location Type" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:503 -#: templates/InvenTree/settings/stock.html:38 +#: templates/InvenTree/settings/stock.html:39 msgid "New Location Type" msgstr "" @@ -11253,7 +11617,7 @@ msgstr "" msgid "Stock Settings" msgstr "" -#: templates/InvenTree/settings/stock.html:34 +#: templates/InvenTree/settings/stock.html:35 msgid "Stock Location Types" msgstr "" @@ -11280,7 +11644,7 @@ msgid "Unverified" msgstr "" #: templates/InvenTree/settings/user.html:80 -#: templates/js/translated/company.js:957 +#: templates/js/translated/company.js:958 msgid "Primary" msgstr "" @@ -11532,7 +11896,7 @@ msgid "Submit Bug Report" msgstr "" #: templates/about.html:91 templates/clip.html:4 -#: templates/js/translated/helpers.js:592 +#: templates/js/translated/helpers.js:598 msgid "copy to clipboard" msgstr "" @@ -11738,23 +12102,24 @@ msgstr "" msgid "Barcode Identifier" msgstr "" -#: templates/base.html:103 +#: templates/base.html:102 msgid "Server Restart Required" msgstr "" -#: templates/base.html:106 +#: templates/base.html:105 msgid "A configuration option has been changed which requires a server restart" msgstr "" -#: templates/base.html:106 templates/base.html:116 +#: templates/base.html:105 templates/base.html:115 +#: templates/socialaccount/authentication_error.html:13 msgid "Contact your system administrator for further information" msgstr "" -#: templates/base.html:113 +#: templates/base.html:112 msgid "Pending Database Migrations" msgstr "" -#: templates/base.html:116 +#: templates/base.html:115 msgid "There are pending database migrations which require attention" msgstr "" @@ -11787,7 +12152,7 @@ msgid "The following parts are low on required stock" msgstr "" #: templates/email/build_order_required_stock.html:18 -#: templates/js/translated/bom.js:1674 templates/js/translated/build.js:2747 +#: templates/js/translated/bom.js:1674 templates/js/translated/build.js:2765 msgid "Required Quantity" msgstr "" @@ -11801,7 +12166,7 @@ msgid "Click on the following link to view this part" msgstr "" #: templates/email/low_stock_notification.html:18 -#: templates/js/translated/part.js:3237 +#: templates/js/translated/part.js:3253 msgid "Minimum Quantity" msgstr "" @@ -12039,7 +12404,7 @@ msgstr "" #: templates/js/translated/bom.js:189 templates/js/translated/bom.js:700 #: templates/js/translated/modals.js:75 templates/js/translated/modals.js:629 #: templates/js/translated/modals.js:757 templates/js/translated/modals.js:1065 -#: templates/js/translated/purchase_order.js:797 templates/modals.html:15 +#: templates/js/translated/purchase_order.js:780 templates/modals.html:15 #: templates/modals.html:27 templates/modals.html:39 templates/modals.html:50 msgid "Close" msgstr "" @@ -12156,7 +12521,7 @@ msgstr "" msgid "Substitutes Available" msgstr "" -#: templates/js/translated/bom.js:950 templates/js/translated/build.js:2673 +#: templates/js/translated/bom.js:950 templates/js/translated/build.js:2682 msgid "Variant stock allowed" msgstr "" @@ -12176,30 +12541,30 @@ msgstr "" msgid "No pricing available" msgstr "" -#: templates/js/translated/bom.js:1184 templates/js/translated/build.js:2812 +#: templates/js/translated/bom.js:1184 templates/js/translated/build.js:2830 msgid "External stock" msgstr "" -#: templates/js/translated/bom.js:1188 templates/js/translated/build.js:2786 -#: templates/js/translated/sales_order.js:1946 +#: templates/js/translated/bom.js:1188 templates/js/translated/build.js:2804 +#: templates/js/translated/sales_order.js:1927 msgid "No Stock Available" msgstr "" -#: templates/js/translated/bom.js:1193 templates/js/translated/build.js:2790 +#: templates/js/translated/bom.js:1193 templates/js/translated/build.js:2808 msgid "Includes variant and substitute stock" msgstr "" -#: templates/js/translated/bom.js:1195 templates/js/translated/build.js:2792 +#: templates/js/translated/bom.js:1195 templates/js/translated/build.js:2810 #: templates/js/translated/part.js:1263 -#: templates/js/translated/sales_order.js:1943 +#: templates/js/translated/sales_order.js:1924 msgid "Includes variant stock" msgstr "" -#: templates/js/translated/bom.js:1197 templates/js/translated/build.js:2794 +#: templates/js/translated/bom.js:1197 templates/js/translated/build.js:2812 msgid "Includes substitute stock" msgstr "" -#: templates/js/translated/bom.js:1225 templates/js/translated/build.js:2777 +#: templates/js/translated/bom.js:1225 templates/js/translated/build.js:2795 msgid "Consumable item" msgstr "" @@ -12231,7 +12596,7 @@ msgstr "" msgid "No BOM items found" msgstr "" -#: templates/js/translated/bom.js:1657 templates/js/translated/build.js:2658 +#: templates/js/translated/bom.js:1657 templates/js/translated/build.js:2667 msgid "Required Part" msgstr "" @@ -12243,396 +12608,396 @@ msgstr "" msgid "Edit Build Order" msgstr "" -#: templates/js/translated/build.js:191 +#: templates/js/translated/build.js:194 msgid "Create Build Order" msgstr "" -#: templates/js/translated/build.js:223 +#: templates/js/translated/build.js:226 msgid "Cancel Build Order" msgstr "" -#: templates/js/translated/build.js:232 +#: templates/js/translated/build.js:235 msgid "Are you sure you wish to cancel this build?" msgstr "" -#: templates/js/translated/build.js:238 +#: templates/js/translated/build.js:241 msgid "Stock items have been allocated to this build order" msgstr "" -#: templates/js/translated/build.js:245 +#: templates/js/translated/build.js:248 msgid "There are incomplete outputs remaining for this build order" msgstr "" -#: templates/js/translated/build.js:297 +#: templates/js/translated/build.js:300 msgid "Build order is ready to be completed" msgstr "" -#: templates/js/translated/build.js:305 +#: templates/js/translated/build.js:308 msgid "This build order cannot be completed as there are incomplete outputs" msgstr "" -#: templates/js/translated/build.js:310 +#: templates/js/translated/build.js:313 msgid "Build Order is incomplete" msgstr "" -#: templates/js/translated/build.js:328 +#: templates/js/translated/build.js:331 msgid "Complete Build Order" msgstr "" -#: templates/js/translated/build.js:369 templates/js/translated/stock.js:127 +#: templates/js/translated/build.js:372 templates/js/translated/stock.js:127 #: templates/js/translated/stock.js:301 msgid "Next available serial number" msgstr "" -#: templates/js/translated/build.js:371 templates/js/translated/stock.js:129 +#: templates/js/translated/build.js:374 templates/js/translated/stock.js:129 #: templates/js/translated/stock.js:303 msgid "Latest serial number" msgstr "" -#: templates/js/translated/build.js:380 +#: templates/js/translated/build.js:383 msgid "The Bill of Materials contains trackable parts" msgstr "" -#: templates/js/translated/build.js:381 +#: templates/js/translated/build.js:384 msgid "Build outputs must be generated individually" msgstr "" -#: templates/js/translated/build.js:389 +#: templates/js/translated/build.js:392 msgid "Trackable parts can have serial numbers specified" msgstr "" -#: templates/js/translated/build.js:390 +#: templates/js/translated/build.js:393 msgid "Enter serial numbers to generate multiple single build outputs" msgstr "" -#: templates/js/translated/build.js:397 +#: templates/js/translated/build.js:400 msgid "Create Build Output" msgstr "" -#: templates/js/translated/build.js:428 +#: templates/js/translated/build.js:431 msgid "Allocate stock items to this build output" msgstr "" -#: templates/js/translated/build.js:436 +#: templates/js/translated/build.js:439 msgid "Deallocate stock from build output" msgstr "" -#: templates/js/translated/build.js:445 +#: templates/js/translated/build.js:448 msgid "Complete build output" msgstr "" -#: templates/js/translated/build.js:453 +#: templates/js/translated/build.js:456 msgid "Scrap build output" msgstr "" -#: templates/js/translated/build.js:460 +#: templates/js/translated/build.js:463 msgid "Delete build output" msgstr "" -#: templates/js/translated/build.js:480 +#: templates/js/translated/build.js:483 msgid "Are you sure you wish to deallocate the selected stock items from this build?" msgstr "" -#: templates/js/translated/build.js:498 +#: templates/js/translated/build.js:501 msgid "Deallocate Stock Items" msgstr "" -#: templates/js/translated/build.js:584 templates/js/translated/build.js:711 -#: templates/js/translated/build.js:836 +#: templates/js/translated/build.js:587 templates/js/translated/build.js:714 +#: templates/js/translated/build.js:839 msgid "Select Build Outputs" msgstr "" -#: templates/js/translated/build.js:585 templates/js/translated/build.js:712 -#: templates/js/translated/build.js:837 +#: templates/js/translated/build.js:588 templates/js/translated/build.js:715 +#: templates/js/translated/build.js:840 msgid "At least one build output must be selected" msgstr "" -#: templates/js/translated/build.js:599 +#: templates/js/translated/build.js:602 msgid "Selected build outputs will be marked as complete" msgstr "" -#: templates/js/translated/build.js:603 templates/js/translated/build.js:736 -#: templates/js/translated/build.js:859 +#: templates/js/translated/build.js:606 templates/js/translated/build.js:739 +#: templates/js/translated/build.js:862 msgid "Output" msgstr "" -#: templates/js/translated/build.js:630 +#: templates/js/translated/build.js:633 msgid "Complete Build Outputs" msgstr "" -#: templates/js/translated/build.js:727 +#: templates/js/translated/build.js:730 msgid "Selected build outputs will be marked as scrapped" msgstr "" -#: templates/js/translated/build.js:729 +#: templates/js/translated/build.js:732 msgid "Scrapped output are marked as rejected" msgstr "" -#: templates/js/translated/build.js:730 +#: templates/js/translated/build.js:733 msgid "Allocated stock items will no longer be available" msgstr "" -#: templates/js/translated/build.js:731 +#: templates/js/translated/build.js:734 msgid "The completion status of the build order will not be adjusted" msgstr "" -#: templates/js/translated/build.js:761 +#: templates/js/translated/build.js:764 msgid "Scrap Build Outputs" msgstr "" -#: templates/js/translated/build.js:851 +#: templates/js/translated/build.js:854 msgid "Selected build outputs will be deleted" msgstr "" -#: templates/js/translated/build.js:853 +#: templates/js/translated/build.js:856 msgid "Build output data will be permanently deleted" msgstr "" -#: templates/js/translated/build.js:854 +#: templates/js/translated/build.js:857 msgid "Allocated stock items will be returned to stock" msgstr "" -#: templates/js/translated/build.js:872 +#: templates/js/translated/build.js:875 msgid "Delete Build Outputs" msgstr "" -#: templates/js/translated/build.js:959 +#: templates/js/translated/build.js:962 msgid "Delete allocations" msgstr "" -#: templates/js/translated/build.js:966 +#: templates/js/translated/build.js:969 msgid "Delete Stock Allocations" msgstr "" -#: templates/js/translated/build.js:989 +#: templates/js/translated/build.js:992 msgid "No allocated stock" msgstr "" -#: templates/js/translated/build.js:1045 +#: templates/js/translated/build.js:1048 msgid "Stock item" msgstr "" -#: templates/js/translated/build.js:1070 +#: templates/js/translated/build.js:1073 msgid "Edit build allocation" msgstr "" -#: templates/js/translated/build.js:1071 +#: templates/js/translated/build.js:1074 msgid "Delete build allocation" msgstr "" -#: templates/js/translated/build.js:1089 +#: templates/js/translated/build.js:1092 msgid "Edit Build Allocation" msgstr "" -#: templates/js/translated/build.js:1102 +#: templates/js/translated/build.js:1105 msgid "Delete Build Allocation" msgstr "" -#: templates/js/translated/build.js:1133 +#: templates/js/translated/build.js:1136 msgid "No build order allocations found" msgstr "" -#: templates/js/translated/build.js:1178 +#: templates/js/translated/build.js:1181 msgid "Location not specified" msgstr "" -#: templates/js/translated/build.js:1200 +#: templates/js/translated/build.js:1203 msgid "Complete outputs" msgstr "" -#: templates/js/translated/build.js:1218 +#: templates/js/translated/build.js:1221 msgid "Scrap outputs" msgstr "" -#: templates/js/translated/build.js:1236 +#: templates/js/translated/build.js:1239 msgid "Delete outputs" msgstr "" -#: templates/js/translated/build.js:1289 +#: templates/js/translated/build.js:1292 msgid "build output" msgstr "" -#: templates/js/translated/build.js:1290 +#: templates/js/translated/build.js:1293 msgid "build outputs" msgstr "" -#: templates/js/translated/build.js:1294 +#: templates/js/translated/build.js:1297 msgid "Build output actions" msgstr "" -#: templates/js/translated/build.js:1470 +#: templates/js/translated/build.js:1473 msgid "No active build outputs found" msgstr "" -#: templates/js/translated/build.js:1563 +#: templates/js/translated/build.js:1566 msgid "Allocated Lines" msgstr "" -#: templates/js/translated/build.js:1577 +#: templates/js/translated/build.js:1580 msgid "Required Tests" msgstr "" -#: templates/js/translated/build.js:1749 -#: templates/js/translated/purchase_order.js:611 -#: templates/js/translated/sales_order.js:1207 +#: templates/js/translated/build.js:1752 +#: templates/js/translated/purchase_order.js:594 +#: templates/js/translated/sales_order.js:1173 msgid "Select Parts" msgstr "" -#: templates/js/translated/build.js:1750 -#: templates/js/translated/sales_order.js:1208 +#: templates/js/translated/build.js:1753 +#: templates/js/translated/sales_order.js:1174 msgid "You must select at least one part to allocate" msgstr "" -#: templates/js/translated/build.js:1813 -#: templates/js/translated/sales_order.js:1157 +#: templates/js/translated/build.js:1816 +#: templates/js/translated/sales_order.js:1123 msgid "Specify stock allocation quantity" msgstr "" -#: templates/js/translated/build.js:1890 +#: templates/js/translated/build.js:1893 msgid "All Parts Allocated" msgstr "" -#: templates/js/translated/build.js:1891 +#: templates/js/translated/build.js:1894 msgid "All selected parts have been fully allocated" msgstr "" -#: templates/js/translated/build.js:1905 -#: templates/js/translated/sales_order.js:1222 +#: templates/js/translated/build.js:1908 +#: templates/js/translated/sales_order.js:1188 msgid "Select source location (leave blank to take from all locations)" msgstr "" -#: templates/js/translated/build.js:1933 +#: templates/js/translated/build.js:1936 msgid "Allocate Stock Items to Build Order" msgstr "" -#: templates/js/translated/build.js:1944 -#: templates/js/translated/sales_order.js:1319 +#: templates/js/translated/build.js:1947 +#: templates/js/translated/sales_order.js:1285 msgid "No matching stock locations" msgstr "" -#: templates/js/translated/build.js:2017 -#: templates/js/translated/sales_order.js:1398 +#: templates/js/translated/build.js:2020 +#: templates/js/translated/sales_order.js:1364 msgid "No matching stock items" msgstr "" -#: templates/js/translated/build.js:2114 +#: templates/js/translated/build.js:2117 msgid "Automatic Stock Allocation" msgstr "" -#: templates/js/translated/build.js:2115 +#: templates/js/translated/build.js:2118 msgid "Stock items will be automatically allocated to this build order, according to the provided guidelines" msgstr "" -#: templates/js/translated/build.js:2117 +#: templates/js/translated/build.js:2120 msgid "If a location is specified, stock will only be allocated from that location" msgstr "" -#: templates/js/translated/build.js:2118 +#: templates/js/translated/build.js:2121 msgid "If stock is considered interchangeable, it will be allocated from the first location it is found" msgstr "" -#: templates/js/translated/build.js:2119 +#: templates/js/translated/build.js:2122 msgid "If substitute stock is allowed, it will be used where stock of the primary part cannot be found" msgstr "" -#: templates/js/translated/build.js:2149 +#: templates/js/translated/build.js:2152 msgid "Allocate Stock Items" msgstr "" -#: templates/js/translated/build.js:2254 +#: templates/js/translated/build.js:2257 msgid "No builds matching query" msgstr "" -#: templates/js/translated/build.js:2289 templates/js/translated/build.js:2652 +#: templates/js/translated/build.js:2292 templates/js/translated/build.js:2661 #: templates/js/translated/forms.js:2196 templates/js/translated/forms.js:2212 #: templates/js/translated/part.js:2322 templates/js/translated/part.js:2761 -#: templates/js/translated/stock.js:2068 templates/js/translated/stock.js:2795 +#: templates/js/translated/stock.js:2069 templates/js/translated/stock.js:2796 msgid "Select" msgstr "" -#: templates/js/translated/build.js:2303 +#: templates/js/translated/build.js:2306 msgid "Build order is overdue" msgstr "" -#: templates/js/translated/build.js:2385 templates/js/translated/stock.js:3126 +#: templates/js/translated/build.js:2388 templates/js/translated/stock.js:3127 msgid "No user information" msgstr "" -#: templates/js/translated/build.js:2561 -#: templates/js/translated/sales_order.js:1682 +#: templates/js/translated/build.js:2568 +#: templates/js/translated/sales_order.js:1663 msgid "Edit stock allocation" msgstr "" -#: templates/js/translated/build.js:2562 -#: templates/js/translated/sales_order.js:1683 +#: templates/js/translated/build.js:2569 +#: templates/js/translated/sales_order.js:1664 msgid "Delete stock allocation" msgstr "" -#: templates/js/translated/build.js:2577 +#: templates/js/translated/build.js:2584 msgid "Edit Allocation" msgstr "" -#: templates/js/translated/build.js:2589 +#: templates/js/translated/build.js:2596 msgid "Remove Allocation" msgstr "" -#: templates/js/translated/build.js:2628 +#: templates/js/translated/build.js:2636 msgid "build line" msgstr "" -#: templates/js/translated/build.js:2629 +#: templates/js/translated/build.js:2637 msgid "build lines" msgstr "" -#: templates/js/translated/build.js:2647 +#: templates/js/translated/build.js:2656 msgid "No build lines found" msgstr "" -#: templates/js/translated/build.js:2677 templates/js/translated/part.js:793 +#: templates/js/translated/build.js:2686 templates/js/translated/part.js:793 #: templates/js/translated/part.js:1209 msgid "Trackable part" msgstr "" -#: templates/js/translated/build.js:2720 +#: templates/js/translated/build.js:2729 msgid "Gets Inherited" msgstr "" -#: templates/js/translated/build.js:2730 +#: templates/js/translated/build.js:2748 msgid "Unit Quantity" msgstr "" -#: templates/js/translated/build.js:2782 -#: templates/js/translated/sales_order.js:1951 +#: templates/js/translated/build.js:2800 +#: templates/js/translated/sales_order.js:1932 msgid "Sufficient stock available" msgstr "" -#: templates/js/translated/build.js:2837 +#: templates/js/translated/build.js:2855 msgid "Consumable Item" msgstr "" -#: templates/js/translated/build.js:2844 +#: templates/js/translated/build.js:2862 msgid "Tracked item" msgstr "" -#: templates/js/translated/build.js:2845 +#: templates/js/translated/build.js:2863 msgid "Allocate tracked items against individual build outputs" msgstr "" -#: templates/js/translated/build.js:2853 -#: templates/js/translated/sales_order.js:2052 +#: templates/js/translated/build.js:2871 +#: templates/js/translated/sales_order.js:2033 msgid "Build stock" msgstr "" -#: templates/js/translated/build.js:2858 templates/js/translated/stock.js:1953 +#: templates/js/translated/build.js:2876 templates/js/translated/stock.js:1954 msgid "Order stock" msgstr "" -#: templates/js/translated/build.js:2862 -#: templates/js/translated/sales_order.js:2046 +#: templates/js/translated/build.js:2880 +#: templates/js/translated/sales_order.js:2027 msgid "Allocate stock" msgstr "" -#: templates/js/translated/build.js:2866 +#: templates/js/translated/build.js:2884 msgid "Remove stock allocation" msgstr "" @@ -12641,7 +13006,7 @@ msgid "Add Manufacturer" msgstr "" #: templates/js/translated/company.js:111 -#: templates/js/translated/company.js:213 +#: templates/js/translated/company.js:214 msgid "Add Manufacturer Part" msgstr "" @@ -12649,231 +13014,231 @@ msgstr "" msgid "Edit Manufacturer Part" msgstr "" -#: templates/js/translated/company.js:201 +#: templates/js/translated/company.js:202 #: templates/js/translated/purchase_order.js:93 msgid "Add Supplier" msgstr "" -#: templates/js/translated/company.js:243 -#: templates/js/translated/purchase_order.js:318 +#: templates/js/translated/company.js:244 +#: templates/js/translated/purchase_order.js:301 msgid "Add Supplier Part" msgstr "" -#: templates/js/translated/company.js:344 +#: templates/js/translated/company.js:345 msgid "All selected supplier parts will be deleted" msgstr "" -#: templates/js/translated/company.js:360 +#: templates/js/translated/company.js:361 msgid "Delete Supplier Parts" msgstr "" -#: templates/js/translated/company.js:466 +#: templates/js/translated/company.js:467 msgid "Add new Company" msgstr "" -#: templates/js/translated/company.js:546 +#: templates/js/translated/company.js:547 msgid "Parts Supplied" msgstr "" -#: templates/js/translated/company.js:555 +#: templates/js/translated/company.js:556 msgid "Parts Manufactured" msgstr "" -#: templates/js/translated/company.js:570 +#: templates/js/translated/company.js:571 msgid "No company information found" msgstr "" -#: templates/js/translated/company.js:619 +#: templates/js/translated/company.js:620 msgid "Create New Contact" msgstr "" -#: templates/js/translated/company.js:635 -#: templates/js/translated/company.js:758 +#: templates/js/translated/company.js:636 +#: templates/js/translated/company.js:759 msgid "Edit Contact" msgstr "" -#: templates/js/translated/company.js:672 +#: templates/js/translated/company.js:673 msgid "All selected contacts will be deleted" msgstr "" -#: templates/js/translated/company.js:678 -#: templates/js/translated/company.js:742 +#: templates/js/translated/company.js:679 +#: templates/js/translated/company.js:743 msgid "Role" msgstr "" -#: templates/js/translated/company.js:686 +#: templates/js/translated/company.js:687 msgid "Delete Contacts" msgstr "" -#: templates/js/translated/company.js:717 +#: templates/js/translated/company.js:718 msgid "No contacts found" msgstr "" -#: templates/js/translated/company.js:730 +#: templates/js/translated/company.js:731 msgid "Phone Number" msgstr "" -#: templates/js/translated/company.js:736 +#: templates/js/translated/company.js:737 msgid "Email Address" msgstr "" -#: templates/js/translated/company.js:762 +#: templates/js/translated/company.js:763 msgid "Delete Contact" msgstr "" -#: templates/js/translated/company.js:859 +#: templates/js/translated/company.js:860 msgid "Create New Address" msgstr "" -#: templates/js/translated/company.js:874 -#: templates/js/translated/company.js:1035 +#: templates/js/translated/company.js:875 +#: templates/js/translated/company.js:1036 msgid "Edit Address" msgstr "" -#: templates/js/translated/company.js:909 +#: templates/js/translated/company.js:910 msgid "All selected addresses will be deleted" msgstr "" -#: templates/js/translated/company.js:923 +#: templates/js/translated/company.js:924 msgid "Delete Addresses" msgstr "" -#: templates/js/translated/company.js:950 +#: templates/js/translated/company.js:951 msgid "No addresses found" msgstr "" -#: templates/js/translated/company.js:989 +#: templates/js/translated/company.js:990 msgid "Postal city" msgstr "" -#: templates/js/translated/company.js:995 +#: templates/js/translated/company.js:996 msgid "State/province" msgstr "" -#: templates/js/translated/company.js:1007 +#: templates/js/translated/company.js:1008 msgid "Courier notes" msgstr "" -#: templates/js/translated/company.js:1013 +#: templates/js/translated/company.js:1014 msgid "Internal notes" msgstr "" -#: templates/js/translated/company.js:1039 +#: templates/js/translated/company.js:1040 msgid "Delete Address" msgstr "" -#: templates/js/translated/company.js:1112 +#: templates/js/translated/company.js:1113 msgid "All selected manufacturer parts will be deleted" msgstr "" -#: templates/js/translated/company.js:1127 +#: templates/js/translated/company.js:1128 msgid "Delete Manufacturer Parts" msgstr "" -#: templates/js/translated/company.js:1161 +#: templates/js/translated/company.js:1162 msgid "All selected parameters will be deleted" msgstr "" -#: templates/js/translated/company.js:1175 +#: templates/js/translated/company.js:1176 msgid "Delete Parameters" msgstr "" -#: templates/js/translated/company.js:1191 -#: templates/js/translated/company.js:1479 templates/js/translated/part.js:2250 +#: templates/js/translated/company.js:1192 +#: templates/js/translated/company.js:1480 templates/js/translated/part.js:2250 msgid "Order parts" msgstr "" -#: templates/js/translated/company.js:1208 +#: templates/js/translated/company.js:1209 msgid "Delete manufacturer parts" msgstr "" -#: templates/js/translated/company.js:1240 +#: templates/js/translated/company.js:1241 msgid "Manufacturer part actions" msgstr "" -#: templates/js/translated/company.js:1259 +#: templates/js/translated/company.js:1260 msgid "No manufacturer parts found" msgstr "" -#: templates/js/translated/company.js:1279 -#: templates/js/translated/company.js:1567 templates/js/translated/part.js:801 +#: templates/js/translated/company.js:1280 +#: templates/js/translated/company.js:1568 templates/js/translated/part.js:801 #: templates/js/translated/part.js:1217 msgid "Template part" msgstr "" -#: templates/js/translated/company.js:1283 -#: templates/js/translated/company.js:1571 templates/js/translated/part.js:805 +#: templates/js/translated/company.js:1284 +#: templates/js/translated/company.js:1572 templates/js/translated/part.js:805 #: templates/js/translated/part.js:1221 msgid "Assembled part" msgstr "" -#: templates/js/translated/company.js:1403 templates/js/translated/part.js:1471 +#: templates/js/translated/company.js:1404 templates/js/translated/part.js:1471 msgid "No parameters found" msgstr "" -#: templates/js/translated/company.js:1438 templates/js/translated/part.js:1534 +#: templates/js/translated/company.js:1439 templates/js/translated/part.js:1534 msgid "Edit parameter" msgstr "" -#: templates/js/translated/company.js:1439 templates/js/translated/part.js:1535 +#: templates/js/translated/company.js:1440 templates/js/translated/part.js:1535 msgid "Delete parameter" msgstr "" -#: templates/js/translated/company.js:1456 templates/js/translated/part.js:1440 +#: templates/js/translated/company.js:1457 templates/js/translated/part.js:1440 msgid "Edit Parameter" msgstr "" -#: templates/js/translated/company.js:1465 templates/js/translated/part.js:1556 +#: templates/js/translated/company.js:1466 templates/js/translated/part.js:1556 msgid "Delete Parameter" msgstr "" -#: templates/js/translated/company.js:1496 +#: templates/js/translated/company.js:1497 msgid "Delete supplier parts" msgstr "" -#: templates/js/translated/company.js:1546 +#: templates/js/translated/company.js:1547 msgid "No supplier parts found" msgstr "" -#: templates/js/translated/company.js:1664 +#: templates/js/translated/company.js:1665 msgid "Base Units" msgstr "" -#: templates/js/translated/company.js:1694 +#: templates/js/translated/company.js:1695 msgid "Availability" msgstr "" -#: templates/js/translated/company.js:1725 +#: templates/js/translated/company.js:1726 msgid "Edit supplier part" msgstr "" -#: templates/js/translated/company.js:1726 +#: templates/js/translated/company.js:1727 msgid "Delete supplier part" msgstr "" -#: templates/js/translated/company.js:1779 +#: templates/js/translated/company.js:1780 #: templates/js/translated/pricing.js:694 msgid "Delete Price Break" msgstr "" -#: templates/js/translated/company.js:1789 +#: templates/js/translated/company.js:1790 #: templates/js/translated/pricing.js:712 msgid "Edit Price Break" msgstr "" -#: templates/js/translated/company.js:1804 +#: templates/js/translated/company.js:1805 msgid "No price break information found" msgstr "" -#: templates/js/translated/company.js:1833 +#: templates/js/translated/company.js:1834 msgid "Last updated" msgstr "" -#: templates/js/translated/company.js:1840 +#: templates/js/translated/company.js:1841 msgid "Edit price break" msgstr "" -#: templates/js/translated/company.js:1841 +#: templates/js/translated/company.js:1842 msgid "Delete price break" msgstr "" @@ -12977,19 +13342,19 @@ msgstr "" msgid "Select Columns" msgstr "" -#: templates/js/translated/helpers.js:80 +#: templates/js/translated/helpers.js:81 msgid "YES" msgstr "" -#: templates/js/translated/helpers.js:83 +#: templates/js/translated/helpers.js:84 msgid "NO" msgstr "" -#: templates/js/translated/helpers.js:96 +#: templates/js/translated/helpers.js:97 msgid "True" msgstr "" -#: templates/js/translated/helpers.js:97 +#: templates/js/translated/helpers.js:98 msgid "False" msgstr "" @@ -13131,7 +13496,7 @@ msgid "Delete Line" msgstr "" #: templates/js/translated/order.js:306 -#: templates/js/translated/purchase_order.js:2060 +#: templates/js/translated/purchase_order.js:2044 msgid "No line items found" msgstr "" @@ -13366,19 +13731,19 @@ msgid "Delete Part Parameter Template" msgstr "" #: templates/js/translated/part.js:1723 -#: templates/js/translated/purchase_order.js:1724 +#: templates/js/translated/purchase_order.js:1708 msgid "No purchase orders found" msgstr "" #: templates/js/translated/part.js:1867 -#: templates/js/translated/purchase_order.js:2223 +#: templates/js/translated/purchase_order.js:2207 #: templates/js/translated/return_order.js:754 -#: templates/js/translated/sales_order.js:1911 +#: templates/js/translated/sales_order.js:1892 msgid "This line item is overdue" msgstr "" #: templates/js/translated/part.js:1913 -#: templates/js/translated/purchase_order.js:2290 +#: templates/js/translated/purchase_order.js:2274 msgid "Receive line item" msgstr "" @@ -13419,7 +13784,7 @@ msgid "No category" msgstr "" #: templates/js/translated/part.js:2550 templates/js/translated/part.js:2680 -#: templates/js/translated/stock.js:2754 +#: templates/js/translated/stock.js:2755 msgid "Display as list" msgstr "" @@ -13431,7 +13796,7 @@ msgstr "" msgid "No subcategories found" msgstr "" -#: templates/js/translated/part.js:2700 templates/js/translated/stock.js:2774 +#: templates/js/translated/part.js:2700 templates/js/translated/stock.js:2775 msgid "Display as tree" msgstr "" @@ -13483,23 +13848,23 @@ msgstr "" msgid "Speculative" msgstr "" -#: templates/js/translated/part.js:3128 +#: templates/js/translated/part.js:3144 msgid "No scheduling information available for this part" msgstr "" -#: templates/js/translated/part.js:3134 +#: templates/js/translated/part.js:3150 msgid "Error fetching scheduling information for this part" msgstr "" -#: templates/js/translated/part.js:3230 +#: templates/js/translated/part.js:3246 msgid "Scheduled Stock Quantities" msgstr "" -#: templates/js/translated/part.js:3246 +#: templates/js/translated/part.js:3262 msgid "Maximum Quantity" msgstr "" -#: templates/js/translated/part.js:3291 +#: templates/js/translated/part.js:3307 msgid "Minimum Stock Level" msgstr "" @@ -13575,267 +13940,243 @@ msgstr "" msgid "Purchase Price History" msgstr "" -#: templates/js/translated/pricing.js:894 +#: templates/js/translated/pricing.js:892 msgid "No sales history data available" msgstr "" -#: templates/js/translated/pricing.js:916 +#: templates/js/translated/pricing.js:914 msgid "Sale Price History" msgstr "" -#: templates/js/translated/pricing.js:1005 +#: templates/js/translated/pricing.js:1003 msgid "No variant data available" msgstr "" -#: templates/js/translated/pricing.js:1045 +#: templates/js/translated/pricing.js:1043 msgid "Variant Part" msgstr "" -#: templates/js/translated/purchase_order.js:169 -msgid "Select purchase order to duplicate" -msgstr "" - -#: templates/js/translated/purchase_order.js:176 -msgid "Duplicate Line Items" -msgstr "" - -#: templates/js/translated/purchase_order.js:177 -msgid "Duplicate all line items from the selected order" -msgstr "" - -#: templates/js/translated/purchase_order.js:184 -msgid "Duplicate Extra Lines" -msgstr "" - -#: templates/js/translated/purchase_order.js:185 -msgid "Duplicate extra line items from the selected order" -msgstr "" - -#: templates/js/translated/purchase_order.js:206 +#: templates/js/translated/purchase_order.js:188 msgid "Edit Purchase Order" msgstr "" -#: templates/js/translated/purchase_order.js:223 +#: templates/js/translated/purchase_order.js:205 msgid "Duplication Options" msgstr "" -#: templates/js/translated/purchase_order.js:431 +#: templates/js/translated/purchase_order.js:414 msgid "Complete Purchase Order" msgstr "" -#: templates/js/translated/purchase_order.js:448 +#: templates/js/translated/purchase_order.js:431 #: templates/js/translated/return_order.js:210 -#: templates/js/translated/sales_order.js:552 +#: templates/js/translated/sales_order.js:511 msgid "Mark this order as complete?" msgstr "" -#: templates/js/translated/purchase_order.js:454 +#: templates/js/translated/purchase_order.js:437 msgid "All line items have been received" msgstr "" -#: templates/js/translated/purchase_order.js:459 +#: templates/js/translated/purchase_order.js:442 msgid "This order has line items which have not been marked as received." msgstr "" -#: templates/js/translated/purchase_order.js:460 +#: templates/js/translated/purchase_order.js:443 msgid "Completing this order means that the order and line items will no longer be editable." msgstr "" -#: templates/js/translated/purchase_order.js:483 +#: templates/js/translated/purchase_order.js:466 msgid "Cancel Purchase Order" msgstr "" -#: templates/js/translated/purchase_order.js:488 +#: templates/js/translated/purchase_order.js:471 msgid "Are you sure you wish to cancel this purchase order?" msgstr "" -#: templates/js/translated/purchase_order.js:494 +#: templates/js/translated/purchase_order.js:477 msgid "This purchase order can not be cancelled" msgstr "" -#: templates/js/translated/purchase_order.js:515 +#: templates/js/translated/purchase_order.js:498 #: templates/js/translated/return_order.js:164 msgid "After placing this order, line items will no longer be editable." msgstr "" -#: templates/js/translated/purchase_order.js:520 +#: templates/js/translated/purchase_order.js:503 msgid "Issue Purchase Order" msgstr "" -#: templates/js/translated/purchase_order.js:612 +#: templates/js/translated/purchase_order.js:595 msgid "At least one purchaseable part must be selected" msgstr "" -#: templates/js/translated/purchase_order.js:637 +#: templates/js/translated/purchase_order.js:620 msgid "Quantity to order" msgstr "" -#: templates/js/translated/purchase_order.js:646 +#: templates/js/translated/purchase_order.js:629 msgid "New supplier part" msgstr "" -#: templates/js/translated/purchase_order.js:664 +#: templates/js/translated/purchase_order.js:647 msgid "New purchase order" msgstr "" -#: templates/js/translated/purchase_order.js:705 +#: templates/js/translated/purchase_order.js:688 msgid "Add to purchase order" msgstr "" -#: templates/js/translated/purchase_order.js:755 +#: templates/js/translated/purchase_order.js:738 msgid "Merge" msgstr "" -#: templates/js/translated/purchase_order.js:859 +#: templates/js/translated/purchase_order.js:842 msgid "No matching supplier parts" msgstr "" -#: templates/js/translated/purchase_order.js:878 +#: templates/js/translated/purchase_order.js:861 msgid "No matching purchase orders" msgstr "" -#: templates/js/translated/purchase_order.js:1073 +#: templates/js/translated/purchase_order.js:1056 #: templates/js/translated/return_order.js:490 msgid "Select Line Items" msgstr "" -#: templates/js/translated/purchase_order.js:1074 +#: templates/js/translated/purchase_order.js:1057 #: templates/js/translated/return_order.js:491 msgid "At least one line item must be selected" msgstr "" -#: templates/js/translated/purchase_order.js:1104 +#: templates/js/translated/purchase_order.js:1087 msgid "Received Quantity" msgstr "" -#: templates/js/translated/purchase_order.js:1115 +#: templates/js/translated/purchase_order.js:1098 msgid "Quantity to receive" msgstr "" -#: templates/js/translated/purchase_order.js:1170 +#: templates/js/translated/purchase_order.js:1153 #: templates/js/translated/stock.js:1215 msgid "Specify packaging for incoming stock items" msgstr "" -#: templates/js/translated/purchase_order.js:1223 +#: templates/js/translated/purchase_order.js:1206 msgid "Stock Status" msgstr "" -#: templates/js/translated/purchase_order.js:1237 +#: templates/js/translated/purchase_order.js:1220 msgid "Add barcode" msgstr "" -#: templates/js/translated/purchase_order.js:1238 +#: templates/js/translated/purchase_order.js:1221 msgid "Remove barcode" msgstr "" -#: templates/js/translated/purchase_order.js:1241 +#: templates/js/translated/purchase_order.js:1224 msgid "Specify location" msgstr "" -#: templates/js/translated/purchase_order.js:1249 +#: templates/js/translated/purchase_order.js:1232 msgid "Add batch code" msgstr "" -#: templates/js/translated/purchase_order.js:1259 +#: templates/js/translated/purchase_order.js:1242 msgid "Specify packaging" msgstr "" -#: templates/js/translated/purchase_order.js:1270 +#: templates/js/translated/purchase_order.js:1253 msgid "Add serial numbers" msgstr "" -#: templates/js/translated/purchase_order.js:1281 +#: templates/js/translated/purchase_order.js:1264 msgid "Add note" msgstr "" -#: templates/js/translated/purchase_order.js:1338 +#: templates/js/translated/purchase_order.js:1321 msgid "Serials" msgstr "" -#: templates/js/translated/purchase_order.js:1368 +#: templates/js/translated/purchase_order.js:1351 msgid "Order Code" msgstr "" -#: templates/js/translated/purchase_order.js:1370 +#: templates/js/translated/purchase_order.js:1353 msgid "Quantity to Receive" msgstr "" -#: templates/js/translated/purchase_order.js:1395 +#: templates/js/translated/purchase_order.js:1379 #: templates/js/translated/return_order.js:559 msgid "Confirm receipt of items" msgstr "" -#: templates/js/translated/purchase_order.js:1396 +#: templates/js/translated/purchase_order.js:1380 msgid "Receive Purchase Order Items" msgstr "" -#: templates/js/translated/purchase_order.js:1464 +#: templates/js/translated/purchase_order.js:1448 msgid "Scan Item Barcode" msgstr "" -#: templates/js/translated/purchase_order.js:1465 +#: templates/js/translated/purchase_order.js:1449 msgid "Scan barcode on incoming item (must not match any existing stock items)" msgstr "" -#: templates/js/translated/purchase_order.js:1479 +#: templates/js/translated/purchase_order.js:1463 msgid "Invalid barcode data" msgstr "" -#: templates/js/translated/purchase_order.js:1751 +#: templates/js/translated/purchase_order.js:1735 #: templates/js/translated/return_order.js:285 -#: templates/js/translated/sales_order.js:810 -#: templates/js/translated/sales_order.js:1034 +#: templates/js/translated/sales_order.js:769 +#: templates/js/translated/sales_order.js:1007 msgid "Order is overdue" msgstr "" -#: templates/js/translated/purchase_order.js:1913 +#: templates/js/translated/purchase_order.js:1897 msgid "All selected Line items will be deleted" msgstr "" -#: templates/js/translated/purchase_order.js:1931 +#: templates/js/translated/purchase_order.js:1915 msgid "Delete selected Line items?" msgstr "" -#: templates/js/translated/purchase_order.js:1986 -#: templates/js/translated/sales_order.js:2106 +#: templates/js/translated/purchase_order.js:1970 +#: templates/js/translated/sales_order.js:2087 msgid "Duplicate Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2001 +#: templates/js/translated/purchase_order.js:1985 #: templates/js/translated/return_order.js:475 #: templates/js/translated/return_order.js:667 -#: templates/js/translated/sales_order.js:2119 +#: templates/js/translated/sales_order.js:2100 msgid "Edit Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2012 +#: templates/js/translated/purchase_order.js:1996 #: templates/js/translated/return_order.js:680 -#: templates/js/translated/sales_order.js:2130 +#: templates/js/translated/sales_order.js:2111 msgid "Delete Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2294 -#: templates/js/translated/sales_order.js:2060 +#: templates/js/translated/purchase_order.js:2278 +#: templates/js/translated/sales_order.js:2041 msgid "Duplicate line item" msgstr "" -#: templates/js/translated/purchase_order.js:2295 +#: templates/js/translated/purchase_order.js:2279 #: templates/js/translated/return_order.js:799 -#: templates/js/translated/sales_order.js:2061 +#: templates/js/translated/sales_order.js:2042 msgid "Edit line item" msgstr "" -#: templates/js/translated/purchase_order.js:2296 +#: templates/js/translated/purchase_order.js:2280 #: templates/js/translated/return_order.js:803 -#: templates/js/translated/sales_order.js:2067 +#: templates/js/translated/sales_order.js:2048 msgid "Delete line item" msgstr "" -#: templates/js/translated/report.js:49 -msgid "Print Report" -msgstr "" - #: templates/js/translated/report.js:68 msgid "Report print successful" msgstr "" @@ -13878,7 +14219,7 @@ msgid "No return orders found" msgstr "" #: templates/js/translated/return_order.js:299 -#: templates/js/translated/sales_order.js:824 +#: templates/js/translated/sales_order.js:783 msgid "Invalid Customer" msgstr "" @@ -13887,7 +14228,7 @@ msgid "Receive Return Order Items" msgstr "" #: templates/js/translated/return_order.js:691 -#: templates/js/translated/sales_order.js:2267 +#: templates/js/translated/sales_order.js:2248 msgid "No matching line items" msgstr "" @@ -13903,188 +14244,181 @@ msgstr "" msgid "Edit Sales Order" msgstr "" -#: templates/js/translated/sales_order.js:291 +#: templates/js/translated/sales_order.js:288 msgid "No stock items have been allocated to this shipment" msgstr "" -#: templates/js/translated/sales_order.js:296 -msgid "The following stock items will be shipped" -msgstr "" - -#: templates/js/translated/sales_order.js:336 +#: templates/js/translated/sales_order.js:294 msgid "Complete Shipment" msgstr "" -#: templates/js/translated/sales_order.js:360 +#: templates/js/translated/sales_order.js:318 msgid "Confirm Shipment" msgstr "" -#: templates/js/translated/sales_order.js:416 +#: templates/js/translated/sales_order.js:375 msgid "No pending shipments found" msgstr "" -#: templates/js/translated/sales_order.js:420 +#: templates/js/translated/sales_order.js:379 msgid "No stock items have been allocated to pending shipments" msgstr "" -#: templates/js/translated/sales_order.js:430 +#: templates/js/translated/sales_order.js:389 msgid "Complete Shipments" msgstr "" -#: templates/js/translated/sales_order.js:452 +#: templates/js/translated/sales_order.js:411 msgid "Skip" msgstr "" -#: templates/js/translated/sales_order.js:484 +#: templates/js/translated/sales_order.js:443 msgid "Ship Sales Order" msgstr "" -#: templates/js/translated/sales_order.js:500 +#: templates/js/translated/sales_order.js:459 msgid "Ship this order?" msgstr "" -#: templates/js/translated/sales_order.js:506 +#: templates/js/translated/sales_order.js:465 msgid "Order cannot be shipped as there are incomplete shipments" msgstr "" -#: templates/js/translated/sales_order.js:513 +#: templates/js/translated/sales_order.js:472 msgid "This order has line items which have not been completed." msgstr "" -#: templates/js/translated/sales_order.js:514 +#: templates/js/translated/sales_order.js:473 msgid "Shipping this order means that the order and line items will no longer be editable." msgstr "" -#: templates/js/translated/sales_order.js:572 +#: templates/js/translated/sales_order.js:531 msgid "Issue this Sales Order?" msgstr "" -#: templates/js/translated/sales_order.js:577 +#: templates/js/translated/sales_order.js:536 msgid "Issue Sales Order" msgstr "" -#: templates/js/translated/sales_order.js:596 +#: templates/js/translated/sales_order.js:555 msgid "Cancel Sales Order" msgstr "" -#: templates/js/translated/sales_order.js:601 +#: templates/js/translated/sales_order.js:560 msgid "Cancelling this order means that the order will no longer be editable." msgstr "" -#: templates/js/translated/sales_order.js:655 +#: templates/js/translated/sales_order.js:614 msgid "Create New Shipment" msgstr "" -#: templates/js/translated/sales_order.js:764 +#: templates/js/translated/sales_order.js:723 msgid "No sales orders found" msgstr "" -#: templates/js/translated/sales_order.js:944 +#: templates/js/translated/sales_order.js:907 msgid "Edit shipment" msgstr "" -#: templates/js/translated/sales_order.js:947 +#: templates/js/translated/sales_order.js:910 msgid "Complete shipment" msgstr "" -#: templates/js/translated/sales_order.js:952 +#: templates/js/translated/sales_order.js:915 msgid "Delete shipment" msgstr "" -#: templates/js/translated/sales_order.js:969 +#: templates/js/translated/sales_order.js:932 msgid "Edit Shipment" msgstr "" -#: templates/js/translated/sales_order.js:984 +#: templates/js/translated/sales_order.js:947 msgid "Delete Shipment" msgstr "" -#: templates/js/translated/sales_order.js:1017 +#: templates/js/translated/sales_order.js:989 msgid "No matching shipments found" msgstr "" -#: templates/js/translated/sales_order.js:1042 +#: templates/js/translated/sales_order.js:1015 msgid "Shipment Reference" msgstr "" -#: templates/js/translated/sales_order.js:1066 -#: templates/js/translated/sales_order.js:1565 +#: templates/js/translated/sales_order.js:1032 +#: templates/js/translated/sales_order.js:1531 msgid "Not shipped" msgstr "" -#: templates/js/translated/sales_order.js:1084 +#: templates/js/translated/sales_order.js:1050 msgid "Tracking" msgstr "" -#: templates/js/translated/sales_order.js:1088 +#: templates/js/translated/sales_order.js:1054 msgid "Invoice" msgstr "" -#: templates/js/translated/sales_order.js:1255 +#: templates/js/translated/sales_order.js:1221 msgid "Add Shipment" msgstr "" -#: templates/js/translated/sales_order.js:1306 +#: templates/js/translated/sales_order.js:1272 msgid "Confirm stock allocation" msgstr "" -#: templates/js/translated/sales_order.js:1307 +#: templates/js/translated/sales_order.js:1273 msgid "Allocate Stock Items to Sales Order" msgstr "" -#: templates/js/translated/sales_order.js:1513 +#: templates/js/translated/sales_order.js:1479 msgid "No sales order allocations found" msgstr "" -#: templates/js/translated/sales_order.js:1605 +#: templates/js/translated/sales_order.js:1571 msgid "Edit Stock Allocation" msgstr "" -#: templates/js/translated/sales_order.js:1619 +#: templates/js/translated/sales_order.js:1585 msgid "Confirm Delete Operation" msgstr "" -#: templates/js/translated/sales_order.js:1620 +#: templates/js/translated/sales_order.js:1586 msgid "Delete Stock Allocation" msgstr "" -#: templates/js/translated/sales_order.js:1659 -#: templates/js/translated/sales_order.js:1746 +#: templates/js/translated/sales_order.js:1640 +#: templates/js/translated/sales_order.js:1727 #: templates/js/translated/stock.js:1861 msgid "Shipped to customer" msgstr "" -#: templates/js/translated/sales_order.js:1667 -#: templates/js/translated/sales_order.js:1755 +#: templates/js/translated/sales_order.js:1648 +#: templates/js/translated/sales_order.js:1736 msgid "Stock location not specified" msgstr "" -#: templates/js/translated/sales_order.js:2044 -msgid "Allocate serial numbers" -msgstr "" - -#: templates/js/translated/sales_order.js:2048 -msgid "Purchase stock" -msgstr "" - -#: templates/js/translated/sales_order.js:2057 -#: templates/js/translated/sales_order.js:2245 -msgid "Calculate price" -msgstr "" - -#: templates/js/translated/sales_order.js:2071 -msgid "Cannot be deleted as items have been shipped" -msgstr "" - -#: templates/js/translated/sales_order.js:2074 -msgid "Cannot be deleted as items have been allocated" -msgstr "" - -#: templates/js/translated/sales_order.js:2145 +#: templates/js/translated/sales_order.js:2025 +#: templates/js/translated/sales_order.js:2126 msgid "Allocate Serial Numbers" msgstr "" -#: templates/js/translated/sales_order.js:2253 +#: templates/js/translated/sales_order.js:2029 +msgid "Purchase stock" +msgstr "" + +#: templates/js/translated/sales_order.js:2038 +#: templates/js/translated/sales_order.js:2226 +msgid "Calculate price" +msgstr "" + +#: templates/js/translated/sales_order.js:2052 +msgid "Cannot be deleted as items have been shipped" +msgstr "" + +#: templates/js/translated/sales_order.js:2055 +msgid "Cannot be deleted as items have been allocated" +msgstr "" + +#: templates/js/translated/sales_order.js:2234 msgid "Update Unit Price" msgstr "" @@ -14209,11 +14543,8 @@ msgid "Find Serial Number" msgstr "" #: templates/js/translated/stock.js:603 templates/js/translated/stock.js:604 -msgid "Enter serial number" -msgstr "" - #: templates/js/translated/stock.js:620 -msgid "Enter a serial number" +msgid "Enter serial number" msgstr "" #: templates/js/translated/stock.js:640 @@ -14284,7 +14615,7 @@ msgstr "" msgid "Add Stock" msgstr "" -#: templates/js/translated/stock.js:1049 users/models.py:396 +#: templates/js/translated/stock.js:1049 users/models.py:398 msgid "Add" msgstr "" @@ -14308,7 +14639,7 @@ msgstr "" msgid "Adjust packaging" msgstr "" -#: templates/js/translated/stock.js:1256 templates/js/translated/stock.js:3382 +#: templates/js/translated/stock.js:1256 templates/js/translated/stock.js:3383 msgid "Select Stock Items" msgstr "" @@ -14320,18 +14651,6 @@ msgstr "" msgid "Confirm stock adjustment" msgstr "" -#: templates/js/translated/stock.js:1448 -msgid "PASS" -msgstr "" - -#: templates/js/translated/stock.js:1450 -msgid "FAIL" -msgstr "" - -#: templates/js/translated/stock.js:1455 -msgid "NO RESULT" -msgstr "" - #: templates/js/translated/stock.js:1535 msgid "Pass test" msgstr "" @@ -14388,216 +14707,216 @@ msgstr "" msgid "No stock location set" msgstr "" -#: templates/js/translated/stock.js:1927 +#: templates/js/translated/stock.js:1928 msgid "Change stock status" msgstr "" -#: templates/js/translated/stock.js:1936 +#: templates/js/translated/stock.js:1937 msgid "Merge stock" msgstr "" -#: templates/js/translated/stock.js:1985 +#: templates/js/translated/stock.js:1986 msgid "Delete stock" msgstr "" -#: templates/js/translated/stock.js:2038 +#: templates/js/translated/stock.js:2039 msgid "stock items" msgstr "" -#: templates/js/translated/stock.js:2043 +#: templates/js/translated/stock.js:2044 msgid "Scan to location" msgstr "" -#: templates/js/translated/stock.js:2054 +#: templates/js/translated/stock.js:2055 msgid "Stock Actions" msgstr "" -#: templates/js/translated/stock.js:2098 +#: templates/js/translated/stock.js:2099 msgid "Load installed items" msgstr "" -#: templates/js/translated/stock.js:2176 +#: templates/js/translated/stock.js:2177 msgid "Stock item is in production" msgstr "" -#: templates/js/translated/stock.js:2181 +#: templates/js/translated/stock.js:2182 msgid "Stock item assigned to sales order" msgstr "" -#: templates/js/translated/stock.js:2184 +#: templates/js/translated/stock.js:2185 msgid "Stock item assigned to customer" msgstr "" -#: templates/js/translated/stock.js:2187 +#: templates/js/translated/stock.js:2188 msgid "Serialized stock item has been allocated" msgstr "" -#: templates/js/translated/stock.js:2189 +#: templates/js/translated/stock.js:2190 msgid "Stock item has been fully allocated" msgstr "" -#: templates/js/translated/stock.js:2191 +#: templates/js/translated/stock.js:2192 msgid "Stock item has been partially allocated" msgstr "" -#: templates/js/translated/stock.js:2194 +#: templates/js/translated/stock.js:2195 msgid "Stock item has been installed in another item" msgstr "" -#: templates/js/translated/stock.js:2196 +#: templates/js/translated/stock.js:2197 msgid "Stock item has been consumed by a build order" msgstr "" -#: templates/js/translated/stock.js:2200 +#: templates/js/translated/stock.js:2201 msgid "Stock item has expired" msgstr "" -#: templates/js/translated/stock.js:2202 +#: templates/js/translated/stock.js:2203 msgid "Stock item will expire soon" msgstr "" -#: templates/js/translated/stock.js:2207 +#: templates/js/translated/stock.js:2208 msgid "Stock item has been rejected" msgstr "" -#: templates/js/translated/stock.js:2209 +#: templates/js/translated/stock.js:2210 msgid "Stock item is lost" msgstr "" -#: templates/js/translated/stock.js:2211 +#: templates/js/translated/stock.js:2212 msgid "Stock item is destroyed" msgstr "" -#: templates/js/translated/stock.js:2215 +#: templates/js/translated/stock.js:2216 #: templates/js/translated/table_filters.js:357 msgid "Depleted" msgstr "" -#: templates/js/translated/stock.js:2380 +#: templates/js/translated/stock.js:2381 msgid "Supplier part not specified" msgstr "" -#: templates/js/translated/stock.js:2427 +#: templates/js/translated/stock.js:2428 msgid "Stock Value" msgstr "" -#: templates/js/translated/stock.js:2555 +#: templates/js/translated/stock.js:2556 msgid "No stock items matching query" msgstr "" -#: templates/js/translated/stock.js:2658 +#: templates/js/translated/stock.js:2659 msgid "stock locations" msgstr "" -#: templates/js/translated/stock.js:2813 +#: templates/js/translated/stock.js:2814 msgid "Load Sublocations" msgstr "" -#: templates/js/translated/stock.js:2930 +#: templates/js/translated/stock.js:2931 msgid "Details" msgstr "" -#: templates/js/translated/stock.js:2934 +#: templates/js/translated/stock.js:2935 msgid "No changes" msgstr "" -#: templates/js/translated/stock.js:2946 +#: templates/js/translated/stock.js:2947 msgid "Part information unavailable" msgstr "" -#: templates/js/translated/stock.js:2968 +#: templates/js/translated/stock.js:2969 msgid "Location no longer exists" msgstr "" -#: templates/js/translated/stock.js:2985 +#: templates/js/translated/stock.js:2986 msgid "Build order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3000 +#: templates/js/translated/stock.js:3001 msgid "Purchase order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3017 +#: templates/js/translated/stock.js:3018 msgid "Sales Order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3034 +#: templates/js/translated/stock.js:3035 msgid "Return Order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3053 +#: templates/js/translated/stock.js:3054 msgid "Customer no longer exists" msgstr "" -#: templates/js/translated/stock.js:3071 +#: templates/js/translated/stock.js:3072 msgid "Stock item no longer exists" msgstr "" -#: templates/js/translated/stock.js:3089 +#: templates/js/translated/stock.js:3090 msgid "Added" msgstr "" -#: templates/js/translated/stock.js:3097 +#: templates/js/translated/stock.js:3098 msgid "Removed" msgstr "" -#: templates/js/translated/stock.js:3169 +#: templates/js/translated/stock.js:3170 msgid "No installed items" msgstr "" -#: templates/js/translated/stock.js:3223 templates/js/translated/stock.js:3259 +#: templates/js/translated/stock.js:3224 templates/js/translated/stock.js:3260 msgid "Uninstall Stock Item" msgstr "" -#: templates/js/translated/stock.js:3280 +#: templates/js/translated/stock.js:3281 msgid "Select stock item to uninstall" msgstr "" -#: templates/js/translated/stock.js:3301 +#: templates/js/translated/stock.js:3302 msgid "Install another stock item into this item" msgstr "" -#: templates/js/translated/stock.js:3302 +#: templates/js/translated/stock.js:3303 msgid "Stock items can only be installed if they meet the following criteria" msgstr "" -#: templates/js/translated/stock.js:3304 +#: templates/js/translated/stock.js:3305 msgid "The Stock Item links to a Part which is the BOM for this Stock Item" msgstr "" -#: templates/js/translated/stock.js:3305 +#: templates/js/translated/stock.js:3306 msgid "The Stock Item is currently available in stock" msgstr "" -#: templates/js/translated/stock.js:3306 +#: templates/js/translated/stock.js:3307 msgid "The Stock Item is not already installed in another item" msgstr "" -#: templates/js/translated/stock.js:3307 +#: templates/js/translated/stock.js:3308 msgid "The Stock Item is tracked by either a batch code or serial number" msgstr "" -#: templates/js/translated/stock.js:3320 +#: templates/js/translated/stock.js:3321 msgid "Select part to install" msgstr "" -#: templates/js/translated/stock.js:3383 +#: templates/js/translated/stock.js:3384 msgid "Select one or more stock items" msgstr "" -#: templates/js/translated/stock.js:3396 +#: templates/js/translated/stock.js:3397 msgid "Selected stock items" msgstr "" -#: templates/js/translated/stock.js:3400 +#: templates/js/translated/stock.js:3401 msgid "Change Stock Status" msgstr "" -#: templates/js/translated/stock.js:3477 +#: templates/js/translated/stock.js:3478 msgid "This week" msgstr "" -#: templates/js/translated/stock.js:3485 +#: templates/js/translated/stock.js:3486 msgid "This month" msgstr "" @@ -14734,10 +15053,6 @@ msgstr "" msgid "Show items which are in production" msgstr "" -#: templates/js/translated/table_filters.js:372 -msgid "Include Variants" -msgstr "" - #: templates/js/translated/table_filters.js:373 msgid "Include stock items for variant parts" msgstr "" @@ -15012,10 +15327,6 @@ msgstr "" msgid "An error occurred while attempting to login via your social network account." msgstr "" -#: templates/socialaccount/authentication_error.html:13 -msgid "Contact your system administrator for further information." -msgstr "" - #: templates/socialaccount/login.html:13 #, python-format msgid "Connect %(provider)s" @@ -15141,27 +15452,27 @@ msgstr "" msgid "No" msgstr "" -#: users/admin.py:104 +#: users/admin.py:101 msgid "Users" msgstr "" -#: users/admin.py:105 +#: users/admin.py:102 msgid "Select which users are assigned to this group" msgstr "" -#: users/admin.py:249 +#: users/admin.py:246 msgid "The following users are members of multiple groups" msgstr "" -#: users/admin.py:283 +#: users/admin.py:280 msgid "Personal info" msgstr "" -#: users/admin.py:285 +#: users/admin.py:282 msgid "Permissions" msgstr "" -#: users/admin.py:288 +#: users/admin.py:285 msgid "Important dates" msgstr "" @@ -15205,35 +15516,35 @@ msgstr "" msgid "Revoked" msgstr "" -#: users/models.py:379 +#: users/models.py:381 msgid "Permission set" msgstr "" -#: users/models.py:388 +#: users/models.py:390 msgid "Group" msgstr "" -#: users/models.py:392 +#: users/models.py:394 msgid "View" msgstr "" -#: users/models.py:392 +#: users/models.py:394 msgid "Permission to view items" msgstr "" -#: users/models.py:396 +#: users/models.py:398 msgid "Permission to add items" msgstr "" -#: users/models.py:400 +#: users/models.py:402 msgid "Change" msgstr "" -#: users/models.py:402 +#: users/models.py:404 msgid "Permissions to edit items" msgstr "" -#: users/models.py:408 +#: users/models.py:410 msgid "Permission to delete items" msgstr "" diff --git a/src/backend/InvenTree/locale/nl/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/nl/LC_MESSAGES/django.po index a39ac28d76..7b0ef6ea39 100644 --- a/src/backend/InvenTree/locale/nl/LC_MESSAGES/django.po +++ b/src/backend/InvenTree/locale/nl/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-08-20 01:22+0000\n" -"PO-Revision-Date: 2024-08-20 19:51\n" +"POT-Creation-Date: 2024-11-04 03:11+0000\n" +"PO-Revision-Date: 2024-11-04 03:14\n" "Last-Translator: \n" "Language-Team: Dutch\n" "Language: nl_NL\n" @@ -14,81 +14,89 @@ msgstr "" "X-Crowdin-Project: inventree\n" "X-Crowdin-Project-ID: 452300\n" "X-Crowdin-Language: nl\n" -"X-Crowdin-File: /[inventree.InvenTree] l10/src/backend/InvenTree/locale/en/LC_MESSAGES/django.po\n" -"X-Crowdin-File-ID: 216\n" +"X-Crowdin-File: /src/backend/InvenTree/locale/en/LC_MESSAGES/django.po\n" +"X-Crowdin-File-ID: 250\n" -#: InvenTree/api.py:269 +#: InvenTree/api.py:270 msgid "API endpoint not found" msgstr "API eindpunt niet gevonden" -#: InvenTree/api.py:502 +#: InvenTree/api.py:387 +msgid "Invalid items list provided" +msgstr "Ongeldige items lijst verstrekt" + +#: InvenTree/api.py:396 +msgid "Invalid filters provided" +msgstr "Ongeldige filters opgegeven" + +#: InvenTree/api.py:401 +msgid "No items found to delete" +msgstr "Geen items gevonden om te verwijderen" + +#: InvenTree/api.py:515 msgid "User does not have permission to view this model" msgstr "Gebruiker heeft geen rechten om dit model te bekijken" -#: InvenTree/conversion.py:160 +#: InvenTree/conversion.py:161 #, python-brace-format msgid "Invalid unit provided ({unit})" -msgstr "" +msgstr "Ongeldige eenheid opgegeven ({unit})" -#: InvenTree/conversion.py:177 +#: InvenTree/conversion.py:178 msgid "No value provided" msgstr "Geen waarde opgegeven" -#: InvenTree/conversion.py:204 +#: InvenTree/conversion.py:205 #, python-brace-format msgid "Could not convert {original} to {unit}" msgstr "{original} kon niet worden omgezet naar {unit}" -#: InvenTree/conversion.py:206 -msgid "Invalid quantity supplied" -msgstr "Ongeldige hoeveelheid ingegeven" +#: InvenTree/conversion.py:207 InvenTree/conversion.py:221 +#: InvenTree/helpers.py:505 order/models.py:589 order/models.py:832 +msgid "Invalid quantity provided" +msgstr "Ongeldige hoeveelheid ingevoerd" -#: InvenTree/conversion.py:220 -#, python-brace-format -msgid "Invalid quantity supplied ({exc})" -msgstr "Ongeldige hoeveelheid ingegeven ({exc})" - -#: InvenTree/exceptions.py:108 +#: InvenTree/exceptions.py:104 msgid "Error details can be found in the admin panel" msgstr "Error details kunnen worden gevonden in het admin scherm" -#: InvenTree/fields.py:136 +#: InvenTree/fields.py:135 msgid "Enter date" msgstr "Voer datum in" -#: InvenTree/fields.py:205 InvenTree/models.py:929 build/serializers.py:468 -#: build/serializers.py:546 build/templates/build/sidebar.html:29 -#: company/models.py:836 +#: InvenTree/fields.py:204 InvenTree/models.py:928 build/serializers.py:512 +#: build/serializers.py:590 build/templates/build/sidebar.html:29 +#: company/models.py:833 #: company/templates/company/manufacturer_part_sidebar.html:11 #: company/templates/company/sidebar.html:37 -#: company/templates/company/supplier_part_sidebar.html:11 order/models.py:1380 +#: company/templates/company/supplier_part_sidebar.html:11 order/models.py:1397 #: order/templates/order/po_sidebar.html:11 #: order/templates/order/return_order_sidebar.html:9 #: order/templates/order/so_sidebar.html:17 part/admin.py:59 -#: part/models.py:3297 part/templates/part/part_sidebar.html:65 +#: part/models.py:3348 part/templates/part/part_sidebar.html:65 #: report/templates/report/inventree_build_order_report.html:172 -#: stock/admin.py:230 stock/models.py:2375 stock/models.py:2563 -#: stock/serializers.py:698 stock/serializers.py:856 stock/serializers.py:982 -#: stock/serializers.py:1032 stock/serializers.py:1343 -#: stock/serializers.py:1432 stock/serializers.py:1597 +#: stock/admin.py:231 stock/models.py:2494 stock/models.py:2679 +#: stock/serializers.py:725 stock/serializers.py:887 stock/serializers.py:1013 +#: stock/serializers.py:1063 stock/serializers.py:1374 +#: stock/serializers.py:1463 stock/serializers.py:1628 #: stock/templates/stock/stock_sidebar.html:25 #: templates/js/translated/barcode.js:143 templates/js/translated/bom.js:1265 -#: templates/js/translated/company.js:1684 templates/js/translated/order.js:372 +#: templates/js/translated/company.js:1685 templates/js/translated/order.js:372 #: templates/js/translated/part.js:1087 -#: templates/js/translated/purchase_order.js:2270 +#: templates/js/translated/purchase_order.js:2254 #: templates/js/translated/return_order.js:774 -#: templates/js/translated/sales_order.js:1103 -#: templates/js/translated/sales_order.js:2018 -#: templates/js/translated/stock.js:1621 templates/js/translated/stock.js:2513 +#: templates/js/translated/sales_order.js:1069 +#: templates/js/translated/sales_order.js:1999 +#: templates/js/translated/stock.js:1621 templates/js/translated/stock.js:2514 msgid "Notes" msgstr "Opmerkingen" -#: InvenTree/format.py:164 +#: InvenTree/format.py:162 #, python-brace-format msgid "Value '{name}' does not appear in pattern format" msgstr "Waarde '{name}' verschijnt niet in patroonformaat" -#: InvenTree/format.py:175 +#: InvenTree/format.py:173 msgid "Provided value does not match required pattern: " msgstr "Opgegeven waarde komt niet overeen met vereist patroon: " @@ -126,403 +134,415 @@ msgstr "Er moet hetzelfde e-mailadres ingevoerd worden." #: InvenTree/forms.py:221 msgid "MFA Registration is disabled." -msgstr "" +msgstr "Registratie is uitgeschakeld." #: InvenTree/forms.py:259 InvenTree/forms.py:267 msgid "The provided primary email address is not valid." msgstr "Het opgegeven primaire e-mailadres is ongeldig." -#: InvenTree/forms.py:274 +#: InvenTree/forms.py:273 msgid "The provided email domain is not approved." msgstr "Het ingevoerde e-maildomein is niet goedgekeurd." -#: InvenTree/forms.py:403 +#: InvenTree/forms.py:402 msgid "Registration is disabled." msgstr "Registratie is uitgeschakeld." -#: InvenTree/helpers.py:491 order/models.py:567 order/models.py:810 -msgid "Invalid quantity provided" -msgstr "Ongeldige hoeveelheid ingevoerd" +#: InvenTree/helpers.py:509 +msgid "Cannot serialize more than 1000 items at once" +msgstr "Kan niet meer dan 1000 items tegelijk serienummers geven." -#: InvenTree/helpers.py:499 +#: InvenTree/helpers.py:515 msgid "Empty serial number string" msgstr "Leeg serienummer" -#: InvenTree/helpers.py:528 +#: InvenTree/helpers.py:544 msgid "Duplicate serial" msgstr "Duplicaat serienummer" -#: InvenTree/helpers.py:560 InvenTree/helpers.py:603 +#: InvenTree/helpers.py:576 InvenTree/helpers.py:619 InvenTree/helpers.py:637 +#: InvenTree/helpers.py:644 InvenTree/helpers.py:663 #, python-brace-format -msgid "Invalid group range: {group}" -msgstr "" +msgid "Invalid group: {group}" +msgstr "Ongeldige groep: {group}" -#: InvenTree/helpers.py:591 +#: InvenTree/helpers.py:607 #, python-brace-format msgid "Group range {group} exceeds allowed quantity ({expected_quantity})" -msgstr "" +msgstr "Groepsbereik {group} overschrijdt toegestane hoeveelheid ({expected_quantity})" -#: InvenTree/helpers.py:621 InvenTree/helpers.py:628 InvenTree/helpers.py:647 -#, python-brace-format -msgid "Invalid group sequence: {group}" -msgstr "" - -#: InvenTree/helpers.py:657 +#: InvenTree/helpers.py:673 msgid "No serial numbers found" msgstr "Geen serienummers gevonden" -#: InvenTree/helpers.py:662 +#: InvenTree/helpers.py:678 msgid "Number of unique serial numbers ({len(serials)}) must match quantity ({expected_quantity})" -msgstr "" +msgstr "Hoeveelheid van unieke serienummers ({s}) moet overeenkomen met de hoeveelheid ({q})" -#: InvenTree/helpers.py:780 +#: InvenTree/helpers.py:796 msgid "Remove HTML tags from this value" msgstr "Verwijder HTML tags van deze waarde" -#: InvenTree/helpers_model.py:133 +#: InvenTree/helpers.py:881 +msgid "Data contains prohibited markdown content" +msgstr "Gegevens bevatten verboden markdown inhoud" + +#: InvenTree/helpers_model.py:130 msgid "Connection error" msgstr "Verbindingsfout" -#: InvenTree/helpers_model.py:138 InvenTree/helpers_model.py:145 +#: InvenTree/helpers_model.py:135 InvenTree/helpers_model.py:142 msgid "Server responded with invalid status code" msgstr "Server reageerde met ongeldige statuscode" -#: InvenTree/helpers_model.py:141 +#: InvenTree/helpers_model.py:138 msgid "Exception occurred" msgstr "Uitzondering opgetreden" -#: InvenTree/helpers_model.py:151 +#: InvenTree/helpers_model.py:148 msgid "Server responded with invalid Content-Length value" msgstr "Server reageerde met ongeldige Content-Length waarde" -#: InvenTree/helpers_model.py:154 +#: InvenTree/helpers_model.py:151 msgid "Image size is too large" msgstr "Afbeeldingsformaat is te groot" -#: InvenTree/helpers_model.py:166 +#: InvenTree/helpers_model.py:163 msgid "Image download exceeded maximum size" msgstr "Beelddownload overschrijdt de maximale grootte" -#: InvenTree/helpers_model.py:171 +#: InvenTree/helpers_model.py:168 msgid "Remote server returned empty response" msgstr "Externe server heeft lege reactie teruggegeven" -#: InvenTree/helpers_model.py:179 +#: InvenTree/helpers_model.py:176 msgid "Supplied URL is not a valid image file" msgstr "Opgegeven URL is geen geldig afbeeldingsbestand" -#: InvenTree/locales.py:18 +#: InvenTree/locales.py:20 msgid "Arabic" -msgstr "" +msgstr "Arabisch" -#: InvenTree/locales.py:19 +#: InvenTree/locales.py:21 msgid "Bulgarian" msgstr "Bulgaars" -#: InvenTree/locales.py:20 +#: InvenTree/locales.py:22 msgid "Czech" msgstr "Tsjechisch" -#: InvenTree/locales.py:21 +#: InvenTree/locales.py:23 msgid "Danish" msgstr "Deens" -#: InvenTree/locales.py:22 +#: InvenTree/locales.py:24 msgid "German" msgstr "Duits" -#: InvenTree/locales.py:23 +#: InvenTree/locales.py:25 msgid "Greek" msgstr "Grieks" -#: InvenTree/locales.py:24 +#: InvenTree/locales.py:26 msgid "English" msgstr "Engels" -#: InvenTree/locales.py:25 +#: InvenTree/locales.py:27 msgid "Spanish" msgstr "Spaans" -#: InvenTree/locales.py:26 +#: InvenTree/locales.py:28 msgid "Spanish (Mexican)" msgstr "Spaans (Mexicaans)" -#: InvenTree/locales.py:27 +#: InvenTree/locales.py:29 msgid "Estonian" -msgstr "" +msgstr "Estlands" -#: InvenTree/locales.py:28 +#: InvenTree/locales.py:30 msgid "Farsi / Persian" msgstr "Farsi / Perzisch" -#: InvenTree/locales.py:29 +#: InvenTree/locales.py:31 msgid "Finnish" msgstr "Fins" -#: InvenTree/locales.py:30 +#: InvenTree/locales.py:32 msgid "French" msgstr "Frans" -#: InvenTree/locales.py:31 +#: InvenTree/locales.py:33 msgid "Hebrew" msgstr "Hebreeuws" -#: InvenTree/locales.py:32 +#: InvenTree/locales.py:34 msgid "Hindi" -msgstr "" +msgstr "Hindi" -#: InvenTree/locales.py:33 +#: InvenTree/locales.py:35 msgid "Hungarian" msgstr "Hongaars" -#: InvenTree/locales.py:34 +#: InvenTree/locales.py:36 msgid "Italian" msgstr "Italiaans" -#: InvenTree/locales.py:35 +#: InvenTree/locales.py:37 msgid "Japanese" msgstr "Japans" -#: InvenTree/locales.py:36 +#: InvenTree/locales.py:38 msgid "Korean" msgstr "Koreaans" -#: InvenTree/locales.py:37 -msgid "Latvian" -msgstr "" +#: InvenTree/locales.py:39 +msgid "Lithuanian" +msgstr "Litouws" -#: InvenTree/locales.py:38 +#: InvenTree/locales.py:40 +msgid "Latvian" +msgstr "Lets" + +#: InvenTree/locales.py:41 msgid "Dutch" msgstr "Nederlands" -#: InvenTree/locales.py:39 +#: InvenTree/locales.py:42 msgid "Norwegian" msgstr "Noors" -#: InvenTree/locales.py:40 +#: InvenTree/locales.py:43 msgid "Polish" msgstr "Pools" -#: InvenTree/locales.py:41 +#: InvenTree/locales.py:44 msgid "Portuguese" msgstr "Portugees" -#: InvenTree/locales.py:42 +#: InvenTree/locales.py:45 msgid "Portuguese (Brazilian)" msgstr "Portugees (Braziliaans)" -#: InvenTree/locales.py:43 +#: InvenTree/locales.py:46 msgid "Romanian" -msgstr "" +msgstr "Roemeens" -#: InvenTree/locales.py:44 +#: InvenTree/locales.py:47 msgid "Russian" msgstr "Russisch" -#: InvenTree/locales.py:45 +#: InvenTree/locales.py:48 msgid "Slovak" -msgstr "" +msgstr "Slowaaks" -#: InvenTree/locales.py:46 +#: InvenTree/locales.py:49 msgid "Slovenian" msgstr "Sloveens" -#: InvenTree/locales.py:47 +#: InvenTree/locales.py:50 msgid "Serbian" msgstr "Servisch" -#: InvenTree/locales.py:48 +#: InvenTree/locales.py:51 msgid "Swedish" msgstr "Zweeds" -#: InvenTree/locales.py:49 +#: InvenTree/locales.py:52 msgid "Thai" msgstr "Thais" -#: InvenTree/locales.py:50 +#: InvenTree/locales.py:53 msgid "Turkish" msgstr "Turks" -#: InvenTree/locales.py:51 +#: InvenTree/locales.py:54 msgid "Ukrainian" -msgstr "" +msgstr "Oekraïnes" -#: InvenTree/locales.py:52 +#: InvenTree/locales.py:55 msgid "Vietnamese" msgstr "Vietnamees" -#: InvenTree/locales.py:53 +#: InvenTree/locales.py:56 msgid "Chinese (Simplified)" msgstr "Chinees (vereenvoudigd)" -#: InvenTree/locales.py:54 +#: InvenTree/locales.py:57 msgid "Chinese (Traditional)" msgstr "Chinees (traditioneel)" #: InvenTree/magic_login.py:28 -#, python-brace-format -msgid "[{site_name}] Log in to the app" -msgstr "" +msgid "Log in to the app" +msgstr "Log in op de app" -#: InvenTree/magic_login.py:38 InvenTree/serializers.py:415 -#: company/models.py:136 company/templates/company/company_base.html:138 +#: InvenTree/magic_login.py:38 InvenTree/serializers.py:416 +#: company/models.py:133 company/templates/company/company_base.html:138 #: templates/InvenTree/settings/user.html:49 -#: templates/js/translated/company.js:677 +#: templates/js/translated/company.js:678 msgid "Email" -msgstr "" +msgstr "E-mail" -#: InvenTree/models.py:103 +#: InvenTree/models.py:105 msgid "Error running plugin validation" -msgstr "" +msgstr "Fout bij uitvoeren plug-in validatie" -#: InvenTree/models.py:172 +#: InvenTree/models.py:174 msgid "Metadata must be a python dict object" msgstr "Metadata moeten een python dict object zijn" -#: InvenTree/models.py:178 +#: InvenTree/models.py:180 msgid "Plugin Metadata" -msgstr "" +msgstr "Plug-in metadata" -#: InvenTree/models.py:179 +#: InvenTree/models.py:181 msgid "JSON metadata field, for use by external plugins" msgstr "JSON metadata veld, voor gebruik door externe plugins" -#: InvenTree/models.py:409 +#: InvenTree/models.py:408 msgid "Improperly formatted pattern" msgstr "Onjuist opgemaakt patroon" -#: InvenTree/models.py:416 +#: InvenTree/models.py:415 msgid "Unknown format key specified" msgstr "Onbekende opmaaksleutel gespecificeerd" -#: InvenTree/models.py:422 +#: InvenTree/models.py:421 msgid "Missing required format key" msgstr "Vereiste opmaaksleutel ontbreekt" -#: InvenTree/models.py:433 +#: InvenTree/models.py:432 msgid "Reference field cannot be empty" msgstr "Referentieveld mag niet leeg zijn" -#: InvenTree/models.py:441 +#: InvenTree/models.py:440 msgid "Reference must match required pattern" msgstr "Referentie moet overeenkomen met verplicht patroon" -#: InvenTree/models.py:472 +#: InvenTree/models.py:471 msgid "Reference number is too large" msgstr "Referentienummer is te groot" -#: InvenTree/models.py:723 +#: InvenTree/models.py:722 msgid "Duplicate names cannot exist under the same parent" msgstr "Dubbele namen kunnen niet bestaan onder hetzelfde bovenliggende object" -#: InvenTree/models.py:740 +#: InvenTree/models.py:739 msgid "Invalid choice" msgstr "Ongeldige keuze" -#: InvenTree/models.py:770 common/models.py:2702 common/models.py:3132 -#: common/serializers.py:412 company/models.py:593 machine/models.py:24 -#: part/models.py:983 part/models.py:3764 plugin/models.py:51 -#: report/models.py:149 stock/models.py:77 +#: InvenTree/models.py:769 common/models.py:2766 common/models.py:3193 +#: common/models.py:3413 common/serializers.py:460 company/models.py:590 +#: machine/models.py:24 part/models.py:1044 part/models.py:3815 +#: plugin/models.py:51 report/models.py:149 stock/models.py:83 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/notifications.html:17 #: templates/InvenTree/settings/plugin.html:83 #: templates/InvenTree/settings/plugin_settings.html:22 #: templates/InvenTree/settings/settings_staff_js.html:67 #: templates/InvenTree/settings/settings_staff_js.html:454 -#: templates/js/translated/company.js:676 -#: templates/js/translated/company.js:724 -#: templates/js/translated/company.js:913 -#: templates/js/translated/company.js:1165 -#: templates/js/translated/company.js:1413 templates/js/translated/part.js:1193 +#: templates/js/translated/company.js:677 +#: templates/js/translated/company.js:725 +#: templates/js/translated/company.js:914 +#: templates/js/translated/company.js:1166 +#: templates/js/translated/company.js:1414 templates/js/translated/part.js:1193 #: templates/js/translated/part.js:1481 templates/js/translated/part.js:1617 -#: templates/js/translated/part.js:2768 templates/js/translated/stock.js:2801 +#: templates/js/translated/part.js:2768 templates/js/translated/stock.js:2802 msgid "Name" msgstr "Naam" -#: InvenTree/models.py:776 build/models.py:250 -#: build/templates/build/detail.html:24 common/models.py:156 -#: company/models.py:521 company/models.py:827 +#: InvenTree/models.py:775 build/models.py:251 +#: build/templates/build/detail.html:24 common/models.py:159 +#: company/models.py:518 company/models.py:824 #: company/templates/company/company_base.html:77 #: company/templates/company/manufacturer_part.html:75 -#: company/templates/company/supplier_part.html:107 order/models.py:288 -#: order/models.py:1413 part/admin.py:305 part/admin.py:411 part/models.py:1006 -#: part/models.py:3779 part/templates/part/category.html:79 -#: part/templates/part/part_base.html:170 +#: company/templates/company/supplier_part.html:108 order/models.py:295 +#: order/models.py:1430 part/admin.py:305 part/admin.py:411 part/models.py:1067 +#: part/models.py:3830 part/templates/part/category.html:79 +#: part/templates/part/part_base.html:171 #: part/templates/part/part_scheduling.html:12 report/models.py:155 -#: report/models.py:509 report/models.py:535 +#: report/models.py:517 report/models.py:543 #: report/templates/report/inventree_build_order_report.html:117 -#: stock/admin.py:54 stock/models.py:83 stock/templates/stock/location.html:122 +#: stock/admin.py:54 stock/models.py:89 stock/templates/stock/location.html:123 #: templates/InvenTree/settings/notifications.html:19 #: templates/InvenTree/settings/plugin_settings.html:27 #: templates/InvenTree/settings/settings_staff_js.html:170 #: templates/InvenTree/settings/settings_staff_js.html:459 #: templates/js/translated/bom.js:633 templates/js/translated/bom.js:963 -#: templates/js/translated/build.js:2311 templates/js/translated/company.js:519 -#: templates/js/translated/company.js:1330 -#: templates/js/translated/company.js:1641 templates/js/translated/index.js:119 +#: templates/js/translated/build.js:2314 templates/js/translated/company.js:520 +#: templates/js/translated/company.js:1331 +#: templates/js/translated/company.js:1642 templates/js/translated/index.js:119 #: templates/js/translated/order.js:323 templates/js/translated/part.js:1245 #: templates/js/translated/part.js:1490 templates/js/translated/part.js:1628 #: templates/js/translated/part.js:1965 templates/js/translated/part.js:2361 #: templates/js/translated/part.js:2803 templates/js/translated/part.js:2915 #: templates/js/translated/plugin.js:80 -#: templates/js/translated/purchase_order.js:1776 -#: templates/js/translated/purchase_order.js:1919 -#: templates/js/translated/purchase_order.js:2092 +#: templates/js/translated/purchase_order.js:1760 +#: templates/js/translated/purchase_order.js:1903 +#: templates/js/translated/purchase_order.js:2076 #: templates/js/translated/return_order.js:313 -#: templates/js/translated/sales_order.js:838 -#: templates/js/translated/sales_order.js:1848 -#: templates/js/translated/stock.js:1600 templates/js/translated/stock.js:2143 -#: templates/js/translated/stock.js:2832 templates/js/translated/stock.js:2915 +#: templates/js/translated/sales_order.js:797 +#: templates/js/translated/sales_order.js:1829 +#: templates/js/translated/stock.js:1600 templates/js/translated/stock.js:2144 +#: templates/js/translated/stock.js:2833 templates/js/translated/stock.js:2916 msgid "Description" msgstr "Omschrijving" -#: InvenTree/models.py:777 stock/models.py:84 +#: InvenTree/models.py:776 stock/models.py:90 msgid "Description (optional)" msgstr "Omschrijving (optioneel)" -#: InvenTree/models.py:792 templates/js/translated/part.js:2812 -#: templates/js/translated/stock.js:2841 +#: InvenTree/models.py:791 common/models.py:3546 +#: templates/js/translated/part.js:2812 templates/js/translated/stock.js:2842 msgid "Path" msgstr "Pad" -#: InvenTree/models.py:929 +#: InvenTree/models.py:928 msgid "Markdown notes (optional)" msgstr "Markdown notitie (optioneel)" -#: InvenTree/models.py:960 +#: InvenTree/models.py:959 msgid "Barcode Data" msgstr "Streepjescode gegevens" -#: InvenTree/models.py:961 +#: InvenTree/models.py:960 msgid "Third party barcode data" msgstr "Streepjescode van derden" -#: InvenTree/models.py:967 +#: InvenTree/models.py:966 msgid "Barcode Hash" msgstr "Hash van Streepjescode" -#: InvenTree/models.py:968 +#: InvenTree/models.py:967 msgid "Unique hash of barcode data" msgstr "Unieke hash van barcode gegevens" -#: InvenTree/models.py:1035 +#: InvenTree/models.py:1034 msgid "Existing barcode found" msgstr "Bestaande barcode gevonden" -#: InvenTree/models.py:1078 +#: InvenTree/models.py:1112 +msgid "Task Failure" +msgstr "" + +#: InvenTree/models.py:1114 +#, python-brace-format +msgid "Background worker task '{instance.func}' failed after {n} attempts" +msgstr "" + +#: InvenTree/models.py:1142 msgid "Server Error" msgstr "Serverfout" -#: InvenTree/models.py:1079 +#: InvenTree/models.py:1143 msgid "An error has been logged by the server." msgstr "Er is een fout gelogd door de server." -#: InvenTree/serializers.py:63 part/models.py:4387 +#: InvenTree/serializers.py:63 part/models.py:4444 msgid "Must be a valid number" msgstr "Moet een geldig nummer zijn" -#: InvenTree/serializers.py:100 company/models.py:186 -#: company/templates/company/company_base.html:112 part/models.py:3115 +#: InvenTree/serializers.py:100 company/models.py:183 +#: company/templates/company/company_base.html:112 part/models.py:3166 #: templates/InvenTree/settings/settings_staff_js.html:44 #: templates/currency_data.html:5 msgid "Currency" @@ -532,50 +552,50 @@ msgstr "Valuta" msgid "Select currency from available options" msgstr "Selecteer valuta uit beschikbare opties" -#: InvenTree/serializers.py:407 templates/InvenTree/settings/user.html:33 +#: InvenTree/serializers.py:405 templates/InvenTree/settings/user.html:33 msgid "Username" -msgstr "" +msgstr "Gebruikersnaam" -#: InvenTree/serializers.py:409 templates/InvenTree/settings/user.html:37 +#: InvenTree/serializers.py:408 templates/InvenTree/settings/user.html:37 msgid "First Name" -msgstr "" +msgstr "Voornaam :" -#: InvenTree/serializers.py:409 +#: InvenTree/serializers.py:408 msgid "First name of the user" -msgstr "" +msgstr "Voornaam van de gebruiker" #: InvenTree/serializers.py:412 templates/InvenTree/settings/user.html:41 msgid "Last Name" -msgstr "" +msgstr "Achternaam" #: InvenTree/serializers.py:412 msgid "Last name of the user" -msgstr "" +msgstr "Achternaam van de gebruiker" -#: InvenTree/serializers.py:415 +#: InvenTree/serializers.py:416 msgid "Email address of the user" -msgstr "" +msgstr "E-mailadres van de gebruiker" -#: InvenTree/serializers.py:439 +#: InvenTree/serializers.py:441 msgid "Staff" -msgstr "" +msgstr "Medewerkers" -#: InvenTree/serializers.py:439 +#: InvenTree/serializers.py:441 msgid "Does this user have staff permissions" -msgstr "" +msgstr "Heeft deze gebruiker medewerker machtigingen" -#: InvenTree/serializers.py:442 +#: InvenTree/serializers.py:445 msgid "Superuser" -msgstr "" +msgstr "Administrator " -#: InvenTree/serializers.py:442 +#: InvenTree/serializers.py:445 msgid "Is this user a superuser" -msgstr "" +msgstr "Is deze gebruiker een administrator " -#: InvenTree/serializers.py:445 common/models.py:2707 company/models.py:163 -#: company/models.py:801 machine/models.py:39 part/admin.py:88 -#: part/models.py:1189 plugin/models.py:66 -#: templates/js/translated/company.js:523 +#: InvenTree/serializers.py:449 common/models.py:2771 company/models.py:160 +#: company/models.py:798 machine/models.py:39 part/admin.py:88 +#: part/models.py:1250 plugin/models.py:66 +#: templates/js/translated/company.js:524 #: templates/js/translated/table_filters.js:134 #: templates/js/translated/table_filters.js:226 #: templates/js/translated/table_filters.js:513 @@ -585,230 +605,229 @@ msgstr "" msgid "Active" msgstr "Actief" -#: InvenTree/serializers.py:445 +#: InvenTree/serializers.py:449 msgid "Is this user account active" -msgstr "" +msgstr "Is dit gebruikersaccount actief" -#: InvenTree/serializers.py:463 +#: InvenTree/serializers.py:467 msgid "You do not have permission to change this user role." -msgstr "" - -#: InvenTree/serializers.py:475 -msgid "Only superusers can create new users" -msgstr "" - -#: InvenTree/serializers.py:494 -msgid "Your account has been created." -msgstr "" - -#: InvenTree/serializers.py:496 -msgid "Please use the password reset function to login" -msgstr "" +msgstr "Je bent niet bevoegd om deze gebruikersrol te wijzigen." #: InvenTree/serializers.py:503 -msgid "Welcome to InvenTree" -msgstr "" +msgid "Only superusers can create new users" +msgstr "Alleen administrators kunnen nieuwe gebruikers aanmaken" -#: InvenTree/serializers.py:561 +#: InvenTree/serializers.py:523 +msgid "Your account has been created." +msgstr "Je account is aangemaakt." + +#: InvenTree/serializers.py:525 +msgid "Please use the password reset function to login" +msgstr "Gebruik de wachtwoordreset functie om in te loggen" + +#: InvenTree/serializers.py:531 +msgid "Welcome to InvenTree" +msgstr "Welkom bij InvenTree" + +#: InvenTree/serializers.py:594 msgid "Invalid value" msgstr "Ongeldige waarde" -#: InvenTree/serializers.py:581 importer/models.py:63 +#: InvenTree/serializers.py:614 importer/models.py:64 msgid "Data File" msgstr "Data bestand" -#: InvenTree/serializers.py:582 +#: InvenTree/serializers.py:615 msgid "Select data file for upload" msgstr "Selecteer een bestand om te uploaden" -#: InvenTree/serializers.py:599 -msgid "Unsupported file type" -msgstr "Niet ondersteund bestandstype" +#: InvenTree/serializers.py:632 common/files.py:63 +msgid "Unsupported file format" +msgstr "Bestandsformaat niet ondersteund" -#: InvenTree/serializers.py:605 +#: InvenTree/serializers.py:638 msgid "File is too large" msgstr "Bestand is te groot" -#: InvenTree/serializers.py:626 +#: InvenTree/serializers.py:659 msgid "No columns found in file" msgstr "Geen kolommen gevonden in het bestand" -#: InvenTree/serializers.py:629 +#: InvenTree/serializers.py:662 msgid "No data rows found in file" msgstr "Geen data rijen gevonden in dit bestand" -#: InvenTree/serializers.py:742 +#: InvenTree/serializers.py:774 msgid "No data rows provided" msgstr "Geen data rijen opgegeven" -#: InvenTree/serializers.py:745 +#: InvenTree/serializers.py:777 msgid "No data columns supplied" msgstr "Geen gegevenskolommen opgegeven" -#: InvenTree/serializers.py:812 +#: InvenTree/serializers.py:843 #, python-brace-format msgid "Missing required column: '{name}'" msgstr "Verplichte kolom ontbreekt: '{name}'" -#: InvenTree/serializers.py:821 +#: InvenTree/serializers.py:852 #, python-brace-format msgid "Duplicate column: '{col}'" msgstr "Dubbele kolom: '{col}'" -#: InvenTree/serializers.py:861 +#: InvenTree/serializers.py:891 msgid "Remote Image" -msgstr "" +msgstr "Externe afbeelding" -#: InvenTree/serializers.py:862 +#: InvenTree/serializers.py:892 msgid "URL of remote image file" msgstr "URL van extern afbeeldingsbestand" -#: InvenTree/serializers.py:880 +#: InvenTree/serializers.py:910 msgid "Downloading images from remote URL is not enabled" msgstr "Afbeeldingen van externe URL downloaden is niet ingeschakeld" -#: InvenTree/status.py:66 part/serializers.py:1246 -msgid "Background worker check failed" -msgstr "Achtergrondwerker check is gefaald" - -#: InvenTree/status.py:70 -msgid "Email backend not configured" -msgstr "E-mailbackend niet geconfigureerd" - -#: InvenTree/status.py:73 -msgid "InvenTree system health checks failed" -msgstr "InvenTree gezondsheidschecks mislukt" +#: InvenTree/serializers.py:917 +msgid "Failed to download image from remote URL" +msgstr "Fout bij het downloaden van afbeelding van externe URL" #: InvenTree/templatetags/inventree_extras.py:184 msgid "Unknown database" -msgstr "" +msgstr "Onbekende database" -#: InvenTree/validators.py:32 InvenTree/validators.py:34 +#: InvenTree/validators.py:32 msgid "Invalid physical unit" msgstr "Ongeldige fysieke eenheid" -#: InvenTree/validators.py:40 +#: InvenTree/validators.py:38 msgid "Not a valid currency code" msgstr "Geen geldige valutacode" -#: InvenTree/validators.py:118 InvenTree/validators.py:134 +#: InvenTree/validators.py:115 InvenTree/validators.py:131 msgid "Overage value must not be negative" msgstr "Overschotwaarde mag niet negatief zijn" -#: InvenTree/validators.py:136 +#: InvenTree/validators.py:133 msgid "Overage must not exceed 100%" msgstr "Overschot mag niet groter zijn dan 100%" -#: InvenTree/validators.py:142 +#: InvenTree/validators.py:139 msgid "Invalid value for overage" msgstr "Ongeldige waarde voor overschot" -#: InvenTree/views.py:400 templates/InvenTree/settings/user.html:23 +#: InvenTree/views.py:399 templates/InvenTree/settings/user.html:23 msgid "Edit User Information" msgstr "Gebruikersgegevens bewerken" -#: InvenTree/views.py:412 templates/InvenTree/settings/user.html:20 +#: InvenTree/views.py:411 templates/InvenTree/settings/user.html:20 msgid "Set Password" msgstr "Wachtwoord instellen" -#: InvenTree/views.py:434 +#: InvenTree/views.py:433 msgid "Password fields must match" msgstr "Wachtwoordvelden komen niet overeen" -#: InvenTree/views.py:442 +#: InvenTree/views.py:441 msgid "Wrong password provided" msgstr "Onjuist wachtwoord opgegeven" -#: InvenTree/views.py:650 templates/navbar.html:160 +#: InvenTree/views.py:645 templates/navbar.html:160 msgid "System Information" msgstr "Systeeminformatie" -#: InvenTree/views.py:657 templates/navbar.html:171 +#: InvenTree/views.py:652 templates/navbar.html:171 msgid "About InvenTree" msgstr "Over InvenTree" -#: build/api.py:51 part/api.py:156 stock/api.py:343 -msgid "Cascade" -msgstr "" - -#: build/api.py:64 build/models.py:261 -#: build/templates/build/build_base.html:191 +#: build/api.py:54 build/models.py:262 +#: build/templates/build/build_base.html:192 #: build/templates/build/detail.html:87 msgid "Parent Build" msgstr "Bovenliggende Productie" -#: build/api.py:89 order/api.py:92 templates/js/translated/table_filters.js:101 +#: build/api.py:58 build/api.py:625 order/api.py:396 order/api.py:611 +#: order/api.py:990 order/api.py:1187 +#: templates/js/translated/table_filters.js:372 +msgid "Include Variants" +msgstr "" + +#: build/api.py:93 +msgid "Ancestor Build" +msgstr "Voorouderlijke bouw" + +#: build/api.py:112 order/api.py:90 +#: templates/js/translated/table_filters.js:101 #: templates/js/translated/table_filters.js:549 #: templates/js/translated/table_filters.js:633 #: templates/js/translated/table_filters.js:674 msgid "Assigned to me" -msgstr "" +msgstr "Toegewezen aan mij" -#: build/api.py:106 build/templates/build/build_base.html:205 +#: build/api.py:129 build/templates/build/build_base.html:206 #: build/templates/build/detail.html:115 #: report/templates/report/inventree_build_order_report.html:152 #: templates/js/translated/table_filters.js:552 msgid "Issued By" msgstr "Uitgegeven door" -#: build/api.py:125 +#: build/api.py:148 msgid "Assigned To" -msgstr "" +msgstr "Toegewezen aan" -#: build/api.py:301 +#: build/api.py:310 msgid "Build must be cancelled before it can be deleted" msgstr "Productie moet geannuleerd worden voordat het kan worden verwijderd" -#: build/api.py:345 build/serializers.py:1288 part/models.py:4265 +#: build/api.py:354 build/serializers.py:1342 part/models.py:4322 #: templates/js/translated/bom.js:997 templates/js/translated/bom.js:1037 -#: templates/js/translated/build.js:2702 +#: templates/js/translated/build.js:2711 #: templates/js/translated/table_filters.js:197 #: templates/js/translated/table_filters.js:586 msgid "Consumable" msgstr "Verbruiksartikelen" -#: build/api.py:346 build/serializers.py:1289 part/models.py:4259 +#: build/api.py:355 build/serializers.py:1343 part/models.py:4316 #: part/templates/part/upload_bom.html:58 templates/js/translated/bom.js:1001 -#: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2693 +#: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2702 #: templates/js/translated/table_filters.js:193 #: templates/js/translated/table_filters.js:222 #: templates/js/translated/table_filters.js:590 msgid "Optional" msgstr "Optioneel" -#: build/api.py:347 common/models.py:1489 part/admin.py:91 part/admin.py:428 -#: part/models.py:1154 part/serializers.py:1575 +#: build/api.py:356 common/models.py:1558 part/admin.py:91 part/admin.py:428 +#: part/models.py:1215 part/serializers.py:1633 #: templates/js/translated/bom.js:1639 #: templates/js/translated/table_filters.js:337 #: templates/js/translated/table_filters.js:729 msgid "Assembly" msgstr "Samenstelling" -#: build/api.py:348 templates/js/translated/table_filters.js:415 +#: build/api.py:357 templates/js/translated/table_filters.js:415 #: templates/js/translated/table_filters.js:582 msgid "Tracked" msgstr "Gevolgd" -#: build/api.py:349 build/serializers.py:1290 part/models.py:1172 +#: build/api.py:358 build/serializers.py:1344 part/models.py:1233 #: templates/js/translated/table_filters.js:146 #: templates/js/translated/table_filters.js:779 msgid "Testable" -msgstr "" +msgstr "Testbaar" -#: build/api.py:351 part/admin.py:144 templates/js/translated/build.js:1917 -#: templates/js/translated/build.js:2820 -#: templates/js/translated/sales_order.js:1965 +#: build/api.py:360 order/api.py:779 part/admin.py:144 +#: templates/js/translated/build.js:1920 templates/js/translated/build.js:2838 +#: templates/js/translated/sales_order.js:1946 #: templates/js/translated/table_filters.js:574 msgid "Allocated" msgstr "Toegewezen" -#: build/api.py:359 company/models.py:891 company/serializers.py:395 -#: company/templates/company/supplier_part.html:114 +#: build/api.py:368 company/models.py:888 company/serializers.py:399 +#: company/templates/company/supplier_part.html:115 #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:17 -#: templates/js/translated/bom.js:1162 templates/js/translated/build.js:2752 +#: templates/js/translated/bom.js:1162 templates/js/translated/build.js:2770 #: templates/js/translated/index.js:123 -#: templates/js/translated/model_renderers.js:235 +#: templates/js/translated/model_renderers.js:238 #: templates/js/translated/part.js:695 templates/js/translated/part.js:697 #: templates/js/translated/part.js:702 #: templates/js/translated/table_filters.js:347 @@ -816,16 +835,68 @@ msgstr "Toegewezen" msgid "Available" msgstr "Beschikbaar" -#: build/models.py:86 build/templates/build/build_base.html:9 -#: build/templates/build/build_base.html:27 +#: build/api.py:640 build/models.py:268 build/serializers.py:1330 +#: build/templates/build/build_base.html:106 +#: build/templates/build/detail.html:29 company/models.py:1043 order/api.py:775 +#: order/api.py:1003 order/models.py:1519 order/models.py:1674 +#: order/models.py:1675 part/api.py:1495 part/api.py:1802 part/models.py:419 +#: part/models.py:3177 part/models.py:3321 part/models.py:3469 +#: part/models.py:3490 part/models.py:3512 part/models.py:3648 +#: part/models.py:3995 part/models.py:4158 part/models.py:4288 +#: part/models.py:4654 part/serializers.py:1245 part/serializers.py:1898 +#: part/templates/part/part_app_base.html:8 +#: part/templates/part/part_pricing.html:12 +#: part/templates/part/upload_bom.html:52 +#: report/templates/report/inventree_bill_of_materials_report.html:110 +#: report/templates/report/inventree_bill_of_materials_report.html:137 +#: report/templates/report/inventree_build_order_report.html:109 +#: report/templates/report/inventree_purchase_order_report.html:27 +#: report/templates/report/inventree_return_order_report.html:24 +#: report/templates/report/inventree_sales_order_report.html:27 +#: report/templates/report/inventree_sales_order_shipment_report.html:28 +#: report/templates/report/inventree_stock_location_report.html:102 +#: stock/serializers.py:112 stock/serializers.py:160 stock/serializers.py:456 +#: stock/serializers.py:947 templates/InvenTree/search.html:82 +#: templates/email/build_order_completed.html:17 +#: templates/email/build_order_required_stock.html:17 +#: templates/email/low_stock_notification.html:15 +#: templates/email/overdue_build_order.html:16 +#: templates/js/translated/barcode.js:577 templates/js/translated/bom.js:632 +#: templates/js/translated/bom.js:769 templates/js/translated/bom.js:905 +#: templates/js/translated/build.js:1005 templates/js/translated/build.js:1488 +#: templates/js/translated/build.js:1919 templates/js/translated/build.js:2337 +#: templates/js/translated/build.js:2514 templates/js/translated/company.js:349 +#: templates/js/translated/company.js:1117 +#: templates/js/translated/company.js:1272 +#: templates/js/translated/company.js:1560 templates/js/translated/index.js:109 +#: templates/js/translated/part.js:1950 templates/js/translated/part.js:2022 +#: templates/js/translated/part.js:2330 templates/js/translated/pricing.js:369 +#: templates/js/translated/purchase_order.js:734 +#: templates/js/translated/purchase_order.js:1350 +#: templates/js/translated/purchase_order.js:1902 +#: templates/js/translated/purchase_order.js:2061 +#: templates/js/translated/return_order.js:538 +#: templates/js/translated/return_order.js:708 +#: templates/js/translated/sales_order.js:1199 +#: templates/js/translated/sales_order.js:1608 +#: templates/js/translated/sales_order.js:1813 +#: templates/js/translated/stock.js:682 templates/js/translated/stock.js:848 +#: templates/js/translated/stock.js:1065 templates/js/translated/stock.js:2083 +#: templates/js/translated/stock.js:2942 templates/js/translated/stock.js:3175 +#: templates/js/translated/stock.js:3320 +msgid "Part" +msgstr "Onderdeel" + +#: build/api.py:662 build/models.py:88 build/templates/build/build_base.html:10 +#: build/templates/build/build_base.html:28 #: report/templates/report/inventree_build_order_report.html:105 -#: stock/serializers.py:84 templates/email/build_order_completed.html:16 +#: stock/serializers.py:85 templates/email/build_order_completed.html:16 #: templates/email/overdue_build_order.html:15 -#: templates/js/translated/build.js:1145 templates/js/translated/stock.js:2976 +#: templates/js/translated/build.js:1148 templates/js/translated/stock.js:2977 msgid "Build Order" msgstr "Productieorder" -#: build/models.py:87 build/templates/build/build_base.html:13 +#: build/models.py:89 build/templates/build/build_base.html:14 #: build/templates/build/index.html:8 build/templates/build/index.html:12 #: order/templates/order/sales_order_detail.html:111 #: order/templates/order/so_sidebar.html:13 @@ -836,268 +907,216 @@ msgstr "Productieorder" msgid "Build Orders" msgstr "Productieorders" -#: build/models.py:135 +#: build/models.py:136 msgid "Assembly BOM has not been validated" -msgstr "" +msgstr "Assemblage stuklijst is niet gevalideerd" -#: build/models.py:142 +#: build/models.py:143 msgid "Build order cannot be created for an inactive part" msgstr "" -#: build/models.py:149 +#: build/models.py:150 msgid "Build order cannot be created for an unlocked part" msgstr "" -#: build/models.py:163 +#: build/models.py:164 msgid "Invalid choice for parent build" msgstr "Ongeldige keuze voor bovenliggende productie" -#: build/models.py:174 order/models.py:239 +#: build/models.py:175 order/models.py:236 msgid "Responsible user or group must be specified" msgstr "" -#: build/models.py:180 +#: build/models.py:181 msgid "Build order part cannot be changed" msgstr "" -#: build/models.py:241 +#: build/models.py:242 msgid "Build Order Reference" msgstr "Productieorderreferentie" -#: build/models.py:242 build/serializers.py:1287 order/models.py:467 -#: order/models.py:978 order/models.py:1373 order/models.py:2135 -#: part/admin.py:414 part/models.py:4280 part/templates/part/upload_bom.html:54 +#: build/models.py:243 build/serializers.py:1341 order/models.py:479 +#: order/models.py:1005 order/models.py:1390 order/models.py:2174 +#: part/admin.py:414 part/models.py:4337 part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_bill_of_materials_report.html:139 #: report/templates/report/inventree_purchase_order_report.html:28 #: report/templates/report/inventree_return_order_report.html:26 #: report/templates/report/inventree_sales_order_report.html:28 #: templates/js/translated/bom.js:770 templates/js/translated/bom.js:973 -#: templates/js/translated/build.js:1011 templates/js/translated/build.js:2685 +#: templates/js/translated/build.js:1014 templates/js/translated/build.js:2694 #: templates/js/translated/order.js:316 templates/js/translated/pricing.js:386 -#: templates/js/translated/purchase_order.js:2135 +#: templates/js/translated/purchase_order.js:2119 #: templates/js/translated/return_order.js:727 -#: templates/js/translated/sales_order.js:1854 +#: templates/js/translated/sales_order.js:1835 msgid "Reference" msgstr "Referentie" -#: build/models.py:253 +#: build/models.py:254 msgid "Brief description of the build (optional)" msgstr "Korte beschrijving van de build (optioneel)" -#: build/models.py:262 +#: build/models.py:263 msgid "BuildOrder to which this build is allocated" msgstr "Productieorder waar deze productie aan is toegewezen" -#: build/models.py:267 build/serializers.py:1278 -#: build/templates/build/build_base.html:105 -#: build/templates/build/detail.html:29 company/models.py:1046 order/api.py:767 -#: order/models.py:1503 order/models.py:1658 order/models.py:1659 -#: part/api.py:1509 part/api.py:1813 part/models.py:424 part/models.py:3126 -#: part/models.py:3270 part/models.py:3418 part/models.py:3439 -#: part/models.py:3461 part/models.py:3597 part/models.py:3937 -#: part/models.py:4100 part/models.py:4231 part/models.py:4592 -#: part/serializers.py:1192 part/serializers.py:1836 -#: part/templates/part/part_app_base.html:8 -#: part/templates/part/part_pricing.html:12 -#: part/templates/part/upload_bom.html:52 -#: report/templates/report/inventree_bill_of_materials_report.html:110 -#: report/templates/report/inventree_bill_of_materials_report.html:137 -#: report/templates/report/inventree_build_order_report.html:109 -#: report/templates/report/inventree_purchase_order_report.html:27 -#: report/templates/report/inventree_return_order_report.html:24 -#: report/templates/report/inventree_sales_order_report.html:27 -#: report/templates/report/inventree_stock_location_report.html:102 -#: stock/serializers.py:111 stock/serializers.py:159 stock/serializers.py:446 -#: stock/serializers.py:916 templates/InvenTree/search.html:82 -#: templates/email/build_order_completed.html:17 -#: templates/email/build_order_required_stock.html:17 -#: templates/email/low_stock_notification.html:15 -#: templates/email/overdue_build_order.html:16 -#: templates/js/translated/barcode.js:577 templates/js/translated/bom.js:632 -#: templates/js/translated/bom.js:769 templates/js/translated/bom.js:905 -#: templates/js/translated/build.js:1002 templates/js/translated/build.js:1485 -#: templates/js/translated/build.js:1916 templates/js/translated/build.js:2334 -#: templates/js/translated/build.js:2507 templates/js/translated/company.js:348 -#: templates/js/translated/company.js:1116 -#: templates/js/translated/company.js:1271 -#: templates/js/translated/company.js:1559 templates/js/translated/index.js:109 -#: templates/js/translated/part.js:1950 templates/js/translated/part.js:2022 -#: templates/js/translated/part.js:2330 templates/js/translated/pricing.js:369 -#: templates/js/translated/purchase_order.js:751 -#: templates/js/translated/purchase_order.js:1367 -#: templates/js/translated/purchase_order.js:1918 -#: templates/js/translated/purchase_order.js:2077 -#: templates/js/translated/return_order.js:538 -#: templates/js/translated/return_order.js:708 -#: templates/js/translated/sales_order.js:300 -#: templates/js/translated/sales_order.js:1233 -#: templates/js/translated/sales_order.js:1634 -#: templates/js/translated/sales_order.js:1832 -#: templates/js/translated/stock.js:682 templates/js/translated/stock.js:848 -#: templates/js/translated/stock.js:1065 templates/js/translated/stock.js:2082 -#: templates/js/translated/stock.js:2941 templates/js/translated/stock.js:3174 -#: templates/js/translated/stock.js:3319 -msgid "Part" -msgstr "Onderdeel" - -#: build/models.py:275 +#: build/models.py:274 msgid "Select part to build" msgstr "Selecteer onderdeel om te produceren" -#: build/models.py:280 +#: build/models.py:279 msgid "Sales Order Reference" msgstr "Verkooporder Referentie" -#: build/models.py:284 +#: build/models.py:283 msgid "SalesOrder to which this build is allocated" msgstr "Verkooporder waar deze productie aan is toegewezen" -#: build/models.py:289 build/serializers.py:1048 -#: templates/js/translated/build.js:1904 -#: templates/js/translated/sales_order.js:1221 +#: build/models.py:288 build/serializers.py:1092 +#: templates/js/translated/build.js:1907 +#: templates/js/translated/sales_order.js:1187 msgid "Source Location" msgstr "Bronlocatie" -#: build/models.py:293 +#: build/models.py:292 msgid "Select location to take stock from for this build (leave blank to take from any stock location)" msgstr "Selecteer de locatie waar de voorraad van de productie vandaan moet komen (laat leeg om vanaf elke standaard locatie te nemen)" -#: build/models.py:298 +#: build/models.py:297 msgid "Destination Location" msgstr "Bestemmings Locatie" -#: build/models.py:302 +#: build/models.py:301 msgid "Select location where the completed items will be stored" msgstr "Selecteer locatie waar de voltooide items zullen worden opgeslagen" -#: build/models.py:306 +#: build/models.py:305 msgid "Build Quantity" msgstr "Productiehoeveelheid" -#: build/models.py:309 +#: build/models.py:308 msgid "Number of stock items to build" msgstr "Aantal voorraaditems om te produceren" -#: build/models.py:313 +#: build/models.py:312 msgid "Completed items" msgstr "Voltooide voorraadartikelen" -#: build/models.py:315 +#: build/models.py:314 msgid "Number of stock items which have been completed" msgstr "Aantal voorraadartikelen die zijn voltooid" -#: build/models.py:319 +#: build/models.py:318 msgid "Build Status" msgstr "Productiestatus" -#: build/models.py:323 +#: build/models.py:322 msgid "Build status code" msgstr "Productiestatuscode" -#: build/models.py:332 build/serializers.py:302 build/serializers.py:1198 -#: order/serializers.py:670 stock/models.py:859 stock/serializers.py:76 -#: stock/serializers.py:1562 templates/js/translated/purchase_order.js:1129 +#: build/models.py:331 build/serializers.py:349 build/serializers.py:1243 +#: order/serializers.py:755 stock/models.py:936 stock/serializers.py:77 +#: stock/serializers.py:1593 templates/js/translated/purchase_order.js:1112 #: templates/js/translated/stock.js:1199 msgid "Batch Code" msgstr "Batchcode" -#: build/models.py:336 build/serializers.py:303 +#: build/models.py:335 build/serializers.py:350 msgid "Batch code for this build output" msgstr "Batchcode voor deze productieuitvoer" -#: build/models.py:339 order/models.py:315 order/serializers.py:126 -#: part/models.py:1229 part/templates/part/part_base.html:319 +#: build/models.py:338 order/models.py:322 order/serializers.py:157 +#: part/models.py:1290 part/templates/part/part_base.html:327 #: templates/js/translated/return_order.js:338 -#: templates/js/translated/sales_order.js:863 +#: templates/js/translated/sales_order.js:822 msgid "Creation Date" msgstr "Aanmaakdatum" -#: build/models.py:343 +#: build/models.py:342 msgid "Target completion date" msgstr "Verwachte opleveringsdatum" -#: build/models.py:344 +#: build/models.py:343 msgid "Target date for build completion. Build will be overdue after this date." msgstr "Doeldatum voor productie voltooiing. Productie zal achterstallig zijn na deze datum." -#: build/models.py:347 order/models.py:526 order/models.py:2180 -#: templates/js/translated/build.js:2419 +#: build/models.py:346 order/models.py:538 order/models.py:2219 +#: templates/js/translated/build.js:2422 msgid "Completion Date" msgstr "Opleveringsdatum" -#: build/models.py:353 +#: build/models.py:352 msgid "completed by" msgstr "voltooid door" -#: build/models.py:361 templates/js/translated/build.js:2379 +#: build/models.py:360 templates/js/translated/build.js:2382 msgid "Issued by" msgstr "Uitgegeven door" -#: build/models.py:362 +#: build/models.py:361 msgid "User who issued this build order" msgstr "Gebruiker die de productieorder heeft gegeven" -#: build/models.py:370 build/templates/build/build_base.html:212 -#: build/templates/build/detail.html:122 common/models.py:165 order/api.py:142 -#: order/models.py:333 order/templates/order/order_base.html:222 -#: order/templates/order/return_order_base.html:191 -#: order/templates/order/sales_order_base.html:235 part/models.py:1246 -#: part/templates/part/part_base.html:399 +#: build/models.py:369 build/templates/build/build_base.html:213 +#: build/templates/build/detail.html:122 common/models.py:168 order/api.py:140 +#: order/models.py:340 order/templates/order/order_base.html:231 +#: order/templates/order/return_order_base.html:192 +#: order/templates/order/sales_order_base.html:236 part/models.py:1307 +#: part/templates/part/part_base.html:407 #: report/templates/report/inventree_build_order_report.html:158 #: templates/InvenTree/settings/settings_staff_js.html:150 -#: templates/js/translated/build.js:2391 -#: templates/js/translated/purchase_order.js:1833 +#: templates/js/translated/build.js:2394 +#: templates/js/translated/purchase_order.js:1817 #: templates/js/translated/return_order.js:358 #: templates/js/translated/table_filters.js:551 msgid "Responsible" msgstr "Verantwoordelijke" -#: build/models.py:371 +#: build/models.py:370 msgid "User or group responsible for this build order" msgstr "Gebruiker of groep verantwoordelijk voor deze bouwopdracht" -#: build/models.py:376 build/templates/build/detail.html:108 +#: build/models.py:375 build/templates/build/detail.html:108 #: company/templates/company/manufacturer_part.html:107 -#: company/templates/company/supplier_part.html:194 -#: order/templates/order/order_base.html:172 -#: order/templates/order/return_order_base.html:148 -#: order/templates/order/sales_order_base.html:187 -#: part/templates/part/part_base.html:392 stock/models.py:855 -#: stock/templates/stock/item_base.html:200 -#: templates/js/translated/company.js:1019 +#: company/templates/company/supplier_part.html:195 +#: order/templates/order/order_base.html:181 +#: order/templates/order/return_order_base.html:149 +#: order/templates/order/sales_order_base.html:188 +#: part/templates/part/part_base.html:400 stock/models.py:932 +#: stock/templates/stock/item_base.html:197 +#: templates/js/translated/company.js:1020 msgid "External Link" msgstr "Externe Link" -#: build/models.py:377 common/models.py:3273 part/models.py:1058 -#: stock/models.py:855 +#: build/models.py:376 common/models.py:3334 part/models.py:1119 +#: stock/models.py:932 msgid "Link to external URL" msgstr "Link naar externe URL" -#: build/models.py:381 +#: build/models.py:380 msgid "Build Priority" msgstr "Bouw prioriteit" -#: build/models.py:384 +#: build/models.py:383 msgid "Priority of this build order" msgstr "Prioriteit van deze bouwopdracht" -#: build/models.py:391 common/models.py:135 common/models.py:149 -#: order/admin.py:18 order/api.py:128 order/models.py:297 +#: build/models.py:390 common/models.py:138 common/models.py:152 +#: order/admin.py:18 order/api.py:126 order/models.py:304 #: templates/InvenTree/settings/settings_staff_js.html:146 -#: templates/js/translated/build.js:2316 -#: templates/js/translated/purchase_order.js:1780 +#: templates/js/translated/build.js:2319 +#: templates/js/translated/purchase_order.js:1764 #: templates/js/translated/return_order.js:317 -#: templates/js/translated/sales_order.js:842 +#: templates/js/translated/sales_order.js:801 #: templates/js/translated/table_filters.js:47 #: templates/project_code_data.html:6 msgid "Project Code" msgstr "" -#: build/models.py:392 +#: build/models.py:391 msgid "Project code for this build order" msgstr "Project code voor deze build order" -#: build/models.py:651 build/models.py:778 +#: build/models.py:651 build/models.py:779 msgid "Failed to offload task to complete build allocations" msgstr "" @@ -1110,610 +1129,619 @@ msgstr "Productieorder {build} is voltooid" msgid "A build order has been completed" msgstr "Een productieorder is voltooid" -#: build/models.py:967 build/models.py:1055 +#: build/models.py:858 build/serializers.py:393 +msgid "Serial numbers must be provided for trackable parts" +msgstr "" + +#: build/models.py:969 build/models.py:1058 msgid "No build output specified" msgstr "Geen productie uitvoer opgegeven" -#: build/models.py:970 +#: build/models.py:972 msgid "Build output is already completed" msgstr "Productie uitvoer is al voltooid" -#: build/models.py:973 +#: build/models.py:975 msgid "Build output does not match Build Order" msgstr "Productuitvoer komt niet overeen met de Productieorder" -#: build/models.py:1059 build/serializers.py:235 build/serializers.py:284 -#: build/serializers.py:915 order/models.py:564 order/serializers.py:499 -#: order/serializers.py:665 part/serializers.py:1569 part/serializers.py:1999 -#: stock/models.py:700 stock/models.py:1520 stock/serializers.py:669 +#: build/models.py:1062 build/serializers.py:282 build/serializers.py:331 +#: build/serializers.py:959 order/models.py:586 order/serializers.py:584 +#: order/serializers.py:750 part/serializers.py:1627 part/serializers.py:2060 +#: stock/models.py:777 stock/models.py:1609 stock/serializers.py:696 msgid "Quantity must be greater than zero" msgstr "Hoeveelheid moet groter zijn dan nul" -#: build/models.py:1064 build/serializers.py:240 +#: build/models.py:1067 build/serializers.py:287 msgid "Quantity cannot be greater than the output quantity" msgstr "Hoeveelheid kan niet groter zijn dan aantal" -#: build/models.py:1124 build/serializers.py:563 +#: build/models.py:1127 build/serializers.py:607 #, python-brace-format msgid "Build output {serial} has not passed all required tests" msgstr "" -#: build/models.py:1465 +#: build/models.py:1482 msgid "Build Order Line Item" msgstr "" -#: build/models.py:1490 +#: build/models.py:1507 msgid "Build object" msgstr "Bouw object" -#: build/models.py:1504 build/models.py:1760 build/serializers.py:222 -#: build/serializers.py:269 build/serializers.py:1295 -#: build/templates/build/build_base.html:110 -#: build/templates/build/detail.html:34 common/models.py:2579 -#: order/models.py:1356 order/models.py:2041 order/serializers.py:1460 +#: build/models.py:1521 build/models.py:1787 build/serializers.py:269 +#: build/serializers.py:316 build/serializers.py:1349 +#: build/templates/build/build_base.html:111 +#: build/templates/build/detail.html:34 common/models.py:2643 +#: order/models.py:1373 order/models.py:2074 order/serializers.py:1586 #: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:413 -#: part/forms.py:48 part/models.py:3284 part/models.py:4253 -#: part/templates/part/part_pricing.html:16 +#: part/forms.py:48 part/models.py:3335 part/models.py:4310 +#: part/serializers.py:265 part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_bill_of_materials_report.html:138 #: report/templates/report/inventree_build_order_report.html:113 #: report/templates/report/inventree_purchase_order_report.html:29 #: report/templates/report/inventree_sales_order_report.html:29 +#: report/templates/report/inventree_sales_order_shipment_report.html:47 +#: report/templates/report/inventree_sales_order_shipment_report.html:49 #: report/templates/report/inventree_stock_location_report.html:104 #: report/templates/report/inventree_test_report.html:90 -#: report/templates/report/inventree_test_report.html:169 stock/admin.py:159 -#: stock/serializers.py:127 stock/serializers.py:167 stock/serializers.py:660 -#: stock/templates/stock/item_base.html:287 -#: stock/templates/stock/item_base.html:295 -#: stock/templates/stock/item_base.html:342 +#: report/templates/report/inventree_test_report.html:169 stock/admin.py:160 +#: stock/serializers.py:128 stock/serializers.py:168 stock/serializers.py:687 +#: stock/templates/stock/item_base.html:284 +#: stock/templates/stock/item_base.html:292 +#: stock/templates/stock/item_base.html:339 #: templates/email/build_order_completed.html:18 #: templates/js/translated/barcode.js:579 templates/js/translated/bom.js:771 -#: templates/js/translated/bom.js:981 templates/js/translated/build.js:522 -#: templates/js/translated/build.js:737 templates/js/translated/build.js:1542 -#: templates/js/translated/build.js:1919 templates/js/translated/build.js:2529 -#: templates/js/translated/company.js:1818 -#: templates/js/translated/model_renderers.js:237 +#: templates/js/translated/bom.js:981 templates/js/translated/build.js:525 +#: templates/js/translated/build.js:740 templates/js/translated/build.js:1545 +#: templates/js/translated/build.js:1922 templates/js/translated/build.js:2536 +#: templates/js/translated/company.js:1819 +#: templates/js/translated/model_renderers.js:240 #: templates/js/translated/order.js:329 templates/js/translated/part.js:968 -#: templates/js/translated/part.js:1818 templates/js/translated/part.js:3360 +#: templates/js/translated/part.js:1818 templates/js/translated/part.js:3376 #: templates/js/translated/pricing.js:381 #: templates/js/translated/pricing.js:474 #: templates/js/translated/pricing.js:522 #: templates/js/translated/pricing.js:616 -#: templates/js/translated/purchase_order.js:754 -#: templates/js/translated/purchase_order.js:1922 -#: templates/js/translated/purchase_order.js:2141 -#: templates/js/translated/sales_order.js:317 -#: templates/js/translated/sales_order.js:1235 -#: templates/js/translated/sales_order.js:1554 -#: templates/js/translated/sales_order.js:1644 -#: templates/js/translated/sales_order.js:1734 -#: templates/js/translated/sales_order.js:1860 +#: templates/js/translated/purchase_order.js:737 +#: templates/js/translated/purchase_order.js:1906 +#: templates/js/translated/purchase_order.js:2125 +#: templates/js/translated/sales_order.js:1201 +#: templates/js/translated/sales_order.js:1520 +#: templates/js/translated/sales_order.js:1625 +#: templates/js/translated/sales_order.js:1715 +#: templates/js/translated/sales_order.js:1841 #: templates/js/translated/stock.js:570 templates/js/translated/stock.js:708 -#: templates/js/translated/stock.js:879 templates/js/translated/stock.js:3105 -#: templates/js/translated/stock.js:3188 +#: templates/js/translated/stock.js:879 templates/js/translated/stock.js:3106 +#: templates/js/translated/stock.js:3189 msgid "Quantity" msgstr "Hoeveelheid" -#: build/models.py:1505 +#: build/models.py:1522 msgid "Required quantity for build order" msgstr "Vereiste hoeveelheid voor bouwopdracht" -#: build/models.py:1585 +#: build/models.py:1602 msgid "Build item must specify a build output, as master part is marked as trackable" msgstr "Productieartikel moet een productieuitvoer specificeren, omdat het hoofdonderdeel gemarkeerd is als traceerbaar" -#: build/models.py:1594 +#: build/models.py:1611 #, python-brace-format msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgstr "Toegewezen hoeveelheid ({q}) mag de beschikbare voorraad ({a}) niet overschrijden" -#: build/models.py:1604 order/models.py:1992 +#: build/models.py:1628 order/models.py:2025 msgid "Stock item is over-allocated" msgstr "Voorraad item is te veel toegewezen" -#: build/models.py:1610 order/models.py:1995 +#: build/models.py:1634 order/models.py:2028 msgid "Allocation quantity must be greater than zero" msgstr "Toewijzing hoeveelheid moet groter zijn dan nul" -#: build/models.py:1616 +#: build/models.py:1640 msgid "Quantity must be 1 for serialized stock" msgstr "Hoeveelheid moet 1 zijn voor geserialiseerde voorraad" -#: build/models.py:1675 +#: build/models.py:1699 msgid "Selected stock item does not match BOM line" msgstr "Geselecteerde voorraadartikelen komen niet overeen met de BOM-regel" -#: build/models.py:1747 build/serializers.py:895 order/serializers.py:1297 -#: order/serializers.py:1318 stock/models.py:376 stock/serializers.py:93 -#: stock/serializers.py:763 stock/serializers.py:1281 stock/serializers.py:1393 -#: stock/templates/stock/item_base.html:10 -#: stock/templates/stock/item_base.html:23 -#: stock/templates/stock/item_base.html:194 -#: templates/js/translated/build.js:1918 -#: templates/js/translated/sales_order.js:301 -#: templates/js/translated/sales_order.js:1234 -#: templates/js/translated/sales_order.js:1535 -#: templates/js/translated/sales_order.js:1540 -#: templates/js/translated/sales_order.js:1641 -#: templates/js/translated/sales_order.js:1728 +#: build/models.py:1774 build/serializers.py:939 order/serializers.py:1423 +#: order/serializers.py:1444 +#: report/templates/report/inventree_sales_order_shipment_report.html:29 +#: stock/models.py:382 stock/serializers.py:94 stock/serializers.py:794 +#: stock/serializers.py:1312 stock/serializers.py:1424 +#: stock/templates/stock/item_base.html:11 +#: stock/templates/stock/item_base.html:24 +#: stock/templates/stock/item_base.html:191 +#: templates/js/translated/build.js:1921 +#: templates/js/translated/sales_order.js:1200 +#: templates/js/translated/sales_order.js:1501 +#: templates/js/translated/sales_order.js:1506 +#: templates/js/translated/sales_order.js:1622 +#: templates/js/translated/sales_order.js:1709 #: templates/js/translated/stock.js:683 templates/js/translated/stock.js:849 -#: templates/js/translated/stock.js:3061 +#: templates/js/translated/stock.js:3062 msgid "Stock Item" msgstr "Voorraadartikel" -#: build/models.py:1748 +#: build/models.py:1775 msgid "Source stock item" msgstr "Bron voorraadartikel" -#: build/models.py:1761 +#: build/models.py:1788 msgid "Stock quantity to allocate to build" msgstr "Voorraad hoeveelheid toe te wijzen aan productie" -#: build/models.py:1769 +#: build/models.py:1796 msgid "Install into" msgstr "Installeren in" -#: build/models.py:1770 +#: build/models.py:1797 msgid "Destination stock item" msgstr "Bestemming voorraadartikel" -#: build/serializers.py:91 +#: build/serializers.py:108 msgid "Build Level" msgstr "" -#: build/serializers.py:99 build/serializers.py:1190 build/serializers.py:1279 -#: part/admin.py:41 part/admin.py:408 part/models.py:4102 part/stocktake.py:219 -#: stock/admin.py:156 +#: build/serializers.py:116 build/serializers.py:1235 build/serializers.py:1331 +#: part/admin.py:41 part/admin.py:408 part/models.py:4160 part/stocktake.py:219 +#: stock/admin.py:157 msgid "Part Name" msgstr "Onderdeel naam" -#: build/serializers.py:111 +#: build/serializers.py:128 msgid "Project Code Label" msgstr "" -#: build/serializers.py:172 build/serializers.py:924 -#: templates/js/translated/build.js:1042 templates/js/translated/build.js:1495 +#: build/serializers.py:134 +msgid "Create Child Builds" +msgstr "" + +#: build/serializers.py:135 +msgid "Automatically generate child build orders" +msgstr "" + +#: build/serializers.py:219 build/serializers.py:968 +#: templates/js/translated/build.js:1045 templates/js/translated/build.js:1498 msgid "Build Output" msgstr "Productieuitvoer" -#: build/serializers.py:184 +#: build/serializers.py:231 msgid "Build output does not match the parent build" msgstr "Productieuitvoer komt niet overeen met de bovenliggende productie" -#: build/serializers.py:188 +#: build/serializers.py:235 msgid "Output part does not match BuildOrder part" msgstr "Uitvoeronderdeel komt niet overeen met productieorderonderdeel" -#: build/serializers.py:192 +#: build/serializers.py:239 msgid "This build output has already been completed" msgstr "Deze productieuitvoer is al voltooid" -#: build/serializers.py:203 +#: build/serializers.py:250 msgid "This build output is not fully allocated" msgstr "Deze productieuitvoer is niet volledig toegewezen" -#: build/serializers.py:223 build/serializers.py:270 +#: build/serializers.py:270 build/serializers.py:317 msgid "Enter quantity for build output" msgstr "Voer hoeveelheid in voor productie uitvoer" -#: build/serializers.py:291 +#: build/serializers.py:338 msgid "Integer quantity required for trackable parts" msgstr "Hoeveelheid als geheel getal vereist voor traceerbare onderdelen" -#: build/serializers.py:294 +#: build/serializers.py:341 msgid "Integer quantity required, as the bill of materials contains trackable parts" msgstr "Geheel getal vereist omdat de stuklijst traceerbare onderdelen bevat" -#: build/serializers.py:309 order/serializers.py:678 order/serializers.py:1464 -#: stock/serializers.py:680 templates/js/translated/purchase_order.js:1154 +#: build/serializers.py:356 order/serializers.py:763 order/serializers.py:1590 +#: stock/serializers.py:707 templates/js/translated/purchase_order.js:1137 #: templates/js/translated/stock.js:373 templates/js/translated/stock.js:571 msgid "Serial Numbers" msgstr "Serienummers" -#: build/serializers.py:310 +#: build/serializers.py:357 msgid "Enter serial numbers for build outputs" msgstr "Voer serienummers in voor productieuitvoeren" -#: build/serializers.py:315 build/serializers.py:456 build/serializers.py:528 -#: order/serializers.py:654 order/serializers.py:778 order/serializers.py:1781 -#: part/serializers.py:1212 stock/serializers.py:102 stock/serializers.py:691 -#: stock/serializers.py:851 stock/serializers.py:977 stock/serializers.py:1425 -#: stock/serializers.py:1681 stock/templates/stock/item_base.html:394 +#: build/serializers.py:362 build/serializers.py:500 build/serializers.py:572 +#: order/serializers.py:739 order/serializers.py:880 order/serializers.py:1933 +#: part/serializers.py:1265 stock/serializers.py:103 stock/serializers.py:718 +#: stock/serializers.py:882 stock/serializers.py:1008 stock/serializers.py:1456 +#: stock/serializers.py:1712 stock/templates/stock/item_base.html:391 #: templates/js/translated/barcode.js:578 -#: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1032 -#: templates/js/translated/build.js:1174 templates/js/translated/build.js:2544 -#: templates/js/translated/purchase_order.js:1210 -#: templates/js/translated/purchase_order.js:1320 -#: templates/js/translated/sales_order.js:1547 -#: templates/js/translated/sales_order.js:1655 -#: templates/js/translated/sales_order.js:1663 -#: templates/js/translated/sales_order.js:1742 +#: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1035 +#: templates/js/translated/build.js:1177 templates/js/translated/build.js:2551 +#: templates/js/translated/purchase_order.js:1193 +#: templates/js/translated/purchase_order.js:1303 +#: templates/js/translated/sales_order.js:1513 +#: templates/js/translated/sales_order.js:1636 +#: templates/js/translated/sales_order.js:1644 +#: templates/js/translated/sales_order.js:1723 #: templates/js/translated/stock.js:684 templates/js/translated/stock.js:850 -#: templates/js/translated/stock.js:1067 templates/js/translated/stock.js:2286 -#: templates/js/translated/stock.js:2955 +#: templates/js/translated/stock.js:1067 templates/js/translated/stock.js:2287 +#: templates/js/translated/stock.js:2956 msgid "Location" msgstr "Locatie" -#: build/serializers.py:316 +#: build/serializers.py:363 msgid "Stock location for build output" -msgstr "" +msgstr "Voorraad locatie voor project uitvoer" -#: build/serializers.py:330 +#: build/serializers.py:377 msgid "Auto Allocate Serial Numbers" msgstr "Serienummers automatisch toewijzen" -#: build/serializers.py:331 +#: build/serializers.py:378 msgid "Automatically allocate required items with matching serial numbers" msgstr "Vereiste artikelen automatisch toewijzen met overeenkomende serienummers" -#: build/serializers.py:346 -msgid "Serial numbers must be provided for trackable parts" -msgstr "" - -#: build/serializers.py:371 stock/api.py:1031 +#: build/serializers.py:415 order/serializers.py:858 stock/api.py:1017 +#: stock/models.py:1632 msgid "The following serial numbers already exist or are invalid" msgstr "De volgende serienummers bestaan al of zijn ongeldig" -#: build/serializers.py:418 build/serializers.py:480 build/serializers.py:569 +#: build/serializers.py:462 build/serializers.py:524 build/serializers.py:613 msgid "A list of build outputs must be provided" msgstr "Een lijst van productieuitvoeren moet worden verstrekt" -#: build/serializers.py:457 +#: build/serializers.py:501 msgid "Stock location for scrapped outputs" msgstr "Voorraadlocatie voor geannuleerde outputs" -#: build/serializers.py:463 +#: build/serializers.py:507 msgid "Discard Allocations" msgstr "Toewijzingen weggooien" -#: build/serializers.py:464 +#: build/serializers.py:508 msgid "Discard any stock allocations for scrapped outputs" msgstr "Verwijder alle voorraadtoewijzingen voor geannuleerde outputs" -#: build/serializers.py:469 +#: build/serializers.py:513 msgid "Reason for scrapping build output(s)" msgstr "Reden voor annulering van bouworder(s)" -#: build/serializers.py:529 +#: build/serializers.py:573 msgid "Location for completed build outputs" msgstr "Locatie van voltooide productieuitvoeren" -#: build/serializers.py:535 build/templates/build/build_base.html:159 -#: build/templates/build/detail.html:62 order/models.py:476 -#: order/models.py:1002 order/models.py:2159 order/serializers.py:686 -#: stock/admin.py:164 stock/serializers.py:1028 stock/serializers.py:1569 -#: stock/templates/stock/item_base.html:427 -#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2363 -#: templates/js/translated/purchase_order.js:1371 -#: templates/js/translated/purchase_order.js:1792 +#: build/serializers.py:579 build/templates/build/build_base.html:160 +#: build/templates/build/detail.html:62 order/models.py:488 +#: order/models.py:1029 order/models.py:2198 order/serializers.py:771 +#: stock/admin.py:165 stock/serializers.py:581 stock/serializers.py:1059 +#: stock/serializers.py:1600 stock/templates/stock/item_base.html:424 +#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2366 +#: templates/js/translated/purchase_order.js:1354 +#: templates/js/translated/purchase_order.js:1776 #: templates/js/translated/return_order.js:330 -#: templates/js/translated/sales_order.js:855 -#: templates/js/translated/stock.js:2261 templates/js/translated/stock.js:3079 -#: templates/js/translated/stock.js:3204 +#: templates/js/translated/sales_order.js:814 +#: templates/js/translated/stock.js:2262 templates/js/translated/stock.js:3080 +#: templates/js/translated/stock.js:3205 msgid "Status" -msgstr "" +msgstr "Status" -#: build/serializers.py:541 +#: build/serializers.py:585 msgid "Accept Incomplete Allocation" msgstr "Incomplete Toewijzing Accepteren" -#: build/serializers.py:542 +#: build/serializers.py:586 msgid "Complete outputs if stock has not been fully allocated" msgstr "Voltooi de uitvoer als de voorraad niet volledig is toegewezen" -#: build/serializers.py:654 +#: build/serializers.py:698 msgid "Consume Allocated Stock" -msgstr "" +msgstr "Toegewezen voorraad gebruiken" -#: build/serializers.py:655 +#: build/serializers.py:699 msgid "Consume any stock which has already been allocated to this build" -msgstr "" +msgstr "Verbruik elke voorraad die al is toegewezen aan deze build" -#: build/serializers.py:661 +#: build/serializers.py:705 msgid "Remove Incomplete Outputs" msgstr "Verwijder Incomplete Uitvoeren" -#: build/serializers.py:662 +#: build/serializers.py:706 msgid "Delete any build outputs which have not been completed" msgstr "Verwijder alle productieuitvoeren die niet zijn voltooid" -#: build/serializers.py:689 +#: build/serializers.py:733 msgid "Not permitted" msgstr "Niet toegestaan" -#: build/serializers.py:690 +#: build/serializers.py:734 msgid "Accept as consumed by this build order" msgstr "Accepteer zoals geconsumeerd onder deze bouwopdracht" -#: build/serializers.py:691 +#: build/serializers.py:735 msgid "Deallocate before completing this build order" msgstr "De-alloceren voordat deze bouwopdracht voltooid wordt" -#: build/serializers.py:721 +#: build/serializers.py:765 msgid "Overallocated Stock" msgstr "Overgealloceerde voorraad" -#: build/serializers.py:723 +#: build/serializers.py:767 msgid "How do you want to handle extra stock items assigned to the build order" msgstr "Hoe wilt u omgaan met extra voorraaditems toegewezen aan de bouworder" -#: build/serializers.py:733 +#: build/serializers.py:777 msgid "Some stock items have been overallocated" msgstr "Sommige voorraadartikelen zijn overalloceerd" -#: build/serializers.py:738 +#: build/serializers.py:782 msgid "Accept Unallocated" msgstr "Accepteer Niet-toegewezen" -#: build/serializers.py:739 +#: build/serializers.py:783 msgid "Accept that stock items have not been fully allocated to this build order" msgstr "Accepteer dat voorraadartikelen niet volledig zijn toegewezen aan deze productieorder" -#: build/serializers.py:749 templates/js/translated/build.js:316 +#: build/serializers.py:793 templates/js/translated/build.js:319 msgid "Required stock has not been fully allocated" msgstr "Vereiste voorraad is niet volledig toegewezen" -#: build/serializers.py:754 order/serializers.py:345 order/serializers.py:1365 +#: build/serializers.py:798 order/serializers.py:430 order/serializers.py:1491 msgid "Accept Incomplete" msgstr "Accepteer Onvolledig" -#: build/serializers.py:755 +#: build/serializers.py:799 msgid "Accept that the required number of build outputs have not been completed" msgstr "Accepteer dat het vereist aantal productieuitvoeren niet is voltooid" -#: build/serializers.py:765 templates/js/translated/build.js:320 +#: build/serializers.py:809 templates/js/translated/build.js:323 msgid "Required build quantity has not been completed" msgstr "Vereiste productiehoeveelheid is voltooid" -#: build/serializers.py:774 +#: build/serializers.py:818 msgid "Build order has open child build orders" msgstr "" -#: build/serializers.py:777 +#: build/serializers.py:821 msgid "Build order must be in production state" msgstr "" -#: build/serializers.py:780 templates/js/translated/build.js:304 +#: build/serializers.py:824 templates/js/translated/build.js:307 msgid "Build order has incomplete outputs" msgstr "Productieorder heeft onvolledige uitvoeren" -#: build/serializers.py:818 +#: build/serializers.py:862 msgid "Build Line" msgstr "Productielijn" -#: build/serializers.py:828 +#: build/serializers.py:872 msgid "Build output" msgstr "Productieuitvoer" -#: build/serializers.py:836 +#: build/serializers.py:880 msgid "Build output must point to the same build" msgstr "Productieuitvoer moet naar dezelfde productie wijzen" -#: build/serializers.py:872 +#: build/serializers.py:916 msgid "Build Line Item" msgstr "Bouw lijn-item" -#: build/serializers.py:886 +#: build/serializers.py:930 msgid "bom_item.part must point to the same part as the build order" msgstr "bom_item.part moet naar hetzelfde onderdeel wijzen als de productieorder" -#: build/serializers.py:901 stock/serializers.py:1294 +#: build/serializers.py:945 stock/serializers.py:1325 msgid "Item must be in stock" msgstr "Artikel moet op voorraad zijn" -#: build/serializers.py:949 order/serializers.py:1351 +#: build/serializers.py:993 order/serializers.py:1477 #, python-brace-format msgid "Available quantity ({q}) exceeded" msgstr "Beschikbare hoeveelheid ({q}) overschreden" -#: build/serializers.py:955 +#: build/serializers.py:999 msgid "Build output must be specified for allocation of tracked parts" msgstr "Productieuitvoer moet worden opgegeven voor de toewijzing van gevolgde onderdelen" -#: build/serializers.py:962 +#: build/serializers.py:1006 msgid "Build output cannot be specified for allocation of untracked parts" msgstr "Productieuitvoer kan niet worden gespecificeerd voor de toewijzing van niet gevolgde onderdelen" -#: build/serializers.py:986 order/serializers.py:1610 +#: build/serializers.py:1030 order/serializers.py:1750 msgid "Allocation items must be provided" msgstr "Allocaties voor artikelen moeten worden opgegeven" -#: build/serializers.py:1049 +#: build/serializers.py:1093 msgid "Stock location where parts are to be sourced (leave blank to take from any location)" msgstr "Voorraadlocatie waar onderdelen afkomstig zijn (laat leeg om van elke locatie te nemen)" -#: build/serializers.py:1057 +#: build/serializers.py:1101 msgid "Exclude Location" msgstr "Locatie uitsluiten" -#: build/serializers.py:1058 +#: build/serializers.py:1102 msgid "Exclude stock items from this selected location" msgstr "Voorraadartikelen van deze geselecteerde locatie uitsluiten" -#: build/serializers.py:1063 +#: build/serializers.py:1107 msgid "Interchangeable Stock" msgstr "Uitwisselbare voorraad" -#: build/serializers.py:1064 +#: build/serializers.py:1108 msgid "Stock items in multiple locations can be used interchangeably" msgstr "Voorraadartikelen op meerdere locaties kunnen uitwisselbaar worden gebruikt" -#: build/serializers.py:1069 +#: build/serializers.py:1113 msgid "Substitute Stock" msgstr "Vervangende Voorraad" -#: build/serializers.py:1070 +#: build/serializers.py:1114 msgid "Allow allocation of substitute parts" msgstr "Toewijzing van vervangende onderdelen toestaan" -#: build/serializers.py:1075 +#: build/serializers.py:1119 msgid "Optional Items" msgstr "Optionele Items" -#: build/serializers.py:1076 +#: build/serializers.py:1120 msgid "Allocate optional BOM items to build order" msgstr "Alloceer optionele BOM items om bestelling te bouwen" -#: build/serializers.py:1098 +#: build/serializers.py:1143 msgid "Failed to start auto-allocation task" msgstr "" -#: build/serializers.py:1181 +#: build/serializers.py:1226 stock/serializers.py:585 msgid "Supplier Part Number" msgstr "" -#: build/serializers.py:1182 company/models.py:506 +#: build/serializers.py:1227 company/models.py:503 stock/serializers.py:591 msgid "Manufacturer Part Number" msgstr "Fabrikant artikel nummer (MPN)" -#: build/serializers.py:1183 stock/admin.py:53 stock/admin.py:175 -#: stock/serializers.py:457 +#: build/serializers.py:1228 stock/admin.py:53 stock/admin.py:176 +#: stock/serializers.py:467 msgid "Location Name" -msgstr "" +msgstr "Locatie naam" -#: build/serializers.py:1184 +#: build/serializers.py:1229 build/serializers.py:1327 msgid "Build Reference" msgstr "" -#: build/serializers.py:1185 +#: build/serializers.py:1230 msgid "BOM Reference" msgstr "" -#: build/serializers.py:1186 company/models.py:852 -#: company/templates/company/supplier_part.html:160 order/serializers.py:690 -#: stock/admin.py:228 stock/models.py:818 stock/serializers.py:1579 -#: stock/templates/stock/item_base.html:240 -#: templates/js/translated/company.js:1646 -#: templates/js/translated/purchase_order.js:1169 -#: templates/js/translated/purchase_order.js:1332 +#: build/serializers.py:1231 company/models.py:849 +#: company/templates/company/supplier_part.html:161 order/serializers.py:775 +#: stock/admin.py:229 stock/models.py:895 stock/serializers.py:1610 +#: stock/templates/stock/item_base.html:237 +#: templates/js/translated/company.js:1647 +#: templates/js/translated/purchase_order.js:1152 +#: templates/js/translated/purchase_order.js:1315 #: templates/js/translated/stock.js:1214 templates/js/translated/stock.js:1246 -#: templates/js/translated/stock.js:2509 +#: templates/js/translated/stock.js:2510 msgid "Packaging" -msgstr "" +msgstr "Verpakking" -#: build/serializers.py:1189 part/admin.py:39 part/admin.py:398 -#: part/models.py:4101 part/stocktake.py:218 stock/admin.py:152 +#: build/serializers.py:1234 part/admin.py:39 part/admin.py:398 +#: part/models.py:4159 part/stocktake.py:218 stock/admin.py:153 msgid "Part ID" msgstr "Onderdeel-id" -#: build/serializers.py:1191 build/serializers.py:1280 part/admin.py:402 -#: part/models.py:4103 +#: build/serializers.py:1236 build/serializers.py:1332 part/admin.py:402 +#: part/models.py:4161 msgid "Part IPN" msgstr "" -#: build/serializers.py:1192 build/serializers.py:1282 part/admin.py:45 +#: build/serializers.py:1237 build/serializers.py:1334 part/admin.py:45 #: part/stocktake.py:220 msgid "Part Description" msgstr "Onderdeel omschrijving" -#: build/serializers.py:1195 +#: build/serializers.py:1240 msgid "BOM Part ID" msgstr "" -#: build/serializers.py:1196 +#: build/serializers.py:1241 msgid "BOM Part Name" msgstr "" -#: build/serializers.py:1199 +#: build/serializers.py:1244 #: report/templates/report/inventree_return_order_report.html:25 -#: report/templates/report/inventree_test_report.html:88 stock/models.py:845 -#: stock/serializers.py:151 stock/templates/stock/item_base.html:311 -#: templates/js/translated/build.js:520 templates/js/translated/build.js:1540 -#: templates/js/translated/build.js:2527 -#: templates/js/translated/model_renderers.js:231 +#: report/templates/report/inventree_sales_order_shipment_report.html:45 +#: report/templates/report/inventree_test_report.html:88 stock/models.py:922 +#: stock/serializers.py:152 stock/templates/stock/item_base.html:308 +#: templates/js/translated/build.js:523 templates/js/translated/build.js:1543 +#: templates/js/translated/build.js:2534 +#: templates/js/translated/model_renderers.js:234 #: templates/js/translated/return_order.js:539 #: templates/js/translated/return_order.js:722 -#: templates/js/translated/sales_order.js:315 -#: templates/js/translated/sales_order.js:1647 -#: templates/js/translated/sales_order.js:1732 +#: templates/js/translated/sales_order.js:1628 +#: templates/js/translated/sales_order.js:1713 #: templates/js/translated/stock.js:602 msgid "Serial Number" msgstr "Serienummer" -#: build/serializers.py:1212 stock/serializers.py:593 -#: templates/js/translated/build.js:1017 templates/js/translated/build.js:1164 -#: templates/js/translated/build.js:2516 +#: build/serializers.py:1257 stock/serializers.py:620 +#: templates/js/translated/build.js:1020 templates/js/translated/build.js:1167 +#: templates/js/translated/build.js:2523 msgid "Allocated Quantity" -msgstr "" +msgstr "Toegewezen hoeveelheid" -#: build/serializers.py:1213 stock/templates/stock/item_base.html:340 +#: build/serializers.py:1258 stock/templates/stock/item_base.html:337 msgid "Available Quantity" -msgstr "" +msgstr "Beschikbare hoeveelheid" -#: build/serializers.py:1283 +#: build/serializers.py:1335 msgid "Part Category ID" msgstr "" -#: build/serializers.py:1284 +#: build/serializers.py:1336 msgid "Part Category Name" msgstr "" -#: build/serializers.py:1291 common/models.py:1513 part/admin.py:113 -#: part/models.py:1166 templates/js/translated/table_filters.js:150 +#: build/serializers.py:1345 common/models.py:1582 part/admin.py:113 +#: part/models.py:1227 templates/js/translated/build.js:2738 +#: templates/js/translated/table_filters.js:150 #: templates/js/translated/table_filters.js:230 #: templates/js/translated/table_filters.js:783 msgid "Trackable" msgstr "Volgbaar" -#: build/serializers.py:1292 +#: build/serializers.py:1346 msgid "Inherited" msgstr "" -#: build/serializers.py:1293 part/models.py:4313 +#: build/serializers.py:1347 part/models.py:4370 #: part/templates/part/upload_bom.html:56 templates/js/translated/bom.js:1046 -#: templates/js/translated/build.js:2711 +#: templates/js/translated/build.js:2720 msgid "Allow Variants" msgstr "" -#: build/serializers.py:1297 part/models.py:4110 part/models.py:4584 +#: build/serializers.py:1351 part/models.py:4168 part/models.py:4646 #: stock/api.py:794 msgid "BOM Item" msgstr "Stuklijstartikel" -#: build/serializers.py:1306 build/templates/build/detail.html:236 +#: build/serializers.py:1370 build/templates/build/detail.html:236 #: build/templates/build/sidebar.html:16 templates/js/translated/index.js:130 msgid "Allocated Stock" -msgstr "" +msgstr "Toegewezen voorraad" -#: build/serializers.py:1311 order/serializers.py:1175 part/admin.py:132 -#: part/bom.py:181 part/serializers.py:899 part/serializers.py:1602 -#: part/templates/part/part_base.html:210 templates/js/translated/bom.js:1208 -#: templates/js/translated/build.js:2804 templates/js/translated/part.js:712 +#: build/serializers.py:1375 order/serializers.py:1209 part/admin.py:132 +#: part/bom.py:186 part/serializers.py:951 part/serializers.py:1660 +#: part/templates/part/part_base.html:211 templates/js/translated/bom.js:1208 +#: templates/js/translated/build.js:2822 templates/js/translated/part.js:712 #: templates/js/translated/part.js:2155 #: templates/js/translated/table_filters.js:177 msgid "On Order" msgstr "In bestelling" -#: build/serializers.py:1316 order/serializers.py:1176 part/serializers.py:1604 -#: templates/js/translated/build.js:2808 +#: build/serializers.py:1380 order/serializers.py:1210 part/serializers.py:1662 +#: templates/js/translated/build.js:2826 #: templates/js/translated/table_filters.js:367 msgid "In Production" msgstr "" -#: build/serializers.py:1321 part/bom.py:180 part/serializers.py:1629 -#: part/templates/part/part_base.html:192 -#: templates/js/translated/sales_order.js:1929 +#: build/serializers.py:1384 part/serializers.py:958 +msgid "External Stock" +msgstr "Externe voorraad" + +#: build/serializers.py:1385 part/bom.py:185 part/serializers.py:1687 +#: part/templates/part/part_base.html:193 +#: templates/js/translated/sales_order.js:1910 msgid "Available Stock" msgstr "Beschikbare Voorraad" -#: build/serializers.py:1325 +#: build/serializers.py:1386 msgid "Available Substitute Stock" -msgstr "" +msgstr "Beschikbare vervanging voorraad" -#: build/serializers.py:1326 +#: build/serializers.py:1387 msgid "Available Variant Stock" -msgstr "" +msgstr "Beschikbare varianten voorraad" -#: build/serializers.py:1327 -msgid "Total Available Stock" -msgstr "" - -#: build/serializers.py:1328 part/serializers.py:906 -msgid "External Stock" -msgstr "" - -#: build/status_codes.py:11 generic/states/tests.py:17 order/status_codes.py:12 -#: order/status_codes.py:42 order/status_codes.py:74 order/status_codes.py:98 +#: build/status_codes.py:11 generic/states/tests.py:21 +#: generic/states/tests.py:131 order/status_codes.py:12 +#: order/status_codes.py:44 order/status_codes.py:76 order/status_codes.py:102 #: templates/js/translated/table_filters.js:601 msgid "Pending" msgstr "Bezig" @@ -1722,21 +1750,21 @@ msgstr "Bezig" msgid "Production" msgstr "Productie" -#: build/status_codes.py:13 order/status_codes.py:14 order/status_codes.py:49 -#: order/status_codes.py:79 +#: build/status_codes.py:13 order/status_codes.py:14 order/status_codes.py:51 +#: order/status_codes.py:81 msgid "On Hold" msgstr "" -#: build/status_codes.py:14 order/status_codes.py:16 order/status_codes.py:51 -#: order/status_codes.py:82 +#: build/status_codes.py:14 order/status_codes.py:16 order/status_codes.py:53 +#: order/status_codes.py:84 msgid "Cancelled" msgstr "Geannuleerd" -#: build/status_codes.py:15 generic/states/tests.py:19 importer/models.py:509 -#: importer/status_codes.py:19 order/status_codes.py:15 -#: order/status_codes.py:50 order/status_codes.py:81 -#: order/templates/order/order_base.html:163 -#: order/templates/order/sales_order_base.html:168 report/models.py:443 +#: build/status_codes.py:15 generic/states/tests.py:23 importer/models.py:518 +#: importer/status_codes.py:27 order/status_codes.py:15 +#: order/status_codes.py:52 order/status_codes.py:83 +#: order/templates/order/order_base.html:172 +#: order/templates/order/sales_order_base.html:169 report/models.py:451 msgid "Complete" msgstr "Voltooid" @@ -1744,165 +1772,162 @@ msgstr "Voltooid" msgid "Stock required for build order" msgstr "Voorraad vereist voor productieorder" -#: build/tasks.py:201 +#: build/tasks.py:260 msgid "Overdue Build Order" msgstr "Achterstallige Productieorder" -#: build/tasks.py:206 +#: build/tasks.py:265 #, python-brace-format msgid "Build order {bo} is now overdue" msgstr "Productieorder {bo} is nu achterstallig" -#: build/templates/build/build_base.html:18 +#: build/templates/build/build_base.html:19 msgid "Part thumbnail" msgstr "Miniatuurweergave van onderdeel" -#: build/templates/build/build_base.html:38 -#: company/templates/company/supplier_part.html:35 -#: order/templates/order/order_base.html:29 -#: order/templates/order/return_order_base.html:38 -#: order/templates/order/sales_order_base.html:38 -#: part/templates/part/part_base.html:41 -#: stock/templates/stock/item_base.html:40 -#: stock/templates/stock/location.html:52 +#: build/templates/build/build_base.html:39 +#: company/templates/company/supplier_part.html:36 +#: order/templates/order/order_base.html:30 +#: order/templates/order/return_order_base.html:39 +#: order/templates/order/sales_order_base.html:39 +#: part/templates/part/part_base.html:42 +#: stock/templates/stock/item_base.html:41 +#: stock/templates/stock/location.html:53 #: templates/js/translated/filters.js:338 msgid "Barcode actions" msgstr "Barcode acties" -#: build/templates/build/build_base.html:42 -#: company/templates/company/supplier_part.html:39 -#: order/templates/order/order_base.html:33 -#: order/templates/order/return_order_base.html:42 -#: order/templates/order/sales_order_base.html:42 -#: part/templates/part/part_base.html:44 -#: stock/templates/stock/item_base.html:44 -#: stock/templates/stock/location.html:54 templates/qr_button.html:1 +#: build/templates/build/build_base.html:43 +#: company/templates/company/supplier_part.html:40 +#: order/templates/order/order_base.html:34 +#: order/templates/order/return_order_base.html:43 +#: order/templates/order/sales_order_base.html:43 +#: part/templates/part/part_base.html:45 +#: stock/templates/stock/item_base.html:45 +#: stock/templates/stock/location.html:55 templates/qr_button.html:1 msgid "Show QR Code" msgstr "QR-code weergeven" -#: build/templates/build/build_base.html:45 -#: company/templates/company/supplier_part.html:41 -#: order/templates/order/order_base.html:36 -#: order/templates/order/return_order_base.html:45 -#: order/templates/order/sales_order_base.html:45 -#: part/templates/part/part_base.html:47 -#: stock/templates/stock/item_base.html:47 -#: stock/templates/stock/location.html:56 +#: build/templates/build/build_base.html:46 +#: company/templates/company/supplier_part.html:42 +#: order/templates/order/order_base.html:37 +#: order/templates/order/return_order_base.html:46 +#: order/templates/order/sales_order_base.html:46 +#: part/templates/part/part_base.html:48 +#: stock/templates/stock/item_base.html:48 +#: stock/templates/stock/location.html:57 #: templates/js/translated/barcode.js:527 #: templates/js/translated/barcode.js:532 msgid "Unlink Barcode" msgstr "Barcode loskoppelen" -#: build/templates/build/build_base.html:47 -#: company/templates/company/supplier_part.html:43 -#: order/templates/order/order_base.html:38 -#: order/templates/order/return_order_base.html:47 -#: order/templates/order/sales_order_base.html:47 -#: part/templates/part/part_base.html:49 -#: stock/templates/stock/item_base.html:49 -#: stock/templates/stock/location.html:58 +#: build/templates/build/build_base.html:48 +#: company/templates/company/supplier_part.html:44 +#: order/templates/order/order_base.html:39 +#: order/templates/order/return_order_base.html:48 +#: order/templates/order/sales_order_base.html:48 +#: part/templates/part/part_base.html:50 +#: stock/templates/stock/item_base.html:50 +#: stock/templates/stock/location.html:59 msgid "Link Barcode" msgstr "Koppel Barcode" -#: build/templates/build/build_base.html:56 -#: order/templates/order/order_base.html:46 -#: order/templates/order/return_order_base.html:55 -#: order/templates/order/sales_order_base.html:55 +#: build/templates/build/build_base.html:57 +#: order/templates/order/order_base.html:47 +#: order/templates/order/return_order_base.html:56 +#: order/templates/order/sales_order_base.html:56 msgid "Print actions" msgstr "Afdruk acties" -#: build/templates/build/build_base.html:60 +#: build/templates/build/build_base.html:61 msgid "Print build order report" msgstr "Print productieorderrapport" -#: build/templates/build/build_base.html:67 +#: build/templates/build/build_base.html:68 msgid "Build actions" msgstr "Productie acties" -#: build/templates/build/build_base.html:71 +#: build/templates/build/build_base.html:72 msgid "Edit Build" msgstr "Bewerk Productie" -#: build/templates/build/build_base.html:73 +#: build/templates/build/build_base.html:74 msgid "Duplicate Build" msgstr "Dupliceer Bouw" -#: build/templates/build/build_base.html:76 +#: build/templates/build/build_base.html:77 msgid "Hold Build" msgstr "" -#: build/templates/build/build_base.html:79 +#: build/templates/build/build_base.html:80 msgid "Cancel Build" msgstr "Annuleer Productie" -#: build/templates/build/build_base.html:82 +#: build/templates/build/build_base.html:83 msgid "Delete Build" msgstr "Verwijder Productie" -#: build/templates/build/build_base.html:87 -msgid "Isueue Build" -msgstr "" - #: build/templates/build/build_base.html:88 +#: build/templates/build/build_base.html:89 msgid "Issue Build" msgstr "" -#: build/templates/build/build_base.html:91 #: build/templates/build/build_base.html:92 +#: build/templates/build/build_base.html:93 msgid "Complete Build" msgstr "Voltooi Productie" -#: build/templates/build/build_base.html:115 +#: build/templates/build/build_base.html:116 msgid "Build Description" msgstr "Productiebeschrijving" -#: build/templates/build/build_base.html:125 +#: build/templates/build/build_base.html:126 msgid "No build outputs have been created for this build order" msgstr "Er zijn geen productuitvoeren aangemaakt voor deze productieorder" -#: build/templates/build/build_base.html:132 +#: build/templates/build/build_base.html:133 msgid "Build Order is ready to mark as completed" msgstr "Productieorder is gereed om te markeren als voltooid" -#: build/templates/build/build_base.html:137 +#: build/templates/build/build_base.html:138 msgid "Build Order cannot be completed as outstanding outputs remain" msgstr "Productieorder kan niet worden voltooid omdat er nog producties openstaan" -#: build/templates/build/build_base.html:142 +#: build/templates/build/build_base.html:143 msgid "Required build quantity has not yet been completed" msgstr "Vereiste Producthoeveelheid is nog niet bereikt" -#: build/templates/build/build_base.html:147 +#: build/templates/build/build_base.html:148 msgid "Stock has not been fully allocated to this Build Order" msgstr "Voorraad is niet volledig toegewezen aan deze productieorder" -#: build/templates/build/build_base.html:168 -#: build/templates/build/detail.html:138 order/models.py:308 -#: order/models.py:1391 order/serializers.py:174 -#: order/templates/order/order_base.html:191 -#: order/templates/order/return_order_base.html:167 -#: order/templates/order/sales_order_base.html:199 +#: build/templates/build/build_base.html:169 +#: build/templates/build/detail.html:138 order/models.py:315 +#: order/models.py:1408 order/serializers.py:254 +#: order/templates/order/order_base.html:200 +#: order/templates/order/return_order_base.html:168 +#: order/templates/order/sales_order_base.html:200 #: report/templates/report/inventree_build_order_report.html:125 -#: templates/js/translated/build.js:2411 templates/js/translated/part.js:1837 -#: templates/js/translated/purchase_order.js:1809 -#: templates/js/translated/purchase_order.js:2217 +#: templates/js/translated/build.js:2414 templates/js/translated/part.js:1837 +#: templates/js/translated/purchase_order.js:1793 +#: templates/js/translated/purchase_order.js:2201 #: templates/js/translated/return_order.js:346 #: templates/js/translated/return_order.js:749 -#: templates/js/translated/sales_order.js:871 -#: templates/js/translated/sales_order.js:1903 +#: templates/js/translated/sales_order.js:830 +#: templates/js/translated/sales_order.js:1884 msgid "Target Date" msgstr "Streefdatum" -#: build/templates/build/build_base.html:173 +#: build/templates/build/build_base.html:174 #, python-format msgid "This build was due on %(target)s" msgstr "Deze productie was verwacht op %(target)s" -#: build/templates/build/build_base.html:173 -#: build/templates/build/build_base.html:230 -#: order/templates/order/order_base.html:127 -#: order/templates/order/return_order_base.html:120 -#: order/templates/order/sales_order_base.html:129 +#: build/templates/build/build_base.html:174 +#: build/templates/build/build_base.html:231 +#: order/templates/order/order_base.html:128 +#: order/templates/order/return_order_base.html:121 +#: order/templates/order/sales_order_base.html:130 #: templates/js/translated/table_filters.js:97 #: templates/js/translated/table_filters.js:545 #: templates/js/translated/table_filters.js:629 @@ -1910,49 +1935,50 @@ msgstr "Deze productie was verwacht op %(target)s" msgid "Overdue" msgstr "Achterstallig" -#: build/templates/build/build_base.html:185 +#: build/templates/build/build_base.html:186 #: build/templates/build/detail.html:67 build/templates/build/sidebar.html:13 msgid "Completed Outputs" msgstr "Voltooide Uitvoeren" -#: build/templates/build/build_base.html:198 -#: build/templates/build/detail.html:101 order/api.py:1406 order/models.py:892 -#: order/models.py:1650 order/models.py:1765 order/models.py:1924 -#: order/templates/order/sales_order_base.html:9 -#: order/templates/order/sales_order_base.html:28 +#: build/templates/build/build_base.html:199 +#: build/templates/build/detail.html:101 order/api.py:1528 order/models.py:914 +#: order/models.py:1666 order/models.py:1794 order/models.py:1957 +#: order/templates/order/sales_order_base.html:10 +#: order/templates/order/sales_order_base.html:29 #: report/templates/report/inventree_build_order_report.html:135 #: report/templates/report/inventree_sales_order_report.html:14 -#: stock/templates/stock/item_base.html:369 +#: report/templates/report/inventree_sales_order_shipment_report.html:15 +#: stock/templates/stock/item_base.html:366 #: templates/email/overdue_sales_order.html:15 -#: templates/js/translated/pricing.js:929 -#: templates/js/translated/sales_order.js:805 -#: templates/js/translated/sales_order.js:1028 -#: templates/js/translated/stock.js:3008 +#: templates/js/translated/pricing.js:927 +#: templates/js/translated/sales_order.js:764 +#: templates/js/translated/sales_order.js:1001 +#: templates/js/translated/stock.js:3009 msgid "Sales Order" msgstr "Verkooporder" -#: build/templates/build/build_base.html:219 -#: build/templates/build/detail.html:94 templates/js/translated/build.js:2328 +#: build/templates/build/build_base.html:220 +#: build/templates/build/detail.html:94 templates/js/translated/build.js:2331 msgid "Priority" msgstr "Prioriteit" -#: build/templates/build/build_base.html:267 +#: build/templates/build/build_base.html:268 msgid "Issue Build Order" msgstr "" -#: build/templates/build/build_base.html:271 +#: build/templates/build/build_base.html:272 msgid "Issue this Build Order?" msgstr "" -#: build/templates/build/build_base.html:302 +#: build/templates/build/build_base.html:303 msgid "Delete Build Order" msgstr "" -#: build/templates/build/build_base.html:312 +#: build/templates/build/build_base.html:313 msgid "Build Order QR Code" msgstr "" -#: build/templates/build/build_base.html:324 +#: build/templates/build/build_base.html:325 msgid "Link Barcode to Build Order" msgstr "" @@ -1968,8 +1994,9 @@ msgstr "Voorraadbron" msgid "Stock can be taken from any available location." msgstr "Voorraad kan worden genomen van elke beschikbare locatie." -#: build/templates/build/detail.html:49 order/models.py:1532 -#: templates/js/translated/purchase_order.js:2259 +#: build/templates/build/detail.html:49 order/models.py:548 +#: order/models.py:1548 order/templates/order/order_base.html:135 +#: templates/js/translated/purchase_order.js:2243 msgid "Destination" msgstr "Bestemming" @@ -1981,23 +2008,24 @@ msgstr "Bestemmingslocatie niet opgegeven" msgid "Allocated Parts" msgstr "Toegewezen Onderdelen" -#: build/templates/build/detail.html:80 stock/admin.py:162 -#: stock/templates/stock/item_base.html:162 -#: templates/js/translated/build.js:1553 -#: templates/js/translated/model_renderers.js:242 -#: templates/js/translated/purchase_order.js:1326 +#: build/templates/build/detail.html:80 +#: report/templates/report/inventree_sales_order_shipment_report.html:47 +#: stock/admin.py:163 stock/templates/stock/item_base.html:159 +#: templates/js/translated/build.js:1556 +#: templates/js/translated/model_renderers.js:245 +#: templates/js/translated/purchase_order.js:1309 #: templates/js/translated/stock.js:1139 templates/js/translated/stock.js:1240 -#: templates/js/translated/stock.js:2275 templates/js/translated/stock.js:3211 +#: templates/js/translated/stock.js:2276 templates/js/translated/stock.js:3212 #: templates/js/translated/table_filters.js:320 #: templates/js/translated/table_filters.js:411 msgid "Batch" -msgstr "" +msgstr "Batch" #: build/templates/build/detail.html:133 -#: order/templates/order/order_base.html:178 -#: order/templates/order/return_order_base.html:154 -#: order/templates/order/sales_order_base.html:193 -#: templates/js/translated/build.js:2371 +#: order/templates/order/order_base.html:187 +#: order/templates/order/return_order_base.html:155 +#: order/templates/order/sales_order_base.html:194 +#: templates/js/translated/build.js:2374 msgid "Created" msgstr "Gecreëerd" @@ -2005,8 +2033,8 @@ msgstr "Gecreëerd" msgid "No target date set" msgstr "Geen doeldatum ingesteld" -#: build/templates/build/detail.html:149 -#: order/templates/order/sales_order_base.html:209 +#: build/templates/build/detail.html:149 order/api.py:794 +#: order/templates/order/sales_order_base.html:210 #: templates/js/translated/table_filters.js:692 msgid "Completed" msgstr "Voltooid" @@ -2052,13 +2080,13 @@ msgid "Order required parts" msgstr "Vereiste onderdelen bestellen" #: build/templates/build/detail.html:192 -#: templates/js/translated/purchase_order.js:795 +#: templates/js/translated/purchase_order.js:778 msgid "Order Parts" msgstr "Onderdelen bestellen" #: build/templates/build/detail.html:205 msgid "Available stock has been filtered based on specified source location for this build order" -msgstr "" +msgstr "De beschikbare voorraad is gefilterd op basis van de opgegeven bron locatie voor deze build order" #: build/templates/build/detail.html:215 msgid "Incomplete Build Outputs" @@ -2120,7 +2148,7 @@ msgstr "Nieuwe Productieorder" msgid "Build Order Details" msgstr "Productieorderdetails" -#: build/templates/build/sidebar.html:8 order/serializers.py:82 +#: build/templates/build/sidebar.html:8 order/serializers.py:113 #: order/templates/order/po_sidebar.html:5 #: order/templates/order/return_order_detail.html:18 #: order/templates/order/so_sidebar.html:5 @@ -2139,43 +2167,38 @@ msgstr "Onvolledige Productieuitvoeren" msgid "Test Statistics" msgstr "" -#: common/api.py:693 +#: common/api.py:725 msgid "Is Link" msgstr "" -#: common/api.py:701 +#: common/api.py:733 msgid "Is File" msgstr "" -#: common/api.py:744 +#: common/api.py:776 msgid "User does not have permission to delete these attachments" msgstr "" -#: common/api.py:761 +#: common/api.py:793 msgid "User does not have permission to delete this attachment" msgstr "" -#: common/currency.py:132 +#: common/currency.py:134 msgid "Invalid currency code" msgstr "" -#: common/currency.py:134 +#: common/currency.py:136 msgid "Duplicate currency code" msgstr "" -#: common/currency.py:139 +#: common/currency.py:141 msgid "No valid currency codes provided" msgstr "" -#: common/currency.py:156 +#: common/currency.py:158 msgid "No plugin" msgstr "Geen plug-in gevonden" -#: common/files.py:63 -#, python-brace-format -msgid "Unsupported file format: {fmt}" -msgstr "Niet-ondersteunde bestandsindeling: {fmt}" - #: common/files.py:65 msgid "Error reading file (invalid encoding)" msgstr "Fout bij lezen bestand (ongeldige codering)" @@ -2192,1883 +2215,2039 @@ msgstr "Fout bij lezen bestand (onjuiste afmeting)" msgid "Error reading file (data could be corrupted)" msgstr "Fout bij lezen bestand (gegevens kunnen beschadigd zijn)" -#: common/forms.py:12 +#: common/forms.py:12 common/forms.py:25 msgid "File" msgstr "Bestand" -#: common/forms.py:12 +#: common/forms.py:12 common/forms.py:26 msgid "Select file to upload" msgstr "Selecteer bestand om te uploaden" -#: common/forms.py:25 -msgid "{name.title()} File" -msgstr "{name.title()} Bestand" - -#: common/forms.py:26 -#, python-brace-format -msgid "Select {name} file to upload" -msgstr "Kies {name} bestand om te uploaden" - -#: common/models.py:86 +#: common/models.py:89 msgid "Updated" msgstr "Bijgewerkt" -#: common/models.py:87 +#: common/models.py:90 msgid "Timestamp of last update" msgstr "Tijdstempel van laatste update" -#: common/models.py:120 +#: common/models.py:123 msgid "Site URL is locked by configuration" msgstr "" -#: common/models.py:150 +#: common/models.py:153 msgid "Unique project code" msgstr "Unieke projectcode" -#: common/models.py:157 +#: common/models.py:160 msgid "Project description" msgstr "Projectbeschrijving" -#: common/models.py:166 +#: common/models.py:169 msgid "User or group responsible for this project" msgstr "" -#: common/models.py:783 -msgid "Settings key (must be unique - case insensitive)" -msgstr "Instellingssleutel (moet uniek zijn - hoofdletter ongevoelig)" +#: common/models.py:783 common/models.py:2236 common/models.py:2613 +msgid "Settings key" +msgstr "Instellingen" #: common/models.py:787 msgid "Settings value" msgstr "Instellingswaarde" -#: common/models.py:839 +#: common/models.py:842 msgid "Chosen value is not a valid option" msgstr "Gekozen waarde is geen geldige optie" -#: common/models.py:855 +#: common/models.py:858 msgid "Value must be a boolean value" msgstr "Waarde moet een booleaanse waarde zijn" -#: common/models.py:863 +#: common/models.py:866 msgid "Value must be an integer value" msgstr "Waarde moet een geheel getal zijn" -#: common/models.py:900 +#: common/models.py:874 +msgid "Value must be a valid number" +msgstr "" + +#: common/models.py:899 +msgid "Value does not pass validation checks" +msgstr "" + +#: common/models.py:921 msgid "Key string must be unique" msgstr "Sleutelreeks moet uniek zijn" -#: common/models.py:1132 +#: common/models.py:1189 msgid "No group" msgstr "Geen groep" -#: common/models.py:1231 +#: common/models.py:1288 msgid "Restart required" msgstr "Opnieuw opstarten vereist" -#: common/models.py:1233 +#: common/models.py:1290 msgid "A setting has been changed which requires a server restart" msgstr "Een instelling is gewijzigd waarvoor een herstart van de server vereist is" -#: common/models.py:1240 +#: common/models.py:1297 msgid "Pending migrations" msgstr "Migraties in behandeling" -#: common/models.py:1241 +#: common/models.py:1298 msgid "Number of pending database migrations" msgstr "" -#: common/models.py:1246 +#: common/models.py:1303 msgid "Server Instance Name" msgstr "ID Serverinstantie" -#: common/models.py:1248 +#: common/models.py:1305 msgid "String descriptor for the server instance" msgstr "Stringbeschrijving voor de server instantie" -#: common/models.py:1252 +#: common/models.py:1309 msgid "Use instance name" msgstr "Gebruik de instantie naam" -#: common/models.py:1253 +#: common/models.py:1310 msgid "Use the instance name in the title-bar" msgstr "Gebruik de naam van de instantie in de titelbalk" -#: common/models.py:1258 +#: common/models.py:1315 msgid "Restrict showing `about`" msgstr "Tonen `over` beperken" -#: common/models.py:1259 +#: common/models.py:1316 msgid "Show the `about` modal only to superusers" msgstr "Toon de `over` modal alleen aan superusers" -#: common/models.py:1264 company/models.py:111 company/models.py:112 +#: common/models.py:1321 company/models.py:108 company/models.py:109 msgid "Company name" msgstr "Bedrijfsnaam" -#: common/models.py:1265 +#: common/models.py:1322 msgid "Internal company name" msgstr "Interne bedrijfsnaam" -#: common/models.py:1269 +#: common/models.py:1326 msgid "Base URL" msgstr "Basis-URL" -#: common/models.py:1270 +#: common/models.py:1327 msgid "Base URL for server instance" msgstr "Basis URL voor serverinstantie" -#: common/models.py:1276 +#: common/models.py:1333 msgid "Default Currency" msgstr "Standaard Valuta" -#: common/models.py:1277 +#: common/models.py:1334 msgid "Select base currency for pricing calculations" msgstr "Selecteer basisvaluta voor de berekening van prijzen" -#: common/models.py:1283 +#: common/models.py:1340 msgid "Supported Currencies" msgstr "" -#: common/models.py:1284 +#: common/models.py:1341 msgid "List of supported currency codes" msgstr "" -#: common/models.py:1290 +#: common/models.py:1347 msgid "Currency Update Interval" msgstr "" -#: common/models.py:1292 +#: common/models.py:1349 msgid "How often to update exchange rates (set to zero to disable)" msgstr "" -#: common/models.py:1295 common/models.py:1351 common/models.py:1364 -#: common/models.py:1372 common/models.py:1381 common/models.py:1390 -#: common/models.py:1627 common/models.py:1649 common/models.py:1764 -#: common/models.py:2146 +#: common/models.py:1352 common/models.py:1408 common/models.py:1421 +#: common/models.py:1429 common/models.py:1438 common/models.py:1447 +#: common/models.py:1696 common/models.py:1718 common/models.py:1819 +#: common/models.py:2208 msgid "days" msgstr "dagen" -#: common/models.py:1299 +#: common/models.py:1356 msgid "Currency Update Plugin" msgstr "" -#: common/models.py:1300 +#: common/models.py:1357 msgid "Currency update plugin to use" msgstr "" -#: common/models.py:1305 +#: common/models.py:1362 msgid "Download from URL" msgstr "Download van URL" -#: common/models.py:1307 +#: common/models.py:1364 msgid "Allow download of remote images and files from external URL" msgstr "Download van afbeeldingen en bestanden vanaf een externe URL toestaan" -#: common/models.py:1313 +#: common/models.py:1370 msgid "Download Size Limit" msgstr "Download limiet" -#: common/models.py:1314 +#: common/models.py:1371 msgid "Maximum allowable download size for remote image" msgstr "Maximale downloadgrootte voor externe afbeelding" -#: common/models.py:1320 +#: common/models.py:1377 msgid "User-agent used to download from URL" msgstr "User-agent gebruikt om te downloaden van URL" -#: common/models.py:1322 +#: common/models.py:1379 msgid "Allow to override the user-agent used to download images and files from external URL (leave blank for the default)" msgstr "Sta toe om de user-agent te overschrijven die gebruikt wordt om afbeeldingen en bestanden van externe URL te downloaden (laat leeg voor de standaard)" -#: common/models.py:1327 +#: common/models.py:1384 msgid "Strict URL Validation" msgstr "" -#: common/models.py:1328 +#: common/models.py:1385 msgid "Require schema specification when validating URLs" msgstr "" -#: common/models.py:1333 +#: common/models.py:1390 msgid "Require confirm" msgstr "Bevestiging vereist" -#: common/models.py:1334 +#: common/models.py:1391 msgid "Require explicit user confirmation for certain action." msgstr "Vereis expliciete bevestiging van de gebruiker voor bepaalde actie." -#: common/models.py:1339 +#: common/models.py:1396 msgid "Tree Depth" msgstr "Boomstructuur Diepte" -#: common/models.py:1341 +#: common/models.py:1398 msgid "Default tree depth for treeview. Deeper levels can be lazy loaded as they are needed." msgstr "Standaard diepte voor treeview. Diepere niveaus kunnen geladen worden wanneer ze nodig zijn." -#: common/models.py:1347 +#: common/models.py:1404 msgid "Update Check Interval" msgstr "Interval voor update" -#: common/models.py:1348 +#: common/models.py:1405 msgid "How often to check for updates (set to zero to disable)" msgstr "Hoe vaak te controleren op updates (nul om uit te schakelen)" -#: common/models.py:1354 +#: common/models.py:1411 msgid "Automatic Backup" msgstr "Automatische backup" -#: common/models.py:1355 +#: common/models.py:1412 msgid "Enable automatic backup of database and media files" msgstr "Automatische back-up van database- en mediabestanden inschakelen" -#: common/models.py:1360 +#: common/models.py:1417 msgid "Auto Backup Interval" msgstr "Automatische backup interval" -#: common/models.py:1361 +#: common/models.py:1418 msgid "Specify number of days between automated backup events" msgstr "Geef het aantal dagen op tussen geautomatiseerde backup" -#: common/models.py:1367 +#: common/models.py:1424 msgid "Task Deletion Interval" msgstr "Interval Taak Verwijderen" -#: common/models.py:1369 +#: common/models.py:1426 msgid "Background task results will be deleted after specified number of days" msgstr "Resultaten van achtergrondtaken worden verwijderd na het opgegeven aantal dagen" -#: common/models.py:1376 +#: common/models.py:1433 msgid "Error Log Deletion Interval" msgstr "Error Log Verwijderings Interval" -#: common/models.py:1378 +#: common/models.py:1435 msgid "Error logs will be deleted after specified number of days" msgstr "Resultaten van achtergrondtaken worden verwijderd na het opgegeven aantal dagen" -#: common/models.py:1385 +#: common/models.py:1442 msgid "Notification Deletion Interval" msgstr "Interval Verwijderen Notificatie" -#: common/models.py:1387 +#: common/models.py:1444 msgid "User notifications will be deleted after specified number of days" msgstr "Meldingen van gebruikers worden verwijderd na het opgegeven aantal dagen" -#: common/models.py:1394 templates/InvenTree/settings/sidebar.html:31 +#: common/models.py:1451 templates/InvenTree/settings/sidebar.html:31 msgid "Barcode Support" msgstr "Streepjescodeondersteuning" -#: common/models.py:1395 +#: common/models.py:1452 msgid "Enable barcode scanner support in the web interface" msgstr "" -#: common/models.py:1400 +#: common/models.py:1457 +msgid "Store Barcode Results" +msgstr "Sla de resultaten van de barcode op" + +#: common/models.py:1458 +msgid "Store barcode scan results in the database" +msgstr "Sla de barcode scan resultaten op in de database" + +#: common/models.py:1463 +msgid "Barcode Scans Maximum Count" +msgstr "Maximale aantal Barcode Scans" + +#: common/models.py:1464 +msgid "Maximum number of barcode scan results to store" +msgstr "Maximum aantal resultaten van de barcode scan op te slaan" + +#: common/models.py:1469 msgid "Barcode Input Delay" msgstr "Barcode Invoer Vertraging" -#: common/models.py:1401 +#: common/models.py:1470 msgid "Barcode input processing delay time" msgstr "Barcode invoerverwerking vertraging" -#: common/models.py:1407 +#: common/models.py:1476 msgid "Barcode Webcam Support" msgstr "Barcode Webcam Ondersteuning" -#: common/models.py:1408 +#: common/models.py:1477 msgid "Allow barcode scanning via webcam in browser" msgstr "Barcode via webcam scannen in browser toestaan" -#: common/models.py:1413 +#: common/models.py:1482 msgid "Barcode Show Data" msgstr "" -#: common/models.py:1414 +#: common/models.py:1483 msgid "Display barcode data in browser as text" msgstr "" -#: common/models.py:1419 +#: common/models.py:1488 msgid "Barcode Generation Plugin" msgstr "" -#: common/models.py:1420 +#: common/models.py:1489 msgid "Plugin to use for internal barcode data generation" msgstr "" -#: common/models.py:1425 +#: common/models.py:1494 msgid "Part Revisions" msgstr "Herzieningen onderdeel" -#: common/models.py:1426 +#: common/models.py:1495 msgid "Enable revision field for Part" msgstr "Revisieveld voor onderdeel inschakelen" -#: common/models.py:1431 +#: common/models.py:1500 msgid "Assembly Revision Only" msgstr "" -#: common/models.py:1432 +#: common/models.py:1501 msgid "Only allow revisions for assembly parts" msgstr "" -#: common/models.py:1437 +#: common/models.py:1506 msgid "Allow Deletion from Assembly" msgstr "" -#: common/models.py:1438 +#: common/models.py:1507 msgid "Allow deletion of parts which are used in an assembly" msgstr "" -#: common/models.py:1443 +#: common/models.py:1512 msgid "IPN Regex" msgstr "" -#: common/models.py:1444 +#: common/models.py:1513 msgid "Regular expression pattern for matching Part IPN" msgstr "Regulier expressiepatroon voor het overeenkomende Onderdeel IPN" -#: common/models.py:1447 +#: common/models.py:1516 msgid "Allow Duplicate IPN" msgstr "Duplicaat IPN toestaan" -#: common/models.py:1448 +#: common/models.py:1517 msgid "Allow multiple parts to share the same IPN" msgstr "Toestaan dat meerdere onderdelen dezelfde IPN gebruiken" -#: common/models.py:1453 +#: common/models.py:1522 msgid "Allow Editing IPN" msgstr "Bewerken IPN toestaan" -#: common/models.py:1454 +#: common/models.py:1523 msgid "Allow changing the IPN value while editing a part" msgstr "Sta het wijzigen van de IPN toe tijdens het bewerken van een onderdeel" -#: common/models.py:1459 +#: common/models.py:1528 msgid "Copy Part BOM Data" msgstr "Kopieer Onderdeel Stuklijstgegevens" -#: common/models.py:1460 +#: common/models.py:1529 msgid "Copy BOM data by default when duplicating a part" msgstr "Kopieer standaard stuklijstgegevens bij het dupliceren van een onderdeel" -#: common/models.py:1465 +#: common/models.py:1534 msgid "Copy Part Parameter Data" msgstr "Kopieer Onderdeel Parametergegevens" -#: common/models.py:1466 +#: common/models.py:1535 msgid "Copy parameter data by default when duplicating a part" msgstr "Parametergegevens standaard kopiëren bij het dupliceren van een onderdeel" -#: common/models.py:1471 +#: common/models.py:1540 msgid "Copy Part Test Data" msgstr "Kopieer Onderdeel Testdata" -#: common/models.py:1472 +#: common/models.py:1541 msgid "Copy test data by default when duplicating a part" msgstr "Testdata standaard kopiëren bij het dupliceren van een onderdeel" -#: common/models.py:1477 +#: common/models.py:1546 msgid "Copy Category Parameter Templates" msgstr "Kopiëer Categorieparameter Sjablonen" -#: common/models.py:1478 +#: common/models.py:1547 msgid "Copy category parameter templates when creating a part" msgstr "Kopieer categorieparameter sjablonen bij het aanmaken van een onderdeel" -#: common/models.py:1483 part/admin.py:108 part/models.py:3945 -#: report/models.py:293 report/models.py:360 report/serializers.py:90 -#: report/serializers.py:131 stock/serializers.py:232 +#: common/models.py:1552 part/admin.py:108 part/models.py:4003 +#: report/models.py:301 report/models.py:368 report/serializers.py:91 +#: report/serializers.py:132 stock/serializers.py:233 #: templates/js/translated/table_filters.js:138 #: templates/js/translated/table_filters.js:775 msgid "Template" msgstr "Sjabloon" -#: common/models.py:1484 +#: common/models.py:1553 msgid "Parts are templates by default" msgstr "Onderdelen zijn standaard sjablonen" -#: common/models.py:1490 +#: common/models.py:1559 msgid "Parts can be assembled from other components by default" msgstr "Onderdelen kunnen standaard vanuit andere componenten worden samengesteld" -#: common/models.py:1495 part/admin.py:95 part/models.py:1160 -#: part/serializers.py:1596 templates/js/translated/table_filters.js:737 +#: common/models.py:1564 part/admin.py:95 part/models.py:1221 +#: part/serializers.py:1654 templates/js/translated/table_filters.js:737 msgid "Component" msgstr "" -#: common/models.py:1496 +#: common/models.py:1565 msgid "Parts can be used as sub-components by default" msgstr "Onderdelen kunnen standaard worden gebruikt als subcomponenten" -#: common/models.py:1501 part/admin.py:100 part/models.py:1178 +#: common/models.py:1570 part/admin.py:100 part/models.py:1239 msgid "Purchaseable" msgstr "Koopbaar" -#: common/models.py:1502 +#: common/models.py:1571 msgid "Parts are purchaseable by default" msgstr "Onderdelen kunnen standaard gekocht worden" -#: common/models.py:1507 part/admin.py:104 part/models.py:1184 +#: common/models.py:1576 part/admin.py:104 part/models.py:1245 #: templates/js/translated/table_filters.js:763 msgid "Salable" msgstr "Verkoopbaar" -#: common/models.py:1508 +#: common/models.py:1577 msgid "Parts are salable by default" msgstr "Onderdelen kunnen standaard verkocht worden" -#: common/models.py:1514 +#: common/models.py:1583 msgid "Parts are trackable by default" msgstr "Onderdelen kunnen standaard gevolgd worden" -#: common/models.py:1519 part/admin.py:117 part/models.py:1200 -#: part/templates/part/part_base.html:154 +#: common/models.py:1588 part/admin.py:117 part/models.py:1261 +#: part/templates/part/part_base.html:155 #: templates/js/translated/table_filters.js:142 #: templates/js/translated/table_filters.js:787 msgid "Virtual" msgstr "Virtueel" -#: common/models.py:1520 +#: common/models.py:1589 msgid "Parts are virtual by default" msgstr "Onderdelen zijn standaard virtueel" -#: common/models.py:1525 +#: common/models.py:1594 msgid "Show Import in Views" msgstr "Toon Import in Weergaven" -#: common/models.py:1526 +#: common/models.py:1595 msgid "Display the import wizard in some part views" msgstr "Toon de importwizard in sommige onderdelenweergaven" -#: common/models.py:1531 +#: common/models.py:1600 msgid "Show related parts" msgstr "Verwante onderdelen tonen" -#: common/models.py:1532 +#: common/models.py:1601 msgid "Display related parts for a part" msgstr "Verwante onderdelen voor een onderdeel tonen" -#: common/models.py:1537 +#: common/models.py:1606 msgid "Initial Stock Data" msgstr "Initiële voorraadgegevens" -#: common/models.py:1538 +#: common/models.py:1607 msgid "Allow creation of initial stock when adding a new part" msgstr "Aanmaken van eerste voorraad toestaan bij het toevoegen van een nieuw onderdeel" -#: common/models.py:1543 templates/js/translated/part.js:108 +#: common/models.py:1612 templates/js/translated/part.js:108 msgid "Initial Supplier Data" msgstr "Initiële leveranciergegevens" -#: common/models.py:1545 +#: common/models.py:1614 msgid "Allow creation of initial supplier data when adding a new part" msgstr "Aanmaken van eerste leveranciersgegevens toestaan bij het toevoegen van een nieuw onderdeel" -#: common/models.py:1551 +#: common/models.py:1620 msgid "Part Name Display Format" msgstr "Onderdelennaam Weergaveopmaak" -#: common/models.py:1552 +#: common/models.py:1621 msgid "Format to display the part name" msgstr "Opmaak om de onderdeelnaam weer te geven" -#: common/models.py:1558 +#: common/models.py:1627 msgid "Part Category Default Icon" msgstr "Standaardicoon voor onderdeel catagorie" -#: common/models.py:1559 +#: common/models.py:1628 msgid "Part category default icon (empty means no icon)" msgstr "Standaardicoon voor onderdeel catagorie (leeg betekent geen pictogram)" -#: common/models.py:1564 +#: common/models.py:1633 msgid "Enforce Parameter Units" msgstr "Forceer Parameter Eenheden" -#: common/models.py:1566 +#: common/models.py:1635 msgid "If units are provided, parameter values must match the specified units" msgstr "Als er eenheden worden opgegeven, moeten parameterwaarden overeenkomen met de opgegeven eenheden" -#: common/models.py:1572 +#: common/models.py:1641 msgid "Minimum Pricing Decimal Places" msgstr "Minimaal aantal prijs decimalen" -#: common/models.py:1574 +#: common/models.py:1643 msgid "Minimum number of decimal places to display when rendering pricing data" msgstr "Minimaal aantal decimalen om weer te geven bij het weergeven van prijsgegevens" -#: common/models.py:1585 +#: common/models.py:1654 msgid "Maximum Pricing Decimal Places" msgstr "Maximum prijs decimalen" -#: common/models.py:1587 +#: common/models.py:1656 msgid "Maximum number of decimal places to display when rendering pricing data" msgstr "Maximum aantal decimalen om weer te geven bij het weergeven van prijsgegevens" -#: common/models.py:1598 +#: common/models.py:1667 msgid "Use Supplier Pricing" msgstr "Gebruik leveranciersprijzen" -#: common/models.py:1600 +#: common/models.py:1669 msgid "Include supplier price breaks in overall pricing calculations" msgstr "Prijsvoordelen leveranciers opnemen in de totale prijsberekening" -#: common/models.py:1606 +#: common/models.py:1675 msgid "Purchase History Override" msgstr "Aankoopgeschiedenis overschrijven" -#: common/models.py:1608 +#: common/models.py:1677 msgid "Historical purchase order pricing overrides supplier price breaks" msgstr "Historische order prijzen overschrijven de prijzen van de leverancier" -#: common/models.py:1614 +#: common/models.py:1683 msgid "Use Stock Item Pricing" msgstr "Gebruik voorraaditem prijzen" -#: common/models.py:1616 +#: common/models.py:1685 msgid "Use pricing from manually entered stock data for pricing calculations" msgstr "Gebruik prijzen van handmatig ingevoerde voorraadgegevens voor prijsberekeningen" -#: common/models.py:1622 +#: common/models.py:1691 msgid "Stock Item Pricing Age" msgstr "Voorraad artikelprijs leeftijd" -#: common/models.py:1624 +#: common/models.py:1693 msgid "Exclude stock items older than this number of days from pricing calculations" msgstr "Voorraaditems ouder dan dit aantal dagen uitsluiten van prijsberekeningen" -#: common/models.py:1631 +#: common/models.py:1700 msgid "Use Variant Pricing" msgstr "Gebruik variantprijzen" -#: common/models.py:1632 +#: common/models.py:1701 msgid "Include variant pricing in overall pricing calculations" msgstr "Variantenprijzen opnemen in de totale prijsberekening" -#: common/models.py:1637 +#: common/models.py:1706 msgid "Active Variants Only" msgstr "Alleen actieve varianten" -#: common/models.py:1639 +#: common/models.py:1708 msgid "Only use active variant parts for calculating variant pricing" msgstr "Gebruik alleen actieve variantonderdelen voor het berekenen van variantprijzen" -#: common/models.py:1645 +#: common/models.py:1714 msgid "Pricing Rebuild Interval" msgstr "Prijzen Herbouw interval" -#: common/models.py:1647 +#: common/models.py:1716 msgid "Number of days before part pricing is automatically updated" msgstr "Aantal dagen voordat de prijzen voor onderdelen automatisch worden bijgewerkt" -#: common/models.py:1654 +#: common/models.py:1723 msgid "Internal Prices" msgstr "Interne Prijzen" -#: common/models.py:1655 +#: common/models.py:1724 msgid "Enable internal prices for parts" msgstr "Inschakelen van interne prijzen voor onderdelen" -#: common/models.py:1660 +#: common/models.py:1729 msgid "Internal Price Override" msgstr "Interne prijs overschrijven" -#: common/models.py:1662 +#: common/models.py:1731 msgid "If available, internal prices override price range calculations" msgstr "Indien beschikbaar, interne prijzen overschrijven berekeningen van prijsbereik" -#: common/models.py:1668 +#: common/models.py:1737 msgid "Enable label printing" msgstr "Printen van labels Inschakelen" -#: common/models.py:1669 +#: common/models.py:1738 msgid "Enable label printing from the web interface" msgstr "Printen van labels via de webinterface inschakelen" -#: common/models.py:1674 +#: common/models.py:1743 msgid "Label Image DPI" msgstr "Label Afbeelding DPI" -#: common/models.py:1676 +#: common/models.py:1745 msgid "DPI resolution when generating image files to supply to label printing plugins" msgstr "DPI resolutie bij het genereren van afbeelginsbestanden voor label printer plugins" -#: common/models.py:1682 +#: common/models.py:1751 msgid "Enable Reports" msgstr "Activeer Rapportages" -#: common/models.py:1683 +#: common/models.py:1752 msgid "Enable generation of reports" msgstr "Activeer het genereren van rapporten" -#: common/models.py:1688 templates/stats.html:25 +#: common/models.py:1757 templates/stats.html:25 msgid "Debug Mode" msgstr "Foutopsporingsmodus" -#: common/models.py:1689 +#: common/models.py:1758 msgid "Generate reports in debug mode (HTML output)" msgstr "Rapporten genereren in debug modus (HTML uitvoer)" -#: common/models.py:1694 +#: common/models.py:1763 msgid "Log Report Errors" msgstr "" -#: common/models.py:1695 +#: common/models.py:1764 msgid "Log errors which occur when generating reports" msgstr "" -#: common/models.py:1700 plugin/builtin/labels/label_sheet.py:28 -#: report/models.py:301 +#: common/models.py:1769 plugin/builtin/labels/label_sheet.py:28 +#: report/models.py:309 msgid "Page Size" msgstr "Paginagrootte" -#: common/models.py:1701 +#: common/models.py:1770 msgid "Default page size for PDF reports" msgstr "Standaard paginagrootte voor PDF rapporten" -#: common/models.py:1706 -msgid "Enable Test Reports" -msgstr "Activeer Testrapporten" - -#: common/models.py:1707 -msgid "Enable generation of test reports" -msgstr "Activeer het genereren van testrapporten" - -#: common/models.py:1712 -msgid "Attach Test Reports" -msgstr "Testrapporten Toevoegen" - -#: common/models.py:1714 -msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item" -msgstr "Bij het afdrukken van een Testrapport, voeg een kopie van het Testrapport toe aan het bijbehorende Voorraadartikel" - -#: common/models.py:1720 +#: common/models.py:1775 msgid "Globally Unique Serials" msgstr "Globaal unieke serienummers" -#: common/models.py:1721 +#: common/models.py:1776 msgid "Serial numbers for stock items must be globally unique" msgstr "Serienummers voor voorraaditems moeten globaal uniek zijn" -#: common/models.py:1726 +#: common/models.py:1781 msgid "Autofill Serial Numbers" msgstr "Serienummers automatisch invullen" -#: common/models.py:1727 +#: common/models.py:1782 msgid "Autofill serial numbers in forms" msgstr "Automatisch invullen van serienummer in formulieren" -#: common/models.py:1732 +#: common/models.py:1787 msgid "Delete Depleted Stock" msgstr "Verwijder uitgeputte voorraad" -#: common/models.py:1734 +#: common/models.py:1789 msgid "Determines default behavior when a stock item is depleted" -msgstr "" +msgstr "Bepaalt standaard gedrag wanneer een voorraadartikel leeg is" -#: common/models.py:1740 +#: common/models.py:1795 msgid "Batch Code Template" msgstr "Batchcode Sjabloon" -#: common/models.py:1742 +#: common/models.py:1797 msgid "Template for generating default batch codes for stock items" msgstr "Sjabloon voor het genereren van standaard batchcodes voor voorraadartikelen" -#: common/models.py:1747 +#: common/models.py:1802 msgid "Stock Expiry" msgstr "Verlopen Voorraad" -#: common/models.py:1748 +#: common/models.py:1803 msgid "Enable stock expiry functionality" msgstr "Verlopen voorraad functionaliteit inschakelen" -#: common/models.py:1753 +#: common/models.py:1808 msgid "Sell Expired Stock" msgstr "Verkoop Verlopen Voorraad" -#: common/models.py:1754 +#: common/models.py:1809 msgid "Allow sale of expired stock" msgstr "Verkoop verlopen voorraad toestaan" -#: common/models.py:1759 +#: common/models.py:1814 msgid "Stock Stale Time" msgstr "Voorraad Vervaltijd" -#: common/models.py:1761 +#: common/models.py:1816 msgid "Number of days stock items are considered stale before expiring" msgstr "Aantal dagen voordat voorraadartikelen als verouderd worden beschouwd voor ze verlopen" -#: common/models.py:1768 +#: common/models.py:1823 msgid "Build Expired Stock" msgstr "Produceer Verlopen Voorraad" -#: common/models.py:1769 +#: common/models.py:1824 msgid "Allow building with expired stock" msgstr "Sta productie met verlopen voorraad toe" -#: common/models.py:1774 +#: common/models.py:1829 msgid "Stock Ownership Control" msgstr "Voorraad Eigenaar Toezicht" -#: common/models.py:1775 +#: common/models.py:1830 msgid "Enable ownership control over stock locations and items" msgstr "Eigenaarstoezicht over voorraadlocaties en items inschakelen" -#: common/models.py:1780 +#: common/models.py:1835 msgid "Stock Location Default Icon" msgstr "Voorraadlocatie standaard icoon" -#: common/models.py:1781 +#: common/models.py:1836 msgid "Stock location default icon (empty means no icon)" msgstr "Standaard locatie pictogram (leeg betekent geen icoon)" -#: common/models.py:1786 +#: common/models.py:1841 msgid "Show Installed Stock Items" msgstr "Geïnstalleerde voorraad items weergeven" -#: common/models.py:1787 +#: common/models.py:1842 msgid "Display installed stock items in stock tables" msgstr "Geïnstalleerde voorraadartikelen in voorraadtabellen tonen" -#: common/models.py:1792 +#: common/models.py:1847 msgid "Check BOM when installing items" msgstr "" -#: common/models.py:1794 +#: common/models.py:1849 msgid "Installed stock items must exist in the BOM for the parent part" -msgstr "" +msgstr "Geïnstalleerde voorraad items moeten in de BOM voor het bovenliggende deel bestaan" -#: common/models.py:1800 +#: common/models.py:1855 msgid "Allow Out of Stock Transfer" -msgstr "" +msgstr "Sta 'Niet op voorraad overschrijving' toe" -#: common/models.py:1802 +#: common/models.py:1857 msgid "Allow stock items which are not in stock to be transferred between stock locations" -msgstr "" +msgstr "Toestaan dat voorraadartikelen die niet op voorraad zijn worden overgebracht tussen voorraadlocaties" -#: common/models.py:1808 +#: common/models.py:1863 msgid "Build Order Reference Pattern" msgstr "Productieorderreferentiepatroon" -#: common/models.py:1810 +#: common/models.py:1865 msgid "Required pattern for generating Build Order reference field" msgstr "Vereist patroon voor het genereren van het Bouworderreferentieveld" -#: common/models.py:1816 common/models.py:1872 common/models.py:1894 -#: common/models.py:1930 +#: common/models.py:1871 common/models.py:1927 common/models.py:1949 +#: common/models.py:1985 msgid "Require Responsible Owner" msgstr "" -#: common/models.py:1817 common/models.py:1873 common/models.py:1895 -#: common/models.py:1931 +#: common/models.py:1872 common/models.py:1928 common/models.py:1950 +#: common/models.py:1986 msgid "A responsible owner must be assigned to each order" msgstr "" -#: common/models.py:1822 +#: common/models.py:1877 msgid "Require Active Part" msgstr "" -#: common/models.py:1823 +#: common/models.py:1878 msgid "Prevent build order creation for inactive parts" msgstr "" -#: common/models.py:1828 +#: common/models.py:1883 msgid "Require Locked Part" msgstr "" -#: common/models.py:1829 +#: common/models.py:1884 msgid "Prevent build order creation for unlocked parts" msgstr "" -#: common/models.py:1834 +#: common/models.py:1889 msgid "Require Valid BOM" msgstr "" -#: common/models.py:1836 +#: common/models.py:1891 msgid "Prevent build order creation unless BOM has been validated" msgstr "" -#: common/models.py:1842 +#: common/models.py:1897 msgid "Require Closed Child Orders" msgstr "" -#: common/models.py:1844 +#: common/models.py:1899 msgid "Prevent build order completion until all child orders are closed" msgstr "" -#: common/models.py:1850 +#: common/models.py:1905 msgid "Block Until Tests Pass" msgstr "" -#: common/models.py:1852 +#: common/models.py:1907 msgid "Prevent build outputs from being completed until all required tests pass" msgstr "" -#: common/models.py:1858 +#: common/models.py:1913 msgid "Enable Return Orders" msgstr "Retourorders inschakelen" -#: common/models.py:1859 +#: common/models.py:1914 msgid "Enable return order functionality in the user interface" msgstr "Retourorder functionaliteit inschakelen in de gebruikersinterface" -#: common/models.py:1864 +#: common/models.py:1919 msgid "Return Order Reference Pattern" msgstr "Retourorder referentie patroon" -#: common/models.py:1866 +#: common/models.py:1921 msgid "Required pattern for generating Return Order reference field" msgstr "" -#: common/models.py:1878 +#: common/models.py:1933 msgid "Edit Completed Return Orders" msgstr "Bewerk voltooide retourorders" -#: common/models.py:1880 +#: common/models.py:1935 msgid "Allow editing of return orders after they have been completed" msgstr "Bewerken van retourorders toestaan nadat deze zijn voltooid" -#: common/models.py:1886 +#: common/models.py:1941 msgid "Sales Order Reference Pattern" msgstr "Verkooporderreferentiepatroon" -#: common/models.py:1888 +#: common/models.py:1943 msgid "Required pattern for generating Sales Order reference field" msgstr "Vereist patroon voor het genereren van het Verkooporderreferentieveld" -#: common/models.py:1900 +#: common/models.py:1955 msgid "Sales Order Default Shipment" msgstr "Standaard Verzending Verkooporder" -#: common/models.py:1901 +#: common/models.py:1956 msgid "Enable creation of default shipment with sales orders" msgstr "Aanmaken standaard verzending bij verkooporders inschakelen" -#: common/models.py:1906 +#: common/models.py:1961 msgid "Edit Completed Sales Orders" msgstr "Bewerk voltooide verkooporders" -#: common/models.py:1908 +#: common/models.py:1963 msgid "Allow editing of sales orders after they have been shipped or completed" msgstr "Bewerken van verkooporders toestaan nadat deze zijn verzonden of voltooid" -#: common/models.py:1914 +#: common/models.py:1969 msgid "Mark Shipped Orders as Complete" msgstr "" -#: common/models.py:1916 +#: common/models.py:1971 msgid "Sales orders marked as shipped will automatically be completed, bypassing the \"shipped\" status" msgstr "" -#: common/models.py:1922 +#: common/models.py:1977 msgid "Purchase Order Reference Pattern" msgstr "Inkooporderreferentiepatroon" -#: common/models.py:1924 +#: common/models.py:1979 msgid "Required pattern for generating Purchase Order reference field" msgstr "Vereist patroon voor het genereren van het Inkooporderreferentieveld" -#: common/models.py:1936 +#: common/models.py:1991 msgid "Edit Completed Purchase Orders" msgstr "Bewerk voltooide verkooporders" -#: common/models.py:1938 +#: common/models.py:1993 msgid "Allow editing of purchase orders after they have been shipped or completed" msgstr "Bewerken van inkooporders toestaan nadat deze zijn verzonden of voltooid" -#: common/models.py:1944 +#: common/models.py:1999 msgid "Auto Complete Purchase Orders" msgstr "" -#: common/models.py:1946 +#: common/models.py:2001 msgid "Automatically mark purchase orders as complete when all line items are received" msgstr "" -#: common/models.py:1953 +#: common/models.py:2008 msgid "Enable password forgot" msgstr "Wachtwoord vergeten functie inschakelen" -#: common/models.py:1954 +#: common/models.py:2009 msgid "Enable password forgot function on the login pages" msgstr "Wachtwoord vergeten functie inschakelen op de inlogpagina's" -#: common/models.py:1959 +#: common/models.py:2014 msgid "Enable registration" msgstr "Registratie inschakelen" -#: common/models.py:1960 +#: common/models.py:2015 msgid "Enable self-registration for users on the login pages" msgstr "Zelfregistratie voor gebruikers op de inlogpagina's inschakelen" -#: common/models.py:1965 +#: common/models.py:2020 msgid "Enable SSO" msgstr "SSO inschakelen" -#: common/models.py:1966 +#: common/models.py:2021 msgid "Enable SSO on the login pages" msgstr "SSO inschakelen op de inlogpagina's" -#: common/models.py:1971 +#: common/models.py:2026 msgid "Enable SSO registration" msgstr "Schakel gebruikersregistratie met SSO in" -#: common/models.py:1973 +#: common/models.py:2028 msgid "Enable self-registration via SSO for users on the login pages" msgstr "Zelfregistratie voor gebruikers middels SSO op de inlogpagina's inschakelen" -#: common/models.py:1979 +#: common/models.py:2034 msgid "Enable SSO group sync" msgstr "" -#: common/models.py:1981 +#: common/models.py:2036 msgid "Enable synchronizing InvenTree groups with groups provided by the IdP" msgstr "" -#: common/models.py:1987 +#: common/models.py:2042 msgid "SSO group key" msgstr "" -#: common/models.py:1989 +#: common/models.py:2044 msgid "The name of the groups claim attribute provided by the IdP" msgstr "" -#: common/models.py:1995 +#: common/models.py:2050 msgid "SSO group map" msgstr "" -#: common/models.py:1997 +#: common/models.py:2052 msgid "A mapping from SSO groups to local InvenTree groups. If the local group does not exist, it will be created." msgstr "" -#: common/models.py:2003 +#: common/models.py:2058 msgid "Remove groups outside of SSO" msgstr "" -#: common/models.py:2005 +#: common/models.py:2060 msgid "Whether groups assigned to the user should be removed if they are not backend by the IdP. Disabling this setting might cause security issues" msgstr "" -#: common/models.py:2011 +#: common/models.py:2066 msgid "Email required" msgstr "E-mailadres verplicht" -#: common/models.py:2012 +#: common/models.py:2067 msgid "Require user to supply mail on signup" msgstr "Vereis gebruiker om e-mailadres te registreren bij aanmelding" -#: common/models.py:2017 +#: common/models.py:2072 msgid "Auto-fill SSO users" msgstr "SSO-gebruikers automatisch invullen" -#: common/models.py:2019 +#: common/models.py:2074 msgid "Automatically fill out user-details from SSO account-data" msgstr "Gebruikersdetails van SSO-accountgegevens automatisch invullen" -#: common/models.py:2025 +#: common/models.py:2080 msgid "Mail twice" msgstr "E-mail twee keer" -#: common/models.py:2026 +#: common/models.py:2081 msgid "On signup ask users twice for their mail" msgstr "Bij inschrijving gebruikers twee keer om hun e-mail vragen" -#: common/models.py:2031 +#: common/models.py:2086 msgid "Password twice" msgstr "Wachtwoord tweemaal" -#: common/models.py:2032 +#: common/models.py:2087 msgid "On signup ask users twice for their password" msgstr "Laat gebruikers twee keer om hun wachtwoord vragen tijdens het aanmelden" -#: common/models.py:2037 +#: common/models.py:2092 msgid "Allowed domains" msgstr "Toegestane domeinen" -#: common/models.py:2039 +#: common/models.py:2094 msgid "Restrict signup to certain domains (comma-separated, starting with @)" msgstr "Inschrijven beperken tot bepaalde domeinen (komma-gescheiden, beginnend met @)" -#: common/models.py:2045 +#: common/models.py:2100 msgid "Group on signup" msgstr "Groep bij aanmelding" -#: common/models.py:2047 +#: common/models.py:2102 msgid "Group to which new users are assigned on registration. If SSO group sync is enabled, this group is only set if no group can be assigned from the IdP." msgstr "" -#: common/models.py:2053 +#: common/models.py:2108 msgid "Enforce MFA" msgstr "MFA afdwingen" -#: common/models.py:2054 +#: common/models.py:2109 msgid "Users must use multifactor security." msgstr "Gebruikers moeten multifactor-beveiliging gebruiken." -#: common/models.py:2059 +#: common/models.py:2114 msgid "Check plugins on startup" msgstr "Controleer plugins bij het opstarten" -#: common/models.py:2061 +#: common/models.py:2116 msgid "Check that all plugins are installed on startup - enable in container environments" msgstr "Controleer of alle plug-ins zijn geïnstalleerd bij het opstarten - inschakelen in container-omgevingen" -#: common/models.py:2069 +#: common/models.py:2124 msgid "Check for plugin updates" msgstr "" -#: common/models.py:2070 +#: common/models.py:2125 msgid "Enable periodic checks for updates to installed plugins" msgstr "" -#: common/models.py:2076 +#: common/models.py:2131 msgid "Enable URL integration" msgstr "Activeer URL-integratie" -#: common/models.py:2077 +#: common/models.py:2132 msgid "Enable plugins to add URL routes" msgstr "Plugins toestaan om URL-routes toe te voegen" -#: common/models.py:2083 +#: common/models.py:2138 msgid "Enable navigation integration" msgstr "Activeer navigatie integratie" -#: common/models.py:2084 +#: common/models.py:2139 msgid "Enable plugins to integrate into navigation" msgstr "Plugins toestaan om te integreren in navigatie" -#: common/models.py:2090 +#: common/models.py:2145 msgid "Enable app integration" msgstr "Activeer app integratie" -#: common/models.py:2091 +#: common/models.py:2146 msgid "Enable plugins to add apps" msgstr "Activeer plug-ins om apps toe te voegen" -#: common/models.py:2097 +#: common/models.py:2152 msgid "Enable schedule integration" msgstr "Activeer planning integratie" -#: common/models.py:2098 +#: common/models.py:2153 msgid "Enable plugins to run scheduled tasks" msgstr "Activeer plugin om periodiek taken uit te voeren" -#: common/models.py:2104 +#: common/models.py:2159 msgid "Enable event integration" msgstr "Activeer evenement integratie" -#: common/models.py:2105 +#: common/models.py:2160 msgid "Enable plugins to respond to internal events" msgstr "Activeer plugin om op interne evenementen te reageren" -#: common/models.py:2111 +#: common/models.py:2166 +msgid "Enable interface integration" +msgstr "Interface integratie activeren" + +#: common/models.py:2167 +msgid "Enable plugins to integrate into the user interface" +msgstr "Plug-ins inschakelen om te integreren in de gebruikersinterface" + +#: common/models.py:2173 msgid "Enable project codes" msgstr "Activeer project codes" -#: common/models.py:2112 +#: common/models.py:2174 msgid "Enable project codes for tracking projects" msgstr "Activeer project codes voor het bijhouden van projecten" -#: common/models.py:2117 +#: common/models.py:2179 msgid "Stocktake Functionality" msgstr "Voorraadcontrole functionaliteit" -#: common/models.py:2119 +#: common/models.py:2181 msgid "Enable stocktake functionality for recording stock levels and calculating stock value" msgstr "Schakel voorraadfunctionaliteit in voor het opnemen van voorraadniveaus en het berekenen van voorraadwaarde" -#: common/models.py:2125 +#: common/models.py:2187 msgid "Exclude External Locations" msgstr "Externe locaties uitsluiten" -#: common/models.py:2127 +#: common/models.py:2189 msgid "Exclude stock items in external locations from stocktake calculations" msgstr "Voorraadartikelen op externe locaties uitsluiten van voorraadberekeningen" -#: common/models.py:2133 +#: common/models.py:2195 msgid "Automatic Stocktake Period" msgstr "Automatische Voorraadcontrole Periode" -#: common/models.py:2135 +#: common/models.py:2197 msgid "Number of days between automatic stocktake recording (set to zero to disable)" msgstr "Aantal dagen tussen automatische voorraadopname (ingesteld op nul om uit te schakelen)" -#: common/models.py:2141 +#: common/models.py:2203 msgid "Report Deletion Interval" msgstr "Rapport Verwijdering Interval" -#: common/models.py:2143 +#: common/models.py:2205 msgid "Stocktake reports will be deleted after specified number of days" msgstr "Voorraadrapportage zal worden verwijderd na het opgegeven aantal dagen" -#: common/models.py:2150 +#: common/models.py:2212 msgid "Display Users full names" msgstr "" -#: common/models.py:2151 +#: common/models.py:2213 msgid "Display Users full names instead of usernames" msgstr "" -#: common/models.py:2156 +#: common/models.py:2218 msgid "Enable Test Station Data" msgstr "" -#: common/models.py:2157 +#: common/models.py:2219 msgid "Enable test station data collection for test results" msgstr "" -#: common/models.py:2169 common/models.py:2549 -msgid "Settings key (must be unique - case insensitive" -msgstr "Instellingssleutel (moet uniek zijn - hoofdletter ongevoelig" +#: common/models.py:2224 +msgid "Create Template on Upload" +msgstr "Maak template aan bij het uploaden" -#: common/models.py:2212 +#: common/models.py:2226 +msgid "Create a new test template when uploading test data which does not match an existing template" +msgstr "Maak een nieuw testsjabloon bij het uploaden van testgegevens die niet overeenkomen met een bestaande sjabloon" + +#: common/models.py:2279 msgid "Hide inactive parts" msgstr "Inactieve Onderdelen Verbergen" -#: common/models.py:2214 +#: common/models.py:2281 msgid "Hide inactive parts in results displayed on the homepage" msgstr "Verberg inactieve delen bij items op de homepage" -#: common/models.py:2220 +#: common/models.py:2287 msgid "Show subscribed parts" msgstr "Toon geabonneerde onderdelen" -#: common/models.py:2221 +#: common/models.py:2288 msgid "Show subscribed parts on the homepage" msgstr "Toon geabonneerde onderdelen op de homepage" -#: common/models.py:2226 +#: common/models.py:2293 msgid "Show subscribed categories" msgstr "Toon geabonneerde categorieën" -#: common/models.py:2227 +#: common/models.py:2294 msgid "Show subscribed part categories on the homepage" msgstr "Toon geabonneerde onderdeel categorieën op de startpagina" -#: common/models.py:2232 +#: common/models.py:2299 msgid "Show latest parts" msgstr "Toon laatste onderdelen" -#: common/models.py:2233 +#: common/models.py:2300 msgid "Show latest parts on the homepage" msgstr "Toon laatste onderdelen op de startpagina" -#: common/models.py:2238 +#: common/models.py:2305 msgid "Show invalid BOMs" msgstr "" -#: common/models.py:2239 +#: common/models.py:2306 msgid "Show BOMs that await validation on the homepage" msgstr "Laat BOMs zien die wachten op validatie op de startpagina" -#: common/models.py:2244 +#: common/models.py:2311 msgid "Show recent stock changes" msgstr "Toon recente voorraadwijzigingen" -#: common/models.py:2245 +#: common/models.py:2312 msgid "Show recently changed stock items on the homepage" msgstr "Toon recent aangepaste voorraadartikelen op de startpagina" -#: common/models.py:2250 +#: common/models.py:2317 msgid "Show low stock" msgstr "Toon lage voorraad" -#: common/models.py:2251 +#: common/models.py:2318 msgid "Show low stock items on the homepage" msgstr "Toon lage voorraad van artikelen op de startpagina" -#: common/models.py:2256 +#: common/models.py:2323 msgid "Show depleted stock" msgstr "Toon lege voorraad" -#: common/models.py:2257 +#: common/models.py:2324 msgid "Show depleted stock items on the homepage" msgstr "Toon lege voorraad van artikelen op de startpagina" -#: common/models.py:2262 +#: common/models.py:2329 msgid "Show needed stock" msgstr "Toon benodigde voorraad" -#: common/models.py:2263 +#: common/models.py:2330 msgid "Show stock items needed for builds on the homepage" msgstr "Toon benodigde voorraad van artikelen voor productie op de startpagina" -#: common/models.py:2268 +#: common/models.py:2335 msgid "Show expired stock" msgstr "Toon verlopen voorraad" -#: common/models.py:2269 +#: common/models.py:2336 msgid "Show expired stock items on the homepage" msgstr "Toon verlopen voorraad van artikelen op de startpagina" -#: common/models.py:2274 +#: common/models.py:2341 msgid "Show stale stock" msgstr "Toon verouderde voorraad" -#: common/models.py:2275 +#: common/models.py:2342 msgid "Show stale stock items on the homepage" msgstr "Toon verouderde voorraad van artikelen op de startpagina" -#: common/models.py:2280 +#: common/models.py:2347 msgid "Show pending builds" msgstr "Toon openstaande producties" -#: common/models.py:2281 +#: common/models.py:2348 msgid "Show pending builds on the homepage" msgstr "Toon openstaande producties op de startpagina" -#: common/models.py:2286 +#: common/models.py:2353 msgid "Show overdue builds" msgstr "Toon achterstallige productie" -#: common/models.py:2287 +#: common/models.py:2354 msgid "Show overdue builds on the homepage" msgstr "Toon achterstallige producties op de startpagina" -#: common/models.py:2292 +#: common/models.py:2359 msgid "Show outstanding POs" msgstr "Toon uitstaande PO's" -#: common/models.py:2293 +#: common/models.py:2360 msgid "Show outstanding POs on the homepage" msgstr "Toon uitstaande PO's op de startpagina" -#: common/models.py:2298 +#: common/models.py:2365 msgid "Show overdue POs" msgstr "Toon achterstallige PO's" -#: common/models.py:2299 +#: common/models.py:2366 msgid "Show overdue POs on the homepage" msgstr "Toon achterstallige PO's op de startpagina" -#: common/models.py:2304 +#: common/models.py:2371 msgid "Show outstanding SOs" msgstr "Toon uitstaande SO's" -#: common/models.py:2305 +#: common/models.py:2372 msgid "Show outstanding SOs on the homepage" msgstr "Toon uitstaande SO's op de startpagina" -#: common/models.py:2310 +#: common/models.py:2377 msgid "Show overdue SOs" msgstr "Toon achterstallige SO's" -#: common/models.py:2311 +#: common/models.py:2378 msgid "Show overdue SOs on the homepage" msgstr "Toon achterstallige SO's op de startpagina" -#: common/models.py:2316 +#: common/models.py:2383 msgid "Show pending SO shipments" msgstr "Toon in behandeling SO verzendingen" -#: common/models.py:2317 +#: common/models.py:2384 msgid "Show pending SO shipments on the homepage" msgstr "Toon in behandeling zijnde SO verzendingen op de startpagina" -#: common/models.py:2322 +#: common/models.py:2389 msgid "Show News" msgstr "Nieuws tonen" -#: common/models.py:2323 +#: common/models.py:2390 msgid "Show news on the homepage" msgstr "Nieuws op de startpagina weergeven" -#: common/models.py:2328 +#: common/models.py:2395 msgid "Inline label display" msgstr "Inline labelweergave" -#: common/models.py:2330 +#: common/models.py:2397 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "PDF-labels in browser weergeven, in plaats van als bestand te downloaden" -#: common/models.py:2336 +#: common/models.py:2403 msgid "Default label printer" msgstr "Standaard label printer" -#: common/models.py:2338 +#: common/models.py:2405 msgid "Configure which label printer should be selected by default" msgstr "Instellen welke label printer standaard moet worden geselecteerd" -#: common/models.py:2344 +#: common/models.py:2411 msgid "Inline report display" msgstr "Inline rapport weergeven" -#: common/models.py:2346 +#: common/models.py:2413 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "PDF-rapporten in de browser weergeven, in plaats van als bestand te downloaden" -#: common/models.py:2352 +#: common/models.py:2419 msgid "Search Parts" msgstr "Zoek Onderdelen" -#: common/models.py:2353 +#: common/models.py:2420 msgid "Display parts in search preview window" msgstr "Onderdelen weergeven in zoekscherm" -#: common/models.py:2358 +#: common/models.py:2425 msgid "Search Supplier Parts" msgstr "Zoek leveranciersonderdelen" -#: common/models.py:2359 +#: common/models.py:2426 msgid "Display supplier parts in search preview window" msgstr "Leveranciersonderdelen weergeven in zoekscherm" -#: common/models.py:2364 +#: common/models.py:2431 msgid "Search Manufacturer Parts" msgstr "Fabrikant onderdelen zoeken" -#: common/models.py:2365 +#: common/models.py:2432 msgid "Display manufacturer parts in search preview window" msgstr "Fabrikant onderdelen weergeven in zoekscherm" -#: common/models.py:2370 +#: common/models.py:2437 msgid "Hide Inactive Parts" msgstr "Inactieve Onderdelen Verbergen" -#: common/models.py:2371 +#: common/models.py:2438 msgid "Excluded inactive parts from search preview window" msgstr "Inactieve verkooporders weglaten in het zoekvenster" -#: common/models.py:2376 +#: common/models.py:2443 msgid "Search Categories" msgstr "Zoek categorieën" -#: common/models.py:2377 +#: common/models.py:2444 msgid "Display part categories in search preview window" msgstr "Toon onderdeelcategorieën in zoekvenster" -#: common/models.py:2382 +#: common/models.py:2449 msgid "Search Stock" msgstr "Zoek in Voorraad" -#: common/models.py:2383 +#: common/models.py:2450 msgid "Display stock items in search preview window" msgstr "Toon voorraad items in zoekvenster" -#: common/models.py:2388 +#: common/models.py:2455 msgid "Hide Unavailable Stock Items" msgstr "Verberg niet beschikbare voorraad items" -#: common/models.py:2390 +#: common/models.py:2457 msgid "Exclude stock items which are not available from the search preview window" msgstr "Voorraadartikelen die niet beschikbaar zijn niet in het zoekvenster weergeven" -#: common/models.py:2396 +#: common/models.py:2463 msgid "Search Locations" msgstr "Locaties doorzoeken" -#: common/models.py:2397 +#: common/models.py:2464 msgid "Display stock locations in search preview window" msgstr "Toon voorraadlocaties in zoekvenster" -#: common/models.py:2402 +#: common/models.py:2469 msgid "Search Companies" msgstr "Zoek bedrijven" -#: common/models.py:2403 +#: common/models.py:2470 msgid "Display companies in search preview window" msgstr "Toon bedrijven in zoekvenster" -#: common/models.py:2408 +#: common/models.py:2475 msgid "Search Build Orders" msgstr "Zoek Bouworders" -#: common/models.py:2409 +#: common/models.py:2476 msgid "Display build orders in search preview window" msgstr "Toon bouworders in zoekvenster" -#: common/models.py:2414 +#: common/models.py:2481 msgid "Search Purchase Orders" msgstr "Inkooporders Zoeken" -#: common/models.py:2415 +#: common/models.py:2482 msgid "Display purchase orders in search preview window" msgstr "Toon inkooporders in het zoekvenster" -#: common/models.py:2420 +#: common/models.py:2487 msgid "Exclude Inactive Purchase Orders" msgstr "Inactieve Inkooporders Weglaten" -#: common/models.py:2422 +#: common/models.py:2489 msgid "Exclude inactive purchase orders from search preview window" msgstr "Inactieve inkooporders weglaten in het zoekvenster" -#: common/models.py:2428 +#: common/models.py:2495 msgid "Search Sales Orders" msgstr "Verkooporders zoeken" -#: common/models.py:2429 +#: common/models.py:2496 msgid "Display sales orders in search preview window" msgstr "Toon verkooporders in het zoekvenster" -#: common/models.py:2434 +#: common/models.py:2501 msgid "Exclude Inactive Sales Orders" msgstr "Inactieve Verkooporders Weglaten" -#: common/models.py:2436 +#: common/models.py:2503 msgid "Exclude inactive sales orders from search preview window" msgstr "Inactieve verkooporders weglaten in het zoekvenster" -#: common/models.py:2442 +#: common/models.py:2509 msgid "Search Return Orders" msgstr "Zoek retourorders" -#: common/models.py:2443 +#: common/models.py:2510 msgid "Display return orders in search preview window" msgstr "Toon bouworders in zoekvenster" -#: common/models.py:2448 +#: common/models.py:2515 msgid "Exclude Inactive Return Orders" msgstr "Inactieve retourbestellingen weglaten" -#: common/models.py:2450 +#: common/models.py:2517 msgid "Exclude inactive return orders from search preview window" msgstr "Inactieve retourorders uitsluiten in zoekvenster" -#: common/models.py:2456 +#: common/models.py:2523 msgid "Search Preview Results" msgstr "Zoekvoorbeeld resultaten" -#: common/models.py:2458 +#: common/models.py:2525 msgid "Number of results to show in each section of the search preview window" msgstr "Aantal resultaten om weer te geven in elk gedeelte van het zoekvenster" -#: common/models.py:2464 +#: common/models.py:2531 msgid "Regex Search" msgstr "Regex zoeken" -#: common/models.py:2465 +#: common/models.py:2532 msgid "Enable regular expressions in search queries" msgstr "Schakel reguliere expressies in zoekopdrachten in" -#: common/models.py:2470 +#: common/models.py:2537 msgid "Whole Word Search" msgstr "Hele woorden zoeken" -#: common/models.py:2471 +#: common/models.py:2538 msgid "Search queries return results for whole word matches" msgstr "Zoekopdrachten geven resultaat voor hele woord overeenkomsten" -#: common/models.py:2476 +#: common/models.py:2543 msgid "Show Quantity in Forms" msgstr "Toon hoeveelheid in formulieren" -#: common/models.py:2477 +#: common/models.py:2544 msgid "Display available part quantity in some forms" msgstr "Hoeveelheid beschikbare onderdelen in sommige formulieren weergeven" -#: common/models.py:2482 +#: common/models.py:2549 msgid "Escape Key Closes Forms" msgstr "Escape-toets sluit formulieren" -#: common/models.py:2483 +#: common/models.py:2550 msgid "Use the escape key to close modal forms" msgstr "Gebruik de Escape-toets om standaard formulieren te sluiten" -#: common/models.py:2488 +#: common/models.py:2555 msgid "Fixed Navbar" msgstr "Vaste navigatiebalk" -#: common/models.py:2489 +#: common/models.py:2556 msgid "The navbar position is fixed to the top of the screen" msgstr "De navigatiebalk positie is gefixeerd aan de bovenkant van het scherm" -#: common/models.py:2494 +#: common/models.py:2561 msgid "Date Format" msgstr "Datum formaat" -#: common/models.py:2495 +#: common/models.py:2562 msgid "Preferred format for displaying dates" msgstr "Voorkeursindeling voor weergave van datums" -#: common/models.py:2508 part/templates/part/detail.html:41 +#: common/models.py:2575 part/templates/part/detail.html:41 msgid "Part Scheduling" msgstr "Onderdeel planning" -#: common/models.py:2509 +#: common/models.py:2576 msgid "Display part scheduling information" msgstr "Toon informatie voor het plannen van onderdelen" -#: common/models.py:2514 part/templates/part/detail.html:62 +#: common/models.py:2581 part/templates/part/detail.html:62 msgid "Part Stocktake" msgstr "Voorraadcontrole onderdeel" -#: common/models.py:2516 +#: common/models.py:2583 msgid "Display part stocktake information (if stocktake functionality is enabled)" msgstr "Toon voorraadinformatie van onderdeel (als voorraadcontrole functionaliteit is ingeschakeld)" -#: common/models.py:2522 +#: common/models.py:2589 msgid "Table String Length" msgstr "Tabel tekenreekslengte" -#: common/models.py:2524 +#: common/models.py:2591 msgid "Maximum length limit for strings displayed in table views" msgstr "" -#: common/models.py:2530 +#: common/models.py:2597 msgid "Receive error reports" msgstr "Foutrapportages ontvangen" -#: common/models.py:2531 +#: common/models.py:2598 msgid "Receive notifications for system errors" msgstr "Meldingen ontvangen van systeemfouten" -#: common/models.py:2536 +#: common/models.py:2603 msgid "Last used printing machines" msgstr "" -#: common/models.py:2537 +#: common/models.py:2604 msgid "Save the last used printing machines for a user" msgstr "" -#: common/models.py:2557 common/models.py:2558 common/models.py:2715 -#: common/models.py:2716 common/models.py:2961 common/models.py:2962 -#: common/models.py:3288 common/models.py:3289 importer/models.py:88 -#: part/models.py:3307 part/models.py:3394 part/models.py:3468 -#: part/models.py:3496 plugin/models.py:274 plugin/models.py:275 -#: report/templates/report/inventree_test_report.html:105 -#: templates/js/translated/stock.js:3120 users/models.py:111 +#: common/models.py:2621 common/models.py:2622 common/models.py:2779 +#: common/models.py:2780 common/models.py:3025 common/models.py:3026 +#: common/models.py:3349 common/models.py:3350 common/models.py:3534 +#: importer/models.py:89 part/models.py:3358 part/models.py:3445 +#: part/models.py:3519 part/models.py:3547 plugin/models.py:313 +#: plugin/models.py:314 report/templates/report/inventree_test_report.html:105 +#: templates/js/translated/stock.js:3121 users/models.py:111 msgid "User" msgstr "Gebruiker" -#: common/models.py:2580 +#: common/models.py:2644 msgid "Price break quantity" msgstr "" -#: common/models.py:2587 company/serializers.py:513 order/admin.py:42 -#: order/models.py:1430 order/models.py:2417 -#: templates/js/translated/company.js:1823 templates/js/translated/part.js:1892 +#: common/models.py:2651 company/serializers.py:524 order/admin.py:42 +#: order/models.py:1447 order/models.py:2456 +#: templates/js/translated/company.js:1824 templates/js/translated/part.js:1892 #: templates/js/translated/pricing.js:621 #: templates/js/translated/return_order.js:739 msgid "Price" msgstr "Prijs" -#: common/models.py:2588 +#: common/models.py:2652 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:2692 common/models.py:2877 +#: common/models.py:2756 common/models.py:2941 msgid "Endpoint" msgstr "Eindpunt" -#: common/models.py:2693 +#: common/models.py:2757 msgid "Endpoint at which this webhook is received" msgstr "Eindpunt waarop deze webhook wordt ontvangen" -#: common/models.py:2703 +#: common/models.py:2767 msgid "Name for this webhook" msgstr "Naam van deze webhook" -#: common/models.py:2707 +#: common/models.py:2771 msgid "Is this webhook active" msgstr "Is deze webhook actief" -#: common/models.py:2723 users/models.py:159 +#: common/models.py:2787 users/models.py:159 msgid "Token" msgstr "" -#: common/models.py:2724 +#: common/models.py:2788 msgid "Token for access" msgstr "Token voor toegang" -#: common/models.py:2732 +#: common/models.py:2796 msgid "Secret" msgstr "Geheim" -#: common/models.py:2733 +#: common/models.py:2797 msgid "Shared secret for HMAC" msgstr "Gedeeld geheim voor HMAC" -#: common/models.py:2841 +#: common/models.py:2905 msgid "Message ID" msgstr "Bericht ID" -#: common/models.py:2842 +#: common/models.py:2906 msgid "Unique identifier for this message" msgstr "" -#: common/models.py:2850 +#: common/models.py:2914 msgid "Host" msgstr "" -#: common/models.py:2851 +#: common/models.py:2915 msgid "Host from which this message was received" msgstr "" -#: common/models.py:2859 +#: common/models.py:2923 msgid "Header" msgstr "Koptekst" -#: common/models.py:2860 +#: common/models.py:2924 msgid "Header of this message" msgstr "Koptekst van dit bericht" -#: common/models.py:2867 +#: common/models.py:2931 msgid "Body" msgstr "Berichtinhoud" -#: common/models.py:2868 +#: common/models.py:2932 msgid "Body of this message" msgstr "Inhoud van dit bericht" -#: common/models.py:2878 +#: common/models.py:2942 msgid "Endpoint on which this message was received" msgstr "" -#: common/models.py:2883 +#: common/models.py:2947 msgid "Worked on" msgstr "Aan gewerkt" -#: common/models.py:2884 +#: common/models.py:2948 msgid "Was the work on this message finished?" msgstr "" -#: common/models.py:3010 +#: common/models.py:3074 msgid "Id" msgstr "" -#: common/models.py:3012 templates/js/translated/company.js:965 -#: templates/js/translated/news.js:44 +#: common/models.py:3076 part/serializers.py:271 +#: templates/js/translated/company.js:966 templates/js/translated/news.js:44 msgid "Title" msgstr "Titel" -#: common/models.py:3014 common/models.py:3272 company/models.py:149 -#: company/models.py:446 company/models.py:512 company/models.py:818 -#: order/models.py:302 order/models.py:1385 order/models.py:1817 -#: part/admin.py:55 part/models.py:1057 +#: common/models.py:3078 common/models.py:3333 company/models.py:146 +#: company/models.py:443 company/models.py:509 company/models.py:815 +#: order/models.py:309 order/models.py:1402 order/models.py:1846 +#: part/admin.py:55 part/models.py:1118 #: part/templates/part/part_scheduling.html:11 #: report/templates/report/inventree_build_order_report.html:164 -#: stock/admin.py:229 templates/js/translated/company.js:1319 -#: templates/js/translated/company.js:1673 templates/js/translated/order.js:376 +#: stock/admin.py:230 templates/js/translated/company.js:1320 +#: templates/js/translated/company.js:1674 templates/js/translated/order.js:376 #: templates/js/translated/part.js:2475 -#: templates/js/translated/purchase_order.js:2110 -#: templates/js/translated/purchase_order.js:2274 +#: templates/js/translated/purchase_order.js:2094 +#: templates/js/translated/purchase_order.js:2258 #: templates/js/translated/return_order.js:778 -#: templates/js/translated/sales_order.js:1092 -#: templates/js/translated/sales_order.js:2023 +#: templates/js/translated/sales_order.js:1058 +#: templates/js/translated/sales_order.js:2004 msgid "Link" -msgstr "" +msgstr "Koppeling" -#: common/models.py:3016 templates/js/translated/news.js:60 +#: common/models.py:3080 templates/js/translated/news.js:60 msgid "Published" msgstr "Gepubliceerd" -#: common/models.py:3018 templates/InvenTree/settings/plugin_settings.html:32 +#: common/models.py:3082 templates/InvenTree/settings/plugin_settings.html:32 #: templates/js/translated/news.js:56 templates/js/translated/plugin.js:103 msgid "Author" msgstr "" -#: common/models.py:3020 templates/js/translated/news.js:52 +#: common/models.py:3084 templates/js/translated/news.js:52 msgid "Summary" msgstr "Samenvatting" -#: common/models.py:3023 +#: common/models.py:3087 msgid "Read" msgstr "Gelezen" -#: common/models.py:3023 +#: common/models.py:3087 msgid "Was this news item read?" msgstr "" -#: common/models.py:3040 company/models.py:159 part/models.py:1067 +#: common/models.py:3104 company/models.py:156 part/models.py:1128 #: report/templates/report/inventree_bill_of_materials_report.html:126 #: report/templates/report/inventree_bill_of_materials_report.html:148 #: report/templates/report/inventree_return_order_report.html:35 -#: stock/templates/stock/item_base.html:133 templates/503.html:31 +#: stock/templates/stock/item_base.html:130 templates/503.html:31 #: templates/hover_image.html:7 templates/hover_image.html:9 #: templates/modals.html:6 msgid "Image" msgstr "Afbeelding" -#: common/models.py:3040 +#: common/models.py:3104 msgid "Image file" msgstr "Afbeelding" -#: common/models.py:3052 common/models.py:3256 +#: common/models.py:3116 common/models.py:3317 msgid "Target model type for this image" msgstr "" -#: common/models.py:3056 +#: common/models.py:3120 msgid "Target model ID for this image" msgstr "" -#: common/models.py:3078 +#: common/models.py:3142 msgid "Custom Unit" msgstr "" -#: common/models.py:3099 +#: common/models.py:3160 msgid "Unit symbol must be unique" msgstr "" -#: common/models.py:3114 +#: common/models.py:3175 msgid "Unit name must be a valid identifier" msgstr "" -#: common/models.py:3133 +#: common/models.py:3194 msgid "Unit name" msgstr "" -#: common/models.py:3140 templates/InvenTree/settings/settings_staff_js.html:75 +#: common/models.py:3201 templates/InvenTree/settings/settings_staff_js.html:75 msgid "Symbol" msgstr "Symbool" -#: common/models.py:3141 +#: common/models.py:3202 msgid "Optional unit symbol" msgstr "" -#: common/models.py:3147 templates/InvenTree/settings/settings_staff_js.html:71 +#: common/models.py:3208 templates/InvenTree/settings/settings_staff_js.html:71 msgid "Definition" msgstr "Definitie" -#: common/models.py:3148 +#: common/models.py:3209 msgid "Unit definition" msgstr "" -#: common/models.py:3206 common/models.py:3263 stock/models.py:2558 -#: templates/js/translated/attachment.js:119 +#: common/models.py:3267 common/models.py:3324 stock/models.py:2674 +#: stock/serializers.py:244 templates/js/translated/attachment.js:119 #: templates/js/translated/attachment.js:345 msgid "Attachment" msgstr "Bijlage" -#: common/models.py:3218 +#: common/models.py:3279 msgid "Missing file" msgstr "Ontbrekend bestand" -#: common/models.py:3219 +#: common/models.py:3280 msgid "Missing external link" msgstr "Externe link ontbreekt" -#: common/models.py:3264 +#: common/models.py:3325 msgid "Select file to attach" msgstr "Bestand als bijlage selecteren" -#: common/models.py:3279 templates/js/translated/attachment.js:120 +#: common/models.py:3340 templates/js/translated/attachment.js:120 #: templates/js/translated/attachment.js:360 msgid "Comment" msgstr "Opmerking" -#: common/models.py:3280 +#: common/models.py:3341 msgid "Attachment comment" msgstr "" -#: common/models.py:3296 +#: common/models.py:3357 msgid "Upload date" msgstr "" -#: common/models.py:3297 +#: common/models.py:3358 msgid "Date the file was uploaded" msgstr "" -#: common/models.py:3301 +#: common/models.py:3362 msgid "File size" msgstr "" -#: common/models.py:3301 +#: common/models.py:3362 msgid "File size in bytes" msgstr "" -#: common/models.py:3339 common/serializers.py:562 +#: common/models.py:3400 common/serializers.py:609 msgid "Invalid model type specified for attachment" msgstr "" -#: common/notifications.py:314 +#: common/models.py:3409 plugin/models.py:43 users/models.py:100 +msgid "Key" +msgstr "" + +#: common/models.py:3410 +msgid "Value that will be saved in the models database" +msgstr "" + +#: common/models.py:3413 +msgid "Name of the state" +msgstr "" + +#: common/models.py:3417 part/serializers.py:273 +msgid "Label" +msgstr "Label" + +#: common/models.py:3418 +msgid "Label that will be displayed in the frontend" +msgstr "" + +#: common/models.py:3424 +msgid "Color" +msgstr "" + +#: common/models.py:3425 +msgid "Color that will be displayed in the frontend" +msgstr "" + +#: common/models.py:3428 +msgid "Logical Key" +msgstr "" + +#: common/models.py:3430 +msgid "State logical key that is equal to this custom state in business logic" +msgstr "" + +#: common/models.py:3438 part/serializers.py:275 +msgid "Model" +msgstr "" + +#: common/models.py:3439 +msgid "Model this state is associated with" +msgstr "" + +#: common/models.py:3443 +msgid "Reference Status Set" +msgstr "" + +#: common/models.py:3444 +msgid "Status set that is extended with this custom state" +msgstr "" + +#: common/models.py:3450 +msgid "Custom State" +msgstr "" + +#: common/models.py:3451 +msgid "Custom States" +msgstr "" + +#: common/models.py:3466 +msgid "Model must be selected" +msgstr "" + +#: common/models.py:3469 +msgid "Key must be selected" +msgstr "" + +#: common/models.py:3472 +msgid "Logical key must be selected" +msgstr "" + +#: common/models.py:3476 +msgid "Key must be different from logical key" +msgstr "" + +#: common/models.py:3480 +msgid "Reference status must be selected" +msgstr "" + +#: common/models.py:3492 +msgid "Reference status set not found" +msgstr "" + +#: common/models.py:3498 +msgid "Key must be different from the logical keys of the reference status" +msgstr "" + +#: common/models.py:3504 +msgid "Logical key must be in the logical keys of the reference status" +msgstr "" + +#: common/models.py:3519 +msgid "Barcode Scan" +msgstr "Barcode Scan" + +#: common/models.py:3523 importer/models.py:512 part/models.py:4009 +msgid "Data" +msgstr "" + +#: common/models.py:3524 +msgid "Barcode data" +msgstr "Barcode gegevens" + +#: common/models.py:3535 +msgid "User who scanned the barcode" +msgstr "Gebruiker die de barcode gescand heeft" + +#: common/models.py:3540 importer/models.py:60 +msgid "Timestamp" +msgstr "" + +#: common/models.py:3541 +msgid "Date and time of the barcode scan" +msgstr "Datum en tijd van de streepjescode scan" + +#: common/models.py:3547 +msgid "URL endpoint which processed the barcode" +msgstr "Adres eindpunt dat de streepjescode verwerkt" + +#: common/models.py:3554 order/models.py:1437 plugin/serializers.py:89 +msgid "Context" +msgstr "" + +#: common/models.py:3555 +msgid "Context data for the barcode scan" +msgstr "Contextgegevens voor de barcode scan" + +#: common/models.py:3562 +msgid "Response" +msgstr "Reactie" + +#: common/models.py:3563 +msgid "Response data from the barcode scan" +msgstr "Reactiegegevens van de barcode scan" + +#: common/models.py:3569 report/templates/report/inventree_test_report.html:103 +#: stock/models.py:2660 +msgid "Result" +msgstr "Resultaat" + +#: common/models.py:3570 +msgid "Was the barcode scan successful?" +msgstr "Was de barcode succesvol gescand?" + +#: common/notifications.py:328 #, python-brace-format msgid "New {verbose_name}" msgstr "Nieuw: {verbose_name}" -#: common/notifications.py:316 +#: common/notifications.py:330 msgid "A new order has been created and assigned to you" msgstr "Een nieuwe order is aangemaakt en aan u toegewezen" -#: common/notifications.py:322 +#: common/notifications.py:336 #, python-brace-format msgid "{verbose_name} canceled" msgstr "" -#: common/notifications.py:324 +#: common/notifications.py:338 msgid "A order that is assigned to you was canceled" msgstr "" -#: common/notifications.py:330 common/notifications.py:337 order/api.py:462 +#: common/notifications.py:344 common/notifications.py:351 order/api.py:440 msgid "Items Received" msgstr "" -#: common/notifications.py:332 +#: common/notifications.py:346 msgid "Items have been received against a purchase order" msgstr "Artikelen zijn ontvangen tegen een inkooporder" -#: common/notifications.py:339 +#: common/notifications.py:353 msgid "Items have been received against a return order" msgstr "" -#: common/notifications.py:457 +#: common/notifications.py:475 msgid "Error raised by plugin" msgstr "" -#: common/serializers.py:375 +#: common/serializers.py:423 msgid "Is Running" msgstr "" -#: common/serializers.py:381 +#: common/serializers.py:429 msgid "Pending Tasks" msgstr "" -#: common/serializers.py:387 +#: common/serializers.py:435 msgid "Scheduled Tasks" msgstr "" -#: common/serializers.py:393 +#: common/serializers.py:441 msgid "Failed Tasks" msgstr "" -#: common/serializers.py:408 +#: common/serializers.py:456 msgid "Task ID" msgstr "" -#: common/serializers.py:408 +#: common/serializers.py:456 msgid "Unique task ID" msgstr "" -#: common/serializers.py:410 +#: common/serializers.py:458 msgid "Lock" msgstr "" -#: common/serializers.py:410 +#: common/serializers.py:458 msgid "Lock time" msgstr "" -#: common/serializers.py:412 +#: common/serializers.py:460 msgid "Task name" msgstr "" -#: common/serializers.py:414 +#: common/serializers.py:462 msgid "Function" msgstr "" -#: common/serializers.py:414 +#: common/serializers.py:462 msgid "Function name" msgstr "" -#: common/serializers.py:416 +#: common/serializers.py:464 msgid "Arguments" msgstr "" -#: common/serializers.py:416 +#: common/serializers.py:464 msgid "Task arguments" msgstr "" -#: common/serializers.py:419 +#: common/serializers.py:467 msgid "Keyword Arguments" msgstr "" -#: common/serializers.py:419 +#: common/serializers.py:467 msgid "Task keyword arguments" msgstr "" -#: common/serializers.py:529 +#: common/serializers.py:577 msgid "Filename" msgstr "Bestandsnaam" -#: common/serializers.py:536 report/api.py:100 report/serializers.py:53 +#: common/serializers.py:584 report/api.py:100 report/serializers.py:54 msgid "Model Type" msgstr "" -#: common/serializers.py:565 +#: common/serializers.py:612 msgid "User does not have permission to create or edit attachments for this model" msgstr "" @@ -4116,15 +4295,15 @@ msgstr "Vergelijk Velden" msgid "Match Items" msgstr "" -#: common/views.py:401 +#: common/views.py:397 msgid "Fields matching failed" msgstr "" -#: common/views.py:464 +#: common/views.py:460 msgid "Parts imported" msgstr "Geïmporteerde onderdelen" -#: common/views.py:494 order/templates/order/order_wizard/match_fields.html:27 +#: common/views.py:490 order/templates/order/order_wizard/match_fields.html:27 #: order/templates/order/order_wizard/match_parts.html:19 #: order/templates/order/order_wizard/po_upload.html:49 #: part/templates/part/import_wizard/match_fields.html:27 @@ -4155,429 +4334,429 @@ msgstr "" msgid "Supplier is Active" msgstr "" -#: company/models.py:100 company/models.py:371 +#: company/models.py:97 company/models.py:368 #: company/templates/company/company_base.html:8 #: company/templates/company/company_base.html:12 stock/api.py:812 -#: templates/InvenTree/search.html:178 templates/js/translated/company.js:496 +#: templates/InvenTree/search.html:178 templates/js/translated/company.js:497 msgid "Company" msgstr "Bedrijf" -#: company/models.py:101 company/views.py:51 +#: company/models.py:98 company/views.py:51 #: templates/js/translated/search.js:192 msgid "Companies" msgstr "Bedrijven" -#: company/models.py:117 +#: company/models.py:114 msgid "Company description" msgstr "" -#: company/models.py:118 +#: company/models.py:115 msgid "Description of the company" msgstr "" -#: company/models.py:123 company/templates/company/company_base.html:106 +#: company/models.py:120 company/templates/company/company_base.html:106 #: templates/InvenTree/settings/plugin_settings.html:54 -#: templates/js/translated/company.js:532 +#: templates/js/translated/company.js:533 msgid "Website" msgstr "" -#: company/models.py:123 +#: company/models.py:120 msgid "Company website URL" msgstr "URL bedrijfswebsite" -#: company/models.py:128 +#: company/models.py:125 msgid "Phone number" msgstr "Telefoonnummer" -#: company/models.py:130 +#: company/models.py:127 msgid "Contact phone number" msgstr "Telefoonnummer voor contact" -#: company/models.py:137 +#: company/models.py:134 msgid "Contact email address" msgstr "Contact e-mailadres" -#: company/models.py:142 company/models.py:275 -#: company/templates/company/company_base.html:145 order/models.py:342 -#: order/templates/order/order_base.html:208 -#: order/templates/order/return_order_base.html:177 -#: order/templates/order/sales_order_base.html:221 +#: company/models.py:139 company/models.py:272 +#: company/templates/company/company_base.html:145 order/models.py:349 +#: order/templates/order/order_base.html:217 +#: order/templates/order/return_order_base.html:178 +#: order/templates/order/sales_order_base.html:222 msgid "Contact" msgstr "" -#: company/models.py:144 +#: company/models.py:141 msgid "Point of contact" msgstr "Contactpunt" -#: company/models.py:150 +#: company/models.py:147 msgid "Link to external company information" msgstr "Link naar externe bedrijfsinformatie" -#: company/models.py:163 +#: company/models.py:160 msgid "Is this company active?" msgstr "" -#: company/models.py:168 +#: company/models.py:165 msgid "Is customer" msgstr "" -#: company/models.py:169 +#: company/models.py:166 msgid "Do you sell items to this company?" msgstr "" -#: company/models.py:174 +#: company/models.py:171 msgid "Is supplier" msgstr "" -#: company/models.py:175 +#: company/models.py:172 msgid "Do you purchase items from this company?" msgstr "" -#: company/models.py:180 +#: company/models.py:177 msgid "Is manufacturer" msgstr "" -#: company/models.py:181 +#: company/models.py:178 msgid "Does this company manufacture parts?" msgstr "Fabriceert dit bedrijf onderdelen?" -#: company/models.py:189 +#: company/models.py:186 msgid "Default currency used for this company" msgstr "Standaardvaluta die gebruikt wordt voor dit bedrijf" -#: company/models.py:314 company/templates/company/company_base.html:124 -#: order/models.py:352 order/templates/order/order_base.html:215 -#: order/templates/order/return_order_base.html:184 -#: order/templates/order/sales_order_base.html:228 +#: company/models.py:311 company/templates/company/company_base.html:124 +#: order/models.py:359 order/templates/order/order_base.html:224 +#: order/templates/order/return_order_base.html:185 +#: order/templates/order/sales_order_base.html:229 msgid "Address" msgstr "Adres" -#: company/models.py:315 company/templates/company/sidebar.html:35 +#: company/models.py:312 company/templates/company/sidebar.html:35 msgid "Addresses" msgstr "" -#: company/models.py:372 +#: company/models.py:369 msgid "Select company" msgstr "" -#: company/models.py:377 +#: company/models.py:374 msgid "Address title" msgstr "" -#: company/models.py:378 +#: company/models.py:375 msgid "Title describing the address entry" msgstr "" -#: company/models.py:384 +#: company/models.py:381 msgid "Primary address" msgstr "" -#: company/models.py:385 +#: company/models.py:382 msgid "Set as primary address" msgstr "" -#: company/models.py:390 templates/js/translated/company.js:914 -#: templates/js/translated/company.js:971 +#: company/models.py:387 templates/js/translated/company.js:915 +#: templates/js/translated/company.js:972 msgid "Line 1" msgstr "" -#: company/models.py:391 +#: company/models.py:388 msgid "Address line 1" msgstr "" -#: company/models.py:397 templates/js/translated/company.js:915 -#: templates/js/translated/company.js:977 +#: company/models.py:394 templates/js/translated/company.js:916 +#: templates/js/translated/company.js:978 msgid "Line 2" msgstr "" -#: company/models.py:398 +#: company/models.py:395 msgid "Address line 2" msgstr "" -#: company/models.py:404 company/models.py:405 -#: templates/js/translated/company.js:983 +#: company/models.py:401 company/models.py:402 +#: templates/js/translated/company.js:984 msgid "Postal code" msgstr "" -#: company/models.py:411 +#: company/models.py:408 msgid "City/Region" msgstr "" -#: company/models.py:412 +#: company/models.py:409 msgid "Postal code city/region" msgstr "" -#: company/models.py:418 +#: company/models.py:415 msgid "State/Province" msgstr "" -#: company/models.py:419 +#: company/models.py:416 msgid "State or province" msgstr "" -#: company/models.py:425 templates/js/translated/company.js:1001 +#: company/models.py:422 templates/js/translated/company.js:1002 msgid "Country" msgstr "" -#: company/models.py:426 +#: company/models.py:423 msgid "Address country" msgstr "" -#: company/models.py:432 +#: company/models.py:429 msgid "Courier shipping notes" msgstr "" -#: company/models.py:433 +#: company/models.py:430 msgid "Notes for shipping courier" msgstr "" -#: company/models.py:439 +#: company/models.py:436 msgid "Internal shipping notes" msgstr "" -#: company/models.py:440 +#: company/models.py:437 msgid "Shipping notes for internal use" msgstr "" -#: company/models.py:447 +#: company/models.py:444 msgid "Link to address information (external)" msgstr "" -#: company/models.py:470 company/models.py:587 company/models.py:811 +#: company/models.py:467 company/models.py:584 company/models.py:808 #: company/templates/company/manufacturer_part.html:7 #: company/templates/company/manufacturer_part.html:24 -#: stock/templates/stock/item_base.html:217 +#: stock/templates/stock/item_base.html:214 msgid "Manufacturer Part" msgstr "Fabrikant onderdeel" -#: company/models.py:487 company/models.py:779 stock/models.py:787 -#: stock/serializers.py:445 stock/templates/stock/item_base.html:142 +#: company/models.py:484 company/models.py:776 stock/models.py:864 +#: stock/serializers.py:455 stock/templates/stock/item_base.html:139 #: templates/js/translated/bom.js:622 msgid "Base Part" msgstr "Basis onderdeel" -#: company/models.py:489 company/models.py:781 +#: company/models.py:486 company/models.py:778 msgid "Select part" msgstr "Onderdeel selecteren" -#: company/models.py:498 company/templates/company/company_base.html:82 +#: company/models.py:495 company/templates/company/company_base.html:82 #: company/templates/company/manufacturer_part.html:90 -#: company/templates/company/supplier_part.html:145 part/serializers.py:554 -#: stock/templates/stock/item_base.html:207 -#: templates/js/translated/company.js:507 -#: templates/js/translated/company.js:1118 -#: templates/js/translated/company.js:1296 -#: templates/js/translated/company.js:1611 +#: company/templates/company/supplier_part.html:146 part/serializers.py:598 +#: stock/templates/stock/item_base.html:204 +#: templates/js/translated/company.js:508 +#: templates/js/translated/company.js:1119 +#: templates/js/translated/company.js:1297 +#: templates/js/translated/company.js:1612 #: templates/js/translated/table_filters.js:812 msgid "Manufacturer" msgstr "Fabrikant" -#: company/models.py:499 +#: company/models.py:496 msgid "Select manufacturer" msgstr "Fabrikant selecteren" -#: company/models.py:505 company/templates/company/manufacturer_part.html:101 -#: company/templates/company/supplier_part.html:153 order/serializers.py:556 -#: part/serializers.py:564 templates/js/translated/company.js:351 -#: templates/js/translated/company.js:1117 -#: templates/js/translated/company.js:1312 -#: templates/js/translated/company.js:1630 templates/js/translated/part.js:1807 -#: templates/js/translated/purchase_order.js:1921 -#: templates/js/translated/purchase_order.js:2123 +#: company/models.py:502 company/templates/company/manufacturer_part.html:101 +#: company/templates/company/supplier_part.html:154 order/serializers.py:641 +#: part/serializers.py:608 templates/js/translated/company.js:352 +#: templates/js/translated/company.js:1118 +#: templates/js/translated/company.js:1313 +#: templates/js/translated/company.js:1631 templates/js/translated/part.js:1807 +#: templates/js/translated/purchase_order.js:1905 +#: templates/js/translated/purchase_order.js:2107 msgid "MPN" msgstr "" -#: company/models.py:513 +#: company/models.py:510 msgid "URL for external manufacturer part link" msgstr "URL voor externe link van het fabrikant onderdeel" -#: company/models.py:522 +#: company/models.py:519 msgid "Manufacturer part description" msgstr "Omschrijving onderdeel fabrikant" -#: company/models.py:575 +#: company/models.py:572 msgid "Manufacturer Part Parameter" msgstr "" -#: company/models.py:594 +#: company/models.py:591 msgid "Parameter name" msgstr "Parameternaam" -#: company/models.py:600 report/templates/report/inventree_test_report.html:104 -#: stock/models.py:2550 templates/js/translated/company.js:1166 -#: templates/js/translated/company.js:1419 templates/js/translated/part.js:1499 +#: company/models.py:597 report/templates/report/inventree_test_report.html:104 +#: stock/models.py:2666 templates/js/translated/company.js:1167 +#: templates/js/translated/company.js:1420 templates/js/translated/part.js:1499 #: templates/js/translated/stock.js:1607 msgid "Value" msgstr "Waarde" -#: company/models.py:601 +#: company/models.py:598 msgid "Parameter value" msgstr "Parameterwaarde" -#: company/models.py:608 company/templates/company/supplier_part.html:168 -#: part/admin.py:57 part/models.py:1147 part/models.py:3771 -#: part/templates/part/part_base.html:293 -#: templates/js/translated/company.js:1425 templates/js/translated/part.js:1518 +#: company/models.py:605 company/templates/company/supplier_part.html:169 +#: part/admin.py:57 part/models.py:1208 part/models.py:3822 +#: part/templates/part/part_base.html:301 +#: templates/js/translated/company.js:1426 templates/js/translated/part.js:1518 #: templates/js/translated/part.js:1622 templates/js/translated/part.js:2376 msgid "Units" msgstr "Eenheden" -#: company/models.py:609 +#: company/models.py:606 msgid "Parameter units" msgstr "Parameter eenheden" -#: company/models.py:662 company/templates/company/supplier_part.html:7 -#: company/templates/company/supplier_part.html:24 order/api.py:442 -#: order/serializers.py:491 stock/models.py:798 -#: stock/templates/stock/item_base.html:233 -#: templates/js/translated/build.js:1052 -#: templates/js/translated/company.js:1600 -#: templates/js/translated/purchase_order.js:752 -#: templates/js/translated/stock.js:2365 +#: company/models.py:659 company/templates/company/supplier_part.html:8 +#: company/templates/company/supplier_part.html:25 order/api.py:392 +#: order/serializers.py:576 stock/models.py:875 +#: stock/templates/stock/item_base.html:230 +#: templates/js/translated/build.js:1055 +#: templates/js/translated/company.js:1601 +#: templates/js/translated/purchase_order.js:735 +#: templates/js/translated/stock.js:2366 msgid "Supplier Part" msgstr "Leveranciersonderdeel" -#: company/models.py:719 +#: company/models.py:716 msgid "Pack units must be compatible with the base part units" msgstr "" -#: company/models.py:726 +#: company/models.py:723 msgid "Pack units must be greater than zero" msgstr "" -#: company/models.py:740 +#: company/models.py:737 msgid "Linked manufacturer part must reference the same base part" msgstr "Gekoppeld fabrikant onderdeel moet verwijzen naar hetzelfde basis onderdeel" -#: company/models.py:789 company/templates/company/company_base.html:87 -#: company/templates/company/supplier_part.html:129 order/models.py:491 -#: order/templates/order/order_base.html:141 part/bom.py:280 part/bom.py:318 -#: part/serializers.py:538 plugin/builtin/suppliers/digikey.py:25 +#: company/models.py:786 company/templates/company/company_base.html:87 +#: company/templates/company/supplier_part.html:130 order/models.py:503 +#: order/templates/order/order_base.html:150 part/bom.py:279 part/bom.py:314 +#: part/serializers.py:582 plugin/builtin/suppliers/digikey.py:25 #: plugin/builtin/suppliers/lcsc.py:26 plugin/builtin/suppliers/mouser.py:24 -#: plugin/builtin/suppliers/tme.py:26 stock/templates/stock/item_base.html:224 +#: plugin/builtin/suppliers/tme.py:26 stock/templates/stock/item_base.html:221 #: templates/email/overdue_purchase_order.html:16 -#: templates/js/translated/company.js:350 -#: templates/js/translated/company.js:511 -#: templates/js/translated/company.js:1584 templates/js/translated/part.js:1775 +#: templates/js/translated/company.js:351 +#: templates/js/translated/company.js:512 +#: templates/js/translated/company.js:1585 templates/js/translated/part.js:1775 #: templates/js/translated/pricing.js:498 -#: templates/js/translated/purchase_order.js:1759 +#: templates/js/translated/purchase_order.js:1743 #: templates/js/translated/table_filters.js:816 msgid "Supplier" msgstr "Leverancier" -#: company/models.py:790 +#: company/models.py:787 msgid "Select supplier" msgstr "Leverancier selecteren" -#: company/models.py:796 part/serializers.py:549 +#: company/models.py:793 part/serializers.py:593 msgid "Supplier stock keeping unit" -msgstr "" +msgstr "Voorraad beheers eenheid voor leveranciers" -#: company/models.py:802 +#: company/models.py:799 msgid "Is this supplier part active?" msgstr "" -#: company/models.py:812 +#: company/models.py:809 msgid "Select manufacturer part" msgstr "Selecteer fabrikant onderdeel" -#: company/models.py:819 +#: company/models.py:816 msgid "URL for external supplier part link" msgstr "" -#: company/models.py:828 +#: company/models.py:825 msgid "Supplier part description" msgstr "" -#: company/models.py:835 company/templates/company/supplier_part.html:187 -#: order/serializers.py:698 part/admin.py:415 part/models.py:4288 +#: company/models.py:832 company/templates/company/supplier_part.html:188 +#: order/serializers.py:783 part/admin.py:415 part/models.py:4345 #: part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_bill_of_materials_report.html:140 #: report/templates/report/inventree_purchase_order_report.html:32 #: report/templates/report/inventree_return_order_report.html:27 #: report/templates/report/inventree_sales_order_report.html:32 #: report/templates/report/inventree_stock_location_report.html:105 -#: stock/serializers.py:776 templates/js/translated/purchase_order.js:1185 -#: templates/js/translated/purchase_order.js:1344 +#: stock/serializers.py:807 templates/js/translated/purchase_order.js:1168 +#: templates/js/translated/purchase_order.js:1327 msgid "Note" msgstr "Opmerking" -#: company/models.py:844 part/models.py:2117 +#: company/models.py:841 part/models.py:2177 msgid "base cost" msgstr "basisprijs" -#: company/models.py:845 part/models.py:2118 +#: company/models.py:842 part/models.py:2178 msgid "Minimum charge (e.g. stocking fee)" msgstr "Minimale kosten (bijv. voorraadkosten)" -#: company/models.py:853 +#: company/models.py:850 msgid "Part packaging" msgstr "" -#: company/models.py:858 templates/js/translated/company.js:1651 +#: company/models.py:855 templates/js/translated/company.js:1652 #: templates/js/translated/part.js:1828 templates/js/translated/part.js:1884 -#: templates/js/translated/purchase_order.js:311 -#: templates/js/translated/purchase_order.js:841 -#: templates/js/translated/purchase_order.js:1103 -#: templates/js/translated/purchase_order.js:2154 -#: templates/js/translated/purchase_order.js:2171 +#: templates/js/translated/purchase_order.js:294 +#: templates/js/translated/purchase_order.js:824 +#: templates/js/translated/purchase_order.js:1086 +#: templates/js/translated/purchase_order.js:2138 +#: templates/js/translated/purchase_order.js:2155 msgid "Pack Quantity" msgstr "" -#: company/models.py:860 +#: company/models.py:857 msgid "Total quantity supplied in a single pack. Leave empty for single items." msgstr "" -#: company/models.py:879 part/models.py:2124 +#: company/models.py:876 part/models.py:2184 msgid "multiple" msgstr "meerdere" -#: company/models.py:880 +#: company/models.py:877 msgid "Order multiple" msgstr "Order meerdere" -#: company/models.py:892 +#: company/models.py:889 msgid "Quantity available from supplier" msgstr "" -#: company/models.py:898 +#: company/models.py:895 msgid "Availability Updated" msgstr "" -#: company/models.py:899 +#: company/models.py:896 msgid "Date of last update of availability data" msgstr "" -#: company/models.py:1027 +#: company/models.py:1024 msgid "Supplier Price Break" msgstr "" -#: company/serializers.py:174 +#: company/serializers.py:178 msgid "Default currency used for this supplier" msgstr "" -#: company/serializers.py:210 +#: company/serializers.py:214 msgid "Company Name" msgstr "" -#: company/serializers.py:393 part/admin.py:126 part/serializers.py:898 -#: part/templates/part/part_base.html:197 -#: templates/js/translated/company.js:1689 +#: company/serializers.py:397 part/admin.py:126 part/serializers.py:950 +#: part/templates/part/part_base.html:198 stock/serializers.py:474 +#: templates/js/translated/company.js:1690 #: templates/js/translated/table_filters.js:362 msgid "In Stock" -msgstr "" +msgstr "Op voorraad" #: company/templates/company/company_base.html:16 -#: part/templates/part/part_base.html:146 -#: templates/js/translated/company.js:1287 -#: templates/js/translated/company.js:1575 -#: templates/js/translated/model_renderers.js:313 +#: part/templates/part/part_base.html:147 +#: templates/js/translated/company.js:1288 +#: templates/js/translated/company.js:1576 +#: templates/js/translated/model_renderers.js:316 #: templates/js/translated/part.js:817 templates/js/translated/part.js:1225 msgid "Inactive" msgstr "" #: company/templates/company/company_base.html:27 -#: templates/js/translated/purchase_order.js:242 +#: templates/js/translated/purchase_order.js:224 msgid "Create Purchase Order" msgstr "Inkooporder aanmaken" @@ -4590,7 +4769,7 @@ msgid "Edit company information" msgstr "Bedrijfsinformatie bewerken" #: company/templates/company/company_base.html:39 -#: templates/js/translated/company.js:445 +#: templates/js/translated/company.js:446 msgid "Edit Company" msgstr "Bedrijf bewerken" @@ -4605,11 +4784,12 @@ msgstr "Bedrijf verwijderen" #: company/templates/company/company_base.html:53 #: company/templates/company/manufacturer_part.html:51 -#: company/templates/company/supplier_part.html:83 +#: company/templates/company/supplier_part.html:84 #: part/templates/part/part_thumb.html:20 #: report/templates/report/inventree_build_order_report.html:98 #: report/templates/report/inventree_purchase_order_report.html:40 #: report/templates/report/inventree_sales_order_report.html:40 +#: report/templates/report/inventree_sales_order_shipment_report.html:37 #: report/templates/report/inventree_test_report.html:84 #: report/templates/report/inventree_test_report.html:162 msgid "Part image" @@ -4630,16 +4810,16 @@ msgstr "Afbeelding downloaden van URL" msgid "Delete image" msgstr "" -#: company/templates/company/company_base.html:92 order/models.py:990 -#: order/models.py:2147 order/templates/order/return_order_base.html:134 -#: order/templates/order/sales_order_base.html:151 stock/models.py:840 -#: stock/models.py:841 stock/serializers.py:1329 -#: stock/templates/stock/item_base.html:405 +#: company/templates/company/company_base.html:92 order/models.py:1017 +#: order/models.py:2186 order/templates/order/return_order_base.html:135 +#: order/templates/order/sales_order_base.html:152 stock/models.py:917 +#: stock/models.py:918 stock/serializers.py:1360 +#: stock/templates/stock/item_base.html:402 #: templates/email/overdue_sales_order.html:16 -#: templates/js/translated/company.js:503 +#: templates/js/translated/company.js:504 #: templates/js/translated/return_order.js:295 -#: templates/js/translated/sales_order.js:820 -#: templates/js/translated/stock.js:3043 +#: templates/js/translated/sales_order.js:779 +#: templates/js/translated/stock.js:3044 #: templates/js/translated/table_filters.js:820 msgid "Customer" msgstr "Klant" @@ -4653,7 +4833,7 @@ msgid "Phone" msgstr "Telefoon" #: company/templates/company/company_base.html:211 -#: part/templates/part/part_base.html:536 +#: part/templates/part/part_base.html:544 msgid "Remove Image" msgstr "" @@ -4662,19 +4842,19 @@ msgid "Remove associated image from this company" msgstr "" #: company/templates/company/company_base.html:214 -#: part/templates/part/part_base.html:539 +#: part/templates/part/part_base.html:547 #: templates/InvenTree/settings/user.html:88 #: templates/InvenTree/settings/user_sso.html:43 msgid "Remove" msgstr "" #: company/templates/company/company_base.html:243 -#: part/templates/part/part_base.html:568 +#: part/templates/part/part_base.html:576 msgid "Upload Image" msgstr "" #: company/templates/company/company_base.html:258 -#: part/templates/part/part_base.html:622 +#: part/templates/part/part_base.html:630 msgid "Download Image" msgstr "" @@ -4709,12 +4889,12 @@ msgstr "Nieuw fabrikant onderdeel" #: company/templates/company/detail.html:65 msgid "Supplier Stock" -msgstr "" +msgstr "Leverancier voorraad" #: company/templates/company/detail.html:75 #: company/templates/company/sidebar.html:12 #: company/templates/company/supplier_part_sidebar.html:7 -#: order/templates/order/order_base.html:13 +#: order/templates/order/order_base.html:14 #: order/templates/order/purchase_orders.html:8 #: order/templates/order/purchase_orders.html:12 #: part/templates/part/detail.html:122 part/templates/part/part_sidebar.html:35 @@ -4737,7 +4917,7 @@ msgstr "Nieuwe Inkooporder" #: company/templates/company/detail.html:101 #: company/templates/company/sidebar.html:21 -#: order/templates/order/sales_order_base.html:13 +#: order/templates/order/sales_order_base.html:14 #: order/templates/order/sales_orders.html:8 #: order/templates/order/sales_orders.html:15 #: part/templates/part/detail.html:143 part/templates/part/part_sidebar.html:39 @@ -4760,11 +4940,11 @@ msgstr "Nieuwe Verkooporder" #: company/templates/company/detail.html:126 msgid "Assigned Stock" -msgstr "" +msgstr "Toegewezen voorraad" #: company/templates/company/detail.html:142 #: company/templates/company/sidebar.html:29 -#: order/templates/order/return_order_base.html:13 +#: order/templates/order/return_order_base.html:14 #: order/templates/order/return_orders.html:8 #: order/templates/order/return_orders.html:15 #: templates/InvenTree/settings/sidebar.html:61 @@ -4811,24 +4991,24 @@ msgid "Manufacturers" msgstr "Fabrikanten" #: company/templates/company/manufacturer_part.html:35 -#: company/templates/company/supplier_part.html:227 -#: part/templates/part/detail.html:125 part/templates/part/part_base.html:83 +#: company/templates/company/supplier_part.html:228 +#: part/templates/part/detail.html:125 part/templates/part/part_base.html:84 msgid "Order part" msgstr "Order onderdeel" #: company/templates/company/manufacturer_part.html:39 -#: templates/js/translated/company.js:1343 +#: templates/js/translated/company.js:1344 msgid "Edit manufacturer part" msgstr "Fabrikant onderdeel bewerken" #: company/templates/company/manufacturer_part.html:43 -#: templates/js/translated/company.js:1344 +#: templates/js/translated/company.js:1345 msgid "Delete manufacturer part" msgstr "Fabrikant onderdeel verwijderen" #: company/templates/company/manufacturer_part.html:65 -#: company/templates/company/supplier_part.html:97 order/api.py:448 -#: order/serializers.py:564 +#: company/templates/company/supplier_part.html:98 order/api.py:411 +#: order/serializers.py:649 msgid "Internal Part" msgstr "Intern onderdeel" @@ -4837,8 +5017,8 @@ msgid "No manufacturer information available" msgstr "Geen fabrikanten informatie beschikbaar" #: company/templates/company/manufacturer_part.html:119 -#: company/templates/company/supplier_part.html:15 company/views.py:31 -#: part/admin.py:122 part/serializers.py:904 +#: company/templates/company/supplier_part.html:16 company/views.py:31 +#: part/admin.py:122 part/serializers.py:956 #: part/templates/part/part_sidebar.html:33 templates/InvenTree/search.html:190 #: templates/navbar.html:48 msgid "Suppliers" @@ -4887,112 +5067,113 @@ msgstr "Toegewezen Voorraadartikelen" msgid "Contacts" msgstr "" -#: company/templates/company/supplier_part.html:50 -#: templates/js/translated/company.js:1526 +#: company/templates/company/supplier_part.html:51 +#: templates/js/translated/company.js:1527 msgid "Supplier part actions" msgstr "" -#: company/templates/company/supplier_part.html:55 #: company/templates/company/supplier_part.html:56 -#: company/templates/company/supplier_part.html:228 +#: company/templates/company/supplier_part.html:57 +#: company/templates/company/supplier_part.html:229 #: part/templates/part/detail.html:126 msgid "Order Part" msgstr "Order Onderdeel" -#: company/templates/company/supplier_part.html:60 #: company/templates/company/supplier_part.html:61 +#: company/templates/company/supplier_part.html:62 msgid "Update Availability" msgstr "" -#: company/templates/company/supplier_part.html:63 #: company/templates/company/supplier_part.html:64 -#: templates/js/translated/company.js:294 +#: company/templates/company/supplier_part.html:65 +#: templates/js/translated/company.js:295 msgid "Edit Supplier Part" msgstr "Bewerk Leveranciers onderdeel" -#: company/templates/company/supplier_part.html:68 #: company/templates/company/supplier_part.html:69 -#: templates/js/translated/company.js:269 +#: company/templates/company/supplier_part.html:70 +#: templates/js/translated/company.js:270 msgid "Duplicate Supplier Part" msgstr "Dupliceer Leveranciers onderdeel" -#: company/templates/company/supplier_part.html:73 +#: company/templates/company/supplier_part.html:74 msgid "Delete Supplier Part" msgstr "" -#: company/templates/company/supplier_part.html:74 +#: company/templates/company/supplier_part.html:75 msgid "Delete Supplier Part" msgstr "Verwijder leveranciers onderdeel" -#: company/templates/company/supplier_part.html:133 +#: company/templates/company/supplier_part.html:134 +#: order/templates/order/order_base.html:155 msgid "No supplier information available" msgstr "Geen leveranciersinformatie beschikbaar" -#: company/templates/company/supplier_part.html:139 order/serializers.py:553 -#: part/bom.py:287 part/bom.py:319 part/serializers.py:548 -#: templates/js/translated/company.js:349 templates/js/translated/part.js:1793 +#: company/templates/company/supplier_part.html:140 order/serializers.py:638 +#: part/bom.py:286 part/bom.py:315 part/serializers.py:592 +#: templates/js/translated/company.js:350 templates/js/translated/part.js:1793 #: templates/js/translated/pricing.js:510 -#: templates/js/translated/purchase_order.js:1920 -#: templates/js/translated/purchase_order.js:2098 +#: templates/js/translated/purchase_order.js:1904 +#: templates/js/translated/purchase_order.js:2082 msgid "SKU" msgstr "" -#: company/templates/company/supplier_part.html:206 +#: company/templates/company/supplier_part.html:207 msgid "Supplier Part Stock" -msgstr "" +msgstr "Voorraad leverancier" -#: company/templates/company/supplier_part.html:209 -#: part/templates/part/detail.html:24 stock/templates/stock/location.html:204 +#: company/templates/company/supplier_part.html:210 +#: part/templates/part/detail.html:24 stock/templates/stock/location.html:205 msgid "Create new stock item" msgstr "Nieuw voorraadartikel aanmaken" -#: company/templates/company/supplier_part.html:210 -#: part/templates/part/detail.html:25 stock/templates/stock/location.html:205 +#: company/templates/company/supplier_part.html:211 +#: part/templates/part/detail.html:25 stock/templates/stock/location.html:206 #: templates/js/translated/stock.js:543 msgid "New Stock Item" msgstr "Nieuw Voorraadartikel" -#: company/templates/company/supplier_part.html:223 +#: company/templates/company/supplier_part.html:224 msgid "Supplier Part Orders" msgstr "Leverancier Onderdelenorders" -#: company/templates/company/supplier_part.html:246 +#: company/templates/company/supplier_part.html:247 msgid "Pricing Information" msgstr "Prijsinformatie" -#: company/templates/company/supplier_part.html:251 -#: templates/js/translated/company.js:398 +#: company/templates/company/supplier_part.html:252 +#: templates/js/translated/company.js:399 #: templates/js/translated/pricing.js:684 msgid "Add Price Break" msgstr "" -#: company/templates/company/supplier_part.html:270 +#: company/templates/company/supplier_part.html:271 msgid "Supplier Part Notes" msgstr "" -#: company/templates/company/supplier_part.html:305 +#: company/templates/company/supplier_part.html:306 msgid "Supplier Part QR Code" msgstr "" -#: company/templates/company/supplier_part.html:316 +#: company/templates/company/supplier_part.html:317 msgid "Link Barcode to Supplier Part" msgstr "" -#: company/templates/company/supplier_part.html:388 +#: company/templates/company/supplier_part.html:389 msgid "Update Part Availability" msgstr "" #: company/templates/company/supplier_part_sidebar.html:5 -#: part/serializers.py:902 part/stocktake.py:223 +#: part/serializers.py:954 part/stocktake.py:223 #: part/templates/part/category.html:180 #: part/templates/part/category_sidebar.html:17 stock/admin.py:68 -#: stock/serializers.py:1014 stock/serializers.py:1192 -#: stock/templates/stock/location.html:167 -#: stock/templates/stock/location.html:188 -#: stock/templates/stock/location.html:200 +#: stock/serializers.py:1045 stock/serializers.py:1223 +#: stock/templates/stock/location.html:168 +#: stock/templates/stock/location.html:189 +#: stock/templates/stock/location.html:201 #: stock/templates/stock/location_sidebar.html:7 #: templates/InvenTree/search.html:155 templates/js/translated/part.js:1067 -#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2850 +#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2851 #: users/models.py:206 msgid "Stock Items" msgstr "Voorraadartikelen" @@ -5022,99 +5203,99 @@ msgstr "Nieuwe Klant" msgid "New Company" msgstr "Nieuw Bedrijf" -#: generic/states/tests.py:18 order/status_codes.py:13 +#: generic/states/fields.py:118 +msgid "Custom status key" +msgstr "" + +#: generic/states/fields.py:119 +msgid "Additional status information for this item" +msgstr "" + +#: generic/states/tests.py:22 order/status_codes.py:13 msgid "Placed" msgstr "Geplaatst" -#: importer/mixins.py:263 +#: importer/mixins.py:261 msgid "Invalid export format" msgstr "" -#: importer/models.py:59 -msgid "Timestamp" -msgstr "" - -#: importer/models.py:64 +#: importer/models.py:65 msgid "Data file to import" msgstr "" -#: importer/models.py:73 templates/js/translated/tables.js:558 +#: importer/models.py:74 templates/js/translated/tables.js:558 msgid "Columns" msgstr "" -#: importer/models.py:84 +#: importer/models.py:85 msgid "Import status" msgstr "" -#: importer/models.py:94 +#: importer/models.py:95 msgid "Field Defaults" msgstr "" -#: importer/models.py:101 +#: importer/models.py:102 msgid "Field Overrides" msgstr "" -#: importer/models.py:108 +#: importer/models.py:109 msgid "Field Filters" msgstr "" -#: importer/models.py:230 +#: importer/models.py:239 msgid "Some required fields have not been mapped" msgstr "" -#: importer/models.py:387 +#: importer/models.py:396 msgid "Column is already mapped to a database field" msgstr "" -#: importer/models.py:392 +#: importer/models.py:401 msgid "Field is already mapped to a data column" msgstr "" -#: importer/models.py:401 +#: importer/models.py:410 msgid "Column mapping must be linked to a valid import session" msgstr "" -#: importer/models.py:406 +#: importer/models.py:415 msgid "Column does not exist in the data file" msgstr "" -#: importer/models.py:413 +#: importer/models.py:422 msgid "Field does not exist in the target model" msgstr "" -#: importer/models.py:417 +#: importer/models.py:426 msgid "Selected field is read-only" msgstr "" -#: importer/models.py:422 importer/models.py:493 +#: importer/models.py:431 importer/models.py:502 msgid "Import Session" msgstr "" -#: importer/models.py:426 +#: importer/models.py:435 msgid "Field" msgstr "" -#: importer/models.py:428 +#: importer/models.py:437 msgid "Column" msgstr "" -#: importer/models.py:497 +#: importer/models.py:506 msgid "Row Index" msgstr "" -#: importer/models.py:500 +#: importer/models.py:509 msgid "Original row data" msgstr "" -#: importer/models.py:503 part/models.py:3951 -msgid "Data" -msgstr "" - -#: importer/models.py:505 machine/models.py:110 +#: importer/models.py:514 machine/models.py:110 msgid "Errors" msgstr "" -#: importer/models.py:507 part/api.py:873 +#: importer/models.py:516 part/api.py:857 msgid "Valid" msgstr "" @@ -5166,19 +5347,19 @@ msgstr "" msgid "Row has already been completed" msgstr "" -#: importer/status_codes.py:11 +#: importer/status_codes.py:13 msgid "Initializing" msgstr "" -#: importer/status_codes.py:12 +#: importer/status_codes.py:18 msgid "Mapping Columns" msgstr "" -#: importer/status_codes.py:13 +#: importer/status_codes.py:21 msgid "Importing Data" msgstr "" -#: importer/status_codes.py:16 +#: importer/status_codes.py:24 msgid "Processing Data" msgstr "" @@ -5202,52 +5383,52 @@ msgstr "" msgid "Value must be a valid dictionary object" msgstr "" -#: machine/machine_types/label_printer.py:215 +#: machine/machine_types/label_printer.py:216 msgid "Copies" msgstr "" -#: machine/machine_types/label_printer.py:216 +#: machine/machine_types/label_printer.py:217 msgid "Number of copies to print for each label" msgstr "" -#: machine/machine_types/label_printer.py:231 +#: machine/machine_types/label_printer.py:232 msgid "Connected" msgstr "" -#: machine/machine_types/label_printer.py:232 order/api.py:1410 -#: templates/js/translated/sales_order.js:1078 +#: machine/machine_types/label_printer.py:233 order/api.py:1532 +#: templates/js/translated/sales_order.js:1044 msgid "Unknown" msgstr "" -#: machine/machine_types/label_printer.py:233 +#: machine/machine_types/label_printer.py:234 msgid "Printing" msgstr "" -#: machine/machine_types/label_printer.py:234 +#: machine/machine_types/label_printer.py:235 msgid "No media" msgstr "" -#: machine/machine_types/label_printer.py:235 +#: machine/machine_types/label_printer.py:236 msgid "Paper jam" msgstr "" -#: machine/machine_types/label_printer.py:236 +#: machine/machine_types/label_printer.py:237 msgid "Disconnected" msgstr "" -#: machine/machine_types/label_printer.py:243 +#: machine/machine_types/label_printer.py:244 msgid "Label Printer" msgstr "" -#: machine/machine_types/label_printer.py:244 +#: machine/machine_types/label_printer.py:245 msgid "Directly print labels for various items." msgstr "" -#: machine/machine_types/label_printer.py:250 +#: machine/machine_types/label_printer.py:251 msgid "Printer Location" msgstr "" -#: machine/machine_types/label_printer.py:251 +#: machine/machine_types/label_printer.py:252 msgid "Scope the printer to a specific location" msgstr "" @@ -5307,831 +5488,858 @@ msgstr "" #: report/templates/report/inventree_purchase_order_report.html:31 #: report/templates/report/inventree_sales_order_report.html:31 #: templates/js/translated/order.js:352 -#: templates/js/translated/purchase_order.js:2195 -#: templates/js/translated/sales_order.js:1883 +#: templates/js/translated/purchase_order.js:2179 +#: templates/js/translated/sales_order.js:1864 msgid "Total Price" msgstr "Totaalprijs" -#: order/api.py:80 order/api.py:151 order/serializers.py:93 -#: order/templates/order/order_base.html:123 -#: order/templates/order/return_order_base.html:116 -#: order/templates/order/sales_order_base.html:125 +#: order/api.py:78 order/api.py:149 order/serializers.py:124 +#: order/templates/order/order_base.html:124 +#: order/templates/order/return_order_base.html:117 +#: order/templates/order/sales_order_base.html:126 msgid "Order Status" msgstr "" -#: order/api.py:88 order/templates/order/order_base.html:111 -#: order/templates/order/return_order_base.html:104 -#: order/templates/order/sales_order_base.html:113 +#: order/api.py:86 order/templates/order/order_base.html:112 +#: order/templates/order/return_order_base.html:105 +#: order/templates/order/sales_order_base.html:114 msgid "Order Reference" msgstr "Order Referentie" -#: order/api.py:116 templates/js/translated/table_filters.js:93 +#: order/api.py:114 order/api.py:1022 +#: templates/js/translated/table_filters.js:93 #: templates/js/translated/table_filters.js:625 #: templates/js/translated/table_filters.js:651 #: templates/js/translated/table_filters.js:666 msgid "Outstanding" msgstr "" -#: order/api.py:132 +#: order/api.py:130 msgid "Has Project Code" msgstr "" -#: order/api.py:155 templates/js/translated/table_filters.js:201 +#: order/api.py:153 templates/js/translated/table_filters.js:201 #: templates/js/translated/table_filters.js:791 msgid "Has Pricing" msgstr "" -#: order/api.py:230 -msgid "No matching purchase order found" -msgstr "" - -#: order/api.py:425 order/api.py:763 order/models.py:1484 order/models.py:1598 -#: order/models.py:1649 order/models.py:1764 order/models.py:1923 -#: order/models.py:2383 order/models.py:2439 -#: templates/js/translated/sales_order.js:1524 +#: order/api.py:375 order/api.py:771 order/api.py:986 order/models.py:1500 +#: order/models.py:1614 order/models.py:1665 order/models.py:1793 +#: order/models.py:1956 order/models.py:2422 order/models.py:2478 +#: templates/js/translated/sales_order.js:1490 msgid "Order" msgstr "" -#: order/api.py:429 order/api.py:784 +#: order/api.py:379 order/api.py:809 msgid "Order Complete" msgstr "" -#: order/api.py:452 +#: order/api.py:430 msgid "Order Pending" msgstr "" -#: order/api.py:1404 order/models.py:379 order/models.py:1485 -#: order/models.py:1599 order/templates/order/order_base.html:9 -#: order/templates/order/order_base.html:18 +#: order/api.py:1526 order/models.py:386 order/models.py:1501 +#: order/models.py:1615 order/templates/order/order_base.html:10 +#: order/templates/order/order_base.html:19 #: report/templates/report/inventree_purchase_order_report.html:14 -#: stock/serializers.py:120 stock/templates/stock/item_base.html:176 +#: stock/serializers.py:121 stock/templates/stock/item_base.html:173 #: templates/email/overdue_purchase_order.html:15 #: templates/js/translated/part.js:1752 templates/js/translated/pricing.js:804 -#: templates/js/translated/purchase_order.js:168 -#: templates/js/translated/purchase_order.js:753 -#: templates/js/translated/purchase_order.js:1743 -#: templates/js/translated/stock.js:2345 templates/js/translated/stock.js:2991 +#: templates/js/translated/purchase_order.js:736 +#: templates/js/translated/purchase_order.js:1727 +#: templates/js/translated/stock.js:2346 templates/js/translated/stock.js:2992 msgid "Purchase Order" msgstr "Inkooporder" -#: order/api.py:1408 order/models.py:2091 order/models.py:2384 -#: order/models.py:2440 order/templates/order/return_order_base.html:9 -#: order/templates/order/return_order_base.html:28 +#: order/api.py:1530 order/models.py:2124 order/models.py:2423 +#: order/models.py:2479 order/templates/order/return_order_base.html:10 +#: order/templates/order/return_order_base.html:29 #: report/templates/report/inventree_return_order_report.html:13 #: templates/js/translated/return_order.js:280 -#: templates/js/translated/stock.js:3025 +#: templates/js/translated/stock.js:3026 msgid "Return Order" -msgstr "" +msgstr "Retour bestelling" #: order/models.py:90 msgid "Total price for this order" msgstr "" -#: order/models.py:95 order/serializers.py:71 +#: order/models.py:95 order/serializers.py:73 msgid "Order Currency" msgstr "" -#: order/models.py:98 order/serializers.py:72 +#: order/models.py:98 order/serializers.py:74 msgid "Currency for this order (leave blank to use company default)" msgstr "" -#: order/models.py:246 +#: order/models.py:243 msgid "Contact does not match selected company" msgstr "" -#: order/models.py:289 +#: order/models.py:296 msgid "Order description (optional)" msgstr "" -#: order/models.py:298 +#: order/models.py:305 msgid "Select project code for this order" msgstr "" -#: order/models.py:302 order/models.py:1385 order/models.py:1817 +#: order/models.py:309 order/models.py:1402 order/models.py:1846 msgid "Link to external page" msgstr "Link naar externe pagina" -#: order/models.py:310 +#: order/models.py:317 msgid "Expected date for order delivery. Order will be overdue after this date." msgstr "Verwachte datum voor levering van de bestelling. De bestelling wordt achterstallig na deze datum." -#: order/models.py:324 +#: order/models.py:331 msgid "Created By" msgstr "Aangemaakt Door" -#: order/models.py:332 +#: order/models.py:339 msgid "User or group responsible for this order" msgstr "Gebruiker of groep verantwoordelijk voor deze order" -#: order/models.py:343 +#: order/models.py:350 msgid "Point of contact for this order" msgstr "" -#: order/models.py:353 +#: order/models.py:360 msgid "Company address for this order" msgstr "" -#: order/models.py:468 order/models.py:979 +#: order/models.py:480 order/models.py:1006 msgid "Order reference" msgstr "Orderreferentie" -#: order/models.py:477 +#: order/models.py:489 msgid "Purchase order status" msgstr "Inkooporder status" -#: order/models.py:492 +#: order/models.py:504 msgid "Company from which the items are being ordered" msgstr "Bedrijf waar de artikelen van worden besteld" -#: order/models.py:503 order/templates/order/order_base.html:153 -#: templates/js/translated/purchase_order.js:1772 +#: order/models.py:515 order/templates/order/order_base.html:162 +#: templates/js/translated/purchase_order.js:1756 msgid "Supplier Reference" msgstr "Leveranciersreferentie" -#: order/models.py:504 +#: order/models.py:516 msgid "Supplier order reference code" msgstr "Order referentiecode van leverancier" -#: order/models.py:513 +#: order/models.py:525 msgid "received by" msgstr "ontvangen door" -#: order/models.py:519 order/models.py:2173 +#: order/models.py:531 order/models.py:2212 msgid "Issue Date" msgstr "Datum van uitgifte" -#: order/models.py:520 order/models.py:2174 +#: order/models.py:532 order/models.py:2213 msgid "Date order was issued" msgstr "Order uitgegeven op datum" -#: order/models.py:527 order/models.py:2181 +#: order/models.py:539 order/models.py:2220 msgid "Date order was completed" msgstr "Order voltooid op datum" -#: order/models.py:571 +#: order/models.py:549 order/models.py:1552 +msgid "Destination for received items" +msgstr "" + +#: order/models.py:593 msgid "Part supplier must match PO supplier" msgstr "Onderdeelleverancier moet overeenkomen met de Inkooporderleverancier" -#: order/models.py:806 +#: order/models.py:828 msgid "Quantity must be a positive number" msgstr "Hoeveelheid moet een positief getal zijn" -#: order/models.py:991 +#: order/models.py:1018 msgid "Company to which the items are being sold" msgstr "Bedrijf waaraan de artikelen worden verkocht" -#: order/models.py:1003 +#: order/models.py:1030 msgid "Sales order status" msgstr "" -#: order/models.py:1014 order/models.py:2166 +#: order/models.py:1041 order/models.py:2205 msgid "Customer Reference " msgstr "Klantreferentie " -#: order/models.py:1015 order/models.py:2167 +#: order/models.py:1042 order/models.py:2206 msgid "Customer order reference code" msgstr "Klant order referentiecode" -#: order/models.py:1019 order/models.py:1771 -#: templates/js/translated/sales_order.js:879 -#: templates/js/translated/sales_order.js:1060 +#: order/models.py:1046 order/models.py:1800 +#: templates/js/translated/sales_order.js:838 +#: templates/js/translated/sales_order.js:1026 msgid "Shipment Date" msgstr "Verzenddatum" -#: order/models.py:1028 +#: order/models.py:1055 msgid "shipped by" msgstr "verzonden door" -#: order/models.py:1077 +#: order/models.py:1094 msgid "Order is already complete" msgstr "" -#: order/models.py:1080 +#: order/models.py:1097 msgid "Order is already cancelled" msgstr "" -#: order/models.py:1084 +#: order/models.py:1101 msgid "Only an open order can be marked as complete" msgstr "" -#: order/models.py:1088 +#: order/models.py:1105 msgid "Order cannot be completed as there are incomplete shipments" msgstr "Bestelling kan niet worden voltooid omdat er onvolledige verzendingen aanwezig zijn" -#: order/models.py:1093 +#: order/models.py:1110 msgid "Order cannot be completed as there are incomplete line items" msgstr "Order kan niet worden voltooid omdat er onvolledige artikelen aanwezig zijn" -#: order/models.py:1357 +#: order/models.py:1374 msgid "Item quantity" msgstr "Hoeveelheid artikelen" -#: order/models.py:1374 +#: order/models.py:1391 msgid "Line item reference" msgstr "Artikelregel referentie" -#: order/models.py:1381 +#: order/models.py:1398 msgid "Line item notes" msgstr "Artikel notities" -#: order/models.py:1393 +#: order/models.py:1410 msgid "Target date for this line item (leave blank to use the target date from the order)" msgstr "" -#: order/models.py:1414 +#: order/models.py:1431 msgid "Line item description (optional)" msgstr "" -#: order/models.py:1420 -msgid "Context" -msgstr "" - -#: order/models.py:1421 +#: order/models.py:1438 msgid "Additional context for this line" msgstr "Additionele context voor deze regel" -#: order/models.py:1431 +#: order/models.py:1448 msgid "Unit price" msgstr "Stukprijs" -#: order/models.py:1445 +#: order/models.py:1462 msgid "Purchase Order Line Item" msgstr "" -#: order/models.py:1469 +#: order/models.py:1486 msgid "Supplier part must match supplier" msgstr "Leveranciersonderdeel moet overeenkomen met leverancier" -#: order/models.py:1476 -msgid "deleted" -msgstr "verwijderd" - -#: order/models.py:1504 +#: order/models.py:1520 msgid "Supplier part" msgstr "Leveranciersonderdeel" -#: order/models.py:1511 order/templates/order/order_base.html:201 +#: order/models.py:1527 order/templates/order/order_base.html:210 #: templates/js/translated/part.js:1876 templates/js/translated/part.js:1908 -#: templates/js/translated/purchase_order.js:1369 -#: templates/js/translated/purchase_order.js:2239 +#: templates/js/translated/purchase_order.js:1352 +#: templates/js/translated/purchase_order.js:2223 #: templates/js/translated/return_order.js:762 #: templates/js/translated/table_filters.js:119 #: templates/js/translated/table_filters.js:605 msgid "Received" msgstr "Ontvangen" -#: order/models.py:1512 +#: order/models.py:1528 msgid "Number of items received" msgstr "Aantal ontvangen artikelen" -#: order/models.py:1520 stock/models.py:959 stock/serializers.py:610 -#: stock/templates/stock/item_base.html:183 -#: templates/js/translated/stock.js:2396 +#: order/models.py:1536 stock/models.py:1036 stock/serializers.py:637 +#: stock/templates/stock/item_base.html:180 +#: templates/js/translated/stock.js:2397 msgid "Purchase Price" msgstr "Inkoopprijs" -#: order/models.py:1521 +#: order/models.py:1537 msgid "Unit purchase price" msgstr "Aankoopprijs per stuk" -#: order/models.py:1536 -msgid "Where does the Purchaser want this item to be stored?" -msgstr "Waar wil de inkoper dat dit artikel opgeslagen wordt?" - -#: order/models.py:1587 +#: order/models.py:1603 msgid "Purchase Order Extra Line" msgstr "" -#: order/models.py:1616 +#: order/models.py:1632 msgid "Sales Order Line Item" msgstr "" -#: order/models.py:1637 +#: order/models.py:1653 msgid "Virtual part cannot be assigned to a sales order" msgstr "Virtueel onderdeel kan niet worden toegewezen aan een verkooporder" -#: order/models.py:1642 +#: order/models.py:1658 msgid "Only salable parts can be assigned to a sales order" msgstr "Alleen verkoopbare onderdelen kunnen aan een verkooporder worden toegewezen" -#: order/models.py:1668 part/templates/part/part_pricing.html:107 -#: part/templates/part/prices.html:139 templates/js/translated/pricing.js:957 +#: order/models.py:1684 part/templates/part/part_pricing.html:107 +#: part/templates/part/prices.html:139 templates/js/translated/pricing.js:955 msgid "Sale Price" msgstr "Verkoopprijs" -#: order/models.py:1669 +#: order/models.py:1685 msgid "Unit sale price" msgstr "Prijs per stuk" -#: order/models.py:1678 order/status_codes.py:48 -#: templates/js/translated/sales_order.js:1559 -#: templates/js/translated/sales_order.js:1680 -#: templates/js/translated/sales_order.js:1993 +#: order/models.py:1694 order/status_codes.py:50 +#: templates/js/translated/sales_order.js:1525 +#: templates/js/translated/sales_order.js:1661 +#: templates/js/translated/sales_order.js:1974 msgid "Shipped" msgstr "Verzonden" -#: order/models.py:1679 +#: order/models.py:1695 msgid "Shipped quantity" msgstr "Verzonden hoeveelheid" -#: order/models.py:1751 +#: order/models.py:1769 msgid "Sales Order Shipment" msgstr "" -#: order/models.py:1772 +#: order/models.py:1801 msgid "Date of shipment" msgstr "Datum van verzending" -#: order/models.py:1778 templates/js/translated/sales_order.js:1072 +#: order/models.py:1807 templates/js/translated/sales_order.js:1038 msgid "Delivery Date" msgstr "" -#: order/models.py:1779 +#: order/models.py:1808 msgid "Date of delivery of shipment" msgstr "" -#: order/models.py:1787 +#: order/models.py:1816 msgid "Checked By" msgstr "Gecontroleerd door" -#: order/models.py:1788 +#: order/models.py:1817 msgid "User who checked this shipment" msgstr "Gebruiker die deze zending gecontroleerd heeft" -#: order/models.py:1795 order/models.py:2018 order/serializers.py:1475 -#: order/serializers.py:1585 templates/js/translated/model_renderers.js:455 +#: order/models.py:1824 order/models.py:2051 order/serializers.py:1601 +#: order/serializers.py:1725 +#: report/templates/report/inventree_sales_order_shipment_report.html:14 +#: templates/js/translated/model_renderers.js:458 +#: templates/js/translated/sales_order.js:1615 msgid "Shipment" msgstr "Zending" -#: order/models.py:1796 +#: order/models.py:1825 msgid "Shipment number" msgstr "Zendingsnummer" -#: order/models.py:1804 +#: order/models.py:1833 msgid "Tracking Number" msgstr "Volgnummer" -#: order/models.py:1805 +#: order/models.py:1834 msgid "Shipment tracking information" msgstr "Zending volginformatie" -#: order/models.py:1812 +#: order/models.py:1841 msgid "Invoice Number" msgstr "Factuurnummer" -#: order/models.py:1813 +#: order/models.py:1842 msgid "Reference number for associated invoice" msgstr "Referentienummer voor bijbehorende factuur" -#: order/models.py:1833 +#: order/models.py:1862 msgid "Shipment has already been sent" msgstr "Verzending is al verzonden" -#: order/models.py:1836 +#: order/models.py:1865 msgid "Shipment has no allocated stock items" msgstr "Zending heeft geen toegewezen voorraadartikelen" -#: order/models.py:1912 +#: order/models.py:1945 msgid "Sales Order Extra Line" msgstr "" -#: order/models.py:1941 +#: order/models.py:1974 msgid "Sales Order Allocation" msgstr "" -#: order/models.py:1964 order/models.py:1966 +#: order/models.py:1997 order/models.py:1999 msgid "Stock item has not been assigned" msgstr "Voorraadartikel is niet toegewezen" -#: order/models.py:1973 +#: order/models.py:2006 msgid "Cannot allocate stock item to a line with a different part" msgstr "Kan het voorraadartikel niet toewijzen aan een regel met een ander onderdeel" -#: order/models.py:1976 +#: order/models.py:2009 msgid "Cannot allocate stock to a line without a part" msgstr "Kan voorraad niet toewijzen aan een regel zonder onderdeel" -#: order/models.py:1979 +#: order/models.py:2012 msgid "Allocation quantity cannot exceed stock quantity" msgstr "Toewijzingshoeveelheid kan niet hoger zijn dan de voorraadhoeveelheid" -#: order/models.py:1998 order/serializers.py:1345 +#: order/models.py:2031 order/serializers.py:1471 msgid "Quantity must be 1 for serialized stock item" msgstr "Hoeveelheid moet 1 zijn voor geserialiseerd voorraadartikel" -#: order/models.py:2001 +#: order/models.py:2034 msgid "Sales order does not match shipment" msgstr "Verkooporder komt niet overeen met zending" -#: order/models.py:2002 plugin/base/barcodes/api.py:524 +#: order/models.py:2035 plugin/base/barcodes/api.py:629 msgid "Shipment does not match sales order" msgstr "Verzending komt niet overeen met verkooporder" -#: order/models.py:2010 +#: order/models.py:2043 msgid "Line" msgstr "Regel" -#: order/models.py:2019 +#: order/models.py:2052 msgid "Sales order shipment reference" msgstr "Verzendreferentie verkooporder" -#: order/models.py:2032 order/models.py:2391 +#: order/models.py:2065 order/models.py:2430 #: templates/js/translated/return_order.js:720 msgid "Item" msgstr "Artikel" -#: order/models.py:2033 +#: order/models.py:2066 msgid "Select stock item to allocate" msgstr "Selecteer voorraadartikel om toe te wijzen" -#: order/models.py:2042 +#: order/models.py:2075 msgid "Enter stock allocation quantity" msgstr "Voer voorraadtoewijzingshoeveelheid in" -#: order/models.py:2136 +#: order/models.py:2175 msgid "Return Order reference" msgstr "" -#: order/models.py:2148 +#: order/models.py:2187 msgid "Company from which items are being returned" msgstr "" -#: order/models.py:2160 +#: order/models.py:2199 msgid "Return order status" msgstr "" -#: order/models.py:2362 +#: order/models.py:2401 msgid "Return Order Line Item" msgstr "" -#: order/models.py:2376 +#: order/models.py:2415 msgid "Only serialized items can be assigned to a Return Order" msgstr "" -#: order/models.py:2392 +#: order/models.py:2431 msgid "Select item to return from customer" msgstr "" -#: order/models.py:2398 +#: order/models.py:2437 msgid "Received Date" msgstr "" -#: order/models.py:2399 +#: order/models.py:2438 msgid "The date this this return item was received" msgstr "" -#: order/models.py:2410 templates/js/translated/return_order.js:731 +#: order/models.py:2449 templates/js/translated/return_order.js:731 #: templates/js/translated/table_filters.js:122 msgid "Outcome" msgstr "" -#: order/models.py:2411 +#: order/models.py:2450 msgid "Outcome for this line item" msgstr "" -#: order/models.py:2418 +#: order/models.py:2457 msgid "Cost associated with return or repair for this line item" msgstr "" -#: order/models.py:2428 +#: order/models.py:2467 msgid "Return Order Extra Line" msgstr "" -#: order/serializers.py:86 +#: order/serializers.py:87 +msgid "Order ID" +msgstr "Bestelling ID" + +#: order/serializers.py:87 +msgid "ID of the order to duplicate" +msgstr "ID van de bestelling om te dupliceren" + +#: order/serializers.py:93 +msgid "Copy Lines" +msgstr "Kopieer regels" + +#: order/serializers.py:94 +msgid "Copy line items from the original order" +msgstr "Kopieer regelitems uit de oorspronkelijke bestelling" + +#: order/serializers.py:100 +msgid "Copy Extra Lines" +msgstr "Extra regels kopiëren" + +#: order/serializers.py:101 +msgid "Copy extra line items from the original order" +msgstr "Extra regelitems van de oorspronkelijke bestelling kopiëren" + +#: order/serializers.py:117 msgid "Completed Lines" msgstr "" -#: order/serializers.py:283 stock/admin.py:195 -msgid "Supplier Name" -msgstr "" +#: order/serializers.py:161 +msgid "Duplicate Order" +msgstr "Artikel dupliceren" -#: order/serializers.py:331 +#: order/serializers.py:162 +msgid "Specify options for duplicating this order" +msgstr "Specificeer opties voor het dupliceren van deze bestelling" + +#: order/serializers.py:234 +msgid "Invalid order ID" +msgstr "Ongeldige order ID" + +#: order/serializers.py:374 stock/admin.py:196 +msgid "Supplier Name" +msgstr "Leveranciers Naam" + +#: order/serializers.py:416 msgid "Order cannot be cancelled" msgstr "Order kan niet worden geannuleerd" -#: order/serializers.py:346 order/serializers.py:1366 +#: order/serializers.py:431 order/serializers.py:1492 msgid "Allow order to be closed with incomplete line items" msgstr "" -#: order/serializers.py:356 order/serializers.py:1376 +#: order/serializers.py:441 order/serializers.py:1502 msgid "Order has incomplete line items" msgstr "" -#: order/serializers.py:506 +#: order/serializers.py:591 msgid "Order is not open" msgstr "Order is niet open" -#: order/serializers.py:527 +#: order/serializers.py:612 msgid "Auto Pricing" msgstr "" -#: order/serializers.py:529 +#: order/serializers.py:614 msgid "Automatically calculate purchase price based on supplier part data" msgstr "" -#: order/serializers.py:539 +#: order/serializers.py:624 msgid "Purchase price currency" msgstr "Valuta Inkoopprijs" -#: order/serializers.py:545 +#: order/serializers.py:630 msgid "Merge Items" msgstr "" -#: order/serializers.py:547 +#: order/serializers.py:632 msgid "Merge items with the same part, destination and target date into one line item" msgstr "" -#: order/serializers.py:560 part/models.py:1033 +#: order/serializers.py:645 part/models.py:1094 part/serializers.py:387 msgid "Internal Part Number" msgstr "Intern Onderdeelnummer" -#: order/serializers.py:568 +#: order/serializers.py:653 msgid "Internal Part Name" msgstr "" -#: order/serializers.py:584 +#: order/serializers.py:669 msgid "Supplier part must be specified" msgstr "Leveranciersonderdeel moet worden gespecificeerd" -#: order/serializers.py:587 +#: order/serializers.py:672 msgid "Purchase order must be specified" msgstr "Inkooporder moet worden gespecificeerd" -#: order/serializers.py:595 +#: order/serializers.py:680 msgid "Supplier must match purchase order" msgstr "De leverancier moet overeenkomen met de inkooporder" -#: order/serializers.py:596 +#: order/serializers.py:681 msgid "Purchase order must match supplier" msgstr "Inkooporder moet overeenkomen met de leverancier" -#: order/serializers.py:639 order/serializers.py:1446 +#: order/serializers.py:724 order/serializers.py:1572 msgid "Line Item" msgstr "Artikel" -#: order/serializers.py:645 +#: order/serializers.py:730 msgid "Line item does not match purchase order" msgstr "Artikelregel komt niet overeen met inkooporder" -#: order/serializers.py:655 order/serializers.py:779 order/serializers.py:1782 +#: order/serializers.py:740 order/serializers.py:881 order/serializers.py:1934 msgid "Select destination location for received items" msgstr "Selecteer bestemmingslocatie voor ontvangen artikelen" -#: order/serializers.py:671 templates/js/translated/purchase_order.js:1130 +#: order/serializers.py:756 templates/js/translated/purchase_order.js:1113 #: templates/js/translated/stock.js:1200 msgid "Enter batch code for incoming stock items" -msgstr "" +msgstr "Voer batch code in voor inkomende voorraad items" -#: order/serializers.py:679 templates/js/translated/purchase_order.js:1155 +#: order/serializers.py:764 templates/js/translated/purchase_order.js:1138 msgid "Enter serial numbers for incoming stock items" msgstr "Voer serienummers in voor inkomende voorraadartikelen" -#: order/serializers.py:691 +#: order/serializers.py:776 msgid "Override packaging information for incoming stock items" -msgstr "" +msgstr "Overschrijf verpakkingsinformatie voor binnenkomende voorraad" -#: order/serializers.py:699 +#: order/serializers.py:784 msgid "Additional note for incoming stock items" -msgstr "" +msgstr "Extra opmerking voor inkomende voorraad items" -#: order/serializers.py:706 templates/js/translated/barcode.js:52 +#: order/serializers.py:791 templates/js/translated/barcode.js:52 msgid "Barcode" msgstr "" -#: order/serializers.py:707 +#: order/serializers.py:792 msgid "Scanned barcode" msgstr "" -#: order/serializers.py:723 +#: order/serializers.py:808 msgid "Barcode is already in use" msgstr "Streepjescode is al in gebruik" -#: order/serializers.py:747 +#: order/serializers.py:831 msgid "An integer quantity must be provided for trackable parts" msgstr "Hoeveelheid als geheel getal vereist voor traceerbare onderdelen" -#: order/serializers.py:795 order/serializers.py:1798 +#: order/serializers.py:898 order/serializers.py:1950 msgid "Line items must be provided" msgstr "Artikelen moeten worden opgegeven" -#: order/serializers.py:811 +#: order/serializers.py:914 msgid "Destination location must be specified" msgstr "Bestemmingslocatie moet worden opgegeven" -#: order/serializers.py:822 +#: order/serializers.py:925 msgid "Supplied barcode values must be unique" msgstr "Geleverde streepjescodewaarden moeten uniek zijn" -#: order/serializers.py:1187 +#: order/serializers.py:1221 msgid "Sale price currency" msgstr "Valuta verkoopprijs" -#: order/serializers.py:1248 +#: order/serializers.py:1260 +msgid "Allocated Items" +msgstr "Toegewezen items" + +#: order/serializers.py:1374 msgid "No shipment details provided" msgstr "Geen verzenddetails opgegeven" -#: order/serializers.py:1309 order/serializers.py:1455 +#: order/serializers.py:1435 order/serializers.py:1581 msgid "Line item is not associated with this order" msgstr "Artikelregel is niet gekoppeld aan deze bestelling" -#: order/serializers.py:1328 +#: order/serializers.py:1454 msgid "Quantity must be positive" msgstr "Hoeveelheid moet positief zijn" -#: order/serializers.py:1465 +#: order/serializers.py:1591 msgid "Enter serial numbers to allocate" msgstr "Voer serienummers in om toe te wijzen" -#: order/serializers.py:1487 order/serializers.py:1593 +#: order/serializers.py:1613 order/serializers.py:1733 msgid "Shipment has already been shipped" msgstr "Verzending is al verzonden" -#: order/serializers.py:1490 order/serializers.py:1596 +#: order/serializers.py:1616 order/serializers.py:1736 msgid "Shipment is not associated with this order" msgstr "Zending is niet gekoppeld aan deze bestelling" -#: order/serializers.py:1537 +#: order/serializers.py:1671 msgid "No match found for the following serial numbers" msgstr "Geen overeenkomst gevonden voor de volgende serienummers" -#: order/serializers.py:1544 -msgid "The following serial numbers are already allocated" -msgstr "De volgende serienummers zijn al toegewezen" +#: order/serializers.py:1678 +msgid "The following serial numbers are unavailable" +msgstr "De volgende serienummers zijn niet beschikbaar" -#: order/serializers.py:1752 +#: order/serializers.py:1904 msgid "Return order line item" msgstr "" -#: order/serializers.py:1758 +#: order/serializers.py:1910 msgid "Line item does not match return order" msgstr "" -#: order/serializers.py:1761 +#: order/serializers.py:1913 msgid "Line item has already been received" msgstr "" -#: order/serializers.py:1790 +#: order/serializers.py:1942 msgid "Items can only be received against orders which are in progress" msgstr "" -#: order/serializers.py:1873 +#: order/serializers.py:2025 msgid "Line price currency" msgstr "" -#: order/status_codes.py:17 order/status_codes.py:52 stock/status_codes.py:16 +#: order/status_codes.py:17 order/status_codes.py:54 stock/status_codes.py:16 msgid "Lost" msgstr "Kwijt" -#: order/status_codes.py:18 order/status_codes.py:53 stock/status_codes.py:22 +#: order/status_codes.py:18 order/status_codes.py:55 stock/status_codes.py:24 msgid "Returned" msgstr "Retour" -#: order/status_codes.py:45 order/status_codes.py:77 +#: order/status_codes.py:47 order/status_codes.py:79 msgid "In Progress" msgstr "In Behandeling" -#: order/status_codes.py:101 +#: order/status_codes.py:105 msgid "Return" msgstr "Retour" -#: order/status_codes.py:104 +#: order/status_codes.py:108 msgid "Repair" msgstr "Herstel" -#: order/status_codes.py:107 +#: order/status_codes.py:111 msgid "Replace" msgstr "Vervangen" -#: order/status_codes.py:110 +#: order/status_codes.py:114 msgid "Refund" msgstr "Restitutie" -#: order/status_codes.py:113 +#: order/status_codes.py:117 msgid "Reject" msgstr "Afwijzen" -#: order/tasks.py:25 +#: order/tasks.py:30 msgid "Overdue Purchase Order" msgstr "Achterstallige inkooporder" -#: order/tasks.py:30 +#: order/tasks.py:35 #, python-brace-format msgid "Purchase order {po} is now overdue" msgstr "Inkooporder {po} is nu achterstallig" -#: order/tasks.py:75 +#: order/tasks.py:80 msgid "Overdue Sales Order" msgstr "Achterstallige Verkooporder" -#: order/tasks.py:80 +#: order/tasks.py:85 #, python-brace-format msgid "Sales order {so} is now overdue" msgstr "Verkooporder {so} is nu achterstallig" -#: order/templates/order/order_base.html:51 +#: order/templates/order/order_base.html:52 msgid "Print purchase order report" msgstr "Print rapport inkooporder" -#: order/templates/order/order_base.html:53 -#: order/templates/order/return_order_base.html:62 -#: order/templates/order/sales_order_base.html:62 +#: order/templates/order/order_base.html:54 +#: order/templates/order/return_order_base.html:63 +#: order/templates/order/sales_order_base.html:63 msgid "Export order to file" msgstr "Exporteer order naar bestand" -#: order/templates/order/order_base.html:59 -#: order/templates/order/return_order_base.html:72 -#: order/templates/order/sales_order_base.html:71 +#: order/templates/order/order_base.html:60 +#: order/templates/order/return_order_base.html:73 +#: order/templates/order/sales_order_base.html:72 msgid "Order actions" msgstr "Order acties" -#: order/templates/order/order_base.html:64 -#: order/templates/order/return_order_base.html:76 -#: order/templates/order/sales_order_base.html:75 +#: order/templates/order/order_base.html:65 +#: order/templates/order/return_order_base.html:77 +#: order/templates/order/sales_order_base.html:76 msgid "Edit order" msgstr "Order bewerken" -#: order/templates/order/order_base.html:68 +#: order/templates/order/order_base.html:69 msgid "Duplicate order" msgstr "" -#: order/templates/order/order_base.html:73 -#: order/templates/order/return_order_base.html:78 -#: order/templates/order/sales_order_base.html:77 +#: order/templates/order/order_base.html:74 +#: order/templates/order/return_order_base.html:79 +#: order/templates/order/sales_order_base.html:78 msgid "Hold order" msgstr "" -#: order/templates/order/order_base.html:78 -#: order/templates/order/return_order_base.html:81 -#: order/templates/order/sales_order_base.html:80 +#: order/templates/order/order_base.html:79 +#: order/templates/order/return_order_base.html:82 +#: order/templates/order/sales_order_base.html:81 msgid "Cancel order" msgstr "Order annuleren" -#: order/templates/order/order_base.html:84 #: order/templates/order/order_base.html:85 -#: order/templates/order/return_order_base.html:85 +#: order/templates/order/order_base.html:86 #: order/templates/order/return_order_base.html:86 -#: order/templates/order/sales_order_base.html:86 +#: order/templates/order/return_order_base.html:87 #: order/templates/order/sales_order_base.html:87 +#: order/templates/order/sales_order_base.html:88 msgid "Issue Order" msgstr "" -#: order/templates/order/order_base.html:88 -#: order/templates/order/return_order_base.html:89 +#: order/templates/order/order_base.html:89 +#: order/templates/order/return_order_base.html:90 msgid "Mark order as complete" msgstr "Order markeren als voltooid" -#: order/templates/order/order_base.html:89 -#: order/templates/order/return_order_base.html:90 -#: order/templates/order/sales_order_base.html:100 +#: order/templates/order/order_base.html:90 +#: order/templates/order/return_order_base.html:91 +#: order/templates/order/sales_order_base.html:101 msgid "Complete Order" msgstr "Order Voltooien" -#: order/templates/order/order_base.html:96 +#: order/templates/order/order_base.html:97 msgid "Supplier part thumbnail" msgstr "" -#: order/templates/order/order_base.html:116 -#: order/templates/order/return_order_base.html:109 -#: order/templates/order/sales_order_base.html:118 +#: order/templates/order/order_base.html:117 +#: order/templates/order/return_order_base.html:110 +#: order/templates/order/sales_order_base.html:119 msgid "Order Description" msgstr "Order Beschrijving" -#: order/templates/order/order_base.html:146 -msgid "No suppplier information available" -msgstr "Geen leveranciersinformatie beschikbaar" - -#: order/templates/order/order_base.html:159 -#: order/templates/order/sales_order_base.html:164 +#: order/templates/order/order_base.html:168 +#: order/templates/order/sales_order_base.html:165 msgid "Completed Line Items" msgstr "Afgeronde artikelen" -#: order/templates/order/order_base.html:165 -#: order/templates/order/sales_order_base.html:170 -#: order/templates/order/sales_order_base.html:180 +#: order/templates/order/order_base.html:174 +#: order/templates/order/sales_order_base.html:171 +#: order/templates/order/sales_order_base.html:181 msgid "Incomplete" msgstr "Incompleet" -#: order/templates/order/order_base.html:184 -#: order/templates/order/return_order_base.html:160 +#: order/templates/order/order_base.html:193 +#: order/templates/order/return_order_base.html:161 #: report/templates/report/inventree_build_order_report.html:121 msgid "Issued" msgstr "Uitgegeven" -#: order/templates/order/order_base.html:229 +#: order/templates/order/order_base.html:238 msgid "Total cost" msgstr "Totale kosten" -#: order/templates/order/order_base.html:233 -#: order/templates/order/return_order_base.html:202 -#: order/templates/order/sales_order_base.html:246 +#: order/templates/order/order_base.html:242 +#: order/templates/order/return_order_base.html:203 +#: order/templates/order/sales_order_base.html:247 msgid "Total cost could not be calculated" msgstr "Totale kosten konden niet worden berekend" -#: order/templates/order/order_base.html:335 +#: order/templates/order/order_base.html:344 msgid "Purchase Order QR Code" msgstr "" -#: order/templates/order/order_base.html:347 +#: order/templates/order/order_base.html:356 msgid "Link Barcode to Purchase Order" msgstr "" @@ -6184,12 +6392,12 @@ msgstr "" #: part/templates/part/import_wizard/ajax_match_references.html:42 #: part/templates/part/import_wizard/match_fields.html:71 #: part/templates/part/import_wizard/match_references.html:49 -#: templates/js/translated/bom.js:133 templates/js/translated/build.js:530 -#: templates/js/translated/build.js:1802 -#: templates/js/translated/purchase_order.js:696 -#: templates/js/translated/purchase_order.js:1288 +#: templates/js/translated/bom.js:133 templates/js/translated/build.js:533 +#: templates/js/translated/build.js:1805 +#: templates/js/translated/purchase_order.js:679 +#: templates/js/translated/purchase_order.js:1271 #: templates/js/translated/return_order.js:505 -#: templates/js/translated/sales_order.js:1145 +#: templates/js/translated/sales_order.js:1111 #: templates/js/translated/stock.js:720 templates/js/translated/stock.js:889 #: templates/patterns/wizard/match_fields.html:70 msgid "Remove row" @@ -6242,7 +6450,7 @@ msgstr "Inkooporder Artikelen" #: order/templates/order/purchase_order_detail.html:27 #: order/templates/order/return_order_detail.html:24 #: order/templates/order/sales_order_detail.html:24 -#: templates/js/translated/purchase_order.js:414 +#: templates/js/translated/purchase_order.js:397 #: templates/js/translated/return_order.js:458 #: templates/js/translated/sales_order.js:237 msgid "Add Line Item" @@ -6277,45 +6485,45 @@ msgstr "Ontvangen Artikelen" msgid "Order Notes" msgstr "Ordernotities" -#: order/templates/order/return_order_base.html:18 -#: order/templates/order/sales_order_base.html:18 +#: order/templates/order/return_order_base.html:19 +#: order/templates/order/sales_order_base.html:19 msgid "Customer logo thumbnail" msgstr "" -#: order/templates/order/return_order_base.html:60 +#: order/templates/order/return_order_base.html:61 msgid "Print return order report" msgstr "" -#: order/templates/order/return_order_base.html:64 -#: order/templates/order/sales_order_base.html:64 +#: order/templates/order/return_order_base.html:65 +#: order/templates/order/sales_order_base.html:65 msgid "Print packing list" msgstr "Pakbon afdrukken" -#: order/templates/order/return_order_base.html:141 -#: order/templates/order/sales_order_base.html:158 +#: order/templates/order/return_order_base.html:142 +#: order/templates/order/sales_order_base.html:159 #: templates/js/translated/return_order.js:308 -#: templates/js/translated/sales_order.js:833 +#: templates/js/translated/sales_order.js:792 msgid "Customer Reference" msgstr "Klantreferentie" -#: order/templates/order/return_order_base.html:198 -#: order/templates/order/sales_order_base.html:242 +#: order/templates/order/return_order_base.html:199 +#: order/templates/order/sales_order_base.html:243 #: part/templates/part/part_pricing.html:32 #: part/templates/part/part_pricing.html:58 #: part/templates/part/part_pricing.html:99 #: part/templates/part/part_pricing.html:114 #: templates/js/translated/part.js:1079 -#: templates/js/translated/purchase_order.js:1822 +#: templates/js/translated/purchase_order.js:1806 #: templates/js/translated/return_order.js:380 -#: templates/js/translated/sales_order.js:891 +#: templates/js/translated/sales_order.js:850 msgid "Total Cost" msgstr "" -#: order/templates/order/return_order_base.html:273 +#: order/templates/order/return_order_base.html:274 msgid "Return Order QR Code" msgstr "" -#: order/templates/order/return_order_base.html:285 +#: order/templates/order/return_order_base.html:286 msgid "Link Barcode to Return Order" msgstr "" @@ -6323,40 +6531,40 @@ msgstr "" msgid "Order Details" msgstr "" -#: order/templates/order/sales_order_base.html:60 +#: order/templates/order/sales_order_base.html:61 msgid "Print sales order report" msgstr "Print verkooporderrapport" -#: order/templates/order/sales_order_base.html:91 #: order/templates/order/sales_order_base.html:92 +#: order/templates/order/sales_order_base.html:93 msgid "Ship Items" msgstr "" -#: order/templates/order/sales_order_base.html:95 #: order/templates/order/sales_order_base.html:96 +#: order/templates/order/sales_order_base.html:97 msgid "Mark As Shipped" msgstr "" -#: order/templates/order/sales_order_base.html:99 -#: templates/js/translated/sales_order.js:536 +#: order/templates/order/sales_order_base.html:100 +#: templates/js/translated/sales_order.js:495 msgid "Complete Sales Order" msgstr "Voltooi Verkooporder" -#: order/templates/order/sales_order_base.html:138 +#: order/templates/order/sales_order_base.html:139 msgid "This Sales Order has not been fully allocated" msgstr "Deze Verkooporder is niet volledig toegewezen" -#: order/templates/order/sales_order_base.html:176 +#: order/templates/order/sales_order_base.html:177 #: order/templates/order/sales_order_detail.html:99 #: order/templates/order/so_sidebar.html:11 msgid "Completed Shipments" msgstr "Voltooide Verzendingen" -#: order/templates/order/sales_order_base.html:339 +#: order/templates/order/sales_order_base.html:340 msgid "Sales Order QR Code" msgstr "" -#: order/templates/order/sales_order_base.html:351 +#: order/templates/order/sales_order_base.html:352 msgid "Link Barcode to Sales Order" msgstr "" @@ -6370,7 +6578,7 @@ msgid "Pending Shipments" msgstr "Verzendingen in behandeling" #: order/templates/order/sales_order_detail.html:71 -#: templates/js/translated/bom.js:1277 templates/js/translated/build.js:1063 +#: templates/js/translated/bom.js:1277 templates/js/translated/build.js:1066 #: templates/js/translated/filters.js:299 msgid "Actions" msgstr "Acties" @@ -6383,39 +6591,40 @@ msgstr "Nieuwe Verzending" msgid "Match Supplier Parts" msgstr "Leveranciersonderdelen Vergelijken" -#: order/views.py:406 +#: order/views.py:407 msgid "Sales order not found" msgstr "Verkooporder niet gevonden" -#: order/views.py:412 +#: order/views.py:413 msgid "Price not found" msgstr "Prijs niet gevonden" -#: order/views.py:415 +#: order/views.py:416 #, python-brace-format msgid "Updated {part} unit-price to {price}" msgstr "{part} stukprijs bijgewerkt naar {price}" -#: order/views.py:421 +#: order/views.py:422 #, python-brace-format msgid "Updated {part} unit-price to {price} and quantity to {qty}" msgstr "{part} stukprijs bijgewerkt naar {price} en aantal naar {qty}" -#: part/admin.py:48 part/models.py:1032 part/templates/part/part_base.html:269 +#: part/admin.py:48 part/models.py:1093 part/serializers.py:939 +#: part/templates/part/part_base.html:277 #: report/templates/report/inventree_stock_location_report.html:103 #: templates/js/translated/part.js:1233 templates/js/translated/part.js:2347 -#: templates/js/translated/stock.js:2121 +#: templates/js/translated/stock.js:2122 msgid "IPN" -msgstr "" +msgstr "IPN" -#: part/admin.py:50 part/models.py:1041 part/templates/part/part_base.html:286 +#: part/admin.py:50 part/models.py:1102 part/templates/part/part_base.html:294 #: report/models.py:161 templates/js/translated/part.js:1238 #: templates/js/translated/part.js:2353 msgid "Revision" msgstr "" -#: part/admin.py:53 part/admin.py:319 part/models.py:1014 -#: part/templates/part/category.html:91 part/templates/part/part_base.html:307 +#: part/admin.py:53 part/admin.py:319 part/models.py:1075 +#: part/templates/part/category.html:91 part/templates/part/part_base.html:315 msgid "Keywords" msgstr "" @@ -6425,12 +6634,12 @@ msgstr "" #: part/admin.py:63 part/admin.py:302 part/stocktake.py:221 msgid "Category ID" -msgstr "" +msgstr "Categorie ID" -#: part/admin.py:67 part/admin.py:304 part/serializers.py:880 +#: part/admin.py:67 part/admin.py:304 part/serializers.py:924 #: part/stocktake.py:222 msgid "Category Name" -msgstr "" +msgstr "Categorie naam" #: part/admin.py:71 part/admin.py:316 msgid "Default Location ID" @@ -6440,49 +6649,49 @@ msgstr "" msgid "Default Supplier ID" msgstr "" -#: part/admin.py:81 part/models.py:1000 part/templates/part/part_base.html:177 +#: part/admin.py:81 part/models.py:1061 part/templates/part/part_base.html:178 msgid "Variant Of" msgstr "" -#: part/admin.py:84 part/models.py:1138 part/templates/part/part_base.html:203 +#: part/admin.py:84 part/models.py:1199 part/templates/part/part_base.html:204 msgid "Minimum Stock" -msgstr "" +msgstr "Minimum voorraad" #: part/admin.py:138 part/templates/part/part_sidebar.html:27 msgid "Used In" msgstr "" -#: part/admin.py:150 part/serializers.py:897 -#: part/templates/part/part_base.html:241 stock/admin.py:235 +#: part/admin.py:150 part/serializers.py:949 +#: part/templates/part/part_base.html:249 stock/admin.py:236 #: templates/js/translated/part.js:717 templates/js/translated/part.js:2159 msgid "Building" -msgstr "" +msgstr "Bouwen" -#: part/admin.py:155 part/models.py:3202 part/models.py:3216 +#: part/admin.py:155 part/models.py:3253 part/models.py:3267 #: templates/js/translated/part.js:976 msgid "Minimum Cost" msgstr "" -#: part/admin.py:158 part/models.py:3209 part/models.py:3223 +#: part/admin.py:158 part/models.py:3260 part/models.py:3274 #: templates/js/translated/part.js:986 msgid "Maximum Cost" msgstr "" -#: part/admin.py:308 part/admin.py:387 stock/admin.py:57 stock/admin.py:215 +#: part/admin.py:308 part/admin.py:387 stock/admin.py:57 stock/admin.py:216 msgid "Parent ID" -msgstr "" +msgstr "Bovenliggende ID" #: part/admin.py:312 part/admin.py:394 stock/admin.py:61 msgid "Parent Name" -msgstr "" +msgstr "Bovenliggende naam" #: part/admin.py:320 part/templates/part/category.html:85 #: part/templates/part/category.html:98 msgid "Category Path" msgstr "" -#: part/admin.py:325 part/models.py:425 part/serializers.py:130 -#: part/serializers.py:290 part/serializers.py:415 +#: part/admin.py:325 part/models.py:420 part/serializers.py:130 +#: part/serializers.py:323 part/serializers.py:459 #: part/templates/part/cat_link.html:3 part/templates/part/category.html:20 #: part/templates/part/category.html:138 part/templates/part/category.html:158 #: part/templates/part/category_sidebar.html:9 @@ -6509,15 +6718,15 @@ msgstr "" msgid "Part Revision" msgstr "" -#: part/admin.py:418 part/serializers.py:1346 +#: part/admin.py:418 part/serializers.py:1400 #: templates/js/translated/pricing.js:358 -#: templates/js/translated/pricing.js:1024 +#: templates/js/translated/pricing.js:1022 msgid "Minimum Price" msgstr "" -#: part/admin.py:423 part/serializers.py:1361 +#: part/admin.py:423 part/serializers.py:1415 #: templates/js/translated/pricing.js:353 -#: templates/js/translated/pricing.js:1032 +#: templates/js/translated/pricing.js:1030 msgid "Maximum Price" msgstr "" @@ -6531,7 +6740,7 @@ msgstr "" #: part/api.py:123 stock/api.py:310 msgid "Depth" -msgstr "" +msgstr "Diepte" #: part/api.py:123 msgid "Filter by category depth" @@ -6539,100 +6748,104 @@ msgstr "" #: part/api.py:141 stock/api.py:328 msgid "Top Level" -msgstr "" +msgstr "Hoogste niveau" #: part/api.py:143 msgid "Filter by top-level categories" msgstr "" +#: part/api.py:156 stock/api.py:343 +msgid "Cascade" +msgstr "Stapelen" + #: part/api.py:158 msgid "Include sub-categories in filtered results" msgstr "" -#: part/api.py:179 templates/js/translated/part.js:311 +#: part/api.py:178 templates/js/translated/part.js:311 msgid "Parent" msgstr "" -#: part/api.py:181 +#: part/api.py:180 msgid "Filter by parent category" msgstr "" -#: part/api.py:214 +#: part/api.py:213 msgid "Exclude Tree" msgstr "" -#: part/api.py:216 +#: part/api.py:215 msgid "Exclude sub-categories under the specified category" msgstr "" -#: part/api.py:441 +#: part/api.py:440 msgid "Has Results" msgstr "" -#: part/api.py:608 +#: part/api.py:604 msgid "Incoming Purchase Order" msgstr "Binnenkomende Inkooporder" -#: part/api.py:626 +#: part/api.py:618 msgid "Outgoing Sales Order" msgstr "Uitgaande Verkooporder" -#: part/api.py:642 +#: part/api.py:630 msgid "Stock produced by Build Order" msgstr "Geproduceerde voorraad door Productieorder" -#: part/api.py:726 +#: part/api.py:712 msgid "Stock required for Build Order" msgstr "Voorraad vereist voor Productieorder" -#: part/api.py:874 +#: part/api.py:858 msgid "Validate entire Bill of Materials" msgstr "" -#: part/api.py:880 +#: part/api.py:864 msgid "This option must be selected" msgstr "" -#: part/api.py:916 +#: part/api.py:900 msgid "Is Revision" msgstr "" -#: part/api.py:926 +#: part/api.py:910 msgid "Has Revisions" msgstr "" -#: part/api.py:1117 +#: part/api.py:1101 msgid "BOM Valid" msgstr "" -#: part/api.py:1523 part/models.py:1024 part/models.py:3489 part/models.py:4046 -#: part/serializers.py:430 part/serializers.py:1202 -#: part/templates/part/part_base.html:260 stock/api.py:781 +#: part/api.py:1509 part/models.py:1085 part/models.py:3540 part/models.py:4104 +#: part/serializers.py:474 part/serializers.py:1255 +#: part/templates/part/part_base.html:268 stock/api.py:781 #: templates/InvenTree/settings/settings_staff_js.html:300 #: templates/js/translated/notification.js:60 #: templates/js/translated/part.js:2383 msgid "Category" -msgstr "" +msgstr "Categorie" -#: part/api.py:1761 +#: part/api.py:1750 msgid "Assembly part is testable" msgstr "" -#: part/api.py:1770 +#: part/api.py:1759 msgid "Component part is testable" msgstr "" -#: part/api.py:1821 +#: part/api.py:1810 msgid "Uses" msgstr "" -#: part/bom.py:178 part/models.py:107 part/models.py:1077 -#: part/templates/part/category.html:113 part/templates/part/part_base.html:376 +#: part/bom.py:183 part/models.py:109 part/models.py:1138 +#: part/templates/part/category.html:113 part/templates/part/part_base.html:384 #: templates/js/translated/part.js:2397 msgid "Default Location" msgstr "Standaard locatie" -#: part/bom.py:179 part/serializers.py:905 +#: part/bom.py:184 part/serializers.py:957 #: templates/email/low_stock_notification.html:16 msgid "Total Stock" msgstr "Totale Voorraad" @@ -6641,789 +6854,789 @@ msgstr "Totale Voorraad" msgid "Input quantity for price calculation" msgstr "" -#: part/models.py:88 part/models.py:4047 part/templates/part/category.html:16 +#: part/models.py:90 part/models.py:4105 part/templates/part/category.html:16 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "Onderdeel Categorie" -#: part/models.py:89 part/templates/part/category.html:133 +#: part/models.py:91 part/templates/part/category.html:133 #: templates/InvenTree/search.html:97 templates/js/translated/search.js:158 #: users/models.py:202 msgid "Part Categories" msgstr "Onderdeel Categorieën" -#: part/models.py:108 +#: part/models.py:110 msgid "Default location for parts in this category" msgstr "Standaard locatie voor onderdelen in deze categorie" -#: part/models.py:113 stock/models.py:187 templates/js/translated/part.js:2828 -#: templates/js/translated/stock.js:2856 +#: part/models.py:115 stock/models.py:193 templates/js/translated/part.js:2828 +#: templates/js/translated/stock.js:2857 #: templates/js/translated/table_filters.js:246 #: templates/js/translated/table_filters.js:290 msgid "Structural" -msgstr "" +msgstr "Structureel" -#: part/models.py:115 +#: part/models.py:117 msgid "Parts may not be directly assigned to a structural category, but may be assigned to child categories." msgstr "Onderdelen mogen niet rechtstreeks aan een structurele categorie worden toegewezen, maar kunnen worden toegewezen aan subcategorieën." -#: part/models.py:124 +#: part/models.py:126 msgid "Default keywords" msgstr "" -#: part/models.py:125 +#: part/models.py:127 msgid "Default keywords for parts in this category" msgstr "" -#: part/models.py:131 stock/models.py:90 stock/models.py:169 +#: part/models.py:133 stock/models.py:96 stock/models.py:175 #: templates/InvenTree/settings/settings_staff_js.html:445 msgid "Icon" -msgstr "" +msgstr "Pictogram" -#: part/models.py:132 part/serializers.py:143 part/serializers.py:161 -#: stock/models.py:170 +#: part/models.py:134 part/serializers.py:143 part/serializers.py:161 +#: stock/models.py:176 msgid "Icon (optional)" -msgstr "" +msgstr "Pictogram (optioneel)" -#: part/models.py:178 +#: part/models.py:180 msgid "You cannot make this part category structural because some parts are already assigned to it!" msgstr "" -#: part/models.py:519 +#: part/models.py:514 msgid "Cannot delete this part as it is locked" msgstr "" -#: part/models.py:522 +#: part/models.py:517 msgid "Cannot delete this part as it is still active" msgstr "" -#: part/models.py:527 +#: part/models.py:522 msgid "Cannot delete this part as it is used in an assembly" msgstr "" -#: part/models.py:565 +#: part/models.py:560 msgid "Invalid choice for parent part" msgstr "" -#: part/models.py:613 part/models.py:620 +#: part/models.py:608 part/models.py:615 #, python-brace-format msgid "Part '{self}' cannot be used in BOM for '{parent}' (recursive)" msgstr "" -#: part/models.py:632 +#: part/models.py:627 #, python-brace-format msgid "Part '{parent}' is used in BOM for '{self}' (recursive)" msgstr "" -#: part/models.py:695 +#: part/models.py:694 #, python-brace-format msgid "IPN must match regex pattern {pattern}" msgstr "" -#: part/models.py:703 +#: part/models.py:702 msgid "Part cannot be a revision of itself" msgstr "" -#: part/models.py:710 +#: part/models.py:709 msgid "Cannot make a revision of a part which is already a revision" msgstr "" -#: part/models.py:717 +#: part/models.py:716 msgid "Revision code must be specified" msgstr "" -#: part/models.py:724 +#: part/models.py:723 msgid "Revisions are only allowed for assembly parts" msgstr "" -#: part/models.py:731 +#: part/models.py:730 msgid "Cannot make a revision of a template part" msgstr "" -#: part/models.py:737 +#: part/models.py:736 msgid "Parent part must point to the same template" msgstr "" -#: part/models.py:816 +#: part/models.py:832 msgid "Stock item with this serial number already exists" -msgstr "" +msgstr "Voorraadartikel met dit serienummer bestaat al" -#: part/models.py:917 +#: part/models.py:976 msgid "Duplicate IPN not allowed in part settings" msgstr "" -#: part/models.py:926 +#: part/models.py:988 msgid "Duplicate part revision already exists." msgstr "" -#: part/models.py:936 +#: part/models.py:997 msgid "Part with this Name, IPN and Revision already exists." msgstr "" -#: part/models.py:951 +#: part/models.py:1012 msgid "Parts cannot be assigned to structural part categories!" msgstr "" -#: part/models.py:983 part/models.py:4102 +#: part/models.py:1044 part/models.py:4160 msgid "Part name" msgstr "Onderdeel naam" -#: part/models.py:988 +#: part/models.py:1049 msgid "Is Template" msgstr "" -#: part/models.py:989 +#: part/models.py:1050 msgid "Is this part a template part?" msgstr "" -#: part/models.py:999 +#: part/models.py:1060 msgid "Is this part a variant of another part?" msgstr "" -#: part/models.py:1007 +#: part/models.py:1068 msgid "Part description (optional)" msgstr "" -#: part/models.py:1015 +#: part/models.py:1076 msgid "Part keywords to improve visibility in search results" msgstr "" -#: part/models.py:1025 +#: part/models.py:1086 msgid "Part category" msgstr "Onderdeel Categorie" -#: part/models.py:1040 +#: part/models.py:1101 msgid "Part revision or version number" msgstr "" -#: part/models.py:1050 +#: part/models.py:1111 msgid "Is this part a revision of another part?" msgstr "" -#: part/models.py:1051 part/templates/part/part_base.html:277 +#: part/models.py:1112 part/templates/part/part_base.html:285 msgid "Revision Of" msgstr "" -#: part/models.py:1075 +#: part/models.py:1136 msgid "Where is this item normally stored?" msgstr "" -#: part/models.py:1121 part/templates/part/part_base.html:385 +#: part/models.py:1182 part/templates/part/part_base.html:393 msgid "Default Supplier" msgstr "" -#: part/models.py:1122 +#: part/models.py:1183 msgid "Default supplier part" msgstr "Standaardleverancier" -#: part/models.py:1129 +#: part/models.py:1190 msgid "Default Expiry" msgstr "" -#: part/models.py:1130 +#: part/models.py:1191 msgid "Expiry time (in days) for stock items of this part" -msgstr "" +msgstr "Verlooptijd (in dagen) voor voorraadartikelen van dit deel" -#: part/models.py:1139 +#: part/models.py:1200 msgid "Minimum allowed stock level" -msgstr "" +msgstr "Minimaal toegelaten stock niveau" -#: part/models.py:1148 +#: part/models.py:1209 msgid "Units of measure for this part" msgstr "Eenheden voor dit onderdeel" -#: part/models.py:1155 +#: part/models.py:1216 msgid "Can this part be built from other parts?" msgstr "" -#: part/models.py:1161 +#: part/models.py:1222 msgid "Can this part be used to build other parts?" msgstr "" -#: part/models.py:1167 +#: part/models.py:1228 msgid "Does this part have tracking for unique items?" msgstr "" -#: part/models.py:1173 +#: part/models.py:1234 msgid "Can this part have test results recorded against it?" msgstr "" -#: part/models.py:1179 +#: part/models.py:1240 msgid "Can this part be purchased from external suppliers?" msgstr "" -#: part/models.py:1185 +#: part/models.py:1246 msgid "Can this part be sold to customers?" msgstr "" -#: part/models.py:1189 +#: part/models.py:1250 msgid "Is this part active?" msgstr "" -#: part/models.py:1194 templates/js/translated/part.js:821 +#: part/models.py:1255 templates/js/translated/part.js:821 #: templates/js/translated/table_filters.js:724 msgid "Locked" msgstr "" -#: part/models.py:1195 +#: part/models.py:1256 msgid "Locked parts cannot be edited" msgstr "" -#: part/models.py:1201 +#: part/models.py:1262 msgid "Is this a virtual part, such as a software product or license?" msgstr "" -#: part/models.py:1207 +#: part/models.py:1268 msgid "BOM checksum" msgstr "" -#: part/models.py:1208 +#: part/models.py:1269 msgid "Stored BOM checksum" msgstr "" -#: part/models.py:1216 +#: part/models.py:1277 msgid "BOM checked by" msgstr "" -#: part/models.py:1221 +#: part/models.py:1282 msgid "BOM checked date" msgstr "" -#: part/models.py:1237 +#: part/models.py:1298 msgid "Creation User" msgstr "" -#: part/models.py:1247 +#: part/models.py:1308 msgid "Owner responsible for this part" msgstr "" -#: part/models.py:1252 part/templates/part/part_base.html:348 -#: stock/templates/stock/item_base.html:451 +#: part/models.py:1313 part/templates/part/part_base.html:356 +#: stock/templates/stock/item_base.html:448 #: templates/js/translated/part.js:2490 msgid "Last Stocktake" -msgstr "" +msgstr "Laatste voorraadcontrole" -#: part/models.py:2125 +#: part/models.py:2185 msgid "Sell multiple" msgstr "" -#: part/models.py:3116 +#: part/models.py:3167 msgid "Currency used to cache pricing calculations" msgstr "" -#: part/models.py:3132 +#: part/models.py:3183 msgid "Minimum BOM Cost" msgstr "" -#: part/models.py:3133 +#: part/models.py:3184 msgid "Minimum cost of component parts" msgstr "" -#: part/models.py:3139 +#: part/models.py:3190 msgid "Maximum BOM Cost" msgstr "" -#: part/models.py:3140 +#: part/models.py:3191 msgid "Maximum cost of component parts" msgstr "" -#: part/models.py:3146 +#: part/models.py:3197 msgid "Minimum Purchase Cost" msgstr "" -#: part/models.py:3147 +#: part/models.py:3198 msgid "Minimum historical purchase cost" msgstr "" -#: part/models.py:3153 +#: part/models.py:3204 msgid "Maximum Purchase Cost" msgstr "" -#: part/models.py:3154 +#: part/models.py:3205 msgid "Maximum historical purchase cost" msgstr "" -#: part/models.py:3160 +#: part/models.py:3211 msgid "Minimum Internal Price" msgstr "" -#: part/models.py:3161 +#: part/models.py:3212 msgid "Minimum cost based on internal price breaks" msgstr "" -#: part/models.py:3167 +#: part/models.py:3218 msgid "Maximum Internal Price" msgstr "" -#: part/models.py:3168 +#: part/models.py:3219 msgid "Maximum cost based on internal price breaks" msgstr "" -#: part/models.py:3174 +#: part/models.py:3225 msgid "Minimum Supplier Price" msgstr "" -#: part/models.py:3175 +#: part/models.py:3226 msgid "Minimum price of part from external suppliers" msgstr "" -#: part/models.py:3181 +#: part/models.py:3232 msgid "Maximum Supplier Price" msgstr "" -#: part/models.py:3182 +#: part/models.py:3233 msgid "Maximum price of part from external suppliers" msgstr "" -#: part/models.py:3188 +#: part/models.py:3239 msgid "Minimum Variant Cost" msgstr "" -#: part/models.py:3189 +#: part/models.py:3240 msgid "Calculated minimum cost of variant parts" msgstr "" -#: part/models.py:3195 +#: part/models.py:3246 msgid "Maximum Variant Cost" msgstr "" -#: part/models.py:3196 +#: part/models.py:3247 msgid "Calculated maximum cost of variant parts" msgstr "" -#: part/models.py:3203 +#: part/models.py:3254 msgid "Override minimum cost" msgstr "" -#: part/models.py:3210 +#: part/models.py:3261 msgid "Override maximum cost" msgstr "" -#: part/models.py:3217 +#: part/models.py:3268 msgid "Calculated overall minimum cost" msgstr "" -#: part/models.py:3224 +#: part/models.py:3275 msgid "Calculated overall maximum cost" msgstr "" -#: part/models.py:3230 +#: part/models.py:3281 msgid "Minimum Sale Price" msgstr "" -#: part/models.py:3231 +#: part/models.py:3282 msgid "Minimum sale price based on price breaks" msgstr "" -#: part/models.py:3237 +#: part/models.py:3288 msgid "Maximum Sale Price" msgstr "" -#: part/models.py:3238 +#: part/models.py:3289 msgid "Maximum sale price based on price breaks" msgstr "" -#: part/models.py:3244 +#: part/models.py:3295 msgid "Minimum Sale Cost" msgstr "" -#: part/models.py:3245 +#: part/models.py:3296 msgid "Minimum historical sale price" msgstr "" -#: part/models.py:3251 +#: part/models.py:3302 msgid "Maximum Sale Cost" msgstr "" -#: part/models.py:3252 +#: part/models.py:3303 msgid "Maximum historical sale price" msgstr "" -#: part/models.py:3271 +#: part/models.py:3322 msgid "Part for stocktake" msgstr "Onderdeel voor voorraadcontrole" -#: part/models.py:3276 +#: part/models.py:3327 msgid "Item Count" msgstr "" -#: part/models.py:3277 +#: part/models.py:3328 msgid "Number of individual stock entries at time of stocktake" -msgstr "" +msgstr "Aantal individuele voorraadvermeldingen op het moment van voorraadcontrole" -#: part/models.py:3285 +#: part/models.py:3336 msgid "Total available stock at time of stocktake" -msgstr "" +msgstr "Totale voorraad op het moment van voorraadcontrole" -#: part/models.py:3289 part/models.py:3372 +#: part/models.py:3340 part/models.py:3423 part/serializers.py:263 #: part/templates/part/part_scheduling.html:13 #: report/templates/report/inventree_test_report.html:106 #: templates/InvenTree/settings/plugin_settings.html:37 #: templates/InvenTree/settings/settings_staff_js.html:543 -#: templates/js/translated/part.js:1092 templates/js/translated/pricing.js:826 -#: templates/js/translated/pricing.js:950 -#: templates/js/translated/purchase_order.js:1801 -#: templates/js/translated/stock.js:2905 +#: templates/js/translated/part.js:1092 templates/js/translated/pricing.js:824 +#: templates/js/translated/pricing.js:948 +#: templates/js/translated/purchase_order.js:1785 +#: templates/js/translated/stock.js:2906 msgid "Date" msgstr "Datum" -#: part/models.py:3290 +#: part/models.py:3341 msgid "Date stocktake was performed" -msgstr "" +msgstr "Datum waarop voorraad werd uitgevoerd" -#: part/models.py:3298 +#: part/models.py:3349 msgid "Additional notes" msgstr "" -#: part/models.py:3308 +#: part/models.py:3359 msgid "User who performed this stocktake" -msgstr "" +msgstr "Gebruiker die deze voorraad heeft uitgevoerd" -#: part/models.py:3314 +#: part/models.py:3365 msgid "Minimum Stock Cost" -msgstr "" +msgstr "Minimale voorraadprijs" -#: part/models.py:3315 +#: part/models.py:3366 msgid "Estimated minimum cost of stock on hand" -msgstr "" +msgstr "Geschatte minimum kosten van de voorraad op de hand" -#: part/models.py:3321 +#: part/models.py:3372 msgid "Maximum Stock Cost" -msgstr "" +msgstr "Maximale voorraadkosten" -#: part/models.py:3322 +#: part/models.py:3373 msgid "Estimated maximum cost of stock on hand" -msgstr "" +msgstr "Geschatte maximale kosten van de hand van voorraad" -#: part/models.py:3378 templates/InvenTree/settings/settings_staff_js.html:532 +#: part/models.py:3429 templates/InvenTree/settings/settings_staff_js.html:532 msgid "Report" msgstr "" -#: part/models.py:3379 +#: part/models.py:3430 msgid "Stocktake report file (generated internally)" -msgstr "" +msgstr "Bestand voorraadcontrole (intern gegenereerd)" -#: part/models.py:3384 templates/InvenTree/settings/settings_staff_js.html:539 +#: part/models.py:3435 templates/InvenTree/settings/settings_staff_js.html:539 msgid "Part Count" msgstr "Aantal onderdelen" -#: part/models.py:3385 +#: part/models.py:3436 msgid "Number of parts covered by stocktake" -msgstr "" +msgstr "Aantal door voorraadopname gedekte onderdelen" -#: part/models.py:3395 +#: part/models.py:3446 msgid "User who requested this stocktake report" -msgstr "" +msgstr "Gebruiker die om dit voorraadrapport heeft gevraagd" -#: part/models.py:3405 +#: part/models.py:3456 msgid "Part Sale Price Break" msgstr "" -#: part/models.py:3517 +#: part/models.py:3568 msgid "Part Test Template" msgstr "" -#: part/models.py:3543 +#: part/models.py:3594 msgid "Invalid template name - must include at least one alphanumeric character" msgstr "" -#: part/models.py:3564 part/models.py:3733 +#: part/models.py:3615 part/models.py:3784 msgid "Choices must be unique" msgstr "" -#: part/models.py:3575 -msgid "Test templates can only be created for trackable parts" -msgstr "" +#: part/models.py:3626 +msgid "Test templates can only be created for testable parts" +msgstr "Test sjablonen kunnen alleen worden gemaakt voor testbare onderdelen" -#: part/models.py:3586 +#: part/models.py:3637 msgid "Test template with the same key already exists for part" msgstr "" -#: part/models.py:3603 templates/js/translated/part.js:2898 +#: part/models.py:3654 templates/js/translated/part.js:2898 msgid "Test Name" msgstr "" -#: part/models.py:3604 +#: part/models.py:3655 msgid "Enter a name for the test" msgstr "" -#: part/models.py:3610 +#: part/models.py:3661 msgid "Test Key" msgstr "" -#: part/models.py:3611 +#: part/models.py:3662 msgid "Simplified key for the test" msgstr "" -#: part/models.py:3618 +#: part/models.py:3669 msgid "Test Description" msgstr "" -#: part/models.py:3619 +#: part/models.py:3670 msgid "Enter description for this test" msgstr "" -#: part/models.py:3623 report/models.py:208 +#: part/models.py:3674 report/models.py:216 #: templates/js/translated/part.js:2919 #: templates/js/translated/table_filters.js:502 msgid "Enabled" msgstr "Ingeschakeld" -#: part/models.py:3623 +#: part/models.py:3674 msgid "Is this test enabled?" msgstr "" -#: part/models.py:3628 templates/js/translated/part.js:2927 +#: part/models.py:3679 templates/js/translated/part.js:2927 #: templates/js/translated/table_filters.js:498 msgid "Required" msgstr "" -#: part/models.py:3629 +#: part/models.py:3680 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:3634 templates/js/translated/part.js:2935 +#: part/models.py:3685 templates/js/translated/part.js:2935 msgid "Requires Value" msgstr "" -#: part/models.py:3635 +#: part/models.py:3686 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:3640 templates/js/translated/part.js:2942 +#: part/models.py:3691 templates/js/translated/part.js:2942 msgid "Requires Attachment" msgstr "" -#: part/models.py:3642 +#: part/models.py:3693 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:3648 part/models.py:3792 templates/js/translated/part.js:1643 +#: part/models.py:3699 part/models.py:3843 templates/js/translated/part.js:1643 msgid "Choices" msgstr "" -#: part/models.py:3649 +#: part/models.py:3700 msgid "Valid choices for this test (comma-separated)" msgstr "" -#: part/models.py:3681 +#: part/models.py:3732 msgid "Part Parameter Template" msgstr "" -#: part/models.py:3708 +#: part/models.py:3759 msgid "Checkbox parameters cannot have units" msgstr "" -#: part/models.py:3713 +#: part/models.py:3764 msgid "Checkbox parameters cannot have choices" msgstr "" -#: part/models.py:3750 +#: part/models.py:3801 msgid "Parameter template name must be unique" msgstr "De template van de parameter moet uniek zijn" -#: part/models.py:3765 +#: part/models.py:3816 msgid "Parameter Name" msgstr "Parameternaam" -#: part/models.py:3772 +#: part/models.py:3823 msgid "Physical units for this parameter" msgstr "" -#: part/models.py:3780 +#: part/models.py:3831 msgid "Parameter description" msgstr "" -#: part/models.py:3786 templates/js/translated/part.js:1634 +#: part/models.py:3837 templates/js/translated/part.js:1634 #: templates/js/translated/table_filters.js:837 msgid "Checkbox" msgstr "" -#: part/models.py:3787 +#: part/models.py:3838 msgid "Is this parameter a checkbox?" msgstr "" -#: part/models.py:3793 +#: part/models.py:3844 msgid "Valid choices for this parameter (comma-separated)" msgstr "" -#: part/models.py:3827 +#: part/models.py:3881 msgid "Part Parameter" msgstr "" -#: part/models.py:3853 +#: part/models.py:3907 msgid "Parameter cannot be modified - part is locked" msgstr "" -#: part/models.py:3889 +#: part/models.py:3945 msgid "Invalid choice for parameter value" msgstr "" -#: part/models.py:3938 +#: part/models.py:3996 msgid "Parent Part" msgstr "" -#: part/models.py:3946 part/models.py:4054 part/models.py:4055 +#: part/models.py:4004 part/models.py:4112 part/models.py:4113 #: templates/InvenTree/settings/settings_staff_js.html:295 msgid "Parameter Template" msgstr "" -#: part/models.py:3952 +#: part/models.py:4010 msgid "Parameter Value" msgstr "Parameterwaarde" -#: part/models.py:4002 +#: part/models.py:4060 msgid "Part Category Parameter Template" msgstr "" -#: part/models.py:4061 templates/InvenTree/settings/settings_staff_js.html:304 +#: part/models.py:4119 templates/InvenTree/settings/settings_staff_js.html:304 msgid "Default Value" msgstr "" -#: part/models.py:4062 +#: part/models.py:4120 msgid "Default Parameter Value" msgstr "Standaard Parameter Waarde" -#: part/models.py:4100 +#: part/models.py:4158 msgid "Part ID or part name" msgstr "" -#: part/models.py:4101 +#: part/models.py:4159 msgid "Unique part ID value" msgstr "" -#: part/models.py:4103 +#: part/models.py:4161 msgid "Part IPN value" msgstr "" -#: part/models.py:4104 +#: part/models.py:4162 msgid "Level" msgstr "" -#: part/models.py:4104 +#: part/models.py:4162 msgid "BOM level" msgstr "" -#: part/models.py:4215 +#: part/models.py:4272 msgid "BOM item cannot be modified - assembly is locked" msgstr "" -#: part/models.py:4222 +#: part/models.py:4279 msgid "BOM item cannot be modified - variant assembly is locked" msgstr "" -#: part/models.py:4232 +#: part/models.py:4289 msgid "Select parent part" msgstr "" -#: part/models.py:4242 +#: part/models.py:4299 msgid "Sub part" msgstr "" -#: part/models.py:4243 +#: part/models.py:4300 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:4254 +#: part/models.py:4311 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:4260 +#: part/models.py:4317 msgid "This BOM item is optional" msgstr "" -#: part/models.py:4266 +#: part/models.py:4323 msgid "This BOM item is consumable (it is not tracked in build orders)" msgstr "" -#: part/models.py:4273 part/templates/part/upload_bom.html:55 +#: part/models.py:4330 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "" -#: part/models.py:4274 +#: part/models.py:4331 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:4281 +#: part/models.py:4338 msgid "BOM item reference" msgstr "" -#: part/models.py:4289 +#: part/models.py:4346 msgid "BOM item notes" msgstr "" -#: part/models.py:4295 +#: part/models.py:4352 msgid "Checksum" msgstr "" -#: part/models.py:4296 +#: part/models.py:4353 msgid "BOM line checksum" msgstr "" -#: part/models.py:4301 templates/js/translated/table_filters.js:181 +#: part/models.py:4358 templates/js/translated/table_filters.js:181 msgid "Validated" msgstr "" -#: part/models.py:4302 +#: part/models.py:4359 msgid "This BOM item has been validated" msgstr "" -#: part/models.py:4307 part/templates/part/upload_bom.html:57 +#: part/models.py:4364 part/templates/part/upload_bom.html:57 #: templates/js/translated/bom.js:1054 #: templates/js/translated/table_filters.js:185 #: templates/js/translated/table_filters.js:218 msgid "Gets inherited" msgstr "" -#: part/models.py:4308 +#: part/models.py:4365 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:4314 +#: part/models.py:4371 msgid "Stock items for variant parts can be used for this BOM item" -msgstr "" +msgstr "Voorraaditems voor variant onderdelen kunnen worden gebruikt voor dit BOM artikel" -#: part/models.py:4399 stock/models.py:685 +#: part/models.py:4456 stock/models.py:762 msgid "Quantity must be integer value for trackable parts" -msgstr "" +msgstr "Hoeveelheid moet een geheel getal zijn voor trackable onderdelen" -#: part/models.py:4409 part/models.py:4411 +#: part/models.py:4466 part/models.py:4468 msgid "Sub part must be specified" msgstr "" -#: part/models.py:4551 +#: part/models.py:4613 msgid "BOM Item Substitute" msgstr "" -#: part/models.py:4572 +#: part/models.py:4634 msgid "Substitute part cannot be the same as the master part" msgstr "" -#: part/models.py:4585 +#: part/models.py:4647 msgid "Parent BOM item" msgstr "" -#: part/models.py:4593 +#: part/models.py:4655 msgid "Substitute part" msgstr "" -#: part/models.py:4609 +#: part/models.py:4671 msgid "Part 1" msgstr "" -#: part/models.py:4617 +#: part/models.py:4679 msgid "Part 2" msgstr "" -#: part/models.py:4618 +#: part/models.py:4680 msgid "Select Related Part" msgstr "" -#: part/models.py:4637 +#: part/models.py:4699 msgid "Part relationship cannot be created between a part and itself" msgstr "" -#: part/models.py:4642 +#: part/models.py:4704 msgid "Duplicate relationship already exists" msgstr "" @@ -7449,367 +7662,379 @@ msgstr "" msgid "Number of results recorded against this template" msgstr "" -#: part/serializers.py:225 part/serializers.py:243 stock/serializers.py:616 +#: part/serializers.py:225 part/serializers.py:243 stock/serializers.py:643 msgid "Purchase currency of this stock item" -msgstr "" +msgstr "Inkooporder voor dit voorraadartikel" -#: part/serializers.py:291 +#: part/serializers.py:268 +msgid "Speculative Quantity" +msgstr "Speculatieve hoeveelheid" + +#: part/serializers.py:277 +msgid "Model ID" +msgstr "Model Id" + +#: part/serializers.py:324 msgid "Number of parts using this template" msgstr "" -#: part/serializers.py:421 +#: part/serializers.py:465 msgid "No parts selected" msgstr "Geen onderdelen geselecteerd" -#: part/serializers.py:431 +#: part/serializers.py:475 msgid "Select category" msgstr "" -#: part/serializers.py:466 +#: part/serializers.py:510 msgid "Original Part" msgstr "" -#: part/serializers.py:467 +#: part/serializers.py:511 msgid "Select original part to duplicate" msgstr "" -#: part/serializers.py:472 +#: part/serializers.py:516 msgid "Copy Image" msgstr "Afbeelding kopiëren" -#: part/serializers.py:473 +#: part/serializers.py:517 msgid "Copy image from original part" msgstr "Afbeelding kopiëren van het oorspronkelijke onderdeel" -#: part/serializers.py:479 part/templates/part/detail.html:293 +#: part/serializers.py:523 part/templates/part/detail.html:293 msgid "Copy BOM" msgstr "" -#: part/serializers.py:480 +#: part/serializers.py:524 msgid "Copy bill of materials from original part" msgstr "" -#: part/serializers.py:486 +#: part/serializers.py:530 msgid "Copy Parameters" msgstr "Parameters kopiëren" -#: part/serializers.py:487 +#: part/serializers.py:531 msgid "Copy parameter data from original part" msgstr "Parameter data kopiëren van het originele onderdeel" -#: part/serializers.py:493 +#: part/serializers.py:537 msgid "Copy Notes" msgstr "" -#: part/serializers.py:494 +#: part/serializers.py:538 msgid "Copy notes from original part" msgstr "" -#: part/serializers.py:512 +#: part/serializers.py:556 msgid "Initial Stock Quantity" -msgstr "" +msgstr "Eerste voorraad hoeveelheid" -#: part/serializers.py:514 +#: part/serializers.py:558 msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added." -msgstr "" +msgstr "Specificeer de initiële voorraad hoeveelheid voor dit onderdeel. Als het aantal nul is, wordt er geen voorraad toegevoegd." -#: part/serializers.py:521 +#: part/serializers.py:565 msgid "Initial Stock Location" -msgstr "" +msgstr "Eerste voorraad locatie" -#: part/serializers.py:522 +#: part/serializers.py:566 msgid "Specify initial stock location for this Part" -msgstr "" +msgstr "Specificeer locatie van de eerste voorraad voor dit onderdeel" -#: part/serializers.py:539 +#: part/serializers.py:583 msgid "Select supplier (or leave blank to skip)" msgstr "" -#: part/serializers.py:555 +#: part/serializers.py:599 msgid "Select manufacturer (or leave blank to skip)" msgstr "" -#: part/serializers.py:565 +#: part/serializers.py:609 msgid "Manufacturer part number" msgstr "" -#: part/serializers.py:572 +#: part/serializers.py:616 msgid "Selected company is not a valid supplier" msgstr "" -#: part/serializers.py:581 +#: part/serializers.py:625 msgid "Selected company is not a valid manufacturer" msgstr "" -#: part/serializers.py:592 +#: part/serializers.py:636 msgid "Manufacturer part matching this MPN already exists" msgstr "" -#: part/serializers.py:599 +#: part/serializers.py:643 msgid "Supplier part matching this SKU already exists" msgstr "" -#: part/serializers.py:903 +#: part/serializers.py:955 msgid "Revisions" msgstr "" -#: part/serializers.py:908 +#: part/serializers.py:960 msgid "Unallocated Stock" -msgstr "" +msgstr "Niet toegewezen voorraad" -#: part/serializers.py:911 +#: part/serializers.py:963 msgid "Variant Stock" -msgstr "" +msgstr "Variant voorraad" -#: part/serializers.py:941 part/templates/part/copy_part.html:9 +#: part/serializers.py:993 part/templates/part/copy_part.html:9 #: templates/js/translated/part.js:474 msgid "Duplicate Part" msgstr "" -#: part/serializers.py:942 +#: part/serializers.py:994 msgid "Copy initial data from another Part" msgstr "" -#: part/serializers.py:948 templates/js/translated/part.js:103 +#: part/serializers.py:1000 templates/js/translated/part.js:103 msgid "Initial Stock" -msgstr "" +msgstr "Eerste voorraad" -#: part/serializers.py:949 +#: part/serializers.py:1001 msgid "Create Part with initial stock quantity" -msgstr "" +msgstr "Maak onderdeel met eerste voorraad" -#: part/serializers.py:955 +#: part/serializers.py:1007 msgid "Supplier Information" msgstr "" -#: part/serializers.py:956 +#: part/serializers.py:1008 msgid "Add initial supplier information for this part" msgstr "" -#: part/serializers.py:964 +#: part/serializers.py:1016 msgid "Copy Category Parameters" msgstr "" -#: part/serializers.py:965 +#: part/serializers.py:1017 msgid "Copy parameter templates from selected part category" msgstr "" -#: part/serializers.py:970 +#: part/serializers.py:1022 msgid "Existing Image" msgstr "" -#: part/serializers.py:971 +#: part/serializers.py:1023 msgid "Filename of an existing part image" msgstr "" -#: part/serializers.py:988 +#: part/serializers.py:1040 msgid "Image file does not exist" msgstr "" -#: part/serializers.py:1194 +#: part/serializers.py:1247 msgid "Limit stocktake report to a particular part, and any variant parts" -msgstr "" +msgstr "Limiteer de voorraadrapportage tot een bepaald onderdeel en eventuele variant onderdelen" -#: part/serializers.py:1204 +#: part/serializers.py:1257 msgid "Limit stocktake report to a particular part category, and any child categories" -msgstr "" +msgstr "Limiteer de voorraadrapportage tot een bepaalde deelcategorie en alle onderliggende categorieën" -#: part/serializers.py:1214 +#: part/serializers.py:1267 msgid "Limit stocktake report to a particular stock location, and any child locations" -msgstr "" +msgstr "Limiteer de voorraadrapportage tot een bepaalde voorraadlocatie en alle onderliggende locaties" -#: part/serializers.py:1220 +#: part/serializers.py:1273 msgid "Exclude External Stock" -msgstr "" +msgstr "Externe voorraad uitsluiten" -#: part/serializers.py:1221 +#: part/serializers.py:1274 msgid "Exclude stock items in external locations" -msgstr "" +msgstr "Voorraadartikelen op externe locaties uitsluiten" -#: part/serializers.py:1226 +#: part/serializers.py:1279 msgid "Generate Report" msgstr "" -#: part/serializers.py:1227 +#: part/serializers.py:1280 msgid "Generate report file containing calculated stocktake data" -msgstr "" +msgstr "Genereer een bestand met berekende voorraad namen gegevens" -#: part/serializers.py:1232 +#: part/serializers.py:1285 msgid "Update Parts" msgstr "" -#: part/serializers.py:1233 +#: part/serializers.py:1286 msgid "Update specified parts with calculated stocktake data" -msgstr "" +msgstr "Bijwerken van de opgegeven onderdelen met berekende voorraad gegevens" -#: part/serializers.py:1241 +#: part/serializers.py:1294 msgid "Stocktake functionality is not enabled" -msgstr "" +msgstr "Voorraadcontrole functionaliteit is niet ingeschakeld" -#: part/serializers.py:1347 +#: part/serializers.py:1299 +msgid "Background worker check failed" +msgstr "Achtergrondwerker check is gefaald" + +#: part/serializers.py:1401 msgid "Override calculated value for minimum price" msgstr "" -#: part/serializers.py:1354 +#: part/serializers.py:1408 msgid "Minimum price currency" msgstr "" -#: part/serializers.py:1362 +#: part/serializers.py:1416 msgid "Override calculated value for maximum price" msgstr "" -#: part/serializers.py:1369 +#: part/serializers.py:1423 msgid "Maximum price currency" msgstr "" -#: part/serializers.py:1398 +#: part/serializers.py:1452 msgid "Update" msgstr "" -#: part/serializers.py:1399 +#: part/serializers.py:1453 msgid "Update pricing for this part" msgstr "" -#: part/serializers.py:1422 +#: part/serializers.py:1476 #, python-brace-format msgid "Could not convert from provided currencies to {default_currency}" msgstr "" -#: part/serializers.py:1429 +#: part/serializers.py:1483 msgid "Minimum price must not be greater than maximum price" msgstr "" -#: part/serializers.py:1432 +#: part/serializers.py:1486 msgid "Maximum price must not be less than minimum price" msgstr "" -#: part/serializers.py:1576 +#: part/serializers.py:1634 msgid "Select the parent assembly" msgstr "" -#: part/serializers.py:1585 +#: part/serializers.py:1643 msgid "Component Name" msgstr "" -#: part/serializers.py:1588 +#: part/serializers.py:1646 msgid "Component IPN" msgstr "" -#: part/serializers.py:1591 +#: part/serializers.py:1649 msgid "Component Description" msgstr "" -#: part/serializers.py:1597 +#: part/serializers.py:1655 msgid "Select the component part" msgstr "" -#: part/serializers.py:1606 part/templates/part/part_base.html:235 +#: part/serializers.py:1664 part/templates/part/part_base.html:243 #: templates/js/translated/bom.js:1219 msgid "Can Build" msgstr "" -#: part/serializers.py:1837 +#: part/serializers.py:1899 msgid "Select part to copy BOM from" msgstr "" -#: part/serializers.py:1845 +#: part/serializers.py:1907 msgid "Remove Existing Data" msgstr "" -#: part/serializers.py:1846 +#: part/serializers.py:1908 msgid "Remove existing BOM items before copying" msgstr "" -#: part/serializers.py:1851 +#: part/serializers.py:1913 msgid "Include Inherited" msgstr "" -#: part/serializers.py:1852 +#: part/serializers.py:1914 msgid "Include BOM items which are inherited from templated parts" -msgstr "" +msgstr "Inclusief stuklijst BOM items die worden overgenomen van getemplated onderdelen" -#: part/serializers.py:1857 +#: part/serializers.py:1919 msgid "Skip Invalid Rows" msgstr "" -#: part/serializers.py:1858 +#: part/serializers.py:1920 msgid "Enable this option to skip invalid rows" msgstr "" -#: part/serializers.py:1863 +#: part/serializers.py:1925 msgid "Copy Substitute Parts" msgstr "" -#: part/serializers.py:1864 +#: part/serializers.py:1926 msgid "Copy substitute parts when duplicate BOM items" -msgstr "" +msgstr "Kopieer vervangende onderdelen bij dubbele stuklijst BOM items" -#: part/serializers.py:1901 +#: part/serializers.py:1963 msgid "Clear Existing BOM" -msgstr "" +msgstr "Verwijder bestaande stuklijst BOM" -#: part/serializers.py:1902 +#: part/serializers.py:1964 msgid "Delete existing BOM items before uploading" -msgstr "" +msgstr "Verwijder bestaande stuklijst BOM items voor het uploaden" -#: part/serializers.py:1934 +#: part/serializers.py:1996 msgid "No part column specified" msgstr "" -#: part/serializers.py:1978 +#: part/serializers.py:2040 msgid "Multiple matching parts found" msgstr "" -#: part/serializers.py:1981 +#: part/serializers.py:2043 msgid "No matching part found" msgstr "" -#: part/serializers.py:1984 +#: part/serializers.py:2045 msgid "Part is not designated as a component" msgstr "" -#: part/serializers.py:1993 +#: part/serializers.py:2054 msgid "Quantity not provided" msgstr "" -#: part/serializers.py:2001 +#: part/serializers.py:2062 msgid "Invalid quantity" msgstr "Ongeldige hoeveelheid" -#: part/serializers.py:2024 +#: part/serializers.py:2085 msgid "At least one BOM item is required" -msgstr "" +msgstr "Minstens één stuklijst BOM artikel is vereist" #: part/stocktake.py:224 templates/js/translated/part.js:1073 #: templates/js/translated/part.js:1828 templates/js/translated/part.js:1884 -#: templates/js/translated/purchase_order.js:2154 +#: templates/js/translated/purchase_order.js:2138 msgid "Total Quantity" -msgstr "" +msgstr "Totale hoeveelheid" #: part/stocktake.py:225 msgid "Total Cost Min" -msgstr "" +msgstr "Totale kosten Min" #: part/stocktake.py:226 msgid "Total Cost Max" -msgstr "" +msgstr "Totale kosten Max" #: part/stocktake.py:284 msgid "Stocktake Report Available" -msgstr "" +msgstr "Voorraadcontrole rapport beschikbaar" #: part/stocktake.py:285 msgid "A new stocktake report is available for download" -msgstr "" +msgstr "Een nieuwe voorraadrapportage is beschikbaar voor download" #: part/tasks.py:37 msgid "Low stock notification" -msgstr "" +msgstr "Lage voorraad melding" #: part/tasks.py:39 #, python-brace-format msgid "The available stock for {part.name} has fallen below the configured minimum level" -msgstr "" +msgstr "De beschikbare voorraad voor {part.name} is onder het ingestelde minimumniveau gedaald" #: part/templates/part/bom.html:6 msgid "You do not have permission to edit the BOM." @@ -7817,20 +8042,20 @@ msgstr "U heeft geen toestemming om de stuklijst te bewerken." #: part/templates/part/bom.html:15 msgid "The BOM this part has been changed, and must be validated" -msgstr "" +msgstr "De stuklijst BOM dit onderdeel is gewijzigd en moet worden gevalideerd" #: part/templates/part/bom.html:17 #, python-format msgid "This BOM was last checked by %(checker)s on %(check_date)s" -msgstr "" +msgstr "Deze stuklijst BOM is laatst gecontroleerd door %(checker)s op %(check_date)s" #: part/templates/part/bom.html:21 msgid "This BOM has not been validated." -msgstr "" +msgstr "Deze stuklijst BOM is niet gevalideerd." #: part/templates/part/category.html:32 msgid "Perform stocktake for this part category" -msgstr "" +msgstr "Voorraadcontrole uitvoeren voor deze deelcategorie" #: part/templates/part/category.html:38 part/templates/part/category.html:42 msgid "You are subscribed to notifications for this category" @@ -7874,7 +8099,7 @@ msgstr "" #: part/templates/part/category.html:163 templates/js/translated/bom.js:444 msgid "New Part" -msgstr "" +msgstr "Nieuw onderdeel" #: part/templates/part/category.html:189 #: templates/InvenTree/settings/part_parameters.html:7 @@ -7916,7 +8141,7 @@ msgstr "" #: part/templates/part/detail.html:20 msgid "Part Stock" -msgstr "" +msgstr "Voorraad onderdeel" #: part/templates/part/detail.html:44 msgid "Refresh scheduling data" @@ -7929,14 +8154,14 @@ msgstr "" #: part/templates/part/detail.html:66 msgid "Add stocktake information" -msgstr "" +msgstr "Voorraadinformatie toevoegen" #: part/templates/part/detail.html:67 part/templates/part/part_sidebar.html:50 -#: stock/admin.py:255 templates/InvenTree/settings/part_stocktake.html:30 +#: stock/admin.py:256 templates/InvenTree/settings/part_stocktake.html:30 #: templates/InvenTree/settings/sidebar.html:53 -#: templates/js/translated/stock.js:2301 users/models.py:204 +#: templates/js/translated/stock.js:2302 users/models.py:204 msgid "Stocktake" -msgstr "" +msgstr "Voorraadcontrole" #: part/templates/part/detail.html:83 msgid "Part Test Templates" @@ -7993,28 +8218,28 @@ msgstr "" #: part/templates/part/detail.html:280 templates/js/translated/bom.js:340 msgid "Export BOM" -msgstr "" +msgstr "Exporteren van stuklijst BOM" #: part/templates/part/detail.html:282 msgid "Print BOM Report" -msgstr "" +msgstr "Print stuklijst BOM Rapport" #: part/templates/part/detail.html:288 msgid "BOM actions" -msgstr "" +msgstr "Stuklijst BOM acties" #: part/templates/part/detail.html:292 msgid "Upload BOM" -msgstr "" +msgstr "Stuklijst BOM uploaden" #: part/templates/part/detail.html:294 msgid "Validate BOM" -msgstr "" +msgstr "Valideren stuklijst BOM" #: part/templates/part/detail.html:299 part/templates/part/detail.html:300 #: templates/js/translated/bom.js:1320 templates/js/translated/bom.js:1321 msgid "Add BOM Item" -msgstr "" +msgstr "Stuklijst BOM item toevoegen" #: part/templates/part/detail.html:313 msgid "Assemblies" @@ -8093,142 +8318,146 @@ msgstr "Selecteer bestandsindeling" msgid "Part List" msgstr "" -#: part/templates/part/part_base.html:25 part/templates/part/part_base.html:29 +#: part/templates/part/part_base.html:26 part/templates/part/part_base.html:30 msgid "You are subscribed to notifications for this part" msgstr "" -#: part/templates/part/part_base.html:33 +#: part/templates/part/part_base.html:34 msgid "Subscribe to notifications for this part" msgstr "" -#: part/templates/part/part_base.html:52 +#: part/templates/part/part_base.html:53 #: stock/templates/stock/item_base.html:62 -#: stock/templates/stock/location.html:71 templates/js/translated/label.js:136 +#: stock/templates/stock/location.html:72 templates/js/translated/label.js:136 msgid "Print Label" msgstr "Label afdrukken" -#: part/templates/part/part_base.html:58 +#: part/templates/part/part_base.html:59 msgid "Show pricing information" msgstr "" -#: part/templates/part/part_base.html:63 -#: stock/templates/stock/item_base.html:110 -#: stock/templates/stock/location.html:80 +#: part/templates/part/part_base.html:64 +#: stock/templates/stock/item_base.html:107 +#: stock/templates/stock/location.html:81 msgid "Stock actions" msgstr "Voorraad acties" -#: part/templates/part/part_base.html:70 +#: part/templates/part/part_base.html:71 msgid "Count part stock" -msgstr "" +msgstr "Tel voorraad" -#: part/templates/part/part_base.html:76 +#: part/templates/part/part_base.html:77 msgid "Transfer part stock" -msgstr "" +msgstr "Voorraad van onderdeel verplaatsen" -#: part/templates/part/part_base.html:91 templates/js/translated/part.js:2299 +#: part/templates/part/part_base.html:92 templates/js/translated/part.js:2299 msgid "Part actions" msgstr "" -#: part/templates/part/part_base.html:94 +#: part/templates/part/part_base.html:95 msgid "Duplicate part" msgstr "" -#: part/templates/part/part_base.html:97 +#: part/templates/part/part_base.html:98 msgid "Edit part" msgstr "" -#: part/templates/part/part_base.html:100 +#: part/templates/part/part_base.html:101 msgid "Delete part" msgstr "" -#: part/templates/part/part_base.html:119 +#: part/templates/part/part_base.html:120 msgid "Part is a template part (variants can be made from this part)" msgstr "" -#: part/templates/part/part_base.html:123 +#: part/templates/part/part_base.html:124 msgid "Part can be assembled from other parts" msgstr "Onderdeel kan vanuit andere onderdelen worden samengesteld" -#: part/templates/part/part_base.html:127 +#: part/templates/part/part_base.html:128 msgid "Part can be used in assemblies" msgstr "Onderdeel kan gebruikt worden voor assemblages" -#: part/templates/part/part_base.html:131 +#: part/templates/part/part_base.html:132 msgid "Part stock is tracked by serial number" -msgstr "" +msgstr "Onderdeel voorraad wordt bijgehouden op basis van serienummer" -#: part/templates/part/part_base.html:135 +#: part/templates/part/part_base.html:136 msgid "Part can be purchased from external suppliers" msgstr "" -#: part/templates/part/part_base.html:139 +#: part/templates/part/part_base.html:140 msgid "Part can be sold to customers" msgstr "" -#: part/templates/part/part_base.html:145 +#: part/templates/part/part_base.html:146 msgid "Part is not active" msgstr "" -#: part/templates/part/part_base.html:153 +#: part/templates/part/part_base.html:154 msgid "Part is virtual (not a physical part)" msgstr "" -#: part/templates/part/part_base.html:163 -#: part/templates/part/part_base.html:690 +#: part/templates/part/part_base.html:164 +#: part/templates/part/part_base.html:698 msgid "Show Part Details" msgstr "" #: part/templates/part/part_base.html:218 -#: stock/templates/stock/item_base.html:388 +msgid "Required for Orders" +msgstr "" + +#: part/templates/part/part_base.html:226 +#: stock/templates/stock/item_base.html:385 msgid "Allocated to Build Orders" msgstr "Toegewezen aan Productieorder" -#: part/templates/part/part_base.html:227 -#: stock/templates/stock/item_base.html:381 +#: part/templates/part/part_base.html:235 +#: stock/templates/stock/item_base.html:378 msgid "Allocated to Sales Orders" msgstr "Toegewezen aan verkooporders" -#: part/templates/part/part_base.html:300 +#: part/templates/part/part_base.html:308 msgid "Minimum stock level" -msgstr "" +msgstr "Minimale voorraad niveau" -#: part/templates/part/part_base.html:331 templates/js/translated/bom.js:1071 +#: part/templates/part/part_base.html:339 templates/js/translated/bom.js:1071 #: templates/js/translated/part.js:1271 templates/js/translated/part.js:2463 #: templates/js/translated/pricing.js:391 -#: templates/js/translated/pricing.js:1054 +#: templates/js/translated/pricing.js:1052 msgid "Price Range" -msgstr "" +msgstr "Prijs bereik" -#: part/templates/part/part_base.html:361 +#: part/templates/part/part_base.html:369 msgid "Latest Serial Number" msgstr "" -#: part/templates/part/part_base.html:365 -#: stock/templates/stock/item_base.html:322 +#: part/templates/part/part_base.html:373 +#: stock/templates/stock/item_base.html:319 msgid "Search for serial number" -msgstr "" +msgstr "Zoek op serienummer" -#: part/templates/part/part_base.html:453 +#: part/templates/part/part_base.html:461 msgid "Part QR Code" msgstr "" -#: part/templates/part/part_base.html:470 +#: part/templates/part/part_base.html:478 msgid "Link Barcode to Part" msgstr "" -#: part/templates/part/part_base.html:520 +#: part/templates/part/part_base.html:528 msgid "Calculate" msgstr "" -#: part/templates/part/part_base.html:537 +#: part/templates/part/part_base.html:545 msgid "Remove associated image from this part" msgstr "" -#: part/templates/part/part_base.html:588 +#: part/templates/part/part_base.html:596 msgid "No matching images found" msgstr "" -#: part/templates/part/part_base.html:684 +#: part/templates/part/part_base.html:692 msgid "Hide Part Details" msgstr "" @@ -8251,7 +8480,7 @@ msgstr "" #: part/templates/part/part_pricing.html:48 part/templates/part/prices.html:90 #: part/templates/part/prices.html:250 msgid "BOM Pricing" -msgstr "" +msgstr "Stukslijst prijs" #: part/templates/part/part_pricing.html:66 msgid "Unit Purchase Price" @@ -8263,7 +8492,7 @@ msgstr "" #: part/templates/part/part_pricing.html:83 msgid "No BOM pricing available" -msgstr "" +msgstr "Geen stuklijst BOM prijs beschikbaar" #: part/templates/part/part_pricing.html:92 msgid "Internal Price" @@ -8282,13 +8511,13 @@ msgid "Variants" msgstr "" #: part/templates/part/part_sidebar.html:14 -#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:21 +#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:22 #: stock/templates/stock/stock_app_base.html:10 #: templates/InvenTree/search.html:153 #: templates/InvenTree/settings/sidebar.html:51 #: templates/js/translated/part.js:1249 templates/js/translated/part.js:2152 #: templates/js/translated/part.js:2411 templates/js/translated/stock.js:1066 -#: templates/js/translated/stock.js:2155 templates/navbar.html:31 +#: templates/js/translated/stock.js:2156 templates/navbar.html:31 msgid "Stock" msgstr "Voorraad" @@ -8324,19 +8553,19 @@ msgstr "" #: part/templates/part/prices.html:18 #: templates/InvenTree/settings/settings_staff_js.html:80 #: templates/InvenTree/settings/user.html:24 -#: templates/js/translated/helpers.js:103 +#: templates/js/translated/helpers.js:104 #: templates/js/translated/pricing.js:628 templates/notes_buttons.html:3 #: templates/notes_buttons.html:4 msgid "Edit" msgstr "" -#: part/templates/part/prices.html:28 stock/admin.py:251 -#: stock/templates/stock/item_base.html:446 -#: templates/js/translated/company.js:1703 -#: templates/js/translated/company.js:1713 -#: templates/js/translated/stock.js:2331 +#: part/templates/part/prices.html:28 stock/admin.py:252 +#: stock/templates/stock/item_base.html:443 +#: templates/js/translated/company.js:1704 +#: templates/js/translated/company.js:1714 +#: templates/js/translated/stock.js:2332 msgid "Last Updated" -msgstr "" +msgstr "Laatst bijgewerkt" #: part/templates/part/prices.html:37 part/templates/part/prices.html:127 msgid "Price Category" @@ -8406,52 +8635,52 @@ msgid "Update Pricing" msgstr "" #: part/templates/part/stock_count.html:7 -#: templates/js/translated/model_renderers.js:228 +#: templates/js/translated/model_renderers.js:231 #: templates/js/translated/part.js:707 templates/js/translated/part.js:2147 #: templates/js/translated/part.js:2149 msgid "No Stock" -msgstr "" +msgstr "Geen voorraad" #: part/templates/part/stock_count.html:9 templates/InvenTree/index.html:120 msgid "Low Stock" -msgstr "" +msgstr "Lage voorraad" #: part/templates/part/upload_bom.html:8 msgid "Return to BOM" -msgstr "" +msgstr "Terug naar stuklijst BOM" #: part/templates/part/upload_bom.html:13 msgid "Upload Bill of Materials" -msgstr "" +msgstr "Upload stuklijst" #: part/templates/part/upload_bom.html:19 msgid "BOM upload requirements" -msgstr "" +msgstr "stuklijst BOM upload vereisten" #: part/templates/part/upload_bom.html:23 #: part/templates/part/upload_bom.html:90 msgid "Upload BOM File" -msgstr "" +msgstr "Stuklijst BOM bestand uploaden" #: part/templates/part/upload_bom.html:29 msgid "Submit BOM Data" -msgstr "" +msgstr "Stuklijst BOM gegevens verzenden" #: part/templates/part/upload_bom.html:37 msgid "Requirements for BOM upload" -msgstr "" +msgstr "Vereisten voor stuklijst BOM upload" #: part/templates/part/upload_bom.html:39 msgid "The BOM file must contain the required named columns as provided in the " -msgstr "" +msgstr "Het stuklijst BOM bestand moet de vereiste kolommen met naam en toenaam bevatten in de " #: part/templates/part/upload_bom.html:39 msgid "BOM Upload Template" -msgstr "" +msgstr "Stuklijst BOM Upload Sjabloon" #: part/templates/part/upload_bom.html:40 msgid "Each part must already exist in the database" -msgstr "" +msgstr "Elk onderdeel moet al bestaan in de database" #: part/templates/part/variant_part.html:9 msgid "Create new part variant" @@ -8486,7 +8715,7 @@ msgstr "Afbeelding van onderdeel niet gevonden" msgid "Part Pricing" msgstr "" -#: plugin/api.py:172 +#: plugin/api.py:175 msgid "Plugin cannot be deleted as it is currently active" msgstr "" @@ -8498,78 +8727,85 @@ msgstr "Geen actie gespecificeerd" msgid "No matching action found" msgstr "Geen overeenkomende actie gevonden" -#: plugin/base/barcodes/api.py:125 plugin/base/barcodes/api.py:371 -#: plugin/base/barcodes/api.py:546 +#: plugin/base/barcodes/api.py:203 msgid "No match found for barcode data" msgstr "Geen overeenkomst gevonden voor streepjescodegegevens" -#: plugin/base/barcodes/api.py:129 +#: plugin/base/barcodes/api.py:207 msgid "Match found for barcode data" msgstr "Overeenkomst gevonden voor streepjescodegegevens" -#: plugin/base/barcodes/api.py:163 plugin/base/barcodes/serializers.py:45 +#: plugin/base/barcodes/api.py:245 plugin/base/barcodes/serializers.py:72 msgid "Model is not supported" msgstr "" -#: plugin/base/barcodes/api.py:168 +#: plugin/base/barcodes/api.py:250 msgid "Model instance not found" msgstr "" -#: plugin/base/barcodes/api.py:197 -#: templates/js/translated/purchase_order.js:1468 +#: plugin/base/barcodes/api.py:279 +#: templates/js/translated/purchase_order.js:1452 msgid "Barcode matches existing item" msgstr "" -#: plugin/base/barcodes/api.py:336 +#: plugin/base/barcodes/api.py:418 msgid "No matching part data found" msgstr "" -#: plugin/base/barcodes/api.py:353 +#: plugin/base/barcodes/api.py:434 msgid "No matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:357 +#: plugin/base/barcodes/api.py:437 msgid "Multiple matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:381 +#: plugin/base/barcodes/api.py:450 plugin/base/barcodes/api.py:664 +msgid "No matching plugin found for barcode data" +msgstr "Geen overeenkomende plug-in gevonden voor barcode gegevens" + +#: plugin/base/barcodes/api.py:460 msgid "Matched supplier part" msgstr "" -#: plugin/base/barcodes/api.py:430 +#: plugin/base/barcodes/api.py:525 msgid "Item has already been received" msgstr "" -#: plugin/base/barcodes/api.py:467 +#: plugin/base/barcodes/api.py:563 msgid "No match for supplier barcode" msgstr "" -#: plugin/base/barcodes/api.py:510 +#: plugin/base/barcodes/api.py:612 msgid "Multiple matching line items found" msgstr "" -#: plugin/base/barcodes/api.py:513 +#: plugin/base/barcodes/api.py:615 msgid "No matching line item found" msgstr "" -#: plugin/base/barcodes/api.py:551 plugin/base/barcodes/api.py:558 +#: plugin/base/barcodes/api.py:661 +msgid "No sales order provided" +msgstr "Geen verkooporder opgegeven" + +#: plugin/base/barcodes/api.py:670 msgid "Barcode does not match an existing stock item" -msgstr "" +msgstr "Streepjescode komt niet overeen met een bestaand voorraadartikel" -#: plugin/base/barcodes/api.py:569 +#: plugin/base/barcodes/api.py:686 msgid "Stock item does not match line item" -msgstr "" +msgstr "Voorraad item komt niet overeen met regelitem" -#: plugin/base/barcodes/api.py:593 templates/js/translated/build.js:2780 -#: templates/js/translated/sales_order.js:1953 +#: plugin/base/barcodes/api.py:716 templates/js/translated/build.js:2798 +#: templates/js/translated/sales_order.js:1934 msgid "Insufficient stock available" msgstr "Onvoldoende voorraad beschikbaar" -#: plugin/base/barcodes/api.py:602 +#: plugin/base/barcodes/api.py:729 msgid "Stock item allocated to sales order" -msgstr "" +msgstr "Voorraad item toegewezen aan verkooporder" -#: plugin/base/barcodes/api.py:606 +#: plugin/base/barcodes/api.py:732 msgid "Not enough information" msgstr "" @@ -8591,75 +8827,75 @@ msgstr "" msgid "Purchase order does not match supplier" msgstr "" -#: plugin/base/barcodes/mixins.py:465 +#: plugin/base/barcodes/mixins.py:467 msgid "Failed to find pending line item for supplier part" msgstr "" -#: plugin/base/barcodes/mixins.py:496 +#: plugin/base/barcodes/mixins.py:498 msgid "Further information required to receive line item" msgstr "" -#: plugin/base/barcodes/mixins.py:504 +#: plugin/base/barcodes/mixins.py:506 msgid "Received purchase order line item" msgstr "" -#: plugin/base/barcodes/serializers.py:21 +#: plugin/base/barcodes/serializers.py:48 msgid "Scanned barcode data" msgstr "" -#: plugin/base/barcodes/serializers.py:30 +#: plugin/base/barcodes/serializers.py:57 msgid "Model name to generate barcode for" msgstr "" -#: plugin/base/barcodes/serializers.py:35 +#: plugin/base/barcodes/serializers.py:62 msgid "Primary key of model object to generate barcode for" msgstr "" -#: plugin/base/barcodes/serializers.py:105 +#: plugin/base/barcodes/serializers.py:132 msgid "Purchase Order to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:111 +#: plugin/base/barcodes/serializers.py:138 msgid "Purchase order is not pending" msgstr "" -#: plugin/base/barcodes/serializers.py:129 +#: plugin/base/barcodes/serializers.py:156 msgid "PurchaseOrder to receive items against" msgstr "" -#: plugin/base/barcodes/serializers.py:135 +#: plugin/base/barcodes/serializers.py:162 msgid "Purchase order has not been placed" msgstr "" -#: plugin/base/barcodes/serializers.py:143 +#: plugin/base/barcodes/serializers.py:170 msgid "Location to receive items into" msgstr "" -#: plugin/base/barcodes/serializers.py:149 +#: plugin/base/barcodes/serializers.py:176 msgid "Cannot select a structural location" msgstr "" -#: plugin/base/barcodes/serializers.py:163 +#: plugin/base/barcodes/serializers.py:190 msgid "Sales Order to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:169 +#: plugin/base/barcodes/serializers.py:196 msgid "Sales order is not pending" msgstr "" -#: plugin/base/barcodes/serializers.py:177 +#: plugin/base/barcodes/serializers.py:204 msgid "Sales order line item to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:184 +#: plugin/base/barcodes/serializers.py:211 msgid "Sales order shipment to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:190 +#: plugin/base/barcodes/serializers.py:217 msgid "Shipment has already been delivered" msgstr "" -#: plugin/base/barcodes/serializers.py:195 +#: plugin/base/barcodes/serializers.py:222 msgid "Quantity to allocate" msgstr "" @@ -8679,6 +8915,42 @@ msgstr "" msgid "No items provided to print" msgstr "" +#: plugin/base/ui/serializers.py:30 +msgid "Plugin Name" +msgstr "" + +#: plugin/base/ui/serializers.py:34 +msgid "Feature Type" +msgstr "Kenmerk type" + +#: plugin/base/ui/serializers.py:39 +msgid "Feature Label" +msgstr "" + +#: plugin/base/ui/serializers.py:44 +msgid "Feature Title" +msgstr "" + +#: plugin/base/ui/serializers.py:49 +msgid "Feature Description" +msgstr "" + +#: plugin/base/ui/serializers.py:54 +msgid "Feature Icon" +msgstr "" + +#: plugin/base/ui/serializers.py:58 +msgid "Feature Options" +msgstr "Feature opties" + +#: plugin/base/ui/serializers.py:61 +msgid "Feature Context" +msgstr "" + +#: plugin/base/ui/serializers.py:64 +msgid "Feature Source (javascript)" +msgstr "Feature bron (javascript)" + #: plugin/builtin/barcodes/inventree_barcode.py:27 msgid "InvenTree Barcodes" msgstr "" @@ -8756,7 +9028,7 @@ msgstr "" msgid "URL that is used to send messages to a slack channel" msgstr "" -#: plugin/builtin/integration/core_notifications.py:164 +#: plugin/builtin/integration/core_notifications.py:166 msgid "Open link" msgstr "" @@ -8794,11 +9066,11 @@ msgstr "" msgid "Provides support for printing using a machine" msgstr "" -#: plugin/builtin/labels/inventree_machine.py:149 +#: plugin/builtin/labels/inventree_machine.py:151 msgid "last used" msgstr "" -#: plugin/builtin/labels/inventree_machine.py:166 +#: plugin/builtin/labels/inventree_machine.py:168 msgid "Options" msgstr "" @@ -8822,7 +9094,7 @@ msgstr "" msgid "Print a border around each label" msgstr "" -#: plugin/builtin/labels/label_sheet.py:47 report/models.py:307 +#: plugin/builtin/labels/label_sheet.py:47 report/models.py:315 msgid "Landscape" msgstr "" @@ -8894,19 +9166,19 @@ msgstr "" msgid "The Supplier which acts as 'TME'" msgstr "" -#: plugin/installer.py:194 plugin/installer.py:282 +#: plugin/installer.py:199 plugin/installer.py:282 msgid "Only staff users can administer plugins" msgstr "" -#: plugin/installer.py:197 +#: plugin/installer.py:202 msgid "Plugin installation is disabled" msgstr "" -#: plugin/installer.py:248 +#: plugin/installer.py:246 msgid "Installed plugin successfully" msgstr "" -#: plugin/installer.py:254 +#: plugin/installer.py:251 #, python-brace-format msgid "Installed plugin into {path}" msgstr "" @@ -8943,10 +9215,6 @@ msgstr "" msgid "Plugin Configurations" msgstr "" -#: plugin/models.py:43 users/models.py:100 -msgid "Key" -msgstr "" - #: plugin/models.py:44 msgid "Key of plugin" msgstr "" @@ -8955,7 +9223,7 @@ msgstr "" msgid "PluginName of the plugin" msgstr "" -#: plugin/models.py:59 plugin/serializers.py:90 +#: plugin/models.py:59 plugin/serializers.py:115 msgid "Package Name" msgstr "" @@ -8984,17 +9252,17 @@ msgstr "" msgid "Package Plugin" msgstr "" -#: plugin/models.py:220 report/models.py:474 +#: plugin/models.py:259 report/models.py:482 #: templates/InvenTree/settings/plugin_settings.html:9 #: templates/js/translated/plugin.js:51 msgid "Plugin" msgstr "" -#: plugin/models.py:267 +#: plugin/models.py:306 msgid "Method" msgstr "" -#: plugin/plugin.py:270 +#: plugin/plugin.py:275 msgid "No author found" msgstr "" @@ -9053,81 +9321,157 @@ msgstr "" msgid "InvenTree Contributors" msgstr "" -#: plugin/serializers.py:81 +#: plugin/samples/integration/user_interface_sample.py:27 +msgid "Enable Part Panels" +msgstr "Onderdeel panelen inschakelen" + +#: plugin/samples/integration/user_interface_sample.py:28 +msgid "Enable custom panels for Part views" +msgstr "Schakel aangepaste panelen in voor deelweergave" + +#: plugin/samples/integration/user_interface_sample.py:33 +msgid "Enable Purchase Order Panels" +msgstr "Schakel order panelen in" + +#: plugin/samples/integration/user_interface_sample.py:34 +msgid "Enable custom panels for Purchase Order views" +msgstr "Schakel aangepaste panelen in voor inkooporders" + +#: plugin/samples/integration/user_interface_sample.py:39 +msgid "Enable Broken Panels" +msgstr "Kapotte panelen inschakelen" + +#: plugin/samples/integration/user_interface_sample.py:40 +msgid "Enable broken panels for testing" +msgstr "Schakel defecte panelen in voor testen" + +#: plugin/samples/integration/user_interface_sample.py:45 +msgid "Enable Dynamic Panel" +msgstr "Dynamisch paneel inschakelen" + +#: plugin/samples/integration/user_interface_sample.py:46 +msgid "Enable dynamic panels for testing" +msgstr "Activeer dynamische panelen om te testen" + +#: plugin/samples/integration/user_interface_sample.py:98 +msgid "Part Panel" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:131 +msgid "Broken Dashboard Item" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:133 +msgid "This is a broken dashboard item - it will not render!" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:139 +msgid "Sample Dashboard Item" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:141 +msgid "This is a sample dashboard item. It renders a simple string of HTML content." +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:147 +msgid "Context Dashboard Item" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:161 +msgid "Admin Dashboard Item" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:162 +msgid "This is an admin-only dashboard item." +msgstr "" + +#: plugin/serializers.py:82 +msgid "Source File" +msgstr "Bron bestand" + +#: plugin/serializers.py:83 +msgid "Path to the source file for admin integration" +msgstr "Pad naar het bronbestand voor administrator integratie" + +#: plugin/serializers.py:90 +msgid "Optional context data for the admin integration" +msgstr "Optionele context data voor de administrator integratie" + +#: plugin/serializers.py:106 msgid "Source URL" msgstr "" -#: plugin/serializers.py:83 +#: plugin/serializers.py:108 msgid "Source for the package - this can be a custom registry or a VCS path" msgstr "" -#: plugin/serializers.py:92 +#: plugin/serializers.py:117 msgid "Name for the Plugin Package - can also contain a version indicator" msgstr "" -#: plugin/serializers.py:99 +#: plugin/serializers.py:124 #: templates/InvenTree/settings/plugin_settings.html:42 #: templates/js/translated/plugin.js:86 msgid "Version" msgstr "" -#: plugin/serializers.py:101 +#: plugin/serializers.py:126 msgid "Version specifier for the plugin. Leave blank for latest version." msgstr "" -#: plugin/serializers.py:106 +#: plugin/serializers.py:131 msgid "Confirm plugin installation" msgstr "" -#: plugin/serializers.py:108 +#: plugin/serializers.py:133 msgid "This will install this plugin now into the current instance. The instance will go into maintenance." msgstr "" -#: plugin/serializers.py:121 +#: plugin/serializers.py:146 msgid "Installation not confirmed" msgstr "" -#: plugin/serializers.py:123 +#: plugin/serializers.py:148 msgid "Either packagename of URL must be provided" msgstr "" -#: plugin/serializers.py:161 +#: plugin/serializers.py:184 msgid "Full reload" msgstr "" -#: plugin/serializers.py:162 +#: plugin/serializers.py:185 msgid "Perform a full reload of the plugin registry" msgstr "" -#: plugin/serializers.py:168 +#: plugin/serializers.py:191 msgid "Force reload" msgstr "" -#: plugin/serializers.py:170 +#: plugin/serializers.py:193 msgid "Force a reload of the plugin registry, even if it is already loaded" msgstr "" -#: plugin/serializers.py:177 +#: plugin/serializers.py:200 msgid "Collect plugins" msgstr "" -#: plugin/serializers.py:178 +#: plugin/serializers.py:201 msgid "Collect plugins and add them to the registry" msgstr "" -#: plugin/serializers.py:205 +#: plugin/serializers.py:228 msgid "Activate Plugin" msgstr "" -#: plugin/serializers.py:206 +#: plugin/serializers.py:229 msgid "Activate this plugin" msgstr "" -#: plugin/serializers.py:226 +#: plugin/serializers.py:249 msgid "Delete configuration" msgstr "" -#: plugin/serializers.py:227 +#: plugin/serializers.py:250 msgid "Delete the plugin configuration from the database" msgstr "" @@ -9135,11 +9479,11 @@ msgstr "" msgid "No valid objects provided to template" msgstr "" -#: report/api.py:103 report/models.py:438 report/serializers.py:98 -#: report/serializers.py:148 templates/js/translated/purchase_order.js:1817 +#: report/api.py:103 report/models.py:446 report/serializers.py:99 +#: report/serializers.py:149 templates/js/translated/purchase_order.js:1801 #: templates/js/translated/return_order.js:353 -#: templates/js/translated/sales_order.js:887 -#: templates/js/translated/sales_order.js:1047 +#: templates/js/translated/sales_order.js:846 +#: templates/js/translated/sales_order.js:1020 msgid "Items" msgstr "" @@ -9167,7 +9511,11 @@ msgstr "" msgid "Error printing label" msgstr "" -#: report/api.py:375 report/api.py:411 +#: report/api.py:358 +msgid "Report saved at time of printing" +msgstr "Rapport opgeslagen op het moment van afdrukken" + +#: report/api.py:384 report/api.py:420 #, python-brace-format msgid "Template file '{template}' is missing or does not exist" msgstr "" @@ -9204,135 +9552,143 @@ msgstr "" msgid "Revision number (auto-increments)" msgstr "" -#: report/models.py:202 +#: report/models.py:168 +msgid "Attach to Model on Print" +msgstr "Bevestig aan het model bij afdrukken" + +#: report/models.py:170 +msgid "Save report output as an attachment against linked model instance when printing" +msgstr "Sla rapport output op als bijlage ten opzichte van gekoppelde model instantie bij afdrukken" + +#: report/models.py:210 msgid "Filename Pattern" msgstr "Bestandsnaam Patroon" -#: report/models.py:203 +#: report/models.py:211 msgid "Pattern for generating filenames" msgstr "" -#: report/models.py:208 +#: report/models.py:216 msgid "Template is enabled" msgstr "" -#: report/models.py:214 +#: report/models.py:222 msgid "Target model type for template" msgstr "" -#: report/models.py:234 +#: report/models.py:242 msgid "Filters" msgstr "" -#: report/models.py:235 +#: report/models.py:243 msgid "Template query filters (comma-separated list of key=value pairs)" msgstr "" -#: report/models.py:294 report/models.py:361 +#: report/models.py:302 report/models.py:369 msgid "Template file" msgstr "" -#: report/models.py:302 +#: report/models.py:310 msgid "Page size for PDF reports" msgstr "" -#: report/models.py:308 +#: report/models.py:316 msgid "Render report in landscape orientation" msgstr "" -#: report/models.py:367 +#: report/models.py:375 msgid "Width [mm]" msgstr "Breedte [mm]" -#: report/models.py:368 +#: report/models.py:376 msgid "Label width, specified in mm" msgstr "Label breedte, gespecificeerd in mm" -#: report/models.py:374 +#: report/models.py:382 msgid "Height [mm]" msgstr "Hoogte [mm]" -#: report/models.py:375 +#: report/models.py:383 msgid "Label height, specified in mm" msgstr "Label hoogte, gespecificeerd in mm" -#: report/models.py:438 +#: report/models.py:446 msgid "Number of items to process" msgstr "" -#: report/models.py:444 +#: report/models.py:452 msgid "Report generation is complete" msgstr "" -#: report/models.py:448 templates/js/translated/build.js:2349 +#: report/models.py:456 templates/js/translated/build.js:2352 msgid "Progress" msgstr "" -#: report/models.py:448 +#: report/models.py:456 msgid "Report generation progress" msgstr "" -#: report/models.py:456 +#: report/models.py:464 msgid "Report Template" msgstr "" -#: report/models.py:463 report/models.py:486 +#: report/models.py:471 report/models.py:494 msgid "Output File" msgstr "" -#: report/models.py:464 report/models.py:487 +#: report/models.py:472 report/models.py:495 msgid "Generated output file" msgstr "" -#: report/models.py:475 +#: report/models.py:483 msgid "Label output plugin" msgstr "" -#: report/models.py:479 +#: report/models.py:487 msgid "Label Template" msgstr "" -#: report/models.py:502 +#: report/models.py:510 msgid "Snippet" msgstr "" -#: report/models.py:503 +#: report/models.py:511 msgid "Report snippet file" msgstr "" -#: report/models.py:510 +#: report/models.py:518 msgid "Snippet file description" msgstr "" -#: report/models.py:528 +#: report/models.py:536 msgid "Asset" msgstr "" -#: report/models.py:529 +#: report/models.py:537 msgid "Report asset file" msgstr "" -#: report/models.py:536 +#: report/models.py:544 msgid "Asset file description" msgstr "" -#: report/serializers.py:91 +#: report/serializers.py:92 msgid "Select report template" msgstr "" -#: report/serializers.py:99 report/serializers.py:149 +#: report/serializers.py:100 report/serializers.py:150 msgid "List of item primary keys to include in the report" msgstr "" -#: report/serializers.py:132 +#: report/serializers.py:133 msgid "Select label template" msgstr "" -#: report/serializers.py:140 +#: report/serializers.py:141 msgid "Printing Plugin" msgstr "" -#: report/serializers.py:141 +#: report/serializers.py:142 msgid "Select plugin to use for label printing" msgstr "" @@ -9341,13 +9697,13 @@ msgstr "" #: report/templates/label/stocklocation_qr.html:20 #: templates/allauth_2fa/setup.html:18 msgid "QR Code" -msgstr "" +msgstr "QR Code" #: report/templates/label/part_label_code128.html:31 #: report/templates/label/stocklocation_qr_and_text.html:31 #: templates/qr_code.html:7 msgid "QR code" -msgstr "" +msgstr "QR code" #: report/templates/report/inventree_bill_of_materials_report.html:133 msgid "Materials needed" @@ -9365,9 +9721,9 @@ msgstr "" #: report/templates/report/inventree_sales_order_report.html:30 #: templates/js/translated/order.js:341 templates/js/translated/pricing.js:527 #: templates/js/translated/pricing.js:596 -#: templates/js/translated/pricing.js:834 -#: templates/js/translated/purchase_order.js:2185 -#: templates/js/translated/sales_order.js:1873 +#: templates/js/translated/pricing.js:832 +#: templates/js/translated/purchase_order.js:2169 +#: templates/js/translated/sales_order.js:1854 msgid "Unit Price" msgstr "Stukprijs" @@ -9379,20 +9735,25 @@ msgstr "" #: report/templates/report/inventree_purchase_order_report.html:72 #: report/templates/report/inventree_sales_order_report.html:72 -#: templates/js/translated/purchase_order.js:2087 -#: templates/js/translated/sales_order.js:1842 +#: templates/js/translated/purchase_order.js:2071 +#: templates/js/translated/sales_order.js:1823 #: templates/test_statistics_table.html:8 #: templates/test_statistics_table.html:19 msgid "Total" msgstr "Totaal" +#: report/templates/report/inventree_sales_order_shipment_report.html:23 +#: stock/templates/stock/stock_sidebar.html:8 +msgid "Allocations" +msgstr "Toewijzingen" + #: report/templates/report/inventree_stock_location_report.html:97 msgid "Stock location items" -msgstr "" +msgstr "Voorraad locatie items" #: report/templates/report/inventree_test_report.html:21 msgid "Stock Item Test Report" -msgstr "" +msgstr "Rapport voorraadcontrole" #: report/templates/report/inventree_test_report.html:97 msgid "Test Results" @@ -9401,17 +9762,15 @@ msgstr "" #: report/templates/report/inventree_test_report.html:102 #: templates/js/translated/stock.js:1580 msgid "Test" -msgstr "" - -#: report/templates/report/inventree_test_report.html:103 stock/models.py:2544 -msgid "Result" -msgstr "" +msgstr "Test" #: report/templates/report/inventree_test_report.html:129 +#: templates/js/translated/stock.js:1448 msgid "Pass" msgstr "" #: report/templates/report/inventree_test_report.html:131 +#: templates/js/translated/stock.js:1450 msgid "Fail" msgstr "" @@ -9420,19 +9779,20 @@ msgid "No result (required)" msgstr "" #: report/templates/report/inventree_test_report.html:140 +#: templates/js/translated/stock.js:1455 msgid "No result" msgstr "" #: report/templates/report/inventree_test_report.html:153 -#: stock/serializers.py:599 stock/templates/stock/stock_sidebar.html:16 +#: stock/serializers.py:626 stock/templates/stock/stock_sidebar.html:16 msgid "Installed Items" -msgstr "" +msgstr "Geïnstalleerde items" -#: report/templates/report/inventree_test_report.html:167 stock/admin.py:161 +#: report/templates/report/inventree_test_report.html:167 stock/admin.py:162 #: templates/js/translated/stock.js:706 templates/js/translated/stock.js:877 -#: templates/js/translated/stock.js:3194 +#: templates/js/translated/stock.js:3195 msgid "Serial" -msgstr "" +msgstr "Serienummer" #: report/templatetags/report.py:98 msgid "Asset file does not exist" @@ -9450,704 +9810,708 @@ msgstr "" msgid "company_image tag requires a Company instance" msgstr "" -#: stock/admin.py:51 stock/admin.py:171 +#: stock/admin.py:51 stock/admin.py:172 msgid "Location ID" -msgstr "" +msgstr "Locatie ID" -#: stock/admin.py:63 stock/templates/stock/location.html:128 -#: stock/templates/stock/location.html:134 +#: stock/admin.py:63 stock/templates/stock/location.html:129 +#: stock/templates/stock/location.html:135 msgid "Location Path" -msgstr "" +msgstr "Locatie pad" -#: stock/admin.py:148 +#: stock/admin.py:149 msgid "Stock Item ID" -msgstr "" +msgstr "Voorraad item ID" -#: stock/admin.py:167 +#: stock/admin.py:168 msgid "Status Code" -msgstr "" +msgstr "Status code" -#: stock/admin.py:179 +#: stock/admin.py:180 msgid "Supplier Part ID" -msgstr "" +msgstr "Leverancier deel ID" -#: stock/admin.py:184 +#: stock/admin.py:185 msgid "Supplier Part SKU" -msgstr "" +msgstr "Leverancier artikelnummer" -#: stock/admin.py:189 +#: stock/admin.py:190 msgid "Supplier ID" -msgstr "" +msgstr "Leverancier ID" -#: stock/admin.py:200 +#: stock/admin.py:201 msgid "Customer ID" -msgstr "" +msgstr "Klant ID" -#: stock/admin.py:205 stock/models.py:825 -#: stock/templates/stock/item_base.html:354 +#: stock/admin.py:206 stock/models.py:902 +#: stock/templates/stock/item_base.html:351 msgid "Installed In" -msgstr "" +msgstr "Geïnstalleerd in" -#: stock/admin.py:210 +#: stock/admin.py:211 msgid "Build ID" -msgstr "" +msgstr "Build ID" -#: stock/admin.py:220 +#: stock/admin.py:221 msgid "Sales Order ID" -msgstr "" +msgstr "Verkooporder ID" -#: stock/admin.py:225 +#: stock/admin.py:226 msgid "Purchase Order ID" -msgstr "" +msgstr "Inkooporder ID" -#: stock/admin.py:240 +#: stock/admin.py:241 msgid "Review Needed" -msgstr "" +msgstr "Beoordeling nodig" -#: stock/admin.py:245 +#: stock/admin.py:246 msgid "Delete on Deplete" -msgstr "" +msgstr "Verwijderen na uitzetten" -#: stock/admin.py:260 stock/models.py:919 -#: stock/templates/stock/item_base.html:433 -#: templates/js/translated/stock.js:2315 users/models.py:124 +#: stock/admin.py:261 stock/models.py:996 +#: stock/templates/stock/item_base.html:430 +#: templates/js/translated/stock.js:2316 users/models.py:124 msgid "Expiry Date" -msgstr "" +msgstr "Vervaldatum" #: stock/api.py:310 msgid "Filter by location depth" -msgstr "" +msgstr "Filter op locatie diepte" #: stock/api.py:330 msgid "Filter by top-level locations" -msgstr "" +msgstr "Filter op topniveau locaties" #: stock/api.py:345 msgid "Include sub-locations in filtered results" -msgstr "" +msgstr "Inclusief sublocaties in gefilterde resultaten" -#: stock/api.py:367 stock/serializers.py:1186 +#: stock/api.py:366 stock/serializers.py:1217 msgid "Parent Location" -msgstr "" +msgstr "Bovenliggende locatie" -#: stock/api.py:368 +#: stock/api.py:367 msgid "Filter by parent location" -msgstr "" +msgstr "Filter op bovenliggende locatie" #: stock/api.py:615 templates/js/translated/table_filters.js:434 msgid "External Location" -msgstr "" +msgstr "Externe locatie" #: stock/api.py:803 msgid "Part Tree" -msgstr "" +msgstr "Boomstructuur onderdeel" #: stock/api.py:833 msgid "Expiry date before" -msgstr "" +msgstr "Vervaldatum voor" #: stock/api.py:837 msgid "Expiry date after" -msgstr "" +msgstr "Vervaldatum na" -#: stock/api.py:840 stock/serializers.py:604 -#: stock/templates/stock/item_base.html:439 +#: stock/api.py:840 stock/serializers.py:631 +#: stock/templates/stock/item_base.html:436 #: templates/js/translated/table_filters.js:448 msgid "Stale" -msgstr "" +msgstr "Verouderd" #: stock/api.py:927 msgid "Quantity is required" -msgstr "" +msgstr "Hoeveelheid is vereist" -#: stock/api.py:933 +#: stock/api.py:932 msgid "Valid part must be supplied" -msgstr "" +msgstr "Geldig onderdeel moet worden opgegeven" -#: stock/api.py:964 +#: stock/api.py:959 msgid "The given supplier part does not exist" -msgstr "" +msgstr "Het opgegeven leveranciers onderdeel bestaat niet" -#: stock/api.py:974 +#: stock/api.py:969 msgid "The supplier part has a pack size defined, but flag use_pack_size not set" -msgstr "" +msgstr "Het leveranciersdeel heeft een pakketgrootte gedefinieerd, maar vlag use_pack_size niet ingesteld" -#: stock/api.py:1005 +#: stock/api.py:996 msgid "Serial numbers cannot be supplied for a non-trackable part" -msgstr "" +msgstr "Serienummers kunnen niet worden meegeleverd voor een niet traceerbaar onderdeel" -#: stock/models.py:64 +#: stock/models.py:70 msgid "Stock Location type" -msgstr "" +msgstr "Voorraad locatie soort" -#: stock/models.py:65 +#: stock/models.py:71 msgid "Stock Location types" -msgstr "" +msgstr "Voorraad locatie soorten" -#: stock/models.py:91 +#: stock/models.py:97 msgid "Default icon for all locations that have no icon set (optional)" -msgstr "" +msgstr "Standaardpictogram voor alle locaties waarvoor geen pictogram is ingesteld (optioneel)" -#: stock/models.py:131 stock/models.py:807 -#: stock/templates/stock/location.html:17 +#: stock/models.py:137 stock/models.py:884 +#: stock/templates/stock/location.html:18 #: stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "Voorraadlocatie" -#: stock/models.py:132 stock/templates/stock/location.html:183 +#: stock/models.py:138 stock/templates/stock/location.html:184 #: templates/InvenTree/search.html:166 templates/js/translated/search.js:178 #: users/models.py:205 msgid "Stock Locations" msgstr "Voorraadlocaties" -#: stock/models.py:180 stock/models.py:968 -#: stock/templates/stock/item_base.html:247 +#: stock/models.py:186 stock/models.py:1045 +#: stock/templates/stock/item_base.html:244 msgid "Owner" -msgstr "" +msgstr "Eigenaar" -#: stock/models.py:181 stock/models.py:969 +#: stock/models.py:187 stock/models.py:1046 msgid "Select Owner" -msgstr "" +msgstr "Selecteer eigenaar" -#: stock/models.py:189 +#: stock/models.py:195 msgid "Stock items may not be directly located into a structural stock locations, but may be located to child locations." -msgstr "" +msgstr "Voorraaditems kunnen niet direct worden geplaatst op een structurele voorraadlocatie, maar kunnen zich op onderliggende locaties bevinden." -#: stock/models.py:196 templates/js/translated/stock.js:2865 +#: stock/models.py:202 templates/js/translated/stock.js:2866 #: templates/js/translated/table_filters.js:250 msgid "External" -msgstr "" +msgstr "Extern" -#: stock/models.py:197 +#: stock/models.py:203 msgid "This is an external stock location" -msgstr "" +msgstr "Dit is een externe voorraadlocatie" -#: stock/models.py:203 templates/js/translated/stock.js:2874 +#: stock/models.py:209 templates/js/translated/stock.js:2875 #: templates/js/translated/table_filters.js:253 msgid "Location type" -msgstr "" +msgstr "Locatie type" -#: stock/models.py:207 +#: stock/models.py:213 msgid "Stock location type of this location" -msgstr "" +msgstr "Voorraad locatie type van deze locatie" -#: stock/models.py:279 +#: stock/models.py:285 msgid "You cannot make this stock location structural because some stock items are already located into it!" -msgstr "" +msgstr "U kunt deze voorraadlocatie niet structureel maken omdat sommige voorraadartikelen er al in liggen!" -#: stock/models.py:664 +#: stock/models.py:492 +msgid "Part must be specified" +msgstr "Onderdeel moet gespecificeerd worden" + +#: stock/models.py:741 msgid "Stock items cannot be located into structural stock locations!" -msgstr "" +msgstr "Voorraaditems kunnen niet worden geplaatst in structurele voorraadlocaties!" -#: stock/models.py:691 stock/serializers.py:480 +#: stock/models.py:768 stock/serializers.py:492 msgid "Stock item cannot be created for virtual parts" -msgstr "" +msgstr "Voorraadartikel kan niet worden aangemaakt voor virtuele onderdelen" -#: stock/models.py:708 +#: stock/models.py:785 #, python-brace-format msgid "Part type ('{self.supplier_part.part}') must be {self.part}" -msgstr "" +msgstr "Onderdeel type ('{self.supplier_part.part}') moet {self.part} zijn" -#: stock/models.py:718 stock/models.py:731 +#: stock/models.py:795 stock/models.py:808 msgid "Quantity must be 1 for item with a serial number" -msgstr "" +msgstr "Hoeveelheid moet 1 zijn voor item met een serienummer" -#: stock/models.py:721 +#: stock/models.py:798 msgid "Serial number cannot be set if quantity greater than 1" -msgstr "" +msgstr "Serienummer kan niet worden ingesteld als de hoeveelheid groter is dan 1" -#: stock/models.py:743 +#: stock/models.py:820 msgid "Item cannot belong to itself" -msgstr "" +msgstr "Item kan niet tot zichzelf behoren" -#: stock/models.py:748 +#: stock/models.py:825 msgid "Item must have a build reference if is_building=True" -msgstr "" +msgstr "Item moet een bouw referentie hebben als is_building=True" -#: stock/models.py:761 +#: stock/models.py:838 msgid "Build reference does not point to the same part object" -msgstr "" +msgstr "Bouw referentie verwijst niet naar hetzelfde deel object" -#: stock/models.py:777 +#: stock/models.py:854 msgid "Parent Stock Item" -msgstr "" +msgstr "Bovenliggend voorraad item" -#: stock/models.py:789 +#: stock/models.py:866 msgid "Base part" -msgstr "" +msgstr "Basis onderdeel" -#: stock/models.py:799 +#: stock/models.py:876 msgid "Select a matching supplier part for this stock item" -msgstr "" +msgstr "Selecteer een leveranciersdeel voor dit voorraadartikel" -#: stock/models.py:811 +#: stock/models.py:888 msgid "Where is this stock item located?" -msgstr "" +msgstr "Waar bevindt zich dit voorraaditem?" -#: stock/models.py:819 stock/serializers.py:1580 +#: stock/models.py:896 stock/serializers.py:1611 msgid "Packaging this stock item is stored in" -msgstr "" +msgstr "Het verpakken van dit voorraaditem is opgeslagen in" -#: stock/models.py:830 +#: stock/models.py:907 msgid "Is this item installed in another item?" -msgstr "" +msgstr "Is dit item geïnstalleerd in een ander item?" -#: stock/models.py:849 +#: stock/models.py:926 msgid "Serial number for this item" -msgstr "" +msgstr "Serienummer van dit item" -#: stock/models.py:863 stock/serializers.py:1563 +#: stock/models.py:940 stock/serializers.py:1594 msgid "Batch code for this stock item" -msgstr "" +msgstr "Batch code voor dit voorraaditem" -#: stock/models.py:868 +#: stock/models.py:945 msgid "Stock Quantity" -msgstr "" +msgstr "Voorraad hoeveelheid" -#: stock/models.py:878 +#: stock/models.py:955 msgid "Source Build" -msgstr "" +msgstr "Bron Bouw" -#: stock/models.py:881 +#: stock/models.py:958 msgid "Build for this stock item" -msgstr "" +msgstr "Build voor dit voorraaditem" -#: stock/models.py:888 stock/templates/stock/item_base.html:363 +#: stock/models.py:965 stock/templates/stock/item_base.html:360 msgid "Consumed By" -msgstr "" +msgstr "Verbruikt door" -#: stock/models.py:891 +#: stock/models.py:968 msgid "Build order which consumed this stock item" -msgstr "" +msgstr "Bestelling bouwen welke dit voorraadartikel heeft verbruikt" -#: stock/models.py:900 +#: stock/models.py:977 msgid "Source Purchase Order" msgstr "Inkooporder Bron" -#: stock/models.py:904 +#: stock/models.py:981 msgid "Purchase order for this stock item" msgstr "Inkooporder voor dit voorraadartikel" -#: stock/models.py:910 +#: stock/models.py:987 msgid "Destination Sales Order" msgstr "Bestemming Verkooporder" -#: stock/models.py:921 +#: stock/models.py:998 msgid "Expiry date for stock item. Stock will be considered expired after this date" -msgstr "" +msgstr "Vervaldatum voor voorraadartikel. Voorraad zal worden beschouwd als verlopen na deze datum" -#: stock/models.py:939 +#: stock/models.py:1016 msgid "Delete on deplete" -msgstr "" +msgstr "Verwijderen bij leegmaken" -#: stock/models.py:940 +#: stock/models.py:1017 msgid "Delete this Stock Item when stock is depleted" -msgstr "" +msgstr "Verwijder dit voorraadproduct wanneer de voorraad is leeg" -#: stock/models.py:960 +#: stock/models.py:1037 msgid "Single unit purchase price at time of purchase" -msgstr "" +msgstr "Enkele eenheidsprijs van de aankoop op het moment van aankoop" -#: stock/models.py:991 +#: stock/models.py:1068 msgid "Converted to part" -msgstr "" +msgstr "Omgezet tot onderdeel" -#: stock/models.py:1511 +#: stock/models.py:1600 msgid "Part is not set as trackable" -msgstr "" +msgstr "Onderdeel is niet ingesteld als traceerbaar" -#: stock/models.py:1517 +#: stock/models.py:1606 msgid "Quantity must be integer" -msgstr "" +msgstr "Hoeveelheid moet heel getal zijn" -#: stock/models.py:1525 +#: stock/models.py:1614 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({self.quantity})" -msgstr "" +msgstr "Hoeveelheid mag niet hoger zijn dan de beschikbare voorraad ({self.quantity})" -#: stock/models.py:1531 -msgid "Serial numbers must be a list of integers" -msgstr "" +#: stock/models.py:1620 +msgid "Serial numbers must be provided as a list" +msgstr "Serienummers moeten als lijst worden opgegeven" -#: stock/models.py:1536 +#: stock/models.py:1625 msgid "Quantity does not match serial numbers" -msgstr "" +msgstr "Hoeveelheid komt niet overeen met serienummers" -#: stock/models.py:1544 stock/serializers.py:726 -msgid "Serial numbers already exist" -msgstr "" - -#: stock/models.py:1641 +#: stock/models.py:1747 stock/models.py:2563 msgid "Test template does not exist" -msgstr "" +msgstr "Testsjabloon bestaat niet" -#: stock/models.py:1659 +#: stock/models.py:1765 msgid "Stock item has been assigned to a sales order" msgstr "Voorraadartikel is toegewezen aan een verkooporder" -#: stock/models.py:1663 +#: stock/models.py:1769 msgid "Stock item is installed in another item" -msgstr "" +msgstr "Voorraad item is geïnstalleerd in een ander item" -#: stock/models.py:1666 +#: stock/models.py:1772 msgid "Stock item contains other items" -msgstr "" +msgstr "Voorraadartikel bevat andere producten" -#: stock/models.py:1669 +#: stock/models.py:1775 msgid "Stock item has been assigned to a customer" -msgstr "" +msgstr "Voorraadartikel is aan een klant toegewezen" -#: stock/models.py:1672 +#: stock/models.py:1778 msgid "Stock item is currently in production" -msgstr "" +msgstr "Voorraad item is momenteel in productie" -#: stock/models.py:1675 +#: stock/models.py:1781 msgid "Serialized stock cannot be merged" -msgstr "" +msgstr "Geserialiseerde voorraad kan niet worden samengevoegd" -#: stock/models.py:1682 stock/serializers.py:1469 +#: stock/models.py:1788 stock/serializers.py:1500 msgid "Duplicate stock items" -msgstr "" +msgstr "Dupliceer voorraadartikelen" -#: stock/models.py:1686 +#: stock/models.py:1792 msgid "Stock items must refer to the same part" -msgstr "" +msgstr "Voorraadartikelen moeten hetzelfde onderdeel verwijzen" -#: stock/models.py:1694 +#: stock/models.py:1800 msgid "Stock items must refer to the same supplier part" -msgstr "" +msgstr "Voorraadartikelen moeten verwijzen naar dezelfde leveranciersdeel" -#: stock/models.py:1699 +#: stock/models.py:1805 msgid "Stock status codes must match" -msgstr "" +msgstr "De voorraad statuscodes moeten overeenkomen" -#: stock/models.py:1960 +#: stock/models.py:2066 msgid "StockItem cannot be moved as it is not in stock" -msgstr "" +msgstr "Voorraadartikel kan niet worden verplaatst omdat het niet op voorraad is" -#: stock/models.py:2343 +#: stock/models.py:2462 msgid "Stock Item Tracking" -msgstr "" +msgstr "Voorraad item volgen" -#: stock/models.py:2376 +#: stock/models.py:2495 msgid "Entry notes" -msgstr "" +msgstr "Item notities" -#: stock/models.py:2416 +#: stock/models.py:2535 msgid "Stock Item Test Result" msgstr "" -#: stock/models.py:2449 +#: stock/models.py:2566 msgid "Value must be provided for this test" -msgstr "" +msgstr "Waarde moet voor deze test worden opgegeven" -#: stock/models.py:2454 +#: stock/models.py:2570 msgid "Attachment must be uploaded for this test" -msgstr "" +msgstr "Bijlage moet worden geüpload voor deze test" -#: stock/models.py:2459 +#: stock/models.py:2575 msgid "Invalid value for this test" -msgstr "" +msgstr "Ongeldige waarde voor deze test" -#: stock/models.py:2544 +#: stock/models.py:2660 msgid "Test result" -msgstr "" +msgstr "Test resultaat" -#: stock/models.py:2551 +#: stock/models.py:2667 msgid "Test output value" -msgstr "" +msgstr "Test uitvoer waarde" -#: stock/models.py:2559 +#: stock/models.py:2675 stock/serializers.py:245 msgid "Test result attachment" -msgstr "" +msgstr "Test resultaat bijlage" -#: stock/models.py:2563 +#: stock/models.py:2679 msgid "Test notes" -msgstr "" +msgstr "Test notities" -#: stock/models.py:2571 templates/js/translated/stock.js:1633 +#: stock/models.py:2687 templates/js/translated/stock.js:1633 msgid "Test station" -msgstr "" +msgstr "Test station" -#: stock/models.py:2572 +#: stock/models.py:2688 msgid "The identifier of the test station where the test was performed" -msgstr "" +msgstr "De identificatie van het teststation waar de test werd uitgevoerd" -#: stock/models.py:2578 +#: stock/models.py:2694 msgid "Started" -msgstr "" +msgstr "Gestart" -#: stock/models.py:2579 +#: stock/models.py:2695 msgid "The timestamp of the test start" -msgstr "" +msgstr "Het tijdstip van de start test" -#: stock/models.py:2585 +#: stock/models.py:2701 msgid "Finished" -msgstr "" +msgstr "Afgerond" -#: stock/models.py:2586 +#: stock/models.py:2702 msgid "The timestamp of the test finish" -msgstr "" +msgstr "Het tijdstip van de afgeronde test" -#: stock/serializers.py:76 +#: stock/serializers.py:77 msgid "Generated batch code" -msgstr "" +msgstr "Gegenereerde batch code" -#: stock/serializers.py:85 +#: stock/serializers.py:86 msgid "Select build order" -msgstr "" +msgstr "Selecteer build order" -#: stock/serializers.py:94 +#: stock/serializers.py:95 msgid "Select stock item to generate batch code for" -msgstr "" +msgstr "Selecteer het voorraaditem om een batchcode te genereren voor" -#: stock/serializers.py:103 +#: stock/serializers.py:104 msgid "Select location to generate batch code for" -msgstr "" +msgstr "Selecteer locatie om batch code voor te genereren" -#: stock/serializers.py:112 +#: stock/serializers.py:113 msgid "Select part to generate batch code for" -msgstr "" +msgstr "Selecteer onderdeel voor het genereren van batchcode voor" -#: stock/serializers.py:121 +#: stock/serializers.py:122 msgid "Select purchase order" -msgstr "" +msgstr "Selecteer bestelling" -#: stock/serializers.py:128 +#: stock/serializers.py:129 msgid "Enter quantity for batch code" -msgstr "" +msgstr "Voer aantal voor batch code in" -#: stock/serializers.py:151 +#: stock/serializers.py:152 msgid "Generated serial number" -msgstr "" +msgstr "Gegenereerd serienummer" -#: stock/serializers.py:160 +#: stock/serializers.py:161 msgid "Select part to generate serial number for" -msgstr "" +msgstr "Selecteer onderdeel voor het genereren van het serienummer voor" -#: stock/serializers.py:168 +#: stock/serializers.py:169 msgid "Quantity of serial numbers to generate" -msgstr "" +msgstr "Aantal serienummers om te genereren" -#: stock/serializers.py:233 +#: stock/serializers.py:234 msgid "Test template for this result" -msgstr "" +msgstr "Test template voor dit resultaat" -#: stock/serializers.py:254 +#: stock/serializers.py:258 msgid "Template ID or test name must be provided" -msgstr "" +msgstr "SjabloonID of testnaam moet worden opgegeven" -#: stock/serializers.py:286 +#: stock/serializers.py:290 msgid "The test finished time cannot be earlier than the test started time" -msgstr "" +msgstr "De testtijd kan niet eerder zijn dan de starttijd van de test" -#: stock/serializers.py:323 +#: stock/serializers.py:327 msgid "Serial number is too large" -msgstr "" +msgstr "Serienummer is te groot" -#: stock/serializers.py:452 stock/templates/stock/item_base.html:193 +#: stock/serializers.py:462 stock/templates/stock/item_base.html:190 msgid "Parent Item" -msgstr "" +msgstr "Bovenliggend Item" -#: stock/serializers.py:453 +#: stock/serializers.py:463 msgid "Parent stock item" -msgstr "" +msgstr "Bovenliggende voorraad item" -#: stock/serializers.py:472 +#: stock/serializers.py:484 msgid "Use pack size when adding: the quantity defined is the number of packs" -msgstr "" +msgstr "Gebruik pakketgrootte bij het toevoegen: de hoeveelheid gedefinieerd is het aantal pakketten" -#: stock/serializers.py:596 stock/templates/stock/item_base.html:437 +#: stock/serializers.py:623 stock/templates/stock/item_base.html:434 #: templates/js/translated/table_filters.js:442 users/models.py:174 msgid "Expired" -msgstr "" +msgstr "Verlopen" -#: stock/serializers.py:602 stock/templates/stock/stock_sidebar.html:20 +#: stock/serializers.py:629 stock/templates/stock/stock_sidebar.html:20 msgid "Child Items" -msgstr "" +msgstr "Onderliggende items" -#: stock/serializers.py:606 +#: stock/serializers.py:633 msgid "Tracking Items" -msgstr "" +msgstr "Items volgen" -#: stock/serializers.py:612 +#: stock/serializers.py:639 msgid "Purchase price of this stock item, per unit or pack" -msgstr "" +msgstr "Inkoopprijs van dit voorraadartikel, per eenheid of pakket" -#: stock/serializers.py:631 +#: stock/serializers.py:658 msgid "Minimum Pricing" -msgstr "" +msgstr "Minimale prijs" -#: stock/serializers.py:637 +#: stock/serializers.py:664 msgid "Maximum Pricing" -msgstr "" +msgstr "Maximum prijs" -#: stock/serializers.py:661 +#: stock/serializers.py:688 msgid "Enter number of stock items to serialize" -msgstr "" +msgstr "Aantal voorraaditems om serienummers voor te maken" -#: stock/serializers.py:674 +#: stock/serializers.py:701 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({q})" -msgstr "" +msgstr "Hoeveelheid mag niet hoger zijn dan de beschikbare voorraad ({q})" -#: stock/serializers.py:681 +#: stock/serializers.py:708 msgid "Enter serial numbers for new items" -msgstr "" +msgstr "Voer serienummers voor nieuwe items in" -#: stock/serializers.py:692 stock/serializers.py:1426 stock/serializers.py:1682 +#: stock/serializers.py:719 stock/serializers.py:1457 stock/serializers.py:1713 msgid "Destination stock location" -msgstr "" +msgstr "Locatie van bestemming" -#: stock/serializers.py:699 +#: stock/serializers.py:726 msgid "Optional note field" -msgstr "" +msgstr "Optioneel notities veld" -#: stock/serializers.py:709 +#: stock/serializers.py:736 msgid "Serial numbers cannot be assigned to this part" -msgstr "" +msgstr "Serienummers kunnen niet worden toegewezen aan dit deel" -#: stock/serializers.py:764 +#: stock/serializers.py:756 +msgid "Serial numbers already exist" +msgstr "Serienummers bestaan al" + +#: stock/serializers.py:795 msgid "Select stock item to install" -msgstr "" +msgstr "Selecteer voorraaditem om te installeren" -#: stock/serializers.py:771 +#: stock/serializers.py:802 msgid "Quantity to Install" -msgstr "" +msgstr "Te installeren hoeveelheid" -#: stock/serializers.py:772 +#: stock/serializers.py:803 msgid "Enter the quantity of items to install" -msgstr "" +msgstr "Voer de te installeren hoeveelheid items in" -#: stock/serializers.py:777 stock/serializers.py:857 stock/serializers.py:983 -#: stock/serializers.py:1033 +#: stock/serializers.py:808 stock/serializers.py:888 stock/serializers.py:1014 +#: stock/serializers.py:1064 msgid "Add transaction note (optional)" -msgstr "" +msgstr "Transactienotitie toevoegen (optioneel)" -#: stock/serializers.py:785 +#: stock/serializers.py:816 msgid "Quantity to install must be at least 1" -msgstr "" +msgstr "Te installeren hoeveelheid moet minimaal 1 zijn" -#: stock/serializers.py:793 +#: stock/serializers.py:824 msgid "Stock item is unavailable" -msgstr "" +msgstr "Voorraadartikel is niet beschikbaar" -#: stock/serializers.py:804 +#: stock/serializers.py:835 msgid "Selected part is not in the Bill of Materials" -msgstr "" +msgstr "Het geselecteerde deel zit niet in de materialen lijst" -#: stock/serializers.py:817 +#: stock/serializers.py:848 msgid "Quantity to install must not exceed available quantity" -msgstr "" +msgstr "De te installeren hoeveelheid mag niet groter zijn dan de beschikbare hoeveelheid" -#: stock/serializers.py:852 +#: stock/serializers.py:883 msgid "Destination location for uninstalled item" -msgstr "" +msgstr "Bestemmingslocatie voor verwijderd item" -#: stock/serializers.py:903 +#: stock/serializers.py:934 msgid "Unsupported statistic type: " msgstr "" -#: stock/serializers.py:917 +#: stock/serializers.py:948 msgid "Select part to convert stock item into" msgstr "" -#: stock/serializers.py:930 +#: stock/serializers.py:961 msgid "Selected part is not a valid option for conversion" msgstr "" -#: stock/serializers.py:947 +#: stock/serializers.py:978 msgid "Cannot convert stock item with assigned SupplierPart" msgstr "" -#: stock/serializers.py:978 +#: stock/serializers.py:1009 msgid "Destination location for returned item" msgstr "" -#: stock/serializers.py:1015 +#: stock/serializers.py:1046 msgid "Select stock items to change status" msgstr "" -#: stock/serializers.py:1021 +#: stock/serializers.py:1052 msgid "No stock items selected" msgstr "" -#: stock/serializers.py:1117 stock/serializers.py:1194 -#: stock/templates/stock/location.html:162 -#: stock/templates/stock/location.html:219 +#: stock/serializers.py:1148 stock/serializers.py:1225 +#: stock/templates/stock/location.html:163 +#: stock/templates/stock/location.html:220 #: stock/templates/stock/location_sidebar.html:5 msgid "Sublocations" msgstr "Sublocaties" -#: stock/serializers.py:1187 templates/js/translated/stock.js:160 +#: stock/serializers.py:1218 templates/js/translated/stock.js:160 msgid "Parent stock location" msgstr "" -#: stock/serializers.py:1298 +#: stock/serializers.py:1329 msgid "Part must be salable" msgstr "" -#: stock/serializers.py:1302 +#: stock/serializers.py:1333 msgid "Item is allocated to a sales order" msgstr "Artikel is toegewezen aan een verkooporder" -#: stock/serializers.py:1306 +#: stock/serializers.py:1337 msgid "Item is allocated to a build order" msgstr "Artikel is toegewezen aan een productieorder" -#: stock/serializers.py:1330 +#: stock/serializers.py:1361 msgid "Customer to assign stock items" msgstr "" -#: stock/serializers.py:1336 +#: stock/serializers.py:1367 msgid "Selected company is not a customer" msgstr "" -#: stock/serializers.py:1344 +#: stock/serializers.py:1375 msgid "Stock assignment notes" msgstr "" -#: stock/serializers.py:1354 stock/serializers.py:1608 +#: stock/serializers.py:1385 stock/serializers.py:1639 msgid "A list of stock items must be provided" msgstr "" -#: stock/serializers.py:1433 +#: stock/serializers.py:1464 msgid "Stock merging notes" msgstr "" -#: stock/serializers.py:1438 +#: stock/serializers.py:1469 msgid "Allow mismatched suppliers" msgstr "" -#: stock/serializers.py:1439 +#: stock/serializers.py:1470 msgid "Allow stock items with different supplier parts to be merged" msgstr "" -#: stock/serializers.py:1444 +#: stock/serializers.py:1475 msgid "Allow mismatched status" msgstr "" -#: stock/serializers.py:1445 +#: stock/serializers.py:1476 msgid "Allow stock items with different status codes to be merged" msgstr "" -#: stock/serializers.py:1455 +#: stock/serializers.py:1486 msgid "At least two stock items must be provided" msgstr "" -#: stock/serializers.py:1522 +#: stock/serializers.py:1553 msgid "No Change" msgstr "" -#: stock/serializers.py:1551 +#: stock/serializers.py:1582 msgid "StockItem primary key value" msgstr "" -#: stock/serializers.py:1570 +#: stock/serializers.py:1601 msgid "Stock item status code" msgstr "" -#: stock/serializers.py:1598 +#: stock/serializers.py:1629 msgid "Stock transaction notes" msgstr "" @@ -10175,107 +10539,107 @@ msgstr "Afgewezen" msgid "Quarantined" msgstr "In quarantaine geplaatst" -#: stock/status_codes.py:40 +#: stock/status_codes.py:44 msgid "Legacy stock tracking entry" msgstr "Verouderde volgcode" -#: stock/status_codes.py:42 templates/js/translated/stock.js:550 +#: stock/status_codes.py:46 templates/js/translated/stock.js:550 msgid "Stock item created" msgstr "Voorraaditem gemaakt" -#: stock/status_codes.py:45 +#: stock/status_codes.py:49 msgid "Edited stock item" msgstr "Bewerken voorraadartikel" -#: stock/status_codes.py:46 +#: stock/status_codes.py:50 msgid "Assigned serial number" msgstr "Serienummer toegewezen" -#: stock/status_codes.py:49 +#: stock/status_codes.py:53 msgid "Stock counted" msgstr "Voorraad geteld" -#: stock/status_codes.py:50 +#: stock/status_codes.py:54 msgid "Stock manually added" msgstr "Voorraad handmatig toegevoegd" -#: stock/status_codes.py:51 +#: stock/status_codes.py:55 msgid "Stock manually removed" msgstr "Voorraad handmatig verwijderd" -#: stock/status_codes.py:54 +#: stock/status_codes.py:58 msgid "Location changed" msgstr "Locatie veranderd" -#: stock/status_codes.py:55 +#: stock/status_codes.py:59 msgid "Stock updated" msgstr "Voorraad bijgewerkt" -#: stock/status_codes.py:58 +#: stock/status_codes.py:62 msgid "Installed into assembly" msgstr "Gemonteerd" -#: stock/status_codes.py:59 +#: stock/status_codes.py:63 msgid "Removed from assembly" msgstr "Gedemonteerd" -#: stock/status_codes.py:61 +#: stock/status_codes.py:65 msgid "Installed component item" msgstr "Geïnstalleerd componentartikel" -#: stock/status_codes.py:62 +#: stock/status_codes.py:66 msgid "Removed component item" msgstr "Verwijderd componentartikel" -#: stock/status_codes.py:65 +#: stock/status_codes.py:69 msgid "Split from parent item" msgstr "Splits van bovenliggend item" -#: stock/status_codes.py:66 +#: stock/status_codes.py:70 msgid "Split child item" msgstr "Splits onderliggende item" -#: stock/status_codes.py:69 templates/js/translated/stock.js:1943 +#: stock/status_codes.py:73 templates/js/translated/stock.js:1944 msgid "Merged stock items" msgstr "Samengevoegde voorraadartikelen" -#: stock/status_codes.py:72 +#: stock/status_codes.py:76 msgid "Converted to variant" msgstr "Geconverteerd naar variant" -#: stock/status_codes.py:75 +#: stock/status_codes.py:79 msgid "Build order output created" msgstr "Product aangemaakt" -#: stock/status_codes.py:76 +#: stock/status_codes.py:80 msgid "Build order output completed" msgstr "Product voltooid" -#: stock/status_codes.py:77 +#: stock/status_codes.py:81 msgid "Build order output rejected" msgstr "Build order uitvoer afgewezen" -#: stock/status_codes.py:78 templates/js/translated/stock.js:1849 +#: stock/status_codes.py:82 templates/js/translated/stock.js:1849 msgid "Consumed by build order" msgstr "Verbruikt door productieorder" -#: stock/status_codes.py:81 +#: stock/status_codes.py:85 msgid "Shipped against Sales Order" msgstr "Verzonden onder verkooporder" -#: stock/status_codes.py:84 +#: stock/status_codes.py:88 msgid "Received against Purchase Order" msgstr "Ontvangen onder verkooporder" -#: stock/status_codes.py:87 +#: stock/status_codes.py:91 msgid "Returned against Return Order" msgstr "Geretourneerd onder retourorder" -#: stock/status_codes.py:90 templates/js/translated/table_filters.js:382 +#: stock/status_codes.py:94 templates/js/translated/table_filters.js:382 msgid "Sent to customer" msgstr "Naar klant verzonden" -#: stock/status_codes.py:91 +#: stock/status_codes.py:95 msgid "Returned from customer" msgstr "Geretourneerd door klant" @@ -10296,7 +10660,7 @@ msgstr "" msgid "Test Data" msgstr "" -#: stock/templates/stock/item.html:85 stock/templates/stock/item_base.html:65 +#: stock/templates/stock/item.html:85 msgid "Test Report" msgstr "" @@ -10316,7 +10680,7 @@ msgstr "" msgid "Installed Stock Items" msgstr "" -#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3354 +#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3355 msgid "Install Stock Item" msgstr "" @@ -10328,311 +10692,311 @@ msgstr "" msgid "Add Test Result" msgstr "" -#: stock/templates/stock/item_base.html:33 +#: stock/templates/stock/item_base.html:34 msgid "Locate stock item" msgstr "" -#: stock/templates/stock/item_base.html:51 +#: stock/templates/stock/item_base.html:52 msgid "Scan to Location" msgstr "Scan naar Locatie" #: stock/templates/stock/item_base.html:59 -#: stock/templates/stock/location.html:67 +#: stock/templates/stock/location.html:68 #: templates/js/translated/filters.js:434 msgid "Printing actions" msgstr "" -#: stock/templates/stock/item_base.html:75 +#: stock/templates/stock/item_base.html:64 templates/js/translated/report.js:49 +msgid "Print Report" +msgstr "" + +#: stock/templates/stock/item_base.html:72 msgid "Stock adjustment actions" msgstr "" -#: stock/templates/stock/item_base.html:79 -#: stock/templates/stock/location.html:87 templates/js/translated/stock.js:1909 +#: stock/templates/stock/item_base.html:76 +#: stock/templates/stock/location.html:88 templates/js/translated/stock.js:1909 msgid "Count stock" msgstr "Voorraad tellen" -#: stock/templates/stock/item_base.html:81 +#: stock/templates/stock/item_base.html:78 #: templates/js/translated/stock.js:1891 msgid "Add stock" msgstr "" -#: stock/templates/stock/item_base.html:82 +#: stock/templates/stock/item_base.html:79 #: templates/js/translated/stock.js:1900 msgid "Remove stock" msgstr "" -#: stock/templates/stock/item_base.html:85 +#: stock/templates/stock/item_base.html:82 msgid "Serialize stock" msgstr "" -#: stock/templates/stock/item_base.html:88 -#: stock/templates/stock/location.html:93 templates/js/translated/stock.js:1918 +#: stock/templates/stock/item_base.html:85 +#: stock/templates/stock/location.html:94 templates/js/translated/stock.js:1918 msgid "Transfer stock" msgstr "Voorraad overzetten" -#: stock/templates/stock/item_base.html:91 -#: templates/js/translated/stock.js:1972 +#: stock/templates/stock/item_base.html:88 +#: templates/js/translated/stock.js:1973 msgid "Assign to customer" msgstr "" -#: stock/templates/stock/item_base.html:94 +#: stock/templates/stock/item_base.html:91 msgid "Return to stock" msgstr "" -#: stock/templates/stock/item_base.html:97 +#: stock/templates/stock/item_base.html:94 msgid "Uninstall stock item" msgstr "" -#: stock/templates/stock/item_base.html:97 +#: stock/templates/stock/item_base.html:94 msgid "Uninstall" msgstr "" -#: stock/templates/stock/item_base.html:101 +#: stock/templates/stock/item_base.html:98 msgid "Install stock item" msgstr "" -#: stock/templates/stock/item_base.html:101 +#: stock/templates/stock/item_base.html:98 msgid "Install" msgstr "" -#: stock/templates/stock/item_base.html:115 +#: stock/templates/stock/item_base.html:112 msgid "Convert to variant" msgstr "" -#: stock/templates/stock/item_base.html:118 +#: stock/templates/stock/item_base.html:115 msgid "Duplicate stock item" -msgstr "" +msgstr "Artikel dupliceren" + +#: stock/templates/stock/item_base.html:117 +msgid "Edit stock item" +msgstr "Bewerk voorraad item" #: stock/templates/stock/item_base.html:120 -msgid "Edit stock item" -msgstr "" - -#: stock/templates/stock/item_base.html:123 msgid "Delete stock item" -msgstr "" +msgstr "Voorraadartikel verwijderen" -#: stock/templates/stock/item_base.html:169 templates/InvenTree/search.html:139 -#: templates/js/translated/build.js:2295 templates/navbar.html:38 +#: stock/templates/stock/item_base.html:166 templates/InvenTree/search.html:139 +#: templates/js/translated/build.js:2298 templates/navbar.html:38 msgid "Build" msgstr "Product" -#: stock/templates/stock/item_base.html:211 +#: stock/templates/stock/item_base.html:208 msgid "No manufacturer set" msgstr "Geen fabrikant geselecteerd" -#: stock/templates/stock/item_base.html:251 +#: stock/templates/stock/item_base.html:248 msgid "You are not in the list of owners of this item. This stock item cannot be edited." -msgstr "" +msgstr "U staat niet in de lijst van eigenaars van deze locatie. Deze voorraadlocatie kan niet worden bewerkt." -#: stock/templates/stock/item_base.html:252 -#: stock/templates/stock/location.html:146 +#: stock/templates/stock/item_base.html:249 +#: stock/templates/stock/location.html:147 msgid "Read only" -msgstr "" +msgstr "Alleen lezen" -#: stock/templates/stock/item_base.html:265 +#: stock/templates/stock/item_base.html:262 msgid "This stock item is unavailable" -msgstr "" +msgstr "Dit voorraadartikel is niet beschikbaar" -#: stock/templates/stock/item_base.html:271 +#: stock/templates/stock/item_base.html:268 msgid "This stock item is in production and cannot be edited." -msgstr "" +msgstr "Deze voorraad is in productie en kan niet worden bewerkt." -#: stock/templates/stock/item_base.html:272 +#: stock/templates/stock/item_base.html:269 msgid "Edit the stock item from the build view." -msgstr "" +msgstr "Bewerk het voorraaditem uit de build weergave." -#: stock/templates/stock/item_base.html:287 +#: stock/templates/stock/item_base.html:284 msgid "This stock item is allocated to Sales Order" msgstr "Dit voorraadartikel is toegewezen aan Verkooporder" -#: stock/templates/stock/item_base.html:295 +#: stock/templates/stock/item_base.html:292 msgid "This stock item is allocated to Build Order" msgstr "Dit voorraadartikel is toegewezen aan Productieorder" -#: stock/templates/stock/item_base.html:311 +#: stock/templates/stock/item_base.html:308 msgid "This stock item is serialized. It has a unique serial number and the quantity cannot be adjusted" -msgstr "" +msgstr "Dit voorraaditem is geserialiseerd. Het heeft een uniek serienummer en de hoeveelheid kan niet worden aangepast" -#: stock/templates/stock/item_base.html:317 +#: stock/templates/stock/item_base.html:314 msgid "previous page" msgstr "vorige pagina" -#: stock/templates/stock/item_base.html:317 +#: stock/templates/stock/item_base.html:314 msgid "Navigate to previous serial number" -msgstr "" +msgstr "Navigeer naar het vorige serienummer" -#: stock/templates/stock/item_base.html:326 +#: stock/templates/stock/item_base.html:323 msgid "next page" msgstr "volgende pagina" -#: stock/templates/stock/item_base.html:326 +#: stock/templates/stock/item_base.html:323 msgid "Navigate to next serial number" -msgstr "" +msgstr "Navigeer naar het volgende serienummer" -#: stock/templates/stock/item_base.html:398 -#: templates/js/translated/build.js:2552 +#: stock/templates/stock/item_base.html:395 +#: templates/js/translated/build.js:2559 msgid "No location set" msgstr "Geen locatie ingesteld" -#: stock/templates/stock/item_base.html:413 +#: stock/templates/stock/item_base.html:410 msgid "Tests" -msgstr "" +msgstr "Testen" -#: stock/templates/stock/item_base.html:419 +#: stock/templates/stock/item_base.html:416 msgid "This stock item has not passed all required tests" -msgstr "" +msgstr "Dit voorraadartikel heeft niet alle vereiste tests doorstaan" -#: stock/templates/stock/item_base.html:437 +#: stock/templates/stock/item_base.html:434 #, python-format msgid "This StockItem expired on %(item.expiry_date)s" -msgstr "" +msgstr "Dit voorraadartikel is verlopen op %(item.expiry_date)s" -#: stock/templates/stock/item_base.html:439 +#: stock/templates/stock/item_base.html:436 #, python-format msgid "This StockItem expires on %(item.expiry_date)s" -msgstr "" +msgstr "Dit voorraadartikel verloopt op %(item.expiry_date)s" -#: stock/templates/stock/item_base.html:455 +#: stock/templates/stock/item_base.html:452 msgid "No stocktake performed" -msgstr "" +msgstr "Er is geen voorraad uitgevoerd" -#: stock/templates/stock/item_base.html:504 -#: templates/js/translated/stock.js:2037 +#: stock/templates/stock/item_base.html:501 +#: templates/js/translated/stock.js:2038 msgid "stock item" -msgstr "" +msgstr "Voorraad item" -#: stock/templates/stock/item_base.html:527 +#: stock/templates/stock/item_base.html:524 msgid "Edit Stock Status" -msgstr "" +msgstr "Bewerk voorraad status" -#: stock/templates/stock/item_base.html:536 +#: stock/templates/stock/item_base.html:533 msgid "Stock Item QR Code" -msgstr "" +msgstr "Stock Item QR Code" -#: stock/templates/stock/item_base.html:547 +#: stock/templates/stock/item_base.html:544 msgid "Link Barcode to Stock Item" -msgstr "" +msgstr "Link streepjescode aan standaard artikel" + +#: stock/templates/stock/item_base.html:608 +msgid "Select one of the part variants listed below." +msgstr "Selecteer één van de hieronder vermelde onderdelen varianten." #: stock/templates/stock/item_base.html:611 -msgid "Select one of the part variants listed below." -msgstr "" - -#: stock/templates/stock/item_base.html:614 msgid "Warning" -msgstr "" +msgstr "Waarschuwing" -#: stock/templates/stock/item_base.html:615 +#: stock/templates/stock/item_base.html:612 msgid "This action cannot be easily undone" -msgstr "" +msgstr "Deze actie kan niet makkelijk ongedaan worden gemaakt" -#: stock/templates/stock/item_base.html:623 +#: stock/templates/stock/item_base.html:620 msgid "Convert Stock Item" -msgstr "" +msgstr "Converteer voorraad item" -#: stock/templates/stock/item_base.html:656 +#: stock/templates/stock/item_base.html:653 msgid "Return to Stock" -msgstr "" +msgstr "Terug naar voorraad" #: stock/templates/stock/item_serialize.html:5 msgid "Create serialized items from this stock item." -msgstr "" +msgstr "Creëer geserialiseerde artikelen van dit voorraadartikel." #: stock/templates/stock/item_serialize.html:7 msgid "Select quantity to serialize, and unique serial numbers." -msgstr "" +msgstr "Selecteer aantal om te serialiseren en unieke serienummers." -#: stock/templates/stock/location.html:35 +#: stock/templates/stock/location.html:36 msgid "Perform stocktake for this stock location" -msgstr "" +msgstr "Voorraadcontrole uitvoeren voor deze voorraadlocatie" -#: stock/templates/stock/location.html:42 +#: stock/templates/stock/location.html:43 msgid "Locate stock location" -msgstr "" +msgstr "Zoek voorraad locatie" -#: stock/templates/stock/location.html:60 +#: stock/templates/stock/location.html:61 msgid "Scan stock items into this location" -msgstr "" +msgstr "Scan voorraadartikelen naar deze locatie" -#: stock/templates/stock/location.html:60 +#: stock/templates/stock/location.html:61 msgid "Scan In Stock Items" -msgstr "" +msgstr "Scan items op voorraad" -#: stock/templates/stock/location.html:61 +#: stock/templates/stock/location.html:62 msgid "Scan stock container into this location" -msgstr "" +msgstr "Scan de voorraadcontainer naar deze locatie" -#: stock/templates/stock/location.html:61 +#: stock/templates/stock/location.html:62 msgid "Scan In Container" -msgstr "" +msgstr "Scan in container" -#: stock/templates/stock/location.html:72 +#: stock/templates/stock/location.html:73 msgid "Print Location Report" -msgstr "" +msgstr "Print locatie rapport" -#: stock/templates/stock/location.html:101 +#: stock/templates/stock/location.html:102 msgid "Location actions" msgstr "Locatie acties" -#: stock/templates/stock/location.html:103 +#: stock/templates/stock/location.html:104 msgid "Edit location" msgstr "Bewerk locatie" -#: stock/templates/stock/location.html:105 +#: stock/templates/stock/location.html:106 msgid "Delete location" msgstr "Verwijder locatie" -#: stock/templates/stock/location.html:135 +#: stock/templates/stock/location.html:136 msgid "Top level stock location" -msgstr "" +msgstr "Locatie voorraad topniveau" -#: stock/templates/stock/location.html:141 +#: stock/templates/stock/location.html:142 msgid "Location Owner" -msgstr "" +msgstr "Locatie eigenaar" -#: stock/templates/stock/location.html:145 +#: stock/templates/stock/location.html:146 msgid "You are not in the list of owners of this location. This stock location cannot be edited." msgstr "U staat niet in de lijst van eigenaars van deze locatie. Deze voorraadlocatie kan niet worden bewerkt." -#: stock/templates/stock/location.html:173 +#: stock/templates/stock/location.html:174 msgid "Location Type" -msgstr "" +msgstr "Locatie type" -#: stock/templates/stock/location.html:223 +#: stock/templates/stock/location.html:224 msgid "Create new stock location" msgstr "Maak nieuwe voorraadlocatie" -#: stock/templates/stock/location.html:224 +#: stock/templates/stock/location.html:225 msgid "New Location" msgstr "Nieuwe Locatie" -#: stock/templates/stock/location.html:298 -#: templates/js/translated/stock.js:2657 +#: stock/templates/stock/location.html:299 +#: templates/js/translated/stock.js:2658 msgid "stock location" -msgstr "" +msgstr "Voorraad locatie" -#: stock/templates/stock/location.html:320 +#: stock/templates/stock/location.html:321 msgid "Scanned stock container into this location" -msgstr "" +msgstr "Gescande voorraadcontainer op deze locatie" -#: stock/templates/stock/location.html:393 +#: stock/templates/stock/location.html:394 msgid "Stock Location QR Code" -msgstr "" +msgstr "Voorraadlocatie QR-code" -#: stock/templates/stock/location.html:404 +#: stock/templates/stock/location.html:405 msgid "Link Barcode to Stock Location" -msgstr "" +msgstr "Link streepjescode aan voorraad locatie" #: stock/templates/stock/stock_app_base.html:16 msgid "Loading..." -msgstr "" +msgstr "Laden..." #: stock/templates/stock/stock_sidebar.html:5 msgid "Stock Tracking" -msgstr "" - -#: stock/templates/stock/stock_sidebar.html:8 -msgid "Allocations" -msgstr "" +msgstr "Voorraad volgen" #: templates/403.html:6 templates/403.html:12 templates/403_csrf.html:7 msgid "Permission Denied" @@ -10702,7 +11066,7 @@ msgstr "" #: templates/InvenTree/index.html:77 msgid "BOM Waiting Validation" -msgstr "" +msgstr "Stuklijst BOM wacht op validatie" #: templates/InvenTree/index.html:106 msgid "Recently Updated" @@ -10710,7 +11074,7 @@ msgstr "" #: templates/InvenTree/index.html:134 msgid "Depleted Stock" -msgstr "" +msgstr "Uitgebreide voorraad" #: templates/InvenTree/index.html:148 msgid "Required for Build Orders" @@ -10718,11 +11082,11 @@ msgstr "" #: templates/InvenTree/index.html:156 msgid "Expired Stock" -msgstr "" +msgstr "Verlopen voorraad" #: templates/InvenTree/index.html:172 msgid "Stale Stock" -msgstr "" +msgstr "Verouderde voorraad" #: templates/InvenTree/index.html:199 msgid "Build Orders In Progress" @@ -10898,11 +11262,11 @@ msgstr "" #: templates/InvenTree/settings/part_stocktake.html:7 msgid "Stocktake Settings" -msgstr "" +msgstr "Voorraadcontrole instellingen" #: templates/InvenTree/settings/part_stocktake.html:25 msgid "Stocktake Reports" -msgstr "" +msgstr "Voorraadcontrole rapporten" #: templates/InvenTree/settings/physical_units.html:8 #: templates/InvenTree/settings/sidebar.html:35 @@ -11107,9 +11471,9 @@ msgid "Rate" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:81 -#: templates/js/translated/forms.js:548 templates/js/translated/helpers.js:108 +#: templates/js/translated/forms.js:548 templates/js/translated/helpers.js:109 #: templates/js/translated/part.js:395 templates/js/translated/pricing.js:629 -#: templates/js/translated/stock.js:252 users/models.py:406 +#: templates/js/translated/stock.js:252 users/models.py:408 msgid "Delete" msgstr "Verwijderen" @@ -11130,7 +11494,7 @@ msgid "No project codes found" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:158 -#: templates/js/translated/build.js:2400 +#: templates/js/translated/build.js:2403 msgid "group" msgstr "" @@ -11176,7 +11540,7 @@ msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:439 msgid "No stock location types found" -msgstr "" +msgstr "Geen voorraadlocatie typen gevonden" #: templates/InvenTree/settings/settings_staff_js.html:464 msgid "Location count" @@ -11196,7 +11560,7 @@ msgid "Delete Location Type" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:503 -#: templates/InvenTree/settings/stock.html:38 +#: templates/InvenTree/settings/stock.html:39 msgid "New Location Type" msgstr "" @@ -11253,7 +11617,7 @@ msgstr "Verkooporder Instellingen" msgid "Stock Settings" msgstr "" -#: templates/InvenTree/settings/stock.html:34 +#: templates/InvenTree/settings/stock.html:35 msgid "Stock Location Types" msgstr "" @@ -11280,7 +11644,7 @@ msgid "Unverified" msgstr "" #: templates/InvenTree/settings/user.html:80 -#: templates/js/translated/company.js:957 +#: templates/js/translated/company.js:958 msgid "Primary" msgstr "" @@ -11532,7 +11896,7 @@ msgid "Submit Bug Report" msgstr "" #: templates/about.html:91 templates/clip.html:4 -#: templates/js/translated/helpers.js:592 +#: templates/js/translated/helpers.js:598 msgid "copy to clipboard" msgstr "" @@ -11738,23 +12102,24 @@ msgstr "" msgid "Barcode Identifier" msgstr "" -#: templates/base.html:103 +#: templates/base.html:102 msgid "Server Restart Required" msgstr "" -#: templates/base.html:106 +#: templates/base.html:105 msgid "A configuration option has been changed which requires a server restart" msgstr "" -#: templates/base.html:106 templates/base.html:116 +#: templates/base.html:105 templates/base.html:115 +#: templates/socialaccount/authentication_error.html:13 msgid "Contact your system administrator for further information" msgstr "" -#: templates/base.html:113 +#: templates/base.html:112 msgid "Pending Database Migrations" msgstr "" -#: templates/base.html:116 +#: templates/base.html:115 msgid "There are pending database migrations which require attention" msgstr "" @@ -11787,7 +12152,7 @@ msgid "The following parts are low on required stock" msgstr "De volgende onderdelen hebben een lage vereiste voorraad" #: templates/email/build_order_required_stock.html:18 -#: templates/js/translated/bom.js:1674 templates/js/translated/build.js:2747 +#: templates/js/translated/bom.js:1674 templates/js/translated/build.js:2765 msgid "Required Quantity" msgstr "Vereiste Hoeveelheid" @@ -11801,7 +12166,7 @@ msgid "Click on the following link to view this part" msgstr "" #: templates/email/low_stock_notification.html:18 -#: templates/js/translated/part.js:3237 +#: templates/js/translated/part.js:3253 msgid "Minimum Quantity" msgstr "" @@ -12026,27 +12391,27 @@ msgstr "" #: templates/js/translated/bom.js:78 msgid "Create BOM Item" -msgstr "" +msgstr "Creëer stuklijst BOM Item" #: templates/js/translated/bom.js:132 msgid "Display row data" -msgstr "" +msgstr "Toon rijgegevens" #: templates/js/translated/bom.js:188 msgid "Row Data" -msgstr "" +msgstr "Rij gegevens" #: templates/js/translated/bom.js:189 templates/js/translated/bom.js:700 #: templates/js/translated/modals.js:75 templates/js/translated/modals.js:629 #: templates/js/translated/modals.js:757 templates/js/translated/modals.js:1065 -#: templates/js/translated/purchase_order.js:797 templates/modals.html:15 +#: templates/js/translated/purchase_order.js:780 templates/modals.html:15 #: templates/modals.html:27 templates/modals.html:39 templates/modals.html:50 msgid "Close" msgstr "Sluit" #: templates/js/translated/bom.js:306 msgid "Download BOM Template" -msgstr "" +msgstr "Download stuklijst BOM sjabloon" #: templates/js/translated/bom.js:351 msgid "Multi Level BOM" @@ -12058,67 +12423,67 @@ msgstr "" #: templates/js/translated/bom.js:357 msgid "Levels" -msgstr "" +msgstr "Levels" #: templates/js/translated/bom.js:358 msgid "Select maximum number of BOM levels to export (0 = all levels)" -msgstr "" +msgstr "Selecteer het maximum aantal te exporteren stuklijst BOM niveaus (0 = alle levels)" #: templates/js/translated/bom.js:365 msgid "Include Alternative Parts" -msgstr "" +msgstr "Inclusief alternatieve onderdelen" #: templates/js/translated/bom.js:366 msgid "Include alternative parts in exported BOM" -msgstr "" +msgstr "Inclusief alternatieve onderdelen in geëxporteerd stuklijst BOM" #: templates/js/translated/bom.js:371 msgid "Include Parameter Data" -msgstr "" +msgstr "Voeg parametergegevens toe" #: templates/js/translated/bom.js:372 msgid "Include part parameter data in exported BOM" -msgstr "" +msgstr "Voeg deel parameter gegevens toe aan geëxporteerde stuklijst BOM" #: templates/js/translated/bom.js:377 msgid "Include Stock Data" -msgstr "" +msgstr "Inclusief voorraadgegevens" #: templates/js/translated/bom.js:378 msgid "Include part stock data in exported BOM" -msgstr "" +msgstr "Inclusief voorraadgegevens in geëxporteerde stuklijst BOM" #: templates/js/translated/bom.js:383 msgid "Include Manufacturer Data" -msgstr "" +msgstr "Inclusief fabrikant gegevens" #: templates/js/translated/bom.js:384 msgid "Include part manufacturer data in exported BOM" -msgstr "" +msgstr "Voeg fabrikant gegevens toe aan geëxporteerd stuklijst BOM" #: templates/js/translated/bom.js:389 msgid "Include Supplier Data" -msgstr "" +msgstr "Inclusief leveranciersgegevens" #: templates/js/translated/bom.js:390 msgid "Include part supplier data in exported BOM" -msgstr "" +msgstr "Inclusief leveranciersgegevens in geëxporteerde stuklijst BOM" #: templates/js/translated/bom.js:395 msgid "Include Pricing Data" -msgstr "" +msgstr "Inclusief prijsgegevens" #: templates/js/translated/bom.js:396 msgid "Include part pricing data in exported BOM" -msgstr "" +msgstr "Voeg onderdelenprijs gegevens toe aan geëxporteerde stuklijst BOM" #: templates/js/translated/bom.js:591 msgid "Remove substitute part" -msgstr "" +msgstr "Vervanging onderdeel verwijderen" #: templates/js/translated/bom.js:645 msgid "Select and add a new substitute part using the input below" -msgstr "" +msgstr "Selecteer en voeg een nieuw vervangingsonderdeel toe met behulp van onderstaande invoer" #: templates/js/translated/bom.js:656 msgid "Are you sure you wish to remove this substitute part link?" @@ -12126,522 +12491,522 @@ msgstr "" #: templates/js/translated/bom.js:662 msgid "Remove Substitute Part" -msgstr "" +msgstr "Verwijder vervangend deel" #: templates/js/translated/bom.js:701 msgid "Add Substitute" -msgstr "" +msgstr "Plaatsvervanger toevoegen" #: templates/js/translated/bom.js:702 msgid "Edit BOM Item Substitutes" -msgstr "" +msgstr "Stuklijst BOM Item vervangingen bewerken" #: templates/js/translated/bom.js:764 msgid "All selected BOM items will be deleted" -msgstr "" +msgstr "Alle geselecteerde stuklijst BOM items zullen worden verwijderd" #: templates/js/translated/bom.js:780 msgid "Delete selected BOM items?" -msgstr "" +msgstr "Geselecteerde stuklijst BOM items verwijderen?" #: templates/js/translated/bom.js:826 msgid "Delete items" -msgstr "" +msgstr "Artikelen verwijderen" #: templates/js/translated/bom.js:936 msgid "Load BOM for subassembly" -msgstr "" +msgstr "Laad stuklijst BOM voor sub assemblage" #: templates/js/translated/bom.js:946 msgid "Substitutes Available" -msgstr "" +msgstr "Vervangingen beschikbaar" -#: templates/js/translated/bom.js:950 templates/js/translated/build.js:2673 +#: templates/js/translated/bom.js:950 templates/js/translated/build.js:2682 msgid "Variant stock allowed" -msgstr "" +msgstr "Variant voorraad toegestaan" #: templates/js/translated/bom.js:1014 msgid "Substitutes" -msgstr "" +msgstr "Vervanging" #: templates/js/translated/bom.js:1139 msgid "BOM pricing is complete" -msgstr "" +msgstr "Stuklijst BOM prijs is voltooid" #: templates/js/translated/bom.js:1144 msgid "BOM pricing is incomplete" -msgstr "" +msgstr "Stuklijst BOM prijs aanduiding is niet compleet" #: templates/js/translated/bom.js:1151 msgid "No pricing available" -msgstr "" +msgstr "Geen prijs beschikbaar" -#: templates/js/translated/bom.js:1184 templates/js/translated/build.js:2812 +#: templates/js/translated/bom.js:1184 templates/js/translated/build.js:2830 msgid "External stock" -msgstr "" +msgstr "Externe voorraad" -#: templates/js/translated/bom.js:1188 templates/js/translated/build.js:2786 -#: templates/js/translated/sales_order.js:1946 +#: templates/js/translated/bom.js:1188 templates/js/translated/build.js:2804 +#: templates/js/translated/sales_order.js:1927 msgid "No Stock Available" -msgstr "" +msgstr "Geen voorraad beschikbaar" -#: templates/js/translated/bom.js:1193 templates/js/translated/build.js:2790 +#: templates/js/translated/bom.js:1193 templates/js/translated/build.js:2808 msgid "Includes variant and substitute stock" -msgstr "" +msgstr "Inclusief variant en vervangende voorraad" -#: templates/js/translated/bom.js:1195 templates/js/translated/build.js:2792 +#: templates/js/translated/bom.js:1195 templates/js/translated/build.js:2810 #: templates/js/translated/part.js:1263 -#: templates/js/translated/sales_order.js:1943 +#: templates/js/translated/sales_order.js:1924 msgid "Includes variant stock" -msgstr "" +msgstr "Inclusief variant voorraad" -#: templates/js/translated/bom.js:1197 templates/js/translated/build.js:2794 +#: templates/js/translated/bom.js:1197 templates/js/translated/build.js:2812 msgid "Includes substitute stock" -msgstr "" +msgstr "Inclusief vervangende voorraad" -#: templates/js/translated/bom.js:1225 templates/js/translated/build.js:2777 +#: templates/js/translated/bom.js:1225 templates/js/translated/build.js:2795 msgid "Consumable item" -msgstr "" +msgstr "Verbruiksartikel" #: templates/js/translated/bom.js:1285 msgid "Validate BOM Item" -msgstr "" +msgstr "Valideren stuklijstBOM Item" #: templates/js/translated/bom.js:1287 msgid "This line has been validated" -msgstr "" +msgstr "Deze regel is gevalideerd" #: templates/js/translated/bom.js:1289 msgid "Edit substitute parts" -msgstr "" +msgstr "Bewerk vervangende onderdelen" #: templates/js/translated/bom.js:1291 templates/js/translated/bom.js:1486 msgid "Edit BOM Item" -msgstr "" +msgstr "Edit stuklijst BOM Item" #: templates/js/translated/bom.js:1293 msgid "Delete BOM Item" -msgstr "" +msgstr "Verwijder stuklijst BOM Item" #: templates/js/translated/bom.js:1313 msgid "View BOM" -msgstr "" +msgstr "Bekijk stuklijst BOM" #: templates/js/translated/bom.js:1397 msgid "No BOM items found" -msgstr "" +msgstr "Geen stuklijst BOM producten gevonden" -#: templates/js/translated/bom.js:1657 templates/js/translated/build.js:2658 +#: templates/js/translated/bom.js:1657 templates/js/translated/build.js:2667 msgid "Required Part" -msgstr "" +msgstr "Vereist onderdeel" #: templates/js/translated/bom.js:1683 msgid "Inherited from parent BOM" -msgstr "" +msgstr "Overgenomen van bovenliggende stuklijst BOM" #: templates/js/translated/build.js:143 msgid "Edit Build Order" msgstr "" -#: templates/js/translated/build.js:191 +#: templates/js/translated/build.js:194 msgid "Create Build Order" msgstr "" -#: templates/js/translated/build.js:223 +#: templates/js/translated/build.js:226 msgid "Cancel Build Order" msgstr "" -#: templates/js/translated/build.js:232 +#: templates/js/translated/build.js:235 msgid "Are you sure you wish to cancel this build?" msgstr "" -#: templates/js/translated/build.js:238 +#: templates/js/translated/build.js:241 msgid "Stock items have been allocated to this build order" msgstr "" -#: templates/js/translated/build.js:245 +#: templates/js/translated/build.js:248 msgid "There are incomplete outputs remaining for this build order" msgstr "" -#: templates/js/translated/build.js:297 +#: templates/js/translated/build.js:300 msgid "Build order is ready to be completed" msgstr "" -#: templates/js/translated/build.js:305 +#: templates/js/translated/build.js:308 msgid "This build order cannot be completed as there are incomplete outputs" msgstr "" -#: templates/js/translated/build.js:310 +#: templates/js/translated/build.js:313 msgid "Build Order is incomplete" msgstr "" -#: templates/js/translated/build.js:328 +#: templates/js/translated/build.js:331 msgid "Complete Build Order" msgstr "" -#: templates/js/translated/build.js:369 templates/js/translated/stock.js:127 +#: templates/js/translated/build.js:372 templates/js/translated/stock.js:127 #: templates/js/translated/stock.js:301 msgid "Next available serial number" msgstr "" -#: templates/js/translated/build.js:371 templates/js/translated/stock.js:129 +#: templates/js/translated/build.js:374 templates/js/translated/stock.js:129 #: templates/js/translated/stock.js:303 msgid "Latest serial number" msgstr "" -#: templates/js/translated/build.js:380 +#: templates/js/translated/build.js:383 msgid "The Bill of Materials contains trackable parts" msgstr "" -#: templates/js/translated/build.js:381 +#: templates/js/translated/build.js:384 msgid "Build outputs must be generated individually" msgstr "" -#: templates/js/translated/build.js:389 +#: templates/js/translated/build.js:392 msgid "Trackable parts can have serial numbers specified" msgstr "" -#: templates/js/translated/build.js:390 +#: templates/js/translated/build.js:393 msgid "Enter serial numbers to generate multiple single build outputs" msgstr "" -#: templates/js/translated/build.js:397 +#: templates/js/translated/build.js:400 msgid "Create Build Output" msgstr "" -#: templates/js/translated/build.js:428 +#: templates/js/translated/build.js:431 msgid "Allocate stock items to this build output" msgstr "" -#: templates/js/translated/build.js:436 +#: templates/js/translated/build.js:439 msgid "Deallocate stock from build output" msgstr "" -#: templates/js/translated/build.js:445 +#: templates/js/translated/build.js:448 msgid "Complete build output" msgstr "" -#: templates/js/translated/build.js:453 +#: templates/js/translated/build.js:456 msgid "Scrap build output" msgstr "" -#: templates/js/translated/build.js:460 +#: templates/js/translated/build.js:463 msgid "Delete build output" msgstr "" -#: templates/js/translated/build.js:480 +#: templates/js/translated/build.js:483 msgid "Are you sure you wish to deallocate the selected stock items from this build?" msgstr "" -#: templates/js/translated/build.js:498 +#: templates/js/translated/build.js:501 msgid "Deallocate Stock Items" msgstr "" -#: templates/js/translated/build.js:584 templates/js/translated/build.js:711 -#: templates/js/translated/build.js:836 +#: templates/js/translated/build.js:587 templates/js/translated/build.js:714 +#: templates/js/translated/build.js:839 msgid "Select Build Outputs" msgstr "" -#: templates/js/translated/build.js:585 templates/js/translated/build.js:712 -#: templates/js/translated/build.js:837 +#: templates/js/translated/build.js:588 templates/js/translated/build.js:715 +#: templates/js/translated/build.js:840 msgid "At least one build output must be selected" msgstr "" -#: templates/js/translated/build.js:599 +#: templates/js/translated/build.js:602 msgid "Selected build outputs will be marked as complete" msgstr "" -#: templates/js/translated/build.js:603 templates/js/translated/build.js:736 -#: templates/js/translated/build.js:859 +#: templates/js/translated/build.js:606 templates/js/translated/build.js:739 +#: templates/js/translated/build.js:862 msgid "Output" msgstr "" -#: templates/js/translated/build.js:630 +#: templates/js/translated/build.js:633 msgid "Complete Build Outputs" msgstr "" -#: templates/js/translated/build.js:727 +#: templates/js/translated/build.js:730 msgid "Selected build outputs will be marked as scrapped" msgstr "" -#: templates/js/translated/build.js:729 +#: templates/js/translated/build.js:732 msgid "Scrapped output are marked as rejected" msgstr "" -#: templates/js/translated/build.js:730 +#: templates/js/translated/build.js:733 msgid "Allocated stock items will no longer be available" msgstr "" -#: templates/js/translated/build.js:731 +#: templates/js/translated/build.js:734 msgid "The completion status of the build order will not be adjusted" msgstr "" -#: templates/js/translated/build.js:761 +#: templates/js/translated/build.js:764 msgid "Scrap Build Outputs" msgstr "" -#: templates/js/translated/build.js:851 +#: templates/js/translated/build.js:854 msgid "Selected build outputs will be deleted" msgstr "" -#: templates/js/translated/build.js:853 +#: templates/js/translated/build.js:856 msgid "Build output data will be permanently deleted" msgstr "" -#: templates/js/translated/build.js:854 +#: templates/js/translated/build.js:857 msgid "Allocated stock items will be returned to stock" msgstr "" -#: templates/js/translated/build.js:872 +#: templates/js/translated/build.js:875 msgid "Delete Build Outputs" msgstr "" -#: templates/js/translated/build.js:959 +#: templates/js/translated/build.js:962 msgid "Delete allocations" msgstr "" -#: templates/js/translated/build.js:966 +#: templates/js/translated/build.js:969 msgid "Delete Stock Allocations" msgstr "" -#: templates/js/translated/build.js:989 +#: templates/js/translated/build.js:992 msgid "No allocated stock" msgstr "" -#: templates/js/translated/build.js:1045 +#: templates/js/translated/build.js:1048 msgid "Stock item" msgstr "" -#: templates/js/translated/build.js:1070 +#: templates/js/translated/build.js:1073 msgid "Edit build allocation" msgstr "" -#: templates/js/translated/build.js:1071 +#: templates/js/translated/build.js:1074 msgid "Delete build allocation" msgstr "" -#: templates/js/translated/build.js:1089 +#: templates/js/translated/build.js:1092 msgid "Edit Build Allocation" msgstr "" -#: templates/js/translated/build.js:1102 +#: templates/js/translated/build.js:1105 msgid "Delete Build Allocation" msgstr "" -#: templates/js/translated/build.js:1133 +#: templates/js/translated/build.js:1136 msgid "No build order allocations found" msgstr "" -#: templates/js/translated/build.js:1178 +#: templates/js/translated/build.js:1181 msgid "Location not specified" msgstr "" -#: templates/js/translated/build.js:1200 +#: templates/js/translated/build.js:1203 msgid "Complete outputs" msgstr "" -#: templates/js/translated/build.js:1218 +#: templates/js/translated/build.js:1221 msgid "Scrap outputs" msgstr "" -#: templates/js/translated/build.js:1236 +#: templates/js/translated/build.js:1239 msgid "Delete outputs" msgstr "" -#: templates/js/translated/build.js:1289 +#: templates/js/translated/build.js:1292 msgid "build output" msgstr "" -#: templates/js/translated/build.js:1290 +#: templates/js/translated/build.js:1293 msgid "build outputs" msgstr "" -#: templates/js/translated/build.js:1294 +#: templates/js/translated/build.js:1297 msgid "Build output actions" msgstr "" -#: templates/js/translated/build.js:1470 +#: templates/js/translated/build.js:1473 msgid "No active build outputs found" msgstr "" -#: templates/js/translated/build.js:1563 +#: templates/js/translated/build.js:1566 msgid "Allocated Lines" msgstr "" -#: templates/js/translated/build.js:1577 +#: templates/js/translated/build.js:1580 msgid "Required Tests" msgstr "" -#: templates/js/translated/build.js:1749 -#: templates/js/translated/purchase_order.js:611 -#: templates/js/translated/sales_order.js:1207 +#: templates/js/translated/build.js:1752 +#: templates/js/translated/purchase_order.js:594 +#: templates/js/translated/sales_order.js:1173 msgid "Select Parts" msgstr "" -#: templates/js/translated/build.js:1750 -#: templates/js/translated/sales_order.js:1208 +#: templates/js/translated/build.js:1753 +#: templates/js/translated/sales_order.js:1174 msgid "You must select at least one part to allocate" msgstr "" -#: templates/js/translated/build.js:1813 -#: templates/js/translated/sales_order.js:1157 +#: templates/js/translated/build.js:1816 +#: templates/js/translated/sales_order.js:1123 msgid "Specify stock allocation quantity" msgstr "" -#: templates/js/translated/build.js:1890 +#: templates/js/translated/build.js:1893 msgid "All Parts Allocated" msgstr "" -#: templates/js/translated/build.js:1891 +#: templates/js/translated/build.js:1894 msgid "All selected parts have been fully allocated" msgstr "" -#: templates/js/translated/build.js:1905 -#: templates/js/translated/sales_order.js:1222 +#: templates/js/translated/build.js:1908 +#: templates/js/translated/sales_order.js:1188 msgid "Select source location (leave blank to take from all locations)" msgstr "" -#: templates/js/translated/build.js:1933 +#: templates/js/translated/build.js:1936 msgid "Allocate Stock Items to Build Order" msgstr "" -#: templates/js/translated/build.js:1944 -#: templates/js/translated/sales_order.js:1319 +#: templates/js/translated/build.js:1947 +#: templates/js/translated/sales_order.js:1285 msgid "No matching stock locations" msgstr "" -#: templates/js/translated/build.js:2017 -#: templates/js/translated/sales_order.js:1398 +#: templates/js/translated/build.js:2020 +#: templates/js/translated/sales_order.js:1364 msgid "No matching stock items" msgstr "" -#: templates/js/translated/build.js:2114 +#: templates/js/translated/build.js:2117 msgid "Automatic Stock Allocation" msgstr "" -#: templates/js/translated/build.js:2115 +#: templates/js/translated/build.js:2118 msgid "Stock items will be automatically allocated to this build order, according to the provided guidelines" msgstr "" -#: templates/js/translated/build.js:2117 +#: templates/js/translated/build.js:2120 msgid "If a location is specified, stock will only be allocated from that location" msgstr "" -#: templates/js/translated/build.js:2118 +#: templates/js/translated/build.js:2121 msgid "If stock is considered interchangeable, it will be allocated from the first location it is found" msgstr "" -#: templates/js/translated/build.js:2119 +#: templates/js/translated/build.js:2122 msgid "If substitute stock is allowed, it will be used where stock of the primary part cannot be found" msgstr "" -#: templates/js/translated/build.js:2149 +#: templates/js/translated/build.js:2152 msgid "Allocate Stock Items" msgstr "" -#: templates/js/translated/build.js:2254 +#: templates/js/translated/build.js:2257 msgid "No builds matching query" msgstr "" -#: templates/js/translated/build.js:2289 templates/js/translated/build.js:2652 +#: templates/js/translated/build.js:2292 templates/js/translated/build.js:2661 #: templates/js/translated/forms.js:2196 templates/js/translated/forms.js:2212 #: templates/js/translated/part.js:2322 templates/js/translated/part.js:2761 -#: templates/js/translated/stock.js:2068 templates/js/translated/stock.js:2795 +#: templates/js/translated/stock.js:2069 templates/js/translated/stock.js:2796 msgid "Select" msgstr "" -#: templates/js/translated/build.js:2303 +#: templates/js/translated/build.js:2306 msgid "Build order is overdue" msgstr "" -#: templates/js/translated/build.js:2385 templates/js/translated/stock.js:3126 +#: templates/js/translated/build.js:2388 templates/js/translated/stock.js:3127 msgid "No user information" msgstr "" -#: templates/js/translated/build.js:2561 -#: templates/js/translated/sales_order.js:1682 +#: templates/js/translated/build.js:2568 +#: templates/js/translated/sales_order.js:1663 msgid "Edit stock allocation" msgstr "" -#: templates/js/translated/build.js:2562 -#: templates/js/translated/sales_order.js:1683 +#: templates/js/translated/build.js:2569 +#: templates/js/translated/sales_order.js:1664 msgid "Delete stock allocation" msgstr "" -#: templates/js/translated/build.js:2577 +#: templates/js/translated/build.js:2584 msgid "Edit Allocation" msgstr "" -#: templates/js/translated/build.js:2589 +#: templates/js/translated/build.js:2596 msgid "Remove Allocation" msgstr "" -#: templates/js/translated/build.js:2628 +#: templates/js/translated/build.js:2636 msgid "build line" msgstr "" -#: templates/js/translated/build.js:2629 +#: templates/js/translated/build.js:2637 msgid "build lines" msgstr "" -#: templates/js/translated/build.js:2647 +#: templates/js/translated/build.js:2656 msgid "No build lines found" msgstr "" -#: templates/js/translated/build.js:2677 templates/js/translated/part.js:793 +#: templates/js/translated/build.js:2686 templates/js/translated/part.js:793 #: templates/js/translated/part.js:1209 msgid "Trackable part" msgstr "" -#: templates/js/translated/build.js:2720 +#: templates/js/translated/build.js:2729 msgid "Gets Inherited" msgstr "" -#: templates/js/translated/build.js:2730 +#: templates/js/translated/build.js:2748 msgid "Unit Quantity" msgstr "" -#: templates/js/translated/build.js:2782 -#: templates/js/translated/sales_order.js:1951 +#: templates/js/translated/build.js:2800 +#: templates/js/translated/sales_order.js:1932 msgid "Sufficient stock available" -msgstr "" +msgstr "Te veel voorraad beschikbaar" -#: templates/js/translated/build.js:2837 +#: templates/js/translated/build.js:2855 msgid "Consumable Item" msgstr "" -#: templates/js/translated/build.js:2844 +#: templates/js/translated/build.js:2862 msgid "Tracked item" msgstr "" -#: templates/js/translated/build.js:2845 +#: templates/js/translated/build.js:2863 msgid "Allocate tracked items against individual build outputs" msgstr "" -#: templates/js/translated/build.js:2853 -#: templates/js/translated/sales_order.js:2052 +#: templates/js/translated/build.js:2871 +#: templates/js/translated/sales_order.js:2033 msgid "Build stock" -msgstr "" +msgstr "Voorraad bouwen" -#: templates/js/translated/build.js:2858 templates/js/translated/stock.js:1953 +#: templates/js/translated/build.js:2876 templates/js/translated/stock.js:1954 msgid "Order stock" -msgstr "" +msgstr "Bestel voorraad" -#: templates/js/translated/build.js:2862 -#: templates/js/translated/sales_order.js:2046 +#: templates/js/translated/build.js:2880 +#: templates/js/translated/sales_order.js:2027 msgid "Allocate stock" -msgstr "" +msgstr "Voorraad toewijzen" -#: templates/js/translated/build.js:2866 +#: templates/js/translated/build.js:2884 msgid "Remove stock allocation" -msgstr "" +msgstr "Verwijder voorraad toewijzing" #: templates/js/translated/company.js:98 msgid "Add Manufacturer" msgstr "" #: templates/js/translated/company.js:111 -#: templates/js/translated/company.js:213 +#: templates/js/translated/company.js:214 msgid "Add Manufacturer Part" msgstr "" @@ -12649,231 +13014,231 @@ msgstr "" msgid "Edit Manufacturer Part" msgstr "" -#: templates/js/translated/company.js:201 +#: templates/js/translated/company.js:202 #: templates/js/translated/purchase_order.js:93 msgid "Add Supplier" msgstr "" -#: templates/js/translated/company.js:243 -#: templates/js/translated/purchase_order.js:318 +#: templates/js/translated/company.js:244 +#: templates/js/translated/purchase_order.js:301 msgid "Add Supplier Part" msgstr "" -#: templates/js/translated/company.js:344 +#: templates/js/translated/company.js:345 msgid "All selected supplier parts will be deleted" msgstr "" -#: templates/js/translated/company.js:360 +#: templates/js/translated/company.js:361 msgid "Delete Supplier Parts" msgstr "" -#: templates/js/translated/company.js:466 +#: templates/js/translated/company.js:467 msgid "Add new Company" msgstr "" -#: templates/js/translated/company.js:546 +#: templates/js/translated/company.js:547 msgid "Parts Supplied" msgstr "" -#: templates/js/translated/company.js:555 +#: templates/js/translated/company.js:556 msgid "Parts Manufactured" msgstr "" -#: templates/js/translated/company.js:570 +#: templates/js/translated/company.js:571 msgid "No company information found" msgstr "" -#: templates/js/translated/company.js:619 +#: templates/js/translated/company.js:620 msgid "Create New Contact" msgstr "" -#: templates/js/translated/company.js:635 -#: templates/js/translated/company.js:758 +#: templates/js/translated/company.js:636 +#: templates/js/translated/company.js:759 msgid "Edit Contact" msgstr "" -#: templates/js/translated/company.js:672 +#: templates/js/translated/company.js:673 msgid "All selected contacts will be deleted" msgstr "" -#: templates/js/translated/company.js:678 -#: templates/js/translated/company.js:742 +#: templates/js/translated/company.js:679 +#: templates/js/translated/company.js:743 msgid "Role" msgstr "" -#: templates/js/translated/company.js:686 +#: templates/js/translated/company.js:687 msgid "Delete Contacts" msgstr "" -#: templates/js/translated/company.js:717 +#: templates/js/translated/company.js:718 msgid "No contacts found" msgstr "" -#: templates/js/translated/company.js:730 +#: templates/js/translated/company.js:731 msgid "Phone Number" msgstr "" -#: templates/js/translated/company.js:736 +#: templates/js/translated/company.js:737 msgid "Email Address" msgstr "" -#: templates/js/translated/company.js:762 +#: templates/js/translated/company.js:763 msgid "Delete Contact" msgstr "" -#: templates/js/translated/company.js:859 +#: templates/js/translated/company.js:860 msgid "Create New Address" msgstr "" -#: templates/js/translated/company.js:874 -#: templates/js/translated/company.js:1035 +#: templates/js/translated/company.js:875 +#: templates/js/translated/company.js:1036 msgid "Edit Address" msgstr "" -#: templates/js/translated/company.js:909 +#: templates/js/translated/company.js:910 msgid "All selected addresses will be deleted" msgstr "" -#: templates/js/translated/company.js:923 +#: templates/js/translated/company.js:924 msgid "Delete Addresses" msgstr "" -#: templates/js/translated/company.js:950 +#: templates/js/translated/company.js:951 msgid "No addresses found" msgstr "" -#: templates/js/translated/company.js:989 +#: templates/js/translated/company.js:990 msgid "Postal city" msgstr "" -#: templates/js/translated/company.js:995 +#: templates/js/translated/company.js:996 msgid "State/province" msgstr "" -#: templates/js/translated/company.js:1007 +#: templates/js/translated/company.js:1008 msgid "Courier notes" msgstr "" -#: templates/js/translated/company.js:1013 +#: templates/js/translated/company.js:1014 msgid "Internal notes" msgstr "" -#: templates/js/translated/company.js:1039 +#: templates/js/translated/company.js:1040 msgid "Delete Address" msgstr "" -#: templates/js/translated/company.js:1112 +#: templates/js/translated/company.js:1113 msgid "All selected manufacturer parts will be deleted" msgstr "" -#: templates/js/translated/company.js:1127 +#: templates/js/translated/company.js:1128 msgid "Delete Manufacturer Parts" msgstr "" -#: templates/js/translated/company.js:1161 +#: templates/js/translated/company.js:1162 msgid "All selected parameters will be deleted" msgstr "" -#: templates/js/translated/company.js:1175 +#: templates/js/translated/company.js:1176 msgid "Delete Parameters" msgstr "" -#: templates/js/translated/company.js:1191 -#: templates/js/translated/company.js:1479 templates/js/translated/part.js:2250 +#: templates/js/translated/company.js:1192 +#: templates/js/translated/company.js:1480 templates/js/translated/part.js:2250 msgid "Order parts" msgstr "" -#: templates/js/translated/company.js:1208 +#: templates/js/translated/company.js:1209 msgid "Delete manufacturer parts" msgstr "" -#: templates/js/translated/company.js:1240 +#: templates/js/translated/company.js:1241 msgid "Manufacturer part actions" msgstr "" -#: templates/js/translated/company.js:1259 +#: templates/js/translated/company.js:1260 msgid "No manufacturer parts found" msgstr "" -#: templates/js/translated/company.js:1279 -#: templates/js/translated/company.js:1567 templates/js/translated/part.js:801 +#: templates/js/translated/company.js:1280 +#: templates/js/translated/company.js:1568 templates/js/translated/part.js:801 #: templates/js/translated/part.js:1217 msgid "Template part" msgstr "" -#: templates/js/translated/company.js:1283 -#: templates/js/translated/company.js:1571 templates/js/translated/part.js:805 +#: templates/js/translated/company.js:1284 +#: templates/js/translated/company.js:1572 templates/js/translated/part.js:805 #: templates/js/translated/part.js:1221 msgid "Assembled part" msgstr "" -#: templates/js/translated/company.js:1403 templates/js/translated/part.js:1471 +#: templates/js/translated/company.js:1404 templates/js/translated/part.js:1471 msgid "No parameters found" msgstr "" -#: templates/js/translated/company.js:1438 templates/js/translated/part.js:1534 +#: templates/js/translated/company.js:1439 templates/js/translated/part.js:1534 msgid "Edit parameter" msgstr "" -#: templates/js/translated/company.js:1439 templates/js/translated/part.js:1535 +#: templates/js/translated/company.js:1440 templates/js/translated/part.js:1535 msgid "Delete parameter" msgstr "" -#: templates/js/translated/company.js:1456 templates/js/translated/part.js:1440 +#: templates/js/translated/company.js:1457 templates/js/translated/part.js:1440 msgid "Edit Parameter" msgstr "" -#: templates/js/translated/company.js:1465 templates/js/translated/part.js:1556 +#: templates/js/translated/company.js:1466 templates/js/translated/part.js:1556 msgid "Delete Parameter" msgstr "" -#: templates/js/translated/company.js:1496 +#: templates/js/translated/company.js:1497 msgid "Delete supplier parts" msgstr "" -#: templates/js/translated/company.js:1546 +#: templates/js/translated/company.js:1547 msgid "No supplier parts found" msgstr "" -#: templates/js/translated/company.js:1664 +#: templates/js/translated/company.js:1665 msgid "Base Units" msgstr "" -#: templates/js/translated/company.js:1694 +#: templates/js/translated/company.js:1695 msgid "Availability" msgstr "" -#: templates/js/translated/company.js:1725 +#: templates/js/translated/company.js:1726 msgid "Edit supplier part" msgstr "" -#: templates/js/translated/company.js:1726 +#: templates/js/translated/company.js:1727 msgid "Delete supplier part" msgstr "" -#: templates/js/translated/company.js:1779 +#: templates/js/translated/company.js:1780 #: templates/js/translated/pricing.js:694 msgid "Delete Price Break" msgstr "" -#: templates/js/translated/company.js:1789 +#: templates/js/translated/company.js:1790 #: templates/js/translated/pricing.js:712 msgid "Edit Price Break" msgstr "" -#: templates/js/translated/company.js:1804 +#: templates/js/translated/company.js:1805 msgid "No price break information found" msgstr "" -#: templates/js/translated/company.js:1833 +#: templates/js/translated/company.js:1834 msgid "Last updated" msgstr "" -#: templates/js/translated/company.js:1840 +#: templates/js/translated/company.js:1841 msgid "Edit price break" msgstr "" -#: templates/js/translated/company.js:1841 +#: templates/js/translated/company.js:1842 msgid "Delete price break" msgstr "" @@ -12977,19 +13342,19 @@ msgstr "" msgid "Select Columns" msgstr "" -#: templates/js/translated/helpers.js:80 +#: templates/js/translated/helpers.js:81 msgid "YES" msgstr "" -#: templates/js/translated/helpers.js:83 +#: templates/js/translated/helpers.js:84 msgid "NO" msgstr "" -#: templates/js/translated/helpers.js:96 +#: templates/js/translated/helpers.js:97 msgid "True" msgstr "" -#: templates/js/translated/helpers.js:97 +#: templates/js/translated/helpers.js:98 msgid "False" msgstr "" @@ -13131,7 +13496,7 @@ msgid "Delete Line" msgstr "" #: templates/js/translated/order.js:306 -#: templates/js/translated/purchase_order.js:2060 +#: templates/js/translated/purchase_order.js:2044 msgid "No line items found" msgstr "" @@ -13166,7 +13531,7 @@ msgstr "" #: templates/js/translated/part.js:334 templates/js/translated/stock.js:147 #: templates/js/translated/stock.js:182 msgid "Icon (optional) - Explore all available icons on" -msgstr "" +msgstr "Pictogram (optioneel) - Ontdek alle beschikbare pictogrammen op" #: templates/js/translated/part.js:355 msgid "Create Part Category" @@ -13242,7 +13607,7 @@ msgstr "" #: templates/js/translated/part.js:551 msgid "Any stock items for this part will be deleted" -msgstr "" +msgstr "Alle voorraadartikelen voor dit onderdeel worden verwijderd" #: templates/js/translated/part.js:552 msgid "This part will be removed from any Bills of Material" @@ -13274,7 +13639,7 @@ msgstr "" #: templates/js/translated/part.js:622 msgid "Validating the BOM will mark each line item as valid" -msgstr "" +msgstr "Het valideren van de stuklijst BOM zal elk regelitem als geldig markeren" #: templates/js/translated/part.js:632 msgid "Validate Bill of Materials" @@ -13291,11 +13656,11 @@ msgstr "" #: templates/js/translated/part.js:688 #: templates/js/translated/table_filters.js:755 msgid "Low stock" -msgstr "" +msgstr "Lage voorraad" #: templates/js/translated/part.js:691 msgid "No stock available" -msgstr "" +msgstr "Geen voorraad beschikbaar" #: templates/js/translated/part.js:751 msgid "Demand" @@ -13319,31 +13684,31 @@ msgstr "" #: templates/js/translated/part.js:896 msgid "Schedule generation of a new stocktake report." -msgstr "" +msgstr "Plan het genereren van een nieuw voorraad verslag." #: templates/js/translated/part.js:896 msgid "Once complete, the stocktake report will be available for download." -msgstr "" +msgstr "Eenmaal voltooid, zal het voorraadrapport beschikbaar zijn om te downloaden." #: templates/js/translated/part.js:904 msgid "Generate Stocktake Report" -msgstr "" +msgstr "Voorraadcontrole rapport genereren" #: templates/js/translated/part.js:908 msgid "Stocktake report scheduled" -msgstr "" +msgstr "Voorraadcontrole verslag gepland" #: templates/js/translated/part.js:1057 msgid "No stocktake information available" -msgstr "" +msgstr "Geen voorraadinformatie beschikbaar" #: templates/js/translated/part.js:1115 templates/js/translated/part.js:1151 msgid "Edit Stocktake Entry" -msgstr "" +msgstr "Invoer voorraadopname bewerken" #: templates/js/translated/part.js:1119 templates/js/translated/part.js:1161 msgid "Delete Stocktake Entry" -msgstr "" +msgstr "Voorraad invoer verwijderen" #: templates/js/translated/part.js:1288 msgid "No variants found" @@ -13366,19 +13731,19 @@ msgid "Delete Part Parameter Template" msgstr "" #: templates/js/translated/part.js:1723 -#: templates/js/translated/purchase_order.js:1724 +#: templates/js/translated/purchase_order.js:1708 msgid "No purchase orders found" msgstr "" #: templates/js/translated/part.js:1867 -#: templates/js/translated/purchase_order.js:2223 +#: templates/js/translated/purchase_order.js:2207 #: templates/js/translated/return_order.js:754 -#: templates/js/translated/sales_order.js:1911 +#: templates/js/translated/sales_order.js:1892 msgid "This line item is overdue" msgstr "" #: templates/js/translated/part.js:1913 -#: templates/js/translated/purchase_order.js:2290 +#: templates/js/translated/purchase_order.js:2274 msgid "Receive line item" msgstr "" @@ -13419,9 +13784,9 @@ msgid "No category" msgstr "" #: templates/js/translated/part.js:2550 templates/js/translated/part.js:2680 -#: templates/js/translated/stock.js:2754 +#: templates/js/translated/stock.js:2755 msgid "Display as list" -msgstr "" +msgstr "Weergeven als lijst" #: templates/js/translated/part.js:2566 msgid "Display as grid" @@ -13431,9 +13796,9 @@ msgstr "" msgid "No subcategories found" msgstr "" -#: templates/js/translated/part.js:2700 templates/js/translated/stock.js:2774 +#: templates/js/translated/part.js:2700 templates/js/translated/stock.js:2775 msgid "Display as tree" -msgstr "" +msgstr "Weergeven als structuur" #: templates/js/translated/part.js:2780 msgid "Load Subcategories" @@ -13483,25 +13848,25 @@ msgstr "" msgid "Speculative" msgstr "" -#: templates/js/translated/part.js:3128 +#: templates/js/translated/part.js:3144 msgid "No scheduling information available for this part" msgstr "" -#: templates/js/translated/part.js:3134 +#: templates/js/translated/part.js:3150 msgid "Error fetching scheduling information for this part" msgstr "" -#: templates/js/translated/part.js:3230 -msgid "Scheduled Stock Quantities" -msgstr "" - #: templates/js/translated/part.js:3246 +msgid "Scheduled Stock Quantities" +msgstr "Geplande voorraad hoeveelheid" + +#: templates/js/translated/part.js:3262 msgid "Maximum Quantity" msgstr "" -#: templates/js/translated/part.js:3291 +#: templates/js/translated/part.js:3307 msgid "Minimum Stock Level" -msgstr "" +msgstr "Minimum voorraad niveau" #: templates/js/translated/plugin.js:46 msgid "No plugins found" @@ -13557,7 +13922,7 @@ msgstr "" #: templates/js/translated/pricing.js:321 msgid "No BOM data available" -msgstr "" +msgstr "Geen stuklijst BOM gegevens beschikbaar" #: templates/js/translated/pricing.js:463 msgid "No supplier pricing data available" @@ -13575,267 +13940,243 @@ msgstr "" msgid "Purchase Price History" msgstr "" -#: templates/js/translated/pricing.js:894 +#: templates/js/translated/pricing.js:892 msgid "No sales history data available" msgstr "" -#: templates/js/translated/pricing.js:916 +#: templates/js/translated/pricing.js:914 msgid "Sale Price History" msgstr "" -#: templates/js/translated/pricing.js:1005 +#: templates/js/translated/pricing.js:1003 msgid "No variant data available" msgstr "" -#: templates/js/translated/pricing.js:1045 +#: templates/js/translated/pricing.js:1043 msgid "Variant Part" msgstr "" -#: templates/js/translated/purchase_order.js:169 -msgid "Select purchase order to duplicate" -msgstr "" - -#: templates/js/translated/purchase_order.js:176 -msgid "Duplicate Line Items" -msgstr "" - -#: templates/js/translated/purchase_order.js:177 -msgid "Duplicate all line items from the selected order" -msgstr "" - -#: templates/js/translated/purchase_order.js:184 -msgid "Duplicate Extra Lines" -msgstr "" - -#: templates/js/translated/purchase_order.js:185 -msgid "Duplicate extra line items from the selected order" -msgstr "" - -#: templates/js/translated/purchase_order.js:206 +#: templates/js/translated/purchase_order.js:188 msgid "Edit Purchase Order" msgstr "" -#: templates/js/translated/purchase_order.js:223 +#: templates/js/translated/purchase_order.js:205 msgid "Duplication Options" msgstr "" -#: templates/js/translated/purchase_order.js:431 +#: templates/js/translated/purchase_order.js:414 msgid "Complete Purchase Order" msgstr "" -#: templates/js/translated/purchase_order.js:448 +#: templates/js/translated/purchase_order.js:431 #: templates/js/translated/return_order.js:210 -#: templates/js/translated/sales_order.js:552 +#: templates/js/translated/sales_order.js:511 msgid "Mark this order as complete?" msgstr "" -#: templates/js/translated/purchase_order.js:454 +#: templates/js/translated/purchase_order.js:437 msgid "All line items have been received" msgstr "" -#: templates/js/translated/purchase_order.js:459 +#: templates/js/translated/purchase_order.js:442 msgid "This order has line items which have not been marked as received." msgstr "" -#: templates/js/translated/purchase_order.js:460 +#: templates/js/translated/purchase_order.js:443 msgid "Completing this order means that the order and line items will no longer be editable." msgstr "" -#: templates/js/translated/purchase_order.js:483 +#: templates/js/translated/purchase_order.js:466 msgid "Cancel Purchase Order" msgstr "" -#: templates/js/translated/purchase_order.js:488 +#: templates/js/translated/purchase_order.js:471 msgid "Are you sure you wish to cancel this purchase order?" msgstr "" -#: templates/js/translated/purchase_order.js:494 +#: templates/js/translated/purchase_order.js:477 msgid "This purchase order can not be cancelled" msgstr "" -#: templates/js/translated/purchase_order.js:515 +#: templates/js/translated/purchase_order.js:498 #: templates/js/translated/return_order.js:164 msgid "After placing this order, line items will no longer be editable." msgstr "" -#: templates/js/translated/purchase_order.js:520 +#: templates/js/translated/purchase_order.js:503 msgid "Issue Purchase Order" msgstr "" -#: templates/js/translated/purchase_order.js:612 +#: templates/js/translated/purchase_order.js:595 msgid "At least one purchaseable part must be selected" msgstr "" -#: templates/js/translated/purchase_order.js:637 +#: templates/js/translated/purchase_order.js:620 msgid "Quantity to order" msgstr "" -#: templates/js/translated/purchase_order.js:646 +#: templates/js/translated/purchase_order.js:629 msgid "New supplier part" msgstr "" -#: templates/js/translated/purchase_order.js:664 +#: templates/js/translated/purchase_order.js:647 msgid "New purchase order" msgstr "" -#: templates/js/translated/purchase_order.js:705 +#: templates/js/translated/purchase_order.js:688 msgid "Add to purchase order" msgstr "" -#: templates/js/translated/purchase_order.js:755 +#: templates/js/translated/purchase_order.js:738 msgid "Merge" msgstr "" -#: templates/js/translated/purchase_order.js:859 +#: templates/js/translated/purchase_order.js:842 msgid "No matching supplier parts" msgstr "" -#: templates/js/translated/purchase_order.js:878 +#: templates/js/translated/purchase_order.js:861 msgid "No matching purchase orders" msgstr "" -#: templates/js/translated/purchase_order.js:1073 +#: templates/js/translated/purchase_order.js:1056 #: templates/js/translated/return_order.js:490 msgid "Select Line Items" msgstr "" -#: templates/js/translated/purchase_order.js:1074 +#: templates/js/translated/purchase_order.js:1057 #: templates/js/translated/return_order.js:491 msgid "At least one line item must be selected" msgstr "" -#: templates/js/translated/purchase_order.js:1104 +#: templates/js/translated/purchase_order.js:1087 msgid "Received Quantity" msgstr "" -#: templates/js/translated/purchase_order.js:1115 +#: templates/js/translated/purchase_order.js:1098 msgid "Quantity to receive" msgstr "" -#: templates/js/translated/purchase_order.js:1170 +#: templates/js/translated/purchase_order.js:1153 #: templates/js/translated/stock.js:1215 msgid "Specify packaging for incoming stock items" -msgstr "" +msgstr "Specificeer verpakking voor inkomende voorraaditems" -#: templates/js/translated/purchase_order.js:1223 +#: templates/js/translated/purchase_order.js:1206 msgid "Stock Status" -msgstr "" +msgstr "Voorraad staat" -#: templates/js/translated/purchase_order.js:1237 +#: templates/js/translated/purchase_order.js:1220 msgid "Add barcode" msgstr "" -#: templates/js/translated/purchase_order.js:1238 +#: templates/js/translated/purchase_order.js:1221 msgid "Remove barcode" msgstr "" -#: templates/js/translated/purchase_order.js:1241 +#: templates/js/translated/purchase_order.js:1224 msgid "Specify location" msgstr "" -#: templates/js/translated/purchase_order.js:1249 +#: templates/js/translated/purchase_order.js:1232 msgid "Add batch code" msgstr "" -#: templates/js/translated/purchase_order.js:1259 +#: templates/js/translated/purchase_order.js:1242 msgid "Specify packaging" msgstr "" -#: templates/js/translated/purchase_order.js:1270 +#: templates/js/translated/purchase_order.js:1253 msgid "Add serial numbers" msgstr "" -#: templates/js/translated/purchase_order.js:1281 +#: templates/js/translated/purchase_order.js:1264 msgid "Add note" msgstr "" -#: templates/js/translated/purchase_order.js:1338 +#: templates/js/translated/purchase_order.js:1321 msgid "Serials" msgstr "" -#: templates/js/translated/purchase_order.js:1368 +#: templates/js/translated/purchase_order.js:1351 msgid "Order Code" msgstr "" -#: templates/js/translated/purchase_order.js:1370 +#: templates/js/translated/purchase_order.js:1353 msgid "Quantity to Receive" msgstr "" -#: templates/js/translated/purchase_order.js:1395 +#: templates/js/translated/purchase_order.js:1379 #: templates/js/translated/return_order.js:559 msgid "Confirm receipt of items" msgstr "" -#: templates/js/translated/purchase_order.js:1396 +#: templates/js/translated/purchase_order.js:1380 msgid "Receive Purchase Order Items" msgstr "" -#: templates/js/translated/purchase_order.js:1464 +#: templates/js/translated/purchase_order.js:1448 msgid "Scan Item Barcode" msgstr "" -#: templates/js/translated/purchase_order.js:1465 +#: templates/js/translated/purchase_order.js:1449 msgid "Scan barcode on incoming item (must not match any existing stock items)" -msgstr "" +msgstr "Scan de streepjescode op het inkomende item (mag niet overeenkomen met bestaande voorraadartikelen)" -#: templates/js/translated/purchase_order.js:1479 +#: templates/js/translated/purchase_order.js:1463 msgid "Invalid barcode data" msgstr "" -#: templates/js/translated/purchase_order.js:1751 +#: templates/js/translated/purchase_order.js:1735 #: templates/js/translated/return_order.js:285 -#: templates/js/translated/sales_order.js:810 -#: templates/js/translated/sales_order.js:1034 +#: templates/js/translated/sales_order.js:769 +#: templates/js/translated/sales_order.js:1007 msgid "Order is overdue" msgstr "" -#: templates/js/translated/purchase_order.js:1913 +#: templates/js/translated/purchase_order.js:1897 msgid "All selected Line items will be deleted" msgstr "" -#: templates/js/translated/purchase_order.js:1931 +#: templates/js/translated/purchase_order.js:1915 msgid "Delete selected Line items?" msgstr "" -#: templates/js/translated/purchase_order.js:1986 -#: templates/js/translated/sales_order.js:2106 +#: templates/js/translated/purchase_order.js:1970 +#: templates/js/translated/sales_order.js:2087 msgid "Duplicate Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2001 +#: templates/js/translated/purchase_order.js:1985 #: templates/js/translated/return_order.js:475 #: templates/js/translated/return_order.js:667 -#: templates/js/translated/sales_order.js:2119 +#: templates/js/translated/sales_order.js:2100 msgid "Edit Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2012 +#: templates/js/translated/purchase_order.js:1996 #: templates/js/translated/return_order.js:680 -#: templates/js/translated/sales_order.js:2130 +#: templates/js/translated/sales_order.js:2111 msgid "Delete Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2294 -#: templates/js/translated/sales_order.js:2060 +#: templates/js/translated/purchase_order.js:2278 +#: templates/js/translated/sales_order.js:2041 msgid "Duplicate line item" msgstr "" -#: templates/js/translated/purchase_order.js:2295 +#: templates/js/translated/purchase_order.js:2279 #: templates/js/translated/return_order.js:799 -#: templates/js/translated/sales_order.js:2061 +#: templates/js/translated/sales_order.js:2042 msgid "Edit line item" msgstr "" -#: templates/js/translated/purchase_order.js:2296 +#: templates/js/translated/purchase_order.js:2280 #: templates/js/translated/return_order.js:803 -#: templates/js/translated/sales_order.js:2067 +#: templates/js/translated/sales_order.js:2048 msgid "Delete line item" msgstr "" -#: templates/js/translated/report.js:49 -msgid "Print Report" -msgstr "" - #: templates/js/translated/report.js:68 msgid "Report print successful" msgstr "" @@ -13878,7 +14219,7 @@ msgid "No return orders found" msgstr "" #: templates/js/translated/return_order.js:299 -#: templates/js/translated/sales_order.js:824 +#: templates/js/translated/sales_order.js:783 msgid "Invalid Customer" msgstr "" @@ -13887,7 +14228,7 @@ msgid "Receive Return Order Items" msgstr "" #: templates/js/translated/return_order.js:691 -#: templates/js/translated/sales_order.js:2267 +#: templates/js/translated/sales_order.js:2248 msgid "No matching line items" msgstr "" @@ -13903,188 +14244,181 @@ msgstr "" msgid "Edit Sales Order" msgstr "" -#: templates/js/translated/sales_order.js:291 +#: templates/js/translated/sales_order.js:288 msgid "No stock items have been allocated to this shipment" -msgstr "" +msgstr "Er zijn geen voorraadartikelen toegewezen aan deze zending" -#: templates/js/translated/sales_order.js:296 -msgid "The following stock items will be shipped" -msgstr "" - -#: templates/js/translated/sales_order.js:336 +#: templates/js/translated/sales_order.js:294 msgid "Complete Shipment" msgstr "" -#: templates/js/translated/sales_order.js:360 +#: templates/js/translated/sales_order.js:318 msgid "Confirm Shipment" msgstr "" -#: templates/js/translated/sales_order.js:416 +#: templates/js/translated/sales_order.js:375 msgid "No pending shipments found" msgstr "" -#: templates/js/translated/sales_order.js:420 +#: templates/js/translated/sales_order.js:379 msgid "No stock items have been allocated to pending shipments" -msgstr "" +msgstr "Geen voorraadartikelen toegewezen aan lopende verzendingen" -#: templates/js/translated/sales_order.js:430 +#: templates/js/translated/sales_order.js:389 msgid "Complete Shipments" msgstr "" -#: templates/js/translated/sales_order.js:452 +#: templates/js/translated/sales_order.js:411 msgid "Skip" msgstr "" -#: templates/js/translated/sales_order.js:484 +#: templates/js/translated/sales_order.js:443 msgid "Ship Sales Order" msgstr "" -#: templates/js/translated/sales_order.js:500 +#: templates/js/translated/sales_order.js:459 msgid "Ship this order?" msgstr "" -#: templates/js/translated/sales_order.js:506 +#: templates/js/translated/sales_order.js:465 msgid "Order cannot be shipped as there are incomplete shipments" msgstr "" -#: templates/js/translated/sales_order.js:513 +#: templates/js/translated/sales_order.js:472 msgid "This order has line items which have not been completed." msgstr "" -#: templates/js/translated/sales_order.js:514 +#: templates/js/translated/sales_order.js:473 msgid "Shipping this order means that the order and line items will no longer be editable." msgstr "" -#: templates/js/translated/sales_order.js:572 +#: templates/js/translated/sales_order.js:531 msgid "Issue this Sales Order?" msgstr "" -#: templates/js/translated/sales_order.js:577 +#: templates/js/translated/sales_order.js:536 msgid "Issue Sales Order" msgstr "" -#: templates/js/translated/sales_order.js:596 +#: templates/js/translated/sales_order.js:555 msgid "Cancel Sales Order" msgstr "" -#: templates/js/translated/sales_order.js:601 +#: templates/js/translated/sales_order.js:560 msgid "Cancelling this order means that the order will no longer be editable." msgstr "" -#: templates/js/translated/sales_order.js:655 +#: templates/js/translated/sales_order.js:614 msgid "Create New Shipment" msgstr "" -#: templates/js/translated/sales_order.js:764 +#: templates/js/translated/sales_order.js:723 msgid "No sales orders found" msgstr "" -#: templates/js/translated/sales_order.js:944 +#: templates/js/translated/sales_order.js:907 msgid "Edit shipment" msgstr "" -#: templates/js/translated/sales_order.js:947 +#: templates/js/translated/sales_order.js:910 msgid "Complete shipment" msgstr "" -#: templates/js/translated/sales_order.js:952 +#: templates/js/translated/sales_order.js:915 msgid "Delete shipment" msgstr "" -#: templates/js/translated/sales_order.js:969 +#: templates/js/translated/sales_order.js:932 msgid "Edit Shipment" msgstr "" -#: templates/js/translated/sales_order.js:984 +#: templates/js/translated/sales_order.js:947 msgid "Delete Shipment" msgstr "" -#: templates/js/translated/sales_order.js:1017 +#: templates/js/translated/sales_order.js:989 msgid "No matching shipments found" msgstr "" -#: templates/js/translated/sales_order.js:1042 +#: templates/js/translated/sales_order.js:1015 msgid "Shipment Reference" msgstr "" -#: templates/js/translated/sales_order.js:1066 -#: templates/js/translated/sales_order.js:1565 +#: templates/js/translated/sales_order.js:1032 +#: templates/js/translated/sales_order.js:1531 msgid "Not shipped" msgstr "" -#: templates/js/translated/sales_order.js:1084 +#: templates/js/translated/sales_order.js:1050 msgid "Tracking" msgstr "" -#: templates/js/translated/sales_order.js:1088 +#: templates/js/translated/sales_order.js:1054 msgid "Invoice" msgstr "" -#: templates/js/translated/sales_order.js:1255 +#: templates/js/translated/sales_order.js:1221 msgid "Add Shipment" msgstr "" -#: templates/js/translated/sales_order.js:1306 +#: templates/js/translated/sales_order.js:1272 msgid "Confirm stock allocation" -msgstr "" +msgstr "Voorraadtoewijzing bevestigen" -#: templates/js/translated/sales_order.js:1307 +#: templates/js/translated/sales_order.js:1273 msgid "Allocate Stock Items to Sales Order" -msgstr "" +msgstr "Voorraad artikelen toewijzen aan verkooporder" -#: templates/js/translated/sales_order.js:1513 +#: templates/js/translated/sales_order.js:1479 msgid "No sales order allocations found" msgstr "" -#: templates/js/translated/sales_order.js:1605 +#: templates/js/translated/sales_order.js:1571 msgid "Edit Stock Allocation" -msgstr "" +msgstr "Bewerk voorraadtoewijzing" -#: templates/js/translated/sales_order.js:1619 +#: templates/js/translated/sales_order.js:1585 msgid "Confirm Delete Operation" msgstr "" -#: templates/js/translated/sales_order.js:1620 +#: templates/js/translated/sales_order.js:1586 msgid "Delete Stock Allocation" -msgstr "" +msgstr "Verwijder voorraadtoewijzing" -#: templates/js/translated/sales_order.js:1659 -#: templates/js/translated/sales_order.js:1746 +#: templates/js/translated/sales_order.js:1640 +#: templates/js/translated/sales_order.js:1727 #: templates/js/translated/stock.js:1861 msgid "Shipped to customer" -msgstr "" +msgstr "Verzonden naar klant" -#: templates/js/translated/sales_order.js:1667 -#: templates/js/translated/sales_order.js:1755 +#: templates/js/translated/sales_order.js:1648 +#: templates/js/translated/sales_order.js:1736 msgid "Stock location not specified" -msgstr "" +msgstr "Voorraadlocatie niet opgegeven" -#: templates/js/translated/sales_order.js:2044 -msgid "Allocate serial numbers" -msgstr "" - -#: templates/js/translated/sales_order.js:2048 -msgid "Purchase stock" -msgstr "" - -#: templates/js/translated/sales_order.js:2057 -#: templates/js/translated/sales_order.js:2245 -msgid "Calculate price" -msgstr "" - -#: templates/js/translated/sales_order.js:2071 -msgid "Cannot be deleted as items have been shipped" -msgstr "" - -#: templates/js/translated/sales_order.js:2074 -msgid "Cannot be deleted as items have been allocated" -msgstr "" - -#: templates/js/translated/sales_order.js:2145 +#: templates/js/translated/sales_order.js:2025 +#: templates/js/translated/sales_order.js:2126 msgid "Allocate Serial Numbers" msgstr "" -#: templates/js/translated/sales_order.js:2253 +#: templates/js/translated/sales_order.js:2029 +msgid "Purchase stock" +msgstr "Voorraad kopen" + +#: templates/js/translated/sales_order.js:2038 +#: templates/js/translated/sales_order.js:2226 +msgid "Calculate price" +msgstr "" + +#: templates/js/translated/sales_order.js:2052 +msgid "Cannot be deleted as items have been shipped" +msgstr "" + +#: templates/js/translated/sales_order.js:2055 +msgid "Cannot be deleted as items have been allocated" +msgstr "" + +#: templates/js/translated/sales_order.js:2234 msgid "Update Unit Price" msgstr "" @@ -14110,87 +14444,87 @@ msgstr "" #: templates/js/translated/stock.js:106 msgid "Serialize Stock Item" -msgstr "" +msgstr "Voorraadartikel serialiseren" #: templates/js/translated/stock.js:137 msgid "Confirm Stock Serialization" -msgstr "" +msgstr "Bevestig voorraad serialisatie" #: templates/js/translated/stock.js:173 msgid "Add Location type" -msgstr "" +msgstr "Voeg locatie type toe" #: templates/js/translated/stock.js:209 msgid "Edit Stock Location" -msgstr "" +msgstr "Voorraad locatie bewerken" #: templates/js/translated/stock.js:224 msgid "New Stock Location" -msgstr "" +msgstr "Nieuwe voorraad locatie" #: templates/js/translated/stock.js:226 msgid "Create another location after this one" -msgstr "" +msgstr "Een andere locatie aanmaken na deze" #: templates/js/translated/stock.js:227 msgid "Stock location created" -msgstr "" +msgstr "Voorraadlocatie aangemaakt" #: templates/js/translated/stock.js:241 msgid "Are you sure you want to delete this stock location?" -msgstr "" +msgstr "Weet u zeker dat u deze voorraadlocatie wilt verwijderen?" #: templates/js/translated/stock.js:248 msgid "Move to parent stock location" -msgstr "" +msgstr "Verplaats naar bovenliggende standaard locatie" #: templates/js/translated/stock.js:257 msgid "Delete Stock Location" -msgstr "" +msgstr "Voorraad locatie verwijderen" #: templates/js/translated/stock.js:261 msgid "Action for stock items in this stock location" -msgstr "" +msgstr "Actie voor voorraad artikelen op deze voorraadlocatie" #: templates/js/translated/stock.js:266 msgid "Action for sub-locations" -msgstr "" +msgstr "Actie voor deellocaties" #: templates/js/translated/stock.js:320 msgid "This part cannot be serialized" -msgstr "" +msgstr "Dit onderdeel kan niet geserialiseerd worden" #: templates/js/translated/stock.js:356 msgid "Add given quantity as packs instead of individual items" -msgstr "" +msgstr "Opgegeven hoeveelheid als pakket toevoegen in plaats van individuele artikelen" #: templates/js/translated/stock.js:368 msgid "Enter initial quantity for this stock item" -msgstr "" +msgstr "Voer het initiële aantal in voor dit voorraaditem" #: templates/js/translated/stock.js:374 msgid "Enter serial numbers for new stock (or leave blank)" -msgstr "" +msgstr "Voer serienummer in voor nieuwe voorraad (of laat het leeg)" #: templates/js/translated/stock.js:445 msgid "Stock item duplicated" -msgstr "" +msgstr "Voorraad item gedupliceerd" #: templates/js/translated/stock.js:465 msgid "Duplicate Stock Item" -msgstr "" +msgstr "Artikel dupliceren" #: templates/js/translated/stock.js:481 msgid "Are you sure you want to delete this stock item?" -msgstr "" +msgstr "Weet u zeker dat u dit product wilt verwijderen?" #: templates/js/translated/stock.js:486 msgid "Delete Stock Item" -msgstr "" +msgstr "Voorraad item verwijderen" #: templates/js/translated/stock.js:507 msgid "Edit Stock Item" -msgstr "" +msgstr "Voorraad item bewerken" #: templates/js/translated/stock.js:549 msgid "Create another item after this one" @@ -14209,11 +14543,8 @@ msgid "Find Serial Number" msgstr "" #: templates/js/translated/stock.js:603 templates/js/translated/stock.js:604 -msgid "Enter serial number" -msgstr "" - #: templates/js/translated/stock.js:620 -msgid "Enter a serial number" +msgid "Enter serial number" msgstr "" #: templates/js/translated/stock.js:640 @@ -14284,7 +14615,7 @@ msgstr "" msgid "Add Stock" msgstr "" -#: templates/js/translated/stock.js:1049 users/models.py:396 +#: templates/js/translated/stock.js:1049 users/models.py:398 msgid "Add" msgstr "" @@ -14308,7 +14639,7 @@ msgstr "" msgid "Adjust packaging" msgstr "" -#: templates/js/translated/stock.js:1256 templates/js/translated/stock.js:3382 +#: templates/js/translated/stock.js:1256 templates/js/translated/stock.js:3383 msgid "Select Stock Items" msgstr "" @@ -14320,18 +14651,6 @@ msgstr "" msgid "Confirm stock adjustment" msgstr "" -#: templates/js/translated/stock.js:1448 -msgid "PASS" -msgstr "" - -#: templates/js/translated/stock.js:1450 -msgid "FAIL" -msgstr "" - -#: templates/js/translated/stock.js:1455 -msgid "NO RESULT" -msgstr "" - #: templates/js/translated/stock.js:1535 msgid "Pass test" msgstr "" @@ -14388,216 +14707,216 @@ msgstr "" msgid "No stock location set" msgstr "" -#: templates/js/translated/stock.js:1927 +#: templates/js/translated/stock.js:1928 msgid "Change stock status" msgstr "" -#: templates/js/translated/stock.js:1936 +#: templates/js/translated/stock.js:1937 msgid "Merge stock" msgstr "" -#: templates/js/translated/stock.js:1985 +#: templates/js/translated/stock.js:1986 msgid "Delete stock" msgstr "" -#: templates/js/translated/stock.js:2038 +#: templates/js/translated/stock.js:2039 msgid "stock items" msgstr "" -#: templates/js/translated/stock.js:2043 +#: templates/js/translated/stock.js:2044 msgid "Scan to location" msgstr "" -#: templates/js/translated/stock.js:2054 +#: templates/js/translated/stock.js:2055 msgid "Stock Actions" msgstr "" -#: templates/js/translated/stock.js:2098 +#: templates/js/translated/stock.js:2099 msgid "Load installed items" msgstr "" -#: templates/js/translated/stock.js:2176 +#: templates/js/translated/stock.js:2177 msgid "Stock item is in production" msgstr "" -#: templates/js/translated/stock.js:2181 +#: templates/js/translated/stock.js:2182 msgid "Stock item assigned to sales order" msgstr "" -#: templates/js/translated/stock.js:2184 +#: templates/js/translated/stock.js:2185 msgid "Stock item assigned to customer" msgstr "" -#: templates/js/translated/stock.js:2187 +#: templates/js/translated/stock.js:2188 msgid "Serialized stock item has been allocated" msgstr "" -#: templates/js/translated/stock.js:2189 +#: templates/js/translated/stock.js:2190 msgid "Stock item has been fully allocated" msgstr "" -#: templates/js/translated/stock.js:2191 +#: templates/js/translated/stock.js:2192 msgid "Stock item has been partially allocated" msgstr "" -#: templates/js/translated/stock.js:2194 +#: templates/js/translated/stock.js:2195 msgid "Stock item has been installed in another item" msgstr "" -#: templates/js/translated/stock.js:2196 +#: templates/js/translated/stock.js:2197 msgid "Stock item has been consumed by a build order" msgstr "" -#: templates/js/translated/stock.js:2200 +#: templates/js/translated/stock.js:2201 msgid "Stock item has expired" msgstr "" -#: templates/js/translated/stock.js:2202 +#: templates/js/translated/stock.js:2203 msgid "Stock item will expire soon" msgstr "" -#: templates/js/translated/stock.js:2207 +#: templates/js/translated/stock.js:2208 msgid "Stock item has been rejected" msgstr "" -#: templates/js/translated/stock.js:2209 +#: templates/js/translated/stock.js:2210 msgid "Stock item is lost" msgstr "" -#: templates/js/translated/stock.js:2211 +#: templates/js/translated/stock.js:2212 msgid "Stock item is destroyed" msgstr "" -#: templates/js/translated/stock.js:2215 +#: templates/js/translated/stock.js:2216 #: templates/js/translated/table_filters.js:357 msgid "Depleted" msgstr "" -#: templates/js/translated/stock.js:2380 +#: templates/js/translated/stock.js:2381 msgid "Supplier part not specified" msgstr "" -#: templates/js/translated/stock.js:2427 +#: templates/js/translated/stock.js:2428 msgid "Stock Value" msgstr "" -#: templates/js/translated/stock.js:2555 +#: templates/js/translated/stock.js:2556 msgid "No stock items matching query" msgstr "" -#: templates/js/translated/stock.js:2658 +#: templates/js/translated/stock.js:2659 msgid "stock locations" msgstr "" -#: templates/js/translated/stock.js:2813 +#: templates/js/translated/stock.js:2814 msgid "Load Sublocations" msgstr "" -#: templates/js/translated/stock.js:2930 +#: templates/js/translated/stock.js:2931 msgid "Details" msgstr "" -#: templates/js/translated/stock.js:2934 +#: templates/js/translated/stock.js:2935 msgid "No changes" msgstr "" -#: templates/js/translated/stock.js:2946 +#: templates/js/translated/stock.js:2947 msgid "Part information unavailable" msgstr "" -#: templates/js/translated/stock.js:2968 +#: templates/js/translated/stock.js:2969 msgid "Location no longer exists" msgstr "" -#: templates/js/translated/stock.js:2985 +#: templates/js/translated/stock.js:2986 msgid "Build order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3000 +#: templates/js/translated/stock.js:3001 msgid "Purchase order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3017 +#: templates/js/translated/stock.js:3018 msgid "Sales Order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3034 +#: templates/js/translated/stock.js:3035 msgid "Return Order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3053 +#: templates/js/translated/stock.js:3054 msgid "Customer no longer exists" msgstr "" -#: templates/js/translated/stock.js:3071 +#: templates/js/translated/stock.js:3072 msgid "Stock item no longer exists" msgstr "" -#: templates/js/translated/stock.js:3089 +#: templates/js/translated/stock.js:3090 msgid "Added" msgstr "" -#: templates/js/translated/stock.js:3097 +#: templates/js/translated/stock.js:3098 msgid "Removed" msgstr "" -#: templates/js/translated/stock.js:3169 +#: templates/js/translated/stock.js:3170 msgid "No installed items" msgstr "" -#: templates/js/translated/stock.js:3223 templates/js/translated/stock.js:3259 +#: templates/js/translated/stock.js:3224 templates/js/translated/stock.js:3260 msgid "Uninstall Stock Item" msgstr "" -#: templates/js/translated/stock.js:3280 +#: templates/js/translated/stock.js:3281 msgid "Select stock item to uninstall" msgstr "" -#: templates/js/translated/stock.js:3301 +#: templates/js/translated/stock.js:3302 msgid "Install another stock item into this item" msgstr "" -#: templates/js/translated/stock.js:3302 +#: templates/js/translated/stock.js:3303 msgid "Stock items can only be installed if they meet the following criteria" msgstr "" -#: templates/js/translated/stock.js:3304 -msgid "The Stock Item links to a Part which is the BOM for this Stock Item" -msgstr "" - #: templates/js/translated/stock.js:3305 +msgid "The Stock Item links to a Part which is the BOM for this Stock Item" +msgstr "Het voorraadartikel linkt naar een onderdeel dat de stuklijst BOM is voor dit voorraadartikel" + +#: templates/js/translated/stock.js:3306 msgid "The Stock Item is currently available in stock" msgstr "" -#: templates/js/translated/stock.js:3306 +#: templates/js/translated/stock.js:3307 msgid "The Stock Item is not already installed in another item" msgstr "" -#: templates/js/translated/stock.js:3307 +#: templates/js/translated/stock.js:3308 msgid "The Stock Item is tracked by either a batch code or serial number" msgstr "" -#: templates/js/translated/stock.js:3320 +#: templates/js/translated/stock.js:3321 msgid "Select part to install" msgstr "" -#: templates/js/translated/stock.js:3383 +#: templates/js/translated/stock.js:3384 msgid "Select one or more stock items" msgstr "" -#: templates/js/translated/stock.js:3396 +#: templates/js/translated/stock.js:3397 msgid "Selected stock items" msgstr "" -#: templates/js/translated/stock.js:3400 +#: templates/js/translated/stock.js:3401 msgid "Change Stock Status" msgstr "" -#: templates/js/translated/stock.js:3477 +#: templates/js/translated/stock.js:3478 msgid "This week" msgstr "" -#: templates/js/translated/stock.js:3485 +#: templates/js/translated/stock.js:3486 msgid "This month" msgstr "" @@ -14734,10 +15053,6 @@ msgstr "" msgid "Show items which are in production" msgstr "" -#: templates/js/translated/table_filters.js:372 -msgid "Include Variants" -msgstr "" - #: templates/js/translated/table_filters.js:373 msgid "Include stock items for variant parts" msgstr "" @@ -15012,10 +15327,6 @@ msgstr "" msgid "An error occurred while attempting to login via your social network account." msgstr "" -#: templates/socialaccount/authentication_error.html:13 -msgid "Contact your system administrator for further information." -msgstr "" - #: templates/socialaccount/login.html:13 #, python-format msgid "Connect %(provider)s" @@ -15141,27 +15452,27 @@ msgstr "" msgid "No" msgstr "" -#: users/admin.py:104 +#: users/admin.py:101 msgid "Users" msgstr "" -#: users/admin.py:105 +#: users/admin.py:102 msgid "Select which users are assigned to this group" msgstr "" -#: users/admin.py:249 +#: users/admin.py:246 msgid "The following users are members of multiple groups" msgstr "" -#: users/admin.py:283 +#: users/admin.py:280 msgid "Personal info" msgstr "" -#: users/admin.py:285 +#: users/admin.py:282 msgid "Permissions" msgstr "" -#: users/admin.py:288 +#: users/admin.py:285 msgid "Important dates" msgstr "" @@ -15205,35 +15516,35 @@ msgstr "" msgid "Revoked" msgstr "" -#: users/models.py:379 +#: users/models.py:381 msgid "Permission set" msgstr "" -#: users/models.py:388 +#: users/models.py:390 msgid "Group" msgstr "" -#: users/models.py:392 +#: users/models.py:394 msgid "View" msgstr "" -#: users/models.py:392 +#: users/models.py:394 msgid "Permission to view items" msgstr "" -#: users/models.py:396 +#: users/models.py:398 msgid "Permission to add items" msgstr "" -#: users/models.py:400 +#: users/models.py:402 msgid "Change" msgstr "" -#: users/models.py:402 +#: users/models.py:404 msgid "Permissions to edit items" msgstr "" -#: users/models.py:408 +#: users/models.py:410 msgid "Permission to delete items" msgstr "" diff --git a/src/backend/InvenTree/locale/no/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/no/LC_MESSAGES/django.po index c409784645..6692b6d170 100644 --- a/src/backend/InvenTree/locale/no/LC_MESSAGES/django.po +++ b/src/backend/InvenTree/locale/no/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-08-20 01:22+0000\n" -"PO-Revision-Date: 2024-08-20 19:51\n" +"POT-Creation-Date: 2024-11-04 03:11+0000\n" +"PO-Revision-Date: 2024-11-04 03:14\n" "Last-Translator: \n" "Language-Team: Norwegian\n" "Language: no_NO\n" @@ -14,81 +14,89 @@ msgstr "" "X-Crowdin-Project: inventree\n" "X-Crowdin-Project-ID: 452300\n" "X-Crowdin-Language: no\n" -"X-Crowdin-File: /[inventree.InvenTree] l10/src/backend/InvenTree/locale/en/LC_MESSAGES/django.po\n" -"X-Crowdin-File-ID: 216\n" +"X-Crowdin-File: /src/backend/InvenTree/locale/en/LC_MESSAGES/django.po\n" +"X-Crowdin-File-ID: 250\n" -#: InvenTree/api.py:269 +#: InvenTree/api.py:270 msgid "API endpoint not found" msgstr "API-endepunkt ikke funnet" -#: InvenTree/api.py:502 +#: InvenTree/api.py:387 +msgid "Invalid items list provided" +msgstr "" + +#: InvenTree/api.py:396 +msgid "Invalid filters provided" +msgstr "" + +#: InvenTree/api.py:401 +msgid "No items found to delete" +msgstr "" + +#: InvenTree/api.py:515 msgid "User does not have permission to view this model" msgstr "Brukeren har ikke rettigheter til å se denne modellen" -#: InvenTree/conversion.py:160 +#: InvenTree/conversion.py:161 #, python-brace-format msgid "Invalid unit provided ({unit})" msgstr "Ugyldig enhet angitt ({unit})" -#: InvenTree/conversion.py:177 +#: InvenTree/conversion.py:178 msgid "No value provided" msgstr "Ingen verdi angitt" -#: InvenTree/conversion.py:204 +#: InvenTree/conversion.py:205 #, python-brace-format msgid "Could not convert {original} to {unit}" msgstr "Kunne ikke konvertere {original} til {unit}" -#: InvenTree/conversion.py:206 -msgid "Invalid quantity supplied" +#: InvenTree/conversion.py:207 InvenTree/conversion.py:221 +#: InvenTree/helpers.py:505 order/models.py:589 order/models.py:832 +msgid "Invalid quantity provided" msgstr "Ugyldig mengde oppgitt" -#: InvenTree/conversion.py:220 -#, python-brace-format -msgid "Invalid quantity supplied ({exc})" -msgstr "Ugyldig mengde oppgitt ({exc})" - -#: InvenTree/exceptions.py:108 +#: InvenTree/exceptions.py:104 msgid "Error details can be found in the admin panel" msgstr "Feildetaljer kan finnes i admin-panelet" -#: InvenTree/fields.py:136 +#: InvenTree/fields.py:135 msgid "Enter date" msgstr "Oppgi dato" -#: InvenTree/fields.py:205 InvenTree/models.py:929 build/serializers.py:468 -#: build/serializers.py:546 build/templates/build/sidebar.html:29 -#: company/models.py:836 +#: InvenTree/fields.py:204 InvenTree/models.py:928 build/serializers.py:512 +#: build/serializers.py:590 build/templates/build/sidebar.html:29 +#: company/models.py:833 #: company/templates/company/manufacturer_part_sidebar.html:11 #: company/templates/company/sidebar.html:37 -#: company/templates/company/supplier_part_sidebar.html:11 order/models.py:1380 +#: company/templates/company/supplier_part_sidebar.html:11 order/models.py:1397 #: order/templates/order/po_sidebar.html:11 #: order/templates/order/return_order_sidebar.html:9 #: order/templates/order/so_sidebar.html:17 part/admin.py:59 -#: part/models.py:3297 part/templates/part/part_sidebar.html:65 +#: part/models.py:3348 part/templates/part/part_sidebar.html:65 #: report/templates/report/inventree_build_order_report.html:172 -#: stock/admin.py:230 stock/models.py:2375 stock/models.py:2563 -#: stock/serializers.py:698 stock/serializers.py:856 stock/serializers.py:982 -#: stock/serializers.py:1032 stock/serializers.py:1343 -#: stock/serializers.py:1432 stock/serializers.py:1597 +#: stock/admin.py:231 stock/models.py:2494 stock/models.py:2679 +#: stock/serializers.py:725 stock/serializers.py:887 stock/serializers.py:1013 +#: stock/serializers.py:1063 stock/serializers.py:1374 +#: stock/serializers.py:1463 stock/serializers.py:1628 #: stock/templates/stock/stock_sidebar.html:25 #: templates/js/translated/barcode.js:143 templates/js/translated/bom.js:1265 -#: templates/js/translated/company.js:1684 templates/js/translated/order.js:372 +#: templates/js/translated/company.js:1685 templates/js/translated/order.js:372 #: templates/js/translated/part.js:1087 -#: templates/js/translated/purchase_order.js:2270 +#: templates/js/translated/purchase_order.js:2254 #: templates/js/translated/return_order.js:774 -#: templates/js/translated/sales_order.js:1103 -#: templates/js/translated/sales_order.js:2018 -#: templates/js/translated/stock.js:1621 templates/js/translated/stock.js:2513 +#: templates/js/translated/sales_order.js:1069 +#: templates/js/translated/sales_order.js:1999 +#: templates/js/translated/stock.js:1621 templates/js/translated/stock.js:2514 msgid "Notes" msgstr "Notater" -#: InvenTree/format.py:164 +#: InvenTree/format.py:162 #, python-brace-format msgid "Value '{name}' does not appear in pattern format" msgstr "Verdi '{name}' vises ikke i mønsterformat" -#: InvenTree/format.py:175 +#: InvenTree/format.py:173 msgid "Provided value does not match required pattern: " msgstr "Angitt verdi samsvarer ikke med påkrevd mønster: " @@ -132,397 +140,409 @@ msgstr "" msgid "The provided primary email address is not valid." msgstr "Den oppgitte primære e-postadressen er ikke gyldig." -#: InvenTree/forms.py:274 +#: InvenTree/forms.py:273 msgid "The provided email domain is not approved." msgstr "Det oppgitte e-postdomenet er ikke godkjent." -#: InvenTree/forms.py:403 +#: InvenTree/forms.py:402 msgid "Registration is disabled." msgstr "Registrering er deaktivert." -#: InvenTree/helpers.py:491 order/models.py:567 order/models.py:810 -msgid "Invalid quantity provided" -msgstr "Ugyldig mengde oppgitt" +#: InvenTree/helpers.py:509 +msgid "Cannot serialize more than 1000 items at once" +msgstr "" -#: InvenTree/helpers.py:499 +#: InvenTree/helpers.py:515 msgid "Empty serial number string" msgstr "Tom serienummerstreng" -#: InvenTree/helpers.py:528 +#: InvenTree/helpers.py:544 msgid "Duplicate serial" msgstr "Duplisert serienummer" -#: InvenTree/helpers.py:560 InvenTree/helpers.py:603 +#: InvenTree/helpers.py:576 InvenTree/helpers.py:619 InvenTree/helpers.py:637 +#: InvenTree/helpers.py:644 InvenTree/helpers.py:663 #, python-brace-format -msgid "Invalid group range: {group}" -msgstr "Ugyldig gruppesekvens: {group}" +msgid "Invalid group: {group}" +msgstr "" -#: InvenTree/helpers.py:591 +#: InvenTree/helpers.py:607 #, python-brace-format msgid "Group range {group} exceeds allowed quantity ({expected_quantity})" msgstr "Gruppesekvens {group} overskrider tillatt antall ({expected_quantity})" -#: InvenTree/helpers.py:621 InvenTree/helpers.py:628 InvenTree/helpers.py:647 -#, python-brace-format -msgid "Invalid group sequence: {group}" -msgstr "Ugyldig gruppesekvens: {group}" - -#: InvenTree/helpers.py:657 +#: InvenTree/helpers.py:673 msgid "No serial numbers found" msgstr "Ingen serienummer funnet" -#: InvenTree/helpers.py:662 +#: InvenTree/helpers.py:678 msgid "Number of unique serial numbers ({len(serials)}) must match quantity ({expected_quantity})" msgstr "Antall unike serienumre ({len(serials)}) må samsvare med antallet ({expected_quantity})" -#: InvenTree/helpers.py:780 +#: InvenTree/helpers.py:796 msgid "Remove HTML tags from this value" msgstr "Fjern HTML-tagger fra denne verdien" -#: InvenTree/helpers_model.py:133 +#: InvenTree/helpers.py:881 +msgid "Data contains prohibited markdown content" +msgstr "" + +#: InvenTree/helpers_model.py:130 msgid "Connection error" msgstr "Tilkoblingsfeil" -#: InvenTree/helpers_model.py:138 InvenTree/helpers_model.py:145 +#: InvenTree/helpers_model.py:135 InvenTree/helpers_model.py:142 msgid "Server responded with invalid status code" msgstr "Serveren svarte med ugyldig statuskode" -#: InvenTree/helpers_model.py:141 +#: InvenTree/helpers_model.py:138 msgid "Exception occurred" msgstr "Det har oppstått et unntak" -#: InvenTree/helpers_model.py:151 +#: InvenTree/helpers_model.py:148 msgid "Server responded with invalid Content-Length value" msgstr "Serveren svarte med ugyldig \"Content-Length\"-verdi" -#: InvenTree/helpers_model.py:154 +#: InvenTree/helpers_model.py:151 msgid "Image size is too large" msgstr "Bildestørrelsen er for stor" -#: InvenTree/helpers_model.py:166 +#: InvenTree/helpers_model.py:163 msgid "Image download exceeded maximum size" msgstr "Bildenedlasting overskred maksimal størrelse" -#: InvenTree/helpers_model.py:171 +#: InvenTree/helpers_model.py:168 msgid "Remote server returned empty response" msgstr "Ekstern server returnerte tomt svar" -#: InvenTree/helpers_model.py:179 +#: InvenTree/helpers_model.py:176 msgid "Supplied URL is not a valid image file" msgstr "Angitt URL er ikke en gyldig bildefil" -#: InvenTree/locales.py:18 +#: InvenTree/locales.py:20 msgid "Arabic" msgstr "Arabisk" -#: InvenTree/locales.py:19 +#: InvenTree/locales.py:21 msgid "Bulgarian" msgstr "Bulgarsk" -#: InvenTree/locales.py:20 +#: InvenTree/locales.py:22 msgid "Czech" msgstr "Tsjekkisk" -#: InvenTree/locales.py:21 +#: InvenTree/locales.py:23 msgid "Danish" msgstr "Dansk" -#: InvenTree/locales.py:22 +#: InvenTree/locales.py:24 msgid "German" msgstr "Tysk" -#: InvenTree/locales.py:23 +#: InvenTree/locales.py:25 msgid "Greek" msgstr "Gresk" -#: InvenTree/locales.py:24 +#: InvenTree/locales.py:26 msgid "English" msgstr "Engelsk" -#: InvenTree/locales.py:25 +#: InvenTree/locales.py:27 msgid "Spanish" msgstr "Spansk" -#: InvenTree/locales.py:26 +#: InvenTree/locales.py:28 msgid "Spanish (Mexican)" msgstr "Spansk (Meksikansk)" -#: InvenTree/locales.py:27 +#: InvenTree/locales.py:29 msgid "Estonian" msgstr "Estisk" -#: InvenTree/locales.py:28 +#: InvenTree/locales.py:30 msgid "Farsi / Persian" msgstr "Farsi / Persisk" -#: InvenTree/locales.py:29 +#: InvenTree/locales.py:31 msgid "Finnish" msgstr "Finsk" -#: InvenTree/locales.py:30 +#: InvenTree/locales.py:32 msgid "French" msgstr "Fransk" -#: InvenTree/locales.py:31 +#: InvenTree/locales.py:33 msgid "Hebrew" msgstr "Hebraisk" -#: InvenTree/locales.py:32 +#: InvenTree/locales.py:34 msgid "Hindi" msgstr "Hindi" -#: InvenTree/locales.py:33 +#: InvenTree/locales.py:35 msgid "Hungarian" msgstr "Ungarsk" -#: InvenTree/locales.py:34 +#: InvenTree/locales.py:36 msgid "Italian" msgstr "Italiensk" -#: InvenTree/locales.py:35 +#: InvenTree/locales.py:37 msgid "Japanese" msgstr "Japansk" -#: InvenTree/locales.py:36 +#: InvenTree/locales.py:38 msgid "Korean" msgstr "Koreansk" -#: InvenTree/locales.py:37 +#: InvenTree/locales.py:39 +msgid "Lithuanian" +msgstr "" + +#: InvenTree/locales.py:40 msgid "Latvian" msgstr "Latvisk" -#: InvenTree/locales.py:38 +#: InvenTree/locales.py:41 msgid "Dutch" msgstr "Nederlandsk" -#: InvenTree/locales.py:39 +#: InvenTree/locales.py:42 msgid "Norwegian" msgstr "Norsk" -#: InvenTree/locales.py:40 +#: InvenTree/locales.py:43 msgid "Polish" msgstr "Polsk" -#: InvenTree/locales.py:41 +#: InvenTree/locales.py:44 msgid "Portuguese" msgstr "Portugisisk" -#: InvenTree/locales.py:42 +#: InvenTree/locales.py:45 msgid "Portuguese (Brazilian)" msgstr "Portugisisk (Brasil)" -#: InvenTree/locales.py:43 +#: InvenTree/locales.py:46 msgid "Romanian" msgstr "Rumensk" -#: InvenTree/locales.py:44 +#: InvenTree/locales.py:47 msgid "Russian" msgstr "Russisk" -#: InvenTree/locales.py:45 +#: InvenTree/locales.py:48 msgid "Slovak" msgstr "Slovakisk" -#: InvenTree/locales.py:46 +#: InvenTree/locales.py:49 msgid "Slovenian" msgstr "Slovensk" -#: InvenTree/locales.py:47 +#: InvenTree/locales.py:50 msgid "Serbian" msgstr "Serbisk" -#: InvenTree/locales.py:48 +#: InvenTree/locales.py:51 msgid "Swedish" msgstr "Svensk" -#: InvenTree/locales.py:49 +#: InvenTree/locales.py:52 msgid "Thai" msgstr "Thailandsk" -#: InvenTree/locales.py:50 +#: InvenTree/locales.py:53 msgid "Turkish" msgstr "Tyrkisk" -#: InvenTree/locales.py:51 +#: InvenTree/locales.py:54 msgid "Ukrainian" msgstr "Ukrainsk" -#: InvenTree/locales.py:52 +#: InvenTree/locales.py:55 msgid "Vietnamese" msgstr "Vietnamesisk" -#: InvenTree/locales.py:53 +#: InvenTree/locales.py:56 msgid "Chinese (Simplified)" msgstr "Kinesisk (forenklet)" -#: InvenTree/locales.py:54 +#: InvenTree/locales.py:57 msgid "Chinese (Traditional)" msgstr "Kinesisk (tradisjonell)" #: InvenTree/magic_login.py:28 -#, python-brace-format -msgid "[{site_name}] Log in to the app" -msgstr "[{site_name}] Logg inn på appen" +msgid "Log in to the app" +msgstr "" -#: InvenTree/magic_login.py:38 InvenTree/serializers.py:415 -#: company/models.py:136 company/templates/company/company_base.html:138 +#: InvenTree/magic_login.py:38 InvenTree/serializers.py:416 +#: company/models.py:133 company/templates/company/company_base.html:138 #: templates/InvenTree/settings/user.html:49 -#: templates/js/translated/company.js:677 +#: templates/js/translated/company.js:678 msgid "Email" msgstr "E-post" -#: InvenTree/models.py:103 +#: InvenTree/models.py:105 msgid "Error running plugin validation" msgstr "Feil under validering av utvidelse" -#: InvenTree/models.py:172 +#: InvenTree/models.py:174 msgid "Metadata must be a python dict object" msgstr "Metadata må være et python dict-objekt" -#: InvenTree/models.py:178 +#: InvenTree/models.py:180 msgid "Plugin Metadata" msgstr "Utvidelse-metadata" -#: InvenTree/models.py:179 +#: InvenTree/models.py:181 msgid "JSON metadata field, for use by external plugins" msgstr "JSON-metadatafelt, for bruk av eksterne utvidelser" -#: InvenTree/models.py:409 +#: InvenTree/models.py:408 msgid "Improperly formatted pattern" msgstr "Uriktig formatert mønster" -#: InvenTree/models.py:416 +#: InvenTree/models.py:415 msgid "Unknown format key specified" msgstr "Ukjent formatnøkkel spesifisert" -#: InvenTree/models.py:422 +#: InvenTree/models.py:421 msgid "Missing required format key" msgstr "Mangler nødvendig formatnøkkel" -#: InvenTree/models.py:433 +#: InvenTree/models.py:432 msgid "Reference field cannot be empty" msgstr "Referansefeltet kan ikke være tomt" -#: InvenTree/models.py:441 +#: InvenTree/models.py:440 msgid "Reference must match required pattern" msgstr "Referansen må samsvare påkrevd mønster" -#: InvenTree/models.py:472 +#: InvenTree/models.py:471 msgid "Reference number is too large" msgstr "Referansenummeret er for stort" -#: InvenTree/models.py:723 +#: InvenTree/models.py:722 msgid "Duplicate names cannot exist under the same parent" msgstr "Duplikatnavn kan ikke eksistere under samme overordnede" -#: InvenTree/models.py:740 +#: InvenTree/models.py:739 msgid "Invalid choice" msgstr "Ugyldig valg" -#: InvenTree/models.py:770 common/models.py:2702 common/models.py:3132 -#: common/serializers.py:412 company/models.py:593 machine/models.py:24 -#: part/models.py:983 part/models.py:3764 plugin/models.py:51 -#: report/models.py:149 stock/models.py:77 +#: InvenTree/models.py:769 common/models.py:2766 common/models.py:3193 +#: common/models.py:3413 common/serializers.py:460 company/models.py:590 +#: machine/models.py:24 part/models.py:1044 part/models.py:3815 +#: plugin/models.py:51 report/models.py:149 stock/models.py:83 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/notifications.html:17 #: templates/InvenTree/settings/plugin.html:83 #: templates/InvenTree/settings/plugin_settings.html:22 #: templates/InvenTree/settings/settings_staff_js.html:67 #: templates/InvenTree/settings/settings_staff_js.html:454 -#: templates/js/translated/company.js:676 -#: templates/js/translated/company.js:724 -#: templates/js/translated/company.js:913 -#: templates/js/translated/company.js:1165 -#: templates/js/translated/company.js:1413 templates/js/translated/part.js:1193 +#: templates/js/translated/company.js:677 +#: templates/js/translated/company.js:725 +#: templates/js/translated/company.js:914 +#: templates/js/translated/company.js:1166 +#: templates/js/translated/company.js:1414 templates/js/translated/part.js:1193 #: templates/js/translated/part.js:1481 templates/js/translated/part.js:1617 -#: templates/js/translated/part.js:2768 templates/js/translated/stock.js:2801 +#: templates/js/translated/part.js:2768 templates/js/translated/stock.js:2802 msgid "Name" msgstr "Navn" -#: InvenTree/models.py:776 build/models.py:250 -#: build/templates/build/detail.html:24 common/models.py:156 -#: company/models.py:521 company/models.py:827 +#: InvenTree/models.py:775 build/models.py:251 +#: build/templates/build/detail.html:24 common/models.py:159 +#: company/models.py:518 company/models.py:824 #: company/templates/company/company_base.html:77 #: company/templates/company/manufacturer_part.html:75 -#: company/templates/company/supplier_part.html:107 order/models.py:288 -#: order/models.py:1413 part/admin.py:305 part/admin.py:411 part/models.py:1006 -#: part/models.py:3779 part/templates/part/category.html:79 -#: part/templates/part/part_base.html:170 +#: company/templates/company/supplier_part.html:108 order/models.py:295 +#: order/models.py:1430 part/admin.py:305 part/admin.py:411 part/models.py:1067 +#: part/models.py:3830 part/templates/part/category.html:79 +#: part/templates/part/part_base.html:171 #: part/templates/part/part_scheduling.html:12 report/models.py:155 -#: report/models.py:509 report/models.py:535 +#: report/models.py:517 report/models.py:543 #: report/templates/report/inventree_build_order_report.html:117 -#: stock/admin.py:54 stock/models.py:83 stock/templates/stock/location.html:122 +#: stock/admin.py:54 stock/models.py:89 stock/templates/stock/location.html:123 #: templates/InvenTree/settings/notifications.html:19 #: templates/InvenTree/settings/plugin_settings.html:27 #: templates/InvenTree/settings/settings_staff_js.html:170 #: templates/InvenTree/settings/settings_staff_js.html:459 #: templates/js/translated/bom.js:633 templates/js/translated/bom.js:963 -#: templates/js/translated/build.js:2311 templates/js/translated/company.js:519 -#: templates/js/translated/company.js:1330 -#: templates/js/translated/company.js:1641 templates/js/translated/index.js:119 +#: templates/js/translated/build.js:2314 templates/js/translated/company.js:520 +#: templates/js/translated/company.js:1331 +#: templates/js/translated/company.js:1642 templates/js/translated/index.js:119 #: templates/js/translated/order.js:323 templates/js/translated/part.js:1245 #: templates/js/translated/part.js:1490 templates/js/translated/part.js:1628 #: templates/js/translated/part.js:1965 templates/js/translated/part.js:2361 #: templates/js/translated/part.js:2803 templates/js/translated/part.js:2915 #: templates/js/translated/plugin.js:80 -#: templates/js/translated/purchase_order.js:1776 -#: templates/js/translated/purchase_order.js:1919 -#: templates/js/translated/purchase_order.js:2092 +#: templates/js/translated/purchase_order.js:1760 +#: templates/js/translated/purchase_order.js:1903 +#: templates/js/translated/purchase_order.js:2076 #: templates/js/translated/return_order.js:313 -#: templates/js/translated/sales_order.js:838 -#: templates/js/translated/sales_order.js:1848 -#: templates/js/translated/stock.js:1600 templates/js/translated/stock.js:2143 -#: templates/js/translated/stock.js:2832 templates/js/translated/stock.js:2915 +#: templates/js/translated/sales_order.js:797 +#: templates/js/translated/sales_order.js:1829 +#: templates/js/translated/stock.js:1600 templates/js/translated/stock.js:2144 +#: templates/js/translated/stock.js:2833 templates/js/translated/stock.js:2916 msgid "Description" msgstr "Beskrivelse" -#: InvenTree/models.py:777 stock/models.py:84 +#: InvenTree/models.py:776 stock/models.py:90 msgid "Description (optional)" msgstr "Beskrivelse (valgfritt)" -#: InvenTree/models.py:792 templates/js/translated/part.js:2812 -#: templates/js/translated/stock.js:2841 +#: InvenTree/models.py:791 common/models.py:3546 +#: templates/js/translated/part.js:2812 templates/js/translated/stock.js:2842 msgid "Path" msgstr "Sti" -#: InvenTree/models.py:929 +#: InvenTree/models.py:928 msgid "Markdown notes (optional)" msgstr "Markdown-notater (valgfritt)" -#: InvenTree/models.py:960 +#: InvenTree/models.py:959 msgid "Barcode Data" msgstr "Strekkodedata" -#: InvenTree/models.py:961 +#: InvenTree/models.py:960 msgid "Third party barcode data" msgstr "Tredjeparts strekkodedata" -#: InvenTree/models.py:967 +#: InvenTree/models.py:966 msgid "Barcode Hash" msgstr "Strekkode-hash" -#: InvenTree/models.py:968 +#: InvenTree/models.py:967 msgid "Unique hash of barcode data" msgstr "Unik hash av strekkodedata" -#: InvenTree/models.py:1035 +#: InvenTree/models.py:1034 msgid "Existing barcode found" msgstr "Eksisterende strekkode funnet" -#: InvenTree/models.py:1078 +#: InvenTree/models.py:1112 +msgid "Task Failure" +msgstr "" + +#: InvenTree/models.py:1114 +#, python-brace-format +msgid "Background worker task '{instance.func}' failed after {n} attempts" +msgstr "" + +#: InvenTree/models.py:1142 msgid "Server Error" msgstr "Serverfeil" -#: InvenTree/models.py:1079 +#: InvenTree/models.py:1143 msgid "An error has been logged by the server." msgstr "En feil har blitt logget av serveren." -#: InvenTree/serializers.py:63 part/models.py:4387 +#: InvenTree/serializers.py:63 part/models.py:4444 msgid "Must be a valid number" msgstr "Må være et gyldig tall" -#: InvenTree/serializers.py:100 company/models.py:186 -#: company/templates/company/company_base.html:112 part/models.py:3115 +#: InvenTree/serializers.py:100 company/models.py:183 +#: company/templates/company/company_base.html:112 part/models.py:3166 #: templates/InvenTree/settings/settings_staff_js.html:44 #: templates/currency_data.html:5 msgid "Currency" @@ -532,15 +552,15 @@ msgstr "Valuta" msgid "Select currency from available options" msgstr "Velg valuta ut fra tilgjengelige alternativer" -#: InvenTree/serializers.py:407 templates/InvenTree/settings/user.html:33 +#: InvenTree/serializers.py:405 templates/InvenTree/settings/user.html:33 msgid "Username" msgstr "Brukernavn" -#: InvenTree/serializers.py:409 templates/InvenTree/settings/user.html:37 +#: InvenTree/serializers.py:408 templates/InvenTree/settings/user.html:37 msgid "First Name" msgstr "Fornavn" -#: InvenTree/serializers.py:409 +#: InvenTree/serializers.py:408 msgid "First name of the user" msgstr "Fornavn på brukeren" @@ -552,30 +572,30 @@ msgstr "Etternavn" msgid "Last name of the user" msgstr "Etternavn på brukeren" -#: InvenTree/serializers.py:415 +#: InvenTree/serializers.py:416 msgid "Email address of the user" msgstr "E-postadressen til brukeren" -#: InvenTree/serializers.py:439 +#: InvenTree/serializers.py:441 msgid "Staff" msgstr "Personale" -#: InvenTree/serializers.py:439 +#: InvenTree/serializers.py:441 msgid "Does this user have staff permissions" msgstr "Har denne brukeren personelltillatelser" -#: InvenTree/serializers.py:442 +#: InvenTree/serializers.py:445 msgid "Superuser" msgstr "Superbruker" -#: InvenTree/serializers.py:442 +#: InvenTree/serializers.py:445 msgid "Is this user a superuser" msgstr "Er denne brukeren en superbruker" -#: InvenTree/serializers.py:445 common/models.py:2707 company/models.py:163 -#: company/models.py:801 machine/models.py:39 part/admin.py:88 -#: part/models.py:1189 plugin/models.py:66 -#: templates/js/translated/company.js:523 +#: InvenTree/serializers.py:449 common/models.py:2771 company/models.py:160 +#: company/models.py:798 machine/models.py:39 part/admin.py:88 +#: part/models.py:1250 plugin/models.py:66 +#: templates/js/translated/company.js:524 #: templates/js/translated/table_filters.js:134 #: templates/js/translated/table_filters.js:226 #: templates/js/translated/table_filters.js:513 @@ -585,230 +605,229 @@ msgstr "Er denne brukeren en superbruker" msgid "Active" msgstr "Aktiv" -#: InvenTree/serializers.py:445 +#: InvenTree/serializers.py:449 msgid "Is this user account active" msgstr "Er denne brukerkontoen aktiv" -#: InvenTree/serializers.py:463 +#: InvenTree/serializers.py:467 msgid "You do not have permission to change this user role." msgstr "Du har ikke tillatelse til å endre denne brukerrollen." -#: InvenTree/serializers.py:475 +#: InvenTree/serializers.py:503 msgid "Only superusers can create new users" msgstr "Bare superbrukere kan opprette nye brukere" -#: InvenTree/serializers.py:494 +#: InvenTree/serializers.py:523 msgid "Your account has been created." msgstr "Din konto er opprettet." -#: InvenTree/serializers.py:496 +#: InvenTree/serializers.py:525 msgid "Please use the password reset function to login" msgstr "Vennligst bruk funksjonen for å tilbakestille passord for å logge inn" -#: InvenTree/serializers.py:503 +#: InvenTree/serializers.py:531 msgid "Welcome to InvenTree" msgstr "Velkommen til InvenTree" -#: InvenTree/serializers.py:561 +#: InvenTree/serializers.py:594 msgid "Invalid value" msgstr "Ugyldig verdi" -#: InvenTree/serializers.py:581 importer/models.py:63 +#: InvenTree/serializers.py:614 importer/models.py:64 msgid "Data File" msgstr "Datafil" -#: InvenTree/serializers.py:582 +#: InvenTree/serializers.py:615 msgid "Select data file for upload" msgstr "Velg datafil for opplasting" -#: InvenTree/serializers.py:599 -msgid "Unsupported file type" -msgstr "Filtypen støttes ikke" +#: InvenTree/serializers.py:632 common/files.py:63 +msgid "Unsupported file format" +msgstr "" -#: InvenTree/serializers.py:605 +#: InvenTree/serializers.py:638 msgid "File is too large" msgstr "Filen er for stor" -#: InvenTree/serializers.py:626 +#: InvenTree/serializers.py:659 msgid "No columns found in file" msgstr "Ingen kolonner funnet i filen" -#: InvenTree/serializers.py:629 +#: InvenTree/serializers.py:662 msgid "No data rows found in file" msgstr "Ingen datarader funnet i fil" -#: InvenTree/serializers.py:742 +#: InvenTree/serializers.py:774 msgid "No data rows provided" msgstr "Ingen datarader oppgitt" -#: InvenTree/serializers.py:745 +#: InvenTree/serializers.py:777 msgid "No data columns supplied" msgstr "Ingen datakolonner angitt" -#: InvenTree/serializers.py:812 +#: InvenTree/serializers.py:843 #, python-brace-format msgid "Missing required column: '{name}'" msgstr "Mangler påkrevd kolonne: '{name}'" -#: InvenTree/serializers.py:821 +#: InvenTree/serializers.py:852 #, python-brace-format msgid "Duplicate column: '{col}'" msgstr "Dupliaktkolonne: '{col}'" -#: InvenTree/serializers.py:861 +#: InvenTree/serializers.py:891 msgid "Remote Image" msgstr "Eksternt bilde" -#: InvenTree/serializers.py:862 +#: InvenTree/serializers.py:892 msgid "URL of remote image file" msgstr "URLtil ekstern bildefil" -#: InvenTree/serializers.py:880 +#: InvenTree/serializers.py:910 msgid "Downloading images from remote URL is not enabled" msgstr "Nedlasting av bilder fra ekstern URL er ikke aktivert" -#: InvenTree/status.py:66 part/serializers.py:1246 -msgid "Background worker check failed" -msgstr "Sjekk av bakgrunnsarbeider mislyktes" - -#: InvenTree/status.py:70 -msgid "Email backend not configured" -msgstr "E-post backend ikke konfigurert" - -#: InvenTree/status.py:73 -msgid "InvenTree system health checks failed" -msgstr "InvenTree's-systemets helsesjekker mislyktes" +#: InvenTree/serializers.py:917 +msgid "Failed to download image from remote URL" +msgstr "" #: InvenTree/templatetags/inventree_extras.py:184 msgid "Unknown database" msgstr "Ukjent database" -#: InvenTree/validators.py:32 InvenTree/validators.py:34 +#: InvenTree/validators.py:32 msgid "Invalid physical unit" msgstr "Ugyldig fysisk enhet" -#: InvenTree/validators.py:40 +#: InvenTree/validators.py:38 msgid "Not a valid currency code" msgstr "Ikke en gyldig valutakode" -#: InvenTree/validators.py:118 InvenTree/validators.py:134 +#: InvenTree/validators.py:115 InvenTree/validators.py:131 msgid "Overage value must not be negative" msgstr "Svinn-verdien kan ikke være negativ" -#: InvenTree/validators.py:136 +#: InvenTree/validators.py:133 msgid "Overage must not exceed 100%" msgstr "Svinn kan ikke overstige 100%" -#: InvenTree/validators.py:142 +#: InvenTree/validators.py:139 msgid "Invalid value for overage" msgstr "Ugyldig verdi for svinn" -#: InvenTree/views.py:400 templates/InvenTree/settings/user.html:23 +#: InvenTree/views.py:399 templates/InvenTree/settings/user.html:23 msgid "Edit User Information" msgstr "Rediger brukerinformasjon" -#: InvenTree/views.py:412 templates/InvenTree/settings/user.html:20 +#: InvenTree/views.py:411 templates/InvenTree/settings/user.html:20 msgid "Set Password" msgstr "Velg passord" -#: InvenTree/views.py:434 +#: InvenTree/views.py:433 msgid "Password fields must match" msgstr "Passordfeltene må samsvare" -#: InvenTree/views.py:442 +#: InvenTree/views.py:441 msgid "Wrong password provided" msgstr "Feil passord angitt" -#: InvenTree/views.py:650 templates/navbar.html:160 +#: InvenTree/views.py:645 templates/navbar.html:160 msgid "System Information" msgstr "Systeminformasjon" -#: InvenTree/views.py:657 templates/navbar.html:171 +#: InvenTree/views.py:652 templates/navbar.html:171 msgid "About InvenTree" msgstr "Om InvenTree" -#: build/api.py:51 part/api.py:156 stock/api.py:343 -msgid "Cascade" -msgstr "" - -#: build/api.py:64 build/models.py:261 -#: build/templates/build/build_base.html:191 +#: build/api.py:54 build/models.py:262 +#: build/templates/build/build_base.html:192 #: build/templates/build/detail.html:87 msgid "Parent Build" msgstr "Overordnet produksjon" -#: build/api.py:89 order/api.py:92 templates/js/translated/table_filters.js:101 +#: build/api.py:58 build/api.py:625 order/api.py:396 order/api.py:611 +#: order/api.py:990 order/api.py:1187 +#: templates/js/translated/table_filters.js:372 +msgid "Include Variants" +msgstr "" + +#: build/api.py:93 +msgid "Ancestor Build" +msgstr "" + +#: build/api.py:112 order/api.py:90 +#: templates/js/translated/table_filters.js:101 #: templates/js/translated/table_filters.js:549 #: templates/js/translated/table_filters.js:633 #: templates/js/translated/table_filters.js:674 msgid "Assigned to me" msgstr "" -#: build/api.py:106 build/templates/build/build_base.html:205 +#: build/api.py:129 build/templates/build/build_base.html:206 #: build/templates/build/detail.html:115 #: report/templates/report/inventree_build_order_report.html:152 #: templates/js/translated/table_filters.js:552 msgid "Issued By" msgstr "Utstedt av" -#: build/api.py:125 +#: build/api.py:148 msgid "Assigned To" msgstr "" -#: build/api.py:301 +#: build/api.py:310 msgid "Build must be cancelled before it can be deleted" msgstr "Produksjonen må avbrytes før den kan slettes" -#: build/api.py:345 build/serializers.py:1288 part/models.py:4265 +#: build/api.py:354 build/serializers.py:1342 part/models.py:4322 #: templates/js/translated/bom.js:997 templates/js/translated/bom.js:1037 -#: templates/js/translated/build.js:2702 +#: templates/js/translated/build.js:2711 #: templates/js/translated/table_filters.js:197 #: templates/js/translated/table_filters.js:586 msgid "Consumable" msgstr "Forbruksvare" -#: build/api.py:346 build/serializers.py:1289 part/models.py:4259 +#: build/api.py:355 build/serializers.py:1343 part/models.py:4316 #: part/templates/part/upload_bom.html:58 templates/js/translated/bom.js:1001 -#: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2693 +#: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2702 #: templates/js/translated/table_filters.js:193 #: templates/js/translated/table_filters.js:222 #: templates/js/translated/table_filters.js:590 msgid "Optional" msgstr "Valgfritt" -#: build/api.py:347 common/models.py:1489 part/admin.py:91 part/admin.py:428 -#: part/models.py:1154 part/serializers.py:1575 +#: build/api.py:356 common/models.py:1558 part/admin.py:91 part/admin.py:428 +#: part/models.py:1215 part/serializers.py:1633 #: templates/js/translated/bom.js:1639 #: templates/js/translated/table_filters.js:337 #: templates/js/translated/table_filters.js:729 msgid "Assembly" msgstr "Sammenstilling" -#: build/api.py:348 templates/js/translated/table_filters.js:415 +#: build/api.py:357 templates/js/translated/table_filters.js:415 #: templates/js/translated/table_filters.js:582 msgid "Tracked" msgstr "Spores" -#: build/api.py:349 build/serializers.py:1290 part/models.py:1172 +#: build/api.py:358 build/serializers.py:1344 part/models.py:1233 #: templates/js/translated/table_filters.js:146 #: templates/js/translated/table_filters.js:779 msgid "Testable" msgstr "" -#: build/api.py:351 part/admin.py:144 templates/js/translated/build.js:1917 -#: templates/js/translated/build.js:2820 -#: templates/js/translated/sales_order.js:1965 +#: build/api.py:360 order/api.py:779 part/admin.py:144 +#: templates/js/translated/build.js:1920 templates/js/translated/build.js:2838 +#: templates/js/translated/sales_order.js:1946 #: templates/js/translated/table_filters.js:574 msgid "Allocated" msgstr "Tildelt" -#: build/api.py:359 company/models.py:891 company/serializers.py:395 -#: company/templates/company/supplier_part.html:114 +#: build/api.py:368 company/models.py:888 company/serializers.py:399 +#: company/templates/company/supplier_part.html:115 #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:17 -#: templates/js/translated/bom.js:1162 templates/js/translated/build.js:2752 +#: templates/js/translated/bom.js:1162 templates/js/translated/build.js:2770 #: templates/js/translated/index.js:123 -#: templates/js/translated/model_renderers.js:235 +#: templates/js/translated/model_renderers.js:238 #: templates/js/translated/part.js:695 templates/js/translated/part.js:697 #: templates/js/translated/part.js:702 #: templates/js/translated/table_filters.js:347 @@ -816,16 +835,68 @@ msgstr "Tildelt" msgid "Available" msgstr "Tilgjengelig" -#: build/models.py:86 build/templates/build/build_base.html:9 -#: build/templates/build/build_base.html:27 +#: build/api.py:640 build/models.py:268 build/serializers.py:1330 +#: build/templates/build/build_base.html:106 +#: build/templates/build/detail.html:29 company/models.py:1043 order/api.py:775 +#: order/api.py:1003 order/models.py:1519 order/models.py:1674 +#: order/models.py:1675 part/api.py:1495 part/api.py:1802 part/models.py:419 +#: part/models.py:3177 part/models.py:3321 part/models.py:3469 +#: part/models.py:3490 part/models.py:3512 part/models.py:3648 +#: part/models.py:3995 part/models.py:4158 part/models.py:4288 +#: part/models.py:4654 part/serializers.py:1245 part/serializers.py:1898 +#: part/templates/part/part_app_base.html:8 +#: part/templates/part/part_pricing.html:12 +#: part/templates/part/upload_bom.html:52 +#: report/templates/report/inventree_bill_of_materials_report.html:110 +#: report/templates/report/inventree_bill_of_materials_report.html:137 +#: report/templates/report/inventree_build_order_report.html:109 +#: report/templates/report/inventree_purchase_order_report.html:27 +#: report/templates/report/inventree_return_order_report.html:24 +#: report/templates/report/inventree_sales_order_report.html:27 +#: report/templates/report/inventree_sales_order_shipment_report.html:28 +#: report/templates/report/inventree_stock_location_report.html:102 +#: stock/serializers.py:112 stock/serializers.py:160 stock/serializers.py:456 +#: stock/serializers.py:947 templates/InvenTree/search.html:82 +#: templates/email/build_order_completed.html:17 +#: templates/email/build_order_required_stock.html:17 +#: templates/email/low_stock_notification.html:15 +#: templates/email/overdue_build_order.html:16 +#: templates/js/translated/barcode.js:577 templates/js/translated/bom.js:632 +#: templates/js/translated/bom.js:769 templates/js/translated/bom.js:905 +#: templates/js/translated/build.js:1005 templates/js/translated/build.js:1488 +#: templates/js/translated/build.js:1919 templates/js/translated/build.js:2337 +#: templates/js/translated/build.js:2514 templates/js/translated/company.js:349 +#: templates/js/translated/company.js:1117 +#: templates/js/translated/company.js:1272 +#: templates/js/translated/company.js:1560 templates/js/translated/index.js:109 +#: templates/js/translated/part.js:1950 templates/js/translated/part.js:2022 +#: templates/js/translated/part.js:2330 templates/js/translated/pricing.js:369 +#: templates/js/translated/purchase_order.js:734 +#: templates/js/translated/purchase_order.js:1350 +#: templates/js/translated/purchase_order.js:1902 +#: templates/js/translated/purchase_order.js:2061 +#: templates/js/translated/return_order.js:538 +#: templates/js/translated/return_order.js:708 +#: templates/js/translated/sales_order.js:1199 +#: templates/js/translated/sales_order.js:1608 +#: templates/js/translated/sales_order.js:1813 +#: templates/js/translated/stock.js:682 templates/js/translated/stock.js:848 +#: templates/js/translated/stock.js:1065 templates/js/translated/stock.js:2083 +#: templates/js/translated/stock.js:2942 templates/js/translated/stock.js:3175 +#: templates/js/translated/stock.js:3320 +msgid "Part" +msgstr "Del" + +#: build/api.py:662 build/models.py:88 build/templates/build/build_base.html:10 +#: build/templates/build/build_base.html:28 #: report/templates/report/inventree_build_order_report.html:105 -#: stock/serializers.py:84 templates/email/build_order_completed.html:16 +#: stock/serializers.py:85 templates/email/build_order_completed.html:16 #: templates/email/overdue_build_order.html:15 -#: templates/js/translated/build.js:1145 templates/js/translated/stock.js:2976 +#: templates/js/translated/build.js:1148 templates/js/translated/stock.js:2977 msgid "Build Order" msgstr "Produksjonsordre" -#: build/models.py:87 build/templates/build/build_base.html:13 +#: build/models.py:89 build/templates/build/build_base.html:14 #: build/templates/build/index.html:8 build/templates/build/index.html:12 #: order/templates/order/sales_order_detail.html:111 #: order/templates/order/so_sidebar.html:13 @@ -836,268 +907,216 @@ msgstr "Produksjonsordre" msgid "Build Orders" msgstr "Produksjonsordrer" -#: build/models.py:135 +#: build/models.py:136 msgid "Assembly BOM has not been validated" msgstr "Sammenstillings-BOMen er ikke godkjent" -#: build/models.py:142 +#: build/models.py:143 msgid "Build order cannot be created for an inactive part" msgstr "Produksjonsordre kan ikke opprettes for en inaktiv del" -#: build/models.py:149 +#: build/models.py:150 msgid "Build order cannot be created for an unlocked part" msgstr "Produksjonsordre kan ikke opprettes for en ulåst del" -#: build/models.py:163 +#: build/models.py:164 msgid "Invalid choice for parent build" msgstr "Ugyldig valg for overordnet produksjon" -#: build/models.py:174 order/models.py:239 +#: build/models.py:175 order/models.py:236 msgid "Responsible user or group must be specified" msgstr "Ansvarlig bruker eller gruppe må spesifiseres" -#: build/models.py:180 +#: build/models.py:181 msgid "Build order part cannot be changed" msgstr "Produksjonsordrens del kan ikke endres" -#: build/models.py:241 +#: build/models.py:242 msgid "Build Order Reference" msgstr "Produksjonsordre-referanse" -#: build/models.py:242 build/serializers.py:1287 order/models.py:467 -#: order/models.py:978 order/models.py:1373 order/models.py:2135 -#: part/admin.py:414 part/models.py:4280 part/templates/part/upload_bom.html:54 +#: build/models.py:243 build/serializers.py:1341 order/models.py:479 +#: order/models.py:1005 order/models.py:1390 order/models.py:2174 +#: part/admin.py:414 part/models.py:4337 part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_bill_of_materials_report.html:139 #: report/templates/report/inventree_purchase_order_report.html:28 #: report/templates/report/inventree_return_order_report.html:26 #: report/templates/report/inventree_sales_order_report.html:28 #: templates/js/translated/bom.js:770 templates/js/translated/bom.js:973 -#: templates/js/translated/build.js:1011 templates/js/translated/build.js:2685 +#: templates/js/translated/build.js:1014 templates/js/translated/build.js:2694 #: templates/js/translated/order.js:316 templates/js/translated/pricing.js:386 -#: templates/js/translated/purchase_order.js:2135 +#: templates/js/translated/purchase_order.js:2119 #: templates/js/translated/return_order.js:727 -#: templates/js/translated/sales_order.js:1854 +#: templates/js/translated/sales_order.js:1835 msgid "Reference" msgstr "Referanse" -#: build/models.py:253 +#: build/models.py:254 msgid "Brief description of the build (optional)" msgstr "Kort beskrivelse av produksjonen (valgfritt)" -#: build/models.py:262 +#: build/models.py:263 msgid "BuildOrder to which this build is allocated" msgstr "Produksjonsordre som denne produksjonen er tildelt" -#: build/models.py:267 build/serializers.py:1278 -#: build/templates/build/build_base.html:105 -#: build/templates/build/detail.html:29 company/models.py:1046 order/api.py:767 -#: order/models.py:1503 order/models.py:1658 order/models.py:1659 -#: part/api.py:1509 part/api.py:1813 part/models.py:424 part/models.py:3126 -#: part/models.py:3270 part/models.py:3418 part/models.py:3439 -#: part/models.py:3461 part/models.py:3597 part/models.py:3937 -#: part/models.py:4100 part/models.py:4231 part/models.py:4592 -#: part/serializers.py:1192 part/serializers.py:1836 -#: part/templates/part/part_app_base.html:8 -#: part/templates/part/part_pricing.html:12 -#: part/templates/part/upload_bom.html:52 -#: report/templates/report/inventree_bill_of_materials_report.html:110 -#: report/templates/report/inventree_bill_of_materials_report.html:137 -#: report/templates/report/inventree_build_order_report.html:109 -#: report/templates/report/inventree_purchase_order_report.html:27 -#: report/templates/report/inventree_return_order_report.html:24 -#: report/templates/report/inventree_sales_order_report.html:27 -#: report/templates/report/inventree_stock_location_report.html:102 -#: stock/serializers.py:111 stock/serializers.py:159 stock/serializers.py:446 -#: stock/serializers.py:916 templates/InvenTree/search.html:82 -#: templates/email/build_order_completed.html:17 -#: templates/email/build_order_required_stock.html:17 -#: templates/email/low_stock_notification.html:15 -#: templates/email/overdue_build_order.html:16 -#: templates/js/translated/barcode.js:577 templates/js/translated/bom.js:632 -#: templates/js/translated/bom.js:769 templates/js/translated/bom.js:905 -#: templates/js/translated/build.js:1002 templates/js/translated/build.js:1485 -#: templates/js/translated/build.js:1916 templates/js/translated/build.js:2334 -#: templates/js/translated/build.js:2507 templates/js/translated/company.js:348 -#: templates/js/translated/company.js:1116 -#: templates/js/translated/company.js:1271 -#: templates/js/translated/company.js:1559 templates/js/translated/index.js:109 -#: templates/js/translated/part.js:1950 templates/js/translated/part.js:2022 -#: templates/js/translated/part.js:2330 templates/js/translated/pricing.js:369 -#: templates/js/translated/purchase_order.js:751 -#: templates/js/translated/purchase_order.js:1367 -#: templates/js/translated/purchase_order.js:1918 -#: templates/js/translated/purchase_order.js:2077 -#: templates/js/translated/return_order.js:538 -#: templates/js/translated/return_order.js:708 -#: templates/js/translated/sales_order.js:300 -#: templates/js/translated/sales_order.js:1233 -#: templates/js/translated/sales_order.js:1634 -#: templates/js/translated/sales_order.js:1832 -#: templates/js/translated/stock.js:682 templates/js/translated/stock.js:848 -#: templates/js/translated/stock.js:1065 templates/js/translated/stock.js:2082 -#: templates/js/translated/stock.js:2941 templates/js/translated/stock.js:3174 -#: templates/js/translated/stock.js:3319 -msgid "Part" -msgstr "Del" - -#: build/models.py:275 +#: build/models.py:274 msgid "Select part to build" msgstr "Velg del å produsere" -#: build/models.py:280 +#: build/models.py:279 msgid "Sales Order Reference" msgstr "Salgsordrereferanse" -#: build/models.py:284 +#: build/models.py:283 msgid "SalesOrder to which this build is allocated" msgstr "Salgsordren denne produksjonen er tildelt til" -#: build/models.py:289 build/serializers.py:1048 -#: templates/js/translated/build.js:1904 -#: templates/js/translated/sales_order.js:1221 +#: build/models.py:288 build/serializers.py:1092 +#: templates/js/translated/build.js:1907 +#: templates/js/translated/sales_order.js:1187 msgid "Source Location" msgstr "Kildeplassering" -#: build/models.py:293 +#: build/models.py:292 msgid "Select location to take stock from for this build (leave blank to take from any stock location)" msgstr "Velg plassering å ta lagerbeholdning fra for denne produksjonen (la stå tomt for a ta fra alle lagerplasseringer)" -#: build/models.py:298 +#: build/models.py:297 msgid "Destination Location" msgstr "Fullført plassering" -#: build/models.py:302 +#: build/models.py:301 msgid "Select location where the completed items will be stored" msgstr "Velg plassering der fullførte artikler vil bli lagret" -#: build/models.py:306 +#: build/models.py:305 msgid "Build Quantity" msgstr "Produksjonsmengde" -#: build/models.py:309 +#: build/models.py:308 msgid "Number of stock items to build" msgstr "Antall lagervarer å produsere" -#: build/models.py:313 +#: build/models.py:312 msgid "Completed items" msgstr "Fullførte artikler" -#: build/models.py:315 +#: build/models.py:314 msgid "Number of stock items which have been completed" msgstr "Antall lagervarer som er fullført" -#: build/models.py:319 +#: build/models.py:318 msgid "Build Status" msgstr "Produksjonsstatus" -#: build/models.py:323 +#: build/models.py:322 msgid "Build status code" msgstr "Produksjonsstatuskode" -#: build/models.py:332 build/serializers.py:302 build/serializers.py:1198 -#: order/serializers.py:670 stock/models.py:859 stock/serializers.py:76 -#: stock/serializers.py:1562 templates/js/translated/purchase_order.js:1129 +#: build/models.py:331 build/serializers.py:349 build/serializers.py:1243 +#: order/serializers.py:755 stock/models.py:936 stock/serializers.py:77 +#: stock/serializers.py:1593 templates/js/translated/purchase_order.js:1112 #: templates/js/translated/stock.js:1199 msgid "Batch Code" msgstr "Batchkode" -#: build/models.py:336 build/serializers.py:303 +#: build/models.py:335 build/serializers.py:350 msgid "Batch code for this build output" msgstr "Batchkode for denne produksjonsartikkelen" -#: build/models.py:339 order/models.py:315 order/serializers.py:126 -#: part/models.py:1229 part/templates/part/part_base.html:319 +#: build/models.py:338 order/models.py:322 order/serializers.py:157 +#: part/models.py:1290 part/templates/part/part_base.html:327 #: templates/js/translated/return_order.js:338 -#: templates/js/translated/sales_order.js:863 +#: templates/js/translated/sales_order.js:822 msgid "Creation Date" msgstr "Opprettelsesdato" -#: build/models.py:343 +#: build/models.py:342 msgid "Target completion date" msgstr "Forventet sluttdato" -#: build/models.py:344 +#: build/models.py:343 msgid "Target date for build completion. Build will be overdue after this date." msgstr "Måldato for ferdigstillelse. Produksjonen vil være forfalt etter denne datoen." -#: build/models.py:347 order/models.py:526 order/models.py:2180 -#: templates/js/translated/build.js:2419 +#: build/models.py:346 order/models.py:538 order/models.py:2219 +#: templates/js/translated/build.js:2422 msgid "Completion Date" msgstr "Fullført dato" -#: build/models.py:353 +#: build/models.py:352 msgid "completed by" msgstr "fullført av" -#: build/models.py:361 templates/js/translated/build.js:2379 +#: build/models.py:360 templates/js/translated/build.js:2382 msgid "Issued by" msgstr "Utstedt av" -#: build/models.py:362 +#: build/models.py:361 msgid "User who issued this build order" msgstr "Brukeren som utstedte denne produksjonsordren" -#: build/models.py:370 build/templates/build/build_base.html:212 -#: build/templates/build/detail.html:122 common/models.py:165 order/api.py:142 -#: order/models.py:333 order/templates/order/order_base.html:222 -#: order/templates/order/return_order_base.html:191 -#: order/templates/order/sales_order_base.html:235 part/models.py:1246 -#: part/templates/part/part_base.html:399 +#: build/models.py:369 build/templates/build/build_base.html:213 +#: build/templates/build/detail.html:122 common/models.py:168 order/api.py:140 +#: order/models.py:340 order/templates/order/order_base.html:231 +#: order/templates/order/return_order_base.html:192 +#: order/templates/order/sales_order_base.html:236 part/models.py:1307 +#: part/templates/part/part_base.html:407 #: report/templates/report/inventree_build_order_report.html:158 #: templates/InvenTree/settings/settings_staff_js.html:150 -#: templates/js/translated/build.js:2391 -#: templates/js/translated/purchase_order.js:1833 +#: templates/js/translated/build.js:2394 +#: templates/js/translated/purchase_order.js:1817 #: templates/js/translated/return_order.js:358 #: templates/js/translated/table_filters.js:551 msgid "Responsible" msgstr "Ansvarlig" -#: build/models.py:371 +#: build/models.py:370 msgid "User or group responsible for this build order" msgstr "Bruker eller gruppe ansvarlig for produksjonsordren" -#: build/models.py:376 build/templates/build/detail.html:108 +#: build/models.py:375 build/templates/build/detail.html:108 #: company/templates/company/manufacturer_part.html:107 -#: company/templates/company/supplier_part.html:194 -#: order/templates/order/order_base.html:172 -#: order/templates/order/return_order_base.html:148 -#: order/templates/order/sales_order_base.html:187 -#: part/templates/part/part_base.html:392 stock/models.py:855 -#: stock/templates/stock/item_base.html:200 -#: templates/js/translated/company.js:1019 +#: company/templates/company/supplier_part.html:195 +#: order/templates/order/order_base.html:181 +#: order/templates/order/return_order_base.html:149 +#: order/templates/order/sales_order_base.html:188 +#: part/templates/part/part_base.html:400 stock/models.py:932 +#: stock/templates/stock/item_base.html:197 +#: templates/js/translated/company.js:1020 msgid "External Link" msgstr "Ekstern lenke" -#: build/models.py:377 common/models.py:3273 part/models.py:1058 -#: stock/models.py:855 +#: build/models.py:376 common/models.py:3334 part/models.py:1119 +#: stock/models.py:932 msgid "Link to external URL" msgstr "Lenke til ekstern URL" -#: build/models.py:381 +#: build/models.py:380 msgid "Build Priority" msgstr "Produksjonsprioritet" -#: build/models.py:384 +#: build/models.py:383 msgid "Priority of this build order" msgstr "Produksjonsordrens prioritet" -#: build/models.py:391 common/models.py:135 common/models.py:149 -#: order/admin.py:18 order/api.py:128 order/models.py:297 +#: build/models.py:390 common/models.py:138 common/models.py:152 +#: order/admin.py:18 order/api.py:126 order/models.py:304 #: templates/InvenTree/settings/settings_staff_js.html:146 -#: templates/js/translated/build.js:2316 -#: templates/js/translated/purchase_order.js:1780 +#: templates/js/translated/build.js:2319 +#: templates/js/translated/purchase_order.js:1764 #: templates/js/translated/return_order.js:317 -#: templates/js/translated/sales_order.js:842 +#: templates/js/translated/sales_order.js:801 #: templates/js/translated/table_filters.js:47 #: templates/project_code_data.html:6 msgid "Project Code" msgstr "Prosjektkode" -#: build/models.py:392 +#: build/models.py:391 msgid "Project code for this build order" msgstr "Prosjektkode for denne produksjonsordren" -#: build/models.py:651 build/models.py:778 +#: build/models.py:651 build/models.py:779 msgid "Failed to offload task to complete build allocations" msgstr "Kunne ikke delegere bort oppgaven for å fullføre tildelinger" @@ -1110,610 +1129,619 @@ msgstr "Produksjonsordre {build} er fullført" msgid "A build order has been completed" msgstr "En produksjonsordre er fullført" -#: build/models.py:967 build/models.py:1055 +#: build/models.py:858 build/serializers.py:393 +msgid "Serial numbers must be provided for trackable parts" +msgstr "Serienumre må angis for sporbare deler" + +#: build/models.py:969 build/models.py:1058 msgid "No build output specified" msgstr "Ingen produksjonsartikkel spesifisert" -#: build/models.py:970 +#: build/models.py:972 msgid "Build output is already completed" msgstr "Produksjonsartikkelen er allerede fullført" -#: build/models.py:973 +#: build/models.py:975 msgid "Build output does not match Build Order" msgstr "Produksjonsartikkelen samsvarer ikke med produksjonsordren" -#: build/models.py:1059 build/serializers.py:235 build/serializers.py:284 -#: build/serializers.py:915 order/models.py:564 order/serializers.py:499 -#: order/serializers.py:665 part/serializers.py:1569 part/serializers.py:1999 -#: stock/models.py:700 stock/models.py:1520 stock/serializers.py:669 +#: build/models.py:1062 build/serializers.py:282 build/serializers.py:331 +#: build/serializers.py:959 order/models.py:586 order/serializers.py:584 +#: order/serializers.py:750 part/serializers.py:1627 part/serializers.py:2060 +#: stock/models.py:777 stock/models.py:1609 stock/serializers.py:696 msgid "Quantity must be greater than zero" msgstr "Mengden må være større enn null" -#: build/models.py:1064 build/serializers.py:240 +#: build/models.py:1067 build/serializers.py:287 msgid "Quantity cannot be greater than the output quantity" msgstr "Kvantitet kan ikke være større enn utgangsantallet" -#: build/models.py:1124 build/serializers.py:563 +#: build/models.py:1127 build/serializers.py:607 #, python-brace-format msgid "Build output {serial} has not passed all required tests" msgstr "Produksjonsartikkel {serial} har ikke bestått alle påkrevde tester" -#: build/models.py:1465 +#: build/models.py:1482 msgid "Build Order Line Item" msgstr "Produksjonsartikkel" -#: build/models.py:1490 +#: build/models.py:1507 msgid "Build object" msgstr "Produksjonsobjekt" -#: build/models.py:1504 build/models.py:1760 build/serializers.py:222 -#: build/serializers.py:269 build/serializers.py:1295 -#: build/templates/build/build_base.html:110 -#: build/templates/build/detail.html:34 common/models.py:2579 -#: order/models.py:1356 order/models.py:2041 order/serializers.py:1460 +#: build/models.py:1521 build/models.py:1787 build/serializers.py:269 +#: build/serializers.py:316 build/serializers.py:1349 +#: build/templates/build/build_base.html:111 +#: build/templates/build/detail.html:34 common/models.py:2643 +#: order/models.py:1373 order/models.py:2074 order/serializers.py:1586 #: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:413 -#: part/forms.py:48 part/models.py:3284 part/models.py:4253 -#: part/templates/part/part_pricing.html:16 +#: part/forms.py:48 part/models.py:3335 part/models.py:4310 +#: part/serializers.py:265 part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_bill_of_materials_report.html:138 #: report/templates/report/inventree_build_order_report.html:113 #: report/templates/report/inventree_purchase_order_report.html:29 #: report/templates/report/inventree_sales_order_report.html:29 +#: report/templates/report/inventree_sales_order_shipment_report.html:47 +#: report/templates/report/inventree_sales_order_shipment_report.html:49 #: report/templates/report/inventree_stock_location_report.html:104 #: report/templates/report/inventree_test_report.html:90 -#: report/templates/report/inventree_test_report.html:169 stock/admin.py:159 -#: stock/serializers.py:127 stock/serializers.py:167 stock/serializers.py:660 -#: stock/templates/stock/item_base.html:287 -#: stock/templates/stock/item_base.html:295 -#: stock/templates/stock/item_base.html:342 +#: report/templates/report/inventree_test_report.html:169 stock/admin.py:160 +#: stock/serializers.py:128 stock/serializers.py:168 stock/serializers.py:687 +#: stock/templates/stock/item_base.html:284 +#: stock/templates/stock/item_base.html:292 +#: stock/templates/stock/item_base.html:339 #: templates/email/build_order_completed.html:18 #: templates/js/translated/barcode.js:579 templates/js/translated/bom.js:771 -#: templates/js/translated/bom.js:981 templates/js/translated/build.js:522 -#: templates/js/translated/build.js:737 templates/js/translated/build.js:1542 -#: templates/js/translated/build.js:1919 templates/js/translated/build.js:2529 -#: templates/js/translated/company.js:1818 -#: templates/js/translated/model_renderers.js:237 +#: templates/js/translated/bom.js:981 templates/js/translated/build.js:525 +#: templates/js/translated/build.js:740 templates/js/translated/build.js:1545 +#: templates/js/translated/build.js:1922 templates/js/translated/build.js:2536 +#: templates/js/translated/company.js:1819 +#: templates/js/translated/model_renderers.js:240 #: templates/js/translated/order.js:329 templates/js/translated/part.js:968 -#: templates/js/translated/part.js:1818 templates/js/translated/part.js:3360 +#: templates/js/translated/part.js:1818 templates/js/translated/part.js:3376 #: templates/js/translated/pricing.js:381 #: templates/js/translated/pricing.js:474 #: templates/js/translated/pricing.js:522 #: templates/js/translated/pricing.js:616 -#: templates/js/translated/purchase_order.js:754 -#: templates/js/translated/purchase_order.js:1922 -#: templates/js/translated/purchase_order.js:2141 -#: templates/js/translated/sales_order.js:317 -#: templates/js/translated/sales_order.js:1235 -#: templates/js/translated/sales_order.js:1554 -#: templates/js/translated/sales_order.js:1644 -#: templates/js/translated/sales_order.js:1734 -#: templates/js/translated/sales_order.js:1860 +#: templates/js/translated/purchase_order.js:737 +#: templates/js/translated/purchase_order.js:1906 +#: templates/js/translated/purchase_order.js:2125 +#: templates/js/translated/sales_order.js:1201 +#: templates/js/translated/sales_order.js:1520 +#: templates/js/translated/sales_order.js:1625 +#: templates/js/translated/sales_order.js:1715 +#: templates/js/translated/sales_order.js:1841 #: templates/js/translated/stock.js:570 templates/js/translated/stock.js:708 -#: templates/js/translated/stock.js:879 templates/js/translated/stock.js:3105 -#: templates/js/translated/stock.js:3188 +#: templates/js/translated/stock.js:879 templates/js/translated/stock.js:3106 +#: templates/js/translated/stock.js:3189 msgid "Quantity" msgstr "Antall" -#: build/models.py:1505 +#: build/models.py:1522 msgid "Required quantity for build order" msgstr "Påkrevd antall for produksjonsordre" -#: build/models.py:1585 +#: build/models.py:1602 msgid "Build item must specify a build output, as master part is marked as trackable" msgstr "Produksjonselement må spesifisere en produksjonsartikkel, da master-del er merket som sporbar" -#: build/models.py:1594 +#: build/models.py:1611 #, python-brace-format msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgstr "Tildelt antall ({q}) kan ikke overstige tilgjengelig lagerbeholdning ({a})" -#: build/models.py:1604 order/models.py:1992 +#: build/models.py:1628 order/models.py:2025 msgid "Stock item is over-allocated" msgstr "Lagervaren er overtildelt" -#: build/models.py:1610 order/models.py:1995 +#: build/models.py:1634 order/models.py:2028 msgid "Allocation quantity must be greater than zero" msgstr "Tildelingsantall må være større enn null" -#: build/models.py:1616 +#: build/models.py:1640 msgid "Quantity must be 1 for serialized stock" msgstr "Mengden må være 1 for serialisert lagervare" -#: build/models.py:1675 +#: build/models.py:1699 msgid "Selected stock item does not match BOM line" msgstr "Valgt lagervare samsvarer ikke med BOM-linjen" -#: build/models.py:1747 build/serializers.py:895 order/serializers.py:1297 -#: order/serializers.py:1318 stock/models.py:376 stock/serializers.py:93 -#: stock/serializers.py:763 stock/serializers.py:1281 stock/serializers.py:1393 -#: stock/templates/stock/item_base.html:10 -#: stock/templates/stock/item_base.html:23 -#: stock/templates/stock/item_base.html:194 -#: templates/js/translated/build.js:1918 -#: templates/js/translated/sales_order.js:301 -#: templates/js/translated/sales_order.js:1234 -#: templates/js/translated/sales_order.js:1535 -#: templates/js/translated/sales_order.js:1540 -#: templates/js/translated/sales_order.js:1641 -#: templates/js/translated/sales_order.js:1728 +#: build/models.py:1774 build/serializers.py:939 order/serializers.py:1423 +#: order/serializers.py:1444 +#: report/templates/report/inventree_sales_order_shipment_report.html:29 +#: stock/models.py:382 stock/serializers.py:94 stock/serializers.py:794 +#: stock/serializers.py:1312 stock/serializers.py:1424 +#: stock/templates/stock/item_base.html:11 +#: stock/templates/stock/item_base.html:24 +#: stock/templates/stock/item_base.html:191 +#: templates/js/translated/build.js:1921 +#: templates/js/translated/sales_order.js:1200 +#: templates/js/translated/sales_order.js:1501 +#: templates/js/translated/sales_order.js:1506 +#: templates/js/translated/sales_order.js:1622 +#: templates/js/translated/sales_order.js:1709 #: templates/js/translated/stock.js:683 templates/js/translated/stock.js:849 -#: templates/js/translated/stock.js:3061 +#: templates/js/translated/stock.js:3062 msgid "Stock Item" msgstr "Lagervare" -#: build/models.py:1748 +#: build/models.py:1775 msgid "Source stock item" msgstr "Kildelagervare" -#: build/models.py:1761 +#: build/models.py:1788 msgid "Stock quantity to allocate to build" msgstr "Lagerantall å tildele til produksjonen" -#: build/models.py:1769 +#: build/models.py:1796 msgid "Install into" msgstr "Monteres i" -#: build/models.py:1770 +#: build/models.py:1797 msgid "Destination stock item" msgstr "Lagervare for montering" -#: build/serializers.py:91 +#: build/serializers.py:108 msgid "Build Level" msgstr "" -#: build/serializers.py:99 build/serializers.py:1190 build/serializers.py:1279 -#: part/admin.py:41 part/admin.py:408 part/models.py:4102 part/stocktake.py:219 -#: stock/admin.py:156 +#: build/serializers.py:116 build/serializers.py:1235 build/serializers.py:1331 +#: part/admin.py:41 part/admin.py:408 part/models.py:4160 part/stocktake.py:219 +#: stock/admin.py:157 msgid "Part Name" msgstr "Delnavn" -#: build/serializers.py:111 +#: build/serializers.py:128 msgid "Project Code Label" msgstr "Etikett for prosjektkode" -#: build/serializers.py:172 build/serializers.py:924 -#: templates/js/translated/build.js:1042 templates/js/translated/build.js:1495 +#: build/serializers.py:134 +msgid "Create Child Builds" +msgstr "" + +#: build/serializers.py:135 +msgid "Automatically generate child build orders" +msgstr "" + +#: build/serializers.py:219 build/serializers.py:968 +#: templates/js/translated/build.js:1045 templates/js/translated/build.js:1498 msgid "Build Output" msgstr "Produksjonsartikkel" -#: build/serializers.py:184 +#: build/serializers.py:231 msgid "Build output does not match the parent build" msgstr "Produksjonsartikkel samsvarer ikke med overordnet produksjon" -#: build/serializers.py:188 +#: build/serializers.py:235 msgid "Output part does not match BuildOrder part" msgstr "Resultatdel samsvarer ikke med produksjonsordredel" -#: build/serializers.py:192 +#: build/serializers.py:239 msgid "This build output has already been completed" msgstr "Denne produksjonsartikkelen er allerede fullført" -#: build/serializers.py:203 +#: build/serializers.py:250 msgid "This build output is not fully allocated" msgstr "Denne produksjonsartikkelen er ikke fullt tildelt" -#: build/serializers.py:223 build/serializers.py:270 +#: build/serializers.py:270 build/serializers.py:317 msgid "Enter quantity for build output" msgstr "Angi antall for produksjonsartikkel" -#: build/serializers.py:291 +#: build/serializers.py:338 msgid "Integer quantity required for trackable parts" msgstr "Heltallsverdi kreves for sporbare deler" -#: build/serializers.py:294 +#: build/serializers.py:341 msgid "Integer quantity required, as the bill of materials contains trackable parts" msgstr "Heltallsverdi kreves, da stykklisten inneholder sporbare deler" -#: build/serializers.py:309 order/serializers.py:678 order/serializers.py:1464 -#: stock/serializers.py:680 templates/js/translated/purchase_order.js:1154 +#: build/serializers.py:356 order/serializers.py:763 order/serializers.py:1590 +#: stock/serializers.py:707 templates/js/translated/purchase_order.js:1137 #: templates/js/translated/stock.js:373 templates/js/translated/stock.js:571 msgid "Serial Numbers" msgstr "Serienummer" -#: build/serializers.py:310 +#: build/serializers.py:357 msgid "Enter serial numbers for build outputs" msgstr "Angi serienummer for produksjonsartikler" -#: build/serializers.py:315 build/serializers.py:456 build/serializers.py:528 -#: order/serializers.py:654 order/serializers.py:778 order/serializers.py:1781 -#: part/serializers.py:1212 stock/serializers.py:102 stock/serializers.py:691 -#: stock/serializers.py:851 stock/serializers.py:977 stock/serializers.py:1425 -#: stock/serializers.py:1681 stock/templates/stock/item_base.html:394 +#: build/serializers.py:362 build/serializers.py:500 build/serializers.py:572 +#: order/serializers.py:739 order/serializers.py:880 order/serializers.py:1933 +#: part/serializers.py:1265 stock/serializers.py:103 stock/serializers.py:718 +#: stock/serializers.py:882 stock/serializers.py:1008 stock/serializers.py:1456 +#: stock/serializers.py:1712 stock/templates/stock/item_base.html:391 #: templates/js/translated/barcode.js:578 -#: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1032 -#: templates/js/translated/build.js:1174 templates/js/translated/build.js:2544 -#: templates/js/translated/purchase_order.js:1210 -#: templates/js/translated/purchase_order.js:1320 -#: templates/js/translated/sales_order.js:1547 -#: templates/js/translated/sales_order.js:1655 -#: templates/js/translated/sales_order.js:1663 -#: templates/js/translated/sales_order.js:1742 +#: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1035 +#: templates/js/translated/build.js:1177 templates/js/translated/build.js:2551 +#: templates/js/translated/purchase_order.js:1193 +#: templates/js/translated/purchase_order.js:1303 +#: templates/js/translated/sales_order.js:1513 +#: templates/js/translated/sales_order.js:1636 +#: templates/js/translated/sales_order.js:1644 +#: templates/js/translated/sales_order.js:1723 #: templates/js/translated/stock.js:684 templates/js/translated/stock.js:850 -#: templates/js/translated/stock.js:1067 templates/js/translated/stock.js:2286 -#: templates/js/translated/stock.js:2955 +#: templates/js/translated/stock.js:1067 templates/js/translated/stock.js:2287 +#: templates/js/translated/stock.js:2956 msgid "Location" msgstr "Plassering" -#: build/serializers.py:316 +#: build/serializers.py:363 msgid "Stock location for build output" msgstr "Lagerplassering for produksjonsartikkel" -#: build/serializers.py:330 +#: build/serializers.py:377 msgid "Auto Allocate Serial Numbers" msgstr "Automatisk tildeling av serienummer" -#: build/serializers.py:331 +#: build/serializers.py:378 msgid "Automatically allocate required items with matching serial numbers" msgstr "Automatisk tildeling av nødvendige artikler med tilsvarende serienummer" -#: build/serializers.py:346 -msgid "Serial numbers must be provided for trackable parts" -msgstr "Serienumre må angis for sporbare deler" - -#: build/serializers.py:371 stock/api.py:1031 +#: build/serializers.py:415 order/serializers.py:858 stock/api.py:1017 +#: stock/models.py:1632 msgid "The following serial numbers already exist or are invalid" msgstr "Følgende serienummer finnes allerede eller er ugyldige" -#: build/serializers.py:418 build/serializers.py:480 build/serializers.py:569 +#: build/serializers.py:462 build/serializers.py:524 build/serializers.py:613 msgid "A list of build outputs must be provided" msgstr "En liste over produksjonsartikler må oppgis" -#: build/serializers.py:457 +#: build/serializers.py:501 msgid "Stock location for scrapped outputs" msgstr "Lagerplassering for skrotede produksjonsartikler" -#: build/serializers.py:463 +#: build/serializers.py:507 msgid "Discard Allocations" msgstr "Forkast tildelinger" -#: build/serializers.py:464 +#: build/serializers.py:508 msgid "Discard any stock allocations for scrapped outputs" msgstr "Forkast tildelinger fra skrotede produksjonsartikler" -#: build/serializers.py:469 +#: build/serializers.py:513 msgid "Reason for scrapping build output(s)" msgstr "Grunn for skroting av produksjonsartikler" -#: build/serializers.py:529 +#: build/serializers.py:573 msgid "Location for completed build outputs" msgstr "Plassering for ferdige produksjonsartikler" -#: build/serializers.py:535 build/templates/build/build_base.html:159 -#: build/templates/build/detail.html:62 order/models.py:476 -#: order/models.py:1002 order/models.py:2159 order/serializers.py:686 -#: stock/admin.py:164 stock/serializers.py:1028 stock/serializers.py:1569 -#: stock/templates/stock/item_base.html:427 -#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2363 -#: templates/js/translated/purchase_order.js:1371 -#: templates/js/translated/purchase_order.js:1792 +#: build/serializers.py:579 build/templates/build/build_base.html:160 +#: build/templates/build/detail.html:62 order/models.py:488 +#: order/models.py:1029 order/models.py:2198 order/serializers.py:771 +#: stock/admin.py:165 stock/serializers.py:581 stock/serializers.py:1059 +#: stock/serializers.py:1600 stock/templates/stock/item_base.html:424 +#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2366 +#: templates/js/translated/purchase_order.js:1354 +#: templates/js/translated/purchase_order.js:1776 #: templates/js/translated/return_order.js:330 -#: templates/js/translated/sales_order.js:855 -#: templates/js/translated/stock.js:2261 templates/js/translated/stock.js:3079 -#: templates/js/translated/stock.js:3204 +#: templates/js/translated/sales_order.js:814 +#: templates/js/translated/stock.js:2262 templates/js/translated/stock.js:3080 +#: templates/js/translated/stock.js:3205 msgid "Status" msgstr "Status" -#: build/serializers.py:541 +#: build/serializers.py:585 msgid "Accept Incomplete Allocation" msgstr "Godta ufullstendig tildeling" -#: build/serializers.py:542 +#: build/serializers.py:586 msgid "Complete outputs if stock has not been fully allocated" msgstr "Fullfør artikler dersom lagerbeholdning ikke er fullt tildelt" -#: build/serializers.py:654 +#: build/serializers.py:698 msgid "Consume Allocated Stock" msgstr "Bruk tildelt lagerbeholdning" -#: build/serializers.py:655 +#: build/serializers.py:699 msgid "Consume any stock which has already been allocated to this build" msgstr "Bruk all lagerbeholdning som allerede er tildelt denne produksjonen" -#: build/serializers.py:661 +#: build/serializers.py:705 msgid "Remove Incomplete Outputs" msgstr "Fjern ufullstendige artikler" -#: build/serializers.py:662 +#: build/serializers.py:706 msgid "Delete any build outputs which have not been completed" msgstr "Slett alle produksjonsartikler som ikke er fullført" -#: build/serializers.py:689 +#: build/serializers.py:733 msgid "Not permitted" msgstr "Ikke tillatt" -#: build/serializers.py:690 +#: build/serializers.py:734 msgid "Accept as consumed by this build order" msgstr "Godta som brukt av denne produksjonsordren" -#: build/serializers.py:691 +#: build/serializers.py:735 msgid "Deallocate before completing this build order" msgstr "Fjern tildeling før produksjonsordren fullføres" -#: build/serializers.py:721 +#: build/serializers.py:765 msgid "Overallocated Stock" msgstr "Overtildelt lagerbeholdning" -#: build/serializers.py:723 +#: build/serializers.py:767 msgid "How do you want to handle extra stock items assigned to the build order" msgstr "Hvordan vil du håndtere ekstra lagervarer tildelt produksjonsordren" -#: build/serializers.py:733 +#: build/serializers.py:777 msgid "Some stock items have been overallocated" msgstr "Noen lagervarer har blitt overtildelt" -#: build/serializers.py:738 +#: build/serializers.py:782 msgid "Accept Unallocated" msgstr "Godta ikke tildelt" -#: build/serializers.py:739 +#: build/serializers.py:783 msgid "Accept that stock items have not been fully allocated to this build order" msgstr "Godta at lagervarer ikke er fullt tildelt til denne produksjonsordren" -#: build/serializers.py:749 templates/js/translated/build.js:316 +#: build/serializers.py:793 templates/js/translated/build.js:319 msgid "Required stock has not been fully allocated" msgstr "Nøvendig lagerbeholdning er ikke fullt tildelt" -#: build/serializers.py:754 order/serializers.py:345 order/serializers.py:1365 +#: build/serializers.py:798 order/serializers.py:430 order/serializers.py:1491 msgid "Accept Incomplete" msgstr "Godta uferdig" -#: build/serializers.py:755 +#: build/serializers.py:799 msgid "Accept that the required number of build outputs have not been completed" msgstr "Godta at nødvendig antall fullførte produksjonsartikler ikke er nådd" -#: build/serializers.py:765 templates/js/translated/build.js:320 +#: build/serializers.py:809 templates/js/translated/build.js:323 msgid "Required build quantity has not been completed" msgstr "Nødvendig produksjonsmengde er ikke nådd" -#: build/serializers.py:774 +#: build/serializers.py:818 msgid "Build order has open child build orders" msgstr "" -#: build/serializers.py:777 +#: build/serializers.py:821 msgid "Build order must be in production state" msgstr "" -#: build/serializers.py:780 templates/js/translated/build.js:304 +#: build/serializers.py:824 templates/js/translated/build.js:307 msgid "Build order has incomplete outputs" msgstr "Produksjonsordren har uferdige artikler" -#: build/serializers.py:818 +#: build/serializers.py:862 msgid "Build Line" msgstr "Produksjonslinje" -#: build/serializers.py:828 +#: build/serializers.py:872 msgid "Build output" msgstr "Produksjonsartikkel" -#: build/serializers.py:836 +#: build/serializers.py:880 msgid "Build output must point to the same build" msgstr "Produksjonsartikkel må peke til samme produksjon" -#: build/serializers.py:872 +#: build/serializers.py:916 msgid "Build Line Item" msgstr "Produksjonsartikkel" -#: build/serializers.py:886 +#: build/serializers.py:930 msgid "bom_item.part must point to the same part as the build order" msgstr "bom_item.part må peke på den samme delen som produksjonsordren" -#: build/serializers.py:901 stock/serializers.py:1294 +#: build/serializers.py:945 stock/serializers.py:1325 msgid "Item must be in stock" msgstr "Artikkelen må være på lager" -#: build/serializers.py:949 order/serializers.py:1351 +#: build/serializers.py:993 order/serializers.py:1477 #, python-brace-format msgid "Available quantity ({q}) exceeded" msgstr "Tilgjengelig antall ({q}) overskredet" -#: build/serializers.py:955 +#: build/serializers.py:999 msgid "Build output must be specified for allocation of tracked parts" msgstr "Produksjonsartikkel må spesifiseres for tildeling av sporede deler" -#: build/serializers.py:962 +#: build/serializers.py:1006 msgid "Build output cannot be specified for allocation of untracked parts" msgstr "Produksjonsartikkel kan ikke spesifiseres for tildeling av usporede deler" -#: build/serializers.py:986 order/serializers.py:1610 +#: build/serializers.py:1030 order/serializers.py:1750 msgid "Allocation items must be provided" msgstr "Tildelingsartikler må oppgis" -#: build/serializers.py:1049 +#: build/serializers.py:1093 msgid "Stock location where parts are to be sourced (leave blank to take from any location)" msgstr "Lagerplassering hvor deler skal hentes (la stå tomt for å ta fra alle plasseringer)" -#: build/serializers.py:1057 +#: build/serializers.py:1101 msgid "Exclude Location" msgstr "Eksluderer plassering" -#: build/serializers.py:1058 +#: build/serializers.py:1102 msgid "Exclude stock items from this selected location" msgstr "Ekskluder lagervarer fra denne valgte plasseringen" -#: build/serializers.py:1063 +#: build/serializers.py:1107 msgid "Interchangeable Stock" msgstr "Utskiftbar lagerbeholdning" -#: build/serializers.py:1064 +#: build/serializers.py:1108 msgid "Stock items in multiple locations can be used interchangeably" msgstr "Lagervarer ved flere plasseringer kan brukes om hverandre" -#: build/serializers.py:1069 +#: build/serializers.py:1113 msgid "Substitute Stock" msgstr "Erstatning-lagerbeholdning" -#: build/serializers.py:1070 +#: build/serializers.py:1114 msgid "Allow allocation of substitute parts" msgstr "Tilatt tildelling av erstatningsdeler" -#: build/serializers.py:1075 +#: build/serializers.py:1119 msgid "Optional Items" msgstr "Valgfrie artikler" -#: build/serializers.py:1076 +#: build/serializers.py:1120 msgid "Allocate optional BOM items to build order" msgstr "Tildel valgfrie BOM-artikler til produksjonsordre" -#: build/serializers.py:1098 +#: build/serializers.py:1143 msgid "Failed to start auto-allocation task" msgstr "Kunne ikke starte auto-tideling" -#: build/serializers.py:1181 +#: build/serializers.py:1226 stock/serializers.py:585 msgid "Supplier Part Number" msgstr "Leverandørens delnummer" -#: build/serializers.py:1182 company/models.py:506 +#: build/serializers.py:1227 company/models.py:503 stock/serializers.py:591 msgid "Manufacturer Part Number" msgstr "Produsentens varenummer" -#: build/serializers.py:1183 stock/admin.py:53 stock/admin.py:175 -#: stock/serializers.py:457 +#: build/serializers.py:1228 stock/admin.py:53 stock/admin.py:176 +#: stock/serializers.py:467 msgid "Location Name" msgstr "Plasseringsnavn" -#: build/serializers.py:1184 +#: build/serializers.py:1229 build/serializers.py:1327 msgid "Build Reference" msgstr "Produksjonsreferanse" -#: build/serializers.py:1185 +#: build/serializers.py:1230 msgid "BOM Reference" msgstr "BOM-referanse" -#: build/serializers.py:1186 company/models.py:852 -#: company/templates/company/supplier_part.html:160 order/serializers.py:690 -#: stock/admin.py:228 stock/models.py:818 stock/serializers.py:1579 -#: stock/templates/stock/item_base.html:240 -#: templates/js/translated/company.js:1646 -#: templates/js/translated/purchase_order.js:1169 -#: templates/js/translated/purchase_order.js:1332 +#: build/serializers.py:1231 company/models.py:849 +#: company/templates/company/supplier_part.html:161 order/serializers.py:775 +#: stock/admin.py:229 stock/models.py:895 stock/serializers.py:1610 +#: stock/templates/stock/item_base.html:237 +#: templates/js/translated/company.js:1647 +#: templates/js/translated/purchase_order.js:1152 +#: templates/js/translated/purchase_order.js:1315 #: templates/js/translated/stock.js:1214 templates/js/translated/stock.js:1246 -#: templates/js/translated/stock.js:2509 +#: templates/js/translated/stock.js:2510 msgid "Packaging" msgstr "Emballasje" -#: build/serializers.py:1189 part/admin.py:39 part/admin.py:398 -#: part/models.py:4101 part/stocktake.py:218 stock/admin.py:152 +#: build/serializers.py:1234 part/admin.py:39 part/admin.py:398 +#: part/models.py:4159 part/stocktake.py:218 stock/admin.py:153 msgid "Part ID" msgstr "Del-ID" -#: build/serializers.py:1191 build/serializers.py:1280 part/admin.py:402 -#: part/models.py:4103 +#: build/serializers.py:1236 build/serializers.py:1332 part/admin.py:402 +#: part/models.py:4161 msgid "Part IPN" msgstr "Del -IPN" -#: build/serializers.py:1192 build/serializers.py:1282 part/admin.py:45 +#: build/serializers.py:1237 build/serializers.py:1334 part/admin.py:45 #: part/stocktake.py:220 msgid "Part Description" msgstr "Delbeskrivelse" -#: build/serializers.py:1195 +#: build/serializers.py:1240 msgid "BOM Part ID" msgstr "" -#: build/serializers.py:1196 +#: build/serializers.py:1241 msgid "BOM Part Name" msgstr "" -#: build/serializers.py:1199 +#: build/serializers.py:1244 #: report/templates/report/inventree_return_order_report.html:25 -#: report/templates/report/inventree_test_report.html:88 stock/models.py:845 -#: stock/serializers.py:151 stock/templates/stock/item_base.html:311 -#: templates/js/translated/build.js:520 templates/js/translated/build.js:1540 -#: templates/js/translated/build.js:2527 -#: templates/js/translated/model_renderers.js:231 +#: report/templates/report/inventree_sales_order_shipment_report.html:45 +#: report/templates/report/inventree_test_report.html:88 stock/models.py:922 +#: stock/serializers.py:152 stock/templates/stock/item_base.html:308 +#: templates/js/translated/build.js:523 templates/js/translated/build.js:1543 +#: templates/js/translated/build.js:2534 +#: templates/js/translated/model_renderers.js:234 #: templates/js/translated/return_order.js:539 #: templates/js/translated/return_order.js:722 -#: templates/js/translated/sales_order.js:315 -#: templates/js/translated/sales_order.js:1647 -#: templates/js/translated/sales_order.js:1732 +#: templates/js/translated/sales_order.js:1628 +#: templates/js/translated/sales_order.js:1713 #: templates/js/translated/stock.js:602 msgid "Serial Number" msgstr "Serienummer" -#: build/serializers.py:1212 stock/serializers.py:593 -#: templates/js/translated/build.js:1017 templates/js/translated/build.js:1164 -#: templates/js/translated/build.js:2516 +#: build/serializers.py:1257 stock/serializers.py:620 +#: templates/js/translated/build.js:1020 templates/js/translated/build.js:1167 +#: templates/js/translated/build.js:2523 msgid "Allocated Quantity" msgstr "Tildelt antall" -#: build/serializers.py:1213 stock/templates/stock/item_base.html:340 +#: build/serializers.py:1258 stock/templates/stock/item_base.html:337 msgid "Available Quantity" msgstr "Tilgjengelig antall" -#: build/serializers.py:1283 +#: build/serializers.py:1335 msgid "Part Category ID" msgstr "Delkategori-ID" -#: build/serializers.py:1284 +#: build/serializers.py:1336 msgid "Part Category Name" msgstr "Delkategorinavn" -#: build/serializers.py:1291 common/models.py:1513 part/admin.py:113 -#: part/models.py:1166 templates/js/translated/table_filters.js:150 +#: build/serializers.py:1345 common/models.py:1582 part/admin.py:113 +#: part/models.py:1227 templates/js/translated/build.js:2738 +#: templates/js/translated/table_filters.js:150 #: templates/js/translated/table_filters.js:230 #: templates/js/translated/table_filters.js:783 msgid "Trackable" msgstr "Sporbar" -#: build/serializers.py:1292 +#: build/serializers.py:1346 msgid "Inherited" msgstr "Nedarvet" -#: build/serializers.py:1293 part/models.py:4313 +#: build/serializers.py:1347 part/models.py:4370 #: part/templates/part/upload_bom.html:56 templates/js/translated/bom.js:1046 -#: templates/js/translated/build.js:2711 +#: templates/js/translated/build.js:2720 msgid "Allow Variants" msgstr "Tillat Varianter" -#: build/serializers.py:1297 part/models.py:4110 part/models.py:4584 +#: build/serializers.py:1351 part/models.py:4168 part/models.py:4646 #: stock/api.py:794 msgid "BOM Item" msgstr "BOM-artikkel" -#: build/serializers.py:1306 build/templates/build/detail.html:236 +#: build/serializers.py:1370 build/templates/build/detail.html:236 #: build/templates/build/sidebar.html:16 templates/js/translated/index.js:130 msgid "Allocated Stock" msgstr "Tildelt lagerbeholdning" -#: build/serializers.py:1311 order/serializers.py:1175 part/admin.py:132 -#: part/bom.py:181 part/serializers.py:899 part/serializers.py:1602 -#: part/templates/part/part_base.html:210 templates/js/translated/bom.js:1208 -#: templates/js/translated/build.js:2804 templates/js/translated/part.js:712 +#: build/serializers.py:1375 order/serializers.py:1209 part/admin.py:132 +#: part/bom.py:186 part/serializers.py:951 part/serializers.py:1660 +#: part/templates/part/part_base.html:211 templates/js/translated/bom.js:1208 +#: templates/js/translated/build.js:2822 templates/js/translated/part.js:712 #: templates/js/translated/part.js:2155 #: templates/js/translated/table_filters.js:177 msgid "On Order" msgstr "I bestilling" -#: build/serializers.py:1316 order/serializers.py:1176 part/serializers.py:1604 -#: templates/js/translated/build.js:2808 +#: build/serializers.py:1380 order/serializers.py:1210 part/serializers.py:1662 +#: templates/js/translated/build.js:2826 #: templates/js/translated/table_filters.js:367 msgid "In Production" msgstr "I produksjon" -#: build/serializers.py:1321 part/bom.py:180 part/serializers.py:1629 -#: part/templates/part/part_base.html:192 -#: templates/js/translated/sales_order.js:1929 -msgid "Available Stock" -msgstr "Tilgjengelig lagerbeholdning" - -#: build/serializers.py:1325 -msgid "Available Substitute Stock" -msgstr "Tilgjengelige erstatningsvarer" - -#: build/serializers.py:1326 -msgid "Available Variant Stock" -msgstr "Tilgjengelige variantvarer" - -#: build/serializers.py:1327 -msgid "Total Available Stock" -msgstr "Totalt tilgjengelig lagerbeholdning" - -#: build/serializers.py:1328 part/serializers.py:906 +#: build/serializers.py:1384 part/serializers.py:958 msgid "External Stock" msgstr "Ekstern lagerbeholdning" -#: build/status_codes.py:11 generic/states/tests.py:17 order/status_codes.py:12 -#: order/status_codes.py:42 order/status_codes.py:74 order/status_codes.py:98 +#: build/serializers.py:1385 part/bom.py:185 part/serializers.py:1687 +#: part/templates/part/part_base.html:193 +#: templates/js/translated/sales_order.js:1910 +msgid "Available Stock" +msgstr "Tilgjengelig lagerbeholdning" + +#: build/serializers.py:1386 +msgid "Available Substitute Stock" +msgstr "Tilgjengelige erstatningsvarer" + +#: build/serializers.py:1387 +msgid "Available Variant Stock" +msgstr "Tilgjengelige variantvarer" + +#: build/status_codes.py:11 generic/states/tests.py:21 +#: generic/states/tests.py:131 order/status_codes.py:12 +#: order/status_codes.py:44 order/status_codes.py:76 order/status_codes.py:102 #: templates/js/translated/table_filters.js:601 msgid "Pending" msgstr "Ventende" @@ -1722,21 +1750,21 @@ msgstr "Ventende" msgid "Production" msgstr "Produksjon" -#: build/status_codes.py:13 order/status_codes.py:14 order/status_codes.py:49 -#: order/status_codes.py:79 +#: build/status_codes.py:13 order/status_codes.py:14 order/status_codes.py:51 +#: order/status_codes.py:81 msgid "On Hold" msgstr "" -#: build/status_codes.py:14 order/status_codes.py:16 order/status_codes.py:51 -#: order/status_codes.py:82 +#: build/status_codes.py:14 order/status_codes.py:16 order/status_codes.py:53 +#: order/status_codes.py:84 msgid "Cancelled" msgstr "Kansellert" -#: build/status_codes.py:15 generic/states/tests.py:19 importer/models.py:509 -#: importer/status_codes.py:19 order/status_codes.py:15 -#: order/status_codes.py:50 order/status_codes.py:81 -#: order/templates/order/order_base.html:163 -#: order/templates/order/sales_order_base.html:168 report/models.py:443 +#: build/status_codes.py:15 generic/states/tests.py:23 importer/models.py:518 +#: importer/status_codes.py:27 order/status_codes.py:15 +#: order/status_codes.py:52 order/status_codes.py:83 +#: order/templates/order/order_base.html:172 +#: order/templates/order/sales_order_base.html:169 report/models.py:451 msgid "Complete" msgstr "Fullført" @@ -1744,165 +1772,162 @@ msgstr "Fullført" msgid "Stock required for build order" msgstr "Lagerbeholdning kreves for produksjonsordre" -#: build/tasks.py:201 +#: build/tasks.py:260 msgid "Overdue Build Order" msgstr "Forfalt produksjonsordre" -#: build/tasks.py:206 +#: build/tasks.py:265 #, python-brace-format msgid "Build order {bo} is now overdue" msgstr "Produksjonsordre {bo} er nå forfalt" -#: build/templates/build/build_base.html:18 +#: build/templates/build/build_base.html:19 msgid "Part thumbnail" msgstr "Miniatyrbilde for del" -#: build/templates/build/build_base.html:38 -#: company/templates/company/supplier_part.html:35 -#: order/templates/order/order_base.html:29 -#: order/templates/order/return_order_base.html:38 -#: order/templates/order/sales_order_base.html:38 -#: part/templates/part/part_base.html:41 -#: stock/templates/stock/item_base.html:40 -#: stock/templates/stock/location.html:52 +#: build/templates/build/build_base.html:39 +#: company/templates/company/supplier_part.html:36 +#: order/templates/order/order_base.html:30 +#: order/templates/order/return_order_base.html:39 +#: order/templates/order/sales_order_base.html:39 +#: part/templates/part/part_base.html:42 +#: stock/templates/stock/item_base.html:41 +#: stock/templates/stock/location.html:53 #: templates/js/translated/filters.js:338 msgid "Barcode actions" msgstr "Strekkodehandlinger" -#: build/templates/build/build_base.html:42 -#: company/templates/company/supplier_part.html:39 -#: order/templates/order/order_base.html:33 -#: order/templates/order/return_order_base.html:42 -#: order/templates/order/sales_order_base.html:42 -#: part/templates/part/part_base.html:44 -#: stock/templates/stock/item_base.html:44 -#: stock/templates/stock/location.html:54 templates/qr_button.html:1 +#: build/templates/build/build_base.html:43 +#: company/templates/company/supplier_part.html:40 +#: order/templates/order/order_base.html:34 +#: order/templates/order/return_order_base.html:43 +#: order/templates/order/sales_order_base.html:43 +#: part/templates/part/part_base.html:45 +#: stock/templates/stock/item_base.html:45 +#: stock/templates/stock/location.html:55 templates/qr_button.html:1 msgid "Show QR Code" msgstr "Vis QR-kode" -#: build/templates/build/build_base.html:45 -#: company/templates/company/supplier_part.html:41 -#: order/templates/order/order_base.html:36 -#: order/templates/order/return_order_base.html:45 -#: order/templates/order/sales_order_base.html:45 -#: part/templates/part/part_base.html:47 -#: stock/templates/stock/item_base.html:47 -#: stock/templates/stock/location.html:56 +#: build/templates/build/build_base.html:46 +#: company/templates/company/supplier_part.html:42 +#: order/templates/order/order_base.html:37 +#: order/templates/order/return_order_base.html:46 +#: order/templates/order/sales_order_base.html:46 +#: part/templates/part/part_base.html:48 +#: stock/templates/stock/item_base.html:48 +#: stock/templates/stock/location.html:57 #: templates/js/translated/barcode.js:527 #: templates/js/translated/barcode.js:532 msgid "Unlink Barcode" msgstr "Fjern strekkodekobling" -#: build/templates/build/build_base.html:47 -#: company/templates/company/supplier_part.html:43 -#: order/templates/order/order_base.html:38 -#: order/templates/order/return_order_base.html:47 -#: order/templates/order/sales_order_base.html:47 -#: part/templates/part/part_base.html:49 -#: stock/templates/stock/item_base.html:49 -#: stock/templates/stock/location.html:58 +#: build/templates/build/build_base.html:48 +#: company/templates/company/supplier_part.html:44 +#: order/templates/order/order_base.html:39 +#: order/templates/order/return_order_base.html:48 +#: order/templates/order/sales_order_base.html:48 +#: part/templates/part/part_base.html:50 +#: stock/templates/stock/item_base.html:50 +#: stock/templates/stock/location.html:59 msgid "Link Barcode" msgstr "Koble mot strekkode" -#: build/templates/build/build_base.html:56 -#: order/templates/order/order_base.html:46 -#: order/templates/order/return_order_base.html:55 -#: order/templates/order/sales_order_base.html:55 +#: build/templates/build/build_base.html:57 +#: order/templates/order/order_base.html:47 +#: order/templates/order/return_order_base.html:56 +#: order/templates/order/sales_order_base.html:56 msgid "Print actions" msgstr "Utskriftshandlinger" -#: build/templates/build/build_base.html:60 +#: build/templates/build/build_base.html:61 msgid "Print build order report" msgstr "Skriv ut produksjonsordrerapport" -#: build/templates/build/build_base.html:67 +#: build/templates/build/build_base.html:68 msgid "Build actions" msgstr "Produksjonshandlinger" -#: build/templates/build/build_base.html:71 +#: build/templates/build/build_base.html:72 msgid "Edit Build" msgstr "Rediger Produksjon" -#: build/templates/build/build_base.html:73 +#: build/templates/build/build_base.html:74 msgid "Duplicate Build" msgstr "Dupliser Produksjon" -#: build/templates/build/build_base.html:76 +#: build/templates/build/build_base.html:77 msgid "Hold Build" msgstr "" -#: build/templates/build/build_base.html:79 +#: build/templates/build/build_base.html:80 msgid "Cancel Build" msgstr "Kanseller produksjon" -#: build/templates/build/build_base.html:82 +#: build/templates/build/build_base.html:83 msgid "Delete Build" msgstr "Slett Produksjon" -#: build/templates/build/build_base.html:87 -msgid "Isueue Build" -msgstr "" - #: build/templates/build/build_base.html:88 +#: build/templates/build/build_base.html:89 msgid "Issue Build" msgstr "" -#: build/templates/build/build_base.html:91 #: build/templates/build/build_base.html:92 +#: build/templates/build/build_base.html:93 msgid "Complete Build" msgstr "Fullfør Produksjon" -#: build/templates/build/build_base.html:115 +#: build/templates/build/build_base.html:116 msgid "Build Description" msgstr "Produksjonsbeskrivelse" -#: build/templates/build/build_base.html:125 +#: build/templates/build/build_base.html:126 msgid "No build outputs have been created for this build order" msgstr "Ingen produksjonsartikler har blitt opprettet for produksjonsordren" -#: build/templates/build/build_base.html:132 +#: build/templates/build/build_base.html:133 msgid "Build Order is ready to mark as completed" msgstr "Produksjonsordren er klar til å merkes som fullført" -#: build/templates/build/build_base.html:137 +#: build/templates/build/build_base.html:138 msgid "Build Order cannot be completed as outstanding outputs remain" msgstr "Produksjonsordren kan ikke fullføres på grunn av utestående artikler" -#: build/templates/build/build_base.html:142 +#: build/templates/build/build_base.html:143 msgid "Required build quantity has not yet been completed" msgstr "Nødvendig produksjonsantall er ikke oppnådd enda" -#: build/templates/build/build_base.html:147 +#: build/templates/build/build_base.html:148 msgid "Stock has not been fully allocated to this Build Order" msgstr "Lagerbeholdning er ikke fullt tildelt til denne Produksjonsordren" -#: build/templates/build/build_base.html:168 -#: build/templates/build/detail.html:138 order/models.py:308 -#: order/models.py:1391 order/serializers.py:174 -#: order/templates/order/order_base.html:191 -#: order/templates/order/return_order_base.html:167 -#: order/templates/order/sales_order_base.html:199 +#: build/templates/build/build_base.html:169 +#: build/templates/build/detail.html:138 order/models.py:315 +#: order/models.py:1408 order/serializers.py:254 +#: order/templates/order/order_base.html:200 +#: order/templates/order/return_order_base.html:168 +#: order/templates/order/sales_order_base.html:200 #: report/templates/report/inventree_build_order_report.html:125 -#: templates/js/translated/build.js:2411 templates/js/translated/part.js:1837 -#: templates/js/translated/purchase_order.js:1809 -#: templates/js/translated/purchase_order.js:2217 +#: templates/js/translated/build.js:2414 templates/js/translated/part.js:1837 +#: templates/js/translated/purchase_order.js:1793 +#: templates/js/translated/purchase_order.js:2201 #: templates/js/translated/return_order.js:346 #: templates/js/translated/return_order.js:749 -#: templates/js/translated/sales_order.js:871 -#: templates/js/translated/sales_order.js:1903 +#: templates/js/translated/sales_order.js:830 +#: templates/js/translated/sales_order.js:1884 msgid "Target Date" msgstr "Måldato" -#: build/templates/build/build_base.html:173 +#: build/templates/build/build_base.html:174 #, python-format msgid "This build was due on %(target)s" msgstr "Denne produksjonsordren forfalt %(target)s" -#: build/templates/build/build_base.html:173 -#: build/templates/build/build_base.html:230 -#: order/templates/order/order_base.html:127 -#: order/templates/order/return_order_base.html:120 -#: order/templates/order/sales_order_base.html:129 +#: build/templates/build/build_base.html:174 +#: build/templates/build/build_base.html:231 +#: order/templates/order/order_base.html:128 +#: order/templates/order/return_order_base.html:121 +#: order/templates/order/sales_order_base.html:130 #: templates/js/translated/table_filters.js:97 #: templates/js/translated/table_filters.js:545 #: templates/js/translated/table_filters.js:629 @@ -1910,49 +1935,50 @@ msgstr "Denne produksjonsordren forfalt %(target)s" msgid "Overdue" msgstr "Forfalt" -#: build/templates/build/build_base.html:185 +#: build/templates/build/build_base.html:186 #: build/templates/build/detail.html:67 build/templates/build/sidebar.html:13 msgid "Completed Outputs" msgstr "Fullførte byggeresultater" -#: build/templates/build/build_base.html:198 -#: build/templates/build/detail.html:101 order/api.py:1406 order/models.py:892 -#: order/models.py:1650 order/models.py:1765 order/models.py:1924 -#: order/templates/order/sales_order_base.html:9 -#: order/templates/order/sales_order_base.html:28 +#: build/templates/build/build_base.html:199 +#: build/templates/build/detail.html:101 order/api.py:1528 order/models.py:914 +#: order/models.py:1666 order/models.py:1794 order/models.py:1957 +#: order/templates/order/sales_order_base.html:10 +#: order/templates/order/sales_order_base.html:29 #: report/templates/report/inventree_build_order_report.html:135 #: report/templates/report/inventree_sales_order_report.html:14 -#: stock/templates/stock/item_base.html:369 +#: report/templates/report/inventree_sales_order_shipment_report.html:15 +#: stock/templates/stock/item_base.html:366 #: templates/email/overdue_sales_order.html:15 -#: templates/js/translated/pricing.js:929 -#: templates/js/translated/sales_order.js:805 -#: templates/js/translated/sales_order.js:1028 -#: templates/js/translated/stock.js:3008 +#: templates/js/translated/pricing.js:927 +#: templates/js/translated/sales_order.js:764 +#: templates/js/translated/sales_order.js:1001 +#: templates/js/translated/stock.js:3009 msgid "Sales Order" msgstr "Salgsordre" -#: build/templates/build/build_base.html:219 -#: build/templates/build/detail.html:94 templates/js/translated/build.js:2328 +#: build/templates/build/build_base.html:220 +#: build/templates/build/detail.html:94 templates/js/translated/build.js:2331 msgid "Priority" msgstr "Prioritet" -#: build/templates/build/build_base.html:267 +#: build/templates/build/build_base.html:268 msgid "Issue Build Order" msgstr "" -#: build/templates/build/build_base.html:271 +#: build/templates/build/build_base.html:272 msgid "Issue this Build Order?" msgstr "" -#: build/templates/build/build_base.html:302 +#: build/templates/build/build_base.html:303 msgid "Delete Build Order" msgstr "Slett Produksjonsordre" -#: build/templates/build/build_base.html:312 +#: build/templates/build/build_base.html:313 msgid "Build Order QR Code" msgstr "Produksjonsordrens QR-kode" -#: build/templates/build/build_base.html:324 +#: build/templates/build/build_base.html:325 msgid "Link Barcode to Build Order" msgstr "Koble Strekkode til Produksjonsordre" @@ -1968,8 +1994,9 @@ msgstr "Lagerkilde" msgid "Stock can be taken from any available location." msgstr "Lagervare kan hentes fra alle tilgengelige plasseringer." -#: build/templates/build/detail.html:49 order/models.py:1532 -#: templates/js/translated/purchase_order.js:2259 +#: build/templates/build/detail.html:49 order/models.py:548 +#: order/models.py:1548 order/templates/order/order_base.html:135 +#: templates/js/translated/purchase_order.js:2243 msgid "Destination" msgstr "Destinasjon" @@ -1981,23 +2008,24 @@ msgstr "Målplassering er ikke spesifisert" msgid "Allocated Parts" msgstr "Tildelte deler" -#: build/templates/build/detail.html:80 stock/admin.py:162 -#: stock/templates/stock/item_base.html:162 -#: templates/js/translated/build.js:1553 -#: templates/js/translated/model_renderers.js:242 -#: templates/js/translated/purchase_order.js:1326 +#: build/templates/build/detail.html:80 +#: report/templates/report/inventree_sales_order_shipment_report.html:47 +#: stock/admin.py:163 stock/templates/stock/item_base.html:159 +#: templates/js/translated/build.js:1556 +#: templates/js/translated/model_renderers.js:245 +#: templates/js/translated/purchase_order.js:1309 #: templates/js/translated/stock.js:1139 templates/js/translated/stock.js:1240 -#: templates/js/translated/stock.js:2275 templates/js/translated/stock.js:3211 +#: templates/js/translated/stock.js:2276 templates/js/translated/stock.js:3212 #: templates/js/translated/table_filters.js:320 #: templates/js/translated/table_filters.js:411 msgid "Batch" msgstr "Parti" #: build/templates/build/detail.html:133 -#: order/templates/order/order_base.html:178 -#: order/templates/order/return_order_base.html:154 -#: order/templates/order/sales_order_base.html:193 -#: templates/js/translated/build.js:2371 +#: order/templates/order/order_base.html:187 +#: order/templates/order/return_order_base.html:155 +#: order/templates/order/sales_order_base.html:194 +#: templates/js/translated/build.js:2374 msgid "Created" msgstr "Opprettet" @@ -2005,8 +2033,8 @@ msgstr "Opprettet" msgid "No target date set" msgstr "Ingen måldato satt" -#: build/templates/build/detail.html:149 -#: order/templates/order/sales_order_base.html:209 +#: build/templates/build/detail.html:149 order/api.py:794 +#: order/templates/order/sales_order_base.html:210 #: templates/js/translated/table_filters.js:692 msgid "Completed" msgstr "Fullført" @@ -2052,7 +2080,7 @@ msgid "Order required parts" msgstr "Bestill nødvendige deler" #: build/templates/build/detail.html:192 -#: templates/js/translated/purchase_order.js:795 +#: templates/js/translated/purchase_order.js:778 msgid "Order Parts" msgstr "Bestill deler" @@ -2120,7 +2148,7 @@ msgstr "Ny produksjonsordre" msgid "Build Order Details" msgstr "Produksjonsordre-detaljer" -#: build/templates/build/sidebar.html:8 order/serializers.py:82 +#: build/templates/build/sidebar.html:8 order/serializers.py:113 #: order/templates/order/po_sidebar.html:5 #: order/templates/order/return_order_detail.html:18 #: order/templates/order/so_sidebar.html:5 @@ -2139,43 +2167,38 @@ msgstr "Ufullstendige artikler" msgid "Test Statistics" msgstr "" -#: common/api.py:693 +#: common/api.py:725 msgid "Is Link" msgstr "Er lenke" -#: common/api.py:701 +#: common/api.py:733 msgid "Is File" msgstr "Er fil" -#: common/api.py:744 +#: common/api.py:776 msgid "User does not have permission to delete these attachments" msgstr "" -#: common/api.py:761 +#: common/api.py:793 msgid "User does not have permission to delete this attachment" msgstr "Brukeren har ikke tillatelse til å slette dette vedlegget" -#: common/currency.py:132 +#: common/currency.py:134 msgid "Invalid currency code" msgstr "Ugyldig valutakode" -#: common/currency.py:134 +#: common/currency.py:136 msgid "Duplicate currency code" msgstr "Valutakode eksisterer allerede" -#: common/currency.py:139 +#: common/currency.py:141 msgid "No valid currency codes provided" msgstr "Ingen gyldige valutakoder angitt" -#: common/currency.py:156 +#: common/currency.py:158 msgid "No plugin" msgstr "Ingen programtillegg" -#: common/files.py:63 -#, python-brace-format -msgid "Unsupported file format: {fmt}" -msgstr "Filformatet støttes ikke: {fmt}" - #: common/files.py:65 msgid "Error reading file (invalid encoding)" msgstr "Feil under lesing av fil (ugyldig koding)" @@ -2192,1883 +2215,2039 @@ msgstr "Feil under lesing av fil (feil dimensjon)" msgid "Error reading file (data could be corrupted)" msgstr "Feil under lesing av fil (data kan være skadet)" -#: common/forms.py:12 +#: common/forms.py:12 common/forms.py:25 msgid "File" msgstr "Fil" -#: common/forms.py:12 +#: common/forms.py:12 common/forms.py:26 msgid "Select file to upload" msgstr "Velg fil å laste opp" -#: common/forms.py:25 -msgid "{name.title()} File" -msgstr "{name.title()} Fil" - -#: common/forms.py:26 -#, python-brace-format -msgid "Select {name} file to upload" -msgstr "Velg {name} fil som skal lastes opp" - -#: common/models.py:86 +#: common/models.py:89 msgid "Updated" msgstr "Oppdatert" -#: common/models.py:87 +#: common/models.py:90 msgid "Timestamp of last update" msgstr "Tidsstempel for forrige oppdatering" -#: common/models.py:120 +#: common/models.py:123 msgid "Site URL is locked by configuration" msgstr "Nettstedets URL er låst av konfigurasjon" -#: common/models.py:150 +#: common/models.py:153 msgid "Unique project code" msgstr "Unik prosjektkode" -#: common/models.py:157 +#: common/models.py:160 msgid "Project description" msgstr "Prosjektbeskrivelse" -#: common/models.py:166 +#: common/models.py:169 msgid "User or group responsible for this project" msgstr "Bruker eller gruppe ansvarlig for dette prosjektet" -#: common/models.py:783 -msgid "Settings key (must be unique - case insensitive)" -msgstr "Innstillingsnøkkel (må være unik - ufølsom for store of små bokstaver)" +#: common/models.py:783 common/models.py:2236 common/models.py:2613 +msgid "Settings key" +msgstr "" #: common/models.py:787 msgid "Settings value" msgstr "Innstillings verdi" -#: common/models.py:839 +#: common/models.py:842 msgid "Chosen value is not a valid option" msgstr "Valgt verdi er ikke et gyldig alternativ" -#: common/models.py:855 +#: common/models.py:858 msgid "Value must be a boolean value" msgstr "Verdien må være en boolsk verdi" -#: common/models.py:863 +#: common/models.py:866 msgid "Value must be an integer value" msgstr "Verdien må være et heltall" -#: common/models.py:900 +#: common/models.py:874 +msgid "Value must be a valid number" +msgstr "" + +#: common/models.py:899 +msgid "Value does not pass validation checks" +msgstr "" + +#: common/models.py:921 msgid "Key string must be unique" msgstr "Nøkkelstreng må være unik" -#: common/models.py:1132 +#: common/models.py:1189 msgid "No group" msgstr "Ingen gruppe" -#: common/models.py:1231 +#: common/models.py:1288 msgid "Restart required" msgstr "Omstart kreves" -#: common/models.py:1233 +#: common/models.py:1290 msgid "A setting has been changed which requires a server restart" msgstr "En innstilling har blitt endret som krever en omstart av serveren" -#: common/models.py:1240 +#: common/models.py:1297 msgid "Pending migrations" msgstr "Ventende migrasjoner" -#: common/models.py:1241 +#: common/models.py:1298 msgid "Number of pending database migrations" msgstr "Antall ventende databasemigreringer" -#: common/models.py:1246 +#: common/models.py:1303 msgid "Server Instance Name" msgstr "Navn på serverinstans" -#: common/models.py:1248 +#: common/models.py:1305 msgid "String descriptor for the server instance" msgstr "Strengbeskrivelse for serverinstansen" -#: common/models.py:1252 +#: common/models.py:1309 msgid "Use instance name" msgstr "Bruk instansnavn" -#: common/models.py:1253 +#: common/models.py:1310 msgid "Use the instance name in the title-bar" msgstr "Bruk instansnavnet på tittellinjen" -#: common/models.py:1258 +#: common/models.py:1315 msgid "Restrict showing `about`" msgstr "Begrens visning av 'om'" -#: common/models.py:1259 +#: common/models.py:1316 msgid "Show the `about` modal only to superusers" msgstr "Vis `about`-modal kun til superbrukere" -#: common/models.py:1264 company/models.py:111 company/models.py:112 +#: common/models.py:1321 company/models.py:108 company/models.py:109 msgid "Company name" msgstr "Firmanavn" -#: common/models.py:1265 +#: common/models.py:1322 msgid "Internal company name" msgstr "Internt firmanavn" -#: common/models.py:1269 +#: common/models.py:1326 msgid "Base URL" msgstr "Base-URL" -#: common/models.py:1270 +#: common/models.py:1327 msgid "Base URL for server instance" msgstr "Base-URL for serverinstans" -#: common/models.py:1276 +#: common/models.py:1333 msgid "Default Currency" msgstr "Standardvaluta" -#: common/models.py:1277 +#: common/models.py:1334 msgid "Select base currency for pricing calculations" msgstr "Velg grunnvalutaen for prisberegninger" -#: common/models.py:1283 +#: common/models.py:1340 msgid "Supported Currencies" msgstr "Støttede valutaer" -#: common/models.py:1284 +#: common/models.py:1341 msgid "List of supported currency codes" msgstr "Liste over støttede valutakoder" -#: common/models.py:1290 +#: common/models.py:1347 msgid "Currency Update Interval" msgstr "Oppdateringsintervall for valuta" -#: common/models.py:1292 +#: common/models.py:1349 msgid "How often to update exchange rates (set to zero to disable)" msgstr "Hvor ofte valutakurser skal oppdateres (sett til null for å deaktiverere)" -#: common/models.py:1295 common/models.py:1351 common/models.py:1364 -#: common/models.py:1372 common/models.py:1381 common/models.py:1390 -#: common/models.py:1627 common/models.py:1649 common/models.py:1764 -#: common/models.py:2146 +#: common/models.py:1352 common/models.py:1408 common/models.py:1421 +#: common/models.py:1429 common/models.py:1438 common/models.py:1447 +#: common/models.py:1696 common/models.py:1718 common/models.py:1819 +#: common/models.py:2208 msgid "days" msgstr "dager" -#: common/models.py:1299 +#: common/models.py:1356 msgid "Currency Update Plugin" msgstr "Valutaoppdaterings-plugin" -#: common/models.py:1300 +#: common/models.py:1357 msgid "Currency update plugin to use" msgstr "Valgt valutaoppdaterings-plugin" -#: common/models.py:1305 +#: common/models.py:1362 msgid "Download from URL" msgstr "Last ned fra URL" -#: common/models.py:1307 +#: common/models.py:1364 msgid "Allow download of remote images and files from external URL" msgstr "Tillat nedlastning av eksterne bilder og filer fra ekstern URL" -#: common/models.py:1313 +#: common/models.py:1370 msgid "Download Size Limit" msgstr "Nedlastingsgrense" -#: common/models.py:1314 +#: common/models.py:1371 msgid "Maximum allowable download size for remote image" msgstr "Maksimal tillatt nedlastingsstørrelse for eksternt bilde" -#: common/models.py:1320 +#: common/models.py:1377 msgid "User-agent used to download from URL" msgstr "User-Agent brukt for å laste ned fra URL" -#: common/models.py:1322 +#: common/models.py:1379 msgid "Allow to override the user-agent used to download images and files from external URL (leave blank for the default)" msgstr "Tillat overstyring av User-Agent brukt for å laste ned bilder og filer fra eksterne URLer (lå stå blank for standard)" -#: common/models.py:1327 +#: common/models.py:1384 msgid "Strict URL Validation" msgstr "Streng URL-validering" -#: common/models.py:1328 +#: common/models.py:1385 msgid "Require schema specification when validating URLs" msgstr "Krev skjemaspesifikasjon ved validering av URLer" -#: common/models.py:1333 +#: common/models.py:1390 msgid "Require confirm" msgstr "Krev bekreftelse" -#: common/models.py:1334 +#: common/models.py:1391 msgid "Require explicit user confirmation for certain action." msgstr "Krev eksplisitt brukerbekreftelse for visse handlinger." -#: common/models.py:1339 +#: common/models.py:1396 msgid "Tree Depth" msgstr "Tredybde" -#: common/models.py:1341 +#: common/models.py:1398 msgid "Default tree depth for treeview. Deeper levels can be lazy loaded as they are needed." msgstr "Standard tredybde for trevisning. Dypere nivåer kan lastes inn ved behov." -#: common/models.py:1347 +#: common/models.py:1404 msgid "Update Check Interval" msgstr "Intervall for oppdateringssjekk" -#: common/models.py:1348 +#: common/models.py:1405 msgid "How often to check for updates (set to zero to disable)" msgstr "Tidsintervall for å se etter oppdateringer(sett til null for å skru av)" -#: common/models.py:1354 +#: common/models.py:1411 msgid "Automatic Backup" msgstr "Automatisk sikkerhetskopiering" -#: common/models.py:1355 +#: common/models.py:1412 msgid "Enable automatic backup of database and media files" msgstr "Aktiver automatisk sikkerhetskopiering av database og mediafiler" -#: common/models.py:1360 +#: common/models.py:1417 msgid "Auto Backup Interval" msgstr "Automatisk sikkerhetskopieringsintervall" -#: common/models.py:1361 +#: common/models.py:1418 msgid "Specify number of days between automated backup events" msgstr "Angi antall dager mellom automatiske sikkerhetskopieringshendelser" -#: common/models.py:1367 +#: common/models.py:1424 msgid "Task Deletion Interval" msgstr "Slettingsintervall for oppgaver" -#: common/models.py:1369 +#: common/models.py:1426 msgid "Background task results will be deleted after specified number of days" msgstr "Bakgrunnsoppgaveresultater vil bli slettet etter antall angitte dager" -#: common/models.py:1376 +#: common/models.py:1433 msgid "Error Log Deletion Interval" msgstr "Slettingsintervall for feillogg" -#: common/models.py:1378 +#: common/models.py:1435 msgid "Error logs will be deleted after specified number of days" msgstr "Feilloggene vil bli slettet etter et angitt antall dager" -#: common/models.py:1385 +#: common/models.py:1442 msgid "Notification Deletion Interval" msgstr "Slettingsintervall for varsler" -#: common/models.py:1387 +#: common/models.py:1444 msgid "User notifications will be deleted after specified number of days" msgstr "Brukervarsler slettes etter angitt antall dager" -#: common/models.py:1394 templates/InvenTree/settings/sidebar.html:31 +#: common/models.py:1451 templates/InvenTree/settings/sidebar.html:31 msgid "Barcode Support" msgstr "Strekkodestøtte" -#: common/models.py:1395 +#: common/models.py:1452 msgid "Enable barcode scanner support in the web interface" msgstr "Aktiver støtte for strekkodeleser i webgrensesnittet" -#: common/models.py:1400 +#: common/models.py:1457 +msgid "Store Barcode Results" +msgstr "" + +#: common/models.py:1458 +msgid "Store barcode scan results in the database" +msgstr "" + +#: common/models.py:1463 +msgid "Barcode Scans Maximum Count" +msgstr "" + +#: common/models.py:1464 +msgid "Maximum number of barcode scan results to store" +msgstr "" + +#: common/models.py:1469 msgid "Barcode Input Delay" msgstr "Innlesingsforsinkelse for strekkode" -#: common/models.py:1401 +#: common/models.py:1470 msgid "Barcode input processing delay time" msgstr "Tidsforsinkelse for behandling av strekkode" -#: common/models.py:1407 +#: common/models.py:1476 msgid "Barcode Webcam Support" msgstr "Støtte for strekkodewebkamera" -#: common/models.py:1408 +#: common/models.py:1477 msgid "Allow barcode scanning via webcam in browser" msgstr "Tillat strekkodelesning via webkamera i nettleseren" -#: common/models.py:1413 +#: common/models.py:1482 msgid "Barcode Show Data" msgstr "Vis Strekkodedata" -#: common/models.py:1414 +#: common/models.py:1483 msgid "Display barcode data in browser as text" msgstr "Vis strekkodedata som tekst" -#: common/models.py:1419 +#: common/models.py:1488 msgid "Barcode Generation Plugin" msgstr "" -#: common/models.py:1420 +#: common/models.py:1489 msgid "Plugin to use for internal barcode data generation" msgstr "" -#: common/models.py:1425 +#: common/models.py:1494 msgid "Part Revisions" msgstr "Delrevisjoner" -#: common/models.py:1426 +#: common/models.py:1495 msgid "Enable revision field for Part" msgstr "Aktiver revisjonsfeltet for Del" -#: common/models.py:1431 +#: common/models.py:1500 msgid "Assembly Revision Only" msgstr "" -#: common/models.py:1432 +#: common/models.py:1501 msgid "Only allow revisions for assembly parts" msgstr "" -#: common/models.py:1437 +#: common/models.py:1506 msgid "Allow Deletion from Assembly" msgstr "" -#: common/models.py:1438 +#: common/models.py:1507 msgid "Allow deletion of parts which are used in an assembly" msgstr "" -#: common/models.py:1443 +#: common/models.py:1512 msgid "IPN Regex" msgstr "IPN regex" -#: common/models.py:1444 +#: common/models.py:1513 msgid "Regular expression pattern for matching Part IPN" msgstr "Regulært uttrykksmønster for matching av internt delnummer" -#: common/models.py:1447 +#: common/models.py:1516 msgid "Allow Duplicate IPN" msgstr "Tilat duplikat av internt delnummer" -#: common/models.py:1448 +#: common/models.py:1517 msgid "Allow multiple parts to share the same IPN" msgstr "Tillat flere deler å dele samme interne delnummer" -#: common/models.py:1453 +#: common/models.py:1522 msgid "Allow Editing IPN" msgstr "Tillat redigering av internt delnummer" -#: common/models.py:1454 +#: common/models.py:1523 msgid "Allow changing the IPN value while editing a part" msgstr "Tillat endring av IPN-verdien mens du redigerer en del" -#: common/models.py:1459 +#: common/models.py:1528 msgid "Copy Part BOM Data" msgstr "Kopier BOM-data fra del" -#: common/models.py:1460 +#: common/models.py:1529 msgid "Copy BOM data by default when duplicating a part" msgstr "Kopier BOM-data som standard når du dupliserer en del" -#: common/models.py:1465 +#: common/models.py:1534 msgid "Copy Part Parameter Data" msgstr "Kopier parameterdata fra del" -#: common/models.py:1466 +#: common/models.py:1535 msgid "Copy parameter data by default when duplicating a part" msgstr "Kopier parameterdata som standard ved duplisering av en del" -#: common/models.py:1471 +#: common/models.py:1540 msgid "Copy Part Test Data" msgstr "Kopier testdata fra del" -#: common/models.py:1472 +#: common/models.py:1541 msgid "Copy test data by default when duplicating a part" msgstr "Kopier testdata som standard ved duplisering av en del" -#: common/models.py:1477 +#: common/models.py:1546 msgid "Copy Category Parameter Templates" msgstr "Kopier designmaler for kategoriparametere" -#: common/models.py:1478 +#: common/models.py:1547 msgid "Copy category parameter templates when creating a part" msgstr "Kopier parametermaler for kategori ved oppretting av en del" -#: common/models.py:1483 part/admin.py:108 part/models.py:3945 -#: report/models.py:293 report/models.py:360 report/serializers.py:90 -#: report/serializers.py:131 stock/serializers.py:232 +#: common/models.py:1552 part/admin.py:108 part/models.py:4003 +#: report/models.py:301 report/models.py:368 report/serializers.py:91 +#: report/serializers.py:132 stock/serializers.py:233 #: templates/js/translated/table_filters.js:138 #: templates/js/translated/table_filters.js:775 msgid "Template" msgstr "Mal" -#: common/models.py:1484 +#: common/models.py:1553 msgid "Parts are templates by default" msgstr "Deler er maler som standard" -#: common/models.py:1490 +#: common/models.py:1559 msgid "Parts can be assembled from other components by default" msgstr "Deler kan settes sammen fra andre komponenter som standard" -#: common/models.py:1495 part/admin.py:95 part/models.py:1160 -#: part/serializers.py:1596 templates/js/translated/table_filters.js:737 +#: common/models.py:1564 part/admin.py:95 part/models.py:1221 +#: part/serializers.py:1654 templates/js/translated/table_filters.js:737 msgid "Component" msgstr "Komponent" -#: common/models.py:1496 +#: common/models.py:1565 msgid "Parts can be used as sub-components by default" msgstr "Deler kan bli brukt som underkomponenter som standard" -#: common/models.py:1501 part/admin.py:100 part/models.py:1178 +#: common/models.py:1570 part/admin.py:100 part/models.py:1239 msgid "Purchaseable" msgstr "Kjøpbar" -#: common/models.py:1502 +#: common/models.py:1571 msgid "Parts are purchaseable by default" msgstr "Deler er kjøpbare som standard" -#: common/models.py:1507 part/admin.py:104 part/models.py:1184 +#: common/models.py:1576 part/admin.py:104 part/models.py:1245 #: templates/js/translated/table_filters.js:763 msgid "Salable" msgstr "Salgbar" -#: common/models.py:1508 +#: common/models.py:1577 msgid "Parts are salable by default" msgstr "Deler er salgbare som standard" -#: common/models.py:1514 +#: common/models.py:1583 msgid "Parts are trackable by default" msgstr "Deler er sporbare som standard" -#: common/models.py:1519 part/admin.py:117 part/models.py:1200 -#: part/templates/part/part_base.html:154 +#: common/models.py:1588 part/admin.py:117 part/models.py:1261 +#: part/templates/part/part_base.html:155 #: templates/js/translated/table_filters.js:142 #: templates/js/translated/table_filters.js:787 msgid "Virtual" msgstr "Virtuelle" -#: common/models.py:1520 +#: common/models.py:1589 msgid "Parts are virtual by default" msgstr "Deler er virtuelle som standard" -#: common/models.py:1525 +#: common/models.py:1594 msgid "Show Import in Views" msgstr "Vis import i visninger" -#: common/models.py:1526 +#: common/models.py:1595 msgid "Display the import wizard in some part views" msgstr "Vis importveiviseren i noen deler visninger" -#: common/models.py:1531 +#: common/models.py:1600 msgid "Show related parts" msgstr "Vis relaterte deler" -#: common/models.py:1532 +#: common/models.py:1601 msgid "Display related parts for a part" msgstr "Vis relaterte deler i en del" -#: common/models.py:1537 +#: common/models.py:1606 msgid "Initial Stock Data" msgstr "Innledende lagerbeholdningsdata" -#: common/models.py:1538 +#: common/models.py:1607 msgid "Allow creation of initial stock when adding a new part" msgstr "Tillat oppretting av innledende lagerbeholdning når en ny del opprettes" -#: common/models.py:1543 templates/js/translated/part.js:108 +#: common/models.py:1612 templates/js/translated/part.js:108 msgid "Initial Supplier Data" msgstr "Innledende leverandørdata" -#: common/models.py:1545 +#: common/models.py:1614 msgid "Allow creation of initial supplier data when adding a new part" msgstr "Tillat oppretting av innledende leverandørdata når en ny del opprettes" -#: common/models.py:1551 +#: common/models.py:1620 msgid "Part Name Display Format" msgstr "Visningsformat for delnavn" -#: common/models.py:1552 +#: common/models.py:1621 msgid "Format to display the part name" msgstr "Format for å vise delnavnet" -#: common/models.py:1558 +#: common/models.py:1627 msgid "Part Category Default Icon" msgstr "Standardikon for delkategorier" -#: common/models.py:1559 +#: common/models.py:1628 msgid "Part category default icon (empty means no icon)" msgstr "Standardikon for delkategorier (tomt betyr ingen ikon)" -#: common/models.py:1564 +#: common/models.py:1633 msgid "Enforce Parameter Units" msgstr "Tving parameterenheter" -#: common/models.py:1566 +#: common/models.py:1635 msgid "If units are provided, parameter values must match the specified units" msgstr "Hvis det er angitt en enhet, skal parameterverdiene samsvare med de angitte enhetene" -#: common/models.py:1572 +#: common/models.py:1641 msgid "Minimum Pricing Decimal Places" msgstr "Minimum antall desimalplasser for priser" -#: common/models.py:1574 +#: common/models.py:1643 msgid "Minimum number of decimal places to display when rendering pricing data" msgstr "Minimum antall desimalplasser som skal vises når man gjengir prisdata" -#: common/models.py:1585 +#: common/models.py:1654 msgid "Maximum Pricing Decimal Places" msgstr "Maksimalt antall desimalplasser for priser" -#: common/models.py:1587 +#: common/models.py:1656 msgid "Maximum number of decimal places to display when rendering pricing data" msgstr "Maksimalt antall desimalplasser som skal vises når man gjengir prisdata" -#: common/models.py:1598 +#: common/models.py:1667 msgid "Use Supplier Pricing" msgstr "Bruk leverandørpriser" -#: common/models.py:1600 +#: common/models.py:1669 msgid "Include supplier price breaks in overall pricing calculations" msgstr "Inkluder leverandørprisbrudd i beregninger av totalpriser" -#: common/models.py:1606 +#: common/models.py:1675 msgid "Purchase History Override" msgstr "Innkjøpshistorikkoverstyring" -#: common/models.py:1608 +#: common/models.py:1677 msgid "Historical purchase order pricing overrides supplier price breaks" msgstr "Historiske innkjøpspriser overstyrer leverandørprisnivåer" -#: common/models.py:1614 +#: common/models.py:1683 msgid "Use Stock Item Pricing" msgstr "Bruk lagervarepriser" -#: common/models.py:1616 +#: common/models.py:1685 msgid "Use pricing from manually entered stock data for pricing calculations" msgstr "Bruk priser fra manuelt innlagte lagervarer for prisberegninger" -#: common/models.py:1622 +#: common/models.py:1691 msgid "Stock Item Pricing Age" msgstr "Lagervare prisalder" -#: common/models.py:1624 +#: common/models.py:1693 msgid "Exclude stock items older than this number of days from pricing calculations" msgstr "Unnta lagervarer som er eldre enn dette antall dager fra prisberegninger" -#: common/models.py:1631 +#: common/models.py:1700 msgid "Use Variant Pricing" msgstr "Bruk Variantpriser" -#: common/models.py:1632 +#: common/models.py:1701 msgid "Include variant pricing in overall pricing calculations" msgstr "Inkluder variantpriser i beregninger av totale priser" -#: common/models.py:1637 +#: common/models.py:1706 msgid "Active Variants Only" msgstr "Kun aktive varianter" -#: common/models.py:1639 +#: common/models.py:1708 msgid "Only use active variant parts for calculating variant pricing" msgstr "Bruk kun aktive variantdeler til beregning av variantprising" -#: common/models.py:1645 +#: common/models.py:1714 msgid "Pricing Rebuild Interval" msgstr "Intervall for rekalkulering av priser" -#: common/models.py:1647 +#: common/models.py:1716 msgid "Number of days before part pricing is automatically updated" msgstr "Antall dager før delpriser blir automatisk oppdatert" -#: common/models.py:1654 +#: common/models.py:1723 msgid "Internal Prices" msgstr "Interne Priser" -#: common/models.py:1655 +#: common/models.py:1724 msgid "Enable internal prices for parts" msgstr "Aktiver interne priser for deler" -#: common/models.py:1660 +#: common/models.py:1729 msgid "Internal Price Override" msgstr "Intern prisoverstyring" -#: common/models.py:1662 +#: common/models.py:1731 msgid "If available, internal prices override price range calculations" msgstr "Hvis tilgjengelig, overstyrer interne priser kalkulering av prisområde" -#: common/models.py:1668 +#: common/models.py:1737 msgid "Enable label printing" msgstr "Aktiver etikettutskrift" -#: common/models.py:1669 +#: common/models.py:1738 msgid "Enable label printing from the web interface" msgstr "Aktiver utskrift av etiketter fra nettleseren" -#: common/models.py:1674 +#: common/models.py:1743 msgid "Label Image DPI" msgstr "Etikettbilde-DPI" -#: common/models.py:1676 +#: common/models.py:1745 msgid "DPI resolution when generating image files to supply to label printing plugins" msgstr "DPI-oppløsning når når det genereres bildefiler for sending til utvidelser for etikettutskrift" -#: common/models.py:1682 +#: common/models.py:1751 msgid "Enable Reports" msgstr "Aktiver Rapporter" -#: common/models.py:1683 +#: common/models.py:1752 msgid "Enable generation of reports" msgstr "Aktiver generering av rapporter" -#: common/models.py:1688 templates/stats.html:25 +#: common/models.py:1757 templates/stats.html:25 msgid "Debug Mode" msgstr "Feilsøkingsmodus" -#: common/models.py:1689 +#: common/models.py:1758 msgid "Generate reports in debug mode (HTML output)" msgstr "Generer rapporter i feilsøkingsmodus (HTML-output)" -#: common/models.py:1694 +#: common/models.py:1763 msgid "Log Report Errors" msgstr "" -#: common/models.py:1695 +#: common/models.py:1764 msgid "Log errors which occur when generating reports" msgstr "" -#: common/models.py:1700 plugin/builtin/labels/label_sheet.py:28 -#: report/models.py:301 +#: common/models.py:1769 plugin/builtin/labels/label_sheet.py:28 +#: report/models.py:309 msgid "Page Size" msgstr "Sidestørrelse" -#: common/models.py:1701 +#: common/models.py:1770 msgid "Default page size for PDF reports" msgstr "Standard sidestørrelse for PDF-rapporter" -#: common/models.py:1706 -msgid "Enable Test Reports" -msgstr "Aktiver Testrapporter" - -#: common/models.py:1707 -msgid "Enable generation of test reports" -msgstr "Aktiver generering av testrapporter" - -#: common/models.py:1712 -msgid "Attach Test Reports" -msgstr "Legg ved testrapporter" - -#: common/models.py:1714 -msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item" -msgstr "Når det skrives ut en Testrapport, legg ved en kopi av Testrapporten på den assosierte Lagervaren" - -#: common/models.py:1720 +#: common/models.py:1775 msgid "Globally Unique Serials" msgstr "Globalt Unike Serienummer" -#: common/models.py:1721 +#: common/models.py:1776 msgid "Serial numbers for stock items must be globally unique" msgstr "Serienummer for lagervarer må være globalt unike" -#: common/models.py:1726 +#: common/models.py:1781 msgid "Autofill Serial Numbers" msgstr "Automatisk tildeling av Serienummer" -#: common/models.py:1727 +#: common/models.py:1782 msgid "Autofill serial numbers in forms" msgstr "Aumatisk fyll ut serienummer i skjemaer" -#: common/models.py:1732 +#: common/models.py:1787 msgid "Delete Depleted Stock" msgstr "Slett oppbrukt lagerbeholdning" -#: common/models.py:1734 +#: common/models.py:1789 msgid "Determines default behavior when a stock item is depleted" msgstr "" -#: common/models.py:1740 +#: common/models.py:1795 msgid "Batch Code Template" msgstr "Batchkodemal" -#: common/models.py:1742 +#: common/models.py:1797 msgid "Template for generating default batch codes for stock items" msgstr "Mal for generering av standard batchkoder for lagervarer" -#: common/models.py:1747 +#: common/models.py:1802 msgid "Stock Expiry" msgstr "Lagerbeholdning utløper" -#: common/models.py:1748 +#: common/models.py:1803 msgid "Enable stock expiry functionality" msgstr "Aktiver funksjonalitet for utløp av lagerbeholdning" -#: common/models.py:1753 +#: common/models.py:1808 msgid "Sell Expired Stock" msgstr "Selg utløpt lagerbeholdning" -#: common/models.py:1754 +#: common/models.py:1809 msgid "Allow sale of expired stock" msgstr "Tillat salg av utgått lagerbeholdning" -#: common/models.py:1759 +#: common/models.py:1814 msgid "Stock Stale Time" msgstr "Foreldet lagerbeholdning tidsintervall" -#: common/models.py:1761 +#: common/models.py:1816 msgid "Number of days stock items are considered stale before expiring" msgstr "Antall dager før lagervarer er ansett som foreldet før utløp" -#: common/models.py:1768 +#: common/models.py:1823 msgid "Build Expired Stock" msgstr "Produsér Utløpt Lagerbeholdning" -#: common/models.py:1769 +#: common/models.py:1824 msgid "Allow building with expired stock" msgstr "Tillat produksjon med utløpt lagerbeholdning" -#: common/models.py:1774 +#: common/models.py:1829 msgid "Stock Ownership Control" msgstr "Kontroll over eierskap av lagerbeholdning" -#: common/models.py:1775 +#: common/models.py:1830 msgid "Enable ownership control over stock locations and items" msgstr "Aktiver eierskap over lagerplasseringer og -varer" -#: common/models.py:1780 +#: common/models.py:1835 msgid "Stock Location Default Icon" msgstr "Lagerplassering standard ikon" -#: common/models.py:1781 +#: common/models.py:1836 msgid "Stock location default icon (empty means no icon)" msgstr "Lagerplassering standard ikon (tomt betyr ingen ikon)" -#: common/models.py:1786 +#: common/models.py:1841 msgid "Show Installed Stock Items" msgstr "Vis installerte lagervarer" -#: common/models.py:1787 +#: common/models.py:1842 msgid "Display installed stock items in stock tables" msgstr "Vis installerte lagervarer i lagertabeller" -#: common/models.py:1792 +#: common/models.py:1847 msgid "Check BOM when installing items" msgstr "" -#: common/models.py:1794 +#: common/models.py:1849 msgid "Installed stock items must exist in the BOM for the parent part" msgstr "" -#: common/models.py:1800 +#: common/models.py:1855 msgid "Allow Out of Stock Transfer" msgstr "" -#: common/models.py:1802 +#: common/models.py:1857 msgid "Allow stock items which are not in stock to be transferred between stock locations" msgstr "" -#: common/models.py:1808 +#: common/models.py:1863 msgid "Build Order Reference Pattern" msgstr "Produksjonsordre-referansemønster" -#: common/models.py:1810 +#: common/models.py:1865 msgid "Required pattern for generating Build Order reference field" msgstr "Nødvendig mønster for å generere Produksjonsordre-referansefeltet" -#: common/models.py:1816 common/models.py:1872 common/models.py:1894 -#: common/models.py:1930 +#: common/models.py:1871 common/models.py:1927 common/models.py:1949 +#: common/models.py:1985 msgid "Require Responsible Owner" msgstr "" -#: common/models.py:1817 common/models.py:1873 common/models.py:1895 -#: common/models.py:1931 +#: common/models.py:1872 common/models.py:1928 common/models.py:1950 +#: common/models.py:1986 msgid "A responsible owner must be assigned to each order" msgstr "" -#: common/models.py:1822 +#: common/models.py:1877 msgid "Require Active Part" msgstr "" -#: common/models.py:1823 +#: common/models.py:1878 msgid "Prevent build order creation for inactive parts" msgstr "" -#: common/models.py:1828 +#: common/models.py:1883 msgid "Require Locked Part" msgstr "" -#: common/models.py:1829 +#: common/models.py:1884 msgid "Prevent build order creation for unlocked parts" msgstr "" -#: common/models.py:1834 +#: common/models.py:1889 msgid "Require Valid BOM" msgstr "" -#: common/models.py:1836 +#: common/models.py:1891 msgid "Prevent build order creation unless BOM has been validated" msgstr "" -#: common/models.py:1842 +#: common/models.py:1897 msgid "Require Closed Child Orders" msgstr "" -#: common/models.py:1844 +#: common/models.py:1899 msgid "Prevent build order completion until all child orders are closed" msgstr "" -#: common/models.py:1850 +#: common/models.py:1905 msgid "Block Until Tests Pass" msgstr "" -#: common/models.py:1852 +#: common/models.py:1907 msgid "Prevent build outputs from being completed until all required tests pass" msgstr "" -#: common/models.py:1858 +#: common/models.py:1913 msgid "Enable Return Orders" msgstr "Aktiver returordrer" -#: common/models.py:1859 +#: common/models.py:1914 msgid "Enable return order functionality in the user interface" msgstr "Aktiver returordrefunksjonalitet i brukergrensesnittet" -#: common/models.py:1864 +#: common/models.py:1919 msgid "Return Order Reference Pattern" msgstr "Returordre-referansemønster" -#: common/models.py:1866 +#: common/models.py:1921 msgid "Required pattern for generating Return Order reference field" msgstr "" -#: common/models.py:1878 +#: common/models.py:1933 msgid "Edit Completed Return Orders" msgstr "Rediger fullførte returordrer" -#: common/models.py:1880 +#: common/models.py:1935 msgid "Allow editing of return orders after they have been completed" msgstr "Tillat redigering av returordrer etter de er fullført" -#: common/models.py:1886 +#: common/models.py:1941 msgid "Sales Order Reference Pattern" msgstr "Salgsordre-referansemønster" -#: common/models.py:1888 +#: common/models.py:1943 msgid "Required pattern for generating Sales Order reference field" msgstr "Påkrevd mønster for å generere salgsordrereferansefelt" -#: common/models.py:1900 +#: common/models.py:1955 msgid "Sales Order Default Shipment" msgstr "Salgsordre standard fraktmetode" -#: common/models.py:1901 +#: common/models.py:1956 msgid "Enable creation of default shipment with sales orders" msgstr "Aktiver opprettelse av standard forsendelse med salgsordrer" -#: common/models.py:1906 +#: common/models.py:1961 msgid "Edit Completed Sales Orders" msgstr "Rediger fullførte salgsordrer" -#: common/models.py:1908 +#: common/models.py:1963 msgid "Allow editing of sales orders after they have been shipped or completed" msgstr "Tillat redigering av salgsordrer etter de har blitt sendt eller fullført" -#: common/models.py:1914 +#: common/models.py:1969 msgid "Mark Shipped Orders as Complete" msgstr "" -#: common/models.py:1916 +#: common/models.py:1971 msgid "Sales orders marked as shipped will automatically be completed, bypassing the \"shipped\" status" msgstr "" -#: common/models.py:1922 +#: common/models.py:1977 msgid "Purchase Order Reference Pattern" msgstr "Referansemønster for innkjøpsordre" -#: common/models.py:1924 +#: common/models.py:1979 msgid "Required pattern for generating Purchase Order reference field" msgstr "Obligatorisk mønster for generering av referansefelt for innkjøpsordre" -#: common/models.py:1936 +#: common/models.py:1991 msgid "Edit Completed Purchase Orders" msgstr "Rediger fullførte innkjøpsordre" -#: common/models.py:1938 +#: common/models.py:1993 msgid "Allow editing of purchase orders after they have been shipped or completed" msgstr "Tillat redigering av innkjøpsordre etter at de har blitt sendt eller fullført" -#: common/models.py:1944 +#: common/models.py:1999 msgid "Auto Complete Purchase Orders" msgstr "Autofullfør innkjøpsordrer" -#: common/models.py:1946 +#: common/models.py:2001 msgid "Automatically mark purchase orders as complete when all line items are received" msgstr "Automatisk merk innkjøpsordre som fullført når alle ordrelinjer er mottatt" -#: common/models.py:1953 +#: common/models.py:2008 msgid "Enable password forgot" msgstr "Aktiver passord glemt" -#: common/models.py:1954 +#: common/models.py:2009 msgid "Enable password forgot function on the login pages" msgstr "Ativer funskjon for glemt passord på innloggingssidene" -#: common/models.py:1959 +#: common/models.py:2014 msgid "Enable registration" msgstr "Aktiver registrering" -#: common/models.py:1960 +#: common/models.py:2015 msgid "Enable self-registration for users on the login pages" msgstr "Aktiver egenregistrerting for brukerer på påloggingssidene" -#: common/models.py:1965 +#: common/models.py:2020 msgid "Enable SSO" msgstr "Aktiver SSO" -#: common/models.py:1966 +#: common/models.py:2021 msgid "Enable SSO on the login pages" msgstr "Aktiver SSO på innloggingssidene" -#: common/models.py:1971 +#: common/models.py:2026 msgid "Enable SSO registration" msgstr "Aktiver SSO-registrering" -#: common/models.py:1973 +#: common/models.py:2028 msgid "Enable self-registration via SSO for users on the login pages" msgstr "Aktiver selvregistrering via SSO for brukere på innloggingssiden" -#: common/models.py:1979 +#: common/models.py:2034 msgid "Enable SSO group sync" msgstr "" -#: common/models.py:1981 +#: common/models.py:2036 msgid "Enable synchronizing InvenTree groups with groups provided by the IdP" msgstr "" -#: common/models.py:1987 +#: common/models.py:2042 msgid "SSO group key" msgstr "" -#: common/models.py:1989 +#: common/models.py:2044 msgid "The name of the groups claim attribute provided by the IdP" msgstr "" -#: common/models.py:1995 +#: common/models.py:2050 msgid "SSO group map" msgstr "" -#: common/models.py:1997 +#: common/models.py:2052 msgid "A mapping from SSO groups to local InvenTree groups. If the local group does not exist, it will be created." msgstr "" -#: common/models.py:2003 +#: common/models.py:2058 msgid "Remove groups outside of SSO" msgstr "" -#: common/models.py:2005 +#: common/models.py:2060 msgid "Whether groups assigned to the user should be removed if they are not backend by the IdP. Disabling this setting might cause security issues" msgstr "" -#: common/models.py:2011 +#: common/models.py:2066 msgid "Email required" msgstr "E-postadresse kreves" -#: common/models.py:2012 +#: common/models.py:2067 msgid "Require user to supply mail on signup" msgstr "Krevt at brukere angir e-post ved registrering" -#: common/models.py:2017 +#: common/models.py:2072 msgid "Auto-fill SSO users" msgstr "Auto-utfyll SSO-brukere" -#: common/models.py:2019 +#: common/models.py:2074 msgid "Automatically fill out user-details from SSO account-data" msgstr "Fyll automatisk ut brukeropplysninger fra SSO-kontodata" -#: common/models.py:2025 +#: common/models.py:2080 msgid "Mail twice" msgstr "E-post to ganger" -#: common/models.py:2026 +#: common/models.py:2081 msgid "On signup ask users twice for their mail" msgstr "Spør brukeren om e-post to ganger ved registrering" -#: common/models.py:2031 +#: common/models.py:2086 msgid "Password twice" msgstr "Passord to ganger" -#: common/models.py:2032 +#: common/models.py:2087 msgid "On signup ask users twice for their password" msgstr "Spør brukeren om passord to ganger ved registrering" -#: common/models.py:2037 +#: common/models.py:2092 msgid "Allowed domains" msgstr "Tillatte domener" -#: common/models.py:2039 +#: common/models.py:2094 msgid "Restrict signup to certain domains (comma-separated, starting with @)" msgstr "Begrens registrering til bestemte domener (kommaseparert, begynner med @)" -#: common/models.py:2045 +#: common/models.py:2100 msgid "Group on signup" msgstr "Gruppe ved registrering" -#: common/models.py:2047 +#: common/models.py:2102 msgid "Group to which new users are assigned on registration. If SSO group sync is enabled, this group is only set if no group can be assigned from the IdP." msgstr "" -#: common/models.py:2053 +#: common/models.py:2108 msgid "Enforce MFA" msgstr "Krev MFA" -#: common/models.py:2054 +#: common/models.py:2109 msgid "Users must use multifactor security." msgstr "Brukere må bruke flerfaktorsikkerhet." -#: common/models.py:2059 +#: common/models.py:2114 msgid "Check plugins on startup" msgstr "Sjekk utvidelser ved oppstart" -#: common/models.py:2061 +#: common/models.py:2116 msgid "Check that all plugins are installed on startup - enable in container environments" msgstr "Sjekk at alle utvidelser er installert ved oppstart - aktiver i containermiljøer" -#: common/models.py:2069 +#: common/models.py:2124 msgid "Check for plugin updates" msgstr "" -#: common/models.py:2070 +#: common/models.py:2125 msgid "Enable periodic checks for updates to installed plugins" msgstr "" -#: common/models.py:2076 +#: common/models.py:2131 msgid "Enable URL integration" msgstr "Aktiver URL-integrasjon" -#: common/models.py:2077 +#: common/models.py:2132 msgid "Enable plugins to add URL routes" msgstr "Tillat utvidelser å legge til URL-ruter" -#: common/models.py:2083 +#: common/models.py:2138 msgid "Enable navigation integration" msgstr "Aktiver navigasjonsintegrasjon" -#: common/models.py:2084 +#: common/models.py:2139 msgid "Enable plugins to integrate into navigation" msgstr "Tillat utvidelser å integrere mot navigasjon" -#: common/models.py:2090 +#: common/models.py:2145 msgid "Enable app integration" msgstr "Aktiver app-integrasjon" -#: common/models.py:2091 +#: common/models.py:2146 msgid "Enable plugins to add apps" msgstr "Tillat utvidelser å legge til apper" -#: common/models.py:2097 +#: common/models.py:2152 msgid "Enable schedule integration" msgstr "Aktiver tidsplanintegrasjon" -#: common/models.py:2098 +#: common/models.py:2153 msgid "Enable plugins to run scheduled tasks" msgstr "Tillat utvidelser å kjøre planlagte oppgaver" -#: common/models.py:2104 +#: common/models.py:2159 msgid "Enable event integration" msgstr "Aktiver hendelsesintegrasjon" -#: common/models.py:2105 +#: common/models.py:2160 msgid "Enable plugins to respond to internal events" msgstr "Tillat utvidelser å reagere på interne hendelser" -#: common/models.py:2111 +#: common/models.py:2166 +msgid "Enable interface integration" +msgstr "" + +#: common/models.py:2167 +msgid "Enable plugins to integrate into the user interface" +msgstr "" + +#: common/models.py:2173 msgid "Enable project codes" msgstr "Aktiver prosjektkoder" -#: common/models.py:2112 +#: common/models.py:2174 msgid "Enable project codes for tracking projects" msgstr "Aktiver prosjektkoder for å spore prosjekter" -#: common/models.py:2117 +#: common/models.py:2179 msgid "Stocktake Functionality" msgstr "Varetellingsfunksjonalitet" -#: common/models.py:2119 +#: common/models.py:2181 msgid "Enable stocktake functionality for recording stock levels and calculating stock value" msgstr "Aktiver varetellingsfunksjonalitet for å registrere lagernivåer og regne ut lagerverdi" -#: common/models.py:2125 +#: common/models.py:2187 msgid "Exclude External Locations" msgstr "Ekskluder eksterne plasseringer" -#: common/models.py:2127 +#: common/models.py:2189 msgid "Exclude stock items in external locations from stocktake calculations" msgstr "Eksluder lagervarer i eksterne plasseringer fra varetellinger" -#: common/models.py:2133 +#: common/models.py:2195 msgid "Automatic Stocktake Period" msgstr "Automatisk varetellingsperiode" -#: common/models.py:2135 +#: common/models.py:2197 msgid "Number of days between automatic stocktake recording (set to zero to disable)" msgstr "Antall dager mellom automatisk varetellingsregistrering (sett til null for å deaktivere)" -#: common/models.py:2141 +#: common/models.py:2203 msgid "Report Deletion Interval" msgstr "Rapportslettingsintervall" -#: common/models.py:2143 +#: common/models.py:2205 msgid "Stocktake reports will be deleted after specified number of days" msgstr "Varetellingsrapporter vil slettes etter angitt antall dager" -#: common/models.py:2150 +#: common/models.py:2212 msgid "Display Users full names" msgstr "Vis brukernes fulle navn" -#: common/models.py:2151 +#: common/models.py:2213 msgid "Display Users full names instead of usernames" msgstr "Vis brukernes fulle navn istedet for brukernavn" -#: common/models.py:2156 +#: common/models.py:2218 msgid "Enable Test Station Data" msgstr "" -#: common/models.py:2157 +#: common/models.py:2219 msgid "Enable test station data collection for test results" msgstr "" -#: common/models.py:2169 common/models.py:2549 -msgid "Settings key (must be unique - case insensitive" -msgstr "Innstillingsnøkkel (må være unik - ufølsom for store og små bokstaver" +#: common/models.py:2224 +msgid "Create Template on Upload" +msgstr "" -#: common/models.py:2212 +#: common/models.py:2226 +msgid "Create a new test template when uploading test data which does not match an existing template" +msgstr "" + +#: common/models.py:2279 msgid "Hide inactive parts" msgstr "Skjul inaktive elementer" -#: common/models.py:2214 +#: common/models.py:2281 msgid "Hide inactive parts in results displayed on the homepage" msgstr "Skjul inaktive deler i resultater som vises på hjemmesiden" -#: common/models.py:2220 +#: common/models.py:2287 msgid "Show subscribed parts" msgstr "Vis abonnerte deler" -#: common/models.py:2221 +#: common/models.py:2288 msgid "Show subscribed parts on the homepage" msgstr "Vis abonnerte deler på startsiden" -#: common/models.py:2226 +#: common/models.py:2293 msgid "Show subscribed categories" msgstr "Vis abonnerte kategorier" -#: common/models.py:2227 +#: common/models.py:2294 msgid "Show subscribed part categories on the homepage" msgstr "Vis abonnerte delkatekorier på startsiden" -#: common/models.py:2232 +#: common/models.py:2299 msgid "Show latest parts" msgstr "Vis nyeste deler" -#: common/models.py:2233 +#: common/models.py:2300 msgid "Show latest parts on the homepage" msgstr "Vis nyeste deler på startsiden" -#: common/models.py:2238 +#: common/models.py:2305 msgid "Show invalid BOMs" msgstr "" -#: common/models.py:2239 +#: common/models.py:2306 msgid "Show BOMs that await validation on the homepage" msgstr "Vis stykklister som venter på validering på startsiden" -#: common/models.py:2244 +#: common/models.py:2311 msgid "Show recent stock changes" msgstr "Vis nylige lagerendringer" -#: common/models.py:2245 +#: common/models.py:2312 msgid "Show recently changed stock items on the homepage" msgstr "Vis nylig endrede lagervarer på startsiden" -#: common/models.py:2250 +#: common/models.py:2317 msgid "Show low stock" msgstr "Vis lav lagerbeholdning" -#: common/models.py:2251 +#: common/models.py:2318 msgid "Show low stock items on the homepage" msgstr "Vis lave lagervarer på startsiden" -#: common/models.py:2256 +#: common/models.py:2323 msgid "Show depleted stock" msgstr "Vis tomme lagervarer" -#: common/models.py:2257 +#: common/models.py:2324 msgid "Show depleted stock items on the homepage" msgstr "Vis tom lagerbeholdning på startsiden" -#: common/models.py:2262 +#: common/models.py:2329 msgid "Show needed stock" msgstr "Vis nødvendig lagerbeholdning" -#: common/models.py:2263 +#: common/models.py:2330 msgid "Show stock items needed for builds on the homepage" msgstr "Vis lagervarer som trengs for produksjon på startsiden" -#: common/models.py:2268 +#: common/models.py:2335 msgid "Show expired stock" msgstr "Vis utløpt lagerbeholdning" -#: common/models.py:2269 +#: common/models.py:2336 msgid "Show expired stock items on the homepage" msgstr "Vis utløpte lagervarer på startsiden" -#: common/models.py:2274 +#: common/models.py:2341 msgid "Show stale stock" msgstr "Vis foreldet lagerbeholdning" -#: common/models.py:2275 +#: common/models.py:2342 msgid "Show stale stock items on the homepage" msgstr "Vis foreldet lagerbeholdning på startsiden" -#: common/models.py:2280 +#: common/models.py:2347 msgid "Show pending builds" msgstr "Vis ventende produksjoner" -#: common/models.py:2281 +#: common/models.py:2348 msgid "Show pending builds on the homepage" msgstr "Vi ventende produksjoner på startsiden" -#: common/models.py:2286 +#: common/models.py:2353 msgid "Show overdue builds" msgstr "Vis forfalte produksjoner" -#: common/models.py:2287 +#: common/models.py:2354 msgid "Show overdue builds on the homepage" msgstr "Vis forfalte produksjoner på startsiden" -#: common/models.py:2292 +#: common/models.py:2359 msgid "Show outstanding POs" msgstr "Vis utestående Innkjøpsordrer" -#: common/models.py:2293 +#: common/models.py:2360 msgid "Show outstanding POs on the homepage" msgstr "Vis utestående Innkjøpsordrer på startsiden" -#: common/models.py:2298 +#: common/models.py:2365 msgid "Show overdue POs" msgstr "Vis forfalte Innkjøpsordrer" -#: common/models.py:2299 +#: common/models.py:2366 msgid "Show overdue POs on the homepage" msgstr "Vis forfalte Innkjøpsordrer på startsiden" -#: common/models.py:2304 +#: common/models.py:2371 msgid "Show outstanding SOs" msgstr "Vis utestående Salgsordrer" -#: common/models.py:2305 +#: common/models.py:2372 msgid "Show outstanding SOs on the homepage" msgstr "Vis utestående Salgsordrer på startsiden" -#: common/models.py:2310 +#: common/models.py:2377 msgid "Show overdue SOs" msgstr "Vis forfalte SOer" -#: common/models.py:2311 +#: common/models.py:2378 msgid "Show overdue SOs on the homepage" msgstr "Vis forfalte SOer på startsiden" -#: common/models.py:2316 +#: common/models.py:2383 msgid "Show pending SO shipments" msgstr "Vis ventende SO-forsendelser" -#: common/models.py:2317 +#: common/models.py:2384 msgid "Show pending SO shipments on the homepage" msgstr "Vis ventende SO-forsendelser på startsiden" -#: common/models.py:2322 +#: common/models.py:2389 msgid "Show News" msgstr "Vis Nyheter" -#: common/models.py:2323 +#: common/models.py:2390 msgid "Show news on the homepage" msgstr "Vis nyheter på startsiden" -#: common/models.py:2328 +#: common/models.py:2395 msgid "Inline label display" msgstr "Innebygd etikettvisning" -#: common/models.py:2330 +#: common/models.py:2397 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "Vis PDF-etiketter i nettleseren fremfor å lastes ned som en fil" -#: common/models.py:2336 +#: common/models.py:2403 msgid "Default label printer" msgstr "Standard etikettskriver" -#: common/models.py:2338 +#: common/models.py:2405 msgid "Configure which label printer should be selected by default" msgstr "Konfigurer hvilken etikettskriver som skal være valgt som standard" -#: common/models.py:2344 +#: common/models.py:2411 msgid "Inline report display" msgstr "Innebygd rapportvisning" -#: common/models.py:2346 +#: common/models.py:2413 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "Vis PDF-rapporter i nettleseren fremfor å lastes ned som en fil" -#: common/models.py:2352 +#: common/models.py:2419 msgid "Search Parts" msgstr "Søk i Deler" -#: common/models.py:2353 +#: common/models.py:2420 msgid "Display parts in search preview window" msgstr "Vis deler i forhåndsvsningsvinduet for søk" -#: common/models.py:2358 +#: common/models.py:2425 msgid "Search Supplier Parts" msgstr "Søk i Leverandørdeler" -#: common/models.py:2359 +#: common/models.py:2426 msgid "Display supplier parts in search preview window" msgstr "Vis leverandørdeler i forhåndsvisningsvinduet for søk" -#: common/models.py:2364 +#: common/models.py:2431 msgid "Search Manufacturer Parts" msgstr "Søk i Produsentdeler" -#: common/models.py:2365 +#: common/models.py:2432 msgid "Display manufacturer parts in search preview window" msgstr "Vis produsentdeler i forhåndsvisningsvinduet for søk" -#: common/models.py:2370 +#: common/models.py:2437 msgid "Hide Inactive Parts" msgstr "Skjul Inaktive Deler" -#: common/models.py:2371 +#: common/models.py:2438 msgid "Excluded inactive parts from search preview window" msgstr "Ekskluder inaktive deler fra forhåndsvisningsvinduet for søk" -#: common/models.py:2376 +#: common/models.py:2443 msgid "Search Categories" msgstr "Søk i kategorier" -#: common/models.py:2377 +#: common/models.py:2444 msgid "Display part categories in search preview window" msgstr "Vis delkategorier i forhåndsvisningsvinduet for søk" -#: common/models.py:2382 +#: common/models.py:2449 msgid "Search Stock" msgstr "Søk i lagerbeholdning" -#: common/models.py:2383 +#: common/models.py:2450 msgid "Display stock items in search preview window" msgstr "Vis lagervarer i forhåndsvisningsvinduet for søk" -#: common/models.py:2388 +#: common/models.py:2455 msgid "Hide Unavailable Stock Items" msgstr "Skjul utilgjengelige Lagervarer" -#: common/models.py:2390 +#: common/models.py:2457 msgid "Exclude stock items which are not available from the search preview window" msgstr "Ekskluder lagervarer som ikke er tilgjengelige fra forhåndsvisningsvinduet for søk" -#: common/models.py:2396 +#: common/models.py:2463 msgid "Search Locations" msgstr "Søk i Plasseringer" -#: common/models.py:2397 +#: common/models.py:2464 msgid "Display stock locations in search preview window" msgstr "Vis lagerplasseringer i forhåndsvisningsvinduet for søk" -#: common/models.py:2402 +#: common/models.py:2469 msgid "Search Companies" msgstr "Søk i Firma" -#: common/models.py:2403 +#: common/models.py:2470 msgid "Display companies in search preview window" msgstr "Vis firma i forhåndsvsningsvinduet for søk" -#: common/models.py:2408 +#: common/models.py:2475 msgid "Search Build Orders" msgstr "Søk i Produksjonsordrer" -#: common/models.py:2409 +#: common/models.py:2476 msgid "Display build orders in search preview window" msgstr "Vis produksjonsordrer i forhåndsvisningsvinduet for søk" -#: common/models.py:2414 +#: common/models.py:2481 msgid "Search Purchase Orders" msgstr "Søk i Innkjøpsordrer" -#: common/models.py:2415 +#: common/models.py:2482 msgid "Display purchase orders in search preview window" msgstr "Vis innkjøpsordrer i forhåndsvisningsvinduet for søk" -#: common/models.py:2420 +#: common/models.py:2487 msgid "Exclude Inactive Purchase Orders" msgstr "Ekskluder inaktive Innkjøpsordrer" -#: common/models.py:2422 +#: common/models.py:2489 msgid "Exclude inactive purchase orders from search preview window" msgstr "Ekskluder inaktive innkjøpsordrer fra forhåndsvisningsvinduet for søk" -#: common/models.py:2428 +#: common/models.py:2495 msgid "Search Sales Orders" msgstr "Søk i Salgsordrer" -#: common/models.py:2429 +#: common/models.py:2496 msgid "Display sales orders in search preview window" msgstr "Vis salgsordrer i forhåndsvisningsvinduet for søk" -#: common/models.py:2434 +#: common/models.py:2501 msgid "Exclude Inactive Sales Orders" msgstr "Ekskluder Inaktive Salgsordrer" -#: common/models.py:2436 +#: common/models.py:2503 msgid "Exclude inactive sales orders from search preview window" msgstr "Ekskluder inaktive salgsordrer fra forhåndsvisningsvinduet for søk" -#: common/models.py:2442 +#: common/models.py:2509 msgid "Search Return Orders" msgstr "Søk i Returordrer" -#: common/models.py:2443 +#: common/models.py:2510 msgid "Display return orders in search preview window" msgstr "Vis returordrer i forhåndsvisningsvinduet for søk" -#: common/models.py:2448 +#: common/models.py:2515 msgid "Exclude Inactive Return Orders" msgstr "Ekskluder Inaktive Returordrer" -#: common/models.py:2450 +#: common/models.py:2517 msgid "Exclude inactive return orders from search preview window" msgstr "Ekskluder inaktive returordrer fra forhåndsvisningsvinduet for søk" -#: common/models.py:2456 +#: common/models.py:2523 msgid "Search Preview Results" msgstr "Forhåndsvisning av søkeresultater" -#: common/models.py:2458 +#: common/models.py:2525 msgid "Number of results to show in each section of the search preview window" msgstr "Antall resultater å vise i hver seksjon av søkeresultatsforhåndsvisningen" -#: common/models.py:2464 +#: common/models.py:2531 msgid "Regex Search" msgstr "Regex-søk" -#: common/models.py:2465 +#: common/models.py:2532 msgid "Enable regular expressions in search queries" msgstr "Aktiver regulære uttrykk i søkeord" -#: common/models.py:2470 +#: common/models.py:2537 msgid "Whole Word Search" msgstr "Helordsøk" -#: common/models.py:2471 +#: common/models.py:2538 msgid "Search queries return results for whole word matches" msgstr "Søk returnerer resultater for treff med hele ord" -#: common/models.py:2476 +#: common/models.py:2543 msgid "Show Quantity in Forms" msgstr "Vis antall i skjemaer" -#: common/models.py:2477 +#: common/models.py:2544 msgid "Display available part quantity in some forms" msgstr "Vis antall tilgjengelige deler i noen skjemaer" -#: common/models.py:2482 +#: common/models.py:2549 msgid "Escape Key Closes Forms" msgstr "Escape-knappen lukker skjemaer" -#: common/models.py:2483 +#: common/models.py:2550 msgid "Use the escape key to close modal forms" msgstr "Bruk Escape-knappen for å lukke modal-skjemaer" -#: common/models.py:2488 +#: common/models.py:2555 msgid "Fixed Navbar" msgstr "Fast navigasjonsbar" -#: common/models.py:2489 +#: common/models.py:2556 msgid "The navbar position is fixed to the top of the screen" msgstr "Navigasjonsbarens posisjon er fast på toppen av skjermen" -#: common/models.py:2494 +#: common/models.py:2561 msgid "Date Format" msgstr "Datoformat" -#: common/models.py:2495 +#: common/models.py:2562 msgid "Preferred format for displaying dates" msgstr "Foretrukket format for å vise datoer" -#: common/models.py:2508 part/templates/part/detail.html:41 +#: common/models.py:2575 part/templates/part/detail.html:41 msgid "Part Scheduling" msgstr "Delplanlegging" -#: common/models.py:2509 +#: common/models.py:2576 msgid "Display part scheduling information" msgstr "Vis delplanleggingsinformasjon" -#: common/models.py:2514 part/templates/part/detail.html:62 +#: common/models.py:2581 part/templates/part/detail.html:62 msgid "Part Stocktake" msgstr "Lagertelling for Del" -#: common/models.py:2516 +#: common/models.py:2583 msgid "Display part stocktake information (if stocktake functionality is enabled)" msgstr "Vis lagertellingsinformasjon for del (om lagertellingsfunksjonalitet er aktivert)" -#: common/models.py:2522 +#: common/models.py:2589 msgid "Table String Length" msgstr "Tabellstrenglengde" -#: common/models.py:2524 +#: common/models.py:2591 msgid "Maximum length limit for strings displayed in table views" msgstr "Maksimal lengdegrense for tekst vist i tabeller" -#: common/models.py:2530 +#: common/models.py:2597 msgid "Receive error reports" msgstr "Motta feilrapporter" -#: common/models.py:2531 +#: common/models.py:2598 msgid "Receive notifications for system errors" msgstr "Motta varsler om systemfeil" -#: common/models.py:2536 +#: common/models.py:2603 msgid "Last used printing machines" msgstr "" -#: common/models.py:2537 +#: common/models.py:2604 msgid "Save the last used printing machines for a user" msgstr "" -#: common/models.py:2557 common/models.py:2558 common/models.py:2715 -#: common/models.py:2716 common/models.py:2961 common/models.py:2962 -#: common/models.py:3288 common/models.py:3289 importer/models.py:88 -#: part/models.py:3307 part/models.py:3394 part/models.py:3468 -#: part/models.py:3496 plugin/models.py:274 plugin/models.py:275 -#: report/templates/report/inventree_test_report.html:105 -#: templates/js/translated/stock.js:3120 users/models.py:111 +#: common/models.py:2621 common/models.py:2622 common/models.py:2779 +#: common/models.py:2780 common/models.py:3025 common/models.py:3026 +#: common/models.py:3349 common/models.py:3350 common/models.py:3534 +#: importer/models.py:89 part/models.py:3358 part/models.py:3445 +#: part/models.py:3519 part/models.py:3547 plugin/models.py:313 +#: plugin/models.py:314 report/templates/report/inventree_test_report.html:105 +#: templates/js/translated/stock.js:3121 users/models.py:111 msgid "User" msgstr "Bruker" -#: common/models.py:2580 +#: common/models.py:2644 msgid "Price break quantity" msgstr "Antall for prisbrudd" -#: common/models.py:2587 company/serializers.py:513 order/admin.py:42 -#: order/models.py:1430 order/models.py:2417 -#: templates/js/translated/company.js:1823 templates/js/translated/part.js:1892 +#: common/models.py:2651 company/serializers.py:524 order/admin.py:42 +#: order/models.py:1447 order/models.py:2456 +#: templates/js/translated/company.js:1824 templates/js/translated/part.js:1892 #: templates/js/translated/pricing.js:621 #: templates/js/translated/return_order.js:739 msgid "Price" msgstr "Pris" -#: common/models.py:2588 +#: common/models.py:2652 msgid "Unit price at specified quantity" msgstr "Enhetspris på spesifisert antall" -#: common/models.py:2692 common/models.py:2877 +#: common/models.py:2756 common/models.py:2941 msgid "Endpoint" msgstr "Endepunkt" -#: common/models.py:2693 +#: common/models.py:2757 msgid "Endpoint at which this webhook is received" msgstr "Endepunktet hvor denne webhooken er mottatt" -#: common/models.py:2703 +#: common/models.py:2767 msgid "Name for this webhook" msgstr "Navn for webhooken" -#: common/models.py:2707 +#: common/models.py:2771 msgid "Is this webhook active" msgstr "Er webhooken aktiv" -#: common/models.py:2723 users/models.py:159 +#: common/models.py:2787 users/models.py:159 msgid "Token" msgstr "Sjetong" -#: common/models.py:2724 +#: common/models.py:2788 msgid "Token for access" msgstr "Nøkkel for tilgang" -#: common/models.py:2732 +#: common/models.py:2796 msgid "Secret" msgstr "Hemmelig" -#: common/models.py:2733 +#: common/models.py:2797 msgid "Shared secret for HMAC" msgstr "Delt hemmlighet for HMAC" -#: common/models.py:2841 +#: common/models.py:2905 msgid "Message ID" msgstr "Melding ID" -#: common/models.py:2842 +#: common/models.py:2906 msgid "Unique identifier for this message" msgstr "Unik Id for denne meldingen" -#: common/models.py:2850 +#: common/models.py:2914 msgid "Host" msgstr "Vert" -#: common/models.py:2851 +#: common/models.py:2915 msgid "Host from which this message was received" msgstr "Verten denne meldingen ble mottatt fra" -#: common/models.py:2859 +#: common/models.py:2923 msgid "Header" msgstr "Tittel" -#: common/models.py:2860 +#: common/models.py:2924 msgid "Header of this message" msgstr "Overskrift for denne meldingen" -#: common/models.py:2867 +#: common/models.py:2931 msgid "Body" msgstr "Brødtekst" -#: common/models.py:2868 +#: common/models.py:2932 msgid "Body of this message" msgstr "Innholdet i meldingen" -#: common/models.py:2878 +#: common/models.py:2942 msgid "Endpoint on which this message was received" msgstr "Endepunktet meldingen ble mottatt fra" -#: common/models.py:2883 +#: common/models.py:2947 msgid "Worked on" msgstr "Arbeidet med" -#: common/models.py:2884 +#: common/models.py:2948 msgid "Was the work on this message finished?" msgstr "Var arbeidet med denne meldingen ferdig?" -#: common/models.py:3010 +#: common/models.py:3074 msgid "Id" msgstr "" -#: common/models.py:3012 templates/js/translated/company.js:965 -#: templates/js/translated/news.js:44 +#: common/models.py:3076 part/serializers.py:271 +#: templates/js/translated/company.js:966 templates/js/translated/news.js:44 msgid "Title" msgstr "Tittel" -#: common/models.py:3014 common/models.py:3272 company/models.py:149 -#: company/models.py:446 company/models.py:512 company/models.py:818 -#: order/models.py:302 order/models.py:1385 order/models.py:1817 -#: part/admin.py:55 part/models.py:1057 +#: common/models.py:3078 common/models.py:3333 company/models.py:146 +#: company/models.py:443 company/models.py:509 company/models.py:815 +#: order/models.py:309 order/models.py:1402 order/models.py:1846 +#: part/admin.py:55 part/models.py:1118 #: part/templates/part/part_scheduling.html:11 #: report/templates/report/inventree_build_order_report.html:164 -#: stock/admin.py:229 templates/js/translated/company.js:1319 -#: templates/js/translated/company.js:1673 templates/js/translated/order.js:376 +#: stock/admin.py:230 templates/js/translated/company.js:1320 +#: templates/js/translated/company.js:1674 templates/js/translated/order.js:376 #: templates/js/translated/part.js:2475 -#: templates/js/translated/purchase_order.js:2110 -#: templates/js/translated/purchase_order.js:2274 +#: templates/js/translated/purchase_order.js:2094 +#: templates/js/translated/purchase_order.js:2258 #: templates/js/translated/return_order.js:778 -#: templates/js/translated/sales_order.js:1092 -#: templates/js/translated/sales_order.js:2023 +#: templates/js/translated/sales_order.js:1058 +#: templates/js/translated/sales_order.js:2004 msgid "Link" msgstr "Lenke" -#: common/models.py:3016 templates/js/translated/news.js:60 +#: common/models.py:3080 templates/js/translated/news.js:60 msgid "Published" msgstr "Publisert" -#: common/models.py:3018 templates/InvenTree/settings/plugin_settings.html:32 +#: common/models.py:3082 templates/InvenTree/settings/plugin_settings.html:32 #: templates/js/translated/news.js:56 templates/js/translated/plugin.js:103 msgid "Author" msgstr "Forfatter" -#: common/models.py:3020 templates/js/translated/news.js:52 +#: common/models.py:3084 templates/js/translated/news.js:52 msgid "Summary" msgstr "Sammendrag" -#: common/models.py:3023 +#: common/models.py:3087 msgid "Read" msgstr "Les" -#: common/models.py:3023 +#: common/models.py:3087 msgid "Was this news item read?" msgstr "Er dette nyhetselementet lest?" -#: common/models.py:3040 company/models.py:159 part/models.py:1067 +#: common/models.py:3104 company/models.py:156 part/models.py:1128 #: report/templates/report/inventree_bill_of_materials_report.html:126 #: report/templates/report/inventree_bill_of_materials_report.html:148 #: report/templates/report/inventree_return_order_report.html:35 -#: stock/templates/stock/item_base.html:133 templates/503.html:31 +#: stock/templates/stock/item_base.html:130 templates/503.html:31 #: templates/hover_image.html:7 templates/hover_image.html:9 #: templates/modals.html:6 msgid "Image" msgstr "Bilde" -#: common/models.py:3040 +#: common/models.py:3104 msgid "Image file" msgstr "Bildefil" -#: common/models.py:3052 common/models.py:3256 +#: common/models.py:3116 common/models.py:3317 msgid "Target model type for this image" msgstr "" -#: common/models.py:3056 +#: common/models.py:3120 msgid "Target model ID for this image" msgstr "" -#: common/models.py:3078 +#: common/models.py:3142 msgid "Custom Unit" msgstr "" -#: common/models.py:3099 +#: common/models.py:3160 msgid "Unit symbol must be unique" msgstr "Enhetssymbolet må være unikt" -#: common/models.py:3114 +#: common/models.py:3175 msgid "Unit name must be a valid identifier" msgstr "Enhetsnavn må være en gyldig identifikator" -#: common/models.py:3133 +#: common/models.py:3194 msgid "Unit name" msgstr "Enhetsnavn" -#: common/models.py:3140 templates/InvenTree/settings/settings_staff_js.html:75 +#: common/models.py:3201 templates/InvenTree/settings/settings_staff_js.html:75 msgid "Symbol" msgstr "Symbol" -#: common/models.py:3141 +#: common/models.py:3202 msgid "Optional unit symbol" msgstr "Valgfritt enhetssymbol" -#: common/models.py:3147 templates/InvenTree/settings/settings_staff_js.html:71 +#: common/models.py:3208 templates/InvenTree/settings/settings_staff_js.html:71 msgid "Definition" msgstr "Definisjon" -#: common/models.py:3148 +#: common/models.py:3209 msgid "Unit definition" msgstr "Enhetsdefinisjon" -#: common/models.py:3206 common/models.py:3263 stock/models.py:2558 -#: templates/js/translated/attachment.js:119 +#: common/models.py:3267 common/models.py:3324 stock/models.py:2674 +#: stock/serializers.py:244 templates/js/translated/attachment.js:119 #: templates/js/translated/attachment.js:345 msgid "Attachment" msgstr "Vedlegg" -#: common/models.py:3218 +#: common/models.py:3279 msgid "Missing file" msgstr "Fil mangler" -#: common/models.py:3219 +#: common/models.py:3280 msgid "Missing external link" msgstr "Mangler eksternlenke" -#: common/models.py:3264 +#: common/models.py:3325 msgid "Select file to attach" msgstr "Velg fil å legge ved" -#: common/models.py:3279 templates/js/translated/attachment.js:120 +#: common/models.py:3340 templates/js/translated/attachment.js:120 #: templates/js/translated/attachment.js:360 msgid "Comment" msgstr "Kommentar" -#: common/models.py:3280 +#: common/models.py:3341 msgid "Attachment comment" msgstr "Vedleggskommentar" -#: common/models.py:3296 +#: common/models.py:3357 msgid "Upload date" msgstr "Opplastet dato" -#: common/models.py:3297 +#: common/models.py:3358 msgid "Date the file was uploaded" msgstr "Datoen som filen ble lastet opp" -#: common/models.py:3301 +#: common/models.py:3362 msgid "File size" msgstr "Filstørrelse" -#: common/models.py:3301 +#: common/models.py:3362 msgid "File size in bytes" msgstr "Filstørrelse i byte" -#: common/models.py:3339 common/serializers.py:562 +#: common/models.py:3400 common/serializers.py:609 msgid "Invalid model type specified for attachment" msgstr "Ugyldig modelltype spesifisert for vedlegg" -#: common/notifications.py:314 +#: common/models.py:3409 plugin/models.py:43 users/models.py:100 +msgid "Key" +msgstr "Nøkkel" + +#: common/models.py:3410 +msgid "Value that will be saved in the models database" +msgstr "" + +#: common/models.py:3413 +msgid "Name of the state" +msgstr "" + +#: common/models.py:3417 part/serializers.py:273 +msgid "Label" +msgstr "" + +#: common/models.py:3418 +msgid "Label that will be displayed in the frontend" +msgstr "" + +#: common/models.py:3424 +msgid "Color" +msgstr "" + +#: common/models.py:3425 +msgid "Color that will be displayed in the frontend" +msgstr "" + +#: common/models.py:3428 +msgid "Logical Key" +msgstr "" + +#: common/models.py:3430 +msgid "State logical key that is equal to this custom state in business logic" +msgstr "" + +#: common/models.py:3438 part/serializers.py:275 +msgid "Model" +msgstr "" + +#: common/models.py:3439 +msgid "Model this state is associated with" +msgstr "" + +#: common/models.py:3443 +msgid "Reference Status Set" +msgstr "" + +#: common/models.py:3444 +msgid "Status set that is extended with this custom state" +msgstr "" + +#: common/models.py:3450 +msgid "Custom State" +msgstr "" + +#: common/models.py:3451 +msgid "Custom States" +msgstr "" + +#: common/models.py:3466 +msgid "Model must be selected" +msgstr "" + +#: common/models.py:3469 +msgid "Key must be selected" +msgstr "" + +#: common/models.py:3472 +msgid "Logical key must be selected" +msgstr "" + +#: common/models.py:3476 +msgid "Key must be different from logical key" +msgstr "" + +#: common/models.py:3480 +msgid "Reference status must be selected" +msgstr "" + +#: common/models.py:3492 +msgid "Reference status set not found" +msgstr "" + +#: common/models.py:3498 +msgid "Key must be different from the logical keys of the reference status" +msgstr "" + +#: common/models.py:3504 +msgid "Logical key must be in the logical keys of the reference status" +msgstr "" + +#: common/models.py:3519 +msgid "Barcode Scan" +msgstr "" + +#: common/models.py:3523 importer/models.py:512 part/models.py:4009 +msgid "Data" +msgstr "" + +#: common/models.py:3524 +msgid "Barcode data" +msgstr "" + +#: common/models.py:3535 +msgid "User who scanned the barcode" +msgstr "" + +#: common/models.py:3540 importer/models.py:60 +msgid "Timestamp" +msgstr "" + +#: common/models.py:3541 +msgid "Date and time of the barcode scan" +msgstr "" + +#: common/models.py:3547 +msgid "URL endpoint which processed the barcode" +msgstr "" + +#: common/models.py:3554 order/models.py:1437 plugin/serializers.py:89 +msgid "Context" +msgstr "Kontekst" + +#: common/models.py:3555 +msgid "Context data for the barcode scan" +msgstr "" + +#: common/models.py:3562 +msgid "Response" +msgstr "" + +#: common/models.py:3563 +msgid "Response data from the barcode scan" +msgstr "" + +#: common/models.py:3569 report/templates/report/inventree_test_report.html:103 +#: stock/models.py:2660 +msgid "Result" +msgstr "Resultat" + +#: common/models.py:3570 +msgid "Was the barcode scan successful?" +msgstr "" + +#: common/notifications.py:328 #, python-brace-format msgid "New {verbose_name}" msgstr "Ny {verbose_name}" -#: common/notifications.py:316 +#: common/notifications.py:330 msgid "A new order has been created and assigned to you" msgstr "En ny ordre har blitt opprettet og tilordnet til deg" -#: common/notifications.py:322 +#: common/notifications.py:336 #, python-brace-format msgid "{verbose_name} canceled" msgstr "{verbose_name} kansellert" -#: common/notifications.py:324 +#: common/notifications.py:338 msgid "A order that is assigned to you was canceled" msgstr "En ordre som er tildelt til deg ble kansellert" -#: common/notifications.py:330 common/notifications.py:337 order/api.py:462 +#: common/notifications.py:344 common/notifications.py:351 order/api.py:440 msgid "Items Received" msgstr "Artikler mottatt" -#: common/notifications.py:332 +#: common/notifications.py:346 msgid "Items have been received against a purchase order" msgstr "Artikler har blitt mottatt mot en innkjøpsordre" -#: common/notifications.py:339 +#: common/notifications.py:353 msgid "Items have been received against a return order" msgstr "Artikler har blitt mottatt mot en returordre" -#: common/notifications.py:457 +#: common/notifications.py:475 msgid "Error raised by plugin" msgstr "Feil oppstått i utvidelse" -#: common/serializers.py:375 +#: common/serializers.py:423 msgid "Is Running" msgstr "Kjører" -#: common/serializers.py:381 +#: common/serializers.py:429 msgid "Pending Tasks" msgstr "Ventende oppgaver" -#: common/serializers.py:387 +#: common/serializers.py:435 msgid "Scheduled Tasks" msgstr "Planlagte oppgaver" -#: common/serializers.py:393 +#: common/serializers.py:441 msgid "Failed Tasks" msgstr "Mislykkede oppgaver" -#: common/serializers.py:408 +#: common/serializers.py:456 msgid "Task ID" msgstr "Oppgave-ID" -#: common/serializers.py:408 +#: common/serializers.py:456 msgid "Unique task ID" msgstr "Unik oppgave-ID" -#: common/serializers.py:410 +#: common/serializers.py:458 msgid "Lock" msgstr "Lås" -#: common/serializers.py:410 +#: common/serializers.py:458 msgid "Lock time" msgstr "Låsetidspunkt" -#: common/serializers.py:412 +#: common/serializers.py:460 msgid "Task name" msgstr "Oppgavenavn" -#: common/serializers.py:414 +#: common/serializers.py:462 msgid "Function" msgstr "Funksjon" -#: common/serializers.py:414 +#: common/serializers.py:462 msgid "Function name" msgstr "Funksjonsnavn" -#: common/serializers.py:416 +#: common/serializers.py:464 msgid "Arguments" msgstr "Argumenter" -#: common/serializers.py:416 +#: common/serializers.py:464 msgid "Task arguments" msgstr "Oppgaveargumenter" -#: common/serializers.py:419 +#: common/serializers.py:467 msgid "Keyword Arguments" msgstr "Nøkkelordargumenter" -#: common/serializers.py:419 +#: common/serializers.py:467 msgid "Task keyword arguments" msgstr "Nøkkelordargumenter for oppgave" -#: common/serializers.py:529 +#: common/serializers.py:577 msgid "Filename" msgstr "Filnavn" -#: common/serializers.py:536 report/api.py:100 report/serializers.py:53 +#: common/serializers.py:584 report/api.py:100 report/serializers.py:54 msgid "Model Type" msgstr "Modelltype" -#: common/serializers.py:565 +#: common/serializers.py:612 msgid "User does not have permission to create or edit attachments for this model" msgstr "Brukeren har ikke tillatelse tillatelse å opprette eller endre vedlegg for denne modellen" @@ -4116,15 +4295,15 @@ msgstr "Sammelign felter" msgid "Match Items" msgstr "Sammenlign varer" -#: common/views.py:401 +#: common/views.py:397 msgid "Fields matching failed" msgstr "Matching av felter mislyktes" -#: common/views.py:464 +#: common/views.py:460 msgid "Parts imported" msgstr "Deler importert" -#: common/views.py:494 order/templates/order/order_wizard/match_fields.html:27 +#: common/views.py:490 order/templates/order/order_wizard/match_fields.html:27 #: order/templates/order/order_wizard/match_parts.html:19 #: order/templates/order/order_wizard/po_upload.html:49 #: part/templates/part/import_wizard/match_fields.html:27 @@ -4155,429 +4334,429 @@ msgstr "Intern del er aktiv" msgid "Supplier is Active" msgstr "Leverandør er aktiv" -#: company/models.py:100 company/models.py:371 +#: company/models.py:97 company/models.py:368 #: company/templates/company/company_base.html:8 #: company/templates/company/company_base.html:12 stock/api.py:812 -#: templates/InvenTree/search.html:178 templates/js/translated/company.js:496 +#: templates/InvenTree/search.html:178 templates/js/translated/company.js:497 msgid "Company" msgstr "Firma" -#: company/models.py:101 company/views.py:51 +#: company/models.py:98 company/views.py:51 #: templates/js/translated/search.js:192 msgid "Companies" msgstr "Firmaer" -#: company/models.py:117 +#: company/models.py:114 msgid "Company description" msgstr "Beskrivelse av firma" -#: company/models.py:118 +#: company/models.py:115 msgid "Description of the company" msgstr "Beskrivelse av firmaet" -#: company/models.py:123 company/templates/company/company_base.html:106 +#: company/models.py:120 company/templates/company/company_base.html:106 #: templates/InvenTree/settings/plugin_settings.html:54 -#: templates/js/translated/company.js:532 +#: templates/js/translated/company.js:533 msgid "Website" msgstr "Nettside" -#: company/models.py:123 +#: company/models.py:120 msgid "Company website URL" msgstr "Bedriftens nettside URL" -#: company/models.py:128 +#: company/models.py:125 msgid "Phone number" msgstr "Telefonnummer" -#: company/models.py:130 +#: company/models.py:127 msgid "Contact phone number" msgstr "Kontakt-telefonnummer" -#: company/models.py:137 +#: company/models.py:134 msgid "Contact email address" msgstr "Kontakt e-post" -#: company/models.py:142 company/models.py:275 -#: company/templates/company/company_base.html:145 order/models.py:342 -#: order/templates/order/order_base.html:208 -#: order/templates/order/return_order_base.html:177 -#: order/templates/order/sales_order_base.html:221 +#: company/models.py:139 company/models.py:272 +#: company/templates/company/company_base.html:145 order/models.py:349 +#: order/templates/order/order_base.html:217 +#: order/templates/order/return_order_base.html:178 +#: order/templates/order/sales_order_base.html:222 msgid "Contact" msgstr "Kontakt" -#: company/models.py:144 +#: company/models.py:141 msgid "Point of contact" msgstr "Kontaktpunkt" -#: company/models.py:150 +#: company/models.py:147 msgid "Link to external company information" msgstr "Link til ekstern bedriftsinformasjon" -#: company/models.py:163 +#: company/models.py:160 msgid "Is this company active?" msgstr "Er firmaet aktivt?" -#: company/models.py:168 +#: company/models.py:165 msgid "Is customer" msgstr "Er kunde" -#: company/models.py:169 +#: company/models.py:166 msgid "Do you sell items to this company?" msgstr "Selger du varer til dette firmaet?" -#: company/models.py:174 +#: company/models.py:171 msgid "Is supplier" msgstr "Er leverandør" -#: company/models.py:175 +#: company/models.py:172 msgid "Do you purchase items from this company?" msgstr "Kjøper du varer fra dette firmaet?" -#: company/models.py:180 +#: company/models.py:177 msgid "Is manufacturer" msgstr "Er produsent" -#: company/models.py:181 +#: company/models.py:178 msgid "Does this company manufacture parts?" msgstr "Produserer dette firmaet deler?" -#: company/models.py:189 +#: company/models.py:186 msgid "Default currency used for this company" msgstr "Standardvaluta brukt for dette firmaet" -#: company/models.py:314 company/templates/company/company_base.html:124 -#: order/models.py:352 order/templates/order/order_base.html:215 -#: order/templates/order/return_order_base.html:184 -#: order/templates/order/sales_order_base.html:228 +#: company/models.py:311 company/templates/company/company_base.html:124 +#: order/models.py:359 order/templates/order/order_base.html:224 +#: order/templates/order/return_order_base.html:185 +#: order/templates/order/sales_order_base.html:229 msgid "Address" msgstr "Adresse" -#: company/models.py:315 company/templates/company/sidebar.html:35 +#: company/models.py:312 company/templates/company/sidebar.html:35 msgid "Addresses" msgstr "Adresser" -#: company/models.py:372 +#: company/models.py:369 msgid "Select company" msgstr "Velg selskap" -#: company/models.py:377 +#: company/models.py:374 msgid "Address title" msgstr "Adressetittel" -#: company/models.py:378 +#: company/models.py:375 msgid "Title describing the address entry" msgstr "Tittel som beskriver addressen" -#: company/models.py:384 +#: company/models.py:381 msgid "Primary address" msgstr "Hovedadresse" -#: company/models.py:385 +#: company/models.py:382 msgid "Set as primary address" msgstr "Sett som hovedadresse" -#: company/models.py:390 templates/js/translated/company.js:914 -#: templates/js/translated/company.js:971 +#: company/models.py:387 templates/js/translated/company.js:915 +#: templates/js/translated/company.js:972 msgid "Line 1" msgstr "Linje 1" -#: company/models.py:391 +#: company/models.py:388 msgid "Address line 1" msgstr "Adresselinje 1" -#: company/models.py:397 templates/js/translated/company.js:915 -#: templates/js/translated/company.js:977 +#: company/models.py:394 templates/js/translated/company.js:916 +#: templates/js/translated/company.js:978 msgid "Line 2" msgstr "Linje 2" -#: company/models.py:398 +#: company/models.py:395 msgid "Address line 2" msgstr "Adresselinje 2" -#: company/models.py:404 company/models.py:405 -#: templates/js/translated/company.js:983 +#: company/models.py:401 company/models.py:402 +#: templates/js/translated/company.js:984 msgid "Postal code" msgstr "Postnummer" -#: company/models.py:411 +#: company/models.py:408 msgid "City/Region" msgstr "Poststed/område" -#: company/models.py:412 +#: company/models.py:409 msgid "Postal code city/region" msgstr "Postnummerets by/område" -#: company/models.py:418 +#: company/models.py:415 msgid "State/Province" msgstr "Delstat/provins" -#: company/models.py:419 +#: company/models.py:416 msgid "State or province" msgstr "Delstat eller provins" -#: company/models.py:425 templates/js/translated/company.js:1001 +#: company/models.py:422 templates/js/translated/company.js:1002 msgid "Country" msgstr "Land" -#: company/models.py:426 +#: company/models.py:423 msgid "Address country" msgstr "Adressens land" -#: company/models.py:432 +#: company/models.py:429 msgid "Courier shipping notes" msgstr "Notater til transportør" -#: company/models.py:433 +#: company/models.py:430 msgid "Notes for shipping courier" msgstr "Notater for transportør" -#: company/models.py:439 +#: company/models.py:436 msgid "Internal shipping notes" msgstr "Interne fraktnotater" -#: company/models.py:440 +#: company/models.py:437 msgid "Shipping notes for internal use" msgstr "Fraktnotater for internt bruk" -#: company/models.py:447 +#: company/models.py:444 msgid "Link to address information (external)" msgstr "Lenke til adresseinformasjon (ekstern)" -#: company/models.py:470 company/models.py:587 company/models.py:811 +#: company/models.py:467 company/models.py:584 company/models.py:808 #: company/templates/company/manufacturer_part.html:7 #: company/templates/company/manufacturer_part.html:24 -#: stock/templates/stock/item_base.html:217 +#: stock/templates/stock/item_base.html:214 msgid "Manufacturer Part" msgstr "Produsentdeler" -#: company/models.py:487 company/models.py:779 stock/models.py:787 -#: stock/serializers.py:445 stock/templates/stock/item_base.html:142 +#: company/models.py:484 company/models.py:776 stock/models.py:864 +#: stock/serializers.py:455 stock/templates/stock/item_base.html:139 #: templates/js/translated/bom.js:622 msgid "Base Part" msgstr "Basisdel" -#: company/models.py:489 company/models.py:781 +#: company/models.py:486 company/models.py:778 msgid "Select part" msgstr "Velg del" -#: company/models.py:498 company/templates/company/company_base.html:82 +#: company/models.py:495 company/templates/company/company_base.html:82 #: company/templates/company/manufacturer_part.html:90 -#: company/templates/company/supplier_part.html:145 part/serializers.py:554 -#: stock/templates/stock/item_base.html:207 -#: templates/js/translated/company.js:507 -#: templates/js/translated/company.js:1118 -#: templates/js/translated/company.js:1296 -#: templates/js/translated/company.js:1611 +#: company/templates/company/supplier_part.html:146 part/serializers.py:598 +#: stock/templates/stock/item_base.html:204 +#: templates/js/translated/company.js:508 +#: templates/js/translated/company.js:1119 +#: templates/js/translated/company.js:1297 +#: templates/js/translated/company.js:1612 #: templates/js/translated/table_filters.js:812 msgid "Manufacturer" msgstr "Produsent" -#: company/models.py:499 +#: company/models.py:496 msgid "Select manufacturer" msgstr "Velg produsent" -#: company/models.py:505 company/templates/company/manufacturer_part.html:101 -#: company/templates/company/supplier_part.html:153 order/serializers.py:556 -#: part/serializers.py:564 templates/js/translated/company.js:351 -#: templates/js/translated/company.js:1117 -#: templates/js/translated/company.js:1312 -#: templates/js/translated/company.js:1630 templates/js/translated/part.js:1807 -#: templates/js/translated/purchase_order.js:1921 -#: templates/js/translated/purchase_order.js:2123 +#: company/models.py:502 company/templates/company/manufacturer_part.html:101 +#: company/templates/company/supplier_part.html:154 order/serializers.py:641 +#: part/serializers.py:608 templates/js/translated/company.js:352 +#: templates/js/translated/company.js:1118 +#: templates/js/translated/company.js:1313 +#: templates/js/translated/company.js:1631 templates/js/translated/part.js:1807 +#: templates/js/translated/purchase_order.js:1905 +#: templates/js/translated/purchase_order.js:2107 msgid "MPN" msgstr "MPN" -#: company/models.py:513 +#: company/models.py:510 msgid "URL for external manufacturer part link" msgstr "URL for ekstern produsentdel-lenke" -#: company/models.py:522 +#: company/models.py:519 msgid "Manufacturer part description" msgstr "Produsentens delbeskrivelse" -#: company/models.py:575 +#: company/models.py:572 msgid "Manufacturer Part Parameter" msgstr "Produsentdel parameter" -#: company/models.py:594 +#: company/models.py:591 msgid "Parameter name" msgstr "Parameternavn" -#: company/models.py:600 report/templates/report/inventree_test_report.html:104 -#: stock/models.py:2550 templates/js/translated/company.js:1166 -#: templates/js/translated/company.js:1419 templates/js/translated/part.js:1499 +#: company/models.py:597 report/templates/report/inventree_test_report.html:104 +#: stock/models.py:2666 templates/js/translated/company.js:1167 +#: templates/js/translated/company.js:1420 templates/js/translated/part.js:1499 #: templates/js/translated/stock.js:1607 msgid "Value" msgstr "Verdi" -#: company/models.py:601 +#: company/models.py:598 msgid "Parameter value" msgstr "Parameterverdi" -#: company/models.py:608 company/templates/company/supplier_part.html:168 -#: part/admin.py:57 part/models.py:1147 part/models.py:3771 -#: part/templates/part/part_base.html:293 -#: templates/js/translated/company.js:1425 templates/js/translated/part.js:1518 +#: company/models.py:605 company/templates/company/supplier_part.html:169 +#: part/admin.py:57 part/models.py:1208 part/models.py:3822 +#: part/templates/part/part_base.html:301 +#: templates/js/translated/company.js:1426 templates/js/translated/part.js:1518 #: templates/js/translated/part.js:1622 templates/js/translated/part.js:2376 msgid "Units" msgstr "Enheter" -#: company/models.py:609 +#: company/models.py:606 msgid "Parameter units" msgstr "Parameterenheter" -#: company/models.py:662 company/templates/company/supplier_part.html:7 -#: company/templates/company/supplier_part.html:24 order/api.py:442 -#: order/serializers.py:491 stock/models.py:798 -#: stock/templates/stock/item_base.html:233 -#: templates/js/translated/build.js:1052 -#: templates/js/translated/company.js:1600 -#: templates/js/translated/purchase_order.js:752 -#: templates/js/translated/stock.js:2365 +#: company/models.py:659 company/templates/company/supplier_part.html:8 +#: company/templates/company/supplier_part.html:25 order/api.py:392 +#: order/serializers.py:576 stock/models.py:875 +#: stock/templates/stock/item_base.html:230 +#: templates/js/translated/build.js:1055 +#: templates/js/translated/company.js:1601 +#: templates/js/translated/purchase_order.js:735 +#: templates/js/translated/stock.js:2366 msgid "Supplier Part" msgstr "Leverandørdel" -#: company/models.py:719 +#: company/models.py:716 msgid "Pack units must be compatible with the base part units" msgstr "Pakkeenhetene må være komptible med delens basisenhet" -#: company/models.py:726 +#: company/models.py:723 msgid "Pack units must be greater than zero" msgstr "Pakkeenhet må være mer enn null" -#: company/models.py:740 +#: company/models.py:737 msgid "Linked manufacturer part must reference the same base part" msgstr "Den sammenkoblede produsentdelen må referere til samme basisdel" -#: company/models.py:789 company/templates/company/company_base.html:87 -#: company/templates/company/supplier_part.html:129 order/models.py:491 -#: order/templates/order/order_base.html:141 part/bom.py:280 part/bom.py:318 -#: part/serializers.py:538 plugin/builtin/suppliers/digikey.py:25 +#: company/models.py:786 company/templates/company/company_base.html:87 +#: company/templates/company/supplier_part.html:130 order/models.py:503 +#: order/templates/order/order_base.html:150 part/bom.py:279 part/bom.py:314 +#: part/serializers.py:582 plugin/builtin/suppliers/digikey.py:25 #: plugin/builtin/suppliers/lcsc.py:26 plugin/builtin/suppliers/mouser.py:24 -#: plugin/builtin/suppliers/tme.py:26 stock/templates/stock/item_base.html:224 +#: plugin/builtin/suppliers/tme.py:26 stock/templates/stock/item_base.html:221 #: templates/email/overdue_purchase_order.html:16 -#: templates/js/translated/company.js:350 -#: templates/js/translated/company.js:511 -#: templates/js/translated/company.js:1584 templates/js/translated/part.js:1775 +#: templates/js/translated/company.js:351 +#: templates/js/translated/company.js:512 +#: templates/js/translated/company.js:1585 templates/js/translated/part.js:1775 #: templates/js/translated/pricing.js:498 -#: templates/js/translated/purchase_order.js:1759 +#: templates/js/translated/purchase_order.js:1743 #: templates/js/translated/table_filters.js:816 msgid "Supplier" msgstr "Leverandør" -#: company/models.py:790 +#: company/models.py:787 msgid "Select supplier" msgstr "Velg leverandør" -#: company/models.py:796 part/serializers.py:549 +#: company/models.py:793 part/serializers.py:593 msgid "Supplier stock keeping unit" msgstr "Leverandørens lagerbeholdningsenhet" -#: company/models.py:802 +#: company/models.py:799 msgid "Is this supplier part active?" msgstr "Er denne leverandørdelen aktiv?" -#: company/models.py:812 +#: company/models.py:809 msgid "Select manufacturer part" msgstr "Velg produsentdel" -#: company/models.py:819 +#: company/models.py:816 msgid "URL for external supplier part link" msgstr "URL for ekstern leverandørdel-lenke" -#: company/models.py:828 +#: company/models.py:825 msgid "Supplier part description" msgstr "Leverandørens delbeskrivelse" -#: company/models.py:835 company/templates/company/supplier_part.html:187 -#: order/serializers.py:698 part/admin.py:415 part/models.py:4288 +#: company/models.py:832 company/templates/company/supplier_part.html:188 +#: order/serializers.py:783 part/admin.py:415 part/models.py:4345 #: part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_bill_of_materials_report.html:140 #: report/templates/report/inventree_purchase_order_report.html:32 #: report/templates/report/inventree_return_order_report.html:27 #: report/templates/report/inventree_sales_order_report.html:32 #: report/templates/report/inventree_stock_location_report.html:105 -#: stock/serializers.py:776 templates/js/translated/purchase_order.js:1185 -#: templates/js/translated/purchase_order.js:1344 +#: stock/serializers.py:807 templates/js/translated/purchase_order.js:1168 +#: templates/js/translated/purchase_order.js:1327 msgid "Note" msgstr "Notat" -#: company/models.py:844 part/models.py:2117 +#: company/models.py:841 part/models.py:2177 msgid "base cost" msgstr "grunnkostnad" -#: company/models.py:845 part/models.py:2118 +#: company/models.py:842 part/models.py:2178 msgid "Minimum charge (e.g. stocking fee)" msgstr "Minimum betaling (f.eks. lageravgift)" -#: company/models.py:853 +#: company/models.py:850 msgid "Part packaging" msgstr "Delemballasje" -#: company/models.py:858 templates/js/translated/company.js:1651 +#: company/models.py:855 templates/js/translated/company.js:1652 #: templates/js/translated/part.js:1828 templates/js/translated/part.js:1884 -#: templates/js/translated/purchase_order.js:311 -#: templates/js/translated/purchase_order.js:841 -#: templates/js/translated/purchase_order.js:1103 -#: templates/js/translated/purchase_order.js:2154 -#: templates/js/translated/purchase_order.js:2171 +#: templates/js/translated/purchase_order.js:294 +#: templates/js/translated/purchase_order.js:824 +#: templates/js/translated/purchase_order.js:1086 +#: templates/js/translated/purchase_order.js:2138 +#: templates/js/translated/purchase_order.js:2155 msgid "Pack Quantity" msgstr "Pakkeantall" -#: company/models.py:860 +#: company/models.py:857 msgid "Total quantity supplied in a single pack. Leave empty for single items." msgstr "Totalt antall i en enkelt pakke. La være tom for enkeltenheter." -#: company/models.py:879 part/models.py:2124 +#: company/models.py:876 part/models.py:2184 msgid "multiple" msgstr "flere" -#: company/models.py:880 +#: company/models.py:877 msgid "Order multiple" msgstr "Bestill flere" -#: company/models.py:892 +#: company/models.py:889 msgid "Quantity available from supplier" msgstr "Antall tilgjengelig fra leverandør" -#: company/models.py:898 +#: company/models.py:895 msgid "Availability Updated" msgstr "Tilgjengelighet oppdatert" -#: company/models.py:899 +#: company/models.py:896 msgid "Date of last update of availability data" msgstr "Dato for siste oppdatering av tilgjengelighetsdata" -#: company/models.py:1027 +#: company/models.py:1024 msgid "Supplier Price Break" msgstr "Leverandørens prisbrudd" -#: company/serializers.py:174 +#: company/serializers.py:178 msgid "Default currency used for this supplier" msgstr "Standardvaluta brukt for denne leverandøren" -#: company/serializers.py:210 +#: company/serializers.py:214 msgid "Company Name" msgstr "Bedriftsnavn" -#: company/serializers.py:393 part/admin.py:126 part/serializers.py:898 -#: part/templates/part/part_base.html:197 -#: templates/js/translated/company.js:1689 +#: company/serializers.py:397 part/admin.py:126 part/serializers.py:950 +#: part/templates/part/part_base.html:198 stock/serializers.py:474 +#: templates/js/translated/company.js:1690 #: templates/js/translated/table_filters.js:362 msgid "In Stock" msgstr "På lager" #: company/templates/company/company_base.html:16 -#: part/templates/part/part_base.html:146 -#: templates/js/translated/company.js:1287 -#: templates/js/translated/company.js:1575 -#: templates/js/translated/model_renderers.js:313 +#: part/templates/part/part_base.html:147 +#: templates/js/translated/company.js:1288 +#: templates/js/translated/company.js:1576 +#: templates/js/translated/model_renderers.js:316 #: templates/js/translated/part.js:817 templates/js/translated/part.js:1225 msgid "Inactive" msgstr "Inaktiv" #: company/templates/company/company_base.html:27 -#: templates/js/translated/purchase_order.js:242 +#: templates/js/translated/purchase_order.js:224 msgid "Create Purchase Order" msgstr "Opprett Innkjøpsordre" @@ -4590,7 +4769,7 @@ msgid "Edit company information" msgstr "Rediger firmainformasjon" #: company/templates/company/company_base.html:39 -#: templates/js/translated/company.js:445 +#: templates/js/translated/company.js:446 msgid "Edit Company" msgstr "Rediger Firma" @@ -4605,11 +4784,12 @@ msgstr "Slett Firma" #: company/templates/company/company_base.html:53 #: company/templates/company/manufacturer_part.html:51 -#: company/templates/company/supplier_part.html:83 +#: company/templates/company/supplier_part.html:84 #: part/templates/part/part_thumb.html:20 #: report/templates/report/inventree_build_order_report.html:98 #: report/templates/report/inventree_purchase_order_report.html:40 #: report/templates/report/inventree_sales_order_report.html:40 +#: report/templates/report/inventree_sales_order_shipment_report.html:37 #: report/templates/report/inventree_test_report.html:84 #: report/templates/report/inventree_test_report.html:162 msgid "Part image" @@ -4630,16 +4810,16 @@ msgstr "Last ned bilde fra URL" msgid "Delete image" msgstr "Slett bilde" -#: company/templates/company/company_base.html:92 order/models.py:990 -#: order/models.py:2147 order/templates/order/return_order_base.html:134 -#: order/templates/order/sales_order_base.html:151 stock/models.py:840 -#: stock/models.py:841 stock/serializers.py:1329 -#: stock/templates/stock/item_base.html:405 +#: company/templates/company/company_base.html:92 order/models.py:1017 +#: order/models.py:2186 order/templates/order/return_order_base.html:135 +#: order/templates/order/sales_order_base.html:152 stock/models.py:917 +#: stock/models.py:918 stock/serializers.py:1360 +#: stock/templates/stock/item_base.html:402 #: templates/email/overdue_sales_order.html:16 -#: templates/js/translated/company.js:503 +#: templates/js/translated/company.js:504 #: templates/js/translated/return_order.js:295 -#: templates/js/translated/sales_order.js:820 -#: templates/js/translated/stock.js:3043 +#: templates/js/translated/sales_order.js:779 +#: templates/js/translated/stock.js:3044 #: templates/js/translated/table_filters.js:820 msgid "Customer" msgstr "Kunde" @@ -4653,7 +4833,7 @@ msgid "Phone" msgstr "Telefon" #: company/templates/company/company_base.html:211 -#: part/templates/part/part_base.html:536 +#: part/templates/part/part_base.html:544 msgid "Remove Image" msgstr "Fjern Bilde" @@ -4662,19 +4842,19 @@ msgid "Remove associated image from this company" msgstr "Fjern tilknyttet bilde fra dette firmaet" #: company/templates/company/company_base.html:214 -#: part/templates/part/part_base.html:539 +#: part/templates/part/part_base.html:547 #: templates/InvenTree/settings/user.html:88 #: templates/InvenTree/settings/user_sso.html:43 msgid "Remove" msgstr "Fjern" #: company/templates/company/company_base.html:243 -#: part/templates/part/part_base.html:568 +#: part/templates/part/part_base.html:576 msgid "Upload Image" msgstr "Last opp bilde" #: company/templates/company/company_base.html:258 -#: part/templates/part/part_base.html:622 +#: part/templates/part/part_base.html:630 msgid "Download Image" msgstr "Last ned Bilde" @@ -4714,7 +4894,7 @@ msgstr "Leverandørs lagerbeholdning" #: company/templates/company/detail.html:75 #: company/templates/company/sidebar.html:12 #: company/templates/company/supplier_part_sidebar.html:7 -#: order/templates/order/order_base.html:13 +#: order/templates/order/order_base.html:14 #: order/templates/order/purchase_orders.html:8 #: order/templates/order/purchase_orders.html:12 #: part/templates/part/detail.html:122 part/templates/part/part_sidebar.html:35 @@ -4737,7 +4917,7 @@ msgstr "Ny innkjøpsordre" #: company/templates/company/detail.html:101 #: company/templates/company/sidebar.html:21 -#: order/templates/order/sales_order_base.html:13 +#: order/templates/order/sales_order_base.html:14 #: order/templates/order/sales_orders.html:8 #: order/templates/order/sales_orders.html:15 #: part/templates/part/detail.html:143 part/templates/part/part_sidebar.html:39 @@ -4764,7 +4944,7 @@ msgstr "Tildelt lagerbeholdning" #: company/templates/company/detail.html:142 #: company/templates/company/sidebar.html:29 -#: order/templates/order/return_order_base.html:13 +#: order/templates/order/return_order_base.html:14 #: order/templates/order/return_orders.html:8 #: order/templates/order/return_orders.html:15 #: templates/InvenTree/settings/sidebar.html:61 @@ -4811,24 +4991,24 @@ msgid "Manufacturers" msgstr "Produsenter" #: company/templates/company/manufacturer_part.html:35 -#: company/templates/company/supplier_part.html:227 -#: part/templates/part/detail.html:125 part/templates/part/part_base.html:83 +#: company/templates/company/supplier_part.html:228 +#: part/templates/part/detail.html:125 part/templates/part/part_base.html:84 msgid "Order part" msgstr "Bestill del" #: company/templates/company/manufacturer_part.html:39 -#: templates/js/translated/company.js:1343 +#: templates/js/translated/company.js:1344 msgid "Edit manufacturer part" msgstr "Endre produsentdel" #: company/templates/company/manufacturer_part.html:43 -#: templates/js/translated/company.js:1344 +#: templates/js/translated/company.js:1345 msgid "Delete manufacturer part" msgstr "Slett produsentdel" #: company/templates/company/manufacturer_part.html:65 -#: company/templates/company/supplier_part.html:97 order/api.py:448 -#: order/serializers.py:564 +#: company/templates/company/supplier_part.html:98 order/api.py:411 +#: order/serializers.py:649 msgid "Internal Part" msgstr "Intern del" @@ -4837,8 +5017,8 @@ msgid "No manufacturer information available" msgstr "Ingen produsentinformasjon tilgjengelig" #: company/templates/company/manufacturer_part.html:119 -#: company/templates/company/supplier_part.html:15 company/views.py:31 -#: part/admin.py:122 part/serializers.py:904 +#: company/templates/company/supplier_part.html:16 company/views.py:31 +#: part/admin.py:122 part/serializers.py:956 #: part/templates/part/part_sidebar.html:33 templates/InvenTree/search.html:190 #: templates/navbar.html:48 msgid "Suppliers" @@ -4887,112 +5067,113 @@ msgstr "Tildelte lagervarer" msgid "Contacts" msgstr "Kontakter" -#: company/templates/company/supplier_part.html:50 -#: templates/js/translated/company.js:1526 +#: company/templates/company/supplier_part.html:51 +#: templates/js/translated/company.js:1527 msgid "Supplier part actions" msgstr "Handlinger for leverandørdeler" -#: company/templates/company/supplier_part.html:55 #: company/templates/company/supplier_part.html:56 -#: company/templates/company/supplier_part.html:228 +#: company/templates/company/supplier_part.html:57 +#: company/templates/company/supplier_part.html:229 #: part/templates/part/detail.html:126 msgid "Order Part" msgstr "Bestill del" -#: company/templates/company/supplier_part.html:60 #: company/templates/company/supplier_part.html:61 +#: company/templates/company/supplier_part.html:62 msgid "Update Availability" msgstr "Oppdater Tilgjengelighet" -#: company/templates/company/supplier_part.html:63 #: company/templates/company/supplier_part.html:64 -#: templates/js/translated/company.js:294 +#: company/templates/company/supplier_part.html:65 +#: templates/js/translated/company.js:295 msgid "Edit Supplier Part" msgstr "Rediger Leverandørdel" -#: company/templates/company/supplier_part.html:68 #: company/templates/company/supplier_part.html:69 -#: templates/js/translated/company.js:269 +#: company/templates/company/supplier_part.html:70 +#: templates/js/translated/company.js:270 msgid "Duplicate Supplier Part" msgstr "Dupliser Leverandørdel" -#: company/templates/company/supplier_part.html:73 +#: company/templates/company/supplier_part.html:74 msgid "Delete Supplier Part" msgstr "Slett Leverandørdel" -#: company/templates/company/supplier_part.html:74 +#: company/templates/company/supplier_part.html:75 msgid "Delete Supplier Part" msgstr "Slett Leverandørdel" -#: company/templates/company/supplier_part.html:133 +#: company/templates/company/supplier_part.html:134 +#: order/templates/order/order_base.html:155 msgid "No supplier information available" msgstr "Ingen leverandørinformasjon tilgjengelig" -#: company/templates/company/supplier_part.html:139 order/serializers.py:553 -#: part/bom.py:287 part/bom.py:319 part/serializers.py:548 -#: templates/js/translated/company.js:349 templates/js/translated/part.js:1793 +#: company/templates/company/supplier_part.html:140 order/serializers.py:638 +#: part/bom.py:286 part/bom.py:315 part/serializers.py:592 +#: templates/js/translated/company.js:350 templates/js/translated/part.js:1793 #: templates/js/translated/pricing.js:510 -#: templates/js/translated/purchase_order.js:1920 -#: templates/js/translated/purchase_order.js:2098 +#: templates/js/translated/purchase_order.js:1904 +#: templates/js/translated/purchase_order.js:2082 msgid "SKU" msgstr "SKU-kode" -#: company/templates/company/supplier_part.html:206 +#: company/templates/company/supplier_part.html:207 msgid "Supplier Part Stock" msgstr "Leverandørs lagerbeholdning" -#: company/templates/company/supplier_part.html:209 -#: part/templates/part/detail.html:24 stock/templates/stock/location.html:204 +#: company/templates/company/supplier_part.html:210 +#: part/templates/part/detail.html:24 stock/templates/stock/location.html:205 msgid "Create new stock item" msgstr "Opprett ny lagervare" -#: company/templates/company/supplier_part.html:210 -#: part/templates/part/detail.html:25 stock/templates/stock/location.html:205 +#: company/templates/company/supplier_part.html:211 +#: part/templates/part/detail.html:25 stock/templates/stock/location.html:206 #: templates/js/translated/stock.js:543 msgid "New Stock Item" msgstr "Ny Lagervare" -#: company/templates/company/supplier_part.html:223 +#: company/templates/company/supplier_part.html:224 msgid "Supplier Part Orders" msgstr "Leverandørdelordre" -#: company/templates/company/supplier_part.html:246 +#: company/templates/company/supplier_part.html:247 msgid "Pricing Information" msgstr "Prisinformasjon" -#: company/templates/company/supplier_part.html:251 -#: templates/js/translated/company.js:398 +#: company/templates/company/supplier_part.html:252 +#: templates/js/translated/company.js:399 #: templates/js/translated/pricing.js:684 msgid "Add Price Break" msgstr "Legg til Prisbrudd" -#: company/templates/company/supplier_part.html:270 +#: company/templates/company/supplier_part.html:271 msgid "Supplier Part Notes" msgstr "Notater for leverandørdeler" -#: company/templates/company/supplier_part.html:305 +#: company/templates/company/supplier_part.html:306 msgid "Supplier Part QR Code" msgstr "" -#: company/templates/company/supplier_part.html:316 +#: company/templates/company/supplier_part.html:317 msgid "Link Barcode to Supplier Part" msgstr "" -#: company/templates/company/supplier_part.html:388 +#: company/templates/company/supplier_part.html:389 msgid "Update Part Availability" msgstr "" #: company/templates/company/supplier_part_sidebar.html:5 -#: part/serializers.py:902 part/stocktake.py:223 +#: part/serializers.py:954 part/stocktake.py:223 #: part/templates/part/category.html:180 #: part/templates/part/category_sidebar.html:17 stock/admin.py:68 -#: stock/serializers.py:1014 stock/serializers.py:1192 -#: stock/templates/stock/location.html:167 -#: stock/templates/stock/location.html:188 -#: stock/templates/stock/location.html:200 +#: stock/serializers.py:1045 stock/serializers.py:1223 +#: stock/templates/stock/location.html:168 +#: stock/templates/stock/location.html:189 +#: stock/templates/stock/location.html:201 #: stock/templates/stock/location_sidebar.html:7 #: templates/InvenTree/search.html:155 templates/js/translated/part.js:1067 -#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2850 +#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2851 #: users/models.py:206 msgid "Stock Items" msgstr "Lagervarer" @@ -5022,99 +5203,99 @@ msgstr "Ny Kunde" msgid "New Company" msgstr "Nytt Firma" -#: generic/states/tests.py:18 order/status_codes.py:13 +#: generic/states/fields.py:118 +msgid "Custom status key" +msgstr "" + +#: generic/states/fields.py:119 +msgid "Additional status information for this item" +msgstr "" + +#: generic/states/tests.py:22 order/status_codes.py:13 msgid "Placed" msgstr "Plassert" -#: importer/mixins.py:263 +#: importer/mixins.py:261 msgid "Invalid export format" msgstr "" -#: importer/models.py:59 -msgid "Timestamp" -msgstr "" - -#: importer/models.py:64 +#: importer/models.py:65 msgid "Data file to import" msgstr "" -#: importer/models.py:73 templates/js/translated/tables.js:558 +#: importer/models.py:74 templates/js/translated/tables.js:558 msgid "Columns" msgstr "" -#: importer/models.py:84 +#: importer/models.py:85 msgid "Import status" msgstr "" -#: importer/models.py:94 +#: importer/models.py:95 msgid "Field Defaults" msgstr "" -#: importer/models.py:101 +#: importer/models.py:102 msgid "Field Overrides" msgstr "" -#: importer/models.py:108 +#: importer/models.py:109 msgid "Field Filters" msgstr "" -#: importer/models.py:230 +#: importer/models.py:239 msgid "Some required fields have not been mapped" msgstr "" -#: importer/models.py:387 +#: importer/models.py:396 msgid "Column is already mapped to a database field" msgstr "" -#: importer/models.py:392 +#: importer/models.py:401 msgid "Field is already mapped to a data column" msgstr "" -#: importer/models.py:401 +#: importer/models.py:410 msgid "Column mapping must be linked to a valid import session" msgstr "" -#: importer/models.py:406 +#: importer/models.py:415 msgid "Column does not exist in the data file" msgstr "" -#: importer/models.py:413 +#: importer/models.py:422 msgid "Field does not exist in the target model" msgstr "" -#: importer/models.py:417 +#: importer/models.py:426 msgid "Selected field is read-only" msgstr "" -#: importer/models.py:422 importer/models.py:493 +#: importer/models.py:431 importer/models.py:502 msgid "Import Session" msgstr "" -#: importer/models.py:426 +#: importer/models.py:435 msgid "Field" msgstr "" -#: importer/models.py:428 +#: importer/models.py:437 msgid "Column" msgstr "" -#: importer/models.py:497 +#: importer/models.py:506 msgid "Row Index" msgstr "" -#: importer/models.py:500 +#: importer/models.py:509 msgid "Original row data" msgstr "" -#: importer/models.py:503 part/models.py:3951 -msgid "Data" -msgstr "" - -#: importer/models.py:505 machine/models.py:110 +#: importer/models.py:514 machine/models.py:110 msgid "Errors" msgstr "" -#: importer/models.py:507 part/api.py:873 +#: importer/models.py:516 part/api.py:857 msgid "Valid" msgstr "Gyldig" @@ -5166,19 +5347,19 @@ msgstr "" msgid "Row has already been completed" msgstr "" -#: importer/status_codes.py:11 +#: importer/status_codes.py:13 msgid "Initializing" msgstr "" -#: importer/status_codes.py:12 +#: importer/status_codes.py:18 msgid "Mapping Columns" msgstr "" -#: importer/status_codes.py:13 +#: importer/status_codes.py:21 msgid "Importing Data" msgstr "" -#: importer/status_codes.py:16 +#: importer/status_codes.py:24 msgid "Processing Data" msgstr "" @@ -5202,52 +5383,52 @@ msgstr "" msgid "Value must be a valid dictionary object" msgstr "" -#: machine/machine_types/label_printer.py:215 +#: machine/machine_types/label_printer.py:216 msgid "Copies" msgstr "" -#: machine/machine_types/label_printer.py:216 +#: machine/machine_types/label_printer.py:217 msgid "Number of copies to print for each label" msgstr "" -#: machine/machine_types/label_printer.py:231 +#: machine/machine_types/label_printer.py:232 msgid "Connected" msgstr "" -#: machine/machine_types/label_printer.py:232 order/api.py:1410 -#: templates/js/translated/sales_order.js:1078 +#: machine/machine_types/label_printer.py:233 order/api.py:1532 +#: templates/js/translated/sales_order.js:1044 msgid "Unknown" msgstr "Ukjent" -#: machine/machine_types/label_printer.py:233 +#: machine/machine_types/label_printer.py:234 msgid "Printing" msgstr "" -#: machine/machine_types/label_printer.py:234 +#: machine/machine_types/label_printer.py:235 msgid "No media" msgstr "" -#: machine/machine_types/label_printer.py:235 +#: machine/machine_types/label_printer.py:236 msgid "Paper jam" msgstr "" -#: machine/machine_types/label_printer.py:236 +#: machine/machine_types/label_printer.py:237 msgid "Disconnected" msgstr "" -#: machine/machine_types/label_printer.py:243 +#: machine/machine_types/label_printer.py:244 msgid "Label Printer" msgstr "" -#: machine/machine_types/label_printer.py:244 +#: machine/machine_types/label_printer.py:245 msgid "Directly print labels for various items." msgstr "" -#: machine/machine_types/label_printer.py:250 +#: machine/machine_types/label_printer.py:251 msgid "Printer Location" msgstr "" -#: machine/machine_types/label_printer.py:251 +#: machine/machine_types/label_printer.py:252 msgid "Scope the printer to a specific location" msgstr "" @@ -5307,79 +5488,75 @@ msgstr "" #: report/templates/report/inventree_purchase_order_report.html:31 #: report/templates/report/inventree_sales_order_report.html:31 #: templates/js/translated/order.js:352 -#: templates/js/translated/purchase_order.js:2195 -#: templates/js/translated/sales_order.js:1883 +#: templates/js/translated/purchase_order.js:2179 +#: templates/js/translated/sales_order.js:1864 msgid "Total Price" msgstr "Total pris" -#: order/api.py:80 order/api.py:151 order/serializers.py:93 -#: order/templates/order/order_base.html:123 -#: order/templates/order/return_order_base.html:116 -#: order/templates/order/sales_order_base.html:125 +#: order/api.py:78 order/api.py:149 order/serializers.py:124 +#: order/templates/order/order_base.html:124 +#: order/templates/order/return_order_base.html:117 +#: order/templates/order/sales_order_base.html:126 msgid "Order Status" msgstr "Ordrestatus" -#: order/api.py:88 order/templates/order/order_base.html:111 -#: order/templates/order/return_order_base.html:104 -#: order/templates/order/sales_order_base.html:113 +#: order/api.py:86 order/templates/order/order_base.html:112 +#: order/templates/order/return_order_base.html:105 +#: order/templates/order/sales_order_base.html:114 msgid "Order Reference" msgstr "Ordrereferanse" -#: order/api.py:116 templates/js/translated/table_filters.js:93 +#: order/api.py:114 order/api.py:1022 +#: templates/js/translated/table_filters.js:93 #: templates/js/translated/table_filters.js:625 #: templates/js/translated/table_filters.js:651 #: templates/js/translated/table_filters.js:666 msgid "Outstanding" msgstr "" -#: order/api.py:132 +#: order/api.py:130 msgid "Has Project Code" msgstr "" -#: order/api.py:155 templates/js/translated/table_filters.js:201 +#: order/api.py:153 templates/js/translated/table_filters.js:201 #: templates/js/translated/table_filters.js:791 msgid "Has Pricing" msgstr "" -#: order/api.py:230 -msgid "No matching purchase order found" -msgstr "Ingen samsvarende innkjøpsordre funnet" - -#: order/api.py:425 order/api.py:763 order/models.py:1484 order/models.py:1598 -#: order/models.py:1649 order/models.py:1764 order/models.py:1923 -#: order/models.py:2383 order/models.py:2439 -#: templates/js/translated/sales_order.js:1524 +#: order/api.py:375 order/api.py:771 order/api.py:986 order/models.py:1500 +#: order/models.py:1614 order/models.py:1665 order/models.py:1793 +#: order/models.py:1956 order/models.py:2422 order/models.py:2478 +#: templates/js/translated/sales_order.js:1490 msgid "Order" msgstr "Ordre" -#: order/api.py:429 order/api.py:784 +#: order/api.py:379 order/api.py:809 msgid "Order Complete" msgstr "" -#: order/api.py:452 +#: order/api.py:430 msgid "Order Pending" msgstr "" -#: order/api.py:1404 order/models.py:379 order/models.py:1485 -#: order/models.py:1599 order/templates/order/order_base.html:9 -#: order/templates/order/order_base.html:18 +#: order/api.py:1526 order/models.py:386 order/models.py:1501 +#: order/models.py:1615 order/templates/order/order_base.html:10 +#: order/templates/order/order_base.html:19 #: report/templates/report/inventree_purchase_order_report.html:14 -#: stock/serializers.py:120 stock/templates/stock/item_base.html:176 +#: stock/serializers.py:121 stock/templates/stock/item_base.html:173 #: templates/email/overdue_purchase_order.html:15 #: templates/js/translated/part.js:1752 templates/js/translated/pricing.js:804 -#: templates/js/translated/purchase_order.js:168 -#: templates/js/translated/purchase_order.js:753 -#: templates/js/translated/purchase_order.js:1743 -#: templates/js/translated/stock.js:2345 templates/js/translated/stock.js:2991 +#: templates/js/translated/purchase_order.js:736 +#: templates/js/translated/purchase_order.js:1727 +#: templates/js/translated/stock.js:2346 templates/js/translated/stock.js:2992 msgid "Purchase Order" msgstr "Innkjøpsordre" -#: order/api.py:1408 order/models.py:2091 order/models.py:2384 -#: order/models.py:2440 order/templates/order/return_order_base.html:9 -#: order/templates/order/return_order_base.html:28 +#: order/api.py:1530 order/models.py:2124 order/models.py:2423 +#: order/models.py:2479 order/templates/order/return_order_base.html:10 +#: order/templates/order/return_order_base.html:29 #: report/templates/report/inventree_return_order_report.html:13 #: templates/js/translated/return_order.js:280 -#: templates/js/translated/stock.js:3025 +#: templates/js/translated/stock.js:3026 msgid "Return Order" msgstr "Returordre" @@ -5387,751 +5564,782 @@ msgstr "Returordre" msgid "Total price for this order" msgstr "Total pris for denne ordren" -#: order/models.py:95 order/serializers.py:71 +#: order/models.py:95 order/serializers.py:73 msgid "Order Currency" msgstr "Ordrevaluta" -#: order/models.py:98 order/serializers.py:72 +#: order/models.py:98 order/serializers.py:74 msgid "Currency for this order (leave blank to use company default)" msgstr "Valuta for denne ordren (la stå tom for å bruke firmastandard)" -#: order/models.py:246 +#: order/models.py:243 msgid "Contact does not match selected company" msgstr "Kontakten samsvarer ikke med valgt firma" -#: order/models.py:289 +#: order/models.py:296 msgid "Order description (optional)" msgstr "Ordrebeskrivelse (valgfritt)" -#: order/models.py:298 +#: order/models.py:305 msgid "Select project code for this order" msgstr "Velg prosjektkode for denne ordren" -#: order/models.py:302 order/models.py:1385 order/models.py:1817 +#: order/models.py:309 order/models.py:1402 order/models.py:1846 msgid "Link to external page" msgstr "Lenke til ekstern side" -#: order/models.py:310 +#: order/models.py:317 msgid "Expected date for order delivery. Order will be overdue after this date." msgstr "Forventet dato for levering av ordre. Bestillingen vil være forfalt etter denne datoen." -#: order/models.py:324 +#: order/models.py:331 msgid "Created By" msgstr "Opprettet av" -#: order/models.py:332 +#: order/models.py:339 msgid "User or group responsible for this order" msgstr "Bruker eller gruppe ansvarlig for ordren" -#: order/models.py:343 +#: order/models.py:350 msgid "Point of contact for this order" msgstr "Kontaktpunkt for denne ordren" -#: order/models.py:353 +#: order/models.py:360 msgid "Company address for this order" msgstr "Selskapsadresse for denne ordren" -#: order/models.py:468 order/models.py:979 +#: order/models.py:480 order/models.py:1006 msgid "Order reference" msgstr "Ordrereferanse" -#: order/models.py:477 +#: order/models.py:489 msgid "Purchase order status" msgstr "Status for innkjøpsordre" -#: order/models.py:492 +#: order/models.py:504 msgid "Company from which the items are being ordered" msgstr "Firma som varene blir bestilt fra" -#: order/models.py:503 order/templates/order/order_base.html:153 -#: templates/js/translated/purchase_order.js:1772 +#: order/models.py:515 order/templates/order/order_base.html:162 +#: templates/js/translated/purchase_order.js:1756 msgid "Supplier Reference" msgstr "Leverandørreferanse" -#: order/models.py:504 +#: order/models.py:516 msgid "Supplier order reference code" msgstr "Leverandørens ordrereferanse" -#: order/models.py:513 +#: order/models.py:525 msgid "received by" msgstr "mottatt av" -#: order/models.py:519 order/models.py:2173 +#: order/models.py:531 order/models.py:2212 msgid "Issue Date" msgstr "Sendt dato" -#: order/models.py:520 order/models.py:2174 +#: order/models.py:532 order/models.py:2213 msgid "Date order was issued" msgstr "Dato bestillingen ble sendt" -#: order/models.py:527 order/models.py:2181 +#: order/models.py:539 order/models.py:2220 msgid "Date order was completed" msgstr "Dato ordre ble fullført" -#: order/models.py:571 +#: order/models.py:549 order/models.py:1552 +msgid "Destination for received items" +msgstr "" + +#: order/models.py:593 msgid "Part supplier must match PO supplier" msgstr "Delleverandør må matche PO-leverandør" -#: order/models.py:806 +#: order/models.py:828 msgid "Quantity must be a positive number" msgstr "Mengde må være positiv" -#: order/models.py:991 +#: order/models.py:1018 msgid "Company to which the items are being sold" msgstr "Firma som varene selges til" -#: order/models.py:1003 +#: order/models.py:1030 msgid "Sales order status" msgstr "" -#: order/models.py:1014 order/models.py:2166 +#: order/models.py:1041 order/models.py:2205 msgid "Customer Reference " msgstr "Kundereferanse " -#: order/models.py:1015 order/models.py:2167 +#: order/models.py:1042 order/models.py:2206 msgid "Customer order reference code" msgstr "Kundens ordrereferanse" -#: order/models.py:1019 order/models.py:1771 -#: templates/js/translated/sales_order.js:879 -#: templates/js/translated/sales_order.js:1060 +#: order/models.py:1046 order/models.py:1800 +#: templates/js/translated/sales_order.js:838 +#: templates/js/translated/sales_order.js:1026 msgid "Shipment Date" msgstr "Forsendelsesdato" -#: order/models.py:1028 +#: order/models.py:1055 msgid "shipped by" msgstr "sendt av" -#: order/models.py:1077 +#: order/models.py:1094 msgid "Order is already complete" msgstr "" -#: order/models.py:1080 +#: order/models.py:1097 msgid "Order is already cancelled" msgstr "" -#: order/models.py:1084 +#: order/models.py:1101 msgid "Only an open order can be marked as complete" msgstr "Kun en åpen ordre kan merkes som fullført" -#: order/models.py:1088 +#: order/models.py:1105 msgid "Order cannot be completed as there are incomplete shipments" msgstr "Bestillingen kan ikke fullføres da det finnes ufullstendige forsendelser" -#: order/models.py:1093 +#: order/models.py:1110 msgid "Order cannot be completed as there are incomplete line items" msgstr "Denne ordren kan ikke fullføres da det fortsatt er ufullstendige artikler" -#: order/models.py:1357 +#: order/models.py:1374 msgid "Item quantity" msgstr "Antall" -#: order/models.py:1374 +#: order/models.py:1391 msgid "Line item reference" msgstr "Linjereferanse" -#: order/models.py:1381 +#: order/models.py:1398 msgid "Line item notes" msgstr "Linjenotater" -#: order/models.py:1393 +#: order/models.py:1410 msgid "Target date for this line item (leave blank to use the target date from the order)" msgstr "Måldato for denne linjen (la stå tomt for å bruke måldatoen fra ordren)" -#: order/models.py:1414 +#: order/models.py:1431 msgid "Line item description (optional)" msgstr "Linjeelementbeskrivelse (valgfritt)" -#: order/models.py:1420 -msgid "Context" -msgstr "Kontekst" - -#: order/models.py:1421 +#: order/models.py:1438 msgid "Additional context for this line" msgstr "Ytterligere kontekst for denne linjen" -#: order/models.py:1431 +#: order/models.py:1448 msgid "Unit price" msgstr "Enhetspris" -#: order/models.py:1445 +#: order/models.py:1462 msgid "Purchase Order Line Item" msgstr "" -#: order/models.py:1469 +#: order/models.py:1486 msgid "Supplier part must match supplier" msgstr "Delens leverandør må samsvare med leverandør" -#: order/models.py:1476 -msgid "deleted" -msgstr "slettet" - -#: order/models.py:1504 +#: order/models.py:1520 msgid "Supplier part" msgstr "Leverandørdel" -#: order/models.py:1511 order/templates/order/order_base.html:201 +#: order/models.py:1527 order/templates/order/order_base.html:210 #: templates/js/translated/part.js:1876 templates/js/translated/part.js:1908 -#: templates/js/translated/purchase_order.js:1369 -#: templates/js/translated/purchase_order.js:2239 +#: templates/js/translated/purchase_order.js:1352 +#: templates/js/translated/purchase_order.js:2223 #: templates/js/translated/return_order.js:762 #: templates/js/translated/table_filters.js:119 #: templates/js/translated/table_filters.js:605 msgid "Received" msgstr "Mottatt" -#: order/models.py:1512 +#: order/models.py:1528 msgid "Number of items received" msgstr "Antall enheter mottatt" -#: order/models.py:1520 stock/models.py:959 stock/serializers.py:610 -#: stock/templates/stock/item_base.html:183 -#: templates/js/translated/stock.js:2396 +#: order/models.py:1536 stock/models.py:1036 stock/serializers.py:637 +#: stock/templates/stock/item_base.html:180 +#: templates/js/translated/stock.js:2397 msgid "Purchase Price" msgstr "Innkjøpspris" -#: order/models.py:1521 +#: order/models.py:1537 msgid "Unit purchase price" msgstr "Enhet-innkjøpspris" -#: order/models.py:1536 -msgid "Where does the Purchaser want this item to be stored?" -msgstr "Hvor vil innkjøper at artikkelen skal lagres?" - -#: order/models.py:1587 +#: order/models.py:1603 msgid "Purchase Order Extra Line" msgstr "" -#: order/models.py:1616 +#: order/models.py:1632 msgid "Sales Order Line Item" msgstr "" -#: order/models.py:1637 +#: order/models.py:1653 msgid "Virtual part cannot be assigned to a sales order" msgstr "Virtuell del kan ikke tildeles salgsordre" -#: order/models.py:1642 +#: order/models.py:1658 msgid "Only salable parts can be assigned to a sales order" msgstr "Kun salgbare deler kan tildeles en salgsordre" -#: order/models.py:1668 part/templates/part/part_pricing.html:107 -#: part/templates/part/prices.html:139 templates/js/translated/pricing.js:957 +#: order/models.py:1684 part/templates/part/part_pricing.html:107 +#: part/templates/part/prices.html:139 templates/js/translated/pricing.js:955 msgid "Sale Price" msgstr "Salgspris" -#: order/models.py:1669 +#: order/models.py:1685 msgid "Unit sale price" msgstr "Enhets-salgspris" -#: order/models.py:1678 order/status_codes.py:48 -#: templates/js/translated/sales_order.js:1559 -#: templates/js/translated/sales_order.js:1680 -#: templates/js/translated/sales_order.js:1993 +#: order/models.py:1694 order/status_codes.py:50 +#: templates/js/translated/sales_order.js:1525 +#: templates/js/translated/sales_order.js:1661 +#: templates/js/translated/sales_order.js:1974 msgid "Shipped" msgstr "Sendt" -#: order/models.py:1679 +#: order/models.py:1695 msgid "Shipped quantity" msgstr "Sendt antall" -#: order/models.py:1751 +#: order/models.py:1769 msgid "Sales Order Shipment" msgstr "" -#: order/models.py:1772 +#: order/models.py:1801 msgid "Date of shipment" msgstr "Dato for forsendelse" -#: order/models.py:1778 templates/js/translated/sales_order.js:1072 +#: order/models.py:1807 templates/js/translated/sales_order.js:1038 msgid "Delivery Date" msgstr "Leveringsdato" -#: order/models.py:1779 +#: order/models.py:1808 msgid "Date of delivery of shipment" msgstr "Dato for levering av forsendelse" -#: order/models.py:1787 +#: order/models.py:1816 msgid "Checked By" msgstr "Sjekket Av" -#: order/models.py:1788 +#: order/models.py:1817 msgid "User who checked this shipment" msgstr "Brukeren som sjekket forsendelsen" -#: order/models.py:1795 order/models.py:2018 order/serializers.py:1475 -#: order/serializers.py:1585 templates/js/translated/model_renderers.js:455 +#: order/models.py:1824 order/models.py:2051 order/serializers.py:1601 +#: order/serializers.py:1725 +#: report/templates/report/inventree_sales_order_shipment_report.html:14 +#: templates/js/translated/model_renderers.js:458 +#: templates/js/translated/sales_order.js:1615 msgid "Shipment" msgstr "Forsendelse" -#: order/models.py:1796 +#: order/models.py:1825 msgid "Shipment number" msgstr "Forsendelsesnummer" -#: order/models.py:1804 +#: order/models.py:1833 msgid "Tracking Number" msgstr "Sporingsnummer" -#: order/models.py:1805 +#: order/models.py:1834 msgid "Shipment tracking information" msgstr "Sporingsinformasjon for forsendelse" -#: order/models.py:1812 +#: order/models.py:1841 msgid "Invoice Number" msgstr "Fakturanummer" -#: order/models.py:1813 +#: order/models.py:1842 msgid "Reference number for associated invoice" msgstr "Referansenummer for tilknyttet faktura" -#: order/models.py:1833 +#: order/models.py:1862 msgid "Shipment has already been sent" msgstr "Forsendelsen er allerede sendt" -#: order/models.py:1836 +#: order/models.py:1865 msgid "Shipment has no allocated stock items" msgstr "Forsendelsen har ingen tildelte lagervarer" -#: order/models.py:1912 +#: order/models.py:1945 msgid "Sales Order Extra Line" msgstr "" -#: order/models.py:1941 +#: order/models.py:1974 msgid "Sales Order Allocation" msgstr "" -#: order/models.py:1964 order/models.py:1966 +#: order/models.py:1997 order/models.py:1999 msgid "Stock item has not been assigned" msgstr "Lagervarer er ikke blitt tildelt" -#: order/models.py:1973 +#: order/models.py:2006 msgid "Cannot allocate stock item to a line with a different part" msgstr "Kan ikke tildele lagervare til en linje med annen del" -#: order/models.py:1976 +#: order/models.py:2009 msgid "Cannot allocate stock to a line without a part" msgstr "Kan ikke tildele lagerbeholdning til en linje uten en del" -#: order/models.py:1979 +#: order/models.py:2012 msgid "Allocation quantity cannot exceed stock quantity" msgstr "Tildelingsantall kan ikke overstige tilgjengelig lagerbeholdning" -#: order/models.py:1998 order/serializers.py:1345 +#: order/models.py:2031 order/serializers.py:1471 msgid "Quantity must be 1 for serialized stock item" msgstr "Antall må være 1 for serialisert lagervare" -#: order/models.py:2001 +#: order/models.py:2034 msgid "Sales order does not match shipment" msgstr "Salgsordre samsvarer ikke med forsendelse" -#: order/models.py:2002 plugin/base/barcodes/api.py:524 +#: order/models.py:2035 plugin/base/barcodes/api.py:629 msgid "Shipment does not match sales order" msgstr "Forsendelsen samsvarer ikke med salgsordre" -#: order/models.py:2010 +#: order/models.py:2043 msgid "Line" msgstr "Linje" -#: order/models.py:2019 +#: order/models.py:2052 msgid "Sales order shipment reference" msgstr "Forsendelsesreferanse for salgsordre" -#: order/models.py:2032 order/models.py:2391 +#: order/models.py:2065 order/models.py:2430 #: templates/js/translated/return_order.js:720 msgid "Item" msgstr "Artikkel" -#: order/models.py:2033 +#: order/models.py:2066 msgid "Select stock item to allocate" msgstr "Velg lagervare å tildele" -#: order/models.py:2042 +#: order/models.py:2075 msgid "Enter stock allocation quantity" msgstr "Angi lagertildelingsmengde" -#: order/models.py:2136 +#: order/models.py:2175 msgid "Return Order reference" msgstr "Returordre-referanse" -#: order/models.py:2148 +#: order/models.py:2187 msgid "Company from which items are being returned" msgstr "Firmaet delen skal returneres fra" -#: order/models.py:2160 +#: order/models.py:2199 msgid "Return order status" msgstr "Returordrestatus" -#: order/models.py:2362 +#: order/models.py:2401 msgid "Return Order Line Item" msgstr "" -#: order/models.py:2376 +#: order/models.py:2415 msgid "Only serialized items can be assigned to a Return Order" msgstr "Kun serialiserte artikler kan tilordnes en Returordre" -#: order/models.py:2392 +#: order/models.py:2431 msgid "Select item to return from customer" msgstr "Velg artikkel som skal returneres fra kunde" -#: order/models.py:2398 +#: order/models.py:2437 msgid "Received Date" msgstr "Mottatt Dato" -#: order/models.py:2399 +#: order/models.py:2438 msgid "The date this this return item was received" msgstr "Datoen denne returartikkelen ble mottatt" -#: order/models.py:2410 templates/js/translated/return_order.js:731 +#: order/models.py:2449 templates/js/translated/return_order.js:731 #: templates/js/translated/table_filters.js:122 msgid "Outcome" msgstr "Utfall" -#: order/models.py:2411 +#: order/models.py:2450 msgid "Outcome for this line item" msgstr "Utfall for dette linjeelementet" -#: order/models.py:2418 +#: order/models.py:2457 msgid "Cost associated with return or repair for this line item" msgstr "Kostnad forbundet med retur eller reparasjon for dette linjeelementet" -#: order/models.py:2428 +#: order/models.py:2467 msgid "Return Order Extra Line" msgstr "" -#: order/serializers.py:86 +#: order/serializers.py:87 +msgid "Order ID" +msgstr "" + +#: order/serializers.py:87 +msgid "ID of the order to duplicate" +msgstr "" + +#: order/serializers.py:93 +msgid "Copy Lines" +msgstr "" + +#: order/serializers.py:94 +msgid "Copy line items from the original order" +msgstr "" + +#: order/serializers.py:100 +msgid "Copy Extra Lines" +msgstr "" + +#: order/serializers.py:101 +msgid "Copy extra line items from the original order" +msgstr "" + +#: order/serializers.py:117 msgid "Completed Lines" msgstr "" -#: order/serializers.py:283 stock/admin.py:195 +#: order/serializers.py:161 +msgid "Duplicate Order" +msgstr "" + +#: order/serializers.py:162 +msgid "Specify options for duplicating this order" +msgstr "" + +#: order/serializers.py:234 +msgid "Invalid order ID" +msgstr "" + +#: order/serializers.py:374 stock/admin.py:196 msgid "Supplier Name" msgstr "Leverandørnavn" -#: order/serializers.py:331 +#: order/serializers.py:416 msgid "Order cannot be cancelled" msgstr "Ordren kan ikke kanselleres" -#: order/serializers.py:346 order/serializers.py:1366 +#: order/serializers.py:431 order/serializers.py:1492 msgid "Allow order to be closed with incomplete line items" msgstr "Tillat ordre å lukkes med ufullstendige linjeelementer" -#: order/serializers.py:356 order/serializers.py:1376 +#: order/serializers.py:441 order/serializers.py:1502 msgid "Order has incomplete line items" msgstr "Ordren har ufullstendige linjeelementer" -#: order/serializers.py:506 +#: order/serializers.py:591 msgid "Order is not open" msgstr "Ordren er ikke åpen" -#: order/serializers.py:527 +#: order/serializers.py:612 msgid "Auto Pricing" msgstr "" -#: order/serializers.py:529 +#: order/serializers.py:614 msgid "Automatically calculate purchase price based on supplier part data" msgstr "" -#: order/serializers.py:539 +#: order/serializers.py:624 msgid "Purchase price currency" msgstr "Innkjøpsvaluta" -#: order/serializers.py:545 +#: order/serializers.py:630 msgid "Merge Items" msgstr "" -#: order/serializers.py:547 +#: order/serializers.py:632 msgid "Merge items with the same part, destination and target date into one line item" msgstr "" -#: order/serializers.py:560 part/models.py:1033 +#: order/serializers.py:645 part/models.py:1094 part/serializers.py:387 msgid "Internal Part Number" msgstr "Internt delnummer" -#: order/serializers.py:568 +#: order/serializers.py:653 msgid "Internal Part Name" msgstr "" -#: order/serializers.py:584 +#: order/serializers.py:669 msgid "Supplier part must be specified" msgstr "Leverandørdel må angis" -#: order/serializers.py:587 +#: order/serializers.py:672 msgid "Purchase order must be specified" msgstr "Innkjøpsordre må angis" -#: order/serializers.py:595 +#: order/serializers.py:680 msgid "Supplier must match purchase order" msgstr "Leverandør må samsvare med innkjøpsordre" -#: order/serializers.py:596 +#: order/serializers.py:681 msgid "Purchase order must match supplier" msgstr "Innkjøpsordre må samsvare med leverandør" -#: order/serializers.py:639 order/serializers.py:1446 +#: order/serializers.py:724 order/serializers.py:1572 msgid "Line Item" msgstr "Ordrelinje" -#: order/serializers.py:645 +#: order/serializers.py:730 msgid "Line item does not match purchase order" msgstr "Linjeelementet samsvarer ikke med innkjøpsordre" -#: order/serializers.py:655 order/serializers.py:779 order/serializers.py:1782 +#: order/serializers.py:740 order/serializers.py:881 order/serializers.py:1934 msgid "Select destination location for received items" msgstr "Velg lagerplassering for mottatte enheter" -#: order/serializers.py:671 templates/js/translated/purchase_order.js:1130 +#: order/serializers.py:756 templates/js/translated/purchase_order.js:1113 #: templates/js/translated/stock.js:1200 msgid "Enter batch code for incoming stock items" msgstr "Angi batchkode for innkommende lagervarer" -#: order/serializers.py:679 templates/js/translated/purchase_order.js:1155 +#: order/serializers.py:764 templates/js/translated/purchase_order.js:1138 msgid "Enter serial numbers for incoming stock items" msgstr "Angi serienummer for innkommende lagervarer" -#: order/serializers.py:691 +#: order/serializers.py:776 msgid "Override packaging information for incoming stock items" msgstr "" -#: order/serializers.py:699 +#: order/serializers.py:784 msgid "Additional note for incoming stock items" msgstr "" -#: order/serializers.py:706 templates/js/translated/barcode.js:52 +#: order/serializers.py:791 templates/js/translated/barcode.js:52 msgid "Barcode" msgstr "Strekkode" -#: order/serializers.py:707 +#: order/serializers.py:792 msgid "Scanned barcode" msgstr "Skannet strekkode" -#: order/serializers.py:723 +#: order/serializers.py:808 msgid "Barcode is already in use" msgstr "Strekkode allerede i bruk" -#: order/serializers.py:747 +#: order/serializers.py:831 msgid "An integer quantity must be provided for trackable parts" msgstr "Heltallsverdi må angis for sporbare deler" -#: order/serializers.py:795 order/serializers.py:1798 +#: order/serializers.py:898 order/serializers.py:1950 msgid "Line items must be provided" msgstr "Linjeelementer må være oppgitt" -#: order/serializers.py:811 +#: order/serializers.py:914 msgid "Destination location must be specified" msgstr "Målplassering må angis" -#: order/serializers.py:822 +#: order/serializers.py:925 msgid "Supplied barcode values must be unique" msgstr "Angitte strekkodeverdier må være unike" -#: order/serializers.py:1187 +#: order/serializers.py:1221 msgid "Sale price currency" msgstr "Valuta for salgspris" -#: order/serializers.py:1248 +#: order/serializers.py:1260 +msgid "Allocated Items" +msgstr "" + +#: order/serializers.py:1374 msgid "No shipment details provided" msgstr "Ingen forsendelsesopplysninger oppgitt" -#: order/serializers.py:1309 order/serializers.py:1455 +#: order/serializers.py:1435 order/serializers.py:1581 msgid "Line item is not associated with this order" msgstr "Linjeelement er ikke knyttet til denne ordren" -#: order/serializers.py:1328 +#: order/serializers.py:1454 msgid "Quantity must be positive" msgstr "Mengden må være positiv" -#: order/serializers.py:1465 +#: order/serializers.py:1591 msgid "Enter serial numbers to allocate" msgstr "Skriv inn serienummer for å tildele" -#: order/serializers.py:1487 order/serializers.py:1593 +#: order/serializers.py:1613 order/serializers.py:1733 msgid "Shipment has already been shipped" msgstr "Forsendelsen er allerede sendt" -#: order/serializers.py:1490 order/serializers.py:1596 +#: order/serializers.py:1616 order/serializers.py:1736 msgid "Shipment is not associated with this order" msgstr "Forsendelsen er ikke knyttet til denne ordren" -#: order/serializers.py:1537 +#: order/serializers.py:1671 msgid "No match found for the following serial numbers" msgstr "Ingen treff funnet for følgende serienummer" -#: order/serializers.py:1544 -msgid "The following serial numbers are already allocated" -msgstr "Følgende serienummer er allerede tildelt" +#: order/serializers.py:1678 +msgid "The following serial numbers are unavailable" +msgstr "" -#: order/serializers.py:1752 +#: order/serializers.py:1904 msgid "Return order line item" msgstr "Returordrelinje" -#: order/serializers.py:1758 +#: order/serializers.py:1910 msgid "Line item does not match return order" msgstr "Linjeelementet samsvarer ikke med returordre" -#: order/serializers.py:1761 +#: order/serializers.py:1913 msgid "Line item has already been received" msgstr "Linjeelementet er allerede mottatt" -#: order/serializers.py:1790 +#: order/serializers.py:1942 msgid "Items can only be received against orders which are in progress" msgstr "Artikler kan bare mottas mot ordrer som pågår" -#: order/serializers.py:1873 +#: order/serializers.py:2025 msgid "Line price currency" msgstr "Valuta for linje" -#: order/status_codes.py:17 order/status_codes.py:52 stock/status_codes.py:16 +#: order/status_codes.py:17 order/status_codes.py:54 stock/status_codes.py:16 msgid "Lost" msgstr "Tapt" -#: order/status_codes.py:18 order/status_codes.py:53 stock/status_codes.py:22 +#: order/status_codes.py:18 order/status_codes.py:55 stock/status_codes.py:24 msgid "Returned" msgstr "Returnert" -#: order/status_codes.py:45 order/status_codes.py:77 +#: order/status_codes.py:47 order/status_codes.py:79 msgid "In Progress" msgstr "Pågående" -#: order/status_codes.py:101 +#: order/status_codes.py:105 msgid "Return" msgstr "Retur" -#: order/status_codes.py:104 +#: order/status_codes.py:108 msgid "Repair" msgstr "Reparasjon" -#: order/status_codes.py:107 +#: order/status_codes.py:111 msgid "Replace" msgstr "Erstatt" -#: order/status_codes.py:110 +#: order/status_codes.py:114 msgid "Refund" msgstr "Refusjon" -#: order/status_codes.py:113 +#: order/status_codes.py:117 msgid "Reject" msgstr "Avvis" -#: order/tasks.py:25 +#: order/tasks.py:30 msgid "Overdue Purchase Order" msgstr "Forfalt Innkjøpsordre" -#: order/tasks.py:30 +#: order/tasks.py:35 #, python-brace-format msgid "Purchase order {po} is now overdue" msgstr "Innkjøpsordre {po} er nå forfalt" -#: order/tasks.py:75 +#: order/tasks.py:80 msgid "Overdue Sales Order" msgstr "Forfalt Salgsordre" -#: order/tasks.py:80 +#: order/tasks.py:85 #, python-brace-format msgid "Sales order {so} is now overdue" msgstr "Salgsordre {so} er nå forfalt" -#: order/templates/order/order_base.html:51 +#: order/templates/order/order_base.html:52 msgid "Print purchase order report" msgstr "Skriv ut innkjøpsordrerapport" -#: order/templates/order/order_base.html:53 -#: order/templates/order/return_order_base.html:62 -#: order/templates/order/sales_order_base.html:62 +#: order/templates/order/order_base.html:54 +#: order/templates/order/return_order_base.html:63 +#: order/templates/order/sales_order_base.html:63 msgid "Export order to file" msgstr "Eksporterer ordre til fil" -#: order/templates/order/order_base.html:59 -#: order/templates/order/return_order_base.html:72 -#: order/templates/order/sales_order_base.html:71 +#: order/templates/order/order_base.html:60 +#: order/templates/order/return_order_base.html:73 +#: order/templates/order/sales_order_base.html:72 msgid "Order actions" msgstr "Ordrehandlinger" -#: order/templates/order/order_base.html:64 -#: order/templates/order/return_order_base.html:76 -#: order/templates/order/sales_order_base.html:75 +#: order/templates/order/order_base.html:65 +#: order/templates/order/return_order_base.html:77 +#: order/templates/order/sales_order_base.html:76 msgid "Edit order" msgstr "Rediger ordre" -#: order/templates/order/order_base.html:68 +#: order/templates/order/order_base.html:69 msgid "Duplicate order" msgstr "Dupliser ordre" -#: order/templates/order/order_base.html:73 -#: order/templates/order/return_order_base.html:78 -#: order/templates/order/sales_order_base.html:77 +#: order/templates/order/order_base.html:74 +#: order/templates/order/return_order_base.html:79 +#: order/templates/order/sales_order_base.html:78 msgid "Hold order" msgstr "" -#: order/templates/order/order_base.html:78 -#: order/templates/order/return_order_base.html:81 -#: order/templates/order/sales_order_base.html:80 +#: order/templates/order/order_base.html:79 +#: order/templates/order/return_order_base.html:82 +#: order/templates/order/sales_order_base.html:81 msgid "Cancel order" msgstr "Kanseller ordre" -#: order/templates/order/order_base.html:84 #: order/templates/order/order_base.html:85 -#: order/templates/order/return_order_base.html:85 +#: order/templates/order/order_base.html:86 #: order/templates/order/return_order_base.html:86 -#: order/templates/order/sales_order_base.html:86 +#: order/templates/order/return_order_base.html:87 #: order/templates/order/sales_order_base.html:87 +#: order/templates/order/sales_order_base.html:88 msgid "Issue Order" msgstr "Send ordre" -#: order/templates/order/order_base.html:88 -#: order/templates/order/return_order_base.html:89 +#: order/templates/order/order_base.html:89 +#: order/templates/order/return_order_base.html:90 msgid "Mark order as complete" msgstr "Merk ordren som fullført" -#: order/templates/order/order_base.html:89 -#: order/templates/order/return_order_base.html:90 -#: order/templates/order/sales_order_base.html:100 +#: order/templates/order/order_base.html:90 +#: order/templates/order/return_order_base.html:91 +#: order/templates/order/sales_order_base.html:101 msgid "Complete Order" msgstr "Fullfør ordre" -#: order/templates/order/order_base.html:96 +#: order/templates/order/order_base.html:97 msgid "Supplier part thumbnail" msgstr "Miniatyrbilde for leverandør" -#: order/templates/order/order_base.html:116 -#: order/templates/order/return_order_base.html:109 -#: order/templates/order/sales_order_base.html:118 +#: order/templates/order/order_base.html:117 +#: order/templates/order/return_order_base.html:110 +#: order/templates/order/sales_order_base.html:119 msgid "Order Description" msgstr "Ordrebeskrivelse" -#: order/templates/order/order_base.html:146 -msgid "No suppplier information available" -msgstr "Ingen leverandørinformasjon tilgjengelig" - -#: order/templates/order/order_base.html:159 -#: order/templates/order/sales_order_base.html:164 +#: order/templates/order/order_base.html:168 +#: order/templates/order/sales_order_base.html:165 msgid "Completed Line Items" msgstr "Fullførte elementer" -#: order/templates/order/order_base.html:165 -#: order/templates/order/sales_order_base.html:170 -#: order/templates/order/sales_order_base.html:180 +#: order/templates/order/order_base.html:174 +#: order/templates/order/sales_order_base.html:171 +#: order/templates/order/sales_order_base.html:181 msgid "Incomplete" msgstr "Ufullstendig" -#: order/templates/order/order_base.html:184 -#: order/templates/order/return_order_base.html:160 +#: order/templates/order/order_base.html:193 +#: order/templates/order/return_order_base.html:161 #: report/templates/report/inventree_build_order_report.html:121 msgid "Issued" msgstr "Utstedt" -#: order/templates/order/order_base.html:229 +#: order/templates/order/order_base.html:238 msgid "Total cost" msgstr "Total kostnad" -#: order/templates/order/order_base.html:233 -#: order/templates/order/return_order_base.html:202 -#: order/templates/order/sales_order_base.html:246 +#: order/templates/order/order_base.html:242 +#: order/templates/order/return_order_base.html:203 +#: order/templates/order/sales_order_base.html:247 msgid "Total cost could not be calculated" msgstr "Total kostnad kunne ikke beregnes" -#: order/templates/order/order_base.html:335 +#: order/templates/order/order_base.html:344 msgid "Purchase Order QR Code" msgstr "" -#: order/templates/order/order_base.html:347 +#: order/templates/order/order_base.html:356 msgid "Link Barcode to Purchase Order" msgstr "" @@ -6184,12 +6392,12 @@ msgstr "Duplikatvalg" #: part/templates/part/import_wizard/ajax_match_references.html:42 #: part/templates/part/import_wizard/match_fields.html:71 #: part/templates/part/import_wizard/match_references.html:49 -#: templates/js/translated/bom.js:133 templates/js/translated/build.js:530 -#: templates/js/translated/build.js:1802 -#: templates/js/translated/purchase_order.js:696 -#: templates/js/translated/purchase_order.js:1288 +#: templates/js/translated/bom.js:133 templates/js/translated/build.js:533 +#: templates/js/translated/build.js:1805 +#: templates/js/translated/purchase_order.js:679 +#: templates/js/translated/purchase_order.js:1271 #: templates/js/translated/return_order.js:505 -#: templates/js/translated/sales_order.js:1145 +#: templates/js/translated/sales_order.js:1111 #: templates/js/translated/stock.js:720 templates/js/translated/stock.js:889 #: templates/patterns/wizard/match_fields.html:70 msgid "Remove row" @@ -6242,7 +6450,7 @@ msgstr "Innkjøpsordreartikler" #: order/templates/order/purchase_order_detail.html:27 #: order/templates/order/return_order_detail.html:24 #: order/templates/order/sales_order_detail.html:24 -#: templates/js/translated/purchase_order.js:414 +#: templates/js/translated/purchase_order.js:397 #: templates/js/translated/return_order.js:458 #: templates/js/translated/sales_order.js:237 msgid "Add Line Item" @@ -6277,45 +6485,45 @@ msgstr "Mottatte artikler" msgid "Order Notes" msgstr "Ordrenotater" -#: order/templates/order/return_order_base.html:18 -#: order/templates/order/sales_order_base.html:18 +#: order/templates/order/return_order_base.html:19 +#: order/templates/order/sales_order_base.html:19 msgid "Customer logo thumbnail" msgstr "Miniatyrbilde for kundelogo" -#: order/templates/order/return_order_base.html:60 +#: order/templates/order/return_order_base.html:61 msgid "Print return order report" msgstr "Skriv ut returordrerapport" -#: order/templates/order/return_order_base.html:64 -#: order/templates/order/sales_order_base.html:64 +#: order/templates/order/return_order_base.html:65 +#: order/templates/order/sales_order_base.html:65 msgid "Print packing list" msgstr "Skriv ut pakkeliste" -#: order/templates/order/return_order_base.html:141 -#: order/templates/order/sales_order_base.html:158 +#: order/templates/order/return_order_base.html:142 +#: order/templates/order/sales_order_base.html:159 #: templates/js/translated/return_order.js:308 -#: templates/js/translated/sales_order.js:833 +#: templates/js/translated/sales_order.js:792 msgid "Customer Reference" msgstr "Kundereferanse" -#: order/templates/order/return_order_base.html:198 -#: order/templates/order/sales_order_base.html:242 +#: order/templates/order/return_order_base.html:199 +#: order/templates/order/sales_order_base.html:243 #: part/templates/part/part_pricing.html:32 #: part/templates/part/part_pricing.html:58 #: part/templates/part/part_pricing.html:99 #: part/templates/part/part_pricing.html:114 #: templates/js/translated/part.js:1079 -#: templates/js/translated/purchase_order.js:1822 +#: templates/js/translated/purchase_order.js:1806 #: templates/js/translated/return_order.js:380 -#: templates/js/translated/sales_order.js:891 +#: templates/js/translated/sales_order.js:850 msgid "Total Cost" msgstr "Total kostnad" -#: order/templates/order/return_order_base.html:273 +#: order/templates/order/return_order_base.html:274 msgid "Return Order QR Code" msgstr "" -#: order/templates/order/return_order_base.html:285 +#: order/templates/order/return_order_base.html:286 msgid "Link Barcode to Return Order" msgstr "" @@ -6323,40 +6531,40 @@ msgstr "" msgid "Order Details" msgstr "Ordredetaljer" -#: order/templates/order/sales_order_base.html:60 +#: order/templates/order/sales_order_base.html:61 msgid "Print sales order report" msgstr "Skriv ut salgsordrerapport" -#: order/templates/order/sales_order_base.html:91 #: order/templates/order/sales_order_base.html:92 +#: order/templates/order/sales_order_base.html:93 msgid "Ship Items" msgstr "Send artikler" -#: order/templates/order/sales_order_base.html:95 #: order/templates/order/sales_order_base.html:96 +#: order/templates/order/sales_order_base.html:97 msgid "Mark As Shipped" msgstr "" -#: order/templates/order/sales_order_base.html:99 -#: templates/js/translated/sales_order.js:536 +#: order/templates/order/sales_order_base.html:100 +#: templates/js/translated/sales_order.js:495 msgid "Complete Sales Order" msgstr "Fullfør Salgsordre" -#: order/templates/order/sales_order_base.html:138 +#: order/templates/order/sales_order_base.html:139 msgid "This Sales Order has not been fully allocated" msgstr "Salgsordren er ikke fullstendig tildelt" -#: order/templates/order/sales_order_base.html:176 +#: order/templates/order/sales_order_base.html:177 #: order/templates/order/sales_order_detail.html:99 #: order/templates/order/so_sidebar.html:11 msgid "Completed Shipments" msgstr "Fullførte forsendelser" -#: order/templates/order/sales_order_base.html:339 +#: order/templates/order/sales_order_base.html:340 msgid "Sales Order QR Code" msgstr "" -#: order/templates/order/sales_order_base.html:351 +#: order/templates/order/sales_order_base.html:352 msgid "Link Barcode to Sales Order" msgstr "" @@ -6370,7 +6578,7 @@ msgid "Pending Shipments" msgstr "Ventende forsendelser" #: order/templates/order/sales_order_detail.html:71 -#: templates/js/translated/bom.js:1277 templates/js/translated/build.js:1063 +#: templates/js/translated/bom.js:1277 templates/js/translated/build.js:1066 #: templates/js/translated/filters.js:299 msgid "Actions" msgstr "Handlinger" @@ -6383,39 +6591,40 @@ msgstr "Ny forsendelse" msgid "Match Supplier Parts" msgstr "Match Leverandørdeler" -#: order/views.py:406 +#: order/views.py:407 msgid "Sales order not found" msgstr "Salgsordre ikke funnet" -#: order/views.py:412 +#: order/views.py:413 msgid "Price not found" msgstr "Pris ikke funnet" -#: order/views.py:415 +#: order/views.py:416 #, python-brace-format msgid "Updated {part} unit-price to {price}" msgstr "Oppdaterte {part} enhetspris to {price}" -#: order/views.py:421 +#: order/views.py:422 #, python-brace-format msgid "Updated {part} unit-price to {price} and quantity to {qty}" msgstr "Oppdaterte {part} enhetspris til {price} og antall til {qty}" -#: part/admin.py:48 part/models.py:1032 part/templates/part/part_base.html:269 +#: part/admin.py:48 part/models.py:1093 part/serializers.py:939 +#: part/templates/part/part_base.html:277 #: report/templates/report/inventree_stock_location_report.html:103 #: templates/js/translated/part.js:1233 templates/js/translated/part.js:2347 -#: templates/js/translated/stock.js:2121 +#: templates/js/translated/stock.js:2122 msgid "IPN" msgstr "" -#: part/admin.py:50 part/models.py:1041 part/templates/part/part_base.html:286 +#: part/admin.py:50 part/models.py:1102 part/templates/part/part_base.html:294 #: report/models.py:161 templates/js/translated/part.js:1238 #: templates/js/translated/part.js:2353 msgid "Revision" msgstr "Revisjon" -#: part/admin.py:53 part/admin.py:319 part/models.py:1014 -#: part/templates/part/category.html:91 part/templates/part/part_base.html:307 +#: part/admin.py:53 part/admin.py:319 part/models.py:1075 +#: part/templates/part/category.html:91 part/templates/part/part_base.html:315 msgid "Keywords" msgstr "Nøkkelord" @@ -6427,7 +6636,7 @@ msgstr "Del-bilde" msgid "Category ID" msgstr "Kategori-ID" -#: part/admin.py:67 part/admin.py:304 part/serializers.py:880 +#: part/admin.py:67 part/admin.py:304 part/serializers.py:924 #: part/stocktake.py:222 msgid "Category Name" msgstr "Kategorinavn" @@ -6440,11 +6649,11 @@ msgstr "Standard plasserings-ID" msgid "Default Supplier ID" msgstr "Standard leverandør-ID" -#: part/admin.py:81 part/models.py:1000 part/templates/part/part_base.html:177 +#: part/admin.py:81 part/models.py:1061 part/templates/part/part_base.html:178 msgid "Variant Of" msgstr "Variant av" -#: part/admin.py:84 part/models.py:1138 part/templates/part/part_base.html:203 +#: part/admin.py:84 part/models.py:1199 part/templates/part/part_base.html:204 msgid "Minimum Stock" msgstr "Minimal lagerbeholdning" @@ -6452,23 +6661,23 @@ msgstr "Minimal lagerbeholdning" msgid "Used In" msgstr "Brukt i" -#: part/admin.py:150 part/serializers.py:897 -#: part/templates/part/part_base.html:241 stock/admin.py:235 +#: part/admin.py:150 part/serializers.py:949 +#: part/templates/part/part_base.html:249 stock/admin.py:236 #: templates/js/translated/part.js:717 templates/js/translated/part.js:2159 msgid "Building" msgstr "Produseres" -#: part/admin.py:155 part/models.py:3202 part/models.py:3216 +#: part/admin.py:155 part/models.py:3253 part/models.py:3267 #: templates/js/translated/part.js:976 msgid "Minimum Cost" msgstr "Minimal kostnad" -#: part/admin.py:158 part/models.py:3209 part/models.py:3223 +#: part/admin.py:158 part/models.py:3260 part/models.py:3274 #: templates/js/translated/part.js:986 msgid "Maximum Cost" msgstr "Maksimal kostnad" -#: part/admin.py:308 part/admin.py:387 stock/admin.py:57 stock/admin.py:215 +#: part/admin.py:308 part/admin.py:387 stock/admin.py:57 stock/admin.py:216 msgid "Parent ID" msgstr "Overordnet ID" @@ -6481,8 +6690,8 @@ msgstr "Overordnet navn" msgid "Category Path" msgstr "Sti til kategori" -#: part/admin.py:325 part/models.py:425 part/serializers.py:130 -#: part/serializers.py:290 part/serializers.py:415 +#: part/admin.py:325 part/models.py:420 part/serializers.py:130 +#: part/serializers.py:323 part/serializers.py:459 #: part/templates/part/cat_link.html:3 part/templates/part/category.html:20 #: part/templates/part/category.html:138 part/templates/part/category.html:158 #: part/templates/part/category_sidebar.html:9 @@ -6509,15 +6718,15 @@ msgstr "Overodnet IPN" msgid "Part Revision" msgstr "" -#: part/admin.py:418 part/serializers.py:1346 +#: part/admin.py:418 part/serializers.py:1400 #: templates/js/translated/pricing.js:358 -#: templates/js/translated/pricing.js:1024 +#: templates/js/translated/pricing.js:1022 msgid "Minimum Price" msgstr "Minstepris" -#: part/admin.py:423 part/serializers.py:1361 +#: part/admin.py:423 part/serializers.py:1415 #: templates/js/translated/pricing.js:353 -#: templates/js/translated/pricing.js:1032 +#: templates/js/translated/pricing.js:1030 msgid "Maximum Price" msgstr "Makspris" @@ -6545,94 +6754,98 @@ msgstr "" msgid "Filter by top-level categories" msgstr "" +#: part/api.py:156 stock/api.py:343 +msgid "Cascade" +msgstr "" + #: part/api.py:158 msgid "Include sub-categories in filtered results" msgstr "" -#: part/api.py:179 templates/js/translated/part.js:311 +#: part/api.py:178 templates/js/translated/part.js:311 msgid "Parent" msgstr "" -#: part/api.py:181 +#: part/api.py:180 msgid "Filter by parent category" msgstr "" -#: part/api.py:214 +#: part/api.py:213 msgid "Exclude Tree" msgstr "" -#: part/api.py:216 +#: part/api.py:215 msgid "Exclude sub-categories under the specified category" msgstr "" -#: part/api.py:441 +#: part/api.py:440 msgid "Has Results" msgstr "" -#: part/api.py:608 +#: part/api.py:604 msgid "Incoming Purchase Order" msgstr "Innkommende innkjøpsordre" -#: part/api.py:626 +#: part/api.py:618 msgid "Outgoing Sales Order" msgstr "Utgående salgsordre" -#: part/api.py:642 +#: part/api.py:630 msgid "Stock produced by Build Order" msgstr "Lagervarer produsert av en produksjonsordre" -#: part/api.py:726 +#: part/api.py:712 msgid "Stock required for Build Order" msgstr "Lagervarer påkrevd for produksjonsordre" -#: part/api.py:874 +#: part/api.py:858 msgid "Validate entire Bill of Materials" msgstr "Godkjenn hele Stykklisten" -#: part/api.py:880 +#: part/api.py:864 msgid "This option must be selected" msgstr "Dette alternativet må være valgt" -#: part/api.py:916 +#: part/api.py:900 msgid "Is Revision" msgstr "" -#: part/api.py:926 +#: part/api.py:910 msgid "Has Revisions" msgstr "" -#: part/api.py:1117 +#: part/api.py:1101 msgid "BOM Valid" msgstr "" -#: part/api.py:1523 part/models.py:1024 part/models.py:3489 part/models.py:4046 -#: part/serializers.py:430 part/serializers.py:1202 -#: part/templates/part/part_base.html:260 stock/api.py:781 +#: part/api.py:1509 part/models.py:1085 part/models.py:3540 part/models.py:4104 +#: part/serializers.py:474 part/serializers.py:1255 +#: part/templates/part/part_base.html:268 stock/api.py:781 #: templates/InvenTree/settings/settings_staff_js.html:300 #: templates/js/translated/notification.js:60 #: templates/js/translated/part.js:2383 msgid "Category" msgstr "Kategori" -#: part/api.py:1761 +#: part/api.py:1750 msgid "Assembly part is testable" msgstr "" -#: part/api.py:1770 +#: part/api.py:1759 msgid "Component part is testable" msgstr "" -#: part/api.py:1821 +#: part/api.py:1810 msgid "Uses" msgstr "" -#: part/bom.py:178 part/models.py:107 part/models.py:1077 -#: part/templates/part/category.html:113 part/templates/part/part_base.html:376 +#: part/bom.py:183 part/models.py:109 part/models.py:1138 +#: part/templates/part/category.html:113 part/templates/part/part_base.html:384 #: templates/js/translated/part.js:2397 msgid "Default Location" msgstr "Standard plassering" -#: part/bom.py:179 part/serializers.py:905 +#: part/bom.py:184 part/serializers.py:957 #: templates/email/low_stock_notification.html:16 msgid "Total Stock" msgstr "Total lagerbeholdning" @@ -6641,789 +6854,789 @@ msgstr "Total lagerbeholdning" msgid "Input quantity for price calculation" msgstr "Sett inn antall for prisberegning" -#: part/models.py:88 part/models.py:4047 part/templates/part/category.html:16 +#: part/models.py:90 part/models.py:4105 part/templates/part/category.html:16 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "Delkategori" -#: part/models.py:89 part/templates/part/category.html:133 +#: part/models.py:91 part/templates/part/category.html:133 #: templates/InvenTree/search.html:97 templates/js/translated/search.js:158 #: users/models.py:202 msgid "Part Categories" msgstr "Delkategorier" -#: part/models.py:108 +#: part/models.py:110 msgid "Default location for parts in this category" msgstr "Standardplassering for deler i denne kategorien" -#: part/models.py:113 stock/models.py:187 templates/js/translated/part.js:2828 -#: templates/js/translated/stock.js:2856 +#: part/models.py:115 stock/models.py:193 templates/js/translated/part.js:2828 +#: templates/js/translated/stock.js:2857 #: templates/js/translated/table_filters.js:246 #: templates/js/translated/table_filters.js:290 msgid "Structural" msgstr "Strukturell" -#: part/models.py:115 +#: part/models.py:117 msgid "Parts may not be directly assigned to a structural category, but may be assigned to child categories." msgstr "Deler kan ikke tilordnes direkte til en strukturell kategori, men kan tilordnes til underkategorier." -#: part/models.py:124 +#: part/models.py:126 msgid "Default keywords" msgstr "Standard nøkkelord" -#: part/models.py:125 +#: part/models.py:127 msgid "Default keywords for parts in this category" msgstr "Standard nøkkelord for deler i denne kategorien" -#: part/models.py:131 stock/models.py:90 stock/models.py:169 +#: part/models.py:133 stock/models.py:96 stock/models.py:175 #: templates/InvenTree/settings/settings_staff_js.html:445 msgid "Icon" msgstr "Ikon" -#: part/models.py:132 part/serializers.py:143 part/serializers.py:161 -#: stock/models.py:170 +#: part/models.py:134 part/serializers.py:143 part/serializers.py:161 +#: stock/models.py:176 msgid "Icon (optional)" msgstr "Ikon (valgfritt)" -#: part/models.py:178 +#: part/models.py:180 msgid "You cannot make this part category structural because some parts are already assigned to it!" msgstr "Du kan ikke gjøre denne delkategorien strukturell fordi noen deler allerede er tilordnet den!" -#: part/models.py:519 +#: part/models.py:514 msgid "Cannot delete this part as it is locked" msgstr "" -#: part/models.py:522 +#: part/models.py:517 msgid "Cannot delete this part as it is still active" msgstr "" -#: part/models.py:527 +#: part/models.py:522 msgid "Cannot delete this part as it is used in an assembly" msgstr "" -#: part/models.py:565 +#: part/models.py:560 msgid "Invalid choice for parent part" msgstr "Ugyldig valg for overordnet del" -#: part/models.py:613 part/models.py:620 +#: part/models.py:608 part/models.py:615 #, python-brace-format msgid "Part '{self}' cannot be used in BOM for '{parent}' (recursive)" msgstr "Delen '{self}' kan ikke brukes i BOM for '{parent}' (rekursiv)" -#: part/models.py:632 +#: part/models.py:627 #, python-brace-format msgid "Part '{parent}' is used in BOM for '{self}' (recursive)" msgstr "Delen '{parent}' er brukt i BOM for '{self}' (rekursiv)" -#: part/models.py:695 +#: part/models.py:694 #, python-brace-format msgid "IPN must match regex pattern {pattern}" msgstr "IPN må samsvare med regex-mønsteret {pattern}" -#: part/models.py:703 +#: part/models.py:702 msgid "Part cannot be a revision of itself" msgstr "" -#: part/models.py:710 +#: part/models.py:709 msgid "Cannot make a revision of a part which is already a revision" msgstr "" -#: part/models.py:717 +#: part/models.py:716 msgid "Revision code must be specified" msgstr "" -#: part/models.py:724 +#: part/models.py:723 msgid "Revisions are only allowed for assembly parts" msgstr "" -#: part/models.py:731 +#: part/models.py:730 msgid "Cannot make a revision of a template part" msgstr "" -#: part/models.py:737 +#: part/models.py:736 msgid "Parent part must point to the same template" msgstr "" -#: part/models.py:816 +#: part/models.py:832 msgid "Stock item with this serial number already exists" msgstr "Lagervare med dette serienummeret eksisterer allerede" -#: part/models.py:917 +#: part/models.py:976 msgid "Duplicate IPN not allowed in part settings" msgstr "Duplikat av internt delnummer er ikke tillatt i delinnstillinger" -#: part/models.py:926 +#: part/models.py:988 msgid "Duplicate part revision already exists." msgstr "" -#: part/models.py:936 +#: part/models.py:997 msgid "Part with this Name, IPN and Revision already exists." msgstr "Del med dette Navnet, internt delnummer og Revisjon eksisterer allerede." -#: part/models.py:951 +#: part/models.py:1012 msgid "Parts cannot be assigned to structural part categories!" msgstr "Deler kan ikke tilordnes strukturelle delkategorier!" -#: part/models.py:983 part/models.py:4102 +#: part/models.py:1044 part/models.py:4160 msgid "Part name" msgstr "Delnavn" -#: part/models.py:988 +#: part/models.py:1049 msgid "Is Template" msgstr "Er Mal" -#: part/models.py:989 +#: part/models.py:1050 msgid "Is this part a template part?" msgstr "Er delen en maldel?" -#: part/models.py:999 +#: part/models.py:1060 msgid "Is this part a variant of another part?" msgstr "Er delen en variant av en annen del?" -#: part/models.py:1007 +#: part/models.py:1068 msgid "Part description (optional)" msgstr "Delbeskrivelse (valgfritt)" -#: part/models.py:1015 +#: part/models.py:1076 msgid "Part keywords to improve visibility in search results" msgstr "Del-nøkkelord for å øke synligheten i søkeresultater" -#: part/models.py:1025 +#: part/models.py:1086 msgid "Part category" msgstr "Delkategori" -#: part/models.py:1040 +#: part/models.py:1101 msgid "Part revision or version number" msgstr "Delrevisjon eller versjonsnummer" -#: part/models.py:1050 +#: part/models.py:1111 msgid "Is this part a revision of another part?" msgstr "" -#: part/models.py:1051 part/templates/part/part_base.html:277 +#: part/models.py:1112 part/templates/part/part_base.html:285 msgid "Revision Of" msgstr "" -#: part/models.py:1075 +#: part/models.py:1136 msgid "Where is this item normally stored?" msgstr "Hvor er denne artikkelen vanligvis lagret?" -#: part/models.py:1121 part/templates/part/part_base.html:385 +#: part/models.py:1182 part/templates/part/part_base.html:393 msgid "Default Supplier" msgstr "Standard leverandør" -#: part/models.py:1122 +#: part/models.py:1183 msgid "Default supplier part" msgstr "Standard leverandørdel" -#: part/models.py:1129 +#: part/models.py:1190 msgid "Default Expiry" msgstr "Standard utløp" -#: part/models.py:1130 +#: part/models.py:1191 msgid "Expiry time (in days) for stock items of this part" msgstr "Utløpstid (i dager) for lagervarer av denne delen" -#: part/models.py:1139 +#: part/models.py:1200 msgid "Minimum allowed stock level" msgstr "Minimum tillatt lagernivå" -#: part/models.py:1148 +#: part/models.py:1209 msgid "Units of measure for this part" msgstr "Måleenheter for denne delen" -#: part/models.py:1155 +#: part/models.py:1216 msgid "Can this part be built from other parts?" msgstr "Kan denne delen bygges fra andre deler?" -#: part/models.py:1161 +#: part/models.py:1222 msgid "Can this part be used to build other parts?" msgstr "Kan denne delen brukes til å bygge andre deler?" -#: part/models.py:1167 +#: part/models.py:1228 msgid "Does this part have tracking for unique items?" msgstr "Har denne delen sporing av unike artikler?" -#: part/models.py:1173 +#: part/models.py:1234 msgid "Can this part have test results recorded against it?" msgstr "" -#: part/models.py:1179 +#: part/models.py:1240 msgid "Can this part be purchased from external suppliers?" msgstr "Kan denne delen kjøpes inn fra eksterne leverandører?" -#: part/models.py:1185 +#: part/models.py:1246 msgid "Can this part be sold to customers?" msgstr "Kan denne delen selges til kunder?" -#: part/models.py:1189 +#: part/models.py:1250 msgid "Is this part active?" msgstr "Er denne delen aktiv?" -#: part/models.py:1194 templates/js/translated/part.js:821 +#: part/models.py:1255 templates/js/translated/part.js:821 #: templates/js/translated/table_filters.js:724 msgid "Locked" msgstr "" -#: part/models.py:1195 +#: part/models.py:1256 msgid "Locked parts cannot be edited" msgstr "" -#: part/models.py:1201 +#: part/models.py:1262 msgid "Is this a virtual part, such as a software product or license?" msgstr "Er dette en virtuell del, som et softwareprodukt eller en lisens?" -#: part/models.py:1207 +#: part/models.py:1268 msgid "BOM checksum" msgstr "Kontrollsum for BOM" -#: part/models.py:1208 +#: part/models.py:1269 msgid "Stored BOM checksum" msgstr "Lagret BOM-kontrollsum" -#: part/models.py:1216 +#: part/models.py:1277 msgid "BOM checked by" msgstr "Stykkliste sjekket av" -#: part/models.py:1221 +#: part/models.py:1282 msgid "BOM checked date" msgstr "Stykkliste sjekket dato" -#: part/models.py:1237 +#: part/models.py:1298 msgid "Creation User" msgstr "Opprettingsbruker" -#: part/models.py:1247 +#: part/models.py:1308 msgid "Owner responsible for this part" msgstr "Eier ansvarlig for denne delen" -#: part/models.py:1252 part/templates/part/part_base.html:348 -#: stock/templates/stock/item_base.html:451 +#: part/models.py:1313 part/templates/part/part_base.html:356 +#: stock/templates/stock/item_base.html:448 #: templates/js/translated/part.js:2490 msgid "Last Stocktake" msgstr "Siste lagertelling" -#: part/models.py:2125 +#: part/models.py:2185 msgid "Sell multiple" msgstr "Selg flere" -#: part/models.py:3116 +#: part/models.py:3167 msgid "Currency used to cache pricing calculations" msgstr "Valuta som brukes til å bufre prisberegninger" -#: part/models.py:3132 +#: part/models.py:3183 msgid "Minimum BOM Cost" msgstr "Minimal BOM-kostnad" -#: part/models.py:3133 +#: part/models.py:3184 msgid "Minimum cost of component parts" msgstr "Minste kostnad for komponentdeler" -#: part/models.py:3139 +#: part/models.py:3190 msgid "Maximum BOM Cost" msgstr "Maksimal BOM-kostnad" -#: part/models.py:3140 +#: part/models.py:3191 msgid "Maximum cost of component parts" msgstr "Maksimal kostnad for komponentdeler" -#: part/models.py:3146 +#: part/models.py:3197 msgid "Minimum Purchase Cost" msgstr "Minimal innkjøpskostnad" -#: part/models.py:3147 +#: part/models.py:3198 msgid "Minimum historical purchase cost" msgstr "Minimal historisk innkjøpskostnad" -#: part/models.py:3153 +#: part/models.py:3204 msgid "Maximum Purchase Cost" msgstr "Maksimal innkjøpskostnad" -#: part/models.py:3154 +#: part/models.py:3205 msgid "Maximum historical purchase cost" msgstr "Maksimal historisk innkjøpskostnad" -#: part/models.py:3160 +#: part/models.py:3211 msgid "Minimum Internal Price" msgstr "Minimal intern pris" -#: part/models.py:3161 +#: part/models.py:3212 msgid "Minimum cost based on internal price breaks" msgstr "Minimal kostnad basert på interne prisbrudd" -#: part/models.py:3167 +#: part/models.py:3218 msgid "Maximum Internal Price" msgstr "Maksimal intern pris" -#: part/models.py:3168 +#: part/models.py:3219 msgid "Maximum cost based on internal price breaks" msgstr "Maksimal kostnad basert på interne prisbrudd" -#: part/models.py:3174 +#: part/models.py:3225 msgid "Minimum Supplier Price" msgstr "Minimal leverandørpris" -#: part/models.py:3175 +#: part/models.py:3226 msgid "Minimum price of part from external suppliers" msgstr "Minimumspris for del fra eksterne leverandører" -#: part/models.py:3181 +#: part/models.py:3232 msgid "Maximum Supplier Price" msgstr "Maksimal leverandørpris" -#: part/models.py:3182 +#: part/models.py:3233 msgid "Maximum price of part from external suppliers" msgstr "Maksimalpris for del fra eksterne leverandører" -#: part/models.py:3188 +#: part/models.py:3239 msgid "Minimum Variant Cost" msgstr "Minimal Variantkostnad" -#: part/models.py:3189 +#: part/models.py:3240 msgid "Calculated minimum cost of variant parts" msgstr "Beregnet minimal kostnad for variantdeler" -#: part/models.py:3195 +#: part/models.py:3246 msgid "Maximum Variant Cost" msgstr "Maksimal Variantkostnad" -#: part/models.py:3196 +#: part/models.py:3247 msgid "Calculated maximum cost of variant parts" msgstr "Beregnet maksimal kostnad for variantdeler" -#: part/models.py:3203 +#: part/models.py:3254 msgid "Override minimum cost" msgstr "Overstyr minstekostnad" -#: part/models.py:3210 +#: part/models.py:3261 msgid "Override maximum cost" msgstr "Overstyr maksimal kostnad" -#: part/models.py:3217 +#: part/models.py:3268 msgid "Calculated overall minimum cost" msgstr "Beregnet samlet minimal kostnad" -#: part/models.py:3224 +#: part/models.py:3275 msgid "Calculated overall maximum cost" msgstr "Beregnet samlet maksimal kostnad" -#: part/models.py:3230 +#: part/models.py:3281 msgid "Minimum Sale Price" msgstr "Minimal salgspris" -#: part/models.py:3231 +#: part/models.py:3282 msgid "Minimum sale price based on price breaks" msgstr "Minimal salgspris basert på prisbrudd" -#: part/models.py:3237 +#: part/models.py:3288 msgid "Maximum Sale Price" msgstr "Maksimal Salgspris" -#: part/models.py:3238 +#: part/models.py:3289 msgid "Maximum sale price based on price breaks" msgstr "Maksimal salgspris basert på prisbrudd" -#: part/models.py:3244 +#: part/models.py:3295 msgid "Minimum Sale Cost" msgstr "Minimal Salgskostnad" -#: part/models.py:3245 +#: part/models.py:3296 msgid "Minimum historical sale price" msgstr "Minimal historisk salgspris" -#: part/models.py:3251 +#: part/models.py:3302 msgid "Maximum Sale Cost" msgstr "Maksimal Salgskostnad" -#: part/models.py:3252 +#: part/models.py:3303 msgid "Maximum historical sale price" msgstr "Maksimal historisk salgspris" -#: part/models.py:3271 +#: part/models.py:3322 msgid "Part for stocktake" msgstr "Del for varetelling" -#: part/models.py:3276 +#: part/models.py:3327 msgid "Item Count" msgstr "Antall" -#: part/models.py:3277 +#: part/models.py:3328 msgid "Number of individual stock entries at time of stocktake" msgstr "Antall individuelle lagerenheter på tidspunkt for varetelling" -#: part/models.py:3285 +#: part/models.py:3336 msgid "Total available stock at time of stocktake" msgstr "Total tilgjengelig lagerbeholdning på tidspunkt for varetelling" -#: part/models.py:3289 part/models.py:3372 +#: part/models.py:3340 part/models.py:3423 part/serializers.py:263 #: part/templates/part/part_scheduling.html:13 #: report/templates/report/inventree_test_report.html:106 #: templates/InvenTree/settings/plugin_settings.html:37 #: templates/InvenTree/settings/settings_staff_js.html:543 -#: templates/js/translated/part.js:1092 templates/js/translated/pricing.js:826 -#: templates/js/translated/pricing.js:950 -#: templates/js/translated/purchase_order.js:1801 -#: templates/js/translated/stock.js:2905 +#: templates/js/translated/part.js:1092 templates/js/translated/pricing.js:824 +#: templates/js/translated/pricing.js:948 +#: templates/js/translated/purchase_order.js:1785 +#: templates/js/translated/stock.js:2906 msgid "Date" msgstr "Dato" -#: part/models.py:3290 +#: part/models.py:3341 msgid "Date stocktake was performed" msgstr "Dato for utført lagertelling" -#: part/models.py:3298 +#: part/models.py:3349 msgid "Additional notes" msgstr "Flere notater" -#: part/models.py:3308 +#: part/models.py:3359 msgid "User who performed this stocktake" msgstr "Bruker som utførte denne lagertellingen" -#: part/models.py:3314 +#: part/models.py:3365 msgid "Minimum Stock Cost" msgstr "Minimal lagerkostnad" -#: part/models.py:3315 +#: part/models.py:3366 msgid "Estimated minimum cost of stock on hand" msgstr "Estimert minimal kostnad for lagerbeholdning" -#: part/models.py:3321 +#: part/models.py:3372 msgid "Maximum Stock Cost" msgstr "Maksimal lagerkostnad" -#: part/models.py:3322 +#: part/models.py:3373 msgid "Estimated maximum cost of stock on hand" msgstr "Estimert maksimal kostnad for lagerbeholdning" -#: part/models.py:3378 templates/InvenTree/settings/settings_staff_js.html:532 +#: part/models.py:3429 templates/InvenTree/settings/settings_staff_js.html:532 msgid "Report" msgstr "Rapport" -#: part/models.py:3379 +#: part/models.py:3430 msgid "Stocktake report file (generated internally)" msgstr "Lagertellingsrapportfil (generert internt)" -#: part/models.py:3384 templates/InvenTree/settings/settings_staff_js.html:539 +#: part/models.py:3435 templates/InvenTree/settings/settings_staff_js.html:539 msgid "Part Count" msgstr "Antall deler" -#: part/models.py:3385 +#: part/models.py:3436 msgid "Number of parts covered by stocktake" msgstr "Antall deler dekket av varetellingen" -#: part/models.py:3395 +#: part/models.py:3446 msgid "User who requested this stocktake report" msgstr "Bruker som forespurte varetellingsrapporten" -#: part/models.py:3405 +#: part/models.py:3456 msgid "Part Sale Price Break" msgstr "" -#: part/models.py:3517 +#: part/models.py:3568 msgid "Part Test Template" msgstr "" -#: part/models.py:3543 +#: part/models.py:3594 msgid "Invalid template name - must include at least one alphanumeric character" msgstr "" -#: part/models.py:3564 part/models.py:3733 +#: part/models.py:3615 part/models.py:3784 msgid "Choices must be unique" msgstr "Valg må være unike" -#: part/models.py:3575 -msgid "Test templates can only be created for trackable parts" -msgstr "Testmaler kan bare bli opprettet for sporbare deler" +#: part/models.py:3626 +msgid "Test templates can only be created for testable parts" +msgstr "" -#: part/models.py:3586 +#: part/models.py:3637 msgid "Test template with the same key already exists for part" msgstr "" -#: part/models.py:3603 templates/js/translated/part.js:2898 +#: part/models.py:3654 templates/js/translated/part.js:2898 msgid "Test Name" msgstr "Testnavn" -#: part/models.py:3604 +#: part/models.py:3655 msgid "Enter a name for the test" msgstr "Angi et navn for testen" -#: part/models.py:3610 +#: part/models.py:3661 msgid "Test Key" msgstr "" -#: part/models.py:3611 +#: part/models.py:3662 msgid "Simplified key for the test" msgstr "" -#: part/models.py:3618 +#: part/models.py:3669 msgid "Test Description" msgstr "Testbeskrivelse" -#: part/models.py:3619 +#: part/models.py:3670 msgid "Enter description for this test" msgstr "Legg inn beskrivelse for denne testen" -#: part/models.py:3623 report/models.py:208 +#: part/models.py:3674 report/models.py:216 #: templates/js/translated/part.js:2919 #: templates/js/translated/table_filters.js:502 msgid "Enabled" msgstr "Aktivert" -#: part/models.py:3623 +#: part/models.py:3674 msgid "Is this test enabled?" msgstr "" -#: part/models.py:3628 templates/js/translated/part.js:2927 +#: part/models.py:3679 templates/js/translated/part.js:2927 #: templates/js/translated/table_filters.js:498 msgid "Required" msgstr "Påkrevd" -#: part/models.py:3629 +#: part/models.py:3680 msgid "Is this test required to pass?" msgstr "Er det påkrevd at denne testen bestås?" -#: part/models.py:3634 templates/js/translated/part.js:2935 +#: part/models.py:3685 templates/js/translated/part.js:2935 msgid "Requires Value" msgstr "Krever verdi" -#: part/models.py:3635 +#: part/models.py:3686 msgid "Does this test require a value when adding a test result?" msgstr "Krever denne testen en verdi når det legges til et testresultat?" -#: part/models.py:3640 templates/js/translated/part.js:2942 +#: part/models.py:3691 templates/js/translated/part.js:2942 msgid "Requires Attachment" msgstr "Krever vedlegg" -#: part/models.py:3642 +#: part/models.py:3693 msgid "Does this test require a file attachment when adding a test result?" msgstr "Krever denne testen et filvedlegg når du legger inn et testresultat?" -#: part/models.py:3648 part/models.py:3792 templates/js/translated/part.js:1643 +#: part/models.py:3699 part/models.py:3843 templates/js/translated/part.js:1643 msgid "Choices" msgstr "Valg" -#: part/models.py:3649 +#: part/models.py:3700 msgid "Valid choices for this test (comma-separated)" msgstr "" -#: part/models.py:3681 +#: part/models.py:3732 msgid "Part Parameter Template" msgstr "" -#: part/models.py:3708 +#: part/models.py:3759 msgid "Checkbox parameters cannot have units" msgstr "Sjekkboksparameter kan ikke ha enheter" -#: part/models.py:3713 +#: part/models.py:3764 msgid "Checkbox parameters cannot have choices" msgstr "Sjekkboksparameter kan ikke ha valg" -#: part/models.py:3750 +#: part/models.py:3801 msgid "Parameter template name must be unique" msgstr "Navn på parametermal må være unikt" -#: part/models.py:3765 +#: part/models.py:3816 msgid "Parameter Name" msgstr "Parameternavn" -#: part/models.py:3772 +#: part/models.py:3823 msgid "Physical units for this parameter" msgstr "Fysisk enheter for denne parameteren" -#: part/models.py:3780 +#: part/models.py:3831 msgid "Parameter description" msgstr "Parameterbeskrivelse" -#: part/models.py:3786 templates/js/translated/part.js:1634 +#: part/models.py:3837 templates/js/translated/part.js:1634 #: templates/js/translated/table_filters.js:837 msgid "Checkbox" msgstr "Sjekkboks" -#: part/models.py:3787 +#: part/models.py:3838 msgid "Is this parameter a checkbox?" msgstr "Er dette parameteret en sjekkboks?" -#: part/models.py:3793 +#: part/models.py:3844 msgid "Valid choices for this parameter (comma-separated)" msgstr "Gyldige valg for denne parameteren (kommaseparert)" -#: part/models.py:3827 +#: part/models.py:3881 msgid "Part Parameter" msgstr "" -#: part/models.py:3853 +#: part/models.py:3907 msgid "Parameter cannot be modified - part is locked" msgstr "" -#: part/models.py:3889 +#: part/models.py:3945 msgid "Invalid choice for parameter value" msgstr "Ugyldig valg for parameterverdi" -#: part/models.py:3938 +#: part/models.py:3996 msgid "Parent Part" msgstr "Overordnet del" -#: part/models.py:3946 part/models.py:4054 part/models.py:4055 +#: part/models.py:4004 part/models.py:4112 part/models.py:4113 #: templates/InvenTree/settings/settings_staff_js.html:295 msgid "Parameter Template" msgstr "Parametermal" -#: part/models.py:3952 +#: part/models.py:4010 msgid "Parameter Value" msgstr "Parameterverdi" -#: part/models.py:4002 +#: part/models.py:4060 msgid "Part Category Parameter Template" msgstr "" -#: part/models.py:4061 templates/InvenTree/settings/settings_staff_js.html:304 +#: part/models.py:4119 templates/InvenTree/settings/settings_staff_js.html:304 msgid "Default Value" msgstr "Standardverdi" -#: part/models.py:4062 +#: part/models.py:4120 msgid "Default Parameter Value" msgstr "Standard Parameterverdi" -#: part/models.py:4100 +#: part/models.py:4158 msgid "Part ID or part name" msgstr "Del-ID eller delnavn" -#: part/models.py:4101 +#: part/models.py:4159 msgid "Unique part ID value" msgstr "Unik del-ID-verdi" -#: part/models.py:4103 +#: part/models.py:4161 msgid "Part IPN value" msgstr "Delens interne delnummerverdi" -#: part/models.py:4104 +#: part/models.py:4162 msgid "Level" msgstr "Nivå" -#: part/models.py:4104 +#: part/models.py:4162 msgid "BOM level" msgstr "BOM-nivå" -#: part/models.py:4215 +#: part/models.py:4272 msgid "BOM item cannot be modified - assembly is locked" msgstr "" -#: part/models.py:4222 +#: part/models.py:4279 msgid "BOM item cannot be modified - variant assembly is locked" msgstr "" -#: part/models.py:4232 +#: part/models.py:4289 msgid "Select parent part" msgstr "Velg overordnet del" -#: part/models.py:4242 +#: part/models.py:4299 msgid "Sub part" msgstr "Underordnet del" -#: part/models.py:4243 +#: part/models.py:4300 msgid "Select part to be used in BOM" msgstr "Velg del som skal brukes i BOM" -#: part/models.py:4254 +#: part/models.py:4311 msgid "BOM quantity for this BOM item" msgstr "BOM-antall for denne BOM-artikkelen" -#: part/models.py:4260 +#: part/models.py:4317 msgid "This BOM item is optional" msgstr "Denne BOM-artikkelen er valgfri" -#: part/models.py:4266 +#: part/models.py:4323 msgid "This BOM item is consumable (it is not tracked in build orders)" msgstr "Denne BOM-artikkelen er forbruksvare (den spores ikke i produksjonsordrer)" -#: part/models.py:4273 part/templates/part/upload_bom.html:55 +#: part/models.py:4330 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "Svinn" -#: part/models.py:4274 +#: part/models.py:4331 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "Forventet produksjonssvinn (absolutt eller prosent)" -#: part/models.py:4281 +#: part/models.py:4338 msgid "BOM item reference" msgstr "BOM-artikkelreferanse" -#: part/models.py:4289 +#: part/models.py:4346 msgid "BOM item notes" msgstr "BOM-artikkelnotater" -#: part/models.py:4295 +#: part/models.py:4352 msgid "Checksum" msgstr "Kontrollsum" -#: part/models.py:4296 +#: part/models.py:4353 msgid "BOM line checksum" msgstr "BOM-linje kontrollsum" -#: part/models.py:4301 templates/js/translated/table_filters.js:181 +#: part/models.py:4358 templates/js/translated/table_filters.js:181 msgid "Validated" msgstr "Godkjent" -#: part/models.py:4302 +#: part/models.py:4359 msgid "This BOM item has been validated" msgstr "Denne BOM-artikkelen er godkjent" -#: part/models.py:4307 part/templates/part/upload_bom.html:57 +#: part/models.py:4364 part/templates/part/upload_bom.html:57 #: templates/js/translated/bom.js:1054 #: templates/js/translated/table_filters.js:185 #: templates/js/translated/table_filters.js:218 msgid "Gets inherited" msgstr "Arves" -#: part/models.py:4308 +#: part/models.py:4365 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "Denne BOM-artikkelen er arvet fra stykkliste for variantdeler" -#: part/models.py:4314 +#: part/models.py:4371 msgid "Stock items for variant parts can be used for this BOM item" msgstr "Lagervarer for variantdeler kan brukes for denne BOM-artikkelen" -#: part/models.py:4399 stock/models.py:685 +#: part/models.py:4456 stock/models.py:762 msgid "Quantity must be integer value for trackable parts" msgstr "Antall må være heltallsverdi for sporbare deler" -#: part/models.py:4409 part/models.py:4411 +#: part/models.py:4466 part/models.py:4468 msgid "Sub part must be specified" msgstr "Underordnet del må angis" -#: part/models.py:4551 +#: part/models.py:4613 msgid "BOM Item Substitute" msgstr "BOM-artikkel erstatning" -#: part/models.py:4572 +#: part/models.py:4634 msgid "Substitute part cannot be the same as the master part" msgstr "Erstatningsdel kan ikke være samme som hoveddelen" -#: part/models.py:4585 +#: part/models.py:4647 msgid "Parent BOM item" msgstr "Overordnet BOM-artikkel" -#: part/models.py:4593 +#: part/models.py:4655 msgid "Substitute part" msgstr "Erstatningsdel" -#: part/models.py:4609 +#: part/models.py:4671 msgid "Part 1" msgstr "Del 1" -#: part/models.py:4617 +#: part/models.py:4679 msgid "Part 2" msgstr "Del 2" -#: part/models.py:4618 +#: part/models.py:4680 msgid "Select Related Part" msgstr "Velg relatert del" -#: part/models.py:4637 +#: part/models.py:4699 msgid "Part relationship cannot be created between a part and itself" msgstr "Del-forhold kan ikke opprettes mellom en del og seg selv" -#: part/models.py:4642 +#: part/models.py:4704 msgid "Duplicate relationship already exists" msgstr "Duplikatforhold eksisterer allerede" @@ -7449,340 +7662,352 @@ msgstr "" msgid "Number of results recorded against this template" msgstr "" -#: part/serializers.py:225 part/serializers.py:243 stock/serializers.py:616 +#: part/serializers.py:225 part/serializers.py:243 stock/serializers.py:643 msgid "Purchase currency of this stock item" msgstr "Innkjøpsvaluta for lagervaren" -#: part/serializers.py:291 +#: part/serializers.py:268 +msgid "Speculative Quantity" +msgstr "" + +#: part/serializers.py:277 +msgid "Model ID" +msgstr "" + +#: part/serializers.py:324 msgid "Number of parts using this template" msgstr "" -#: part/serializers.py:421 +#: part/serializers.py:465 msgid "No parts selected" msgstr "Ingen deler valgt" -#: part/serializers.py:431 +#: part/serializers.py:475 msgid "Select category" msgstr "Velg kategori" -#: part/serializers.py:466 +#: part/serializers.py:510 msgid "Original Part" msgstr "Original Del" -#: part/serializers.py:467 +#: part/serializers.py:511 msgid "Select original part to duplicate" msgstr "Velg original del å duplisere" -#: part/serializers.py:472 +#: part/serializers.py:516 msgid "Copy Image" msgstr "Kopier Bilde" -#: part/serializers.py:473 +#: part/serializers.py:517 msgid "Copy image from original part" msgstr "Kopier bilde fra originaldel" -#: part/serializers.py:479 part/templates/part/detail.html:293 +#: part/serializers.py:523 part/templates/part/detail.html:293 msgid "Copy BOM" msgstr "Kopier Stykkliste" -#: part/serializers.py:480 +#: part/serializers.py:524 msgid "Copy bill of materials from original part" msgstr "Kopier stykkliste fra original del" -#: part/serializers.py:486 +#: part/serializers.py:530 msgid "Copy Parameters" msgstr "Kopier parametere" -#: part/serializers.py:487 +#: part/serializers.py:531 msgid "Copy parameter data from original part" msgstr "Kopier parameterdata fra originaldel" -#: part/serializers.py:493 +#: part/serializers.py:537 msgid "Copy Notes" msgstr "Kopier notater" -#: part/serializers.py:494 +#: part/serializers.py:538 msgid "Copy notes from original part" msgstr "Kopier notater fra originaldel" -#: part/serializers.py:512 +#: part/serializers.py:556 msgid "Initial Stock Quantity" msgstr "Innledende lagerbeholdning" -#: part/serializers.py:514 +#: part/serializers.py:558 msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added." msgstr "Angi initiell lagermengde for denne delen. Hvis antall er null, er ingen lagerbeholdning lagt til." -#: part/serializers.py:521 +#: part/serializers.py:565 msgid "Initial Stock Location" msgstr "Innledende lagerplassering" -#: part/serializers.py:522 +#: part/serializers.py:566 msgid "Specify initial stock location for this Part" msgstr "Angi initiell lagerplasering for denne delen" -#: part/serializers.py:539 +#: part/serializers.py:583 msgid "Select supplier (or leave blank to skip)" msgstr "Velg leverandør (eller la stå tom for å hoppe over)" -#: part/serializers.py:555 +#: part/serializers.py:599 msgid "Select manufacturer (or leave blank to skip)" msgstr "Velg produsent (eller la stå tom for å hoppe over)" -#: part/serializers.py:565 +#: part/serializers.py:609 msgid "Manufacturer part number" msgstr "Produsentens delenummer" -#: part/serializers.py:572 +#: part/serializers.py:616 msgid "Selected company is not a valid supplier" msgstr "Valgt firma er ikke en gyldig leverandør" -#: part/serializers.py:581 +#: part/serializers.py:625 msgid "Selected company is not a valid manufacturer" msgstr "Valgt firma er ikke en gyldig produsent" -#: part/serializers.py:592 +#: part/serializers.py:636 msgid "Manufacturer part matching this MPN already exists" msgstr "Produsentdel som matcher dette MPN-et, finnes allerede" -#: part/serializers.py:599 +#: part/serializers.py:643 msgid "Supplier part matching this SKU already exists" msgstr "Leverandørdel som matcher denne SKU-en, finnes allerede" -#: part/serializers.py:903 +#: part/serializers.py:955 msgid "Revisions" msgstr "" -#: part/serializers.py:908 +#: part/serializers.py:960 msgid "Unallocated Stock" msgstr "" -#: part/serializers.py:911 +#: part/serializers.py:963 msgid "Variant Stock" msgstr "" -#: part/serializers.py:941 part/templates/part/copy_part.html:9 +#: part/serializers.py:993 part/templates/part/copy_part.html:9 #: templates/js/translated/part.js:474 msgid "Duplicate Part" msgstr "Dupliser del" -#: part/serializers.py:942 +#: part/serializers.py:994 msgid "Copy initial data from another Part" msgstr "Kopier innledende data fra en annen del" -#: part/serializers.py:948 templates/js/translated/part.js:103 +#: part/serializers.py:1000 templates/js/translated/part.js:103 msgid "Initial Stock" msgstr "Innledende lagerbeholdning" -#: part/serializers.py:949 +#: part/serializers.py:1001 msgid "Create Part with initial stock quantity" msgstr "Lag en del med innledende lagermengde" -#: part/serializers.py:955 +#: part/serializers.py:1007 msgid "Supplier Information" msgstr "Leverandøropplysninger" -#: part/serializers.py:956 +#: part/serializers.py:1008 msgid "Add initial supplier information for this part" msgstr "Legg til innledende leverandørinformasjon for denne delen" -#: part/serializers.py:964 +#: part/serializers.py:1016 msgid "Copy Category Parameters" msgstr "Kopier kategoriparametre" -#: part/serializers.py:965 +#: part/serializers.py:1017 msgid "Copy parameter templates from selected part category" msgstr "Kopier parametermaler fra valgt delkategori" -#: part/serializers.py:970 +#: part/serializers.py:1022 msgid "Existing Image" msgstr "Eksisterende bilde" -#: part/serializers.py:971 +#: part/serializers.py:1023 msgid "Filename of an existing part image" msgstr "Filnavn for et eksisterende del-bilde" -#: part/serializers.py:988 +#: part/serializers.py:1040 msgid "Image file does not exist" msgstr "Bildefilen finnes ikke" -#: part/serializers.py:1194 +#: part/serializers.py:1247 msgid "Limit stocktake report to a particular part, and any variant parts" msgstr "Begrens lagerbeholdningsrapport til en bestemt del og enhver variant av delen" -#: part/serializers.py:1204 +#: part/serializers.py:1257 msgid "Limit stocktake report to a particular part category, and any child categories" msgstr "Begrens lagerbeholdningsrapport til en bestemt delkategori og alle underkategorier" -#: part/serializers.py:1214 +#: part/serializers.py:1267 msgid "Limit stocktake report to a particular stock location, and any child locations" msgstr "Begrens lagerbeholdningsrapport til en bestemt plasering og eventuelle underplasseringer" -#: part/serializers.py:1220 +#: part/serializers.py:1273 msgid "Exclude External Stock" msgstr "Ekskluder ekstern lagerbeholdning" -#: part/serializers.py:1221 +#: part/serializers.py:1274 msgid "Exclude stock items in external locations" msgstr "Ekskluder lagervarer i eksterne lokasjoner" -#: part/serializers.py:1226 +#: part/serializers.py:1279 msgid "Generate Report" msgstr "Generer rapport" -#: part/serializers.py:1227 +#: part/serializers.py:1280 msgid "Generate report file containing calculated stocktake data" msgstr "Genererer rapport som inneholder beregnede lagerdata" -#: part/serializers.py:1232 +#: part/serializers.py:1285 msgid "Update Parts" msgstr "Oppdater deler" -#: part/serializers.py:1233 +#: part/serializers.py:1286 msgid "Update specified parts with calculated stocktake data" msgstr "Oppdater spesifiserte deler med beregnede lagerbeholdningsdata" -#: part/serializers.py:1241 +#: part/serializers.py:1294 msgid "Stocktake functionality is not enabled" msgstr "Lagerbeholdningsfunksjonalitet er ikke aktivert" -#: part/serializers.py:1347 +#: part/serializers.py:1299 +msgid "Background worker check failed" +msgstr "Sjekk av bakgrunnsarbeider mislyktes" + +#: part/serializers.py:1401 msgid "Override calculated value for minimum price" msgstr "Overstyr beregnet verdi for minimumspris" -#: part/serializers.py:1354 +#: part/serializers.py:1408 msgid "Minimum price currency" msgstr "Valuta for minstepris" -#: part/serializers.py:1362 +#: part/serializers.py:1416 msgid "Override calculated value for maximum price" msgstr "Overstyr beregnet verdi for maksimal pris" -#: part/serializers.py:1369 +#: part/serializers.py:1423 msgid "Maximum price currency" msgstr "Valuta for maksimal pris" -#: part/serializers.py:1398 +#: part/serializers.py:1452 msgid "Update" msgstr "Oppdater" -#: part/serializers.py:1399 +#: part/serializers.py:1453 msgid "Update pricing for this part" msgstr "Oppdater priser for denne delen" -#: part/serializers.py:1422 +#: part/serializers.py:1476 #, python-brace-format msgid "Could not convert from provided currencies to {default_currency}" msgstr "Kan ikke konvertere fra gitte valutaer til {default_currency}" -#: part/serializers.py:1429 +#: part/serializers.py:1483 msgid "Minimum price must not be greater than maximum price" msgstr "Minsteprisen kan ikke være større enn maksimal pris" -#: part/serializers.py:1432 +#: part/serializers.py:1486 msgid "Maximum price must not be less than minimum price" msgstr "Maksimal pris kan ikke være mindre enn minstepris" -#: part/serializers.py:1576 +#: part/serializers.py:1634 msgid "Select the parent assembly" msgstr "" -#: part/serializers.py:1585 +#: part/serializers.py:1643 msgid "Component Name" msgstr "" -#: part/serializers.py:1588 +#: part/serializers.py:1646 msgid "Component IPN" msgstr "" -#: part/serializers.py:1591 +#: part/serializers.py:1649 msgid "Component Description" msgstr "" -#: part/serializers.py:1597 +#: part/serializers.py:1655 msgid "Select the component part" msgstr "" -#: part/serializers.py:1606 part/templates/part/part_base.html:235 +#: part/serializers.py:1664 part/templates/part/part_base.html:243 #: templates/js/translated/bom.js:1219 msgid "Can Build" msgstr "Kan Produsere" -#: part/serializers.py:1837 +#: part/serializers.py:1899 msgid "Select part to copy BOM from" msgstr "Velg del å kopiere BOM fra" -#: part/serializers.py:1845 +#: part/serializers.py:1907 msgid "Remove Existing Data" msgstr "Fjern eksisterende data" -#: part/serializers.py:1846 +#: part/serializers.py:1908 msgid "Remove existing BOM items before copying" msgstr "Fjern eksisterende BOM-artikler før kopiering" -#: part/serializers.py:1851 +#: part/serializers.py:1913 msgid "Include Inherited" msgstr "Inkluder arvede" -#: part/serializers.py:1852 +#: part/serializers.py:1914 msgid "Include BOM items which are inherited from templated parts" msgstr "Inkluder BOM-artikler som er arvet fra maldeler" -#: part/serializers.py:1857 +#: part/serializers.py:1919 msgid "Skip Invalid Rows" msgstr "Hopp over ugyldige rader" -#: part/serializers.py:1858 +#: part/serializers.py:1920 msgid "Enable this option to skip invalid rows" msgstr "Aktiver dette alternativet for å hoppe over ugyldige rader" -#: part/serializers.py:1863 +#: part/serializers.py:1925 msgid "Copy Substitute Parts" msgstr "Kopier erstatningsdeler" -#: part/serializers.py:1864 +#: part/serializers.py:1926 msgid "Copy substitute parts when duplicate BOM items" msgstr "Kopier erstatningsdeler når BOM-elementer dupliseres" -#: part/serializers.py:1901 +#: part/serializers.py:1963 msgid "Clear Existing BOM" msgstr "Nullstill eksisterende BOM" -#: part/serializers.py:1902 +#: part/serializers.py:1964 msgid "Delete existing BOM items before uploading" msgstr "Fjern eksisterende BOM-artikler før opplastning" -#: part/serializers.py:1934 +#: part/serializers.py:1996 msgid "No part column specified" msgstr "Ingen del-kolonne angitt" -#: part/serializers.py:1978 +#: part/serializers.py:2040 msgid "Multiple matching parts found" msgstr "Flere samsvarende deler funnet" -#: part/serializers.py:1981 +#: part/serializers.py:2043 msgid "No matching part found" msgstr "Ingen samsvarende del funnet" -#: part/serializers.py:1984 +#: part/serializers.py:2045 msgid "Part is not designated as a component" msgstr "Delen er ikke betegnet som en komponent" -#: part/serializers.py:1993 +#: part/serializers.py:2054 msgid "Quantity not provided" msgstr "Antall ikke oppgitt" -#: part/serializers.py:2001 +#: part/serializers.py:2062 msgid "Invalid quantity" msgstr "Ugyldig antall" -#: part/serializers.py:2024 +#: part/serializers.py:2085 msgid "At least one BOM item is required" msgstr "Minst en BOM-artikkel kreves" #: part/stocktake.py:224 templates/js/translated/part.js:1073 #: templates/js/translated/part.js:1828 templates/js/translated/part.js:1884 -#: templates/js/translated/purchase_order.js:2154 +#: templates/js/translated/purchase_order.js:2138 msgid "Total Quantity" msgstr "Totalt Antall" @@ -7932,9 +8157,9 @@ msgid "Add stocktake information" msgstr "Legg til lagertellingsinformasjon" #: part/templates/part/detail.html:67 part/templates/part/part_sidebar.html:50 -#: stock/admin.py:255 templates/InvenTree/settings/part_stocktake.html:30 +#: stock/admin.py:256 templates/InvenTree/settings/part_stocktake.html:30 #: templates/InvenTree/settings/sidebar.html:53 -#: templates/js/translated/stock.js:2301 users/models.py:204 +#: templates/js/translated/stock.js:2302 users/models.py:204 msgid "Stocktake" msgstr "Lagertelling" @@ -8093,142 +8318,146 @@ msgstr "Velg filformat" msgid "Part List" msgstr "Deleliste" -#: part/templates/part/part_base.html:25 part/templates/part/part_base.html:29 +#: part/templates/part/part_base.html:26 part/templates/part/part_base.html:30 msgid "You are subscribed to notifications for this part" msgstr "Du abonnerer på varsler for denne delen" -#: part/templates/part/part_base.html:33 +#: part/templates/part/part_base.html:34 msgid "Subscribe to notifications for this part" msgstr "Abonner på varsler for denne delen" -#: part/templates/part/part_base.html:52 +#: part/templates/part/part_base.html:53 #: stock/templates/stock/item_base.html:62 -#: stock/templates/stock/location.html:71 templates/js/translated/label.js:136 +#: stock/templates/stock/location.html:72 templates/js/translated/label.js:136 msgid "Print Label" msgstr "Skriv ut etikett" -#: part/templates/part/part_base.html:58 +#: part/templates/part/part_base.html:59 msgid "Show pricing information" msgstr "Vis prisinformasjon" -#: part/templates/part/part_base.html:63 -#: stock/templates/stock/item_base.html:110 -#: stock/templates/stock/location.html:80 +#: part/templates/part/part_base.html:64 +#: stock/templates/stock/item_base.html:107 +#: stock/templates/stock/location.html:81 msgid "Stock actions" msgstr "Lagerhandlinger" -#: part/templates/part/part_base.html:70 +#: part/templates/part/part_base.html:71 msgid "Count part stock" msgstr "Tell delbeholdning" -#: part/templates/part/part_base.html:76 +#: part/templates/part/part_base.html:77 msgid "Transfer part stock" msgstr "Overfør delbeholdning" -#: part/templates/part/part_base.html:91 templates/js/translated/part.js:2299 +#: part/templates/part/part_base.html:92 templates/js/translated/part.js:2299 msgid "Part actions" msgstr "Delhandlinger" -#: part/templates/part/part_base.html:94 +#: part/templates/part/part_base.html:95 msgid "Duplicate part" msgstr "Dupliser del" -#: part/templates/part/part_base.html:97 +#: part/templates/part/part_base.html:98 msgid "Edit part" msgstr "Rediger del" -#: part/templates/part/part_base.html:100 +#: part/templates/part/part_base.html:101 msgid "Delete part" msgstr "Slett del" -#: part/templates/part/part_base.html:119 +#: part/templates/part/part_base.html:120 msgid "Part is a template part (variants can be made from this part)" msgstr "Delen er en maldel (varianter kan lages fra denne delen)" -#: part/templates/part/part_base.html:123 +#: part/templates/part/part_base.html:124 msgid "Part can be assembled from other parts" msgstr "Delen kan sammenstilles fra andre deler" -#: part/templates/part/part_base.html:127 +#: part/templates/part/part_base.html:128 msgid "Part can be used in assemblies" msgstr "Delen kan brukes i sammenstillinger" -#: part/templates/part/part_base.html:131 +#: part/templates/part/part_base.html:132 msgid "Part stock is tracked by serial number" msgstr "Delelager spores via serienummer" -#: part/templates/part/part_base.html:135 +#: part/templates/part/part_base.html:136 msgid "Part can be purchased from external suppliers" msgstr "Delen kan kjøpes fra eksterne leverandører" -#: part/templates/part/part_base.html:139 +#: part/templates/part/part_base.html:140 msgid "Part can be sold to customers" msgstr "Delen kan selges til kunder" -#: part/templates/part/part_base.html:145 +#: part/templates/part/part_base.html:146 msgid "Part is not active" msgstr "Delen er ikke aktiv" -#: part/templates/part/part_base.html:153 +#: part/templates/part/part_base.html:154 msgid "Part is virtual (not a physical part)" msgstr "Delen er virtuall (ikke en fysisk del)" -#: part/templates/part/part_base.html:163 -#: part/templates/part/part_base.html:690 +#: part/templates/part/part_base.html:164 +#: part/templates/part/part_base.html:698 msgid "Show Part Details" msgstr "Vis detaljer for del" #: part/templates/part/part_base.html:218 -#: stock/templates/stock/item_base.html:388 +msgid "Required for Orders" +msgstr "" + +#: part/templates/part/part_base.html:226 +#: stock/templates/stock/item_base.html:385 msgid "Allocated to Build Orders" msgstr "Tildelt til produksjonsordrer" -#: part/templates/part/part_base.html:227 -#: stock/templates/stock/item_base.html:381 +#: part/templates/part/part_base.html:235 +#: stock/templates/stock/item_base.html:378 msgid "Allocated to Sales Orders" msgstr "Tildelt til Salgsordrer" -#: part/templates/part/part_base.html:300 +#: part/templates/part/part_base.html:308 msgid "Minimum stock level" msgstr "Minimalt lagerbeholdningsnivå" -#: part/templates/part/part_base.html:331 templates/js/translated/bom.js:1071 +#: part/templates/part/part_base.html:339 templates/js/translated/bom.js:1071 #: templates/js/translated/part.js:1271 templates/js/translated/part.js:2463 #: templates/js/translated/pricing.js:391 -#: templates/js/translated/pricing.js:1054 +#: templates/js/translated/pricing.js:1052 msgid "Price Range" msgstr "Prisområde" -#: part/templates/part/part_base.html:361 +#: part/templates/part/part_base.html:369 msgid "Latest Serial Number" msgstr "Siste serienummer" -#: part/templates/part/part_base.html:365 -#: stock/templates/stock/item_base.html:322 +#: part/templates/part/part_base.html:373 +#: stock/templates/stock/item_base.html:319 msgid "Search for serial number" msgstr "Søk etter serienummer" -#: part/templates/part/part_base.html:453 +#: part/templates/part/part_base.html:461 msgid "Part QR Code" msgstr "" -#: part/templates/part/part_base.html:470 +#: part/templates/part/part_base.html:478 msgid "Link Barcode to Part" msgstr "" -#: part/templates/part/part_base.html:520 +#: part/templates/part/part_base.html:528 msgid "Calculate" msgstr "" -#: part/templates/part/part_base.html:537 +#: part/templates/part/part_base.html:545 msgid "Remove associated image from this part" msgstr "" -#: part/templates/part/part_base.html:588 +#: part/templates/part/part_base.html:596 msgid "No matching images found" msgstr "" -#: part/templates/part/part_base.html:684 +#: part/templates/part/part_base.html:692 msgid "Hide Part Details" msgstr "" @@ -8282,13 +8511,13 @@ msgid "Variants" msgstr "Varianter" #: part/templates/part/part_sidebar.html:14 -#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:21 +#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:22 #: stock/templates/stock/stock_app_base.html:10 #: templates/InvenTree/search.html:153 #: templates/InvenTree/settings/sidebar.html:51 #: templates/js/translated/part.js:1249 templates/js/translated/part.js:2152 #: templates/js/translated/part.js:2411 templates/js/translated/stock.js:1066 -#: templates/js/translated/stock.js:2155 templates/navbar.html:31 +#: templates/js/translated/stock.js:2156 templates/navbar.html:31 msgid "Stock" msgstr "Lagerbeholdning" @@ -8324,17 +8553,17 @@ msgstr "Overstyr delprising" #: part/templates/part/prices.html:18 #: templates/InvenTree/settings/settings_staff_js.html:80 #: templates/InvenTree/settings/user.html:24 -#: templates/js/translated/helpers.js:103 +#: templates/js/translated/helpers.js:104 #: templates/js/translated/pricing.js:628 templates/notes_buttons.html:3 #: templates/notes_buttons.html:4 msgid "Edit" msgstr "Rediger" -#: part/templates/part/prices.html:28 stock/admin.py:251 -#: stock/templates/stock/item_base.html:446 -#: templates/js/translated/company.js:1703 -#: templates/js/translated/company.js:1713 -#: templates/js/translated/stock.js:2331 +#: part/templates/part/prices.html:28 stock/admin.py:252 +#: stock/templates/stock/item_base.html:443 +#: templates/js/translated/company.js:1704 +#: templates/js/translated/company.js:1714 +#: templates/js/translated/stock.js:2332 msgid "Last Updated" msgstr "Sist oppdatert" @@ -8406,7 +8635,7 @@ msgid "Update Pricing" msgstr "" #: part/templates/part/stock_count.html:7 -#: templates/js/translated/model_renderers.js:228 +#: templates/js/translated/model_renderers.js:231 #: templates/js/translated/part.js:707 templates/js/translated/part.js:2147 #: templates/js/translated/part.js:2149 msgid "No Stock" @@ -8486,7 +8715,7 @@ msgstr "Bilde for del ikke funnet" msgid "Part Pricing" msgstr "Delprising" -#: plugin/api.py:172 +#: plugin/api.py:175 msgid "Plugin cannot be deleted as it is currently active" msgstr "" @@ -8498,78 +8727,85 @@ msgstr "Ingen handling spesifisert" msgid "No matching action found" msgstr "Ingen samsvarende handling funnet" -#: plugin/base/barcodes/api.py:125 plugin/base/barcodes/api.py:371 -#: plugin/base/barcodes/api.py:546 +#: plugin/base/barcodes/api.py:203 msgid "No match found for barcode data" msgstr "Ingen treff funnet for strekkodedata" -#: plugin/base/barcodes/api.py:129 +#: plugin/base/barcodes/api.py:207 msgid "Match found for barcode data" msgstr "Treff funnet for strekkodedata" -#: plugin/base/barcodes/api.py:163 plugin/base/barcodes/serializers.py:45 +#: plugin/base/barcodes/api.py:245 plugin/base/barcodes/serializers.py:72 msgid "Model is not supported" msgstr "" -#: plugin/base/barcodes/api.py:168 +#: plugin/base/barcodes/api.py:250 msgid "Model instance not found" msgstr "" -#: plugin/base/barcodes/api.py:197 -#: templates/js/translated/purchase_order.js:1468 +#: plugin/base/barcodes/api.py:279 +#: templates/js/translated/purchase_order.js:1452 msgid "Barcode matches existing item" msgstr "Strekkode samsvarer med ekisterende element" -#: plugin/base/barcodes/api.py:336 +#: plugin/base/barcodes/api.py:418 msgid "No matching part data found" msgstr "Ingen samsvarende del-data funnet" -#: plugin/base/barcodes/api.py:353 +#: plugin/base/barcodes/api.py:434 msgid "No matching supplier parts found" msgstr "Finner ingen matchende leverandørdeler" -#: plugin/base/barcodes/api.py:357 +#: plugin/base/barcodes/api.py:437 msgid "Multiple matching supplier parts found" msgstr "Flere samsvarende leverandørdeler funnet" -#: plugin/base/barcodes/api.py:381 +#: plugin/base/barcodes/api.py:450 plugin/base/barcodes/api.py:664 +msgid "No matching plugin found for barcode data" +msgstr "" + +#: plugin/base/barcodes/api.py:460 msgid "Matched supplier part" msgstr "Fant leverandørdel" -#: plugin/base/barcodes/api.py:430 +#: plugin/base/barcodes/api.py:525 msgid "Item has already been received" msgstr "Artikkelen er allerede mottatt" -#: plugin/base/barcodes/api.py:467 +#: plugin/base/barcodes/api.py:563 msgid "No match for supplier barcode" msgstr "Ingen treff for leverandørstrekkode" -#: plugin/base/barcodes/api.py:510 +#: plugin/base/barcodes/api.py:612 msgid "Multiple matching line items found" msgstr "Flere samsvarende elementer funnet" -#: plugin/base/barcodes/api.py:513 +#: plugin/base/barcodes/api.py:615 msgid "No matching line item found" msgstr "Ingen samsvarende element funnet" -#: plugin/base/barcodes/api.py:551 plugin/base/barcodes/api.py:558 +#: plugin/base/barcodes/api.py:661 +msgid "No sales order provided" +msgstr "" + +#: plugin/base/barcodes/api.py:670 msgid "Barcode does not match an existing stock item" msgstr "Strekkoden samsvarer ikke med eksisterende lagervare" -#: plugin/base/barcodes/api.py:569 +#: plugin/base/barcodes/api.py:686 msgid "Stock item does not match line item" msgstr "Lagervare samsvarer ikke med linjeelement" -#: plugin/base/barcodes/api.py:593 templates/js/translated/build.js:2780 -#: templates/js/translated/sales_order.js:1953 +#: plugin/base/barcodes/api.py:716 templates/js/translated/build.js:2798 +#: templates/js/translated/sales_order.js:1934 msgid "Insufficient stock available" msgstr "Utilstrekkelig lagerbeholdning" -#: plugin/base/barcodes/api.py:602 +#: plugin/base/barcodes/api.py:729 msgid "Stock item allocated to sales order" msgstr "Lagervaren er tildelt en salgsordre" -#: plugin/base/barcodes/api.py:606 +#: plugin/base/barcodes/api.py:732 msgid "Not enough information" msgstr "Ikke nok informasjon" @@ -8591,75 +8827,75 @@ msgstr "Ingen samsvarende innkjøpsordre for '{order}'" msgid "Purchase order does not match supplier" msgstr "Innkjøpsordre stemmer ikke med leverandør" -#: plugin/base/barcodes/mixins.py:465 +#: plugin/base/barcodes/mixins.py:467 msgid "Failed to find pending line item for supplier part" msgstr "Fant ikke ventende artikkel for leverandørdel" -#: plugin/base/barcodes/mixins.py:496 +#: plugin/base/barcodes/mixins.py:498 msgid "Further information required to receive line item" msgstr "Mer informasjon nødvendig for å motta artikkelen" -#: plugin/base/barcodes/mixins.py:504 +#: plugin/base/barcodes/mixins.py:506 msgid "Received purchase order line item" msgstr "Mottok ordreartikkelen" -#: plugin/base/barcodes/serializers.py:21 +#: plugin/base/barcodes/serializers.py:48 msgid "Scanned barcode data" msgstr "Skannet strekkodedata" -#: plugin/base/barcodes/serializers.py:30 +#: plugin/base/barcodes/serializers.py:57 msgid "Model name to generate barcode for" msgstr "" -#: plugin/base/barcodes/serializers.py:35 +#: plugin/base/barcodes/serializers.py:62 msgid "Primary key of model object to generate barcode for" msgstr "" -#: plugin/base/barcodes/serializers.py:105 +#: plugin/base/barcodes/serializers.py:132 msgid "Purchase Order to allocate items against" msgstr "Innkjøpsordre å tildele artikler mot" -#: plugin/base/barcodes/serializers.py:111 +#: plugin/base/barcodes/serializers.py:138 msgid "Purchase order is not pending" msgstr "Innkjøpsordre er ikke ventende" -#: plugin/base/barcodes/serializers.py:129 +#: plugin/base/barcodes/serializers.py:156 msgid "PurchaseOrder to receive items against" msgstr "Innkjøpsordre å motta artikler mot" -#: plugin/base/barcodes/serializers.py:135 +#: plugin/base/barcodes/serializers.py:162 msgid "Purchase order has not been placed" msgstr "Innkjøpsordren har ikke blitt sendt" -#: plugin/base/barcodes/serializers.py:143 +#: plugin/base/barcodes/serializers.py:170 msgid "Location to receive items into" msgstr "Plassering å motta deler til" -#: plugin/base/barcodes/serializers.py:149 +#: plugin/base/barcodes/serializers.py:176 msgid "Cannot select a structural location" msgstr "Kan ikke velge en strukturell plassering" -#: plugin/base/barcodes/serializers.py:163 +#: plugin/base/barcodes/serializers.py:190 msgid "Sales Order to allocate items against" msgstr "Salgsordre å tildele artikler mot" -#: plugin/base/barcodes/serializers.py:169 +#: plugin/base/barcodes/serializers.py:196 msgid "Sales order is not pending" msgstr "Salgsordre er ikke ventende" -#: plugin/base/barcodes/serializers.py:177 +#: plugin/base/barcodes/serializers.py:204 msgid "Sales order line item to allocate items against" msgstr "Salgsordrelinje å tildele artikler mot" -#: plugin/base/barcodes/serializers.py:184 +#: plugin/base/barcodes/serializers.py:211 msgid "Sales order shipment to allocate items against" msgstr "Salgsordre-forsendelse å tildele artikler mot" -#: plugin/base/barcodes/serializers.py:190 +#: plugin/base/barcodes/serializers.py:217 msgid "Shipment has already been delivered" msgstr "Forsendelsen er allerede levert" -#: plugin/base/barcodes/serializers.py:195 +#: plugin/base/barcodes/serializers.py:222 msgid "Quantity to allocate" msgstr "Antall å tildele" @@ -8679,6 +8915,42 @@ msgstr "" msgid "No items provided to print" msgstr "" +#: plugin/base/ui/serializers.py:30 +msgid "Plugin Name" +msgstr "" + +#: plugin/base/ui/serializers.py:34 +msgid "Feature Type" +msgstr "" + +#: plugin/base/ui/serializers.py:39 +msgid "Feature Label" +msgstr "" + +#: plugin/base/ui/serializers.py:44 +msgid "Feature Title" +msgstr "" + +#: plugin/base/ui/serializers.py:49 +msgid "Feature Description" +msgstr "" + +#: plugin/base/ui/serializers.py:54 +msgid "Feature Icon" +msgstr "" + +#: plugin/base/ui/serializers.py:58 +msgid "Feature Options" +msgstr "" + +#: plugin/base/ui/serializers.py:61 +msgid "Feature Context" +msgstr "" + +#: plugin/base/ui/serializers.py:64 +msgid "Feature Source (javascript)" +msgstr "" + #: plugin/builtin/barcodes/inventree_barcode.py:27 msgid "InvenTree Barcodes" msgstr "InvenTree-strekkoder" @@ -8756,7 +9028,7 @@ msgstr "Slack innkommende webhook" msgid "URL that is used to send messages to a slack channel" msgstr "URL brukt til å sende meldinger til en Slack-kanal" -#: plugin/builtin/integration/core_notifications.py:164 +#: plugin/builtin/integration/core_notifications.py:166 msgid "Open link" msgstr "Åpne lenke" @@ -8794,11 +9066,11 @@ msgstr "" msgid "Provides support for printing using a machine" msgstr "" -#: plugin/builtin/labels/inventree_machine.py:149 +#: plugin/builtin/labels/inventree_machine.py:151 msgid "last used" msgstr "" -#: plugin/builtin/labels/inventree_machine.py:166 +#: plugin/builtin/labels/inventree_machine.py:168 msgid "Options" msgstr "" @@ -8822,7 +9094,7 @@ msgstr "Kantlinjer" msgid "Print a border around each label" msgstr "Skriv ut en kant rundt hver etikett" -#: plugin/builtin/labels/label_sheet.py:47 report/models.py:307 +#: plugin/builtin/labels/label_sheet.py:47 report/models.py:315 msgid "Landscape" msgstr "Liggende" @@ -8894,19 +9166,19 @@ msgstr "Gir støtte for å skanne TME-strekkoder" msgid "The Supplier which acts as 'TME'" msgstr "Leverandøren som fungerer som \"TME\"" -#: plugin/installer.py:194 plugin/installer.py:282 +#: plugin/installer.py:199 plugin/installer.py:282 msgid "Only staff users can administer plugins" msgstr "" -#: plugin/installer.py:197 +#: plugin/installer.py:202 msgid "Plugin installation is disabled" msgstr "" -#: plugin/installer.py:248 +#: plugin/installer.py:246 msgid "Installed plugin successfully" msgstr "Installasjon av utvidelse vellykket" -#: plugin/installer.py:254 +#: plugin/installer.py:251 #, python-brace-format msgid "Installed plugin into {path}" msgstr "Installerte utvidelsen til {path}" @@ -8943,10 +9215,6 @@ msgstr "Konfigurasjon av utvidelse" msgid "Plugin Configurations" msgstr "Konfigurasjon av utvidelser" -#: plugin/models.py:43 users/models.py:100 -msgid "Key" -msgstr "Nøkkel" - #: plugin/models.py:44 msgid "Key of plugin" msgstr "Utvidelsens \"Key\"" @@ -8955,7 +9223,7 @@ msgstr "Utvidelsens \"Key\"" msgid "PluginName of the plugin" msgstr "Navn på utvidelsen" -#: plugin/models.py:59 plugin/serializers.py:90 +#: plugin/models.py:59 plugin/serializers.py:115 msgid "Package Name" msgstr "Pakkenavn" @@ -8984,17 +9252,17 @@ msgstr "Innebygd utvidelse" msgid "Package Plugin" msgstr "" -#: plugin/models.py:220 report/models.py:474 +#: plugin/models.py:259 report/models.py:482 #: templates/InvenTree/settings/plugin_settings.html:9 #: templates/js/translated/plugin.js:51 msgid "Plugin" msgstr "Utvidelse" -#: plugin/models.py:267 +#: plugin/models.py:306 msgid "Method" msgstr "Metode" -#: plugin/plugin.py:270 +#: plugin/plugin.py:275 msgid "No author found" msgstr "Ingen forfatter funnet" @@ -9053,81 +9321,157 @@ msgstr "Eksempel valutakonverterings-utvidelse" msgid "InvenTree Contributors" msgstr "InvenTree-bidragsytere" -#: plugin/serializers.py:81 +#: plugin/samples/integration/user_interface_sample.py:27 +msgid "Enable Part Panels" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:28 +msgid "Enable custom panels for Part views" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:33 +msgid "Enable Purchase Order Panels" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:34 +msgid "Enable custom panels for Purchase Order views" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:39 +msgid "Enable Broken Panels" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:40 +msgid "Enable broken panels for testing" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:45 +msgid "Enable Dynamic Panel" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:46 +msgid "Enable dynamic panels for testing" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:98 +msgid "Part Panel" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:131 +msgid "Broken Dashboard Item" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:133 +msgid "This is a broken dashboard item - it will not render!" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:139 +msgid "Sample Dashboard Item" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:141 +msgid "This is a sample dashboard item. It renders a simple string of HTML content." +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:147 +msgid "Context Dashboard Item" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:161 +msgid "Admin Dashboard Item" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:162 +msgid "This is an admin-only dashboard item." +msgstr "" + +#: plugin/serializers.py:82 +msgid "Source File" +msgstr "" + +#: plugin/serializers.py:83 +msgid "Path to the source file for admin integration" +msgstr "" + +#: plugin/serializers.py:90 +msgid "Optional context data for the admin integration" +msgstr "" + +#: plugin/serializers.py:106 msgid "Source URL" msgstr "Kilde-URL" -#: plugin/serializers.py:83 +#: plugin/serializers.py:108 msgid "Source for the package - this can be a custom registry or a VCS path" msgstr "Kilde for pakken - dette kan være et egendefinert register eller en VCS-sti" -#: plugin/serializers.py:92 +#: plugin/serializers.py:117 msgid "Name for the Plugin Package - can also contain a version indicator" msgstr "Navn på utvidelsespakke – kan også inneholde en versjonsindikator" -#: plugin/serializers.py:99 +#: plugin/serializers.py:124 #: templates/InvenTree/settings/plugin_settings.html:42 #: templates/js/translated/plugin.js:86 msgid "Version" msgstr "Versjon" -#: plugin/serializers.py:101 +#: plugin/serializers.py:126 msgid "Version specifier for the plugin. Leave blank for latest version." msgstr "" -#: plugin/serializers.py:106 +#: plugin/serializers.py:131 msgid "Confirm plugin installation" msgstr "Bekreft installasjon av utvidelse" -#: plugin/serializers.py:108 +#: plugin/serializers.py:133 msgid "This will install this plugin now into the current instance. The instance will go into maintenance." msgstr "Dette vil installere denne utvidelsen nå i gjeldende instans. Instansen vil gå i vedlikehold." -#: plugin/serializers.py:121 +#: plugin/serializers.py:146 msgid "Installation not confirmed" msgstr "Installasjonen ble ikke bekreftet" -#: plugin/serializers.py:123 +#: plugin/serializers.py:148 msgid "Either packagename of URL must be provided" msgstr "Enten pakkenavn eller URL må angis" -#: plugin/serializers.py:161 +#: plugin/serializers.py:184 msgid "Full reload" msgstr "Full omlasting" -#: plugin/serializers.py:162 +#: plugin/serializers.py:185 msgid "Perform a full reload of the plugin registry" msgstr "Utfør en full omlasting av utvidelsesregisteret" -#: plugin/serializers.py:168 +#: plugin/serializers.py:191 msgid "Force reload" msgstr "Tvangsomlasting" -#: plugin/serializers.py:170 +#: plugin/serializers.py:193 msgid "Force a reload of the plugin registry, even if it is already loaded" msgstr "Tving en omlasting av utvidelsesregisteret, selv om det allerede er lastet" -#: plugin/serializers.py:177 +#: plugin/serializers.py:200 msgid "Collect plugins" msgstr "Hent inn utvidelser" -#: plugin/serializers.py:178 +#: plugin/serializers.py:201 msgid "Collect plugins and add them to the registry" msgstr "Hent inn utvidelser og legg dem til i registeret" -#: plugin/serializers.py:205 +#: plugin/serializers.py:228 msgid "Activate Plugin" msgstr "Aktivér utvidelse" -#: plugin/serializers.py:206 +#: plugin/serializers.py:229 msgid "Activate this plugin" msgstr "Aktivér denne utvidelsen" -#: plugin/serializers.py:226 +#: plugin/serializers.py:249 msgid "Delete configuration" msgstr "" -#: plugin/serializers.py:227 +#: plugin/serializers.py:250 msgid "Delete the plugin configuration from the database" msgstr "" @@ -9135,11 +9479,11 @@ msgstr "" msgid "No valid objects provided to template" msgstr "Ingen gyldige objekter angitt for mal" -#: report/api.py:103 report/models.py:438 report/serializers.py:98 -#: report/serializers.py:148 templates/js/translated/purchase_order.js:1817 +#: report/api.py:103 report/models.py:446 report/serializers.py:99 +#: report/serializers.py:149 templates/js/translated/purchase_order.js:1801 #: templates/js/translated/return_order.js:353 -#: templates/js/translated/sales_order.js:887 -#: templates/js/translated/sales_order.js:1047 +#: templates/js/translated/sales_order.js:846 +#: templates/js/translated/sales_order.js:1020 msgid "Items" msgstr "" @@ -9167,7 +9511,11 @@ msgstr "" msgid "Error printing label" msgstr "" -#: report/api.py:375 report/api.py:411 +#: report/api.py:358 +msgid "Report saved at time of printing" +msgstr "" + +#: report/api.py:384 report/api.py:420 #, python-brace-format msgid "Template file '{template}' is missing or does not exist" msgstr "Malfil '{template}' mangler eller eksisterer ikke" @@ -9204,135 +9552,143 @@ msgstr "" msgid "Revision number (auto-increments)" msgstr "" -#: report/models.py:202 +#: report/models.py:168 +msgid "Attach to Model on Print" +msgstr "" + +#: report/models.py:170 +msgid "Save report output as an attachment against linked model instance when printing" +msgstr "" + +#: report/models.py:210 msgid "Filename Pattern" msgstr "Filnavnmønster" -#: report/models.py:203 +#: report/models.py:211 msgid "Pattern for generating filenames" msgstr "" -#: report/models.py:208 +#: report/models.py:216 msgid "Template is enabled" msgstr "" -#: report/models.py:214 +#: report/models.py:222 msgid "Target model type for template" msgstr "" -#: report/models.py:234 +#: report/models.py:242 msgid "Filters" msgstr "Filtre" -#: report/models.py:235 +#: report/models.py:243 msgid "Template query filters (comma-separated list of key=value pairs)" msgstr "" -#: report/models.py:294 report/models.py:361 +#: report/models.py:302 report/models.py:369 msgid "Template file" msgstr "" -#: report/models.py:302 +#: report/models.py:310 msgid "Page size for PDF reports" msgstr "Sidestørrelse for PDF-rapporter" -#: report/models.py:308 +#: report/models.py:316 msgid "Render report in landscape orientation" msgstr "Generer rapport i landskapsorientering" -#: report/models.py:367 +#: report/models.py:375 msgid "Width [mm]" msgstr "Bredde [mm]" -#: report/models.py:368 +#: report/models.py:376 msgid "Label width, specified in mm" msgstr "Etikettbredde, spesifisert i mm" -#: report/models.py:374 +#: report/models.py:382 msgid "Height [mm]" msgstr "Høyde [mm]" -#: report/models.py:375 +#: report/models.py:383 msgid "Label height, specified in mm" msgstr "Etiketthøyde, spesifisert i mm" -#: report/models.py:438 +#: report/models.py:446 msgid "Number of items to process" msgstr "" -#: report/models.py:444 +#: report/models.py:452 msgid "Report generation is complete" msgstr "" -#: report/models.py:448 templates/js/translated/build.js:2349 +#: report/models.py:456 templates/js/translated/build.js:2352 msgid "Progress" msgstr "" -#: report/models.py:448 +#: report/models.py:456 msgid "Report generation progress" msgstr "" -#: report/models.py:456 +#: report/models.py:464 msgid "Report Template" msgstr "" -#: report/models.py:463 report/models.py:486 +#: report/models.py:471 report/models.py:494 msgid "Output File" msgstr "" -#: report/models.py:464 report/models.py:487 +#: report/models.py:472 report/models.py:495 msgid "Generated output file" msgstr "" -#: report/models.py:475 +#: report/models.py:483 msgid "Label output plugin" msgstr "" -#: report/models.py:479 +#: report/models.py:487 msgid "Label Template" msgstr "" -#: report/models.py:502 +#: report/models.py:510 msgid "Snippet" msgstr "Snutt" -#: report/models.py:503 +#: report/models.py:511 msgid "Report snippet file" msgstr "Rapportsnuttfil" -#: report/models.py:510 +#: report/models.py:518 msgid "Snippet file description" msgstr "Filbeskrivelse for snutt" -#: report/models.py:528 +#: report/models.py:536 msgid "Asset" msgstr "Ressurs" -#: report/models.py:529 +#: report/models.py:537 msgid "Report asset file" msgstr "Rapportressursfil" -#: report/models.py:536 +#: report/models.py:544 msgid "Asset file description" msgstr "Ressursfilbeskrivelse" -#: report/serializers.py:91 +#: report/serializers.py:92 msgid "Select report template" msgstr "" -#: report/serializers.py:99 report/serializers.py:149 +#: report/serializers.py:100 report/serializers.py:150 msgid "List of item primary keys to include in the report" msgstr "" -#: report/serializers.py:132 +#: report/serializers.py:133 msgid "Select label template" msgstr "" -#: report/serializers.py:140 +#: report/serializers.py:141 msgid "Printing Plugin" msgstr "" -#: report/serializers.py:141 +#: report/serializers.py:142 msgid "Select plugin to use for label printing" msgstr "" @@ -9365,9 +9721,9 @@ msgstr "Leverandør ble slettet" #: report/templates/report/inventree_sales_order_report.html:30 #: templates/js/translated/order.js:341 templates/js/translated/pricing.js:527 #: templates/js/translated/pricing.js:596 -#: templates/js/translated/pricing.js:834 -#: templates/js/translated/purchase_order.js:2185 -#: templates/js/translated/sales_order.js:1873 +#: templates/js/translated/pricing.js:832 +#: templates/js/translated/purchase_order.js:2169 +#: templates/js/translated/sales_order.js:1854 msgid "Unit Price" msgstr "Enhetspris" @@ -9379,13 +9735,18 @@ msgstr "Ekstra linjeelementer" #: report/templates/report/inventree_purchase_order_report.html:72 #: report/templates/report/inventree_sales_order_report.html:72 -#: templates/js/translated/purchase_order.js:2087 -#: templates/js/translated/sales_order.js:1842 +#: templates/js/translated/purchase_order.js:2071 +#: templates/js/translated/sales_order.js:1823 #: templates/test_statistics_table.html:8 #: templates/test_statistics_table.html:19 msgid "Total" msgstr "" +#: report/templates/report/inventree_sales_order_shipment_report.html:23 +#: stock/templates/stock/stock_sidebar.html:8 +msgid "Allocations" +msgstr "Tildelinger" + #: report/templates/report/inventree_stock_location_report.html:97 msgid "Stock location items" msgstr "Artikler ved lagerplassering" @@ -9403,15 +9764,13 @@ msgstr "Testresultater" msgid "Test" msgstr "" -#: report/templates/report/inventree_test_report.html:103 stock/models.py:2544 -msgid "Result" -msgstr "Resultat" - #: report/templates/report/inventree_test_report.html:129 +#: templates/js/translated/stock.js:1448 msgid "Pass" msgstr "Bestått" #: report/templates/report/inventree_test_report.html:131 +#: templates/js/translated/stock.js:1450 msgid "Fail" msgstr "Mislykket" @@ -9420,17 +9779,18 @@ msgid "No result (required)" msgstr "Ingen resultat (obligatorisk)" #: report/templates/report/inventree_test_report.html:140 +#: templates/js/translated/stock.js:1455 msgid "No result" msgstr "Ingen resultat" #: report/templates/report/inventree_test_report.html:153 -#: stock/serializers.py:599 stock/templates/stock/stock_sidebar.html:16 +#: stock/serializers.py:626 stock/templates/stock/stock_sidebar.html:16 msgid "Installed Items" msgstr "Installerte artikler" -#: report/templates/report/inventree_test_report.html:167 stock/admin.py:161 +#: report/templates/report/inventree_test_report.html:167 stock/admin.py:162 #: templates/js/translated/stock.js:706 templates/js/translated/stock.js:877 -#: templates/js/translated/stock.js:3194 +#: templates/js/translated/stock.js:3195 msgid "Serial" msgstr "Serienummer" @@ -9450,67 +9810,67 @@ msgstr "part_image-taggen krever en Part-instans" msgid "company_image tag requires a Company instance" msgstr "company_image-taggen krever en Company-instans" -#: stock/admin.py:51 stock/admin.py:171 +#: stock/admin.py:51 stock/admin.py:172 msgid "Location ID" msgstr "Plasserings-ID" -#: stock/admin.py:63 stock/templates/stock/location.html:128 -#: stock/templates/stock/location.html:134 +#: stock/admin.py:63 stock/templates/stock/location.html:129 +#: stock/templates/stock/location.html:135 msgid "Location Path" msgstr "Plasserings-sti" -#: stock/admin.py:148 +#: stock/admin.py:149 msgid "Stock Item ID" msgstr "Lagervare-ID" -#: stock/admin.py:167 +#: stock/admin.py:168 msgid "Status Code" msgstr "Statuskode" -#: stock/admin.py:179 +#: stock/admin.py:180 msgid "Supplier Part ID" msgstr "Leverandørdel-ID" -#: stock/admin.py:184 +#: stock/admin.py:185 msgid "Supplier Part SKU" msgstr "" -#: stock/admin.py:189 +#: stock/admin.py:190 msgid "Supplier ID" msgstr "Leverandør-ID" -#: stock/admin.py:200 +#: stock/admin.py:201 msgid "Customer ID" msgstr "Kunde-ID" -#: stock/admin.py:205 stock/models.py:825 -#: stock/templates/stock/item_base.html:354 +#: stock/admin.py:206 stock/models.py:902 +#: stock/templates/stock/item_base.html:351 msgid "Installed In" msgstr "Installert i" -#: stock/admin.py:210 +#: stock/admin.py:211 msgid "Build ID" msgstr "Produksjons-ID" -#: stock/admin.py:220 +#: stock/admin.py:221 msgid "Sales Order ID" msgstr "Salgsordre-ID" -#: stock/admin.py:225 +#: stock/admin.py:226 msgid "Purchase Order ID" msgstr "Innkjøpsordre-ID" -#: stock/admin.py:240 +#: stock/admin.py:241 msgid "Review Needed" msgstr "Gjennomgang kreves" -#: stock/admin.py:245 +#: stock/admin.py:246 msgid "Delete on Deplete" msgstr "Slett når oppbrukt" -#: stock/admin.py:260 stock/models.py:919 -#: stock/templates/stock/item_base.html:433 -#: templates/js/translated/stock.js:2315 users/models.py:124 +#: stock/admin.py:261 stock/models.py:996 +#: stock/templates/stock/item_base.html:430 +#: templates/js/translated/stock.js:2316 users/models.py:124 msgid "Expiry Date" msgstr "Utløpsdato" @@ -9526,11 +9886,11 @@ msgstr "" msgid "Include sub-locations in filtered results" msgstr "" -#: stock/api.py:367 stock/serializers.py:1186 +#: stock/api.py:366 stock/serializers.py:1217 msgid "Parent Location" msgstr "" -#: stock/api.py:368 +#: stock/api.py:367 msgid "Filter by parent location" msgstr "" @@ -9550,8 +9910,8 @@ msgstr "Utløpsdato før" msgid "Expiry date after" msgstr "Utløpsdato etter" -#: stock/api.py:840 stock/serializers.py:604 -#: stock/templates/stock/item_base.html:439 +#: stock/api.py:840 stock/serializers.py:631 +#: stock/templates/stock/item_base.html:436 #: templates/js/translated/table_filters.js:448 msgid "Stale" msgstr "Foreldet" @@ -9560,594 +9920,598 @@ msgstr "Foreldet" msgid "Quantity is required" msgstr "Antall kreves" -#: stock/api.py:933 +#: stock/api.py:932 msgid "Valid part must be supplied" msgstr "Gyldig del må oppgis" -#: stock/api.py:964 +#: stock/api.py:959 msgid "The given supplier part does not exist" msgstr "Oppgitt leverandørdel eksisterer ikke" -#: stock/api.py:974 +#: stock/api.py:969 msgid "The supplier part has a pack size defined, but flag use_pack_size not set" msgstr "Leverandørdelen har en pakkestørrelse definert, men flagget \"use_pack_size\" er ikke satt" -#: stock/api.py:1005 +#: stock/api.py:996 msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "Serienumre kan ikke angis for en ikke-sporbar del" -#: stock/models.py:64 +#: stock/models.py:70 msgid "Stock Location type" msgstr "Lagerplasseringstype" -#: stock/models.py:65 +#: stock/models.py:71 msgid "Stock Location types" msgstr "Lagerplasseringstyper" -#: stock/models.py:91 +#: stock/models.py:97 msgid "Default icon for all locations that have no icon set (optional)" msgstr "Standard ikom for alle plasseringer som ikke har satt et ikon (valgfritt)" -#: stock/models.py:131 stock/models.py:807 -#: stock/templates/stock/location.html:17 +#: stock/models.py:137 stock/models.py:884 +#: stock/templates/stock/location.html:18 #: stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "Lagerplassering" -#: stock/models.py:132 stock/templates/stock/location.html:183 +#: stock/models.py:138 stock/templates/stock/location.html:184 #: templates/InvenTree/search.html:166 templates/js/translated/search.js:178 #: users/models.py:205 msgid "Stock Locations" msgstr "Lagerplasseringer" -#: stock/models.py:180 stock/models.py:968 -#: stock/templates/stock/item_base.html:247 +#: stock/models.py:186 stock/models.py:1045 +#: stock/templates/stock/item_base.html:244 msgid "Owner" msgstr "Eier" -#: stock/models.py:181 stock/models.py:969 +#: stock/models.py:187 stock/models.py:1046 msgid "Select Owner" msgstr "Velg eier" -#: stock/models.py:189 +#: stock/models.py:195 msgid "Stock items may not be directly located into a structural stock locations, but may be located to child locations." msgstr "Lagervarer kan ikke knyttes direkte mot en strukturell lagerplassering, men kan knyttes mot underplasseringer." -#: stock/models.py:196 templates/js/translated/stock.js:2865 +#: stock/models.py:202 templates/js/translated/stock.js:2866 #: templates/js/translated/table_filters.js:250 msgid "External" msgstr "Ekstern" -#: stock/models.py:197 +#: stock/models.py:203 msgid "This is an external stock location" msgstr "Dette er en ekstern lagerplassering" -#: stock/models.py:203 templates/js/translated/stock.js:2874 +#: stock/models.py:209 templates/js/translated/stock.js:2875 #: templates/js/translated/table_filters.js:253 msgid "Location type" msgstr "Plasseringstype" -#: stock/models.py:207 +#: stock/models.py:213 msgid "Stock location type of this location" msgstr "Lagerplasseringstype for denne plasseringen" -#: stock/models.py:279 +#: stock/models.py:285 msgid "You cannot make this stock location structural because some stock items are already located into it!" msgstr "De kan ikke gjøre denne plasseringen strukturell, da noen lagervarer allerede er plassert i den!" -#: stock/models.py:664 +#: stock/models.py:492 +msgid "Part must be specified" +msgstr "" + +#: stock/models.py:741 msgid "Stock items cannot be located into structural stock locations!" msgstr "Lagervarer kan ikke plasseres i strukturelle plasseringer!" -#: stock/models.py:691 stock/serializers.py:480 +#: stock/models.py:768 stock/serializers.py:492 msgid "Stock item cannot be created for virtual parts" msgstr "Lagervare kan ikke opprettes for virtuelle deler" -#: stock/models.py:708 +#: stock/models.py:785 #, python-brace-format msgid "Part type ('{self.supplier_part.part}') must be {self.part}" msgstr "Deltype ('{self.supplier_part.part}') må være {self.part}" -#: stock/models.py:718 stock/models.py:731 +#: stock/models.py:795 stock/models.py:808 msgid "Quantity must be 1 for item with a serial number" msgstr "Antall må være 1 for produkt med et serienummer" -#: stock/models.py:721 +#: stock/models.py:798 msgid "Serial number cannot be set if quantity greater than 1" msgstr "Serienummeret kan ikke angis hvis antall er større enn 1" -#: stock/models.py:743 +#: stock/models.py:820 msgid "Item cannot belong to itself" msgstr "Elementet kan ikke tilhøre seg selv" -#: stock/models.py:748 +#: stock/models.py:825 msgid "Item must have a build reference if is_building=True" msgstr "Elementet må ha en produksjonsrefereanse om is_building=True" -#: stock/models.py:761 +#: stock/models.py:838 msgid "Build reference does not point to the same part object" msgstr "Produksjonsreferanse peker ikke til samme del-objekt" -#: stock/models.py:777 +#: stock/models.py:854 msgid "Parent Stock Item" msgstr "Overordnet lagervare" -#: stock/models.py:789 +#: stock/models.py:866 msgid "Base part" msgstr "Basisdel" -#: stock/models.py:799 +#: stock/models.py:876 msgid "Select a matching supplier part for this stock item" msgstr "Velg en tilsvarende leverandørdel for denne lagervaren" -#: stock/models.py:811 +#: stock/models.py:888 msgid "Where is this stock item located?" msgstr "Hvor er denne lagervaren plassert?" -#: stock/models.py:819 stock/serializers.py:1580 +#: stock/models.py:896 stock/serializers.py:1611 msgid "Packaging this stock item is stored in" msgstr "Inpakningen denne lagervaren er lagret i" -#: stock/models.py:830 +#: stock/models.py:907 msgid "Is this item installed in another item?" msgstr "Er denne artikkelen montert i en annen artikkel?" -#: stock/models.py:849 +#: stock/models.py:926 msgid "Serial number for this item" msgstr "Serienummer for denne artikkelen" -#: stock/models.py:863 stock/serializers.py:1563 +#: stock/models.py:940 stock/serializers.py:1594 msgid "Batch code for this stock item" msgstr "Batchkode for denne lagervaren" -#: stock/models.py:868 +#: stock/models.py:945 msgid "Stock Quantity" msgstr "Lagerantall" -#: stock/models.py:878 +#: stock/models.py:955 msgid "Source Build" msgstr "Kildeproduksjon" -#: stock/models.py:881 +#: stock/models.py:958 msgid "Build for this stock item" msgstr "Produksjon for denne lagervaren" -#: stock/models.py:888 stock/templates/stock/item_base.html:363 +#: stock/models.py:965 stock/templates/stock/item_base.html:360 msgid "Consumed By" msgstr "Brukt av" -#: stock/models.py:891 +#: stock/models.py:968 msgid "Build order which consumed this stock item" msgstr "Produksjonsordren som brukte denne lagervaren" -#: stock/models.py:900 +#: stock/models.py:977 msgid "Source Purchase Order" msgstr "Kildeinnkjøpsordre" -#: stock/models.py:904 +#: stock/models.py:981 msgid "Purchase order for this stock item" msgstr "Innkjøpsordre for denne lagervaren" -#: stock/models.py:910 +#: stock/models.py:987 msgid "Destination Sales Order" msgstr "Tildelt Salgsordre" -#: stock/models.py:921 +#: stock/models.py:998 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "Utløpsdato for lagervare. Lagerbeholdning vil bli ansett som utløpt etter denne datoen" -#: stock/models.py:939 +#: stock/models.py:1016 msgid "Delete on deplete" msgstr "Slett når oppbrukt" -#: stock/models.py:940 +#: stock/models.py:1017 msgid "Delete this Stock Item when stock is depleted" msgstr "Slett lagervaren når beholdningen er oppbrukt" -#: stock/models.py:960 +#: stock/models.py:1037 msgid "Single unit purchase price at time of purchase" msgstr "Innkjøpspris per enhet på kjøpstidspunktet" -#: stock/models.py:991 +#: stock/models.py:1068 msgid "Converted to part" msgstr "Konvertert til del" -#: stock/models.py:1511 +#: stock/models.py:1600 msgid "Part is not set as trackable" msgstr "Delen er ikke angitt som sporbar" -#: stock/models.py:1517 +#: stock/models.py:1606 msgid "Quantity must be integer" msgstr "Antall må være heltall" -#: stock/models.py:1525 +#: stock/models.py:1614 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({self.quantity})" msgstr "Antall kan ikke overstige tilgjengelig lagerbeholdning ({self.quantity})" -#: stock/models.py:1531 -msgid "Serial numbers must be a list of integers" -msgstr "Serienumre må være en liste over tall" +#: stock/models.py:1620 +msgid "Serial numbers must be provided as a list" +msgstr "" -#: stock/models.py:1536 +#: stock/models.py:1625 msgid "Quantity does not match serial numbers" msgstr "Antallet stemmer ikke overens med serienumrene" -#: stock/models.py:1544 stock/serializers.py:726 -msgid "Serial numbers already exist" -msgstr "Seriernummer eksisterer allerede" - -#: stock/models.py:1641 +#: stock/models.py:1747 stock/models.py:2563 msgid "Test template does not exist" msgstr "" -#: stock/models.py:1659 +#: stock/models.py:1765 msgid "Stock item has been assigned to a sales order" msgstr "Lagervare har blitt tildelt en salgsordre" -#: stock/models.py:1663 +#: stock/models.py:1769 msgid "Stock item is installed in another item" msgstr "Lagervare er montert i en annen artikkel" -#: stock/models.py:1666 +#: stock/models.py:1772 msgid "Stock item contains other items" msgstr "Lagervare inneholder andre artikler" -#: stock/models.py:1669 +#: stock/models.py:1775 msgid "Stock item has been assigned to a customer" msgstr "Lagervare har blitt tildelt til en kunde" -#: stock/models.py:1672 +#: stock/models.py:1778 msgid "Stock item is currently in production" msgstr "Lagervare er for tiden i produksjon" -#: stock/models.py:1675 +#: stock/models.py:1781 msgid "Serialized stock cannot be merged" msgstr "Serialisert lagerbeholdning kan ikke slås sammen" -#: stock/models.py:1682 stock/serializers.py:1469 +#: stock/models.py:1788 stock/serializers.py:1500 msgid "Duplicate stock items" msgstr "Duplisert lagervare" -#: stock/models.py:1686 +#: stock/models.py:1792 msgid "Stock items must refer to the same part" msgstr "Lagervarer må referere til samme del" -#: stock/models.py:1694 +#: stock/models.py:1800 msgid "Stock items must refer to the same supplier part" msgstr "Lagervarer må referere til samme leverandørdel" -#: stock/models.py:1699 +#: stock/models.py:1805 msgid "Stock status codes must match" msgstr "Lagerstatuskoder må være like" -#: stock/models.py:1960 +#: stock/models.py:2066 msgid "StockItem cannot be moved as it is not in stock" msgstr "Lagervare kan ikke flyttes fordi den ikke er på lager" -#: stock/models.py:2343 +#: stock/models.py:2462 msgid "Stock Item Tracking" msgstr "" -#: stock/models.py:2376 +#: stock/models.py:2495 msgid "Entry notes" msgstr "Oppføringsnotater" -#: stock/models.py:2416 +#: stock/models.py:2535 msgid "Stock Item Test Result" msgstr "" -#: stock/models.py:2449 +#: stock/models.py:2566 msgid "Value must be provided for this test" msgstr "Verdi må angis for denne testen" -#: stock/models.py:2454 +#: stock/models.py:2570 msgid "Attachment must be uploaded for this test" msgstr "Vedlegg må lastes opp for denne testen" -#: stock/models.py:2459 +#: stock/models.py:2575 msgid "Invalid value for this test" msgstr "" -#: stock/models.py:2544 +#: stock/models.py:2660 msgid "Test result" msgstr "Testresultat" -#: stock/models.py:2551 +#: stock/models.py:2667 msgid "Test output value" msgstr "Testens verdi" -#: stock/models.py:2559 +#: stock/models.py:2675 stock/serializers.py:245 msgid "Test result attachment" msgstr "Vedlegg til testresultat" -#: stock/models.py:2563 +#: stock/models.py:2679 msgid "Test notes" msgstr "Testnotater" -#: stock/models.py:2571 templates/js/translated/stock.js:1633 +#: stock/models.py:2687 templates/js/translated/stock.js:1633 msgid "Test station" msgstr "" -#: stock/models.py:2572 +#: stock/models.py:2688 msgid "The identifier of the test station where the test was performed" msgstr "" -#: stock/models.py:2578 +#: stock/models.py:2694 msgid "Started" msgstr "" -#: stock/models.py:2579 +#: stock/models.py:2695 msgid "The timestamp of the test start" msgstr "" -#: stock/models.py:2585 +#: stock/models.py:2701 msgid "Finished" msgstr "" -#: stock/models.py:2586 +#: stock/models.py:2702 msgid "The timestamp of the test finish" msgstr "" -#: stock/serializers.py:76 +#: stock/serializers.py:77 msgid "Generated batch code" msgstr "" -#: stock/serializers.py:85 +#: stock/serializers.py:86 msgid "Select build order" msgstr "" -#: stock/serializers.py:94 +#: stock/serializers.py:95 msgid "Select stock item to generate batch code for" msgstr "" -#: stock/serializers.py:103 +#: stock/serializers.py:104 msgid "Select location to generate batch code for" msgstr "" -#: stock/serializers.py:112 +#: stock/serializers.py:113 msgid "Select part to generate batch code for" msgstr "" -#: stock/serializers.py:121 +#: stock/serializers.py:122 msgid "Select purchase order" msgstr "" -#: stock/serializers.py:128 +#: stock/serializers.py:129 msgid "Enter quantity for batch code" msgstr "" -#: stock/serializers.py:151 +#: stock/serializers.py:152 msgid "Generated serial number" msgstr "" -#: stock/serializers.py:160 +#: stock/serializers.py:161 msgid "Select part to generate serial number for" msgstr "" -#: stock/serializers.py:168 +#: stock/serializers.py:169 msgid "Quantity of serial numbers to generate" msgstr "" -#: stock/serializers.py:233 +#: stock/serializers.py:234 msgid "Test template for this result" msgstr "" -#: stock/serializers.py:254 +#: stock/serializers.py:258 msgid "Template ID or test name must be provided" msgstr "" -#: stock/serializers.py:286 +#: stock/serializers.py:290 msgid "The test finished time cannot be earlier than the test started time" msgstr "" -#: stock/serializers.py:323 +#: stock/serializers.py:327 msgid "Serial number is too large" msgstr "Serienummeret er for høyt" -#: stock/serializers.py:452 stock/templates/stock/item_base.html:193 +#: stock/serializers.py:462 stock/templates/stock/item_base.html:190 msgid "Parent Item" msgstr "Overodnet element" -#: stock/serializers.py:453 +#: stock/serializers.py:463 msgid "Parent stock item" msgstr "" -#: stock/serializers.py:472 +#: stock/serializers.py:484 msgid "Use pack size when adding: the quantity defined is the number of packs" msgstr "Bruk pakningsstørrelse når du legger til: antall definert er antall pakker" -#: stock/serializers.py:596 stock/templates/stock/item_base.html:437 +#: stock/serializers.py:623 stock/templates/stock/item_base.html:434 #: templates/js/translated/table_filters.js:442 users/models.py:174 msgid "Expired" msgstr "Utløpt" -#: stock/serializers.py:602 stock/templates/stock/stock_sidebar.html:20 +#: stock/serializers.py:629 stock/templates/stock/stock_sidebar.html:20 msgid "Child Items" msgstr "Underordnede artikler" -#: stock/serializers.py:606 +#: stock/serializers.py:633 msgid "Tracking Items" msgstr "" -#: stock/serializers.py:612 +#: stock/serializers.py:639 msgid "Purchase price of this stock item, per unit or pack" msgstr "Innkjøpspris for denne lagervaren, per enhet eller forpakning" -#: stock/serializers.py:631 +#: stock/serializers.py:658 msgid "Minimum Pricing" msgstr "" -#: stock/serializers.py:637 +#: stock/serializers.py:664 msgid "Maximum Pricing" msgstr "" -#: stock/serializers.py:661 +#: stock/serializers.py:688 msgid "Enter number of stock items to serialize" msgstr "Angi antall lagervarer som skal serialiseres" -#: stock/serializers.py:674 +#: stock/serializers.py:701 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({q})" msgstr "Antall kan ikke overstige tilgjengelig lagerbeholdning ({q})" -#: stock/serializers.py:681 +#: stock/serializers.py:708 msgid "Enter serial numbers for new items" msgstr "Angi serienummer for nye artikler" -#: stock/serializers.py:692 stock/serializers.py:1426 stock/serializers.py:1682 +#: stock/serializers.py:719 stock/serializers.py:1457 stock/serializers.py:1713 msgid "Destination stock location" msgstr "Til Lagerplassering" -#: stock/serializers.py:699 +#: stock/serializers.py:726 msgid "Optional note field" msgstr "Valgfritt notatfelt" -#: stock/serializers.py:709 +#: stock/serializers.py:736 msgid "Serial numbers cannot be assigned to this part" msgstr "Serienummer kan ikke tilordnes denne delen" -#: stock/serializers.py:764 +#: stock/serializers.py:756 +msgid "Serial numbers already exist" +msgstr "Seriernummer eksisterer allerede" + +#: stock/serializers.py:795 msgid "Select stock item to install" msgstr "Velg lagervare å montere" -#: stock/serializers.py:771 +#: stock/serializers.py:802 msgid "Quantity to Install" msgstr "Antall å installere" -#: stock/serializers.py:772 +#: stock/serializers.py:803 msgid "Enter the quantity of items to install" msgstr "Angi antallet elementer som skal installeres" -#: stock/serializers.py:777 stock/serializers.py:857 stock/serializers.py:983 -#: stock/serializers.py:1033 +#: stock/serializers.py:808 stock/serializers.py:888 stock/serializers.py:1014 +#: stock/serializers.py:1064 msgid "Add transaction note (optional)" msgstr "Legg til transaksjonsnotat (valgfritt)" -#: stock/serializers.py:785 +#: stock/serializers.py:816 msgid "Quantity to install must be at least 1" msgstr "Antall å installere må være minst 1" -#: stock/serializers.py:793 +#: stock/serializers.py:824 msgid "Stock item is unavailable" msgstr "Lagervaren er utilgjengelig" -#: stock/serializers.py:804 +#: stock/serializers.py:835 msgid "Selected part is not in the Bill of Materials" msgstr "Valgt del er ikke i stykklisten" -#: stock/serializers.py:817 +#: stock/serializers.py:848 msgid "Quantity to install must not exceed available quantity" msgstr "Antall å installere må ikke overskride tilgjengelig antall" -#: stock/serializers.py:852 +#: stock/serializers.py:883 msgid "Destination location for uninstalled item" msgstr "Lagerplassering for den avinstallerte artikkelen" -#: stock/serializers.py:903 +#: stock/serializers.py:934 msgid "Unsupported statistic type: " msgstr "" -#: stock/serializers.py:917 +#: stock/serializers.py:948 msgid "Select part to convert stock item into" msgstr "Velg del å konvertere lagervare til" -#: stock/serializers.py:930 +#: stock/serializers.py:961 msgid "Selected part is not a valid option for conversion" msgstr "Valgt del er ikke et gyldig alternativ for konvertering" -#: stock/serializers.py:947 +#: stock/serializers.py:978 msgid "Cannot convert stock item with assigned SupplierPart" msgstr "Kan ikke konvertere lagerprodukt med tildelt leverandørdel" -#: stock/serializers.py:978 +#: stock/serializers.py:1009 msgid "Destination location for returned item" msgstr "Lagerplassering for returnert artikkel" -#: stock/serializers.py:1015 +#: stock/serializers.py:1046 msgid "Select stock items to change status" msgstr "Velg lagervarer for å endre status" -#: stock/serializers.py:1021 +#: stock/serializers.py:1052 msgid "No stock items selected" msgstr "Ingen lagervarer valgt" -#: stock/serializers.py:1117 stock/serializers.py:1194 -#: stock/templates/stock/location.html:162 -#: stock/templates/stock/location.html:219 +#: stock/serializers.py:1148 stock/serializers.py:1225 +#: stock/templates/stock/location.html:163 +#: stock/templates/stock/location.html:220 #: stock/templates/stock/location_sidebar.html:5 msgid "Sublocations" msgstr "Underplasseringer" -#: stock/serializers.py:1187 templates/js/translated/stock.js:160 +#: stock/serializers.py:1218 templates/js/translated/stock.js:160 msgid "Parent stock location" msgstr "" -#: stock/serializers.py:1298 +#: stock/serializers.py:1329 msgid "Part must be salable" msgstr "Delen må være salgbar" -#: stock/serializers.py:1302 +#: stock/serializers.py:1333 msgid "Item is allocated to a sales order" msgstr "Artikkelen er tildelt en salgsordre" -#: stock/serializers.py:1306 +#: stock/serializers.py:1337 msgid "Item is allocated to a build order" msgstr "Artikkelen er tildelt en produksjonsordre" -#: stock/serializers.py:1330 +#: stock/serializers.py:1361 msgid "Customer to assign stock items" msgstr "Kunde å tilordne lagervarer" -#: stock/serializers.py:1336 +#: stock/serializers.py:1367 msgid "Selected company is not a customer" msgstr "Valgt firma er ikke en kunde" -#: stock/serializers.py:1344 +#: stock/serializers.py:1375 msgid "Stock assignment notes" msgstr "Lagervare-tildelignsnotater" -#: stock/serializers.py:1354 stock/serializers.py:1608 +#: stock/serializers.py:1385 stock/serializers.py:1639 msgid "A list of stock items must be provided" msgstr "En liste av lagervarer må oppgis" -#: stock/serializers.py:1433 +#: stock/serializers.py:1464 msgid "Stock merging notes" msgstr "Notater om lagersammenslåing" -#: stock/serializers.py:1438 +#: stock/serializers.py:1469 msgid "Allow mismatched suppliers" msgstr "Tillat forskjellige leverandører" -#: stock/serializers.py:1439 +#: stock/serializers.py:1470 msgid "Allow stock items with different supplier parts to be merged" msgstr "Tillat lagervarer med forskjellige leverandørdeler å slås sammen" -#: stock/serializers.py:1444 +#: stock/serializers.py:1475 msgid "Allow mismatched status" msgstr "Tillat forskjellig status" -#: stock/serializers.py:1445 +#: stock/serializers.py:1476 msgid "Allow stock items with different status codes to be merged" msgstr "Tillat lagervarer med forskjellige statuskoder å slås sammen" -#: stock/serializers.py:1455 +#: stock/serializers.py:1486 msgid "At least two stock items must be provided" msgstr "Minst to lagervarer må oppgis" -#: stock/serializers.py:1522 +#: stock/serializers.py:1553 msgid "No Change" msgstr "" -#: stock/serializers.py:1551 +#: stock/serializers.py:1582 msgid "StockItem primary key value" msgstr "Lagervare primærnøkkel verdi" -#: stock/serializers.py:1570 +#: stock/serializers.py:1601 msgid "Stock item status code" msgstr "Lagervare statuskode" -#: stock/serializers.py:1598 +#: stock/serializers.py:1629 msgid "Stock transaction notes" msgstr "Lager transaksjonsnotater" @@ -10175,107 +10539,107 @@ msgstr "Avvist" msgid "Quarantined" msgstr "I Karantene" -#: stock/status_codes.py:40 +#: stock/status_codes.py:44 msgid "Legacy stock tracking entry" msgstr "Gammel lagervare sporingsoppføring" -#: stock/status_codes.py:42 templates/js/translated/stock.js:550 +#: stock/status_codes.py:46 templates/js/translated/stock.js:550 msgid "Stock item created" msgstr "Lagevare opprettet" -#: stock/status_codes.py:45 +#: stock/status_codes.py:49 msgid "Edited stock item" msgstr "Redigerte lagervare" -#: stock/status_codes.py:46 +#: stock/status_codes.py:50 msgid "Assigned serial number" msgstr "Tildelte serienummer" -#: stock/status_codes.py:49 +#: stock/status_codes.py:53 msgid "Stock counted" msgstr "Lager opptelt" -#: stock/status_codes.py:50 +#: stock/status_codes.py:54 msgid "Stock manually added" msgstr "Lagerbeholdning manuelt lagt til" -#: stock/status_codes.py:51 +#: stock/status_codes.py:55 msgid "Stock manually removed" msgstr "Lagerbeholdning manuelt fjernet" -#: stock/status_codes.py:54 +#: stock/status_codes.py:58 msgid "Location changed" msgstr "Posisjon endret" -#: stock/status_codes.py:55 +#: stock/status_codes.py:59 msgid "Stock updated" msgstr "Lagerbeholdning oppdatert" -#: stock/status_codes.py:58 +#: stock/status_codes.py:62 msgid "Installed into assembly" msgstr "Montert i sammenstilling" -#: stock/status_codes.py:59 +#: stock/status_codes.py:63 msgid "Removed from assembly" msgstr "Fjernet fra sammenstilling" -#: stock/status_codes.py:61 +#: stock/status_codes.py:65 msgid "Installed component item" msgstr "Montert komponentartikkel" -#: stock/status_codes.py:62 +#: stock/status_codes.py:66 msgid "Removed component item" msgstr "Fjernet komponentartikkel" -#: stock/status_codes.py:65 +#: stock/status_codes.py:69 msgid "Split from parent item" msgstr "Skill ut fra overordnet artikkel" -#: stock/status_codes.py:66 +#: stock/status_codes.py:70 msgid "Split child item" msgstr "Skill ut fra underartikkel" -#: stock/status_codes.py:69 templates/js/translated/stock.js:1943 +#: stock/status_codes.py:73 templates/js/translated/stock.js:1944 msgid "Merged stock items" msgstr "Sammenslåtte lagervarer" -#: stock/status_codes.py:72 +#: stock/status_codes.py:76 msgid "Converted to variant" msgstr "Konvertert til variant" -#: stock/status_codes.py:75 +#: stock/status_codes.py:79 msgid "Build order output created" msgstr "Produksjonsartikkel opprettet" -#: stock/status_codes.py:76 +#: stock/status_codes.py:80 msgid "Build order output completed" msgstr "Produksjonsartikkel fullført" -#: stock/status_codes.py:77 +#: stock/status_codes.py:81 msgid "Build order output rejected" msgstr "Produksjonsartikkel avvist" -#: stock/status_codes.py:78 templates/js/translated/stock.js:1849 +#: stock/status_codes.py:82 templates/js/translated/stock.js:1849 msgid "Consumed by build order" msgstr "Brukt av produksjonsordre" -#: stock/status_codes.py:81 +#: stock/status_codes.py:85 msgid "Shipped against Sales Order" msgstr "Sendt mot salgsordre" -#: stock/status_codes.py:84 +#: stock/status_codes.py:88 msgid "Received against Purchase Order" msgstr "Mottatt mot innkjøpsordre" -#: stock/status_codes.py:87 +#: stock/status_codes.py:91 msgid "Returned against Return Order" msgstr "Returnert mot returordre" -#: stock/status_codes.py:90 templates/js/translated/table_filters.js:382 +#: stock/status_codes.py:94 templates/js/translated/table_filters.js:382 msgid "Sent to customer" msgstr "Sendt til kunde" -#: stock/status_codes.py:91 +#: stock/status_codes.py:95 msgid "Returned from customer" msgstr "Returnert av kunde" @@ -10296,7 +10660,7 @@ msgstr "Denne lagervaren har ikke noen underordnede lagervarer" msgid "Test Data" msgstr "Testdata" -#: stock/templates/stock/item.html:85 stock/templates/stock/item_base.html:65 +#: stock/templates/stock/item.html:85 msgid "Test Report" msgstr "Testrapport" @@ -10316,7 +10680,7 @@ msgstr "Notater for lagervare" msgid "Installed Stock Items" msgstr "Installerte lagervarer" -#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3354 +#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3355 msgid "Install Stock Item" msgstr "Installer lagervare" @@ -10328,208 +10692,212 @@ msgstr "Slett alle testresultater for denne lagervaren" msgid "Add Test Result" msgstr "" -#: stock/templates/stock/item_base.html:33 +#: stock/templates/stock/item_base.html:34 msgid "Locate stock item" msgstr "Finn lagervare" -#: stock/templates/stock/item_base.html:51 +#: stock/templates/stock/item_base.html:52 msgid "Scan to Location" msgstr "Skann til plassering" #: stock/templates/stock/item_base.html:59 -#: stock/templates/stock/location.html:67 +#: stock/templates/stock/location.html:68 #: templates/js/translated/filters.js:434 msgid "Printing actions" msgstr "Utskriftshandlinger" -#: stock/templates/stock/item_base.html:75 +#: stock/templates/stock/item_base.html:64 templates/js/translated/report.js:49 +msgid "Print Report" +msgstr "" + +#: stock/templates/stock/item_base.html:72 msgid "Stock adjustment actions" msgstr "Lagerjusteringshandlinger" -#: stock/templates/stock/item_base.html:79 -#: stock/templates/stock/location.html:87 templates/js/translated/stock.js:1909 +#: stock/templates/stock/item_base.html:76 +#: stock/templates/stock/location.html:88 templates/js/translated/stock.js:1909 msgid "Count stock" msgstr "Tell beholdning" -#: stock/templates/stock/item_base.html:81 +#: stock/templates/stock/item_base.html:78 #: templates/js/translated/stock.js:1891 msgid "Add stock" msgstr "Legg til lagerbeholdning" -#: stock/templates/stock/item_base.html:82 +#: stock/templates/stock/item_base.html:79 #: templates/js/translated/stock.js:1900 msgid "Remove stock" msgstr "Fjern lagerbeholdning" -#: stock/templates/stock/item_base.html:85 +#: stock/templates/stock/item_base.html:82 msgid "Serialize stock" msgstr "Serialiser lager" -#: stock/templates/stock/item_base.html:88 -#: stock/templates/stock/location.html:93 templates/js/translated/stock.js:1918 +#: stock/templates/stock/item_base.html:85 +#: stock/templates/stock/location.html:94 templates/js/translated/stock.js:1918 msgid "Transfer stock" msgstr "Overfør lagerbeholdning" -#: stock/templates/stock/item_base.html:91 -#: templates/js/translated/stock.js:1972 +#: stock/templates/stock/item_base.html:88 +#: templates/js/translated/stock.js:1973 msgid "Assign to customer" msgstr "Tilordne til kunde" -#: stock/templates/stock/item_base.html:94 +#: stock/templates/stock/item_base.html:91 msgid "Return to stock" msgstr "Returner til Lager" -#: stock/templates/stock/item_base.html:97 +#: stock/templates/stock/item_base.html:94 msgid "Uninstall stock item" msgstr "Avinstaller lagervare" -#: stock/templates/stock/item_base.html:97 +#: stock/templates/stock/item_base.html:94 msgid "Uninstall" msgstr "Avinstaller" -#: stock/templates/stock/item_base.html:101 +#: stock/templates/stock/item_base.html:98 msgid "Install stock item" msgstr "Installer lagervare" -#: stock/templates/stock/item_base.html:101 +#: stock/templates/stock/item_base.html:98 msgid "Install" msgstr "Installer" -#: stock/templates/stock/item_base.html:115 +#: stock/templates/stock/item_base.html:112 msgid "Convert to variant" msgstr "Konvertert til variant" -#: stock/templates/stock/item_base.html:118 +#: stock/templates/stock/item_base.html:115 msgid "Duplicate stock item" msgstr "Duplisert lagervare" -#: stock/templates/stock/item_base.html:120 +#: stock/templates/stock/item_base.html:117 msgid "Edit stock item" msgstr "Rediger lagervare" -#: stock/templates/stock/item_base.html:123 +#: stock/templates/stock/item_base.html:120 msgid "Delete stock item" msgstr "Slett lagervare" -#: stock/templates/stock/item_base.html:169 templates/InvenTree/search.html:139 -#: templates/js/translated/build.js:2295 templates/navbar.html:38 +#: stock/templates/stock/item_base.html:166 templates/InvenTree/search.html:139 +#: templates/js/translated/build.js:2298 templates/navbar.html:38 msgid "Build" msgstr "Produksjon" -#: stock/templates/stock/item_base.html:211 +#: stock/templates/stock/item_base.html:208 msgid "No manufacturer set" msgstr "Ingen produsent valgt" -#: stock/templates/stock/item_base.html:251 +#: stock/templates/stock/item_base.html:248 msgid "You are not in the list of owners of this item. This stock item cannot be edited." msgstr "Du er ikke i eierlisten til dette elementet. Denne lagervaren kan ikke redigeres." -#: stock/templates/stock/item_base.html:252 -#: stock/templates/stock/location.html:146 +#: stock/templates/stock/item_base.html:249 +#: stock/templates/stock/location.html:147 msgid "Read only" msgstr "Kun lesetilgang" -#: stock/templates/stock/item_base.html:265 +#: stock/templates/stock/item_base.html:262 msgid "This stock item is unavailable" msgstr "Lagervaren er utilgjengelig" -#: stock/templates/stock/item_base.html:271 +#: stock/templates/stock/item_base.html:268 msgid "This stock item is in production and cannot be edited." msgstr "Denne lagervaren er under produksjon og kan ikke endres." -#: stock/templates/stock/item_base.html:272 +#: stock/templates/stock/item_base.html:269 msgid "Edit the stock item from the build view." msgstr "Rediger lagervaren fra produksjonsvinduet." -#: stock/templates/stock/item_base.html:287 +#: stock/templates/stock/item_base.html:284 msgid "This stock item is allocated to Sales Order" msgstr "Denne lagervaren er tildelt til Salgsordre" -#: stock/templates/stock/item_base.html:295 +#: stock/templates/stock/item_base.html:292 msgid "This stock item is allocated to Build Order" msgstr "Denne lagervaren er tildelt til Produksjonsordre" -#: stock/templates/stock/item_base.html:311 +#: stock/templates/stock/item_base.html:308 msgid "This stock item is serialized. It has a unique serial number and the quantity cannot be adjusted" msgstr "Denne lagervaren er serialisert. Den har et unikt serienummer, og antallet kan ikke justeres" -#: stock/templates/stock/item_base.html:317 +#: stock/templates/stock/item_base.html:314 msgid "previous page" msgstr "forrige side" -#: stock/templates/stock/item_base.html:317 +#: stock/templates/stock/item_base.html:314 msgid "Navigate to previous serial number" msgstr "Gå til forrige serienummer" -#: stock/templates/stock/item_base.html:326 +#: stock/templates/stock/item_base.html:323 msgid "next page" msgstr "neste side" -#: stock/templates/stock/item_base.html:326 +#: stock/templates/stock/item_base.html:323 msgid "Navigate to next serial number" msgstr "Gå til neste serienummer" -#: stock/templates/stock/item_base.html:398 -#: templates/js/translated/build.js:2552 +#: stock/templates/stock/item_base.html:395 +#: templates/js/translated/build.js:2559 msgid "No location set" msgstr "Ingen plassering satt" -#: stock/templates/stock/item_base.html:413 +#: stock/templates/stock/item_base.html:410 msgid "Tests" msgstr "Tester" -#: stock/templates/stock/item_base.html:419 +#: stock/templates/stock/item_base.html:416 msgid "This stock item has not passed all required tests" msgstr "Denne lagervaren har ikke bestått alle påkrevde tester" -#: stock/templates/stock/item_base.html:437 +#: stock/templates/stock/item_base.html:434 #, python-format msgid "This StockItem expired on %(item.expiry_date)s" msgstr "Denne lagervaren utløp %(item.expiry_date)s" -#: stock/templates/stock/item_base.html:439 +#: stock/templates/stock/item_base.html:436 #, python-format msgid "This StockItem expires on %(item.expiry_date)s" msgstr "Denne lagervaren utløper %(item.expiry_date)s" -#: stock/templates/stock/item_base.html:455 +#: stock/templates/stock/item_base.html:452 msgid "No stocktake performed" msgstr "Ingen lagertelling utført" -#: stock/templates/stock/item_base.html:504 -#: templates/js/translated/stock.js:2037 +#: stock/templates/stock/item_base.html:501 +#: templates/js/translated/stock.js:2038 msgid "stock item" msgstr "" -#: stock/templates/stock/item_base.html:527 +#: stock/templates/stock/item_base.html:524 msgid "Edit Stock Status" msgstr "" -#: stock/templates/stock/item_base.html:536 +#: stock/templates/stock/item_base.html:533 msgid "Stock Item QR Code" msgstr "" -#: stock/templates/stock/item_base.html:547 +#: stock/templates/stock/item_base.html:544 msgid "Link Barcode to Stock Item" msgstr "" -#: stock/templates/stock/item_base.html:611 +#: stock/templates/stock/item_base.html:608 msgid "Select one of the part variants listed below." msgstr "Velg en av variantdelene oppført under." -#: stock/templates/stock/item_base.html:614 +#: stock/templates/stock/item_base.html:611 msgid "Warning" msgstr "Advarsel" -#: stock/templates/stock/item_base.html:615 +#: stock/templates/stock/item_base.html:612 msgid "This action cannot be easily undone" msgstr "Denne handlingen er vanskelig å omgjøre" -#: stock/templates/stock/item_base.html:623 +#: stock/templates/stock/item_base.html:620 msgid "Convert Stock Item" msgstr "" -#: stock/templates/stock/item_base.html:656 +#: stock/templates/stock/item_base.html:653 msgid "Return to Stock" msgstr "" @@ -10541,84 +10909,84 @@ msgstr "Opprett serialiserte artikler for denne lagervaren." msgid "Select quantity to serialize, and unique serial numbers." msgstr "Velg antall å serialisere, og unike serienummer." -#: stock/templates/stock/location.html:35 +#: stock/templates/stock/location.html:36 msgid "Perform stocktake for this stock location" msgstr "Utfør lagertelling for denne lagerplasseringen" -#: stock/templates/stock/location.html:42 +#: stock/templates/stock/location.html:43 msgid "Locate stock location" msgstr "Finn lagerplassering" -#: stock/templates/stock/location.html:60 +#: stock/templates/stock/location.html:61 msgid "Scan stock items into this location" msgstr "Skann lagervarer til denne plasseringen" -#: stock/templates/stock/location.html:60 +#: stock/templates/stock/location.html:61 msgid "Scan In Stock Items" msgstr "Skann inn Lagervarer" -#: stock/templates/stock/location.html:61 +#: stock/templates/stock/location.html:62 msgid "Scan stock container into this location" msgstr "Skann lagerbeholder til denne plasseringen" -#: stock/templates/stock/location.html:61 +#: stock/templates/stock/location.html:62 msgid "Scan In Container" msgstr "Skann inn beholder" -#: stock/templates/stock/location.html:72 +#: stock/templates/stock/location.html:73 msgid "Print Location Report" msgstr "Skriv ut plasseringsrapport" -#: stock/templates/stock/location.html:101 +#: stock/templates/stock/location.html:102 msgid "Location actions" msgstr "Plasseringshandlinger" -#: stock/templates/stock/location.html:103 +#: stock/templates/stock/location.html:104 msgid "Edit location" msgstr "Rediger plassering" -#: stock/templates/stock/location.html:105 +#: stock/templates/stock/location.html:106 msgid "Delete location" msgstr "Slett plassering" -#: stock/templates/stock/location.html:135 +#: stock/templates/stock/location.html:136 msgid "Top level stock location" msgstr "Toppnivå-lagerplassering" -#: stock/templates/stock/location.html:141 +#: stock/templates/stock/location.html:142 msgid "Location Owner" msgstr "Plasseringens Eier" -#: stock/templates/stock/location.html:145 +#: stock/templates/stock/location.html:146 msgid "You are not in the list of owners of this location. This stock location cannot be edited." msgstr "Du er ikke i listen over eiere av denne plasseringen. Denne lagerplasseringen kan ikke redigeres." -#: stock/templates/stock/location.html:173 +#: stock/templates/stock/location.html:174 msgid "Location Type" msgstr "" -#: stock/templates/stock/location.html:223 +#: stock/templates/stock/location.html:224 msgid "Create new stock location" msgstr "Opprett ny lagerplassering" -#: stock/templates/stock/location.html:224 +#: stock/templates/stock/location.html:225 msgid "New Location" msgstr "Ny plassering" -#: stock/templates/stock/location.html:298 -#: templates/js/translated/stock.js:2657 +#: stock/templates/stock/location.html:299 +#: templates/js/translated/stock.js:2658 msgid "stock location" msgstr "" -#: stock/templates/stock/location.html:320 +#: stock/templates/stock/location.html:321 msgid "Scanned stock container into this location" msgstr "" -#: stock/templates/stock/location.html:393 +#: stock/templates/stock/location.html:394 msgid "Stock Location QR Code" msgstr "" -#: stock/templates/stock/location.html:404 +#: stock/templates/stock/location.html:405 msgid "Link Barcode to Stock Location" msgstr "" @@ -10630,10 +10998,6 @@ msgstr "Laster inn..." msgid "Stock Tracking" msgstr "Sporing av lager" -#: stock/templates/stock/stock_sidebar.html:8 -msgid "Allocations" -msgstr "Tildelinger" - #: templates/403.html:6 templates/403.html:12 templates/403_csrf.html:7 msgid "Permission Denied" msgstr "Tilgang nektet" @@ -11107,9 +11471,9 @@ msgid "Rate" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:81 -#: templates/js/translated/forms.js:548 templates/js/translated/helpers.js:108 +#: templates/js/translated/forms.js:548 templates/js/translated/helpers.js:109 #: templates/js/translated/part.js:395 templates/js/translated/pricing.js:629 -#: templates/js/translated/stock.js:252 users/models.py:406 +#: templates/js/translated/stock.js:252 users/models.py:408 msgid "Delete" msgstr "Slett" @@ -11130,7 +11494,7 @@ msgid "No project codes found" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:158 -#: templates/js/translated/build.js:2400 +#: templates/js/translated/build.js:2403 msgid "group" msgstr "" @@ -11196,7 +11560,7 @@ msgid "Delete Location Type" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:503 -#: templates/InvenTree/settings/stock.html:38 +#: templates/InvenTree/settings/stock.html:39 msgid "New Location Type" msgstr "Ny plasseringstype" @@ -11253,7 +11617,7 @@ msgstr "Innstillinger for salgsordre" msgid "Stock Settings" msgstr "Instillinger for lager" -#: templates/InvenTree/settings/stock.html:34 +#: templates/InvenTree/settings/stock.html:35 msgid "Stock Location Types" msgstr "Lagerplasseringstyper" @@ -11280,7 +11644,7 @@ msgid "Unverified" msgstr "Ubekreftet" #: templates/InvenTree/settings/user.html:80 -#: templates/js/translated/company.js:957 +#: templates/js/translated/company.js:958 msgid "Primary" msgstr "Primær" @@ -11532,7 +11896,7 @@ msgid "Submit Bug Report" msgstr "Send feilrapport" #: templates/about.html:91 templates/clip.html:4 -#: templates/js/translated/helpers.js:592 +#: templates/js/translated/helpers.js:598 msgid "copy to clipboard" msgstr "kopier til utklippstavle" @@ -11738,23 +12102,24 @@ msgstr "Legg til vedlegg" msgid "Barcode Identifier" msgstr "Strekkode-identifikator" -#: templates/base.html:103 +#: templates/base.html:102 msgid "Server Restart Required" msgstr "Omstart av server kreves" -#: templates/base.html:106 +#: templates/base.html:105 msgid "A configuration option has been changed which requires a server restart" msgstr "En konfigurasjonsinnstilling har blitt endret som krever en omstart av serveren" -#: templates/base.html:106 templates/base.html:116 +#: templates/base.html:105 templates/base.html:115 +#: templates/socialaccount/authentication_error.html:13 msgid "Contact your system administrator for further information" msgstr "Kontakt systemadministratoren for mer informasjon" -#: templates/base.html:113 +#: templates/base.html:112 msgid "Pending Database Migrations" msgstr "Ventende database-migrasjoner" -#: templates/base.html:116 +#: templates/base.html:115 msgid "There are pending database migrations which require attention" msgstr "Det er ventende database-migrasjoner som krever oppmerksomhet" @@ -11787,7 +12152,7 @@ msgid "The following parts are low on required stock" msgstr "Følgende deler har for lav lagerbeholdning" #: templates/email/build_order_required_stock.html:18 -#: templates/js/translated/bom.js:1674 templates/js/translated/build.js:2747 +#: templates/js/translated/bom.js:1674 templates/js/translated/build.js:2765 msgid "Required Quantity" msgstr "Antall som kreves" @@ -11801,7 +12166,7 @@ msgid "Click on the following link to view this part" msgstr "Klikk på følgende lenke for å se denne delen" #: templates/email/low_stock_notification.html:18 -#: templates/js/translated/part.js:3237 +#: templates/js/translated/part.js:3253 msgid "Minimum Quantity" msgstr "Minimum antall" @@ -12039,7 +12404,7 @@ msgstr "" #: templates/js/translated/bom.js:189 templates/js/translated/bom.js:700 #: templates/js/translated/modals.js:75 templates/js/translated/modals.js:629 #: templates/js/translated/modals.js:757 templates/js/translated/modals.js:1065 -#: templates/js/translated/purchase_order.js:797 templates/modals.html:15 +#: templates/js/translated/purchase_order.js:780 templates/modals.html:15 #: templates/modals.html:27 templates/modals.html:39 templates/modals.html:50 msgid "Close" msgstr "Lukk" @@ -12156,7 +12521,7 @@ msgstr "" msgid "Substitutes Available" msgstr "" -#: templates/js/translated/bom.js:950 templates/js/translated/build.js:2673 +#: templates/js/translated/bom.js:950 templates/js/translated/build.js:2682 msgid "Variant stock allowed" msgstr "" @@ -12176,30 +12541,30 @@ msgstr "" msgid "No pricing available" msgstr "" -#: templates/js/translated/bom.js:1184 templates/js/translated/build.js:2812 +#: templates/js/translated/bom.js:1184 templates/js/translated/build.js:2830 msgid "External stock" msgstr "" -#: templates/js/translated/bom.js:1188 templates/js/translated/build.js:2786 -#: templates/js/translated/sales_order.js:1946 +#: templates/js/translated/bom.js:1188 templates/js/translated/build.js:2804 +#: templates/js/translated/sales_order.js:1927 msgid "No Stock Available" msgstr "" -#: templates/js/translated/bom.js:1193 templates/js/translated/build.js:2790 +#: templates/js/translated/bom.js:1193 templates/js/translated/build.js:2808 msgid "Includes variant and substitute stock" msgstr "" -#: templates/js/translated/bom.js:1195 templates/js/translated/build.js:2792 +#: templates/js/translated/bom.js:1195 templates/js/translated/build.js:2810 #: templates/js/translated/part.js:1263 -#: templates/js/translated/sales_order.js:1943 +#: templates/js/translated/sales_order.js:1924 msgid "Includes variant stock" msgstr "" -#: templates/js/translated/bom.js:1197 templates/js/translated/build.js:2794 +#: templates/js/translated/bom.js:1197 templates/js/translated/build.js:2812 msgid "Includes substitute stock" msgstr "" -#: templates/js/translated/bom.js:1225 templates/js/translated/build.js:2777 +#: templates/js/translated/bom.js:1225 templates/js/translated/build.js:2795 msgid "Consumable item" msgstr "" @@ -12231,7 +12596,7 @@ msgstr "" msgid "No BOM items found" msgstr "" -#: templates/js/translated/bom.js:1657 templates/js/translated/build.js:2658 +#: templates/js/translated/bom.js:1657 templates/js/translated/build.js:2667 msgid "Required Part" msgstr "" @@ -12243,396 +12608,396 @@ msgstr "" msgid "Edit Build Order" msgstr "" -#: templates/js/translated/build.js:191 +#: templates/js/translated/build.js:194 msgid "Create Build Order" msgstr "" -#: templates/js/translated/build.js:223 +#: templates/js/translated/build.js:226 msgid "Cancel Build Order" msgstr "" -#: templates/js/translated/build.js:232 +#: templates/js/translated/build.js:235 msgid "Are you sure you wish to cancel this build?" msgstr "" -#: templates/js/translated/build.js:238 +#: templates/js/translated/build.js:241 msgid "Stock items have been allocated to this build order" msgstr "" -#: templates/js/translated/build.js:245 +#: templates/js/translated/build.js:248 msgid "There are incomplete outputs remaining for this build order" msgstr "" -#: templates/js/translated/build.js:297 +#: templates/js/translated/build.js:300 msgid "Build order is ready to be completed" msgstr "" -#: templates/js/translated/build.js:305 +#: templates/js/translated/build.js:308 msgid "This build order cannot be completed as there are incomplete outputs" msgstr "" -#: templates/js/translated/build.js:310 +#: templates/js/translated/build.js:313 msgid "Build Order is incomplete" msgstr "" -#: templates/js/translated/build.js:328 +#: templates/js/translated/build.js:331 msgid "Complete Build Order" msgstr "" -#: templates/js/translated/build.js:369 templates/js/translated/stock.js:127 +#: templates/js/translated/build.js:372 templates/js/translated/stock.js:127 #: templates/js/translated/stock.js:301 msgid "Next available serial number" msgstr "" -#: templates/js/translated/build.js:371 templates/js/translated/stock.js:129 +#: templates/js/translated/build.js:374 templates/js/translated/stock.js:129 #: templates/js/translated/stock.js:303 msgid "Latest serial number" msgstr "" -#: templates/js/translated/build.js:380 +#: templates/js/translated/build.js:383 msgid "The Bill of Materials contains trackable parts" msgstr "" -#: templates/js/translated/build.js:381 +#: templates/js/translated/build.js:384 msgid "Build outputs must be generated individually" msgstr "" -#: templates/js/translated/build.js:389 +#: templates/js/translated/build.js:392 msgid "Trackable parts can have serial numbers specified" msgstr "" -#: templates/js/translated/build.js:390 +#: templates/js/translated/build.js:393 msgid "Enter serial numbers to generate multiple single build outputs" msgstr "" -#: templates/js/translated/build.js:397 +#: templates/js/translated/build.js:400 msgid "Create Build Output" msgstr "" -#: templates/js/translated/build.js:428 +#: templates/js/translated/build.js:431 msgid "Allocate stock items to this build output" msgstr "" -#: templates/js/translated/build.js:436 +#: templates/js/translated/build.js:439 msgid "Deallocate stock from build output" msgstr "" -#: templates/js/translated/build.js:445 +#: templates/js/translated/build.js:448 msgid "Complete build output" msgstr "" -#: templates/js/translated/build.js:453 +#: templates/js/translated/build.js:456 msgid "Scrap build output" msgstr "" -#: templates/js/translated/build.js:460 +#: templates/js/translated/build.js:463 msgid "Delete build output" msgstr "" -#: templates/js/translated/build.js:480 +#: templates/js/translated/build.js:483 msgid "Are you sure you wish to deallocate the selected stock items from this build?" msgstr "" -#: templates/js/translated/build.js:498 +#: templates/js/translated/build.js:501 msgid "Deallocate Stock Items" msgstr "" -#: templates/js/translated/build.js:584 templates/js/translated/build.js:711 -#: templates/js/translated/build.js:836 +#: templates/js/translated/build.js:587 templates/js/translated/build.js:714 +#: templates/js/translated/build.js:839 msgid "Select Build Outputs" msgstr "" -#: templates/js/translated/build.js:585 templates/js/translated/build.js:712 -#: templates/js/translated/build.js:837 +#: templates/js/translated/build.js:588 templates/js/translated/build.js:715 +#: templates/js/translated/build.js:840 msgid "At least one build output must be selected" msgstr "" -#: templates/js/translated/build.js:599 +#: templates/js/translated/build.js:602 msgid "Selected build outputs will be marked as complete" msgstr "" -#: templates/js/translated/build.js:603 templates/js/translated/build.js:736 -#: templates/js/translated/build.js:859 +#: templates/js/translated/build.js:606 templates/js/translated/build.js:739 +#: templates/js/translated/build.js:862 msgid "Output" msgstr "" -#: templates/js/translated/build.js:630 +#: templates/js/translated/build.js:633 msgid "Complete Build Outputs" msgstr "" -#: templates/js/translated/build.js:727 +#: templates/js/translated/build.js:730 msgid "Selected build outputs will be marked as scrapped" msgstr "" -#: templates/js/translated/build.js:729 +#: templates/js/translated/build.js:732 msgid "Scrapped output are marked as rejected" msgstr "" -#: templates/js/translated/build.js:730 +#: templates/js/translated/build.js:733 msgid "Allocated stock items will no longer be available" msgstr "" -#: templates/js/translated/build.js:731 +#: templates/js/translated/build.js:734 msgid "The completion status of the build order will not be adjusted" msgstr "" -#: templates/js/translated/build.js:761 +#: templates/js/translated/build.js:764 msgid "Scrap Build Outputs" msgstr "" -#: templates/js/translated/build.js:851 +#: templates/js/translated/build.js:854 msgid "Selected build outputs will be deleted" msgstr "" -#: templates/js/translated/build.js:853 +#: templates/js/translated/build.js:856 msgid "Build output data will be permanently deleted" msgstr "" -#: templates/js/translated/build.js:854 +#: templates/js/translated/build.js:857 msgid "Allocated stock items will be returned to stock" msgstr "" -#: templates/js/translated/build.js:872 +#: templates/js/translated/build.js:875 msgid "Delete Build Outputs" msgstr "" -#: templates/js/translated/build.js:959 +#: templates/js/translated/build.js:962 msgid "Delete allocations" msgstr "" -#: templates/js/translated/build.js:966 +#: templates/js/translated/build.js:969 msgid "Delete Stock Allocations" msgstr "" -#: templates/js/translated/build.js:989 +#: templates/js/translated/build.js:992 msgid "No allocated stock" msgstr "" -#: templates/js/translated/build.js:1045 +#: templates/js/translated/build.js:1048 msgid "Stock item" msgstr "" -#: templates/js/translated/build.js:1070 +#: templates/js/translated/build.js:1073 msgid "Edit build allocation" msgstr "" -#: templates/js/translated/build.js:1071 +#: templates/js/translated/build.js:1074 msgid "Delete build allocation" msgstr "" -#: templates/js/translated/build.js:1089 +#: templates/js/translated/build.js:1092 msgid "Edit Build Allocation" msgstr "" -#: templates/js/translated/build.js:1102 +#: templates/js/translated/build.js:1105 msgid "Delete Build Allocation" msgstr "" -#: templates/js/translated/build.js:1133 +#: templates/js/translated/build.js:1136 msgid "No build order allocations found" msgstr "" -#: templates/js/translated/build.js:1178 +#: templates/js/translated/build.js:1181 msgid "Location not specified" msgstr "" -#: templates/js/translated/build.js:1200 +#: templates/js/translated/build.js:1203 msgid "Complete outputs" msgstr "" -#: templates/js/translated/build.js:1218 +#: templates/js/translated/build.js:1221 msgid "Scrap outputs" msgstr "" -#: templates/js/translated/build.js:1236 +#: templates/js/translated/build.js:1239 msgid "Delete outputs" msgstr "" -#: templates/js/translated/build.js:1289 +#: templates/js/translated/build.js:1292 msgid "build output" msgstr "" -#: templates/js/translated/build.js:1290 +#: templates/js/translated/build.js:1293 msgid "build outputs" msgstr "" -#: templates/js/translated/build.js:1294 +#: templates/js/translated/build.js:1297 msgid "Build output actions" msgstr "" -#: templates/js/translated/build.js:1470 +#: templates/js/translated/build.js:1473 msgid "No active build outputs found" msgstr "" -#: templates/js/translated/build.js:1563 +#: templates/js/translated/build.js:1566 msgid "Allocated Lines" msgstr "" -#: templates/js/translated/build.js:1577 +#: templates/js/translated/build.js:1580 msgid "Required Tests" msgstr "" -#: templates/js/translated/build.js:1749 -#: templates/js/translated/purchase_order.js:611 -#: templates/js/translated/sales_order.js:1207 +#: templates/js/translated/build.js:1752 +#: templates/js/translated/purchase_order.js:594 +#: templates/js/translated/sales_order.js:1173 msgid "Select Parts" msgstr "" -#: templates/js/translated/build.js:1750 -#: templates/js/translated/sales_order.js:1208 +#: templates/js/translated/build.js:1753 +#: templates/js/translated/sales_order.js:1174 msgid "You must select at least one part to allocate" msgstr "" -#: templates/js/translated/build.js:1813 -#: templates/js/translated/sales_order.js:1157 +#: templates/js/translated/build.js:1816 +#: templates/js/translated/sales_order.js:1123 msgid "Specify stock allocation quantity" msgstr "" -#: templates/js/translated/build.js:1890 +#: templates/js/translated/build.js:1893 msgid "All Parts Allocated" msgstr "" -#: templates/js/translated/build.js:1891 +#: templates/js/translated/build.js:1894 msgid "All selected parts have been fully allocated" msgstr "" -#: templates/js/translated/build.js:1905 -#: templates/js/translated/sales_order.js:1222 +#: templates/js/translated/build.js:1908 +#: templates/js/translated/sales_order.js:1188 msgid "Select source location (leave blank to take from all locations)" msgstr "" -#: templates/js/translated/build.js:1933 +#: templates/js/translated/build.js:1936 msgid "Allocate Stock Items to Build Order" msgstr "" -#: templates/js/translated/build.js:1944 -#: templates/js/translated/sales_order.js:1319 +#: templates/js/translated/build.js:1947 +#: templates/js/translated/sales_order.js:1285 msgid "No matching stock locations" msgstr "" -#: templates/js/translated/build.js:2017 -#: templates/js/translated/sales_order.js:1398 +#: templates/js/translated/build.js:2020 +#: templates/js/translated/sales_order.js:1364 msgid "No matching stock items" msgstr "" -#: templates/js/translated/build.js:2114 +#: templates/js/translated/build.js:2117 msgid "Automatic Stock Allocation" msgstr "" -#: templates/js/translated/build.js:2115 +#: templates/js/translated/build.js:2118 msgid "Stock items will be automatically allocated to this build order, according to the provided guidelines" msgstr "" -#: templates/js/translated/build.js:2117 +#: templates/js/translated/build.js:2120 msgid "If a location is specified, stock will only be allocated from that location" msgstr "" -#: templates/js/translated/build.js:2118 +#: templates/js/translated/build.js:2121 msgid "If stock is considered interchangeable, it will be allocated from the first location it is found" msgstr "" -#: templates/js/translated/build.js:2119 +#: templates/js/translated/build.js:2122 msgid "If substitute stock is allowed, it will be used where stock of the primary part cannot be found" msgstr "" -#: templates/js/translated/build.js:2149 +#: templates/js/translated/build.js:2152 msgid "Allocate Stock Items" msgstr "" -#: templates/js/translated/build.js:2254 +#: templates/js/translated/build.js:2257 msgid "No builds matching query" msgstr "" -#: templates/js/translated/build.js:2289 templates/js/translated/build.js:2652 +#: templates/js/translated/build.js:2292 templates/js/translated/build.js:2661 #: templates/js/translated/forms.js:2196 templates/js/translated/forms.js:2212 #: templates/js/translated/part.js:2322 templates/js/translated/part.js:2761 -#: templates/js/translated/stock.js:2068 templates/js/translated/stock.js:2795 +#: templates/js/translated/stock.js:2069 templates/js/translated/stock.js:2796 msgid "Select" msgstr "" -#: templates/js/translated/build.js:2303 +#: templates/js/translated/build.js:2306 msgid "Build order is overdue" msgstr "" -#: templates/js/translated/build.js:2385 templates/js/translated/stock.js:3126 +#: templates/js/translated/build.js:2388 templates/js/translated/stock.js:3127 msgid "No user information" msgstr "" -#: templates/js/translated/build.js:2561 -#: templates/js/translated/sales_order.js:1682 +#: templates/js/translated/build.js:2568 +#: templates/js/translated/sales_order.js:1663 msgid "Edit stock allocation" msgstr "" -#: templates/js/translated/build.js:2562 -#: templates/js/translated/sales_order.js:1683 +#: templates/js/translated/build.js:2569 +#: templates/js/translated/sales_order.js:1664 msgid "Delete stock allocation" msgstr "" -#: templates/js/translated/build.js:2577 +#: templates/js/translated/build.js:2584 msgid "Edit Allocation" msgstr "" -#: templates/js/translated/build.js:2589 +#: templates/js/translated/build.js:2596 msgid "Remove Allocation" msgstr "" -#: templates/js/translated/build.js:2628 +#: templates/js/translated/build.js:2636 msgid "build line" msgstr "" -#: templates/js/translated/build.js:2629 +#: templates/js/translated/build.js:2637 msgid "build lines" msgstr "" -#: templates/js/translated/build.js:2647 +#: templates/js/translated/build.js:2656 msgid "No build lines found" msgstr "" -#: templates/js/translated/build.js:2677 templates/js/translated/part.js:793 +#: templates/js/translated/build.js:2686 templates/js/translated/part.js:793 #: templates/js/translated/part.js:1209 msgid "Trackable part" msgstr "" -#: templates/js/translated/build.js:2720 +#: templates/js/translated/build.js:2729 msgid "Gets Inherited" msgstr "" -#: templates/js/translated/build.js:2730 +#: templates/js/translated/build.js:2748 msgid "Unit Quantity" msgstr "" -#: templates/js/translated/build.js:2782 -#: templates/js/translated/sales_order.js:1951 +#: templates/js/translated/build.js:2800 +#: templates/js/translated/sales_order.js:1932 msgid "Sufficient stock available" msgstr "" -#: templates/js/translated/build.js:2837 +#: templates/js/translated/build.js:2855 msgid "Consumable Item" msgstr "" -#: templates/js/translated/build.js:2844 +#: templates/js/translated/build.js:2862 msgid "Tracked item" msgstr "" -#: templates/js/translated/build.js:2845 +#: templates/js/translated/build.js:2863 msgid "Allocate tracked items against individual build outputs" msgstr "" -#: templates/js/translated/build.js:2853 -#: templates/js/translated/sales_order.js:2052 +#: templates/js/translated/build.js:2871 +#: templates/js/translated/sales_order.js:2033 msgid "Build stock" msgstr "" -#: templates/js/translated/build.js:2858 templates/js/translated/stock.js:1953 +#: templates/js/translated/build.js:2876 templates/js/translated/stock.js:1954 msgid "Order stock" msgstr "" -#: templates/js/translated/build.js:2862 -#: templates/js/translated/sales_order.js:2046 +#: templates/js/translated/build.js:2880 +#: templates/js/translated/sales_order.js:2027 msgid "Allocate stock" msgstr "" -#: templates/js/translated/build.js:2866 +#: templates/js/translated/build.js:2884 msgid "Remove stock allocation" msgstr "" @@ -12641,7 +13006,7 @@ msgid "Add Manufacturer" msgstr "" #: templates/js/translated/company.js:111 -#: templates/js/translated/company.js:213 +#: templates/js/translated/company.js:214 msgid "Add Manufacturer Part" msgstr "" @@ -12649,231 +13014,231 @@ msgstr "" msgid "Edit Manufacturer Part" msgstr "" -#: templates/js/translated/company.js:201 +#: templates/js/translated/company.js:202 #: templates/js/translated/purchase_order.js:93 msgid "Add Supplier" msgstr "" -#: templates/js/translated/company.js:243 -#: templates/js/translated/purchase_order.js:318 +#: templates/js/translated/company.js:244 +#: templates/js/translated/purchase_order.js:301 msgid "Add Supplier Part" msgstr "" -#: templates/js/translated/company.js:344 +#: templates/js/translated/company.js:345 msgid "All selected supplier parts will be deleted" msgstr "" -#: templates/js/translated/company.js:360 +#: templates/js/translated/company.js:361 msgid "Delete Supplier Parts" msgstr "" -#: templates/js/translated/company.js:466 +#: templates/js/translated/company.js:467 msgid "Add new Company" msgstr "" -#: templates/js/translated/company.js:546 +#: templates/js/translated/company.js:547 msgid "Parts Supplied" msgstr "" -#: templates/js/translated/company.js:555 +#: templates/js/translated/company.js:556 msgid "Parts Manufactured" msgstr "" -#: templates/js/translated/company.js:570 +#: templates/js/translated/company.js:571 msgid "No company information found" msgstr "" -#: templates/js/translated/company.js:619 +#: templates/js/translated/company.js:620 msgid "Create New Contact" msgstr "" -#: templates/js/translated/company.js:635 -#: templates/js/translated/company.js:758 +#: templates/js/translated/company.js:636 +#: templates/js/translated/company.js:759 msgid "Edit Contact" msgstr "" -#: templates/js/translated/company.js:672 +#: templates/js/translated/company.js:673 msgid "All selected contacts will be deleted" msgstr "" -#: templates/js/translated/company.js:678 -#: templates/js/translated/company.js:742 +#: templates/js/translated/company.js:679 +#: templates/js/translated/company.js:743 msgid "Role" msgstr "" -#: templates/js/translated/company.js:686 +#: templates/js/translated/company.js:687 msgid "Delete Contacts" msgstr "" -#: templates/js/translated/company.js:717 +#: templates/js/translated/company.js:718 msgid "No contacts found" msgstr "" -#: templates/js/translated/company.js:730 +#: templates/js/translated/company.js:731 msgid "Phone Number" msgstr "" -#: templates/js/translated/company.js:736 +#: templates/js/translated/company.js:737 msgid "Email Address" msgstr "" -#: templates/js/translated/company.js:762 +#: templates/js/translated/company.js:763 msgid "Delete Contact" msgstr "" -#: templates/js/translated/company.js:859 +#: templates/js/translated/company.js:860 msgid "Create New Address" msgstr "" -#: templates/js/translated/company.js:874 -#: templates/js/translated/company.js:1035 +#: templates/js/translated/company.js:875 +#: templates/js/translated/company.js:1036 msgid "Edit Address" msgstr "" -#: templates/js/translated/company.js:909 +#: templates/js/translated/company.js:910 msgid "All selected addresses will be deleted" msgstr "" -#: templates/js/translated/company.js:923 +#: templates/js/translated/company.js:924 msgid "Delete Addresses" msgstr "" -#: templates/js/translated/company.js:950 +#: templates/js/translated/company.js:951 msgid "No addresses found" msgstr "" -#: templates/js/translated/company.js:989 +#: templates/js/translated/company.js:990 msgid "Postal city" msgstr "" -#: templates/js/translated/company.js:995 +#: templates/js/translated/company.js:996 msgid "State/province" msgstr "" -#: templates/js/translated/company.js:1007 +#: templates/js/translated/company.js:1008 msgid "Courier notes" msgstr "" -#: templates/js/translated/company.js:1013 +#: templates/js/translated/company.js:1014 msgid "Internal notes" msgstr "" -#: templates/js/translated/company.js:1039 +#: templates/js/translated/company.js:1040 msgid "Delete Address" msgstr "" -#: templates/js/translated/company.js:1112 +#: templates/js/translated/company.js:1113 msgid "All selected manufacturer parts will be deleted" msgstr "" -#: templates/js/translated/company.js:1127 +#: templates/js/translated/company.js:1128 msgid "Delete Manufacturer Parts" msgstr "" -#: templates/js/translated/company.js:1161 +#: templates/js/translated/company.js:1162 msgid "All selected parameters will be deleted" msgstr "" -#: templates/js/translated/company.js:1175 +#: templates/js/translated/company.js:1176 msgid "Delete Parameters" msgstr "" -#: templates/js/translated/company.js:1191 -#: templates/js/translated/company.js:1479 templates/js/translated/part.js:2250 +#: templates/js/translated/company.js:1192 +#: templates/js/translated/company.js:1480 templates/js/translated/part.js:2250 msgid "Order parts" msgstr "" -#: templates/js/translated/company.js:1208 +#: templates/js/translated/company.js:1209 msgid "Delete manufacturer parts" msgstr "" -#: templates/js/translated/company.js:1240 +#: templates/js/translated/company.js:1241 msgid "Manufacturer part actions" msgstr "" -#: templates/js/translated/company.js:1259 +#: templates/js/translated/company.js:1260 msgid "No manufacturer parts found" msgstr "" -#: templates/js/translated/company.js:1279 -#: templates/js/translated/company.js:1567 templates/js/translated/part.js:801 +#: templates/js/translated/company.js:1280 +#: templates/js/translated/company.js:1568 templates/js/translated/part.js:801 #: templates/js/translated/part.js:1217 msgid "Template part" msgstr "" -#: templates/js/translated/company.js:1283 -#: templates/js/translated/company.js:1571 templates/js/translated/part.js:805 +#: templates/js/translated/company.js:1284 +#: templates/js/translated/company.js:1572 templates/js/translated/part.js:805 #: templates/js/translated/part.js:1221 msgid "Assembled part" msgstr "" -#: templates/js/translated/company.js:1403 templates/js/translated/part.js:1471 +#: templates/js/translated/company.js:1404 templates/js/translated/part.js:1471 msgid "No parameters found" msgstr "" -#: templates/js/translated/company.js:1438 templates/js/translated/part.js:1534 +#: templates/js/translated/company.js:1439 templates/js/translated/part.js:1534 msgid "Edit parameter" msgstr "" -#: templates/js/translated/company.js:1439 templates/js/translated/part.js:1535 +#: templates/js/translated/company.js:1440 templates/js/translated/part.js:1535 msgid "Delete parameter" msgstr "" -#: templates/js/translated/company.js:1456 templates/js/translated/part.js:1440 +#: templates/js/translated/company.js:1457 templates/js/translated/part.js:1440 msgid "Edit Parameter" msgstr "" -#: templates/js/translated/company.js:1465 templates/js/translated/part.js:1556 +#: templates/js/translated/company.js:1466 templates/js/translated/part.js:1556 msgid "Delete Parameter" msgstr "" -#: templates/js/translated/company.js:1496 +#: templates/js/translated/company.js:1497 msgid "Delete supplier parts" msgstr "" -#: templates/js/translated/company.js:1546 +#: templates/js/translated/company.js:1547 msgid "No supplier parts found" msgstr "" -#: templates/js/translated/company.js:1664 +#: templates/js/translated/company.js:1665 msgid "Base Units" msgstr "" -#: templates/js/translated/company.js:1694 +#: templates/js/translated/company.js:1695 msgid "Availability" msgstr "" -#: templates/js/translated/company.js:1725 +#: templates/js/translated/company.js:1726 msgid "Edit supplier part" msgstr "" -#: templates/js/translated/company.js:1726 +#: templates/js/translated/company.js:1727 msgid "Delete supplier part" msgstr "" -#: templates/js/translated/company.js:1779 +#: templates/js/translated/company.js:1780 #: templates/js/translated/pricing.js:694 msgid "Delete Price Break" msgstr "" -#: templates/js/translated/company.js:1789 +#: templates/js/translated/company.js:1790 #: templates/js/translated/pricing.js:712 msgid "Edit Price Break" msgstr "" -#: templates/js/translated/company.js:1804 +#: templates/js/translated/company.js:1805 msgid "No price break information found" msgstr "" -#: templates/js/translated/company.js:1833 +#: templates/js/translated/company.js:1834 msgid "Last updated" msgstr "" -#: templates/js/translated/company.js:1840 +#: templates/js/translated/company.js:1841 msgid "Edit price break" msgstr "" -#: templates/js/translated/company.js:1841 +#: templates/js/translated/company.js:1842 msgid "Delete price break" msgstr "" @@ -12977,19 +13342,19 @@ msgstr "" msgid "Select Columns" msgstr "" -#: templates/js/translated/helpers.js:80 +#: templates/js/translated/helpers.js:81 msgid "YES" msgstr "" -#: templates/js/translated/helpers.js:83 +#: templates/js/translated/helpers.js:84 msgid "NO" msgstr "" -#: templates/js/translated/helpers.js:96 +#: templates/js/translated/helpers.js:97 msgid "True" msgstr "" -#: templates/js/translated/helpers.js:97 +#: templates/js/translated/helpers.js:98 msgid "False" msgstr "" @@ -13131,7 +13496,7 @@ msgid "Delete Line" msgstr "" #: templates/js/translated/order.js:306 -#: templates/js/translated/purchase_order.js:2060 +#: templates/js/translated/purchase_order.js:2044 msgid "No line items found" msgstr "" @@ -13366,19 +13731,19 @@ msgid "Delete Part Parameter Template" msgstr "" #: templates/js/translated/part.js:1723 -#: templates/js/translated/purchase_order.js:1724 +#: templates/js/translated/purchase_order.js:1708 msgid "No purchase orders found" msgstr "" #: templates/js/translated/part.js:1867 -#: templates/js/translated/purchase_order.js:2223 +#: templates/js/translated/purchase_order.js:2207 #: templates/js/translated/return_order.js:754 -#: templates/js/translated/sales_order.js:1911 +#: templates/js/translated/sales_order.js:1892 msgid "This line item is overdue" msgstr "" #: templates/js/translated/part.js:1913 -#: templates/js/translated/purchase_order.js:2290 +#: templates/js/translated/purchase_order.js:2274 msgid "Receive line item" msgstr "" @@ -13419,7 +13784,7 @@ msgid "No category" msgstr "" #: templates/js/translated/part.js:2550 templates/js/translated/part.js:2680 -#: templates/js/translated/stock.js:2754 +#: templates/js/translated/stock.js:2755 msgid "Display as list" msgstr "" @@ -13431,7 +13796,7 @@ msgstr "" msgid "No subcategories found" msgstr "" -#: templates/js/translated/part.js:2700 templates/js/translated/stock.js:2774 +#: templates/js/translated/part.js:2700 templates/js/translated/stock.js:2775 msgid "Display as tree" msgstr "" @@ -13483,23 +13848,23 @@ msgstr "" msgid "Speculative" msgstr "" -#: templates/js/translated/part.js:3128 +#: templates/js/translated/part.js:3144 msgid "No scheduling information available for this part" msgstr "" -#: templates/js/translated/part.js:3134 +#: templates/js/translated/part.js:3150 msgid "Error fetching scheduling information for this part" msgstr "" -#: templates/js/translated/part.js:3230 +#: templates/js/translated/part.js:3246 msgid "Scheduled Stock Quantities" msgstr "" -#: templates/js/translated/part.js:3246 +#: templates/js/translated/part.js:3262 msgid "Maximum Quantity" msgstr "" -#: templates/js/translated/part.js:3291 +#: templates/js/translated/part.js:3307 msgid "Minimum Stock Level" msgstr "" @@ -13575,267 +13940,243 @@ msgstr "" msgid "Purchase Price History" msgstr "" -#: templates/js/translated/pricing.js:894 +#: templates/js/translated/pricing.js:892 msgid "No sales history data available" msgstr "" -#: templates/js/translated/pricing.js:916 +#: templates/js/translated/pricing.js:914 msgid "Sale Price History" msgstr "" -#: templates/js/translated/pricing.js:1005 +#: templates/js/translated/pricing.js:1003 msgid "No variant data available" msgstr "" -#: templates/js/translated/pricing.js:1045 +#: templates/js/translated/pricing.js:1043 msgid "Variant Part" msgstr "" -#: templates/js/translated/purchase_order.js:169 -msgid "Select purchase order to duplicate" -msgstr "" - -#: templates/js/translated/purchase_order.js:176 -msgid "Duplicate Line Items" -msgstr "" - -#: templates/js/translated/purchase_order.js:177 -msgid "Duplicate all line items from the selected order" -msgstr "" - -#: templates/js/translated/purchase_order.js:184 -msgid "Duplicate Extra Lines" -msgstr "" - -#: templates/js/translated/purchase_order.js:185 -msgid "Duplicate extra line items from the selected order" -msgstr "" - -#: templates/js/translated/purchase_order.js:206 +#: templates/js/translated/purchase_order.js:188 msgid "Edit Purchase Order" msgstr "" -#: templates/js/translated/purchase_order.js:223 +#: templates/js/translated/purchase_order.js:205 msgid "Duplication Options" msgstr "" -#: templates/js/translated/purchase_order.js:431 +#: templates/js/translated/purchase_order.js:414 msgid "Complete Purchase Order" msgstr "" -#: templates/js/translated/purchase_order.js:448 +#: templates/js/translated/purchase_order.js:431 #: templates/js/translated/return_order.js:210 -#: templates/js/translated/sales_order.js:552 +#: templates/js/translated/sales_order.js:511 msgid "Mark this order as complete?" msgstr "" -#: templates/js/translated/purchase_order.js:454 +#: templates/js/translated/purchase_order.js:437 msgid "All line items have been received" msgstr "" -#: templates/js/translated/purchase_order.js:459 +#: templates/js/translated/purchase_order.js:442 msgid "This order has line items which have not been marked as received." msgstr "" -#: templates/js/translated/purchase_order.js:460 +#: templates/js/translated/purchase_order.js:443 msgid "Completing this order means that the order and line items will no longer be editable." msgstr "" -#: templates/js/translated/purchase_order.js:483 +#: templates/js/translated/purchase_order.js:466 msgid "Cancel Purchase Order" msgstr "" -#: templates/js/translated/purchase_order.js:488 +#: templates/js/translated/purchase_order.js:471 msgid "Are you sure you wish to cancel this purchase order?" msgstr "" -#: templates/js/translated/purchase_order.js:494 +#: templates/js/translated/purchase_order.js:477 msgid "This purchase order can not be cancelled" msgstr "" -#: templates/js/translated/purchase_order.js:515 +#: templates/js/translated/purchase_order.js:498 #: templates/js/translated/return_order.js:164 msgid "After placing this order, line items will no longer be editable." msgstr "" -#: templates/js/translated/purchase_order.js:520 +#: templates/js/translated/purchase_order.js:503 msgid "Issue Purchase Order" msgstr "" -#: templates/js/translated/purchase_order.js:612 +#: templates/js/translated/purchase_order.js:595 msgid "At least one purchaseable part must be selected" msgstr "" -#: templates/js/translated/purchase_order.js:637 +#: templates/js/translated/purchase_order.js:620 msgid "Quantity to order" msgstr "" -#: templates/js/translated/purchase_order.js:646 +#: templates/js/translated/purchase_order.js:629 msgid "New supplier part" msgstr "" -#: templates/js/translated/purchase_order.js:664 +#: templates/js/translated/purchase_order.js:647 msgid "New purchase order" msgstr "" -#: templates/js/translated/purchase_order.js:705 +#: templates/js/translated/purchase_order.js:688 msgid "Add to purchase order" msgstr "" -#: templates/js/translated/purchase_order.js:755 +#: templates/js/translated/purchase_order.js:738 msgid "Merge" msgstr "" -#: templates/js/translated/purchase_order.js:859 +#: templates/js/translated/purchase_order.js:842 msgid "No matching supplier parts" msgstr "" -#: templates/js/translated/purchase_order.js:878 +#: templates/js/translated/purchase_order.js:861 msgid "No matching purchase orders" msgstr "" -#: templates/js/translated/purchase_order.js:1073 +#: templates/js/translated/purchase_order.js:1056 #: templates/js/translated/return_order.js:490 msgid "Select Line Items" msgstr "" -#: templates/js/translated/purchase_order.js:1074 +#: templates/js/translated/purchase_order.js:1057 #: templates/js/translated/return_order.js:491 msgid "At least one line item must be selected" msgstr "" -#: templates/js/translated/purchase_order.js:1104 +#: templates/js/translated/purchase_order.js:1087 msgid "Received Quantity" msgstr "" -#: templates/js/translated/purchase_order.js:1115 +#: templates/js/translated/purchase_order.js:1098 msgid "Quantity to receive" msgstr "" -#: templates/js/translated/purchase_order.js:1170 +#: templates/js/translated/purchase_order.js:1153 #: templates/js/translated/stock.js:1215 msgid "Specify packaging for incoming stock items" msgstr "" -#: templates/js/translated/purchase_order.js:1223 +#: templates/js/translated/purchase_order.js:1206 msgid "Stock Status" msgstr "" -#: templates/js/translated/purchase_order.js:1237 +#: templates/js/translated/purchase_order.js:1220 msgid "Add barcode" msgstr "" -#: templates/js/translated/purchase_order.js:1238 +#: templates/js/translated/purchase_order.js:1221 msgid "Remove barcode" msgstr "" -#: templates/js/translated/purchase_order.js:1241 +#: templates/js/translated/purchase_order.js:1224 msgid "Specify location" msgstr "" -#: templates/js/translated/purchase_order.js:1249 +#: templates/js/translated/purchase_order.js:1232 msgid "Add batch code" msgstr "" -#: templates/js/translated/purchase_order.js:1259 +#: templates/js/translated/purchase_order.js:1242 msgid "Specify packaging" msgstr "" -#: templates/js/translated/purchase_order.js:1270 +#: templates/js/translated/purchase_order.js:1253 msgid "Add serial numbers" msgstr "" -#: templates/js/translated/purchase_order.js:1281 +#: templates/js/translated/purchase_order.js:1264 msgid "Add note" msgstr "" -#: templates/js/translated/purchase_order.js:1338 +#: templates/js/translated/purchase_order.js:1321 msgid "Serials" msgstr "" -#: templates/js/translated/purchase_order.js:1368 +#: templates/js/translated/purchase_order.js:1351 msgid "Order Code" msgstr "" -#: templates/js/translated/purchase_order.js:1370 +#: templates/js/translated/purchase_order.js:1353 msgid "Quantity to Receive" msgstr "" -#: templates/js/translated/purchase_order.js:1395 +#: templates/js/translated/purchase_order.js:1379 #: templates/js/translated/return_order.js:559 msgid "Confirm receipt of items" msgstr "" -#: templates/js/translated/purchase_order.js:1396 +#: templates/js/translated/purchase_order.js:1380 msgid "Receive Purchase Order Items" msgstr "" -#: templates/js/translated/purchase_order.js:1464 +#: templates/js/translated/purchase_order.js:1448 msgid "Scan Item Barcode" msgstr "" -#: templates/js/translated/purchase_order.js:1465 +#: templates/js/translated/purchase_order.js:1449 msgid "Scan barcode on incoming item (must not match any existing stock items)" msgstr "" -#: templates/js/translated/purchase_order.js:1479 +#: templates/js/translated/purchase_order.js:1463 msgid "Invalid barcode data" msgstr "" -#: templates/js/translated/purchase_order.js:1751 +#: templates/js/translated/purchase_order.js:1735 #: templates/js/translated/return_order.js:285 -#: templates/js/translated/sales_order.js:810 -#: templates/js/translated/sales_order.js:1034 +#: templates/js/translated/sales_order.js:769 +#: templates/js/translated/sales_order.js:1007 msgid "Order is overdue" msgstr "" -#: templates/js/translated/purchase_order.js:1913 +#: templates/js/translated/purchase_order.js:1897 msgid "All selected Line items will be deleted" msgstr "" -#: templates/js/translated/purchase_order.js:1931 +#: templates/js/translated/purchase_order.js:1915 msgid "Delete selected Line items?" msgstr "" -#: templates/js/translated/purchase_order.js:1986 -#: templates/js/translated/sales_order.js:2106 +#: templates/js/translated/purchase_order.js:1970 +#: templates/js/translated/sales_order.js:2087 msgid "Duplicate Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2001 +#: templates/js/translated/purchase_order.js:1985 #: templates/js/translated/return_order.js:475 #: templates/js/translated/return_order.js:667 -#: templates/js/translated/sales_order.js:2119 +#: templates/js/translated/sales_order.js:2100 msgid "Edit Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2012 +#: templates/js/translated/purchase_order.js:1996 #: templates/js/translated/return_order.js:680 -#: templates/js/translated/sales_order.js:2130 +#: templates/js/translated/sales_order.js:2111 msgid "Delete Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2294 -#: templates/js/translated/sales_order.js:2060 +#: templates/js/translated/purchase_order.js:2278 +#: templates/js/translated/sales_order.js:2041 msgid "Duplicate line item" msgstr "" -#: templates/js/translated/purchase_order.js:2295 +#: templates/js/translated/purchase_order.js:2279 #: templates/js/translated/return_order.js:799 -#: templates/js/translated/sales_order.js:2061 +#: templates/js/translated/sales_order.js:2042 msgid "Edit line item" msgstr "" -#: templates/js/translated/purchase_order.js:2296 +#: templates/js/translated/purchase_order.js:2280 #: templates/js/translated/return_order.js:803 -#: templates/js/translated/sales_order.js:2067 +#: templates/js/translated/sales_order.js:2048 msgid "Delete line item" msgstr "" -#: templates/js/translated/report.js:49 -msgid "Print Report" -msgstr "" - #: templates/js/translated/report.js:68 msgid "Report print successful" msgstr "" @@ -13878,7 +14219,7 @@ msgid "No return orders found" msgstr "" #: templates/js/translated/return_order.js:299 -#: templates/js/translated/sales_order.js:824 +#: templates/js/translated/sales_order.js:783 msgid "Invalid Customer" msgstr "" @@ -13887,7 +14228,7 @@ msgid "Receive Return Order Items" msgstr "" #: templates/js/translated/return_order.js:691 -#: templates/js/translated/sales_order.js:2267 +#: templates/js/translated/sales_order.js:2248 msgid "No matching line items" msgstr "" @@ -13903,188 +14244,181 @@ msgstr "" msgid "Edit Sales Order" msgstr "" -#: templates/js/translated/sales_order.js:291 +#: templates/js/translated/sales_order.js:288 msgid "No stock items have been allocated to this shipment" msgstr "" -#: templates/js/translated/sales_order.js:296 -msgid "The following stock items will be shipped" -msgstr "" - -#: templates/js/translated/sales_order.js:336 +#: templates/js/translated/sales_order.js:294 msgid "Complete Shipment" msgstr "" -#: templates/js/translated/sales_order.js:360 +#: templates/js/translated/sales_order.js:318 msgid "Confirm Shipment" msgstr "" -#: templates/js/translated/sales_order.js:416 +#: templates/js/translated/sales_order.js:375 msgid "No pending shipments found" msgstr "" -#: templates/js/translated/sales_order.js:420 +#: templates/js/translated/sales_order.js:379 msgid "No stock items have been allocated to pending shipments" msgstr "" -#: templates/js/translated/sales_order.js:430 +#: templates/js/translated/sales_order.js:389 msgid "Complete Shipments" msgstr "" -#: templates/js/translated/sales_order.js:452 +#: templates/js/translated/sales_order.js:411 msgid "Skip" msgstr "" -#: templates/js/translated/sales_order.js:484 +#: templates/js/translated/sales_order.js:443 msgid "Ship Sales Order" msgstr "" -#: templates/js/translated/sales_order.js:500 +#: templates/js/translated/sales_order.js:459 msgid "Ship this order?" msgstr "" -#: templates/js/translated/sales_order.js:506 +#: templates/js/translated/sales_order.js:465 msgid "Order cannot be shipped as there are incomplete shipments" msgstr "" -#: templates/js/translated/sales_order.js:513 +#: templates/js/translated/sales_order.js:472 msgid "This order has line items which have not been completed." msgstr "" -#: templates/js/translated/sales_order.js:514 +#: templates/js/translated/sales_order.js:473 msgid "Shipping this order means that the order and line items will no longer be editable." msgstr "" -#: templates/js/translated/sales_order.js:572 +#: templates/js/translated/sales_order.js:531 msgid "Issue this Sales Order?" msgstr "" -#: templates/js/translated/sales_order.js:577 +#: templates/js/translated/sales_order.js:536 msgid "Issue Sales Order" msgstr "" -#: templates/js/translated/sales_order.js:596 +#: templates/js/translated/sales_order.js:555 msgid "Cancel Sales Order" msgstr "" -#: templates/js/translated/sales_order.js:601 +#: templates/js/translated/sales_order.js:560 msgid "Cancelling this order means that the order will no longer be editable." msgstr "" -#: templates/js/translated/sales_order.js:655 +#: templates/js/translated/sales_order.js:614 msgid "Create New Shipment" msgstr "" -#: templates/js/translated/sales_order.js:764 +#: templates/js/translated/sales_order.js:723 msgid "No sales orders found" msgstr "" -#: templates/js/translated/sales_order.js:944 +#: templates/js/translated/sales_order.js:907 msgid "Edit shipment" msgstr "" -#: templates/js/translated/sales_order.js:947 +#: templates/js/translated/sales_order.js:910 msgid "Complete shipment" msgstr "" -#: templates/js/translated/sales_order.js:952 +#: templates/js/translated/sales_order.js:915 msgid "Delete shipment" msgstr "" -#: templates/js/translated/sales_order.js:969 +#: templates/js/translated/sales_order.js:932 msgid "Edit Shipment" msgstr "" -#: templates/js/translated/sales_order.js:984 +#: templates/js/translated/sales_order.js:947 msgid "Delete Shipment" msgstr "" -#: templates/js/translated/sales_order.js:1017 +#: templates/js/translated/sales_order.js:989 msgid "No matching shipments found" msgstr "" -#: templates/js/translated/sales_order.js:1042 +#: templates/js/translated/sales_order.js:1015 msgid "Shipment Reference" msgstr "" -#: templates/js/translated/sales_order.js:1066 -#: templates/js/translated/sales_order.js:1565 +#: templates/js/translated/sales_order.js:1032 +#: templates/js/translated/sales_order.js:1531 msgid "Not shipped" msgstr "" -#: templates/js/translated/sales_order.js:1084 +#: templates/js/translated/sales_order.js:1050 msgid "Tracking" msgstr "" -#: templates/js/translated/sales_order.js:1088 +#: templates/js/translated/sales_order.js:1054 msgid "Invoice" msgstr "" -#: templates/js/translated/sales_order.js:1255 +#: templates/js/translated/sales_order.js:1221 msgid "Add Shipment" msgstr "" -#: templates/js/translated/sales_order.js:1306 +#: templates/js/translated/sales_order.js:1272 msgid "Confirm stock allocation" msgstr "" -#: templates/js/translated/sales_order.js:1307 +#: templates/js/translated/sales_order.js:1273 msgid "Allocate Stock Items to Sales Order" msgstr "" -#: templates/js/translated/sales_order.js:1513 +#: templates/js/translated/sales_order.js:1479 msgid "No sales order allocations found" msgstr "" -#: templates/js/translated/sales_order.js:1605 +#: templates/js/translated/sales_order.js:1571 msgid "Edit Stock Allocation" msgstr "" -#: templates/js/translated/sales_order.js:1619 +#: templates/js/translated/sales_order.js:1585 msgid "Confirm Delete Operation" msgstr "" -#: templates/js/translated/sales_order.js:1620 +#: templates/js/translated/sales_order.js:1586 msgid "Delete Stock Allocation" msgstr "" -#: templates/js/translated/sales_order.js:1659 -#: templates/js/translated/sales_order.js:1746 +#: templates/js/translated/sales_order.js:1640 +#: templates/js/translated/sales_order.js:1727 #: templates/js/translated/stock.js:1861 msgid "Shipped to customer" msgstr "" -#: templates/js/translated/sales_order.js:1667 -#: templates/js/translated/sales_order.js:1755 +#: templates/js/translated/sales_order.js:1648 +#: templates/js/translated/sales_order.js:1736 msgid "Stock location not specified" msgstr "" -#: templates/js/translated/sales_order.js:2044 -msgid "Allocate serial numbers" -msgstr "" - -#: templates/js/translated/sales_order.js:2048 -msgid "Purchase stock" -msgstr "" - -#: templates/js/translated/sales_order.js:2057 -#: templates/js/translated/sales_order.js:2245 -msgid "Calculate price" -msgstr "" - -#: templates/js/translated/sales_order.js:2071 -msgid "Cannot be deleted as items have been shipped" -msgstr "" - -#: templates/js/translated/sales_order.js:2074 -msgid "Cannot be deleted as items have been allocated" -msgstr "" - -#: templates/js/translated/sales_order.js:2145 +#: templates/js/translated/sales_order.js:2025 +#: templates/js/translated/sales_order.js:2126 msgid "Allocate Serial Numbers" msgstr "" -#: templates/js/translated/sales_order.js:2253 +#: templates/js/translated/sales_order.js:2029 +msgid "Purchase stock" +msgstr "" + +#: templates/js/translated/sales_order.js:2038 +#: templates/js/translated/sales_order.js:2226 +msgid "Calculate price" +msgstr "" + +#: templates/js/translated/sales_order.js:2052 +msgid "Cannot be deleted as items have been shipped" +msgstr "" + +#: templates/js/translated/sales_order.js:2055 +msgid "Cannot be deleted as items have been allocated" +msgstr "" + +#: templates/js/translated/sales_order.js:2234 msgid "Update Unit Price" msgstr "" @@ -14209,11 +14543,8 @@ msgid "Find Serial Number" msgstr "" #: templates/js/translated/stock.js:603 templates/js/translated/stock.js:604 -msgid "Enter serial number" -msgstr "" - #: templates/js/translated/stock.js:620 -msgid "Enter a serial number" +msgid "Enter serial number" msgstr "" #: templates/js/translated/stock.js:640 @@ -14284,7 +14615,7 @@ msgstr "" msgid "Add Stock" msgstr "" -#: templates/js/translated/stock.js:1049 users/models.py:396 +#: templates/js/translated/stock.js:1049 users/models.py:398 msgid "Add" msgstr "Legg til" @@ -14308,7 +14639,7 @@ msgstr "" msgid "Adjust packaging" msgstr "" -#: templates/js/translated/stock.js:1256 templates/js/translated/stock.js:3382 +#: templates/js/translated/stock.js:1256 templates/js/translated/stock.js:3383 msgid "Select Stock Items" msgstr "" @@ -14320,18 +14651,6 @@ msgstr "" msgid "Confirm stock adjustment" msgstr "" -#: templates/js/translated/stock.js:1448 -msgid "PASS" -msgstr "" - -#: templates/js/translated/stock.js:1450 -msgid "FAIL" -msgstr "" - -#: templates/js/translated/stock.js:1455 -msgid "NO RESULT" -msgstr "" - #: templates/js/translated/stock.js:1535 msgid "Pass test" msgstr "" @@ -14388,216 +14707,216 @@ msgstr "" msgid "No stock location set" msgstr "" -#: templates/js/translated/stock.js:1927 +#: templates/js/translated/stock.js:1928 msgid "Change stock status" msgstr "" -#: templates/js/translated/stock.js:1936 +#: templates/js/translated/stock.js:1937 msgid "Merge stock" msgstr "" -#: templates/js/translated/stock.js:1985 +#: templates/js/translated/stock.js:1986 msgid "Delete stock" msgstr "" -#: templates/js/translated/stock.js:2038 +#: templates/js/translated/stock.js:2039 msgid "stock items" msgstr "" -#: templates/js/translated/stock.js:2043 +#: templates/js/translated/stock.js:2044 msgid "Scan to location" msgstr "" -#: templates/js/translated/stock.js:2054 +#: templates/js/translated/stock.js:2055 msgid "Stock Actions" msgstr "" -#: templates/js/translated/stock.js:2098 +#: templates/js/translated/stock.js:2099 msgid "Load installed items" msgstr "" -#: templates/js/translated/stock.js:2176 +#: templates/js/translated/stock.js:2177 msgid "Stock item is in production" msgstr "" -#: templates/js/translated/stock.js:2181 +#: templates/js/translated/stock.js:2182 msgid "Stock item assigned to sales order" msgstr "" -#: templates/js/translated/stock.js:2184 +#: templates/js/translated/stock.js:2185 msgid "Stock item assigned to customer" msgstr "" -#: templates/js/translated/stock.js:2187 +#: templates/js/translated/stock.js:2188 msgid "Serialized stock item has been allocated" msgstr "" -#: templates/js/translated/stock.js:2189 +#: templates/js/translated/stock.js:2190 msgid "Stock item has been fully allocated" msgstr "" -#: templates/js/translated/stock.js:2191 +#: templates/js/translated/stock.js:2192 msgid "Stock item has been partially allocated" msgstr "" -#: templates/js/translated/stock.js:2194 +#: templates/js/translated/stock.js:2195 msgid "Stock item has been installed in another item" msgstr "" -#: templates/js/translated/stock.js:2196 +#: templates/js/translated/stock.js:2197 msgid "Stock item has been consumed by a build order" msgstr "" -#: templates/js/translated/stock.js:2200 +#: templates/js/translated/stock.js:2201 msgid "Stock item has expired" msgstr "" -#: templates/js/translated/stock.js:2202 +#: templates/js/translated/stock.js:2203 msgid "Stock item will expire soon" msgstr "" -#: templates/js/translated/stock.js:2207 +#: templates/js/translated/stock.js:2208 msgid "Stock item has been rejected" msgstr "" -#: templates/js/translated/stock.js:2209 +#: templates/js/translated/stock.js:2210 msgid "Stock item is lost" msgstr "" -#: templates/js/translated/stock.js:2211 +#: templates/js/translated/stock.js:2212 msgid "Stock item is destroyed" msgstr "" -#: templates/js/translated/stock.js:2215 +#: templates/js/translated/stock.js:2216 #: templates/js/translated/table_filters.js:357 msgid "Depleted" msgstr "" -#: templates/js/translated/stock.js:2380 +#: templates/js/translated/stock.js:2381 msgid "Supplier part not specified" msgstr "" -#: templates/js/translated/stock.js:2427 +#: templates/js/translated/stock.js:2428 msgid "Stock Value" msgstr "" -#: templates/js/translated/stock.js:2555 +#: templates/js/translated/stock.js:2556 msgid "No stock items matching query" msgstr "" -#: templates/js/translated/stock.js:2658 +#: templates/js/translated/stock.js:2659 msgid "stock locations" msgstr "" -#: templates/js/translated/stock.js:2813 +#: templates/js/translated/stock.js:2814 msgid "Load Sublocations" msgstr "" -#: templates/js/translated/stock.js:2930 +#: templates/js/translated/stock.js:2931 msgid "Details" msgstr "" -#: templates/js/translated/stock.js:2934 +#: templates/js/translated/stock.js:2935 msgid "No changes" msgstr "" -#: templates/js/translated/stock.js:2946 +#: templates/js/translated/stock.js:2947 msgid "Part information unavailable" msgstr "" -#: templates/js/translated/stock.js:2968 +#: templates/js/translated/stock.js:2969 msgid "Location no longer exists" msgstr "" -#: templates/js/translated/stock.js:2985 +#: templates/js/translated/stock.js:2986 msgid "Build order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3000 +#: templates/js/translated/stock.js:3001 msgid "Purchase order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3017 +#: templates/js/translated/stock.js:3018 msgid "Sales Order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3034 +#: templates/js/translated/stock.js:3035 msgid "Return Order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3053 +#: templates/js/translated/stock.js:3054 msgid "Customer no longer exists" msgstr "" -#: templates/js/translated/stock.js:3071 +#: templates/js/translated/stock.js:3072 msgid "Stock item no longer exists" msgstr "" -#: templates/js/translated/stock.js:3089 +#: templates/js/translated/stock.js:3090 msgid "Added" msgstr "" -#: templates/js/translated/stock.js:3097 +#: templates/js/translated/stock.js:3098 msgid "Removed" msgstr "" -#: templates/js/translated/stock.js:3169 +#: templates/js/translated/stock.js:3170 msgid "No installed items" msgstr "" -#: templates/js/translated/stock.js:3223 templates/js/translated/stock.js:3259 +#: templates/js/translated/stock.js:3224 templates/js/translated/stock.js:3260 msgid "Uninstall Stock Item" msgstr "" -#: templates/js/translated/stock.js:3280 +#: templates/js/translated/stock.js:3281 msgid "Select stock item to uninstall" msgstr "" -#: templates/js/translated/stock.js:3301 +#: templates/js/translated/stock.js:3302 msgid "Install another stock item into this item" msgstr "" -#: templates/js/translated/stock.js:3302 +#: templates/js/translated/stock.js:3303 msgid "Stock items can only be installed if they meet the following criteria" msgstr "" -#: templates/js/translated/stock.js:3304 +#: templates/js/translated/stock.js:3305 msgid "The Stock Item links to a Part which is the BOM for this Stock Item" msgstr "" -#: templates/js/translated/stock.js:3305 +#: templates/js/translated/stock.js:3306 msgid "The Stock Item is currently available in stock" msgstr "" -#: templates/js/translated/stock.js:3306 +#: templates/js/translated/stock.js:3307 msgid "The Stock Item is not already installed in another item" msgstr "" -#: templates/js/translated/stock.js:3307 +#: templates/js/translated/stock.js:3308 msgid "The Stock Item is tracked by either a batch code or serial number" msgstr "" -#: templates/js/translated/stock.js:3320 +#: templates/js/translated/stock.js:3321 msgid "Select part to install" msgstr "" -#: templates/js/translated/stock.js:3383 +#: templates/js/translated/stock.js:3384 msgid "Select one or more stock items" msgstr "" -#: templates/js/translated/stock.js:3396 +#: templates/js/translated/stock.js:3397 msgid "Selected stock items" msgstr "" -#: templates/js/translated/stock.js:3400 +#: templates/js/translated/stock.js:3401 msgid "Change Stock Status" msgstr "" -#: templates/js/translated/stock.js:3477 +#: templates/js/translated/stock.js:3478 msgid "This week" msgstr "" -#: templates/js/translated/stock.js:3485 +#: templates/js/translated/stock.js:3486 msgid "This month" msgstr "" @@ -14734,10 +15053,6 @@ msgstr "" msgid "Show items which are in production" msgstr "" -#: templates/js/translated/table_filters.js:372 -msgid "Include Variants" -msgstr "" - #: templates/js/translated/table_filters.js:373 msgid "Include stock items for variant parts" msgstr "" @@ -15012,10 +15327,6 @@ msgstr "Kontofeil ved innlogging" msgid "An error occurred while attempting to login via your social network account." msgstr "En feil oppstod under forsøk på å logge inn via din sosiale nettverkskonto." -#: templates/socialaccount/authentication_error.html:13 -msgid "Contact your system administrator for further information." -msgstr "Kontakt systemadministratoren for mer informasjon." - #: templates/socialaccount/login.html:13 #, python-format msgid "Connect %(provider)s" @@ -15141,27 +15452,27 @@ msgstr "Ja" msgid "No" msgstr "Nei" -#: users/admin.py:104 +#: users/admin.py:101 msgid "Users" msgstr "Brukere" -#: users/admin.py:105 +#: users/admin.py:102 msgid "Select which users are assigned to this group" msgstr "Velg hvilke brukere som er tilordnet denne gruppen" -#: users/admin.py:249 +#: users/admin.py:246 msgid "The following users are members of multiple groups" msgstr "Følgende brukere er medlemmer av flere grupper" -#: users/admin.py:283 +#: users/admin.py:280 msgid "Personal info" msgstr "Personlig informasjon" -#: users/admin.py:285 +#: users/admin.py:282 msgid "Permissions" msgstr "Tillatelser" -#: users/admin.py:288 +#: users/admin.py:285 msgid "Important dates" msgstr "Viktige datoer" @@ -15205,35 +15516,35 @@ msgstr "Sist gang tokenet ble brukt" msgid "Revoked" msgstr "Tilbakekalt" -#: users/models.py:379 +#: users/models.py:381 msgid "Permission set" msgstr "Tillatelse satt" -#: users/models.py:388 +#: users/models.py:390 msgid "Group" msgstr "Gruppe" -#: users/models.py:392 +#: users/models.py:394 msgid "View" msgstr "Visning" -#: users/models.py:392 +#: users/models.py:394 msgid "Permission to view items" msgstr "Tillatelse til å se elementer" -#: users/models.py:396 +#: users/models.py:398 msgid "Permission to add items" msgstr "Tillatelse til å legge til elementer" -#: users/models.py:400 +#: users/models.py:402 msgid "Change" msgstr "Endre" -#: users/models.py:402 +#: users/models.py:404 msgid "Permissions to edit items" msgstr "Tillatelse til å endre elementer" -#: users/models.py:408 +#: users/models.py:410 msgid "Permission to delete items" msgstr "Tillatelse til å slette elementer" diff --git a/src/backend/InvenTree/locale/pl/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/pl/LC_MESSAGES/django.po index c6431a1394..1df57718ed 100644 --- a/src/backend/InvenTree/locale/pl/LC_MESSAGES/django.po +++ b/src/backend/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: 2024-08-20 01:22+0000\n" -"PO-Revision-Date: 2024-08-20 19:51\n" +"POT-Creation-Date: 2024-11-04 03:11+0000\n" +"PO-Revision-Date: 2024-11-04 03:14\n" "Last-Translator: \n" "Language-Team: Polish\n" "Language: pl_PL\n" @@ -14,81 +14,89 @@ msgstr "" "X-Crowdin-Project: inventree\n" "X-Crowdin-Project-ID: 452300\n" "X-Crowdin-Language: pl\n" -"X-Crowdin-File: /[inventree.InvenTree] l10/src/backend/InvenTree/locale/en/LC_MESSAGES/django.po\n" -"X-Crowdin-File-ID: 216\n" +"X-Crowdin-File: /src/backend/InvenTree/locale/en/LC_MESSAGES/django.po\n" +"X-Crowdin-File-ID: 250\n" -#: InvenTree/api.py:269 +#: InvenTree/api.py:270 msgid "API endpoint not found" msgstr "Nie znaleziono punktu końcowego API" -#: InvenTree/api.py:502 +#: InvenTree/api.py:387 +msgid "Invalid items list provided" +msgstr "" + +#: InvenTree/api.py:396 +msgid "Invalid filters provided" +msgstr "" + +#: InvenTree/api.py:401 +msgid "No items found to delete" +msgstr "" + +#: InvenTree/api.py:515 msgid "User does not have permission to view this model" msgstr "Użytkownik nie ma uprawnień do przeglądania tego modelu" -#: InvenTree/conversion.py:160 +#: InvenTree/conversion.py:161 #, python-brace-format msgid "Invalid unit provided ({unit})" msgstr "Nieprawidłowa jednostka ({unit})" -#: InvenTree/conversion.py:177 +#: InvenTree/conversion.py:178 msgid "No value provided" msgstr "Nie podano wartości" -#: InvenTree/conversion.py:204 +#: InvenTree/conversion.py:205 #, python-brace-format msgid "Could not convert {original} to {unit}" msgstr "Nie udało się przeliczyć {original} na {unit}" -#: InvenTree/conversion.py:206 -msgid "Invalid quantity supplied" +#: InvenTree/conversion.py:207 InvenTree/conversion.py:221 +#: InvenTree/helpers.py:505 order/models.py:589 order/models.py:832 +msgid "Invalid quantity provided" msgstr "Podano nieprawidłową ilość" -#: InvenTree/conversion.py:220 -#, python-brace-format -msgid "Invalid quantity supplied ({exc})" -msgstr "Niepoprawna ilość ({exc})" - -#: InvenTree/exceptions.py:108 +#: InvenTree/exceptions.py:104 msgid "Error details can be found in the admin panel" msgstr "Szczegóły błędu można znaleźć w panelu administracyjnym" -#: InvenTree/fields.py:136 +#: InvenTree/fields.py:135 msgid "Enter date" msgstr "Wprowadź dane" -#: InvenTree/fields.py:205 InvenTree/models.py:929 build/serializers.py:468 -#: build/serializers.py:546 build/templates/build/sidebar.html:29 -#: company/models.py:836 +#: InvenTree/fields.py:204 InvenTree/models.py:928 build/serializers.py:512 +#: build/serializers.py:590 build/templates/build/sidebar.html:29 +#: company/models.py:833 #: company/templates/company/manufacturer_part_sidebar.html:11 #: company/templates/company/sidebar.html:37 -#: company/templates/company/supplier_part_sidebar.html:11 order/models.py:1380 +#: company/templates/company/supplier_part_sidebar.html:11 order/models.py:1397 #: order/templates/order/po_sidebar.html:11 #: order/templates/order/return_order_sidebar.html:9 #: order/templates/order/so_sidebar.html:17 part/admin.py:59 -#: part/models.py:3297 part/templates/part/part_sidebar.html:65 +#: part/models.py:3348 part/templates/part/part_sidebar.html:65 #: report/templates/report/inventree_build_order_report.html:172 -#: stock/admin.py:230 stock/models.py:2375 stock/models.py:2563 -#: stock/serializers.py:698 stock/serializers.py:856 stock/serializers.py:982 -#: stock/serializers.py:1032 stock/serializers.py:1343 -#: stock/serializers.py:1432 stock/serializers.py:1597 +#: stock/admin.py:231 stock/models.py:2494 stock/models.py:2679 +#: stock/serializers.py:725 stock/serializers.py:887 stock/serializers.py:1013 +#: stock/serializers.py:1063 stock/serializers.py:1374 +#: stock/serializers.py:1463 stock/serializers.py:1628 #: stock/templates/stock/stock_sidebar.html:25 #: templates/js/translated/barcode.js:143 templates/js/translated/bom.js:1265 -#: templates/js/translated/company.js:1684 templates/js/translated/order.js:372 +#: templates/js/translated/company.js:1685 templates/js/translated/order.js:372 #: templates/js/translated/part.js:1087 -#: templates/js/translated/purchase_order.js:2270 +#: templates/js/translated/purchase_order.js:2254 #: templates/js/translated/return_order.js:774 -#: templates/js/translated/sales_order.js:1103 -#: templates/js/translated/sales_order.js:2018 -#: templates/js/translated/stock.js:1621 templates/js/translated/stock.js:2513 +#: templates/js/translated/sales_order.js:1069 +#: templates/js/translated/sales_order.js:1999 +#: templates/js/translated/stock.js:1621 templates/js/translated/stock.js:2514 msgid "Notes" msgstr "Uwagi" -#: InvenTree/format.py:164 +#: InvenTree/format.py:162 #, python-brace-format msgid "Value '{name}' does not appear in pattern format" msgstr "Wartość '{name}' nie pojawia się w formacie wzoru" -#: InvenTree/format.py:175 +#: InvenTree/format.py:173 msgid "Provided value does not match required pattern: " msgstr "Podana wartość nie pasuje do wymaganego wzoru: " @@ -132,397 +140,409 @@ msgstr "" msgid "The provided primary email address is not valid." msgstr "Podany podstawowy adres e-mail jest nieprawidłowy." -#: InvenTree/forms.py:274 +#: InvenTree/forms.py:273 msgid "The provided email domain is not approved." msgstr "Podany e-mail domeny nie został zatwierdzony." -#: InvenTree/forms.py:403 +#: InvenTree/forms.py:402 msgid "Registration is disabled." msgstr "Rejestracja jest wyłączona." -#: InvenTree/helpers.py:491 order/models.py:567 order/models.py:810 -msgid "Invalid quantity provided" -msgstr "Podano nieprawidłową ilość" +#: InvenTree/helpers.py:509 +msgid "Cannot serialize more than 1000 items at once" +msgstr "" -#: InvenTree/helpers.py:499 +#: InvenTree/helpers.py:515 msgid "Empty serial number string" msgstr "Pusty ciąg numeru seryjnego" -#: InvenTree/helpers.py:528 +#: InvenTree/helpers.py:544 msgid "Duplicate serial" msgstr "Podwójny numer seryjny" -#: InvenTree/helpers.py:560 InvenTree/helpers.py:603 +#: InvenTree/helpers.py:576 InvenTree/helpers.py:619 InvenTree/helpers.py:637 +#: InvenTree/helpers.py:644 InvenTree/helpers.py:663 #, python-brace-format -msgid "Invalid group range: {group}" -msgstr "Nieprawidłowy zakres grupy: {group}" +msgid "Invalid group: {group}" +msgstr "" -#: InvenTree/helpers.py:591 +#: InvenTree/helpers.py:607 #, python-brace-format msgid "Group range {group} exceeds allowed quantity ({expected_quantity})" msgstr "Zakres grupy {group} przekracza dozwoloną ilość ({expected_quantity})" -#: InvenTree/helpers.py:621 InvenTree/helpers.py:628 InvenTree/helpers.py:647 -#, python-brace-format -msgid "Invalid group sequence: {group}" -msgstr "Nieprawidłowa kolejność grup: {group}" - -#: InvenTree/helpers.py:657 +#: InvenTree/helpers.py:673 msgid "No serial numbers found" msgstr "Nie znaleziono numerów seryjnych" -#: InvenTree/helpers.py:662 +#: InvenTree/helpers.py:678 msgid "Number of unique serial numbers ({len(serials)}) must match quantity ({expected_quantity})" msgstr "Liczba unikalnych numerów seryjnych ({len(serials)}) musi odpowiadać ilości ({expected_quantity})" -#: InvenTree/helpers.py:780 +#: InvenTree/helpers.py:796 msgid "Remove HTML tags from this value" msgstr "Usuń znaczniki HTML z tej wartości" -#: InvenTree/helpers_model.py:133 +#: InvenTree/helpers.py:881 +msgid "Data contains prohibited markdown content" +msgstr "" + +#: InvenTree/helpers_model.py:130 msgid "Connection error" msgstr "Błąd połączenia" -#: InvenTree/helpers_model.py:138 InvenTree/helpers_model.py:145 +#: InvenTree/helpers_model.py:135 InvenTree/helpers_model.py:142 msgid "Server responded with invalid status code" msgstr "Serwer odpowiedział z nieprawidłowym kodem statusu" -#: InvenTree/helpers_model.py:141 +#: InvenTree/helpers_model.py:138 msgid "Exception occurred" msgstr "Wystąpił wyjątek" -#: InvenTree/helpers_model.py:151 +#: InvenTree/helpers_model.py:148 msgid "Server responded with invalid Content-Length value" msgstr "Serwer odpowiedział z nieprawidłową wartością Content-Length" -#: InvenTree/helpers_model.py:154 +#: InvenTree/helpers_model.py:151 msgid "Image size is too large" msgstr "Rozmiar obrazu jest zbyt duży" -#: InvenTree/helpers_model.py:166 +#: InvenTree/helpers_model.py:163 msgid "Image download exceeded maximum size" msgstr "Przekroczono maksymalny rozmiar pobieranego obrazu" -#: InvenTree/helpers_model.py:171 +#: InvenTree/helpers_model.py:168 msgid "Remote server returned empty response" msgstr "Zdalny serwer zwrócił pustą odpowiedź" -#: InvenTree/helpers_model.py:179 +#: InvenTree/helpers_model.py:176 msgid "Supplied URL is not a valid image file" msgstr "Podany adres URL nie jest poprawnym plikiem obrazu" -#: InvenTree/locales.py:18 +#: InvenTree/locales.py:20 msgid "Arabic" msgstr "" -#: InvenTree/locales.py:19 +#: InvenTree/locales.py:21 msgid "Bulgarian" msgstr "bułgarski" -#: InvenTree/locales.py:20 +#: InvenTree/locales.py:22 msgid "Czech" msgstr "Czeski" -#: InvenTree/locales.py:21 +#: InvenTree/locales.py:23 msgid "Danish" msgstr "Duński" -#: InvenTree/locales.py:22 +#: InvenTree/locales.py:24 msgid "German" msgstr "Niemiecki" -#: InvenTree/locales.py:23 +#: InvenTree/locales.py:25 msgid "Greek" msgstr "Grecki" -#: InvenTree/locales.py:24 +#: InvenTree/locales.py:26 msgid "English" msgstr "Angielski" -#: InvenTree/locales.py:25 +#: InvenTree/locales.py:27 msgid "Spanish" msgstr "Hiszpański" -#: InvenTree/locales.py:26 +#: InvenTree/locales.py:28 msgid "Spanish (Mexican)" msgstr "Hiszpański (Meksyk)" -#: InvenTree/locales.py:27 +#: InvenTree/locales.py:29 msgid "Estonian" msgstr "" -#: InvenTree/locales.py:28 +#: InvenTree/locales.py:30 msgid "Farsi / Persian" msgstr "Perski" -#: InvenTree/locales.py:29 +#: InvenTree/locales.py:31 msgid "Finnish" msgstr "fiński" -#: InvenTree/locales.py:30 +#: InvenTree/locales.py:32 msgid "French" msgstr "Francuski" -#: InvenTree/locales.py:31 +#: InvenTree/locales.py:33 msgid "Hebrew" msgstr "Hebrajski" -#: InvenTree/locales.py:32 +#: InvenTree/locales.py:34 msgid "Hindi" msgstr "hinduski" -#: InvenTree/locales.py:33 +#: InvenTree/locales.py:35 msgid "Hungarian" msgstr "Węgierski" -#: InvenTree/locales.py:34 +#: InvenTree/locales.py:36 msgid "Italian" msgstr "Włoski" -#: InvenTree/locales.py:35 +#: InvenTree/locales.py:37 msgid "Japanese" msgstr "Japoński" -#: InvenTree/locales.py:36 +#: InvenTree/locales.py:38 msgid "Korean" msgstr "Koreański" -#: InvenTree/locales.py:37 +#: InvenTree/locales.py:39 +msgid "Lithuanian" +msgstr "" + +#: InvenTree/locales.py:40 msgid "Latvian" msgstr "Łotewski" -#: InvenTree/locales.py:38 +#: InvenTree/locales.py:41 msgid "Dutch" msgstr "Holenderski" -#: InvenTree/locales.py:39 +#: InvenTree/locales.py:42 msgid "Norwegian" msgstr "Norweski" -#: InvenTree/locales.py:40 +#: InvenTree/locales.py:43 msgid "Polish" msgstr "Polski" -#: InvenTree/locales.py:41 +#: InvenTree/locales.py:44 msgid "Portuguese" msgstr "Portugalski" -#: InvenTree/locales.py:42 +#: InvenTree/locales.py:45 msgid "Portuguese (Brazilian)" msgstr "Portugalski (Brazylijski)" -#: InvenTree/locales.py:43 +#: InvenTree/locales.py:46 msgid "Romanian" msgstr "Rumuński" -#: InvenTree/locales.py:44 +#: InvenTree/locales.py:47 msgid "Russian" msgstr "Rosyjski" -#: InvenTree/locales.py:45 +#: InvenTree/locales.py:48 msgid "Slovak" msgstr "Słowacki" -#: InvenTree/locales.py:46 +#: InvenTree/locales.py:49 msgid "Slovenian" msgstr "Słoweński" -#: InvenTree/locales.py:47 +#: InvenTree/locales.py:50 msgid "Serbian" msgstr "serbski" -#: InvenTree/locales.py:48 +#: InvenTree/locales.py:51 msgid "Swedish" msgstr "Szwedzki" -#: InvenTree/locales.py:49 +#: InvenTree/locales.py:52 msgid "Thai" msgstr "Tajski" -#: InvenTree/locales.py:50 +#: InvenTree/locales.py:53 msgid "Turkish" msgstr "Turecki" -#: InvenTree/locales.py:51 +#: InvenTree/locales.py:54 msgid "Ukrainian" msgstr "Ukraiński" -#: InvenTree/locales.py:52 +#: InvenTree/locales.py:55 msgid "Vietnamese" msgstr "Wietnamski" -#: InvenTree/locales.py:53 +#: InvenTree/locales.py:56 msgid "Chinese (Simplified)" msgstr "chiński (uproszczony)" -#: InvenTree/locales.py:54 +#: InvenTree/locales.py:57 msgid "Chinese (Traditional)" msgstr "chiński (tradycyjny)" #: InvenTree/magic_login.py:28 -#, python-brace-format -msgid "[{site_name}] Log in to the app" -msgstr "[{site_name}] Logowanie do aplikacji" +msgid "Log in to the app" +msgstr "" -#: InvenTree/magic_login.py:38 InvenTree/serializers.py:415 -#: company/models.py:136 company/templates/company/company_base.html:138 +#: InvenTree/magic_login.py:38 InvenTree/serializers.py:416 +#: company/models.py:133 company/templates/company/company_base.html:138 #: templates/InvenTree/settings/user.html:49 -#: templates/js/translated/company.js:677 +#: templates/js/translated/company.js:678 msgid "Email" msgstr "Adres E-Mail" -#: InvenTree/models.py:103 +#: InvenTree/models.py:105 msgid "Error running plugin validation" msgstr "Błąd podczas walidacji wtyczki" -#: InvenTree/models.py:172 +#: InvenTree/models.py:174 msgid "Metadata must be a python dict object" msgstr "Metadane muszą być obiektem typu dict w Python" -#: InvenTree/models.py:178 +#: InvenTree/models.py:180 msgid "Plugin Metadata" msgstr "Wtyczka Metadane" -#: InvenTree/models.py:179 +#: InvenTree/models.py:181 msgid "JSON metadata field, for use by external plugins" msgstr "Pole metadanych JSON, do użycia przez wtyczki zewnętrzne" -#: InvenTree/models.py:409 +#: InvenTree/models.py:408 msgid "Improperly formatted pattern" msgstr "Nieprawidłowo sformatowany wzór" -#: InvenTree/models.py:416 +#: InvenTree/models.py:415 msgid "Unknown format key specified" msgstr "Określono nieznany format klucza" -#: InvenTree/models.py:422 +#: InvenTree/models.py:421 msgid "Missing required format key" msgstr "Brak wymaganego formatu klucza" -#: InvenTree/models.py:433 +#: InvenTree/models.py:432 msgid "Reference field cannot be empty" msgstr "Pole odniesienia nie może być puste" -#: InvenTree/models.py:441 +#: InvenTree/models.py:440 msgid "Reference must match required pattern" msgstr "Odniesienie musi być zgodne z wymaganym wzorem" -#: InvenTree/models.py:472 +#: InvenTree/models.py:471 msgid "Reference number is too large" msgstr "Numer odniesienia jest zbyt duży" -#: InvenTree/models.py:723 +#: InvenTree/models.py:722 msgid "Duplicate names cannot exist under the same parent" msgstr "Duplikaty nazw nie mogą istnieć pod tym samym rodzicem" -#: InvenTree/models.py:740 +#: InvenTree/models.py:739 msgid "Invalid choice" msgstr "Błędny wybór" -#: InvenTree/models.py:770 common/models.py:2702 common/models.py:3132 -#: common/serializers.py:412 company/models.py:593 machine/models.py:24 -#: part/models.py:983 part/models.py:3764 plugin/models.py:51 -#: report/models.py:149 stock/models.py:77 +#: InvenTree/models.py:769 common/models.py:2766 common/models.py:3193 +#: common/models.py:3413 common/serializers.py:460 company/models.py:590 +#: machine/models.py:24 part/models.py:1044 part/models.py:3815 +#: plugin/models.py:51 report/models.py:149 stock/models.py:83 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/notifications.html:17 #: templates/InvenTree/settings/plugin.html:83 #: templates/InvenTree/settings/plugin_settings.html:22 #: templates/InvenTree/settings/settings_staff_js.html:67 #: templates/InvenTree/settings/settings_staff_js.html:454 -#: templates/js/translated/company.js:676 -#: templates/js/translated/company.js:724 -#: templates/js/translated/company.js:913 -#: templates/js/translated/company.js:1165 -#: templates/js/translated/company.js:1413 templates/js/translated/part.js:1193 +#: templates/js/translated/company.js:677 +#: templates/js/translated/company.js:725 +#: templates/js/translated/company.js:914 +#: templates/js/translated/company.js:1166 +#: templates/js/translated/company.js:1414 templates/js/translated/part.js:1193 #: templates/js/translated/part.js:1481 templates/js/translated/part.js:1617 -#: templates/js/translated/part.js:2768 templates/js/translated/stock.js:2801 +#: templates/js/translated/part.js:2768 templates/js/translated/stock.js:2802 msgid "Name" msgstr "Nazwa" -#: InvenTree/models.py:776 build/models.py:250 -#: build/templates/build/detail.html:24 common/models.py:156 -#: company/models.py:521 company/models.py:827 +#: InvenTree/models.py:775 build/models.py:251 +#: build/templates/build/detail.html:24 common/models.py:159 +#: company/models.py:518 company/models.py:824 #: company/templates/company/company_base.html:77 #: company/templates/company/manufacturer_part.html:75 -#: company/templates/company/supplier_part.html:107 order/models.py:288 -#: order/models.py:1413 part/admin.py:305 part/admin.py:411 part/models.py:1006 -#: part/models.py:3779 part/templates/part/category.html:79 -#: part/templates/part/part_base.html:170 +#: company/templates/company/supplier_part.html:108 order/models.py:295 +#: order/models.py:1430 part/admin.py:305 part/admin.py:411 part/models.py:1067 +#: part/models.py:3830 part/templates/part/category.html:79 +#: part/templates/part/part_base.html:171 #: part/templates/part/part_scheduling.html:12 report/models.py:155 -#: report/models.py:509 report/models.py:535 +#: report/models.py:517 report/models.py:543 #: report/templates/report/inventree_build_order_report.html:117 -#: stock/admin.py:54 stock/models.py:83 stock/templates/stock/location.html:122 +#: stock/admin.py:54 stock/models.py:89 stock/templates/stock/location.html:123 #: templates/InvenTree/settings/notifications.html:19 #: templates/InvenTree/settings/plugin_settings.html:27 #: templates/InvenTree/settings/settings_staff_js.html:170 #: templates/InvenTree/settings/settings_staff_js.html:459 #: templates/js/translated/bom.js:633 templates/js/translated/bom.js:963 -#: templates/js/translated/build.js:2311 templates/js/translated/company.js:519 -#: templates/js/translated/company.js:1330 -#: templates/js/translated/company.js:1641 templates/js/translated/index.js:119 +#: templates/js/translated/build.js:2314 templates/js/translated/company.js:520 +#: templates/js/translated/company.js:1331 +#: templates/js/translated/company.js:1642 templates/js/translated/index.js:119 #: templates/js/translated/order.js:323 templates/js/translated/part.js:1245 #: templates/js/translated/part.js:1490 templates/js/translated/part.js:1628 #: templates/js/translated/part.js:1965 templates/js/translated/part.js:2361 #: templates/js/translated/part.js:2803 templates/js/translated/part.js:2915 #: templates/js/translated/plugin.js:80 -#: templates/js/translated/purchase_order.js:1776 -#: templates/js/translated/purchase_order.js:1919 -#: templates/js/translated/purchase_order.js:2092 +#: templates/js/translated/purchase_order.js:1760 +#: templates/js/translated/purchase_order.js:1903 +#: templates/js/translated/purchase_order.js:2076 #: templates/js/translated/return_order.js:313 -#: templates/js/translated/sales_order.js:838 -#: templates/js/translated/sales_order.js:1848 -#: templates/js/translated/stock.js:1600 templates/js/translated/stock.js:2143 -#: templates/js/translated/stock.js:2832 templates/js/translated/stock.js:2915 +#: templates/js/translated/sales_order.js:797 +#: templates/js/translated/sales_order.js:1829 +#: templates/js/translated/stock.js:1600 templates/js/translated/stock.js:2144 +#: templates/js/translated/stock.js:2833 templates/js/translated/stock.js:2916 msgid "Description" msgstr "Opis" -#: InvenTree/models.py:777 stock/models.py:84 +#: InvenTree/models.py:776 stock/models.py:90 msgid "Description (optional)" msgstr "Opis (opcjonalny)" -#: InvenTree/models.py:792 templates/js/translated/part.js:2812 -#: templates/js/translated/stock.js:2841 +#: InvenTree/models.py:791 common/models.py:3546 +#: templates/js/translated/part.js:2812 templates/js/translated/stock.js:2842 msgid "Path" msgstr "Ścieżka" -#: InvenTree/models.py:929 +#: InvenTree/models.py:928 msgid "Markdown notes (optional)" msgstr "Notatki Markdown (opcjonalne)" -#: InvenTree/models.py:960 +#: InvenTree/models.py:959 msgid "Barcode Data" msgstr "Dane kodu kreskowego" -#: InvenTree/models.py:961 +#: InvenTree/models.py:960 msgid "Third party barcode data" msgstr "Dane kodu kreskowego stron trzecich" -#: InvenTree/models.py:967 +#: InvenTree/models.py:966 msgid "Barcode Hash" msgstr "Hasz kodu kreskowego" -#: InvenTree/models.py:968 +#: InvenTree/models.py:967 msgid "Unique hash of barcode data" msgstr "Unikalny hasz danych kodu kreskowego" -#: InvenTree/models.py:1035 +#: InvenTree/models.py:1034 msgid "Existing barcode found" msgstr "Znaleziono istniejący kod kreskowy" -#: InvenTree/models.py:1078 +#: InvenTree/models.py:1112 +msgid "Task Failure" +msgstr "" + +#: InvenTree/models.py:1114 +#, python-brace-format +msgid "Background worker task '{instance.func}' failed after {n} attempts" +msgstr "" + +#: InvenTree/models.py:1142 msgid "Server Error" msgstr "Błąd serwera" -#: InvenTree/models.py:1079 +#: InvenTree/models.py:1143 msgid "An error has been logged by the server." msgstr "Błąd został zapisany w logach serwera." -#: InvenTree/serializers.py:63 part/models.py:4387 +#: InvenTree/serializers.py:63 part/models.py:4444 msgid "Must be a valid number" msgstr "Numer musi być prawidłowy" -#: InvenTree/serializers.py:100 company/models.py:186 -#: company/templates/company/company_base.html:112 part/models.py:3115 +#: InvenTree/serializers.py:100 company/models.py:183 +#: company/templates/company/company_base.html:112 part/models.py:3166 #: templates/InvenTree/settings/settings_staff_js.html:44 #: templates/currency_data.html:5 msgid "Currency" @@ -532,15 +552,15 @@ msgstr "Waluta" msgid "Select currency from available options" msgstr "Wybierz walutę z dostępnych opcji" -#: InvenTree/serializers.py:407 templates/InvenTree/settings/user.html:33 +#: InvenTree/serializers.py:405 templates/InvenTree/settings/user.html:33 msgid "Username" msgstr "" -#: InvenTree/serializers.py:409 templates/InvenTree/settings/user.html:37 +#: InvenTree/serializers.py:408 templates/InvenTree/settings/user.html:37 msgid "First Name" msgstr "" -#: InvenTree/serializers.py:409 +#: InvenTree/serializers.py:408 msgid "First name of the user" msgstr "" @@ -552,30 +572,30 @@ msgstr "" msgid "Last name of the user" msgstr "" -#: InvenTree/serializers.py:415 +#: InvenTree/serializers.py:416 msgid "Email address of the user" msgstr "" -#: InvenTree/serializers.py:439 +#: InvenTree/serializers.py:441 msgid "Staff" msgstr "" -#: InvenTree/serializers.py:439 +#: InvenTree/serializers.py:441 msgid "Does this user have staff permissions" msgstr "" -#: InvenTree/serializers.py:442 +#: InvenTree/serializers.py:445 msgid "Superuser" msgstr "" -#: InvenTree/serializers.py:442 +#: InvenTree/serializers.py:445 msgid "Is this user a superuser" msgstr "" -#: InvenTree/serializers.py:445 common/models.py:2707 company/models.py:163 -#: company/models.py:801 machine/models.py:39 part/admin.py:88 -#: part/models.py:1189 plugin/models.py:66 -#: templates/js/translated/company.js:523 +#: InvenTree/serializers.py:449 common/models.py:2771 company/models.py:160 +#: company/models.py:798 machine/models.py:39 part/admin.py:88 +#: part/models.py:1250 plugin/models.py:66 +#: templates/js/translated/company.js:524 #: templates/js/translated/table_filters.js:134 #: templates/js/translated/table_filters.js:226 #: templates/js/translated/table_filters.js:513 @@ -585,230 +605,229 @@ msgstr "" msgid "Active" msgstr "Aktywny" -#: InvenTree/serializers.py:445 +#: InvenTree/serializers.py:449 msgid "Is this user account active" msgstr "" -#: InvenTree/serializers.py:463 +#: InvenTree/serializers.py:467 msgid "You do not have permission to change this user role." msgstr "Nie masz uprawnień do zmiany tej roli użytkownika." -#: InvenTree/serializers.py:475 +#: InvenTree/serializers.py:503 msgid "Only superusers can create new users" msgstr "Tylko superużytkownicy mogą tworzyć nowych użytkowników" -#: InvenTree/serializers.py:494 +#: InvenTree/serializers.py:523 msgid "Your account has been created." msgstr "Twoje konto zostało utworzone." -#: InvenTree/serializers.py:496 +#: InvenTree/serializers.py:525 msgid "Please use the password reset function to login" msgstr "Zresetuj hasło" -#: InvenTree/serializers.py:503 +#: InvenTree/serializers.py:531 msgid "Welcome to InvenTree" msgstr "Witamy w InvenTree" -#: InvenTree/serializers.py:561 +#: InvenTree/serializers.py:594 msgid "Invalid value" msgstr "Nieprawidłowa wartość" -#: InvenTree/serializers.py:581 importer/models.py:63 +#: InvenTree/serializers.py:614 importer/models.py:64 msgid "Data File" msgstr "Plik danych" -#: InvenTree/serializers.py:582 +#: InvenTree/serializers.py:615 msgid "Select data file for upload" msgstr "Wybierz plik danych do przesłania" -#: InvenTree/serializers.py:599 -msgid "Unsupported file type" -msgstr "Nieobsługiwany typ pliku" +#: InvenTree/serializers.py:632 common/files.py:63 +msgid "Unsupported file format" +msgstr "" -#: InvenTree/serializers.py:605 +#: InvenTree/serializers.py:638 msgid "File is too large" msgstr "Plik jest zbyt duży" -#: InvenTree/serializers.py:626 +#: InvenTree/serializers.py:659 msgid "No columns found in file" msgstr "Nie znaleziono kolumn w pliku" -#: InvenTree/serializers.py:629 +#: InvenTree/serializers.py:662 msgid "No data rows found in file" msgstr "Nie znaleziono wierszy danych w pliku" -#: InvenTree/serializers.py:742 +#: InvenTree/serializers.py:774 msgid "No data rows provided" msgstr "Nie podano wierszy danych" -#: InvenTree/serializers.py:745 +#: InvenTree/serializers.py:777 msgid "No data columns supplied" msgstr "Nie podano kolumn danych" -#: InvenTree/serializers.py:812 +#: InvenTree/serializers.py:843 #, python-brace-format msgid "Missing required column: '{name}'" msgstr "Brakuje wymaganej kolumny: '{name}'" -#: InvenTree/serializers.py:821 +#: InvenTree/serializers.py:852 #, python-brace-format msgid "Duplicate column: '{col}'" msgstr "Zduplikowana kolumna: '{col}'" -#: InvenTree/serializers.py:861 +#: InvenTree/serializers.py:891 msgid "Remote Image" msgstr "Obrazek zewnętrzny" -#: InvenTree/serializers.py:862 +#: InvenTree/serializers.py:892 msgid "URL of remote image file" msgstr "Adres URL zdalnego pliku obrazu" -#: InvenTree/serializers.py:880 +#: InvenTree/serializers.py:910 msgid "Downloading images from remote URL is not enabled" msgstr "Pobieranie obrazów ze zdalnego URL nie jest włączone" -#: InvenTree/status.py:66 part/serializers.py:1246 -msgid "Background worker check failed" -msgstr "Sprawdzenie robotnika w tle nie powiodło się" - -#: InvenTree/status.py:70 -msgid "Email backend not configured" -msgstr "Nie skonfigurowano backendu e-mail" - -#: InvenTree/status.py:73 -msgid "InvenTree system health checks failed" -msgstr "Sprawdzanie poziomu zdrowia InvenTree nie powiodło się" +#: InvenTree/serializers.py:917 +msgid "Failed to download image from remote URL" +msgstr "" #: InvenTree/templatetags/inventree_extras.py:184 msgid "Unknown database" msgstr "Nieznana baza danych" -#: InvenTree/validators.py:32 InvenTree/validators.py:34 +#: InvenTree/validators.py:32 msgid "Invalid physical unit" msgstr "Niewłaściwa jednostka fizyczna" -#: InvenTree/validators.py:40 +#: InvenTree/validators.py:38 msgid "Not a valid currency code" msgstr "Nieprawidłowy kod waluty" -#: InvenTree/validators.py:118 InvenTree/validators.py:134 +#: InvenTree/validators.py:115 InvenTree/validators.py:131 msgid "Overage value must not be negative" msgstr "Wartość przedawnienia nie może być ujemna" -#: InvenTree/validators.py:136 +#: InvenTree/validators.py:133 msgid "Overage must not exceed 100%" msgstr "Przedawnienie nie może przekroczyć 100 %" -#: InvenTree/validators.py:142 +#: InvenTree/validators.py:139 msgid "Invalid value for overage" msgstr "Nieprawidłowa wartość przedawnienia" -#: InvenTree/views.py:400 templates/InvenTree/settings/user.html:23 +#: InvenTree/views.py:399 templates/InvenTree/settings/user.html:23 msgid "Edit User Information" msgstr "Edytuj informacje użytkownika" -#: InvenTree/views.py:412 templates/InvenTree/settings/user.html:20 +#: InvenTree/views.py:411 templates/InvenTree/settings/user.html:20 msgid "Set Password" msgstr "Ustaw hasło" -#: InvenTree/views.py:434 +#: InvenTree/views.py:433 msgid "Password fields must match" msgstr "Hasła muszą być zgodne" -#: InvenTree/views.py:442 +#: InvenTree/views.py:441 msgid "Wrong password provided" msgstr "Podano nieprawidłowe hasło" -#: InvenTree/views.py:650 templates/navbar.html:160 +#: InvenTree/views.py:645 templates/navbar.html:160 msgid "System Information" msgstr "Informacja systemowa" -#: InvenTree/views.py:657 templates/navbar.html:171 +#: InvenTree/views.py:652 templates/navbar.html:171 msgid "About InvenTree" msgstr "O InvenTree" -#: build/api.py:51 part/api.py:156 stock/api.py:343 -msgid "Cascade" -msgstr "" - -#: build/api.py:64 build/models.py:261 -#: build/templates/build/build_base.html:191 +#: build/api.py:54 build/models.py:262 +#: build/templates/build/build_base.html:192 #: build/templates/build/detail.html:87 msgid "Parent Build" msgstr "Budowa nadrzędna" -#: build/api.py:89 order/api.py:92 templates/js/translated/table_filters.js:101 +#: build/api.py:58 build/api.py:625 order/api.py:396 order/api.py:611 +#: order/api.py:990 order/api.py:1187 +#: templates/js/translated/table_filters.js:372 +msgid "Include Variants" +msgstr "" + +#: build/api.py:93 +msgid "Ancestor Build" +msgstr "" + +#: build/api.py:112 order/api.py:90 +#: templates/js/translated/table_filters.js:101 #: templates/js/translated/table_filters.js:549 #: templates/js/translated/table_filters.js:633 #: templates/js/translated/table_filters.js:674 msgid "Assigned to me" msgstr "" -#: build/api.py:106 build/templates/build/build_base.html:205 +#: build/api.py:129 build/templates/build/build_base.html:206 #: build/templates/build/detail.html:115 #: report/templates/report/inventree_build_order_report.html:152 #: templates/js/translated/table_filters.js:552 msgid "Issued By" msgstr "Dodane przez" -#: build/api.py:125 +#: build/api.py:148 msgid "Assigned To" msgstr "" -#: build/api.py:301 +#: build/api.py:310 msgid "Build must be cancelled before it can be deleted" msgstr "Kompilacja musi zostać anulowana, zanim będzie mogła zostać usunięta" -#: build/api.py:345 build/serializers.py:1288 part/models.py:4265 +#: build/api.py:354 build/serializers.py:1342 part/models.py:4322 #: templates/js/translated/bom.js:997 templates/js/translated/bom.js:1037 -#: templates/js/translated/build.js:2702 +#: templates/js/translated/build.js:2711 #: templates/js/translated/table_filters.js:197 #: templates/js/translated/table_filters.js:586 msgid "Consumable" msgstr "Materiał eksploatacyjny" -#: build/api.py:346 build/serializers.py:1289 part/models.py:4259 +#: build/api.py:355 build/serializers.py:1343 part/models.py:4316 #: part/templates/part/upload_bom.html:58 templates/js/translated/bom.js:1001 -#: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2693 +#: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2702 #: templates/js/translated/table_filters.js:193 #: templates/js/translated/table_filters.js:222 #: templates/js/translated/table_filters.js:590 msgid "Optional" msgstr "Opcjonalne" -#: build/api.py:347 common/models.py:1489 part/admin.py:91 part/admin.py:428 -#: part/models.py:1154 part/serializers.py:1575 +#: build/api.py:356 common/models.py:1558 part/admin.py:91 part/admin.py:428 +#: part/models.py:1215 part/serializers.py:1633 #: templates/js/translated/bom.js:1639 #: templates/js/translated/table_filters.js:337 #: templates/js/translated/table_filters.js:729 msgid "Assembly" msgstr "Złożenie" -#: build/api.py:348 templates/js/translated/table_filters.js:415 +#: build/api.py:357 templates/js/translated/table_filters.js:415 #: templates/js/translated/table_filters.js:582 msgid "Tracked" msgstr "Śledzony" -#: build/api.py:349 build/serializers.py:1290 part/models.py:1172 +#: build/api.py:358 build/serializers.py:1344 part/models.py:1233 #: templates/js/translated/table_filters.js:146 #: templates/js/translated/table_filters.js:779 msgid "Testable" msgstr "" -#: build/api.py:351 part/admin.py:144 templates/js/translated/build.js:1917 -#: templates/js/translated/build.js:2820 -#: templates/js/translated/sales_order.js:1965 +#: build/api.py:360 order/api.py:779 part/admin.py:144 +#: templates/js/translated/build.js:1920 templates/js/translated/build.js:2838 +#: templates/js/translated/sales_order.js:1946 #: templates/js/translated/table_filters.js:574 msgid "Allocated" msgstr "Przydzielono" -#: build/api.py:359 company/models.py:891 company/serializers.py:395 -#: company/templates/company/supplier_part.html:114 +#: build/api.py:368 company/models.py:888 company/serializers.py:399 +#: company/templates/company/supplier_part.html:115 #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:17 -#: templates/js/translated/bom.js:1162 templates/js/translated/build.js:2752 +#: templates/js/translated/bom.js:1162 templates/js/translated/build.js:2770 #: templates/js/translated/index.js:123 -#: templates/js/translated/model_renderers.js:235 +#: templates/js/translated/model_renderers.js:238 #: templates/js/translated/part.js:695 templates/js/translated/part.js:697 #: templates/js/translated/part.js:702 #: templates/js/translated/table_filters.js:347 @@ -816,16 +835,68 @@ msgstr "Przydzielono" msgid "Available" msgstr "Dostępne" -#: build/models.py:86 build/templates/build/build_base.html:9 -#: build/templates/build/build_base.html:27 +#: build/api.py:640 build/models.py:268 build/serializers.py:1330 +#: build/templates/build/build_base.html:106 +#: build/templates/build/detail.html:29 company/models.py:1043 order/api.py:775 +#: order/api.py:1003 order/models.py:1519 order/models.py:1674 +#: order/models.py:1675 part/api.py:1495 part/api.py:1802 part/models.py:419 +#: part/models.py:3177 part/models.py:3321 part/models.py:3469 +#: part/models.py:3490 part/models.py:3512 part/models.py:3648 +#: part/models.py:3995 part/models.py:4158 part/models.py:4288 +#: part/models.py:4654 part/serializers.py:1245 part/serializers.py:1898 +#: part/templates/part/part_app_base.html:8 +#: part/templates/part/part_pricing.html:12 +#: part/templates/part/upload_bom.html:52 +#: report/templates/report/inventree_bill_of_materials_report.html:110 +#: report/templates/report/inventree_bill_of_materials_report.html:137 +#: report/templates/report/inventree_build_order_report.html:109 +#: report/templates/report/inventree_purchase_order_report.html:27 +#: report/templates/report/inventree_return_order_report.html:24 +#: report/templates/report/inventree_sales_order_report.html:27 +#: report/templates/report/inventree_sales_order_shipment_report.html:28 +#: report/templates/report/inventree_stock_location_report.html:102 +#: stock/serializers.py:112 stock/serializers.py:160 stock/serializers.py:456 +#: stock/serializers.py:947 templates/InvenTree/search.html:82 +#: templates/email/build_order_completed.html:17 +#: templates/email/build_order_required_stock.html:17 +#: templates/email/low_stock_notification.html:15 +#: templates/email/overdue_build_order.html:16 +#: templates/js/translated/barcode.js:577 templates/js/translated/bom.js:632 +#: templates/js/translated/bom.js:769 templates/js/translated/bom.js:905 +#: templates/js/translated/build.js:1005 templates/js/translated/build.js:1488 +#: templates/js/translated/build.js:1919 templates/js/translated/build.js:2337 +#: templates/js/translated/build.js:2514 templates/js/translated/company.js:349 +#: templates/js/translated/company.js:1117 +#: templates/js/translated/company.js:1272 +#: templates/js/translated/company.js:1560 templates/js/translated/index.js:109 +#: templates/js/translated/part.js:1950 templates/js/translated/part.js:2022 +#: templates/js/translated/part.js:2330 templates/js/translated/pricing.js:369 +#: templates/js/translated/purchase_order.js:734 +#: templates/js/translated/purchase_order.js:1350 +#: templates/js/translated/purchase_order.js:1902 +#: templates/js/translated/purchase_order.js:2061 +#: templates/js/translated/return_order.js:538 +#: templates/js/translated/return_order.js:708 +#: templates/js/translated/sales_order.js:1199 +#: templates/js/translated/sales_order.js:1608 +#: templates/js/translated/sales_order.js:1813 +#: templates/js/translated/stock.js:682 templates/js/translated/stock.js:848 +#: templates/js/translated/stock.js:1065 templates/js/translated/stock.js:2083 +#: templates/js/translated/stock.js:2942 templates/js/translated/stock.js:3175 +#: templates/js/translated/stock.js:3320 +msgid "Part" +msgstr "Komponent" + +#: build/api.py:662 build/models.py:88 build/templates/build/build_base.html:10 +#: build/templates/build/build_base.html:28 #: report/templates/report/inventree_build_order_report.html:105 -#: stock/serializers.py:84 templates/email/build_order_completed.html:16 +#: stock/serializers.py:85 templates/email/build_order_completed.html:16 #: templates/email/overdue_build_order.html:15 -#: templates/js/translated/build.js:1145 templates/js/translated/stock.js:2976 +#: templates/js/translated/build.js:1148 templates/js/translated/stock.js:2977 msgid "Build Order" msgstr "Zlecenie Budowy" -#: build/models.py:87 build/templates/build/build_base.html:13 +#: build/models.py:89 build/templates/build/build_base.html:14 #: build/templates/build/index.html:8 build/templates/build/index.html:12 #: order/templates/order/sales_order_detail.html:111 #: order/templates/order/so_sidebar.html:13 @@ -836,268 +907,216 @@ msgstr "Zlecenie Budowy" msgid "Build Orders" msgstr "Zlecenia budowy" -#: build/models.py:135 +#: build/models.py:136 msgid "Assembly BOM has not been validated" msgstr "" -#: build/models.py:142 +#: build/models.py:143 msgid "Build order cannot be created for an inactive part" msgstr "" -#: build/models.py:149 +#: build/models.py:150 msgid "Build order cannot be created for an unlocked part" msgstr "" -#: build/models.py:163 +#: build/models.py:164 msgid "Invalid choice for parent build" msgstr "Nieprawidłowy wybór kompilacji nadrzędnej" -#: build/models.py:174 order/models.py:239 +#: build/models.py:175 order/models.py:236 msgid "Responsible user or group must be specified" msgstr "Odpowiedzialny użytkownik lub grupa muszą być określone" -#: build/models.py:180 +#: build/models.py:181 msgid "Build order part cannot be changed" msgstr "Nie można zmienić elementu kompletacji" -#: build/models.py:241 +#: build/models.py:242 msgid "Build Order Reference" msgstr "Odwołanie do zamówienia wykonania" -#: build/models.py:242 build/serializers.py:1287 order/models.py:467 -#: order/models.py:978 order/models.py:1373 order/models.py:2135 -#: part/admin.py:414 part/models.py:4280 part/templates/part/upload_bom.html:54 +#: build/models.py:243 build/serializers.py:1341 order/models.py:479 +#: order/models.py:1005 order/models.py:1390 order/models.py:2174 +#: part/admin.py:414 part/models.py:4337 part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_bill_of_materials_report.html:139 #: report/templates/report/inventree_purchase_order_report.html:28 #: report/templates/report/inventree_return_order_report.html:26 #: report/templates/report/inventree_sales_order_report.html:28 #: templates/js/translated/bom.js:770 templates/js/translated/bom.js:973 -#: templates/js/translated/build.js:1011 templates/js/translated/build.js:2685 +#: templates/js/translated/build.js:1014 templates/js/translated/build.js:2694 #: templates/js/translated/order.js:316 templates/js/translated/pricing.js:386 -#: templates/js/translated/purchase_order.js:2135 +#: templates/js/translated/purchase_order.js:2119 #: templates/js/translated/return_order.js:727 -#: templates/js/translated/sales_order.js:1854 +#: templates/js/translated/sales_order.js:1835 msgid "Reference" msgstr "Referencja" -#: build/models.py:253 +#: build/models.py:254 msgid "Brief description of the build (optional)" msgstr "Krótki opis produkcji (opcjonalny)" -#: build/models.py:262 +#: build/models.py:263 msgid "BuildOrder to which this build is allocated" msgstr "Zamówienie budowy, do którego budowa jest przypisana" -#: build/models.py:267 build/serializers.py:1278 -#: build/templates/build/build_base.html:105 -#: build/templates/build/detail.html:29 company/models.py:1046 order/api.py:767 -#: order/models.py:1503 order/models.py:1658 order/models.py:1659 -#: part/api.py:1509 part/api.py:1813 part/models.py:424 part/models.py:3126 -#: part/models.py:3270 part/models.py:3418 part/models.py:3439 -#: part/models.py:3461 part/models.py:3597 part/models.py:3937 -#: part/models.py:4100 part/models.py:4231 part/models.py:4592 -#: part/serializers.py:1192 part/serializers.py:1836 -#: part/templates/part/part_app_base.html:8 -#: part/templates/part/part_pricing.html:12 -#: part/templates/part/upload_bom.html:52 -#: report/templates/report/inventree_bill_of_materials_report.html:110 -#: report/templates/report/inventree_bill_of_materials_report.html:137 -#: report/templates/report/inventree_build_order_report.html:109 -#: report/templates/report/inventree_purchase_order_report.html:27 -#: report/templates/report/inventree_return_order_report.html:24 -#: report/templates/report/inventree_sales_order_report.html:27 -#: report/templates/report/inventree_stock_location_report.html:102 -#: stock/serializers.py:111 stock/serializers.py:159 stock/serializers.py:446 -#: stock/serializers.py:916 templates/InvenTree/search.html:82 -#: templates/email/build_order_completed.html:17 -#: templates/email/build_order_required_stock.html:17 -#: templates/email/low_stock_notification.html:15 -#: templates/email/overdue_build_order.html:16 -#: templates/js/translated/barcode.js:577 templates/js/translated/bom.js:632 -#: templates/js/translated/bom.js:769 templates/js/translated/bom.js:905 -#: templates/js/translated/build.js:1002 templates/js/translated/build.js:1485 -#: templates/js/translated/build.js:1916 templates/js/translated/build.js:2334 -#: templates/js/translated/build.js:2507 templates/js/translated/company.js:348 -#: templates/js/translated/company.js:1116 -#: templates/js/translated/company.js:1271 -#: templates/js/translated/company.js:1559 templates/js/translated/index.js:109 -#: templates/js/translated/part.js:1950 templates/js/translated/part.js:2022 -#: templates/js/translated/part.js:2330 templates/js/translated/pricing.js:369 -#: templates/js/translated/purchase_order.js:751 -#: templates/js/translated/purchase_order.js:1367 -#: templates/js/translated/purchase_order.js:1918 -#: templates/js/translated/purchase_order.js:2077 -#: templates/js/translated/return_order.js:538 -#: templates/js/translated/return_order.js:708 -#: templates/js/translated/sales_order.js:300 -#: templates/js/translated/sales_order.js:1233 -#: templates/js/translated/sales_order.js:1634 -#: templates/js/translated/sales_order.js:1832 -#: templates/js/translated/stock.js:682 templates/js/translated/stock.js:848 -#: templates/js/translated/stock.js:1065 templates/js/translated/stock.js:2082 -#: templates/js/translated/stock.js:2941 templates/js/translated/stock.js:3174 -#: templates/js/translated/stock.js:3319 -msgid "Part" -msgstr "Komponent" - -#: build/models.py:275 +#: build/models.py:274 msgid "Select part to build" msgstr "Wybierz część do budowy" -#: build/models.py:280 +#: build/models.py:279 msgid "Sales Order Reference" msgstr "Odwołanie do zamówienia sprzedaży" -#: build/models.py:284 +#: build/models.py:283 msgid "SalesOrder to which this build is allocated" msgstr "Zamówienie sprzedaży, do którego budowa jest przypisana" -#: build/models.py:289 build/serializers.py:1048 -#: templates/js/translated/build.js:1904 -#: templates/js/translated/sales_order.js:1221 +#: build/models.py:288 build/serializers.py:1092 +#: templates/js/translated/build.js:1907 +#: templates/js/translated/sales_order.js:1187 msgid "Source Location" msgstr "Lokalizacja źródła" -#: build/models.py:293 +#: build/models.py:292 msgid "Select location to take stock from for this build (leave blank to take from any stock location)" msgstr "Wybierz lokalizację, z której pobrać element do budowy (pozostaw puste, aby wziąć z dowolnej lokalizacji)" -#: build/models.py:298 +#: build/models.py:297 msgid "Destination Location" msgstr "Lokalizacja docelowa" -#: build/models.py:302 +#: build/models.py:301 msgid "Select location where the completed items will be stored" msgstr "Wybierz lokalizację, w której będą przechowywane ukończone elementy" -#: build/models.py:306 +#: build/models.py:305 msgid "Build Quantity" msgstr "Ilość do stworzenia" -#: build/models.py:309 +#: build/models.py:308 msgid "Number of stock items to build" msgstr "Ilość przedmiotów do zbudowania" -#: build/models.py:313 +#: build/models.py:312 msgid "Completed items" msgstr "Ukończone elementy" -#: build/models.py:315 +#: build/models.py:314 msgid "Number of stock items which have been completed" msgstr "Ilość produktów magazynowych które zostały ukończone" -#: build/models.py:319 +#: build/models.py:318 msgid "Build Status" msgstr "Status budowania" -#: build/models.py:323 +#: build/models.py:322 msgid "Build status code" msgstr "Kod statusu budowania" -#: build/models.py:332 build/serializers.py:302 build/serializers.py:1198 -#: order/serializers.py:670 stock/models.py:859 stock/serializers.py:76 -#: stock/serializers.py:1562 templates/js/translated/purchase_order.js:1129 +#: build/models.py:331 build/serializers.py:349 build/serializers.py:1243 +#: order/serializers.py:755 stock/models.py:936 stock/serializers.py:77 +#: stock/serializers.py:1593 templates/js/translated/purchase_order.js:1112 #: templates/js/translated/stock.js:1199 msgid "Batch Code" msgstr "Kod partii" -#: build/models.py:336 build/serializers.py:303 +#: build/models.py:335 build/serializers.py:350 msgid "Batch code for this build output" msgstr "Kod partii dla wyjścia budowy" -#: build/models.py:339 order/models.py:315 order/serializers.py:126 -#: part/models.py:1229 part/templates/part/part_base.html:319 +#: build/models.py:338 order/models.py:322 order/serializers.py:157 +#: part/models.py:1290 part/templates/part/part_base.html:327 #: templates/js/translated/return_order.js:338 -#: templates/js/translated/sales_order.js:863 +#: templates/js/translated/sales_order.js:822 msgid "Creation Date" msgstr "Data utworzenia" -#: build/models.py:343 +#: build/models.py:342 msgid "Target completion date" msgstr "Docelowy termin zakończenia" -#: build/models.py:344 +#: build/models.py:343 msgid "Target date for build completion. Build will be overdue after this date." msgstr "Docelowa data zakończenia kompilacji. Po tej dacie kompilacja będzie zaległa." -#: build/models.py:347 order/models.py:526 order/models.py:2180 -#: templates/js/translated/build.js:2419 +#: build/models.py:346 order/models.py:538 order/models.py:2219 +#: templates/js/translated/build.js:2422 msgid "Completion Date" msgstr "Data zakończenia" -#: build/models.py:353 +#: build/models.py:352 msgid "completed by" msgstr "zrealizowane przez" -#: build/models.py:361 templates/js/translated/build.js:2379 +#: build/models.py:360 templates/js/translated/build.js:2382 msgid "Issued by" msgstr "Wydany przez" -#: build/models.py:362 +#: build/models.py:361 msgid "User who issued this build order" msgstr "Użytkownik, który wydał to zamówienie" -#: build/models.py:370 build/templates/build/build_base.html:212 -#: build/templates/build/detail.html:122 common/models.py:165 order/api.py:142 -#: order/models.py:333 order/templates/order/order_base.html:222 -#: order/templates/order/return_order_base.html:191 -#: order/templates/order/sales_order_base.html:235 part/models.py:1246 -#: part/templates/part/part_base.html:399 +#: build/models.py:369 build/templates/build/build_base.html:213 +#: build/templates/build/detail.html:122 common/models.py:168 order/api.py:140 +#: order/models.py:340 order/templates/order/order_base.html:231 +#: order/templates/order/return_order_base.html:192 +#: order/templates/order/sales_order_base.html:236 part/models.py:1307 +#: part/templates/part/part_base.html:407 #: report/templates/report/inventree_build_order_report.html:158 #: templates/InvenTree/settings/settings_staff_js.html:150 -#: templates/js/translated/build.js:2391 -#: templates/js/translated/purchase_order.js:1833 +#: templates/js/translated/build.js:2394 +#: templates/js/translated/purchase_order.js:1817 #: templates/js/translated/return_order.js:358 #: templates/js/translated/table_filters.js:551 msgid "Responsible" msgstr "Odpowiedzialny" -#: build/models.py:371 +#: build/models.py:370 msgid "User or group responsible for this build order" msgstr "Użytkownik lub grupa odpowiedzialna za te zlecenie produkcji" -#: build/models.py:376 build/templates/build/detail.html:108 +#: build/models.py:375 build/templates/build/detail.html:108 #: company/templates/company/manufacturer_part.html:107 -#: company/templates/company/supplier_part.html:194 -#: order/templates/order/order_base.html:172 -#: order/templates/order/return_order_base.html:148 -#: order/templates/order/sales_order_base.html:187 -#: part/templates/part/part_base.html:392 stock/models.py:855 -#: stock/templates/stock/item_base.html:200 -#: templates/js/translated/company.js:1019 +#: company/templates/company/supplier_part.html:195 +#: order/templates/order/order_base.html:181 +#: order/templates/order/return_order_base.html:149 +#: order/templates/order/sales_order_base.html:188 +#: part/templates/part/part_base.html:400 stock/models.py:932 +#: stock/templates/stock/item_base.html:197 +#: templates/js/translated/company.js:1020 msgid "External Link" msgstr "Link Zewnętrzny" -#: build/models.py:377 common/models.py:3273 part/models.py:1058 -#: stock/models.py:855 +#: build/models.py:376 common/models.py:3334 part/models.py:1119 +#: stock/models.py:932 msgid "Link to external URL" msgstr "Link do zewnętrznego adresu URL" -#: build/models.py:381 +#: build/models.py:380 msgid "Build Priority" msgstr "Priorytet budowy" -#: build/models.py:384 +#: build/models.py:383 msgid "Priority of this build order" msgstr "Priorytet tego zamówienia produkcji" -#: build/models.py:391 common/models.py:135 common/models.py:149 -#: order/admin.py:18 order/api.py:128 order/models.py:297 +#: build/models.py:390 common/models.py:138 common/models.py:152 +#: order/admin.py:18 order/api.py:126 order/models.py:304 #: templates/InvenTree/settings/settings_staff_js.html:146 -#: templates/js/translated/build.js:2316 -#: templates/js/translated/purchase_order.js:1780 +#: templates/js/translated/build.js:2319 +#: templates/js/translated/purchase_order.js:1764 #: templates/js/translated/return_order.js:317 -#: templates/js/translated/sales_order.js:842 +#: templates/js/translated/sales_order.js:801 #: templates/js/translated/table_filters.js:47 #: templates/project_code_data.html:6 msgid "Project Code" msgstr "Kod projektu" -#: build/models.py:392 +#: build/models.py:391 msgid "Project code for this build order" msgstr "Kod projektu dla tego zlecenia produkcji" -#: build/models.py:651 build/models.py:778 +#: build/models.py:651 build/models.py:779 msgid "Failed to offload task to complete build allocations" msgstr "" @@ -1110,610 +1129,619 @@ msgstr "Kolejność kompilacji {build} została zakończona" msgid "A build order has been completed" msgstr "Kolejność kompilacji została zakończona" -#: build/models.py:967 build/models.py:1055 +#: build/models.py:858 build/serializers.py:393 +msgid "Serial numbers must be provided for trackable parts" +msgstr "" + +#: build/models.py:969 build/models.py:1058 msgid "No build output specified" msgstr "Nie określono danych wyjściowych budowy" -#: build/models.py:970 +#: build/models.py:972 msgid "Build output is already completed" msgstr "Budowanie wyjścia jest już ukończone" -#: build/models.py:973 +#: build/models.py:975 msgid "Build output does not match Build Order" msgstr "Skompilowane dane wyjściowe nie pasują do kolejności kompilacji" -#: build/models.py:1059 build/serializers.py:235 build/serializers.py:284 -#: build/serializers.py:915 order/models.py:564 order/serializers.py:499 -#: order/serializers.py:665 part/serializers.py:1569 part/serializers.py:1999 -#: stock/models.py:700 stock/models.py:1520 stock/serializers.py:669 +#: build/models.py:1062 build/serializers.py:282 build/serializers.py:331 +#: build/serializers.py:959 order/models.py:586 order/serializers.py:584 +#: order/serializers.py:750 part/serializers.py:1627 part/serializers.py:2060 +#: stock/models.py:777 stock/models.py:1609 stock/serializers.py:696 msgid "Quantity must be greater than zero" msgstr "Ilość musi być większa niż zero" -#: build/models.py:1064 build/serializers.py:240 +#: build/models.py:1067 build/serializers.py:287 msgid "Quantity cannot be greater than the output quantity" msgstr "Ilość nie może być większa niż ilość wyjściowa" -#: build/models.py:1124 build/serializers.py:563 +#: build/models.py:1127 build/serializers.py:607 #, python-brace-format msgid "Build output {serial} has not passed all required tests" msgstr "Wyjście budowy {serial} nie przeszło wszystkich testów" -#: build/models.py:1465 +#: build/models.py:1482 msgid "Build Order Line Item" msgstr "" -#: build/models.py:1490 +#: build/models.py:1507 msgid "Build object" msgstr "Zbuduj obiekt" -#: build/models.py:1504 build/models.py:1760 build/serializers.py:222 -#: build/serializers.py:269 build/serializers.py:1295 -#: build/templates/build/build_base.html:110 -#: build/templates/build/detail.html:34 common/models.py:2579 -#: order/models.py:1356 order/models.py:2041 order/serializers.py:1460 +#: build/models.py:1521 build/models.py:1787 build/serializers.py:269 +#: build/serializers.py:316 build/serializers.py:1349 +#: build/templates/build/build_base.html:111 +#: build/templates/build/detail.html:34 common/models.py:2643 +#: order/models.py:1373 order/models.py:2074 order/serializers.py:1586 #: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:413 -#: part/forms.py:48 part/models.py:3284 part/models.py:4253 -#: part/templates/part/part_pricing.html:16 +#: part/forms.py:48 part/models.py:3335 part/models.py:4310 +#: part/serializers.py:265 part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_bill_of_materials_report.html:138 #: report/templates/report/inventree_build_order_report.html:113 #: report/templates/report/inventree_purchase_order_report.html:29 #: report/templates/report/inventree_sales_order_report.html:29 +#: report/templates/report/inventree_sales_order_shipment_report.html:47 +#: report/templates/report/inventree_sales_order_shipment_report.html:49 #: report/templates/report/inventree_stock_location_report.html:104 #: report/templates/report/inventree_test_report.html:90 -#: report/templates/report/inventree_test_report.html:169 stock/admin.py:159 -#: stock/serializers.py:127 stock/serializers.py:167 stock/serializers.py:660 -#: stock/templates/stock/item_base.html:287 -#: stock/templates/stock/item_base.html:295 -#: stock/templates/stock/item_base.html:342 +#: report/templates/report/inventree_test_report.html:169 stock/admin.py:160 +#: stock/serializers.py:128 stock/serializers.py:168 stock/serializers.py:687 +#: stock/templates/stock/item_base.html:284 +#: stock/templates/stock/item_base.html:292 +#: stock/templates/stock/item_base.html:339 #: templates/email/build_order_completed.html:18 #: templates/js/translated/barcode.js:579 templates/js/translated/bom.js:771 -#: templates/js/translated/bom.js:981 templates/js/translated/build.js:522 -#: templates/js/translated/build.js:737 templates/js/translated/build.js:1542 -#: templates/js/translated/build.js:1919 templates/js/translated/build.js:2529 -#: templates/js/translated/company.js:1818 -#: templates/js/translated/model_renderers.js:237 +#: templates/js/translated/bom.js:981 templates/js/translated/build.js:525 +#: templates/js/translated/build.js:740 templates/js/translated/build.js:1545 +#: templates/js/translated/build.js:1922 templates/js/translated/build.js:2536 +#: templates/js/translated/company.js:1819 +#: templates/js/translated/model_renderers.js:240 #: templates/js/translated/order.js:329 templates/js/translated/part.js:968 -#: templates/js/translated/part.js:1818 templates/js/translated/part.js:3360 +#: templates/js/translated/part.js:1818 templates/js/translated/part.js:3376 #: templates/js/translated/pricing.js:381 #: templates/js/translated/pricing.js:474 #: templates/js/translated/pricing.js:522 #: templates/js/translated/pricing.js:616 -#: templates/js/translated/purchase_order.js:754 -#: templates/js/translated/purchase_order.js:1922 -#: templates/js/translated/purchase_order.js:2141 -#: templates/js/translated/sales_order.js:317 -#: templates/js/translated/sales_order.js:1235 -#: templates/js/translated/sales_order.js:1554 -#: templates/js/translated/sales_order.js:1644 -#: templates/js/translated/sales_order.js:1734 -#: templates/js/translated/sales_order.js:1860 +#: templates/js/translated/purchase_order.js:737 +#: templates/js/translated/purchase_order.js:1906 +#: templates/js/translated/purchase_order.js:2125 +#: templates/js/translated/sales_order.js:1201 +#: templates/js/translated/sales_order.js:1520 +#: templates/js/translated/sales_order.js:1625 +#: templates/js/translated/sales_order.js:1715 +#: templates/js/translated/sales_order.js:1841 #: templates/js/translated/stock.js:570 templates/js/translated/stock.js:708 -#: templates/js/translated/stock.js:879 templates/js/translated/stock.js:3105 -#: templates/js/translated/stock.js:3188 +#: templates/js/translated/stock.js:879 templates/js/translated/stock.js:3106 +#: templates/js/translated/stock.js:3189 msgid "Quantity" msgstr "Ilość" -#: build/models.py:1505 +#: build/models.py:1522 msgid "Required quantity for build order" msgstr "Wymagana ilość dla zlecenia produkcji" -#: build/models.py:1585 +#: build/models.py:1602 msgid "Build item must specify a build output, as master part is marked as trackable" msgstr "" -#: build/models.py:1594 +#: build/models.py:1611 #, python-brace-format msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgstr "Przydzielona ilość ({q}) nie może przekraczać dostępnej ilości zapasów magazynowych ({a})" -#: build/models.py:1604 order/models.py:1992 +#: build/models.py:1628 order/models.py:2025 msgid "Stock item is over-allocated" msgstr "Pozycja magazynowa jest nadmiernie przydzielona" -#: build/models.py:1610 order/models.py:1995 +#: build/models.py:1634 order/models.py:2028 msgid "Allocation quantity must be greater than zero" msgstr "Alokowana ilość musi być większa niż zero" -#: build/models.py:1616 +#: build/models.py:1640 msgid "Quantity must be 1 for serialized stock" msgstr "Ilość musi wynosić 1 dla serializowanych zasobów" -#: build/models.py:1675 +#: build/models.py:1699 msgid "Selected stock item does not match BOM line" msgstr "Wybrana pozycja magazynowa nie pasuje do pozycji w zestawieniu BOM" -#: build/models.py:1747 build/serializers.py:895 order/serializers.py:1297 -#: order/serializers.py:1318 stock/models.py:376 stock/serializers.py:93 -#: stock/serializers.py:763 stock/serializers.py:1281 stock/serializers.py:1393 -#: stock/templates/stock/item_base.html:10 -#: stock/templates/stock/item_base.html:23 -#: stock/templates/stock/item_base.html:194 -#: templates/js/translated/build.js:1918 -#: templates/js/translated/sales_order.js:301 -#: templates/js/translated/sales_order.js:1234 -#: templates/js/translated/sales_order.js:1535 -#: templates/js/translated/sales_order.js:1540 -#: templates/js/translated/sales_order.js:1641 -#: templates/js/translated/sales_order.js:1728 +#: build/models.py:1774 build/serializers.py:939 order/serializers.py:1423 +#: order/serializers.py:1444 +#: report/templates/report/inventree_sales_order_shipment_report.html:29 +#: stock/models.py:382 stock/serializers.py:94 stock/serializers.py:794 +#: stock/serializers.py:1312 stock/serializers.py:1424 +#: stock/templates/stock/item_base.html:11 +#: stock/templates/stock/item_base.html:24 +#: stock/templates/stock/item_base.html:191 +#: templates/js/translated/build.js:1921 +#: templates/js/translated/sales_order.js:1200 +#: templates/js/translated/sales_order.js:1501 +#: templates/js/translated/sales_order.js:1506 +#: templates/js/translated/sales_order.js:1622 +#: templates/js/translated/sales_order.js:1709 #: templates/js/translated/stock.js:683 templates/js/translated/stock.js:849 -#: templates/js/translated/stock.js:3061 +#: templates/js/translated/stock.js:3062 msgid "Stock Item" msgstr "Element magazynowy" -#: build/models.py:1748 +#: build/models.py:1775 msgid "Source stock item" msgstr "Lokalizacja magazynowania przedmiotu" -#: build/models.py:1761 +#: build/models.py:1788 msgid "Stock quantity to allocate to build" msgstr "Ilość zapasów do przydzielenia do produkcji" -#: build/models.py:1769 +#: build/models.py:1796 msgid "Install into" msgstr "Zainstaluj do" -#: build/models.py:1770 +#: build/models.py:1797 msgid "Destination stock item" msgstr "Docelowa lokalizacja magazynowa przedmiotu" -#: build/serializers.py:91 +#: build/serializers.py:108 msgid "Build Level" msgstr "" -#: build/serializers.py:99 build/serializers.py:1190 build/serializers.py:1279 -#: part/admin.py:41 part/admin.py:408 part/models.py:4102 part/stocktake.py:219 -#: stock/admin.py:156 +#: build/serializers.py:116 build/serializers.py:1235 build/serializers.py:1331 +#: part/admin.py:41 part/admin.py:408 part/models.py:4160 part/stocktake.py:219 +#: stock/admin.py:157 msgid "Part Name" msgstr "Nazwa komponentu" -#: build/serializers.py:111 +#: build/serializers.py:128 msgid "Project Code Label" msgstr "" -#: build/serializers.py:172 build/serializers.py:924 -#: templates/js/translated/build.js:1042 templates/js/translated/build.js:1495 +#: build/serializers.py:134 +msgid "Create Child Builds" +msgstr "" + +#: build/serializers.py:135 +msgid "Automatically generate child build orders" +msgstr "" + +#: build/serializers.py:219 build/serializers.py:968 +#: templates/js/translated/build.js:1045 templates/js/translated/build.js:1498 msgid "Build Output" msgstr "" -#: build/serializers.py:184 +#: build/serializers.py:231 msgid "Build output does not match the parent build" msgstr "" -#: build/serializers.py:188 +#: build/serializers.py:235 msgid "Output part does not match BuildOrder part" msgstr "" -#: build/serializers.py:192 +#: build/serializers.py:239 msgid "This build output has already been completed" msgstr "" -#: build/serializers.py:203 +#: build/serializers.py:250 msgid "This build output is not fully allocated" msgstr "" -#: build/serializers.py:223 build/serializers.py:270 +#: build/serializers.py:270 build/serializers.py:317 msgid "Enter quantity for build output" msgstr "" -#: build/serializers.py:291 +#: build/serializers.py:338 msgid "Integer quantity required for trackable parts" msgstr "" -#: build/serializers.py:294 +#: build/serializers.py:341 msgid "Integer quantity required, as the bill of materials contains trackable parts" msgstr "" -#: build/serializers.py:309 order/serializers.py:678 order/serializers.py:1464 -#: stock/serializers.py:680 templates/js/translated/purchase_order.js:1154 +#: build/serializers.py:356 order/serializers.py:763 order/serializers.py:1590 +#: stock/serializers.py:707 templates/js/translated/purchase_order.js:1137 #: templates/js/translated/stock.js:373 templates/js/translated/stock.js:571 msgid "Serial Numbers" msgstr "Numer seryjny" -#: build/serializers.py:310 +#: build/serializers.py:357 msgid "Enter serial numbers for build outputs" msgstr "" -#: build/serializers.py:315 build/serializers.py:456 build/serializers.py:528 -#: order/serializers.py:654 order/serializers.py:778 order/serializers.py:1781 -#: part/serializers.py:1212 stock/serializers.py:102 stock/serializers.py:691 -#: stock/serializers.py:851 stock/serializers.py:977 stock/serializers.py:1425 -#: stock/serializers.py:1681 stock/templates/stock/item_base.html:394 +#: build/serializers.py:362 build/serializers.py:500 build/serializers.py:572 +#: order/serializers.py:739 order/serializers.py:880 order/serializers.py:1933 +#: part/serializers.py:1265 stock/serializers.py:103 stock/serializers.py:718 +#: stock/serializers.py:882 stock/serializers.py:1008 stock/serializers.py:1456 +#: stock/serializers.py:1712 stock/templates/stock/item_base.html:391 #: templates/js/translated/barcode.js:578 -#: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1032 -#: templates/js/translated/build.js:1174 templates/js/translated/build.js:2544 -#: templates/js/translated/purchase_order.js:1210 -#: templates/js/translated/purchase_order.js:1320 -#: templates/js/translated/sales_order.js:1547 -#: templates/js/translated/sales_order.js:1655 -#: templates/js/translated/sales_order.js:1663 -#: templates/js/translated/sales_order.js:1742 +#: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1035 +#: templates/js/translated/build.js:1177 templates/js/translated/build.js:2551 +#: templates/js/translated/purchase_order.js:1193 +#: templates/js/translated/purchase_order.js:1303 +#: templates/js/translated/sales_order.js:1513 +#: templates/js/translated/sales_order.js:1636 +#: templates/js/translated/sales_order.js:1644 +#: templates/js/translated/sales_order.js:1723 #: templates/js/translated/stock.js:684 templates/js/translated/stock.js:850 -#: templates/js/translated/stock.js:1067 templates/js/translated/stock.js:2286 -#: templates/js/translated/stock.js:2955 +#: templates/js/translated/stock.js:1067 templates/js/translated/stock.js:2287 +#: templates/js/translated/stock.js:2956 msgid "Location" msgstr "Lokalizacja" -#: build/serializers.py:316 +#: build/serializers.py:363 msgid "Stock location for build output" msgstr "" -#: build/serializers.py:330 +#: build/serializers.py:377 msgid "Auto Allocate Serial Numbers" msgstr "Automatycznie przydzielaj numery seryjne" -#: build/serializers.py:331 +#: build/serializers.py:378 msgid "Automatically allocate required items with matching serial numbers" msgstr "Automatycznie przydzielaj wymagane elementy z pasującymi numerami seryjnymi" -#: build/serializers.py:346 -msgid "Serial numbers must be provided for trackable parts" -msgstr "" - -#: build/serializers.py:371 stock/api.py:1031 +#: build/serializers.py:415 order/serializers.py:858 stock/api.py:1017 +#: stock/models.py:1632 msgid "The following serial numbers already exist or are invalid" msgstr "Poniższe numery seryjne już istnieją lub są nieprawidłowe" -#: build/serializers.py:418 build/serializers.py:480 build/serializers.py:569 +#: build/serializers.py:462 build/serializers.py:524 build/serializers.py:613 msgid "A list of build outputs must be provided" msgstr "" -#: build/serializers.py:457 +#: build/serializers.py:501 msgid "Stock location for scrapped outputs" msgstr "" -#: build/serializers.py:463 +#: build/serializers.py:507 msgid "Discard Allocations" msgstr "Odrzuć przydziały" -#: build/serializers.py:464 +#: build/serializers.py:508 msgid "Discard any stock allocations for scrapped outputs" msgstr "" -#: build/serializers.py:469 +#: build/serializers.py:513 msgid "Reason for scrapping build output(s)" msgstr "" -#: build/serializers.py:529 +#: build/serializers.py:573 msgid "Location for completed build outputs" msgstr "" -#: build/serializers.py:535 build/templates/build/build_base.html:159 -#: build/templates/build/detail.html:62 order/models.py:476 -#: order/models.py:1002 order/models.py:2159 order/serializers.py:686 -#: stock/admin.py:164 stock/serializers.py:1028 stock/serializers.py:1569 -#: stock/templates/stock/item_base.html:427 -#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2363 -#: templates/js/translated/purchase_order.js:1371 -#: templates/js/translated/purchase_order.js:1792 +#: build/serializers.py:579 build/templates/build/build_base.html:160 +#: build/templates/build/detail.html:62 order/models.py:488 +#: order/models.py:1029 order/models.py:2198 order/serializers.py:771 +#: stock/admin.py:165 stock/serializers.py:581 stock/serializers.py:1059 +#: stock/serializers.py:1600 stock/templates/stock/item_base.html:424 +#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2366 +#: templates/js/translated/purchase_order.js:1354 +#: templates/js/translated/purchase_order.js:1776 #: templates/js/translated/return_order.js:330 -#: templates/js/translated/sales_order.js:855 -#: templates/js/translated/stock.js:2261 templates/js/translated/stock.js:3079 -#: templates/js/translated/stock.js:3204 +#: templates/js/translated/sales_order.js:814 +#: templates/js/translated/stock.js:2262 templates/js/translated/stock.js:3080 +#: templates/js/translated/stock.js:3205 msgid "Status" -msgstr "" +msgstr "Status" -#: build/serializers.py:541 +#: build/serializers.py:585 msgid "Accept Incomplete Allocation" msgstr "Zaakceptuj niekompletną alokację" -#: build/serializers.py:542 +#: build/serializers.py:586 msgid "Complete outputs if stock has not been fully allocated" msgstr "" -#: build/serializers.py:654 +#: build/serializers.py:698 msgid "Consume Allocated Stock" msgstr "" -#: build/serializers.py:655 +#: build/serializers.py:699 msgid "Consume any stock which has already been allocated to this build" msgstr "" -#: build/serializers.py:661 +#: build/serializers.py:705 msgid "Remove Incomplete Outputs" msgstr "" -#: build/serializers.py:662 +#: build/serializers.py:706 msgid "Delete any build outputs which have not been completed" msgstr "Usuń produkcje, które nie zostały zakończone" -#: build/serializers.py:689 +#: build/serializers.py:733 msgid "Not permitted" msgstr "Niedozwolone" -#: build/serializers.py:690 +#: build/serializers.py:734 msgid "Accept as consumed by this build order" msgstr "Zaakceptuj jako zużyte przez zlecenie produkcji" -#: build/serializers.py:691 +#: build/serializers.py:735 msgid "Deallocate before completing this build order" msgstr "" -#: build/serializers.py:721 +#: build/serializers.py:765 msgid "Overallocated Stock" msgstr "Nadmierny przydział zasobów" -#: build/serializers.py:723 +#: build/serializers.py:767 msgid "How do you want to handle extra stock items assigned to the build order" msgstr "" -#: build/serializers.py:733 +#: build/serializers.py:777 msgid "Some stock items have been overallocated" msgstr "" -#: build/serializers.py:738 +#: build/serializers.py:782 msgid "Accept Unallocated" msgstr "Zaakceptuj nieprzydzielone" -#: build/serializers.py:739 +#: build/serializers.py:783 msgid "Accept that stock items have not been fully allocated to this build order" msgstr "Zaakceptuj, że przedmioty magazynowe nie zostały w pełni przypisane do tego zlecenia budowy" -#: build/serializers.py:749 templates/js/translated/build.js:316 +#: build/serializers.py:793 templates/js/translated/build.js:319 msgid "Required stock has not been fully allocated" msgstr "Wymagany stan nie został w pełni przypisany" -#: build/serializers.py:754 order/serializers.py:345 order/serializers.py:1365 +#: build/serializers.py:798 order/serializers.py:430 order/serializers.py:1491 msgid "Accept Incomplete" msgstr "Akceptuj niekompletne" -#: build/serializers.py:755 +#: build/serializers.py:799 msgid "Accept that the required number of build outputs have not been completed" msgstr "" -#: build/serializers.py:765 templates/js/translated/build.js:320 +#: build/serializers.py:809 templates/js/translated/build.js:323 msgid "Required build quantity has not been completed" msgstr "" -#: build/serializers.py:774 +#: build/serializers.py:818 msgid "Build order has open child build orders" msgstr "" -#: build/serializers.py:777 +#: build/serializers.py:821 msgid "Build order must be in production state" msgstr "" -#: build/serializers.py:780 templates/js/translated/build.js:304 +#: build/serializers.py:824 templates/js/translated/build.js:307 msgid "Build order has incomplete outputs" msgstr "" -#: build/serializers.py:818 +#: build/serializers.py:862 msgid "Build Line" msgstr "" -#: build/serializers.py:828 +#: build/serializers.py:872 msgid "Build output" msgstr "" -#: build/serializers.py:836 +#: build/serializers.py:880 msgid "Build output must point to the same build" msgstr "" -#: build/serializers.py:872 +#: build/serializers.py:916 msgid "Build Line Item" msgstr "" -#: build/serializers.py:886 +#: build/serializers.py:930 msgid "bom_item.part must point to the same part as the build order" msgstr "" -#: build/serializers.py:901 stock/serializers.py:1294 +#: build/serializers.py:945 stock/serializers.py:1325 msgid "Item must be in stock" msgstr "Towar musi znajdować się w magazynie" -#: build/serializers.py:949 order/serializers.py:1351 +#: build/serializers.py:993 order/serializers.py:1477 #, python-brace-format msgid "Available quantity ({q}) exceeded" msgstr "" -#: build/serializers.py:955 +#: build/serializers.py:999 msgid "Build output must be specified for allocation of tracked parts" msgstr "" -#: build/serializers.py:962 +#: build/serializers.py:1006 msgid "Build output cannot be specified for allocation of untracked parts" msgstr "" -#: build/serializers.py:986 order/serializers.py:1610 +#: build/serializers.py:1030 order/serializers.py:1750 msgid "Allocation items must be provided" msgstr "" -#: build/serializers.py:1049 +#: build/serializers.py:1093 msgid "Stock location where parts are to be sourced (leave blank to take from any location)" msgstr "Magazyn, z którego mają być pozyskane elementy (pozostaw puste, aby pobrać z dowolnej lokalizacji)" -#: build/serializers.py:1057 +#: build/serializers.py:1101 msgid "Exclude Location" msgstr "Wyklucz lokalizację" -#: build/serializers.py:1058 +#: build/serializers.py:1102 msgid "Exclude stock items from this selected location" msgstr "Wyklucz produkty magazynowe z wybranej lokalizacji" -#: build/serializers.py:1063 +#: build/serializers.py:1107 msgid "Interchangeable Stock" msgstr "" -#: build/serializers.py:1064 +#: build/serializers.py:1108 msgid "Stock items in multiple locations can be used interchangeably" msgstr "Towary magazynowe w wielu lokalizacjach mogą być stosowane zamiennie" -#: build/serializers.py:1069 +#: build/serializers.py:1113 msgid "Substitute Stock" msgstr "Zastępczy magazyn" -#: build/serializers.py:1070 +#: build/serializers.py:1114 msgid "Allow allocation of substitute parts" msgstr "" -#: build/serializers.py:1075 +#: build/serializers.py:1119 msgid "Optional Items" msgstr "Przedmiot opcjonalny" -#: build/serializers.py:1076 +#: build/serializers.py:1120 msgid "Allocate optional BOM items to build order" msgstr "" -#: build/serializers.py:1098 +#: build/serializers.py:1143 msgid "Failed to start auto-allocation task" msgstr "" -#: build/serializers.py:1181 +#: build/serializers.py:1226 stock/serializers.py:585 msgid "Supplier Part Number" msgstr "" -#: build/serializers.py:1182 company/models.py:506 +#: build/serializers.py:1227 company/models.py:503 stock/serializers.py:591 msgid "Manufacturer Part Number" msgstr "Numer producenta komponentu" -#: build/serializers.py:1183 stock/admin.py:53 stock/admin.py:175 -#: stock/serializers.py:457 +#: build/serializers.py:1228 stock/admin.py:53 stock/admin.py:176 +#: stock/serializers.py:467 msgid "Location Name" msgstr "" -#: build/serializers.py:1184 +#: build/serializers.py:1229 build/serializers.py:1327 msgid "Build Reference" msgstr "" -#: build/serializers.py:1185 +#: build/serializers.py:1230 msgid "BOM Reference" msgstr "" -#: build/serializers.py:1186 company/models.py:852 -#: company/templates/company/supplier_part.html:160 order/serializers.py:690 -#: stock/admin.py:228 stock/models.py:818 stock/serializers.py:1579 -#: stock/templates/stock/item_base.html:240 -#: templates/js/translated/company.js:1646 -#: templates/js/translated/purchase_order.js:1169 -#: templates/js/translated/purchase_order.js:1332 +#: build/serializers.py:1231 company/models.py:849 +#: company/templates/company/supplier_part.html:161 order/serializers.py:775 +#: stock/admin.py:229 stock/models.py:895 stock/serializers.py:1610 +#: stock/templates/stock/item_base.html:237 +#: templates/js/translated/company.js:1647 +#: templates/js/translated/purchase_order.js:1152 +#: templates/js/translated/purchase_order.js:1315 #: templates/js/translated/stock.js:1214 templates/js/translated/stock.js:1246 -#: templates/js/translated/stock.js:2509 +#: templates/js/translated/stock.js:2510 msgid "Packaging" msgstr "Opakowanie" -#: build/serializers.py:1189 part/admin.py:39 part/admin.py:398 -#: part/models.py:4101 part/stocktake.py:218 stock/admin.py:152 +#: build/serializers.py:1234 part/admin.py:39 part/admin.py:398 +#: part/models.py:4159 part/stocktake.py:218 stock/admin.py:153 msgid "Part ID" msgstr "ID komponentu" -#: build/serializers.py:1191 build/serializers.py:1280 part/admin.py:402 -#: part/models.py:4103 +#: build/serializers.py:1236 build/serializers.py:1332 part/admin.py:402 +#: part/models.py:4161 msgid "Part IPN" msgstr "IPN komponentu" -#: build/serializers.py:1192 build/serializers.py:1282 part/admin.py:45 +#: build/serializers.py:1237 build/serializers.py:1334 part/admin.py:45 #: part/stocktake.py:220 msgid "Part Description" msgstr "" -#: build/serializers.py:1195 +#: build/serializers.py:1240 msgid "BOM Part ID" msgstr "" -#: build/serializers.py:1196 +#: build/serializers.py:1241 msgid "BOM Part Name" msgstr "" -#: build/serializers.py:1199 +#: build/serializers.py:1244 #: report/templates/report/inventree_return_order_report.html:25 -#: report/templates/report/inventree_test_report.html:88 stock/models.py:845 -#: stock/serializers.py:151 stock/templates/stock/item_base.html:311 -#: templates/js/translated/build.js:520 templates/js/translated/build.js:1540 -#: templates/js/translated/build.js:2527 -#: templates/js/translated/model_renderers.js:231 +#: report/templates/report/inventree_sales_order_shipment_report.html:45 +#: report/templates/report/inventree_test_report.html:88 stock/models.py:922 +#: stock/serializers.py:152 stock/templates/stock/item_base.html:308 +#: templates/js/translated/build.js:523 templates/js/translated/build.js:1543 +#: templates/js/translated/build.js:2534 +#: templates/js/translated/model_renderers.js:234 #: templates/js/translated/return_order.js:539 #: templates/js/translated/return_order.js:722 -#: templates/js/translated/sales_order.js:315 -#: templates/js/translated/sales_order.js:1647 -#: templates/js/translated/sales_order.js:1732 +#: templates/js/translated/sales_order.js:1628 +#: templates/js/translated/sales_order.js:1713 #: templates/js/translated/stock.js:602 msgid "Serial Number" msgstr "Numer Seryjny" -#: build/serializers.py:1212 stock/serializers.py:593 -#: templates/js/translated/build.js:1017 templates/js/translated/build.js:1164 -#: templates/js/translated/build.js:2516 +#: build/serializers.py:1257 stock/serializers.py:620 +#: templates/js/translated/build.js:1020 templates/js/translated/build.js:1167 +#: templates/js/translated/build.js:2523 msgid "Allocated Quantity" msgstr "" -#: build/serializers.py:1213 stock/templates/stock/item_base.html:340 +#: build/serializers.py:1258 stock/templates/stock/item_base.html:337 msgid "Available Quantity" msgstr "" -#: build/serializers.py:1283 +#: build/serializers.py:1335 msgid "Part Category ID" msgstr "" -#: build/serializers.py:1284 +#: build/serializers.py:1336 msgid "Part Category Name" msgstr "" -#: build/serializers.py:1291 common/models.py:1513 part/admin.py:113 -#: part/models.py:1166 templates/js/translated/table_filters.js:150 +#: build/serializers.py:1345 common/models.py:1582 part/admin.py:113 +#: part/models.py:1227 templates/js/translated/build.js:2738 +#: templates/js/translated/table_filters.js:150 #: templates/js/translated/table_filters.js:230 #: templates/js/translated/table_filters.js:783 msgid "Trackable" msgstr "Możliwość śledzenia" -#: build/serializers.py:1292 +#: build/serializers.py:1346 msgid "Inherited" msgstr "" -#: build/serializers.py:1293 part/models.py:4313 +#: build/serializers.py:1347 part/models.py:4370 #: part/templates/part/upload_bom.html:56 templates/js/translated/bom.js:1046 -#: templates/js/translated/build.js:2711 +#: templates/js/translated/build.js:2720 msgid "Allow Variants" msgstr "Zezwalaj na warianty" -#: build/serializers.py:1297 part/models.py:4110 part/models.py:4584 +#: build/serializers.py:1351 part/models.py:4168 part/models.py:4646 #: stock/api.py:794 msgid "BOM Item" msgstr "Element BOM" -#: build/serializers.py:1306 build/templates/build/detail.html:236 +#: build/serializers.py:1370 build/templates/build/detail.html:236 #: build/templates/build/sidebar.html:16 templates/js/translated/index.js:130 msgid "Allocated Stock" msgstr "" -#: build/serializers.py:1311 order/serializers.py:1175 part/admin.py:132 -#: part/bom.py:181 part/serializers.py:899 part/serializers.py:1602 -#: part/templates/part/part_base.html:210 templates/js/translated/bom.js:1208 -#: templates/js/translated/build.js:2804 templates/js/translated/part.js:712 +#: build/serializers.py:1375 order/serializers.py:1209 part/admin.py:132 +#: part/bom.py:186 part/serializers.py:951 part/serializers.py:1660 +#: part/templates/part/part_base.html:211 templates/js/translated/bom.js:1208 +#: templates/js/translated/build.js:2822 templates/js/translated/part.js:712 #: templates/js/translated/part.js:2155 #: templates/js/translated/table_filters.js:177 msgid "On Order" msgstr "W Zamówieniu" -#: build/serializers.py:1316 order/serializers.py:1176 part/serializers.py:1604 -#: templates/js/translated/build.js:2808 +#: build/serializers.py:1380 order/serializers.py:1210 part/serializers.py:1662 +#: templates/js/translated/build.js:2826 #: templates/js/translated/table_filters.js:367 msgid "In Production" msgstr "W produkcji" -#: build/serializers.py:1321 part/bom.py:180 part/serializers.py:1629 -#: part/templates/part/part_base.html:192 -#: templates/js/translated/sales_order.js:1929 -msgid "Available Stock" -msgstr "Dostępna ilość" - -#: build/serializers.py:1325 -msgid "Available Substitute Stock" -msgstr "" - -#: build/serializers.py:1326 -msgid "Available Variant Stock" -msgstr "" - -#: build/serializers.py:1327 -msgid "Total Available Stock" -msgstr "" - -#: build/serializers.py:1328 part/serializers.py:906 +#: build/serializers.py:1384 part/serializers.py:958 msgid "External Stock" msgstr "" -#: build/status_codes.py:11 generic/states/tests.py:17 order/status_codes.py:12 -#: order/status_codes.py:42 order/status_codes.py:74 order/status_codes.py:98 +#: build/serializers.py:1385 part/bom.py:185 part/serializers.py:1687 +#: part/templates/part/part_base.html:193 +#: templates/js/translated/sales_order.js:1910 +msgid "Available Stock" +msgstr "Dostępna ilość" + +#: build/serializers.py:1386 +msgid "Available Substitute Stock" +msgstr "" + +#: build/serializers.py:1387 +msgid "Available Variant Stock" +msgstr "" + +#: build/status_codes.py:11 generic/states/tests.py:21 +#: generic/states/tests.py:131 order/status_codes.py:12 +#: order/status_codes.py:44 order/status_codes.py:76 order/status_codes.py:102 #: templates/js/translated/table_filters.js:601 msgid "Pending" msgstr "W toku" @@ -1722,21 +1750,21 @@ msgstr "W toku" msgid "Production" msgstr "Produkcja" -#: build/status_codes.py:13 order/status_codes.py:14 order/status_codes.py:49 -#: order/status_codes.py:79 +#: build/status_codes.py:13 order/status_codes.py:14 order/status_codes.py:51 +#: order/status_codes.py:81 msgid "On Hold" msgstr "" -#: build/status_codes.py:14 order/status_codes.py:16 order/status_codes.py:51 -#: order/status_codes.py:82 +#: build/status_codes.py:14 order/status_codes.py:16 order/status_codes.py:53 +#: order/status_codes.py:84 msgid "Cancelled" msgstr "Anulowano" -#: build/status_codes.py:15 generic/states/tests.py:19 importer/models.py:509 -#: importer/status_codes.py:19 order/status_codes.py:15 -#: order/status_codes.py:50 order/status_codes.py:81 -#: order/templates/order/order_base.html:163 -#: order/templates/order/sales_order_base.html:168 report/models.py:443 +#: build/status_codes.py:15 generic/states/tests.py:23 importer/models.py:518 +#: importer/status_codes.py:27 order/status_codes.py:15 +#: order/status_codes.py:52 order/status_codes.py:83 +#: order/templates/order/order_base.html:172 +#: order/templates/order/sales_order_base.html:169 report/models.py:451 msgid "Complete" msgstr "Zakończono" @@ -1744,165 +1772,162 @@ msgstr "Zakończono" msgid "Stock required for build order" msgstr "" -#: build/tasks.py:201 +#: build/tasks.py:260 msgid "Overdue Build Order" msgstr "" -#: build/tasks.py:206 +#: build/tasks.py:265 #, python-brace-format msgid "Build order {bo} is now overdue" msgstr "" -#: build/templates/build/build_base.html:18 +#: build/templates/build/build_base.html:19 msgid "Part thumbnail" msgstr "Miniaturka przedmiotu" -#: build/templates/build/build_base.html:38 -#: company/templates/company/supplier_part.html:35 -#: order/templates/order/order_base.html:29 -#: order/templates/order/return_order_base.html:38 -#: order/templates/order/sales_order_base.html:38 -#: part/templates/part/part_base.html:41 -#: stock/templates/stock/item_base.html:40 -#: stock/templates/stock/location.html:52 +#: build/templates/build/build_base.html:39 +#: company/templates/company/supplier_part.html:36 +#: order/templates/order/order_base.html:30 +#: order/templates/order/return_order_base.html:39 +#: order/templates/order/sales_order_base.html:39 +#: part/templates/part/part_base.html:42 +#: stock/templates/stock/item_base.html:41 +#: stock/templates/stock/location.html:53 #: templates/js/translated/filters.js:338 msgid "Barcode actions" msgstr "Akcje kodów kreskowych" -#: build/templates/build/build_base.html:42 -#: company/templates/company/supplier_part.html:39 -#: order/templates/order/order_base.html:33 -#: order/templates/order/return_order_base.html:42 -#: order/templates/order/sales_order_base.html:42 -#: part/templates/part/part_base.html:44 -#: stock/templates/stock/item_base.html:44 -#: stock/templates/stock/location.html:54 templates/qr_button.html:1 +#: build/templates/build/build_base.html:43 +#: company/templates/company/supplier_part.html:40 +#: order/templates/order/order_base.html:34 +#: order/templates/order/return_order_base.html:43 +#: order/templates/order/sales_order_base.html:43 +#: part/templates/part/part_base.html:45 +#: stock/templates/stock/item_base.html:45 +#: stock/templates/stock/location.html:55 templates/qr_button.html:1 msgid "Show QR Code" msgstr "Pokaż Kod QR" -#: build/templates/build/build_base.html:45 -#: company/templates/company/supplier_part.html:41 -#: order/templates/order/order_base.html:36 -#: order/templates/order/return_order_base.html:45 -#: order/templates/order/sales_order_base.html:45 -#: part/templates/part/part_base.html:47 -#: stock/templates/stock/item_base.html:47 -#: stock/templates/stock/location.html:56 +#: build/templates/build/build_base.html:46 +#: company/templates/company/supplier_part.html:42 +#: order/templates/order/order_base.html:37 +#: order/templates/order/return_order_base.html:46 +#: order/templates/order/sales_order_base.html:46 +#: part/templates/part/part_base.html:48 +#: stock/templates/stock/item_base.html:48 +#: stock/templates/stock/location.html:57 #: templates/js/translated/barcode.js:527 #: templates/js/translated/barcode.js:532 msgid "Unlink Barcode" msgstr "Odłącz Kod Kreskowy" -#: build/templates/build/build_base.html:47 -#: company/templates/company/supplier_part.html:43 -#: order/templates/order/order_base.html:38 -#: order/templates/order/return_order_base.html:47 -#: order/templates/order/sales_order_base.html:47 -#: part/templates/part/part_base.html:49 -#: stock/templates/stock/item_base.html:49 -#: stock/templates/stock/location.html:58 +#: build/templates/build/build_base.html:48 +#: company/templates/company/supplier_part.html:44 +#: order/templates/order/order_base.html:39 +#: order/templates/order/return_order_base.html:48 +#: order/templates/order/sales_order_base.html:48 +#: part/templates/part/part_base.html:50 +#: stock/templates/stock/item_base.html:50 +#: stock/templates/stock/location.html:59 msgid "Link Barcode" msgstr "Połącz Kod Kreskowy" -#: build/templates/build/build_base.html:56 -#: order/templates/order/order_base.html:46 -#: order/templates/order/return_order_base.html:55 -#: order/templates/order/sales_order_base.html:55 +#: build/templates/build/build_base.html:57 +#: order/templates/order/order_base.html:47 +#: order/templates/order/return_order_base.html:56 +#: order/templates/order/sales_order_base.html:56 msgid "Print actions" msgstr "Akcje drukowania" -#: build/templates/build/build_base.html:60 +#: build/templates/build/build_base.html:61 msgid "Print build order report" msgstr "" -#: build/templates/build/build_base.html:67 +#: build/templates/build/build_base.html:68 msgid "Build actions" msgstr "" -#: build/templates/build/build_base.html:71 +#: build/templates/build/build_base.html:72 msgid "Edit Build" msgstr "Edytuj Budowę" -#: build/templates/build/build_base.html:73 +#: build/templates/build/build_base.html:74 msgid "Duplicate Build" msgstr "" -#: build/templates/build/build_base.html:76 +#: build/templates/build/build_base.html:77 msgid "Hold Build" msgstr "" -#: build/templates/build/build_base.html:79 +#: build/templates/build/build_base.html:80 msgid "Cancel Build" msgstr "Anuluj Budowę" -#: build/templates/build/build_base.html:82 +#: build/templates/build/build_base.html:83 msgid "Delete Build" msgstr "" -#: build/templates/build/build_base.html:87 -msgid "Isueue Build" -msgstr "" - #: build/templates/build/build_base.html:88 +#: build/templates/build/build_base.html:89 msgid "Issue Build" msgstr "" -#: build/templates/build/build_base.html:91 #: build/templates/build/build_base.html:92 +#: build/templates/build/build_base.html:93 msgid "Complete Build" msgstr "" -#: build/templates/build/build_base.html:115 +#: build/templates/build/build_base.html:116 msgid "Build Description" msgstr "" -#: build/templates/build/build_base.html:125 +#: build/templates/build/build_base.html:126 msgid "No build outputs have been created for this build order" msgstr "" -#: build/templates/build/build_base.html:132 +#: build/templates/build/build_base.html:133 msgid "Build Order is ready to mark as completed" msgstr "" -#: build/templates/build/build_base.html:137 +#: build/templates/build/build_base.html:138 msgid "Build Order cannot be completed as outstanding outputs remain" msgstr "" -#: build/templates/build/build_base.html:142 +#: build/templates/build/build_base.html:143 msgid "Required build quantity has not yet been completed" msgstr "" -#: build/templates/build/build_base.html:147 +#: build/templates/build/build_base.html:148 msgid "Stock has not been fully allocated to this Build Order" msgstr "" -#: build/templates/build/build_base.html:168 -#: build/templates/build/detail.html:138 order/models.py:308 -#: order/models.py:1391 order/serializers.py:174 -#: order/templates/order/order_base.html:191 -#: order/templates/order/return_order_base.html:167 -#: order/templates/order/sales_order_base.html:199 +#: build/templates/build/build_base.html:169 +#: build/templates/build/detail.html:138 order/models.py:315 +#: order/models.py:1408 order/serializers.py:254 +#: order/templates/order/order_base.html:200 +#: order/templates/order/return_order_base.html:168 +#: order/templates/order/sales_order_base.html:200 #: report/templates/report/inventree_build_order_report.html:125 -#: templates/js/translated/build.js:2411 templates/js/translated/part.js:1837 -#: templates/js/translated/purchase_order.js:1809 -#: templates/js/translated/purchase_order.js:2217 +#: templates/js/translated/build.js:2414 templates/js/translated/part.js:1837 +#: templates/js/translated/purchase_order.js:1793 +#: templates/js/translated/purchase_order.js:2201 #: templates/js/translated/return_order.js:346 #: templates/js/translated/return_order.js:749 -#: templates/js/translated/sales_order.js:871 -#: templates/js/translated/sales_order.js:1903 +#: templates/js/translated/sales_order.js:830 +#: templates/js/translated/sales_order.js:1884 msgid "Target Date" msgstr "Data docelowa" -#: build/templates/build/build_base.html:173 +#: build/templates/build/build_base.html:174 #, python-format msgid "This build was due on %(target)s" msgstr "" -#: build/templates/build/build_base.html:173 -#: build/templates/build/build_base.html:230 -#: order/templates/order/order_base.html:127 -#: order/templates/order/return_order_base.html:120 -#: order/templates/order/sales_order_base.html:129 +#: build/templates/build/build_base.html:174 +#: build/templates/build/build_base.html:231 +#: order/templates/order/order_base.html:128 +#: order/templates/order/return_order_base.html:121 +#: order/templates/order/sales_order_base.html:130 #: templates/js/translated/table_filters.js:97 #: templates/js/translated/table_filters.js:545 #: templates/js/translated/table_filters.js:629 @@ -1910,49 +1935,50 @@ msgstr "" msgid "Overdue" msgstr "Zaległe" -#: build/templates/build/build_base.html:185 +#: build/templates/build/build_base.html:186 #: build/templates/build/detail.html:67 build/templates/build/sidebar.html:13 msgid "Completed Outputs" msgstr "" -#: build/templates/build/build_base.html:198 -#: build/templates/build/detail.html:101 order/api.py:1406 order/models.py:892 -#: order/models.py:1650 order/models.py:1765 order/models.py:1924 -#: order/templates/order/sales_order_base.html:9 -#: order/templates/order/sales_order_base.html:28 +#: build/templates/build/build_base.html:199 +#: build/templates/build/detail.html:101 order/api.py:1528 order/models.py:914 +#: order/models.py:1666 order/models.py:1794 order/models.py:1957 +#: order/templates/order/sales_order_base.html:10 +#: order/templates/order/sales_order_base.html:29 #: report/templates/report/inventree_build_order_report.html:135 #: report/templates/report/inventree_sales_order_report.html:14 -#: stock/templates/stock/item_base.html:369 +#: report/templates/report/inventree_sales_order_shipment_report.html:15 +#: stock/templates/stock/item_base.html:366 #: templates/email/overdue_sales_order.html:15 -#: templates/js/translated/pricing.js:929 -#: templates/js/translated/sales_order.js:805 -#: templates/js/translated/sales_order.js:1028 -#: templates/js/translated/stock.js:3008 +#: templates/js/translated/pricing.js:927 +#: templates/js/translated/sales_order.js:764 +#: templates/js/translated/sales_order.js:1001 +#: templates/js/translated/stock.js:3009 msgid "Sales Order" msgstr "Zamówienie zakupu" -#: build/templates/build/build_base.html:219 -#: build/templates/build/detail.html:94 templates/js/translated/build.js:2328 +#: build/templates/build/build_base.html:220 +#: build/templates/build/detail.html:94 templates/js/translated/build.js:2331 msgid "Priority" msgstr "Priorytet" -#: build/templates/build/build_base.html:267 +#: build/templates/build/build_base.html:268 msgid "Issue Build Order" msgstr "" -#: build/templates/build/build_base.html:271 +#: build/templates/build/build_base.html:272 msgid "Issue this Build Order?" msgstr "" -#: build/templates/build/build_base.html:302 +#: build/templates/build/build_base.html:303 msgid "Delete Build Order" msgstr "" -#: build/templates/build/build_base.html:312 +#: build/templates/build/build_base.html:313 msgid "Build Order QR Code" msgstr "" -#: build/templates/build/build_base.html:324 +#: build/templates/build/build_base.html:325 msgid "Link Barcode to Build Order" msgstr "" @@ -1968,8 +1994,9 @@ msgstr "Źródło magazynu" msgid "Stock can be taken from any available location." msgstr "" -#: build/templates/build/detail.html:49 order/models.py:1532 -#: templates/js/translated/purchase_order.js:2259 +#: build/templates/build/detail.html:49 order/models.py:548 +#: order/models.py:1548 order/templates/order/order_base.html:135 +#: templates/js/translated/purchase_order.js:2243 msgid "Destination" msgstr "Przeznaczenie" @@ -1981,23 +2008,24 @@ msgstr "Nie określono lokalizacji docelowej" msgid "Allocated Parts" msgstr "" -#: build/templates/build/detail.html:80 stock/admin.py:162 -#: stock/templates/stock/item_base.html:162 -#: templates/js/translated/build.js:1553 -#: templates/js/translated/model_renderers.js:242 -#: templates/js/translated/purchase_order.js:1326 +#: build/templates/build/detail.html:80 +#: report/templates/report/inventree_sales_order_shipment_report.html:47 +#: stock/admin.py:163 stock/templates/stock/item_base.html:159 +#: templates/js/translated/build.js:1556 +#: templates/js/translated/model_renderers.js:245 +#: templates/js/translated/purchase_order.js:1309 #: templates/js/translated/stock.js:1139 templates/js/translated/stock.js:1240 -#: templates/js/translated/stock.js:2275 templates/js/translated/stock.js:3211 +#: templates/js/translated/stock.js:2276 templates/js/translated/stock.js:3212 #: templates/js/translated/table_filters.js:320 #: templates/js/translated/table_filters.js:411 msgid "Batch" msgstr "Partia" #: build/templates/build/detail.html:133 -#: order/templates/order/order_base.html:178 -#: order/templates/order/return_order_base.html:154 -#: order/templates/order/sales_order_base.html:193 -#: templates/js/translated/build.js:2371 +#: order/templates/order/order_base.html:187 +#: order/templates/order/return_order_base.html:155 +#: order/templates/order/sales_order_base.html:194 +#: templates/js/translated/build.js:2374 msgid "Created" msgstr "Utworzony" @@ -2005,8 +2033,8 @@ msgstr "Utworzony" msgid "No target date set" msgstr "" -#: build/templates/build/detail.html:149 -#: order/templates/order/sales_order_base.html:209 +#: build/templates/build/detail.html:149 order/api.py:794 +#: order/templates/order/sales_order_base.html:210 #: templates/js/translated/table_filters.js:692 msgid "Completed" msgstr "Zakończone" @@ -2052,7 +2080,7 @@ msgid "Order required parts" msgstr "Zamów wymagane komponenty" #: build/templates/build/detail.html:192 -#: templates/js/translated/purchase_order.js:795 +#: templates/js/translated/purchase_order.js:778 msgid "Order Parts" msgstr "Zamów komponent" @@ -2120,7 +2148,7 @@ msgstr "Nowe zlecenie budowy" msgid "Build Order Details" msgstr "" -#: build/templates/build/sidebar.html:8 order/serializers.py:82 +#: build/templates/build/sidebar.html:8 order/serializers.py:113 #: order/templates/order/po_sidebar.html:5 #: order/templates/order/return_order_detail.html:18 #: order/templates/order/so_sidebar.html:5 @@ -2139,43 +2167,38 @@ msgstr "" msgid "Test Statistics" msgstr "" -#: common/api.py:693 +#: common/api.py:725 msgid "Is Link" msgstr "" -#: common/api.py:701 +#: common/api.py:733 msgid "Is File" msgstr "" -#: common/api.py:744 +#: common/api.py:776 msgid "User does not have permission to delete these attachments" msgstr "" -#: common/api.py:761 +#: common/api.py:793 msgid "User does not have permission to delete this attachment" msgstr "" -#: common/currency.py:132 +#: common/currency.py:134 msgid "Invalid currency code" msgstr "" -#: common/currency.py:134 +#: common/currency.py:136 msgid "Duplicate currency code" msgstr "" -#: common/currency.py:139 +#: common/currency.py:141 msgid "No valid currency codes provided" msgstr "" -#: common/currency.py:156 +#: common/currency.py:158 msgid "No plugin" msgstr "Brak wtyczki" -#: common/files.py:63 -#, python-brace-format -msgid "Unsupported file format: {fmt}" -msgstr "" - #: common/files.py:65 msgid "Error reading file (invalid encoding)" msgstr "Błąd odczytu pliku (nieprawidłowe kodowanie)" @@ -2192,1883 +2215,2039 @@ msgstr "Błąd odczytu pliku (niepoprawny wymiar)" msgid "Error reading file (data could be corrupted)" msgstr "Błąd odczytu pliku (dane mogą być uszkodzone)" -#: common/forms.py:12 +#: common/forms.py:12 common/forms.py:25 msgid "File" msgstr "Plik" -#: common/forms.py:12 +#: common/forms.py:12 common/forms.py:26 msgid "Select file to upload" msgstr "Wybierz plik do przesłania" -#: common/forms.py:25 -msgid "{name.title()} File" -msgstr "{name.title()} Plik" - -#: common/forms.py:26 -#, python-brace-format -msgid "Select {name} file to upload" -msgstr "Wybierz plik {name} do przesłania" - -#: common/models.py:86 +#: common/models.py:89 msgid "Updated" msgstr "Zaktualizowany" -#: common/models.py:87 +#: common/models.py:90 msgid "Timestamp of last update" msgstr "Data ostatniej aktualizacji" -#: common/models.py:120 +#: common/models.py:123 msgid "Site URL is locked by configuration" msgstr "" -#: common/models.py:150 +#: common/models.py:153 msgid "Unique project code" msgstr "Unikalny kod projektu" -#: common/models.py:157 +#: common/models.py:160 msgid "Project description" msgstr "Opis projektu" -#: common/models.py:166 +#: common/models.py:169 msgid "User or group responsible for this project" msgstr "Użytkownik lub grupa odpowiedzialna za to zamówienie" -#: common/models.py:783 -msgid "Settings key (must be unique - case insensitive)" -msgstr "Klucz ustawień (musi być unikalny - niewrażliwy na wielkość liter)" +#: common/models.py:783 common/models.py:2236 common/models.py:2613 +msgid "Settings key" +msgstr "" #: common/models.py:787 msgid "Settings value" msgstr "Ustawienia wartości" -#: common/models.py:839 +#: common/models.py:842 msgid "Chosen value is not a valid option" msgstr "Wybrana wartość nie jest poprawną opcją" -#: common/models.py:855 +#: common/models.py:858 msgid "Value must be a boolean value" msgstr "Wartość musi być wartością binarną" -#: common/models.py:863 +#: common/models.py:866 msgid "Value must be an integer value" msgstr "Wartość musi być liczbą całkowitą" -#: common/models.py:900 +#: common/models.py:874 +msgid "Value must be a valid number" +msgstr "" + +#: common/models.py:899 +msgid "Value does not pass validation checks" +msgstr "" + +#: common/models.py:921 msgid "Key string must be unique" msgstr "Ciąg musi być unikatowy" -#: common/models.py:1132 +#: common/models.py:1189 msgid "No group" msgstr "Brak grupy" -#: common/models.py:1231 +#: common/models.py:1288 msgid "Restart required" msgstr "Wymagane ponowne uruchomienie" -#: common/models.py:1233 +#: common/models.py:1290 msgid "A setting has been changed which requires a server restart" msgstr "Zmieniono ustawienie, które wymaga restartu serwera" -#: common/models.py:1240 +#: common/models.py:1297 msgid "Pending migrations" msgstr "Oczekujące migracje" -#: common/models.py:1241 +#: common/models.py:1298 msgid "Number of pending database migrations" msgstr "Liczba oczekujących migracji bazy danych" -#: common/models.py:1246 +#: common/models.py:1303 msgid "Server Instance Name" msgstr "Nazwa instancji serwera" -#: common/models.py:1248 +#: common/models.py:1305 msgid "String descriptor for the server instance" msgstr "" -#: common/models.py:1252 +#: common/models.py:1309 msgid "Use instance name" msgstr "Użyj nazwy instancji" -#: common/models.py:1253 +#: common/models.py:1310 msgid "Use the instance name in the title-bar" msgstr "" -#: common/models.py:1258 +#: common/models.py:1315 msgid "Restrict showing `about`" msgstr "" -#: common/models.py:1259 +#: common/models.py:1316 msgid "Show the `about` modal only to superusers" msgstr "" -#: common/models.py:1264 company/models.py:111 company/models.py:112 +#: common/models.py:1321 company/models.py:108 company/models.py:109 msgid "Company name" msgstr "Nazwa firmy" -#: common/models.py:1265 +#: common/models.py:1322 msgid "Internal company name" msgstr "Wewnętrzna nazwa firmy" -#: common/models.py:1269 +#: common/models.py:1326 msgid "Base URL" msgstr "Bazowy URL" -#: common/models.py:1270 +#: common/models.py:1327 msgid "Base URL for server instance" msgstr "Bazowy adres URL dla instancji serwera" -#: common/models.py:1276 +#: common/models.py:1333 msgid "Default Currency" msgstr "Domyślna waluta" -#: common/models.py:1277 +#: common/models.py:1334 msgid "Select base currency for pricing calculations" msgstr "" -#: common/models.py:1283 +#: common/models.py:1340 msgid "Supported Currencies" msgstr "" -#: common/models.py:1284 +#: common/models.py:1341 msgid "List of supported currency codes" msgstr "" -#: common/models.py:1290 +#: common/models.py:1347 msgid "Currency Update Interval" msgstr "Interwał aktualizacji waluty" -#: common/models.py:1292 +#: common/models.py:1349 msgid "How often to update exchange rates (set to zero to disable)" msgstr "Jak często aktualizować kursy wymiany walut (ustaw zero aby wyłączyć)" -#: common/models.py:1295 common/models.py:1351 common/models.py:1364 -#: common/models.py:1372 common/models.py:1381 common/models.py:1390 -#: common/models.py:1627 common/models.py:1649 common/models.py:1764 -#: common/models.py:2146 +#: common/models.py:1352 common/models.py:1408 common/models.py:1421 +#: common/models.py:1429 common/models.py:1438 common/models.py:1447 +#: common/models.py:1696 common/models.py:1718 common/models.py:1819 +#: common/models.py:2208 msgid "days" msgstr "dni" -#: common/models.py:1299 +#: common/models.py:1356 msgid "Currency Update Plugin" msgstr "Wtyczka aktualizacji waluty" -#: common/models.py:1300 +#: common/models.py:1357 msgid "Currency update plugin to use" msgstr "" -#: common/models.py:1305 +#: common/models.py:1362 msgid "Download from URL" msgstr "Pobierz z adresu URL" -#: common/models.py:1307 +#: common/models.py:1364 msgid "Allow download of remote images and files from external URL" msgstr "Zezwól na pobieranie zewnętrznych obrazów i plików z zewnętrznego URL" -#: common/models.py:1313 +#: common/models.py:1370 msgid "Download Size Limit" msgstr "Limit rozmiaru pobierania" -#: common/models.py:1314 +#: common/models.py:1371 msgid "Maximum allowable download size for remote image" msgstr "" -#: common/models.py:1320 +#: common/models.py:1377 msgid "User-agent used to download from URL" msgstr "" -#: common/models.py:1322 +#: common/models.py:1379 msgid "Allow to override the user-agent used to download images and files from external URL (leave blank for the default)" msgstr "" -#: common/models.py:1327 +#: common/models.py:1384 msgid "Strict URL Validation" msgstr "Ścisła weryfikacja adresu URL" -#: common/models.py:1328 +#: common/models.py:1385 msgid "Require schema specification when validating URLs" msgstr "Wymagaj specyfikacji schematu podczas sprawdzania poprawności adresów URL" -#: common/models.py:1333 +#: common/models.py:1390 msgid "Require confirm" msgstr "Wymagaj potwierdzenia" -#: common/models.py:1334 +#: common/models.py:1391 msgid "Require explicit user confirmation for certain action." msgstr "Wymagaj wyraźnego potwierdzenia dla określonych działań." -#: common/models.py:1339 +#: common/models.py:1396 msgid "Tree Depth" msgstr "Głębokość drzewa" -#: common/models.py:1341 +#: common/models.py:1398 msgid "Default tree depth for treeview. Deeper levels can be lazy loaded as they are needed." msgstr "Domyślna głębokość drzewa dla widoku drzewa. Głębsze poziomy mogą być leniwe, gdy są potrzebne." -#: common/models.py:1347 +#: common/models.py:1404 msgid "Update Check Interval" msgstr "Częstotliwość sprawdzania aktualizacji" -#: common/models.py:1348 +#: common/models.py:1405 msgid "How often to check for updates (set to zero to disable)" msgstr "Jak często aktualizować kursy wymiany walut (ustaw zero aby wyłączyć)" -#: common/models.py:1354 +#: common/models.py:1411 msgid "Automatic Backup" msgstr "Automatyczna kopia zapasowa" -#: common/models.py:1355 +#: common/models.py:1412 msgid "Enable automatic backup of database and media files" msgstr "Włącz automatyczną kopię zapasową bazy danych i plików multimedialnych" -#: common/models.py:1360 +#: common/models.py:1417 msgid "Auto Backup Interval" msgstr "Interwał automatycznego tworzenia kopii zapasowych" -#: common/models.py:1361 +#: common/models.py:1418 msgid "Specify number of days between automated backup events" msgstr "Określ liczbę dni między zdarzeniami automatycznej kopii zapasowej" -#: common/models.py:1367 +#: common/models.py:1424 msgid "Task Deletion Interval" msgstr "Interwał usuwania zadań" -#: common/models.py:1369 +#: common/models.py:1426 msgid "Background task results will be deleted after specified number of days" msgstr "" -#: common/models.py:1376 +#: common/models.py:1433 msgid "Error Log Deletion Interval" msgstr "" -#: common/models.py:1378 +#: common/models.py:1435 msgid "Error logs will be deleted after specified number of days" msgstr "" -#: common/models.py:1385 +#: common/models.py:1442 msgid "Notification Deletion Interval" msgstr "" -#: common/models.py:1387 +#: common/models.py:1444 msgid "User notifications will be deleted after specified number of days" msgstr "" -#: common/models.py:1394 templates/InvenTree/settings/sidebar.html:31 +#: common/models.py:1451 templates/InvenTree/settings/sidebar.html:31 msgid "Barcode Support" msgstr "Obsługa kodu kreskowego" -#: common/models.py:1395 +#: common/models.py:1452 msgid "Enable barcode scanner support in the web interface" msgstr "" -#: common/models.py:1400 +#: common/models.py:1457 +msgid "Store Barcode Results" +msgstr "" + +#: common/models.py:1458 +msgid "Store barcode scan results in the database" +msgstr "" + +#: common/models.py:1463 +msgid "Barcode Scans Maximum Count" +msgstr "" + +#: common/models.py:1464 +msgid "Maximum number of barcode scan results to store" +msgstr "" + +#: common/models.py:1469 msgid "Barcode Input Delay" msgstr "" -#: common/models.py:1401 +#: common/models.py:1470 msgid "Barcode input processing delay time" msgstr "" -#: common/models.py:1407 +#: common/models.py:1476 msgid "Barcode Webcam Support" msgstr "" -#: common/models.py:1408 +#: common/models.py:1477 msgid "Allow barcode scanning via webcam in browser" msgstr "" -#: common/models.py:1413 +#: common/models.py:1482 msgid "Barcode Show Data" msgstr "" -#: common/models.py:1414 +#: common/models.py:1483 msgid "Display barcode data in browser as text" msgstr "" -#: common/models.py:1419 +#: common/models.py:1488 msgid "Barcode Generation Plugin" msgstr "" -#: common/models.py:1420 +#: common/models.py:1489 msgid "Plugin to use for internal barcode data generation" msgstr "" -#: common/models.py:1425 +#: common/models.py:1494 msgid "Part Revisions" msgstr "" -#: common/models.py:1426 +#: common/models.py:1495 msgid "Enable revision field for Part" msgstr "" -#: common/models.py:1431 +#: common/models.py:1500 msgid "Assembly Revision Only" msgstr "" -#: common/models.py:1432 +#: common/models.py:1501 msgid "Only allow revisions for assembly parts" msgstr "" -#: common/models.py:1437 +#: common/models.py:1506 msgid "Allow Deletion from Assembly" msgstr "" -#: common/models.py:1438 +#: common/models.py:1507 msgid "Allow deletion of parts which are used in an assembly" msgstr "" -#: common/models.py:1443 +#: common/models.py:1512 msgid "IPN Regex" msgstr "Wyrażenie regularne IPN" -#: common/models.py:1444 +#: common/models.py:1513 msgid "Regular expression pattern for matching Part IPN" msgstr "" -#: common/models.py:1447 +#: common/models.py:1516 msgid "Allow Duplicate IPN" msgstr "Zezwól na powtarzający się IPN" -#: common/models.py:1448 +#: common/models.py:1517 msgid "Allow multiple parts to share the same IPN" msgstr "" -#: common/models.py:1453 +#: common/models.py:1522 msgid "Allow Editing IPN" msgstr "Zezwól na edycję IPN" -#: common/models.py:1454 +#: common/models.py:1523 msgid "Allow changing the IPN value while editing a part" msgstr "" -#: common/models.py:1459 +#: common/models.py:1528 msgid "Copy Part BOM Data" msgstr "Skopiuj BOM komponentu" -#: common/models.py:1460 +#: common/models.py:1529 msgid "Copy BOM data by default when duplicating a part" msgstr "" -#: common/models.py:1465 +#: common/models.py:1534 msgid "Copy Part Parameter Data" msgstr "" -#: common/models.py:1466 +#: common/models.py:1535 msgid "Copy parameter data by default when duplicating a part" msgstr "" -#: common/models.py:1471 +#: common/models.py:1540 msgid "Copy Part Test Data" msgstr "" -#: common/models.py:1472 +#: common/models.py:1541 msgid "Copy test data by default when duplicating a part" msgstr "" -#: common/models.py:1477 +#: common/models.py:1546 msgid "Copy Category Parameter Templates" msgstr "" -#: common/models.py:1478 +#: common/models.py:1547 msgid "Copy category parameter templates when creating a part" msgstr "" -#: common/models.py:1483 part/admin.py:108 part/models.py:3945 -#: report/models.py:293 report/models.py:360 report/serializers.py:90 -#: report/serializers.py:131 stock/serializers.py:232 +#: common/models.py:1552 part/admin.py:108 part/models.py:4003 +#: report/models.py:301 report/models.py:368 report/serializers.py:91 +#: report/serializers.py:132 stock/serializers.py:233 #: templates/js/translated/table_filters.js:138 #: templates/js/translated/table_filters.js:775 msgid "Template" msgstr "Szablon" -#: common/models.py:1484 +#: common/models.py:1553 msgid "Parts are templates by default" msgstr "" -#: common/models.py:1490 +#: common/models.py:1559 msgid "Parts can be assembled from other components by default" msgstr "" -#: common/models.py:1495 part/admin.py:95 part/models.py:1160 -#: part/serializers.py:1596 templates/js/translated/table_filters.js:737 +#: common/models.py:1564 part/admin.py:95 part/models.py:1221 +#: part/serializers.py:1654 templates/js/translated/table_filters.js:737 msgid "Component" msgstr "Komponent" -#: common/models.py:1496 +#: common/models.py:1565 msgid "Parts can be used as sub-components by default" msgstr "" -#: common/models.py:1501 part/admin.py:100 part/models.py:1178 +#: common/models.py:1570 part/admin.py:100 part/models.py:1239 msgid "Purchaseable" msgstr "Możliwość zakupu" -#: common/models.py:1502 +#: common/models.py:1571 msgid "Parts are purchaseable by default" msgstr "Części są domyślnie z możliwością zakupu" -#: common/models.py:1507 part/admin.py:104 part/models.py:1184 +#: common/models.py:1576 part/admin.py:104 part/models.py:1245 #: templates/js/translated/table_filters.js:763 msgid "Salable" msgstr "Możliwość sprzedaży" -#: common/models.py:1508 +#: common/models.py:1577 msgid "Parts are salable by default" msgstr "Części są domyślnie z możliwością sprzedaży" -#: common/models.py:1514 +#: common/models.py:1583 msgid "Parts are trackable by default" msgstr "Części są domyślnie z możliwością śledzenia" -#: common/models.py:1519 part/admin.py:117 part/models.py:1200 -#: part/templates/part/part_base.html:154 +#: common/models.py:1588 part/admin.py:117 part/models.py:1261 +#: part/templates/part/part_base.html:155 #: templates/js/translated/table_filters.js:142 #: templates/js/translated/table_filters.js:787 msgid "Virtual" msgstr "Wirtualny" -#: common/models.py:1520 +#: common/models.py:1589 msgid "Parts are virtual by default" msgstr "Części są domyślnie wirtualne" -#: common/models.py:1525 +#: common/models.py:1594 msgid "Show Import in Views" msgstr "" -#: common/models.py:1526 +#: common/models.py:1595 msgid "Display the import wizard in some part views" msgstr "" -#: common/models.py:1531 +#: common/models.py:1600 msgid "Show related parts" msgstr "Pokaż powiązane części" -#: common/models.py:1532 +#: common/models.py:1601 msgid "Display related parts for a part" msgstr "" -#: common/models.py:1537 +#: common/models.py:1606 msgid "Initial Stock Data" msgstr "" -#: common/models.py:1538 +#: common/models.py:1607 msgid "Allow creation of initial stock when adding a new part" msgstr "" -#: common/models.py:1543 templates/js/translated/part.js:108 +#: common/models.py:1612 templates/js/translated/part.js:108 msgid "Initial Supplier Data" msgstr "" -#: common/models.py:1545 +#: common/models.py:1614 msgid "Allow creation of initial supplier data when adding a new part" msgstr "" -#: common/models.py:1551 +#: common/models.py:1620 msgid "Part Name Display Format" msgstr "" -#: common/models.py:1552 +#: common/models.py:1621 msgid "Format to display the part name" msgstr "" -#: common/models.py:1558 +#: common/models.py:1627 msgid "Part Category Default Icon" msgstr "" -#: common/models.py:1559 +#: common/models.py:1628 msgid "Part category default icon (empty means no icon)" msgstr "" -#: common/models.py:1564 +#: common/models.py:1633 msgid "Enforce Parameter Units" msgstr "" -#: common/models.py:1566 +#: common/models.py:1635 msgid "If units are provided, parameter values must match the specified units" msgstr "" -#: common/models.py:1572 +#: common/models.py:1641 msgid "Minimum Pricing Decimal Places" msgstr "" -#: common/models.py:1574 +#: common/models.py:1643 msgid "Minimum number of decimal places to display when rendering pricing data" msgstr "" -#: common/models.py:1585 +#: common/models.py:1654 msgid "Maximum Pricing Decimal Places" msgstr "" -#: common/models.py:1587 +#: common/models.py:1656 msgid "Maximum number of decimal places to display when rendering pricing data" msgstr "" -#: common/models.py:1598 +#: common/models.py:1667 msgid "Use Supplier Pricing" msgstr "Użyj cennika dostawcy" -#: common/models.py:1600 +#: common/models.py:1669 msgid "Include supplier price breaks in overall pricing calculations" msgstr "" -#: common/models.py:1606 +#: common/models.py:1675 msgid "Purchase History Override" msgstr "Nadpisanie historii zakupów" -#: common/models.py:1608 +#: common/models.py:1677 msgid "Historical purchase order pricing overrides supplier price breaks" msgstr "" -#: common/models.py:1614 +#: common/models.py:1683 msgid "Use Stock Item Pricing" msgstr "" -#: common/models.py:1616 +#: common/models.py:1685 msgid "Use pricing from manually entered stock data for pricing calculations" msgstr "" -#: common/models.py:1622 +#: common/models.py:1691 msgid "Stock Item Pricing Age" msgstr "" -#: common/models.py:1624 +#: common/models.py:1693 msgid "Exclude stock items older than this number of days from pricing calculations" msgstr "" -#: common/models.py:1631 +#: common/models.py:1700 msgid "Use Variant Pricing" msgstr "" -#: common/models.py:1632 +#: common/models.py:1701 msgid "Include variant pricing in overall pricing calculations" msgstr "" -#: common/models.py:1637 +#: common/models.py:1706 msgid "Active Variants Only" msgstr "" -#: common/models.py:1639 +#: common/models.py:1708 msgid "Only use active variant parts for calculating variant pricing" msgstr "" -#: common/models.py:1645 +#: common/models.py:1714 msgid "Pricing Rebuild Interval" msgstr "" -#: common/models.py:1647 +#: common/models.py:1716 msgid "Number of days before part pricing is automatically updated" msgstr "" -#: common/models.py:1654 +#: common/models.py:1723 msgid "Internal Prices" msgstr "Ceny wewnętrzne" -#: common/models.py:1655 +#: common/models.py:1724 msgid "Enable internal prices for parts" msgstr "" -#: common/models.py:1660 +#: common/models.py:1729 msgid "Internal Price Override" msgstr "" -#: common/models.py:1662 +#: common/models.py:1731 msgid "If available, internal prices override price range calculations" msgstr "" -#: common/models.py:1668 +#: common/models.py:1737 msgid "Enable label printing" msgstr "Włącz drukowanie etykiet" -#: common/models.py:1669 +#: common/models.py:1738 msgid "Enable label printing from the web interface" msgstr "Włącz drukowanie etykiet z interfejsu WWW" -#: common/models.py:1674 +#: common/models.py:1743 msgid "Label Image DPI" msgstr "DPI etykiety" -#: common/models.py:1676 +#: common/models.py:1745 msgid "DPI resolution when generating image files to supply to label printing plugins" msgstr "" -#: common/models.py:1682 +#: common/models.py:1751 msgid "Enable Reports" msgstr "Włącz raporty" -#: common/models.py:1683 +#: common/models.py:1752 msgid "Enable generation of reports" msgstr "" -#: common/models.py:1688 templates/stats.html:25 +#: common/models.py:1757 templates/stats.html:25 msgid "Debug Mode" msgstr "Tryb Debugowania" -#: common/models.py:1689 +#: common/models.py:1758 msgid "Generate reports in debug mode (HTML output)" msgstr "" -#: common/models.py:1694 +#: common/models.py:1763 msgid "Log Report Errors" msgstr "" -#: common/models.py:1695 +#: common/models.py:1764 msgid "Log errors which occur when generating reports" msgstr "" -#: common/models.py:1700 plugin/builtin/labels/label_sheet.py:28 -#: report/models.py:301 +#: common/models.py:1769 plugin/builtin/labels/label_sheet.py:28 +#: report/models.py:309 msgid "Page Size" msgstr "Rozmiar strony" -#: common/models.py:1701 +#: common/models.py:1770 msgid "Default page size for PDF reports" msgstr "Domyślna wielkość strony dla raportów PDF" -#: common/models.py:1706 -msgid "Enable Test Reports" -msgstr "" - -#: common/models.py:1707 -msgid "Enable generation of test reports" -msgstr "Włącz generowanie raportów testów" - -#: common/models.py:1712 -msgid "Attach Test Reports" -msgstr "" - -#: common/models.py:1714 -msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item" -msgstr "" - -#: common/models.py:1720 +#: common/models.py:1775 msgid "Globally Unique Serials" msgstr "" -#: common/models.py:1721 +#: common/models.py:1776 msgid "Serial numbers for stock items must be globally unique" msgstr "" -#: common/models.py:1726 +#: common/models.py:1781 msgid "Autofill Serial Numbers" msgstr "" -#: common/models.py:1727 +#: common/models.py:1782 msgid "Autofill serial numbers in forms" msgstr "" -#: common/models.py:1732 +#: common/models.py:1787 msgid "Delete Depleted Stock" msgstr "" -#: common/models.py:1734 +#: common/models.py:1789 msgid "Determines default behavior when a stock item is depleted" msgstr "" -#: common/models.py:1740 +#: common/models.py:1795 msgid "Batch Code Template" msgstr "" -#: common/models.py:1742 +#: common/models.py:1797 msgid "Template for generating default batch codes for stock items" msgstr "" -#: common/models.py:1747 +#: common/models.py:1802 msgid "Stock Expiry" msgstr "" -#: common/models.py:1748 +#: common/models.py:1803 msgid "Enable stock expiry functionality" msgstr "" -#: common/models.py:1753 +#: common/models.py:1808 msgid "Sell Expired Stock" msgstr "" -#: common/models.py:1754 +#: common/models.py:1809 msgid "Allow sale of expired stock" msgstr "" -#: common/models.py:1759 +#: common/models.py:1814 msgid "Stock Stale Time" msgstr "" -#: common/models.py:1761 +#: common/models.py:1816 msgid "Number of days stock items are considered stale before expiring" msgstr "" -#: common/models.py:1768 +#: common/models.py:1823 msgid "Build Expired Stock" msgstr "" -#: common/models.py:1769 +#: common/models.py:1824 msgid "Allow building with expired stock" msgstr "" -#: common/models.py:1774 +#: common/models.py:1829 msgid "Stock Ownership Control" msgstr "" -#: common/models.py:1775 +#: common/models.py:1830 msgid "Enable ownership control over stock locations and items" msgstr "" -#: common/models.py:1780 +#: common/models.py:1835 msgid "Stock Location Default Icon" msgstr "" -#: common/models.py:1781 +#: common/models.py:1836 msgid "Stock location default icon (empty means no icon)" msgstr "" -#: common/models.py:1786 +#: common/models.py:1841 msgid "Show Installed Stock Items" msgstr "" -#: common/models.py:1787 +#: common/models.py:1842 msgid "Display installed stock items in stock tables" msgstr "" -#: common/models.py:1792 +#: common/models.py:1847 msgid "Check BOM when installing items" msgstr "" -#: common/models.py:1794 +#: common/models.py:1849 msgid "Installed stock items must exist in the BOM for the parent part" msgstr "" -#: common/models.py:1800 +#: common/models.py:1855 msgid "Allow Out of Stock Transfer" msgstr "" -#: common/models.py:1802 +#: common/models.py:1857 msgid "Allow stock items which are not in stock to be transferred between stock locations" msgstr "" -#: common/models.py:1808 +#: common/models.py:1863 msgid "Build Order Reference Pattern" msgstr "" -#: common/models.py:1810 +#: common/models.py:1865 msgid "Required pattern for generating Build Order reference field" msgstr "" -#: common/models.py:1816 common/models.py:1872 common/models.py:1894 -#: common/models.py:1930 +#: common/models.py:1871 common/models.py:1927 common/models.py:1949 +#: common/models.py:1985 msgid "Require Responsible Owner" msgstr "" -#: common/models.py:1817 common/models.py:1873 common/models.py:1895 -#: common/models.py:1931 +#: common/models.py:1872 common/models.py:1928 common/models.py:1950 +#: common/models.py:1986 msgid "A responsible owner must be assigned to each order" msgstr "" -#: common/models.py:1822 +#: common/models.py:1877 msgid "Require Active Part" msgstr "" -#: common/models.py:1823 +#: common/models.py:1878 msgid "Prevent build order creation for inactive parts" msgstr "" -#: common/models.py:1828 +#: common/models.py:1883 msgid "Require Locked Part" msgstr "" -#: common/models.py:1829 +#: common/models.py:1884 msgid "Prevent build order creation for unlocked parts" msgstr "" -#: common/models.py:1834 +#: common/models.py:1889 msgid "Require Valid BOM" msgstr "" -#: common/models.py:1836 +#: common/models.py:1891 msgid "Prevent build order creation unless BOM has been validated" msgstr "" -#: common/models.py:1842 +#: common/models.py:1897 msgid "Require Closed Child Orders" msgstr "" -#: common/models.py:1844 +#: common/models.py:1899 msgid "Prevent build order completion until all child orders are closed" msgstr "" -#: common/models.py:1850 +#: common/models.py:1905 msgid "Block Until Tests Pass" msgstr "" -#: common/models.py:1852 +#: common/models.py:1907 msgid "Prevent build outputs from being completed until all required tests pass" msgstr "" -#: common/models.py:1858 +#: common/models.py:1913 msgid "Enable Return Orders" msgstr "" -#: common/models.py:1859 +#: common/models.py:1914 msgid "Enable return order functionality in the user interface" msgstr "" -#: common/models.py:1864 +#: common/models.py:1919 msgid "Return Order Reference Pattern" msgstr "" -#: common/models.py:1866 +#: common/models.py:1921 msgid "Required pattern for generating Return Order reference field" msgstr "" -#: common/models.py:1878 +#: common/models.py:1933 msgid "Edit Completed Return Orders" msgstr "" -#: common/models.py:1880 +#: common/models.py:1935 msgid "Allow editing of return orders after they have been completed" msgstr "" -#: common/models.py:1886 +#: common/models.py:1941 msgid "Sales Order Reference Pattern" msgstr "" -#: common/models.py:1888 +#: common/models.py:1943 msgid "Required pattern for generating Sales Order reference field" msgstr "" -#: common/models.py:1900 +#: common/models.py:1955 msgid "Sales Order Default Shipment" msgstr "" -#: common/models.py:1901 +#: common/models.py:1956 msgid "Enable creation of default shipment with sales orders" msgstr "" -#: common/models.py:1906 +#: common/models.py:1961 msgid "Edit Completed Sales Orders" msgstr "" -#: common/models.py:1908 +#: common/models.py:1963 msgid "Allow editing of sales orders after they have been shipped or completed" msgstr "" -#: common/models.py:1914 +#: common/models.py:1969 msgid "Mark Shipped Orders as Complete" msgstr "" -#: common/models.py:1916 +#: common/models.py:1971 msgid "Sales orders marked as shipped will automatically be completed, bypassing the \"shipped\" status" msgstr "" -#: common/models.py:1922 +#: common/models.py:1977 msgid "Purchase Order Reference Pattern" msgstr "" -#: common/models.py:1924 +#: common/models.py:1979 msgid "Required pattern for generating Purchase Order reference field" msgstr "" -#: common/models.py:1936 +#: common/models.py:1991 msgid "Edit Completed Purchase Orders" msgstr "" -#: common/models.py:1938 +#: common/models.py:1993 msgid "Allow editing of purchase orders after they have been shipped or completed" msgstr "" -#: common/models.py:1944 +#: common/models.py:1999 msgid "Auto Complete Purchase Orders" msgstr "Automatycznie wypełniaj zlecenia zakupu" -#: common/models.py:1946 +#: common/models.py:2001 msgid "Automatically mark purchase orders as complete when all line items are received" msgstr "Automatycznie oznacz zlecenia jako zakończone po odebraniu wszystkich pozycji" -#: common/models.py:1953 +#: common/models.py:2008 msgid "Enable password forgot" msgstr "Włącz opcję zapomnianego hasła" -#: common/models.py:1954 +#: common/models.py:2009 msgid "Enable password forgot function on the login pages" msgstr "Włącz funkcję zapomnianego hasła na stronach logowania" -#: common/models.py:1959 +#: common/models.py:2014 msgid "Enable registration" msgstr "Włącz rejestrację" -#: common/models.py:1960 +#: common/models.py:2015 msgid "Enable self-registration for users on the login pages" msgstr "Włącz samodzielną rejestrację dla użytkowników na stronach logowania" -#: common/models.py:1965 +#: common/models.py:2020 msgid "Enable SSO" msgstr "Włącz SSO" -#: common/models.py:1966 +#: common/models.py:2021 msgid "Enable SSO on the login pages" msgstr "Włącz SSO na stronach logowania" -#: common/models.py:1971 +#: common/models.py:2026 msgid "Enable SSO registration" msgstr "" -#: common/models.py:1973 +#: common/models.py:2028 msgid "Enable self-registration via SSO for users on the login pages" msgstr "" -#: common/models.py:1979 +#: common/models.py:2034 msgid "Enable SSO group sync" msgstr "" -#: common/models.py:1981 +#: common/models.py:2036 msgid "Enable synchronizing InvenTree groups with groups provided by the IdP" msgstr "" -#: common/models.py:1987 +#: common/models.py:2042 msgid "SSO group key" msgstr "" -#: common/models.py:1989 +#: common/models.py:2044 msgid "The name of the groups claim attribute provided by the IdP" msgstr "" -#: common/models.py:1995 +#: common/models.py:2050 msgid "SSO group map" msgstr "" -#: common/models.py:1997 +#: common/models.py:2052 msgid "A mapping from SSO groups to local InvenTree groups. If the local group does not exist, it will be created." msgstr "" -#: common/models.py:2003 +#: common/models.py:2058 msgid "Remove groups outside of SSO" msgstr "" -#: common/models.py:2005 +#: common/models.py:2060 msgid "Whether groups assigned to the user should be removed if they are not backend by the IdP. Disabling this setting might cause security issues" msgstr "" -#: common/models.py:2011 +#: common/models.py:2066 msgid "Email required" msgstr "Adres e-mail jest wymagany" -#: common/models.py:2012 +#: common/models.py:2067 msgid "Require user to supply mail on signup" msgstr "" -#: common/models.py:2017 +#: common/models.py:2072 msgid "Auto-fill SSO users" msgstr "Autouzupełnianie użytkowników SSO" -#: common/models.py:2019 +#: common/models.py:2074 msgid "Automatically fill out user-details from SSO account-data" msgstr "Automatycznie wypełnij dane użytkownika z danych konta SSO" -#: common/models.py:2025 +#: common/models.py:2080 msgid "Mail twice" msgstr "E-mail dwa razy" -#: common/models.py:2026 +#: common/models.py:2081 msgid "On signup ask users twice for their mail" msgstr "Przy rejestracji dwukrotnie zapytaj użytkowników o ich adres e-mail" -#: common/models.py:2031 +#: common/models.py:2086 msgid "Password twice" msgstr "Hasło dwukrotnie" -#: common/models.py:2032 +#: common/models.py:2087 msgid "On signup ask users twice for their password" msgstr "Przy rejestracji dwukrotnie zapytaj użytkowników o ich hasło" -#: common/models.py:2037 +#: common/models.py:2092 msgid "Allowed domains" msgstr "" -#: common/models.py:2039 +#: common/models.py:2094 msgid "Restrict signup to certain domains (comma-separated, starting with @)" msgstr "" -#: common/models.py:2045 +#: common/models.py:2100 msgid "Group on signup" msgstr "Grupuj przy rejestracji" -#: common/models.py:2047 +#: common/models.py:2102 msgid "Group to which new users are assigned on registration. If SSO group sync is enabled, this group is only set if no group can be assigned from the IdP." msgstr "" -#: common/models.py:2053 +#: common/models.py:2108 msgid "Enforce MFA" msgstr "Wymuś MFA" -#: common/models.py:2054 +#: common/models.py:2109 msgid "Users must use multifactor security." msgstr "Użytkownicy muszą używać zabezpieczeń wieloskładnikowych." -#: common/models.py:2059 +#: common/models.py:2114 msgid "Check plugins on startup" msgstr "Sprawdź wtyczki przy starcie" -#: common/models.py:2061 +#: common/models.py:2116 msgid "Check that all plugins are installed on startup - enable in container environments" msgstr "" -#: common/models.py:2069 +#: common/models.py:2124 msgid "Check for plugin updates" msgstr "" -#: common/models.py:2070 +#: common/models.py:2125 msgid "Enable periodic checks for updates to installed plugins" msgstr "" -#: common/models.py:2076 +#: common/models.py:2131 msgid "Enable URL integration" msgstr "Włącz integrację URL" -#: common/models.py:2077 +#: common/models.py:2132 msgid "Enable plugins to add URL routes" msgstr "Włącz wtyczki, aby dodać ścieżki URL" -#: common/models.py:2083 +#: common/models.py:2138 msgid "Enable navigation integration" msgstr "" -#: common/models.py:2084 +#: common/models.py:2139 msgid "Enable plugins to integrate into navigation" msgstr "" -#: common/models.py:2090 +#: common/models.py:2145 msgid "Enable app integration" msgstr "Włącz integrację z aplikacją" -#: common/models.py:2091 +#: common/models.py:2146 msgid "Enable plugins to add apps" msgstr "Włącz wtyczki, aby dodać aplikacje" -#: common/models.py:2097 +#: common/models.py:2152 msgid "Enable schedule integration" msgstr "" -#: common/models.py:2098 +#: common/models.py:2153 msgid "Enable plugins to run scheduled tasks" msgstr "Włącz wtyczki, aby uruchamiać zaplanowane zadania" -#: common/models.py:2104 +#: common/models.py:2159 msgid "Enable event integration" msgstr "" -#: common/models.py:2105 +#: common/models.py:2160 msgid "Enable plugins to respond to internal events" msgstr "" -#: common/models.py:2111 +#: common/models.py:2166 +msgid "Enable interface integration" +msgstr "" + +#: common/models.py:2167 +msgid "Enable plugins to integrate into the user interface" +msgstr "" + +#: common/models.py:2173 msgid "Enable project codes" msgstr "" -#: common/models.py:2112 +#: common/models.py:2174 msgid "Enable project codes for tracking projects" msgstr "" -#: common/models.py:2117 +#: common/models.py:2179 msgid "Stocktake Functionality" msgstr "" -#: common/models.py:2119 +#: common/models.py:2181 msgid "Enable stocktake functionality for recording stock levels and calculating stock value" msgstr "" -#: common/models.py:2125 +#: common/models.py:2187 msgid "Exclude External Locations" msgstr "" -#: common/models.py:2127 +#: common/models.py:2189 msgid "Exclude stock items in external locations from stocktake calculations" msgstr "" -#: common/models.py:2133 +#: common/models.py:2195 msgid "Automatic Stocktake Period" msgstr "" -#: common/models.py:2135 +#: common/models.py:2197 msgid "Number of days between automatic stocktake recording (set to zero to disable)" msgstr "" -#: common/models.py:2141 +#: common/models.py:2203 msgid "Report Deletion Interval" msgstr "" -#: common/models.py:2143 +#: common/models.py:2205 msgid "Stocktake reports will be deleted after specified number of days" msgstr "" -#: common/models.py:2150 +#: common/models.py:2212 msgid "Display Users full names" msgstr "" -#: common/models.py:2151 +#: common/models.py:2213 msgid "Display Users full names instead of usernames" msgstr "" -#: common/models.py:2156 +#: common/models.py:2218 msgid "Enable Test Station Data" msgstr "" -#: common/models.py:2157 +#: common/models.py:2219 msgid "Enable test station data collection for test results" msgstr "" -#: common/models.py:2169 common/models.py:2549 -msgid "Settings key (must be unique - case insensitive" -msgstr "Klucz ustawień (musi być unikalny - niewrażliwy na wielkość liter" +#: common/models.py:2224 +msgid "Create Template on Upload" +msgstr "" -#: common/models.py:2212 +#: common/models.py:2226 +msgid "Create a new test template when uploading test data which does not match an existing template" +msgstr "" + +#: common/models.py:2279 msgid "Hide inactive parts" msgstr "" -#: common/models.py:2214 +#: common/models.py:2281 msgid "Hide inactive parts in results displayed on the homepage" msgstr "" -#: common/models.py:2220 +#: common/models.py:2287 msgid "Show subscribed parts" msgstr "Pokaż obserwowane części" -#: common/models.py:2221 +#: common/models.py:2288 msgid "Show subscribed parts on the homepage" msgstr "Pokaż obserwowane części na stronie głównej" -#: common/models.py:2226 +#: common/models.py:2293 msgid "Show subscribed categories" msgstr "Pokaż obserwowane kategorie" -#: common/models.py:2227 +#: common/models.py:2294 msgid "Show subscribed part categories on the homepage" msgstr "Pokaż obserwowane kategorie części na stronie głównej" -#: common/models.py:2232 +#: common/models.py:2299 msgid "Show latest parts" msgstr "Pokaż najnowsze części" -#: common/models.py:2233 +#: common/models.py:2300 msgid "Show latest parts on the homepage" msgstr "Pokaż najnowsze części na stronie głównej" -#: common/models.py:2238 +#: common/models.py:2305 msgid "Show invalid BOMs" msgstr "" -#: common/models.py:2239 +#: common/models.py:2306 msgid "Show BOMs that await validation on the homepage" msgstr "" -#: common/models.py:2244 +#: common/models.py:2311 msgid "Show recent stock changes" msgstr "" -#: common/models.py:2245 +#: common/models.py:2312 msgid "Show recently changed stock items on the homepage" msgstr "" -#: common/models.py:2250 +#: common/models.py:2317 msgid "Show low stock" msgstr "Pokaż niski stan magazynowy" -#: common/models.py:2251 +#: common/models.py:2318 msgid "Show low stock items on the homepage" msgstr "Pokaż elementy o niskim stanie na stronie głównej" -#: common/models.py:2256 +#: common/models.py:2323 msgid "Show depleted stock" msgstr "" -#: common/models.py:2257 +#: common/models.py:2324 msgid "Show depleted stock items on the homepage" msgstr "" -#: common/models.py:2262 +#: common/models.py:2329 msgid "Show needed stock" msgstr "Pokaż wymagany stan zapasów" -#: common/models.py:2263 +#: common/models.py:2330 msgid "Show stock items needed for builds on the homepage" msgstr "" -#: common/models.py:2268 +#: common/models.py:2335 msgid "Show expired stock" msgstr "" -#: common/models.py:2269 +#: common/models.py:2336 msgid "Show expired stock items on the homepage" msgstr "" -#: common/models.py:2274 +#: common/models.py:2341 msgid "Show stale stock" msgstr "" -#: common/models.py:2275 +#: common/models.py:2342 msgid "Show stale stock items on the homepage" msgstr "" -#: common/models.py:2280 +#: common/models.py:2347 msgid "Show pending builds" msgstr "" -#: common/models.py:2281 +#: common/models.py:2348 msgid "Show pending builds on the homepage" msgstr "" -#: common/models.py:2286 +#: common/models.py:2353 msgid "Show overdue builds" msgstr "" -#: common/models.py:2287 +#: common/models.py:2354 msgid "Show overdue builds on the homepage" msgstr "" -#: common/models.py:2292 +#: common/models.py:2359 msgid "Show outstanding POs" msgstr "" -#: common/models.py:2293 +#: common/models.py:2360 msgid "Show outstanding POs on the homepage" msgstr "" -#: common/models.py:2298 +#: common/models.py:2365 msgid "Show overdue POs" msgstr "" -#: common/models.py:2299 +#: common/models.py:2366 msgid "Show overdue POs on the homepage" msgstr "" -#: common/models.py:2304 +#: common/models.py:2371 msgid "Show outstanding SOs" msgstr "" -#: common/models.py:2305 +#: common/models.py:2372 msgid "Show outstanding SOs on the homepage" msgstr "" -#: common/models.py:2310 +#: common/models.py:2377 msgid "Show overdue SOs" msgstr "" -#: common/models.py:2311 +#: common/models.py:2378 msgid "Show overdue SOs on the homepage" msgstr "" -#: common/models.py:2316 +#: common/models.py:2383 msgid "Show pending SO shipments" msgstr "" -#: common/models.py:2317 +#: common/models.py:2384 msgid "Show pending SO shipments on the homepage" msgstr "" -#: common/models.py:2322 +#: common/models.py:2389 msgid "Show News" msgstr "" -#: common/models.py:2323 +#: common/models.py:2390 msgid "Show news on the homepage" msgstr "" -#: common/models.py:2328 +#: common/models.py:2395 msgid "Inline label display" msgstr "" -#: common/models.py:2330 +#: common/models.py:2397 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:2336 +#: common/models.py:2403 msgid "Default label printer" msgstr "" -#: common/models.py:2338 +#: common/models.py:2405 msgid "Configure which label printer should be selected by default" msgstr "" -#: common/models.py:2344 +#: common/models.py:2411 msgid "Inline report display" msgstr "" -#: common/models.py:2346 +#: common/models.py:2413 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:2352 +#: common/models.py:2419 msgid "Search Parts" msgstr "Szukaj części" -#: common/models.py:2353 +#: common/models.py:2420 msgid "Display parts in search preview window" msgstr "" -#: common/models.py:2358 +#: common/models.py:2425 msgid "Search Supplier Parts" msgstr "" -#: common/models.py:2359 +#: common/models.py:2426 msgid "Display supplier parts in search preview window" msgstr "" -#: common/models.py:2364 +#: common/models.py:2431 msgid "Search Manufacturer Parts" msgstr "" -#: common/models.py:2365 +#: common/models.py:2432 msgid "Display manufacturer parts in search preview window" msgstr "" -#: common/models.py:2370 +#: common/models.py:2437 msgid "Hide Inactive Parts" msgstr "Ukryj nieaktywne części" -#: common/models.py:2371 +#: common/models.py:2438 msgid "Excluded inactive parts from search preview window" msgstr "" -#: common/models.py:2376 +#: common/models.py:2443 msgid "Search Categories" msgstr "" -#: common/models.py:2377 +#: common/models.py:2444 msgid "Display part categories in search preview window" msgstr "" -#: common/models.py:2382 +#: common/models.py:2449 msgid "Search Stock" msgstr "" -#: common/models.py:2383 +#: common/models.py:2450 msgid "Display stock items in search preview window" msgstr "" -#: common/models.py:2388 +#: common/models.py:2455 msgid "Hide Unavailable Stock Items" msgstr "" -#: common/models.py:2390 +#: common/models.py:2457 msgid "Exclude stock items which are not available from the search preview window" msgstr "" -#: common/models.py:2396 +#: common/models.py:2463 msgid "Search Locations" msgstr "" -#: common/models.py:2397 +#: common/models.py:2464 msgid "Display stock locations in search preview window" msgstr "" -#: common/models.py:2402 +#: common/models.py:2469 msgid "Search Companies" msgstr "" -#: common/models.py:2403 +#: common/models.py:2470 msgid "Display companies in search preview window" msgstr "" -#: common/models.py:2408 +#: common/models.py:2475 msgid "Search Build Orders" msgstr "" -#: common/models.py:2409 +#: common/models.py:2476 msgid "Display build orders in search preview window" msgstr "" -#: common/models.py:2414 +#: common/models.py:2481 msgid "Search Purchase Orders" msgstr "Wyszukaj zlecenia zakupu" -#: common/models.py:2415 +#: common/models.py:2482 msgid "Display purchase orders in search preview window" msgstr "" -#: common/models.py:2420 +#: common/models.py:2487 msgid "Exclude Inactive Purchase Orders" msgstr "Wyklucz nieaktywne zlecenia zakupu" -#: common/models.py:2422 +#: common/models.py:2489 msgid "Exclude inactive purchase orders from search preview window" msgstr "" -#: common/models.py:2428 +#: common/models.py:2495 msgid "Search Sales Orders" msgstr "" -#: common/models.py:2429 +#: common/models.py:2496 msgid "Display sales orders in search preview window" msgstr "" -#: common/models.py:2434 +#: common/models.py:2501 msgid "Exclude Inactive Sales Orders" msgstr "" -#: common/models.py:2436 +#: common/models.py:2503 msgid "Exclude inactive sales orders from search preview window" msgstr "" -#: common/models.py:2442 +#: common/models.py:2509 msgid "Search Return Orders" msgstr "" -#: common/models.py:2443 +#: common/models.py:2510 msgid "Display return orders in search preview window" msgstr "" -#: common/models.py:2448 +#: common/models.py:2515 msgid "Exclude Inactive Return Orders" msgstr "" -#: common/models.py:2450 +#: common/models.py:2517 msgid "Exclude inactive return orders from search preview window" msgstr "" -#: common/models.py:2456 +#: common/models.py:2523 msgid "Search Preview Results" msgstr "" -#: common/models.py:2458 +#: common/models.py:2525 msgid "Number of results to show in each section of the search preview window" msgstr "" -#: common/models.py:2464 +#: common/models.py:2531 msgid "Regex Search" msgstr "" -#: common/models.py:2465 +#: common/models.py:2532 msgid "Enable regular expressions in search queries" msgstr "" -#: common/models.py:2470 +#: common/models.py:2537 msgid "Whole Word Search" msgstr "" -#: common/models.py:2471 +#: common/models.py:2538 msgid "Search queries return results for whole word matches" msgstr "" -#: common/models.py:2476 +#: common/models.py:2543 msgid "Show Quantity in Forms" msgstr "Pokaż ilość w formularzach" -#: common/models.py:2477 +#: common/models.py:2544 msgid "Display available part quantity in some forms" msgstr "" -#: common/models.py:2482 +#: common/models.py:2549 msgid "Escape Key Closes Forms" msgstr "" -#: common/models.py:2483 +#: common/models.py:2550 msgid "Use the escape key to close modal forms" msgstr "" -#: common/models.py:2488 +#: common/models.py:2555 msgid "Fixed Navbar" msgstr "Stały pasek nawigacyjny" -#: common/models.py:2489 +#: common/models.py:2556 msgid "The navbar position is fixed to the top of the screen" msgstr "" -#: common/models.py:2494 +#: common/models.py:2561 msgid "Date Format" msgstr "Format daty" -#: common/models.py:2495 +#: common/models.py:2562 msgid "Preferred format for displaying dates" msgstr "Preferowany format wyświetlania dat" -#: common/models.py:2508 part/templates/part/detail.html:41 +#: common/models.py:2575 part/templates/part/detail.html:41 msgid "Part Scheduling" msgstr "Planowanie komponentów" -#: common/models.py:2509 +#: common/models.py:2576 msgid "Display part scheduling information" msgstr "" -#: common/models.py:2514 part/templates/part/detail.html:62 +#: common/models.py:2581 part/templates/part/detail.html:62 msgid "Part Stocktake" msgstr "" -#: common/models.py:2516 +#: common/models.py:2583 msgid "Display part stocktake information (if stocktake functionality is enabled)" msgstr "" -#: common/models.py:2522 +#: common/models.py:2589 msgid "Table String Length" msgstr "" -#: common/models.py:2524 +#: common/models.py:2591 msgid "Maximum length limit for strings displayed in table views" msgstr "" -#: common/models.py:2530 +#: common/models.py:2597 msgid "Receive error reports" msgstr "" -#: common/models.py:2531 +#: common/models.py:2598 msgid "Receive notifications for system errors" msgstr "" -#: common/models.py:2536 +#: common/models.py:2603 msgid "Last used printing machines" msgstr "" -#: common/models.py:2537 +#: common/models.py:2604 msgid "Save the last used printing machines for a user" msgstr "" -#: common/models.py:2557 common/models.py:2558 common/models.py:2715 -#: common/models.py:2716 common/models.py:2961 common/models.py:2962 -#: common/models.py:3288 common/models.py:3289 importer/models.py:88 -#: part/models.py:3307 part/models.py:3394 part/models.py:3468 -#: part/models.py:3496 plugin/models.py:274 plugin/models.py:275 -#: report/templates/report/inventree_test_report.html:105 -#: templates/js/translated/stock.js:3120 users/models.py:111 +#: common/models.py:2621 common/models.py:2622 common/models.py:2779 +#: common/models.py:2780 common/models.py:3025 common/models.py:3026 +#: common/models.py:3349 common/models.py:3350 common/models.py:3534 +#: importer/models.py:89 part/models.py:3358 part/models.py:3445 +#: part/models.py:3519 part/models.py:3547 plugin/models.py:313 +#: plugin/models.py:314 report/templates/report/inventree_test_report.html:105 +#: templates/js/translated/stock.js:3121 users/models.py:111 msgid "User" msgstr "Użytkownik" -#: common/models.py:2580 +#: common/models.py:2644 msgid "Price break quantity" msgstr "" -#: common/models.py:2587 company/serializers.py:513 order/admin.py:42 -#: order/models.py:1430 order/models.py:2417 -#: templates/js/translated/company.js:1823 templates/js/translated/part.js:1892 +#: common/models.py:2651 company/serializers.py:524 order/admin.py:42 +#: order/models.py:1447 order/models.py:2456 +#: templates/js/translated/company.js:1824 templates/js/translated/part.js:1892 #: templates/js/translated/pricing.js:621 #: templates/js/translated/return_order.js:739 msgid "Price" msgstr "Cena" -#: common/models.py:2588 +#: common/models.py:2652 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:2692 common/models.py:2877 +#: common/models.py:2756 common/models.py:2941 msgid "Endpoint" msgstr "Punkt końcowy" -#: common/models.py:2693 +#: common/models.py:2757 msgid "Endpoint at which this webhook is received" msgstr "" -#: common/models.py:2703 +#: common/models.py:2767 msgid "Name for this webhook" msgstr "" -#: common/models.py:2707 +#: common/models.py:2771 msgid "Is this webhook active" msgstr "" -#: common/models.py:2723 users/models.py:159 +#: common/models.py:2787 users/models.py:159 msgid "Token" msgstr "" -#: common/models.py:2724 +#: common/models.py:2788 msgid "Token for access" msgstr "" -#: common/models.py:2732 +#: common/models.py:2796 msgid "Secret" msgstr "Sekret" -#: common/models.py:2733 +#: common/models.py:2797 msgid "Shared secret for HMAC" msgstr "Współdzielony sekret dla HMAC" -#: common/models.py:2841 +#: common/models.py:2905 msgid "Message ID" msgstr "Id wiadomości" -#: common/models.py:2842 +#: common/models.py:2906 msgid "Unique identifier for this message" msgstr "Unikalny identyfikator dla tej wiadomości" -#: common/models.py:2850 +#: common/models.py:2914 msgid "Host" msgstr "" -#: common/models.py:2851 +#: common/models.py:2915 msgid "Host from which this message was received" msgstr "Host, od którego otrzymano tę wiadomość" -#: common/models.py:2859 +#: common/models.py:2923 msgid "Header" msgstr "Nagłówek" -#: common/models.py:2860 +#: common/models.py:2924 msgid "Header of this message" msgstr "Nagłówek tej wiadomości" -#: common/models.py:2867 +#: common/models.py:2931 msgid "Body" msgstr "Zawartość" -#: common/models.py:2868 +#: common/models.py:2932 msgid "Body of this message" msgstr "" -#: common/models.py:2878 +#: common/models.py:2942 msgid "Endpoint on which this message was received" msgstr "" -#: common/models.py:2883 +#: common/models.py:2947 msgid "Worked on" msgstr "" -#: common/models.py:2884 +#: common/models.py:2948 msgid "Was the work on this message finished?" msgstr "" -#: common/models.py:3010 +#: common/models.py:3074 msgid "Id" msgstr "" -#: common/models.py:3012 templates/js/translated/company.js:965 -#: templates/js/translated/news.js:44 +#: common/models.py:3076 part/serializers.py:271 +#: templates/js/translated/company.js:966 templates/js/translated/news.js:44 msgid "Title" msgstr "" -#: common/models.py:3014 common/models.py:3272 company/models.py:149 -#: company/models.py:446 company/models.py:512 company/models.py:818 -#: order/models.py:302 order/models.py:1385 order/models.py:1817 -#: part/admin.py:55 part/models.py:1057 +#: common/models.py:3078 common/models.py:3333 company/models.py:146 +#: company/models.py:443 company/models.py:509 company/models.py:815 +#: order/models.py:309 order/models.py:1402 order/models.py:1846 +#: part/admin.py:55 part/models.py:1118 #: part/templates/part/part_scheduling.html:11 #: report/templates/report/inventree_build_order_report.html:164 -#: stock/admin.py:229 templates/js/translated/company.js:1319 -#: templates/js/translated/company.js:1673 templates/js/translated/order.js:376 +#: stock/admin.py:230 templates/js/translated/company.js:1320 +#: templates/js/translated/company.js:1674 templates/js/translated/order.js:376 #: templates/js/translated/part.js:2475 -#: templates/js/translated/purchase_order.js:2110 -#: templates/js/translated/purchase_order.js:2274 +#: templates/js/translated/purchase_order.js:2094 +#: templates/js/translated/purchase_order.js:2258 #: templates/js/translated/return_order.js:778 -#: templates/js/translated/sales_order.js:1092 -#: templates/js/translated/sales_order.js:2023 +#: templates/js/translated/sales_order.js:1058 +#: templates/js/translated/sales_order.js:2004 msgid "Link" msgstr "Łącze" -#: common/models.py:3016 templates/js/translated/news.js:60 +#: common/models.py:3080 templates/js/translated/news.js:60 msgid "Published" msgstr "" -#: common/models.py:3018 templates/InvenTree/settings/plugin_settings.html:32 +#: common/models.py:3082 templates/InvenTree/settings/plugin_settings.html:32 #: templates/js/translated/news.js:56 templates/js/translated/plugin.js:103 msgid "Author" msgstr "Autor" -#: common/models.py:3020 templates/js/translated/news.js:52 +#: common/models.py:3084 templates/js/translated/news.js:52 msgid "Summary" msgstr "" -#: common/models.py:3023 +#: common/models.py:3087 msgid "Read" msgstr "" -#: common/models.py:3023 +#: common/models.py:3087 msgid "Was this news item read?" msgstr "" -#: common/models.py:3040 company/models.py:159 part/models.py:1067 +#: common/models.py:3104 company/models.py:156 part/models.py:1128 #: report/templates/report/inventree_bill_of_materials_report.html:126 #: report/templates/report/inventree_bill_of_materials_report.html:148 #: report/templates/report/inventree_return_order_report.html:35 -#: stock/templates/stock/item_base.html:133 templates/503.html:31 +#: stock/templates/stock/item_base.html:130 templates/503.html:31 #: templates/hover_image.html:7 templates/hover_image.html:9 #: templates/modals.html:6 msgid "Image" msgstr "Obraz" -#: common/models.py:3040 +#: common/models.py:3104 msgid "Image file" msgstr "" -#: common/models.py:3052 common/models.py:3256 +#: common/models.py:3116 common/models.py:3317 msgid "Target model type for this image" msgstr "" -#: common/models.py:3056 +#: common/models.py:3120 msgid "Target model ID for this image" msgstr "" -#: common/models.py:3078 +#: common/models.py:3142 msgid "Custom Unit" msgstr "" -#: common/models.py:3099 +#: common/models.py:3160 msgid "Unit symbol must be unique" msgstr "" -#: common/models.py:3114 +#: common/models.py:3175 msgid "Unit name must be a valid identifier" msgstr "" -#: common/models.py:3133 +#: common/models.py:3194 msgid "Unit name" msgstr "" -#: common/models.py:3140 templates/InvenTree/settings/settings_staff_js.html:75 +#: common/models.py:3201 templates/InvenTree/settings/settings_staff_js.html:75 msgid "Symbol" msgstr "" -#: common/models.py:3141 +#: common/models.py:3202 msgid "Optional unit symbol" msgstr "" -#: common/models.py:3147 templates/InvenTree/settings/settings_staff_js.html:71 +#: common/models.py:3208 templates/InvenTree/settings/settings_staff_js.html:71 msgid "Definition" msgstr "" -#: common/models.py:3148 +#: common/models.py:3209 msgid "Unit definition" msgstr "" -#: common/models.py:3206 common/models.py:3263 stock/models.py:2558 -#: templates/js/translated/attachment.js:119 +#: common/models.py:3267 common/models.py:3324 stock/models.py:2674 +#: stock/serializers.py:244 templates/js/translated/attachment.js:119 #: templates/js/translated/attachment.js:345 msgid "Attachment" msgstr "Załącznik" -#: common/models.py:3218 +#: common/models.py:3279 msgid "Missing file" msgstr "Brak pliku" -#: common/models.py:3219 +#: common/models.py:3280 msgid "Missing external link" msgstr "Brak zewnętrznego odnośnika" -#: common/models.py:3264 +#: common/models.py:3325 msgid "Select file to attach" msgstr "Wybierz plik do załączenia" -#: common/models.py:3279 templates/js/translated/attachment.js:120 +#: common/models.py:3340 templates/js/translated/attachment.js:120 #: templates/js/translated/attachment.js:360 msgid "Comment" msgstr "Komentarz" -#: common/models.py:3280 +#: common/models.py:3341 msgid "Attachment comment" msgstr "" -#: common/models.py:3296 +#: common/models.py:3357 msgid "Upload date" msgstr "" -#: common/models.py:3297 +#: common/models.py:3358 msgid "Date the file was uploaded" msgstr "" -#: common/models.py:3301 +#: common/models.py:3362 msgid "File size" msgstr "" -#: common/models.py:3301 +#: common/models.py:3362 msgid "File size in bytes" msgstr "" -#: common/models.py:3339 common/serializers.py:562 +#: common/models.py:3400 common/serializers.py:609 msgid "Invalid model type specified for attachment" msgstr "" -#: common/notifications.py:314 +#: common/models.py:3409 plugin/models.py:43 users/models.py:100 +msgid "Key" +msgstr "Klucz" + +#: common/models.py:3410 +msgid "Value that will be saved in the models database" +msgstr "" + +#: common/models.py:3413 +msgid "Name of the state" +msgstr "" + +#: common/models.py:3417 part/serializers.py:273 +msgid "Label" +msgstr "" + +#: common/models.py:3418 +msgid "Label that will be displayed in the frontend" +msgstr "" + +#: common/models.py:3424 +msgid "Color" +msgstr "" + +#: common/models.py:3425 +msgid "Color that will be displayed in the frontend" +msgstr "" + +#: common/models.py:3428 +msgid "Logical Key" +msgstr "" + +#: common/models.py:3430 +msgid "State logical key that is equal to this custom state in business logic" +msgstr "" + +#: common/models.py:3438 part/serializers.py:275 +msgid "Model" +msgstr "" + +#: common/models.py:3439 +msgid "Model this state is associated with" +msgstr "" + +#: common/models.py:3443 +msgid "Reference Status Set" +msgstr "" + +#: common/models.py:3444 +msgid "Status set that is extended with this custom state" +msgstr "" + +#: common/models.py:3450 +msgid "Custom State" +msgstr "" + +#: common/models.py:3451 +msgid "Custom States" +msgstr "" + +#: common/models.py:3466 +msgid "Model must be selected" +msgstr "" + +#: common/models.py:3469 +msgid "Key must be selected" +msgstr "" + +#: common/models.py:3472 +msgid "Logical key must be selected" +msgstr "" + +#: common/models.py:3476 +msgid "Key must be different from logical key" +msgstr "" + +#: common/models.py:3480 +msgid "Reference status must be selected" +msgstr "" + +#: common/models.py:3492 +msgid "Reference status set not found" +msgstr "" + +#: common/models.py:3498 +msgid "Key must be different from the logical keys of the reference status" +msgstr "" + +#: common/models.py:3504 +msgid "Logical key must be in the logical keys of the reference status" +msgstr "" + +#: common/models.py:3519 +msgid "Barcode Scan" +msgstr "" + +#: common/models.py:3523 importer/models.py:512 part/models.py:4009 +msgid "Data" +msgstr "Dane" + +#: common/models.py:3524 +msgid "Barcode data" +msgstr "" + +#: common/models.py:3535 +msgid "User who scanned the barcode" +msgstr "" + +#: common/models.py:3540 importer/models.py:60 +msgid "Timestamp" +msgstr "" + +#: common/models.py:3541 +msgid "Date and time of the barcode scan" +msgstr "" + +#: common/models.py:3547 +msgid "URL endpoint which processed the barcode" +msgstr "" + +#: common/models.py:3554 order/models.py:1437 plugin/serializers.py:89 +msgid "Context" +msgstr "" + +#: common/models.py:3555 +msgid "Context data for the barcode scan" +msgstr "" + +#: common/models.py:3562 +msgid "Response" +msgstr "" + +#: common/models.py:3563 +msgid "Response data from the barcode scan" +msgstr "" + +#: common/models.py:3569 report/templates/report/inventree_test_report.html:103 +#: stock/models.py:2660 +msgid "Result" +msgstr "Wynik" + +#: common/models.py:3570 +msgid "Was the barcode scan successful?" +msgstr "" + +#: common/notifications.py:328 #, python-brace-format msgid "New {verbose_name}" msgstr "" -#: common/notifications.py:316 +#: common/notifications.py:330 msgid "A new order has been created and assigned to you" msgstr "" -#: common/notifications.py:322 +#: common/notifications.py:336 #, python-brace-format msgid "{verbose_name} canceled" msgstr "" -#: common/notifications.py:324 +#: common/notifications.py:338 msgid "A order that is assigned to you was canceled" msgstr "" -#: common/notifications.py:330 common/notifications.py:337 order/api.py:462 +#: common/notifications.py:344 common/notifications.py:351 order/api.py:440 msgid "Items Received" msgstr "" -#: common/notifications.py:332 +#: common/notifications.py:346 msgid "Items have been received against a purchase order" msgstr "" -#: common/notifications.py:339 +#: common/notifications.py:353 msgid "Items have been received against a return order" msgstr "" -#: common/notifications.py:457 +#: common/notifications.py:475 msgid "Error raised by plugin" msgstr "" -#: common/serializers.py:375 +#: common/serializers.py:423 msgid "Is Running" msgstr "Jest uruchomiony" -#: common/serializers.py:381 +#: common/serializers.py:429 msgid "Pending Tasks" msgstr "Oczekujce zadania" -#: common/serializers.py:387 +#: common/serializers.py:435 msgid "Scheduled Tasks" msgstr "Zaplanowane zadania" -#: common/serializers.py:393 +#: common/serializers.py:441 msgid "Failed Tasks" msgstr "Zadania zakończone błędem" -#: common/serializers.py:408 +#: common/serializers.py:456 msgid "Task ID" msgstr "ID zadania" -#: common/serializers.py:408 +#: common/serializers.py:456 msgid "Unique task ID" msgstr "Unikalny identyfikator zadania" -#: common/serializers.py:410 +#: common/serializers.py:458 msgid "Lock" msgstr "Blokada" -#: common/serializers.py:410 +#: common/serializers.py:458 msgid "Lock time" msgstr "Czas blokady" -#: common/serializers.py:412 +#: common/serializers.py:460 msgid "Task name" msgstr "Nazwa zadania" -#: common/serializers.py:414 +#: common/serializers.py:462 msgid "Function" msgstr "Funkcja" -#: common/serializers.py:414 +#: common/serializers.py:462 msgid "Function name" msgstr "Nazwa funkcji" -#: common/serializers.py:416 +#: common/serializers.py:464 msgid "Arguments" msgstr "Argumenty" -#: common/serializers.py:416 +#: common/serializers.py:464 msgid "Task arguments" msgstr "Argumenty zadania" -#: common/serializers.py:419 +#: common/serializers.py:467 msgid "Keyword Arguments" msgstr "" -#: common/serializers.py:419 +#: common/serializers.py:467 msgid "Task keyword arguments" msgstr "" -#: common/serializers.py:529 +#: common/serializers.py:577 msgid "Filename" msgstr "Nazwa pliku" -#: common/serializers.py:536 report/api.py:100 report/serializers.py:53 +#: common/serializers.py:584 report/api.py:100 report/serializers.py:54 msgid "Model Type" msgstr "" -#: common/serializers.py:565 +#: common/serializers.py:612 msgid "User does not have permission to create or edit attachments for this model" msgstr "" @@ -4116,15 +4295,15 @@ msgstr "" msgid "Match Items" msgstr "Pasujące elementy" -#: common/views.py:401 +#: common/views.py:397 msgid "Fields matching failed" msgstr "" -#: common/views.py:464 +#: common/views.py:460 msgid "Parts imported" msgstr "Komponenty zaimportowane" -#: common/views.py:494 order/templates/order/order_wizard/match_fields.html:27 +#: common/views.py:490 order/templates/order/order_wizard/match_fields.html:27 #: order/templates/order/order_wizard/match_parts.html:19 #: order/templates/order/order_wizard/po_upload.html:49 #: part/templates/part/import_wizard/match_fields.html:27 @@ -4155,429 +4334,429 @@ msgstr "" msgid "Supplier is Active" msgstr "" -#: company/models.py:100 company/models.py:371 +#: company/models.py:97 company/models.py:368 #: company/templates/company/company_base.html:8 #: company/templates/company/company_base.html:12 stock/api.py:812 -#: templates/InvenTree/search.html:178 templates/js/translated/company.js:496 +#: templates/InvenTree/search.html:178 templates/js/translated/company.js:497 msgid "Company" msgstr "Firma" -#: company/models.py:101 company/views.py:51 +#: company/models.py:98 company/views.py:51 #: templates/js/translated/search.js:192 msgid "Companies" msgstr "Firmy" -#: company/models.py:117 +#: company/models.py:114 msgid "Company description" msgstr "Opis firmy" -#: company/models.py:118 +#: company/models.py:115 msgid "Description of the company" msgstr "Opis firmy" -#: company/models.py:123 company/templates/company/company_base.html:106 +#: company/models.py:120 company/templates/company/company_base.html:106 #: templates/InvenTree/settings/plugin_settings.html:54 -#: templates/js/translated/company.js:532 +#: templates/js/translated/company.js:533 msgid "Website" msgstr "Strona WWW" -#: company/models.py:123 +#: company/models.py:120 msgid "Company website URL" msgstr "Witryna internetowa firmy" -#: company/models.py:128 +#: company/models.py:125 msgid "Phone number" msgstr "Numer telefonu" -#: company/models.py:130 +#: company/models.py:127 msgid "Contact phone number" msgstr "Numer telefonu kontaktowego" -#: company/models.py:137 +#: company/models.py:134 msgid "Contact email address" msgstr "Kontaktowy adres e-mail" -#: company/models.py:142 company/models.py:275 -#: company/templates/company/company_base.html:145 order/models.py:342 -#: order/templates/order/order_base.html:208 -#: order/templates/order/return_order_base.html:177 -#: order/templates/order/sales_order_base.html:221 +#: company/models.py:139 company/models.py:272 +#: company/templates/company/company_base.html:145 order/models.py:349 +#: order/templates/order/order_base.html:217 +#: order/templates/order/return_order_base.html:178 +#: order/templates/order/sales_order_base.html:222 msgid "Contact" msgstr "Kontakt" -#: company/models.py:144 +#: company/models.py:141 msgid "Point of contact" msgstr "Punkt kontaktowy" -#: company/models.py:150 +#: company/models.py:147 msgid "Link to external company information" msgstr "Link do informacji o zewnętrznym przedsiębiorstwie" -#: company/models.py:163 +#: company/models.py:160 msgid "Is this company active?" msgstr "" -#: company/models.py:168 +#: company/models.py:165 msgid "Is customer" msgstr "" -#: company/models.py:169 +#: company/models.py:166 msgid "Do you sell items to this company?" msgstr "Czy sprzedajesz produkty tej firmie?" -#: company/models.py:174 +#: company/models.py:171 msgid "Is supplier" msgstr "" -#: company/models.py:175 +#: company/models.py:172 msgid "Do you purchase items from this company?" msgstr "Czy kupujesz przedmioty od tej firmy?" -#: company/models.py:180 +#: company/models.py:177 msgid "Is manufacturer" msgstr "" -#: company/models.py:181 +#: company/models.py:178 msgid "Does this company manufacture parts?" msgstr "Czy to przedsiębiorstwo produkuje części?" -#: company/models.py:189 +#: company/models.py:186 msgid "Default currency used for this company" msgstr "" -#: company/models.py:314 company/templates/company/company_base.html:124 -#: order/models.py:352 order/templates/order/order_base.html:215 -#: order/templates/order/return_order_base.html:184 -#: order/templates/order/sales_order_base.html:228 +#: company/models.py:311 company/templates/company/company_base.html:124 +#: order/models.py:359 order/templates/order/order_base.html:224 +#: order/templates/order/return_order_base.html:185 +#: order/templates/order/sales_order_base.html:229 msgid "Address" msgstr "Adres" -#: company/models.py:315 company/templates/company/sidebar.html:35 +#: company/models.py:312 company/templates/company/sidebar.html:35 msgid "Addresses" msgstr "" -#: company/models.py:372 +#: company/models.py:369 msgid "Select company" msgstr "" -#: company/models.py:377 +#: company/models.py:374 msgid "Address title" msgstr "" -#: company/models.py:378 +#: company/models.py:375 msgid "Title describing the address entry" msgstr "" -#: company/models.py:384 +#: company/models.py:381 msgid "Primary address" msgstr "" -#: company/models.py:385 +#: company/models.py:382 msgid "Set as primary address" msgstr "" -#: company/models.py:390 templates/js/translated/company.js:914 -#: templates/js/translated/company.js:971 +#: company/models.py:387 templates/js/translated/company.js:915 +#: templates/js/translated/company.js:972 msgid "Line 1" msgstr "" -#: company/models.py:391 +#: company/models.py:388 msgid "Address line 1" msgstr "" -#: company/models.py:397 templates/js/translated/company.js:915 -#: templates/js/translated/company.js:977 +#: company/models.py:394 templates/js/translated/company.js:916 +#: templates/js/translated/company.js:978 msgid "Line 2" msgstr "" -#: company/models.py:398 +#: company/models.py:395 msgid "Address line 2" msgstr "" -#: company/models.py:404 company/models.py:405 -#: templates/js/translated/company.js:983 +#: company/models.py:401 company/models.py:402 +#: templates/js/translated/company.js:984 msgid "Postal code" msgstr "" -#: company/models.py:411 +#: company/models.py:408 msgid "City/Region" msgstr "" -#: company/models.py:412 +#: company/models.py:409 msgid "Postal code city/region" msgstr "Kod pocztowy miasto/region" -#: company/models.py:418 +#: company/models.py:415 msgid "State/Province" msgstr "Stan/Województwo" -#: company/models.py:419 +#: company/models.py:416 msgid "State or province" msgstr "Stan lub województwo" -#: company/models.py:425 templates/js/translated/company.js:1001 +#: company/models.py:422 templates/js/translated/company.js:1002 msgid "Country" msgstr "Kraj" -#: company/models.py:426 +#: company/models.py:423 msgid "Address country" msgstr "" -#: company/models.py:432 +#: company/models.py:429 msgid "Courier shipping notes" msgstr "Notatki przewozowe kuriera" -#: company/models.py:433 +#: company/models.py:430 msgid "Notes for shipping courier" msgstr "Notatki dla kuriera" -#: company/models.py:439 +#: company/models.py:436 msgid "Internal shipping notes" msgstr "Wewnętrzne notatki przewozowe" -#: company/models.py:440 +#: company/models.py:437 msgid "Shipping notes for internal use" msgstr "Notatki wysyłkowe do użytku wewnętrznego" -#: company/models.py:447 +#: company/models.py:444 msgid "Link to address information (external)" msgstr "" -#: company/models.py:470 company/models.py:587 company/models.py:811 +#: company/models.py:467 company/models.py:584 company/models.py:808 #: company/templates/company/manufacturer_part.html:7 #: company/templates/company/manufacturer_part.html:24 -#: stock/templates/stock/item_base.html:217 +#: stock/templates/stock/item_base.html:214 msgid "Manufacturer Part" msgstr "Komponent producenta" -#: company/models.py:487 company/models.py:779 stock/models.py:787 -#: stock/serializers.py:445 stock/templates/stock/item_base.html:142 +#: company/models.py:484 company/models.py:776 stock/models.py:864 +#: stock/serializers.py:455 stock/templates/stock/item_base.html:139 #: templates/js/translated/bom.js:622 msgid "Base Part" msgstr "Część bazowa" -#: company/models.py:489 company/models.py:781 +#: company/models.py:486 company/models.py:778 msgid "Select part" msgstr "Wybierz część" -#: company/models.py:498 company/templates/company/company_base.html:82 +#: company/models.py:495 company/templates/company/company_base.html:82 #: company/templates/company/manufacturer_part.html:90 -#: company/templates/company/supplier_part.html:145 part/serializers.py:554 -#: stock/templates/stock/item_base.html:207 -#: templates/js/translated/company.js:507 -#: templates/js/translated/company.js:1118 -#: templates/js/translated/company.js:1296 -#: templates/js/translated/company.js:1611 +#: company/templates/company/supplier_part.html:146 part/serializers.py:598 +#: stock/templates/stock/item_base.html:204 +#: templates/js/translated/company.js:508 +#: templates/js/translated/company.js:1119 +#: templates/js/translated/company.js:1297 +#: templates/js/translated/company.js:1612 #: templates/js/translated/table_filters.js:812 msgid "Manufacturer" msgstr "Producent" -#: company/models.py:499 +#: company/models.py:496 msgid "Select manufacturer" msgstr "Wybierz producenta" -#: company/models.py:505 company/templates/company/manufacturer_part.html:101 -#: company/templates/company/supplier_part.html:153 order/serializers.py:556 -#: part/serializers.py:564 templates/js/translated/company.js:351 -#: templates/js/translated/company.js:1117 -#: templates/js/translated/company.js:1312 -#: templates/js/translated/company.js:1630 templates/js/translated/part.js:1807 -#: templates/js/translated/purchase_order.js:1921 -#: templates/js/translated/purchase_order.js:2123 +#: company/models.py:502 company/templates/company/manufacturer_part.html:101 +#: company/templates/company/supplier_part.html:154 order/serializers.py:641 +#: part/serializers.py:608 templates/js/translated/company.js:352 +#: templates/js/translated/company.js:1118 +#: templates/js/translated/company.js:1313 +#: templates/js/translated/company.js:1631 templates/js/translated/part.js:1807 +#: templates/js/translated/purchase_order.js:1905 +#: templates/js/translated/purchase_order.js:2107 msgid "MPN" msgstr "" -#: company/models.py:513 +#: company/models.py:510 msgid "URL for external manufacturer part link" msgstr "" -#: company/models.py:522 +#: company/models.py:519 msgid "Manufacturer part description" msgstr "" -#: company/models.py:575 +#: company/models.py:572 msgid "Manufacturer Part Parameter" msgstr "" -#: company/models.py:594 +#: company/models.py:591 msgid "Parameter name" msgstr "Nazwa parametru" -#: company/models.py:600 report/templates/report/inventree_test_report.html:104 -#: stock/models.py:2550 templates/js/translated/company.js:1166 -#: templates/js/translated/company.js:1419 templates/js/translated/part.js:1499 +#: company/models.py:597 report/templates/report/inventree_test_report.html:104 +#: stock/models.py:2666 templates/js/translated/company.js:1167 +#: templates/js/translated/company.js:1420 templates/js/translated/part.js:1499 #: templates/js/translated/stock.js:1607 msgid "Value" msgstr "Wartość" -#: company/models.py:601 +#: company/models.py:598 msgid "Parameter value" msgstr "Wartość parametru" -#: company/models.py:608 company/templates/company/supplier_part.html:168 -#: part/admin.py:57 part/models.py:1147 part/models.py:3771 -#: part/templates/part/part_base.html:293 -#: templates/js/translated/company.js:1425 templates/js/translated/part.js:1518 +#: company/models.py:605 company/templates/company/supplier_part.html:169 +#: part/admin.py:57 part/models.py:1208 part/models.py:3822 +#: part/templates/part/part_base.html:301 +#: templates/js/translated/company.js:1426 templates/js/translated/part.js:1518 #: templates/js/translated/part.js:1622 templates/js/translated/part.js:2376 msgid "Units" msgstr "Jednostki" -#: company/models.py:609 +#: company/models.py:606 msgid "Parameter units" msgstr "Jednostki parametru" -#: company/models.py:662 company/templates/company/supplier_part.html:7 -#: company/templates/company/supplier_part.html:24 order/api.py:442 -#: order/serializers.py:491 stock/models.py:798 -#: stock/templates/stock/item_base.html:233 -#: templates/js/translated/build.js:1052 -#: templates/js/translated/company.js:1600 -#: templates/js/translated/purchase_order.js:752 -#: templates/js/translated/stock.js:2365 +#: company/models.py:659 company/templates/company/supplier_part.html:8 +#: company/templates/company/supplier_part.html:25 order/api.py:392 +#: order/serializers.py:576 stock/models.py:875 +#: stock/templates/stock/item_base.html:230 +#: templates/js/translated/build.js:1055 +#: templates/js/translated/company.js:1601 +#: templates/js/translated/purchase_order.js:735 +#: templates/js/translated/stock.js:2366 msgid "Supplier Part" msgstr "" -#: company/models.py:719 +#: company/models.py:716 msgid "Pack units must be compatible with the base part units" msgstr "" -#: company/models.py:726 +#: company/models.py:723 msgid "Pack units must be greater than zero" msgstr "" -#: company/models.py:740 +#: company/models.py:737 msgid "Linked manufacturer part must reference the same base part" msgstr "" -#: company/models.py:789 company/templates/company/company_base.html:87 -#: company/templates/company/supplier_part.html:129 order/models.py:491 -#: order/templates/order/order_base.html:141 part/bom.py:280 part/bom.py:318 -#: part/serializers.py:538 plugin/builtin/suppliers/digikey.py:25 +#: company/models.py:786 company/templates/company/company_base.html:87 +#: company/templates/company/supplier_part.html:130 order/models.py:503 +#: order/templates/order/order_base.html:150 part/bom.py:279 part/bom.py:314 +#: part/serializers.py:582 plugin/builtin/suppliers/digikey.py:25 #: plugin/builtin/suppliers/lcsc.py:26 plugin/builtin/suppliers/mouser.py:24 -#: plugin/builtin/suppliers/tme.py:26 stock/templates/stock/item_base.html:224 +#: plugin/builtin/suppliers/tme.py:26 stock/templates/stock/item_base.html:221 #: templates/email/overdue_purchase_order.html:16 -#: templates/js/translated/company.js:350 -#: templates/js/translated/company.js:511 -#: templates/js/translated/company.js:1584 templates/js/translated/part.js:1775 +#: templates/js/translated/company.js:351 +#: templates/js/translated/company.js:512 +#: templates/js/translated/company.js:1585 templates/js/translated/part.js:1775 #: templates/js/translated/pricing.js:498 -#: templates/js/translated/purchase_order.js:1759 +#: templates/js/translated/purchase_order.js:1743 #: templates/js/translated/table_filters.js:816 msgid "Supplier" msgstr "Dostawca" -#: company/models.py:790 +#: company/models.py:787 msgid "Select supplier" msgstr "Wybierz dostawcę" -#: company/models.py:796 part/serializers.py:549 +#: company/models.py:793 part/serializers.py:593 msgid "Supplier stock keeping unit" msgstr "" -#: company/models.py:802 +#: company/models.py:799 msgid "Is this supplier part active?" msgstr "" -#: company/models.py:812 +#: company/models.py:809 msgid "Select manufacturer part" msgstr "" -#: company/models.py:819 +#: company/models.py:816 msgid "URL for external supplier part link" msgstr "" -#: company/models.py:828 +#: company/models.py:825 msgid "Supplier part description" msgstr "" -#: company/models.py:835 company/templates/company/supplier_part.html:187 -#: order/serializers.py:698 part/admin.py:415 part/models.py:4288 +#: company/models.py:832 company/templates/company/supplier_part.html:188 +#: order/serializers.py:783 part/admin.py:415 part/models.py:4345 #: part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_bill_of_materials_report.html:140 #: report/templates/report/inventree_purchase_order_report.html:32 #: report/templates/report/inventree_return_order_report.html:27 #: report/templates/report/inventree_sales_order_report.html:32 #: report/templates/report/inventree_stock_location_report.html:105 -#: stock/serializers.py:776 templates/js/translated/purchase_order.js:1185 -#: templates/js/translated/purchase_order.js:1344 +#: stock/serializers.py:807 templates/js/translated/purchase_order.js:1168 +#: templates/js/translated/purchase_order.js:1327 msgid "Note" msgstr "Uwaga" -#: company/models.py:844 part/models.py:2117 +#: company/models.py:841 part/models.py:2177 msgid "base cost" msgstr "koszt podstawowy" -#: company/models.py:845 part/models.py:2118 +#: company/models.py:842 part/models.py:2178 msgid "Minimum charge (e.g. stocking fee)" msgstr "" -#: company/models.py:853 +#: company/models.py:850 msgid "Part packaging" msgstr "Opakowanie części" -#: company/models.py:858 templates/js/translated/company.js:1651 +#: company/models.py:855 templates/js/translated/company.js:1652 #: templates/js/translated/part.js:1828 templates/js/translated/part.js:1884 -#: templates/js/translated/purchase_order.js:311 -#: templates/js/translated/purchase_order.js:841 -#: templates/js/translated/purchase_order.js:1103 -#: templates/js/translated/purchase_order.js:2154 -#: templates/js/translated/purchase_order.js:2171 +#: templates/js/translated/purchase_order.js:294 +#: templates/js/translated/purchase_order.js:824 +#: templates/js/translated/purchase_order.js:1086 +#: templates/js/translated/purchase_order.js:2138 +#: templates/js/translated/purchase_order.js:2155 msgid "Pack Quantity" msgstr "Ilość w opakowaniu" -#: company/models.py:860 +#: company/models.py:857 msgid "Total quantity supplied in a single pack. Leave empty for single items." msgstr "" -#: company/models.py:879 part/models.py:2124 +#: company/models.py:876 part/models.py:2184 msgid "multiple" msgstr "wielokrotność" -#: company/models.py:880 +#: company/models.py:877 msgid "Order multiple" msgstr "Zamów wiele" -#: company/models.py:892 +#: company/models.py:889 msgid "Quantity available from supplier" msgstr "" -#: company/models.py:898 +#: company/models.py:895 msgid "Availability Updated" msgstr "Dostępność zaktualizowana" -#: company/models.py:899 +#: company/models.py:896 msgid "Date of last update of availability data" msgstr "" -#: company/models.py:1027 +#: company/models.py:1024 msgid "Supplier Price Break" msgstr "" -#: company/serializers.py:174 +#: company/serializers.py:178 msgid "Default currency used for this supplier" msgstr "Domyślna waluta używana dla tego dostawcy" -#: company/serializers.py:210 +#: company/serializers.py:214 msgid "Company Name" msgstr "" -#: company/serializers.py:393 part/admin.py:126 part/serializers.py:898 -#: part/templates/part/part_base.html:197 -#: templates/js/translated/company.js:1689 +#: company/serializers.py:397 part/admin.py:126 part/serializers.py:950 +#: part/templates/part/part_base.html:198 stock/serializers.py:474 +#: templates/js/translated/company.js:1690 #: templates/js/translated/table_filters.js:362 msgid "In Stock" msgstr "Na stanie" #: company/templates/company/company_base.html:16 -#: part/templates/part/part_base.html:146 -#: templates/js/translated/company.js:1287 -#: templates/js/translated/company.js:1575 -#: templates/js/translated/model_renderers.js:313 +#: part/templates/part/part_base.html:147 +#: templates/js/translated/company.js:1288 +#: templates/js/translated/company.js:1576 +#: templates/js/translated/model_renderers.js:316 #: templates/js/translated/part.js:817 templates/js/translated/part.js:1225 msgid "Inactive" msgstr "Nieaktywny" #: company/templates/company/company_base.html:27 -#: templates/js/translated/purchase_order.js:242 +#: templates/js/translated/purchase_order.js:224 msgid "Create Purchase Order" msgstr "Utwórz zamówienie zakupu" @@ -4590,7 +4769,7 @@ msgid "Edit company information" msgstr "" #: company/templates/company/company_base.html:39 -#: templates/js/translated/company.js:445 +#: templates/js/translated/company.js:446 msgid "Edit Company" msgstr "Edytuj firmę" @@ -4605,11 +4784,12 @@ msgstr "Usuń firmę" #: company/templates/company/company_base.html:53 #: company/templates/company/manufacturer_part.html:51 -#: company/templates/company/supplier_part.html:83 +#: company/templates/company/supplier_part.html:84 #: part/templates/part/part_thumb.html:20 #: report/templates/report/inventree_build_order_report.html:98 #: report/templates/report/inventree_purchase_order_report.html:40 #: report/templates/report/inventree_sales_order_report.html:40 +#: report/templates/report/inventree_sales_order_shipment_report.html:37 #: report/templates/report/inventree_test_report.html:84 #: report/templates/report/inventree_test_report.html:162 msgid "Part image" @@ -4630,16 +4810,16 @@ msgstr "Pobierz obraz z adresu URL" msgid "Delete image" msgstr "Usuń obraz" -#: company/templates/company/company_base.html:92 order/models.py:990 -#: order/models.py:2147 order/templates/order/return_order_base.html:134 -#: order/templates/order/sales_order_base.html:151 stock/models.py:840 -#: stock/models.py:841 stock/serializers.py:1329 -#: stock/templates/stock/item_base.html:405 +#: company/templates/company/company_base.html:92 order/models.py:1017 +#: order/models.py:2186 order/templates/order/return_order_base.html:135 +#: order/templates/order/sales_order_base.html:152 stock/models.py:917 +#: stock/models.py:918 stock/serializers.py:1360 +#: stock/templates/stock/item_base.html:402 #: templates/email/overdue_sales_order.html:16 -#: templates/js/translated/company.js:503 +#: templates/js/translated/company.js:504 #: templates/js/translated/return_order.js:295 -#: templates/js/translated/sales_order.js:820 -#: templates/js/translated/stock.js:3043 +#: templates/js/translated/sales_order.js:779 +#: templates/js/translated/stock.js:3044 #: templates/js/translated/table_filters.js:820 msgid "Customer" msgstr "Klient" @@ -4653,7 +4833,7 @@ msgid "Phone" msgstr "Telefon" #: company/templates/company/company_base.html:211 -#: part/templates/part/part_base.html:536 +#: part/templates/part/part_base.html:544 msgid "Remove Image" msgstr "Usuń obraz" @@ -4662,19 +4842,19 @@ msgid "Remove associated image from this company" msgstr "Usuń przypisany obraz z tej firmy" #: company/templates/company/company_base.html:214 -#: part/templates/part/part_base.html:539 +#: part/templates/part/part_base.html:547 #: templates/InvenTree/settings/user.html:88 #: templates/InvenTree/settings/user_sso.html:43 msgid "Remove" msgstr "Usuń" #: company/templates/company/company_base.html:243 -#: part/templates/part/part_base.html:568 +#: part/templates/part/part_base.html:576 msgid "Upload Image" msgstr "Prześlij obraz" #: company/templates/company/company_base.html:258 -#: part/templates/part/part_base.html:622 +#: part/templates/part/part_base.html:630 msgid "Download Image" msgstr "Pobierz obraz" @@ -4714,7 +4894,7 @@ msgstr "Zapasy dostawcy" #: company/templates/company/detail.html:75 #: company/templates/company/sidebar.html:12 #: company/templates/company/supplier_part_sidebar.html:7 -#: order/templates/order/order_base.html:13 +#: order/templates/order/order_base.html:14 #: order/templates/order/purchase_orders.html:8 #: order/templates/order/purchase_orders.html:12 #: part/templates/part/detail.html:122 part/templates/part/part_sidebar.html:35 @@ -4737,7 +4917,7 @@ msgstr "Nowe zamówienie zakupu" #: company/templates/company/detail.html:101 #: company/templates/company/sidebar.html:21 -#: order/templates/order/sales_order_base.html:13 +#: order/templates/order/sales_order_base.html:14 #: order/templates/order/sales_orders.html:8 #: order/templates/order/sales_orders.html:15 #: part/templates/part/detail.html:143 part/templates/part/part_sidebar.html:39 @@ -4764,7 +4944,7 @@ msgstr "" #: company/templates/company/detail.html:142 #: company/templates/company/sidebar.html:29 -#: order/templates/order/return_order_base.html:13 +#: order/templates/order/return_order_base.html:14 #: order/templates/order/return_orders.html:8 #: order/templates/order/return_orders.html:15 #: templates/InvenTree/settings/sidebar.html:61 @@ -4811,24 +4991,24 @@ msgid "Manufacturers" msgstr "Producenci" #: company/templates/company/manufacturer_part.html:35 -#: company/templates/company/supplier_part.html:227 -#: part/templates/part/detail.html:125 part/templates/part/part_base.html:83 +#: company/templates/company/supplier_part.html:228 +#: part/templates/part/detail.html:125 part/templates/part/part_base.html:84 msgid "Order part" msgstr "Zamów komponent" #: company/templates/company/manufacturer_part.html:39 -#: templates/js/translated/company.js:1343 +#: templates/js/translated/company.js:1344 msgid "Edit manufacturer part" msgstr "Edytuj komponent producenta" #: company/templates/company/manufacturer_part.html:43 -#: templates/js/translated/company.js:1344 +#: templates/js/translated/company.js:1345 msgid "Delete manufacturer part" msgstr "Usuń komponent producenta" #: company/templates/company/manufacturer_part.html:65 -#: company/templates/company/supplier_part.html:97 order/api.py:448 -#: order/serializers.py:564 +#: company/templates/company/supplier_part.html:98 order/api.py:411 +#: order/serializers.py:649 msgid "Internal Part" msgstr "Komponent wewnętrzny" @@ -4837,8 +5017,8 @@ msgid "No manufacturer information available" msgstr "" #: company/templates/company/manufacturer_part.html:119 -#: company/templates/company/supplier_part.html:15 company/views.py:31 -#: part/admin.py:122 part/serializers.py:904 +#: company/templates/company/supplier_part.html:16 company/views.py:31 +#: part/admin.py:122 part/serializers.py:956 #: part/templates/part/part_sidebar.html:33 templates/InvenTree/search.html:190 #: templates/navbar.html:48 msgid "Suppliers" @@ -4887,112 +5067,113 @@ msgstr "" msgid "Contacts" msgstr "" -#: company/templates/company/supplier_part.html:50 -#: templates/js/translated/company.js:1526 +#: company/templates/company/supplier_part.html:51 +#: templates/js/translated/company.js:1527 msgid "Supplier part actions" msgstr "" -#: company/templates/company/supplier_part.html:55 #: company/templates/company/supplier_part.html:56 -#: company/templates/company/supplier_part.html:228 +#: company/templates/company/supplier_part.html:57 +#: company/templates/company/supplier_part.html:229 #: part/templates/part/detail.html:126 msgid "Order Part" msgstr "Zamów komponent" -#: company/templates/company/supplier_part.html:60 #: company/templates/company/supplier_part.html:61 +#: company/templates/company/supplier_part.html:62 msgid "Update Availability" msgstr "" -#: company/templates/company/supplier_part.html:63 #: company/templates/company/supplier_part.html:64 -#: templates/js/translated/company.js:294 +#: company/templates/company/supplier_part.html:65 +#: templates/js/translated/company.js:295 msgid "Edit Supplier Part" msgstr "" -#: company/templates/company/supplier_part.html:68 #: company/templates/company/supplier_part.html:69 -#: templates/js/translated/company.js:269 +#: company/templates/company/supplier_part.html:70 +#: templates/js/translated/company.js:270 msgid "Duplicate Supplier Part" msgstr "" -#: company/templates/company/supplier_part.html:73 +#: company/templates/company/supplier_part.html:74 msgid "Delete Supplier Part" msgstr "" -#: company/templates/company/supplier_part.html:74 +#: company/templates/company/supplier_part.html:75 msgid "Delete Supplier Part" msgstr "" -#: company/templates/company/supplier_part.html:133 +#: company/templates/company/supplier_part.html:134 +#: order/templates/order/order_base.html:155 msgid "No supplier information available" msgstr "" -#: company/templates/company/supplier_part.html:139 order/serializers.py:553 -#: part/bom.py:287 part/bom.py:319 part/serializers.py:548 -#: templates/js/translated/company.js:349 templates/js/translated/part.js:1793 +#: company/templates/company/supplier_part.html:140 order/serializers.py:638 +#: part/bom.py:286 part/bom.py:315 part/serializers.py:592 +#: templates/js/translated/company.js:350 templates/js/translated/part.js:1793 #: templates/js/translated/pricing.js:510 -#: templates/js/translated/purchase_order.js:1920 -#: templates/js/translated/purchase_order.js:2098 +#: templates/js/translated/purchase_order.js:1904 +#: templates/js/translated/purchase_order.js:2082 msgid "SKU" msgstr "" -#: company/templates/company/supplier_part.html:206 +#: company/templates/company/supplier_part.html:207 msgid "Supplier Part Stock" msgstr "" -#: company/templates/company/supplier_part.html:209 -#: part/templates/part/detail.html:24 stock/templates/stock/location.html:204 +#: company/templates/company/supplier_part.html:210 +#: part/templates/part/detail.html:24 stock/templates/stock/location.html:205 msgid "Create new stock item" msgstr "Utwórz nowy towar" -#: company/templates/company/supplier_part.html:210 -#: part/templates/part/detail.html:25 stock/templates/stock/location.html:205 +#: company/templates/company/supplier_part.html:211 +#: part/templates/part/detail.html:25 stock/templates/stock/location.html:206 #: templates/js/translated/stock.js:543 msgid "New Stock Item" msgstr "Nowy towar" -#: company/templates/company/supplier_part.html:223 +#: company/templates/company/supplier_part.html:224 msgid "Supplier Part Orders" msgstr "" -#: company/templates/company/supplier_part.html:246 +#: company/templates/company/supplier_part.html:247 msgid "Pricing Information" msgstr "Informacja cenowa" -#: company/templates/company/supplier_part.html:251 -#: templates/js/translated/company.js:398 +#: company/templates/company/supplier_part.html:252 +#: templates/js/translated/company.js:399 #: templates/js/translated/pricing.js:684 msgid "Add Price Break" msgstr "" -#: company/templates/company/supplier_part.html:270 +#: company/templates/company/supplier_part.html:271 msgid "Supplier Part Notes" msgstr "" -#: company/templates/company/supplier_part.html:305 +#: company/templates/company/supplier_part.html:306 msgid "Supplier Part QR Code" msgstr "" -#: company/templates/company/supplier_part.html:316 +#: company/templates/company/supplier_part.html:317 msgid "Link Barcode to Supplier Part" msgstr "" -#: company/templates/company/supplier_part.html:388 +#: company/templates/company/supplier_part.html:389 msgid "Update Part Availability" msgstr "" #: company/templates/company/supplier_part_sidebar.html:5 -#: part/serializers.py:902 part/stocktake.py:223 +#: part/serializers.py:954 part/stocktake.py:223 #: part/templates/part/category.html:180 #: part/templates/part/category_sidebar.html:17 stock/admin.py:68 -#: stock/serializers.py:1014 stock/serializers.py:1192 -#: stock/templates/stock/location.html:167 -#: stock/templates/stock/location.html:188 -#: stock/templates/stock/location.html:200 +#: stock/serializers.py:1045 stock/serializers.py:1223 +#: stock/templates/stock/location.html:168 +#: stock/templates/stock/location.html:189 +#: stock/templates/stock/location.html:201 #: stock/templates/stock/location_sidebar.html:7 #: templates/InvenTree/search.html:155 templates/js/translated/part.js:1067 -#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2850 +#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2851 #: users/models.py:206 msgid "Stock Items" msgstr "Towary" @@ -5022,99 +5203,99 @@ msgstr "Nowy klient" msgid "New Company" msgstr "Nowa firma" -#: generic/states/tests.py:18 order/status_codes.py:13 +#: generic/states/fields.py:118 +msgid "Custom status key" +msgstr "" + +#: generic/states/fields.py:119 +msgid "Additional status information for this item" +msgstr "" + +#: generic/states/tests.py:22 order/status_codes.py:13 msgid "Placed" msgstr "Umieszczony" -#: importer/mixins.py:263 +#: importer/mixins.py:261 msgid "Invalid export format" msgstr "" -#: importer/models.py:59 -msgid "Timestamp" -msgstr "" - -#: importer/models.py:64 +#: importer/models.py:65 msgid "Data file to import" msgstr "" -#: importer/models.py:73 templates/js/translated/tables.js:558 +#: importer/models.py:74 templates/js/translated/tables.js:558 msgid "Columns" msgstr "" -#: importer/models.py:84 +#: importer/models.py:85 msgid "Import status" msgstr "" -#: importer/models.py:94 +#: importer/models.py:95 msgid "Field Defaults" msgstr "" -#: importer/models.py:101 +#: importer/models.py:102 msgid "Field Overrides" msgstr "" -#: importer/models.py:108 +#: importer/models.py:109 msgid "Field Filters" msgstr "" -#: importer/models.py:230 +#: importer/models.py:239 msgid "Some required fields have not been mapped" msgstr "" -#: importer/models.py:387 +#: importer/models.py:396 msgid "Column is already mapped to a database field" msgstr "" -#: importer/models.py:392 +#: importer/models.py:401 msgid "Field is already mapped to a data column" msgstr "" -#: importer/models.py:401 +#: importer/models.py:410 msgid "Column mapping must be linked to a valid import session" msgstr "" -#: importer/models.py:406 +#: importer/models.py:415 msgid "Column does not exist in the data file" msgstr "" -#: importer/models.py:413 +#: importer/models.py:422 msgid "Field does not exist in the target model" msgstr "" -#: importer/models.py:417 +#: importer/models.py:426 msgid "Selected field is read-only" msgstr "" -#: importer/models.py:422 importer/models.py:493 +#: importer/models.py:431 importer/models.py:502 msgid "Import Session" msgstr "" -#: importer/models.py:426 +#: importer/models.py:435 msgid "Field" msgstr "" -#: importer/models.py:428 +#: importer/models.py:437 msgid "Column" msgstr "" -#: importer/models.py:497 +#: importer/models.py:506 msgid "Row Index" msgstr "" -#: importer/models.py:500 +#: importer/models.py:509 msgid "Original row data" msgstr "" -#: importer/models.py:503 part/models.py:3951 -msgid "Data" -msgstr "Dane" - -#: importer/models.py:505 machine/models.py:110 +#: importer/models.py:514 machine/models.py:110 msgid "Errors" msgstr "" -#: importer/models.py:507 part/api.py:873 +#: importer/models.py:516 part/api.py:857 msgid "Valid" msgstr "Ważny" @@ -5166,19 +5347,19 @@ msgstr "" msgid "Row has already been completed" msgstr "" -#: importer/status_codes.py:11 +#: importer/status_codes.py:13 msgid "Initializing" msgstr "" -#: importer/status_codes.py:12 +#: importer/status_codes.py:18 msgid "Mapping Columns" msgstr "" -#: importer/status_codes.py:13 +#: importer/status_codes.py:21 msgid "Importing Data" msgstr "" -#: importer/status_codes.py:16 +#: importer/status_codes.py:24 msgid "Processing Data" msgstr "" @@ -5202,52 +5383,52 @@ msgstr "" msgid "Value must be a valid dictionary object" msgstr "" -#: machine/machine_types/label_printer.py:215 +#: machine/machine_types/label_printer.py:216 msgid "Copies" msgstr "Kopie" -#: machine/machine_types/label_printer.py:216 +#: machine/machine_types/label_printer.py:217 msgid "Number of copies to print for each label" msgstr "Liczba kopii do wydrukowania dla każdej etykiety" -#: machine/machine_types/label_printer.py:231 +#: machine/machine_types/label_printer.py:232 msgid "Connected" msgstr "Połączono" -#: machine/machine_types/label_printer.py:232 order/api.py:1410 -#: templates/js/translated/sales_order.js:1078 +#: machine/machine_types/label_printer.py:233 order/api.py:1532 +#: templates/js/translated/sales_order.js:1044 msgid "Unknown" msgstr "Nieznany" -#: machine/machine_types/label_printer.py:233 +#: machine/machine_types/label_printer.py:234 msgid "Printing" msgstr "Drukowanie" -#: machine/machine_types/label_printer.py:234 +#: machine/machine_types/label_printer.py:235 msgid "No media" msgstr "Brak mediów" -#: machine/machine_types/label_printer.py:235 +#: machine/machine_types/label_printer.py:236 msgid "Paper jam" msgstr "" -#: machine/machine_types/label_printer.py:236 +#: machine/machine_types/label_printer.py:237 msgid "Disconnected" msgstr "Rozłączono" -#: machine/machine_types/label_printer.py:243 +#: machine/machine_types/label_printer.py:244 msgid "Label Printer" msgstr "Drukarka etykiet" -#: machine/machine_types/label_printer.py:244 +#: machine/machine_types/label_printer.py:245 msgid "Directly print labels for various items." msgstr "Bezpośrednio wydrukuj etykiety dla różnych elementów." -#: machine/machine_types/label_printer.py:250 +#: machine/machine_types/label_printer.py:251 msgid "Printer Location" msgstr "Lokalizacja drukarki" -#: machine/machine_types/label_printer.py:251 +#: machine/machine_types/label_printer.py:252 msgid "Scope the printer to a specific location" msgstr "" @@ -5307,79 +5488,75 @@ msgstr "" #: report/templates/report/inventree_purchase_order_report.html:31 #: report/templates/report/inventree_sales_order_report.html:31 #: templates/js/translated/order.js:352 -#: templates/js/translated/purchase_order.js:2195 -#: templates/js/translated/sales_order.js:1883 +#: templates/js/translated/purchase_order.js:2179 +#: templates/js/translated/sales_order.js:1864 msgid "Total Price" msgstr "Cena całkowita" -#: order/api.py:80 order/api.py:151 order/serializers.py:93 -#: order/templates/order/order_base.html:123 -#: order/templates/order/return_order_base.html:116 -#: order/templates/order/sales_order_base.html:125 +#: order/api.py:78 order/api.py:149 order/serializers.py:124 +#: order/templates/order/order_base.html:124 +#: order/templates/order/return_order_base.html:117 +#: order/templates/order/sales_order_base.html:126 msgid "Order Status" msgstr "Status zamówienia" -#: order/api.py:88 order/templates/order/order_base.html:111 -#: order/templates/order/return_order_base.html:104 -#: order/templates/order/sales_order_base.html:113 +#: order/api.py:86 order/templates/order/order_base.html:112 +#: order/templates/order/return_order_base.html:105 +#: order/templates/order/sales_order_base.html:114 msgid "Order Reference" msgstr "Numer zamówienia" -#: order/api.py:116 templates/js/translated/table_filters.js:93 +#: order/api.py:114 order/api.py:1022 +#: templates/js/translated/table_filters.js:93 #: templates/js/translated/table_filters.js:625 #: templates/js/translated/table_filters.js:651 #: templates/js/translated/table_filters.js:666 msgid "Outstanding" msgstr "" -#: order/api.py:132 +#: order/api.py:130 msgid "Has Project Code" msgstr "" -#: order/api.py:155 templates/js/translated/table_filters.js:201 +#: order/api.py:153 templates/js/translated/table_filters.js:201 #: templates/js/translated/table_filters.js:791 msgid "Has Pricing" msgstr "Posiada ceny" -#: order/api.py:230 -msgid "No matching purchase order found" -msgstr "Nie znaleziono pasującego zlecenia zakupu" - -#: order/api.py:425 order/api.py:763 order/models.py:1484 order/models.py:1598 -#: order/models.py:1649 order/models.py:1764 order/models.py:1923 -#: order/models.py:2383 order/models.py:2439 -#: templates/js/translated/sales_order.js:1524 +#: order/api.py:375 order/api.py:771 order/api.py:986 order/models.py:1500 +#: order/models.py:1614 order/models.py:1665 order/models.py:1793 +#: order/models.py:1956 order/models.py:2422 order/models.py:2478 +#: templates/js/translated/sales_order.js:1490 msgid "Order" msgstr "Zamówienie" -#: order/api.py:429 order/api.py:784 +#: order/api.py:379 order/api.py:809 msgid "Order Complete" msgstr "" -#: order/api.py:452 +#: order/api.py:430 msgid "Order Pending" msgstr "Zamówienie oczekujące" -#: order/api.py:1404 order/models.py:379 order/models.py:1485 -#: order/models.py:1599 order/templates/order/order_base.html:9 -#: order/templates/order/order_base.html:18 +#: order/api.py:1526 order/models.py:386 order/models.py:1501 +#: order/models.py:1615 order/templates/order/order_base.html:10 +#: order/templates/order/order_base.html:19 #: report/templates/report/inventree_purchase_order_report.html:14 -#: stock/serializers.py:120 stock/templates/stock/item_base.html:176 +#: stock/serializers.py:121 stock/templates/stock/item_base.html:173 #: templates/email/overdue_purchase_order.html:15 #: templates/js/translated/part.js:1752 templates/js/translated/pricing.js:804 -#: templates/js/translated/purchase_order.js:168 -#: templates/js/translated/purchase_order.js:753 -#: templates/js/translated/purchase_order.js:1743 -#: templates/js/translated/stock.js:2345 templates/js/translated/stock.js:2991 +#: templates/js/translated/purchase_order.js:736 +#: templates/js/translated/purchase_order.js:1727 +#: templates/js/translated/stock.js:2346 templates/js/translated/stock.js:2992 msgid "Purchase Order" msgstr "Zlecenie zakupu" -#: order/api.py:1408 order/models.py:2091 order/models.py:2384 -#: order/models.py:2440 order/templates/order/return_order_base.html:9 -#: order/templates/order/return_order_base.html:28 +#: order/api.py:1530 order/models.py:2124 order/models.py:2423 +#: order/models.py:2479 order/templates/order/return_order_base.html:10 +#: order/templates/order/return_order_base.html:29 #: report/templates/report/inventree_return_order_report.html:13 #: templates/js/translated/return_order.js:280 -#: templates/js/translated/stock.js:3025 +#: templates/js/translated/stock.js:3026 msgid "Return Order" msgstr "" @@ -5387,751 +5564,782 @@ msgstr "" msgid "Total price for this order" msgstr "" -#: order/models.py:95 order/serializers.py:71 +#: order/models.py:95 order/serializers.py:73 msgid "Order Currency" msgstr "" -#: order/models.py:98 order/serializers.py:72 +#: order/models.py:98 order/serializers.py:74 msgid "Currency for this order (leave blank to use company default)" msgstr "" -#: order/models.py:246 +#: order/models.py:243 msgid "Contact does not match selected company" msgstr "" -#: order/models.py:289 +#: order/models.py:296 msgid "Order description (optional)" msgstr "" -#: order/models.py:298 +#: order/models.py:305 msgid "Select project code for this order" msgstr "" -#: order/models.py:302 order/models.py:1385 order/models.py:1817 +#: order/models.py:309 order/models.py:1402 order/models.py:1846 msgid "Link to external page" msgstr "Link do zewnętrznej witryny" -#: order/models.py:310 +#: order/models.py:317 msgid "Expected date for order delivery. Order will be overdue after this date." msgstr "" -#: order/models.py:324 +#: order/models.py:331 msgid "Created By" msgstr "Utworzony przez" -#: order/models.py:332 +#: order/models.py:339 msgid "User or group responsible for this order" msgstr "Użytkownik lub grupa odpowiedzialna za to zamówienie" -#: order/models.py:343 +#: order/models.py:350 msgid "Point of contact for this order" msgstr "" -#: order/models.py:353 +#: order/models.py:360 msgid "Company address for this order" msgstr "" -#: order/models.py:468 order/models.py:979 +#: order/models.py:480 order/models.py:1006 msgid "Order reference" msgstr "Odniesienie zamówienia" -#: order/models.py:477 +#: order/models.py:489 msgid "Purchase order status" msgstr "Status zamówienia zakupu" -#: order/models.py:492 +#: order/models.py:504 msgid "Company from which the items are being ordered" msgstr "" -#: order/models.py:503 order/templates/order/order_base.html:153 -#: templates/js/translated/purchase_order.js:1772 +#: order/models.py:515 order/templates/order/order_base.html:162 +#: templates/js/translated/purchase_order.js:1756 msgid "Supplier Reference" msgstr "" -#: order/models.py:504 +#: order/models.py:516 msgid "Supplier order reference code" msgstr "" -#: order/models.py:513 +#: order/models.py:525 msgid "received by" msgstr "odebrane przez" -#: order/models.py:519 order/models.py:2173 +#: order/models.py:531 order/models.py:2212 msgid "Issue Date" msgstr "Data wydania" -#: order/models.py:520 order/models.py:2174 +#: order/models.py:532 order/models.py:2213 msgid "Date order was issued" msgstr "Data wystawienia zamówienia" -#: order/models.py:527 order/models.py:2181 +#: order/models.py:539 order/models.py:2220 msgid "Date order was completed" msgstr "" -#: order/models.py:571 +#: order/models.py:549 order/models.py:1552 +msgid "Destination for received items" +msgstr "" + +#: order/models.py:593 msgid "Part supplier must match PO supplier" msgstr "" -#: order/models.py:806 +#: order/models.py:828 msgid "Quantity must be a positive number" msgstr "Wartość musi być liczbą dodatnią" -#: order/models.py:991 +#: order/models.py:1018 msgid "Company to which the items are being sold" msgstr "" -#: order/models.py:1003 +#: order/models.py:1030 msgid "Sales order status" msgstr "" -#: order/models.py:1014 order/models.py:2166 +#: order/models.py:1041 order/models.py:2205 msgid "Customer Reference " msgstr "" -#: order/models.py:1015 order/models.py:2167 +#: order/models.py:1042 order/models.py:2206 msgid "Customer order reference code" msgstr "" -#: order/models.py:1019 order/models.py:1771 -#: templates/js/translated/sales_order.js:879 -#: templates/js/translated/sales_order.js:1060 +#: order/models.py:1046 order/models.py:1800 +#: templates/js/translated/sales_order.js:838 +#: templates/js/translated/sales_order.js:1026 msgid "Shipment Date" msgstr "Data wysyłki" -#: order/models.py:1028 +#: order/models.py:1055 msgid "shipped by" msgstr "wysłane przez" -#: order/models.py:1077 +#: order/models.py:1094 msgid "Order is already complete" msgstr "" -#: order/models.py:1080 +#: order/models.py:1097 msgid "Order is already cancelled" msgstr "" -#: order/models.py:1084 +#: order/models.py:1101 msgid "Only an open order can be marked as complete" msgstr "" -#: order/models.py:1088 +#: order/models.py:1105 msgid "Order cannot be completed as there are incomplete shipments" msgstr "" -#: order/models.py:1093 +#: order/models.py:1110 msgid "Order cannot be completed as there are incomplete line items" msgstr "" -#: order/models.py:1357 +#: order/models.py:1374 msgid "Item quantity" msgstr "Ilość elementów" -#: order/models.py:1374 +#: order/models.py:1391 msgid "Line item reference" msgstr "" -#: order/models.py:1381 +#: order/models.py:1398 msgid "Line item notes" msgstr "" -#: order/models.py:1393 +#: order/models.py:1410 msgid "Target date for this line item (leave blank to use the target date from the order)" msgstr "" -#: order/models.py:1414 +#: order/models.py:1431 msgid "Line item description (optional)" msgstr "" -#: order/models.py:1420 -msgid "Context" -msgstr "" - -#: order/models.py:1421 +#: order/models.py:1438 msgid "Additional context for this line" msgstr "" -#: order/models.py:1431 +#: order/models.py:1448 msgid "Unit price" msgstr "" -#: order/models.py:1445 +#: order/models.py:1462 msgid "Purchase Order Line Item" msgstr "" -#: order/models.py:1469 +#: order/models.py:1486 msgid "Supplier part must match supplier" msgstr "" -#: order/models.py:1476 -msgid "deleted" -msgstr "" - -#: order/models.py:1504 +#: order/models.py:1520 msgid "Supplier part" msgstr "" -#: order/models.py:1511 order/templates/order/order_base.html:201 +#: order/models.py:1527 order/templates/order/order_base.html:210 #: templates/js/translated/part.js:1876 templates/js/translated/part.js:1908 -#: templates/js/translated/purchase_order.js:1369 -#: templates/js/translated/purchase_order.js:2239 +#: templates/js/translated/purchase_order.js:1352 +#: templates/js/translated/purchase_order.js:2223 #: templates/js/translated/return_order.js:762 #: templates/js/translated/table_filters.js:119 #: templates/js/translated/table_filters.js:605 msgid "Received" msgstr "Odebrane" -#: order/models.py:1512 +#: order/models.py:1528 msgid "Number of items received" msgstr "" -#: order/models.py:1520 stock/models.py:959 stock/serializers.py:610 -#: stock/templates/stock/item_base.html:183 -#: templates/js/translated/stock.js:2396 +#: order/models.py:1536 stock/models.py:1036 stock/serializers.py:637 +#: stock/templates/stock/item_base.html:180 +#: templates/js/translated/stock.js:2397 msgid "Purchase Price" msgstr "Cena zakupu" -#: order/models.py:1521 +#: order/models.py:1537 msgid "Unit purchase price" msgstr "Cena zakupu jednostkowego" -#: order/models.py:1536 -msgid "Where does the Purchaser want this item to be stored?" -msgstr "Gdzie kupujący chce przechowywać ten przedmiot?" - -#: order/models.py:1587 +#: order/models.py:1603 msgid "Purchase Order Extra Line" msgstr "" -#: order/models.py:1616 +#: order/models.py:1632 msgid "Sales Order Line Item" msgstr "" -#: order/models.py:1637 +#: order/models.py:1653 msgid "Virtual part cannot be assigned to a sales order" msgstr "" -#: order/models.py:1642 +#: order/models.py:1658 msgid "Only salable parts can be assigned to a sales order" msgstr "" -#: order/models.py:1668 part/templates/part/part_pricing.html:107 -#: part/templates/part/prices.html:139 templates/js/translated/pricing.js:957 +#: order/models.py:1684 part/templates/part/part_pricing.html:107 +#: part/templates/part/prices.html:139 templates/js/translated/pricing.js:955 msgid "Sale Price" msgstr "Cena sprzedaży" -#: order/models.py:1669 +#: order/models.py:1685 msgid "Unit sale price" msgstr "Jednostkowa cena sprzedaży" -#: order/models.py:1678 order/status_codes.py:48 -#: templates/js/translated/sales_order.js:1559 -#: templates/js/translated/sales_order.js:1680 -#: templates/js/translated/sales_order.js:1993 +#: order/models.py:1694 order/status_codes.py:50 +#: templates/js/translated/sales_order.js:1525 +#: templates/js/translated/sales_order.js:1661 +#: templates/js/translated/sales_order.js:1974 msgid "Shipped" msgstr "Wysłane" -#: order/models.py:1679 +#: order/models.py:1695 msgid "Shipped quantity" msgstr "Wysłana ilość" -#: order/models.py:1751 +#: order/models.py:1769 msgid "Sales Order Shipment" msgstr "" -#: order/models.py:1772 +#: order/models.py:1801 msgid "Date of shipment" msgstr "Data wysyłki" -#: order/models.py:1778 templates/js/translated/sales_order.js:1072 +#: order/models.py:1807 templates/js/translated/sales_order.js:1038 msgid "Delivery Date" msgstr "" -#: order/models.py:1779 +#: order/models.py:1808 msgid "Date of delivery of shipment" msgstr "" -#: order/models.py:1787 +#: order/models.py:1816 msgid "Checked By" msgstr "Sprawdzone przez" -#: order/models.py:1788 +#: order/models.py:1817 msgid "User who checked this shipment" msgstr "Użytkownik, który sprawdził tę wysyłkę" -#: order/models.py:1795 order/models.py:2018 order/serializers.py:1475 -#: order/serializers.py:1585 templates/js/translated/model_renderers.js:455 +#: order/models.py:1824 order/models.py:2051 order/serializers.py:1601 +#: order/serializers.py:1725 +#: report/templates/report/inventree_sales_order_shipment_report.html:14 +#: templates/js/translated/model_renderers.js:458 +#: templates/js/translated/sales_order.js:1615 msgid "Shipment" msgstr "Przesyłka" -#: order/models.py:1796 +#: order/models.py:1825 msgid "Shipment number" msgstr "Numer przesyłki" -#: order/models.py:1804 +#: order/models.py:1833 msgid "Tracking Number" msgstr "Numer śledzenia" -#: order/models.py:1805 +#: order/models.py:1834 msgid "Shipment tracking information" msgstr "Informacje o śledzeniu przesyłki" -#: order/models.py:1812 +#: order/models.py:1841 msgid "Invoice Number" msgstr "" -#: order/models.py:1813 +#: order/models.py:1842 msgid "Reference number for associated invoice" msgstr "" -#: order/models.py:1833 +#: order/models.py:1862 msgid "Shipment has already been sent" msgstr "Przesyłka została już wysłana" -#: order/models.py:1836 +#: order/models.py:1865 msgid "Shipment has no allocated stock items" msgstr "" -#: order/models.py:1912 +#: order/models.py:1945 msgid "Sales Order Extra Line" msgstr "" -#: order/models.py:1941 +#: order/models.py:1974 msgid "Sales Order Allocation" msgstr "" -#: order/models.py:1964 order/models.py:1966 +#: order/models.py:1997 order/models.py:1999 msgid "Stock item has not been assigned" msgstr "" -#: order/models.py:1973 +#: order/models.py:2006 msgid "Cannot allocate stock item to a line with a different part" msgstr "" -#: order/models.py:1976 +#: order/models.py:2009 msgid "Cannot allocate stock to a line without a part" msgstr "" -#: order/models.py:1979 +#: order/models.py:2012 msgid "Allocation quantity cannot exceed stock quantity" msgstr "Zarezerwowana ilość nie może przekraczać ilości na stanie" -#: order/models.py:1998 order/serializers.py:1345 +#: order/models.py:2031 order/serializers.py:1471 msgid "Quantity must be 1 for serialized stock item" msgstr "" -#: order/models.py:2001 +#: order/models.py:2034 msgid "Sales order does not match shipment" msgstr "" -#: order/models.py:2002 plugin/base/barcodes/api.py:524 +#: order/models.py:2035 plugin/base/barcodes/api.py:629 msgid "Shipment does not match sales order" msgstr "" -#: order/models.py:2010 +#: order/models.py:2043 msgid "Line" msgstr "Linia" -#: order/models.py:2019 +#: order/models.py:2052 msgid "Sales order shipment reference" msgstr "" -#: order/models.py:2032 order/models.py:2391 +#: order/models.py:2065 order/models.py:2430 #: templates/js/translated/return_order.js:720 msgid "Item" msgstr "Komponent" -#: order/models.py:2033 +#: order/models.py:2066 msgid "Select stock item to allocate" msgstr "" -#: order/models.py:2042 +#: order/models.py:2075 msgid "Enter stock allocation quantity" msgstr "" -#: order/models.py:2136 +#: order/models.py:2175 msgid "Return Order reference" msgstr "" -#: order/models.py:2148 +#: order/models.py:2187 msgid "Company from which items are being returned" msgstr "" -#: order/models.py:2160 +#: order/models.py:2199 msgid "Return order status" msgstr "" -#: order/models.py:2362 +#: order/models.py:2401 msgid "Return Order Line Item" msgstr "" -#: order/models.py:2376 +#: order/models.py:2415 msgid "Only serialized items can be assigned to a Return Order" msgstr "" -#: order/models.py:2392 +#: order/models.py:2431 msgid "Select item to return from customer" msgstr "" -#: order/models.py:2398 +#: order/models.py:2437 msgid "Received Date" msgstr "" -#: order/models.py:2399 +#: order/models.py:2438 msgid "The date this this return item was received" msgstr "" -#: order/models.py:2410 templates/js/translated/return_order.js:731 +#: order/models.py:2449 templates/js/translated/return_order.js:731 #: templates/js/translated/table_filters.js:122 msgid "Outcome" msgstr "" -#: order/models.py:2411 +#: order/models.py:2450 msgid "Outcome for this line item" msgstr "" -#: order/models.py:2418 +#: order/models.py:2457 msgid "Cost associated with return or repair for this line item" msgstr "" -#: order/models.py:2428 +#: order/models.py:2467 msgid "Return Order Extra Line" msgstr "" -#: order/serializers.py:86 +#: order/serializers.py:87 +msgid "Order ID" +msgstr "" + +#: order/serializers.py:87 +msgid "ID of the order to duplicate" +msgstr "" + +#: order/serializers.py:93 +msgid "Copy Lines" +msgstr "" + +#: order/serializers.py:94 +msgid "Copy line items from the original order" +msgstr "" + +#: order/serializers.py:100 +msgid "Copy Extra Lines" +msgstr "" + +#: order/serializers.py:101 +msgid "Copy extra line items from the original order" +msgstr "" + +#: order/serializers.py:117 msgid "Completed Lines" msgstr "" -#: order/serializers.py:283 stock/admin.py:195 +#: order/serializers.py:161 +msgid "Duplicate Order" +msgstr "" + +#: order/serializers.py:162 +msgid "Specify options for duplicating this order" +msgstr "" + +#: order/serializers.py:234 +msgid "Invalid order ID" +msgstr "" + +#: order/serializers.py:374 stock/admin.py:196 msgid "Supplier Name" msgstr "" -#: order/serializers.py:331 +#: order/serializers.py:416 msgid "Order cannot be cancelled" msgstr "Zamówienie nie może zostać anulowane" -#: order/serializers.py:346 order/serializers.py:1366 +#: order/serializers.py:431 order/serializers.py:1492 msgid "Allow order to be closed with incomplete line items" msgstr "" -#: order/serializers.py:356 order/serializers.py:1376 +#: order/serializers.py:441 order/serializers.py:1502 msgid "Order has incomplete line items" msgstr "" -#: order/serializers.py:506 +#: order/serializers.py:591 msgid "Order is not open" msgstr "" -#: order/serializers.py:527 +#: order/serializers.py:612 msgid "Auto Pricing" msgstr "" -#: order/serializers.py:529 +#: order/serializers.py:614 msgid "Automatically calculate purchase price based on supplier part data" msgstr "" -#: order/serializers.py:539 +#: order/serializers.py:624 msgid "Purchase price currency" msgstr "" -#: order/serializers.py:545 +#: order/serializers.py:630 msgid "Merge Items" msgstr "" -#: order/serializers.py:547 +#: order/serializers.py:632 msgid "Merge items with the same part, destination and target date into one line item" msgstr "" -#: order/serializers.py:560 part/models.py:1033 +#: order/serializers.py:645 part/models.py:1094 part/serializers.py:387 msgid "Internal Part Number" msgstr "" -#: order/serializers.py:568 +#: order/serializers.py:653 msgid "Internal Part Name" msgstr "" -#: order/serializers.py:584 +#: order/serializers.py:669 msgid "Supplier part must be specified" msgstr "" -#: order/serializers.py:587 +#: order/serializers.py:672 msgid "Purchase order must be specified" msgstr "Zlecenie zakupu musi być określone" -#: order/serializers.py:595 +#: order/serializers.py:680 msgid "Supplier must match purchase order" msgstr "Dostawca musi być zgodny ze zleceniem zakupu" -#: order/serializers.py:596 +#: order/serializers.py:681 msgid "Purchase order must match supplier" msgstr "Zlecenie zakupu musi być zgodne z dostawcą" -#: order/serializers.py:639 order/serializers.py:1446 +#: order/serializers.py:724 order/serializers.py:1572 msgid "Line Item" msgstr "" -#: order/serializers.py:645 +#: order/serializers.py:730 msgid "Line item does not match purchase order" msgstr "Pozycja nie pasuje do zlecenia zakupu" -#: order/serializers.py:655 order/serializers.py:779 order/serializers.py:1782 +#: order/serializers.py:740 order/serializers.py:881 order/serializers.py:1934 msgid "Select destination location for received items" msgstr "" -#: order/serializers.py:671 templates/js/translated/purchase_order.js:1130 +#: order/serializers.py:756 templates/js/translated/purchase_order.js:1113 #: templates/js/translated/stock.js:1200 msgid "Enter batch code for incoming stock items" msgstr "" -#: order/serializers.py:679 templates/js/translated/purchase_order.js:1155 +#: order/serializers.py:764 templates/js/translated/purchase_order.js:1138 msgid "Enter serial numbers for incoming stock items" msgstr "" -#: order/serializers.py:691 +#: order/serializers.py:776 msgid "Override packaging information for incoming stock items" msgstr "" -#: order/serializers.py:699 +#: order/serializers.py:784 msgid "Additional note for incoming stock items" msgstr "" -#: order/serializers.py:706 templates/js/translated/barcode.js:52 +#: order/serializers.py:791 templates/js/translated/barcode.js:52 msgid "Barcode" msgstr "Kod kreskowy" -#: order/serializers.py:707 +#: order/serializers.py:792 msgid "Scanned barcode" msgstr "" -#: order/serializers.py:723 +#: order/serializers.py:808 msgid "Barcode is already in use" msgstr "" -#: order/serializers.py:747 +#: order/serializers.py:831 msgid "An integer quantity must be provided for trackable parts" msgstr "" -#: order/serializers.py:795 order/serializers.py:1798 +#: order/serializers.py:898 order/serializers.py:1950 msgid "Line items must be provided" msgstr "" -#: order/serializers.py:811 +#: order/serializers.py:914 msgid "Destination location must be specified" msgstr "" -#: order/serializers.py:822 +#: order/serializers.py:925 msgid "Supplied barcode values must be unique" msgstr "" -#: order/serializers.py:1187 +#: order/serializers.py:1221 msgid "Sale price currency" msgstr "" -#: order/serializers.py:1248 +#: order/serializers.py:1260 +msgid "Allocated Items" +msgstr "" + +#: order/serializers.py:1374 msgid "No shipment details provided" msgstr "" -#: order/serializers.py:1309 order/serializers.py:1455 +#: order/serializers.py:1435 order/serializers.py:1581 msgid "Line item is not associated with this order" msgstr "" -#: order/serializers.py:1328 +#: order/serializers.py:1454 msgid "Quantity must be positive" msgstr "" -#: order/serializers.py:1465 +#: order/serializers.py:1591 msgid "Enter serial numbers to allocate" msgstr "" -#: order/serializers.py:1487 order/serializers.py:1593 +#: order/serializers.py:1613 order/serializers.py:1733 msgid "Shipment has already been shipped" msgstr "" -#: order/serializers.py:1490 order/serializers.py:1596 +#: order/serializers.py:1616 order/serializers.py:1736 msgid "Shipment is not associated with this order" msgstr "" -#: order/serializers.py:1537 +#: order/serializers.py:1671 msgid "No match found for the following serial numbers" msgstr "" -#: order/serializers.py:1544 -msgid "The following serial numbers are already allocated" +#: order/serializers.py:1678 +msgid "The following serial numbers are unavailable" msgstr "" -#: order/serializers.py:1752 +#: order/serializers.py:1904 msgid "Return order line item" msgstr "" -#: order/serializers.py:1758 +#: order/serializers.py:1910 msgid "Line item does not match return order" msgstr "" -#: order/serializers.py:1761 +#: order/serializers.py:1913 msgid "Line item has already been received" msgstr "" -#: order/serializers.py:1790 +#: order/serializers.py:1942 msgid "Items can only be received against orders which are in progress" msgstr "" -#: order/serializers.py:1873 +#: order/serializers.py:2025 msgid "Line price currency" msgstr "" -#: order/status_codes.py:17 order/status_codes.py:52 stock/status_codes.py:16 +#: order/status_codes.py:17 order/status_codes.py:54 stock/status_codes.py:16 msgid "Lost" msgstr "Zagubiono" -#: order/status_codes.py:18 order/status_codes.py:53 stock/status_codes.py:22 +#: order/status_codes.py:18 order/status_codes.py:55 stock/status_codes.py:24 msgid "Returned" msgstr "Zwrócone" -#: order/status_codes.py:45 order/status_codes.py:77 +#: order/status_codes.py:47 order/status_codes.py:79 msgid "In Progress" msgstr "W trakcie" -#: order/status_codes.py:101 +#: order/status_codes.py:105 msgid "Return" msgstr "Zwrot" -#: order/status_codes.py:104 +#: order/status_codes.py:108 msgid "Repair" msgstr "Naprawa" -#: order/status_codes.py:107 +#: order/status_codes.py:111 msgid "Replace" msgstr "Wymiana" -#: order/status_codes.py:110 +#: order/status_codes.py:114 msgid "Refund" msgstr "Zwrot pieniędzy" -#: order/status_codes.py:113 +#: order/status_codes.py:117 msgid "Reject" msgstr "Odrzuć" -#: order/tasks.py:25 +#: order/tasks.py:30 msgid "Overdue Purchase Order" msgstr "Zaległe zlecenie zakupu" -#: order/tasks.py:30 +#: order/tasks.py:35 #, python-brace-format msgid "Purchase order {po} is now overdue" msgstr "Zlecenie zakupu {po} jest teraz zaległe" -#: order/tasks.py:75 +#: order/tasks.py:80 msgid "Overdue Sales Order" msgstr "" -#: order/tasks.py:80 +#: order/tasks.py:85 #, python-brace-format msgid "Sales order {so} is now overdue" msgstr "" -#: order/templates/order/order_base.html:51 +#: order/templates/order/order_base.html:52 msgid "Print purchase order report" msgstr "Drukuj raport zlecenia zakupu" -#: order/templates/order/order_base.html:53 -#: order/templates/order/return_order_base.html:62 -#: order/templates/order/sales_order_base.html:62 +#: order/templates/order/order_base.html:54 +#: order/templates/order/return_order_base.html:63 +#: order/templates/order/sales_order_base.html:63 msgid "Export order to file" msgstr "Eksportuj zamówienie do pliku" -#: order/templates/order/order_base.html:59 -#: order/templates/order/return_order_base.html:72 -#: order/templates/order/sales_order_base.html:71 +#: order/templates/order/order_base.html:60 +#: order/templates/order/return_order_base.html:73 +#: order/templates/order/sales_order_base.html:72 msgid "Order actions" msgstr "" -#: order/templates/order/order_base.html:64 -#: order/templates/order/return_order_base.html:76 -#: order/templates/order/sales_order_base.html:75 +#: order/templates/order/order_base.html:65 +#: order/templates/order/return_order_base.html:77 +#: order/templates/order/sales_order_base.html:76 msgid "Edit order" msgstr "Edytuj zamówienie" -#: order/templates/order/order_base.html:68 +#: order/templates/order/order_base.html:69 msgid "Duplicate order" msgstr "" -#: order/templates/order/order_base.html:73 -#: order/templates/order/return_order_base.html:78 -#: order/templates/order/sales_order_base.html:77 +#: order/templates/order/order_base.html:74 +#: order/templates/order/return_order_base.html:79 +#: order/templates/order/sales_order_base.html:78 msgid "Hold order" msgstr "" -#: order/templates/order/order_base.html:78 -#: order/templates/order/return_order_base.html:81 -#: order/templates/order/sales_order_base.html:80 +#: order/templates/order/order_base.html:79 +#: order/templates/order/return_order_base.html:82 +#: order/templates/order/sales_order_base.html:81 msgid "Cancel order" msgstr "Anuluj zamówienie" -#: order/templates/order/order_base.html:84 #: order/templates/order/order_base.html:85 -#: order/templates/order/return_order_base.html:85 +#: order/templates/order/order_base.html:86 #: order/templates/order/return_order_base.html:86 -#: order/templates/order/sales_order_base.html:86 +#: order/templates/order/return_order_base.html:87 #: order/templates/order/sales_order_base.html:87 +#: order/templates/order/sales_order_base.html:88 msgid "Issue Order" msgstr "" -#: order/templates/order/order_base.html:88 -#: order/templates/order/return_order_base.html:89 +#: order/templates/order/order_base.html:89 +#: order/templates/order/return_order_base.html:90 msgid "Mark order as complete" msgstr "Oznacz zamówienie jako zakończone" -#: order/templates/order/order_base.html:89 -#: order/templates/order/return_order_base.html:90 -#: order/templates/order/sales_order_base.html:100 +#: order/templates/order/order_base.html:90 +#: order/templates/order/return_order_base.html:91 +#: order/templates/order/sales_order_base.html:101 msgid "Complete Order" msgstr "Kompletne zamówienie" -#: order/templates/order/order_base.html:96 +#: order/templates/order/order_base.html:97 msgid "Supplier part thumbnail" msgstr "" -#: order/templates/order/order_base.html:116 -#: order/templates/order/return_order_base.html:109 -#: order/templates/order/sales_order_base.html:118 +#: order/templates/order/order_base.html:117 +#: order/templates/order/return_order_base.html:110 +#: order/templates/order/sales_order_base.html:119 msgid "Order Description" msgstr "Opis zamówienia" -#: order/templates/order/order_base.html:146 -msgid "No suppplier information available" -msgstr "" - -#: order/templates/order/order_base.html:159 -#: order/templates/order/sales_order_base.html:164 +#: order/templates/order/order_base.html:168 +#: order/templates/order/sales_order_base.html:165 msgid "Completed Line Items" msgstr "" -#: order/templates/order/order_base.html:165 -#: order/templates/order/sales_order_base.html:170 -#: order/templates/order/sales_order_base.html:180 +#: order/templates/order/order_base.html:174 +#: order/templates/order/sales_order_base.html:171 +#: order/templates/order/sales_order_base.html:181 msgid "Incomplete" msgstr "Niekompletny" -#: order/templates/order/order_base.html:184 -#: order/templates/order/return_order_base.html:160 +#: order/templates/order/order_base.html:193 +#: order/templates/order/return_order_base.html:161 #: report/templates/report/inventree_build_order_report.html:121 msgid "Issued" msgstr "Wydany" -#: order/templates/order/order_base.html:229 +#: order/templates/order/order_base.html:238 msgid "Total cost" msgstr "" -#: order/templates/order/order_base.html:233 -#: order/templates/order/return_order_base.html:202 -#: order/templates/order/sales_order_base.html:246 +#: order/templates/order/order_base.html:242 +#: order/templates/order/return_order_base.html:203 +#: order/templates/order/sales_order_base.html:247 msgid "Total cost could not be calculated" msgstr "" -#: order/templates/order/order_base.html:335 +#: order/templates/order/order_base.html:344 msgid "Purchase Order QR Code" msgstr "" -#: order/templates/order/order_base.html:347 +#: order/templates/order/order_base.html:356 msgid "Link Barcode to Purchase Order" msgstr "" @@ -6184,12 +6392,12 @@ msgstr "Duplikuj wybrane" #: part/templates/part/import_wizard/ajax_match_references.html:42 #: part/templates/part/import_wizard/match_fields.html:71 #: part/templates/part/import_wizard/match_references.html:49 -#: templates/js/translated/bom.js:133 templates/js/translated/build.js:530 -#: templates/js/translated/build.js:1802 -#: templates/js/translated/purchase_order.js:696 -#: templates/js/translated/purchase_order.js:1288 +#: templates/js/translated/bom.js:133 templates/js/translated/build.js:533 +#: templates/js/translated/build.js:1805 +#: templates/js/translated/purchase_order.js:679 +#: templates/js/translated/purchase_order.js:1271 #: templates/js/translated/return_order.js:505 -#: templates/js/translated/sales_order.js:1145 +#: templates/js/translated/sales_order.js:1111 #: templates/js/translated/stock.js:720 templates/js/translated/stock.js:889 #: templates/patterns/wizard/match_fields.html:70 msgid "Remove row" @@ -6242,7 +6450,7 @@ msgstr "Pozycje zlecenia zakupu" #: order/templates/order/purchase_order_detail.html:27 #: order/templates/order/return_order_detail.html:24 #: order/templates/order/sales_order_detail.html:24 -#: templates/js/translated/purchase_order.js:414 +#: templates/js/translated/purchase_order.js:397 #: templates/js/translated/return_order.js:458 #: templates/js/translated/sales_order.js:237 msgid "Add Line Item" @@ -6277,45 +6485,45 @@ msgstr "Otrzymane elementy" msgid "Order Notes" msgstr "Notatki zamówień" -#: order/templates/order/return_order_base.html:18 -#: order/templates/order/sales_order_base.html:18 +#: order/templates/order/return_order_base.html:19 +#: order/templates/order/sales_order_base.html:19 msgid "Customer logo thumbnail" msgstr "" -#: order/templates/order/return_order_base.html:60 +#: order/templates/order/return_order_base.html:61 msgid "Print return order report" msgstr "" -#: order/templates/order/return_order_base.html:64 -#: order/templates/order/sales_order_base.html:64 +#: order/templates/order/return_order_base.html:65 +#: order/templates/order/sales_order_base.html:65 msgid "Print packing list" msgstr "" -#: order/templates/order/return_order_base.html:141 -#: order/templates/order/sales_order_base.html:158 +#: order/templates/order/return_order_base.html:142 +#: order/templates/order/sales_order_base.html:159 #: templates/js/translated/return_order.js:308 -#: templates/js/translated/sales_order.js:833 +#: templates/js/translated/sales_order.js:792 msgid "Customer Reference" msgstr "" -#: order/templates/order/return_order_base.html:198 -#: order/templates/order/sales_order_base.html:242 +#: order/templates/order/return_order_base.html:199 +#: order/templates/order/sales_order_base.html:243 #: part/templates/part/part_pricing.html:32 #: part/templates/part/part_pricing.html:58 #: part/templates/part/part_pricing.html:99 #: part/templates/part/part_pricing.html:114 #: templates/js/translated/part.js:1079 -#: templates/js/translated/purchase_order.js:1822 +#: templates/js/translated/purchase_order.js:1806 #: templates/js/translated/return_order.js:380 -#: templates/js/translated/sales_order.js:891 +#: templates/js/translated/sales_order.js:850 msgid "Total Cost" msgstr "Całkowity Koszt" -#: order/templates/order/return_order_base.html:273 +#: order/templates/order/return_order_base.html:274 msgid "Return Order QR Code" msgstr "" -#: order/templates/order/return_order_base.html:285 +#: order/templates/order/return_order_base.html:286 msgid "Link Barcode to Return Order" msgstr "" @@ -6323,40 +6531,40 @@ msgstr "" msgid "Order Details" msgstr "" -#: order/templates/order/sales_order_base.html:60 +#: order/templates/order/sales_order_base.html:61 msgid "Print sales order report" msgstr "" -#: order/templates/order/sales_order_base.html:91 #: order/templates/order/sales_order_base.html:92 +#: order/templates/order/sales_order_base.html:93 msgid "Ship Items" msgstr "" -#: order/templates/order/sales_order_base.html:95 #: order/templates/order/sales_order_base.html:96 +#: order/templates/order/sales_order_base.html:97 msgid "Mark As Shipped" msgstr "" -#: order/templates/order/sales_order_base.html:99 -#: templates/js/translated/sales_order.js:536 +#: order/templates/order/sales_order_base.html:100 +#: templates/js/translated/sales_order.js:495 msgid "Complete Sales Order" msgstr "" -#: order/templates/order/sales_order_base.html:138 +#: order/templates/order/sales_order_base.html:139 msgid "This Sales Order has not been fully allocated" msgstr "" -#: order/templates/order/sales_order_base.html:176 +#: order/templates/order/sales_order_base.html:177 #: order/templates/order/sales_order_detail.html:99 #: order/templates/order/so_sidebar.html:11 msgid "Completed Shipments" msgstr "" -#: order/templates/order/sales_order_base.html:339 +#: order/templates/order/sales_order_base.html:340 msgid "Sales Order QR Code" msgstr "" -#: order/templates/order/sales_order_base.html:351 +#: order/templates/order/sales_order_base.html:352 msgid "Link Barcode to Sales Order" msgstr "" @@ -6370,7 +6578,7 @@ msgid "Pending Shipments" msgstr "Oczekujące przesyłki" #: order/templates/order/sales_order_detail.html:71 -#: templates/js/translated/bom.js:1277 templates/js/translated/build.js:1063 +#: templates/js/translated/bom.js:1277 templates/js/translated/build.js:1066 #: templates/js/translated/filters.js:299 msgid "Actions" msgstr "Akcje" @@ -6383,39 +6591,40 @@ msgstr "Nowa wysyłka" msgid "Match Supplier Parts" msgstr "" -#: order/views.py:406 +#: order/views.py:407 msgid "Sales order not found" msgstr "" -#: order/views.py:412 +#: order/views.py:413 msgid "Price not found" msgstr "Nie znaleziono ceny" -#: order/views.py:415 +#: order/views.py:416 #, python-brace-format msgid "Updated {part} unit-price to {price}" msgstr "" -#: order/views.py:421 +#: order/views.py:422 #, python-brace-format msgid "Updated {part} unit-price to {price} and quantity to {qty}" msgstr "" -#: part/admin.py:48 part/models.py:1032 part/templates/part/part_base.html:269 +#: part/admin.py:48 part/models.py:1093 part/serializers.py:939 +#: part/templates/part/part_base.html:277 #: report/templates/report/inventree_stock_location_report.html:103 #: templates/js/translated/part.js:1233 templates/js/translated/part.js:2347 -#: templates/js/translated/stock.js:2121 +#: templates/js/translated/stock.js:2122 msgid "IPN" msgstr "" -#: part/admin.py:50 part/models.py:1041 part/templates/part/part_base.html:286 +#: part/admin.py:50 part/models.py:1102 part/templates/part/part_base.html:294 #: report/models.py:161 templates/js/translated/part.js:1238 #: templates/js/translated/part.js:2353 msgid "Revision" msgstr "Wersja" -#: part/admin.py:53 part/admin.py:319 part/models.py:1014 -#: part/templates/part/category.html:91 part/templates/part/part_base.html:307 +#: part/admin.py:53 part/admin.py:319 part/models.py:1075 +#: part/templates/part/category.html:91 part/templates/part/part_base.html:315 msgid "Keywords" msgstr "Słowa kluczowe" @@ -6427,7 +6636,7 @@ msgstr "" msgid "Category ID" msgstr "ID kategorii" -#: part/admin.py:67 part/admin.py:304 part/serializers.py:880 +#: part/admin.py:67 part/admin.py:304 part/serializers.py:924 #: part/stocktake.py:222 msgid "Category Name" msgstr "" @@ -6440,11 +6649,11 @@ msgstr "" msgid "Default Supplier ID" msgstr "" -#: part/admin.py:81 part/models.py:1000 part/templates/part/part_base.html:177 +#: part/admin.py:81 part/models.py:1061 part/templates/part/part_base.html:178 msgid "Variant Of" msgstr "Wariant" -#: part/admin.py:84 part/models.py:1138 part/templates/part/part_base.html:203 +#: part/admin.py:84 part/models.py:1199 part/templates/part/part_base.html:204 msgid "Minimum Stock" msgstr "Minimalny stan magazynowy" @@ -6452,23 +6661,23 @@ msgstr "Minimalny stan magazynowy" msgid "Used In" msgstr "Użyte w" -#: part/admin.py:150 part/serializers.py:897 -#: part/templates/part/part_base.html:241 stock/admin.py:235 +#: part/admin.py:150 part/serializers.py:949 +#: part/templates/part/part_base.html:249 stock/admin.py:236 #: templates/js/translated/part.js:717 templates/js/translated/part.js:2159 msgid "Building" msgstr "" -#: part/admin.py:155 part/models.py:3202 part/models.py:3216 +#: part/admin.py:155 part/models.py:3253 part/models.py:3267 #: templates/js/translated/part.js:976 msgid "Minimum Cost" msgstr "" -#: part/admin.py:158 part/models.py:3209 part/models.py:3223 +#: part/admin.py:158 part/models.py:3260 part/models.py:3274 #: templates/js/translated/part.js:986 msgid "Maximum Cost" msgstr "" -#: part/admin.py:308 part/admin.py:387 stock/admin.py:57 stock/admin.py:215 +#: part/admin.py:308 part/admin.py:387 stock/admin.py:57 stock/admin.py:216 msgid "Parent ID" msgstr "" @@ -6481,8 +6690,8 @@ msgstr "" msgid "Category Path" msgstr "Ścieżka kategorii" -#: part/admin.py:325 part/models.py:425 part/serializers.py:130 -#: part/serializers.py:290 part/serializers.py:415 +#: part/admin.py:325 part/models.py:420 part/serializers.py:130 +#: part/serializers.py:323 part/serializers.py:459 #: part/templates/part/cat_link.html:3 part/templates/part/category.html:20 #: part/templates/part/category.html:138 part/templates/part/category.html:158 #: part/templates/part/category_sidebar.html:9 @@ -6509,15 +6718,15 @@ msgstr "" msgid "Part Revision" msgstr "" -#: part/admin.py:418 part/serializers.py:1346 +#: part/admin.py:418 part/serializers.py:1400 #: templates/js/translated/pricing.js:358 -#: templates/js/translated/pricing.js:1024 +#: templates/js/translated/pricing.js:1022 msgid "Minimum Price" msgstr "" -#: part/admin.py:423 part/serializers.py:1361 +#: part/admin.py:423 part/serializers.py:1415 #: templates/js/translated/pricing.js:353 -#: templates/js/translated/pricing.js:1032 +#: templates/js/translated/pricing.js:1030 msgid "Maximum Price" msgstr "" @@ -6545,94 +6754,98 @@ msgstr "" msgid "Filter by top-level categories" msgstr "" +#: part/api.py:156 stock/api.py:343 +msgid "Cascade" +msgstr "" + #: part/api.py:158 msgid "Include sub-categories in filtered results" msgstr "" -#: part/api.py:179 templates/js/translated/part.js:311 +#: part/api.py:178 templates/js/translated/part.js:311 msgid "Parent" msgstr "" -#: part/api.py:181 +#: part/api.py:180 msgid "Filter by parent category" msgstr "" -#: part/api.py:214 +#: part/api.py:213 msgid "Exclude Tree" msgstr "" -#: part/api.py:216 +#: part/api.py:215 msgid "Exclude sub-categories under the specified category" msgstr "" -#: part/api.py:441 +#: part/api.py:440 msgid "Has Results" msgstr "" -#: part/api.py:608 +#: part/api.py:604 msgid "Incoming Purchase Order" msgstr "Nadchodzące zlecenie zakupu" -#: part/api.py:626 +#: part/api.py:618 msgid "Outgoing Sales Order" msgstr "" -#: part/api.py:642 +#: part/api.py:630 msgid "Stock produced by Build Order" msgstr "" -#: part/api.py:726 +#: part/api.py:712 msgid "Stock required for Build Order" msgstr "" -#: part/api.py:874 +#: part/api.py:858 msgid "Validate entire Bill of Materials" msgstr "" -#: part/api.py:880 +#: part/api.py:864 msgid "This option must be selected" msgstr "Ta opcja musi być zaznaczona" -#: part/api.py:916 +#: part/api.py:900 msgid "Is Revision" msgstr "" -#: part/api.py:926 +#: part/api.py:910 msgid "Has Revisions" msgstr "" -#: part/api.py:1117 +#: part/api.py:1101 msgid "BOM Valid" msgstr "" -#: part/api.py:1523 part/models.py:1024 part/models.py:3489 part/models.py:4046 -#: part/serializers.py:430 part/serializers.py:1202 -#: part/templates/part/part_base.html:260 stock/api.py:781 +#: part/api.py:1509 part/models.py:1085 part/models.py:3540 part/models.py:4104 +#: part/serializers.py:474 part/serializers.py:1255 +#: part/templates/part/part_base.html:268 stock/api.py:781 #: templates/InvenTree/settings/settings_staff_js.html:300 #: templates/js/translated/notification.js:60 #: templates/js/translated/part.js:2383 msgid "Category" msgstr "Kategoria" -#: part/api.py:1761 +#: part/api.py:1750 msgid "Assembly part is testable" msgstr "" -#: part/api.py:1770 +#: part/api.py:1759 msgid "Component part is testable" msgstr "" -#: part/api.py:1821 +#: part/api.py:1810 msgid "Uses" msgstr "" -#: part/bom.py:178 part/models.py:107 part/models.py:1077 -#: part/templates/part/category.html:113 part/templates/part/part_base.html:376 +#: part/bom.py:183 part/models.py:109 part/models.py:1138 +#: part/templates/part/category.html:113 part/templates/part/part_base.html:384 #: templates/js/translated/part.js:2397 msgid "Default Location" msgstr "Domyślna lokalizacja" -#: part/bom.py:179 part/serializers.py:905 +#: part/bom.py:184 part/serializers.py:957 #: templates/email/low_stock_notification.html:16 msgid "Total Stock" msgstr "" @@ -6641,789 +6854,789 @@ msgstr "" msgid "Input quantity for price calculation" msgstr "" -#: part/models.py:88 part/models.py:4047 part/templates/part/category.html:16 +#: part/models.py:90 part/models.py:4105 part/templates/part/category.html:16 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "Kategoria komponentu" -#: part/models.py:89 part/templates/part/category.html:133 +#: part/models.py:91 part/templates/part/category.html:133 #: templates/InvenTree/search.html:97 templates/js/translated/search.js:158 #: users/models.py:202 msgid "Part Categories" msgstr "Kategorie części" -#: part/models.py:108 +#: part/models.py:110 msgid "Default location for parts in this category" msgstr "Domyślna lokalizacja dla komponentów w tej kategorii" -#: part/models.py:113 stock/models.py:187 templates/js/translated/part.js:2828 -#: templates/js/translated/stock.js:2856 +#: part/models.py:115 stock/models.py:193 templates/js/translated/part.js:2828 +#: templates/js/translated/stock.js:2857 #: templates/js/translated/table_filters.js:246 #: templates/js/translated/table_filters.js:290 msgid "Structural" msgstr "" -#: part/models.py:115 +#: part/models.py:117 msgid "Parts may not be directly assigned to a structural category, but may be assigned to child categories." msgstr "" -#: part/models.py:124 +#: part/models.py:126 msgid "Default keywords" msgstr "Domyślne słowa kluczowe" -#: part/models.py:125 +#: part/models.py:127 msgid "Default keywords for parts in this category" msgstr "" -#: part/models.py:131 stock/models.py:90 stock/models.py:169 +#: part/models.py:133 stock/models.py:96 stock/models.py:175 #: templates/InvenTree/settings/settings_staff_js.html:445 msgid "Icon" msgstr "" -#: part/models.py:132 part/serializers.py:143 part/serializers.py:161 -#: stock/models.py:170 +#: part/models.py:134 part/serializers.py:143 part/serializers.py:161 +#: stock/models.py:176 msgid "Icon (optional)" msgstr "" -#: part/models.py:178 +#: part/models.py:180 msgid "You cannot make this part category structural because some parts are already assigned to it!" msgstr "" -#: part/models.py:519 +#: part/models.py:514 msgid "Cannot delete this part as it is locked" msgstr "" -#: part/models.py:522 +#: part/models.py:517 msgid "Cannot delete this part as it is still active" msgstr "" -#: part/models.py:527 +#: part/models.py:522 msgid "Cannot delete this part as it is used in an assembly" msgstr "" -#: part/models.py:565 +#: part/models.py:560 msgid "Invalid choice for parent part" msgstr "Nieprawidłowy wybór dla części nadrzędnej" -#: part/models.py:613 part/models.py:620 +#: part/models.py:608 part/models.py:615 #, python-brace-format msgid "Part '{self}' cannot be used in BOM for '{parent}' (recursive)" msgstr "" -#: part/models.py:632 +#: part/models.py:627 #, python-brace-format msgid "Part '{parent}' is used in BOM for '{self}' (recursive)" msgstr "" -#: part/models.py:695 +#: part/models.py:694 #, python-brace-format msgid "IPN must match regex pattern {pattern}" msgstr "" -#: part/models.py:703 +#: part/models.py:702 msgid "Part cannot be a revision of itself" msgstr "" -#: part/models.py:710 +#: part/models.py:709 msgid "Cannot make a revision of a part which is already a revision" msgstr "" -#: part/models.py:717 +#: part/models.py:716 msgid "Revision code must be specified" msgstr "" -#: part/models.py:724 +#: part/models.py:723 msgid "Revisions are only allowed for assembly parts" msgstr "" -#: part/models.py:731 +#: part/models.py:730 msgid "Cannot make a revision of a template part" msgstr "" -#: part/models.py:737 +#: part/models.py:736 msgid "Parent part must point to the same template" msgstr "" -#: part/models.py:816 +#: part/models.py:832 msgid "Stock item with this serial number already exists" msgstr "" -#: part/models.py:917 +#: part/models.py:976 msgid "Duplicate IPN not allowed in part settings" msgstr "" -#: part/models.py:926 +#: part/models.py:988 msgid "Duplicate part revision already exists." msgstr "" -#: part/models.py:936 +#: part/models.py:997 msgid "Part with this Name, IPN and Revision already exists." msgstr "" -#: part/models.py:951 +#: part/models.py:1012 msgid "Parts cannot be assigned to structural part categories!" msgstr "" -#: part/models.py:983 part/models.py:4102 +#: part/models.py:1044 part/models.py:4160 msgid "Part name" msgstr "Nazwa komponentu" -#: part/models.py:988 +#: part/models.py:1049 msgid "Is Template" msgstr "Czy szablon" -#: part/models.py:989 +#: part/models.py:1050 msgid "Is this part a template part?" msgstr "Czy ta część stanowi szablon części?" -#: part/models.py:999 +#: part/models.py:1060 msgid "Is this part a variant of another part?" msgstr "Czy ta część jest wariantem innej części?" -#: part/models.py:1007 +#: part/models.py:1068 msgid "Part description (optional)" msgstr "" -#: part/models.py:1015 +#: part/models.py:1076 msgid "Part keywords to improve visibility in search results" msgstr "" -#: part/models.py:1025 +#: part/models.py:1086 msgid "Part category" msgstr "" -#: part/models.py:1040 +#: part/models.py:1101 msgid "Part revision or version number" msgstr "" -#: part/models.py:1050 +#: part/models.py:1111 msgid "Is this part a revision of another part?" msgstr "" -#: part/models.py:1051 part/templates/part/part_base.html:277 +#: part/models.py:1112 part/templates/part/part_base.html:285 msgid "Revision Of" msgstr "" -#: part/models.py:1075 +#: part/models.py:1136 msgid "Where is this item normally stored?" msgstr "" -#: part/models.py:1121 part/templates/part/part_base.html:385 +#: part/models.py:1182 part/templates/part/part_base.html:393 msgid "Default Supplier" msgstr "" -#: part/models.py:1122 +#: part/models.py:1183 msgid "Default supplier part" msgstr "" -#: part/models.py:1129 +#: part/models.py:1190 msgid "Default Expiry" msgstr "Domyślne wygasanie" -#: part/models.py:1130 +#: part/models.py:1191 msgid "Expiry time (in days) for stock items of this part" msgstr "" -#: part/models.py:1139 +#: part/models.py:1200 msgid "Minimum allowed stock level" msgstr "" -#: part/models.py:1148 +#: part/models.py:1209 msgid "Units of measure for this part" msgstr "" -#: part/models.py:1155 +#: part/models.py:1216 msgid "Can this part be built from other parts?" msgstr "Czy ten komponent może być zbudowany z innych komponentów?" -#: part/models.py:1161 +#: part/models.py:1222 msgid "Can this part be used to build other parts?" msgstr "Czy ta część może być użyta do budowy innych części?" -#: part/models.py:1167 +#: part/models.py:1228 msgid "Does this part have tracking for unique items?" msgstr "Czy ta część wymaga śledzenia każdego towaru z osobna?" -#: part/models.py:1173 +#: part/models.py:1234 msgid "Can this part have test results recorded against it?" msgstr "" -#: part/models.py:1179 +#: part/models.py:1240 msgid "Can this part be purchased from external suppliers?" msgstr "" -#: part/models.py:1185 +#: part/models.py:1246 msgid "Can this part be sold to customers?" msgstr "" -#: part/models.py:1189 +#: part/models.py:1250 msgid "Is this part active?" msgstr "Czy ta część jest aktywna?" -#: part/models.py:1194 templates/js/translated/part.js:821 +#: part/models.py:1255 templates/js/translated/part.js:821 #: templates/js/translated/table_filters.js:724 msgid "Locked" msgstr "" -#: part/models.py:1195 +#: part/models.py:1256 msgid "Locked parts cannot be edited" msgstr "" -#: part/models.py:1201 +#: part/models.py:1262 msgid "Is this a virtual part, such as a software product or license?" msgstr "Czy to wirtualna część, taka jak oprogramowanie lub licencja?" -#: part/models.py:1207 +#: part/models.py:1268 msgid "BOM checksum" msgstr "" -#: part/models.py:1208 +#: part/models.py:1269 msgid "Stored BOM checksum" msgstr "" -#: part/models.py:1216 +#: part/models.py:1277 msgid "BOM checked by" msgstr "" -#: part/models.py:1221 +#: part/models.py:1282 msgid "BOM checked date" msgstr "" -#: part/models.py:1237 +#: part/models.py:1298 msgid "Creation User" msgstr "Tworzenie użytkownika" -#: part/models.py:1247 +#: part/models.py:1308 msgid "Owner responsible for this part" msgstr "" -#: part/models.py:1252 part/templates/part/part_base.html:348 -#: stock/templates/stock/item_base.html:451 +#: part/models.py:1313 part/templates/part/part_base.html:356 +#: stock/templates/stock/item_base.html:448 #: templates/js/translated/part.js:2490 msgid "Last Stocktake" msgstr "Ostatnia inwentaryzacja" -#: part/models.py:2125 +#: part/models.py:2185 msgid "Sell multiple" msgstr "Sprzedaj wiele" -#: part/models.py:3116 +#: part/models.py:3167 msgid "Currency used to cache pricing calculations" msgstr "" -#: part/models.py:3132 +#: part/models.py:3183 msgid "Minimum BOM Cost" msgstr "" -#: part/models.py:3133 +#: part/models.py:3184 msgid "Minimum cost of component parts" msgstr "" -#: part/models.py:3139 +#: part/models.py:3190 msgid "Maximum BOM Cost" msgstr "" -#: part/models.py:3140 +#: part/models.py:3191 msgid "Maximum cost of component parts" msgstr "" -#: part/models.py:3146 +#: part/models.py:3197 msgid "Minimum Purchase Cost" msgstr "" -#: part/models.py:3147 +#: part/models.py:3198 msgid "Minimum historical purchase cost" msgstr "" -#: part/models.py:3153 +#: part/models.py:3204 msgid "Maximum Purchase Cost" msgstr "" -#: part/models.py:3154 +#: part/models.py:3205 msgid "Maximum historical purchase cost" msgstr "" -#: part/models.py:3160 +#: part/models.py:3211 msgid "Minimum Internal Price" msgstr "" -#: part/models.py:3161 +#: part/models.py:3212 msgid "Minimum cost based on internal price breaks" msgstr "" -#: part/models.py:3167 +#: part/models.py:3218 msgid "Maximum Internal Price" msgstr "" -#: part/models.py:3168 +#: part/models.py:3219 msgid "Maximum cost based on internal price breaks" msgstr "" -#: part/models.py:3174 +#: part/models.py:3225 msgid "Minimum Supplier Price" msgstr "" -#: part/models.py:3175 +#: part/models.py:3226 msgid "Minimum price of part from external suppliers" msgstr "" -#: part/models.py:3181 +#: part/models.py:3232 msgid "Maximum Supplier Price" msgstr "" -#: part/models.py:3182 +#: part/models.py:3233 msgid "Maximum price of part from external suppliers" msgstr "" -#: part/models.py:3188 +#: part/models.py:3239 msgid "Minimum Variant Cost" msgstr "" -#: part/models.py:3189 +#: part/models.py:3240 msgid "Calculated minimum cost of variant parts" msgstr "" -#: part/models.py:3195 +#: part/models.py:3246 msgid "Maximum Variant Cost" msgstr "" -#: part/models.py:3196 +#: part/models.py:3247 msgid "Calculated maximum cost of variant parts" msgstr "" -#: part/models.py:3203 +#: part/models.py:3254 msgid "Override minimum cost" msgstr "" -#: part/models.py:3210 +#: part/models.py:3261 msgid "Override maximum cost" msgstr "" -#: part/models.py:3217 +#: part/models.py:3268 msgid "Calculated overall minimum cost" msgstr "" -#: part/models.py:3224 +#: part/models.py:3275 msgid "Calculated overall maximum cost" msgstr "" -#: part/models.py:3230 +#: part/models.py:3281 msgid "Minimum Sale Price" msgstr "" -#: part/models.py:3231 +#: part/models.py:3282 msgid "Minimum sale price based on price breaks" msgstr "" -#: part/models.py:3237 +#: part/models.py:3288 msgid "Maximum Sale Price" msgstr "" -#: part/models.py:3238 +#: part/models.py:3289 msgid "Maximum sale price based on price breaks" msgstr "" -#: part/models.py:3244 +#: part/models.py:3295 msgid "Minimum Sale Cost" msgstr "" -#: part/models.py:3245 +#: part/models.py:3296 msgid "Minimum historical sale price" msgstr "" -#: part/models.py:3251 +#: part/models.py:3302 msgid "Maximum Sale Cost" msgstr "" -#: part/models.py:3252 +#: part/models.py:3303 msgid "Maximum historical sale price" msgstr "" -#: part/models.py:3271 +#: part/models.py:3322 msgid "Part for stocktake" msgstr "" -#: part/models.py:3276 +#: part/models.py:3327 msgid "Item Count" msgstr "" -#: part/models.py:3277 +#: part/models.py:3328 msgid "Number of individual stock entries at time of stocktake" msgstr "" -#: part/models.py:3285 +#: part/models.py:3336 msgid "Total available stock at time of stocktake" msgstr "" -#: part/models.py:3289 part/models.py:3372 +#: part/models.py:3340 part/models.py:3423 part/serializers.py:263 #: part/templates/part/part_scheduling.html:13 #: report/templates/report/inventree_test_report.html:106 #: templates/InvenTree/settings/plugin_settings.html:37 #: templates/InvenTree/settings/settings_staff_js.html:543 -#: templates/js/translated/part.js:1092 templates/js/translated/pricing.js:826 -#: templates/js/translated/pricing.js:950 -#: templates/js/translated/purchase_order.js:1801 -#: templates/js/translated/stock.js:2905 +#: templates/js/translated/part.js:1092 templates/js/translated/pricing.js:824 +#: templates/js/translated/pricing.js:948 +#: templates/js/translated/purchase_order.js:1785 +#: templates/js/translated/stock.js:2906 msgid "Date" msgstr "Data" -#: part/models.py:3290 +#: part/models.py:3341 msgid "Date stocktake was performed" msgstr "" -#: part/models.py:3298 +#: part/models.py:3349 msgid "Additional notes" msgstr "" -#: part/models.py:3308 +#: part/models.py:3359 msgid "User who performed this stocktake" msgstr "" -#: part/models.py:3314 +#: part/models.py:3365 msgid "Minimum Stock Cost" msgstr "" -#: part/models.py:3315 +#: part/models.py:3366 msgid "Estimated minimum cost of stock on hand" msgstr "" -#: part/models.py:3321 +#: part/models.py:3372 msgid "Maximum Stock Cost" msgstr "" -#: part/models.py:3322 +#: part/models.py:3373 msgid "Estimated maximum cost of stock on hand" msgstr "" -#: part/models.py:3378 templates/InvenTree/settings/settings_staff_js.html:532 +#: part/models.py:3429 templates/InvenTree/settings/settings_staff_js.html:532 msgid "Report" msgstr "" -#: part/models.py:3379 +#: part/models.py:3430 msgid "Stocktake report file (generated internally)" msgstr "" -#: part/models.py:3384 templates/InvenTree/settings/settings_staff_js.html:539 +#: part/models.py:3435 templates/InvenTree/settings/settings_staff_js.html:539 msgid "Part Count" msgstr "" -#: part/models.py:3385 +#: part/models.py:3436 msgid "Number of parts covered by stocktake" msgstr "" -#: part/models.py:3395 +#: part/models.py:3446 msgid "User who requested this stocktake report" msgstr "" -#: part/models.py:3405 +#: part/models.py:3456 msgid "Part Sale Price Break" msgstr "" -#: part/models.py:3517 +#: part/models.py:3568 msgid "Part Test Template" msgstr "" -#: part/models.py:3543 +#: part/models.py:3594 msgid "Invalid template name - must include at least one alphanumeric character" msgstr "" -#: part/models.py:3564 part/models.py:3733 +#: part/models.py:3615 part/models.py:3784 msgid "Choices must be unique" msgstr "" -#: part/models.py:3575 -msgid "Test templates can only be created for trackable parts" +#: part/models.py:3626 +msgid "Test templates can only be created for testable parts" msgstr "" -#: part/models.py:3586 +#: part/models.py:3637 msgid "Test template with the same key already exists for part" msgstr "" -#: part/models.py:3603 templates/js/translated/part.js:2898 +#: part/models.py:3654 templates/js/translated/part.js:2898 msgid "Test Name" msgstr "Nazwa testu" -#: part/models.py:3604 +#: part/models.py:3655 msgid "Enter a name for the test" msgstr "" -#: part/models.py:3610 +#: part/models.py:3661 msgid "Test Key" msgstr "" -#: part/models.py:3611 +#: part/models.py:3662 msgid "Simplified key for the test" msgstr "" -#: part/models.py:3618 +#: part/models.py:3669 msgid "Test Description" msgstr "Testowy opis" -#: part/models.py:3619 +#: part/models.py:3670 msgid "Enter description for this test" msgstr "Wprowadź opis do tego testu" -#: part/models.py:3623 report/models.py:208 +#: part/models.py:3674 report/models.py:216 #: templates/js/translated/part.js:2919 #: templates/js/translated/table_filters.js:502 msgid "Enabled" msgstr "Aktywne" -#: part/models.py:3623 +#: part/models.py:3674 msgid "Is this test enabled?" msgstr "" -#: part/models.py:3628 templates/js/translated/part.js:2927 +#: part/models.py:3679 templates/js/translated/part.js:2927 #: templates/js/translated/table_filters.js:498 msgid "Required" msgstr "Wymagane" -#: part/models.py:3629 +#: part/models.py:3680 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:3634 templates/js/translated/part.js:2935 +#: part/models.py:3685 templates/js/translated/part.js:2935 msgid "Requires Value" msgstr "Wymaga wartości" -#: part/models.py:3635 +#: part/models.py:3686 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:3640 templates/js/translated/part.js:2942 +#: part/models.py:3691 templates/js/translated/part.js:2942 msgid "Requires Attachment" msgstr "Wymaga załącznika" -#: part/models.py:3642 +#: part/models.py:3693 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:3648 part/models.py:3792 templates/js/translated/part.js:1643 +#: part/models.py:3699 part/models.py:3843 templates/js/translated/part.js:1643 msgid "Choices" msgstr "" -#: part/models.py:3649 +#: part/models.py:3700 msgid "Valid choices for this test (comma-separated)" msgstr "" -#: part/models.py:3681 +#: part/models.py:3732 msgid "Part Parameter Template" msgstr "" -#: part/models.py:3708 +#: part/models.py:3759 msgid "Checkbox parameters cannot have units" msgstr "" -#: part/models.py:3713 +#: part/models.py:3764 msgid "Checkbox parameters cannot have choices" msgstr "" -#: part/models.py:3750 +#: part/models.py:3801 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:3765 +#: part/models.py:3816 msgid "Parameter Name" msgstr "" -#: part/models.py:3772 +#: part/models.py:3823 msgid "Physical units for this parameter" msgstr "" -#: part/models.py:3780 +#: part/models.py:3831 msgid "Parameter description" msgstr "" -#: part/models.py:3786 templates/js/translated/part.js:1634 +#: part/models.py:3837 templates/js/translated/part.js:1634 #: templates/js/translated/table_filters.js:837 msgid "Checkbox" msgstr "" -#: part/models.py:3787 +#: part/models.py:3838 msgid "Is this parameter a checkbox?" msgstr "" -#: part/models.py:3793 +#: part/models.py:3844 msgid "Valid choices for this parameter (comma-separated)" msgstr "" -#: part/models.py:3827 +#: part/models.py:3881 msgid "Part Parameter" msgstr "" -#: part/models.py:3853 +#: part/models.py:3907 msgid "Parameter cannot be modified - part is locked" msgstr "" -#: part/models.py:3889 +#: part/models.py:3945 msgid "Invalid choice for parameter value" msgstr "" -#: part/models.py:3938 +#: part/models.py:3996 msgid "Parent Part" msgstr "Część nadrzędna" -#: part/models.py:3946 part/models.py:4054 part/models.py:4055 +#: part/models.py:4004 part/models.py:4112 part/models.py:4113 #: templates/InvenTree/settings/settings_staff_js.html:295 msgid "Parameter Template" msgstr "" -#: part/models.py:3952 +#: part/models.py:4010 msgid "Parameter Value" msgstr "Wartość parametru" -#: part/models.py:4002 +#: part/models.py:4060 msgid "Part Category Parameter Template" msgstr "" -#: part/models.py:4061 templates/InvenTree/settings/settings_staff_js.html:304 +#: part/models.py:4119 templates/InvenTree/settings/settings_staff_js.html:304 msgid "Default Value" msgstr "Wartość domyślna" -#: part/models.py:4062 +#: part/models.py:4120 msgid "Default Parameter Value" msgstr "" -#: part/models.py:4100 +#: part/models.py:4158 msgid "Part ID or part name" msgstr "" -#: part/models.py:4101 +#: part/models.py:4159 msgid "Unique part ID value" msgstr "Unikalny wartość ID komponentu" -#: part/models.py:4103 +#: part/models.py:4161 msgid "Part IPN value" msgstr "Wartość IPN części" -#: part/models.py:4104 +#: part/models.py:4162 msgid "Level" msgstr "Poziom" -#: part/models.py:4104 +#: part/models.py:4162 msgid "BOM level" msgstr "" -#: part/models.py:4215 +#: part/models.py:4272 msgid "BOM item cannot be modified - assembly is locked" msgstr "" -#: part/models.py:4222 +#: part/models.py:4279 msgid "BOM item cannot be modified - variant assembly is locked" msgstr "" -#: part/models.py:4232 +#: part/models.py:4289 msgid "Select parent part" msgstr "Wybierz część nadrzędną" -#: part/models.py:4242 +#: part/models.py:4299 msgid "Sub part" msgstr "Podczęść" -#: part/models.py:4243 +#: part/models.py:4300 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:4254 +#: part/models.py:4311 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:4260 +#: part/models.py:4317 msgid "This BOM item is optional" msgstr "Ten element BOM jest opcjonalny" -#: part/models.py:4266 +#: part/models.py:4323 msgid "This BOM item is consumable (it is not tracked in build orders)" msgstr "" -#: part/models.py:4273 part/templates/part/upload_bom.html:55 +#: part/models.py:4330 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "" -#: part/models.py:4274 +#: part/models.py:4331 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:4281 +#: part/models.py:4338 msgid "BOM item reference" msgstr "" -#: part/models.py:4289 +#: part/models.py:4346 msgid "BOM item notes" msgstr "Notatki pozycji BOM" -#: part/models.py:4295 +#: part/models.py:4352 msgid "Checksum" msgstr "Suma kontrolna" -#: part/models.py:4296 +#: part/models.py:4353 msgid "BOM line checksum" msgstr "" -#: part/models.py:4301 templates/js/translated/table_filters.js:181 +#: part/models.py:4358 templates/js/translated/table_filters.js:181 msgid "Validated" msgstr "Zatwierdzone" -#: part/models.py:4302 +#: part/models.py:4359 msgid "This BOM item has been validated" msgstr "" -#: part/models.py:4307 part/templates/part/upload_bom.html:57 +#: part/models.py:4364 part/templates/part/upload_bom.html:57 #: templates/js/translated/bom.js:1054 #: templates/js/translated/table_filters.js:185 #: templates/js/translated/table_filters.js:218 msgid "Gets inherited" msgstr "" -#: part/models.py:4308 +#: part/models.py:4365 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:4314 +#: part/models.py:4371 msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:4399 stock/models.py:685 +#: part/models.py:4456 stock/models.py:762 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:4409 part/models.py:4411 +#: part/models.py:4466 part/models.py:4468 msgid "Sub part must be specified" msgstr "" -#: part/models.py:4551 +#: part/models.py:4613 msgid "BOM Item Substitute" msgstr "" -#: part/models.py:4572 +#: part/models.py:4634 msgid "Substitute part cannot be the same as the master part" msgstr "" -#: part/models.py:4585 +#: part/models.py:4647 msgid "Parent BOM item" msgstr "" -#: part/models.py:4593 +#: part/models.py:4655 msgid "Substitute part" msgstr "Część zastępcza" -#: part/models.py:4609 +#: part/models.py:4671 msgid "Part 1" msgstr "Część 1" -#: part/models.py:4617 +#: part/models.py:4679 msgid "Part 2" msgstr "Część 2" -#: part/models.py:4618 +#: part/models.py:4680 msgid "Select Related Part" msgstr "Wybierz powiązaną część" -#: part/models.py:4637 +#: part/models.py:4699 msgid "Part relationship cannot be created between a part and itself" msgstr "" -#: part/models.py:4642 +#: part/models.py:4704 msgid "Duplicate relationship already exists" msgstr "" @@ -7449,340 +7662,352 @@ msgstr "" msgid "Number of results recorded against this template" msgstr "" -#: part/serializers.py:225 part/serializers.py:243 stock/serializers.py:616 +#: part/serializers.py:225 part/serializers.py:243 stock/serializers.py:643 msgid "Purchase currency of this stock item" msgstr "Waluta zakupu tego towaru" -#: part/serializers.py:291 +#: part/serializers.py:268 +msgid "Speculative Quantity" +msgstr "" + +#: part/serializers.py:277 +msgid "Model ID" +msgstr "" + +#: part/serializers.py:324 msgid "Number of parts using this template" msgstr "" -#: part/serializers.py:421 +#: part/serializers.py:465 msgid "No parts selected" msgstr "" -#: part/serializers.py:431 +#: part/serializers.py:475 msgid "Select category" msgstr "" -#: part/serializers.py:466 +#: part/serializers.py:510 msgid "Original Part" msgstr "" -#: part/serializers.py:467 +#: part/serializers.py:511 msgid "Select original part to duplicate" msgstr "" -#: part/serializers.py:472 +#: part/serializers.py:516 msgid "Copy Image" msgstr "Kopiuj obraz" -#: part/serializers.py:473 +#: part/serializers.py:517 msgid "Copy image from original part" msgstr "" -#: part/serializers.py:479 part/templates/part/detail.html:293 +#: part/serializers.py:523 part/templates/part/detail.html:293 msgid "Copy BOM" msgstr "Kopiuj BOM" -#: part/serializers.py:480 +#: part/serializers.py:524 msgid "Copy bill of materials from original part" msgstr "" -#: part/serializers.py:486 +#: part/serializers.py:530 msgid "Copy Parameters" msgstr "Kopiuj parametry" -#: part/serializers.py:487 +#: part/serializers.py:531 msgid "Copy parameter data from original part" msgstr "" -#: part/serializers.py:493 +#: part/serializers.py:537 msgid "Copy Notes" msgstr "" -#: part/serializers.py:494 +#: part/serializers.py:538 msgid "Copy notes from original part" msgstr "" -#: part/serializers.py:512 +#: part/serializers.py:556 msgid "Initial Stock Quantity" msgstr "" -#: part/serializers.py:514 +#: part/serializers.py:558 msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added." msgstr "" -#: part/serializers.py:521 +#: part/serializers.py:565 msgid "Initial Stock Location" msgstr "" -#: part/serializers.py:522 +#: part/serializers.py:566 msgid "Specify initial stock location for this Part" msgstr "" -#: part/serializers.py:539 +#: part/serializers.py:583 msgid "Select supplier (or leave blank to skip)" msgstr "" -#: part/serializers.py:555 +#: part/serializers.py:599 msgid "Select manufacturer (or leave blank to skip)" msgstr "" -#: part/serializers.py:565 +#: part/serializers.py:609 msgid "Manufacturer part number" msgstr "" -#: part/serializers.py:572 +#: part/serializers.py:616 msgid "Selected company is not a valid supplier" msgstr "" -#: part/serializers.py:581 +#: part/serializers.py:625 msgid "Selected company is not a valid manufacturer" msgstr "" -#: part/serializers.py:592 +#: part/serializers.py:636 msgid "Manufacturer part matching this MPN already exists" msgstr "" -#: part/serializers.py:599 +#: part/serializers.py:643 msgid "Supplier part matching this SKU already exists" msgstr "" -#: part/serializers.py:903 +#: part/serializers.py:955 msgid "Revisions" msgstr "" -#: part/serializers.py:908 +#: part/serializers.py:960 msgid "Unallocated Stock" msgstr "" -#: part/serializers.py:911 +#: part/serializers.py:963 msgid "Variant Stock" msgstr "" -#: part/serializers.py:941 part/templates/part/copy_part.html:9 +#: part/serializers.py:993 part/templates/part/copy_part.html:9 #: templates/js/translated/part.js:474 msgid "Duplicate Part" msgstr "Duplikuj część" -#: part/serializers.py:942 +#: part/serializers.py:994 msgid "Copy initial data from another Part" msgstr "" -#: part/serializers.py:948 templates/js/translated/part.js:103 +#: part/serializers.py:1000 templates/js/translated/part.js:103 msgid "Initial Stock" msgstr "" -#: part/serializers.py:949 +#: part/serializers.py:1001 msgid "Create Part with initial stock quantity" msgstr "" -#: part/serializers.py:955 +#: part/serializers.py:1007 msgid "Supplier Information" msgstr "" -#: part/serializers.py:956 +#: part/serializers.py:1008 msgid "Add initial supplier information for this part" msgstr "" -#: part/serializers.py:964 +#: part/serializers.py:1016 msgid "Copy Category Parameters" msgstr "" -#: part/serializers.py:965 +#: part/serializers.py:1017 msgid "Copy parameter templates from selected part category" msgstr "" -#: part/serializers.py:970 +#: part/serializers.py:1022 msgid "Existing Image" msgstr "" -#: part/serializers.py:971 +#: part/serializers.py:1023 msgid "Filename of an existing part image" msgstr "" -#: part/serializers.py:988 +#: part/serializers.py:1040 msgid "Image file does not exist" msgstr "" -#: part/serializers.py:1194 +#: part/serializers.py:1247 msgid "Limit stocktake report to a particular part, and any variant parts" msgstr "" -#: part/serializers.py:1204 +#: part/serializers.py:1257 msgid "Limit stocktake report to a particular part category, and any child categories" msgstr "" -#: part/serializers.py:1214 +#: part/serializers.py:1267 msgid "Limit stocktake report to a particular stock location, and any child locations" msgstr "" -#: part/serializers.py:1220 +#: part/serializers.py:1273 msgid "Exclude External Stock" msgstr "" -#: part/serializers.py:1221 +#: part/serializers.py:1274 msgid "Exclude stock items in external locations" msgstr "" -#: part/serializers.py:1226 +#: part/serializers.py:1279 msgid "Generate Report" msgstr "" -#: part/serializers.py:1227 +#: part/serializers.py:1280 msgid "Generate report file containing calculated stocktake data" msgstr "" -#: part/serializers.py:1232 +#: part/serializers.py:1285 msgid "Update Parts" msgstr "" -#: part/serializers.py:1233 +#: part/serializers.py:1286 msgid "Update specified parts with calculated stocktake data" msgstr "" -#: part/serializers.py:1241 +#: part/serializers.py:1294 msgid "Stocktake functionality is not enabled" msgstr "" -#: part/serializers.py:1347 +#: part/serializers.py:1299 +msgid "Background worker check failed" +msgstr "Sprawdzenie robotnika w tle nie powiodło się" + +#: part/serializers.py:1401 msgid "Override calculated value for minimum price" msgstr "" -#: part/serializers.py:1354 +#: part/serializers.py:1408 msgid "Minimum price currency" msgstr "" -#: part/serializers.py:1362 +#: part/serializers.py:1416 msgid "Override calculated value for maximum price" msgstr "" -#: part/serializers.py:1369 +#: part/serializers.py:1423 msgid "Maximum price currency" msgstr "" -#: part/serializers.py:1398 +#: part/serializers.py:1452 msgid "Update" msgstr "" -#: part/serializers.py:1399 +#: part/serializers.py:1453 msgid "Update pricing for this part" msgstr "" -#: part/serializers.py:1422 +#: part/serializers.py:1476 #, python-brace-format msgid "Could not convert from provided currencies to {default_currency}" msgstr "" -#: part/serializers.py:1429 +#: part/serializers.py:1483 msgid "Minimum price must not be greater than maximum price" msgstr "" -#: part/serializers.py:1432 +#: part/serializers.py:1486 msgid "Maximum price must not be less than minimum price" msgstr "" -#: part/serializers.py:1576 +#: part/serializers.py:1634 msgid "Select the parent assembly" msgstr "" -#: part/serializers.py:1585 +#: part/serializers.py:1643 msgid "Component Name" msgstr "" -#: part/serializers.py:1588 +#: part/serializers.py:1646 msgid "Component IPN" msgstr "" -#: part/serializers.py:1591 +#: part/serializers.py:1649 msgid "Component Description" msgstr "" -#: part/serializers.py:1597 +#: part/serializers.py:1655 msgid "Select the component part" msgstr "" -#: part/serializers.py:1606 part/templates/part/part_base.html:235 +#: part/serializers.py:1664 part/templates/part/part_base.html:243 #: templates/js/translated/bom.js:1219 msgid "Can Build" msgstr "" -#: part/serializers.py:1837 +#: part/serializers.py:1899 msgid "Select part to copy BOM from" msgstr "" -#: part/serializers.py:1845 +#: part/serializers.py:1907 msgid "Remove Existing Data" msgstr "Usuń istniejące dane" -#: part/serializers.py:1846 +#: part/serializers.py:1908 msgid "Remove existing BOM items before copying" msgstr "" -#: part/serializers.py:1851 +#: part/serializers.py:1913 msgid "Include Inherited" msgstr "" -#: part/serializers.py:1852 +#: part/serializers.py:1914 msgid "Include BOM items which are inherited from templated parts" msgstr "" -#: part/serializers.py:1857 +#: part/serializers.py:1919 msgid "Skip Invalid Rows" msgstr "Pomiń nieprawidłowe wiersze" -#: part/serializers.py:1858 +#: part/serializers.py:1920 msgid "Enable this option to skip invalid rows" msgstr "Włącz tę opcję, aby pominąć nieprawidłowe wiersze" -#: part/serializers.py:1863 +#: part/serializers.py:1925 msgid "Copy Substitute Parts" msgstr "" -#: part/serializers.py:1864 +#: part/serializers.py:1926 msgid "Copy substitute parts when duplicate BOM items" msgstr "" -#: part/serializers.py:1901 +#: part/serializers.py:1963 msgid "Clear Existing BOM" msgstr "Wyczyść istniejący BOM" -#: part/serializers.py:1902 +#: part/serializers.py:1964 msgid "Delete existing BOM items before uploading" msgstr "" -#: part/serializers.py:1934 +#: part/serializers.py:1996 msgid "No part column specified" msgstr "" -#: part/serializers.py:1978 +#: part/serializers.py:2040 msgid "Multiple matching parts found" msgstr "" -#: part/serializers.py:1981 +#: part/serializers.py:2043 msgid "No matching part found" msgstr "" -#: part/serializers.py:1984 +#: part/serializers.py:2045 msgid "Part is not designated as a component" msgstr "" -#: part/serializers.py:1993 +#: part/serializers.py:2054 msgid "Quantity not provided" msgstr "Nie podano ilości" -#: part/serializers.py:2001 +#: part/serializers.py:2062 msgid "Invalid quantity" msgstr "Nieprawidłowa ilość" -#: part/serializers.py:2024 +#: part/serializers.py:2085 msgid "At least one BOM item is required" msgstr "" #: part/stocktake.py:224 templates/js/translated/part.js:1073 #: templates/js/translated/part.js:1828 templates/js/translated/part.js:1884 -#: templates/js/translated/purchase_order.js:2154 +#: templates/js/translated/purchase_order.js:2138 msgid "Total Quantity" msgstr "" @@ -7932,9 +8157,9 @@ msgid "Add stocktake information" msgstr "" #: part/templates/part/detail.html:67 part/templates/part/part_sidebar.html:50 -#: stock/admin.py:255 templates/InvenTree/settings/part_stocktake.html:30 +#: stock/admin.py:256 templates/InvenTree/settings/part_stocktake.html:30 #: templates/InvenTree/settings/sidebar.html:53 -#: templates/js/translated/stock.js:2301 users/models.py:204 +#: templates/js/translated/stock.js:2302 users/models.py:204 msgid "Stocktake" msgstr "" @@ -8093,142 +8318,146 @@ msgstr "Wybierz format pliku" msgid "Part List" msgstr "Lista części" -#: part/templates/part/part_base.html:25 part/templates/part/part_base.html:29 +#: part/templates/part/part_base.html:26 part/templates/part/part_base.html:30 msgid "You are subscribed to notifications for this part" msgstr "Masz włączone powiadomienia dla tej części" -#: part/templates/part/part_base.html:33 +#: part/templates/part/part_base.html:34 msgid "Subscribe to notifications for this part" msgstr "Włącz powiadomienia dla tej części" -#: part/templates/part/part_base.html:52 +#: part/templates/part/part_base.html:53 #: stock/templates/stock/item_base.html:62 -#: stock/templates/stock/location.html:71 templates/js/translated/label.js:136 +#: stock/templates/stock/location.html:72 templates/js/translated/label.js:136 msgid "Print Label" msgstr "Drukuj etykietę" -#: part/templates/part/part_base.html:58 +#: part/templates/part/part_base.html:59 msgid "Show pricing information" msgstr "Pokaż informacje o cenach" -#: part/templates/part/part_base.html:63 -#: stock/templates/stock/item_base.html:110 -#: stock/templates/stock/location.html:80 +#: part/templates/part/part_base.html:64 +#: stock/templates/stock/item_base.html:107 +#: stock/templates/stock/location.html:81 msgid "Stock actions" msgstr "Akcje magazynowe" -#: part/templates/part/part_base.html:70 +#: part/templates/part/part_base.html:71 msgid "Count part stock" msgstr "" -#: part/templates/part/part_base.html:76 +#: part/templates/part/part_base.html:77 msgid "Transfer part stock" msgstr "" -#: part/templates/part/part_base.html:91 templates/js/translated/part.js:2299 +#: part/templates/part/part_base.html:92 templates/js/translated/part.js:2299 msgid "Part actions" msgstr "" -#: part/templates/part/part_base.html:94 +#: part/templates/part/part_base.html:95 msgid "Duplicate part" msgstr "Duplikuj część" -#: part/templates/part/part_base.html:97 +#: part/templates/part/part_base.html:98 msgid "Edit part" msgstr "Edytuj część" -#: part/templates/part/part_base.html:100 +#: part/templates/part/part_base.html:101 msgid "Delete part" msgstr "Usuń część" -#: part/templates/part/part_base.html:119 +#: part/templates/part/part_base.html:120 msgid "Part is a template part (variants can be made from this part)" msgstr "" -#: part/templates/part/part_base.html:123 +#: part/templates/part/part_base.html:124 msgid "Part can be assembled from other parts" msgstr "" -#: part/templates/part/part_base.html:127 +#: part/templates/part/part_base.html:128 msgid "Part can be used in assemblies" msgstr "" -#: part/templates/part/part_base.html:131 +#: part/templates/part/part_base.html:132 msgid "Part stock is tracked by serial number" msgstr "" -#: part/templates/part/part_base.html:135 +#: part/templates/part/part_base.html:136 msgid "Part can be purchased from external suppliers" msgstr "" -#: part/templates/part/part_base.html:139 +#: part/templates/part/part_base.html:140 msgid "Part can be sold to customers" msgstr "" -#: part/templates/part/part_base.html:145 +#: part/templates/part/part_base.html:146 msgid "Part is not active" msgstr "" -#: part/templates/part/part_base.html:153 +#: part/templates/part/part_base.html:154 msgid "Part is virtual (not a physical part)" msgstr "Część jest wirtualna (nie fizyczna)" -#: part/templates/part/part_base.html:163 -#: part/templates/part/part_base.html:690 +#: part/templates/part/part_base.html:164 +#: part/templates/part/part_base.html:698 msgid "Show Part Details" msgstr "" #: part/templates/part/part_base.html:218 -#: stock/templates/stock/item_base.html:388 +msgid "Required for Orders" +msgstr "" + +#: part/templates/part/part_base.html:226 +#: stock/templates/stock/item_base.html:385 msgid "Allocated to Build Orders" msgstr "" -#: part/templates/part/part_base.html:227 -#: stock/templates/stock/item_base.html:381 +#: part/templates/part/part_base.html:235 +#: stock/templates/stock/item_base.html:378 msgid "Allocated to Sales Orders" msgstr "Przypisane do zamówień sprzedaży" -#: part/templates/part/part_base.html:300 +#: part/templates/part/part_base.html:308 msgid "Minimum stock level" msgstr "Minimalny poziom stanu magazynowego" -#: part/templates/part/part_base.html:331 templates/js/translated/bom.js:1071 +#: part/templates/part/part_base.html:339 templates/js/translated/bom.js:1071 #: templates/js/translated/part.js:1271 templates/js/translated/part.js:2463 #: templates/js/translated/pricing.js:391 -#: templates/js/translated/pricing.js:1054 +#: templates/js/translated/pricing.js:1052 msgid "Price Range" msgstr "" -#: part/templates/part/part_base.html:361 +#: part/templates/part/part_base.html:369 msgid "Latest Serial Number" msgstr "Ostatni numer seryjny" -#: part/templates/part/part_base.html:365 -#: stock/templates/stock/item_base.html:322 +#: part/templates/part/part_base.html:373 +#: stock/templates/stock/item_base.html:319 msgid "Search for serial number" msgstr "Szukaj numeru seryjnego" -#: part/templates/part/part_base.html:453 +#: part/templates/part/part_base.html:461 msgid "Part QR Code" msgstr "" -#: part/templates/part/part_base.html:470 +#: part/templates/part/part_base.html:478 msgid "Link Barcode to Part" msgstr "" -#: part/templates/part/part_base.html:520 +#: part/templates/part/part_base.html:528 msgid "Calculate" msgstr "" -#: part/templates/part/part_base.html:537 +#: part/templates/part/part_base.html:545 msgid "Remove associated image from this part" msgstr "" -#: part/templates/part/part_base.html:588 +#: part/templates/part/part_base.html:596 msgid "No matching images found" msgstr "" -#: part/templates/part/part_base.html:684 +#: part/templates/part/part_base.html:692 msgid "Hide Part Details" msgstr "" @@ -8282,13 +8511,13 @@ msgid "Variants" msgstr "Warianty" #: part/templates/part/part_sidebar.html:14 -#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:21 +#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:22 #: stock/templates/stock/stock_app_base.html:10 #: templates/InvenTree/search.html:153 #: templates/InvenTree/settings/sidebar.html:51 #: templates/js/translated/part.js:1249 templates/js/translated/part.js:2152 #: templates/js/translated/part.js:2411 templates/js/translated/stock.js:1066 -#: templates/js/translated/stock.js:2155 templates/navbar.html:31 +#: templates/js/translated/stock.js:2156 templates/navbar.html:31 msgid "Stock" msgstr "Stan" @@ -8324,17 +8553,17 @@ msgstr "" #: part/templates/part/prices.html:18 #: templates/InvenTree/settings/settings_staff_js.html:80 #: templates/InvenTree/settings/user.html:24 -#: templates/js/translated/helpers.js:103 +#: templates/js/translated/helpers.js:104 #: templates/js/translated/pricing.js:628 templates/notes_buttons.html:3 #: templates/notes_buttons.html:4 msgid "Edit" msgstr "" -#: part/templates/part/prices.html:28 stock/admin.py:251 -#: stock/templates/stock/item_base.html:446 -#: templates/js/translated/company.js:1703 -#: templates/js/translated/company.js:1713 -#: templates/js/translated/stock.js:2331 +#: part/templates/part/prices.html:28 stock/admin.py:252 +#: stock/templates/stock/item_base.html:443 +#: templates/js/translated/company.js:1704 +#: templates/js/translated/company.js:1714 +#: templates/js/translated/stock.js:2332 msgid "Last Updated" msgstr "Ostatnia aktualizacja" @@ -8406,7 +8635,7 @@ msgid "Update Pricing" msgstr "" #: part/templates/part/stock_count.html:7 -#: templates/js/translated/model_renderers.js:228 +#: templates/js/translated/model_renderers.js:231 #: templates/js/translated/part.js:707 templates/js/translated/part.js:2147 #: templates/js/translated/part.js:2149 msgid "No Stock" @@ -8486,7 +8715,7 @@ msgstr "Nie znaleziono obrazka części" msgid "Part Pricing" msgstr "Cennik części" -#: plugin/api.py:172 +#: plugin/api.py:175 msgid "Plugin cannot be deleted as it is currently active" msgstr "" @@ -8498,78 +8727,85 @@ msgstr "Nie określono działania" msgid "No matching action found" msgstr "Nie znaleziono pasującej akcji" -#: plugin/base/barcodes/api.py:125 plugin/base/barcodes/api.py:371 -#: plugin/base/barcodes/api.py:546 +#: plugin/base/barcodes/api.py:203 msgid "No match found for barcode data" msgstr "Nie znaleziono wyników dla danych kodu kreskowego" -#: plugin/base/barcodes/api.py:129 +#: plugin/base/barcodes/api.py:207 msgid "Match found for barcode data" msgstr "Znaleziono wyniki dla danych kodu kreskowego" -#: plugin/base/barcodes/api.py:163 plugin/base/barcodes/serializers.py:45 +#: plugin/base/barcodes/api.py:245 plugin/base/barcodes/serializers.py:72 msgid "Model is not supported" msgstr "" -#: plugin/base/barcodes/api.py:168 +#: plugin/base/barcodes/api.py:250 msgid "Model instance not found" msgstr "" -#: plugin/base/barcodes/api.py:197 -#: templates/js/translated/purchase_order.js:1468 +#: plugin/base/barcodes/api.py:279 +#: templates/js/translated/purchase_order.js:1452 msgid "Barcode matches existing item" msgstr "Kod kreskowy pasuje do istniejącego elementu" -#: plugin/base/barcodes/api.py:336 +#: plugin/base/barcodes/api.py:418 msgid "No matching part data found" msgstr "" -#: plugin/base/barcodes/api.py:353 +#: plugin/base/barcodes/api.py:434 msgid "No matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:357 +#: plugin/base/barcodes/api.py:437 msgid "Multiple matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:381 +#: plugin/base/barcodes/api.py:450 plugin/base/barcodes/api.py:664 +msgid "No matching plugin found for barcode data" +msgstr "" + +#: plugin/base/barcodes/api.py:460 msgid "Matched supplier part" msgstr "" -#: plugin/base/barcodes/api.py:430 +#: plugin/base/barcodes/api.py:525 msgid "Item has already been received" msgstr "" -#: plugin/base/barcodes/api.py:467 +#: plugin/base/barcodes/api.py:563 msgid "No match for supplier barcode" msgstr "Brak dopasowania dla kodu kreskowego dostawcy" -#: plugin/base/barcodes/api.py:510 +#: plugin/base/barcodes/api.py:612 msgid "Multiple matching line items found" msgstr "" -#: plugin/base/barcodes/api.py:513 +#: plugin/base/barcodes/api.py:615 msgid "No matching line item found" msgstr "" -#: plugin/base/barcodes/api.py:551 plugin/base/barcodes/api.py:558 +#: plugin/base/barcodes/api.py:661 +msgid "No sales order provided" +msgstr "" + +#: plugin/base/barcodes/api.py:670 msgid "Barcode does not match an existing stock item" msgstr "Kod kreskowy nie pasuje do istniejących pozycji magazynowych" -#: plugin/base/barcodes/api.py:569 +#: plugin/base/barcodes/api.py:686 msgid "Stock item does not match line item" msgstr "" -#: plugin/base/barcodes/api.py:593 templates/js/translated/build.js:2780 -#: templates/js/translated/sales_order.js:1953 +#: plugin/base/barcodes/api.py:716 templates/js/translated/build.js:2798 +#: templates/js/translated/sales_order.js:1934 msgid "Insufficient stock available" msgstr "" -#: plugin/base/barcodes/api.py:602 +#: plugin/base/barcodes/api.py:729 msgid "Stock item allocated to sales order" msgstr "" -#: plugin/base/barcodes/api.py:606 +#: plugin/base/barcodes/api.py:732 msgid "Not enough information" msgstr "" @@ -8591,75 +8827,75 @@ msgstr "Nie znaleziono pasującego zlecenia zakupu dla '{order}'" msgid "Purchase order does not match supplier" msgstr "Zlecenie zakupu nie pasuje do dostawcy" -#: plugin/base/barcodes/mixins.py:465 +#: plugin/base/barcodes/mixins.py:467 msgid "Failed to find pending line item for supplier part" msgstr "Nie znaleziono pozycji oczekującej dla części od dostawcy" -#: plugin/base/barcodes/mixins.py:496 +#: plugin/base/barcodes/mixins.py:498 msgid "Further information required to receive line item" msgstr "Dalsze informacje wymagane do odbioru pozycji" -#: plugin/base/barcodes/mixins.py:504 +#: plugin/base/barcodes/mixins.py:506 msgid "Received purchase order line item" msgstr "Otrzymana pozycja zlecenia zakupu" -#: plugin/base/barcodes/serializers.py:21 +#: plugin/base/barcodes/serializers.py:48 msgid "Scanned barcode data" msgstr "" -#: plugin/base/barcodes/serializers.py:30 +#: plugin/base/barcodes/serializers.py:57 msgid "Model name to generate barcode for" msgstr "" -#: plugin/base/barcodes/serializers.py:35 +#: plugin/base/barcodes/serializers.py:62 msgid "Primary key of model object to generate barcode for" msgstr "" -#: plugin/base/barcodes/serializers.py:105 +#: plugin/base/barcodes/serializers.py:132 msgid "Purchase Order to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:111 +#: plugin/base/barcodes/serializers.py:138 msgid "Purchase order is not pending" msgstr "Zlecenie zakupu nie jest oczekujące" -#: plugin/base/barcodes/serializers.py:129 +#: plugin/base/barcodes/serializers.py:156 msgid "PurchaseOrder to receive items against" msgstr "" -#: plugin/base/barcodes/serializers.py:135 +#: plugin/base/barcodes/serializers.py:162 msgid "Purchase order has not been placed" msgstr "Zlecenie zakupu nie zostało złożone" -#: plugin/base/barcodes/serializers.py:143 +#: plugin/base/barcodes/serializers.py:170 msgid "Location to receive items into" msgstr "" -#: plugin/base/barcodes/serializers.py:149 +#: plugin/base/barcodes/serializers.py:176 msgid "Cannot select a structural location" msgstr "" -#: plugin/base/barcodes/serializers.py:163 +#: plugin/base/barcodes/serializers.py:190 msgid "Sales Order to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:169 +#: plugin/base/barcodes/serializers.py:196 msgid "Sales order is not pending" msgstr "" -#: plugin/base/barcodes/serializers.py:177 +#: plugin/base/barcodes/serializers.py:204 msgid "Sales order line item to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:184 +#: plugin/base/barcodes/serializers.py:211 msgid "Sales order shipment to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:190 +#: plugin/base/barcodes/serializers.py:217 msgid "Shipment has already been delivered" msgstr "" -#: plugin/base/barcodes/serializers.py:195 +#: plugin/base/barcodes/serializers.py:222 msgid "Quantity to allocate" msgstr "" @@ -8679,6 +8915,42 @@ msgstr "" msgid "No items provided to print" msgstr "" +#: plugin/base/ui/serializers.py:30 +msgid "Plugin Name" +msgstr "" + +#: plugin/base/ui/serializers.py:34 +msgid "Feature Type" +msgstr "" + +#: plugin/base/ui/serializers.py:39 +msgid "Feature Label" +msgstr "" + +#: plugin/base/ui/serializers.py:44 +msgid "Feature Title" +msgstr "" + +#: plugin/base/ui/serializers.py:49 +msgid "Feature Description" +msgstr "" + +#: plugin/base/ui/serializers.py:54 +msgid "Feature Icon" +msgstr "" + +#: plugin/base/ui/serializers.py:58 +msgid "Feature Options" +msgstr "" + +#: plugin/base/ui/serializers.py:61 +msgid "Feature Context" +msgstr "" + +#: plugin/base/ui/serializers.py:64 +msgid "Feature Source (javascript)" +msgstr "" + #: plugin/builtin/barcodes/inventree_barcode.py:27 msgid "InvenTree Barcodes" msgstr "" @@ -8756,7 +9028,7 @@ msgstr "" msgid "URL that is used to send messages to a slack channel" msgstr "" -#: plugin/builtin/integration/core_notifications.py:164 +#: plugin/builtin/integration/core_notifications.py:166 msgid "Open link" msgstr "" @@ -8794,11 +9066,11 @@ msgstr "" msgid "Provides support for printing using a machine" msgstr "" -#: plugin/builtin/labels/inventree_machine.py:149 +#: plugin/builtin/labels/inventree_machine.py:151 msgid "last used" msgstr "" -#: plugin/builtin/labels/inventree_machine.py:166 +#: plugin/builtin/labels/inventree_machine.py:168 msgid "Options" msgstr "" @@ -8822,7 +9094,7 @@ msgstr "" msgid "Print a border around each label" msgstr "" -#: plugin/builtin/labels/label_sheet.py:47 report/models.py:307 +#: plugin/builtin/labels/label_sheet.py:47 report/models.py:315 msgid "Landscape" msgstr "" @@ -8894,19 +9166,19 @@ msgstr "" msgid "The Supplier which acts as 'TME'" msgstr "" -#: plugin/installer.py:194 plugin/installer.py:282 +#: plugin/installer.py:199 plugin/installer.py:282 msgid "Only staff users can administer plugins" msgstr "" -#: plugin/installer.py:197 +#: plugin/installer.py:202 msgid "Plugin installation is disabled" msgstr "" -#: plugin/installer.py:248 +#: plugin/installer.py:246 msgid "Installed plugin successfully" msgstr "" -#: plugin/installer.py:254 +#: plugin/installer.py:251 #, python-brace-format msgid "Installed plugin into {path}" msgstr "" @@ -8943,10 +9215,6 @@ msgstr "Konfiguracja wtyczki" msgid "Plugin Configurations" msgstr "Konfiguracja wtyczek" -#: plugin/models.py:43 users/models.py:100 -msgid "Key" -msgstr "Klucz" - #: plugin/models.py:44 msgid "Key of plugin" msgstr "Klucz wtyczki" @@ -8955,7 +9223,7 @@ msgstr "Klucz wtyczki" msgid "PluginName of the plugin" msgstr "Nazwa wtyczki" -#: plugin/models.py:59 plugin/serializers.py:90 +#: plugin/models.py:59 plugin/serializers.py:115 msgid "Package Name" msgstr "Nazwa pakietu" @@ -8984,17 +9252,17 @@ msgstr "Wtyczka wbudowana" msgid "Package Plugin" msgstr "" -#: plugin/models.py:220 report/models.py:474 +#: plugin/models.py:259 report/models.py:482 #: templates/InvenTree/settings/plugin_settings.html:9 #: templates/js/translated/plugin.js:51 msgid "Plugin" msgstr "Wtyczka" -#: plugin/models.py:267 +#: plugin/models.py:306 msgid "Method" msgstr "Metoda" -#: plugin/plugin.py:270 +#: plugin/plugin.py:275 msgid "No author found" msgstr "Nie znaleziono autora" @@ -9053,81 +9321,157 @@ msgstr "" msgid "InvenTree Contributors" msgstr "" -#: plugin/serializers.py:81 +#: plugin/samples/integration/user_interface_sample.py:27 +msgid "Enable Part Panels" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:28 +msgid "Enable custom panels for Part views" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:33 +msgid "Enable Purchase Order Panels" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:34 +msgid "Enable custom panels for Purchase Order views" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:39 +msgid "Enable Broken Panels" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:40 +msgid "Enable broken panels for testing" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:45 +msgid "Enable Dynamic Panel" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:46 +msgid "Enable dynamic panels for testing" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:98 +msgid "Part Panel" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:131 +msgid "Broken Dashboard Item" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:133 +msgid "This is a broken dashboard item - it will not render!" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:139 +msgid "Sample Dashboard Item" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:141 +msgid "This is a sample dashboard item. It renders a simple string of HTML content." +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:147 +msgid "Context Dashboard Item" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:161 +msgid "Admin Dashboard Item" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:162 +msgid "This is an admin-only dashboard item." +msgstr "" + +#: plugin/serializers.py:82 +msgid "Source File" +msgstr "" + +#: plugin/serializers.py:83 +msgid "Path to the source file for admin integration" +msgstr "" + +#: plugin/serializers.py:90 +msgid "Optional context data for the admin integration" +msgstr "" + +#: plugin/serializers.py:106 msgid "Source URL" msgstr "Źródłowy adres URL" -#: plugin/serializers.py:83 +#: plugin/serializers.py:108 msgid "Source for the package - this can be a custom registry or a VCS path" msgstr "Źródło pakietu - może to być niestandardowy rejestr lub ścieżka VCS" -#: plugin/serializers.py:92 +#: plugin/serializers.py:117 msgid "Name for the Plugin Package - can also contain a version indicator" msgstr "Nazwa pakietu wtyczki - może również zawierać wskaźnik wersji" -#: plugin/serializers.py:99 +#: plugin/serializers.py:124 #: templates/InvenTree/settings/plugin_settings.html:42 #: templates/js/translated/plugin.js:86 msgid "Version" msgstr "Wersja" -#: plugin/serializers.py:101 +#: plugin/serializers.py:126 msgid "Version specifier for the plugin. Leave blank for latest version." msgstr "" -#: plugin/serializers.py:106 +#: plugin/serializers.py:131 msgid "Confirm plugin installation" msgstr "Potwierdź instalację wtyczki" -#: plugin/serializers.py:108 +#: plugin/serializers.py:133 msgid "This will install this plugin now into the current instance. The instance will go into maintenance." msgstr "Spowoduje to zainstalowanie tej wtyczki w bieżącej instancji. Instancja przejdzie do trybu konserwacji." -#: plugin/serializers.py:121 +#: plugin/serializers.py:146 msgid "Installation not confirmed" msgstr "Instalacja nie została potwierdzona" -#: plugin/serializers.py:123 +#: plugin/serializers.py:148 msgid "Either packagename of URL must be provided" msgstr "" -#: plugin/serializers.py:161 +#: plugin/serializers.py:184 msgid "Full reload" msgstr "Pełne przeładowanie" -#: plugin/serializers.py:162 +#: plugin/serializers.py:185 msgid "Perform a full reload of the plugin registry" msgstr "Wykonaj pełne przeładowanie rejestru wtyczek" -#: plugin/serializers.py:168 +#: plugin/serializers.py:191 msgid "Force reload" msgstr "Wymuś przeładowanie" -#: plugin/serializers.py:170 +#: plugin/serializers.py:193 msgid "Force a reload of the plugin registry, even if it is already loaded" msgstr "Wymuś przeładowanie rejestru wtyczek, nawet jeśli jest już załadowany" -#: plugin/serializers.py:177 +#: plugin/serializers.py:200 msgid "Collect plugins" msgstr "Zbierz wtyczki" -#: plugin/serializers.py:178 +#: plugin/serializers.py:201 msgid "Collect plugins and add them to the registry" msgstr "Zbierz wtyczki i dodaj je do rejestru" -#: plugin/serializers.py:205 +#: plugin/serializers.py:228 msgid "Activate Plugin" msgstr "Aktywuj wtyczkę" -#: plugin/serializers.py:206 +#: plugin/serializers.py:229 msgid "Activate this plugin" msgstr "Aktywuj tę wtyczkę" -#: plugin/serializers.py:226 +#: plugin/serializers.py:249 msgid "Delete configuration" msgstr "" -#: plugin/serializers.py:227 +#: plugin/serializers.py:250 msgid "Delete the plugin configuration from the database" msgstr "" @@ -9135,11 +9479,11 @@ msgstr "" msgid "No valid objects provided to template" msgstr "Brak prawidłowych obiektów do szablonu" -#: report/api.py:103 report/models.py:438 report/serializers.py:98 -#: report/serializers.py:148 templates/js/translated/purchase_order.js:1817 +#: report/api.py:103 report/models.py:446 report/serializers.py:99 +#: report/serializers.py:149 templates/js/translated/purchase_order.js:1801 #: templates/js/translated/return_order.js:353 -#: templates/js/translated/sales_order.js:887 -#: templates/js/translated/sales_order.js:1047 +#: templates/js/translated/sales_order.js:846 +#: templates/js/translated/sales_order.js:1020 msgid "Items" msgstr "" @@ -9167,7 +9511,11 @@ msgstr "" msgid "Error printing label" msgstr "" -#: report/api.py:375 report/api.py:411 +#: report/api.py:358 +msgid "Report saved at time of printing" +msgstr "" + +#: report/api.py:384 report/api.py:420 #, python-brace-format msgid "Template file '{template}' is missing or does not exist" msgstr "Plik szablonu '{template}' jest brakujący lub nie istnieje" @@ -9204,135 +9552,143 @@ msgstr "" msgid "Revision number (auto-increments)" msgstr "" -#: report/models.py:202 +#: report/models.py:168 +msgid "Attach to Model on Print" +msgstr "" + +#: report/models.py:170 +msgid "Save report output as an attachment against linked model instance when printing" +msgstr "" + +#: report/models.py:210 msgid "Filename Pattern" msgstr "Wzór nazwy pliku" -#: report/models.py:203 +#: report/models.py:211 msgid "Pattern for generating filenames" msgstr "" -#: report/models.py:208 +#: report/models.py:216 msgid "Template is enabled" msgstr "" -#: report/models.py:214 +#: report/models.py:222 msgid "Target model type for template" msgstr "" -#: report/models.py:234 +#: report/models.py:242 msgid "Filters" msgstr "Filtry" -#: report/models.py:235 +#: report/models.py:243 msgid "Template query filters (comma-separated list of key=value pairs)" msgstr "" -#: report/models.py:294 report/models.py:361 +#: report/models.py:302 report/models.py:369 msgid "Template file" msgstr "" -#: report/models.py:302 +#: report/models.py:310 msgid "Page size for PDF reports" msgstr "Domyślna wielkość strony dla raportów PDF" -#: report/models.py:308 +#: report/models.py:316 msgid "Render report in landscape orientation" msgstr "Renderuj raport w orientacji poziomej" -#: report/models.py:367 +#: report/models.py:375 msgid "Width [mm]" msgstr "Szerokość [mm]" -#: report/models.py:368 +#: report/models.py:376 msgid "Label width, specified in mm" msgstr "" -#: report/models.py:374 +#: report/models.py:382 msgid "Height [mm]" msgstr "Wysokość [mm]" -#: report/models.py:375 +#: report/models.py:383 msgid "Label height, specified in mm" msgstr "" -#: report/models.py:438 +#: report/models.py:446 msgid "Number of items to process" msgstr "" -#: report/models.py:444 +#: report/models.py:452 msgid "Report generation is complete" msgstr "" -#: report/models.py:448 templates/js/translated/build.js:2349 +#: report/models.py:456 templates/js/translated/build.js:2352 msgid "Progress" msgstr "" -#: report/models.py:448 +#: report/models.py:456 msgid "Report generation progress" msgstr "" -#: report/models.py:456 +#: report/models.py:464 msgid "Report Template" msgstr "" -#: report/models.py:463 report/models.py:486 +#: report/models.py:471 report/models.py:494 msgid "Output File" msgstr "" -#: report/models.py:464 report/models.py:487 +#: report/models.py:472 report/models.py:495 msgid "Generated output file" msgstr "" -#: report/models.py:475 +#: report/models.py:483 msgid "Label output plugin" msgstr "" -#: report/models.py:479 +#: report/models.py:487 msgid "Label Template" msgstr "" -#: report/models.py:502 +#: report/models.py:510 msgid "Snippet" msgstr "Wycinek" -#: report/models.py:503 +#: report/models.py:511 msgid "Report snippet file" msgstr "" -#: report/models.py:510 +#: report/models.py:518 msgid "Snippet file description" msgstr "" -#: report/models.py:528 +#: report/models.py:536 msgid "Asset" msgstr "" -#: report/models.py:529 +#: report/models.py:537 msgid "Report asset file" msgstr "" -#: report/models.py:536 +#: report/models.py:544 msgid "Asset file description" msgstr "" -#: report/serializers.py:91 +#: report/serializers.py:92 msgid "Select report template" msgstr "" -#: report/serializers.py:99 report/serializers.py:149 +#: report/serializers.py:100 report/serializers.py:150 msgid "List of item primary keys to include in the report" msgstr "" -#: report/serializers.py:132 +#: report/serializers.py:133 msgid "Select label template" msgstr "" -#: report/serializers.py:140 +#: report/serializers.py:141 msgid "Printing Plugin" msgstr "" -#: report/serializers.py:141 +#: report/serializers.py:142 msgid "Select plugin to use for label printing" msgstr "" @@ -9365,9 +9721,9 @@ msgstr "" #: report/templates/report/inventree_sales_order_report.html:30 #: templates/js/translated/order.js:341 templates/js/translated/pricing.js:527 #: templates/js/translated/pricing.js:596 -#: templates/js/translated/pricing.js:834 -#: templates/js/translated/purchase_order.js:2185 -#: templates/js/translated/sales_order.js:1873 +#: templates/js/translated/pricing.js:832 +#: templates/js/translated/purchase_order.js:2169 +#: templates/js/translated/sales_order.js:1854 msgid "Unit Price" msgstr "Cena jednostkowa" @@ -9379,13 +9735,18 @@ msgstr "" #: report/templates/report/inventree_purchase_order_report.html:72 #: report/templates/report/inventree_sales_order_report.html:72 -#: templates/js/translated/purchase_order.js:2087 -#: templates/js/translated/sales_order.js:1842 +#: templates/js/translated/purchase_order.js:2071 +#: templates/js/translated/sales_order.js:1823 #: templates/test_statistics_table.html:8 #: templates/test_statistics_table.html:19 msgid "Total" msgstr "Razem" +#: report/templates/report/inventree_sales_order_shipment_report.html:23 +#: stock/templates/stock/stock_sidebar.html:8 +msgid "Allocations" +msgstr "" + #: report/templates/report/inventree_stock_location_report.html:97 msgid "Stock location items" msgstr "" @@ -9403,15 +9764,13 @@ msgstr "" msgid "Test" msgstr "" -#: report/templates/report/inventree_test_report.html:103 stock/models.py:2544 -msgid "Result" -msgstr "Wynik" - #: report/templates/report/inventree_test_report.html:129 +#: templates/js/translated/stock.js:1448 msgid "Pass" msgstr "Zaliczone" #: report/templates/report/inventree_test_report.html:131 +#: templates/js/translated/stock.js:1450 msgid "Fail" msgstr "Niezaliczone" @@ -9420,17 +9779,18 @@ msgid "No result (required)" msgstr "" #: report/templates/report/inventree_test_report.html:140 +#: templates/js/translated/stock.js:1455 msgid "No result" msgstr "" #: report/templates/report/inventree_test_report.html:153 -#: stock/serializers.py:599 stock/templates/stock/stock_sidebar.html:16 +#: stock/serializers.py:626 stock/templates/stock/stock_sidebar.html:16 msgid "Installed Items" msgstr "Zainstalowane elementy" -#: report/templates/report/inventree_test_report.html:167 stock/admin.py:161 +#: report/templates/report/inventree_test_report.html:167 stock/admin.py:162 #: templates/js/translated/stock.js:706 templates/js/translated/stock.js:877 -#: templates/js/translated/stock.js:3194 +#: templates/js/translated/stock.js:3195 msgid "Serial" msgstr "Numer seryjny" @@ -9450,67 +9810,67 @@ msgstr "" msgid "company_image tag requires a Company instance" msgstr "" -#: stock/admin.py:51 stock/admin.py:171 +#: stock/admin.py:51 stock/admin.py:172 msgid "Location ID" msgstr "ID lokalizacji" -#: stock/admin.py:63 stock/templates/stock/location.html:128 -#: stock/templates/stock/location.html:134 +#: stock/admin.py:63 stock/templates/stock/location.html:129 +#: stock/templates/stock/location.html:135 msgid "Location Path" msgstr "Ścieżka lokalizacji" -#: stock/admin.py:148 +#: stock/admin.py:149 msgid "Stock Item ID" msgstr "" -#: stock/admin.py:167 +#: stock/admin.py:168 msgid "Status Code" msgstr "" -#: stock/admin.py:179 +#: stock/admin.py:180 msgid "Supplier Part ID" msgstr "ID części dostawcy" -#: stock/admin.py:184 +#: stock/admin.py:185 msgid "Supplier Part SKU" msgstr "" -#: stock/admin.py:189 +#: stock/admin.py:190 msgid "Supplier ID" msgstr "" -#: stock/admin.py:200 +#: stock/admin.py:201 msgid "Customer ID" msgstr "" -#: stock/admin.py:205 stock/models.py:825 -#: stock/templates/stock/item_base.html:354 +#: stock/admin.py:206 stock/models.py:902 +#: stock/templates/stock/item_base.html:351 msgid "Installed In" msgstr "Zainstalowane w" -#: stock/admin.py:210 +#: stock/admin.py:211 msgid "Build ID" msgstr "" -#: stock/admin.py:220 +#: stock/admin.py:221 msgid "Sales Order ID" msgstr "" -#: stock/admin.py:225 +#: stock/admin.py:226 msgid "Purchase Order ID" msgstr "ID zlecenia zakupu" -#: stock/admin.py:240 +#: stock/admin.py:241 msgid "Review Needed" msgstr "" -#: stock/admin.py:245 +#: stock/admin.py:246 msgid "Delete on Deplete" msgstr "" -#: stock/admin.py:260 stock/models.py:919 -#: stock/templates/stock/item_base.html:433 -#: templates/js/translated/stock.js:2315 users/models.py:124 +#: stock/admin.py:261 stock/models.py:996 +#: stock/templates/stock/item_base.html:430 +#: templates/js/translated/stock.js:2316 users/models.py:124 msgid "Expiry Date" msgstr "Data ważności" @@ -9526,11 +9886,11 @@ msgstr "" msgid "Include sub-locations in filtered results" msgstr "" -#: stock/api.py:367 stock/serializers.py:1186 +#: stock/api.py:366 stock/serializers.py:1217 msgid "Parent Location" msgstr "" -#: stock/api.py:368 +#: stock/api.py:367 msgid "Filter by parent location" msgstr "" @@ -9550,8 +9910,8 @@ msgstr "" msgid "Expiry date after" msgstr "" -#: stock/api.py:840 stock/serializers.py:604 -#: stock/templates/stock/item_base.html:439 +#: stock/api.py:840 stock/serializers.py:631 +#: stock/templates/stock/item_base.html:436 #: templates/js/translated/table_filters.js:448 msgid "Stale" msgstr "" @@ -9560,594 +9920,598 @@ msgstr "" msgid "Quantity is required" msgstr "" -#: stock/api.py:933 +#: stock/api.py:932 msgid "Valid part must be supplied" msgstr "" -#: stock/api.py:964 +#: stock/api.py:959 msgid "The given supplier part does not exist" msgstr "" -#: stock/api.py:974 +#: stock/api.py:969 msgid "The supplier part has a pack size defined, but flag use_pack_size not set" msgstr "" -#: stock/api.py:1005 +#: stock/api.py:996 msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "" -#: stock/models.py:64 +#: stock/models.py:70 msgid "Stock Location type" msgstr "" -#: stock/models.py:65 +#: stock/models.py:71 msgid "Stock Location types" msgstr "" -#: stock/models.py:91 +#: stock/models.py:97 msgid "Default icon for all locations that have no icon set (optional)" msgstr "" -#: stock/models.py:131 stock/models.py:807 -#: stock/templates/stock/location.html:17 +#: stock/models.py:137 stock/models.py:884 +#: stock/templates/stock/location.html:18 #: stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "" -#: stock/models.py:132 stock/templates/stock/location.html:183 +#: stock/models.py:138 stock/templates/stock/location.html:184 #: templates/InvenTree/search.html:166 templates/js/translated/search.js:178 #: users/models.py:205 msgid "Stock Locations" msgstr "Lokacje stanu magazynowego" -#: stock/models.py:180 stock/models.py:968 -#: stock/templates/stock/item_base.html:247 +#: stock/models.py:186 stock/models.py:1045 +#: stock/templates/stock/item_base.html:244 msgid "Owner" msgstr "Właściciel" -#: stock/models.py:181 stock/models.py:969 +#: stock/models.py:187 stock/models.py:1046 msgid "Select Owner" msgstr "Wybierz właściciela" -#: stock/models.py:189 +#: stock/models.py:195 msgid "Stock items may not be directly located into a structural stock locations, but may be located to child locations." msgstr "" -#: stock/models.py:196 templates/js/translated/stock.js:2865 +#: stock/models.py:202 templates/js/translated/stock.js:2866 #: templates/js/translated/table_filters.js:250 msgid "External" msgstr "" -#: stock/models.py:197 +#: stock/models.py:203 msgid "This is an external stock location" msgstr "" -#: stock/models.py:203 templates/js/translated/stock.js:2874 +#: stock/models.py:209 templates/js/translated/stock.js:2875 #: templates/js/translated/table_filters.js:253 msgid "Location type" msgstr "" -#: stock/models.py:207 +#: stock/models.py:213 msgid "Stock location type of this location" msgstr "" -#: stock/models.py:279 +#: stock/models.py:285 msgid "You cannot make this stock location structural because some stock items are already located into it!" msgstr "" -#: stock/models.py:664 +#: stock/models.py:492 +msgid "Part must be specified" +msgstr "" + +#: stock/models.py:741 msgid "Stock items cannot be located into structural stock locations!" msgstr "" -#: stock/models.py:691 stock/serializers.py:480 +#: stock/models.py:768 stock/serializers.py:492 msgid "Stock item cannot be created for virtual parts" msgstr "" -#: stock/models.py:708 +#: stock/models.py:785 #, python-brace-format msgid "Part type ('{self.supplier_part.part}') must be {self.part}" msgstr "" -#: stock/models.py:718 stock/models.py:731 +#: stock/models.py:795 stock/models.py:808 msgid "Quantity must be 1 for item with a serial number" msgstr "" -#: stock/models.py:721 +#: stock/models.py:798 msgid "Serial number cannot be set if quantity greater than 1" msgstr "" -#: stock/models.py:743 +#: stock/models.py:820 msgid "Item cannot belong to itself" msgstr "" -#: stock/models.py:748 +#: stock/models.py:825 msgid "Item must have a build reference if is_building=True" msgstr "" -#: stock/models.py:761 +#: stock/models.py:838 msgid "Build reference does not point to the same part object" msgstr "" -#: stock/models.py:777 +#: stock/models.py:854 msgid "Parent Stock Item" msgstr "Nadrzędny towar" -#: stock/models.py:789 +#: stock/models.py:866 msgid "Base part" msgstr "Część podstawowa" -#: stock/models.py:799 +#: stock/models.py:876 msgid "Select a matching supplier part for this stock item" msgstr "Wybierz pasującą część dostawcy dla tego towaru" -#: stock/models.py:811 +#: stock/models.py:888 msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:819 stock/serializers.py:1580 +#: stock/models.py:896 stock/serializers.py:1611 msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:830 +#: stock/models.py:907 msgid "Is this item installed in another item?" msgstr "" -#: stock/models.py:849 +#: stock/models.py:926 msgid "Serial number for this item" msgstr "" -#: stock/models.py:863 stock/serializers.py:1563 +#: stock/models.py:940 stock/serializers.py:1594 msgid "Batch code for this stock item" msgstr "" -#: stock/models.py:868 +#: stock/models.py:945 msgid "Stock Quantity" msgstr "Ilość w magazynie" -#: stock/models.py:878 +#: stock/models.py:955 msgid "Source Build" msgstr "" -#: stock/models.py:881 +#: stock/models.py:958 msgid "Build for this stock item" msgstr "" -#: stock/models.py:888 stock/templates/stock/item_base.html:363 +#: stock/models.py:965 stock/templates/stock/item_base.html:360 msgid "Consumed By" msgstr "" -#: stock/models.py:891 +#: stock/models.py:968 msgid "Build order which consumed this stock item" msgstr "" -#: stock/models.py:900 +#: stock/models.py:977 msgid "Source Purchase Order" msgstr "Wyszukaj zlecenie zakupu" -#: stock/models.py:904 +#: stock/models.py:981 msgid "Purchase order for this stock item" msgstr "Zlecenie zakupu dla tego towaru" -#: stock/models.py:910 +#: stock/models.py:987 msgid "Destination Sales Order" msgstr "" -#: stock/models.py:921 +#: stock/models.py:998 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "" -#: stock/models.py:939 +#: stock/models.py:1016 msgid "Delete on deplete" msgstr "Usuń po wyczerpaniu" -#: stock/models.py:940 +#: stock/models.py:1017 msgid "Delete this Stock Item when stock is depleted" msgstr "" -#: stock/models.py:960 +#: stock/models.py:1037 msgid "Single unit purchase price at time of purchase" msgstr "" -#: stock/models.py:991 +#: stock/models.py:1068 msgid "Converted to part" msgstr "" -#: stock/models.py:1511 +#: stock/models.py:1600 msgid "Part is not set as trackable" msgstr "" -#: stock/models.py:1517 +#: stock/models.py:1606 msgid "Quantity must be integer" msgstr "Ilość musi być liczbą całkowitą" -#: stock/models.py:1525 +#: stock/models.py:1614 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({self.quantity})" msgstr "" -#: stock/models.py:1531 -msgid "Serial numbers must be a list of integers" +#: stock/models.py:1620 +msgid "Serial numbers must be provided as a list" msgstr "" -#: stock/models.py:1536 +#: stock/models.py:1625 msgid "Quantity does not match serial numbers" msgstr "" -#: stock/models.py:1544 stock/serializers.py:726 -msgid "Serial numbers already exist" -msgstr "Numer seryjny już istnieje" - -#: stock/models.py:1641 +#: stock/models.py:1747 stock/models.py:2563 msgid "Test template does not exist" msgstr "" -#: stock/models.py:1659 +#: stock/models.py:1765 msgid "Stock item has been assigned to a sales order" msgstr "" -#: stock/models.py:1663 +#: stock/models.py:1769 msgid "Stock item is installed in another item" msgstr "" -#: stock/models.py:1666 +#: stock/models.py:1772 msgid "Stock item contains other items" msgstr "" -#: stock/models.py:1669 +#: stock/models.py:1775 msgid "Stock item has been assigned to a customer" msgstr "" -#: stock/models.py:1672 +#: stock/models.py:1778 msgid "Stock item is currently in production" msgstr "" -#: stock/models.py:1675 +#: stock/models.py:1781 msgid "Serialized stock cannot be merged" msgstr "" -#: stock/models.py:1682 stock/serializers.py:1469 +#: stock/models.py:1788 stock/serializers.py:1500 msgid "Duplicate stock items" msgstr "" -#: stock/models.py:1686 +#: stock/models.py:1792 msgid "Stock items must refer to the same part" msgstr "" -#: stock/models.py:1694 +#: stock/models.py:1800 msgid "Stock items must refer to the same supplier part" msgstr "" -#: stock/models.py:1699 +#: stock/models.py:1805 msgid "Stock status codes must match" msgstr "" -#: stock/models.py:1960 +#: stock/models.py:2066 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:2343 +#: stock/models.py:2462 msgid "Stock Item Tracking" msgstr "" -#: stock/models.py:2376 +#: stock/models.py:2495 msgid "Entry notes" msgstr "Notatki do wpisu" -#: stock/models.py:2416 +#: stock/models.py:2535 msgid "Stock Item Test Result" msgstr "" -#: stock/models.py:2449 +#: stock/models.py:2566 msgid "Value must be provided for this test" msgstr "Należy podać wartość dla tego testu" -#: stock/models.py:2454 +#: stock/models.py:2570 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:2459 +#: stock/models.py:2575 msgid "Invalid value for this test" msgstr "" -#: stock/models.py:2544 +#: stock/models.py:2660 msgid "Test result" msgstr "Wynik testu" -#: stock/models.py:2551 +#: stock/models.py:2667 msgid "Test output value" msgstr "" -#: stock/models.py:2559 +#: stock/models.py:2675 stock/serializers.py:245 msgid "Test result attachment" msgstr "" -#: stock/models.py:2563 +#: stock/models.py:2679 msgid "Test notes" msgstr "" -#: stock/models.py:2571 templates/js/translated/stock.js:1633 +#: stock/models.py:2687 templates/js/translated/stock.js:1633 msgid "Test station" msgstr "" -#: stock/models.py:2572 +#: stock/models.py:2688 msgid "The identifier of the test station where the test was performed" msgstr "" -#: stock/models.py:2578 +#: stock/models.py:2694 msgid "Started" msgstr "" -#: stock/models.py:2579 +#: stock/models.py:2695 msgid "The timestamp of the test start" msgstr "" -#: stock/models.py:2585 +#: stock/models.py:2701 msgid "Finished" msgstr "" -#: stock/models.py:2586 +#: stock/models.py:2702 msgid "The timestamp of the test finish" msgstr "" -#: stock/serializers.py:76 +#: stock/serializers.py:77 msgid "Generated batch code" msgstr "" -#: stock/serializers.py:85 +#: stock/serializers.py:86 msgid "Select build order" msgstr "" -#: stock/serializers.py:94 +#: stock/serializers.py:95 msgid "Select stock item to generate batch code for" msgstr "" -#: stock/serializers.py:103 +#: stock/serializers.py:104 msgid "Select location to generate batch code for" msgstr "" -#: stock/serializers.py:112 +#: stock/serializers.py:113 msgid "Select part to generate batch code for" msgstr "" -#: stock/serializers.py:121 +#: stock/serializers.py:122 msgid "Select purchase order" msgstr "" -#: stock/serializers.py:128 +#: stock/serializers.py:129 msgid "Enter quantity for batch code" msgstr "" -#: stock/serializers.py:151 +#: stock/serializers.py:152 msgid "Generated serial number" msgstr "" -#: stock/serializers.py:160 +#: stock/serializers.py:161 msgid "Select part to generate serial number for" msgstr "" -#: stock/serializers.py:168 +#: stock/serializers.py:169 msgid "Quantity of serial numbers to generate" msgstr "" -#: stock/serializers.py:233 +#: stock/serializers.py:234 msgid "Test template for this result" msgstr "" -#: stock/serializers.py:254 +#: stock/serializers.py:258 msgid "Template ID or test name must be provided" msgstr "" -#: stock/serializers.py:286 +#: stock/serializers.py:290 msgid "The test finished time cannot be earlier than the test started time" msgstr "" -#: stock/serializers.py:323 +#: stock/serializers.py:327 msgid "Serial number is too large" msgstr "" -#: stock/serializers.py:452 stock/templates/stock/item_base.html:193 +#: stock/serializers.py:462 stock/templates/stock/item_base.html:190 msgid "Parent Item" msgstr "Element nadrzędny" -#: stock/serializers.py:453 +#: stock/serializers.py:463 msgid "Parent stock item" msgstr "" -#: stock/serializers.py:472 +#: stock/serializers.py:484 msgid "Use pack size when adding: the quantity defined is the number of packs" msgstr "" -#: stock/serializers.py:596 stock/templates/stock/item_base.html:437 +#: stock/serializers.py:623 stock/templates/stock/item_base.html:434 #: templates/js/translated/table_filters.js:442 users/models.py:174 msgid "Expired" msgstr "Termin minął" -#: stock/serializers.py:602 stock/templates/stock/stock_sidebar.html:20 +#: stock/serializers.py:629 stock/templates/stock/stock_sidebar.html:20 msgid "Child Items" msgstr "Elementy podrzędne" -#: stock/serializers.py:606 +#: stock/serializers.py:633 msgid "Tracking Items" msgstr "" -#: stock/serializers.py:612 +#: stock/serializers.py:639 msgid "Purchase price of this stock item, per unit or pack" msgstr "" -#: stock/serializers.py:631 +#: stock/serializers.py:658 msgid "Minimum Pricing" msgstr "" -#: stock/serializers.py:637 +#: stock/serializers.py:664 msgid "Maximum Pricing" msgstr "" -#: stock/serializers.py:661 +#: stock/serializers.py:688 msgid "Enter number of stock items to serialize" msgstr "" -#: stock/serializers.py:674 +#: stock/serializers.py:701 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({q})" msgstr "" -#: stock/serializers.py:681 +#: stock/serializers.py:708 msgid "Enter serial numbers for new items" msgstr "" -#: stock/serializers.py:692 stock/serializers.py:1426 stock/serializers.py:1682 +#: stock/serializers.py:719 stock/serializers.py:1457 stock/serializers.py:1713 msgid "Destination stock location" msgstr "" -#: stock/serializers.py:699 +#: stock/serializers.py:726 msgid "Optional note field" msgstr "" -#: stock/serializers.py:709 +#: stock/serializers.py:736 msgid "Serial numbers cannot be assigned to this part" msgstr "" -#: stock/serializers.py:764 +#: stock/serializers.py:756 +msgid "Serial numbers already exist" +msgstr "Numer seryjny już istnieje" + +#: stock/serializers.py:795 msgid "Select stock item to install" msgstr "" -#: stock/serializers.py:771 +#: stock/serializers.py:802 msgid "Quantity to Install" msgstr "" -#: stock/serializers.py:772 +#: stock/serializers.py:803 msgid "Enter the quantity of items to install" msgstr "" -#: stock/serializers.py:777 stock/serializers.py:857 stock/serializers.py:983 -#: stock/serializers.py:1033 +#: stock/serializers.py:808 stock/serializers.py:888 stock/serializers.py:1014 +#: stock/serializers.py:1064 msgid "Add transaction note (optional)" msgstr "" -#: stock/serializers.py:785 +#: stock/serializers.py:816 msgid "Quantity to install must be at least 1" msgstr "" -#: stock/serializers.py:793 +#: stock/serializers.py:824 msgid "Stock item is unavailable" msgstr "" -#: stock/serializers.py:804 +#: stock/serializers.py:835 msgid "Selected part is not in the Bill of Materials" msgstr "" -#: stock/serializers.py:817 +#: stock/serializers.py:848 msgid "Quantity to install must not exceed available quantity" msgstr "" -#: stock/serializers.py:852 +#: stock/serializers.py:883 msgid "Destination location for uninstalled item" msgstr "" -#: stock/serializers.py:903 +#: stock/serializers.py:934 msgid "Unsupported statistic type: " msgstr "" -#: stock/serializers.py:917 +#: stock/serializers.py:948 msgid "Select part to convert stock item into" msgstr "" -#: stock/serializers.py:930 +#: stock/serializers.py:961 msgid "Selected part is not a valid option for conversion" msgstr "" -#: stock/serializers.py:947 +#: stock/serializers.py:978 msgid "Cannot convert stock item with assigned SupplierPart" msgstr "" -#: stock/serializers.py:978 +#: stock/serializers.py:1009 msgid "Destination location for returned item" msgstr "" -#: stock/serializers.py:1015 +#: stock/serializers.py:1046 msgid "Select stock items to change status" msgstr "" -#: stock/serializers.py:1021 +#: stock/serializers.py:1052 msgid "No stock items selected" msgstr "" -#: stock/serializers.py:1117 stock/serializers.py:1194 -#: stock/templates/stock/location.html:162 -#: stock/templates/stock/location.html:219 +#: stock/serializers.py:1148 stock/serializers.py:1225 +#: stock/templates/stock/location.html:163 +#: stock/templates/stock/location.html:220 #: stock/templates/stock/location_sidebar.html:5 msgid "Sublocations" msgstr "Podlokalizacje" -#: stock/serializers.py:1187 templates/js/translated/stock.js:160 +#: stock/serializers.py:1218 templates/js/translated/stock.js:160 msgid "Parent stock location" msgstr "" -#: stock/serializers.py:1298 +#: stock/serializers.py:1329 msgid "Part must be salable" msgstr "Część musi być dostępna do sprzedaży" -#: stock/serializers.py:1302 +#: stock/serializers.py:1333 msgid "Item is allocated to a sales order" msgstr "" -#: stock/serializers.py:1306 +#: stock/serializers.py:1337 msgid "Item is allocated to a build order" msgstr "" -#: stock/serializers.py:1330 +#: stock/serializers.py:1361 msgid "Customer to assign stock items" msgstr "" -#: stock/serializers.py:1336 +#: stock/serializers.py:1367 msgid "Selected company is not a customer" msgstr "" -#: stock/serializers.py:1344 +#: stock/serializers.py:1375 msgid "Stock assignment notes" msgstr "" -#: stock/serializers.py:1354 stock/serializers.py:1608 +#: stock/serializers.py:1385 stock/serializers.py:1639 msgid "A list of stock items must be provided" msgstr "" -#: stock/serializers.py:1433 +#: stock/serializers.py:1464 msgid "Stock merging notes" msgstr "" -#: stock/serializers.py:1438 +#: stock/serializers.py:1469 msgid "Allow mismatched suppliers" msgstr "" -#: stock/serializers.py:1439 +#: stock/serializers.py:1470 msgid "Allow stock items with different supplier parts to be merged" msgstr "" -#: stock/serializers.py:1444 +#: stock/serializers.py:1475 msgid "Allow mismatched status" msgstr "" -#: stock/serializers.py:1445 +#: stock/serializers.py:1476 msgid "Allow stock items with different status codes to be merged" msgstr "" -#: stock/serializers.py:1455 +#: stock/serializers.py:1486 msgid "At least two stock items must be provided" msgstr "" -#: stock/serializers.py:1522 +#: stock/serializers.py:1553 msgid "No Change" msgstr "" -#: stock/serializers.py:1551 +#: stock/serializers.py:1582 msgid "StockItem primary key value" msgstr "" -#: stock/serializers.py:1570 +#: stock/serializers.py:1601 msgid "Stock item status code" msgstr "" -#: stock/serializers.py:1598 +#: stock/serializers.py:1629 msgid "Stock transaction notes" msgstr "" @@ -10175,107 +10539,107 @@ msgstr "Odrzucone" msgid "Quarantined" msgstr "Poddany kwarantannie" -#: stock/status_codes.py:40 +#: stock/status_codes.py:44 msgid "Legacy stock tracking entry" msgstr "Starsze śledzenie wpisów stanu magazynowego" -#: stock/status_codes.py:42 templates/js/translated/stock.js:550 +#: stock/status_codes.py:46 templates/js/translated/stock.js:550 msgid "Stock item created" msgstr "Utworzono element magazynowy" -#: stock/status_codes.py:45 +#: stock/status_codes.py:49 msgid "Edited stock item" msgstr "Edytuj pozycję magazynową" -#: stock/status_codes.py:46 +#: stock/status_codes.py:50 msgid "Assigned serial number" msgstr "Przypisano numer seryjny" -#: stock/status_codes.py:49 +#: stock/status_codes.py:53 msgid "Stock counted" msgstr "Zapas policzony" -#: stock/status_codes.py:50 +#: stock/status_codes.py:54 msgid "Stock manually added" msgstr "Zapas dodany ręcznie" -#: stock/status_codes.py:51 +#: stock/status_codes.py:55 msgid "Stock manually removed" msgstr "Zapas usunięty ręcznie" -#: stock/status_codes.py:54 +#: stock/status_codes.py:58 msgid "Location changed" msgstr "Lokalizacja zmieniona" -#: stock/status_codes.py:55 +#: stock/status_codes.py:59 msgid "Stock updated" msgstr "Zaktualizowano stan magazynu" -#: stock/status_codes.py:58 +#: stock/status_codes.py:62 msgid "Installed into assembly" msgstr "Zainstalowano do montażu" -#: stock/status_codes.py:59 +#: stock/status_codes.py:63 msgid "Removed from assembly" msgstr "Usunięto z montażu" -#: stock/status_codes.py:61 +#: stock/status_codes.py:65 msgid "Installed component item" msgstr "Zainstalowano element komponentu" -#: stock/status_codes.py:62 +#: stock/status_codes.py:66 msgid "Removed component item" msgstr "Usunięto element komponentu" -#: stock/status_codes.py:65 +#: stock/status_codes.py:69 msgid "Split from parent item" msgstr "Podziel z pozycji nadrzędnej" -#: stock/status_codes.py:66 +#: stock/status_codes.py:70 msgid "Split child item" msgstr "Podziel element podrzędny" -#: stock/status_codes.py:69 templates/js/translated/stock.js:1943 +#: stock/status_codes.py:73 templates/js/translated/stock.js:1944 msgid "Merged stock items" msgstr "Scalone przedmioty magazynowe" -#: stock/status_codes.py:72 +#: stock/status_codes.py:76 msgid "Converted to variant" msgstr "Przekonwertowano na wariant" -#: stock/status_codes.py:75 +#: stock/status_codes.py:79 msgid "Build order output created" msgstr "Dane wyjściowe kolejności kompilacji utworzone" -#: stock/status_codes.py:76 +#: stock/status_codes.py:80 msgid "Build order output completed" msgstr "Dane wyjściowe kolejności kompilacji ukończone" -#: stock/status_codes.py:77 +#: stock/status_codes.py:81 msgid "Build order output rejected" msgstr "Odrzucono wynik zlecenia produkcji" -#: stock/status_codes.py:78 templates/js/translated/stock.js:1849 +#: stock/status_codes.py:82 templates/js/translated/stock.js:1849 msgid "Consumed by build order" msgstr "Zużyte przez kolejność kompilacji" -#: stock/status_codes.py:81 +#: stock/status_codes.py:85 msgid "Shipped against Sales Order" msgstr "Wysłane na podstawie zlecenia sprzedaży" -#: stock/status_codes.py:84 +#: stock/status_codes.py:88 msgid "Received against Purchase Order" msgstr "Otrzymane na podstawie zlecenia zakupu" -#: stock/status_codes.py:87 +#: stock/status_codes.py:91 msgid "Returned against Return Order" msgstr "Zwrócone na podstawie zlecenia zwrotu" -#: stock/status_codes.py:90 templates/js/translated/table_filters.js:382 +#: stock/status_codes.py:94 templates/js/translated/table_filters.js:382 msgid "Sent to customer" msgstr "Wyślij do klienta" -#: stock/status_codes.py:91 +#: stock/status_codes.py:95 msgid "Returned from customer" msgstr "Zwrócony od klienta" @@ -10296,7 +10660,7 @@ msgstr "" msgid "Test Data" msgstr "" -#: stock/templates/stock/item.html:85 stock/templates/stock/item_base.html:65 +#: stock/templates/stock/item.html:85 msgid "Test Report" msgstr "" @@ -10316,7 +10680,7 @@ msgstr "" msgid "Installed Stock Items" msgstr "" -#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3354 +#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3355 msgid "Install Stock Item" msgstr "" @@ -10328,208 +10692,212 @@ msgstr "" msgid "Add Test Result" msgstr "" -#: stock/templates/stock/item_base.html:33 +#: stock/templates/stock/item_base.html:34 msgid "Locate stock item" msgstr "" -#: stock/templates/stock/item_base.html:51 +#: stock/templates/stock/item_base.html:52 msgid "Scan to Location" msgstr "Skanuj do lokacji" #: stock/templates/stock/item_base.html:59 -#: stock/templates/stock/location.html:67 +#: stock/templates/stock/location.html:68 #: templates/js/translated/filters.js:434 msgid "Printing actions" msgstr "Akcje druku" -#: stock/templates/stock/item_base.html:75 +#: stock/templates/stock/item_base.html:64 templates/js/translated/report.js:49 +msgid "Print Report" +msgstr "" + +#: stock/templates/stock/item_base.html:72 msgid "Stock adjustment actions" msgstr "" -#: stock/templates/stock/item_base.html:79 -#: stock/templates/stock/location.html:87 templates/js/translated/stock.js:1909 +#: stock/templates/stock/item_base.html:76 +#: stock/templates/stock/location.html:88 templates/js/translated/stock.js:1909 msgid "Count stock" msgstr "Przelicz stan magazynowy" -#: stock/templates/stock/item_base.html:81 +#: stock/templates/stock/item_base.html:78 #: templates/js/translated/stock.js:1891 msgid "Add stock" msgstr "" -#: stock/templates/stock/item_base.html:82 +#: stock/templates/stock/item_base.html:79 #: templates/js/translated/stock.js:1900 msgid "Remove stock" msgstr "Usuń stan magazynowy" -#: stock/templates/stock/item_base.html:85 +#: stock/templates/stock/item_base.html:82 msgid "Serialize stock" msgstr "" -#: stock/templates/stock/item_base.html:88 -#: stock/templates/stock/location.html:93 templates/js/translated/stock.js:1918 +#: stock/templates/stock/item_base.html:85 +#: stock/templates/stock/location.html:94 templates/js/translated/stock.js:1918 msgid "Transfer stock" msgstr "Przenieś stan magazynowy" -#: stock/templates/stock/item_base.html:91 -#: templates/js/translated/stock.js:1972 +#: stock/templates/stock/item_base.html:88 +#: templates/js/translated/stock.js:1973 msgid "Assign to customer" msgstr "" -#: stock/templates/stock/item_base.html:94 +#: stock/templates/stock/item_base.html:91 msgid "Return to stock" msgstr "" -#: stock/templates/stock/item_base.html:97 +#: stock/templates/stock/item_base.html:94 msgid "Uninstall stock item" msgstr "" -#: stock/templates/stock/item_base.html:97 +#: stock/templates/stock/item_base.html:94 msgid "Uninstall" msgstr "Odinstaluj" -#: stock/templates/stock/item_base.html:101 +#: stock/templates/stock/item_base.html:98 msgid "Install stock item" msgstr "" -#: stock/templates/stock/item_base.html:101 +#: stock/templates/stock/item_base.html:98 msgid "Install" msgstr "Zainstaluj" -#: stock/templates/stock/item_base.html:115 +#: stock/templates/stock/item_base.html:112 msgid "Convert to variant" msgstr "" -#: stock/templates/stock/item_base.html:118 +#: stock/templates/stock/item_base.html:115 msgid "Duplicate stock item" msgstr "" -#: stock/templates/stock/item_base.html:120 +#: stock/templates/stock/item_base.html:117 msgid "Edit stock item" msgstr "" -#: stock/templates/stock/item_base.html:123 +#: stock/templates/stock/item_base.html:120 msgid "Delete stock item" msgstr "" -#: stock/templates/stock/item_base.html:169 templates/InvenTree/search.html:139 -#: templates/js/translated/build.js:2295 templates/navbar.html:38 +#: stock/templates/stock/item_base.html:166 templates/InvenTree/search.html:139 +#: templates/js/translated/build.js:2298 templates/navbar.html:38 msgid "Build" msgstr "Budowa" -#: stock/templates/stock/item_base.html:211 +#: stock/templates/stock/item_base.html:208 msgid "No manufacturer set" msgstr "Nie ustawiono producenta" -#: stock/templates/stock/item_base.html:251 +#: stock/templates/stock/item_base.html:248 msgid "You are not in the list of owners of this item. This stock item cannot be edited." msgstr "" -#: stock/templates/stock/item_base.html:252 -#: stock/templates/stock/location.html:146 +#: stock/templates/stock/item_base.html:249 +#: stock/templates/stock/location.html:147 msgid "Read only" msgstr "Tylko do odczytu" -#: stock/templates/stock/item_base.html:265 +#: stock/templates/stock/item_base.html:262 msgid "This stock item is unavailable" msgstr "" -#: stock/templates/stock/item_base.html:271 +#: stock/templates/stock/item_base.html:268 msgid "This stock item is in production and cannot be edited." msgstr "" -#: stock/templates/stock/item_base.html:272 +#: stock/templates/stock/item_base.html:269 msgid "Edit the stock item from the build view." msgstr "" -#: stock/templates/stock/item_base.html:287 +#: stock/templates/stock/item_base.html:284 msgid "This stock item is allocated to Sales Order" msgstr "" -#: stock/templates/stock/item_base.html:295 +#: stock/templates/stock/item_base.html:292 msgid "This stock item is allocated to Build Order" msgstr "" -#: stock/templates/stock/item_base.html:311 +#: stock/templates/stock/item_base.html:308 msgid "This stock item is serialized. It has a unique serial number and the quantity cannot be adjusted" msgstr "" -#: stock/templates/stock/item_base.html:317 +#: stock/templates/stock/item_base.html:314 msgid "previous page" msgstr "poprzednia strona" -#: stock/templates/stock/item_base.html:317 +#: stock/templates/stock/item_base.html:314 msgid "Navigate to previous serial number" msgstr "" -#: stock/templates/stock/item_base.html:326 +#: stock/templates/stock/item_base.html:323 msgid "next page" msgstr "następna strona" -#: stock/templates/stock/item_base.html:326 +#: stock/templates/stock/item_base.html:323 msgid "Navigate to next serial number" msgstr "" -#: stock/templates/stock/item_base.html:398 -#: templates/js/translated/build.js:2552 +#: stock/templates/stock/item_base.html:395 +#: templates/js/translated/build.js:2559 msgid "No location set" msgstr "Lokacje nie są ustawione" -#: stock/templates/stock/item_base.html:413 +#: stock/templates/stock/item_base.html:410 msgid "Tests" msgstr "Testy" -#: stock/templates/stock/item_base.html:419 +#: stock/templates/stock/item_base.html:416 msgid "This stock item has not passed all required tests" msgstr "" -#: stock/templates/stock/item_base.html:437 +#: stock/templates/stock/item_base.html:434 #, python-format msgid "This StockItem expired on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:439 +#: stock/templates/stock/item_base.html:436 #, python-format msgid "This StockItem expires on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:455 +#: stock/templates/stock/item_base.html:452 msgid "No stocktake performed" msgstr "" -#: stock/templates/stock/item_base.html:504 -#: templates/js/translated/stock.js:2037 +#: stock/templates/stock/item_base.html:501 +#: templates/js/translated/stock.js:2038 msgid "stock item" msgstr "" -#: stock/templates/stock/item_base.html:527 +#: stock/templates/stock/item_base.html:524 msgid "Edit Stock Status" msgstr "" -#: stock/templates/stock/item_base.html:536 +#: stock/templates/stock/item_base.html:533 msgid "Stock Item QR Code" msgstr "" -#: stock/templates/stock/item_base.html:547 +#: stock/templates/stock/item_base.html:544 msgid "Link Barcode to Stock Item" msgstr "" -#: stock/templates/stock/item_base.html:611 +#: stock/templates/stock/item_base.html:608 msgid "Select one of the part variants listed below." msgstr "" -#: stock/templates/stock/item_base.html:614 +#: stock/templates/stock/item_base.html:611 msgid "Warning" msgstr "Ostrzeżenie" -#: stock/templates/stock/item_base.html:615 +#: stock/templates/stock/item_base.html:612 msgid "This action cannot be easily undone" msgstr "" -#: stock/templates/stock/item_base.html:623 +#: stock/templates/stock/item_base.html:620 msgid "Convert Stock Item" msgstr "" -#: stock/templates/stock/item_base.html:656 +#: stock/templates/stock/item_base.html:653 msgid "Return to Stock" msgstr "" @@ -10541,84 +10909,84 @@ msgstr "" msgid "Select quantity to serialize, and unique serial numbers." msgstr "" -#: stock/templates/stock/location.html:35 +#: stock/templates/stock/location.html:36 msgid "Perform stocktake for this stock location" msgstr "" -#: stock/templates/stock/location.html:42 +#: stock/templates/stock/location.html:43 msgid "Locate stock location" msgstr "" -#: stock/templates/stock/location.html:60 +#: stock/templates/stock/location.html:61 msgid "Scan stock items into this location" msgstr "" -#: stock/templates/stock/location.html:60 +#: stock/templates/stock/location.html:61 msgid "Scan In Stock Items" msgstr "" -#: stock/templates/stock/location.html:61 +#: stock/templates/stock/location.html:62 msgid "Scan stock container into this location" msgstr "" -#: stock/templates/stock/location.html:61 +#: stock/templates/stock/location.html:62 msgid "Scan In Container" msgstr "" -#: stock/templates/stock/location.html:72 +#: stock/templates/stock/location.html:73 msgid "Print Location Report" msgstr "" -#: stock/templates/stock/location.html:101 +#: stock/templates/stock/location.html:102 msgid "Location actions" msgstr "" -#: stock/templates/stock/location.html:103 +#: stock/templates/stock/location.html:104 msgid "Edit location" msgstr "Edytuj lokację" -#: stock/templates/stock/location.html:105 +#: stock/templates/stock/location.html:106 msgid "Delete location" msgstr "" -#: stock/templates/stock/location.html:135 +#: stock/templates/stock/location.html:136 msgid "Top level stock location" msgstr "" -#: stock/templates/stock/location.html:141 +#: stock/templates/stock/location.html:142 msgid "Location Owner" msgstr "" -#: stock/templates/stock/location.html:145 +#: stock/templates/stock/location.html:146 msgid "You are not in the list of owners of this location. This stock location cannot be edited." msgstr "" -#: stock/templates/stock/location.html:173 +#: stock/templates/stock/location.html:174 msgid "Location Type" msgstr "" -#: stock/templates/stock/location.html:223 +#: stock/templates/stock/location.html:224 msgid "Create new stock location" msgstr "" -#: stock/templates/stock/location.html:224 +#: stock/templates/stock/location.html:225 msgid "New Location" msgstr "Nowa lokalizacja" -#: stock/templates/stock/location.html:298 -#: templates/js/translated/stock.js:2657 +#: stock/templates/stock/location.html:299 +#: templates/js/translated/stock.js:2658 msgid "stock location" msgstr "" -#: stock/templates/stock/location.html:320 +#: stock/templates/stock/location.html:321 msgid "Scanned stock container into this location" msgstr "" -#: stock/templates/stock/location.html:393 +#: stock/templates/stock/location.html:394 msgid "Stock Location QR Code" msgstr "" -#: stock/templates/stock/location.html:404 +#: stock/templates/stock/location.html:405 msgid "Link Barcode to Stock Location" msgstr "" @@ -10630,10 +10998,6 @@ msgstr "Ładowanie..." msgid "Stock Tracking" msgstr "" -#: stock/templates/stock/stock_sidebar.html:8 -msgid "Allocations" -msgstr "" - #: templates/403.html:6 templates/403.html:12 templates/403_csrf.html:7 msgid "Permission Denied" msgstr "Odmowa dostępu" @@ -11107,9 +11471,9 @@ msgid "Rate" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:81 -#: templates/js/translated/forms.js:548 templates/js/translated/helpers.js:108 +#: templates/js/translated/forms.js:548 templates/js/translated/helpers.js:109 #: templates/js/translated/part.js:395 templates/js/translated/pricing.js:629 -#: templates/js/translated/stock.js:252 users/models.py:406 +#: templates/js/translated/stock.js:252 users/models.py:408 msgid "Delete" msgstr "Usuń" @@ -11130,7 +11494,7 @@ msgid "No project codes found" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:158 -#: templates/js/translated/build.js:2400 +#: templates/js/translated/build.js:2403 msgid "group" msgstr "" @@ -11196,7 +11560,7 @@ msgid "Delete Location Type" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:503 -#: templates/InvenTree/settings/stock.html:38 +#: templates/InvenTree/settings/stock.html:39 msgid "New Location Type" msgstr "" @@ -11253,7 +11617,7 @@ msgstr "" msgid "Stock Settings" msgstr "" -#: templates/InvenTree/settings/stock.html:34 +#: templates/InvenTree/settings/stock.html:35 msgid "Stock Location Types" msgstr "" @@ -11280,7 +11644,7 @@ msgid "Unverified" msgstr "" #: templates/InvenTree/settings/user.html:80 -#: templates/js/translated/company.js:957 +#: templates/js/translated/company.js:958 msgid "Primary" msgstr "" @@ -11532,7 +11896,7 @@ msgid "Submit Bug Report" msgstr "Prześlij raport o błędzie" #: templates/about.html:91 templates/clip.html:4 -#: templates/js/translated/helpers.js:592 +#: templates/js/translated/helpers.js:598 msgid "copy to clipboard" msgstr "skopiuj do schowka" @@ -11738,23 +12102,24 @@ msgstr "Dodaj załącznik" msgid "Barcode Identifier" msgstr "Skaner kodów" -#: templates/base.html:103 +#: templates/base.html:102 msgid "Server Restart Required" msgstr "Wymagane ponowne uruchomienie serwera" -#: templates/base.html:106 +#: templates/base.html:105 msgid "A configuration option has been changed which requires a server restart" msgstr "Zmieniono opcję konfiguracji, która wymaga ponownego uruchomienia serwera" -#: templates/base.html:106 templates/base.html:116 +#: templates/base.html:105 templates/base.html:115 +#: templates/socialaccount/authentication_error.html:13 msgid "Contact your system administrator for further information" msgstr "Skontaktuj się z administratorem systemu w celu uzyskania dalszych informacji" -#: templates/base.html:113 +#: templates/base.html:112 msgid "Pending Database Migrations" msgstr "" -#: templates/base.html:116 +#: templates/base.html:115 msgid "There are pending database migrations which require attention" msgstr "" @@ -11787,7 +12152,7 @@ msgid "The following parts are low on required stock" msgstr "" #: templates/email/build_order_required_stock.html:18 -#: templates/js/translated/bom.js:1674 templates/js/translated/build.js:2747 +#: templates/js/translated/bom.js:1674 templates/js/translated/build.js:2765 msgid "Required Quantity" msgstr "Wymagana ilość" @@ -11801,7 +12166,7 @@ msgid "Click on the following link to view this part" msgstr "" #: templates/email/low_stock_notification.html:18 -#: templates/js/translated/part.js:3237 +#: templates/js/translated/part.js:3253 msgid "Minimum Quantity" msgstr "Minimalna ilość" @@ -12039,7 +12404,7 @@ msgstr "" #: templates/js/translated/bom.js:189 templates/js/translated/bom.js:700 #: templates/js/translated/modals.js:75 templates/js/translated/modals.js:629 #: templates/js/translated/modals.js:757 templates/js/translated/modals.js:1065 -#: templates/js/translated/purchase_order.js:797 templates/modals.html:15 +#: templates/js/translated/purchase_order.js:780 templates/modals.html:15 #: templates/modals.html:27 templates/modals.html:39 templates/modals.html:50 msgid "Close" msgstr "Zamknij" @@ -12156,7 +12521,7 @@ msgstr "" msgid "Substitutes Available" msgstr "" -#: templates/js/translated/bom.js:950 templates/js/translated/build.js:2673 +#: templates/js/translated/bom.js:950 templates/js/translated/build.js:2682 msgid "Variant stock allowed" msgstr "" @@ -12176,30 +12541,30 @@ msgstr "" msgid "No pricing available" msgstr "" -#: templates/js/translated/bom.js:1184 templates/js/translated/build.js:2812 +#: templates/js/translated/bom.js:1184 templates/js/translated/build.js:2830 msgid "External stock" msgstr "" -#: templates/js/translated/bom.js:1188 templates/js/translated/build.js:2786 -#: templates/js/translated/sales_order.js:1946 +#: templates/js/translated/bom.js:1188 templates/js/translated/build.js:2804 +#: templates/js/translated/sales_order.js:1927 msgid "No Stock Available" msgstr "" -#: templates/js/translated/bom.js:1193 templates/js/translated/build.js:2790 +#: templates/js/translated/bom.js:1193 templates/js/translated/build.js:2808 msgid "Includes variant and substitute stock" msgstr "" -#: templates/js/translated/bom.js:1195 templates/js/translated/build.js:2792 +#: templates/js/translated/bom.js:1195 templates/js/translated/build.js:2810 #: templates/js/translated/part.js:1263 -#: templates/js/translated/sales_order.js:1943 +#: templates/js/translated/sales_order.js:1924 msgid "Includes variant stock" msgstr "" -#: templates/js/translated/bom.js:1197 templates/js/translated/build.js:2794 +#: templates/js/translated/bom.js:1197 templates/js/translated/build.js:2812 msgid "Includes substitute stock" msgstr "" -#: templates/js/translated/bom.js:1225 templates/js/translated/build.js:2777 +#: templates/js/translated/bom.js:1225 templates/js/translated/build.js:2795 msgid "Consumable item" msgstr "" @@ -12231,7 +12596,7 @@ msgstr "" msgid "No BOM items found" msgstr "" -#: templates/js/translated/bom.js:1657 templates/js/translated/build.js:2658 +#: templates/js/translated/bom.js:1657 templates/js/translated/build.js:2667 msgid "Required Part" msgstr "" @@ -12243,396 +12608,396 @@ msgstr "" msgid "Edit Build Order" msgstr "" -#: templates/js/translated/build.js:191 +#: templates/js/translated/build.js:194 msgid "Create Build Order" msgstr "" -#: templates/js/translated/build.js:223 +#: templates/js/translated/build.js:226 msgid "Cancel Build Order" msgstr "" -#: templates/js/translated/build.js:232 +#: templates/js/translated/build.js:235 msgid "Are you sure you wish to cancel this build?" msgstr "" -#: templates/js/translated/build.js:238 +#: templates/js/translated/build.js:241 msgid "Stock items have been allocated to this build order" msgstr "" -#: templates/js/translated/build.js:245 +#: templates/js/translated/build.js:248 msgid "There are incomplete outputs remaining for this build order" msgstr "" -#: templates/js/translated/build.js:297 +#: templates/js/translated/build.js:300 msgid "Build order is ready to be completed" msgstr "" -#: templates/js/translated/build.js:305 +#: templates/js/translated/build.js:308 msgid "This build order cannot be completed as there are incomplete outputs" msgstr "" -#: templates/js/translated/build.js:310 +#: templates/js/translated/build.js:313 msgid "Build Order is incomplete" msgstr "" -#: templates/js/translated/build.js:328 +#: templates/js/translated/build.js:331 msgid "Complete Build Order" msgstr "" -#: templates/js/translated/build.js:369 templates/js/translated/stock.js:127 +#: templates/js/translated/build.js:372 templates/js/translated/stock.js:127 #: templates/js/translated/stock.js:301 msgid "Next available serial number" msgstr "" -#: templates/js/translated/build.js:371 templates/js/translated/stock.js:129 +#: templates/js/translated/build.js:374 templates/js/translated/stock.js:129 #: templates/js/translated/stock.js:303 msgid "Latest serial number" msgstr "" -#: templates/js/translated/build.js:380 +#: templates/js/translated/build.js:383 msgid "The Bill of Materials contains trackable parts" msgstr "" -#: templates/js/translated/build.js:381 +#: templates/js/translated/build.js:384 msgid "Build outputs must be generated individually" msgstr "" -#: templates/js/translated/build.js:389 +#: templates/js/translated/build.js:392 msgid "Trackable parts can have serial numbers specified" msgstr "" -#: templates/js/translated/build.js:390 +#: templates/js/translated/build.js:393 msgid "Enter serial numbers to generate multiple single build outputs" msgstr "" -#: templates/js/translated/build.js:397 +#: templates/js/translated/build.js:400 msgid "Create Build Output" msgstr "" -#: templates/js/translated/build.js:428 +#: templates/js/translated/build.js:431 msgid "Allocate stock items to this build output" msgstr "" -#: templates/js/translated/build.js:436 +#: templates/js/translated/build.js:439 msgid "Deallocate stock from build output" msgstr "" -#: templates/js/translated/build.js:445 +#: templates/js/translated/build.js:448 msgid "Complete build output" msgstr "" -#: templates/js/translated/build.js:453 +#: templates/js/translated/build.js:456 msgid "Scrap build output" msgstr "" -#: templates/js/translated/build.js:460 +#: templates/js/translated/build.js:463 msgid "Delete build output" msgstr "" -#: templates/js/translated/build.js:480 +#: templates/js/translated/build.js:483 msgid "Are you sure you wish to deallocate the selected stock items from this build?" msgstr "" -#: templates/js/translated/build.js:498 +#: templates/js/translated/build.js:501 msgid "Deallocate Stock Items" msgstr "" -#: templates/js/translated/build.js:584 templates/js/translated/build.js:711 -#: templates/js/translated/build.js:836 +#: templates/js/translated/build.js:587 templates/js/translated/build.js:714 +#: templates/js/translated/build.js:839 msgid "Select Build Outputs" msgstr "" -#: templates/js/translated/build.js:585 templates/js/translated/build.js:712 -#: templates/js/translated/build.js:837 +#: templates/js/translated/build.js:588 templates/js/translated/build.js:715 +#: templates/js/translated/build.js:840 msgid "At least one build output must be selected" msgstr "" -#: templates/js/translated/build.js:599 +#: templates/js/translated/build.js:602 msgid "Selected build outputs will be marked as complete" msgstr "" -#: templates/js/translated/build.js:603 templates/js/translated/build.js:736 -#: templates/js/translated/build.js:859 +#: templates/js/translated/build.js:606 templates/js/translated/build.js:739 +#: templates/js/translated/build.js:862 msgid "Output" msgstr "" -#: templates/js/translated/build.js:630 +#: templates/js/translated/build.js:633 msgid "Complete Build Outputs" msgstr "" -#: templates/js/translated/build.js:727 +#: templates/js/translated/build.js:730 msgid "Selected build outputs will be marked as scrapped" msgstr "" -#: templates/js/translated/build.js:729 +#: templates/js/translated/build.js:732 msgid "Scrapped output are marked as rejected" msgstr "" -#: templates/js/translated/build.js:730 +#: templates/js/translated/build.js:733 msgid "Allocated stock items will no longer be available" msgstr "" -#: templates/js/translated/build.js:731 +#: templates/js/translated/build.js:734 msgid "The completion status of the build order will not be adjusted" msgstr "" -#: templates/js/translated/build.js:761 +#: templates/js/translated/build.js:764 msgid "Scrap Build Outputs" msgstr "" -#: templates/js/translated/build.js:851 +#: templates/js/translated/build.js:854 msgid "Selected build outputs will be deleted" msgstr "" -#: templates/js/translated/build.js:853 +#: templates/js/translated/build.js:856 msgid "Build output data will be permanently deleted" msgstr "" -#: templates/js/translated/build.js:854 +#: templates/js/translated/build.js:857 msgid "Allocated stock items will be returned to stock" msgstr "" -#: templates/js/translated/build.js:872 +#: templates/js/translated/build.js:875 msgid "Delete Build Outputs" msgstr "" -#: templates/js/translated/build.js:959 +#: templates/js/translated/build.js:962 msgid "Delete allocations" msgstr "" -#: templates/js/translated/build.js:966 +#: templates/js/translated/build.js:969 msgid "Delete Stock Allocations" msgstr "" -#: templates/js/translated/build.js:989 +#: templates/js/translated/build.js:992 msgid "No allocated stock" msgstr "" -#: templates/js/translated/build.js:1045 +#: templates/js/translated/build.js:1048 msgid "Stock item" msgstr "" -#: templates/js/translated/build.js:1070 +#: templates/js/translated/build.js:1073 msgid "Edit build allocation" msgstr "" -#: templates/js/translated/build.js:1071 +#: templates/js/translated/build.js:1074 msgid "Delete build allocation" msgstr "" -#: templates/js/translated/build.js:1089 +#: templates/js/translated/build.js:1092 msgid "Edit Build Allocation" msgstr "" -#: templates/js/translated/build.js:1102 +#: templates/js/translated/build.js:1105 msgid "Delete Build Allocation" msgstr "" -#: templates/js/translated/build.js:1133 +#: templates/js/translated/build.js:1136 msgid "No build order allocations found" msgstr "" -#: templates/js/translated/build.js:1178 +#: templates/js/translated/build.js:1181 msgid "Location not specified" msgstr "" -#: templates/js/translated/build.js:1200 +#: templates/js/translated/build.js:1203 msgid "Complete outputs" msgstr "" -#: templates/js/translated/build.js:1218 +#: templates/js/translated/build.js:1221 msgid "Scrap outputs" msgstr "" -#: templates/js/translated/build.js:1236 +#: templates/js/translated/build.js:1239 msgid "Delete outputs" msgstr "" -#: templates/js/translated/build.js:1289 +#: templates/js/translated/build.js:1292 msgid "build output" msgstr "" -#: templates/js/translated/build.js:1290 +#: templates/js/translated/build.js:1293 msgid "build outputs" msgstr "" -#: templates/js/translated/build.js:1294 +#: templates/js/translated/build.js:1297 msgid "Build output actions" msgstr "" -#: templates/js/translated/build.js:1470 +#: templates/js/translated/build.js:1473 msgid "No active build outputs found" msgstr "" -#: templates/js/translated/build.js:1563 +#: templates/js/translated/build.js:1566 msgid "Allocated Lines" msgstr "" -#: templates/js/translated/build.js:1577 +#: templates/js/translated/build.js:1580 msgid "Required Tests" msgstr "" -#: templates/js/translated/build.js:1749 -#: templates/js/translated/purchase_order.js:611 -#: templates/js/translated/sales_order.js:1207 +#: templates/js/translated/build.js:1752 +#: templates/js/translated/purchase_order.js:594 +#: templates/js/translated/sales_order.js:1173 msgid "Select Parts" msgstr "" -#: templates/js/translated/build.js:1750 -#: templates/js/translated/sales_order.js:1208 +#: templates/js/translated/build.js:1753 +#: templates/js/translated/sales_order.js:1174 msgid "You must select at least one part to allocate" msgstr "" -#: templates/js/translated/build.js:1813 -#: templates/js/translated/sales_order.js:1157 +#: templates/js/translated/build.js:1816 +#: templates/js/translated/sales_order.js:1123 msgid "Specify stock allocation quantity" msgstr "" -#: templates/js/translated/build.js:1890 +#: templates/js/translated/build.js:1893 msgid "All Parts Allocated" msgstr "" -#: templates/js/translated/build.js:1891 +#: templates/js/translated/build.js:1894 msgid "All selected parts have been fully allocated" msgstr "" -#: templates/js/translated/build.js:1905 -#: templates/js/translated/sales_order.js:1222 +#: templates/js/translated/build.js:1908 +#: templates/js/translated/sales_order.js:1188 msgid "Select source location (leave blank to take from all locations)" msgstr "" -#: templates/js/translated/build.js:1933 +#: templates/js/translated/build.js:1936 msgid "Allocate Stock Items to Build Order" msgstr "" -#: templates/js/translated/build.js:1944 -#: templates/js/translated/sales_order.js:1319 +#: templates/js/translated/build.js:1947 +#: templates/js/translated/sales_order.js:1285 msgid "No matching stock locations" msgstr "" -#: templates/js/translated/build.js:2017 -#: templates/js/translated/sales_order.js:1398 +#: templates/js/translated/build.js:2020 +#: templates/js/translated/sales_order.js:1364 msgid "No matching stock items" msgstr "" -#: templates/js/translated/build.js:2114 +#: templates/js/translated/build.js:2117 msgid "Automatic Stock Allocation" msgstr "" -#: templates/js/translated/build.js:2115 +#: templates/js/translated/build.js:2118 msgid "Stock items will be automatically allocated to this build order, according to the provided guidelines" msgstr "" -#: templates/js/translated/build.js:2117 +#: templates/js/translated/build.js:2120 msgid "If a location is specified, stock will only be allocated from that location" msgstr "" -#: templates/js/translated/build.js:2118 +#: templates/js/translated/build.js:2121 msgid "If stock is considered interchangeable, it will be allocated from the first location it is found" msgstr "" -#: templates/js/translated/build.js:2119 +#: templates/js/translated/build.js:2122 msgid "If substitute stock is allowed, it will be used where stock of the primary part cannot be found" msgstr "" -#: templates/js/translated/build.js:2149 +#: templates/js/translated/build.js:2152 msgid "Allocate Stock Items" msgstr "" -#: templates/js/translated/build.js:2254 +#: templates/js/translated/build.js:2257 msgid "No builds matching query" msgstr "" -#: templates/js/translated/build.js:2289 templates/js/translated/build.js:2652 +#: templates/js/translated/build.js:2292 templates/js/translated/build.js:2661 #: templates/js/translated/forms.js:2196 templates/js/translated/forms.js:2212 #: templates/js/translated/part.js:2322 templates/js/translated/part.js:2761 -#: templates/js/translated/stock.js:2068 templates/js/translated/stock.js:2795 +#: templates/js/translated/stock.js:2069 templates/js/translated/stock.js:2796 msgid "Select" msgstr "" -#: templates/js/translated/build.js:2303 +#: templates/js/translated/build.js:2306 msgid "Build order is overdue" msgstr "" -#: templates/js/translated/build.js:2385 templates/js/translated/stock.js:3126 +#: templates/js/translated/build.js:2388 templates/js/translated/stock.js:3127 msgid "No user information" msgstr "" -#: templates/js/translated/build.js:2561 -#: templates/js/translated/sales_order.js:1682 +#: templates/js/translated/build.js:2568 +#: templates/js/translated/sales_order.js:1663 msgid "Edit stock allocation" msgstr "" -#: templates/js/translated/build.js:2562 -#: templates/js/translated/sales_order.js:1683 +#: templates/js/translated/build.js:2569 +#: templates/js/translated/sales_order.js:1664 msgid "Delete stock allocation" msgstr "" -#: templates/js/translated/build.js:2577 +#: templates/js/translated/build.js:2584 msgid "Edit Allocation" msgstr "" -#: templates/js/translated/build.js:2589 +#: templates/js/translated/build.js:2596 msgid "Remove Allocation" msgstr "" -#: templates/js/translated/build.js:2628 +#: templates/js/translated/build.js:2636 msgid "build line" msgstr "" -#: templates/js/translated/build.js:2629 +#: templates/js/translated/build.js:2637 msgid "build lines" msgstr "" -#: templates/js/translated/build.js:2647 +#: templates/js/translated/build.js:2656 msgid "No build lines found" msgstr "" -#: templates/js/translated/build.js:2677 templates/js/translated/part.js:793 +#: templates/js/translated/build.js:2686 templates/js/translated/part.js:793 #: templates/js/translated/part.js:1209 msgid "Trackable part" msgstr "" -#: templates/js/translated/build.js:2720 +#: templates/js/translated/build.js:2729 msgid "Gets Inherited" msgstr "" -#: templates/js/translated/build.js:2730 +#: templates/js/translated/build.js:2748 msgid "Unit Quantity" msgstr "" -#: templates/js/translated/build.js:2782 -#: templates/js/translated/sales_order.js:1951 +#: templates/js/translated/build.js:2800 +#: templates/js/translated/sales_order.js:1932 msgid "Sufficient stock available" msgstr "" -#: templates/js/translated/build.js:2837 +#: templates/js/translated/build.js:2855 msgid "Consumable Item" msgstr "" -#: templates/js/translated/build.js:2844 +#: templates/js/translated/build.js:2862 msgid "Tracked item" msgstr "" -#: templates/js/translated/build.js:2845 +#: templates/js/translated/build.js:2863 msgid "Allocate tracked items against individual build outputs" msgstr "" -#: templates/js/translated/build.js:2853 -#: templates/js/translated/sales_order.js:2052 +#: templates/js/translated/build.js:2871 +#: templates/js/translated/sales_order.js:2033 msgid "Build stock" msgstr "" -#: templates/js/translated/build.js:2858 templates/js/translated/stock.js:1953 +#: templates/js/translated/build.js:2876 templates/js/translated/stock.js:1954 msgid "Order stock" msgstr "" -#: templates/js/translated/build.js:2862 -#: templates/js/translated/sales_order.js:2046 +#: templates/js/translated/build.js:2880 +#: templates/js/translated/sales_order.js:2027 msgid "Allocate stock" msgstr "" -#: templates/js/translated/build.js:2866 +#: templates/js/translated/build.js:2884 msgid "Remove stock allocation" msgstr "" @@ -12641,7 +13006,7 @@ msgid "Add Manufacturer" msgstr "" #: templates/js/translated/company.js:111 -#: templates/js/translated/company.js:213 +#: templates/js/translated/company.js:214 msgid "Add Manufacturer Part" msgstr "" @@ -12649,231 +13014,231 @@ msgstr "" msgid "Edit Manufacturer Part" msgstr "" -#: templates/js/translated/company.js:201 +#: templates/js/translated/company.js:202 #: templates/js/translated/purchase_order.js:93 msgid "Add Supplier" msgstr "" -#: templates/js/translated/company.js:243 -#: templates/js/translated/purchase_order.js:318 +#: templates/js/translated/company.js:244 +#: templates/js/translated/purchase_order.js:301 msgid "Add Supplier Part" msgstr "" -#: templates/js/translated/company.js:344 +#: templates/js/translated/company.js:345 msgid "All selected supplier parts will be deleted" msgstr "" -#: templates/js/translated/company.js:360 +#: templates/js/translated/company.js:361 msgid "Delete Supplier Parts" msgstr "" -#: templates/js/translated/company.js:466 +#: templates/js/translated/company.js:467 msgid "Add new Company" msgstr "" -#: templates/js/translated/company.js:546 +#: templates/js/translated/company.js:547 msgid "Parts Supplied" msgstr "" -#: templates/js/translated/company.js:555 +#: templates/js/translated/company.js:556 msgid "Parts Manufactured" msgstr "" -#: templates/js/translated/company.js:570 +#: templates/js/translated/company.js:571 msgid "No company information found" msgstr "" -#: templates/js/translated/company.js:619 +#: templates/js/translated/company.js:620 msgid "Create New Contact" msgstr "" -#: templates/js/translated/company.js:635 -#: templates/js/translated/company.js:758 +#: templates/js/translated/company.js:636 +#: templates/js/translated/company.js:759 msgid "Edit Contact" msgstr "" -#: templates/js/translated/company.js:672 +#: templates/js/translated/company.js:673 msgid "All selected contacts will be deleted" msgstr "" -#: templates/js/translated/company.js:678 -#: templates/js/translated/company.js:742 +#: templates/js/translated/company.js:679 +#: templates/js/translated/company.js:743 msgid "Role" msgstr "" -#: templates/js/translated/company.js:686 +#: templates/js/translated/company.js:687 msgid "Delete Contacts" msgstr "" -#: templates/js/translated/company.js:717 +#: templates/js/translated/company.js:718 msgid "No contacts found" msgstr "" -#: templates/js/translated/company.js:730 +#: templates/js/translated/company.js:731 msgid "Phone Number" msgstr "" -#: templates/js/translated/company.js:736 +#: templates/js/translated/company.js:737 msgid "Email Address" msgstr "" -#: templates/js/translated/company.js:762 +#: templates/js/translated/company.js:763 msgid "Delete Contact" msgstr "" -#: templates/js/translated/company.js:859 +#: templates/js/translated/company.js:860 msgid "Create New Address" msgstr "" -#: templates/js/translated/company.js:874 -#: templates/js/translated/company.js:1035 +#: templates/js/translated/company.js:875 +#: templates/js/translated/company.js:1036 msgid "Edit Address" msgstr "" -#: templates/js/translated/company.js:909 +#: templates/js/translated/company.js:910 msgid "All selected addresses will be deleted" msgstr "" -#: templates/js/translated/company.js:923 +#: templates/js/translated/company.js:924 msgid "Delete Addresses" msgstr "" -#: templates/js/translated/company.js:950 +#: templates/js/translated/company.js:951 msgid "No addresses found" msgstr "" -#: templates/js/translated/company.js:989 +#: templates/js/translated/company.js:990 msgid "Postal city" msgstr "" -#: templates/js/translated/company.js:995 +#: templates/js/translated/company.js:996 msgid "State/province" msgstr "" -#: templates/js/translated/company.js:1007 +#: templates/js/translated/company.js:1008 msgid "Courier notes" msgstr "" -#: templates/js/translated/company.js:1013 +#: templates/js/translated/company.js:1014 msgid "Internal notes" msgstr "" -#: templates/js/translated/company.js:1039 +#: templates/js/translated/company.js:1040 msgid "Delete Address" msgstr "" -#: templates/js/translated/company.js:1112 +#: templates/js/translated/company.js:1113 msgid "All selected manufacturer parts will be deleted" msgstr "" -#: templates/js/translated/company.js:1127 +#: templates/js/translated/company.js:1128 msgid "Delete Manufacturer Parts" msgstr "" -#: templates/js/translated/company.js:1161 +#: templates/js/translated/company.js:1162 msgid "All selected parameters will be deleted" msgstr "" -#: templates/js/translated/company.js:1175 +#: templates/js/translated/company.js:1176 msgid "Delete Parameters" msgstr "" -#: templates/js/translated/company.js:1191 -#: templates/js/translated/company.js:1479 templates/js/translated/part.js:2250 +#: templates/js/translated/company.js:1192 +#: templates/js/translated/company.js:1480 templates/js/translated/part.js:2250 msgid "Order parts" msgstr "" -#: templates/js/translated/company.js:1208 +#: templates/js/translated/company.js:1209 msgid "Delete manufacturer parts" msgstr "" -#: templates/js/translated/company.js:1240 +#: templates/js/translated/company.js:1241 msgid "Manufacturer part actions" msgstr "" -#: templates/js/translated/company.js:1259 +#: templates/js/translated/company.js:1260 msgid "No manufacturer parts found" msgstr "" -#: templates/js/translated/company.js:1279 -#: templates/js/translated/company.js:1567 templates/js/translated/part.js:801 +#: templates/js/translated/company.js:1280 +#: templates/js/translated/company.js:1568 templates/js/translated/part.js:801 #: templates/js/translated/part.js:1217 msgid "Template part" msgstr "" -#: templates/js/translated/company.js:1283 -#: templates/js/translated/company.js:1571 templates/js/translated/part.js:805 +#: templates/js/translated/company.js:1284 +#: templates/js/translated/company.js:1572 templates/js/translated/part.js:805 #: templates/js/translated/part.js:1221 msgid "Assembled part" msgstr "" -#: templates/js/translated/company.js:1403 templates/js/translated/part.js:1471 +#: templates/js/translated/company.js:1404 templates/js/translated/part.js:1471 msgid "No parameters found" msgstr "" -#: templates/js/translated/company.js:1438 templates/js/translated/part.js:1534 +#: templates/js/translated/company.js:1439 templates/js/translated/part.js:1534 msgid "Edit parameter" msgstr "" -#: templates/js/translated/company.js:1439 templates/js/translated/part.js:1535 +#: templates/js/translated/company.js:1440 templates/js/translated/part.js:1535 msgid "Delete parameter" msgstr "" -#: templates/js/translated/company.js:1456 templates/js/translated/part.js:1440 +#: templates/js/translated/company.js:1457 templates/js/translated/part.js:1440 msgid "Edit Parameter" msgstr "" -#: templates/js/translated/company.js:1465 templates/js/translated/part.js:1556 +#: templates/js/translated/company.js:1466 templates/js/translated/part.js:1556 msgid "Delete Parameter" msgstr "" -#: templates/js/translated/company.js:1496 +#: templates/js/translated/company.js:1497 msgid "Delete supplier parts" msgstr "" -#: templates/js/translated/company.js:1546 +#: templates/js/translated/company.js:1547 msgid "No supplier parts found" msgstr "" -#: templates/js/translated/company.js:1664 +#: templates/js/translated/company.js:1665 msgid "Base Units" msgstr "" -#: templates/js/translated/company.js:1694 +#: templates/js/translated/company.js:1695 msgid "Availability" msgstr "" -#: templates/js/translated/company.js:1725 +#: templates/js/translated/company.js:1726 msgid "Edit supplier part" msgstr "" -#: templates/js/translated/company.js:1726 +#: templates/js/translated/company.js:1727 msgid "Delete supplier part" msgstr "" -#: templates/js/translated/company.js:1779 +#: templates/js/translated/company.js:1780 #: templates/js/translated/pricing.js:694 msgid "Delete Price Break" msgstr "" -#: templates/js/translated/company.js:1789 +#: templates/js/translated/company.js:1790 #: templates/js/translated/pricing.js:712 msgid "Edit Price Break" msgstr "" -#: templates/js/translated/company.js:1804 +#: templates/js/translated/company.js:1805 msgid "No price break information found" msgstr "" -#: templates/js/translated/company.js:1833 +#: templates/js/translated/company.js:1834 msgid "Last updated" msgstr "" -#: templates/js/translated/company.js:1840 +#: templates/js/translated/company.js:1841 msgid "Edit price break" msgstr "" -#: templates/js/translated/company.js:1841 +#: templates/js/translated/company.js:1842 msgid "Delete price break" msgstr "" @@ -12977,19 +13342,19 @@ msgstr "" msgid "Select Columns" msgstr "" -#: templates/js/translated/helpers.js:80 +#: templates/js/translated/helpers.js:81 msgid "YES" msgstr "" -#: templates/js/translated/helpers.js:83 +#: templates/js/translated/helpers.js:84 msgid "NO" msgstr "" -#: templates/js/translated/helpers.js:96 +#: templates/js/translated/helpers.js:97 msgid "True" msgstr "" -#: templates/js/translated/helpers.js:97 +#: templates/js/translated/helpers.js:98 msgid "False" msgstr "" @@ -13131,7 +13496,7 @@ msgid "Delete Line" msgstr "" #: templates/js/translated/order.js:306 -#: templates/js/translated/purchase_order.js:2060 +#: templates/js/translated/purchase_order.js:2044 msgid "No line items found" msgstr "" @@ -13366,19 +13731,19 @@ msgid "Delete Part Parameter Template" msgstr "" #: templates/js/translated/part.js:1723 -#: templates/js/translated/purchase_order.js:1724 +#: templates/js/translated/purchase_order.js:1708 msgid "No purchase orders found" msgstr "" #: templates/js/translated/part.js:1867 -#: templates/js/translated/purchase_order.js:2223 +#: templates/js/translated/purchase_order.js:2207 #: templates/js/translated/return_order.js:754 -#: templates/js/translated/sales_order.js:1911 +#: templates/js/translated/sales_order.js:1892 msgid "This line item is overdue" msgstr "" #: templates/js/translated/part.js:1913 -#: templates/js/translated/purchase_order.js:2290 +#: templates/js/translated/purchase_order.js:2274 msgid "Receive line item" msgstr "" @@ -13419,7 +13784,7 @@ msgid "No category" msgstr "" #: templates/js/translated/part.js:2550 templates/js/translated/part.js:2680 -#: templates/js/translated/stock.js:2754 +#: templates/js/translated/stock.js:2755 msgid "Display as list" msgstr "" @@ -13431,7 +13796,7 @@ msgstr "" msgid "No subcategories found" msgstr "" -#: templates/js/translated/part.js:2700 templates/js/translated/stock.js:2774 +#: templates/js/translated/part.js:2700 templates/js/translated/stock.js:2775 msgid "Display as tree" msgstr "" @@ -13483,23 +13848,23 @@ msgstr "" msgid "Speculative" msgstr "" -#: templates/js/translated/part.js:3128 +#: templates/js/translated/part.js:3144 msgid "No scheduling information available for this part" msgstr "" -#: templates/js/translated/part.js:3134 +#: templates/js/translated/part.js:3150 msgid "Error fetching scheduling information for this part" msgstr "" -#: templates/js/translated/part.js:3230 +#: templates/js/translated/part.js:3246 msgid "Scheduled Stock Quantities" msgstr "" -#: templates/js/translated/part.js:3246 +#: templates/js/translated/part.js:3262 msgid "Maximum Quantity" msgstr "" -#: templates/js/translated/part.js:3291 +#: templates/js/translated/part.js:3307 msgid "Minimum Stock Level" msgstr "" @@ -13575,267 +13940,243 @@ msgstr "" msgid "Purchase Price History" msgstr "" -#: templates/js/translated/pricing.js:894 +#: templates/js/translated/pricing.js:892 msgid "No sales history data available" msgstr "" -#: templates/js/translated/pricing.js:916 +#: templates/js/translated/pricing.js:914 msgid "Sale Price History" msgstr "" -#: templates/js/translated/pricing.js:1005 +#: templates/js/translated/pricing.js:1003 msgid "No variant data available" msgstr "" -#: templates/js/translated/pricing.js:1045 +#: templates/js/translated/pricing.js:1043 msgid "Variant Part" msgstr "" -#: templates/js/translated/purchase_order.js:169 -msgid "Select purchase order to duplicate" -msgstr "" - -#: templates/js/translated/purchase_order.js:176 -msgid "Duplicate Line Items" -msgstr "" - -#: templates/js/translated/purchase_order.js:177 -msgid "Duplicate all line items from the selected order" -msgstr "" - -#: templates/js/translated/purchase_order.js:184 -msgid "Duplicate Extra Lines" -msgstr "" - -#: templates/js/translated/purchase_order.js:185 -msgid "Duplicate extra line items from the selected order" -msgstr "" - -#: templates/js/translated/purchase_order.js:206 +#: templates/js/translated/purchase_order.js:188 msgid "Edit Purchase Order" msgstr "" -#: templates/js/translated/purchase_order.js:223 +#: templates/js/translated/purchase_order.js:205 msgid "Duplication Options" msgstr "" -#: templates/js/translated/purchase_order.js:431 +#: templates/js/translated/purchase_order.js:414 msgid "Complete Purchase Order" msgstr "" -#: templates/js/translated/purchase_order.js:448 +#: templates/js/translated/purchase_order.js:431 #: templates/js/translated/return_order.js:210 -#: templates/js/translated/sales_order.js:552 +#: templates/js/translated/sales_order.js:511 msgid "Mark this order as complete?" msgstr "" -#: templates/js/translated/purchase_order.js:454 +#: templates/js/translated/purchase_order.js:437 msgid "All line items have been received" msgstr "" -#: templates/js/translated/purchase_order.js:459 +#: templates/js/translated/purchase_order.js:442 msgid "This order has line items which have not been marked as received." msgstr "" -#: templates/js/translated/purchase_order.js:460 +#: templates/js/translated/purchase_order.js:443 msgid "Completing this order means that the order and line items will no longer be editable." msgstr "" -#: templates/js/translated/purchase_order.js:483 +#: templates/js/translated/purchase_order.js:466 msgid "Cancel Purchase Order" msgstr "" -#: templates/js/translated/purchase_order.js:488 +#: templates/js/translated/purchase_order.js:471 msgid "Are you sure you wish to cancel this purchase order?" msgstr "" -#: templates/js/translated/purchase_order.js:494 +#: templates/js/translated/purchase_order.js:477 msgid "This purchase order can not be cancelled" msgstr "" -#: templates/js/translated/purchase_order.js:515 +#: templates/js/translated/purchase_order.js:498 #: templates/js/translated/return_order.js:164 msgid "After placing this order, line items will no longer be editable." msgstr "" -#: templates/js/translated/purchase_order.js:520 +#: templates/js/translated/purchase_order.js:503 msgid "Issue Purchase Order" msgstr "" -#: templates/js/translated/purchase_order.js:612 +#: templates/js/translated/purchase_order.js:595 msgid "At least one purchaseable part must be selected" msgstr "" -#: templates/js/translated/purchase_order.js:637 +#: templates/js/translated/purchase_order.js:620 msgid "Quantity to order" msgstr "" -#: templates/js/translated/purchase_order.js:646 +#: templates/js/translated/purchase_order.js:629 msgid "New supplier part" msgstr "" -#: templates/js/translated/purchase_order.js:664 +#: templates/js/translated/purchase_order.js:647 msgid "New purchase order" msgstr "" -#: templates/js/translated/purchase_order.js:705 +#: templates/js/translated/purchase_order.js:688 msgid "Add to purchase order" msgstr "" -#: templates/js/translated/purchase_order.js:755 +#: templates/js/translated/purchase_order.js:738 msgid "Merge" msgstr "" -#: templates/js/translated/purchase_order.js:859 +#: templates/js/translated/purchase_order.js:842 msgid "No matching supplier parts" msgstr "" -#: templates/js/translated/purchase_order.js:878 +#: templates/js/translated/purchase_order.js:861 msgid "No matching purchase orders" msgstr "" -#: templates/js/translated/purchase_order.js:1073 +#: templates/js/translated/purchase_order.js:1056 #: templates/js/translated/return_order.js:490 msgid "Select Line Items" msgstr "" -#: templates/js/translated/purchase_order.js:1074 +#: templates/js/translated/purchase_order.js:1057 #: templates/js/translated/return_order.js:491 msgid "At least one line item must be selected" msgstr "" -#: templates/js/translated/purchase_order.js:1104 +#: templates/js/translated/purchase_order.js:1087 msgid "Received Quantity" msgstr "" -#: templates/js/translated/purchase_order.js:1115 +#: templates/js/translated/purchase_order.js:1098 msgid "Quantity to receive" msgstr "" -#: templates/js/translated/purchase_order.js:1170 +#: templates/js/translated/purchase_order.js:1153 #: templates/js/translated/stock.js:1215 msgid "Specify packaging for incoming stock items" msgstr "" -#: templates/js/translated/purchase_order.js:1223 +#: templates/js/translated/purchase_order.js:1206 msgid "Stock Status" msgstr "" -#: templates/js/translated/purchase_order.js:1237 +#: templates/js/translated/purchase_order.js:1220 msgid "Add barcode" msgstr "" -#: templates/js/translated/purchase_order.js:1238 +#: templates/js/translated/purchase_order.js:1221 msgid "Remove barcode" msgstr "" -#: templates/js/translated/purchase_order.js:1241 +#: templates/js/translated/purchase_order.js:1224 msgid "Specify location" msgstr "" -#: templates/js/translated/purchase_order.js:1249 +#: templates/js/translated/purchase_order.js:1232 msgid "Add batch code" msgstr "" -#: templates/js/translated/purchase_order.js:1259 +#: templates/js/translated/purchase_order.js:1242 msgid "Specify packaging" msgstr "" -#: templates/js/translated/purchase_order.js:1270 +#: templates/js/translated/purchase_order.js:1253 msgid "Add serial numbers" msgstr "" -#: templates/js/translated/purchase_order.js:1281 +#: templates/js/translated/purchase_order.js:1264 msgid "Add note" msgstr "" -#: templates/js/translated/purchase_order.js:1338 +#: templates/js/translated/purchase_order.js:1321 msgid "Serials" msgstr "" -#: templates/js/translated/purchase_order.js:1368 +#: templates/js/translated/purchase_order.js:1351 msgid "Order Code" msgstr "" -#: templates/js/translated/purchase_order.js:1370 +#: templates/js/translated/purchase_order.js:1353 msgid "Quantity to Receive" msgstr "" -#: templates/js/translated/purchase_order.js:1395 +#: templates/js/translated/purchase_order.js:1379 #: templates/js/translated/return_order.js:559 msgid "Confirm receipt of items" msgstr "" -#: templates/js/translated/purchase_order.js:1396 +#: templates/js/translated/purchase_order.js:1380 msgid "Receive Purchase Order Items" msgstr "" -#: templates/js/translated/purchase_order.js:1464 +#: templates/js/translated/purchase_order.js:1448 msgid "Scan Item Barcode" msgstr "" -#: templates/js/translated/purchase_order.js:1465 +#: templates/js/translated/purchase_order.js:1449 msgid "Scan barcode on incoming item (must not match any existing stock items)" msgstr "" -#: templates/js/translated/purchase_order.js:1479 +#: templates/js/translated/purchase_order.js:1463 msgid "Invalid barcode data" msgstr "" -#: templates/js/translated/purchase_order.js:1751 +#: templates/js/translated/purchase_order.js:1735 #: templates/js/translated/return_order.js:285 -#: templates/js/translated/sales_order.js:810 -#: templates/js/translated/sales_order.js:1034 +#: templates/js/translated/sales_order.js:769 +#: templates/js/translated/sales_order.js:1007 msgid "Order is overdue" msgstr "" -#: templates/js/translated/purchase_order.js:1913 +#: templates/js/translated/purchase_order.js:1897 msgid "All selected Line items will be deleted" msgstr "" -#: templates/js/translated/purchase_order.js:1931 +#: templates/js/translated/purchase_order.js:1915 msgid "Delete selected Line items?" msgstr "" -#: templates/js/translated/purchase_order.js:1986 -#: templates/js/translated/sales_order.js:2106 +#: templates/js/translated/purchase_order.js:1970 +#: templates/js/translated/sales_order.js:2087 msgid "Duplicate Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2001 +#: templates/js/translated/purchase_order.js:1985 #: templates/js/translated/return_order.js:475 #: templates/js/translated/return_order.js:667 -#: templates/js/translated/sales_order.js:2119 +#: templates/js/translated/sales_order.js:2100 msgid "Edit Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2012 +#: templates/js/translated/purchase_order.js:1996 #: templates/js/translated/return_order.js:680 -#: templates/js/translated/sales_order.js:2130 +#: templates/js/translated/sales_order.js:2111 msgid "Delete Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2294 -#: templates/js/translated/sales_order.js:2060 +#: templates/js/translated/purchase_order.js:2278 +#: templates/js/translated/sales_order.js:2041 msgid "Duplicate line item" msgstr "" -#: templates/js/translated/purchase_order.js:2295 +#: templates/js/translated/purchase_order.js:2279 #: templates/js/translated/return_order.js:799 -#: templates/js/translated/sales_order.js:2061 +#: templates/js/translated/sales_order.js:2042 msgid "Edit line item" msgstr "" -#: templates/js/translated/purchase_order.js:2296 +#: templates/js/translated/purchase_order.js:2280 #: templates/js/translated/return_order.js:803 -#: templates/js/translated/sales_order.js:2067 +#: templates/js/translated/sales_order.js:2048 msgid "Delete line item" msgstr "" -#: templates/js/translated/report.js:49 -msgid "Print Report" -msgstr "" - #: templates/js/translated/report.js:68 msgid "Report print successful" msgstr "" @@ -13878,7 +14219,7 @@ msgid "No return orders found" msgstr "" #: templates/js/translated/return_order.js:299 -#: templates/js/translated/sales_order.js:824 +#: templates/js/translated/sales_order.js:783 msgid "Invalid Customer" msgstr "" @@ -13887,7 +14228,7 @@ msgid "Receive Return Order Items" msgstr "" #: templates/js/translated/return_order.js:691 -#: templates/js/translated/sales_order.js:2267 +#: templates/js/translated/sales_order.js:2248 msgid "No matching line items" msgstr "" @@ -13903,188 +14244,181 @@ msgstr "" msgid "Edit Sales Order" msgstr "" -#: templates/js/translated/sales_order.js:291 +#: templates/js/translated/sales_order.js:288 msgid "No stock items have been allocated to this shipment" msgstr "" -#: templates/js/translated/sales_order.js:296 -msgid "The following stock items will be shipped" -msgstr "" - -#: templates/js/translated/sales_order.js:336 +#: templates/js/translated/sales_order.js:294 msgid "Complete Shipment" msgstr "" -#: templates/js/translated/sales_order.js:360 +#: templates/js/translated/sales_order.js:318 msgid "Confirm Shipment" msgstr "" -#: templates/js/translated/sales_order.js:416 +#: templates/js/translated/sales_order.js:375 msgid "No pending shipments found" msgstr "" -#: templates/js/translated/sales_order.js:420 +#: templates/js/translated/sales_order.js:379 msgid "No stock items have been allocated to pending shipments" msgstr "" -#: templates/js/translated/sales_order.js:430 +#: templates/js/translated/sales_order.js:389 msgid "Complete Shipments" msgstr "" -#: templates/js/translated/sales_order.js:452 +#: templates/js/translated/sales_order.js:411 msgid "Skip" msgstr "" -#: templates/js/translated/sales_order.js:484 +#: templates/js/translated/sales_order.js:443 msgid "Ship Sales Order" msgstr "" -#: templates/js/translated/sales_order.js:500 +#: templates/js/translated/sales_order.js:459 msgid "Ship this order?" msgstr "" -#: templates/js/translated/sales_order.js:506 +#: templates/js/translated/sales_order.js:465 msgid "Order cannot be shipped as there are incomplete shipments" msgstr "" -#: templates/js/translated/sales_order.js:513 +#: templates/js/translated/sales_order.js:472 msgid "This order has line items which have not been completed." msgstr "" -#: templates/js/translated/sales_order.js:514 +#: templates/js/translated/sales_order.js:473 msgid "Shipping this order means that the order and line items will no longer be editable." msgstr "" -#: templates/js/translated/sales_order.js:572 +#: templates/js/translated/sales_order.js:531 msgid "Issue this Sales Order?" msgstr "" -#: templates/js/translated/sales_order.js:577 +#: templates/js/translated/sales_order.js:536 msgid "Issue Sales Order" msgstr "" -#: templates/js/translated/sales_order.js:596 +#: templates/js/translated/sales_order.js:555 msgid "Cancel Sales Order" msgstr "" -#: templates/js/translated/sales_order.js:601 +#: templates/js/translated/sales_order.js:560 msgid "Cancelling this order means that the order will no longer be editable." msgstr "" -#: templates/js/translated/sales_order.js:655 +#: templates/js/translated/sales_order.js:614 msgid "Create New Shipment" msgstr "" -#: templates/js/translated/sales_order.js:764 +#: templates/js/translated/sales_order.js:723 msgid "No sales orders found" msgstr "" -#: templates/js/translated/sales_order.js:944 +#: templates/js/translated/sales_order.js:907 msgid "Edit shipment" msgstr "" -#: templates/js/translated/sales_order.js:947 +#: templates/js/translated/sales_order.js:910 msgid "Complete shipment" msgstr "" -#: templates/js/translated/sales_order.js:952 +#: templates/js/translated/sales_order.js:915 msgid "Delete shipment" msgstr "" -#: templates/js/translated/sales_order.js:969 +#: templates/js/translated/sales_order.js:932 msgid "Edit Shipment" msgstr "" -#: templates/js/translated/sales_order.js:984 +#: templates/js/translated/sales_order.js:947 msgid "Delete Shipment" msgstr "" -#: templates/js/translated/sales_order.js:1017 +#: templates/js/translated/sales_order.js:989 msgid "No matching shipments found" msgstr "" -#: templates/js/translated/sales_order.js:1042 +#: templates/js/translated/sales_order.js:1015 msgid "Shipment Reference" msgstr "" -#: templates/js/translated/sales_order.js:1066 -#: templates/js/translated/sales_order.js:1565 +#: templates/js/translated/sales_order.js:1032 +#: templates/js/translated/sales_order.js:1531 msgid "Not shipped" msgstr "" -#: templates/js/translated/sales_order.js:1084 +#: templates/js/translated/sales_order.js:1050 msgid "Tracking" msgstr "" -#: templates/js/translated/sales_order.js:1088 +#: templates/js/translated/sales_order.js:1054 msgid "Invoice" msgstr "" -#: templates/js/translated/sales_order.js:1255 +#: templates/js/translated/sales_order.js:1221 msgid "Add Shipment" msgstr "" -#: templates/js/translated/sales_order.js:1306 +#: templates/js/translated/sales_order.js:1272 msgid "Confirm stock allocation" msgstr "" -#: templates/js/translated/sales_order.js:1307 +#: templates/js/translated/sales_order.js:1273 msgid "Allocate Stock Items to Sales Order" msgstr "" -#: templates/js/translated/sales_order.js:1513 +#: templates/js/translated/sales_order.js:1479 msgid "No sales order allocations found" msgstr "" -#: templates/js/translated/sales_order.js:1605 +#: templates/js/translated/sales_order.js:1571 msgid "Edit Stock Allocation" msgstr "" -#: templates/js/translated/sales_order.js:1619 +#: templates/js/translated/sales_order.js:1585 msgid "Confirm Delete Operation" msgstr "" -#: templates/js/translated/sales_order.js:1620 +#: templates/js/translated/sales_order.js:1586 msgid "Delete Stock Allocation" msgstr "" -#: templates/js/translated/sales_order.js:1659 -#: templates/js/translated/sales_order.js:1746 +#: templates/js/translated/sales_order.js:1640 +#: templates/js/translated/sales_order.js:1727 #: templates/js/translated/stock.js:1861 msgid "Shipped to customer" msgstr "" -#: templates/js/translated/sales_order.js:1667 -#: templates/js/translated/sales_order.js:1755 +#: templates/js/translated/sales_order.js:1648 +#: templates/js/translated/sales_order.js:1736 msgid "Stock location not specified" msgstr "" -#: templates/js/translated/sales_order.js:2044 -msgid "Allocate serial numbers" -msgstr "" - -#: templates/js/translated/sales_order.js:2048 -msgid "Purchase stock" -msgstr "" - -#: templates/js/translated/sales_order.js:2057 -#: templates/js/translated/sales_order.js:2245 -msgid "Calculate price" -msgstr "" - -#: templates/js/translated/sales_order.js:2071 -msgid "Cannot be deleted as items have been shipped" -msgstr "" - -#: templates/js/translated/sales_order.js:2074 -msgid "Cannot be deleted as items have been allocated" -msgstr "" - -#: templates/js/translated/sales_order.js:2145 +#: templates/js/translated/sales_order.js:2025 +#: templates/js/translated/sales_order.js:2126 msgid "Allocate Serial Numbers" msgstr "" -#: templates/js/translated/sales_order.js:2253 +#: templates/js/translated/sales_order.js:2029 +msgid "Purchase stock" +msgstr "" + +#: templates/js/translated/sales_order.js:2038 +#: templates/js/translated/sales_order.js:2226 +msgid "Calculate price" +msgstr "" + +#: templates/js/translated/sales_order.js:2052 +msgid "Cannot be deleted as items have been shipped" +msgstr "" + +#: templates/js/translated/sales_order.js:2055 +msgid "Cannot be deleted as items have been allocated" +msgstr "" + +#: templates/js/translated/sales_order.js:2234 msgid "Update Unit Price" msgstr "" @@ -14209,11 +14543,8 @@ msgid "Find Serial Number" msgstr "" #: templates/js/translated/stock.js:603 templates/js/translated/stock.js:604 -msgid "Enter serial number" -msgstr "" - #: templates/js/translated/stock.js:620 -msgid "Enter a serial number" +msgid "Enter serial number" msgstr "" #: templates/js/translated/stock.js:640 @@ -14284,7 +14615,7 @@ msgstr "" msgid "Add Stock" msgstr "" -#: templates/js/translated/stock.js:1049 users/models.py:396 +#: templates/js/translated/stock.js:1049 users/models.py:398 msgid "Add" msgstr "Dodaj" @@ -14308,7 +14639,7 @@ msgstr "" msgid "Adjust packaging" msgstr "" -#: templates/js/translated/stock.js:1256 templates/js/translated/stock.js:3382 +#: templates/js/translated/stock.js:1256 templates/js/translated/stock.js:3383 msgid "Select Stock Items" msgstr "" @@ -14320,18 +14651,6 @@ msgstr "" msgid "Confirm stock adjustment" msgstr "" -#: templates/js/translated/stock.js:1448 -msgid "PASS" -msgstr "" - -#: templates/js/translated/stock.js:1450 -msgid "FAIL" -msgstr "" - -#: templates/js/translated/stock.js:1455 -msgid "NO RESULT" -msgstr "" - #: templates/js/translated/stock.js:1535 msgid "Pass test" msgstr "" @@ -14388,216 +14707,216 @@ msgstr "" msgid "No stock location set" msgstr "" -#: templates/js/translated/stock.js:1927 +#: templates/js/translated/stock.js:1928 msgid "Change stock status" msgstr "" -#: templates/js/translated/stock.js:1936 +#: templates/js/translated/stock.js:1937 msgid "Merge stock" msgstr "" -#: templates/js/translated/stock.js:1985 +#: templates/js/translated/stock.js:1986 msgid "Delete stock" msgstr "" -#: templates/js/translated/stock.js:2038 +#: templates/js/translated/stock.js:2039 msgid "stock items" msgstr "" -#: templates/js/translated/stock.js:2043 +#: templates/js/translated/stock.js:2044 msgid "Scan to location" msgstr "" -#: templates/js/translated/stock.js:2054 +#: templates/js/translated/stock.js:2055 msgid "Stock Actions" msgstr "" -#: templates/js/translated/stock.js:2098 +#: templates/js/translated/stock.js:2099 msgid "Load installed items" msgstr "" -#: templates/js/translated/stock.js:2176 +#: templates/js/translated/stock.js:2177 msgid "Stock item is in production" msgstr "" -#: templates/js/translated/stock.js:2181 +#: templates/js/translated/stock.js:2182 msgid "Stock item assigned to sales order" msgstr "" -#: templates/js/translated/stock.js:2184 +#: templates/js/translated/stock.js:2185 msgid "Stock item assigned to customer" msgstr "" -#: templates/js/translated/stock.js:2187 +#: templates/js/translated/stock.js:2188 msgid "Serialized stock item has been allocated" msgstr "" -#: templates/js/translated/stock.js:2189 +#: templates/js/translated/stock.js:2190 msgid "Stock item has been fully allocated" msgstr "" -#: templates/js/translated/stock.js:2191 +#: templates/js/translated/stock.js:2192 msgid "Stock item has been partially allocated" msgstr "" -#: templates/js/translated/stock.js:2194 +#: templates/js/translated/stock.js:2195 msgid "Stock item has been installed in another item" msgstr "" -#: templates/js/translated/stock.js:2196 +#: templates/js/translated/stock.js:2197 msgid "Stock item has been consumed by a build order" msgstr "" -#: templates/js/translated/stock.js:2200 +#: templates/js/translated/stock.js:2201 msgid "Stock item has expired" msgstr "" -#: templates/js/translated/stock.js:2202 +#: templates/js/translated/stock.js:2203 msgid "Stock item will expire soon" msgstr "" -#: templates/js/translated/stock.js:2207 +#: templates/js/translated/stock.js:2208 msgid "Stock item has been rejected" msgstr "" -#: templates/js/translated/stock.js:2209 +#: templates/js/translated/stock.js:2210 msgid "Stock item is lost" msgstr "" -#: templates/js/translated/stock.js:2211 +#: templates/js/translated/stock.js:2212 msgid "Stock item is destroyed" msgstr "" -#: templates/js/translated/stock.js:2215 +#: templates/js/translated/stock.js:2216 #: templates/js/translated/table_filters.js:357 msgid "Depleted" msgstr "" -#: templates/js/translated/stock.js:2380 +#: templates/js/translated/stock.js:2381 msgid "Supplier part not specified" msgstr "" -#: templates/js/translated/stock.js:2427 +#: templates/js/translated/stock.js:2428 msgid "Stock Value" msgstr "" -#: templates/js/translated/stock.js:2555 +#: templates/js/translated/stock.js:2556 msgid "No stock items matching query" msgstr "" -#: templates/js/translated/stock.js:2658 +#: templates/js/translated/stock.js:2659 msgid "stock locations" msgstr "" -#: templates/js/translated/stock.js:2813 +#: templates/js/translated/stock.js:2814 msgid "Load Sublocations" msgstr "" -#: templates/js/translated/stock.js:2930 +#: templates/js/translated/stock.js:2931 msgid "Details" msgstr "" -#: templates/js/translated/stock.js:2934 +#: templates/js/translated/stock.js:2935 msgid "No changes" msgstr "" -#: templates/js/translated/stock.js:2946 +#: templates/js/translated/stock.js:2947 msgid "Part information unavailable" msgstr "" -#: templates/js/translated/stock.js:2968 +#: templates/js/translated/stock.js:2969 msgid "Location no longer exists" msgstr "" -#: templates/js/translated/stock.js:2985 +#: templates/js/translated/stock.js:2986 msgid "Build order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3000 +#: templates/js/translated/stock.js:3001 msgid "Purchase order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3017 +#: templates/js/translated/stock.js:3018 msgid "Sales Order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3034 +#: templates/js/translated/stock.js:3035 msgid "Return Order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3053 +#: templates/js/translated/stock.js:3054 msgid "Customer no longer exists" msgstr "" -#: templates/js/translated/stock.js:3071 +#: templates/js/translated/stock.js:3072 msgid "Stock item no longer exists" msgstr "" -#: templates/js/translated/stock.js:3089 +#: templates/js/translated/stock.js:3090 msgid "Added" msgstr "" -#: templates/js/translated/stock.js:3097 +#: templates/js/translated/stock.js:3098 msgid "Removed" msgstr "" -#: templates/js/translated/stock.js:3169 +#: templates/js/translated/stock.js:3170 msgid "No installed items" msgstr "" -#: templates/js/translated/stock.js:3223 templates/js/translated/stock.js:3259 +#: templates/js/translated/stock.js:3224 templates/js/translated/stock.js:3260 msgid "Uninstall Stock Item" msgstr "" -#: templates/js/translated/stock.js:3280 +#: templates/js/translated/stock.js:3281 msgid "Select stock item to uninstall" msgstr "" -#: templates/js/translated/stock.js:3301 +#: templates/js/translated/stock.js:3302 msgid "Install another stock item into this item" msgstr "" -#: templates/js/translated/stock.js:3302 +#: templates/js/translated/stock.js:3303 msgid "Stock items can only be installed if they meet the following criteria" msgstr "" -#: templates/js/translated/stock.js:3304 +#: templates/js/translated/stock.js:3305 msgid "The Stock Item links to a Part which is the BOM for this Stock Item" msgstr "" -#: templates/js/translated/stock.js:3305 +#: templates/js/translated/stock.js:3306 msgid "The Stock Item is currently available in stock" msgstr "" -#: templates/js/translated/stock.js:3306 +#: templates/js/translated/stock.js:3307 msgid "The Stock Item is not already installed in another item" msgstr "" -#: templates/js/translated/stock.js:3307 +#: templates/js/translated/stock.js:3308 msgid "The Stock Item is tracked by either a batch code or serial number" msgstr "" -#: templates/js/translated/stock.js:3320 +#: templates/js/translated/stock.js:3321 msgid "Select part to install" msgstr "" -#: templates/js/translated/stock.js:3383 +#: templates/js/translated/stock.js:3384 msgid "Select one or more stock items" msgstr "" -#: templates/js/translated/stock.js:3396 +#: templates/js/translated/stock.js:3397 msgid "Selected stock items" msgstr "" -#: templates/js/translated/stock.js:3400 +#: templates/js/translated/stock.js:3401 msgid "Change Stock Status" msgstr "" -#: templates/js/translated/stock.js:3477 +#: templates/js/translated/stock.js:3478 msgid "This week" msgstr "" -#: templates/js/translated/stock.js:3485 +#: templates/js/translated/stock.js:3486 msgid "This month" msgstr "" @@ -14734,10 +15053,6 @@ msgstr "" msgid "Show items which are in production" msgstr "" -#: templates/js/translated/table_filters.js:372 -msgid "Include Variants" -msgstr "" - #: templates/js/translated/table_filters.js:373 msgid "Include stock items for variant parts" msgstr "" @@ -15012,10 +15327,6 @@ msgstr "" msgid "An error occurred while attempting to login via your social network account." msgstr "" -#: templates/socialaccount/authentication_error.html:13 -msgid "Contact your system administrator for further information." -msgstr "" - #: templates/socialaccount/login.html:13 #, python-format msgid "Connect %(provider)s" @@ -15141,27 +15452,27 @@ msgstr "Tak" msgid "No" msgstr "Nie" -#: users/admin.py:104 +#: users/admin.py:101 msgid "Users" msgstr "Użytkownicy" -#: users/admin.py:105 +#: users/admin.py:102 msgid "Select which users are assigned to this group" msgstr "" -#: users/admin.py:249 +#: users/admin.py:246 msgid "The following users are members of multiple groups" msgstr "" -#: users/admin.py:283 +#: users/admin.py:280 msgid "Personal info" msgstr "Informacje osobiste" -#: users/admin.py:285 +#: users/admin.py:282 msgid "Permissions" msgstr "Uprawnienia" -#: users/admin.py:288 +#: users/admin.py:285 msgid "Important dates" msgstr "Ważne daty" @@ -15205,35 +15516,35 @@ msgstr "" msgid "Revoked" msgstr "" -#: users/models.py:379 +#: users/models.py:381 msgid "Permission set" msgstr "Uprawnienia nadane" -#: users/models.py:388 +#: users/models.py:390 msgid "Group" msgstr "Grupa" -#: users/models.py:392 +#: users/models.py:394 msgid "View" msgstr "Widok" -#: users/models.py:392 +#: users/models.py:394 msgid "Permission to view items" msgstr "Uprawnienie do wyświetlania przedmiotów" -#: users/models.py:396 +#: users/models.py:398 msgid "Permission to add items" msgstr "Uprawnienie do dodawania przedmiotów" -#: users/models.py:400 +#: users/models.py:402 msgid "Change" msgstr "Zmień" -#: users/models.py:402 +#: users/models.py:404 msgid "Permissions to edit items" msgstr "Uprawnienie do edycji przedmiotów" -#: users/models.py:408 +#: users/models.py:410 msgid "Permission to delete items" msgstr "Uprawnienie do usuwania przedmiotów" diff --git a/src/backend/InvenTree/locale/pt/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/pt/LC_MESSAGES/django.po index 7d9c658a97..e4fad7500d 100644 --- a/src/backend/InvenTree/locale/pt/LC_MESSAGES/django.po +++ b/src/backend/InvenTree/locale/pt/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-08-20 01:22+0000\n" -"PO-Revision-Date: 2024-08-20 19:51\n" +"POT-Creation-Date: 2024-11-04 03:11+0000\n" +"PO-Revision-Date: 2024-11-04 03:14\n" "Last-Translator: \n" "Language-Team: Portuguese\n" "Language: pt_PT\n" @@ -14,81 +14,89 @@ msgstr "" "X-Crowdin-Project: inventree\n" "X-Crowdin-Project-ID: 452300\n" "X-Crowdin-Language: pt-PT\n" -"X-Crowdin-File: /[inventree.InvenTree] l10/src/backend/InvenTree/locale/en/LC_MESSAGES/django.po\n" -"X-Crowdin-File-ID: 216\n" +"X-Crowdin-File: /src/backend/InvenTree/locale/en/LC_MESSAGES/django.po\n" +"X-Crowdin-File-ID: 250\n" -#: InvenTree/api.py:269 +#: InvenTree/api.py:270 msgid "API endpoint not found" msgstr "API endpoint não encontrado" -#: InvenTree/api.py:502 +#: InvenTree/api.py:387 +msgid "Invalid items list provided" +msgstr "" + +#: InvenTree/api.py:396 +msgid "Invalid filters provided" +msgstr "" + +#: InvenTree/api.py:401 +msgid "No items found to delete" +msgstr "" + +#: InvenTree/api.py:515 msgid "User does not have permission to view this model" msgstr "Usuário não tem permissão para ver este modelo" -#: InvenTree/conversion.py:160 +#: InvenTree/conversion.py:161 #, python-brace-format msgid "Invalid unit provided ({unit})" msgstr "Unidade inválida fornecida ({unit})" -#: InvenTree/conversion.py:177 +#: InvenTree/conversion.py:178 msgid "No value provided" msgstr "Nenhum valor fornecido" -#: InvenTree/conversion.py:204 +#: InvenTree/conversion.py:205 #, python-brace-format msgid "Could not convert {original} to {unit}" msgstr "Não foi possível converter {original} para {unit}" -#: InvenTree/conversion.py:206 -msgid "Invalid quantity supplied" +#: InvenTree/conversion.py:207 InvenTree/conversion.py:221 +#: InvenTree/helpers.py:505 order/models.py:589 order/models.py:832 +msgid "Invalid quantity provided" msgstr "Quantidade fornecida inválida" -#: InvenTree/conversion.py:220 -#, python-brace-format -msgid "Invalid quantity supplied ({exc})" -msgstr "Quantidade fornecida inválida ({exc})" - -#: InvenTree/exceptions.py:108 +#: InvenTree/exceptions.py:104 msgid "Error details can be found in the admin panel" msgstr "Detalhes do erro podem ser encontrados no painel de administrador" -#: InvenTree/fields.py:136 +#: InvenTree/fields.py:135 msgid "Enter date" msgstr "Insira uma Data" -#: InvenTree/fields.py:205 InvenTree/models.py:929 build/serializers.py:468 -#: build/serializers.py:546 build/templates/build/sidebar.html:29 -#: company/models.py:836 +#: InvenTree/fields.py:204 InvenTree/models.py:928 build/serializers.py:512 +#: build/serializers.py:590 build/templates/build/sidebar.html:29 +#: company/models.py:833 #: company/templates/company/manufacturer_part_sidebar.html:11 #: company/templates/company/sidebar.html:37 -#: company/templates/company/supplier_part_sidebar.html:11 order/models.py:1380 +#: company/templates/company/supplier_part_sidebar.html:11 order/models.py:1397 #: order/templates/order/po_sidebar.html:11 #: order/templates/order/return_order_sidebar.html:9 #: order/templates/order/so_sidebar.html:17 part/admin.py:59 -#: part/models.py:3297 part/templates/part/part_sidebar.html:65 +#: part/models.py:3348 part/templates/part/part_sidebar.html:65 #: report/templates/report/inventree_build_order_report.html:172 -#: stock/admin.py:230 stock/models.py:2375 stock/models.py:2563 -#: stock/serializers.py:698 stock/serializers.py:856 stock/serializers.py:982 -#: stock/serializers.py:1032 stock/serializers.py:1343 -#: stock/serializers.py:1432 stock/serializers.py:1597 +#: stock/admin.py:231 stock/models.py:2494 stock/models.py:2679 +#: stock/serializers.py:725 stock/serializers.py:887 stock/serializers.py:1013 +#: stock/serializers.py:1063 stock/serializers.py:1374 +#: stock/serializers.py:1463 stock/serializers.py:1628 #: stock/templates/stock/stock_sidebar.html:25 #: templates/js/translated/barcode.js:143 templates/js/translated/bom.js:1265 -#: templates/js/translated/company.js:1684 templates/js/translated/order.js:372 +#: templates/js/translated/company.js:1685 templates/js/translated/order.js:372 #: templates/js/translated/part.js:1087 -#: templates/js/translated/purchase_order.js:2270 +#: templates/js/translated/purchase_order.js:2254 #: templates/js/translated/return_order.js:774 -#: templates/js/translated/sales_order.js:1103 -#: templates/js/translated/sales_order.js:2018 -#: templates/js/translated/stock.js:1621 templates/js/translated/stock.js:2513 +#: templates/js/translated/sales_order.js:1069 +#: templates/js/translated/sales_order.js:1999 +#: templates/js/translated/stock.js:1621 templates/js/translated/stock.js:2514 msgid "Notes" msgstr "Anotações" -#: InvenTree/format.py:164 +#: InvenTree/format.py:162 #, python-brace-format msgid "Value '{name}' does not appear in pattern format" msgstr "Valor '{name}' não está no formato correto" -#: InvenTree/format.py:175 +#: InvenTree/format.py:173 msgid "Provided value does not match required pattern: " msgstr "O valor fornecido não corresponde ao padrão exigido: " @@ -132,397 +140,409 @@ msgstr "" msgid "The provided primary email address is not valid." msgstr "O endereço primário de e-mail não é válido." -#: InvenTree/forms.py:274 +#: InvenTree/forms.py:273 msgid "The provided email domain is not approved." msgstr "O domínio de e-mail providenciado não foi aprovado." -#: InvenTree/forms.py:403 +#: InvenTree/forms.py:402 msgid "Registration is disabled." msgstr "Cadastro está desativado." -#: InvenTree/helpers.py:491 order/models.py:567 order/models.py:810 -msgid "Invalid quantity provided" -msgstr "Quantidade fornecida inválida" +#: InvenTree/helpers.py:509 +msgid "Cannot serialize more than 1000 items at once" +msgstr "" -#: InvenTree/helpers.py:499 +#: InvenTree/helpers.py:515 msgid "Empty serial number string" msgstr "Número serial em branco" -#: InvenTree/helpers.py:528 +#: InvenTree/helpers.py:544 msgid "Duplicate serial" msgstr "Número de série duplicado" -#: InvenTree/helpers.py:560 InvenTree/helpers.py:603 +#: InvenTree/helpers.py:576 InvenTree/helpers.py:619 InvenTree/helpers.py:637 +#: InvenTree/helpers.py:644 InvenTree/helpers.py:663 #, python-brace-format -msgid "Invalid group range: {group}" -msgstr "Intervalo de grupo inválido: {group}" +msgid "Invalid group: {group}" +msgstr "" -#: InvenTree/helpers.py:591 +#: InvenTree/helpers.py:607 #, python-brace-format msgid "Group range {group} exceeds allowed quantity ({expected_quantity})" msgstr "Intervalo do grupo {group} excede a quantidade permitida ({expected_quantity})" -#: InvenTree/helpers.py:621 InvenTree/helpers.py:628 InvenTree/helpers.py:647 -#, python-brace-format -msgid "Invalid group sequence: {group}" -msgstr "Sequência de grupo inválida:{group}" - -#: InvenTree/helpers.py:657 +#: InvenTree/helpers.py:673 msgid "No serial numbers found" msgstr "Nenhum número de série foi encontrado" -#: InvenTree/helpers.py:662 +#: InvenTree/helpers.py:678 msgid "Number of unique serial numbers ({len(serials)}) must match quantity ({expected_quantity})" msgstr "Números de série únicos ({len(serials)}) deve corresponder a quantidade ({expected_quantity})" -#: InvenTree/helpers.py:780 +#: InvenTree/helpers.py:796 msgid "Remove HTML tags from this value" msgstr "Remova as \"tags\" HTML deste valor" -#: InvenTree/helpers_model.py:133 +#: InvenTree/helpers.py:881 +msgid "Data contains prohibited markdown content" +msgstr "" + +#: InvenTree/helpers_model.py:130 msgid "Connection error" msgstr "Erro de conexão" -#: InvenTree/helpers_model.py:138 InvenTree/helpers_model.py:145 +#: InvenTree/helpers_model.py:135 InvenTree/helpers_model.py:142 msgid "Server responded with invalid status code" msgstr "O servidor respondeu com código estado inválido" -#: InvenTree/helpers_model.py:141 +#: InvenTree/helpers_model.py:138 msgid "Exception occurred" msgstr "Ocorreu uma exceção" -#: InvenTree/helpers_model.py:151 +#: InvenTree/helpers_model.py:148 msgid "Server responded with invalid Content-Length value" msgstr "O servidor respondeu com valor inválido do tamanho de conteúdo" -#: InvenTree/helpers_model.py:154 +#: InvenTree/helpers_model.py:151 msgid "Image size is too large" msgstr "Tamanho da imagem muito grande" -#: InvenTree/helpers_model.py:166 +#: InvenTree/helpers_model.py:163 msgid "Image download exceeded maximum size" msgstr "O download da imagem excedeu o tamanho máximo" -#: InvenTree/helpers_model.py:171 +#: InvenTree/helpers_model.py:168 msgid "Remote server returned empty response" msgstr "O servidor remoto retornou resposta vazia" -#: InvenTree/helpers_model.py:179 +#: InvenTree/helpers_model.py:176 msgid "Supplied URL is not a valid image file" msgstr "A URL fornecida não é um arquivo de imagem válido" -#: InvenTree/locales.py:18 +#: InvenTree/locales.py:20 msgid "Arabic" msgstr "" -#: InvenTree/locales.py:19 +#: InvenTree/locales.py:21 msgid "Bulgarian" msgstr "Búlgaro" -#: InvenTree/locales.py:20 +#: InvenTree/locales.py:22 msgid "Czech" msgstr "Tcheco" -#: InvenTree/locales.py:21 +#: InvenTree/locales.py:23 msgid "Danish" msgstr "Dinamarquês" -#: InvenTree/locales.py:22 +#: InvenTree/locales.py:24 msgid "German" msgstr "Alemão" -#: InvenTree/locales.py:23 +#: InvenTree/locales.py:25 msgid "Greek" msgstr "Grego" -#: InvenTree/locales.py:24 +#: InvenTree/locales.py:26 msgid "English" msgstr "Inglês" -#: InvenTree/locales.py:25 +#: InvenTree/locales.py:27 msgid "Spanish" msgstr "Espanhol" -#: InvenTree/locales.py:26 +#: InvenTree/locales.py:28 msgid "Spanish (Mexican)" msgstr "Espanhol (Mexicano)" -#: InvenTree/locales.py:27 +#: InvenTree/locales.py:29 msgid "Estonian" msgstr "" -#: InvenTree/locales.py:28 +#: InvenTree/locales.py:30 msgid "Farsi / Persian" msgstr "Persa" -#: InvenTree/locales.py:29 +#: InvenTree/locales.py:31 msgid "Finnish" msgstr "Finlandês" -#: InvenTree/locales.py:30 +#: InvenTree/locales.py:32 msgid "French" msgstr "Francês" -#: InvenTree/locales.py:31 +#: InvenTree/locales.py:33 msgid "Hebrew" msgstr "Hebraico" -#: InvenTree/locales.py:32 +#: InvenTree/locales.py:34 msgid "Hindi" msgstr "Hindu" -#: InvenTree/locales.py:33 +#: InvenTree/locales.py:35 msgid "Hungarian" msgstr "Húngaro" -#: InvenTree/locales.py:34 +#: InvenTree/locales.py:36 msgid "Italian" msgstr "Italiano" -#: InvenTree/locales.py:35 +#: InvenTree/locales.py:37 msgid "Japanese" msgstr "Japonês" -#: InvenTree/locales.py:36 +#: InvenTree/locales.py:38 msgid "Korean" msgstr "Coreano" -#: InvenTree/locales.py:37 +#: InvenTree/locales.py:39 +msgid "Lithuanian" +msgstr "" + +#: InvenTree/locales.py:40 msgid "Latvian" msgstr "Letão" -#: InvenTree/locales.py:38 +#: InvenTree/locales.py:41 msgid "Dutch" msgstr "Holandês" -#: InvenTree/locales.py:39 +#: InvenTree/locales.py:42 msgid "Norwegian" msgstr "Norueguês" -#: InvenTree/locales.py:40 +#: InvenTree/locales.py:43 msgid "Polish" msgstr "Polonês" -#: InvenTree/locales.py:41 +#: InvenTree/locales.py:44 msgid "Portuguese" msgstr "Português" -#: InvenTree/locales.py:42 +#: InvenTree/locales.py:45 msgid "Portuguese (Brazilian)" msgstr "Português (Brasileiro)" -#: InvenTree/locales.py:43 +#: InvenTree/locales.py:46 msgid "Romanian" msgstr "Romeno" -#: InvenTree/locales.py:44 +#: InvenTree/locales.py:47 msgid "Russian" msgstr "Russo" -#: InvenTree/locales.py:45 +#: InvenTree/locales.py:48 msgid "Slovak" msgstr "Eslovaco" -#: InvenTree/locales.py:46 +#: InvenTree/locales.py:49 msgid "Slovenian" msgstr "Esloveno" -#: InvenTree/locales.py:47 +#: InvenTree/locales.py:50 msgid "Serbian" msgstr "Sérvio" -#: InvenTree/locales.py:48 +#: InvenTree/locales.py:51 msgid "Swedish" msgstr "Sueco" -#: InvenTree/locales.py:49 +#: InvenTree/locales.py:52 msgid "Thai" msgstr "Tailandês" -#: InvenTree/locales.py:50 +#: InvenTree/locales.py:53 msgid "Turkish" msgstr "Turco" -#: InvenTree/locales.py:51 +#: InvenTree/locales.py:54 msgid "Ukrainian" msgstr "Ucraniano" -#: InvenTree/locales.py:52 +#: InvenTree/locales.py:55 msgid "Vietnamese" msgstr "Vietnamita" -#: InvenTree/locales.py:53 +#: InvenTree/locales.py:56 msgid "Chinese (Simplified)" msgstr "Chinês (Simplificado)" -#: InvenTree/locales.py:54 +#: InvenTree/locales.py:57 msgid "Chinese (Traditional)" msgstr "Chinês (Tradicional)" #: InvenTree/magic_login.py:28 -#, python-brace-format -msgid "[{site_name}] Log in to the app" -msgstr "[{site_name}] Entre no aplicativo" +msgid "Log in to the app" +msgstr "" -#: InvenTree/magic_login.py:38 InvenTree/serializers.py:415 -#: company/models.py:136 company/templates/company/company_base.html:138 +#: InvenTree/magic_login.py:38 InvenTree/serializers.py:416 +#: company/models.py:133 company/templates/company/company_base.html:138 #: templates/InvenTree/settings/user.html:49 -#: templates/js/translated/company.js:677 +#: templates/js/translated/company.js:678 msgid "Email" msgstr "Email" -#: InvenTree/models.py:103 +#: InvenTree/models.py:105 msgid "Error running plugin validation" msgstr "Erro ao executar validação do plugin" -#: InvenTree/models.py:172 +#: InvenTree/models.py:174 msgid "Metadata must be a python dict object" msgstr "Metadados deve ser um objeto dict python" -#: InvenTree/models.py:178 +#: InvenTree/models.py:180 msgid "Plugin Metadata" msgstr "Metadados da Extensão" -#: InvenTree/models.py:179 +#: InvenTree/models.py:181 msgid "JSON metadata field, for use by external plugins" msgstr "Campo de metadados JSON, para uso por extensões externas" -#: InvenTree/models.py:409 +#: InvenTree/models.py:408 msgid "Improperly formatted pattern" msgstr "Padrão formatado incorretamente" -#: InvenTree/models.py:416 +#: InvenTree/models.py:415 msgid "Unknown format key specified" msgstr "Chave de formato desconhecida especificada" -#: InvenTree/models.py:422 +#: InvenTree/models.py:421 msgid "Missing required format key" msgstr "Chave de formato obrigatória ausente" -#: InvenTree/models.py:433 +#: InvenTree/models.py:432 msgid "Reference field cannot be empty" msgstr "O campo de referência não pode ficar vazio" -#: InvenTree/models.py:441 +#: InvenTree/models.py:440 msgid "Reference must match required pattern" msgstr "A referência deve corresponder ao padrão exigido" -#: InvenTree/models.py:472 +#: InvenTree/models.py:471 msgid "Reference number is too large" msgstr "O número de referência é muito grande" -#: InvenTree/models.py:723 +#: InvenTree/models.py:722 msgid "Duplicate names cannot exist under the same parent" msgstr "Nomes duplicados não podem existir sob o mesmo parental" -#: InvenTree/models.py:740 +#: InvenTree/models.py:739 msgid "Invalid choice" msgstr "Escolha inválida" -#: InvenTree/models.py:770 common/models.py:2702 common/models.py:3132 -#: common/serializers.py:412 company/models.py:593 machine/models.py:24 -#: part/models.py:983 part/models.py:3764 plugin/models.py:51 -#: report/models.py:149 stock/models.py:77 +#: InvenTree/models.py:769 common/models.py:2766 common/models.py:3193 +#: common/models.py:3413 common/serializers.py:460 company/models.py:590 +#: machine/models.py:24 part/models.py:1044 part/models.py:3815 +#: plugin/models.py:51 report/models.py:149 stock/models.py:83 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/notifications.html:17 #: templates/InvenTree/settings/plugin.html:83 #: templates/InvenTree/settings/plugin_settings.html:22 #: templates/InvenTree/settings/settings_staff_js.html:67 #: templates/InvenTree/settings/settings_staff_js.html:454 -#: templates/js/translated/company.js:676 -#: templates/js/translated/company.js:724 -#: templates/js/translated/company.js:913 -#: templates/js/translated/company.js:1165 -#: templates/js/translated/company.js:1413 templates/js/translated/part.js:1193 +#: templates/js/translated/company.js:677 +#: templates/js/translated/company.js:725 +#: templates/js/translated/company.js:914 +#: templates/js/translated/company.js:1166 +#: templates/js/translated/company.js:1414 templates/js/translated/part.js:1193 #: templates/js/translated/part.js:1481 templates/js/translated/part.js:1617 -#: templates/js/translated/part.js:2768 templates/js/translated/stock.js:2801 +#: templates/js/translated/part.js:2768 templates/js/translated/stock.js:2802 msgid "Name" msgstr "Nome" -#: InvenTree/models.py:776 build/models.py:250 -#: build/templates/build/detail.html:24 common/models.py:156 -#: company/models.py:521 company/models.py:827 +#: InvenTree/models.py:775 build/models.py:251 +#: build/templates/build/detail.html:24 common/models.py:159 +#: company/models.py:518 company/models.py:824 #: company/templates/company/company_base.html:77 #: company/templates/company/manufacturer_part.html:75 -#: company/templates/company/supplier_part.html:107 order/models.py:288 -#: order/models.py:1413 part/admin.py:305 part/admin.py:411 part/models.py:1006 -#: part/models.py:3779 part/templates/part/category.html:79 -#: part/templates/part/part_base.html:170 +#: company/templates/company/supplier_part.html:108 order/models.py:295 +#: order/models.py:1430 part/admin.py:305 part/admin.py:411 part/models.py:1067 +#: part/models.py:3830 part/templates/part/category.html:79 +#: part/templates/part/part_base.html:171 #: part/templates/part/part_scheduling.html:12 report/models.py:155 -#: report/models.py:509 report/models.py:535 +#: report/models.py:517 report/models.py:543 #: report/templates/report/inventree_build_order_report.html:117 -#: stock/admin.py:54 stock/models.py:83 stock/templates/stock/location.html:122 +#: stock/admin.py:54 stock/models.py:89 stock/templates/stock/location.html:123 #: templates/InvenTree/settings/notifications.html:19 #: templates/InvenTree/settings/plugin_settings.html:27 #: templates/InvenTree/settings/settings_staff_js.html:170 #: templates/InvenTree/settings/settings_staff_js.html:459 #: templates/js/translated/bom.js:633 templates/js/translated/bom.js:963 -#: templates/js/translated/build.js:2311 templates/js/translated/company.js:519 -#: templates/js/translated/company.js:1330 -#: templates/js/translated/company.js:1641 templates/js/translated/index.js:119 +#: templates/js/translated/build.js:2314 templates/js/translated/company.js:520 +#: templates/js/translated/company.js:1331 +#: templates/js/translated/company.js:1642 templates/js/translated/index.js:119 #: templates/js/translated/order.js:323 templates/js/translated/part.js:1245 #: templates/js/translated/part.js:1490 templates/js/translated/part.js:1628 #: templates/js/translated/part.js:1965 templates/js/translated/part.js:2361 #: templates/js/translated/part.js:2803 templates/js/translated/part.js:2915 #: templates/js/translated/plugin.js:80 -#: templates/js/translated/purchase_order.js:1776 -#: templates/js/translated/purchase_order.js:1919 -#: templates/js/translated/purchase_order.js:2092 +#: templates/js/translated/purchase_order.js:1760 +#: templates/js/translated/purchase_order.js:1903 +#: templates/js/translated/purchase_order.js:2076 #: templates/js/translated/return_order.js:313 -#: templates/js/translated/sales_order.js:838 -#: templates/js/translated/sales_order.js:1848 -#: templates/js/translated/stock.js:1600 templates/js/translated/stock.js:2143 -#: templates/js/translated/stock.js:2832 templates/js/translated/stock.js:2915 +#: templates/js/translated/sales_order.js:797 +#: templates/js/translated/sales_order.js:1829 +#: templates/js/translated/stock.js:1600 templates/js/translated/stock.js:2144 +#: templates/js/translated/stock.js:2833 templates/js/translated/stock.js:2916 msgid "Description" msgstr "Descrição" -#: InvenTree/models.py:777 stock/models.py:84 +#: InvenTree/models.py:776 stock/models.py:90 msgid "Description (optional)" msgstr "Descrição (opcional)" -#: InvenTree/models.py:792 templates/js/translated/part.js:2812 -#: templates/js/translated/stock.js:2841 +#: InvenTree/models.py:791 common/models.py:3546 +#: templates/js/translated/part.js:2812 templates/js/translated/stock.js:2842 msgid "Path" msgstr "Caminho" -#: InvenTree/models.py:929 +#: InvenTree/models.py:928 msgid "Markdown notes (optional)" msgstr "Notas Markdown (opcional)" -#: InvenTree/models.py:960 +#: InvenTree/models.py:959 msgid "Barcode Data" msgstr "Dados de código de barras" -#: InvenTree/models.py:961 +#: InvenTree/models.py:960 msgid "Third party barcode data" msgstr "Dados de código de barras de terceiros" -#: InvenTree/models.py:967 +#: InvenTree/models.py:966 msgid "Barcode Hash" msgstr "Hash de código de barras" -#: InvenTree/models.py:968 +#: InvenTree/models.py:967 msgid "Unique hash of barcode data" msgstr "Hash exclusivo de dados de código de barras" -#: InvenTree/models.py:1035 +#: InvenTree/models.py:1034 msgid "Existing barcode found" msgstr "Código de barras existente encontrado" -#: InvenTree/models.py:1078 +#: InvenTree/models.py:1112 +msgid "Task Failure" +msgstr "" + +#: InvenTree/models.py:1114 +#, python-brace-format +msgid "Background worker task '{instance.func}' failed after {n} attempts" +msgstr "" + +#: InvenTree/models.py:1142 msgid "Server Error" msgstr "Erro de servidor" -#: InvenTree/models.py:1079 +#: InvenTree/models.py:1143 msgid "An error has been logged by the server." msgstr "Log de erro salvo pelo servidor." -#: InvenTree/serializers.py:63 part/models.py:4387 +#: InvenTree/serializers.py:63 part/models.py:4444 msgid "Must be a valid number" msgstr "Preicsa ser um numero valido" -#: InvenTree/serializers.py:100 company/models.py:186 -#: company/templates/company/company_base.html:112 part/models.py:3115 +#: InvenTree/serializers.py:100 company/models.py:183 +#: company/templates/company/company_base.html:112 part/models.py:3166 #: templates/InvenTree/settings/settings_staff_js.html:44 #: templates/currency_data.html:5 msgid "Currency" @@ -532,15 +552,15 @@ msgstr "Moeda" msgid "Select currency from available options" msgstr "Selecione a Moeda nas opções disponíveis" -#: InvenTree/serializers.py:407 templates/InvenTree/settings/user.html:33 +#: InvenTree/serializers.py:405 templates/InvenTree/settings/user.html:33 msgid "Username" msgstr "Nome de usuário" -#: InvenTree/serializers.py:409 templates/InvenTree/settings/user.html:37 +#: InvenTree/serializers.py:408 templates/InvenTree/settings/user.html:37 msgid "First Name" msgstr "Primeiro Nome" -#: InvenTree/serializers.py:409 +#: InvenTree/serializers.py:408 msgid "First name of the user" msgstr "" @@ -552,30 +572,30 @@ msgstr "Sobrenome" msgid "Last name of the user" msgstr "" -#: InvenTree/serializers.py:415 +#: InvenTree/serializers.py:416 msgid "Email address of the user" msgstr "" -#: InvenTree/serializers.py:439 +#: InvenTree/serializers.py:441 msgid "Staff" msgstr "" -#: InvenTree/serializers.py:439 +#: InvenTree/serializers.py:441 msgid "Does this user have staff permissions" msgstr "" -#: InvenTree/serializers.py:442 +#: InvenTree/serializers.py:445 msgid "Superuser" msgstr "" -#: InvenTree/serializers.py:442 +#: InvenTree/serializers.py:445 msgid "Is this user a superuser" msgstr "" -#: InvenTree/serializers.py:445 common/models.py:2707 company/models.py:163 -#: company/models.py:801 machine/models.py:39 part/admin.py:88 -#: part/models.py:1189 plugin/models.py:66 -#: templates/js/translated/company.js:523 +#: InvenTree/serializers.py:449 common/models.py:2771 company/models.py:160 +#: company/models.py:798 machine/models.py:39 part/admin.py:88 +#: part/models.py:1250 plugin/models.py:66 +#: templates/js/translated/company.js:524 #: templates/js/translated/table_filters.js:134 #: templates/js/translated/table_filters.js:226 #: templates/js/translated/table_filters.js:513 @@ -585,230 +605,229 @@ msgstr "" msgid "Active" msgstr "Ativo" -#: InvenTree/serializers.py:445 +#: InvenTree/serializers.py:449 msgid "Is this user account active" msgstr "" -#: InvenTree/serializers.py:463 +#: InvenTree/serializers.py:467 msgid "You do not have permission to change this user role." msgstr "Não tem permissões para alterar este papel do usuário." -#: InvenTree/serializers.py:475 +#: InvenTree/serializers.py:503 msgid "Only superusers can create new users" msgstr "Apenas superusuários podem criar novos usuários" -#: InvenTree/serializers.py:494 +#: InvenTree/serializers.py:523 msgid "Your account has been created." msgstr "Sua conta foi criada." -#: InvenTree/serializers.py:496 +#: InvenTree/serializers.py:525 msgid "Please use the password reset function to login" msgstr "Por favor, use a função de redefinir senha para acessar" -#: InvenTree/serializers.py:503 +#: InvenTree/serializers.py:531 msgid "Welcome to InvenTree" msgstr "Bem-vindo(a) ao InvenTree" -#: InvenTree/serializers.py:561 +#: InvenTree/serializers.py:594 msgid "Invalid value" msgstr "Valor inválido" -#: InvenTree/serializers.py:581 importer/models.py:63 +#: InvenTree/serializers.py:614 importer/models.py:64 msgid "Data File" msgstr "Arquivo de dados" -#: InvenTree/serializers.py:582 +#: InvenTree/serializers.py:615 msgid "Select data file for upload" msgstr "Selecione um arquivo de dados para enviar" -#: InvenTree/serializers.py:599 -msgid "Unsupported file type" -msgstr "Tipo de arquivo não suportado" +#: InvenTree/serializers.py:632 common/files.py:63 +msgid "Unsupported file format" +msgstr "" -#: InvenTree/serializers.py:605 +#: InvenTree/serializers.py:638 msgid "File is too large" msgstr "O arquivo é muito grande" -#: InvenTree/serializers.py:626 +#: InvenTree/serializers.py:659 msgid "No columns found in file" msgstr "Nenhuma coluna encontrada no arquivo" -#: InvenTree/serializers.py:629 +#: InvenTree/serializers.py:662 msgid "No data rows found in file" msgstr "Nenhuma linha de dados encontrada no arquivo" -#: InvenTree/serializers.py:742 +#: InvenTree/serializers.py:774 msgid "No data rows provided" msgstr "Nenhuma linha de dados fornecida" -#: InvenTree/serializers.py:745 +#: InvenTree/serializers.py:777 msgid "No data columns supplied" msgstr "Nenhuma coluna de dados fornecida" -#: InvenTree/serializers.py:812 +#: InvenTree/serializers.py:843 #, python-brace-format msgid "Missing required column: '{name}'" msgstr "Falta a coluna obrigatória: '{name}'" -#: InvenTree/serializers.py:821 +#: InvenTree/serializers.py:852 #, python-brace-format msgid "Duplicate column: '{col}'" msgstr "Coluna duplicada: \"{col}\"" -#: InvenTree/serializers.py:861 +#: InvenTree/serializers.py:891 msgid "Remote Image" msgstr "Imagens Remota" -#: InvenTree/serializers.py:862 +#: InvenTree/serializers.py:892 msgid "URL of remote image file" msgstr "URL do arquivo de imagem remoto" -#: InvenTree/serializers.py:880 +#: InvenTree/serializers.py:910 msgid "Downloading images from remote URL is not enabled" msgstr "Baixar imagens de URL remota não está habilitado" -#: InvenTree/status.py:66 part/serializers.py:1246 -msgid "Background worker check failed" -msgstr "Falha em verificar o histórico do trabalhador" - -#: InvenTree/status.py:70 -msgid "Email backend not configured" -msgstr "Serviço de fundo do e-mail não foi configurado" - -#: InvenTree/status.py:73 -msgid "InvenTree system health checks failed" -msgstr "Verificação de saúde do sistema InvenTree falhou" +#: InvenTree/serializers.py:917 +msgid "Failed to download image from remote URL" +msgstr "" #: InvenTree/templatetags/inventree_extras.py:184 msgid "Unknown database" msgstr "Banco de dados desconhecido" -#: InvenTree/validators.py:32 InvenTree/validators.py:34 +#: InvenTree/validators.py:32 msgid "Invalid physical unit" msgstr "Unidade física inválida" -#: InvenTree/validators.py:40 +#: InvenTree/validators.py:38 msgid "Not a valid currency code" msgstr "Não é um código de moeda válido" -#: InvenTree/validators.py:118 InvenTree/validators.py:134 +#: InvenTree/validators.py:115 InvenTree/validators.py:131 msgid "Overage value must not be negative" msgstr "Valor excedente não deve ser negativo" -#: InvenTree/validators.py:136 +#: InvenTree/validators.py:133 msgid "Overage must not exceed 100%" msgstr "Excedente não deve exceder 100%" -#: InvenTree/validators.py:142 +#: InvenTree/validators.py:139 msgid "Invalid value for overage" msgstr "Valor de excedente inválido" -#: InvenTree/views.py:400 templates/InvenTree/settings/user.html:23 +#: InvenTree/views.py:399 templates/InvenTree/settings/user.html:23 msgid "Edit User Information" msgstr "Editar informações do usuário" -#: InvenTree/views.py:412 templates/InvenTree/settings/user.html:20 +#: InvenTree/views.py:411 templates/InvenTree/settings/user.html:20 msgid "Set Password" msgstr "Definir senha" -#: InvenTree/views.py:434 +#: InvenTree/views.py:433 msgid "Password fields must match" msgstr "Os campos de senha devem coincidir" -#: InvenTree/views.py:442 +#: InvenTree/views.py:441 msgid "Wrong password provided" msgstr "Senha incorreta fornecida" -#: InvenTree/views.py:650 templates/navbar.html:160 +#: InvenTree/views.py:645 templates/navbar.html:160 msgid "System Information" msgstr "Informação do Sistema" -#: InvenTree/views.py:657 templates/navbar.html:171 +#: InvenTree/views.py:652 templates/navbar.html:171 msgid "About InvenTree" msgstr "Sobre o InvenTree" -#: build/api.py:51 part/api.py:156 stock/api.py:343 -msgid "Cascade" -msgstr "" - -#: build/api.py:64 build/models.py:261 -#: build/templates/build/build_base.html:191 +#: build/api.py:54 build/models.py:262 +#: build/templates/build/build_base.html:192 #: build/templates/build/detail.html:87 msgid "Parent Build" msgstr "Produção Progenitor" -#: build/api.py:89 order/api.py:92 templates/js/translated/table_filters.js:101 +#: build/api.py:58 build/api.py:625 order/api.py:396 order/api.py:611 +#: order/api.py:990 order/api.py:1187 +#: templates/js/translated/table_filters.js:372 +msgid "Include Variants" +msgstr "" + +#: build/api.py:93 +msgid "Ancestor Build" +msgstr "" + +#: build/api.py:112 order/api.py:90 +#: templates/js/translated/table_filters.js:101 #: templates/js/translated/table_filters.js:549 #: templates/js/translated/table_filters.js:633 #: templates/js/translated/table_filters.js:674 msgid "Assigned to me" msgstr "" -#: build/api.py:106 build/templates/build/build_base.html:205 +#: build/api.py:129 build/templates/build/build_base.html:206 #: build/templates/build/detail.html:115 #: report/templates/report/inventree_build_order_report.html:152 #: templates/js/translated/table_filters.js:552 msgid "Issued By" msgstr "Emitido por" -#: build/api.py:125 +#: build/api.py:148 msgid "Assigned To" msgstr "" -#: build/api.py:301 +#: build/api.py:310 msgid "Build must be cancelled before it can be deleted" msgstr "Produção deve ser cancelada antes de ser deletada" -#: build/api.py:345 build/serializers.py:1288 part/models.py:4265 +#: build/api.py:354 build/serializers.py:1342 part/models.py:4322 #: templates/js/translated/bom.js:997 templates/js/translated/bom.js:1037 -#: templates/js/translated/build.js:2702 +#: templates/js/translated/build.js:2711 #: templates/js/translated/table_filters.js:197 #: templates/js/translated/table_filters.js:586 msgid "Consumable" msgstr "Consumível" -#: build/api.py:346 build/serializers.py:1289 part/models.py:4259 +#: build/api.py:355 build/serializers.py:1343 part/models.py:4316 #: part/templates/part/upload_bom.html:58 templates/js/translated/bom.js:1001 -#: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2693 +#: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2702 #: templates/js/translated/table_filters.js:193 #: templates/js/translated/table_filters.js:222 #: templates/js/translated/table_filters.js:590 msgid "Optional" msgstr "Opcional" -#: build/api.py:347 common/models.py:1489 part/admin.py:91 part/admin.py:428 -#: part/models.py:1154 part/serializers.py:1575 +#: build/api.py:356 common/models.py:1558 part/admin.py:91 part/admin.py:428 +#: part/models.py:1215 part/serializers.py:1633 #: templates/js/translated/bom.js:1639 #: templates/js/translated/table_filters.js:337 #: templates/js/translated/table_filters.js:729 msgid "Assembly" msgstr "Montagem" -#: build/api.py:348 templates/js/translated/table_filters.js:415 +#: build/api.py:357 templates/js/translated/table_filters.js:415 #: templates/js/translated/table_filters.js:582 msgid "Tracked" msgstr "Monitorado" -#: build/api.py:349 build/serializers.py:1290 part/models.py:1172 +#: build/api.py:358 build/serializers.py:1344 part/models.py:1233 #: templates/js/translated/table_filters.js:146 #: templates/js/translated/table_filters.js:779 msgid "Testable" msgstr "" -#: build/api.py:351 part/admin.py:144 templates/js/translated/build.js:1917 -#: templates/js/translated/build.js:2820 -#: templates/js/translated/sales_order.js:1965 +#: build/api.py:360 order/api.py:779 part/admin.py:144 +#: templates/js/translated/build.js:1920 templates/js/translated/build.js:2838 +#: templates/js/translated/sales_order.js:1946 #: templates/js/translated/table_filters.js:574 msgid "Allocated" msgstr "Alocado" -#: build/api.py:359 company/models.py:891 company/serializers.py:395 -#: company/templates/company/supplier_part.html:114 +#: build/api.py:368 company/models.py:888 company/serializers.py:399 +#: company/templates/company/supplier_part.html:115 #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:17 -#: templates/js/translated/bom.js:1162 templates/js/translated/build.js:2752 +#: templates/js/translated/bom.js:1162 templates/js/translated/build.js:2770 #: templates/js/translated/index.js:123 -#: templates/js/translated/model_renderers.js:235 +#: templates/js/translated/model_renderers.js:238 #: templates/js/translated/part.js:695 templates/js/translated/part.js:697 #: templates/js/translated/part.js:702 #: templates/js/translated/table_filters.js:347 @@ -816,16 +835,68 @@ msgstr "Alocado" msgid "Available" msgstr "Disponível" -#: build/models.py:86 build/templates/build/build_base.html:9 -#: build/templates/build/build_base.html:27 +#: build/api.py:640 build/models.py:268 build/serializers.py:1330 +#: build/templates/build/build_base.html:106 +#: build/templates/build/detail.html:29 company/models.py:1043 order/api.py:775 +#: order/api.py:1003 order/models.py:1519 order/models.py:1674 +#: order/models.py:1675 part/api.py:1495 part/api.py:1802 part/models.py:419 +#: part/models.py:3177 part/models.py:3321 part/models.py:3469 +#: part/models.py:3490 part/models.py:3512 part/models.py:3648 +#: part/models.py:3995 part/models.py:4158 part/models.py:4288 +#: part/models.py:4654 part/serializers.py:1245 part/serializers.py:1898 +#: part/templates/part/part_app_base.html:8 +#: part/templates/part/part_pricing.html:12 +#: part/templates/part/upload_bom.html:52 +#: report/templates/report/inventree_bill_of_materials_report.html:110 +#: report/templates/report/inventree_bill_of_materials_report.html:137 +#: report/templates/report/inventree_build_order_report.html:109 +#: report/templates/report/inventree_purchase_order_report.html:27 +#: report/templates/report/inventree_return_order_report.html:24 +#: report/templates/report/inventree_sales_order_report.html:27 +#: report/templates/report/inventree_sales_order_shipment_report.html:28 +#: report/templates/report/inventree_stock_location_report.html:102 +#: stock/serializers.py:112 stock/serializers.py:160 stock/serializers.py:456 +#: stock/serializers.py:947 templates/InvenTree/search.html:82 +#: templates/email/build_order_completed.html:17 +#: templates/email/build_order_required_stock.html:17 +#: templates/email/low_stock_notification.html:15 +#: templates/email/overdue_build_order.html:16 +#: templates/js/translated/barcode.js:577 templates/js/translated/bom.js:632 +#: templates/js/translated/bom.js:769 templates/js/translated/bom.js:905 +#: templates/js/translated/build.js:1005 templates/js/translated/build.js:1488 +#: templates/js/translated/build.js:1919 templates/js/translated/build.js:2337 +#: templates/js/translated/build.js:2514 templates/js/translated/company.js:349 +#: templates/js/translated/company.js:1117 +#: templates/js/translated/company.js:1272 +#: templates/js/translated/company.js:1560 templates/js/translated/index.js:109 +#: templates/js/translated/part.js:1950 templates/js/translated/part.js:2022 +#: templates/js/translated/part.js:2330 templates/js/translated/pricing.js:369 +#: templates/js/translated/purchase_order.js:734 +#: templates/js/translated/purchase_order.js:1350 +#: templates/js/translated/purchase_order.js:1902 +#: templates/js/translated/purchase_order.js:2061 +#: templates/js/translated/return_order.js:538 +#: templates/js/translated/return_order.js:708 +#: templates/js/translated/sales_order.js:1199 +#: templates/js/translated/sales_order.js:1608 +#: templates/js/translated/sales_order.js:1813 +#: templates/js/translated/stock.js:682 templates/js/translated/stock.js:848 +#: templates/js/translated/stock.js:1065 templates/js/translated/stock.js:2083 +#: templates/js/translated/stock.js:2942 templates/js/translated/stock.js:3175 +#: templates/js/translated/stock.js:3320 +msgid "Part" +msgstr "Peça" + +#: build/api.py:662 build/models.py:88 build/templates/build/build_base.html:10 +#: build/templates/build/build_base.html:28 #: report/templates/report/inventree_build_order_report.html:105 -#: stock/serializers.py:84 templates/email/build_order_completed.html:16 +#: stock/serializers.py:85 templates/email/build_order_completed.html:16 #: templates/email/overdue_build_order.html:15 -#: templates/js/translated/build.js:1145 templates/js/translated/stock.js:2976 +#: templates/js/translated/build.js:1148 templates/js/translated/stock.js:2977 msgid "Build Order" msgstr "Ordem de Produção" -#: build/models.py:87 build/templates/build/build_base.html:13 +#: build/models.py:89 build/templates/build/build_base.html:14 #: build/templates/build/index.html:8 build/templates/build/index.html:12 #: order/templates/order/sales_order_detail.html:111 #: order/templates/order/so_sidebar.html:13 @@ -836,268 +907,216 @@ msgstr "Ordem de Produção" msgid "Build Orders" msgstr "Ordens de Produções" -#: build/models.py:135 +#: build/models.py:136 msgid "Assembly BOM has not been validated" msgstr "" -#: build/models.py:142 +#: build/models.py:143 msgid "Build order cannot be created for an inactive part" msgstr "" -#: build/models.py:149 +#: build/models.py:150 msgid "Build order cannot be created for an unlocked part" msgstr "" -#: build/models.py:163 +#: build/models.py:164 msgid "Invalid choice for parent build" msgstr "Escolha de Produção parental inválida" -#: build/models.py:174 order/models.py:239 +#: build/models.py:175 order/models.py:236 msgid "Responsible user or group must be specified" msgstr "Usuário ou grupo responsável deve ser especificado" -#: build/models.py:180 +#: build/models.py:181 msgid "Build order part cannot be changed" msgstr "Peça da ordem de produção não pode ser alterada" -#: build/models.py:241 +#: build/models.py:242 msgid "Build Order Reference" msgstr "Referência do pedido de produção" -#: build/models.py:242 build/serializers.py:1287 order/models.py:467 -#: order/models.py:978 order/models.py:1373 order/models.py:2135 -#: part/admin.py:414 part/models.py:4280 part/templates/part/upload_bom.html:54 +#: build/models.py:243 build/serializers.py:1341 order/models.py:479 +#: order/models.py:1005 order/models.py:1390 order/models.py:2174 +#: part/admin.py:414 part/models.py:4337 part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_bill_of_materials_report.html:139 #: report/templates/report/inventree_purchase_order_report.html:28 #: report/templates/report/inventree_return_order_report.html:26 #: report/templates/report/inventree_sales_order_report.html:28 #: templates/js/translated/bom.js:770 templates/js/translated/bom.js:973 -#: templates/js/translated/build.js:1011 templates/js/translated/build.js:2685 +#: templates/js/translated/build.js:1014 templates/js/translated/build.js:2694 #: templates/js/translated/order.js:316 templates/js/translated/pricing.js:386 -#: templates/js/translated/purchase_order.js:2135 +#: templates/js/translated/purchase_order.js:2119 #: templates/js/translated/return_order.js:727 -#: templates/js/translated/sales_order.js:1854 +#: templates/js/translated/sales_order.js:1835 msgid "Reference" msgstr "Referência" -#: build/models.py:253 +#: build/models.py:254 msgid "Brief description of the build (optional)" msgstr "Breve descrição da produção (opcional)" -#: build/models.py:262 +#: build/models.py:263 msgid "BuildOrder to which this build is allocated" msgstr "Pedido de produção para qual este serviço está alocado" -#: build/models.py:267 build/serializers.py:1278 -#: build/templates/build/build_base.html:105 -#: build/templates/build/detail.html:29 company/models.py:1046 order/api.py:767 -#: order/models.py:1503 order/models.py:1658 order/models.py:1659 -#: part/api.py:1509 part/api.py:1813 part/models.py:424 part/models.py:3126 -#: part/models.py:3270 part/models.py:3418 part/models.py:3439 -#: part/models.py:3461 part/models.py:3597 part/models.py:3937 -#: part/models.py:4100 part/models.py:4231 part/models.py:4592 -#: part/serializers.py:1192 part/serializers.py:1836 -#: part/templates/part/part_app_base.html:8 -#: part/templates/part/part_pricing.html:12 -#: part/templates/part/upload_bom.html:52 -#: report/templates/report/inventree_bill_of_materials_report.html:110 -#: report/templates/report/inventree_bill_of_materials_report.html:137 -#: report/templates/report/inventree_build_order_report.html:109 -#: report/templates/report/inventree_purchase_order_report.html:27 -#: report/templates/report/inventree_return_order_report.html:24 -#: report/templates/report/inventree_sales_order_report.html:27 -#: report/templates/report/inventree_stock_location_report.html:102 -#: stock/serializers.py:111 stock/serializers.py:159 stock/serializers.py:446 -#: stock/serializers.py:916 templates/InvenTree/search.html:82 -#: templates/email/build_order_completed.html:17 -#: templates/email/build_order_required_stock.html:17 -#: templates/email/low_stock_notification.html:15 -#: templates/email/overdue_build_order.html:16 -#: templates/js/translated/barcode.js:577 templates/js/translated/bom.js:632 -#: templates/js/translated/bom.js:769 templates/js/translated/bom.js:905 -#: templates/js/translated/build.js:1002 templates/js/translated/build.js:1485 -#: templates/js/translated/build.js:1916 templates/js/translated/build.js:2334 -#: templates/js/translated/build.js:2507 templates/js/translated/company.js:348 -#: templates/js/translated/company.js:1116 -#: templates/js/translated/company.js:1271 -#: templates/js/translated/company.js:1559 templates/js/translated/index.js:109 -#: templates/js/translated/part.js:1950 templates/js/translated/part.js:2022 -#: templates/js/translated/part.js:2330 templates/js/translated/pricing.js:369 -#: templates/js/translated/purchase_order.js:751 -#: templates/js/translated/purchase_order.js:1367 -#: templates/js/translated/purchase_order.js:1918 -#: templates/js/translated/purchase_order.js:2077 -#: templates/js/translated/return_order.js:538 -#: templates/js/translated/return_order.js:708 -#: templates/js/translated/sales_order.js:300 -#: templates/js/translated/sales_order.js:1233 -#: templates/js/translated/sales_order.js:1634 -#: templates/js/translated/sales_order.js:1832 -#: templates/js/translated/stock.js:682 templates/js/translated/stock.js:848 -#: templates/js/translated/stock.js:1065 templates/js/translated/stock.js:2082 -#: templates/js/translated/stock.js:2941 templates/js/translated/stock.js:3174 -#: templates/js/translated/stock.js:3319 -msgid "Part" -msgstr "Peça" - -#: build/models.py:275 +#: build/models.py:274 msgid "Select part to build" msgstr "Selecionar peça para produção" -#: build/models.py:280 +#: build/models.py:279 msgid "Sales Order Reference" msgstr "Referência do pedido de venda" -#: build/models.py:284 +#: build/models.py:283 msgid "SalesOrder to which this build is allocated" msgstr "Pedido de Venda para qual esta produção está alocada" -#: build/models.py:289 build/serializers.py:1048 -#: templates/js/translated/build.js:1904 -#: templates/js/translated/sales_order.js:1221 +#: build/models.py:288 build/serializers.py:1092 +#: templates/js/translated/build.js:1907 +#: templates/js/translated/sales_order.js:1187 msgid "Source Location" msgstr "Local de Origem" -#: build/models.py:293 +#: build/models.py:292 msgid "Select location to take stock from for this build (leave blank to take from any stock location)" msgstr "Selecione a localização para pegar do estoque para esta produção (deixe em branco para tirar a partir de qualquer local de estoque)" -#: build/models.py:298 +#: build/models.py:297 msgid "Destination Location" msgstr "Local de Destino" -#: build/models.py:302 +#: build/models.py:301 msgid "Select location where the completed items will be stored" msgstr "Selecione o local onde os itens concluídos serão armazenados" -#: build/models.py:306 +#: build/models.py:305 msgid "Build Quantity" msgstr "Quantidade de Produção" -#: build/models.py:309 +#: build/models.py:308 msgid "Number of stock items to build" msgstr "Número de itens em estoque para produzir" -#: build/models.py:313 +#: build/models.py:312 msgid "Completed items" msgstr "Itens concluídos" -#: build/models.py:315 +#: build/models.py:314 msgid "Number of stock items which have been completed" msgstr "Número de itens em estoque concluídos" -#: build/models.py:319 +#: build/models.py:318 msgid "Build Status" msgstr "Progresso da produção" -#: build/models.py:323 +#: build/models.py:322 msgid "Build status code" msgstr "Código de situação da produção" -#: build/models.py:332 build/serializers.py:302 build/serializers.py:1198 -#: order/serializers.py:670 stock/models.py:859 stock/serializers.py:76 -#: stock/serializers.py:1562 templates/js/translated/purchase_order.js:1129 +#: build/models.py:331 build/serializers.py:349 build/serializers.py:1243 +#: order/serializers.py:755 stock/models.py:936 stock/serializers.py:77 +#: stock/serializers.py:1593 templates/js/translated/purchase_order.js:1112 #: templates/js/translated/stock.js:1199 msgid "Batch Code" msgstr "Código de Lote" -#: build/models.py:336 build/serializers.py:303 +#: build/models.py:335 build/serializers.py:350 msgid "Batch code for this build output" msgstr "Código do lote para esta saída de produção" -#: build/models.py:339 order/models.py:315 order/serializers.py:126 -#: part/models.py:1229 part/templates/part/part_base.html:319 +#: build/models.py:338 order/models.py:322 order/serializers.py:157 +#: part/models.py:1290 part/templates/part/part_base.html:327 #: templates/js/translated/return_order.js:338 -#: templates/js/translated/sales_order.js:863 +#: templates/js/translated/sales_order.js:822 msgid "Creation Date" msgstr "Criado em" -#: build/models.py:343 +#: build/models.py:342 msgid "Target completion date" msgstr "Data alvo final" -#: build/models.py:344 +#: build/models.py:343 msgid "Target date for build completion. Build will be overdue after this date." msgstr "Data alvo para finalização de produção. Estará atrasado a partir deste dia." -#: build/models.py:347 order/models.py:526 order/models.py:2180 -#: templates/js/translated/build.js:2419 +#: build/models.py:346 order/models.py:538 order/models.py:2219 +#: templates/js/translated/build.js:2422 msgid "Completion Date" msgstr "Data de conclusão" -#: build/models.py:353 +#: build/models.py:352 msgid "completed by" msgstr "Concluído por" -#: build/models.py:361 templates/js/translated/build.js:2379 +#: build/models.py:360 templates/js/translated/build.js:2382 msgid "Issued by" msgstr "Emitido por" -#: build/models.py:362 +#: build/models.py:361 msgid "User who issued this build order" msgstr "Usuário que emitiu este pedido de produção" -#: build/models.py:370 build/templates/build/build_base.html:212 -#: build/templates/build/detail.html:122 common/models.py:165 order/api.py:142 -#: order/models.py:333 order/templates/order/order_base.html:222 -#: order/templates/order/return_order_base.html:191 -#: order/templates/order/sales_order_base.html:235 part/models.py:1246 -#: part/templates/part/part_base.html:399 +#: build/models.py:369 build/templates/build/build_base.html:213 +#: build/templates/build/detail.html:122 common/models.py:168 order/api.py:140 +#: order/models.py:340 order/templates/order/order_base.html:231 +#: order/templates/order/return_order_base.html:192 +#: order/templates/order/sales_order_base.html:236 part/models.py:1307 +#: part/templates/part/part_base.html:407 #: report/templates/report/inventree_build_order_report.html:158 #: templates/InvenTree/settings/settings_staff_js.html:150 -#: templates/js/translated/build.js:2391 -#: templates/js/translated/purchase_order.js:1833 +#: templates/js/translated/build.js:2394 +#: templates/js/translated/purchase_order.js:1817 #: templates/js/translated/return_order.js:358 #: templates/js/translated/table_filters.js:551 msgid "Responsible" msgstr "Responsável" -#: build/models.py:371 +#: build/models.py:370 msgid "User or group responsible for this build order" msgstr "Usuário ou grupo responsável para este pedido de produção" -#: build/models.py:376 build/templates/build/detail.html:108 +#: build/models.py:375 build/templates/build/detail.html:108 #: company/templates/company/manufacturer_part.html:107 -#: company/templates/company/supplier_part.html:194 -#: order/templates/order/order_base.html:172 -#: order/templates/order/return_order_base.html:148 -#: order/templates/order/sales_order_base.html:187 -#: part/templates/part/part_base.html:392 stock/models.py:855 -#: stock/templates/stock/item_base.html:200 -#: templates/js/translated/company.js:1019 +#: company/templates/company/supplier_part.html:195 +#: order/templates/order/order_base.html:181 +#: order/templates/order/return_order_base.html:149 +#: order/templates/order/sales_order_base.html:188 +#: part/templates/part/part_base.html:400 stock/models.py:932 +#: stock/templates/stock/item_base.html:197 +#: templates/js/translated/company.js:1020 msgid "External Link" msgstr "Link Externo" -#: build/models.py:377 common/models.py:3273 part/models.py:1058 -#: stock/models.py:855 +#: build/models.py:376 common/models.py:3334 part/models.py:1119 +#: stock/models.py:932 msgid "Link to external URL" msgstr "Link para URL externa" -#: build/models.py:381 +#: build/models.py:380 msgid "Build Priority" msgstr "Prioridade de Produção" -#: build/models.py:384 +#: build/models.py:383 msgid "Priority of this build order" msgstr "Prioridade deste pedido de produção" -#: build/models.py:391 common/models.py:135 common/models.py:149 -#: order/admin.py:18 order/api.py:128 order/models.py:297 +#: build/models.py:390 common/models.py:138 common/models.py:152 +#: order/admin.py:18 order/api.py:126 order/models.py:304 #: templates/InvenTree/settings/settings_staff_js.html:146 -#: templates/js/translated/build.js:2316 -#: templates/js/translated/purchase_order.js:1780 +#: templates/js/translated/build.js:2319 +#: templates/js/translated/purchase_order.js:1764 #: templates/js/translated/return_order.js:317 -#: templates/js/translated/sales_order.js:842 +#: templates/js/translated/sales_order.js:801 #: templates/js/translated/table_filters.js:47 #: templates/project_code_data.html:6 msgid "Project Code" msgstr "Código do projeto" -#: build/models.py:392 +#: build/models.py:391 msgid "Project code for this build order" msgstr "Código do projeto para este pedido de produção" -#: build/models.py:651 build/models.py:778 +#: build/models.py:651 build/models.py:779 msgid "Failed to offload task to complete build allocations" msgstr "Falha ao descarregar tarefa para concluir alocações de construção" @@ -1110,610 +1129,619 @@ msgstr "O Pedido de produção {build} foi concluído!" msgid "A build order has been completed" msgstr "Um pedido de produção foi concluído" -#: build/models.py:967 build/models.py:1055 +#: build/models.py:858 build/serializers.py:393 +msgid "Serial numbers must be provided for trackable parts" +msgstr "Números de série devem ser fornecidos para peças rastreáveis" + +#: build/models.py:969 build/models.py:1058 msgid "No build output specified" msgstr "Nenhuma saída de produção especificada" -#: build/models.py:970 +#: build/models.py:972 msgid "Build output is already completed" msgstr "Saída de produção já completada" -#: build/models.py:973 +#: build/models.py:975 msgid "Build output does not match Build Order" msgstr "Saída da produção não corresponde ao Pedido de Produção" -#: build/models.py:1059 build/serializers.py:235 build/serializers.py:284 -#: build/serializers.py:915 order/models.py:564 order/serializers.py:499 -#: order/serializers.py:665 part/serializers.py:1569 part/serializers.py:1999 -#: stock/models.py:700 stock/models.py:1520 stock/serializers.py:669 +#: build/models.py:1062 build/serializers.py:282 build/serializers.py:331 +#: build/serializers.py:959 order/models.py:586 order/serializers.py:584 +#: order/serializers.py:750 part/serializers.py:1627 part/serializers.py:2060 +#: stock/models.py:777 stock/models.py:1609 stock/serializers.py:696 msgid "Quantity must be greater than zero" msgstr "Quantidade deve ser maior que zero" -#: build/models.py:1064 build/serializers.py:240 +#: build/models.py:1067 build/serializers.py:287 msgid "Quantity cannot be greater than the output quantity" msgstr "Quantidade não pode ser maior do que a quantidade de saída" -#: build/models.py:1124 build/serializers.py:563 +#: build/models.py:1127 build/serializers.py:607 #, python-brace-format msgid "Build output {serial} has not passed all required tests" msgstr "O item de produção {serial} não passou todos os testes necessários" -#: build/models.py:1465 +#: build/models.py:1482 msgid "Build Order Line Item" msgstr "Item da linha de Produção" -#: build/models.py:1490 +#: build/models.py:1507 msgid "Build object" msgstr "Objeto de produção" -#: build/models.py:1504 build/models.py:1760 build/serializers.py:222 -#: build/serializers.py:269 build/serializers.py:1295 -#: build/templates/build/build_base.html:110 -#: build/templates/build/detail.html:34 common/models.py:2579 -#: order/models.py:1356 order/models.py:2041 order/serializers.py:1460 +#: build/models.py:1521 build/models.py:1787 build/serializers.py:269 +#: build/serializers.py:316 build/serializers.py:1349 +#: build/templates/build/build_base.html:111 +#: build/templates/build/detail.html:34 common/models.py:2643 +#: order/models.py:1373 order/models.py:2074 order/serializers.py:1586 #: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:413 -#: part/forms.py:48 part/models.py:3284 part/models.py:4253 -#: part/templates/part/part_pricing.html:16 +#: part/forms.py:48 part/models.py:3335 part/models.py:4310 +#: part/serializers.py:265 part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_bill_of_materials_report.html:138 #: report/templates/report/inventree_build_order_report.html:113 #: report/templates/report/inventree_purchase_order_report.html:29 #: report/templates/report/inventree_sales_order_report.html:29 +#: report/templates/report/inventree_sales_order_shipment_report.html:47 +#: report/templates/report/inventree_sales_order_shipment_report.html:49 #: report/templates/report/inventree_stock_location_report.html:104 #: report/templates/report/inventree_test_report.html:90 -#: report/templates/report/inventree_test_report.html:169 stock/admin.py:159 -#: stock/serializers.py:127 stock/serializers.py:167 stock/serializers.py:660 -#: stock/templates/stock/item_base.html:287 -#: stock/templates/stock/item_base.html:295 -#: stock/templates/stock/item_base.html:342 +#: report/templates/report/inventree_test_report.html:169 stock/admin.py:160 +#: stock/serializers.py:128 stock/serializers.py:168 stock/serializers.py:687 +#: stock/templates/stock/item_base.html:284 +#: stock/templates/stock/item_base.html:292 +#: stock/templates/stock/item_base.html:339 #: templates/email/build_order_completed.html:18 #: templates/js/translated/barcode.js:579 templates/js/translated/bom.js:771 -#: templates/js/translated/bom.js:981 templates/js/translated/build.js:522 -#: templates/js/translated/build.js:737 templates/js/translated/build.js:1542 -#: templates/js/translated/build.js:1919 templates/js/translated/build.js:2529 -#: templates/js/translated/company.js:1818 -#: templates/js/translated/model_renderers.js:237 +#: templates/js/translated/bom.js:981 templates/js/translated/build.js:525 +#: templates/js/translated/build.js:740 templates/js/translated/build.js:1545 +#: templates/js/translated/build.js:1922 templates/js/translated/build.js:2536 +#: templates/js/translated/company.js:1819 +#: templates/js/translated/model_renderers.js:240 #: templates/js/translated/order.js:329 templates/js/translated/part.js:968 -#: templates/js/translated/part.js:1818 templates/js/translated/part.js:3360 +#: templates/js/translated/part.js:1818 templates/js/translated/part.js:3376 #: templates/js/translated/pricing.js:381 #: templates/js/translated/pricing.js:474 #: templates/js/translated/pricing.js:522 #: templates/js/translated/pricing.js:616 -#: templates/js/translated/purchase_order.js:754 -#: templates/js/translated/purchase_order.js:1922 -#: templates/js/translated/purchase_order.js:2141 -#: templates/js/translated/sales_order.js:317 -#: templates/js/translated/sales_order.js:1235 -#: templates/js/translated/sales_order.js:1554 -#: templates/js/translated/sales_order.js:1644 -#: templates/js/translated/sales_order.js:1734 -#: templates/js/translated/sales_order.js:1860 +#: templates/js/translated/purchase_order.js:737 +#: templates/js/translated/purchase_order.js:1906 +#: templates/js/translated/purchase_order.js:2125 +#: templates/js/translated/sales_order.js:1201 +#: templates/js/translated/sales_order.js:1520 +#: templates/js/translated/sales_order.js:1625 +#: templates/js/translated/sales_order.js:1715 +#: templates/js/translated/sales_order.js:1841 #: templates/js/translated/stock.js:570 templates/js/translated/stock.js:708 -#: templates/js/translated/stock.js:879 templates/js/translated/stock.js:3105 -#: templates/js/translated/stock.js:3188 +#: templates/js/translated/stock.js:879 templates/js/translated/stock.js:3106 +#: templates/js/translated/stock.js:3189 msgid "Quantity" msgstr "Quantidade" -#: build/models.py:1505 +#: build/models.py:1522 msgid "Required quantity for build order" msgstr "Quantidade necessária para o pedido de produção" -#: build/models.py:1585 +#: build/models.py:1602 msgid "Build item must specify a build output, as master part is marked as trackable" msgstr "Item de produção deve especificar a saída, pois peças mestres estão marcadas como rastreáveis" -#: build/models.py:1594 +#: build/models.py:1611 #, python-brace-format msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgstr "Quantidade alocada ({q}) não deve exceder a quantidade disponível em estoque ({a})" -#: build/models.py:1604 order/models.py:1992 +#: build/models.py:1628 order/models.py:2025 msgid "Stock item is over-allocated" msgstr "O item do estoque está sobre-alocado" -#: build/models.py:1610 order/models.py:1995 +#: build/models.py:1634 order/models.py:2028 msgid "Allocation quantity must be greater than zero" msgstr "Quantidade alocada deve ser maior que zero" -#: build/models.py:1616 +#: build/models.py:1640 msgid "Quantity must be 1 for serialized stock" msgstr "Quantidade deve ser 1 para estoque serializado" -#: build/models.py:1675 +#: build/models.py:1699 msgid "Selected stock item does not match BOM line" msgstr "Item estoque selecionado não coincide com linha da LDM" -#: build/models.py:1747 build/serializers.py:895 order/serializers.py:1297 -#: order/serializers.py:1318 stock/models.py:376 stock/serializers.py:93 -#: stock/serializers.py:763 stock/serializers.py:1281 stock/serializers.py:1393 -#: stock/templates/stock/item_base.html:10 -#: stock/templates/stock/item_base.html:23 -#: stock/templates/stock/item_base.html:194 -#: templates/js/translated/build.js:1918 -#: templates/js/translated/sales_order.js:301 -#: templates/js/translated/sales_order.js:1234 -#: templates/js/translated/sales_order.js:1535 -#: templates/js/translated/sales_order.js:1540 -#: templates/js/translated/sales_order.js:1641 -#: templates/js/translated/sales_order.js:1728 +#: build/models.py:1774 build/serializers.py:939 order/serializers.py:1423 +#: order/serializers.py:1444 +#: report/templates/report/inventree_sales_order_shipment_report.html:29 +#: stock/models.py:382 stock/serializers.py:94 stock/serializers.py:794 +#: stock/serializers.py:1312 stock/serializers.py:1424 +#: stock/templates/stock/item_base.html:11 +#: stock/templates/stock/item_base.html:24 +#: stock/templates/stock/item_base.html:191 +#: templates/js/translated/build.js:1921 +#: templates/js/translated/sales_order.js:1200 +#: templates/js/translated/sales_order.js:1501 +#: templates/js/translated/sales_order.js:1506 +#: templates/js/translated/sales_order.js:1622 +#: templates/js/translated/sales_order.js:1709 #: templates/js/translated/stock.js:683 templates/js/translated/stock.js:849 -#: templates/js/translated/stock.js:3061 +#: templates/js/translated/stock.js:3062 msgid "Stock Item" msgstr "Item de estoque" -#: build/models.py:1748 +#: build/models.py:1775 msgid "Source stock item" msgstr "Origem do item em estoque" -#: build/models.py:1761 +#: build/models.py:1788 msgid "Stock quantity to allocate to build" msgstr "Quantidade do estoque para alocar à produção" -#: build/models.py:1769 +#: build/models.py:1796 msgid "Install into" msgstr "Instalar em" -#: build/models.py:1770 +#: build/models.py:1797 msgid "Destination stock item" msgstr "Destino do Item do Estoque" -#: build/serializers.py:91 +#: build/serializers.py:108 msgid "Build Level" msgstr "" -#: build/serializers.py:99 build/serializers.py:1190 build/serializers.py:1279 -#: part/admin.py:41 part/admin.py:408 part/models.py:4102 part/stocktake.py:219 -#: stock/admin.py:156 +#: build/serializers.py:116 build/serializers.py:1235 build/serializers.py:1331 +#: part/admin.py:41 part/admin.py:408 part/models.py:4160 part/stocktake.py:219 +#: stock/admin.py:157 msgid "Part Name" msgstr "Nome da Peça" -#: build/serializers.py:111 +#: build/serializers.py:128 msgid "Project Code Label" msgstr "" -#: build/serializers.py:172 build/serializers.py:924 -#: templates/js/translated/build.js:1042 templates/js/translated/build.js:1495 +#: build/serializers.py:134 +msgid "Create Child Builds" +msgstr "" + +#: build/serializers.py:135 +msgid "Automatically generate child build orders" +msgstr "" + +#: build/serializers.py:219 build/serializers.py:968 +#: templates/js/translated/build.js:1045 templates/js/translated/build.js:1498 msgid "Build Output" msgstr "Saída da Produção" -#: build/serializers.py:184 +#: build/serializers.py:231 msgid "Build output does not match the parent build" msgstr "Saída de produção não coincide com a produção progenitora" -#: build/serializers.py:188 +#: build/serializers.py:235 msgid "Output part does not match BuildOrder part" msgstr "Peça de saída não coincide com a peça da ordem de produção" -#: build/serializers.py:192 +#: build/serializers.py:239 msgid "This build output has already been completed" msgstr "Esta saída de produção já foi concluída" -#: build/serializers.py:203 +#: build/serializers.py:250 msgid "This build output is not fully allocated" msgstr "A saída de produção não está completamente alocada" -#: build/serializers.py:223 build/serializers.py:270 +#: build/serializers.py:270 build/serializers.py:317 msgid "Enter quantity for build output" msgstr "Entre a quantidade da saída de produção" -#: build/serializers.py:291 +#: build/serializers.py:338 msgid "Integer quantity required for trackable parts" msgstr "Quantidade inteira necessária para peças rastreáveis" -#: build/serializers.py:294 +#: build/serializers.py:341 msgid "Integer quantity required, as the bill of materials contains trackable parts" msgstr "Quantidade inteira necessária, pois a lista de materiais contém peças rastreáveis" -#: build/serializers.py:309 order/serializers.py:678 order/serializers.py:1464 -#: stock/serializers.py:680 templates/js/translated/purchase_order.js:1154 +#: build/serializers.py:356 order/serializers.py:763 order/serializers.py:1590 +#: stock/serializers.py:707 templates/js/translated/purchase_order.js:1137 #: templates/js/translated/stock.js:373 templates/js/translated/stock.js:571 msgid "Serial Numbers" msgstr "Números de Série" -#: build/serializers.py:310 +#: build/serializers.py:357 msgid "Enter serial numbers for build outputs" msgstr "Digite os números de série para saídas de produção" -#: build/serializers.py:315 build/serializers.py:456 build/serializers.py:528 -#: order/serializers.py:654 order/serializers.py:778 order/serializers.py:1781 -#: part/serializers.py:1212 stock/serializers.py:102 stock/serializers.py:691 -#: stock/serializers.py:851 stock/serializers.py:977 stock/serializers.py:1425 -#: stock/serializers.py:1681 stock/templates/stock/item_base.html:394 +#: build/serializers.py:362 build/serializers.py:500 build/serializers.py:572 +#: order/serializers.py:739 order/serializers.py:880 order/serializers.py:1933 +#: part/serializers.py:1265 stock/serializers.py:103 stock/serializers.py:718 +#: stock/serializers.py:882 stock/serializers.py:1008 stock/serializers.py:1456 +#: stock/serializers.py:1712 stock/templates/stock/item_base.html:391 #: templates/js/translated/barcode.js:578 -#: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1032 -#: templates/js/translated/build.js:1174 templates/js/translated/build.js:2544 -#: templates/js/translated/purchase_order.js:1210 -#: templates/js/translated/purchase_order.js:1320 -#: templates/js/translated/sales_order.js:1547 -#: templates/js/translated/sales_order.js:1655 -#: templates/js/translated/sales_order.js:1663 -#: templates/js/translated/sales_order.js:1742 +#: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1035 +#: templates/js/translated/build.js:1177 templates/js/translated/build.js:2551 +#: templates/js/translated/purchase_order.js:1193 +#: templates/js/translated/purchase_order.js:1303 +#: templates/js/translated/sales_order.js:1513 +#: templates/js/translated/sales_order.js:1636 +#: templates/js/translated/sales_order.js:1644 +#: templates/js/translated/sales_order.js:1723 #: templates/js/translated/stock.js:684 templates/js/translated/stock.js:850 -#: templates/js/translated/stock.js:1067 templates/js/translated/stock.js:2286 -#: templates/js/translated/stock.js:2955 +#: templates/js/translated/stock.js:1067 templates/js/translated/stock.js:2287 +#: templates/js/translated/stock.js:2956 msgid "Location" msgstr "Local" -#: build/serializers.py:316 +#: build/serializers.py:363 msgid "Stock location for build output" msgstr "Local de estoque para a produção" -#: build/serializers.py:330 +#: build/serializers.py:377 msgid "Auto Allocate Serial Numbers" msgstr "Alocar Números de Série Automaticamente" -#: build/serializers.py:331 +#: build/serializers.py:378 msgid "Automatically allocate required items with matching serial numbers" msgstr "Alocar automaticamente os itens necessários com os números de série correspondentes" -#: build/serializers.py:346 -msgid "Serial numbers must be provided for trackable parts" -msgstr "Números de série devem ser fornecidos para peças rastreáveis" - -#: build/serializers.py:371 stock/api.py:1031 +#: build/serializers.py:415 order/serializers.py:858 stock/api.py:1017 +#: stock/models.py:1632 msgid "The following serial numbers already exist or are invalid" msgstr "Os seguintes números de série já existem ou são inválidos" -#: build/serializers.py:418 build/serializers.py:480 build/serializers.py:569 +#: build/serializers.py:462 build/serializers.py:524 build/serializers.py:613 msgid "A list of build outputs must be provided" msgstr "Uma lista de saídas de produção deve ser fornecida" -#: build/serializers.py:457 +#: build/serializers.py:501 msgid "Stock location for scrapped outputs" msgstr "Local de estoque para saídas recicladas" -#: build/serializers.py:463 +#: build/serializers.py:507 msgid "Discard Allocations" msgstr "Descartar alocações" -#: build/serializers.py:464 +#: build/serializers.py:508 msgid "Discard any stock allocations for scrapped outputs" msgstr "Descartar quaisquer alocações de estoque para saídas sucateadas" -#: build/serializers.py:469 +#: build/serializers.py:513 msgid "Reason for scrapping build output(s)" msgstr "Motivo para sucatear saída(s) de produção" -#: build/serializers.py:529 +#: build/serializers.py:573 msgid "Location for completed build outputs" msgstr "Local para saídas de produção concluídas" -#: build/serializers.py:535 build/templates/build/build_base.html:159 -#: build/templates/build/detail.html:62 order/models.py:476 -#: order/models.py:1002 order/models.py:2159 order/serializers.py:686 -#: stock/admin.py:164 stock/serializers.py:1028 stock/serializers.py:1569 -#: stock/templates/stock/item_base.html:427 -#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2363 -#: templates/js/translated/purchase_order.js:1371 -#: templates/js/translated/purchase_order.js:1792 +#: build/serializers.py:579 build/templates/build/build_base.html:160 +#: build/templates/build/detail.html:62 order/models.py:488 +#: order/models.py:1029 order/models.py:2198 order/serializers.py:771 +#: stock/admin.py:165 stock/serializers.py:581 stock/serializers.py:1059 +#: stock/serializers.py:1600 stock/templates/stock/item_base.html:424 +#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2366 +#: templates/js/translated/purchase_order.js:1354 +#: templates/js/translated/purchase_order.js:1776 #: templates/js/translated/return_order.js:330 -#: templates/js/translated/sales_order.js:855 -#: templates/js/translated/stock.js:2261 templates/js/translated/stock.js:3079 -#: templates/js/translated/stock.js:3204 +#: templates/js/translated/sales_order.js:814 +#: templates/js/translated/stock.js:2262 templates/js/translated/stock.js:3080 +#: templates/js/translated/stock.js:3205 msgid "Status" msgstr "Situação" -#: build/serializers.py:541 +#: build/serializers.py:585 msgid "Accept Incomplete Allocation" msgstr "Aceitar Alocação Incompleta" -#: build/serializers.py:542 +#: build/serializers.py:586 msgid "Complete outputs if stock has not been fully allocated" msgstr "Concluir saídas se o estoque não tiver sido totalmente alocado" -#: build/serializers.py:654 +#: build/serializers.py:698 msgid "Consume Allocated Stock" msgstr "Consumir Estoque Alocado" -#: build/serializers.py:655 +#: build/serializers.py:699 msgid "Consume any stock which has already been allocated to this build" msgstr "Consumir qualquer estoque que já tenha sido alocado para esta produção" -#: build/serializers.py:661 +#: build/serializers.py:705 msgid "Remove Incomplete Outputs" msgstr "Remover Saídas Incompletas" -#: build/serializers.py:662 +#: build/serializers.py:706 msgid "Delete any build outputs which have not been completed" msgstr "Excluir quaisquer saídas de produção que não tenham sido completadas" -#: build/serializers.py:689 +#: build/serializers.py:733 msgid "Not permitted" msgstr "Não permitido" -#: build/serializers.py:690 +#: build/serializers.py:734 msgid "Accept as consumed by this build order" msgstr "Aceitar conforme consumido por esta ordem de produção" -#: build/serializers.py:691 +#: build/serializers.py:735 msgid "Deallocate before completing this build order" msgstr "Desatribua antes de completar este pedido de produção" -#: build/serializers.py:721 +#: build/serializers.py:765 msgid "Overallocated Stock" msgstr "Estoque sobrealocado" -#: build/serializers.py:723 +#: build/serializers.py:767 msgid "How do you want to handle extra stock items assigned to the build order" msgstr "Como deseja manejar itens de estoque extras atribuídos ao pedido de produção" -#: build/serializers.py:733 +#: build/serializers.py:777 msgid "Some stock items have been overallocated" msgstr "Alguns itens de estoque foram sobrealocados" -#: build/serializers.py:738 +#: build/serializers.py:782 msgid "Accept Unallocated" msgstr "Aceitar não alocados" -#: build/serializers.py:739 +#: build/serializers.py:783 msgid "Accept that stock items have not been fully allocated to this build order" msgstr "Aceitar que os itens de estoque não foram totalmente alocados para esta produção" -#: build/serializers.py:749 templates/js/translated/build.js:316 +#: build/serializers.py:793 templates/js/translated/build.js:319 msgid "Required stock has not been fully allocated" msgstr "Estoque obrigatório não foi totalmente alocado" -#: build/serializers.py:754 order/serializers.py:345 order/serializers.py:1365 +#: build/serializers.py:798 order/serializers.py:430 order/serializers.py:1491 msgid "Accept Incomplete" msgstr "Aceitar Incompleto" -#: build/serializers.py:755 +#: build/serializers.py:799 msgid "Accept that the required number of build outputs have not been completed" msgstr "Aceitar que o número requerido de saídas de produção não foi concluído" -#: build/serializers.py:765 templates/js/translated/build.js:320 +#: build/serializers.py:809 templates/js/translated/build.js:323 msgid "Required build quantity has not been completed" msgstr "Quantidade de produção requerida não foi concluída" -#: build/serializers.py:774 +#: build/serializers.py:818 msgid "Build order has open child build orders" msgstr "" -#: build/serializers.py:777 +#: build/serializers.py:821 msgid "Build order must be in production state" msgstr "" -#: build/serializers.py:780 templates/js/translated/build.js:304 +#: build/serializers.py:824 templates/js/translated/build.js:307 msgid "Build order has incomplete outputs" msgstr "Pedido de produção tem saídas incompletas" -#: build/serializers.py:818 +#: build/serializers.py:862 msgid "Build Line" msgstr "Linha de produção" -#: build/serializers.py:828 +#: build/serializers.py:872 msgid "Build output" msgstr "Saída da Produção" -#: build/serializers.py:836 +#: build/serializers.py:880 msgid "Build output must point to the same build" msgstr "Saída de produção deve indicar a mesma produção" -#: build/serializers.py:872 +#: build/serializers.py:916 msgid "Build Line Item" msgstr "Item da linha de produção" -#: build/serializers.py:886 +#: build/serializers.py:930 msgid "bom_item.part must point to the same part as the build order" msgstr "bin_item.part deve indicar a mesma peça do pedido de produção" -#: build/serializers.py:901 stock/serializers.py:1294 +#: build/serializers.py:945 stock/serializers.py:1325 msgid "Item must be in stock" msgstr "Item deve estar em estoque" -#: build/serializers.py:949 order/serializers.py:1351 +#: build/serializers.py:993 order/serializers.py:1477 #, python-brace-format msgid "Available quantity ({q}) exceeded" msgstr "Quantidade disponível ({q}) excedida" -#: build/serializers.py:955 +#: build/serializers.py:999 msgid "Build output must be specified for allocation of tracked parts" msgstr "Saída de produção deve ser definida para alocação de peças rastreadas" -#: build/serializers.py:962 +#: build/serializers.py:1006 msgid "Build output cannot be specified for allocation of untracked parts" msgstr "Saída de produção deve ser definida para alocação de peças não rastreadas" -#: build/serializers.py:986 order/serializers.py:1610 +#: build/serializers.py:1030 order/serializers.py:1750 msgid "Allocation items must be provided" msgstr "Alocação do Item precisa ser fornecida" -#: build/serializers.py:1049 +#: build/serializers.py:1093 msgid "Stock location where parts are to be sourced (leave blank to take from any location)" msgstr "Local de estoque onde peças serão extraídas (deixar em branco para qualquer local)" -#: build/serializers.py:1057 +#: build/serializers.py:1101 msgid "Exclude Location" msgstr "Local não incluso" -#: build/serializers.py:1058 +#: build/serializers.py:1102 msgid "Exclude stock items from this selected location" msgstr "Não incluir itens de estoque deste local" -#: build/serializers.py:1063 +#: build/serializers.py:1107 msgid "Interchangeable Stock" msgstr "Estoque permutável" -#: build/serializers.py:1064 +#: build/serializers.py:1108 msgid "Stock items in multiple locations can be used interchangeably" msgstr "Itens de estoque em múltiplos locais pode ser permutável" -#: build/serializers.py:1069 +#: build/serializers.py:1113 msgid "Substitute Stock" msgstr "Substituir Estoque" -#: build/serializers.py:1070 +#: build/serializers.py:1114 msgid "Allow allocation of substitute parts" msgstr "Permitir alocação de peças substitutas" -#: build/serializers.py:1075 +#: build/serializers.py:1119 msgid "Optional Items" msgstr "Itens opcionais" -#: build/serializers.py:1076 +#: build/serializers.py:1120 msgid "Allocate optional BOM items to build order" msgstr "Alocar itens LDM opcionais para o pedido de produção" -#: build/serializers.py:1098 +#: build/serializers.py:1143 msgid "Failed to start auto-allocation task" msgstr "Falha ao iniciar tarefa de auto-alocação" -#: build/serializers.py:1181 +#: build/serializers.py:1226 stock/serializers.py:585 msgid "Supplier Part Number" msgstr "" -#: build/serializers.py:1182 company/models.py:506 +#: build/serializers.py:1227 company/models.py:503 stock/serializers.py:591 msgid "Manufacturer Part Number" msgstr "Número de Peça do Fabricante" -#: build/serializers.py:1183 stock/admin.py:53 stock/admin.py:175 -#: stock/serializers.py:457 +#: build/serializers.py:1228 stock/admin.py:53 stock/admin.py:176 +#: stock/serializers.py:467 msgid "Location Name" msgstr "Nome do Local" -#: build/serializers.py:1184 +#: build/serializers.py:1229 build/serializers.py:1327 msgid "Build Reference" msgstr "" -#: build/serializers.py:1185 +#: build/serializers.py:1230 msgid "BOM Reference" msgstr "" -#: build/serializers.py:1186 company/models.py:852 -#: company/templates/company/supplier_part.html:160 order/serializers.py:690 -#: stock/admin.py:228 stock/models.py:818 stock/serializers.py:1579 -#: stock/templates/stock/item_base.html:240 -#: templates/js/translated/company.js:1646 -#: templates/js/translated/purchase_order.js:1169 -#: templates/js/translated/purchase_order.js:1332 +#: build/serializers.py:1231 company/models.py:849 +#: company/templates/company/supplier_part.html:161 order/serializers.py:775 +#: stock/admin.py:229 stock/models.py:895 stock/serializers.py:1610 +#: stock/templates/stock/item_base.html:237 +#: templates/js/translated/company.js:1647 +#: templates/js/translated/purchase_order.js:1152 +#: templates/js/translated/purchase_order.js:1315 #: templates/js/translated/stock.js:1214 templates/js/translated/stock.js:1246 -#: templates/js/translated/stock.js:2509 +#: templates/js/translated/stock.js:2510 msgid "Packaging" msgstr "Embalagem" -#: build/serializers.py:1189 part/admin.py:39 part/admin.py:398 -#: part/models.py:4101 part/stocktake.py:218 stock/admin.py:152 +#: build/serializers.py:1234 part/admin.py:39 part/admin.py:398 +#: part/models.py:4159 part/stocktake.py:218 stock/admin.py:153 msgid "Part ID" msgstr "ID da Peça" -#: build/serializers.py:1191 build/serializers.py:1280 part/admin.py:402 -#: part/models.py:4103 +#: build/serializers.py:1236 build/serializers.py:1332 part/admin.py:402 +#: part/models.py:4161 msgid "Part IPN" msgstr "IPN da Peça" -#: build/serializers.py:1192 build/serializers.py:1282 part/admin.py:45 +#: build/serializers.py:1237 build/serializers.py:1334 part/admin.py:45 #: part/stocktake.py:220 msgid "Part Description" msgstr "Descrição da Peça" -#: build/serializers.py:1195 +#: build/serializers.py:1240 msgid "BOM Part ID" msgstr "" -#: build/serializers.py:1196 +#: build/serializers.py:1241 msgid "BOM Part Name" msgstr "" -#: build/serializers.py:1199 +#: build/serializers.py:1244 #: report/templates/report/inventree_return_order_report.html:25 -#: report/templates/report/inventree_test_report.html:88 stock/models.py:845 -#: stock/serializers.py:151 stock/templates/stock/item_base.html:311 -#: templates/js/translated/build.js:520 templates/js/translated/build.js:1540 -#: templates/js/translated/build.js:2527 -#: templates/js/translated/model_renderers.js:231 +#: report/templates/report/inventree_sales_order_shipment_report.html:45 +#: report/templates/report/inventree_test_report.html:88 stock/models.py:922 +#: stock/serializers.py:152 stock/templates/stock/item_base.html:308 +#: templates/js/translated/build.js:523 templates/js/translated/build.js:1543 +#: templates/js/translated/build.js:2534 +#: templates/js/translated/model_renderers.js:234 #: templates/js/translated/return_order.js:539 #: templates/js/translated/return_order.js:722 -#: templates/js/translated/sales_order.js:315 -#: templates/js/translated/sales_order.js:1647 -#: templates/js/translated/sales_order.js:1732 +#: templates/js/translated/sales_order.js:1628 +#: templates/js/translated/sales_order.js:1713 #: templates/js/translated/stock.js:602 msgid "Serial Number" msgstr "Número de Sério" -#: build/serializers.py:1212 stock/serializers.py:593 -#: templates/js/translated/build.js:1017 templates/js/translated/build.js:1164 -#: templates/js/translated/build.js:2516 +#: build/serializers.py:1257 stock/serializers.py:620 +#: templates/js/translated/build.js:1020 templates/js/translated/build.js:1167 +#: templates/js/translated/build.js:2523 msgid "Allocated Quantity" msgstr "Quantidade Alocada" -#: build/serializers.py:1213 stock/templates/stock/item_base.html:340 +#: build/serializers.py:1258 stock/templates/stock/item_base.html:337 msgid "Available Quantity" msgstr "Quantidade Disponível" -#: build/serializers.py:1283 +#: build/serializers.py:1335 msgid "Part Category ID" msgstr "" -#: build/serializers.py:1284 +#: build/serializers.py:1336 msgid "Part Category Name" msgstr "" -#: build/serializers.py:1291 common/models.py:1513 part/admin.py:113 -#: part/models.py:1166 templates/js/translated/table_filters.js:150 +#: build/serializers.py:1345 common/models.py:1582 part/admin.py:113 +#: part/models.py:1227 templates/js/translated/build.js:2738 +#: templates/js/translated/table_filters.js:150 #: templates/js/translated/table_filters.js:230 #: templates/js/translated/table_filters.js:783 msgid "Trackable" msgstr "Rastreável" -#: build/serializers.py:1292 +#: build/serializers.py:1346 msgid "Inherited" msgstr "" -#: build/serializers.py:1293 part/models.py:4313 +#: build/serializers.py:1347 part/models.py:4370 #: part/templates/part/upload_bom.html:56 templates/js/translated/bom.js:1046 -#: templates/js/translated/build.js:2711 +#: templates/js/translated/build.js:2720 msgid "Allow Variants" msgstr "Permitir variações" -#: build/serializers.py:1297 part/models.py:4110 part/models.py:4584 +#: build/serializers.py:1351 part/models.py:4168 part/models.py:4646 #: stock/api.py:794 msgid "BOM Item" msgstr "Item LDM" -#: build/serializers.py:1306 build/templates/build/detail.html:236 +#: build/serializers.py:1370 build/templates/build/detail.html:236 #: build/templates/build/sidebar.html:16 templates/js/translated/index.js:130 msgid "Allocated Stock" msgstr "Estoque Alocado" -#: build/serializers.py:1311 order/serializers.py:1175 part/admin.py:132 -#: part/bom.py:181 part/serializers.py:899 part/serializers.py:1602 -#: part/templates/part/part_base.html:210 templates/js/translated/bom.js:1208 -#: templates/js/translated/build.js:2804 templates/js/translated/part.js:712 +#: build/serializers.py:1375 order/serializers.py:1209 part/admin.py:132 +#: part/bom.py:186 part/serializers.py:951 part/serializers.py:1660 +#: part/templates/part/part_base.html:211 templates/js/translated/bom.js:1208 +#: templates/js/translated/build.js:2822 templates/js/translated/part.js:712 #: templates/js/translated/part.js:2155 #: templates/js/translated/table_filters.js:177 msgid "On Order" msgstr "No pedido" -#: build/serializers.py:1316 order/serializers.py:1176 part/serializers.py:1604 -#: templates/js/translated/build.js:2808 +#: build/serializers.py:1380 order/serializers.py:1210 part/serializers.py:1662 +#: templates/js/translated/build.js:2826 #: templates/js/translated/table_filters.js:367 msgid "In Production" msgstr "Em Produção" -#: build/serializers.py:1321 part/bom.py:180 part/serializers.py:1629 -#: part/templates/part/part_base.html:192 -#: templates/js/translated/sales_order.js:1929 -msgid "Available Stock" -msgstr "Estoque Disponível" - -#: build/serializers.py:1325 -msgid "Available Substitute Stock" -msgstr "" - -#: build/serializers.py:1326 -msgid "Available Variant Stock" -msgstr "" - -#: build/serializers.py:1327 -msgid "Total Available Stock" -msgstr "" - -#: build/serializers.py:1328 part/serializers.py:906 +#: build/serializers.py:1384 part/serializers.py:958 msgid "External Stock" msgstr "" -#: build/status_codes.py:11 generic/states/tests.py:17 order/status_codes.py:12 -#: order/status_codes.py:42 order/status_codes.py:74 order/status_codes.py:98 +#: build/serializers.py:1385 part/bom.py:185 part/serializers.py:1687 +#: part/templates/part/part_base.html:193 +#: templates/js/translated/sales_order.js:1910 +msgid "Available Stock" +msgstr "Estoque Disponível" + +#: build/serializers.py:1386 +msgid "Available Substitute Stock" +msgstr "" + +#: build/serializers.py:1387 +msgid "Available Variant Stock" +msgstr "" + +#: build/status_codes.py:11 generic/states/tests.py:21 +#: generic/states/tests.py:131 order/status_codes.py:12 +#: order/status_codes.py:44 order/status_codes.py:76 order/status_codes.py:102 #: templates/js/translated/table_filters.js:601 msgid "Pending" msgstr "Pendente" @@ -1722,21 +1750,21 @@ msgstr "Pendente" msgid "Production" msgstr "Produção" -#: build/status_codes.py:13 order/status_codes.py:14 order/status_codes.py:49 -#: order/status_codes.py:79 +#: build/status_codes.py:13 order/status_codes.py:14 order/status_codes.py:51 +#: order/status_codes.py:81 msgid "On Hold" msgstr "" -#: build/status_codes.py:14 order/status_codes.py:16 order/status_codes.py:51 -#: order/status_codes.py:82 +#: build/status_codes.py:14 order/status_codes.py:16 order/status_codes.py:53 +#: order/status_codes.py:84 msgid "Cancelled" msgstr "Cancelado" -#: build/status_codes.py:15 generic/states/tests.py:19 importer/models.py:509 -#: importer/status_codes.py:19 order/status_codes.py:15 -#: order/status_codes.py:50 order/status_codes.py:81 -#: order/templates/order/order_base.html:163 -#: order/templates/order/sales_order_base.html:168 report/models.py:443 +#: build/status_codes.py:15 generic/states/tests.py:23 importer/models.py:518 +#: importer/status_codes.py:27 order/status_codes.py:15 +#: order/status_codes.py:52 order/status_codes.py:83 +#: order/templates/order/order_base.html:172 +#: order/templates/order/sales_order_base.html:169 report/models.py:451 msgid "Complete" msgstr "Completado" @@ -1744,165 +1772,162 @@ msgstr "Completado" msgid "Stock required for build order" msgstr "Estoque obrigatório para o pedido de produção" -#: build/tasks.py:201 +#: build/tasks.py:260 msgid "Overdue Build Order" msgstr "Pedido de produção vencido" -#: build/tasks.py:206 +#: build/tasks.py:265 #, python-brace-format msgid "Build order {bo} is now overdue" msgstr "Pedido de produção {bo} está atrasada" -#: build/templates/build/build_base.html:18 +#: build/templates/build/build_base.html:19 msgid "Part thumbnail" msgstr "Miniatura da parte" -#: build/templates/build/build_base.html:38 -#: company/templates/company/supplier_part.html:35 -#: order/templates/order/order_base.html:29 -#: order/templates/order/return_order_base.html:38 -#: order/templates/order/sales_order_base.html:38 -#: part/templates/part/part_base.html:41 -#: stock/templates/stock/item_base.html:40 -#: stock/templates/stock/location.html:52 +#: build/templates/build/build_base.html:39 +#: company/templates/company/supplier_part.html:36 +#: order/templates/order/order_base.html:30 +#: order/templates/order/return_order_base.html:39 +#: order/templates/order/sales_order_base.html:39 +#: part/templates/part/part_base.html:42 +#: stock/templates/stock/item_base.html:41 +#: stock/templates/stock/location.html:53 #: templates/js/translated/filters.js:338 msgid "Barcode actions" msgstr "Ações de código de barras" -#: build/templates/build/build_base.html:42 -#: company/templates/company/supplier_part.html:39 -#: order/templates/order/order_base.html:33 -#: order/templates/order/return_order_base.html:42 -#: order/templates/order/sales_order_base.html:42 -#: part/templates/part/part_base.html:44 -#: stock/templates/stock/item_base.html:44 -#: stock/templates/stock/location.html:54 templates/qr_button.html:1 +#: build/templates/build/build_base.html:43 +#: company/templates/company/supplier_part.html:40 +#: order/templates/order/order_base.html:34 +#: order/templates/order/return_order_base.html:43 +#: order/templates/order/sales_order_base.html:43 +#: part/templates/part/part_base.html:45 +#: stock/templates/stock/item_base.html:45 +#: stock/templates/stock/location.html:55 templates/qr_button.html:1 msgid "Show QR Code" msgstr "Mostrar QR Code" -#: build/templates/build/build_base.html:45 -#: company/templates/company/supplier_part.html:41 -#: order/templates/order/order_base.html:36 -#: order/templates/order/return_order_base.html:45 -#: order/templates/order/sales_order_base.html:45 -#: part/templates/part/part_base.html:47 -#: stock/templates/stock/item_base.html:47 -#: stock/templates/stock/location.html:56 +#: build/templates/build/build_base.html:46 +#: company/templates/company/supplier_part.html:42 +#: order/templates/order/order_base.html:37 +#: order/templates/order/return_order_base.html:46 +#: order/templates/order/sales_order_base.html:46 +#: part/templates/part/part_base.html:48 +#: stock/templates/stock/item_base.html:48 +#: stock/templates/stock/location.html:57 #: templates/js/translated/barcode.js:527 #: templates/js/translated/barcode.js:532 msgid "Unlink Barcode" msgstr "Desatribuir Código de Barras" -#: build/templates/build/build_base.html:47 -#: company/templates/company/supplier_part.html:43 -#: order/templates/order/order_base.html:38 -#: order/templates/order/return_order_base.html:47 -#: order/templates/order/sales_order_base.html:47 -#: part/templates/part/part_base.html:49 -#: stock/templates/stock/item_base.html:49 -#: stock/templates/stock/location.html:58 +#: build/templates/build/build_base.html:48 +#: company/templates/company/supplier_part.html:44 +#: order/templates/order/order_base.html:39 +#: order/templates/order/return_order_base.html:48 +#: order/templates/order/sales_order_base.html:48 +#: part/templates/part/part_base.html:50 +#: stock/templates/stock/item_base.html:50 +#: stock/templates/stock/location.html:59 msgid "Link Barcode" msgstr "Atribuir Código de Barras" -#: build/templates/build/build_base.html:56 -#: order/templates/order/order_base.html:46 -#: order/templates/order/return_order_base.html:55 -#: order/templates/order/sales_order_base.html:55 +#: build/templates/build/build_base.html:57 +#: order/templates/order/order_base.html:47 +#: order/templates/order/return_order_base.html:56 +#: order/templates/order/sales_order_base.html:56 msgid "Print actions" msgstr "Ações de impressão" -#: build/templates/build/build_base.html:60 +#: build/templates/build/build_base.html:61 msgid "Print build order report" msgstr "Imprimir relatório do pedido de produção" -#: build/templates/build/build_base.html:67 +#: build/templates/build/build_base.html:68 msgid "Build actions" msgstr "Ações de produção" -#: build/templates/build/build_base.html:71 +#: build/templates/build/build_base.html:72 msgid "Edit Build" msgstr "Editar produção" -#: build/templates/build/build_base.html:73 +#: build/templates/build/build_base.html:74 msgid "Duplicate Build" msgstr "Duplicar produção" -#: build/templates/build/build_base.html:76 +#: build/templates/build/build_base.html:77 msgid "Hold Build" msgstr "" -#: build/templates/build/build_base.html:79 +#: build/templates/build/build_base.html:80 msgid "Cancel Build" msgstr "Cancelar produção" -#: build/templates/build/build_base.html:82 +#: build/templates/build/build_base.html:83 msgid "Delete Build" msgstr "Excluir produção" -#: build/templates/build/build_base.html:87 -msgid "Isueue Build" -msgstr "" - #: build/templates/build/build_base.html:88 +#: build/templates/build/build_base.html:89 msgid "Issue Build" msgstr "" -#: build/templates/build/build_base.html:91 #: build/templates/build/build_base.html:92 +#: build/templates/build/build_base.html:93 msgid "Complete Build" msgstr "Concluir produção" -#: build/templates/build/build_base.html:115 +#: build/templates/build/build_base.html:116 msgid "Build Description" msgstr "Descrição da produção" -#: build/templates/build/build_base.html:125 +#: build/templates/build/build_base.html:126 msgid "No build outputs have been created for this build order" msgstr "Nenhuma saída de produção foi criada para este pedido de produção" -#: build/templates/build/build_base.html:132 +#: build/templates/build/build_base.html:133 msgid "Build Order is ready to mark as completed" msgstr "Pedido de produção está pronta para ser marcada como concluída" -#: build/templates/build/build_base.html:137 +#: build/templates/build/build_base.html:138 msgid "Build Order cannot be completed as outstanding outputs remain" msgstr "Pedido de produção não pode ser concluída, os resultados pendentes permanecem" -#: build/templates/build/build_base.html:142 +#: build/templates/build/build_base.html:143 msgid "Required build quantity has not yet been completed" msgstr "A quantidade de produção necessária ainda não foi concluída" -#: build/templates/build/build_base.html:147 +#: build/templates/build/build_base.html:148 msgid "Stock has not been fully allocated to this Build Order" msgstr "Estoque não foi totalmente alocado para este Pedido de Produção" -#: build/templates/build/build_base.html:168 -#: build/templates/build/detail.html:138 order/models.py:308 -#: order/models.py:1391 order/serializers.py:174 -#: order/templates/order/order_base.html:191 -#: order/templates/order/return_order_base.html:167 -#: order/templates/order/sales_order_base.html:199 +#: build/templates/build/build_base.html:169 +#: build/templates/build/detail.html:138 order/models.py:315 +#: order/models.py:1408 order/serializers.py:254 +#: order/templates/order/order_base.html:200 +#: order/templates/order/return_order_base.html:168 +#: order/templates/order/sales_order_base.html:200 #: report/templates/report/inventree_build_order_report.html:125 -#: templates/js/translated/build.js:2411 templates/js/translated/part.js:1837 -#: templates/js/translated/purchase_order.js:1809 -#: templates/js/translated/purchase_order.js:2217 +#: templates/js/translated/build.js:2414 templates/js/translated/part.js:1837 +#: templates/js/translated/purchase_order.js:1793 +#: templates/js/translated/purchase_order.js:2201 #: templates/js/translated/return_order.js:346 #: templates/js/translated/return_order.js:749 -#: templates/js/translated/sales_order.js:871 -#: templates/js/translated/sales_order.js:1903 +#: templates/js/translated/sales_order.js:830 +#: templates/js/translated/sales_order.js:1884 msgid "Target Date" msgstr "Data alvo" -#: build/templates/build/build_base.html:173 +#: build/templates/build/build_base.html:174 #, python-format msgid "This build was due on %(target)s" msgstr "Essa produção expirou em %(target)s" -#: build/templates/build/build_base.html:173 -#: build/templates/build/build_base.html:230 -#: order/templates/order/order_base.html:127 -#: order/templates/order/return_order_base.html:120 -#: order/templates/order/sales_order_base.html:129 +#: build/templates/build/build_base.html:174 +#: build/templates/build/build_base.html:231 +#: order/templates/order/order_base.html:128 +#: order/templates/order/return_order_base.html:121 +#: order/templates/order/sales_order_base.html:130 #: templates/js/translated/table_filters.js:97 #: templates/js/translated/table_filters.js:545 #: templates/js/translated/table_filters.js:629 @@ -1910,49 +1935,50 @@ msgstr "Essa produção expirou em %(target)s" msgid "Overdue" msgstr "Expirou" -#: build/templates/build/build_base.html:185 +#: build/templates/build/build_base.html:186 #: build/templates/build/detail.html:67 build/templates/build/sidebar.html:13 msgid "Completed Outputs" msgstr "Saídas Concluídas" -#: build/templates/build/build_base.html:198 -#: build/templates/build/detail.html:101 order/api.py:1406 order/models.py:892 -#: order/models.py:1650 order/models.py:1765 order/models.py:1924 -#: order/templates/order/sales_order_base.html:9 -#: order/templates/order/sales_order_base.html:28 +#: build/templates/build/build_base.html:199 +#: build/templates/build/detail.html:101 order/api.py:1528 order/models.py:914 +#: order/models.py:1666 order/models.py:1794 order/models.py:1957 +#: order/templates/order/sales_order_base.html:10 +#: order/templates/order/sales_order_base.html:29 #: report/templates/report/inventree_build_order_report.html:135 #: report/templates/report/inventree_sales_order_report.html:14 -#: stock/templates/stock/item_base.html:369 +#: report/templates/report/inventree_sales_order_shipment_report.html:15 +#: stock/templates/stock/item_base.html:366 #: templates/email/overdue_sales_order.html:15 -#: templates/js/translated/pricing.js:929 -#: templates/js/translated/sales_order.js:805 -#: templates/js/translated/sales_order.js:1028 -#: templates/js/translated/stock.js:3008 +#: templates/js/translated/pricing.js:927 +#: templates/js/translated/sales_order.js:764 +#: templates/js/translated/sales_order.js:1001 +#: templates/js/translated/stock.js:3009 msgid "Sales Order" msgstr "Pedido de Venda" -#: build/templates/build/build_base.html:219 -#: build/templates/build/detail.html:94 templates/js/translated/build.js:2328 +#: build/templates/build/build_base.html:220 +#: build/templates/build/detail.html:94 templates/js/translated/build.js:2331 msgid "Priority" msgstr "Prioridade" -#: build/templates/build/build_base.html:267 +#: build/templates/build/build_base.html:268 msgid "Issue Build Order" msgstr "" -#: build/templates/build/build_base.html:271 +#: build/templates/build/build_base.html:272 msgid "Issue this Build Order?" msgstr "" -#: build/templates/build/build_base.html:302 +#: build/templates/build/build_base.html:303 msgid "Delete Build Order" msgstr "Excluir Pedido de Produção" -#: build/templates/build/build_base.html:312 +#: build/templates/build/build_base.html:313 msgid "Build Order QR Code" msgstr "QR Code do Pedido de Produção" -#: build/templates/build/build_base.html:324 +#: build/templates/build/build_base.html:325 msgid "Link Barcode to Build Order" msgstr "Vincular código de barras ao Pedido de Produção" @@ -1968,8 +1994,9 @@ msgstr "Origem do estoque" msgid "Stock can be taken from any available location." msgstr "O estoque pode ser tirado de qualquer local disponível." -#: build/templates/build/detail.html:49 order/models.py:1532 -#: templates/js/translated/purchase_order.js:2259 +#: build/templates/build/detail.html:49 order/models.py:548 +#: order/models.py:1548 order/templates/order/order_base.html:135 +#: templates/js/translated/purchase_order.js:2243 msgid "Destination" msgstr "Destino" @@ -1981,23 +2008,24 @@ msgstr "Loca de destino não especificado" msgid "Allocated Parts" msgstr "Peças alocadas" -#: build/templates/build/detail.html:80 stock/admin.py:162 -#: stock/templates/stock/item_base.html:162 -#: templates/js/translated/build.js:1553 -#: templates/js/translated/model_renderers.js:242 -#: templates/js/translated/purchase_order.js:1326 +#: build/templates/build/detail.html:80 +#: report/templates/report/inventree_sales_order_shipment_report.html:47 +#: stock/admin.py:163 stock/templates/stock/item_base.html:159 +#: templates/js/translated/build.js:1556 +#: templates/js/translated/model_renderers.js:245 +#: templates/js/translated/purchase_order.js:1309 #: templates/js/translated/stock.js:1139 templates/js/translated/stock.js:1240 -#: templates/js/translated/stock.js:2275 templates/js/translated/stock.js:3211 +#: templates/js/translated/stock.js:2276 templates/js/translated/stock.js:3212 #: templates/js/translated/table_filters.js:320 #: templates/js/translated/table_filters.js:411 msgid "Batch" msgstr "Lote" #: build/templates/build/detail.html:133 -#: order/templates/order/order_base.html:178 -#: order/templates/order/return_order_base.html:154 -#: order/templates/order/sales_order_base.html:193 -#: templates/js/translated/build.js:2371 +#: order/templates/order/order_base.html:187 +#: order/templates/order/return_order_base.html:155 +#: order/templates/order/sales_order_base.html:194 +#: templates/js/translated/build.js:2374 msgid "Created" msgstr "Criado" @@ -2005,8 +2033,8 @@ msgstr "Criado" msgid "No target date set" msgstr "Sem data alvo definida" -#: build/templates/build/detail.html:149 -#: order/templates/order/sales_order_base.html:209 +#: build/templates/build/detail.html:149 order/api.py:794 +#: order/templates/order/sales_order_base.html:210 #: templates/js/translated/table_filters.js:692 msgid "Completed" msgstr "Concluído" @@ -2052,7 +2080,7 @@ msgid "Order required parts" msgstr "Pedir peças necessárias" #: build/templates/build/detail.html:192 -#: templates/js/translated/purchase_order.js:795 +#: templates/js/translated/purchase_order.js:778 msgid "Order Parts" msgstr "Pedir Peças" @@ -2120,7 +2148,7 @@ msgstr "Novo Pedido de Produção" msgid "Build Order Details" msgstr "Detalhes do Pedido de Produção" -#: build/templates/build/sidebar.html:8 order/serializers.py:82 +#: build/templates/build/sidebar.html:8 order/serializers.py:113 #: order/templates/order/po_sidebar.html:5 #: order/templates/order/return_order_detail.html:18 #: order/templates/order/so_sidebar.html:5 @@ -2139,43 +2167,38 @@ msgstr "Saídas Incompletas" msgid "Test Statistics" msgstr "" -#: common/api.py:693 +#: common/api.py:725 msgid "Is Link" msgstr "É uma Ligação" -#: common/api.py:701 +#: common/api.py:733 msgid "Is File" msgstr "É um arquivo" -#: common/api.py:744 +#: common/api.py:776 msgid "User does not have permission to delete these attachments" msgstr "" -#: common/api.py:761 +#: common/api.py:793 msgid "User does not have permission to delete this attachment" msgstr "O Utilizador não tem permissão para remover este anexo" -#: common/currency.py:132 +#: common/currency.py:134 msgid "Invalid currency code" msgstr "Código da Moeda invalida" -#: common/currency.py:134 +#: common/currency.py:136 msgid "Duplicate currency code" msgstr "Código da Moeda duplicada" -#: common/currency.py:139 +#: common/currency.py:141 msgid "No valid currency codes provided" msgstr "Nenhum código de moeda válido foi fornecido" -#: common/currency.py:156 +#: common/currency.py:158 msgid "No plugin" msgstr "Sem extensão" -#: common/files.py:63 -#, python-brace-format -msgid "Unsupported file format: {fmt}" -msgstr "Formato de arquivo não suportado: {fmt}" - #: common/files.py:65 msgid "Error reading file (invalid encoding)" msgstr "Erro ao ler arquivo (codificação inválida)" @@ -2192,1883 +2215,2039 @@ msgstr "Erro ao ler o arquivo (dimensão incorreta)" msgid "Error reading file (data could be corrupted)" msgstr "Erro ao ler o arquivo (dados podem estar corrompidos)" -#: common/forms.py:12 +#: common/forms.py:12 common/forms.py:25 msgid "File" msgstr "Arquivo" -#: common/forms.py:12 +#: common/forms.py:12 common/forms.py:26 msgid "Select file to upload" msgstr "Selecione um arquivo para carregar" -#: common/forms.py:25 -msgid "{name.title()} File" -msgstr "Arquivo {name.title()}" - -#: common/forms.py:26 -#, python-brace-format -msgid "Select {name} file to upload" -msgstr "Selecione {name} arquivo para carregar" - -#: common/models.py:86 +#: common/models.py:89 msgid "Updated" msgstr "Atualizado" -#: common/models.py:87 +#: common/models.py:90 msgid "Timestamp of last update" msgstr "Tempo da última atualização" -#: common/models.py:120 +#: common/models.py:123 msgid "Site URL is locked by configuration" msgstr "URL do site está bloqueada por configuração" -#: common/models.py:150 +#: common/models.py:153 msgid "Unique project code" msgstr "Código único do projeto" -#: common/models.py:157 +#: common/models.py:160 msgid "Project description" msgstr "Descrição do projeto" -#: common/models.py:166 +#: common/models.py:169 msgid "User or group responsible for this project" msgstr "Usuário ou grupo responsável por este projeto" -#: common/models.py:783 -msgid "Settings key (must be unique - case insensitive)" -msgstr "Senha de configurações (deve ser única — diferencia maiúsculas de minúsculas)" +#: common/models.py:783 common/models.py:2236 common/models.py:2613 +msgid "Settings key" +msgstr "" #: common/models.py:787 msgid "Settings value" msgstr "Valor da Configuração" -#: common/models.py:839 +#: common/models.py:842 msgid "Chosen value is not a valid option" msgstr "Valor escolhido não é uma opção válida" -#: common/models.py:855 +#: common/models.py:858 msgid "Value must be a boolean value" msgstr "Valor deve ser um valor booleano" -#: common/models.py:863 +#: common/models.py:866 msgid "Value must be an integer value" msgstr "Valor deve ser um número inteiro" -#: common/models.py:900 +#: common/models.py:874 +msgid "Value must be a valid number" +msgstr "" + +#: common/models.py:899 +msgid "Value does not pass validation checks" +msgstr "" + +#: common/models.py:921 msgid "Key string must be unique" msgstr "A frase senha deve ser diferenciada" -#: common/models.py:1132 +#: common/models.py:1189 msgid "No group" msgstr "Nenhum grupo" -#: common/models.py:1231 +#: common/models.py:1288 msgid "Restart required" msgstr "Reinicialização necessária" -#: common/models.py:1233 +#: common/models.py:1290 msgid "A setting has been changed which requires a server restart" msgstr "Uma configuração que requer uma reinicialização do servidor foi alterada" -#: common/models.py:1240 +#: common/models.py:1297 msgid "Pending migrations" msgstr "Migrações pendentes" -#: common/models.py:1241 +#: common/models.py:1298 msgid "Number of pending database migrations" msgstr "Número de migrações pendentes na base de dados" -#: common/models.py:1246 +#: common/models.py:1303 msgid "Server Instance Name" msgstr "Nome da Instância do Servidor" -#: common/models.py:1248 +#: common/models.py:1305 msgid "String descriptor for the server instance" msgstr "Descritor de frases para a instância do servidor" -#: common/models.py:1252 +#: common/models.py:1309 msgid "Use instance name" msgstr "Usar nome da instância" -#: common/models.py:1253 +#: common/models.py:1310 msgid "Use the instance name in the title-bar" msgstr "Usar o nome da instância na barra de título" -#: common/models.py:1258 +#: common/models.py:1315 msgid "Restrict showing `about`" msgstr "Restringir a exibição 'sobre'" -#: common/models.py:1259 +#: common/models.py:1316 msgid "Show the `about` modal only to superusers" msgstr "Mostrar 'sobre' modal apenas para superusuários" -#: common/models.py:1264 company/models.py:111 company/models.py:112 +#: common/models.py:1321 company/models.py:108 company/models.py:109 msgid "Company name" msgstr "Nome da empresa" -#: common/models.py:1265 +#: common/models.py:1322 msgid "Internal company name" msgstr "Nome interno da Empresa" -#: common/models.py:1269 +#: common/models.py:1326 msgid "Base URL" msgstr "URL de Base" -#: common/models.py:1270 +#: common/models.py:1327 msgid "Base URL for server instance" msgstr "URL Base da instância do servidor" -#: common/models.py:1276 +#: common/models.py:1333 msgid "Default Currency" msgstr "Moeda Padrão" -#: common/models.py:1277 +#: common/models.py:1334 msgid "Select base currency for pricing calculations" msgstr "Selecione a moeda base para cálculos de preços" -#: common/models.py:1283 +#: common/models.py:1340 msgid "Supported Currencies" msgstr "Moedas suportadas" -#: common/models.py:1284 +#: common/models.py:1341 msgid "List of supported currency codes" msgstr "Lista de códigos de moeda suportados" -#: common/models.py:1290 +#: common/models.py:1347 msgid "Currency Update Interval" msgstr "Intervalo de Atualização da Moeda" -#: common/models.py:1292 +#: common/models.py:1349 msgid "How often to update exchange rates (set to zero to disable)" msgstr "Com que frequência atualizar as taxas de câmbio (defina como zero para desativar)" -#: common/models.py:1295 common/models.py:1351 common/models.py:1364 -#: common/models.py:1372 common/models.py:1381 common/models.py:1390 -#: common/models.py:1627 common/models.py:1649 common/models.py:1764 -#: common/models.py:2146 +#: common/models.py:1352 common/models.py:1408 common/models.py:1421 +#: common/models.py:1429 common/models.py:1438 common/models.py:1447 +#: common/models.py:1696 common/models.py:1718 common/models.py:1819 +#: common/models.py:2208 msgid "days" msgstr "dias" -#: common/models.py:1299 +#: common/models.py:1356 msgid "Currency Update Plugin" msgstr "Extensão de Atualização de Moeda" -#: common/models.py:1300 +#: common/models.py:1357 msgid "Currency update plugin to use" msgstr "Extensão de Atualização de Moeda a utilizar" -#: common/models.py:1305 +#: common/models.py:1362 msgid "Download from URL" msgstr "Baixar do URL" -#: common/models.py:1307 +#: common/models.py:1364 msgid "Allow download of remote images and files from external URL" msgstr "Permitir baixar imagens remotas e arquivos de URLs externos" -#: common/models.py:1313 +#: common/models.py:1370 msgid "Download Size Limit" msgstr "Limite de tamanho para baixar" -#: common/models.py:1314 +#: common/models.py:1371 msgid "Maximum allowable download size for remote image" msgstr "Maior tamanho de imagem remota baixada permitida" -#: common/models.py:1320 +#: common/models.py:1377 msgid "User-agent used to download from URL" msgstr "Usuário-agente utilizado para baixar da URL" -#: common/models.py:1322 +#: common/models.py:1379 msgid "Allow to override the user-agent used to download images and files from external URL (leave blank for the default)" msgstr "Permitir a substituição de imagens e arquivos usados baixados por usuário-agente (deixar em branco por padrão)" -#: common/models.py:1327 +#: common/models.py:1384 msgid "Strict URL Validation" msgstr "Validação rigorosa de URL" -#: common/models.py:1328 +#: common/models.py:1385 msgid "Require schema specification when validating URLs" msgstr "Exigir especificação de esquema ao validar URLs" -#: common/models.py:1333 +#: common/models.py:1390 msgid "Require confirm" msgstr "Exigir confirmação" -#: common/models.py:1334 +#: common/models.py:1391 msgid "Require explicit user confirmation for certain action." msgstr "Exigir confirmação explícita do usuário para uma certa ação." -#: common/models.py:1339 +#: common/models.py:1396 msgid "Tree Depth" msgstr "Profundidade da árvore" -#: common/models.py:1341 +#: common/models.py:1398 msgid "Default tree depth for treeview. Deeper levels can be lazy loaded as they are needed." msgstr "Profundidade padrão de visualização da árvore. Níveis mais profundos podem ser carregados gradualmente conforme necessário." -#: common/models.py:1347 +#: common/models.py:1404 msgid "Update Check Interval" msgstr "Atualizar Intervalo de Verificação" -#: common/models.py:1348 +#: common/models.py:1405 msgid "How often to check for updates (set to zero to disable)" msgstr "Frequência para verificar atualizações (defina como zero para desativar)" -#: common/models.py:1354 +#: common/models.py:1411 msgid "Automatic Backup" msgstr "Cópia de Segurança Automática" -#: common/models.py:1355 +#: common/models.py:1412 msgid "Enable automatic backup of database and media files" msgstr "Ativar cópia de segurança automática do banco de dados e arquivos de mídia" -#: common/models.py:1360 +#: common/models.py:1417 msgid "Auto Backup Interval" msgstr "Intervalo de Backup Automático" -#: common/models.py:1361 +#: common/models.py:1418 msgid "Specify number of days between automated backup events" msgstr "Especificar o número de dia entre as cópias de segurança" -#: common/models.py:1367 +#: common/models.py:1424 msgid "Task Deletion Interval" msgstr "Intervalo para Excluir da Tarefa" -#: common/models.py:1369 +#: common/models.py:1426 msgid "Background task results will be deleted after specified number of days" msgstr "Os resultados da tarefa no plano de fundo serão excluídos após um número especificado de dias" -#: common/models.py:1376 +#: common/models.py:1433 msgid "Error Log Deletion Interval" msgstr "Intervalo para Excluir do Registro de Erro" -#: common/models.py:1378 +#: common/models.py:1435 msgid "Error logs will be deleted after specified number of days" msgstr "Registros de erros serão excluídos após um número especificado de dias" -#: common/models.py:1385 +#: common/models.py:1442 msgid "Notification Deletion Interval" msgstr "Intervalo para Excluir de Notificação" -#: common/models.py:1387 +#: common/models.py:1444 msgid "User notifications will be deleted after specified number of days" msgstr "Notificações de usuários será excluído após um número especificado de dias" -#: common/models.py:1394 templates/InvenTree/settings/sidebar.html:31 +#: common/models.py:1451 templates/InvenTree/settings/sidebar.html:31 msgid "Barcode Support" msgstr "Suporte aos códigos de barras" -#: common/models.py:1395 +#: common/models.py:1452 msgid "Enable barcode scanner support in the web interface" msgstr "Ativar suporte a leitor de código de barras na interface web" -#: common/models.py:1400 +#: common/models.py:1457 +msgid "Store Barcode Results" +msgstr "" + +#: common/models.py:1458 +msgid "Store barcode scan results in the database" +msgstr "" + +#: common/models.py:1463 +msgid "Barcode Scans Maximum Count" +msgstr "" + +#: common/models.py:1464 +msgid "Maximum number of barcode scan results to store" +msgstr "" + +#: common/models.py:1469 msgid "Barcode Input Delay" msgstr "Atraso na entrada de código de barras" -#: common/models.py:1401 +#: common/models.py:1470 msgid "Barcode input processing delay time" msgstr "Tempo de atraso de processamento de entrada de barras" -#: common/models.py:1407 +#: common/models.py:1476 msgid "Barcode Webcam Support" msgstr "Suporte a código de barras via Câmera" -#: common/models.py:1408 +#: common/models.py:1477 msgid "Allow barcode scanning via webcam in browser" msgstr "Permitir escanear código de barras por câmera pelo navegador" -#: common/models.py:1413 +#: common/models.py:1482 msgid "Barcode Show Data" msgstr "" -#: common/models.py:1414 +#: common/models.py:1483 msgid "Display barcode data in browser as text" msgstr "" -#: common/models.py:1419 +#: common/models.py:1488 msgid "Barcode Generation Plugin" msgstr "" -#: common/models.py:1420 +#: common/models.py:1489 msgid "Plugin to use for internal barcode data generation" msgstr "" -#: common/models.py:1425 +#: common/models.py:1494 msgid "Part Revisions" msgstr "Revisões de peças" -#: common/models.py:1426 +#: common/models.py:1495 msgid "Enable revision field for Part" msgstr "Habilitar campo de revisão para a Peça" -#: common/models.py:1431 +#: common/models.py:1500 msgid "Assembly Revision Only" msgstr "" -#: common/models.py:1432 +#: common/models.py:1501 msgid "Only allow revisions for assembly parts" msgstr "" -#: common/models.py:1437 +#: common/models.py:1506 msgid "Allow Deletion from Assembly" msgstr "Permitir a exclusão da Montagem" -#: common/models.py:1438 +#: common/models.py:1507 msgid "Allow deletion of parts which are used in an assembly" msgstr "Permitir a remoção de peças usadas em uma montagem" -#: common/models.py:1443 +#: common/models.py:1512 msgid "IPN Regex" msgstr "Regex IPN" -#: common/models.py:1444 +#: common/models.py:1513 msgid "Regular expression pattern for matching Part IPN" msgstr "Padrão de expressão regular adequado para Peça IPN" -#: common/models.py:1447 +#: common/models.py:1516 msgid "Allow Duplicate IPN" msgstr "Permitir Duplicação IPN" -#: common/models.py:1448 +#: common/models.py:1517 msgid "Allow multiple parts to share the same IPN" msgstr "Permitir que várias peças compartilhem o mesmo IPN" -#: common/models.py:1453 +#: common/models.py:1522 msgid "Allow Editing IPN" msgstr "Permitir Edição IPN" -#: common/models.py:1454 +#: common/models.py:1523 msgid "Allow changing the IPN value while editing a part" msgstr "Permitir trocar o valor do IPN enquanto se edita a peça" -#: common/models.py:1459 +#: common/models.py:1528 msgid "Copy Part BOM Data" msgstr "Copiar dados da LDM da Peça" -#: common/models.py:1460 +#: common/models.py:1529 msgid "Copy BOM data by default when duplicating a part" msgstr "Copiar dados da LDM por padrão quando duplicar a peça" -#: common/models.py:1465 +#: common/models.py:1534 msgid "Copy Part Parameter Data" msgstr "Copiar Dados de Parâmetro da Peça" -#: common/models.py:1466 +#: common/models.py:1535 msgid "Copy parameter data by default when duplicating a part" msgstr "Copiar dados de parâmetros por padrão quando duplicar uma peça" -#: common/models.py:1471 +#: common/models.py:1540 msgid "Copy Part Test Data" msgstr "Copiar Dados Teste da Peça" -#: common/models.py:1472 +#: common/models.py:1541 msgid "Copy test data by default when duplicating a part" msgstr "Copiar dados de teste por padrão quando duplicar a peça" -#: common/models.py:1477 +#: common/models.py:1546 msgid "Copy Category Parameter Templates" msgstr "Copiar Parâmetros dos Modelos de Categoria" -#: common/models.py:1478 +#: common/models.py:1547 msgid "Copy category parameter templates when creating a part" msgstr "Copiar parâmetros do modelo de categoria quando criar uma peça" -#: common/models.py:1483 part/admin.py:108 part/models.py:3945 -#: report/models.py:293 report/models.py:360 report/serializers.py:90 -#: report/serializers.py:131 stock/serializers.py:232 +#: common/models.py:1552 part/admin.py:108 part/models.py:4003 +#: report/models.py:301 report/models.py:368 report/serializers.py:91 +#: report/serializers.py:132 stock/serializers.py:233 #: templates/js/translated/table_filters.js:138 #: templates/js/translated/table_filters.js:775 msgid "Template" msgstr "Modelo" -#: common/models.py:1484 +#: common/models.py:1553 msgid "Parts are templates by default" msgstr "Peças são modelos por padrão" -#: common/models.py:1490 +#: common/models.py:1559 msgid "Parts can be assembled from other components by default" msgstr "Peças podem ser montadas a partir de outros componentes por padrão" -#: common/models.py:1495 part/admin.py:95 part/models.py:1160 -#: part/serializers.py:1596 templates/js/translated/table_filters.js:737 +#: common/models.py:1564 part/admin.py:95 part/models.py:1221 +#: part/serializers.py:1654 templates/js/translated/table_filters.js:737 msgid "Component" msgstr "Componente" -#: common/models.py:1496 +#: common/models.py:1565 msgid "Parts can be used as sub-components by default" msgstr "Peças podem ser usadas como sub-componentes por padrão" -#: common/models.py:1501 part/admin.py:100 part/models.py:1178 +#: common/models.py:1570 part/admin.py:100 part/models.py:1239 msgid "Purchaseable" msgstr "Comprável" -#: common/models.py:1502 +#: common/models.py:1571 msgid "Parts are purchaseable by default" msgstr "Peças são compráveis por padrão" -#: common/models.py:1507 part/admin.py:104 part/models.py:1184 +#: common/models.py:1576 part/admin.py:104 part/models.py:1245 #: templates/js/translated/table_filters.js:763 msgid "Salable" msgstr "Vendível" -#: common/models.py:1508 +#: common/models.py:1577 msgid "Parts are salable by default" msgstr "Peças vão vendíveis por padrão" -#: common/models.py:1514 +#: common/models.py:1583 msgid "Parts are trackable by default" msgstr "Peças vão rastreáveis por padrão" -#: common/models.py:1519 part/admin.py:117 part/models.py:1200 -#: part/templates/part/part_base.html:154 +#: common/models.py:1588 part/admin.py:117 part/models.py:1261 +#: part/templates/part/part_base.html:155 #: templates/js/translated/table_filters.js:142 #: templates/js/translated/table_filters.js:787 msgid "Virtual" msgstr "Virtual" -#: common/models.py:1520 +#: common/models.py:1589 msgid "Parts are virtual by default" msgstr "Peças são virtuais por padrão" -#: common/models.py:1525 +#: common/models.py:1594 msgid "Show Import in Views" msgstr "Mostrar Importações em Visualizações" -#: common/models.py:1526 +#: common/models.py:1595 msgid "Display the import wizard in some part views" msgstr "Exibir o assistente de importação em algumas visualizações de partes" -#: common/models.py:1531 +#: common/models.py:1600 msgid "Show related parts" msgstr "Mostra peças relacionadas" -#: common/models.py:1532 +#: common/models.py:1601 msgid "Display related parts for a part" msgstr "Mostrar peças relacionadas para uma peça" -#: common/models.py:1537 +#: common/models.py:1606 msgid "Initial Stock Data" msgstr "Dados Iniciais de Estoque" -#: common/models.py:1538 +#: common/models.py:1607 msgid "Allow creation of initial stock when adding a new part" msgstr "Permitir Criação de estoque inicial quando adicional uma nova peça" -#: common/models.py:1543 templates/js/translated/part.js:108 +#: common/models.py:1612 templates/js/translated/part.js:108 msgid "Initial Supplier Data" msgstr "Dados Iniciais de Fornecedor" -#: common/models.py:1545 +#: common/models.py:1614 msgid "Allow creation of initial supplier data when adding a new part" msgstr "Permitir criação de dados iniciais de fornecedor quando adicionar uma nova peça" -#: common/models.py:1551 +#: common/models.py:1620 msgid "Part Name Display Format" msgstr "Formato de Exibição do Nome da Peça" -#: common/models.py:1552 +#: common/models.py:1621 msgid "Format to display the part name" msgstr "Formato para exibir o nome da peça" -#: common/models.py:1558 +#: common/models.py:1627 msgid "Part Category Default Icon" msgstr "Ícone de Categoria de Peça Padrão" -#: common/models.py:1559 +#: common/models.py:1628 msgid "Part category default icon (empty means no icon)" msgstr "Ícone padrão de categoria de peça (vazio significa sem ícone)" -#: common/models.py:1564 +#: common/models.py:1633 msgid "Enforce Parameter Units" msgstr "Forçar Unidades de Parâmetro" -#: common/models.py:1566 +#: common/models.py:1635 msgid "If units are provided, parameter values must match the specified units" msgstr "Se as unidades são fornecidas, os valores do parâmetro devem corresponder às unidades especificadas" -#: common/models.py:1572 +#: common/models.py:1641 msgid "Minimum Pricing Decimal Places" msgstr "Mínimo de Casas Decimais do Preço" -#: common/models.py:1574 +#: common/models.py:1643 msgid "Minimum number of decimal places to display when rendering pricing data" msgstr "Mínimo número de casas decimais a exibir quando renderizar dados de preços" -#: common/models.py:1585 +#: common/models.py:1654 msgid "Maximum Pricing Decimal Places" msgstr "Máximo Casas Decimais de Preço" -#: common/models.py:1587 +#: common/models.py:1656 msgid "Maximum number of decimal places to display when rendering pricing data" msgstr "Número máximo de casas decimais a exibir quando renderizar dados de preços" -#: common/models.py:1598 +#: common/models.py:1667 msgid "Use Supplier Pricing" msgstr "Usar Preços do Fornecedor" -#: common/models.py:1600 +#: common/models.py:1669 msgid "Include supplier price breaks in overall pricing calculations" msgstr "Incluir quebras de preço do fornecedor nos cálculos de preços globais" -#: common/models.py:1606 +#: common/models.py:1675 msgid "Purchase History Override" msgstr "Sobrescrever histórico de compra" -#: common/models.py:1608 +#: common/models.py:1677 msgid "Historical purchase order pricing overrides supplier price breaks" msgstr "Histórico do pedido de compra substitui os intervalos dos preços do fornecedor" -#: common/models.py:1614 +#: common/models.py:1683 msgid "Use Stock Item Pricing" msgstr "Usar Preços do Item em Estoque" -#: common/models.py:1616 +#: common/models.py:1685 msgid "Use pricing from manually entered stock data for pricing calculations" msgstr "Usar preço inserido manualmente no estoque para cálculos de valores" -#: common/models.py:1622 +#: common/models.py:1691 msgid "Stock Item Pricing Age" msgstr "Idade do preço do Item em Estoque" -#: common/models.py:1624 +#: common/models.py:1693 msgid "Exclude stock items older than this number of days from pricing calculations" msgstr "Não incluir itens em estoque mais velhos que este número de dias no cálculo de preços" -#: common/models.py:1631 +#: common/models.py:1700 msgid "Use Variant Pricing" msgstr "Usar Preço Variável" -#: common/models.py:1632 +#: common/models.py:1701 msgid "Include variant pricing in overall pricing calculations" msgstr "Incluir preços variáveis nos cálculos de valores gerais" -#: common/models.py:1637 +#: common/models.py:1706 msgid "Active Variants Only" msgstr "Apenas Ativar Variáveis" -#: common/models.py:1639 +#: common/models.py:1708 msgid "Only use active variant parts for calculating variant pricing" msgstr "Apenas usar peças variáveis ativas para calcular preço variáveis" -#: common/models.py:1645 +#: common/models.py:1714 msgid "Pricing Rebuild Interval" msgstr "Intervalo de Reconstrução de Preços" -#: common/models.py:1647 +#: common/models.py:1716 msgid "Number of days before part pricing is automatically updated" msgstr "Número de dias antes da atualização automática dos preços das peças" -#: common/models.py:1654 +#: common/models.py:1723 msgid "Internal Prices" msgstr "Preços Internos" -#: common/models.py:1655 +#: common/models.py:1724 msgid "Enable internal prices for parts" msgstr "Habilitar preços internos para peças" -#: common/models.py:1660 +#: common/models.py:1729 msgid "Internal Price Override" msgstr "Sobrepor Valor Interno" -#: common/models.py:1662 +#: common/models.py:1731 msgid "If available, internal prices override price range calculations" msgstr "Se disponível, preços internos sobrepõe variação de cálculos de preço" -#: common/models.py:1668 +#: common/models.py:1737 msgid "Enable label printing" msgstr "Ativar impressão de etiquetas" -#: common/models.py:1669 +#: common/models.py:1738 msgid "Enable label printing from the web interface" msgstr "Ativar impressão de etiqueta pela interface da internet" -#: common/models.py:1674 +#: common/models.py:1743 msgid "Label Image DPI" msgstr "DPI da Imagem na Etiqueta" -#: common/models.py:1676 +#: common/models.py:1745 msgid "DPI resolution when generating image files to supply to label printing plugins" msgstr "Resolução de DPI quando gerar arquivo de imagens para fornecer à extensão de impressão de etiquetas" -#: common/models.py:1682 +#: common/models.py:1751 msgid "Enable Reports" msgstr "Habilitar Relatórios" -#: common/models.py:1683 +#: common/models.py:1752 msgid "Enable generation of reports" msgstr "Ativar geração de relatórios" -#: common/models.py:1688 templates/stats.html:25 +#: common/models.py:1757 templates/stats.html:25 msgid "Debug Mode" msgstr "Modo de depuração" -#: common/models.py:1689 +#: common/models.py:1758 msgid "Generate reports in debug mode (HTML output)" msgstr "Gerar relatórios em modo de depuração (saída HTML)" -#: common/models.py:1694 +#: common/models.py:1763 msgid "Log Report Errors" msgstr "Relatório de erros" -#: common/models.py:1695 +#: common/models.py:1764 msgid "Log errors which occur when generating reports" msgstr "Registro de erros que ocorrem ao gerar relatórios" -#: common/models.py:1700 plugin/builtin/labels/label_sheet.py:28 -#: report/models.py:301 +#: common/models.py:1769 plugin/builtin/labels/label_sheet.py:28 +#: report/models.py:309 msgid "Page Size" msgstr "Tamanho da página" -#: common/models.py:1701 +#: common/models.py:1770 msgid "Default page size for PDF reports" msgstr "Tamanho padrão da página PDF para relatórios" -#: common/models.py:1706 -msgid "Enable Test Reports" -msgstr "Ativar Relatórios Teste" - -#: common/models.py:1707 -msgid "Enable generation of test reports" -msgstr "Ativar geração de relatórios de teste" - -#: common/models.py:1712 -msgid "Attach Test Reports" -msgstr "Anexar Relatórios de Teste" - -#: common/models.py:1714 -msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item" -msgstr "Quando imprimir um Relatório de Teste, anexar uma cópia do mesmo ao item de estoque associado" - -#: common/models.py:1720 +#: common/models.py:1775 msgid "Globally Unique Serials" msgstr "Seriais Únicos Globais" -#: common/models.py:1721 +#: common/models.py:1776 msgid "Serial numbers for stock items must be globally unique" msgstr "Números de série para itens de estoque devem ser globalmente únicos" -#: common/models.py:1726 +#: common/models.py:1781 msgid "Autofill Serial Numbers" msgstr "Preenchimento automático de Números Seriais" -#: common/models.py:1727 +#: common/models.py:1782 msgid "Autofill serial numbers in forms" msgstr "Preencher números de série automaticamente no formulário" -#: common/models.py:1732 +#: common/models.py:1787 msgid "Delete Depleted Stock" msgstr "Excluir Estoque Esgotado" -#: common/models.py:1734 +#: common/models.py:1789 msgid "Determines default behavior when a stock item is depleted" msgstr "Determina o comportamento padrão quando um item de estoque é esgotado" -#: common/models.py:1740 +#: common/models.py:1795 msgid "Batch Code Template" msgstr "Modelo de Código de Lote" -#: common/models.py:1742 +#: common/models.py:1797 msgid "Template for generating default batch codes for stock items" msgstr "Modelo para gerar códigos de lote padrão para itens de estoque" -#: common/models.py:1747 +#: common/models.py:1802 msgid "Stock Expiry" msgstr "Validade do Estoque" -#: common/models.py:1748 +#: common/models.py:1803 msgid "Enable stock expiry functionality" msgstr "Ativar função de validade de estoque" -#: common/models.py:1753 +#: common/models.py:1808 msgid "Sell Expired Stock" msgstr "Vender estoque expirado" -#: common/models.py:1754 +#: common/models.py:1809 msgid "Allow sale of expired stock" msgstr "Permitir venda de estoque expirado" -#: common/models.py:1759 +#: common/models.py:1814 msgid "Stock Stale Time" msgstr "Tempo de Estoque Inativo" -#: common/models.py:1761 +#: common/models.py:1816 msgid "Number of days stock items are considered stale before expiring" msgstr "Número de dias em que os itens em estoque são considerados obsoleto antes de vencer" -#: common/models.py:1768 +#: common/models.py:1823 msgid "Build Expired Stock" msgstr "Produzir Estoque Vencido" -#: common/models.py:1769 +#: common/models.py:1824 msgid "Allow building with expired stock" msgstr "Permitir produção com estoque vencido" -#: common/models.py:1774 +#: common/models.py:1829 msgid "Stock Ownership Control" msgstr "Controle de propriedade do estoque" -#: common/models.py:1775 +#: common/models.py:1830 msgid "Enable ownership control over stock locations and items" msgstr "Ativar controle de propriedade sobre locais e itens de estoque" -#: common/models.py:1780 +#: common/models.py:1835 msgid "Stock Location Default Icon" msgstr "Ícone padrão do local de estoque" -#: common/models.py:1781 +#: common/models.py:1836 msgid "Stock location default icon (empty means no icon)" msgstr "Ícone padrão de local de estoque (vazio significa sem ícone)" -#: common/models.py:1786 +#: common/models.py:1841 msgid "Show Installed Stock Items" msgstr "Mostrar Itens de Estoque Instalados" -#: common/models.py:1787 +#: common/models.py:1842 msgid "Display installed stock items in stock tables" msgstr "Exibir itens de estoque instalados nas tabelas de estoque" -#: common/models.py:1792 +#: common/models.py:1847 msgid "Check BOM when installing items" msgstr "Verificar BOM ao instalar itens" -#: common/models.py:1794 +#: common/models.py:1849 msgid "Installed stock items must exist in the BOM for the parent part" msgstr "Itens de estoque instalados devem existir na BOM para a peça parente" -#: common/models.py:1800 +#: common/models.py:1855 msgid "Allow Out of Stock Transfer" msgstr "Permitir Transferência Fora do Estoque" -#: common/models.py:1802 +#: common/models.py:1857 msgid "Allow stock items which are not in stock to be transferred between stock locations" msgstr "Permitir que os itens que não estão em estoque sejam transferidos entre locais de estoque" -#: common/models.py:1808 +#: common/models.py:1863 msgid "Build Order Reference Pattern" msgstr "Modelo de Referência de Pedidos de Produção" -#: common/models.py:1810 +#: common/models.py:1865 msgid "Required pattern for generating Build Order reference field" msgstr "Modelo necessário para gerar campo de referência do Pedido de Produção" -#: common/models.py:1816 common/models.py:1872 common/models.py:1894 -#: common/models.py:1930 +#: common/models.py:1871 common/models.py:1927 common/models.py:1949 +#: common/models.py:1985 msgid "Require Responsible Owner" msgstr "Requer Proprietário Responsável" -#: common/models.py:1817 common/models.py:1873 common/models.py:1895 -#: common/models.py:1931 +#: common/models.py:1872 common/models.py:1928 common/models.py:1950 +#: common/models.py:1986 msgid "A responsible owner must be assigned to each order" msgstr "Um proprietário responsável deve ser atribuído a cada ordem" -#: common/models.py:1822 +#: common/models.py:1877 msgid "Require Active Part" msgstr "" -#: common/models.py:1823 +#: common/models.py:1878 msgid "Prevent build order creation for inactive parts" msgstr "" -#: common/models.py:1828 +#: common/models.py:1883 msgid "Require Locked Part" msgstr "" -#: common/models.py:1829 +#: common/models.py:1884 msgid "Prevent build order creation for unlocked parts" msgstr "" -#: common/models.py:1834 +#: common/models.py:1889 msgid "Require Valid BOM" msgstr "" -#: common/models.py:1836 +#: common/models.py:1891 msgid "Prevent build order creation unless BOM has been validated" msgstr "" -#: common/models.py:1842 +#: common/models.py:1897 msgid "Require Closed Child Orders" msgstr "" -#: common/models.py:1844 +#: common/models.py:1899 msgid "Prevent build order completion until all child orders are closed" msgstr "" -#: common/models.py:1850 +#: common/models.py:1905 msgid "Block Until Tests Pass" msgstr "Bloquear até os Testes serem Aprovados" -#: common/models.py:1852 +#: common/models.py:1907 msgid "Prevent build outputs from being completed until all required tests pass" msgstr "Impedir que as saídas da produção sejam concluídas até que todos os testes sejam aprovados" -#: common/models.py:1858 +#: common/models.py:1913 msgid "Enable Return Orders" msgstr "Ativar Pedidos de Devolução" -#: common/models.py:1859 +#: common/models.py:1914 msgid "Enable return order functionality in the user interface" msgstr "Ativar funcionalidade de pedido de retorno na interface do usuário" -#: common/models.py:1864 +#: common/models.py:1919 msgid "Return Order Reference Pattern" msgstr "Modelo de Referência de Pedidos de Devolução" -#: common/models.py:1866 +#: common/models.py:1921 msgid "Required pattern for generating Return Order reference field" msgstr "" -#: common/models.py:1878 +#: common/models.py:1933 msgid "Edit Completed Return Orders" msgstr "Editar os Pedidos de Devolução Concluídos" -#: common/models.py:1880 +#: common/models.py:1935 msgid "Allow editing of return orders after they have been completed" msgstr "Permitir a edição de pedidos de devolução após serem enviados ou concluídos" -#: common/models.py:1886 +#: common/models.py:1941 msgid "Sales Order Reference Pattern" msgstr "Modelo de Referência de Pedidos de Venda" -#: common/models.py:1888 +#: common/models.py:1943 msgid "Required pattern for generating Sales Order reference field" msgstr "Modelo necessário para gerar campo de referência do Pedido de Venda" -#: common/models.py:1900 +#: common/models.py:1955 msgid "Sales Order Default Shipment" msgstr "Envio Padrão de Pedidos de Venda" -#: common/models.py:1901 +#: common/models.py:1956 msgid "Enable creation of default shipment with sales orders" msgstr "Habilitar criação de envio padrão com Pedidos de Vendas" -#: common/models.py:1906 +#: common/models.py:1961 msgid "Edit Completed Sales Orders" msgstr "Editar os Pedidos de Vendas concluídos" -#: common/models.py:1908 +#: common/models.py:1963 msgid "Allow editing of sales orders after they have been shipped or completed" msgstr "Permitir a edição de pedidos de vendas após serem enviados ou concluídos" -#: common/models.py:1914 +#: common/models.py:1969 msgid "Mark Shipped Orders as Complete" msgstr "" -#: common/models.py:1916 +#: common/models.py:1971 msgid "Sales orders marked as shipped will automatically be completed, bypassing the \"shipped\" status" msgstr "" -#: common/models.py:1922 +#: common/models.py:1977 msgid "Purchase Order Reference Pattern" msgstr "Modelo de Referência de Pedidos de Compras" -#: common/models.py:1924 +#: common/models.py:1979 msgid "Required pattern for generating Purchase Order reference field" msgstr "Modelo necessário para gerar campo de referência do Pedido de Compra" -#: common/models.py:1936 +#: common/models.py:1991 msgid "Edit Completed Purchase Orders" msgstr "Editar Pedidos de Compra Concluídos" -#: common/models.py:1938 +#: common/models.py:1993 msgid "Allow editing of purchase orders after they have been shipped or completed" msgstr "Permitir a edição de pedidos de compras após serem enviados ou concluídos" -#: common/models.py:1944 +#: common/models.py:1999 msgid "Auto Complete Purchase Orders" msgstr "Autocompletar Pedidos de Compra" -#: common/models.py:1946 +#: common/models.py:2001 msgid "Automatically mark purchase orders as complete when all line items are received" msgstr "Marcar automaticamente os pedidos de compra como concluídos quando todos os itens de linha forem recebidos" -#: common/models.py:1953 +#: common/models.py:2008 msgid "Enable password forgot" msgstr "Habitar esquecer senha" -#: common/models.py:1954 +#: common/models.py:2009 msgid "Enable password forgot function on the login pages" msgstr "Habilitar a função \"Esqueci minha senha\" nas páginas de acesso" -#: common/models.py:1959 +#: common/models.py:2014 msgid "Enable registration" msgstr "Habilitar cadastro" -#: common/models.py:1960 +#: common/models.py:2015 msgid "Enable self-registration for users on the login pages" msgstr "Ativar auto-registro para usuários na página de entrada" -#: common/models.py:1965 +#: common/models.py:2020 msgid "Enable SSO" msgstr "Ativar SSO" -#: common/models.py:1966 +#: common/models.py:2021 msgid "Enable SSO on the login pages" msgstr "Ativar SSO na página de acesso" -#: common/models.py:1971 +#: common/models.py:2026 msgid "Enable SSO registration" msgstr "Ativar registro SSO" -#: common/models.py:1973 +#: common/models.py:2028 msgid "Enable self-registration via SSO for users on the login pages" msgstr "Ativar auto-registro por SSO para usuários na página de entrada" -#: common/models.py:1979 +#: common/models.py:2034 msgid "Enable SSO group sync" msgstr "" -#: common/models.py:1981 +#: common/models.py:2036 msgid "Enable synchronizing InvenTree groups with groups provided by the IdP" msgstr "" -#: common/models.py:1987 +#: common/models.py:2042 msgid "SSO group key" msgstr "" -#: common/models.py:1989 +#: common/models.py:2044 msgid "The name of the groups claim attribute provided by the IdP" msgstr "" -#: common/models.py:1995 +#: common/models.py:2050 msgid "SSO group map" msgstr "" -#: common/models.py:1997 +#: common/models.py:2052 msgid "A mapping from SSO groups to local InvenTree groups. If the local group does not exist, it will be created." msgstr "" -#: common/models.py:2003 +#: common/models.py:2058 msgid "Remove groups outside of SSO" msgstr "" -#: common/models.py:2005 +#: common/models.py:2060 msgid "Whether groups assigned to the user should be removed if they are not backend by the IdP. Disabling this setting might cause security issues" msgstr "" -#: common/models.py:2011 +#: common/models.py:2066 msgid "Email required" msgstr "Email obrigatório" -#: common/models.py:2012 +#: common/models.py:2067 msgid "Require user to supply mail on signup" msgstr "Exigir do usuário o e-mail no cadastro" -#: common/models.py:2017 +#: common/models.py:2072 msgid "Auto-fill SSO users" msgstr "Auto-preencher usuários SSO" -#: common/models.py:2019 +#: common/models.py:2074 msgid "Automatically fill out user-details from SSO account-data" msgstr "Preencher automaticamente os detalhes do usuário a partir de dados da conta SSO" -#: common/models.py:2025 +#: common/models.py:2080 msgid "Mail twice" msgstr "Enviar email duplo" -#: common/models.py:2026 +#: common/models.py:2081 msgid "On signup ask users twice for their mail" msgstr "No registro pedir aos usuários duas vezes pelo email" -#: common/models.py:2031 +#: common/models.py:2086 msgid "Password twice" msgstr "Senha duas vezes" -#: common/models.py:2032 +#: common/models.py:2087 msgid "On signup ask users twice for their password" msgstr "No registro pedir aos usuários duas vezes pela senha" -#: common/models.py:2037 +#: common/models.py:2092 msgid "Allowed domains" msgstr "Domínios permitidos" -#: common/models.py:2039 +#: common/models.py:2094 msgid "Restrict signup to certain domains (comma-separated, starting with @)" msgstr "Restringir registros a certos domínios (separados por vírgula, começando com @)" -#: common/models.py:2045 +#: common/models.py:2100 msgid "Group on signup" msgstr "Grupo no cadastro" -#: common/models.py:2047 +#: common/models.py:2102 msgid "Group to which new users are assigned on registration. If SSO group sync is enabled, this group is only set if no group can be assigned from the IdP." msgstr "" -#: common/models.py:2053 +#: common/models.py:2108 msgid "Enforce MFA" msgstr "Forçar AMF" -#: common/models.py:2054 +#: common/models.py:2109 msgid "Users must use multifactor security." msgstr "Os usuários devem usar uma segurança multifator." -#: common/models.py:2059 +#: common/models.py:2114 msgid "Check plugins on startup" msgstr "Checar extensões no início" -#: common/models.py:2061 +#: common/models.py:2116 msgid "Check that all plugins are installed on startup - enable in container environments" msgstr "Checar que todas as extensões instaladas no início — ativar em ambientes de contêineres" -#: common/models.py:2069 +#: common/models.py:2124 msgid "Check for plugin updates" msgstr "Verificar por atualizações de plugin" -#: common/models.py:2070 +#: common/models.py:2125 msgid "Enable periodic checks for updates to installed plugins" msgstr "Habilitar verificações periódicas de atualizações para plugins instalados" -#: common/models.py:2076 +#: common/models.py:2131 msgid "Enable URL integration" msgstr "Ativar integração URL" -#: common/models.py:2077 +#: common/models.py:2132 msgid "Enable plugins to add URL routes" msgstr "Ativar extensão para adicionar rotas URL" -#: common/models.py:2083 +#: common/models.py:2138 msgid "Enable navigation integration" msgstr "Ativar integração de navegação" -#: common/models.py:2084 +#: common/models.py:2139 msgid "Enable plugins to integrate into navigation" msgstr "Ativar extensões para integrar à navegação" -#: common/models.py:2090 +#: common/models.py:2145 msgid "Enable app integration" msgstr "Ativa integração com aplicativo" -#: common/models.py:2091 +#: common/models.py:2146 msgid "Enable plugins to add apps" msgstr "Ativar extensões para adicionar aplicativos" -#: common/models.py:2097 +#: common/models.py:2152 msgid "Enable schedule integration" msgstr "Ativar integração do calendário" -#: common/models.py:2098 +#: common/models.py:2153 msgid "Enable plugins to run scheduled tasks" msgstr "Ativar extensões para executar tarefas agendadas" -#: common/models.py:2104 +#: common/models.py:2159 msgid "Enable event integration" msgstr "Ativar integração de eventos" -#: common/models.py:2105 +#: common/models.py:2160 msgid "Enable plugins to respond to internal events" msgstr "Ativar extensões para responder a eventos internos" -#: common/models.py:2111 +#: common/models.py:2166 +msgid "Enable interface integration" +msgstr "" + +#: common/models.py:2167 +msgid "Enable plugins to integrate into the user interface" +msgstr "" + +#: common/models.py:2173 msgid "Enable project codes" msgstr "Habilitar códigos de projeto" -#: common/models.py:2112 +#: common/models.py:2174 msgid "Enable project codes for tracking projects" msgstr "Ativar códigos de projeto para rastrear projetos" -#: common/models.py:2117 +#: common/models.py:2179 msgid "Stocktake Functionality" msgstr "Funcionalidade de Balanço do Inventário" -#: common/models.py:2119 +#: common/models.py:2181 msgid "Enable stocktake functionality for recording stock levels and calculating stock value" msgstr "Ativar funcionalidade de balanço para gravar níveis de estoque e calcular seu valor" -#: common/models.py:2125 +#: common/models.py:2187 msgid "Exclude External Locations" msgstr "Excluir Locais Externos" -#: common/models.py:2127 +#: common/models.py:2189 msgid "Exclude stock items in external locations from stocktake calculations" msgstr "Excluir itens de estoque em locais externos dos cálculos do estoque" -#: common/models.py:2133 +#: common/models.py:2195 msgid "Automatic Stocktake Period" msgstr "Período de Balanço Automático" -#: common/models.py:2135 +#: common/models.py:2197 msgid "Number of days between automatic stocktake recording (set to zero to disable)" msgstr "Número de dias entre gravação do balanço de estoque (coloque zero para desativar)" -#: common/models.py:2141 +#: common/models.py:2203 msgid "Report Deletion Interval" msgstr "Intervalo para Excluir o Relatório" -#: common/models.py:2143 +#: common/models.py:2205 msgid "Stocktake reports will be deleted after specified number of days" msgstr "Relatórios de balanço serão apagados após um número de dias especificado" -#: common/models.py:2150 +#: common/models.py:2212 msgid "Display Users full names" msgstr "Mostrar nomes completos dos usuários" -#: common/models.py:2151 +#: common/models.py:2213 msgid "Display Users full names instead of usernames" msgstr "Mostrar Nomes Completos em vez de Nomes de Usuário" -#: common/models.py:2156 +#: common/models.py:2218 msgid "Enable Test Station Data" msgstr "" -#: common/models.py:2157 +#: common/models.py:2219 msgid "Enable test station data collection for test results" msgstr "" -#: common/models.py:2169 common/models.py:2549 -msgid "Settings key (must be unique - case insensitive" -msgstr "Senha de configurações (deve ser única — diferencia maiúsculas de minúsculas" +#: common/models.py:2224 +msgid "Create Template on Upload" +msgstr "" -#: common/models.py:2212 +#: common/models.py:2226 +msgid "Create a new test template when uploading test data which does not match an existing template" +msgstr "" + +#: common/models.py:2279 msgid "Hide inactive parts" msgstr "Ocultar peças inativas" -#: common/models.py:2214 +#: common/models.py:2281 msgid "Hide inactive parts in results displayed on the homepage" msgstr "Ocultar peças inativas nos resultados exibidos na página inicial" -#: common/models.py:2220 +#: common/models.py:2287 msgid "Show subscribed parts" msgstr "Mostrar peças subscritas" -#: common/models.py:2221 +#: common/models.py:2288 msgid "Show subscribed parts on the homepage" msgstr "Mostrar peças subscritas na tela inicial" -#: common/models.py:2226 +#: common/models.py:2293 msgid "Show subscribed categories" msgstr "Mostrar categorias subscritas" -#: common/models.py:2227 +#: common/models.py:2294 msgid "Show subscribed part categories on the homepage" msgstr "Mostrar categorias de peças subscritas na tela inicial" -#: common/models.py:2232 +#: common/models.py:2299 msgid "Show latest parts" msgstr "Mostrar peças mais recentes" -#: common/models.py:2233 +#: common/models.py:2300 msgid "Show latest parts on the homepage" msgstr "Mostrar as peças mais recentes na página inicial" -#: common/models.py:2238 +#: common/models.py:2305 msgid "Show invalid BOMs" msgstr "" -#: common/models.py:2239 +#: common/models.py:2306 msgid "Show BOMs that await validation on the homepage" msgstr "Mostrar LDMs que aguardam validação na página inicial" -#: common/models.py:2244 +#: common/models.py:2311 msgid "Show recent stock changes" msgstr "Mostrar alterações recentes de estoque" -#: common/models.py:2245 +#: common/models.py:2312 msgid "Show recently changed stock items on the homepage" msgstr "Mostrar itens de estoque alterados recentemente na página inicial" -#: common/models.py:2250 +#: common/models.py:2317 msgid "Show low stock" msgstr "Mostrar estoque baixo" -#: common/models.py:2251 +#: common/models.py:2318 msgid "Show low stock items on the homepage" msgstr "Mostrar itens de baixo estoque na página inicial" -#: common/models.py:2256 +#: common/models.py:2323 msgid "Show depleted stock" msgstr "Mostrar estoque esgotado" -#: common/models.py:2257 +#: common/models.py:2324 msgid "Show depleted stock items on the homepage" msgstr "Mostrar itens sem estoque na página inicial" -#: common/models.py:2262 +#: common/models.py:2329 msgid "Show needed stock" msgstr "Mostrar estoque necessário" -#: common/models.py:2263 +#: common/models.py:2330 msgid "Show stock items needed for builds on the homepage" msgstr "Mostrar itens de estoque necessários para produções na tela inicial" -#: common/models.py:2268 +#: common/models.py:2335 msgid "Show expired stock" msgstr "Mostrar estoque expirado" -#: common/models.py:2269 +#: common/models.py:2336 msgid "Show expired stock items on the homepage" msgstr "Mostrar expirados itens em estoque na tela inicial" -#: common/models.py:2274 +#: common/models.py:2341 msgid "Show stale stock" msgstr "Mostrar estoque inativo" -#: common/models.py:2275 +#: common/models.py:2342 msgid "Show stale stock items on the homepage" msgstr "Mostrar estoque inativo na tela inicial" -#: common/models.py:2280 +#: common/models.py:2347 msgid "Show pending builds" msgstr "Mostrar produções pendentes" -#: common/models.py:2281 +#: common/models.py:2348 msgid "Show pending builds on the homepage" msgstr "Mostrar produções pendentes na tela inicial" -#: common/models.py:2286 +#: common/models.py:2353 msgid "Show overdue builds" msgstr "Mostrar produções atrasadas" -#: common/models.py:2287 +#: common/models.py:2354 msgid "Show overdue builds on the homepage" msgstr "Mostrar produções atrasadas na tela inicial" -#: common/models.py:2292 +#: common/models.py:2359 msgid "Show outstanding POs" msgstr "Mostrar pedidos de compra pendentes" -#: common/models.py:2293 +#: common/models.py:2360 msgid "Show outstanding POs on the homepage" msgstr "Mostrar os Pedidos de Compras pendentes na página inicial" -#: common/models.py:2298 +#: common/models.py:2365 msgid "Show overdue POs" msgstr "Mostrar Pedidos de Compra atrasados" -#: common/models.py:2299 +#: common/models.py:2366 msgid "Show overdue POs on the homepage" msgstr "Mostrar os Pedidos de Compras atrasadas na tela inicial" -#: common/models.py:2304 +#: common/models.py:2371 msgid "Show outstanding SOs" msgstr "Mostrar pedidos de vendas pendentes" -#: common/models.py:2305 +#: common/models.py:2372 msgid "Show outstanding SOs on the homepage" msgstr "Mostrar os Pedidos de Vendas pendentes na página inicial" -#: common/models.py:2310 +#: common/models.py:2377 msgid "Show overdue SOs" msgstr "Mostrar Pedidos de Venda atrasados" -#: common/models.py:2311 +#: common/models.py:2378 msgid "Show overdue SOs on the homepage" msgstr "Mostrar os Pedidos de Vendas atrasadas na tela inicial" -#: common/models.py:2316 +#: common/models.py:2383 msgid "Show pending SO shipments" msgstr "Mostrar remessas de OV pendentes" -#: common/models.py:2317 +#: common/models.py:2384 msgid "Show pending SO shipments on the homepage" msgstr "Mostrar envios OV pendentes na tela inicial" -#: common/models.py:2322 +#: common/models.py:2389 msgid "Show News" msgstr "Mostrar notícias" -#: common/models.py:2323 +#: common/models.py:2390 msgid "Show news on the homepage" msgstr "Mostrar notícias na tela inicial" -#: common/models.py:2328 +#: common/models.py:2395 msgid "Inline label display" msgstr "Mostrar etiqueta em linha" -#: common/models.py:2330 +#: common/models.py:2397 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "Mostrar etiquetas em PDF no navegador, ao invés de baixar o arquivo" -#: common/models.py:2336 +#: common/models.py:2403 msgid "Default label printer" msgstr "Impressora de etiquetas padrão" -#: common/models.py:2338 +#: common/models.py:2405 msgid "Configure which label printer should be selected by default" msgstr "Configurar qual impressora de etiqueta deve ser selecionada por padrão" -#: common/models.py:2344 +#: common/models.py:2411 msgid "Inline report display" msgstr "Mostrar relatório em linha" -#: common/models.py:2346 +#: common/models.py:2413 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "Mostrar relatórios em PDF no navegador, ao invés de baixar o arquivo" -#: common/models.py:2352 +#: common/models.py:2419 msgid "Search Parts" msgstr "Procurar Peças" -#: common/models.py:2353 +#: common/models.py:2420 msgid "Display parts in search preview window" msgstr "Mostrar peças na janela de visualização de pesquisa" -#: common/models.py:2358 +#: common/models.py:2425 msgid "Search Supplier Parts" msgstr "Buscar Peças do Fornecedor" -#: common/models.py:2359 +#: common/models.py:2426 msgid "Display supplier parts in search preview window" msgstr "Mostrar fornecedor de peças na janela de visualização de pesquisa" -#: common/models.py:2364 +#: common/models.py:2431 msgid "Search Manufacturer Parts" msgstr "Buscar peças do fabricante" -#: common/models.py:2365 +#: common/models.py:2432 msgid "Display manufacturer parts in search preview window" msgstr "Mostrar fabricante de peças na janela de visualização de pesquisa" -#: common/models.py:2370 +#: common/models.py:2437 msgid "Hide Inactive Parts" msgstr "Ocultar peças inativas" -#: common/models.py:2371 +#: common/models.py:2438 msgid "Excluded inactive parts from search preview window" msgstr "Não incluir peças inativas na janela de visualização de pesquisa" -#: common/models.py:2376 +#: common/models.py:2443 msgid "Search Categories" msgstr "Pesquisar Categorias" -#: common/models.py:2377 +#: common/models.py:2444 msgid "Display part categories in search preview window" msgstr "Mostrar categoria das peças na janela de visualização de pesquisa" -#: common/models.py:2382 +#: common/models.py:2449 msgid "Search Stock" msgstr "Pesquisar Estoque" -#: common/models.py:2383 +#: common/models.py:2450 msgid "Display stock items in search preview window" msgstr "Mostrar itens do estoque na janela de visualização de pesquisa" -#: common/models.py:2388 +#: common/models.py:2455 msgid "Hide Unavailable Stock Items" msgstr "Ocultar itens do estoque indisponíveis" -#: common/models.py:2390 +#: common/models.py:2457 msgid "Exclude stock items which are not available from the search preview window" msgstr "Não incluir itens de estoque que não estão disponíveis na janela de visualização de pesquisa" -#: common/models.py:2396 +#: common/models.py:2463 msgid "Search Locations" msgstr "Procurar Locais" -#: common/models.py:2397 +#: common/models.py:2464 msgid "Display stock locations in search preview window" msgstr "Mostrar locais de estoque na janela de visualização de pesquisa" -#: common/models.py:2402 +#: common/models.py:2469 msgid "Search Companies" msgstr "Pesquisar empresas" -#: common/models.py:2403 +#: common/models.py:2470 msgid "Display companies in search preview window" msgstr "Mostrar empresas na janela de visualização de pesquisa" -#: common/models.py:2408 +#: common/models.py:2475 msgid "Search Build Orders" msgstr "Procurar Pedidos de Produção" -#: common/models.py:2409 +#: common/models.py:2476 msgid "Display build orders in search preview window" msgstr "Mostrar pedidos de produção na janela de visualização de pesquisa" -#: common/models.py:2414 +#: common/models.py:2481 msgid "Search Purchase Orders" msgstr "Mostrar Pedido de Compras" -#: common/models.py:2415 +#: common/models.py:2482 msgid "Display purchase orders in search preview window" msgstr "Mostrar pedidos de compra na janela de visualização de pesquisa" -#: common/models.py:2420 +#: common/models.py:2487 msgid "Exclude Inactive Purchase Orders" msgstr "Não incluir Pedidos de Compras Inativos" -#: common/models.py:2422 +#: common/models.py:2489 msgid "Exclude inactive purchase orders from search preview window" msgstr "Não incluir pedidos de compras inativos na janela de visualização de pesquisa" -#: common/models.py:2428 +#: common/models.py:2495 msgid "Search Sales Orders" msgstr "Procurar Pedidos de Vendas" -#: common/models.py:2429 +#: common/models.py:2496 msgid "Display sales orders in search preview window" msgstr "Mostrar pedidos de vendas na janela de visualização de pesquisa" -#: common/models.py:2434 +#: common/models.py:2501 msgid "Exclude Inactive Sales Orders" msgstr "Não Incluir Pedidos de Compras Inativas" -#: common/models.py:2436 +#: common/models.py:2503 msgid "Exclude inactive sales orders from search preview window" msgstr "Não incluir pedidos de vendas inativos na janela de visualização de pesquisa" -#: common/models.py:2442 +#: common/models.py:2509 msgid "Search Return Orders" msgstr "Procurar Pedidos de Devolução" -#: common/models.py:2443 +#: common/models.py:2510 msgid "Display return orders in search preview window" msgstr "Mostrar pedidos de devolução na janela de visualização de pesquisa" -#: common/models.py:2448 +#: common/models.py:2515 msgid "Exclude Inactive Return Orders" msgstr "Não Incluir Pedidos de Devolução Inativas" -#: common/models.py:2450 +#: common/models.py:2517 msgid "Exclude inactive return orders from search preview window" msgstr "Não incluir pedidos de devolução inativos na janela de visualização de pesquisa" -#: common/models.py:2456 +#: common/models.py:2523 msgid "Search Preview Results" msgstr "Mostrar Resultados Anteriores" -#: common/models.py:2458 +#: common/models.py:2525 msgid "Number of results to show in each section of the search preview window" msgstr "Número de resultados mostrados em cada seção da janela de visualização de pesquisa" -#: common/models.py:2464 +#: common/models.py:2531 msgid "Regex Search" msgstr "Pesquisa de Regex" -#: common/models.py:2465 +#: common/models.py:2532 msgid "Enable regular expressions in search queries" msgstr "Permitir expressôes comuns nas conultas de pesquisas" -#: common/models.py:2470 +#: common/models.py:2537 msgid "Whole Word Search" msgstr "Busca de Palavras Inteira" -#: common/models.py:2471 +#: common/models.py:2538 msgid "Search queries return results for whole word matches" msgstr "Pesquisa retorna que palavra inteira coincide" -#: common/models.py:2476 +#: common/models.py:2543 msgid "Show Quantity in Forms" msgstr "Mostrar Quantidade nos Formulários" -#: common/models.py:2477 +#: common/models.py:2544 msgid "Display available part quantity in some forms" msgstr "Mostrar a quantidade de peças disponíveis em alguns formulários" -#: common/models.py:2482 +#: common/models.py:2549 msgid "Escape Key Closes Forms" msgstr "Tecla Esc Fecha Formulários" -#: common/models.py:2483 +#: common/models.py:2550 msgid "Use the escape key to close modal forms" msgstr "Usar a tecla Esc para fechar fomulários modais" -#: common/models.py:2488 +#: common/models.py:2555 msgid "Fixed Navbar" msgstr "Fixar Navbar" -#: common/models.py:2489 +#: common/models.py:2556 msgid "The navbar position is fixed to the top of the screen" msgstr "A posição do Navbar é fixa no topo da tela" -#: common/models.py:2494 +#: common/models.py:2561 msgid "Date Format" msgstr "Formato da data" -#: common/models.py:2495 +#: common/models.py:2562 msgid "Preferred format for displaying dates" msgstr "Formato preferido para mostrar datas" -#: common/models.py:2508 part/templates/part/detail.html:41 +#: common/models.py:2575 part/templates/part/detail.html:41 msgid "Part Scheduling" msgstr "Agendamento de peças" -#: common/models.py:2509 +#: common/models.py:2576 msgid "Display part scheduling information" msgstr "Mostrar informações de agendamento de peças" -#: common/models.py:2514 part/templates/part/detail.html:62 +#: common/models.py:2581 part/templates/part/detail.html:62 msgid "Part Stocktake" msgstr "Balanço de Peça" -#: common/models.py:2516 +#: common/models.py:2583 msgid "Display part stocktake information (if stocktake functionality is enabled)" msgstr "Mostrar informação de balanço da peça (se a funcionalidade de balanço estiver habilitada)" -#: common/models.py:2522 +#: common/models.py:2589 msgid "Table String Length" msgstr "Comprimento da Tabela de Frases" -#: common/models.py:2524 +#: common/models.py:2591 msgid "Maximum length limit for strings displayed in table views" msgstr "Limite máximo de comprimento para frases exibidas nas visualizações de tabela" -#: common/models.py:2530 +#: common/models.py:2597 msgid "Receive error reports" msgstr "Receber relatório de erros" -#: common/models.py:2531 +#: common/models.py:2598 msgid "Receive notifications for system errors" msgstr "Receber notificações para erros do sistema" -#: common/models.py:2536 +#: common/models.py:2603 msgid "Last used printing machines" msgstr "Últimas máquinas de impressão utilizadas" -#: common/models.py:2537 +#: common/models.py:2604 msgid "Save the last used printing machines for a user" msgstr "Salvar as últimas máquinas de impressão usadas para um usuário" -#: common/models.py:2557 common/models.py:2558 common/models.py:2715 -#: common/models.py:2716 common/models.py:2961 common/models.py:2962 -#: common/models.py:3288 common/models.py:3289 importer/models.py:88 -#: part/models.py:3307 part/models.py:3394 part/models.py:3468 -#: part/models.py:3496 plugin/models.py:274 plugin/models.py:275 -#: report/templates/report/inventree_test_report.html:105 -#: templates/js/translated/stock.js:3120 users/models.py:111 +#: common/models.py:2621 common/models.py:2622 common/models.py:2779 +#: common/models.py:2780 common/models.py:3025 common/models.py:3026 +#: common/models.py:3349 common/models.py:3350 common/models.py:3534 +#: importer/models.py:89 part/models.py:3358 part/models.py:3445 +#: part/models.py:3519 part/models.py:3547 plugin/models.py:313 +#: plugin/models.py:314 report/templates/report/inventree_test_report.html:105 +#: templates/js/translated/stock.js:3121 users/models.py:111 msgid "User" msgstr "Usuario" -#: common/models.py:2580 +#: common/models.py:2644 msgid "Price break quantity" msgstr "Quantidade de Parcelamentos" -#: common/models.py:2587 company/serializers.py:513 order/admin.py:42 -#: order/models.py:1430 order/models.py:2417 -#: templates/js/translated/company.js:1823 templates/js/translated/part.js:1892 +#: common/models.py:2651 company/serializers.py:524 order/admin.py:42 +#: order/models.py:1447 order/models.py:2456 +#: templates/js/translated/company.js:1824 templates/js/translated/part.js:1892 #: templates/js/translated/pricing.js:621 #: templates/js/translated/return_order.js:739 msgid "Price" msgstr "Preço" -#: common/models.py:2588 +#: common/models.py:2652 msgid "Unit price at specified quantity" msgstr "Preço unitário na quantidade especificada" -#: common/models.py:2692 common/models.py:2877 +#: common/models.py:2756 common/models.py:2941 msgid "Endpoint" msgstr "Ponto final" -#: common/models.py:2693 +#: common/models.py:2757 msgid "Endpoint at which this webhook is received" msgstr "Ponto final em qual o gancho web foi recebido" -#: common/models.py:2703 +#: common/models.py:2767 msgid "Name for this webhook" msgstr "Nome para este webhook" -#: common/models.py:2707 +#: common/models.py:2771 msgid "Is this webhook active" msgstr "Este gancho web está ativo" -#: common/models.py:2723 users/models.py:159 +#: common/models.py:2787 users/models.py:159 msgid "Token" msgstr "" -#: common/models.py:2724 +#: common/models.py:2788 msgid "Token for access" msgstr "Token de acesso" -#: common/models.py:2732 +#: common/models.py:2796 msgid "Secret" msgstr "Segredo" -#: common/models.py:2733 +#: common/models.py:2797 msgid "Shared secret for HMAC" msgstr "Segredo compartilhado para HMAC" -#: common/models.py:2841 +#: common/models.py:2905 msgid "Message ID" msgstr "ID da Mensagem" -#: common/models.py:2842 +#: common/models.py:2906 msgid "Unique identifier for this message" msgstr "Identificador exclusivo desta mensagem" -#: common/models.py:2850 +#: common/models.py:2914 msgid "Host" msgstr "Servidor" -#: common/models.py:2851 +#: common/models.py:2915 msgid "Host from which this message was received" msgstr "Servidor do qual esta mensagem foi recebida" -#: common/models.py:2859 +#: common/models.py:2923 msgid "Header" msgstr "Cabeçalho" -#: common/models.py:2860 +#: common/models.py:2924 msgid "Header of this message" msgstr "Cabeçalho da mensagem" -#: common/models.py:2867 +#: common/models.py:2931 msgid "Body" msgstr "Corpo" -#: common/models.py:2868 +#: common/models.py:2932 msgid "Body of this message" msgstr "Corpo da mensagem" -#: common/models.py:2878 +#: common/models.py:2942 msgid "Endpoint on which this message was received" msgstr "Ponto do qual esta mensagem foi recebida" -#: common/models.py:2883 +#: common/models.py:2947 msgid "Worked on" msgstr "Trabalhado em" -#: common/models.py:2884 +#: common/models.py:2948 msgid "Was the work on this message finished?" msgstr "O trabalho desta mensagem foi concluído?" -#: common/models.py:3010 +#: common/models.py:3074 msgid "Id" msgstr "" -#: common/models.py:3012 templates/js/translated/company.js:965 -#: templates/js/translated/news.js:44 +#: common/models.py:3076 part/serializers.py:271 +#: templates/js/translated/company.js:966 templates/js/translated/news.js:44 msgid "Title" msgstr "Título" -#: common/models.py:3014 common/models.py:3272 company/models.py:149 -#: company/models.py:446 company/models.py:512 company/models.py:818 -#: order/models.py:302 order/models.py:1385 order/models.py:1817 -#: part/admin.py:55 part/models.py:1057 +#: common/models.py:3078 common/models.py:3333 company/models.py:146 +#: company/models.py:443 company/models.py:509 company/models.py:815 +#: order/models.py:309 order/models.py:1402 order/models.py:1846 +#: part/admin.py:55 part/models.py:1118 #: part/templates/part/part_scheduling.html:11 #: report/templates/report/inventree_build_order_report.html:164 -#: stock/admin.py:229 templates/js/translated/company.js:1319 -#: templates/js/translated/company.js:1673 templates/js/translated/order.js:376 +#: stock/admin.py:230 templates/js/translated/company.js:1320 +#: templates/js/translated/company.js:1674 templates/js/translated/order.js:376 #: templates/js/translated/part.js:2475 -#: templates/js/translated/purchase_order.js:2110 -#: templates/js/translated/purchase_order.js:2274 +#: templates/js/translated/purchase_order.js:2094 +#: templates/js/translated/purchase_order.js:2258 #: templates/js/translated/return_order.js:778 -#: templates/js/translated/sales_order.js:1092 -#: templates/js/translated/sales_order.js:2023 +#: templates/js/translated/sales_order.js:1058 +#: templates/js/translated/sales_order.js:2004 msgid "Link" msgstr "Ligação" -#: common/models.py:3016 templates/js/translated/news.js:60 +#: common/models.py:3080 templates/js/translated/news.js:60 msgid "Published" msgstr "Publicado" -#: common/models.py:3018 templates/InvenTree/settings/plugin_settings.html:32 +#: common/models.py:3082 templates/InvenTree/settings/plugin_settings.html:32 #: templates/js/translated/news.js:56 templates/js/translated/plugin.js:103 msgid "Author" msgstr "Autor" -#: common/models.py:3020 templates/js/translated/news.js:52 +#: common/models.py:3084 templates/js/translated/news.js:52 msgid "Summary" msgstr "Resumo" -#: common/models.py:3023 +#: common/models.py:3087 msgid "Read" msgstr "Lida" -#: common/models.py:3023 +#: common/models.py:3087 msgid "Was this news item read?" msgstr "Esta notícia do item foi lida?" -#: common/models.py:3040 company/models.py:159 part/models.py:1067 +#: common/models.py:3104 company/models.py:156 part/models.py:1128 #: report/templates/report/inventree_bill_of_materials_report.html:126 #: report/templates/report/inventree_bill_of_materials_report.html:148 #: report/templates/report/inventree_return_order_report.html:35 -#: stock/templates/stock/item_base.html:133 templates/503.html:31 +#: stock/templates/stock/item_base.html:130 templates/503.html:31 #: templates/hover_image.html:7 templates/hover_image.html:9 #: templates/modals.html:6 msgid "Image" msgstr "Imagem" -#: common/models.py:3040 +#: common/models.py:3104 msgid "Image file" msgstr "Arquivo de imagem" -#: common/models.py:3052 common/models.py:3256 +#: common/models.py:3116 common/models.py:3317 msgid "Target model type for this image" msgstr "" -#: common/models.py:3056 +#: common/models.py:3120 msgid "Target model ID for this image" msgstr "" -#: common/models.py:3078 +#: common/models.py:3142 msgid "Custom Unit" msgstr "" -#: common/models.py:3099 +#: common/models.py:3160 msgid "Unit symbol must be unique" msgstr "" -#: common/models.py:3114 +#: common/models.py:3175 msgid "Unit name must be a valid identifier" msgstr "Nome da unidade deve ser um identificador válido" -#: common/models.py:3133 +#: common/models.py:3194 msgid "Unit name" msgstr "Nome da unidade" -#: common/models.py:3140 templates/InvenTree/settings/settings_staff_js.html:75 +#: common/models.py:3201 templates/InvenTree/settings/settings_staff_js.html:75 msgid "Symbol" msgstr "Símbolo" -#: common/models.py:3141 +#: common/models.py:3202 msgid "Optional unit symbol" msgstr "Símbolo de unidade opcional" -#: common/models.py:3147 templates/InvenTree/settings/settings_staff_js.html:71 +#: common/models.py:3208 templates/InvenTree/settings/settings_staff_js.html:71 msgid "Definition" msgstr "Definição" -#: common/models.py:3148 +#: common/models.py:3209 msgid "Unit definition" msgstr "Definição de unidade" -#: common/models.py:3206 common/models.py:3263 stock/models.py:2558 -#: templates/js/translated/attachment.js:119 +#: common/models.py:3267 common/models.py:3324 stock/models.py:2674 +#: stock/serializers.py:244 templates/js/translated/attachment.js:119 #: templates/js/translated/attachment.js:345 msgid "Attachment" msgstr "Anexo" -#: common/models.py:3218 +#: common/models.py:3279 msgid "Missing file" msgstr "Arquivo ausente" -#: common/models.py:3219 +#: common/models.py:3280 msgid "Missing external link" msgstr "Link externo não encontrado" -#: common/models.py:3264 +#: common/models.py:3325 msgid "Select file to attach" msgstr "Selecione arquivo para anexar" -#: common/models.py:3279 templates/js/translated/attachment.js:120 +#: common/models.py:3340 templates/js/translated/attachment.js:120 #: templates/js/translated/attachment.js:360 msgid "Comment" msgstr "Comentario" -#: common/models.py:3280 +#: common/models.py:3341 msgid "Attachment comment" msgstr "" -#: common/models.py:3296 +#: common/models.py:3357 msgid "Upload date" msgstr "" -#: common/models.py:3297 +#: common/models.py:3358 msgid "Date the file was uploaded" msgstr "" -#: common/models.py:3301 +#: common/models.py:3362 msgid "File size" msgstr "" -#: common/models.py:3301 +#: common/models.py:3362 msgid "File size in bytes" msgstr "" -#: common/models.py:3339 common/serializers.py:562 +#: common/models.py:3400 common/serializers.py:609 msgid "Invalid model type specified for attachment" msgstr "" -#: common/notifications.py:314 +#: common/models.py:3409 plugin/models.py:43 users/models.py:100 +msgid "Key" +msgstr "Chave" + +#: common/models.py:3410 +msgid "Value that will be saved in the models database" +msgstr "" + +#: common/models.py:3413 +msgid "Name of the state" +msgstr "" + +#: common/models.py:3417 part/serializers.py:273 +msgid "Label" +msgstr "" + +#: common/models.py:3418 +msgid "Label that will be displayed in the frontend" +msgstr "" + +#: common/models.py:3424 +msgid "Color" +msgstr "" + +#: common/models.py:3425 +msgid "Color that will be displayed in the frontend" +msgstr "" + +#: common/models.py:3428 +msgid "Logical Key" +msgstr "" + +#: common/models.py:3430 +msgid "State logical key that is equal to this custom state in business logic" +msgstr "" + +#: common/models.py:3438 part/serializers.py:275 +msgid "Model" +msgstr "" + +#: common/models.py:3439 +msgid "Model this state is associated with" +msgstr "" + +#: common/models.py:3443 +msgid "Reference Status Set" +msgstr "" + +#: common/models.py:3444 +msgid "Status set that is extended with this custom state" +msgstr "" + +#: common/models.py:3450 +msgid "Custom State" +msgstr "" + +#: common/models.py:3451 +msgid "Custom States" +msgstr "" + +#: common/models.py:3466 +msgid "Model must be selected" +msgstr "" + +#: common/models.py:3469 +msgid "Key must be selected" +msgstr "" + +#: common/models.py:3472 +msgid "Logical key must be selected" +msgstr "" + +#: common/models.py:3476 +msgid "Key must be different from logical key" +msgstr "" + +#: common/models.py:3480 +msgid "Reference status must be selected" +msgstr "" + +#: common/models.py:3492 +msgid "Reference status set not found" +msgstr "" + +#: common/models.py:3498 +msgid "Key must be different from the logical keys of the reference status" +msgstr "" + +#: common/models.py:3504 +msgid "Logical key must be in the logical keys of the reference status" +msgstr "" + +#: common/models.py:3519 +msgid "Barcode Scan" +msgstr "" + +#: common/models.py:3523 importer/models.py:512 part/models.py:4009 +msgid "Data" +msgstr "Dados" + +#: common/models.py:3524 +msgid "Barcode data" +msgstr "" + +#: common/models.py:3535 +msgid "User who scanned the barcode" +msgstr "" + +#: common/models.py:3540 importer/models.py:60 +msgid "Timestamp" +msgstr "" + +#: common/models.py:3541 +msgid "Date and time of the barcode scan" +msgstr "" + +#: common/models.py:3547 +msgid "URL endpoint which processed the barcode" +msgstr "" + +#: common/models.py:3554 order/models.py:1437 plugin/serializers.py:89 +msgid "Context" +msgstr "Contexto" + +#: common/models.py:3555 +msgid "Context data for the barcode scan" +msgstr "" + +#: common/models.py:3562 +msgid "Response" +msgstr "" + +#: common/models.py:3563 +msgid "Response data from the barcode scan" +msgstr "" + +#: common/models.py:3569 report/templates/report/inventree_test_report.html:103 +#: stock/models.py:2660 +msgid "Result" +msgstr "Resultado" + +#: common/models.py:3570 +msgid "Was the barcode scan successful?" +msgstr "" + +#: common/notifications.py:328 #, python-brace-format msgid "New {verbose_name}" msgstr "Novo {verbose_name}" -#: common/notifications.py:316 +#: common/notifications.py:330 msgid "A new order has been created and assigned to you" msgstr "Um novo pedido foi criado e atribuído a você" -#: common/notifications.py:322 +#: common/notifications.py:336 #, python-brace-format msgid "{verbose_name} canceled" msgstr "{verbose_name} cancelado" -#: common/notifications.py:324 +#: common/notifications.py:338 msgid "A order that is assigned to you was canceled" msgstr "Um pedido atribuído a você foi cancelado" -#: common/notifications.py:330 common/notifications.py:337 order/api.py:462 +#: common/notifications.py:344 common/notifications.py:351 order/api.py:440 msgid "Items Received" msgstr "Itens Recebidos" -#: common/notifications.py:332 +#: common/notifications.py:346 msgid "Items have been received against a purchase order" msgstr "Os itens de um pedido de compra foram recebidos" -#: common/notifications.py:339 +#: common/notifications.py:353 msgid "Items have been received against a return order" msgstr "Os itens de um pedido de devolução foram recebidos" -#: common/notifications.py:457 +#: common/notifications.py:475 msgid "Error raised by plugin" msgstr "Erro criado pela extensão" -#: common/serializers.py:375 +#: common/serializers.py:423 msgid "Is Running" msgstr "Executando" -#: common/serializers.py:381 +#: common/serializers.py:429 msgid "Pending Tasks" msgstr "Tarefas Pendentes" -#: common/serializers.py:387 +#: common/serializers.py:435 msgid "Scheduled Tasks" msgstr "Tarefas Agendadas" -#: common/serializers.py:393 +#: common/serializers.py:441 msgid "Failed Tasks" msgstr "Tarefas com Falhas" -#: common/serializers.py:408 +#: common/serializers.py:456 msgid "Task ID" msgstr "ID da Tarefa" -#: common/serializers.py:408 +#: common/serializers.py:456 msgid "Unique task ID" msgstr "ID Único da Tarefa" -#: common/serializers.py:410 +#: common/serializers.py:458 msgid "Lock" msgstr "Bloquear" -#: common/serializers.py:410 +#: common/serializers.py:458 msgid "Lock time" msgstr "Tempo de bloqueio" -#: common/serializers.py:412 +#: common/serializers.py:460 msgid "Task name" msgstr "Nome da tarefa" -#: common/serializers.py:414 +#: common/serializers.py:462 msgid "Function" msgstr "Função" -#: common/serializers.py:414 +#: common/serializers.py:462 msgid "Function name" msgstr "Nome da função" -#: common/serializers.py:416 +#: common/serializers.py:464 msgid "Arguments" msgstr "Argumentos" -#: common/serializers.py:416 +#: common/serializers.py:464 msgid "Task arguments" msgstr "Argumentos da tarefa" -#: common/serializers.py:419 +#: common/serializers.py:467 msgid "Keyword Arguments" msgstr "Argumentos de Palavra-chave" -#: common/serializers.py:419 +#: common/serializers.py:467 msgid "Task keyword arguments" msgstr "Argumentos Palavra-chave da Tarefa" -#: common/serializers.py:529 +#: common/serializers.py:577 msgid "Filename" msgstr "Nome do arquivo" -#: common/serializers.py:536 report/api.py:100 report/serializers.py:53 +#: common/serializers.py:584 report/api.py:100 report/serializers.py:54 msgid "Model Type" msgstr "" -#: common/serializers.py:565 +#: common/serializers.py:612 msgid "User does not have permission to create or edit attachments for this model" msgstr "" @@ -4116,15 +4295,15 @@ msgstr "Coincidir campos" msgid "Match Items" msgstr "Coincidir Itens" -#: common/views.py:401 +#: common/views.py:397 msgid "Fields matching failed" msgstr "Os campos não correspondem" -#: common/views.py:464 +#: common/views.py:460 msgid "Parts imported" msgstr "Peças importadas" -#: common/views.py:494 order/templates/order/order_wizard/match_fields.html:27 +#: common/views.py:490 order/templates/order/order_wizard/match_fields.html:27 #: order/templates/order/order_wizard/match_parts.html:19 #: order/templates/order/order_wizard/po_upload.html:49 #: part/templates/part/import_wizard/match_fields.html:27 @@ -4155,429 +4334,429 @@ msgstr "" msgid "Supplier is Active" msgstr "" -#: company/models.py:100 company/models.py:371 +#: company/models.py:97 company/models.py:368 #: company/templates/company/company_base.html:8 #: company/templates/company/company_base.html:12 stock/api.py:812 -#: templates/InvenTree/search.html:178 templates/js/translated/company.js:496 +#: templates/InvenTree/search.html:178 templates/js/translated/company.js:497 msgid "Company" msgstr "Empresa" -#: company/models.py:101 company/views.py:51 +#: company/models.py:98 company/views.py:51 #: templates/js/translated/search.js:192 msgid "Companies" msgstr "Empresas" -#: company/models.py:117 +#: company/models.py:114 msgid "Company description" msgstr "Descrição da empresa" -#: company/models.py:118 +#: company/models.py:115 msgid "Description of the company" msgstr "Descrição da empresa" -#: company/models.py:123 company/templates/company/company_base.html:106 +#: company/models.py:120 company/templates/company/company_base.html:106 #: templates/InvenTree/settings/plugin_settings.html:54 -#: templates/js/translated/company.js:532 +#: templates/js/translated/company.js:533 msgid "Website" msgstr "Página Web" -#: company/models.py:123 +#: company/models.py:120 msgid "Company website URL" msgstr "URL do Site da empresa" -#: company/models.py:128 +#: company/models.py:125 msgid "Phone number" msgstr "Número de telefone" -#: company/models.py:130 +#: company/models.py:127 msgid "Contact phone number" msgstr "Número de telefone do contato" -#: company/models.py:137 +#: company/models.py:134 msgid "Contact email address" msgstr "Endereço de e-mail do contato" -#: company/models.py:142 company/models.py:275 -#: company/templates/company/company_base.html:145 order/models.py:342 -#: order/templates/order/order_base.html:208 -#: order/templates/order/return_order_base.html:177 -#: order/templates/order/sales_order_base.html:221 +#: company/models.py:139 company/models.py:272 +#: company/templates/company/company_base.html:145 order/models.py:349 +#: order/templates/order/order_base.html:217 +#: order/templates/order/return_order_base.html:178 +#: order/templates/order/sales_order_base.html:222 msgid "Contact" msgstr "Contato" -#: company/models.py:144 +#: company/models.py:141 msgid "Point of contact" msgstr "Ponto de contato" -#: company/models.py:150 +#: company/models.py:147 msgid "Link to external company information" msgstr "Link para informações externas da empresa" -#: company/models.py:163 +#: company/models.py:160 msgid "Is this company active?" msgstr "" -#: company/models.py:168 +#: company/models.py:165 msgid "Is customer" msgstr "" -#: company/models.py:169 +#: company/models.py:166 msgid "Do you sell items to this company?" msgstr "Você vende itens para esta empresa?" -#: company/models.py:174 +#: company/models.py:171 msgid "Is supplier" msgstr "" -#: company/models.py:175 +#: company/models.py:172 msgid "Do you purchase items from this company?" msgstr "Você compra itens desta empresa?" -#: company/models.py:180 +#: company/models.py:177 msgid "Is manufacturer" msgstr "" -#: company/models.py:181 +#: company/models.py:178 msgid "Does this company manufacture parts?" msgstr "Esta empresa fabrica peças?" -#: company/models.py:189 +#: company/models.py:186 msgid "Default currency used for this company" msgstr "Moeda padrão utilizada para esta empresa" -#: company/models.py:314 company/templates/company/company_base.html:124 -#: order/models.py:352 order/templates/order/order_base.html:215 -#: order/templates/order/return_order_base.html:184 -#: order/templates/order/sales_order_base.html:228 +#: company/models.py:311 company/templates/company/company_base.html:124 +#: order/models.py:359 order/templates/order/order_base.html:224 +#: order/templates/order/return_order_base.html:185 +#: order/templates/order/sales_order_base.html:229 msgid "Address" msgstr "Endereço" -#: company/models.py:315 company/templates/company/sidebar.html:35 +#: company/models.py:312 company/templates/company/sidebar.html:35 msgid "Addresses" msgstr "Endereços" -#: company/models.py:372 +#: company/models.py:369 msgid "Select company" msgstr "Selecione a Empresa" -#: company/models.py:377 +#: company/models.py:374 msgid "Address title" msgstr "Título do endereço" -#: company/models.py:378 +#: company/models.py:375 msgid "Title describing the address entry" msgstr "Título descrevendo a entrada de endereço" -#: company/models.py:384 +#: company/models.py:381 msgid "Primary address" msgstr "Endereço Principal" -#: company/models.py:385 +#: company/models.py:382 msgid "Set as primary address" msgstr "Definir como endereço principal" -#: company/models.py:390 templates/js/translated/company.js:914 -#: templates/js/translated/company.js:971 +#: company/models.py:387 templates/js/translated/company.js:915 +#: templates/js/translated/company.js:972 msgid "Line 1" msgstr "Linha 1" -#: company/models.py:391 +#: company/models.py:388 msgid "Address line 1" msgstr "Linha de endereço 1" -#: company/models.py:397 templates/js/translated/company.js:915 -#: templates/js/translated/company.js:977 +#: company/models.py:394 templates/js/translated/company.js:916 +#: templates/js/translated/company.js:978 msgid "Line 2" msgstr "Linha 2" -#: company/models.py:398 +#: company/models.py:395 msgid "Address line 2" msgstr "Linha de endereço 2" -#: company/models.py:404 company/models.py:405 -#: templates/js/translated/company.js:983 +#: company/models.py:401 company/models.py:402 +#: templates/js/translated/company.js:984 msgid "Postal code" msgstr "Código Postal" -#: company/models.py:411 +#: company/models.py:408 msgid "City/Region" msgstr "Cidade/Região" -#: company/models.py:412 +#: company/models.py:409 msgid "Postal code city/region" msgstr "Código Postal Cidade / Região" -#: company/models.py:418 +#: company/models.py:415 msgid "State/Province" msgstr "Estado/Provincia" -#: company/models.py:419 +#: company/models.py:416 msgid "State or province" msgstr "Estado ou Província" -#: company/models.py:425 templates/js/translated/company.js:1001 +#: company/models.py:422 templates/js/translated/company.js:1002 msgid "Country" msgstr "País" -#: company/models.py:426 +#: company/models.py:423 msgid "Address country" msgstr "País do endereço" -#: company/models.py:432 +#: company/models.py:429 msgid "Courier shipping notes" msgstr "Notas de envio da transportadora" -#: company/models.py:433 +#: company/models.py:430 msgid "Notes for shipping courier" msgstr "Notas para o envio da transportadora" -#: company/models.py:439 +#: company/models.py:436 msgid "Internal shipping notes" msgstr "Notas de envio interno" -#: company/models.py:440 +#: company/models.py:437 msgid "Shipping notes for internal use" msgstr "Notas de envio para uso interno" -#: company/models.py:447 +#: company/models.py:444 msgid "Link to address information (external)" msgstr "Link para as informações do endereço (externo)" -#: company/models.py:470 company/models.py:587 company/models.py:811 +#: company/models.py:467 company/models.py:584 company/models.py:808 #: company/templates/company/manufacturer_part.html:7 #: company/templates/company/manufacturer_part.html:24 -#: stock/templates/stock/item_base.html:217 +#: stock/templates/stock/item_base.html:214 msgid "Manufacturer Part" msgstr "Peça do Fabricante" -#: company/models.py:487 company/models.py:779 stock/models.py:787 -#: stock/serializers.py:445 stock/templates/stock/item_base.html:142 +#: company/models.py:484 company/models.py:776 stock/models.py:864 +#: stock/serializers.py:455 stock/templates/stock/item_base.html:139 #: templates/js/translated/bom.js:622 msgid "Base Part" msgstr "Peça base" -#: company/models.py:489 company/models.py:781 +#: company/models.py:486 company/models.py:778 msgid "Select part" msgstr "Selecionar peça" -#: company/models.py:498 company/templates/company/company_base.html:82 +#: company/models.py:495 company/templates/company/company_base.html:82 #: company/templates/company/manufacturer_part.html:90 -#: company/templates/company/supplier_part.html:145 part/serializers.py:554 -#: stock/templates/stock/item_base.html:207 -#: templates/js/translated/company.js:507 -#: templates/js/translated/company.js:1118 -#: templates/js/translated/company.js:1296 -#: templates/js/translated/company.js:1611 +#: company/templates/company/supplier_part.html:146 part/serializers.py:598 +#: stock/templates/stock/item_base.html:204 +#: templates/js/translated/company.js:508 +#: templates/js/translated/company.js:1119 +#: templates/js/translated/company.js:1297 +#: templates/js/translated/company.js:1612 #: templates/js/translated/table_filters.js:812 msgid "Manufacturer" msgstr "Fabricante" -#: company/models.py:499 +#: company/models.py:496 msgid "Select manufacturer" msgstr "Selecionar fabricante" -#: company/models.py:505 company/templates/company/manufacturer_part.html:101 -#: company/templates/company/supplier_part.html:153 order/serializers.py:556 -#: part/serializers.py:564 templates/js/translated/company.js:351 -#: templates/js/translated/company.js:1117 -#: templates/js/translated/company.js:1312 -#: templates/js/translated/company.js:1630 templates/js/translated/part.js:1807 -#: templates/js/translated/purchase_order.js:1921 -#: templates/js/translated/purchase_order.js:2123 +#: company/models.py:502 company/templates/company/manufacturer_part.html:101 +#: company/templates/company/supplier_part.html:154 order/serializers.py:641 +#: part/serializers.py:608 templates/js/translated/company.js:352 +#: templates/js/translated/company.js:1118 +#: templates/js/translated/company.js:1313 +#: templates/js/translated/company.js:1631 templates/js/translated/part.js:1807 +#: templates/js/translated/purchase_order.js:1905 +#: templates/js/translated/purchase_order.js:2107 msgid "MPN" msgstr "NPF" -#: company/models.py:513 +#: company/models.py:510 msgid "URL for external manufacturer part link" msgstr "URL do link externo da peça do fabricante" -#: company/models.py:522 +#: company/models.py:519 msgid "Manufacturer part description" msgstr "Descrição da peça do fabricante" -#: company/models.py:575 +#: company/models.py:572 msgid "Manufacturer Part Parameter" msgstr "" -#: company/models.py:594 +#: company/models.py:591 msgid "Parameter name" msgstr "Nome do parâmetro" -#: company/models.py:600 report/templates/report/inventree_test_report.html:104 -#: stock/models.py:2550 templates/js/translated/company.js:1166 -#: templates/js/translated/company.js:1419 templates/js/translated/part.js:1499 +#: company/models.py:597 report/templates/report/inventree_test_report.html:104 +#: stock/models.py:2666 templates/js/translated/company.js:1167 +#: templates/js/translated/company.js:1420 templates/js/translated/part.js:1499 #: templates/js/translated/stock.js:1607 msgid "Value" msgstr "Valor" -#: company/models.py:601 +#: company/models.py:598 msgid "Parameter value" msgstr "Valor do Parâmetro" -#: company/models.py:608 company/templates/company/supplier_part.html:168 -#: part/admin.py:57 part/models.py:1147 part/models.py:3771 -#: part/templates/part/part_base.html:293 -#: templates/js/translated/company.js:1425 templates/js/translated/part.js:1518 +#: company/models.py:605 company/templates/company/supplier_part.html:169 +#: part/admin.py:57 part/models.py:1208 part/models.py:3822 +#: part/templates/part/part_base.html:301 +#: templates/js/translated/company.js:1426 templates/js/translated/part.js:1518 #: templates/js/translated/part.js:1622 templates/js/translated/part.js:2376 msgid "Units" msgstr "Unidades" -#: company/models.py:609 +#: company/models.py:606 msgid "Parameter units" msgstr "Unidades do parâmetro" -#: company/models.py:662 company/templates/company/supplier_part.html:7 -#: company/templates/company/supplier_part.html:24 order/api.py:442 -#: order/serializers.py:491 stock/models.py:798 -#: stock/templates/stock/item_base.html:233 -#: templates/js/translated/build.js:1052 -#: templates/js/translated/company.js:1600 -#: templates/js/translated/purchase_order.js:752 -#: templates/js/translated/stock.js:2365 +#: company/models.py:659 company/templates/company/supplier_part.html:8 +#: company/templates/company/supplier_part.html:25 order/api.py:392 +#: order/serializers.py:576 stock/models.py:875 +#: stock/templates/stock/item_base.html:230 +#: templates/js/translated/build.js:1055 +#: templates/js/translated/company.js:1601 +#: templates/js/translated/purchase_order.js:735 +#: templates/js/translated/stock.js:2366 msgid "Supplier Part" msgstr "Fornecedor da Peça" -#: company/models.py:719 +#: company/models.py:716 msgid "Pack units must be compatible with the base part units" msgstr "Unidades de pacote devem ser compatíveis com as unidades de peça base" -#: company/models.py:726 +#: company/models.py:723 msgid "Pack units must be greater than zero" msgstr "Unidades de pacote deve ser maior do que zero" -#: company/models.py:740 +#: company/models.py:737 msgid "Linked manufacturer part must reference the same base part" msgstr "Parte do fabricante vinculado deve fazer referência à mesma peça base" -#: company/models.py:789 company/templates/company/company_base.html:87 -#: company/templates/company/supplier_part.html:129 order/models.py:491 -#: order/templates/order/order_base.html:141 part/bom.py:280 part/bom.py:318 -#: part/serializers.py:538 plugin/builtin/suppliers/digikey.py:25 +#: company/models.py:786 company/templates/company/company_base.html:87 +#: company/templates/company/supplier_part.html:130 order/models.py:503 +#: order/templates/order/order_base.html:150 part/bom.py:279 part/bom.py:314 +#: part/serializers.py:582 plugin/builtin/suppliers/digikey.py:25 #: plugin/builtin/suppliers/lcsc.py:26 plugin/builtin/suppliers/mouser.py:24 -#: plugin/builtin/suppliers/tme.py:26 stock/templates/stock/item_base.html:224 +#: plugin/builtin/suppliers/tme.py:26 stock/templates/stock/item_base.html:221 #: templates/email/overdue_purchase_order.html:16 -#: templates/js/translated/company.js:350 -#: templates/js/translated/company.js:511 -#: templates/js/translated/company.js:1584 templates/js/translated/part.js:1775 +#: templates/js/translated/company.js:351 +#: templates/js/translated/company.js:512 +#: templates/js/translated/company.js:1585 templates/js/translated/part.js:1775 #: templates/js/translated/pricing.js:498 -#: templates/js/translated/purchase_order.js:1759 +#: templates/js/translated/purchase_order.js:1743 #: templates/js/translated/table_filters.js:816 msgid "Supplier" msgstr "Fornecedor" -#: company/models.py:790 +#: company/models.py:787 msgid "Select supplier" msgstr "Selecione o fornecedor" -#: company/models.py:796 part/serializers.py:549 +#: company/models.py:793 part/serializers.py:593 msgid "Supplier stock keeping unit" msgstr "Unidade de reserva de estoque fornecedor" -#: company/models.py:802 +#: company/models.py:799 msgid "Is this supplier part active?" msgstr "" -#: company/models.py:812 +#: company/models.py:809 msgid "Select manufacturer part" msgstr "Selecionar peça do fabricante" -#: company/models.py:819 +#: company/models.py:816 msgid "URL for external supplier part link" msgstr "URL do link externo da peça do fabricante" -#: company/models.py:828 +#: company/models.py:825 msgid "Supplier part description" msgstr "Descrição da peça fornecedor" -#: company/models.py:835 company/templates/company/supplier_part.html:187 -#: order/serializers.py:698 part/admin.py:415 part/models.py:4288 +#: company/models.py:832 company/templates/company/supplier_part.html:188 +#: order/serializers.py:783 part/admin.py:415 part/models.py:4345 #: part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_bill_of_materials_report.html:140 #: report/templates/report/inventree_purchase_order_report.html:32 #: report/templates/report/inventree_return_order_report.html:27 #: report/templates/report/inventree_sales_order_report.html:32 #: report/templates/report/inventree_stock_location_report.html:105 -#: stock/serializers.py:776 templates/js/translated/purchase_order.js:1185 -#: templates/js/translated/purchase_order.js:1344 +#: stock/serializers.py:807 templates/js/translated/purchase_order.js:1168 +#: templates/js/translated/purchase_order.js:1327 msgid "Note" msgstr "Anotação" -#: company/models.py:844 part/models.py:2117 +#: company/models.py:841 part/models.py:2177 msgid "base cost" msgstr "preço base" -#: company/models.py:845 part/models.py:2118 +#: company/models.py:842 part/models.py:2178 msgid "Minimum charge (e.g. stocking fee)" msgstr "Taxa mínima (ex.: taxa de estoque)" -#: company/models.py:853 +#: company/models.py:850 msgid "Part packaging" msgstr "Embalagem de peças" -#: company/models.py:858 templates/js/translated/company.js:1651 +#: company/models.py:855 templates/js/translated/company.js:1652 #: templates/js/translated/part.js:1828 templates/js/translated/part.js:1884 -#: templates/js/translated/purchase_order.js:311 -#: templates/js/translated/purchase_order.js:841 -#: templates/js/translated/purchase_order.js:1103 -#: templates/js/translated/purchase_order.js:2154 -#: templates/js/translated/purchase_order.js:2171 +#: templates/js/translated/purchase_order.js:294 +#: templates/js/translated/purchase_order.js:824 +#: templates/js/translated/purchase_order.js:1086 +#: templates/js/translated/purchase_order.js:2138 +#: templates/js/translated/purchase_order.js:2155 msgid "Pack Quantity" msgstr "Quantidade de embalagens" -#: company/models.py:860 +#: company/models.py:857 msgid "Total quantity supplied in a single pack. Leave empty for single items." msgstr "Quantidade total fornecida em um único pacote. Deixe em branco para itens únicos." -#: company/models.py:879 part/models.py:2124 +#: company/models.py:876 part/models.py:2184 msgid "multiple" msgstr "múltiplo" -#: company/models.py:880 +#: company/models.py:877 msgid "Order multiple" msgstr "Pedir múltiplos" -#: company/models.py:892 +#: company/models.py:889 msgid "Quantity available from supplier" msgstr "Quantidade disponível do fornecedor" -#: company/models.py:898 +#: company/models.py:895 msgid "Availability Updated" msgstr "Disponibilidade Atualizada" -#: company/models.py:899 +#: company/models.py:896 msgid "Date of last update of availability data" msgstr "Data da última atualização da disponibilidade dos dados" -#: company/models.py:1027 +#: company/models.py:1024 msgid "Supplier Price Break" msgstr "" -#: company/serializers.py:174 +#: company/serializers.py:178 msgid "Default currency used for this supplier" msgstr "Moeda padrão utilizada para este fornecedor" -#: company/serializers.py:210 +#: company/serializers.py:214 msgid "Company Name" msgstr "" -#: company/serializers.py:393 part/admin.py:126 part/serializers.py:898 -#: part/templates/part/part_base.html:197 -#: templates/js/translated/company.js:1689 +#: company/serializers.py:397 part/admin.py:126 part/serializers.py:950 +#: part/templates/part/part_base.html:198 stock/serializers.py:474 +#: templates/js/translated/company.js:1690 #: templates/js/translated/table_filters.js:362 msgid "In Stock" msgstr "Em Estoque" #: company/templates/company/company_base.html:16 -#: part/templates/part/part_base.html:146 -#: templates/js/translated/company.js:1287 -#: templates/js/translated/company.js:1575 -#: templates/js/translated/model_renderers.js:313 +#: part/templates/part/part_base.html:147 +#: templates/js/translated/company.js:1288 +#: templates/js/translated/company.js:1576 +#: templates/js/translated/model_renderers.js:316 #: templates/js/translated/part.js:817 templates/js/translated/part.js:1225 msgid "Inactive" msgstr "Inativo" #: company/templates/company/company_base.html:27 -#: templates/js/translated/purchase_order.js:242 +#: templates/js/translated/purchase_order.js:224 msgid "Create Purchase Order" msgstr "Criar Pedido de compra" @@ -4590,7 +4769,7 @@ msgid "Edit company information" msgstr "Editar Informações da Empresa" #: company/templates/company/company_base.html:39 -#: templates/js/translated/company.js:445 +#: templates/js/translated/company.js:446 msgid "Edit Company" msgstr "Editar Empresa" @@ -4605,11 +4784,12 @@ msgstr "Excluir Empresa" #: company/templates/company/company_base.html:53 #: company/templates/company/manufacturer_part.html:51 -#: company/templates/company/supplier_part.html:83 +#: company/templates/company/supplier_part.html:84 #: part/templates/part/part_thumb.html:20 #: report/templates/report/inventree_build_order_report.html:98 #: report/templates/report/inventree_purchase_order_report.html:40 #: report/templates/report/inventree_sales_order_report.html:40 +#: report/templates/report/inventree_sales_order_shipment_report.html:37 #: report/templates/report/inventree_test_report.html:84 #: report/templates/report/inventree_test_report.html:162 msgid "Part image" @@ -4630,16 +4810,16 @@ msgstr "Baixar imagem do URL" msgid "Delete image" msgstr "Excluir imagem" -#: company/templates/company/company_base.html:92 order/models.py:990 -#: order/models.py:2147 order/templates/order/return_order_base.html:134 -#: order/templates/order/sales_order_base.html:151 stock/models.py:840 -#: stock/models.py:841 stock/serializers.py:1329 -#: stock/templates/stock/item_base.html:405 +#: company/templates/company/company_base.html:92 order/models.py:1017 +#: order/models.py:2186 order/templates/order/return_order_base.html:135 +#: order/templates/order/sales_order_base.html:152 stock/models.py:917 +#: stock/models.py:918 stock/serializers.py:1360 +#: stock/templates/stock/item_base.html:402 #: templates/email/overdue_sales_order.html:16 -#: templates/js/translated/company.js:503 +#: templates/js/translated/company.js:504 #: templates/js/translated/return_order.js:295 -#: templates/js/translated/sales_order.js:820 -#: templates/js/translated/stock.js:3043 +#: templates/js/translated/sales_order.js:779 +#: templates/js/translated/stock.js:3044 #: templates/js/translated/table_filters.js:820 msgid "Customer" msgstr "Cliente" @@ -4653,7 +4833,7 @@ msgid "Phone" msgstr "Telefone" #: company/templates/company/company_base.html:211 -#: part/templates/part/part_base.html:536 +#: part/templates/part/part_base.html:544 msgid "Remove Image" msgstr "Remover imagem" @@ -4662,19 +4842,19 @@ msgid "Remove associated image from this company" msgstr "Remover imagem associada desta empresa" #: company/templates/company/company_base.html:214 -#: part/templates/part/part_base.html:539 +#: part/templates/part/part_base.html:547 #: templates/InvenTree/settings/user.html:88 #: templates/InvenTree/settings/user_sso.html:43 msgid "Remove" msgstr "Remover" #: company/templates/company/company_base.html:243 -#: part/templates/part/part_base.html:568 +#: part/templates/part/part_base.html:576 msgid "Upload Image" msgstr "Enviar Imagem" #: company/templates/company/company_base.html:258 -#: part/templates/part/part_base.html:622 +#: part/templates/part/part_base.html:630 msgid "Download Image" msgstr "Baixar Imagem" @@ -4714,7 +4894,7 @@ msgstr "Estoque do Fornecedor" #: company/templates/company/detail.html:75 #: company/templates/company/sidebar.html:12 #: company/templates/company/supplier_part_sidebar.html:7 -#: order/templates/order/order_base.html:13 +#: order/templates/order/order_base.html:14 #: order/templates/order/purchase_orders.html:8 #: order/templates/order/purchase_orders.html:12 #: part/templates/part/detail.html:122 part/templates/part/part_sidebar.html:35 @@ -4737,7 +4917,7 @@ msgstr "Novo Pedido de Compra" #: company/templates/company/detail.html:101 #: company/templates/company/sidebar.html:21 -#: order/templates/order/sales_order_base.html:13 +#: order/templates/order/sales_order_base.html:14 #: order/templates/order/sales_orders.html:8 #: order/templates/order/sales_orders.html:15 #: part/templates/part/detail.html:143 part/templates/part/part_sidebar.html:39 @@ -4764,7 +4944,7 @@ msgstr "Estoque Atribuído" #: company/templates/company/detail.html:142 #: company/templates/company/sidebar.html:29 -#: order/templates/order/return_order_base.html:13 +#: order/templates/order/return_order_base.html:14 #: order/templates/order/return_orders.html:8 #: order/templates/order/return_orders.html:15 #: templates/InvenTree/settings/sidebar.html:61 @@ -4811,24 +4991,24 @@ msgid "Manufacturers" msgstr "Fabricantes" #: company/templates/company/manufacturer_part.html:35 -#: company/templates/company/supplier_part.html:227 -#: part/templates/part/detail.html:125 part/templates/part/part_base.html:83 +#: company/templates/company/supplier_part.html:228 +#: part/templates/part/detail.html:125 part/templates/part/part_base.html:84 msgid "Order part" msgstr "Pedir peça" #: company/templates/company/manufacturer_part.html:39 -#: templates/js/translated/company.js:1343 +#: templates/js/translated/company.js:1344 msgid "Edit manufacturer part" msgstr "Editar peça do fabricante" #: company/templates/company/manufacturer_part.html:43 -#: templates/js/translated/company.js:1344 +#: templates/js/translated/company.js:1345 msgid "Delete manufacturer part" msgstr "Excluir peça do fabricante" #: company/templates/company/manufacturer_part.html:65 -#: company/templates/company/supplier_part.html:97 order/api.py:448 -#: order/serializers.py:564 +#: company/templates/company/supplier_part.html:98 order/api.py:411 +#: order/serializers.py:649 msgid "Internal Part" msgstr "Peça Interna" @@ -4837,8 +5017,8 @@ msgid "No manufacturer information available" msgstr "Nenhuma informação do fabricante disponível" #: company/templates/company/manufacturer_part.html:119 -#: company/templates/company/supplier_part.html:15 company/views.py:31 -#: part/admin.py:122 part/serializers.py:904 +#: company/templates/company/supplier_part.html:16 company/views.py:31 +#: part/admin.py:122 part/serializers.py:956 #: part/templates/part/part_sidebar.html:33 templates/InvenTree/search.html:190 #: templates/navbar.html:48 msgid "Suppliers" @@ -4887,112 +5067,113 @@ msgstr "Itens de Estoque atribuídos" msgid "Contacts" msgstr "Contatos" -#: company/templates/company/supplier_part.html:50 -#: templates/js/translated/company.js:1526 +#: company/templates/company/supplier_part.html:51 +#: templates/js/translated/company.js:1527 msgid "Supplier part actions" msgstr "Ações de peças do fornecedor" -#: company/templates/company/supplier_part.html:55 #: company/templates/company/supplier_part.html:56 -#: company/templates/company/supplier_part.html:228 +#: company/templates/company/supplier_part.html:57 +#: company/templates/company/supplier_part.html:229 #: part/templates/part/detail.html:126 msgid "Order Part" msgstr "Pedir Peça" -#: company/templates/company/supplier_part.html:60 #: company/templates/company/supplier_part.html:61 +#: company/templates/company/supplier_part.html:62 msgid "Update Availability" msgstr "Atualizar disponibilidade" -#: company/templates/company/supplier_part.html:63 #: company/templates/company/supplier_part.html:64 -#: templates/js/translated/company.js:294 +#: company/templates/company/supplier_part.html:65 +#: templates/js/translated/company.js:295 msgid "Edit Supplier Part" msgstr "Editar Fornecedor da Peça" -#: company/templates/company/supplier_part.html:68 #: company/templates/company/supplier_part.html:69 -#: templates/js/translated/company.js:269 +#: company/templates/company/supplier_part.html:70 +#: templates/js/translated/company.js:270 msgid "Duplicate Supplier Part" msgstr "Duplicar Peça do Fornecedor" -#: company/templates/company/supplier_part.html:73 +#: company/templates/company/supplier_part.html:74 msgid "Delete Supplier Part" msgstr "Excluir Fornecedor da Peça" -#: company/templates/company/supplier_part.html:74 +#: company/templates/company/supplier_part.html:75 msgid "Delete Supplier Part" msgstr "Excluir Fornecedor da Peça" -#: company/templates/company/supplier_part.html:133 +#: company/templates/company/supplier_part.html:134 +#: order/templates/order/order_base.html:155 msgid "No supplier information available" msgstr "Nenhuma informação do fornecedor está disponível" -#: company/templates/company/supplier_part.html:139 order/serializers.py:553 -#: part/bom.py:287 part/bom.py:319 part/serializers.py:548 -#: templates/js/translated/company.js:349 templates/js/translated/part.js:1793 +#: company/templates/company/supplier_part.html:140 order/serializers.py:638 +#: part/bom.py:286 part/bom.py:315 part/serializers.py:592 +#: templates/js/translated/company.js:350 templates/js/translated/part.js:1793 #: templates/js/translated/pricing.js:510 -#: templates/js/translated/purchase_order.js:1920 -#: templates/js/translated/purchase_order.js:2098 +#: templates/js/translated/purchase_order.js:1904 +#: templates/js/translated/purchase_order.js:2082 msgid "SKU" msgstr "Código (SKU)" -#: company/templates/company/supplier_part.html:206 +#: company/templates/company/supplier_part.html:207 msgid "Supplier Part Stock" msgstr "Estoque de Peça do Fornecedor" -#: company/templates/company/supplier_part.html:209 -#: part/templates/part/detail.html:24 stock/templates/stock/location.html:204 +#: company/templates/company/supplier_part.html:210 +#: part/templates/part/detail.html:24 stock/templates/stock/location.html:205 msgid "Create new stock item" msgstr "Criar novo item de estoque" -#: company/templates/company/supplier_part.html:210 -#: part/templates/part/detail.html:25 stock/templates/stock/location.html:205 +#: company/templates/company/supplier_part.html:211 +#: part/templates/part/detail.html:25 stock/templates/stock/location.html:206 #: templates/js/translated/stock.js:543 msgid "New Stock Item" msgstr "Novo item de estoque" -#: company/templates/company/supplier_part.html:223 +#: company/templates/company/supplier_part.html:224 msgid "Supplier Part Orders" msgstr "Pedidos de peças do fornecedor" -#: company/templates/company/supplier_part.html:246 +#: company/templates/company/supplier_part.html:247 msgid "Pricing Information" msgstr "Informações de Preço" -#: company/templates/company/supplier_part.html:251 -#: templates/js/translated/company.js:398 +#: company/templates/company/supplier_part.html:252 +#: templates/js/translated/company.js:399 #: templates/js/translated/pricing.js:684 msgid "Add Price Break" msgstr "Adicionar parcela de preço" -#: company/templates/company/supplier_part.html:270 +#: company/templates/company/supplier_part.html:271 msgid "Supplier Part Notes" msgstr "" -#: company/templates/company/supplier_part.html:305 +#: company/templates/company/supplier_part.html:306 msgid "Supplier Part QR Code" msgstr "QR Code da Peça do Fornecedor" -#: company/templates/company/supplier_part.html:316 +#: company/templates/company/supplier_part.html:317 msgid "Link Barcode to Supplier Part" msgstr "Vincular Código de Barras à Peça do Fornecedor" -#: company/templates/company/supplier_part.html:388 +#: company/templates/company/supplier_part.html:389 msgid "Update Part Availability" msgstr "Atualizar Disponibilidade de Peças" #: company/templates/company/supplier_part_sidebar.html:5 -#: part/serializers.py:902 part/stocktake.py:223 +#: part/serializers.py:954 part/stocktake.py:223 #: part/templates/part/category.html:180 #: part/templates/part/category_sidebar.html:17 stock/admin.py:68 -#: stock/serializers.py:1014 stock/serializers.py:1192 -#: stock/templates/stock/location.html:167 -#: stock/templates/stock/location.html:188 -#: stock/templates/stock/location.html:200 +#: stock/serializers.py:1045 stock/serializers.py:1223 +#: stock/templates/stock/location.html:168 +#: stock/templates/stock/location.html:189 +#: stock/templates/stock/location.html:201 #: stock/templates/stock/location_sidebar.html:7 #: templates/InvenTree/search.html:155 templates/js/translated/part.js:1067 -#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2850 +#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2851 #: users/models.py:206 msgid "Stock Items" msgstr "Itens de Estoque" @@ -5022,99 +5203,99 @@ msgstr "Novo Cliente" msgid "New Company" msgstr "Nova Empresa" -#: generic/states/tests.py:18 order/status_codes.py:13 +#: generic/states/fields.py:118 +msgid "Custom status key" +msgstr "" + +#: generic/states/fields.py:119 +msgid "Additional status information for this item" +msgstr "" + +#: generic/states/tests.py:22 order/status_codes.py:13 msgid "Placed" msgstr "Colocado" -#: importer/mixins.py:263 +#: importer/mixins.py:261 msgid "Invalid export format" msgstr "" -#: importer/models.py:59 -msgid "Timestamp" -msgstr "" - -#: importer/models.py:64 +#: importer/models.py:65 msgid "Data file to import" msgstr "" -#: importer/models.py:73 templates/js/translated/tables.js:558 +#: importer/models.py:74 templates/js/translated/tables.js:558 msgid "Columns" msgstr "Colunas" -#: importer/models.py:84 +#: importer/models.py:85 msgid "Import status" msgstr "" -#: importer/models.py:94 +#: importer/models.py:95 msgid "Field Defaults" msgstr "" -#: importer/models.py:101 +#: importer/models.py:102 msgid "Field Overrides" msgstr "" -#: importer/models.py:108 +#: importer/models.py:109 msgid "Field Filters" msgstr "" -#: importer/models.py:230 +#: importer/models.py:239 msgid "Some required fields have not been mapped" msgstr "" -#: importer/models.py:387 +#: importer/models.py:396 msgid "Column is already mapped to a database field" msgstr "" -#: importer/models.py:392 +#: importer/models.py:401 msgid "Field is already mapped to a data column" msgstr "" -#: importer/models.py:401 +#: importer/models.py:410 msgid "Column mapping must be linked to a valid import session" msgstr "" -#: importer/models.py:406 +#: importer/models.py:415 msgid "Column does not exist in the data file" msgstr "" -#: importer/models.py:413 +#: importer/models.py:422 msgid "Field does not exist in the target model" msgstr "" -#: importer/models.py:417 +#: importer/models.py:426 msgid "Selected field is read-only" msgstr "" -#: importer/models.py:422 importer/models.py:493 +#: importer/models.py:431 importer/models.py:502 msgid "Import Session" msgstr "" -#: importer/models.py:426 +#: importer/models.py:435 msgid "Field" msgstr "" -#: importer/models.py:428 +#: importer/models.py:437 msgid "Column" msgstr "" -#: importer/models.py:497 +#: importer/models.py:506 msgid "Row Index" msgstr "" -#: importer/models.py:500 +#: importer/models.py:509 msgid "Original row data" msgstr "" -#: importer/models.py:503 part/models.py:3951 -msgid "Data" -msgstr "Dados" - -#: importer/models.py:505 machine/models.py:110 +#: importer/models.py:514 machine/models.py:110 msgid "Errors" msgstr "" -#: importer/models.py:507 part/api.py:873 +#: importer/models.py:516 part/api.py:857 msgid "Valid" msgstr "Válido" @@ -5166,19 +5347,19 @@ msgstr "" msgid "Row has already been completed" msgstr "" -#: importer/status_codes.py:11 +#: importer/status_codes.py:13 msgid "Initializing" msgstr "" -#: importer/status_codes.py:12 +#: importer/status_codes.py:18 msgid "Mapping Columns" msgstr "" -#: importer/status_codes.py:13 +#: importer/status_codes.py:21 msgid "Importing Data" msgstr "" -#: importer/status_codes.py:16 +#: importer/status_codes.py:24 msgid "Processing Data" msgstr "" @@ -5202,52 +5383,52 @@ msgstr "" msgid "Value must be a valid dictionary object" msgstr "" -#: machine/machine_types/label_printer.py:215 +#: machine/machine_types/label_printer.py:216 msgid "Copies" msgstr "" -#: machine/machine_types/label_printer.py:216 +#: machine/machine_types/label_printer.py:217 msgid "Number of copies to print for each label" msgstr "" -#: machine/machine_types/label_printer.py:231 +#: machine/machine_types/label_printer.py:232 msgid "Connected" msgstr "" -#: machine/machine_types/label_printer.py:232 order/api.py:1410 -#: templates/js/translated/sales_order.js:1078 +#: machine/machine_types/label_printer.py:233 order/api.py:1532 +#: templates/js/translated/sales_order.js:1044 msgid "Unknown" msgstr "Desconhecido" -#: machine/machine_types/label_printer.py:233 +#: machine/machine_types/label_printer.py:234 msgid "Printing" msgstr "" -#: machine/machine_types/label_printer.py:234 +#: machine/machine_types/label_printer.py:235 msgid "No media" msgstr "" -#: machine/machine_types/label_printer.py:235 +#: machine/machine_types/label_printer.py:236 msgid "Paper jam" msgstr "" -#: machine/machine_types/label_printer.py:236 +#: machine/machine_types/label_printer.py:237 msgid "Disconnected" msgstr "" -#: machine/machine_types/label_printer.py:243 +#: machine/machine_types/label_printer.py:244 msgid "Label Printer" msgstr "" -#: machine/machine_types/label_printer.py:244 +#: machine/machine_types/label_printer.py:245 msgid "Directly print labels for various items." msgstr "" -#: machine/machine_types/label_printer.py:250 +#: machine/machine_types/label_printer.py:251 msgid "Printer Location" msgstr "" -#: machine/machine_types/label_printer.py:251 +#: machine/machine_types/label_printer.py:252 msgid "Scope the printer to a specific location" msgstr "" @@ -5307,79 +5488,75 @@ msgstr "" #: report/templates/report/inventree_purchase_order_report.html:31 #: report/templates/report/inventree_sales_order_report.html:31 #: templates/js/translated/order.js:352 -#: templates/js/translated/purchase_order.js:2195 -#: templates/js/translated/sales_order.js:1883 +#: templates/js/translated/purchase_order.js:2179 +#: templates/js/translated/sales_order.js:1864 msgid "Total Price" msgstr "Preço Total" -#: order/api.py:80 order/api.py:151 order/serializers.py:93 -#: order/templates/order/order_base.html:123 -#: order/templates/order/return_order_base.html:116 -#: order/templates/order/sales_order_base.html:125 +#: order/api.py:78 order/api.py:149 order/serializers.py:124 +#: order/templates/order/order_base.html:124 +#: order/templates/order/return_order_base.html:117 +#: order/templates/order/sales_order_base.html:126 msgid "Order Status" msgstr "Situação do pedido" -#: order/api.py:88 order/templates/order/order_base.html:111 -#: order/templates/order/return_order_base.html:104 -#: order/templates/order/sales_order_base.html:113 +#: order/api.py:86 order/templates/order/order_base.html:112 +#: order/templates/order/return_order_base.html:105 +#: order/templates/order/sales_order_base.html:114 msgid "Order Reference" msgstr "Referência do Pedido" -#: order/api.py:116 templates/js/translated/table_filters.js:93 +#: order/api.py:114 order/api.py:1022 +#: templates/js/translated/table_filters.js:93 #: templates/js/translated/table_filters.js:625 #: templates/js/translated/table_filters.js:651 #: templates/js/translated/table_filters.js:666 msgid "Outstanding" msgstr "" -#: order/api.py:132 +#: order/api.py:130 msgid "Has Project Code" msgstr "" -#: order/api.py:155 templates/js/translated/table_filters.js:201 +#: order/api.py:153 templates/js/translated/table_filters.js:201 #: templates/js/translated/table_filters.js:791 msgid "Has Pricing" msgstr "" -#: order/api.py:230 -msgid "No matching purchase order found" -msgstr "Nenhum pedido de compra correspondente encontrado" - -#: order/api.py:425 order/api.py:763 order/models.py:1484 order/models.py:1598 -#: order/models.py:1649 order/models.py:1764 order/models.py:1923 -#: order/models.py:2383 order/models.py:2439 -#: templates/js/translated/sales_order.js:1524 +#: order/api.py:375 order/api.py:771 order/api.py:986 order/models.py:1500 +#: order/models.py:1614 order/models.py:1665 order/models.py:1793 +#: order/models.py:1956 order/models.py:2422 order/models.py:2478 +#: templates/js/translated/sales_order.js:1490 msgid "Order" msgstr "Pedido" -#: order/api.py:429 order/api.py:784 +#: order/api.py:379 order/api.py:809 msgid "Order Complete" msgstr "" -#: order/api.py:452 +#: order/api.py:430 msgid "Order Pending" msgstr "" -#: order/api.py:1404 order/models.py:379 order/models.py:1485 -#: order/models.py:1599 order/templates/order/order_base.html:9 -#: order/templates/order/order_base.html:18 +#: order/api.py:1526 order/models.py:386 order/models.py:1501 +#: order/models.py:1615 order/templates/order/order_base.html:10 +#: order/templates/order/order_base.html:19 #: report/templates/report/inventree_purchase_order_report.html:14 -#: stock/serializers.py:120 stock/templates/stock/item_base.html:176 +#: stock/serializers.py:121 stock/templates/stock/item_base.html:173 #: templates/email/overdue_purchase_order.html:15 #: templates/js/translated/part.js:1752 templates/js/translated/pricing.js:804 -#: templates/js/translated/purchase_order.js:168 -#: templates/js/translated/purchase_order.js:753 -#: templates/js/translated/purchase_order.js:1743 -#: templates/js/translated/stock.js:2345 templates/js/translated/stock.js:2991 +#: templates/js/translated/purchase_order.js:736 +#: templates/js/translated/purchase_order.js:1727 +#: templates/js/translated/stock.js:2346 templates/js/translated/stock.js:2992 msgid "Purchase Order" msgstr "Pedido de Compra" -#: order/api.py:1408 order/models.py:2091 order/models.py:2384 -#: order/models.py:2440 order/templates/order/return_order_base.html:9 -#: order/templates/order/return_order_base.html:28 +#: order/api.py:1530 order/models.py:2124 order/models.py:2423 +#: order/models.py:2479 order/templates/order/return_order_base.html:10 +#: order/templates/order/return_order_base.html:29 #: report/templates/report/inventree_return_order_report.html:13 #: templates/js/translated/return_order.js:280 -#: templates/js/translated/stock.js:3025 +#: templates/js/translated/stock.js:3026 msgid "Return Order" msgstr "Devolver pedido" @@ -5387,751 +5564,782 @@ msgstr "Devolver pedido" msgid "Total price for this order" msgstr "Preço total deste pedido" -#: order/models.py:95 order/serializers.py:71 +#: order/models.py:95 order/serializers.py:73 msgid "Order Currency" msgstr "Moeda do pedido" -#: order/models.py:98 order/serializers.py:72 +#: order/models.py:98 order/serializers.py:74 msgid "Currency for this order (leave blank to use company default)" msgstr "Moeda para este pedido (deixe em branco para usar o padrão da empresa)" -#: order/models.py:246 +#: order/models.py:243 msgid "Contact does not match selected company" msgstr "O contato não corresponde à empresa selecionada" -#: order/models.py:289 +#: order/models.py:296 msgid "Order description (optional)" msgstr "Descrição do pedido (opcional)" -#: order/models.py:298 +#: order/models.py:305 msgid "Select project code for this order" msgstr "Selecione o código do projeto para este pedido" -#: order/models.py:302 order/models.py:1385 order/models.py:1817 +#: order/models.py:309 order/models.py:1402 order/models.py:1846 msgid "Link to external page" msgstr "Link para página externa" -#: order/models.py:310 +#: order/models.py:317 msgid "Expected date for order delivery. Order will be overdue after this date." msgstr "Data esperada para entrega do pedido. O Pedido estará atrasado após esta data." -#: order/models.py:324 +#: order/models.py:331 msgid "Created By" msgstr "Criado por" -#: order/models.py:332 +#: order/models.py:339 msgid "User or group responsible for this order" msgstr "Usuário ou grupo responsável para este pedido" -#: order/models.py:343 +#: order/models.py:350 msgid "Point of contact for this order" msgstr "Ponto de contato para este pedido" -#: order/models.py:353 +#: order/models.py:360 msgid "Company address for this order" msgstr "Endereço da empresa para este pedido" -#: order/models.py:468 order/models.py:979 +#: order/models.py:480 order/models.py:1006 msgid "Order reference" msgstr "Referência do pedido" -#: order/models.py:477 +#: order/models.py:489 msgid "Purchase order status" msgstr "Situação do pedido de compra" -#: order/models.py:492 +#: order/models.py:504 msgid "Company from which the items are being ordered" msgstr "Empresa da qual os itens estão sendo encomendados" -#: order/models.py:503 order/templates/order/order_base.html:153 -#: templates/js/translated/purchase_order.js:1772 +#: order/models.py:515 order/templates/order/order_base.html:162 +#: templates/js/translated/purchase_order.js:1756 msgid "Supplier Reference" msgstr "Referencia do fornecedor" -#: order/models.py:504 +#: order/models.py:516 msgid "Supplier order reference code" msgstr "Código de referência do pedido fornecedor" -#: order/models.py:513 +#: order/models.py:525 msgid "received by" msgstr "recebido por" -#: order/models.py:519 order/models.py:2173 +#: order/models.py:531 order/models.py:2212 msgid "Issue Date" msgstr "Data de emissão" -#: order/models.py:520 order/models.py:2174 +#: order/models.py:532 order/models.py:2213 msgid "Date order was issued" msgstr "Dia que o pedido foi feito" -#: order/models.py:527 order/models.py:2181 +#: order/models.py:539 order/models.py:2220 msgid "Date order was completed" msgstr "Dia que o pedido foi concluído" -#: order/models.py:571 +#: order/models.py:549 order/models.py:1552 +msgid "Destination for received items" +msgstr "" + +#: order/models.py:593 msgid "Part supplier must match PO supplier" msgstr "Fornecedor de peça deve corresponder a fornecedor da OC" -#: order/models.py:806 +#: order/models.py:828 msgid "Quantity must be a positive number" msgstr "Quantidade deve ser um número positivo" -#: order/models.py:991 +#: order/models.py:1018 msgid "Company to which the items are being sold" msgstr "Empresa para qual os itens foi vendidos" -#: order/models.py:1003 +#: order/models.py:1030 msgid "Sales order status" msgstr "" -#: order/models.py:1014 order/models.py:2166 +#: order/models.py:1041 order/models.py:2205 msgid "Customer Reference " msgstr "Referência do Cliente " -#: order/models.py:1015 order/models.py:2167 +#: order/models.py:1042 order/models.py:2206 msgid "Customer order reference code" msgstr "Código de Referência do pedido do cliente" -#: order/models.py:1019 order/models.py:1771 -#: templates/js/translated/sales_order.js:879 -#: templates/js/translated/sales_order.js:1060 +#: order/models.py:1046 order/models.py:1800 +#: templates/js/translated/sales_order.js:838 +#: templates/js/translated/sales_order.js:1026 msgid "Shipment Date" msgstr "Data de Envio" -#: order/models.py:1028 +#: order/models.py:1055 msgid "shipped by" msgstr "enviado por" -#: order/models.py:1077 +#: order/models.py:1094 msgid "Order is already complete" msgstr "" -#: order/models.py:1080 +#: order/models.py:1097 msgid "Order is already cancelled" msgstr "" -#: order/models.py:1084 +#: order/models.py:1101 msgid "Only an open order can be marked as complete" msgstr "Apenas um pedido aberto pode ser marcado como completo" -#: order/models.py:1088 +#: order/models.py:1105 msgid "Order cannot be completed as there are incomplete shipments" msgstr "Pedido não pode ser concluído, pois, há envios incompletos" -#: order/models.py:1093 +#: order/models.py:1110 msgid "Order cannot be completed as there are incomplete line items" msgstr "Pedido não pode ser concluído, pois, há itens na linha incompletos" -#: order/models.py:1357 +#: order/models.py:1374 msgid "Item quantity" msgstr "Quantidade do item" -#: order/models.py:1374 +#: order/models.py:1391 msgid "Line item reference" msgstr "Referência do Item em Linha" -#: order/models.py:1381 +#: order/models.py:1398 msgid "Line item notes" msgstr "Observações do Item de Linha" -#: order/models.py:1393 +#: order/models.py:1410 msgid "Target date for this line item (leave blank to use the target date from the order)" msgstr "Data alvo para este item de linha (deixe em branco para usar a data alvo do pedido)" -#: order/models.py:1414 +#: order/models.py:1431 msgid "Line item description (optional)" msgstr "Descrição item de linha (opcional)" -#: order/models.py:1420 -msgid "Context" -msgstr "Contexto" - -#: order/models.py:1421 +#: order/models.py:1438 msgid "Additional context for this line" msgstr "Contexto adicional para esta linha" -#: order/models.py:1431 +#: order/models.py:1448 msgid "Unit price" msgstr "Preço Unitário" -#: order/models.py:1445 +#: order/models.py:1462 msgid "Purchase Order Line Item" msgstr "" -#: order/models.py:1469 +#: order/models.py:1486 msgid "Supplier part must match supplier" msgstr "A peça do fornecedor deve corresponder ao fornecedor" -#: order/models.py:1476 -msgid "deleted" -msgstr "excluído" - -#: order/models.py:1504 +#: order/models.py:1520 msgid "Supplier part" msgstr "Fornecedor da Peça" -#: order/models.py:1511 order/templates/order/order_base.html:201 +#: order/models.py:1527 order/templates/order/order_base.html:210 #: templates/js/translated/part.js:1876 templates/js/translated/part.js:1908 -#: templates/js/translated/purchase_order.js:1369 -#: templates/js/translated/purchase_order.js:2239 +#: templates/js/translated/purchase_order.js:1352 +#: templates/js/translated/purchase_order.js:2223 #: templates/js/translated/return_order.js:762 #: templates/js/translated/table_filters.js:119 #: templates/js/translated/table_filters.js:605 msgid "Received" msgstr "Recebido" -#: order/models.py:1512 +#: order/models.py:1528 msgid "Number of items received" msgstr "Número de itens recebidos" -#: order/models.py:1520 stock/models.py:959 stock/serializers.py:610 -#: stock/templates/stock/item_base.html:183 -#: templates/js/translated/stock.js:2396 +#: order/models.py:1536 stock/models.py:1036 stock/serializers.py:637 +#: stock/templates/stock/item_base.html:180 +#: templates/js/translated/stock.js:2397 msgid "Purchase Price" msgstr "Preço de Compra" -#: order/models.py:1521 +#: order/models.py:1537 msgid "Unit purchase price" msgstr "Preço unitário de compra" -#: order/models.py:1536 -msgid "Where does the Purchaser want this item to be stored?" -msgstr "Onde o Comprador quer que este item seja armazenado?" - -#: order/models.py:1587 +#: order/models.py:1603 msgid "Purchase Order Extra Line" msgstr "" -#: order/models.py:1616 +#: order/models.py:1632 msgid "Sales Order Line Item" msgstr "" -#: order/models.py:1637 +#: order/models.py:1653 msgid "Virtual part cannot be assigned to a sales order" msgstr "Peça virtual não pode ser atribuída a um pedido de venda" -#: order/models.py:1642 +#: order/models.py:1658 msgid "Only salable parts can be assigned to a sales order" msgstr "Apenas peças vendáveis podem ser atribuídas a um pedido de venda" -#: order/models.py:1668 part/templates/part/part_pricing.html:107 -#: part/templates/part/prices.html:139 templates/js/translated/pricing.js:957 +#: order/models.py:1684 part/templates/part/part_pricing.html:107 +#: part/templates/part/prices.html:139 templates/js/translated/pricing.js:955 msgid "Sale Price" msgstr "Preço de Venda" -#: order/models.py:1669 +#: order/models.py:1685 msgid "Unit sale price" msgstr "Preço de venda unitário" -#: order/models.py:1678 order/status_codes.py:48 -#: templates/js/translated/sales_order.js:1559 -#: templates/js/translated/sales_order.js:1680 -#: templates/js/translated/sales_order.js:1993 +#: order/models.py:1694 order/status_codes.py:50 +#: templates/js/translated/sales_order.js:1525 +#: templates/js/translated/sales_order.js:1661 +#: templates/js/translated/sales_order.js:1974 msgid "Shipped" msgstr "Enviado" -#: order/models.py:1679 +#: order/models.py:1695 msgid "Shipped quantity" msgstr "Quantidade enviada" -#: order/models.py:1751 +#: order/models.py:1769 msgid "Sales Order Shipment" msgstr "" -#: order/models.py:1772 +#: order/models.py:1801 msgid "Date of shipment" msgstr "Data do envio" -#: order/models.py:1778 templates/js/translated/sales_order.js:1072 +#: order/models.py:1807 templates/js/translated/sales_order.js:1038 msgid "Delivery Date" msgstr "Data de Entrega" -#: order/models.py:1779 +#: order/models.py:1808 msgid "Date of delivery of shipment" msgstr "Data da entrega do envio" -#: order/models.py:1787 +#: order/models.py:1816 msgid "Checked By" msgstr "Verificado por" -#: order/models.py:1788 +#: order/models.py:1817 msgid "User who checked this shipment" msgstr "Usuário que verificou esta remessa" -#: order/models.py:1795 order/models.py:2018 order/serializers.py:1475 -#: order/serializers.py:1585 templates/js/translated/model_renderers.js:455 +#: order/models.py:1824 order/models.py:2051 order/serializers.py:1601 +#: order/serializers.py:1725 +#: report/templates/report/inventree_sales_order_shipment_report.html:14 +#: templates/js/translated/model_renderers.js:458 +#: templates/js/translated/sales_order.js:1615 msgid "Shipment" msgstr "Remessa" -#: order/models.py:1796 +#: order/models.py:1825 msgid "Shipment number" msgstr "Número do Envio" -#: order/models.py:1804 +#: order/models.py:1833 msgid "Tracking Number" msgstr "Número de Rastreamento" -#: order/models.py:1805 +#: order/models.py:1834 msgid "Shipment tracking information" msgstr "Informação de rastreamento da remessa" -#: order/models.py:1812 +#: order/models.py:1841 msgid "Invoice Number" msgstr "Número da Fatura" -#: order/models.py:1813 +#: order/models.py:1842 msgid "Reference number for associated invoice" msgstr "Número de referência para fatura associada" -#: order/models.py:1833 +#: order/models.py:1862 msgid "Shipment has already been sent" msgstr "O pedido já foi enviado" -#: order/models.py:1836 +#: order/models.py:1865 msgid "Shipment has no allocated stock items" msgstr "Remessa não foi alocada nos itens de estoque" -#: order/models.py:1912 +#: order/models.py:1945 msgid "Sales Order Extra Line" msgstr "" -#: order/models.py:1941 +#: order/models.py:1974 msgid "Sales Order Allocation" msgstr "" -#: order/models.py:1964 order/models.py:1966 +#: order/models.py:1997 order/models.py:1999 msgid "Stock item has not been assigned" msgstr "O item do estoque não foi atribuído" -#: order/models.py:1973 +#: order/models.py:2006 msgid "Cannot allocate stock item to a line with a different part" msgstr "Não é possível alocar o item de estoque para uma linha de uma peça diferente" -#: order/models.py:1976 +#: order/models.py:2009 msgid "Cannot allocate stock to a line without a part" msgstr "Não é possível alocar uma linha sem uma peça" -#: order/models.py:1979 +#: order/models.py:2012 msgid "Allocation quantity cannot exceed stock quantity" msgstr "A quantidade de alocação não pode exceder a quantidade em estoque" -#: order/models.py:1998 order/serializers.py:1345 +#: order/models.py:2031 order/serializers.py:1471 msgid "Quantity must be 1 for serialized stock item" msgstr "Quantidade deve ser 1 para item de estoque serializado" -#: order/models.py:2001 +#: order/models.py:2034 msgid "Sales order does not match shipment" msgstr "Pedidos de venda não coincidem com a remessa" -#: order/models.py:2002 plugin/base/barcodes/api.py:524 +#: order/models.py:2035 plugin/base/barcodes/api.py:629 msgid "Shipment does not match sales order" msgstr "Remessa não coincide com pedido de venda" -#: order/models.py:2010 +#: order/models.py:2043 msgid "Line" msgstr "Linha" -#: order/models.py:2019 +#: order/models.py:2052 msgid "Sales order shipment reference" msgstr "Referência de remessa do pedido de venda" -#: order/models.py:2032 order/models.py:2391 +#: order/models.py:2065 order/models.py:2430 #: templates/js/translated/return_order.js:720 msgid "Item" msgstr "" -#: order/models.py:2033 +#: order/models.py:2066 msgid "Select stock item to allocate" msgstr "Selecione o item de estoque para alocar" -#: order/models.py:2042 +#: order/models.py:2075 msgid "Enter stock allocation quantity" msgstr "Insira a quantidade de atribuição de estoque" -#: order/models.py:2136 +#: order/models.py:2175 msgid "Return Order reference" msgstr "Referência de Pedidos de Devolução" -#: order/models.py:2148 +#: order/models.py:2187 msgid "Company from which items are being returned" msgstr "Empresa da qual os itens estão sendo retornados" -#: order/models.py:2160 +#: order/models.py:2199 msgid "Return order status" msgstr "Estado do pedido de retorno" -#: order/models.py:2362 +#: order/models.py:2401 msgid "Return Order Line Item" msgstr "" -#: order/models.py:2376 +#: order/models.py:2415 msgid "Only serialized items can be assigned to a Return Order" msgstr "Somente itens da série podem ser devolvidos" -#: order/models.py:2392 +#: order/models.py:2431 msgid "Select item to return from customer" msgstr "Selecione o item a ser devolvido pelo cliente" -#: order/models.py:2398 +#: order/models.py:2437 msgid "Received Date" msgstr "Data de Recebimento" -#: order/models.py:2399 +#: order/models.py:2438 msgid "The date this this return item was received" msgstr "Data que o pedido a ser devolvido foi recebido" -#: order/models.py:2410 templates/js/translated/return_order.js:731 +#: order/models.py:2449 templates/js/translated/return_order.js:731 #: templates/js/translated/table_filters.js:122 msgid "Outcome" msgstr "Despesa/gastos" -#: order/models.py:2411 +#: order/models.py:2450 msgid "Outcome for this line item" msgstr "Gastos com esta linha de itens" -#: order/models.py:2418 +#: order/models.py:2457 msgid "Cost associated with return or repair for this line item" msgstr "Gastos para reparar e/ou devolver esta linha de itens" -#: order/models.py:2428 +#: order/models.py:2467 msgid "Return Order Extra Line" msgstr "" -#: order/serializers.py:86 +#: order/serializers.py:87 +msgid "Order ID" +msgstr "" + +#: order/serializers.py:87 +msgid "ID of the order to duplicate" +msgstr "" + +#: order/serializers.py:93 +msgid "Copy Lines" +msgstr "" + +#: order/serializers.py:94 +msgid "Copy line items from the original order" +msgstr "" + +#: order/serializers.py:100 +msgid "Copy Extra Lines" +msgstr "" + +#: order/serializers.py:101 +msgid "Copy extra line items from the original order" +msgstr "" + +#: order/serializers.py:117 msgid "Completed Lines" msgstr "" -#: order/serializers.py:283 stock/admin.py:195 +#: order/serializers.py:161 +msgid "Duplicate Order" +msgstr "" + +#: order/serializers.py:162 +msgid "Specify options for duplicating this order" +msgstr "" + +#: order/serializers.py:234 +msgid "Invalid order ID" +msgstr "" + +#: order/serializers.py:374 stock/admin.py:196 msgid "Supplier Name" msgstr "Nome do Fornecedor" -#: order/serializers.py:331 +#: order/serializers.py:416 msgid "Order cannot be cancelled" msgstr "Pedido não pode ser cancelado" -#: order/serializers.py:346 order/serializers.py:1366 +#: order/serializers.py:431 order/serializers.py:1492 msgid "Allow order to be closed with incomplete line items" msgstr "Permitir que o pedido seja fechado com itens de linha incompletos" -#: order/serializers.py:356 order/serializers.py:1376 +#: order/serializers.py:441 order/serializers.py:1502 msgid "Order has incomplete line items" msgstr "O pedido tem itens da linha incompletos" -#: order/serializers.py:506 +#: order/serializers.py:591 msgid "Order is not open" msgstr "O pedido não está aberto" -#: order/serializers.py:527 +#: order/serializers.py:612 msgid "Auto Pricing" msgstr "" -#: order/serializers.py:529 +#: order/serializers.py:614 msgid "Automatically calculate purchase price based on supplier part data" msgstr "" -#: order/serializers.py:539 +#: order/serializers.py:624 msgid "Purchase price currency" msgstr "Moeda de preço de compra" -#: order/serializers.py:545 +#: order/serializers.py:630 msgid "Merge Items" msgstr "" -#: order/serializers.py:547 +#: order/serializers.py:632 msgid "Merge items with the same part, destination and target date into one line item" msgstr "" -#: order/serializers.py:560 part/models.py:1033 +#: order/serializers.py:645 part/models.py:1094 part/serializers.py:387 msgid "Internal Part Number" msgstr "Numero interno do produto" -#: order/serializers.py:568 +#: order/serializers.py:653 msgid "Internal Part Name" msgstr "" -#: order/serializers.py:584 +#: order/serializers.py:669 msgid "Supplier part must be specified" msgstr "A peça do fornecedor deve ser especificada" -#: order/serializers.py:587 +#: order/serializers.py:672 msgid "Purchase order must be specified" msgstr "O pedido de compra deve ser especificado" -#: order/serializers.py:595 +#: order/serializers.py:680 msgid "Supplier must match purchase order" msgstr "O fornecedor deve corresponder o pedido de compra" -#: order/serializers.py:596 +#: order/serializers.py:681 msgid "Purchase order must match supplier" msgstr "Pedido de compra deve corresponder ao fornecedor" -#: order/serializers.py:639 order/serializers.py:1446 +#: order/serializers.py:724 order/serializers.py:1572 msgid "Line Item" msgstr "Itens de linha" -#: order/serializers.py:645 +#: order/serializers.py:730 msgid "Line item does not match purchase order" msgstr "O item de linha não corresponde ao pedido de compra" -#: order/serializers.py:655 order/serializers.py:779 order/serializers.py:1782 +#: order/serializers.py:740 order/serializers.py:881 order/serializers.py:1934 msgid "Select destination location for received items" msgstr "Selecione o local de destino para os itens recebidos" -#: order/serializers.py:671 templates/js/translated/purchase_order.js:1130 +#: order/serializers.py:756 templates/js/translated/purchase_order.js:1113 #: templates/js/translated/stock.js:1200 msgid "Enter batch code for incoming stock items" msgstr "Digite o código do lote para itens de estoque recebidos" -#: order/serializers.py:679 templates/js/translated/purchase_order.js:1155 +#: order/serializers.py:764 templates/js/translated/purchase_order.js:1138 msgid "Enter serial numbers for incoming stock items" msgstr "Digite o número de série para itens de estoque recebidos" -#: order/serializers.py:691 +#: order/serializers.py:776 msgid "Override packaging information for incoming stock items" msgstr "" -#: order/serializers.py:699 +#: order/serializers.py:784 msgid "Additional note for incoming stock items" msgstr "" -#: order/serializers.py:706 templates/js/translated/barcode.js:52 +#: order/serializers.py:791 templates/js/translated/barcode.js:52 msgid "Barcode" msgstr "Código de barras" -#: order/serializers.py:707 +#: order/serializers.py:792 msgid "Scanned barcode" msgstr "Código de barras lido" -#: order/serializers.py:723 +#: order/serializers.py:808 msgid "Barcode is already in use" msgstr "Código de barras já em uso" -#: order/serializers.py:747 +#: order/serializers.py:831 msgid "An integer quantity must be provided for trackable parts" msgstr "Quantidade inteira deve ser fornecida para peças rastreáveis" -#: order/serializers.py:795 order/serializers.py:1798 +#: order/serializers.py:898 order/serializers.py:1950 msgid "Line items must be provided" msgstr "Itens de linha deve ser providenciados" -#: order/serializers.py:811 +#: order/serializers.py:914 msgid "Destination location must be specified" msgstr "Loca de destino deve ser especificado" -#: order/serializers.py:822 +#: order/serializers.py:925 msgid "Supplied barcode values must be unique" msgstr "Código de barras fornecido deve ser único" -#: order/serializers.py:1187 +#: order/serializers.py:1221 msgid "Sale price currency" msgstr "Moeda de preço de venda" -#: order/serializers.py:1248 +#: order/serializers.py:1260 +msgid "Allocated Items" +msgstr "" + +#: order/serializers.py:1374 msgid "No shipment details provided" msgstr "Nenhum detalhe da remessa fornecido" -#: order/serializers.py:1309 order/serializers.py:1455 +#: order/serializers.py:1435 order/serializers.py:1581 msgid "Line item is not associated with this order" msgstr "Item de linha não está associado a este pedido" -#: order/serializers.py:1328 +#: order/serializers.py:1454 msgid "Quantity must be positive" msgstr "Quantidade deve ser positiva" -#: order/serializers.py:1465 +#: order/serializers.py:1591 msgid "Enter serial numbers to allocate" msgstr "Digite números de série para alocar" -#: order/serializers.py:1487 order/serializers.py:1593 +#: order/serializers.py:1613 order/serializers.py:1733 msgid "Shipment has already been shipped" msgstr "O pedido já foi enviado" -#: order/serializers.py:1490 order/serializers.py:1596 +#: order/serializers.py:1616 order/serializers.py:1736 msgid "Shipment is not associated with this order" msgstr "O envio não está associado a este pedido" -#: order/serializers.py:1537 +#: order/serializers.py:1671 msgid "No match found for the following serial numbers" msgstr "Nenhuma correspondência encontrada para os seguintes números de série" -#: order/serializers.py:1544 -msgid "The following serial numbers are already allocated" -msgstr "Os seguintes números de série já estão alocados" +#: order/serializers.py:1678 +msgid "The following serial numbers are unavailable" +msgstr "" -#: order/serializers.py:1752 +#: order/serializers.py:1904 msgid "Return order line item" msgstr "Devolver item do pedido" -#: order/serializers.py:1758 +#: order/serializers.py:1910 msgid "Line item does not match return order" msgstr "Item do pedido não bate com o pedido de devolução" -#: order/serializers.py:1761 +#: order/serializers.py:1913 msgid "Line item has already been received" msgstr "Item do pedido já foi recebido" -#: order/serializers.py:1790 +#: order/serializers.py:1942 msgid "Items can only be received against orders which are in progress" msgstr "Itens só podem ser recebidos de pedidos em processamento" -#: order/serializers.py:1873 +#: order/serializers.py:2025 msgid "Line price currency" msgstr "Tipo de moeda para o item do pedido" -#: order/status_codes.py:17 order/status_codes.py:52 stock/status_codes.py:16 +#: order/status_codes.py:17 order/status_codes.py:54 stock/status_codes.py:16 msgid "Lost" msgstr "Perdido" -#: order/status_codes.py:18 order/status_codes.py:53 stock/status_codes.py:22 +#: order/status_codes.py:18 order/status_codes.py:55 stock/status_codes.py:24 msgid "Returned" msgstr "Retornado" -#: order/status_codes.py:45 order/status_codes.py:77 +#: order/status_codes.py:47 order/status_codes.py:79 msgid "In Progress" msgstr "Em Progresso" -#: order/status_codes.py:101 +#: order/status_codes.py:105 msgid "Return" msgstr "Devolução" -#: order/status_codes.py:104 +#: order/status_codes.py:108 msgid "Repair" msgstr "Consertar" -#: order/status_codes.py:107 +#: order/status_codes.py:111 msgid "Replace" msgstr "Substituir" -#: order/status_codes.py:110 +#: order/status_codes.py:114 msgid "Refund" msgstr "Reembolsar" -#: order/status_codes.py:113 +#: order/status_codes.py:117 msgid "Reject" msgstr "Recusar" -#: order/tasks.py:25 +#: order/tasks.py:30 msgid "Overdue Purchase Order" msgstr "Pedido de compra vencido" -#: order/tasks.py:30 +#: order/tasks.py:35 #, python-brace-format msgid "Purchase order {po} is now overdue" msgstr "Pedido de compra {po} está atrasada" -#: order/tasks.py:75 +#: order/tasks.py:80 msgid "Overdue Sales Order" msgstr "Pedido de venda vencido" -#: order/tasks.py:80 +#: order/tasks.py:85 #, python-brace-format msgid "Sales order {so} is now overdue" msgstr "Pedido de venda {so} está atrasada" -#: order/templates/order/order_base.html:51 +#: order/templates/order/order_base.html:52 msgid "Print purchase order report" msgstr "Imprimir relatório do pedido de compra" -#: order/templates/order/order_base.html:53 -#: order/templates/order/return_order_base.html:62 -#: order/templates/order/sales_order_base.html:62 +#: order/templates/order/order_base.html:54 +#: order/templates/order/return_order_base.html:63 +#: order/templates/order/sales_order_base.html:63 msgid "Export order to file" msgstr "Exportar pedido ao arquivo" -#: order/templates/order/order_base.html:59 -#: order/templates/order/return_order_base.html:72 -#: order/templates/order/sales_order_base.html:71 +#: order/templates/order/order_base.html:60 +#: order/templates/order/return_order_base.html:73 +#: order/templates/order/sales_order_base.html:72 msgid "Order actions" msgstr "Ações de pedido" -#: order/templates/order/order_base.html:64 -#: order/templates/order/return_order_base.html:76 -#: order/templates/order/sales_order_base.html:75 +#: order/templates/order/order_base.html:65 +#: order/templates/order/return_order_base.html:77 +#: order/templates/order/sales_order_base.html:76 msgid "Edit order" msgstr "Editar pedido" -#: order/templates/order/order_base.html:68 +#: order/templates/order/order_base.html:69 msgid "Duplicate order" msgstr "Duplicar pedido" -#: order/templates/order/order_base.html:73 -#: order/templates/order/return_order_base.html:78 -#: order/templates/order/sales_order_base.html:77 +#: order/templates/order/order_base.html:74 +#: order/templates/order/return_order_base.html:79 +#: order/templates/order/sales_order_base.html:78 msgid "Hold order" msgstr "" -#: order/templates/order/order_base.html:78 -#: order/templates/order/return_order_base.html:81 -#: order/templates/order/sales_order_base.html:80 +#: order/templates/order/order_base.html:79 +#: order/templates/order/return_order_base.html:82 +#: order/templates/order/sales_order_base.html:81 msgid "Cancel order" msgstr "Cancelar pedido" -#: order/templates/order/order_base.html:84 #: order/templates/order/order_base.html:85 -#: order/templates/order/return_order_base.html:85 +#: order/templates/order/order_base.html:86 #: order/templates/order/return_order_base.html:86 -#: order/templates/order/sales_order_base.html:86 +#: order/templates/order/return_order_base.html:87 #: order/templates/order/sales_order_base.html:87 +#: order/templates/order/sales_order_base.html:88 msgid "Issue Order" msgstr "Emitir Pedido" -#: order/templates/order/order_base.html:88 -#: order/templates/order/return_order_base.html:89 +#: order/templates/order/order_base.html:89 +#: order/templates/order/return_order_base.html:90 msgid "Mark order as complete" msgstr "Marcar pedido como concluído" -#: order/templates/order/order_base.html:89 -#: order/templates/order/return_order_base.html:90 -#: order/templates/order/sales_order_base.html:100 +#: order/templates/order/order_base.html:90 +#: order/templates/order/return_order_base.html:91 +#: order/templates/order/sales_order_base.html:101 msgid "Complete Order" msgstr "Completar Pedido" -#: order/templates/order/order_base.html:96 +#: order/templates/order/order_base.html:97 msgid "Supplier part thumbnail" msgstr "Miniatura da peça do fornecedor" -#: order/templates/order/order_base.html:116 -#: order/templates/order/return_order_base.html:109 -#: order/templates/order/sales_order_base.html:118 +#: order/templates/order/order_base.html:117 +#: order/templates/order/return_order_base.html:110 +#: order/templates/order/sales_order_base.html:119 msgid "Order Description" msgstr "Descrição do Pedido" -#: order/templates/order/order_base.html:146 -msgid "No suppplier information available" -msgstr "Nenhuma informação do fornecedor disponível" - -#: order/templates/order/order_base.html:159 -#: order/templates/order/sales_order_base.html:164 +#: order/templates/order/order_base.html:168 +#: order/templates/order/sales_order_base.html:165 msgid "Completed Line Items" msgstr "Itens de Linha Concluídos" -#: order/templates/order/order_base.html:165 -#: order/templates/order/sales_order_base.html:170 -#: order/templates/order/sales_order_base.html:180 +#: order/templates/order/order_base.html:174 +#: order/templates/order/sales_order_base.html:171 +#: order/templates/order/sales_order_base.html:181 msgid "Incomplete" msgstr "Incompleto" -#: order/templates/order/order_base.html:184 -#: order/templates/order/return_order_base.html:160 +#: order/templates/order/order_base.html:193 +#: order/templates/order/return_order_base.html:161 #: report/templates/report/inventree_build_order_report.html:121 msgid "Issued" msgstr "Emitido" -#: order/templates/order/order_base.html:229 +#: order/templates/order/order_base.html:238 msgid "Total cost" msgstr "Custo total" -#: order/templates/order/order_base.html:233 -#: order/templates/order/return_order_base.html:202 -#: order/templates/order/sales_order_base.html:246 +#: order/templates/order/order_base.html:242 +#: order/templates/order/return_order_base.html:203 +#: order/templates/order/sales_order_base.html:247 msgid "Total cost could not be calculated" msgstr "O custo total não pôde ser calculado" -#: order/templates/order/order_base.html:335 +#: order/templates/order/order_base.html:344 msgid "Purchase Order QR Code" msgstr "Código QR do Pedido de Compra" -#: order/templates/order/order_base.html:347 +#: order/templates/order/order_base.html:356 msgid "Link Barcode to Purchase Order" msgstr "Vincular o Código de Barras ao Pedido de Compra" @@ -6184,12 +6392,12 @@ msgstr "Duplicar seleção" #: part/templates/part/import_wizard/ajax_match_references.html:42 #: part/templates/part/import_wizard/match_fields.html:71 #: part/templates/part/import_wizard/match_references.html:49 -#: templates/js/translated/bom.js:133 templates/js/translated/build.js:530 -#: templates/js/translated/build.js:1802 -#: templates/js/translated/purchase_order.js:696 -#: templates/js/translated/purchase_order.js:1288 +#: templates/js/translated/bom.js:133 templates/js/translated/build.js:533 +#: templates/js/translated/build.js:1805 +#: templates/js/translated/purchase_order.js:679 +#: templates/js/translated/purchase_order.js:1271 #: templates/js/translated/return_order.js:505 -#: templates/js/translated/sales_order.js:1145 +#: templates/js/translated/sales_order.js:1111 #: templates/js/translated/stock.js:720 templates/js/translated/stock.js:889 #: templates/patterns/wizard/match_fields.html:70 msgid "Remove row" @@ -6242,7 +6450,7 @@ msgstr "Itens do Pedido de Compra" #: order/templates/order/purchase_order_detail.html:27 #: order/templates/order/return_order_detail.html:24 #: order/templates/order/sales_order_detail.html:24 -#: templates/js/translated/purchase_order.js:414 +#: templates/js/translated/purchase_order.js:397 #: templates/js/translated/return_order.js:458 #: templates/js/translated/sales_order.js:237 msgid "Add Line Item" @@ -6277,45 +6485,45 @@ msgstr "Itens Recebidos" msgid "Order Notes" msgstr "Notas do Pedido" -#: order/templates/order/return_order_base.html:18 -#: order/templates/order/sales_order_base.html:18 +#: order/templates/order/return_order_base.html:19 +#: order/templates/order/sales_order_base.html:19 msgid "Customer logo thumbnail" msgstr "Miniatura logotipo do cliente" -#: order/templates/order/return_order_base.html:60 +#: order/templates/order/return_order_base.html:61 msgid "Print return order report" msgstr "Imprimir guia de devolução" -#: order/templates/order/return_order_base.html:64 -#: order/templates/order/sales_order_base.html:64 +#: order/templates/order/return_order_base.html:65 +#: order/templates/order/sales_order_base.html:65 msgid "Print packing list" msgstr "Imprimir lista de pacotes" -#: order/templates/order/return_order_base.html:141 -#: order/templates/order/sales_order_base.html:158 +#: order/templates/order/return_order_base.html:142 +#: order/templates/order/sales_order_base.html:159 #: templates/js/translated/return_order.js:308 -#: templates/js/translated/sales_order.js:833 +#: templates/js/translated/sales_order.js:792 msgid "Customer Reference" msgstr "Referência do Cliente" -#: order/templates/order/return_order_base.html:198 -#: order/templates/order/sales_order_base.html:242 +#: order/templates/order/return_order_base.html:199 +#: order/templates/order/sales_order_base.html:243 #: part/templates/part/part_pricing.html:32 #: part/templates/part/part_pricing.html:58 #: part/templates/part/part_pricing.html:99 #: part/templates/part/part_pricing.html:114 #: templates/js/translated/part.js:1079 -#: templates/js/translated/purchase_order.js:1822 +#: templates/js/translated/purchase_order.js:1806 #: templates/js/translated/return_order.js:380 -#: templates/js/translated/sales_order.js:891 +#: templates/js/translated/sales_order.js:850 msgid "Total Cost" msgstr "Custo Total" -#: order/templates/order/return_order_base.html:273 +#: order/templates/order/return_order_base.html:274 msgid "Return Order QR Code" msgstr "Código QR do Pedido de Devolução" -#: order/templates/order/return_order_base.html:285 +#: order/templates/order/return_order_base.html:286 msgid "Link Barcode to Return Order" msgstr "Vincular Código de Barras a Pedido de Devolução" @@ -6323,40 +6531,40 @@ msgstr "Vincular Código de Barras a Pedido de Devolução" msgid "Order Details" msgstr "Detalhes do pedido" -#: order/templates/order/sales_order_base.html:60 +#: order/templates/order/sales_order_base.html:61 msgid "Print sales order report" msgstr "Imprimir Relatório do Pedido de Venda" -#: order/templates/order/sales_order_base.html:91 #: order/templates/order/sales_order_base.html:92 +#: order/templates/order/sales_order_base.html:93 msgid "Ship Items" msgstr "Enviar itens" -#: order/templates/order/sales_order_base.html:95 #: order/templates/order/sales_order_base.html:96 +#: order/templates/order/sales_order_base.html:97 msgid "Mark As Shipped" msgstr "" -#: order/templates/order/sales_order_base.html:99 -#: templates/js/translated/sales_order.js:536 +#: order/templates/order/sales_order_base.html:100 +#: templates/js/translated/sales_order.js:495 msgid "Complete Sales Order" msgstr "Concluir Pedido de Venda" -#: order/templates/order/sales_order_base.html:138 +#: order/templates/order/sales_order_base.html:139 msgid "This Sales Order has not been fully allocated" msgstr "Este Pedido de Venda não foi totalmente alocado" -#: order/templates/order/sales_order_base.html:176 +#: order/templates/order/sales_order_base.html:177 #: order/templates/order/sales_order_detail.html:99 #: order/templates/order/so_sidebar.html:11 msgid "Completed Shipments" msgstr "Envios concluídos" -#: order/templates/order/sales_order_base.html:339 +#: order/templates/order/sales_order_base.html:340 msgid "Sales Order QR Code" msgstr "Código QR do Pedido de Venda" -#: order/templates/order/sales_order_base.html:351 +#: order/templates/order/sales_order_base.html:352 msgid "Link Barcode to Sales Order" msgstr "Vincular Código de Barras ao Pedido de Venda" @@ -6370,7 +6578,7 @@ msgid "Pending Shipments" msgstr "Envios Pendentes" #: order/templates/order/sales_order_detail.html:71 -#: templates/js/translated/bom.js:1277 templates/js/translated/build.js:1063 +#: templates/js/translated/bom.js:1277 templates/js/translated/build.js:1066 #: templates/js/translated/filters.js:299 msgid "Actions" msgstr "Ações" @@ -6383,39 +6591,40 @@ msgstr "Nova Remessa" msgid "Match Supplier Parts" msgstr "Corresponder Peças com Fornecedor" -#: order/views.py:406 +#: order/views.py:407 msgid "Sales order not found" msgstr "Pedido de Venda não encontrado" -#: order/views.py:412 +#: order/views.py:413 msgid "Price not found" msgstr "Preço não encontrado" -#: order/views.py:415 +#: order/views.py:416 #, python-brace-format msgid "Updated {part} unit-price to {price}" msgstr "Atualizado {part} unid.-preço para {price}" -#: order/views.py:421 +#: order/views.py:422 #, python-brace-format msgid "Updated {part} unit-price to {price} and quantity to {qty}" msgstr "Atualizado {part} unid.-preço para {price} e quantidade para {qty}" -#: part/admin.py:48 part/models.py:1032 part/templates/part/part_base.html:269 +#: part/admin.py:48 part/models.py:1093 part/serializers.py:939 +#: part/templates/part/part_base.html:277 #: report/templates/report/inventree_stock_location_report.html:103 #: templates/js/translated/part.js:1233 templates/js/translated/part.js:2347 -#: templates/js/translated/stock.js:2121 +#: templates/js/translated/stock.js:2122 msgid "IPN" msgstr "" -#: part/admin.py:50 part/models.py:1041 part/templates/part/part_base.html:286 +#: part/admin.py:50 part/models.py:1102 part/templates/part/part_base.html:294 #: report/models.py:161 templates/js/translated/part.js:1238 #: templates/js/translated/part.js:2353 msgid "Revision" msgstr "Revisão" -#: part/admin.py:53 part/admin.py:319 part/models.py:1014 -#: part/templates/part/category.html:91 part/templates/part/part_base.html:307 +#: part/admin.py:53 part/admin.py:319 part/models.py:1075 +#: part/templates/part/category.html:91 part/templates/part/part_base.html:315 msgid "Keywords" msgstr "Palavras chave" @@ -6427,7 +6636,7 @@ msgstr "Imagem da Peça" msgid "Category ID" msgstr "ID da Categoria" -#: part/admin.py:67 part/admin.py:304 part/serializers.py:880 +#: part/admin.py:67 part/admin.py:304 part/serializers.py:924 #: part/stocktake.py:222 msgid "Category Name" msgstr "Nome da Categoria" @@ -6440,11 +6649,11 @@ msgstr "ID Local Padrão" msgid "Default Supplier ID" msgstr "ID de Fornecedor Padrão" -#: part/admin.py:81 part/models.py:1000 part/templates/part/part_base.html:177 +#: part/admin.py:81 part/models.py:1061 part/templates/part/part_base.html:178 msgid "Variant Of" msgstr "Variante de" -#: part/admin.py:84 part/models.py:1138 part/templates/part/part_base.html:203 +#: part/admin.py:84 part/models.py:1199 part/templates/part/part_base.html:204 msgid "Minimum Stock" msgstr "Estoque Mínimo" @@ -6452,23 +6661,23 @@ msgstr "Estoque Mínimo" msgid "Used In" msgstr "Usado em" -#: part/admin.py:150 part/serializers.py:897 -#: part/templates/part/part_base.html:241 stock/admin.py:235 +#: part/admin.py:150 part/serializers.py:949 +#: part/templates/part/part_base.html:249 stock/admin.py:236 #: templates/js/translated/part.js:717 templates/js/translated/part.js:2159 msgid "Building" msgstr "Produzindo" -#: part/admin.py:155 part/models.py:3202 part/models.py:3216 +#: part/admin.py:155 part/models.py:3253 part/models.py:3267 #: templates/js/translated/part.js:976 msgid "Minimum Cost" msgstr "Custo Mínimo" -#: part/admin.py:158 part/models.py:3209 part/models.py:3223 +#: part/admin.py:158 part/models.py:3260 part/models.py:3274 #: templates/js/translated/part.js:986 msgid "Maximum Cost" msgstr "Custo Máximo" -#: part/admin.py:308 part/admin.py:387 stock/admin.py:57 stock/admin.py:215 +#: part/admin.py:308 part/admin.py:387 stock/admin.py:57 stock/admin.py:216 msgid "Parent ID" msgstr "ID Paternal" @@ -6481,8 +6690,8 @@ msgstr "Nome Paternal" msgid "Category Path" msgstr "Caminho da Categoria" -#: part/admin.py:325 part/models.py:425 part/serializers.py:130 -#: part/serializers.py:290 part/serializers.py:415 +#: part/admin.py:325 part/models.py:420 part/serializers.py:130 +#: part/serializers.py:323 part/serializers.py:459 #: part/templates/part/cat_link.html:3 part/templates/part/category.html:20 #: part/templates/part/category.html:138 part/templates/part/category.html:158 #: part/templates/part/category_sidebar.html:9 @@ -6509,15 +6718,15 @@ msgstr "IPN Paternal" msgid "Part Revision" msgstr "" -#: part/admin.py:418 part/serializers.py:1346 +#: part/admin.py:418 part/serializers.py:1400 #: templates/js/translated/pricing.js:358 -#: templates/js/translated/pricing.js:1024 +#: templates/js/translated/pricing.js:1022 msgid "Minimum Price" msgstr "Preço Mínimo" -#: part/admin.py:423 part/serializers.py:1361 +#: part/admin.py:423 part/serializers.py:1415 #: templates/js/translated/pricing.js:353 -#: templates/js/translated/pricing.js:1032 +#: templates/js/translated/pricing.js:1030 msgid "Maximum Price" msgstr "Preço Máximo" @@ -6545,94 +6754,98 @@ msgstr "" msgid "Filter by top-level categories" msgstr "" +#: part/api.py:156 stock/api.py:343 +msgid "Cascade" +msgstr "" + #: part/api.py:158 msgid "Include sub-categories in filtered results" msgstr "" -#: part/api.py:179 templates/js/translated/part.js:311 +#: part/api.py:178 templates/js/translated/part.js:311 msgid "Parent" msgstr "" -#: part/api.py:181 +#: part/api.py:180 msgid "Filter by parent category" msgstr "" -#: part/api.py:214 +#: part/api.py:213 msgid "Exclude Tree" msgstr "" -#: part/api.py:216 +#: part/api.py:215 msgid "Exclude sub-categories under the specified category" msgstr "" -#: part/api.py:441 +#: part/api.py:440 msgid "Has Results" msgstr "" -#: part/api.py:608 +#: part/api.py:604 msgid "Incoming Purchase Order" msgstr "Pedido de compra recebido" -#: part/api.py:626 +#: part/api.py:618 msgid "Outgoing Sales Order" msgstr "Pedidos de Venda Feitos" -#: part/api.py:642 +#: part/api.py:630 msgid "Stock produced by Build Order" msgstr "Estoque produzido pelo Pedido de Produção" -#: part/api.py:726 +#: part/api.py:712 msgid "Stock required for Build Order" msgstr "Estoque obrigatório para Pedido de Produção" -#: part/api.py:874 +#: part/api.py:858 msgid "Validate entire Bill of Materials" msgstr "Validar a Lista de Materiais completa" -#: part/api.py:880 +#: part/api.py:864 msgid "This option must be selected" msgstr "Esta opção deve ser selecionada" -#: part/api.py:916 +#: part/api.py:900 msgid "Is Revision" msgstr "" -#: part/api.py:926 +#: part/api.py:910 msgid "Has Revisions" msgstr "" -#: part/api.py:1117 +#: part/api.py:1101 msgid "BOM Valid" msgstr "" -#: part/api.py:1523 part/models.py:1024 part/models.py:3489 part/models.py:4046 -#: part/serializers.py:430 part/serializers.py:1202 -#: part/templates/part/part_base.html:260 stock/api.py:781 +#: part/api.py:1509 part/models.py:1085 part/models.py:3540 part/models.py:4104 +#: part/serializers.py:474 part/serializers.py:1255 +#: part/templates/part/part_base.html:268 stock/api.py:781 #: templates/InvenTree/settings/settings_staff_js.html:300 #: templates/js/translated/notification.js:60 #: templates/js/translated/part.js:2383 msgid "Category" msgstr "Categoria" -#: part/api.py:1761 +#: part/api.py:1750 msgid "Assembly part is testable" msgstr "" -#: part/api.py:1770 +#: part/api.py:1759 msgid "Component part is testable" msgstr "" -#: part/api.py:1821 +#: part/api.py:1810 msgid "Uses" msgstr "" -#: part/bom.py:178 part/models.py:107 part/models.py:1077 -#: part/templates/part/category.html:113 part/templates/part/part_base.html:376 +#: part/bom.py:183 part/models.py:109 part/models.py:1138 +#: part/templates/part/category.html:113 part/templates/part/part_base.html:384 #: templates/js/translated/part.js:2397 msgid "Default Location" msgstr "Local Padrão" -#: part/bom.py:179 part/serializers.py:905 +#: part/bom.py:184 part/serializers.py:957 #: templates/email/low_stock_notification.html:16 msgid "Total Stock" msgstr "Estoque Total" @@ -6641,789 +6854,789 @@ msgstr "Estoque Total" msgid "Input quantity for price calculation" msgstr "Quantidade para o cálculo de preço" -#: part/models.py:88 part/models.py:4047 part/templates/part/category.html:16 +#: part/models.py:90 part/models.py:4105 part/templates/part/category.html:16 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "Categoria da Peça" -#: part/models.py:89 part/templates/part/category.html:133 +#: part/models.py:91 part/templates/part/category.html:133 #: templates/InvenTree/search.html:97 templates/js/translated/search.js:158 #: users/models.py:202 msgid "Part Categories" msgstr "Categorias de Peça" -#: part/models.py:108 +#: part/models.py:110 msgid "Default location for parts in this category" msgstr "Local padrão para peças desta categoria" -#: part/models.py:113 stock/models.py:187 templates/js/translated/part.js:2828 -#: templates/js/translated/stock.js:2856 +#: part/models.py:115 stock/models.py:193 templates/js/translated/part.js:2828 +#: templates/js/translated/stock.js:2857 #: templates/js/translated/table_filters.js:246 #: templates/js/translated/table_filters.js:290 msgid "Structural" msgstr "Estrutural" -#: part/models.py:115 +#: part/models.py:117 msgid "Parts may not be directly assigned to a structural category, but may be assigned to child categories." msgstr "Peças não podem ser diretamente atribuídas a uma categoria estrutural, mas podem ser atribuídas a categorias filhas." -#: part/models.py:124 +#: part/models.py:126 msgid "Default keywords" msgstr "Palavras-chave Padrão" -#: part/models.py:125 +#: part/models.py:127 msgid "Default keywords for parts in this category" msgstr "Palavras-chave padrão para peças nesta categoria" -#: part/models.py:131 stock/models.py:90 stock/models.py:169 +#: part/models.py:133 stock/models.py:96 stock/models.py:175 #: templates/InvenTree/settings/settings_staff_js.html:445 msgid "Icon" msgstr "Ícone" -#: part/models.py:132 part/serializers.py:143 part/serializers.py:161 -#: stock/models.py:170 +#: part/models.py:134 part/serializers.py:143 part/serializers.py:161 +#: stock/models.py:176 msgid "Icon (optional)" msgstr "Ícone (opcional)" -#: part/models.py:178 +#: part/models.py:180 msgid "You cannot make this part category structural because some parts are already assigned to it!" msgstr "Você não pode tornar esta categoria em estrutural, pois, algumas partes já estão alocadas!" -#: part/models.py:519 +#: part/models.py:514 msgid "Cannot delete this part as it is locked" msgstr "" -#: part/models.py:522 +#: part/models.py:517 msgid "Cannot delete this part as it is still active" msgstr "" -#: part/models.py:527 +#: part/models.py:522 msgid "Cannot delete this part as it is used in an assembly" msgstr "" -#: part/models.py:565 +#: part/models.py:560 msgid "Invalid choice for parent part" msgstr "Escolha inválida para peça parental" -#: part/models.py:613 part/models.py:620 +#: part/models.py:608 part/models.py:615 #, python-brace-format msgid "Part '{self}' cannot be used in BOM for '{parent}' (recursive)" msgstr "Peça '{self}' não pode ser utilizada na BOM para '{parent}' (recursiva)" -#: part/models.py:632 +#: part/models.py:627 #, python-brace-format msgid "Part '{parent}' is used in BOM for '{self}' (recursive)" msgstr "Peça '{parent}' é usada na BOM para '{self}' (recursiva)" -#: part/models.py:695 +#: part/models.py:694 #, python-brace-format msgid "IPN must match regex pattern {pattern}" msgstr "IPN deve corresponder ao padrão regex {pattern}" -#: part/models.py:703 +#: part/models.py:702 msgid "Part cannot be a revision of itself" msgstr "" -#: part/models.py:710 +#: part/models.py:709 msgid "Cannot make a revision of a part which is already a revision" msgstr "" -#: part/models.py:717 +#: part/models.py:716 msgid "Revision code must be specified" msgstr "" -#: part/models.py:724 +#: part/models.py:723 msgid "Revisions are only allowed for assembly parts" msgstr "" -#: part/models.py:731 +#: part/models.py:730 msgid "Cannot make a revision of a template part" msgstr "" -#: part/models.py:737 +#: part/models.py:736 msgid "Parent part must point to the same template" msgstr "" -#: part/models.py:816 +#: part/models.py:832 msgid "Stock item with this serial number already exists" msgstr "Item em estoque com este número de série já existe" -#: part/models.py:917 +#: part/models.py:976 msgid "Duplicate IPN not allowed in part settings" msgstr "Não é permitido duplicar IPN em configurações de partes" -#: part/models.py:926 +#: part/models.py:988 msgid "Duplicate part revision already exists." msgstr "" -#: part/models.py:936 +#: part/models.py:997 msgid "Part with this Name, IPN and Revision already exists." msgstr "Uma parte com este Nome, IPN e Revisão já existe." -#: part/models.py:951 +#: part/models.py:1012 msgid "Parts cannot be assigned to structural part categories!" msgstr "Peças não podem ser atribuídas a categorias estruturais!" -#: part/models.py:983 part/models.py:4102 +#: part/models.py:1044 part/models.py:4160 msgid "Part name" msgstr "Nome da peça" -#: part/models.py:988 +#: part/models.py:1049 msgid "Is Template" msgstr "É um modelo" -#: part/models.py:989 +#: part/models.py:1050 msgid "Is this part a template part?" msgstr "Esta peça é uma peça modelo?" -#: part/models.py:999 +#: part/models.py:1060 msgid "Is this part a variant of another part?" msgstr "Esta peça é variante de outra peça?" -#: part/models.py:1007 +#: part/models.py:1068 msgid "Part description (optional)" msgstr "Descrição da peça (opcional)" -#: part/models.py:1015 +#: part/models.py:1076 msgid "Part keywords to improve visibility in search results" msgstr "Palavras-chave para melhorar a visibilidade nos resultados da pesquisa" -#: part/models.py:1025 +#: part/models.py:1086 msgid "Part category" msgstr "Categoria da Peça" -#: part/models.py:1040 +#: part/models.py:1101 msgid "Part revision or version number" msgstr "Revisão de peça ou número de versão" -#: part/models.py:1050 +#: part/models.py:1111 msgid "Is this part a revision of another part?" msgstr "" -#: part/models.py:1051 part/templates/part/part_base.html:277 +#: part/models.py:1112 part/templates/part/part_base.html:285 msgid "Revision Of" msgstr "" -#: part/models.py:1075 +#: part/models.py:1136 msgid "Where is this item normally stored?" msgstr "Onde este item é armazenado normalmente?" -#: part/models.py:1121 part/templates/part/part_base.html:385 +#: part/models.py:1182 part/templates/part/part_base.html:393 msgid "Default Supplier" msgstr "Fornecedor Padrão" -#: part/models.py:1122 +#: part/models.py:1183 msgid "Default supplier part" msgstr "Fornecedor padrão da peça" -#: part/models.py:1129 +#: part/models.py:1190 msgid "Default Expiry" msgstr "Validade Padrão" -#: part/models.py:1130 +#: part/models.py:1191 msgid "Expiry time (in days) for stock items of this part" msgstr "Validade (em dias) para itens do estoque desta peça" -#: part/models.py:1139 +#: part/models.py:1200 msgid "Minimum allowed stock level" msgstr "Nível mínimo de estoque permitido" -#: part/models.py:1148 +#: part/models.py:1209 msgid "Units of measure for this part" msgstr "Unidade de medida para esta peça" -#: part/models.py:1155 +#: part/models.py:1216 msgid "Can this part be built from other parts?" msgstr "Essa peça pode ser construída a partir de outras peças?" -#: part/models.py:1161 +#: part/models.py:1222 msgid "Can this part be used to build other parts?" msgstr "Essa peça pode ser usada para construir outras peças?" -#: part/models.py:1167 +#: part/models.py:1228 msgid "Does this part have tracking for unique items?" msgstr "Esta parte tem rastreamento para itens únicos?" -#: part/models.py:1173 +#: part/models.py:1234 msgid "Can this part have test results recorded against it?" msgstr "" -#: part/models.py:1179 +#: part/models.py:1240 msgid "Can this part be purchased from external suppliers?" msgstr "Esta peça pode ser comprada de fornecedores externos?" -#: part/models.py:1185 +#: part/models.py:1246 msgid "Can this part be sold to customers?" msgstr "Esta peça pode ser vendida a clientes?" -#: part/models.py:1189 +#: part/models.py:1250 msgid "Is this part active?" msgstr "Esta parte está ativa?" -#: part/models.py:1194 templates/js/translated/part.js:821 +#: part/models.py:1255 templates/js/translated/part.js:821 #: templates/js/translated/table_filters.js:724 msgid "Locked" msgstr "" -#: part/models.py:1195 +#: part/models.py:1256 msgid "Locked parts cannot be edited" msgstr "" -#: part/models.py:1201 +#: part/models.py:1262 msgid "Is this a virtual part, such as a software product or license?" msgstr "Esta é uma peça virtual, como um software de produto ou licença?" -#: part/models.py:1207 +#: part/models.py:1268 msgid "BOM checksum" msgstr "Soma de Verificação da LDM" -#: part/models.py:1208 +#: part/models.py:1269 msgid "Stored BOM checksum" msgstr "Soma de verificação da LDM armazenada" -#: part/models.py:1216 +#: part/models.py:1277 msgid "BOM checked by" msgstr "LDM conferida por" -#: part/models.py:1221 +#: part/models.py:1282 msgid "BOM checked date" msgstr "LDM verificada no dia" -#: part/models.py:1237 +#: part/models.py:1298 msgid "Creation User" msgstr "Criação de Usuário" -#: part/models.py:1247 +#: part/models.py:1308 msgid "Owner responsible for this part" msgstr "Proprietário responsável por esta peça" -#: part/models.py:1252 part/templates/part/part_base.html:348 -#: stock/templates/stock/item_base.html:451 +#: part/models.py:1313 part/templates/part/part_base.html:356 +#: stock/templates/stock/item_base.html:448 #: templates/js/translated/part.js:2490 msgid "Last Stocktake" msgstr "Último Balanço" -#: part/models.py:2125 +#: part/models.py:2185 msgid "Sell multiple" msgstr "Venda múltipla" -#: part/models.py:3116 +#: part/models.py:3167 msgid "Currency used to cache pricing calculations" msgstr "Moeda usada para armazenar os cálculos de preços" -#: part/models.py:3132 +#: part/models.py:3183 msgid "Minimum BOM Cost" msgstr "Custo Mínimo da LDM" -#: part/models.py:3133 +#: part/models.py:3184 msgid "Minimum cost of component parts" msgstr "Custo mínimo das peças componentes" -#: part/models.py:3139 +#: part/models.py:3190 msgid "Maximum BOM Cost" msgstr "Custo Máximo da LDM" -#: part/models.py:3140 +#: part/models.py:3191 msgid "Maximum cost of component parts" msgstr "Custo máximo das peças componentes" -#: part/models.py:3146 +#: part/models.py:3197 msgid "Minimum Purchase Cost" msgstr "Custo Mínimo de Compra" -#: part/models.py:3147 +#: part/models.py:3198 msgid "Minimum historical purchase cost" msgstr "Custo mínimo histórico de compra" -#: part/models.py:3153 +#: part/models.py:3204 msgid "Maximum Purchase Cost" msgstr "Custo Máximo de Compra" -#: part/models.py:3154 +#: part/models.py:3205 msgid "Maximum historical purchase cost" msgstr "Custo máximo histórico de compra" -#: part/models.py:3160 +#: part/models.py:3211 msgid "Minimum Internal Price" msgstr "Preço Interno Mínimo" -#: part/models.py:3161 +#: part/models.py:3212 msgid "Minimum cost based on internal price breaks" msgstr "Custo mínimo baseado nos intervalos de preço internos" -#: part/models.py:3167 +#: part/models.py:3218 msgid "Maximum Internal Price" msgstr "Preço Interno Máximo" -#: part/models.py:3168 +#: part/models.py:3219 msgid "Maximum cost based on internal price breaks" msgstr "Custo máximo baseado nos intervalos de preço internos" -#: part/models.py:3174 +#: part/models.py:3225 msgid "Minimum Supplier Price" msgstr "Preço Mínimo do Fornecedor" -#: part/models.py:3175 +#: part/models.py:3226 msgid "Minimum price of part from external suppliers" msgstr "Preço mínimo da peça de fornecedores externos" -#: part/models.py:3181 +#: part/models.py:3232 msgid "Maximum Supplier Price" msgstr "Preço Máximo do Fornecedor" -#: part/models.py:3182 +#: part/models.py:3233 msgid "Maximum price of part from external suppliers" msgstr "Preço máximo da peça de fornecedores externos" -#: part/models.py:3188 +#: part/models.py:3239 msgid "Minimum Variant Cost" msgstr "Custo Mínimo variável" -#: part/models.py:3189 +#: part/models.py:3240 msgid "Calculated minimum cost of variant parts" msgstr "Custo mínimo calculado das peças variáveis" -#: part/models.py:3195 +#: part/models.py:3246 msgid "Maximum Variant Cost" msgstr "Custo Máximo Variável" -#: part/models.py:3196 +#: part/models.py:3247 msgid "Calculated maximum cost of variant parts" msgstr "Custo máximo calculado das peças variáveis" -#: part/models.py:3203 +#: part/models.py:3254 msgid "Override minimum cost" msgstr "Sobrepor o custo mínimo" -#: part/models.py:3210 +#: part/models.py:3261 msgid "Override maximum cost" msgstr "Sobrepor o custo máximo" -#: part/models.py:3217 +#: part/models.py:3268 msgid "Calculated overall minimum cost" msgstr "Custo total mínimo calculado" -#: part/models.py:3224 +#: part/models.py:3275 msgid "Calculated overall maximum cost" msgstr "Custo total máximo calculado" -#: part/models.py:3230 +#: part/models.py:3281 msgid "Minimum Sale Price" msgstr "Preço Mínimo de Venda" -#: part/models.py:3231 +#: part/models.py:3282 msgid "Minimum sale price based on price breaks" msgstr "Preço mínimo de venda baseado nos intervalos de preço" -#: part/models.py:3237 +#: part/models.py:3288 msgid "Maximum Sale Price" msgstr "Preço Máximo de Venda" -#: part/models.py:3238 +#: part/models.py:3289 msgid "Maximum sale price based on price breaks" msgstr "Preço máximo de venda baseado nos intervalos de preço" -#: part/models.py:3244 +#: part/models.py:3295 msgid "Minimum Sale Cost" msgstr "Custo Mínimo de Venda" -#: part/models.py:3245 +#: part/models.py:3296 msgid "Minimum historical sale price" msgstr "Preço histórico mínimo de venda" -#: part/models.py:3251 +#: part/models.py:3302 msgid "Maximum Sale Cost" msgstr "Custo Máximo de Venda" -#: part/models.py:3252 +#: part/models.py:3303 msgid "Maximum historical sale price" msgstr "Preço histórico máximo de venda" -#: part/models.py:3271 +#: part/models.py:3322 msgid "Part for stocktake" msgstr "Peça para Balanço" -#: part/models.py:3276 +#: part/models.py:3327 msgid "Item Count" msgstr "Total de Itens" -#: part/models.py:3277 +#: part/models.py:3328 msgid "Number of individual stock entries at time of stocktake" msgstr "Número de entradas de estoques individuais no momento do balanço" -#: part/models.py:3285 +#: part/models.py:3336 msgid "Total available stock at time of stocktake" msgstr "Estoque total disponível no momento do balanço" -#: part/models.py:3289 part/models.py:3372 +#: part/models.py:3340 part/models.py:3423 part/serializers.py:263 #: part/templates/part/part_scheduling.html:13 #: report/templates/report/inventree_test_report.html:106 #: templates/InvenTree/settings/plugin_settings.html:37 #: templates/InvenTree/settings/settings_staff_js.html:543 -#: templates/js/translated/part.js:1092 templates/js/translated/pricing.js:826 -#: templates/js/translated/pricing.js:950 -#: templates/js/translated/purchase_order.js:1801 -#: templates/js/translated/stock.js:2905 +#: templates/js/translated/part.js:1092 templates/js/translated/pricing.js:824 +#: templates/js/translated/pricing.js:948 +#: templates/js/translated/purchase_order.js:1785 +#: templates/js/translated/stock.js:2906 msgid "Date" msgstr "Data" -#: part/models.py:3290 +#: part/models.py:3341 msgid "Date stocktake was performed" msgstr "Data de realização do balanço" -#: part/models.py:3298 +#: part/models.py:3349 msgid "Additional notes" msgstr "Notas adicionais" -#: part/models.py:3308 +#: part/models.py:3359 msgid "User who performed this stocktake" msgstr "Usuário que fez o balanço" -#: part/models.py:3314 +#: part/models.py:3365 msgid "Minimum Stock Cost" msgstr "Custo Mínimo de Estoque" -#: part/models.py:3315 +#: part/models.py:3366 msgid "Estimated minimum cost of stock on hand" msgstr "Custo mínimo estimado de estoque disponível" -#: part/models.py:3321 +#: part/models.py:3372 msgid "Maximum Stock Cost" msgstr "Custo Máximo de Estoque" -#: part/models.py:3322 +#: part/models.py:3373 msgid "Estimated maximum cost of stock on hand" msgstr "Custo máximo estimado de estoque disponível" -#: part/models.py:3378 templates/InvenTree/settings/settings_staff_js.html:532 +#: part/models.py:3429 templates/InvenTree/settings/settings_staff_js.html:532 msgid "Report" msgstr "Reportar" -#: part/models.py:3379 +#: part/models.py:3430 msgid "Stocktake report file (generated internally)" msgstr "Arquivo de Relatório de Balanço (gerado internamente)" -#: part/models.py:3384 templates/InvenTree/settings/settings_staff_js.html:539 +#: part/models.py:3435 templates/InvenTree/settings/settings_staff_js.html:539 msgid "Part Count" msgstr "Contagem de Peças" -#: part/models.py:3385 +#: part/models.py:3436 msgid "Number of parts covered by stocktake" msgstr "Número de peças cobertas pelo Balanço" -#: part/models.py:3395 +#: part/models.py:3446 msgid "User who requested this stocktake report" msgstr "Usuário que solicitou este relatório de balanço" -#: part/models.py:3405 +#: part/models.py:3456 msgid "Part Sale Price Break" msgstr "" -#: part/models.py:3517 +#: part/models.py:3568 msgid "Part Test Template" msgstr "" -#: part/models.py:3543 +#: part/models.py:3594 msgid "Invalid template name - must include at least one alphanumeric character" msgstr "" -#: part/models.py:3564 part/models.py:3733 +#: part/models.py:3615 part/models.py:3784 msgid "Choices must be unique" msgstr "Escolhas devem ser únicas" -#: part/models.py:3575 -msgid "Test templates can only be created for trackable parts" -msgstr "Modelos de teste só podem ser criados para peças rastreáveis" +#: part/models.py:3626 +msgid "Test templates can only be created for testable parts" +msgstr "" -#: part/models.py:3586 +#: part/models.py:3637 msgid "Test template with the same key already exists for part" msgstr "" -#: part/models.py:3603 templates/js/translated/part.js:2898 +#: part/models.py:3654 templates/js/translated/part.js:2898 msgid "Test Name" msgstr "Nome de Teste" -#: part/models.py:3604 +#: part/models.py:3655 msgid "Enter a name for the test" msgstr "Insira um nome para o teste" -#: part/models.py:3610 +#: part/models.py:3661 msgid "Test Key" msgstr "" -#: part/models.py:3611 +#: part/models.py:3662 msgid "Simplified key for the test" msgstr "" -#: part/models.py:3618 +#: part/models.py:3669 msgid "Test Description" msgstr "Descrição do Teste" -#: part/models.py:3619 +#: part/models.py:3670 msgid "Enter description for this test" msgstr "Digite a descrição para este teste" -#: part/models.py:3623 report/models.py:208 +#: part/models.py:3674 report/models.py:216 #: templates/js/translated/part.js:2919 #: templates/js/translated/table_filters.js:502 msgid "Enabled" msgstr "Habilitado" -#: part/models.py:3623 +#: part/models.py:3674 msgid "Is this test enabled?" msgstr "" -#: part/models.py:3628 templates/js/translated/part.js:2927 +#: part/models.py:3679 templates/js/translated/part.js:2927 #: templates/js/translated/table_filters.js:498 msgid "Required" msgstr "Requerido" -#: part/models.py:3629 +#: part/models.py:3680 msgid "Is this test required to pass?" msgstr "Este teste é obrigatório passar?" -#: part/models.py:3634 templates/js/translated/part.js:2935 +#: part/models.py:3685 templates/js/translated/part.js:2935 msgid "Requires Value" msgstr "Requer Valor" -#: part/models.py:3635 +#: part/models.py:3686 msgid "Does this test require a value when adding a test result?" msgstr "Este teste requer um valor ao adicionar um resultado de teste?" -#: part/models.py:3640 templates/js/translated/part.js:2942 +#: part/models.py:3691 templates/js/translated/part.js:2942 msgid "Requires Attachment" msgstr "Anexo obrigatório" -#: part/models.py:3642 +#: part/models.py:3693 msgid "Does this test require a file attachment when adding a test result?" msgstr "Este teste requer um anexo ao adicionar um resultado de teste?" -#: part/models.py:3648 part/models.py:3792 templates/js/translated/part.js:1643 +#: part/models.py:3699 part/models.py:3843 templates/js/translated/part.js:1643 msgid "Choices" msgstr "Escolhas" -#: part/models.py:3649 +#: part/models.py:3700 msgid "Valid choices for this test (comma-separated)" msgstr "" -#: part/models.py:3681 +#: part/models.py:3732 msgid "Part Parameter Template" msgstr "" -#: part/models.py:3708 +#: part/models.py:3759 msgid "Checkbox parameters cannot have units" msgstr "Parâmetros da caixa de seleção não podem ter unidades" -#: part/models.py:3713 +#: part/models.py:3764 msgid "Checkbox parameters cannot have choices" msgstr "Os parâmetros da caixa de seleção não podem ter escolhas" -#: part/models.py:3750 +#: part/models.py:3801 msgid "Parameter template name must be unique" msgstr "Nome do modelo de parâmetro deve ser único" -#: part/models.py:3765 +#: part/models.py:3816 msgid "Parameter Name" msgstr "Nome do Parâmetro" -#: part/models.py:3772 +#: part/models.py:3823 msgid "Physical units for this parameter" msgstr "Unidades físicas para este parâmetro" -#: part/models.py:3780 +#: part/models.py:3831 msgid "Parameter description" msgstr "Descrição do Parâmetro" -#: part/models.py:3786 templates/js/translated/part.js:1634 +#: part/models.py:3837 templates/js/translated/part.js:1634 #: templates/js/translated/table_filters.js:837 msgid "Checkbox" msgstr "Caixa de seleção" -#: part/models.py:3787 +#: part/models.py:3838 msgid "Is this parameter a checkbox?" msgstr "Este parâmetro é uma caixa de seleção?" -#: part/models.py:3793 +#: part/models.py:3844 msgid "Valid choices for this parameter (comma-separated)" msgstr "Opções válidas para este parâmetro (separadas por vírgulas)" -#: part/models.py:3827 +#: part/models.py:3881 msgid "Part Parameter" msgstr "" -#: part/models.py:3853 +#: part/models.py:3907 msgid "Parameter cannot be modified - part is locked" msgstr "" -#: part/models.py:3889 +#: part/models.py:3945 msgid "Invalid choice for parameter value" msgstr "Escolha inválida para valor do parâmetro" -#: part/models.py:3938 +#: part/models.py:3996 msgid "Parent Part" msgstr "Peça Paternal" -#: part/models.py:3946 part/models.py:4054 part/models.py:4055 +#: part/models.py:4004 part/models.py:4112 part/models.py:4113 #: templates/InvenTree/settings/settings_staff_js.html:295 msgid "Parameter Template" msgstr "Modelo de parâmetro" -#: part/models.py:3952 +#: part/models.py:4010 msgid "Parameter Value" msgstr "Valor do Parâmetro" -#: part/models.py:4002 +#: part/models.py:4060 msgid "Part Category Parameter Template" msgstr "" -#: part/models.py:4061 templates/InvenTree/settings/settings_staff_js.html:304 +#: part/models.py:4119 templates/InvenTree/settings/settings_staff_js.html:304 msgid "Default Value" msgstr "Valor Padrão" -#: part/models.py:4062 +#: part/models.py:4120 msgid "Default Parameter Value" msgstr "Valor Padrão do Parâmetro" -#: part/models.py:4100 +#: part/models.py:4158 msgid "Part ID or part name" msgstr "ID da peça ou nome da peça" -#: part/models.py:4101 +#: part/models.py:4159 msgid "Unique part ID value" msgstr "Valor exclusivo do ID de peça" -#: part/models.py:4103 +#: part/models.py:4161 msgid "Part IPN value" msgstr "Valor da parte IPN" -#: part/models.py:4104 +#: part/models.py:4162 msgid "Level" msgstr "Nível" -#: part/models.py:4104 +#: part/models.py:4162 msgid "BOM level" msgstr "Nível da LDM" -#: part/models.py:4215 +#: part/models.py:4272 msgid "BOM item cannot be modified - assembly is locked" msgstr "" -#: part/models.py:4222 +#: part/models.py:4279 msgid "BOM item cannot be modified - variant assembly is locked" msgstr "" -#: part/models.py:4232 +#: part/models.py:4289 msgid "Select parent part" msgstr "Selecione a Peça Parental" -#: part/models.py:4242 +#: part/models.py:4299 msgid "Sub part" msgstr "Sub peça" -#: part/models.py:4243 +#: part/models.py:4300 msgid "Select part to be used in BOM" msgstr "Selecionar peça a ser usada na LDM" -#: part/models.py:4254 +#: part/models.py:4311 msgid "BOM quantity for this BOM item" msgstr "Quantidade de LDM para este item LDM" -#: part/models.py:4260 +#: part/models.py:4317 msgid "This BOM item is optional" msgstr "Este item LDM é opcional" -#: part/models.py:4266 +#: part/models.py:4323 msgid "This BOM item is consumable (it is not tracked in build orders)" msgstr "Este item LDM é consumível (não é rastreado nos pedidos de construção)" -#: part/models.py:4273 part/templates/part/upload_bom.html:55 +#: part/models.py:4330 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "Excedente" -#: part/models.py:4274 +#: part/models.py:4331 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "Quantidade estimada de desperdício (absoluto ou porcentagem)" -#: part/models.py:4281 +#: part/models.py:4338 msgid "BOM item reference" msgstr "Referência do Item LDM" -#: part/models.py:4289 +#: part/models.py:4346 msgid "BOM item notes" msgstr "Notas do Item LDM" -#: part/models.py:4295 +#: part/models.py:4352 msgid "Checksum" msgstr "Soma de verificação" -#: part/models.py:4296 +#: part/models.py:4353 msgid "BOM line checksum" msgstr "Soma de Verificação da LDM da linha" -#: part/models.py:4301 templates/js/translated/table_filters.js:181 +#: part/models.py:4358 templates/js/translated/table_filters.js:181 msgid "Validated" msgstr "Validado" -#: part/models.py:4302 +#: part/models.py:4359 msgid "This BOM item has been validated" msgstr "O item da LDM foi validado" -#: part/models.py:4307 part/templates/part/upload_bom.html:57 +#: part/models.py:4364 part/templates/part/upload_bom.html:57 #: templates/js/translated/bom.js:1054 #: templates/js/translated/table_filters.js:185 #: templates/js/translated/table_filters.js:218 msgid "Gets inherited" msgstr "Obtém herdados" -#: part/models.py:4308 +#: part/models.py:4365 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "Este item da LDM é herdado por LDMs para peças variáveis" -#: part/models.py:4314 +#: part/models.py:4371 msgid "Stock items for variant parts can be used for this BOM item" msgstr "Itens de estoque para as peças das variantes podem ser usados para este item LDM" -#: part/models.py:4399 stock/models.py:685 +#: part/models.py:4456 stock/models.py:762 msgid "Quantity must be integer value for trackable parts" msgstr "Quantidade deve ser valor inteiro para peças rastreáveis" -#: part/models.py:4409 part/models.py:4411 +#: part/models.py:4466 part/models.py:4468 msgid "Sub part must be specified" msgstr "Sub peça deve ser especificada" -#: part/models.py:4551 +#: part/models.py:4613 msgid "BOM Item Substitute" msgstr "Substituir Item da LDM" -#: part/models.py:4572 +#: part/models.py:4634 msgid "Substitute part cannot be the same as the master part" msgstr "A peça de substituição não pode ser a mesma que a peça mestre" -#: part/models.py:4585 +#: part/models.py:4647 msgid "Parent BOM item" msgstr "Item LDM Parental" -#: part/models.py:4593 +#: part/models.py:4655 msgid "Substitute part" msgstr "Substituir peça" -#: part/models.py:4609 +#: part/models.py:4671 msgid "Part 1" msgstr "Parte 1" -#: part/models.py:4617 +#: part/models.py:4679 msgid "Part 2" msgstr "Parte 2" -#: part/models.py:4618 +#: part/models.py:4680 msgid "Select Related Part" msgstr "Selecionar Peça Relacionada" -#: part/models.py:4637 +#: part/models.py:4699 msgid "Part relationship cannot be created between a part and itself" msgstr "Relacionamento da peça não pode ser criada com ela mesma" -#: part/models.py:4642 +#: part/models.py:4704 msgid "Duplicate relationship already exists" msgstr "Relação duplicada já existe" @@ -7449,340 +7662,352 @@ msgstr "" msgid "Number of results recorded against this template" msgstr "" -#: part/serializers.py:225 part/serializers.py:243 stock/serializers.py:616 +#: part/serializers.py:225 part/serializers.py:243 stock/serializers.py:643 msgid "Purchase currency of this stock item" msgstr "Moeda de compra deste item de estoque" -#: part/serializers.py:291 +#: part/serializers.py:268 +msgid "Speculative Quantity" +msgstr "" + +#: part/serializers.py:277 +msgid "Model ID" +msgstr "" + +#: part/serializers.py:324 msgid "Number of parts using this template" msgstr "" -#: part/serializers.py:421 +#: part/serializers.py:465 msgid "No parts selected" msgstr "Nenhuma parte selecionada" -#: part/serializers.py:431 +#: part/serializers.py:475 msgid "Select category" msgstr "Selecionar categoria" -#: part/serializers.py:466 +#: part/serializers.py:510 msgid "Original Part" msgstr "Peça Original" -#: part/serializers.py:467 +#: part/serializers.py:511 msgid "Select original part to duplicate" msgstr "Selecione a peça original para duplicar" -#: part/serializers.py:472 +#: part/serializers.py:516 msgid "Copy Image" msgstr "Copiar imagem" -#: part/serializers.py:473 +#: part/serializers.py:517 msgid "Copy image from original part" msgstr "Copiar imagem da peça original" -#: part/serializers.py:479 part/templates/part/detail.html:293 +#: part/serializers.py:523 part/templates/part/detail.html:293 msgid "Copy BOM" msgstr "Copiar LDM" -#: part/serializers.py:480 +#: part/serializers.py:524 msgid "Copy bill of materials from original part" msgstr "Copiar lista de materiais da peça original" -#: part/serializers.py:486 +#: part/serializers.py:530 msgid "Copy Parameters" msgstr "Copiar Parâmetros" -#: part/serializers.py:487 +#: part/serializers.py:531 msgid "Copy parameter data from original part" msgstr "Copiar dados do parâmetro da peça original" -#: part/serializers.py:493 +#: part/serializers.py:537 msgid "Copy Notes" msgstr "Copiar Notas" -#: part/serializers.py:494 +#: part/serializers.py:538 msgid "Copy notes from original part" msgstr "Copiar imagem da peça original" -#: part/serializers.py:512 +#: part/serializers.py:556 msgid "Initial Stock Quantity" msgstr "Quantidade Inicial de Estoque" -#: part/serializers.py:514 +#: part/serializers.py:558 msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added." msgstr "Especificar a quantidade inicial de estoque para a peça. Se for zero, nenhum estoque é adicionado." -#: part/serializers.py:521 +#: part/serializers.py:565 msgid "Initial Stock Location" msgstr "Local Inicial do Estoque" -#: part/serializers.py:522 +#: part/serializers.py:566 msgid "Specify initial stock location for this Part" msgstr "Especifique o local do estoque inicial para esta Peça" -#: part/serializers.py:539 +#: part/serializers.py:583 msgid "Select supplier (or leave blank to skip)" msgstr "Selecione o fornecedor (ou deixe em branco para pular)" -#: part/serializers.py:555 +#: part/serializers.py:599 msgid "Select manufacturer (or leave blank to skip)" msgstr "Selecione fabricante (ou deixe em branco para pular)" -#: part/serializers.py:565 +#: part/serializers.py:609 msgid "Manufacturer part number" msgstr "Número de Peça do Fabricante" -#: part/serializers.py:572 +#: part/serializers.py:616 msgid "Selected company is not a valid supplier" msgstr "A empresa selecionada não é um fornecedor válido" -#: part/serializers.py:581 +#: part/serializers.py:625 msgid "Selected company is not a valid manufacturer" msgstr "A empresa selecionada não é um fabricante válido" -#: part/serializers.py:592 +#: part/serializers.py:636 msgid "Manufacturer part matching this MPN already exists" msgstr "A peça do fabricante que corresponde a essa MPN já existe" -#: part/serializers.py:599 +#: part/serializers.py:643 msgid "Supplier part matching this SKU already exists" msgstr "A peça do fornecedor que corresponde a essa SKU já existe" -#: part/serializers.py:903 +#: part/serializers.py:955 msgid "Revisions" msgstr "" -#: part/serializers.py:908 +#: part/serializers.py:960 msgid "Unallocated Stock" msgstr "" -#: part/serializers.py:911 +#: part/serializers.py:963 msgid "Variant Stock" msgstr "" -#: part/serializers.py:941 part/templates/part/copy_part.html:9 +#: part/serializers.py:993 part/templates/part/copy_part.html:9 #: templates/js/translated/part.js:474 msgid "Duplicate Part" msgstr "Peça duplicada" -#: part/serializers.py:942 +#: part/serializers.py:994 msgid "Copy initial data from another Part" msgstr "Copiar dados iniciais de outra peça" -#: part/serializers.py:948 templates/js/translated/part.js:103 +#: part/serializers.py:1000 templates/js/translated/part.js:103 msgid "Initial Stock" msgstr "Estoque inicial" -#: part/serializers.py:949 +#: part/serializers.py:1001 msgid "Create Part with initial stock quantity" msgstr "Criar peça com a quantidade inicial de estoque" -#: part/serializers.py:955 +#: part/serializers.py:1007 msgid "Supplier Information" msgstr "Informações do Fornecedor" -#: part/serializers.py:956 +#: part/serializers.py:1008 msgid "Add initial supplier information for this part" msgstr "Adicionar informação inicial de fornecedor para esta peça" -#: part/serializers.py:964 +#: part/serializers.py:1016 msgid "Copy Category Parameters" msgstr "Copiar Parâmetros da Categoria" -#: part/serializers.py:965 +#: part/serializers.py:1017 msgid "Copy parameter templates from selected part category" msgstr "Copiar modelos de parâmetros a partir de categoria de peça selecionada" -#: part/serializers.py:970 +#: part/serializers.py:1022 msgid "Existing Image" msgstr "Imagem Existente" -#: part/serializers.py:971 +#: part/serializers.py:1023 msgid "Filename of an existing part image" msgstr "Nome de arquivo de uma imagem de peça existente" -#: part/serializers.py:988 +#: part/serializers.py:1040 msgid "Image file does not exist" msgstr "A imagem não existe" -#: part/serializers.py:1194 +#: part/serializers.py:1247 msgid "Limit stocktake report to a particular part, and any variant parts" msgstr "Limitar o relatório de balanço a uma determinada peça e quaisquer peças variantes" -#: part/serializers.py:1204 +#: part/serializers.py:1257 msgid "Limit stocktake report to a particular part category, and any child categories" msgstr "Limitar o relatório de balanço a uma determinada categoria, e qualquer peças filhas" -#: part/serializers.py:1214 +#: part/serializers.py:1267 msgid "Limit stocktake report to a particular stock location, and any child locations" msgstr "Limitar o relatório de balanço a um determinado local de estoque, e qualquer local filho" -#: part/serializers.py:1220 +#: part/serializers.py:1273 msgid "Exclude External Stock" msgstr "Excluir Estoque externo" -#: part/serializers.py:1221 +#: part/serializers.py:1274 msgid "Exclude stock items in external locations" msgstr "Excluir itens de estoque em locais externos" -#: part/serializers.py:1226 +#: part/serializers.py:1279 msgid "Generate Report" msgstr "Gerar relatório" -#: part/serializers.py:1227 +#: part/serializers.py:1280 msgid "Generate report file containing calculated stocktake data" msgstr "Gerar arquivo de relatório contendo dados de estoque calculados" -#: part/serializers.py:1232 +#: part/serializers.py:1285 msgid "Update Parts" msgstr "Atualizar Peças" -#: part/serializers.py:1233 +#: part/serializers.py:1286 msgid "Update specified parts with calculated stocktake data" msgstr "Atualizar peças especificadas com dados de estoque calculados" -#: part/serializers.py:1241 +#: part/serializers.py:1294 msgid "Stocktake functionality is not enabled" msgstr "Função de Balanço de Estoque não está ativada" -#: part/serializers.py:1347 +#: part/serializers.py:1299 +msgid "Background worker check failed" +msgstr "Falha em verificar o histórico do trabalhador" + +#: part/serializers.py:1401 msgid "Override calculated value for minimum price" msgstr "Sobrepor valor calculado para preço mínimo" -#: part/serializers.py:1354 +#: part/serializers.py:1408 msgid "Minimum price currency" msgstr "Moeda do preço mínimo" -#: part/serializers.py:1362 +#: part/serializers.py:1416 msgid "Override calculated value for maximum price" msgstr "Sobrepor valor calculado para preço máximo" -#: part/serializers.py:1369 +#: part/serializers.py:1423 msgid "Maximum price currency" msgstr "Moeda do preço máximo" -#: part/serializers.py:1398 +#: part/serializers.py:1452 msgid "Update" msgstr "Atualizar" -#: part/serializers.py:1399 +#: part/serializers.py:1453 msgid "Update pricing for this part" msgstr "Atualizar preços desta peça" -#: part/serializers.py:1422 +#: part/serializers.py:1476 #, python-brace-format msgid "Could not convert from provided currencies to {default_currency}" msgstr "Não foi possível converter das moedas fornecidas para {default_currency}" -#: part/serializers.py:1429 +#: part/serializers.py:1483 msgid "Minimum price must not be greater than maximum price" msgstr "Preço mínimo não pode ser maior que o preço máximo" -#: part/serializers.py:1432 +#: part/serializers.py:1486 msgid "Maximum price must not be less than minimum price" msgstr "Preço máximo não pode ser menor que o preço mínimo" -#: part/serializers.py:1576 +#: part/serializers.py:1634 msgid "Select the parent assembly" msgstr "" -#: part/serializers.py:1585 +#: part/serializers.py:1643 msgid "Component Name" msgstr "" -#: part/serializers.py:1588 +#: part/serializers.py:1646 msgid "Component IPN" msgstr "" -#: part/serializers.py:1591 +#: part/serializers.py:1649 msgid "Component Description" msgstr "" -#: part/serializers.py:1597 +#: part/serializers.py:1655 msgid "Select the component part" msgstr "" -#: part/serializers.py:1606 part/templates/part/part_base.html:235 +#: part/serializers.py:1664 part/templates/part/part_base.html:243 #: templates/js/translated/bom.js:1219 msgid "Can Build" msgstr "Pode Produzir" -#: part/serializers.py:1837 +#: part/serializers.py:1899 msgid "Select part to copy BOM from" msgstr "Selecionar peça para copiar a LDM" -#: part/serializers.py:1845 +#: part/serializers.py:1907 msgid "Remove Existing Data" msgstr "Remover Dado Existente" -#: part/serializers.py:1846 +#: part/serializers.py:1908 msgid "Remove existing BOM items before copying" msgstr "Remova itens LDM existentes antes de copiar" -#: part/serializers.py:1851 +#: part/serializers.py:1913 msgid "Include Inherited" msgstr "Incluir Herdados" -#: part/serializers.py:1852 +#: part/serializers.py:1914 msgid "Include BOM items which are inherited from templated parts" msgstr "Incluir itens LDM que são herdados de peças modelo" -#: part/serializers.py:1857 +#: part/serializers.py:1919 msgid "Skip Invalid Rows" msgstr "Pular Linhas inválidas" -#: part/serializers.py:1858 +#: part/serializers.py:1920 msgid "Enable this option to skip invalid rows" msgstr "Habilitar esta opção para pular linhas inválidas" -#: part/serializers.py:1863 +#: part/serializers.py:1925 msgid "Copy Substitute Parts" msgstr "Copiar Peças Substitutas" -#: part/serializers.py:1864 +#: part/serializers.py:1926 msgid "Copy substitute parts when duplicate BOM items" msgstr "Copiar peças de substitutas quando duplicar itens de LDM" -#: part/serializers.py:1901 +#: part/serializers.py:1963 msgid "Clear Existing BOM" msgstr "Limpar LDM Existente" -#: part/serializers.py:1902 +#: part/serializers.py:1964 msgid "Delete existing BOM items before uploading" msgstr "Apagar itens LDM existentes antes de carregar" -#: part/serializers.py:1934 +#: part/serializers.py:1996 msgid "No part column specified" msgstr "Nenhuma coluna de peça especificada" -#: part/serializers.py:1978 +#: part/serializers.py:2040 msgid "Multiple matching parts found" msgstr "Múltiplas peças correspondentes encontradas" -#: part/serializers.py:1981 +#: part/serializers.py:2043 msgid "No matching part found" msgstr "Nenhuma peça correspondente encontrada" -#: part/serializers.py:1984 +#: part/serializers.py:2045 msgid "Part is not designated as a component" msgstr "Peça não está designada como componente" -#: part/serializers.py:1993 +#: part/serializers.py:2054 msgid "Quantity not provided" msgstr "Quantidade não foi fornecida" -#: part/serializers.py:2001 +#: part/serializers.py:2062 msgid "Invalid quantity" msgstr "Quantidade Inválida" -#: part/serializers.py:2024 +#: part/serializers.py:2085 msgid "At least one BOM item is required" msgstr "Pelo menos um item LDM é necessário" #: part/stocktake.py:224 templates/js/translated/part.js:1073 #: templates/js/translated/part.js:1828 templates/js/translated/part.js:1884 -#: templates/js/translated/purchase_order.js:2154 +#: templates/js/translated/purchase_order.js:2138 msgid "Total Quantity" msgstr "Quantidade Total" @@ -7932,9 +8157,9 @@ msgid "Add stocktake information" msgstr "Adicionar informações de balanço de estoque" #: part/templates/part/detail.html:67 part/templates/part/part_sidebar.html:50 -#: stock/admin.py:255 templates/InvenTree/settings/part_stocktake.html:30 +#: stock/admin.py:256 templates/InvenTree/settings/part_stocktake.html:30 #: templates/InvenTree/settings/sidebar.html:53 -#: templates/js/translated/stock.js:2301 users/models.py:204 +#: templates/js/translated/stock.js:2302 users/models.py:204 msgid "Stocktake" msgstr "Balanço" @@ -8093,142 +8318,146 @@ msgstr "Selecione o formato de arquivo" msgid "Part List" msgstr "Lista de Peças" -#: part/templates/part/part_base.html:25 part/templates/part/part_base.html:29 +#: part/templates/part/part_base.html:26 part/templates/part/part_base.html:30 msgid "You are subscribed to notifications for this part" msgstr "Você está inscrito para notificações desta peça" -#: part/templates/part/part_base.html:33 +#: part/templates/part/part_base.html:34 msgid "Subscribe to notifications for this part" msgstr "Inscrever-se para notificações desta peça" -#: part/templates/part/part_base.html:52 +#: part/templates/part/part_base.html:53 #: stock/templates/stock/item_base.html:62 -#: stock/templates/stock/location.html:71 templates/js/translated/label.js:136 +#: stock/templates/stock/location.html:72 templates/js/translated/label.js:136 msgid "Print Label" msgstr "Imprimir Etiqueta" -#: part/templates/part/part_base.html:58 +#: part/templates/part/part_base.html:59 msgid "Show pricing information" msgstr "Mostrar informações de preços" -#: part/templates/part/part_base.html:63 -#: stock/templates/stock/item_base.html:110 -#: stock/templates/stock/location.html:80 +#: part/templates/part/part_base.html:64 +#: stock/templates/stock/item_base.html:107 +#: stock/templates/stock/location.html:81 msgid "Stock actions" msgstr "Ações de Estoque" -#: part/templates/part/part_base.html:70 +#: part/templates/part/part_base.html:71 msgid "Count part stock" msgstr "Contagem peça em estoque" -#: part/templates/part/part_base.html:76 +#: part/templates/part/part_base.html:77 msgid "Transfer part stock" msgstr "Transferir estoque de peça" -#: part/templates/part/part_base.html:91 templates/js/translated/part.js:2299 +#: part/templates/part/part_base.html:92 templates/js/translated/part.js:2299 msgid "Part actions" msgstr "Ações de peça" -#: part/templates/part/part_base.html:94 +#: part/templates/part/part_base.html:95 msgid "Duplicate part" msgstr "Peça duplicada" -#: part/templates/part/part_base.html:97 +#: part/templates/part/part_base.html:98 msgid "Edit part" msgstr "Editar peça" -#: part/templates/part/part_base.html:100 +#: part/templates/part/part_base.html:101 msgid "Delete part" msgstr "Excluir peça" -#: part/templates/part/part_base.html:119 +#: part/templates/part/part_base.html:120 msgid "Part is a template part (variants can be made from this part)" msgstr "Esta é uma peça modelo (as variantes podem ser feitas a partir desta peça)" -#: part/templates/part/part_base.html:123 +#: part/templates/part/part_base.html:124 msgid "Part can be assembled from other parts" msgstr "Peças pode ser montada a partir de outras peças" -#: part/templates/part/part_base.html:127 +#: part/templates/part/part_base.html:128 msgid "Part can be used in assemblies" msgstr "Peça pode ser usada em montagens" -#: part/templates/part/part_base.html:131 +#: part/templates/part/part_base.html:132 msgid "Part stock is tracked by serial number" msgstr "Peça em estoque é controlada por número de série" -#: part/templates/part/part_base.html:135 +#: part/templates/part/part_base.html:136 msgid "Part can be purchased from external suppliers" msgstr "Peça pode ser comprada de fornecedores externos" -#: part/templates/part/part_base.html:139 +#: part/templates/part/part_base.html:140 msgid "Part can be sold to customers" msgstr "Peça pode ser vendida a clientes" -#: part/templates/part/part_base.html:145 +#: part/templates/part/part_base.html:146 msgid "Part is not active" msgstr "Peça inativa" -#: part/templates/part/part_base.html:153 +#: part/templates/part/part_base.html:154 msgid "Part is virtual (not a physical part)" msgstr "Peça é virtual (não é algo físico)" -#: part/templates/part/part_base.html:163 -#: part/templates/part/part_base.html:690 +#: part/templates/part/part_base.html:164 +#: part/templates/part/part_base.html:698 msgid "Show Part Details" msgstr "Mostrar Detalhes de Peça" #: part/templates/part/part_base.html:218 -#: stock/templates/stock/item_base.html:388 +msgid "Required for Orders" +msgstr "" + +#: part/templates/part/part_base.html:226 +#: stock/templates/stock/item_base.html:385 msgid "Allocated to Build Orders" msgstr "Alocado para Pedidos de Construção" -#: part/templates/part/part_base.html:227 -#: stock/templates/stock/item_base.html:381 +#: part/templates/part/part_base.html:235 +#: stock/templates/stock/item_base.html:378 msgid "Allocated to Sales Orders" msgstr "Alocado para Pedidos de Venda" -#: part/templates/part/part_base.html:300 +#: part/templates/part/part_base.html:308 msgid "Minimum stock level" msgstr "Nível mínimo de estoque" -#: part/templates/part/part_base.html:331 templates/js/translated/bom.js:1071 +#: part/templates/part/part_base.html:339 templates/js/translated/bom.js:1071 #: templates/js/translated/part.js:1271 templates/js/translated/part.js:2463 #: templates/js/translated/pricing.js:391 -#: templates/js/translated/pricing.js:1054 +#: templates/js/translated/pricing.js:1052 msgid "Price Range" msgstr "Faixa de Preço" -#: part/templates/part/part_base.html:361 +#: part/templates/part/part_base.html:369 msgid "Latest Serial Number" msgstr "Último Número de Série" -#: part/templates/part/part_base.html:365 -#: stock/templates/stock/item_base.html:322 +#: part/templates/part/part_base.html:373 +#: stock/templates/stock/item_base.html:319 msgid "Search for serial number" msgstr "Procurar por número serial" -#: part/templates/part/part_base.html:453 +#: part/templates/part/part_base.html:461 msgid "Part QR Code" msgstr "QR Code da Peça" -#: part/templates/part/part_base.html:470 +#: part/templates/part/part_base.html:478 msgid "Link Barcode to Part" msgstr "Vincular Código de Barras à Peça" -#: part/templates/part/part_base.html:520 +#: part/templates/part/part_base.html:528 msgid "Calculate" msgstr "Calcular" -#: part/templates/part/part_base.html:537 +#: part/templates/part/part_base.html:545 msgid "Remove associated image from this part" msgstr "Remover imagem associada a esta peça" -#: part/templates/part/part_base.html:588 +#: part/templates/part/part_base.html:596 msgid "No matching images found" msgstr "Nenhuma imagem correspondente encontrada" -#: part/templates/part/part_base.html:684 +#: part/templates/part/part_base.html:692 msgid "Hide Part Details" msgstr "Esconder Detalhes da Peça" @@ -8282,13 +8511,13 @@ msgid "Variants" msgstr "Variantes" #: part/templates/part/part_sidebar.html:14 -#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:21 +#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:22 #: stock/templates/stock/stock_app_base.html:10 #: templates/InvenTree/search.html:153 #: templates/InvenTree/settings/sidebar.html:51 #: templates/js/translated/part.js:1249 templates/js/translated/part.js:2152 #: templates/js/translated/part.js:2411 templates/js/translated/stock.js:1066 -#: templates/js/translated/stock.js:2155 templates/navbar.html:31 +#: templates/js/translated/stock.js:2156 templates/navbar.html:31 msgid "Stock" msgstr "Estoque" @@ -8324,17 +8553,17 @@ msgstr "Sobrepor Preço da Peça" #: part/templates/part/prices.html:18 #: templates/InvenTree/settings/settings_staff_js.html:80 #: templates/InvenTree/settings/user.html:24 -#: templates/js/translated/helpers.js:103 +#: templates/js/translated/helpers.js:104 #: templates/js/translated/pricing.js:628 templates/notes_buttons.html:3 #: templates/notes_buttons.html:4 msgid "Edit" msgstr "Editar" -#: part/templates/part/prices.html:28 stock/admin.py:251 -#: stock/templates/stock/item_base.html:446 -#: templates/js/translated/company.js:1703 -#: templates/js/translated/company.js:1713 -#: templates/js/translated/stock.js:2331 +#: part/templates/part/prices.html:28 stock/admin.py:252 +#: stock/templates/stock/item_base.html:443 +#: templates/js/translated/company.js:1704 +#: templates/js/translated/company.js:1714 +#: templates/js/translated/stock.js:2332 msgid "Last Updated" msgstr "Última atualização" @@ -8406,7 +8635,7 @@ msgid "Update Pricing" msgstr "Atualizar Preços" #: part/templates/part/stock_count.html:7 -#: templates/js/translated/model_renderers.js:228 +#: templates/js/translated/model_renderers.js:231 #: templates/js/translated/part.js:707 templates/js/translated/part.js:2147 #: templates/js/translated/part.js:2149 msgid "No Stock" @@ -8486,7 +8715,7 @@ msgstr "Imagem da peça não encontrada" msgid "Part Pricing" msgstr "Preço Peça" -#: plugin/api.py:172 +#: plugin/api.py:175 msgid "Plugin cannot be deleted as it is currently active" msgstr "" @@ -8498,78 +8727,85 @@ msgstr "Nenhuma ação especificada" msgid "No matching action found" msgstr "Nenhuma ação correspondente encontrada" -#: plugin/base/barcodes/api.py:125 plugin/base/barcodes/api.py:371 -#: plugin/base/barcodes/api.py:546 +#: plugin/base/barcodes/api.py:203 msgid "No match found for barcode data" msgstr "Nenhum resultado encontrado para os dados do código de barras" -#: plugin/base/barcodes/api.py:129 +#: plugin/base/barcodes/api.py:207 msgid "Match found for barcode data" msgstr "Coincidência encontrada para dados de código de barras" -#: plugin/base/barcodes/api.py:163 plugin/base/barcodes/serializers.py:45 +#: plugin/base/barcodes/api.py:245 plugin/base/barcodes/serializers.py:72 msgid "Model is not supported" msgstr "" -#: plugin/base/barcodes/api.py:168 +#: plugin/base/barcodes/api.py:250 msgid "Model instance not found" msgstr "" -#: plugin/base/barcodes/api.py:197 -#: templates/js/translated/purchase_order.js:1468 +#: plugin/base/barcodes/api.py:279 +#: templates/js/translated/purchase_order.js:1452 msgid "Barcode matches existing item" msgstr "Código de barras corresponde ao item existente" -#: plugin/base/barcodes/api.py:336 +#: plugin/base/barcodes/api.py:418 msgid "No matching part data found" msgstr "Nenhuma informação de peça correspondente encontrada" -#: plugin/base/barcodes/api.py:353 +#: plugin/base/barcodes/api.py:434 msgid "No matching supplier parts found" msgstr "Nenhuma peça de fornecedor correspondente encontrada" -#: plugin/base/barcodes/api.py:357 +#: plugin/base/barcodes/api.py:437 msgid "Multiple matching supplier parts found" msgstr "Múltiplas peças de fornecedores correspondentes encontradas" -#: plugin/base/barcodes/api.py:381 +#: plugin/base/barcodes/api.py:450 plugin/base/barcodes/api.py:664 +msgid "No matching plugin found for barcode data" +msgstr "" + +#: plugin/base/barcodes/api.py:460 msgid "Matched supplier part" msgstr "Peça de fornecedor correspondente" -#: plugin/base/barcodes/api.py:430 +#: plugin/base/barcodes/api.py:525 msgid "Item has already been received" msgstr "Item do pedido já foi recebido" -#: plugin/base/barcodes/api.py:467 +#: plugin/base/barcodes/api.py:563 msgid "No match for supplier barcode" msgstr "Nenhuma correspondência para o código de barras do fornecedor" -#: plugin/base/barcodes/api.py:510 +#: plugin/base/barcodes/api.py:612 msgid "Multiple matching line items found" msgstr "Diversos itens de linha correspondentes encontrados" -#: plugin/base/barcodes/api.py:513 +#: plugin/base/barcodes/api.py:615 msgid "No matching line item found" msgstr "Nenhum item de linha correspondente encontrado" -#: plugin/base/barcodes/api.py:551 plugin/base/barcodes/api.py:558 +#: plugin/base/barcodes/api.py:661 +msgid "No sales order provided" +msgstr "" + +#: plugin/base/barcodes/api.py:670 msgid "Barcode does not match an existing stock item" msgstr "Código de barras não corresponde a item de estoque válido" -#: plugin/base/barcodes/api.py:569 +#: plugin/base/barcodes/api.py:686 msgid "Stock item does not match line item" msgstr "Item do estoque não corresponde ao item de linha" -#: plugin/base/barcodes/api.py:593 templates/js/translated/build.js:2780 -#: templates/js/translated/sales_order.js:1953 +#: plugin/base/barcodes/api.py:716 templates/js/translated/build.js:2798 +#: templates/js/translated/sales_order.js:1934 msgid "Insufficient stock available" msgstr "Estoque insuficiente disponível" -#: plugin/base/barcodes/api.py:602 +#: plugin/base/barcodes/api.py:729 msgid "Stock item allocated to sales order" msgstr "Item de estoque atribuído para pedido de venda" -#: plugin/base/barcodes/api.py:606 +#: plugin/base/barcodes/api.py:732 msgid "Not enough information" msgstr "Não há informação suficiente" @@ -8591,75 +8827,75 @@ msgstr "Nenhum pedido de compra correspondente a '{order}' encontrado" msgid "Purchase order does not match supplier" msgstr "Pedido de compra não corresponde ao fornecedor" -#: plugin/base/barcodes/mixins.py:465 +#: plugin/base/barcodes/mixins.py:467 msgid "Failed to find pending line item for supplier part" msgstr "Falha ao encontrar item de linha pendente para a parte do fornecedor" -#: plugin/base/barcodes/mixins.py:496 +#: plugin/base/barcodes/mixins.py:498 msgid "Further information required to receive line item" msgstr "Mais informações necessárias para receber o item de linha" -#: plugin/base/barcodes/mixins.py:504 +#: plugin/base/barcodes/mixins.py:506 msgid "Received purchase order line item" msgstr "Item de linha do pedido de compra recebido" -#: plugin/base/barcodes/serializers.py:21 +#: plugin/base/barcodes/serializers.py:48 msgid "Scanned barcode data" msgstr "Dados do código de barras lido" -#: plugin/base/barcodes/serializers.py:30 +#: plugin/base/barcodes/serializers.py:57 msgid "Model name to generate barcode for" msgstr "" -#: plugin/base/barcodes/serializers.py:35 +#: plugin/base/barcodes/serializers.py:62 msgid "Primary key of model object to generate barcode for" msgstr "" -#: plugin/base/barcodes/serializers.py:105 +#: plugin/base/barcodes/serializers.py:132 msgid "Purchase Order to allocate items against" msgstr "Pedido de compra para alocar itens contra" -#: plugin/base/barcodes/serializers.py:111 +#: plugin/base/barcodes/serializers.py:138 msgid "Purchase order is not pending" msgstr "O pedido de compra não está pendente" -#: plugin/base/barcodes/serializers.py:129 +#: plugin/base/barcodes/serializers.py:156 msgid "PurchaseOrder to receive items against" msgstr "Pedido de compra para receber itens contra" -#: plugin/base/barcodes/serializers.py:135 +#: plugin/base/barcodes/serializers.py:162 msgid "Purchase order has not been placed" msgstr "O pedido de compra não foi realizado" -#: plugin/base/barcodes/serializers.py:143 +#: plugin/base/barcodes/serializers.py:170 msgid "Location to receive items into" msgstr "Localização para receber itens" -#: plugin/base/barcodes/serializers.py:149 +#: plugin/base/barcodes/serializers.py:176 msgid "Cannot select a structural location" msgstr "Não é possível selecionar um local estrutural" -#: plugin/base/barcodes/serializers.py:163 +#: plugin/base/barcodes/serializers.py:190 msgid "Sales Order to allocate items against" msgstr "Pedido de compra para alocar itens contra" -#: plugin/base/barcodes/serializers.py:169 +#: plugin/base/barcodes/serializers.py:196 msgid "Sales order is not pending" msgstr "O pedido de venda não está pendente" -#: plugin/base/barcodes/serializers.py:177 +#: plugin/base/barcodes/serializers.py:204 msgid "Sales order line item to allocate items against" msgstr "Item de linha do pedido de venda para alocar itens contra" -#: plugin/base/barcodes/serializers.py:184 +#: plugin/base/barcodes/serializers.py:211 msgid "Sales order shipment to allocate items against" msgstr "Envio do pedido de venda para alocar itens contra" -#: plugin/base/barcodes/serializers.py:190 +#: plugin/base/barcodes/serializers.py:217 msgid "Shipment has already been delivered" msgstr "O envio já foi entregue" -#: plugin/base/barcodes/serializers.py:195 +#: plugin/base/barcodes/serializers.py:222 msgid "Quantity to allocate" msgstr "Quantidade a alocar" @@ -8679,6 +8915,42 @@ msgstr "" msgid "No items provided to print" msgstr "" +#: plugin/base/ui/serializers.py:30 +msgid "Plugin Name" +msgstr "" + +#: plugin/base/ui/serializers.py:34 +msgid "Feature Type" +msgstr "" + +#: plugin/base/ui/serializers.py:39 +msgid "Feature Label" +msgstr "" + +#: plugin/base/ui/serializers.py:44 +msgid "Feature Title" +msgstr "" + +#: plugin/base/ui/serializers.py:49 +msgid "Feature Description" +msgstr "" + +#: plugin/base/ui/serializers.py:54 +msgid "Feature Icon" +msgstr "" + +#: plugin/base/ui/serializers.py:58 +msgid "Feature Options" +msgstr "" + +#: plugin/base/ui/serializers.py:61 +msgid "Feature Context" +msgstr "" + +#: plugin/base/ui/serializers.py:64 +msgid "Feature Source (javascript)" +msgstr "" + #: plugin/builtin/barcodes/inventree_barcode.py:27 msgid "InvenTree Barcodes" msgstr "Códigos de Barras InvenTree" @@ -8756,7 +9028,7 @@ msgstr "Link do gancho de entrada do Slack" msgid "URL that is used to send messages to a slack channel" msgstr "URL usada para enviar mensagens para um canal do Slack" -#: plugin/builtin/integration/core_notifications.py:164 +#: plugin/builtin/integration/core_notifications.py:166 msgid "Open link" msgstr "Abrir link" @@ -8794,11 +9066,11 @@ msgstr "" msgid "Provides support for printing using a machine" msgstr "" -#: plugin/builtin/labels/inventree_machine.py:149 +#: plugin/builtin/labels/inventree_machine.py:151 msgid "last used" msgstr "" -#: plugin/builtin/labels/inventree_machine.py:166 +#: plugin/builtin/labels/inventree_machine.py:168 msgid "Options" msgstr "" @@ -8822,7 +9094,7 @@ msgstr "Borda" msgid "Print a border around each label" msgstr "Imprima uma borda em torno de cada etiqueta" -#: plugin/builtin/labels/label_sheet.py:47 report/models.py:307 +#: plugin/builtin/labels/label_sheet.py:47 report/models.py:315 msgid "Landscape" msgstr "Paisagem" @@ -8894,19 +9166,19 @@ msgstr "Fornece suporte para escanear códigos de barras TME" msgid "The Supplier which acts as 'TME'" msgstr "O fornecedor que atua como 'TME'" -#: plugin/installer.py:194 plugin/installer.py:282 +#: plugin/installer.py:199 plugin/installer.py:282 msgid "Only staff users can administer plugins" msgstr "" -#: plugin/installer.py:197 +#: plugin/installer.py:202 msgid "Plugin installation is disabled" msgstr "" -#: plugin/installer.py:248 +#: plugin/installer.py:246 msgid "Installed plugin successfully" msgstr "Plugin instalado com sucesso" -#: plugin/installer.py:254 +#: plugin/installer.py:251 #, python-brace-format msgid "Installed plugin into {path}" msgstr "Plugin instalado na {path}" @@ -8943,10 +9215,6 @@ msgstr "Configuração de Extensão" msgid "Plugin Configurations" msgstr "Configuração de Extensões" -#: plugin/models.py:43 users/models.py:100 -msgid "Key" -msgstr "Chave" - #: plugin/models.py:44 msgid "Key of plugin" msgstr "Chave da extensão" @@ -8955,7 +9223,7 @@ msgstr "Chave da extensão" msgid "PluginName of the plugin" msgstr "Nome da Extensão" -#: plugin/models.py:59 plugin/serializers.py:90 +#: plugin/models.py:59 plugin/serializers.py:115 msgid "Package Name" msgstr "Nome do Pacote" @@ -8984,17 +9252,17 @@ msgstr "Plugin embutido" msgid "Package Plugin" msgstr "" -#: plugin/models.py:220 report/models.py:474 +#: plugin/models.py:259 report/models.py:482 #: templates/InvenTree/settings/plugin_settings.html:9 #: templates/js/translated/plugin.js:51 msgid "Plugin" msgstr "Extensões" -#: plugin/models.py:267 +#: plugin/models.py:306 msgid "Method" msgstr "Método" -#: plugin/plugin.py:270 +#: plugin/plugin.py:275 msgid "No author found" msgstr "Nenhum autor encontrado" @@ -9053,81 +9321,157 @@ msgstr "Plugin de Câmbio de exemplo" msgid "InvenTree Contributors" msgstr "Contribuidores do InvenTree" -#: plugin/serializers.py:81 +#: plugin/samples/integration/user_interface_sample.py:27 +msgid "Enable Part Panels" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:28 +msgid "Enable custom panels for Part views" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:33 +msgid "Enable Purchase Order Panels" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:34 +msgid "Enable custom panels for Purchase Order views" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:39 +msgid "Enable Broken Panels" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:40 +msgid "Enable broken panels for testing" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:45 +msgid "Enable Dynamic Panel" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:46 +msgid "Enable dynamic panels for testing" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:98 +msgid "Part Panel" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:131 +msgid "Broken Dashboard Item" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:133 +msgid "This is a broken dashboard item - it will not render!" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:139 +msgid "Sample Dashboard Item" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:141 +msgid "This is a sample dashboard item. It renders a simple string of HTML content." +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:147 +msgid "Context Dashboard Item" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:161 +msgid "Admin Dashboard Item" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:162 +msgid "This is an admin-only dashboard item." +msgstr "" + +#: plugin/serializers.py:82 +msgid "Source File" +msgstr "" + +#: plugin/serializers.py:83 +msgid "Path to the source file for admin integration" +msgstr "" + +#: plugin/serializers.py:90 +msgid "Optional context data for the admin integration" +msgstr "" + +#: plugin/serializers.py:106 msgid "Source URL" msgstr "URL de origem" -#: plugin/serializers.py:83 +#: plugin/serializers.py:108 msgid "Source for the package - this can be a custom registry or a VCS path" msgstr "Fonte do pacote — este pode ser um registro personalizado ou um caminho de VCS" -#: plugin/serializers.py:92 +#: plugin/serializers.py:117 msgid "Name for the Plugin Package - can also contain a version indicator" msgstr "Nome para o Pacote da Extensão — também pode conter um indicador de versão" -#: plugin/serializers.py:99 +#: plugin/serializers.py:124 #: templates/InvenTree/settings/plugin_settings.html:42 #: templates/js/translated/plugin.js:86 msgid "Version" msgstr "Versão" -#: plugin/serializers.py:101 +#: plugin/serializers.py:126 msgid "Version specifier for the plugin. Leave blank for latest version." msgstr "" -#: plugin/serializers.py:106 +#: plugin/serializers.py:131 msgid "Confirm plugin installation" msgstr "Confirmar instalação da extensão" -#: plugin/serializers.py:108 +#: plugin/serializers.py:133 msgid "This will install this plugin now into the current instance. The instance will go into maintenance." msgstr "Isto instalará a extensão agora na instância atual. A instância irá entrar em manutenção." -#: plugin/serializers.py:121 +#: plugin/serializers.py:146 msgid "Installation not confirmed" msgstr "Instalação não confirmada" -#: plugin/serializers.py:123 +#: plugin/serializers.py:148 msgid "Either packagename of URL must be provided" msgstr "Qualquer nome do pacote URL deve ser fornecido" -#: plugin/serializers.py:161 +#: plugin/serializers.py:184 msgid "Full reload" msgstr "Recarregamento completo" -#: plugin/serializers.py:162 +#: plugin/serializers.py:185 msgid "Perform a full reload of the plugin registry" msgstr "Realize um recarregamento completo do registro de plugin" -#: plugin/serializers.py:168 +#: plugin/serializers.py:191 msgid "Force reload" msgstr "Forçar recarregamento" -#: plugin/serializers.py:170 +#: plugin/serializers.py:193 msgid "Force a reload of the plugin registry, even if it is already loaded" msgstr "Forçar um recarregamento do registro do plugin, mesmo que já esteja carregado" -#: plugin/serializers.py:177 +#: plugin/serializers.py:200 msgid "Collect plugins" msgstr "Coletar plugins" -#: plugin/serializers.py:178 +#: plugin/serializers.py:201 msgid "Collect plugins and add them to the registry" msgstr "Colete plugins e adicione-os ao registro" -#: plugin/serializers.py:205 +#: plugin/serializers.py:228 msgid "Activate Plugin" msgstr "Ativar Extensão" -#: plugin/serializers.py:206 +#: plugin/serializers.py:229 msgid "Activate this plugin" msgstr "Ativar esta extensão" -#: plugin/serializers.py:226 +#: plugin/serializers.py:249 msgid "Delete configuration" msgstr "" -#: plugin/serializers.py:227 +#: plugin/serializers.py:250 msgid "Delete the plugin configuration from the database" msgstr "" @@ -9135,11 +9479,11 @@ msgstr "" msgid "No valid objects provided to template" msgstr "Nenhum objeto válido fornecido para o modelo" -#: report/api.py:103 report/models.py:438 report/serializers.py:98 -#: report/serializers.py:148 templates/js/translated/purchase_order.js:1817 +#: report/api.py:103 report/models.py:446 report/serializers.py:99 +#: report/serializers.py:149 templates/js/translated/purchase_order.js:1801 #: templates/js/translated/return_order.js:353 -#: templates/js/translated/sales_order.js:887 -#: templates/js/translated/sales_order.js:1047 +#: templates/js/translated/sales_order.js:846 +#: templates/js/translated/sales_order.js:1020 msgid "Items" msgstr "Itens" @@ -9167,7 +9511,11 @@ msgstr "" msgid "Error printing label" msgstr "Erro ao imprimir etiqueta" -#: report/api.py:375 report/api.py:411 +#: report/api.py:358 +msgid "Report saved at time of printing" +msgstr "" + +#: report/api.py:384 report/api.py:420 #, python-brace-format msgid "Template file '{template}' is missing or does not exist" msgstr "Arquivo modelo '{template}' perdido ou não existe" @@ -9204,135 +9552,143 @@ msgstr "" msgid "Revision number (auto-increments)" msgstr "" -#: report/models.py:202 +#: report/models.py:168 +msgid "Attach to Model on Print" +msgstr "" + +#: report/models.py:170 +msgid "Save report output as an attachment against linked model instance when printing" +msgstr "" + +#: report/models.py:210 msgid "Filename Pattern" msgstr "Padrão de Nome de Arquivo" -#: report/models.py:203 +#: report/models.py:211 msgid "Pattern for generating filenames" msgstr "" -#: report/models.py:208 +#: report/models.py:216 msgid "Template is enabled" msgstr "" -#: report/models.py:214 +#: report/models.py:222 msgid "Target model type for template" msgstr "" -#: report/models.py:234 +#: report/models.py:242 msgid "Filters" msgstr "Filtros" -#: report/models.py:235 +#: report/models.py:243 msgid "Template query filters (comma-separated list of key=value pairs)" msgstr "" -#: report/models.py:294 report/models.py:361 +#: report/models.py:302 report/models.py:369 msgid "Template file" msgstr "" -#: report/models.py:302 +#: report/models.py:310 msgid "Page size for PDF reports" msgstr "Tamanho da página para relatórios PDF" -#: report/models.py:308 +#: report/models.py:316 msgid "Render report in landscape orientation" msgstr "Renderizar relatório em orientação paisagem" -#: report/models.py:367 +#: report/models.py:375 msgid "Width [mm]" msgstr "Largura [mm]" -#: report/models.py:368 +#: report/models.py:376 msgid "Label width, specified in mm" msgstr "Largura da etiqueta, em mm" -#: report/models.py:374 +#: report/models.py:382 msgid "Height [mm]" msgstr "Altura [mm]" -#: report/models.py:375 +#: report/models.py:383 msgid "Label height, specified in mm" msgstr "Altura da Etiqueta, em mm" -#: report/models.py:438 +#: report/models.py:446 msgid "Number of items to process" msgstr "" -#: report/models.py:444 +#: report/models.py:452 msgid "Report generation is complete" msgstr "" -#: report/models.py:448 templates/js/translated/build.js:2349 +#: report/models.py:456 templates/js/translated/build.js:2352 msgid "Progress" msgstr "Progresso" -#: report/models.py:448 +#: report/models.py:456 msgid "Report generation progress" msgstr "" -#: report/models.py:456 +#: report/models.py:464 msgid "Report Template" msgstr "" -#: report/models.py:463 report/models.py:486 +#: report/models.py:471 report/models.py:494 msgid "Output File" msgstr "" -#: report/models.py:464 report/models.py:487 +#: report/models.py:472 report/models.py:495 msgid "Generated output file" msgstr "" -#: report/models.py:475 +#: report/models.py:483 msgid "Label output plugin" msgstr "" -#: report/models.py:479 +#: report/models.py:487 msgid "Label Template" msgstr "" -#: report/models.py:502 +#: report/models.py:510 msgid "Snippet" msgstr "Recorte" -#: report/models.py:503 +#: report/models.py:511 msgid "Report snippet file" msgstr "Relatar arquivo de recorte" -#: report/models.py:510 +#: report/models.py:518 msgid "Snippet file description" msgstr "Descrição do arquivo de recorte" -#: report/models.py:528 +#: report/models.py:536 msgid "Asset" msgstr "Patrimônio" -#: report/models.py:529 +#: report/models.py:537 msgid "Report asset file" msgstr "Reportar arquivo de ativos" -#: report/models.py:536 +#: report/models.py:544 msgid "Asset file description" msgstr "Descrição do arquivo de ativos" -#: report/serializers.py:91 +#: report/serializers.py:92 msgid "Select report template" msgstr "" -#: report/serializers.py:99 report/serializers.py:149 +#: report/serializers.py:100 report/serializers.py:150 msgid "List of item primary keys to include in the report" msgstr "" -#: report/serializers.py:132 +#: report/serializers.py:133 msgid "Select label template" msgstr "Selecione o modelo de etiqueta" -#: report/serializers.py:140 +#: report/serializers.py:141 msgid "Printing Plugin" msgstr "" -#: report/serializers.py:141 +#: report/serializers.py:142 msgid "Select plugin to use for label printing" msgstr "" @@ -9365,9 +9721,9 @@ msgstr "Fornecedor foi excluído" #: report/templates/report/inventree_sales_order_report.html:30 #: templates/js/translated/order.js:341 templates/js/translated/pricing.js:527 #: templates/js/translated/pricing.js:596 -#: templates/js/translated/pricing.js:834 -#: templates/js/translated/purchase_order.js:2185 -#: templates/js/translated/sales_order.js:1873 +#: templates/js/translated/pricing.js:832 +#: templates/js/translated/purchase_order.js:2169 +#: templates/js/translated/sales_order.js:1854 msgid "Unit Price" msgstr "Preço unitário" @@ -9379,13 +9735,18 @@ msgstr "Extra Itens de Linha" #: report/templates/report/inventree_purchase_order_report.html:72 #: report/templates/report/inventree_sales_order_report.html:72 -#: templates/js/translated/purchase_order.js:2087 -#: templates/js/translated/sales_order.js:1842 +#: templates/js/translated/purchase_order.js:2071 +#: templates/js/translated/sales_order.js:1823 #: templates/test_statistics_table.html:8 #: templates/test_statistics_table.html:19 msgid "Total" msgstr "" +#: report/templates/report/inventree_sales_order_shipment_report.html:23 +#: stock/templates/stock/stock_sidebar.html:8 +msgid "Allocations" +msgstr "Alocações" + #: report/templates/report/inventree_stock_location_report.html:97 msgid "Stock location items" msgstr "Estoque de itens do local" @@ -9403,15 +9764,13 @@ msgstr "Resultados do teste" msgid "Test" msgstr "Teste" -#: report/templates/report/inventree_test_report.html:103 stock/models.py:2544 -msgid "Result" -msgstr "Resultado" - #: report/templates/report/inventree_test_report.html:129 +#: templates/js/translated/stock.js:1448 msgid "Pass" msgstr "Aprovado" #: report/templates/report/inventree_test_report.html:131 +#: templates/js/translated/stock.js:1450 msgid "Fail" msgstr "Não Aprovado" @@ -9420,17 +9779,18 @@ msgid "No result (required)" msgstr "Sem resultado (obrigatório)" #: report/templates/report/inventree_test_report.html:140 +#: templates/js/translated/stock.js:1455 msgid "No result" msgstr "Nenhum resultado" #: report/templates/report/inventree_test_report.html:153 -#: stock/serializers.py:599 stock/templates/stock/stock_sidebar.html:16 +#: stock/serializers.py:626 stock/templates/stock/stock_sidebar.html:16 msgid "Installed Items" msgstr "Itens instalados" -#: report/templates/report/inventree_test_report.html:167 stock/admin.py:161 +#: report/templates/report/inventree_test_report.html:167 stock/admin.py:162 #: templates/js/translated/stock.js:706 templates/js/translated/stock.js:877 -#: templates/js/translated/stock.js:3194 +#: templates/js/translated/stock.js:3195 msgid "Serial" msgstr "Série" @@ -9450,67 +9810,67 @@ msgstr "Tag part_image necessita de uma instância de Peça" msgid "company_image tag requires a Company instance" msgstr "Tag company_image necessita de uma instância de Empresa" -#: stock/admin.py:51 stock/admin.py:171 +#: stock/admin.py:51 stock/admin.py:172 msgid "Location ID" msgstr "ID do local" -#: stock/admin.py:63 stock/templates/stock/location.html:128 -#: stock/templates/stock/location.html:134 +#: stock/admin.py:63 stock/templates/stock/location.html:129 +#: stock/templates/stock/location.html:135 msgid "Location Path" msgstr "Caminho do local" -#: stock/admin.py:148 +#: stock/admin.py:149 msgid "Stock Item ID" msgstr "ID do item estoque" -#: stock/admin.py:167 +#: stock/admin.py:168 msgid "Status Code" msgstr "Código da situação" -#: stock/admin.py:179 +#: stock/admin.py:180 msgid "Supplier Part ID" msgstr "Número da Peça do Fornecedor" -#: stock/admin.py:184 +#: stock/admin.py:185 msgid "Supplier Part SKU" msgstr "" -#: stock/admin.py:189 +#: stock/admin.py:190 msgid "Supplier ID" msgstr "ID do Fornecedor" -#: stock/admin.py:200 +#: stock/admin.py:201 msgid "Customer ID" msgstr "ID Cliente" -#: stock/admin.py:205 stock/models.py:825 -#: stock/templates/stock/item_base.html:354 +#: stock/admin.py:206 stock/models.py:902 +#: stock/templates/stock/item_base.html:351 msgid "Installed In" msgstr "Instalado em" -#: stock/admin.py:210 +#: stock/admin.py:211 msgid "Build ID" msgstr "ID da Produção" -#: stock/admin.py:220 +#: stock/admin.py:221 msgid "Sales Order ID" msgstr "ID do pedido de venda" -#: stock/admin.py:225 +#: stock/admin.py:226 msgid "Purchase Order ID" msgstr "ID do pedido de compra" -#: stock/admin.py:240 +#: stock/admin.py:241 msgid "Review Needed" msgstr "Revisão Necessária" -#: stock/admin.py:245 +#: stock/admin.py:246 msgid "Delete on Deplete" msgstr "Excluir quando esgotado" -#: stock/admin.py:260 stock/models.py:919 -#: stock/templates/stock/item_base.html:433 -#: templates/js/translated/stock.js:2315 users/models.py:124 +#: stock/admin.py:261 stock/models.py:996 +#: stock/templates/stock/item_base.html:430 +#: templates/js/translated/stock.js:2316 users/models.py:124 msgid "Expiry Date" msgstr "Data de validade" @@ -9526,11 +9886,11 @@ msgstr "" msgid "Include sub-locations in filtered results" msgstr "" -#: stock/api.py:367 stock/serializers.py:1186 +#: stock/api.py:366 stock/serializers.py:1217 msgid "Parent Location" msgstr "" -#: stock/api.py:368 +#: stock/api.py:367 msgid "Filter by parent location" msgstr "" @@ -9550,8 +9910,8 @@ msgstr "Data de validade antes" msgid "Expiry date after" msgstr "Data de validade depois" -#: stock/api.py:840 stock/serializers.py:604 -#: stock/templates/stock/item_base.html:439 +#: stock/api.py:840 stock/serializers.py:631 +#: stock/templates/stock/item_base.html:436 #: templates/js/translated/table_filters.js:448 msgid "Stale" msgstr "Inativo" @@ -9560,594 +9920,598 @@ msgstr "Inativo" msgid "Quantity is required" msgstr "Quantidade obrigatória" -#: stock/api.py:933 +#: stock/api.py:932 msgid "Valid part must be supplied" msgstr "Uma peça válida deve ser fornecida" -#: stock/api.py:964 +#: stock/api.py:959 msgid "The given supplier part does not exist" msgstr "A peça do fornecedor informado não existe" -#: stock/api.py:974 +#: stock/api.py:969 msgid "The supplier part has a pack size defined, but flag use_pack_size not set" msgstr "A peça do fornecedor tem um tamanho de pacote definido, mas o item use_pack_size não foi definida" -#: stock/api.py:1005 +#: stock/api.py:996 msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "Números de série não podem ser fornecidos para uma parte não rastreável" -#: stock/models.py:64 +#: stock/models.py:70 msgid "Stock Location type" msgstr "Tipo de Local de estoque" -#: stock/models.py:65 +#: stock/models.py:71 msgid "Stock Location types" msgstr "Tipos de Locais de estoque" -#: stock/models.py:91 +#: stock/models.py:97 msgid "Default icon for all locations that have no icon set (optional)" msgstr "Ícone padrão para todos os locais que não tem um ícone (opcional)" -#: stock/models.py:131 stock/models.py:807 -#: stock/templates/stock/location.html:17 +#: stock/models.py:137 stock/models.py:884 +#: stock/templates/stock/location.html:18 #: stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "Localização do estoque" -#: stock/models.py:132 stock/templates/stock/location.html:183 +#: stock/models.py:138 stock/templates/stock/location.html:184 #: templates/InvenTree/search.html:166 templates/js/translated/search.js:178 #: users/models.py:205 msgid "Stock Locations" msgstr "Locais de estoque" -#: stock/models.py:180 stock/models.py:968 -#: stock/templates/stock/item_base.html:247 +#: stock/models.py:186 stock/models.py:1045 +#: stock/templates/stock/item_base.html:244 msgid "Owner" msgstr "Responsavel" -#: stock/models.py:181 stock/models.py:969 +#: stock/models.py:187 stock/models.py:1046 msgid "Select Owner" msgstr "Selecionar Responsável" -#: stock/models.py:189 +#: stock/models.py:195 msgid "Stock items may not be directly located into a structural stock locations, but may be located to child locations." msgstr "Os itens de estoque podem não estar diretamente localizados em um local de estoque estrutural, mas podem ser localizados em locais filhos." -#: stock/models.py:196 templates/js/translated/stock.js:2865 +#: stock/models.py:202 templates/js/translated/stock.js:2866 #: templates/js/translated/table_filters.js:250 msgid "External" msgstr "Externo" -#: stock/models.py:197 +#: stock/models.py:203 msgid "This is an external stock location" msgstr "Esta é uma localização de estoque externo" -#: stock/models.py:203 templates/js/translated/stock.js:2874 +#: stock/models.py:209 templates/js/translated/stock.js:2875 #: templates/js/translated/table_filters.js:253 msgid "Location type" msgstr "Tipo de localização" -#: stock/models.py:207 +#: stock/models.py:213 msgid "Stock location type of this location" msgstr "Tipo de Local de Estoque para esta locação" -#: stock/models.py:279 +#: stock/models.py:285 msgid "You cannot make this stock location structural because some stock items are already located into it!" msgstr "Você não pode tornar este local do estoque estrutural, pois alguns itens de estoque já estão localizados nele!" -#: stock/models.py:664 +#: stock/models.py:492 +msgid "Part must be specified" +msgstr "" + +#: stock/models.py:741 msgid "Stock items cannot be located into structural stock locations!" msgstr "Os itens de estoque não podem estar localizados em locais de estoque estrutural!" -#: stock/models.py:691 stock/serializers.py:480 +#: stock/models.py:768 stock/serializers.py:492 msgid "Stock item cannot be created for virtual parts" msgstr "Item de estoque não pode ser criado para peças virtuais" -#: stock/models.py:708 +#: stock/models.py:785 #, python-brace-format msgid "Part type ('{self.supplier_part.part}') must be {self.part}" msgstr "Tipo de peça('{self.supplier_part.part}') deve ser {self.part}" -#: stock/models.py:718 stock/models.py:731 +#: stock/models.py:795 stock/models.py:808 msgid "Quantity must be 1 for item with a serial number" msgstr "A quantidade deve ser 1 para um item com número de série" -#: stock/models.py:721 +#: stock/models.py:798 msgid "Serial number cannot be set if quantity greater than 1" msgstr "Número de série não pode ser definido se quantidade maior que 1" -#: stock/models.py:743 +#: stock/models.py:820 msgid "Item cannot belong to itself" msgstr "O item não pode pertencer a si mesmo" -#: stock/models.py:748 +#: stock/models.py:825 msgid "Item must have a build reference if is_building=True" msgstr "Item deve ter uma referência de produção se is_building=True" -#: stock/models.py:761 +#: stock/models.py:838 msgid "Build reference does not point to the same part object" msgstr "Referência de produção não aponta ao mesmo objeto da peça" -#: stock/models.py:777 +#: stock/models.py:854 msgid "Parent Stock Item" msgstr "Item de Estoque Parental" -#: stock/models.py:789 +#: stock/models.py:866 msgid "Base part" msgstr "Peça base" -#: stock/models.py:799 +#: stock/models.py:876 msgid "Select a matching supplier part for this stock item" msgstr "Selecione uma peça do fornecedor correspondente para este item de estoque" -#: stock/models.py:811 +#: stock/models.py:888 msgid "Where is this stock item located?" msgstr "Onde está localizado este item de estoque?" -#: stock/models.py:819 stock/serializers.py:1580 +#: stock/models.py:896 stock/serializers.py:1611 msgid "Packaging this stock item is stored in" msgstr "Embalagem deste item de estoque está armazenado em" -#: stock/models.py:830 +#: stock/models.py:907 msgid "Is this item installed in another item?" msgstr "Este item está instalado em outro item?" -#: stock/models.py:849 +#: stock/models.py:926 msgid "Serial number for this item" msgstr "Número de série para este item" -#: stock/models.py:863 stock/serializers.py:1563 +#: stock/models.py:940 stock/serializers.py:1594 msgid "Batch code for this stock item" msgstr "Código do lote para este item de estoque" -#: stock/models.py:868 +#: stock/models.py:945 msgid "Stock Quantity" msgstr "Quantidade de Estoque" -#: stock/models.py:878 +#: stock/models.py:955 msgid "Source Build" msgstr "Produção de Origem" -#: stock/models.py:881 +#: stock/models.py:958 msgid "Build for this stock item" msgstr "Produção para este item de estoque" -#: stock/models.py:888 stock/templates/stock/item_base.html:363 +#: stock/models.py:965 stock/templates/stock/item_base.html:360 msgid "Consumed By" msgstr "Consumido por" -#: stock/models.py:891 +#: stock/models.py:968 msgid "Build order which consumed this stock item" msgstr "Pedido de produção que consumiu este item de estoque" -#: stock/models.py:900 +#: stock/models.py:977 msgid "Source Purchase Order" msgstr "Pedido de compra Fonte" -#: stock/models.py:904 +#: stock/models.py:981 msgid "Purchase order for this stock item" msgstr "Pedido de Compra para este item de estoque" -#: stock/models.py:910 +#: stock/models.py:987 msgid "Destination Sales Order" msgstr "Destino do Pedido de Venda" -#: stock/models.py:921 +#: stock/models.py:998 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "Data de validade para o item de estoque. Estoque será considerado expirado após este dia" -#: stock/models.py:939 +#: stock/models.py:1016 msgid "Delete on deplete" msgstr "Excluir quando esgotado" -#: stock/models.py:940 +#: stock/models.py:1017 msgid "Delete this Stock Item when stock is depleted" msgstr "Excluir este item de estoque quando o estoque for esgotado" -#: stock/models.py:960 +#: stock/models.py:1037 msgid "Single unit purchase price at time of purchase" msgstr "Preço de compra unitário único no momento da compra" -#: stock/models.py:991 +#: stock/models.py:1068 msgid "Converted to part" msgstr "Convertido para peça" -#: stock/models.py:1511 +#: stock/models.py:1600 msgid "Part is not set as trackable" msgstr "Peça não está definida como rastreável" -#: stock/models.py:1517 +#: stock/models.py:1606 msgid "Quantity must be integer" msgstr "Quantidade deve ser inteira" -#: stock/models.py:1525 +#: stock/models.py:1614 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({self.quantity})" msgstr "Quantidade não deve exceder a quantidade em estoque ({self.quantity})" -#: stock/models.py:1531 -msgid "Serial numbers must be a list of integers" -msgstr "Números de série devem ser uma lista de números inteiros" +#: stock/models.py:1620 +msgid "Serial numbers must be provided as a list" +msgstr "" -#: stock/models.py:1536 +#: stock/models.py:1625 msgid "Quantity does not match serial numbers" msgstr "A quantidade não corresponde aos números de série" -#: stock/models.py:1544 stock/serializers.py:726 -msgid "Serial numbers already exist" -msgstr "Números de série já existem" - -#: stock/models.py:1641 +#: stock/models.py:1747 stock/models.py:2563 msgid "Test template does not exist" msgstr "" -#: stock/models.py:1659 +#: stock/models.py:1765 msgid "Stock item has been assigned to a sales order" msgstr "Item em estoque foi reservado para um pedido" -#: stock/models.py:1663 +#: stock/models.py:1769 msgid "Stock item is installed in another item" msgstr "Item em estoque está instalado em outro item" -#: stock/models.py:1666 +#: stock/models.py:1772 msgid "Stock item contains other items" msgstr "item em estoque contem outro(s) items" -#: stock/models.py:1669 +#: stock/models.py:1775 msgid "Stock item has been assigned to a customer" msgstr "Item em estoque foi reservado para outro cliente" -#: stock/models.py:1672 +#: stock/models.py:1778 msgid "Stock item is currently in production" msgstr "Item no estoque está em produção no momento" -#: stock/models.py:1675 +#: stock/models.py:1781 msgid "Serialized stock cannot be merged" msgstr "Itens de série não podem ser mesclados" -#: stock/models.py:1682 stock/serializers.py:1469 +#: stock/models.py:1788 stock/serializers.py:1500 msgid "Duplicate stock items" msgstr "Item de estoque duplicado" -#: stock/models.py:1686 +#: stock/models.py:1792 msgid "Stock items must refer to the same part" msgstr "Itens de estoque devem se referir à mesma peça" -#: stock/models.py:1694 +#: stock/models.py:1800 msgid "Stock items must refer to the same supplier part" msgstr "Itens de estoque devem se referir à mesma peça do fornecedor" -#: stock/models.py:1699 +#: stock/models.py:1805 msgid "Stock status codes must match" msgstr "Códigos de estado do estoque devem corresponder" -#: stock/models.py:1960 +#: stock/models.py:2066 msgid "StockItem cannot be moved as it is not in stock" msgstr "Item do estoque não pode ser realocado se não houver estoque da mesma" -#: stock/models.py:2343 +#: stock/models.py:2462 msgid "Stock Item Tracking" msgstr "" -#: stock/models.py:2376 +#: stock/models.py:2495 msgid "Entry notes" msgstr "Observações de entrada" -#: stock/models.py:2416 +#: stock/models.py:2535 msgid "Stock Item Test Result" msgstr "" -#: stock/models.py:2449 +#: stock/models.py:2566 msgid "Value must be provided for this test" msgstr "Deve-se fornecer o valor desse teste" -#: stock/models.py:2454 +#: stock/models.py:2570 msgid "Attachment must be uploaded for this test" msgstr "O anexo deve ser enviado para este teste" -#: stock/models.py:2459 +#: stock/models.py:2575 msgid "Invalid value for this test" msgstr "" -#: stock/models.py:2544 +#: stock/models.py:2660 msgid "Test result" msgstr "Resultado do teste" -#: stock/models.py:2551 +#: stock/models.py:2667 msgid "Test output value" msgstr "Valor da saída do teste" -#: stock/models.py:2559 +#: stock/models.py:2675 stock/serializers.py:245 msgid "Test result attachment" msgstr "Anexo do resultado do teste" -#: stock/models.py:2563 +#: stock/models.py:2679 msgid "Test notes" msgstr "Notas do teste" -#: stock/models.py:2571 templates/js/translated/stock.js:1633 +#: stock/models.py:2687 templates/js/translated/stock.js:1633 msgid "Test station" msgstr "" -#: stock/models.py:2572 +#: stock/models.py:2688 msgid "The identifier of the test station where the test was performed" msgstr "" -#: stock/models.py:2578 +#: stock/models.py:2694 msgid "Started" msgstr "" -#: stock/models.py:2579 +#: stock/models.py:2695 msgid "The timestamp of the test start" msgstr "" -#: stock/models.py:2585 +#: stock/models.py:2701 msgid "Finished" msgstr "" -#: stock/models.py:2586 +#: stock/models.py:2702 msgid "The timestamp of the test finish" msgstr "" -#: stock/serializers.py:76 +#: stock/serializers.py:77 msgid "Generated batch code" msgstr "" -#: stock/serializers.py:85 +#: stock/serializers.py:86 msgid "Select build order" msgstr "" -#: stock/serializers.py:94 +#: stock/serializers.py:95 msgid "Select stock item to generate batch code for" msgstr "" -#: stock/serializers.py:103 +#: stock/serializers.py:104 msgid "Select location to generate batch code for" msgstr "" -#: stock/serializers.py:112 +#: stock/serializers.py:113 msgid "Select part to generate batch code for" msgstr "" -#: stock/serializers.py:121 +#: stock/serializers.py:122 msgid "Select purchase order" msgstr "" -#: stock/serializers.py:128 +#: stock/serializers.py:129 msgid "Enter quantity for batch code" msgstr "" -#: stock/serializers.py:151 +#: stock/serializers.py:152 msgid "Generated serial number" msgstr "" -#: stock/serializers.py:160 +#: stock/serializers.py:161 msgid "Select part to generate serial number for" msgstr "" -#: stock/serializers.py:168 +#: stock/serializers.py:169 msgid "Quantity of serial numbers to generate" msgstr "" -#: stock/serializers.py:233 +#: stock/serializers.py:234 msgid "Test template for this result" msgstr "" -#: stock/serializers.py:254 +#: stock/serializers.py:258 msgid "Template ID or test name must be provided" msgstr "" -#: stock/serializers.py:286 +#: stock/serializers.py:290 msgid "The test finished time cannot be earlier than the test started time" msgstr "" -#: stock/serializers.py:323 +#: stock/serializers.py:327 msgid "Serial number is too large" msgstr "Número de série é muito grande" -#: stock/serializers.py:452 stock/templates/stock/item_base.html:193 +#: stock/serializers.py:462 stock/templates/stock/item_base.html:190 msgid "Parent Item" msgstr "Item Primário" -#: stock/serializers.py:453 +#: stock/serializers.py:463 msgid "Parent stock item" msgstr "" -#: stock/serializers.py:472 +#: stock/serializers.py:484 msgid "Use pack size when adding: the quantity defined is the number of packs" msgstr "Usar tamanho do pacote ao adicionar: a quantidade definida é o número de pacotes" -#: stock/serializers.py:596 stock/templates/stock/item_base.html:437 +#: stock/serializers.py:623 stock/templates/stock/item_base.html:434 #: templates/js/translated/table_filters.js:442 users/models.py:174 msgid "Expired" msgstr "Expirado" -#: stock/serializers.py:602 stock/templates/stock/stock_sidebar.html:20 +#: stock/serializers.py:629 stock/templates/stock/stock_sidebar.html:20 msgid "Child Items" msgstr "Itens Filhos" -#: stock/serializers.py:606 +#: stock/serializers.py:633 msgid "Tracking Items" msgstr "" -#: stock/serializers.py:612 +#: stock/serializers.py:639 msgid "Purchase price of this stock item, per unit or pack" msgstr "Preço de compra para este item de estoque, por unidade ou pacote" -#: stock/serializers.py:631 +#: stock/serializers.py:658 msgid "Minimum Pricing" msgstr "" -#: stock/serializers.py:637 +#: stock/serializers.py:664 msgid "Maximum Pricing" msgstr "" -#: stock/serializers.py:661 +#: stock/serializers.py:688 msgid "Enter number of stock items to serialize" msgstr "Insira o número de itens de estoque para serializar" -#: stock/serializers.py:674 +#: stock/serializers.py:701 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({q})" msgstr "Quantidade não deve exceder a quantidade disponível em estoque ({q})" -#: stock/serializers.py:681 +#: stock/serializers.py:708 msgid "Enter serial numbers for new items" msgstr "Inserir número de série para novos itens" -#: stock/serializers.py:692 stock/serializers.py:1426 stock/serializers.py:1682 +#: stock/serializers.py:719 stock/serializers.py:1457 stock/serializers.py:1713 msgid "Destination stock location" msgstr "Local de destino do estoque" -#: stock/serializers.py:699 +#: stock/serializers.py:726 msgid "Optional note field" msgstr "Campo opcional de notas" -#: stock/serializers.py:709 +#: stock/serializers.py:736 msgid "Serial numbers cannot be assigned to this part" msgstr "Números de série não podem ser atribuídos a esta peça" -#: stock/serializers.py:764 +#: stock/serializers.py:756 +msgid "Serial numbers already exist" +msgstr "Números de série já existem" + +#: stock/serializers.py:795 msgid "Select stock item to install" msgstr "Selecione o item de estoque para instalar" -#: stock/serializers.py:771 +#: stock/serializers.py:802 msgid "Quantity to Install" msgstr "Quantidade a Instalar" -#: stock/serializers.py:772 +#: stock/serializers.py:803 msgid "Enter the quantity of items to install" msgstr "Insira a quantidade de itens a instalar" -#: stock/serializers.py:777 stock/serializers.py:857 stock/serializers.py:983 -#: stock/serializers.py:1033 +#: stock/serializers.py:808 stock/serializers.py:888 stock/serializers.py:1014 +#: stock/serializers.py:1064 msgid "Add transaction note (optional)" msgstr "Adicionar nota de transação (opcional)" -#: stock/serializers.py:785 +#: stock/serializers.py:816 msgid "Quantity to install must be at least 1" msgstr "A quantidade para instalar deve ser pelo menos 1" -#: stock/serializers.py:793 +#: stock/serializers.py:824 msgid "Stock item is unavailable" msgstr "Item de estoque indisponível" -#: stock/serializers.py:804 +#: stock/serializers.py:835 msgid "Selected part is not in the Bill of Materials" msgstr "Peça selecionada não está na Lista de Materiais" -#: stock/serializers.py:817 +#: stock/serializers.py:848 msgid "Quantity to install must not exceed available quantity" msgstr "Quantidade a instalar não deve exceder a quantidade disponível" -#: stock/serializers.py:852 +#: stock/serializers.py:883 msgid "Destination location for uninstalled item" msgstr "Local de destino para o item desinstalado" -#: stock/serializers.py:903 +#: stock/serializers.py:934 msgid "Unsupported statistic type: " msgstr "" -#: stock/serializers.py:917 +#: stock/serializers.py:948 msgid "Select part to convert stock item into" msgstr "Selecione peça para converter o item de estoque em" -#: stock/serializers.py:930 +#: stock/serializers.py:961 msgid "Selected part is not a valid option for conversion" msgstr "Peça selecionada não é uma opção válida para conversão" -#: stock/serializers.py:947 +#: stock/serializers.py:978 msgid "Cannot convert stock item with assigned SupplierPart" msgstr "Não é possível converter o item de estoque com a Peça de Fornecedor atribuída" -#: stock/serializers.py:978 +#: stock/serializers.py:1009 msgid "Destination location for returned item" msgstr "Local de destino para item retornado" -#: stock/serializers.py:1015 +#: stock/serializers.py:1046 msgid "Select stock items to change status" msgstr "Selecionar itens de estoque para mudar estados" -#: stock/serializers.py:1021 +#: stock/serializers.py:1052 msgid "No stock items selected" msgstr "Nenhum item de estoque selecionado" -#: stock/serializers.py:1117 stock/serializers.py:1194 -#: stock/templates/stock/location.html:162 -#: stock/templates/stock/location.html:219 +#: stock/serializers.py:1148 stock/serializers.py:1225 +#: stock/templates/stock/location.html:163 +#: stock/templates/stock/location.html:220 #: stock/templates/stock/location_sidebar.html:5 msgid "Sublocations" msgstr "Sub-locais" -#: stock/serializers.py:1187 templates/js/translated/stock.js:160 +#: stock/serializers.py:1218 templates/js/translated/stock.js:160 msgid "Parent stock location" msgstr "" -#: stock/serializers.py:1298 +#: stock/serializers.py:1329 msgid "Part must be salable" msgstr "Parte deve ser comercializável" -#: stock/serializers.py:1302 +#: stock/serializers.py:1333 msgid "Item is allocated to a sales order" msgstr "Item é alocado para um pedido de venda" -#: stock/serializers.py:1306 +#: stock/serializers.py:1337 msgid "Item is allocated to a build order" msgstr "Item está alocado a um pedido de produção" -#: stock/serializers.py:1330 +#: stock/serializers.py:1361 msgid "Customer to assign stock items" msgstr "Cliente para atribuir itens de estoque" -#: stock/serializers.py:1336 +#: stock/serializers.py:1367 msgid "Selected company is not a customer" msgstr "A empresa selecionada não é um cliente" -#: stock/serializers.py:1344 +#: stock/serializers.py:1375 msgid "Stock assignment notes" msgstr "Nodas atribuídas a estoque" -#: stock/serializers.py:1354 stock/serializers.py:1608 +#: stock/serializers.py:1385 stock/serializers.py:1639 msgid "A list of stock items must be provided" msgstr "Uma lista de item de estoque deve ser providenciada" -#: stock/serializers.py:1433 +#: stock/serializers.py:1464 msgid "Stock merging notes" msgstr "Notas de fusão de estoque" -#: stock/serializers.py:1438 +#: stock/serializers.py:1469 msgid "Allow mismatched suppliers" msgstr "Permitir fornecedores divergentes" -#: stock/serializers.py:1439 +#: stock/serializers.py:1470 msgid "Allow stock items with different supplier parts to be merged" msgstr "Permitir a fusão de itens de estoque de fornecedores diferentes" -#: stock/serializers.py:1444 +#: stock/serializers.py:1475 msgid "Allow mismatched status" msgstr "Permitir estado incompatível" -#: stock/serializers.py:1445 +#: stock/serializers.py:1476 msgid "Allow stock items with different status codes to be merged" msgstr "Permitir a fusão de itens de estoque com estado diferentes" -#: stock/serializers.py:1455 +#: stock/serializers.py:1486 msgid "At least two stock items must be provided" msgstr "Ao menos dois itens de estoque devem ser providenciados" -#: stock/serializers.py:1522 +#: stock/serializers.py:1553 msgid "No Change" msgstr "" -#: stock/serializers.py:1551 +#: stock/serializers.py:1582 msgid "StockItem primary key value" msgstr "Valor da chave primária do Item Estoque" -#: stock/serializers.py:1570 +#: stock/serializers.py:1601 msgid "Stock item status code" msgstr "Código de estado do item estoque" -#: stock/serializers.py:1598 +#: stock/serializers.py:1629 msgid "Stock transaction notes" msgstr "Notas da transação de estoque" @@ -10175,107 +10539,107 @@ msgstr "Rejeitado" msgid "Quarantined" msgstr "Em quarentena" -#: stock/status_codes.py:40 +#: stock/status_codes.py:44 msgid "Legacy stock tracking entry" msgstr "Entrada de rastreamento de estoque antiga" -#: stock/status_codes.py:42 templates/js/translated/stock.js:550 +#: stock/status_codes.py:46 templates/js/translated/stock.js:550 msgid "Stock item created" msgstr "Item de estoque criado" -#: stock/status_codes.py:45 +#: stock/status_codes.py:49 msgid "Edited stock item" msgstr "Item de estoque editado" -#: stock/status_codes.py:46 +#: stock/status_codes.py:50 msgid "Assigned serial number" msgstr "Número de série atribuído" -#: stock/status_codes.py:49 +#: stock/status_codes.py:53 msgid "Stock counted" msgstr "Estoque contado" -#: stock/status_codes.py:50 +#: stock/status_codes.py:54 msgid "Stock manually added" msgstr "Estoque adicionado manualmente" -#: stock/status_codes.py:51 +#: stock/status_codes.py:55 msgid "Stock manually removed" msgstr "Estoque removido manualmente" -#: stock/status_codes.py:54 +#: stock/status_codes.py:58 msgid "Location changed" msgstr "Local alterado" -#: stock/status_codes.py:55 +#: stock/status_codes.py:59 msgid "Stock updated" msgstr "Estoque atualizado" -#: stock/status_codes.py:58 +#: stock/status_codes.py:62 msgid "Installed into assembly" msgstr "Instalado na montagem" -#: stock/status_codes.py:59 +#: stock/status_codes.py:63 msgid "Removed from assembly" msgstr "Removido da montagem" -#: stock/status_codes.py:61 +#: stock/status_codes.py:65 msgid "Installed component item" msgstr "Instalado componente do Item" -#: stock/status_codes.py:62 +#: stock/status_codes.py:66 msgid "Removed component item" msgstr "Removido componente do Item" -#: stock/status_codes.py:65 +#: stock/status_codes.py:69 msgid "Split from parent item" msgstr "Separado do Item Paternal" -#: stock/status_codes.py:66 +#: stock/status_codes.py:70 msgid "Split child item" msgstr "Separar o Item filho" -#: stock/status_codes.py:69 templates/js/translated/stock.js:1943 +#: stock/status_codes.py:73 templates/js/translated/stock.js:1944 msgid "Merged stock items" msgstr "Itens de estoque mesclados" -#: stock/status_codes.py:72 +#: stock/status_codes.py:76 msgid "Converted to variant" msgstr "Convertido para variável" -#: stock/status_codes.py:75 +#: stock/status_codes.py:79 msgid "Build order output created" msgstr "Criação dos pedidos de produção criado" -#: stock/status_codes.py:76 +#: stock/status_codes.py:80 msgid "Build order output completed" msgstr "Criação do pedido de produção completado" -#: stock/status_codes.py:77 +#: stock/status_codes.py:81 msgid "Build order output rejected" msgstr "Saída do pedido de produção rejeitada" -#: stock/status_codes.py:78 templates/js/translated/stock.js:1849 +#: stock/status_codes.py:82 templates/js/translated/stock.js:1849 msgid "Consumed by build order" msgstr "Usado no pedido de produção" -#: stock/status_codes.py:81 +#: stock/status_codes.py:85 msgid "Shipped against Sales Order" msgstr "Enviado contra o Pedido de Venda" -#: stock/status_codes.py:84 +#: stock/status_codes.py:88 msgid "Received against Purchase Order" msgstr "Recebido referente ao Pedido de Compra" -#: stock/status_codes.py:87 +#: stock/status_codes.py:91 msgid "Returned against Return Order" msgstr "Devolvido contra Pedido de Retorno" -#: stock/status_codes.py:90 templates/js/translated/table_filters.js:382 +#: stock/status_codes.py:94 templates/js/translated/table_filters.js:382 msgid "Sent to customer" msgstr "Enviado ao cliente" -#: stock/status_codes.py:91 +#: stock/status_codes.py:95 msgid "Returned from customer" msgstr "Devolvido pelo cliente" @@ -10296,7 +10660,7 @@ msgstr "Este item de estoque não possuí nenhum filho" msgid "Test Data" msgstr "Dados de teste" -#: stock/templates/stock/item.html:85 stock/templates/stock/item_base.html:65 +#: stock/templates/stock/item.html:85 msgid "Test Report" msgstr "Relatório do teste" @@ -10316,7 +10680,7 @@ msgstr "Notas de Item Estoque" msgid "Installed Stock Items" msgstr "Itens de Estoque Instalados" -#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3354 +#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3355 msgid "Install Stock Item" msgstr "Instalar Item de Estoque" @@ -10328,208 +10692,212 @@ msgstr "Excluir todos os resultados de teste deste item de estoque" msgid "Add Test Result" msgstr "Adicionar Resultado de Teste" -#: stock/templates/stock/item_base.html:33 +#: stock/templates/stock/item_base.html:34 msgid "Locate stock item" msgstr "Localizar item de estoque" -#: stock/templates/stock/item_base.html:51 +#: stock/templates/stock/item_base.html:52 msgid "Scan to Location" msgstr "Escanear a Localização" #: stock/templates/stock/item_base.html:59 -#: stock/templates/stock/location.html:67 +#: stock/templates/stock/location.html:68 #: templates/js/translated/filters.js:434 msgid "Printing actions" msgstr "Ações de Impressão" -#: stock/templates/stock/item_base.html:75 +#: stock/templates/stock/item_base.html:64 templates/js/translated/report.js:49 +msgid "Print Report" +msgstr "" + +#: stock/templates/stock/item_base.html:72 msgid "Stock adjustment actions" msgstr "Ações de ajuste de estoque" -#: stock/templates/stock/item_base.html:79 -#: stock/templates/stock/location.html:87 templates/js/translated/stock.js:1909 +#: stock/templates/stock/item_base.html:76 +#: stock/templates/stock/location.html:88 templates/js/translated/stock.js:1909 msgid "Count stock" msgstr "Contagem de estoque" -#: stock/templates/stock/item_base.html:81 +#: stock/templates/stock/item_base.html:78 #: templates/js/translated/stock.js:1891 msgid "Add stock" msgstr "Adicionar estoque" -#: stock/templates/stock/item_base.html:82 +#: stock/templates/stock/item_base.html:79 #: templates/js/translated/stock.js:1900 msgid "Remove stock" msgstr "Remover estoque" -#: stock/templates/stock/item_base.html:85 +#: stock/templates/stock/item_base.html:82 msgid "Serialize stock" msgstr "Serializar estoque" -#: stock/templates/stock/item_base.html:88 -#: stock/templates/stock/location.html:93 templates/js/translated/stock.js:1918 +#: stock/templates/stock/item_base.html:85 +#: stock/templates/stock/location.html:94 templates/js/translated/stock.js:1918 msgid "Transfer stock" msgstr "Transferir estoque" -#: stock/templates/stock/item_base.html:91 -#: templates/js/translated/stock.js:1972 +#: stock/templates/stock/item_base.html:88 +#: templates/js/translated/stock.js:1973 msgid "Assign to customer" msgstr "Disponibilizar para o cliente" -#: stock/templates/stock/item_base.html:94 +#: stock/templates/stock/item_base.html:91 msgid "Return to stock" msgstr "Devolver ao estoque" -#: stock/templates/stock/item_base.html:97 +#: stock/templates/stock/item_base.html:94 msgid "Uninstall stock item" msgstr "Desinstalar o item do estoque" -#: stock/templates/stock/item_base.html:97 +#: stock/templates/stock/item_base.html:94 msgid "Uninstall" msgstr "Desinstalar" -#: stock/templates/stock/item_base.html:101 +#: stock/templates/stock/item_base.html:98 msgid "Install stock item" msgstr "Instalar item do estoque" -#: stock/templates/stock/item_base.html:101 +#: stock/templates/stock/item_base.html:98 msgid "Install" msgstr "Instalar" -#: stock/templates/stock/item_base.html:115 +#: stock/templates/stock/item_base.html:112 msgid "Convert to variant" msgstr "Converter em variante" -#: stock/templates/stock/item_base.html:118 +#: stock/templates/stock/item_base.html:115 msgid "Duplicate stock item" msgstr "Duplicar item" -#: stock/templates/stock/item_base.html:120 +#: stock/templates/stock/item_base.html:117 msgid "Edit stock item" msgstr "Editar item de estoque" -#: stock/templates/stock/item_base.html:123 +#: stock/templates/stock/item_base.html:120 msgid "Delete stock item" msgstr "Excluir item de estoque" -#: stock/templates/stock/item_base.html:169 templates/InvenTree/search.html:139 -#: templates/js/translated/build.js:2295 templates/navbar.html:38 +#: stock/templates/stock/item_base.html:166 templates/InvenTree/search.html:139 +#: templates/js/translated/build.js:2298 templates/navbar.html:38 msgid "Build" msgstr "Produção" -#: stock/templates/stock/item_base.html:211 +#: stock/templates/stock/item_base.html:208 msgid "No manufacturer set" msgstr "Nenhum fabricante definido" -#: stock/templates/stock/item_base.html:251 +#: stock/templates/stock/item_base.html:248 msgid "You are not in the list of owners of this item. This stock item cannot be edited." msgstr "Você não está autorizado a editar esse item." -#: stock/templates/stock/item_base.html:252 -#: stock/templates/stock/location.html:146 +#: stock/templates/stock/item_base.html:249 +#: stock/templates/stock/location.html:147 msgid "Read only" msgstr "Somente leitura" -#: stock/templates/stock/item_base.html:265 +#: stock/templates/stock/item_base.html:262 msgid "This stock item is unavailable" msgstr "Este item não está disponível no estoque" -#: stock/templates/stock/item_base.html:271 +#: stock/templates/stock/item_base.html:268 msgid "This stock item is in production and cannot be edited." msgstr "Este item de estoque está em produção e não pode ser editado." -#: stock/templates/stock/item_base.html:272 +#: stock/templates/stock/item_base.html:269 msgid "Edit the stock item from the build view." msgstr "Edite este item usando o formulário de construçao." -#: stock/templates/stock/item_base.html:287 +#: stock/templates/stock/item_base.html:284 msgid "This stock item is allocated to Sales Order" msgstr "Este item de estoque está alocado a um pedido de venda" -#: stock/templates/stock/item_base.html:295 +#: stock/templates/stock/item_base.html:292 msgid "This stock item is allocated to Build Order" msgstr "Este item de estoque está alocado a um pedido de produção" -#: stock/templates/stock/item_base.html:311 +#: stock/templates/stock/item_base.html:308 msgid "This stock item is serialized. It has a unique serial number and the quantity cannot be adjusted" msgstr "Este item de estoque é serializado. Tem um único número de série e a quantidade não pode ser ajustada" -#: stock/templates/stock/item_base.html:317 +#: stock/templates/stock/item_base.html:314 msgid "previous page" msgstr "página anterior" -#: stock/templates/stock/item_base.html:317 +#: stock/templates/stock/item_base.html:314 msgid "Navigate to previous serial number" msgstr "Navegar para o número de série anterior" -#: stock/templates/stock/item_base.html:326 +#: stock/templates/stock/item_base.html:323 msgid "next page" msgstr "próxima página" -#: stock/templates/stock/item_base.html:326 +#: stock/templates/stock/item_base.html:323 msgid "Navigate to next serial number" msgstr "Navegar para o próximo número de série" -#: stock/templates/stock/item_base.html:398 -#: templates/js/translated/build.js:2552 +#: stock/templates/stock/item_base.html:395 +#: templates/js/translated/build.js:2559 msgid "No location set" msgstr "Nenhum local definido" -#: stock/templates/stock/item_base.html:413 +#: stock/templates/stock/item_base.html:410 msgid "Tests" msgstr "Testes" -#: stock/templates/stock/item_base.html:419 +#: stock/templates/stock/item_base.html:416 msgid "This stock item has not passed all required tests" msgstr "Este item de estoque não passou todos os testes necessários" -#: stock/templates/stock/item_base.html:437 +#: stock/templates/stock/item_base.html:434 #, python-format msgid "This StockItem expired on %(item.expiry_date)s" msgstr "Este Item do Estoque expirou em %(item.expiry_date)s" -#: stock/templates/stock/item_base.html:439 +#: stock/templates/stock/item_base.html:436 #, python-format msgid "This StockItem expires on %(item.expiry_date)s" msgstr "Este Item do Estoque expira em %(item.expiry_date)s" -#: stock/templates/stock/item_base.html:455 +#: stock/templates/stock/item_base.html:452 msgid "No stocktake performed" msgstr "Nenhum balanço feito" -#: stock/templates/stock/item_base.html:504 -#: templates/js/translated/stock.js:2037 +#: stock/templates/stock/item_base.html:501 +#: templates/js/translated/stock.js:2038 msgid "stock item" msgstr "item de estoque" -#: stock/templates/stock/item_base.html:527 +#: stock/templates/stock/item_base.html:524 msgid "Edit Stock Status" msgstr "Editar Situação do Estoque" -#: stock/templates/stock/item_base.html:536 +#: stock/templates/stock/item_base.html:533 msgid "Stock Item QR Code" msgstr "QR Code do Item de Estoque" -#: stock/templates/stock/item_base.html:547 +#: stock/templates/stock/item_base.html:544 msgid "Link Barcode to Stock Item" msgstr "Vincular Código de barras ao item de estoque" -#: stock/templates/stock/item_base.html:611 +#: stock/templates/stock/item_base.html:608 msgid "Select one of the part variants listed below." msgstr "Selecione uma das peças variantes listada abaixo." -#: stock/templates/stock/item_base.html:614 +#: stock/templates/stock/item_base.html:611 msgid "Warning" msgstr "Atenção" -#: stock/templates/stock/item_base.html:615 +#: stock/templates/stock/item_base.html:612 msgid "This action cannot be easily undone" msgstr "Esta ação não pode ser facilmente desfeita" -#: stock/templates/stock/item_base.html:623 +#: stock/templates/stock/item_base.html:620 msgid "Convert Stock Item" msgstr "Converter Item de Estoque" -#: stock/templates/stock/item_base.html:656 +#: stock/templates/stock/item_base.html:653 msgid "Return to Stock" msgstr "Retornar ao Estoque" @@ -10541,84 +10909,84 @@ msgstr "Criar itens serializados deste item de estoque." msgid "Select quantity to serialize, and unique serial numbers." msgstr "Selecione a quantidade para serializar e números de série único." -#: stock/templates/stock/location.html:35 +#: stock/templates/stock/location.html:36 msgid "Perform stocktake for this stock location" msgstr "Fazer balanço para o estoque deste local" -#: stock/templates/stock/location.html:42 +#: stock/templates/stock/location.html:43 msgid "Locate stock location" msgstr "Localizar o local de estoque" -#: stock/templates/stock/location.html:60 +#: stock/templates/stock/location.html:61 msgid "Scan stock items into this location" msgstr "Buscar itens de estoque neste local" -#: stock/templates/stock/location.html:60 +#: stock/templates/stock/location.html:61 msgid "Scan In Stock Items" msgstr "Buscar nos Itens de Estoque" -#: stock/templates/stock/location.html:61 +#: stock/templates/stock/location.html:62 msgid "Scan stock container into this location" msgstr "Buscar recipiente do estoque neste local" -#: stock/templates/stock/location.html:61 +#: stock/templates/stock/location.html:62 msgid "Scan In Container" msgstr "Buscar no recipiente" -#: stock/templates/stock/location.html:72 +#: stock/templates/stock/location.html:73 msgid "Print Location Report" msgstr "Imprimir Relatório da Localização" -#: stock/templates/stock/location.html:101 +#: stock/templates/stock/location.html:102 msgid "Location actions" msgstr "Ações de Locais" -#: stock/templates/stock/location.html:103 +#: stock/templates/stock/location.html:104 msgid "Edit location" msgstr "Editar Local" -#: stock/templates/stock/location.html:105 +#: stock/templates/stock/location.html:106 msgid "Delete location" msgstr "Excluir Local" -#: stock/templates/stock/location.html:135 +#: stock/templates/stock/location.html:136 msgid "Top level stock location" msgstr "Local de estoque de alto nível" -#: stock/templates/stock/location.html:141 +#: stock/templates/stock/location.html:142 msgid "Location Owner" msgstr "Dono do Local" -#: stock/templates/stock/location.html:145 +#: stock/templates/stock/location.html:146 msgid "You are not in the list of owners of this location. This stock location cannot be edited." msgstr "Você não está na lista de donos deste local. Este local de estoque não pode ser editado." -#: stock/templates/stock/location.html:173 +#: stock/templates/stock/location.html:174 msgid "Location Type" msgstr "" -#: stock/templates/stock/location.html:223 +#: stock/templates/stock/location.html:224 msgid "Create new stock location" msgstr "Criar novo local de estoque" -#: stock/templates/stock/location.html:224 +#: stock/templates/stock/location.html:225 msgid "New Location" msgstr "Novo local" -#: stock/templates/stock/location.html:298 -#: templates/js/translated/stock.js:2657 +#: stock/templates/stock/location.html:299 +#: templates/js/translated/stock.js:2658 msgid "stock location" msgstr "local de estoque" -#: stock/templates/stock/location.html:320 +#: stock/templates/stock/location.html:321 msgid "Scanned stock container into this location" msgstr "Escaneado o recipiente de estoque neste local" -#: stock/templates/stock/location.html:393 +#: stock/templates/stock/location.html:394 msgid "Stock Location QR Code" msgstr "Código QR do Local de Estoque" -#: stock/templates/stock/location.html:404 +#: stock/templates/stock/location.html:405 msgid "Link Barcode to Stock Location" msgstr "Ligar Código de barras ao Local de Estoque" @@ -10630,10 +10998,6 @@ msgstr "Carregando..." msgid "Stock Tracking" msgstr "Rastreamento de estoque" -#: stock/templates/stock/stock_sidebar.html:8 -msgid "Allocations" -msgstr "Alocações" - #: templates/403.html:6 templates/403.html:12 templates/403_csrf.html:7 msgid "Permission Denied" msgstr "Permissão Negada" @@ -11107,9 +11471,9 @@ msgid "Rate" msgstr "Taxa" #: templates/InvenTree/settings/settings_staff_js.html:81 -#: templates/js/translated/forms.js:548 templates/js/translated/helpers.js:108 +#: templates/js/translated/forms.js:548 templates/js/translated/helpers.js:109 #: templates/js/translated/part.js:395 templates/js/translated/pricing.js:629 -#: templates/js/translated/stock.js:252 users/models.py:406 +#: templates/js/translated/stock.js:252 users/models.py:408 msgid "Delete" msgstr "Excluir" @@ -11130,7 +11494,7 @@ msgid "No project codes found" msgstr "Nenhum código de projetos encontrado" #: templates/InvenTree/settings/settings_staff_js.html:158 -#: templates/js/translated/build.js:2400 +#: templates/js/translated/build.js:2403 msgid "group" msgstr "grupo" @@ -11196,7 +11560,7 @@ msgid "Delete Location Type" msgstr "Apagar Tipo de Localização" #: templates/InvenTree/settings/settings_staff_js.html:503 -#: templates/InvenTree/settings/stock.html:38 +#: templates/InvenTree/settings/stock.html:39 msgid "New Location Type" msgstr "Novo Tipo de localização" @@ -11253,7 +11617,7 @@ msgstr "Configurações do Pedido de Venda" msgid "Stock Settings" msgstr "Configurações de Estoque" -#: templates/InvenTree/settings/stock.html:34 +#: templates/InvenTree/settings/stock.html:35 msgid "Stock Location Types" msgstr "Tipos de Locais de estoque" @@ -11280,7 +11644,7 @@ msgid "Unverified" msgstr "Não verificado" #: templates/InvenTree/settings/user.html:80 -#: templates/js/translated/company.js:957 +#: templates/js/translated/company.js:958 msgid "Primary" msgstr "Principal" @@ -11532,7 +11896,7 @@ msgid "Submit Bug Report" msgstr "Enviar relatório de erro" #: templates/about.html:91 templates/clip.html:4 -#: templates/js/translated/helpers.js:592 +#: templates/js/translated/helpers.js:598 msgid "copy to clipboard" msgstr "copiar para área de transferência" @@ -11738,23 +12102,24 @@ msgstr "Adicionar anexo" msgid "Barcode Identifier" msgstr "Identificador de Código de Barras" -#: templates/base.html:103 +#: templates/base.html:102 msgid "Server Restart Required" msgstr "Reinicialização do Servidor é Necessária" -#: templates/base.html:106 +#: templates/base.html:105 msgid "A configuration option has been changed which requires a server restart" msgstr "Uma opção de configuração foi alterada, o que requer uma reinicialização do servidor" -#: templates/base.html:106 templates/base.html:116 +#: templates/base.html:105 templates/base.html:115 +#: templates/socialaccount/authentication_error.html:13 msgid "Contact your system administrator for further information" msgstr "Contate seu administrador de sistema para mais informações" -#: templates/base.html:113 +#: templates/base.html:112 msgid "Pending Database Migrations" msgstr "Migrações de Banco de Dados Pendentes" -#: templates/base.html:116 +#: templates/base.html:115 msgid "There are pending database migrations which require attention" msgstr "Existem migrações pendentes do banco de dados que requerem atenção" @@ -11787,7 +12152,7 @@ msgid "The following parts are low on required stock" msgstr "As peças a seguir estão abaixo do estoque requerido" #: templates/email/build_order_required_stock.html:18 -#: templates/js/translated/bom.js:1674 templates/js/translated/build.js:2747 +#: templates/js/translated/bom.js:1674 templates/js/translated/build.js:2765 msgid "Required Quantity" msgstr "Quantidade Requerida" @@ -11801,7 +12166,7 @@ msgid "Click on the following link to view this part" msgstr "Clique no link abaixo para ver esta peça" #: templates/email/low_stock_notification.html:18 -#: templates/js/translated/part.js:3237 +#: templates/js/translated/part.js:3253 msgid "Minimum Quantity" msgstr "Quantidade Mínima" @@ -12039,7 +12404,7 @@ msgstr "Dados da Linha" #: templates/js/translated/bom.js:189 templates/js/translated/bom.js:700 #: templates/js/translated/modals.js:75 templates/js/translated/modals.js:629 #: templates/js/translated/modals.js:757 templates/js/translated/modals.js:1065 -#: templates/js/translated/purchase_order.js:797 templates/modals.html:15 +#: templates/js/translated/purchase_order.js:780 templates/modals.html:15 #: templates/modals.html:27 templates/modals.html:39 templates/modals.html:50 msgid "Close" msgstr "Fechar" @@ -12156,7 +12521,7 @@ msgstr "Carregar BOM para a submontagem" msgid "Substitutes Available" msgstr "Substitutos Disponíveis" -#: templates/js/translated/bom.js:950 templates/js/translated/build.js:2673 +#: templates/js/translated/bom.js:950 templates/js/translated/build.js:2682 msgid "Variant stock allowed" msgstr "Estoque de variantes permitido" @@ -12176,30 +12541,30 @@ msgstr "Preços da BOM estão incompletos" msgid "No pricing available" msgstr "Nenhum preço disponível" -#: templates/js/translated/bom.js:1184 templates/js/translated/build.js:2812 +#: templates/js/translated/bom.js:1184 templates/js/translated/build.js:2830 msgid "External stock" msgstr "" -#: templates/js/translated/bom.js:1188 templates/js/translated/build.js:2786 -#: templates/js/translated/sales_order.js:1946 +#: templates/js/translated/bom.js:1188 templates/js/translated/build.js:2804 +#: templates/js/translated/sales_order.js:1927 msgid "No Stock Available" msgstr "Nenhum Estoque Disponível" -#: templates/js/translated/bom.js:1193 templates/js/translated/build.js:2790 +#: templates/js/translated/bom.js:1193 templates/js/translated/build.js:2808 msgid "Includes variant and substitute stock" msgstr "Incluir estoque de variantes e substitutos" -#: templates/js/translated/bom.js:1195 templates/js/translated/build.js:2792 +#: templates/js/translated/bom.js:1195 templates/js/translated/build.js:2810 #: templates/js/translated/part.js:1263 -#: templates/js/translated/sales_order.js:1943 +#: templates/js/translated/sales_order.js:1924 msgid "Includes variant stock" msgstr "Incluir estoque de variantes" -#: templates/js/translated/bom.js:1197 templates/js/translated/build.js:2794 +#: templates/js/translated/bom.js:1197 templates/js/translated/build.js:2812 msgid "Includes substitute stock" msgstr "Incluir estoque de substitutos" -#: templates/js/translated/bom.js:1225 templates/js/translated/build.js:2777 +#: templates/js/translated/bom.js:1225 templates/js/translated/build.js:2795 msgid "Consumable item" msgstr "Itens consumíveis" @@ -12231,7 +12596,7 @@ msgstr "Ver BOM" msgid "No BOM items found" msgstr "Nenhum item da BOM encontrado" -#: templates/js/translated/bom.js:1657 templates/js/translated/build.js:2658 +#: templates/js/translated/bom.js:1657 templates/js/translated/build.js:2667 msgid "Required Part" msgstr "Peça Requerida" @@ -12243,396 +12608,396 @@ msgstr "Herdado da BOM paternal" msgid "Edit Build Order" msgstr "Editar Pedido de Produção" -#: templates/js/translated/build.js:191 +#: templates/js/translated/build.js:194 msgid "Create Build Order" msgstr "Criar Pedido de Produção" -#: templates/js/translated/build.js:223 +#: templates/js/translated/build.js:226 msgid "Cancel Build Order" msgstr "Cancelar Pedido de Produção" -#: templates/js/translated/build.js:232 +#: templates/js/translated/build.js:235 msgid "Are you sure you wish to cancel this build?" msgstr "Tem certeza que deseja cancelar essa produção?" -#: templates/js/translated/build.js:238 +#: templates/js/translated/build.js:241 msgid "Stock items have been allocated to this build order" msgstr "Itens de estoque foram alocados para este pedido de produção" -#: templates/js/translated/build.js:245 +#: templates/js/translated/build.js:248 msgid "There are incomplete outputs remaining for this build order" msgstr "Há saídas incompletas restantes para este pedido de produção" -#: templates/js/translated/build.js:297 +#: templates/js/translated/build.js:300 msgid "Build order is ready to be completed" msgstr "Pedido de produção está pronto para ser concluído" -#: templates/js/translated/build.js:305 +#: templates/js/translated/build.js:308 msgid "This build order cannot be completed as there are incomplete outputs" msgstr "Este pedido de produção não pode ser concluído pois há saídas incompletas" -#: templates/js/translated/build.js:310 +#: templates/js/translated/build.js:313 msgid "Build Order is incomplete" msgstr "Pedido de Produção está incompleto" -#: templates/js/translated/build.js:328 +#: templates/js/translated/build.js:331 msgid "Complete Build Order" msgstr "Completar Pedido de Produção" -#: templates/js/translated/build.js:369 templates/js/translated/stock.js:127 +#: templates/js/translated/build.js:372 templates/js/translated/stock.js:127 #: templates/js/translated/stock.js:301 msgid "Next available serial number" msgstr "Próximo número de série disponível" -#: templates/js/translated/build.js:371 templates/js/translated/stock.js:129 +#: templates/js/translated/build.js:374 templates/js/translated/stock.js:129 #: templates/js/translated/stock.js:303 msgid "Latest serial number" msgstr "Último número de série" -#: templates/js/translated/build.js:380 +#: templates/js/translated/build.js:383 msgid "The Bill of Materials contains trackable parts" msgstr "A Lista de Materiais (BOM) contém peças rastreáveis" -#: templates/js/translated/build.js:381 +#: templates/js/translated/build.js:384 msgid "Build outputs must be generated individually" msgstr "Saída de produção deve ser gerada individualmente" -#: templates/js/translated/build.js:389 +#: templates/js/translated/build.js:392 msgid "Trackable parts can have serial numbers specified" msgstr "Peças rastreáveis podem ter números de séries especificados" -#: templates/js/translated/build.js:390 +#: templates/js/translated/build.js:393 msgid "Enter serial numbers to generate multiple single build outputs" msgstr "Digite números de série para gerar várias saídas de produção simples" -#: templates/js/translated/build.js:397 +#: templates/js/translated/build.js:400 msgid "Create Build Output" msgstr "Criar Saída de Produção" -#: templates/js/translated/build.js:428 +#: templates/js/translated/build.js:431 msgid "Allocate stock items to this build output" msgstr "Alocar itens de estoque para a saída de produção" -#: templates/js/translated/build.js:436 +#: templates/js/translated/build.js:439 msgid "Deallocate stock from build output" msgstr "Desalocar estoque da saída de produção" -#: templates/js/translated/build.js:445 +#: templates/js/translated/build.js:448 msgid "Complete build output" msgstr "Concluir saída de produção" -#: templates/js/translated/build.js:453 +#: templates/js/translated/build.js:456 msgid "Scrap build output" msgstr "Sucatear saída de produção" -#: templates/js/translated/build.js:460 +#: templates/js/translated/build.js:463 msgid "Delete build output" msgstr "Excluir saída de produção" -#: templates/js/translated/build.js:480 +#: templates/js/translated/build.js:483 msgid "Are you sure you wish to deallocate the selected stock items from this build?" msgstr "Tem certeza que deseja desalocar os itens de estoque selecionados desta produção?" -#: templates/js/translated/build.js:498 +#: templates/js/translated/build.js:501 msgid "Deallocate Stock Items" msgstr "Desalocar Items de Estoque" -#: templates/js/translated/build.js:584 templates/js/translated/build.js:711 -#: templates/js/translated/build.js:836 +#: templates/js/translated/build.js:587 templates/js/translated/build.js:714 +#: templates/js/translated/build.js:839 msgid "Select Build Outputs" msgstr "Selecionar Saída de Produção" -#: templates/js/translated/build.js:585 templates/js/translated/build.js:712 -#: templates/js/translated/build.js:837 +#: templates/js/translated/build.js:588 templates/js/translated/build.js:715 +#: templates/js/translated/build.js:840 msgid "At least one build output must be selected" msgstr "Ao menos uma saída de produção deve ser selecionada" -#: templates/js/translated/build.js:599 +#: templates/js/translated/build.js:602 msgid "Selected build outputs will be marked as complete" msgstr "Saídas de produção selecionadas serão marcadas como completas" -#: templates/js/translated/build.js:603 templates/js/translated/build.js:736 -#: templates/js/translated/build.js:859 +#: templates/js/translated/build.js:606 templates/js/translated/build.js:739 +#: templates/js/translated/build.js:862 msgid "Output" msgstr "Saída" -#: templates/js/translated/build.js:630 +#: templates/js/translated/build.js:633 msgid "Complete Build Outputs" msgstr "Concluir Saídas de Produção" -#: templates/js/translated/build.js:727 +#: templates/js/translated/build.js:730 msgid "Selected build outputs will be marked as scrapped" msgstr "Saídas de produção selecionadas serão marcadas como sucatas" -#: templates/js/translated/build.js:729 +#: templates/js/translated/build.js:732 msgid "Scrapped output are marked as rejected" msgstr "Saídas sucateadas são marcadas como rejeitada" -#: templates/js/translated/build.js:730 +#: templates/js/translated/build.js:733 msgid "Allocated stock items will no longer be available" msgstr "Itens de estoque alocados não estarão mais disponíveis" -#: templates/js/translated/build.js:731 +#: templates/js/translated/build.js:734 msgid "The completion status of the build order will not be adjusted" msgstr "O estado de conclusão do pedido de produção não será ajustado" -#: templates/js/translated/build.js:761 +#: templates/js/translated/build.js:764 msgid "Scrap Build Outputs" msgstr "Sucatear Saídas de Produção" -#: templates/js/translated/build.js:851 +#: templates/js/translated/build.js:854 msgid "Selected build outputs will be deleted" msgstr "Saídas de produção selecionadas serão apagadas" -#: templates/js/translated/build.js:853 +#: templates/js/translated/build.js:856 msgid "Build output data will be permanently deleted" msgstr "Dados da saída de produção serão excluídos permanentemente" -#: templates/js/translated/build.js:854 +#: templates/js/translated/build.js:857 msgid "Allocated stock items will be returned to stock" msgstr "Itens de estoque alocados serão retornados ao estoque" -#: templates/js/translated/build.js:872 +#: templates/js/translated/build.js:875 msgid "Delete Build Outputs" msgstr "Deletar Saída de Produção" -#: templates/js/translated/build.js:959 +#: templates/js/translated/build.js:962 msgid "Delete allocations" msgstr "" -#: templates/js/translated/build.js:966 +#: templates/js/translated/build.js:969 msgid "Delete Stock Allocations" msgstr "" -#: templates/js/translated/build.js:989 +#: templates/js/translated/build.js:992 msgid "No allocated stock" msgstr "" -#: templates/js/translated/build.js:1045 +#: templates/js/translated/build.js:1048 msgid "Stock item" msgstr "" -#: templates/js/translated/build.js:1070 +#: templates/js/translated/build.js:1073 msgid "Edit build allocation" msgstr "" -#: templates/js/translated/build.js:1071 +#: templates/js/translated/build.js:1074 msgid "Delete build allocation" msgstr "" -#: templates/js/translated/build.js:1089 +#: templates/js/translated/build.js:1092 msgid "Edit Build Allocation" msgstr "" -#: templates/js/translated/build.js:1102 +#: templates/js/translated/build.js:1105 msgid "Delete Build Allocation" msgstr "" -#: templates/js/translated/build.js:1133 +#: templates/js/translated/build.js:1136 msgid "No build order allocations found" msgstr "Nenhuma alocação de pedido de produção encontrada" -#: templates/js/translated/build.js:1178 +#: templates/js/translated/build.js:1181 msgid "Location not specified" msgstr "Local não especificado" -#: templates/js/translated/build.js:1200 +#: templates/js/translated/build.js:1203 msgid "Complete outputs" msgstr "Saídas concluídas" -#: templates/js/translated/build.js:1218 +#: templates/js/translated/build.js:1221 msgid "Scrap outputs" msgstr "Sucatear saídas" -#: templates/js/translated/build.js:1236 +#: templates/js/translated/build.js:1239 msgid "Delete outputs" msgstr "Exlcuir saídas" -#: templates/js/translated/build.js:1289 +#: templates/js/translated/build.js:1292 msgid "build output" msgstr "saída da produção" -#: templates/js/translated/build.js:1290 +#: templates/js/translated/build.js:1293 msgid "build outputs" msgstr "saídas da produção" -#: templates/js/translated/build.js:1294 +#: templates/js/translated/build.js:1297 msgid "Build output actions" msgstr "Ações da saída de produção" -#: templates/js/translated/build.js:1470 +#: templates/js/translated/build.js:1473 msgid "No active build outputs found" msgstr "Nenhuma saída de produção ativa encontrada" -#: templates/js/translated/build.js:1563 +#: templates/js/translated/build.js:1566 msgid "Allocated Lines" msgstr "Linhas Alocadas" -#: templates/js/translated/build.js:1577 +#: templates/js/translated/build.js:1580 msgid "Required Tests" msgstr "Testes Obrigatórios" -#: templates/js/translated/build.js:1749 -#: templates/js/translated/purchase_order.js:611 -#: templates/js/translated/sales_order.js:1207 +#: templates/js/translated/build.js:1752 +#: templates/js/translated/purchase_order.js:594 +#: templates/js/translated/sales_order.js:1173 msgid "Select Parts" msgstr "Selecionar Peças" -#: templates/js/translated/build.js:1750 -#: templates/js/translated/sales_order.js:1208 +#: templates/js/translated/build.js:1753 +#: templates/js/translated/sales_order.js:1174 msgid "You must select at least one part to allocate" msgstr "Você deve selecionar ao menos uma peça para alocar" -#: templates/js/translated/build.js:1813 -#: templates/js/translated/sales_order.js:1157 +#: templates/js/translated/build.js:1816 +#: templates/js/translated/sales_order.js:1123 msgid "Specify stock allocation quantity" msgstr "Especifique a quantidade de alocação de estoque" -#: templates/js/translated/build.js:1890 +#: templates/js/translated/build.js:1893 msgid "All Parts Allocated" msgstr "Todas as Peças Alocadas" -#: templates/js/translated/build.js:1891 +#: templates/js/translated/build.js:1894 msgid "All selected parts have been fully allocated" msgstr "Todas as peças selecionadas foram completamente alocadas" -#: templates/js/translated/build.js:1905 -#: templates/js/translated/sales_order.js:1222 +#: templates/js/translated/build.js:1908 +#: templates/js/translated/sales_order.js:1188 msgid "Select source location (leave blank to take from all locations)" msgstr "Selecione o local de origem (deixe em branco para tirar de todos os locais)" -#: templates/js/translated/build.js:1933 +#: templates/js/translated/build.js:1936 msgid "Allocate Stock Items to Build Order" msgstr "Alocar Itens de Estoque para o Pedido de Produção" -#: templates/js/translated/build.js:1944 -#: templates/js/translated/sales_order.js:1319 +#: templates/js/translated/build.js:1947 +#: templates/js/translated/sales_order.js:1285 msgid "No matching stock locations" msgstr "Nenhum local de estoque correspondente" -#: templates/js/translated/build.js:2017 -#: templates/js/translated/sales_order.js:1398 +#: templates/js/translated/build.js:2020 +#: templates/js/translated/sales_order.js:1364 msgid "No matching stock items" msgstr "Nenhum item de estoque correspondente" -#: templates/js/translated/build.js:2114 +#: templates/js/translated/build.js:2117 msgid "Automatic Stock Allocation" msgstr "Alocação Automática de Estoque" -#: templates/js/translated/build.js:2115 +#: templates/js/translated/build.js:2118 msgid "Stock items will be automatically allocated to this build order, according to the provided guidelines" msgstr "Itens de estoque serão automaticamente alocados para este pedido de produção, conforme as diretrizes fornecidas" -#: templates/js/translated/build.js:2117 +#: templates/js/translated/build.js:2120 msgid "If a location is specified, stock will only be allocated from that location" msgstr "Se um local for especificado o estoque será apenas alocado deste local" -#: templates/js/translated/build.js:2118 +#: templates/js/translated/build.js:2121 msgid "If stock is considered interchangeable, it will be allocated from the first location it is found" msgstr "Se o estoque é considerado intercambiável será alocado a partir da primeira localização encontrada" -#: templates/js/translated/build.js:2119 +#: templates/js/translated/build.js:2122 msgid "If substitute stock is allowed, it will be used where stock of the primary part cannot be found" msgstr "Se estoque substituto é permitido será utilizado quando o estoque primário não for encontrado" -#: templates/js/translated/build.js:2149 +#: templates/js/translated/build.js:2152 msgid "Allocate Stock Items" msgstr "Alocar Itens de Estoque" -#: templates/js/translated/build.js:2254 +#: templates/js/translated/build.js:2257 msgid "No builds matching query" msgstr "Nenhuma produção corresponde a consulta" -#: templates/js/translated/build.js:2289 templates/js/translated/build.js:2652 +#: templates/js/translated/build.js:2292 templates/js/translated/build.js:2661 #: templates/js/translated/forms.js:2196 templates/js/translated/forms.js:2212 #: templates/js/translated/part.js:2322 templates/js/translated/part.js:2761 -#: templates/js/translated/stock.js:2068 templates/js/translated/stock.js:2795 +#: templates/js/translated/stock.js:2069 templates/js/translated/stock.js:2796 msgid "Select" msgstr "Selecionar" -#: templates/js/translated/build.js:2303 +#: templates/js/translated/build.js:2306 msgid "Build order is overdue" msgstr "Pedido de produção está atrasada" -#: templates/js/translated/build.js:2385 templates/js/translated/stock.js:3126 +#: templates/js/translated/build.js:2388 templates/js/translated/stock.js:3127 msgid "No user information" msgstr "Sem informações de usuário" -#: templates/js/translated/build.js:2561 -#: templates/js/translated/sales_order.js:1682 +#: templates/js/translated/build.js:2568 +#: templates/js/translated/sales_order.js:1663 msgid "Edit stock allocation" msgstr "Editar alocação de estoque" -#: templates/js/translated/build.js:2562 -#: templates/js/translated/sales_order.js:1683 +#: templates/js/translated/build.js:2569 +#: templates/js/translated/sales_order.js:1664 msgid "Delete stock allocation" msgstr "Excluir alocação de estoque" -#: templates/js/translated/build.js:2577 +#: templates/js/translated/build.js:2584 msgid "Edit Allocation" msgstr "Editar Alocação" -#: templates/js/translated/build.js:2589 +#: templates/js/translated/build.js:2596 msgid "Remove Allocation" msgstr "Remover Alocação" -#: templates/js/translated/build.js:2628 +#: templates/js/translated/build.js:2636 msgid "build line" msgstr "linha de produção" -#: templates/js/translated/build.js:2629 +#: templates/js/translated/build.js:2637 msgid "build lines" msgstr "linhas de produção" -#: templates/js/translated/build.js:2647 +#: templates/js/translated/build.js:2656 msgid "No build lines found" msgstr "Nenhuma linha produção encontrada" -#: templates/js/translated/build.js:2677 templates/js/translated/part.js:793 +#: templates/js/translated/build.js:2686 templates/js/translated/part.js:793 #: templates/js/translated/part.js:1209 msgid "Trackable part" msgstr "Peça rastreável" -#: templates/js/translated/build.js:2720 +#: templates/js/translated/build.js:2729 msgid "Gets Inherited" msgstr "" -#: templates/js/translated/build.js:2730 +#: templates/js/translated/build.js:2748 msgid "Unit Quantity" msgstr "Quantidade Unitária" -#: templates/js/translated/build.js:2782 -#: templates/js/translated/sales_order.js:1951 +#: templates/js/translated/build.js:2800 +#: templates/js/translated/sales_order.js:1932 msgid "Sufficient stock available" msgstr "Estoque suficiente disponível" -#: templates/js/translated/build.js:2837 +#: templates/js/translated/build.js:2855 msgid "Consumable Item" msgstr "Item Consumível" -#: templates/js/translated/build.js:2844 +#: templates/js/translated/build.js:2862 msgid "Tracked item" msgstr "Item rastreado" -#: templates/js/translated/build.js:2845 +#: templates/js/translated/build.js:2863 msgid "Allocate tracked items against individual build outputs" msgstr "" -#: templates/js/translated/build.js:2853 -#: templates/js/translated/sales_order.js:2052 +#: templates/js/translated/build.js:2871 +#: templates/js/translated/sales_order.js:2033 msgid "Build stock" msgstr "Estoque de produção" -#: templates/js/translated/build.js:2858 templates/js/translated/stock.js:1953 +#: templates/js/translated/build.js:2876 templates/js/translated/stock.js:1954 msgid "Order stock" msgstr "Pedir Estoque" -#: templates/js/translated/build.js:2862 -#: templates/js/translated/sales_order.js:2046 +#: templates/js/translated/build.js:2880 +#: templates/js/translated/sales_order.js:2027 msgid "Allocate stock" msgstr "Alocar Estoque" -#: templates/js/translated/build.js:2866 +#: templates/js/translated/build.js:2884 msgid "Remove stock allocation" msgstr "Remover alocação de estoque" @@ -12641,7 +13006,7 @@ msgid "Add Manufacturer" msgstr "Adicionar Fabricante" #: templates/js/translated/company.js:111 -#: templates/js/translated/company.js:213 +#: templates/js/translated/company.js:214 msgid "Add Manufacturer Part" msgstr "Adicionar Peça do Fabricante" @@ -12649,231 +13014,231 @@ msgstr "Adicionar Peça do Fabricante" msgid "Edit Manufacturer Part" msgstr "Editar Peça do Fabricante" -#: templates/js/translated/company.js:201 +#: templates/js/translated/company.js:202 #: templates/js/translated/purchase_order.js:93 msgid "Add Supplier" msgstr "Adicionar Fornecedor" -#: templates/js/translated/company.js:243 -#: templates/js/translated/purchase_order.js:318 +#: templates/js/translated/company.js:244 +#: templates/js/translated/purchase_order.js:301 msgid "Add Supplier Part" msgstr "Adicionar Peça do Fornecedor" -#: templates/js/translated/company.js:344 +#: templates/js/translated/company.js:345 msgid "All selected supplier parts will be deleted" msgstr "Todas as peças selecionadas do fornecedor serão apagadas" -#: templates/js/translated/company.js:360 +#: templates/js/translated/company.js:361 msgid "Delete Supplier Parts" msgstr "Excluir Peças do Fornecedor" -#: templates/js/translated/company.js:466 +#: templates/js/translated/company.js:467 msgid "Add new Company" msgstr "Adicionar nova Empresa" -#: templates/js/translated/company.js:546 +#: templates/js/translated/company.js:547 msgid "Parts Supplied" msgstr "Peças Fornecidas" -#: templates/js/translated/company.js:555 +#: templates/js/translated/company.js:556 msgid "Parts Manufactured" msgstr "Peças Fabricadas" -#: templates/js/translated/company.js:570 +#: templates/js/translated/company.js:571 msgid "No company information found" msgstr "Nenhuma informação da empresa encontrada" -#: templates/js/translated/company.js:619 +#: templates/js/translated/company.js:620 msgid "Create New Contact" msgstr "Criar Novo Contato" -#: templates/js/translated/company.js:635 -#: templates/js/translated/company.js:758 +#: templates/js/translated/company.js:636 +#: templates/js/translated/company.js:759 msgid "Edit Contact" msgstr "Editar Contato" -#: templates/js/translated/company.js:672 +#: templates/js/translated/company.js:673 msgid "All selected contacts will be deleted" msgstr "Todos os contatos selecionados serão apagados" -#: templates/js/translated/company.js:678 -#: templates/js/translated/company.js:742 +#: templates/js/translated/company.js:679 +#: templates/js/translated/company.js:743 msgid "Role" msgstr "Função" -#: templates/js/translated/company.js:686 +#: templates/js/translated/company.js:687 msgid "Delete Contacts" msgstr "Excluir Contatos" -#: templates/js/translated/company.js:717 +#: templates/js/translated/company.js:718 msgid "No contacts found" msgstr "Nenhum contato encontrado" -#: templates/js/translated/company.js:730 +#: templates/js/translated/company.js:731 msgid "Phone Number" msgstr "Número de telefone" -#: templates/js/translated/company.js:736 +#: templates/js/translated/company.js:737 msgid "Email Address" msgstr "Endereço de e-mail" -#: templates/js/translated/company.js:762 +#: templates/js/translated/company.js:763 msgid "Delete Contact" msgstr "Excluir Contato" -#: templates/js/translated/company.js:859 +#: templates/js/translated/company.js:860 msgid "Create New Address" msgstr "Criar Novo Endereço" -#: templates/js/translated/company.js:874 -#: templates/js/translated/company.js:1035 +#: templates/js/translated/company.js:875 +#: templates/js/translated/company.js:1036 msgid "Edit Address" msgstr "Editar o Endereço" -#: templates/js/translated/company.js:909 +#: templates/js/translated/company.js:910 msgid "All selected addresses will be deleted" msgstr "Todos os endereços selecionados serão excluídos" -#: templates/js/translated/company.js:923 +#: templates/js/translated/company.js:924 msgid "Delete Addresses" msgstr "Excluir Endereço" -#: templates/js/translated/company.js:950 +#: templates/js/translated/company.js:951 msgid "No addresses found" msgstr "Nenhum endereço encontrado" -#: templates/js/translated/company.js:989 +#: templates/js/translated/company.js:990 msgid "Postal city" msgstr "Cidade Postal" -#: templates/js/translated/company.js:995 +#: templates/js/translated/company.js:996 msgid "State/province" msgstr "Estado/Provincia" -#: templates/js/translated/company.js:1007 +#: templates/js/translated/company.js:1008 msgid "Courier notes" msgstr "Notas do entregador" -#: templates/js/translated/company.js:1013 +#: templates/js/translated/company.js:1014 msgid "Internal notes" msgstr "Notas internas" -#: templates/js/translated/company.js:1039 +#: templates/js/translated/company.js:1040 msgid "Delete Address" msgstr "Excluir Endereço" -#: templates/js/translated/company.js:1112 +#: templates/js/translated/company.js:1113 msgid "All selected manufacturer parts will be deleted" msgstr "Todas as peças do fabricante selecionado serão excluídas" -#: templates/js/translated/company.js:1127 +#: templates/js/translated/company.js:1128 msgid "Delete Manufacturer Parts" msgstr "Excluir Peças do Fabricante" -#: templates/js/translated/company.js:1161 +#: templates/js/translated/company.js:1162 msgid "All selected parameters will be deleted" msgstr "Todos os parâmetros selecionados serão excluídos" -#: templates/js/translated/company.js:1175 +#: templates/js/translated/company.js:1176 msgid "Delete Parameters" msgstr "Excluir Parâmetros" -#: templates/js/translated/company.js:1191 -#: templates/js/translated/company.js:1479 templates/js/translated/part.js:2250 +#: templates/js/translated/company.js:1192 +#: templates/js/translated/company.js:1480 templates/js/translated/part.js:2250 msgid "Order parts" msgstr "Pedir peças" -#: templates/js/translated/company.js:1208 +#: templates/js/translated/company.js:1209 msgid "Delete manufacturer parts" msgstr "Apagar peças do fabricante" -#: templates/js/translated/company.js:1240 +#: templates/js/translated/company.js:1241 msgid "Manufacturer part actions" msgstr "Ações de peça do fabricante" -#: templates/js/translated/company.js:1259 +#: templates/js/translated/company.js:1260 msgid "No manufacturer parts found" msgstr "Nenhuma peça do fabricante encontrada" -#: templates/js/translated/company.js:1279 -#: templates/js/translated/company.js:1567 templates/js/translated/part.js:801 +#: templates/js/translated/company.js:1280 +#: templates/js/translated/company.js:1568 templates/js/translated/part.js:801 #: templates/js/translated/part.js:1217 msgid "Template part" msgstr "Modelo de peça" -#: templates/js/translated/company.js:1283 -#: templates/js/translated/company.js:1571 templates/js/translated/part.js:805 +#: templates/js/translated/company.js:1284 +#: templates/js/translated/company.js:1572 templates/js/translated/part.js:805 #: templates/js/translated/part.js:1221 msgid "Assembled part" msgstr "Peça montada" -#: templates/js/translated/company.js:1403 templates/js/translated/part.js:1471 +#: templates/js/translated/company.js:1404 templates/js/translated/part.js:1471 msgid "No parameters found" msgstr "Nenhum parâmetro encontrado" -#: templates/js/translated/company.js:1438 templates/js/translated/part.js:1534 +#: templates/js/translated/company.js:1439 templates/js/translated/part.js:1534 msgid "Edit parameter" msgstr "Editar parâmetro" -#: templates/js/translated/company.js:1439 templates/js/translated/part.js:1535 +#: templates/js/translated/company.js:1440 templates/js/translated/part.js:1535 msgid "Delete parameter" msgstr "Excluir parâmetro" -#: templates/js/translated/company.js:1456 templates/js/translated/part.js:1440 +#: templates/js/translated/company.js:1457 templates/js/translated/part.js:1440 msgid "Edit Parameter" msgstr "Editar Parâmetro" -#: templates/js/translated/company.js:1465 templates/js/translated/part.js:1556 +#: templates/js/translated/company.js:1466 templates/js/translated/part.js:1556 msgid "Delete Parameter" msgstr "Excluir Parâmetro" -#: templates/js/translated/company.js:1496 +#: templates/js/translated/company.js:1497 msgid "Delete supplier parts" msgstr "Excluir peças do fornecedor" -#: templates/js/translated/company.js:1546 +#: templates/js/translated/company.js:1547 msgid "No supplier parts found" msgstr "Nenhum peça do fornecedor encontrada" -#: templates/js/translated/company.js:1664 +#: templates/js/translated/company.js:1665 msgid "Base Units" msgstr "Unidade Base" -#: templates/js/translated/company.js:1694 +#: templates/js/translated/company.js:1695 msgid "Availability" msgstr "Disponibilidade" -#: templates/js/translated/company.js:1725 +#: templates/js/translated/company.js:1726 msgid "Edit supplier part" msgstr "Editar fornecedor da peça" -#: templates/js/translated/company.js:1726 +#: templates/js/translated/company.js:1727 msgid "Delete supplier part" msgstr "Excluir peça do fornecedor" -#: templates/js/translated/company.js:1779 +#: templates/js/translated/company.js:1780 #: templates/js/translated/pricing.js:694 msgid "Delete Price Break" msgstr "Excluir quebras de preço" -#: templates/js/translated/company.js:1789 +#: templates/js/translated/company.js:1790 #: templates/js/translated/pricing.js:712 msgid "Edit Price Break" msgstr "Editar Quebra de Preço" -#: templates/js/translated/company.js:1804 +#: templates/js/translated/company.js:1805 msgid "No price break information found" msgstr "Nenhuma informação de quebra de preço" -#: templates/js/translated/company.js:1833 +#: templates/js/translated/company.js:1834 msgid "Last updated" msgstr "Última atualização" -#: templates/js/translated/company.js:1840 +#: templates/js/translated/company.js:1841 msgid "Edit price break" msgstr "Editar quebra de preço" -#: templates/js/translated/company.js:1841 +#: templates/js/translated/company.js:1842 msgid "Delete price break" msgstr "Excluir quebra de preço" @@ -12977,19 +13342,19 @@ msgstr "Nome do Campo" msgid "Select Columns" msgstr "Selecionar Colunas" -#: templates/js/translated/helpers.js:80 +#: templates/js/translated/helpers.js:81 msgid "YES" msgstr "SIM" -#: templates/js/translated/helpers.js:83 +#: templates/js/translated/helpers.js:84 msgid "NO" msgstr "NÃO" -#: templates/js/translated/helpers.js:96 +#: templates/js/translated/helpers.js:97 msgid "True" msgstr "Verdadeiro" -#: templates/js/translated/helpers.js:97 +#: templates/js/translated/helpers.js:98 msgid "False" msgstr "Falso" @@ -13131,7 +13496,7 @@ msgid "Delete Line" msgstr "Apagar Linha" #: templates/js/translated/order.js:306 -#: templates/js/translated/purchase_order.js:2060 +#: templates/js/translated/purchase_order.js:2044 msgid "No line items found" msgstr "Nenhum item de linha encontrado" @@ -13366,19 +13731,19 @@ msgid "Delete Part Parameter Template" msgstr "Excluir Modelo de Parâmetro de Peça" #: templates/js/translated/part.js:1723 -#: templates/js/translated/purchase_order.js:1724 +#: templates/js/translated/purchase_order.js:1708 msgid "No purchase orders found" msgstr "Nenhum pedido de compra encontrado" #: templates/js/translated/part.js:1867 -#: templates/js/translated/purchase_order.js:2223 +#: templates/js/translated/purchase_order.js:2207 #: templates/js/translated/return_order.js:754 -#: templates/js/translated/sales_order.js:1911 +#: templates/js/translated/sales_order.js:1892 msgid "This line item is overdue" msgstr "Este item de linha está atrasado" #: templates/js/translated/part.js:1913 -#: templates/js/translated/purchase_order.js:2290 +#: templates/js/translated/purchase_order.js:2274 msgid "Receive line item" msgstr "Receber item de linha" @@ -13419,7 +13784,7 @@ msgid "No category" msgstr "Nenhuma categoria" #: templates/js/translated/part.js:2550 templates/js/translated/part.js:2680 -#: templates/js/translated/stock.js:2754 +#: templates/js/translated/stock.js:2755 msgid "Display as list" msgstr "Visualizar como lista" @@ -13431,7 +13796,7 @@ msgstr "Exibir como grade" msgid "No subcategories found" msgstr "Nenhuma subcategoria encontrada" -#: templates/js/translated/part.js:2700 templates/js/translated/stock.js:2774 +#: templates/js/translated/part.js:2700 templates/js/translated/stock.js:2775 msgid "Display as tree" msgstr "Exibir como árvore" @@ -13483,23 +13848,23 @@ msgstr "Data especificada está no passado" msgid "Speculative" msgstr "Especulativo" -#: templates/js/translated/part.js:3128 +#: templates/js/translated/part.js:3144 msgid "No scheduling information available for this part" msgstr "Nenhuma informação de agendamento para esta peça" -#: templates/js/translated/part.js:3134 +#: templates/js/translated/part.js:3150 msgid "Error fetching scheduling information for this part" msgstr "Erro ao obter informações de agendamento para esta peça" -#: templates/js/translated/part.js:3230 +#: templates/js/translated/part.js:3246 msgid "Scheduled Stock Quantities" msgstr "Quantidades de Estoque Agendadas" -#: templates/js/translated/part.js:3246 +#: templates/js/translated/part.js:3262 msgid "Maximum Quantity" msgstr "Quantidade Máxima" -#: templates/js/translated/part.js:3291 +#: templates/js/translated/part.js:3307 msgid "Minimum Stock Level" msgstr "Nível Mínimo de Estoque" @@ -13575,267 +13940,243 @@ msgstr "" msgid "Purchase Price History" msgstr "" -#: templates/js/translated/pricing.js:894 +#: templates/js/translated/pricing.js:892 msgid "No sales history data available" msgstr "" -#: templates/js/translated/pricing.js:916 +#: templates/js/translated/pricing.js:914 msgid "Sale Price History" msgstr "Histórico de Preço de Venda" -#: templates/js/translated/pricing.js:1005 +#: templates/js/translated/pricing.js:1003 msgid "No variant data available" msgstr "Nenhum dado de variante disponível" -#: templates/js/translated/pricing.js:1045 +#: templates/js/translated/pricing.js:1043 msgid "Variant Part" msgstr "Peça Variante" -#: templates/js/translated/purchase_order.js:169 -msgid "Select purchase order to duplicate" -msgstr "" - -#: templates/js/translated/purchase_order.js:176 -msgid "Duplicate Line Items" -msgstr "" - -#: templates/js/translated/purchase_order.js:177 -msgid "Duplicate all line items from the selected order" -msgstr "" - -#: templates/js/translated/purchase_order.js:184 -msgid "Duplicate Extra Lines" -msgstr "" - -#: templates/js/translated/purchase_order.js:185 -msgid "Duplicate extra line items from the selected order" -msgstr "" - -#: templates/js/translated/purchase_order.js:206 +#: templates/js/translated/purchase_order.js:188 msgid "Edit Purchase Order" msgstr "" -#: templates/js/translated/purchase_order.js:223 +#: templates/js/translated/purchase_order.js:205 msgid "Duplication Options" msgstr "" -#: templates/js/translated/purchase_order.js:431 +#: templates/js/translated/purchase_order.js:414 msgid "Complete Purchase Order" msgstr "" -#: templates/js/translated/purchase_order.js:448 +#: templates/js/translated/purchase_order.js:431 #: templates/js/translated/return_order.js:210 -#: templates/js/translated/sales_order.js:552 +#: templates/js/translated/sales_order.js:511 msgid "Mark this order as complete?" msgstr "" -#: templates/js/translated/purchase_order.js:454 +#: templates/js/translated/purchase_order.js:437 msgid "All line items have been received" msgstr "" -#: templates/js/translated/purchase_order.js:459 +#: templates/js/translated/purchase_order.js:442 msgid "This order has line items which have not been marked as received." msgstr "" -#: templates/js/translated/purchase_order.js:460 +#: templates/js/translated/purchase_order.js:443 msgid "Completing this order means that the order and line items will no longer be editable." msgstr "" -#: templates/js/translated/purchase_order.js:483 +#: templates/js/translated/purchase_order.js:466 msgid "Cancel Purchase Order" msgstr "" -#: templates/js/translated/purchase_order.js:488 +#: templates/js/translated/purchase_order.js:471 msgid "Are you sure you wish to cancel this purchase order?" msgstr "" -#: templates/js/translated/purchase_order.js:494 +#: templates/js/translated/purchase_order.js:477 msgid "This purchase order can not be cancelled" msgstr "" -#: templates/js/translated/purchase_order.js:515 +#: templates/js/translated/purchase_order.js:498 #: templates/js/translated/return_order.js:164 msgid "After placing this order, line items will no longer be editable." msgstr "" -#: templates/js/translated/purchase_order.js:520 +#: templates/js/translated/purchase_order.js:503 msgid "Issue Purchase Order" msgstr "" -#: templates/js/translated/purchase_order.js:612 +#: templates/js/translated/purchase_order.js:595 msgid "At least one purchaseable part must be selected" msgstr "" -#: templates/js/translated/purchase_order.js:637 +#: templates/js/translated/purchase_order.js:620 msgid "Quantity to order" msgstr "" -#: templates/js/translated/purchase_order.js:646 +#: templates/js/translated/purchase_order.js:629 msgid "New supplier part" msgstr "" -#: templates/js/translated/purchase_order.js:664 +#: templates/js/translated/purchase_order.js:647 msgid "New purchase order" msgstr "" -#: templates/js/translated/purchase_order.js:705 +#: templates/js/translated/purchase_order.js:688 msgid "Add to purchase order" msgstr "" -#: templates/js/translated/purchase_order.js:755 +#: templates/js/translated/purchase_order.js:738 msgid "Merge" msgstr "" -#: templates/js/translated/purchase_order.js:859 +#: templates/js/translated/purchase_order.js:842 msgid "No matching supplier parts" msgstr "" -#: templates/js/translated/purchase_order.js:878 +#: templates/js/translated/purchase_order.js:861 msgid "No matching purchase orders" msgstr "" -#: templates/js/translated/purchase_order.js:1073 +#: templates/js/translated/purchase_order.js:1056 #: templates/js/translated/return_order.js:490 msgid "Select Line Items" msgstr "" -#: templates/js/translated/purchase_order.js:1074 +#: templates/js/translated/purchase_order.js:1057 #: templates/js/translated/return_order.js:491 msgid "At least one line item must be selected" msgstr "" -#: templates/js/translated/purchase_order.js:1104 +#: templates/js/translated/purchase_order.js:1087 msgid "Received Quantity" msgstr "" -#: templates/js/translated/purchase_order.js:1115 +#: templates/js/translated/purchase_order.js:1098 msgid "Quantity to receive" msgstr "" -#: templates/js/translated/purchase_order.js:1170 +#: templates/js/translated/purchase_order.js:1153 #: templates/js/translated/stock.js:1215 msgid "Specify packaging for incoming stock items" msgstr "" -#: templates/js/translated/purchase_order.js:1223 +#: templates/js/translated/purchase_order.js:1206 msgid "Stock Status" msgstr "" -#: templates/js/translated/purchase_order.js:1237 +#: templates/js/translated/purchase_order.js:1220 msgid "Add barcode" msgstr "" -#: templates/js/translated/purchase_order.js:1238 +#: templates/js/translated/purchase_order.js:1221 msgid "Remove barcode" msgstr "" -#: templates/js/translated/purchase_order.js:1241 +#: templates/js/translated/purchase_order.js:1224 msgid "Specify location" msgstr "" -#: templates/js/translated/purchase_order.js:1249 +#: templates/js/translated/purchase_order.js:1232 msgid "Add batch code" msgstr "" -#: templates/js/translated/purchase_order.js:1259 +#: templates/js/translated/purchase_order.js:1242 msgid "Specify packaging" msgstr "" -#: templates/js/translated/purchase_order.js:1270 +#: templates/js/translated/purchase_order.js:1253 msgid "Add serial numbers" msgstr "" -#: templates/js/translated/purchase_order.js:1281 +#: templates/js/translated/purchase_order.js:1264 msgid "Add note" msgstr "" -#: templates/js/translated/purchase_order.js:1338 +#: templates/js/translated/purchase_order.js:1321 msgid "Serials" msgstr "Seriais" -#: templates/js/translated/purchase_order.js:1368 +#: templates/js/translated/purchase_order.js:1351 msgid "Order Code" msgstr "Código do Pedido" -#: templates/js/translated/purchase_order.js:1370 +#: templates/js/translated/purchase_order.js:1353 msgid "Quantity to Receive" msgstr "Quantidade a Receber" -#: templates/js/translated/purchase_order.js:1395 +#: templates/js/translated/purchase_order.js:1379 #: templates/js/translated/return_order.js:559 msgid "Confirm receipt of items" msgstr "Confirmar o recebimento dos itens" -#: templates/js/translated/purchase_order.js:1396 +#: templates/js/translated/purchase_order.js:1380 msgid "Receive Purchase Order Items" msgstr "Receber Itens do Pedido de Compra" -#: templates/js/translated/purchase_order.js:1464 +#: templates/js/translated/purchase_order.js:1448 msgid "Scan Item Barcode" msgstr "Escanar o Código de Barras do Item" -#: templates/js/translated/purchase_order.js:1465 +#: templates/js/translated/purchase_order.js:1449 msgid "Scan barcode on incoming item (must not match any existing stock items)" msgstr "Ler código de barras no item de entrada (não deve corresponder a nenhum item de estoque existente)" -#: templates/js/translated/purchase_order.js:1479 +#: templates/js/translated/purchase_order.js:1463 msgid "Invalid barcode data" msgstr "Dados do código de barras inválido" -#: templates/js/translated/purchase_order.js:1751 +#: templates/js/translated/purchase_order.js:1735 #: templates/js/translated/return_order.js:285 -#: templates/js/translated/sales_order.js:810 -#: templates/js/translated/sales_order.js:1034 +#: templates/js/translated/sales_order.js:769 +#: templates/js/translated/sales_order.js:1007 msgid "Order is overdue" msgstr "O pedido está atrasado" -#: templates/js/translated/purchase_order.js:1913 +#: templates/js/translated/purchase_order.js:1897 msgid "All selected Line items will be deleted" msgstr "Todos os Itens de Linha selecionadas serão excluídos" -#: templates/js/translated/purchase_order.js:1931 +#: templates/js/translated/purchase_order.js:1915 msgid "Delete selected Line items?" msgstr "Excluir itens de linha selecionados?" -#: templates/js/translated/purchase_order.js:1986 -#: templates/js/translated/sales_order.js:2106 +#: templates/js/translated/purchase_order.js:1970 +#: templates/js/translated/sales_order.js:2087 msgid "Duplicate Line Item" msgstr "Duplicar Item de Linha" -#: templates/js/translated/purchase_order.js:2001 +#: templates/js/translated/purchase_order.js:1985 #: templates/js/translated/return_order.js:475 #: templates/js/translated/return_order.js:667 -#: templates/js/translated/sales_order.js:2119 +#: templates/js/translated/sales_order.js:2100 msgid "Edit Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2012 +#: templates/js/translated/purchase_order.js:1996 #: templates/js/translated/return_order.js:680 -#: templates/js/translated/sales_order.js:2130 +#: templates/js/translated/sales_order.js:2111 msgid "Delete Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2294 -#: templates/js/translated/sales_order.js:2060 +#: templates/js/translated/purchase_order.js:2278 +#: templates/js/translated/sales_order.js:2041 msgid "Duplicate line item" msgstr "" -#: templates/js/translated/purchase_order.js:2295 +#: templates/js/translated/purchase_order.js:2279 #: templates/js/translated/return_order.js:799 -#: templates/js/translated/sales_order.js:2061 +#: templates/js/translated/sales_order.js:2042 msgid "Edit line item" msgstr "" -#: templates/js/translated/purchase_order.js:2296 +#: templates/js/translated/purchase_order.js:2280 #: templates/js/translated/return_order.js:803 -#: templates/js/translated/sales_order.js:2067 +#: templates/js/translated/sales_order.js:2048 msgid "Delete line item" msgstr "" -#: templates/js/translated/report.js:49 -msgid "Print Report" -msgstr "" - #: templates/js/translated/report.js:68 msgid "Report print successful" msgstr "" @@ -13878,7 +14219,7 @@ msgid "No return orders found" msgstr "Nenhum pedido de devolução encontrado" #: templates/js/translated/return_order.js:299 -#: templates/js/translated/sales_order.js:824 +#: templates/js/translated/sales_order.js:783 msgid "Invalid Customer" msgstr "Cliente Inválido" @@ -13887,7 +14228,7 @@ msgid "Receive Return Order Items" msgstr "Receber Itens do Pedido de Devolução" #: templates/js/translated/return_order.js:691 -#: templates/js/translated/sales_order.js:2267 +#: templates/js/translated/sales_order.js:2248 msgid "No matching line items" msgstr "Nenhum item de linha correspondente" @@ -13903,188 +14244,181 @@ msgstr "Criar Pedido de Venda" msgid "Edit Sales Order" msgstr "" -#: templates/js/translated/sales_order.js:291 +#: templates/js/translated/sales_order.js:288 msgid "No stock items have been allocated to this shipment" msgstr "" -#: templates/js/translated/sales_order.js:296 -msgid "The following stock items will be shipped" -msgstr "" - -#: templates/js/translated/sales_order.js:336 +#: templates/js/translated/sales_order.js:294 msgid "Complete Shipment" msgstr "" -#: templates/js/translated/sales_order.js:360 +#: templates/js/translated/sales_order.js:318 msgid "Confirm Shipment" msgstr "" -#: templates/js/translated/sales_order.js:416 +#: templates/js/translated/sales_order.js:375 msgid "No pending shipments found" msgstr "" -#: templates/js/translated/sales_order.js:420 +#: templates/js/translated/sales_order.js:379 msgid "No stock items have been allocated to pending shipments" msgstr "" -#: templates/js/translated/sales_order.js:430 +#: templates/js/translated/sales_order.js:389 msgid "Complete Shipments" msgstr "" -#: templates/js/translated/sales_order.js:452 +#: templates/js/translated/sales_order.js:411 msgid "Skip" msgstr "" -#: templates/js/translated/sales_order.js:484 +#: templates/js/translated/sales_order.js:443 msgid "Ship Sales Order" msgstr "" -#: templates/js/translated/sales_order.js:500 +#: templates/js/translated/sales_order.js:459 msgid "Ship this order?" msgstr "" -#: templates/js/translated/sales_order.js:506 +#: templates/js/translated/sales_order.js:465 msgid "Order cannot be shipped as there are incomplete shipments" msgstr "" -#: templates/js/translated/sales_order.js:513 +#: templates/js/translated/sales_order.js:472 msgid "This order has line items which have not been completed." msgstr "" -#: templates/js/translated/sales_order.js:514 +#: templates/js/translated/sales_order.js:473 msgid "Shipping this order means that the order and line items will no longer be editable." msgstr "" -#: templates/js/translated/sales_order.js:572 +#: templates/js/translated/sales_order.js:531 msgid "Issue this Sales Order?" msgstr "" -#: templates/js/translated/sales_order.js:577 +#: templates/js/translated/sales_order.js:536 msgid "Issue Sales Order" msgstr "" -#: templates/js/translated/sales_order.js:596 +#: templates/js/translated/sales_order.js:555 msgid "Cancel Sales Order" msgstr "" -#: templates/js/translated/sales_order.js:601 +#: templates/js/translated/sales_order.js:560 msgid "Cancelling this order means that the order will no longer be editable." msgstr "" -#: templates/js/translated/sales_order.js:655 +#: templates/js/translated/sales_order.js:614 msgid "Create New Shipment" msgstr "" -#: templates/js/translated/sales_order.js:764 +#: templates/js/translated/sales_order.js:723 msgid "No sales orders found" msgstr "" -#: templates/js/translated/sales_order.js:944 +#: templates/js/translated/sales_order.js:907 msgid "Edit shipment" msgstr "" -#: templates/js/translated/sales_order.js:947 +#: templates/js/translated/sales_order.js:910 msgid "Complete shipment" msgstr "" -#: templates/js/translated/sales_order.js:952 +#: templates/js/translated/sales_order.js:915 msgid "Delete shipment" msgstr "" -#: templates/js/translated/sales_order.js:969 +#: templates/js/translated/sales_order.js:932 msgid "Edit Shipment" msgstr "" -#: templates/js/translated/sales_order.js:984 +#: templates/js/translated/sales_order.js:947 msgid "Delete Shipment" msgstr "" -#: templates/js/translated/sales_order.js:1017 +#: templates/js/translated/sales_order.js:989 msgid "No matching shipments found" msgstr "" -#: templates/js/translated/sales_order.js:1042 +#: templates/js/translated/sales_order.js:1015 msgid "Shipment Reference" msgstr "" -#: templates/js/translated/sales_order.js:1066 -#: templates/js/translated/sales_order.js:1565 +#: templates/js/translated/sales_order.js:1032 +#: templates/js/translated/sales_order.js:1531 msgid "Not shipped" msgstr "" -#: templates/js/translated/sales_order.js:1084 +#: templates/js/translated/sales_order.js:1050 msgid "Tracking" msgstr "Rastreamento" -#: templates/js/translated/sales_order.js:1088 +#: templates/js/translated/sales_order.js:1054 msgid "Invoice" msgstr "Fatura" -#: templates/js/translated/sales_order.js:1255 +#: templates/js/translated/sales_order.js:1221 msgid "Add Shipment" msgstr "Adicionar Envio" -#: templates/js/translated/sales_order.js:1306 +#: templates/js/translated/sales_order.js:1272 msgid "Confirm stock allocation" msgstr "" -#: templates/js/translated/sales_order.js:1307 +#: templates/js/translated/sales_order.js:1273 msgid "Allocate Stock Items to Sales Order" msgstr "" -#: templates/js/translated/sales_order.js:1513 +#: templates/js/translated/sales_order.js:1479 msgid "No sales order allocations found" msgstr "" -#: templates/js/translated/sales_order.js:1605 +#: templates/js/translated/sales_order.js:1571 msgid "Edit Stock Allocation" msgstr "" -#: templates/js/translated/sales_order.js:1619 +#: templates/js/translated/sales_order.js:1585 msgid "Confirm Delete Operation" msgstr "" -#: templates/js/translated/sales_order.js:1620 +#: templates/js/translated/sales_order.js:1586 msgid "Delete Stock Allocation" msgstr "" -#: templates/js/translated/sales_order.js:1659 -#: templates/js/translated/sales_order.js:1746 +#: templates/js/translated/sales_order.js:1640 +#: templates/js/translated/sales_order.js:1727 #: templates/js/translated/stock.js:1861 msgid "Shipped to customer" msgstr "" -#: templates/js/translated/sales_order.js:1667 -#: templates/js/translated/sales_order.js:1755 +#: templates/js/translated/sales_order.js:1648 +#: templates/js/translated/sales_order.js:1736 msgid "Stock location not specified" msgstr "" -#: templates/js/translated/sales_order.js:2044 -msgid "Allocate serial numbers" -msgstr "Alocar números de série" - -#: templates/js/translated/sales_order.js:2048 -msgid "Purchase stock" -msgstr "Comprar estoque" - -#: templates/js/translated/sales_order.js:2057 -#: templates/js/translated/sales_order.js:2245 -msgid "Calculate price" -msgstr "Calcular preço" - -#: templates/js/translated/sales_order.js:2071 -msgid "Cannot be deleted as items have been shipped" -msgstr "" - -#: templates/js/translated/sales_order.js:2074 -msgid "Cannot be deleted as items have been allocated" -msgstr "" - -#: templates/js/translated/sales_order.js:2145 +#: templates/js/translated/sales_order.js:2025 +#: templates/js/translated/sales_order.js:2126 msgid "Allocate Serial Numbers" msgstr "" -#: templates/js/translated/sales_order.js:2253 +#: templates/js/translated/sales_order.js:2029 +msgid "Purchase stock" +msgstr "Comprar estoque" + +#: templates/js/translated/sales_order.js:2038 +#: templates/js/translated/sales_order.js:2226 +msgid "Calculate price" +msgstr "Calcular preço" + +#: templates/js/translated/sales_order.js:2052 +msgid "Cannot be deleted as items have been shipped" +msgstr "" + +#: templates/js/translated/sales_order.js:2055 +msgid "Cannot be deleted as items have been allocated" +msgstr "" + +#: templates/js/translated/sales_order.js:2234 msgid "Update Unit Price" msgstr "Atualizar Preço Unitário" @@ -14209,11 +14543,8 @@ msgid "Find Serial Number" msgstr "" #: templates/js/translated/stock.js:603 templates/js/translated/stock.js:604 -msgid "Enter serial number" -msgstr "" - #: templates/js/translated/stock.js:620 -msgid "Enter a serial number" +msgid "Enter serial number" msgstr "" #: templates/js/translated/stock.js:640 @@ -14284,7 +14615,7 @@ msgstr "Pegar" msgid "Add Stock" msgstr "Adicionar Estoque" -#: templates/js/translated/stock.js:1049 users/models.py:396 +#: templates/js/translated/stock.js:1049 users/models.py:398 msgid "Add" msgstr "Adicionar" @@ -14308,7 +14639,7 @@ msgstr "" msgid "Adjust packaging" msgstr "" -#: templates/js/translated/stock.js:1256 templates/js/translated/stock.js:3382 +#: templates/js/translated/stock.js:1256 templates/js/translated/stock.js:3383 msgid "Select Stock Items" msgstr "Selecionar Itens de Estoque" @@ -14320,18 +14651,6 @@ msgstr "Selecione ao menos um item de estoque disponível" msgid "Confirm stock adjustment" msgstr "" -#: templates/js/translated/stock.js:1448 -msgid "PASS" -msgstr "PASSOU" - -#: templates/js/translated/stock.js:1450 -msgid "FAIL" -msgstr "FALHOU" - -#: templates/js/translated/stock.js:1455 -msgid "NO RESULT" -msgstr "SEM RESULTADO" - #: templates/js/translated/stock.js:1535 msgid "Pass test" msgstr "Passou no teste" @@ -14388,216 +14707,216 @@ msgstr "Atribuir para o Pedido de Venda" msgid "No stock location set" msgstr "Sem local de estoque definido" -#: templates/js/translated/stock.js:1927 +#: templates/js/translated/stock.js:1928 msgid "Change stock status" msgstr "Mudar estado do estoque" -#: templates/js/translated/stock.js:1936 +#: templates/js/translated/stock.js:1937 msgid "Merge stock" msgstr "Mesclar estoque" -#: templates/js/translated/stock.js:1985 +#: templates/js/translated/stock.js:1986 msgid "Delete stock" msgstr "Excluir estoque" -#: templates/js/translated/stock.js:2038 +#: templates/js/translated/stock.js:2039 msgid "stock items" msgstr "itens de estoque" -#: templates/js/translated/stock.js:2043 +#: templates/js/translated/stock.js:2044 msgid "Scan to location" msgstr "Escanear para local" -#: templates/js/translated/stock.js:2054 +#: templates/js/translated/stock.js:2055 msgid "Stock Actions" msgstr "Ações de Estoque" -#: templates/js/translated/stock.js:2098 +#: templates/js/translated/stock.js:2099 msgid "Load installed items" msgstr "Carregar itens instalados" -#: templates/js/translated/stock.js:2176 +#: templates/js/translated/stock.js:2177 msgid "Stock item is in production" msgstr "" -#: templates/js/translated/stock.js:2181 +#: templates/js/translated/stock.js:2182 msgid "Stock item assigned to sales order" msgstr "" -#: templates/js/translated/stock.js:2184 +#: templates/js/translated/stock.js:2185 msgid "Stock item assigned to customer" msgstr "" -#: templates/js/translated/stock.js:2187 +#: templates/js/translated/stock.js:2188 msgid "Serialized stock item has been allocated" msgstr "" -#: templates/js/translated/stock.js:2189 +#: templates/js/translated/stock.js:2190 msgid "Stock item has been fully allocated" msgstr "" -#: templates/js/translated/stock.js:2191 +#: templates/js/translated/stock.js:2192 msgid "Stock item has been partially allocated" msgstr "" -#: templates/js/translated/stock.js:2194 +#: templates/js/translated/stock.js:2195 msgid "Stock item has been installed in another item" msgstr "" -#: templates/js/translated/stock.js:2196 +#: templates/js/translated/stock.js:2197 msgid "Stock item has been consumed by a build order" msgstr "" -#: templates/js/translated/stock.js:2200 +#: templates/js/translated/stock.js:2201 msgid "Stock item has expired" msgstr "" -#: templates/js/translated/stock.js:2202 +#: templates/js/translated/stock.js:2203 msgid "Stock item will expire soon" msgstr "" -#: templates/js/translated/stock.js:2207 +#: templates/js/translated/stock.js:2208 msgid "Stock item has been rejected" msgstr "" -#: templates/js/translated/stock.js:2209 +#: templates/js/translated/stock.js:2210 msgid "Stock item is lost" msgstr "" -#: templates/js/translated/stock.js:2211 +#: templates/js/translated/stock.js:2212 msgid "Stock item is destroyed" msgstr "" -#: templates/js/translated/stock.js:2215 +#: templates/js/translated/stock.js:2216 #: templates/js/translated/table_filters.js:357 msgid "Depleted" msgstr "" -#: templates/js/translated/stock.js:2380 +#: templates/js/translated/stock.js:2381 msgid "Supplier part not specified" msgstr "" -#: templates/js/translated/stock.js:2427 +#: templates/js/translated/stock.js:2428 msgid "Stock Value" msgstr "" -#: templates/js/translated/stock.js:2555 +#: templates/js/translated/stock.js:2556 msgid "No stock items matching query" msgstr "" -#: templates/js/translated/stock.js:2658 +#: templates/js/translated/stock.js:2659 msgid "stock locations" msgstr "" -#: templates/js/translated/stock.js:2813 +#: templates/js/translated/stock.js:2814 msgid "Load Sublocations" msgstr "" -#: templates/js/translated/stock.js:2930 +#: templates/js/translated/stock.js:2931 msgid "Details" msgstr "Detalhes" -#: templates/js/translated/stock.js:2934 +#: templates/js/translated/stock.js:2935 msgid "No changes" msgstr "Nenhuma mudança" -#: templates/js/translated/stock.js:2946 +#: templates/js/translated/stock.js:2947 msgid "Part information unavailable" msgstr "" -#: templates/js/translated/stock.js:2968 +#: templates/js/translated/stock.js:2969 msgid "Location no longer exists" msgstr "" -#: templates/js/translated/stock.js:2985 +#: templates/js/translated/stock.js:2986 msgid "Build order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3000 +#: templates/js/translated/stock.js:3001 msgid "Purchase order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3017 +#: templates/js/translated/stock.js:3018 msgid "Sales Order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3034 +#: templates/js/translated/stock.js:3035 msgid "Return Order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3053 +#: templates/js/translated/stock.js:3054 msgid "Customer no longer exists" msgstr "" -#: templates/js/translated/stock.js:3071 +#: templates/js/translated/stock.js:3072 msgid "Stock item no longer exists" msgstr "" -#: templates/js/translated/stock.js:3089 +#: templates/js/translated/stock.js:3090 msgid "Added" msgstr "Adicionado" -#: templates/js/translated/stock.js:3097 +#: templates/js/translated/stock.js:3098 msgid "Removed" msgstr "Removido" -#: templates/js/translated/stock.js:3169 +#: templates/js/translated/stock.js:3170 msgid "No installed items" msgstr "Nenhum item instalado" -#: templates/js/translated/stock.js:3223 templates/js/translated/stock.js:3259 +#: templates/js/translated/stock.js:3224 templates/js/translated/stock.js:3260 msgid "Uninstall Stock Item" msgstr "" -#: templates/js/translated/stock.js:3280 +#: templates/js/translated/stock.js:3281 msgid "Select stock item to uninstall" msgstr "" -#: templates/js/translated/stock.js:3301 +#: templates/js/translated/stock.js:3302 msgid "Install another stock item into this item" msgstr "" -#: templates/js/translated/stock.js:3302 +#: templates/js/translated/stock.js:3303 msgid "Stock items can only be installed if they meet the following criteria" msgstr "" -#: templates/js/translated/stock.js:3304 +#: templates/js/translated/stock.js:3305 msgid "The Stock Item links to a Part which is the BOM for this Stock Item" msgstr "O Item de Estoque conecta a uma peça que é um BOM deste Item de Estoque" -#: templates/js/translated/stock.js:3305 +#: templates/js/translated/stock.js:3306 msgid "The Stock Item is currently available in stock" msgstr "" -#: templates/js/translated/stock.js:3306 +#: templates/js/translated/stock.js:3307 msgid "The Stock Item is not already installed in another item" msgstr "" -#: templates/js/translated/stock.js:3307 +#: templates/js/translated/stock.js:3308 msgid "The Stock Item is tracked by either a batch code or serial number" msgstr "" -#: templates/js/translated/stock.js:3320 +#: templates/js/translated/stock.js:3321 msgid "Select part to install" msgstr "" -#: templates/js/translated/stock.js:3383 +#: templates/js/translated/stock.js:3384 msgid "Select one or more stock items" msgstr "" -#: templates/js/translated/stock.js:3396 +#: templates/js/translated/stock.js:3397 msgid "Selected stock items" msgstr "" -#: templates/js/translated/stock.js:3400 +#: templates/js/translated/stock.js:3401 msgid "Change Stock Status" msgstr "" -#: templates/js/translated/stock.js:3477 +#: templates/js/translated/stock.js:3478 msgid "This week" msgstr "" -#: templates/js/translated/stock.js:3485 +#: templates/js/translated/stock.js:3486 msgid "This month" msgstr "" @@ -14734,10 +15053,6 @@ msgstr "" msgid "Show items which are in production" msgstr "" -#: templates/js/translated/table_filters.js:372 -msgid "Include Variants" -msgstr "" - #: templates/js/translated/table_filters.js:373 msgid "Include stock items for variant parts" msgstr "" @@ -15012,10 +15327,6 @@ msgstr "Falha ao acessar conta" msgid "An error occurred while attempting to login via your social network account." msgstr "Ocorreu um erro ao tentar entrar com a sua conta de rede social." -#: templates/socialaccount/authentication_error.html:13 -msgid "Contact your system administrator for further information." -msgstr "Contate seu administrador de sistema para mais informações." - #: templates/socialaccount/login.html:13 #, python-format msgid "Connect %(provider)s" @@ -15141,27 +15452,27 @@ msgstr "Sim" msgid "No" msgstr "Não" -#: users/admin.py:104 +#: users/admin.py:101 msgid "Users" msgstr "Usuários" -#: users/admin.py:105 +#: users/admin.py:102 msgid "Select which users are assigned to this group" msgstr "Selecione quais usuários estão atribuídos a este grupo" -#: users/admin.py:249 +#: users/admin.py:246 msgid "The following users are members of multiple groups" msgstr "Os seguintes usuários são membros de vários grupos" -#: users/admin.py:283 +#: users/admin.py:280 msgid "Personal info" msgstr "Informações pessoais" -#: users/admin.py:285 +#: users/admin.py:282 msgid "Permissions" msgstr "Permissões" -#: users/admin.py:288 +#: users/admin.py:285 msgid "Important dates" msgstr "Datas importantes" @@ -15205,35 +15516,35 @@ msgstr "Última vez que o token foi usado" msgid "Revoked" msgstr "Revogado" -#: users/models.py:379 +#: users/models.py:381 msgid "Permission set" msgstr "Permissão definida" -#: users/models.py:388 +#: users/models.py:390 msgid "Group" msgstr "Grupo" -#: users/models.py:392 +#: users/models.py:394 msgid "View" msgstr "Visualizar" -#: users/models.py:392 +#: users/models.py:394 msgid "Permission to view items" msgstr "Permissão para ver itens" -#: users/models.py:396 +#: users/models.py:398 msgid "Permission to add items" msgstr "Permissão para adicionar itens" -#: users/models.py:400 +#: users/models.py:402 msgid "Change" msgstr "Alterar" -#: users/models.py:402 +#: users/models.py:404 msgid "Permissions to edit items" msgstr "Permissões para editar itens" -#: users/models.py:408 +#: users/models.py:410 msgid "Permission to delete items" msgstr "Permissão para excluir itens" diff --git a/src/backend/InvenTree/locale/pt_BR/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/pt_BR/LC_MESSAGES/django.po index d8a782cbbc..4709dfca7c 100644 --- a/src/backend/InvenTree/locale/pt_BR/LC_MESSAGES/django.po +++ b/src/backend/InvenTree/locale/pt_BR/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-08-20 01:22+0000\n" -"PO-Revision-Date: 2024-08-20 19:51\n" +"POT-Creation-Date: 2024-11-04 03:11+0000\n" +"PO-Revision-Date: 2024-11-04 03:14\n" "Last-Translator: \n" "Language-Team: Portuguese, Brazilian\n" "Language: pt_BR\n" @@ -14,107 +14,115 @@ msgstr "" "X-Crowdin-Project: inventree\n" "X-Crowdin-Project-ID: 452300\n" "X-Crowdin-Language: pt-BR\n" -"X-Crowdin-File: /[inventree.InvenTree] l10/src/backend/InvenTree/locale/en/LC_MESSAGES/django.po\n" -"X-Crowdin-File-ID: 216\n" +"X-Crowdin-File: /src/backend/InvenTree/locale/en/LC_MESSAGES/django.po\n" +"X-Crowdin-File-ID: 250\n" -#: InvenTree/api.py:269 +#: InvenTree/api.py:270 msgid "API endpoint not found" +msgstr "API endpoint não encontrado" + +#: InvenTree/api.py:387 +msgid "Invalid items list provided" msgstr "" -#: InvenTree/api.py:502 +#: InvenTree/api.py:396 +msgid "Invalid filters provided" +msgstr "" + +#: InvenTree/api.py:401 +msgid "No items found to delete" +msgstr "" + +#: InvenTree/api.py:515 msgid "User does not have permission to view this model" msgstr "" -#: InvenTree/conversion.py:160 +#: InvenTree/conversion.py:161 #, python-brace-format msgid "Invalid unit provided ({unit})" msgstr "" -#: InvenTree/conversion.py:177 +#: InvenTree/conversion.py:178 msgid "No value provided" msgstr "" -#: InvenTree/conversion.py:204 +#: InvenTree/conversion.py:205 #, python-brace-format msgid "Could not convert {original} to {unit}" msgstr "" -#: InvenTree/conversion.py:206 -msgid "Invalid quantity supplied" +#: InvenTree/conversion.py:207 InvenTree/conversion.py:221 +#: InvenTree/helpers.py:505 order/models.py:589 order/models.py:832 +msgid "Invalid quantity provided" msgstr "" -#: InvenTree/conversion.py:220 -#, python-brace-format -msgid "Invalid quantity supplied ({exc})" -msgstr "" - -#: InvenTree/exceptions.py:108 +#: InvenTree/exceptions.py:104 msgid "Error details can be found in the admin panel" msgstr "" -#: InvenTree/fields.py:136 +#: InvenTree/fields.py:135 msgid "Enter date" -msgstr "" +msgstr "Informe a data" -#: InvenTree/fields.py:205 InvenTree/models.py:929 build/serializers.py:468 -#: build/serializers.py:546 build/templates/build/sidebar.html:29 -#: company/models.py:836 +#: InvenTree/fields.py:204 InvenTree/models.py:928 build/serializers.py:512 +#: build/serializers.py:590 build/templates/build/sidebar.html:29 +#: company/models.py:833 #: company/templates/company/manufacturer_part_sidebar.html:11 #: company/templates/company/sidebar.html:37 -#: company/templates/company/supplier_part_sidebar.html:11 order/models.py:1380 +#: company/templates/company/supplier_part_sidebar.html:11 order/models.py:1397 #: order/templates/order/po_sidebar.html:11 #: order/templates/order/return_order_sidebar.html:9 #: order/templates/order/so_sidebar.html:17 part/admin.py:59 -#: part/models.py:3297 part/templates/part/part_sidebar.html:65 +#: part/models.py:3348 part/templates/part/part_sidebar.html:65 #: report/templates/report/inventree_build_order_report.html:172 -#: stock/admin.py:230 stock/models.py:2375 stock/models.py:2563 -#: stock/serializers.py:698 stock/serializers.py:856 stock/serializers.py:982 -#: stock/serializers.py:1032 stock/serializers.py:1343 -#: stock/serializers.py:1432 stock/serializers.py:1597 +#: stock/admin.py:231 stock/models.py:2494 stock/models.py:2679 +#: stock/serializers.py:725 stock/serializers.py:887 stock/serializers.py:1013 +#: stock/serializers.py:1063 stock/serializers.py:1374 +#: stock/serializers.py:1463 stock/serializers.py:1628 #: stock/templates/stock/stock_sidebar.html:25 #: templates/js/translated/barcode.js:143 templates/js/translated/bom.js:1265 -#: templates/js/translated/company.js:1684 templates/js/translated/order.js:372 +#: templates/js/translated/company.js:1685 templates/js/translated/order.js:372 #: templates/js/translated/part.js:1087 -#: templates/js/translated/purchase_order.js:2270 +#: templates/js/translated/purchase_order.js:2254 #: templates/js/translated/return_order.js:774 -#: templates/js/translated/sales_order.js:1103 -#: templates/js/translated/sales_order.js:2018 -#: templates/js/translated/stock.js:1621 templates/js/translated/stock.js:2513 +#: templates/js/translated/sales_order.js:1069 +#: templates/js/translated/sales_order.js:1999 +#: templates/js/translated/stock.js:1621 templates/js/translated/stock.js:2514 msgid "Notes" -msgstr "" +msgstr "Observações" -#: InvenTree/format.py:164 +#: InvenTree/format.py:162 #, python-brace-format msgid "Value '{name}' does not appear in pattern format" msgstr "" -#: InvenTree/format.py:175 +#: InvenTree/format.py:173 msgid "Provided value does not match required pattern: " -msgstr "" +msgstr "O valor fornecido não corresponde ao padrão exigido: " #: InvenTree/forms.py:129 msgid "Enter password" -msgstr "" +msgstr "Digite a senha" #: InvenTree/forms.py:130 msgid "Enter new password" -msgstr "" +msgstr "Digite a nova senha" #: InvenTree/forms.py:139 msgid "Confirm password" -msgstr "" +msgstr "Confirme a senha" #: InvenTree/forms.py:140 msgid "Confirm new password" -msgstr "" +msgstr "Confirme a nova senha" #: InvenTree/forms.py:144 msgid "Old password" -msgstr "" +msgstr "Senha antiga" #: InvenTree/forms.py:183 msgid "Email (again)" -msgstr "" +msgstr "Email (novamente)" #: InvenTree/forms.py:187 msgid "Email address confirmation" @@ -132,415 +140,427 @@ msgstr "" msgid "The provided primary email address is not valid." msgstr "" -#: InvenTree/forms.py:274 +#: InvenTree/forms.py:273 msgid "The provided email domain is not approved." msgstr "" -#: InvenTree/forms.py:403 +#: InvenTree/forms.py:402 msgid "Registration is disabled." msgstr "" -#: InvenTree/helpers.py:491 order/models.py:567 order/models.py:810 -msgid "Invalid quantity provided" +#: InvenTree/helpers.py:509 +msgid "Cannot serialize more than 1000 items at once" msgstr "" -#: InvenTree/helpers.py:499 +#: InvenTree/helpers.py:515 msgid "Empty serial number string" msgstr "" -#: InvenTree/helpers.py:528 +#: InvenTree/helpers.py:544 msgid "Duplicate serial" msgstr "" -#: InvenTree/helpers.py:560 InvenTree/helpers.py:603 +#: InvenTree/helpers.py:576 InvenTree/helpers.py:619 InvenTree/helpers.py:637 +#: InvenTree/helpers.py:644 InvenTree/helpers.py:663 #, python-brace-format -msgid "Invalid group range: {group}" +msgid "Invalid group: {group}" msgstr "" -#: InvenTree/helpers.py:591 +#: InvenTree/helpers.py:607 #, python-brace-format msgid "Group range {group} exceeds allowed quantity ({expected_quantity})" msgstr "" -#: InvenTree/helpers.py:621 InvenTree/helpers.py:628 InvenTree/helpers.py:647 -#, python-brace-format -msgid "Invalid group sequence: {group}" -msgstr "" - -#: InvenTree/helpers.py:657 +#: InvenTree/helpers.py:673 msgid "No serial numbers found" msgstr "" -#: InvenTree/helpers.py:662 +#: InvenTree/helpers.py:678 msgid "Number of unique serial numbers ({len(serials)}) must match quantity ({expected_quantity})" msgstr "" -#: InvenTree/helpers.py:780 +#: InvenTree/helpers.py:796 msgid "Remove HTML tags from this value" msgstr "" -#: InvenTree/helpers_model.py:133 -msgid "Connection error" +#: InvenTree/helpers.py:881 +msgid "Data contains prohibited markdown content" msgstr "" -#: InvenTree/helpers_model.py:138 InvenTree/helpers_model.py:145 +#: InvenTree/helpers_model.py:130 +msgid "Connection error" +msgstr "Erro de conexão" + +#: InvenTree/helpers_model.py:135 InvenTree/helpers_model.py:142 msgid "Server responded with invalid status code" msgstr "" -#: InvenTree/helpers_model.py:141 +#: InvenTree/helpers_model.py:138 msgid "Exception occurred" msgstr "" -#: InvenTree/helpers_model.py:151 +#: InvenTree/helpers_model.py:148 msgid "Server responded with invalid Content-Length value" msgstr "" -#: InvenTree/helpers_model.py:154 +#: InvenTree/helpers_model.py:151 msgid "Image size is too large" msgstr "" -#: InvenTree/helpers_model.py:166 +#: InvenTree/helpers_model.py:163 msgid "Image download exceeded maximum size" msgstr "" -#: InvenTree/helpers_model.py:171 +#: InvenTree/helpers_model.py:168 msgid "Remote server returned empty response" msgstr "" -#: InvenTree/helpers_model.py:179 +#: InvenTree/helpers_model.py:176 msgid "Supplied URL is not a valid image file" msgstr "" -#: InvenTree/locales.py:18 -msgid "Arabic" -msgstr "" - -#: InvenTree/locales.py:19 -msgid "Bulgarian" -msgstr "" - #: InvenTree/locales.py:20 +msgid "Arabic" +msgstr "Árabe" + +#: InvenTree/locales.py:21 +msgid "Bulgarian" +msgstr "Búlgaro" + +#: InvenTree/locales.py:22 msgid "Czech" msgstr "" -#: InvenTree/locales.py:21 +#: InvenTree/locales.py:23 msgid "Danish" msgstr "" -#: InvenTree/locales.py:22 -msgid "German" -msgstr "" - -#: InvenTree/locales.py:23 -msgid "Greek" -msgstr "" - #: InvenTree/locales.py:24 -msgid "English" -msgstr "" +msgid "German" +msgstr "Alemão" #: InvenTree/locales.py:25 -msgid "Spanish" -msgstr "" +msgid "Greek" +msgstr "Grego" #: InvenTree/locales.py:26 -msgid "Spanish (Mexican)" -msgstr "" +msgid "English" +msgstr "Inglês" #: InvenTree/locales.py:27 +msgid "Spanish" +msgstr "Espanhol" + +#: InvenTree/locales.py:28 +msgid "Spanish (Mexican)" +msgstr "Espanhol (mexicano)" + +#: InvenTree/locales.py:29 msgid "Estonian" msgstr "" -#: InvenTree/locales.py:28 +#: InvenTree/locales.py:30 msgid "Farsi / Persian" -msgstr "" +msgstr "Farsi / Persa" -#: InvenTree/locales.py:29 +#: InvenTree/locales.py:31 msgid "Finnish" msgstr "" -#: InvenTree/locales.py:30 +#: InvenTree/locales.py:32 msgid "French" -msgstr "" +msgstr "Francês" -#: InvenTree/locales.py:31 +#: InvenTree/locales.py:33 msgid "Hebrew" msgstr "" -#: InvenTree/locales.py:32 +#: InvenTree/locales.py:34 msgid "Hindi" msgstr "" -#: InvenTree/locales.py:33 +#: InvenTree/locales.py:35 msgid "Hungarian" msgstr "" -#: InvenTree/locales.py:34 +#: InvenTree/locales.py:36 msgid "Italian" msgstr "" -#: InvenTree/locales.py:35 +#: InvenTree/locales.py:37 msgid "Japanese" msgstr "" -#: InvenTree/locales.py:36 +#: InvenTree/locales.py:38 msgid "Korean" -msgstr "" +msgstr "Coreano" -#: InvenTree/locales.py:37 +#: InvenTree/locales.py:39 +msgid "Lithuanian" +msgstr "Lituano" + +#: InvenTree/locales.py:40 msgid "Latvian" msgstr "" -#: InvenTree/locales.py:38 +#: InvenTree/locales.py:41 msgid "Dutch" msgstr "" -#: InvenTree/locales.py:39 +#: InvenTree/locales.py:42 msgid "Norwegian" msgstr "" -#: InvenTree/locales.py:40 -msgid "Polish" -msgstr "" - -#: InvenTree/locales.py:41 -msgid "Portuguese" -msgstr "" - -#: InvenTree/locales.py:42 -msgid "Portuguese (Brazilian)" -msgstr "" - #: InvenTree/locales.py:43 -msgid "Romanian" -msgstr "" +msgid "Polish" +msgstr "Polonês" #: InvenTree/locales.py:44 -msgid "Russian" -msgstr "" +msgid "Portuguese" +msgstr "Português" #: InvenTree/locales.py:45 +msgid "Portuguese (Brazilian)" +msgstr "Português (Brasil)" + +#: InvenTree/locales.py:46 +msgid "Romanian" +msgstr "Romeno" + +#: InvenTree/locales.py:47 +msgid "Russian" +msgstr "Russo" + +#: InvenTree/locales.py:48 msgid "Slovak" msgstr "" -#: InvenTree/locales.py:46 +#: InvenTree/locales.py:49 msgid "Slovenian" -msgstr "" +msgstr "Esloveno" -#: InvenTree/locales.py:47 +#: InvenTree/locales.py:50 msgid "Serbian" msgstr "" -#: InvenTree/locales.py:48 +#: InvenTree/locales.py:51 msgid "Swedish" msgstr "" -#: InvenTree/locales.py:49 +#: InvenTree/locales.py:52 msgid "Thai" msgstr "" -#: InvenTree/locales.py:50 -msgid "Turkish" -msgstr "" - -#: InvenTree/locales.py:51 -msgid "Ukrainian" -msgstr "" - -#: InvenTree/locales.py:52 -msgid "Vietnamese" -msgstr "" - #: InvenTree/locales.py:53 -msgid "Chinese (Simplified)" -msgstr "" +msgid "Turkish" +msgstr "Turco" #: InvenTree/locales.py:54 +msgid "Ukrainian" +msgstr "Ucraniano" + +#: InvenTree/locales.py:55 +msgid "Vietnamese" +msgstr "Vietnamita" + +#: InvenTree/locales.py:56 +msgid "Chinese (Simplified)" +msgstr "Chinês (simplificado)" + +#: InvenTree/locales.py:57 msgid "Chinese (Traditional)" -msgstr "" +msgstr "Chinês (tradicional)" #: InvenTree/magic_login.py:28 -#, python-brace-format -msgid "[{site_name}] Log in to the app" +msgid "Log in to the app" msgstr "" -#: InvenTree/magic_login.py:38 InvenTree/serializers.py:415 -#: company/models.py:136 company/templates/company/company_base.html:138 +#: InvenTree/magic_login.py:38 InvenTree/serializers.py:416 +#: company/models.py:133 company/templates/company/company_base.html:138 #: templates/InvenTree/settings/user.html:49 -#: templates/js/translated/company.js:677 +#: templates/js/translated/company.js:678 msgid "Email" -msgstr "" +msgstr "E-mail" -#: InvenTree/models.py:103 +#: InvenTree/models.py:105 msgid "Error running plugin validation" msgstr "" -#: InvenTree/models.py:172 +#: InvenTree/models.py:174 msgid "Metadata must be a python dict object" msgstr "" -#: InvenTree/models.py:178 +#: InvenTree/models.py:180 msgid "Plugin Metadata" msgstr "" -#: InvenTree/models.py:179 +#: InvenTree/models.py:181 msgid "JSON metadata field, for use by external plugins" msgstr "" -#: InvenTree/models.py:409 +#: InvenTree/models.py:408 msgid "Improperly formatted pattern" msgstr "" -#: InvenTree/models.py:416 +#: InvenTree/models.py:415 msgid "Unknown format key specified" msgstr "" -#: InvenTree/models.py:422 +#: InvenTree/models.py:421 msgid "Missing required format key" msgstr "" -#: InvenTree/models.py:433 +#: InvenTree/models.py:432 msgid "Reference field cannot be empty" -msgstr "" +msgstr "O campo de referência não deve ficar vazio" -#: InvenTree/models.py:441 +#: InvenTree/models.py:440 msgid "Reference must match required pattern" msgstr "" -#: InvenTree/models.py:472 +#: InvenTree/models.py:471 msgid "Reference number is too large" -msgstr "" +msgstr "O número de referência é muito longo" -#: InvenTree/models.py:723 +#: InvenTree/models.py:722 msgid "Duplicate names cannot exist under the same parent" msgstr "" -#: InvenTree/models.py:740 +#: InvenTree/models.py:739 msgid "Invalid choice" msgstr "" -#: InvenTree/models.py:770 common/models.py:2702 common/models.py:3132 -#: common/serializers.py:412 company/models.py:593 machine/models.py:24 -#: part/models.py:983 part/models.py:3764 plugin/models.py:51 -#: report/models.py:149 stock/models.py:77 +#: InvenTree/models.py:769 common/models.py:2766 common/models.py:3193 +#: common/models.py:3413 common/serializers.py:460 company/models.py:590 +#: machine/models.py:24 part/models.py:1044 part/models.py:3815 +#: plugin/models.py:51 report/models.py:149 stock/models.py:83 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/notifications.html:17 #: templates/InvenTree/settings/plugin.html:83 #: templates/InvenTree/settings/plugin_settings.html:22 #: templates/InvenTree/settings/settings_staff_js.html:67 #: templates/InvenTree/settings/settings_staff_js.html:454 -#: templates/js/translated/company.js:676 -#: templates/js/translated/company.js:724 -#: templates/js/translated/company.js:913 -#: templates/js/translated/company.js:1165 -#: templates/js/translated/company.js:1413 templates/js/translated/part.js:1193 +#: templates/js/translated/company.js:677 +#: templates/js/translated/company.js:725 +#: templates/js/translated/company.js:914 +#: templates/js/translated/company.js:1166 +#: templates/js/translated/company.js:1414 templates/js/translated/part.js:1193 #: templates/js/translated/part.js:1481 templates/js/translated/part.js:1617 -#: templates/js/translated/part.js:2768 templates/js/translated/stock.js:2801 +#: templates/js/translated/part.js:2768 templates/js/translated/stock.js:2802 msgid "Name" msgstr "" -#: InvenTree/models.py:776 build/models.py:250 -#: build/templates/build/detail.html:24 common/models.py:156 -#: company/models.py:521 company/models.py:827 +#: InvenTree/models.py:775 build/models.py:251 +#: build/templates/build/detail.html:24 common/models.py:159 +#: company/models.py:518 company/models.py:824 #: company/templates/company/company_base.html:77 #: company/templates/company/manufacturer_part.html:75 -#: company/templates/company/supplier_part.html:107 order/models.py:288 -#: order/models.py:1413 part/admin.py:305 part/admin.py:411 part/models.py:1006 -#: part/models.py:3779 part/templates/part/category.html:79 -#: part/templates/part/part_base.html:170 +#: company/templates/company/supplier_part.html:108 order/models.py:295 +#: order/models.py:1430 part/admin.py:305 part/admin.py:411 part/models.py:1067 +#: part/models.py:3830 part/templates/part/category.html:79 +#: part/templates/part/part_base.html:171 #: part/templates/part/part_scheduling.html:12 report/models.py:155 -#: report/models.py:509 report/models.py:535 +#: report/models.py:517 report/models.py:543 #: report/templates/report/inventree_build_order_report.html:117 -#: stock/admin.py:54 stock/models.py:83 stock/templates/stock/location.html:122 +#: stock/admin.py:54 stock/models.py:89 stock/templates/stock/location.html:123 #: templates/InvenTree/settings/notifications.html:19 #: templates/InvenTree/settings/plugin_settings.html:27 #: templates/InvenTree/settings/settings_staff_js.html:170 #: templates/InvenTree/settings/settings_staff_js.html:459 #: templates/js/translated/bom.js:633 templates/js/translated/bom.js:963 -#: templates/js/translated/build.js:2311 templates/js/translated/company.js:519 -#: templates/js/translated/company.js:1330 -#: templates/js/translated/company.js:1641 templates/js/translated/index.js:119 +#: templates/js/translated/build.js:2314 templates/js/translated/company.js:520 +#: templates/js/translated/company.js:1331 +#: templates/js/translated/company.js:1642 templates/js/translated/index.js:119 #: templates/js/translated/order.js:323 templates/js/translated/part.js:1245 #: templates/js/translated/part.js:1490 templates/js/translated/part.js:1628 #: templates/js/translated/part.js:1965 templates/js/translated/part.js:2361 #: templates/js/translated/part.js:2803 templates/js/translated/part.js:2915 #: templates/js/translated/plugin.js:80 -#: templates/js/translated/purchase_order.js:1776 -#: templates/js/translated/purchase_order.js:1919 -#: templates/js/translated/purchase_order.js:2092 +#: templates/js/translated/purchase_order.js:1760 +#: templates/js/translated/purchase_order.js:1903 +#: templates/js/translated/purchase_order.js:2076 #: templates/js/translated/return_order.js:313 -#: templates/js/translated/sales_order.js:838 -#: templates/js/translated/sales_order.js:1848 -#: templates/js/translated/stock.js:1600 templates/js/translated/stock.js:2143 -#: templates/js/translated/stock.js:2832 templates/js/translated/stock.js:2915 +#: templates/js/translated/sales_order.js:797 +#: templates/js/translated/sales_order.js:1829 +#: templates/js/translated/stock.js:1600 templates/js/translated/stock.js:2144 +#: templates/js/translated/stock.js:2833 templates/js/translated/stock.js:2916 msgid "Description" -msgstr "" +msgstr "Descrição" -#: InvenTree/models.py:777 stock/models.py:84 +#: InvenTree/models.py:776 stock/models.py:90 msgid "Description (optional)" msgstr "" -#: InvenTree/models.py:792 templates/js/translated/part.js:2812 -#: templates/js/translated/stock.js:2841 +#: InvenTree/models.py:791 common/models.py:3546 +#: templates/js/translated/part.js:2812 templates/js/translated/stock.js:2842 msgid "Path" msgstr "" -#: InvenTree/models.py:929 +#: InvenTree/models.py:928 msgid "Markdown notes (optional)" msgstr "" -#: InvenTree/models.py:960 +#: InvenTree/models.py:959 msgid "Barcode Data" msgstr "" -#: InvenTree/models.py:961 +#: InvenTree/models.py:960 msgid "Third party barcode data" msgstr "" -#: InvenTree/models.py:967 +#: InvenTree/models.py:966 msgid "Barcode Hash" msgstr "" -#: InvenTree/models.py:968 +#: InvenTree/models.py:967 msgid "Unique hash of barcode data" msgstr "" -#: InvenTree/models.py:1035 +#: InvenTree/models.py:1034 msgid "Existing barcode found" msgstr "" -#: InvenTree/models.py:1078 -msgid "Server Error" +#: InvenTree/models.py:1112 +msgid "Task Failure" msgstr "" -#: InvenTree/models.py:1079 +#: InvenTree/models.py:1114 +#, python-brace-format +msgid "Background worker task '{instance.func}' failed after {n} attempts" +msgstr "" + +#: InvenTree/models.py:1142 +msgid "Server Error" +msgstr "Erro de servidor" + +#: InvenTree/models.py:1143 msgid "An error has been logged by the server." msgstr "" -#: InvenTree/serializers.py:63 part/models.py:4387 +#: InvenTree/serializers.py:63 part/models.py:4444 msgid "Must be a valid number" msgstr "" -#: InvenTree/serializers.py:100 company/models.py:186 -#: company/templates/company/company_base.html:112 part/models.py:3115 +#: InvenTree/serializers.py:100 company/models.py:183 +#: company/templates/company/company_base.html:112 part/models.py:3166 #: templates/InvenTree/settings/settings_staff_js.html:44 #: templates/currency_data.html:5 msgid "Currency" -msgstr "" +msgstr "Moeda" #: InvenTree/serializers.py:103 msgid "Select currency from available options" msgstr "" -#: InvenTree/serializers.py:407 templates/InvenTree/settings/user.html:33 +#: InvenTree/serializers.py:405 templates/InvenTree/settings/user.html:33 msgid "Username" msgstr "" -#: InvenTree/serializers.py:409 templates/InvenTree/settings/user.html:37 +#: InvenTree/serializers.py:408 templates/InvenTree/settings/user.html:37 msgid "First Name" msgstr "" -#: InvenTree/serializers.py:409 +#: InvenTree/serializers.py:408 msgid "First name of the user" msgstr "" @@ -550,32 +570,32 @@ msgstr "" #: InvenTree/serializers.py:412 msgid "Last name of the user" -msgstr "" +msgstr "Sobrenome do usuário" -#: InvenTree/serializers.py:415 +#: InvenTree/serializers.py:416 msgid "Email address of the user" msgstr "" -#: InvenTree/serializers.py:439 +#: InvenTree/serializers.py:441 msgid "Staff" msgstr "" -#: InvenTree/serializers.py:439 +#: InvenTree/serializers.py:441 msgid "Does this user have staff permissions" msgstr "" -#: InvenTree/serializers.py:442 +#: InvenTree/serializers.py:445 msgid "Superuser" msgstr "" -#: InvenTree/serializers.py:442 +#: InvenTree/serializers.py:445 msgid "Is this user a superuser" msgstr "" -#: InvenTree/serializers.py:445 common/models.py:2707 company/models.py:163 -#: company/models.py:801 machine/models.py:39 part/admin.py:88 -#: part/models.py:1189 plugin/models.py:66 -#: templates/js/translated/company.js:523 +#: InvenTree/serializers.py:449 common/models.py:2771 company/models.py:160 +#: company/models.py:798 machine/models.py:39 part/admin.py:88 +#: part/models.py:1250 plugin/models.py:66 +#: templates/js/translated/company.js:524 #: templates/js/translated/table_filters.js:134 #: templates/js/translated/table_filters.js:226 #: templates/js/translated/table_filters.js:513 @@ -583,232 +603,231 @@ msgstr "" #: templates/js/translated/table_filters.js:719 #: templates/js/translated/table_filters.js:808 users/models.py:182 msgid "Active" -msgstr "" +msgstr "Ativo" -#: InvenTree/serializers.py:445 +#: InvenTree/serializers.py:449 msgid "Is this user account active" msgstr "" -#: InvenTree/serializers.py:463 +#: InvenTree/serializers.py:467 msgid "You do not have permission to change this user role." msgstr "" -#: InvenTree/serializers.py:475 +#: InvenTree/serializers.py:503 msgid "Only superusers can create new users" msgstr "" -#: InvenTree/serializers.py:494 +#: InvenTree/serializers.py:523 msgid "Your account has been created." msgstr "" -#: InvenTree/serializers.py:496 +#: InvenTree/serializers.py:525 msgid "Please use the password reset function to login" msgstr "" -#: InvenTree/serializers.py:503 +#: InvenTree/serializers.py:531 msgid "Welcome to InvenTree" msgstr "" -#: InvenTree/serializers.py:561 +#: InvenTree/serializers.py:594 msgid "Invalid value" msgstr "" -#: InvenTree/serializers.py:581 importer/models.py:63 +#: InvenTree/serializers.py:614 importer/models.py:64 msgid "Data File" -msgstr "" +msgstr "Arquivo de dados" -#: InvenTree/serializers.py:582 +#: InvenTree/serializers.py:615 msgid "Select data file for upload" msgstr "" -#: InvenTree/serializers.py:599 -msgid "Unsupported file type" +#: InvenTree/serializers.py:632 common/files.py:63 +msgid "Unsupported file format" msgstr "" -#: InvenTree/serializers.py:605 +#: InvenTree/serializers.py:638 msgid "File is too large" -msgstr "" +msgstr "O arquivo é muito grande" -#: InvenTree/serializers.py:626 +#: InvenTree/serializers.py:659 msgid "No columns found in file" msgstr "" -#: InvenTree/serializers.py:629 +#: InvenTree/serializers.py:662 msgid "No data rows found in file" msgstr "" -#: InvenTree/serializers.py:742 +#: InvenTree/serializers.py:774 msgid "No data rows provided" msgstr "" -#: InvenTree/serializers.py:745 +#: InvenTree/serializers.py:777 msgid "No data columns supplied" msgstr "" -#: InvenTree/serializers.py:812 +#: InvenTree/serializers.py:843 #, python-brace-format msgid "Missing required column: '{name}'" msgstr "" -#: InvenTree/serializers.py:821 +#: InvenTree/serializers.py:852 #, python-brace-format msgid "Duplicate column: '{col}'" msgstr "" -#: InvenTree/serializers.py:861 +#: InvenTree/serializers.py:891 msgid "Remote Image" msgstr "" -#: InvenTree/serializers.py:862 +#: InvenTree/serializers.py:892 msgid "URL of remote image file" msgstr "" -#: InvenTree/serializers.py:880 +#: InvenTree/serializers.py:910 msgid "Downloading images from remote URL is not enabled" msgstr "" -#: InvenTree/status.py:66 part/serializers.py:1246 -msgid "Background worker check failed" -msgstr "" - -#: InvenTree/status.py:70 -msgid "Email backend not configured" -msgstr "" - -#: InvenTree/status.py:73 -msgid "InvenTree system health checks failed" +#: InvenTree/serializers.py:917 +msgid "Failed to download image from remote URL" msgstr "" #: InvenTree/templatetags/inventree_extras.py:184 msgid "Unknown database" msgstr "" -#: InvenTree/validators.py:32 InvenTree/validators.py:34 +#: InvenTree/validators.py:32 msgid "Invalid physical unit" msgstr "" -#: InvenTree/validators.py:40 +#: InvenTree/validators.py:38 msgid "Not a valid currency code" msgstr "" -#: InvenTree/validators.py:118 InvenTree/validators.py:134 +#: InvenTree/validators.py:115 InvenTree/validators.py:131 msgid "Overage value must not be negative" msgstr "" -#: InvenTree/validators.py:136 +#: InvenTree/validators.py:133 msgid "Overage must not exceed 100%" msgstr "" -#: InvenTree/validators.py:142 +#: InvenTree/validators.py:139 msgid "Invalid value for overage" msgstr "" -#: InvenTree/views.py:400 templates/InvenTree/settings/user.html:23 +#: InvenTree/views.py:399 templates/InvenTree/settings/user.html:23 msgid "Edit User Information" msgstr "" -#: InvenTree/views.py:412 templates/InvenTree/settings/user.html:20 +#: InvenTree/views.py:411 templates/InvenTree/settings/user.html:20 msgid "Set Password" -msgstr "" +msgstr "Definir senha" -#: InvenTree/views.py:434 +#: InvenTree/views.py:433 msgid "Password fields must match" msgstr "" -#: InvenTree/views.py:442 +#: InvenTree/views.py:441 msgid "Wrong password provided" msgstr "" -#: InvenTree/views.py:650 templates/navbar.html:160 +#: InvenTree/views.py:645 templates/navbar.html:160 msgid "System Information" msgstr "" -#: InvenTree/views.py:657 templates/navbar.html:171 +#: InvenTree/views.py:652 templates/navbar.html:171 msgid "About InvenTree" msgstr "" -#: build/api.py:51 part/api.py:156 stock/api.py:343 -msgid "Cascade" -msgstr "" - -#: build/api.py:64 build/models.py:261 -#: build/templates/build/build_base.html:191 +#: build/api.py:54 build/models.py:262 +#: build/templates/build/build_base.html:192 #: build/templates/build/detail.html:87 msgid "Parent Build" msgstr "" -#: build/api.py:89 order/api.py:92 templates/js/translated/table_filters.js:101 +#: build/api.py:58 build/api.py:625 order/api.py:396 order/api.py:611 +#: order/api.py:990 order/api.py:1187 +#: templates/js/translated/table_filters.js:372 +msgid "Include Variants" +msgstr "" + +#: build/api.py:93 +msgid "Ancestor Build" +msgstr "" + +#: build/api.py:112 order/api.py:90 +#: templates/js/translated/table_filters.js:101 #: templates/js/translated/table_filters.js:549 #: templates/js/translated/table_filters.js:633 #: templates/js/translated/table_filters.js:674 msgid "Assigned to me" msgstr "" -#: build/api.py:106 build/templates/build/build_base.html:205 +#: build/api.py:129 build/templates/build/build_base.html:206 #: build/templates/build/detail.html:115 #: report/templates/report/inventree_build_order_report.html:152 #: templates/js/translated/table_filters.js:552 msgid "Issued By" msgstr "" -#: build/api.py:125 +#: build/api.py:148 msgid "Assigned To" msgstr "" -#: build/api.py:301 +#: build/api.py:310 msgid "Build must be cancelled before it can be deleted" msgstr "" -#: build/api.py:345 build/serializers.py:1288 part/models.py:4265 +#: build/api.py:354 build/serializers.py:1342 part/models.py:4322 #: templates/js/translated/bom.js:997 templates/js/translated/bom.js:1037 -#: templates/js/translated/build.js:2702 +#: templates/js/translated/build.js:2711 #: templates/js/translated/table_filters.js:197 #: templates/js/translated/table_filters.js:586 msgid "Consumable" msgstr "" -#: build/api.py:346 build/serializers.py:1289 part/models.py:4259 +#: build/api.py:355 build/serializers.py:1343 part/models.py:4316 #: part/templates/part/upload_bom.html:58 templates/js/translated/bom.js:1001 -#: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2693 +#: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2702 #: templates/js/translated/table_filters.js:193 #: templates/js/translated/table_filters.js:222 #: templates/js/translated/table_filters.js:590 msgid "Optional" msgstr "" -#: build/api.py:347 common/models.py:1489 part/admin.py:91 part/admin.py:428 -#: part/models.py:1154 part/serializers.py:1575 +#: build/api.py:356 common/models.py:1558 part/admin.py:91 part/admin.py:428 +#: part/models.py:1215 part/serializers.py:1633 #: templates/js/translated/bom.js:1639 #: templates/js/translated/table_filters.js:337 #: templates/js/translated/table_filters.js:729 msgid "Assembly" msgstr "" -#: build/api.py:348 templates/js/translated/table_filters.js:415 +#: build/api.py:357 templates/js/translated/table_filters.js:415 #: templates/js/translated/table_filters.js:582 msgid "Tracked" msgstr "" -#: build/api.py:349 build/serializers.py:1290 part/models.py:1172 +#: build/api.py:358 build/serializers.py:1344 part/models.py:1233 #: templates/js/translated/table_filters.js:146 #: templates/js/translated/table_filters.js:779 msgid "Testable" msgstr "" -#: build/api.py:351 part/admin.py:144 templates/js/translated/build.js:1917 -#: templates/js/translated/build.js:2820 -#: templates/js/translated/sales_order.js:1965 +#: build/api.py:360 order/api.py:779 part/admin.py:144 +#: templates/js/translated/build.js:1920 templates/js/translated/build.js:2838 +#: templates/js/translated/sales_order.js:1946 #: templates/js/translated/table_filters.js:574 msgid "Allocated" msgstr "" -#: build/api.py:359 company/models.py:891 company/serializers.py:395 -#: company/templates/company/supplier_part.html:114 +#: build/api.py:368 company/models.py:888 company/serializers.py:399 +#: company/templates/company/supplier_part.html:115 #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:17 -#: templates/js/translated/bom.js:1162 templates/js/translated/build.js:2752 +#: templates/js/translated/bom.js:1162 templates/js/translated/build.js:2770 #: templates/js/translated/index.js:123 -#: templates/js/translated/model_renderers.js:235 +#: templates/js/translated/model_renderers.js:238 #: templates/js/translated/part.js:695 templates/js/translated/part.js:697 #: templates/js/translated/part.js:702 #: templates/js/translated/table_filters.js:347 @@ -816,16 +835,68 @@ msgstr "" msgid "Available" msgstr "" -#: build/models.py:86 build/templates/build/build_base.html:9 -#: build/templates/build/build_base.html:27 +#: build/api.py:640 build/models.py:268 build/serializers.py:1330 +#: build/templates/build/build_base.html:106 +#: build/templates/build/detail.html:29 company/models.py:1043 order/api.py:775 +#: order/api.py:1003 order/models.py:1519 order/models.py:1674 +#: order/models.py:1675 part/api.py:1495 part/api.py:1802 part/models.py:419 +#: part/models.py:3177 part/models.py:3321 part/models.py:3469 +#: part/models.py:3490 part/models.py:3512 part/models.py:3648 +#: part/models.py:3995 part/models.py:4158 part/models.py:4288 +#: part/models.py:4654 part/serializers.py:1245 part/serializers.py:1898 +#: part/templates/part/part_app_base.html:8 +#: part/templates/part/part_pricing.html:12 +#: part/templates/part/upload_bom.html:52 +#: report/templates/report/inventree_bill_of_materials_report.html:110 +#: report/templates/report/inventree_bill_of_materials_report.html:137 +#: report/templates/report/inventree_build_order_report.html:109 +#: report/templates/report/inventree_purchase_order_report.html:27 +#: report/templates/report/inventree_return_order_report.html:24 +#: report/templates/report/inventree_sales_order_report.html:27 +#: report/templates/report/inventree_sales_order_shipment_report.html:28 +#: report/templates/report/inventree_stock_location_report.html:102 +#: stock/serializers.py:112 stock/serializers.py:160 stock/serializers.py:456 +#: stock/serializers.py:947 templates/InvenTree/search.html:82 +#: templates/email/build_order_completed.html:17 +#: templates/email/build_order_required_stock.html:17 +#: templates/email/low_stock_notification.html:15 +#: templates/email/overdue_build_order.html:16 +#: templates/js/translated/barcode.js:577 templates/js/translated/bom.js:632 +#: templates/js/translated/bom.js:769 templates/js/translated/bom.js:905 +#: templates/js/translated/build.js:1005 templates/js/translated/build.js:1488 +#: templates/js/translated/build.js:1919 templates/js/translated/build.js:2337 +#: templates/js/translated/build.js:2514 templates/js/translated/company.js:349 +#: templates/js/translated/company.js:1117 +#: templates/js/translated/company.js:1272 +#: templates/js/translated/company.js:1560 templates/js/translated/index.js:109 +#: templates/js/translated/part.js:1950 templates/js/translated/part.js:2022 +#: templates/js/translated/part.js:2330 templates/js/translated/pricing.js:369 +#: templates/js/translated/purchase_order.js:734 +#: templates/js/translated/purchase_order.js:1350 +#: templates/js/translated/purchase_order.js:1902 +#: templates/js/translated/purchase_order.js:2061 +#: templates/js/translated/return_order.js:538 +#: templates/js/translated/return_order.js:708 +#: templates/js/translated/sales_order.js:1199 +#: templates/js/translated/sales_order.js:1608 +#: templates/js/translated/sales_order.js:1813 +#: templates/js/translated/stock.js:682 templates/js/translated/stock.js:848 +#: templates/js/translated/stock.js:1065 templates/js/translated/stock.js:2083 +#: templates/js/translated/stock.js:2942 templates/js/translated/stock.js:3175 +#: templates/js/translated/stock.js:3320 +msgid "Part" +msgstr "" + +#: build/api.py:662 build/models.py:88 build/templates/build/build_base.html:10 +#: build/templates/build/build_base.html:28 #: report/templates/report/inventree_build_order_report.html:105 -#: stock/serializers.py:84 templates/email/build_order_completed.html:16 +#: stock/serializers.py:85 templates/email/build_order_completed.html:16 #: templates/email/overdue_build_order.html:15 -#: templates/js/translated/build.js:1145 templates/js/translated/stock.js:2976 +#: templates/js/translated/build.js:1148 templates/js/translated/stock.js:2977 msgid "Build Order" msgstr "" -#: build/models.py:87 build/templates/build/build_base.html:13 +#: build/models.py:89 build/templates/build/build_base.html:14 #: build/templates/build/index.html:8 build/templates/build/index.html:12 #: order/templates/order/sales_order_detail.html:111 #: order/templates/order/so_sidebar.html:13 @@ -836,268 +907,216 @@ msgstr "" msgid "Build Orders" msgstr "" -#: build/models.py:135 +#: build/models.py:136 msgid "Assembly BOM has not been validated" msgstr "" -#: build/models.py:142 +#: build/models.py:143 msgid "Build order cannot be created for an inactive part" msgstr "" -#: build/models.py:149 +#: build/models.py:150 msgid "Build order cannot be created for an unlocked part" msgstr "" -#: build/models.py:163 +#: build/models.py:164 msgid "Invalid choice for parent build" msgstr "" -#: build/models.py:174 order/models.py:239 +#: build/models.py:175 order/models.py:236 msgid "Responsible user or group must be specified" msgstr "" -#: build/models.py:180 +#: build/models.py:181 msgid "Build order part cannot be changed" msgstr "" -#: build/models.py:241 +#: build/models.py:242 msgid "Build Order Reference" msgstr "" -#: build/models.py:242 build/serializers.py:1287 order/models.py:467 -#: order/models.py:978 order/models.py:1373 order/models.py:2135 -#: part/admin.py:414 part/models.py:4280 part/templates/part/upload_bom.html:54 +#: build/models.py:243 build/serializers.py:1341 order/models.py:479 +#: order/models.py:1005 order/models.py:1390 order/models.py:2174 +#: part/admin.py:414 part/models.py:4337 part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_bill_of_materials_report.html:139 #: report/templates/report/inventree_purchase_order_report.html:28 #: report/templates/report/inventree_return_order_report.html:26 #: report/templates/report/inventree_sales_order_report.html:28 #: templates/js/translated/bom.js:770 templates/js/translated/bom.js:973 -#: templates/js/translated/build.js:1011 templates/js/translated/build.js:2685 +#: templates/js/translated/build.js:1014 templates/js/translated/build.js:2694 #: templates/js/translated/order.js:316 templates/js/translated/pricing.js:386 -#: templates/js/translated/purchase_order.js:2135 +#: templates/js/translated/purchase_order.js:2119 #: templates/js/translated/return_order.js:727 -#: templates/js/translated/sales_order.js:1854 +#: templates/js/translated/sales_order.js:1835 msgid "Reference" msgstr "" -#: build/models.py:253 +#: build/models.py:254 msgid "Brief description of the build (optional)" msgstr "" -#: build/models.py:262 +#: build/models.py:263 msgid "BuildOrder to which this build is allocated" msgstr "" -#: build/models.py:267 build/serializers.py:1278 -#: build/templates/build/build_base.html:105 -#: build/templates/build/detail.html:29 company/models.py:1046 order/api.py:767 -#: order/models.py:1503 order/models.py:1658 order/models.py:1659 -#: part/api.py:1509 part/api.py:1813 part/models.py:424 part/models.py:3126 -#: part/models.py:3270 part/models.py:3418 part/models.py:3439 -#: part/models.py:3461 part/models.py:3597 part/models.py:3937 -#: part/models.py:4100 part/models.py:4231 part/models.py:4592 -#: part/serializers.py:1192 part/serializers.py:1836 -#: part/templates/part/part_app_base.html:8 -#: part/templates/part/part_pricing.html:12 -#: part/templates/part/upload_bom.html:52 -#: report/templates/report/inventree_bill_of_materials_report.html:110 -#: report/templates/report/inventree_bill_of_materials_report.html:137 -#: report/templates/report/inventree_build_order_report.html:109 -#: report/templates/report/inventree_purchase_order_report.html:27 -#: report/templates/report/inventree_return_order_report.html:24 -#: report/templates/report/inventree_sales_order_report.html:27 -#: report/templates/report/inventree_stock_location_report.html:102 -#: stock/serializers.py:111 stock/serializers.py:159 stock/serializers.py:446 -#: stock/serializers.py:916 templates/InvenTree/search.html:82 -#: templates/email/build_order_completed.html:17 -#: templates/email/build_order_required_stock.html:17 -#: templates/email/low_stock_notification.html:15 -#: templates/email/overdue_build_order.html:16 -#: templates/js/translated/barcode.js:577 templates/js/translated/bom.js:632 -#: templates/js/translated/bom.js:769 templates/js/translated/bom.js:905 -#: templates/js/translated/build.js:1002 templates/js/translated/build.js:1485 -#: templates/js/translated/build.js:1916 templates/js/translated/build.js:2334 -#: templates/js/translated/build.js:2507 templates/js/translated/company.js:348 -#: templates/js/translated/company.js:1116 -#: templates/js/translated/company.js:1271 -#: templates/js/translated/company.js:1559 templates/js/translated/index.js:109 -#: templates/js/translated/part.js:1950 templates/js/translated/part.js:2022 -#: templates/js/translated/part.js:2330 templates/js/translated/pricing.js:369 -#: templates/js/translated/purchase_order.js:751 -#: templates/js/translated/purchase_order.js:1367 -#: templates/js/translated/purchase_order.js:1918 -#: templates/js/translated/purchase_order.js:2077 -#: templates/js/translated/return_order.js:538 -#: templates/js/translated/return_order.js:708 -#: templates/js/translated/sales_order.js:300 -#: templates/js/translated/sales_order.js:1233 -#: templates/js/translated/sales_order.js:1634 -#: templates/js/translated/sales_order.js:1832 -#: templates/js/translated/stock.js:682 templates/js/translated/stock.js:848 -#: templates/js/translated/stock.js:1065 templates/js/translated/stock.js:2082 -#: templates/js/translated/stock.js:2941 templates/js/translated/stock.js:3174 -#: templates/js/translated/stock.js:3319 -msgid "Part" -msgstr "" - -#: build/models.py:275 +#: build/models.py:274 msgid "Select part to build" msgstr "" -#: build/models.py:280 +#: build/models.py:279 msgid "Sales Order Reference" -msgstr "" +msgstr "Referência do pedido de venda" -#: build/models.py:284 +#: build/models.py:283 msgid "SalesOrder to which this build is allocated" msgstr "" -#: build/models.py:289 build/serializers.py:1048 -#: templates/js/translated/build.js:1904 -#: templates/js/translated/sales_order.js:1221 +#: build/models.py:288 build/serializers.py:1092 +#: templates/js/translated/build.js:1907 +#: templates/js/translated/sales_order.js:1187 msgid "Source Location" msgstr "" -#: build/models.py:293 +#: build/models.py:292 msgid "Select location to take stock from for this build (leave blank to take from any stock location)" msgstr "" -#: build/models.py:298 +#: build/models.py:297 msgid "Destination Location" msgstr "" -#: build/models.py:302 +#: build/models.py:301 msgid "Select location where the completed items will be stored" msgstr "" -#: build/models.py:306 +#: build/models.py:305 msgid "Build Quantity" msgstr "" -#: build/models.py:309 +#: build/models.py:308 msgid "Number of stock items to build" msgstr "" -#: build/models.py:313 +#: build/models.py:312 msgid "Completed items" msgstr "" -#: build/models.py:315 +#: build/models.py:314 msgid "Number of stock items which have been completed" msgstr "" -#: build/models.py:319 +#: build/models.py:318 msgid "Build Status" msgstr "" -#: build/models.py:323 +#: build/models.py:322 msgid "Build status code" msgstr "" -#: build/models.py:332 build/serializers.py:302 build/serializers.py:1198 -#: order/serializers.py:670 stock/models.py:859 stock/serializers.py:76 -#: stock/serializers.py:1562 templates/js/translated/purchase_order.js:1129 +#: build/models.py:331 build/serializers.py:349 build/serializers.py:1243 +#: order/serializers.py:755 stock/models.py:936 stock/serializers.py:77 +#: stock/serializers.py:1593 templates/js/translated/purchase_order.js:1112 #: templates/js/translated/stock.js:1199 msgid "Batch Code" msgstr "" -#: build/models.py:336 build/serializers.py:303 +#: build/models.py:335 build/serializers.py:350 msgid "Batch code for this build output" msgstr "" -#: build/models.py:339 order/models.py:315 order/serializers.py:126 -#: part/models.py:1229 part/templates/part/part_base.html:319 +#: build/models.py:338 order/models.py:322 order/serializers.py:157 +#: part/models.py:1290 part/templates/part/part_base.html:327 #: templates/js/translated/return_order.js:338 -#: templates/js/translated/sales_order.js:863 +#: templates/js/translated/sales_order.js:822 msgid "Creation Date" msgstr "" -#: build/models.py:343 +#: build/models.py:342 msgid "Target completion date" msgstr "" -#: build/models.py:344 +#: build/models.py:343 msgid "Target date for build completion. Build will be overdue after this date." msgstr "" -#: build/models.py:347 order/models.py:526 order/models.py:2180 -#: templates/js/translated/build.js:2419 +#: build/models.py:346 order/models.py:538 order/models.py:2219 +#: templates/js/translated/build.js:2422 msgid "Completion Date" msgstr "" -#: build/models.py:353 +#: build/models.py:352 msgid "completed by" msgstr "" -#: build/models.py:361 templates/js/translated/build.js:2379 +#: build/models.py:360 templates/js/translated/build.js:2382 msgid "Issued by" msgstr "" -#: build/models.py:362 +#: build/models.py:361 msgid "User who issued this build order" msgstr "" -#: build/models.py:370 build/templates/build/build_base.html:212 -#: build/templates/build/detail.html:122 common/models.py:165 order/api.py:142 -#: order/models.py:333 order/templates/order/order_base.html:222 -#: order/templates/order/return_order_base.html:191 -#: order/templates/order/sales_order_base.html:235 part/models.py:1246 -#: part/templates/part/part_base.html:399 +#: build/models.py:369 build/templates/build/build_base.html:213 +#: build/templates/build/detail.html:122 common/models.py:168 order/api.py:140 +#: order/models.py:340 order/templates/order/order_base.html:231 +#: order/templates/order/return_order_base.html:192 +#: order/templates/order/sales_order_base.html:236 part/models.py:1307 +#: part/templates/part/part_base.html:407 #: report/templates/report/inventree_build_order_report.html:158 #: templates/InvenTree/settings/settings_staff_js.html:150 -#: templates/js/translated/build.js:2391 -#: templates/js/translated/purchase_order.js:1833 +#: templates/js/translated/build.js:2394 +#: templates/js/translated/purchase_order.js:1817 #: templates/js/translated/return_order.js:358 #: templates/js/translated/table_filters.js:551 msgid "Responsible" msgstr "" -#: build/models.py:371 +#: build/models.py:370 msgid "User or group responsible for this build order" msgstr "" -#: build/models.py:376 build/templates/build/detail.html:108 +#: build/models.py:375 build/templates/build/detail.html:108 #: company/templates/company/manufacturer_part.html:107 -#: company/templates/company/supplier_part.html:194 -#: order/templates/order/order_base.html:172 -#: order/templates/order/return_order_base.html:148 -#: order/templates/order/sales_order_base.html:187 -#: part/templates/part/part_base.html:392 stock/models.py:855 -#: stock/templates/stock/item_base.html:200 -#: templates/js/translated/company.js:1019 +#: company/templates/company/supplier_part.html:195 +#: order/templates/order/order_base.html:181 +#: order/templates/order/return_order_base.html:149 +#: order/templates/order/sales_order_base.html:188 +#: part/templates/part/part_base.html:400 stock/models.py:932 +#: stock/templates/stock/item_base.html:197 +#: templates/js/translated/company.js:1020 msgid "External Link" msgstr "" -#: build/models.py:377 common/models.py:3273 part/models.py:1058 -#: stock/models.py:855 +#: build/models.py:376 common/models.py:3334 part/models.py:1119 +#: stock/models.py:932 msgid "Link to external URL" msgstr "" -#: build/models.py:381 +#: build/models.py:380 msgid "Build Priority" msgstr "" -#: build/models.py:384 +#: build/models.py:383 msgid "Priority of this build order" msgstr "" -#: build/models.py:391 common/models.py:135 common/models.py:149 -#: order/admin.py:18 order/api.py:128 order/models.py:297 +#: build/models.py:390 common/models.py:138 common/models.py:152 +#: order/admin.py:18 order/api.py:126 order/models.py:304 #: templates/InvenTree/settings/settings_staff_js.html:146 -#: templates/js/translated/build.js:2316 -#: templates/js/translated/purchase_order.js:1780 +#: templates/js/translated/build.js:2319 +#: templates/js/translated/purchase_order.js:1764 #: templates/js/translated/return_order.js:317 -#: templates/js/translated/sales_order.js:842 +#: templates/js/translated/sales_order.js:801 #: templates/js/translated/table_filters.js:47 #: templates/project_code_data.html:6 msgid "Project Code" msgstr "" -#: build/models.py:392 +#: build/models.py:391 msgid "Project code for this build order" msgstr "" -#: build/models.py:651 build/models.py:778 +#: build/models.py:651 build/models.py:779 msgid "Failed to offload task to complete build allocations" msgstr "" @@ -1110,610 +1129,619 @@ msgstr "" msgid "A build order has been completed" msgstr "" -#: build/models.py:967 build/models.py:1055 +#: build/models.py:858 build/serializers.py:393 +msgid "Serial numbers must be provided for trackable parts" +msgstr "" + +#: build/models.py:969 build/models.py:1058 msgid "No build output specified" msgstr "" -#: build/models.py:970 +#: build/models.py:972 msgid "Build output is already completed" msgstr "" -#: build/models.py:973 +#: build/models.py:975 msgid "Build output does not match Build Order" msgstr "" -#: build/models.py:1059 build/serializers.py:235 build/serializers.py:284 -#: build/serializers.py:915 order/models.py:564 order/serializers.py:499 -#: order/serializers.py:665 part/serializers.py:1569 part/serializers.py:1999 -#: stock/models.py:700 stock/models.py:1520 stock/serializers.py:669 +#: build/models.py:1062 build/serializers.py:282 build/serializers.py:331 +#: build/serializers.py:959 order/models.py:586 order/serializers.py:584 +#: order/serializers.py:750 part/serializers.py:1627 part/serializers.py:2060 +#: stock/models.py:777 stock/models.py:1609 stock/serializers.py:696 msgid "Quantity must be greater than zero" msgstr "" -#: build/models.py:1064 build/serializers.py:240 +#: build/models.py:1067 build/serializers.py:287 msgid "Quantity cannot be greater than the output quantity" msgstr "" -#: build/models.py:1124 build/serializers.py:563 +#: build/models.py:1127 build/serializers.py:607 #, python-brace-format msgid "Build output {serial} has not passed all required tests" msgstr "" -#: build/models.py:1465 +#: build/models.py:1482 msgid "Build Order Line Item" msgstr "" -#: build/models.py:1490 +#: build/models.py:1507 msgid "Build object" msgstr "" -#: build/models.py:1504 build/models.py:1760 build/serializers.py:222 -#: build/serializers.py:269 build/serializers.py:1295 -#: build/templates/build/build_base.html:110 -#: build/templates/build/detail.html:34 common/models.py:2579 -#: order/models.py:1356 order/models.py:2041 order/serializers.py:1460 +#: build/models.py:1521 build/models.py:1787 build/serializers.py:269 +#: build/serializers.py:316 build/serializers.py:1349 +#: build/templates/build/build_base.html:111 +#: build/templates/build/detail.html:34 common/models.py:2643 +#: order/models.py:1373 order/models.py:2074 order/serializers.py:1586 #: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:413 -#: part/forms.py:48 part/models.py:3284 part/models.py:4253 -#: part/templates/part/part_pricing.html:16 +#: part/forms.py:48 part/models.py:3335 part/models.py:4310 +#: part/serializers.py:265 part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_bill_of_materials_report.html:138 #: report/templates/report/inventree_build_order_report.html:113 #: report/templates/report/inventree_purchase_order_report.html:29 #: report/templates/report/inventree_sales_order_report.html:29 +#: report/templates/report/inventree_sales_order_shipment_report.html:47 +#: report/templates/report/inventree_sales_order_shipment_report.html:49 #: report/templates/report/inventree_stock_location_report.html:104 #: report/templates/report/inventree_test_report.html:90 -#: report/templates/report/inventree_test_report.html:169 stock/admin.py:159 -#: stock/serializers.py:127 stock/serializers.py:167 stock/serializers.py:660 -#: stock/templates/stock/item_base.html:287 -#: stock/templates/stock/item_base.html:295 -#: stock/templates/stock/item_base.html:342 +#: report/templates/report/inventree_test_report.html:169 stock/admin.py:160 +#: stock/serializers.py:128 stock/serializers.py:168 stock/serializers.py:687 +#: stock/templates/stock/item_base.html:284 +#: stock/templates/stock/item_base.html:292 +#: stock/templates/stock/item_base.html:339 #: templates/email/build_order_completed.html:18 #: templates/js/translated/barcode.js:579 templates/js/translated/bom.js:771 -#: templates/js/translated/bom.js:981 templates/js/translated/build.js:522 -#: templates/js/translated/build.js:737 templates/js/translated/build.js:1542 -#: templates/js/translated/build.js:1919 templates/js/translated/build.js:2529 -#: templates/js/translated/company.js:1818 -#: templates/js/translated/model_renderers.js:237 +#: templates/js/translated/bom.js:981 templates/js/translated/build.js:525 +#: templates/js/translated/build.js:740 templates/js/translated/build.js:1545 +#: templates/js/translated/build.js:1922 templates/js/translated/build.js:2536 +#: templates/js/translated/company.js:1819 +#: templates/js/translated/model_renderers.js:240 #: templates/js/translated/order.js:329 templates/js/translated/part.js:968 -#: templates/js/translated/part.js:1818 templates/js/translated/part.js:3360 +#: templates/js/translated/part.js:1818 templates/js/translated/part.js:3376 #: templates/js/translated/pricing.js:381 #: templates/js/translated/pricing.js:474 #: templates/js/translated/pricing.js:522 #: templates/js/translated/pricing.js:616 -#: templates/js/translated/purchase_order.js:754 -#: templates/js/translated/purchase_order.js:1922 -#: templates/js/translated/purchase_order.js:2141 -#: templates/js/translated/sales_order.js:317 -#: templates/js/translated/sales_order.js:1235 -#: templates/js/translated/sales_order.js:1554 -#: templates/js/translated/sales_order.js:1644 -#: templates/js/translated/sales_order.js:1734 -#: templates/js/translated/sales_order.js:1860 +#: templates/js/translated/purchase_order.js:737 +#: templates/js/translated/purchase_order.js:1906 +#: templates/js/translated/purchase_order.js:2125 +#: templates/js/translated/sales_order.js:1201 +#: templates/js/translated/sales_order.js:1520 +#: templates/js/translated/sales_order.js:1625 +#: templates/js/translated/sales_order.js:1715 +#: templates/js/translated/sales_order.js:1841 #: templates/js/translated/stock.js:570 templates/js/translated/stock.js:708 -#: templates/js/translated/stock.js:879 templates/js/translated/stock.js:3105 -#: templates/js/translated/stock.js:3188 +#: templates/js/translated/stock.js:879 templates/js/translated/stock.js:3106 +#: templates/js/translated/stock.js:3189 msgid "Quantity" msgstr "" -#: build/models.py:1505 +#: build/models.py:1522 msgid "Required quantity for build order" -msgstr "" +msgstr "Quantidade necessária para o pedido de produção" -#: build/models.py:1585 +#: build/models.py:1602 msgid "Build item must specify a build output, as master part is marked as trackable" msgstr "" -#: build/models.py:1594 +#: build/models.py:1611 #, python-brace-format msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgstr "" -#: build/models.py:1604 order/models.py:1992 +#: build/models.py:1628 order/models.py:2025 msgid "Stock item is over-allocated" msgstr "" -#: build/models.py:1610 order/models.py:1995 +#: build/models.py:1634 order/models.py:2028 msgid "Allocation quantity must be greater than zero" msgstr "" -#: build/models.py:1616 +#: build/models.py:1640 msgid "Quantity must be 1 for serialized stock" msgstr "" -#: build/models.py:1675 +#: build/models.py:1699 msgid "Selected stock item does not match BOM line" msgstr "" -#: build/models.py:1747 build/serializers.py:895 order/serializers.py:1297 -#: order/serializers.py:1318 stock/models.py:376 stock/serializers.py:93 -#: stock/serializers.py:763 stock/serializers.py:1281 stock/serializers.py:1393 -#: stock/templates/stock/item_base.html:10 -#: stock/templates/stock/item_base.html:23 -#: stock/templates/stock/item_base.html:194 -#: templates/js/translated/build.js:1918 -#: templates/js/translated/sales_order.js:301 -#: templates/js/translated/sales_order.js:1234 -#: templates/js/translated/sales_order.js:1535 -#: templates/js/translated/sales_order.js:1540 -#: templates/js/translated/sales_order.js:1641 -#: templates/js/translated/sales_order.js:1728 +#: build/models.py:1774 build/serializers.py:939 order/serializers.py:1423 +#: order/serializers.py:1444 +#: report/templates/report/inventree_sales_order_shipment_report.html:29 +#: stock/models.py:382 stock/serializers.py:94 stock/serializers.py:794 +#: stock/serializers.py:1312 stock/serializers.py:1424 +#: stock/templates/stock/item_base.html:11 +#: stock/templates/stock/item_base.html:24 +#: stock/templates/stock/item_base.html:191 +#: templates/js/translated/build.js:1921 +#: templates/js/translated/sales_order.js:1200 +#: templates/js/translated/sales_order.js:1501 +#: templates/js/translated/sales_order.js:1506 +#: templates/js/translated/sales_order.js:1622 +#: templates/js/translated/sales_order.js:1709 #: templates/js/translated/stock.js:683 templates/js/translated/stock.js:849 -#: templates/js/translated/stock.js:3061 +#: templates/js/translated/stock.js:3062 msgid "Stock Item" msgstr "" -#: build/models.py:1748 +#: build/models.py:1775 msgid "Source stock item" msgstr "" -#: build/models.py:1761 +#: build/models.py:1788 msgid "Stock quantity to allocate to build" msgstr "" -#: build/models.py:1769 +#: build/models.py:1796 msgid "Install into" msgstr "" -#: build/models.py:1770 +#: build/models.py:1797 msgid "Destination stock item" msgstr "" -#: build/serializers.py:91 +#: build/serializers.py:108 msgid "Build Level" msgstr "" -#: build/serializers.py:99 build/serializers.py:1190 build/serializers.py:1279 -#: part/admin.py:41 part/admin.py:408 part/models.py:4102 part/stocktake.py:219 -#: stock/admin.py:156 +#: build/serializers.py:116 build/serializers.py:1235 build/serializers.py:1331 +#: part/admin.py:41 part/admin.py:408 part/models.py:4160 part/stocktake.py:219 +#: stock/admin.py:157 msgid "Part Name" msgstr "" -#: build/serializers.py:111 +#: build/serializers.py:128 msgid "Project Code Label" msgstr "" -#: build/serializers.py:172 build/serializers.py:924 -#: templates/js/translated/build.js:1042 templates/js/translated/build.js:1495 +#: build/serializers.py:134 +msgid "Create Child Builds" +msgstr "" + +#: build/serializers.py:135 +msgid "Automatically generate child build orders" +msgstr "" + +#: build/serializers.py:219 build/serializers.py:968 +#: templates/js/translated/build.js:1045 templates/js/translated/build.js:1498 msgid "Build Output" msgstr "" -#: build/serializers.py:184 +#: build/serializers.py:231 msgid "Build output does not match the parent build" msgstr "" -#: build/serializers.py:188 +#: build/serializers.py:235 msgid "Output part does not match BuildOrder part" msgstr "" -#: build/serializers.py:192 +#: build/serializers.py:239 msgid "This build output has already been completed" msgstr "" -#: build/serializers.py:203 +#: build/serializers.py:250 msgid "This build output is not fully allocated" msgstr "" -#: build/serializers.py:223 build/serializers.py:270 +#: build/serializers.py:270 build/serializers.py:317 msgid "Enter quantity for build output" msgstr "" -#: build/serializers.py:291 +#: build/serializers.py:338 msgid "Integer quantity required for trackable parts" msgstr "" -#: build/serializers.py:294 +#: build/serializers.py:341 msgid "Integer quantity required, as the bill of materials contains trackable parts" msgstr "" -#: build/serializers.py:309 order/serializers.py:678 order/serializers.py:1464 -#: stock/serializers.py:680 templates/js/translated/purchase_order.js:1154 +#: build/serializers.py:356 order/serializers.py:763 order/serializers.py:1590 +#: stock/serializers.py:707 templates/js/translated/purchase_order.js:1137 #: templates/js/translated/stock.js:373 templates/js/translated/stock.js:571 msgid "Serial Numbers" msgstr "" -#: build/serializers.py:310 +#: build/serializers.py:357 msgid "Enter serial numbers for build outputs" msgstr "" -#: build/serializers.py:315 build/serializers.py:456 build/serializers.py:528 -#: order/serializers.py:654 order/serializers.py:778 order/serializers.py:1781 -#: part/serializers.py:1212 stock/serializers.py:102 stock/serializers.py:691 -#: stock/serializers.py:851 stock/serializers.py:977 stock/serializers.py:1425 -#: stock/serializers.py:1681 stock/templates/stock/item_base.html:394 +#: build/serializers.py:362 build/serializers.py:500 build/serializers.py:572 +#: order/serializers.py:739 order/serializers.py:880 order/serializers.py:1933 +#: part/serializers.py:1265 stock/serializers.py:103 stock/serializers.py:718 +#: stock/serializers.py:882 stock/serializers.py:1008 stock/serializers.py:1456 +#: stock/serializers.py:1712 stock/templates/stock/item_base.html:391 #: templates/js/translated/barcode.js:578 -#: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1032 -#: templates/js/translated/build.js:1174 templates/js/translated/build.js:2544 -#: templates/js/translated/purchase_order.js:1210 -#: templates/js/translated/purchase_order.js:1320 -#: templates/js/translated/sales_order.js:1547 -#: templates/js/translated/sales_order.js:1655 -#: templates/js/translated/sales_order.js:1663 -#: templates/js/translated/sales_order.js:1742 +#: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1035 +#: templates/js/translated/build.js:1177 templates/js/translated/build.js:2551 +#: templates/js/translated/purchase_order.js:1193 +#: templates/js/translated/purchase_order.js:1303 +#: templates/js/translated/sales_order.js:1513 +#: templates/js/translated/sales_order.js:1636 +#: templates/js/translated/sales_order.js:1644 +#: templates/js/translated/sales_order.js:1723 #: templates/js/translated/stock.js:684 templates/js/translated/stock.js:850 -#: templates/js/translated/stock.js:1067 templates/js/translated/stock.js:2286 -#: templates/js/translated/stock.js:2955 +#: templates/js/translated/stock.js:1067 templates/js/translated/stock.js:2287 +#: templates/js/translated/stock.js:2956 msgid "Location" msgstr "" -#: build/serializers.py:316 +#: build/serializers.py:363 msgid "Stock location for build output" msgstr "" -#: build/serializers.py:330 +#: build/serializers.py:377 msgid "Auto Allocate Serial Numbers" msgstr "" -#: build/serializers.py:331 +#: build/serializers.py:378 msgid "Automatically allocate required items with matching serial numbers" -msgstr "" +msgstr "Alocar automaticamente os itens necessários com os números de série correspondentes" -#: build/serializers.py:346 -msgid "Serial numbers must be provided for trackable parts" -msgstr "" - -#: build/serializers.py:371 stock/api.py:1031 +#: build/serializers.py:415 order/serializers.py:858 stock/api.py:1017 +#: stock/models.py:1632 msgid "The following serial numbers already exist or are invalid" msgstr "" -#: build/serializers.py:418 build/serializers.py:480 build/serializers.py:569 +#: build/serializers.py:462 build/serializers.py:524 build/serializers.py:613 msgid "A list of build outputs must be provided" msgstr "" -#: build/serializers.py:457 +#: build/serializers.py:501 msgid "Stock location for scrapped outputs" msgstr "" -#: build/serializers.py:463 +#: build/serializers.py:507 msgid "Discard Allocations" msgstr "" -#: build/serializers.py:464 +#: build/serializers.py:508 msgid "Discard any stock allocations for scrapped outputs" msgstr "" -#: build/serializers.py:469 +#: build/serializers.py:513 msgid "Reason for scrapping build output(s)" msgstr "" -#: build/serializers.py:529 +#: build/serializers.py:573 msgid "Location for completed build outputs" msgstr "" -#: build/serializers.py:535 build/templates/build/build_base.html:159 -#: build/templates/build/detail.html:62 order/models.py:476 -#: order/models.py:1002 order/models.py:2159 order/serializers.py:686 -#: stock/admin.py:164 stock/serializers.py:1028 stock/serializers.py:1569 -#: stock/templates/stock/item_base.html:427 -#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2363 -#: templates/js/translated/purchase_order.js:1371 -#: templates/js/translated/purchase_order.js:1792 +#: build/serializers.py:579 build/templates/build/build_base.html:160 +#: build/templates/build/detail.html:62 order/models.py:488 +#: order/models.py:1029 order/models.py:2198 order/serializers.py:771 +#: stock/admin.py:165 stock/serializers.py:581 stock/serializers.py:1059 +#: stock/serializers.py:1600 stock/templates/stock/item_base.html:424 +#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2366 +#: templates/js/translated/purchase_order.js:1354 +#: templates/js/translated/purchase_order.js:1776 #: templates/js/translated/return_order.js:330 -#: templates/js/translated/sales_order.js:855 -#: templates/js/translated/stock.js:2261 templates/js/translated/stock.js:3079 -#: templates/js/translated/stock.js:3204 +#: templates/js/translated/sales_order.js:814 +#: templates/js/translated/stock.js:2262 templates/js/translated/stock.js:3080 +#: templates/js/translated/stock.js:3205 msgid "Status" msgstr "" -#: build/serializers.py:541 +#: build/serializers.py:585 msgid "Accept Incomplete Allocation" msgstr "" -#: build/serializers.py:542 +#: build/serializers.py:586 msgid "Complete outputs if stock has not been fully allocated" msgstr "" -#: build/serializers.py:654 +#: build/serializers.py:698 msgid "Consume Allocated Stock" msgstr "" -#: build/serializers.py:655 +#: build/serializers.py:699 msgid "Consume any stock which has already been allocated to this build" msgstr "" -#: build/serializers.py:661 +#: build/serializers.py:705 msgid "Remove Incomplete Outputs" msgstr "" -#: build/serializers.py:662 +#: build/serializers.py:706 msgid "Delete any build outputs which have not been completed" msgstr "" -#: build/serializers.py:689 +#: build/serializers.py:733 msgid "Not permitted" msgstr "" -#: build/serializers.py:690 +#: build/serializers.py:734 msgid "Accept as consumed by this build order" msgstr "" -#: build/serializers.py:691 +#: build/serializers.py:735 msgid "Deallocate before completing this build order" msgstr "" -#: build/serializers.py:721 +#: build/serializers.py:765 msgid "Overallocated Stock" msgstr "" -#: build/serializers.py:723 +#: build/serializers.py:767 msgid "How do you want to handle extra stock items assigned to the build order" msgstr "" -#: build/serializers.py:733 +#: build/serializers.py:777 msgid "Some stock items have been overallocated" msgstr "" -#: build/serializers.py:738 +#: build/serializers.py:782 msgid "Accept Unallocated" msgstr "" -#: build/serializers.py:739 +#: build/serializers.py:783 msgid "Accept that stock items have not been fully allocated to this build order" -msgstr "" +msgstr "Aceitar que os itens de estoque não foram totalmente alocados para esta encomenda" -#: build/serializers.py:749 templates/js/translated/build.js:316 +#: build/serializers.py:793 templates/js/translated/build.js:319 msgid "Required stock has not been fully allocated" msgstr "" -#: build/serializers.py:754 order/serializers.py:345 order/serializers.py:1365 +#: build/serializers.py:798 order/serializers.py:430 order/serializers.py:1491 msgid "Accept Incomplete" msgstr "" -#: build/serializers.py:755 +#: build/serializers.py:799 msgid "Accept that the required number of build outputs have not been completed" msgstr "" -#: build/serializers.py:765 templates/js/translated/build.js:320 +#: build/serializers.py:809 templates/js/translated/build.js:323 msgid "Required build quantity has not been completed" msgstr "" -#: build/serializers.py:774 +#: build/serializers.py:818 msgid "Build order has open child build orders" msgstr "" -#: build/serializers.py:777 +#: build/serializers.py:821 msgid "Build order must be in production state" msgstr "" -#: build/serializers.py:780 templates/js/translated/build.js:304 +#: build/serializers.py:824 templates/js/translated/build.js:307 msgid "Build order has incomplete outputs" msgstr "" -#: build/serializers.py:818 +#: build/serializers.py:862 msgid "Build Line" msgstr "" -#: build/serializers.py:828 +#: build/serializers.py:872 msgid "Build output" msgstr "" -#: build/serializers.py:836 +#: build/serializers.py:880 msgid "Build output must point to the same build" msgstr "" -#: build/serializers.py:872 +#: build/serializers.py:916 msgid "Build Line Item" msgstr "" -#: build/serializers.py:886 +#: build/serializers.py:930 msgid "bom_item.part must point to the same part as the build order" msgstr "" -#: build/serializers.py:901 stock/serializers.py:1294 +#: build/serializers.py:945 stock/serializers.py:1325 msgid "Item must be in stock" msgstr "" -#: build/serializers.py:949 order/serializers.py:1351 +#: build/serializers.py:993 order/serializers.py:1477 #, python-brace-format msgid "Available quantity ({q}) exceeded" msgstr "" -#: build/serializers.py:955 +#: build/serializers.py:999 msgid "Build output must be specified for allocation of tracked parts" msgstr "" -#: build/serializers.py:962 +#: build/serializers.py:1006 msgid "Build output cannot be specified for allocation of untracked parts" msgstr "" -#: build/serializers.py:986 order/serializers.py:1610 +#: build/serializers.py:1030 order/serializers.py:1750 msgid "Allocation items must be provided" msgstr "" -#: build/serializers.py:1049 +#: build/serializers.py:1093 msgid "Stock location where parts are to be sourced (leave blank to take from any location)" msgstr "" -#: build/serializers.py:1057 +#: build/serializers.py:1101 msgid "Exclude Location" msgstr "" -#: build/serializers.py:1058 +#: build/serializers.py:1102 msgid "Exclude stock items from this selected location" msgstr "" -#: build/serializers.py:1063 +#: build/serializers.py:1107 msgid "Interchangeable Stock" msgstr "" -#: build/serializers.py:1064 +#: build/serializers.py:1108 msgid "Stock items in multiple locations can be used interchangeably" msgstr "" -#: build/serializers.py:1069 +#: build/serializers.py:1113 msgid "Substitute Stock" msgstr "" -#: build/serializers.py:1070 +#: build/serializers.py:1114 msgid "Allow allocation of substitute parts" msgstr "" -#: build/serializers.py:1075 +#: build/serializers.py:1119 msgid "Optional Items" msgstr "" -#: build/serializers.py:1076 +#: build/serializers.py:1120 msgid "Allocate optional BOM items to build order" msgstr "" -#: build/serializers.py:1098 +#: build/serializers.py:1143 msgid "Failed to start auto-allocation task" msgstr "" -#: build/serializers.py:1181 +#: build/serializers.py:1226 stock/serializers.py:585 msgid "Supplier Part Number" msgstr "" -#: build/serializers.py:1182 company/models.py:506 +#: build/serializers.py:1227 company/models.py:503 stock/serializers.py:591 msgid "Manufacturer Part Number" msgstr "" -#: build/serializers.py:1183 stock/admin.py:53 stock/admin.py:175 -#: stock/serializers.py:457 +#: build/serializers.py:1228 stock/admin.py:53 stock/admin.py:176 +#: stock/serializers.py:467 msgid "Location Name" msgstr "" -#: build/serializers.py:1184 +#: build/serializers.py:1229 build/serializers.py:1327 msgid "Build Reference" msgstr "" -#: build/serializers.py:1185 +#: build/serializers.py:1230 msgid "BOM Reference" msgstr "" -#: build/serializers.py:1186 company/models.py:852 -#: company/templates/company/supplier_part.html:160 order/serializers.py:690 -#: stock/admin.py:228 stock/models.py:818 stock/serializers.py:1579 -#: stock/templates/stock/item_base.html:240 -#: templates/js/translated/company.js:1646 -#: templates/js/translated/purchase_order.js:1169 -#: templates/js/translated/purchase_order.js:1332 +#: build/serializers.py:1231 company/models.py:849 +#: company/templates/company/supplier_part.html:161 order/serializers.py:775 +#: stock/admin.py:229 stock/models.py:895 stock/serializers.py:1610 +#: stock/templates/stock/item_base.html:237 +#: templates/js/translated/company.js:1647 +#: templates/js/translated/purchase_order.js:1152 +#: templates/js/translated/purchase_order.js:1315 #: templates/js/translated/stock.js:1214 templates/js/translated/stock.js:1246 -#: templates/js/translated/stock.js:2509 +#: templates/js/translated/stock.js:2510 msgid "Packaging" msgstr "" -#: build/serializers.py:1189 part/admin.py:39 part/admin.py:398 -#: part/models.py:4101 part/stocktake.py:218 stock/admin.py:152 +#: build/serializers.py:1234 part/admin.py:39 part/admin.py:398 +#: part/models.py:4159 part/stocktake.py:218 stock/admin.py:153 msgid "Part ID" msgstr "" -#: build/serializers.py:1191 build/serializers.py:1280 part/admin.py:402 -#: part/models.py:4103 +#: build/serializers.py:1236 build/serializers.py:1332 part/admin.py:402 +#: part/models.py:4161 msgid "Part IPN" msgstr "" -#: build/serializers.py:1192 build/serializers.py:1282 part/admin.py:45 +#: build/serializers.py:1237 build/serializers.py:1334 part/admin.py:45 #: part/stocktake.py:220 msgid "Part Description" msgstr "" -#: build/serializers.py:1195 +#: build/serializers.py:1240 msgid "BOM Part ID" msgstr "" -#: build/serializers.py:1196 +#: build/serializers.py:1241 msgid "BOM Part Name" msgstr "" -#: build/serializers.py:1199 +#: build/serializers.py:1244 #: report/templates/report/inventree_return_order_report.html:25 -#: report/templates/report/inventree_test_report.html:88 stock/models.py:845 -#: stock/serializers.py:151 stock/templates/stock/item_base.html:311 -#: templates/js/translated/build.js:520 templates/js/translated/build.js:1540 -#: templates/js/translated/build.js:2527 -#: templates/js/translated/model_renderers.js:231 +#: report/templates/report/inventree_sales_order_shipment_report.html:45 +#: report/templates/report/inventree_test_report.html:88 stock/models.py:922 +#: stock/serializers.py:152 stock/templates/stock/item_base.html:308 +#: templates/js/translated/build.js:523 templates/js/translated/build.js:1543 +#: templates/js/translated/build.js:2534 +#: templates/js/translated/model_renderers.js:234 #: templates/js/translated/return_order.js:539 #: templates/js/translated/return_order.js:722 -#: templates/js/translated/sales_order.js:315 -#: templates/js/translated/sales_order.js:1647 -#: templates/js/translated/sales_order.js:1732 +#: templates/js/translated/sales_order.js:1628 +#: templates/js/translated/sales_order.js:1713 #: templates/js/translated/stock.js:602 msgid "Serial Number" msgstr "" -#: build/serializers.py:1212 stock/serializers.py:593 -#: templates/js/translated/build.js:1017 templates/js/translated/build.js:1164 -#: templates/js/translated/build.js:2516 +#: build/serializers.py:1257 stock/serializers.py:620 +#: templates/js/translated/build.js:1020 templates/js/translated/build.js:1167 +#: templates/js/translated/build.js:2523 msgid "Allocated Quantity" msgstr "" -#: build/serializers.py:1213 stock/templates/stock/item_base.html:340 +#: build/serializers.py:1258 stock/templates/stock/item_base.html:337 msgid "Available Quantity" msgstr "" -#: build/serializers.py:1283 +#: build/serializers.py:1335 msgid "Part Category ID" msgstr "" -#: build/serializers.py:1284 +#: build/serializers.py:1336 msgid "Part Category Name" msgstr "" -#: build/serializers.py:1291 common/models.py:1513 part/admin.py:113 -#: part/models.py:1166 templates/js/translated/table_filters.js:150 +#: build/serializers.py:1345 common/models.py:1582 part/admin.py:113 +#: part/models.py:1227 templates/js/translated/build.js:2738 +#: templates/js/translated/table_filters.js:150 #: templates/js/translated/table_filters.js:230 #: templates/js/translated/table_filters.js:783 msgid "Trackable" msgstr "" -#: build/serializers.py:1292 +#: build/serializers.py:1346 msgid "Inherited" msgstr "" -#: build/serializers.py:1293 part/models.py:4313 +#: build/serializers.py:1347 part/models.py:4370 #: part/templates/part/upload_bom.html:56 templates/js/translated/bom.js:1046 -#: templates/js/translated/build.js:2711 +#: templates/js/translated/build.js:2720 msgid "Allow Variants" msgstr "" -#: build/serializers.py:1297 part/models.py:4110 part/models.py:4584 +#: build/serializers.py:1351 part/models.py:4168 part/models.py:4646 #: stock/api.py:794 msgid "BOM Item" msgstr "" -#: build/serializers.py:1306 build/templates/build/detail.html:236 +#: build/serializers.py:1370 build/templates/build/detail.html:236 #: build/templates/build/sidebar.html:16 templates/js/translated/index.js:130 msgid "Allocated Stock" msgstr "" -#: build/serializers.py:1311 order/serializers.py:1175 part/admin.py:132 -#: part/bom.py:181 part/serializers.py:899 part/serializers.py:1602 -#: part/templates/part/part_base.html:210 templates/js/translated/bom.js:1208 -#: templates/js/translated/build.js:2804 templates/js/translated/part.js:712 +#: build/serializers.py:1375 order/serializers.py:1209 part/admin.py:132 +#: part/bom.py:186 part/serializers.py:951 part/serializers.py:1660 +#: part/templates/part/part_base.html:211 templates/js/translated/bom.js:1208 +#: templates/js/translated/build.js:2822 templates/js/translated/part.js:712 #: templates/js/translated/part.js:2155 #: templates/js/translated/table_filters.js:177 msgid "On Order" msgstr "" -#: build/serializers.py:1316 order/serializers.py:1176 part/serializers.py:1604 -#: templates/js/translated/build.js:2808 +#: build/serializers.py:1380 order/serializers.py:1210 part/serializers.py:1662 +#: templates/js/translated/build.js:2826 #: templates/js/translated/table_filters.js:367 msgid "In Production" msgstr "" -#: build/serializers.py:1321 part/bom.py:180 part/serializers.py:1629 -#: part/templates/part/part_base.html:192 -#: templates/js/translated/sales_order.js:1929 -msgid "Available Stock" -msgstr "" - -#: build/serializers.py:1325 -msgid "Available Substitute Stock" -msgstr "" - -#: build/serializers.py:1326 -msgid "Available Variant Stock" -msgstr "" - -#: build/serializers.py:1327 -msgid "Total Available Stock" -msgstr "" - -#: build/serializers.py:1328 part/serializers.py:906 +#: build/serializers.py:1384 part/serializers.py:958 msgid "External Stock" msgstr "" -#: build/status_codes.py:11 generic/states/tests.py:17 order/status_codes.py:12 -#: order/status_codes.py:42 order/status_codes.py:74 order/status_codes.py:98 +#: build/serializers.py:1385 part/bom.py:185 part/serializers.py:1687 +#: part/templates/part/part_base.html:193 +#: templates/js/translated/sales_order.js:1910 +msgid "Available Stock" +msgstr "" + +#: build/serializers.py:1386 +msgid "Available Substitute Stock" +msgstr "" + +#: build/serializers.py:1387 +msgid "Available Variant Stock" +msgstr "" + +#: build/status_codes.py:11 generic/states/tests.py:21 +#: generic/states/tests.py:131 order/status_codes.py:12 +#: order/status_codes.py:44 order/status_codes.py:76 order/status_codes.py:102 #: templates/js/translated/table_filters.js:601 msgid "Pending" msgstr "" @@ -1722,21 +1750,21 @@ msgstr "" msgid "Production" msgstr "" -#: build/status_codes.py:13 order/status_codes.py:14 order/status_codes.py:49 -#: order/status_codes.py:79 +#: build/status_codes.py:13 order/status_codes.py:14 order/status_codes.py:51 +#: order/status_codes.py:81 msgid "On Hold" msgstr "" -#: build/status_codes.py:14 order/status_codes.py:16 order/status_codes.py:51 -#: order/status_codes.py:82 +#: build/status_codes.py:14 order/status_codes.py:16 order/status_codes.py:53 +#: order/status_codes.py:84 msgid "Cancelled" -msgstr "" +msgstr "Cancelado" -#: build/status_codes.py:15 generic/states/tests.py:19 importer/models.py:509 -#: importer/status_codes.py:19 order/status_codes.py:15 -#: order/status_codes.py:50 order/status_codes.py:81 -#: order/templates/order/order_base.html:163 -#: order/templates/order/sales_order_base.html:168 report/models.py:443 +#: build/status_codes.py:15 generic/states/tests.py:23 importer/models.py:518 +#: importer/status_codes.py:27 order/status_codes.py:15 +#: order/status_codes.py:52 order/status_codes.py:83 +#: order/templates/order/order_base.html:172 +#: order/templates/order/sales_order_base.html:169 report/models.py:451 msgid "Complete" msgstr "" @@ -1744,165 +1772,162 @@ msgstr "" msgid "Stock required for build order" msgstr "" -#: build/tasks.py:201 +#: build/tasks.py:260 msgid "Overdue Build Order" msgstr "" -#: build/tasks.py:206 +#: build/tasks.py:265 #, python-brace-format msgid "Build order {bo} is now overdue" msgstr "" -#: build/templates/build/build_base.html:18 +#: build/templates/build/build_base.html:19 msgid "Part thumbnail" msgstr "" -#: build/templates/build/build_base.html:38 -#: company/templates/company/supplier_part.html:35 -#: order/templates/order/order_base.html:29 -#: order/templates/order/return_order_base.html:38 -#: order/templates/order/sales_order_base.html:38 -#: part/templates/part/part_base.html:41 -#: stock/templates/stock/item_base.html:40 -#: stock/templates/stock/location.html:52 +#: build/templates/build/build_base.html:39 +#: company/templates/company/supplier_part.html:36 +#: order/templates/order/order_base.html:30 +#: order/templates/order/return_order_base.html:39 +#: order/templates/order/sales_order_base.html:39 +#: part/templates/part/part_base.html:42 +#: stock/templates/stock/item_base.html:41 +#: stock/templates/stock/location.html:53 #: templates/js/translated/filters.js:338 msgid "Barcode actions" msgstr "" -#: build/templates/build/build_base.html:42 -#: company/templates/company/supplier_part.html:39 -#: order/templates/order/order_base.html:33 -#: order/templates/order/return_order_base.html:42 -#: order/templates/order/sales_order_base.html:42 -#: part/templates/part/part_base.html:44 -#: stock/templates/stock/item_base.html:44 -#: stock/templates/stock/location.html:54 templates/qr_button.html:1 +#: build/templates/build/build_base.html:43 +#: company/templates/company/supplier_part.html:40 +#: order/templates/order/order_base.html:34 +#: order/templates/order/return_order_base.html:43 +#: order/templates/order/sales_order_base.html:43 +#: part/templates/part/part_base.html:45 +#: stock/templates/stock/item_base.html:45 +#: stock/templates/stock/location.html:55 templates/qr_button.html:1 msgid "Show QR Code" msgstr "" -#: build/templates/build/build_base.html:45 -#: company/templates/company/supplier_part.html:41 -#: order/templates/order/order_base.html:36 -#: order/templates/order/return_order_base.html:45 -#: order/templates/order/sales_order_base.html:45 -#: part/templates/part/part_base.html:47 -#: stock/templates/stock/item_base.html:47 -#: stock/templates/stock/location.html:56 +#: build/templates/build/build_base.html:46 +#: company/templates/company/supplier_part.html:42 +#: order/templates/order/order_base.html:37 +#: order/templates/order/return_order_base.html:46 +#: order/templates/order/sales_order_base.html:46 +#: part/templates/part/part_base.html:48 +#: stock/templates/stock/item_base.html:48 +#: stock/templates/stock/location.html:57 #: templates/js/translated/barcode.js:527 #: templates/js/translated/barcode.js:532 msgid "Unlink Barcode" msgstr "" -#: build/templates/build/build_base.html:47 -#: company/templates/company/supplier_part.html:43 -#: order/templates/order/order_base.html:38 -#: order/templates/order/return_order_base.html:47 -#: order/templates/order/sales_order_base.html:47 -#: part/templates/part/part_base.html:49 -#: stock/templates/stock/item_base.html:49 -#: stock/templates/stock/location.html:58 +#: build/templates/build/build_base.html:48 +#: company/templates/company/supplier_part.html:44 +#: order/templates/order/order_base.html:39 +#: order/templates/order/return_order_base.html:48 +#: order/templates/order/sales_order_base.html:48 +#: part/templates/part/part_base.html:50 +#: stock/templates/stock/item_base.html:50 +#: stock/templates/stock/location.html:59 msgid "Link Barcode" msgstr "" -#: build/templates/build/build_base.html:56 -#: order/templates/order/order_base.html:46 -#: order/templates/order/return_order_base.html:55 -#: order/templates/order/sales_order_base.html:55 +#: build/templates/build/build_base.html:57 +#: order/templates/order/order_base.html:47 +#: order/templates/order/return_order_base.html:56 +#: order/templates/order/sales_order_base.html:56 msgid "Print actions" msgstr "" -#: build/templates/build/build_base.html:60 +#: build/templates/build/build_base.html:61 msgid "Print build order report" msgstr "" -#: build/templates/build/build_base.html:67 +#: build/templates/build/build_base.html:68 msgid "Build actions" msgstr "" -#: build/templates/build/build_base.html:71 +#: build/templates/build/build_base.html:72 msgid "Edit Build" msgstr "" -#: build/templates/build/build_base.html:73 +#: build/templates/build/build_base.html:74 msgid "Duplicate Build" msgstr "" -#: build/templates/build/build_base.html:76 +#: build/templates/build/build_base.html:77 msgid "Hold Build" msgstr "" -#: build/templates/build/build_base.html:79 +#: build/templates/build/build_base.html:80 msgid "Cancel Build" msgstr "" -#: build/templates/build/build_base.html:82 +#: build/templates/build/build_base.html:83 msgid "Delete Build" msgstr "" -#: build/templates/build/build_base.html:87 -msgid "Isueue Build" -msgstr "" - #: build/templates/build/build_base.html:88 +#: build/templates/build/build_base.html:89 msgid "Issue Build" msgstr "" -#: build/templates/build/build_base.html:91 #: build/templates/build/build_base.html:92 +#: build/templates/build/build_base.html:93 msgid "Complete Build" msgstr "" -#: build/templates/build/build_base.html:115 +#: build/templates/build/build_base.html:116 msgid "Build Description" msgstr "" -#: build/templates/build/build_base.html:125 +#: build/templates/build/build_base.html:126 msgid "No build outputs have been created for this build order" msgstr "" -#: build/templates/build/build_base.html:132 +#: build/templates/build/build_base.html:133 msgid "Build Order is ready to mark as completed" msgstr "" -#: build/templates/build/build_base.html:137 +#: build/templates/build/build_base.html:138 msgid "Build Order cannot be completed as outstanding outputs remain" msgstr "" -#: build/templates/build/build_base.html:142 +#: build/templates/build/build_base.html:143 msgid "Required build quantity has not yet been completed" msgstr "" -#: build/templates/build/build_base.html:147 +#: build/templates/build/build_base.html:148 msgid "Stock has not been fully allocated to this Build Order" msgstr "" -#: build/templates/build/build_base.html:168 -#: build/templates/build/detail.html:138 order/models.py:308 -#: order/models.py:1391 order/serializers.py:174 -#: order/templates/order/order_base.html:191 -#: order/templates/order/return_order_base.html:167 -#: order/templates/order/sales_order_base.html:199 +#: build/templates/build/build_base.html:169 +#: build/templates/build/detail.html:138 order/models.py:315 +#: order/models.py:1408 order/serializers.py:254 +#: order/templates/order/order_base.html:200 +#: order/templates/order/return_order_base.html:168 +#: order/templates/order/sales_order_base.html:200 #: report/templates/report/inventree_build_order_report.html:125 -#: templates/js/translated/build.js:2411 templates/js/translated/part.js:1837 -#: templates/js/translated/purchase_order.js:1809 -#: templates/js/translated/purchase_order.js:2217 +#: templates/js/translated/build.js:2414 templates/js/translated/part.js:1837 +#: templates/js/translated/purchase_order.js:1793 +#: templates/js/translated/purchase_order.js:2201 #: templates/js/translated/return_order.js:346 #: templates/js/translated/return_order.js:749 -#: templates/js/translated/sales_order.js:871 -#: templates/js/translated/sales_order.js:1903 +#: templates/js/translated/sales_order.js:830 +#: templates/js/translated/sales_order.js:1884 msgid "Target Date" msgstr "" -#: build/templates/build/build_base.html:173 +#: build/templates/build/build_base.html:174 #, python-format msgid "This build was due on %(target)s" msgstr "" -#: build/templates/build/build_base.html:173 -#: build/templates/build/build_base.html:230 -#: order/templates/order/order_base.html:127 -#: order/templates/order/return_order_base.html:120 -#: order/templates/order/sales_order_base.html:129 +#: build/templates/build/build_base.html:174 +#: build/templates/build/build_base.html:231 +#: order/templates/order/order_base.html:128 +#: order/templates/order/return_order_base.html:121 +#: order/templates/order/sales_order_base.html:130 #: templates/js/translated/table_filters.js:97 #: templates/js/translated/table_filters.js:545 #: templates/js/translated/table_filters.js:629 @@ -1910,49 +1935,50 @@ msgstr "" msgid "Overdue" msgstr "" -#: build/templates/build/build_base.html:185 +#: build/templates/build/build_base.html:186 #: build/templates/build/detail.html:67 build/templates/build/sidebar.html:13 msgid "Completed Outputs" msgstr "" -#: build/templates/build/build_base.html:198 -#: build/templates/build/detail.html:101 order/api.py:1406 order/models.py:892 -#: order/models.py:1650 order/models.py:1765 order/models.py:1924 -#: order/templates/order/sales_order_base.html:9 -#: order/templates/order/sales_order_base.html:28 +#: build/templates/build/build_base.html:199 +#: build/templates/build/detail.html:101 order/api.py:1528 order/models.py:914 +#: order/models.py:1666 order/models.py:1794 order/models.py:1957 +#: order/templates/order/sales_order_base.html:10 +#: order/templates/order/sales_order_base.html:29 #: report/templates/report/inventree_build_order_report.html:135 #: report/templates/report/inventree_sales_order_report.html:14 -#: stock/templates/stock/item_base.html:369 +#: report/templates/report/inventree_sales_order_shipment_report.html:15 +#: stock/templates/stock/item_base.html:366 #: templates/email/overdue_sales_order.html:15 -#: templates/js/translated/pricing.js:929 -#: templates/js/translated/sales_order.js:805 -#: templates/js/translated/sales_order.js:1028 -#: templates/js/translated/stock.js:3008 +#: templates/js/translated/pricing.js:927 +#: templates/js/translated/sales_order.js:764 +#: templates/js/translated/sales_order.js:1001 +#: templates/js/translated/stock.js:3009 msgid "Sales Order" msgstr "" -#: build/templates/build/build_base.html:219 -#: build/templates/build/detail.html:94 templates/js/translated/build.js:2328 +#: build/templates/build/build_base.html:220 +#: build/templates/build/detail.html:94 templates/js/translated/build.js:2331 msgid "Priority" msgstr "" -#: build/templates/build/build_base.html:267 +#: build/templates/build/build_base.html:268 msgid "Issue Build Order" msgstr "" -#: build/templates/build/build_base.html:271 +#: build/templates/build/build_base.html:272 msgid "Issue this Build Order?" msgstr "" -#: build/templates/build/build_base.html:302 +#: build/templates/build/build_base.html:303 msgid "Delete Build Order" msgstr "" -#: build/templates/build/build_base.html:312 +#: build/templates/build/build_base.html:313 msgid "Build Order QR Code" msgstr "" -#: build/templates/build/build_base.html:324 +#: build/templates/build/build_base.html:325 msgid "Link Barcode to Build Order" msgstr "" @@ -1968,8 +1994,9 @@ msgstr "" msgid "Stock can be taken from any available location." msgstr "" -#: build/templates/build/detail.html:49 order/models.py:1532 -#: templates/js/translated/purchase_order.js:2259 +#: build/templates/build/detail.html:49 order/models.py:548 +#: order/models.py:1548 order/templates/order/order_base.html:135 +#: templates/js/translated/purchase_order.js:2243 msgid "Destination" msgstr "" @@ -1981,23 +2008,24 @@ msgstr "" msgid "Allocated Parts" msgstr "" -#: build/templates/build/detail.html:80 stock/admin.py:162 -#: stock/templates/stock/item_base.html:162 -#: templates/js/translated/build.js:1553 -#: templates/js/translated/model_renderers.js:242 -#: templates/js/translated/purchase_order.js:1326 +#: build/templates/build/detail.html:80 +#: report/templates/report/inventree_sales_order_shipment_report.html:47 +#: stock/admin.py:163 stock/templates/stock/item_base.html:159 +#: templates/js/translated/build.js:1556 +#: templates/js/translated/model_renderers.js:245 +#: templates/js/translated/purchase_order.js:1309 #: templates/js/translated/stock.js:1139 templates/js/translated/stock.js:1240 -#: templates/js/translated/stock.js:2275 templates/js/translated/stock.js:3211 +#: templates/js/translated/stock.js:2276 templates/js/translated/stock.js:3212 #: templates/js/translated/table_filters.js:320 #: templates/js/translated/table_filters.js:411 msgid "Batch" msgstr "" #: build/templates/build/detail.html:133 -#: order/templates/order/order_base.html:178 -#: order/templates/order/return_order_base.html:154 -#: order/templates/order/sales_order_base.html:193 -#: templates/js/translated/build.js:2371 +#: order/templates/order/order_base.html:187 +#: order/templates/order/return_order_base.html:155 +#: order/templates/order/sales_order_base.html:194 +#: templates/js/translated/build.js:2374 msgid "Created" msgstr "" @@ -2005,8 +2033,8 @@ msgstr "" msgid "No target date set" msgstr "" -#: build/templates/build/detail.html:149 -#: order/templates/order/sales_order_base.html:209 +#: build/templates/build/detail.html:149 order/api.py:794 +#: order/templates/order/sales_order_base.html:210 #: templates/js/translated/table_filters.js:692 msgid "Completed" msgstr "" @@ -2052,7 +2080,7 @@ msgid "Order required parts" msgstr "" #: build/templates/build/detail.html:192 -#: templates/js/translated/purchase_order.js:795 +#: templates/js/translated/purchase_order.js:778 msgid "Order Parts" msgstr "" @@ -2120,7 +2148,7 @@ msgstr "" msgid "Build Order Details" msgstr "" -#: build/templates/build/sidebar.html:8 order/serializers.py:82 +#: build/templates/build/sidebar.html:8 order/serializers.py:113 #: order/templates/order/po_sidebar.html:5 #: order/templates/order/return_order_detail.html:18 #: order/templates/order/so_sidebar.html:5 @@ -2139,43 +2167,38 @@ msgstr "" msgid "Test Statistics" msgstr "" -#: common/api.py:693 +#: common/api.py:725 msgid "Is Link" msgstr "" -#: common/api.py:701 +#: common/api.py:733 msgid "Is File" msgstr "" -#: common/api.py:744 +#: common/api.py:776 msgid "User does not have permission to delete these attachments" msgstr "" -#: common/api.py:761 +#: common/api.py:793 msgid "User does not have permission to delete this attachment" msgstr "" -#: common/currency.py:132 +#: common/currency.py:134 msgid "Invalid currency code" msgstr "" -#: common/currency.py:134 +#: common/currency.py:136 msgid "Duplicate currency code" msgstr "" -#: common/currency.py:139 +#: common/currency.py:141 msgid "No valid currency codes provided" msgstr "" -#: common/currency.py:156 +#: common/currency.py:158 msgid "No plugin" msgstr "" -#: common/files.py:63 -#, python-brace-format -msgid "Unsupported file format: {fmt}" -msgstr "" - #: common/files.py:65 msgid "Error reading file (invalid encoding)" msgstr "" @@ -2192,1883 +2215,2039 @@ msgstr "" msgid "Error reading file (data could be corrupted)" msgstr "" -#: common/forms.py:12 +#: common/forms.py:12 common/forms.py:25 msgid "File" msgstr "" -#: common/forms.py:12 +#: common/forms.py:12 common/forms.py:26 msgid "Select file to upload" msgstr "" -#: common/forms.py:25 -msgid "{name.title()} File" -msgstr "" - -#: common/forms.py:26 -#, python-brace-format -msgid "Select {name} file to upload" -msgstr "" - -#: common/models.py:86 +#: common/models.py:89 msgid "Updated" msgstr "" -#: common/models.py:87 +#: common/models.py:90 msgid "Timestamp of last update" msgstr "" -#: common/models.py:120 +#: common/models.py:123 msgid "Site URL is locked by configuration" msgstr "" -#: common/models.py:150 +#: common/models.py:153 msgid "Unique project code" msgstr "" -#: common/models.py:157 +#: common/models.py:160 msgid "Project description" msgstr "" -#: common/models.py:166 +#: common/models.py:169 msgid "User or group responsible for this project" msgstr "" -#: common/models.py:783 -msgid "Settings key (must be unique - case insensitive)" +#: common/models.py:783 common/models.py:2236 common/models.py:2613 +msgid "Settings key" msgstr "" #: common/models.py:787 msgid "Settings value" msgstr "" -#: common/models.py:839 +#: common/models.py:842 msgid "Chosen value is not a valid option" msgstr "" -#: common/models.py:855 +#: common/models.py:858 msgid "Value must be a boolean value" msgstr "" -#: common/models.py:863 +#: common/models.py:866 msgid "Value must be an integer value" msgstr "" -#: common/models.py:900 +#: common/models.py:874 +msgid "Value must be a valid number" +msgstr "" + +#: common/models.py:899 +msgid "Value does not pass validation checks" +msgstr "" + +#: common/models.py:921 msgid "Key string must be unique" msgstr "" -#: common/models.py:1132 +#: common/models.py:1189 msgid "No group" msgstr "" -#: common/models.py:1231 +#: common/models.py:1288 msgid "Restart required" msgstr "" -#: common/models.py:1233 +#: common/models.py:1290 msgid "A setting has been changed which requires a server restart" msgstr "" -#: common/models.py:1240 +#: common/models.py:1297 msgid "Pending migrations" msgstr "" -#: common/models.py:1241 +#: common/models.py:1298 msgid "Number of pending database migrations" msgstr "" -#: common/models.py:1246 +#: common/models.py:1303 msgid "Server Instance Name" msgstr "" -#: common/models.py:1248 +#: common/models.py:1305 msgid "String descriptor for the server instance" msgstr "" -#: common/models.py:1252 +#: common/models.py:1309 msgid "Use instance name" msgstr "" -#: common/models.py:1253 +#: common/models.py:1310 msgid "Use the instance name in the title-bar" msgstr "" -#: common/models.py:1258 +#: common/models.py:1315 msgid "Restrict showing `about`" msgstr "" -#: common/models.py:1259 +#: common/models.py:1316 msgid "Show the `about` modal only to superusers" msgstr "" -#: common/models.py:1264 company/models.py:111 company/models.py:112 +#: common/models.py:1321 company/models.py:108 company/models.py:109 msgid "Company name" msgstr "" -#: common/models.py:1265 +#: common/models.py:1322 msgid "Internal company name" msgstr "" -#: common/models.py:1269 +#: common/models.py:1326 msgid "Base URL" msgstr "" -#: common/models.py:1270 +#: common/models.py:1327 msgid "Base URL for server instance" msgstr "" -#: common/models.py:1276 +#: common/models.py:1333 msgid "Default Currency" msgstr "" -#: common/models.py:1277 +#: common/models.py:1334 msgid "Select base currency for pricing calculations" msgstr "" -#: common/models.py:1283 +#: common/models.py:1340 msgid "Supported Currencies" msgstr "" -#: common/models.py:1284 +#: common/models.py:1341 msgid "List of supported currency codes" msgstr "" -#: common/models.py:1290 +#: common/models.py:1347 msgid "Currency Update Interval" msgstr "" -#: common/models.py:1292 +#: common/models.py:1349 msgid "How often to update exchange rates (set to zero to disable)" msgstr "" -#: common/models.py:1295 common/models.py:1351 common/models.py:1364 -#: common/models.py:1372 common/models.py:1381 common/models.py:1390 -#: common/models.py:1627 common/models.py:1649 common/models.py:1764 -#: common/models.py:2146 +#: common/models.py:1352 common/models.py:1408 common/models.py:1421 +#: common/models.py:1429 common/models.py:1438 common/models.py:1447 +#: common/models.py:1696 common/models.py:1718 common/models.py:1819 +#: common/models.py:2208 msgid "days" msgstr "" -#: common/models.py:1299 +#: common/models.py:1356 msgid "Currency Update Plugin" msgstr "" -#: common/models.py:1300 +#: common/models.py:1357 msgid "Currency update plugin to use" msgstr "" -#: common/models.py:1305 +#: common/models.py:1362 msgid "Download from URL" msgstr "" -#: common/models.py:1307 +#: common/models.py:1364 msgid "Allow download of remote images and files from external URL" msgstr "" -#: common/models.py:1313 +#: common/models.py:1370 msgid "Download Size Limit" msgstr "" -#: common/models.py:1314 +#: common/models.py:1371 msgid "Maximum allowable download size for remote image" msgstr "" -#: common/models.py:1320 +#: common/models.py:1377 msgid "User-agent used to download from URL" msgstr "" -#: common/models.py:1322 +#: common/models.py:1379 msgid "Allow to override the user-agent used to download images and files from external URL (leave blank for the default)" msgstr "" -#: common/models.py:1327 +#: common/models.py:1384 msgid "Strict URL Validation" msgstr "" -#: common/models.py:1328 +#: common/models.py:1385 msgid "Require schema specification when validating URLs" msgstr "" -#: common/models.py:1333 +#: common/models.py:1390 msgid "Require confirm" msgstr "" -#: common/models.py:1334 +#: common/models.py:1391 msgid "Require explicit user confirmation for certain action." msgstr "" -#: common/models.py:1339 +#: common/models.py:1396 msgid "Tree Depth" msgstr "" -#: common/models.py:1341 +#: common/models.py:1398 msgid "Default tree depth for treeview. Deeper levels can be lazy loaded as they are needed." msgstr "" -#: common/models.py:1347 +#: common/models.py:1404 msgid "Update Check Interval" msgstr "" -#: common/models.py:1348 +#: common/models.py:1405 msgid "How often to check for updates (set to zero to disable)" msgstr "" -#: common/models.py:1354 +#: common/models.py:1411 msgid "Automatic Backup" msgstr "" -#: common/models.py:1355 +#: common/models.py:1412 msgid "Enable automatic backup of database and media files" msgstr "" -#: common/models.py:1360 +#: common/models.py:1417 msgid "Auto Backup Interval" msgstr "" -#: common/models.py:1361 +#: common/models.py:1418 msgid "Specify number of days between automated backup events" msgstr "" -#: common/models.py:1367 +#: common/models.py:1424 msgid "Task Deletion Interval" msgstr "" -#: common/models.py:1369 +#: common/models.py:1426 msgid "Background task results will be deleted after specified number of days" msgstr "" -#: common/models.py:1376 +#: common/models.py:1433 msgid "Error Log Deletion Interval" msgstr "" -#: common/models.py:1378 +#: common/models.py:1435 msgid "Error logs will be deleted after specified number of days" msgstr "" -#: common/models.py:1385 +#: common/models.py:1442 msgid "Notification Deletion Interval" msgstr "" -#: common/models.py:1387 +#: common/models.py:1444 msgid "User notifications will be deleted after specified number of days" -msgstr "" +msgstr "Notificações de usuários será excluído após um número especificado de dias" -#: common/models.py:1394 templates/InvenTree/settings/sidebar.html:31 +#: common/models.py:1451 templates/InvenTree/settings/sidebar.html:31 msgid "Barcode Support" msgstr "" -#: common/models.py:1395 +#: common/models.py:1452 msgid "Enable barcode scanner support in the web interface" msgstr "" -#: common/models.py:1400 +#: common/models.py:1457 +msgid "Store Barcode Results" +msgstr "" + +#: common/models.py:1458 +msgid "Store barcode scan results in the database" +msgstr "" + +#: common/models.py:1463 +msgid "Barcode Scans Maximum Count" +msgstr "" + +#: common/models.py:1464 +msgid "Maximum number of barcode scan results to store" +msgstr "" + +#: common/models.py:1469 msgid "Barcode Input Delay" msgstr "" -#: common/models.py:1401 +#: common/models.py:1470 msgid "Barcode input processing delay time" msgstr "" -#: common/models.py:1407 +#: common/models.py:1476 msgid "Barcode Webcam Support" msgstr "" -#: common/models.py:1408 +#: common/models.py:1477 msgid "Allow barcode scanning via webcam in browser" msgstr "" -#: common/models.py:1413 +#: common/models.py:1482 msgid "Barcode Show Data" msgstr "" -#: common/models.py:1414 +#: common/models.py:1483 msgid "Display barcode data in browser as text" msgstr "" -#: common/models.py:1419 +#: common/models.py:1488 msgid "Barcode Generation Plugin" msgstr "" -#: common/models.py:1420 +#: common/models.py:1489 msgid "Plugin to use for internal barcode data generation" msgstr "" -#: common/models.py:1425 +#: common/models.py:1494 msgid "Part Revisions" msgstr "" -#: common/models.py:1426 +#: common/models.py:1495 msgid "Enable revision field for Part" msgstr "" -#: common/models.py:1431 +#: common/models.py:1500 msgid "Assembly Revision Only" msgstr "" -#: common/models.py:1432 +#: common/models.py:1501 msgid "Only allow revisions for assembly parts" msgstr "" -#: common/models.py:1437 +#: common/models.py:1506 msgid "Allow Deletion from Assembly" msgstr "" -#: common/models.py:1438 +#: common/models.py:1507 msgid "Allow deletion of parts which are used in an assembly" msgstr "" -#: common/models.py:1443 +#: common/models.py:1512 msgid "IPN Regex" msgstr "" -#: common/models.py:1444 +#: common/models.py:1513 msgid "Regular expression pattern for matching Part IPN" msgstr "" -#: common/models.py:1447 +#: common/models.py:1516 msgid "Allow Duplicate IPN" msgstr "" -#: common/models.py:1448 +#: common/models.py:1517 msgid "Allow multiple parts to share the same IPN" msgstr "" -#: common/models.py:1453 +#: common/models.py:1522 msgid "Allow Editing IPN" msgstr "" -#: common/models.py:1454 +#: common/models.py:1523 msgid "Allow changing the IPN value while editing a part" msgstr "" -#: common/models.py:1459 +#: common/models.py:1528 msgid "Copy Part BOM Data" msgstr "" -#: common/models.py:1460 +#: common/models.py:1529 msgid "Copy BOM data by default when duplicating a part" msgstr "" -#: common/models.py:1465 +#: common/models.py:1534 msgid "Copy Part Parameter Data" msgstr "" -#: common/models.py:1466 +#: common/models.py:1535 msgid "Copy parameter data by default when duplicating a part" msgstr "" -#: common/models.py:1471 +#: common/models.py:1540 msgid "Copy Part Test Data" msgstr "" -#: common/models.py:1472 +#: common/models.py:1541 msgid "Copy test data by default when duplicating a part" msgstr "" -#: common/models.py:1477 +#: common/models.py:1546 msgid "Copy Category Parameter Templates" msgstr "" -#: common/models.py:1478 +#: common/models.py:1547 msgid "Copy category parameter templates when creating a part" msgstr "" -#: common/models.py:1483 part/admin.py:108 part/models.py:3945 -#: report/models.py:293 report/models.py:360 report/serializers.py:90 -#: report/serializers.py:131 stock/serializers.py:232 +#: common/models.py:1552 part/admin.py:108 part/models.py:4003 +#: report/models.py:301 report/models.py:368 report/serializers.py:91 +#: report/serializers.py:132 stock/serializers.py:233 #: templates/js/translated/table_filters.js:138 #: templates/js/translated/table_filters.js:775 msgid "Template" -msgstr "" +msgstr "Modelo" -#: common/models.py:1484 +#: common/models.py:1553 msgid "Parts are templates by default" msgstr "" -#: common/models.py:1490 +#: common/models.py:1559 msgid "Parts can be assembled from other components by default" msgstr "" -#: common/models.py:1495 part/admin.py:95 part/models.py:1160 -#: part/serializers.py:1596 templates/js/translated/table_filters.js:737 +#: common/models.py:1564 part/admin.py:95 part/models.py:1221 +#: part/serializers.py:1654 templates/js/translated/table_filters.js:737 msgid "Component" msgstr "" -#: common/models.py:1496 +#: common/models.py:1565 msgid "Parts can be used as sub-components by default" msgstr "" -#: common/models.py:1501 part/admin.py:100 part/models.py:1178 +#: common/models.py:1570 part/admin.py:100 part/models.py:1239 msgid "Purchaseable" msgstr "" -#: common/models.py:1502 +#: common/models.py:1571 msgid "Parts are purchaseable by default" msgstr "" -#: common/models.py:1507 part/admin.py:104 part/models.py:1184 +#: common/models.py:1576 part/admin.py:104 part/models.py:1245 #: templates/js/translated/table_filters.js:763 msgid "Salable" msgstr "" -#: common/models.py:1508 +#: common/models.py:1577 msgid "Parts are salable by default" msgstr "" -#: common/models.py:1514 +#: common/models.py:1583 msgid "Parts are trackable by default" msgstr "" -#: common/models.py:1519 part/admin.py:117 part/models.py:1200 -#: part/templates/part/part_base.html:154 +#: common/models.py:1588 part/admin.py:117 part/models.py:1261 +#: part/templates/part/part_base.html:155 #: templates/js/translated/table_filters.js:142 #: templates/js/translated/table_filters.js:787 msgid "Virtual" msgstr "" -#: common/models.py:1520 +#: common/models.py:1589 msgid "Parts are virtual by default" msgstr "" -#: common/models.py:1525 +#: common/models.py:1594 msgid "Show Import in Views" msgstr "" -#: common/models.py:1526 +#: common/models.py:1595 msgid "Display the import wizard in some part views" msgstr "" -#: common/models.py:1531 +#: common/models.py:1600 msgid "Show related parts" msgstr "" -#: common/models.py:1532 +#: common/models.py:1601 msgid "Display related parts for a part" msgstr "" -#: common/models.py:1537 +#: common/models.py:1606 msgid "Initial Stock Data" msgstr "" -#: common/models.py:1538 +#: common/models.py:1607 msgid "Allow creation of initial stock when adding a new part" msgstr "" -#: common/models.py:1543 templates/js/translated/part.js:108 +#: common/models.py:1612 templates/js/translated/part.js:108 msgid "Initial Supplier Data" msgstr "" -#: common/models.py:1545 +#: common/models.py:1614 msgid "Allow creation of initial supplier data when adding a new part" msgstr "" -#: common/models.py:1551 +#: common/models.py:1620 msgid "Part Name Display Format" msgstr "" -#: common/models.py:1552 +#: common/models.py:1621 msgid "Format to display the part name" msgstr "" -#: common/models.py:1558 +#: common/models.py:1627 msgid "Part Category Default Icon" msgstr "" -#: common/models.py:1559 +#: common/models.py:1628 msgid "Part category default icon (empty means no icon)" msgstr "" -#: common/models.py:1564 +#: common/models.py:1633 msgid "Enforce Parameter Units" msgstr "" -#: common/models.py:1566 +#: common/models.py:1635 msgid "If units are provided, parameter values must match the specified units" msgstr "" -#: common/models.py:1572 +#: common/models.py:1641 msgid "Minimum Pricing Decimal Places" msgstr "" -#: common/models.py:1574 +#: common/models.py:1643 msgid "Minimum number of decimal places to display when rendering pricing data" msgstr "" -#: common/models.py:1585 +#: common/models.py:1654 msgid "Maximum Pricing Decimal Places" msgstr "" -#: common/models.py:1587 +#: common/models.py:1656 msgid "Maximum number of decimal places to display when rendering pricing data" msgstr "" -#: common/models.py:1598 +#: common/models.py:1667 msgid "Use Supplier Pricing" msgstr "" -#: common/models.py:1600 +#: common/models.py:1669 msgid "Include supplier price breaks in overall pricing calculations" msgstr "" -#: common/models.py:1606 +#: common/models.py:1675 msgid "Purchase History Override" msgstr "" -#: common/models.py:1608 +#: common/models.py:1677 msgid "Historical purchase order pricing overrides supplier price breaks" msgstr "" -#: common/models.py:1614 +#: common/models.py:1683 msgid "Use Stock Item Pricing" msgstr "" -#: common/models.py:1616 +#: common/models.py:1685 msgid "Use pricing from manually entered stock data for pricing calculations" msgstr "" -#: common/models.py:1622 +#: common/models.py:1691 msgid "Stock Item Pricing Age" msgstr "" -#: common/models.py:1624 +#: common/models.py:1693 msgid "Exclude stock items older than this number of days from pricing calculations" msgstr "" -#: common/models.py:1631 +#: common/models.py:1700 msgid "Use Variant Pricing" msgstr "" -#: common/models.py:1632 +#: common/models.py:1701 msgid "Include variant pricing in overall pricing calculations" msgstr "" -#: common/models.py:1637 +#: common/models.py:1706 msgid "Active Variants Only" msgstr "" -#: common/models.py:1639 +#: common/models.py:1708 msgid "Only use active variant parts for calculating variant pricing" msgstr "" -#: common/models.py:1645 +#: common/models.py:1714 msgid "Pricing Rebuild Interval" msgstr "" -#: common/models.py:1647 +#: common/models.py:1716 msgid "Number of days before part pricing is automatically updated" msgstr "" -#: common/models.py:1654 +#: common/models.py:1723 msgid "Internal Prices" msgstr "" -#: common/models.py:1655 +#: common/models.py:1724 msgid "Enable internal prices for parts" msgstr "" -#: common/models.py:1660 +#: common/models.py:1729 msgid "Internal Price Override" msgstr "" -#: common/models.py:1662 +#: common/models.py:1731 msgid "If available, internal prices override price range calculations" msgstr "" -#: common/models.py:1668 +#: common/models.py:1737 msgid "Enable label printing" msgstr "" -#: common/models.py:1669 +#: common/models.py:1738 msgid "Enable label printing from the web interface" msgstr "" -#: common/models.py:1674 +#: common/models.py:1743 msgid "Label Image DPI" msgstr "" -#: common/models.py:1676 +#: common/models.py:1745 msgid "DPI resolution when generating image files to supply to label printing plugins" msgstr "" -#: common/models.py:1682 +#: common/models.py:1751 msgid "Enable Reports" msgstr "" -#: common/models.py:1683 +#: common/models.py:1752 msgid "Enable generation of reports" msgstr "" -#: common/models.py:1688 templates/stats.html:25 +#: common/models.py:1757 templates/stats.html:25 msgid "Debug Mode" msgstr "" -#: common/models.py:1689 +#: common/models.py:1758 msgid "Generate reports in debug mode (HTML output)" msgstr "" -#: common/models.py:1694 +#: common/models.py:1763 msgid "Log Report Errors" msgstr "" -#: common/models.py:1695 +#: common/models.py:1764 msgid "Log errors which occur when generating reports" msgstr "" -#: common/models.py:1700 plugin/builtin/labels/label_sheet.py:28 -#: report/models.py:301 +#: common/models.py:1769 plugin/builtin/labels/label_sheet.py:28 +#: report/models.py:309 msgid "Page Size" msgstr "" -#: common/models.py:1701 +#: common/models.py:1770 msgid "Default page size for PDF reports" msgstr "" -#: common/models.py:1706 -msgid "Enable Test Reports" -msgstr "" - -#: common/models.py:1707 -msgid "Enable generation of test reports" -msgstr "" - -#: common/models.py:1712 -msgid "Attach Test Reports" -msgstr "" - -#: common/models.py:1714 -msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item" -msgstr "" - -#: common/models.py:1720 +#: common/models.py:1775 msgid "Globally Unique Serials" msgstr "" -#: common/models.py:1721 +#: common/models.py:1776 msgid "Serial numbers for stock items must be globally unique" msgstr "" -#: common/models.py:1726 +#: common/models.py:1781 msgid "Autofill Serial Numbers" msgstr "" -#: common/models.py:1727 +#: common/models.py:1782 msgid "Autofill serial numbers in forms" msgstr "" -#: common/models.py:1732 +#: common/models.py:1787 msgid "Delete Depleted Stock" msgstr "" -#: common/models.py:1734 +#: common/models.py:1789 msgid "Determines default behavior when a stock item is depleted" msgstr "" -#: common/models.py:1740 +#: common/models.py:1795 msgid "Batch Code Template" msgstr "" -#: common/models.py:1742 +#: common/models.py:1797 msgid "Template for generating default batch codes for stock items" msgstr "" -#: common/models.py:1747 +#: common/models.py:1802 msgid "Stock Expiry" msgstr "" -#: common/models.py:1748 +#: common/models.py:1803 msgid "Enable stock expiry functionality" msgstr "" -#: common/models.py:1753 +#: common/models.py:1808 msgid "Sell Expired Stock" msgstr "" -#: common/models.py:1754 +#: common/models.py:1809 msgid "Allow sale of expired stock" msgstr "" -#: common/models.py:1759 +#: common/models.py:1814 msgid "Stock Stale Time" msgstr "" -#: common/models.py:1761 +#: common/models.py:1816 msgid "Number of days stock items are considered stale before expiring" msgstr "" -#: common/models.py:1768 +#: common/models.py:1823 msgid "Build Expired Stock" msgstr "" -#: common/models.py:1769 +#: common/models.py:1824 msgid "Allow building with expired stock" msgstr "" -#: common/models.py:1774 +#: common/models.py:1829 msgid "Stock Ownership Control" msgstr "" -#: common/models.py:1775 +#: common/models.py:1830 msgid "Enable ownership control over stock locations and items" msgstr "" -#: common/models.py:1780 +#: common/models.py:1835 msgid "Stock Location Default Icon" msgstr "" -#: common/models.py:1781 +#: common/models.py:1836 msgid "Stock location default icon (empty means no icon)" msgstr "" -#: common/models.py:1786 +#: common/models.py:1841 msgid "Show Installed Stock Items" msgstr "" -#: common/models.py:1787 +#: common/models.py:1842 msgid "Display installed stock items in stock tables" msgstr "" -#: common/models.py:1792 +#: common/models.py:1847 msgid "Check BOM when installing items" msgstr "" -#: common/models.py:1794 +#: common/models.py:1849 msgid "Installed stock items must exist in the BOM for the parent part" msgstr "" -#: common/models.py:1800 +#: common/models.py:1855 msgid "Allow Out of Stock Transfer" msgstr "" -#: common/models.py:1802 +#: common/models.py:1857 msgid "Allow stock items which are not in stock to be transferred between stock locations" msgstr "" -#: common/models.py:1808 +#: common/models.py:1863 msgid "Build Order Reference Pattern" msgstr "" -#: common/models.py:1810 +#: common/models.py:1865 msgid "Required pattern for generating Build Order reference field" msgstr "" -#: common/models.py:1816 common/models.py:1872 common/models.py:1894 -#: common/models.py:1930 +#: common/models.py:1871 common/models.py:1927 common/models.py:1949 +#: common/models.py:1985 msgid "Require Responsible Owner" msgstr "" -#: common/models.py:1817 common/models.py:1873 common/models.py:1895 -#: common/models.py:1931 +#: common/models.py:1872 common/models.py:1928 common/models.py:1950 +#: common/models.py:1986 msgid "A responsible owner must be assigned to each order" msgstr "" -#: common/models.py:1822 +#: common/models.py:1877 msgid "Require Active Part" msgstr "" -#: common/models.py:1823 +#: common/models.py:1878 msgid "Prevent build order creation for inactive parts" msgstr "" -#: common/models.py:1828 +#: common/models.py:1883 msgid "Require Locked Part" msgstr "" -#: common/models.py:1829 +#: common/models.py:1884 msgid "Prevent build order creation for unlocked parts" msgstr "" -#: common/models.py:1834 +#: common/models.py:1889 msgid "Require Valid BOM" msgstr "" -#: common/models.py:1836 +#: common/models.py:1891 msgid "Prevent build order creation unless BOM has been validated" msgstr "" -#: common/models.py:1842 +#: common/models.py:1897 msgid "Require Closed Child Orders" msgstr "" -#: common/models.py:1844 +#: common/models.py:1899 msgid "Prevent build order completion until all child orders are closed" msgstr "" -#: common/models.py:1850 +#: common/models.py:1905 msgid "Block Until Tests Pass" msgstr "" -#: common/models.py:1852 +#: common/models.py:1907 msgid "Prevent build outputs from being completed until all required tests pass" msgstr "" -#: common/models.py:1858 +#: common/models.py:1913 msgid "Enable Return Orders" msgstr "" -#: common/models.py:1859 +#: common/models.py:1914 msgid "Enable return order functionality in the user interface" msgstr "" -#: common/models.py:1864 +#: common/models.py:1919 msgid "Return Order Reference Pattern" msgstr "" -#: common/models.py:1866 +#: common/models.py:1921 msgid "Required pattern for generating Return Order reference field" msgstr "" -#: common/models.py:1878 +#: common/models.py:1933 msgid "Edit Completed Return Orders" msgstr "" -#: common/models.py:1880 +#: common/models.py:1935 msgid "Allow editing of return orders after they have been completed" msgstr "" -#: common/models.py:1886 +#: common/models.py:1941 msgid "Sales Order Reference Pattern" msgstr "" -#: common/models.py:1888 +#: common/models.py:1943 msgid "Required pattern for generating Sales Order reference field" msgstr "" -#: common/models.py:1900 +#: common/models.py:1955 msgid "Sales Order Default Shipment" msgstr "" -#: common/models.py:1901 +#: common/models.py:1956 msgid "Enable creation of default shipment with sales orders" msgstr "" -#: common/models.py:1906 +#: common/models.py:1961 msgid "Edit Completed Sales Orders" msgstr "" -#: common/models.py:1908 +#: common/models.py:1963 msgid "Allow editing of sales orders after they have been shipped or completed" msgstr "" -#: common/models.py:1914 +#: common/models.py:1969 msgid "Mark Shipped Orders as Complete" msgstr "" -#: common/models.py:1916 +#: common/models.py:1971 msgid "Sales orders marked as shipped will automatically be completed, bypassing the \"shipped\" status" msgstr "" -#: common/models.py:1922 +#: common/models.py:1977 msgid "Purchase Order Reference Pattern" msgstr "" -#: common/models.py:1924 +#: common/models.py:1979 msgid "Required pattern for generating Purchase Order reference field" msgstr "" -#: common/models.py:1936 +#: common/models.py:1991 msgid "Edit Completed Purchase Orders" msgstr "" -#: common/models.py:1938 +#: common/models.py:1993 msgid "Allow editing of purchase orders after they have been shipped or completed" msgstr "" -#: common/models.py:1944 +#: common/models.py:1999 msgid "Auto Complete Purchase Orders" msgstr "" -#: common/models.py:1946 +#: common/models.py:2001 msgid "Automatically mark purchase orders as complete when all line items are received" msgstr "" -#: common/models.py:1953 +#: common/models.py:2008 msgid "Enable password forgot" msgstr "" -#: common/models.py:1954 +#: common/models.py:2009 msgid "Enable password forgot function on the login pages" msgstr "" -#: common/models.py:1959 +#: common/models.py:2014 msgid "Enable registration" msgstr "" -#: common/models.py:1960 +#: common/models.py:2015 msgid "Enable self-registration for users on the login pages" msgstr "" -#: common/models.py:1965 +#: common/models.py:2020 msgid "Enable SSO" msgstr "" -#: common/models.py:1966 +#: common/models.py:2021 msgid "Enable SSO on the login pages" msgstr "" -#: common/models.py:1971 +#: common/models.py:2026 msgid "Enable SSO registration" msgstr "" -#: common/models.py:1973 +#: common/models.py:2028 msgid "Enable self-registration via SSO for users on the login pages" msgstr "" -#: common/models.py:1979 +#: common/models.py:2034 msgid "Enable SSO group sync" msgstr "" -#: common/models.py:1981 +#: common/models.py:2036 msgid "Enable synchronizing InvenTree groups with groups provided by the IdP" msgstr "" -#: common/models.py:1987 +#: common/models.py:2042 msgid "SSO group key" msgstr "" -#: common/models.py:1989 +#: common/models.py:2044 msgid "The name of the groups claim attribute provided by the IdP" msgstr "" -#: common/models.py:1995 +#: common/models.py:2050 msgid "SSO group map" msgstr "" -#: common/models.py:1997 +#: common/models.py:2052 msgid "A mapping from SSO groups to local InvenTree groups. If the local group does not exist, it will be created." msgstr "" -#: common/models.py:2003 +#: common/models.py:2058 msgid "Remove groups outside of SSO" msgstr "" -#: common/models.py:2005 +#: common/models.py:2060 msgid "Whether groups assigned to the user should be removed if they are not backend by the IdP. Disabling this setting might cause security issues" msgstr "" -#: common/models.py:2011 +#: common/models.py:2066 msgid "Email required" msgstr "" -#: common/models.py:2012 +#: common/models.py:2067 msgid "Require user to supply mail on signup" msgstr "" -#: common/models.py:2017 +#: common/models.py:2072 msgid "Auto-fill SSO users" msgstr "" -#: common/models.py:2019 +#: common/models.py:2074 msgid "Automatically fill out user-details from SSO account-data" msgstr "" -#: common/models.py:2025 +#: common/models.py:2080 msgid "Mail twice" msgstr "" -#: common/models.py:2026 +#: common/models.py:2081 msgid "On signup ask users twice for their mail" msgstr "" -#: common/models.py:2031 +#: common/models.py:2086 msgid "Password twice" msgstr "" -#: common/models.py:2032 +#: common/models.py:2087 msgid "On signup ask users twice for their password" msgstr "" -#: common/models.py:2037 +#: common/models.py:2092 msgid "Allowed domains" msgstr "" -#: common/models.py:2039 +#: common/models.py:2094 msgid "Restrict signup to certain domains (comma-separated, starting with @)" msgstr "" -#: common/models.py:2045 +#: common/models.py:2100 msgid "Group on signup" msgstr "" -#: common/models.py:2047 +#: common/models.py:2102 msgid "Group to which new users are assigned on registration. If SSO group sync is enabled, this group is only set if no group can be assigned from the IdP." msgstr "" -#: common/models.py:2053 +#: common/models.py:2108 msgid "Enforce MFA" msgstr "" -#: common/models.py:2054 +#: common/models.py:2109 msgid "Users must use multifactor security." msgstr "" -#: common/models.py:2059 +#: common/models.py:2114 msgid "Check plugins on startup" msgstr "" -#: common/models.py:2061 +#: common/models.py:2116 msgid "Check that all plugins are installed on startup - enable in container environments" msgstr "" -#: common/models.py:2069 +#: common/models.py:2124 msgid "Check for plugin updates" msgstr "" -#: common/models.py:2070 +#: common/models.py:2125 msgid "Enable periodic checks for updates to installed plugins" msgstr "" -#: common/models.py:2076 +#: common/models.py:2131 msgid "Enable URL integration" msgstr "" -#: common/models.py:2077 +#: common/models.py:2132 msgid "Enable plugins to add URL routes" msgstr "" -#: common/models.py:2083 +#: common/models.py:2138 msgid "Enable navigation integration" msgstr "" -#: common/models.py:2084 +#: common/models.py:2139 msgid "Enable plugins to integrate into navigation" msgstr "" -#: common/models.py:2090 +#: common/models.py:2145 msgid "Enable app integration" msgstr "" -#: common/models.py:2091 +#: common/models.py:2146 msgid "Enable plugins to add apps" msgstr "" -#: common/models.py:2097 +#: common/models.py:2152 msgid "Enable schedule integration" msgstr "" -#: common/models.py:2098 +#: common/models.py:2153 msgid "Enable plugins to run scheduled tasks" msgstr "" -#: common/models.py:2104 +#: common/models.py:2159 msgid "Enable event integration" msgstr "" -#: common/models.py:2105 +#: common/models.py:2160 msgid "Enable plugins to respond to internal events" msgstr "" -#: common/models.py:2111 +#: common/models.py:2166 +msgid "Enable interface integration" +msgstr "" + +#: common/models.py:2167 +msgid "Enable plugins to integrate into the user interface" +msgstr "" + +#: common/models.py:2173 msgid "Enable project codes" msgstr "" -#: common/models.py:2112 +#: common/models.py:2174 msgid "Enable project codes for tracking projects" msgstr "" -#: common/models.py:2117 +#: common/models.py:2179 msgid "Stocktake Functionality" msgstr "" -#: common/models.py:2119 +#: common/models.py:2181 msgid "Enable stocktake functionality for recording stock levels and calculating stock value" msgstr "" -#: common/models.py:2125 +#: common/models.py:2187 msgid "Exclude External Locations" msgstr "" -#: common/models.py:2127 +#: common/models.py:2189 msgid "Exclude stock items in external locations from stocktake calculations" msgstr "" -#: common/models.py:2133 +#: common/models.py:2195 msgid "Automatic Stocktake Period" msgstr "" -#: common/models.py:2135 +#: common/models.py:2197 msgid "Number of days between automatic stocktake recording (set to zero to disable)" msgstr "" -#: common/models.py:2141 +#: common/models.py:2203 msgid "Report Deletion Interval" msgstr "" -#: common/models.py:2143 +#: common/models.py:2205 msgid "Stocktake reports will be deleted after specified number of days" msgstr "" -#: common/models.py:2150 +#: common/models.py:2212 msgid "Display Users full names" msgstr "" -#: common/models.py:2151 +#: common/models.py:2213 msgid "Display Users full names instead of usernames" msgstr "" -#: common/models.py:2156 +#: common/models.py:2218 msgid "Enable Test Station Data" msgstr "" -#: common/models.py:2157 +#: common/models.py:2219 msgid "Enable test station data collection for test results" msgstr "" -#: common/models.py:2169 common/models.py:2549 -msgid "Settings key (must be unique - case insensitive" -msgstr "" - -#: common/models.py:2212 -msgid "Hide inactive parts" -msgstr "" - -#: common/models.py:2214 -msgid "Hide inactive parts in results displayed on the homepage" -msgstr "" - -#: common/models.py:2220 -msgid "Show subscribed parts" -msgstr "" - -#: common/models.py:2221 -msgid "Show subscribed parts on the homepage" +#: common/models.py:2224 +msgid "Create Template on Upload" msgstr "" #: common/models.py:2226 -msgid "Show subscribed categories" +msgid "Create a new test template when uploading test data which does not match an existing template" msgstr "" -#: common/models.py:2227 -msgid "Show subscribed part categories on the homepage" -msgstr "" - -#: common/models.py:2232 -msgid "Show latest parts" -msgstr "" - -#: common/models.py:2233 -msgid "Show latest parts on the homepage" -msgstr "" - -#: common/models.py:2238 -msgid "Show invalid BOMs" -msgstr "" - -#: common/models.py:2239 -msgid "Show BOMs that await validation on the homepage" -msgstr "" - -#: common/models.py:2244 -msgid "Show recent stock changes" -msgstr "" - -#: common/models.py:2245 -msgid "Show recently changed stock items on the homepage" -msgstr "" - -#: common/models.py:2250 -msgid "Show low stock" -msgstr "" - -#: common/models.py:2251 -msgid "Show low stock items on the homepage" -msgstr "" - -#: common/models.py:2256 -msgid "Show depleted stock" -msgstr "" - -#: common/models.py:2257 -msgid "Show depleted stock items on the homepage" -msgstr "" - -#: common/models.py:2262 -msgid "Show needed stock" -msgstr "" - -#: common/models.py:2263 -msgid "Show stock items needed for builds on the homepage" -msgstr "" - -#: common/models.py:2268 -msgid "Show expired stock" -msgstr "" - -#: common/models.py:2269 -msgid "Show expired stock items on the homepage" -msgstr "" - -#: common/models.py:2274 -msgid "Show stale stock" -msgstr "" - -#: common/models.py:2275 -msgid "Show stale stock items on the homepage" -msgstr "" - -#: common/models.py:2280 -msgid "Show pending builds" +#: common/models.py:2279 +msgid "Hide inactive parts" msgstr "" #: common/models.py:2281 -msgid "Show pending builds on the homepage" -msgstr "" - -#: common/models.py:2286 -msgid "Show overdue builds" +msgid "Hide inactive parts in results displayed on the homepage" msgstr "" #: common/models.py:2287 -msgid "Show overdue builds on the homepage" +msgid "Show subscribed parts" msgstr "" -#: common/models.py:2292 -msgid "Show outstanding POs" +#: common/models.py:2288 +msgid "Show subscribed parts on the homepage" msgstr "" #: common/models.py:2293 -msgid "Show outstanding POs on the homepage" +msgid "Show subscribed categories" msgstr "" -#: common/models.py:2298 -msgid "Show overdue POs" +#: common/models.py:2294 +msgid "Show subscribed part categories on the homepage" msgstr "" #: common/models.py:2299 -msgid "Show overdue POs on the homepage" +msgid "Show latest parts" msgstr "" -#: common/models.py:2304 -msgid "Show outstanding SOs" +#: common/models.py:2300 +msgid "Show latest parts on the homepage" msgstr "" #: common/models.py:2305 -msgid "Show outstanding SOs on the homepage" +msgid "Show invalid BOMs" msgstr "" -#: common/models.py:2310 -msgid "Show overdue SOs" +#: common/models.py:2306 +msgid "Show BOMs that await validation on the homepage" msgstr "" #: common/models.py:2311 -msgid "Show overdue SOs on the homepage" +msgid "Show recent stock changes" msgstr "" -#: common/models.py:2316 -msgid "Show pending SO shipments" +#: common/models.py:2312 +msgid "Show recently changed stock items on the homepage" msgstr "" #: common/models.py:2317 -msgid "Show pending SO shipments on the homepage" +msgid "Show low stock" msgstr "" -#: common/models.py:2322 -msgid "Show News" +#: common/models.py:2318 +msgid "Show low stock items on the homepage" msgstr "" #: common/models.py:2323 -msgid "Show news on the homepage" +msgid "Show depleted stock" msgstr "" -#: common/models.py:2328 -msgid "Inline label display" +#: common/models.py:2324 +msgid "Show depleted stock items on the homepage" +msgstr "" + +#: common/models.py:2329 +msgid "Show needed stock" msgstr "" #: common/models.py:2330 -msgid "Display PDF labels in the browser, instead of downloading as a file" +msgid "Show stock items needed for builds on the homepage" +msgstr "" + +#: common/models.py:2335 +msgid "Show expired stock" msgstr "" #: common/models.py:2336 -msgid "Default label printer" +msgid "Show expired stock items on the homepage" msgstr "" -#: common/models.py:2338 -msgid "Configure which label printer should be selected by default" +#: common/models.py:2341 +msgid "Show stale stock" msgstr "" -#: common/models.py:2344 -msgid "Inline report display" +#: common/models.py:2342 +msgid "Show stale stock items on the homepage" msgstr "" -#: common/models.py:2346 -msgid "Display PDF reports in the browser, instead of downloading as a file" +#: common/models.py:2347 +msgid "Show pending builds" msgstr "" -#: common/models.py:2352 -msgid "Search Parts" +#: common/models.py:2348 +msgid "Show pending builds on the homepage" msgstr "" #: common/models.py:2353 -msgid "Display parts in search preview window" +msgid "Show overdue builds" msgstr "" -#: common/models.py:2358 -msgid "Search Supplier Parts" +#: common/models.py:2354 +msgid "Show overdue builds on the homepage" msgstr "" #: common/models.py:2359 -msgid "Display supplier parts in search preview window" +msgid "Show outstanding POs" msgstr "" -#: common/models.py:2364 -msgid "Search Manufacturer Parts" +#: common/models.py:2360 +msgid "Show outstanding POs on the homepage" msgstr "" #: common/models.py:2365 -msgid "Display manufacturer parts in search preview window" +msgid "Show overdue POs" msgstr "" -#: common/models.py:2370 -msgid "Hide Inactive Parts" +#: common/models.py:2366 +msgid "Show overdue POs on the homepage" msgstr "" #: common/models.py:2371 -msgid "Excluded inactive parts from search preview window" +msgid "Show outstanding SOs" msgstr "" -#: common/models.py:2376 -msgid "Search Categories" +#: common/models.py:2372 +msgid "Show outstanding SOs on the homepage" msgstr "" #: common/models.py:2377 -msgid "Display part categories in search preview window" +msgid "Show overdue SOs" msgstr "" -#: common/models.py:2382 -msgid "Search Stock" +#: common/models.py:2378 +msgid "Show overdue SOs on the homepage" msgstr "" #: common/models.py:2383 -msgid "Display stock items in search preview window" +msgid "Show pending SO shipments" msgstr "" -#: common/models.py:2388 -msgid "Hide Unavailable Stock Items" +#: common/models.py:2384 +msgid "Show pending SO shipments on the homepage" +msgstr "" + +#: common/models.py:2389 +msgid "Show News" msgstr "" #: common/models.py:2390 -msgid "Exclude stock items which are not available from the search preview window" +msgid "Show news on the homepage" msgstr "" -#: common/models.py:2396 -msgid "Search Locations" +#: common/models.py:2395 +msgid "Inline label display" msgstr "" #: common/models.py:2397 -msgid "Display stock locations in search preview window" -msgstr "" - -#: common/models.py:2402 -msgid "Search Companies" +msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "" #: common/models.py:2403 -msgid "Display companies in search preview window" +msgid "Default label printer" msgstr "" -#: common/models.py:2408 -msgid "Search Build Orders" +#: common/models.py:2405 +msgid "Configure which label printer should be selected by default" msgstr "" -#: common/models.py:2409 -msgid "Display build orders in search preview window" +#: common/models.py:2411 +msgid "Inline report display" msgstr "" -#: common/models.py:2414 -msgid "Search Purchase Orders" +#: common/models.py:2413 +msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:2415 -msgid "Display purchase orders in search preview window" +#: common/models.py:2419 +msgid "Search Parts" msgstr "" #: common/models.py:2420 -msgid "Exclude Inactive Purchase Orders" +msgid "Display parts in search preview window" msgstr "" -#: common/models.py:2422 -msgid "Exclude inactive purchase orders from search preview window" +#: common/models.py:2425 +msgid "Search Supplier Parts" msgstr "" -#: common/models.py:2428 -msgid "Search Sales Orders" +#: common/models.py:2426 +msgid "Display supplier parts in search preview window" msgstr "" -#: common/models.py:2429 -msgid "Display sales orders in search preview window" +#: common/models.py:2431 +msgid "Search Manufacturer Parts" msgstr "" -#: common/models.py:2434 -msgid "Exclude Inactive Sales Orders" +#: common/models.py:2432 +msgid "Display manufacturer parts in search preview window" msgstr "" -#: common/models.py:2436 -msgid "Exclude inactive sales orders from search preview window" +#: common/models.py:2437 +msgid "Hide Inactive Parts" msgstr "" -#: common/models.py:2442 -msgid "Search Return Orders" +#: common/models.py:2438 +msgid "Excluded inactive parts from search preview window" msgstr "" #: common/models.py:2443 -msgid "Display return orders in search preview window" +msgid "Search Categories" msgstr "" -#: common/models.py:2448 -msgid "Exclude Inactive Return Orders" +#: common/models.py:2444 +msgid "Display part categories in search preview window" +msgstr "" + +#: common/models.py:2449 +msgid "Search Stock" msgstr "" #: common/models.py:2450 -msgid "Exclude inactive return orders from search preview window" +msgid "Display stock items in search preview window" msgstr "" -#: common/models.py:2456 -msgid "Search Preview Results" +#: common/models.py:2455 +msgid "Hide Unavailable Stock Items" msgstr "" -#: common/models.py:2458 -msgid "Number of results to show in each section of the search preview window" +#: common/models.py:2457 +msgid "Exclude stock items which are not available from the search preview window" +msgstr "" + +#: common/models.py:2463 +msgid "Search Locations" msgstr "" #: common/models.py:2464 -msgid "Regex Search" +msgid "Display stock locations in search preview window" msgstr "" -#: common/models.py:2465 -msgid "Enable regular expressions in search queries" +#: common/models.py:2469 +msgid "Search Companies" msgstr "" #: common/models.py:2470 -msgid "Whole Word Search" +msgid "Display companies in search preview window" msgstr "" -#: common/models.py:2471 -msgid "Search queries return results for whole word matches" +#: common/models.py:2475 +msgid "Search Build Orders" msgstr "" #: common/models.py:2476 -msgid "Show Quantity in Forms" +msgid "Display build orders in search preview window" msgstr "" -#: common/models.py:2477 -msgid "Display available part quantity in some forms" +#: common/models.py:2481 +msgid "Search Purchase Orders" msgstr "" #: common/models.py:2482 -msgid "Escape Key Closes Forms" +msgid "Display purchase orders in search preview window" msgstr "" -#: common/models.py:2483 -msgid "Use the escape key to close modal forms" -msgstr "" - -#: common/models.py:2488 -msgid "Fixed Navbar" +#: common/models.py:2487 +msgid "Exclude Inactive Purchase Orders" msgstr "" #: common/models.py:2489 -msgid "The navbar position is fixed to the top of the screen" -msgstr "" - -#: common/models.py:2494 -msgid "Date Format" +msgid "Exclude inactive purchase orders from search preview window" msgstr "" #: common/models.py:2495 -msgid "Preferred format for displaying dates" +msgid "Search Sales Orders" msgstr "" -#: common/models.py:2508 part/templates/part/detail.html:41 -msgid "Part Scheduling" +#: common/models.py:2496 +msgid "Display sales orders in search preview window" +msgstr "" + +#: common/models.py:2501 +msgid "Exclude Inactive Sales Orders" +msgstr "" + +#: common/models.py:2503 +msgid "Exclude inactive sales orders from search preview window" msgstr "" #: common/models.py:2509 -msgid "Display part scheduling information" +msgid "Search Return Orders" msgstr "" -#: common/models.py:2514 part/templates/part/detail.html:62 -msgid "Part Stocktake" +#: common/models.py:2510 +msgid "Display return orders in search preview window" msgstr "" -#: common/models.py:2516 -msgid "Display part stocktake information (if stocktake functionality is enabled)" +#: common/models.py:2515 +msgid "Exclude Inactive Return Orders" msgstr "" -#: common/models.py:2522 -msgid "Table String Length" +#: common/models.py:2517 +msgid "Exclude inactive return orders from search preview window" msgstr "" -#: common/models.py:2524 -msgid "Maximum length limit for strings displayed in table views" +#: common/models.py:2523 +msgid "Search Preview Results" msgstr "" -#: common/models.py:2530 -msgid "Receive error reports" +#: common/models.py:2525 +msgid "Number of results to show in each section of the search preview window" msgstr "" #: common/models.py:2531 -msgid "Receive notifications for system errors" +msgid "Regex Search" msgstr "" -#: common/models.py:2536 -msgid "Last used printing machines" +#: common/models.py:2532 +msgid "Enable regular expressions in search queries" msgstr "" #: common/models.py:2537 +msgid "Whole Word Search" +msgstr "" + +#: common/models.py:2538 +msgid "Search queries return results for whole word matches" +msgstr "" + +#: common/models.py:2543 +msgid "Show Quantity in Forms" +msgstr "" + +#: common/models.py:2544 +msgid "Display available part quantity in some forms" +msgstr "" + +#: common/models.py:2549 +msgid "Escape Key Closes Forms" +msgstr "" + +#: common/models.py:2550 +msgid "Use the escape key to close modal forms" +msgstr "" + +#: common/models.py:2555 +msgid "Fixed Navbar" +msgstr "" + +#: common/models.py:2556 +msgid "The navbar position is fixed to the top of the screen" +msgstr "" + +#: common/models.py:2561 +msgid "Date Format" +msgstr "" + +#: common/models.py:2562 +msgid "Preferred format for displaying dates" +msgstr "" + +#: common/models.py:2575 part/templates/part/detail.html:41 +msgid "Part Scheduling" +msgstr "" + +#: common/models.py:2576 +msgid "Display part scheduling information" +msgstr "" + +#: common/models.py:2581 part/templates/part/detail.html:62 +msgid "Part Stocktake" +msgstr "" + +#: common/models.py:2583 +msgid "Display part stocktake information (if stocktake functionality is enabled)" +msgstr "" + +#: common/models.py:2589 +msgid "Table String Length" +msgstr "" + +#: common/models.py:2591 +msgid "Maximum length limit for strings displayed in table views" +msgstr "" + +#: common/models.py:2597 +msgid "Receive error reports" +msgstr "" + +#: common/models.py:2598 +msgid "Receive notifications for system errors" +msgstr "" + +#: common/models.py:2603 +msgid "Last used printing machines" +msgstr "" + +#: common/models.py:2604 msgid "Save the last used printing machines for a user" msgstr "" -#: common/models.py:2557 common/models.py:2558 common/models.py:2715 -#: common/models.py:2716 common/models.py:2961 common/models.py:2962 -#: common/models.py:3288 common/models.py:3289 importer/models.py:88 -#: part/models.py:3307 part/models.py:3394 part/models.py:3468 -#: part/models.py:3496 plugin/models.py:274 plugin/models.py:275 -#: report/templates/report/inventree_test_report.html:105 -#: templates/js/translated/stock.js:3120 users/models.py:111 +#: common/models.py:2621 common/models.py:2622 common/models.py:2779 +#: common/models.py:2780 common/models.py:3025 common/models.py:3026 +#: common/models.py:3349 common/models.py:3350 common/models.py:3534 +#: importer/models.py:89 part/models.py:3358 part/models.py:3445 +#: part/models.py:3519 part/models.py:3547 plugin/models.py:313 +#: plugin/models.py:314 report/templates/report/inventree_test_report.html:105 +#: templates/js/translated/stock.js:3121 users/models.py:111 msgid "User" msgstr "" -#: common/models.py:2580 +#: common/models.py:2644 msgid "Price break quantity" msgstr "" -#: common/models.py:2587 company/serializers.py:513 order/admin.py:42 -#: order/models.py:1430 order/models.py:2417 -#: templates/js/translated/company.js:1823 templates/js/translated/part.js:1892 +#: common/models.py:2651 company/serializers.py:524 order/admin.py:42 +#: order/models.py:1447 order/models.py:2456 +#: templates/js/translated/company.js:1824 templates/js/translated/part.js:1892 #: templates/js/translated/pricing.js:621 #: templates/js/translated/return_order.js:739 msgid "Price" msgstr "" -#: common/models.py:2588 +#: common/models.py:2652 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:2692 common/models.py:2877 +#: common/models.py:2756 common/models.py:2941 msgid "Endpoint" msgstr "" -#: common/models.py:2693 +#: common/models.py:2757 msgid "Endpoint at which this webhook is received" msgstr "" -#: common/models.py:2703 +#: common/models.py:2767 msgid "Name for this webhook" msgstr "" -#: common/models.py:2707 +#: common/models.py:2771 msgid "Is this webhook active" msgstr "" -#: common/models.py:2723 users/models.py:159 +#: common/models.py:2787 users/models.py:159 msgid "Token" msgstr "" -#: common/models.py:2724 +#: common/models.py:2788 msgid "Token for access" msgstr "" -#: common/models.py:2732 +#: common/models.py:2796 msgid "Secret" msgstr "" -#: common/models.py:2733 +#: common/models.py:2797 msgid "Shared secret for HMAC" msgstr "" -#: common/models.py:2841 +#: common/models.py:2905 msgid "Message ID" msgstr "" -#: common/models.py:2842 +#: common/models.py:2906 msgid "Unique identifier for this message" msgstr "" -#: common/models.py:2850 +#: common/models.py:2914 msgid "Host" msgstr "" -#: common/models.py:2851 +#: common/models.py:2915 msgid "Host from which this message was received" msgstr "" -#: common/models.py:2859 +#: common/models.py:2923 msgid "Header" msgstr "" -#: common/models.py:2860 +#: common/models.py:2924 msgid "Header of this message" msgstr "" -#: common/models.py:2867 +#: common/models.py:2931 msgid "Body" msgstr "" -#: common/models.py:2868 +#: common/models.py:2932 msgid "Body of this message" msgstr "" -#: common/models.py:2878 +#: common/models.py:2942 msgid "Endpoint on which this message was received" msgstr "" -#: common/models.py:2883 +#: common/models.py:2947 msgid "Worked on" msgstr "" -#: common/models.py:2884 +#: common/models.py:2948 msgid "Was the work on this message finished?" msgstr "" -#: common/models.py:3010 +#: common/models.py:3074 msgid "Id" msgstr "" -#: common/models.py:3012 templates/js/translated/company.js:965 -#: templates/js/translated/news.js:44 +#: common/models.py:3076 part/serializers.py:271 +#: templates/js/translated/company.js:966 templates/js/translated/news.js:44 msgid "Title" msgstr "" -#: common/models.py:3014 common/models.py:3272 company/models.py:149 -#: company/models.py:446 company/models.py:512 company/models.py:818 -#: order/models.py:302 order/models.py:1385 order/models.py:1817 -#: part/admin.py:55 part/models.py:1057 +#: common/models.py:3078 common/models.py:3333 company/models.py:146 +#: company/models.py:443 company/models.py:509 company/models.py:815 +#: order/models.py:309 order/models.py:1402 order/models.py:1846 +#: part/admin.py:55 part/models.py:1118 #: part/templates/part/part_scheduling.html:11 #: report/templates/report/inventree_build_order_report.html:164 -#: stock/admin.py:229 templates/js/translated/company.js:1319 -#: templates/js/translated/company.js:1673 templates/js/translated/order.js:376 +#: stock/admin.py:230 templates/js/translated/company.js:1320 +#: templates/js/translated/company.js:1674 templates/js/translated/order.js:376 #: templates/js/translated/part.js:2475 -#: templates/js/translated/purchase_order.js:2110 -#: templates/js/translated/purchase_order.js:2274 +#: templates/js/translated/purchase_order.js:2094 +#: templates/js/translated/purchase_order.js:2258 #: templates/js/translated/return_order.js:778 -#: templates/js/translated/sales_order.js:1092 -#: templates/js/translated/sales_order.js:2023 +#: templates/js/translated/sales_order.js:1058 +#: templates/js/translated/sales_order.js:2004 msgid "Link" msgstr "" -#: common/models.py:3016 templates/js/translated/news.js:60 +#: common/models.py:3080 templates/js/translated/news.js:60 msgid "Published" msgstr "" -#: common/models.py:3018 templates/InvenTree/settings/plugin_settings.html:32 +#: common/models.py:3082 templates/InvenTree/settings/plugin_settings.html:32 #: templates/js/translated/news.js:56 templates/js/translated/plugin.js:103 msgid "Author" msgstr "" -#: common/models.py:3020 templates/js/translated/news.js:52 +#: common/models.py:3084 templates/js/translated/news.js:52 msgid "Summary" msgstr "" -#: common/models.py:3023 +#: common/models.py:3087 msgid "Read" msgstr "" -#: common/models.py:3023 +#: common/models.py:3087 msgid "Was this news item read?" msgstr "" -#: common/models.py:3040 company/models.py:159 part/models.py:1067 +#: common/models.py:3104 company/models.py:156 part/models.py:1128 #: report/templates/report/inventree_bill_of_materials_report.html:126 #: report/templates/report/inventree_bill_of_materials_report.html:148 #: report/templates/report/inventree_return_order_report.html:35 -#: stock/templates/stock/item_base.html:133 templates/503.html:31 +#: stock/templates/stock/item_base.html:130 templates/503.html:31 #: templates/hover_image.html:7 templates/hover_image.html:9 #: templates/modals.html:6 msgid "Image" msgstr "" -#: common/models.py:3040 +#: common/models.py:3104 msgid "Image file" msgstr "" -#: common/models.py:3052 common/models.py:3256 +#: common/models.py:3116 common/models.py:3317 msgid "Target model type for this image" msgstr "" -#: common/models.py:3056 +#: common/models.py:3120 msgid "Target model ID for this image" msgstr "" -#: common/models.py:3078 +#: common/models.py:3142 msgid "Custom Unit" msgstr "" -#: common/models.py:3099 +#: common/models.py:3160 msgid "Unit symbol must be unique" msgstr "" -#: common/models.py:3114 +#: common/models.py:3175 msgid "Unit name must be a valid identifier" msgstr "" -#: common/models.py:3133 +#: common/models.py:3194 msgid "Unit name" msgstr "" -#: common/models.py:3140 templates/InvenTree/settings/settings_staff_js.html:75 +#: common/models.py:3201 templates/InvenTree/settings/settings_staff_js.html:75 msgid "Symbol" msgstr "" -#: common/models.py:3141 +#: common/models.py:3202 msgid "Optional unit symbol" msgstr "" -#: common/models.py:3147 templates/InvenTree/settings/settings_staff_js.html:71 +#: common/models.py:3208 templates/InvenTree/settings/settings_staff_js.html:71 msgid "Definition" msgstr "" -#: common/models.py:3148 +#: common/models.py:3209 msgid "Unit definition" msgstr "" -#: common/models.py:3206 common/models.py:3263 stock/models.py:2558 -#: templates/js/translated/attachment.js:119 +#: common/models.py:3267 common/models.py:3324 stock/models.py:2674 +#: stock/serializers.py:244 templates/js/translated/attachment.js:119 #: templates/js/translated/attachment.js:345 msgid "Attachment" msgstr "" -#: common/models.py:3218 +#: common/models.py:3279 msgid "Missing file" msgstr "" -#: common/models.py:3219 +#: common/models.py:3280 msgid "Missing external link" msgstr "" -#: common/models.py:3264 +#: common/models.py:3325 msgid "Select file to attach" msgstr "" -#: common/models.py:3279 templates/js/translated/attachment.js:120 +#: common/models.py:3340 templates/js/translated/attachment.js:120 #: templates/js/translated/attachment.js:360 msgid "Comment" msgstr "" -#: common/models.py:3280 +#: common/models.py:3341 msgid "Attachment comment" msgstr "" -#: common/models.py:3296 +#: common/models.py:3357 msgid "Upload date" msgstr "" -#: common/models.py:3297 +#: common/models.py:3358 msgid "Date the file was uploaded" msgstr "" -#: common/models.py:3301 +#: common/models.py:3362 msgid "File size" msgstr "" -#: common/models.py:3301 +#: common/models.py:3362 msgid "File size in bytes" msgstr "" -#: common/models.py:3339 common/serializers.py:562 +#: common/models.py:3400 common/serializers.py:609 msgid "Invalid model type specified for attachment" msgstr "" -#: common/notifications.py:314 +#: common/models.py:3409 plugin/models.py:43 users/models.py:100 +msgid "Key" +msgstr "" + +#: common/models.py:3410 +msgid "Value that will be saved in the models database" +msgstr "" + +#: common/models.py:3413 +msgid "Name of the state" +msgstr "" + +#: common/models.py:3417 part/serializers.py:273 +msgid "Label" +msgstr "" + +#: common/models.py:3418 +msgid "Label that will be displayed in the frontend" +msgstr "" + +#: common/models.py:3424 +msgid "Color" +msgstr "" + +#: common/models.py:3425 +msgid "Color that will be displayed in the frontend" +msgstr "" + +#: common/models.py:3428 +msgid "Logical Key" +msgstr "" + +#: common/models.py:3430 +msgid "State logical key that is equal to this custom state in business logic" +msgstr "" + +#: common/models.py:3438 part/serializers.py:275 +msgid "Model" +msgstr "" + +#: common/models.py:3439 +msgid "Model this state is associated with" +msgstr "" + +#: common/models.py:3443 +msgid "Reference Status Set" +msgstr "" + +#: common/models.py:3444 +msgid "Status set that is extended with this custom state" +msgstr "" + +#: common/models.py:3450 +msgid "Custom State" +msgstr "" + +#: common/models.py:3451 +msgid "Custom States" +msgstr "" + +#: common/models.py:3466 +msgid "Model must be selected" +msgstr "" + +#: common/models.py:3469 +msgid "Key must be selected" +msgstr "" + +#: common/models.py:3472 +msgid "Logical key must be selected" +msgstr "" + +#: common/models.py:3476 +msgid "Key must be different from logical key" +msgstr "" + +#: common/models.py:3480 +msgid "Reference status must be selected" +msgstr "" + +#: common/models.py:3492 +msgid "Reference status set not found" +msgstr "" + +#: common/models.py:3498 +msgid "Key must be different from the logical keys of the reference status" +msgstr "" + +#: common/models.py:3504 +msgid "Logical key must be in the logical keys of the reference status" +msgstr "" + +#: common/models.py:3519 +msgid "Barcode Scan" +msgstr "" + +#: common/models.py:3523 importer/models.py:512 part/models.py:4009 +msgid "Data" +msgstr "" + +#: common/models.py:3524 +msgid "Barcode data" +msgstr "" + +#: common/models.py:3535 +msgid "User who scanned the barcode" +msgstr "" + +#: common/models.py:3540 importer/models.py:60 +msgid "Timestamp" +msgstr "" + +#: common/models.py:3541 +msgid "Date and time of the barcode scan" +msgstr "" + +#: common/models.py:3547 +msgid "URL endpoint which processed the barcode" +msgstr "" + +#: common/models.py:3554 order/models.py:1437 plugin/serializers.py:89 +msgid "Context" +msgstr "" + +#: common/models.py:3555 +msgid "Context data for the barcode scan" +msgstr "" + +#: common/models.py:3562 +msgid "Response" +msgstr "" + +#: common/models.py:3563 +msgid "Response data from the barcode scan" +msgstr "" + +#: common/models.py:3569 report/templates/report/inventree_test_report.html:103 +#: stock/models.py:2660 +msgid "Result" +msgstr "" + +#: common/models.py:3570 +msgid "Was the barcode scan successful?" +msgstr "" + +#: common/notifications.py:328 #, python-brace-format msgid "New {verbose_name}" msgstr "" -#: common/notifications.py:316 +#: common/notifications.py:330 msgid "A new order has been created and assigned to you" msgstr "" -#: common/notifications.py:322 +#: common/notifications.py:336 #, python-brace-format msgid "{verbose_name} canceled" msgstr "" -#: common/notifications.py:324 +#: common/notifications.py:338 msgid "A order that is assigned to you was canceled" msgstr "" -#: common/notifications.py:330 common/notifications.py:337 order/api.py:462 +#: common/notifications.py:344 common/notifications.py:351 order/api.py:440 msgid "Items Received" msgstr "" -#: common/notifications.py:332 +#: common/notifications.py:346 msgid "Items have been received against a purchase order" msgstr "" -#: common/notifications.py:339 +#: common/notifications.py:353 msgid "Items have been received against a return order" msgstr "" -#: common/notifications.py:457 +#: common/notifications.py:475 msgid "Error raised by plugin" msgstr "" -#: common/serializers.py:375 +#: common/serializers.py:423 msgid "Is Running" msgstr "" -#: common/serializers.py:381 +#: common/serializers.py:429 msgid "Pending Tasks" msgstr "" -#: common/serializers.py:387 +#: common/serializers.py:435 msgid "Scheduled Tasks" msgstr "" -#: common/serializers.py:393 +#: common/serializers.py:441 msgid "Failed Tasks" msgstr "" -#: common/serializers.py:408 +#: common/serializers.py:456 msgid "Task ID" msgstr "" -#: common/serializers.py:408 +#: common/serializers.py:456 msgid "Unique task ID" msgstr "" -#: common/serializers.py:410 +#: common/serializers.py:458 msgid "Lock" msgstr "" -#: common/serializers.py:410 +#: common/serializers.py:458 msgid "Lock time" msgstr "" -#: common/serializers.py:412 +#: common/serializers.py:460 msgid "Task name" msgstr "" -#: common/serializers.py:414 +#: common/serializers.py:462 msgid "Function" msgstr "" -#: common/serializers.py:414 +#: common/serializers.py:462 msgid "Function name" msgstr "" -#: common/serializers.py:416 +#: common/serializers.py:464 msgid "Arguments" msgstr "" -#: common/serializers.py:416 +#: common/serializers.py:464 msgid "Task arguments" msgstr "" -#: common/serializers.py:419 +#: common/serializers.py:467 msgid "Keyword Arguments" msgstr "" -#: common/serializers.py:419 +#: common/serializers.py:467 msgid "Task keyword arguments" msgstr "" -#: common/serializers.py:529 +#: common/serializers.py:577 msgid "Filename" msgstr "" -#: common/serializers.py:536 report/api.py:100 report/serializers.py:53 +#: common/serializers.py:584 report/api.py:100 report/serializers.py:54 msgid "Model Type" msgstr "" -#: common/serializers.py:565 +#: common/serializers.py:612 msgid "User does not have permission to create or edit attachments for this model" msgstr "" @@ -4116,15 +4295,15 @@ msgstr "" msgid "Match Items" msgstr "" -#: common/views.py:401 +#: common/views.py:397 msgid "Fields matching failed" msgstr "" -#: common/views.py:464 +#: common/views.py:460 msgid "Parts imported" msgstr "" -#: common/views.py:494 order/templates/order/order_wizard/match_fields.html:27 +#: common/views.py:490 order/templates/order/order_wizard/match_fields.html:27 #: order/templates/order/order_wizard/match_parts.html:19 #: order/templates/order/order_wizard/po_upload.html:49 #: part/templates/part/import_wizard/match_fields.html:27 @@ -4155,429 +4334,429 @@ msgstr "" msgid "Supplier is Active" msgstr "" -#: company/models.py:100 company/models.py:371 +#: company/models.py:97 company/models.py:368 #: company/templates/company/company_base.html:8 #: company/templates/company/company_base.html:12 stock/api.py:812 -#: templates/InvenTree/search.html:178 templates/js/translated/company.js:496 +#: templates/InvenTree/search.html:178 templates/js/translated/company.js:497 msgid "Company" msgstr "" -#: company/models.py:101 company/views.py:51 +#: company/models.py:98 company/views.py:51 #: templates/js/translated/search.js:192 msgid "Companies" msgstr "" -#: company/models.py:117 +#: company/models.py:114 msgid "Company description" msgstr "" -#: company/models.py:118 +#: company/models.py:115 msgid "Description of the company" msgstr "" -#: company/models.py:123 company/templates/company/company_base.html:106 +#: company/models.py:120 company/templates/company/company_base.html:106 #: templates/InvenTree/settings/plugin_settings.html:54 -#: templates/js/translated/company.js:532 +#: templates/js/translated/company.js:533 msgid "Website" msgstr "" -#: company/models.py:123 +#: company/models.py:120 msgid "Company website URL" msgstr "" -#: company/models.py:128 +#: company/models.py:125 msgid "Phone number" msgstr "" -#: company/models.py:130 +#: company/models.py:127 msgid "Contact phone number" msgstr "" -#: company/models.py:137 +#: company/models.py:134 msgid "Contact email address" msgstr "" -#: company/models.py:142 company/models.py:275 -#: company/templates/company/company_base.html:145 order/models.py:342 -#: order/templates/order/order_base.html:208 -#: order/templates/order/return_order_base.html:177 -#: order/templates/order/sales_order_base.html:221 +#: company/models.py:139 company/models.py:272 +#: company/templates/company/company_base.html:145 order/models.py:349 +#: order/templates/order/order_base.html:217 +#: order/templates/order/return_order_base.html:178 +#: order/templates/order/sales_order_base.html:222 msgid "Contact" msgstr "" -#: company/models.py:144 +#: company/models.py:141 msgid "Point of contact" msgstr "" -#: company/models.py:150 +#: company/models.py:147 msgid "Link to external company information" msgstr "" -#: company/models.py:163 +#: company/models.py:160 msgid "Is this company active?" msgstr "" -#: company/models.py:168 +#: company/models.py:165 msgid "Is customer" msgstr "" -#: company/models.py:169 +#: company/models.py:166 msgid "Do you sell items to this company?" msgstr "" -#: company/models.py:174 +#: company/models.py:171 msgid "Is supplier" msgstr "" -#: company/models.py:175 +#: company/models.py:172 msgid "Do you purchase items from this company?" msgstr "" -#: company/models.py:180 +#: company/models.py:177 msgid "Is manufacturer" msgstr "" -#: company/models.py:181 +#: company/models.py:178 msgid "Does this company manufacture parts?" msgstr "" -#: company/models.py:189 +#: company/models.py:186 msgid "Default currency used for this company" msgstr "" -#: company/models.py:314 company/templates/company/company_base.html:124 -#: order/models.py:352 order/templates/order/order_base.html:215 -#: order/templates/order/return_order_base.html:184 -#: order/templates/order/sales_order_base.html:228 +#: company/models.py:311 company/templates/company/company_base.html:124 +#: order/models.py:359 order/templates/order/order_base.html:224 +#: order/templates/order/return_order_base.html:185 +#: order/templates/order/sales_order_base.html:229 msgid "Address" msgstr "" -#: company/models.py:315 company/templates/company/sidebar.html:35 +#: company/models.py:312 company/templates/company/sidebar.html:35 msgid "Addresses" msgstr "" -#: company/models.py:372 +#: company/models.py:369 msgid "Select company" msgstr "" -#: company/models.py:377 +#: company/models.py:374 msgid "Address title" msgstr "" -#: company/models.py:378 +#: company/models.py:375 msgid "Title describing the address entry" msgstr "" -#: company/models.py:384 +#: company/models.py:381 msgid "Primary address" msgstr "" -#: company/models.py:385 +#: company/models.py:382 msgid "Set as primary address" msgstr "" -#: company/models.py:390 templates/js/translated/company.js:914 -#: templates/js/translated/company.js:971 +#: company/models.py:387 templates/js/translated/company.js:915 +#: templates/js/translated/company.js:972 msgid "Line 1" msgstr "" -#: company/models.py:391 +#: company/models.py:388 msgid "Address line 1" msgstr "" -#: company/models.py:397 templates/js/translated/company.js:915 -#: templates/js/translated/company.js:977 +#: company/models.py:394 templates/js/translated/company.js:916 +#: templates/js/translated/company.js:978 msgid "Line 2" msgstr "" -#: company/models.py:398 +#: company/models.py:395 msgid "Address line 2" msgstr "" -#: company/models.py:404 company/models.py:405 -#: templates/js/translated/company.js:983 +#: company/models.py:401 company/models.py:402 +#: templates/js/translated/company.js:984 msgid "Postal code" msgstr "" -#: company/models.py:411 +#: company/models.py:408 msgid "City/Region" msgstr "" -#: company/models.py:412 +#: company/models.py:409 msgid "Postal code city/region" msgstr "" -#: company/models.py:418 +#: company/models.py:415 msgid "State/Province" msgstr "" -#: company/models.py:419 +#: company/models.py:416 msgid "State or province" msgstr "" -#: company/models.py:425 templates/js/translated/company.js:1001 +#: company/models.py:422 templates/js/translated/company.js:1002 msgid "Country" msgstr "" -#: company/models.py:426 +#: company/models.py:423 msgid "Address country" msgstr "" -#: company/models.py:432 +#: company/models.py:429 msgid "Courier shipping notes" msgstr "" -#: company/models.py:433 +#: company/models.py:430 msgid "Notes for shipping courier" msgstr "" -#: company/models.py:439 +#: company/models.py:436 msgid "Internal shipping notes" msgstr "" -#: company/models.py:440 +#: company/models.py:437 msgid "Shipping notes for internal use" msgstr "" -#: company/models.py:447 +#: company/models.py:444 msgid "Link to address information (external)" msgstr "" -#: company/models.py:470 company/models.py:587 company/models.py:811 +#: company/models.py:467 company/models.py:584 company/models.py:808 #: company/templates/company/manufacturer_part.html:7 #: company/templates/company/manufacturer_part.html:24 -#: stock/templates/stock/item_base.html:217 +#: stock/templates/stock/item_base.html:214 msgid "Manufacturer Part" msgstr "" -#: company/models.py:487 company/models.py:779 stock/models.py:787 -#: stock/serializers.py:445 stock/templates/stock/item_base.html:142 +#: company/models.py:484 company/models.py:776 stock/models.py:864 +#: stock/serializers.py:455 stock/templates/stock/item_base.html:139 #: templates/js/translated/bom.js:622 msgid "Base Part" msgstr "" -#: company/models.py:489 company/models.py:781 +#: company/models.py:486 company/models.py:778 msgid "Select part" msgstr "" -#: company/models.py:498 company/templates/company/company_base.html:82 +#: company/models.py:495 company/templates/company/company_base.html:82 #: company/templates/company/manufacturer_part.html:90 -#: company/templates/company/supplier_part.html:145 part/serializers.py:554 -#: stock/templates/stock/item_base.html:207 -#: templates/js/translated/company.js:507 -#: templates/js/translated/company.js:1118 -#: templates/js/translated/company.js:1296 -#: templates/js/translated/company.js:1611 +#: company/templates/company/supplier_part.html:146 part/serializers.py:598 +#: stock/templates/stock/item_base.html:204 +#: templates/js/translated/company.js:508 +#: templates/js/translated/company.js:1119 +#: templates/js/translated/company.js:1297 +#: templates/js/translated/company.js:1612 #: templates/js/translated/table_filters.js:812 msgid "Manufacturer" msgstr "" -#: company/models.py:499 +#: company/models.py:496 msgid "Select manufacturer" msgstr "" -#: company/models.py:505 company/templates/company/manufacturer_part.html:101 -#: company/templates/company/supplier_part.html:153 order/serializers.py:556 -#: part/serializers.py:564 templates/js/translated/company.js:351 -#: templates/js/translated/company.js:1117 -#: templates/js/translated/company.js:1312 -#: templates/js/translated/company.js:1630 templates/js/translated/part.js:1807 -#: templates/js/translated/purchase_order.js:1921 -#: templates/js/translated/purchase_order.js:2123 +#: company/models.py:502 company/templates/company/manufacturer_part.html:101 +#: company/templates/company/supplier_part.html:154 order/serializers.py:641 +#: part/serializers.py:608 templates/js/translated/company.js:352 +#: templates/js/translated/company.js:1118 +#: templates/js/translated/company.js:1313 +#: templates/js/translated/company.js:1631 templates/js/translated/part.js:1807 +#: templates/js/translated/purchase_order.js:1905 +#: templates/js/translated/purchase_order.js:2107 msgid "MPN" msgstr "" -#: company/models.py:513 +#: company/models.py:510 msgid "URL for external manufacturer part link" msgstr "" -#: company/models.py:522 +#: company/models.py:519 msgid "Manufacturer part description" msgstr "" -#: company/models.py:575 +#: company/models.py:572 msgid "Manufacturer Part Parameter" msgstr "" -#: company/models.py:594 +#: company/models.py:591 msgid "Parameter name" msgstr "" -#: company/models.py:600 report/templates/report/inventree_test_report.html:104 -#: stock/models.py:2550 templates/js/translated/company.js:1166 -#: templates/js/translated/company.js:1419 templates/js/translated/part.js:1499 +#: company/models.py:597 report/templates/report/inventree_test_report.html:104 +#: stock/models.py:2666 templates/js/translated/company.js:1167 +#: templates/js/translated/company.js:1420 templates/js/translated/part.js:1499 #: templates/js/translated/stock.js:1607 msgid "Value" msgstr "" -#: company/models.py:601 +#: company/models.py:598 msgid "Parameter value" msgstr "" -#: company/models.py:608 company/templates/company/supplier_part.html:168 -#: part/admin.py:57 part/models.py:1147 part/models.py:3771 -#: part/templates/part/part_base.html:293 -#: templates/js/translated/company.js:1425 templates/js/translated/part.js:1518 +#: company/models.py:605 company/templates/company/supplier_part.html:169 +#: part/admin.py:57 part/models.py:1208 part/models.py:3822 +#: part/templates/part/part_base.html:301 +#: templates/js/translated/company.js:1426 templates/js/translated/part.js:1518 #: templates/js/translated/part.js:1622 templates/js/translated/part.js:2376 msgid "Units" msgstr "" -#: company/models.py:609 +#: company/models.py:606 msgid "Parameter units" msgstr "" -#: company/models.py:662 company/templates/company/supplier_part.html:7 -#: company/templates/company/supplier_part.html:24 order/api.py:442 -#: order/serializers.py:491 stock/models.py:798 -#: stock/templates/stock/item_base.html:233 -#: templates/js/translated/build.js:1052 -#: templates/js/translated/company.js:1600 -#: templates/js/translated/purchase_order.js:752 -#: templates/js/translated/stock.js:2365 +#: company/models.py:659 company/templates/company/supplier_part.html:8 +#: company/templates/company/supplier_part.html:25 order/api.py:392 +#: order/serializers.py:576 stock/models.py:875 +#: stock/templates/stock/item_base.html:230 +#: templates/js/translated/build.js:1055 +#: templates/js/translated/company.js:1601 +#: templates/js/translated/purchase_order.js:735 +#: templates/js/translated/stock.js:2366 msgid "Supplier Part" msgstr "" -#: company/models.py:719 +#: company/models.py:716 msgid "Pack units must be compatible with the base part units" msgstr "" -#: company/models.py:726 +#: company/models.py:723 msgid "Pack units must be greater than zero" msgstr "" -#: company/models.py:740 +#: company/models.py:737 msgid "Linked manufacturer part must reference the same base part" msgstr "" -#: company/models.py:789 company/templates/company/company_base.html:87 -#: company/templates/company/supplier_part.html:129 order/models.py:491 -#: order/templates/order/order_base.html:141 part/bom.py:280 part/bom.py:318 -#: part/serializers.py:538 plugin/builtin/suppliers/digikey.py:25 +#: company/models.py:786 company/templates/company/company_base.html:87 +#: company/templates/company/supplier_part.html:130 order/models.py:503 +#: order/templates/order/order_base.html:150 part/bom.py:279 part/bom.py:314 +#: part/serializers.py:582 plugin/builtin/suppliers/digikey.py:25 #: plugin/builtin/suppliers/lcsc.py:26 plugin/builtin/suppliers/mouser.py:24 -#: plugin/builtin/suppliers/tme.py:26 stock/templates/stock/item_base.html:224 +#: plugin/builtin/suppliers/tme.py:26 stock/templates/stock/item_base.html:221 #: templates/email/overdue_purchase_order.html:16 -#: templates/js/translated/company.js:350 -#: templates/js/translated/company.js:511 -#: templates/js/translated/company.js:1584 templates/js/translated/part.js:1775 +#: templates/js/translated/company.js:351 +#: templates/js/translated/company.js:512 +#: templates/js/translated/company.js:1585 templates/js/translated/part.js:1775 #: templates/js/translated/pricing.js:498 -#: templates/js/translated/purchase_order.js:1759 +#: templates/js/translated/purchase_order.js:1743 #: templates/js/translated/table_filters.js:816 msgid "Supplier" msgstr "" -#: company/models.py:790 +#: company/models.py:787 msgid "Select supplier" msgstr "" -#: company/models.py:796 part/serializers.py:549 +#: company/models.py:793 part/serializers.py:593 msgid "Supplier stock keeping unit" msgstr "" -#: company/models.py:802 +#: company/models.py:799 msgid "Is this supplier part active?" msgstr "" -#: company/models.py:812 +#: company/models.py:809 msgid "Select manufacturer part" msgstr "" -#: company/models.py:819 +#: company/models.py:816 msgid "URL for external supplier part link" msgstr "" -#: company/models.py:828 +#: company/models.py:825 msgid "Supplier part description" msgstr "" -#: company/models.py:835 company/templates/company/supplier_part.html:187 -#: order/serializers.py:698 part/admin.py:415 part/models.py:4288 +#: company/models.py:832 company/templates/company/supplier_part.html:188 +#: order/serializers.py:783 part/admin.py:415 part/models.py:4345 #: part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_bill_of_materials_report.html:140 #: report/templates/report/inventree_purchase_order_report.html:32 #: report/templates/report/inventree_return_order_report.html:27 #: report/templates/report/inventree_sales_order_report.html:32 #: report/templates/report/inventree_stock_location_report.html:105 -#: stock/serializers.py:776 templates/js/translated/purchase_order.js:1185 -#: templates/js/translated/purchase_order.js:1344 +#: stock/serializers.py:807 templates/js/translated/purchase_order.js:1168 +#: templates/js/translated/purchase_order.js:1327 msgid "Note" msgstr "" -#: company/models.py:844 part/models.py:2117 +#: company/models.py:841 part/models.py:2177 msgid "base cost" msgstr "" -#: company/models.py:845 part/models.py:2118 +#: company/models.py:842 part/models.py:2178 msgid "Minimum charge (e.g. stocking fee)" msgstr "" -#: company/models.py:853 +#: company/models.py:850 msgid "Part packaging" msgstr "" -#: company/models.py:858 templates/js/translated/company.js:1651 +#: company/models.py:855 templates/js/translated/company.js:1652 #: templates/js/translated/part.js:1828 templates/js/translated/part.js:1884 -#: templates/js/translated/purchase_order.js:311 -#: templates/js/translated/purchase_order.js:841 -#: templates/js/translated/purchase_order.js:1103 -#: templates/js/translated/purchase_order.js:2154 -#: templates/js/translated/purchase_order.js:2171 +#: templates/js/translated/purchase_order.js:294 +#: templates/js/translated/purchase_order.js:824 +#: templates/js/translated/purchase_order.js:1086 +#: templates/js/translated/purchase_order.js:2138 +#: templates/js/translated/purchase_order.js:2155 msgid "Pack Quantity" msgstr "" -#: company/models.py:860 +#: company/models.py:857 msgid "Total quantity supplied in a single pack. Leave empty for single items." msgstr "" -#: company/models.py:879 part/models.py:2124 +#: company/models.py:876 part/models.py:2184 msgid "multiple" msgstr "" -#: company/models.py:880 +#: company/models.py:877 msgid "Order multiple" msgstr "" -#: company/models.py:892 +#: company/models.py:889 msgid "Quantity available from supplier" msgstr "" -#: company/models.py:898 +#: company/models.py:895 msgid "Availability Updated" msgstr "" -#: company/models.py:899 +#: company/models.py:896 msgid "Date of last update of availability data" msgstr "" -#: company/models.py:1027 +#: company/models.py:1024 msgid "Supplier Price Break" msgstr "" -#: company/serializers.py:174 +#: company/serializers.py:178 msgid "Default currency used for this supplier" msgstr "" -#: company/serializers.py:210 +#: company/serializers.py:214 msgid "Company Name" msgstr "" -#: company/serializers.py:393 part/admin.py:126 part/serializers.py:898 -#: part/templates/part/part_base.html:197 -#: templates/js/translated/company.js:1689 +#: company/serializers.py:397 part/admin.py:126 part/serializers.py:950 +#: part/templates/part/part_base.html:198 stock/serializers.py:474 +#: templates/js/translated/company.js:1690 #: templates/js/translated/table_filters.js:362 msgid "In Stock" msgstr "" #: company/templates/company/company_base.html:16 -#: part/templates/part/part_base.html:146 -#: templates/js/translated/company.js:1287 -#: templates/js/translated/company.js:1575 -#: templates/js/translated/model_renderers.js:313 +#: part/templates/part/part_base.html:147 +#: templates/js/translated/company.js:1288 +#: templates/js/translated/company.js:1576 +#: templates/js/translated/model_renderers.js:316 #: templates/js/translated/part.js:817 templates/js/translated/part.js:1225 msgid "Inactive" msgstr "" #: company/templates/company/company_base.html:27 -#: templates/js/translated/purchase_order.js:242 +#: templates/js/translated/purchase_order.js:224 msgid "Create Purchase Order" msgstr "" @@ -4590,7 +4769,7 @@ msgid "Edit company information" msgstr "" #: company/templates/company/company_base.html:39 -#: templates/js/translated/company.js:445 +#: templates/js/translated/company.js:446 msgid "Edit Company" msgstr "" @@ -4605,11 +4784,12 @@ msgstr "" #: company/templates/company/company_base.html:53 #: company/templates/company/manufacturer_part.html:51 -#: company/templates/company/supplier_part.html:83 +#: company/templates/company/supplier_part.html:84 #: part/templates/part/part_thumb.html:20 #: report/templates/report/inventree_build_order_report.html:98 #: report/templates/report/inventree_purchase_order_report.html:40 #: report/templates/report/inventree_sales_order_report.html:40 +#: report/templates/report/inventree_sales_order_shipment_report.html:37 #: report/templates/report/inventree_test_report.html:84 #: report/templates/report/inventree_test_report.html:162 msgid "Part image" @@ -4630,16 +4810,16 @@ msgstr "" msgid "Delete image" msgstr "" -#: company/templates/company/company_base.html:92 order/models.py:990 -#: order/models.py:2147 order/templates/order/return_order_base.html:134 -#: order/templates/order/sales_order_base.html:151 stock/models.py:840 -#: stock/models.py:841 stock/serializers.py:1329 -#: stock/templates/stock/item_base.html:405 +#: company/templates/company/company_base.html:92 order/models.py:1017 +#: order/models.py:2186 order/templates/order/return_order_base.html:135 +#: order/templates/order/sales_order_base.html:152 stock/models.py:917 +#: stock/models.py:918 stock/serializers.py:1360 +#: stock/templates/stock/item_base.html:402 #: templates/email/overdue_sales_order.html:16 -#: templates/js/translated/company.js:503 +#: templates/js/translated/company.js:504 #: templates/js/translated/return_order.js:295 -#: templates/js/translated/sales_order.js:820 -#: templates/js/translated/stock.js:3043 +#: templates/js/translated/sales_order.js:779 +#: templates/js/translated/stock.js:3044 #: templates/js/translated/table_filters.js:820 msgid "Customer" msgstr "" @@ -4653,7 +4833,7 @@ msgid "Phone" msgstr "" #: company/templates/company/company_base.html:211 -#: part/templates/part/part_base.html:536 +#: part/templates/part/part_base.html:544 msgid "Remove Image" msgstr "" @@ -4662,19 +4842,19 @@ msgid "Remove associated image from this company" msgstr "" #: company/templates/company/company_base.html:214 -#: part/templates/part/part_base.html:539 +#: part/templates/part/part_base.html:547 #: templates/InvenTree/settings/user.html:88 #: templates/InvenTree/settings/user_sso.html:43 msgid "Remove" msgstr "" #: company/templates/company/company_base.html:243 -#: part/templates/part/part_base.html:568 +#: part/templates/part/part_base.html:576 msgid "Upload Image" msgstr "" #: company/templates/company/company_base.html:258 -#: part/templates/part/part_base.html:622 +#: part/templates/part/part_base.html:630 msgid "Download Image" msgstr "" @@ -4714,7 +4894,7 @@ msgstr "" #: company/templates/company/detail.html:75 #: company/templates/company/sidebar.html:12 #: company/templates/company/supplier_part_sidebar.html:7 -#: order/templates/order/order_base.html:13 +#: order/templates/order/order_base.html:14 #: order/templates/order/purchase_orders.html:8 #: order/templates/order/purchase_orders.html:12 #: part/templates/part/detail.html:122 part/templates/part/part_sidebar.html:35 @@ -4737,7 +4917,7 @@ msgstr "" #: company/templates/company/detail.html:101 #: company/templates/company/sidebar.html:21 -#: order/templates/order/sales_order_base.html:13 +#: order/templates/order/sales_order_base.html:14 #: order/templates/order/sales_orders.html:8 #: order/templates/order/sales_orders.html:15 #: part/templates/part/detail.html:143 part/templates/part/part_sidebar.html:39 @@ -4764,7 +4944,7 @@ msgstr "" #: company/templates/company/detail.html:142 #: company/templates/company/sidebar.html:29 -#: order/templates/order/return_order_base.html:13 +#: order/templates/order/return_order_base.html:14 #: order/templates/order/return_orders.html:8 #: order/templates/order/return_orders.html:15 #: templates/InvenTree/settings/sidebar.html:61 @@ -4811,24 +4991,24 @@ msgid "Manufacturers" msgstr "" #: company/templates/company/manufacturer_part.html:35 -#: company/templates/company/supplier_part.html:227 -#: part/templates/part/detail.html:125 part/templates/part/part_base.html:83 +#: company/templates/company/supplier_part.html:228 +#: part/templates/part/detail.html:125 part/templates/part/part_base.html:84 msgid "Order part" msgstr "" #: company/templates/company/manufacturer_part.html:39 -#: templates/js/translated/company.js:1343 +#: templates/js/translated/company.js:1344 msgid "Edit manufacturer part" msgstr "" #: company/templates/company/manufacturer_part.html:43 -#: templates/js/translated/company.js:1344 +#: templates/js/translated/company.js:1345 msgid "Delete manufacturer part" msgstr "" #: company/templates/company/manufacturer_part.html:65 -#: company/templates/company/supplier_part.html:97 order/api.py:448 -#: order/serializers.py:564 +#: company/templates/company/supplier_part.html:98 order/api.py:411 +#: order/serializers.py:649 msgid "Internal Part" msgstr "" @@ -4837,8 +5017,8 @@ msgid "No manufacturer information available" msgstr "" #: company/templates/company/manufacturer_part.html:119 -#: company/templates/company/supplier_part.html:15 company/views.py:31 -#: part/admin.py:122 part/serializers.py:904 +#: company/templates/company/supplier_part.html:16 company/views.py:31 +#: part/admin.py:122 part/serializers.py:956 #: part/templates/part/part_sidebar.html:33 templates/InvenTree/search.html:190 #: templates/navbar.html:48 msgid "Suppliers" @@ -4887,112 +5067,113 @@ msgstr "" msgid "Contacts" msgstr "" -#: company/templates/company/supplier_part.html:50 -#: templates/js/translated/company.js:1526 +#: company/templates/company/supplier_part.html:51 +#: templates/js/translated/company.js:1527 msgid "Supplier part actions" msgstr "" -#: company/templates/company/supplier_part.html:55 #: company/templates/company/supplier_part.html:56 -#: company/templates/company/supplier_part.html:228 +#: company/templates/company/supplier_part.html:57 +#: company/templates/company/supplier_part.html:229 #: part/templates/part/detail.html:126 msgid "Order Part" msgstr "" -#: company/templates/company/supplier_part.html:60 #: company/templates/company/supplier_part.html:61 +#: company/templates/company/supplier_part.html:62 msgid "Update Availability" msgstr "" -#: company/templates/company/supplier_part.html:63 #: company/templates/company/supplier_part.html:64 -#: templates/js/translated/company.js:294 +#: company/templates/company/supplier_part.html:65 +#: templates/js/translated/company.js:295 msgid "Edit Supplier Part" msgstr "" -#: company/templates/company/supplier_part.html:68 #: company/templates/company/supplier_part.html:69 -#: templates/js/translated/company.js:269 +#: company/templates/company/supplier_part.html:70 +#: templates/js/translated/company.js:270 msgid "Duplicate Supplier Part" msgstr "" -#: company/templates/company/supplier_part.html:73 +#: company/templates/company/supplier_part.html:74 msgid "Delete Supplier Part" msgstr "" -#: company/templates/company/supplier_part.html:74 +#: company/templates/company/supplier_part.html:75 msgid "Delete Supplier Part" msgstr "" -#: company/templates/company/supplier_part.html:133 +#: company/templates/company/supplier_part.html:134 +#: order/templates/order/order_base.html:155 msgid "No supplier information available" msgstr "" -#: company/templates/company/supplier_part.html:139 order/serializers.py:553 -#: part/bom.py:287 part/bom.py:319 part/serializers.py:548 -#: templates/js/translated/company.js:349 templates/js/translated/part.js:1793 +#: company/templates/company/supplier_part.html:140 order/serializers.py:638 +#: part/bom.py:286 part/bom.py:315 part/serializers.py:592 +#: templates/js/translated/company.js:350 templates/js/translated/part.js:1793 #: templates/js/translated/pricing.js:510 -#: templates/js/translated/purchase_order.js:1920 -#: templates/js/translated/purchase_order.js:2098 +#: templates/js/translated/purchase_order.js:1904 +#: templates/js/translated/purchase_order.js:2082 msgid "SKU" msgstr "" -#: company/templates/company/supplier_part.html:206 +#: company/templates/company/supplier_part.html:207 msgid "Supplier Part Stock" msgstr "" -#: company/templates/company/supplier_part.html:209 -#: part/templates/part/detail.html:24 stock/templates/stock/location.html:204 +#: company/templates/company/supplier_part.html:210 +#: part/templates/part/detail.html:24 stock/templates/stock/location.html:205 msgid "Create new stock item" msgstr "" -#: company/templates/company/supplier_part.html:210 -#: part/templates/part/detail.html:25 stock/templates/stock/location.html:205 +#: company/templates/company/supplier_part.html:211 +#: part/templates/part/detail.html:25 stock/templates/stock/location.html:206 #: templates/js/translated/stock.js:543 msgid "New Stock Item" msgstr "" -#: company/templates/company/supplier_part.html:223 +#: company/templates/company/supplier_part.html:224 msgid "Supplier Part Orders" msgstr "" -#: company/templates/company/supplier_part.html:246 +#: company/templates/company/supplier_part.html:247 msgid "Pricing Information" msgstr "" -#: company/templates/company/supplier_part.html:251 -#: templates/js/translated/company.js:398 +#: company/templates/company/supplier_part.html:252 +#: templates/js/translated/company.js:399 #: templates/js/translated/pricing.js:684 msgid "Add Price Break" msgstr "" -#: company/templates/company/supplier_part.html:270 +#: company/templates/company/supplier_part.html:271 msgid "Supplier Part Notes" msgstr "" -#: company/templates/company/supplier_part.html:305 +#: company/templates/company/supplier_part.html:306 msgid "Supplier Part QR Code" msgstr "" -#: company/templates/company/supplier_part.html:316 +#: company/templates/company/supplier_part.html:317 msgid "Link Barcode to Supplier Part" msgstr "" -#: company/templates/company/supplier_part.html:388 +#: company/templates/company/supplier_part.html:389 msgid "Update Part Availability" msgstr "" #: company/templates/company/supplier_part_sidebar.html:5 -#: part/serializers.py:902 part/stocktake.py:223 +#: part/serializers.py:954 part/stocktake.py:223 #: part/templates/part/category.html:180 #: part/templates/part/category_sidebar.html:17 stock/admin.py:68 -#: stock/serializers.py:1014 stock/serializers.py:1192 -#: stock/templates/stock/location.html:167 -#: stock/templates/stock/location.html:188 -#: stock/templates/stock/location.html:200 +#: stock/serializers.py:1045 stock/serializers.py:1223 +#: stock/templates/stock/location.html:168 +#: stock/templates/stock/location.html:189 +#: stock/templates/stock/location.html:201 #: stock/templates/stock/location_sidebar.html:7 #: templates/InvenTree/search.html:155 templates/js/translated/part.js:1067 -#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2850 +#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2851 #: users/models.py:206 msgid "Stock Items" msgstr "" @@ -5022,99 +5203,99 @@ msgstr "" msgid "New Company" msgstr "" -#: generic/states/tests.py:18 order/status_codes.py:13 +#: generic/states/fields.py:118 +msgid "Custom status key" +msgstr "" + +#: generic/states/fields.py:119 +msgid "Additional status information for this item" +msgstr "" + +#: generic/states/tests.py:22 order/status_codes.py:13 msgid "Placed" msgstr "" -#: importer/mixins.py:263 +#: importer/mixins.py:261 msgid "Invalid export format" msgstr "" -#: importer/models.py:59 -msgid "Timestamp" -msgstr "" - -#: importer/models.py:64 +#: importer/models.py:65 msgid "Data file to import" msgstr "" -#: importer/models.py:73 templates/js/translated/tables.js:558 +#: importer/models.py:74 templates/js/translated/tables.js:558 msgid "Columns" msgstr "" -#: importer/models.py:84 +#: importer/models.py:85 msgid "Import status" msgstr "" -#: importer/models.py:94 +#: importer/models.py:95 msgid "Field Defaults" msgstr "" -#: importer/models.py:101 +#: importer/models.py:102 msgid "Field Overrides" msgstr "" -#: importer/models.py:108 +#: importer/models.py:109 msgid "Field Filters" msgstr "" -#: importer/models.py:230 +#: importer/models.py:239 msgid "Some required fields have not been mapped" msgstr "" -#: importer/models.py:387 +#: importer/models.py:396 msgid "Column is already mapped to a database field" msgstr "" -#: importer/models.py:392 +#: importer/models.py:401 msgid "Field is already mapped to a data column" msgstr "" -#: importer/models.py:401 +#: importer/models.py:410 msgid "Column mapping must be linked to a valid import session" msgstr "" -#: importer/models.py:406 +#: importer/models.py:415 msgid "Column does not exist in the data file" msgstr "" -#: importer/models.py:413 +#: importer/models.py:422 msgid "Field does not exist in the target model" msgstr "" -#: importer/models.py:417 +#: importer/models.py:426 msgid "Selected field is read-only" msgstr "" -#: importer/models.py:422 importer/models.py:493 +#: importer/models.py:431 importer/models.py:502 msgid "Import Session" msgstr "" -#: importer/models.py:426 +#: importer/models.py:435 msgid "Field" msgstr "" -#: importer/models.py:428 +#: importer/models.py:437 msgid "Column" msgstr "" -#: importer/models.py:497 +#: importer/models.py:506 msgid "Row Index" msgstr "" -#: importer/models.py:500 +#: importer/models.py:509 msgid "Original row data" msgstr "" -#: importer/models.py:503 part/models.py:3951 -msgid "Data" -msgstr "" - -#: importer/models.py:505 machine/models.py:110 +#: importer/models.py:514 machine/models.py:110 msgid "Errors" msgstr "" -#: importer/models.py:507 part/api.py:873 +#: importer/models.py:516 part/api.py:857 msgid "Valid" msgstr "" @@ -5166,19 +5347,19 @@ msgstr "" msgid "Row has already been completed" msgstr "" -#: importer/status_codes.py:11 +#: importer/status_codes.py:13 msgid "Initializing" msgstr "" -#: importer/status_codes.py:12 +#: importer/status_codes.py:18 msgid "Mapping Columns" msgstr "" -#: importer/status_codes.py:13 +#: importer/status_codes.py:21 msgid "Importing Data" msgstr "" -#: importer/status_codes.py:16 +#: importer/status_codes.py:24 msgid "Processing Data" msgstr "" @@ -5202,52 +5383,52 @@ msgstr "" msgid "Value must be a valid dictionary object" msgstr "" -#: machine/machine_types/label_printer.py:215 +#: machine/machine_types/label_printer.py:216 msgid "Copies" msgstr "" -#: machine/machine_types/label_printer.py:216 +#: machine/machine_types/label_printer.py:217 msgid "Number of copies to print for each label" msgstr "" -#: machine/machine_types/label_printer.py:231 +#: machine/machine_types/label_printer.py:232 msgid "Connected" msgstr "" -#: machine/machine_types/label_printer.py:232 order/api.py:1410 -#: templates/js/translated/sales_order.js:1078 +#: machine/machine_types/label_printer.py:233 order/api.py:1532 +#: templates/js/translated/sales_order.js:1044 msgid "Unknown" msgstr "" -#: machine/machine_types/label_printer.py:233 +#: machine/machine_types/label_printer.py:234 msgid "Printing" msgstr "" -#: machine/machine_types/label_printer.py:234 +#: machine/machine_types/label_printer.py:235 msgid "No media" msgstr "" -#: machine/machine_types/label_printer.py:235 +#: machine/machine_types/label_printer.py:236 msgid "Paper jam" msgstr "" -#: machine/machine_types/label_printer.py:236 +#: machine/machine_types/label_printer.py:237 msgid "Disconnected" msgstr "" -#: machine/machine_types/label_printer.py:243 +#: machine/machine_types/label_printer.py:244 msgid "Label Printer" msgstr "" -#: machine/machine_types/label_printer.py:244 +#: machine/machine_types/label_printer.py:245 msgid "Directly print labels for various items." msgstr "" -#: machine/machine_types/label_printer.py:250 +#: machine/machine_types/label_printer.py:251 msgid "Printer Location" msgstr "" -#: machine/machine_types/label_printer.py:251 +#: machine/machine_types/label_printer.py:252 msgid "Scope the printer to a specific location" msgstr "" @@ -5307,79 +5488,75 @@ msgstr "" #: report/templates/report/inventree_purchase_order_report.html:31 #: report/templates/report/inventree_sales_order_report.html:31 #: templates/js/translated/order.js:352 -#: templates/js/translated/purchase_order.js:2195 -#: templates/js/translated/sales_order.js:1883 +#: templates/js/translated/purchase_order.js:2179 +#: templates/js/translated/sales_order.js:1864 msgid "Total Price" msgstr "" -#: order/api.py:80 order/api.py:151 order/serializers.py:93 -#: order/templates/order/order_base.html:123 -#: order/templates/order/return_order_base.html:116 -#: order/templates/order/sales_order_base.html:125 +#: order/api.py:78 order/api.py:149 order/serializers.py:124 +#: order/templates/order/order_base.html:124 +#: order/templates/order/return_order_base.html:117 +#: order/templates/order/sales_order_base.html:126 msgid "Order Status" msgstr "" -#: order/api.py:88 order/templates/order/order_base.html:111 -#: order/templates/order/return_order_base.html:104 -#: order/templates/order/sales_order_base.html:113 +#: order/api.py:86 order/templates/order/order_base.html:112 +#: order/templates/order/return_order_base.html:105 +#: order/templates/order/sales_order_base.html:114 msgid "Order Reference" msgstr "" -#: order/api.py:116 templates/js/translated/table_filters.js:93 +#: order/api.py:114 order/api.py:1022 +#: templates/js/translated/table_filters.js:93 #: templates/js/translated/table_filters.js:625 #: templates/js/translated/table_filters.js:651 #: templates/js/translated/table_filters.js:666 msgid "Outstanding" msgstr "" -#: order/api.py:132 +#: order/api.py:130 msgid "Has Project Code" msgstr "" -#: order/api.py:155 templates/js/translated/table_filters.js:201 +#: order/api.py:153 templates/js/translated/table_filters.js:201 #: templates/js/translated/table_filters.js:791 msgid "Has Pricing" msgstr "" -#: order/api.py:230 -msgid "No matching purchase order found" -msgstr "" - -#: order/api.py:425 order/api.py:763 order/models.py:1484 order/models.py:1598 -#: order/models.py:1649 order/models.py:1764 order/models.py:1923 -#: order/models.py:2383 order/models.py:2439 -#: templates/js/translated/sales_order.js:1524 +#: order/api.py:375 order/api.py:771 order/api.py:986 order/models.py:1500 +#: order/models.py:1614 order/models.py:1665 order/models.py:1793 +#: order/models.py:1956 order/models.py:2422 order/models.py:2478 +#: templates/js/translated/sales_order.js:1490 msgid "Order" msgstr "" -#: order/api.py:429 order/api.py:784 +#: order/api.py:379 order/api.py:809 msgid "Order Complete" msgstr "" -#: order/api.py:452 +#: order/api.py:430 msgid "Order Pending" msgstr "" -#: order/api.py:1404 order/models.py:379 order/models.py:1485 -#: order/models.py:1599 order/templates/order/order_base.html:9 -#: order/templates/order/order_base.html:18 +#: order/api.py:1526 order/models.py:386 order/models.py:1501 +#: order/models.py:1615 order/templates/order/order_base.html:10 +#: order/templates/order/order_base.html:19 #: report/templates/report/inventree_purchase_order_report.html:14 -#: stock/serializers.py:120 stock/templates/stock/item_base.html:176 +#: stock/serializers.py:121 stock/templates/stock/item_base.html:173 #: templates/email/overdue_purchase_order.html:15 #: templates/js/translated/part.js:1752 templates/js/translated/pricing.js:804 -#: templates/js/translated/purchase_order.js:168 -#: templates/js/translated/purchase_order.js:753 -#: templates/js/translated/purchase_order.js:1743 -#: templates/js/translated/stock.js:2345 templates/js/translated/stock.js:2991 +#: templates/js/translated/purchase_order.js:736 +#: templates/js/translated/purchase_order.js:1727 +#: templates/js/translated/stock.js:2346 templates/js/translated/stock.js:2992 msgid "Purchase Order" msgstr "" -#: order/api.py:1408 order/models.py:2091 order/models.py:2384 -#: order/models.py:2440 order/templates/order/return_order_base.html:9 -#: order/templates/order/return_order_base.html:28 +#: order/api.py:1530 order/models.py:2124 order/models.py:2423 +#: order/models.py:2479 order/templates/order/return_order_base.html:10 +#: order/templates/order/return_order_base.html:29 #: report/templates/report/inventree_return_order_report.html:13 #: templates/js/translated/return_order.js:280 -#: templates/js/translated/stock.js:3025 +#: templates/js/translated/stock.js:3026 msgid "Return Order" msgstr "" @@ -5387,751 +5564,782 @@ msgstr "" msgid "Total price for this order" msgstr "" -#: order/models.py:95 order/serializers.py:71 +#: order/models.py:95 order/serializers.py:73 msgid "Order Currency" msgstr "" -#: order/models.py:98 order/serializers.py:72 +#: order/models.py:98 order/serializers.py:74 msgid "Currency for this order (leave blank to use company default)" msgstr "" -#: order/models.py:246 +#: order/models.py:243 msgid "Contact does not match selected company" msgstr "" -#: order/models.py:289 +#: order/models.py:296 msgid "Order description (optional)" msgstr "" -#: order/models.py:298 +#: order/models.py:305 msgid "Select project code for this order" msgstr "" -#: order/models.py:302 order/models.py:1385 order/models.py:1817 +#: order/models.py:309 order/models.py:1402 order/models.py:1846 msgid "Link to external page" msgstr "" -#: order/models.py:310 +#: order/models.py:317 msgid "Expected date for order delivery. Order will be overdue after this date." msgstr "" -#: order/models.py:324 +#: order/models.py:331 msgid "Created By" msgstr "" -#: order/models.py:332 +#: order/models.py:339 msgid "User or group responsible for this order" msgstr "" -#: order/models.py:343 +#: order/models.py:350 msgid "Point of contact for this order" msgstr "" -#: order/models.py:353 +#: order/models.py:360 msgid "Company address for this order" msgstr "" -#: order/models.py:468 order/models.py:979 +#: order/models.py:480 order/models.py:1006 msgid "Order reference" msgstr "" -#: order/models.py:477 +#: order/models.py:489 msgid "Purchase order status" msgstr "" -#: order/models.py:492 +#: order/models.py:504 msgid "Company from which the items are being ordered" msgstr "" -#: order/models.py:503 order/templates/order/order_base.html:153 -#: templates/js/translated/purchase_order.js:1772 +#: order/models.py:515 order/templates/order/order_base.html:162 +#: templates/js/translated/purchase_order.js:1756 msgid "Supplier Reference" msgstr "" -#: order/models.py:504 +#: order/models.py:516 msgid "Supplier order reference code" msgstr "" -#: order/models.py:513 +#: order/models.py:525 msgid "received by" msgstr "" -#: order/models.py:519 order/models.py:2173 +#: order/models.py:531 order/models.py:2212 msgid "Issue Date" msgstr "" -#: order/models.py:520 order/models.py:2174 +#: order/models.py:532 order/models.py:2213 msgid "Date order was issued" msgstr "" -#: order/models.py:527 order/models.py:2181 +#: order/models.py:539 order/models.py:2220 msgid "Date order was completed" msgstr "" -#: order/models.py:571 +#: order/models.py:549 order/models.py:1552 +msgid "Destination for received items" +msgstr "" + +#: order/models.py:593 msgid "Part supplier must match PO supplier" msgstr "" -#: order/models.py:806 +#: order/models.py:828 msgid "Quantity must be a positive number" msgstr "" -#: order/models.py:991 +#: order/models.py:1018 msgid "Company to which the items are being sold" msgstr "" -#: order/models.py:1003 +#: order/models.py:1030 msgid "Sales order status" msgstr "" -#: order/models.py:1014 order/models.py:2166 +#: order/models.py:1041 order/models.py:2205 msgid "Customer Reference " msgstr "" -#: order/models.py:1015 order/models.py:2167 +#: order/models.py:1042 order/models.py:2206 msgid "Customer order reference code" msgstr "" -#: order/models.py:1019 order/models.py:1771 -#: templates/js/translated/sales_order.js:879 -#: templates/js/translated/sales_order.js:1060 +#: order/models.py:1046 order/models.py:1800 +#: templates/js/translated/sales_order.js:838 +#: templates/js/translated/sales_order.js:1026 msgid "Shipment Date" msgstr "" -#: order/models.py:1028 +#: order/models.py:1055 msgid "shipped by" msgstr "" -#: order/models.py:1077 +#: order/models.py:1094 msgid "Order is already complete" msgstr "" -#: order/models.py:1080 +#: order/models.py:1097 msgid "Order is already cancelled" msgstr "" -#: order/models.py:1084 +#: order/models.py:1101 msgid "Only an open order can be marked as complete" msgstr "" -#: order/models.py:1088 +#: order/models.py:1105 msgid "Order cannot be completed as there are incomplete shipments" msgstr "" -#: order/models.py:1093 +#: order/models.py:1110 msgid "Order cannot be completed as there are incomplete line items" msgstr "" -#: order/models.py:1357 +#: order/models.py:1374 msgid "Item quantity" msgstr "" -#: order/models.py:1374 +#: order/models.py:1391 msgid "Line item reference" msgstr "" -#: order/models.py:1381 +#: order/models.py:1398 msgid "Line item notes" msgstr "" -#: order/models.py:1393 +#: order/models.py:1410 msgid "Target date for this line item (leave blank to use the target date from the order)" msgstr "" -#: order/models.py:1414 +#: order/models.py:1431 msgid "Line item description (optional)" msgstr "" -#: order/models.py:1420 -msgid "Context" -msgstr "" - -#: order/models.py:1421 +#: order/models.py:1438 msgid "Additional context for this line" msgstr "" -#: order/models.py:1431 +#: order/models.py:1448 msgid "Unit price" msgstr "" -#: order/models.py:1445 +#: order/models.py:1462 msgid "Purchase Order Line Item" msgstr "" -#: order/models.py:1469 +#: order/models.py:1486 msgid "Supplier part must match supplier" msgstr "" -#: order/models.py:1476 -msgid "deleted" -msgstr "" - -#: order/models.py:1504 +#: order/models.py:1520 msgid "Supplier part" msgstr "" -#: order/models.py:1511 order/templates/order/order_base.html:201 +#: order/models.py:1527 order/templates/order/order_base.html:210 #: templates/js/translated/part.js:1876 templates/js/translated/part.js:1908 -#: templates/js/translated/purchase_order.js:1369 -#: templates/js/translated/purchase_order.js:2239 +#: templates/js/translated/purchase_order.js:1352 +#: templates/js/translated/purchase_order.js:2223 #: templates/js/translated/return_order.js:762 #: templates/js/translated/table_filters.js:119 #: templates/js/translated/table_filters.js:605 msgid "Received" msgstr "" -#: order/models.py:1512 +#: order/models.py:1528 msgid "Number of items received" msgstr "" -#: order/models.py:1520 stock/models.py:959 stock/serializers.py:610 -#: stock/templates/stock/item_base.html:183 -#: templates/js/translated/stock.js:2396 +#: order/models.py:1536 stock/models.py:1036 stock/serializers.py:637 +#: stock/templates/stock/item_base.html:180 +#: templates/js/translated/stock.js:2397 msgid "Purchase Price" msgstr "" -#: order/models.py:1521 +#: order/models.py:1537 msgid "Unit purchase price" msgstr "" -#: order/models.py:1536 -msgid "Where does the Purchaser want this item to be stored?" -msgstr "" - -#: order/models.py:1587 +#: order/models.py:1603 msgid "Purchase Order Extra Line" msgstr "" -#: order/models.py:1616 +#: order/models.py:1632 msgid "Sales Order Line Item" msgstr "" -#: order/models.py:1637 +#: order/models.py:1653 msgid "Virtual part cannot be assigned to a sales order" msgstr "" -#: order/models.py:1642 +#: order/models.py:1658 msgid "Only salable parts can be assigned to a sales order" msgstr "" -#: order/models.py:1668 part/templates/part/part_pricing.html:107 -#: part/templates/part/prices.html:139 templates/js/translated/pricing.js:957 +#: order/models.py:1684 part/templates/part/part_pricing.html:107 +#: part/templates/part/prices.html:139 templates/js/translated/pricing.js:955 msgid "Sale Price" msgstr "" -#: order/models.py:1669 +#: order/models.py:1685 msgid "Unit sale price" msgstr "" -#: order/models.py:1678 order/status_codes.py:48 -#: templates/js/translated/sales_order.js:1559 -#: templates/js/translated/sales_order.js:1680 -#: templates/js/translated/sales_order.js:1993 +#: order/models.py:1694 order/status_codes.py:50 +#: templates/js/translated/sales_order.js:1525 +#: templates/js/translated/sales_order.js:1661 +#: templates/js/translated/sales_order.js:1974 msgid "Shipped" msgstr "" -#: order/models.py:1679 +#: order/models.py:1695 msgid "Shipped quantity" msgstr "" -#: order/models.py:1751 +#: order/models.py:1769 msgid "Sales Order Shipment" msgstr "" -#: order/models.py:1772 +#: order/models.py:1801 msgid "Date of shipment" msgstr "" -#: order/models.py:1778 templates/js/translated/sales_order.js:1072 +#: order/models.py:1807 templates/js/translated/sales_order.js:1038 msgid "Delivery Date" msgstr "" -#: order/models.py:1779 +#: order/models.py:1808 msgid "Date of delivery of shipment" msgstr "" -#: order/models.py:1787 +#: order/models.py:1816 msgid "Checked By" msgstr "" -#: order/models.py:1788 +#: order/models.py:1817 msgid "User who checked this shipment" msgstr "" -#: order/models.py:1795 order/models.py:2018 order/serializers.py:1475 -#: order/serializers.py:1585 templates/js/translated/model_renderers.js:455 +#: order/models.py:1824 order/models.py:2051 order/serializers.py:1601 +#: order/serializers.py:1725 +#: report/templates/report/inventree_sales_order_shipment_report.html:14 +#: templates/js/translated/model_renderers.js:458 +#: templates/js/translated/sales_order.js:1615 msgid "Shipment" msgstr "" -#: order/models.py:1796 +#: order/models.py:1825 msgid "Shipment number" msgstr "" -#: order/models.py:1804 +#: order/models.py:1833 msgid "Tracking Number" msgstr "" -#: order/models.py:1805 +#: order/models.py:1834 msgid "Shipment tracking information" msgstr "" -#: order/models.py:1812 +#: order/models.py:1841 msgid "Invoice Number" msgstr "" -#: order/models.py:1813 +#: order/models.py:1842 msgid "Reference number for associated invoice" msgstr "" -#: order/models.py:1833 +#: order/models.py:1862 msgid "Shipment has already been sent" msgstr "" -#: order/models.py:1836 +#: order/models.py:1865 msgid "Shipment has no allocated stock items" msgstr "" -#: order/models.py:1912 +#: order/models.py:1945 msgid "Sales Order Extra Line" msgstr "" -#: order/models.py:1941 +#: order/models.py:1974 msgid "Sales Order Allocation" msgstr "" -#: order/models.py:1964 order/models.py:1966 +#: order/models.py:1997 order/models.py:1999 msgid "Stock item has not been assigned" msgstr "" -#: order/models.py:1973 +#: order/models.py:2006 msgid "Cannot allocate stock item to a line with a different part" msgstr "" -#: order/models.py:1976 +#: order/models.py:2009 msgid "Cannot allocate stock to a line without a part" msgstr "" -#: order/models.py:1979 +#: order/models.py:2012 msgid "Allocation quantity cannot exceed stock quantity" msgstr "" -#: order/models.py:1998 order/serializers.py:1345 +#: order/models.py:2031 order/serializers.py:1471 msgid "Quantity must be 1 for serialized stock item" msgstr "" -#: order/models.py:2001 +#: order/models.py:2034 msgid "Sales order does not match shipment" msgstr "" -#: order/models.py:2002 plugin/base/barcodes/api.py:524 +#: order/models.py:2035 plugin/base/barcodes/api.py:629 msgid "Shipment does not match sales order" msgstr "" -#: order/models.py:2010 +#: order/models.py:2043 msgid "Line" msgstr "" -#: order/models.py:2019 +#: order/models.py:2052 msgid "Sales order shipment reference" msgstr "" -#: order/models.py:2032 order/models.py:2391 +#: order/models.py:2065 order/models.py:2430 #: templates/js/translated/return_order.js:720 msgid "Item" msgstr "" -#: order/models.py:2033 +#: order/models.py:2066 msgid "Select stock item to allocate" msgstr "" -#: order/models.py:2042 +#: order/models.py:2075 msgid "Enter stock allocation quantity" msgstr "" -#: order/models.py:2136 +#: order/models.py:2175 msgid "Return Order reference" msgstr "" -#: order/models.py:2148 +#: order/models.py:2187 msgid "Company from which items are being returned" msgstr "" -#: order/models.py:2160 +#: order/models.py:2199 msgid "Return order status" msgstr "" -#: order/models.py:2362 +#: order/models.py:2401 msgid "Return Order Line Item" msgstr "" -#: order/models.py:2376 +#: order/models.py:2415 msgid "Only serialized items can be assigned to a Return Order" msgstr "" -#: order/models.py:2392 +#: order/models.py:2431 msgid "Select item to return from customer" msgstr "" -#: order/models.py:2398 +#: order/models.py:2437 msgid "Received Date" msgstr "" -#: order/models.py:2399 +#: order/models.py:2438 msgid "The date this this return item was received" msgstr "" -#: order/models.py:2410 templates/js/translated/return_order.js:731 +#: order/models.py:2449 templates/js/translated/return_order.js:731 #: templates/js/translated/table_filters.js:122 msgid "Outcome" msgstr "" -#: order/models.py:2411 +#: order/models.py:2450 msgid "Outcome for this line item" msgstr "" -#: order/models.py:2418 +#: order/models.py:2457 msgid "Cost associated with return or repair for this line item" msgstr "" -#: order/models.py:2428 +#: order/models.py:2467 msgid "Return Order Extra Line" msgstr "" -#: order/serializers.py:86 +#: order/serializers.py:87 +msgid "Order ID" +msgstr "" + +#: order/serializers.py:87 +msgid "ID of the order to duplicate" +msgstr "" + +#: order/serializers.py:93 +msgid "Copy Lines" +msgstr "Copiar linhas" + +#: order/serializers.py:94 +msgid "Copy line items from the original order" +msgstr "" + +#: order/serializers.py:100 +msgid "Copy Extra Lines" +msgstr "" + +#: order/serializers.py:101 +msgid "Copy extra line items from the original order" +msgstr "" + +#: order/serializers.py:117 msgid "Completed Lines" msgstr "" -#: order/serializers.py:283 stock/admin.py:195 +#: order/serializers.py:161 +msgid "Duplicate Order" +msgstr "Duplicar Pedido" + +#: order/serializers.py:162 +msgid "Specify options for duplicating this order" +msgstr "" + +#: order/serializers.py:234 +msgid "Invalid order ID" +msgstr "ID do pedido inválido" + +#: order/serializers.py:374 stock/admin.py:196 msgid "Supplier Name" msgstr "" -#: order/serializers.py:331 +#: order/serializers.py:416 msgid "Order cannot be cancelled" msgstr "" -#: order/serializers.py:346 order/serializers.py:1366 +#: order/serializers.py:431 order/serializers.py:1492 msgid "Allow order to be closed with incomplete line items" msgstr "" -#: order/serializers.py:356 order/serializers.py:1376 +#: order/serializers.py:441 order/serializers.py:1502 msgid "Order has incomplete line items" msgstr "" -#: order/serializers.py:506 +#: order/serializers.py:591 msgid "Order is not open" msgstr "" -#: order/serializers.py:527 +#: order/serializers.py:612 msgid "Auto Pricing" msgstr "" -#: order/serializers.py:529 +#: order/serializers.py:614 msgid "Automatically calculate purchase price based on supplier part data" msgstr "" -#: order/serializers.py:539 +#: order/serializers.py:624 msgid "Purchase price currency" msgstr "" -#: order/serializers.py:545 +#: order/serializers.py:630 msgid "Merge Items" msgstr "" -#: order/serializers.py:547 +#: order/serializers.py:632 msgid "Merge items with the same part, destination and target date into one line item" msgstr "" -#: order/serializers.py:560 part/models.py:1033 +#: order/serializers.py:645 part/models.py:1094 part/serializers.py:387 msgid "Internal Part Number" msgstr "" -#: order/serializers.py:568 +#: order/serializers.py:653 msgid "Internal Part Name" msgstr "" -#: order/serializers.py:584 +#: order/serializers.py:669 msgid "Supplier part must be specified" msgstr "" -#: order/serializers.py:587 +#: order/serializers.py:672 msgid "Purchase order must be specified" msgstr "" -#: order/serializers.py:595 +#: order/serializers.py:680 msgid "Supplier must match purchase order" msgstr "" -#: order/serializers.py:596 +#: order/serializers.py:681 msgid "Purchase order must match supplier" msgstr "" -#: order/serializers.py:639 order/serializers.py:1446 +#: order/serializers.py:724 order/serializers.py:1572 msgid "Line Item" msgstr "" -#: order/serializers.py:645 +#: order/serializers.py:730 msgid "Line item does not match purchase order" msgstr "" -#: order/serializers.py:655 order/serializers.py:779 order/serializers.py:1782 +#: order/serializers.py:740 order/serializers.py:881 order/serializers.py:1934 msgid "Select destination location for received items" msgstr "" -#: order/serializers.py:671 templates/js/translated/purchase_order.js:1130 +#: order/serializers.py:756 templates/js/translated/purchase_order.js:1113 #: templates/js/translated/stock.js:1200 msgid "Enter batch code for incoming stock items" msgstr "" -#: order/serializers.py:679 templates/js/translated/purchase_order.js:1155 +#: order/serializers.py:764 templates/js/translated/purchase_order.js:1138 msgid "Enter serial numbers for incoming stock items" msgstr "" -#: order/serializers.py:691 +#: order/serializers.py:776 msgid "Override packaging information for incoming stock items" msgstr "" -#: order/serializers.py:699 +#: order/serializers.py:784 msgid "Additional note for incoming stock items" msgstr "" -#: order/serializers.py:706 templates/js/translated/barcode.js:52 +#: order/serializers.py:791 templates/js/translated/barcode.js:52 msgid "Barcode" msgstr "" -#: order/serializers.py:707 +#: order/serializers.py:792 msgid "Scanned barcode" msgstr "" -#: order/serializers.py:723 +#: order/serializers.py:808 msgid "Barcode is already in use" msgstr "" -#: order/serializers.py:747 +#: order/serializers.py:831 msgid "An integer quantity must be provided for trackable parts" msgstr "" -#: order/serializers.py:795 order/serializers.py:1798 +#: order/serializers.py:898 order/serializers.py:1950 msgid "Line items must be provided" msgstr "" -#: order/serializers.py:811 +#: order/serializers.py:914 msgid "Destination location must be specified" msgstr "" -#: order/serializers.py:822 +#: order/serializers.py:925 msgid "Supplied barcode values must be unique" msgstr "" -#: order/serializers.py:1187 +#: order/serializers.py:1221 msgid "Sale price currency" msgstr "" -#: order/serializers.py:1248 +#: order/serializers.py:1260 +msgid "Allocated Items" +msgstr "" + +#: order/serializers.py:1374 msgid "No shipment details provided" msgstr "" -#: order/serializers.py:1309 order/serializers.py:1455 +#: order/serializers.py:1435 order/serializers.py:1581 msgid "Line item is not associated with this order" msgstr "" -#: order/serializers.py:1328 +#: order/serializers.py:1454 msgid "Quantity must be positive" msgstr "" -#: order/serializers.py:1465 +#: order/serializers.py:1591 msgid "Enter serial numbers to allocate" msgstr "" -#: order/serializers.py:1487 order/serializers.py:1593 +#: order/serializers.py:1613 order/serializers.py:1733 msgid "Shipment has already been shipped" msgstr "" -#: order/serializers.py:1490 order/serializers.py:1596 +#: order/serializers.py:1616 order/serializers.py:1736 msgid "Shipment is not associated with this order" msgstr "" -#: order/serializers.py:1537 +#: order/serializers.py:1671 msgid "No match found for the following serial numbers" msgstr "" -#: order/serializers.py:1544 -msgid "The following serial numbers are already allocated" +#: order/serializers.py:1678 +msgid "The following serial numbers are unavailable" msgstr "" -#: order/serializers.py:1752 +#: order/serializers.py:1904 msgid "Return order line item" msgstr "" -#: order/serializers.py:1758 +#: order/serializers.py:1910 msgid "Line item does not match return order" msgstr "" -#: order/serializers.py:1761 +#: order/serializers.py:1913 msgid "Line item has already been received" msgstr "" -#: order/serializers.py:1790 +#: order/serializers.py:1942 msgid "Items can only be received against orders which are in progress" msgstr "" -#: order/serializers.py:1873 +#: order/serializers.py:2025 msgid "Line price currency" msgstr "" -#: order/status_codes.py:17 order/status_codes.py:52 stock/status_codes.py:16 +#: order/status_codes.py:17 order/status_codes.py:54 stock/status_codes.py:16 msgid "Lost" msgstr "" -#: order/status_codes.py:18 order/status_codes.py:53 stock/status_codes.py:22 +#: order/status_codes.py:18 order/status_codes.py:55 stock/status_codes.py:24 msgid "Returned" msgstr "" -#: order/status_codes.py:45 order/status_codes.py:77 +#: order/status_codes.py:47 order/status_codes.py:79 msgid "In Progress" msgstr "" -#: order/status_codes.py:101 +#: order/status_codes.py:105 msgid "Return" msgstr "" -#: order/status_codes.py:104 +#: order/status_codes.py:108 msgid "Repair" msgstr "" -#: order/status_codes.py:107 +#: order/status_codes.py:111 msgid "Replace" msgstr "" -#: order/status_codes.py:110 +#: order/status_codes.py:114 msgid "Refund" msgstr "" -#: order/status_codes.py:113 +#: order/status_codes.py:117 msgid "Reject" msgstr "" -#: order/tasks.py:25 +#: order/tasks.py:30 msgid "Overdue Purchase Order" msgstr "" -#: order/tasks.py:30 +#: order/tasks.py:35 #, python-brace-format msgid "Purchase order {po} is now overdue" msgstr "" -#: order/tasks.py:75 +#: order/tasks.py:80 msgid "Overdue Sales Order" msgstr "" -#: order/tasks.py:80 +#: order/tasks.py:85 #, python-brace-format msgid "Sales order {so} is now overdue" msgstr "" -#: order/templates/order/order_base.html:51 +#: order/templates/order/order_base.html:52 msgid "Print purchase order report" msgstr "" -#: order/templates/order/order_base.html:53 -#: order/templates/order/return_order_base.html:62 -#: order/templates/order/sales_order_base.html:62 +#: order/templates/order/order_base.html:54 +#: order/templates/order/return_order_base.html:63 +#: order/templates/order/sales_order_base.html:63 msgid "Export order to file" msgstr "" -#: order/templates/order/order_base.html:59 -#: order/templates/order/return_order_base.html:72 -#: order/templates/order/sales_order_base.html:71 +#: order/templates/order/order_base.html:60 +#: order/templates/order/return_order_base.html:73 +#: order/templates/order/sales_order_base.html:72 msgid "Order actions" msgstr "" -#: order/templates/order/order_base.html:64 -#: order/templates/order/return_order_base.html:76 -#: order/templates/order/sales_order_base.html:75 +#: order/templates/order/order_base.html:65 +#: order/templates/order/return_order_base.html:77 +#: order/templates/order/sales_order_base.html:76 msgid "Edit order" msgstr "" -#: order/templates/order/order_base.html:68 +#: order/templates/order/order_base.html:69 msgid "Duplicate order" msgstr "" -#: order/templates/order/order_base.html:73 -#: order/templates/order/return_order_base.html:78 -#: order/templates/order/sales_order_base.html:77 +#: order/templates/order/order_base.html:74 +#: order/templates/order/return_order_base.html:79 +#: order/templates/order/sales_order_base.html:78 msgid "Hold order" msgstr "" -#: order/templates/order/order_base.html:78 -#: order/templates/order/return_order_base.html:81 -#: order/templates/order/sales_order_base.html:80 +#: order/templates/order/order_base.html:79 +#: order/templates/order/return_order_base.html:82 +#: order/templates/order/sales_order_base.html:81 msgid "Cancel order" msgstr "" -#: order/templates/order/order_base.html:84 #: order/templates/order/order_base.html:85 -#: order/templates/order/return_order_base.html:85 +#: order/templates/order/order_base.html:86 #: order/templates/order/return_order_base.html:86 -#: order/templates/order/sales_order_base.html:86 +#: order/templates/order/return_order_base.html:87 #: order/templates/order/sales_order_base.html:87 +#: order/templates/order/sales_order_base.html:88 msgid "Issue Order" msgstr "" -#: order/templates/order/order_base.html:88 -#: order/templates/order/return_order_base.html:89 -msgid "Mark order as complete" -msgstr "" - #: order/templates/order/order_base.html:89 #: order/templates/order/return_order_base.html:90 -#: order/templates/order/sales_order_base.html:100 +msgid "Mark order as complete" +msgstr "" + +#: order/templates/order/order_base.html:90 +#: order/templates/order/return_order_base.html:91 +#: order/templates/order/sales_order_base.html:101 msgid "Complete Order" msgstr "" -#: order/templates/order/order_base.html:96 +#: order/templates/order/order_base.html:97 msgid "Supplier part thumbnail" msgstr "" -#: order/templates/order/order_base.html:116 -#: order/templates/order/return_order_base.html:109 -#: order/templates/order/sales_order_base.html:118 +#: order/templates/order/order_base.html:117 +#: order/templates/order/return_order_base.html:110 +#: order/templates/order/sales_order_base.html:119 msgid "Order Description" msgstr "" -#: order/templates/order/order_base.html:146 -msgid "No suppplier information available" -msgstr "" - -#: order/templates/order/order_base.html:159 -#: order/templates/order/sales_order_base.html:164 +#: order/templates/order/order_base.html:168 +#: order/templates/order/sales_order_base.html:165 msgid "Completed Line Items" msgstr "" -#: order/templates/order/order_base.html:165 -#: order/templates/order/sales_order_base.html:170 -#: order/templates/order/sales_order_base.html:180 +#: order/templates/order/order_base.html:174 +#: order/templates/order/sales_order_base.html:171 +#: order/templates/order/sales_order_base.html:181 msgid "Incomplete" msgstr "" -#: order/templates/order/order_base.html:184 -#: order/templates/order/return_order_base.html:160 +#: order/templates/order/order_base.html:193 +#: order/templates/order/return_order_base.html:161 #: report/templates/report/inventree_build_order_report.html:121 msgid "Issued" msgstr "" -#: order/templates/order/order_base.html:229 +#: order/templates/order/order_base.html:238 msgid "Total cost" msgstr "" -#: order/templates/order/order_base.html:233 -#: order/templates/order/return_order_base.html:202 -#: order/templates/order/sales_order_base.html:246 +#: order/templates/order/order_base.html:242 +#: order/templates/order/return_order_base.html:203 +#: order/templates/order/sales_order_base.html:247 msgid "Total cost could not be calculated" msgstr "" -#: order/templates/order/order_base.html:335 +#: order/templates/order/order_base.html:344 msgid "Purchase Order QR Code" msgstr "" -#: order/templates/order/order_base.html:347 +#: order/templates/order/order_base.html:356 msgid "Link Barcode to Purchase Order" msgstr "" @@ -6184,12 +6392,12 @@ msgstr "" #: part/templates/part/import_wizard/ajax_match_references.html:42 #: part/templates/part/import_wizard/match_fields.html:71 #: part/templates/part/import_wizard/match_references.html:49 -#: templates/js/translated/bom.js:133 templates/js/translated/build.js:530 -#: templates/js/translated/build.js:1802 -#: templates/js/translated/purchase_order.js:696 -#: templates/js/translated/purchase_order.js:1288 +#: templates/js/translated/bom.js:133 templates/js/translated/build.js:533 +#: templates/js/translated/build.js:1805 +#: templates/js/translated/purchase_order.js:679 +#: templates/js/translated/purchase_order.js:1271 #: templates/js/translated/return_order.js:505 -#: templates/js/translated/sales_order.js:1145 +#: templates/js/translated/sales_order.js:1111 #: templates/js/translated/stock.js:720 templates/js/translated/stock.js:889 #: templates/patterns/wizard/match_fields.html:70 msgid "Remove row" @@ -6242,7 +6450,7 @@ msgstr "" #: order/templates/order/purchase_order_detail.html:27 #: order/templates/order/return_order_detail.html:24 #: order/templates/order/sales_order_detail.html:24 -#: templates/js/translated/purchase_order.js:414 +#: templates/js/translated/purchase_order.js:397 #: templates/js/translated/return_order.js:458 #: templates/js/translated/sales_order.js:237 msgid "Add Line Item" @@ -6277,45 +6485,45 @@ msgstr "" msgid "Order Notes" msgstr "" -#: order/templates/order/return_order_base.html:18 -#: order/templates/order/sales_order_base.html:18 +#: order/templates/order/return_order_base.html:19 +#: order/templates/order/sales_order_base.html:19 msgid "Customer logo thumbnail" msgstr "" -#: order/templates/order/return_order_base.html:60 +#: order/templates/order/return_order_base.html:61 msgid "Print return order report" msgstr "" -#: order/templates/order/return_order_base.html:64 -#: order/templates/order/sales_order_base.html:64 +#: order/templates/order/return_order_base.html:65 +#: order/templates/order/sales_order_base.html:65 msgid "Print packing list" msgstr "" -#: order/templates/order/return_order_base.html:141 -#: order/templates/order/sales_order_base.html:158 +#: order/templates/order/return_order_base.html:142 +#: order/templates/order/sales_order_base.html:159 #: templates/js/translated/return_order.js:308 -#: templates/js/translated/sales_order.js:833 +#: templates/js/translated/sales_order.js:792 msgid "Customer Reference" msgstr "" -#: order/templates/order/return_order_base.html:198 -#: order/templates/order/sales_order_base.html:242 +#: order/templates/order/return_order_base.html:199 +#: order/templates/order/sales_order_base.html:243 #: part/templates/part/part_pricing.html:32 #: part/templates/part/part_pricing.html:58 #: part/templates/part/part_pricing.html:99 #: part/templates/part/part_pricing.html:114 #: templates/js/translated/part.js:1079 -#: templates/js/translated/purchase_order.js:1822 +#: templates/js/translated/purchase_order.js:1806 #: templates/js/translated/return_order.js:380 -#: templates/js/translated/sales_order.js:891 +#: templates/js/translated/sales_order.js:850 msgid "Total Cost" msgstr "" -#: order/templates/order/return_order_base.html:273 +#: order/templates/order/return_order_base.html:274 msgid "Return Order QR Code" msgstr "" -#: order/templates/order/return_order_base.html:285 +#: order/templates/order/return_order_base.html:286 msgid "Link Barcode to Return Order" msgstr "" @@ -6323,40 +6531,40 @@ msgstr "" msgid "Order Details" msgstr "" -#: order/templates/order/sales_order_base.html:60 +#: order/templates/order/sales_order_base.html:61 msgid "Print sales order report" msgstr "" -#: order/templates/order/sales_order_base.html:91 #: order/templates/order/sales_order_base.html:92 +#: order/templates/order/sales_order_base.html:93 msgid "Ship Items" msgstr "" -#: order/templates/order/sales_order_base.html:95 #: order/templates/order/sales_order_base.html:96 +#: order/templates/order/sales_order_base.html:97 msgid "Mark As Shipped" msgstr "" -#: order/templates/order/sales_order_base.html:99 -#: templates/js/translated/sales_order.js:536 +#: order/templates/order/sales_order_base.html:100 +#: templates/js/translated/sales_order.js:495 msgid "Complete Sales Order" msgstr "" -#: order/templates/order/sales_order_base.html:138 +#: order/templates/order/sales_order_base.html:139 msgid "This Sales Order has not been fully allocated" msgstr "" -#: order/templates/order/sales_order_base.html:176 +#: order/templates/order/sales_order_base.html:177 #: order/templates/order/sales_order_detail.html:99 #: order/templates/order/so_sidebar.html:11 msgid "Completed Shipments" msgstr "" -#: order/templates/order/sales_order_base.html:339 +#: order/templates/order/sales_order_base.html:340 msgid "Sales Order QR Code" msgstr "" -#: order/templates/order/sales_order_base.html:351 +#: order/templates/order/sales_order_base.html:352 msgid "Link Barcode to Sales Order" msgstr "" @@ -6370,7 +6578,7 @@ msgid "Pending Shipments" msgstr "" #: order/templates/order/sales_order_detail.html:71 -#: templates/js/translated/bom.js:1277 templates/js/translated/build.js:1063 +#: templates/js/translated/bom.js:1277 templates/js/translated/build.js:1066 #: templates/js/translated/filters.js:299 msgid "Actions" msgstr "" @@ -6383,39 +6591,40 @@ msgstr "" msgid "Match Supplier Parts" msgstr "" -#: order/views.py:406 +#: order/views.py:407 msgid "Sales order not found" msgstr "" -#: order/views.py:412 +#: order/views.py:413 msgid "Price not found" msgstr "" -#: order/views.py:415 +#: order/views.py:416 #, python-brace-format msgid "Updated {part} unit-price to {price}" msgstr "" -#: order/views.py:421 +#: order/views.py:422 #, python-brace-format msgid "Updated {part} unit-price to {price} and quantity to {qty}" msgstr "" -#: part/admin.py:48 part/models.py:1032 part/templates/part/part_base.html:269 +#: part/admin.py:48 part/models.py:1093 part/serializers.py:939 +#: part/templates/part/part_base.html:277 #: report/templates/report/inventree_stock_location_report.html:103 #: templates/js/translated/part.js:1233 templates/js/translated/part.js:2347 -#: templates/js/translated/stock.js:2121 +#: templates/js/translated/stock.js:2122 msgid "IPN" msgstr "" -#: part/admin.py:50 part/models.py:1041 part/templates/part/part_base.html:286 +#: part/admin.py:50 part/models.py:1102 part/templates/part/part_base.html:294 #: report/models.py:161 templates/js/translated/part.js:1238 #: templates/js/translated/part.js:2353 msgid "Revision" msgstr "" -#: part/admin.py:53 part/admin.py:319 part/models.py:1014 -#: part/templates/part/category.html:91 part/templates/part/part_base.html:307 +#: part/admin.py:53 part/admin.py:319 part/models.py:1075 +#: part/templates/part/category.html:91 part/templates/part/part_base.html:315 msgid "Keywords" msgstr "" @@ -6427,7 +6636,7 @@ msgstr "" msgid "Category ID" msgstr "" -#: part/admin.py:67 part/admin.py:304 part/serializers.py:880 +#: part/admin.py:67 part/admin.py:304 part/serializers.py:924 #: part/stocktake.py:222 msgid "Category Name" msgstr "" @@ -6440,11 +6649,11 @@ msgstr "" msgid "Default Supplier ID" msgstr "" -#: part/admin.py:81 part/models.py:1000 part/templates/part/part_base.html:177 +#: part/admin.py:81 part/models.py:1061 part/templates/part/part_base.html:178 msgid "Variant Of" msgstr "" -#: part/admin.py:84 part/models.py:1138 part/templates/part/part_base.html:203 +#: part/admin.py:84 part/models.py:1199 part/templates/part/part_base.html:204 msgid "Minimum Stock" msgstr "" @@ -6452,23 +6661,23 @@ msgstr "" msgid "Used In" msgstr "" -#: part/admin.py:150 part/serializers.py:897 -#: part/templates/part/part_base.html:241 stock/admin.py:235 +#: part/admin.py:150 part/serializers.py:949 +#: part/templates/part/part_base.html:249 stock/admin.py:236 #: templates/js/translated/part.js:717 templates/js/translated/part.js:2159 msgid "Building" msgstr "" -#: part/admin.py:155 part/models.py:3202 part/models.py:3216 +#: part/admin.py:155 part/models.py:3253 part/models.py:3267 #: templates/js/translated/part.js:976 msgid "Minimum Cost" msgstr "" -#: part/admin.py:158 part/models.py:3209 part/models.py:3223 +#: part/admin.py:158 part/models.py:3260 part/models.py:3274 #: templates/js/translated/part.js:986 msgid "Maximum Cost" msgstr "" -#: part/admin.py:308 part/admin.py:387 stock/admin.py:57 stock/admin.py:215 +#: part/admin.py:308 part/admin.py:387 stock/admin.py:57 stock/admin.py:216 msgid "Parent ID" msgstr "" @@ -6481,8 +6690,8 @@ msgstr "" msgid "Category Path" msgstr "" -#: part/admin.py:325 part/models.py:425 part/serializers.py:130 -#: part/serializers.py:290 part/serializers.py:415 +#: part/admin.py:325 part/models.py:420 part/serializers.py:130 +#: part/serializers.py:323 part/serializers.py:459 #: part/templates/part/cat_link.html:3 part/templates/part/category.html:20 #: part/templates/part/category.html:138 part/templates/part/category.html:158 #: part/templates/part/category_sidebar.html:9 @@ -6509,15 +6718,15 @@ msgstr "" msgid "Part Revision" msgstr "" -#: part/admin.py:418 part/serializers.py:1346 +#: part/admin.py:418 part/serializers.py:1400 #: templates/js/translated/pricing.js:358 -#: templates/js/translated/pricing.js:1024 +#: templates/js/translated/pricing.js:1022 msgid "Minimum Price" msgstr "" -#: part/admin.py:423 part/serializers.py:1361 +#: part/admin.py:423 part/serializers.py:1415 #: templates/js/translated/pricing.js:353 -#: templates/js/translated/pricing.js:1032 +#: templates/js/translated/pricing.js:1030 msgid "Maximum Price" msgstr "" @@ -6545,94 +6754,98 @@ msgstr "" msgid "Filter by top-level categories" msgstr "" +#: part/api.py:156 stock/api.py:343 +msgid "Cascade" +msgstr "" + #: part/api.py:158 msgid "Include sub-categories in filtered results" msgstr "" -#: part/api.py:179 templates/js/translated/part.js:311 +#: part/api.py:178 templates/js/translated/part.js:311 msgid "Parent" msgstr "" -#: part/api.py:181 +#: part/api.py:180 msgid "Filter by parent category" msgstr "" -#: part/api.py:214 +#: part/api.py:213 msgid "Exclude Tree" msgstr "" -#: part/api.py:216 +#: part/api.py:215 msgid "Exclude sub-categories under the specified category" msgstr "" -#: part/api.py:441 +#: part/api.py:440 msgid "Has Results" msgstr "" -#: part/api.py:608 +#: part/api.py:604 msgid "Incoming Purchase Order" msgstr "" -#: part/api.py:626 +#: part/api.py:618 msgid "Outgoing Sales Order" msgstr "" -#: part/api.py:642 +#: part/api.py:630 msgid "Stock produced by Build Order" msgstr "" -#: part/api.py:726 +#: part/api.py:712 msgid "Stock required for Build Order" msgstr "" -#: part/api.py:874 +#: part/api.py:858 msgid "Validate entire Bill of Materials" msgstr "" -#: part/api.py:880 +#: part/api.py:864 msgid "This option must be selected" msgstr "" -#: part/api.py:916 +#: part/api.py:900 msgid "Is Revision" msgstr "" -#: part/api.py:926 +#: part/api.py:910 msgid "Has Revisions" msgstr "" -#: part/api.py:1117 +#: part/api.py:1101 msgid "BOM Valid" msgstr "" -#: part/api.py:1523 part/models.py:1024 part/models.py:3489 part/models.py:4046 -#: part/serializers.py:430 part/serializers.py:1202 -#: part/templates/part/part_base.html:260 stock/api.py:781 +#: part/api.py:1509 part/models.py:1085 part/models.py:3540 part/models.py:4104 +#: part/serializers.py:474 part/serializers.py:1255 +#: part/templates/part/part_base.html:268 stock/api.py:781 #: templates/InvenTree/settings/settings_staff_js.html:300 #: templates/js/translated/notification.js:60 #: templates/js/translated/part.js:2383 msgid "Category" msgstr "" -#: part/api.py:1761 +#: part/api.py:1750 msgid "Assembly part is testable" msgstr "" -#: part/api.py:1770 +#: part/api.py:1759 msgid "Component part is testable" msgstr "" -#: part/api.py:1821 +#: part/api.py:1810 msgid "Uses" msgstr "" -#: part/bom.py:178 part/models.py:107 part/models.py:1077 -#: part/templates/part/category.html:113 part/templates/part/part_base.html:376 +#: part/bom.py:183 part/models.py:109 part/models.py:1138 +#: part/templates/part/category.html:113 part/templates/part/part_base.html:384 #: templates/js/translated/part.js:2397 msgid "Default Location" msgstr "" -#: part/bom.py:179 part/serializers.py:905 +#: part/bom.py:184 part/serializers.py:957 #: templates/email/low_stock_notification.html:16 msgid "Total Stock" msgstr "" @@ -6641,789 +6854,789 @@ msgstr "" msgid "Input quantity for price calculation" msgstr "" -#: part/models.py:88 part/models.py:4047 part/templates/part/category.html:16 +#: part/models.py:90 part/models.py:4105 part/templates/part/category.html:16 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "" -#: part/models.py:89 part/templates/part/category.html:133 +#: part/models.py:91 part/templates/part/category.html:133 #: templates/InvenTree/search.html:97 templates/js/translated/search.js:158 #: users/models.py:202 msgid "Part Categories" msgstr "" -#: part/models.py:108 +#: part/models.py:110 msgid "Default location for parts in this category" msgstr "" -#: part/models.py:113 stock/models.py:187 templates/js/translated/part.js:2828 -#: templates/js/translated/stock.js:2856 +#: part/models.py:115 stock/models.py:193 templates/js/translated/part.js:2828 +#: templates/js/translated/stock.js:2857 #: templates/js/translated/table_filters.js:246 #: templates/js/translated/table_filters.js:290 msgid "Structural" msgstr "" -#: part/models.py:115 +#: part/models.py:117 msgid "Parts may not be directly assigned to a structural category, but may be assigned to child categories." msgstr "" -#: part/models.py:124 +#: part/models.py:126 msgid "Default keywords" msgstr "" -#: part/models.py:125 +#: part/models.py:127 msgid "Default keywords for parts in this category" msgstr "" -#: part/models.py:131 stock/models.py:90 stock/models.py:169 +#: part/models.py:133 stock/models.py:96 stock/models.py:175 #: templates/InvenTree/settings/settings_staff_js.html:445 msgid "Icon" msgstr "" -#: part/models.py:132 part/serializers.py:143 part/serializers.py:161 -#: stock/models.py:170 +#: part/models.py:134 part/serializers.py:143 part/serializers.py:161 +#: stock/models.py:176 msgid "Icon (optional)" msgstr "" -#: part/models.py:178 +#: part/models.py:180 msgid "You cannot make this part category structural because some parts are already assigned to it!" msgstr "" -#: part/models.py:519 +#: part/models.py:514 msgid "Cannot delete this part as it is locked" msgstr "" -#: part/models.py:522 +#: part/models.py:517 msgid "Cannot delete this part as it is still active" msgstr "" -#: part/models.py:527 +#: part/models.py:522 msgid "Cannot delete this part as it is used in an assembly" msgstr "" -#: part/models.py:565 +#: part/models.py:560 msgid "Invalid choice for parent part" msgstr "" -#: part/models.py:613 part/models.py:620 +#: part/models.py:608 part/models.py:615 #, python-brace-format msgid "Part '{self}' cannot be used in BOM for '{parent}' (recursive)" msgstr "" -#: part/models.py:632 +#: part/models.py:627 #, python-brace-format msgid "Part '{parent}' is used in BOM for '{self}' (recursive)" msgstr "" -#: part/models.py:695 +#: part/models.py:694 #, python-brace-format msgid "IPN must match regex pattern {pattern}" msgstr "" -#: part/models.py:703 +#: part/models.py:702 msgid "Part cannot be a revision of itself" msgstr "" -#: part/models.py:710 +#: part/models.py:709 msgid "Cannot make a revision of a part which is already a revision" msgstr "" -#: part/models.py:717 +#: part/models.py:716 msgid "Revision code must be specified" msgstr "" -#: part/models.py:724 +#: part/models.py:723 msgid "Revisions are only allowed for assembly parts" msgstr "" -#: part/models.py:731 +#: part/models.py:730 msgid "Cannot make a revision of a template part" msgstr "" -#: part/models.py:737 +#: part/models.py:736 msgid "Parent part must point to the same template" msgstr "" -#: part/models.py:816 +#: part/models.py:832 msgid "Stock item with this serial number already exists" msgstr "" -#: part/models.py:917 +#: part/models.py:976 msgid "Duplicate IPN not allowed in part settings" msgstr "" -#: part/models.py:926 +#: part/models.py:988 msgid "Duplicate part revision already exists." msgstr "" -#: part/models.py:936 +#: part/models.py:997 msgid "Part with this Name, IPN and Revision already exists." msgstr "" -#: part/models.py:951 +#: part/models.py:1012 msgid "Parts cannot be assigned to structural part categories!" msgstr "" -#: part/models.py:983 part/models.py:4102 +#: part/models.py:1044 part/models.py:4160 msgid "Part name" msgstr "" -#: part/models.py:988 +#: part/models.py:1049 msgid "Is Template" msgstr "" -#: part/models.py:989 +#: part/models.py:1050 msgid "Is this part a template part?" msgstr "" -#: part/models.py:999 +#: part/models.py:1060 msgid "Is this part a variant of another part?" msgstr "" -#: part/models.py:1007 +#: part/models.py:1068 msgid "Part description (optional)" msgstr "" -#: part/models.py:1015 +#: part/models.py:1076 msgid "Part keywords to improve visibility in search results" msgstr "" -#: part/models.py:1025 +#: part/models.py:1086 msgid "Part category" msgstr "" -#: part/models.py:1040 +#: part/models.py:1101 msgid "Part revision or version number" msgstr "" -#: part/models.py:1050 +#: part/models.py:1111 msgid "Is this part a revision of another part?" msgstr "" -#: part/models.py:1051 part/templates/part/part_base.html:277 +#: part/models.py:1112 part/templates/part/part_base.html:285 msgid "Revision Of" msgstr "" -#: part/models.py:1075 +#: part/models.py:1136 msgid "Where is this item normally stored?" msgstr "" -#: part/models.py:1121 part/templates/part/part_base.html:385 +#: part/models.py:1182 part/templates/part/part_base.html:393 msgid "Default Supplier" msgstr "" -#: part/models.py:1122 +#: part/models.py:1183 msgid "Default supplier part" msgstr "" -#: part/models.py:1129 +#: part/models.py:1190 msgid "Default Expiry" msgstr "" -#: part/models.py:1130 +#: part/models.py:1191 msgid "Expiry time (in days) for stock items of this part" msgstr "" -#: part/models.py:1139 +#: part/models.py:1200 msgid "Minimum allowed stock level" msgstr "" -#: part/models.py:1148 +#: part/models.py:1209 msgid "Units of measure for this part" msgstr "" -#: part/models.py:1155 +#: part/models.py:1216 msgid "Can this part be built from other parts?" msgstr "" -#: part/models.py:1161 +#: part/models.py:1222 msgid "Can this part be used to build other parts?" msgstr "" -#: part/models.py:1167 +#: part/models.py:1228 msgid "Does this part have tracking for unique items?" msgstr "" -#: part/models.py:1173 +#: part/models.py:1234 msgid "Can this part have test results recorded against it?" msgstr "" -#: part/models.py:1179 +#: part/models.py:1240 msgid "Can this part be purchased from external suppliers?" msgstr "" -#: part/models.py:1185 +#: part/models.py:1246 msgid "Can this part be sold to customers?" msgstr "" -#: part/models.py:1189 +#: part/models.py:1250 msgid "Is this part active?" msgstr "" -#: part/models.py:1194 templates/js/translated/part.js:821 +#: part/models.py:1255 templates/js/translated/part.js:821 #: templates/js/translated/table_filters.js:724 msgid "Locked" msgstr "" -#: part/models.py:1195 +#: part/models.py:1256 msgid "Locked parts cannot be edited" msgstr "" -#: part/models.py:1201 +#: part/models.py:1262 msgid "Is this a virtual part, such as a software product or license?" msgstr "" -#: part/models.py:1207 +#: part/models.py:1268 msgid "BOM checksum" msgstr "" -#: part/models.py:1208 +#: part/models.py:1269 msgid "Stored BOM checksum" msgstr "" -#: part/models.py:1216 +#: part/models.py:1277 msgid "BOM checked by" msgstr "" -#: part/models.py:1221 +#: part/models.py:1282 msgid "BOM checked date" msgstr "" -#: part/models.py:1237 +#: part/models.py:1298 msgid "Creation User" msgstr "" -#: part/models.py:1247 +#: part/models.py:1308 msgid "Owner responsible for this part" msgstr "" -#: part/models.py:1252 part/templates/part/part_base.html:348 -#: stock/templates/stock/item_base.html:451 +#: part/models.py:1313 part/templates/part/part_base.html:356 +#: stock/templates/stock/item_base.html:448 #: templates/js/translated/part.js:2490 msgid "Last Stocktake" msgstr "" -#: part/models.py:2125 +#: part/models.py:2185 msgid "Sell multiple" msgstr "" -#: part/models.py:3116 +#: part/models.py:3167 msgid "Currency used to cache pricing calculations" msgstr "" -#: part/models.py:3132 +#: part/models.py:3183 msgid "Minimum BOM Cost" msgstr "" -#: part/models.py:3133 +#: part/models.py:3184 msgid "Minimum cost of component parts" msgstr "" -#: part/models.py:3139 +#: part/models.py:3190 msgid "Maximum BOM Cost" msgstr "" -#: part/models.py:3140 +#: part/models.py:3191 msgid "Maximum cost of component parts" msgstr "" -#: part/models.py:3146 +#: part/models.py:3197 msgid "Minimum Purchase Cost" msgstr "" -#: part/models.py:3147 +#: part/models.py:3198 msgid "Minimum historical purchase cost" msgstr "" -#: part/models.py:3153 +#: part/models.py:3204 msgid "Maximum Purchase Cost" msgstr "" -#: part/models.py:3154 +#: part/models.py:3205 msgid "Maximum historical purchase cost" msgstr "" -#: part/models.py:3160 +#: part/models.py:3211 msgid "Minimum Internal Price" msgstr "" -#: part/models.py:3161 +#: part/models.py:3212 msgid "Minimum cost based on internal price breaks" msgstr "" -#: part/models.py:3167 +#: part/models.py:3218 msgid "Maximum Internal Price" msgstr "" -#: part/models.py:3168 +#: part/models.py:3219 msgid "Maximum cost based on internal price breaks" msgstr "" -#: part/models.py:3174 +#: part/models.py:3225 msgid "Minimum Supplier Price" msgstr "" -#: part/models.py:3175 +#: part/models.py:3226 msgid "Minimum price of part from external suppliers" msgstr "" -#: part/models.py:3181 +#: part/models.py:3232 msgid "Maximum Supplier Price" msgstr "" -#: part/models.py:3182 +#: part/models.py:3233 msgid "Maximum price of part from external suppliers" msgstr "" -#: part/models.py:3188 +#: part/models.py:3239 msgid "Minimum Variant Cost" msgstr "" -#: part/models.py:3189 +#: part/models.py:3240 msgid "Calculated minimum cost of variant parts" msgstr "" -#: part/models.py:3195 +#: part/models.py:3246 msgid "Maximum Variant Cost" msgstr "" -#: part/models.py:3196 +#: part/models.py:3247 msgid "Calculated maximum cost of variant parts" msgstr "" -#: part/models.py:3203 +#: part/models.py:3254 msgid "Override minimum cost" msgstr "" -#: part/models.py:3210 +#: part/models.py:3261 msgid "Override maximum cost" msgstr "" -#: part/models.py:3217 +#: part/models.py:3268 msgid "Calculated overall minimum cost" msgstr "" -#: part/models.py:3224 +#: part/models.py:3275 msgid "Calculated overall maximum cost" msgstr "" -#: part/models.py:3230 +#: part/models.py:3281 msgid "Minimum Sale Price" msgstr "" -#: part/models.py:3231 +#: part/models.py:3282 msgid "Minimum sale price based on price breaks" msgstr "" -#: part/models.py:3237 +#: part/models.py:3288 msgid "Maximum Sale Price" msgstr "" -#: part/models.py:3238 +#: part/models.py:3289 msgid "Maximum sale price based on price breaks" msgstr "" -#: part/models.py:3244 +#: part/models.py:3295 msgid "Minimum Sale Cost" msgstr "" -#: part/models.py:3245 +#: part/models.py:3296 msgid "Minimum historical sale price" msgstr "" -#: part/models.py:3251 +#: part/models.py:3302 msgid "Maximum Sale Cost" msgstr "" -#: part/models.py:3252 +#: part/models.py:3303 msgid "Maximum historical sale price" msgstr "" -#: part/models.py:3271 +#: part/models.py:3322 msgid "Part for stocktake" msgstr "" -#: part/models.py:3276 +#: part/models.py:3327 msgid "Item Count" msgstr "" -#: part/models.py:3277 +#: part/models.py:3328 msgid "Number of individual stock entries at time of stocktake" msgstr "" -#: part/models.py:3285 +#: part/models.py:3336 msgid "Total available stock at time of stocktake" msgstr "" -#: part/models.py:3289 part/models.py:3372 +#: part/models.py:3340 part/models.py:3423 part/serializers.py:263 #: part/templates/part/part_scheduling.html:13 #: report/templates/report/inventree_test_report.html:106 #: templates/InvenTree/settings/plugin_settings.html:37 #: templates/InvenTree/settings/settings_staff_js.html:543 -#: templates/js/translated/part.js:1092 templates/js/translated/pricing.js:826 -#: templates/js/translated/pricing.js:950 -#: templates/js/translated/purchase_order.js:1801 -#: templates/js/translated/stock.js:2905 +#: templates/js/translated/part.js:1092 templates/js/translated/pricing.js:824 +#: templates/js/translated/pricing.js:948 +#: templates/js/translated/purchase_order.js:1785 +#: templates/js/translated/stock.js:2906 msgid "Date" msgstr "" -#: part/models.py:3290 +#: part/models.py:3341 msgid "Date stocktake was performed" msgstr "" -#: part/models.py:3298 +#: part/models.py:3349 msgid "Additional notes" msgstr "" -#: part/models.py:3308 +#: part/models.py:3359 msgid "User who performed this stocktake" msgstr "" -#: part/models.py:3314 +#: part/models.py:3365 msgid "Minimum Stock Cost" msgstr "" -#: part/models.py:3315 +#: part/models.py:3366 msgid "Estimated minimum cost of stock on hand" msgstr "" -#: part/models.py:3321 +#: part/models.py:3372 msgid "Maximum Stock Cost" msgstr "" -#: part/models.py:3322 +#: part/models.py:3373 msgid "Estimated maximum cost of stock on hand" msgstr "" -#: part/models.py:3378 templates/InvenTree/settings/settings_staff_js.html:532 +#: part/models.py:3429 templates/InvenTree/settings/settings_staff_js.html:532 msgid "Report" msgstr "" -#: part/models.py:3379 +#: part/models.py:3430 msgid "Stocktake report file (generated internally)" msgstr "" -#: part/models.py:3384 templates/InvenTree/settings/settings_staff_js.html:539 +#: part/models.py:3435 templates/InvenTree/settings/settings_staff_js.html:539 msgid "Part Count" msgstr "" -#: part/models.py:3385 +#: part/models.py:3436 msgid "Number of parts covered by stocktake" msgstr "" -#: part/models.py:3395 +#: part/models.py:3446 msgid "User who requested this stocktake report" msgstr "" -#: part/models.py:3405 +#: part/models.py:3456 msgid "Part Sale Price Break" msgstr "" -#: part/models.py:3517 +#: part/models.py:3568 msgid "Part Test Template" msgstr "" -#: part/models.py:3543 +#: part/models.py:3594 msgid "Invalid template name - must include at least one alphanumeric character" msgstr "" -#: part/models.py:3564 part/models.py:3733 +#: part/models.py:3615 part/models.py:3784 msgid "Choices must be unique" msgstr "" -#: part/models.py:3575 -msgid "Test templates can only be created for trackable parts" +#: part/models.py:3626 +msgid "Test templates can only be created for testable parts" msgstr "" -#: part/models.py:3586 +#: part/models.py:3637 msgid "Test template with the same key already exists for part" msgstr "" -#: part/models.py:3603 templates/js/translated/part.js:2898 +#: part/models.py:3654 templates/js/translated/part.js:2898 msgid "Test Name" msgstr "" -#: part/models.py:3604 +#: part/models.py:3655 msgid "Enter a name for the test" msgstr "" -#: part/models.py:3610 +#: part/models.py:3661 msgid "Test Key" msgstr "" -#: part/models.py:3611 +#: part/models.py:3662 msgid "Simplified key for the test" msgstr "" -#: part/models.py:3618 +#: part/models.py:3669 msgid "Test Description" msgstr "" -#: part/models.py:3619 +#: part/models.py:3670 msgid "Enter description for this test" msgstr "" -#: part/models.py:3623 report/models.py:208 +#: part/models.py:3674 report/models.py:216 #: templates/js/translated/part.js:2919 #: templates/js/translated/table_filters.js:502 msgid "Enabled" msgstr "" -#: part/models.py:3623 +#: part/models.py:3674 msgid "Is this test enabled?" msgstr "" -#: part/models.py:3628 templates/js/translated/part.js:2927 +#: part/models.py:3679 templates/js/translated/part.js:2927 #: templates/js/translated/table_filters.js:498 msgid "Required" msgstr "" -#: part/models.py:3629 +#: part/models.py:3680 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:3634 templates/js/translated/part.js:2935 +#: part/models.py:3685 templates/js/translated/part.js:2935 msgid "Requires Value" msgstr "" -#: part/models.py:3635 +#: part/models.py:3686 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:3640 templates/js/translated/part.js:2942 +#: part/models.py:3691 templates/js/translated/part.js:2942 msgid "Requires Attachment" msgstr "" -#: part/models.py:3642 +#: part/models.py:3693 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:3648 part/models.py:3792 templates/js/translated/part.js:1643 +#: part/models.py:3699 part/models.py:3843 templates/js/translated/part.js:1643 msgid "Choices" msgstr "" -#: part/models.py:3649 +#: part/models.py:3700 msgid "Valid choices for this test (comma-separated)" msgstr "" -#: part/models.py:3681 +#: part/models.py:3732 msgid "Part Parameter Template" msgstr "" -#: part/models.py:3708 +#: part/models.py:3759 msgid "Checkbox parameters cannot have units" msgstr "" -#: part/models.py:3713 +#: part/models.py:3764 msgid "Checkbox parameters cannot have choices" msgstr "" -#: part/models.py:3750 +#: part/models.py:3801 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:3765 +#: part/models.py:3816 msgid "Parameter Name" msgstr "" -#: part/models.py:3772 +#: part/models.py:3823 msgid "Physical units for this parameter" msgstr "" -#: part/models.py:3780 +#: part/models.py:3831 msgid "Parameter description" msgstr "" -#: part/models.py:3786 templates/js/translated/part.js:1634 +#: part/models.py:3837 templates/js/translated/part.js:1634 #: templates/js/translated/table_filters.js:837 msgid "Checkbox" msgstr "" -#: part/models.py:3787 +#: part/models.py:3838 msgid "Is this parameter a checkbox?" msgstr "" -#: part/models.py:3793 +#: part/models.py:3844 msgid "Valid choices for this parameter (comma-separated)" msgstr "" -#: part/models.py:3827 +#: part/models.py:3881 msgid "Part Parameter" msgstr "" -#: part/models.py:3853 +#: part/models.py:3907 msgid "Parameter cannot be modified - part is locked" msgstr "" -#: part/models.py:3889 +#: part/models.py:3945 msgid "Invalid choice for parameter value" msgstr "" -#: part/models.py:3938 +#: part/models.py:3996 msgid "Parent Part" msgstr "" -#: part/models.py:3946 part/models.py:4054 part/models.py:4055 +#: part/models.py:4004 part/models.py:4112 part/models.py:4113 #: templates/InvenTree/settings/settings_staff_js.html:295 msgid "Parameter Template" msgstr "" -#: part/models.py:3952 +#: part/models.py:4010 msgid "Parameter Value" msgstr "" -#: part/models.py:4002 +#: part/models.py:4060 msgid "Part Category Parameter Template" msgstr "" -#: part/models.py:4061 templates/InvenTree/settings/settings_staff_js.html:304 +#: part/models.py:4119 templates/InvenTree/settings/settings_staff_js.html:304 msgid "Default Value" msgstr "" -#: part/models.py:4062 +#: part/models.py:4120 msgid "Default Parameter Value" msgstr "" -#: part/models.py:4100 +#: part/models.py:4158 msgid "Part ID or part name" msgstr "" -#: part/models.py:4101 +#: part/models.py:4159 msgid "Unique part ID value" msgstr "" -#: part/models.py:4103 +#: part/models.py:4161 msgid "Part IPN value" msgstr "" -#: part/models.py:4104 +#: part/models.py:4162 msgid "Level" msgstr "" -#: part/models.py:4104 +#: part/models.py:4162 msgid "BOM level" msgstr "" -#: part/models.py:4215 +#: part/models.py:4272 msgid "BOM item cannot be modified - assembly is locked" msgstr "" -#: part/models.py:4222 +#: part/models.py:4279 msgid "BOM item cannot be modified - variant assembly is locked" msgstr "" -#: part/models.py:4232 +#: part/models.py:4289 msgid "Select parent part" msgstr "" -#: part/models.py:4242 +#: part/models.py:4299 msgid "Sub part" msgstr "" -#: part/models.py:4243 +#: part/models.py:4300 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:4254 +#: part/models.py:4311 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:4260 +#: part/models.py:4317 msgid "This BOM item is optional" msgstr "" -#: part/models.py:4266 +#: part/models.py:4323 msgid "This BOM item is consumable (it is not tracked in build orders)" msgstr "" -#: part/models.py:4273 part/templates/part/upload_bom.html:55 +#: part/models.py:4330 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "" -#: part/models.py:4274 +#: part/models.py:4331 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:4281 +#: part/models.py:4338 msgid "BOM item reference" msgstr "" -#: part/models.py:4289 +#: part/models.py:4346 msgid "BOM item notes" msgstr "" -#: part/models.py:4295 +#: part/models.py:4352 msgid "Checksum" msgstr "" -#: part/models.py:4296 +#: part/models.py:4353 msgid "BOM line checksum" msgstr "" -#: part/models.py:4301 templates/js/translated/table_filters.js:181 +#: part/models.py:4358 templates/js/translated/table_filters.js:181 msgid "Validated" msgstr "" -#: part/models.py:4302 +#: part/models.py:4359 msgid "This BOM item has been validated" msgstr "" -#: part/models.py:4307 part/templates/part/upload_bom.html:57 +#: part/models.py:4364 part/templates/part/upload_bom.html:57 #: templates/js/translated/bom.js:1054 #: templates/js/translated/table_filters.js:185 #: templates/js/translated/table_filters.js:218 msgid "Gets inherited" msgstr "" -#: part/models.py:4308 +#: part/models.py:4365 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:4314 +#: part/models.py:4371 msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:4399 stock/models.py:685 +#: part/models.py:4456 stock/models.py:762 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:4409 part/models.py:4411 +#: part/models.py:4466 part/models.py:4468 msgid "Sub part must be specified" msgstr "" -#: part/models.py:4551 +#: part/models.py:4613 msgid "BOM Item Substitute" msgstr "" -#: part/models.py:4572 +#: part/models.py:4634 msgid "Substitute part cannot be the same as the master part" msgstr "" -#: part/models.py:4585 +#: part/models.py:4647 msgid "Parent BOM item" msgstr "" -#: part/models.py:4593 +#: part/models.py:4655 msgid "Substitute part" msgstr "" -#: part/models.py:4609 +#: part/models.py:4671 msgid "Part 1" msgstr "" -#: part/models.py:4617 +#: part/models.py:4679 msgid "Part 2" msgstr "" -#: part/models.py:4618 +#: part/models.py:4680 msgid "Select Related Part" msgstr "" -#: part/models.py:4637 +#: part/models.py:4699 msgid "Part relationship cannot be created between a part and itself" msgstr "" -#: part/models.py:4642 +#: part/models.py:4704 msgid "Duplicate relationship already exists" msgstr "" @@ -7449,340 +7662,352 @@ msgstr "" msgid "Number of results recorded against this template" msgstr "" -#: part/serializers.py:225 part/serializers.py:243 stock/serializers.py:616 +#: part/serializers.py:225 part/serializers.py:243 stock/serializers.py:643 msgid "Purchase currency of this stock item" msgstr "" -#: part/serializers.py:291 +#: part/serializers.py:268 +msgid "Speculative Quantity" +msgstr "" + +#: part/serializers.py:277 +msgid "Model ID" +msgstr "" + +#: part/serializers.py:324 msgid "Number of parts using this template" msgstr "" -#: part/serializers.py:421 +#: part/serializers.py:465 msgid "No parts selected" msgstr "" -#: part/serializers.py:431 +#: part/serializers.py:475 msgid "Select category" msgstr "" -#: part/serializers.py:466 +#: part/serializers.py:510 msgid "Original Part" msgstr "" -#: part/serializers.py:467 +#: part/serializers.py:511 msgid "Select original part to duplicate" msgstr "" -#: part/serializers.py:472 +#: part/serializers.py:516 msgid "Copy Image" msgstr "" -#: part/serializers.py:473 +#: part/serializers.py:517 msgid "Copy image from original part" msgstr "" -#: part/serializers.py:479 part/templates/part/detail.html:293 +#: part/serializers.py:523 part/templates/part/detail.html:293 msgid "Copy BOM" msgstr "" -#: part/serializers.py:480 +#: part/serializers.py:524 msgid "Copy bill of materials from original part" msgstr "" -#: part/serializers.py:486 +#: part/serializers.py:530 msgid "Copy Parameters" msgstr "" -#: part/serializers.py:487 +#: part/serializers.py:531 msgid "Copy parameter data from original part" msgstr "" -#: part/serializers.py:493 +#: part/serializers.py:537 msgid "Copy Notes" msgstr "" -#: part/serializers.py:494 +#: part/serializers.py:538 msgid "Copy notes from original part" msgstr "" -#: part/serializers.py:512 +#: part/serializers.py:556 msgid "Initial Stock Quantity" msgstr "" -#: part/serializers.py:514 +#: part/serializers.py:558 msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added." msgstr "" -#: part/serializers.py:521 +#: part/serializers.py:565 msgid "Initial Stock Location" msgstr "" -#: part/serializers.py:522 +#: part/serializers.py:566 msgid "Specify initial stock location for this Part" msgstr "" -#: part/serializers.py:539 +#: part/serializers.py:583 msgid "Select supplier (or leave blank to skip)" msgstr "" -#: part/serializers.py:555 +#: part/serializers.py:599 msgid "Select manufacturer (or leave blank to skip)" msgstr "" -#: part/serializers.py:565 +#: part/serializers.py:609 msgid "Manufacturer part number" msgstr "" -#: part/serializers.py:572 +#: part/serializers.py:616 msgid "Selected company is not a valid supplier" msgstr "" -#: part/serializers.py:581 +#: part/serializers.py:625 msgid "Selected company is not a valid manufacturer" msgstr "" -#: part/serializers.py:592 +#: part/serializers.py:636 msgid "Manufacturer part matching this MPN already exists" msgstr "" -#: part/serializers.py:599 +#: part/serializers.py:643 msgid "Supplier part matching this SKU already exists" msgstr "" -#: part/serializers.py:903 +#: part/serializers.py:955 msgid "Revisions" msgstr "" -#: part/serializers.py:908 +#: part/serializers.py:960 msgid "Unallocated Stock" msgstr "" -#: part/serializers.py:911 +#: part/serializers.py:963 msgid "Variant Stock" msgstr "" -#: part/serializers.py:941 part/templates/part/copy_part.html:9 +#: part/serializers.py:993 part/templates/part/copy_part.html:9 #: templates/js/translated/part.js:474 msgid "Duplicate Part" msgstr "" -#: part/serializers.py:942 +#: part/serializers.py:994 msgid "Copy initial data from another Part" msgstr "" -#: part/serializers.py:948 templates/js/translated/part.js:103 +#: part/serializers.py:1000 templates/js/translated/part.js:103 msgid "Initial Stock" msgstr "" -#: part/serializers.py:949 +#: part/serializers.py:1001 msgid "Create Part with initial stock quantity" msgstr "" -#: part/serializers.py:955 +#: part/serializers.py:1007 msgid "Supplier Information" msgstr "" -#: part/serializers.py:956 +#: part/serializers.py:1008 msgid "Add initial supplier information for this part" msgstr "" -#: part/serializers.py:964 +#: part/serializers.py:1016 msgid "Copy Category Parameters" msgstr "" -#: part/serializers.py:965 +#: part/serializers.py:1017 msgid "Copy parameter templates from selected part category" msgstr "" -#: part/serializers.py:970 +#: part/serializers.py:1022 msgid "Existing Image" msgstr "" -#: part/serializers.py:971 +#: part/serializers.py:1023 msgid "Filename of an existing part image" msgstr "" -#: part/serializers.py:988 +#: part/serializers.py:1040 msgid "Image file does not exist" msgstr "" -#: part/serializers.py:1194 +#: part/serializers.py:1247 msgid "Limit stocktake report to a particular part, and any variant parts" msgstr "" -#: part/serializers.py:1204 +#: part/serializers.py:1257 msgid "Limit stocktake report to a particular part category, and any child categories" msgstr "" -#: part/serializers.py:1214 +#: part/serializers.py:1267 msgid "Limit stocktake report to a particular stock location, and any child locations" msgstr "" -#: part/serializers.py:1220 +#: part/serializers.py:1273 msgid "Exclude External Stock" msgstr "" -#: part/serializers.py:1221 +#: part/serializers.py:1274 msgid "Exclude stock items in external locations" msgstr "" -#: part/serializers.py:1226 +#: part/serializers.py:1279 msgid "Generate Report" msgstr "" -#: part/serializers.py:1227 +#: part/serializers.py:1280 msgid "Generate report file containing calculated stocktake data" msgstr "" -#: part/serializers.py:1232 +#: part/serializers.py:1285 msgid "Update Parts" msgstr "" -#: part/serializers.py:1233 +#: part/serializers.py:1286 msgid "Update specified parts with calculated stocktake data" msgstr "" -#: part/serializers.py:1241 +#: part/serializers.py:1294 msgid "Stocktake functionality is not enabled" msgstr "" -#: part/serializers.py:1347 +#: part/serializers.py:1299 +msgid "Background worker check failed" +msgstr "" + +#: part/serializers.py:1401 msgid "Override calculated value for minimum price" msgstr "" -#: part/serializers.py:1354 +#: part/serializers.py:1408 msgid "Minimum price currency" msgstr "" -#: part/serializers.py:1362 +#: part/serializers.py:1416 msgid "Override calculated value for maximum price" msgstr "" -#: part/serializers.py:1369 +#: part/serializers.py:1423 msgid "Maximum price currency" msgstr "" -#: part/serializers.py:1398 +#: part/serializers.py:1452 msgid "Update" msgstr "" -#: part/serializers.py:1399 +#: part/serializers.py:1453 msgid "Update pricing for this part" msgstr "" -#: part/serializers.py:1422 +#: part/serializers.py:1476 #, python-brace-format msgid "Could not convert from provided currencies to {default_currency}" msgstr "" -#: part/serializers.py:1429 +#: part/serializers.py:1483 msgid "Minimum price must not be greater than maximum price" msgstr "" -#: part/serializers.py:1432 +#: part/serializers.py:1486 msgid "Maximum price must not be less than minimum price" msgstr "" -#: part/serializers.py:1576 +#: part/serializers.py:1634 msgid "Select the parent assembly" msgstr "" -#: part/serializers.py:1585 +#: part/serializers.py:1643 msgid "Component Name" msgstr "" -#: part/serializers.py:1588 +#: part/serializers.py:1646 msgid "Component IPN" msgstr "" -#: part/serializers.py:1591 +#: part/serializers.py:1649 msgid "Component Description" msgstr "" -#: part/serializers.py:1597 +#: part/serializers.py:1655 msgid "Select the component part" msgstr "" -#: part/serializers.py:1606 part/templates/part/part_base.html:235 +#: part/serializers.py:1664 part/templates/part/part_base.html:243 #: templates/js/translated/bom.js:1219 msgid "Can Build" msgstr "" -#: part/serializers.py:1837 +#: part/serializers.py:1899 msgid "Select part to copy BOM from" msgstr "" -#: part/serializers.py:1845 +#: part/serializers.py:1907 msgid "Remove Existing Data" msgstr "" -#: part/serializers.py:1846 +#: part/serializers.py:1908 msgid "Remove existing BOM items before copying" msgstr "" -#: part/serializers.py:1851 +#: part/serializers.py:1913 msgid "Include Inherited" msgstr "" -#: part/serializers.py:1852 +#: part/serializers.py:1914 msgid "Include BOM items which are inherited from templated parts" msgstr "" -#: part/serializers.py:1857 +#: part/serializers.py:1919 msgid "Skip Invalid Rows" msgstr "" -#: part/serializers.py:1858 +#: part/serializers.py:1920 msgid "Enable this option to skip invalid rows" msgstr "" -#: part/serializers.py:1863 +#: part/serializers.py:1925 msgid "Copy Substitute Parts" msgstr "" -#: part/serializers.py:1864 +#: part/serializers.py:1926 msgid "Copy substitute parts when duplicate BOM items" msgstr "" -#: part/serializers.py:1901 +#: part/serializers.py:1963 msgid "Clear Existing BOM" msgstr "" -#: part/serializers.py:1902 +#: part/serializers.py:1964 msgid "Delete existing BOM items before uploading" msgstr "" -#: part/serializers.py:1934 +#: part/serializers.py:1996 msgid "No part column specified" msgstr "" -#: part/serializers.py:1978 +#: part/serializers.py:2040 msgid "Multiple matching parts found" msgstr "" -#: part/serializers.py:1981 +#: part/serializers.py:2043 msgid "No matching part found" msgstr "" -#: part/serializers.py:1984 +#: part/serializers.py:2045 msgid "Part is not designated as a component" msgstr "" -#: part/serializers.py:1993 +#: part/serializers.py:2054 msgid "Quantity not provided" msgstr "" -#: part/serializers.py:2001 +#: part/serializers.py:2062 msgid "Invalid quantity" msgstr "" -#: part/serializers.py:2024 +#: part/serializers.py:2085 msgid "At least one BOM item is required" msgstr "" #: part/stocktake.py:224 templates/js/translated/part.js:1073 #: templates/js/translated/part.js:1828 templates/js/translated/part.js:1884 -#: templates/js/translated/purchase_order.js:2154 +#: templates/js/translated/purchase_order.js:2138 msgid "Total Quantity" msgstr "" @@ -7932,9 +8157,9 @@ msgid "Add stocktake information" msgstr "" #: part/templates/part/detail.html:67 part/templates/part/part_sidebar.html:50 -#: stock/admin.py:255 templates/InvenTree/settings/part_stocktake.html:30 +#: stock/admin.py:256 templates/InvenTree/settings/part_stocktake.html:30 #: templates/InvenTree/settings/sidebar.html:53 -#: templates/js/translated/stock.js:2301 users/models.py:204 +#: templates/js/translated/stock.js:2302 users/models.py:204 msgid "Stocktake" msgstr "" @@ -8093,142 +8318,146 @@ msgstr "" msgid "Part List" msgstr "" -#: part/templates/part/part_base.html:25 part/templates/part/part_base.html:29 +#: part/templates/part/part_base.html:26 part/templates/part/part_base.html:30 msgid "You are subscribed to notifications for this part" msgstr "" -#: part/templates/part/part_base.html:33 +#: part/templates/part/part_base.html:34 msgid "Subscribe to notifications for this part" msgstr "" -#: part/templates/part/part_base.html:52 +#: part/templates/part/part_base.html:53 #: stock/templates/stock/item_base.html:62 -#: stock/templates/stock/location.html:71 templates/js/translated/label.js:136 +#: stock/templates/stock/location.html:72 templates/js/translated/label.js:136 msgid "Print Label" msgstr "" -#: part/templates/part/part_base.html:58 +#: part/templates/part/part_base.html:59 msgid "Show pricing information" msgstr "" -#: part/templates/part/part_base.html:63 -#: stock/templates/stock/item_base.html:110 -#: stock/templates/stock/location.html:80 +#: part/templates/part/part_base.html:64 +#: stock/templates/stock/item_base.html:107 +#: stock/templates/stock/location.html:81 msgid "Stock actions" msgstr "" -#: part/templates/part/part_base.html:70 +#: part/templates/part/part_base.html:71 msgid "Count part stock" msgstr "" -#: part/templates/part/part_base.html:76 +#: part/templates/part/part_base.html:77 msgid "Transfer part stock" msgstr "" -#: part/templates/part/part_base.html:91 templates/js/translated/part.js:2299 +#: part/templates/part/part_base.html:92 templates/js/translated/part.js:2299 msgid "Part actions" msgstr "" -#: part/templates/part/part_base.html:94 +#: part/templates/part/part_base.html:95 msgid "Duplicate part" msgstr "" -#: part/templates/part/part_base.html:97 +#: part/templates/part/part_base.html:98 msgid "Edit part" msgstr "" -#: part/templates/part/part_base.html:100 +#: part/templates/part/part_base.html:101 msgid "Delete part" msgstr "" -#: part/templates/part/part_base.html:119 +#: part/templates/part/part_base.html:120 msgid "Part is a template part (variants can be made from this part)" msgstr "" -#: part/templates/part/part_base.html:123 +#: part/templates/part/part_base.html:124 msgid "Part can be assembled from other parts" msgstr "" -#: part/templates/part/part_base.html:127 +#: part/templates/part/part_base.html:128 msgid "Part can be used in assemblies" msgstr "" -#: part/templates/part/part_base.html:131 +#: part/templates/part/part_base.html:132 msgid "Part stock is tracked by serial number" msgstr "" -#: part/templates/part/part_base.html:135 +#: part/templates/part/part_base.html:136 msgid "Part can be purchased from external suppliers" msgstr "" -#: part/templates/part/part_base.html:139 +#: part/templates/part/part_base.html:140 msgid "Part can be sold to customers" msgstr "" -#: part/templates/part/part_base.html:145 +#: part/templates/part/part_base.html:146 msgid "Part is not active" msgstr "" -#: part/templates/part/part_base.html:153 +#: part/templates/part/part_base.html:154 msgid "Part is virtual (not a physical part)" msgstr "" -#: part/templates/part/part_base.html:163 -#: part/templates/part/part_base.html:690 +#: part/templates/part/part_base.html:164 +#: part/templates/part/part_base.html:698 msgid "Show Part Details" msgstr "" #: part/templates/part/part_base.html:218 -#: stock/templates/stock/item_base.html:388 +msgid "Required for Orders" +msgstr "" + +#: part/templates/part/part_base.html:226 +#: stock/templates/stock/item_base.html:385 msgid "Allocated to Build Orders" msgstr "" -#: part/templates/part/part_base.html:227 -#: stock/templates/stock/item_base.html:381 +#: part/templates/part/part_base.html:235 +#: stock/templates/stock/item_base.html:378 msgid "Allocated to Sales Orders" msgstr "" -#: part/templates/part/part_base.html:300 +#: part/templates/part/part_base.html:308 msgid "Minimum stock level" msgstr "" -#: part/templates/part/part_base.html:331 templates/js/translated/bom.js:1071 +#: part/templates/part/part_base.html:339 templates/js/translated/bom.js:1071 #: templates/js/translated/part.js:1271 templates/js/translated/part.js:2463 #: templates/js/translated/pricing.js:391 -#: templates/js/translated/pricing.js:1054 +#: templates/js/translated/pricing.js:1052 msgid "Price Range" msgstr "" -#: part/templates/part/part_base.html:361 +#: part/templates/part/part_base.html:369 msgid "Latest Serial Number" msgstr "" -#: part/templates/part/part_base.html:365 -#: stock/templates/stock/item_base.html:322 +#: part/templates/part/part_base.html:373 +#: stock/templates/stock/item_base.html:319 msgid "Search for serial number" msgstr "" -#: part/templates/part/part_base.html:453 +#: part/templates/part/part_base.html:461 msgid "Part QR Code" msgstr "" -#: part/templates/part/part_base.html:470 +#: part/templates/part/part_base.html:478 msgid "Link Barcode to Part" msgstr "" -#: part/templates/part/part_base.html:520 +#: part/templates/part/part_base.html:528 msgid "Calculate" msgstr "" -#: part/templates/part/part_base.html:537 +#: part/templates/part/part_base.html:545 msgid "Remove associated image from this part" msgstr "" -#: part/templates/part/part_base.html:588 +#: part/templates/part/part_base.html:596 msgid "No matching images found" msgstr "" -#: part/templates/part/part_base.html:684 +#: part/templates/part/part_base.html:692 msgid "Hide Part Details" msgstr "" @@ -8282,13 +8511,13 @@ msgid "Variants" msgstr "" #: part/templates/part/part_sidebar.html:14 -#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:21 +#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:22 #: stock/templates/stock/stock_app_base.html:10 #: templates/InvenTree/search.html:153 #: templates/InvenTree/settings/sidebar.html:51 #: templates/js/translated/part.js:1249 templates/js/translated/part.js:2152 #: templates/js/translated/part.js:2411 templates/js/translated/stock.js:1066 -#: templates/js/translated/stock.js:2155 templates/navbar.html:31 +#: templates/js/translated/stock.js:2156 templates/navbar.html:31 msgid "Stock" msgstr "" @@ -8324,17 +8553,17 @@ msgstr "" #: part/templates/part/prices.html:18 #: templates/InvenTree/settings/settings_staff_js.html:80 #: templates/InvenTree/settings/user.html:24 -#: templates/js/translated/helpers.js:103 +#: templates/js/translated/helpers.js:104 #: templates/js/translated/pricing.js:628 templates/notes_buttons.html:3 #: templates/notes_buttons.html:4 msgid "Edit" msgstr "" -#: part/templates/part/prices.html:28 stock/admin.py:251 -#: stock/templates/stock/item_base.html:446 -#: templates/js/translated/company.js:1703 -#: templates/js/translated/company.js:1713 -#: templates/js/translated/stock.js:2331 +#: part/templates/part/prices.html:28 stock/admin.py:252 +#: stock/templates/stock/item_base.html:443 +#: templates/js/translated/company.js:1704 +#: templates/js/translated/company.js:1714 +#: templates/js/translated/stock.js:2332 msgid "Last Updated" msgstr "" @@ -8406,7 +8635,7 @@ msgid "Update Pricing" msgstr "" #: part/templates/part/stock_count.html:7 -#: templates/js/translated/model_renderers.js:228 +#: templates/js/translated/model_renderers.js:231 #: templates/js/translated/part.js:707 templates/js/translated/part.js:2147 #: templates/js/translated/part.js:2149 msgid "No Stock" @@ -8486,7 +8715,7 @@ msgstr "" msgid "Part Pricing" msgstr "" -#: plugin/api.py:172 +#: plugin/api.py:175 msgid "Plugin cannot be deleted as it is currently active" msgstr "" @@ -8498,78 +8727,85 @@ msgstr "" msgid "No matching action found" msgstr "" -#: plugin/base/barcodes/api.py:125 plugin/base/barcodes/api.py:371 -#: plugin/base/barcodes/api.py:546 +#: plugin/base/barcodes/api.py:203 msgid "No match found for barcode data" msgstr "" -#: plugin/base/barcodes/api.py:129 +#: plugin/base/barcodes/api.py:207 msgid "Match found for barcode data" msgstr "" -#: plugin/base/barcodes/api.py:163 plugin/base/barcodes/serializers.py:45 +#: plugin/base/barcodes/api.py:245 plugin/base/barcodes/serializers.py:72 msgid "Model is not supported" msgstr "" -#: plugin/base/barcodes/api.py:168 +#: plugin/base/barcodes/api.py:250 msgid "Model instance not found" msgstr "" -#: plugin/base/barcodes/api.py:197 -#: templates/js/translated/purchase_order.js:1468 +#: plugin/base/barcodes/api.py:279 +#: templates/js/translated/purchase_order.js:1452 msgid "Barcode matches existing item" msgstr "" -#: plugin/base/barcodes/api.py:336 +#: plugin/base/barcodes/api.py:418 msgid "No matching part data found" msgstr "" -#: plugin/base/barcodes/api.py:353 +#: plugin/base/barcodes/api.py:434 msgid "No matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:357 +#: plugin/base/barcodes/api.py:437 msgid "Multiple matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:381 +#: plugin/base/barcodes/api.py:450 plugin/base/barcodes/api.py:664 +msgid "No matching plugin found for barcode data" +msgstr "" + +#: plugin/base/barcodes/api.py:460 msgid "Matched supplier part" msgstr "" -#: plugin/base/barcodes/api.py:430 +#: plugin/base/barcodes/api.py:525 msgid "Item has already been received" msgstr "" -#: plugin/base/barcodes/api.py:467 +#: plugin/base/barcodes/api.py:563 msgid "No match for supplier barcode" msgstr "" -#: plugin/base/barcodes/api.py:510 +#: plugin/base/barcodes/api.py:612 msgid "Multiple matching line items found" msgstr "" -#: plugin/base/barcodes/api.py:513 +#: plugin/base/barcodes/api.py:615 msgid "No matching line item found" msgstr "" -#: plugin/base/barcodes/api.py:551 plugin/base/barcodes/api.py:558 +#: plugin/base/barcodes/api.py:661 +msgid "No sales order provided" +msgstr "" + +#: plugin/base/barcodes/api.py:670 msgid "Barcode does not match an existing stock item" msgstr "" -#: plugin/base/barcodes/api.py:569 +#: plugin/base/barcodes/api.py:686 msgid "Stock item does not match line item" msgstr "" -#: plugin/base/barcodes/api.py:593 templates/js/translated/build.js:2780 -#: templates/js/translated/sales_order.js:1953 +#: plugin/base/barcodes/api.py:716 templates/js/translated/build.js:2798 +#: templates/js/translated/sales_order.js:1934 msgid "Insufficient stock available" msgstr "" -#: plugin/base/barcodes/api.py:602 +#: plugin/base/barcodes/api.py:729 msgid "Stock item allocated to sales order" msgstr "" -#: plugin/base/barcodes/api.py:606 +#: plugin/base/barcodes/api.py:732 msgid "Not enough information" msgstr "" @@ -8591,75 +8827,75 @@ msgstr "" msgid "Purchase order does not match supplier" msgstr "" -#: plugin/base/barcodes/mixins.py:465 +#: plugin/base/barcodes/mixins.py:467 msgid "Failed to find pending line item for supplier part" msgstr "" -#: plugin/base/barcodes/mixins.py:496 +#: plugin/base/barcodes/mixins.py:498 msgid "Further information required to receive line item" msgstr "" -#: plugin/base/barcodes/mixins.py:504 +#: plugin/base/barcodes/mixins.py:506 msgid "Received purchase order line item" msgstr "" -#: plugin/base/barcodes/serializers.py:21 +#: plugin/base/barcodes/serializers.py:48 msgid "Scanned barcode data" msgstr "" -#: plugin/base/barcodes/serializers.py:30 +#: plugin/base/barcodes/serializers.py:57 msgid "Model name to generate barcode for" msgstr "" -#: plugin/base/barcodes/serializers.py:35 +#: plugin/base/barcodes/serializers.py:62 msgid "Primary key of model object to generate barcode for" msgstr "" -#: plugin/base/barcodes/serializers.py:105 +#: plugin/base/barcodes/serializers.py:132 msgid "Purchase Order to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:111 +#: plugin/base/barcodes/serializers.py:138 msgid "Purchase order is not pending" msgstr "" -#: plugin/base/barcodes/serializers.py:129 +#: plugin/base/barcodes/serializers.py:156 msgid "PurchaseOrder to receive items against" msgstr "" -#: plugin/base/barcodes/serializers.py:135 +#: plugin/base/barcodes/serializers.py:162 msgid "Purchase order has not been placed" msgstr "" -#: plugin/base/barcodes/serializers.py:143 +#: plugin/base/barcodes/serializers.py:170 msgid "Location to receive items into" msgstr "" -#: plugin/base/barcodes/serializers.py:149 +#: plugin/base/barcodes/serializers.py:176 msgid "Cannot select a structural location" msgstr "" -#: plugin/base/barcodes/serializers.py:163 +#: plugin/base/barcodes/serializers.py:190 msgid "Sales Order to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:169 +#: plugin/base/barcodes/serializers.py:196 msgid "Sales order is not pending" msgstr "" -#: plugin/base/barcodes/serializers.py:177 +#: plugin/base/barcodes/serializers.py:204 msgid "Sales order line item to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:184 +#: plugin/base/barcodes/serializers.py:211 msgid "Sales order shipment to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:190 +#: plugin/base/barcodes/serializers.py:217 msgid "Shipment has already been delivered" msgstr "" -#: plugin/base/barcodes/serializers.py:195 +#: plugin/base/barcodes/serializers.py:222 msgid "Quantity to allocate" msgstr "" @@ -8679,6 +8915,42 @@ msgstr "" msgid "No items provided to print" msgstr "" +#: plugin/base/ui/serializers.py:30 +msgid "Plugin Name" +msgstr "" + +#: plugin/base/ui/serializers.py:34 +msgid "Feature Type" +msgstr "" + +#: plugin/base/ui/serializers.py:39 +msgid "Feature Label" +msgstr "" + +#: plugin/base/ui/serializers.py:44 +msgid "Feature Title" +msgstr "" + +#: plugin/base/ui/serializers.py:49 +msgid "Feature Description" +msgstr "" + +#: plugin/base/ui/serializers.py:54 +msgid "Feature Icon" +msgstr "" + +#: plugin/base/ui/serializers.py:58 +msgid "Feature Options" +msgstr "" + +#: plugin/base/ui/serializers.py:61 +msgid "Feature Context" +msgstr "" + +#: plugin/base/ui/serializers.py:64 +msgid "Feature Source (javascript)" +msgstr "" + #: plugin/builtin/barcodes/inventree_barcode.py:27 msgid "InvenTree Barcodes" msgstr "" @@ -8756,7 +9028,7 @@ msgstr "" msgid "URL that is used to send messages to a slack channel" msgstr "" -#: plugin/builtin/integration/core_notifications.py:164 +#: plugin/builtin/integration/core_notifications.py:166 msgid "Open link" msgstr "" @@ -8794,11 +9066,11 @@ msgstr "" msgid "Provides support for printing using a machine" msgstr "" -#: plugin/builtin/labels/inventree_machine.py:149 +#: plugin/builtin/labels/inventree_machine.py:151 msgid "last used" msgstr "" -#: plugin/builtin/labels/inventree_machine.py:166 +#: plugin/builtin/labels/inventree_machine.py:168 msgid "Options" msgstr "" @@ -8822,7 +9094,7 @@ msgstr "" msgid "Print a border around each label" msgstr "" -#: plugin/builtin/labels/label_sheet.py:47 report/models.py:307 +#: plugin/builtin/labels/label_sheet.py:47 report/models.py:315 msgid "Landscape" msgstr "" @@ -8894,19 +9166,19 @@ msgstr "" msgid "The Supplier which acts as 'TME'" msgstr "" -#: plugin/installer.py:194 plugin/installer.py:282 +#: plugin/installer.py:199 plugin/installer.py:282 msgid "Only staff users can administer plugins" msgstr "" -#: plugin/installer.py:197 +#: plugin/installer.py:202 msgid "Plugin installation is disabled" msgstr "" -#: plugin/installer.py:248 +#: plugin/installer.py:246 msgid "Installed plugin successfully" msgstr "" -#: plugin/installer.py:254 +#: plugin/installer.py:251 #, python-brace-format msgid "Installed plugin into {path}" msgstr "" @@ -8943,10 +9215,6 @@ msgstr "" msgid "Plugin Configurations" msgstr "" -#: plugin/models.py:43 users/models.py:100 -msgid "Key" -msgstr "" - #: plugin/models.py:44 msgid "Key of plugin" msgstr "" @@ -8955,7 +9223,7 @@ msgstr "" msgid "PluginName of the plugin" msgstr "" -#: plugin/models.py:59 plugin/serializers.py:90 +#: plugin/models.py:59 plugin/serializers.py:115 msgid "Package Name" msgstr "" @@ -8984,17 +9252,17 @@ msgstr "" msgid "Package Plugin" msgstr "" -#: plugin/models.py:220 report/models.py:474 +#: plugin/models.py:259 report/models.py:482 #: templates/InvenTree/settings/plugin_settings.html:9 #: templates/js/translated/plugin.js:51 msgid "Plugin" msgstr "" -#: plugin/models.py:267 +#: plugin/models.py:306 msgid "Method" msgstr "" -#: plugin/plugin.py:270 +#: plugin/plugin.py:275 msgid "No author found" msgstr "" @@ -9053,81 +9321,157 @@ msgstr "" msgid "InvenTree Contributors" msgstr "" -#: plugin/serializers.py:81 -msgid "Source URL" +#: plugin/samples/integration/user_interface_sample.py:27 +msgid "Enable Part Panels" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:28 +msgid "Enable custom panels for Part views" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:33 +msgid "Enable Purchase Order Panels" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:34 +msgid "Enable custom panels for Purchase Order views" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:39 +msgid "Enable Broken Panels" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:40 +msgid "Enable broken panels for testing" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:45 +msgid "Enable Dynamic Panel" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:46 +msgid "Enable dynamic panels for testing" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:98 +msgid "Part Panel" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:131 +msgid "Broken Dashboard Item" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:133 +msgid "This is a broken dashboard item - it will not render!" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:139 +msgid "Sample Dashboard Item" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:141 +msgid "This is a sample dashboard item. It renders a simple string of HTML content." +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:147 +msgid "Context Dashboard Item" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:161 +msgid "Admin Dashboard Item" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:162 +msgid "This is an admin-only dashboard item." +msgstr "" + +#: plugin/serializers.py:82 +msgid "Source File" msgstr "" #: plugin/serializers.py:83 +msgid "Path to the source file for admin integration" +msgstr "" + +#: plugin/serializers.py:90 +msgid "Optional context data for the admin integration" +msgstr "" + +#: plugin/serializers.py:106 +msgid "Source URL" +msgstr "" + +#: plugin/serializers.py:108 msgid "Source for the package - this can be a custom registry or a VCS path" msgstr "" -#: plugin/serializers.py:92 +#: plugin/serializers.py:117 msgid "Name for the Plugin Package - can also contain a version indicator" msgstr "" -#: plugin/serializers.py:99 +#: plugin/serializers.py:124 #: templates/InvenTree/settings/plugin_settings.html:42 #: templates/js/translated/plugin.js:86 msgid "Version" msgstr "" -#: plugin/serializers.py:101 +#: plugin/serializers.py:126 msgid "Version specifier for the plugin. Leave blank for latest version." msgstr "" -#: plugin/serializers.py:106 +#: plugin/serializers.py:131 msgid "Confirm plugin installation" msgstr "" -#: plugin/serializers.py:108 +#: plugin/serializers.py:133 msgid "This will install this plugin now into the current instance. The instance will go into maintenance." msgstr "" -#: plugin/serializers.py:121 +#: plugin/serializers.py:146 msgid "Installation not confirmed" msgstr "" -#: plugin/serializers.py:123 +#: plugin/serializers.py:148 msgid "Either packagename of URL must be provided" msgstr "" -#: plugin/serializers.py:161 +#: plugin/serializers.py:184 msgid "Full reload" msgstr "" -#: plugin/serializers.py:162 +#: plugin/serializers.py:185 msgid "Perform a full reload of the plugin registry" msgstr "" -#: plugin/serializers.py:168 +#: plugin/serializers.py:191 msgid "Force reload" msgstr "" -#: plugin/serializers.py:170 +#: plugin/serializers.py:193 msgid "Force a reload of the plugin registry, even if it is already loaded" msgstr "" -#: plugin/serializers.py:177 +#: plugin/serializers.py:200 msgid "Collect plugins" msgstr "" -#: plugin/serializers.py:178 +#: plugin/serializers.py:201 msgid "Collect plugins and add them to the registry" msgstr "" -#: plugin/serializers.py:205 +#: plugin/serializers.py:228 msgid "Activate Plugin" msgstr "" -#: plugin/serializers.py:206 +#: plugin/serializers.py:229 msgid "Activate this plugin" msgstr "" -#: plugin/serializers.py:226 +#: plugin/serializers.py:249 msgid "Delete configuration" msgstr "" -#: plugin/serializers.py:227 +#: plugin/serializers.py:250 msgid "Delete the plugin configuration from the database" msgstr "" @@ -9135,11 +9479,11 @@ msgstr "" msgid "No valid objects provided to template" msgstr "" -#: report/api.py:103 report/models.py:438 report/serializers.py:98 -#: report/serializers.py:148 templates/js/translated/purchase_order.js:1817 +#: report/api.py:103 report/models.py:446 report/serializers.py:99 +#: report/serializers.py:149 templates/js/translated/purchase_order.js:1801 #: templates/js/translated/return_order.js:353 -#: templates/js/translated/sales_order.js:887 -#: templates/js/translated/sales_order.js:1047 +#: templates/js/translated/sales_order.js:846 +#: templates/js/translated/sales_order.js:1020 msgid "Items" msgstr "" @@ -9167,7 +9511,11 @@ msgstr "" msgid "Error printing label" msgstr "" -#: report/api.py:375 report/api.py:411 +#: report/api.py:358 +msgid "Report saved at time of printing" +msgstr "" + +#: report/api.py:384 report/api.py:420 #, python-brace-format msgid "Template file '{template}' is missing or does not exist" msgstr "" @@ -9204,135 +9552,143 @@ msgstr "" msgid "Revision number (auto-increments)" msgstr "" -#: report/models.py:202 +#: report/models.py:168 +msgid "Attach to Model on Print" +msgstr "" + +#: report/models.py:170 +msgid "Save report output as an attachment against linked model instance when printing" +msgstr "" + +#: report/models.py:210 msgid "Filename Pattern" msgstr "" -#: report/models.py:203 +#: report/models.py:211 msgid "Pattern for generating filenames" msgstr "" -#: report/models.py:208 +#: report/models.py:216 msgid "Template is enabled" msgstr "" -#: report/models.py:214 +#: report/models.py:222 msgid "Target model type for template" msgstr "" -#: report/models.py:234 +#: report/models.py:242 msgid "Filters" msgstr "" -#: report/models.py:235 +#: report/models.py:243 msgid "Template query filters (comma-separated list of key=value pairs)" msgstr "" -#: report/models.py:294 report/models.py:361 +#: report/models.py:302 report/models.py:369 msgid "Template file" msgstr "" -#: report/models.py:302 +#: report/models.py:310 msgid "Page size for PDF reports" msgstr "" -#: report/models.py:308 +#: report/models.py:316 msgid "Render report in landscape orientation" msgstr "" -#: report/models.py:367 +#: report/models.py:375 msgid "Width [mm]" msgstr "" -#: report/models.py:368 +#: report/models.py:376 msgid "Label width, specified in mm" msgstr "" -#: report/models.py:374 +#: report/models.py:382 msgid "Height [mm]" msgstr "" -#: report/models.py:375 +#: report/models.py:383 msgid "Label height, specified in mm" msgstr "" -#: report/models.py:438 +#: report/models.py:446 msgid "Number of items to process" msgstr "" -#: report/models.py:444 +#: report/models.py:452 msgid "Report generation is complete" msgstr "" -#: report/models.py:448 templates/js/translated/build.js:2349 +#: report/models.py:456 templates/js/translated/build.js:2352 msgid "Progress" msgstr "" -#: report/models.py:448 +#: report/models.py:456 msgid "Report generation progress" msgstr "" -#: report/models.py:456 +#: report/models.py:464 msgid "Report Template" msgstr "" -#: report/models.py:463 report/models.py:486 +#: report/models.py:471 report/models.py:494 msgid "Output File" msgstr "" -#: report/models.py:464 report/models.py:487 +#: report/models.py:472 report/models.py:495 msgid "Generated output file" msgstr "" -#: report/models.py:475 +#: report/models.py:483 msgid "Label output plugin" msgstr "" -#: report/models.py:479 +#: report/models.py:487 msgid "Label Template" msgstr "" -#: report/models.py:502 +#: report/models.py:510 msgid "Snippet" msgstr "" -#: report/models.py:503 +#: report/models.py:511 msgid "Report snippet file" msgstr "" -#: report/models.py:510 +#: report/models.py:518 msgid "Snippet file description" msgstr "" -#: report/models.py:528 +#: report/models.py:536 msgid "Asset" msgstr "" -#: report/models.py:529 +#: report/models.py:537 msgid "Report asset file" msgstr "" -#: report/models.py:536 +#: report/models.py:544 msgid "Asset file description" msgstr "" -#: report/serializers.py:91 +#: report/serializers.py:92 msgid "Select report template" msgstr "" -#: report/serializers.py:99 report/serializers.py:149 +#: report/serializers.py:100 report/serializers.py:150 msgid "List of item primary keys to include in the report" msgstr "" -#: report/serializers.py:132 +#: report/serializers.py:133 msgid "Select label template" msgstr "" -#: report/serializers.py:140 +#: report/serializers.py:141 msgid "Printing Plugin" msgstr "" -#: report/serializers.py:141 +#: report/serializers.py:142 msgid "Select plugin to use for label printing" msgstr "" @@ -9365,9 +9721,9 @@ msgstr "" #: report/templates/report/inventree_sales_order_report.html:30 #: templates/js/translated/order.js:341 templates/js/translated/pricing.js:527 #: templates/js/translated/pricing.js:596 -#: templates/js/translated/pricing.js:834 -#: templates/js/translated/purchase_order.js:2185 -#: templates/js/translated/sales_order.js:1873 +#: templates/js/translated/pricing.js:832 +#: templates/js/translated/purchase_order.js:2169 +#: templates/js/translated/sales_order.js:1854 msgid "Unit Price" msgstr "" @@ -9379,13 +9735,18 @@ msgstr "" #: report/templates/report/inventree_purchase_order_report.html:72 #: report/templates/report/inventree_sales_order_report.html:72 -#: templates/js/translated/purchase_order.js:2087 -#: templates/js/translated/sales_order.js:1842 +#: templates/js/translated/purchase_order.js:2071 +#: templates/js/translated/sales_order.js:1823 #: templates/test_statistics_table.html:8 #: templates/test_statistics_table.html:19 msgid "Total" msgstr "" +#: report/templates/report/inventree_sales_order_shipment_report.html:23 +#: stock/templates/stock/stock_sidebar.html:8 +msgid "Allocations" +msgstr "" + #: report/templates/report/inventree_stock_location_report.html:97 msgid "Stock location items" msgstr "" @@ -9403,15 +9764,13 @@ msgstr "" msgid "Test" msgstr "" -#: report/templates/report/inventree_test_report.html:103 stock/models.py:2544 -msgid "Result" -msgstr "" - #: report/templates/report/inventree_test_report.html:129 +#: templates/js/translated/stock.js:1448 msgid "Pass" msgstr "" #: report/templates/report/inventree_test_report.html:131 +#: templates/js/translated/stock.js:1450 msgid "Fail" msgstr "" @@ -9420,17 +9779,18 @@ msgid "No result (required)" msgstr "" #: report/templates/report/inventree_test_report.html:140 +#: templates/js/translated/stock.js:1455 msgid "No result" msgstr "" #: report/templates/report/inventree_test_report.html:153 -#: stock/serializers.py:599 stock/templates/stock/stock_sidebar.html:16 +#: stock/serializers.py:626 stock/templates/stock/stock_sidebar.html:16 msgid "Installed Items" msgstr "" -#: report/templates/report/inventree_test_report.html:167 stock/admin.py:161 +#: report/templates/report/inventree_test_report.html:167 stock/admin.py:162 #: templates/js/translated/stock.js:706 templates/js/translated/stock.js:877 -#: templates/js/translated/stock.js:3194 +#: templates/js/translated/stock.js:3195 msgid "Serial" msgstr "" @@ -9450,67 +9810,67 @@ msgstr "" msgid "company_image tag requires a Company instance" msgstr "" -#: stock/admin.py:51 stock/admin.py:171 +#: stock/admin.py:51 stock/admin.py:172 msgid "Location ID" msgstr "" -#: stock/admin.py:63 stock/templates/stock/location.html:128 -#: stock/templates/stock/location.html:134 +#: stock/admin.py:63 stock/templates/stock/location.html:129 +#: stock/templates/stock/location.html:135 msgid "Location Path" msgstr "" -#: stock/admin.py:148 +#: stock/admin.py:149 msgid "Stock Item ID" msgstr "" -#: stock/admin.py:167 +#: stock/admin.py:168 msgid "Status Code" msgstr "" -#: stock/admin.py:179 +#: stock/admin.py:180 msgid "Supplier Part ID" msgstr "" -#: stock/admin.py:184 +#: stock/admin.py:185 msgid "Supplier Part SKU" msgstr "" -#: stock/admin.py:189 +#: stock/admin.py:190 msgid "Supplier ID" msgstr "" -#: stock/admin.py:200 +#: stock/admin.py:201 msgid "Customer ID" msgstr "" -#: stock/admin.py:205 stock/models.py:825 -#: stock/templates/stock/item_base.html:354 +#: stock/admin.py:206 stock/models.py:902 +#: stock/templates/stock/item_base.html:351 msgid "Installed In" msgstr "" -#: stock/admin.py:210 +#: stock/admin.py:211 msgid "Build ID" msgstr "" -#: stock/admin.py:220 +#: stock/admin.py:221 msgid "Sales Order ID" msgstr "" -#: stock/admin.py:225 +#: stock/admin.py:226 msgid "Purchase Order ID" msgstr "" -#: stock/admin.py:240 +#: stock/admin.py:241 msgid "Review Needed" msgstr "" -#: stock/admin.py:245 +#: stock/admin.py:246 msgid "Delete on Deplete" msgstr "" -#: stock/admin.py:260 stock/models.py:919 -#: stock/templates/stock/item_base.html:433 -#: templates/js/translated/stock.js:2315 users/models.py:124 +#: stock/admin.py:261 stock/models.py:996 +#: stock/templates/stock/item_base.html:430 +#: templates/js/translated/stock.js:2316 users/models.py:124 msgid "Expiry Date" msgstr "" @@ -9526,11 +9886,11 @@ msgstr "" msgid "Include sub-locations in filtered results" msgstr "" -#: stock/api.py:367 stock/serializers.py:1186 +#: stock/api.py:366 stock/serializers.py:1217 msgid "Parent Location" msgstr "" -#: stock/api.py:368 +#: stock/api.py:367 msgid "Filter by parent location" msgstr "" @@ -9550,8 +9910,8 @@ msgstr "" msgid "Expiry date after" msgstr "" -#: stock/api.py:840 stock/serializers.py:604 -#: stock/templates/stock/item_base.html:439 +#: stock/api.py:840 stock/serializers.py:631 +#: stock/templates/stock/item_base.html:436 #: templates/js/translated/table_filters.js:448 msgid "Stale" msgstr "" @@ -9560,594 +9920,598 @@ msgstr "" msgid "Quantity is required" msgstr "" -#: stock/api.py:933 +#: stock/api.py:932 msgid "Valid part must be supplied" msgstr "" -#: stock/api.py:964 +#: stock/api.py:959 msgid "The given supplier part does not exist" msgstr "" -#: stock/api.py:974 +#: stock/api.py:969 msgid "The supplier part has a pack size defined, but flag use_pack_size not set" msgstr "" -#: stock/api.py:1005 +#: stock/api.py:996 msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "" -#: stock/models.py:64 +#: stock/models.py:70 msgid "Stock Location type" msgstr "" -#: stock/models.py:65 +#: stock/models.py:71 msgid "Stock Location types" msgstr "" -#: stock/models.py:91 +#: stock/models.py:97 msgid "Default icon for all locations that have no icon set (optional)" msgstr "" -#: stock/models.py:131 stock/models.py:807 -#: stock/templates/stock/location.html:17 +#: stock/models.py:137 stock/models.py:884 +#: stock/templates/stock/location.html:18 #: stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "" -#: stock/models.py:132 stock/templates/stock/location.html:183 +#: stock/models.py:138 stock/templates/stock/location.html:184 #: templates/InvenTree/search.html:166 templates/js/translated/search.js:178 #: users/models.py:205 msgid "Stock Locations" msgstr "" -#: stock/models.py:180 stock/models.py:968 -#: stock/templates/stock/item_base.html:247 +#: stock/models.py:186 stock/models.py:1045 +#: stock/templates/stock/item_base.html:244 msgid "Owner" msgstr "" -#: stock/models.py:181 stock/models.py:969 +#: stock/models.py:187 stock/models.py:1046 msgid "Select Owner" msgstr "" -#: stock/models.py:189 +#: stock/models.py:195 msgid "Stock items may not be directly located into a structural stock locations, but may be located to child locations." msgstr "" -#: stock/models.py:196 templates/js/translated/stock.js:2865 +#: stock/models.py:202 templates/js/translated/stock.js:2866 #: templates/js/translated/table_filters.js:250 msgid "External" msgstr "" -#: stock/models.py:197 +#: stock/models.py:203 msgid "This is an external stock location" msgstr "" -#: stock/models.py:203 templates/js/translated/stock.js:2874 +#: stock/models.py:209 templates/js/translated/stock.js:2875 #: templates/js/translated/table_filters.js:253 msgid "Location type" msgstr "" -#: stock/models.py:207 +#: stock/models.py:213 msgid "Stock location type of this location" msgstr "" -#: stock/models.py:279 +#: stock/models.py:285 msgid "You cannot make this stock location structural because some stock items are already located into it!" msgstr "" -#: stock/models.py:664 +#: stock/models.py:492 +msgid "Part must be specified" +msgstr "" + +#: stock/models.py:741 msgid "Stock items cannot be located into structural stock locations!" msgstr "" -#: stock/models.py:691 stock/serializers.py:480 +#: stock/models.py:768 stock/serializers.py:492 msgid "Stock item cannot be created for virtual parts" msgstr "" -#: stock/models.py:708 +#: stock/models.py:785 #, python-brace-format msgid "Part type ('{self.supplier_part.part}') must be {self.part}" msgstr "" -#: stock/models.py:718 stock/models.py:731 +#: stock/models.py:795 stock/models.py:808 msgid "Quantity must be 1 for item with a serial number" msgstr "" -#: stock/models.py:721 +#: stock/models.py:798 msgid "Serial number cannot be set if quantity greater than 1" msgstr "" -#: stock/models.py:743 +#: stock/models.py:820 msgid "Item cannot belong to itself" msgstr "" -#: stock/models.py:748 +#: stock/models.py:825 msgid "Item must have a build reference if is_building=True" msgstr "" -#: stock/models.py:761 +#: stock/models.py:838 msgid "Build reference does not point to the same part object" msgstr "" -#: stock/models.py:777 +#: stock/models.py:854 msgid "Parent Stock Item" msgstr "" -#: stock/models.py:789 +#: stock/models.py:866 msgid "Base part" msgstr "" -#: stock/models.py:799 +#: stock/models.py:876 msgid "Select a matching supplier part for this stock item" msgstr "" -#: stock/models.py:811 +#: stock/models.py:888 msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:819 stock/serializers.py:1580 +#: stock/models.py:896 stock/serializers.py:1611 msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:830 +#: stock/models.py:907 msgid "Is this item installed in another item?" msgstr "" -#: stock/models.py:849 +#: stock/models.py:926 msgid "Serial number for this item" msgstr "" -#: stock/models.py:863 stock/serializers.py:1563 +#: stock/models.py:940 stock/serializers.py:1594 msgid "Batch code for this stock item" msgstr "" -#: stock/models.py:868 +#: stock/models.py:945 msgid "Stock Quantity" msgstr "" -#: stock/models.py:878 +#: stock/models.py:955 msgid "Source Build" msgstr "" -#: stock/models.py:881 +#: stock/models.py:958 msgid "Build for this stock item" msgstr "" -#: stock/models.py:888 stock/templates/stock/item_base.html:363 +#: stock/models.py:965 stock/templates/stock/item_base.html:360 msgid "Consumed By" msgstr "" -#: stock/models.py:891 +#: stock/models.py:968 msgid "Build order which consumed this stock item" msgstr "" -#: stock/models.py:900 +#: stock/models.py:977 msgid "Source Purchase Order" msgstr "" -#: stock/models.py:904 +#: stock/models.py:981 msgid "Purchase order for this stock item" msgstr "" -#: stock/models.py:910 +#: stock/models.py:987 msgid "Destination Sales Order" msgstr "" -#: stock/models.py:921 +#: stock/models.py:998 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "" -#: stock/models.py:939 +#: stock/models.py:1016 msgid "Delete on deplete" msgstr "" -#: stock/models.py:940 +#: stock/models.py:1017 msgid "Delete this Stock Item when stock is depleted" msgstr "" -#: stock/models.py:960 +#: stock/models.py:1037 msgid "Single unit purchase price at time of purchase" msgstr "" -#: stock/models.py:991 +#: stock/models.py:1068 msgid "Converted to part" msgstr "" -#: stock/models.py:1511 +#: stock/models.py:1600 msgid "Part is not set as trackable" msgstr "" -#: stock/models.py:1517 +#: stock/models.py:1606 msgid "Quantity must be integer" msgstr "" -#: stock/models.py:1525 +#: stock/models.py:1614 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({self.quantity})" msgstr "" -#: stock/models.py:1531 -msgid "Serial numbers must be a list of integers" +#: stock/models.py:1620 +msgid "Serial numbers must be provided as a list" msgstr "" -#: stock/models.py:1536 +#: stock/models.py:1625 msgid "Quantity does not match serial numbers" msgstr "" -#: stock/models.py:1544 stock/serializers.py:726 -msgid "Serial numbers already exist" -msgstr "" - -#: stock/models.py:1641 +#: stock/models.py:1747 stock/models.py:2563 msgid "Test template does not exist" msgstr "" -#: stock/models.py:1659 +#: stock/models.py:1765 msgid "Stock item has been assigned to a sales order" msgstr "" -#: stock/models.py:1663 +#: stock/models.py:1769 msgid "Stock item is installed in another item" msgstr "" -#: stock/models.py:1666 +#: stock/models.py:1772 msgid "Stock item contains other items" msgstr "" -#: stock/models.py:1669 +#: stock/models.py:1775 msgid "Stock item has been assigned to a customer" msgstr "" -#: stock/models.py:1672 +#: stock/models.py:1778 msgid "Stock item is currently in production" msgstr "" -#: stock/models.py:1675 +#: stock/models.py:1781 msgid "Serialized stock cannot be merged" msgstr "" -#: stock/models.py:1682 stock/serializers.py:1469 +#: stock/models.py:1788 stock/serializers.py:1500 msgid "Duplicate stock items" msgstr "" -#: stock/models.py:1686 +#: stock/models.py:1792 msgid "Stock items must refer to the same part" msgstr "" -#: stock/models.py:1694 +#: stock/models.py:1800 msgid "Stock items must refer to the same supplier part" msgstr "" -#: stock/models.py:1699 +#: stock/models.py:1805 msgid "Stock status codes must match" msgstr "" -#: stock/models.py:1960 +#: stock/models.py:2066 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:2343 +#: stock/models.py:2462 msgid "Stock Item Tracking" msgstr "" -#: stock/models.py:2376 +#: stock/models.py:2495 msgid "Entry notes" msgstr "" -#: stock/models.py:2416 +#: stock/models.py:2535 msgid "Stock Item Test Result" msgstr "" -#: stock/models.py:2449 +#: stock/models.py:2566 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:2454 +#: stock/models.py:2570 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:2459 +#: stock/models.py:2575 msgid "Invalid value for this test" msgstr "" -#: stock/models.py:2544 +#: stock/models.py:2660 msgid "Test result" msgstr "" -#: stock/models.py:2551 +#: stock/models.py:2667 msgid "Test output value" msgstr "" -#: stock/models.py:2559 +#: stock/models.py:2675 stock/serializers.py:245 msgid "Test result attachment" msgstr "" -#: stock/models.py:2563 +#: stock/models.py:2679 msgid "Test notes" msgstr "" -#: stock/models.py:2571 templates/js/translated/stock.js:1633 +#: stock/models.py:2687 templates/js/translated/stock.js:1633 msgid "Test station" msgstr "" -#: stock/models.py:2572 +#: stock/models.py:2688 msgid "The identifier of the test station where the test was performed" msgstr "" -#: stock/models.py:2578 +#: stock/models.py:2694 msgid "Started" msgstr "" -#: stock/models.py:2579 +#: stock/models.py:2695 msgid "The timestamp of the test start" msgstr "" -#: stock/models.py:2585 +#: stock/models.py:2701 msgid "Finished" msgstr "" -#: stock/models.py:2586 +#: stock/models.py:2702 msgid "The timestamp of the test finish" msgstr "" -#: stock/serializers.py:76 +#: stock/serializers.py:77 msgid "Generated batch code" msgstr "" -#: stock/serializers.py:85 +#: stock/serializers.py:86 msgid "Select build order" msgstr "" -#: stock/serializers.py:94 +#: stock/serializers.py:95 msgid "Select stock item to generate batch code for" msgstr "" -#: stock/serializers.py:103 +#: stock/serializers.py:104 msgid "Select location to generate batch code for" msgstr "" -#: stock/serializers.py:112 +#: stock/serializers.py:113 msgid "Select part to generate batch code for" msgstr "" -#: stock/serializers.py:121 +#: stock/serializers.py:122 msgid "Select purchase order" msgstr "" -#: stock/serializers.py:128 +#: stock/serializers.py:129 msgid "Enter quantity for batch code" msgstr "" -#: stock/serializers.py:151 +#: stock/serializers.py:152 msgid "Generated serial number" msgstr "" -#: stock/serializers.py:160 +#: stock/serializers.py:161 msgid "Select part to generate serial number for" msgstr "" -#: stock/serializers.py:168 +#: stock/serializers.py:169 msgid "Quantity of serial numbers to generate" msgstr "" -#: stock/serializers.py:233 +#: stock/serializers.py:234 msgid "Test template for this result" msgstr "" -#: stock/serializers.py:254 +#: stock/serializers.py:258 msgid "Template ID or test name must be provided" msgstr "" -#: stock/serializers.py:286 +#: stock/serializers.py:290 msgid "The test finished time cannot be earlier than the test started time" msgstr "" -#: stock/serializers.py:323 +#: stock/serializers.py:327 msgid "Serial number is too large" msgstr "" -#: stock/serializers.py:452 stock/templates/stock/item_base.html:193 +#: stock/serializers.py:462 stock/templates/stock/item_base.html:190 msgid "Parent Item" msgstr "" -#: stock/serializers.py:453 +#: stock/serializers.py:463 msgid "Parent stock item" msgstr "" -#: stock/serializers.py:472 +#: stock/serializers.py:484 msgid "Use pack size when adding: the quantity defined is the number of packs" msgstr "" -#: stock/serializers.py:596 stock/templates/stock/item_base.html:437 +#: stock/serializers.py:623 stock/templates/stock/item_base.html:434 #: templates/js/translated/table_filters.js:442 users/models.py:174 msgid "Expired" msgstr "" -#: stock/serializers.py:602 stock/templates/stock/stock_sidebar.html:20 +#: stock/serializers.py:629 stock/templates/stock/stock_sidebar.html:20 msgid "Child Items" msgstr "" -#: stock/serializers.py:606 +#: stock/serializers.py:633 msgid "Tracking Items" msgstr "" -#: stock/serializers.py:612 +#: stock/serializers.py:639 msgid "Purchase price of this stock item, per unit or pack" msgstr "" -#: stock/serializers.py:631 +#: stock/serializers.py:658 msgid "Minimum Pricing" msgstr "" -#: stock/serializers.py:637 +#: stock/serializers.py:664 msgid "Maximum Pricing" msgstr "" -#: stock/serializers.py:661 +#: stock/serializers.py:688 msgid "Enter number of stock items to serialize" msgstr "" -#: stock/serializers.py:674 +#: stock/serializers.py:701 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({q})" msgstr "" -#: stock/serializers.py:681 +#: stock/serializers.py:708 msgid "Enter serial numbers for new items" msgstr "" -#: stock/serializers.py:692 stock/serializers.py:1426 stock/serializers.py:1682 +#: stock/serializers.py:719 stock/serializers.py:1457 stock/serializers.py:1713 msgid "Destination stock location" msgstr "" -#: stock/serializers.py:699 +#: stock/serializers.py:726 msgid "Optional note field" msgstr "" -#: stock/serializers.py:709 +#: stock/serializers.py:736 msgid "Serial numbers cannot be assigned to this part" msgstr "" -#: stock/serializers.py:764 +#: stock/serializers.py:756 +msgid "Serial numbers already exist" +msgstr "" + +#: stock/serializers.py:795 msgid "Select stock item to install" msgstr "" -#: stock/serializers.py:771 +#: stock/serializers.py:802 msgid "Quantity to Install" msgstr "" -#: stock/serializers.py:772 +#: stock/serializers.py:803 msgid "Enter the quantity of items to install" msgstr "" -#: stock/serializers.py:777 stock/serializers.py:857 stock/serializers.py:983 -#: stock/serializers.py:1033 +#: stock/serializers.py:808 stock/serializers.py:888 stock/serializers.py:1014 +#: stock/serializers.py:1064 msgid "Add transaction note (optional)" msgstr "" -#: stock/serializers.py:785 +#: stock/serializers.py:816 msgid "Quantity to install must be at least 1" msgstr "" -#: stock/serializers.py:793 +#: stock/serializers.py:824 msgid "Stock item is unavailable" msgstr "" -#: stock/serializers.py:804 +#: stock/serializers.py:835 msgid "Selected part is not in the Bill of Materials" msgstr "" -#: stock/serializers.py:817 +#: stock/serializers.py:848 msgid "Quantity to install must not exceed available quantity" msgstr "" -#: stock/serializers.py:852 +#: stock/serializers.py:883 msgid "Destination location for uninstalled item" msgstr "" -#: stock/serializers.py:903 +#: stock/serializers.py:934 msgid "Unsupported statistic type: " msgstr "" -#: stock/serializers.py:917 +#: stock/serializers.py:948 msgid "Select part to convert stock item into" msgstr "" -#: stock/serializers.py:930 +#: stock/serializers.py:961 msgid "Selected part is not a valid option for conversion" msgstr "" -#: stock/serializers.py:947 +#: stock/serializers.py:978 msgid "Cannot convert stock item with assigned SupplierPart" msgstr "" -#: stock/serializers.py:978 +#: stock/serializers.py:1009 msgid "Destination location for returned item" msgstr "" -#: stock/serializers.py:1015 +#: stock/serializers.py:1046 msgid "Select stock items to change status" msgstr "" -#: stock/serializers.py:1021 +#: stock/serializers.py:1052 msgid "No stock items selected" msgstr "" -#: stock/serializers.py:1117 stock/serializers.py:1194 -#: stock/templates/stock/location.html:162 -#: stock/templates/stock/location.html:219 +#: stock/serializers.py:1148 stock/serializers.py:1225 +#: stock/templates/stock/location.html:163 +#: stock/templates/stock/location.html:220 #: stock/templates/stock/location_sidebar.html:5 msgid "Sublocations" msgstr "" -#: stock/serializers.py:1187 templates/js/translated/stock.js:160 +#: stock/serializers.py:1218 templates/js/translated/stock.js:160 msgid "Parent stock location" msgstr "" -#: stock/serializers.py:1298 +#: stock/serializers.py:1329 msgid "Part must be salable" msgstr "" -#: stock/serializers.py:1302 +#: stock/serializers.py:1333 msgid "Item is allocated to a sales order" msgstr "" -#: stock/serializers.py:1306 +#: stock/serializers.py:1337 msgid "Item is allocated to a build order" msgstr "" -#: stock/serializers.py:1330 +#: stock/serializers.py:1361 msgid "Customer to assign stock items" msgstr "" -#: stock/serializers.py:1336 +#: stock/serializers.py:1367 msgid "Selected company is not a customer" msgstr "" -#: stock/serializers.py:1344 +#: stock/serializers.py:1375 msgid "Stock assignment notes" msgstr "" -#: stock/serializers.py:1354 stock/serializers.py:1608 +#: stock/serializers.py:1385 stock/serializers.py:1639 msgid "A list of stock items must be provided" msgstr "" -#: stock/serializers.py:1433 +#: stock/serializers.py:1464 msgid "Stock merging notes" msgstr "" -#: stock/serializers.py:1438 +#: stock/serializers.py:1469 msgid "Allow mismatched suppliers" msgstr "" -#: stock/serializers.py:1439 +#: stock/serializers.py:1470 msgid "Allow stock items with different supplier parts to be merged" msgstr "" -#: stock/serializers.py:1444 +#: stock/serializers.py:1475 msgid "Allow mismatched status" msgstr "" -#: stock/serializers.py:1445 +#: stock/serializers.py:1476 msgid "Allow stock items with different status codes to be merged" msgstr "" -#: stock/serializers.py:1455 +#: stock/serializers.py:1486 msgid "At least two stock items must be provided" msgstr "" -#: stock/serializers.py:1522 +#: stock/serializers.py:1553 msgid "No Change" msgstr "" -#: stock/serializers.py:1551 +#: stock/serializers.py:1582 msgid "StockItem primary key value" msgstr "" -#: stock/serializers.py:1570 +#: stock/serializers.py:1601 msgid "Stock item status code" msgstr "" -#: stock/serializers.py:1598 +#: stock/serializers.py:1629 msgid "Stock transaction notes" msgstr "" @@ -10175,107 +10539,107 @@ msgstr "" msgid "Quarantined" msgstr "" -#: stock/status_codes.py:40 +#: stock/status_codes.py:44 msgid "Legacy stock tracking entry" msgstr "" -#: stock/status_codes.py:42 templates/js/translated/stock.js:550 +#: stock/status_codes.py:46 templates/js/translated/stock.js:550 msgid "Stock item created" msgstr "" -#: stock/status_codes.py:45 +#: stock/status_codes.py:49 msgid "Edited stock item" msgstr "" -#: stock/status_codes.py:46 +#: stock/status_codes.py:50 msgid "Assigned serial number" msgstr "" -#: stock/status_codes.py:49 +#: stock/status_codes.py:53 msgid "Stock counted" msgstr "" -#: stock/status_codes.py:50 +#: stock/status_codes.py:54 msgid "Stock manually added" msgstr "" -#: stock/status_codes.py:51 +#: stock/status_codes.py:55 msgid "Stock manually removed" msgstr "" -#: stock/status_codes.py:54 +#: stock/status_codes.py:58 msgid "Location changed" msgstr "" -#: stock/status_codes.py:55 +#: stock/status_codes.py:59 msgid "Stock updated" msgstr "" -#: stock/status_codes.py:58 +#: stock/status_codes.py:62 msgid "Installed into assembly" msgstr "" -#: stock/status_codes.py:59 +#: stock/status_codes.py:63 msgid "Removed from assembly" msgstr "" -#: stock/status_codes.py:61 +#: stock/status_codes.py:65 msgid "Installed component item" msgstr "" -#: stock/status_codes.py:62 +#: stock/status_codes.py:66 msgid "Removed component item" msgstr "" -#: stock/status_codes.py:65 +#: stock/status_codes.py:69 msgid "Split from parent item" msgstr "" -#: stock/status_codes.py:66 +#: stock/status_codes.py:70 msgid "Split child item" msgstr "" -#: stock/status_codes.py:69 templates/js/translated/stock.js:1943 +#: stock/status_codes.py:73 templates/js/translated/stock.js:1944 msgid "Merged stock items" msgstr "" -#: stock/status_codes.py:72 +#: stock/status_codes.py:76 msgid "Converted to variant" msgstr "" -#: stock/status_codes.py:75 +#: stock/status_codes.py:79 msgid "Build order output created" msgstr "" -#: stock/status_codes.py:76 +#: stock/status_codes.py:80 msgid "Build order output completed" msgstr "" -#: stock/status_codes.py:77 +#: stock/status_codes.py:81 msgid "Build order output rejected" msgstr "" -#: stock/status_codes.py:78 templates/js/translated/stock.js:1849 +#: stock/status_codes.py:82 templates/js/translated/stock.js:1849 msgid "Consumed by build order" msgstr "" -#: stock/status_codes.py:81 +#: stock/status_codes.py:85 msgid "Shipped against Sales Order" msgstr "" -#: stock/status_codes.py:84 +#: stock/status_codes.py:88 msgid "Received against Purchase Order" msgstr "" -#: stock/status_codes.py:87 +#: stock/status_codes.py:91 msgid "Returned against Return Order" msgstr "" -#: stock/status_codes.py:90 templates/js/translated/table_filters.js:382 +#: stock/status_codes.py:94 templates/js/translated/table_filters.js:382 msgid "Sent to customer" msgstr "" -#: stock/status_codes.py:91 +#: stock/status_codes.py:95 msgid "Returned from customer" msgstr "" @@ -10296,7 +10660,7 @@ msgstr "" msgid "Test Data" msgstr "" -#: stock/templates/stock/item.html:85 stock/templates/stock/item_base.html:65 +#: stock/templates/stock/item.html:85 msgid "Test Report" msgstr "" @@ -10316,7 +10680,7 @@ msgstr "" msgid "Installed Stock Items" msgstr "" -#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3354 +#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3355 msgid "Install Stock Item" msgstr "" @@ -10328,208 +10692,212 @@ msgstr "" msgid "Add Test Result" msgstr "" -#: stock/templates/stock/item_base.html:33 +#: stock/templates/stock/item_base.html:34 msgid "Locate stock item" msgstr "" -#: stock/templates/stock/item_base.html:51 +#: stock/templates/stock/item_base.html:52 msgid "Scan to Location" msgstr "" #: stock/templates/stock/item_base.html:59 -#: stock/templates/stock/location.html:67 +#: stock/templates/stock/location.html:68 #: templates/js/translated/filters.js:434 msgid "Printing actions" msgstr "" -#: stock/templates/stock/item_base.html:75 +#: stock/templates/stock/item_base.html:64 templates/js/translated/report.js:49 +msgid "Print Report" +msgstr "" + +#: stock/templates/stock/item_base.html:72 msgid "Stock adjustment actions" msgstr "" -#: stock/templates/stock/item_base.html:79 -#: stock/templates/stock/location.html:87 templates/js/translated/stock.js:1909 +#: stock/templates/stock/item_base.html:76 +#: stock/templates/stock/location.html:88 templates/js/translated/stock.js:1909 msgid "Count stock" msgstr "" -#: stock/templates/stock/item_base.html:81 +#: stock/templates/stock/item_base.html:78 #: templates/js/translated/stock.js:1891 msgid "Add stock" msgstr "" -#: stock/templates/stock/item_base.html:82 +#: stock/templates/stock/item_base.html:79 #: templates/js/translated/stock.js:1900 msgid "Remove stock" msgstr "" -#: stock/templates/stock/item_base.html:85 +#: stock/templates/stock/item_base.html:82 msgid "Serialize stock" msgstr "" -#: stock/templates/stock/item_base.html:88 -#: stock/templates/stock/location.html:93 templates/js/translated/stock.js:1918 +#: stock/templates/stock/item_base.html:85 +#: stock/templates/stock/location.html:94 templates/js/translated/stock.js:1918 msgid "Transfer stock" msgstr "" -#: stock/templates/stock/item_base.html:91 -#: templates/js/translated/stock.js:1972 +#: stock/templates/stock/item_base.html:88 +#: templates/js/translated/stock.js:1973 msgid "Assign to customer" msgstr "" -#: stock/templates/stock/item_base.html:94 +#: stock/templates/stock/item_base.html:91 msgid "Return to stock" msgstr "" -#: stock/templates/stock/item_base.html:97 +#: stock/templates/stock/item_base.html:94 msgid "Uninstall stock item" msgstr "" -#: stock/templates/stock/item_base.html:97 +#: stock/templates/stock/item_base.html:94 msgid "Uninstall" msgstr "" -#: stock/templates/stock/item_base.html:101 +#: stock/templates/stock/item_base.html:98 msgid "Install stock item" msgstr "" -#: stock/templates/stock/item_base.html:101 +#: stock/templates/stock/item_base.html:98 msgid "Install" msgstr "" -#: stock/templates/stock/item_base.html:115 +#: stock/templates/stock/item_base.html:112 msgid "Convert to variant" msgstr "" -#: stock/templates/stock/item_base.html:118 +#: stock/templates/stock/item_base.html:115 msgid "Duplicate stock item" msgstr "" -#: stock/templates/stock/item_base.html:120 +#: stock/templates/stock/item_base.html:117 msgid "Edit stock item" msgstr "" -#: stock/templates/stock/item_base.html:123 +#: stock/templates/stock/item_base.html:120 msgid "Delete stock item" msgstr "" -#: stock/templates/stock/item_base.html:169 templates/InvenTree/search.html:139 -#: templates/js/translated/build.js:2295 templates/navbar.html:38 +#: stock/templates/stock/item_base.html:166 templates/InvenTree/search.html:139 +#: templates/js/translated/build.js:2298 templates/navbar.html:38 msgid "Build" msgstr "" -#: stock/templates/stock/item_base.html:211 +#: stock/templates/stock/item_base.html:208 msgid "No manufacturer set" msgstr "" -#: stock/templates/stock/item_base.html:251 +#: stock/templates/stock/item_base.html:248 msgid "You are not in the list of owners of this item. This stock item cannot be edited." msgstr "" -#: stock/templates/stock/item_base.html:252 -#: stock/templates/stock/location.html:146 +#: stock/templates/stock/item_base.html:249 +#: stock/templates/stock/location.html:147 msgid "Read only" msgstr "" -#: stock/templates/stock/item_base.html:265 +#: stock/templates/stock/item_base.html:262 msgid "This stock item is unavailable" msgstr "" -#: stock/templates/stock/item_base.html:271 +#: stock/templates/stock/item_base.html:268 msgid "This stock item is in production and cannot be edited." msgstr "" -#: stock/templates/stock/item_base.html:272 +#: stock/templates/stock/item_base.html:269 msgid "Edit the stock item from the build view." msgstr "" -#: stock/templates/stock/item_base.html:287 +#: stock/templates/stock/item_base.html:284 msgid "This stock item is allocated to Sales Order" msgstr "" -#: stock/templates/stock/item_base.html:295 +#: stock/templates/stock/item_base.html:292 msgid "This stock item is allocated to Build Order" msgstr "" -#: stock/templates/stock/item_base.html:311 +#: stock/templates/stock/item_base.html:308 msgid "This stock item is serialized. It has a unique serial number and the quantity cannot be adjusted" msgstr "" -#: stock/templates/stock/item_base.html:317 +#: stock/templates/stock/item_base.html:314 msgid "previous page" msgstr "" -#: stock/templates/stock/item_base.html:317 +#: stock/templates/stock/item_base.html:314 msgid "Navigate to previous serial number" msgstr "" -#: stock/templates/stock/item_base.html:326 +#: stock/templates/stock/item_base.html:323 msgid "next page" msgstr "" -#: stock/templates/stock/item_base.html:326 +#: stock/templates/stock/item_base.html:323 msgid "Navigate to next serial number" msgstr "" -#: stock/templates/stock/item_base.html:398 -#: templates/js/translated/build.js:2552 +#: stock/templates/stock/item_base.html:395 +#: templates/js/translated/build.js:2559 msgid "No location set" msgstr "" -#: stock/templates/stock/item_base.html:413 +#: stock/templates/stock/item_base.html:410 msgid "Tests" msgstr "" -#: stock/templates/stock/item_base.html:419 +#: stock/templates/stock/item_base.html:416 msgid "This stock item has not passed all required tests" msgstr "" -#: stock/templates/stock/item_base.html:437 +#: stock/templates/stock/item_base.html:434 #, python-format msgid "This StockItem expired on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:439 +#: stock/templates/stock/item_base.html:436 #, python-format msgid "This StockItem expires on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:455 +#: stock/templates/stock/item_base.html:452 msgid "No stocktake performed" msgstr "" -#: stock/templates/stock/item_base.html:504 -#: templates/js/translated/stock.js:2037 +#: stock/templates/stock/item_base.html:501 +#: templates/js/translated/stock.js:2038 msgid "stock item" msgstr "" -#: stock/templates/stock/item_base.html:527 +#: stock/templates/stock/item_base.html:524 msgid "Edit Stock Status" msgstr "" -#: stock/templates/stock/item_base.html:536 +#: stock/templates/stock/item_base.html:533 msgid "Stock Item QR Code" msgstr "" -#: stock/templates/stock/item_base.html:547 +#: stock/templates/stock/item_base.html:544 msgid "Link Barcode to Stock Item" msgstr "" -#: stock/templates/stock/item_base.html:611 +#: stock/templates/stock/item_base.html:608 msgid "Select one of the part variants listed below." msgstr "" -#: stock/templates/stock/item_base.html:614 +#: stock/templates/stock/item_base.html:611 msgid "Warning" msgstr "" -#: stock/templates/stock/item_base.html:615 +#: stock/templates/stock/item_base.html:612 msgid "This action cannot be easily undone" msgstr "" -#: stock/templates/stock/item_base.html:623 +#: stock/templates/stock/item_base.html:620 msgid "Convert Stock Item" msgstr "" -#: stock/templates/stock/item_base.html:656 +#: stock/templates/stock/item_base.html:653 msgid "Return to Stock" msgstr "" @@ -10541,84 +10909,84 @@ msgstr "" msgid "Select quantity to serialize, and unique serial numbers." msgstr "" -#: stock/templates/stock/location.html:35 +#: stock/templates/stock/location.html:36 msgid "Perform stocktake for this stock location" msgstr "" -#: stock/templates/stock/location.html:42 +#: stock/templates/stock/location.html:43 msgid "Locate stock location" msgstr "" -#: stock/templates/stock/location.html:60 +#: stock/templates/stock/location.html:61 msgid "Scan stock items into this location" msgstr "" -#: stock/templates/stock/location.html:60 +#: stock/templates/stock/location.html:61 msgid "Scan In Stock Items" msgstr "" -#: stock/templates/stock/location.html:61 +#: stock/templates/stock/location.html:62 msgid "Scan stock container into this location" msgstr "" -#: stock/templates/stock/location.html:61 +#: stock/templates/stock/location.html:62 msgid "Scan In Container" msgstr "" -#: stock/templates/stock/location.html:72 +#: stock/templates/stock/location.html:73 msgid "Print Location Report" msgstr "" -#: stock/templates/stock/location.html:101 +#: stock/templates/stock/location.html:102 msgid "Location actions" msgstr "" -#: stock/templates/stock/location.html:103 +#: stock/templates/stock/location.html:104 msgid "Edit location" msgstr "" -#: stock/templates/stock/location.html:105 +#: stock/templates/stock/location.html:106 msgid "Delete location" msgstr "" -#: stock/templates/stock/location.html:135 +#: stock/templates/stock/location.html:136 msgid "Top level stock location" msgstr "" -#: stock/templates/stock/location.html:141 +#: stock/templates/stock/location.html:142 msgid "Location Owner" msgstr "" -#: stock/templates/stock/location.html:145 +#: stock/templates/stock/location.html:146 msgid "You are not in the list of owners of this location. This stock location cannot be edited." msgstr "" -#: stock/templates/stock/location.html:173 +#: stock/templates/stock/location.html:174 msgid "Location Type" msgstr "" -#: stock/templates/stock/location.html:223 +#: stock/templates/stock/location.html:224 msgid "Create new stock location" msgstr "" -#: stock/templates/stock/location.html:224 +#: stock/templates/stock/location.html:225 msgid "New Location" msgstr "" -#: stock/templates/stock/location.html:298 -#: templates/js/translated/stock.js:2657 +#: stock/templates/stock/location.html:299 +#: templates/js/translated/stock.js:2658 msgid "stock location" msgstr "" -#: stock/templates/stock/location.html:320 +#: stock/templates/stock/location.html:321 msgid "Scanned stock container into this location" msgstr "" -#: stock/templates/stock/location.html:393 +#: stock/templates/stock/location.html:394 msgid "Stock Location QR Code" msgstr "" -#: stock/templates/stock/location.html:404 +#: stock/templates/stock/location.html:405 msgid "Link Barcode to Stock Location" msgstr "" @@ -10630,10 +10998,6 @@ msgstr "" msgid "Stock Tracking" msgstr "" -#: stock/templates/stock/stock_sidebar.html:8 -msgid "Allocations" -msgstr "" - #: templates/403.html:6 templates/403.html:12 templates/403_csrf.html:7 msgid "Permission Denied" msgstr "" @@ -11107,9 +11471,9 @@ msgid "Rate" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:81 -#: templates/js/translated/forms.js:548 templates/js/translated/helpers.js:108 +#: templates/js/translated/forms.js:548 templates/js/translated/helpers.js:109 #: templates/js/translated/part.js:395 templates/js/translated/pricing.js:629 -#: templates/js/translated/stock.js:252 users/models.py:406 +#: templates/js/translated/stock.js:252 users/models.py:408 msgid "Delete" msgstr "" @@ -11130,7 +11494,7 @@ msgid "No project codes found" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:158 -#: templates/js/translated/build.js:2400 +#: templates/js/translated/build.js:2403 msgid "group" msgstr "" @@ -11196,7 +11560,7 @@ msgid "Delete Location Type" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:503 -#: templates/InvenTree/settings/stock.html:38 +#: templates/InvenTree/settings/stock.html:39 msgid "New Location Type" msgstr "" @@ -11253,7 +11617,7 @@ msgstr "" msgid "Stock Settings" msgstr "" -#: templates/InvenTree/settings/stock.html:34 +#: templates/InvenTree/settings/stock.html:35 msgid "Stock Location Types" msgstr "" @@ -11280,7 +11644,7 @@ msgid "Unverified" msgstr "" #: templates/InvenTree/settings/user.html:80 -#: templates/js/translated/company.js:957 +#: templates/js/translated/company.js:958 msgid "Primary" msgstr "" @@ -11532,7 +11896,7 @@ msgid "Submit Bug Report" msgstr "" #: templates/about.html:91 templates/clip.html:4 -#: templates/js/translated/helpers.js:592 +#: templates/js/translated/helpers.js:598 msgid "copy to clipboard" msgstr "" @@ -11738,23 +12102,24 @@ msgstr "" msgid "Barcode Identifier" msgstr "" -#: templates/base.html:103 +#: templates/base.html:102 msgid "Server Restart Required" msgstr "" -#: templates/base.html:106 +#: templates/base.html:105 msgid "A configuration option has been changed which requires a server restart" msgstr "" -#: templates/base.html:106 templates/base.html:116 +#: templates/base.html:105 templates/base.html:115 +#: templates/socialaccount/authentication_error.html:13 msgid "Contact your system administrator for further information" msgstr "" -#: templates/base.html:113 +#: templates/base.html:112 msgid "Pending Database Migrations" msgstr "" -#: templates/base.html:116 +#: templates/base.html:115 msgid "There are pending database migrations which require attention" msgstr "" @@ -11787,7 +12152,7 @@ msgid "The following parts are low on required stock" msgstr "" #: templates/email/build_order_required_stock.html:18 -#: templates/js/translated/bom.js:1674 templates/js/translated/build.js:2747 +#: templates/js/translated/bom.js:1674 templates/js/translated/build.js:2765 msgid "Required Quantity" msgstr "" @@ -11801,7 +12166,7 @@ msgid "Click on the following link to view this part" msgstr "" #: templates/email/low_stock_notification.html:18 -#: templates/js/translated/part.js:3237 +#: templates/js/translated/part.js:3253 msgid "Minimum Quantity" msgstr "" @@ -12039,7 +12404,7 @@ msgstr "" #: templates/js/translated/bom.js:189 templates/js/translated/bom.js:700 #: templates/js/translated/modals.js:75 templates/js/translated/modals.js:629 #: templates/js/translated/modals.js:757 templates/js/translated/modals.js:1065 -#: templates/js/translated/purchase_order.js:797 templates/modals.html:15 +#: templates/js/translated/purchase_order.js:780 templates/modals.html:15 #: templates/modals.html:27 templates/modals.html:39 templates/modals.html:50 msgid "Close" msgstr "" @@ -12156,7 +12521,7 @@ msgstr "" msgid "Substitutes Available" msgstr "" -#: templates/js/translated/bom.js:950 templates/js/translated/build.js:2673 +#: templates/js/translated/bom.js:950 templates/js/translated/build.js:2682 msgid "Variant stock allowed" msgstr "" @@ -12176,30 +12541,30 @@ msgstr "" msgid "No pricing available" msgstr "" -#: templates/js/translated/bom.js:1184 templates/js/translated/build.js:2812 +#: templates/js/translated/bom.js:1184 templates/js/translated/build.js:2830 msgid "External stock" msgstr "" -#: templates/js/translated/bom.js:1188 templates/js/translated/build.js:2786 -#: templates/js/translated/sales_order.js:1946 +#: templates/js/translated/bom.js:1188 templates/js/translated/build.js:2804 +#: templates/js/translated/sales_order.js:1927 msgid "No Stock Available" msgstr "" -#: templates/js/translated/bom.js:1193 templates/js/translated/build.js:2790 +#: templates/js/translated/bom.js:1193 templates/js/translated/build.js:2808 msgid "Includes variant and substitute stock" msgstr "" -#: templates/js/translated/bom.js:1195 templates/js/translated/build.js:2792 +#: templates/js/translated/bom.js:1195 templates/js/translated/build.js:2810 #: templates/js/translated/part.js:1263 -#: templates/js/translated/sales_order.js:1943 +#: templates/js/translated/sales_order.js:1924 msgid "Includes variant stock" msgstr "" -#: templates/js/translated/bom.js:1197 templates/js/translated/build.js:2794 +#: templates/js/translated/bom.js:1197 templates/js/translated/build.js:2812 msgid "Includes substitute stock" msgstr "" -#: templates/js/translated/bom.js:1225 templates/js/translated/build.js:2777 +#: templates/js/translated/bom.js:1225 templates/js/translated/build.js:2795 msgid "Consumable item" msgstr "" @@ -12231,7 +12596,7 @@ msgstr "" msgid "No BOM items found" msgstr "" -#: templates/js/translated/bom.js:1657 templates/js/translated/build.js:2658 +#: templates/js/translated/bom.js:1657 templates/js/translated/build.js:2667 msgid "Required Part" msgstr "" @@ -12243,396 +12608,396 @@ msgstr "" msgid "Edit Build Order" msgstr "" -#: templates/js/translated/build.js:191 +#: templates/js/translated/build.js:194 msgid "Create Build Order" msgstr "" -#: templates/js/translated/build.js:223 +#: templates/js/translated/build.js:226 msgid "Cancel Build Order" msgstr "" -#: templates/js/translated/build.js:232 +#: templates/js/translated/build.js:235 msgid "Are you sure you wish to cancel this build?" msgstr "" -#: templates/js/translated/build.js:238 +#: templates/js/translated/build.js:241 msgid "Stock items have been allocated to this build order" msgstr "" -#: templates/js/translated/build.js:245 +#: templates/js/translated/build.js:248 msgid "There are incomplete outputs remaining for this build order" msgstr "" -#: templates/js/translated/build.js:297 +#: templates/js/translated/build.js:300 msgid "Build order is ready to be completed" msgstr "" -#: templates/js/translated/build.js:305 +#: templates/js/translated/build.js:308 msgid "This build order cannot be completed as there are incomplete outputs" msgstr "" -#: templates/js/translated/build.js:310 +#: templates/js/translated/build.js:313 msgid "Build Order is incomplete" msgstr "" -#: templates/js/translated/build.js:328 +#: templates/js/translated/build.js:331 msgid "Complete Build Order" msgstr "" -#: templates/js/translated/build.js:369 templates/js/translated/stock.js:127 +#: templates/js/translated/build.js:372 templates/js/translated/stock.js:127 #: templates/js/translated/stock.js:301 msgid "Next available serial number" msgstr "" -#: templates/js/translated/build.js:371 templates/js/translated/stock.js:129 +#: templates/js/translated/build.js:374 templates/js/translated/stock.js:129 #: templates/js/translated/stock.js:303 msgid "Latest serial number" msgstr "" -#: templates/js/translated/build.js:380 +#: templates/js/translated/build.js:383 msgid "The Bill of Materials contains trackable parts" msgstr "" -#: templates/js/translated/build.js:381 +#: templates/js/translated/build.js:384 msgid "Build outputs must be generated individually" msgstr "" -#: templates/js/translated/build.js:389 +#: templates/js/translated/build.js:392 msgid "Trackable parts can have serial numbers specified" msgstr "" -#: templates/js/translated/build.js:390 +#: templates/js/translated/build.js:393 msgid "Enter serial numbers to generate multiple single build outputs" msgstr "" -#: templates/js/translated/build.js:397 +#: templates/js/translated/build.js:400 msgid "Create Build Output" msgstr "" -#: templates/js/translated/build.js:428 +#: templates/js/translated/build.js:431 msgid "Allocate stock items to this build output" msgstr "" -#: templates/js/translated/build.js:436 +#: templates/js/translated/build.js:439 msgid "Deallocate stock from build output" msgstr "" -#: templates/js/translated/build.js:445 +#: templates/js/translated/build.js:448 msgid "Complete build output" msgstr "" -#: templates/js/translated/build.js:453 +#: templates/js/translated/build.js:456 msgid "Scrap build output" msgstr "" -#: templates/js/translated/build.js:460 +#: templates/js/translated/build.js:463 msgid "Delete build output" msgstr "" -#: templates/js/translated/build.js:480 +#: templates/js/translated/build.js:483 msgid "Are you sure you wish to deallocate the selected stock items from this build?" msgstr "" -#: templates/js/translated/build.js:498 +#: templates/js/translated/build.js:501 msgid "Deallocate Stock Items" msgstr "" -#: templates/js/translated/build.js:584 templates/js/translated/build.js:711 -#: templates/js/translated/build.js:836 +#: templates/js/translated/build.js:587 templates/js/translated/build.js:714 +#: templates/js/translated/build.js:839 msgid "Select Build Outputs" msgstr "" -#: templates/js/translated/build.js:585 templates/js/translated/build.js:712 -#: templates/js/translated/build.js:837 +#: templates/js/translated/build.js:588 templates/js/translated/build.js:715 +#: templates/js/translated/build.js:840 msgid "At least one build output must be selected" msgstr "" -#: templates/js/translated/build.js:599 +#: templates/js/translated/build.js:602 msgid "Selected build outputs will be marked as complete" msgstr "" -#: templates/js/translated/build.js:603 templates/js/translated/build.js:736 -#: templates/js/translated/build.js:859 +#: templates/js/translated/build.js:606 templates/js/translated/build.js:739 +#: templates/js/translated/build.js:862 msgid "Output" msgstr "" -#: templates/js/translated/build.js:630 +#: templates/js/translated/build.js:633 msgid "Complete Build Outputs" msgstr "" -#: templates/js/translated/build.js:727 +#: templates/js/translated/build.js:730 msgid "Selected build outputs will be marked as scrapped" msgstr "" -#: templates/js/translated/build.js:729 +#: templates/js/translated/build.js:732 msgid "Scrapped output are marked as rejected" msgstr "" -#: templates/js/translated/build.js:730 +#: templates/js/translated/build.js:733 msgid "Allocated stock items will no longer be available" msgstr "" -#: templates/js/translated/build.js:731 +#: templates/js/translated/build.js:734 msgid "The completion status of the build order will not be adjusted" msgstr "" -#: templates/js/translated/build.js:761 +#: templates/js/translated/build.js:764 msgid "Scrap Build Outputs" msgstr "" -#: templates/js/translated/build.js:851 +#: templates/js/translated/build.js:854 msgid "Selected build outputs will be deleted" msgstr "" -#: templates/js/translated/build.js:853 +#: templates/js/translated/build.js:856 msgid "Build output data will be permanently deleted" msgstr "" -#: templates/js/translated/build.js:854 +#: templates/js/translated/build.js:857 msgid "Allocated stock items will be returned to stock" msgstr "" -#: templates/js/translated/build.js:872 +#: templates/js/translated/build.js:875 msgid "Delete Build Outputs" msgstr "" -#: templates/js/translated/build.js:959 +#: templates/js/translated/build.js:962 msgid "Delete allocations" msgstr "" -#: templates/js/translated/build.js:966 +#: templates/js/translated/build.js:969 msgid "Delete Stock Allocations" msgstr "" -#: templates/js/translated/build.js:989 +#: templates/js/translated/build.js:992 msgid "No allocated stock" msgstr "" -#: templates/js/translated/build.js:1045 +#: templates/js/translated/build.js:1048 msgid "Stock item" msgstr "" -#: templates/js/translated/build.js:1070 +#: templates/js/translated/build.js:1073 msgid "Edit build allocation" msgstr "" -#: templates/js/translated/build.js:1071 +#: templates/js/translated/build.js:1074 msgid "Delete build allocation" msgstr "" -#: templates/js/translated/build.js:1089 +#: templates/js/translated/build.js:1092 msgid "Edit Build Allocation" msgstr "" -#: templates/js/translated/build.js:1102 +#: templates/js/translated/build.js:1105 msgid "Delete Build Allocation" msgstr "" -#: templates/js/translated/build.js:1133 +#: templates/js/translated/build.js:1136 msgid "No build order allocations found" msgstr "" -#: templates/js/translated/build.js:1178 +#: templates/js/translated/build.js:1181 msgid "Location not specified" msgstr "" -#: templates/js/translated/build.js:1200 +#: templates/js/translated/build.js:1203 msgid "Complete outputs" msgstr "" -#: templates/js/translated/build.js:1218 +#: templates/js/translated/build.js:1221 msgid "Scrap outputs" msgstr "" -#: templates/js/translated/build.js:1236 +#: templates/js/translated/build.js:1239 msgid "Delete outputs" msgstr "" -#: templates/js/translated/build.js:1289 +#: templates/js/translated/build.js:1292 msgid "build output" msgstr "" -#: templates/js/translated/build.js:1290 +#: templates/js/translated/build.js:1293 msgid "build outputs" msgstr "" -#: templates/js/translated/build.js:1294 +#: templates/js/translated/build.js:1297 msgid "Build output actions" msgstr "" -#: templates/js/translated/build.js:1470 +#: templates/js/translated/build.js:1473 msgid "No active build outputs found" msgstr "" -#: templates/js/translated/build.js:1563 +#: templates/js/translated/build.js:1566 msgid "Allocated Lines" msgstr "" -#: templates/js/translated/build.js:1577 +#: templates/js/translated/build.js:1580 msgid "Required Tests" msgstr "" -#: templates/js/translated/build.js:1749 -#: templates/js/translated/purchase_order.js:611 -#: templates/js/translated/sales_order.js:1207 +#: templates/js/translated/build.js:1752 +#: templates/js/translated/purchase_order.js:594 +#: templates/js/translated/sales_order.js:1173 msgid "Select Parts" msgstr "" -#: templates/js/translated/build.js:1750 -#: templates/js/translated/sales_order.js:1208 +#: templates/js/translated/build.js:1753 +#: templates/js/translated/sales_order.js:1174 msgid "You must select at least one part to allocate" msgstr "" -#: templates/js/translated/build.js:1813 -#: templates/js/translated/sales_order.js:1157 +#: templates/js/translated/build.js:1816 +#: templates/js/translated/sales_order.js:1123 msgid "Specify stock allocation quantity" msgstr "" -#: templates/js/translated/build.js:1890 +#: templates/js/translated/build.js:1893 msgid "All Parts Allocated" msgstr "" -#: templates/js/translated/build.js:1891 +#: templates/js/translated/build.js:1894 msgid "All selected parts have been fully allocated" msgstr "" -#: templates/js/translated/build.js:1905 -#: templates/js/translated/sales_order.js:1222 +#: templates/js/translated/build.js:1908 +#: templates/js/translated/sales_order.js:1188 msgid "Select source location (leave blank to take from all locations)" msgstr "" -#: templates/js/translated/build.js:1933 +#: templates/js/translated/build.js:1936 msgid "Allocate Stock Items to Build Order" msgstr "" -#: templates/js/translated/build.js:1944 -#: templates/js/translated/sales_order.js:1319 +#: templates/js/translated/build.js:1947 +#: templates/js/translated/sales_order.js:1285 msgid "No matching stock locations" msgstr "" -#: templates/js/translated/build.js:2017 -#: templates/js/translated/sales_order.js:1398 +#: templates/js/translated/build.js:2020 +#: templates/js/translated/sales_order.js:1364 msgid "No matching stock items" msgstr "" -#: templates/js/translated/build.js:2114 +#: templates/js/translated/build.js:2117 msgid "Automatic Stock Allocation" msgstr "" -#: templates/js/translated/build.js:2115 +#: templates/js/translated/build.js:2118 msgid "Stock items will be automatically allocated to this build order, according to the provided guidelines" msgstr "" -#: templates/js/translated/build.js:2117 +#: templates/js/translated/build.js:2120 msgid "If a location is specified, stock will only be allocated from that location" msgstr "" -#: templates/js/translated/build.js:2118 +#: templates/js/translated/build.js:2121 msgid "If stock is considered interchangeable, it will be allocated from the first location it is found" msgstr "" -#: templates/js/translated/build.js:2119 +#: templates/js/translated/build.js:2122 msgid "If substitute stock is allowed, it will be used where stock of the primary part cannot be found" msgstr "" -#: templates/js/translated/build.js:2149 +#: templates/js/translated/build.js:2152 msgid "Allocate Stock Items" msgstr "" -#: templates/js/translated/build.js:2254 +#: templates/js/translated/build.js:2257 msgid "No builds matching query" msgstr "" -#: templates/js/translated/build.js:2289 templates/js/translated/build.js:2652 +#: templates/js/translated/build.js:2292 templates/js/translated/build.js:2661 #: templates/js/translated/forms.js:2196 templates/js/translated/forms.js:2212 #: templates/js/translated/part.js:2322 templates/js/translated/part.js:2761 -#: templates/js/translated/stock.js:2068 templates/js/translated/stock.js:2795 +#: templates/js/translated/stock.js:2069 templates/js/translated/stock.js:2796 msgid "Select" msgstr "" -#: templates/js/translated/build.js:2303 +#: templates/js/translated/build.js:2306 msgid "Build order is overdue" msgstr "" -#: templates/js/translated/build.js:2385 templates/js/translated/stock.js:3126 +#: templates/js/translated/build.js:2388 templates/js/translated/stock.js:3127 msgid "No user information" msgstr "" -#: templates/js/translated/build.js:2561 -#: templates/js/translated/sales_order.js:1682 +#: templates/js/translated/build.js:2568 +#: templates/js/translated/sales_order.js:1663 msgid "Edit stock allocation" msgstr "" -#: templates/js/translated/build.js:2562 -#: templates/js/translated/sales_order.js:1683 +#: templates/js/translated/build.js:2569 +#: templates/js/translated/sales_order.js:1664 msgid "Delete stock allocation" msgstr "" -#: templates/js/translated/build.js:2577 +#: templates/js/translated/build.js:2584 msgid "Edit Allocation" msgstr "" -#: templates/js/translated/build.js:2589 +#: templates/js/translated/build.js:2596 msgid "Remove Allocation" msgstr "" -#: templates/js/translated/build.js:2628 +#: templates/js/translated/build.js:2636 msgid "build line" msgstr "" -#: templates/js/translated/build.js:2629 +#: templates/js/translated/build.js:2637 msgid "build lines" msgstr "" -#: templates/js/translated/build.js:2647 +#: templates/js/translated/build.js:2656 msgid "No build lines found" msgstr "" -#: templates/js/translated/build.js:2677 templates/js/translated/part.js:793 +#: templates/js/translated/build.js:2686 templates/js/translated/part.js:793 #: templates/js/translated/part.js:1209 msgid "Trackable part" msgstr "" -#: templates/js/translated/build.js:2720 +#: templates/js/translated/build.js:2729 msgid "Gets Inherited" msgstr "" -#: templates/js/translated/build.js:2730 +#: templates/js/translated/build.js:2748 msgid "Unit Quantity" msgstr "" -#: templates/js/translated/build.js:2782 -#: templates/js/translated/sales_order.js:1951 +#: templates/js/translated/build.js:2800 +#: templates/js/translated/sales_order.js:1932 msgid "Sufficient stock available" msgstr "" -#: templates/js/translated/build.js:2837 +#: templates/js/translated/build.js:2855 msgid "Consumable Item" msgstr "" -#: templates/js/translated/build.js:2844 +#: templates/js/translated/build.js:2862 msgid "Tracked item" msgstr "" -#: templates/js/translated/build.js:2845 +#: templates/js/translated/build.js:2863 msgid "Allocate tracked items against individual build outputs" msgstr "" -#: templates/js/translated/build.js:2853 -#: templates/js/translated/sales_order.js:2052 +#: templates/js/translated/build.js:2871 +#: templates/js/translated/sales_order.js:2033 msgid "Build stock" msgstr "" -#: templates/js/translated/build.js:2858 templates/js/translated/stock.js:1953 +#: templates/js/translated/build.js:2876 templates/js/translated/stock.js:1954 msgid "Order stock" msgstr "" -#: templates/js/translated/build.js:2862 -#: templates/js/translated/sales_order.js:2046 +#: templates/js/translated/build.js:2880 +#: templates/js/translated/sales_order.js:2027 msgid "Allocate stock" msgstr "" -#: templates/js/translated/build.js:2866 +#: templates/js/translated/build.js:2884 msgid "Remove stock allocation" msgstr "" @@ -12641,7 +13006,7 @@ msgid "Add Manufacturer" msgstr "" #: templates/js/translated/company.js:111 -#: templates/js/translated/company.js:213 +#: templates/js/translated/company.js:214 msgid "Add Manufacturer Part" msgstr "" @@ -12649,231 +13014,231 @@ msgstr "" msgid "Edit Manufacturer Part" msgstr "" -#: templates/js/translated/company.js:201 +#: templates/js/translated/company.js:202 #: templates/js/translated/purchase_order.js:93 msgid "Add Supplier" msgstr "" -#: templates/js/translated/company.js:243 -#: templates/js/translated/purchase_order.js:318 +#: templates/js/translated/company.js:244 +#: templates/js/translated/purchase_order.js:301 msgid "Add Supplier Part" msgstr "" -#: templates/js/translated/company.js:344 +#: templates/js/translated/company.js:345 msgid "All selected supplier parts will be deleted" msgstr "" -#: templates/js/translated/company.js:360 +#: templates/js/translated/company.js:361 msgid "Delete Supplier Parts" msgstr "" -#: templates/js/translated/company.js:466 +#: templates/js/translated/company.js:467 msgid "Add new Company" msgstr "" -#: templates/js/translated/company.js:546 +#: templates/js/translated/company.js:547 msgid "Parts Supplied" msgstr "" -#: templates/js/translated/company.js:555 +#: templates/js/translated/company.js:556 msgid "Parts Manufactured" msgstr "" -#: templates/js/translated/company.js:570 +#: templates/js/translated/company.js:571 msgid "No company information found" msgstr "" -#: templates/js/translated/company.js:619 +#: templates/js/translated/company.js:620 msgid "Create New Contact" msgstr "" -#: templates/js/translated/company.js:635 -#: templates/js/translated/company.js:758 +#: templates/js/translated/company.js:636 +#: templates/js/translated/company.js:759 msgid "Edit Contact" msgstr "" -#: templates/js/translated/company.js:672 +#: templates/js/translated/company.js:673 msgid "All selected contacts will be deleted" msgstr "" -#: templates/js/translated/company.js:678 -#: templates/js/translated/company.js:742 +#: templates/js/translated/company.js:679 +#: templates/js/translated/company.js:743 msgid "Role" msgstr "" -#: templates/js/translated/company.js:686 +#: templates/js/translated/company.js:687 msgid "Delete Contacts" msgstr "" -#: templates/js/translated/company.js:717 +#: templates/js/translated/company.js:718 msgid "No contacts found" msgstr "" -#: templates/js/translated/company.js:730 +#: templates/js/translated/company.js:731 msgid "Phone Number" msgstr "" -#: templates/js/translated/company.js:736 +#: templates/js/translated/company.js:737 msgid "Email Address" msgstr "" -#: templates/js/translated/company.js:762 +#: templates/js/translated/company.js:763 msgid "Delete Contact" msgstr "" -#: templates/js/translated/company.js:859 +#: templates/js/translated/company.js:860 msgid "Create New Address" msgstr "" -#: templates/js/translated/company.js:874 -#: templates/js/translated/company.js:1035 +#: templates/js/translated/company.js:875 +#: templates/js/translated/company.js:1036 msgid "Edit Address" msgstr "" -#: templates/js/translated/company.js:909 +#: templates/js/translated/company.js:910 msgid "All selected addresses will be deleted" msgstr "" -#: templates/js/translated/company.js:923 +#: templates/js/translated/company.js:924 msgid "Delete Addresses" msgstr "" -#: templates/js/translated/company.js:950 +#: templates/js/translated/company.js:951 msgid "No addresses found" msgstr "" -#: templates/js/translated/company.js:989 +#: templates/js/translated/company.js:990 msgid "Postal city" msgstr "" -#: templates/js/translated/company.js:995 +#: templates/js/translated/company.js:996 msgid "State/province" msgstr "" -#: templates/js/translated/company.js:1007 +#: templates/js/translated/company.js:1008 msgid "Courier notes" msgstr "" -#: templates/js/translated/company.js:1013 +#: templates/js/translated/company.js:1014 msgid "Internal notes" msgstr "" -#: templates/js/translated/company.js:1039 +#: templates/js/translated/company.js:1040 msgid "Delete Address" msgstr "" -#: templates/js/translated/company.js:1112 +#: templates/js/translated/company.js:1113 msgid "All selected manufacturer parts will be deleted" msgstr "" -#: templates/js/translated/company.js:1127 +#: templates/js/translated/company.js:1128 msgid "Delete Manufacturer Parts" msgstr "" -#: templates/js/translated/company.js:1161 +#: templates/js/translated/company.js:1162 msgid "All selected parameters will be deleted" msgstr "" -#: templates/js/translated/company.js:1175 +#: templates/js/translated/company.js:1176 msgid "Delete Parameters" msgstr "" -#: templates/js/translated/company.js:1191 -#: templates/js/translated/company.js:1479 templates/js/translated/part.js:2250 +#: templates/js/translated/company.js:1192 +#: templates/js/translated/company.js:1480 templates/js/translated/part.js:2250 msgid "Order parts" msgstr "" -#: templates/js/translated/company.js:1208 +#: templates/js/translated/company.js:1209 msgid "Delete manufacturer parts" msgstr "" -#: templates/js/translated/company.js:1240 +#: templates/js/translated/company.js:1241 msgid "Manufacturer part actions" msgstr "" -#: templates/js/translated/company.js:1259 +#: templates/js/translated/company.js:1260 msgid "No manufacturer parts found" msgstr "" -#: templates/js/translated/company.js:1279 -#: templates/js/translated/company.js:1567 templates/js/translated/part.js:801 +#: templates/js/translated/company.js:1280 +#: templates/js/translated/company.js:1568 templates/js/translated/part.js:801 #: templates/js/translated/part.js:1217 msgid "Template part" msgstr "" -#: templates/js/translated/company.js:1283 -#: templates/js/translated/company.js:1571 templates/js/translated/part.js:805 +#: templates/js/translated/company.js:1284 +#: templates/js/translated/company.js:1572 templates/js/translated/part.js:805 #: templates/js/translated/part.js:1221 msgid "Assembled part" msgstr "" -#: templates/js/translated/company.js:1403 templates/js/translated/part.js:1471 +#: templates/js/translated/company.js:1404 templates/js/translated/part.js:1471 msgid "No parameters found" msgstr "" -#: templates/js/translated/company.js:1438 templates/js/translated/part.js:1534 +#: templates/js/translated/company.js:1439 templates/js/translated/part.js:1534 msgid "Edit parameter" msgstr "" -#: templates/js/translated/company.js:1439 templates/js/translated/part.js:1535 +#: templates/js/translated/company.js:1440 templates/js/translated/part.js:1535 msgid "Delete parameter" msgstr "" -#: templates/js/translated/company.js:1456 templates/js/translated/part.js:1440 +#: templates/js/translated/company.js:1457 templates/js/translated/part.js:1440 msgid "Edit Parameter" msgstr "" -#: templates/js/translated/company.js:1465 templates/js/translated/part.js:1556 +#: templates/js/translated/company.js:1466 templates/js/translated/part.js:1556 msgid "Delete Parameter" msgstr "" -#: templates/js/translated/company.js:1496 +#: templates/js/translated/company.js:1497 msgid "Delete supplier parts" msgstr "" -#: templates/js/translated/company.js:1546 +#: templates/js/translated/company.js:1547 msgid "No supplier parts found" msgstr "" -#: templates/js/translated/company.js:1664 +#: templates/js/translated/company.js:1665 msgid "Base Units" msgstr "" -#: templates/js/translated/company.js:1694 +#: templates/js/translated/company.js:1695 msgid "Availability" msgstr "" -#: templates/js/translated/company.js:1725 +#: templates/js/translated/company.js:1726 msgid "Edit supplier part" msgstr "" -#: templates/js/translated/company.js:1726 +#: templates/js/translated/company.js:1727 msgid "Delete supplier part" msgstr "" -#: templates/js/translated/company.js:1779 +#: templates/js/translated/company.js:1780 #: templates/js/translated/pricing.js:694 msgid "Delete Price Break" msgstr "" -#: templates/js/translated/company.js:1789 +#: templates/js/translated/company.js:1790 #: templates/js/translated/pricing.js:712 msgid "Edit Price Break" msgstr "" -#: templates/js/translated/company.js:1804 +#: templates/js/translated/company.js:1805 msgid "No price break information found" msgstr "" -#: templates/js/translated/company.js:1833 +#: templates/js/translated/company.js:1834 msgid "Last updated" msgstr "" -#: templates/js/translated/company.js:1840 +#: templates/js/translated/company.js:1841 msgid "Edit price break" msgstr "" -#: templates/js/translated/company.js:1841 +#: templates/js/translated/company.js:1842 msgid "Delete price break" msgstr "" @@ -12977,19 +13342,19 @@ msgstr "" msgid "Select Columns" msgstr "" -#: templates/js/translated/helpers.js:80 +#: templates/js/translated/helpers.js:81 msgid "YES" msgstr "" -#: templates/js/translated/helpers.js:83 +#: templates/js/translated/helpers.js:84 msgid "NO" msgstr "" -#: templates/js/translated/helpers.js:96 +#: templates/js/translated/helpers.js:97 msgid "True" msgstr "" -#: templates/js/translated/helpers.js:97 +#: templates/js/translated/helpers.js:98 msgid "False" msgstr "" @@ -13131,7 +13496,7 @@ msgid "Delete Line" msgstr "" #: templates/js/translated/order.js:306 -#: templates/js/translated/purchase_order.js:2060 +#: templates/js/translated/purchase_order.js:2044 msgid "No line items found" msgstr "" @@ -13366,19 +13731,19 @@ msgid "Delete Part Parameter Template" msgstr "" #: templates/js/translated/part.js:1723 -#: templates/js/translated/purchase_order.js:1724 +#: templates/js/translated/purchase_order.js:1708 msgid "No purchase orders found" msgstr "" #: templates/js/translated/part.js:1867 -#: templates/js/translated/purchase_order.js:2223 +#: templates/js/translated/purchase_order.js:2207 #: templates/js/translated/return_order.js:754 -#: templates/js/translated/sales_order.js:1911 +#: templates/js/translated/sales_order.js:1892 msgid "This line item is overdue" msgstr "" #: templates/js/translated/part.js:1913 -#: templates/js/translated/purchase_order.js:2290 +#: templates/js/translated/purchase_order.js:2274 msgid "Receive line item" msgstr "" @@ -13419,7 +13784,7 @@ msgid "No category" msgstr "" #: templates/js/translated/part.js:2550 templates/js/translated/part.js:2680 -#: templates/js/translated/stock.js:2754 +#: templates/js/translated/stock.js:2755 msgid "Display as list" msgstr "" @@ -13431,7 +13796,7 @@ msgstr "" msgid "No subcategories found" msgstr "" -#: templates/js/translated/part.js:2700 templates/js/translated/stock.js:2774 +#: templates/js/translated/part.js:2700 templates/js/translated/stock.js:2775 msgid "Display as tree" msgstr "" @@ -13483,23 +13848,23 @@ msgstr "" msgid "Speculative" msgstr "" -#: templates/js/translated/part.js:3128 +#: templates/js/translated/part.js:3144 msgid "No scheduling information available for this part" msgstr "" -#: templates/js/translated/part.js:3134 +#: templates/js/translated/part.js:3150 msgid "Error fetching scheduling information for this part" msgstr "" -#: templates/js/translated/part.js:3230 +#: templates/js/translated/part.js:3246 msgid "Scheduled Stock Quantities" msgstr "" -#: templates/js/translated/part.js:3246 +#: templates/js/translated/part.js:3262 msgid "Maximum Quantity" msgstr "" -#: templates/js/translated/part.js:3291 +#: templates/js/translated/part.js:3307 msgid "Minimum Stock Level" msgstr "" @@ -13575,267 +13940,243 @@ msgstr "" msgid "Purchase Price History" msgstr "" -#: templates/js/translated/pricing.js:894 +#: templates/js/translated/pricing.js:892 msgid "No sales history data available" msgstr "" -#: templates/js/translated/pricing.js:916 +#: templates/js/translated/pricing.js:914 msgid "Sale Price History" msgstr "" -#: templates/js/translated/pricing.js:1005 +#: templates/js/translated/pricing.js:1003 msgid "No variant data available" msgstr "" -#: templates/js/translated/pricing.js:1045 +#: templates/js/translated/pricing.js:1043 msgid "Variant Part" msgstr "" -#: templates/js/translated/purchase_order.js:169 -msgid "Select purchase order to duplicate" -msgstr "" - -#: templates/js/translated/purchase_order.js:176 -msgid "Duplicate Line Items" -msgstr "" - -#: templates/js/translated/purchase_order.js:177 -msgid "Duplicate all line items from the selected order" -msgstr "" - -#: templates/js/translated/purchase_order.js:184 -msgid "Duplicate Extra Lines" -msgstr "" - -#: templates/js/translated/purchase_order.js:185 -msgid "Duplicate extra line items from the selected order" -msgstr "" - -#: templates/js/translated/purchase_order.js:206 +#: templates/js/translated/purchase_order.js:188 msgid "Edit Purchase Order" msgstr "" -#: templates/js/translated/purchase_order.js:223 +#: templates/js/translated/purchase_order.js:205 msgid "Duplication Options" msgstr "" -#: templates/js/translated/purchase_order.js:431 +#: templates/js/translated/purchase_order.js:414 msgid "Complete Purchase Order" msgstr "" -#: templates/js/translated/purchase_order.js:448 +#: templates/js/translated/purchase_order.js:431 #: templates/js/translated/return_order.js:210 -#: templates/js/translated/sales_order.js:552 +#: templates/js/translated/sales_order.js:511 msgid "Mark this order as complete?" msgstr "" -#: templates/js/translated/purchase_order.js:454 +#: templates/js/translated/purchase_order.js:437 msgid "All line items have been received" msgstr "" -#: templates/js/translated/purchase_order.js:459 +#: templates/js/translated/purchase_order.js:442 msgid "This order has line items which have not been marked as received." msgstr "" -#: templates/js/translated/purchase_order.js:460 +#: templates/js/translated/purchase_order.js:443 msgid "Completing this order means that the order and line items will no longer be editable." msgstr "" -#: templates/js/translated/purchase_order.js:483 +#: templates/js/translated/purchase_order.js:466 msgid "Cancel Purchase Order" msgstr "" -#: templates/js/translated/purchase_order.js:488 +#: templates/js/translated/purchase_order.js:471 msgid "Are you sure you wish to cancel this purchase order?" msgstr "" -#: templates/js/translated/purchase_order.js:494 +#: templates/js/translated/purchase_order.js:477 msgid "This purchase order can not be cancelled" msgstr "" -#: templates/js/translated/purchase_order.js:515 +#: templates/js/translated/purchase_order.js:498 #: templates/js/translated/return_order.js:164 msgid "After placing this order, line items will no longer be editable." msgstr "" -#: templates/js/translated/purchase_order.js:520 +#: templates/js/translated/purchase_order.js:503 msgid "Issue Purchase Order" msgstr "" -#: templates/js/translated/purchase_order.js:612 +#: templates/js/translated/purchase_order.js:595 msgid "At least one purchaseable part must be selected" msgstr "" -#: templates/js/translated/purchase_order.js:637 +#: templates/js/translated/purchase_order.js:620 msgid "Quantity to order" msgstr "" -#: templates/js/translated/purchase_order.js:646 +#: templates/js/translated/purchase_order.js:629 msgid "New supplier part" msgstr "" -#: templates/js/translated/purchase_order.js:664 +#: templates/js/translated/purchase_order.js:647 msgid "New purchase order" msgstr "" -#: templates/js/translated/purchase_order.js:705 +#: templates/js/translated/purchase_order.js:688 msgid "Add to purchase order" msgstr "" -#: templates/js/translated/purchase_order.js:755 +#: templates/js/translated/purchase_order.js:738 msgid "Merge" msgstr "" -#: templates/js/translated/purchase_order.js:859 +#: templates/js/translated/purchase_order.js:842 msgid "No matching supplier parts" msgstr "" -#: templates/js/translated/purchase_order.js:878 +#: templates/js/translated/purchase_order.js:861 msgid "No matching purchase orders" msgstr "" -#: templates/js/translated/purchase_order.js:1073 +#: templates/js/translated/purchase_order.js:1056 #: templates/js/translated/return_order.js:490 msgid "Select Line Items" msgstr "" -#: templates/js/translated/purchase_order.js:1074 +#: templates/js/translated/purchase_order.js:1057 #: templates/js/translated/return_order.js:491 msgid "At least one line item must be selected" msgstr "" -#: templates/js/translated/purchase_order.js:1104 +#: templates/js/translated/purchase_order.js:1087 msgid "Received Quantity" msgstr "" -#: templates/js/translated/purchase_order.js:1115 +#: templates/js/translated/purchase_order.js:1098 msgid "Quantity to receive" msgstr "" -#: templates/js/translated/purchase_order.js:1170 +#: templates/js/translated/purchase_order.js:1153 #: templates/js/translated/stock.js:1215 msgid "Specify packaging for incoming stock items" msgstr "" -#: templates/js/translated/purchase_order.js:1223 +#: templates/js/translated/purchase_order.js:1206 msgid "Stock Status" msgstr "" -#: templates/js/translated/purchase_order.js:1237 +#: templates/js/translated/purchase_order.js:1220 msgid "Add barcode" msgstr "" -#: templates/js/translated/purchase_order.js:1238 +#: templates/js/translated/purchase_order.js:1221 msgid "Remove barcode" msgstr "" -#: templates/js/translated/purchase_order.js:1241 +#: templates/js/translated/purchase_order.js:1224 msgid "Specify location" msgstr "" -#: templates/js/translated/purchase_order.js:1249 +#: templates/js/translated/purchase_order.js:1232 msgid "Add batch code" msgstr "" -#: templates/js/translated/purchase_order.js:1259 +#: templates/js/translated/purchase_order.js:1242 msgid "Specify packaging" msgstr "" -#: templates/js/translated/purchase_order.js:1270 +#: templates/js/translated/purchase_order.js:1253 msgid "Add serial numbers" msgstr "" -#: templates/js/translated/purchase_order.js:1281 +#: templates/js/translated/purchase_order.js:1264 msgid "Add note" msgstr "" -#: templates/js/translated/purchase_order.js:1338 +#: templates/js/translated/purchase_order.js:1321 msgid "Serials" msgstr "" -#: templates/js/translated/purchase_order.js:1368 +#: templates/js/translated/purchase_order.js:1351 msgid "Order Code" msgstr "" -#: templates/js/translated/purchase_order.js:1370 +#: templates/js/translated/purchase_order.js:1353 msgid "Quantity to Receive" msgstr "" -#: templates/js/translated/purchase_order.js:1395 +#: templates/js/translated/purchase_order.js:1379 #: templates/js/translated/return_order.js:559 msgid "Confirm receipt of items" msgstr "" -#: templates/js/translated/purchase_order.js:1396 +#: templates/js/translated/purchase_order.js:1380 msgid "Receive Purchase Order Items" msgstr "" -#: templates/js/translated/purchase_order.js:1464 +#: templates/js/translated/purchase_order.js:1448 msgid "Scan Item Barcode" msgstr "" -#: templates/js/translated/purchase_order.js:1465 +#: templates/js/translated/purchase_order.js:1449 msgid "Scan barcode on incoming item (must not match any existing stock items)" msgstr "" -#: templates/js/translated/purchase_order.js:1479 +#: templates/js/translated/purchase_order.js:1463 msgid "Invalid barcode data" msgstr "" -#: templates/js/translated/purchase_order.js:1751 +#: templates/js/translated/purchase_order.js:1735 #: templates/js/translated/return_order.js:285 -#: templates/js/translated/sales_order.js:810 -#: templates/js/translated/sales_order.js:1034 +#: templates/js/translated/sales_order.js:769 +#: templates/js/translated/sales_order.js:1007 msgid "Order is overdue" msgstr "" -#: templates/js/translated/purchase_order.js:1913 +#: templates/js/translated/purchase_order.js:1897 msgid "All selected Line items will be deleted" msgstr "" -#: templates/js/translated/purchase_order.js:1931 +#: templates/js/translated/purchase_order.js:1915 msgid "Delete selected Line items?" msgstr "" -#: templates/js/translated/purchase_order.js:1986 -#: templates/js/translated/sales_order.js:2106 +#: templates/js/translated/purchase_order.js:1970 +#: templates/js/translated/sales_order.js:2087 msgid "Duplicate Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2001 +#: templates/js/translated/purchase_order.js:1985 #: templates/js/translated/return_order.js:475 #: templates/js/translated/return_order.js:667 -#: templates/js/translated/sales_order.js:2119 +#: templates/js/translated/sales_order.js:2100 msgid "Edit Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2012 +#: templates/js/translated/purchase_order.js:1996 #: templates/js/translated/return_order.js:680 -#: templates/js/translated/sales_order.js:2130 +#: templates/js/translated/sales_order.js:2111 msgid "Delete Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2294 -#: templates/js/translated/sales_order.js:2060 +#: templates/js/translated/purchase_order.js:2278 +#: templates/js/translated/sales_order.js:2041 msgid "Duplicate line item" msgstr "" -#: templates/js/translated/purchase_order.js:2295 +#: templates/js/translated/purchase_order.js:2279 #: templates/js/translated/return_order.js:799 -#: templates/js/translated/sales_order.js:2061 +#: templates/js/translated/sales_order.js:2042 msgid "Edit line item" msgstr "" -#: templates/js/translated/purchase_order.js:2296 +#: templates/js/translated/purchase_order.js:2280 #: templates/js/translated/return_order.js:803 -#: templates/js/translated/sales_order.js:2067 +#: templates/js/translated/sales_order.js:2048 msgid "Delete line item" msgstr "" -#: templates/js/translated/report.js:49 -msgid "Print Report" -msgstr "" - #: templates/js/translated/report.js:68 msgid "Report print successful" msgstr "" @@ -13878,7 +14219,7 @@ msgid "No return orders found" msgstr "" #: templates/js/translated/return_order.js:299 -#: templates/js/translated/sales_order.js:824 +#: templates/js/translated/sales_order.js:783 msgid "Invalid Customer" msgstr "" @@ -13887,7 +14228,7 @@ msgid "Receive Return Order Items" msgstr "" #: templates/js/translated/return_order.js:691 -#: templates/js/translated/sales_order.js:2267 +#: templates/js/translated/sales_order.js:2248 msgid "No matching line items" msgstr "" @@ -13903,188 +14244,181 @@ msgstr "" msgid "Edit Sales Order" msgstr "" -#: templates/js/translated/sales_order.js:291 +#: templates/js/translated/sales_order.js:288 msgid "No stock items have been allocated to this shipment" msgstr "" -#: templates/js/translated/sales_order.js:296 -msgid "The following stock items will be shipped" -msgstr "" - -#: templates/js/translated/sales_order.js:336 +#: templates/js/translated/sales_order.js:294 msgid "Complete Shipment" msgstr "" -#: templates/js/translated/sales_order.js:360 +#: templates/js/translated/sales_order.js:318 msgid "Confirm Shipment" msgstr "" -#: templates/js/translated/sales_order.js:416 +#: templates/js/translated/sales_order.js:375 msgid "No pending shipments found" msgstr "" -#: templates/js/translated/sales_order.js:420 +#: templates/js/translated/sales_order.js:379 msgid "No stock items have been allocated to pending shipments" msgstr "" -#: templates/js/translated/sales_order.js:430 +#: templates/js/translated/sales_order.js:389 msgid "Complete Shipments" msgstr "" -#: templates/js/translated/sales_order.js:452 +#: templates/js/translated/sales_order.js:411 msgid "Skip" msgstr "" -#: templates/js/translated/sales_order.js:484 +#: templates/js/translated/sales_order.js:443 msgid "Ship Sales Order" msgstr "" -#: templates/js/translated/sales_order.js:500 +#: templates/js/translated/sales_order.js:459 msgid "Ship this order?" msgstr "" -#: templates/js/translated/sales_order.js:506 +#: templates/js/translated/sales_order.js:465 msgid "Order cannot be shipped as there are incomplete shipments" msgstr "" -#: templates/js/translated/sales_order.js:513 +#: templates/js/translated/sales_order.js:472 msgid "This order has line items which have not been completed." msgstr "" -#: templates/js/translated/sales_order.js:514 +#: templates/js/translated/sales_order.js:473 msgid "Shipping this order means that the order and line items will no longer be editable." msgstr "" -#: templates/js/translated/sales_order.js:572 +#: templates/js/translated/sales_order.js:531 msgid "Issue this Sales Order?" msgstr "" -#: templates/js/translated/sales_order.js:577 +#: templates/js/translated/sales_order.js:536 msgid "Issue Sales Order" msgstr "" -#: templates/js/translated/sales_order.js:596 +#: templates/js/translated/sales_order.js:555 msgid "Cancel Sales Order" msgstr "" -#: templates/js/translated/sales_order.js:601 +#: templates/js/translated/sales_order.js:560 msgid "Cancelling this order means that the order will no longer be editable." msgstr "" -#: templates/js/translated/sales_order.js:655 +#: templates/js/translated/sales_order.js:614 msgid "Create New Shipment" msgstr "" -#: templates/js/translated/sales_order.js:764 +#: templates/js/translated/sales_order.js:723 msgid "No sales orders found" msgstr "" -#: templates/js/translated/sales_order.js:944 +#: templates/js/translated/sales_order.js:907 msgid "Edit shipment" msgstr "" -#: templates/js/translated/sales_order.js:947 +#: templates/js/translated/sales_order.js:910 msgid "Complete shipment" msgstr "" -#: templates/js/translated/sales_order.js:952 +#: templates/js/translated/sales_order.js:915 msgid "Delete shipment" msgstr "" -#: templates/js/translated/sales_order.js:969 +#: templates/js/translated/sales_order.js:932 msgid "Edit Shipment" msgstr "" -#: templates/js/translated/sales_order.js:984 +#: templates/js/translated/sales_order.js:947 msgid "Delete Shipment" msgstr "" -#: templates/js/translated/sales_order.js:1017 +#: templates/js/translated/sales_order.js:989 msgid "No matching shipments found" msgstr "" -#: templates/js/translated/sales_order.js:1042 +#: templates/js/translated/sales_order.js:1015 msgid "Shipment Reference" msgstr "" -#: templates/js/translated/sales_order.js:1066 -#: templates/js/translated/sales_order.js:1565 +#: templates/js/translated/sales_order.js:1032 +#: templates/js/translated/sales_order.js:1531 msgid "Not shipped" msgstr "" -#: templates/js/translated/sales_order.js:1084 +#: templates/js/translated/sales_order.js:1050 msgid "Tracking" msgstr "" -#: templates/js/translated/sales_order.js:1088 +#: templates/js/translated/sales_order.js:1054 msgid "Invoice" msgstr "" -#: templates/js/translated/sales_order.js:1255 +#: templates/js/translated/sales_order.js:1221 msgid "Add Shipment" msgstr "" -#: templates/js/translated/sales_order.js:1306 +#: templates/js/translated/sales_order.js:1272 msgid "Confirm stock allocation" msgstr "" -#: templates/js/translated/sales_order.js:1307 +#: templates/js/translated/sales_order.js:1273 msgid "Allocate Stock Items to Sales Order" msgstr "" -#: templates/js/translated/sales_order.js:1513 +#: templates/js/translated/sales_order.js:1479 msgid "No sales order allocations found" msgstr "" -#: templates/js/translated/sales_order.js:1605 +#: templates/js/translated/sales_order.js:1571 msgid "Edit Stock Allocation" msgstr "" -#: templates/js/translated/sales_order.js:1619 +#: templates/js/translated/sales_order.js:1585 msgid "Confirm Delete Operation" msgstr "" -#: templates/js/translated/sales_order.js:1620 +#: templates/js/translated/sales_order.js:1586 msgid "Delete Stock Allocation" msgstr "" -#: templates/js/translated/sales_order.js:1659 -#: templates/js/translated/sales_order.js:1746 +#: templates/js/translated/sales_order.js:1640 +#: templates/js/translated/sales_order.js:1727 #: templates/js/translated/stock.js:1861 msgid "Shipped to customer" msgstr "" -#: templates/js/translated/sales_order.js:1667 -#: templates/js/translated/sales_order.js:1755 +#: templates/js/translated/sales_order.js:1648 +#: templates/js/translated/sales_order.js:1736 msgid "Stock location not specified" msgstr "" -#: templates/js/translated/sales_order.js:2044 -msgid "Allocate serial numbers" -msgstr "" - -#: templates/js/translated/sales_order.js:2048 -msgid "Purchase stock" -msgstr "" - -#: templates/js/translated/sales_order.js:2057 -#: templates/js/translated/sales_order.js:2245 -msgid "Calculate price" -msgstr "" - -#: templates/js/translated/sales_order.js:2071 -msgid "Cannot be deleted as items have been shipped" -msgstr "" - -#: templates/js/translated/sales_order.js:2074 -msgid "Cannot be deleted as items have been allocated" -msgstr "" - -#: templates/js/translated/sales_order.js:2145 +#: templates/js/translated/sales_order.js:2025 +#: templates/js/translated/sales_order.js:2126 msgid "Allocate Serial Numbers" msgstr "" -#: templates/js/translated/sales_order.js:2253 +#: templates/js/translated/sales_order.js:2029 +msgid "Purchase stock" +msgstr "" + +#: templates/js/translated/sales_order.js:2038 +#: templates/js/translated/sales_order.js:2226 +msgid "Calculate price" +msgstr "" + +#: templates/js/translated/sales_order.js:2052 +msgid "Cannot be deleted as items have been shipped" +msgstr "" + +#: templates/js/translated/sales_order.js:2055 +msgid "Cannot be deleted as items have been allocated" +msgstr "" + +#: templates/js/translated/sales_order.js:2234 msgid "Update Unit Price" msgstr "" @@ -14209,11 +14543,8 @@ msgid "Find Serial Number" msgstr "" #: templates/js/translated/stock.js:603 templates/js/translated/stock.js:604 -msgid "Enter serial number" -msgstr "" - #: templates/js/translated/stock.js:620 -msgid "Enter a serial number" +msgid "Enter serial number" msgstr "" #: templates/js/translated/stock.js:640 @@ -14284,7 +14615,7 @@ msgstr "" msgid "Add Stock" msgstr "" -#: templates/js/translated/stock.js:1049 users/models.py:396 +#: templates/js/translated/stock.js:1049 users/models.py:398 msgid "Add" msgstr "" @@ -14308,7 +14639,7 @@ msgstr "" msgid "Adjust packaging" msgstr "" -#: templates/js/translated/stock.js:1256 templates/js/translated/stock.js:3382 +#: templates/js/translated/stock.js:1256 templates/js/translated/stock.js:3383 msgid "Select Stock Items" msgstr "" @@ -14320,18 +14651,6 @@ msgstr "" msgid "Confirm stock adjustment" msgstr "" -#: templates/js/translated/stock.js:1448 -msgid "PASS" -msgstr "" - -#: templates/js/translated/stock.js:1450 -msgid "FAIL" -msgstr "" - -#: templates/js/translated/stock.js:1455 -msgid "NO RESULT" -msgstr "" - #: templates/js/translated/stock.js:1535 msgid "Pass test" msgstr "" @@ -14388,216 +14707,216 @@ msgstr "" msgid "No stock location set" msgstr "" -#: templates/js/translated/stock.js:1927 +#: templates/js/translated/stock.js:1928 msgid "Change stock status" msgstr "" -#: templates/js/translated/stock.js:1936 +#: templates/js/translated/stock.js:1937 msgid "Merge stock" msgstr "" -#: templates/js/translated/stock.js:1985 +#: templates/js/translated/stock.js:1986 msgid "Delete stock" msgstr "" -#: templates/js/translated/stock.js:2038 +#: templates/js/translated/stock.js:2039 msgid "stock items" msgstr "" -#: templates/js/translated/stock.js:2043 +#: templates/js/translated/stock.js:2044 msgid "Scan to location" msgstr "" -#: templates/js/translated/stock.js:2054 +#: templates/js/translated/stock.js:2055 msgid "Stock Actions" msgstr "" -#: templates/js/translated/stock.js:2098 +#: templates/js/translated/stock.js:2099 msgid "Load installed items" msgstr "" -#: templates/js/translated/stock.js:2176 +#: templates/js/translated/stock.js:2177 msgid "Stock item is in production" msgstr "" -#: templates/js/translated/stock.js:2181 +#: templates/js/translated/stock.js:2182 msgid "Stock item assigned to sales order" msgstr "" -#: templates/js/translated/stock.js:2184 +#: templates/js/translated/stock.js:2185 msgid "Stock item assigned to customer" msgstr "" -#: templates/js/translated/stock.js:2187 +#: templates/js/translated/stock.js:2188 msgid "Serialized stock item has been allocated" msgstr "" -#: templates/js/translated/stock.js:2189 +#: templates/js/translated/stock.js:2190 msgid "Stock item has been fully allocated" msgstr "" -#: templates/js/translated/stock.js:2191 +#: templates/js/translated/stock.js:2192 msgid "Stock item has been partially allocated" msgstr "" -#: templates/js/translated/stock.js:2194 +#: templates/js/translated/stock.js:2195 msgid "Stock item has been installed in another item" msgstr "" -#: templates/js/translated/stock.js:2196 +#: templates/js/translated/stock.js:2197 msgid "Stock item has been consumed by a build order" msgstr "" -#: templates/js/translated/stock.js:2200 +#: templates/js/translated/stock.js:2201 msgid "Stock item has expired" msgstr "" -#: templates/js/translated/stock.js:2202 +#: templates/js/translated/stock.js:2203 msgid "Stock item will expire soon" msgstr "" -#: templates/js/translated/stock.js:2207 +#: templates/js/translated/stock.js:2208 msgid "Stock item has been rejected" msgstr "" -#: templates/js/translated/stock.js:2209 +#: templates/js/translated/stock.js:2210 msgid "Stock item is lost" msgstr "" -#: templates/js/translated/stock.js:2211 +#: templates/js/translated/stock.js:2212 msgid "Stock item is destroyed" msgstr "" -#: templates/js/translated/stock.js:2215 +#: templates/js/translated/stock.js:2216 #: templates/js/translated/table_filters.js:357 msgid "Depleted" msgstr "" -#: templates/js/translated/stock.js:2380 +#: templates/js/translated/stock.js:2381 msgid "Supplier part not specified" msgstr "" -#: templates/js/translated/stock.js:2427 +#: templates/js/translated/stock.js:2428 msgid "Stock Value" msgstr "" -#: templates/js/translated/stock.js:2555 +#: templates/js/translated/stock.js:2556 msgid "No stock items matching query" msgstr "" -#: templates/js/translated/stock.js:2658 +#: templates/js/translated/stock.js:2659 msgid "stock locations" msgstr "" -#: templates/js/translated/stock.js:2813 +#: templates/js/translated/stock.js:2814 msgid "Load Sublocations" msgstr "" -#: templates/js/translated/stock.js:2930 +#: templates/js/translated/stock.js:2931 msgid "Details" msgstr "" -#: templates/js/translated/stock.js:2934 +#: templates/js/translated/stock.js:2935 msgid "No changes" msgstr "" -#: templates/js/translated/stock.js:2946 +#: templates/js/translated/stock.js:2947 msgid "Part information unavailable" msgstr "" -#: templates/js/translated/stock.js:2968 +#: templates/js/translated/stock.js:2969 msgid "Location no longer exists" msgstr "" -#: templates/js/translated/stock.js:2985 +#: templates/js/translated/stock.js:2986 msgid "Build order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3000 +#: templates/js/translated/stock.js:3001 msgid "Purchase order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3017 +#: templates/js/translated/stock.js:3018 msgid "Sales Order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3034 +#: templates/js/translated/stock.js:3035 msgid "Return Order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3053 +#: templates/js/translated/stock.js:3054 msgid "Customer no longer exists" msgstr "" -#: templates/js/translated/stock.js:3071 +#: templates/js/translated/stock.js:3072 msgid "Stock item no longer exists" msgstr "" -#: templates/js/translated/stock.js:3089 +#: templates/js/translated/stock.js:3090 msgid "Added" msgstr "" -#: templates/js/translated/stock.js:3097 +#: templates/js/translated/stock.js:3098 msgid "Removed" msgstr "" -#: templates/js/translated/stock.js:3169 +#: templates/js/translated/stock.js:3170 msgid "No installed items" msgstr "" -#: templates/js/translated/stock.js:3223 templates/js/translated/stock.js:3259 +#: templates/js/translated/stock.js:3224 templates/js/translated/stock.js:3260 msgid "Uninstall Stock Item" msgstr "" -#: templates/js/translated/stock.js:3280 +#: templates/js/translated/stock.js:3281 msgid "Select stock item to uninstall" msgstr "" -#: templates/js/translated/stock.js:3301 +#: templates/js/translated/stock.js:3302 msgid "Install another stock item into this item" msgstr "" -#: templates/js/translated/stock.js:3302 +#: templates/js/translated/stock.js:3303 msgid "Stock items can only be installed if they meet the following criteria" msgstr "" -#: templates/js/translated/stock.js:3304 +#: templates/js/translated/stock.js:3305 msgid "The Stock Item links to a Part which is the BOM for this Stock Item" msgstr "" -#: templates/js/translated/stock.js:3305 +#: templates/js/translated/stock.js:3306 msgid "The Stock Item is currently available in stock" msgstr "" -#: templates/js/translated/stock.js:3306 +#: templates/js/translated/stock.js:3307 msgid "The Stock Item is not already installed in another item" msgstr "" -#: templates/js/translated/stock.js:3307 +#: templates/js/translated/stock.js:3308 msgid "The Stock Item is tracked by either a batch code or serial number" msgstr "" -#: templates/js/translated/stock.js:3320 +#: templates/js/translated/stock.js:3321 msgid "Select part to install" msgstr "" -#: templates/js/translated/stock.js:3383 +#: templates/js/translated/stock.js:3384 msgid "Select one or more stock items" msgstr "" -#: templates/js/translated/stock.js:3396 +#: templates/js/translated/stock.js:3397 msgid "Selected stock items" msgstr "" -#: templates/js/translated/stock.js:3400 +#: templates/js/translated/stock.js:3401 msgid "Change Stock Status" msgstr "" -#: templates/js/translated/stock.js:3477 +#: templates/js/translated/stock.js:3478 msgid "This week" msgstr "" -#: templates/js/translated/stock.js:3485 +#: templates/js/translated/stock.js:3486 msgid "This month" msgstr "" @@ -14734,10 +15053,6 @@ msgstr "" msgid "Show items which are in production" msgstr "" -#: templates/js/translated/table_filters.js:372 -msgid "Include Variants" -msgstr "" - #: templates/js/translated/table_filters.js:373 msgid "Include stock items for variant parts" msgstr "" @@ -15012,10 +15327,6 @@ msgstr "" msgid "An error occurred while attempting to login via your social network account." msgstr "" -#: templates/socialaccount/authentication_error.html:13 -msgid "Contact your system administrator for further information." -msgstr "" - #: templates/socialaccount/login.html:13 #, python-format msgid "Connect %(provider)s" @@ -15141,27 +15452,27 @@ msgstr "" msgid "No" msgstr "" -#: users/admin.py:104 +#: users/admin.py:101 msgid "Users" msgstr "" -#: users/admin.py:105 +#: users/admin.py:102 msgid "Select which users are assigned to this group" msgstr "" -#: users/admin.py:249 +#: users/admin.py:246 msgid "The following users are members of multiple groups" msgstr "" -#: users/admin.py:283 +#: users/admin.py:280 msgid "Personal info" msgstr "" -#: users/admin.py:285 +#: users/admin.py:282 msgid "Permissions" msgstr "" -#: users/admin.py:288 +#: users/admin.py:285 msgid "Important dates" msgstr "" @@ -15205,35 +15516,35 @@ msgstr "" msgid "Revoked" msgstr "" -#: users/models.py:379 +#: users/models.py:381 msgid "Permission set" msgstr "" -#: users/models.py:388 +#: users/models.py:390 msgid "Group" msgstr "" -#: users/models.py:392 +#: users/models.py:394 msgid "View" msgstr "" -#: users/models.py:392 +#: users/models.py:394 msgid "Permission to view items" msgstr "" -#: users/models.py:396 +#: users/models.py:398 msgid "Permission to add items" msgstr "" -#: users/models.py:400 +#: users/models.py:402 msgid "Change" msgstr "" -#: users/models.py:402 +#: users/models.py:404 msgid "Permissions to edit items" msgstr "" -#: users/models.py:408 +#: users/models.py:410 msgid "Permission to delete items" msgstr "" diff --git a/src/backend/InvenTree/locale/ro/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/ro/LC_MESSAGES/django.po index 852ea7bbd6..ecab7d35b7 100644 --- a/src/backend/InvenTree/locale/ro/LC_MESSAGES/django.po +++ b/src/backend/InvenTree/locale/ro/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-08-20 01:22+0000\n" -"PO-Revision-Date: 2024-08-20 19:50\n" +"POT-Creation-Date: 2024-11-04 03:11+0000\n" +"PO-Revision-Date: 2024-11-04 03:14\n" "Last-Translator: \n" "Language-Team: Romanian\n" "Language: ro_RO\n" @@ -14,81 +14,89 @@ msgstr "" "X-Crowdin-Project: inventree\n" "X-Crowdin-Project-ID: 452300\n" "X-Crowdin-Language: ro\n" -"X-Crowdin-File: /[inventree.InvenTree] l10/src/backend/InvenTree/locale/en/LC_MESSAGES/django.po\n" -"X-Crowdin-File-ID: 216\n" +"X-Crowdin-File: /src/backend/InvenTree/locale/en/LC_MESSAGES/django.po\n" +"X-Crowdin-File-ID: 250\n" -#: InvenTree/api.py:269 +#: InvenTree/api.py:270 msgid "API endpoint not found" msgstr "" -#: InvenTree/api.py:502 +#: InvenTree/api.py:387 +msgid "Invalid items list provided" +msgstr "" + +#: InvenTree/api.py:396 +msgid "Invalid filters provided" +msgstr "" + +#: InvenTree/api.py:401 +msgid "No items found to delete" +msgstr "" + +#: InvenTree/api.py:515 msgid "User does not have permission to view this model" msgstr "" -#: InvenTree/conversion.py:160 +#: InvenTree/conversion.py:161 #, python-brace-format msgid "Invalid unit provided ({unit})" msgstr "" -#: InvenTree/conversion.py:177 +#: InvenTree/conversion.py:178 msgid "No value provided" msgstr "" -#: InvenTree/conversion.py:204 +#: InvenTree/conversion.py:205 #, python-brace-format msgid "Could not convert {original} to {unit}" msgstr "" -#: InvenTree/conversion.py:206 -msgid "Invalid quantity supplied" +#: InvenTree/conversion.py:207 InvenTree/conversion.py:221 +#: InvenTree/helpers.py:505 order/models.py:589 order/models.py:832 +msgid "Invalid quantity provided" msgstr "" -#: InvenTree/conversion.py:220 -#, python-brace-format -msgid "Invalid quantity supplied ({exc})" -msgstr "" - -#: InvenTree/exceptions.py:108 +#: InvenTree/exceptions.py:104 msgid "Error details can be found in the admin panel" msgstr "" -#: InvenTree/fields.py:136 +#: InvenTree/fields.py:135 msgid "Enter date" msgstr "" -#: InvenTree/fields.py:205 InvenTree/models.py:929 build/serializers.py:468 -#: build/serializers.py:546 build/templates/build/sidebar.html:29 -#: company/models.py:836 +#: InvenTree/fields.py:204 InvenTree/models.py:928 build/serializers.py:512 +#: build/serializers.py:590 build/templates/build/sidebar.html:29 +#: company/models.py:833 #: company/templates/company/manufacturer_part_sidebar.html:11 #: company/templates/company/sidebar.html:37 -#: company/templates/company/supplier_part_sidebar.html:11 order/models.py:1380 +#: company/templates/company/supplier_part_sidebar.html:11 order/models.py:1397 #: order/templates/order/po_sidebar.html:11 #: order/templates/order/return_order_sidebar.html:9 #: order/templates/order/so_sidebar.html:17 part/admin.py:59 -#: part/models.py:3297 part/templates/part/part_sidebar.html:65 +#: part/models.py:3348 part/templates/part/part_sidebar.html:65 #: report/templates/report/inventree_build_order_report.html:172 -#: stock/admin.py:230 stock/models.py:2375 stock/models.py:2563 -#: stock/serializers.py:698 stock/serializers.py:856 stock/serializers.py:982 -#: stock/serializers.py:1032 stock/serializers.py:1343 -#: stock/serializers.py:1432 stock/serializers.py:1597 +#: stock/admin.py:231 stock/models.py:2494 stock/models.py:2679 +#: stock/serializers.py:725 stock/serializers.py:887 stock/serializers.py:1013 +#: stock/serializers.py:1063 stock/serializers.py:1374 +#: stock/serializers.py:1463 stock/serializers.py:1628 #: stock/templates/stock/stock_sidebar.html:25 #: templates/js/translated/barcode.js:143 templates/js/translated/bom.js:1265 -#: templates/js/translated/company.js:1684 templates/js/translated/order.js:372 +#: templates/js/translated/company.js:1685 templates/js/translated/order.js:372 #: templates/js/translated/part.js:1087 -#: templates/js/translated/purchase_order.js:2270 +#: templates/js/translated/purchase_order.js:2254 #: templates/js/translated/return_order.js:774 -#: templates/js/translated/sales_order.js:1103 -#: templates/js/translated/sales_order.js:2018 -#: templates/js/translated/stock.js:1621 templates/js/translated/stock.js:2513 +#: templates/js/translated/sales_order.js:1069 +#: templates/js/translated/sales_order.js:1999 +#: templates/js/translated/stock.js:1621 templates/js/translated/stock.js:2514 msgid "Notes" msgstr "" -#: InvenTree/format.py:164 +#: InvenTree/format.py:162 #, python-brace-format msgid "Value '{name}' does not appear in pattern format" msgstr "" -#: InvenTree/format.py:175 +#: InvenTree/format.py:173 msgid "Provided value does not match required pattern: " msgstr "" @@ -132,397 +140,409 @@ msgstr "" msgid "The provided primary email address is not valid." msgstr "" -#: InvenTree/forms.py:274 +#: InvenTree/forms.py:273 msgid "The provided email domain is not approved." msgstr "" -#: InvenTree/forms.py:403 +#: InvenTree/forms.py:402 msgid "Registration is disabled." msgstr "" -#: InvenTree/helpers.py:491 order/models.py:567 order/models.py:810 -msgid "Invalid quantity provided" +#: InvenTree/helpers.py:509 +msgid "Cannot serialize more than 1000 items at once" msgstr "" -#: InvenTree/helpers.py:499 +#: InvenTree/helpers.py:515 msgid "Empty serial number string" msgstr "" -#: InvenTree/helpers.py:528 +#: InvenTree/helpers.py:544 msgid "Duplicate serial" msgstr "" -#: InvenTree/helpers.py:560 InvenTree/helpers.py:603 +#: InvenTree/helpers.py:576 InvenTree/helpers.py:619 InvenTree/helpers.py:637 +#: InvenTree/helpers.py:644 InvenTree/helpers.py:663 #, python-brace-format -msgid "Invalid group range: {group}" +msgid "Invalid group: {group}" msgstr "" -#: InvenTree/helpers.py:591 +#: InvenTree/helpers.py:607 #, python-brace-format msgid "Group range {group} exceeds allowed quantity ({expected_quantity})" msgstr "" -#: InvenTree/helpers.py:621 InvenTree/helpers.py:628 InvenTree/helpers.py:647 -#, python-brace-format -msgid "Invalid group sequence: {group}" -msgstr "" - -#: InvenTree/helpers.py:657 +#: InvenTree/helpers.py:673 msgid "No serial numbers found" msgstr "" -#: InvenTree/helpers.py:662 +#: InvenTree/helpers.py:678 msgid "Number of unique serial numbers ({len(serials)}) must match quantity ({expected_quantity})" msgstr "" -#: InvenTree/helpers.py:780 +#: InvenTree/helpers.py:796 msgid "Remove HTML tags from this value" msgstr "" -#: InvenTree/helpers_model.py:133 +#: InvenTree/helpers.py:881 +msgid "Data contains prohibited markdown content" +msgstr "" + +#: InvenTree/helpers_model.py:130 msgid "Connection error" msgstr "" -#: InvenTree/helpers_model.py:138 InvenTree/helpers_model.py:145 +#: InvenTree/helpers_model.py:135 InvenTree/helpers_model.py:142 msgid "Server responded with invalid status code" msgstr "" -#: InvenTree/helpers_model.py:141 +#: InvenTree/helpers_model.py:138 msgid "Exception occurred" msgstr "" -#: InvenTree/helpers_model.py:151 +#: InvenTree/helpers_model.py:148 msgid "Server responded with invalid Content-Length value" msgstr "" -#: InvenTree/helpers_model.py:154 +#: InvenTree/helpers_model.py:151 msgid "Image size is too large" msgstr "" -#: InvenTree/helpers_model.py:166 +#: InvenTree/helpers_model.py:163 msgid "Image download exceeded maximum size" msgstr "" -#: InvenTree/helpers_model.py:171 +#: InvenTree/helpers_model.py:168 msgid "Remote server returned empty response" msgstr "" -#: InvenTree/helpers_model.py:179 +#: InvenTree/helpers_model.py:176 msgid "Supplied URL is not a valid image file" msgstr "" -#: InvenTree/locales.py:18 +#: InvenTree/locales.py:20 msgid "Arabic" msgstr "" -#: InvenTree/locales.py:19 +#: InvenTree/locales.py:21 msgid "Bulgarian" msgstr "" -#: InvenTree/locales.py:20 +#: InvenTree/locales.py:22 msgid "Czech" msgstr "" -#: InvenTree/locales.py:21 +#: InvenTree/locales.py:23 msgid "Danish" msgstr "" -#: InvenTree/locales.py:22 +#: InvenTree/locales.py:24 msgid "German" msgstr "" -#: InvenTree/locales.py:23 +#: InvenTree/locales.py:25 msgid "Greek" msgstr "" -#: InvenTree/locales.py:24 +#: InvenTree/locales.py:26 msgid "English" msgstr "" -#: InvenTree/locales.py:25 +#: InvenTree/locales.py:27 msgid "Spanish" msgstr "" -#: InvenTree/locales.py:26 +#: InvenTree/locales.py:28 msgid "Spanish (Mexican)" msgstr "" -#: InvenTree/locales.py:27 +#: InvenTree/locales.py:29 msgid "Estonian" msgstr "" -#: InvenTree/locales.py:28 +#: InvenTree/locales.py:30 msgid "Farsi / Persian" msgstr "" -#: InvenTree/locales.py:29 +#: InvenTree/locales.py:31 msgid "Finnish" msgstr "" -#: InvenTree/locales.py:30 +#: InvenTree/locales.py:32 msgid "French" msgstr "" -#: InvenTree/locales.py:31 +#: InvenTree/locales.py:33 msgid "Hebrew" msgstr "" -#: InvenTree/locales.py:32 +#: InvenTree/locales.py:34 msgid "Hindi" msgstr "" -#: InvenTree/locales.py:33 +#: InvenTree/locales.py:35 msgid "Hungarian" msgstr "" -#: InvenTree/locales.py:34 +#: InvenTree/locales.py:36 msgid "Italian" msgstr "" -#: InvenTree/locales.py:35 +#: InvenTree/locales.py:37 msgid "Japanese" msgstr "" -#: InvenTree/locales.py:36 +#: InvenTree/locales.py:38 msgid "Korean" msgstr "" -#: InvenTree/locales.py:37 -msgid "Latvian" -msgstr "" - -#: InvenTree/locales.py:38 -msgid "Dutch" -msgstr "" - #: InvenTree/locales.py:39 -msgid "Norwegian" +msgid "Lithuanian" msgstr "" #: InvenTree/locales.py:40 -msgid "Polish" +msgid "Latvian" msgstr "" #: InvenTree/locales.py:41 -msgid "Portuguese" +msgid "Dutch" msgstr "" #: InvenTree/locales.py:42 -msgid "Portuguese (Brazilian)" +msgid "Norwegian" msgstr "" #: InvenTree/locales.py:43 -msgid "Romanian" +msgid "Polish" msgstr "" #: InvenTree/locales.py:44 -msgid "Russian" +msgid "Portuguese" msgstr "" #: InvenTree/locales.py:45 -msgid "Slovak" +msgid "Portuguese (Brazilian)" msgstr "" #: InvenTree/locales.py:46 -msgid "Slovenian" +msgid "Romanian" msgstr "" #: InvenTree/locales.py:47 -msgid "Serbian" +msgid "Russian" msgstr "" #: InvenTree/locales.py:48 -msgid "Swedish" +msgid "Slovak" msgstr "" #: InvenTree/locales.py:49 -msgid "Thai" +msgid "Slovenian" msgstr "" #: InvenTree/locales.py:50 -msgid "Turkish" +msgid "Serbian" msgstr "" #: InvenTree/locales.py:51 -msgid "Ukrainian" +msgid "Swedish" msgstr "" #: InvenTree/locales.py:52 -msgid "Vietnamese" +msgid "Thai" msgstr "" #: InvenTree/locales.py:53 -msgid "Chinese (Simplified)" +msgid "Turkish" msgstr "" #: InvenTree/locales.py:54 +msgid "Ukrainian" +msgstr "" + +#: InvenTree/locales.py:55 +msgid "Vietnamese" +msgstr "" + +#: InvenTree/locales.py:56 +msgid "Chinese (Simplified)" +msgstr "" + +#: InvenTree/locales.py:57 msgid "Chinese (Traditional)" msgstr "" #: InvenTree/magic_login.py:28 -#, python-brace-format -msgid "[{site_name}] Log in to the app" +msgid "Log in to the app" msgstr "" -#: InvenTree/magic_login.py:38 InvenTree/serializers.py:415 -#: company/models.py:136 company/templates/company/company_base.html:138 +#: InvenTree/magic_login.py:38 InvenTree/serializers.py:416 +#: company/models.py:133 company/templates/company/company_base.html:138 #: templates/InvenTree/settings/user.html:49 -#: templates/js/translated/company.js:677 +#: templates/js/translated/company.js:678 msgid "Email" msgstr "" -#: InvenTree/models.py:103 +#: InvenTree/models.py:105 msgid "Error running plugin validation" msgstr "" -#: InvenTree/models.py:172 +#: InvenTree/models.py:174 msgid "Metadata must be a python dict object" msgstr "" -#: InvenTree/models.py:178 +#: InvenTree/models.py:180 msgid "Plugin Metadata" msgstr "" -#: InvenTree/models.py:179 +#: InvenTree/models.py:181 msgid "JSON metadata field, for use by external plugins" msgstr "" -#: InvenTree/models.py:409 +#: InvenTree/models.py:408 msgid "Improperly formatted pattern" msgstr "" -#: InvenTree/models.py:416 +#: InvenTree/models.py:415 msgid "Unknown format key specified" msgstr "" -#: InvenTree/models.py:422 +#: InvenTree/models.py:421 msgid "Missing required format key" msgstr "" -#: InvenTree/models.py:433 +#: InvenTree/models.py:432 msgid "Reference field cannot be empty" msgstr "" -#: InvenTree/models.py:441 +#: InvenTree/models.py:440 msgid "Reference must match required pattern" msgstr "" -#: InvenTree/models.py:472 +#: InvenTree/models.py:471 msgid "Reference number is too large" msgstr "" -#: InvenTree/models.py:723 +#: InvenTree/models.py:722 msgid "Duplicate names cannot exist under the same parent" msgstr "" -#: InvenTree/models.py:740 +#: InvenTree/models.py:739 msgid "Invalid choice" msgstr "" -#: InvenTree/models.py:770 common/models.py:2702 common/models.py:3132 -#: common/serializers.py:412 company/models.py:593 machine/models.py:24 -#: part/models.py:983 part/models.py:3764 plugin/models.py:51 -#: report/models.py:149 stock/models.py:77 +#: InvenTree/models.py:769 common/models.py:2766 common/models.py:3193 +#: common/models.py:3413 common/serializers.py:460 company/models.py:590 +#: machine/models.py:24 part/models.py:1044 part/models.py:3815 +#: plugin/models.py:51 report/models.py:149 stock/models.py:83 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/notifications.html:17 #: templates/InvenTree/settings/plugin.html:83 #: templates/InvenTree/settings/plugin_settings.html:22 #: templates/InvenTree/settings/settings_staff_js.html:67 #: templates/InvenTree/settings/settings_staff_js.html:454 -#: templates/js/translated/company.js:676 -#: templates/js/translated/company.js:724 -#: templates/js/translated/company.js:913 -#: templates/js/translated/company.js:1165 -#: templates/js/translated/company.js:1413 templates/js/translated/part.js:1193 +#: templates/js/translated/company.js:677 +#: templates/js/translated/company.js:725 +#: templates/js/translated/company.js:914 +#: templates/js/translated/company.js:1166 +#: templates/js/translated/company.js:1414 templates/js/translated/part.js:1193 #: templates/js/translated/part.js:1481 templates/js/translated/part.js:1617 -#: templates/js/translated/part.js:2768 templates/js/translated/stock.js:2801 +#: templates/js/translated/part.js:2768 templates/js/translated/stock.js:2802 msgid "Name" msgstr "" -#: InvenTree/models.py:776 build/models.py:250 -#: build/templates/build/detail.html:24 common/models.py:156 -#: company/models.py:521 company/models.py:827 +#: InvenTree/models.py:775 build/models.py:251 +#: build/templates/build/detail.html:24 common/models.py:159 +#: company/models.py:518 company/models.py:824 #: company/templates/company/company_base.html:77 #: company/templates/company/manufacturer_part.html:75 -#: company/templates/company/supplier_part.html:107 order/models.py:288 -#: order/models.py:1413 part/admin.py:305 part/admin.py:411 part/models.py:1006 -#: part/models.py:3779 part/templates/part/category.html:79 -#: part/templates/part/part_base.html:170 +#: company/templates/company/supplier_part.html:108 order/models.py:295 +#: order/models.py:1430 part/admin.py:305 part/admin.py:411 part/models.py:1067 +#: part/models.py:3830 part/templates/part/category.html:79 +#: part/templates/part/part_base.html:171 #: part/templates/part/part_scheduling.html:12 report/models.py:155 -#: report/models.py:509 report/models.py:535 +#: report/models.py:517 report/models.py:543 #: report/templates/report/inventree_build_order_report.html:117 -#: stock/admin.py:54 stock/models.py:83 stock/templates/stock/location.html:122 +#: stock/admin.py:54 stock/models.py:89 stock/templates/stock/location.html:123 #: templates/InvenTree/settings/notifications.html:19 #: templates/InvenTree/settings/plugin_settings.html:27 #: templates/InvenTree/settings/settings_staff_js.html:170 #: templates/InvenTree/settings/settings_staff_js.html:459 #: templates/js/translated/bom.js:633 templates/js/translated/bom.js:963 -#: templates/js/translated/build.js:2311 templates/js/translated/company.js:519 -#: templates/js/translated/company.js:1330 -#: templates/js/translated/company.js:1641 templates/js/translated/index.js:119 +#: templates/js/translated/build.js:2314 templates/js/translated/company.js:520 +#: templates/js/translated/company.js:1331 +#: templates/js/translated/company.js:1642 templates/js/translated/index.js:119 #: templates/js/translated/order.js:323 templates/js/translated/part.js:1245 #: templates/js/translated/part.js:1490 templates/js/translated/part.js:1628 #: templates/js/translated/part.js:1965 templates/js/translated/part.js:2361 #: templates/js/translated/part.js:2803 templates/js/translated/part.js:2915 #: templates/js/translated/plugin.js:80 -#: templates/js/translated/purchase_order.js:1776 -#: templates/js/translated/purchase_order.js:1919 -#: templates/js/translated/purchase_order.js:2092 +#: templates/js/translated/purchase_order.js:1760 +#: templates/js/translated/purchase_order.js:1903 +#: templates/js/translated/purchase_order.js:2076 #: templates/js/translated/return_order.js:313 -#: templates/js/translated/sales_order.js:838 -#: templates/js/translated/sales_order.js:1848 -#: templates/js/translated/stock.js:1600 templates/js/translated/stock.js:2143 -#: templates/js/translated/stock.js:2832 templates/js/translated/stock.js:2915 +#: templates/js/translated/sales_order.js:797 +#: templates/js/translated/sales_order.js:1829 +#: templates/js/translated/stock.js:1600 templates/js/translated/stock.js:2144 +#: templates/js/translated/stock.js:2833 templates/js/translated/stock.js:2916 msgid "Description" msgstr "" -#: InvenTree/models.py:777 stock/models.py:84 +#: InvenTree/models.py:776 stock/models.py:90 msgid "Description (optional)" msgstr "" -#: InvenTree/models.py:792 templates/js/translated/part.js:2812 -#: templates/js/translated/stock.js:2841 +#: InvenTree/models.py:791 common/models.py:3546 +#: templates/js/translated/part.js:2812 templates/js/translated/stock.js:2842 msgid "Path" msgstr "" -#: InvenTree/models.py:929 +#: InvenTree/models.py:928 msgid "Markdown notes (optional)" msgstr "" -#: InvenTree/models.py:960 +#: InvenTree/models.py:959 msgid "Barcode Data" msgstr "" -#: InvenTree/models.py:961 +#: InvenTree/models.py:960 msgid "Third party barcode data" msgstr "" -#: InvenTree/models.py:967 +#: InvenTree/models.py:966 msgid "Barcode Hash" msgstr "" -#: InvenTree/models.py:968 +#: InvenTree/models.py:967 msgid "Unique hash of barcode data" msgstr "" -#: InvenTree/models.py:1035 +#: InvenTree/models.py:1034 msgid "Existing barcode found" msgstr "" -#: InvenTree/models.py:1078 +#: InvenTree/models.py:1112 +msgid "Task Failure" +msgstr "" + +#: InvenTree/models.py:1114 +#, python-brace-format +msgid "Background worker task '{instance.func}' failed after {n} attempts" +msgstr "" + +#: InvenTree/models.py:1142 msgid "Server Error" msgstr "" -#: InvenTree/models.py:1079 +#: InvenTree/models.py:1143 msgid "An error has been logged by the server." msgstr "" -#: InvenTree/serializers.py:63 part/models.py:4387 +#: InvenTree/serializers.py:63 part/models.py:4444 msgid "Must be a valid number" msgstr "" -#: InvenTree/serializers.py:100 company/models.py:186 -#: company/templates/company/company_base.html:112 part/models.py:3115 +#: InvenTree/serializers.py:100 company/models.py:183 +#: company/templates/company/company_base.html:112 part/models.py:3166 #: templates/InvenTree/settings/settings_staff_js.html:44 #: templates/currency_data.html:5 msgid "Currency" @@ -532,15 +552,15 @@ msgstr "" msgid "Select currency from available options" msgstr "" -#: InvenTree/serializers.py:407 templates/InvenTree/settings/user.html:33 +#: InvenTree/serializers.py:405 templates/InvenTree/settings/user.html:33 msgid "Username" msgstr "" -#: InvenTree/serializers.py:409 templates/InvenTree/settings/user.html:37 +#: InvenTree/serializers.py:408 templates/InvenTree/settings/user.html:37 msgid "First Name" msgstr "" -#: InvenTree/serializers.py:409 +#: InvenTree/serializers.py:408 msgid "First name of the user" msgstr "" @@ -552,30 +572,30 @@ msgstr "" msgid "Last name of the user" msgstr "" -#: InvenTree/serializers.py:415 +#: InvenTree/serializers.py:416 msgid "Email address of the user" msgstr "" -#: InvenTree/serializers.py:439 +#: InvenTree/serializers.py:441 msgid "Staff" msgstr "" -#: InvenTree/serializers.py:439 +#: InvenTree/serializers.py:441 msgid "Does this user have staff permissions" msgstr "" -#: InvenTree/serializers.py:442 +#: InvenTree/serializers.py:445 msgid "Superuser" msgstr "" -#: InvenTree/serializers.py:442 +#: InvenTree/serializers.py:445 msgid "Is this user a superuser" msgstr "" -#: InvenTree/serializers.py:445 common/models.py:2707 company/models.py:163 -#: company/models.py:801 machine/models.py:39 part/admin.py:88 -#: part/models.py:1189 plugin/models.py:66 -#: templates/js/translated/company.js:523 +#: InvenTree/serializers.py:449 common/models.py:2771 company/models.py:160 +#: company/models.py:798 machine/models.py:39 part/admin.py:88 +#: part/models.py:1250 plugin/models.py:66 +#: templates/js/translated/company.js:524 #: templates/js/translated/table_filters.js:134 #: templates/js/translated/table_filters.js:226 #: templates/js/translated/table_filters.js:513 @@ -585,230 +605,229 @@ msgstr "" msgid "Active" msgstr "" -#: InvenTree/serializers.py:445 +#: InvenTree/serializers.py:449 msgid "Is this user account active" msgstr "" -#: InvenTree/serializers.py:463 +#: InvenTree/serializers.py:467 msgid "You do not have permission to change this user role." msgstr "" -#: InvenTree/serializers.py:475 +#: InvenTree/serializers.py:503 msgid "Only superusers can create new users" msgstr "" -#: InvenTree/serializers.py:494 +#: InvenTree/serializers.py:523 msgid "Your account has been created." msgstr "" -#: InvenTree/serializers.py:496 +#: InvenTree/serializers.py:525 msgid "Please use the password reset function to login" msgstr "" -#: InvenTree/serializers.py:503 +#: InvenTree/serializers.py:531 msgid "Welcome to InvenTree" msgstr "" -#: InvenTree/serializers.py:561 +#: InvenTree/serializers.py:594 msgid "Invalid value" msgstr "" -#: InvenTree/serializers.py:581 importer/models.py:63 +#: InvenTree/serializers.py:614 importer/models.py:64 msgid "Data File" msgstr "" -#: InvenTree/serializers.py:582 +#: InvenTree/serializers.py:615 msgid "Select data file for upload" msgstr "" -#: InvenTree/serializers.py:599 -msgid "Unsupported file type" +#: InvenTree/serializers.py:632 common/files.py:63 +msgid "Unsupported file format" msgstr "" -#: InvenTree/serializers.py:605 +#: InvenTree/serializers.py:638 msgid "File is too large" msgstr "" -#: InvenTree/serializers.py:626 +#: InvenTree/serializers.py:659 msgid "No columns found in file" msgstr "" -#: InvenTree/serializers.py:629 +#: InvenTree/serializers.py:662 msgid "No data rows found in file" msgstr "" -#: InvenTree/serializers.py:742 +#: InvenTree/serializers.py:774 msgid "No data rows provided" msgstr "" -#: InvenTree/serializers.py:745 +#: InvenTree/serializers.py:777 msgid "No data columns supplied" msgstr "" -#: InvenTree/serializers.py:812 +#: InvenTree/serializers.py:843 #, python-brace-format msgid "Missing required column: '{name}'" msgstr "" -#: InvenTree/serializers.py:821 +#: InvenTree/serializers.py:852 #, python-brace-format msgid "Duplicate column: '{col}'" msgstr "" -#: InvenTree/serializers.py:861 +#: InvenTree/serializers.py:891 msgid "Remote Image" msgstr "" -#: InvenTree/serializers.py:862 +#: InvenTree/serializers.py:892 msgid "URL of remote image file" msgstr "" -#: InvenTree/serializers.py:880 +#: InvenTree/serializers.py:910 msgid "Downloading images from remote URL is not enabled" msgstr "" -#: InvenTree/status.py:66 part/serializers.py:1246 -msgid "Background worker check failed" -msgstr "" - -#: InvenTree/status.py:70 -msgid "Email backend not configured" -msgstr "" - -#: InvenTree/status.py:73 -msgid "InvenTree system health checks failed" +#: InvenTree/serializers.py:917 +msgid "Failed to download image from remote URL" msgstr "" #: InvenTree/templatetags/inventree_extras.py:184 msgid "Unknown database" msgstr "" -#: InvenTree/validators.py:32 InvenTree/validators.py:34 +#: InvenTree/validators.py:32 msgid "Invalid physical unit" msgstr "" -#: InvenTree/validators.py:40 +#: InvenTree/validators.py:38 msgid "Not a valid currency code" msgstr "" -#: InvenTree/validators.py:118 InvenTree/validators.py:134 +#: InvenTree/validators.py:115 InvenTree/validators.py:131 msgid "Overage value must not be negative" msgstr "" -#: InvenTree/validators.py:136 +#: InvenTree/validators.py:133 msgid "Overage must not exceed 100%" msgstr "" -#: InvenTree/validators.py:142 +#: InvenTree/validators.py:139 msgid "Invalid value for overage" msgstr "" -#: InvenTree/views.py:400 templates/InvenTree/settings/user.html:23 +#: InvenTree/views.py:399 templates/InvenTree/settings/user.html:23 msgid "Edit User Information" msgstr "" -#: InvenTree/views.py:412 templates/InvenTree/settings/user.html:20 +#: InvenTree/views.py:411 templates/InvenTree/settings/user.html:20 msgid "Set Password" msgstr "" -#: InvenTree/views.py:434 +#: InvenTree/views.py:433 msgid "Password fields must match" msgstr "" -#: InvenTree/views.py:442 +#: InvenTree/views.py:441 msgid "Wrong password provided" msgstr "" -#: InvenTree/views.py:650 templates/navbar.html:160 +#: InvenTree/views.py:645 templates/navbar.html:160 msgid "System Information" msgstr "" -#: InvenTree/views.py:657 templates/navbar.html:171 +#: InvenTree/views.py:652 templates/navbar.html:171 msgid "About InvenTree" msgstr "" -#: build/api.py:51 part/api.py:156 stock/api.py:343 -msgid "Cascade" -msgstr "" - -#: build/api.py:64 build/models.py:261 -#: build/templates/build/build_base.html:191 +#: build/api.py:54 build/models.py:262 +#: build/templates/build/build_base.html:192 #: build/templates/build/detail.html:87 msgid "Parent Build" msgstr "" -#: build/api.py:89 order/api.py:92 templates/js/translated/table_filters.js:101 +#: build/api.py:58 build/api.py:625 order/api.py:396 order/api.py:611 +#: order/api.py:990 order/api.py:1187 +#: templates/js/translated/table_filters.js:372 +msgid "Include Variants" +msgstr "" + +#: build/api.py:93 +msgid "Ancestor Build" +msgstr "" + +#: build/api.py:112 order/api.py:90 +#: templates/js/translated/table_filters.js:101 #: templates/js/translated/table_filters.js:549 #: templates/js/translated/table_filters.js:633 #: templates/js/translated/table_filters.js:674 msgid "Assigned to me" msgstr "" -#: build/api.py:106 build/templates/build/build_base.html:205 +#: build/api.py:129 build/templates/build/build_base.html:206 #: build/templates/build/detail.html:115 #: report/templates/report/inventree_build_order_report.html:152 #: templates/js/translated/table_filters.js:552 msgid "Issued By" msgstr "" -#: build/api.py:125 +#: build/api.py:148 msgid "Assigned To" msgstr "" -#: build/api.py:301 +#: build/api.py:310 msgid "Build must be cancelled before it can be deleted" msgstr "" -#: build/api.py:345 build/serializers.py:1288 part/models.py:4265 +#: build/api.py:354 build/serializers.py:1342 part/models.py:4322 #: templates/js/translated/bom.js:997 templates/js/translated/bom.js:1037 -#: templates/js/translated/build.js:2702 +#: templates/js/translated/build.js:2711 #: templates/js/translated/table_filters.js:197 #: templates/js/translated/table_filters.js:586 msgid "Consumable" msgstr "" -#: build/api.py:346 build/serializers.py:1289 part/models.py:4259 +#: build/api.py:355 build/serializers.py:1343 part/models.py:4316 #: part/templates/part/upload_bom.html:58 templates/js/translated/bom.js:1001 -#: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2693 +#: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2702 #: templates/js/translated/table_filters.js:193 #: templates/js/translated/table_filters.js:222 #: templates/js/translated/table_filters.js:590 msgid "Optional" msgstr "" -#: build/api.py:347 common/models.py:1489 part/admin.py:91 part/admin.py:428 -#: part/models.py:1154 part/serializers.py:1575 +#: build/api.py:356 common/models.py:1558 part/admin.py:91 part/admin.py:428 +#: part/models.py:1215 part/serializers.py:1633 #: templates/js/translated/bom.js:1639 #: templates/js/translated/table_filters.js:337 #: templates/js/translated/table_filters.js:729 msgid "Assembly" msgstr "" -#: build/api.py:348 templates/js/translated/table_filters.js:415 +#: build/api.py:357 templates/js/translated/table_filters.js:415 #: templates/js/translated/table_filters.js:582 msgid "Tracked" msgstr "" -#: build/api.py:349 build/serializers.py:1290 part/models.py:1172 +#: build/api.py:358 build/serializers.py:1344 part/models.py:1233 #: templates/js/translated/table_filters.js:146 #: templates/js/translated/table_filters.js:779 msgid "Testable" msgstr "" -#: build/api.py:351 part/admin.py:144 templates/js/translated/build.js:1917 -#: templates/js/translated/build.js:2820 -#: templates/js/translated/sales_order.js:1965 +#: build/api.py:360 order/api.py:779 part/admin.py:144 +#: templates/js/translated/build.js:1920 templates/js/translated/build.js:2838 +#: templates/js/translated/sales_order.js:1946 #: templates/js/translated/table_filters.js:574 msgid "Allocated" msgstr "" -#: build/api.py:359 company/models.py:891 company/serializers.py:395 -#: company/templates/company/supplier_part.html:114 +#: build/api.py:368 company/models.py:888 company/serializers.py:399 +#: company/templates/company/supplier_part.html:115 #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:17 -#: templates/js/translated/bom.js:1162 templates/js/translated/build.js:2752 +#: templates/js/translated/bom.js:1162 templates/js/translated/build.js:2770 #: templates/js/translated/index.js:123 -#: templates/js/translated/model_renderers.js:235 +#: templates/js/translated/model_renderers.js:238 #: templates/js/translated/part.js:695 templates/js/translated/part.js:697 #: templates/js/translated/part.js:702 #: templates/js/translated/table_filters.js:347 @@ -816,16 +835,68 @@ msgstr "" msgid "Available" msgstr "" -#: build/models.py:86 build/templates/build/build_base.html:9 -#: build/templates/build/build_base.html:27 +#: build/api.py:640 build/models.py:268 build/serializers.py:1330 +#: build/templates/build/build_base.html:106 +#: build/templates/build/detail.html:29 company/models.py:1043 order/api.py:775 +#: order/api.py:1003 order/models.py:1519 order/models.py:1674 +#: order/models.py:1675 part/api.py:1495 part/api.py:1802 part/models.py:419 +#: part/models.py:3177 part/models.py:3321 part/models.py:3469 +#: part/models.py:3490 part/models.py:3512 part/models.py:3648 +#: part/models.py:3995 part/models.py:4158 part/models.py:4288 +#: part/models.py:4654 part/serializers.py:1245 part/serializers.py:1898 +#: part/templates/part/part_app_base.html:8 +#: part/templates/part/part_pricing.html:12 +#: part/templates/part/upload_bom.html:52 +#: report/templates/report/inventree_bill_of_materials_report.html:110 +#: report/templates/report/inventree_bill_of_materials_report.html:137 +#: report/templates/report/inventree_build_order_report.html:109 +#: report/templates/report/inventree_purchase_order_report.html:27 +#: report/templates/report/inventree_return_order_report.html:24 +#: report/templates/report/inventree_sales_order_report.html:27 +#: report/templates/report/inventree_sales_order_shipment_report.html:28 +#: report/templates/report/inventree_stock_location_report.html:102 +#: stock/serializers.py:112 stock/serializers.py:160 stock/serializers.py:456 +#: stock/serializers.py:947 templates/InvenTree/search.html:82 +#: templates/email/build_order_completed.html:17 +#: templates/email/build_order_required_stock.html:17 +#: templates/email/low_stock_notification.html:15 +#: templates/email/overdue_build_order.html:16 +#: templates/js/translated/barcode.js:577 templates/js/translated/bom.js:632 +#: templates/js/translated/bom.js:769 templates/js/translated/bom.js:905 +#: templates/js/translated/build.js:1005 templates/js/translated/build.js:1488 +#: templates/js/translated/build.js:1919 templates/js/translated/build.js:2337 +#: templates/js/translated/build.js:2514 templates/js/translated/company.js:349 +#: templates/js/translated/company.js:1117 +#: templates/js/translated/company.js:1272 +#: templates/js/translated/company.js:1560 templates/js/translated/index.js:109 +#: templates/js/translated/part.js:1950 templates/js/translated/part.js:2022 +#: templates/js/translated/part.js:2330 templates/js/translated/pricing.js:369 +#: templates/js/translated/purchase_order.js:734 +#: templates/js/translated/purchase_order.js:1350 +#: templates/js/translated/purchase_order.js:1902 +#: templates/js/translated/purchase_order.js:2061 +#: templates/js/translated/return_order.js:538 +#: templates/js/translated/return_order.js:708 +#: templates/js/translated/sales_order.js:1199 +#: templates/js/translated/sales_order.js:1608 +#: templates/js/translated/sales_order.js:1813 +#: templates/js/translated/stock.js:682 templates/js/translated/stock.js:848 +#: templates/js/translated/stock.js:1065 templates/js/translated/stock.js:2083 +#: templates/js/translated/stock.js:2942 templates/js/translated/stock.js:3175 +#: templates/js/translated/stock.js:3320 +msgid "Part" +msgstr "" + +#: build/api.py:662 build/models.py:88 build/templates/build/build_base.html:10 +#: build/templates/build/build_base.html:28 #: report/templates/report/inventree_build_order_report.html:105 -#: stock/serializers.py:84 templates/email/build_order_completed.html:16 +#: stock/serializers.py:85 templates/email/build_order_completed.html:16 #: templates/email/overdue_build_order.html:15 -#: templates/js/translated/build.js:1145 templates/js/translated/stock.js:2976 +#: templates/js/translated/build.js:1148 templates/js/translated/stock.js:2977 msgid "Build Order" msgstr "" -#: build/models.py:87 build/templates/build/build_base.html:13 +#: build/models.py:89 build/templates/build/build_base.html:14 #: build/templates/build/index.html:8 build/templates/build/index.html:12 #: order/templates/order/sales_order_detail.html:111 #: order/templates/order/so_sidebar.html:13 @@ -836,268 +907,216 @@ msgstr "" msgid "Build Orders" msgstr "" -#: build/models.py:135 +#: build/models.py:136 msgid "Assembly BOM has not been validated" msgstr "" -#: build/models.py:142 +#: build/models.py:143 msgid "Build order cannot be created for an inactive part" msgstr "" -#: build/models.py:149 +#: build/models.py:150 msgid "Build order cannot be created for an unlocked part" msgstr "" -#: build/models.py:163 +#: build/models.py:164 msgid "Invalid choice for parent build" msgstr "" -#: build/models.py:174 order/models.py:239 +#: build/models.py:175 order/models.py:236 msgid "Responsible user or group must be specified" msgstr "" -#: build/models.py:180 +#: build/models.py:181 msgid "Build order part cannot be changed" msgstr "" -#: build/models.py:241 +#: build/models.py:242 msgid "Build Order Reference" msgstr "" -#: build/models.py:242 build/serializers.py:1287 order/models.py:467 -#: order/models.py:978 order/models.py:1373 order/models.py:2135 -#: part/admin.py:414 part/models.py:4280 part/templates/part/upload_bom.html:54 +#: build/models.py:243 build/serializers.py:1341 order/models.py:479 +#: order/models.py:1005 order/models.py:1390 order/models.py:2174 +#: part/admin.py:414 part/models.py:4337 part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_bill_of_materials_report.html:139 #: report/templates/report/inventree_purchase_order_report.html:28 #: report/templates/report/inventree_return_order_report.html:26 #: report/templates/report/inventree_sales_order_report.html:28 #: templates/js/translated/bom.js:770 templates/js/translated/bom.js:973 -#: templates/js/translated/build.js:1011 templates/js/translated/build.js:2685 +#: templates/js/translated/build.js:1014 templates/js/translated/build.js:2694 #: templates/js/translated/order.js:316 templates/js/translated/pricing.js:386 -#: templates/js/translated/purchase_order.js:2135 +#: templates/js/translated/purchase_order.js:2119 #: templates/js/translated/return_order.js:727 -#: templates/js/translated/sales_order.js:1854 +#: templates/js/translated/sales_order.js:1835 msgid "Reference" msgstr "" -#: build/models.py:253 +#: build/models.py:254 msgid "Brief description of the build (optional)" msgstr "" -#: build/models.py:262 +#: build/models.py:263 msgid "BuildOrder to which this build is allocated" msgstr "" -#: build/models.py:267 build/serializers.py:1278 -#: build/templates/build/build_base.html:105 -#: build/templates/build/detail.html:29 company/models.py:1046 order/api.py:767 -#: order/models.py:1503 order/models.py:1658 order/models.py:1659 -#: part/api.py:1509 part/api.py:1813 part/models.py:424 part/models.py:3126 -#: part/models.py:3270 part/models.py:3418 part/models.py:3439 -#: part/models.py:3461 part/models.py:3597 part/models.py:3937 -#: part/models.py:4100 part/models.py:4231 part/models.py:4592 -#: part/serializers.py:1192 part/serializers.py:1836 -#: part/templates/part/part_app_base.html:8 -#: part/templates/part/part_pricing.html:12 -#: part/templates/part/upload_bom.html:52 -#: report/templates/report/inventree_bill_of_materials_report.html:110 -#: report/templates/report/inventree_bill_of_materials_report.html:137 -#: report/templates/report/inventree_build_order_report.html:109 -#: report/templates/report/inventree_purchase_order_report.html:27 -#: report/templates/report/inventree_return_order_report.html:24 -#: report/templates/report/inventree_sales_order_report.html:27 -#: report/templates/report/inventree_stock_location_report.html:102 -#: stock/serializers.py:111 stock/serializers.py:159 stock/serializers.py:446 -#: stock/serializers.py:916 templates/InvenTree/search.html:82 -#: templates/email/build_order_completed.html:17 -#: templates/email/build_order_required_stock.html:17 -#: templates/email/low_stock_notification.html:15 -#: templates/email/overdue_build_order.html:16 -#: templates/js/translated/barcode.js:577 templates/js/translated/bom.js:632 -#: templates/js/translated/bom.js:769 templates/js/translated/bom.js:905 -#: templates/js/translated/build.js:1002 templates/js/translated/build.js:1485 -#: templates/js/translated/build.js:1916 templates/js/translated/build.js:2334 -#: templates/js/translated/build.js:2507 templates/js/translated/company.js:348 -#: templates/js/translated/company.js:1116 -#: templates/js/translated/company.js:1271 -#: templates/js/translated/company.js:1559 templates/js/translated/index.js:109 -#: templates/js/translated/part.js:1950 templates/js/translated/part.js:2022 -#: templates/js/translated/part.js:2330 templates/js/translated/pricing.js:369 -#: templates/js/translated/purchase_order.js:751 -#: templates/js/translated/purchase_order.js:1367 -#: templates/js/translated/purchase_order.js:1918 -#: templates/js/translated/purchase_order.js:2077 -#: templates/js/translated/return_order.js:538 -#: templates/js/translated/return_order.js:708 -#: templates/js/translated/sales_order.js:300 -#: templates/js/translated/sales_order.js:1233 -#: templates/js/translated/sales_order.js:1634 -#: templates/js/translated/sales_order.js:1832 -#: templates/js/translated/stock.js:682 templates/js/translated/stock.js:848 -#: templates/js/translated/stock.js:1065 templates/js/translated/stock.js:2082 -#: templates/js/translated/stock.js:2941 templates/js/translated/stock.js:3174 -#: templates/js/translated/stock.js:3319 -msgid "Part" -msgstr "" - -#: build/models.py:275 +#: build/models.py:274 msgid "Select part to build" msgstr "" -#: build/models.py:280 +#: build/models.py:279 msgid "Sales Order Reference" msgstr "" -#: build/models.py:284 +#: build/models.py:283 msgid "SalesOrder to which this build is allocated" msgstr "" -#: build/models.py:289 build/serializers.py:1048 -#: templates/js/translated/build.js:1904 -#: templates/js/translated/sales_order.js:1221 +#: build/models.py:288 build/serializers.py:1092 +#: templates/js/translated/build.js:1907 +#: templates/js/translated/sales_order.js:1187 msgid "Source Location" msgstr "" -#: build/models.py:293 +#: build/models.py:292 msgid "Select location to take stock from for this build (leave blank to take from any stock location)" msgstr "" -#: build/models.py:298 +#: build/models.py:297 msgid "Destination Location" msgstr "" -#: build/models.py:302 +#: build/models.py:301 msgid "Select location where the completed items will be stored" msgstr "" -#: build/models.py:306 +#: build/models.py:305 msgid "Build Quantity" msgstr "" -#: build/models.py:309 +#: build/models.py:308 msgid "Number of stock items to build" msgstr "" -#: build/models.py:313 +#: build/models.py:312 msgid "Completed items" msgstr "" -#: build/models.py:315 +#: build/models.py:314 msgid "Number of stock items which have been completed" msgstr "" -#: build/models.py:319 +#: build/models.py:318 msgid "Build Status" msgstr "" -#: build/models.py:323 +#: build/models.py:322 msgid "Build status code" msgstr "" -#: build/models.py:332 build/serializers.py:302 build/serializers.py:1198 -#: order/serializers.py:670 stock/models.py:859 stock/serializers.py:76 -#: stock/serializers.py:1562 templates/js/translated/purchase_order.js:1129 +#: build/models.py:331 build/serializers.py:349 build/serializers.py:1243 +#: order/serializers.py:755 stock/models.py:936 stock/serializers.py:77 +#: stock/serializers.py:1593 templates/js/translated/purchase_order.js:1112 #: templates/js/translated/stock.js:1199 msgid "Batch Code" msgstr "" -#: build/models.py:336 build/serializers.py:303 +#: build/models.py:335 build/serializers.py:350 msgid "Batch code for this build output" msgstr "" -#: build/models.py:339 order/models.py:315 order/serializers.py:126 -#: part/models.py:1229 part/templates/part/part_base.html:319 +#: build/models.py:338 order/models.py:322 order/serializers.py:157 +#: part/models.py:1290 part/templates/part/part_base.html:327 #: templates/js/translated/return_order.js:338 -#: templates/js/translated/sales_order.js:863 +#: templates/js/translated/sales_order.js:822 msgid "Creation Date" msgstr "" -#: build/models.py:343 +#: build/models.py:342 msgid "Target completion date" msgstr "" -#: build/models.py:344 +#: build/models.py:343 msgid "Target date for build completion. Build will be overdue after this date." msgstr "" -#: build/models.py:347 order/models.py:526 order/models.py:2180 -#: templates/js/translated/build.js:2419 +#: build/models.py:346 order/models.py:538 order/models.py:2219 +#: templates/js/translated/build.js:2422 msgid "Completion Date" msgstr "" -#: build/models.py:353 +#: build/models.py:352 msgid "completed by" msgstr "" -#: build/models.py:361 templates/js/translated/build.js:2379 +#: build/models.py:360 templates/js/translated/build.js:2382 msgid "Issued by" msgstr "" -#: build/models.py:362 +#: build/models.py:361 msgid "User who issued this build order" msgstr "" -#: build/models.py:370 build/templates/build/build_base.html:212 -#: build/templates/build/detail.html:122 common/models.py:165 order/api.py:142 -#: order/models.py:333 order/templates/order/order_base.html:222 -#: order/templates/order/return_order_base.html:191 -#: order/templates/order/sales_order_base.html:235 part/models.py:1246 -#: part/templates/part/part_base.html:399 +#: build/models.py:369 build/templates/build/build_base.html:213 +#: build/templates/build/detail.html:122 common/models.py:168 order/api.py:140 +#: order/models.py:340 order/templates/order/order_base.html:231 +#: order/templates/order/return_order_base.html:192 +#: order/templates/order/sales_order_base.html:236 part/models.py:1307 +#: part/templates/part/part_base.html:407 #: report/templates/report/inventree_build_order_report.html:158 #: templates/InvenTree/settings/settings_staff_js.html:150 -#: templates/js/translated/build.js:2391 -#: templates/js/translated/purchase_order.js:1833 +#: templates/js/translated/build.js:2394 +#: templates/js/translated/purchase_order.js:1817 #: templates/js/translated/return_order.js:358 #: templates/js/translated/table_filters.js:551 msgid "Responsible" msgstr "" -#: build/models.py:371 +#: build/models.py:370 msgid "User or group responsible for this build order" msgstr "" -#: build/models.py:376 build/templates/build/detail.html:108 +#: build/models.py:375 build/templates/build/detail.html:108 #: company/templates/company/manufacturer_part.html:107 -#: company/templates/company/supplier_part.html:194 -#: order/templates/order/order_base.html:172 -#: order/templates/order/return_order_base.html:148 -#: order/templates/order/sales_order_base.html:187 -#: part/templates/part/part_base.html:392 stock/models.py:855 -#: stock/templates/stock/item_base.html:200 -#: templates/js/translated/company.js:1019 +#: company/templates/company/supplier_part.html:195 +#: order/templates/order/order_base.html:181 +#: order/templates/order/return_order_base.html:149 +#: order/templates/order/sales_order_base.html:188 +#: part/templates/part/part_base.html:400 stock/models.py:932 +#: stock/templates/stock/item_base.html:197 +#: templates/js/translated/company.js:1020 msgid "External Link" msgstr "" -#: build/models.py:377 common/models.py:3273 part/models.py:1058 -#: stock/models.py:855 +#: build/models.py:376 common/models.py:3334 part/models.py:1119 +#: stock/models.py:932 msgid "Link to external URL" msgstr "" -#: build/models.py:381 +#: build/models.py:380 msgid "Build Priority" msgstr "" -#: build/models.py:384 +#: build/models.py:383 msgid "Priority of this build order" msgstr "" -#: build/models.py:391 common/models.py:135 common/models.py:149 -#: order/admin.py:18 order/api.py:128 order/models.py:297 +#: build/models.py:390 common/models.py:138 common/models.py:152 +#: order/admin.py:18 order/api.py:126 order/models.py:304 #: templates/InvenTree/settings/settings_staff_js.html:146 -#: templates/js/translated/build.js:2316 -#: templates/js/translated/purchase_order.js:1780 +#: templates/js/translated/build.js:2319 +#: templates/js/translated/purchase_order.js:1764 #: templates/js/translated/return_order.js:317 -#: templates/js/translated/sales_order.js:842 +#: templates/js/translated/sales_order.js:801 #: templates/js/translated/table_filters.js:47 #: templates/project_code_data.html:6 msgid "Project Code" msgstr "" -#: build/models.py:392 +#: build/models.py:391 msgid "Project code for this build order" msgstr "" -#: build/models.py:651 build/models.py:778 +#: build/models.py:651 build/models.py:779 msgid "Failed to offload task to complete build allocations" msgstr "" @@ -1110,610 +1129,619 @@ msgstr "" msgid "A build order has been completed" msgstr "" -#: build/models.py:967 build/models.py:1055 +#: build/models.py:858 build/serializers.py:393 +msgid "Serial numbers must be provided for trackable parts" +msgstr "" + +#: build/models.py:969 build/models.py:1058 msgid "No build output specified" msgstr "" -#: build/models.py:970 +#: build/models.py:972 msgid "Build output is already completed" msgstr "" -#: build/models.py:973 +#: build/models.py:975 msgid "Build output does not match Build Order" msgstr "" -#: build/models.py:1059 build/serializers.py:235 build/serializers.py:284 -#: build/serializers.py:915 order/models.py:564 order/serializers.py:499 -#: order/serializers.py:665 part/serializers.py:1569 part/serializers.py:1999 -#: stock/models.py:700 stock/models.py:1520 stock/serializers.py:669 +#: build/models.py:1062 build/serializers.py:282 build/serializers.py:331 +#: build/serializers.py:959 order/models.py:586 order/serializers.py:584 +#: order/serializers.py:750 part/serializers.py:1627 part/serializers.py:2060 +#: stock/models.py:777 stock/models.py:1609 stock/serializers.py:696 msgid "Quantity must be greater than zero" msgstr "" -#: build/models.py:1064 build/serializers.py:240 +#: build/models.py:1067 build/serializers.py:287 msgid "Quantity cannot be greater than the output quantity" msgstr "" -#: build/models.py:1124 build/serializers.py:563 +#: build/models.py:1127 build/serializers.py:607 #, python-brace-format msgid "Build output {serial} has not passed all required tests" msgstr "" -#: build/models.py:1465 +#: build/models.py:1482 msgid "Build Order Line Item" msgstr "" -#: build/models.py:1490 +#: build/models.py:1507 msgid "Build object" msgstr "" -#: build/models.py:1504 build/models.py:1760 build/serializers.py:222 -#: build/serializers.py:269 build/serializers.py:1295 -#: build/templates/build/build_base.html:110 -#: build/templates/build/detail.html:34 common/models.py:2579 -#: order/models.py:1356 order/models.py:2041 order/serializers.py:1460 +#: build/models.py:1521 build/models.py:1787 build/serializers.py:269 +#: build/serializers.py:316 build/serializers.py:1349 +#: build/templates/build/build_base.html:111 +#: build/templates/build/detail.html:34 common/models.py:2643 +#: order/models.py:1373 order/models.py:2074 order/serializers.py:1586 #: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:413 -#: part/forms.py:48 part/models.py:3284 part/models.py:4253 -#: part/templates/part/part_pricing.html:16 +#: part/forms.py:48 part/models.py:3335 part/models.py:4310 +#: part/serializers.py:265 part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_bill_of_materials_report.html:138 #: report/templates/report/inventree_build_order_report.html:113 #: report/templates/report/inventree_purchase_order_report.html:29 #: report/templates/report/inventree_sales_order_report.html:29 +#: report/templates/report/inventree_sales_order_shipment_report.html:47 +#: report/templates/report/inventree_sales_order_shipment_report.html:49 #: report/templates/report/inventree_stock_location_report.html:104 #: report/templates/report/inventree_test_report.html:90 -#: report/templates/report/inventree_test_report.html:169 stock/admin.py:159 -#: stock/serializers.py:127 stock/serializers.py:167 stock/serializers.py:660 -#: stock/templates/stock/item_base.html:287 -#: stock/templates/stock/item_base.html:295 -#: stock/templates/stock/item_base.html:342 +#: report/templates/report/inventree_test_report.html:169 stock/admin.py:160 +#: stock/serializers.py:128 stock/serializers.py:168 stock/serializers.py:687 +#: stock/templates/stock/item_base.html:284 +#: stock/templates/stock/item_base.html:292 +#: stock/templates/stock/item_base.html:339 #: templates/email/build_order_completed.html:18 #: templates/js/translated/barcode.js:579 templates/js/translated/bom.js:771 -#: templates/js/translated/bom.js:981 templates/js/translated/build.js:522 -#: templates/js/translated/build.js:737 templates/js/translated/build.js:1542 -#: templates/js/translated/build.js:1919 templates/js/translated/build.js:2529 -#: templates/js/translated/company.js:1818 -#: templates/js/translated/model_renderers.js:237 +#: templates/js/translated/bom.js:981 templates/js/translated/build.js:525 +#: templates/js/translated/build.js:740 templates/js/translated/build.js:1545 +#: templates/js/translated/build.js:1922 templates/js/translated/build.js:2536 +#: templates/js/translated/company.js:1819 +#: templates/js/translated/model_renderers.js:240 #: templates/js/translated/order.js:329 templates/js/translated/part.js:968 -#: templates/js/translated/part.js:1818 templates/js/translated/part.js:3360 +#: templates/js/translated/part.js:1818 templates/js/translated/part.js:3376 #: templates/js/translated/pricing.js:381 #: templates/js/translated/pricing.js:474 #: templates/js/translated/pricing.js:522 #: templates/js/translated/pricing.js:616 -#: templates/js/translated/purchase_order.js:754 -#: templates/js/translated/purchase_order.js:1922 -#: templates/js/translated/purchase_order.js:2141 -#: templates/js/translated/sales_order.js:317 -#: templates/js/translated/sales_order.js:1235 -#: templates/js/translated/sales_order.js:1554 -#: templates/js/translated/sales_order.js:1644 -#: templates/js/translated/sales_order.js:1734 -#: templates/js/translated/sales_order.js:1860 +#: templates/js/translated/purchase_order.js:737 +#: templates/js/translated/purchase_order.js:1906 +#: templates/js/translated/purchase_order.js:2125 +#: templates/js/translated/sales_order.js:1201 +#: templates/js/translated/sales_order.js:1520 +#: templates/js/translated/sales_order.js:1625 +#: templates/js/translated/sales_order.js:1715 +#: templates/js/translated/sales_order.js:1841 #: templates/js/translated/stock.js:570 templates/js/translated/stock.js:708 -#: templates/js/translated/stock.js:879 templates/js/translated/stock.js:3105 -#: templates/js/translated/stock.js:3188 +#: templates/js/translated/stock.js:879 templates/js/translated/stock.js:3106 +#: templates/js/translated/stock.js:3189 msgid "Quantity" msgstr "" -#: build/models.py:1505 +#: build/models.py:1522 msgid "Required quantity for build order" msgstr "" -#: build/models.py:1585 +#: build/models.py:1602 msgid "Build item must specify a build output, as master part is marked as trackable" msgstr "" -#: build/models.py:1594 +#: build/models.py:1611 #, python-brace-format msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgstr "" -#: build/models.py:1604 order/models.py:1992 +#: build/models.py:1628 order/models.py:2025 msgid "Stock item is over-allocated" msgstr "" -#: build/models.py:1610 order/models.py:1995 +#: build/models.py:1634 order/models.py:2028 msgid "Allocation quantity must be greater than zero" msgstr "" -#: build/models.py:1616 +#: build/models.py:1640 msgid "Quantity must be 1 for serialized stock" msgstr "" -#: build/models.py:1675 +#: build/models.py:1699 msgid "Selected stock item does not match BOM line" msgstr "" -#: build/models.py:1747 build/serializers.py:895 order/serializers.py:1297 -#: order/serializers.py:1318 stock/models.py:376 stock/serializers.py:93 -#: stock/serializers.py:763 stock/serializers.py:1281 stock/serializers.py:1393 -#: stock/templates/stock/item_base.html:10 -#: stock/templates/stock/item_base.html:23 -#: stock/templates/stock/item_base.html:194 -#: templates/js/translated/build.js:1918 -#: templates/js/translated/sales_order.js:301 -#: templates/js/translated/sales_order.js:1234 -#: templates/js/translated/sales_order.js:1535 -#: templates/js/translated/sales_order.js:1540 -#: templates/js/translated/sales_order.js:1641 -#: templates/js/translated/sales_order.js:1728 +#: build/models.py:1774 build/serializers.py:939 order/serializers.py:1423 +#: order/serializers.py:1444 +#: report/templates/report/inventree_sales_order_shipment_report.html:29 +#: stock/models.py:382 stock/serializers.py:94 stock/serializers.py:794 +#: stock/serializers.py:1312 stock/serializers.py:1424 +#: stock/templates/stock/item_base.html:11 +#: stock/templates/stock/item_base.html:24 +#: stock/templates/stock/item_base.html:191 +#: templates/js/translated/build.js:1921 +#: templates/js/translated/sales_order.js:1200 +#: templates/js/translated/sales_order.js:1501 +#: templates/js/translated/sales_order.js:1506 +#: templates/js/translated/sales_order.js:1622 +#: templates/js/translated/sales_order.js:1709 #: templates/js/translated/stock.js:683 templates/js/translated/stock.js:849 -#: templates/js/translated/stock.js:3061 +#: templates/js/translated/stock.js:3062 msgid "Stock Item" msgstr "" -#: build/models.py:1748 +#: build/models.py:1775 msgid "Source stock item" msgstr "" -#: build/models.py:1761 +#: build/models.py:1788 msgid "Stock quantity to allocate to build" msgstr "" -#: build/models.py:1769 +#: build/models.py:1796 msgid "Install into" msgstr "" -#: build/models.py:1770 +#: build/models.py:1797 msgid "Destination stock item" msgstr "" -#: build/serializers.py:91 +#: build/serializers.py:108 msgid "Build Level" msgstr "" -#: build/serializers.py:99 build/serializers.py:1190 build/serializers.py:1279 -#: part/admin.py:41 part/admin.py:408 part/models.py:4102 part/stocktake.py:219 -#: stock/admin.py:156 +#: build/serializers.py:116 build/serializers.py:1235 build/serializers.py:1331 +#: part/admin.py:41 part/admin.py:408 part/models.py:4160 part/stocktake.py:219 +#: stock/admin.py:157 msgid "Part Name" msgstr "" -#: build/serializers.py:111 +#: build/serializers.py:128 msgid "Project Code Label" msgstr "" -#: build/serializers.py:172 build/serializers.py:924 -#: templates/js/translated/build.js:1042 templates/js/translated/build.js:1495 +#: build/serializers.py:134 +msgid "Create Child Builds" +msgstr "" + +#: build/serializers.py:135 +msgid "Automatically generate child build orders" +msgstr "" + +#: build/serializers.py:219 build/serializers.py:968 +#: templates/js/translated/build.js:1045 templates/js/translated/build.js:1498 msgid "Build Output" msgstr "" -#: build/serializers.py:184 +#: build/serializers.py:231 msgid "Build output does not match the parent build" msgstr "" -#: build/serializers.py:188 +#: build/serializers.py:235 msgid "Output part does not match BuildOrder part" msgstr "" -#: build/serializers.py:192 +#: build/serializers.py:239 msgid "This build output has already been completed" msgstr "" -#: build/serializers.py:203 +#: build/serializers.py:250 msgid "This build output is not fully allocated" msgstr "" -#: build/serializers.py:223 build/serializers.py:270 +#: build/serializers.py:270 build/serializers.py:317 msgid "Enter quantity for build output" msgstr "" -#: build/serializers.py:291 +#: build/serializers.py:338 msgid "Integer quantity required for trackable parts" msgstr "" -#: build/serializers.py:294 +#: build/serializers.py:341 msgid "Integer quantity required, as the bill of materials contains trackable parts" msgstr "" -#: build/serializers.py:309 order/serializers.py:678 order/serializers.py:1464 -#: stock/serializers.py:680 templates/js/translated/purchase_order.js:1154 +#: build/serializers.py:356 order/serializers.py:763 order/serializers.py:1590 +#: stock/serializers.py:707 templates/js/translated/purchase_order.js:1137 #: templates/js/translated/stock.js:373 templates/js/translated/stock.js:571 msgid "Serial Numbers" msgstr "" -#: build/serializers.py:310 +#: build/serializers.py:357 msgid "Enter serial numbers for build outputs" msgstr "" -#: build/serializers.py:315 build/serializers.py:456 build/serializers.py:528 -#: order/serializers.py:654 order/serializers.py:778 order/serializers.py:1781 -#: part/serializers.py:1212 stock/serializers.py:102 stock/serializers.py:691 -#: stock/serializers.py:851 stock/serializers.py:977 stock/serializers.py:1425 -#: stock/serializers.py:1681 stock/templates/stock/item_base.html:394 +#: build/serializers.py:362 build/serializers.py:500 build/serializers.py:572 +#: order/serializers.py:739 order/serializers.py:880 order/serializers.py:1933 +#: part/serializers.py:1265 stock/serializers.py:103 stock/serializers.py:718 +#: stock/serializers.py:882 stock/serializers.py:1008 stock/serializers.py:1456 +#: stock/serializers.py:1712 stock/templates/stock/item_base.html:391 #: templates/js/translated/barcode.js:578 -#: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1032 -#: templates/js/translated/build.js:1174 templates/js/translated/build.js:2544 -#: templates/js/translated/purchase_order.js:1210 -#: templates/js/translated/purchase_order.js:1320 -#: templates/js/translated/sales_order.js:1547 -#: templates/js/translated/sales_order.js:1655 -#: templates/js/translated/sales_order.js:1663 -#: templates/js/translated/sales_order.js:1742 +#: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1035 +#: templates/js/translated/build.js:1177 templates/js/translated/build.js:2551 +#: templates/js/translated/purchase_order.js:1193 +#: templates/js/translated/purchase_order.js:1303 +#: templates/js/translated/sales_order.js:1513 +#: templates/js/translated/sales_order.js:1636 +#: templates/js/translated/sales_order.js:1644 +#: templates/js/translated/sales_order.js:1723 #: templates/js/translated/stock.js:684 templates/js/translated/stock.js:850 -#: templates/js/translated/stock.js:1067 templates/js/translated/stock.js:2286 -#: templates/js/translated/stock.js:2955 +#: templates/js/translated/stock.js:1067 templates/js/translated/stock.js:2287 +#: templates/js/translated/stock.js:2956 msgid "Location" msgstr "" -#: build/serializers.py:316 +#: build/serializers.py:363 msgid "Stock location for build output" msgstr "" -#: build/serializers.py:330 +#: build/serializers.py:377 msgid "Auto Allocate Serial Numbers" msgstr "" -#: build/serializers.py:331 +#: build/serializers.py:378 msgid "Automatically allocate required items with matching serial numbers" msgstr "" -#: build/serializers.py:346 -msgid "Serial numbers must be provided for trackable parts" -msgstr "" - -#: build/serializers.py:371 stock/api.py:1031 +#: build/serializers.py:415 order/serializers.py:858 stock/api.py:1017 +#: stock/models.py:1632 msgid "The following serial numbers already exist or are invalid" msgstr "" -#: build/serializers.py:418 build/serializers.py:480 build/serializers.py:569 +#: build/serializers.py:462 build/serializers.py:524 build/serializers.py:613 msgid "A list of build outputs must be provided" msgstr "" -#: build/serializers.py:457 +#: build/serializers.py:501 msgid "Stock location for scrapped outputs" msgstr "" -#: build/serializers.py:463 +#: build/serializers.py:507 msgid "Discard Allocations" msgstr "" -#: build/serializers.py:464 +#: build/serializers.py:508 msgid "Discard any stock allocations for scrapped outputs" msgstr "" -#: build/serializers.py:469 +#: build/serializers.py:513 msgid "Reason for scrapping build output(s)" msgstr "" -#: build/serializers.py:529 +#: build/serializers.py:573 msgid "Location for completed build outputs" msgstr "" -#: build/serializers.py:535 build/templates/build/build_base.html:159 -#: build/templates/build/detail.html:62 order/models.py:476 -#: order/models.py:1002 order/models.py:2159 order/serializers.py:686 -#: stock/admin.py:164 stock/serializers.py:1028 stock/serializers.py:1569 -#: stock/templates/stock/item_base.html:427 -#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2363 -#: templates/js/translated/purchase_order.js:1371 -#: templates/js/translated/purchase_order.js:1792 +#: build/serializers.py:579 build/templates/build/build_base.html:160 +#: build/templates/build/detail.html:62 order/models.py:488 +#: order/models.py:1029 order/models.py:2198 order/serializers.py:771 +#: stock/admin.py:165 stock/serializers.py:581 stock/serializers.py:1059 +#: stock/serializers.py:1600 stock/templates/stock/item_base.html:424 +#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2366 +#: templates/js/translated/purchase_order.js:1354 +#: templates/js/translated/purchase_order.js:1776 #: templates/js/translated/return_order.js:330 -#: templates/js/translated/sales_order.js:855 -#: templates/js/translated/stock.js:2261 templates/js/translated/stock.js:3079 -#: templates/js/translated/stock.js:3204 +#: templates/js/translated/sales_order.js:814 +#: templates/js/translated/stock.js:2262 templates/js/translated/stock.js:3080 +#: templates/js/translated/stock.js:3205 msgid "Status" msgstr "" -#: build/serializers.py:541 +#: build/serializers.py:585 msgid "Accept Incomplete Allocation" msgstr "" -#: build/serializers.py:542 +#: build/serializers.py:586 msgid "Complete outputs if stock has not been fully allocated" msgstr "" -#: build/serializers.py:654 +#: build/serializers.py:698 msgid "Consume Allocated Stock" msgstr "" -#: build/serializers.py:655 +#: build/serializers.py:699 msgid "Consume any stock which has already been allocated to this build" msgstr "" -#: build/serializers.py:661 +#: build/serializers.py:705 msgid "Remove Incomplete Outputs" msgstr "" -#: build/serializers.py:662 +#: build/serializers.py:706 msgid "Delete any build outputs which have not been completed" msgstr "" -#: build/serializers.py:689 +#: build/serializers.py:733 msgid "Not permitted" msgstr "" -#: build/serializers.py:690 +#: build/serializers.py:734 msgid "Accept as consumed by this build order" msgstr "" -#: build/serializers.py:691 +#: build/serializers.py:735 msgid "Deallocate before completing this build order" msgstr "" -#: build/serializers.py:721 +#: build/serializers.py:765 msgid "Overallocated Stock" msgstr "" -#: build/serializers.py:723 +#: build/serializers.py:767 msgid "How do you want to handle extra stock items assigned to the build order" msgstr "" -#: build/serializers.py:733 +#: build/serializers.py:777 msgid "Some stock items have been overallocated" msgstr "" -#: build/serializers.py:738 +#: build/serializers.py:782 msgid "Accept Unallocated" msgstr "" -#: build/serializers.py:739 +#: build/serializers.py:783 msgid "Accept that stock items have not been fully allocated to this build order" msgstr "" -#: build/serializers.py:749 templates/js/translated/build.js:316 +#: build/serializers.py:793 templates/js/translated/build.js:319 msgid "Required stock has not been fully allocated" msgstr "" -#: build/serializers.py:754 order/serializers.py:345 order/serializers.py:1365 +#: build/serializers.py:798 order/serializers.py:430 order/serializers.py:1491 msgid "Accept Incomplete" msgstr "" -#: build/serializers.py:755 +#: build/serializers.py:799 msgid "Accept that the required number of build outputs have not been completed" msgstr "" -#: build/serializers.py:765 templates/js/translated/build.js:320 +#: build/serializers.py:809 templates/js/translated/build.js:323 msgid "Required build quantity has not been completed" msgstr "" -#: build/serializers.py:774 +#: build/serializers.py:818 msgid "Build order has open child build orders" msgstr "" -#: build/serializers.py:777 +#: build/serializers.py:821 msgid "Build order must be in production state" msgstr "" -#: build/serializers.py:780 templates/js/translated/build.js:304 +#: build/serializers.py:824 templates/js/translated/build.js:307 msgid "Build order has incomplete outputs" msgstr "" -#: build/serializers.py:818 +#: build/serializers.py:862 msgid "Build Line" msgstr "" -#: build/serializers.py:828 +#: build/serializers.py:872 msgid "Build output" msgstr "" -#: build/serializers.py:836 +#: build/serializers.py:880 msgid "Build output must point to the same build" msgstr "" -#: build/serializers.py:872 +#: build/serializers.py:916 msgid "Build Line Item" msgstr "" -#: build/serializers.py:886 +#: build/serializers.py:930 msgid "bom_item.part must point to the same part as the build order" msgstr "" -#: build/serializers.py:901 stock/serializers.py:1294 +#: build/serializers.py:945 stock/serializers.py:1325 msgid "Item must be in stock" msgstr "" -#: build/serializers.py:949 order/serializers.py:1351 +#: build/serializers.py:993 order/serializers.py:1477 #, python-brace-format msgid "Available quantity ({q}) exceeded" msgstr "" -#: build/serializers.py:955 +#: build/serializers.py:999 msgid "Build output must be specified for allocation of tracked parts" msgstr "" -#: build/serializers.py:962 +#: build/serializers.py:1006 msgid "Build output cannot be specified for allocation of untracked parts" msgstr "" -#: build/serializers.py:986 order/serializers.py:1610 +#: build/serializers.py:1030 order/serializers.py:1750 msgid "Allocation items must be provided" msgstr "" -#: build/serializers.py:1049 +#: build/serializers.py:1093 msgid "Stock location where parts are to be sourced (leave blank to take from any location)" msgstr "" -#: build/serializers.py:1057 +#: build/serializers.py:1101 msgid "Exclude Location" msgstr "" -#: build/serializers.py:1058 +#: build/serializers.py:1102 msgid "Exclude stock items from this selected location" msgstr "" -#: build/serializers.py:1063 +#: build/serializers.py:1107 msgid "Interchangeable Stock" msgstr "" -#: build/serializers.py:1064 +#: build/serializers.py:1108 msgid "Stock items in multiple locations can be used interchangeably" msgstr "" -#: build/serializers.py:1069 +#: build/serializers.py:1113 msgid "Substitute Stock" msgstr "" -#: build/serializers.py:1070 +#: build/serializers.py:1114 msgid "Allow allocation of substitute parts" msgstr "" -#: build/serializers.py:1075 +#: build/serializers.py:1119 msgid "Optional Items" msgstr "" -#: build/serializers.py:1076 +#: build/serializers.py:1120 msgid "Allocate optional BOM items to build order" msgstr "" -#: build/serializers.py:1098 +#: build/serializers.py:1143 msgid "Failed to start auto-allocation task" msgstr "" -#: build/serializers.py:1181 +#: build/serializers.py:1226 stock/serializers.py:585 msgid "Supplier Part Number" msgstr "" -#: build/serializers.py:1182 company/models.py:506 +#: build/serializers.py:1227 company/models.py:503 stock/serializers.py:591 msgid "Manufacturer Part Number" msgstr "" -#: build/serializers.py:1183 stock/admin.py:53 stock/admin.py:175 -#: stock/serializers.py:457 +#: build/serializers.py:1228 stock/admin.py:53 stock/admin.py:176 +#: stock/serializers.py:467 msgid "Location Name" msgstr "" -#: build/serializers.py:1184 +#: build/serializers.py:1229 build/serializers.py:1327 msgid "Build Reference" msgstr "" -#: build/serializers.py:1185 +#: build/serializers.py:1230 msgid "BOM Reference" msgstr "" -#: build/serializers.py:1186 company/models.py:852 -#: company/templates/company/supplier_part.html:160 order/serializers.py:690 -#: stock/admin.py:228 stock/models.py:818 stock/serializers.py:1579 -#: stock/templates/stock/item_base.html:240 -#: templates/js/translated/company.js:1646 -#: templates/js/translated/purchase_order.js:1169 -#: templates/js/translated/purchase_order.js:1332 +#: build/serializers.py:1231 company/models.py:849 +#: company/templates/company/supplier_part.html:161 order/serializers.py:775 +#: stock/admin.py:229 stock/models.py:895 stock/serializers.py:1610 +#: stock/templates/stock/item_base.html:237 +#: templates/js/translated/company.js:1647 +#: templates/js/translated/purchase_order.js:1152 +#: templates/js/translated/purchase_order.js:1315 #: templates/js/translated/stock.js:1214 templates/js/translated/stock.js:1246 -#: templates/js/translated/stock.js:2509 +#: templates/js/translated/stock.js:2510 msgid "Packaging" msgstr "" -#: build/serializers.py:1189 part/admin.py:39 part/admin.py:398 -#: part/models.py:4101 part/stocktake.py:218 stock/admin.py:152 +#: build/serializers.py:1234 part/admin.py:39 part/admin.py:398 +#: part/models.py:4159 part/stocktake.py:218 stock/admin.py:153 msgid "Part ID" msgstr "" -#: build/serializers.py:1191 build/serializers.py:1280 part/admin.py:402 -#: part/models.py:4103 +#: build/serializers.py:1236 build/serializers.py:1332 part/admin.py:402 +#: part/models.py:4161 msgid "Part IPN" msgstr "" -#: build/serializers.py:1192 build/serializers.py:1282 part/admin.py:45 +#: build/serializers.py:1237 build/serializers.py:1334 part/admin.py:45 #: part/stocktake.py:220 msgid "Part Description" msgstr "" -#: build/serializers.py:1195 +#: build/serializers.py:1240 msgid "BOM Part ID" msgstr "" -#: build/serializers.py:1196 +#: build/serializers.py:1241 msgid "BOM Part Name" msgstr "" -#: build/serializers.py:1199 +#: build/serializers.py:1244 #: report/templates/report/inventree_return_order_report.html:25 -#: report/templates/report/inventree_test_report.html:88 stock/models.py:845 -#: stock/serializers.py:151 stock/templates/stock/item_base.html:311 -#: templates/js/translated/build.js:520 templates/js/translated/build.js:1540 -#: templates/js/translated/build.js:2527 -#: templates/js/translated/model_renderers.js:231 +#: report/templates/report/inventree_sales_order_shipment_report.html:45 +#: report/templates/report/inventree_test_report.html:88 stock/models.py:922 +#: stock/serializers.py:152 stock/templates/stock/item_base.html:308 +#: templates/js/translated/build.js:523 templates/js/translated/build.js:1543 +#: templates/js/translated/build.js:2534 +#: templates/js/translated/model_renderers.js:234 #: templates/js/translated/return_order.js:539 #: templates/js/translated/return_order.js:722 -#: templates/js/translated/sales_order.js:315 -#: templates/js/translated/sales_order.js:1647 -#: templates/js/translated/sales_order.js:1732 +#: templates/js/translated/sales_order.js:1628 +#: templates/js/translated/sales_order.js:1713 #: templates/js/translated/stock.js:602 msgid "Serial Number" msgstr "" -#: build/serializers.py:1212 stock/serializers.py:593 -#: templates/js/translated/build.js:1017 templates/js/translated/build.js:1164 -#: templates/js/translated/build.js:2516 +#: build/serializers.py:1257 stock/serializers.py:620 +#: templates/js/translated/build.js:1020 templates/js/translated/build.js:1167 +#: templates/js/translated/build.js:2523 msgid "Allocated Quantity" msgstr "" -#: build/serializers.py:1213 stock/templates/stock/item_base.html:340 +#: build/serializers.py:1258 stock/templates/stock/item_base.html:337 msgid "Available Quantity" msgstr "" -#: build/serializers.py:1283 +#: build/serializers.py:1335 msgid "Part Category ID" msgstr "" -#: build/serializers.py:1284 +#: build/serializers.py:1336 msgid "Part Category Name" msgstr "" -#: build/serializers.py:1291 common/models.py:1513 part/admin.py:113 -#: part/models.py:1166 templates/js/translated/table_filters.js:150 +#: build/serializers.py:1345 common/models.py:1582 part/admin.py:113 +#: part/models.py:1227 templates/js/translated/build.js:2738 +#: templates/js/translated/table_filters.js:150 #: templates/js/translated/table_filters.js:230 #: templates/js/translated/table_filters.js:783 msgid "Trackable" msgstr "" -#: build/serializers.py:1292 +#: build/serializers.py:1346 msgid "Inherited" msgstr "" -#: build/serializers.py:1293 part/models.py:4313 +#: build/serializers.py:1347 part/models.py:4370 #: part/templates/part/upload_bom.html:56 templates/js/translated/bom.js:1046 -#: templates/js/translated/build.js:2711 +#: templates/js/translated/build.js:2720 msgid "Allow Variants" msgstr "" -#: build/serializers.py:1297 part/models.py:4110 part/models.py:4584 +#: build/serializers.py:1351 part/models.py:4168 part/models.py:4646 #: stock/api.py:794 msgid "BOM Item" msgstr "" -#: build/serializers.py:1306 build/templates/build/detail.html:236 +#: build/serializers.py:1370 build/templates/build/detail.html:236 #: build/templates/build/sidebar.html:16 templates/js/translated/index.js:130 msgid "Allocated Stock" msgstr "" -#: build/serializers.py:1311 order/serializers.py:1175 part/admin.py:132 -#: part/bom.py:181 part/serializers.py:899 part/serializers.py:1602 -#: part/templates/part/part_base.html:210 templates/js/translated/bom.js:1208 -#: templates/js/translated/build.js:2804 templates/js/translated/part.js:712 +#: build/serializers.py:1375 order/serializers.py:1209 part/admin.py:132 +#: part/bom.py:186 part/serializers.py:951 part/serializers.py:1660 +#: part/templates/part/part_base.html:211 templates/js/translated/bom.js:1208 +#: templates/js/translated/build.js:2822 templates/js/translated/part.js:712 #: templates/js/translated/part.js:2155 #: templates/js/translated/table_filters.js:177 msgid "On Order" msgstr "" -#: build/serializers.py:1316 order/serializers.py:1176 part/serializers.py:1604 -#: templates/js/translated/build.js:2808 +#: build/serializers.py:1380 order/serializers.py:1210 part/serializers.py:1662 +#: templates/js/translated/build.js:2826 #: templates/js/translated/table_filters.js:367 msgid "In Production" msgstr "" -#: build/serializers.py:1321 part/bom.py:180 part/serializers.py:1629 -#: part/templates/part/part_base.html:192 -#: templates/js/translated/sales_order.js:1929 -msgid "Available Stock" -msgstr "" - -#: build/serializers.py:1325 -msgid "Available Substitute Stock" -msgstr "" - -#: build/serializers.py:1326 -msgid "Available Variant Stock" -msgstr "" - -#: build/serializers.py:1327 -msgid "Total Available Stock" -msgstr "" - -#: build/serializers.py:1328 part/serializers.py:906 +#: build/serializers.py:1384 part/serializers.py:958 msgid "External Stock" msgstr "" -#: build/status_codes.py:11 generic/states/tests.py:17 order/status_codes.py:12 -#: order/status_codes.py:42 order/status_codes.py:74 order/status_codes.py:98 +#: build/serializers.py:1385 part/bom.py:185 part/serializers.py:1687 +#: part/templates/part/part_base.html:193 +#: templates/js/translated/sales_order.js:1910 +msgid "Available Stock" +msgstr "" + +#: build/serializers.py:1386 +msgid "Available Substitute Stock" +msgstr "" + +#: build/serializers.py:1387 +msgid "Available Variant Stock" +msgstr "" + +#: build/status_codes.py:11 generic/states/tests.py:21 +#: generic/states/tests.py:131 order/status_codes.py:12 +#: order/status_codes.py:44 order/status_codes.py:76 order/status_codes.py:102 #: templates/js/translated/table_filters.js:601 msgid "Pending" msgstr "" @@ -1722,21 +1750,21 @@ msgstr "" msgid "Production" msgstr "" -#: build/status_codes.py:13 order/status_codes.py:14 order/status_codes.py:49 -#: order/status_codes.py:79 +#: build/status_codes.py:13 order/status_codes.py:14 order/status_codes.py:51 +#: order/status_codes.py:81 msgid "On Hold" msgstr "" -#: build/status_codes.py:14 order/status_codes.py:16 order/status_codes.py:51 -#: order/status_codes.py:82 +#: build/status_codes.py:14 order/status_codes.py:16 order/status_codes.py:53 +#: order/status_codes.py:84 msgid "Cancelled" msgstr "" -#: build/status_codes.py:15 generic/states/tests.py:19 importer/models.py:509 -#: importer/status_codes.py:19 order/status_codes.py:15 -#: order/status_codes.py:50 order/status_codes.py:81 -#: order/templates/order/order_base.html:163 -#: order/templates/order/sales_order_base.html:168 report/models.py:443 +#: build/status_codes.py:15 generic/states/tests.py:23 importer/models.py:518 +#: importer/status_codes.py:27 order/status_codes.py:15 +#: order/status_codes.py:52 order/status_codes.py:83 +#: order/templates/order/order_base.html:172 +#: order/templates/order/sales_order_base.html:169 report/models.py:451 msgid "Complete" msgstr "" @@ -1744,165 +1772,162 @@ msgstr "" msgid "Stock required for build order" msgstr "" -#: build/tasks.py:201 +#: build/tasks.py:260 msgid "Overdue Build Order" msgstr "" -#: build/tasks.py:206 +#: build/tasks.py:265 #, python-brace-format msgid "Build order {bo} is now overdue" msgstr "" -#: build/templates/build/build_base.html:18 +#: build/templates/build/build_base.html:19 msgid "Part thumbnail" msgstr "" -#: build/templates/build/build_base.html:38 -#: company/templates/company/supplier_part.html:35 -#: order/templates/order/order_base.html:29 -#: order/templates/order/return_order_base.html:38 -#: order/templates/order/sales_order_base.html:38 -#: part/templates/part/part_base.html:41 -#: stock/templates/stock/item_base.html:40 -#: stock/templates/stock/location.html:52 +#: build/templates/build/build_base.html:39 +#: company/templates/company/supplier_part.html:36 +#: order/templates/order/order_base.html:30 +#: order/templates/order/return_order_base.html:39 +#: order/templates/order/sales_order_base.html:39 +#: part/templates/part/part_base.html:42 +#: stock/templates/stock/item_base.html:41 +#: stock/templates/stock/location.html:53 #: templates/js/translated/filters.js:338 msgid "Barcode actions" msgstr "" -#: build/templates/build/build_base.html:42 -#: company/templates/company/supplier_part.html:39 -#: order/templates/order/order_base.html:33 -#: order/templates/order/return_order_base.html:42 -#: order/templates/order/sales_order_base.html:42 -#: part/templates/part/part_base.html:44 -#: stock/templates/stock/item_base.html:44 -#: stock/templates/stock/location.html:54 templates/qr_button.html:1 +#: build/templates/build/build_base.html:43 +#: company/templates/company/supplier_part.html:40 +#: order/templates/order/order_base.html:34 +#: order/templates/order/return_order_base.html:43 +#: order/templates/order/sales_order_base.html:43 +#: part/templates/part/part_base.html:45 +#: stock/templates/stock/item_base.html:45 +#: stock/templates/stock/location.html:55 templates/qr_button.html:1 msgid "Show QR Code" msgstr "" -#: build/templates/build/build_base.html:45 -#: company/templates/company/supplier_part.html:41 -#: order/templates/order/order_base.html:36 -#: order/templates/order/return_order_base.html:45 -#: order/templates/order/sales_order_base.html:45 -#: part/templates/part/part_base.html:47 -#: stock/templates/stock/item_base.html:47 -#: stock/templates/stock/location.html:56 +#: build/templates/build/build_base.html:46 +#: company/templates/company/supplier_part.html:42 +#: order/templates/order/order_base.html:37 +#: order/templates/order/return_order_base.html:46 +#: order/templates/order/sales_order_base.html:46 +#: part/templates/part/part_base.html:48 +#: stock/templates/stock/item_base.html:48 +#: stock/templates/stock/location.html:57 #: templates/js/translated/barcode.js:527 #: templates/js/translated/barcode.js:532 msgid "Unlink Barcode" msgstr "" -#: build/templates/build/build_base.html:47 -#: company/templates/company/supplier_part.html:43 -#: order/templates/order/order_base.html:38 -#: order/templates/order/return_order_base.html:47 -#: order/templates/order/sales_order_base.html:47 -#: part/templates/part/part_base.html:49 -#: stock/templates/stock/item_base.html:49 -#: stock/templates/stock/location.html:58 +#: build/templates/build/build_base.html:48 +#: company/templates/company/supplier_part.html:44 +#: order/templates/order/order_base.html:39 +#: order/templates/order/return_order_base.html:48 +#: order/templates/order/sales_order_base.html:48 +#: part/templates/part/part_base.html:50 +#: stock/templates/stock/item_base.html:50 +#: stock/templates/stock/location.html:59 msgid "Link Barcode" msgstr "" -#: build/templates/build/build_base.html:56 -#: order/templates/order/order_base.html:46 -#: order/templates/order/return_order_base.html:55 -#: order/templates/order/sales_order_base.html:55 +#: build/templates/build/build_base.html:57 +#: order/templates/order/order_base.html:47 +#: order/templates/order/return_order_base.html:56 +#: order/templates/order/sales_order_base.html:56 msgid "Print actions" msgstr "" -#: build/templates/build/build_base.html:60 +#: build/templates/build/build_base.html:61 msgid "Print build order report" msgstr "" -#: build/templates/build/build_base.html:67 +#: build/templates/build/build_base.html:68 msgid "Build actions" msgstr "" -#: build/templates/build/build_base.html:71 +#: build/templates/build/build_base.html:72 msgid "Edit Build" msgstr "" -#: build/templates/build/build_base.html:73 +#: build/templates/build/build_base.html:74 msgid "Duplicate Build" msgstr "" -#: build/templates/build/build_base.html:76 +#: build/templates/build/build_base.html:77 msgid "Hold Build" msgstr "" -#: build/templates/build/build_base.html:79 +#: build/templates/build/build_base.html:80 msgid "Cancel Build" msgstr "" -#: build/templates/build/build_base.html:82 +#: build/templates/build/build_base.html:83 msgid "Delete Build" msgstr "" -#: build/templates/build/build_base.html:87 -msgid "Isueue Build" -msgstr "" - #: build/templates/build/build_base.html:88 +#: build/templates/build/build_base.html:89 msgid "Issue Build" msgstr "" -#: build/templates/build/build_base.html:91 #: build/templates/build/build_base.html:92 +#: build/templates/build/build_base.html:93 msgid "Complete Build" msgstr "" -#: build/templates/build/build_base.html:115 +#: build/templates/build/build_base.html:116 msgid "Build Description" msgstr "" -#: build/templates/build/build_base.html:125 +#: build/templates/build/build_base.html:126 msgid "No build outputs have been created for this build order" msgstr "" -#: build/templates/build/build_base.html:132 +#: build/templates/build/build_base.html:133 msgid "Build Order is ready to mark as completed" msgstr "" -#: build/templates/build/build_base.html:137 +#: build/templates/build/build_base.html:138 msgid "Build Order cannot be completed as outstanding outputs remain" msgstr "" -#: build/templates/build/build_base.html:142 +#: build/templates/build/build_base.html:143 msgid "Required build quantity has not yet been completed" msgstr "" -#: build/templates/build/build_base.html:147 +#: build/templates/build/build_base.html:148 msgid "Stock has not been fully allocated to this Build Order" msgstr "" -#: build/templates/build/build_base.html:168 -#: build/templates/build/detail.html:138 order/models.py:308 -#: order/models.py:1391 order/serializers.py:174 -#: order/templates/order/order_base.html:191 -#: order/templates/order/return_order_base.html:167 -#: order/templates/order/sales_order_base.html:199 +#: build/templates/build/build_base.html:169 +#: build/templates/build/detail.html:138 order/models.py:315 +#: order/models.py:1408 order/serializers.py:254 +#: order/templates/order/order_base.html:200 +#: order/templates/order/return_order_base.html:168 +#: order/templates/order/sales_order_base.html:200 #: report/templates/report/inventree_build_order_report.html:125 -#: templates/js/translated/build.js:2411 templates/js/translated/part.js:1837 -#: templates/js/translated/purchase_order.js:1809 -#: templates/js/translated/purchase_order.js:2217 +#: templates/js/translated/build.js:2414 templates/js/translated/part.js:1837 +#: templates/js/translated/purchase_order.js:1793 +#: templates/js/translated/purchase_order.js:2201 #: templates/js/translated/return_order.js:346 #: templates/js/translated/return_order.js:749 -#: templates/js/translated/sales_order.js:871 -#: templates/js/translated/sales_order.js:1903 +#: templates/js/translated/sales_order.js:830 +#: templates/js/translated/sales_order.js:1884 msgid "Target Date" msgstr "" -#: build/templates/build/build_base.html:173 +#: build/templates/build/build_base.html:174 #, python-format msgid "This build was due on %(target)s" msgstr "" -#: build/templates/build/build_base.html:173 -#: build/templates/build/build_base.html:230 -#: order/templates/order/order_base.html:127 -#: order/templates/order/return_order_base.html:120 -#: order/templates/order/sales_order_base.html:129 +#: build/templates/build/build_base.html:174 +#: build/templates/build/build_base.html:231 +#: order/templates/order/order_base.html:128 +#: order/templates/order/return_order_base.html:121 +#: order/templates/order/sales_order_base.html:130 #: templates/js/translated/table_filters.js:97 #: templates/js/translated/table_filters.js:545 #: templates/js/translated/table_filters.js:629 @@ -1910,49 +1935,50 @@ msgstr "" msgid "Overdue" msgstr "" -#: build/templates/build/build_base.html:185 +#: build/templates/build/build_base.html:186 #: build/templates/build/detail.html:67 build/templates/build/sidebar.html:13 msgid "Completed Outputs" msgstr "" -#: build/templates/build/build_base.html:198 -#: build/templates/build/detail.html:101 order/api.py:1406 order/models.py:892 -#: order/models.py:1650 order/models.py:1765 order/models.py:1924 -#: order/templates/order/sales_order_base.html:9 -#: order/templates/order/sales_order_base.html:28 +#: build/templates/build/build_base.html:199 +#: build/templates/build/detail.html:101 order/api.py:1528 order/models.py:914 +#: order/models.py:1666 order/models.py:1794 order/models.py:1957 +#: order/templates/order/sales_order_base.html:10 +#: order/templates/order/sales_order_base.html:29 #: report/templates/report/inventree_build_order_report.html:135 #: report/templates/report/inventree_sales_order_report.html:14 -#: stock/templates/stock/item_base.html:369 +#: report/templates/report/inventree_sales_order_shipment_report.html:15 +#: stock/templates/stock/item_base.html:366 #: templates/email/overdue_sales_order.html:15 -#: templates/js/translated/pricing.js:929 -#: templates/js/translated/sales_order.js:805 -#: templates/js/translated/sales_order.js:1028 -#: templates/js/translated/stock.js:3008 +#: templates/js/translated/pricing.js:927 +#: templates/js/translated/sales_order.js:764 +#: templates/js/translated/sales_order.js:1001 +#: templates/js/translated/stock.js:3009 msgid "Sales Order" msgstr "" -#: build/templates/build/build_base.html:219 -#: build/templates/build/detail.html:94 templates/js/translated/build.js:2328 +#: build/templates/build/build_base.html:220 +#: build/templates/build/detail.html:94 templates/js/translated/build.js:2331 msgid "Priority" msgstr "" -#: build/templates/build/build_base.html:267 +#: build/templates/build/build_base.html:268 msgid "Issue Build Order" msgstr "" -#: build/templates/build/build_base.html:271 +#: build/templates/build/build_base.html:272 msgid "Issue this Build Order?" msgstr "" -#: build/templates/build/build_base.html:302 +#: build/templates/build/build_base.html:303 msgid "Delete Build Order" msgstr "" -#: build/templates/build/build_base.html:312 +#: build/templates/build/build_base.html:313 msgid "Build Order QR Code" msgstr "" -#: build/templates/build/build_base.html:324 +#: build/templates/build/build_base.html:325 msgid "Link Barcode to Build Order" msgstr "" @@ -1968,8 +1994,9 @@ msgstr "" msgid "Stock can be taken from any available location." msgstr "" -#: build/templates/build/detail.html:49 order/models.py:1532 -#: templates/js/translated/purchase_order.js:2259 +#: build/templates/build/detail.html:49 order/models.py:548 +#: order/models.py:1548 order/templates/order/order_base.html:135 +#: templates/js/translated/purchase_order.js:2243 msgid "Destination" msgstr "" @@ -1981,23 +2008,24 @@ msgstr "" msgid "Allocated Parts" msgstr "" -#: build/templates/build/detail.html:80 stock/admin.py:162 -#: stock/templates/stock/item_base.html:162 -#: templates/js/translated/build.js:1553 -#: templates/js/translated/model_renderers.js:242 -#: templates/js/translated/purchase_order.js:1326 +#: build/templates/build/detail.html:80 +#: report/templates/report/inventree_sales_order_shipment_report.html:47 +#: stock/admin.py:163 stock/templates/stock/item_base.html:159 +#: templates/js/translated/build.js:1556 +#: templates/js/translated/model_renderers.js:245 +#: templates/js/translated/purchase_order.js:1309 #: templates/js/translated/stock.js:1139 templates/js/translated/stock.js:1240 -#: templates/js/translated/stock.js:2275 templates/js/translated/stock.js:3211 +#: templates/js/translated/stock.js:2276 templates/js/translated/stock.js:3212 #: templates/js/translated/table_filters.js:320 #: templates/js/translated/table_filters.js:411 msgid "Batch" msgstr "" #: build/templates/build/detail.html:133 -#: order/templates/order/order_base.html:178 -#: order/templates/order/return_order_base.html:154 -#: order/templates/order/sales_order_base.html:193 -#: templates/js/translated/build.js:2371 +#: order/templates/order/order_base.html:187 +#: order/templates/order/return_order_base.html:155 +#: order/templates/order/sales_order_base.html:194 +#: templates/js/translated/build.js:2374 msgid "Created" msgstr "" @@ -2005,8 +2033,8 @@ msgstr "" msgid "No target date set" msgstr "" -#: build/templates/build/detail.html:149 -#: order/templates/order/sales_order_base.html:209 +#: build/templates/build/detail.html:149 order/api.py:794 +#: order/templates/order/sales_order_base.html:210 #: templates/js/translated/table_filters.js:692 msgid "Completed" msgstr "" @@ -2052,7 +2080,7 @@ msgid "Order required parts" msgstr "" #: build/templates/build/detail.html:192 -#: templates/js/translated/purchase_order.js:795 +#: templates/js/translated/purchase_order.js:778 msgid "Order Parts" msgstr "" @@ -2120,7 +2148,7 @@ msgstr "" msgid "Build Order Details" msgstr "" -#: build/templates/build/sidebar.html:8 order/serializers.py:82 +#: build/templates/build/sidebar.html:8 order/serializers.py:113 #: order/templates/order/po_sidebar.html:5 #: order/templates/order/return_order_detail.html:18 #: order/templates/order/so_sidebar.html:5 @@ -2139,43 +2167,38 @@ msgstr "" msgid "Test Statistics" msgstr "" -#: common/api.py:693 +#: common/api.py:725 msgid "Is Link" msgstr "" -#: common/api.py:701 +#: common/api.py:733 msgid "Is File" msgstr "" -#: common/api.py:744 +#: common/api.py:776 msgid "User does not have permission to delete these attachments" msgstr "" -#: common/api.py:761 +#: common/api.py:793 msgid "User does not have permission to delete this attachment" msgstr "" -#: common/currency.py:132 +#: common/currency.py:134 msgid "Invalid currency code" msgstr "" -#: common/currency.py:134 +#: common/currency.py:136 msgid "Duplicate currency code" msgstr "" -#: common/currency.py:139 +#: common/currency.py:141 msgid "No valid currency codes provided" msgstr "" -#: common/currency.py:156 +#: common/currency.py:158 msgid "No plugin" msgstr "" -#: common/files.py:63 -#, python-brace-format -msgid "Unsupported file format: {fmt}" -msgstr "" - #: common/files.py:65 msgid "Error reading file (invalid encoding)" msgstr "" @@ -2192,1883 +2215,2039 @@ msgstr "" msgid "Error reading file (data could be corrupted)" msgstr "" -#: common/forms.py:12 +#: common/forms.py:12 common/forms.py:25 msgid "File" msgstr "" -#: common/forms.py:12 +#: common/forms.py:12 common/forms.py:26 msgid "Select file to upload" msgstr "" -#: common/forms.py:25 -msgid "{name.title()} File" -msgstr "" - -#: common/forms.py:26 -#, python-brace-format -msgid "Select {name} file to upload" -msgstr "" - -#: common/models.py:86 +#: common/models.py:89 msgid "Updated" msgstr "" -#: common/models.py:87 +#: common/models.py:90 msgid "Timestamp of last update" msgstr "" -#: common/models.py:120 +#: common/models.py:123 msgid "Site URL is locked by configuration" msgstr "" -#: common/models.py:150 +#: common/models.py:153 msgid "Unique project code" msgstr "" -#: common/models.py:157 +#: common/models.py:160 msgid "Project description" msgstr "" -#: common/models.py:166 +#: common/models.py:169 msgid "User or group responsible for this project" msgstr "" -#: common/models.py:783 -msgid "Settings key (must be unique - case insensitive)" +#: common/models.py:783 common/models.py:2236 common/models.py:2613 +msgid "Settings key" msgstr "" #: common/models.py:787 msgid "Settings value" msgstr "" -#: common/models.py:839 +#: common/models.py:842 msgid "Chosen value is not a valid option" msgstr "" -#: common/models.py:855 +#: common/models.py:858 msgid "Value must be a boolean value" msgstr "" -#: common/models.py:863 +#: common/models.py:866 msgid "Value must be an integer value" msgstr "" -#: common/models.py:900 +#: common/models.py:874 +msgid "Value must be a valid number" +msgstr "" + +#: common/models.py:899 +msgid "Value does not pass validation checks" +msgstr "" + +#: common/models.py:921 msgid "Key string must be unique" msgstr "" -#: common/models.py:1132 +#: common/models.py:1189 msgid "No group" msgstr "" -#: common/models.py:1231 +#: common/models.py:1288 msgid "Restart required" msgstr "" -#: common/models.py:1233 +#: common/models.py:1290 msgid "A setting has been changed which requires a server restart" msgstr "" -#: common/models.py:1240 +#: common/models.py:1297 msgid "Pending migrations" msgstr "" -#: common/models.py:1241 +#: common/models.py:1298 msgid "Number of pending database migrations" msgstr "" -#: common/models.py:1246 +#: common/models.py:1303 msgid "Server Instance Name" msgstr "" -#: common/models.py:1248 +#: common/models.py:1305 msgid "String descriptor for the server instance" msgstr "" -#: common/models.py:1252 +#: common/models.py:1309 msgid "Use instance name" msgstr "" -#: common/models.py:1253 +#: common/models.py:1310 msgid "Use the instance name in the title-bar" msgstr "" -#: common/models.py:1258 +#: common/models.py:1315 msgid "Restrict showing `about`" msgstr "" -#: common/models.py:1259 +#: common/models.py:1316 msgid "Show the `about` modal only to superusers" msgstr "" -#: common/models.py:1264 company/models.py:111 company/models.py:112 +#: common/models.py:1321 company/models.py:108 company/models.py:109 msgid "Company name" msgstr "" -#: common/models.py:1265 +#: common/models.py:1322 msgid "Internal company name" msgstr "" -#: common/models.py:1269 +#: common/models.py:1326 msgid "Base URL" msgstr "" -#: common/models.py:1270 +#: common/models.py:1327 msgid "Base URL for server instance" msgstr "" -#: common/models.py:1276 +#: common/models.py:1333 msgid "Default Currency" msgstr "" -#: common/models.py:1277 +#: common/models.py:1334 msgid "Select base currency for pricing calculations" msgstr "" -#: common/models.py:1283 +#: common/models.py:1340 msgid "Supported Currencies" msgstr "" -#: common/models.py:1284 +#: common/models.py:1341 msgid "List of supported currency codes" msgstr "" -#: common/models.py:1290 +#: common/models.py:1347 msgid "Currency Update Interval" msgstr "" -#: common/models.py:1292 +#: common/models.py:1349 msgid "How often to update exchange rates (set to zero to disable)" msgstr "" -#: common/models.py:1295 common/models.py:1351 common/models.py:1364 -#: common/models.py:1372 common/models.py:1381 common/models.py:1390 -#: common/models.py:1627 common/models.py:1649 common/models.py:1764 -#: common/models.py:2146 +#: common/models.py:1352 common/models.py:1408 common/models.py:1421 +#: common/models.py:1429 common/models.py:1438 common/models.py:1447 +#: common/models.py:1696 common/models.py:1718 common/models.py:1819 +#: common/models.py:2208 msgid "days" msgstr "" -#: common/models.py:1299 +#: common/models.py:1356 msgid "Currency Update Plugin" msgstr "" -#: common/models.py:1300 +#: common/models.py:1357 msgid "Currency update plugin to use" msgstr "" -#: common/models.py:1305 +#: common/models.py:1362 msgid "Download from URL" msgstr "" -#: common/models.py:1307 +#: common/models.py:1364 msgid "Allow download of remote images and files from external URL" msgstr "" -#: common/models.py:1313 +#: common/models.py:1370 msgid "Download Size Limit" msgstr "" -#: common/models.py:1314 +#: common/models.py:1371 msgid "Maximum allowable download size for remote image" msgstr "" -#: common/models.py:1320 +#: common/models.py:1377 msgid "User-agent used to download from URL" msgstr "" -#: common/models.py:1322 +#: common/models.py:1379 msgid "Allow to override the user-agent used to download images and files from external URL (leave blank for the default)" msgstr "" -#: common/models.py:1327 +#: common/models.py:1384 msgid "Strict URL Validation" msgstr "" -#: common/models.py:1328 +#: common/models.py:1385 msgid "Require schema specification when validating URLs" msgstr "" -#: common/models.py:1333 +#: common/models.py:1390 msgid "Require confirm" msgstr "" -#: common/models.py:1334 +#: common/models.py:1391 msgid "Require explicit user confirmation for certain action." msgstr "" -#: common/models.py:1339 +#: common/models.py:1396 msgid "Tree Depth" msgstr "" -#: common/models.py:1341 +#: common/models.py:1398 msgid "Default tree depth for treeview. Deeper levels can be lazy loaded as they are needed." msgstr "" -#: common/models.py:1347 +#: common/models.py:1404 msgid "Update Check Interval" msgstr "" -#: common/models.py:1348 +#: common/models.py:1405 msgid "How often to check for updates (set to zero to disable)" msgstr "" -#: common/models.py:1354 +#: common/models.py:1411 msgid "Automatic Backup" msgstr "" -#: common/models.py:1355 +#: common/models.py:1412 msgid "Enable automatic backup of database and media files" msgstr "" -#: common/models.py:1360 +#: common/models.py:1417 msgid "Auto Backup Interval" msgstr "" -#: common/models.py:1361 +#: common/models.py:1418 msgid "Specify number of days between automated backup events" msgstr "" -#: common/models.py:1367 +#: common/models.py:1424 msgid "Task Deletion Interval" msgstr "" -#: common/models.py:1369 +#: common/models.py:1426 msgid "Background task results will be deleted after specified number of days" msgstr "" -#: common/models.py:1376 +#: common/models.py:1433 msgid "Error Log Deletion Interval" msgstr "" -#: common/models.py:1378 +#: common/models.py:1435 msgid "Error logs will be deleted after specified number of days" msgstr "" -#: common/models.py:1385 +#: common/models.py:1442 msgid "Notification Deletion Interval" msgstr "" -#: common/models.py:1387 +#: common/models.py:1444 msgid "User notifications will be deleted after specified number of days" msgstr "" -#: common/models.py:1394 templates/InvenTree/settings/sidebar.html:31 +#: common/models.py:1451 templates/InvenTree/settings/sidebar.html:31 msgid "Barcode Support" msgstr "" -#: common/models.py:1395 +#: common/models.py:1452 msgid "Enable barcode scanner support in the web interface" msgstr "" -#: common/models.py:1400 +#: common/models.py:1457 +msgid "Store Barcode Results" +msgstr "" + +#: common/models.py:1458 +msgid "Store barcode scan results in the database" +msgstr "" + +#: common/models.py:1463 +msgid "Barcode Scans Maximum Count" +msgstr "" + +#: common/models.py:1464 +msgid "Maximum number of barcode scan results to store" +msgstr "" + +#: common/models.py:1469 msgid "Barcode Input Delay" msgstr "" -#: common/models.py:1401 +#: common/models.py:1470 msgid "Barcode input processing delay time" msgstr "" -#: common/models.py:1407 +#: common/models.py:1476 msgid "Barcode Webcam Support" msgstr "" -#: common/models.py:1408 +#: common/models.py:1477 msgid "Allow barcode scanning via webcam in browser" msgstr "" -#: common/models.py:1413 +#: common/models.py:1482 msgid "Barcode Show Data" msgstr "" -#: common/models.py:1414 +#: common/models.py:1483 msgid "Display barcode data in browser as text" msgstr "" -#: common/models.py:1419 +#: common/models.py:1488 msgid "Barcode Generation Plugin" msgstr "" -#: common/models.py:1420 +#: common/models.py:1489 msgid "Plugin to use for internal barcode data generation" msgstr "" -#: common/models.py:1425 +#: common/models.py:1494 msgid "Part Revisions" msgstr "" -#: common/models.py:1426 +#: common/models.py:1495 msgid "Enable revision field for Part" msgstr "" -#: common/models.py:1431 +#: common/models.py:1500 msgid "Assembly Revision Only" msgstr "" -#: common/models.py:1432 +#: common/models.py:1501 msgid "Only allow revisions for assembly parts" msgstr "" -#: common/models.py:1437 +#: common/models.py:1506 msgid "Allow Deletion from Assembly" msgstr "" -#: common/models.py:1438 +#: common/models.py:1507 msgid "Allow deletion of parts which are used in an assembly" msgstr "" -#: common/models.py:1443 +#: common/models.py:1512 msgid "IPN Regex" msgstr "" -#: common/models.py:1444 +#: common/models.py:1513 msgid "Regular expression pattern for matching Part IPN" msgstr "" -#: common/models.py:1447 +#: common/models.py:1516 msgid "Allow Duplicate IPN" msgstr "" -#: common/models.py:1448 +#: common/models.py:1517 msgid "Allow multiple parts to share the same IPN" msgstr "" -#: common/models.py:1453 +#: common/models.py:1522 msgid "Allow Editing IPN" msgstr "" -#: common/models.py:1454 +#: common/models.py:1523 msgid "Allow changing the IPN value while editing a part" msgstr "" -#: common/models.py:1459 +#: common/models.py:1528 msgid "Copy Part BOM Data" msgstr "" -#: common/models.py:1460 +#: common/models.py:1529 msgid "Copy BOM data by default when duplicating a part" msgstr "" -#: common/models.py:1465 +#: common/models.py:1534 msgid "Copy Part Parameter Data" msgstr "" -#: common/models.py:1466 +#: common/models.py:1535 msgid "Copy parameter data by default when duplicating a part" msgstr "" -#: common/models.py:1471 +#: common/models.py:1540 msgid "Copy Part Test Data" msgstr "" -#: common/models.py:1472 +#: common/models.py:1541 msgid "Copy test data by default when duplicating a part" msgstr "" -#: common/models.py:1477 +#: common/models.py:1546 msgid "Copy Category Parameter Templates" msgstr "" -#: common/models.py:1478 +#: common/models.py:1547 msgid "Copy category parameter templates when creating a part" msgstr "" -#: common/models.py:1483 part/admin.py:108 part/models.py:3945 -#: report/models.py:293 report/models.py:360 report/serializers.py:90 -#: report/serializers.py:131 stock/serializers.py:232 +#: common/models.py:1552 part/admin.py:108 part/models.py:4003 +#: report/models.py:301 report/models.py:368 report/serializers.py:91 +#: report/serializers.py:132 stock/serializers.py:233 #: templates/js/translated/table_filters.js:138 #: templates/js/translated/table_filters.js:775 msgid "Template" msgstr "" -#: common/models.py:1484 +#: common/models.py:1553 msgid "Parts are templates by default" msgstr "" -#: common/models.py:1490 +#: common/models.py:1559 msgid "Parts can be assembled from other components by default" msgstr "" -#: common/models.py:1495 part/admin.py:95 part/models.py:1160 -#: part/serializers.py:1596 templates/js/translated/table_filters.js:737 +#: common/models.py:1564 part/admin.py:95 part/models.py:1221 +#: part/serializers.py:1654 templates/js/translated/table_filters.js:737 msgid "Component" msgstr "" -#: common/models.py:1496 +#: common/models.py:1565 msgid "Parts can be used as sub-components by default" msgstr "" -#: common/models.py:1501 part/admin.py:100 part/models.py:1178 +#: common/models.py:1570 part/admin.py:100 part/models.py:1239 msgid "Purchaseable" msgstr "" -#: common/models.py:1502 +#: common/models.py:1571 msgid "Parts are purchaseable by default" msgstr "" -#: common/models.py:1507 part/admin.py:104 part/models.py:1184 +#: common/models.py:1576 part/admin.py:104 part/models.py:1245 #: templates/js/translated/table_filters.js:763 msgid "Salable" msgstr "" -#: common/models.py:1508 +#: common/models.py:1577 msgid "Parts are salable by default" msgstr "" -#: common/models.py:1514 +#: common/models.py:1583 msgid "Parts are trackable by default" msgstr "" -#: common/models.py:1519 part/admin.py:117 part/models.py:1200 -#: part/templates/part/part_base.html:154 +#: common/models.py:1588 part/admin.py:117 part/models.py:1261 +#: part/templates/part/part_base.html:155 #: templates/js/translated/table_filters.js:142 #: templates/js/translated/table_filters.js:787 msgid "Virtual" msgstr "" -#: common/models.py:1520 +#: common/models.py:1589 msgid "Parts are virtual by default" msgstr "" -#: common/models.py:1525 +#: common/models.py:1594 msgid "Show Import in Views" msgstr "" -#: common/models.py:1526 +#: common/models.py:1595 msgid "Display the import wizard in some part views" msgstr "" -#: common/models.py:1531 +#: common/models.py:1600 msgid "Show related parts" msgstr "" -#: common/models.py:1532 +#: common/models.py:1601 msgid "Display related parts for a part" msgstr "" -#: common/models.py:1537 +#: common/models.py:1606 msgid "Initial Stock Data" msgstr "" -#: common/models.py:1538 +#: common/models.py:1607 msgid "Allow creation of initial stock when adding a new part" msgstr "" -#: common/models.py:1543 templates/js/translated/part.js:108 +#: common/models.py:1612 templates/js/translated/part.js:108 msgid "Initial Supplier Data" msgstr "" -#: common/models.py:1545 +#: common/models.py:1614 msgid "Allow creation of initial supplier data when adding a new part" msgstr "" -#: common/models.py:1551 +#: common/models.py:1620 msgid "Part Name Display Format" msgstr "" -#: common/models.py:1552 +#: common/models.py:1621 msgid "Format to display the part name" msgstr "" -#: common/models.py:1558 +#: common/models.py:1627 msgid "Part Category Default Icon" msgstr "" -#: common/models.py:1559 +#: common/models.py:1628 msgid "Part category default icon (empty means no icon)" msgstr "" -#: common/models.py:1564 +#: common/models.py:1633 msgid "Enforce Parameter Units" msgstr "" -#: common/models.py:1566 +#: common/models.py:1635 msgid "If units are provided, parameter values must match the specified units" msgstr "" -#: common/models.py:1572 +#: common/models.py:1641 msgid "Minimum Pricing Decimal Places" msgstr "" -#: common/models.py:1574 +#: common/models.py:1643 msgid "Minimum number of decimal places to display when rendering pricing data" msgstr "" -#: common/models.py:1585 +#: common/models.py:1654 msgid "Maximum Pricing Decimal Places" msgstr "" -#: common/models.py:1587 +#: common/models.py:1656 msgid "Maximum number of decimal places to display when rendering pricing data" msgstr "" -#: common/models.py:1598 +#: common/models.py:1667 msgid "Use Supplier Pricing" msgstr "" -#: common/models.py:1600 +#: common/models.py:1669 msgid "Include supplier price breaks in overall pricing calculations" msgstr "" -#: common/models.py:1606 +#: common/models.py:1675 msgid "Purchase History Override" msgstr "" -#: common/models.py:1608 +#: common/models.py:1677 msgid "Historical purchase order pricing overrides supplier price breaks" msgstr "" -#: common/models.py:1614 +#: common/models.py:1683 msgid "Use Stock Item Pricing" msgstr "" -#: common/models.py:1616 +#: common/models.py:1685 msgid "Use pricing from manually entered stock data for pricing calculations" msgstr "" -#: common/models.py:1622 +#: common/models.py:1691 msgid "Stock Item Pricing Age" msgstr "" -#: common/models.py:1624 +#: common/models.py:1693 msgid "Exclude stock items older than this number of days from pricing calculations" msgstr "" -#: common/models.py:1631 +#: common/models.py:1700 msgid "Use Variant Pricing" msgstr "" -#: common/models.py:1632 +#: common/models.py:1701 msgid "Include variant pricing in overall pricing calculations" msgstr "" -#: common/models.py:1637 +#: common/models.py:1706 msgid "Active Variants Only" msgstr "" -#: common/models.py:1639 +#: common/models.py:1708 msgid "Only use active variant parts for calculating variant pricing" msgstr "" -#: common/models.py:1645 +#: common/models.py:1714 msgid "Pricing Rebuild Interval" msgstr "" -#: common/models.py:1647 +#: common/models.py:1716 msgid "Number of days before part pricing is automatically updated" msgstr "" -#: common/models.py:1654 +#: common/models.py:1723 msgid "Internal Prices" msgstr "" -#: common/models.py:1655 +#: common/models.py:1724 msgid "Enable internal prices for parts" msgstr "" -#: common/models.py:1660 +#: common/models.py:1729 msgid "Internal Price Override" msgstr "" -#: common/models.py:1662 +#: common/models.py:1731 msgid "If available, internal prices override price range calculations" msgstr "" -#: common/models.py:1668 +#: common/models.py:1737 msgid "Enable label printing" msgstr "" -#: common/models.py:1669 +#: common/models.py:1738 msgid "Enable label printing from the web interface" msgstr "" -#: common/models.py:1674 +#: common/models.py:1743 msgid "Label Image DPI" msgstr "" -#: common/models.py:1676 +#: common/models.py:1745 msgid "DPI resolution when generating image files to supply to label printing plugins" msgstr "" -#: common/models.py:1682 +#: common/models.py:1751 msgid "Enable Reports" msgstr "" -#: common/models.py:1683 +#: common/models.py:1752 msgid "Enable generation of reports" msgstr "" -#: common/models.py:1688 templates/stats.html:25 +#: common/models.py:1757 templates/stats.html:25 msgid "Debug Mode" msgstr "" -#: common/models.py:1689 +#: common/models.py:1758 msgid "Generate reports in debug mode (HTML output)" msgstr "" -#: common/models.py:1694 +#: common/models.py:1763 msgid "Log Report Errors" msgstr "" -#: common/models.py:1695 +#: common/models.py:1764 msgid "Log errors which occur when generating reports" msgstr "" -#: common/models.py:1700 plugin/builtin/labels/label_sheet.py:28 -#: report/models.py:301 +#: common/models.py:1769 plugin/builtin/labels/label_sheet.py:28 +#: report/models.py:309 msgid "Page Size" msgstr "" -#: common/models.py:1701 +#: common/models.py:1770 msgid "Default page size for PDF reports" msgstr "" -#: common/models.py:1706 -msgid "Enable Test Reports" -msgstr "" - -#: common/models.py:1707 -msgid "Enable generation of test reports" -msgstr "" - -#: common/models.py:1712 -msgid "Attach Test Reports" -msgstr "" - -#: common/models.py:1714 -msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item" -msgstr "" - -#: common/models.py:1720 +#: common/models.py:1775 msgid "Globally Unique Serials" msgstr "" -#: common/models.py:1721 +#: common/models.py:1776 msgid "Serial numbers for stock items must be globally unique" msgstr "" -#: common/models.py:1726 +#: common/models.py:1781 msgid "Autofill Serial Numbers" msgstr "" -#: common/models.py:1727 +#: common/models.py:1782 msgid "Autofill serial numbers in forms" msgstr "" -#: common/models.py:1732 +#: common/models.py:1787 msgid "Delete Depleted Stock" msgstr "" -#: common/models.py:1734 +#: common/models.py:1789 msgid "Determines default behavior when a stock item is depleted" msgstr "" -#: common/models.py:1740 +#: common/models.py:1795 msgid "Batch Code Template" msgstr "" -#: common/models.py:1742 +#: common/models.py:1797 msgid "Template for generating default batch codes for stock items" msgstr "" -#: common/models.py:1747 +#: common/models.py:1802 msgid "Stock Expiry" msgstr "" -#: common/models.py:1748 +#: common/models.py:1803 msgid "Enable stock expiry functionality" msgstr "" -#: common/models.py:1753 +#: common/models.py:1808 msgid "Sell Expired Stock" msgstr "" -#: common/models.py:1754 +#: common/models.py:1809 msgid "Allow sale of expired stock" msgstr "" -#: common/models.py:1759 +#: common/models.py:1814 msgid "Stock Stale Time" msgstr "" -#: common/models.py:1761 +#: common/models.py:1816 msgid "Number of days stock items are considered stale before expiring" msgstr "" -#: common/models.py:1768 +#: common/models.py:1823 msgid "Build Expired Stock" msgstr "" -#: common/models.py:1769 +#: common/models.py:1824 msgid "Allow building with expired stock" msgstr "" -#: common/models.py:1774 +#: common/models.py:1829 msgid "Stock Ownership Control" msgstr "" -#: common/models.py:1775 +#: common/models.py:1830 msgid "Enable ownership control over stock locations and items" msgstr "" -#: common/models.py:1780 +#: common/models.py:1835 msgid "Stock Location Default Icon" msgstr "" -#: common/models.py:1781 +#: common/models.py:1836 msgid "Stock location default icon (empty means no icon)" msgstr "" -#: common/models.py:1786 +#: common/models.py:1841 msgid "Show Installed Stock Items" msgstr "" -#: common/models.py:1787 +#: common/models.py:1842 msgid "Display installed stock items in stock tables" msgstr "" -#: common/models.py:1792 +#: common/models.py:1847 msgid "Check BOM when installing items" msgstr "" -#: common/models.py:1794 +#: common/models.py:1849 msgid "Installed stock items must exist in the BOM for the parent part" msgstr "" -#: common/models.py:1800 +#: common/models.py:1855 msgid "Allow Out of Stock Transfer" msgstr "" -#: common/models.py:1802 +#: common/models.py:1857 msgid "Allow stock items which are not in stock to be transferred between stock locations" msgstr "" -#: common/models.py:1808 +#: common/models.py:1863 msgid "Build Order Reference Pattern" msgstr "" -#: common/models.py:1810 +#: common/models.py:1865 msgid "Required pattern for generating Build Order reference field" msgstr "" -#: common/models.py:1816 common/models.py:1872 common/models.py:1894 -#: common/models.py:1930 +#: common/models.py:1871 common/models.py:1927 common/models.py:1949 +#: common/models.py:1985 msgid "Require Responsible Owner" msgstr "" -#: common/models.py:1817 common/models.py:1873 common/models.py:1895 -#: common/models.py:1931 +#: common/models.py:1872 common/models.py:1928 common/models.py:1950 +#: common/models.py:1986 msgid "A responsible owner must be assigned to each order" msgstr "" -#: common/models.py:1822 +#: common/models.py:1877 msgid "Require Active Part" msgstr "" -#: common/models.py:1823 +#: common/models.py:1878 msgid "Prevent build order creation for inactive parts" msgstr "" -#: common/models.py:1828 +#: common/models.py:1883 msgid "Require Locked Part" msgstr "" -#: common/models.py:1829 +#: common/models.py:1884 msgid "Prevent build order creation for unlocked parts" msgstr "" -#: common/models.py:1834 +#: common/models.py:1889 msgid "Require Valid BOM" msgstr "" -#: common/models.py:1836 +#: common/models.py:1891 msgid "Prevent build order creation unless BOM has been validated" msgstr "" -#: common/models.py:1842 +#: common/models.py:1897 msgid "Require Closed Child Orders" msgstr "" -#: common/models.py:1844 +#: common/models.py:1899 msgid "Prevent build order completion until all child orders are closed" msgstr "" -#: common/models.py:1850 +#: common/models.py:1905 msgid "Block Until Tests Pass" msgstr "" -#: common/models.py:1852 +#: common/models.py:1907 msgid "Prevent build outputs from being completed until all required tests pass" msgstr "" -#: common/models.py:1858 +#: common/models.py:1913 msgid "Enable Return Orders" msgstr "" -#: common/models.py:1859 +#: common/models.py:1914 msgid "Enable return order functionality in the user interface" msgstr "" -#: common/models.py:1864 +#: common/models.py:1919 msgid "Return Order Reference Pattern" msgstr "" -#: common/models.py:1866 +#: common/models.py:1921 msgid "Required pattern for generating Return Order reference field" msgstr "" -#: common/models.py:1878 +#: common/models.py:1933 msgid "Edit Completed Return Orders" msgstr "" -#: common/models.py:1880 +#: common/models.py:1935 msgid "Allow editing of return orders after they have been completed" msgstr "" -#: common/models.py:1886 +#: common/models.py:1941 msgid "Sales Order Reference Pattern" msgstr "" -#: common/models.py:1888 +#: common/models.py:1943 msgid "Required pattern for generating Sales Order reference field" msgstr "" -#: common/models.py:1900 +#: common/models.py:1955 msgid "Sales Order Default Shipment" msgstr "" -#: common/models.py:1901 +#: common/models.py:1956 msgid "Enable creation of default shipment with sales orders" msgstr "" -#: common/models.py:1906 +#: common/models.py:1961 msgid "Edit Completed Sales Orders" msgstr "" -#: common/models.py:1908 +#: common/models.py:1963 msgid "Allow editing of sales orders after they have been shipped or completed" msgstr "" -#: common/models.py:1914 +#: common/models.py:1969 msgid "Mark Shipped Orders as Complete" msgstr "" -#: common/models.py:1916 +#: common/models.py:1971 msgid "Sales orders marked as shipped will automatically be completed, bypassing the \"shipped\" status" msgstr "" -#: common/models.py:1922 +#: common/models.py:1977 msgid "Purchase Order Reference Pattern" msgstr "" -#: common/models.py:1924 +#: common/models.py:1979 msgid "Required pattern for generating Purchase Order reference field" msgstr "" -#: common/models.py:1936 +#: common/models.py:1991 msgid "Edit Completed Purchase Orders" msgstr "" -#: common/models.py:1938 +#: common/models.py:1993 msgid "Allow editing of purchase orders after they have been shipped or completed" msgstr "" -#: common/models.py:1944 +#: common/models.py:1999 msgid "Auto Complete Purchase Orders" msgstr "" -#: common/models.py:1946 +#: common/models.py:2001 msgid "Automatically mark purchase orders as complete when all line items are received" msgstr "" -#: common/models.py:1953 +#: common/models.py:2008 msgid "Enable password forgot" msgstr "" -#: common/models.py:1954 +#: common/models.py:2009 msgid "Enable password forgot function on the login pages" msgstr "" -#: common/models.py:1959 +#: common/models.py:2014 msgid "Enable registration" msgstr "" -#: common/models.py:1960 +#: common/models.py:2015 msgid "Enable self-registration for users on the login pages" msgstr "" -#: common/models.py:1965 +#: common/models.py:2020 msgid "Enable SSO" msgstr "" -#: common/models.py:1966 +#: common/models.py:2021 msgid "Enable SSO on the login pages" msgstr "" -#: common/models.py:1971 +#: common/models.py:2026 msgid "Enable SSO registration" msgstr "" -#: common/models.py:1973 +#: common/models.py:2028 msgid "Enable self-registration via SSO for users on the login pages" msgstr "" -#: common/models.py:1979 +#: common/models.py:2034 msgid "Enable SSO group sync" msgstr "" -#: common/models.py:1981 +#: common/models.py:2036 msgid "Enable synchronizing InvenTree groups with groups provided by the IdP" msgstr "" -#: common/models.py:1987 +#: common/models.py:2042 msgid "SSO group key" msgstr "" -#: common/models.py:1989 +#: common/models.py:2044 msgid "The name of the groups claim attribute provided by the IdP" msgstr "" -#: common/models.py:1995 +#: common/models.py:2050 msgid "SSO group map" msgstr "" -#: common/models.py:1997 +#: common/models.py:2052 msgid "A mapping from SSO groups to local InvenTree groups. If the local group does not exist, it will be created." msgstr "" -#: common/models.py:2003 +#: common/models.py:2058 msgid "Remove groups outside of SSO" msgstr "" -#: common/models.py:2005 +#: common/models.py:2060 msgid "Whether groups assigned to the user should be removed if they are not backend by the IdP. Disabling this setting might cause security issues" msgstr "" -#: common/models.py:2011 +#: common/models.py:2066 msgid "Email required" msgstr "" -#: common/models.py:2012 +#: common/models.py:2067 msgid "Require user to supply mail on signup" msgstr "" -#: common/models.py:2017 +#: common/models.py:2072 msgid "Auto-fill SSO users" msgstr "" -#: common/models.py:2019 +#: common/models.py:2074 msgid "Automatically fill out user-details from SSO account-data" msgstr "" -#: common/models.py:2025 +#: common/models.py:2080 msgid "Mail twice" msgstr "" -#: common/models.py:2026 +#: common/models.py:2081 msgid "On signup ask users twice for their mail" msgstr "" -#: common/models.py:2031 +#: common/models.py:2086 msgid "Password twice" msgstr "" -#: common/models.py:2032 +#: common/models.py:2087 msgid "On signup ask users twice for their password" msgstr "" -#: common/models.py:2037 +#: common/models.py:2092 msgid "Allowed domains" msgstr "" -#: common/models.py:2039 +#: common/models.py:2094 msgid "Restrict signup to certain domains (comma-separated, starting with @)" msgstr "" -#: common/models.py:2045 +#: common/models.py:2100 msgid "Group on signup" msgstr "" -#: common/models.py:2047 +#: common/models.py:2102 msgid "Group to which new users are assigned on registration. If SSO group sync is enabled, this group is only set if no group can be assigned from the IdP." msgstr "" -#: common/models.py:2053 +#: common/models.py:2108 msgid "Enforce MFA" msgstr "" -#: common/models.py:2054 +#: common/models.py:2109 msgid "Users must use multifactor security." msgstr "" -#: common/models.py:2059 +#: common/models.py:2114 msgid "Check plugins on startup" msgstr "" -#: common/models.py:2061 +#: common/models.py:2116 msgid "Check that all plugins are installed on startup - enable in container environments" msgstr "" -#: common/models.py:2069 +#: common/models.py:2124 msgid "Check for plugin updates" msgstr "" -#: common/models.py:2070 +#: common/models.py:2125 msgid "Enable periodic checks for updates to installed plugins" msgstr "" -#: common/models.py:2076 +#: common/models.py:2131 msgid "Enable URL integration" msgstr "" -#: common/models.py:2077 +#: common/models.py:2132 msgid "Enable plugins to add URL routes" msgstr "" -#: common/models.py:2083 +#: common/models.py:2138 msgid "Enable navigation integration" msgstr "" -#: common/models.py:2084 +#: common/models.py:2139 msgid "Enable plugins to integrate into navigation" msgstr "" -#: common/models.py:2090 +#: common/models.py:2145 msgid "Enable app integration" msgstr "" -#: common/models.py:2091 +#: common/models.py:2146 msgid "Enable plugins to add apps" msgstr "" -#: common/models.py:2097 +#: common/models.py:2152 msgid "Enable schedule integration" msgstr "" -#: common/models.py:2098 +#: common/models.py:2153 msgid "Enable plugins to run scheduled tasks" msgstr "" -#: common/models.py:2104 +#: common/models.py:2159 msgid "Enable event integration" msgstr "" -#: common/models.py:2105 +#: common/models.py:2160 msgid "Enable plugins to respond to internal events" msgstr "" -#: common/models.py:2111 +#: common/models.py:2166 +msgid "Enable interface integration" +msgstr "" + +#: common/models.py:2167 +msgid "Enable plugins to integrate into the user interface" +msgstr "" + +#: common/models.py:2173 msgid "Enable project codes" msgstr "" -#: common/models.py:2112 +#: common/models.py:2174 msgid "Enable project codes for tracking projects" msgstr "" -#: common/models.py:2117 +#: common/models.py:2179 msgid "Stocktake Functionality" msgstr "" -#: common/models.py:2119 +#: common/models.py:2181 msgid "Enable stocktake functionality for recording stock levels and calculating stock value" msgstr "" -#: common/models.py:2125 +#: common/models.py:2187 msgid "Exclude External Locations" msgstr "" -#: common/models.py:2127 +#: common/models.py:2189 msgid "Exclude stock items in external locations from stocktake calculations" msgstr "" -#: common/models.py:2133 +#: common/models.py:2195 msgid "Automatic Stocktake Period" msgstr "" -#: common/models.py:2135 +#: common/models.py:2197 msgid "Number of days between automatic stocktake recording (set to zero to disable)" msgstr "" -#: common/models.py:2141 +#: common/models.py:2203 msgid "Report Deletion Interval" msgstr "" -#: common/models.py:2143 +#: common/models.py:2205 msgid "Stocktake reports will be deleted after specified number of days" msgstr "" -#: common/models.py:2150 +#: common/models.py:2212 msgid "Display Users full names" msgstr "" -#: common/models.py:2151 +#: common/models.py:2213 msgid "Display Users full names instead of usernames" msgstr "" -#: common/models.py:2156 +#: common/models.py:2218 msgid "Enable Test Station Data" msgstr "" -#: common/models.py:2157 +#: common/models.py:2219 msgid "Enable test station data collection for test results" msgstr "" -#: common/models.py:2169 common/models.py:2549 -msgid "Settings key (must be unique - case insensitive" -msgstr "" - -#: common/models.py:2212 -msgid "Hide inactive parts" -msgstr "" - -#: common/models.py:2214 -msgid "Hide inactive parts in results displayed on the homepage" -msgstr "" - -#: common/models.py:2220 -msgid "Show subscribed parts" -msgstr "" - -#: common/models.py:2221 -msgid "Show subscribed parts on the homepage" +#: common/models.py:2224 +msgid "Create Template on Upload" msgstr "" #: common/models.py:2226 -msgid "Show subscribed categories" +msgid "Create a new test template when uploading test data which does not match an existing template" msgstr "" -#: common/models.py:2227 -msgid "Show subscribed part categories on the homepage" -msgstr "" - -#: common/models.py:2232 -msgid "Show latest parts" -msgstr "" - -#: common/models.py:2233 -msgid "Show latest parts on the homepage" -msgstr "" - -#: common/models.py:2238 -msgid "Show invalid BOMs" -msgstr "" - -#: common/models.py:2239 -msgid "Show BOMs that await validation on the homepage" -msgstr "" - -#: common/models.py:2244 -msgid "Show recent stock changes" -msgstr "" - -#: common/models.py:2245 -msgid "Show recently changed stock items on the homepage" -msgstr "" - -#: common/models.py:2250 -msgid "Show low stock" -msgstr "" - -#: common/models.py:2251 -msgid "Show low stock items on the homepage" -msgstr "" - -#: common/models.py:2256 -msgid "Show depleted stock" -msgstr "" - -#: common/models.py:2257 -msgid "Show depleted stock items on the homepage" -msgstr "" - -#: common/models.py:2262 -msgid "Show needed stock" -msgstr "" - -#: common/models.py:2263 -msgid "Show stock items needed for builds on the homepage" -msgstr "" - -#: common/models.py:2268 -msgid "Show expired stock" -msgstr "" - -#: common/models.py:2269 -msgid "Show expired stock items on the homepage" -msgstr "" - -#: common/models.py:2274 -msgid "Show stale stock" -msgstr "" - -#: common/models.py:2275 -msgid "Show stale stock items on the homepage" -msgstr "" - -#: common/models.py:2280 -msgid "Show pending builds" +#: common/models.py:2279 +msgid "Hide inactive parts" msgstr "" #: common/models.py:2281 -msgid "Show pending builds on the homepage" -msgstr "" - -#: common/models.py:2286 -msgid "Show overdue builds" +msgid "Hide inactive parts in results displayed on the homepage" msgstr "" #: common/models.py:2287 -msgid "Show overdue builds on the homepage" +msgid "Show subscribed parts" msgstr "" -#: common/models.py:2292 -msgid "Show outstanding POs" +#: common/models.py:2288 +msgid "Show subscribed parts on the homepage" msgstr "" #: common/models.py:2293 -msgid "Show outstanding POs on the homepage" +msgid "Show subscribed categories" msgstr "" -#: common/models.py:2298 -msgid "Show overdue POs" +#: common/models.py:2294 +msgid "Show subscribed part categories on the homepage" msgstr "" #: common/models.py:2299 -msgid "Show overdue POs on the homepage" +msgid "Show latest parts" msgstr "" -#: common/models.py:2304 -msgid "Show outstanding SOs" +#: common/models.py:2300 +msgid "Show latest parts on the homepage" msgstr "" #: common/models.py:2305 -msgid "Show outstanding SOs on the homepage" +msgid "Show invalid BOMs" msgstr "" -#: common/models.py:2310 -msgid "Show overdue SOs" +#: common/models.py:2306 +msgid "Show BOMs that await validation on the homepage" msgstr "" #: common/models.py:2311 -msgid "Show overdue SOs on the homepage" +msgid "Show recent stock changes" msgstr "" -#: common/models.py:2316 -msgid "Show pending SO shipments" +#: common/models.py:2312 +msgid "Show recently changed stock items on the homepage" msgstr "" #: common/models.py:2317 -msgid "Show pending SO shipments on the homepage" +msgid "Show low stock" msgstr "" -#: common/models.py:2322 -msgid "Show News" +#: common/models.py:2318 +msgid "Show low stock items on the homepage" msgstr "" #: common/models.py:2323 -msgid "Show news on the homepage" +msgid "Show depleted stock" msgstr "" -#: common/models.py:2328 -msgid "Inline label display" +#: common/models.py:2324 +msgid "Show depleted stock items on the homepage" +msgstr "" + +#: common/models.py:2329 +msgid "Show needed stock" msgstr "" #: common/models.py:2330 -msgid "Display PDF labels in the browser, instead of downloading as a file" +msgid "Show stock items needed for builds on the homepage" +msgstr "" + +#: common/models.py:2335 +msgid "Show expired stock" msgstr "" #: common/models.py:2336 -msgid "Default label printer" +msgid "Show expired stock items on the homepage" msgstr "" -#: common/models.py:2338 -msgid "Configure which label printer should be selected by default" +#: common/models.py:2341 +msgid "Show stale stock" msgstr "" -#: common/models.py:2344 -msgid "Inline report display" +#: common/models.py:2342 +msgid "Show stale stock items on the homepage" msgstr "" -#: common/models.py:2346 -msgid "Display PDF reports in the browser, instead of downloading as a file" +#: common/models.py:2347 +msgid "Show pending builds" msgstr "" -#: common/models.py:2352 -msgid "Search Parts" +#: common/models.py:2348 +msgid "Show pending builds on the homepage" msgstr "" #: common/models.py:2353 -msgid "Display parts in search preview window" +msgid "Show overdue builds" msgstr "" -#: common/models.py:2358 -msgid "Search Supplier Parts" +#: common/models.py:2354 +msgid "Show overdue builds on the homepage" msgstr "" #: common/models.py:2359 -msgid "Display supplier parts in search preview window" +msgid "Show outstanding POs" msgstr "" -#: common/models.py:2364 -msgid "Search Manufacturer Parts" +#: common/models.py:2360 +msgid "Show outstanding POs on the homepage" msgstr "" #: common/models.py:2365 -msgid "Display manufacturer parts in search preview window" +msgid "Show overdue POs" msgstr "" -#: common/models.py:2370 -msgid "Hide Inactive Parts" +#: common/models.py:2366 +msgid "Show overdue POs on the homepage" msgstr "" #: common/models.py:2371 -msgid "Excluded inactive parts from search preview window" +msgid "Show outstanding SOs" msgstr "" -#: common/models.py:2376 -msgid "Search Categories" +#: common/models.py:2372 +msgid "Show outstanding SOs on the homepage" msgstr "" #: common/models.py:2377 -msgid "Display part categories in search preview window" +msgid "Show overdue SOs" msgstr "" -#: common/models.py:2382 -msgid "Search Stock" +#: common/models.py:2378 +msgid "Show overdue SOs on the homepage" msgstr "" #: common/models.py:2383 -msgid "Display stock items in search preview window" +msgid "Show pending SO shipments" msgstr "" -#: common/models.py:2388 -msgid "Hide Unavailable Stock Items" +#: common/models.py:2384 +msgid "Show pending SO shipments on the homepage" +msgstr "" + +#: common/models.py:2389 +msgid "Show News" msgstr "" #: common/models.py:2390 -msgid "Exclude stock items which are not available from the search preview window" +msgid "Show news on the homepage" msgstr "" -#: common/models.py:2396 -msgid "Search Locations" +#: common/models.py:2395 +msgid "Inline label display" msgstr "" #: common/models.py:2397 -msgid "Display stock locations in search preview window" -msgstr "" - -#: common/models.py:2402 -msgid "Search Companies" +msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "" #: common/models.py:2403 -msgid "Display companies in search preview window" +msgid "Default label printer" msgstr "" -#: common/models.py:2408 -msgid "Search Build Orders" +#: common/models.py:2405 +msgid "Configure which label printer should be selected by default" msgstr "" -#: common/models.py:2409 -msgid "Display build orders in search preview window" +#: common/models.py:2411 +msgid "Inline report display" msgstr "" -#: common/models.py:2414 -msgid "Search Purchase Orders" +#: common/models.py:2413 +msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:2415 -msgid "Display purchase orders in search preview window" +#: common/models.py:2419 +msgid "Search Parts" msgstr "" #: common/models.py:2420 -msgid "Exclude Inactive Purchase Orders" +msgid "Display parts in search preview window" msgstr "" -#: common/models.py:2422 -msgid "Exclude inactive purchase orders from search preview window" +#: common/models.py:2425 +msgid "Search Supplier Parts" msgstr "" -#: common/models.py:2428 -msgid "Search Sales Orders" +#: common/models.py:2426 +msgid "Display supplier parts in search preview window" msgstr "" -#: common/models.py:2429 -msgid "Display sales orders in search preview window" +#: common/models.py:2431 +msgid "Search Manufacturer Parts" msgstr "" -#: common/models.py:2434 -msgid "Exclude Inactive Sales Orders" +#: common/models.py:2432 +msgid "Display manufacturer parts in search preview window" msgstr "" -#: common/models.py:2436 -msgid "Exclude inactive sales orders from search preview window" +#: common/models.py:2437 +msgid "Hide Inactive Parts" msgstr "" -#: common/models.py:2442 -msgid "Search Return Orders" +#: common/models.py:2438 +msgid "Excluded inactive parts from search preview window" msgstr "" #: common/models.py:2443 -msgid "Display return orders in search preview window" +msgid "Search Categories" msgstr "" -#: common/models.py:2448 -msgid "Exclude Inactive Return Orders" +#: common/models.py:2444 +msgid "Display part categories in search preview window" +msgstr "" + +#: common/models.py:2449 +msgid "Search Stock" msgstr "" #: common/models.py:2450 -msgid "Exclude inactive return orders from search preview window" +msgid "Display stock items in search preview window" msgstr "" -#: common/models.py:2456 -msgid "Search Preview Results" +#: common/models.py:2455 +msgid "Hide Unavailable Stock Items" msgstr "" -#: common/models.py:2458 -msgid "Number of results to show in each section of the search preview window" +#: common/models.py:2457 +msgid "Exclude stock items which are not available from the search preview window" +msgstr "" + +#: common/models.py:2463 +msgid "Search Locations" msgstr "" #: common/models.py:2464 -msgid "Regex Search" +msgid "Display stock locations in search preview window" msgstr "" -#: common/models.py:2465 -msgid "Enable regular expressions in search queries" +#: common/models.py:2469 +msgid "Search Companies" msgstr "" #: common/models.py:2470 -msgid "Whole Word Search" +msgid "Display companies in search preview window" msgstr "" -#: common/models.py:2471 -msgid "Search queries return results for whole word matches" +#: common/models.py:2475 +msgid "Search Build Orders" msgstr "" #: common/models.py:2476 -msgid "Show Quantity in Forms" +msgid "Display build orders in search preview window" msgstr "" -#: common/models.py:2477 -msgid "Display available part quantity in some forms" +#: common/models.py:2481 +msgid "Search Purchase Orders" msgstr "" #: common/models.py:2482 -msgid "Escape Key Closes Forms" +msgid "Display purchase orders in search preview window" msgstr "" -#: common/models.py:2483 -msgid "Use the escape key to close modal forms" -msgstr "" - -#: common/models.py:2488 -msgid "Fixed Navbar" +#: common/models.py:2487 +msgid "Exclude Inactive Purchase Orders" msgstr "" #: common/models.py:2489 -msgid "The navbar position is fixed to the top of the screen" -msgstr "" - -#: common/models.py:2494 -msgid "Date Format" +msgid "Exclude inactive purchase orders from search preview window" msgstr "" #: common/models.py:2495 -msgid "Preferred format for displaying dates" +msgid "Search Sales Orders" msgstr "" -#: common/models.py:2508 part/templates/part/detail.html:41 -msgid "Part Scheduling" +#: common/models.py:2496 +msgid "Display sales orders in search preview window" +msgstr "" + +#: common/models.py:2501 +msgid "Exclude Inactive Sales Orders" +msgstr "" + +#: common/models.py:2503 +msgid "Exclude inactive sales orders from search preview window" msgstr "" #: common/models.py:2509 -msgid "Display part scheduling information" +msgid "Search Return Orders" msgstr "" -#: common/models.py:2514 part/templates/part/detail.html:62 -msgid "Part Stocktake" +#: common/models.py:2510 +msgid "Display return orders in search preview window" msgstr "" -#: common/models.py:2516 -msgid "Display part stocktake information (if stocktake functionality is enabled)" +#: common/models.py:2515 +msgid "Exclude Inactive Return Orders" msgstr "" -#: common/models.py:2522 -msgid "Table String Length" +#: common/models.py:2517 +msgid "Exclude inactive return orders from search preview window" msgstr "" -#: common/models.py:2524 -msgid "Maximum length limit for strings displayed in table views" +#: common/models.py:2523 +msgid "Search Preview Results" msgstr "" -#: common/models.py:2530 -msgid "Receive error reports" +#: common/models.py:2525 +msgid "Number of results to show in each section of the search preview window" msgstr "" #: common/models.py:2531 -msgid "Receive notifications for system errors" +msgid "Regex Search" msgstr "" -#: common/models.py:2536 -msgid "Last used printing machines" +#: common/models.py:2532 +msgid "Enable regular expressions in search queries" msgstr "" #: common/models.py:2537 +msgid "Whole Word Search" +msgstr "" + +#: common/models.py:2538 +msgid "Search queries return results for whole word matches" +msgstr "" + +#: common/models.py:2543 +msgid "Show Quantity in Forms" +msgstr "" + +#: common/models.py:2544 +msgid "Display available part quantity in some forms" +msgstr "" + +#: common/models.py:2549 +msgid "Escape Key Closes Forms" +msgstr "" + +#: common/models.py:2550 +msgid "Use the escape key to close modal forms" +msgstr "" + +#: common/models.py:2555 +msgid "Fixed Navbar" +msgstr "" + +#: common/models.py:2556 +msgid "The navbar position is fixed to the top of the screen" +msgstr "" + +#: common/models.py:2561 +msgid "Date Format" +msgstr "" + +#: common/models.py:2562 +msgid "Preferred format for displaying dates" +msgstr "" + +#: common/models.py:2575 part/templates/part/detail.html:41 +msgid "Part Scheduling" +msgstr "" + +#: common/models.py:2576 +msgid "Display part scheduling information" +msgstr "" + +#: common/models.py:2581 part/templates/part/detail.html:62 +msgid "Part Stocktake" +msgstr "" + +#: common/models.py:2583 +msgid "Display part stocktake information (if stocktake functionality is enabled)" +msgstr "" + +#: common/models.py:2589 +msgid "Table String Length" +msgstr "" + +#: common/models.py:2591 +msgid "Maximum length limit for strings displayed in table views" +msgstr "" + +#: common/models.py:2597 +msgid "Receive error reports" +msgstr "" + +#: common/models.py:2598 +msgid "Receive notifications for system errors" +msgstr "" + +#: common/models.py:2603 +msgid "Last used printing machines" +msgstr "" + +#: common/models.py:2604 msgid "Save the last used printing machines for a user" msgstr "" -#: common/models.py:2557 common/models.py:2558 common/models.py:2715 -#: common/models.py:2716 common/models.py:2961 common/models.py:2962 -#: common/models.py:3288 common/models.py:3289 importer/models.py:88 -#: part/models.py:3307 part/models.py:3394 part/models.py:3468 -#: part/models.py:3496 plugin/models.py:274 plugin/models.py:275 -#: report/templates/report/inventree_test_report.html:105 -#: templates/js/translated/stock.js:3120 users/models.py:111 +#: common/models.py:2621 common/models.py:2622 common/models.py:2779 +#: common/models.py:2780 common/models.py:3025 common/models.py:3026 +#: common/models.py:3349 common/models.py:3350 common/models.py:3534 +#: importer/models.py:89 part/models.py:3358 part/models.py:3445 +#: part/models.py:3519 part/models.py:3547 plugin/models.py:313 +#: plugin/models.py:314 report/templates/report/inventree_test_report.html:105 +#: templates/js/translated/stock.js:3121 users/models.py:111 msgid "User" msgstr "" -#: common/models.py:2580 +#: common/models.py:2644 msgid "Price break quantity" msgstr "" -#: common/models.py:2587 company/serializers.py:513 order/admin.py:42 -#: order/models.py:1430 order/models.py:2417 -#: templates/js/translated/company.js:1823 templates/js/translated/part.js:1892 +#: common/models.py:2651 company/serializers.py:524 order/admin.py:42 +#: order/models.py:1447 order/models.py:2456 +#: templates/js/translated/company.js:1824 templates/js/translated/part.js:1892 #: templates/js/translated/pricing.js:621 #: templates/js/translated/return_order.js:739 msgid "Price" msgstr "" -#: common/models.py:2588 +#: common/models.py:2652 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:2692 common/models.py:2877 +#: common/models.py:2756 common/models.py:2941 msgid "Endpoint" msgstr "" -#: common/models.py:2693 +#: common/models.py:2757 msgid "Endpoint at which this webhook is received" msgstr "" -#: common/models.py:2703 +#: common/models.py:2767 msgid "Name for this webhook" msgstr "" -#: common/models.py:2707 +#: common/models.py:2771 msgid "Is this webhook active" msgstr "" -#: common/models.py:2723 users/models.py:159 +#: common/models.py:2787 users/models.py:159 msgid "Token" msgstr "" -#: common/models.py:2724 +#: common/models.py:2788 msgid "Token for access" msgstr "" -#: common/models.py:2732 +#: common/models.py:2796 msgid "Secret" msgstr "" -#: common/models.py:2733 +#: common/models.py:2797 msgid "Shared secret for HMAC" msgstr "" -#: common/models.py:2841 +#: common/models.py:2905 msgid "Message ID" msgstr "" -#: common/models.py:2842 +#: common/models.py:2906 msgid "Unique identifier for this message" msgstr "" -#: common/models.py:2850 +#: common/models.py:2914 msgid "Host" msgstr "" -#: common/models.py:2851 +#: common/models.py:2915 msgid "Host from which this message was received" msgstr "" -#: common/models.py:2859 +#: common/models.py:2923 msgid "Header" msgstr "" -#: common/models.py:2860 +#: common/models.py:2924 msgid "Header of this message" msgstr "" -#: common/models.py:2867 +#: common/models.py:2931 msgid "Body" msgstr "" -#: common/models.py:2868 +#: common/models.py:2932 msgid "Body of this message" msgstr "" -#: common/models.py:2878 +#: common/models.py:2942 msgid "Endpoint on which this message was received" msgstr "" -#: common/models.py:2883 +#: common/models.py:2947 msgid "Worked on" msgstr "" -#: common/models.py:2884 +#: common/models.py:2948 msgid "Was the work on this message finished?" msgstr "" -#: common/models.py:3010 +#: common/models.py:3074 msgid "Id" msgstr "" -#: common/models.py:3012 templates/js/translated/company.js:965 -#: templates/js/translated/news.js:44 +#: common/models.py:3076 part/serializers.py:271 +#: templates/js/translated/company.js:966 templates/js/translated/news.js:44 msgid "Title" msgstr "" -#: common/models.py:3014 common/models.py:3272 company/models.py:149 -#: company/models.py:446 company/models.py:512 company/models.py:818 -#: order/models.py:302 order/models.py:1385 order/models.py:1817 -#: part/admin.py:55 part/models.py:1057 +#: common/models.py:3078 common/models.py:3333 company/models.py:146 +#: company/models.py:443 company/models.py:509 company/models.py:815 +#: order/models.py:309 order/models.py:1402 order/models.py:1846 +#: part/admin.py:55 part/models.py:1118 #: part/templates/part/part_scheduling.html:11 #: report/templates/report/inventree_build_order_report.html:164 -#: stock/admin.py:229 templates/js/translated/company.js:1319 -#: templates/js/translated/company.js:1673 templates/js/translated/order.js:376 +#: stock/admin.py:230 templates/js/translated/company.js:1320 +#: templates/js/translated/company.js:1674 templates/js/translated/order.js:376 #: templates/js/translated/part.js:2475 -#: templates/js/translated/purchase_order.js:2110 -#: templates/js/translated/purchase_order.js:2274 +#: templates/js/translated/purchase_order.js:2094 +#: templates/js/translated/purchase_order.js:2258 #: templates/js/translated/return_order.js:778 -#: templates/js/translated/sales_order.js:1092 -#: templates/js/translated/sales_order.js:2023 +#: templates/js/translated/sales_order.js:1058 +#: templates/js/translated/sales_order.js:2004 msgid "Link" msgstr "" -#: common/models.py:3016 templates/js/translated/news.js:60 +#: common/models.py:3080 templates/js/translated/news.js:60 msgid "Published" msgstr "" -#: common/models.py:3018 templates/InvenTree/settings/plugin_settings.html:32 +#: common/models.py:3082 templates/InvenTree/settings/plugin_settings.html:32 #: templates/js/translated/news.js:56 templates/js/translated/plugin.js:103 msgid "Author" msgstr "" -#: common/models.py:3020 templates/js/translated/news.js:52 +#: common/models.py:3084 templates/js/translated/news.js:52 msgid "Summary" msgstr "" -#: common/models.py:3023 +#: common/models.py:3087 msgid "Read" msgstr "" -#: common/models.py:3023 +#: common/models.py:3087 msgid "Was this news item read?" msgstr "" -#: common/models.py:3040 company/models.py:159 part/models.py:1067 +#: common/models.py:3104 company/models.py:156 part/models.py:1128 #: report/templates/report/inventree_bill_of_materials_report.html:126 #: report/templates/report/inventree_bill_of_materials_report.html:148 #: report/templates/report/inventree_return_order_report.html:35 -#: stock/templates/stock/item_base.html:133 templates/503.html:31 +#: stock/templates/stock/item_base.html:130 templates/503.html:31 #: templates/hover_image.html:7 templates/hover_image.html:9 #: templates/modals.html:6 msgid "Image" msgstr "" -#: common/models.py:3040 +#: common/models.py:3104 msgid "Image file" msgstr "" -#: common/models.py:3052 common/models.py:3256 +#: common/models.py:3116 common/models.py:3317 msgid "Target model type for this image" msgstr "" -#: common/models.py:3056 +#: common/models.py:3120 msgid "Target model ID for this image" msgstr "" -#: common/models.py:3078 +#: common/models.py:3142 msgid "Custom Unit" msgstr "" -#: common/models.py:3099 +#: common/models.py:3160 msgid "Unit symbol must be unique" msgstr "" -#: common/models.py:3114 +#: common/models.py:3175 msgid "Unit name must be a valid identifier" msgstr "" -#: common/models.py:3133 +#: common/models.py:3194 msgid "Unit name" msgstr "" -#: common/models.py:3140 templates/InvenTree/settings/settings_staff_js.html:75 +#: common/models.py:3201 templates/InvenTree/settings/settings_staff_js.html:75 msgid "Symbol" msgstr "" -#: common/models.py:3141 +#: common/models.py:3202 msgid "Optional unit symbol" msgstr "" -#: common/models.py:3147 templates/InvenTree/settings/settings_staff_js.html:71 +#: common/models.py:3208 templates/InvenTree/settings/settings_staff_js.html:71 msgid "Definition" msgstr "" -#: common/models.py:3148 +#: common/models.py:3209 msgid "Unit definition" msgstr "" -#: common/models.py:3206 common/models.py:3263 stock/models.py:2558 -#: templates/js/translated/attachment.js:119 +#: common/models.py:3267 common/models.py:3324 stock/models.py:2674 +#: stock/serializers.py:244 templates/js/translated/attachment.js:119 #: templates/js/translated/attachment.js:345 msgid "Attachment" msgstr "" -#: common/models.py:3218 +#: common/models.py:3279 msgid "Missing file" msgstr "" -#: common/models.py:3219 +#: common/models.py:3280 msgid "Missing external link" msgstr "" -#: common/models.py:3264 +#: common/models.py:3325 msgid "Select file to attach" msgstr "" -#: common/models.py:3279 templates/js/translated/attachment.js:120 +#: common/models.py:3340 templates/js/translated/attachment.js:120 #: templates/js/translated/attachment.js:360 msgid "Comment" msgstr "" -#: common/models.py:3280 +#: common/models.py:3341 msgid "Attachment comment" msgstr "" -#: common/models.py:3296 +#: common/models.py:3357 msgid "Upload date" msgstr "" -#: common/models.py:3297 +#: common/models.py:3358 msgid "Date the file was uploaded" msgstr "" -#: common/models.py:3301 +#: common/models.py:3362 msgid "File size" msgstr "" -#: common/models.py:3301 +#: common/models.py:3362 msgid "File size in bytes" msgstr "" -#: common/models.py:3339 common/serializers.py:562 +#: common/models.py:3400 common/serializers.py:609 msgid "Invalid model type specified for attachment" msgstr "" -#: common/notifications.py:314 +#: common/models.py:3409 plugin/models.py:43 users/models.py:100 +msgid "Key" +msgstr "" + +#: common/models.py:3410 +msgid "Value that will be saved in the models database" +msgstr "" + +#: common/models.py:3413 +msgid "Name of the state" +msgstr "" + +#: common/models.py:3417 part/serializers.py:273 +msgid "Label" +msgstr "" + +#: common/models.py:3418 +msgid "Label that will be displayed in the frontend" +msgstr "" + +#: common/models.py:3424 +msgid "Color" +msgstr "" + +#: common/models.py:3425 +msgid "Color that will be displayed in the frontend" +msgstr "" + +#: common/models.py:3428 +msgid "Logical Key" +msgstr "" + +#: common/models.py:3430 +msgid "State logical key that is equal to this custom state in business logic" +msgstr "" + +#: common/models.py:3438 part/serializers.py:275 +msgid "Model" +msgstr "" + +#: common/models.py:3439 +msgid "Model this state is associated with" +msgstr "" + +#: common/models.py:3443 +msgid "Reference Status Set" +msgstr "" + +#: common/models.py:3444 +msgid "Status set that is extended with this custom state" +msgstr "" + +#: common/models.py:3450 +msgid "Custom State" +msgstr "" + +#: common/models.py:3451 +msgid "Custom States" +msgstr "" + +#: common/models.py:3466 +msgid "Model must be selected" +msgstr "" + +#: common/models.py:3469 +msgid "Key must be selected" +msgstr "" + +#: common/models.py:3472 +msgid "Logical key must be selected" +msgstr "" + +#: common/models.py:3476 +msgid "Key must be different from logical key" +msgstr "" + +#: common/models.py:3480 +msgid "Reference status must be selected" +msgstr "" + +#: common/models.py:3492 +msgid "Reference status set not found" +msgstr "" + +#: common/models.py:3498 +msgid "Key must be different from the logical keys of the reference status" +msgstr "" + +#: common/models.py:3504 +msgid "Logical key must be in the logical keys of the reference status" +msgstr "" + +#: common/models.py:3519 +msgid "Barcode Scan" +msgstr "" + +#: common/models.py:3523 importer/models.py:512 part/models.py:4009 +msgid "Data" +msgstr "" + +#: common/models.py:3524 +msgid "Barcode data" +msgstr "" + +#: common/models.py:3535 +msgid "User who scanned the barcode" +msgstr "" + +#: common/models.py:3540 importer/models.py:60 +msgid "Timestamp" +msgstr "" + +#: common/models.py:3541 +msgid "Date and time of the barcode scan" +msgstr "" + +#: common/models.py:3547 +msgid "URL endpoint which processed the barcode" +msgstr "" + +#: common/models.py:3554 order/models.py:1437 plugin/serializers.py:89 +msgid "Context" +msgstr "" + +#: common/models.py:3555 +msgid "Context data for the barcode scan" +msgstr "" + +#: common/models.py:3562 +msgid "Response" +msgstr "" + +#: common/models.py:3563 +msgid "Response data from the barcode scan" +msgstr "" + +#: common/models.py:3569 report/templates/report/inventree_test_report.html:103 +#: stock/models.py:2660 +msgid "Result" +msgstr "" + +#: common/models.py:3570 +msgid "Was the barcode scan successful?" +msgstr "" + +#: common/notifications.py:328 #, python-brace-format msgid "New {verbose_name}" msgstr "" -#: common/notifications.py:316 +#: common/notifications.py:330 msgid "A new order has been created and assigned to you" msgstr "" -#: common/notifications.py:322 +#: common/notifications.py:336 #, python-brace-format msgid "{verbose_name} canceled" msgstr "" -#: common/notifications.py:324 +#: common/notifications.py:338 msgid "A order that is assigned to you was canceled" msgstr "" -#: common/notifications.py:330 common/notifications.py:337 order/api.py:462 +#: common/notifications.py:344 common/notifications.py:351 order/api.py:440 msgid "Items Received" msgstr "" -#: common/notifications.py:332 +#: common/notifications.py:346 msgid "Items have been received against a purchase order" msgstr "" -#: common/notifications.py:339 +#: common/notifications.py:353 msgid "Items have been received against a return order" msgstr "" -#: common/notifications.py:457 +#: common/notifications.py:475 msgid "Error raised by plugin" msgstr "" -#: common/serializers.py:375 +#: common/serializers.py:423 msgid "Is Running" msgstr "" -#: common/serializers.py:381 +#: common/serializers.py:429 msgid "Pending Tasks" msgstr "" -#: common/serializers.py:387 +#: common/serializers.py:435 msgid "Scheduled Tasks" msgstr "" -#: common/serializers.py:393 +#: common/serializers.py:441 msgid "Failed Tasks" msgstr "" -#: common/serializers.py:408 +#: common/serializers.py:456 msgid "Task ID" msgstr "" -#: common/serializers.py:408 +#: common/serializers.py:456 msgid "Unique task ID" msgstr "" -#: common/serializers.py:410 +#: common/serializers.py:458 msgid "Lock" msgstr "" -#: common/serializers.py:410 +#: common/serializers.py:458 msgid "Lock time" msgstr "" -#: common/serializers.py:412 +#: common/serializers.py:460 msgid "Task name" msgstr "" -#: common/serializers.py:414 +#: common/serializers.py:462 msgid "Function" msgstr "" -#: common/serializers.py:414 +#: common/serializers.py:462 msgid "Function name" msgstr "" -#: common/serializers.py:416 +#: common/serializers.py:464 msgid "Arguments" msgstr "" -#: common/serializers.py:416 +#: common/serializers.py:464 msgid "Task arguments" msgstr "" -#: common/serializers.py:419 +#: common/serializers.py:467 msgid "Keyword Arguments" msgstr "" -#: common/serializers.py:419 +#: common/serializers.py:467 msgid "Task keyword arguments" msgstr "" -#: common/serializers.py:529 +#: common/serializers.py:577 msgid "Filename" msgstr "" -#: common/serializers.py:536 report/api.py:100 report/serializers.py:53 +#: common/serializers.py:584 report/api.py:100 report/serializers.py:54 msgid "Model Type" msgstr "" -#: common/serializers.py:565 +#: common/serializers.py:612 msgid "User does not have permission to create or edit attachments for this model" msgstr "" @@ -4116,15 +4295,15 @@ msgstr "" msgid "Match Items" msgstr "" -#: common/views.py:401 +#: common/views.py:397 msgid "Fields matching failed" msgstr "" -#: common/views.py:464 +#: common/views.py:460 msgid "Parts imported" msgstr "" -#: common/views.py:494 order/templates/order/order_wizard/match_fields.html:27 +#: common/views.py:490 order/templates/order/order_wizard/match_fields.html:27 #: order/templates/order/order_wizard/match_parts.html:19 #: order/templates/order/order_wizard/po_upload.html:49 #: part/templates/part/import_wizard/match_fields.html:27 @@ -4155,429 +4334,429 @@ msgstr "" msgid "Supplier is Active" msgstr "" -#: company/models.py:100 company/models.py:371 +#: company/models.py:97 company/models.py:368 #: company/templates/company/company_base.html:8 #: company/templates/company/company_base.html:12 stock/api.py:812 -#: templates/InvenTree/search.html:178 templates/js/translated/company.js:496 +#: templates/InvenTree/search.html:178 templates/js/translated/company.js:497 msgid "Company" msgstr "" -#: company/models.py:101 company/views.py:51 +#: company/models.py:98 company/views.py:51 #: templates/js/translated/search.js:192 msgid "Companies" msgstr "" -#: company/models.py:117 +#: company/models.py:114 msgid "Company description" msgstr "" -#: company/models.py:118 +#: company/models.py:115 msgid "Description of the company" msgstr "" -#: company/models.py:123 company/templates/company/company_base.html:106 +#: company/models.py:120 company/templates/company/company_base.html:106 #: templates/InvenTree/settings/plugin_settings.html:54 -#: templates/js/translated/company.js:532 +#: templates/js/translated/company.js:533 msgid "Website" msgstr "" -#: company/models.py:123 +#: company/models.py:120 msgid "Company website URL" msgstr "" -#: company/models.py:128 +#: company/models.py:125 msgid "Phone number" msgstr "" -#: company/models.py:130 +#: company/models.py:127 msgid "Contact phone number" msgstr "" -#: company/models.py:137 +#: company/models.py:134 msgid "Contact email address" msgstr "" -#: company/models.py:142 company/models.py:275 -#: company/templates/company/company_base.html:145 order/models.py:342 -#: order/templates/order/order_base.html:208 -#: order/templates/order/return_order_base.html:177 -#: order/templates/order/sales_order_base.html:221 +#: company/models.py:139 company/models.py:272 +#: company/templates/company/company_base.html:145 order/models.py:349 +#: order/templates/order/order_base.html:217 +#: order/templates/order/return_order_base.html:178 +#: order/templates/order/sales_order_base.html:222 msgid "Contact" msgstr "" -#: company/models.py:144 +#: company/models.py:141 msgid "Point of contact" msgstr "" -#: company/models.py:150 +#: company/models.py:147 msgid "Link to external company information" msgstr "" -#: company/models.py:163 +#: company/models.py:160 msgid "Is this company active?" msgstr "" -#: company/models.py:168 +#: company/models.py:165 msgid "Is customer" msgstr "" -#: company/models.py:169 +#: company/models.py:166 msgid "Do you sell items to this company?" msgstr "" -#: company/models.py:174 +#: company/models.py:171 msgid "Is supplier" msgstr "" -#: company/models.py:175 +#: company/models.py:172 msgid "Do you purchase items from this company?" msgstr "" -#: company/models.py:180 +#: company/models.py:177 msgid "Is manufacturer" msgstr "" -#: company/models.py:181 +#: company/models.py:178 msgid "Does this company manufacture parts?" msgstr "" -#: company/models.py:189 +#: company/models.py:186 msgid "Default currency used for this company" msgstr "" -#: company/models.py:314 company/templates/company/company_base.html:124 -#: order/models.py:352 order/templates/order/order_base.html:215 -#: order/templates/order/return_order_base.html:184 -#: order/templates/order/sales_order_base.html:228 +#: company/models.py:311 company/templates/company/company_base.html:124 +#: order/models.py:359 order/templates/order/order_base.html:224 +#: order/templates/order/return_order_base.html:185 +#: order/templates/order/sales_order_base.html:229 msgid "Address" msgstr "" -#: company/models.py:315 company/templates/company/sidebar.html:35 +#: company/models.py:312 company/templates/company/sidebar.html:35 msgid "Addresses" msgstr "" -#: company/models.py:372 +#: company/models.py:369 msgid "Select company" msgstr "" -#: company/models.py:377 +#: company/models.py:374 msgid "Address title" msgstr "" -#: company/models.py:378 +#: company/models.py:375 msgid "Title describing the address entry" msgstr "" -#: company/models.py:384 +#: company/models.py:381 msgid "Primary address" msgstr "" -#: company/models.py:385 +#: company/models.py:382 msgid "Set as primary address" msgstr "" -#: company/models.py:390 templates/js/translated/company.js:914 -#: templates/js/translated/company.js:971 +#: company/models.py:387 templates/js/translated/company.js:915 +#: templates/js/translated/company.js:972 msgid "Line 1" msgstr "" -#: company/models.py:391 +#: company/models.py:388 msgid "Address line 1" msgstr "" -#: company/models.py:397 templates/js/translated/company.js:915 -#: templates/js/translated/company.js:977 +#: company/models.py:394 templates/js/translated/company.js:916 +#: templates/js/translated/company.js:978 msgid "Line 2" msgstr "" -#: company/models.py:398 +#: company/models.py:395 msgid "Address line 2" msgstr "" -#: company/models.py:404 company/models.py:405 -#: templates/js/translated/company.js:983 +#: company/models.py:401 company/models.py:402 +#: templates/js/translated/company.js:984 msgid "Postal code" msgstr "" -#: company/models.py:411 +#: company/models.py:408 msgid "City/Region" msgstr "" -#: company/models.py:412 +#: company/models.py:409 msgid "Postal code city/region" msgstr "" -#: company/models.py:418 +#: company/models.py:415 msgid "State/Province" msgstr "" -#: company/models.py:419 +#: company/models.py:416 msgid "State or province" msgstr "" -#: company/models.py:425 templates/js/translated/company.js:1001 +#: company/models.py:422 templates/js/translated/company.js:1002 msgid "Country" msgstr "" -#: company/models.py:426 +#: company/models.py:423 msgid "Address country" msgstr "" -#: company/models.py:432 +#: company/models.py:429 msgid "Courier shipping notes" msgstr "" -#: company/models.py:433 +#: company/models.py:430 msgid "Notes for shipping courier" msgstr "" -#: company/models.py:439 +#: company/models.py:436 msgid "Internal shipping notes" msgstr "" -#: company/models.py:440 +#: company/models.py:437 msgid "Shipping notes for internal use" msgstr "" -#: company/models.py:447 +#: company/models.py:444 msgid "Link to address information (external)" msgstr "" -#: company/models.py:470 company/models.py:587 company/models.py:811 +#: company/models.py:467 company/models.py:584 company/models.py:808 #: company/templates/company/manufacturer_part.html:7 #: company/templates/company/manufacturer_part.html:24 -#: stock/templates/stock/item_base.html:217 +#: stock/templates/stock/item_base.html:214 msgid "Manufacturer Part" msgstr "" -#: company/models.py:487 company/models.py:779 stock/models.py:787 -#: stock/serializers.py:445 stock/templates/stock/item_base.html:142 +#: company/models.py:484 company/models.py:776 stock/models.py:864 +#: stock/serializers.py:455 stock/templates/stock/item_base.html:139 #: templates/js/translated/bom.js:622 msgid "Base Part" msgstr "" -#: company/models.py:489 company/models.py:781 +#: company/models.py:486 company/models.py:778 msgid "Select part" msgstr "" -#: company/models.py:498 company/templates/company/company_base.html:82 +#: company/models.py:495 company/templates/company/company_base.html:82 #: company/templates/company/manufacturer_part.html:90 -#: company/templates/company/supplier_part.html:145 part/serializers.py:554 -#: stock/templates/stock/item_base.html:207 -#: templates/js/translated/company.js:507 -#: templates/js/translated/company.js:1118 -#: templates/js/translated/company.js:1296 -#: templates/js/translated/company.js:1611 +#: company/templates/company/supplier_part.html:146 part/serializers.py:598 +#: stock/templates/stock/item_base.html:204 +#: templates/js/translated/company.js:508 +#: templates/js/translated/company.js:1119 +#: templates/js/translated/company.js:1297 +#: templates/js/translated/company.js:1612 #: templates/js/translated/table_filters.js:812 msgid "Manufacturer" msgstr "" -#: company/models.py:499 +#: company/models.py:496 msgid "Select manufacturer" msgstr "" -#: company/models.py:505 company/templates/company/manufacturer_part.html:101 -#: company/templates/company/supplier_part.html:153 order/serializers.py:556 -#: part/serializers.py:564 templates/js/translated/company.js:351 -#: templates/js/translated/company.js:1117 -#: templates/js/translated/company.js:1312 -#: templates/js/translated/company.js:1630 templates/js/translated/part.js:1807 -#: templates/js/translated/purchase_order.js:1921 -#: templates/js/translated/purchase_order.js:2123 +#: company/models.py:502 company/templates/company/manufacturer_part.html:101 +#: company/templates/company/supplier_part.html:154 order/serializers.py:641 +#: part/serializers.py:608 templates/js/translated/company.js:352 +#: templates/js/translated/company.js:1118 +#: templates/js/translated/company.js:1313 +#: templates/js/translated/company.js:1631 templates/js/translated/part.js:1807 +#: templates/js/translated/purchase_order.js:1905 +#: templates/js/translated/purchase_order.js:2107 msgid "MPN" msgstr "" -#: company/models.py:513 +#: company/models.py:510 msgid "URL for external manufacturer part link" msgstr "" -#: company/models.py:522 +#: company/models.py:519 msgid "Manufacturer part description" msgstr "" -#: company/models.py:575 +#: company/models.py:572 msgid "Manufacturer Part Parameter" msgstr "" -#: company/models.py:594 +#: company/models.py:591 msgid "Parameter name" msgstr "" -#: company/models.py:600 report/templates/report/inventree_test_report.html:104 -#: stock/models.py:2550 templates/js/translated/company.js:1166 -#: templates/js/translated/company.js:1419 templates/js/translated/part.js:1499 +#: company/models.py:597 report/templates/report/inventree_test_report.html:104 +#: stock/models.py:2666 templates/js/translated/company.js:1167 +#: templates/js/translated/company.js:1420 templates/js/translated/part.js:1499 #: templates/js/translated/stock.js:1607 msgid "Value" msgstr "" -#: company/models.py:601 +#: company/models.py:598 msgid "Parameter value" msgstr "" -#: company/models.py:608 company/templates/company/supplier_part.html:168 -#: part/admin.py:57 part/models.py:1147 part/models.py:3771 -#: part/templates/part/part_base.html:293 -#: templates/js/translated/company.js:1425 templates/js/translated/part.js:1518 +#: company/models.py:605 company/templates/company/supplier_part.html:169 +#: part/admin.py:57 part/models.py:1208 part/models.py:3822 +#: part/templates/part/part_base.html:301 +#: templates/js/translated/company.js:1426 templates/js/translated/part.js:1518 #: templates/js/translated/part.js:1622 templates/js/translated/part.js:2376 msgid "Units" msgstr "" -#: company/models.py:609 +#: company/models.py:606 msgid "Parameter units" msgstr "" -#: company/models.py:662 company/templates/company/supplier_part.html:7 -#: company/templates/company/supplier_part.html:24 order/api.py:442 -#: order/serializers.py:491 stock/models.py:798 -#: stock/templates/stock/item_base.html:233 -#: templates/js/translated/build.js:1052 -#: templates/js/translated/company.js:1600 -#: templates/js/translated/purchase_order.js:752 -#: templates/js/translated/stock.js:2365 +#: company/models.py:659 company/templates/company/supplier_part.html:8 +#: company/templates/company/supplier_part.html:25 order/api.py:392 +#: order/serializers.py:576 stock/models.py:875 +#: stock/templates/stock/item_base.html:230 +#: templates/js/translated/build.js:1055 +#: templates/js/translated/company.js:1601 +#: templates/js/translated/purchase_order.js:735 +#: templates/js/translated/stock.js:2366 msgid "Supplier Part" msgstr "" -#: company/models.py:719 +#: company/models.py:716 msgid "Pack units must be compatible with the base part units" msgstr "" -#: company/models.py:726 +#: company/models.py:723 msgid "Pack units must be greater than zero" msgstr "" -#: company/models.py:740 +#: company/models.py:737 msgid "Linked manufacturer part must reference the same base part" msgstr "" -#: company/models.py:789 company/templates/company/company_base.html:87 -#: company/templates/company/supplier_part.html:129 order/models.py:491 -#: order/templates/order/order_base.html:141 part/bom.py:280 part/bom.py:318 -#: part/serializers.py:538 plugin/builtin/suppliers/digikey.py:25 +#: company/models.py:786 company/templates/company/company_base.html:87 +#: company/templates/company/supplier_part.html:130 order/models.py:503 +#: order/templates/order/order_base.html:150 part/bom.py:279 part/bom.py:314 +#: part/serializers.py:582 plugin/builtin/suppliers/digikey.py:25 #: plugin/builtin/suppliers/lcsc.py:26 plugin/builtin/suppliers/mouser.py:24 -#: plugin/builtin/suppliers/tme.py:26 stock/templates/stock/item_base.html:224 +#: plugin/builtin/suppliers/tme.py:26 stock/templates/stock/item_base.html:221 #: templates/email/overdue_purchase_order.html:16 -#: templates/js/translated/company.js:350 -#: templates/js/translated/company.js:511 -#: templates/js/translated/company.js:1584 templates/js/translated/part.js:1775 +#: templates/js/translated/company.js:351 +#: templates/js/translated/company.js:512 +#: templates/js/translated/company.js:1585 templates/js/translated/part.js:1775 #: templates/js/translated/pricing.js:498 -#: templates/js/translated/purchase_order.js:1759 +#: templates/js/translated/purchase_order.js:1743 #: templates/js/translated/table_filters.js:816 msgid "Supplier" msgstr "" -#: company/models.py:790 +#: company/models.py:787 msgid "Select supplier" msgstr "" -#: company/models.py:796 part/serializers.py:549 +#: company/models.py:793 part/serializers.py:593 msgid "Supplier stock keeping unit" msgstr "" -#: company/models.py:802 +#: company/models.py:799 msgid "Is this supplier part active?" msgstr "" -#: company/models.py:812 +#: company/models.py:809 msgid "Select manufacturer part" msgstr "" -#: company/models.py:819 +#: company/models.py:816 msgid "URL for external supplier part link" msgstr "" -#: company/models.py:828 +#: company/models.py:825 msgid "Supplier part description" msgstr "" -#: company/models.py:835 company/templates/company/supplier_part.html:187 -#: order/serializers.py:698 part/admin.py:415 part/models.py:4288 +#: company/models.py:832 company/templates/company/supplier_part.html:188 +#: order/serializers.py:783 part/admin.py:415 part/models.py:4345 #: part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_bill_of_materials_report.html:140 #: report/templates/report/inventree_purchase_order_report.html:32 #: report/templates/report/inventree_return_order_report.html:27 #: report/templates/report/inventree_sales_order_report.html:32 #: report/templates/report/inventree_stock_location_report.html:105 -#: stock/serializers.py:776 templates/js/translated/purchase_order.js:1185 -#: templates/js/translated/purchase_order.js:1344 +#: stock/serializers.py:807 templates/js/translated/purchase_order.js:1168 +#: templates/js/translated/purchase_order.js:1327 msgid "Note" msgstr "" -#: company/models.py:844 part/models.py:2117 +#: company/models.py:841 part/models.py:2177 msgid "base cost" msgstr "" -#: company/models.py:845 part/models.py:2118 +#: company/models.py:842 part/models.py:2178 msgid "Minimum charge (e.g. stocking fee)" msgstr "" -#: company/models.py:853 +#: company/models.py:850 msgid "Part packaging" msgstr "" -#: company/models.py:858 templates/js/translated/company.js:1651 +#: company/models.py:855 templates/js/translated/company.js:1652 #: templates/js/translated/part.js:1828 templates/js/translated/part.js:1884 -#: templates/js/translated/purchase_order.js:311 -#: templates/js/translated/purchase_order.js:841 -#: templates/js/translated/purchase_order.js:1103 -#: templates/js/translated/purchase_order.js:2154 -#: templates/js/translated/purchase_order.js:2171 +#: templates/js/translated/purchase_order.js:294 +#: templates/js/translated/purchase_order.js:824 +#: templates/js/translated/purchase_order.js:1086 +#: templates/js/translated/purchase_order.js:2138 +#: templates/js/translated/purchase_order.js:2155 msgid "Pack Quantity" msgstr "" -#: company/models.py:860 +#: company/models.py:857 msgid "Total quantity supplied in a single pack. Leave empty for single items." msgstr "" -#: company/models.py:879 part/models.py:2124 +#: company/models.py:876 part/models.py:2184 msgid "multiple" msgstr "" -#: company/models.py:880 +#: company/models.py:877 msgid "Order multiple" msgstr "" -#: company/models.py:892 +#: company/models.py:889 msgid "Quantity available from supplier" msgstr "" -#: company/models.py:898 +#: company/models.py:895 msgid "Availability Updated" msgstr "" -#: company/models.py:899 +#: company/models.py:896 msgid "Date of last update of availability data" msgstr "" -#: company/models.py:1027 +#: company/models.py:1024 msgid "Supplier Price Break" msgstr "" -#: company/serializers.py:174 +#: company/serializers.py:178 msgid "Default currency used for this supplier" msgstr "" -#: company/serializers.py:210 +#: company/serializers.py:214 msgid "Company Name" msgstr "" -#: company/serializers.py:393 part/admin.py:126 part/serializers.py:898 -#: part/templates/part/part_base.html:197 -#: templates/js/translated/company.js:1689 +#: company/serializers.py:397 part/admin.py:126 part/serializers.py:950 +#: part/templates/part/part_base.html:198 stock/serializers.py:474 +#: templates/js/translated/company.js:1690 #: templates/js/translated/table_filters.js:362 msgid "In Stock" msgstr "" #: company/templates/company/company_base.html:16 -#: part/templates/part/part_base.html:146 -#: templates/js/translated/company.js:1287 -#: templates/js/translated/company.js:1575 -#: templates/js/translated/model_renderers.js:313 +#: part/templates/part/part_base.html:147 +#: templates/js/translated/company.js:1288 +#: templates/js/translated/company.js:1576 +#: templates/js/translated/model_renderers.js:316 #: templates/js/translated/part.js:817 templates/js/translated/part.js:1225 msgid "Inactive" msgstr "" #: company/templates/company/company_base.html:27 -#: templates/js/translated/purchase_order.js:242 +#: templates/js/translated/purchase_order.js:224 msgid "Create Purchase Order" msgstr "" @@ -4590,7 +4769,7 @@ msgid "Edit company information" msgstr "" #: company/templates/company/company_base.html:39 -#: templates/js/translated/company.js:445 +#: templates/js/translated/company.js:446 msgid "Edit Company" msgstr "" @@ -4605,11 +4784,12 @@ msgstr "" #: company/templates/company/company_base.html:53 #: company/templates/company/manufacturer_part.html:51 -#: company/templates/company/supplier_part.html:83 +#: company/templates/company/supplier_part.html:84 #: part/templates/part/part_thumb.html:20 #: report/templates/report/inventree_build_order_report.html:98 #: report/templates/report/inventree_purchase_order_report.html:40 #: report/templates/report/inventree_sales_order_report.html:40 +#: report/templates/report/inventree_sales_order_shipment_report.html:37 #: report/templates/report/inventree_test_report.html:84 #: report/templates/report/inventree_test_report.html:162 msgid "Part image" @@ -4630,16 +4810,16 @@ msgstr "" msgid "Delete image" msgstr "" -#: company/templates/company/company_base.html:92 order/models.py:990 -#: order/models.py:2147 order/templates/order/return_order_base.html:134 -#: order/templates/order/sales_order_base.html:151 stock/models.py:840 -#: stock/models.py:841 stock/serializers.py:1329 -#: stock/templates/stock/item_base.html:405 +#: company/templates/company/company_base.html:92 order/models.py:1017 +#: order/models.py:2186 order/templates/order/return_order_base.html:135 +#: order/templates/order/sales_order_base.html:152 stock/models.py:917 +#: stock/models.py:918 stock/serializers.py:1360 +#: stock/templates/stock/item_base.html:402 #: templates/email/overdue_sales_order.html:16 -#: templates/js/translated/company.js:503 +#: templates/js/translated/company.js:504 #: templates/js/translated/return_order.js:295 -#: templates/js/translated/sales_order.js:820 -#: templates/js/translated/stock.js:3043 +#: templates/js/translated/sales_order.js:779 +#: templates/js/translated/stock.js:3044 #: templates/js/translated/table_filters.js:820 msgid "Customer" msgstr "" @@ -4653,7 +4833,7 @@ msgid "Phone" msgstr "" #: company/templates/company/company_base.html:211 -#: part/templates/part/part_base.html:536 +#: part/templates/part/part_base.html:544 msgid "Remove Image" msgstr "" @@ -4662,19 +4842,19 @@ msgid "Remove associated image from this company" msgstr "" #: company/templates/company/company_base.html:214 -#: part/templates/part/part_base.html:539 +#: part/templates/part/part_base.html:547 #: templates/InvenTree/settings/user.html:88 #: templates/InvenTree/settings/user_sso.html:43 msgid "Remove" msgstr "" #: company/templates/company/company_base.html:243 -#: part/templates/part/part_base.html:568 +#: part/templates/part/part_base.html:576 msgid "Upload Image" msgstr "" #: company/templates/company/company_base.html:258 -#: part/templates/part/part_base.html:622 +#: part/templates/part/part_base.html:630 msgid "Download Image" msgstr "" @@ -4714,7 +4894,7 @@ msgstr "" #: company/templates/company/detail.html:75 #: company/templates/company/sidebar.html:12 #: company/templates/company/supplier_part_sidebar.html:7 -#: order/templates/order/order_base.html:13 +#: order/templates/order/order_base.html:14 #: order/templates/order/purchase_orders.html:8 #: order/templates/order/purchase_orders.html:12 #: part/templates/part/detail.html:122 part/templates/part/part_sidebar.html:35 @@ -4737,7 +4917,7 @@ msgstr "" #: company/templates/company/detail.html:101 #: company/templates/company/sidebar.html:21 -#: order/templates/order/sales_order_base.html:13 +#: order/templates/order/sales_order_base.html:14 #: order/templates/order/sales_orders.html:8 #: order/templates/order/sales_orders.html:15 #: part/templates/part/detail.html:143 part/templates/part/part_sidebar.html:39 @@ -4764,7 +4944,7 @@ msgstr "" #: company/templates/company/detail.html:142 #: company/templates/company/sidebar.html:29 -#: order/templates/order/return_order_base.html:13 +#: order/templates/order/return_order_base.html:14 #: order/templates/order/return_orders.html:8 #: order/templates/order/return_orders.html:15 #: templates/InvenTree/settings/sidebar.html:61 @@ -4811,24 +4991,24 @@ msgid "Manufacturers" msgstr "" #: company/templates/company/manufacturer_part.html:35 -#: company/templates/company/supplier_part.html:227 -#: part/templates/part/detail.html:125 part/templates/part/part_base.html:83 +#: company/templates/company/supplier_part.html:228 +#: part/templates/part/detail.html:125 part/templates/part/part_base.html:84 msgid "Order part" msgstr "" #: company/templates/company/manufacturer_part.html:39 -#: templates/js/translated/company.js:1343 +#: templates/js/translated/company.js:1344 msgid "Edit manufacturer part" msgstr "" #: company/templates/company/manufacturer_part.html:43 -#: templates/js/translated/company.js:1344 +#: templates/js/translated/company.js:1345 msgid "Delete manufacturer part" msgstr "" #: company/templates/company/manufacturer_part.html:65 -#: company/templates/company/supplier_part.html:97 order/api.py:448 -#: order/serializers.py:564 +#: company/templates/company/supplier_part.html:98 order/api.py:411 +#: order/serializers.py:649 msgid "Internal Part" msgstr "" @@ -4837,8 +5017,8 @@ msgid "No manufacturer information available" msgstr "" #: company/templates/company/manufacturer_part.html:119 -#: company/templates/company/supplier_part.html:15 company/views.py:31 -#: part/admin.py:122 part/serializers.py:904 +#: company/templates/company/supplier_part.html:16 company/views.py:31 +#: part/admin.py:122 part/serializers.py:956 #: part/templates/part/part_sidebar.html:33 templates/InvenTree/search.html:190 #: templates/navbar.html:48 msgid "Suppliers" @@ -4887,112 +5067,113 @@ msgstr "" msgid "Contacts" msgstr "" -#: company/templates/company/supplier_part.html:50 -#: templates/js/translated/company.js:1526 +#: company/templates/company/supplier_part.html:51 +#: templates/js/translated/company.js:1527 msgid "Supplier part actions" msgstr "" -#: company/templates/company/supplier_part.html:55 #: company/templates/company/supplier_part.html:56 -#: company/templates/company/supplier_part.html:228 +#: company/templates/company/supplier_part.html:57 +#: company/templates/company/supplier_part.html:229 #: part/templates/part/detail.html:126 msgid "Order Part" msgstr "" -#: company/templates/company/supplier_part.html:60 #: company/templates/company/supplier_part.html:61 +#: company/templates/company/supplier_part.html:62 msgid "Update Availability" msgstr "" -#: company/templates/company/supplier_part.html:63 #: company/templates/company/supplier_part.html:64 -#: templates/js/translated/company.js:294 +#: company/templates/company/supplier_part.html:65 +#: templates/js/translated/company.js:295 msgid "Edit Supplier Part" msgstr "" -#: company/templates/company/supplier_part.html:68 #: company/templates/company/supplier_part.html:69 -#: templates/js/translated/company.js:269 +#: company/templates/company/supplier_part.html:70 +#: templates/js/translated/company.js:270 msgid "Duplicate Supplier Part" msgstr "" -#: company/templates/company/supplier_part.html:73 +#: company/templates/company/supplier_part.html:74 msgid "Delete Supplier Part" msgstr "" -#: company/templates/company/supplier_part.html:74 +#: company/templates/company/supplier_part.html:75 msgid "Delete Supplier Part" msgstr "" -#: company/templates/company/supplier_part.html:133 +#: company/templates/company/supplier_part.html:134 +#: order/templates/order/order_base.html:155 msgid "No supplier information available" msgstr "" -#: company/templates/company/supplier_part.html:139 order/serializers.py:553 -#: part/bom.py:287 part/bom.py:319 part/serializers.py:548 -#: templates/js/translated/company.js:349 templates/js/translated/part.js:1793 +#: company/templates/company/supplier_part.html:140 order/serializers.py:638 +#: part/bom.py:286 part/bom.py:315 part/serializers.py:592 +#: templates/js/translated/company.js:350 templates/js/translated/part.js:1793 #: templates/js/translated/pricing.js:510 -#: templates/js/translated/purchase_order.js:1920 -#: templates/js/translated/purchase_order.js:2098 +#: templates/js/translated/purchase_order.js:1904 +#: templates/js/translated/purchase_order.js:2082 msgid "SKU" msgstr "" -#: company/templates/company/supplier_part.html:206 +#: company/templates/company/supplier_part.html:207 msgid "Supplier Part Stock" msgstr "" -#: company/templates/company/supplier_part.html:209 -#: part/templates/part/detail.html:24 stock/templates/stock/location.html:204 +#: company/templates/company/supplier_part.html:210 +#: part/templates/part/detail.html:24 stock/templates/stock/location.html:205 msgid "Create new stock item" msgstr "" -#: company/templates/company/supplier_part.html:210 -#: part/templates/part/detail.html:25 stock/templates/stock/location.html:205 +#: company/templates/company/supplier_part.html:211 +#: part/templates/part/detail.html:25 stock/templates/stock/location.html:206 #: templates/js/translated/stock.js:543 msgid "New Stock Item" msgstr "" -#: company/templates/company/supplier_part.html:223 +#: company/templates/company/supplier_part.html:224 msgid "Supplier Part Orders" msgstr "" -#: company/templates/company/supplier_part.html:246 +#: company/templates/company/supplier_part.html:247 msgid "Pricing Information" msgstr "" -#: company/templates/company/supplier_part.html:251 -#: templates/js/translated/company.js:398 +#: company/templates/company/supplier_part.html:252 +#: templates/js/translated/company.js:399 #: templates/js/translated/pricing.js:684 msgid "Add Price Break" msgstr "" -#: company/templates/company/supplier_part.html:270 +#: company/templates/company/supplier_part.html:271 msgid "Supplier Part Notes" msgstr "" -#: company/templates/company/supplier_part.html:305 +#: company/templates/company/supplier_part.html:306 msgid "Supplier Part QR Code" msgstr "" -#: company/templates/company/supplier_part.html:316 +#: company/templates/company/supplier_part.html:317 msgid "Link Barcode to Supplier Part" msgstr "" -#: company/templates/company/supplier_part.html:388 +#: company/templates/company/supplier_part.html:389 msgid "Update Part Availability" msgstr "" #: company/templates/company/supplier_part_sidebar.html:5 -#: part/serializers.py:902 part/stocktake.py:223 +#: part/serializers.py:954 part/stocktake.py:223 #: part/templates/part/category.html:180 #: part/templates/part/category_sidebar.html:17 stock/admin.py:68 -#: stock/serializers.py:1014 stock/serializers.py:1192 -#: stock/templates/stock/location.html:167 -#: stock/templates/stock/location.html:188 -#: stock/templates/stock/location.html:200 +#: stock/serializers.py:1045 stock/serializers.py:1223 +#: stock/templates/stock/location.html:168 +#: stock/templates/stock/location.html:189 +#: stock/templates/stock/location.html:201 #: stock/templates/stock/location_sidebar.html:7 #: templates/InvenTree/search.html:155 templates/js/translated/part.js:1067 -#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2850 +#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2851 #: users/models.py:206 msgid "Stock Items" msgstr "" @@ -5022,99 +5203,99 @@ msgstr "" msgid "New Company" msgstr "" -#: generic/states/tests.py:18 order/status_codes.py:13 +#: generic/states/fields.py:118 +msgid "Custom status key" +msgstr "" + +#: generic/states/fields.py:119 +msgid "Additional status information for this item" +msgstr "" + +#: generic/states/tests.py:22 order/status_codes.py:13 msgid "Placed" msgstr "" -#: importer/mixins.py:263 +#: importer/mixins.py:261 msgid "Invalid export format" msgstr "" -#: importer/models.py:59 -msgid "Timestamp" -msgstr "" - -#: importer/models.py:64 +#: importer/models.py:65 msgid "Data file to import" msgstr "" -#: importer/models.py:73 templates/js/translated/tables.js:558 +#: importer/models.py:74 templates/js/translated/tables.js:558 msgid "Columns" msgstr "" -#: importer/models.py:84 +#: importer/models.py:85 msgid "Import status" msgstr "" -#: importer/models.py:94 +#: importer/models.py:95 msgid "Field Defaults" msgstr "" -#: importer/models.py:101 +#: importer/models.py:102 msgid "Field Overrides" msgstr "" -#: importer/models.py:108 +#: importer/models.py:109 msgid "Field Filters" msgstr "" -#: importer/models.py:230 +#: importer/models.py:239 msgid "Some required fields have not been mapped" msgstr "" -#: importer/models.py:387 +#: importer/models.py:396 msgid "Column is already mapped to a database field" msgstr "" -#: importer/models.py:392 +#: importer/models.py:401 msgid "Field is already mapped to a data column" msgstr "" -#: importer/models.py:401 +#: importer/models.py:410 msgid "Column mapping must be linked to a valid import session" msgstr "" -#: importer/models.py:406 +#: importer/models.py:415 msgid "Column does not exist in the data file" msgstr "" -#: importer/models.py:413 +#: importer/models.py:422 msgid "Field does not exist in the target model" msgstr "" -#: importer/models.py:417 +#: importer/models.py:426 msgid "Selected field is read-only" msgstr "" -#: importer/models.py:422 importer/models.py:493 +#: importer/models.py:431 importer/models.py:502 msgid "Import Session" msgstr "" -#: importer/models.py:426 +#: importer/models.py:435 msgid "Field" msgstr "" -#: importer/models.py:428 +#: importer/models.py:437 msgid "Column" msgstr "" -#: importer/models.py:497 +#: importer/models.py:506 msgid "Row Index" msgstr "" -#: importer/models.py:500 +#: importer/models.py:509 msgid "Original row data" msgstr "" -#: importer/models.py:503 part/models.py:3951 -msgid "Data" -msgstr "" - -#: importer/models.py:505 machine/models.py:110 +#: importer/models.py:514 machine/models.py:110 msgid "Errors" msgstr "" -#: importer/models.py:507 part/api.py:873 +#: importer/models.py:516 part/api.py:857 msgid "Valid" msgstr "" @@ -5166,19 +5347,19 @@ msgstr "" msgid "Row has already been completed" msgstr "" -#: importer/status_codes.py:11 +#: importer/status_codes.py:13 msgid "Initializing" msgstr "" -#: importer/status_codes.py:12 +#: importer/status_codes.py:18 msgid "Mapping Columns" msgstr "" -#: importer/status_codes.py:13 +#: importer/status_codes.py:21 msgid "Importing Data" msgstr "" -#: importer/status_codes.py:16 +#: importer/status_codes.py:24 msgid "Processing Data" msgstr "" @@ -5202,52 +5383,52 @@ msgstr "" msgid "Value must be a valid dictionary object" msgstr "" -#: machine/machine_types/label_printer.py:215 +#: machine/machine_types/label_printer.py:216 msgid "Copies" msgstr "" -#: machine/machine_types/label_printer.py:216 +#: machine/machine_types/label_printer.py:217 msgid "Number of copies to print for each label" msgstr "" -#: machine/machine_types/label_printer.py:231 +#: machine/machine_types/label_printer.py:232 msgid "Connected" msgstr "" -#: machine/machine_types/label_printer.py:232 order/api.py:1410 -#: templates/js/translated/sales_order.js:1078 +#: machine/machine_types/label_printer.py:233 order/api.py:1532 +#: templates/js/translated/sales_order.js:1044 msgid "Unknown" msgstr "" -#: machine/machine_types/label_printer.py:233 +#: machine/machine_types/label_printer.py:234 msgid "Printing" msgstr "" -#: machine/machine_types/label_printer.py:234 +#: machine/machine_types/label_printer.py:235 msgid "No media" msgstr "" -#: machine/machine_types/label_printer.py:235 +#: machine/machine_types/label_printer.py:236 msgid "Paper jam" msgstr "" -#: machine/machine_types/label_printer.py:236 +#: machine/machine_types/label_printer.py:237 msgid "Disconnected" msgstr "" -#: machine/machine_types/label_printer.py:243 +#: machine/machine_types/label_printer.py:244 msgid "Label Printer" msgstr "" -#: machine/machine_types/label_printer.py:244 +#: machine/machine_types/label_printer.py:245 msgid "Directly print labels for various items." msgstr "" -#: machine/machine_types/label_printer.py:250 +#: machine/machine_types/label_printer.py:251 msgid "Printer Location" msgstr "" -#: machine/machine_types/label_printer.py:251 +#: machine/machine_types/label_printer.py:252 msgid "Scope the printer to a specific location" msgstr "" @@ -5307,79 +5488,75 @@ msgstr "" #: report/templates/report/inventree_purchase_order_report.html:31 #: report/templates/report/inventree_sales_order_report.html:31 #: templates/js/translated/order.js:352 -#: templates/js/translated/purchase_order.js:2195 -#: templates/js/translated/sales_order.js:1883 +#: templates/js/translated/purchase_order.js:2179 +#: templates/js/translated/sales_order.js:1864 msgid "Total Price" msgstr "" -#: order/api.py:80 order/api.py:151 order/serializers.py:93 -#: order/templates/order/order_base.html:123 -#: order/templates/order/return_order_base.html:116 -#: order/templates/order/sales_order_base.html:125 +#: order/api.py:78 order/api.py:149 order/serializers.py:124 +#: order/templates/order/order_base.html:124 +#: order/templates/order/return_order_base.html:117 +#: order/templates/order/sales_order_base.html:126 msgid "Order Status" msgstr "" -#: order/api.py:88 order/templates/order/order_base.html:111 -#: order/templates/order/return_order_base.html:104 -#: order/templates/order/sales_order_base.html:113 +#: order/api.py:86 order/templates/order/order_base.html:112 +#: order/templates/order/return_order_base.html:105 +#: order/templates/order/sales_order_base.html:114 msgid "Order Reference" msgstr "" -#: order/api.py:116 templates/js/translated/table_filters.js:93 +#: order/api.py:114 order/api.py:1022 +#: templates/js/translated/table_filters.js:93 #: templates/js/translated/table_filters.js:625 #: templates/js/translated/table_filters.js:651 #: templates/js/translated/table_filters.js:666 msgid "Outstanding" msgstr "" -#: order/api.py:132 +#: order/api.py:130 msgid "Has Project Code" msgstr "" -#: order/api.py:155 templates/js/translated/table_filters.js:201 +#: order/api.py:153 templates/js/translated/table_filters.js:201 #: templates/js/translated/table_filters.js:791 msgid "Has Pricing" msgstr "" -#: order/api.py:230 -msgid "No matching purchase order found" -msgstr "" - -#: order/api.py:425 order/api.py:763 order/models.py:1484 order/models.py:1598 -#: order/models.py:1649 order/models.py:1764 order/models.py:1923 -#: order/models.py:2383 order/models.py:2439 -#: templates/js/translated/sales_order.js:1524 +#: order/api.py:375 order/api.py:771 order/api.py:986 order/models.py:1500 +#: order/models.py:1614 order/models.py:1665 order/models.py:1793 +#: order/models.py:1956 order/models.py:2422 order/models.py:2478 +#: templates/js/translated/sales_order.js:1490 msgid "Order" msgstr "" -#: order/api.py:429 order/api.py:784 +#: order/api.py:379 order/api.py:809 msgid "Order Complete" msgstr "" -#: order/api.py:452 +#: order/api.py:430 msgid "Order Pending" msgstr "" -#: order/api.py:1404 order/models.py:379 order/models.py:1485 -#: order/models.py:1599 order/templates/order/order_base.html:9 -#: order/templates/order/order_base.html:18 +#: order/api.py:1526 order/models.py:386 order/models.py:1501 +#: order/models.py:1615 order/templates/order/order_base.html:10 +#: order/templates/order/order_base.html:19 #: report/templates/report/inventree_purchase_order_report.html:14 -#: stock/serializers.py:120 stock/templates/stock/item_base.html:176 +#: stock/serializers.py:121 stock/templates/stock/item_base.html:173 #: templates/email/overdue_purchase_order.html:15 #: templates/js/translated/part.js:1752 templates/js/translated/pricing.js:804 -#: templates/js/translated/purchase_order.js:168 -#: templates/js/translated/purchase_order.js:753 -#: templates/js/translated/purchase_order.js:1743 -#: templates/js/translated/stock.js:2345 templates/js/translated/stock.js:2991 +#: templates/js/translated/purchase_order.js:736 +#: templates/js/translated/purchase_order.js:1727 +#: templates/js/translated/stock.js:2346 templates/js/translated/stock.js:2992 msgid "Purchase Order" msgstr "" -#: order/api.py:1408 order/models.py:2091 order/models.py:2384 -#: order/models.py:2440 order/templates/order/return_order_base.html:9 -#: order/templates/order/return_order_base.html:28 +#: order/api.py:1530 order/models.py:2124 order/models.py:2423 +#: order/models.py:2479 order/templates/order/return_order_base.html:10 +#: order/templates/order/return_order_base.html:29 #: report/templates/report/inventree_return_order_report.html:13 #: templates/js/translated/return_order.js:280 -#: templates/js/translated/stock.js:3025 +#: templates/js/translated/stock.js:3026 msgid "Return Order" msgstr "" @@ -5387,751 +5564,782 @@ msgstr "" msgid "Total price for this order" msgstr "" -#: order/models.py:95 order/serializers.py:71 +#: order/models.py:95 order/serializers.py:73 msgid "Order Currency" msgstr "" -#: order/models.py:98 order/serializers.py:72 +#: order/models.py:98 order/serializers.py:74 msgid "Currency for this order (leave blank to use company default)" msgstr "" -#: order/models.py:246 +#: order/models.py:243 msgid "Contact does not match selected company" msgstr "" -#: order/models.py:289 +#: order/models.py:296 msgid "Order description (optional)" msgstr "" -#: order/models.py:298 +#: order/models.py:305 msgid "Select project code for this order" msgstr "" -#: order/models.py:302 order/models.py:1385 order/models.py:1817 +#: order/models.py:309 order/models.py:1402 order/models.py:1846 msgid "Link to external page" msgstr "" -#: order/models.py:310 +#: order/models.py:317 msgid "Expected date for order delivery. Order will be overdue after this date." msgstr "" -#: order/models.py:324 +#: order/models.py:331 msgid "Created By" msgstr "" -#: order/models.py:332 +#: order/models.py:339 msgid "User or group responsible for this order" msgstr "" -#: order/models.py:343 +#: order/models.py:350 msgid "Point of contact for this order" msgstr "" -#: order/models.py:353 +#: order/models.py:360 msgid "Company address for this order" msgstr "" -#: order/models.py:468 order/models.py:979 +#: order/models.py:480 order/models.py:1006 msgid "Order reference" msgstr "" -#: order/models.py:477 +#: order/models.py:489 msgid "Purchase order status" msgstr "" -#: order/models.py:492 +#: order/models.py:504 msgid "Company from which the items are being ordered" msgstr "" -#: order/models.py:503 order/templates/order/order_base.html:153 -#: templates/js/translated/purchase_order.js:1772 +#: order/models.py:515 order/templates/order/order_base.html:162 +#: templates/js/translated/purchase_order.js:1756 msgid "Supplier Reference" msgstr "" -#: order/models.py:504 +#: order/models.py:516 msgid "Supplier order reference code" msgstr "" -#: order/models.py:513 +#: order/models.py:525 msgid "received by" msgstr "" -#: order/models.py:519 order/models.py:2173 +#: order/models.py:531 order/models.py:2212 msgid "Issue Date" msgstr "" -#: order/models.py:520 order/models.py:2174 +#: order/models.py:532 order/models.py:2213 msgid "Date order was issued" msgstr "" -#: order/models.py:527 order/models.py:2181 +#: order/models.py:539 order/models.py:2220 msgid "Date order was completed" msgstr "" -#: order/models.py:571 +#: order/models.py:549 order/models.py:1552 +msgid "Destination for received items" +msgstr "" + +#: order/models.py:593 msgid "Part supplier must match PO supplier" msgstr "" -#: order/models.py:806 +#: order/models.py:828 msgid "Quantity must be a positive number" msgstr "" -#: order/models.py:991 +#: order/models.py:1018 msgid "Company to which the items are being sold" msgstr "" -#: order/models.py:1003 +#: order/models.py:1030 msgid "Sales order status" msgstr "" -#: order/models.py:1014 order/models.py:2166 +#: order/models.py:1041 order/models.py:2205 msgid "Customer Reference " msgstr "" -#: order/models.py:1015 order/models.py:2167 +#: order/models.py:1042 order/models.py:2206 msgid "Customer order reference code" msgstr "" -#: order/models.py:1019 order/models.py:1771 -#: templates/js/translated/sales_order.js:879 -#: templates/js/translated/sales_order.js:1060 +#: order/models.py:1046 order/models.py:1800 +#: templates/js/translated/sales_order.js:838 +#: templates/js/translated/sales_order.js:1026 msgid "Shipment Date" msgstr "" -#: order/models.py:1028 +#: order/models.py:1055 msgid "shipped by" msgstr "" -#: order/models.py:1077 +#: order/models.py:1094 msgid "Order is already complete" msgstr "" -#: order/models.py:1080 +#: order/models.py:1097 msgid "Order is already cancelled" msgstr "" -#: order/models.py:1084 +#: order/models.py:1101 msgid "Only an open order can be marked as complete" msgstr "" -#: order/models.py:1088 +#: order/models.py:1105 msgid "Order cannot be completed as there are incomplete shipments" msgstr "" -#: order/models.py:1093 +#: order/models.py:1110 msgid "Order cannot be completed as there are incomplete line items" msgstr "" -#: order/models.py:1357 +#: order/models.py:1374 msgid "Item quantity" msgstr "" -#: order/models.py:1374 +#: order/models.py:1391 msgid "Line item reference" msgstr "" -#: order/models.py:1381 +#: order/models.py:1398 msgid "Line item notes" msgstr "" -#: order/models.py:1393 +#: order/models.py:1410 msgid "Target date for this line item (leave blank to use the target date from the order)" msgstr "" -#: order/models.py:1414 +#: order/models.py:1431 msgid "Line item description (optional)" msgstr "" -#: order/models.py:1420 -msgid "Context" -msgstr "" - -#: order/models.py:1421 +#: order/models.py:1438 msgid "Additional context for this line" msgstr "" -#: order/models.py:1431 +#: order/models.py:1448 msgid "Unit price" msgstr "" -#: order/models.py:1445 +#: order/models.py:1462 msgid "Purchase Order Line Item" msgstr "" -#: order/models.py:1469 +#: order/models.py:1486 msgid "Supplier part must match supplier" msgstr "" -#: order/models.py:1476 -msgid "deleted" -msgstr "" - -#: order/models.py:1504 +#: order/models.py:1520 msgid "Supplier part" msgstr "" -#: order/models.py:1511 order/templates/order/order_base.html:201 +#: order/models.py:1527 order/templates/order/order_base.html:210 #: templates/js/translated/part.js:1876 templates/js/translated/part.js:1908 -#: templates/js/translated/purchase_order.js:1369 -#: templates/js/translated/purchase_order.js:2239 +#: templates/js/translated/purchase_order.js:1352 +#: templates/js/translated/purchase_order.js:2223 #: templates/js/translated/return_order.js:762 #: templates/js/translated/table_filters.js:119 #: templates/js/translated/table_filters.js:605 msgid "Received" msgstr "" -#: order/models.py:1512 +#: order/models.py:1528 msgid "Number of items received" msgstr "" -#: order/models.py:1520 stock/models.py:959 stock/serializers.py:610 -#: stock/templates/stock/item_base.html:183 -#: templates/js/translated/stock.js:2396 +#: order/models.py:1536 stock/models.py:1036 stock/serializers.py:637 +#: stock/templates/stock/item_base.html:180 +#: templates/js/translated/stock.js:2397 msgid "Purchase Price" msgstr "" -#: order/models.py:1521 +#: order/models.py:1537 msgid "Unit purchase price" msgstr "" -#: order/models.py:1536 -msgid "Where does the Purchaser want this item to be stored?" -msgstr "" - -#: order/models.py:1587 +#: order/models.py:1603 msgid "Purchase Order Extra Line" msgstr "" -#: order/models.py:1616 +#: order/models.py:1632 msgid "Sales Order Line Item" msgstr "" -#: order/models.py:1637 +#: order/models.py:1653 msgid "Virtual part cannot be assigned to a sales order" msgstr "" -#: order/models.py:1642 +#: order/models.py:1658 msgid "Only salable parts can be assigned to a sales order" msgstr "" -#: order/models.py:1668 part/templates/part/part_pricing.html:107 -#: part/templates/part/prices.html:139 templates/js/translated/pricing.js:957 +#: order/models.py:1684 part/templates/part/part_pricing.html:107 +#: part/templates/part/prices.html:139 templates/js/translated/pricing.js:955 msgid "Sale Price" msgstr "" -#: order/models.py:1669 +#: order/models.py:1685 msgid "Unit sale price" msgstr "" -#: order/models.py:1678 order/status_codes.py:48 -#: templates/js/translated/sales_order.js:1559 -#: templates/js/translated/sales_order.js:1680 -#: templates/js/translated/sales_order.js:1993 +#: order/models.py:1694 order/status_codes.py:50 +#: templates/js/translated/sales_order.js:1525 +#: templates/js/translated/sales_order.js:1661 +#: templates/js/translated/sales_order.js:1974 msgid "Shipped" msgstr "" -#: order/models.py:1679 +#: order/models.py:1695 msgid "Shipped quantity" msgstr "" -#: order/models.py:1751 +#: order/models.py:1769 msgid "Sales Order Shipment" msgstr "" -#: order/models.py:1772 +#: order/models.py:1801 msgid "Date of shipment" msgstr "" -#: order/models.py:1778 templates/js/translated/sales_order.js:1072 +#: order/models.py:1807 templates/js/translated/sales_order.js:1038 msgid "Delivery Date" msgstr "" -#: order/models.py:1779 +#: order/models.py:1808 msgid "Date of delivery of shipment" msgstr "" -#: order/models.py:1787 +#: order/models.py:1816 msgid "Checked By" msgstr "" -#: order/models.py:1788 +#: order/models.py:1817 msgid "User who checked this shipment" msgstr "" -#: order/models.py:1795 order/models.py:2018 order/serializers.py:1475 -#: order/serializers.py:1585 templates/js/translated/model_renderers.js:455 +#: order/models.py:1824 order/models.py:2051 order/serializers.py:1601 +#: order/serializers.py:1725 +#: report/templates/report/inventree_sales_order_shipment_report.html:14 +#: templates/js/translated/model_renderers.js:458 +#: templates/js/translated/sales_order.js:1615 msgid "Shipment" msgstr "" -#: order/models.py:1796 +#: order/models.py:1825 msgid "Shipment number" msgstr "" -#: order/models.py:1804 +#: order/models.py:1833 msgid "Tracking Number" msgstr "" -#: order/models.py:1805 +#: order/models.py:1834 msgid "Shipment tracking information" msgstr "" -#: order/models.py:1812 +#: order/models.py:1841 msgid "Invoice Number" msgstr "" -#: order/models.py:1813 +#: order/models.py:1842 msgid "Reference number for associated invoice" msgstr "" -#: order/models.py:1833 +#: order/models.py:1862 msgid "Shipment has already been sent" msgstr "" -#: order/models.py:1836 +#: order/models.py:1865 msgid "Shipment has no allocated stock items" msgstr "" -#: order/models.py:1912 +#: order/models.py:1945 msgid "Sales Order Extra Line" msgstr "" -#: order/models.py:1941 +#: order/models.py:1974 msgid "Sales Order Allocation" msgstr "" -#: order/models.py:1964 order/models.py:1966 +#: order/models.py:1997 order/models.py:1999 msgid "Stock item has not been assigned" msgstr "" -#: order/models.py:1973 +#: order/models.py:2006 msgid "Cannot allocate stock item to a line with a different part" msgstr "" -#: order/models.py:1976 +#: order/models.py:2009 msgid "Cannot allocate stock to a line without a part" msgstr "" -#: order/models.py:1979 +#: order/models.py:2012 msgid "Allocation quantity cannot exceed stock quantity" msgstr "" -#: order/models.py:1998 order/serializers.py:1345 +#: order/models.py:2031 order/serializers.py:1471 msgid "Quantity must be 1 for serialized stock item" msgstr "" -#: order/models.py:2001 +#: order/models.py:2034 msgid "Sales order does not match shipment" msgstr "" -#: order/models.py:2002 plugin/base/barcodes/api.py:524 +#: order/models.py:2035 plugin/base/barcodes/api.py:629 msgid "Shipment does not match sales order" msgstr "" -#: order/models.py:2010 +#: order/models.py:2043 msgid "Line" msgstr "" -#: order/models.py:2019 +#: order/models.py:2052 msgid "Sales order shipment reference" msgstr "" -#: order/models.py:2032 order/models.py:2391 +#: order/models.py:2065 order/models.py:2430 #: templates/js/translated/return_order.js:720 msgid "Item" msgstr "" -#: order/models.py:2033 +#: order/models.py:2066 msgid "Select stock item to allocate" msgstr "" -#: order/models.py:2042 +#: order/models.py:2075 msgid "Enter stock allocation quantity" msgstr "" -#: order/models.py:2136 +#: order/models.py:2175 msgid "Return Order reference" msgstr "" -#: order/models.py:2148 +#: order/models.py:2187 msgid "Company from which items are being returned" msgstr "" -#: order/models.py:2160 +#: order/models.py:2199 msgid "Return order status" msgstr "" -#: order/models.py:2362 +#: order/models.py:2401 msgid "Return Order Line Item" msgstr "" -#: order/models.py:2376 +#: order/models.py:2415 msgid "Only serialized items can be assigned to a Return Order" msgstr "" -#: order/models.py:2392 +#: order/models.py:2431 msgid "Select item to return from customer" msgstr "" -#: order/models.py:2398 +#: order/models.py:2437 msgid "Received Date" msgstr "" -#: order/models.py:2399 +#: order/models.py:2438 msgid "The date this this return item was received" msgstr "" -#: order/models.py:2410 templates/js/translated/return_order.js:731 +#: order/models.py:2449 templates/js/translated/return_order.js:731 #: templates/js/translated/table_filters.js:122 msgid "Outcome" msgstr "" -#: order/models.py:2411 +#: order/models.py:2450 msgid "Outcome for this line item" msgstr "" -#: order/models.py:2418 +#: order/models.py:2457 msgid "Cost associated with return or repair for this line item" msgstr "" -#: order/models.py:2428 +#: order/models.py:2467 msgid "Return Order Extra Line" msgstr "" -#: order/serializers.py:86 +#: order/serializers.py:87 +msgid "Order ID" +msgstr "" + +#: order/serializers.py:87 +msgid "ID of the order to duplicate" +msgstr "" + +#: order/serializers.py:93 +msgid "Copy Lines" +msgstr "" + +#: order/serializers.py:94 +msgid "Copy line items from the original order" +msgstr "" + +#: order/serializers.py:100 +msgid "Copy Extra Lines" +msgstr "" + +#: order/serializers.py:101 +msgid "Copy extra line items from the original order" +msgstr "" + +#: order/serializers.py:117 msgid "Completed Lines" msgstr "" -#: order/serializers.py:283 stock/admin.py:195 +#: order/serializers.py:161 +msgid "Duplicate Order" +msgstr "" + +#: order/serializers.py:162 +msgid "Specify options for duplicating this order" +msgstr "" + +#: order/serializers.py:234 +msgid "Invalid order ID" +msgstr "" + +#: order/serializers.py:374 stock/admin.py:196 msgid "Supplier Name" msgstr "" -#: order/serializers.py:331 +#: order/serializers.py:416 msgid "Order cannot be cancelled" msgstr "" -#: order/serializers.py:346 order/serializers.py:1366 +#: order/serializers.py:431 order/serializers.py:1492 msgid "Allow order to be closed with incomplete line items" msgstr "" -#: order/serializers.py:356 order/serializers.py:1376 +#: order/serializers.py:441 order/serializers.py:1502 msgid "Order has incomplete line items" msgstr "" -#: order/serializers.py:506 +#: order/serializers.py:591 msgid "Order is not open" msgstr "" -#: order/serializers.py:527 +#: order/serializers.py:612 msgid "Auto Pricing" msgstr "" -#: order/serializers.py:529 +#: order/serializers.py:614 msgid "Automatically calculate purchase price based on supplier part data" msgstr "" -#: order/serializers.py:539 +#: order/serializers.py:624 msgid "Purchase price currency" msgstr "" -#: order/serializers.py:545 +#: order/serializers.py:630 msgid "Merge Items" msgstr "" -#: order/serializers.py:547 +#: order/serializers.py:632 msgid "Merge items with the same part, destination and target date into one line item" msgstr "" -#: order/serializers.py:560 part/models.py:1033 +#: order/serializers.py:645 part/models.py:1094 part/serializers.py:387 msgid "Internal Part Number" msgstr "" -#: order/serializers.py:568 +#: order/serializers.py:653 msgid "Internal Part Name" msgstr "" -#: order/serializers.py:584 +#: order/serializers.py:669 msgid "Supplier part must be specified" msgstr "" -#: order/serializers.py:587 +#: order/serializers.py:672 msgid "Purchase order must be specified" msgstr "" -#: order/serializers.py:595 +#: order/serializers.py:680 msgid "Supplier must match purchase order" msgstr "" -#: order/serializers.py:596 +#: order/serializers.py:681 msgid "Purchase order must match supplier" msgstr "" -#: order/serializers.py:639 order/serializers.py:1446 +#: order/serializers.py:724 order/serializers.py:1572 msgid "Line Item" msgstr "" -#: order/serializers.py:645 +#: order/serializers.py:730 msgid "Line item does not match purchase order" msgstr "" -#: order/serializers.py:655 order/serializers.py:779 order/serializers.py:1782 +#: order/serializers.py:740 order/serializers.py:881 order/serializers.py:1934 msgid "Select destination location for received items" msgstr "" -#: order/serializers.py:671 templates/js/translated/purchase_order.js:1130 +#: order/serializers.py:756 templates/js/translated/purchase_order.js:1113 #: templates/js/translated/stock.js:1200 msgid "Enter batch code for incoming stock items" msgstr "" -#: order/serializers.py:679 templates/js/translated/purchase_order.js:1155 +#: order/serializers.py:764 templates/js/translated/purchase_order.js:1138 msgid "Enter serial numbers for incoming stock items" msgstr "" -#: order/serializers.py:691 +#: order/serializers.py:776 msgid "Override packaging information for incoming stock items" msgstr "" -#: order/serializers.py:699 +#: order/serializers.py:784 msgid "Additional note for incoming stock items" msgstr "" -#: order/serializers.py:706 templates/js/translated/barcode.js:52 +#: order/serializers.py:791 templates/js/translated/barcode.js:52 msgid "Barcode" msgstr "" -#: order/serializers.py:707 +#: order/serializers.py:792 msgid "Scanned barcode" msgstr "" -#: order/serializers.py:723 +#: order/serializers.py:808 msgid "Barcode is already in use" msgstr "" -#: order/serializers.py:747 +#: order/serializers.py:831 msgid "An integer quantity must be provided for trackable parts" msgstr "" -#: order/serializers.py:795 order/serializers.py:1798 +#: order/serializers.py:898 order/serializers.py:1950 msgid "Line items must be provided" msgstr "" -#: order/serializers.py:811 +#: order/serializers.py:914 msgid "Destination location must be specified" msgstr "" -#: order/serializers.py:822 +#: order/serializers.py:925 msgid "Supplied barcode values must be unique" msgstr "" -#: order/serializers.py:1187 +#: order/serializers.py:1221 msgid "Sale price currency" msgstr "" -#: order/serializers.py:1248 +#: order/serializers.py:1260 +msgid "Allocated Items" +msgstr "" + +#: order/serializers.py:1374 msgid "No shipment details provided" msgstr "" -#: order/serializers.py:1309 order/serializers.py:1455 +#: order/serializers.py:1435 order/serializers.py:1581 msgid "Line item is not associated with this order" msgstr "" -#: order/serializers.py:1328 +#: order/serializers.py:1454 msgid "Quantity must be positive" msgstr "" -#: order/serializers.py:1465 +#: order/serializers.py:1591 msgid "Enter serial numbers to allocate" msgstr "" -#: order/serializers.py:1487 order/serializers.py:1593 +#: order/serializers.py:1613 order/serializers.py:1733 msgid "Shipment has already been shipped" msgstr "" -#: order/serializers.py:1490 order/serializers.py:1596 +#: order/serializers.py:1616 order/serializers.py:1736 msgid "Shipment is not associated with this order" msgstr "" -#: order/serializers.py:1537 +#: order/serializers.py:1671 msgid "No match found for the following serial numbers" msgstr "" -#: order/serializers.py:1544 -msgid "The following serial numbers are already allocated" +#: order/serializers.py:1678 +msgid "The following serial numbers are unavailable" msgstr "" -#: order/serializers.py:1752 +#: order/serializers.py:1904 msgid "Return order line item" msgstr "" -#: order/serializers.py:1758 +#: order/serializers.py:1910 msgid "Line item does not match return order" msgstr "" -#: order/serializers.py:1761 +#: order/serializers.py:1913 msgid "Line item has already been received" msgstr "" -#: order/serializers.py:1790 +#: order/serializers.py:1942 msgid "Items can only be received against orders which are in progress" msgstr "" -#: order/serializers.py:1873 +#: order/serializers.py:2025 msgid "Line price currency" msgstr "" -#: order/status_codes.py:17 order/status_codes.py:52 stock/status_codes.py:16 +#: order/status_codes.py:17 order/status_codes.py:54 stock/status_codes.py:16 msgid "Lost" msgstr "" -#: order/status_codes.py:18 order/status_codes.py:53 stock/status_codes.py:22 +#: order/status_codes.py:18 order/status_codes.py:55 stock/status_codes.py:24 msgid "Returned" msgstr "" -#: order/status_codes.py:45 order/status_codes.py:77 +#: order/status_codes.py:47 order/status_codes.py:79 msgid "In Progress" msgstr "" -#: order/status_codes.py:101 +#: order/status_codes.py:105 msgid "Return" msgstr "" -#: order/status_codes.py:104 +#: order/status_codes.py:108 msgid "Repair" msgstr "" -#: order/status_codes.py:107 +#: order/status_codes.py:111 msgid "Replace" msgstr "" -#: order/status_codes.py:110 +#: order/status_codes.py:114 msgid "Refund" msgstr "" -#: order/status_codes.py:113 +#: order/status_codes.py:117 msgid "Reject" msgstr "" -#: order/tasks.py:25 +#: order/tasks.py:30 msgid "Overdue Purchase Order" msgstr "" -#: order/tasks.py:30 +#: order/tasks.py:35 #, python-brace-format msgid "Purchase order {po} is now overdue" msgstr "" -#: order/tasks.py:75 +#: order/tasks.py:80 msgid "Overdue Sales Order" msgstr "" -#: order/tasks.py:80 +#: order/tasks.py:85 #, python-brace-format msgid "Sales order {so} is now overdue" msgstr "" -#: order/templates/order/order_base.html:51 +#: order/templates/order/order_base.html:52 msgid "Print purchase order report" msgstr "" -#: order/templates/order/order_base.html:53 -#: order/templates/order/return_order_base.html:62 -#: order/templates/order/sales_order_base.html:62 +#: order/templates/order/order_base.html:54 +#: order/templates/order/return_order_base.html:63 +#: order/templates/order/sales_order_base.html:63 msgid "Export order to file" msgstr "" -#: order/templates/order/order_base.html:59 -#: order/templates/order/return_order_base.html:72 -#: order/templates/order/sales_order_base.html:71 +#: order/templates/order/order_base.html:60 +#: order/templates/order/return_order_base.html:73 +#: order/templates/order/sales_order_base.html:72 msgid "Order actions" msgstr "" -#: order/templates/order/order_base.html:64 -#: order/templates/order/return_order_base.html:76 -#: order/templates/order/sales_order_base.html:75 +#: order/templates/order/order_base.html:65 +#: order/templates/order/return_order_base.html:77 +#: order/templates/order/sales_order_base.html:76 msgid "Edit order" msgstr "" -#: order/templates/order/order_base.html:68 +#: order/templates/order/order_base.html:69 msgid "Duplicate order" msgstr "" -#: order/templates/order/order_base.html:73 -#: order/templates/order/return_order_base.html:78 -#: order/templates/order/sales_order_base.html:77 +#: order/templates/order/order_base.html:74 +#: order/templates/order/return_order_base.html:79 +#: order/templates/order/sales_order_base.html:78 msgid "Hold order" msgstr "" -#: order/templates/order/order_base.html:78 -#: order/templates/order/return_order_base.html:81 -#: order/templates/order/sales_order_base.html:80 +#: order/templates/order/order_base.html:79 +#: order/templates/order/return_order_base.html:82 +#: order/templates/order/sales_order_base.html:81 msgid "Cancel order" msgstr "" -#: order/templates/order/order_base.html:84 #: order/templates/order/order_base.html:85 -#: order/templates/order/return_order_base.html:85 +#: order/templates/order/order_base.html:86 #: order/templates/order/return_order_base.html:86 -#: order/templates/order/sales_order_base.html:86 +#: order/templates/order/return_order_base.html:87 #: order/templates/order/sales_order_base.html:87 +#: order/templates/order/sales_order_base.html:88 msgid "Issue Order" msgstr "" -#: order/templates/order/order_base.html:88 -#: order/templates/order/return_order_base.html:89 -msgid "Mark order as complete" -msgstr "" - #: order/templates/order/order_base.html:89 #: order/templates/order/return_order_base.html:90 -#: order/templates/order/sales_order_base.html:100 +msgid "Mark order as complete" +msgstr "" + +#: order/templates/order/order_base.html:90 +#: order/templates/order/return_order_base.html:91 +#: order/templates/order/sales_order_base.html:101 msgid "Complete Order" msgstr "" -#: order/templates/order/order_base.html:96 +#: order/templates/order/order_base.html:97 msgid "Supplier part thumbnail" msgstr "" -#: order/templates/order/order_base.html:116 -#: order/templates/order/return_order_base.html:109 -#: order/templates/order/sales_order_base.html:118 +#: order/templates/order/order_base.html:117 +#: order/templates/order/return_order_base.html:110 +#: order/templates/order/sales_order_base.html:119 msgid "Order Description" msgstr "" -#: order/templates/order/order_base.html:146 -msgid "No suppplier information available" -msgstr "" - -#: order/templates/order/order_base.html:159 -#: order/templates/order/sales_order_base.html:164 +#: order/templates/order/order_base.html:168 +#: order/templates/order/sales_order_base.html:165 msgid "Completed Line Items" msgstr "" -#: order/templates/order/order_base.html:165 -#: order/templates/order/sales_order_base.html:170 -#: order/templates/order/sales_order_base.html:180 +#: order/templates/order/order_base.html:174 +#: order/templates/order/sales_order_base.html:171 +#: order/templates/order/sales_order_base.html:181 msgid "Incomplete" msgstr "" -#: order/templates/order/order_base.html:184 -#: order/templates/order/return_order_base.html:160 +#: order/templates/order/order_base.html:193 +#: order/templates/order/return_order_base.html:161 #: report/templates/report/inventree_build_order_report.html:121 msgid "Issued" msgstr "" -#: order/templates/order/order_base.html:229 +#: order/templates/order/order_base.html:238 msgid "Total cost" msgstr "" -#: order/templates/order/order_base.html:233 -#: order/templates/order/return_order_base.html:202 -#: order/templates/order/sales_order_base.html:246 +#: order/templates/order/order_base.html:242 +#: order/templates/order/return_order_base.html:203 +#: order/templates/order/sales_order_base.html:247 msgid "Total cost could not be calculated" msgstr "" -#: order/templates/order/order_base.html:335 +#: order/templates/order/order_base.html:344 msgid "Purchase Order QR Code" msgstr "" -#: order/templates/order/order_base.html:347 +#: order/templates/order/order_base.html:356 msgid "Link Barcode to Purchase Order" msgstr "" @@ -6184,12 +6392,12 @@ msgstr "" #: part/templates/part/import_wizard/ajax_match_references.html:42 #: part/templates/part/import_wizard/match_fields.html:71 #: part/templates/part/import_wizard/match_references.html:49 -#: templates/js/translated/bom.js:133 templates/js/translated/build.js:530 -#: templates/js/translated/build.js:1802 -#: templates/js/translated/purchase_order.js:696 -#: templates/js/translated/purchase_order.js:1288 +#: templates/js/translated/bom.js:133 templates/js/translated/build.js:533 +#: templates/js/translated/build.js:1805 +#: templates/js/translated/purchase_order.js:679 +#: templates/js/translated/purchase_order.js:1271 #: templates/js/translated/return_order.js:505 -#: templates/js/translated/sales_order.js:1145 +#: templates/js/translated/sales_order.js:1111 #: templates/js/translated/stock.js:720 templates/js/translated/stock.js:889 #: templates/patterns/wizard/match_fields.html:70 msgid "Remove row" @@ -6242,7 +6450,7 @@ msgstr "" #: order/templates/order/purchase_order_detail.html:27 #: order/templates/order/return_order_detail.html:24 #: order/templates/order/sales_order_detail.html:24 -#: templates/js/translated/purchase_order.js:414 +#: templates/js/translated/purchase_order.js:397 #: templates/js/translated/return_order.js:458 #: templates/js/translated/sales_order.js:237 msgid "Add Line Item" @@ -6277,45 +6485,45 @@ msgstr "" msgid "Order Notes" msgstr "" -#: order/templates/order/return_order_base.html:18 -#: order/templates/order/sales_order_base.html:18 +#: order/templates/order/return_order_base.html:19 +#: order/templates/order/sales_order_base.html:19 msgid "Customer logo thumbnail" msgstr "" -#: order/templates/order/return_order_base.html:60 +#: order/templates/order/return_order_base.html:61 msgid "Print return order report" msgstr "" -#: order/templates/order/return_order_base.html:64 -#: order/templates/order/sales_order_base.html:64 +#: order/templates/order/return_order_base.html:65 +#: order/templates/order/sales_order_base.html:65 msgid "Print packing list" msgstr "" -#: order/templates/order/return_order_base.html:141 -#: order/templates/order/sales_order_base.html:158 +#: order/templates/order/return_order_base.html:142 +#: order/templates/order/sales_order_base.html:159 #: templates/js/translated/return_order.js:308 -#: templates/js/translated/sales_order.js:833 +#: templates/js/translated/sales_order.js:792 msgid "Customer Reference" msgstr "" -#: order/templates/order/return_order_base.html:198 -#: order/templates/order/sales_order_base.html:242 +#: order/templates/order/return_order_base.html:199 +#: order/templates/order/sales_order_base.html:243 #: part/templates/part/part_pricing.html:32 #: part/templates/part/part_pricing.html:58 #: part/templates/part/part_pricing.html:99 #: part/templates/part/part_pricing.html:114 #: templates/js/translated/part.js:1079 -#: templates/js/translated/purchase_order.js:1822 +#: templates/js/translated/purchase_order.js:1806 #: templates/js/translated/return_order.js:380 -#: templates/js/translated/sales_order.js:891 +#: templates/js/translated/sales_order.js:850 msgid "Total Cost" msgstr "" -#: order/templates/order/return_order_base.html:273 +#: order/templates/order/return_order_base.html:274 msgid "Return Order QR Code" msgstr "" -#: order/templates/order/return_order_base.html:285 +#: order/templates/order/return_order_base.html:286 msgid "Link Barcode to Return Order" msgstr "" @@ -6323,40 +6531,40 @@ msgstr "" msgid "Order Details" msgstr "" -#: order/templates/order/sales_order_base.html:60 +#: order/templates/order/sales_order_base.html:61 msgid "Print sales order report" msgstr "" -#: order/templates/order/sales_order_base.html:91 #: order/templates/order/sales_order_base.html:92 +#: order/templates/order/sales_order_base.html:93 msgid "Ship Items" msgstr "" -#: order/templates/order/sales_order_base.html:95 #: order/templates/order/sales_order_base.html:96 +#: order/templates/order/sales_order_base.html:97 msgid "Mark As Shipped" msgstr "" -#: order/templates/order/sales_order_base.html:99 -#: templates/js/translated/sales_order.js:536 +#: order/templates/order/sales_order_base.html:100 +#: templates/js/translated/sales_order.js:495 msgid "Complete Sales Order" msgstr "" -#: order/templates/order/sales_order_base.html:138 +#: order/templates/order/sales_order_base.html:139 msgid "This Sales Order has not been fully allocated" msgstr "" -#: order/templates/order/sales_order_base.html:176 +#: order/templates/order/sales_order_base.html:177 #: order/templates/order/sales_order_detail.html:99 #: order/templates/order/so_sidebar.html:11 msgid "Completed Shipments" msgstr "" -#: order/templates/order/sales_order_base.html:339 +#: order/templates/order/sales_order_base.html:340 msgid "Sales Order QR Code" msgstr "" -#: order/templates/order/sales_order_base.html:351 +#: order/templates/order/sales_order_base.html:352 msgid "Link Barcode to Sales Order" msgstr "" @@ -6370,7 +6578,7 @@ msgid "Pending Shipments" msgstr "" #: order/templates/order/sales_order_detail.html:71 -#: templates/js/translated/bom.js:1277 templates/js/translated/build.js:1063 +#: templates/js/translated/bom.js:1277 templates/js/translated/build.js:1066 #: templates/js/translated/filters.js:299 msgid "Actions" msgstr "" @@ -6383,39 +6591,40 @@ msgstr "" msgid "Match Supplier Parts" msgstr "" -#: order/views.py:406 +#: order/views.py:407 msgid "Sales order not found" msgstr "" -#: order/views.py:412 +#: order/views.py:413 msgid "Price not found" msgstr "" -#: order/views.py:415 +#: order/views.py:416 #, python-brace-format msgid "Updated {part} unit-price to {price}" msgstr "" -#: order/views.py:421 +#: order/views.py:422 #, python-brace-format msgid "Updated {part} unit-price to {price} and quantity to {qty}" msgstr "" -#: part/admin.py:48 part/models.py:1032 part/templates/part/part_base.html:269 +#: part/admin.py:48 part/models.py:1093 part/serializers.py:939 +#: part/templates/part/part_base.html:277 #: report/templates/report/inventree_stock_location_report.html:103 #: templates/js/translated/part.js:1233 templates/js/translated/part.js:2347 -#: templates/js/translated/stock.js:2121 +#: templates/js/translated/stock.js:2122 msgid "IPN" msgstr "" -#: part/admin.py:50 part/models.py:1041 part/templates/part/part_base.html:286 +#: part/admin.py:50 part/models.py:1102 part/templates/part/part_base.html:294 #: report/models.py:161 templates/js/translated/part.js:1238 #: templates/js/translated/part.js:2353 msgid "Revision" msgstr "" -#: part/admin.py:53 part/admin.py:319 part/models.py:1014 -#: part/templates/part/category.html:91 part/templates/part/part_base.html:307 +#: part/admin.py:53 part/admin.py:319 part/models.py:1075 +#: part/templates/part/category.html:91 part/templates/part/part_base.html:315 msgid "Keywords" msgstr "" @@ -6427,7 +6636,7 @@ msgstr "" msgid "Category ID" msgstr "" -#: part/admin.py:67 part/admin.py:304 part/serializers.py:880 +#: part/admin.py:67 part/admin.py:304 part/serializers.py:924 #: part/stocktake.py:222 msgid "Category Name" msgstr "" @@ -6440,11 +6649,11 @@ msgstr "" msgid "Default Supplier ID" msgstr "" -#: part/admin.py:81 part/models.py:1000 part/templates/part/part_base.html:177 +#: part/admin.py:81 part/models.py:1061 part/templates/part/part_base.html:178 msgid "Variant Of" msgstr "" -#: part/admin.py:84 part/models.py:1138 part/templates/part/part_base.html:203 +#: part/admin.py:84 part/models.py:1199 part/templates/part/part_base.html:204 msgid "Minimum Stock" msgstr "" @@ -6452,23 +6661,23 @@ msgstr "" msgid "Used In" msgstr "" -#: part/admin.py:150 part/serializers.py:897 -#: part/templates/part/part_base.html:241 stock/admin.py:235 +#: part/admin.py:150 part/serializers.py:949 +#: part/templates/part/part_base.html:249 stock/admin.py:236 #: templates/js/translated/part.js:717 templates/js/translated/part.js:2159 msgid "Building" msgstr "" -#: part/admin.py:155 part/models.py:3202 part/models.py:3216 +#: part/admin.py:155 part/models.py:3253 part/models.py:3267 #: templates/js/translated/part.js:976 msgid "Minimum Cost" msgstr "" -#: part/admin.py:158 part/models.py:3209 part/models.py:3223 +#: part/admin.py:158 part/models.py:3260 part/models.py:3274 #: templates/js/translated/part.js:986 msgid "Maximum Cost" msgstr "" -#: part/admin.py:308 part/admin.py:387 stock/admin.py:57 stock/admin.py:215 +#: part/admin.py:308 part/admin.py:387 stock/admin.py:57 stock/admin.py:216 msgid "Parent ID" msgstr "" @@ -6481,8 +6690,8 @@ msgstr "" msgid "Category Path" msgstr "" -#: part/admin.py:325 part/models.py:425 part/serializers.py:130 -#: part/serializers.py:290 part/serializers.py:415 +#: part/admin.py:325 part/models.py:420 part/serializers.py:130 +#: part/serializers.py:323 part/serializers.py:459 #: part/templates/part/cat_link.html:3 part/templates/part/category.html:20 #: part/templates/part/category.html:138 part/templates/part/category.html:158 #: part/templates/part/category_sidebar.html:9 @@ -6509,15 +6718,15 @@ msgstr "" msgid "Part Revision" msgstr "" -#: part/admin.py:418 part/serializers.py:1346 +#: part/admin.py:418 part/serializers.py:1400 #: templates/js/translated/pricing.js:358 -#: templates/js/translated/pricing.js:1024 +#: templates/js/translated/pricing.js:1022 msgid "Minimum Price" msgstr "" -#: part/admin.py:423 part/serializers.py:1361 +#: part/admin.py:423 part/serializers.py:1415 #: templates/js/translated/pricing.js:353 -#: templates/js/translated/pricing.js:1032 +#: templates/js/translated/pricing.js:1030 msgid "Maximum Price" msgstr "" @@ -6545,94 +6754,98 @@ msgstr "" msgid "Filter by top-level categories" msgstr "" +#: part/api.py:156 stock/api.py:343 +msgid "Cascade" +msgstr "" + #: part/api.py:158 msgid "Include sub-categories in filtered results" msgstr "" -#: part/api.py:179 templates/js/translated/part.js:311 +#: part/api.py:178 templates/js/translated/part.js:311 msgid "Parent" msgstr "" -#: part/api.py:181 +#: part/api.py:180 msgid "Filter by parent category" msgstr "" -#: part/api.py:214 +#: part/api.py:213 msgid "Exclude Tree" msgstr "" -#: part/api.py:216 +#: part/api.py:215 msgid "Exclude sub-categories under the specified category" msgstr "" -#: part/api.py:441 +#: part/api.py:440 msgid "Has Results" msgstr "" -#: part/api.py:608 +#: part/api.py:604 msgid "Incoming Purchase Order" msgstr "" -#: part/api.py:626 +#: part/api.py:618 msgid "Outgoing Sales Order" msgstr "" -#: part/api.py:642 +#: part/api.py:630 msgid "Stock produced by Build Order" msgstr "" -#: part/api.py:726 +#: part/api.py:712 msgid "Stock required for Build Order" msgstr "" -#: part/api.py:874 +#: part/api.py:858 msgid "Validate entire Bill of Materials" msgstr "" -#: part/api.py:880 +#: part/api.py:864 msgid "This option must be selected" msgstr "" -#: part/api.py:916 +#: part/api.py:900 msgid "Is Revision" msgstr "" -#: part/api.py:926 +#: part/api.py:910 msgid "Has Revisions" msgstr "" -#: part/api.py:1117 +#: part/api.py:1101 msgid "BOM Valid" msgstr "" -#: part/api.py:1523 part/models.py:1024 part/models.py:3489 part/models.py:4046 -#: part/serializers.py:430 part/serializers.py:1202 -#: part/templates/part/part_base.html:260 stock/api.py:781 +#: part/api.py:1509 part/models.py:1085 part/models.py:3540 part/models.py:4104 +#: part/serializers.py:474 part/serializers.py:1255 +#: part/templates/part/part_base.html:268 stock/api.py:781 #: templates/InvenTree/settings/settings_staff_js.html:300 #: templates/js/translated/notification.js:60 #: templates/js/translated/part.js:2383 msgid "Category" msgstr "" -#: part/api.py:1761 +#: part/api.py:1750 msgid "Assembly part is testable" msgstr "" -#: part/api.py:1770 +#: part/api.py:1759 msgid "Component part is testable" msgstr "" -#: part/api.py:1821 +#: part/api.py:1810 msgid "Uses" msgstr "" -#: part/bom.py:178 part/models.py:107 part/models.py:1077 -#: part/templates/part/category.html:113 part/templates/part/part_base.html:376 +#: part/bom.py:183 part/models.py:109 part/models.py:1138 +#: part/templates/part/category.html:113 part/templates/part/part_base.html:384 #: templates/js/translated/part.js:2397 msgid "Default Location" msgstr "" -#: part/bom.py:179 part/serializers.py:905 +#: part/bom.py:184 part/serializers.py:957 #: templates/email/low_stock_notification.html:16 msgid "Total Stock" msgstr "" @@ -6641,789 +6854,789 @@ msgstr "" msgid "Input quantity for price calculation" msgstr "" -#: part/models.py:88 part/models.py:4047 part/templates/part/category.html:16 +#: part/models.py:90 part/models.py:4105 part/templates/part/category.html:16 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "" -#: part/models.py:89 part/templates/part/category.html:133 +#: part/models.py:91 part/templates/part/category.html:133 #: templates/InvenTree/search.html:97 templates/js/translated/search.js:158 #: users/models.py:202 msgid "Part Categories" msgstr "" -#: part/models.py:108 +#: part/models.py:110 msgid "Default location for parts in this category" msgstr "" -#: part/models.py:113 stock/models.py:187 templates/js/translated/part.js:2828 -#: templates/js/translated/stock.js:2856 +#: part/models.py:115 stock/models.py:193 templates/js/translated/part.js:2828 +#: templates/js/translated/stock.js:2857 #: templates/js/translated/table_filters.js:246 #: templates/js/translated/table_filters.js:290 msgid "Structural" msgstr "" -#: part/models.py:115 +#: part/models.py:117 msgid "Parts may not be directly assigned to a structural category, but may be assigned to child categories." msgstr "" -#: part/models.py:124 +#: part/models.py:126 msgid "Default keywords" msgstr "" -#: part/models.py:125 +#: part/models.py:127 msgid "Default keywords for parts in this category" msgstr "" -#: part/models.py:131 stock/models.py:90 stock/models.py:169 +#: part/models.py:133 stock/models.py:96 stock/models.py:175 #: templates/InvenTree/settings/settings_staff_js.html:445 msgid "Icon" msgstr "" -#: part/models.py:132 part/serializers.py:143 part/serializers.py:161 -#: stock/models.py:170 +#: part/models.py:134 part/serializers.py:143 part/serializers.py:161 +#: stock/models.py:176 msgid "Icon (optional)" msgstr "" -#: part/models.py:178 +#: part/models.py:180 msgid "You cannot make this part category structural because some parts are already assigned to it!" msgstr "" -#: part/models.py:519 +#: part/models.py:514 msgid "Cannot delete this part as it is locked" msgstr "" -#: part/models.py:522 +#: part/models.py:517 msgid "Cannot delete this part as it is still active" msgstr "" -#: part/models.py:527 +#: part/models.py:522 msgid "Cannot delete this part as it is used in an assembly" msgstr "" -#: part/models.py:565 +#: part/models.py:560 msgid "Invalid choice for parent part" msgstr "" -#: part/models.py:613 part/models.py:620 +#: part/models.py:608 part/models.py:615 #, python-brace-format msgid "Part '{self}' cannot be used in BOM for '{parent}' (recursive)" msgstr "" -#: part/models.py:632 +#: part/models.py:627 #, python-brace-format msgid "Part '{parent}' is used in BOM for '{self}' (recursive)" msgstr "" -#: part/models.py:695 +#: part/models.py:694 #, python-brace-format msgid "IPN must match regex pattern {pattern}" msgstr "" -#: part/models.py:703 +#: part/models.py:702 msgid "Part cannot be a revision of itself" msgstr "" -#: part/models.py:710 +#: part/models.py:709 msgid "Cannot make a revision of a part which is already a revision" msgstr "" -#: part/models.py:717 +#: part/models.py:716 msgid "Revision code must be specified" msgstr "" -#: part/models.py:724 +#: part/models.py:723 msgid "Revisions are only allowed for assembly parts" msgstr "" -#: part/models.py:731 +#: part/models.py:730 msgid "Cannot make a revision of a template part" msgstr "" -#: part/models.py:737 +#: part/models.py:736 msgid "Parent part must point to the same template" msgstr "" -#: part/models.py:816 +#: part/models.py:832 msgid "Stock item with this serial number already exists" msgstr "" -#: part/models.py:917 +#: part/models.py:976 msgid "Duplicate IPN not allowed in part settings" msgstr "" -#: part/models.py:926 +#: part/models.py:988 msgid "Duplicate part revision already exists." msgstr "" -#: part/models.py:936 +#: part/models.py:997 msgid "Part with this Name, IPN and Revision already exists." msgstr "" -#: part/models.py:951 +#: part/models.py:1012 msgid "Parts cannot be assigned to structural part categories!" msgstr "" -#: part/models.py:983 part/models.py:4102 +#: part/models.py:1044 part/models.py:4160 msgid "Part name" msgstr "" -#: part/models.py:988 +#: part/models.py:1049 msgid "Is Template" msgstr "" -#: part/models.py:989 +#: part/models.py:1050 msgid "Is this part a template part?" msgstr "" -#: part/models.py:999 +#: part/models.py:1060 msgid "Is this part a variant of another part?" msgstr "" -#: part/models.py:1007 +#: part/models.py:1068 msgid "Part description (optional)" msgstr "" -#: part/models.py:1015 +#: part/models.py:1076 msgid "Part keywords to improve visibility in search results" msgstr "" -#: part/models.py:1025 +#: part/models.py:1086 msgid "Part category" msgstr "" -#: part/models.py:1040 +#: part/models.py:1101 msgid "Part revision or version number" msgstr "" -#: part/models.py:1050 +#: part/models.py:1111 msgid "Is this part a revision of another part?" msgstr "" -#: part/models.py:1051 part/templates/part/part_base.html:277 +#: part/models.py:1112 part/templates/part/part_base.html:285 msgid "Revision Of" msgstr "" -#: part/models.py:1075 +#: part/models.py:1136 msgid "Where is this item normally stored?" msgstr "" -#: part/models.py:1121 part/templates/part/part_base.html:385 +#: part/models.py:1182 part/templates/part/part_base.html:393 msgid "Default Supplier" msgstr "" -#: part/models.py:1122 +#: part/models.py:1183 msgid "Default supplier part" msgstr "" -#: part/models.py:1129 +#: part/models.py:1190 msgid "Default Expiry" msgstr "" -#: part/models.py:1130 +#: part/models.py:1191 msgid "Expiry time (in days) for stock items of this part" msgstr "" -#: part/models.py:1139 +#: part/models.py:1200 msgid "Minimum allowed stock level" msgstr "" -#: part/models.py:1148 +#: part/models.py:1209 msgid "Units of measure for this part" msgstr "" -#: part/models.py:1155 +#: part/models.py:1216 msgid "Can this part be built from other parts?" msgstr "" -#: part/models.py:1161 +#: part/models.py:1222 msgid "Can this part be used to build other parts?" msgstr "" -#: part/models.py:1167 +#: part/models.py:1228 msgid "Does this part have tracking for unique items?" msgstr "" -#: part/models.py:1173 +#: part/models.py:1234 msgid "Can this part have test results recorded against it?" msgstr "" -#: part/models.py:1179 +#: part/models.py:1240 msgid "Can this part be purchased from external suppliers?" msgstr "" -#: part/models.py:1185 +#: part/models.py:1246 msgid "Can this part be sold to customers?" msgstr "" -#: part/models.py:1189 +#: part/models.py:1250 msgid "Is this part active?" msgstr "" -#: part/models.py:1194 templates/js/translated/part.js:821 +#: part/models.py:1255 templates/js/translated/part.js:821 #: templates/js/translated/table_filters.js:724 msgid "Locked" msgstr "" -#: part/models.py:1195 +#: part/models.py:1256 msgid "Locked parts cannot be edited" msgstr "" -#: part/models.py:1201 +#: part/models.py:1262 msgid "Is this a virtual part, such as a software product or license?" msgstr "" -#: part/models.py:1207 +#: part/models.py:1268 msgid "BOM checksum" msgstr "" -#: part/models.py:1208 +#: part/models.py:1269 msgid "Stored BOM checksum" msgstr "" -#: part/models.py:1216 +#: part/models.py:1277 msgid "BOM checked by" msgstr "" -#: part/models.py:1221 +#: part/models.py:1282 msgid "BOM checked date" msgstr "" -#: part/models.py:1237 +#: part/models.py:1298 msgid "Creation User" msgstr "" -#: part/models.py:1247 +#: part/models.py:1308 msgid "Owner responsible for this part" msgstr "" -#: part/models.py:1252 part/templates/part/part_base.html:348 -#: stock/templates/stock/item_base.html:451 +#: part/models.py:1313 part/templates/part/part_base.html:356 +#: stock/templates/stock/item_base.html:448 #: templates/js/translated/part.js:2490 msgid "Last Stocktake" msgstr "" -#: part/models.py:2125 +#: part/models.py:2185 msgid "Sell multiple" msgstr "" -#: part/models.py:3116 +#: part/models.py:3167 msgid "Currency used to cache pricing calculations" msgstr "" -#: part/models.py:3132 +#: part/models.py:3183 msgid "Minimum BOM Cost" msgstr "" -#: part/models.py:3133 +#: part/models.py:3184 msgid "Minimum cost of component parts" msgstr "" -#: part/models.py:3139 +#: part/models.py:3190 msgid "Maximum BOM Cost" msgstr "" -#: part/models.py:3140 +#: part/models.py:3191 msgid "Maximum cost of component parts" msgstr "" -#: part/models.py:3146 +#: part/models.py:3197 msgid "Minimum Purchase Cost" msgstr "" -#: part/models.py:3147 +#: part/models.py:3198 msgid "Minimum historical purchase cost" msgstr "" -#: part/models.py:3153 +#: part/models.py:3204 msgid "Maximum Purchase Cost" msgstr "" -#: part/models.py:3154 +#: part/models.py:3205 msgid "Maximum historical purchase cost" msgstr "" -#: part/models.py:3160 +#: part/models.py:3211 msgid "Minimum Internal Price" msgstr "" -#: part/models.py:3161 +#: part/models.py:3212 msgid "Minimum cost based on internal price breaks" msgstr "" -#: part/models.py:3167 +#: part/models.py:3218 msgid "Maximum Internal Price" msgstr "" -#: part/models.py:3168 +#: part/models.py:3219 msgid "Maximum cost based on internal price breaks" msgstr "" -#: part/models.py:3174 +#: part/models.py:3225 msgid "Minimum Supplier Price" msgstr "" -#: part/models.py:3175 +#: part/models.py:3226 msgid "Minimum price of part from external suppliers" msgstr "" -#: part/models.py:3181 +#: part/models.py:3232 msgid "Maximum Supplier Price" msgstr "" -#: part/models.py:3182 +#: part/models.py:3233 msgid "Maximum price of part from external suppliers" msgstr "" -#: part/models.py:3188 +#: part/models.py:3239 msgid "Minimum Variant Cost" msgstr "" -#: part/models.py:3189 +#: part/models.py:3240 msgid "Calculated minimum cost of variant parts" msgstr "" -#: part/models.py:3195 +#: part/models.py:3246 msgid "Maximum Variant Cost" msgstr "" -#: part/models.py:3196 +#: part/models.py:3247 msgid "Calculated maximum cost of variant parts" msgstr "" -#: part/models.py:3203 +#: part/models.py:3254 msgid "Override minimum cost" msgstr "" -#: part/models.py:3210 +#: part/models.py:3261 msgid "Override maximum cost" msgstr "" -#: part/models.py:3217 +#: part/models.py:3268 msgid "Calculated overall minimum cost" msgstr "" -#: part/models.py:3224 +#: part/models.py:3275 msgid "Calculated overall maximum cost" msgstr "" -#: part/models.py:3230 +#: part/models.py:3281 msgid "Minimum Sale Price" msgstr "" -#: part/models.py:3231 +#: part/models.py:3282 msgid "Minimum sale price based on price breaks" msgstr "" -#: part/models.py:3237 +#: part/models.py:3288 msgid "Maximum Sale Price" msgstr "" -#: part/models.py:3238 +#: part/models.py:3289 msgid "Maximum sale price based on price breaks" msgstr "" -#: part/models.py:3244 +#: part/models.py:3295 msgid "Minimum Sale Cost" msgstr "" -#: part/models.py:3245 +#: part/models.py:3296 msgid "Minimum historical sale price" msgstr "" -#: part/models.py:3251 +#: part/models.py:3302 msgid "Maximum Sale Cost" msgstr "" -#: part/models.py:3252 +#: part/models.py:3303 msgid "Maximum historical sale price" msgstr "" -#: part/models.py:3271 +#: part/models.py:3322 msgid "Part for stocktake" msgstr "" -#: part/models.py:3276 +#: part/models.py:3327 msgid "Item Count" msgstr "" -#: part/models.py:3277 +#: part/models.py:3328 msgid "Number of individual stock entries at time of stocktake" msgstr "" -#: part/models.py:3285 +#: part/models.py:3336 msgid "Total available stock at time of stocktake" msgstr "" -#: part/models.py:3289 part/models.py:3372 +#: part/models.py:3340 part/models.py:3423 part/serializers.py:263 #: part/templates/part/part_scheduling.html:13 #: report/templates/report/inventree_test_report.html:106 #: templates/InvenTree/settings/plugin_settings.html:37 #: templates/InvenTree/settings/settings_staff_js.html:543 -#: templates/js/translated/part.js:1092 templates/js/translated/pricing.js:826 -#: templates/js/translated/pricing.js:950 -#: templates/js/translated/purchase_order.js:1801 -#: templates/js/translated/stock.js:2905 +#: templates/js/translated/part.js:1092 templates/js/translated/pricing.js:824 +#: templates/js/translated/pricing.js:948 +#: templates/js/translated/purchase_order.js:1785 +#: templates/js/translated/stock.js:2906 msgid "Date" msgstr "" -#: part/models.py:3290 +#: part/models.py:3341 msgid "Date stocktake was performed" msgstr "" -#: part/models.py:3298 +#: part/models.py:3349 msgid "Additional notes" msgstr "" -#: part/models.py:3308 +#: part/models.py:3359 msgid "User who performed this stocktake" msgstr "" -#: part/models.py:3314 +#: part/models.py:3365 msgid "Minimum Stock Cost" msgstr "" -#: part/models.py:3315 +#: part/models.py:3366 msgid "Estimated minimum cost of stock on hand" msgstr "" -#: part/models.py:3321 +#: part/models.py:3372 msgid "Maximum Stock Cost" msgstr "" -#: part/models.py:3322 +#: part/models.py:3373 msgid "Estimated maximum cost of stock on hand" msgstr "" -#: part/models.py:3378 templates/InvenTree/settings/settings_staff_js.html:532 +#: part/models.py:3429 templates/InvenTree/settings/settings_staff_js.html:532 msgid "Report" msgstr "" -#: part/models.py:3379 +#: part/models.py:3430 msgid "Stocktake report file (generated internally)" msgstr "" -#: part/models.py:3384 templates/InvenTree/settings/settings_staff_js.html:539 +#: part/models.py:3435 templates/InvenTree/settings/settings_staff_js.html:539 msgid "Part Count" msgstr "" -#: part/models.py:3385 +#: part/models.py:3436 msgid "Number of parts covered by stocktake" msgstr "" -#: part/models.py:3395 +#: part/models.py:3446 msgid "User who requested this stocktake report" msgstr "" -#: part/models.py:3405 +#: part/models.py:3456 msgid "Part Sale Price Break" msgstr "" -#: part/models.py:3517 +#: part/models.py:3568 msgid "Part Test Template" msgstr "" -#: part/models.py:3543 +#: part/models.py:3594 msgid "Invalid template name - must include at least one alphanumeric character" msgstr "" -#: part/models.py:3564 part/models.py:3733 +#: part/models.py:3615 part/models.py:3784 msgid "Choices must be unique" msgstr "" -#: part/models.py:3575 -msgid "Test templates can only be created for trackable parts" +#: part/models.py:3626 +msgid "Test templates can only be created for testable parts" msgstr "" -#: part/models.py:3586 +#: part/models.py:3637 msgid "Test template with the same key already exists for part" msgstr "" -#: part/models.py:3603 templates/js/translated/part.js:2898 +#: part/models.py:3654 templates/js/translated/part.js:2898 msgid "Test Name" msgstr "" -#: part/models.py:3604 +#: part/models.py:3655 msgid "Enter a name for the test" msgstr "" -#: part/models.py:3610 +#: part/models.py:3661 msgid "Test Key" msgstr "" -#: part/models.py:3611 +#: part/models.py:3662 msgid "Simplified key for the test" msgstr "" -#: part/models.py:3618 +#: part/models.py:3669 msgid "Test Description" msgstr "" -#: part/models.py:3619 +#: part/models.py:3670 msgid "Enter description for this test" msgstr "" -#: part/models.py:3623 report/models.py:208 +#: part/models.py:3674 report/models.py:216 #: templates/js/translated/part.js:2919 #: templates/js/translated/table_filters.js:502 msgid "Enabled" msgstr "" -#: part/models.py:3623 +#: part/models.py:3674 msgid "Is this test enabled?" msgstr "" -#: part/models.py:3628 templates/js/translated/part.js:2927 +#: part/models.py:3679 templates/js/translated/part.js:2927 #: templates/js/translated/table_filters.js:498 msgid "Required" msgstr "" -#: part/models.py:3629 +#: part/models.py:3680 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:3634 templates/js/translated/part.js:2935 +#: part/models.py:3685 templates/js/translated/part.js:2935 msgid "Requires Value" msgstr "" -#: part/models.py:3635 +#: part/models.py:3686 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:3640 templates/js/translated/part.js:2942 +#: part/models.py:3691 templates/js/translated/part.js:2942 msgid "Requires Attachment" msgstr "" -#: part/models.py:3642 +#: part/models.py:3693 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:3648 part/models.py:3792 templates/js/translated/part.js:1643 +#: part/models.py:3699 part/models.py:3843 templates/js/translated/part.js:1643 msgid "Choices" msgstr "" -#: part/models.py:3649 +#: part/models.py:3700 msgid "Valid choices for this test (comma-separated)" msgstr "" -#: part/models.py:3681 +#: part/models.py:3732 msgid "Part Parameter Template" msgstr "" -#: part/models.py:3708 +#: part/models.py:3759 msgid "Checkbox parameters cannot have units" msgstr "" -#: part/models.py:3713 +#: part/models.py:3764 msgid "Checkbox parameters cannot have choices" msgstr "" -#: part/models.py:3750 +#: part/models.py:3801 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:3765 +#: part/models.py:3816 msgid "Parameter Name" msgstr "" -#: part/models.py:3772 +#: part/models.py:3823 msgid "Physical units for this parameter" msgstr "" -#: part/models.py:3780 +#: part/models.py:3831 msgid "Parameter description" msgstr "" -#: part/models.py:3786 templates/js/translated/part.js:1634 +#: part/models.py:3837 templates/js/translated/part.js:1634 #: templates/js/translated/table_filters.js:837 msgid "Checkbox" msgstr "" -#: part/models.py:3787 +#: part/models.py:3838 msgid "Is this parameter a checkbox?" msgstr "" -#: part/models.py:3793 +#: part/models.py:3844 msgid "Valid choices for this parameter (comma-separated)" msgstr "" -#: part/models.py:3827 +#: part/models.py:3881 msgid "Part Parameter" msgstr "" -#: part/models.py:3853 +#: part/models.py:3907 msgid "Parameter cannot be modified - part is locked" msgstr "" -#: part/models.py:3889 +#: part/models.py:3945 msgid "Invalid choice for parameter value" msgstr "" -#: part/models.py:3938 +#: part/models.py:3996 msgid "Parent Part" msgstr "" -#: part/models.py:3946 part/models.py:4054 part/models.py:4055 +#: part/models.py:4004 part/models.py:4112 part/models.py:4113 #: templates/InvenTree/settings/settings_staff_js.html:295 msgid "Parameter Template" msgstr "" -#: part/models.py:3952 +#: part/models.py:4010 msgid "Parameter Value" msgstr "" -#: part/models.py:4002 +#: part/models.py:4060 msgid "Part Category Parameter Template" msgstr "" -#: part/models.py:4061 templates/InvenTree/settings/settings_staff_js.html:304 +#: part/models.py:4119 templates/InvenTree/settings/settings_staff_js.html:304 msgid "Default Value" msgstr "" -#: part/models.py:4062 +#: part/models.py:4120 msgid "Default Parameter Value" msgstr "" -#: part/models.py:4100 +#: part/models.py:4158 msgid "Part ID or part name" msgstr "" -#: part/models.py:4101 +#: part/models.py:4159 msgid "Unique part ID value" msgstr "" -#: part/models.py:4103 +#: part/models.py:4161 msgid "Part IPN value" msgstr "" -#: part/models.py:4104 +#: part/models.py:4162 msgid "Level" msgstr "" -#: part/models.py:4104 +#: part/models.py:4162 msgid "BOM level" msgstr "" -#: part/models.py:4215 +#: part/models.py:4272 msgid "BOM item cannot be modified - assembly is locked" msgstr "" -#: part/models.py:4222 +#: part/models.py:4279 msgid "BOM item cannot be modified - variant assembly is locked" msgstr "" -#: part/models.py:4232 +#: part/models.py:4289 msgid "Select parent part" msgstr "" -#: part/models.py:4242 +#: part/models.py:4299 msgid "Sub part" msgstr "" -#: part/models.py:4243 +#: part/models.py:4300 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:4254 +#: part/models.py:4311 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:4260 +#: part/models.py:4317 msgid "This BOM item is optional" msgstr "" -#: part/models.py:4266 +#: part/models.py:4323 msgid "This BOM item is consumable (it is not tracked in build orders)" msgstr "" -#: part/models.py:4273 part/templates/part/upload_bom.html:55 +#: part/models.py:4330 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "" -#: part/models.py:4274 +#: part/models.py:4331 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:4281 +#: part/models.py:4338 msgid "BOM item reference" msgstr "" -#: part/models.py:4289 +#: part/models.py:4346 msgid "BOM item notes" msgstr "" -#: part/models.py:4295 +#: part/models.py:4352 msgid "Checksum" msgstr "" -#: part/models.py:4296 +#: part/models.py:4353 msgid "BOM line checksum" msgstr "" -#: part/models.py:4301 templates/js/translated/table_filters.js:181 +#: part/models.py:4358 templates/js/translated/table_filters.js:181 msgid "Validated" msgstr "" -#: part/models.py:4302 +#: part/models.py:4359 msgid "This BOM item has been validated" msgstr "" -#: part/models.py:4307 part/templates/part/upload_bom.html:57 +#: part/models.py:4364 part/templates/part/upload_bom.html:57 #: templates/js/translated/bom.js:1054 #: templates/js/translated/table_filters.js:185 #: templates/js/translated/table_filters.js:218 msgid "Gets inherited" msgstr "" -#: part/models.py:4308 +#: part/models.py:4365 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:4314 +#: part/models.py:4371 msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:4399 stock/models.py:685 +#: part/models.py:4456 stock/models.py:762 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:4409 part/models.py:4411 +#: part/models.py:4466 part/models.py:4468 msgid "Sub part must be specified" msgstr "" -#: part/models.py:4551 +#: part/models.py:4613 msgid "BOM Item Substitute" msgstr "" -#: part/models.py:4572 +#: part/models.py:4634 msgid "Substitute part cannot be the same as the master part" msgstr "" -#: part/models.py:4585 +#: part/models.py:4647 msgid "Parent BOM item" msgstr "" -#: part/models.py:4593 +#: part/models.py:4655 msgid "Substitute part" msgstr "" -#: part/models.py:4609 +#: part/models.py:4671 msgid "Part 1" msgstr "" -#: part/models.py:4617 +#: part/models.py:4679 msgid "Part 2" msgstr "" -#: part/models.py:4618 +#: part/models.py:4680 msgid "Select Related Part" msgstr "" -#: part/models.py:4637 +#: part/models.py:4699 msgid "Part relationship cannot be created between a part and itself" msgstr "" -#: part/models.py:4642 +#: part/models.py:4704 msgid "Duplicate relationship already exists" msgstr "" @@ -7449,340 +7662,352 @@ msgstr "" msgid "Number of results recorded against this template" msgstr "" -#: part/serializers.py:225 part/serializers.py:243 stock/serializers.py:616 +#: part/serializers.py:225 part/serializers.py:243 stock/serializers.py:643 msgid "Purchase currency of this stock item" msgstr "" -#: part/serializers.py:291 +#: part/serializers.py:268 +msgid "Speculative Quantity" +msgstr "" + +#: part/serializers.py:277 +msgid "Model ID" +msgstr "" + +#: part/serializers.py:324 msgid "Number of parts using this template" msgstr "" -#: part/serializers.py:421 +#: part/serializers.py:465 msgid "No parts selected" msgstr "" -#: part/serializers.py:431 +#: part/serializers.py:475 msgid "Select category" msgstr "" -#: part/serializers.py:466 +#: part/serializers.py:510 msgid "Original Part" msgstr "" -#: part/serializers.py:467 +#: part/serializers.py:511 msgid "Select original part to duplicate" msgstr "" -#: part/serializers.py:472 +#: part/serializers.py:516 msgid "Copy Image" msgstr "" -#: part/serializers.py:473 +#: part/serializers.py:517 msgid "Copy image from original part" msgstr "" -#: part/serializers.py:479 part/templates/part/detail.html:293 +#: part/serializers.py:523 part/templates/part/detail.html:293 msgid "Copy BOM" msgstr "" -#: part/serializers.py:480 +#: part/serializers.py:524 msgid "Copy bill of materials from original part" msgstr "" -#: part/serializers.py:486 +#: part/serializers.py:530 msgid "Copy Parameters" msgstr "" -#: part/serializers.py:487 +#: part/serializers.py:531 msgid "Copy parameter data from original part" msgstr "" -#: part/serializers.py:493 +#: part/serializers.py:537 msgid "Copy Notes" msgstr "" -#: part/serializers.py:494 +#: part/serializers.py:538 msgid "Copy notes from original part" msgstr "" -#: part/serializers.py:512 +#: part/serializers.py:556 msgid "Initial Stock Quantity" msgstr "" -#: part/serializers.py:514 +#: part/serializers.py:558 msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added." msgstr "" -#: part/serializers.py:521 +#: part/serializers.py:565 msgid "Initial Stock Location" msgstr "" -#: part/serializers.py:522 +#: part/serializers.py:566 msgid "Specify initial stock location for this Part" msgstr "" -#: part/serializers.py:539 +#: part/serializers.py:583 msgid "Select supplier (or leave blank to skip)" msgstr "" -#: part/serializers.py:555 +#: part/serializers.py:599 msgid "Select manufacturer (or leave blank to skip)" msgstr "" -#: part/serializers.py:565 +#: part/serializers.py:609 msgid "Manufacturer part number" msgstr "" -#: part/serializers.py:572 +#: part/serializers.py:616 msgid "Selected company is not a valid supplier" msgstr "" -#: part/serializers.py:581 +#: part/serializers.py:625 msgid "Selected company is not a valid manufacturer" msgstr "" -#: part/serializers.py:592 +#: part/serializers.py:636 msgid "Manufacturer part matching this MPN already exists" msgstr "" -#: part/serializers.py:599 +#: part/serializers.py:643 msgid "Supplier part matching this SKU already exists" msgstr "" -#: part/serializers.py:903 +#: part/serializers.py:955 msgid "Revisions" msgstr "" -#: part/serializers.py:908 +#: part/serializers.py:960 msgid "Unallocated Stock" msgstr "" -#: part/serializers.py:911 +#: part/serializers.py:963 msgid "Variant Stock" msgstr "" -#: part/serializers.py:941 part/templates/part/copy_part.html:9 +#: part/serializers.py:993 part/templates/part/copy_part.html:9 #: templates/js/translated/part.js:474 msgid "Duplicate Part" msgstr "" -#: part/serializers.py:942 +#: part/serializers.py:994 msgid "Copy initial data from another Part" msgstr "" -#: part/serializers.py:948 templates/js/translated/part.js:103 +#: part/serializers.py:1000 templates/js/translated/part.js:103 msgid "Initial Stock" msgstr "" -#: part/serializers.py:949 +#: part/serializers.py:1001 msgid "Create Part with initial stock quantity" msgstr "" -#: part/serializers.py:955 +#: part/serializers.py:1007 msgid "Supplier Information" msgstr "" -#: part/serializers.py:956 +#: part/serializers.py:1008 msgid "Add initial supplier information for this part" msgstr "" -#: part/serializers.py:964 +#: part/serializers.py:1016 msgid "Copy Category Parameters" msgstr "" -#: part/serializers.py:965 +#: part/serializers.py:1017 msgid "Copy parameter templates from selected part category" msgstr "" -#: part/serializers.py:970 +#: part/serializers.py:1022 msgid "Existing Image" msgstr "" -#: part/serializers.py:971 +#: part/serializers.py:1023 msgid "Filename of an existing part image" msgstr "" -#: part/serializers.py:988 +#: part/serializers.py:1040 msgid "Image file does not exist" msgstr "" -#: part/serializers.py:1194 +#: part/serializers.py:1247 msgid "Limit stocktake report to a particular part, and any variant parts" msgstr "" -#: part/serializers.py:1204 +#: part/serializers.py:1257 msgid "Limit stocktake report to a particular part category, and any child categories" msgstr "" -#: part/serializers.py:1214 +#: part/serializers.py:1267 msgid "Limit stocktake report to a particular stock location, and any child locations" msgstr "" -#: part/serializers.py:1220 +#: part/serializers.py:1273 msgid "Exclude External Stock" msgstr "" -#: part/serializers.py:1221 +#: part/serializers.py:1274 msgid "Exclude stock items in external locations" msgstr "" -#: part/serializers.py:1226 +#: part/serializers.py:1279 msgid "Generate Report" msgstr "" -#: part/serializers.py:1227 +#: part/serializers.py:1280 msgid "Generate report file containing calculated stocktake data" msgstr "" -#: part/serializers.py:1232 +#: part/serializers.py:1285 msgid "Update Parts" msgstr "" -#: part/serializers.py:1233 +#: part/serializers.py:1286 msgid "Update specified parts with calculated stocktake data" msgstr "" -#: part/serializers.py:1241 +#: part/serializers.py:1294 msgid "Stocktake functionality is not enabled" msgstr "" -#: part/serializers.py:1347 +#: part/serializers.py:1299 +msgid "Background worker check failed" +msgstr "" + +#: part/serializers.py:1401 msgid "Override calculated value for minimum price" msgstr "" -#: part/serializers.py:1354 +#: part/serializers.py:1408 msgid "Minimum price currency" msgstr "" -#: part/serializers.py:1362 +#: part/serializers.py:1416 msgid "Override calculated value for maximum price" msgstr "" -#: part/serializers.py:1369 +#: part/serializers.py:1423 msgid "Maximum price currency" msgstr "" -#: part/serializers.py:1398 +#: part/serializers.py:1452 msgid "Update" msgstr "" -#: part/serializers.py:1399 +#: part/serializers.py:1453 msgid "Update pricing for this part" msgstr "" -#: part/serializers.py:1422 +#: part/serializers.py:1476 #, python-brace-format msgid "Could not convert from provided currencies to {default_currency}" msgstr "" -#: part/serializers.py:1429 +#: part/serializers.py:1483 msgid "Minimum price must not be greater than maximum price" msgstr "" -#: part/serializers.py:1432 +#: part/serializers.py:1486 msgid "Maximum price must not be less than minimum price" msgstr "" -#: part/serializers.py:1576 +#: part/serializers.py:1634 msgid "Select the parent assembly" msgstr "" -#: part/serializers.py:1585 +#: part/serializers.py:1643 msgid "Component Name" msgstr "" -#: part/serializers.py:1588 +#: part/serializers.py:1646 msgid "Component IPN" msgstr "" -#: part/serializers.py:1591 +#: part/serializers.py:1649 msgid "Component Description" msgstr "" -#: part/serializers.py:1597 +#: part/serializers.py:1655 msgid "Select the component part" msgstr "" -#: part/serializers.py:1606 part/templates/part/part_base.html:235 +#: part/serializers.py:1664 part/templates/part/part_base.html:243 #: templates/js/translated/bom.js:1219 msgid "Can Build" msgstr "" -#: part/serializers.py:1837 +#: part/serializers.py:1899 msgid "Select part to copy BOM from" msgstr "" -#: part/serializers.py:1845 +#: part/serializers.py:1907 msgid "Remove Existing Data" msgstr "" -#: part/serializers.py:1846 +#: part/serializers.py:1908 msgid "Remove existing BOM items before copying" msgstr "" -#: part/serializers.py:1851 +#: part/serializers.py:1913 msgid "Include Inherited" msgstr "" -#: part/serializers.py:1852 +#: part/serializers.py:1914 msgid "Include BOM items which are inherited from templated parts" msgstr "" -#: part/serializers.py:1857 +#: part/serializers.py:1919 msgid "Skip Invalid Rows" msgstr "" -#: part/serializers.py:1858 +#: part/serializers.py:1920 msgid "Enable this option to skip invalid rows" msgstr "" -#: part/serializers.py:1863 +#: part/serializers.py:1925 msgid "Copy Substitute Parts" msgstr "" -#: part/serializers.py:1864 +#: part/serializers.py:1926 msgid "Copy substitute parts when duplicate BOM items" msgstr "" -#: part/serializers.py:1901 +#: part/serializers.py:1963 msgid "Clear Existing BOM" msgstr "" -#: part/serializers.py:1902 +#: part/serializers.py:1964 msgid "Delete existing BOM items before uploading" msgstr "" -#: part/serializers.py:1934 +#: part/serializers.py:1996 msgid "No part column specified" msgstr "" -#: part/serializers.py:1978 +#: part/serializers.py:2040 msgid "Multiple matching parts found" msgstr "" -#: part/serializers.py:1981 +#: part/serializers.py:2043 msgid "No matching part found" msgstr "" -#: part/serializers.py:1984 +#: part/serializers.py:2045 msgid "Part is not designated as a component" msgstr "" -#: part/serializers.py:1993 +#: part/serializers.py:2054 msgid "Quantity not provided" msgstr "" -#: part/serializers.py:2001 +#: part/serializers.py:2062 msgid "Invalid quantity" msgstr "" -#: part/serializers.py:2024 +#: part/serializers.py:2085 msgid "At least one BOM item is required" msgstr "" #: part/stocktake.py:224 templates/js/translated/part.js:1073 #: templates/js/translated/part.js:1828 templates/js/translated/part.js:1884 -#: templates/js/translated/purchase_order.js:2154 +#: templates/js/translated/purchase_order.js:2138 msgid "Total Quantity" msgstr "" @@ -7932,9 +8157,9 @@ msgid "Add stocktake information" msgstr "" #: part/templates/part/detail.html:67 part/templates/part/part_sidebar.html:50 -#: stock/admin.py:255 templates/InvenTree/settings/part_stocktake.html:30 +#: stock/admin.py:256 templates/InvenTree/settings/part_stocktake.html:30 #: templates/InvenTree/settings/sidebar.html:53 -#: templates/js/translated/stock.js:2301 users/models.py:204 +#: templates/js/translated/stock.js:2302 users/models.py:204 msgid "Stocktake" msgstr "" @@ -8093,142 +8318,146 @@ msgstr "" msgid "Part List" msgstr "" -#: part/templates/part/part_base.html:25 part/templates/part/part_base.html:29 +#: part/templates/part/part_base.html:26 part/templates/part/part_base.html:30 msgid "You are subscribed to notifications for this part" msgstr "" -#: part/templates/part/part_base.html:33 +#: part/templates/part/part_base.html:34 msgid "Subscribe to notifications for this part" msgstr "" -#: part/templates/part/part_base.html:52 +#: part/templates/part/part_base.html:53 #: stock/templates/stock/item_base.html:62 -#: stock/templates/stock/location.html:71 templates/js/translated/label.js:136 +#: stock/templates/stock/location.html:72 templates/js/translated/label.js:136 msgid "Print Label" msgstr "" -#: part/templates/part/part_base.html:58 +#: part/templates/part/part_base.html:59 msgid "Show pricing information" msgstr "" -#: part/templates/part/part_base.html:63 -#: stock/templates/stock/item_base.html:110 -#: stock/templates/stock/location.html:80 +#: part/templates/part/part_base.html:64 +#: stock/templates/stock/item_base.html:107 +#: stock/templates/stock/location.html:81 msgid "Stock actions" msgstr "" -#: part/templates/part/part_base.html:70 +#: part/templates/part/part_base.html:71 msgid "Count part stock" msgstr "" -#: part/templates/part/part_base.html:76 +#: part/templates/part/part_base.html:77 msgid "Transfer part stock" msgstr "" -#: part/templates/part/part_base.html:91 templates/js/translated/part.js:2299 +#: part/templates/part/part_base.html:92 templates/js/translated/part.js:2299 msgid "Part actions" msgstr "" -#: part/templates/part/part_base.html:94 +#: part/templates/part/part_base.html:95 msgid "Duplicate part" msgstr "" -#: part/templates/part/part_base.html:97 +#: part/templates/part/part_base.html:98 msgid "Edit part" msgstr "" -#: part/templates/part/part_base.html:100 +#: part/templates/part/part_base.html:101 msgid "Delete part" msgstr "" -#: part/templates/part/part_base.html:119 +#: part/templates/part/part_base.html:120 msgid "Part is a template part (variants can be made from this part)" msgstr "" -#: part/templates/part/part_base.html:123 +#: part/templates/part/part_base.html:124 msgid "Part can be assembled from other parts" msgstr "" -#: part/templates/part/part_base.html:127 +#: part/templates/part/part_base.html:128 msgid "Part can be used in assemblies" msgstr "" -#: part/templates/part/part_base.html:131 +#: part/templates/part/part_base.html:132 msgid "Part stock is tracked by serial number" msgstr "" -#: part/templates/part/part_base.html:135 +#: part/templates/part/part_base.html:136 msgid "Part can be purchased from external suppliers" msgstr "" -#: part/templates/part/part_base.html:139 +#: part/templates/part/part_base.html:140 msgid "Part can be sold to customers" msgstr "" -#: part/templates/part/part_base.html:145 +#: part/templates/part/part_base.html:146 msgid "Part is not active" msgstr "" -#: part/templates/part/part_base.html:153 +#: part/templates/part/part_base.html:154 msgid "Part is virtual (not a physical part)" msgstr "" -#: part/templates/part/part_base.html:163 -#: part/templates/part/part_base.html:690 +#: part/templates/part/part_base.html:164 +#: part/templates/part/part_base.html:698 msgid "Show Part Details" msgstr "" #: part/templates/part/part_base.html:218 -#: stock/templates/stock/item_base.html:388 +msgid "Required for Orders" +msgstr "" + +#: part/templates/part/part_base.html:226 +#: stock/templates/stock/item_base.html:385 msgid "Allocated to Build Orders" msgstr "" -#: part/templates/part/part_base.html:227 -#: stock/templates/stock/item_base.html:381 +#: part/templates/part/part_base.html:235 +#: stock/templates/stock/item_base.html:378 msgid "Allocated to Sales Orders" msgstr "" -#: part/templates/part/part_base.html:300 +#: part/templates/part/part_base.html:308 msgid "Minimum stock level" msgstr "" -#: part/templates/part/part_base.html:331 templates/js/translated/bom.js:1071 +#: part/templates/part/part_base.html:339 templates/js/translated/bom.js:1071 #: templates/js/translated/part.js:1271 templates/js/translated/part.js:2463 #: templates/js/translated/pricing.js:391 -#: templates/js/translated/pricing.js:1054 +#: templates/js/translated/pricing.js:1052 msgid "Price Range" msgstr "" -#: part/templates/part/part_base.html:361 +#: part/templates/part/part_base.html:369 msgid "Latest Serial Number" msgstr "" -#: part/templates/part/part_base.html:365 -#: stock/templates/stock/item_base.html:322 +#: part/templates/part/part_base.html:373 +#: stock/templates/stock/item_base.html:319 msgid "Search for serial number" msgstr "" -#: part/templates/part/part_base.html:453 +#: part/templates/part/part_base.html:461 msgid "Part QR Code" msgstr "" -#: part/templates/part/part_base.html:470 +#: part/templates/part/part_base.html:478 msgid "Link Barcode to Part" msgstr "" -#: part/templates/part/part_base.html:520 +#: part/templates/part/part_base.html:528 msgid "Calculate" msgstr "" -#: part/templates/part/part_base.html:537 +#: part/templates/part/part_base.html:545 msgid "Remove associated image from this part" msgstr "" -#: part/templates/part/part_base.html:588 +#: part/templates/part/part_base.html:596 msgid "No matching images found" msgstr "" -#: part/templates/part/part_base.html:684 +#: part/templates/part/part_base.html:692 msgid "Hide Part Details" msgstr "" @@ -8282,13 +8511,13 @@ msgid "Variants" msgstr "" #: part/templates/part/part_sidebar.html:14 -#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:21 +#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:22 #: stock/templates/stock/stock_app_base.html:10 #: templates/InvenTree/search.html:153 #: templates/InvenTree/settings/sidebar.html:51 #: templates/js/translated/part.js:1249 templates/js/translated/part.js:2152 #: templates/js/translated/part.js:2411 templates/js/translated/stock.js:1066 -#: templates/js/translated/stock.js:2155 templates/navbar.html:31 +#: templates/js/translated/stock.js:2156 templates/navbar.html:31 msgid "Stock" msgstr "" @@ -8324,17 +8553,17 @@ msgstr "" #: part/templates/part/prices.html:18 #: templates/InvenTree/settings/settings_staff_js.html:80 #: templates/InvenTree/settings/user.html:24 -#: templates/js/translated/helpers.js:103 +#: templates/js/translated/helpers.js:104 #: templates/js/translated/pricing.js:628 templates/notes_buttons.html:3 #: templates/notes_buttons.html:4 msgid "Edit" msgstr "" -#: part/templates/part/prices.html:28 stock/admin.py:251 -#: stock/templates/stock/item_base.html:446 -#: templates/js/translated/company.js:1703 -#: templates/js/translated/company.js:1713 -#: templates/js/translated/stock.js:2331 +#: part/templates/part/prices.html:28 stock/admin.py:252 +#: stock/templates/stock/item_base.html:443 +#: templates/js/translated/company.js:1704 +#: templates/js/translated/company.js:1714 +#: templates/js/translated/stock.js:2332 msgid "Last Updated" msgstr "" @@ -8406,7 +8635,7 @@ msgid "Update Pricing" msgstr "" #: part/templates/part/stock_count.html:7 -#: templates/js/translated/model_renderers.js:228 +#: templates/js/translated/model_renderers.js:231 #: templates/js/translated/part.js:707 templates/js/translated/part.js:2147 #: templates/js/translated/part.js:2149 msgid "No Stock" @@ -8486,7 +8715,7 @@ msgstr "" msgid "Part Pricing" msgstr "" -#: plugin/api.py:172 +#: plugin/api.py:175 msgid "Plugin cannot be deleted as it is currently active" msgstr "" @@ -8498,78 +8727,85 @@ msgstr "" msgid "No matching action found" msgstr "" -#: plugin/base/barcodes/api.py:125 plugin/base/barcodes/api.py:371 -#: plugin/base/barcodes/api.py:546 +#: plugin/base/barcodes/api.py:203 msgid "No match found for barcode data" msgstr "" -#: plugin/base/barcodes/api.py:129 +#: plugin/base/barcodes/api.py:207 msgid "Match found for barcode data" msgstr "" -#: plugin/base/barcodes/api.py:163 plugin/base/barcodes/serializers.py:45 +#: plugin/base/barcodes/api.py:245 plugin/base/barcodes/serializers.py:72 msgid "Model is not supported" msgstr "" -#: plugin/base/barcodes/api.py:168 +#: plugin/base/barcodes/api.py:250 msgid "Model instance not found" msgstr "" -#: plugin/base/barcodes/api.py:197 -#: templates/js/translated/purchase_order.js:1468 +#: plugin/base/barcodes/api.py:279 +#: templates/js/translated/purchase_order.js:1452 msgid "Barcode matches existing item" msgstr "" -#: plugin/base/barcodes/api.py:336 +#: plugin/base/barcodes/api.py:418 msgid "No matching part data found" msgstr "" -#: plugin/base/barcodes/api.py:353 +#: plugin/base/barcodes/api.py:434 msgid "No matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:357 +#: plugin/base/barcodes/api.py:437 msgid "Multiple matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:381 +#: plugin/base/barcodes/api.py:450 plugin/base/barcodes/api.py:664 +msgid "No matching plugin found for barcode data" +msgstr "" + +#: plugin/base/barcodes/api.py:460 msgid "Matched supplier part" msgstr "" -#: plugin/base/barcodes/api.py:430 +#: plugin/base/barcodes/api.py:525 msgid "Item has already been received" msgstr "" -#: plugin/base/barcodes/api.py:467 +#: plugin/base/barcodes/api.py:563 msgid "No match for supplier barcode" msgstr "" -#: plugin/base/barcodes/api.py:510 +#: plugin/base/barcodes/api.py:612 msgid "Multiple matching line items found" msgstr "" -#: plugin/base/barcodes/api.py:513 +#: plugin/base/barcodes/api.py:615 msgid "No matching line item found" msgstr "" -#: plugin/base/barcodes/api.py:551 plugin/base/barcodes/api.py:558 +#: plugin/base/barcodes/api.py:661 +msgid "No sales order provided" +msgstr "" + +#: plugin/base/barcodes/api.py:670 msgid "Barcode does not match an existing stock item" msgstr "" -#: plugin/base/barcodes/api.py:569 +#: plugin/base/barcodes/api.py:686 msgid "Stock item does not match line item" msgstr "" -#: plugin/base/barcodes/api.py:593 templates/js/translated/build.js:2780 -#: templates/js/translated/sales_order.js:1953 +#: plugin/base/barcodes/api.py:716 templates/js/translated/build.js:2798 +#: templates/js/translated/sales_order.js:1934 msgid "Insufficient stock available" msgstr "" -#: plugin/base/barcodes/api.py:602 +#: plugin/base/barcodes/api.py:729 msgid "Stock item allocated to sales order" msgstr "" -#: plugin/base/barcodes/api.py:606 +#: plugin/base/barcodes/api.py:732 msgid "Not enough information" msgstr "" @@ -8591,75 +8827,75 @@ msgstr "" msgid "Purchase order does not match supplier" msgstr "" -#: plugin/base/barcodes/mixins.py:465 +#: plugin/base/barcodes/mixins.py:467 msgid "Failed to find pending line item for supplier part" msgstr "" -#: plugin/base/barcodes/mixins.py:496 +#: plugin/base/barcodes/mixins.py:498 msgid "Further information required to receive line item" msgstr "" -#: plugin/base/barcodes/mixins.py:504 +#: plugin/base/barcodes/mixins.py:506 msgid "Received purchase order line item" msgstr "" -#: plugin/base/barcodes/serializers.py:21 +#: plugin/base/barcodes/serializers.py:48 msgid "Scanned barcode data" msgstr "" -#: plugin/base/barcodes/serializers.py:30 +#: plugin/base/barcodes/serializers.py:57 msgid "Model name to generate barcode for" msgstr "" -#: plugin/base/barcodes/serializers.py:35 +#: plugin/base/barcodes/serializers.py:62 msgid "Primary key of model object to generate barcode for" msgstr "" -#: plugin/base/barcodes/serializers.py:105 +#: plugin/base/barcodes/serializers.py:132 msgid "Purchase Order to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:111 +#: plugin/base/barcodes/serializers.py:138 msgid "Purchase order is not pending" msgstr "" -#: plugin/base/barcodes/serializers.py:129 +#: plugin/base/barcodes/serializers.py:156 msgid "PurchaseOrder to receive items against" msgstr "" -#: plugin/base/barcodes/serializers.py:135 +#: plugin/base/barcodes/serializers.py:162 msgid "Purchase order has not been placed" msgstr "" -#: plugin/base/barcodes/serializers.py:143 +#: plugin/base/barcodes/serializers.py:170 msgid "Location to receive items into" msgstr "" -#: plugin/base/barcodes/serializers.py:149 +#: plugin/base/barcodes/serializers.py:176 msgid "Cannot select a structural location" msgstr "" -#: plugin/base/barcodes/serializers.py:163 +#: plugin/base/barcodes/serializers.py:190 msgid "Sales Order to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:169 +#: plugin/base/barcodes/serializers.py:196 msgid "Sales order is not pending" msgstr "" -#: plugin/base/barcodes/serializers.py:177 +#: plugin/base/barcodes/serializers.py:204 msgid "Sales order line item to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:184 +#: plugin/base/barcodes/serializers.py:211 msgid "Sales order shipment to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:190 +#: plugin/base/barcodes/serializers.py:217 msgid "Shipment has already been delivered" msgstr "" -#: plugin/base/barcodes/serializers.py:195 +#: plugin/base/barcodes/serializers.py:222 msgid "Quantity to allocate" msgstr "" @@ -8679,6 +8915,42 @@ msgstr "" msgid "No items provided to print" msgstr "" +#: plugin/base/ui/serializers.py:30 +msgid "Plugin Name" +msgstr "" + +#: plugin/base/ui/serializers.py:34 +msgid "Feature Type" +msgstr "" + +#: plugin/base/ui/serializers.py:39 +msgid "Feature Label" +msgstr "" + +#: plugin/base/ui/serializers.py:44 +msgid "Feature Title" +msgstr "" + +#: plugin/base/ui/serializers.py:49 +msgid "Feature Description" +msgstr "" + +#: plugin/base/ui/serializers.py:54 +msgid "Feature Icon" +msgstr "" + +#: plugin/base/ui/serializers.py:58 +msgid "Feature Options" +msgstr "" + +#: plugin/base/ui/serializers.py:61 +msgid "Feature Context" +msgstr "" + +#: plugin/base/ui/serializers.py:64 +msgid "Feature Source (javascript)" +msgstr "" + #: plugin/builtin/barcodes/inventree_barcode.py:27 msgid "InvenTree Barcodes" msgstr "" @@ -8756,7 +9028,7 @@ msgstr "" msgid "URL that is used to send messages to a slack channel" msgstr "" -#: plugin/builtin/integration/core_notifications.py:164 +#: plugin/builtin/integration/core_notifications.py:166 msgid "Open link" msgstr "" @@ -8794,11 +9066,11 @@ msgstr "" msgid "Provides support for printing using a machine" msgstr "" -#: plugin/builtin/labels/inventree_machine.py:149 +#: plugin/builtin/labels/inventree_machine.py:151 msgid "last used" msgstr "" -#: plugin/builtin/labels/inventree_machine.py:166 +#: plugin/builtin/labels/inventree_machine.py:168 msgid "Options" msgstr "" @@ -8822,7 +9094,7 @@ msgstr "" msgid "Print a border around each label" msgstr "" -#: plugin/builtin/labels/label_sheet.py:47 report/models.py:307 +#: plugin/builtin/labels/label_sheet.py:47 report/models.py:315 msgid "Landscape" msgstr "" @@ -8894,19 +9166,19 @@ msgstr "" msgid "The Supplier which acts as 'TME'" msgstr "" -#: plugin/installer.py:194 plugin/installer.py:282 +#: plugin/installer.py:199 plugin/installer.py:282 msgid "Only staff users can administer plugins" msgstr "" -#: plugin/installer.py:197 +#: plugin/installer.py:202 msgid "Plugin installation is disabled" msgstr "" -#: plugin/installer.py:248 +#: plugin/installer.py:246 msgid "Installed plugin successfully" msgstr "" -#: plugin/installer.py:254 +#: plugin/installer.py:251 #, python-brace-format msgid "Installed plugin into {path}" msgstr "" @@ -8943,10 +9215,6 @@ msgstr "" msgid "Plugin Configurations" msgstr "" -#: plugin/models.py:43 users/models.py:100 -msgid "Key" -msgstr "" - #: plugin/models.py:44 msgid "Key of plugin" msgstr "" @@ -8955,7 +9223,7 @@ msgstr "" msgid "PluginName of the plugin" msgstr "" -#: plugin/models.py:59 plugin/serializers.py:90 +#: plugin/models.py:59 plugin/serializers.py:115 msgid "Package Name" msgstr "" @@ -8984,17 +9252,17 @@ msgstr "" msgid "Package Plugin" msgstr "" -#: plugin/models.py:220 report/models.py:474 +#: plugin/models.py:259 report/models.py:482 #: templates/InvenTree/settings/plugin_settings.html:9 #: templates/js/translated/plugin.js:51 msgid "Plugin" msgstr "" -#: plugin/models.py:267 +#: plugin/models.py:306 msgid "Method" msgstr "" -#: plugin/plugin.py:270 +#: plugin/plugin.py:275 msgid "No author found" msgstr "" @@ -9053,81 +9321,157 @@ msgstr "" msgid "InvenTree Contributors" msgstr "" -#: plugin/serializers.py:81 -msgid "Source URL" +#: plugin/samples/integration/user_interface_sample.py:27 +msgid "Enable Part Panels" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:28 +msgid "Enable custom panels for Part views" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:33 +msgid "Enable Purchase Order Panels" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:34 +msgid "Enable custom panels for Purchase Order views" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:39 +msgid "Enable Broken Panels" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:40 +msgid "Enable broken panels for testing" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:45 +msgid "Enable Dynamic Panel" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:46 +msgid "Enable dynamic panels for testing" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:98 +msgid "Part Panel" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:131 +msgid "Broken Dashboard Item" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:133 +msgid "This is a broken dashboard item - it will not render!" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:139 +msgid "Sample Dashboard Item" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:141 +msgid "This is a sample dashboard item. It renders a simple string of HTML content." +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:147 +msgid "Context Dashboard Item" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:161 +msgid "Admin Dashboard Item" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:162 +msgid "This is an admin-only dashboard item." +msgstr "" + +#: plugin/serializers.py:82 +msgid "Source File" msgstr "" #: plugin/serializers.py:83 +msgid "Path to the source file for admin integration" +msgstr "" + +#: plugin/serializers.py:90 +msgid "Optional context data for the admin integration" +msgstr "" + +#: plugin/serializers.py:106 +msgid "Source URL" +msgstr "" + +#: plugin/serializers.py:108 msgid "Source for the package - this can be a custom registry or a VCS path" msgstr "" -#: plugin/serializers.py:92 +#: plugin/serializers.py:117 msgid "Name for the Plugin Package - can also contain a version indicator" msgstr "" -#: plugin/serializers.py:99 +#: plugin/serializers.py:124 #: templates/InvenTree/settings/plugin_settings.html:42 #: templates/js/translated/plugin.js:86 msgid "Version" msgstr "" -#: plugin/serializers.py:101 +#: plugin/serializers.py:126 msgid "Version specifier for the plugin. Leave blank for latest version." msgstr "" -#: plugin/serializers.py:106 +#: plugin/serializers.py:131 msgid "Confirm plugin installation" msgstr "" -#: plugin/serializers.py:108 +#: plugin/serializers.py:133 msgid "This will install this plugin now into the current instance. The instance will go into maintenance." msgstr "" -#: plugin/serializers.py:121 +#: plugin/serializers.py:146 msgid "Installation not confirmed" msgstr "" -#: plugin/serializers.py:123 +#: plugin/serializers.py:148 msgid "Either packagename of URL must be provided" msgstr "" -#: plugin/serializers.py:161 +#: plugin/serializers.py:184 msgid "Full reload" msgstr "" -#: plugin/serializers.py:162 +#: plugin/serializers.py:185 msgid "Perform a full reload of the plugin registry" msgstr "" -#: plugin/serializers.py:168 +#: plugin/serializers.py:191 msgid "Force reload" msgstr "" -#: plugin/serializers.py:170 +#: plugin/serializers.py:193 msgid "Force a reload of the plugin registry, even if it is already loaded" msgstr "" -#: plugin/serializers.py:177 +#: plugin/serializers.py:200 msgid "Collect plugins" msgstr "" -#: plugin/serializers.py:178 +#: plugin/serializers.py:201 msgid "Collect plugins and add them to the registry" msgstr "" -#: plugin/serializers.py:205 +#: plugin/serializers.py:228 msgid "Activate Plugin" msgstr "" -#: plugin/serializers.py:206 +#: plugin/serializers.py:229 msgid "Activate this plugin" msgstr "" -#: plugin/serializers.py:226 +#: plugin/serializers.py:249 msgid "Delete configuration" msgstr "" -#: plugin/serializers.py:227 +#: plugin/serializers.py:250 msgid "Delete the plugin configuration from the database" msgstr "" @@ -9135,11 +9479,11 @@ msgstr "" msgid "No valid objects provided to template" msgstr "" -#: report/api.py:103 report/models.py:438 report/serializers.py:98 -#: report/serializers.py:148 templates/js/translated/purchase_order.js:1817 +#: report/api.py:103 report/models.py:446 report/serializers.py:99 +#: report/serializers.py:149 templates/js/translated/purchase_order.js:1801 #: templates/js/translated/return_order.js:353 -#: templates/js/translated/sales_order.js:887 -#: templates/js/translated/sales_order.js:1047 +#: templates/js/translated/sales_order.js:846 +#: templates/js/translated/sales_order.js:1020 msgid "Items" msgstr "" @@ -9167,7 +9511,11 @@ msgstr "" msgid "Error printing label" msgstr "" -#: report/api.py:375 report/api.py:411 +#: report/api.py:358 +msgid "Report saved at time of printing" +msgstr "" + +#: report/api.py:384 report/api.py:420 #, python-brace-format msgid "Template file '{template}' is missing or does not exist" msgstr "" @@ -9204,135 +9552,143 @@ msgstr "" msgid "Revision number (auto-increments)" msgstr "" -#: report/models.py:202 +#: report/models.py:168 +msgid "Attach to Model on Print" +msgstr "" + +#: report/models.py:170 +msgid "Save report output as an attachment against linked model instance when printing" +msgstr "" + +#: report/models.py:210 msgid "Filename Pattern" msgstr "" -#: report/models.py:203 +#: report/models.py:211 msgid "Pattern for generating filenames" msgstr "" -#: report/models.py:208 +#: report/models.py:216 msgid "Template is enabled" msgstr "" -#: report/models.py:214 +#: report/models.py:222 msgid "Target model type for template" msgstr "" -#: report/models.py:234 +#: report/models.py:242 msgid "Filters" msgstr "" -#: report/models.py:235 +#: report/models.py:243 msgid "Template query filters (comma-separated list of key=value pairs)" msgstr "" -#: report/models.py:294 report/models.py:361 +#: report/models.py:302 report/models.py:369 msgid "Template file" msgstr "" -#: report/models.py:302 +#: report/models.py:310 msgid "Page size for PDF reports" msgstr "" -#: report/models.py:308 +#: report/models.py:316 msgid "Render report in landscape orientation" msgstr "" -#: report/models.py:367 +#: report/models.py:375 msgid "Width [mm]" msgstr "" -#: report/models.py:368 +#: report/models.py:376 msgid "Label width, specified in mm" msgstr "" -#: report/models.py:374 +#: report/models.py:382 msgid "Height [mm]" msgstr "" -#: report/models.py:375 +#: report/models.py:383 msgid "Label height, specified in mm" msgstr "" -#: report/models.py:438 +#: report/models.py:446 msgid "Number of items to process" msgstr "" -#: report/models.py:444 +#: report/models.py:452 msgid "Report generation is complete" msgstr "" -#: report/models.py:448 templates/js/translated/build.js:2349 +#: report/models.py:456 templates/js/translated/build.js:2352 msgid "Progress" msgstr "" -#: report/models.py:448 +#: report/models.py:456 msgid "Report generation progress" msgstr "" -#: report/models.py:456 +#: report/models.py:464 msgid "Report Template" msgstr "" -#: report/models.py:463 report/models.py:486 +#: report/models.py:471 report/models.py:494 msgid "Output File" msgstr "" -#: report/models.py:464 report/models.py:487 +#: report/models.py:472 report/models.py:495 msgid "Generated output file" msgstr "" -#: report/models.py:475 +#: report/models.py:483 msgid "Label output plugin" msgstr "" -#: report/models.py:479 +#: report/models.py:487 msgid "Label Template" msgstr "" -#: report/models.py:502 +#: report/models.py:510 msgid "Snippet" msgstr "" -#: report/models.py:503 +#: report/models.py:511 msgid "Report snippet file" msgstr "" -#: report/models.py:510 +#: report/models.py:518 msgid "Snippet file description" msgstr "" -#: report/models.py:528 +#: report/models.py:536 msgid "Asset" msgstr "" -#: report/models.py:529 +#: report/models.py:537 msgid "Report asset file" msgstr "" -#: report/models.py:536 +#: report/models.py:544 msgid "Asset file description" msgstr "" -#: report/serializers.py:91 +#: report/serializers.py:92 msgid "Select report template" msgstr "" -#: report/serializers.py:99 report/serializers.py:149 +#: report/serializers.py:100 report/serializers.py:150 msgid "List of item primary keys to include in the report" msgstr "" -#: report/serializers.py:132 +#: report/serializers.py:133 msgid "Select label template" msgstr "" -#: report/serializers.py:140 +#: report/serializers.py:141 msgid "Printing Plugin" msgstr "" -#: report/serializers.py:141 +#: report/serializers.py:142 msgid "Select plugin to use for label printing" msgstr "" @@ -9365,9 +9721,9 @@ msgstr "" #: report/templates/report/inventree_sales_order_report.html:30 #: templates/js/translated/order.js:341 templates/js/translated/pricing.js:527 #: templates/js/translated/pricing.js:596 -#: templates/js/translated/pricing.js:834 -#: templates/js/translated/purchase_order.js:2185 -#: templates/js/translated/sales_order.js:1873 +#: templates/js/translated/pricing.js:832 +#: templates/js/translated/purchase_order.js:2169 +#: templates/js/translated/sales_order.js:1854 msgid "Unit Price" msgstr "" @@ -9379,13 +9735,18 @@ msgstr "" #: report/templates/report/inventree_purchase_order_report.html:72 #: report/templates/report/inventree_sales_order_report.html:72 -#: templates/js/translated/purchase_order.js:2087 -#: templates/js/translated/sales_order.js:1842 +#: templates/js/translated/purchase_order.js:2071 +#: templates/js/translated/sales_order.js:1823 #: templates/test_statistics_table.html:8 #: templates/test_statistics_table.html:19 msgid "Total" msgstr "" +#: report/templates/report/inventree_sales_order_shipment_report.html:23 +#: stock/templates/stock/stock_sidebar.html:8 +msgid "Allocations" +msgstr "" + #: report/templates/report/inventree_stock_location_report.html:97 msgid "Stock location items" msgstr "" @@ -9403,15 +9764,13 @@ msgstr "" msgid "Test" msgstr "" -#: report/templates/report/inventree_test_report.html:103 stock/models.py:2544 -msgid "Result" -msgstr "" - #: report/templates/report/inventree_test_report.html:129 +#: templates/js/translated/stock.js:1448 msgid "Pass" msgstr "" #: report/templates/report/inventree_test_report.html:131 +#: templates/js/translated/stock.js:1450 msgid "Fail" msgstr "" @@ -9420,17 +9779,18 @@ msgid "No result (required)" msgstr "" #: report/templates/report/inventree_test_report.html:140 +#: templates/js/translated/stock.js:1455 msgid "No result" msgstr "" #: report/templates/report/inventree_test_report.html:153 -#: stock/serializers.py:599 stock/templates/stock/stock_sidebar.html:16 +#: stock/serializers.py:626 stock/templates/stock/stock_sidebar.html:16 msgid "Installed Items" msgstr "" -#: report/templates/report/inventree_test_report.html:167 stock/admin.py:161 +#: report/templates/report/inventree_test_report.html:167 stock/admin.py:162 #: templates/js/translated/stock.js:706 templates/js/translated/stock.js:877 -#: templates/js/translated/stock.js:3194 +#: templates/js/translated/stock.js:3195 msgid "Serial" msgstr "" @@ -9450,67 +9810,67 @@ msgstr "" msgid "company_image tag requires a Company instance" msgstr "" -#: stock/admin.py:51 stock/admin.py:171 +#: stock/admin.py:51 stock/admin.py:172 msgid "Location ID" msgstr "" -#: stock/admin.py:63 stock/templates/stock/location.html:128 -#: stock/templates/stock/location.html:134 +#: stock/admin.py:63 stock/templates/stock/location.html:129 +#: stock/templates/stock/location.html:135 msgid "Location Path" msgstr "" -#: stock/admin.py:148 +#: stock/admin.py:149 msgid "Stock Item ID" msgstr "" -#: stock/admin.py:167 +#: stock/admin.py:168 msgid "Status Code" msgstr "" -#: stock/admin.py:179 +#: stock/admin.py:180 msgid "Supplier Part ID" msgstr "" -#: stock/admin.py:184 +#: stock/admin.py:185 msgid "Supplier Part SKU" msgstr "" -#: stock/admin.py:189 +#: stock/admin.py:190 msgid "Supplier ID" msgstr "" -#: stock/admin.py:200 +#: stock/admin.py:201 msgid "Customer ID" msgstr "" -#: stock/admin.py:205 stock/models.py:825 -#: stock/templates/stock/item_base.html:354 +#: stock/admin.py:206 stock/models.py:902 +#: stock/templates/stock/item_base.html:351 msgid "Installed In" msgstr "" -#: stock/admin.py:210 +#: stock/admin.py:211 msgid "Build ID" msgstr "" -#: stock/admin.py:220 +#: stock/admin.py:221 msgid "Sales Order ID" msgstr "" -#: stock/admin.py:225 +#: stock/admin.py:226 msgid "Purchase Order ID" msgstr "" -#: stock/admin.py:240 +#: stock/admin.py:241 msgid "Review Needed" msgstr "" -#: stock/admin.py:245 +#: stock/admin.py:246 msgid "Delete on Deplete" msgstr "" -#: stock/admin.py:260 stock/models.py:919 -#: stock/templates/stock/item_base.html:433 -#: templates/js/translated/stock.js:2315 users/models.py:124 +#: stock/admin.py:261 stock/models.py:996 +#: stock/templates/stock/item_base.html:430 +#: templates/js/translated/stock.js:2316 users/models.py:124 msgid "Expiry Date" msgstr "" @@ -9526,11 +9886,11 @@ msgstr "" msgid "Include sub-locations in filtered results" msgstr "" -#: stock/api.py:367 stock/serializers.py:1186 +#: stock/api.py:366 stock/serializers.py:1217 msgid "Parent Location" msgstr "" -#: stock/api.py:368 +#: stock/api.py:367 msgid "Filter by parent location" msgstr "" @@ -9550,8 +9910,8 @@ msgstr "" msgid "Expiry date after" msgstr "" -#: stock/api.py:840 stock/serializers.py:604 -#: stock/templates/stock/item_base.html:439 +#: stock/api.py:840 stock/serializers.py:631 +#: stock/templates/stock/item_base.html:436 #: templates/js/translated/table_filters.js:448 msgid "Stale" msgstr "" @@ -9560,594 +9920,598 @@ msgstr "" msgid "Quantity is required" msgstr "" -#: stock/api.py:933 +#: stock/api.py:932 msgid "Valid part must be supplied" msgstr "" -#: stock/api.py:964 +#: stock/api.py:959 msgid "The given supplier part does not exist" msgstr "" -#: stock/api.py:974 +#: stock/api.py:969 msgid "The supplier part has a pack size defined, but flag use_pack_size not set" msgstr "" -#: stock/api.py:1005 +#: stock/api.py:996 msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "" -#: stock/models.py:64 +#: stock/models.py:70 msgid "Stock Location type" msgstr "" -#: stock/models.py:65 +#: stock/models.py:71 msgid "Stock Location types" msgstr "" -#: stock/models.py:91 +#: stock/models.py:97 msgid "Default icon for all locations that have no icon set (optional)" msgstr "" -#: stock/models.py:131 stock/models.py:807 -#: stock/templates/stock/location.html:17 +#: stock/models.py:137 stock/models.py:884 +#: stock/templates/stock/location.html:18 #: stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "" -#: stock/models.py:132 stock/templates/stock/location.html:183 +#: stock/models.py:138 stock/templates/stock/location.html:184 #: templates/InvenTree/search.html:166 templates/js/translated/search.js:178 #: users/models.py:205 msgid "Stock Locations" msgstr "" -#: stock/models.py:180 stock/models.py:968 -#: stock/templates/stock/item_base.html:247 +#: stock/models.py:186 stock/models.py:1045 +#: stock/templates/stock/item_base.html:244 msgid "Owner" msgstr "" -#: stock/models.py:181 stock/models.py:969 +#: stock/models.py:187 stock/models.py:1046 msgid "Select Owner" msgstr "" -#: stock/models.py:189 +#: stock/models.py:195 msgid "Stock items may not be directly located into a structural stock locations, but may be located to child locations." msgstr "" -#: stock/models.py:196 templates/js/translated/stock.js:2865 +#: stock/models.py:202 templates/js/translated/stock.js:2866 #: templates/js/translated/table_filters.js:250 msgid "External" msgstr "" -#: stock/models.py:197 +#: stock/models.py:203 msgid "This is an external stock location" msgstr "" -#: stock/models.py:203 templates/js/translated/stock.js:2874 +#: stock/models.py:209 templates/js/translated/stock.js:2875 #: templates/js/translated/table_filters.js:253 msgid "Location type" msgstr "" -#: stock/models.py:207 +#: stock/models.py:213 msgid "Stock location type of this location" msgstr "" -#: stock/models.py:279 +#: stock/models.py:285 msgid "You cannot make this stock location structural because some stock items are already located into it!" msgstr "" -#: stock/models.py:664 +#: stock/models.py:492 +msgid "Part must be specified" +msgstr "" + +#: stock/models.py:741 msgid "Stock items cannot be located into structural stock locations!" msgstr "" -#: stock/models.py:691 stock/serializers.py:480 +#: stock/models.py:768 stock/serializers.py:492 msgid "Stock item cannot be created for virtual parts" msgstr "" -#: stock/models.py:708 +#: stock/models.py:785 #, python-brace-format msgid "Part type ('{self.supplier_part.part}') must be {self.part}" msgstr "" -#: stock/models.py:718 stock/models.py:731 +#: stock/models.py:795 stock/models.py:808 msgid "Quantity must be 1 for item with a serial number" msgstr "" -#: stock/models.py:721 +#: stock/models.py:798 msgid "Serial number cannot be set if quantity greater than 1" msgstr "" -#: stock/models.py:743 +#: stock/models.py:820 msgid "Item cannot belong to itself" msgstr "" -#: stock/models.py:748 +#: stock/models.py:825 msgid "Item must have a build reference if is_building=True" msgstr "" -#: stock/models.py:761 +#: stock/models.py:838 msgid "Build reference does not point to the same part object" msgstr "" -#: stock/models.py:777 +#: stock/models.py:854 msgid "Parent Stock Item" msgstr "" -#: stock/models.py:789 +#: stock/models.py:866 msgid "Base part" msgstr "" -#: stock/models.py:799 +#: stock/models.py:876 msgid "Select a matching supplier part for this stock item" msgstr "" -#: stock/models.py:811 +#: stock/models.py:888 msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:819 stock/serializers.py:1580 +#: stock/models.py:896 stock/serializers.py:1611 msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:830 +#: stock/models.py:907 msgid "Is this item installed in another item?" msgstr "" -#: stock/models.py:849 +#: stock/models.py:926 msgid "Serial number for this item" msgstr "" -#: stock/models.py:863 stock/serializers.py:1563 +#: stock/models.py:940 stock/serializers.py:1594 msgid "Batch code for this stock item" msgstr "" -#: stock/models.py:868 +#: stock/models.py:945 msgid "Stock Quantity" msgstr "" -#: stock/models.py:878 +#: stock/models.py:955 msgid "Source Build" msgstr "" -#: stock/models.py:881 +#: stock/models.py:958 msgid "Build for this stock item" msgstr "" -#: stock/models.py:888 stock/templates/stock/item_base.html:363 +#: stock/models.py:965 stock/templates/stock/item_base.html:360 msgid "Consumed By" msgstr "" -#: stock/models.py:891 +#: stock/models.py:968 msgid "Build order which consumed this stock item" msgstr "" -#: stock/models.py:900 +#: stock/models.py:977 msgid "Source Purchase Order" msgstr "" -#: stock/models.py:904 +#: stock/models.py:981 msgid "Purchase order for this stock item" msgstr "" -#: stock/models.py:910 +#: stock/models.py:987 msgid "Destination Sales Order" msgstr "" -#: stock/models.py:921 +#: stock/models.py:998 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "" -#: stock/models.py:939 +#: stock/models.py:1016 msgid "Delete on deplete" msgstr "" -#: stock/models.py:940 +#: stock/models.py:1017 msgid "Delete this Stock Item when stock is depleted" msgstr "" -#: stock/models.py:960 +#: stock/models.py:1037 msgid "Single unit purchase price at time of purchase" msgstr "" -#: stock/models.py:991 +#: stock/models.py:1068 msgid "Converted to part" msgstr "" -#: stock/models.py:1511 +#: stock/models.py:1600 msgid "Part is not set as trackable" msgstr "" -#: stock/models.py:1517 +#: stock/models.py:1606 msgid "Quantity must be integer" msgstr "" -#: stock/models.py:1525 +#: stock/models.py:1614 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({self.quantity})" msgstr "" -#: stock/models.py:1531 -msgid "Serial numbers must be a list of integers" +#: stock/models.py:1620 +msgid "Serial numbers must be provided as a list" msgstr "" -#: stock/models.py:1536 +#: stock/models.py:1625 msgid "Quantity does not match serial numbers" msgstr "" -#: stock/models.py:1544 stock/serializers.py:726 -msgid "Serial numbers already exist" -msgstr "" - -#: stock/models.py:1641 +#: stock/models.py:1747 stock/models.py:2563 msgid "Test template does not exist" msgstr "" -#: stock/models.py:1659 +#: stock/models.py:1765 msgid "Stock item has been assigned to a sales order" msgstr "" -#: stock/models.py:1663 +#: stock/models.py:1769 msgid "Stock item is installed in another item" msgstr "" -#: stock/models.py:1666 +#: stock/models.py:1772 msgid "Stock item contains other items" msgstr "" -#: stock/models.py:1669 +#: stock/models.py:1775 msgid "Stock item has been assigned to a customer" msgstr "" -#: stock/models.py:1672 +#: stock/models.py:1778 msgid "Stock item is currently in production" msgstr "" -#: stock/models.py:1675 +#: stock/models.py:1781 msgid "Serialized stock cannot be merged" msgstr "" -#: stock/models.py:1682 stock/serializers.py:1469 +#: stock/models.py:1788 stock/serializers.py:1500 msgid "Duplicate stock items" msgstr "" -#: stock/models.py:1686 +#: stock/models.py:1792 msgid "Stock items must refer to the same part" msgstr "" -#: stock/models.py:1694 +#: stock/models.py:1800 msgid "Stock items must refer to the same supplier part" msgstr "" -#: stock/models.py:1699 +#: stock/models.py:1805 msgid "Stock status codes must match" msgstr "" -#: stock/models.py:1960 +#: stock/models.py:2066 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:2343 +#: stock/models.py:2462 msgid "Stock Item Tracking" msgstr "" -#: stock/models.py:2376 +#: stock/models.py:2495 msgid "Entry notes" msgstr "" -#: stock/models.py:2416 +#: stock/models.py:2535 msgid "Stock Item Test Result" msgstr "" -#: stock/models.py:2449 +#: stock/models.py:2566 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:2454 +#: stock/models.py:2570 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:2459 +#: stock/models.py:2575 msgid "Invalid value for this test" msgstr "" -#: stock/models.py:2544 +#: stock/models.py:2660 msgid "Test result" msgstr "" -#: stock/models.py:2551 +#: stock/models.py:2667 msgid "Test output value" msgstr "" -#: stock/models.py:2559 +#: stock/models.py:2675 stock/serializers.py:245 msgid "Test result attachment" msgstr "" -#: stock/models.py:2563 +#: stock/models.py:2679 msgid "Test notes" msgstr "" -#: stock/models.py:2571 templates/js/translated/stock.js:1633 +#: stock/models.py:2687 templates/js/translated/stock.js:1633 msgid "Test station" msgstr "" -#: stock/models.py:2572 +#: stock/models.py:2688 msgid "The identifier of the test station where the test was performed" msgstr "" -#: stock/models.py:2578 +#: stock/models.py:2694 msgid "Started" msgstr "" -#: stock/models.py:2579 +#: stock/models.py:2695 msgid "The timestamp of the test start" msgstr "" -#: stock/models.py:2585 +#: stock/models.py:2701 msgid "Finished" msgstr "" -#: stock/models.py:2586 +#: stock/models.py:2702 msgid "The timestamp of the test finish" msgstr "" -#: stock/serializers.py:76 +#: stock/serializers.py:77 msgid "Generated batch code" msgstr "" -#: stock/serializers.py:85 +#: stock/serializers.py:86 msgid "Select build order" msgstr "" -#: stock/serializers.py:94 +#: stock/serializers.py:95 msgid "Select stock item to generate batch code for" msgstr "" -#: stock/serializers.py:103 +#: stock/serializers.py:104 msgid "Select location to generate batch code for" msgstr "" -#: stock/serializers.py:112 +#: stock/serializers.py:113 msgid "Select part to generate batch code for" msgstr "" -#: stock/serializers.py:121 +#: stock/serializers.py:122 msgid "Select purchase order" msgstr "" -#: stock/serializers.py:128 +#: stock/serializers.py:129 msgid "Enter quantity for batch code" msgstr "" -#: stock/serializers.py:151 +#: stock/serializers.py:152 msgid "Generated serial number" msgstr "" -#: stock/serializers.py:160 +#: stock/serializers.py:161 msgid "Select part to generate serial number for" msgstr "" -#: stock/serializers.py:168 +#: stock/serializers.py:169 msgid "Quantity of serial numbers to generate" msgstr "" -#: stock/serializers.py:233 +#: stock/serializers.py:234 msgid "Test template for this result" msgstr "" -#: stock/serializers.py:254 +#: stock/serializers.py:258 msgid "Template ID or test name must be provided" msgstr "" -#: stock/serializers.py:286 +#: stock/serializers.py:290 msgid "The test finished time cannot be earlier than the test started time" msgstr "" -#: stock/serializers.py:323 +#: stock/serializers.py:327 msgid "Serial number is too large" msgstr "" -#: stock/serializers.py:452 stock/templates/stock/item_base.html:193 +#: stock/serializers.py:462 stock/templates/stock/item_base.html:190 msgid "Parent Item" msgstr "" -#: stock/serializers.py:453 +#: stock/serializers.py:463 msgid "Parent stock item" msgstr "" -#: stock/serializers.py:472 +#: stock/serializers.py:484 msgid "Use pack size when adding: the quantity defined is the number of packs" msgstr "" -#: stock/serializers.py:596 stock/templates/stock/item_base.html:437 +#: stock/serializers.py:623 stock/templates/stock/item_base.html:434 #: templates/js/translated/table_filters.js:442 users/models.py:174 msgid "Expired" msgstr "" -#: stock/serializers.py:602 stock/templates/stock/stock_sidebar.html:20 +#: stock/serializers.py:629 stock/templates/stock/stock_sidebar.html:20 msgid "Child Items" msgstr "" -#: stock/serializers.py:606 +#: stock/serializers.py:633 msgid "Tracking Items" msgstr "" -#: stock/serializers.py:612 +#: stock/serializers.py:639 msgid "Purchase price of this stock item, per unit or pack" msgstr "" -#: stock/serializers.py:631 +#: stock/serializers.py:658 msgid "Minimum Pricing" msgstr "" -#: stock/serializers.py:637 +#: stock/serializers.py:664 msgid "Maximum Pricing" msgstr "" -#: stock/serializers.py:661 +#: stock/serializers.py:688 msgid "Enter number of stock items to serialize" msgstr "" -#: stock/serializers.py:674 +#: stock/serializers.py:701 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({q})" msgstr "" -#: stock/serializers.py:681 +#: stock/serializers.py:708 msgid "Enter serial numbers for new items" msgstr "" -#: stock/serializers.py:692 stock/serializers.py:1426 stock/serializers.py:1682 +#: stock/serializers.py:719 stock/serializers.py:1457 stock/serializers.py:1713 msgid "Destination stock location" msgstr "" -#: stock/serializers.py:699 +#: stock/serializers.py:726 msgid "Optional note field" msgstr "" -#: stock/serializers.py:709 +#: stock/serializers.py:736 msgid "Serial numbers cannot be assigned to this part" msgstr "" -#: stock/serializers.py:764 +#: stock/serializers.py:756 +msgid "Serial numbers already exist" +msgstr "" + +#: stock/serializers.py:795 msgid "Select stock item to install" msgstr "" -#: stock/serializers.py:771 +#: stock/serializers.py:802 msgid "Quantity to Install" msgstr "" -#: stock/serializers.py:772 +#: stock/serializers.py:803 msgid "Enter the quantity of items to install" msgstr "" -#: stock/serializers.py:777 stock/serializers.py:857 stock/serializers.py:983 -#: stock/serializers.py:1033 +#: stock/serializers.py:808 stock/serializers.py:888 stock/serializers.py:1014 +#: stock/serializers.py:1064 msgid "Add transaction note (optional)" msgstr "" -#: stock/serializers.py:785 +#: stock/serializers.py:816 msgid "Quantity to install must be at least 1" msgstr "" -#: stock/serializers.py:793 +#: stock/serializers.py:824 msgid "Stock item is unavailable" msgstr "" -#: stock/serializers.py:804 +#: stock/serializers.py:835 msgid "Selected part is not in the Bill of Materials" msgstr "" -#: stock/serializers.py:817 +#: stock/serializers.py:848 msgid "Quantity to install must not exceed available quantity" msgstr "" -#: stock/serializers.py:852 +#: stock/serializers.py:883 msgid "Destination location for uninstalled item" msgstr "" -#: stock/serializers.py:903 +#: stock/serializers.py:934 msgid "Unsupported statistic type: " msgstr "" -#: stock/serializers.py:917 +#: stock/serializers.py:948 msgid "Select part to convert stock item into" msgstr "" -#: stock/serializers.py:930 +#: stock/serializers.py:961 msgid "Selected part is not a valid option for conversion" msgstr "" -#: stock/serializers.py:947 +#: stock/serializers.py:978 msgid "Cannot convert stock item with assigned SupplierPart" msgstr "" -#: stock/serializers.py:978 +#: stock/serializers.py:1009 msgid "Destination location for returned item" msgstr "" -#: stock/serializers.py:1015 +#: stock/serializers.py:1046 msgid "Select stock items to change status" msgstr "" -#: stock/serializers.py:1021 +#: stock/serializers.py:1052 msgid "No stock items selected" msgstr "" -#: stock/serializers.py:1117 stock/serializers.py:1194 -#: stock/templates/stock/location.html:162 -#: stock/templates/stock/location.html:219 +#: stock/serializers.py:1148 stock/serializers.py:1225 +#: stock/templates/stock/location.html:163 +#: stock/templates/stock/location.html:220 #: stock/templates/stock/location_sidebar.html:5 msgid "Sublocations" msgstr "" -#: stock/serializers.py:1187 templates/js/translated/stock.js:160 +#: stock/serializers.py:1218 templates/js/translated/stock.js:160 msgid "Parent stock location" msgstr "" -#: stock/serializers.py:1298 +#: stock/serializers.py:1329 msgid "Part must be salable" msgstr "" -#: stock/serializers.py:1302 +#: stock/serializers.py:1333 msgid "Item is allocated to a sales order" msgstr "" -#: stock/serializers.py:1306 +#: stock/serializers.py:1337 msgid "Item is allocated to a build order" msgstr "" -#: stock/serializers.py:1330 +#: stock/serializers.py:1361 msgid "Customer to assign stock items" msgstr "" -#: stock/serializers.py:1336 +#: stock/serializers.py:1367 msgid "Selected company is not a customer" msgstr "" -#: stock/serializers.py:1344 +#: stock/serializers.py:1375 msgid "Stock assignment notes" msgstr "" -#: stock/serializers.py:1354 stock/serializers.py:1608 +#: stock/serializers.py:1385 stock/serializers.py:1639 msgid "A list of stock items must be provided" msgstr "" -#: stock/serializers.py:1433 +#: stock/serializers.py:1464 msgid "Stock merging notes" msgstr "" -#: stock/serializers.py:1438 +#: stock/serializers.py:1469 msgid "Allow mismatched suppliers" msgstr "" -#: stock/serializers.py:1439 +#: stock/serializers.py:1470 msgid "Allow stock items with different supplier parts to be merged" msgstr "" -#: stock/serializers.py:1444 +#: stock/serializers.py:1475 msgid "Allow mismatched status" msgstr "" -#: stock/serializers.py:1445 +#: stock/serializers.py:1476 msgid "Allow stock items with different status codes to be merged" msgstr "" -#: stock/serializers.py:1455 +#: stock/serializers.py:1486 msgid "At least two stock items must be provided" msgstr "" -#: stock/serializers.py:1522 +#: stock/serializers.py:1553 msgid "No Change" msgstr "" -#: stock/serializers.py:1551 +#: stock/serializers.py:1582 msgid "StockItem primary key value" msgstr "" -#: stock/serializers.py:1570 +#: stock/serializers.py:1601 msgid "Stock item status code" msgstr "" -#: stock/serializers.py:1598 +#: stock/serializers.py:1629 msgid "Stock transaction notes" msgstr "" @@ -10175,107 +10539,107 @@ msgstr "" msgid "Quarantined" msgstr "" -#: stock/status_codes.py:40 +#: stock/status_codes.py:44 msgid "Legacy stock tracking entry" msgstr "" -#: stock/status_codes.py:42 templates/js/translated/stock.js:550 +#: stock/status_codes.py:46 templates/js/translated/stock.js:550 msgid "Stock item created" msgstr "" -#: stock/status_codes.py:45 +#: stock/status_codes.py:49 msgid "Edited stock item" msgstr "" -#: stock/status_codes.py:46 +#: stock/status_codes.py:50 msgid "Assigned serial number" msgstr "" -#: stock/status_codes.py:49 +#: stock/status_codes.py:53 msgid "Stock counted" msgstr "" -#: stock/status_codes.py:50 +#: stock/status_codes.py:54 msgid "Stock manually added" msgstr "" -#: stock/status_codes.py:51 +#: stock/status_codes.py:55 msgid "Stock manually removed" msgstr "" -#: stock/status_codes.py:54 +#: stock/status_codes.py:58 msgid "Location changed" msgstr "" -#: stock/status_codes.py:55 +#: stock/status_codes.py:59 msgid "Stock updated" msgstr "" -#: stock/status_codes.py:58 +#: stock/status_codes.py:62 msgid "Installed into assembly" msgstr "" -#: stock/status_codes.py:59 +#: stock/status_codes.py:63 msgid "Removed from assembly" msgstr "" -#: stock/status_codes.py:61 +#: stock/status_codes.py:65 msgid "Installed component item" msgstr "" -#: stock/status_codes.py:62 +#: stock/status_codes.py:66 msgid "Removed component item" msgstr "" -#: stock/status_codes.py:65 +#: stock/status_codes.py:69 msgid "Split from parent item" msgstr "" -#: stock/status_codes.py:66 +#: stock/status_codes.py:70 msgid "Split child item" msgstr "" -#: stock/status_codes.py:69 templates/js/translated/stock.js:1943 +#: stock/status_codes.py:73 templates/js/translated/stock.js:1944 msgid "Merged stock items" msgstr "" -#: stock/status_codes.py:72 +#: stock/status_codes.py:76 msgid "Converted to variant" msgstr "" -#: stock/status_codes.py:75 +#: stock/status_codes.py:79 msgid "Build order output created" msgstr "" -#: stock/status_codes.py:76 +#: stock/status_codes.py:80 msgid "Build order output completed" msgstr "" -#: stock/status_codes.py:77 +#: stock/status_codes.py:81 msgid "Build order output rejected" msgstr "" -#: stock/status_codes.py:78 templates/js/translated/stock.js:1849 +#: stock/status_codes.py:82 templates/js/translated/stock.js:1849 msgid "Consumed by build order" msgstr "" -#: stock/status_codes.py:81 +#: stock/status_codes.py:85 msgid "Shipped against Sales Order" msgstr "" -#: stock/status_codes.py:84 +#: stock/status_codes.py:88 msgid "Received against Purchase Order" msgstr "" -#: stock/status_codes.py:87 +#: stock/status_codes.py:91 msgid "Returned against Return Order" msgstr "" -#: stock/status_codes.py:90 templates/js/translated/table_filters.js:382 +#: stock/status_codes.py:94 templates/js/translated/table_filters.js:382 msgid "Sent to customer" msgstr "" -#: stock/status_codes.py:91 +#: stock/status_codes.py:95 msgid "Returned from customer" msgstr "" @@ -10296,7 +10660,7 @@ msgstr "" msgid "Test Data" msgstr "" -#: stock/templates/stock/item.html:85 stock/templates/stock/item_base.html:65 +#: stock/templates/stock/item.html:85 msgid "Test Report" msgstr "" @@ -10316,7 +10680,7 @@ msgstr "" msgid "Installed Stock Items" msgstr "" -#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3354 +#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3355 msgid "Install Stock Item" msgstr "" @@ -10328,208 +10692,212 @@ msgstr "" msgid "Add Test Result" msgstr "" -#: stock/templates/stock/item_base.html:33 +#: stock/templates/stock/item_base.html:34 msgid "Locate stock item" msgstr "" -#: stock/templates/stock/item_base.html:51 +#: stock/templates/stock/item_base.html:52 msgid "Scan to Location" msgstr "" #: stock/templates/stock/item_base.html:59 -#: stock/templates/stock/location.html:67 +#: stock/templates/stock/location.html:68 #: templates/js/translated/filters.js:434 msgid "Printing actions" msgstr "" -#: stock/templates/stock/item_base.html:75 +#: stock/templates/stock/item_base.html:64 templates/js/translated/report.js:49 +msgid "Print Report" +msgstr "" + +#: stock/templates/stock/item_base.html:72 msgid "Stock adjustment actions" msgstr "" -#: stock/templates/stock/item_base.html:79 -#: stock/templates/stock/location.html:87 templates/js/translated/stock.js:1909 +#: stock/templates/stock/item_base.html:76 +#: stock/templates/stock/location.html:88 templates/js/translated/stock.js:1909 msgid "Count stock" msgstr "" -#: stock/templates/stock/item_base.html:81 +#: stock/templates/stock/item_base.html:78 #: templates/js/translated/stock.js:1891 msgid "Add stock" msgstr "" -#: stock/templates/stock/item_base.html:82 +#: stock/templates/stock/item_base.html:79 #: templates/js/translated/stock.js:1900 msgid "Remove stock" msgstr "" -#: stock/templates/stock/item_base.html:85 +#: stock/templates/stock/item_base.html:82 msgid "Serialize stock" msgstr "" -#: stock/templates/stock/item_base.html:88 -#: stock/templates/stock/location.html:93 templates/js/translated/stock.js:1918 +#: stock/templates/stock/item_base.html:85 +#: stock/templates/stock/location.html:94 templates/js/translated/stock.js:1918 msgid "Transfer stock" msgstr "" -#: stock/templates/stock/item_base.html:91 -#: templates/js/translated/stock.js:1972 +#: stock/templates/stock/item_base.html:88 +#: templates/js/translated/stock.js:1973 msgid "Assign to customer" msgstr "" -#: stock/templates/stock/item_base.html:94 +#: stock/templates/stock/item_base.html:91 msgid "Return to stock" msgstr "" -#: stock/templates/stock/item_base.html:97 +#: stock/templates/stock/item_base.html:94 msgid "Uninstall stock item" msgstr "" -#: stock/templates/stock/item_base.html:97 +#: stock/templates/stock/item_base.html:94 msgid "Uninstall" msgstr "" -#: stock/templates/stock/item_base.html:101 +#: stock/templates/stock/item_base.html:98 msgid "Install stock item" msgstr "" -#: stock/templates/stock/item_base.html:101 +#: stock/templates/stock/item_base.html:98 msgid "Install" msgstr "" -#: stock/templates/stock/item_base.html:115 +#: stock/templates/stock/item_base.html:112 msgid "Convert to variant" msgstr "" -#: stock/templates/stock/item_base.html:118 +#: stock/templates/stock/item_base.html:115 msgid "Duplicate stock item" msgstr "" -#: stock/templates/stock/item_base.html:120 +#: stock/templates/stock/item_base.html:117 msgid "Edit stock item" msgstr "" -#: stock/templates/stock/item_base.html:123 +#: stock/templates/stock/item_base.html:120 msgid "Delete stock item" msgstr "" -#: stock/templates/stock/item_base.html:169 templates/InvenTree/search.html:139 -#: templates/js/translated/build.js:2295 templates/navbar.html:38 +#: stock/templates/stock/item_base.html:166 templates/InvenTree/search.html:139 +#: templates/js/translated/build.js:2298 templates/navbar.html:38 msgid "Build" msgstr "" -#: stock/templates/stock/item_base.html:211 +#: stock/templates/stock/item_base.html:208 msgid "No manufacturer set" msgstr "" -#: stock/templates/stock/item_base.html:251 +#: stock/templates/stock/item_base.html:248 msgid "You are not in the list of owners of this item. This stock item cannot be edited." msgstr "" -#: stock/templates/stock/item_base.html:252 -#: stock/templates/stock/location.html:146 +#: stock/templates/stock/item_base.html:249 +#: stock/templates/stock/location.html:147 msgid "Read only" msgstr "" -#: stock/templates/stock/item_base.html:265 +#: stock/templates/stock/item_base.html:262 msgid "This stock item is unavailable" msgstr "" -#: stock/templates/stock/item_base.html:271 +#: stock/templates/stock/item_base.html:268 msgid "This stock item is in production and cannot be edited." msgstr "" -#: stock/templates/stock/item_base.html:272 +#: stock/templates/stock/item_base.html:269 msgid "Edit the stock item from the build view." msgstr "" -#: stock/templates/stock/item_base.html:287 +#: stock/templates/stock/item_base.html:284 msgid "This stock item is allocated to Sales Order" msgstr "" -#: stock/templates/stock/item_base.html:295 +#: stock/templates/stock/item_base.html:292 msgid "This stock item is allocated to Build Order" msgstr "" -#: stock/templates/stock/item_base.html:311 +#: stock/templates/stock/item_base.html:308 msgid "This stock item is serialized. It has a unique serial number and the quantity cannot be adjusted" msgstr "" -#: stock/templates/stock/item_base.html:317 +#: stock/templates/stock/item_base.html:314 msgid "previous page" msgstr "" -#: stock/templates/stock/item_base.html:317 +#: stock/templates/stock/item_base.html:314 msgid "Navigate to previous serial number" msgstr "" -#: stock/templates/stock/item_base.html:326 +#: stock/templates/stock/item_base.html:323 msgid "next page" msgstr "" -#: stock/templates/stock/item_base.html:326 +#: stock/templates/stock/item_base.html:323 msgid "Navigate to next serial number" msgstr "" -#: stock/templates/stock/item_base.html:398 -#: templates/js/translated/build.js:2552 +#: stock/templates/stock/item_base.html:395 +#: templates/js/translated/build.js:2559 msgid "No location set" msgstr "" -#: stock/templates/stock/item_base.html:413 +#: stock/templates/stock/item_base.html:410 msgid "Tests" msgstr "" -#: stock/templates/stock/item_base.html:419 +#: stock/templates/stock/item_base.html:416 msgid "This stock item has not passed all required tests" msgstr "" -#: stock/templates/stock/item_base.html:437 +#: stock/templates/stock/item_base.html:434 #, python-format msgid "This StockItem expired on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:439 +#: stock/templates/stock/item_base.html:436 #, python-format msgid "This StockItem expires on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:455 +#: stock/templates/stock/item_base.html:452 msgid "No stocktake performed" msgstr "" -#: stock/templates/stock/item_base.html:504 -#: templates/js/translated/stock.js:2037 +#: stock/templates/stock/item_base.html:501 +#: templates/js/translated/stock.js:2038 msgid "stock item" msgstr "" -#: stock/templates/stock/item_base.html:527 +#: stock/templates/stock/item_base.html:524 msgid "Edit Stock Status" msgstr "" -#: stock/templates/stock/item_base.html:536 +#: stock/templates/stock/item_base.html:533 msgid "Stock Item QR Code" msgstr "" -#: stock/templates/stock/item_base.html:547 +#: stock/templates/stock/item_base.html:544 msgid "Link Barcode to Stock Item" msgstr "" -#: stock/templates/stock/item_base.html:611 +#: stock/templates/stock/item_base.html:608 msgid "Select one of the part variants listed below." msgstr "" -#: stock/templates/stock/item_base.html:614 +#: stock/templates/stock/item_base.html:611 msgid "Warning" msgstr "" -#: stock/templates/stock/item_base.html:615 +#: stock/templates/stock/item_base.html:612 msgid "This action cannot be easily undone" msgstr "" -#: stock/templates/stock/item_base.html:623 +#: stock/templates/stock/item_base.html:620 msgid "Convert Stock Item" msgstr "" -#: stock/templates/stock/item_base.html:656 +#: stock/templates/stock/item_base.html:653 msgid "Return to Stock" msgstr "" @@ -10541,84 +10909,84 @@ msgstr "" msgid "Select quantity to serialize, and unique serial numbers." msgstr "" -#: stock/templates/stock/location.html:35 +#: stock/templates/stock/location.html:36 msgid "Perform stocktake for this stock location" msgstr "" -#: stock/templates/stock/location.html:42 +#: stock/templates/stock/location.html:43 msgid "Locate stock location" msgstr "" -#: stock/templates/stock/location.html:60 +#: stock/templates/stock/location.html:61 msgid "Scan stock items into this location" msgstr "" -#: stock/templates/stock/location.html:60 +#: stock/templates/stock/location.html:61 msgid "Scan In Stock Items" msgstr "" -#: stock/templates/stock/location.html:61 +#: stock/templates/stock/location.html:62 msgid "Scan stock container into this location" msgstr "" -#: stock/templates/stock/location.html:61 +#: stock/templates/stock/location.html:62 msgid "Scan In Container" msgstr "" -#: stock/templates/stock/location.html:72 +#: stock/templates/stock/location.html:73 msgid "Print Location Report" msgstr "" -#: stock/templates/stock/location.html:101 +#: stock/templates/stock/location.html:102 msgid "Location actions" msgstr "" -#: stock/templates/stock/location.html:103 +#: stock/templates/stock/location.html:104 msgid "Edit location" msgstr "" -#: stock/templates/stock/location.html:105 +#: stock/templates/stock/location.html:106 msgid "Delete location" msgstr "" -#: stock/templates/stock/location.html:135 +#: stock/templates/stock/location.html:136 msgid "Top level stock location" msgstr "" -#: stock/templates/stock/location.html:141 +#: stock/templates/stock/location.html:142 msgid "Location Owner" msgstr "" -#: stock/templates/stock/location.html:145 +#: stock/templates/stock/location.html:146 msgid "You are not in the list of owners of this location. This stock location cannot be edited." msgstr "" -#: stock/templates/stock/location.html:173 +#: stock/templates/stock/location.html:174 msgid "Location Type" msgstr "" -#: stock/templates/stock/location.html:223 +#: stock/templates/stock/location.html:224 msgid "Create new stock location" msgstr "" -#: stock/templates/stock/location.html:224 +#: stock/templates/stock/location.html:225 msgid "New Location" msgstr "" -#: stock/templates/stock/location.html:298 -#: templates/js/translated/stock.js:2657 +#: stock/templates/stock/location.html:299 +#: templates/js/translated/stock.js:2658 msgid "stock location" msgstr "" -#: stock/templates/stock/location.html:320 +#: stock/templates/stock/location.html:321 msgid "Scanned stock container into this location" msgstr "" -#: stock/templates/stock/location.html:393 +#: stock/templates/stock/location.html:394 msgid "Stock Location QR Code" msgstr "" -#: stock/templates/stock/location.html:404 +#: stock/templates/stock/location.html:405 msgid "Link Barcode to Stock Location" msgstr "" @@ -10630,10 +10998,6 @@ msgstr "" msgid "Stock Tracking" msgstr "" -#: stock/templates/stock/stock_sidebar.html:8 -msgid "Allocations" -msgstr "" - #: templates/403.html:6 templates/403.html:12 templates/403_csrf.html:7 msgid "Permission Denied" msgstr "" @@ -11107,9 +11471,9 @@ msgid "Rate" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:81 -#: templates/js/translated/forms.js:548 templates/js/translated/helpers.js:108 +#: templates/js/translated/forms.js:548 templates/js/translated/helpers.js:109 #: templates/js/translated/part.js:395 templates/js/translated/pricing.js:629 -#: templates/js/translated/stock.js:252 users/models.py:406 +#: templates/js/translated/stock.js:252 users/models.py:408 msgid "Delete" msgstr "" @@ -11130,7 +11494,7 @@ msgid "No project codes found" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:158 -#: templates/js/translated/build.js:2400 +#: templates/js/translated/build.js:2403 msgid "group" msgstr "" @@ -11196,7 +11560,7 @@ msgid "Delete Location Type" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:503 -#: templates/InvenTree/settings/stock.html:38 +#: templates/InvenTree/settings/stock.html:39 msgid "New Location Type" msgstr "" @@ -11253,7 +11617,7 @@ msgstr "" msgid "Stock Settings" msgstr "" -#: templates/InvenTree/settings/stock.html:34 +#: templates/InvenTree/settings/stock.html:35 msgid "Stock Location Types" msgstr "" @@ -11280,7 +11644,7 @@ msgid "Unverified" msgstr "" #: templates/InvenTree/settings/user.html:80 -#: templates/js/translated/company.js:957 +#: templates/js/translated/company.js:958 msgid "Primary" msgstr "" @@ -11532,7 +11896,7 @@ msgid "Submit Bug Report" msgstr "" #: templates/about.html:91 templates/clip.html:4 -#: templates/js/translated/helpers.js:592 +#: templates/js/translated/helpers.js:598 msgid "copy to clipboard" msgstr "" @@ -11738,23 +12102,24 @@ msgstr "" msgid "Barcode Identifier" msgstr "" -#: templates/base.html:103 +#: templates/base.html:102 msgid "Server Restart Required" msgstr "" -#: templates/base.html:106 +#: templates/base.html:105 msgid "A configuration option has been changed which requires a server restart" msgstr "" -#: templates/base.html:106 templates/base.html:116 +#: templates/base.html:105 templates/base.html:115 +#: templates/socialaccount/authentication_error.html:13 msgid "Contact your system administrator for further information" msgstr "" -#: templates/base.html:113 +#: templates/base.html:112 msgid "Pending Database Migrations" msgstr "" -#: templates/base.html:116 +#: templates/base.html:115 msgid "There are pending database migrations which require attention" msgstr "" @@ -11787,7 +12152,7 @@ msgid "The following parts are low on required stock" msgstr "" #: templates/email/build_order_required_stock.html:18 -#: templates/js/translated/bom.js:1674 templates/js/translated/build.js:2747 +#: templates/js/translated/bom.js:1674 templates/js/translated/build.js:2765 msgid "Required Quantity" msgstr "" @@ -11801,7 +12166,7 @@ msgid "Click on the following link to view this part" msgstr "" #: templates/email/low_stock_notification.html:18 -#: templates/js/translated/part.js:3237 +#: templates/js/translated/part.js:3253 msgid "Minimum Quantity" msgstr "" @@ -12039,7 +12404,7 @@ msgstr "" #: templates/js/translated/bom.js:189 templates/js/translated/bom.js:700 #: templates/js/translated/modals.js:75 templates/js/translated/modals.js:629 #: templates/js/translated/modals.js:757 templates/js/translated/modals.js:1065 -#: templates/js/translated/purchase_order.js:797 templates/modals.html:15 +#: templates/js/translated/purchase_order.js:780 templates/modals.html:15 #: templates/modals.html:27 templates/modals.html:39 templates/modals.html:50 msgid "Close" msgstr "" @@ -12156,7 +12521,7 @@ msgstr "" msgid "Substitutes Available" msgstr "" -#: templates/js/translated/bom.js:950 templates/js/translated/build.js:2673 +#: templates/js/translated/bom.js:950 templates/js/translated/build.js:2682 msgid "Variant stock allowed" msgstr "" @@ -12176,30 +12541,30 @@ msgstr "" msgid "No pricing available" msgstr "" -#: templates/js/translated/bom.js:1184 templates/js/translated/build.js:2812 +#: templates/js/translated/bom.js:1184 templates/js/translated/build.js:2830 msgid "External stock" msgstr "" -#: templates/js/translated/bom.js:1188 templates/js/translated/build.js:2786 -#: templates/js/translated/sales_order.js:1946 +#: templates/js/translated/bom.js:1188 templates/js/translated/build.js:2804 +#: templates/js/translated/sales_order.js:1927 msgid "No Stock Available" msgstr "" -#: templates/js/translated/bom.js:1193 templates/js/translated/build.js:2790 +#: templates/js/translated/bom.js:1193 templates/js/translated/build.js:2808 msgid "Includes variant and substitute stock" msgstr "" -#: templates/js/translated/bom.js:1195 templates/js/translated/build.js:2792 +#: templates/js/translated/bom.js:1195 templates/js/translated/build.js:2810 #: templates/js/translated/part.js:1263 -#: templates/js/translated/sales_order.js:1943 +#: templates/js/translated/sales_order.js:1924 msgid "Includes variant stock" msgstr "" -#: templates/js/translated/bom.js:1197 templates/js/translated/build.js:2794 +#: templates/js/translated/bom.js:1197 templates/js/translated/build.js:2812 msgid "Includes substitute stock" msgstr "" -#: templates/js/translated/bom.js:1225 templates/js/translated/build.js:2777 +#: templates/js/translated/bom.js:1225 templates/js/translated/build.js:2795 msgid "Consumable item" msgstr "" @@ -12231,7 +12596,7 @@ msgstr "" msgid "No BOM items found" msgstr "" -#: templates/js/translated/bom.js:1657 templates/js/translated/build.js:2658 +#: templates/js/translated/bom.js:1657 templates/js/translated/build.js:2667 msgid "Required Part" msgstr "" @@ -12243,396 +12608,396 @@ msgstr "" msgid "Edit Build Order" msgstr "" -#: templates/js/translated/build.js:191 +#: templates/js/translated/build.js:194 msgid "Create Build Order" msgstr "" -#: templates/js/translated/build.js:223 +#: templates/js/translated/build.js:226 msgid "Cancel Build Order" msgstr "" -#: templates/js/translated/build.js:232 +#: templates/js/translated/build.js:235 msgid "Are you sure you wish to cancel this build?" msgstr "" -#: templates/js/translated/build.js:238 +#: templates/js/translated/build.js:241 msgid "Stock items have been allocated to this build order" msgstr "" -#: templates/js/translated/build.js:245 +#: templates/js/translated/build.js:248 msgid "There are incomplete outputs remaining for this build order" msgstr "" -#: templates/js/translated/build.js:297 +#: templates/js/translated/build.js:300 msgid "Build order is ready to be completed" msgstr "" -#: templates/js/translated/build.js:305 +#: templates/js/translated/build.js:308 msgid "This build order cannot be completed as there are incomplete outputs" msgstr "" -#: templates/js/translated/build.js:310 +#: templates/js/translated/build.js:313 msgid "Build Order is incomplete" msgstr "" -#: templates/js/translated/build.js:328 +#: templates/js/translated/build.js:331 msgid "Complete Build Order" msgstr "" -#: templates/js/translated/build.js:369 templates/js/translated/stock.js:127 +#: templates/js/translated/build.js:372 templates/js/translated/stock.js:127 #: templates/js/translated/stock.js:301 msgid "Next available serial number" msgstr "" -#: templates/js/translated/build.js:371 templates/js/translated/stock.js:129 +#: templates/js/translated/build.js:374 templates/js/translated/stock.js:129 #: templates/js/translated/stock.js:303 msgid "Latest serial number" msgstr "" -#: templates/js/translated/build.js:380 +#: templates/js/translated/build.js:383 msgid "The Bill of Materials contains trackable parts" msgstr "" -#: templates/js/translated/build.js:381 +#: templates/js/translated/build.js:384 msgid "Build outputs must be generated individually" msgstr "" -#: templates/js/translated/build.js:389 +#: templates/js/translated/build.js:392 msgid "Trackable parts can have serial numbers specified" msgstr "" -#: templates/js/translated/build.js:390 +#: templates/js/translated/build.js:393 msgid "Enter serial numbers to generate multiple single build outputs" msgstr "" -#: templates/js/translated/build.js:397 +#: templates/js/translated/build.js:400 msgid "Create Build Output" msgstr "" -#: templates/js/translated/build.js:428 +#: templates/js/translated/build.js:431 msgid "Allocate stock items to this build output" msgstr "" -#: templates/js/translated/build.js:436 +#: templates/js/translated/build.js:439 msgid "Deallocate stock from build output" msgstr "" -#: templates/js/translated/build.js:445 +#: templates/js/translated/build.js:448 msgid "Complete build output" msgstr "" -#: templates/js/translated/build.js:453 +#: templates/js/translated/build.js:456 msgid "Scrap build output" msgstr "" -#: templates/js/translated/build.js:460 +#: templates/js/translated/build.js:463 msgid "Delete build output" msgstr "" -#: templates/js/translated/build.js:480 +#: templates/js/translated/build.js:483 msgid "Are you sure you wish to deallocate the selected stock items from this build?" msgstr "" -#: templates/js/translated/build.js:498 +#: templates/js/translated/build.js:501 msgid "Deallocate Stock Items" msgstr "" -#: templates/js/translated/build.js:584 templates/js/translated/build.js:711 -#: templates/js/translated/build.js:836 +#: templates/js/translated/build.js:587 templates/js/translated/build.js:714 +#: templates/js/translated/build.js:839 msgid "Select Build Outputs" msgstr "" -#: templates/js/translated/build.js:585 templates/js/translated/build.js:712 -#: templates/js/translated/build.js:837 +#: templates/js/translated/build.js:588 templates/js/translated/build.js:715 +#: templates/js/translated/build.js:840 msgid "At least one build output must be selected" msgstr "" -#: templates/js/translated/build.js:599 +#: templates/js/translated/build.js:602 msgid "Selected build outputs will be marked as complete" msgstr "" -#: templates/js/translated/build.js:603 templates/js/translated/build.js:736 -#: templates/js/translated/build.js:859 +#: templates/js/translated/build.js:606 templates/js/translated/build.js:739 +#: templates/js/translated/build.js:862 msgid "Output" msgstr "" -#: templates/js/translated/build.js:630 +#: templates/js/translated/build.js:633 msgid "Complete Build Outputs" msgstr "" -#: templates/js/translated/build.js:727 +#: templates/js/translated/build.js:730 msgid "Selected build outputs will be marked as scrapped" msgstr "" -#: templates/js/translated/build.js:729 +#: templates/js/translated/build.js:732 msgid "Scrapped output are marked as rejected" msgstr "" -#: templates/js/translated/build.js:730 +#: templates/js/translated/build.js:733 msgid "Allocated stock items will no longer be available" msgstr "" -#: templates/js/translated/build.js:731 +#: templates/js/translated/build.js:734 msgid "The completion status of the build order will not be adjusted" msgstr "" -#: templates/js/translated/build.js:761 +#: templates/js/translated/build.js:764 msgid "Scrap Build Outputs" msgstr "" -#: templates/js/translated/build.js:851 +#: templates/js/translated/build.js:854 msgid "Selected build outputs will be deleted" msgstr "" -#: templates/js/translated/build.js:853 +#: templates/js/translated/build.js:856 msgid "Build output data will be permanently deleted" msgstr "" -#: templates/js/translated/build.js:854 +#: templates/js/translated/build.js:857 msgid "Allocated stock items will be returned to stock" msgstr "" -#: templates/js/translated/build.js:872 +#: templates/js/translated/build.js:875 msgid "Delete Build Outputs" msgstr "" -#: templates/js/translated/build.js:959 +#: templates/js/translated/build.js:962 msgid "Delete allocations" msgstr "" -#: templates/js/translated/build.js:966 +#: templates/js/translated/build.js:969 msgid "Delete Stock Allocations" msgstr "" -#: templates/js/translated/build.js:989 +#: templates/js/translated/build.js:992 msgid "No allocated stock" msgstr "" -#: templates/js/translated/build.js:1045 +#: templates/js/translated/build.js:1048 msgid "Stock item" msgstr "" -#: templates/js/translated/build.js:1070 +#: templates/js/translated/build.js:1073 msgid "Edit build allocation" msgstr "" -#: templates/js/translated/build.js:1071 +#: templates/js/translated/build.js:1074 msgid "Delete build allocation" msgstr "" -#: templates/js/translated/build.js:1089 +#: templates/js/translated/build.js:1092 msgid "Edit Build Allocation" msgstr "" -#: templates/js/translated/build.js:1102 +#: templates/js/translated/build.js:1105 msgid "Delete Build Allocation" msgstr "" -#: templates/js/translated/build.js:1133 +#: templates/js/translated/build.js:1136 msgid "No build order allocations found" msgstr "" -#: templates/js/translated/build.js:1178 +#: templates/js/translated/build.js:1181 msgid "Location not specified" msgstr "" -#: templates/js/translated/build.js:1200 +#: templates/js/translated/build.js:1203 msgid "Complete outputs" msgstr "" -#: templates/js/translated/build.js:1218 +#: templates/js/translated/build.js:1221 msgid "Scrap outputs" msgstr "" -#: templates/js/translated/build.js:1236 +#: templates/js/translated/build.js:1239 msgid "Delete outputs" msgstr "" -#: templates/js/translated/build.js:1289 +#: templates/js/translated/build.js:1292 msgid "build output" msgstr "" -#: templates/js/translated/build.js:1290 +#: templates/js/translated/build.js:1293 msgid "build outputs" msgstr "" -#: templates/js/translated/build.js:1294 +#: templates/js/translated/build.js:1297 msgid "Build output actions" msgstr "" -#: templates/js/translated/build.js:1470 +#: templates/js/translated/build.js:1473 msgid "No active build outputs found" msgstr "" -#: templates/js/translated/build.js:1563 +#: templates/js/translated/build.js:1566 msgid "Allocated Lines" msgstr "" -#: templates/js/translated/build.js:1577 +#: templates/js/translated/build.js:1580 msgid "Required Tests" msgstr "" -#: templates/js/translated/build.js:1749 -#: templates/js/translated/purchase_order.js:611 -#: templates/js/translated/sales_order.js:1207 +#: templates/js/translated/build.js:1752 +#: templates/js/translated/purchase_order.js:594 +#: templates/js/translated/sales_order.js:1173 msgid "Select Parts" msgstr "" -#: templates/js/translated/build.js:1750 -#: templates/js/translated/sales_order.js:1208 +#: templates/js/translated/build.js:1753 +#: templates/js/translated/sales_order.js:1174 msgid "You must select at least one part to allocate" msgstr "" -#: templates/js/translated/build.js:1813 -#: templates/js/translated/sales_order.js:1157 +#: templates/js/translated/build.js:1816 +#: templates/js/translated/sales_order.js:1123 msgid "Specify stock allocation quantity" msgstr "" -#: templates/js/translated/build.js:1890 +#: templates/js/translated/build.js:1893 msgid "All Parts Allocated" msgstr "" -#: templates/js/translated/build.js:1891 +#: templates/js/translated/build.js:1894 msgid "All selected parts have been fully allocated" msgstr "" -#: templates/js/translated/build.js:1905 -#: templates/js/translated/sales_order.js:1222 +#: templates/js/translated/build.js:1908 +#: templates/js/translated/sales_order.js:1188 msgid "Select source location (leave blank to take from all locations)" msgstr "" -#: templates/js/translated/build.js:1933 +#: templates/js/translated/build.js:1936 msgid "Allocate Stock Items to Build Order" msgstr "" -#: templates/js/translated/build.js:1944 -#: templates/js/translated/sales_order.js:1319 +#: templates/js/translated/build.js:1947 +#: templates/js/translated/sales_order.js:1285 msgid "No matching stock locations" msgstr "" -#: templates/js/translated/build.js:2017 -#: templates/js/translated/sales_order.js:1398 +#: templates/js/translated/build.js:2020 +#: templates/js/translated/sales_order.js:1364 msgid "No matching stock items" msgstr "" -#: templates/js/translated/build.js:2114 +#: templates/js/translated/build.js:2117 msgid "Automatic Stock Allocation" msgstr "" -#: templates/js/translated/build.js:2115 +#: templates/js/translated/build.js:2118 msgid "Stock items will be automatically allocated to this build order, according to the provided guidelines" msgstr "" -#: templates/js/translated/build.js:2117 +#: templates/js/translated/build.js:2120 msgid "If a location is specified, stock will only be allocated from that location" msgstr "" -#: templates/js/translated/build.js:2118 +#: templates/js/translated/build.js:2121 msgid "If stock is considered interchangeable, it will be allocated from the first location it is found" msgstr "" -#: templates/js/translated/build.js:2119 +#: templates/js/translated/build.js:2122 msgid "If substitute stock is allowed, it will be used where stock of the primary part cannot be found" msgstr "" -#: templates/js/translated/build.js:2149 +#: templates/js/translated/build.js:2152 msgid "Allocate Stock Items" msgstr "" -#: templates/js/translated/build.js:2254 +#: templates/js/translated/build.js:2257 msgid "No builds matching query" msgstr "" -#: templates/js/translated/build.js:2289 templates/js/translated/build.js:2652 +#: templates/js/translated/build.js:2292 templates/js/translated/build.js:2661 #: templates/js/translated/forms.js:2196 templates/js/translated/forms.js:2212 #: templates/js/translated/part.js:2322 templates/js/translated/part.js:2761 -#: templates/js/translated/stock.js:2068 templates/js/translated/stock.js:2795 +#: templates/js/translated/stock.js:2069 templates/js/translated/stock.js:2796 msgid "Select" msgstr "" -#: templates/js/translated/build.js:2303 +#: templates/js/translated/build.js:2306 msgid "Build order is overdue" msgstr "" -#: templates/js/translated/build.js:2385 templates/js/translated/stock.js:3126 +#: templates/js/translated/build.js:2388 templates/js/translated/stock.js:3127 msgid "No user information" msgstr "" -#: templates/js/translated/build.js:2561 -#: templates/js/translated/sales_order.js:1682 +#: templates/js/translated/build.js:2568 +#: templates/js/translated/sales_order.js:1663 msgid "Edit stock allocation" msgstr "" -#: templates/js/translated/build.js:2562 -#: templates/js/translated/sales_order.js:1683 +#: templates/js/translated/build.js:2569 +#: templates/js/translated/sales_order.js:1664 msgid "Delete stock allocation" msgstr "" -#: templates/js/translated/build.js:2577 +#: templates/js/translated/build.js:2584 msgid "Edit Allocation" msgstr "" -#: templates/js/translated/build.js:2589 +#: templates/js/translated/build.js:2596 msgid "Remove Allocation" msgstr "" -#: templates/js/translated/build.js:2628 +#: templates/js/translated/build.js:2636 msgid "build line" msgstr "" -#: templates/js/translated/build.js:2629 +#: templates/js/translated/build.js:2637 msgid "build lines" msgstr "" -#: templates/js/translated/build.js:2647 +#: templates/js/translated/build.js:2656 msgid "No build lines found" msgstr "" -#: templates/js/translated/build.js:2677 templates/js/translated/part.js:793 +#: templates/js/translated/build.js:2686 templates/js/translated/part.js:793 #: templates/js/translated/part.js:1209 msgid "Trackable part" msgstr "" -#: templates/js/translated/build.js:2720 +#: templates/js/translated/build.js:2729 msgid "Gets Inherited" msgstr "" -#: templates/js/translated/build.js:2730 +#: templates/js/translated/build.js:2748 msgid "Unit Quantity" msgstr "" -#: templates/js/translated/build.js:2782 -#: templates/js/translated/sales_order.js:1951 +#: templates/js/translated/build.js:2800 +#: templates/js/translated/sales_order.js:1932 msgid "Sufficient stock available" msgstr "" -#: templates/js/translated/build.js:2837 +#: templates/js/translated/build.js:2855 msgid "Consumable Item" msgstr "" -#: templates/js/translated/build.js:2844 +#: templates/js/translated/build.js:2862 msgid "Tracked item" msgstr "" -#: templates/js/translated/build.js:2845 +#: templates/js/translated/build.js:2863 msgid "Allocate tracked items against individual build outputs" msgstr "" -#: templates/js/translated/build.js:2853 -#: templates/js/translated/sales_order.js:2052 +#: templates/js/translated/build.js:2871 +#: templates/js/translated/sales_order.js:2033 msgid "Build stock" msgstr "" -#: templates/js/translated/build.js:2858 templates/js/translated/stock.js:1953 +#: templates/js/translated/build.js:2876 templates/js/translated/stock.js:1954 msgid "Order stock" msgstr "" -#: templates/js/translated/build.js:2862 -#: templates/js/translated/sales_order.js:2046 +#: templates/js/translated/build.js:2880 +#: templates/js/translated/sales_order.js:2027 msgid "Allocate stock" msgstr "" -#: templates/js/translated/build.js:2866 +#: templates/js/translated/build.js:2884 msgid "Remove stock allocation" msgstr "" @@ -12641,7 +13006,7 @@ msgid "Add Manufacturer" msgstr "" #: templates/js/translated/company.js:111 -#: templates/js/translated/company.js:213 +#: templates/js/translated/company.js:214 msgid "Add Manufacturer Part" msgstr "" @@ -12649,231 +13014,231 @@ msgstr "" msgid "Edit Manufacturer Part" msgstr "" -#: templates/js/translated/company.js:201 +#: templates/js/translated/company.js:202 #: templates/js/translated/purchase_order.js:93 msgid "Add Supplier" msgstr "" -#: templates/js/translated/company.js:243 -#: templates/js/translated/purchase_order.js:318 +#: templates/js/translated/company.js:244 +#: templates/js/translated/purchase_order.js:301 msgid "Add Supplier Part" msgstr "" -#: templates/js/translated/company.js:344 +#: templates/js/translated/company.js:345 msgid "All selected supplier parts will be deleted" msgstr "" -#: templates/js/translated/company.js:360 +#: templates/js/translated/company.js:361 msgid "Delete Supplier Parts" msgstr "" -#: templates/js/translated/company.js:466 +#: templates/js/translated/company.js:467 msgid "Add new Company" msgstr "" -#: templates/js/translated/company.js:546 +#: templates/js/translated/company.js:547 msgid "Parts Supplied" msgstr "" -#: templates/js/translated/company.js:555 +#: templates/js/translated/company.js:556 msgid "Parts Manufactured" msgstr "" -#: templates/js/translated/company.js:570 +#: templates/js/translated/company.js:571 msgid "No company information found" msgstr "" -#: templates/js/translated/company.js:619 +#: templates/js/translated/company.js:620 msgid "Create New Contact" msgstr "" -#: templates/js/translated/company.js:635 -#: templates/js/translated/company.js:758 +#: templates/js/translated/company.js:636 +#: templates/js/translated/company.js:759 msgid "Edit Contact" msgstr "" -#: templates/js/translated/company.js:672 +#: templates/js/translated/company.js:673 msgid "All selected contacts will be deleted" msgstr "" -#: templates/js/translated/company.js:678 -#: templates/js/translated/company.js:742 +#: templates/js/translated/company.js:679 +#: templates/js/translated/company.js:743 msgid "Role" msgstr "" -#: templates/js/translated/company.js:686 +#: templates/js/translated/company.js:687 msgid "Delete Contacts" msgstr "" -#: templates/js/translated/company.js:717 +#: templates/js/translated/company.js:718 msgid "No contacts found" msgstr "" -#: templates/js/translated/company.js:730 +#: templates/js/translated/company.js:731 msgid "Phone Number" msgstr "" -#: templates/js/translated/company.js:736 +#: templates/js/translated/company.js:737 msgid "Email Address" msgstr "" -#: templates/js/translated/company.js:762 +#: templates/js/translated/company.js:763 msgid "Delete Contact" msgstr "" -#: templates/js/translated/company.js:859 +#: templates/js/translated/company.js:860 msgid "Create New Address" msgstr "" -#: templates/js/translated/company.js:874 -#: templates/js/translated/company.js:1035 +#: templates/js/translated/company.js:875 +#: templates/js/translated/company.js:1036 msgid "Edit Address" msgstr "" -#: templates/js/translated/company.js:909 +#: templates/js/translated/company.js:910 msgid "All selected addresses will be deleted" msgstr "" -#: templates/js/translated/company.js:923 +#: templates/js/translated/company.js:924 msgid "Delete Addresses" msgstr "" -#: templates/js/translated/company.js:950 +#: templates/js/translated/company.js:951 msgid "No addresses found" msgstr "" -#: templates/js/translated/company.js:989 +#: templates/js/translated/company.js:990 msgid "Postal city" msgstr "" -#: templates/js/translated/company.js:995 +#: templates/js/translated/company.js:996 msgid "State/province" msgstr "" -#: templates/js/translated/company.js:1007 +#: templates/js/translated/company.js:1008 msgid "Courier notes" msgstr "" -#: templates/js/translated/company.js:1013 +#: templates/js/translated/company.js:1014 msgid "Internal notes" msgstr "" -#: templates/js/translated/company.js:1039 +#: templates/js/translated/company.js:1040 msgid "Delete Address" msgstr "" -#: templates/js/translated/company.js:1112 +#: templates/js/translated/company.js:1113 msgid "All selected manufacturer parts will be deleted" msgstr "" -#: templates/js/translated/company.js:1127 +#: templates/js/translated/company.js:1128 msgid "Delete Manufacturer Parts" msgstr "" -#: templates/js/translated/company.js:1161 +#: templates/js/translated/company.js:1162 msgid "All selected parameters will be deleted" msgstr "" -#: templates/js/translated/company.js:1175 +#: templates/js/translated/company.js:1176 msgid "Delete Parameters" msgstr "" -#: templates/js/translated/company.js:1191 -#: templates/js/translated/company.js:1479 templates/js/translated/part.js:2250 +#: templates/js/translated/company.js:1192 +#: templates/js/translated/company.js:1480 templates/js/translated/part.js:2250 msgid "Order parts" msgstr "" -#: templates/js/translated/company.js:1208 +#: templates/js/translated/company.js:1209 msgid "Delete manufacturer parts" msgstr "" -#: templates/js/translated/company.js:1240 +#: templates/js/translated/company.js:1241 msgid "Manufacturer part actions" msgstr "" -#: templates/js/translated/company.js:1259 +#: templates/js/translated/company.js:1260 msgid "No manufacturer parts found" msgstr "" -#: templates/js/translated/company.js:1279 -#: templates/js/translated/company.js:1567 templates/js/translated/part.js:801 +#: templates/js/translated/company.js:1280 +#: templates/js/translated/company.js:1568 templates/js/translated/part.js:801 #: templates/js/translated/part.js:1217 msgid "Template part" msgstr "" -#: templates/js/translated/company.js:1283 -#: templates/js/translated/company.js:1571 templates/js/translated/part.js:805 +#: templates/js/translated/company.js:1284 +#: templates/js/translated/company.js:1572 templates/js/translated/part.js:805 #: templates/js/translated/part.js:1221 msgid "Assembled part" msgstr "" -#: templates/js/translated/company.js:1403 templates/js/translated/part.js:1471 +#: templates/js/translated/company.js:1404 templates/js/translated/part.js:1471 msgid "No parameters found" msgstr "" -#: templates/js/translated/company.js:1438 templates/js/translated/part.js:1534 +#: templates/js/translated/company.js:1439 templates/js/translated/part.js:1534 msgid "Edit parameter" msgstr "" -#: templates/js/translated/company.js:1439 templates/js/translated/part.js:1535 +#: templates/js/translated/company.js:1440 templates/js/translated/part.js:1535 msgid "Delete parameter" msgstr "" -#: templates/js/translated/company.js:1456 templates/js/translated/part.js:1440 +#: templates/js/translated/company.js:1457 templates/js/translated/part.js:1440 msgid "Edit Parameter" msgstr "" -#: templates/js/translated/company.js:1465 templates/js/translated/part.js:1556 +#: templates/js/translated/company.js:1466 templates/js/translated/part.js:1556 msgid "Delete Parameter" msgstr "" -#: templates/js/translated/company.js:1496 +#: templates/js/translated/company.js:1497 msgid "Delete supplier parts" msgstr "" -#: templates/js/translated/company.js:1546 +#: templates/js/translated/company.js:1547 msgid "No supplier parts found" msgstr "" -#: templates/js/translated/company.js:1664 +#: templates/js/translated/company.js:1665 msgid "Base Units" msgstr "" -#: templates/js/translated/company.js:1694 +#: templates/js/translated/company.js:1695 msgid "Availability" msgstr "" -#: templates/js/translated/company.js:1725 +#: templates/js/translated/company.js:1726 msgid "Edit supplier part" msgstr "" -#: templates/js/translated/company.js:1726 +#: templates/js/translated/company.js:1727 msgid "Delete supplier part" msgstr "" -#: templates/js/translated/company.js:1779 +#: templates/js/translated/company.js:1780 #: templates/js/translated/pricing.js:694 msgid "Delete Price Break" msgstr "" -#: templates/js/translated/company.js:1789 +#: templates/js/translated/company.js:1790 #: templates/js/translated/pricing.js:712 msgid "Edit Price Break" msgstr "" -#: templates/js/translated/company.js:1804 +#: templates/js/translated/company.js:1805 msgid "No price break information found" msgstr "" -#: templates/js/translated/company.js:1833 +#: templates/js/translated/company.js:1834 msgid "Last updated" msgstr "" -#: templates/js/translated/company.js:1840 +#: templates/js/translated/company.js:1841 msgid "Edit price break" msgstr "" -#: templates/js/translated/company.js:1841 +#: templates/js/translated/company.js:1842 msgid "Delete price break" msgstr "" @@ -12977,19 +13342,19 @@ msgstr "" msgid "Select Columns" msgstr "" -#: templates/js/translated/helpers.js:80 +#: templates/js/translated/helpers.js:81 msgid "YES" msgstr "" -#: templates/js/translated/helpers.js:83 +#: templates/js/translated/helpers.js:84 msgid "NO" msgstr "" -#: templates/js/translated/helpers.js:96 +#: templates/js/translated/helpers.js:97 msgid "True" msgstr "" -#: templates/js/translated/helpers.js:97 +#: templates/js/translated/helpers.js:98 msgid "False" msgstr "" @@ -13131,7 +13496,7 @@ msgid "Delete Line" msgstr "" #: templates/js/translated/order.js:306 -#: templates/js/translated/purchase_order.js:2060 +#: templates/js/translated/purchase_order.js:2044 msgid "No line items found" msgstr "" @@ -13366,19 +13731,19 @@ msgid "Delete Part Parameter Template" msgstr "" #: templates/js/translated/part.js:1723 -#: templates/js/translated/purchase_order.js:1724 +#: templates/js/translated/purchase_order.js:1708 msgid "No purchase orders found" msgstr "" #: templates/js/translated/part.js:1867 -#: templates/js/translated/purchase_order.js:2223 +#: templates/js/translated/purchase_order.js:2207 #: templates/js/translated/return_order.js:754 -#: templates/js/translated/sales_order.js:1911 +#: templates/js/translated/sales_order.js:1892 msgid "This line item is overdue" msgstr "" #: templates/js/translated/part.js:1913 -#: templates/js/translated/purchase_order.js:2290 +#: templates/js/translated/purchase_order.js:2274 msgid "Receive line item" msgstr "" @@ -13419,7 +13784,7 @@ msgid "No category" msgstr "" #: templates/js/translated/part.js:2550 templates/js/translated/part.js:2680 -#: templates/js/translated/stock.js:2754 +#: templates/js/translated/stock.js:2755 msgid "Display as list" msgstr "" @@ -13431,7 +13796,7 @@ msgstr "" msgid "No subcategories found" msgstr "" -#: templates/js/translated/part.js:2700 templates/js/translated/stock.js:2774 +#: templates/js/translated/part.js:2700 templates/js/translated/stock.js:2775 msgid "Display as tree" msgstr "" @@ -13483,23 +13848,23 @@ msgstr "" msgid "Speculative" msgstr "" -#: templates/js/translated/part.js:3128 +#: templates/js/translated/part.js:3144 msgid "No scheduling information available for this part" msgstr "" -#: templates/js/translated/part.js:3134 +#: templates/js/translated/part.js:3150 msgid "Error fetching scheduling information for this part" msgstr "" -#: templates/js/translated/part.js:3230 +#: templates/js/translated/part.js:3246 msgid "Scheduled Stock Quantities" msgstr "" -#: templates/js/translated/part.js:3246 +#: templates/js/translated/part.js:3262 msgid "Maximum Quantity" msgstr "" -#: templates/js/translated/part.js:3291 +#: templates/js/translated/part.js:3307 msgid "Minimum Stock Level" msgstr "" @@ -13575,267 +13940,243 @@ msgstr "" msgid "Purchase Price History" msgstr "" -#: templates/js/translated/pricing.js:894 +#: templates/js/translated/pricing.js:892 msgid "No sales history data available" msgstr "" -#: templates/js/translated/pricing.js:916 +#: templates/js/translated/pricing.js:914 msgid "Sale Price History" msgstr "" -#: templates/js/translated/pricing.js:1005 +#: templates/js/translated/pricing.js:1003 msgid "No variant data available" msgstr "" -#: templates/js/translated/pricing.js:1045 +#: templates/js/translated/pricing.js:1043 msgid "Variant Part" msgstr "" -#: templates/js/translated/purchase_order.js:169 -msgid "Select purchase order to duplicate" -msgstr "" - -#: templates/js/translated/purchase_order.js:176 -msgid "Duplicate Line Items" -msgstr "" - -#: templates/js/translated/purchase_order.js:177 -msgid "Duplicate all line items from the selected order" -msgstr "" - -#: templates/js/translated/purchase_order.js:184 -msgid "Duplicate Extra Lines" -msgstr "" - -#: templates/js/translated/purchase_order.js:185 -msgid "Duplicate extra line items from the selected order" -msgstr "" - -#: templates/js/translated/purchase_order.js:206 +#: templates/js/translated/purchase_order.js:188 msgid "Edit Purchase Order" msgstr "" -#: templates/js/translated/purchase_order.js:223 +#: templates/js/translated/purchase_order.js:205 msgid "Duplication Options" msgstr "" -#: templates/js/translated/purchase_order.js:431 +#: templates/js/translated/purchase_order.js:414 msgid "Complete Purchase Order" msgstr "" -#: templates/js/translated/purchase_order.js:448 +#: templates/js/translated/purchase_order.js:431 #: templates/js/translated/return_order.js:210 -#: templates/js/translated/sales_order.js:552 +#: templates/js/translated/sales_order.js:511 msgid "Mark this order as complete?" msgstr "" -#: templates/js/translated/purchase_order.js:454 +#: templates/js/translated/purchase_order.js:437 msgid "All line items have been received" msgstr "" -#: templates/js/translated/purchase_order.js:459 +#: templates/js/translated/purchase_order.js:442 msgid "This order has line items which have not been marked as received." msgstr "" -#: templates/js/translated/purchase_order.js:460 +#: templates/js/translated/purchase_order.js:443 msgid "Completing this order means that the order and line items will no longer be editable." msgstr "" -#: templates/js/translated/purchase_order.js:483 +#: templates/js/translated/purchase_order.js:466 msgid "Cancel Purchase Order" msgstr "" -#: templates/js/translated/purchase_order.js:488 +#: templates/js/translated/purchase_order.js:471 msgid "Are you sure you wish to cancel this purchase order?" msgstr "" -#: templates/js/translated/purchase_order.js:494 +#: templates/js/translated/purchase_order.js:477 msgid "This purchase order can not be cancelled" msgstr "" -#: templates/js/translated/purchase_order.js:515 +#: templates/js/translated/purchase_order.js:498 #: templates/js/translated/return_order.js:164 msgid "After placing this order, line items will no longer be editable." msgstr "" -#: templates/js/translated/purchase_order.js:520 +#: templates/js/translated/purchase_order.js:503 msgid "Issue Purchase Order" msgstr "" -#: templates/js/translated/purchase_order.js:612 +#: templates/js/translated/purchase_order.js:595 msgid "At least one purchaseable part must be selected" msgstr "" -#: templates/js/translated/purchase_order.js:637 +#: templates/js/translated/purchase_order.js:620 msgid "Quantity to order" msgstr "" -#: templates/js/translated/purchase_order.js:646 +#: templates/js/translated/purchase_order.js:629 msgid "New supplier part" msgstr "" -#: templates/js/translated/purchase_order.js:664 +#: templates/js/translated/purchase_order.js:647 msgid "New purchase order" msgstr "" -#: templates/js/translated/purchase_order.js:705 +#: templates/js/translated/purchase_order.js:688 msgid "Add to purchase order" msgstr "" -#: templates/js/translated/purchase_order.js:755 +#: templates/js/translated/purchase_order.js:738 msgid "Merge" msgstr "" -#: templates/js/translated/purchase_order.js:859 +#: templates/js/translated/purchase_order.js:842 msgid "No matching supplier parts" msgstr "" -#: templates/js/translated/purchase_order.js:878 +#: templates/js/translated/purchase_order.js:861 msgid "No matching purchase orders" msgstr "" -#: templates/js/translated/purchase_order.js:1073 +#: templates/js/translated/purchase_order.js:1056 #: templates/js/translated/return_order.js:490 msgid "Select Line Items" msgstr "" -#: templates/js/translated/purchase_order.js:1074 +#: templates/js/translated/purchase_order.js:1057 #: templates/js/translated/return_order.js:491 msgid "At least one line item must be selected" msgstr "" -#: templates/js/translated/purchase_order.js:1104 +#: templates/js/translated/purchase_order.js:1087 msgid "Received Quantity" msgstr "" -#: templates/js/translated/purchase_order.js:1115 +#: templates/js/translated/purchase_order.js:1098 msgid "Quantity to receive" msgstr "" -#: templates/js/translated/purchase_order.js:1170 +#: templates/js/translated/purchase_order.js:1153 #: templates/js/translated/stock.js:1215 msgid "Specify packaging for incoming stock items" msgstr "" -#: templates/js/translated/purchase_order.js:1223 +#: templates/js/translated/purchase_order.js:1206 msgid "Stock Status" msgstr "" -#: templates/js/translated/purchase_order.js:1237 +#: templates/js/translated/purchase_order.js:1220 msgid "Add barcode" msgstr "" -#: templates/js/translated/purchase_order.js:1238 +#: templates/js/translated/purchase_order.js:1221 msgid "Remove barcode" msgstr "" -#: templates/js/translated/purchase_order.js:1241 +#: templates/js/translated/purchase_order.js:1224 msgid "Specify location" msgstr "" -#: templates/js/translated/purchase_order.js:1249 +#: templates/js/translated/purchase_order.js:1232 msgid "Add batch code" msgstr "" -#: templates/js/translated/purchase_order.js:1259 +#: templates/js/translated/purchase_order.js:1242 msgid "Specify packaging" msgstr "" -#: templates/js/translated/purchase_order.js:1270 +#: templates/js/translated/purchase_order.js:1253 msgid "Add serial numbers" msgstr "" -#: templates/js/translated/purchase_order.js:1281 +#: templates/js/translated/purchase_order.js:1264 msgid "Add note" msgstr "" -#: templates/js/translated/purchase_order.js:1338 +#: templates/js/translated/purchase_order.js:1321 msgid "Serials" msgstr "" -#: templates/js/translated/purchase_order.js:1368 +#: templates/js/translated/purchase_order.js:1351 msgid "Order Code" msgstr "" -#: templates/js/translated/purchase_order.js:1370 +#: templates/js/translated/purchase_order.js:1353 msgid "Quantity to Receive" msgstr "" -#: templates/js/translated/purchase_order.js:1395 +#: templates/js/translated/purchase_order.js:1379 #: templates/js/translated/return_order.js:559 msgid "Confirm receipt of items" msgstr "" -#: templates/js/translated/purchase_order.js:1396 +#: templates/js/translated/purchase_order.js:1380 msgid "Receive Purchase Order Items" msgstr "" -#: templates/js/translated/purchase_order.js:1464 +#: templates/js/translated/purchase_order.js:1448 msgid "Scan Item Barcode" msgstr "" -#: templates/js/translated/purchase_order.js:1465 +#: templates/js/translated/purchase_order.js:1449 msgid "Scan barcode on incoming item (must not match any existing stock items)" msgstr "" -#: templates/js/translated/purchase_order.js:1479 +#: templates/js/translated/purchase_order.js:1463 msgid "Invalid barcode data" msgstr "" -#: templates/js/translated/purchase_order.js:1751 +#: templates/js/translated/purchase_order.js:1735 #: templates/js/translated/return_order.js:285 -#: templates/js/translated/sales_order.js:810 -#: templates/js/translated/sales_order.js:1034 +#: templates/js/translated/sales_order.js:769 +#: templates/js/translated/sales_order.js:1007 msgid "Order is overdue" msgstr "" -#: templates/js/translated/purchase_order.js:1913 +#: templates/js/translated/purchase_order.js:1897 msgid "All selected Line items will be deleted" msgstr "" -#: templates/js/translated/purchase_order.js:1931 +#: templates/js/translated/purchase_order.js:1915 msgid "Delete selected Line items?" msgstr "" -#: templates/js/translated/purchase_order.js:1986 -#: templates/js/translated/sales_order.js:2106 +#: templates/js/translated/purchase_order.js:1970 +#: templates/js/translated/sales_order.js:2087 msgid "Duplicate Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2001 +#: templates/js/translated/purchase_order.js:1985 #: templates/js/translated/return_order.js:475 #: templates/js/translated/return_order.js:667 -#: templates/js/translated/sales_order.js:2119 +#: templates/js/translated/sales_order.js:2100 msgid "Edit Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2012 +#: templates/js/translated/purchase_order.js:1996 #: templates/js/translated/return_order.js:680 -#: templates/js/translated/sales_order.js:2130 +#: templates/js/translated/sales_order.js:2111 msgid "Delete Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2294 -#: templates/js/translated/sales_order.js:2060 +#: templates/js/translated/purchase_order.js:2278 +#: templates/js/translated/sales_order.js:2041 msgid "Duplicate line item" msgstr "" -#: templates/js/translated/purchase_order.js:2295 +#: templates/js/translated/purchase_order.js:2279 #: templates/js/translated/return_order.js:799 -#: templates/js/translated/sales_order.js:2061 +#: templates/js/translated/sales_order.js:2042 msgid "Edit line item" msgstr "" -#: templates/js/translated/purchase_order.js:2296 +#: templates/js/translated/purchase_order.js:2280 #: templates/js/translated/return_order.js:803 -#: templates/js/translated/sales_order.js:2067 +#: templates/js/translated/sales_order.js:2048 msgid "Delete line item" msgstr "" -#: templates/js/translated/report.js:49 -msgid "Print Report" -msgstr "" - #: templates/js/translated/report.js:68 msgid "Report print successful" msgstr "" @@ -13878,7 +14219,7 @@ msgid "No return orders found" msgstr "" #: templates/js/translated/return_order.js:299 -#: templates/js/translated/sales_order.js:824 +#: templates/js/translated/sales_order.js:783 msgid "Invalid Customer" msgstr "" @@ -13887,7 +14228,7 @@ msgid "Receive Return Order Items" msgstr "" #: templates/js/translated/return_order.js:691 -#: templates/js/translated/sales_order.js:2267 +#: templates/js/translated/sales_order.js:2248 msgid "No matching line items" msgstr "" @@ -13903,188 +14244,181 @@ msgstr "" msgid "Edit Sales Order" msgstr "" -#: templates/js/translated/sales_order.js:291 +#: templates/js/translated/sales_order.js:288 msgid "No stock items have been allocated to this shipment" msgstr "" -#: templates/js/translated/sales_order.js:296 -msgid "The following stock items will be shipped" -msgstr "" - -#: templates/js/translated/sales_order.js:336 +#: templates/js/translated/sales_order.js:294 msgid "Complete Shipment" msgstr "" -#: templates/js/translated/sales_order.js:360 +#: templates/js/translated/sales_order.js:318 msgid "Confirm Shipment" msgstr "" -#: templates/js/translated/sales_order.js:416 +#: templates/js/translated/sales_order.js:375 msgid "No pending shipments found" msgstr "" -#: templates/js/translated/sales_order.js:420 +#: templates/js/translated/sales_order.js:379 msgid "No stock items have been allocated to pending shipments" msgstr "" -#: templates/js/translated/sales_order.js:430 +#: templates/js/translated/sales_order.js:389 msgid "Complete Shipments" msgstr "" -#: templates/js/translated/sales_order.js:452 +#: templates/js/translated/sales_order.js:411 msgid "Skip" msgstr "" -#: templates/js/translated/sales_order.js:484 +#: templates/js/translated/sales_order.js:443 msgid "Ship Sales Order" msgstr "" -#: templates/js/translated/sales_order.js:500 +#: templates/js/translated/sales_order.js:459 msgid "Ship this order?" msgstr "" -#: templates/js/translated/sales_order.js:506 +#: templates/js/translated/sales_order.js:465 msgid "Order cannot be shipped as there are incomplete shipments" msgstr "" -#: templates/js/translated/sales_order.js:513 +#: templates/js/translated/sales_order.js:472 msgid "This order has line items which have not been completed." msgstr "" -#: templates/js/translated/sales_order.js:514 +#: templates/js/translated/sales_order.js:473 msgid "Shipping this order means that the order and line items will no longer be editable." msgstr "" -#: templates/js/translated/sales_order.js:572 +#: templates/js/translated/sales_order.js:531 msgid "Issue this Sales Order?" msgstr "" -#: templates/js/translated/sales_order.js:577 +#: templates/js/translated/sales_order.js:536 msgid "Issue Sales Order" msgstr "" -#: templates/js/translated/sales_order.js:596 +#: templates/js/translated/sales_order.js:555 msgid "Cancel Sales Order" msgstr "" -#: templates/js/translated/sales_order.js:601 +#: templates/js/translated/sales_order.js:560 msgid "Cancelling this order means that the order will no longer be editable." msgstr "" -#: templates/js/translated/sales_order.js:655 +#: templates/js/translated/sales_order.js:614 msgid "Create New Shipment" msgstr "" -#: templates/js/translated/sales_order.js:764 +#: templates/js/translated/sales_order.js:723 msgid "No sales orders found" msgstr "" -#: templates/js/translated/sales_order.js:944 +#: templates/js/translated/sales_order.js:907 msgid "Edit shipment" msgstr "" -#: templates/js/translated/sales_order.js:947 +#: templates/js/translated/sales_order.js:910 msgid "Complete shipment" msgstr "" -#: templates/js/translated/sales_order.js:952 +#: templates/js/translated/sales_order.js:915 msgid "Delete shipment" msgstr "" -#: templates/js/translated/sales_order.js:969 +#: templates/js/translated/sales_order.js:932 msgid "Edit Shipment" msgstr "" -#: templates/js/translated/sales_order.js:984 +#: templates/js/translated/sales_order.js:947 msgid "Delete Shipment" msgstr "" -#: templates/js/translated/sales_order.js:1017 +#: templates/js/translated/sales_order.js:989 msgid "No matching shipments found" msgstr "" -#: templates/js/translated/sales_order.js:1042 +#: templates/js/translated/sales_order.js:1015 msgid "Shipment Reference" msgstr "" -#: templates/js/translated/sales_order.js:1066 -#: templates/js/translated/sales_order.js:1565 +#: templates/js/translated/sales_order.js:1032 +#: templates/js/translated/sales_order.js:1531 msgid "Not shipped" msgstr "" -#: templates/js/translated/sales_order.js:1084 +#: templates/js/translated/sales_order.js:1050 msgid "Tracking" msgstr "" -#: templates/js/translated/sales_order.js:1088 +#: templates/js/translated/sales_order.js:1054 msgid "Invoice" msgstr "" -#: templates/js/translated/sales_order.js:1255 +#: templates/js/translated/sales_order.js:1221 msgid "Add Shipment" msgstr "" -#: templates/js/translated/sales_order.js:1306 +#: templates/js/translated/sales_order.js:1272 msgid "Confirm stock allocation" msgstr "" -#: templates/js/translated/sales_order.js:1307 +#: templates/js/translated/sales_order.js:1273 msgid "Allocate Stock Items to Sales Order" msgstr "" -#: templates/js/translated/sales_order.js:1513 +#: templates/js/translated/sales_order.js:1479 msgid "No sales order allocations found" msgstr "" -#: templates/js/translated/sales_order.js:1605 +#: templates/js/translated/sales_order.js:1571 msgid "Edit Stock Allocation" msgstr "" -#: templates/js/translated/sales_order.js:1619 +#: templates/js/translated/sales_order.js:1585 msgid "Confirm Delete Operation" msgstr "" -#: templates/js/translated/sales_order.js:1620 +#: templates/js/translated/sales_order.js:1586 msgid "Delete Stock Allocation" msgstr "" -#: templates/js/translated/sales_order.js:1659 -#: templates/js/translated/sales_order.js:1746 +#: templates/js/translated/sales_order.js:1640 +#: templates/js/translated/sales_order.js:1727 #: templates/js/translated/stock.js:1861 msgid "Shipped to customer" msgstr "" -#: templates/js/translated/sales_order.js:1667 -#: templates/js/translated/sales_order.js:1755 +#: templates/js/translated/sales_order.js:1648 +#: templates/js/translated/sales_order.js:1736 msgid "Stock location not specified" msgstr "" -#: templates/js/translated/sales_order.js:2044 -msgid "Allocate serial numbers" -msgstr "" - -#: templates/js/translated/sales_order.js:2048 -msgid "Purchase stock" -msgstr "" - -#: templates/js/translated/sales_order.js:2057 -#: templates/js/translated/sales_order.js:2245 -msgid "Calculate price" -msgstr "" - -#: templates/js/translated/sales_order.js:2071 -msgid "Cannot be deleted as items have been shipped" -msgstr "" - -#: templates/js/translated/sales_order.js:2074 -msgid "Cannot be deleted as items have been allocated" -msgstr "" - -#: templates/js/translated/sales_order.js:2145 +#: templates/js/translated/sales_order.js:2025 +#: templates/js/translated/sales_order.js:2126 msgid "Allocate Serial Numbers" msgstr "" -#: templates/js/translated/sales_order.js:2253 +#: templates/js/translated/sales_order.js:2029 +msgid "Purchase stock" +msgstr "" + +#: templates/js/translated/sales_order.js:2038 +#: templates/js/translated/sales_order.js:2226 +msgid "Calculate price" +msgstr "" + +#: templates/js/translated/sales_order.js:2052 +msgid "Cannot be deleted as items have been shipped" +msgstr "" + +#: templates/js/translated/sales_order.js:2055 +msgid "Cannot be deleted as items have been allocated" +msgstr "" + +#: templates/js/translated/sales_order.js:2234 msgid "Update Unit Price" msgstr "" @@ -14209,11 +14543,8 @@ msgid "Find Serial Number" msgstr "" #: templates/js/translated/stock.js:603 templates/js/translated/stock.js:604 -msgid "Enter serial number" -msgstr "" - #: templates/js/translated/stock.js:620 -msgid "Enter a serial number" +msgid "Enter serial number" msgstr "" #: templates/js/translated/stock.js:640 @@ -14284,7 +14615,7 @@ msgstr "" msgid "Add Stock" msgstr "" -#: templates/js/translated/stock.js:1049 users/models.py:396 +#: templates/js/translated/stock.js:1049 users/models.py:398 msgid "Add" msgstr "" @@ -14308,7 +14639,7 @@ msgstr "" msgid "Adjust packaging" msgstr "" -#: templates/js/translated/stock.js:1256 templates/js/translated/stock.js:3382 +#: templates/js/translated/stock.js:1256 templates/js/translated/stock.js:3383 msgid "Select Stock Items" msgstr "" @@ -14320,18 +14651,6 @@ msgstr "" msgid "Confirm stock adjustment" msgstr "" -#: templates/js/translated/stock.js:1448 -msgid "PASS" -msgstr "" - -#: templates/js/translated/stock.js:1450 -msgid "FAIL" -msgstr "" - -#: templates/js/translated/stock.js:1455 -msgid "NO RESULT" -msgstr "" - #: templates/js/translated/stock.js:1535 msgid "Pass test" msgstr "" @@ -14388,216 +14707,216 @@ msgstr "" msgid "No stock location set" msgstr "" -#: templates/js/translated/stock.js:1927 +#: templates/js/translated/stock.js:1928 msgid "Change stock status" msgstr "" -#: templates/js/translated/stock.js:1936 +#: templates/js/translated/stock.js:1937 msgid "Merge stock" msgstr "" -#: templates/js/translated/stock.js:1985 +#: templates/js/translated/stock.js:1986 msgid "Delete stock" msgstr "" -#: templates/js/translated/stock.js:2038 +#: templates/js/translated/stock.js:2039 msgid "stock items" msgstr "" -#: templates/js/translated/stock.js:2043 +#: templates/js/translated/stock.js:2044 msgid "Scan to location" msgstr "" -#: templates/js/translated/stock.js:2054 +#: templates/js/translated/stock.js:2055 msgid "Stock Actions" msgstr "" -#: templates/js/translated/stock.js:2098 +#: templates/js/translated/stock.js:2099 msgid "Load installed items" msgstr "" -#: templates/js/translated/stock.js:2176 +#: templates/js/translated/stock.js:2177 msgid "Stock item is in production" msgstr "" -#: templates/js/translated/stock.js:2181 +#: templates/js/translated/stock.js:2182 msgid "Stock item assigned to sales order" msgstr "" -#: templates/js/translated/stock.js:2184 +#: templates/js/translated/stock.js:2185 msgid "Stock item assigned to customer" msgstr "" -#: templates/js/translated/stock.js:2187 +#: templates/js/translated/stock.js:2188 msgid "Serialized stock item has been allocated" msgstr "" -#: templates/js/translated/stock.js:2189 +#: templates/js/translated/stock.js:2190 msgid "Stock item has been fully allocated" msgstr "" -#: templates/js/translated/stock.js:2191 +#: templates/js/translated/stock.js:2192 msgid "Stock item has been partially allocated" msgstr "" -#: templates/js/translated/stock.js:2194 +#: templates/js/translated/stock.js:2195 msgid "Stock item has been installed in another item" msgstr "" -#: templates/js/translated/stock.js:2196 +#: templates/js/translated/stock.js:2197 msgid "Stock item has been consumed by a build order" msgstr "" -#: templates/js/translated/stock.js:2200 +#: templates/js/translated/stock.js:2201 msgid "Stock item has expired" msgstr "" -#: templates/js/translated/stock.js:2202 +#: templates/js/translated/stock.js:2203 msgid "Stock item will expire soon" msgstr "" -#: templates/js/translated/stock.js:2207 +#: templates/js/translated/stock.js:2208 msgid "Stock item has been rejected" msgstr "" -#: templates/js/translated/stock.js:2209 +#: templates/js/translated/stock.js:2210 msgid "Stock item is lost" msgstr "" -#: templates/js/translated/stock.js:2211 +#: templates/js/translated/stock.js:2212 msgid "Stock item is destroyed" msgstr "" -#: templates/js/translated/stock.js:2215 +#: templates/js/translated/stock.js:2216 #: templates/js/translated/table_filters.js:357 msgid "Depleted" msgstr "" -#: templates/js/translated/stock.js:2380 +#: templates/js/translated/stock.js:2381 msgid "Supplier part not specified" msgstr "" -#: templates/js/translated/stock.js:2427 +#: templates/js/translated/stock.js:2428 msgid "Stock Value" msgstr "" -#: templates/js/translated/stock.js:2555 +#: templates/js/translated/stock.js:2556 msgid "No stock items matching query" msgstr "" -#: templates/js/translated/stock.js:2658 +#: templates/js/translated/stock.js:2659 msgid "stock locations" msgstr "" -#: templates/js/translated/stock.js:2813 +#: templates/js/translated/stock.js:2814 msgid "Load Sublocations" msgstr "" -#: templates/js/translated/stock.js:2930 +#: templates/js/translated/stock.js:2931 msgid "Details" msgstr "" -#: templates/js/translated/stock.js:2934 +#: templates/js/translated/stock.js:2935 msgid "No changes" msgstr "" -#: templates/js/translated/stock.js:2946 +#: templates/js/translated/stock.js:2947 msgid "Part information unavailable" msgstr "" -#: templates/js/translated/stock.js:2968 +#: templates/js/translated/stock.js:2969 msgid "Location no longer exists" msgstr "" -#: templates/js/translated/stock.js:2985 +#: templates/js/translated/stock.js:2986 msgid "Build order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3000 +#: templates/js/translated/stock.js:3001 msgid "Purchase order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3017 +#: templates/js/translated/stock.js:3018 msgid "Sales Order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3034 +#: templates/js/translated/stock.js:3035 msgid "Return Order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3053 +#: templates/js/translated/stock.js:3054 msgid "Customer no longer exists" msgstr "" -#: templates/js/translated/stock.js:3071 +#: templates/js/translated/stock.js:3072 msgid "Stock item no longer exists" msgstr "" -#: templates/js/translated/stock.js:3089 +#: templates/js/translated/stock.js:3090 msgid "Added" msgstr "" -#: templates/js/translated/stock.js:3097 +#: templates/js/translated/stock.js:3098 msgid "Removed" msgstr "" -#: templates/js/translated/stock.js:3169 +#: templates/js/translated/stock.js:3170 msgid "No installed items" msgstr "" -#: templates/js/translated/stock.js:3223 templates/js/translated/stock.js:3259 +#: templates/js/translated/stock.js:3224 templates/js/translated/stock.js:3260 msgid "Uninstall Stock Item" msgstr "" -#: templates/js/translated/stock.js:3280 +#: templates/js/translated/stock.js:3281 msgid "Select stock item to uninstall" msgstr "" -#: templates/js/translated/stock.js:3301 +#: templates/js/translated/stock.js:3302 msgid "Install another stock item into this item" msgstr "" -#: templates/js/translated/stock.js:3302 +#: templates/js/translated/stock.js:3303 msgid "Stock items can only be installed if they meet the following criteria" msgstr "" -#: templates/js/translated/stock.js:3304 +#: templates/js/translated/stock.js:3305 msgid "The Stock Item links to a Part which is the BOM for this Stock Item" msgstr "" -#: templates/js/translated/stock.js:3305 +#: templates/js/translated/stock.js:3306 msgid "The Stock Item is currently available in stock" msgstr "" -#: templates/js/translated/stock.js:3306 +#: templates/js/translated/stock.js:3307 msgid "The Stock Item is not already installed in another item" msgstr "" -#: templates/js/translated/stock.js:3307 +#: templates/js/translated/stock.js:3308 msgid "The Stock Item is tracked by either a batch code or serial number" msgstr "" -#: templates/js/translated/stock.js:3320 +#: templates/js/translated/stock.js:3321 msgid "Select part to install" msgstr "" -#: templates/js/translated/stock.js:3383 +#: templates/js/translated/stock.js:3384 msgid "Select one or more stock items" msgstr "" -#: templates/js/translated/stock.js:3396 +#: templates/js/translated/stock.js:3397 msgid "Selected stock items" msgstr "" -#: templates/js/translated/stock.js:3400 +#: templates/js/translated/stock.js:3401 msgid "Change Stock Status" msgstr "" -#: templates/js/translated/stock.js:3477 +#: templates/js/translated/stock.js:3478 msgid "This week" msgstr "" -#: templates/js/translated/stock.js:3485 +#: templates/js/translated/stock.js:3486 msgid "This month" msgstr "" @@ -14734,10 +15053,6 @@ msgstr "" msgid "Show items which are in production" msgstr "" -#: templates/js/translated/table_filters.js:372 -msgid "Include Variants" -msgstr "" - #: templates/js/translated/table_filters.js:373 msgid "Include stock items for variant parts" msgstr "" @@ -15012,10 +15327,6 @@ msgstr "" msgid "An error occurred while attempting to login via your social network account." msgstr "" -#: templates/socialaccount/authentication_error.html:13 -msgid "Contact your system administrator for further information." -msgstr "" - #: templates/socialaccount/login.html:13 #, python-format msgid "Connect %(provider)s" @@ -15141,27 +15452,27 @@ msgstr "" msgid "No" msgstr "" -#: users/admin.py:104 +#: users/admin.py:101 msgid "Users" msgstr "" -#: users/admin.py:105 +#: users/admin.py:102 msgid "Select which users are assigned to this group" msgstr "" -#: users/admin.py:249 +#: users/admin.py:246 msgid "The following users are members of multiple groups" msgstr "" -#: users/admin.py:283 +#: users/admin.py:280 msgid "Personal info" msgstr "" -#: users/admin.py:285 +#: users/admin.py:282 msgid "Permissions" msgstr "" -#: users/admin.py:288 +#: users/admin.py:285 msgid "Important dates" msgstr "" @@ -15205,35 +15516,35 @@ msgstr "" msgid "Revoked" msgstr "" -#: users/models.py:379 +#: users/models.py:381 msgid "Permission set" msgstr "" -#: users/models.py:388 +#: users/models.py:390 msgid "Group" msgstr "" -#: users/models.py:392 +#: users/models.py:394 msgid "View" msgstr "" -#: users/models.py:392 +#: users/models.py:394 msgid "Permission to view items" msgstr "" -#: users/models.py:396 +#: users/models.py:398 msgid "Permission to add items" msgstr "" -#: users/models.py:400 +#: users/models.py:402 msgid "Change" msgstr "" -#: users/models.py:402 +#: users/models.py:404 msgid "Permissions to edit items" msgstr "" -#: users/models.py:408 +#: users/models.py:410 msgid "Permission to delete items" msgstr "" diff --git a/src/backend/InvenTree/locale/ru/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/ru/LC_MESSAGES/django.po index 61343c8639..3d9e39a39c 100644 --- a/src/backend/InvenTree/locale/ru/LC_MESSAGES/django.po +++ b/src/backend/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: 2024-08-20 01:22+0000\n" -"PO-Revision-Date: 2024-08-20 19:51\n" +"POT-Creation-Date: 2024-11-04 03:11+0000\n" +"PO-Revision-Date: 2024-11-04 03:14\n" "Last-Translator: \n" "Language-Team: Russian\n" "Language: ru_RU\n" @@ -14,81 +14,89 @@ msgstr "" "X-Crowdin-Project: inventree\n" "X-Crowdin-Project-ID: 452300\n" "X-Crowdin-Language: ru\n" -"X-Crowdin-File: /[inventree.InvenTree] l10/src/backend/InvenTree/locale/en/LC_MESSAGES/django.po\n" -"X-Crowdin-File-ID: 216\n" +"X-Crowdin-File: /src/backend/InvenTree/locale/en/LC_MESSAGES/django.po\n" +"X-Crowdin-File-ID: 250\n" -#: InvenTree/api.py:269 +#: InvenTree/api.py:270 msgid "API endpoint not found" msgstr "Конечная точка API не обнаружена" -#: InvenTree/api.py:502 +#: InvenTree/api.py:387 +msgid "Invalid items list provided" +msgstr "" + +#: InvenTree/api.py:396 +msgid "Invalid filters provided" +msgstr "" + +#: InvenTree/api.py:401 +msgid "No items found to delete" +msgstr "" + +#: InvenTree/api.py:515 msgid "User does not have permission to view this model" msgstr "У пользователя недостаточно прав для просмотра этой модели!" -#: InvenTree/conversion.py:160 +#: InvenTree/conversion.py:161 #, python-brace-format msgid "Invalid unit provided ({unit})" msgstr "Предоставлено недопустимое значение ({unit})" -#: InvenTree/conversion.py:177 +#: InvenTree/conversion.py:178 msgid "No value provided" msgstr "Значение не указано" -#: InvenTree/conversion.py:204 +#: InvenTree/conversion.py:205 #, python-brace-format msgid "Could not convert {original} to {unit}" msgstr "Невозможно преобразовать {original} в {unit}" -#: InvenTree/conversion.py:206 -msgid "Invalid quantity supplied" -msgstr "Недопустимое количество" +#: InvenTree/conversion.py:207 InvenTree/conversion.py:221 +#: InvenTree/helpers.py:505 order/models.py:589 order/models.py:832 +msgid "Invalid quantity provided" +msgstr "недопустимое количество" -#: InvenTree/conversion.py:220 -#, python-brace-format -msgid "Invalid quantity supplied ({exc})" -msgstr "Недопустимое количество ({exc})" - -#: InvenTree/exceptions.py:108 +#: InvenTree/exceptions.py:104 msgid "Error details can be found in the admin panel" msgstr "Подробности об ошибке можно найти в панели администратора" -#: InvenTree/fields.py:136 +#: InvenTree/fields.py:135 msgid "Enter date" msgstr "Введите дату" -#: InvenTree/fields.py:205 InvenTree/models.py:929 build/serializers.py:468 -#: build/serializers.py:546 build/templates/build/sidebar.html:29 -#: company/models.py:836 +#: InvenTree/fields.py:204 InvenTree/models.py:928 build/serializers.py:512 +#: build/serializers.py:590 build/templates/build/sidebar.html:29 +#: company/models.py:833 #: company/templates/company/manufacturer_part_sidebar.html:11 #: company/templates/company/sidebar.html:37 -#: company/templates/company/supplier_part_sidebar.html:11 order/models.py:1380 +#: company/templates/company/supplier_part_sidebar.html:11 order/models.py:1397 #: order/templates/order/po_sidebar.html:11 #: order/templates/order/return_order_sidebar.html:9 #: order/templates/order/so_sidebar.html:17 part/admin.py:59 -#: part/models.py:3297 part/templates/part/part_sidebar.html:65 +#: part/models.py:3348 part/templates/part/part_sidebar.html:65 #: report/templates/report/inventree_build_order_report.html:172 -#: stock/admin.py:230 stock/models.py:2375 stock/models.py:2563 -#: stock/serializers.py:698 stock/serializers.py:856 stock/serializers.py:982 -#: stock/serializers.py:1032 stock/serializers.py:1343 -#: stock/serializers.py:1432 stock/serializers.py:1597 +#: stock/admin.py:231 stock/models.py:2494 stock/models.py:2679 +#: stock/serializers.py:725 stock/serializers.py:887 stock/serializers.py:1013 +#: stock/serializers.py:1063 stock/serializers.py:1374 +#: stock/serializers.py:1463 stock/serializers.py:1628 #: stock/templates/stock/stock_sidebar.html:25 #: templates/js/translated/barcode.js:143 templates/js/translated/bom.js:1265 -#: templates/js/translated/company.js:1684 templates/js/translated/order.js:372 +#: templates/js/translated/company.js:1685 templates/js/translated/order.js:372 #: templates/js/translated/part.js:1087 -#: templates/js/translated/purchase_order.js:2270 +#: templates/js/translated/purchase_order.js:2254 #: templates/js/translated/return_order.js:774 -#: templates/js/translated/sales_order.js:1103 -#: templates/js/translated/sales_order.js:2018 -#: templates/js/translated/stock.js:1621 templates/js/translated/stock.js:2513 +#: templates/js/translated/sales_order.js:1069 +#: templates/js/translated/sales_order.js:1999 +#: templates/js/translated/stock.js:1621 templates/js/translated/stock.js:2514 msgid "Notes" msgstr "Записи" -#: InvenTree/format.py:164 +#: InvenTree/format.py:162 #, python-brace-format msgid "Value '{name}' does not appear in pattern format" msgstr "Значение '{name}' отсутствует в формате шаблона" -#: InvenTree/format.py:175 +#: InvenTree/format.py:173 msgid "Provided value does not match required pattern: " msgstr "Предоставленное значение не соответствует требуемому формату: " @@ -126,403 +134,415 @@ msgstr "Вы должны вводить один и тот же адрес эл #: InvenTree/forms.py:221 msgid "MFA Registration is disabled." -msgstr "" +msgstr "Регистрация MFA отключена." #: InvenTree/forms.py:259 InvenTree/forms.py:267 msgid "The provided primary email address is not valid." msgstr "Указанный основной адрес электронной почты неверен." -#: InvenTree/forms.py:274 +#: InvenTree/forms.py:273 msgid "The provided email domain is not approved." msgstr "Указанный домен электронной почты не утверждён." -#: InvenTree/forms.py:403 +#: InvenTree/forms.py:402 msgid "Registration is disabled." msgstr "Регистрация отключена." -#: InvenTree/helpers.py:491 order/models.py:567 order/models.py:810 -msgid "Invalid quantity provided" -msgstr "недопустимое количество" +#: InvenTree/helpers.py:509 +msgid "Cannot serialize more than 1000 items at once" +msgstr "" -#: InvenTree/helpers.py:499 +#: InvenTree/helpers.py:515 msgid "Empty serial number string" msgstr "Пустая строка серийного номера" -#: InvenTree/helpers.py:528 +#: InvenTree/helpers.py:544 msgid "Duplicate serial" msgstr "Повторяющийся серийный номер" -#: InvenTree/helpers.py:560 InvenTree/helpers.py:603 +#: InvenTree/helpers.py:576 InvenTree/helpers.py:619 InvenTree/helpers.py:637 +#: InvenTree/helpers.py:644 InvenTree/helpers.py:663 #, python-brace-format -msgid "Invalid group range: {group}" -msgstr "Недопустимый диапазон группы: {group}" +msgid "Invalid group: {group}" +msgstr "" -#: InvenTree/helpers.py:591 +#: InvenTree/helpers.py:607 #, python-brace-format msgid "Group range {group} exceeds allowed quantity ({expected_quantity})" msgstr "Диапазон группы {group} превышает допустимое количество ({expected_quantity})" -#: InvenTree/helpers.py:621 InvenTree/helpers.py:628 InvenTree/helpers.py:647 -#, python-brace-format -msgid "Invalid group sequence: {group}" -msgstr "Неверная последовательность групп: {group}" - -#: InvenTree/helpers.py:657 +#: InvenTree/helpers.py:673 msgid "No serial numbers found" msgstr "Серийных номеров не найдено" -#: InvenTree/helpers.py:662 +#: InvenTree/helpers.py:678 msgid "Number of unique serial numbers ({len(serials)}) must match quantity ({expected_quantity})" msgstr "Число уникальных серийных номеров ({s}) должно соответствовать количеству ({q})" -#: InvenTree/helpers.py:780 +#: InvenTree/helpers.py:796 msgid "Remove HTML tags from this value" msgstr "Удалить HTML теги из этого значения" -#: InvenTree/helpers_model.py:133 +#: InvenTree/helpers.py:881 +msgid "Data contains prohibited markdown content" +msgstr "" + +#: InvenTree/helpers_model.py:130 msgid "Connection error" msgstr "Ошибка соединения" -#: InvenTree/helpers_model.py:138 InvenTree/helpers_model.py:145 +#: InvenTree/helpers_model.py:135 InvenTree/helpers_model.py:142 msgid "Server responded with invalid status code" msgstr "Сервер ответил неверным кодом статуса" -#: InvenTree/helpers_model.py:141 +#: InvenTree/helpers_model.py:138 msgid "Exception occurred" msgstr "Произошло исключение" -#: InvenTree/helpers_model.py:151 +#: InvenTree/helpers_model.py:148 msgid "Server responded with invalid Content-Length value" msgstr "Сервер ответил неверным значением Контент-Длина" -#: InvenTree/helpers_model.py:154 +#: InvenTree/helpers_model.py:151 msgid "Image size is too large" msgstr "Изображение слишком большое" -#: InvenTree/helpers_model.py:166 +#: InvenTree/helpers_model.py:163 msgid "Image download exceeded maximum size" msgstr "Загрузка изображения превышен максимальный размер" -#: InvenTree/helpers_model.py:171 +#: InvenTree/helpers_model.py:168 msgid "Remote server returned empty response" msgstr "Удаленный сервер вернул пустой ответ" -#: InvenTree/helpers_model.py:179 +#: InvenTree/helpers_model.py:176 msgid "Supplied URL is not a valid image file" msgstr "Предоставленный URL не является допустимым файлом изображения" -#: InvenTree/locales.py:18 +#: InvenTree/locales.py:20 msgid "Arabic" msgstr "Арабский" -#: InvenTree/locales.py:19 +#: InvenTree/locales.py:21 msgid "Bulgarian" msgstr "Болгарский" -#: InvenTree/locales.py:20 +#: InvenTree/locales.py:22 msgid "Czech" msgstr "Чешский" -#: InvenTree/locales.py:21 +#: InvenTree/locales.py:23 msgid "Danish" msgstr "Датский" -#: InvenTree/locales.py:22 +#: InvenTree/locales.py:24 msgid "German" msgstr "Немецкий" -#: InvenTree/locales.py:23 +#: InvenTree/locales.py:25 msgid "Greek" msgstr "Греческий" -#: InvenTree/locales.py:24 +#: InvenTree/locales.py:26 msgid "English" msgstr "Английский" -#: InvenTree/locales.py:25 +#: InvenTree/locales.py:27 msgid "Spanish" msgstr "Испанский" -#: InvenTree/locales.py:26 +#: InvenTree/locales.py:28 msgid "Spanish (Mexican)" msgstr "Испанский (Мексика)" -#: InvenTree/locales.py:27 +#: InvenTree/locales.py:29 msgid "Estonian" msgstr "Эстонский" -#: InvenTree/locales.py:28 +#: InvenTree/locales.py:30 msgid "Farsi / Persian" msgstr "Фарси / Персидский" -#: InvenTree/locales.py:29 +#: InvenTree/locales.py:31 msgid "Finnish" msgstr "Финский" -#: InvenTree/locales.py:30 +#: InvenTree/locales.py:32 msgid "French" msgstr "Французский" -#: InvenTree/locales.py:31 +#: InvenTree/locales.py:33 msgid "Hebrew" msgstr "Иврит" -#: InvenTree/locales.py:32 +#: InvenTree/locales.py:34 msgid "Hindi" msgstr "Хинди" -#: InvenTree/locales.py:33 +#: InvenTree/locales.py:35 msgid "Hungarian" msgstr "Венгерский" -#: InvenTree/locales.py:34 +#: InvenTree/locales.py:36 msgid "Italian" msgstr "Итальянский" -#: InvenTree/locales.py:35 +#: InvenTree/locales.py:37 msgid "Japanese" msgstr "Японский" -#: InvenTree/locales.py:36 +#: InvenTree/locales.py:38 msgid "Korean" msgstr "Корейский" -#: InvenTree/locales.py:37 +#: InvenTree/locales.py:39 +msgid "Lithuanian" +msgstr "" + +#: InvenTree/locales.py:40 msgid "Latvian" msgstr "Латышский" -#: InvenTree/locales.py:38 +#: InvenTree/locales.py:41 msgid "Dutch" msgstr "Голландский" -#: InvenTree/locales.py:39 +#: InvenTree/locales.py:42 msgid "Norwegian" msgstr "Норвежский" -#: InvenTree/locales.py:40 +#: InvenTree/locales.py:43 msgid "Polish" msgstr "Польский" -#: InvenTree/locales.py:41 +#: InvenTree/locales.py:44 msgid "Portuguese" msgstr "Португальский" -#: InvenTree/locales.py:42 +#: InvenTree/locales.py:45 msgid "Portuguese (Brazilian)" msgstr "Португальский (Бразильский диалект)" -#: InvenTree/locales.py:43 +#: InvenTree/locales.py:46 msgid "Romanian" msgstr "Румынский" -#: InvenTree/locales.py:44 +#: InvenTree/locales.py:47 msgid "Russian" msgstr "Русский" -#: InvenTree/locales.py:45 +#: InvenTree/locales.py:48 msgid "Slovak" msgstr "Словацкий" -#: InvenTree/locales.py:46 +#: InvenTree/locales.py:49 msgid "Slovenian" msgstr "Словенский" -#: InvenTree/locales.py:47 +#: InvenTree/locales.py:50 msgid "Serbian" msgstr "Сербский" -#: InvenTree/locales.py:48 +#: InvenTree/locales.py:51 msgid "Swedish" msgstr "Шведский" -#: InvenTree/locales.py:49 +#: InvenTree/locales.py:52 msgid "Thai" msgstr "Тайский" -#: InvenTree/locales.py:50 +#: InvenTree/locales.py:53 msgid "Turkish" msgstr "Турецкий" -#: InvenTree/locales.py:51 +#: InvenTree/locales.py:54 msgid "Ukrainian" msgstr "Украинский" -#: InvenTree/locales.py:52 +#: InvenTree/locales.py:55 msgid "Vietnamese" msgstr "Вьетнамский" -#: InvenTree/locales.py:53 +#: InvenTree/locales.py:56 msgid "Chinese (Simplified)" msgstr "Китайский (Упрощенный)" -#: InvenTree/locales.py:54 +#: InvenTree/locales.py:57 msgid "Chinese (Traditional)" msgstr "Китайский (Традиционный)" #: InvenTree/magic_login.py:28 -#, python-brace-format -msgid "[{site_name}] Log in to the app" -msgstr "[{site_name}] Войти в приложение" +msgid "Log in to the app" +msgstr "" -#: InvenTree/magic_login.py:38 InvenTree/serializers.py:415 -#: company/models.py:136 company/templates/company/company_base.html:138 +#: InvenTree/magic_login.py:38 InvenTree/serializers.py:416 +#: company/models.py:133 company/templates/company/company_base.html:138 #: templates/InvenTree/settings/user.html:49 -#: templates/js/translated/company.js:677 +#: templates/js/translated/company.js:678 msgid "Email" msgstr "EMail" -#: InvenTree/models.py:103 +#: InvenTree/models.py:105 msgid "Error running plugin validation" msgstr "Ошибка запуска проверки плагина" -#: InvenTree/models.py:172 +#: InvenTree/models.py:174 msgid "Metadata must be a python dict object" msgstr "Метаданные должны быть объектом python dict" -#: InvenTree/models.py:178 +#: InvenTree/models.py:180 msgid "Plugin Metadata" msgstr "Метаданные плагина" -#: InvenTree/models.py:179 +#: InvenTree/models.py:181 msgid "JSON metadata field, for use by external plugins" msgstr "Поле метаданных JSON для использования внешними плагинами" -#: InvenTree/models.py:409 +#: InvenTree/models.py:408 msgid "Improperly formatted pattern" msgstr "Неправильно отформатированный шаблон" -#: InvenTree/models.py:416 +#: InvenTree/models.py:415 msgid "Unknown format key specified" msgstr "Указан неизвестный ключ формата" -#: InvenTree/models.py:422 +#: InvenTree/models.py:421 msgid "Missing required format key" msgstr "Отсутствует требуемый ключ формата" -#: InvenTree/models.py:433 +#: InvenTree/models.py:432 msgid "Reference field cannot be empty" msgstr "Ссылочный идентификатор не может быть пустым" -#: InvenTree/models.py:441 +#: InvenTree/models.py:440 msgid "Reference must match required pattern" msgstr "Ссылка должна соответствовать шаблону {pattern}" -#: InvenTree/models.py:472 +#: InvenTree/models.py:471 msgid "Reference number is too large" msgstr "Номер ссылки слишком большой" -#: InvenTree/models.py:723 +#: InvenTree/models.py:722 msgid "Duplicate names cannot exist under the same parent" msgstr "Повторяющиеся имена не могут существовать под одним и тем же родителем" -#: InvenTree/models.py:740 +#: InvenTree/models.py:739 msgid "Invalid choice" msgstr "Неверный выбор" -#: InvenTree/models.py:770 common/models.py:2702 common/models.py:3132 -#: common/serializers.py:412 company/models.py:593 machine/models.py:24 -#: part/models.py:983 part/models.py:3764 plugin/models.py:51 -#: report/models.py:149 stock/models.py:77 +#: InvenTree/models.py:769 common/models.py:2766 common/models.py:3193 +#: common/models.py:3413 common/serializers.py:460 company/models.py:590 +#: machine/models.py:24 part/models.py:1044 part/models.py:3815 +#: plugin/models.py:51 report/models.py:149 stock/models.py:83 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/notifications.html:17 #: templates/InvenTree/settings/plugin.html:83 #: templates/InvenTree/settings/plugin_settings.html:22 #: templates/InvenTree/settings/settings_staff_js.html:67 #: templates/InvenTree/settings/settings_staff_js.html:454 -#: templates/js/translated/company.js:676 -#: templates/js/translated/company.js:724 -#: templates/js/translated/company.js:913 -#: templates/js/translated/company.js:1165 -#: templates/js/translated/company.js:1413 templates/js/translated/part.js:1193 +#: templates/js/translated/company.js:677 +#: templates/js/translated/company.js:725 +#: templates/js/translated/company.js:914 +#: templates/js/translated/company.js:1166 +#: templates/js/translated/company.js:1414 templates/js/translated/part.js:1193 #: templates/js/translated/part.js:1481 templates/js/translated/part.js:1617 -#: templates/js/translated/part.js:2768 templates/js/translated/stock.js:2801 +#: templates/js/translated/part.js:2768 templates/js/translated/stock.js:2802 msgid "Name" msgstr "Название" -#: InvenTree/models.py:776 build/models.py:250 -#: build/templates/build/detail.html:24 common/models.py:156 -#: company/models.py:521 company/models.py:827 +#: InvenTree/models.py:775 build/models.py:251 +#: build/templates/build/detail.html:24 common/models.py:159 +#: company/models.py:518 company/models.py:824 #: company/templates/company/company_base.html:77 #: company/templates/company/manufacturer_part.html:75 -#: company/templates/company/supplier_part.html:107 order/models.py:288 -#: order/models.py:1413 part/admin.py:305 part/admin.py:411 part/models.py:1006 -#: part/models.py:3779 part/templates/part/category.html:79 -#: part/templates/part/part_base.html:170 +#: company/templates/company/supplier_part.html:108 order/models.py:295 +#: order/models.py:1430 part/admin.py:305 part/admin.py:411 part/models.py:1067 +#: part/models.py:3830 part/templates/part/category.html:79 +#: part/templates/part/part_base.html:171 #: part/templates/part/part_scheduling.html:12 report/models.py:155 -#: report/models.py:509 report/models.py:535 +#: report/models.py:517 report/models.py:543 #: report/templates/report/inventree_build_order_report.html:117 -#: stock/admin.py:54 stock/models.py:83 stock/templates/stock/location.html:122 +#: stock/admin.py:54 stock/models.py:89 stock/templates/stock/location.html:123 #: templates/InvenTree/settings/notifications.html:19 #: templates/InvenTree/settings/plugin_settings.html:27 #: templates/InvenTree/settings/settings_staff_js.html:170 #: templates/InvenTree/settings/settings_staff_js.html:459 #: templates/js/translated/bom.js:633 templates/js/translated/bom.js:963 -#: templates/js/translated/build.js:2311 templates/js/translated/company.js:519 -#: templates/js/translated/company.js:1330 -#: templates/js/translated/company.js:1641 templates/js/translated/index.js:119 +#: templates/js/translated/build.js:2314 templates/js/translated/company.js:520 +#: templates/js/translated/company.js:1331 +#: templates/js/translated/company.js:1642 templates/js/translated/index.js:119 #: templates/js/translated/order.js:323 templates/js/translated/part.js:1245 #: templates/js/translated/part.js:1490 templates/js/translated/part.js:1628 #: templates/js/translated/part.js:1965 templates/js/translated/part.js:2361 #: templates/js/translated/part.js:2803 templates/js/translated/part.js:2915 #: templates/js/translated/plugin.js:80 -#: templates/js/translated/purchase_order.js:1776 -#: templates/js/translated/purchase_order.js:1919 -#: templates/js/translated/purchase_order.js:2092 +#: templates/js/translated/purchase_order.js:1760 +#: templates/js/translated/purchase_order.js:1903 +#: templates/js/translated/purchase_order.js:2076 #: templates/js/translated/return_order.js:313 -#: templates/js/translated/sales_order.js:838 -#: templates/js/translated/sales_order.js:1848 -#: templates/js/translated/stock.js:1600 templates/js/translated/stock.js:2143 -#: templates/js/translated/stock.js:2832 templates/js/translated/stock.js:2915 +#: templates/js/translated/sales_order.js:797 +#: templates/js/translated/sales_order.js:1829 +#: templates/js/translated/stock.js:1600 templates/js/translated/stock.js:2144 +#: templates/js/translated/stock.js:2833 templates/js/translated/stock.js:2916 msgid "Description" msgstr "Описание" -#: InvenTree/models.py:777 stock/models.py:84 +#: InvenTree/models.py:776 stock/models.py:90 msgid "Description (optional)" msgstr "Описание (необязательно)" -#: InvenTree/models.py:792 templates/js/translated/part.js:2812 -#: templates/js/translated/stock.js:2841 +#: InvenTree/models.py:791 common/models.py:3546 +#: templates/js/translated/part.js:2812 templates/js/translated/stock.js:2842 msgid "Path" msgstr "Путь" -#: InvenTree/models.py:929 +#: InvenTree/models.py:928 msgid "Markdown notes (optional)" msgstr "Записи о скидке (необязательно)" -#: InvenTree/models.py:960 +#: InvenTree/models.py:959 msgid "Barcode Data" msgstr "Данные штрих-кода" -#: InvenTree/models.py:961 +#: InvenTree/models.py:960 msgid "Third party barcode data" msgstr "Данные стороннего штрих-кода" -#: InvenTree/models.py:967 +#: InvenTree/models.py:966 msgid "Barcode Hash" msgstr "Хэш штрих-кода" -#: InvenTree/models.py:968 +#: InvenTree/models.py:967 msgid "Unique hash of barcode data" msgstr "Уникальный хэш данных штрих-кода" -#: InvenTree/models.py:1035 +#: InvenTree/models.py:1034 msgid "Existing barcode found" msgstr "Обнаружен существующий штрих-код" -#: InvenTree/models.py:1078 +#: InvenTree/models.py:1112 +msgid "Task Failure" +msgstr "" + +#: InvenTree/models.py:1114 +#, python-brace-format +msgid "Background worker task '{instance.func}' failed after {n} attempts" +msgstr "" + +#: InvenTree/models.py:1142 msgid "Server Error" msgstr "Ошибка сервера" -#: InvenTree/models.py:1079 +#: InvenTree/models.py:1143 msgid "An error has been logged by the server." msgstr "Сервер зарегистрировал ошибку." -#: InvenTree/serializers.py:63 part/models.py:4387 +#: InvenTree/serializers.py:63 part/models.py:4444 msgid "Must be a valid number" msgstr "Должно быть действительным номером" -#: InvenTree/serializers.py:100 company/models.py:186 -#: company/templates/company/company_base.html:112 part/models.py:3115 +#: InvenTree/serializers.py:100 company/models.py:183 +#: company/templates/company/company_base.html:112 part/models.py:3166 #: templates/InvenTree/settings/settings_staff_js.html:44 #: templates/currency_data.html:5 msgid "Currency" @@ -532,15 +552,15 @@ msgstr "Валюта" msgid "Select currency from available options" msgstr "Выберите валюту из доступных вариантов" -#: InvenTree/serializers.py:407 templates/InvenTree/settings/user.html:33 +#: InvenTree/serializers.py:405 templates/InvenTree/settings/user.html:33 msgid "Username" msgstr "Имя пользователя" -#: InvenTree/serializers.py:409 templates/InvenTree/settings/user.html:37 +#: InvenTree/serializers.py:408 templates/InvenTree/settings/user.html:37 msgid "First Name" msgstr "Имя" -#: InvenTree/serializers.py:409 +#: InvenTree/serializers.py:408 msgid "First name of the user" msgstr "Имя пользователя" @@ -552,30 +572,30 @@ msgstr "Фамилия" msgid "Last name of the user" msgstr "Фамилия пользователя" -#: InvenTree/serializers.py:415 +#: InvenTree/serializers.py:416 msgid "Email address of the user" msgstr "Электронный адрес пользователя" -#: InvenTree/serializers.py:439 +#: InvenTree/serializers.py:441 msgid "Staff" msgstr "Персонал" -#: InvenTree/serializers.py:439 +#: InvenTree/serializers.py:441 msgid "Does this user have staff permissions" msgstr "Имеет ли этот пользователь права персонала" -#: InvenTree/serializers.py:442 +#: InvenTree/serializers.py:445 msgid "Superuser" msgstr "Суперпользователь" -#: InvenTree/serializers.py:442 +#: InvenTree/serializers.py:445 msgid "Is this user a superuser" msgstr "Это пользователь является суперпользователем" -#: InvenTree/serializers.py:445 common/models.py:2707 company/models.py:163 -#: company/models.py:801 machine/models.py:39 part/admin.py:88 -#: part/models.py:1189 plugin/models.py:66 -#: templates/js/translated/company.js:523 +#: InvenTree/serializers.py:449 common/models.py:2771 company/models.py:160 +#: company/models.py:798 machine/models.py:39 part/admin.py:88 +#: part/models.py:1250 plugin/models.py:66 +#: templates/js/translated/company.js:524 #: templates/js/translated/table_filters.js:134 #: templates/js/translated/table_filters.js:226 #: templates/js/translated/table_filters.js:513 @@ -585,230 +605,229 @@ msgstr "Это пользователь является суперпользо msgid "Active" msgstr "Активный" -#: InvenTree/serializers.py:445 +#: InvenTree/serializers.py:449 msgid "Is this user account active" msgstr "Активна эта учетная запись" -#: InvenTree/serializers.py:463 +#: InvenTree/serializers.py:467 msgid "You do not have permission to change this user role." msgstr "У вас недостаточно прав для изменения роли этого пользователя." -#: InvenTree/serializers.py:475 +#: InvenTree/serializers.py:503 msgid "Only superusers can create new users" msgstr "Только суперпользователи могут создавать новых пользователей" -#: InvenTree/serializers.py:494 +#: InvenTree/serializers.py:523 msgid "Your account has been created." msgstr "Ваша учётная запись была успешно создана." -#: InvenTree/serializers.py:496 +#: InvenTree/serializers.py:525 msgid "Please use the password reset function to login" msgstr "Пожалуйста, используйте функцию сброса пароля для входа" -#: InvenTree/serializers.py:503 +#: InvenTree/serializers.py:531 msgid "Welcome to InvenTree" msgstr "Добро пожаловать в InvenTree" -#: InvenTree/serializers.py:561 +#: InvenTree/serializers.py:594 msgid "Invalid value" msgstr "Неверное значение" -#: InvenTree/serializers.py:581 importer/models.py:63 +#: InvenTree/serializers.py:614 importer/models.py:64 msgid "Data File" msgstr "Файл данных" -#: InvenTree/serializers.py:582 +#: InvenTree/serializers.py:615 msgid "Select data file for upload" msgstr "Выберите файл данных для загрузки" -#: InvenTree/serializers.py:599 -msgid "Unsupported file type" -msgstr "Неподдерживаемый тип файла" +#: InvenTree/serializers.py:632 common/files.py:63 +msgid "Unsupported file format" +msgstr "" -#: InvenTree/serializers.py:605 +#: InvenTree/serializers.py:638 msgid "File is too large" msgstr "Файл слишком большой" -#: InvenTree/serializers.py:626 +#: InvenTree/serializers.py:659 msgid "No columns found in file" msgstr "Столбцы в файле не найдены" -#: InvenTree/serializers.py:629 +#: InvenTree/serializers.py:662 msgid "No data rows found in file" msgstr "Строки данных в файле не найдены" -#: InvenTree/serializers.py:742 +#: InvenTree/serializers.py:774 msgid "No data rows provided" msgstr "Строки данных в файле не найдены" -#: InvenTree/serializers.py:745 +#: InvenTree/serializers.py:777 msgid "No data columns supplied" msgstr "Столбцы данных не предоставлены" -#: InvenTree/serializers.py:812 +#: InvenTree/serializers.py:843 #, python-brace-format msgid "Missing required column: '{name}'" msgstr "Отсутствует обязательный столбец: '{name}'" -#: InvenTree/serializers.py:821 +#: InvenTree/serializers.py:852 #, python-brace-format msgid "Duplicate column: '{col}'" msgstr "Повторяющийся столбец: '{col}'" -#: InvenTree/serializers.py:861 +#: InvenTree/serializers.py:891 msgid "Remote Image" msgstr "Удаленное изображение" -#: InvenTree/serializers.py:862 +#: InvenTree/serializers.py:892 msgid "URL of remote image file" msgstr "ССЫЛКА файла изображения на удаленном сервере" -#: InvenTree/serializers.py:880 +#: InvenTree/serializers.py:910 msgid "Downloading images from remote URL is not enabled" msgstr "Загрузка изображений с удаленного URL-адреса не включена" -#: InvenTree/status.py:66 part/serializers.py:1246 -msgid "Background worker check failed" -msgstr "Проверка фонового работника не удалась" - -#: InvenTree/status.py:70 -msgid "Email backend not configured" -msgstr "Сервер электронной почты не настроен" - -#: InvenTree/status.py:73 -msgid "InvenTree system health checks failed" -msgstr "Ошибка проверки состояния системы InvenTree" +#: InvenTree/serializers.py:917 +msgid "Failed to download image from remote URL" +msgstr "" #: InvenTree/templatetags/inventree_extras.py:184 msgid "Unknown database" msgstr "Неизвестная база данных" -#: InvenTree/validators.py:32 InvenTree/validators.py:34 +#: InvenTree/validators.py:32 msgid "Invalid physical unit" msgstr "Неверная физическая единица" -#: InvenTree/validators.py:40 +#: InvenTree/validators.py:38 msgid "Not a valid currency code" msgstr "Неверный код валюты" -#: InvenTree/validators.py:118 InvenTree/validators.py:134 +#: InvenTree/validators.py:115 InvenTree/validators.py:131 msgid "Overage value must not be negative" msgstr "Значение избытка не должно быть отрицательным" -#: InvenTree/validators.py:136 +#: InvenTree/validators.py:133 msgid "Overage must not exceed 100%" msgstr "Избыток не может превысить 100%" -#: InvenTree/validators.py:142 +#: InvenTree/validators.py:139 msgid "Invalid value for overage" msgstr "Неверное значение для избытка" -#: InvenTree/views.py:400 templates/InvenTree/settings/user.html:23 +#: InvenTree/views.py:399 templates/InvenTree/settings/user.html:23 msgid "Edit User Information" msgstr "Редактировать информацию о пользователе" -#: InvenTree/views.py:412 templates/InvenTree/settings/user.html:20 +#: InvenTree/views.py:411 templates/InvenTree/settings/user.html:20 msgid "Set Password" msgstr "Установить пароль" -#: InvenTree/views.py:434 +#: InvenTree/views.py:433 msgid "Password fields must match" msgstr "Пароли должны совпадать" -#: InvenTree/views.py:442 +#: InvenTree/views.py:441 msgid "Wrong password provided" msgstr "Указан неверный пароль" -#: InvenTree/views.py:650 templates/navbar.html:160 +#: InvenTree/views.py:645 templates/navbar.html:160 msgid "System Information" msgstr "Информация о системе" -#: InvenTree/views.py:657 templates/navbar.html:171 +#: InvenTree/views.py:652 templates/navbar.html:171 msgid "About InvenTree" msgstr "О программе InvenTree" -#: build/api.py:51 part/api.py:156 stock/api.py:343 -msgid "Cascade" -msgstr "" - -#: build/api.py:64 build/models.py:261 -#: build/templates/build/build_base.html:191 +#: build/api.py:54 build/models.py:262 +#: build/templates/build/build_base.html:192 #: build/templates/build/detail.html:87 msgid "Parent Build" msgstr "Родительский заказ на производство" -#: build/api.py:89 order/api.py:92 templates/js/translated/table_filters.js:101 +#: build/api.py:58 build/api.py:625 order/api.py:396 order/api.py:611 +#: order/api.py:990 order/api.py:1187 +#: templates/js/translated/table_filters.js:372 +msgid "Include Variants" +msgstr "" + +#: build/api.py:93 +msgid "Ancestor Build" +msgstr "" + +#: build/api.py:112 order/api.py:90 +#: templates/js/translated/table_filters.js:101 #: templates/js/translated/table_filters.js:549 #: templates/js/translated/table_filters.js:633 #: templates/js/translated/table_filters.js:674 msgid "Assigned to me" msgstr "Назначено мне" -#: build/api.py:106 build/templates/build/build_base.html:205 +#: build/api.py:129 build/templates/build/build_base.html:206 #: build/templates/build/detail.html:115 #: report/templates/report/inventree_build_order_report.html:152 #: templates/js/translated/table_filters.js:552 msgid "Issued By" msgstr "Создано" -#: build/api.py:125 +#: build/api.py:148 msgid "Assigned To" msgstr "" -#: build/api.py:301 +#: build/api.py:310 msgid "Build must be cancelled before it can be deleted" msgstr "Заказ на производство должен быть отменен перед удалением" -#: build/api.py:345 build/serializers.py:1288 part/models.py:4265 +#: build/api.py:354 build/serializers.py:1342 part/models.py:4322 #: templates/js/translated/bom.js:997 templates/js/translated/bom.js:1037 -#: templates/js/translated/build.js:2702 +#: templates/js/translated/build.js:2711 #: templates/js/translated/table_filters.js:197 #: templates/js/translated/table_filters.js:586 msgid "Consumable" msgstr "Расходники" -#: build/api.py:346 build/serializers.py:1289 part/models.py:4259 +#: build/api.py:355 build/serializers.py:1343 part/models.py:4316 #: part/templates/part/upload_bom.html:58 templates/js/translated/bom.js:1001 -#: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2693 +#: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2702 #: templates/js/translated/table_filters.js:193 #: templates/js/translated/table_filters.js:222 #: templates/js/translated/table_filters.js:590 msgid "Optional" msgstr "Необязательно" -#: build/api.py:347 common/models.py:1489 part/admin.py:91 part/admin.py:428 -#: part/models.py:1154 part/serializers.py:1575 +#: build/api.py:356 common/models.py:1558 part/admin.py:91 part/admin.py:428 +#: part/models.py:1215 part/serializers.py:1633 #: templates/js/translated/bom.js:1639 #: templates/js/translated/table_filters.js:337 #: templates/js/translated/table_filters.js:729 msgid "Assembly" msgstr "Производимая деталь" -#: build/api.py:348 templates/js/translated/table_filters.js:415 +#: build/api.py:357 templates/js/translated/table_filters.js:415 #: templates/js/translated/table_filters.js:582 msgid "Tracked" msgstr "Отслеживается" -#: build/api.py:349 build/serializers.py:1290 part/models.py:1172 +#: build/api.py:358 build/serializers.py:1344 part/models.py:1233 #: templates/js/translated/table_filters.js:146 #: templates/js/translated/table_filters.js:779 msgid "Testable" msgstr "" -#: build/api.py:351 part/admin.py:144 templates/js/translated/build.js:1917 -#: templates/js/translated/build.js:2820 -#: templates/js/translated/sales_order.js:1965 +#: build/api.py:360 order/api.py:779 part/admin.py:144 +#: templates/js/translated/build.js:1920 templates/js/translated/build.js:2838 +#: templates/js/translated/sales_order.js:1946 #: templates/js/translated/table_filters.js:574 msgid "Allocated" msgstr "Зарезервировано" -#: build/api.py:359 company/models.py:891 company/serializers.py:395 -#: company/templates/company/supplier_part.html:114 +#: build/api.py:368 company/models.py:888 company/serializers.py:399 +#: company/templates/company/supplier_part.html:115 #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:17 -#: templates/js/translated/bom.js:1162 templates/js/translated/build.js:2752 +#: templates/js/translated/bom.js:1162 templates/js/translated/build.js:2770 #: templates/js/translated/index.js:123 -#: templates/js/translated/model_renderers.js:235 +#: templates/js/translated/model_renderers.js:238 #: templates/js/translated/part.js:695 templates/js/translated/part.js:697 #: templates/js/translated/part.js:702 #: templates/js/translated/table_filters.js:347 @@ -816,16 +835,68 @@ msgstr "Зарезервировано" msgid "Available" msgstr "Доступно" -#: build/models.py:86 build/templates/build/build_base.html:9 -#: build/templates/build/build_base.html:27 +#: build/api.py:640 build/models.py:268 build/serializers.py:1330 +#: build/templates/build/build_base.html:106 +#: build/templates/build/detail.html:29 company/models.py:1043 order/api.py:775 +#: order/api.py:1003 order/models.py:1519 order/models.py:1674 +#: order/models.py:1675 part/api.py:1495 part/api.py:1802 part/models.py:419 +#: part/models.py:3177 part/models.py:3321 part/models.py:3469 +#: part/models.py:3490 part/models.py:3512 part/models.py:3648 +#: part/models.py:3995 part/models.py:4158 part/models.py:4288 +#: part/models.py:4654 part/serializers.py:1245 part/serializers.py:1898 +#: part/templates/part/part_app_base.html:8 +#: part/templates/part/part_pricing.html:12 +#: part/templates/part/upload_bom.html:52 +#: report/templates/report/inventree_bill_of_materials_report.html:110 +#: report/templates/report/inventree_bill_of_materials_report.html:137 +#: report/templates/report/inventree_build_order_report.html:109 +#: report/templates/report/inventree_purchase_order_report.html:27 +#: report/templates/report/inventree_return_order_report.html:24 +#: report/templates/report/inventree_sales_order_report.html:27 +#: report/templates/report/inventree_sales_order_shipment_report.html:28 +#: report/templates/report/inventree_stock_location_report.html:102 +#: stock/serializers.py:112 stock/serializers.py:160 stock/serializers.py:456 +#: stock/serializers.py:947 templates/InvenTree/search.html:82 +#: templates/email/build_order_completed.html:17 +#: templates/email/build_order_required_stock.html:17 +#: templates/email/low_stock_notification.html:15 +#: templates/email/overdue_build_order.html:16 +#: templates/js/translated/barcode.js:577 templates/js/translated/bom.js:632 +#: templates/js/translated/bom.js:769 templates/js/translated/bom.js:905 +#: templates/js/translated/build.js:1005 templates/js/translated/build.js:1488 +#: templates/js/translated/build.js:1919 templates/js/translated/build.js:2337 +#: templates/js/translated/build.js:2514 templates/js/translated/company.js:349 +#: templates/js/translated/company.js:1117 +#: templates/js/translated/company.js:1272 +#: templates/js/translated/company.js:1560 templates/js/translated/index.js:109 +#: templates/js/translated/part.js:1950 templates/js/translated/part.js:2022 +#: templates/js/translated/part.js:2330 templates/js/translated/pricing.js:369 +#: templates/js/translated/purchase_order.js:734 +#: templates/js/translated/purchase_order.js:1350 +#: templates/js/translated/purchase_order.js:1902 +#: templates/js/translated/purchase_order.js:2061 +#: templates/js/translated/return_order.js:538 +#: templates/js/translated/return_order.js:708 +#: templates/js/translated/sales_order.js:1199 +#: templates/js/translated/sales_order.js:1608 +#: templates/js/translated/sales_order.js:1813 +#: templates/js/translated/stock.js:682 templates/js/translated/stock.js:848 +#: templates/js/translated/stock.js:1065 templates/js/translated/stock.js:2083 +#: templates/js/translated/stock.js:2942 templates/js/translated/stock.js:3175 +#: templates/js/translated/stock.js:3320 +msgid "Part" +msgstr "Деталь" + +#: build/api.py:662 build/models.py:88 build/templates/build/build_base.html:10 +#: build/templates/build/build_base.html:28 #: report/templates/report/inventree_build_order_report.html:105 -#: stock/serializers.py:84 templates/email/build_order_completed.html:16 +#: stock/serializers.py:85 templates/email/build_order_completed.html:16 #: templates/email/overdue_build_order.html:15 -#: templates/js/translated/build.js:1145 templates/js/translated/stock.js:2976 +#: templates/js/translated/build.js:1148 templates/js/translated/stock.js:2977 msgid "Build Order" msgstr "Заказ на производство" -#: build/models.py:87 build/templates/build/build_base.html:13 +#: build/models.py:89 build/templates/build/build_base.html:14 #: build/templates/build/index.html:8 build/templates/build/index.html:12 #: order/templates/order/sales_order_detail.html:111 #: order/templates/order/so_sidebar.html:13 @@ -836,268 +907,216 @@ msgstr "Заказ на производство" msgid "Build Orders" msgstr "Заказы на производство" -#: build/models.py:135 +#: build/models.py:136 msgid "Assembly BOM has not been validated" msgstr "Сборка BOM не подтверждена" -#: build/models.py:142 +#: build/models.py:143 msgid "Build order cannot be created for an inactive part" msgstr "Порядок сборки не может быть создан для неактивной части" -#: build/models.py:149 +#: build/models.py:150 msgid "Build order cannot be created for an unlocked part" msgstr "Порядок сборки не может быть создан для разблокированной части" -#: build/models.py:163 +#: build/models.py:164 msgid "Invalid choice for parent build" msgstr "Неверный выбор для родительской сборки" -#: build/models.py:174 order/models.py:239 +#: build/models.py:175 order/models.py:236 msgid "Responsible user or group must be specified" msgstr "Должен быть указан ответственный пользователь или группа" -#: build/models.py:180 +#: build/models.py:181 msgid "Build order part cannot be changed" msgstr "Деталь заказа на производства не может быть изменена" -#: build/models.py:241 +#: build/models.py:242 msgid "Build Order Reference" msgstr "Ссылка на заказ на производство" -#: build/models.py:242 build/serializers.py:1287 order/models.py:467 -#: order/models.py:978 order/models.py:1373 order/models.py:2135 -#: part/admin.py:414 part/models.py:4280 part/templates/part/upload_bom.html:54 +#: build/models.py:243 build/serializers.py:1341 order/models.py:479 +#: order/models.py:1005 order/models.py:1390 order/models.py:2174 +#: part/admin.py:414 part/models.py:4337 part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_bill_of_materials_report.html:139 #: report/templates/report/inventree_purchase_order_report.html:28 #: report/templates/report/inventree_return_order_report.html:26 #: report/templates/report/inventree_sales_order_report.html:28 #: templates/js/translated/bom.js:770 templates/js/translated/bom.js:973 -#: templates/js/translated/build.js:1011 templates/js/translated/build.js:2685 +#: templates/js/translated/build.js:1014 templates/js/translated/build.js:2694 #: templates/js/translated/order.js:316 templates/js/translated/pricing.js:386 -#: templates/js/translated/purchase_order.js:2135 +#: templates/js/translated/purchase_order.js:2119 #: templates/js/translated/return_order.js:727 -#: templates/js/translated/sales_order.js:1854 +#: templates/js/translated/sales_order.js:1835 msgid "Reference" msgstr "Отсылка" -#: build/models.py:253 +#: build/models.py:254 msgid "Brief description of the build (optional)" msgstr "Краткое описание заказа на производство (необязательно)" -#: build/models.py:262 +#: build/models.py:263 msgid "BuildOrder to which this build is allocated" msgstr "Заказ на производство, которому принадлежит этот заказ на производство" -#: build/models.py:267 build/serializers.py:1278 -#: build/templates/build/build_base.html:105 -#: build/templates/build/detail.html:29 company/models.py:1046 order/api.py:767 -#: order/models.py:1503 order/models.py:1658 order/models.py:1659 -#: part/api.py:1509 part/api.py:1813 part/models.py:424 part/models.py:3126 -#: part/models.py:3270 part/models.py:3418 part/models.py:3439 -#: part/models.py:3461 part/models.py:3597 part/models.py:3937 -#: part/models.py:4100 part/models.py:4231 part/models.py:4592 -#: part/serializers.py:1192 part/serializers.py:1836 -#: part/templates/part/part_app_base.html:8 -#: part/templates/part/part_pricing.html:12 -#: part/templates/part/upload_bom.html:52 -#: report/templates/report/inventree_bill_of_materials_report.html:110 -#: report/templates/report/inventree_bill_of_materials_report.html:137 -#: report/templates/report/inventree_build_order_report.html:109 -#: report/templates/report/inventree_purchase_order_report.html:27 -#: report/templates/report/inventree_return_order_report.html:24 -#: report/templates/report/inventree_sales_order_report.html:27 -#: report/templates/report/inventree_stock_location_report.html:102 -#: stock/serializers.py:111 stock/serializers.py:159 stock/serializers.py:446 -#: stock/serializers.py:916 templates/InvenTree/search.html:82 -#: templates/email/build_order_completed.html:17 -#: templates/email/build_order_required_stock.html:17 -#: templates/email/low_stock_notification.html:15 -#: templates/email/overdue_build_order.html:16 -#: templates/js/translated/barcode.js:577 templates/js/translated/bom.js:632 -#: templates/js/translated/bom.js:769 templates/js/translated/bom.js:905 -#: templates/js/translated/build.js:1002 templates/js/translated/build.js:1485 -#: templates/js/translated/build.js:1916 templates/js/translated/build.js:2334 -#: templates/js/translated/build.js:2507 templates/js/translated/company.js:348 -#: templates/js/translated/company.js:1116 -#: templates/js/translated/company.js:1271 -#: templates/js/translated/company.js:1559 templates/js/translated/index.js:109 -#: templates/js/translated/part.js:1950 templates/js/translated/part.js:2022 -#: templates/js/translated/part.js:2330 templates/js/translated/pricing.js:369 -#: templates/js/translated/purchase_order.js:751 -#: templates/js/translated/purchase_order.js:1367 -#: templates/js/translated/purchase_order.js:1918 -#: templates/js/translated/purchase_order.js:2077 -#: templates/js/translated/return_order.js:538 -#: templates/js/translated/return_order.js:708 -#: templates/js/translated/sales_order.js:300 -#: templates/js/translated/sales_order.js:1233 -#: templates/js/translated/sales_order.js:1634 -#: templates/js/translated/sales_order.js:1832 -#: templates/js/translated/stock.js:682 templates/js/translated/stock.js:848 -#: templates/js/translated/stock.js:1065 templates/js/translated/stock.js:2082 -#: templates/js/translated/stock.js:2941 templates/js/translated/stock.js:3174 -#: templates/js/translated/stock.js:3319 -msgid "Part" -msgstr "Деталь" - -#: build/models.py:275 +#: build/models.py:274 msgid "Select part to build" msgstr "Выберите деталь для производства" -#: build/models.py:280 +#: build/models.py:279 msgid "Sales Order Reference" msgstr "Ссылка на заказ" -#: build/models.py:284 +#: build/models.py:283 msgid "SalesOrder to which this build is allocated" msgstr "Заказ на продажу, которому принадлежит этот заказ на производство" -#: build/models.py:289 build/serializers.py:1048 -#: templates/js/translated/build.js:1904 -#: templates/js/translated/sales_order.js:1221 +#: build/models.py:288 build/serializers.py:1092 +#: templates/js/translated/build.js:1907 +#: templates/js/translated/sales_order.js:1187 msgid "Source Location" msgstr "Место хранения - источник" -#: build/models.py:293 +#: build/models.py:292 msgid "Select location to take stock from for this build (leave blank to take from any stock location)" msgstr "Выберите место хранения для этого заказа на производство (оставьте пустым, чтобы взять с любого места на складе)" -#: build/models.py:298 +#: build/models.py:297 msgid "Destination Location" msgstr "Место хранения результата" -#: build/models.py:302 +#: build/models.py:301 msgid "Select location where the completed items will be stored" msgstr "Выберите место хранения завершенных элементов" -#: build/models.py:306 +#: build/models.py:305 msgid "Build Quantity" msgstr "Количество производимых деталей" -#: build/models.py:309 +#: build/models.py:308 msgid "Number of stock items to build" msgstr "Количество складских позиций для производства" -#: build/models.py:313 +#: build/models.py:312 msgid "Completed items" msgstr "Произведенные детали" -#: build/models.py:315 +#: build/models.py:314 msgid "Number of stock items which have been completed" msgstr "Количество складских позиций, которые были произведены" -#: build/models.py:319 +#: build/models.py:318 msgid "Build Status" msgstr "Статус заказа на производство" -#: build/models.py:323 +#: build/models.py:322 msgid "Build status code" msgstr "Код статуса заказа на производство" -#: build/models.py:332 build/serializers.py:302 build/serializers.py:1198 -#: order/serializers.py:670 stock/models.py:859 stock/serializers.py:76 -#: stock/serializers.py:1562 templates/js/translated/purchase_order.js:1129 +#: build/models.py:331 build/serializers.py:349 build/serializers.py:1243 +#: order/serializers.py:755 stock/models.py:936 stock/serializers.py:77 +#: stock/serializers.py:1593 templates/js/translated/purchase_order.js:1112 #: templates/js/translated/stock.js:1199 msgid "Batch Code" msgstr "Код партии" -#: build/models.py:336 build/serializers.py:303 +#: build/models.py:335 build/serializers.py:350 msgid "Batch code for this build output" msgstr "Код партии для продукции" -#: build/models.py:339 order/models.py:315 order/serializers.py:126 -#: part/models.py:1229 part/templates/part/part_base.html:319 +#: build/models.py:338 order/models.py:322 order/serializers.py:157 +#: part/models.py:1290 part/templates/part/part_base.html:327 #: templates/js/translated/return_order.js:338 -#: templates/js/translated/sales_order.js:863 +#: templates/js/translated/sales_order.js:822 msgid "Creation Date" msgstr "Дата создания" -#: build/models.py:343 +#: build/models.py:342 msgid "Target completion date" msgstr "Целевая дата завершения" -#: build/models.py:344 +#: build/models.py:343 msgid "Target date for build completion. Build will be overdue after this date." msgstr "Целевая дата для заказа на производства. Заказ будет просрочен после этой даты." -#: build/models.py:347 order/models.py:526 order/models.py:2180 -#: templates/js/translated/build.js:2419 +#: build/models.py:346 order/models.py:538 order/models.py:2219 +#: templates/js/translated/build.js:2422 msgid "Completion Date" msgstr "Дата завершения" -#: build/models.py:353 +#: build/models.py:352 msgid "completed by" msgstr "выполнено" -#: build/models.py:361 templates/js/translated/build.js:2379 +#: build/models.py:360 templates/js/translated/build.js:2382 msgid "Issued by" msgstr "Создано" -#: build/models.py:362 +#: build/models.py:361 msgid "User who issued this build order" msgstr "Пользователь, создавший этот заказ на производство" -#: build/models.py:370 build/templates/build/build_base.html:212 -#: build/templates/build/detail.html:122 common/models.py:165 order/api.py:142 -#: order/models.py:333 order/templates/order/order_base.html:222 -#: order/templates/order/return_order_base.html:191 -#: order/templates/order/sales_order_base.html:235 part/models.py:1246 -#: part/templates/part/part_base.html:399 +#: build/models.py:369 build/templates/build/build_base.html:213 +#: build/templates/build/detail.html:122 common/models.py:168 order/api.py:140 +#: order/models.py:340 order/templates/order/order_base.html:231 +#: order/templates/order/return_order_base.html:192 +#: order/templates/order/sales_order_base.html:236 part/models.py:1307 +#: part/templates/part/part_base.html:407 #: report/templates/report/inventree_build_order_report.html:158 #: templates/InvenTree/settings/settings_staff_js.html:150 -#: templates/js/translated/build.js:2391 -#: templates/js/translated/purchase_order.js:1833 +#: templates/js/translated/build.js:2394 +#: templates/js/translated/purchase_order.js:1817 #: templates/js/translated/return_order.js:358 #: templates/js/translated/table_filters.js:551 msgid "Responsible" msgstr "Ответственный" -#: build/models.py:371 +#: build/models.py:370 msgid "User or group responsible for this build order" msgstr "Пользователь, ответственный за этот заказ на производство" -#: build/models.py:376 build/templates/build/detail.html:108 +#: build/models.py:375 build/templates/build/detail.html:108 #: company/templates/company/manufacturer_part.html:107 -#: company/templates/company/supplier_part.html:194 -#: order/templates/order/order_base.html:172 -#: order/templates/order/return_order_base.html:148 -#: order/templates/order/sales_order_base.html:187 -#: part/templates/part/part_base.html:392 stock/models.py:855 -#: stock/templates/stock/item_base.html:200 -#: templates/js/translated/company.js:1019 +#: company/templates/company/supplier_part.html:195 +#: order/templates/order/order_base.html:181 +#: order/templates/order/return_order_base.html:149 +#: order/templates/order/sales_order_base.html:188 +#: part/templates/part/part_base.html:400 stock/models.py:932 +#: stock/templates/stock/item_base.html:197 +#: templates/js/translated/company.js:1020 msgid "External Link" msgstr "Внешняя ссылка" -#: build/models.py:377 common/models.py:3273 part/models.py:1058 -#: stock/models.py:855 +#: build/models.py:376 common/models.py:3334 part/models.py:1119 +#: stock/models.py:932 msgid "Link to external URL" msgstr "Ссылка на внешний URL" -#: build/models.py:381 +#: build/models.py:380 msgid "Build Priority" msgstr "Приоритет производства" -#: build/models.py:384 +#: build/models.py:383 msgid "Priority of this build order" msgstr "Приоритет этого заказа на производство" -#: build/models.py:391 common/models.py:135 common/models.py:149 -#: order/admin.py:18 order/api.py:128 order/models.py:297 +#: build/models.py:390 common/models.py:138 common/models.py:152 +#: order/admin.py:18 order/api.py:126 order/models.py:304 #: templates/InvenTree/settings/settings_staff_js.html:146 -#: templates/js/translated/build.js:2316 -#: templates/js/translated/purchase_order.js:1780 +#: templates/js/translated/build.js:2319 +#: templates/js/translated/purchase_order.js:1764 #: templates/js/translated/return_order.js:317 -#: templates/js/translated/sales_order.js:842 +#: templates/js/translated/sales_order.js:801 #: templates/js/translated/table_filters.js:47 #: templates/project_code_data.html:6 msgid "Project Code" msgstr "Код проекта" -#: build/models.py:392 +#: build/models.py:391 msgid "Project code for this build order" msgstr "Код проекта для этого заказа на производство" -#: build/models.py:651 build/models.py:778 +#: build/models.py:651 build/models.py:779 msgid "Failed to offload task to complete build allocations" msgstr "Не удалось выгрузить задачу для распределения на сборку" @@ -1110,610 +1129,619 @@ msgstr "Заказ на производство {build} был завершен msgid "A build order has been completed" msgstr "Заказ на производство был завершен" -#: build/models.py:967 build/models.py:1055 +#: build/models.py:858 build/serializers.py:393 +msgid "Serial numbers must be provided for trackable parts" +msgstr "Для отслеживаемых частей должны быть указаны серийные номера" + +#: build/models.py:969 build/models.py:1058 msgid "No build output specified" msgstr "Продукция не указана" -#: build/models.py:970 +#: build/models.py:972 msgid "Build output is already completed" msgstr "Продукция уже произведена" -#: build/models.py:973 +#: build/models.py:975 msgid "Build output does not match Build Order" msgstr "Продукция не совпадает с заказом на производство" -#: build/models.py:1059 build/serializers.py:235 build/serializers.py:284 -#: build/serializers.py:915 order/models.py:564 order/serializers.py:499 -#: order/serializers.py:665 part/serializers.py:1569 part/serializers.py:1999 -#: stock/models.py:700 stock/models.py:1520 stock/serializers.py:669 +#: build/models.py:1062 build/serializers.py:282 build/serializers.py:331 +#: build/serializers.py:959 order/models.py:586 order/serializers.py:584 +#: order/serializers.py:750 part/serializers.py:1627 part/serializers.py:2060 +#: stock/models.py:777 stock/models.py:1609 stock/serializers.py:696 msgid "Quantity must be greater than zero" msgstr "Количество должно быть больше нуля" -#: build/models.py:1064 build/serializers.py:240 +#: build/models.py:1067 build/serializers.py:287 msgid "Quantity cannot be greater than the output quantity" msgstr "Количество не может быть больше количества продукции" -#: build/models.py:1124 build/serializers.py:563 +#: build/models.py:1127 build/serializers.py:607 #, python-brace-format msgid "Build output {serial} has not passed all required tests" msgstr "Сборка {serial} не прошла все необходимые тесты" -#: build/models.py:1465 +#: build/models.py:1482 msgid "Build Order Line Item" msgstr "Номер позиции для производства" -#: build/models.py:1490 +#: build/models.py:1507 msgid "Build object" msgstr "Объект производства" -#: build/models.py:1504 build/models.py:1760 build/serializers.py:222 -#: build/serializers.py:269 build/serializers.py:1295 -#: build/templates/build/build_base.html:110 -#: build/templates/build/detail.html:34 common/models.py:2579 -#: order/models.py:1356 order/models.py:2041 order/serializers.py:1460 +#: build/models.py:1521 build/models.py:1787 build/serializers.py:269 +#: build/serializers.py:316 build/serializers.py:1349 +#: build/templates/build/build_base.html:111 +#: build/templates/build/detail.html:34 common/models.py:2643 +#: order/models.py:1373 order/models.py:2074 order/serializers.py:1586 #: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:413 -#: part/forms.py:48 part/models.py:3284 part/models.py:4253 -#: part/templates/part/part_pricing.html:16 +#: part/forms.py:48 part/models.py:3335 part/models.py:4310 +#: part/serializers.py:265 part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_bill_of_materials_report.html:138 #: report/templates/report/inventree_build_order_report.html:113 #: report/templates/report/inventree_purchase_order_report.html:29 #: report/templates/report/inventree_sales_order_report.html:29 +#: report/templates/report/inventree_sales_order_shipment_report.html:47 +#: report/templates/report/inventree_sales_order_shipment_report.html:49 #: report/templates/report/inventree_stock_location_report.html:104 #: report/templates/report/inventree_test_report.html:90 -#: report/templates/report/inventree_test_report.html:169 stock/admin.py:159 -#: stock/serializers.py:127 stock/serializers.py:167 stock/serializers.py:660 -#: stock/templates/stock/item_base.html:287 -#: stock/templates/stock/item_base.html:295 -#: stock/templates/stock/item_base.html:342 +#: report/templates/report/inventree_test_report.html:169 stock/admin.py:160 +#: stock/serializers.py:128 stock/serializers.py:168 stock/serializers.py:687 +#: stock/templates/stock/item_base.html:284 +#: stock/templates/stock/item_base.html:292 +#: stock/templates/stock/item_base.html:339 #: templates/email/build_order_completed.html:18 #: templates/js/translated/barcode.js:579 templates/js/translated/bom.js:771 -#: templates/js/translated/bom.js:981 templates/js/translated/build.js:522 -#: templates/js/translated/build.js:737 templates/js/translated/build.js:1542 -#: templates/js/translated/build.js:1919 templates/js/translated/build.js:2529 -#: templates/js/translated/company.js:1818 -#: templates/js/translated/model_renderers.js:237 +#: templates/js/translated/bom.js:981 templates/js/translated/build.js:525 +#: templates/js/translated/build.js:740 templates/js/translated/build.js:1545 +#: templates/js/translated/build.js:1922 templates/js/translated/build.js:2536 +#: templates/js/translated/company.js:1819 +#: templates/js/translated/model_renderers.js:240 #: templates/js/translated/order.js:329 templates/js/translated/part.js:968 -#: templates/js/translated/part.js:1818 templates/js/translated/part.js:3360 +#: templates/js/translated/part.js:1818 templates/js/translated/part.js:3376 #: templates/js/translated/pricing.js:381 #: templates/js/translated/pricing.js:474 #: templates/js/translated/pricing.js:522 #: templates/js/translated/pricing.js:616 -#: templates/js/translated/purchase_order.js:754 -#: templates/js/translated/purchase_order.js:1922 -#: templates/js/translated/purchase_order.js:2141 -#: templates/js/translated/sales_order.js:317 -#: templates/js/translated/sales_order.js:1235 -#: templates/js/translated/sales_order.js:1554 -#: templates/js/translated/sales_order.js:1644 -#: templates/js/translated/sales_order.js:1734 -#: templates/js/translated/sales_order.js:1860 +#: templates/js/translated/purchase_order.js:737 +#: templates/js/translated/purchase_order.js:1906 +#: templates/js/translated/purchase_order.js:2125 +#: templates/js/translated/sales_order.js:1201 +#: templates/js/translated/sales_order.js:1520 +#: templates/js/translated/sales_order.js:1625 +#: templates/js/translated/sales_order.js:1715 +#: templates/js/translated/sales_order.js:1841 #: templates/js/translated/stock.js:570 templates/js/translated/stock.js:708 -#: templates/js/translated/stock.js:879 templates/js/translated/stock.js:3105 -#: templates/js/translated/stock.js:3188 +#: templates/js/translated/stock.js:879 templates/js/translated/stock.js:3106 +#: templates/js/translated/stock.js:3189 msgid "Quantity" msgstr "Количество" -#: build/models.py:1505 +#: build/models.py:1522 msgid "Required quantity for build order" msgstr "Требуемое количество для заказа на производство" -#: build/models.py:1585 +#: build/models.py:1602 msgid "Build item must specify a build output, as master part is marked as trackable" msgstr "Элемент производства должен указать продукцию, как главную деталь помеченную как отслеживаемая" -#: build/models.py:1594 +#: build/models.py:1611 #, python-brace-format msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgstr "Резервируемое количество ({q}) не должно превышать доступное количество на складе ({a})" -#: build/models.py:1604 order/models.py:1992 +#: build/models.py:1628 order/models.py:2025 msgid "Stock item is over-allocated" msgstr "Складская позиция перераспределена" -#: build/models.py:1610 order/models.py:1995 +#: build/models.py:1634 order/models.py:2028 msgid "Allocation quantity must be greater than zero" msgstr "Резервируемое количество должно быть больше нуля" -#: build/models.py:1616 +#: build/models.py:1640 msgid "Quantity must be 1 for serialized stock" msgstr "Количество должно быть 1 для сериализованных запасов" -#: build/models.py:1675 +#: build/models.py:1699 msgid "Selected stock item does not match BOM line" msgstr "Выбранная складская позиция не соответствует позиции в BOM" -#: build/models.py:1747 build/serializers.py:895 order/serializers.py:1297 -#: order/serializers.py:1318 stock/models.py:376 stock/serializers.py:93 -#: stock/serializers.py:763 stock/serializers.py:1281 stock/serializers.py:1393 -#: stock/templates/stock/item_base.html:10 -#: stock/templates/stock/item_base.html:23 -#: stock/templates/stock/item_base.html:194 -#: templates/js/translated/build.js:1918 -#: templates/js/translated/sales_order.js:301 -#: templates/js/translated/sales_order.js:1234 -#: templates/js/translated/sales_order.js:1535 -#: templates/js/translated/sales_order.js:1540 -#: templates/js/translated/sales_order.js:1641 -#: templates/js/translated/sales_order.js:1728 +#: build/models.py:1774 build/serializers.py:939 order/serializers.py:1423 +#: order/serializers.py:1444 +#: report/templates/report/inventree_sales_order_shipment_report.html:29 +#: stock/models.py:382 stock/serializers.py:94 stock/serializers.py:794 +#: stock/serializers.py:1312 stock/serializers.py:1424 +#: stock/templates/stock/item_base.html:11 +#: stock/templates/stock/item_base.html:24 +#: stock/templates/stock/item_base.html:191 +#: templates/js/translated/build.js:1921 +#: templates/js/translated/sales_order.js:1200 +#: templates/js/translated/sales_order.js:1501 +#: templates/js/translated/sales_order.js:1506 +#: templates/js/translated/sales_order.js:1622 +#: templates/js/translated/sales_order.js:1709 #: templates/js/translated/stock.js:683 templates/js/translated/stock.js:849 -#: templates/js/translated/stock.js:3061 +#: templates/js/translated/stock.js:3062 msgid "Stock Item" msgstr "Складская позиция" -#: build/models.py:1748 +#: build/models.py:1775 msgid "Source stock item" msgstr "Исходная складская позиция" -#: build/models.py:1761 +#: build/models.py:1788 msgid "Stock quantity to allocate to build" msgstr "Количество на складе для производства" -#: build/models.py:1769 +#: build/models.py:1796 msgid "Install into" msgstr "Установить в" -#: build/models.py:1770 +#: build/models.py:1797 msgid "Destination stock item" msgstr "Целевая складская позиция" -#: build/serializers.py:91 +#: build/serializers.py:108 msgid "Build Level" msgstr "" -#: build/serializers.py:99 build/serializers.py:1190 build/serializers.py:1279 -#: part/admin.py:41 part/admin.py:408 part/models.py:4102 part/stocktake.py:219 -#: stock/admin.py:156 +#: build/serializers.py:116 build/serializers.py:1235 build/serializers.py:1331 +#: part/admin.py:41 part/admin.py:408 part/models.py:4160 part/stocktake.py:219 +#: stock/admin.py:157 msgid "Part Name" msgstr "Наименование детали" -#: build/serializers.py:111 +#: build/serializers.py:128 msgid "Project Code Label" msgstr "Название кода проекта" -#: build/serializers.py:172 build/serializers.py:924 -#: templates/js/translated/build.js:1042 templates/js/translated/build.js:1495 +#: build/serializers.py:134 +msgid "Create Child Builds" +msgstr "" + +#: build/serializers.py:135 +msgid "Automatically generate child build orders" +msgstr "" + +#: build/serializers.py:219 build/serializers.py:968 +#: templates/js/translated/build.js:1045 templates/js/translated/build.js:1498 msgid "Build Output" msgstr "Выход Продукции" -#: build/serializers.py:184 +#: build/serializers.py:231 msgid "Build output does not match the parent build" msgstr "Продукция не совпадает с родительским заказом на производство" -#: build/serializers.py:188 +#: build/serializers.py:235 msgid "Output part does not match BuildOrder part" msgstr "Продукция не соответствует детали заказа на производство" -#: build/serializers.py:192 +#: build/serializers.py:239 msgid "This build output has already been completed" msgstr "Эта продукция уже помечена как завершенная" -#: build/serializers.py:203 +#: build/serializers.py:250 msgid "This build output is not fully allocated" msgstr "Сырье для этой продукции не полностью зарезервировано" -#: build/serializers.py:223 build/serializers.py:270 +#: build/serializers.py:270 build/serializers.py:317 msgid "Enter quantity for build output" msgstr "Введите количество продукции" -#: build/serializers.py:291 +#: build/serializers.py:338 msgid "Integer quantity required for trackable parts" msgstr "Для отслеживаемых деталей должно быть указано целочисленное количество" -#: build/serializers.py:294 +#: build/serializers.py:341 msgid "Integer quantity required, as the bill of materials contains trackable parts" msgstr "Требуется целое количество, так как материал содержит отслеживаемые детали" -#: build/serializers.py:309 order/serializers.py:678 order/serializers.py:1464 -#: stock/serializers.py:680 templates/js/translated/purchase_order.js:1154 +#: build/serializers.py:356 order/serializers.py:763 order/serializers.py:1590 +#: stock/serializers.py:707 templates/js/translated/purchase_order.js:1137 #: templates/js/translated/stock.js:373 templates/js/translated/stock.js:571 msgid "Serial Numbers" msgstr "Серийные номера" -#: build/serializers.py:310 +#: build/serializers.py:357 msgid "Enter serial numbers for build outputs" msgstr "Введите серийные номера для продукции" -#: build/serializers.py:315 build/serializers.py:456 build/serializers.py:528 -#: order/serializers.py:654 order/serializers.py:778 order/serializers.py:1781 -#: part/serializers.py:1212 stock/serializers.py:102 stock/serializers.py:691 -#: stock/serializers.py:851 stock/serializers.py:977 stock/serializers.py:1425 -#: stock/serializers.py:1681 stock/templates/stock/item_base.html:394 +#: build/serializers.py:362 build/serializers.py:500 build/serializers.py:572 +#: order/serializers.py:739 order/serializers.py:880 order/serializers.py:1933 +#: part/serializers.py:1265 stock/serializers.py:103 stock/serializers.py:718 +#: stock/serializers.py:882 stock/serializers.py:1008 stock/serializers.py:1456 +#: stock/serializers.py:1712 stock/templates/stock/item_base.html:391 #: templates/js/translated/barcode.js:578 -#: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1032 -#: templates/js/translated/build.js:1174 templates/js/translated/build.js:2544 -#: templates/js/translated/purchase_order.js:1210 -#: templates/js/translated/purchase_order.js:1320 -#: templates/js/translated/sales_order.js:1547 -#: templates/js/translated/sales_order.js:1655 -#: templates/js/translated/sales_order.js:1663 -#: templates/js/translated/sales_order.js:1742 +#: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1035 +#: templates/js/translated/build.js:1177 templates/js/translated/build.js:2551 +#: templates/js/translated/purchase_order.js:1193 +#: templates/js/translated/purchase_order.js:1303 +#: templates/js/translated/sales_order.js:1513 +#: templates/js/translated/sales_order.js:1636 +#: templates/js/translated/sales_order.js:1644 +#: templates/js/translated/sales_order.js:1723 #: templates/js/translated/stock.js:684 templates/js/translated/stock.js:850 -#: templates/js/translated/stock.js:1067 templates/js/translated/stock.js:2286 -#: templates/js/translated/stock.js:2955 +#: templates/js/translated/stock.js:1067 templates/js/translated/stock.js:2287 +#: templates/js/translated/stock.js:2956 msgid "Location" msgstr "Расположение" -#: build/serializers.py:316 +#: build/serializers.py:363 msgid "Stock location for build output" msgstr "" -#: build/serializers.py:330 +#: build/serializers.py:377 msgid "Auto Allocate Serial Numbers" msgstr "Автоматически выделить серийные номера" -#: build/serializers.py:331 +#: build/serializers.py:378 msgid "Automatically allocate required items with matching serial numbers" msgstr "Автоматически зарезервировать необходимые элементы с соответствующими серийными номерами" -#: build/serializers.py:346 -msgid "Serial numbers must be provided for trackable parts" -msgstr "Для отслеживаемых частей должны быть указаны серийные номера" - -#: build/serializers.py:371 stock/api.py:1031 +#: build/serializers.py:415 order/serializers.py:858 stock/api.py:1017 +#: stock/models.py:1632 msgid "The following serial numbers already exist or are invalid" msgstr "Следующие серийные номера уже существуют или недействительны" -#: build/serializers.py:418 build/serializers.py:480 build/serializers.py:569 +#: build/serializers.py:462 build/serializers.py:524 build/serializers.py:613 msgid "A list of build outputs must be provided" msgstr "Необходимо представить список выхода деталей" -#: build/serializers.py:457 +#: build/serializers.py:501 msgid "Stock location for scrapped outputs" msgstr "Место хранения для списанной продукции" -#: build/serializers.py:463 +#: build/serializers.py:507 msgid "Discard Allocations" msgstr "Отменить резервирование" -#: build/serializers.py:464 +#: build/serializers.py:508 msgid "Discard any stock allocations for scrapped outputs" msgstr "Отменить все резервы запасов для списанной продукции" -#: build/serializers.py:469 +#: build/serializers.py:513 msgid "Reason for scrapping build output(s)" msgstr "Причина списания продукции" -#: build/serializers.py:529 +#: build/serializers.py:573 msgid "Location for completed build outputs" msgstr "Место хранения для завершенной продукции" -#: build/serializers.py:535 build/templates/build/build_base.html:159 -#: build/templates/build/detail.html:62 order/models.py:476 -#: order/models.py:1002 order/models.py:2159 order/serializers.py:686 -#: stock/admin.py:164 stock/serializers.py:1028 stock/serializers.py:1569 -#: stock/templates/stock/item_base.html:427 -#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2363 -#: templates/js/translated/purchase_order.js:1371 -#: templates/js/translated/purchase_order.js:1792 +#: build/serializers.py:579 build/templates/build/build_base.html:160 +#: build/templates/build/detail.html:62 order/models.py:488 +#: order/models.py:1029 order/models.py:2198 order/serializers.py:771 +#: stock/admin.py:165 stock/serializers.py:581 stock/serializers.py:1059 +#: stock/serializers.py:1600 stock/templates/stock/item_base.html:424 +#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2366 +#: templates/js/translated/purchase_order.js:1354 +#: templates/js/translated/purchase_order.js:1776 #: templates/js/translated/return_order.js:330 -#: templates/js/translated/sales_order.js:855 -#: templates/js/translated/stock.js:2261 templates/js/translated/stock.js:3079 -#: templates/js/translated/stock.js:3204 +#: templates/js/translated/sales_order.js:814 +#: templates/js/translated/stock.js:2262 templates/js/translated/stock.js:3080 +#: templates/js/translated/stock.js:3205 msgid "Status" msgstr "Статус" -#: build/serializers.py:541 +#: build/serializers.py:585 msgid "Accept Incomplete Allocation" msgstr "Разрешить неполное резервирование" -#: build/serializers.py:542 +#: build/serializers.py:586 msgid "Complete outputs if stock has not been fully allocated" msgstr "Завершить продукцию, если запасы не были полностью распределены" -#: build/serializers.py:654 +#: build/serializers.py:698 msgid "Consume Allocated Stock" msgstr "" -#: build/serializers.py:655 +#: build/serializers.py:699 msgid "Consume any stock which has already been allocated to this build" -msgstr "" +msgstr "Вычесть запасы, которые уже были зарезервированы для этого производства" -#: build/serializers.py:661 +#: build/serializers.py:705 msgid "Remove Incomplete Outputs" msgstr "Удалить незавершенную продукцию" -#: build/serializers.py:662 +#: build/serializers.py:706 msgid "Delete any build outputs which have not been completed" msgstr "Удалить всю незавершенную продукцию" -#: build/serializers.py:689 +#: build/serializers.py:733 msgid "Not permitted" msgstr "Запрещено" -#: build/serializers.py:690 +#: build/serializers.py:734 msgid "Accept as consumed by this build order" msgstr "Принять как поглощенный этим заказом на производство" -#: build/serializers.py:691 +#: build/serializers.py:735 msgid "Deallocate before completing this build order" msgstr "Отменить резерв, до завершения заказа на производство" -#: build/serializers.py:721 +#: build/serializers.py:765 msgid "Overallocated Stock" msgstr "Перераспределенные запасы" -#: build/serializers.py:723 +#: build/serializers.py:767 msgid "How do you want to handle extra stock items assigned to the build order" msgstr "Как вы хотите обработать дополнительные складские позиции, назначенные для заказа на производство" -#: build/serializers.py:733 +#: build/serializers.py:777 msgid "Some stock items have been overallocated" msgstr "Некоторые складские позиции были перераспределены" -#: build/serializers.py:738 +#: build/serializers.py:782 msgid "Accept Unallocated" msgstr "Разрешить не полное резервирование" -#: build/serializers.py:739 +#: build/serializers.py:783 msgid "Accept that stock items have not been fully allocated to this build order" msgstr "Подтвердите, что складские позиции не были полностью зарезервированы для этого заказа на производство" -#: build/serializers.py:749 templates/js/translated/build.js:316 +#: build/serializers.py:793 templates/js/translated/build.js:319 msgid "Required stock has not been fully allocated" msgstr "Необходимые запасы не были полностью зарезервированы" -#: build/serializers.py:754 order/serializers.py:345 order/serializers.py:1365 +#: build/serializers.py:798 order/serializers.py:430 order/serializers.py:1491 msgid "Accept Incomplete" msgstr "Разрешить незавершенные производимые детали" -#: build/serializers.py:755 +#: build/serializers.py:799 msgid "Accept that the required number of build outputs have not been completed" msgstr "Допустить, что требуемое кол-во продукции не завершено" -#: build/serializers.py:765 templates/js/translated/build.js:320 +#: build/serializers.py:809 templates/js/translated/build.js:323 msgid "Required build quantity has not been completed" msgstr "Требуемое количество деталей не было произведено" -#: build/serializers.py:774 +#: build/serializers.py:818 msgid "Build order has open child build orders" -msgstr "" +msgstr "Производственный заказ имеет незавершённые дочерние заказы" -#: build/serializers.py:777 +#: build/serializers.py:821 msgid "Build order must be in production state" -msgstr "" +msgstr "Заказ на производство должен быть в стадии выполнения" -#: build/serializers.py:780 templates/js/translated/build.js:304 +#: build/serializers.py:824 templates/js/translated/build.js:307 msgid "Build order has incomplete outputs" msgstr "Заказ на производство имеет незавершенную продукцию" -#: build/serializers.py:818 +#: build/serializers.py:862 msgid "Build Line" msgstr "Позиция для производства" -#: build/serializers.py:828 +#: build/serializers.py:872 msgid "Build output" msgstr "Выход продукции" -#: build/serializers.py:836 +#: build/serializers.py:880 msgid "Build output must point to the same build" msgstr "Продукция должна указывать на тот же производство" -#: build/serializers.py:872 +#: build/serializers.py:916 msgid "Build Line Item" msgstr "Позиция для производства" -#: build/serializers.py:886 +#: build/serializers.py:930 msgid "bom_item.part must point to the same part as the build order" msgstr "bom_item.part должна указывать на ту же часть, что и заказ на производство" -#: build/serializers.py:901 stock/serializers.py:1294 +#: build/serializers.py:945 stock/serializers.py:1325 msgid "Item must be in stock" msgstr "Элемент должен быть в наличии" -#: build/serializers.py:949 order/serializers.py:1351 +#: build/serializers.py:993 order/serializers.py:1477 #, python-brace-format msgid "Available quantity ({q}) exceeded" msgstr "Превышено доступное количество ({q})" -#: build/serializers.py:955 +#: build/serializers.py:999 msgid "Build output must be specified for allocation of tracked parts" msgstr "Продукция должна быть указан для резервирования отслеживаемых частей" -#: build/serializers.py:962 +#: build/serializers.py:1006 msgid "Build output cannot be specified for allocation of untracked parts" msgstr "Продукция не может быть указана для резервирования не отслеживаемых частей" -#: build/serializers.py:986 order/serializers.py:1610 +#: build/serializers.py:1030 order/serializers.py:1750 msgid "Allocation items must be provided" msgstr "Необходимо указать резервируемые элементы" -#: build/serializers.py:1049 +#: build/serializers.py:1093 msgid "Stock location where parts are to be sourced (leave blank to take from any location)" msgstr "Место хранения, где будут зарезервированы детали (оставьте пустым, чтобы забрать их из любого места)" -#: build/serializers.py:1057 +#: build/serializers.py:1101 msgid "Exclude Location" msgstr "Исключить место хранения" -#: build/serializers.py:1058 +#: build/serializers.py:1102 msgid "Exclude stock items from this selected location" msgstr "Исключить складские позиции из этого выбранного места хранения" -#: build/serializers.py:1063 +#: build/serializers.py:1107 msgid "Interchangeable Stock" msgstr "Обменный остаток" -#: build/serializers.py:1064 +#: build/serializers.py:1108 msgid "Stock items in multiple locations can be used interchangeably" msgstr "Складские позиции в нескольких местах могут использоваться на взаимозаменяемой основе" -#: build/serializers.py:1069 +#: build/serializers.py:1113 msgid "Substitute Stock" msgstr "Заменить остатки" -#: build/serializers.py:1070 +#: build/serializers.py:1114 msgid "Allow allocation of substitute parts" msgstr "Разрешить резервирование замещающих деталей" -#: build/serializers.py:1075 +#: build/serializers.py:1119 msgid "Optional Items" msgstr "Необязательные элементы" -#: build/serializers.py:1076 +#: build/serializers.py:1120 msgid "Allocate optional BOM items to build order" msgstr "Зарезервировать необязательные позиции BOM для заказа на производство" -#: build/serializers.py:1098 +#: build/serializers.py:1143 msgid "Failed to start auto-allocation task" msgstr "Не удалось запустить задачу автораспределения" -#: build/serializers.py:1181 +#: build/serializers.py:1226 stock/serializers.py:585 msgid "Supplier Part Number" -msgstr "" +msgstr "Номер детали поставщика" -#: build/serializers.py:1182 company/models.py:506 +#: build/serializers.py:1227 company/models.py:503 stock/serializers.py:591 msgid "Manufacturer Part Number" msgstr "Код производителя" -#: build/serializers.py:1183 stock/admin.py:53 stock/admin.py:175 -#: stock/serializers.py:457 +#: build/serializers.py:1228 stock/admin.py:53 stock/admin.py:176 +#: stock/serializers.py:467 msgid "Location Name" msgstr "Имя Места Хранения" -#: build/serializers.py:1184 +#: build/serializers.py:1229 build/serializers.py:1327 msgid "Build Reference" msgstr "" -#: build/serializers.py:1185 +#: build/serializers.py:1230 msgid "BOM Reference" msgstr "" -#: build/serializers.py:1186 company/models.py:852 -#: company/templates/company/supplier_part.html:160 order/serializers.py:690 -#: stock/admin.py:228 stock/models.py:818 stock/serializers.py:1579 -#: stock/templates/stock/item_base.html:240 -#: templates/js/translated/company.js:1646 -#: templates/js/translated/purchase_order.js:1169 -#: templates/js/translated/purchase_order.js:1332 +#: build/serializers.py:1231 company/models.py:849 +#: company/templates/company/supplier_part.html:161 order/serializers.py:775 +#: stock/admin.py:229 stock/models.py:895 stock/serializers.py:1610 +#: stock/templates/stock/item_base.html:237 +#: templates/js/translated/company.js:1647 +#: templates/js/translated/purchase_order.js:1152 +#: templates/js/translated/purchase_order.js:1315 #: templates/js/translated/stock.js:1214 templates/js/translated/stock.js:1246 -#: templates/js/translated/stock.js:2509 +#: templates/js/translated/stock.js:2510 msgid "Packaging" msgstr "Упаковка" -#: build/serializers.py:1189 part/admin.py:39 part/admin.py:398 -#: part/models.py:4101 part/stocktake.py:218 stock/admin.py:152 +#: build/serializers.py:1234 part/admin.py:39 part/admin.py:398 +#: part/models.py:4159 part/stocktake.py:218 stock/admin.py:153 msgid "Part ID" msgstr "Код детали" -#: build/serializers.py:1191 build/serializers.py:1280 part/admin.py:402 -#: part/models.py:4103 +#: build/serializers.py:1236 build/serializers.py:1332 part/admin.py:402 +#: part/models.py:4161 msgid "Part IPN" msgstr "IPN детали" -#: build/serializers.py:1192 build/serializers.py:1282 part/admin.py:45 +#: build/serializers.py:1237 build/serializers.py:1334 part/admin.py:45 #: part/stocktake.py:220 msgid "Part Description" msgstr "Описание детали" -#: build/serializers.py:1195 +#: build/serializers.py:1240 msgid "BOM Part ID" msgstr "" -#: build/serializers.py:1196 +#: build/serializers.py:1241 msgid "BOM Part Name" msgstr "" -#: build/serializers.py:1199 +#: build/serializers.py:1244 #: report/templates/report/inventree_return_order_report.html:25 -#: report/templates/report/inventree_test_report.html:88 stock/models.py:845 -#: stock/serializers.py:151 stock/templates/stock/item_base.html:311 -#: templates/js/translated/build.js:520 templates/js/translated/build.js:1540 -#: templates/js/translated/build.js:2527 -#: templates/js/translated/model_renderers.js:231 +#: report/templates/report/inventree_sales_order_shipment_report.html:45 +#: report/templates/report/inventree_test_report.html:88 stock/models.py:922 +#: stock/serializers.py:152 stock/templates/stock/item_base.html:308 +#: templates/js/translated/build.js:523 templates/js/translated/build.js:1543 +#: templates/js/translated/build.js:2534 +#: templates/js/translated/model_renderers.js:234 #: templates/js/translated/return_order.js:539 #: templates/js/translated/return_order.js:722 -#: templates/js/translated/sales_order.js:315 -#: templates/js/translated/sales_order.js:1647 -#: templates/js/translated/sales_order.js:1732 +#: templates/js/translated/sales_order.js:1628 +#: templates/js/translated/sales_order.js:1713 #: templates/js/translated/stock.js:602 msgid "Serial Number" msgstr "Серийный номер" -#: build/serializers.py:1212 stock/serializers.py:593 -#: templates/js/translated/build.js:1017 templates/js/translated/build.js:1164 -#: templates/js/translated/build.js:2516 +#: build/serializers.py:1257 stock/serializers.py:620 +#: templates/js/translated/build.js:1020 templates/js/translated/build.js:1167 +#: templates/js/translated/build.js:2523 msgid "Allocated Quantity" msgstr "Зарезервированное количество" -#: build/serializers.py:1213 stock/templates/stock/item_base.html:340 +#: build/serializers.py:1258 stock/templates/stock/item_base.html:337 msgid "Available Quantity" msgstr "Доступный запас" -#: build/serializers.py:1283 +#: build/serializers.py:1335 msgid "Part Category ID" msgstr "" -#: build/serializers.py:1284 +#: build/serializers.py:1336 msgid "Part Category Name" msgstr "" -#: build/serializers.py:1291 common/models.py:1513 part/admin.py:113 -#: part/models.py:1166 templates/js/translated/table_filters.js:150 +#: build/serializers.py:1345 common/models.py:1582 part/admin.py:113 +#: part/models.py:1227 templates/js/translated/build.js:2738 +#: templates/js/translated/table_filters.js:150 #: templates/js/translated/table_filters.js:230 #: templates/js/translated/table_filters.js:783 msgid "Trackable" msgstr "Отслеживание" -#: build/serializers.py:1292 +#: build/serializers.py:1346 msgid "Inherited" msgstr "Унаследованные" -#: build/serializers.py:1293 part/models.py:4313 +#: build/serializers.py:1347 part/models.py:4370 #: part/templates/part/upload_bom.html:56 templates/js/translated/bom.js:1046 -#: templates/js/translated/build.js:2711 +#: templates/js/translated/build.js:2720 msgid "Allow Variants" msgstr "Разрешить разновидности" -#: build/serializers.py:1297 part/models.py:4110 part/models.py:4584 +#: build/serializers.py:1351 part/models.py:4168 part/models.py:4646 #: stock/api.py:794 msgid "BOM Item" msgstr "Позиция BOM" -#: build/serializers.py:1306 build/templates/build/detail.html:236 +#: build/serializers.py:1370 build/templates/build/detail.html:236 #: build/templates/build/sidebar.html:16 templates/js/translated/index.js:130 msgid "Allocated Stock" msgstr "Зарезервированные Запасы" -#: build/serializers.py:1311 order/serializers.py:1175 part/admin.py:132 -#: part/bom.py:181 part/serializers.py:899 part/serializers.py:1602 -#: part/templates/part/part_base.html:210 templates/js/translated/bom.js:1208 -#: templates/js/translated/build.js:2804 templates/js/translated/part.js:712 +#: build/serializers.py:1375 order/serializers.py:1209 part/admin.py:132 +#: part/bom.py:186 part/serializers.py:951 part/serializers.py:1660 +#: part/templates/part/part_base.html:211 templates/js/translated/bom.js:1208 +#: templates/js/translated/build.js:2822 templates/js/translated/part.js:712 #: templates/js/translated/part.js:2155 #: templates/js/translated/table_filters.js:177 msgid "On Order" msgstr "В заказе" -#: build/serializers.py:1316 order/serializers.py:1176 part/serializers.py:1604 -#: templates/js/translated/build.js:2808 +#: build/serializers.py:1380 order/serializers.py:1210 part/serializers.py:1662 +#: templates/js/translated/build.js:2826 #: templates/js/translated/table_filters.js:367 msgid "In Production" msgstr "В производстве" -#: build/serializers.py:1321 part/bom.py:180 part/serializers.py:1629 -#: part/templates/part/part_base.html:192 -#: templates/js/translated/sales_order.js:1929 -msgid "Available Stock" -msgstr "Доступный запас" - -#: build/serializers.py:1325 -msgid "Available Substitute Stock" -msgstr "" - -#: build/serializers.py:1326 -msgid "Available Variant Stock" -msgstr "" - -#: build/serializers.py:1327 -msgid "Total Available Stock" -msgstr "" - -#: build/serializers.py:1328 part/serializers.py:906 +#: build/serializers.py:1384 part/serializers.py:958 msgid "External Stock" msgstr "Внешний склад" -#: build/status_codes.py:11 generic/states/tests.py:17 order/status_codes.py:12 -#: order/status_codes.py:42 order/status_codes.py:74 order/status_codes.py:98 +#: build/serializers.py:1385 part/bom.py:185 part/serializers.py:1687 +#: part/templates/part/part_base.html:193 +#: templates/js/translated/sales_order.js:1910 +msgid "Available Stock" +msgstr "Доступный запас" + +#: build/serializers.py:1386 +msgid "Available Substitute Stock" +msgstr "" + +#: build/serializers.py:1387 +msgid "Available Variant Stock" +msgstr "" + +#: build/status_codes.py:11 generic/states/tests.py:21 +#: generic/states/tests.py:131 order/status_codes.py:12 +#: order/status_codes.py:44 order/status_codes.py:76 order/status_codes.py:102 #: templates/js/translated/table_filters.js:601 msgid "Pending" msgstr "Ожидаемый" @@ -1722,21 +1750,21 @@ msgstr "Ожидаемый" msgid "Production" msgstr "Продукция" -#: build/status_codes.py:13 order/status_codes.py:14 order/status_codes.py:49 -#: order/status_codes.py:79 +#: build/status_codes.py:13 order/status_codes.py:14 order/status_codes.py:51 +#: order/status_codes.py:81 msgid "On Hold" -msgstr "" +msgstr "На удержании" -#: build/status_codes.py:14 order/status_codes.py:16 order/status_codes.py:51 -#: order/status_codes.py:82 +#: build/status_codes.py:14 order/status_codes.py:16 order/status_codes.py:53 +#: order/status_codes.py:84 msgid "Cancelled" msgstr "Отменено" -#: build/status_codes.py:15 generic/states/tests.py:19 importer/models.py:509 -#: importer/status_codes.py:19 order/status_codes.py:15 -#: order/status_codes.py:50 order/status_codes.py:81 -#: order/templates/order/order_base.html:163 -#: order/templates/order/sales_order_base.html:168 report/models.py:443 +#: build/status_codes.py:15 generic/states/tests.py:23 importer/models.py:518 +#: importer/status_codes.py:27 order/status_codes.py:15 +#: order/status_codes.py:52 order/status_codes.py:83 +#: order/templates/order/order_base.html:172 +#: order/templates/order/sales_order_base.html:169 report/models.py:451 msgid "Complete" msgstr "Готово" @@ -1744,165 +1772,162 @@ msgstr "Готово" msgid "Stock required for build order" msgstr "Необходимый запас для заказа на производство" -#: build/tasks.py:201 +#: build/tasks.py:260 msgid "Overdue Build Order" msgstr "Просроченный заказ сборки" -#: build/tasks.py:206 +#: build/tasks.py:265 #, python-brace-format msgid "Build order {bo} is now overdue" msgstr "Заказ на производство {bo} просрочен" -#: build/templates/build/build_base.html:18 +#: build/templates/build/build_base.html:19 msgid "Part thumbnail" msgstr "Миниатюра детали" -#: build/templates/build/build_base.html:38 -#: company/templates/company/supplier_part.html:35 -#: order/templates/order/order_base.html:29 -#: order/templates/order/return_order_base.html:38 -#: order/templates/order/sales_order_base.html:38 -#: part/templates/part/part_base.html:41 -#: stock/templates/stock/item_base.html:40 -#: stock/templates/stock/location.html:52 +#: build/templates/build/build_base.html:39 +#: company/templates/company/supplier_part.html:36 +#: order/templates/order/order_base.html:30 +#: order/templates/order/return_order_base.html:39 +#: order/templates/order/sales_order_base.html:39 +#: part/templates/part/part_base.html:42 +#: stock/templates/stock/item_base.html:41 +#: stock/templates/stock/location.html:53 #: templates/js/translated/filters.js:338 msgid "Barcode actions" msgstr "Действия со штрих-кодом" -#: build/templates/build/build_base.html:42 -#: company/templates/company/supplier_part.html:39 -#: order/templates/order/order_base.html:33 -#: order/templates/order/return_order_base.html:42 -#: order/templates/order/sales_order_base.html:42 -#: part/templates/part/part_base.html:44 -#: stock/templates/stock/item_base.html:44 -#: stock/templates/stock/location.html:54 templates/qr_button.html:1 +#: build/templates/build/build_base.html:43 +#: company/templates/company/supplier_part.html:40 +#: order/templates/order/order_base.html:34 +#: order/templates/order/return_order_base.html:43 +#: order/templates/order/sales_order_base.html:43 +#: part/templates/part/part_base.html:45 +#: stock/templates/stock/item_base.html:45 +#: stock/templates/stock/location.html:55 templates/qr_button.html:1 msgid "Show QR Code" msgstr "Показать QR-код" -#: build/templates/build/build_base.html:45 -#: company/templates/company/supplier_part.html:41 -#: order/templates/order/order_base.html:36 -#: order/templates/order/return_order_base.html:45 -#: order/templates/order/sales_order_base.html:45 -#: part/templates/part/part_base.html:47 -#: stock/templates/stock/item_base.html:47 -#: stock/templates/stock/location.html:56 +#: build/templates/build/build_base.html:46 +#: company/templates/company/supplier_part.html:42 +#: order/templates/order/order_base.html:37 +#: order/templates/order/return_order_base.html:46 +#: order/templates/order/sales_order_base.html:46 +#: part/templates/part/part_base.html:48 +#: stock/templates/stock/item_base.html:48 +#: stock/templates/stock/location.html:57 #: templates/js/translated/barcode.js:527 #: templates/js/translated/barcode.js:532 msgid "Unlink Barcode" msgstr "Отвязать штрих-код" -#: build/templates/build/build_base.html:47 -#: company/templates/company/supplier_part.html:43 -#: order/templates/order/order_base.html:38 -#: order/templates/order/return_order_base.html:47 -#: order/templates/order/sales_order_base.html:47 -#: part/templates/part/part_base.html:49 -#: stock/templates/stock/item_base.html:49 -#: stock/templates/stock/location.html:58 +#: build/templates/build/build_base.html:48 +#: company/templates/company/supplier_part.html:44 +#: order/templates/order/order_base.html:39 +#: order/templates/order/return_order_base.html:48 +#: order/templates/order/sales_order_base.html:48 +#: part/templates/part/part_base.html:50 +#: stock/templates/stock/item_base.html:50 +#: stock/templates/stock/location.html:59 msgid "Link Barcode" msgstr "Привязать штрих-код" -#: build/templates/build/build_base.html:56 -#: order/templates/order/order_base.html:46 -#: order/templates/order/return_order_base.html:55 -#: order/templates/order/sales_order_base.html:55 +#: build/templates/build/build_base.html:57 +#: order/templates/order/order_base.html:47 +#: order/templates/order/return_order_base.html:56 +#: order/templates/order/sales_order_base.html:56 msgid "Print actions" msgstr "Печать" -#: build/templates/build/build_base.html:60 +#: build/templates/build/build_base.html:61 msgid "Print build order report" msgstr "Печать отчета о заказе на производство" -#: build/templates/build/build_base.html:67 +#: build/templates/build/build_base.html:68 msgid "Build actions" msgstr "Действия с производством" -#: build/templates/build/build_base.html:71 +#: build/templates/build/build_base.html:72 msgid "Edit Build" msgstr "Редактировать производство" -#: build/templates/build/build_base.html:73 +#: build/templates/build/build_base.html:74 msgid "Duplicate Build" msgstr "Дублировать производство" -#: build/templates/build/build_base.html:76 +#: build/templates/build/build_base.html:77 msgid "Hold Build" -msgstr "" +msgstr "Приостановить сборку" -#: build/templates/build/build_base.html:79 +#: build/templates/build/build_base.html:80 msgid "Cancel Build" msgstr "Отменить производство" -#: build/templates/build/build_base.html:82 +#: build/templates/build/build_base.html:83 msgid "Delete Build" msgstr "Удалить производство" -#: build/templates/build/build_base.html:87 -msgid "Isueue Build" -msgstr "" - #: build/templates/build/build_base.html:88 +#: build/templates/build/build_base.html:89 msgid "Issue Build" msgstr "" -#: build/templates/build/build_base.html:91 #: build/templates/build/build_base.html:92 +#: build/templates/build/build_base.html:93 msgid "Complete Build" msgstr "Завершить производство" -#: build/templates/build/build_base.html:115 +#: build/templates/build/build_base.html:116 msgid "Build Description" msgstr "Описание производства" -#: build/templates/build/build_base.html:125 +#: build/templates/build/build_base.html:126 msgid "No build outputs have been created for this build order" msgstr "Не указана продукция для этого заказа на производство" -#: build/templates/build/build_base.html:132 +#: build/templates/build/build_base.html:133 msgid "Build Order is ready to mark as completed" msgstr "Заказ на производство готов быть отмечен как выполненный" -#: build/templates/build/build_base.html:137 +#: build/templates/build/build_base.html:138 msgid "Build Order cannot be completed as outstanding outputs remain" msgstr "Заказ на производство не может быть выполнен, так как осталась незавершенная продукция" -#: build/templates/build/build_base.html:142 +#: build/templates/build/build_base.html:143 msgid "Required build quantity has not yet been completed" msgstr "Требуемое кол-во не было произведено" -#: build/templates/build/build_base.html:147 +#: build/templates/build/build_base.html:148 msgid "Stock has not been fully allocated to this Build Order" msgstr "Остатки не были полностью зарезервированы для этого заказа на производство" -#: build/templates/build/build_base.html:168 -#: build/templates/build/detail.html:138 order/models.py:308 -#: order/models.py:1391 order/serializers.py:174 -#: order/templates/order/order_base.html:191 -#: order/templates/order/return_order_base.html:167 -#: order/templates/order/sales_order_base.html:199 +#: build/templates/build/build_base.html:169 +#: build/templates/build/detail.html:138 order/models.py:315 +#: order/models.py:1408 order/serializers.py:254 +#: order/templates/order/order_base.html:200 +#: order/templates/order/return_order_base.html:168 +#: order/templates/order/sales_order_base.html:200 #: report/templates/report/inventree_build_order_report.html:125 -#: templates/js/translated/build.js:2411 templates/js/translated/part.js:1837 -#: templates/js/translated/purchase_order.js:1809 -#: templates/js/translated/purchase_order.js:2217 +#: templates/js/translated/build.js:2414 templates/js/translated/part.js:1837 +#: templates/js/translated/purchase_order.js:1793 +#: templates/js/translated/purchase_order.js:2201 #: templates/js/translated/return_order.js:346 #: templates/js/translated/return_order.js:749 -#: templates/js/translated/sales_order.js:871 -#: templates/js/translated/sales_order.js:1903 +#: templates/js/translated/sales_order.js:830 +#: templates/js/translated/sales_order.js:1884 msgid "Target Date" msgstr "Целевая дата" -#: build/templates/build/build_base.html:173 +#: build/templates/build/build_base.html:174 #, python-format msgid "This build was due on %(target)s" msgstr "Производство было просрочено на %(target)s" -#: build/templates/build/build_base.html:173 -#: build/templates/build/build_base.html:230 -#: order/templates/order/order_base.html:127 -#: order/templates/order/return_order_base.html:120 -#: order/templates/order/sales_order_base.html:129 +#: build/templates/build/build_base.html:174 +#: build/templates/build/build_base.html:231 +#: order/templates/order/order_base.html:128 +#: order/templates/order/return_order_base.html:121 +#: order/templates/order/sales_order_base.html:130 #: templates/js/translated/table_filters.js:97 #: templates/js/translated/table_filters.js:545 #: templates/js/translated/table_filters.js:629 @@ -1910,49 +1935,50 @@ msgstr "Производство было просрочено на %(target)s" msgid "Overdue" msgstr "Просрочено" -#: build/templates/build/build_base.html:185 +#: build/templates/build/build_base.html:186 #: build/templates/build/detail.html:67 build/templates/build/sidebar.html:13 msgid "Completed Outputs" msgstr "Завершенная продукция" -#: build/templates/build/build_base.html:198 -#: build/templates/build/detail.html:101 order/api.py:1406 order/models.py:892 -#: order/models.py:1650 order/models.py:1765 order/models.py:1924 -#: order/templates/order/sales_order_base.html:9 -#: order/templates/order/sales_order_base.html:28 +#: build/templates/build/build_base.html:199 +#: build/templates/build/detail.html:101 order/api.py:1528 order/models.py:914 +#: order/models.py:1666 order/models.py:1794 order/models.py:1957 +#: order/templates/order/sales_order_base.html:10 +#: order/templates/order/sales_order_base.html:29 #: report/templates/report/inventree_build_order_report.html:135 #: report/templates/report/inventree_sales_order_report.html:14 -#: stock/templates/stock/item_base.html:369 +#: report/templates/report/inventree_sales_order_shipment_report.html:15 +#: stock/templates/stock/item_base.html:366 #: templates/email/overdue_sales_order.html:15 -#: templates/js/translated/pricing.js:929 -#: templates/js/translated/sales_order.js:805 -#: templates/js/translated/sales_order.js:1028 -#: templates/js/translated/stock.js:3008 +#: templates/js/translated/pricing.js:927 +#: templates/js/translated/sales_order.js:764 +#: templates/js/translated/sales_order.js:1001 +#: templates/js/translated/stock.js:3009 msgid "Sales Order" msgstr "Заказ на продажу" -#: build/templates/build/build_base.html:219 -#: build/templates/build/detail.html:94 templates/js/translated/build.js:2328 +#: build/templates/build/build_base.html:220 +#: build/templates/build/detail.html:94 templates/js/translated/build.js:2331 msgid "Priority" msgstr "Приоритет" -#: build/templates/build/build_base.html:267 +#: build/templates/build/build_base.html:268 msgid "Issue Build Order" msgstr "" -#: build/templates/build/build_base.html:271 +#: build/templates/build/build_base.html:272 msgid "Issue this Build Order?" msgstr "" -#: build/templates/build/build_base.html:302 +#: build/templates/build/build_base.html:303 msgid "Delete Build Order" msgstr "Удалить заказ на производство" -#: build/templates/build/build_base.html:312 +#: build/templates/build/build_base.html:313 msgid "Build Order QR Code" msgstr "QR-код заказа на производство" -#: build/templates/build/build_base.html:324 +#: build/templates/build/build_base.html:325 msgid "Link Barcode to Build Order" msgstr "Привязать штрих-код для заказа на производство" @@ -1968,8 +1994,9 @@ msgstr "Источник запаса" msgid "Stock can be taken from any available location." msgstr "Остатки не могут быть получены из любого доступного места хранения." -#: build/templates/build/detail.html:49 order/models.py:1532 -#: templates/js/translated/purchase_order.js:2259 +#: build/templates/build/detail.html:49 order/models.py:548 +#: order/models.py:1548 order/templates/order/order_base.html:135 +#: templates/js/translated/purchase_order.js:2243 msgid "Destination" msgstr "Назначение" @@ -1981,23 +2008,24 @@ msgstr "Место назначения не указано" msgid "Allocated Parts" msgstr "Зарезервированные детали" -#: build/templates/build/detail.html:80 stock/admin.py:162 -#: stock/templates/stock/item_base.html:162 -#: templates/js/translated/build.js:1553 -#: templates/js/translated/model_renderers.js:242 -#: templates/js/translated/purchase_order.js:1326 +#: build/templates/build/detail.html:80 +#: report/templates/report/inventree_sales_order_shipment_report.html:47 +#: stock/admin.py:163 stock/templates/stock/item_base.html:159 +#: templates/js/translated/build.js:1556 +#: templates/js/translated/model_renderers.js:245 +#: templates/js/translated/purchase_order.js:1309 #: templates/js/translated/stock.js:1139 templates/js/translated/stock.js:1240 -#: templates/js/translated/stock.js:2275 templates/js/translated/stock.js:3211 +#: templates/js/translated/stock.js:2276 templates/js/translated/stock.js:3212 #: templates/js/translated/table_filters.js:320 #: templates/js/translated/table_filters.js:411 msgid "Batch" msgstr "Партия" #: build/templates/build/detail.html:133 -#: order/templates/order/order_base.html:178 -#: order/templates/order/return_order_base.html:154 -#: order/templates/order/sales_order_base.html:193 -#: templates/js/translated/build.js:2371 +#: order/templates/order/order_base.html:187 +#: order/templates/order/return_order_base.html:155 +#: order/templates/order/sales_order_base.html:194 +#: templates/js/translated/build.js:2374 msgid "Created" msgstr "Создано" @@ -2005,8 +2033,8 @@ msgstr "Создано" msgid "No target date set" msgstr "Нет конечной даты" -#: build/templates/build/detail.html:149 -#: order/templates/order/sales_order_base.html:209 +#: build/templates/build/detail.html:149 order/api.py:794 +#: order/templates/order/sales_order_base.html:210 #: templates/js/translated/table_filters.js:692 msgid "Completed" msgstr "Завершённые" @@ -2052,7 +2080,7 @@ msgid "Order required parts" msgstr "Заказать необходимые части" #: build/templates/build/detail.html:192 -#: templates/js/translated/purchase_order.js:795 +#: templates/js/translated/purchase_order.js:778 msgid "Order Parts" msgstr "Заказать детали" @@ -2120,7 +2148,7 @@ msgstr "Новый заказ на производство" msgid "Build Order Details" msgstr "Подробности Заказа на Производство" -#: build/templates/build/sidebar.html:8 order/serializers.py:82 +#: build/templates/build/sidebar.html:8 order/serializers.py:113 #: order/templates/order/po_sidebar.html:5 #: order/templates/order/return_order_detail.html:18 #: order/templates/order/so_sidebar.html:5 @@ -2139,43 +2167,38 @@ msgstr "Незавершенная продукция" msgid "Test Statistics" msgstr "" -#: common/api.py:693 +#: common/api.py:725 msgid "Is Link" msgstr "Ссылка" -#: common/api.py:701 +#: common/api.py:733 msgid "Is File" msgstr "Файл" -#: common/api.py:744 +#: common/api.py:776 msgid "User does not have permission to delete these attachments" -msgstr "" +msgstr "У пользователя нет прав для удаления этих вложений" -#: common/api.py:761 +#: common/api.py:793 msgid "User does not have permission to delete this attachment" msgstr "У пользователя нет прав на удаление этого вложения" -#: common/currency.py:132 +#: common/currency.py:134 msgid "Invalid currency code" msgstr "Неверный код валюты" -#: common/currency.py:134 +#: common/currency.py:136 msgid "Duplicate currency code" msgstr "Код валюты дублируется" -#: common/currency.py:139 +#: common/currency.py:141 msgid "No valid currency codes provided" msgstr "Не указаны действительные коды валют" -#: common/currency.py:156 +#: common/currency.py:158 msgid "No plugin" msgstr "Нет плагина" -#: common/files.py:63 -#, python-brace-format -msgid "Unsupported file format: {fmt}" -msgstr "Неподдерживаемый формат файла: {fmt}" - #: common/files.py:65 msgid "Error reading file (invalid encoding)" msgstr "Ошибка чтения файла (неверная кодировка)" @@ -2192,1883 +2215,2039 @@ msgstr "Ошибка чтения файла (неверный размер)" msgid "Error reading file (data could be corrupted)" msgstr "Ошибка чтения файла (данные могут быть повреждены)" -#: common/forms.py:12 +#: common/forms.py:12 common/forms.py:25 msgid "File" msgstr "Файл" -#: common/forms.py:12 +#: common/forms.py:12 common/forms.py:26 msgid "Select file to upload" msgstr "Выберите файл для загрузки" -#: common/forms.py:25 -msgid "{name.title()} File" -msgstr "Файл {name.title()}" - -#: common/forms.py:26 -#, python-brace-format -msgid "Select {name} file to upload" -msgstr "Выберите {name} файл для загрузки" - -#: common/models.py:86 +#: common/models.py:89 msgid "Updated" msgstr "Обновлено" -#: common/models.py:87 +#: common/models.py:90 msgid "Timestamp of last update" msgstr "Временная метка последнего обновления" -#: common/models.py:120 +#: common/models.py:123 msgid "Site URL is locked by configuration" msgstr "URL сайта заблокирован настройками" -#: common/models.py:150 +#: common/models.py:153 msgid "Unique project code" msgstr "Уникальный код проекта" -#: common/models.py:157 +#: common/models.py:160 msgid "Project description" msgstr "Описание проекта" -#: common/models.py:166 +#: common/models.py:169 msgid "User or group responsible for this project" msgstr "Пользователь или группа, ответственные за этот проект" -#: common/models.py:783 -msgid "Settings key (must be unique - case insensitive)" -msgstr "Ключ настроек (должен быть уникальным - не чувствителен к регистрам)" +#: common/models.py:783 common/models.py:2236 common/models.py:2613 +msgid "Settings key" +msgstr "" #: common/models.py:787 msgid "Settings value" msgstr "Значения настроек" -#: common/models.py:839 +#: common/models.py:842 msgid "Chosen value is not a valid option" msgstr "Выбранное значение не является допустимым" -#: common/models.py:855 +#: common/models.py:858 msgid "Value must be a boolean value" msgstr "Значение должно быть булевым" -#: common/models.py:863 +#: common/models.py:866 msgid "Value must be an integer value" msgstr "Значение должно быть целым числом" -#: common/models.py:900 +#: common/models.py:874 +msgid "Value must be a valid number" +msgstr "" + +#: common/models.py:899 +msgid "Value does not pass validation checks" +msgstr "" + +#: common/models.py:921 msgid "Key string must be unique" msgstr "Строка ключа должна быть уникальной" -#: common/models.py:1132 +#: common/models.py:1189 msgid "No group" msgstr "Нет группы" -#: common/models.py:1231 +#: common/models.py:1288 msgid "Restart required" msgstr "Требуется перезапуск" -#: common/models.py:1233 +#: common/models.py:1290 msgid "A setting has been changed which requires a server restart" msgstr "Настройки были изменены, что требует перезапуска сервера" -#: common/models.py:1240 +#: common/models.py:1297 msgid "Pending migrations" msgstr "Ожидаемые миграции" -#: common/models.py:1241 +#: common/models.py:1298 msgid "Number of pending database migrations" msgstr "Количество ожидаемых миграций базы данных" -#: common/models.py:1246 +#: common/models.py:1303 msgid "Server Instance Name" msgstr "Название сервера" -#: common/models.py:1248 +#: common/models.py:1305 msgid "String descriptor for the server instance" msgstr "Текстовое описание сервера" -#: common/models.py:1252 +#: common/models.py:1309 msgid "Use instance name" msgstr "Название инстанса" -#: common/models.py:1253 +#: common/models.py:1310 msgid "Use the instance name in the title-bar" msgstr "Имя сервера в заголовке" -#: common/models.py:1258 +#: common/models.py:1315 msgid "Restrict showing `about`" msgstr "Ограничить отображение `О...`" -#: common/models.py:1259 +#: common/models.py:1316 msgid "Show the `about` modal only to superusers" msgstr "Показать `О...` только суперпользователям" -#: common/models.py:1264 company/models.py:111 company/models.py:112 +#: common/models.py:1321 company/models.py:108 company/models.py:109 msgid "Company name" msgstr "Название компании" -#: common/models.py:1265 +#: common/models.py:1322 msgid "Internal company name" msgstr "Внутреннее название компании" -#: common/models.py:1269 +#: common/models.py:1326 msgid "Base URL" msgstr "Базовая ссылка" -#: common/models.py:1270 +#: common/models.py:1327 msgid "Base URL for server instance" msgstr "Базовая ссылка для экземпляра сервера" -#: common/models.py:1276 +#: common/models.py:1333 msgid "Default Currency" msgstr "Валюта по умолчанию" -#: common/models.py:1277 +#: common/models.py:1334 msgid "Select base currency for pricing calculations" msgstr "Выберите базовую валюту для расчета цены" -#: common/models.py:1283 +#: common/models.py:1340 msgid "Supported Currencies" msgstr "Поддерживаемые валюты" -#: common/models.py:1284 +#: common/models.py:1341 msgid "List of supported currency codes" msgstr "Список поддерживаемых кодов валют" -#: common/models.py:1290 +#: common/models.py:1347 msgid "Currency Update Interval" msgstr "Интервал обновления курса валют" -#: common/models.py:1292 +#: common/models.py:1349 msgid "How often to update exchange rates (set to zero to disable)" msgstr "Как часто обновлять курс валют (установите \"ноль\", чтобы выключить)" -#: common/models.py:1295 common/models.py:1351 common/models.py:1364 -#: common/models.py:1372 common/models.py:1381 common/models.py:1390 -#: common/models.py:1627 common/models.py:1649 common/models.py:1764 -#: common/models.py:2146 +#: common/models.py:1352 common/models.py:1408 common/models.py:1421 +#: common/models.py:1429 common/models.py:1438 common/models.py:1447 +#: common/models.py:1696 common/models.py:1718 common/models.py:1819 +#: common/models.py:2208 msgid "days" msgstr "дней" -#: common/models.py:1299 +#: common/models.py:1356 msgid "Currency Update Plugin" msgstr "Плагин обновления валют" -#: common/models.py:1300 +#: common/models.py:1357 msgid "Currency update plugin to use" msgstr "Модуль обновления валюты" -#: common/models.py:1305 +#: common/models.py:1362 msgid "Download from URL" msgstr "Скачать по ссылке" -#: common/models.py:1307 +#: common/models.py:1364 msgid "Allow download of remote images and files from external URL" msgstr "Разрешить загрузку удаленных изображений и файлов по внешнему URL" -#: common/models.py:1313 +#: common/models.py:1370 msgid "Download Size Limit" msgstr "Ограничение размера загрузки" -#: common/models.py:1314 +#: common/models.py:1371 msgid "Maximum allowable download size for remote image" msgstr "Максимально допустимый размер загрузки для удалённого изображения" -#: common/models.py:1320 +#: common/models.py:1377 msgid "User-agent used to download from URL" msgstr "User-Agent, используемый для загрузки из URL" -#: common/models.py:1322 +#: common/models.py:1379 msgid "Allow to override the user-agent used to download images and files from external URL (leave blank for the default)" msgstr "Позволяет переопределить user-Agent, используемый для загрузки изображений и файлов с внешнего URL (оставьте пустым по умолчанию)" -#: common/models.py:1327 +#: common/models.py:1384 msgid "Strict URL Validation" msgstr "Строгая проверка URL-адреса" -#: common/models.py:1328 +#: common/models.py:1385 msgid "Require schema specification when validating URLs" msgstr "Требуется спецификация схемы при проверке URL-адресов" -#: common/models.py:1333 +#: common/models.py:1390 msgid "Require confirm" msgstr "Требуется подтверждение" -#: common/models.py:1334 +#: common/models.py:1391 msgid "Require explicit user confirmation for certain action." msgstr "Требовать явное подтверждение пользователя для определенного действия." -#: common/models.py:1339 +#: common/models.py:1396 msgid "Tree Depth" msgstr "Глубина дерева" -#: common/models.py:1341 +#: common/models.py:1398 msgid "Default tree depth for treeview. Deeper levels can be lazy loaded as they are needed." msgstr "Глубина дерева по умолчанию для просмотра дерева. Глубокие уровни загружены по мере необходимости." -#: common/models.py:1347 +#: common/models.py:1404 msgid "Update Check Interval" msgstr "Интервал проверки обновлений" -#: common/models.py:1348 +#: common/models.py:1405 msgid "How often to check for updates (set to zero to disable)" msgstr "Как часто проверять наличие обновлений (установите ноль чтобы выключить)" -#: common/models.py:1354 +#: common/models.py:1411 msgid "Automatic Backup" msgstr "Автоматическое резервное копирование" -#: common/models.py:1355 +#: common/models.py:1412 msgid "Enable automatic backup of database and media files" msgstr "Включить автоматическое резервное копирование базы данных и медиа-файлов" -#: common/models.py:1360 +#: common/models.py:1417 msgid "Auto Backup Interval" msgstr "Интервал резервного копирования" -#: common/models.py:1361 +#: common/models.py:1418 msgid "Specify number of days between automated backup events" msgstr "Укажите количество дней между событиями автоматического резервного копирования" -#: common/models.py:1367 +#: common/models.py:1424 msgid "Task Deletion Interval" msgstr "Интервал удаления задачи" -#: common/models.py:1369 +#: common/models.py:1426 msgid "Background task results will be deleted after specified number of days" msgstr "Результаты фоновых задач будут удалены после указанного количества дней" -#: common/models.py:1376 +#: common/models.py:1433 msgid "Error Log Deletion Interval" msgstr "Интервал удаления журнала ошибок" -#: common/models.py:1378 +#: common/models.py:1435 msgid "Error logs will be deleted after specified number of days" msgstr "Журналы ошибок будут удалены после указанного количества дней" -#: common/models.py:1385 +#: common/models.py:1442 msgid "Notification Deletion Interval" msgstr "Интервал удаления уведомления" -#: common/models.py:1387 +#: common/models.py:1444 msgid "User notifications will be deleted after specified number of days" msgstr "Уведомления пользователя будут удалены после указанного количества дней" -#: common/models.py:1394 templates/InvenTree/settings/sidebar.html:31 +#: common/models.py:1451 templates/InvenTree/settings/sidebar.html:31 msgid "Barcode Support" msgstr "Поддержка штрих-кодов" -#: common/models.py:1395 +#: common/models.py:1452 msgid "Enable barcode scanner support in the web interface" msgstr "Включить поддержку сканера штрих-кодов в веб-интерфейсе" -#: common/models.py:1400 +#: common/models.py:1457 +msgid "Store Barcode Results" +msgstr "" + +#: common/models.py:1458 +msgid "Store barcode scan results in the database" +msgstr "" + +#: common/models.py:1463 +msgid "Barcode Scans Maximum Count" +msgstr "" + +#: common/models.py:1464 +msgid "Maximum number of barcode scan results to store" +msgstr "" + +#: common/models.py:1469 msgid "Barcode Input Delay" msgstr "Задержка сканирования штрих-кода" -#: common/models.py:1401 +#: common/models.py:1470 msgid "Barcode input processing delay time" msgstr "Время задержки обработки штрих-кода" -#: common/models.py:1407 +#: common/models.py:1476 msgid "Barcode Webcam Support" msgstr "Поддержка веб-камер штрих-кодов" -#: common/models.py:1408 +#: common/models.py:1477 msgid "Allow barcode scanning via webcam in browser" msgstr "Разрешить сканирование штрих-кода через веб-камеру в браузере" -#: common/models.py:1413 +#: common/models.py:1482 msgid "Barcode Show Data" -msgstr "" +msgstr "Показать данные штрих-кода" -#: common/models.py:1414 +#: common/models.py:1483 msgid "Display barcode data in browser as text" msgstr "Отображать данные штрих-кода в браузере в виде текста" -#: common/models.py:1419 +#: common/models.py:1488 msgid "Barcode Generation Plugin" msgstr "Плагин генерации штрих-кода" -#: common/models.py:1420 +#: common/models.py:1489 msgid "Plugin to use for internal barcode data generation" -msgstr "" +msgstr "Плагин для использования внутренней генерации данных штрих-кодов" -#: common/models.py:1425 +#: common/models.py:1494 msgid "Part Revisions" msgstr "Ревизия детали" -#: common/models.py:1426 +#: common/models.py:1495 msgid "Enable revision field for Part" msgstr "Включить поле ревизии для элемента" -#: common/models.py:1431 +#: common/models.py:1500 msgid "Assembly Revision Only" -msgstr "" +msgstr "Только ревизия сборки" -#: common/models.py:1432 +#: common/models.py:1501 msgid "Only allow revisions for assembly parts" msgstr "" -#: common/models.py:1437 +#: common/models.py:1506 msgid "Allow Deletion from Assembly" msgstr "Разрешить удаление из заказа" -#: common/models.py:1438 +#: common/models.py:1507 msgid "Allow deletion of parts which are used in an assembly" msgstr "Разрешить удаление частей, которые используются в заказе" -#: common/models.py:1443 +#: common/models.py:1512 msgid "IPN Regex" msgstr "Регулярное выражение IPN" -#: common/models.py:1444 +#: common/models.py:1513 msgid "Regular expression pattern for matching Part IPN" msgstr "Шаблон регулярного выражения для сопоставления IPN детали" -#: common/models.py:1447 +#: common/models.py:1516 msgid "Allow Duplicate IPN" msgstr "Разрешить повторяющиеся IPN" -#: common/models.py:1448 +#: common/models.py:1517 msgid "Allow multiple parts to share the same IPN" msgstr "Разрешить нескольким элементам использовать один и тот же IPN" -#: common/models.py:1453 +#: common/models.py:1522 msgid "Allow Editing IPN" msgstr "Разрешить редактирование IPN" -#: common/models.py:1454 +#: common/models.py:1523 msgid "Allow changing the IPN value while editing a part" msgstr "Разрешить изменение значения IPN при редактировании детали" -#: common/models.py:1459 +#: common/models.py:1528 msgid "Copy Part BOM Data" msgstr "Скопировать данные BOM детали" -#: common/models.py:1460 +#: common/models.py:1529 msgid "Copy BOM data by default when duplicating a part" msgstr "Копировать данные BOM по умолчанию при дублировании детали" -#: common/models.py:1465 +#: common/models.py:1534 msgid "Copy Part Parameter Data" msgstr "Скопировать данные параметров детали" -#: common/models.py:1466 +#: common/models.py:1535 msgid "Copy parameter data by default when duplicating a part" msgstr "Копировать данных параметров по умолчанию при дублировании детали" -#: common/models.py:1471 +#: common/models.py:1540 msgid "Copy Part Test Data" msgstr "Скопировать данные тестирования детали" -#: common/models.py:1472 +#: common/models.py:1541 msgid "Copy test data by default when duplicating a part" msgstr "Копировать данные тестирования по умолчанию при дублировании детали" -#: common/models.py:1477 +#: common/models.py:1546 msgid "Copy Category Parameter Templates" msgstr "Скопировать параметры по шаблону категории" -#: common/models.py:1478 +#: common/models.py:1547 msgid "Copy category parameter templates when creating a part" msgstr "Копировать параметры по шаблону категории при создании детали" -#: common/models.py:1483 part/admin.py:108 part/models.py:3945 -#: report/models.py:293 report/models.py:360 report/serializers.py:90 -#: report/serializers.py:131 stock/serializers.py:232 +#: common/models.py:1552 part/admin.py:108 part/models.py:4003 +#: report/models.py:301 report/models.py:368 report/serializers.py:91 +#: report/serializers.py:132 stock/serializers.py:233 #: templates/js/translated/table_filters.js:138 #: templates/js/translated/table_filters.js:775 msgid "Template" msgstr "Шаблон" -#: common/models.py:1484 +#: common/models.py:1553 msgid "Parts are templates by default" msgstr "По умолчанию детали являются шаблонами" -#: common/models.py:1490 +#: common/models.py:1559 msgid "Parts can be assembled from other components by default" msgstr "По умолчанию детали могут быть собраны из других компонентов" -#: common/models.py:1495 part/admin.py:95 part/models.py:1160 -#: part/serializers.py:1596 templates/js/translated/table_filters.js:737 +#: common/models.py:1564 part/admin.py:95 part/models.py:1221 +#: part/serializers.py:1654 templates/js/translated/table_filters.js:737 msgid "Component" msgstr "Компонент" -#: common/models.py:1496 +#: common/models.py:1565 msgid "Parts can be used as sub-components by default" msgstr "По умолчанию детали могут использоваться в качестве суб-компонентов" -#: common/models.py:1501 part/admin.py:100 part/models.py:1178 +#: common/models.py:1570 part/admin.py:100 part/models.py:1239 msgid "Purchaseable" msgstr "Можно купить" -#: common/models.py:1502 +#: common/models.py:1571 msgid "Parts are purchaseable by default" msgstr "По умолчанию детали являются отслеживаемыми" -#: common/models.py:1507 part/admin.py:104 part/models.py:1184 +#: common/models.py:1576 part/admin.py:104 part/models.py:1245 #: templates/js/translated/table_filters.js:763 msgid "Salable" msgstr "Можно продавать" -#: common/models.py:1508 +#: common/models.py:1577 msgid "Parts are salable by default" msgstr "Детали продаются по умолчанию" -#: common/models.py:1514 +#: common/models.py:1583 msgid "Parts are trackable by default" msgstr "По умолчанию детали являются отслеживаемыми" -#: common/models.py:1519 part/admin.py:117 part/models.py:1200 -#: part/templates/part/part_base.html:154 +#: common/models.py:1588 part/admin.py:117 part/models.py:1261 +#: part/templates/part/part_base.html:155 #: templates/js/translated/table_filters.js:142 #: templates/js/translated/table_filters.js:787 msgid "Virtual" msgstr "Виртуальная" -#: common/models.py:1520 +#: common/models.py:1589 msgid "Parts are virtual by default" msgstr "Детали являются виртуальными по умолчанию" -#: common/models.py:1525 +#: common/models.py:1594 msgid "Show Import in Views" msgstr "Показать Импорт в просмотре" -#: common/models.py:1526 +#: common/models.py:1595 msgid "Display the import wizard in some part views" msgstr "Отобразить мастер импорта на некоторых видах деталей" -#: common/models.py:1531 +#: common/models.py:1600 msgid "Show related parts" msgstr "Показывать связанные детали" -#: common/models.py:1532 +#: common/models.py:1601 msgid "Display related parts for a part" msgstr "Отображать связанные детали для элемента" -#: common/models.py:1537 +#: common/models.py:1606 msgid "Initial Stock Data" msgstr "Начальные данные о запасах" -#: common/models.py:1538 +#: common/models.py:1607 msgid "Allow creation of initial stock when adding a new part" msgstr "Разрешить создание начального запаса при добавлении новой детали" -#: common/models.py:1543 templates/js/translated/part.js:108 +#: common/models.py:1612 templates/js/translated/part.js:108 msgid "Initial Supplier Data" msgstr "Исходные данные о поставщике" -#: common/models.py:1545 +#: common/models.py:1614 msgid "Allow creation of initial supplier data when adding a new part" msgstr "Разрешить создание исходных данных о поставщике при добавлении новой детали" -#: common/models.py:1551 +#: common/models.py:1620 msgid "Part Name Display Format" msgstr "Формат отображения детали" -#: common/models.py:1552 +#: common/models.py:1621 msgid "Format to display the part name" msgstr "Формат для отображения имени детали" -#: common/models.py:1558 +#: common/models.py:1627 msgid "Part Category Default Icon" msgstr "Значок раздела по умолчанию" -#: common/models.py:1559 +#: common/models.py:1628 msgid "Part category default icon (empty means no icon)" msgstr "Значок категории по умолчанию (пустой означает отсутствие значка)" -#: common/models.py:1564 +#: common/models.py:1633 msgid "Enforce Parameter Units" msgstr "Принудительное применение единиц измерения параметров" -#: common/models.py:1566 +#: common/models.py:1635 msgid "If units are provided, parameter values must match the specified units" msgstr "Если введены единицы, значения параметра должны соответствовать указанным единицам измерения" -#: common/models.py:1572 +#: common/models.py:1641 msgid "Minimum Pricing Decimal Places" msgstr "Минимальные Цены Десятичные Значки" -#: common/models.py:1574 +#: common/models.py:1643 msgid "Minimum number of decimal places to display when rendering pricing data" msgstr "Минимальное количество десятичных знаков при отображении данных о ценах" -#: common/models.py:1585 +#: common/models.py:1654 msgid "Maximum Pricing Decimal Places" msgstr "Макс. Цены десятичные знаки" -#: common/models.py:1587 +#: common/models.py:1656 msgid "Maximum number of decimal places to display when rendering pricing data" msgstr "Минимальное количество десятичных знаков при отображении данных о ценах" -#: common/models.py:1598 +#: common/models.py:1667 msgid "Use Supplier Pricing" msgstr "Использовать цены поставщика" -#: common/models.py:1600 +#: common/models.py:1669 msgid "Include supplier price breaks in overall pricing calculations" msgstr "Включить разницу цен поставщиков при расчетах цен" -#: common/models.py:1606 +#: common/models.py:1675 msgid "Purchase History Override" msgstr "Изменить историю покупки" -#: common/models.py:1608 +#: common/models.py:1677 msgid "Historical purchase order pricing overrides supplier price breaks" msgstr "Ценообразование по историческим заказам на поставку отменяет различия в ценах поставщиков" -#: common/models.py:1614 +#: common/models.py:1683 msgid "Use Stock Item Pricing" msgstr "Использовать цены из складских позиций" -#: common/models.py:1616 +#: common/models.py:1685 msgid "Use pricing from manually entered stock data for pricing calculations" msgstr "Использовать расценки из ручного ввода данных о запасах для расчета цен" -#: common/models.py:1622 +#: common/models.py:1691 msgid "Stock Item Pricing Age" msgstr "Возраст цен складских позиций" -#: common/models.py:1624 +#: common/models.py:1693 msgid "Exclude stock items older than this number of days from pricing calculations" msgstr "Исключить складские позиции старше указанного количества дней с расчёта цен" -#: common/models.py:1631 +#: common/models.py:1700 msgid "Use Variant Pricing" msgstr "Использовать варианты цен" -#: common/models.py:1632 +#: common/models.py:1701 msgid "Include variant pricing in overall pricing calculations" msgstr "Включить разницу цен поставщиков при расчетах цен" -#: common/models.py:1637 +#: common/models.py:1706 msgid "Active Variants Only" msgstr "Только Активные Варианты" -#: common/models.py:1639 +#: common/models.py:1708 msgid "Only use active variant parts for calculating variant pricing" msgstr "Использовать только активные запчасти для расчета стоимости варианта" -#: common/models.py:1645 +#: common/models.py:1714 msgid "Pricing Rebuild Interval" msgstr "Интервал пересчета цен" -#: common/models.py:1647 +#: common/models.py:1716 msgid "Number of days before part pricing is automatically updated" msgstr "Количество дней до автоматического обновления цены" -#: common/models.py:1654 +#: common/models.py:1723 msgid "Internal Prices" msgstr "Внутренние цены" -#: common/models.py:1655 +#: common/models.py:1724 msgid "Enable internal prices for parts" msgstr "Разрешить внутренние цены для частей" -#: common/models.py:1660 +#: common/models.py:1729 msgid "Internal Price Override" msgstr "Переопределение внутренней цены" -#: common/models.py:1662 +#: common/models.py:1731 msgid "If available, internal prices override price range calculations" msgstr "При наличии внутренних цен переопределить ценовой диапазон" -#: common/models.py:1668 +#: common/models.py:1737 msgid "Enable label printing" msgstr "Включить печать этикеток" -#: common/models.py:1669 +#: common/models.py:1738 msgid "Enable label printing from the web interface" msgstr "Включить печать этикеток из веб-интерфейса" -#: common/models.py:1674 +#: common/models.py:1743 msgid "Label Image DPI" msgstr "Изображение меток DPI" -#: common/models.py:1676 +#: common/models.py:1745 msgid "DPI resolution when generating image files to supply to label printing plugins" msgstr "Разрешение DPI при создании файлов изображений для печати этикеток плагинов" -#: common/models.py:1682 +#: common/models.py:1751 msgid "Enable Reports" msgstr "Включить отчеты" -#: common/models.py:1683 +#: common/models.py:1752 msgid "Enable generation of reports" msgstr "Включить генерацию отчетов" -#: common/models.py:1688 templates/stats.html:25 +#: common/models.py:1757 templates/stats.html:25 msgid "Debug Mode" msgstr "Режим отладки" -#: common/models.py:1689 +#: common/models.py:1758 msgid "Generate reports in debug mode (HTML output)" msgstr "Генерировать отчеты в режиме отладки (вывод HTML)" -#: common/models.py:1694 +#: common/models.py:1763 msgid "Log Report Errors" msgstr "Журнал ошибок отчета" -#: common/models.py:1695 +#: common/models.py:1764 msgid "Log errors which occur when generating reports" msgstr "Журнал ошибок, которые возникают при создании отчетов" -#: common/models.py:1700 plugin/builtin/labels/label_sheet.py:28 -#: report/models.py:301 +#: common/models.py:1769 plugin/builtin/labels/label_sheet.py:28 +#: report/models.py:309 msgid "Page Size" msgstr "Размер страницы" -#: common/models.py:1701 +#: common/models.py:1770 msgid "Default page size for PDF reports" msgstr "Размер страницы по умолчанию для PDF отчетов" -#: common/models.py:1706 -msgid "Enable Test Reports" -msgstr "Включить отчеты" - -#: common/models.py:1707 -msgid "Enable generation of test reports" -msgstr "Включить генерацию отчетов" - -#: common/models.py:1712 -msgid "Attach Test Reports" -msgstr "Прикрепить отчеты о тестах" - -#: common/models.py:1714 -msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item" -msgstr "При печати отчета о тестировании приложить копию тестового отчета к соответствующему складской позиции" - -#: common/models.py:1720 +#: common/models.py:1775 msgid "Globally Unique Serials" msgstr "Глобально уникальные серийные номера" -#: common/models.py:1721 +#: common/models.py:1776 msgid "Serial numbers for stock items must be globally unique" msgstr "Серийные номера для складских позиций должны быть уникальными глобально" -#: common/models.py:1726 +#: common/models.py:1781 msgid "Autofill Serial Numbers" msgstr "Автоматическое заполнение серийных номеров" -#: common/models.py:1727 +#: common/models.py:1782 msgid "Autofill serial numbers in forms" msgstr "Автоматическое заполнение серийных номеров в формах" -#: common/models.py:1732 +#: common/models.py:1787 msgid "Delete Depleted Stock" msgstr "Удалить исчерпанный запас" -#: common/models.py:1734 +#: common/models.py:1789 msgid "Determines default behavior when a stock item is depleted" msgstr "Определяет поведение по умолчанию, когда складская позиция заканчивается" -#: common/models.py:1740 +#: common/models.py:1795 msgid "Batch Code Template" msgstr "Код партии Шаблона" -#: common/models.py:1742 +#: common/models.py:1797 msgid "Template for generating default batch codes for stock items" msgstr "Шаблон для создания кодов партии по умолчанию для складских позиций" -#: common/models.py:1747 +#: common/models.py:1802 msgid "Stock Expiry" msgstr "Срок годности Запасов" -#: common/models.py:1748 +#: common/models.py:1803 msgid "Enable stock expiry functionality" msgstr "Включить функцию истечения срока годности" -#: common/models.py:1753 +#: common/models.py:1808 msgid "Sell Expired Stock" msgstr "Использовать просроченные остатки в производстве" -#: common/models.py:1754 +#: common/models.py:1809 msgid "Allow sale of expired stock" msgstr "Разрешить продажу просроченных запасов" -#: common/models.py:1759 +#: common/models.py:1814 msgid "Stock Stale Time" msgstr "Время Залежалости Запасов" -#: common/models.py:1761 +#: common/models.py:1816 msgid "Number of days stock items are considered stale before expiring" msgstr "Количество дней перед тем как складская единица будет считаться просроченной" -#: common/models.py:1768 +#: common/models.py:1823 msgid "Build Expired Stock" msgstr "Использовать просроченные остатки в производстве" -#: common/models.py:1769 +#: common/models.py:1824 msgid "Allow building with expired stock" msgstr "Разрешить использовать просроченные остатки в производстве" -#: common/models.py:1774 +#: common/models.py:1829 msgid "Stock Ownership Control" msgstr "Контроль за собственными запасами" -#: common/models.py:1775 +#: common/models.py:1830 msgid "Enable ownership control over stock locations and items" msgstr "Разрешить владельцу контролировать расположение складов и номенклатуры" -#: common/models.py:1780 +#: common/models.py:1835 msgid "Stock Location Default Icon" msgstr "Значок местоположения по умолчанию" -#: common/models.py:1781 +#: common/models.py:1836 msgid "Stock location default icon (empty means no icon)" msgstr "Значок местоположения склада по умолчанию (пустой означает отсутствие значка)" -#: common/models.py:1786 +#: common/models.py:1841 msgid "Show Installed Stock Items" msgstr "Показать установленные складские позиции" -#: common/models.py:1787 +#: common/models.py:1842 msgid "Display installed stock items in stock tables" msgstr "Отображать установленные складские позиции в складских таблицах" -#: common/models.py:1792 +#: common/models.py:1847 msgid "Check BOM when installing items" msgstr "Проверять спецификацию при установке изделий" -#: common/models.py:1794 +#: common/models.py:1849 msgid "Installed stock items must exist in the BOM for the parent part" msgstr "Установленные единица хранения должны присутствовать в спецификации для родительской детали" -#: common/models.py:1800 +#: common/models.py:1855 msgid "Allow Out of Stock Transfer" msgstr "Разрешить передачу товара, отсутствующего на складе" -#: common/models.py:1802 +#: common/models.py:1857 msgid "Allow stock items which are not in stock to be transferred between stock locations" msgstr "Разрешить перемещение товаров, которых нет на складе, между складами" -#: common/models.py:1808 +#: common/models.py:1863 msgid "Build Order Reference Pattern" msgstr "Паттерн ссылки заказа на производство" -#: common/models.py:1810 +#: common/models.py:1865 msgid "Required pattern for generating Build Order reference field" msgstr "Поле требуемого паттерна для создания ссылки заказа на производство" -#: common/models.py:1816 common/models.py:1872 common/models.py:1894 -#: common/models.py:1930 +#: common/models.py:1871 common/models.py:1927 common/models.py:1949 +#: common/models.py:1985 msgid "Require Responsible Owner" msgstr "Требуется ответственный владелец" -#: common/models.py:1817 common/models.py:1873 common/models.py:1895 -#: common/models.py:1931 +#: common/models.py:1872 common/models.py:1928 common/models.py:1950 +#: common/models.py:1986 msgid "A responsible owner must be assigned to each order" msgstr "Ответственный владелец должен быть назначен для каждого заказа" -#: common/models.py:1822 +#: common/models.py:1877 msgid "Require Active Part" msgstr "" -#: common/models.py:1823 +#: common/models.py:1878 msgid "Prevent build order creation for inactive parts" msgstr "" -#: common/models.py:1828 +#: common/models.py:1883 msgid "Require Locked Part" msgstr "" -#: common/models.py:1829 +#: common/models.py:1884 msgid "Prevent build order creation for unlocked parts" msgstr "" -#: common/models.py:1834 +#: common/models.py:1889 msgid "Require Valid BOM" msgstr "" -#: common/models.py:1836 +#: common/models.py:1891 msgid "Prevent build order creation unless BOM has been validated" msgstr "" -#: common/models.py:1842 +#: common/models.py:1897 msgid "Require Closed Child Orders" msgstr "" -#: common/models.py:1844 +#: common/models.py:1899 msgid "Prevent build order completion until all child orders are closed" msgstr "" -#: common/models.py:1850 +#: common/models.py:1905 msgid "Block Until Tests Pass" msgstr "" -#: common/models.py:1852 +#: common/models.py:1907 msgid "Prevent build outputs from being completed until all required tests pass" msgstr "Запретить вывод сборки до тех пор, пока не пройдут все необходимые тесты" -#: common/models.py:1858 +#: common/models.py:1913 msgid "Enable Return Orders" msgstr "Включить заказы на возврат" -#: common/models.py:1859 +#: common/models.py:1914 msgid "Enable return order functionality in the user interface" msgstr "Включите функцию заказа на возврат в пользовательском интерфейсе" -#: common/models.py:1864 +#: common/models.py:1919 msgid "Return Order Reference Pattern" msgstr "Шаблон заказа на возврат товара" -#: common/models.py:1866 +#: common/models.py:1921 msgid "Required pattern for generating Return Order reference field" msgstr "Необходимый шаблон для создания поля «Возврат заказа»" -#: common/models.py:1878 +#: common/models.py:1933 msgid "Edit Completed Return Orders" msgstr "Редактировать завершенные возвратные заказы" -#: common/models.py:1880 +#: common/models.py:1935 msgid "Allow editing of return orders after they have been completed" msgstr "Разрешить редактирование возвращенных заказов после их завершения" -#: common/models.py:1886 +#: common/models.py:1941 msgid "Sales Order Reference Pattern" msgstr "Шаблон заказа на возврат товара" -#: common/models.py:1888 +#: common/models.py:1943 msgid "Required pattern for generating Sales Order reference field" msgstr "Необходимый шаблон для создания поля «Возврат заказа»" -#: common/models.py:1900 +#: common/models.py:1955 msgid "Sales Order Default Shipment" msgstr "" -#: common/models.py:1901 +#: common/models.py:1956 msgid "Enable creation of default shipment with sales orders" msgstr "" -#: common/models.py:1906 +#: common/models.py:1961 msgid "Edit Completed Sales Orders" msgstr "" -#: common/models.py:1908 +#: common/models.py:1963 msgid "Allow editing of sales orders after they have been shipped or completed" msgstr "" -#: common/models.py:1914 +#: common/models.py:1969 msgid "Mark Shipped Orders as Complete" msgstr "" -#: common/models.py:1916 +#: common/models.py:1971 msgid "Sales orders marked as shipped will automatically be completed, bypassing the \"shipped\" status" -msgstr "" +msgstr "Заказы на продажу, помеченные как отгруженные, будут автоматически завершены, минуя статус 'отгружено'" -#: common/models.py:1922 +#: common/models.py:1977 msgid "Purchase Order Reference Pattern" msgstr "" -#: common/models.py:1924 +#: common/models.py:1979 msgid "Required pattern for generating Purchase Order reference field" msgstr "" -#: common/models.py:1936 +#: common/models.py:1991 msgid "Edit Completed Purchase Orders" msgstr "Редактировать завершенные заказы на покупку" -#: common/models.py:1938 +#: common/models.py:1993 msgid "Allow editing of purchase orders after they have been shipped or completed" -msgstr "" +msgstr "Разрешить редактирование заказов после их отправки или завершения" -#: common/models.py:1944 +#: common/models.py:1999 msgid "Auto Complete Purchase Orders" -msgstr "" +msgstr "Редактировать завершенные заказы на покупку" -#: common/models.py:1946 +#: common/models.py:2001 msgid "Automatically mark purchase orders as complete when all line items are received" -msgstr "" +msgstr "Автоматически отмечать заказы на покупку как выполненные при получении всех позиций" -#: common/models.py:1953 +#: common/models.py:2008 msgid "Enable password forgot" -msgstr "" +msgstr "Включить функцию восстановления пароля" -#: common/models.py:1954 +#: common/models.py:2009 msgid "Enable password forgot function on the login pages" -msgstr "" +msgstr "Включить функцию восстановления пароля на странице входа" -#: common/models.py:1959 +#: common/models.py:2014 msgid "Enable registration" msgstr "Разрешить регистрацию" -#: common/models.py:1960 +#: common/models.py:2015 msgid "Enable self-registration for users on the login pages" -msgstr "" +msgstr "Включить самостоятельную регистрацию пользователей на странице входа" -#: common/models.py:1965 +#: common/models.py:2020 msgid "Enable SSO" msgstr "Включить SSO" -#: common/models.py:1966 +#: common/models.py:2021 msgid "Enable SSO on the login pages" -msgstr "" +msgstr "Включить SSO на странице входа" -#: common/models.py:1971 +#: common/models.py:2026 msgid "Enable SSO registration" -msgstr "" +msgstr "Включить регистрацию через SSO" -#: common/models.py:1973 +#: common/models.py:2028 msgid "Enable self-registration via SSO for users on the login pages" -msgstr "" +msgstr "Включить самостоятельную регистрацию пользователей через SSO на странице входа" -#: common/models.py:1979 +#: common/models.py:2034 msgid "Enable SSO group sync" -msgstr "" +msgstr "Включить синхронизацию групп через SSO" -#: common/models.py:1981 +#: common/models.py:2036 msgid "Enable synchronizing InvenTree groups with groups provided by the IdP" -msgstr "" +msgstr "Включить синхронизацию групп InvenTree с группами, предоставляемыми IdP" -#: common/models.py:1987 +#: common/models.py:2042 msgid "SSO group key" msgstr "" -#: common/models.py:1989 +#: common/models.py:2044 msgid "The name of the groups claim attribute provided by the IdP" msgstr "" -#: common/models.py:1995 +#: common/models.py:2050 msgid "SSO group map" msgstr "" -#: common/models.py:1997 +#: common/models.py:2052 msgid "A mapping from SSO groups to local InvenTree groups. If the local group does not exist, it will be created." -msgstr "" +msgstr "Отображение от групп SSO к локальным группам InvenTree. Если локальная группа не существует, она будет создана." -#: common/models.py:2003 +#: common/models.py:2058 msgid "Remove groups outside of SSO" msgstr "" -#: common/models.py:2005 +#: common/models.py:2060 msgid "Whether groups assigned to the user should be removed if they are not backend by the IdP. Disabling this setting might cause security issues" msgstr "" -#: common/models.py:2011 +#: common/models.py:2066 msgid "Email required" msgstr "Необходимо указать EMail" -#: common/models.py:2012 +#: common/models.py:2067 msgid "Require user to supply mail on signup" msgstr "" -#: common/models.py:2017 +#: common/models.py:2072 msgid "Auto-fill SSO users" msgstr "" -#: common/models.py:2019 +#: common/models.py:2074 msgid "Automatically fill out user-details from SSO account-data" msgstr "" -#: common/models.py:2025 +#: common/models.py:2080 msgid "Mail twice" msgstr "Написать дважды" -#: common/models.py:2026 +#: common/models.py:2081 msgid "On signup ask users twice for their mail" msgstr "" -#: common/models.py:2031 +#: common/models.py:2086 msgid "Password twice" msgstr "Пароль дважды" -#: common/models.py:2032 +#: common/models.py:2087 msgid "On signup ask users twice for their password" msgstr "" -#: common/models.py:2037 +#: common/models.py:2092 msgid "Allowed domains" msgstr "Разрешенные домены" -#: common/models.py:2039 +#: common/models.py:2094 msgid "Restrict signup to certain domains (comma-separated, starting with @)" msgstr "" -#: common/models.py:2045 +#: common/models.py:2100 msgid "Group on signup" msgstr "" -#: common/models.py:2047 +#: common/models.py:2102 msgid "Group to which new users are assigned on registration. If SSO group sync is enabled, this group is only set if no group can be assigned from the IdP." -msgstr "" +msgstr "Группа, на которую назначаются новые пользователи при регистрации. Если включена синхронизация группы SSO, эта группа задается только в том случае, если ни одна группа не может быть назначена через IdP." -#: common/models.py:2053 +#: common/models.py:2108 msgid "Enforce MFA" msgstr "Принудительное MFA" -#: common/models.py:2054 +#: common/models.py:2109 msgid "Users must use multifactor security." msgstr "Пользователи должны использовать многофакторную безопасность." -#: common/models.py:2059 +#: common/models.py:2114 msgid "Check plugins on startup" msgstr "Проверять плагины при запуске" -#: common/models.py:2061 +#: common/models.py:2116 msgid "Check that all plugins are installed on startup - enable in container environments" msgstr "" -#: common/models.py:2069 +#: common/models.py:2124 msgid "Check for plugin updates" msgstr "" -#: common/models.py:2070 +#: common/models.py:2125 msgid "Enable periodic checks for updates to installed plugins" msgstr "" -#: common/models.py:2076 +#: common/models.py:2131 msgid "Enable URL integration" msgstr "" -#: common/models.py:2077 +#: common/models.py:2132 msgid "Enable plugins to add URL routes" msgstr "" -#: common/models.py:2083 +#: common/models.py:2138 msgid "Enable navigation integration" msgstr "" -#: common/models.py:2084 +#: common/models.py:2139 msgid "Enable plugins to integrate into navigation" msgstr "" -#: common/models.py:2090 +#: common/models.py:2145 msgid "Enable app integration" msgstr "" -#: common/models.py:2091 +#: common/models.py:2146 msgid "Enable plugins to add apps" msgstr "" -#: common/models.py:2097 +#: common/models.py:2152 msgid "Enable schedule integration" msgstr "" -#: common/models.py:2098 +#: common/models.py:2153 msgid "Enable plugins to run scheduled tasks" msgstr "" -#: common/models.py:2104 +#: common/models.py:2159 msgid "Enable event integration" msgstr "" -#: common/models.py:2105 +#: common/models.py:2160 msgid "Enable plugins to respond to internal events" msgstr "" -#: common/models.py:2111 +#: common/models.py:2166 +msgid "Enable interface integration" +msgstr "" + +#: common/models.py:2167 +msgid "Enable plugins to integrate into the user interface" +msgstr "" + +#: common/models.py:2173 msgid "Enable project codes" msgstr "" -#: common/models.py:2112 +#: common/models.py:2174 msgid "Enable project codes for tracking projects" msgstr "" -#: common/models.py:2117 +#: common/models.py:2179 msgid "Stocktake Functionality" msgstr "" -#: common/models.py:2119 +#: common/models.py:2181 msgid "Enable stocktake functionality for recording stock levels and calculating stock value" msgstr "" -#: common/models.py:2125 +#: common/models.py:2187 msgid "Exclude External Locations" msgstr "" -#: common/models.py:2127 +#: common/models.py:2189 msgid "Exclude stock items in external locations from stocktake calculations" msgstr "Исключить складские позиции во внешних местах хранения из инвентаризации" -#: common/models.py:2133 +#: common/models.py:2195 msgid "Automatic Stocktake Period" msgstr "Автоматический период инвентаризации" -#: common/models.py:2135 +#: common/models.py:2197 msgid "Number of days between automatic stocktake recording (set to zero to disable)" msgstr "Количество дней между автоматической записью запасов (установите нулевое значение для отключения)" -#: common/models.py:2141 +#: common/models.py:2203 msgid "Report Deletion Interval" msgstr "Интервал удаления журнала ошибок" -#: common/models.py:2143 +#: common/models.py:2205 msgid "Stocktake reports will be deleted after specified number of days" msgstr "Журналы ошибок будут удалены после указанного количества дней" -#: common/models.py:2150 +#: common/models.py:2212 msgid "Display Users full names" msgstr "Показывать полные имена пользователей" -#: common/models.py:2151 +#: common/models.py:2213 msgid "Display Users full names instead of usernames" msgstr "Отображать полные имена пользователей вместо логинов" -#: common/models.py:2156 +#: common/models.py:2218 msgid "Enable Test Station Data" msgstr "Включить данные тестовой станции" -#: common/models.py:2157 +#: common/models.py:2219 msgid "Enable test station data collection for test results" msgstr "Включить сбор данных с тестовой станции для получения результатов тестирования" -#: common/models.py:2169 common/models.py:2549 -msgid "Settings key (must be unique - case insensitive" -msgstr "Ключ настроек (должен быть уникальным - не чувствителен к регистру)" +#: common/models.py:2224 +msgid "Create Template on Upload" +msgstr "" -#: common/models.py:2212 +#: common/models.py:2226 +msgid "Create a new test template when uploading test data which does not match an existing template" +msgstr "" + +#: common/models.py:2279 msgid "Hide inactive parts" msgstr "Скрыть неактивные детали" -#: common/models.py:2214 +#: common/models.py:2281 msgid "Hide inactive parts in results displayed on the homepage" msgstr "Скрывать неактивные части в результатах, отображаемых на главной странице," -#: common/models.py:2220 +#: common/models.py:2287 msgid "Show subscribed parts" msgstr "Показывать детали, на которые включены уведомления" -#: common/models.py:2221 +#: common/models.py:2288 msgid "Show subscribed parts on the homepage" msgstr "Показывать детали, на которые включены уведомления, на главной странице" -#: common/models.py:2226 +#: common/models.py:2293 msgid "Show subscribed categories" msgstr "Показывать категории, на которые включены уведомления" -#: common/models.py:2227 +#: common/models.py:2294 msgid "Show subscribed part categories on the homepage" msgstr "Показывать категории, на которые включены уведомления, на главной странице" -#: common/models.py:2232 +#: common/models.py:2299 msgid "Show latest parts" msgstr "Показывать последние детали" -#: common/models.py:2233 +#: common/models.py:2300 msgid "Show latest parts on the homepage" msgstr "Показывать последние детали на главной странице" -#: common/models.py:2238 +#: common/models.py:2305 msgid "Show invalid BOMs" msgstr "Показывать недопустимые спецификации" -#: common/models.py:2239 +#: common/models.py:2306 msgid "Show BOMs that await validation on the homepage" msgstr "Показывать BOMы, ожидающие проверки, на главной странице" -#: common/models.py:2244 +#: common/models.py:2311 msgid "Show recent stock changes" msgstr "Показывать изменившиеся складские запасы" -#: common/models.py:2245 +#: common/models.py:2312 msgid "Show recently changed stock items on the homepage" msgstr "Показывать складские позиции с недавно изменившимися запасами на главной странице" -#: common/models.py:2250 +#: common/models.py:2317 msgid "Show low stock" msgstr "Показывать низкие складские запасы" -#: common/models.py:2251 +#: common/models.py:2318 msgid "Show low stock items on the homepage" msgstr "Показывать складские позиции с низкими запасами на главной странице" -#: common/models.py:2256 +#: common/models.py:2323 msgid "Show depleted stock" msgstr "Показывать закончившиеся складские позиции" -#: common/models.py:2257 +#: common/models.py:2324 msgid "Show depleted stock items on the homepage" msgstr "Показывать закончившиеся складские позиции на главной странице" -#: common/models.py:2262 +#: common/models.py:2329 msgid "Show needed stock" msgstr "Показывать требуемые складские позиции" -#: common/models.py:2263 +#: common/models.py:2330 msgid "Show stock items needed for builds on the homepage" msgstr "Показывать требуемые для производства складские позиции на главной странице" -#: common/models.py:2268 +#: common/models.py:2335 msgid "Show expired stock" msgstr "Показывать складские позиции с истекшим сроком годности" -#: common/models.py:2269 +#: common/models.py:2336 msgid "Show expired stock items on the homepage" msgstr "Показывать складские позиции с истёкшим сроком годности на главной странице" -#: common/models.py:2274 +#: common/models.py:2341 msgid "Show stale stock" msgstr "Показывать залежалые складские позиции" -#: common/models.py:2275 +#: common/models.py:2342 msgid "Show stale stock items on the homepage" msgstr "Показывать складские позиции с истекающим сроком годности на главной странице" -#: common/models.py:2280 +#: common/models.py:2347 msgid "Show pending builds" msgstr "Показывать незавершённые производства" -#: common/models.py:2281 +#: common/models.py:2348 msgid "Show pending builds on the homepage" msgstr "Показывать незавершённые производства на главной странице" -#: common/models.py:2286 +#: common/models.py:2353 msgid "Show overdue builds" msgstr "Показывать просроченные производства" -#: common/models.py:2287 +#: common/models.py:2354 msgid "Show overdue builds on the homepage" msgstr "Показывать просроченные производства на главной странице" -#: common/models.py:2292 +#: common/models.py:2359 msgid "Show outstanding POs" msgstr "Показать невыполненные заказы" -#: common/models.py:2293 +#: common/models.py:2360 msgid "Show outstanding POs on the homepage" msgstr "Покажите невыполненные заказы на покупку на главной странице" -#: common/models.py:2298 +#: common/models.py:2365 msgid "Show overdue POs" msgstr "Показать просроченные заказы на производство" -#: common/models.py:2299 +#: common/models.py:2366 msgid "Show overdue POs on the homepage" msgstr "Показывать просроченные сборки на главной странице" -#: common/models.py:2304 +#: common/models.py:2371 msgid "Show outstanding SOs" msgstr "Показать невыполненные заказы" -#: common/models.py:2305 +#: common/models.py:2372 msgid "Show outstanding SOs on the homepage" msgstr "Покажите невыполненные заказы на покупку на главной странице" -#: common/models.py:2310 +#: common/models.py:2377 msgid "Show overdue SOs" msgstr "Показать просроченные заказы на продажу" -#: common/models.py:2311 +#: common/models.py:2378 msgid "Show overdue SOs on the homepage" msgstr "Показывать просроченные заказы на покупку на главной странице" -#: common/models.py:2316 +#: common/models.py:2383 msgid "Show pending SO shipments" msgstr "" -#: common/models.py:2317 +#: common/models.py:2384 msgid "Show pending SO shipments on the homepage" msgstr "" -#: common/models.py:2322 +#: common/models.py:2389 msgid "Show News" msgstr "Показывать новости" -#: common/models.py:2323 +#: common/models.py:2390 msgid "Show news on the homepage" msgstr "" -#: common/models.py:2328 +#: common/models.py:2395 msgid "Inline label display" msgstr "" -#: common/models.py:2330 +#: common/models.py:2397 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "Отображение PDF-этикетки в браузере вместо загрузки в виде файла" -#: common/models.py:2336 +#: common/models.py:2403 msgid "Default label printer" msgstr "Принтер этикетки по умолчанию" -#: common/models.py:2338 +#: common/models.py:2405 msgid "Configure which label printer should be selected by default" msgstr "Настроить принтер этикеток по умолчанию" -#: common/models.py:2344 +#: common/models.py:2411 msgid "Inline report display" msgstr "Отображение встроенного отчета" -#: common/models.py:2346 +#: common/models.py:2413 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "Отображение PDF-этикетки в браузере вместо загрузки в виде файла" -#: common/models.py:2352 +#: common/models.py:2419 msgid "Search Parts" msgstr "Поиск Деталей" -#: common/models.py:2353 +#: common/models.py:2420 msgid "Display parts in search preview window" msgstr "Отображение деталей в окне предварительного просмотра поиска" -#: common/models.py:2358 +#: common/models.py:2425 msgid "Search Supplier Parts" msgstr "Поиск деталей поставщика" -#: common/models.py:2359 +#: common/models.py:2426 msgid "Display supplier parts in search preview window" msgstr "Отображение деталей поставщика в окне предварительного просмотра поиска" -#: common/models.py:2364 +#: common/models.py:2431 msgid "Search Manufacturer Parts" msgstr "Новая деталь производителя" -#: common/models.py:2365 +#: common/models.py:2432 msgid "Display manufacturer parts in search preview window" msgstr "Отображение деталей поставщика в окне предварительного просмотра поиска" -#: common/models.py:2370 +#: common/models.py:2437 msgid "Hide Inactive Parts" msgstr "Скрыть неактивные детали" -#: common/models.py:2371 +#: common/models.py:2438 msgid "Excluded inactive parts from search preview window" msgstr "Исключить неактивные детали из окна предварительного просмотра поиска" -#: common/models.py:2376 +#: common/models.py:2443 msgid "Search Categories" msgstr "Категории поиска" -#: common/models.py:2377 +#: common/models.py:2444 msgid "Display part categories in search preview window" msgstr "Отображение деталей в окне предварительного просмотра поиска" -#: common/models.py:2382 +#: common/models.py:2449 msgid "Search Stock" msgstr "Поиск Запасов" -#: common/models.py:2383 +#: common/models.py:2450 msgid "Display stock items in search preview window" msgstr "Отображать складские позиции в окне предварительного просмотра поиска" -#: common/models.py:2388 +#: common/models.py:2455 msgid "Hide Unavailable Stock Items" msgstr "Скрыть недоступные складские позиции" -#: common/models.py:2390 +#: common/models.py:2457 msgid "Exclude stock items which are not available from the search preview window" msgstr "Исключить недоступные складские позиции из окна предварительного просмотра поиска" -#: common/models.py:2396 +#: common/models.py:2463 msgid "Search Locations" msgstr "Поиск мест хранения" -#: common/models.py:2397 +#: common/models.py:2464 msgid "Display stock locations in search preview window" msgstr "Отображать места хранения в окне предварительного просмотра поиска" -#: common/models.py:2402 +#: common/models.py:2469 msgid "Search Companies" msgstr "Поиск компаний" -#: common/models.py:2403 +#: common/models.py:2470 msgid "Display companies in search preview window" msgstr "" -#: common/models.py:2408 +#: common/models.py:2475 msgid "Search Build Orders" msgstr "Поиск заказов на производство" -#: common/models.py:2409 +#: common/models.py:2476 msgid "Display build orders in search preview window" msgstr "Отображать заказы на производство в окне предварительного просмотра поиска" -#: common/models.py:2414 +#: common/models.py:2481 msgid "Search Purchase Orders" msgstr "Поиск заказов на покупку" -#: common/models.py:2415 +#: common/models.py:2482 msgid "Display purchase orders in search preview window" msgstr "" -#: common/models.py:2420 +#: common/models.py:2487 msgid "Exclude Inactive Purchase Orders" msgstr "" -#: common/models.py:2422 +#: common/models.py:2489 msgid "Exclude inactive purchase orders from search preview window" msgstr "" -#: common/models.py:2428 +#: common/models.py:2495 msgid "Search Sales Orders" msgstr "Поиск заказов на продажу" -#: common/models.py:2429 +#: common/models.py:2496 msgid "Display sales orders in search preview window" msgstr "" -#: common/models.py:2434 +#: common/models.py:2501 msgid "Exclude Inactive Sales Orders" msgstr "" -#: common/models.py:2436 +#: common/models.py:2503 msgid "Exclude inactive sales orders from search preview window" msgstr "" -#: common/models.py:2442 +#: common/models.py:2509 msgid "Search Return Orders" msgstr "Поиск заказов на возврат" -#: common/models.py:2443 +#: common/models.py:2510 msgid "Display return orders in search preview window" msgstr "" -#: common/models.py:2448 +#: common/models.py:2515 msgid "Exclude Inactive Return Orders" msgstr "" -#: common/models.py:2450 +#: common/models.py:2517 msgid "Exclude inactive return orders from search preview window" msgstr "" -#: common/models.py:2456 +#: common/models.py:2523 msgid "Search Preview Results" msgstr "" -#: common/models.py:2458 +#: common/models.py:2525 msgid "Number of results to show in each section of the search preview window" msgstr "" -#: common/models.py:2464 +#: common/models.py:2531 msgid "Regex Search" msgstr "Поиск по Regex" -#: common/models.py:2465 +#: common/models.py:2532 msgid "Enable regular expressions in search queries" msgstr "" -#: common/models.py:2470 +#: common/models.py:2537 msgid "Whole Word Search" msgstr "" -#: common/models.py:2471 +#: common/models.py:2538 msgid "Search queries return results for whole word matches" msgstr "" -#: common/models.py:2476 +#: common/models.py:2543 msgid "Show Quantity in Forms" msgstr "" -#: common/models.py:2477 +#: common/models.py:2544 msgid "Display available part quantity in some forms" msgstr "" -#: common/models.py:2482 +#: common/models.py:2549 msgid "Escape Key Closes Forms" msgstr "" -#: common/models.py:2483 +#: common/models.py:2550 msgid "Use the escape key to close modal forms" msgstr "" -#: common/models.py:2488 +#: common/models.py:2555 msgid "Fixed Navbar" msgstr "Фиксированная панель навигации" -#: common/models.py:2489 +#: common/models.py:2556 msgid "The navbar position is fixed to the top of the screen" msgstr "" -#: common/models.py:2494 +#: common/models.py:2561 msgid "Date Format" msgstr "Формат даты" -#: common/models.py:2495 +#: common/models.py:2562 msgid "Preferred format for displaying dates" msgstr "" -#: common/models.py:2508 part/templates/part/detail.html:41 +#: common/models.py:2575 part/templates/part/detail.html:41 msgid "Part Scheduling" msgstr "Планирование деталей" -#: common/models.py:2509 +#: common/models.py:2576 msgid "Display part scheduling information" msgstr "" -#: common/models.py:2514 part/templates/part/detail.html:62 +#: common/models.py:2581 part/templates/part/detail.html:62 msgid "Part Stocktake" msgstr "Инвентаризация детали" -#: common/models.py:2516 +#: common/models.py:2583 msgid "Display part stocktake information (if stocktake functionality is enabled)" -msgstr "" +msgstr "Показывать информацию о товаре (если включена функция инвентаризации)" -#: common/models.py:2522 +#: common/models.py:2589 msgid "Table String Length" msgstr "" -#: common/models.py:2524 +#: common/models.py:2591 msgid "Maximum length limit for strings displayed in table views" msgstr "" -#: common/models.py:2530 +#: common/models.py:2597 msgid "Receive error reports" msgstr "" -#: common/models.py:2531 +#: common/models.py:2598 msgid "Receive notifications for system errors" msgstr "" -#: common/models.py:2536 +#: common/models.py:2603 msgid "Last used printing machines" msgstr "" -#: common/models.py:2537 +#: common/models.py:2604 msgid "Save the last used printing machines for a user" msgstr "" -#: common/models.py:2557 common/models.py:2558 common/models.py:2715 -#: common/models.py:2716 common/models.py:2961 common/models.py:2962 -#: common/models.py:3288 common/models.py:3289 importer/models.py:88 -#: part/models.py:3307 part/models.py:3394 part/models.py:3468 -#: part/models.py:3496 plugin/models.py:274 plugin/models.py:275 -#: report/templates/report/inventree_test_report.html:105 -#: templates/js/translated/stock.js:3120 users/models.py:111 +#: common/models.py:2621 common/models.py:2622 common/models.py:2779 +#: common/models.py:2780 common/models.py:3025 common/models.py:3026 +#: common/models.py:3349 common/models.py:3350 common/models.py:3534 +#: importer/models.py:89 part/models.py:3358 part/models.py:3445 +#: part/models.py:3519 part/models.py:3547 plugin/models.py:313 +#: plugin/models.py:314 report/templates/report/inventree_test_report.html:105 +#: templates/js/translated/stock.js:3121 users/models.py:111 msgid "User" msgstr "Пользователь" -#: common/models.py:2580 +#: common/models.py:2644 msgid "Price break quantity" msgstr "" -#: common/models.py:2587 company/serializers.py:513 order/admin.py:42 -#: order/models.py:1430 order/models.py:2417 -#: templates/js/translated/company.js:1823 templates/js/translated/part.js:1892 +#: common/models.py:2651 company/serializers.py:524 order/admin.py:42 +#: order/models.py:1447 order/models.py:2456 +#: templates/js/translated/company.js:1824 templates/js/translated/part.js:1892 #: templates/js/translated/pricing.js:621 #: templates/js/translated/return_order.js:739 msgid "Price" msgstr "Цена" -#: common/models.py:2588 +#: common/models.py:2652 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:2692 common/models.py:2877 +#: common/models.py:2756 common/models.py:2941 msgid "Endpoint" msgstr "Конечная точка" -#: common/models.py:2693 +#: common/models.py:2757 msgid "Endpoint at which this webhook is received" msgstr "" -#: common/models.py:2703 +#: common/models.py:2767 msgid "Name for this webhook" msgstr "" -#: common/models.py:2707 +#: common/models.py:2771 msgid "Is this webhook active" msgstr "" -#: common/models.py:2723 users/models.py:159 +#: common/models.py:2787 users/models.py:159 msgid "Token" msgstr "Токен" -#: common/models.py:2724 +#: common/models.py:2788 msgid "Token for access" msgstr "Токен для доступа" -#: common/models.py:2732 +#: common/models.py:2796 msgid "Secret" msgstr "Секрет" -#: common/models.py:2733 +#: common/models.py:2797 msgid "Shared secret for HMAC" msgstr "" -#: common/models.py:2841 +#: common/models.py:2905 msgid "Message ID" msgstr "ID Сообщения" -#: common/models.py:2842 +#: common/models.py:2906 msgid "Unique identifier for this message" msgstr "" -#: common/models.py:2850 +#: common/models.py:2914 msgid "Host" msgstr "Хост" -#: common/models.py:2851 +#: common/models.py:2915 msgid "Host from which this message was received" msgstr "" -#: common/models.py:2859 +#: common/models.py:2923 msgid "Header" msgstr "Заголовок" -#: common/models.py:2860 +#: common/models.py:2924 msgid "Header of this message" msgstr "" -#: common/models.py:2867 +#: common/models.py:2931 msgid "Body" msgstr "Тело" -#: common/models.py:2868 +#: common/models.py:2932 msgid "Body of this message" msgstr "" -#: common/models.py:2878 +#: common/models.py:2942 msgid "Endpoint on which this message was received" msgstr "" -#: common/models.py:2883 +#: common/models.py:2947 msgid "Worked on" msgstr "Работал над" -#: common/models.py:2884 +#: common/models.py:2948 msgid "Was the work on this message finished?" msgstr "" -#: common/models.py:3010 +#: common/models.py:3074 msgid "Id" msgstr "Код" -#: common/models.py:3012 templates/js/translated/company.js:965 -#: templates/js/translated/news.js:44 +#: common/models.py:3076 part/serializers.py:271 +#: templates/js/translated/company.js:966 templates/js/translated/news.js:44 msgid "Title" msgstr "Заголовок" -#: common/models.py:3014 common/models.py:3272 company/models.py:149 -#: company/models.py:446 company/models.py:512 company/models.py:818 -#: order/models.py:302 order/models.py:1385 order/models.py:1817 -#: part/admin.py:55 part/models.py:1057 +#: common/models.py:3078 common/models.py:3333 company/models.py:146 +#: company/models.py:443 company/models.py:509 company/models.py:815 +#: order/models.py:309 order/models.py:1402 order/models.py:1846 +#: part/admin.py:55 part/models.py:1118 #: part/templates/part/part_scheduling.html:11 #: report/templates/report/inventree_build_order_report.html:164 -#: stock/admin.py:229 templates/js/translated/company.js:1319 -#: templates/js/translated/company.js:1673 templates/js/translated/order.js:376 +#: stock/admin.py:230 templates/js/translated/company.js:1320 +#: templates/js/translated/company.js:1674 templates/js/translated/order.js:376 #: templates/js/translated/part.js:2475 -#: templates/js/translated/purchase_order.js:2110 -#: templates/js/translated/purchase_order.js:2274 +#: templates/js/translated/purchase_order.js:2094 +#: templates/js/translated/purchase_order.js:2258 #: templates/js/translated/return_order.js:778 -#: templates/js/translated/sales_order.js:1092 -#: templates/js/translated/sales_order.js:2023 +#: templates/js/translated/sales_order.js:1058 +#: templates/js/translated/sales_order.js:2004 msgid "Link" msgstr "Ссылка" -#: common/models.py:3016 templates/js/translated/news.js:60 +#: common/models.py:3080 templates/js/translated/news.js:60 msgid "Published" msgstr "Опубликовано" -#: common/models.py:3018 templates/InvenTree/settings/plugin_settings.html:32 +#: common/models.py:3082 templates/InvenTree/settings/plugin_settings.html:32 #: templates/js/translated/news.js:56 templates/js/translated/plugin.js:103 msgid "Author" msgstr "Автор" -#: common/models.py:3020 templates/js/translated/news.js:52 +#: common/models.py:3084 templates/js/translated/news.js:52 msgid "Summary" msgstr "Итого" -#: common/models.py:3023 +#: common/models.py:3087 msgid "Read" msgstr "Читать" -#: common/models.py:3023 +#: common/models.py:3087 msgid "Was this news item read?" msgstr "" -#: common/models.py:3040 company/models.py:159 part/models.py:1067 +#: common/models.py:3104 company/models.py:156 part/models.py:1128 #: report/templates/report/inventree_bill_of_materials_report.html:126 #: report/templates/report/inventree_bill_of_materials_report.html:148 #: report/templates/report/inventree_return_order_report.html:35 -#: stock/templates/stock/item_base.html:133 templates/503.html:31 +#: stock/templates/stock/item_base.html:130 templates/503.html:31 #: templates/hover_image.html:7 templates/hover_image.html:9 #: templates/modals.html:6 msgid "Image" msgstr "Изображение" -#: common/models.py:3040 +#: common/models.py:3104 msgid "Image file" msgstr "Файл изображения" -#: common/models.py:3052 common/models.py:3256 +#: common/models.py:3116 common/models.py:3317 msgid "Target model type for this image" msgstr "" -#: common/models.py:3056 +#: common/models.py:3120 msgid "Target model ID for this image" msgstr "" -#: common/models.py:3078 +#: common/models.py:3142 msgid "Custom Unit" msgstr "" -#: common/models.py:3099 +#: common/models.py:3160 msgid "Unit symbol must be unique" msgstr "" -#: common/models.py:3114 +#: common/models.py:3175 msgid "Unit name must be a valid identifier" msgstr "" -#: common/models.py:3133 +#: common/models.py:3194 msgid "Unit name" msgstr "Название единицы" -#: common/models.py:3140 templates/InvenTree/settings/settings_staff_js.html:75 +#: common/models.py:3201 templates/InvenTree/settings/settings_staff_js.html:75 msgid "Symbol" msgstr "Символ" -#: common/models.py:3141 +#: common/models.py:3202 msgid "Optional unit symbol" msgstr "" -#: common/models.py:3147 templates/InvenTree/settings/settings_staff_js.html:71 +#: common/models.py:3208 templates/InvenTree/settings/settings_staff_js.html:71 msgid "Definition" msgstr "Определение" -#: common/models.py:3148 +#: common/models.py:3209 msgid "Unit definition" msgstr "" -#: common/models.py:3206 common/models.py:3263 stock/models.py:2558 -#: templates/js/translated/attachment.js:119 +#: common/models.py:3267 common/models.py:3324 stock/models.py:2674 +#: stock/serializers.py:244 templates/js/translated/attachment.js:119 #: templates/js/translated/attachment.js:345 msgid "Attachment" msgstr "Вложения" -#: common/models.py:3218 +#: common/models.py:3279 msgid "Missing file" msgstr "Файл не найден" -#: common/models.py:3219 +#: common/models.py:3280 msgid "Missing external link" msgstr "Отсутствует внешняя ссылка" -#: common/models.py:3264 +#: common/models.py:3325 msgid "Select file to attach" msgstr "Выберите файл для вложения" -#: common/models.py:3279 templates/js/translated/attachment.js:120 +#: common/models.py:3340 templates/js/translated/attachment.js:120 #: templates/js/translated/attachment.js:360 msgid "Comment" msgstr "Комментарий" -#: common/models.py:3280 +#: common/models.py:3341 msgid "Attachment comment" msgstr "" -#: common/models.py:3296 +#: common/models.py:3357 msgid "Upload date" msgstr "" -#: common/models.py:3297 +#: common/models.py:3358 msgid "Date the file was uploaded" msgstr "" -#: common/models.py:3301 +#: common/models.py:3362 msgid "File size" msgstr "" -#: common/models.py:3301 +#: common/models.py:3362 msgid "File size in bytes" msgstr "" -#: common/models.py:3339 common/serializers.py:562 +#: common/models.py:3400 common/serializers.py:609 msgid "Invalid model type specified for attachment" msgstr "" -#: common/notifications.py:314 +#: common/models.py:3409 plugin/models.py:43 users/models.py:100 +msgid "Key" +msgstr "Ключ" + +#: common/models.py:3410 +msgid "Value that will be saved in the models database" +msgstr "" + +#: common/models.py:3413 +msgid "Name of the state" +msgstr "" + +#: common/models.py:3417 part/serializers.py:273 +msgid "Label" +msgstr "" + +#: common/models.py:3418 +msgid "Label that will be displayed in the frontend" +msgstr "" + +#: common/models.py:3424 +msgid "Color" +msgstr "" + +#: common/models.py:3425 +msgid "Color that will be displayed in the frontend" +msgstr "" + +#: common/models.py:3428 +msgid "Logical Key" +msgstr "" + +#: common/models.py:3430 +msgid "State logical key that is equal to this custom state in business logic" +msgstr "" + +#: common/models.py:3438 part/serializers.py:275 +msgid "Model" +msgstr "" + +#: common/models.py:3439 +msgid "Model this state is associated with" +msgstr "" + +#: common/models.py:3443 +msgid "Reference Status Set" +msgstr "" + +#: common/models.py:3444 +msgid "Status set that is extended with this custom state" +msgstr "" + +#: common/models.py:3450 +msgid "Custom State" +msgstr "" + +#: common/models.py:3451 +msgid "Custom States" +msgstr "" + +#: common/models.py:3466 +msgid "Model must be selected" +msgstr "" + +#: common/models.py:3469 +msgid "Key must be selected" +msgstr "" + +#: common/models.py:3472 +msgid "Logical key must be selected" +msgstr "" + +#: common/models.py:3476 +msgid "Key must be different from logical key" +msgstr "" + +#: common/models.py:3480 +msgid "Reference status must be selected" +msgstr "" + +#: common/models.py:3492 +msgid "Reference status set not found" +msgstr "" + +#: common/models.py:3498 +msgid "Key must be different from the logical keys of the reference status" +msgstr "" + +#: common/models.py:3504 +msgid "Logical key must be in the logical keys of the reference status" +msgstr "" + +#: common/models.py:3519 +msgid "Barcode Scan" +msgstr "" + +#: common/models.py:3523 importer/models.py:512 part/models.py:4009 +msgid "Data" +msgstr "Данные" + +#: common/models.py:3524 +msgid "Barcode data" +msgstr "" + +#: common/models.py:3535 +msgid "User who scanned the barcode" +msgstr "" + +#: common/models.py:3540 importer/models.py:60 +msgid "Timestamp" +msgstr "" + +#: common/models.py:3541 +msgid "Date and time of the barcode scan" +msgstr "" + +#: common/models.py:3547 +msgid "URL endpoint which processed the barcode" +msgstr "" + +#: common/models.py:3554 order/models.py:1437 plugin/serializers.py:89 +msgid "Context" +msgstr "Контекст" + +#: common/models.py:3555 +msgid "Context data for the barcode scan" +msgstr "" + +#: common/models.py:3562 +msgid "Response" +msgstr "" + +#: common/models.py:3563 +msgid "Response data from the barcode scan" +msgstr "" + +#: common/models.py:3569 report/templates/report/inventree_test_report.html:103 +#: stock/models.py:2660 +msgid "Result" +msgstr "Результат" + +#: common/models.py:3570 +msgid "Was the barcode scan successful?" +msgstr "" + +#: common/notifications.py:328 #, python-brace-format msgid "New {verbose_name}" msgstr "" -#: common/notifications.py:316 +#: common/notifications.py:330 msgid "A new order has been created and assigned to you" msgstr "" -#: common/notifications.py:322 +#: common/notifications.py:336 #, python-brace-format msgid "{verbose_name} canceled" msgstr "" -#: common/notifications.py:324 +#: common/notifications.py:338 msgid "A order that is assigned to you was canceled" msgstr "" -#: common/notifications.py:330 common/notifications.py:337 order/api.py:462 +#: common/notifications.py:344 common/notifications.py:351 order/api.py:440 msgid "Items Received" msgstr "Полученные элементы" -#: common/notifications.py:332 +#: common/notifications.py:346 msgid "Items have been received against a purchase order" msgstr "" -#: common/notifications.py:339 +#: common/notifications.py:353 msgid "Items have been received against a return order" msgstr "" -#: common/notifications.py:457 +#: common/notifications.py:475 msgid "Error raised by plugin" msgstr "" -#: common/serializers.py:375 +#: common/serializers.py:423 msgid "Is Running" msgstr "Запущен" -#: common/serializers.py:381 +#: common/serializers.py:429 msgid "Pending Tasks" msgstr "Ожидающие задачи" -#: common/serializers.py:387 +#: common/serializers.py:435 msgid "Scheduled Tasks" msgstr "Запланированные задания" -#: common/serializers.py:393 +#: common/serializers.py:441 msgid "Failed Tasks" msgstr "Невыполненные Задачи" -#: common/serializers.py:408 +#: common/serializers.py:456 msgid "Task ID" msgstr "Код задачи" -#: common/serializers.py:408 +#: common/serializers.py:456 msgid "Unique task ID" msgstr "Уникальный ID задачи" -#: common/serializers.py:410 +#: common/serializers.py:458 msgid "Lock" msgstr "Заблокировать" -#: common/serializers.py:410 +#: common/serializers.py:458 msgid "Lock time" msgstr "Время блокировки" -#: common/serializers.py:412 +#: common/serializers.py:460 msgid "Task name" msgstr "Название задачи" -#: common/serializers.py:414 +#: common/serializers.py:462 msgid "Function" msgstr "Функция" -#: common/serializers.py:414 +#: common/serializers.py:462 msgid "Function name" msgstr "Имя функции" -#: common/serializers.py:416 +#: common/serializers.py:464 msgid "Arguments" msgstr "Аргументы" -#: common/serializers.py:416 +#: common/serializers.py:464 msgid "Task arguments" msgstr "Аргументы задачи" -#: common/serializers.py:419 +#: common/serializers.py:467 msgid "Keyword Arguments" msgstr "" -#: common/serializers.py:419 +#: common/serializers.py:467 msgid "Task keyword arguments" msgstr "" -#: common/serializers.py:529 +#: common/serializers.py:577 msgid "Filename" msgstr "Имя файла" -#: common/serializers.py:536 report/api.py:100 report/serializers.py:53 +#: common/serializers.py:584 report/api.py:100 report/serializers.py:54 msgid "Model Type" msgstr "" -#: common/serializers.py:565 +#: common/serializers.py:612 msgid "User does not have permission to create or edit attachments for this model" msgstr "" @@ -4116,15 +4295,15 @@ msgstr "Поля Соответствия" msgid "Match Items" msgstr "Совпадающие элементы" -#: common/views.py:401 +#: common/views.py:397 msgid "Fields matching failed" msgstr "" -#: common/views.py:464 +#: common/views.py:460 msgid "Parts imported" msgstr "Детали импортированы" -#: common/views.py:494 order/templates/order/order_wizard/match_fields.html:27 +#: common/views.py:490 order/templates/order/order_wizard/match_fields.html:27 #: order/templates/order/order_wizard/match_parts.html:19 #: order/templates/order/order_wizard/po_upload.html:49 #: part/templates/part/import_wizard/match_fields.html:27 @@ -4155,429 +4334,429 @@ msgstr "" msgid "Supplier is Active" msgstr "" -#: company/models.py:100 company/models.py:371 +#: company/models.py:97 company/models.py:368 #: company/templates/company/company_base.html:8 #: company/templates/company/company_base.html:12 stock/api.py:812 -#: templates/InvenTree/search.html:178 templates/js/translated/company.js:496 +#: templates/InvenTree/search.html:178 templates/js/translated/company.js:497 msgid "Company" msgstr "Компания" -#: company/models.py:101 company/views.py:51 +#: company/models.py:98 company/views.py:51 #: templates/js/translated/search.js:192 msgid "Companies" msgstr "Компании" -#: company/models.py:117 +#: company/models.py:114 msgid "Company description" msgstr "Описание компании" -#: company/models.py:118 +#: company/models.py:115 msgid "Description of the company" msgstr "Описание компании" -#: company/models.py:123 company/templates/company/company_base.html:106 +#: company/models.py:120 company/templates/company/company_base.html:106 #: templates/InvenTree/settings/plugin_settings.html:54 -#: templates/js/translated/company.js:532 +#: templates/js/translated/company.js:533 msgid "Website" msgstr "Сайт" -#: company/models.py:123 +#: company/models.py:120 msgid "Company website URL" msgstr "Сайт компании" -#: company/models.py:128 +#: company/models.py:125 msgid "Phone number" msgstr "Телефон" -#: company/models.py:130 +#: company/models.py:127 msgid "Contact phone number" msgstr "Контактный телефон" -#: company/models.py:137 +#: company/models.py:134 msgid "Contact email address" msgstr "Контактный EMail" -#: company/models.py:142 company/models.py:275 -#: company/templates/company/company_base.html:145 order/models.py:342 -#: order/templates/order/order_base.html:208 -#: order/templates/order/return_order_base.html:177 -#: order/templates/order/sales_order_base.html:221 +#: company/models.py:139 company/models.py:272 +#: company/templates/company/company_base.html:145 order/models.py:349 +#: order/templates/order/order_base.html:217 +#: order/templates/order/return_order_base.html:178 +#: order/templates/order/sales_order_base.html:222 msgid "Contact" msgstr "Контакт" -#: company/models.py:144 +#: company/models.py:141 msgid "Point of contact" msgstr "Контактное лицо" -#: company/models.py:150 +#: company/models.py:147 msgid "Link to external company information" msgstr "Ссылка на описание компании" -#: company/models.py:163 +#: company/models.py:160 msgid "Is this company active?" msgstr "" -#: company/models.py:168 +#: company/models.py:165 msgid "Is customer" msgstr "" -#: company/models.py:169 +#: company/models.py:166 msgid "Do you sell items to this company?" msgstr "Вы продаёте детали этой компании?" -#: company/models.py:174 +#: company/models.py:171 msgid "Is supplier" msgstr "" -#: company/models.py:175 +#: company/models.py:172 msgid "Do you purchase items from this company?" msgstr "Вы закупаете детали у этой компании?" -#: company/models.py:180 +#: company/models.py:177 msgid "Is manufacturer" msgstr "" -#: company/models.py:181 +#: company/models.py:178 msgid "Does this company manufacture parts?" msgstr "Является ли компания производителем деталей?" -#: company/models.py:189 +#: company/models.py:186 msgid "Default currency used for this company" msgstr "Для этой компании используется валюта по умолчанию" -#: company/models.py:314 company/templates/company/company_base.html:124 -#: order/models.py:352 order/templates/order/order_base.html:215 -#: order/templates/order/return_order_base.html:184 -#: order/templates/order/sales_order_base.html:228 +#: company/models.py:311 company/templates/company/company_base.html:124 +#: order/models.py:359 order/templates/order/order_base.html:224 +#: order/templates/order/return_order_base.html:185 +#: order/templates/order/sales_order_base.html:229 msgid "Address" msgstr "Адрес" -#: company/models.py:315 company/templates/company/sidebar.html:35 +#: company/models.py:312 company/templates/company/sidebar.html:35 msgid "Addresses" msgstr "Адреса" -#: company/models.py:372 +#: company/models.py:369 msgid "Select company" msgstr "Выберите компанию" -#: company/models.py:377 +#: company/models.py:374 msgid "Address title" msgstr "Заголовок адреса" -#: company/models.py:378 +#: company/models.py:375 msgid "Title describing the address entry" msgstr "" -#: company/models.py:384 +#: company/models.py:381 msgid "Primary address" msgstr "" -#: company/models.py:385 +#: company/models.py:382 msgid "Set as primary address" msgstr "" -#: company/models.py:390 templates/js/translated/company.js:914 -#: templates/js/translated/company.js:971 +#: company/models.py:387 templates/js/translated/company.js:915 +#: templates/js/translated/company.js:972 msgid "Line 1" msgstr "Строка 1" -#: company/models.py:391 +#: company/models.py:388 msgid "Address line 1" msgstr "Адресная строка 1" -#: company/models.py:397 templates/js/translated/company.js:915 -#: templates/js/translated/company.js:977 +#: company/models.py:394 templates/js/translated/company.js:916 +#: templates/js/translated/company.js:978 msgid "Line 2" msgstr "Строка 2" -#: company/models.py:398 +#: company/models.py:395 msgid "Address line 2" msgstr "Адресная строка 2" -#: company/models.py:404 company/models.py:405 -#: templates/js/translated/company.js:983 +#: company/models.py:401 company/models.py:402 +#: templates/js/translated/company.js:984 msgid "Postal code" msgstr "Почтовый индекс" -#: company/models.py:411 +#: company/models.py:408 msgid "City/Region" msgstr "Город/Регион" -#: company/models.py:412 +#: company/models.py:409 msgid "Postal code city/region" msgstr "" -#: company/models.py:418 +#: company/models.py:415 msgid "State/Province" msgstr "Регион/Область" -#: company/models.py:419 +#: company/models.py:416 msgid "State or province" msgstr "" -#: company/models.py:425 templates/js/translated/company.js:1001 +#: company/models.py:422 templates/js/translated/company.js:1002 msgid "Country" msgstr "Страна" -#: company/models.py:426 +#: company/models.py:423 msgid "Address country" msgstr "Страна адреса" -#: company/models.py:432 +#: company/models.py:429 msgid "Courier shipping notes" msgstr "Записи отправления" -#: company/models.py:433 +#: company/models.py:430 msgid "Notes for shipping courier" msgstr "Записи для курьера" -#: company/models.py:439 +#: company/models.py:436 msgid "Internal shipping notes" msgstr "Внутренние записи отправления" -#: company/models.py:440 +#: company/models.py:437 msgid "Shipping notes for internal use" msgstr "Записи отправления для внутреннего пользования" -#: company/models.py:447 +#: company/models.py:444 msgid "Link to address information (external)" msgstr "Ссылка на адресную информацию (внешняя)" -#: company/models.py:470 company/models.py:587 company/models.py:811 +#: company/models.py:467 company/models.py:584 company/models.py:808 #: company/templates/company/manufacturer_part.html:7 #: company/templates/company/manufacturer_part.html:24 -#: stock/templates/stock/item_base.html:217 +#: stock/templates/stock/item_base.html:214 msgid "Manufacturer Part" msgstr "Деталь производителя" -#: company/models.py:487 company/models.py:779 stock/models.py:787 -#: stock/serializers.py:445 stock/templates/stock/item_base.html:142 +#: company/models.py:484 company/models.py:776 stock/models.py:864 +#: stock/serializers.py:455 stock/templates/stock/item_base.html:139 #: templates/js/translated/bom.js:622 msgid "Base Part" msgstr "Базовая деталь" -#: company/models.py:489 company/models.py:781 +#: company/models.py:486 company/models.py:778 msgid "Select part" msgstr "Выберите деталь" -#: company/models.py:498 company/templates/company/company_base.html:82 +#: company/models.py:495 company/templates/company/company_base.html:82 #: company/templates/company/manufacturer_part.html:90 -#: company/templates/company/supplier_part.html:145 part/serializers.py:554 -#: stock/templates/stock/item_base.html:207 -#: templates/js/translated/company.js:507 -#: templates/js/translated/company.js:1118 -#: templates/js/translated/company.js:1296 -#: templates/js/translated/company.js:1611 +#: company/templates/company/supplier_part.html:146 part/serializers.py:598 +#: stock/templates/stock/item_base.html:204 +#: templates/js/translated/company.js:508 +#: templates/js/translated/company.js:1119 +#: templates/js/translated/company.js:1297 +#: templates/js/translated/company.js:1612 #: templates/js/translated/table_filters.js:812 msgid "Manufacturer" msgstr "Производитель" -#: company/models.py:499 +#: company/models.py:496 msgid "Select manufacturer" msgstr "Выберите производителя" -#: company/models.py:505 company/templates/company/manufacturer_part.html:101 -#: company/templates/company/supplier_part.html:153 order/serializers.py:556 -#: part/serializers.py:564 templates/js/translated/company.js:351 -#: templates/js/translated/company.js:1117 -#: templates/js/translated/company.js:1312 -#: templates/js/translated/company.js:1630 templates/js/translated/part.js:1807 -#: templates/js/translated/purchase_order.js:1921 -#: templates/js/translated/purchase_order.js:2123 +#: company/models.py:502 company/templates/company/manufacturer_part.html:101 +#: company/templates/company/supplier_part.html:154 order/serializers.py:641 +#: part/serializers.py:608 templates/js/translated/company.js:352 +#: templates/js/translated/company.js:1118 +#: templates/js/translated/company.js:1313 +#: templates/js/translated/company.js:1631 templates/js/translated/part.js:1807 +#: templates/js/translated/purchase_order.js:1905 +#: templates/js/translated/purchase_order.js:2107 msgid "MPN" msgstr "" -#: company/models.py:513 +#: company/models.py:510 msgid "URL for external manufacturer part link" msgstr "Ссылка на сайт производителя" -#: company/models.py:522 +#: company/models.py:519 msgid "Manufacturer part description" msgstr "Описание детали производителя" -#: company/models.py:575 +#: company/models.py:572 msgid "Manufacturer Part Parameter" msgstr "" -#: company/models.py:594 +#: company/models.py:591 msgid "Parameter name" msgstr "Наименование параметра" -#: company/models.py:600 report/templates/report/inventree_test_report.html:104 -#: stock/models.py:2550 templates/js/translated/company.js:1166 -#: templates/js/translated/company.js:1419 templates/js/translated/part.js:1499 +#: company/models.py:597 report/templates/report/inventree_test_report.html:104 +#: stock/models.py:2666 templates/js/translated/company.js:1167 +#: templates/js/translated/company.js:1420 templates/js/translated/part.js:1499 #: templates/js/translated/stock.js:1607 msgid "Value" msgstr "Значение" -#: company/models.py:601 +#: company/models.py:598 msgid "Parameter value" msgstr "Значение параметра" -#: company/models.py:608 company/templates/company/supplier_part.html:168 -#: part/admin.py:57 part/models.py:1147 part/models.py:3771 -#: part/templates/part/part_base.html:293 -#: templates/js/translated/company.js:1425 templates/js/translated/part.js:1518 +#: company/models.py:605 company/templates/company/supplier_part.html:169 +#: part/admin.py:57 part/models.py:1208 part/models.py:3822 +#: part/templates/part/part_base.html:301 +#: templates/js/translated/company.js:1426 templates/js/translated/part.js:1518 #: templates/js/translated/part.js:1622 templates/js/translated/part.js:2376 msgid "Units" msgstr "Ед.изм" -#: company/models.py:609 +#: company/models.py:606 msgid "Parameter units" msgstr "Единицы измерения параметра" -#: company/models.py:662 company/templates/company/supplier_part.html:7 -#: company/templates/company/supplier_part.html:24 order/api.py:442 -#: order/serializers.py:491 stock/models.py:798 -#: stock/templates/stock/item_base.html:233 -#: templates/js/translated/build.js:1052 -#: templates/js/translated/company.js:1600 -#: templates/js/translated/purchase_order.js:752 -#: templates/js/translated/stock.js:2365 +#: company/models.py:659 company/templates/company/supplier_part.html:8 +#: company/templates/company/supplier_part.html:25 order/api.py:392 +#: order/serializers.py:576 stock/models.py:875 +#: stock/templates/stock/item_base.html:230 +#: templates/js/translated/build.js:1055 +#: templates/js/translated/company.js:1601 +#: templates/js/translated/purchase_order.js:735 +#: templates/js/translated/stock.js:2366 msgid "Supplier Part" msgstr "Деталь поставщика" -#: company/models.py:719 +#: company/models.py:716 msgid "Pack units must be compatible with the base part units" msgstr "" -#: company/models.py:726 +#: company/models.py:723 msgid "Pack units must be greater than zero" msgstr "" -#: company/models.py:740 +#: company/models.py:737 msgid "Linked manufacturer part must reference the same base part" msgstr "Связанная деталь производителя должна ссылаться на ту же базовую деталь" -#: company/models.py:789 company/templates/company/company_base.html:87 -#: company/templates/company/supplier_part.html:129 order/models.py:491 -#: order/templates/order/order_base.html:141 part/bom.py:280 part/bom.py:318 -#: part/serializers.py:538 plugin/builtin/suppliers/digikey.py:25 +#: company/models.py:786 company/templates/company/company_base.html:87 +#: company/templates/company/supplier_part.html:130 order/models.py:503 +#: order/templates/order/order_base.html:150 part/bom.py:279 part/bom.py:314 +#: part/serializers.py:582 plugin/builtin/suppliers/digikey.py:25 #: plugin/builtin/suppliers/lcsc.py:26 plugin/builtin/suppliers/mouser.py:24 -#: plugin/builtin/suppliers/tme.py:26 stock/templates/stock/item_base.html:224 +#: plugin/builtin/suppliers/tme.py:26 stock/templates/stock/item_base.html:221 #: templates/email/overdue_purchase_order.html:16 -#: templates/js/translated/company.js:350 -#: templates/js/translated/company.js:511 -#: templates/js/translated/company.js:1584 templates/js/translated/part.js:1775 +#: templates/js/translated/company.js:351 +#: templates/js/translated/company.js:512 +#: templates/js/translated/company.js:1585 templates/js/translated/part.js:1775 #: templates/js/translated/pricing.js:498 -#: templates/js/translated/purchase_order.js:1759 +#: templates/js/translated/purchase_order.js:1743 #: templates/js/translated/table_filters.js:816 msgid "Supplier" msgstr "Поставщик" -#: company/models.py:790 +#: company/models.py:787 msgid "Select supplier" msgstr "Выберите поставщика" -#: company/models.py:796 part/serializers.py:549 +#: company/models.py:793 part/serializers.py:593 msgid "Supplier stock keeping unit" msgstr "Код поставщика" -#: company/models.py:802 +#: company/models.py:799 msgid "Is this supplier part active?" msgstr "" -#: company/models.py:812 +#: company/models.py:809 msgid "Select manufacturer part" msgstr "Выберите производителя части" -#: company/models.py:819 +#: company/models.py:816 msgid "URL for external supplier part link" msgstr "Ссылка на сайт поставщика" -#: company/models.py:828 +#: company/models.py:825 msgid "Supplier part description" msgstr "Описание детали поставщика" -#: company/models.py:835 company/templates/company/supplier_part.html:187 -#: order/serializers.py:698 part/admin.py:415 part/models.py:4288 +#: company/models.py:832 company/templates/company/supplier_part.html:188 +#: order/serializers.py:783 part/admin.py:415 part/models.py:4345 #: part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_bill_of_materials_report.html:140 #: report/templates/report/inventree_purchase_order_report.html:32 #: report/templates/report/inventree_return_order_report.html:27 #: report/templates/report/inventree_sales_order_report.html:32 #: report/templates/report/inventree_stock_location_report.html:105 -#: stock/serializers.py:776 templates/js/translated/purchase_order.js:1185 -#: templates/js/translated/purchase_order.js:1344 +#: stock/serializers.py:807 templates/js/translated/purchase_order.js:1168 +#: templates/js/translated/purchase_order.js:1327 msgid "Note" msgstr "Запись" -#: company/models.py:844 part/models.py:2117 +#: company/models.py:841 part/models.py:2177 msgid "base cost" msgstr "базовая стоимость" -#: company/models.py:845 part/models.py:2118 +#: company/models.py:842 part/models.py:2178 msgid "Minimum charge (e.g. stocking fee)" msgstr "" -#: company/models.py:853 +#: company/models.py:850 msgid "Part packaging" msgstr "Упаковка детали" -#: company/models.py:858 templates/js/translated/company.js:1651 +#: company/models.py:855 templates/js/translated/company.js:1652 #: templates/js/translated/part.js:1828 templates/js/translated/part.js:1884 -#: templates/js/translated/purchase_order.js:311 -#: templates/js/translated/purchase_order.js:841 -#: templates/js/translated/purchase_order.js:1103 -#: templates/js/translated/purchase_order.js:2154 -#: templates/js/translated/purchase_order.js:2171 +#: templates/js/translated/purchase_order.js:294 +#: templates/js/translated/purchase_order.js:824 +#: templates/js/translated/purchase_order.js:1086 +#: templates/js/translated/purchase_order.js:2138 +#: templates/js/translated/purchase_order.js:2155 msgid "Pack Quantity" msgstr "Кол-во в упаковке" -#: company/models.py:860 +#: company/models.py:857 msgid "Total quantity supplied in a single pack. Leave empty for single items." msgstr "" -#: company/models.py:879 part/models.py:2124 +#: company/models.py:876 part/models.py:2184 msgid "multiple" msgstr "множественные" -#: company/models.py:880 +#: company/models.py:877 msgid "Order multiple" msgstr "Кратность заказа" -#: company/models.py:892 +#: company/models.py:889 msgid "Quantity available from supplier" msgstr "" -#: company/models.py:898 +#: company/models.py:895 msgid "Availability Updated" msgstr "" -#: company/models.py:899 +#: company/models.py:896 msgid "Date of last update of availability data" msgstr "" -#: company/models.py:1027 +#: company/models.py:1024 msgid "Supplier Price Break" msgstr "" -#: company/serializers.py:174 +#: company/serializers.py:178 msgid "Default currency used for this supplier" msgstr "Валюта по умолчанию для этого поставщика" -#: company/serializers.py:210 +#: company/serializers.py:214 msgid "Company Name" msgstr "" -#: company/serializers.py:393 part/admin.py:126 part/serializers.py:898 -#: part/templates/part/part_base.html:197 -#: templates/js/translated/company.js:1689 +#: company/serializers.py:397 part/admin.py:126 part/serializers.py:950 +#: part/templates/part/part_base.html:198 stock/serializers.py:474 +#: templates/js/translated/company.js:1690 #: templates/js/translated/table_filters.js:362 msgid "In Stock" msgstr "На складе" #: company/templates/company/company_base.html:16 -#: part/templates/part/part_base.html:146 -#: templates/js/translated/company.js:1287 -#: templates/js/translated/company.js:1575 -#: templates/js/translated/model_renderers.js:313 +#: part/templates/part/part_base.html:147 +#: templates/js/translated/company.js:1288 +#: templates/js/translated/company.js:1576 +#: templates/js/translated/model_renderers.js:316 #: templates/js/translated/part.js:817 templates/js/translated/part.js:1225 msgid "Inactive" msgstr "Неактивный" #: company/templates/company/company_base.html:27 -#: templates/js/translated/purchase_order.js:242 +#: templates/js/translated/purchase_order.js:224 msgid "Create Purchase Order" msgstr "Создать заказ на закупку" @@ -4590,7 +4769,7 @@ msgid "Edit company information" msgstr "Редактировать информацию о компании" #: company/templates/company/company_base.html:39 -#: templates/js/translated/company.js:445 +#: templates/js/translated/company.js:446 msgid "Edit Company" msgstr "Редактировать компанию" @@ -4605,11 +4784,12 @@ msgstr "Удалить компанию" #: company/templates/company/company_base.html:53 #: company/templates/company/manufacturer_part.html:51 -#: company/templates/company/supplier_part.html:83 +#: company/templates/company/supplier_part.html:84 #: part/templates/part/part_thumb.html:20 #: report/templates/report/inventree_build_order_report.html:98 #: report/templates/report/inventree_purchase_order_report.html:40 #: report/templates/report/inventree_sales_order_report.html:40 +#: report/templates/report/inventree_sales_order_shipment_report.html:37 #: report/templates/report/inventree_test_report.html:84 #: report/templates/report/inventree_test_report.html:162 msgid "Part image" @@ -4630,16 +4810,16 @@ msgstr "Скачать изображение по ссылке" msgid "Delete image" msgstr "Удалить изображение" -#: company/templates/company/company_base.html:92 order/models.py:990 -#: order/models.py:2147 order/templates/order/return_order_base.html:134 -#: order/templates/order/sales_order_base.html:151 stock/models.py:840 -#: stock/models.py:841 stock/serializers.py:1329 -#: stock/templates/stock/item_base.html:405 +#: company/templates/company/company_base.html:92 order/models.py:1017 +#: order/models.py:2186 order/templates/order/return_order_base.html:135 +#: order/templates/order/sales_order_base.html:152 stock/models.py:917 +#: stock/models.py:918 stock/serializers.py:1360 +#: stock/templates/stock/item_base.html:402 #: templates/email/overdue_sales_order.html:16 -#: templates/js/translated/company.js:503 +#: templates/js/translated/company.js:504 #: templates/js/translated/return_order.js:295 -#: templates/js/translated/sales_order.js:820 -#: templates/js/translated/stock.js:3043 +#: templates/js/translated/sales_order.js:779 +#: templates/js/translated/stock.js:3044 #: templates/js/translated/table_filters.js:820 msgid "Customer" msgstr "Покупатель" @@ -4653,7 +4833,7 @@ msgid "Phone" msgstr "Телефон" #: company/templates/company/company_base.html:211 -#: part/templates/part/part_base.html:536 +#: part/templates/part/part_base.html:544 msgid "Remove Image" msgstr "Удалить Изображение" @@ -4662,19 +4842,19 @@ msgid "Remove associated image from this company" msgstr "" #: company/templates/company/company_base.html:214 -#: part/templates/part/part_base.html:539 +#: part/templates/part/part_base.html:547 #: templates/InvenTree/settings/user.html:88 #: templates/InvenTree/settings/user_sso.html:43 msgid "Remove" msgstr "Удалить" #: company/templates/company/company_base.html:243 -#: part/templates/part/part_base.html:568 +#: part/templates/part/part_base.html:576 msgid "Upload Image" msgstr "Загрузить Изображение" #: company/templates/company/company_base.html:258 -#: part/templates/part/part_base.html:622 +#: part/templates/part/part_base.html:630 msgid "Download Image" msgstr "Скачать изображение" @@ -4714,7 +4894,7 @@ msgstr "Склад поставщика" #: company/templates/company/detail.html:75 #: company/templates/company/sidebar.html:12 #: company/templates/company/supplier_part_sidebar.html:7 -#: order/templates/order/order_base.html:13 +#: order/templates/order/order_base.html:14 #: order/templates/order/purchase_orders.html:8 #: order/templates/order/purchase_orders.html:12 #: part/templates/part/detail.html:122 part/templates/part/part_sidebar.html:35 @@ -4737,7 +4917,7 @@ msgstr "Новый заказ на закупку" #: company/templates/company/detail.html:101 #: company/templates/company/sidebar.html:21 -#: order/templates/order/sales_order_base.html:13 +#: order/templates/order/sales_order_base.html:14 #: order/templates/order/sales_orders.html:8 #: order/templates/order/sales_orders.html:15 #: part/templates/part/detail.html:143 part/templates/part/part_sidebar.html:39 @@ -4764,7 +4944,7 @@ msgstr "Назначенный Запас" #: company/templates/company/detail.html:142 #: company/templates/company/sidebar.html:29 -#: order/templates/order/return_order_base.html:13 +#: order/templates/order/return_order_base.html:14 #: order/templates/order/return_orders.html:8 #: order/templates/order/return_orders.html:15 #: templates/InvenTree/settings/sidebar.html:61 @@ -4811,24 +4991,24 @@ msgid "Manufacturers" msgstr "Производители" #: company/templates/company/manufacturer_part.html:35 -#: company/templates/company/supplier_part.html:227 -#: part/templates/part/detail.html:125 part/templates/part/part_base.html:83 +#: company/templates/company/supplier_part.html:228 +#: part/templates/part/detail.html:125 part/templates/part/part_base.html:84 msgid "Order part" msgstr "Заказать деталь" #: company/templates/company/manufacturer_part.html:39 -#: templates/js/translated/company.js:1343 +#: templates/js/translated/company.js:1344 msgid "Edit manufacturer part" msgstr "" #: company/templates/company/manufacturer_part.html:43 -#: templates/js/translated/company.js:1344 +#: templates/js/translated/company.js:1345 msgid "Delete manufacturer part" msgstr "" #: company/templates/company/manufacturer_part.html:65 -#: company/templates/company/supplier_part.html:97 order/api.py:448 -#: order/serializers.py:564 +#: company/templates/company/supplier_part.html:98 order/api.py:411 +#: order/serializers.py:649 msgid "Internal Part" msgstr "Внутренняя деталь" @@ -4837,8 +5017,8 @@ msgid "No manufacturer information available" msgstr "" #: company/templates/company/manufacturer_part.html:119 -#: company/templates/company/supplier_part.html:15 company/views.py:31 -#: part/admin.py:122 part/serializers.py:904 +#: company/templates/company/supplier_part.html:16 company/views.py:31 +#: part/admin.py:122 part/serializers.py:956 #: part/templates/part/part_sidebar.html:33 templates/InvenTree/search.html:190 #: templates/navbar.html:48 msgid "Suppliers" @@ -4887,112 +5067,113 @@ msgstr "Назначенные складские позиции" msgid "Contacts" msgstr "Контакты" -#: company/templates/company/supplier_part.html:50 -#: templates/js/translated/company.js:1526 +#: company/templates/company/supplier_part.html:51 +#: templates/js/translated/company.js:1527 msgid "Supplier part actions" msgstr "" -#: company/templates/company/supplier_part.html:55 #: company/templates/company/supplier_part.html:56 -#: company/templates/company/supplier_part.html:228 +#: company/templates/company/supplier_part.html:57 +#: company/templates/company/supplier_part.html:229 #: part/templates/part/detail.html:126 msgid "Order Part" msgstr "Заказать Деталь" -#: company/templates/company/supplier_part.html:60 #: company/templates/company/supplier_part.html:61 +#: company/templates/company/supplier_part.html:62 msgid "Update Availability" msgstr "" -#: company/templates/company/supplier_part.html:63 #: company/templates/company/supplier_part.html:64 -#: templates/js/translated/company.js:294 +#: company/templates/company/supplier_part.html:65 +#: templates/js/translated/company.js:295 msgid "Edit Supplier Part" msgstr "Редактировать деталь поставщика" -#: company/templates/company/supplier_part.html:68 #: company/templates/company/supplier_part.html:69 -#: templates/js/translated/company.js:269 +#: company/templates/company/supplier_part.html:70 +#: templates/js/translated/company.js:270 msgid "Duplicate Supplier Part" msgstr "" -#: company/templates/company/supplier_part.html:73 +#: company/templates/company/supplier_part.html:74 msgid "Delete Supplier Part" msgstr "" -#: company/templates/company/supplier_part.html:74 +#: company/templates/company/supplier_part.html:75 msgid "Delete Supplier Part" msgstr "" -#: company/templates/company/supplier_part.html:133 +#: company/templates/company/supplier_part.html:134 +#: order/templates/order/order_base.html:155 msgid "No supplier information available" msgstr "" -#: company/templates/company/supplier_part.html:139 order/serializers.py:553 -#: part/bom.py:287 part/bom.py:319 part/serializers.py:548 -#: templates/js/translated/company.js:349 templates/js/translated/part.js:1793 +#: company/templates/company/supplier_part.html:140 order/serializers.py:638 +#: part/bom.py:286 part/bom.py:315 part/serializers.py:592 +#: templates/js/translated/company.js:350 templates/js/translated/part.js:1793 #: templates/js/translated/pricing.js:510 -#: templates/js/translated/purchase_order.js:1920 -#: templates/js/translated/purchase_order.js:2098 +#: templates/js/translated/purchase_order.js:1904 +#: templates/js/translated/purchase_order.js:2082 msgid "SKU" msgstr "" -#: company/templates/company/supplier_part.html:206 +#: company/templates/company/supplier_part.html:207 msgid "Supplier Part Stock" msgstr "" -#: company/templates/company/supplier_part.html:209 -#: part/templates/part/detail.html:24 stock/templates/stock/location.html:204 +#: company/templates/company/supplier_part.html:210 +#: part/templates/part/detail.html:24 stock/templates/stock/location.html:205 msgid "Create new stock item" msgstr "Создать новую складскую позицию" -#: company/templates/company/supplier_part.html:210 -#: part/templates/part/detail.html:25 stock/templates/stock/location.html:205 +#: company/templates/company/supplier_part.html:211 +#: part/templates/part/detail.html:25 stock/templates/stock/location.html:206 #: templates/js/translated/stock.js:543 msgid "New Stock Item" msgstr "Новая складская позиция" -#: company/templates/company/supplier_part.html:223 +#: company/templates/company/supplier_part.html:224 msgid "Supplier Part Orders" msgstr "" -#: company/templates/company/supplier_part.html:246 +#: company/templates/company/supplier_part.html:247 msgid "Pricing Information" msgstr "Информация о цене" -#: company/templates/company/supplier_part.html:251 -#: templates/js/translated/company.js:398 +#: company/templates/company/supplier_part.html:252 +#: templates/js/translated/company.js:399 #: templates/js/translated/pricing.js:684 msgid "Add Price Break" msgstr "Добавить разрыв цен" -#: company/templates/company/supplier_part.html:270 +#: company/templates/company/supplier_part.html:271 msgid "Supplier Part Notes" msgstr "" -#: company/templates/company/supplier_part.html:305 +#: company/templates/company/supplier_part.html:306 msgid "Supplier Part QR Code" msgstr "" -#: company/templates/company/supplier_part.html:316 +#: company/templates/company/supplier_part.html:317 msgid "Link Barcode to Supplier Part" msgstr "Привязать штрихкод к части поставщика" -#: company/templates/company/supplier_part.html:388 +#: company/templates/company/supplier_part.html:389 msgid "Update Part Availability" msgstr "" #: company/templates/company/supplier_part_sidebar.html:5 -#: part/serializers.py:902 part/stocktake.py:223 +#: part/serializers.py:954 part/stocktake.py:223 #: part/templates/part/category.html:180 #: part/templates/part/category_sidebar.html:17 stock/admin.py:68 -#: stock/serializers.py:1014 stock/serializers.py:1192 -#: stock/templates/stock/location.html:167 -#: stock/templates/stock/location.html:188 -#: stock/templates/stock/location.html:200 +#: stock/serializers.py:1045 stock/serializers.py:1223 +#: stock/templates/stock/location.html:168 +#: stock/templates/stock/location.html:189 +#: stock/templates/stock/location.html:201 #: stock/templates/stock/location_sidebar.html:7 #: templates/InvenTree/search.html:155 templates/js/translated/part.js:1067 -#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2850 +#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2851 #: users/models.py:206 msgid "Stock Items" msgstr "Складские позиции" @@ -5022,99 +5203,99 @@ msgstr "Новый покупатель" msgid "New Company" msgstr "Новая компания" -#: generic/states/tests.py:18 order/status_codes.py:13 +#: generic/states/fields.py:118 +msgid "Custom status key" +msgstr "" + +#: generic/states/fields.py:119 +msgid "Additional status information for this item" +msgstr "" + +#: generic/states/tests.py:22 order/status_codes.py:13 msgid "Placed" msgstr "Размещены" -#: importer/mixins.py:263 +#: importer/mixins.py:261 msgid "Invalid export format" msgstr "" -#: importer/models.py:59 -msgid "Timestamp" -msgstr "" - -#: importer/models.py:64 +#: importer/models.py:65 msgid "Data file to import" msgstr "" -#: importer/models.py:73 templates/js/translated/tables.js:558 +#: importer/models.py:74 templates/js/translated/tables.js:558 msgid "Columns" msgstr "Столбцы" -#: importer/models.py:84 +#: importer/models.py:85 msgid "Import status" msgstr "" -#: importer/models.py:94 +#: importer/models.py:95 msgid "Field Defaults" msgstr "" -#: importer/models.py:101 +#: importer/models.py:102 msgid "Field Overrides" msgstr "" -#: importer/models.py:108 +#: importer/models.py:109 msgid "Field Filters" msgstr "" -#: importer/models.py:230 +#: importer/models.py:239 msgid "Some required fields have not been mapped" msgstr "" -#: importer/models.py:387 +#: importer/models.py:396 msgid "Column is already mapped to a database field" msgstr "" -#: importer/models.py:392 +#: importer/models.py:401 msgid "Field is already mapped to a data column" msgstr "" -#: importer/models.py:401 +#: importer/models.py:410 msgid "Column mapping must be linked to a valid import session" msgstr "Сопоставление столбцов должно быть связано с корректным сеансом импорта" -#: importer/models.py:406 +#: importer/models.py:415 msgid "Column does not exist in the data file" msgstr "" -#: importer/models.py:413 +#: importer/models.py:422 msgid "Field does not exist in the target model" msgstr "" -#: importer/models.py:417 +#: importer/models.py:426 msgid "Selected field is read-only" msgstr "" -#: importer/models.py:422 importer/models.py:493 +#: importer/models.py:431 importer/models.py:502 msgid "Import Session" msgstr "" -#: importer/models.py:426 +#: importer/models.py:435 msgid "Field" msgstr "" -#: importer/models.py:428 +#: importer/models.py:437 msgid "Column" msgstr "" -#: importer/models.py:497 +#: importer/models.py:506 msgid "Row Index" msgstr "Номер строки" -#: importer/models.py:500 +#: importer/models.py:509 msgid "Original row data" msgstr "" -#: importer/models.py:503 part/models.py:3951 -msgid "Data" -msgstr "Данные" - -#: importer/models.py:505 machine/models.py:110 +#: importer/models.py:514 machine/models.py:110 msgid "Errors" msgstr "Ошибки" -#: importer/models.py:507 part/api.py:873 +#: importer/models.py:516 part/api.py:857 msgid "Valid" msgstr "Корректный" @@ -5166,19 +5347,19 @@ msgstr "" msgid "Row has already been completed" msgstr "" -#: importer/status_codes.py:11 +#: importer/status_codes.py:13 msgid "Initializing" msgstr "Инициализация" -#: importer/status_codes.py:12 +#: importer/status_codes.py:18 msgid "Mapping Columns" msgstr "" -#: importer/status_codes.py:13 +#: importer/status_codes.py:21 msgid "Importing Data" msgstr "" -#: importer/status_codes.py:16 +#: importer/status_codes.py:24 msgid "Processing Data" msgstr "" @@ -5202,52 +5383,52 @@ msgstr "" msgid "Value must be a valid dictionary object" msgstr "" -#: machine/machine_types/label_printer.py:215 +#: machine/machine_types/label_printer.py:216 msgid "Copies" msgstr "Копии" -#: machine/machine_types/label_printer.py:216 +#: machine/machine_types/label_printer.py:217 msgid "Number of copies to print for each label" msgstr "" -#: machine/machine_types/label_printer.py:231 +#: machine/machine_types/label_printer.py:232 msgid "Connected" msgstr "Подключен" -#: machine/machine_types/label_printer.py:232 order/api.py:1410 -#: templates/js/translated/sales_order.js:1078 +#: machine/machine_types/label_printer.py:233 order/api.py:1532 +#: templates/js/translated/sales_order.js:1044 msgid "Unknown" msgstr "Неизвестно" -#: machine/machine_types/label_printer.py:233 +#: machine/machine_types/label_printer.py:234 msgid "Printing" msgstr "Печать" -#: machine/machine_types/label_printer.py:234 +#: machine/machine_types/label_printer.py:235 msgid "No media" msgstr "" -#: machine/machine_types/label_printer.py:235 +#: machine/machine_types/label_printer.py:236 msgid "Paper jam" msgstr "" -#: machine/machine_types/label_printer.py:236 +#: machine/machine_types/label_printer.py:237 msgid "Disconnected" msgstr "" -#: machine/machine_types/label_printer.py:243 +#: machine/machine_types/label_printer.py:244 msgid "Label Printer" msgstr "" -#: machine/machine_types/label_printer.py:244 +#: machine/machine_types/label_printer.py:245 msgid "Directly print labels for various items." msgstr "" -#: machine/machine_types/label_printer.py:250 +#: machine/machine_types/label_printer.py:251 msgid "Printer Location" msgstr "Расположение принтера" -#: machine/machine_types/label_printer.py:251 +#: machine/machine_types/label_printer.py:252 msgid "Scope the printer to a specific location" msgstr "" @@ -5307,79 +5488,75 @@ msgstr "" #: report/templates/report/inventree_purchase_order_report.html:31 #: report/templates/report/inventree_sales_order_report.html:31 #: templates/js/translated/order.js:352 -#: templates/js/translated/purchase_order.js:2195 -#: templates/js/translated/sales_order.js:1883 +#: templates/js/translated/purchase_order.js:2179 +#: templates/js/translated/sales_order.js:1864 msgid "Total Price" msgstr "Общая стоимость" -#: order/api.py:80 order/api.py:151 order/serializers.py:93 -#: order/templates/order/order_base.html:123 -#: order/templates/order/return_order_base.html:116 -#: order/templates/order/sales_order_base.html:125 +#: order/api.py:78 order/api.py:149 order/serializers.py:124 +#: order/templates/order/order_base.html:124 +#: order/templates/order/return_order_base.html:117 +#: order/templates/order/sales_order_base.html:126 msgid "Order Status" msgstr "Статсу заказа" -#: order/api.py:88 order/templates/order/order_base.html:111 -#: order/templates/order/return_order_base.html:104 -#: order/templates/order/sales_order_base.html:113 +#: order/api.py:86 order/templates/order/order_base.html:112 +#: order/templates/order/return_order_base.html:105 +#: order/templates/order/sales_order_base.html:114 msgid "Order Reference" msgstr "Ссылка на заказ" -#: order/api.py:116 templates/js/translated/table_filters.js:93 +#: order/api.py:114 order/api.py:1022 +#: templates/js/translated/table_filters.js:93 #: templates/js/translated/table_filters.js:625 #: templates/js/translated/table_filters.js:651 #: templates/js/translated/table_filters.js:666 msgid "Outstanding" msgstr "Невыполненный" -#: order/api.py:132 +#: order/api.py:130 msgid "Has Project Code" msgstr "" -#: order/api.py:155 templates/js/translated/table_filters.js:201 +#: order/api.py:153 templates/js/translated/table_filters.js:201 #: templates/js/translated/table_filters.js:791 msgid "Has Pricing" msgstr "Имеет цену" -#: order/api.py:230 -msgid "No matching purchase order found" -msgstr "" - -#: order/api.py:425 order/api.py:763 order/models.py:1484 order/models.py:1598 -#: order/models.py:1649 order/models.py:1764 order/models.py:1923 -#: order/models.py:2383 order/models.py:2439 -#: templates/js/translated/sales_order.js:1524 +#: order/api.py:375 order/api.py:771 order/api.py:986 order/models.py:1500 +#: order/models.py:1614 order/models.py:1665 order/models.py:1793 +#: order/models.py:1956 order/models.py:2422 order/models.py:2478 +#: templates/js/translated/sales_order.js:1490 msgid "Order" msgstr "Заказ" -#: order/api.py:429 order/api.py:784 +#: order/api.py:379 order/api.py:809 msgid "Order Complete" msgstr "" -#: order/api.py:452 +#: order/api.py:430 msgid "Order Pending" msgstr "" -#: order/api.py:1404 order/models.py:379 order/models.py:1485 -#: order/models.py:1599 order/templates/order/order_base.html:9 -#: order/templates/order/order_base.html:18 +#: order/api.py:1526 order/models.py:386 order/models.py:1501 +#: order/models.py:1615 order/templates/order/order_base.html:10 +#: order/templates/order/order_base.html:19 #: report/templates/report/inventree_purchase_order_report.html:14 -#: stock/serializers.py:120 stock/templates/stock/item_base.html:176 +#: stock/serializers.py:121 stock/templates/stock/item_base.html:173 #: templates/email/overdue_purchase_order.html:15 #: templates/js/translated/part.js:1752 templates/js/translated/pricing.js:804 -#: templates/js/translated/purchase_order.js:168 -#: templates/js/translated/purchase_order.js:753 -#: templates/js/translated/purchase_order.js:1743 -#: templates/js/translated/stock.js:2345 templates/js/translated/stock.js:2991 +#: templates/js/translated/purchase_order.js:736 +#: templates/js/translated/purchase_order.js:1727 +#: templates/js/translated/stock.js:2346 templates/js/translated/stock.js:2992 msgid "Purchase Order" msgstr "Заказ на закупку" -#: order/api.py:1408 order/models.py:2091 order/models.py:2384 -#: order/models.py:2440 order/templates/order/return_order_base.html:9 -#: order/templates/order/return_order_base.html:28 +#: order/api.py:1530 order/models.py:2124 order/models.py:2423 +#: order/models.py:2479 order/templates/order/return_order_base.html:10 +#: order/templates/order/return_order_base.html:29 #: report/templates/report/inventree_return_order_report.html:13 #: templates/js/translated/return_order.js:280 -#: templates/js/translated/stock.js:3025 +#: templates/js/translated/stock.js:3026 msgid "Return Order" msgstr "Заказ на возврат" @@ -5387,751 +5564,782 @@ msgstr "Заказ на возврат" msgid "Total price for this order" msgstr "" -#: order/models.py:95 order/serializers.py:71 +#: order/models.py:95 order/serializers.py:73 msgid "Order Currency" msgstr "Валюта Заказа" -#: order/models.py:98 order/serializers.py:72 +#: order/models.py:98 order/serializers.py:74 msgid "Currency for this order (leave blank to use company default)" msgstr "" -#: order/models.py:246 +#: order/models.py:243 msgid "Contact does not match selected company" msgstr "Контакт не соответствует выбранной компании" -#: order/models.py:289 +#: order/models.py:296 msgid "Order description (optional)" msgstr "Описание заказа (дополнительно)" -#: order/models.py:298 +#: order/models.py:305 msgid "Select project code for this order" msgstr "Выберите код проекта для этого заказа" -#: order/models.py:302 order/models.py:1385 order/models.py:1817 +#: order/models.py:309 order/models.py:1402 order/models.py:1846 msgid "Link to external page" msgstr "Ссылка на внешнюю страницу" -#: order/models.py:310 +#: order/models.py:317 msgid "Expected date for order delivery. Order will be overdue after this date." msgstr "" -#: order/models.py:324 +#: order/models.py:331 msgid "Created By" msgstr "Создал" -#: order/models.py:332 +#: order/models.py:339 msgid "User or group responsible for this order" msgstr "Пользователь или группа, ответственная за этот заказ" -#: order/models.py:343 +#: order/models.py:350 msgid "Point of contact for this order" msgstr "" -#: order/models.py:353 +#: order/models.py:360 msgid "Company address for this order" msgstr "" -#: order/models.py:468 order/models.py:979 +#: order/models.py:480 order/models.py:1006 msgid "Order reference" msgstr "Ссылка на заказ" -#: order/models.py:477 +#: order/models.py:489 msgid "Purchase order status" msgstr "" -#: order/models.py:492 +#: order/models.py:504 msgid "Company from which the items are being ordered" msgstr "Компания, в которой детали заказываются" -#: order/models.py:503 order/templates/order/order_base.html:153 -#: templates/js/translated/purchase_order.js:1772 +#: order/models.py:515 order/templates/order/order_base.html:162 +#: templates/js/translated/purchase_order.js:1756 msgid "Supplier Reference" msgstr "" -#: order/models.py:504 +#: order/models.py:516 msgid "Supplier order reference code" msgstr "" -#: order/models.py:513 +#: order/models.py:525 msgid "received by" msgstr "получил" -#: order/models.py:519 order/models.py:2173 +#: order/models.py:531 order/models.py:2212 msgid "Issue Date" msgstr "Дата создания" -#: order/models.py:520 order/models.py:2174 +#: order/models.py:532 order/models.py:2213 msgid "Date order was issued" msgstr "" -#: order/models.py:527 order/models.py:2181 +#: order/models.py:539 order/models.py:2220 msgid "Date order was completed" msgstr "" -#: order/models.py:571 +#: order/models.py:549 order/models.py:1552 +msgid "Destination for received items" +msgstr "" + +#: order/models.py:593 msgid "Part supplier must match PO supplier" msgstr "" -#: order/models.py:806 +#: order/models.py:828 msgid "Quantity must be a positive number" msgstr "" -#: order/models.py:991 +#: order/models.py:1018 msgid "Company to which the items are being sold" msgstr "Компания, которой детали продаются" -#: order/models.py:1003 +#: order/models.py:1030 msgid "Sales order status" msgstr "" -#: order/models.py:1014 order/models.py:2166 +#: order/models.py:1041 order/models.py:2205 msgid "Customer Reference " msgstr "" -#: order/models.py:1015 order/models.py:2167 +#: order/models.py:1042 order/models.py:2206 msgid "Customer order reference code" msgstr "" -#: order/models.py:1019 order/models.py:1771 -#: templates/js/translated/sales_order.js:879 -#: templates/js/translated/sales_order.js:1060 +#: order/models.py:1046 order/models.py:1800 +#: templates/js/translated/sales_order.js:838 +#: templates/js/translated/sales_order.js:1026 msgid "Shipment Date" msgstr "Дата отгрузки" -#: order/models.py:1028 +#: order/models.py:1055 msgid "shipped by" msgstr "Отправлено" -#: order/models.py:1077 +#: order/models.py:1094 msgid "Order is already complete" msgstr "" -#: order/models.py:1080 +#: order/models.py:1097 msgid "Order is already cancelled" msgstr "" -#: order/models.py:1084 +#: order/models.py:1101 msgid "Only an open order can be marked as complete" msgstr "" -#: order/models.py:1088 +#: order/models.py:1105 msgid "Order cannot be completed as there are incomplete shipments" msgstr "" -#: order/models.py:1093 +#: order/models.py:1110 msgid "Order cannot be completed as there are incomplete line items" msgstr "" -#: order/models.py:1357 +#: order/models.py:1374 msgid "Item quantity" msgstr "Количество" -#: order/models.py:1374 +#: order/models.py:1391 msgid "Line item reference" msgstr "" -#: order/models.py:1381 +#: order/models.py:1398 msgid "Line item notes" msgstr "Записи о позиции" -#: order/models.py:1393 +#: order/models.py:1410 msgid "Target date for this line item (leave blank to use the target date from the order)" msgstr "" -#: order/models.py:1414 +#: order/models.py:1431 msgid "Line item description (optional)" msgstr "Описание позиции (необязательно)" -#: order/models.py:1420 -msgid "Context" -msgstr "Контекст" - -#: order/models.py:1421 +#: order/models.py:1438 msgid "Additional context for this line" msgstr "Дополнительный контекст для этой строки" -#: order/models.py:1431 +#: order/models.py:1448 msgid "Unit price" msgstr "Цена за единицу" -#: order/models.py:1445 +#: order/models.py:1462 msgid "Purchase Order Line Item" msgstr "" -#: order/models.py:1469 +#: order/models.py:1486 msgid "Supplier part must match supplier" msgstr "" -#: order/models.py:1476 -msgid "deleted" -msgstr "удалено" - -#: order/models.py:1504 +#: order/models.py:1520 msgid "Supplier part" msgstr "Деталь поставщика" -#: order/models.py:1511 order/templates/order/order_base.html:201 +#: order/models.py:1527 order/templates/order/order_base.html:210 #: templates/js/translated/part.js:1876 templates/js/translated/part.js:1908 -#: templates/js/translated/purchase_order.js:1369 -#: templates/js/translated/purchase_order.js:2239 +#: templates/js/translated/purchase_order.js:1352 +#: templates/js/translated/purchase_order.js:2223 #: templates/js/translated/return_order.js:762 #: templates/js/translated/table_filters.js:119 #: templates/js/translated/table_filters.js:605 msgid "Received" msgstr "Получено" -#: order/models.py:1512 +#: order/models.py:1528 msgid "Number of items received" msgstr "" -#: order/models.py:1520 stock/models.py:959 stock/serializers.py:610 -#: stock/templates/stock/item_base.html:183 -#: templates/js/translated/stock.js:2396 +#: order/models.py:1536 stock/models.py:1036 stock/serializers.py:637 +#: stock/templates/stock/item_base.html:180 +#: templates/js/translated/stock.js:2397 msgid "Purchase Price" msgstr "Закупочная цена" -#: order/models.py:1521 +#: order/models.py:1537 msgid "Unit purchase price" msgstr "" -#: order/models.py:1536 -msgid "Where does the Purchaser want this item to be stored?" -msgstr "" - -#: order/models.py:1587 +#: order/models.py:1603 msgid "Purchase Order Extra Line" msgstr "" -#: order/models.py:1616 +#: order/models.py:1632 msgid "Sales Order Line Item" msgstr "" -#: order/models.py:1637 +#: order/models.py:1653 msgid "Virtual part cannot be assigned to a sales order" msgstr "" -#: order/models.py:1642 +#: order/models.py:1658 msgid "Only salable parts can be assigned to a sales order" msgstr "" -#: order/models.py:1668 part/templates/part/part_pricing.html:107 -#: part/templates/part/prices.html:139 templates/js/translated/pricing.js:957 +#: order/models.py:1684 part/templates/part/part_pricing.html:107 +#: part/templates/part/prices.html:139 templates/js/translated/pricing.js:955 msgid "Sale Price" msgstr "Цена продажи" -#: order/models.py:1669 +#: order/models.py:1685 msgid "Unit sale price" msgstr "Цена последней продажи" -#: order/models.py:1678 order/status_codes.py:48 -#: templates/js/translated/sales_order.js:1559 -#: templates/js/translated/sales_order.js:1680 -#: templates/js/translated/sales_order.js:1993 +#: order/models.py:1694 order/status_codes.py:50 +#: templates/js/translated/sales_order.js:1525 +#: templates/js/translated/sales_order.js:1661 +#: templates/js/translated/sales_order.js:1974 msgid "Shipped" msgstr "Доставлено" -#: order/models.py:1679 +#: order/models.py:1695 msgid "Shipped quantity" msgstr "Отгруженное кол-во" -#: order/models.py:1751 +#: order/models.py:1769 msgid "Sales Order Shipment" msgstr "" -#: order/models.py:1772 +#: order/models.py:1801 msgid "Date of shipment" msgstr "Дата отправления" -#: order/models.py:1778 templates/js/translated/sales_order.js:1072 +#: order/models.py:1807 templates/js/translated/sales_order.js:1038 msgid "Delivery Date" msgstr "Дата доставки" -#: order/models.py:1779 +#: order/models.py:1808 msgid "Date of delivery of shipment" msgstr "" -#: order/models.py:1787 +#: order/models.py:1816 msgid "Checked By" msgstr "Проверн" -#: order/models.py:1788 +#: order/models.py:1817 msgid "User who checked this shipment" msgstr "" -#: order/models.py:1795 order/models.py:2018 order/serializers.py:1475 -#: order/serializers.py:1585 templates/js/translated/model_renderers.js:455 +#: order/models.py:1824 order/models.py:2051 order/serializers.py:1601 +#: order/serializers.py:1725 +#: report/templates/report/inventree_sales_order_shipment_report.html:14 +#: templates/js/translated/model_renderers.js:458 +#: templates/js/translated/sales_order.js:1615 msgid "Shipment" msgstr "Отправление" -#: order/models.py:1796 +#: order/models.py:1825 msgid "Shipment number" msgstr "Номер отправления" -#: order/models.py:1804 +#: order/models.py:1833 msgid "Tracking Number" msgstr "Номер отслеживания" -#: order/models.py:1805 +#: order/models.py:1834 msgid "Shipment tracking information" msgstr "Информация об отслеживании доставки" -#: order/models.py:1812 +#: order/models.py:1841 msgid "Invoice Number" msgstr "Номер счета" -#: order/models.py:1813 +#: order/models.py:1842 msgid "Reference number for associated invoice" msgstr "" -#: order/models.py:1833 +#: order/models.py:1862 msgid "Shipment has already been sent" msgstr "" -#: order/models.py:1836 +#: order/models.py:1865 msgid "Shipment has no allocated stock items" msgstr "Отправка не имеет зарезервированных складских позиций" -#: order/models.py:1912 +#: order/models.py:1945 msgid "Sales Order Extra Line" msgstr "" -#: order/models.py:1941 +#: order/models.py:1974 msgid "Sales Order Allocation" msgstr "" -#: order/models.py:1964 order/models.py:1966 +#: order/models.py:1997 order/models.py:1999 msgid "Stock item has not been assigned" msgstr "Складская позиция не была назначена" -#: order/models.py:1973 +#: order/models.py:2006 msgid "Cannot allocate stock item to a line with a different part" msgstr "Невозможно зарезервировать складскую позицию в позицию другой детали" -#: order/models.py:1976 +#: order/models.py:2009 msgid "Cannot allocate stock to a line without a part" msgstr "" -#: order/models.py:1979 +#: order/models.py:2012 msgid "Allocation quantity cannot exceed stock quantity" msgstr "" -#: order/models.py:1998 order/serializers.py:1345 +#: order/models.py:2031 order/serializers.py:1471 msgid "Quantity must be 1 for serialized stock item" msgstr "Количество должно быть 1 для сериализированных складских позиций" -#: order/models.py:2001 +#: order/models.py:2034 msgid "Sales order does not match shipment" msgstr "" -#: order/models.py:2002 plugin/base/barcodes/api.py:524 +#: order/models.py:2035 plugin/base/barcodes/api.py:629 msgid "Shipment does not match sales order" msgstr "" -#: order/models.py:2010 +#: order/models.py:2043 msgid "Line" msgstr "Строка" -#: order/models.py:2019 +#: order/models.py:2052 msgid "Sales order shipment reference" msgstr "" -#: order/models.py:2032 order/models.py:2391 +#: order/models.py:2065 order/models.py:2430 #: templates/js/translated/return_order.js:720 msgid "Item" msgstr "Элемент" -#: order/models.py:2033 +#: order/models.py:2066 msgid "Select stock item to allocate" msgstr "Выберите складскую позицию для резервирования" -#: order/models.py:2042 +#: order/models.py:2075 msgid "Enter stock allocation quantity" msgstr "Укажите резервируемое количество" -#: order/models.py:2136 +#: order/models.py:2175 msgid "Return Order reference" msgstr "" -#: order/models.py:2148 +#: order/models.py:2187 msgid "Company from which items are being returned" msgstr "" -#: order/models.py:2160 +#: order/models.py:2199 msgid "Return order status" msgstr "" -#: order/models.py:2362 +#: order/models.py:2401 msgid "Return Order Line Item" msgstr "" -#: order/models.py:2376 +#: order/models.py:2415 msgid "Only serialized items can be assigned to a Return Order" msgstr "" -#: order/models.py:2392 +#: order/models.py:2431 msgid "Select item to return from customer" msgstr "Выберите позицию, возвращаемую от клиента" -#: order/models.py:2398 +#: order/models.py:2437 msgid "Received Date" msgstr "Дата получения" -#: order/models.py:2399 +#: order/models.py:2438 msgid "The date this this return item was received" msgstr "" -#: order/models.py:2410 templates/js/translated/return_order.js:731 +#: order/models.py:2449 templates/js/translated/return_order.js:731 #: templates/js/translated/table_filters.js:122 msgid "Outcome" msgstr "Результат" -#: order/models.py:2411 +#: order/models.py:2450 msgid "Outcome for this line item" msgstr "" -#: order/models.py:2418 +#: order/models.py:2457 msgid "Cost associated with return or repair for this line item" msgstr "" -#: order/models.py:2428 +#: order/models.py:2467 msgid "Return Order Extra Line" msgstr "" -#: order/serializers.py:86 +#: order/serializers.py:87 +msgid "Order ID" +msgstr "" + +#: order/serializers.py:87 +msgid "ID of the order to duplicate" +msgstr "" + +#: order/serializers.py:93 +msgid "Copy Lines" +msgstr "" + +#: order/serializers.py:94 +msgid "Copy line items from the original order" +msgstr "" + +#: order/serializers.py:100 +msgid "Copy Extra Lines" +msgstr "" + +#: order/serializers.py:101 +msgid "Copy extra line items from the original order" +msgstr "" + +#: order/serializers.py:117 msgid "Completed Lines" msgstr "" -#: order/serializers.py:283 stock/admin.py:195 +#: order/serializers.py:161 +msgid "Duplicate Order" +msgstr "" + +#: order/serializers.py:162 +msgid "Specify options for duplicating this order" +msgstr "" + +#: order/serializers.py:234 +msgid "Invalid order ID" +msgstr "" + +#: order/serializers.py:374 stock/admin.py:196 msgid "Supplier Name" msgstr "Имя поставщика" -#: order/serializers.py:331 +#: order/serializers.py:416 msgid "Order cannot be cancelled" msgstr "" -#: order/serializers.py:346 order/serializers.py:1366 +#: order/serializers.py:431 order/serializers.py:1492 msgid "Allow order to be closed with incomplete line items" msgstr "" -#: order/serializers.py:356 order/serializers.py:1376 +#: order/serializers.py:441 order/serializers.py:1502 msgid "Order has incomplete line items" msgstr "" -#: order/serializers.py:506 +#: order/serializers.py:591 msgid "Order is not open" msgstr "Заказ не открыт" -#: order/serializers.py:527 +#: order/serializers.py:612 msgid "Auto Pricing" msgstr "" -#: order/serializers.py:529 +#: order/serializers.py:614 msgid "Automatically calculate purchase price based on supplier part data" msgstr "" -#: order/serializers.py:539 +#: order/serializers.py:624 msgid "Purchase price currency" msgstr "Валюта цены закупки" -#: order/serializers.py:545 +#: order/serializers.py:630 msgid "Merge Items" msgstr "" -#: order/serializers.py:547 +#: order/serializers.py:632 msgid "Merge items with the same part, destination and target date into one line item" msgstr "" -#: order/serializers.py:560 part/models.py:1033 +#: order/serializers.py:645 part/models.py:1094 part/serializers.py:387 msgid "Internal Part Number" msgstr "Внутренний код детали" -#: order/serializers.py:568 +#: order/serializers.py:653 msgid "Internal Part Name" msgstr "" -#: order/serializers.py:584 +#: order/serializers.py:669 msgid "Supplier part must be specified" msgstr "" -#: order/serializers.py:587 +#: order/serializers.py:672 msgid "Purchase order must be specified" msgstr "" -#: order/serializers.py:595 +#: order/serializers.py:680 msgid "Supplier must match purchase order" msgstr "" -#: order/serializers.py:596 +#: order/serializers.py:681 msgid "Purchase order must match supplier" msgstr "" -#: order/serializers.py:639 order/serializers.py:1446 +#: order/serializers.py:724 order/serializers.py:1572 msgid "Line Item" msgstr "Позиция" -#: order/serializers.py:645 +#: order/serializers.py:730 msgid "Line item does not match purchase order" msgstr "" -#: order/serializers.py:655 order/serializers.py:779 order/serializers.py:1782 +#: order/serializers.py:740 order/serializers.py:881 order/serializers.py:1934 msgid "Select destination location for received items" msgstr "Выберите место назначения для полученных элементов" -#: order/serializers.py:671 templates/js/translated/purchase_order.js:1130 +#: order/serializers.py:756 templates/js/translated/purchase_order.js:1113 #: templates/js/translated/stock.js:1200 msgid "Enter batch code for incoming stock items" msgstr "Введите код партии для поступающих складских позиций" -#: order/serializers.py:679 templates/js/translated/purchase_order.js:1155 +#: order/serializers.py:764 templates/js/translated/purchase_order.js:1138 msgid "Enter serial numbers for incoming stock items" msgstr "Введите серийные номера для входящих складских позиций" -#: order/serializers.py:691 +#: order/serializers.py:776 msgid "Override packaging information for incoming stock items" msgstr "" -#: order/serializers.py:699 +#: order/serializers.py:784 msgid "Additional note for incoming stock items" msgstr "" -#: order/serializers.py:706 templates/js/translated/barcode.js:52 +#: order/serializers.py:791 templates/js/translated/barcode.js:52 msgid "Barcode" msgstr "Штрих-код" -#: order/serializers.py:707 +#: order/serializers.py:792 msgid "Scanned barcode" msgstr "Сканированный штрих-код" -#: order/serializers.py:723 +#: order/serializers.py:808 msgid "Barcode is already in use" msgstr "" -#: order/serializers.py:747 +#: order/serializers.py:831 msgid "An integer quantity must be provided for trackable parts" msgstr "Для отслеживаемых деталей должно быть указано целочисленное количество" -#: order/serializers.py:795 order/serializers.py:1798 +#: order/serializers.py:898 order/serializers.py:1950 msgid "Line items must be provided" msgstr "" -#: order/serializers.py:811 +#: order/serializers.py:914 msgid "Destination location must be specified" msgstr "" -#: order/serializers.py:822 +#: order/serializers.py:925 msgid "Supplied barcode values must be unique" msgstr "" -#: order/serializers.py:1187 +#: order/serializers.py:1221 msgid "Sale price currency" msgstr "Валюта цены продажи" -#: order/serializers.py:1248 +#: order/serializers.py:1260 +msgid "Allocated Items" +msgstr "" + +#: order/serializers.py:1374 msgid "No shipment details provided" msgstr "" -#: order/serializers.py:1309 order/serializers.py:1455 +#: order/serializers.py:1435 order/serializers.py:1581 msgid "Line item is not associated with this order" msgstr "" -#: order/serializers.py:1328 +#: order/serializers.py:1454 msgid "Quantity must be positive" msgstr "" -#: order/serializers.py:1465 +#: order/serializers.py:1591 msgid "Enter serial numbers to allocate" msgstr "Введите серийные номера для резервирования" -#: order/serializers.py:1487 order/serializers.py:1593 +#: order/serializers.py:1613 order/serializers.py:1733 msgid "Shipment has already been shipped" msgstr "" -#: order/serializers.py:1490 order/serializers.py:1596 +#: order/serializers.py:1616 order/serializers.py:1736 msgid "Shipment is not associated with this order" msgstr "" -#: order/serializers.py:1537 +#: order/serializers.py:1671 msgid "No match found for the following serial numbers" msgstr "" -#: order/serializers.py:1544 -msgid "The following serial numbers are already allocated" +#: order/serializers.py:1678 +msgid "The following serial numbers are unavailable" msgstr "" -#: order/serializers.py:1752 +#: order/serializers.py:1904 msgid "Return order line item" msgstr "" -#: order/serializers.py:1758 +#: order/serializers.py:1910 msgid "Line item does not match return order" msgstr "" -#: order/serializers.py:1761 +#: order/serializers.py:1913 msgid "Line item has already been received" msgstr "" -#: order/serializers.py:1790 +#: order/serializers.py:1942 msgid "Items can only be received against orders which are in progress" msgstr "" -#: order/serializers.py:1873 +#: order/serializers.py:2025 msgid "Line price currency" msgstr "" -#: order/status_codes.py:17 order/status_codes.py:52 stock/status_codes.py:16 +#: order/status_codes.py:17 order/status_codes.py:54 stock/status_codes.py:16 msgid "Lost" msgstr "Потерян" -#: order/status_codes.py:18 order/status_codes.py:53 stock/status_codes.py:22 +#: order/status_codes.py:18 order/status_codes.py:55 stock/status_codes.py:24 msgid "Returned" msgstr "Возвращено" -#: order/status_codes.py:45 order/status_codes.py:77 +#: order/status_codes.py:47 order/status_codes.py:79 msgid "In Progress" msgstr "Выполняется" -#: order/status_codes.py:101 +#: order/status_codes.py:105 msgid "Return" msgstr "Возврат" -#: order/status_codes.py:104 +#: order/status_codes.py:108 msgid "Repair" msgstr "Починить" -#: order/status_codes.py:107 +#: order/status_codes.py:111 msgid "Replace" msgstr "Заменить" -#: order/status_codes.py:110 +#: order/status_codes.py:114 msgid "Refund" msgstr "Возврат" -#: order/status_codes.py:113 +#: order/status_codes.py:117 msgid "Reject" msgstr "Отклонить" -#: order/tasks.py:25 +#: order/tasks.py:30 msgid "Overdue Purchase Order" msgstr "Просроченные заказы на закупку" -#: order/tasks.py:30 +#: order/tasks.py:35 #, python-brace-format msgid "Purchase order {po} is now overdue" msgstr "" -#: order/tasks.py:75 +#: order/tasks.py:80 msgid "Overdue Sales Order" msgstr "Просроченные заказы на продажу" -#: order/tasks.py:80 +#: order/tasks.py:85 #, python-brace-format msgid "Sales order {so} is now overdue" msgstr "" -#: order/templates/order/order_base.html:51 +#: order/templates/order/order_base.html:52 msgid "Print purchase order report" msgstr "" -#: order/templates/order/order_base.html:53 -#: order/templates/order/return_order_base.html:62 -#: order/templates/order/sales_order_base.html:62 +#: order/templates/order/order_base.html:54 +#: order/templates/order/return_order_base.html:63 +#: order/templates/order/sales_order_base.html:63 msgid "Export order to file" msgstr "" -#: order/templates/order/order_base.html:59 -#: order/templates/order/return_order_base.html:72 -#: order/templates/order/sales_order_base.html:71 +#: order/templates/order/order_base.html:60 +#: order/templates/order/return_order_base.html:73 +#: order/templates/order/sales_order_base.html:72 msgid "Order actions" msgstr "Действия с заказом" -#: order/templates/order/order_base.html:64 -#: order/templates/order/return_order_base.html:76 -#: order/templates/order/sales_order_base.html:75 +#: order/templates/order/order_base.html:65 +#: order/templates/order/return_order_base.html:77 +#: order/templates/order/sales_order_base.html:76 msgid "Edit order" msgstr "Редактировать заказ" -#: order/templates/order/order_base.html:68 +#: order/templates/order/order_base.html:69 msgid "Duplicate order" msgstr "Дублировать заказ" -#: order/templates/order/order_base.html:73 -#: order/templates/order/return_order_base.html:78 -#: order/templates/order/sales_order_base.html:77 +#: order/templates/order/order_base.html:74 +#: order/templates/order/return_order_base.html:79 +#: order/templates/order/sales_order_base.html:78 msgid "Hold order" msgstr "" -#: order/templates/order/order_base.html:78 -#: order/templates/order/return_order_base.html:81 -#: order/templates/order/sales_order_base.html:80 +#: order/templates/order/order_base.html:79 +#: order/templates/order/return_order_base.html:82 +#: order/templates/order/sales_order_base.html:81 msgid "Cancel order" msgstr "Отменить заказ" -#: order/templates/order/order_base.html:84 #: order/templates/order/order_base.html:85 -#: order/templates/order/return_order_base.html:85 +#: order/templates/order/order_base.html:86 #: order/templates/order/return_order_base.html:86 -#: order/templates/order/sales_order_base.html:86 +#: order/templates/order/return_order_base.html:87 #: order/templates/order/sales_order_base.html:87 +#: order/templates/order/sales_order_base.html:88 msgid "Issue Order" msgstr "Оформить Заказа" -#: order/templates/order/order_base.html:88 -#: order/templates/order/return_order_base.html:89 +#: order/templates/order/order_base.html:89 +#: order/templates/order/return_order_base.html:90 msgid "Mark order as complete" msgstr "" -#: order/templates/order/order_base.html:89 -#: order/templates/order/return_order_base.html:90 -#: order/templates/order/sales_order_base.html:100 +#: order/templates/order/order_base.html:90 +#: order/templates/order/return_order_base.html:91 +#: order/templates/order/sales_order_base.html:101 msgid "Complete Order" msgstr "Завершить заказ" -#: order/templates/order/order_base.html:96 +#: order/templates/order/order_base.html:97 msgid "Supplier part thumbnail" msgstr "" -#: order/templates/order/order_base.html:116 -#: order/templates/order/return_order_base.html:109 -#: order/templates/order/sales_order_base.html:118 +#: order/templates/order/order_base.html:117 +#: order/templates/order/return_order_base.html:110 +#: order/templates/order/sales_order_base.html:119 msgid "Order Description" msgstr "Описание заказа" -#: order/templates/order/order_base.html:146 -msgid "No suppplier information available" -msgstr "" - -#: order/templates/order/order_base.html:159 -#: order/templates/order/sales_order_base.html:164 +#: order/templates/order/order_base.html:168 +#: order/templates/order/sales_order_base.html:165 msgid "Completed Line Items" msgstr "Завершенные позиции" -#: order/templates/order/order_base.html:165 -#: order/templates/order/sales_order_base.html:170 -#: order/templates/order/sales_order_base.html:180 +#: order/templates/order/order_base.html:174 +#: order/templates/order/sales_order_base.html:171 +#: order/templates/order/sales_order_base.html:181 msgid "Incomplete" msgstr "Не завершен" -#: order/templates/order/order_base.html:184 -#: order/templates/order/return_order_base.html:160 +#: order/templates/order/order_base.html:193 +#: order/templates/order/return_order_base.html:161 #: report/templates/report/inventree_build_order_report.html:121 msgid "Issued" msgstr "Создан" -#: order/templates/order/order_base.html:229 +#: order/templates/order/order_base.html:238 msgid "Total cost" msgstr "Общая стоимость" -#: order/templates/order/order_base.html:233 -#: order/templates/order/return_order_base.html:202 -#: order/templates/order/sales_order_base.html:246 +#: order/templates/order/order_base.html:242 +#: order/templates/order/return_order_base.html:203 +#: order/templates/order/sales_order_base.html:247 msgid "Total cost could not be calculated" msgstr "" -#: order/templates/order/order_base.html:335 +#: order/templates/order/order_base.html:344 msgid "Purchase Order QR Code" msgstr "" -#: order/templates/order/order_base.html:347 +#: order/templates/order/order_base.html:356 msgid "Link Barcode to Purchase Order" msgstr "" @@ -6184,12 +6392,12 @@ msgstr "Дублировать выбранное" #: part/templates/part/import_wizard/ajax_match_references.html:42 #: part/templates/part/import_wizard/match_fields.html:71 #: part/templates/part/import_wizard/match_references.html:49 -#: templates/js/translated/bom.js:133 templates/js/translated/build.js:530 -#: templates/js/translated/build.js:1802 -#: templates/js/translated/purchase_order.js:696 -#: templates/js/translated/purchase_order.js:1288 +#: templates/js/translated/bom.js:133 templates/js/translated/build.js:533 +#: templates/js/translated/build.js:1805 +#: templates/js/translated/purchase_order.js:679 +#: templates/js/translated/purchase_order.js:1271 #: templates/js/translated/return_order.js:505 -#: templates/js/translated/sales_order.js:1145 +#: templates/js/translated/sales_order.js:1111 #: templates/js/translated/stock.js:720 templates/js/translated/stock.js:889 #: templates/patterns/wizard/match_fields.html:70 msgid "Remove row" @@ -6242,7 +6450,7 @@ msgstr "Позиции заказа на закупку" #: order/templates/order/purchase_order_detail.html:27 #: order/templates/order/return_order_detail.html:24 #: order/templates/order/sales_order_detail.html:24 -#: templates/js/translated/purchase_order.js:414 +#: templates/js/translated/purchase_order.js:397 #: templates/js/translated/return_order.js:458 #: templates/js/translated/sales_order.js:237 msgid "Add Line Item" @@ -6277,45 +6485,45 @@ msgstr "Полученные Запасы" msgid "Order Notes" msgstr "Записи Заказа" -#: order/templates/order/return_order_base.html:18 -#: order/templates/order/sales_order_base.html:18 +#: order/templates/order/return_order_base.html:19 +#: order/templates/order/sales_order_base.html:19 msgid "Customer logo thumbnail" msgstr "" -#: order/templates/order/return_order_base.html:60 +#: order/templates/order/return_order_base.html:61 msgid "Print return order report" msgstr "" -#: order/templates/order/return_order_base.html:64 -#: order/templates/order/sales_order_base.html:64 +#: order/templates/order/return_order_base.html:65 +#: order/templates/order/sales_order_base.html:65 msgid "Print packing list" msgstr "" -#: order/templates/order/return_order_base.html:141 -#: order/templates/order/sales_order_base.html:158 +#: order/templates/order/return_order_base.html:142 +#: order/templates/order/sales_order_base.html:159 #: templates/js/translated/return_order.js:308 -#: templates/js/translated/sales_order.js:833 +#: templates/js/translated/sales_order.js:792 msgid "Customer Reference" msgstr "" -#: order/templates/order/return_order_base.html:198 -#: order/templates/order/sales_order_base.html:242 +#: order/templates/order/return_order_base.html:199 +#: order/templates/order/sales_order_base.html:243 #: part/templates/part/part_pricing.html:32 #: part/templates/part/part_pricing.html:58 #: part/templates/part/part_pricing.html:99 #: part/templates/part/part_pricing.html:114 #: templates/js/translated/part.js:1079 -#: templates/js/translated/purchase_order.js:1822 +#: templates/js/translated/purchase_order.js:1806 #: templates/js/translated/return_order.js:380 -#: templates/js/translated/sales_order.js:891 +#: templates/js/translated/sales_order.js:850 msgid "Total Cost" msgstr "Общая Стоимость" -#: order/templates/order/return_order_base.html:273 +#: order/templates/order/return_order_base.html:274 msgid "Return Order QR Code" msgstr "" -#: order/templates/order/return_order_base.html:285 +#: order/templates/order/return_order_base.html:286 msgid "Link Barcode to Return Order" msgstr "" @@ -6323,40 +6531,40 @@ msgstr "" msgid "Order Details" msgstr "Сведения о заказе" -#: order/templates/order/sales_order_base.html:60 +#: order/templates/order/sales_order_base.html:61 msgid "Print sales order report" msgstr "" -#: order/templates/order/sales_order_base.html:91 #: order/templates/order/sales_order_base.html:92 +#: order/templates/order/sales_order_base.html:93 msgid "Ship Items" msgstr "Отправить" -#: order/templates/order/sales_order_base.html:95 #: order/templates/order/sales_order_base.html:96 +#: order/templates/order/sales_order_base.html:97 msgid "Mark As Shipped" msgstr "" -#: order/templates/order/sales_order_base.html:99 -#: templates/js/translated/sales_order.js:536 +#: order/templates/order/sales_order_base.html:100 +#: templates/js/translated/sales_order.js:495 msgid "Complete Sales Order" msgstr "" -#: order/templates/order/sales_order_base.html:138 +#: order/templates/order/sales_order_base.html:139 msgid "This Sales Order has not been fully allocated" msgstr "" -#: order/templates/order/sales_order_base.html:176 +#: order/templates/order/sales_order_base.html:177 #: order/templates/order/sales_order_detail.html:99 #: order/templates/order/so_sidebar.html:11 msgid "Completed Shipments" msgstr "" -#: order/templates/order/sales_order_base.html:339 +#: order/templates/order/sales_order_base.html:340 msgid "Sales Order QR Code" msgstr "" -#: order/templates/order/sales_order_base.html:351 +#: order/templates/order/sales_order_base.html:352 msgid "Link Barcode to Sales Order" msgstr "" @@ -6370,7 +6578,7 @@ msgid "Pending Shipments" msgstr "Ожидающие отправления" #: order/templates/order/sales_order_detail.html:71 -#: templates/js/translated/bom.js:1277 templates/js/translated/build.js:1063 +#: templates/js/translated/bom.js:1277 templates/js/translated/build.js:1066 #: templates/js/translated/filters.js:299 msgid "Actions" msgstr "Действия" @@ -6383,39 +6591,40 @@ msgstr "Новое Отправление" msgid "Match Supplier Parts" msgstr "" -#: order/views.py:406 +#: order/views.py:407 msgid "Sales order not found" msgstr "Заказ на продажу не найден" -#: order/views.py:412 +#: order/views.py:413 msgid "Price not found" msgstr "Цена не найдена" -#: order/views.py:415 +#: order/views.py:416 #, python-brace-format msgid "Updated {part} unit-price to {price}" msgstr "" -#: order/views.py:421 +#: order/views.py:422 #, python-brace-format msgid "Updated {part} unit-price to {price} and quantity to {qty}" msgstr "" -#: part/admin.py:48 part/models.py:1032 part/templates/part/part_base.html:269 +#: part/admin.py:48 part/models.py:1093 part/serializers.py:939 +#: part/templates/part/part_base.html:277 #: report/templates/report/inventree_stock_location_report.html:103 #: templates/js/translated/part.js:1233 templates/js/translated/part.js:2347 -#: templates/js/translated/stock.js:2121 +#: templates/js/translated/stock.js:2122 msgid "IPN" msgstr "" -#: part/admin.py:50 part/models.py:1041 part/templates/part/part_base.html:286 +#: part/admin.py:50 part/models.py:1102 part/templates/part/part_base.html:294 #: report/models.py:161 templates/js/translated/part.js:1238 #: templates/js/translated/part.js:2353 msgid "Revision" msgstr "Ревизия" -#: part/admin.py:53 part/admin.py:319 part/models.py:1014 -#: part/templates/part/category.html:91 part/templates/part/part_base.html:307 +#: part/admin.py:53 part/admin.py:319 part/models.py:1075 +#: part/templates/part/category.html:91 part/templates/part/part_base.html:315 msgid "Keywords" msgstr "Ключевые слова" @@ -6427,7 +6636,7 @@ msgstr "Изображение Детали" msgid "Category ID" msgstr "Код категории" -#: part/admin.py:67 part/admin.py:304 part/serializers.py:880 +#: part/admin.py:67 part/admin.py:304 part/serializers.py:924 #: part/stocktake.py:222 msgid "Category Name" msgstr "Название категории" @@ -6440,11 +6649,11 @@ msgstr "" msgid "Default Supplier ID" msgstr "" -#: part/admin.py:81 part/models.py:1000 part/templates/part/part_base.html:177 +#: part/admin.py:81 part/models.py:1061 part/templates/part/part_base.html:178 msgid "Variant Of" msgstr "Разновидность" -#: part/admin.py:84 part/models.py:1138 part/templates/part/part_base.html:203 +#: part/admin.py:84 part/models.py:1199 part/templates/part/part_base.html:204 msgid "Minimum Stock" msgstr "Минимальный запас" @@ -6452,23 +6661,23 @@ msgstr "Минимальный запас" msgid "Used In" msgstr "Используется в" -#: part/admin.py:150 part/serializers.py:897 -#: part/templates/part/part_base.html:241 stock/admin.py:235 +#: part/admin.py:150 part/serializers.py:949 +#: part/templates/part/part_base.html:249 stock/admin.py:236 #: templates/js/translated/part.js:717 templates/js/translated/part.js:2159 msgid "Building" msgstr "Производится" -#: part/admin.py:155 part/models.py:3202 part/models.py:3216 +#: part/admin.py:155 part/models.py:3253 part/models.py:3267 #: templates/js/translated/part.js:976 msgid "Minimum Cost" msgstr "Минимальная Стоимость" -#: part/admin.py:158 part/models.py:3209 part/models.py:3223 +#: part/admin.py:158 part/models.py:3260 part/models.py:3274 #: templates/js/translated/part.js:986 msgid "Maximum Cost" msgstr "Максимальная Стоимость" -#: part/admin.py:308 part/admin.py:387 stock/admin.py:57 stock/admin.py:215 +#: part/admin.py:308 part/admin.py:387 stock/admin.py:57 stock/admin.py:216 msgid "Parent ID" msgstr "ID родителя" @@ -6481,8 +6690,8 @@ msgstr "Имя родителя" msgid "Category Path" msgstr "Путь к категории" -#: part/admin.py:325 part/models.py:425 part/serializers.py:130 -#: part/serializers.py:290 part/serializers.py:415 +#: part/admin.py:325 part/models.py:420 part/serializers.py:130 +#: part/serializers.py:323 part/serializers.py:459 #: part/templates/part/cat_link.html:3 part/templates/part/category.html:20 #: part/templates/part/category.html:138 part/templates/part/category.html:158 #: part/templates/part/category_sidebar.html:9 @@ -6509,15 +6718,15 @@ msgstr "Родительский IPN" msgid "Part Revision" msgstr "" -#: part/admin.py:418 part/serializers.py:1346 +#: part/admin.py:418 part/serializers.py:1400 #: templates/js/translated/pricing.js:358 -#: templates/js/translated/pricing.js:1024 +#: templates/js/translated/pricing.js:1022 msgid "Minimum Price" msgstr "Минимальная цена" -#: part/admin.py:423 part/serializers.py:1361 +#: part/admin.py:423 part/serializers.py:1415 #: templates/js/translated/pricing.js:353 -#: templates/js/translated/pricing.js:1032 +#: templates/js/translated/pricing.js:1030 msgid "Maximum Price" msgstr "Максимальная цена" @@ -6545,94 +6754,98 @@ msgstr "" msgid "Filter by top-level categories" msgstr "" +#: part/api.py:156 stock/api.py:343 +msgid "Cascade" +msgstr "" + #: part/api.py:158 msgid "Include sub-categories in filtered results" msgstr "" -#: part/api.py:179 templates/js/translated/part.js:311 +#: part/api.py:178 templates/js/translated/part.js:311 msgid "Parent" msgstr "" -#: part/api.py:181 +#: part/api.py:180 msgid "Filter by parent category" msgstr "" -#: part/api.py:214 +#: part/api.py:213 msgid "Exclude Tree" msgstr "" -#: part/api.py:216 +#: part/api.py:215 msgid "Exclude sub-categories under the specified category" msgstr "" -#: part/api.py:441 +#: part/api.py:440 msgid "Has Results" msgstr "" -#: part/api.py:608 +#: part/api.py:604 msgid "Incoming Purchase Order" msgstr "" -#: part/api.py:626 +#: part/api.py:618 msgid "Outgoing Sales Order" msgstr "" -#: part/api.py:642 +#: part/api.py:630 msgid "Stock produced by Build Order" msgstr "Остатки произведенные заказом на производство" -#: part/api.py:726 +#: part/api.py:712 msgid "Stock required for Build Order" msgstr "Остатки требуемые для заказов на производство" -#: part/api.py:874 +#: part/api.py:858 msgid "Validate entire Bill of Materials" msgstr "" -#: part/api.py:880 +#: part/api.py:864 msgid "This option must be selected" msgstr "Необходимо выбрать эту опцию" -#: part/api.py:916 +#: part/api.py:900 msgid "Is Revision" msgstr "" -#: part/api.py:926 +#: part/api.py:910 msgid "Has Revisions" msgstr "" -#: part/api.py:1117 +#: part/api.py:1101 msgid "BOM Valid" msgstr "" -#: part/api.py:1523 part/models.py:1024 part/models.py:3489 part/models.py:4046 -#: part/serializers.py:430 part/serializers.py:1202 -#: part/templates/part/part_base.html:260 stock/api.py:781 +#: part/api.py:1509 part/models.py:1085 part/models.py:3540 part/models.py:4104 +#: part/serializers.py:474 part/serializers.py:1255 +#: part/templates/part/part_base.html:268 stock/api.py:781 #: templates/InvenTree/settings/settings_staff_js.html:300 #: templates/js/translated/notification.js:60 #: templates/js/translated/part.js:2383 msgid "Category" msgstr "Категория" -#: part/api.py:1761 +#: part/api.py:1750 msgid "Assembly part is testable" msgstr "" -#: part/api.py:1770 +#: part/api.py:1759 msgid "Component part is testable" msgstr "" -#: part/api.py:1821 +#: part/api.py:1810 msgid "Uses" msgstr "" -#: part/bom.py:178 part/models.py:107 part/models.py:1077 -#: part/templates/part/category.html:113 part/templates/part/part_base.html:376 +#: part/bom.py:183 part/models.py:109 part/models.py:1138 +#: part/templates/part/category.html:113 part/templates/part/part_base.html:384 #: templates/js/translated/part.js:2397 msgid "Default Location" msgstr "Место хранения по умолчанию" -#: part/bom.py:179 part/serializers.py:905 +#: part/bom.py:184 part/serializers.py:957 #: templates/email/low_stock_notification.html:16 msgid "Total Stock" msgstr "Общий запас" @@ -6641,789 +6854,789 @@ msgstr "Общий запас" msgid "Input quantity for price calculation" msgstr "" -#: part/models.py:88 part/models.py:4047 part/templates/part/category.html:16 +#: part/models.py:90 part/models.py:4105 part/templates/part/category.html:16 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "Категория детали" -#: part/models.py:89 part/templates/part/category.html:133 +#: part/models.py:91 part/templates/part/category.html:133 #: templates/InvenTree/search.html:97 templates/js/translated/search.js:158 #: users/models.py:202 msgid "Part Categories" msgstr "Категория детали" -#: part/models.py:108 +#: part/models.py:110 msgid "Default location for parts in this category" msgstr "Место хранения по умолчанию для деталей этой категории" -#: part/models.py:113 stock/models.py:187 templates/js/translated/part.js:2828 -#: templates/js/translated/stock.js:2856 +#: part/models.py:115 stock/models.py:193 templates/js/translated/part.js:2828 +#: templates/js/translated/stock.js:2857 #: templates/js/translated/table_filters.js:246 #: templates/js/translated/table_filters.js:290 msgid "Structural" msgstr "Структура" -#: part/models.py:115 +#: part/models.py:117 msgid "Parts may not be directly assigned to a structural category, but may be assigned to child categories." msgstr "Детали не могут быть непосредственно отнесены к структурной категории, но могут быть отнесены к дочерним категориям." -#: part/models.py:124 +#: part/models.py:126 msgid "Default keywords" msgstr "Ключевые слова по умолчанию" -#: part/models.py:125 +#: part/models.py:127 msgid "Default keywords for parts in this category" msgstr "Ключевые слова по умолчанию для деталей этой категории" -#: part/models.py:131 stock/models.py:90 stock/models.py:169 +#: part/models.py:133 stock/models.py:96 stock/models.py:175 #: templates/InvenTree/settings/settings_staff_js.html:445 msgid "Icon" msgstr "Иконка" -#: part/models.py:132 part/serializers.py:143 part/serializers.py:161 -#: stock/models.py:170 +#: part/models.py:134 part/serializers.py:143 part/serializers.py:161 +#: stock/models.py:176 msgid "Icon (optional)" msgstr "Иконка (необязательно)" -#: part/models.py:178 +#: part/models.py:180 msgid "You cannot make this part category structural because some parts are already assigned to it!" msgstr "" -#: part/models.py:519 +#: part/models.py:514 msgid "Cannot delete this part as it is locked" msgstr "" -#: part/models.py:522 +#: part/models.py:517 msgid "Cannot delete this part as it is still active" msgstr "" -#: part/models.py:527 +#: part/models.py:522 msgid "Cannot delete this part as it is used in an assembly" msgstr "" -#: part/models.py:565 +#: part/models.py:560 msgid "Invalid choice for parent part" msgstr "" -#: part/models.py:613 part/models.py:620 +#: part/models.py:608 part/models.py:615 #, python-brace-format msgid "Part '{self}' cannot be used in BOM for '{parent}' (recursive)" msgstr "" -#: part/models.py:632 +#: part/models.py:627 #, python-brace-format msgid "Part '{parent}' is used in BOM for '{self}' (recursive)" msgstr "" -#: part/models.py:695 +#: part/models.py:694 #, python-brace-format msgid "IPN must match regex pattern {pattern}" msgstr "" -#: part/models.py:703 +#: part/models.py:702 msgid "Part cannot be a revision of itself" msgstr "" -#: part/models.py:710 +#: part/models.py:709 msgid "Cannot make a revision of a part which is already a revision" msgstr "" -#: part/models.py:717 +#: part/models.py:716 msgid "Revision code must be specified" msgstr "" -#: part/models.py:724 +#: part/models.py:723 msgid "Revisions are only allowed for assembly parts" msgstr "" -#: part/models.py:731 +#: part/models.py:730 msgid "Cannot make a revision of a template part" msgstr "" -#: part/models.py:737 +#: part/models.py:736 msgid "Parent part must point to the same template" msgstr "" -#: part/models.py:816 +#: part/models.py:832 msgid "Stock item with this serial number already exists" msgstr "Складская позиция с этим серийным номером уже существует" -#: part/models.py:917 +#: part/models.py:976 msgid "Duplicate IPN not allowed in part settings" msgstr "" -#: part/models.py:926 +#: part/models.py:988 msgid "Duplicate part revision already exists." msgstr "" -#: part/models.py:936 +#: part/models.py:997 msgid "Part with this Name, IPN and Revision already exists." msgstr "Часть с таким именем, IPN и ревизией уже существует." -#: part/models.py:951 +#: part/models.py:1012 msgid "Parts cannot be assigned to structural part categories!" msgstr "" -#: part/models.py:983 part/models.py:4102 +#: part/models.py:1044 part/models.py:4160 msgid "Part name" msgstr "Наименование детали" -#: part/models.py:988 +#: part/models.py:1049 msgid "Is Template" msgstr "Шаблон" -#: part/models.py:989 +#: part/models.py:1050 msgid "Is this part a template part?" msgstr "Эта деталь является шаблоном?" -#: part/models.py:999 +#: part/models.py:1060 msgid "Is this part a variant of another part?" msgstr "Эта деталь является разновидностью другой детали?" -#: part/models.py:1007 +#: part/models.py:1068 msgid "Part description (optional)" msgstr "Описание детали (необязательно)" -#: part/models.py:1015 +#: part/models.py:1076 msgid "Part keywords to improve visibility in search results" msgstr "Ключевые слова для улучшения видимости в результатах поиска" -#: part/models.py:1025 +#: part/models.py:1086 msgid "Part category" msgstr "Категория" -#: part/models.py:1040 +#: part/models.py:1101 msgid "Part revision or version number" msgstr "Ревизия или серийный номер детали" -#: part/models.py:1050 +#: part/models.py:1111 msgid "Is this part a revision of another part?" msgstr "" -#: part/models.py:1051 part/templates/part/part_base.html:277 +#: part/models.py:1112 part/templates/part/part_base.html:285 msgid "Revision Of" msgstr "" -#: part/models.py:1075 +#: part/models.py:1136 msgid "Where is this item normally stored?" msgstr "Где обычно хранится эта деталь?" -#: part/models.py:1121 part/templates/part/part_base.html:385 +#: part/models.py:1182 part/templates/part/part_base.html:393 msgid "Default Supplier" msgstr "Поставщик по умолчанию" -#: part/models.py:1122 +#: part/models.py:1183 msgid "Default supplier part" msgstr "" -#: part/models.py:1129 +#: part/models.py:1190 msgid "Default Expiry" msgstr "Срок действия по умолчанию" -#: part/models.py:1130 +#: part/models.py:1191 msgid "Expiry time (in days) for stock items of this part" msgstr "Срок годности (в днях) для складских позиций этой детали" -#: part/models.py:1139 +#: part/models.py:1200 msgid "Minimum allowed stock level" msgstr "Минимально допустимый складской запас" -#: part/models.py:1148 +#: part/models.py:1209 msgid "Units of measure for this part" msgstr "Единицы измерения этой детали" -#: part/models.py:1155 +#: part/models.py:1216 msgid "Can this part be built from other parts?" msgstr "Может ли эта деталь быть создана из других деталей?" -#: part/models.py:1161 +#: part/models.py:1222 msgid "Can this part be used to build other parts?" msgstr "Может ли эта деталь использоваться для создания других деталей?" -#: part/models.py:1167 +#: part/models.py:1228 msgid "Does this part have tracking for unique items?" msgstr "Является ли каждый экземпляр этой детали уникальным, обладающим серийным номером?" -#: part/models.py:1173 +#: part/models.py:1234 msgid "Can this part have test results recorded against it?" msgstr "" -#: part/models.py:1179 +#: part/models.py:1240 msgid "Can this part be purchased from external suppliers?" msgstr "Может ли эта деталь быть закуплена у внешних поставщиков?" -#: part/models.py:1185 +#: part/models.py:1246 msgid "Can this part be sold to customers?" msgstr "Может ли эта деталь быть продана покупателям?" -#: part/models.py:1189 +#: part/models.py:1250 msgid "Is this part active?" msgstr "Эта деталь активна?" -#: part/models.py:1194 templates/js/translated/part.js:821 +#: part/models.py:1255 templates/js/translated/part.js:821 #: templates/js/translated/table_filters.js:724 msgid "Locked" msgstr "" -#: part/models.py:1195 +#: part/models.py:1256 msgid "Locked parts cannot be edited" msgstr "" -#: part/models.py:1201 +#: part/models.py:1262 msgid "Is this a virtual part, such as a software product or license?" msgstr "Эта деталь виртуальная, как программный продукт или лицензия?" -#: part/models.py:1207 +#: part/models.py:1268 msgid "BOM checksum" msgstr "Контрольная сумма BOM" -#: part/models.py:1208 +#: part/models.py:1269 msgid "Stored BOM checksum" msgstr "" -#: part/models.py:1216 +#: part/models.py:1277 msgid "BOM checked by" msgstr "BOM проверил" -#: part/models.py:1221 +#: part/models.py:1282 msgid "BOM checked date" msgstr "Дата проверки BOM" -#: part/models.py:1237 +#: part/models.py:1298 msgid "Creation User" msgstr "Создатель" -#: part/models.py:1247 +#: part/models.py:1308 msgid "Owner responsible for this part" msgstr "" -#: part/models.py:1252 part/templates/part/part_base.html:348 -#: stock/templates/stock/item_base.html:451 +#: part/models.py:1313 part/templates/part/part_base.html:356 +#: stock/templates/stock/item_base.html:448 #: templates/js/translated/part.js:2490 msgid "Last Stocktake" msgstr "Последняя инвентаризация" -#: part/models.py:2125 +#: part/models.py:2185 msgid "Sell multiple" msgstr "Продать несколько" -#: part/models.py:3116 +#: part/models.py:3167 msgid "Currency used to cache pricing calculations" msgstr "" -#: part/models.py:3132 +#: part/models.py:3183 msgid "Minimum BOM Cost" msgstr "Минимальная Стоимость BOM" -#: part/models.py:3133 +#: part/models.py:3184 msgid "Minimum cost of component parts" msgstr "" -#: part/models.py:3139 +#: part/models.py:3190 msgid "Maximum BOM Cost" msgstr "Максимальная Стоимость BOM" -#: part/models.py:3140 +#: part/models.py:3191 msgid "Maximum cost of component parts" msgstr "" -#: part/models.py:3146 +#: part/models.py:3197 msgid "Minimum Purchase Cost" msgstr "" -#: part/models.py:3147 +#: part/models.py:3198 msgid "Minimum historical purchase cost" msgstr "" -#: part/models.py:3153 +#: part/models.py:3204 msgid "Maximum Purchase Cost" msgstr "" -#: part/models.py:3154 +#: part/models.py:3205 msgid "Maximum historical purchase cost" msgstr "" -#: part/models.py:3160 +#: part/models.py:3211 msgid "Minimum Internal Price" msgstr "" -#: part/models.py:3161 +#: part/models.py:3212 msgid "Minimum cost based on internal price breaks" msgstr "" -#: part/models.py:3167 +#: part/models.py:3218 msgid "Maximum Internal Price" msgstr "" -#: part/models.py:3168 +#: part/models.py:3219 msgid "Maximum cost based on internal price breaks" msgstr "" -#: part/models.py:3174 +#: part/models.py:3225 msgid "Minimum Supplier Price" msgstr "" -#: part/models.py:3175 +#: part/models.py:3226 msgid "Minimum price of part from external suppliers" msgstr "" -#: part/models.py:3181 +#: part/models.py:3232 msgid "Maximum Supplier Price" msgstr "" -#: part/models.py:3182 +#: part/models.py:3233 msgid "Maximum price of part from external suppliers" msgstr "" -#: part/models.py:3188 +#: part/models.py:3239 msgid "Minimum Variant Cost" msgstr "" -#: part/models.py:3189 +#: part/models.py:3240 msgid "Calculated minimum cost of variant parts" msgstr "" -#: part/models.py:3195 +#: part/models.py:3246 msgid "Maximum Variant Cost" msgstr "" -#: part/models.py:3196 +#: part/models.py:3247 msgid "Calculated maximum cost of variant parts" msgstr "" -#: part/models.py:3203 +#: part/models.py:3254 msgid "Override minimum cost" msgstr "" -#: part/models.py:3210 +#: part/models.py:3261 msgid "Override maximum cost" msgstr "" -#: part/models.py:3217 +#: part/models.py:3268 msgid "Calculated overall minimum cost" msgstr "" -#: part/models.py:3224 +#: part/models.py:3275 msgid "Calculated overall maximum cost" msgstr "" -#: part/models.py:3230 +#: part/models.py:3281 msgid "Minimum Sale Price" msgstr "" -#: part/models.py:3231 +#: part/models.py:3282 msgid "Minimum sale price based on price breaks" msgstr "" -#: part/models.py:3237 +#: part/models.py:3288 msgid "Maximum Sale Price" msgstr "" -#: part/models.py:3238 +#: part/models.py:3289 msgid "Maximum sale price based on price breaks" msgstr "" -#: part/models.py:3244 +#: part/models.py:3295 msgid "Minimum Sale Cost" msgstr "" -#: part/models.py:3245 +#: part/models.py:3296 msgid "Minimum historical sale price" msgstr "" -#: part/models.py:3251 +#: part/models.py:3302 msgid "Maximum Sale Cost" msgstr "" -#: part/models.py:3252 +#: part/models.py:3303 msgid "Maximum historical sale price" msgstr "" -#: part/models.py:3271 +#: part/models.py:3322 msgid "Part for stocktake" msgstr "" -#: part/models.py:3276 +#: part/models.py:3327 msgid "Item Count" msgstr "Количество Элементов" -#: part/models.py:3277 +#: part/models.py:3328 msgid "Number of individual stock entries at time of stocktake" msgstr "" -#: part/models.py:3285 +#: part/models.py:3336 msgid "Total available stock at time of stocktake" msgstr "" -#: part/models.py:3289 part/models.py:3372 +#: part/models.py:3340 part/models.py:3423 part/serializers.py:263 #: part/templates/part/part_scheduling.html:13 #: report/templates/report/inventree_test_report.html:106 #: templates/InvenTree/settings/plugin_settings.html:37 #: templates/InvenTree/settings/settings_staff_js.html:543 -#: templates/js/translated/part.js:1092 templates/js/translated/pricing.js:826 -#: templates/js/translated/pricing.js:950 -#: templates/js/translated/purchase_order.js:1801 -#: templates/js/translated/stock.js:2905 +#: templates/js/translated/part.js:1092 templates/js/translated/pricing.js:824 +#: templates/js/translated/pricing.js:948 +#: templates/js/translated/purchase_order.js:1785 +#: templates/js/translated/stock.js:2906 msgid "Date" msgstr "Дата" -#: part/models.py:3290 +#: part/models.py:3341 msgid "Date stocktake was performed" msgstr "" -#: part/models.py:3298 +#: part/models.py:3349 msgid "Additional notes" msgstr "Дополнительные Записи" -#: part/models.py:3308 +#: part/models.py:3359 msgid "User who performed this stocktake" msgstr "" -#: part/models.py:3314 +#: part/models.py:3365 msgid "Minimum Stock Cost" msgstr "" -#: part/models.py:3315 +#: part/models.py:3366 msgid "Estimated minimum cost of stock on hand" msgstr "" -#: part/models.py:3321 +#: part/models.py:3372 msgid "Maximum Stock Cost" msgstr "" -#: part/models.py:3322 +#: part/models.py:3373 msgid "Estimated maximum cost of stock on hand" msgstr "" -#: part/models.py:3378 templates/InvenTree/settings/settings_staff_js.html:532 +#: part/models.py:3429 templates/InvenTree/settings/settings_staff_js.html:532 msgid "Report" msgstr "Отчет" -#: part/models.py:3379 +#: part/models.py:3430 msgid "Stocktake report file (generated internally)" msgstr "" -#: part/models.py:3384 templates/InvenTree/settings/settings_staff_js.html:539 +#: part/models.py:3435 templates/InvenTree/settings/settings_staff_js.html:539 msgid "Part Count" msgstr "Количество Деталей" -#: part/models.py:3385 +#: part/models.py:3436 msgid "Number of parts covered by stocktake" msgstr "" -#: part/models.py:3395 +#: part/models.py:3446 msgid "User who requested this stocktake report" msgstr "" -#: part/models.py:3405 +#: part/models.py:3456 msgid "Part Sale Price Break" msgstr "" -#: part/models.py:3517 +#: part/models.py:3568 msgid "Part Test Template" msgstr "" -#: part/models.py:3543 +#: part/models.py:3594 msgid "Invalid template name - must include at least one alphanumeric character" msgstr "" -#: part/models.py:3564 part/models.py:3733 +#: part/models.py:3615 part/models.py:3784 msgid "Choices must be unique" msgstr "" -#: part/models.py:3575 -msgid "Test templates can only be created for trackable parts" -msgstr "Шаблоны тестирования могут быть созданы только для отслеживаемых деталей" +#: part/models.py:3626 +msgid "Test templates can only be created for testable parts" +msgstr "" -#: part/models.py:3586 +#: part/models.py:3637 msgid "Test template with the same key already exists for part" msgstr "" -#: part/models.py:3603 templates/js/translated/part.js:2898 +#: part/models.py:3654 templates/js/translated/part.js:2898 msgid "Test Name" msgstr "Название теста" -#: part/models.py:3604 +#: part/models.py:3655 msgid "Enter a name for the test" msgstr "Введите имя для теста" -#: part/models.py:3610 +#: part/models.py:3661 msgid "Test Key" msgstr "" -#: part/models.py:3611 +#: part/models.py:3662 msgid "Simplified key for the test" msgstr "" -#: part/models.py:3618 +#: part/models.py:3669 msgid "Test Description" msgstr "Описание теста" -#: part/models.py:3619 +#: part/models.py:3670 msgid "Enter description for this test" msgstr "Введите описание для этого теста" -#: part/models.py:3623 report/models.py:208 +#: part/models.py:3674 report/models.py:216 #: templates/js/translated/part.js:2919 #: templates/js/translated/table_filters.js:502 msgid "Enabled" msgstr "Включено" -#: part/models.py:3623 +#: part/models.py:3674 msgid "Is this test enabled?" msgstr "" -#: part/models.py:3628 templates/js/translated/part.js:2927 +#: part/models.py:3679 templates/js/translated/part.js:2927 #: templates/js/translated/table_filters.js:498 msgid "Required" msgstr "Требуется" -#: part/models.py:3629 +#: part/models.py:3680 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:3634 templates/js/translated/part.js:2935 +#: part/models.py:3685 templates/js/translated/part.js:2935 msgid "Requires Value" msgstr "Требуется значение" -#: part/models.py:3635 +#: part/models.py:3686 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:3640 templates/js/translated/part.js:2942 +#: part/models.py:3691 templates/js/translated/part.js:2942 msgid "Requires Attachment" msgstr "" -#: part/models.py:3642 +#: part/models.py:3693 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:3648 part/models.py:3792 templates/js/translated/part.js:1643 +#: part/models.py:3699 part/models.py:3843 templates/js/translated/part.js:1643 msgid "Choices" msgstr "Варианты" -#: part/models.py:3649 +#: part/models.py:3700 msgid "Valid choices for this test (comma-separated)" msgstr "" -#: part/models.py:3681 +#: part/models.py:3732 msgid "Part Parameter Template" msgstr "" -#: part/models.py:3708 +#: part/models.py:3759 msgid "Checkbox parameters cannot have units" msgstr "" -#: part/models.py:3713 +#: part/models.py:3764 msgid "Checkbox parameters cannot have choices" msgstr "" -#: part/models.py:3750 +#: part/models.py:3801 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:3765 +#: part/models.py:3816 msgid "Parameter Name" msgstr "Название параметра" -#: part/models.py:3772 +#: part/models.py:3823 msgid "Physical units for this parameter" msgstr "" -#: part/models.py:3780 +#: part/models.py:3831 msgid "Parameter description" msgstr "Описание параметра" -#: part/models.py:3786 templates/js/translated/part.js:1634 +#: part/models.py:3837 templates/js/translated/part.js:1634 #: templates/js/translated/table_filters.js:837 msgid "Checkbox" msgstr "Чекбокс" -#: part/models.py:3787 +#: part/models.py:3838 msgid "Is this parameter a checkbox?" msgstr "" -#: part/models.py:3793 +#: part/models.py:3844 msgid "Valid choices for this parameter (comma-separated)" msgstr "" -#: part/models.py:3827 +#: part/models.py:3881 msgid "Part Parameter" msgstr "" -#: part/models.py:3853 +#: part/models.py:3907 msgid "Parameter cannot be modified - part is locked" msgstr "" -#: part/models.py:3889 +#: part/models.py:3945 msgid "Invalid choice for parameter value" msgstr "" -#: part/models.py:3938 +#: part/models.py:3996 msgid "Parent Part" msgstr "Родительская деталь" -#: part/models.py:3946 part/models.py:4054 part/models.py:4055 +#: part/models.py:4004 part/models.py:4112 part/models.py:4113 #: templates/InvenTree/settings/settings_staff_js.html:295 msgid "Parameter Template" msgstr "Шаблон параметра" -#: part/models.py:3952 +#: part/models.py:4010 msgid "Parameter Value" msgstr "Значение Параметра" -#: part/models.py:4002 +#: part/models.py:4060 msgid "Part Category Parameter Template" msgstr "" -#: part/models.py:4061 templates/InvenTree/settings/settings_staff_js.html:304 +#: part/models.py:4119 templates/InvenTree/settings/settings_staff_js.html:304 msgid "Default Value" msgstr "Значение по умолчанию" -#: part/models.py:4062 +#: part/models.py:4120 msgid "Default Parameter Value" msgstr "" -#: part/models.py:4100 +#: part/models.py:4158 msgid "Part ID or part name" msgstr "Код или наименование детали" -#: part/models.py:4101 +#: part/models.py:4159 msgid "Unique part ID value" msgstr "" -#: part/models.py:4103 +#: part/models.py:4161 msgid "Part IPN value" msgstr "Значение IPN" -#: part/models.py:4104 +#: part/models.py:4162 msgid "Level" msgstr "Уровень" -#: part/models.py:4104 +#: part/models.py:4162 msgid "BOM level" msgstr "Уровень BOM" -#: part/models.py:4215 +#: part/models.py:4272 msgid "BOM item cannot be modified - assembly is locked" msgstr "" -#: part/models.py:4222 +#: part/models.py:4279 msgid "BOM item cannot be modified - variant assembly is locked" msgstr "" -#: part/models.py:4232 +#: part/models.py:4289 msgid "Select parent part" msgstr "Выберите родительскую деталь" -#: part/models.py:4242 +#: part/models.py:4299 msgid "Sub part" msgstr "Суб-деталь" -#: part/models.py:4243 +#: part/models.py:4300 msgid "Select part to be used in BOM" msgstr "Выбрать деталь для использования в BOM" -#: part/models.py:4254 +#: part/models.py:4311 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:4260 +#: part/models.py:4317 msgid "This BOM item is optional" msgstr "" -#: part/models.py:4266 +#: part/models.py:4323 msgid "This BOM item is consumable (it is not tracked in build orders)" msgstr "Эта позиция - расходник. (она не отслеживается в заказах на производство)" -#: part/models.py:4273 part/templates/part/upload_bom.html:55 +#: part/models.py:4330 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "Перерасход" -#: part/models.py:4274 +#: part/models.py:4331 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "Расчетное количество перерасходов производства (абсолютное или процентное)" -#: part/models.py:4281 +#: part/models.py:4338 msgid "BOM item reference" msgstr "" -#: part/models.py:4289 +#: part/models.py:4346 msgid "BOM item notes" msgstr "Записи о позиции BOM" -#: part/models.py:4295 +#: part/models.py:4352 msgid "Checksum" msgstr "Контрольная сумма" -#: part/models.py:4296 +#: part/models.py:4353 msgid "BOM line checksum" msgstr "" -#: part/models.py:4301 templates/js/translated/table_filters.js:181 +#: part/models.py:4358 templates/js/translated/table_filters.js:181 msgid "Validated" msgstr "Проверен" -#: part/models.py:4302 +#: part/models.py:4359 msgid "This BOM item has been validated" msgstr "" -#: part/models.py:4307 part/templates/part/upload_bom.html:57 +#: part/models.py:4364 part/templates/part/upload_bom.html:57 #: templates/js/translated/bom.js:1054 #: templates/js/translated/table_filters.js:185 #: templates/js/translated/table_filters.js:218 msgid "Gets inherited" msgstr "" -#: part/models.py:4308 +#: part/models.py:4365 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:4314 +#: part/models.py:4371 msgid "Stock items for variant parts can be used for this BOM item" msgstr "Складские позиции для разновидностей деталей могут быть использованы для этой позиции BOM" -#: part/models.py:4399 stock/models.py:685 +#: part/models.py:4456 stock/models.py:762 msgid "Quantity must be integer value for trackable parts" msgstr "Для отслеживаемых деталей количество должно быть целым числом" -#: part/models.py:4409 part/models.py:4411 +#: part/models.py:4466 part/models.py:4468 msgid "Sub part must be specified" msgstr "" -#: part/models.py:4551 +#: part/models.py:4613 msgid "BOM Item Substitute" msgstr "" -#: part/models.py:4572 +#: part/models.py:4634 msgid "Substitute part cannot be the same as the master part" msgstr "" -#: part/models.py:4585 +#: part/models.py:4647 msgid "Parent BOM item" msgstr "Позиция BOM-родителя" -#: part/models.py:4593 +#: part/models.py:4655 msgid "Substitute part" msgstr "Замена детали" -#: part/models.py:4609 +#: part/models.py:4671 msgid "Part 1" msgstr "Часть 1" -#: part/models.py:4617 +#: part/models.py:4679 msgid "Part 2" msgstr "Часть 2" -#: part/models.py:4618 +#: part/models.py:4680 msgid "Select Related Part" msgstr "Выберите связанную часть" -#: part/models.py:4637 +#: part/models.py:4699 msgid "Part relationship cannot be created between a part and itself" msgstr "" -#: part/models.py:4642 +#: part/models.py:4704 msgid "Duplicate relationship already exists" msgstr "" @@ -7449,340 +7662,352 @@ msgstr "Результаты" msgid "Number of results recorded against this template" msgstr "" -#: part/serializers.py:225 part/serializers.py:243 stock/serializers.py:616 +#: part/serializers.py:225 part/serializers.py:243 stock/serializers.py:643 msgid "Purchase currency of this stock item" msgstr "Валюта закупки складской позиции" -#: part/serializers.py:291 +#: part/serializers.py:268 +msgid "Speculative Quantity" +msgstr "" + +#: part/serializers.py:277 +msgid "Model ID" +msgstr "" + +#: part/serializers.py:324 msgid "Number of parts using this template" msgstr "" -#: part/serializers.py:421 +#: part/serializers.py:465 msgid "No parts selected" msgstr "Не выбрана ни одна деталь" -#: part/serializers.py:431 +#: part/serializers.py:475 msgid "Select category" msgstr "Выберите категорию" -#: part/serializers.py:466 +#: part/serializers.py:510 msgid "Original Part" msgstr "Оригинальная деталь" -#: part/serializers.py:467 +#: part/serializers.py:511 msgid "Select original part to duplicate" msgstr "" -#: part/serializers.py:472 +#: part/serializers.py:516 msgid "Copy Image" msgstr "Копировать Изображение" -#: part/serializers.py:473 +#: part/serializers.py:517 msgid "Copy image from original part" msgstr "" -#: part/serializers.py:479 part/templates/part/detail.html:293 +#: part/serializers.py:523 part/templates/part/detail.html:293 msgid "Copy BOM" msgstr "Скопировать BOM" -#: part/serializers.py:480 +#: part/serializers.py:524 msgid "Copy bill of materials from original part" msgstr "" -#: part/serializers.py:486 +#: part/serializers.py:530 msgid "Copy Parameters" msgstr "Скопировать параметры" -#: part/serializers.py:487 +#: part/serializers.py:531 msgid "Copy parameter data from original part" msgstr "" -#: part/serializers.py:493 +#: part/serializers.py:537 msgid "Copy Notes" msgstr "Копировать Записи" -#: part/serializers.py:494 +#: part/serializers.py:538 msgid "Copy notes from original part" msgstr "Скопировать записи из оригинальной детали" -#: part/serializers.py:512 +#: part/serializers.py:556 msgid "Initial Stock Quantity" msgstr "" -#: part/serializers.py:514 +#: part/serializers.py:558 msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added." msgstr "" -#: part/serializers.py:521 +#: part/serializers.py:565 msgid "Initial Stock Location" msgstr "" -#: part/serializers.py:522 +#: part/serializers.py:566 msgid "Specify initial stock location for this Part" msgstr "" -#: part/serializers.py:539 +#: part/serializers.py:583 msgid "Select supplier (or leave blank to skip)" msgstr "Выберите поставщика (или оставьте поле пустым, чтобы пропустить)" -#: part/serializers.py:555 +#: part/serializers.py:599 msgid "Select manufacturer (or leave blank to skip)" msgstr "Выберите поставщика (или оставьте поле пустым, чтобы пропустить)" -#: part/serializers.py:565 +#: part/serializers.py:609 msgid "Manufacturer part number" msgstr "Код производителя" -#: part/serializers.py:572 +#: part/serializers.py:616 msgid "Selected company is not a valid supplier" msgstr "" -#: part/serializers.py:581 +#: part/serializers.py:625 msgid "Selected company is not a valid manufacturer" msgstr "" -#: part/serializers.py:592 +#: part/serializers.py:636 msgid "Manufacturer part matching this MPN already exists" msgstr "" -#: part/serializers.py:599 +#: part/serializers.py:643 msgid "Supplier part matching this SKU already exists" msgstr "" -#: part/serializers.py:903 +#: part/serializers.py:955 msgid "Revisions" msgstr "" -#: part/serializers.py:908 +#: part/serializers.py:960 msgid "Unallocated Stock" msgstr "" -#: part/serializers.py:911 +#: part/serializers.py:963 msgid "Variant Stock" msgstr "" -#: part/serializers.py:941 part/templates/part/copy_part.html:9 +#: part/serializers.py:993 part/templates/part/copy_part.html:9 #: templates/js/translated/part.js:474 msgid "Duplicate Part" msgstr "Дублировать деталь" -#: part/serializers.py:942 +#: part/serializers.py:994 msgid "Copy initial data from another Part" msgstr "" -#: part/serializers.py:948 templates/js/translated/part.js:103 +#: part/serializers.py:1000 templates/js/translated/part.js:103 msgid "Initial Stock" msgstr "Начальный запас" -#: part/serializers.py:949 +#: part/serializers.py:1001 msgid "Create Part with initial stock quantity" msgstr "" -#: part/serializers.py:955 +#: part/serializers.py:1007 msgid "Supplier Information" msgstr "" -#: part/serializers.py:956 +#: part/serializers.py:1008 msgid "Add initial supplier information for this part" msgstr "" -#: part/serializers.py:964 +#: part/serializers.py:1016 msgid "Copy Category Parameters" msgstr "Копировать параметры категории" -#: part/serializers.py:965 +#: part/serializers.py:1017 msgid "Copy parameter templates from selected part category" msgstr "Копировать шаблоны параметров из выбранной категории деталей" -#: part/serializers.py:970 +#: part/serializers.py:1022 msgid "Existing Image" msgstr "Существующее изображение" -#: part/serializers.py:971 +#: part/serializers.py:1023 msgid "Filename of an existing part image" msgstr "" -#: part/serializers.py:988 +#: part/serializers.py:1040 msgid "Image file does not exist" msgstr "" -#: part/serializers.py:1194 +#: part/serializers.py:1247 msgid "Limit stocktake report to a particular part, and any variant parts" msgstr "" -#: part/serializers.py:1204 +#: part/serializers.py:1257 msgid "Limit stocktake report to a particular part category, and any child categories" msgstr "" -#: part/serializers.py:1214 +#: part/serializers.py:1267 msgid "Limit stocktake report to a particular stock location, and any child locations" msgstr "" -#: part/serializers.py:1220 +#: part/serializers.py:1273 msgid "Exclude External Stock" msgstr "" -#: part/serializers.py:1221 +#: part/serializers.py:1274 msgid "Exclude stock items in external locations" msgstr "Исключить складские позиции в внешних местах хранения" -#: part/serializers.py:1226 +#: part/serializers.py:1279 msgid "Generate Report" msgstr "Создать отчет" -#: part/serializers.py:1227 +#: part/serializers.py:1280 msgid "Generate report file containing calculated stocktake data" msgstr "" -#: part/serializers.py:1232 +#: part/serializers.py:1285 msgid "Update Parts" msgstr "Обновить детали" -#: part/serializers.py:1233 +#: part/serializers.py:1286 msgid "Update specified parts with calculated stocktake data" msgstr "" -#: part/serializers.py:1241 +#: part/serializers.py:1294 msgid "Stocktake functionality is not enabled" msgstr "" -#: part/serializers.py:1347 +#: part/serializers.py:1299 +msgid "Background worker check failed" +msgstr "Проверка фонового работника не удалась" + +#: part/serializers.py:1401 msgid "Override calculated value for minimum price" msgstr "" -#: part/serializers.py:1354 +#: part/serializers.py:1408 msgid "Minimum price currency" msgstr "" -#: part/serializers.py:1362 +#: part/serializers.py:1416 msgid "Override calculated value for maximum price" msgstr "" -#: part/serializers.py:1369 +#: part/serializers.py:1423 msgid "Maximum price currency" msgstr "" -#: part/serializers.py:1398 +#: part/serializers.py:1452 msgid "Update" msgstr "Обновить" -#: part/serializers.py:1399 +#: part/serializers.py:1453 msgid "Update pricing for this part" msgstr "" -#: part/serializers.py:1422 +#: part/serializers.py:1476 #, python-brace-format msgid "Could not convert from provided currencies to {default_currency}" msgstr "" -#: part/serializers.py:1429 +#: part/serializers.py:1483 msgid "Minimum price must not be greater than maximum price" msgstr "" -#: part/serializers.py:1432 +#: part/serializers.py:1486 msgid "Maximum price must not be less than minimum price" msgstr "" -#: part/serializers.py:1576 +#: part/serializers.py:1634 msgid "Select the parent assembly" msgstr "" -#: part/serializers.py:1585 +#: part/serializers.py:1643 msgid "Component Name" msgstr "" -#: part/serializers.py:1588 +#: part/serializers.py:1646 msgid "Component IPN" msgstr "" -#: part/serializers.py:1591 +#: part/serializers.py:1649 msgid "Component Description" msgstr "" -#: part/serializers.py:1597 +#: part/serializers.py:1655 msgid "Select the component part" msgstr "" -#: part/serializers.py:1606 part/templates/part/part_base.html:235 +#: part/serializers.py:1664 part/templates/part/part_base.html:243 #: templates/js/translated/bom.js:1219 msgid "Can Build" msgstr "Можно произвести" -#: part/serializers.py:1837 +#: part/serializers.py:1899 msgid "Select part to copy BOM from" msgstr "" -#: part/serializers.py:1845 +#: part/serializers.py:1907 msgid "Remove Existing Data" msgstr "" -#: part/serializers.py:1846 +#: part/serializers.py:1908 msgid "Remove existing BOM items before copying" msgstr "" -#: part/serializers.py:1851 +#: part/serializers.py:1913 msgid "Include Inherited" msgstr "" -#: part/serializers.py:1852 +#: part/serializers.py:1914 msgid "Include BOM items which are inherited from templated parts" msgstr "" -#: part/serializers.py:1857 +#: part/serializers.py:1919 msgid "Skip Invalid Rows" msgstr "Пропустить некорректные строки" -#: part/serializers.py:1858 +#: part/serializers.py:1920 msgid "Enable this option to skip invalid rows" msgstr "" -#: part/serializers.py:1863 +#: part/serializers.py:1925 msgid "Copy Substitute Parts" msgstr "" -#: part/serializers.py:1864 +#: part/serializers.py:1926 msgid "Copy substitute parts when duplicate BOM items" msgstr "" -#: part/serializers.py:1901 +#: part/serializers.py:1963 msgid "Clear Existing BOM" msgstr "" -#: part/serializers.py:1902 +#: part/serializers.py:1964 msgid "Delete existing BOM items before uploading" msgstr "" -#: part/serializers.py:1934 +#: part/serializers.py:1996 msgid "No part column specified" msgstr "" -#: part/serializers.py:1978 +#: part/serializers.py:2040 msgid "Multiple matching parts found" msgstr "" -#: part/serializers.py:1981 +#: part/serializers.py:2043 msgid "No matching part found" msgstr "Подходящая деталь не найдена" -#: part/serializers.py:1984 +#: part/serializers.py:2045 msgid "Part is not designated as a component" msgstr "" -#: part/serializers.py:1993 +#: part/serializers.py:2054 msgid "Quantity not provided" msgstr "" -#: part/serializers.py:2001 +#: part/serializers.py:2062 msgid "Invalid quantity" msgstr "Некорректное количество" -#: part/serializers.py:2024 +#: part/serializers.py:2085 msgid "At least one BOM item is required" msgstr "" #: part/stocktake.py:224 templates/js/translated/part.js:1073 #: templates/js/translated/part.js:1828 templates/js/translated/part.js:1884 -#: templates/js/translated/purchase_order.js:2154 +#: templates/js/translated/purchase_order.js:2138 msgid "Total Quantity" msgstr "Общее количество" @@ -7932,9 +8157,9 @@ msgid "Add stocktake information" msgstr "" #: part/templates/part/detail.html:67 part/templates/part/part_sidebar.html:50 -#: stock/admin.py:255 templates/InvenTree/settings/part_stocktake.html:30 +#: stock/admin.py:256 templates/InvenTree/settings/part_stocktake.html:30 #: templates/InvenTree/settings/sidebar.html:53 -#: templates/js/translated/stock.js:2301 users/models.py:204 +#: templates/js/translated/stock.js:2302 users/models.py:204 msgid "Stocktake" msgstr "Инвентаризация" @@ -8093,142 +8318,146 @@ msgstr "Выбрать формат файла" msgid "Part List" msgstr "Список деталей" -#: part/templates/part/part_base.html:25 part/templates/part/part_base.html:29 +#: part/templates/part/part_base.html:26 part/templates/part/part_base.html:30 msgid "You are subscribed to notifications for this part" msgstr "Вы подписаны на уведомления для данной детали" -#: part/templates/part/part_base.html:33 +#: part/templates/part/part_base.html:34 msgid "Subscribe to notifications for this part" msgstr "Включить уведомления для данной детали" -#: part/templates/part/part_base.html:52 +#: part/templates/part/part_base.html:53 #: stock/templates/stock/item_base.html:62 -#: stock/templates/stock/location.html:71 templates/js/translated/label.js:136 +#: stock/templates/stock/location.html:72 templates/js/translated/label.js:136 msgid "Print Label" msgstr "Печать этикетки" -#: part/templates/part/part_base.html:58 +#: part/templates/part/part_base.html:59 msgid "Show pricing information" msgstr "" -#: part/templates/part/part_base.html:63 -#: stock/templates/stock/item_base.html:110 -#: stock/templates/stock/location.html:80 +#: part/templates/part/part_base.html:64 +#: stock/templates/stock/item_base.html:107 +#: stock/templates/stock/location.html:81 msgid "Stock actions" msgstr "Действия со складом" -#: part/templates/part/part_base.html:70 +#: part/templates/part/part_base.html:71 msgid "Count part stock" msgstr "Установить запасы детали" -#: part/templates/part/part_base.html:76 +#: part/templates/part/part_base.html:77 msgid "Transfer part stock" msgstr "Переместить запасы детали" -#: part/templates/part/part_base.html:91 templates/js/translated/part.js:2299 +#: part/templates/part/part_base.html:92 templates/js/translated/part.js:2299 msgid "Part actions" msgstr "Действия с деталью" -#: part/templates/part/part_base.html:94 +#: part/templates/part/part_base.html:95 msgid "Duplicate part" msgstr "Дублировать деталь" -#: part/templates/part/part_base.html:97 +#: part/templates/part/part_base.html:98 msgid "Edit part" msgstr "Редактировать деталь" -#: part/templates/part/part_base.html:100 +#: part/templates/part/part_base.html:101 msgid "Delete part" msgstr "Удалить деталь" -#: part/templates/part/part_base.html:119 +#: part/templates/part/part_base.html:120 msgid "Part is a template part (variants can be made from this part)" msgstr "Деталь является шаблоном (из неё можно создавать разновидности)" -#: part/templates/part/part_base.html:123 +#: part/templates/part/part_base.html:124 msgid "Part can be assembled from other parts" msgstr "Деталь может быть собрана из других деталей" -#: part/templates/part/part_base.html:127 +#: part/templates/part/part_base.html:128 msgid "Part can be used in assemblies" msgstr "Деталь может быть использована в производстве других деталей" -#: part/templates/part/part_base.html:131 +#: part/templates/part/part_base.html:132 msgid "Part stock is tracked by serial number" msgstr "" -#: part/templates/part/part_base.html:135 +#: part/templates/part/part_base.html:136 msgid "Part can be purchased from external suppliers" msgstr "" -#: part/templates/part/part_base.html:139 +#: part/templates/part/part_base.html:140 msgid "Part can be sold to customers" msgstr "Деталь может быть продана покупателям" -#: part/templates/part/part_base.html:145 +#: part/templates/part/part_base.html:146 msgid "Part is not active" msgstr "" -#: part/templates/part/part_base.html:153 +#: part/templates/part/part_base.html:154 msgid "Part is virtual (not a physical part)" msgstr "" -#: part/templates/part/part_base.html:163 -#: part/templates/part/part_base.html:690 +#: part/templates/part/part_base.html:164 +#: part/templates/part/part_base.html:698 msgid "Show Part Details" msgstr "Показать описание детали" #: part/templates/part/part_base.html:218 -#: stock/templates/stock/item_base.html:388 +msgid "Required for Orders" +msgstr "" + +#: part/templates/part/part_base.html:226 +#: stock/templates/stock/item_base.html:385 msgid "Allocated to Build Orders" msgstr "Зарезервировано заказами на производство" -#: part/templates/part/part_base.html:227 -#: stock/templates/stock/item_base.html:381 +#: part/templates/part/part_base.html:235 +#: stock/templates/stock/item_base.html:378 msgid "Allocated to Sales Orders" msgstr "" -#: part/templates/part/part_base.html:300 +#: part/templates/part/part_base.html:308 msgid "Minimum stock level" msgstr "Минимальный складской запас" -#: part/templates/part/part_base.html:331 templates/js/translated/bom.js:1071 +#: part/templates/part/part_base.html:339 templates/js/translated/bom.js:1071 #: templates/js/translated/part.js:1271 templates/js/translated/part.js:2463 #: templates/js/translated/pricing.js:391 -#: templates/js/translated/pricing.js:1054 +#: templates/js/translated/pricing.js:1052 msgid "Price Range" msgstr "Диапазон цен" -#: part/templates/part/part_base.html:361 +#: part/templates/part/part_base.html:369 msgid "Latest Serial Number" msgstr "Последний Серийный Номер" -#: part/templates/part/part_base.html:365 -#: stock/templates/stock/item_base.html:322 +#: part/templates/part/part_base.html:373 +#: stock/templates/stock/item_base.html:319 msgid "Search for serial number" msgstr "" -#: part/templates/part/part_base.html:453 +#: part/templates/part/part_base.html:461 msgid "Part QR Code" msgstr "QR-код детали" -#: part/templates/part/part_base.html:470 +#: part/templates/part/part_base.html:478 msgid "Link Barcode to Part" msgstr "" -#: part/templates/part/part_base.html:520 +#: part/templates/part/part_base.html:528 msgid "Calculate" msgstr "Рассчитать" -#: part/templates/part/part_base.html:537 +#: part/templates/part/part_base.html:545 msgid "Remove associated image from this part" msgstr "" -#: part/templates/part/part_base.html:588 +#: part/templates/part/part_base.html:596 msgid "No matching images found" msgstr "" -#: part/templates/part/part_base.html:684 +#: part/templates/part/part_base.html:692 msgid "Hide Part Details" msgstr "Скрыть описание детали" @@ -8282,13 +8511,13 @@ msgid "Variants" msgstr "Разновидности" #: part/templates/part/part_sidebar.html:14 -#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:21 +#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:22 #: stock/templates/stock/stock_app_base.html:10 #: templates/InvenTree/search.html:153 #: templates/InvenTree/settings/sidebar.html:51 #: templates/js/translated/part.js:1249 templates/js/translated/part.js:2152 #: templates/js/translated/part.js:2411 templates/js/translated/stock.js:1066 -#: templates/js/translated/stock.js:2155 templates/navbar.html:31 +#: templates/js/translated/stock.js:2156 templates/navbar.html:31 msgid "Stock" msgstr "Склад" @@ -8324,17 +8553,17 @@ msgstr "" #: part/templates/part/prices.html:18 #: templates/InvenTree/settings/settings_staff_js.html:80 #: templates/InvenTree/settings/user.html:24 -#: templates/js/translated/helpers.js:103 +#: templates/js/translated/helpers.js:104 #: templates/js/translated/pricing.js:628 templates/notes_buttons.html:3 #: templates/notes_buttons.html:4 msgid "Edit" msgstr "Редактировать" -#: part/templates/part/prices.html:28 stock/admin.py:251 -#: stock/templates/stock/item_base.html:446 -#: templates/js/translated/company.js:1703 -#: templates/js/translated/company.js:1713 -#: templates/js/translated/stock.js:2331 +#: part/templates/part/prices.html:28 stock/admin.py:252 +#: stock/templates/stock/item_base.html:443 +#: templates/js/translated/company.js:1704 +#: templates/js/translated/company.js:1714 +#: templates/js/translated/stock.js:2332 msgid "Last Updated" msgstr "Последнее обновление" @@ -8406,7 +8635,7 @@ msgid "Update Pricing" msgstr "Обновить цены" #: part/templates/part/stock_count.html:7 -#: templates/js/translated/model_renderers.js:228 +#: templates/js/translated/model_renderers.js:231 #: templates/js/translated/part.js:707 templates/js/translated/part.js:2147 #: templates/js/translated/part.js:2149 msgid "No Stock" @@ -8486,7 +8715,7 @@ msgstr "Изображение детали не найдено" msgid "Part Pricing" msgstr "Цена Детали" -#: plugin/api.py:172 +#: plugin/api.py:175 msgid "Plugin cannot be deleted as it is currently active" msgstr "" @@ -8498,78 +8727,85 @@ msgstr "Действие не указано" msgid "No matching action found" msgstr "Соответствующее действие не найдено" -#: plugin/base/barcodes/api.py:125 plugin/base/barcodes/api.py:371 -#: plugin/base/barcodes/api.py:546 +#: plugin/base/barcodes/api.py:203 msgid "No match found for barcode data" msgstr "Не найдено совпадений для данных штрих-кода" -#: plugin/base/barcodes/api.py:129 +#: plugin/base/barcodes/api.py:207 msgid "Match found for barcode data" msgstr "Найдено совпадение по штрих-коду" -#: plugin/base/barcodes/api.py:163 plugin/base/barcodes/serializers.py:45 +#: plugin/base/barcodes/api.py:245 plugin/base/barcodes/serializers.py:72 msgid "Model is not supported" msgstr "" -#: plugin/base/barcodes/api.py:168 +#: plugin/base/barcodes/api.py:250 msgid "Model instance not found" msgstr "" -#: plugin/base/barcodes/api.py:197 -#: templates/js/translated/purchase_order.js:1468 +#: plugin/base/barcodes/api.py:279 +#: templates/js/translated/purchase_order.js:1452 msgid "Barcode matches existing item" msgstr "" -#: plugin/base/barcodes/api.py:336 +#: plugin/base/barcodes/api.py:418 msgid "No matching part data found" msgstr "" -#: plugin/base/barcodes/api.py:353 +#: plugin/base/barcodes/api.py:434 msgid "No matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:357 +#: plugin/base/barcodes/api.py:437 msgid "Multiple matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:381 +#: plugin/base/barcodes/api.py:450 plugin/base/barcodes/api.py:664 +msgid "No matching plugin found for barcode data" +msgstr "" + +#: plugin/base/barcodes/api.py:460 msgid "Matched supplier part" msgstr "" -#: plugin/base/barcodes/api.py:430 +#: plugin/base/barcodes/api.py:525 msgid "Item has already been received" msgstr "" -#: plugin/base/barcodes/api.py:467 +#: plugin/base/barcodes/api.py:563 msgid "No match for supplier barcode" msgstr "" -#: plugin/base/barcodes/api.py:510 +#: plugin/base/barcodes/api.py:612 msgid "Multiple matching line items found" msgstr "" -#: plugin/base/barcodes/api.py:513 +#: plugin/base/barcodes/api.py:615 msgid "No matching line item found" msgstr "" -#: plugin/base/barcodes/api.py:551 plugin/base/barcodes/api.py:558 +#: plugin/base/barcodes/api.py:661 +msgid "No sales order provided" +msgstr "" + +#: plugin/base/barcodes/api.py:670 msgid "Barcode does not match an existing stock item" msgstr "Штрих-код не соответствует существующим складским позициям" -#: plugin/base/barcodes/api.py:569 +#: plugin/base/barcodes/api.py:686 msgid "Stock item does not match line item" msgstr "Складская позиция не соответствует позиции" -#: plugin/base/barcodes/api.py:593 templates/js/translated/build.js:2780 -#: templates/js/translated/sales_order.js:1953 +#: plugin/base/barcodes/api.py:716 templates/js/translated/build.js:2798 +#: templates/js/translated/sales_order.js:1934 msgid "Insufficient stock available" msgstr "" -#: plugin/base/barcodes/api.py:602 +#: plugin/base/barcodes/api.py:729 msgid "Stock item allocated to sales order" msgstr "Складская позиция зарезервирована заказом на продажу" -#: plugin/base/barcodes/api.py:606 +#: plugin/base/barcodes/api.py:732 msgid "Not enough information" msgstr "" @@ -8591,75 +8827,75 @@ msgstr "" msgid "Purchase order does not match supplier" msgstr "" -#: plugin/base/barcodes/mixins.py:465 +#: plugin/base/barcodes/mixins.py:467 msgid "Failed to find pending line item for supplier part" msgstr "" -#: plugin/base/barcodes/mixins.py:496 +#: plugin/base/barcodes/mixins.py:498 msgid "Further information required to receive line item" msgstr "" -#: plugin/base/barcodes/mixins.py:504 +#: plugin/base/barcodes/mixins.py:506 msgid "Received purchase order line item" msgstr "" -#: plugin/base/barcodes/serializers.py:21 +#: plugin/base/barcodes/serializers.py:48 msgid "Scanned barcode data" msgstr "" -#: plugin/base/barcodes/serializers.py:30 +#: plugin/base/barcodes/serializers.py:57 msgid "Model name to generate barcode for" msgstr "" -#: plugin/base/barcodes/serializers.py:35 +#: plugin/base/barcodes/serializers.py:62 msgid "Primary key of model object to generate barcode for" msgstr "" -#: plugin/base/barcodes/serializers.py:105 +#: plugin/base/barcodes/serializers.py:132 msgid "Purchase Order to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:111 +#: plugin/base/barcodes/serializers.py:138 msgid "Purchase order is not pending" msgstr "" -#: plugin/base/barcodes/serializers.py:129 +#: plugin/base/barcodes/serializers.py:156 msgid "PurchaseOrder to receive items against" msgstr "" -#: plugin/base/barcodes/serializers.py:135 +#: plugin/base/barcodes/serializers.py:162 msgid "Purchase order has not been placed" msgstr "" -#: plugin/base/barcodes/serializers.py:143 +#: plugin/base/barcodes/serializers.py:170 msgid "Location to receive items into" msgstr "" -#: plugin/base/barcodes/serializers.py:149 +#: plugin/base/barcodes/serializers.py:176 msgid "Cannot select a structural location" msgstr "" -#: plugin/base/barcodes/serializers.py:163 +#: plugin/base/barcodes/serializers.py:190 msgid "Sales Order to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:169 +#: plugin/base/barcodes/serializers.py:196 msgid "Sales order is not pending" msgstr "" -#: plugin/base/barcodes/serializers.py:177 +#: plugin/base/barcodes/serializers.py:204 msgid "Sales order line item to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:184 +#: plugin/base/barcodes/serializers.py:211 msgid "Sales order shipment to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:190 +#: plugin/base/barcodes/serializers.py:217 msgid "Shipment has already been delivered" msgstr "" -#: plugin/base/barcodes/serializers.py:195 +#: plugin/base/barcodes/serializers.py:222 msgid "Quantity to allocate" msgstr "" @@ -8679,6 +8915,42 @@ msgstr "" msgid "No items provided to print" msgstr "" +#: plugin/base/ui/serializers.py:30 +msgid "Plugin Name" +msgstr "" + +#: plugin/base/ui/serializers.py:34 +msgid "Feature Type" +msgstr "" + +#: plugin/base/ui/serializers.py:39 +msgid "Feature Label" +msgstr "" + +#: plugin/base/ui/serializers.py:44 +msgid "Feature Title" +msgstr "" + +#: plugin/base/ui/serializers.py:49 +msgid "Feature Description" +msgstr "" + +#: plugin/base/ui/serializers.py:54 +msgid "Feature Icon" +msgstr "" + +#: plugin/base/ui/serializers.py:58 +msgid "Feature Options" +msgstr "" + +#: plugin/base/ui/serializers.py:61 +msgid "Feature Context" +msgstr "" + +#: plugin/base/ui/serializers.py:64 +msgid "Feature Source (javascript)" +msgstr "" + #: plugin/builtin/barcodes/inventree_barcode.py:27 msgid "InvenTree Barcodes" msgstr "" @@ -8756,7 +9028,7 @@ msgstr "" msgid "URL that is used to send messages to a slack channel" msgstr "" -#: plugin/builtin/integration/core_notifications.py:164 +#: plugin/builtin/integration/core_notifications.py:166 msgid "Open link" msgstr "Открыть ссылку" @@ -8794,11 +9066,11 @@ msgstr "" msgid "Provides support for printing using a machine" msgstr "" -#: plugin/builtin/labels/inventree_machine.py:149 +#: plugin/builtin/labels/inventree_machine.py:151 msgid "last used" msgstr "" -#: plugin/builtin/labels/inventree_machine.py:166 +#: plugin/builtin/labels/inventree_machine.py:168 msgid "Options" msgstr "" @@ -8822,7 +9094,7 @@ msgstr "Граница" msgid "Print a border around each label" msgstr "" -#: plugin/builtin/labels/label_sheet.py:47 report/models.py:307 +#: plugin/builtin/labels/label_sheet.py:47 report/models.py:315 msgid "Landscape" msgstr "Альбомная" @@ -8894,19 +9166,19 @@ msgstr "" msgid "The Supplier which acts as 'TME'" msgstr "" -#: plugin/installer.py:194 plugin/installer.py:282 +#: plugin/installer.py:199 plugin/installer.py:282 msgid "Only staff users can administer plugins" msgstr "" -#: plugin/installer.py:197 +#: plugin/installer.py:202 msgid "Plugin installation is disabled" msgstr "" -#: plugin/installer.py:248 +#: plugin/installer.py:246 msgid "Installed plugin successfully" msgstr "" -#: plugin/installer.py:254 +#: plugin/installer.py:251 #, python-brace-format msgid "Installed plugin into {path}" msgstr "" @@ -8943,10 +9215,6 @@ msgstr "" msgid "Plugin Configurations" msgstr "" -#: plugin/models.py:43 users/models.py:100 -msgid "Key" -msgstr "Ключ" - #: plugin/models.py:44 msgid "Key of plugin" msgstr "Ключ плагина" @@ -8955,7 +9223,7 @@ msgstr "Ключ плагина" msgid "PluginName of the plugin" msgstr "" -#: plugin/models.py:59 plugin/serializers.py:90 +#: plugin/models.py:59 plugin/serializers.py:115 msgid "Package Name" msgstr "Имя Упаковки" @@ -8984,17 +9252,17 @@ msgstr "Встроенный плагин" msgid "Package Plugin" msgstr "" -#: plugin/models.py:220 report/models.py:474 +#: plugin/models.py:259 report/models.py:482 #: templates/InvenTree/settings/plugin_settings.html:9 #: templates/js/translated/plugin.js:51 msgid "Plugin" msgstr "Плагин" -#: plugin/models.py:267 +#: plugin/models.py:306 msgid "Method" msgstr "Метод" -#: plugin/plugin.py:270 +#: plugin/plugin.py:275 msgid "No author found" msgstr "Автор не найден" @@ -9053,81 +9321,157 @@ msgstr "" msgid "InvenTree Contributors" msgstr "" -#: plugin/serializers.py:81 +#: plugin/samples/integration/user_interface_sample.py:27 +msgid "Enable Part Panels" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:28 +msgid "Enable custom panels for Part views" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:33 +msgid "Enable Purchase Order Panels" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:34 +msgid "Enable custom panels for Purchase Order views" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:39 +msgid "Enable Broken Panels" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:40 +msgid "Enable broken panels for testing" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:45 +msgid "Enable Dynamic Panel" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:46 +msgid "Enable dynamic panels for testing" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:98 +msgid "Part Panel" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:131 +msgid "Broken Dashboard Item" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:133 +msgid "This is a broken dashboard item - it will not render!" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:139 +msgid "Sample Dashboard Item" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:141 +msgid "This is a sample dashboard item. It renders a simple string of HTML content." +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:147 +msgid "Context Dashboard Item" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:161 +msgid "Admin Dashboard Item" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:162 +msgid "This is an admin-only dashboard item." +msgstr "" + +#: plugin/serializers.py:82 +msgid "Source File" +msgstr "" + +#: plugin/serializers.py:83 +msgid "Path to the source file for admin integration" +msgstr "" + +#: plugin/serializers.py:90 +msgid "Optional context data for the admin integration" +msgstr "" + +#: plugin/serializers.py:106 msgid "Source URL" msgstr "Исходная ссылка" -#: plugin/serializers.py:83 +#: plugin/serializers.py:108 msgid "Source for the package - this can be a custom registry or a VCS path" msgstr "" -#: plugin/serializers.py:92 +#: plugin/serializers.py:117 msgid "Name for the Plugin Package - can also contain a version indicator" msgstr "" -#: plugin/serializers.py:99 +#: plugin/serializers.py:124 #: templates/InvenTree/settings/plugin_settings.html:42 #: templates/js/translated/plugin.js:86 msgid "Version" msgstr "Версия" -#: plugin/serializers.py:101 +#: plugin/serializers.py:126 msgid "Version specifier for the plugin. Leave blank for latest version." msgstr "" -#: plugin/serializers.py:106 +#: plugin/serializers.py:131 msgid "Confirm plugin installation" msgstr "" -#: plugin/serializers.py:108 +#: plugin/serializers.py:133 msgid "This will install this plugin now into the current instance. The instance will go into maintenance." msgstr "" -#: plugin/serializers.py:121 +#: plugin/serializers.py:146 msgid "Installation not confirmed" msgstr "" -#: plugin/serializers.py:123 +#: plugin/serializers.py:148 msgid "Either packagename of URL must be provided" msgstr "" -#: plugin/serializers.py:161 +#: plugin/serializers.py:184 msgid "Full reload" msgstr "Полная перезагрузка" -#: plugin/serializers.py:162 +#: plugin/serializers.py:185 msgid "Perform a full reload of the plugin registry" msgstr "" -#: plugin/serializers.py:168 +#: plugin/serializers.py:191 msgid "Force reload" msgstr "Принудительная перезагрузка" -#: plugin/serializers.py:170 +#: plugin/serializers.py:193 msgid "Force a reload of the plugin registry, even if it is already loaded" msgstr "" -#: plugin/serializers.py:177 +#: plugin/serializers.py:200 msgid "Collect plugins" msgstr "Собрать плагины" -#: plugin/serializers.py:178 +#: plugin/serializers.py:201 msgid "Collect plugins and add them to the registry" msgstr "" -#: plugin/serializers.py:205 +#: plugin/serializers.py:228 msgid "Activate Plugin" msgstr "Активировать плагин" -#: plugin/serializers.py:206 +#: plugin/serializers.py:229 msgid "Activate this plugin" msgstr "" -#: plugin/serializers.py:226 +#: plugin/serializers.py:249 msgid "Delete configuration" msgstr "" -#: plugin/serializers.py:227 +#: plugin/serializers.py:250 msgid "Delete the plugin configuration from the database" msgstr "" @@ -9135,11 +9479,11 @@ msgstr "" msgid "No valid objects provided to template" msgstr "" -#: report/api.py:103 report/models.py:438 report/serializers.py:98 -#: report/serializers.py:148 templates/js/translated/purchase_order.js:1817 +#: report/api.py:103 report/models.py:446 report/serializers.py:99 +#: report/serializers.py:149 templates/js/translated/purchase_order.js:1801 #: templates/js/translated/return_order.js:353 -#: templates/js/translated/sales_order.js:887 -#: templates/js/translated/sales_order.js:1047 +#: templates/js/translated/sales_order.js:846 +#: templates/js/translated/sales_order.js:1020 msgid "Items" msgstr "Элементы" @@ -9167,7 +9511,11 @@ msgstr "" msgid "Error printing label" msgstr "" -#: report/api.py:375 report/api.py:411 +#: report/api.py:358 +msgid "Report saved at time of printing" +msgstr "" + +#: report/api.py:384 report/api.py:420 #, python-brace-format msgid "Template file '{template}' is missing or does not exist" msgstr "" @@ -9204,135 +9552,143 @@ msgstr "Описание шаблона" msgid "Revision number (auto-increments)" msgstr "Номер ревизии (автоматически)" -#: report/models.py:202 +#: report/models.py:168 +msgid "Attach to Model on Print" +msgstr "" + +#: report/models.py:170 +msgid "Save report output as an attachment against linked model instance when printing" +msgstr "" + +#: report/models.py:210 msgid "Filename Pattern" msgstr "Шаблон имени файла" -#: report/models.py:203 +#: report/models.py:211 msgid "Pattern for generating filenames" msgstr "" -#: report/models.py:208 +#: report/models.py:216 msgid "Template is enabled" msgstr "" -#: report/models.py:214 +#: report/models.py:222 msgid "Target model type for template" msgstr "" -#: report/models.py:234 +#: report/models.py:242 msgid "Filters" msgstr "Фильтры" -#: report/models.py:235 +#: report/models.py:243 msgid "Template query filters (comma-separated list of key=value pairs)" msgstr "" -#: report/models.py:294 report/models.py:361 +#: report/models.py:302 report/models.py:369 msgid "Template file" msgstr "" -#: report/models.py:302 +#: report/models.py:310 msgid "Page size for PDF reports" msgstr "" -#: report/models.py:308 +#: report/models.py:316 msgid "Render report in landscape orientation" msgstr "" -#: report/models.py:367 +#: report/models.py:375 msgid "Width [mm]" msgstr "Ширина [мм]" -#: report/models.py:368 +#: report/models.py:376 msgid "Label width, specified in mm" msgstr "" -#: report/models.py:374 +#: report/models.py:382 msgid "Height [mm]" msgstr "Высота [мм]" -#: report/models.py:375 +#: report/models.py:383 msgid "Label height, specified in mm" msgstr "" -#: report/models.py:438 +#: report/models.py:446 msgid "Number of items to process" msgstr "" -#: report/models.py:444 +#: report/models.py:452 msgid "Report generation is complete" msgstr "" -#: report/models.py:448 templates/js/translated/build.js:2349 +#: report/models.py:456 templates/js/translated/build.js:2352 msgid "Progress" msgstr "Прогресс" -#: report/models.py:448 +#: report/models.py:456 msgid "Report generation progress" msgstr "" -#: report/models.py:456 +#: report/models.py:464 msgid "Report Template" msgstr "" -#: report/models.py:463 report/models.py:486 +#: report/models.py:471 report/models.py:494 msgid "Output File" msgstr "Выходной файл" -#: report/models.py:464 report/models.py:487 +#: report/models.py:472 report/models.py:495 msgid "Generated output file" msgstr "Сгенерированный выходной файл" -#: report/models.py:475 +#: report/models.py:483 msgid "Label output plugin" msgstr "" -#: report/models.py:479 +#: report/models.py:487 msgid "Label Template" msgstr "" -#: report/models.py:502 +#: report/models.py:510 msgid "Snippet" msgstr "Сниппет" -#: report/models.py:503 +#: report/models.py:511 msgid "Report snippet file" msgstr "" -#: report/models.py:510 +#: report/models.py:518 msgid "Snippet file description" msgstr "Описание файла сниппета" -#: report/models.py:528 +#: report/models.py:536 msgid "Asset" msgstr "Объект" -#: report/models.py:529 +#: report/models.py:537 msgid "Report asset file" msgstr "" -#: report/models.py:536 +#: report/models.py:544 msgid "Asset file description" msgstr "Описание медиафайла" -#: report/serializers.py:91 +#: report/serializers.py:92 msgid "Select report template" msgstr "" -#: report/serializers.py:99 report/serializers.py:149 +#: report/serializers.py:100 report/serializers.py:150 msgid "List of item primary keys to include in the report" msgstr "" -#: report/serializers.py:132 +#: report/serializers.py:133 msgid "Select label template" msgstr "" -#: report/serializers.py:140 +#: report/serializers.py:141 msgid "Printing Plugin" msgstr "" -#: report/serializers.py:141 +#: report/serializers.py:142 msgid "Select plugin to use for label printing" msgstr "" @@ -9365,9 +9721,9 @@ msgstr "" #: report/templates/report/inventree_sales_order_report.html:30 #: templates/js/translated/order.js:341 templates/js/translated/pricing.js:527 #: templates/js/translated/pricing.js:596 -#: templates/js/translated/pricing.js:834 -#: templates/js/translated/purchase_order.js:2185 -#: templates/js/translated/sales_order.js:1873 +#: templates/js/translated/pricing.js:832 +#: templates/js/translated/purchase_order.js:2169 +#: templates/js/translated/sales_order.js:1854 msgid "Unit Price" msgstr "Цена за Единицу" @@ -9379,13 +9735,18 @@ msgstr "Дополнительные элементы" #: report/templates/report/inventree_purchase_order_report.html:72 #: report/templates/report/inventree_sales_order_report.html:72 -#: templates/js/translated/purchase_order.js:2087 -#: templates/js/translated/sales_order.js:1842 +#: templates/js/translated/purchase_order.js:2071 +#: templates/js/translated/sales_order.js:1823 #: templates/test_statistics_table.html:8 #: templates/test_statistics_table.html:19 msgid "Total" msgstr "Всего" +#: report/templates/report/inventree_sales_order_shipment_report.html:23 +#: stock/templates/stock/stock_sidebar.html:8 +msgid "Allocations" +msgstr "Места хранения" + #: report/templates/report/inventree_stock_location_report.html:97 msgid "Stock location items" msgstr "" @@ -9403,15 +9764,13 @@ msgstr "Результаты тестирования" msgid "Test" msgstr "Тестирование" -#: report/templates/report/inventree_test_report.html:103 stock/models.py:2544 -msgid "Result" -msgstr "Результат" - #: report/templates/report/inventree_test_report.html:129 +#: templates/js/translated/stock.js:1448 msgid "Pass" msgstr "Прошел" #: report/templates/report/inventree_test_report.html:131 +#: templates/js/translated/stock.js:1450 msgid "Fail" msgstr "Провален" @@ -9420,17 +9779,18 @@ msgid "No result (required)" msgstr "" #: report/templates/report/inventree_test_report.html:140 +#: templates/js/translated/stock.js:1455 msgid "No result" msgstr "Нет результата" #: report/templates/report/inventree_test_report.html:153 -#: stock/serializers.py:599 stock/templates/stock/stock_sidebar.html:16 +#: stock/serializers.py:626 stock/templates/stock/stock_sidebar.html:16 msgid "Installed Items" msgstr "Установленные элементы" -#: report/templates/report/inventree_test_report.html:167 stock/admin.py:161 +#: report/templates/report/inventree_test_report.html:167 stock/admin.py:162 #: templates/js/translated/stock.js:706 templates/js/translated/stock.js:877 -#: templates/js/translated/stock.js:3194 +#: templates/js/translated/stock.js:3195 msgid "Serial" msgstr "Серийный номер" @@ -9450,67 +9810,67 @@ msgstr "" msgid "company_image tag requires a Company instance" msgstr "" -#: stock/admin.py:51 stock/admin.py:171 +#: stock/admin.py:51 stock/admin.py:172 msgid "Location ID" msgstr "Код места хранения" -#: stock/admin.py:63 stock/templates/stock/location.html:128 -#: stock/templates/stock/location.html:134 +#: stock/admin.py:63 stock/templates/stock/location.html:129 +#: stock/templates/stock/location.html:135 msgid "Location Path" msgstr "Путь места хранения" -#: stock/admin.py:148 +#: stock/admin.py:149 msgid "Stock Item ID" msgstr "Код складской позиции" -#: stock/admin.py:167 +#: stock/admin.py:168 msgid "Status Code" msgstr "Код статуса" -#: stock/admin.py:179 +#: stock/admin.py:180 msgid "Supplier Part ID" msgstr "Код детали поставщика" -#: stock/admin.py:184 +#: stock/admin.py:185 msgid "Supplier Part SKU" msgstr "" -#: stock/admin.py:189 +#: stock/admin.py:190 msgid "Supplier ID" msgstr "ID Поставщика" -#: stock/admin.py:200 +#: stock/admin.py:201 msgid "Customer ID" msgstr "ID Клиента" -#: stock/admin.py:205 stock/models.py:825 -#: stock/templates/stock/item_base.html:354 +#: stock/admin.py:206 stock/models.py:902 +#: stock/templates/stock/item_base.html:351 msgid "Installed In" msgstr "Установлено в" -#: stock/admin.py:210 +#: stock/admin.py:211 msgid "Build ID" msgstr "Код производства" -#: stock/admin.py:220 +#: stock/admin.py:221 msgid "Sales Order ID" msgstr "ID заказа на продажу" -#: stock/admin.py:225 +#: stock/admin.py:226 msgid "Purchase Order ID" msgstr "" -#: stock/admin.py:240 +#: stock/admin.py:241 msgid "Review Needed" msgstr "Требуется рецензия" -#: stock/admin.py:245 +#: stock/admin.py:246 msgid "Delete on Deplete" msgstr "" -#: stock/admin.py:260 stock/models.py:919 -#: stock/templates/stock/item_base.html:433 -#: templates/js/translated/stock.js:2315 users/models.py:124 +#: stock/admin.py:261 stock/models.py:996 +#: stock/templates/stock/item_base.html:430 +#: templates/js/translated/stock.js:2316 users/models.py:124 msgid "Expiry Date" msgstr "Истекает" @@ -9526,11 +9886,11 @@ msgstr "" msgid "Include sub-locations in filtered results" msgstr "" -#: stock/api.py:367 stock/serializers.py:1186 +#: stock/api.py:366 stock/serializers.py:1217 msgid "Parent Location" msgstr "" -#: stock/api.py:368 +#: stock/api.py:367 msgid "Filter by parent location" msgstr "" @@ -9550,8 +9910,8 @@ msgstr "" msgid "Expiry date after" msgstr "" -#: stock/api.py:840 stock/serializers.py:604 -#: stock/templates/stock/item_base.html:439 +#: stock/api.py:840 stock/serializers.py:631 +#: stock/templates/stock/item_base.html:436 #: templates/js/translated/table_filters.js:448 msgid "Stale" msgstr "Залежалый" @@ -9560,594 +9920,598 @@ msgstr "Залежалый" msgid "Quantity is required" msgstr "Необходимо указать количество" -#: stock/api.py:933 +#: stock/api.py:932 msgid "Valid part must be supplied" msgstr "" -#: stock/api.py:964 +#: stock/api.py:959 msgid "The given supplier part does not exist" msgstr "" -#: stock/api.py:974 +#: stock/api.py:969 msgid "The supplier part has a pack size defined, but flag use_pack_size not set" msgstr "" -#: stock/api.py:1005 +#: stock/api.py:996 msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "" -#: stock/models.py:64 +#: stock/models.py:70 msgid "Stock Location type" msgstr "" -#: stock/models.py:65 +#: stock/models.py:71 msgid "Stock Location types" msgstr "" -#: stock/models.py:91 +#: stock/models.py:97 msgid "Default icon for all locations that have no icon set (optional)" msgstr "" -#: stock/models.py:131 stock/models.py:807 -#: stock/templates/stock/location.html:17 +#: stock/models.py:137 stock/models.py:884 +#: stock/templates/stock/location.html:18 #: stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "Место хранения" -#: stock/models.py:132 stock/templates/stock/location.html:183 +#: stock/models.py:138 stock/templates/stock/location.html:184 #: templates/InvenTree/search.html:166 templates/js/translated/search.js:178 #: users/models.py:205 msgid "Stock Locations" msgstr "Места хранения" -#: stock/models.py:180 stock/models.py:968 -#: stock/templates/stock/item_base.html:247 +#: stock/models.py:186 stock/models.py:1045 +#: stock/templates/stock/item_base.html:244 msgid "Owner" msgstr "Владелец" -#: stock/models.py:181 stock/models.py:969 +#: stock/models.py:187 stock/models.py:1046 msgid "Select Owner" msgstr "Выберите владельца" -#: stock/models.py:189 +#: stock/models.py:195 msgid "Stock items may not be directly located into a structural stock locations, but may be located to child locations." msgstr "Складские позиции не могут находиться в структурных местах хранения, но могут находиться в дочерних местах хранения." -#: stock/models.py:196 templates/js/translated/stock.js:2865 +#: stock/models.py:202 templates/js/translated/stock.js:2866 #: templates/js/translated/table_filters.js:250 msgid "External" msgstr "Внешний" -#: stock/models.py:197 +#: stock/models.py:203 msgid "This is an external stock location" msgstr "" -#: stock/models.py:203 templates/js/translated/stock.js:2874 +#: stock/models.py:209 templates/js/translated/stock.js:2875 #: templates/js/translated/table_filters.js:253 msgid "Location type" msgstr "Тип Места Хранения" -#: stock/models.py:207 +#: stock/models.py:213 msgid "Stock location type of this location" msgstr "" -#: stock/models.py:279 +#: stock/models.py:285 msgid "You cannot make this stock location structural because some stock items are already located into it!" msgstr "Вы не можете сделать это место хранение структурным, потому, что некоторые складские позиции уже находятся в нем!" -#: stock/models.py:664 +#: stock/models.py:492 +msgid "Part must be specified" +msgstr "" + +#: stock/models.py:741 msgid "Stock items cannot be located into structural stock locations!" msgstr "Складские позиции не могут находиться в структурных местах хранения!" -#: stock/models.py:691 stock/serializers.py:480 +#: stock/models.py:768 stock/serializers.py:492 msgid "Stock item cannot be created for virtual parts" msgstr "Складская позиция не может быть создана для виртуальных деталей" -#: stock/models.py:708 +#: stock/models.py:785 #, python-brace-format msgid "Part type ('{self.supplier_part.part}') must be {self.part}" msgstr "" -#: stock/models.py:718 stock/models.py:731 +#: stock/models.py:795 stock/models.py:808 msgid "Quantity must be 1 for item with a serial number" msgstr "" -#: stock/models.py:721 +#: stock/models.py:798 msgid "Serial number cannot be set if quantity greater than 1" msgstr "" -#: stock/models.py:743 +#: stock/models.py:820 msgid "Item cannot belong to itself" msgstr "" -#: stock/models.py:748 +#: stock/models.py:825 msgid "Item must have a build reference if is_building=True" msgstr "Элемент должен иметь ссылку на производство, если is_building=True" -#: stock/models.py:761 +#: stock/models.py:838 msgid "Build reference does not point to the same part object" msgstr "Ссылка на производство не указывает на тот же элемент" -#: stock/models.py:777 +#: stock/models.py:854 msgid "Parent Stock Item" msgstr "Складская позиция" -#: stock/models.py:789 +#: stock/models.py:866 msgid "Base part" msgstr "Базовая деталь" -#: stock/models.py:799 +#: stock/models.py:876 msgid "Select a matching supplier part for this stock item" msgstr "Выберите соответствующего поставщика детали для этой складской позиции" -#: stock/models.py:811 +#: stock/models.py:888 msgid "Where is this stock item located?" msgstr "Где находиться эта складская позиция?" -#: stock/models.py:819 stock/serializers.py:1580 +#: stock/models.py:896 stock/serializers.py:1611 msgid "Packaging this stock item is stored in" msgstr "Упаковка этой складской позиции хранится в" -#: stock/models.py:830 +#: stock/models.py:907 msgid "Is this item installed in another item?" msgstr "" -#: stock/models.py:849 +#: stock/models.py:926 msgid "Serial number for this item" msgstr "" -#: stock/models.py:863 stock/serializers.py:1563 +#: stock/models.py:940 stock/serializers.py:1594 msgid "Batch code for this stock item" msgstr "Код партии для этой складской позиции" -#: stock/models.py:868 +#: stock/models.py:945 msgid "Stock Quantity" msgstr "Количество на складе" -#: stock/models.py:878 +#: stock/models.py:955 msgid "Source Build" msgstr "Исходное производство" -#: stock/models.py:881 +#: stock/models.py:958 msgid "Build for this stock item" msgstr "Производства для этой складской позиции" -#: stock/models.py:888 stock/templates/stock/item_base.html:363 +#: stock/models.py:965 stock/templates/stock/item_base.html:360 msgid "Consumed By" msgstr "Поглощен" -#: stock/models.py:891 +#: stock/models.py:968 msgid "Build order which consumed this stock item" msgstr "Заказ на производство, который поглотил эту складскую позицию" -#: stock/models.py:900 +#: stock/models.py:977 msgid "Source Purchase Order" msgstr "" -#: stock/models.py:904 +#: stock/models.py:981 msgid "Purchase order for this stock item" msgstr "Заказ на закупку для этой складской позиции" -#: stock/models.py:910 +#: stock/models.py:987 msgid "Destination Sales Order" msgstr "" -#: stock/models.py:921 +#: stock/models.py:998 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "Дата истечения срока годности для складской позиции. Остатки будут считаться просроченными после этой даты" -#: stock/models.py:939 +#: stock/models.py:1016 msgid "Delete on deplete" msgstr "Удалить при обнулении" -#: stock/models.py:940 +#: stock/models.py:1017 msgid "Delete this Stock Item when stock is depleted" msgstr "Удалить эту складскую позицию при обнулении складского запаса" -#: stock/models.py:960 +#: stock/models.py:1037 msgid "Single unit purchase price at time of purchase" msgstr "" -#: stock/models.py:991 +#: stock/models.py:1068 msgid "Converted to part" msgstr "" -#: stock/models.py:1511 +#: stock/models.py:1600 msgid "Part is not set as trackable" msgstr "Деталь не является отслеживаемой" -#: stock/models.py:1517 +#: stock/models.py:1606 msgid "Quantity must be integer" msgstr "" -#: stock/models.py:1525 +#: stock/models.py:1614 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({self.quantity})" msgstr "" -#: stock/models.py:1531 -msgid "Serial numbers must be a list of integers" +#: stock/models.py:1620 +msgid "Serial numbers must be provided as a list" msgstr "" -#: stock/models.py:1536 +#: stock/models.py:1625 msgid "Quantity does not match serial numbers" msgstr "" -#: stock/models.py:1544 stock/serializers.py:726 -msgid "Serial numbers already exist" -msgstr "Серийные номера уже существуют" - -#: stock/models.py:1641 +#: stock/models.py:1747 stock/models.py:2563 msgid "Test template does not exist" msgstr "" -#: stock/models.py:1659 +#: stock/models.py:1765 msgid "Stock item has been assigned to a sales order" msgstr "Складская позиция была назначена заказу на продажу" -#: stock/models.py:1663 +#: stock/models.py:1769 msgid "Stock item is installed in another item" msgstr "Складская позиция установлена в другую деталь" -#: stock/models.py:1666 +#: stock/models.py:1772 msgid "Stock item contains other items" msgstr "Складская позиция содержит другие детали" -#: stock/models.py:1669 +#: stock/models.py:1775 msgid "Stock item has been assigned to a customer" msgstr "Складская позиция была назначена покупателю" -#: stock/models.py:1672 +#: stock/models.py:1778 msgid "Stock item is currently in production" msgstr "Складская позиция в производстве" -#: stock/models.py:1675 +#: stock/models.py:1781 msgid "Serialized stock cannot be merged" msgstr "" -#: stock/models.py:1682 stock/serializers.py:1469 +#: stock/models.py:1788 stock/serializers.py:1500 msgid "Duplicate stock items" msgstr "" -#: stock/models.py:1686 +#: stock/models.py:1792 msgid "Stock items must refer to the same part" msgstr "Складские позиции должны ссылаться на одну и ту же деталь" -#: stock/models.py:1694 +#: stock/models.py:1800 msgid "Stock items must refer to the same supplier part" msgstr "Складские позиции должны ссылаться на одну и ту же деталь поставщика" -#: stock/models.py:1699 +#: stock/models.py:1805 msgid "Stock status codes must match" msgstr "" -#: stock/models.py:1960 +#: stock/models.py:2066 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:2343 +#: stock/models.py:2462 msgid "Stock Item Tracking" msgstr "" -#: stock/models.py:2376 +#: stock/models.py:2495 msgid "Entry notes" msgstr "" -#: stock/models.py:2416 +#: stock/models.py:2535 msgid "Stock Item Test Result" msgstr "" -#: stock/models.py:2449 +#: stock/models.py:2566 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:2454 +#: stock/models.py:2570 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:2459 +#: stock/models.py:2575 msgid "Invalid value for this test" msgstr "" -#: stock/models.py:2544 +#: stock/models.py:2660 msgid "Test result" msgstr "Результат тестирования" -#: stock/models.py:2551 +#: stock/models.py:2667 msgid "Test output value" msgstr "" -#: stock/models.py:2559 +#: stock/models.py:2675 stock/serializers.py:245 msgid "Test result attachment" msgstr "" -#: stock/models.py:2563 +#: stock/models.py:2679 msgid "Test notes" msgstr "Записи Тестирования" -#: stock/models.py:2571 templates/js/translated/stock.js:1633 +#: stock/models.py:2687 templates/js/translated/stock.js:1633 msgid "Test station" msgstr "" -#: stock/models.py:2572 +#: stock/models.py:2688 msgid "The identifier of the test station where the test was performed" msgstr "" -#: stock/models.py:2578 +#: stock/models.py:2694 msgid "Started" msgstr "" -#: stock/models.py:2579 +#: stock/models.py:2695 msgid "The timestamp of the test start" msgstr "" -#: stock/models.py:2585 +#: stock/models.py:2701 msgid "Finished" msgstr "" -#: stock/models.py:2586 +#: stock/models.py:2702 msgid "The timestamp of the test finish" msgstr "" -#: stock/serializers.py:76 +#: stock/serializers.py:77 msgid "Generated batch code" msgstr "" -#: stock/serializers.py:85 +#: stock/serializers.py:86 msgid "Select build order" msgstr "" -#: stock/serializers.py:94 +#: stock/serializers.py:95 msgid "Select stock item to generate batch code for" msgstr "" -#: stock/serializers.py:103 +#: stock/serializers.py:104 msgid "Select location to generate batch code for" msgstr "" -#: stock/serializers.py:112 +#: stock/serializers.py:113 msgid "Select part to generate batch code for" msgstr "" -#: stock/serializers.py:121 +#: stock/serializers.py:122 msgid "Select purchase order" msgstr "" -#: stock/serializers.py:128 +#: stock/serializers.py:129 msgid "Enter quantity for batch code" msgstr "" -#: stock/serializers.py:151 +#: stock/serializers.py:152 msgid "Generated serial number" msgstr "" -#: stock/serializers.py:160 +#: stock/serializers.py:161 msgid "Select part to generate serial number for" msgstr "" -#: stock/serializers.py:168 +#: stock/serializers.py:169 msgid "Quantity of serial numbers to generate" msgstr "" -#: stock/serializers.py:233 +#: stock/serializers.py:234 msgid "Test template for this result" msgstr "" -#: stock/serializers.py:254 +#: stock/serializers.py:258 msgid "Template ID or test name must be provided" msgstr "" -#: stock/serializers.py:286 +#: stock/serializers.py:290 msgid "The test finished time cannot be earlier than the test started time" msgstr "" -#: stock/serializers.py:323 +#: stock/serializers.py:327 msgid "Serial number is too large" msgstr "" -#: stock/serializers.py:452 stock/templates/stock/item_base.html:193 +#: stock/serializers.py:462 stock/templates/stock/item_base.html:190 msgid "Parent Item" msgstr "Родительский элемент" -#: stock/serializers.py:453 +#: stock/serializers.py:463 msgid "Parent stock item" msgstr "" -#: stock/serializers.py:472 +#: stock/serializers.py:484 msgid "Use pack size when adding: the quantity defined is the number of packs" msgstr "" -#: stock/serializers.py:596 stock/templates/stock/item_base.html:437 +#: stock/serializers.py:623 stock/templates/stock/item_base.html:434 #: templates/js/translated/table_filters.js:442 users/models.py:174 msgid "Expired" msgstr "Просрочен" -#: stock/serializers.py:602 stock/templates/stock/stock_sidebar.html:20 +#: stock/serializers.py:629 stock/templates/stock/stock_sidebar.html:20 msgid "Child Items" msgstr "Дочерние элементы" -#: stock/serializers.py:606 +#: stock/serializers.py:633 msgid "Tracking Items" msgstr "" -#: stock/serializers.py:612 +#: stock/serializers.py:639 msgid "Purchase price of this stock item, per unit or pack" msgstr "Закупочная цена для этой складской позиции, за единицу или за упаковку" -#: stock/serializers.py:631 +#: stock/serializers.py:658 msgid "Minimum Pricing" msgstr "" -#: stock/serializers.py:637 +#: stock/serializers.py:664 msgid "Maximum Pricing" msgstr "" -#: stock/serializers.py:661 +#: stock/serializers.py:688 msgid "Enter number of stock items to serialize" msgstr "Введите количество складских позиций для сериализации" -#: stock/serializers.py:674 +#: stock/serializers.py:701 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({q})" msgstr "" -#: stock/serializers.py:681 +#: stock/serializers.py:708 msgid "Enter serial numbers for new items" msgstr "Введите серийные номера для новых элементов" -#: stock/serializers.py:692 stock/serializers.py:1426 stock/serializers.py:1682 +#: stock/serializers.py:719 stock/serializers.py:1457 stock/serializers.py:1713 msgid "Destination stock location" msgstr "" -#: stock/serializers.py:699 +#: stock/serializers.py:726 msgid "Optional note field" msgstr "Опциональное поле записей" -#: stock/serializers.py:709 +#: stock/serializers.py:736 msgid "Serial numbers cannot be assigned to this part" msgstr "" -#: stock/serializers.py:764 +#: stock/serializers.py:756 +msgid "Serial numbers already exist" +msgstr "Серийные номера уже существуют" + +#: stock/serializers.py:795 msgid "Select stock item to install" msgstr "Выберите складскую позицию для установки" -#: stock/serializers.py:771 +#: stock/serializers.py:802 msgid "Quantity to Install" msgstr "" -#: stock/serializers.py:772 +#: stock/serializers.py:803 msgid "Enter the quantity of items to install" msgstr "" -#: stock/serializers.py:777 stock/serializers.py:857 stock/serializers.py:983 -#: stock/serializers.py:1033 +#: stock/serializers.py:808 stock/serializers.py:888 stock/serializers.py:1014 +#: stock/serializers.py:1064 msgid "Add transaction note (optional)" msgstr "Добавить запись к транзакции (необязательно)" -#: stock/serializers.py:785 +#: stock/serializers.py:816 msgid "Quantity to install must be at least 1" msgstr "" -#: stock/serializers.py:793 +#: stock/serializers.py:824 msgid "Stock item is unavailable" msgstr "Складская позиция недоступна" -#: stock/serializers.py:804 +#: stock/serializers.py:835 msgid "Selected part is not in the Bill of Materials" msgstr "Выбранная деталь отсутствует в спецификации" -#: stock/serializers.py:817 +#: stock/serializers.py:848 msgid "Quantity to install must not exceed available quantity" msgstr "" -#: stock/serializers.py:852 +#: stock/serializers.py:883 msgid "Destination location for uninstalled item" msgstr "" -#: stock/serializers.py:903 +#: stock/serializers.py:934 msgid "Unsupported statistic type: " msgstr "" -#: stock/serializers.py:917 +#: stock/serializers.py:948 msgid "Select part to convert stock item into" msgstr "Выберите деталь в которую будет преобразована складская позиция" -#: stock/serializers.py:930 +#: stock/serializers.py:961 msgid "Selected part is not a valid option for conversion" msgstr "" -#: stock/serializers.py:947 +#: stock/serializers.py:978 msgid "Cannot convert stock item with assigned SupplierPart" msgstr "Невозможно преобразовать складскую позицию с назначенной деталью поставщика" -#: stock/serializers.py:978 +#: stock/serializers.py:1009 msgid "Destination location for returned item" msgstr "" -#: stock/serializers.py:1015 +#: stock/serializers.py:1046 msgid "Select stock items to change status" msgstr "Выберите складские позиции для изменения статуса" -#: stock/serializers.py:1021 +#: stock/serializers.py:1052 msgid "No stock items selected" msgstr "Не выбрано ни одной складской позиции" -#: stock/serializers.py:1117 stock/serializers.py:1194 -#: stock/templates/stock/location.html:162 -#: stock/templates/stock/location.html:219 +#: stock/serializers.py:1148 stock/serializers.py:1225 +#: stock/templates/stock/location.html:163 +#: stock/templates/stock/location.html:220 #: stock/templates/stock/location_sidebar.html:5 msgid "Sublocations" msgstr "Места хранения" -#: stock/serializers.py:1187 templates/js/translated/stock.js:160 +#: stock/serializers.py:1218 templates/js/translated/stock.js:160 msgid "Parent stock location" msgstr "" -#: stock/serializers.py:1298 +#: stock/serializers.py:1329 msgid "Part must be salable" msgstr "" -#: stock/serializers.py:1302 +#: stock/serializers.py:1333 msgid "Item is allocated to a sales order" msgstr "" -#: stock/serializers.py:1306 +#: stock/serializers.py:1337 msgid "Item is allocated to a build order" msgstr "Элемент зарезервирован для заказа на производство" -#: stock/serializers.py:1330 +#: stock/serializers.py:1361 msgid "Customer to assign stock items" msgstr "Покупатель для назначения складских позиций" -#: stock/serializers.py:1336 +#: stock/serializers.py:1367 msgid "Selected company is not a customer" msgstr "Выбранная компания не является покупателем" -#: stock/serializers.py:1344 +#: stock/serializers.py:1375 msgid "Stock assignment notes" msgstr "Записи о назначенных запасах" -#: stock/serializers.py:1354 stock/serializers.py:1608 +#: stock/serializers.py:1385 stock/serializers.py:1639 msgid "A list of stock items must be provided" msgstr "Необходимо предоставить список складских позиций" -#: stock/serializers.py:1433 +#: stock/serializers.py:1464 msgid "Stock merging notes" msgstr "Записи о слияниях запасов" -#: stock/serializers.py:1438 +#: stock/serializers.py:1469 msgid "Allow mismatched suppliers" msgstr "" -#: stock/serializers.py:1439 +#: stock/serializers.py:1470 msgid "Allow stock items with different supplier parts to be merged" msgstr "Разрешить слияние складских позиций с различными поставщиками" -#: stock/serializers.py:1444 +#: stock/serializers.py:1475 msgid "Allow mismatched status" msgstr "" -#: stock/serializers.py:1445 +#: stock/serializers.py:1476 msgid "Allow stock items with different status codes to be merged" msgstr "Разрешить слияние складских позиций с различными статусами" -#: stock/serializers.py:1455 +#: stock/serializers.py:1486 msgid "At least two stock items must be provided" msgstr "Необходимо предоставить как минимум 2 складские позиции" -#: stock/serializers.py:1522 +#: stock/serializers.py:1553 msgid "No Change" msgstr "Нет изменений" -#: stock/serializers.py:1551 +#: stock/serializers.py:1582 msgid "StockItem primary key value" msgstr "" -#: stock/serializers.py:1570 +#: stock/serializers.py:1601 msgid "Stock item status code" msgstr "Статус складской позиции" -#: stock/serializers.py:1598 +#: stock/serializers.py:1629 msgid "Stock transaction notes" msgstr "Записи о перемещениях запасов" @@ -10175,107 +10539,107 @@ msgstr "Отклоненный" msgid "Quarantined" msgstr "Карантин" -#: stock/status_codes.py:40 +#: stock/status_codes.py:44 msgid "Legacy stock tracking entry" msgstr "Отслеживание устаревших запасов" -#: stock/status_codes.py:42 templates/js/translated/stock.js:550 +#: stock/status_codes.py:46 templates/js/translated/stock.js:550 msgid "Stock item created" msgstr "Складская позиция создана" -#: stock/status_codes.py:45 +#: stock/status_codes.py:49 msgid "Edited stock item" msgstr "Отредактированная складская позиция" -#: stock/status_codes.py:46 +#: stock/status_codes.py:50 msgid "Assigned serial number" msgstr "Присвоенный серийный номер" -#: stock/status_codes.py:49 +#: stock/status_codes.py:53 msgid "Stock counted" msgstr "Новое значение запасов установлено" -#: stock/status_codes.py:50 +#: stock/status_codes.py:54 msgid "Stock manually added" msgstr "Запасы, добавленные вручную" -#: stock/status_codes.py:51 +#: stock/status_codes.py:55 msgid "Stock manually removed" msgstr "Запасы удаленные вручную" -#: stock/status_codes.py:54 +#: stock/status_codes.py:58 msgid "Location changed" msgstr "Место хранения изменено" -#: stock/status_codes.py:55 +#: stock/status_codes.py:59 msgid "Stock updated" msgstr "Запас обновлен" -#: stock/status_codes.py:58 +#: stock/status_codes.py:62 msgid "Installed into assembly" msgstr "Установленно в производимую деталь" -#: stock/status_codes.py:59 +#: stock/status_codes.py:63 msgid "Removed from assembly" msgstr "Удалено из производимой детали" -#: stock/status_codes.py:61 +#: stock/status_codes.py:65 msgid "Installed component item" msgstr "Установленный компонент" -#: stock/status_codes.py:62 +#: stock/status_codes.py:66 msgid "Removed component item" msgstr "Удаленный компонент" -#: stock/status_codes.py:65 +#: stock/status_codes.py:69 msgid "Split from parent item" msgstr "Отделить от родительского элемента" -#: stock/status_codes.py:66 +#: stock/status_codes.py:70 msgid "Split child item" msgstr "Разбить дочерний элемент" -#: stock/status_codes.py:69 templates/js/translated/stock.js:1943 +#: stock/status_codes.py:73 templates/js/translated/stock.js:1944 msgid "Merged stock items" msgstr "Объединенные складские позиции" -#: stock/status_codes.py:72 +#: stock/status_codes.py:76 msgid "Converted to variant" msgstr "Преобразовать в разновидность" -#: stock/status_codes.py:75 +#: stock/status_codes.py:79 msgid "Build order output created" msgstr "Создан выход продукции для этого заказа на производство" -#: stock/status_codes.py:76 +#: stock/status_codes.py:80 msgid "Build order output completed" msgstr "Продукция заказа на производство завершена" -#: stock/status_codes.py:77 +#: stock/status_codes.py:81 msgid "Build order output rejected" msgstr "Продукция заказа на производство отклонена" -#: stock/status_codes.py:78 templates/js/translated/stock.js:1849 +#: stock/status_codes.py:82 templates/js/translated/stock.js:1849 msgid "Consumed by build order" msgstr "Поглощен заказом на производство" -#: stock/status_codes.py:81 +#: stock/status_codes.py:85 msgid "Shipped against Sales Order" msgstr "Отгружено по заказу на продажу" -#: stock/status_codes.py:84 +#: stock/status_codes.py:88 msgid "Received against Purchase Order" msgstr "Получено по заказу на поставку" -#: stock/status_codes.py:87 +#: stock/status_codes.py:91 msgid "Returned against Return Order" msgstr "Возвращено по заказу на возврат" -#: stock/status_codes.py:90 templates/js/translated/table_filters.js:382 +#: stock/status_codes.py:94 templates/js/translated/table_filters.js:382 msgid "Sent to customer" msgstr "Отправлено клиенту" -#: stock/status_codes.py:91 +#: stock/status_codes.py:95 msgid "Returned from customer" msgstr "Возвращено от клиента" @@ -10296,7 +10660,7 @@ msgstr "Эта складская позиция не имеет дочерни msgid "Test Data" msgstr "Данные тестов" -#: stock/templates/stock/item.html:85 stock/templates/stock/item_base.html:65 +#: stock/templates/stock/item.html:85 msgid "Test Report" msgstr "Отчет тестирования" @@ -10316,7 +10680,7 @@ msgstr "Записи складской позиции" msgid "Installed Stock Items" msgstr "Установленные складские позиции" -#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3354 +#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3355 msgid "Install Stock Item" msgstr "Установить складскую позицию" @@ -10328,208 +10692,212 @@ msgstr "Удалить все результаты тестирования дл msgid "Add Test Result" msgstr "Добавить Результат Тестирования" -#: stock/templates/stock/item_base.html:33 +#: stock/templates/stock/item_base.html:34 msgid "Locate stock item" msgstr "Найти складскую позицию" -#: stock/templates/stock/item_base.html:51 +#: stock/templates/stock/item_base.html:52 msgid "Scan to Location" msgstr "Сканировать в место хранения" #: stock/templates/stock/item_base.html:59 -#: stock/templates/stock/location.html:67 +#: stock/templates/stock/location.html:68 #: templates/js/translated/filters.js:434 msgid "Printing actions" msgstr "Действия печати" -#: stock/templates/stock/item_base.html:75 +#: stock/templates/stock/item_base.html:64 templates/js/translated/report.js:49 +msgid "Print Report" +msgstr "" + +#: stock/templates/stock/item_base.html:72 msgid "Stock adjustment actions" msgstr "" -#: stock/templates/stock/item_base.html:79 -#: stock/templates/stock/location.html:87 templates/js/translated/stock.js:1909 +#: stock/templates/stock/item_base.html:76 +#: stock/templates/stock/location.html:88 templates/js/translated/stock.js:1909 msgid "Count stock" msgstr "Установить запасы" -#: stock/templates/stock/item_base.html:81 +#: stock/templates/stock/item_base.html:78 #: templates/js/translated/stock.js:1891 msgid "Add stock" msgstr "Добавить Остатки" -#: stock/templates/stock/item_base.html:82 +#: stock/templates/stock/item_base.html:79 #: templates/js/translated/stock.js:1900 msgid "Remove stock" msgstr "Удалить запасы" -#: stock/templates/stock/item_base.html:85 +#: stock/templates/stock/item_base.html:82 msgid "Serialize stock" msgstr "Сериализовать запасы" -#: stock/templates/stock/item_base.html:88 -#: stock/templates/stock/location.html:93 templates/js/translated/stock.js:1918 +#: stock/templates/stock/item_base.html:85 +#: stock/templates/stock/location.html:94 templates/js/translated/stock.js:1918 msgid "Transfer stock" msgstr "Переместить запасы" -#: stock/templates/stock/item_base.html:91 -#: templates/js/translated/stock.js:1972 +#: stock/templates/stock/item_base.html:88 +#: templates/js/translated/stock.js:1973 msgid "Assign to customer" msgstr "" -#: stock/templates/stock/item_base.html:94 +#: stock/templates/stock/item_base.html:91 msgid "Return to stock" msgstr "Вернуть на склад" -#: stock/templates/stock/item_base.html:97 +#: stock/templates/stock/item_base.html:94 msgid "Uninstall stock item" msgstr "Удалить складскую позицию" -#: stock/templates/stock/item_base.html:97 +#: stock/templates/stock/item_base.html:94 msgid "Uninstall" msgstr "Удалить" -#: stock/templates/stock/item_base.html:101 +#: stock/templates/stock/item_base.html:98 msgid "Install stock item" msgstr "Установить складскую позицию" -#: stock/templates/stock/item_base.html:101 +#: stock/templates/stock/item_base.html:98 msgid "Install" msgstr "Установить" -#: stock/templates/stock/item_base.html:115 +#: stock/templates/stock/item_base.html:112 msgid "Convert to variant" msgstr "Преобразовать в разновидность" -#: stock/templates/stock/item_base.html:118 +#: stock/templates/stock/item_base.html:115 msgid "Duplicate stock item" msgstr "Дублировать складскую позицию" -#: stock/templates/stock/item_base.html:120 +#: stock/templates/stock/item_base.html:117 msgid "Edit stock item" msgstr "Редактировать складскую позицию" -#: stock/templates/stock/item_base.html:123 +#: stock/templates/stock/item_base.html:120 msgid "Delete stock item" msgstr "Удалить складскую позицию" -#: stock/templates/stock/item_base.html:169 templates/InvenTree/search.html:139 -#: templates/js/translated/build.js:2295 templates/navbar.html:38 +#: stock/templates/stock/item_base.html:166 templates/InvenTree/search.html:139 +#: templates/js/translated/build.js:2298 templates/navbar.html:38 msgid "Build" msgstr "Производство" -#: stock/templates/stock/item_base.html:211 +#: stock/templates/stock/item_base.html:208 msgid "No manufacturer set" msgstr "" -#: stock/templates/stock/item_base.html:251 +#: stock/templates/stock/item_base.html:248 msgid "You are not in the list of owners of this item. This stock item cannot be edited." msgstr "Вы не в списке владельцев этого элемента. Складская позиция не может быть отредактирована." -#: stock/templates/stock/item_base.html:252 -#: stock/templates/stock/location.html:146 +#: stock/templates/stock/item_base.html:249 +#: stock/templates/stock/location.html:147 msgid "Read only" msgstr "Только для чтения" -#: stock/templates/stock/item_base.html:265 +#: stock/templates/stock/item_base.html:262 msgid "This stock item is unavailable" msgstr "Эта складская позиция не доступна" -#: stock/templates/stock/item_base.html:271 +#: stock/templates/stock/item_base.html:268 msgid "This stock item is in production and cannot be edited." msgstr "Эта складская позиция находиться в производстве и не может быть отредактирована." -#: stock/templates/stock/item_base.html:272 +#: stock/templates/stock/item_base.html:269 msgid "Edit the stock item from the build view." msgstr "Редактировать складскую позицию из производства." -#: stock/templates/stock/item_base.html:287 +#: stock/templates/stock/item_base.html:284 msgid "This stock item is allocated to Sales Order" msgstr "Эта складская позиция зарезервирована для заказа на продажу" -#: stock/templates/stock/item_base.html:295 +#: stock/templates/stock/item_base.html:292 msgid "This stock item is allocated to Build Order" msgstr "Этот складская позиция зарезервирована заказом на производство" -#: stock/templates/stock/item_base.html:311 +#: stock/templates/stock/item_base.html:308 msgid "This stock item is serialized. It has a unique serial number and the quantity cannot be adjusted" msgstr "Это отслеживаемая складская позиция. Она имеет уникальный серийный номер и количество не может быть изменено" -#: stock/templates/stock/item_base.html:317 +#: stock/templates/stock/item_base.html:314 msgid "previous page" msgstr "предыдущая страница" -#: stock/templates/stock/item_base.html:317 +#: stock/templates/stock/item_base.html:314 msgid "Navigate to previous serial number" msgstr "" -#: stock/templates/stock/item_base.html:326 +#: stock/templates/stock/item_base.html:323 msgid "next page" msgstr "следующая страница" -#: stock/templates/stock/item_base.html:326 +#: stock/templates/stock/item_base.html:323 msgid "Navigate to next serial number" msgstr "" -#: stock/templates/stock/item_base.html:398 -#: templates/js/translated/build.js:2552 +#: stock/templates/stock/item_base.html:395 +#: templates/js/translated/build.js:2559 msgid "No location set" msgstr "Место хранения не установлено" -#: stock/templates/stock/item_base.html:413 +#: stock/templates/stock/item_base.html:410 msgid "Tests" msgstr "Тесты" -#: stock/templates/stock/item_base.html:419 +#: stock/templates/stock/item_base.html:416 msgid "This stock item has not passed all required tests" msgstr "Эта складская позиция не прошла требуемое тестирование" -#: stock/templates/stock/item_base.html:437 +#: stock/templates/stock/item_base.html:434 #, python-format msgid "This StockItem expired on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:439 +#: stock/templates/stock/item_base.html:436 #, python-format msgid "This StockItem expires on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:455 +#: stock/templates/stock/item_base.html:452 msgid "No stocktake performed" msgstr "" -#: stock/templates/stock/item_base.html:504 -#: templates/js/translated/stock.js:2037 +#: stock/templates/stock/item_base.html:501 +#: templates/js/translated/stock.js:2038 msgid "stock item" msgstr "" -#: stock/templates/stock/item_base.html:527 +#: stock/templates/stock/item_base.html:524 msgid "Edit Stock Status" msgstr "" -#: stock/templates/stock/item_base.html:536 +#: stock/templates/stock/item_base.html:533 msgid "Stock Item QR Code" msgstr "QR-код складской позиции" -#: stock/templates/stock/item_base.html:547 +#: stock/templates/stock/item_base.html:544 msgid "Link Barcode to Stock Item" msgstr "Привязать штрих-код к складской позиции" -#: stock/templates/stock/item_base.html:611 +#: stock/templates/stock/item_base.html:608 msgid "Select one of the part variants listed below." msgstr "" -#: stock/templates/stock/item_base.html:614 +#: stock/templates/stock/item_base.html:611 msgid "Warning" msgstr "Предупреждение" -#: stock/templates/stock/item_base.html:615 +#: stock/templates/stock/item_base.html:612 msgid "This action cannot be easily undone" msgstr "" -#: stock/templates/stock/item_base.html:623 +#: stock/templates/stock/item_base.html:620 msgid "Convert Stock Item" msgstr "Преобразовать складскую позицию" -#: stock/templates/stock/item_base.html:656 +#: stock/templates/stock/item_base.html:653 msgid "Return to Stock" msgstr "Вернуть на склад" @@ -10541,84 +10909,84 @@ msgstr "" msgid "Select quantity to serialize, and unique serial numbers." msgstr "" -#: stock/templates/stock/location.html:35 +#: stock/templates/stock/location.html:36 msgid "Perform stocktake for this stock location" msgstr "" -#: stock/templates/stock/location.html:42 +#: stock/templates/stock/location.html:43 msgid "Locate stock location" msgstr "" -#: stock/templates/stock/location.html:60 +#: stock/templates/stock/location.html:61 msgid "Scan stock items into this location" msgstr "Сканировать складские позиции в это место хранения" -#: stock/templates/stock/location.html:60 +#: stock/templates/stock/location.html:61 msgid "Scan In Stock Items" msgstr "Сканировать в складские позиции" -#: stock/templates/stock/location.html:61 +#: stock/templates/stock/location.html:62 msgid "Scan stock container into this location" msgstr "" -#: stock/templates/stock/location.html:61 +#: stock/templates/stock/location.html:62 msgid "Scan In Container" msgstr "" -#: stock/templates/stock/location.html:72 +#: stock/templates/stock/location.html:73 msgid "Print Location Report" msgstr "" -#: stock/templates/stock/location.html:101 +#: stock/templates/stock/location.html:102 msgid "Location actions" msgstr "Действия с местом хранения" -#: stock/templates/stock/location.html:103 +#: stock/templates/stock/location.html:104 msgid "Edit location" msgstr "Редактировать место хранения" -#: stock/templates/stock/location.html:105 +#: stock/templates/stock/location.html:106 msgid "Delete location" msgstr "Удалить место хранения" -#: stock/templates/stock/location.html:135 +#: stock/templates/stock/location.html:136 msgid "Top level stock location" msgstr "Склад верхнего уровня" -#: stock/templates/stock/location.html:141 +#: stock/templates/stock/location.html:142 msgid "Location Owner" msgstr "Ответственный за место хранения" -#: stock/templates/stock/location.html:145 +#: stock/templates/stock/location.html:146 msgid "You are not in the list of owners of this location. This stock location cannot be edited." msgstr "" -#: stock/templates/stock/location.html:173 +#: stock/templates/stock/location.html:174 msgid "Location Type" msgstr "" -#: stock/templates/stock/location.html:223 +#: stock/templates/stock/location.html:224 msgid "Create new stock location" msgstr "Создать новое место хранения" -#: stock/templates/stock/location.html:224 +#: stock/templates/stock/location.html:225 msgid "New Location" msgstr "Новое место хранения" -#: stock/templates/stock/location.html:298 -#: templates/js/translated/stock.js:2657 +#: stock/templates/stock/location.html:299 +#: templates/js/translated/stock.js:2658 msgid "stock location" msgstr "места хранения" -#: stock/templates/stock/location.html:320 +#: stock/templates/stock/location.html:321 msgid "Scanned stock container into this location" msgstr "" -#: stock/templates/stock/location.html:393 +#: stock/templates/stock/location.html:394 msgid "Stock Location QR Code" msgstr "" -#: stock/templates/stock/location.html:404 +#: stock/templates/stock/location.html:405 msgid "Link Barcode to Stock Location" msgstr "" @@ -10630,10 +10998,6 @@ msgstr "Загрузка..." msgid "Stock Tracking" msgstr "Запас" -#: stock/templates/stock/stock_sidebar.html:8 -msgid "Allocations" -msgstr "Места хранения" - #: templates/403.html:6 templates/403.html:12 templates/403_csrf.html:7 msgid "Permission Denied" msgstr "Доступ запрещён" @@ -10970,7 +11334,7 @@ msgstr "Лицензия" #: templates/InvenTree/settings/plugin_settings.html:70 msgid "The code information is pulled from the latest git commit for this plugin. It might not reflect official version numbers or information but the actual code running." -msgstr "" +msgstr "Информация о коде извлекается из последнего git commit для этого плагина. Это может не отражать официальные номера версий или информацию, но фактически выполняется код." #: templates/InvenTree/settings/plugin_settings.html:76 msgid "Package information" @@ -11107,9 +11471,9 @@ msgid "Rate" msgstr "Оценить" #: templates/InvenTree/settings/settings_staff_js.html:81 -#: templates/js/translated/forms.js:548 templates/js/translated/helpers.js:108 +#: templates/js/translated/forms.js:548 templates/js/translated/helpers.js:109 #: templates/js/translated/part.js:395 templates/js/translated/pricing.js:629 -#: templates/js/translated/stock.js:252 users/models.py:406 +#: templates/js/translated/stock.js:252 users/models.py:408 msgid "Delete" msgstr "Удалить" @@ -11130,7 +11494,7 @@ msgid "No project codes found" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:158 -#: templates/js/translated/build.js:2400 +#: templates/js/translated/build.js:2403 msgid "group" msgstr "группа" @@ -11196,7 +11560,7 @@ msgid "Delete Location Type" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:503 -#: templates/InvenTree/settings/stock.html:38 +#: templates/InvenTree/settings/stock.html:39 msgid "New Location Type" msgstr "" @@ -11253,7 +11617,7 @@ msgstr "Настройки заказов на продажу" msgid "Stock Settings" msgstr "Настройки склада" -#: templates/InvenTree/settings/stock.html:34 +#: templates/InvenTree/settings/stock.html:35 msgid "Stock Location Types" msgstr "" @@ -11280,7 +11644,7 @@ msgid "Unverified" msgstr "Непроверенный" #: templates/InvenTree/settings/user.html:80 -#: templates/js/translated/company.js:957 +#: templates/js/translated/company.js:958 msgid "Primary" msgstr "Основной" @@ -11532,7 +11896,7 @@ msgid "Submit Bug Report" msgstr "" #: templates/about.html:91 templates/clip.html:4 -#: templates/js/translated/helpers.js:592 +#: templates/js/translated/helpers.js:598 msgid "copy to clipboard" msgstr "" @@ -11738,23 +12102,24 @@ msgstr "Прикрепить файл" msgid "Barcode Identifier" msgstr "" -#: templates/base.html:103 +#: templates/base.html:102 msgid "Server Restart Required" msgstr "" -#: templates/base.html:106 +#: templates/base.html:105 msgid "A configuration option has been changed which requires a server restart" msgstr "" -#: templates/base.html:106 templates/base.html:116 +#: templates/base.html:105 templates/base.html:115 +#: templates/socialaccount/authentication_error.html:13 msgid "Contact your system administrator for further information" msgstr "" -#: templates/base.html:113 +#: templates/base.html:112 msgid "Pending Database Migrations" msgstr "" -#: templates/base.html:116 +#: templates/base.html:115 msgid "There are pending database migrations which require attention" msgstr "" @@ -11787,7 +12152,7 @@ msgid "The following parts are low on required stock" msgstr "" #: templates/email/build_order_required_stock.html:18 -#: templates/js/translated/bom.js:1674 templates/js/translated/build.js:2747 +#: templates/js/translated/bom.js:1674 templates/js/translated/build.js:2765 msgid "Required Quantity" msgstr "Требуемое кол-во" @@ -11801,7 +12166,7 @@ msgid "Click on the following link to view this part" msgstr "" #: templates/email/low_stock_notification.html:18 -#: templates/js/translated/part.js:3237 +#: templates/js/translated/part.js:3253 msgid "Minimum Quantity" msgstr "Минимальное количество" @@ -12039,7 +12404,7 @@ msgstr "Данные строк" #: templates/js/translated/bom.js:189 templates/js/translated/bom.js:700 #: templates/js/translated/modals.js:75 templates/js/translated/modals.js:629 #: templates/js/translated/modals.js:757 templates/js/translated/modals.js:1065 -#: templates/js/translated/purchase_order.js:797 templates/modals.html:15 +#: templates/js/translated/purchase_order.js:780 templates/modals.html:15 #: templates/modals.html:27 templates/modals.html:39 templates/modals.html:50 msgid "Close" msgstr "Закрыть" @@ -12156,7 +12521,7 @@ msgstr "" msgid "Substitutes Available" msgstr "" -#: templates/js/translated/bom.js:950 templates/js/translated/build.js:2673 +#: templates/js/translated/bom.js:950 templates/js/translated/build.js:2682 msgid "Variant stock allowed" msgstr "" @@ -12176,30 +12541,30 @@ msgstr "" msgid "No pricing available" msgstr "" -#: templates/js/translated/bom.js:1184 templates/js/translated/build.js:2812 +#: templates/js/translated/bom.js:1184 templates/js/translated/build.js:2830 msgid "External stock" msgstr "" -#: templates/js/translated/bom.js:1188 templates/js/translated/build.js:2786 -#: templates/js/translated/sales_order.js:1946 +#: templates/js/translated/bom.js:1188 templates/js/translated/build.js:2804 +#: templates/js/translated/sales_order.js:1927 msgid "No Stock Available" msgstr "" -#: templates/js/translated/bom.js:1193 templates/js/translated/build.js:2790 +#: templates/js/translated/bom.js:1193 templates/js/translated/build.js:2808 msgid "Includes variant and substitute stock" msgstr "" -#: templates/js/translated/bom.js:1195 templates/js/translated/build.js:2792 +#: templates/js/translated/bom.js:1195 templates/js/translated/build.js:2810 #: templates/js/translated/part.js:1263 -#: templates/js/translated/sales_order.js:1943 +#: templates/js/translated/sales_order.js:1924 msgid "Includes variant stock" msgstr "" -#: templates/js/translated/bom.js:1197 templates/js/translated/build.js:2794 +#: templates/js/translated/bom.js:1197 templates/js/translated/build.js:2812 msgid "Includes substitute stock" msgstr "" -#: templates/js/translated/bom.js:1225 templates/js/translated/build.js:2777 +#: templates/js/translated/bom.js:1225 templates/js/translated/build.js:2795 msgid "Consumable item" msgstr "Расходник" @@ -12231,7 +12596,7 @@ msgstr "Просмотр BOM" msgid "No BOM items found" msgstr "" -#: templates/js/translated/bom.js:1657 templates/js/translated/build.js:2658 +#: templates/js/translated/bom.js:1657 templates/js/translated/build.js:2667 msgid "Required Part" msgstr "Необходимая деталь" @@ -12243,396 +12608,396 @@ msgstr "" msgid "Edit Build Order" msgstr "Редактировать заказ на производство" -#: templates/js/translated/build.js:191 +#: templates/js/translated/build.js:194 msgid "Create Build Order" msgstr "" -#: templates/js/translated/build.js:223 +#: templates/js/translated/build.js:226 msgid "Cancel Build Order" msgstr "" -#: templates/js/translated/build.js:232 +#: templates/js/translated/build.js:235 msgid "Are you sure you wish to cancel this build?" msgstr "" -#: templates/js/translated/build.js:238 +#: templates/js/translated/build.js:241 msgid "Stock items have been allocated to this build order" msgstr "Складские позиции были зарезервированы для этого заказа на производство" -#: templates/js/translated/build.js:245 +#: templates/js/translated/build.js:248 msgid "There are incomplete outputs remaining for this build order" msgstr "У этого заказа на производство осталась незавершенная продукция" -#: templates/js/translated/build.js:297 +#: templates/js/translated/build.js:300 msgid "Build order is ready to be completed" msgstr "" -#: templates/js/translated/build.js:305 +#: templates/js/translated/build.js:308 msgid "This build order cannot be completed as there are incomplete outputs" msgstr "Этот заказ на производство не может быть завершен, так как имеет незавершенный выход деталей" -#: templates/js/translated/build.js:310 +#: templates/js/translated/build.js:313 msgid "Build Order is incomplete" msgstr "" -#: templates/js/translated/build.js:328 +#: templates/js/translated/build.js:331 msgid "Complete Build Order" msgstr "" -#: templates/js/translated/build.js:369 templates/js/translated/stock.js:127 +#: templates/js/translated/build.js:372 templates/js/translated/stock.js:127 #: templates/js/translated/stock.js:301 msgid "Next available serial number" msgstr "" -#: templates/js/translated/build.js:371 templates/js/translated/stock.js:129 +#: templates/js/translated/build.js:374 templates/js/translated/stock.js:129 #: templates/js/translated/stock.js:303 msgid "Latest serial number" msgstr "" -#: templates/js/translated/build.js:380 +#: templates/js/translated/build.js:383 msgid "The Bill of Materials contains trackable parts" msgstr "BOM содержит отслеживаемые детали" -#: templates/js/translated/build.js:381 +#: templates/js/translated/build.js:384 msgid "Build outputs must be generated individually" msgstr "Продукция должна создаваться индивидуально" -#: templates/js/translated/build.js:389 +#: templates/js/translated/build.js:392 msgid "Trackable parts can have serial numbers specified" msgstr "" -#: templates/js/translated/build.js:390 +#: templates/js/translated/build.js:393 msgid "Enter serial numbers to generate multiple single build outputs" msgstr "Ведите серийные номера для создания нескольких единиц продукции" -#: templates/js/translated/build.js:397 +#: templates/js/translated/build.js:400 msgid "Create Build Output" msgstr "Создать Выход Продукции" -#: templates/js/translated/build.js:428 +#: templates/js/translated/build.js:431 msgid "Allocate stock items to this build output" msgstr "Зарезервировать складские позиции для этой продукции" -#: templates/js/translated/build.js:436 +#: templates/js/translated/build.js:439 msgid "Deallocate stock from build output" msgstr "Отменить резерв этой продукции" -#: templates/js/translated/build.js:445 +#: templates/js/translated/build.js:448 msgid "Complete build output" msgstr "Завершить продукцию" -#: templates/js/translated/build.js:453 +#: templates/js/translated/build.js:456 msgid "Scrap build output" msgstr "Списать продукцию" -#: templates/js/translated/build.js:460 +#: templates/js/translated/build.js:463 msgid "Delete build output" msgstr "Удалить продукцию" -#: templates/js/translated/build.js:480 +#: templates/js/translated/build.js:483 msgid "Are you sure you wish to deallocate the selected stock items from this build?" msgstr "Вы уверены, что хотите отменить резерв выбранных складских позиций из этого производства?" -#: templates/js/translated/build.js:498 +#: templates/js/translated/build.js:501 msgid "Deallocate Stock Items" msgstr "Отменить резерв складских позиций" -#: templates/js/translated/build.js:584 templates/js/translated/build.js:711 -#: templates/js/translated/build.js:836 +#: templates/js/translated/build.js:587 templates/js/translated/build.js:714 +#: templates/js/translated/build.js:839 msgid "Select Build Outputs" msgstr "Выбрать Продукцию" -#: templates/js/translated/build.js:585 templates/js/translated/build.js:712 -#: templates/js/translated/build.js:837 +#: templates/js/translated/build.js:588 templates/js/translated/build.js:715 +#: templates/js/translated/build.js:840 msgid "At least one build output must be selected" msgstr "Как минимум одна единица продукции должна быть выбрана" -#: templates/js/translated/build.js:599 +#: templates/js/translated/build.js:602 msgid "Selected build outputs will be marked as complete" msgstr "Выбранная продукция будет отмечена как завершенная" -#: templates/js/translated/build.js:603 templates/js/translated/build.js:736 -#: templates/js/translated/build.js:859 +#: templates/js/translated/build.js:606 templates/js/translated/build.js:739 +#: templates/js/translated/build.js:862 msgid "Output" msgstr "Продукция" -#: templates/js/translated/build.js:630 +#: templates/js/translated/build.js:633 msgid "Complete Build Outputs" msgstr "Завершить Продукцию" -#: templates/js/translated/build.js:727 +#: templates/js/translated/build.js:730 msgid "Selected build outputs will be marked as scrapped" msgstr "Выбранная продукция будет отмечена как списанная" -#: templates/js/translated/build.js:729 +#: templates/js/translated/build.js:732 msgid "Scrapped output are marked as rejected" msgstr "Списанная продукция отмечена как отклоненная" -#: templates/js/translated/build.js:730 +#: templates/js/translated/build.js:733 msgid "Allocated stock items will no longer be available" msgstr "Зарезервированная складская позиция более не доступна" -#: templates/js/translated/build.js:731 +#: templates/js/translated/build.js:734 msgid "The completion status of the build order will not be adjusted" msgstr "" -#: templates/js/translated/build.js:761 +#: templates/js/translated/build.js:764 msgid "Scrap Build Outputs" msgstr "Списать Продукцию" -#: templates/js/translated/build.js:851 +#: templates/js/translated/build.js:854 msgid "Selected build outputs will be deleted" msgstr "Выбранная продукция будет удалена" -#: templates/js/translated/build.js:853 +#: templates/js/translated/build.js:856 msgid "Build output data will be permanently deleted" msgstr "Продукция будет полностью удалена" -#: templates/js/translated/build.js:854 +#: templates/js/translated/build.js:857 msgid "Allocated stock items will be returned to stock" msgstr "Зарезервированные складские позиции были возвращены на склад" -#: templates/js/translated/build.js:872 +#: templates/js/translated/build.js:875 msgid "Delete Build Outputs" msgstr "Удалить Продукцию" -#: templates/js/translated/build.js:959 +#: templates/js/translated/build.js:962 msgid "Delete allocations" msgstr "" -#: templates/js/translated/build.js:966 +#: templates/js/translated/build.js:969 msgid "Delete Stock Allocations" msgstr "" -#: templates/js/translated/build.js:989 +#: templates/js/translated/build.js:992 msgid "No allocated stock" msgstr "" -#: templates/js/translated/build.js:1045 +#: templates/js/translated/build.js:1048 msgid "Stock item" msgstr "" -#: templates/js/translated/build.js:1070 +#: templates/js/translated/build.js:1073 msgid "Edit build allocation" msgstr "" -#: templates/js/translated/build.js:1071 +#: templates/js/translated/build.js:1074 msgid "Delete build allocation" msgstr "" -#: templates/js/translated/build.js:1089 +#: templates/js/translated/build.js:1092 msgid "Edit Build Allocation" msgstr "" -#: templates/js/translated/build.js:1102 +#: templates/js/translated/build.js:1105 msgid "Delete Build Allocation" msgstr "" -#: templates/js/translated/build.js:1133 +#: templates/js/translated/build.js:1136 msgid "No build order allocations found" msgstr "" -#: templates/js/translated/build.js:1178 +#: templates/js/translated/build.js:1181 msgid "Location not specified" msgstr "" -#: templates/js/translated/build.js:1200 +#: templates/js/translated/build.js:1203 msgid "Complete outputs" msgstr "Завершенная продукция" -#: templates/js/translated/build.js:1218 +#: templates/js/translated/build.js:1221 msgid "Scrap outputs" msgstr "Списанная продукция" -#: templates/js/translated/build.js:1236 +#: templates/js/translated/build.js:1239 msgid "Delete outputs" msgstr "Удаленная продукция" -#: templates/js/translated/build.js:1289 +#: templates/js/translated/build.js:1292 msgid "build output" msgstr "продукция" -#: templates/js/translated/build.js:1290 +#: templates/js/translated/build.js:1293 msgid "build outputs" msgstr "продукция" -#: templates/js/translated/build.js:1294 +#: templates/js/translated/build.js:1297 msgid "Build output actions" msgstr "Действия с продукцией" -#: templates/js/translated/build.js:1470 +#: templates/js/translated/build.js:1473 msgid "No active build outputs found" msgstr "Активная продукция не найдена" -#: templates/js/translated/build.js:1563 +#: templates/js/translated/build.js:1566 msgid "Allocated Lines" msgstr "Зарезервированные Строки" -#: templates/js/translated/build.js:1577 +#: templates/js/translated/build.js:1580 msgid "Required Tests" msgstr "Требуемые тесты" -#: templates/js/translated/build.js:1749 -#: templates/js/translated/purchase_order.js:611 -#: templates/js/translated/sales_order.js:1207 +#: templates/js/translated/build.js:1752 +#: templates/js/translated/purchase_order.js:594 +#: templates/js/translated/sales_order.js:1173 msgid "Select Parts" msgstr "Выбрать детали" -#: templates/js/translated/build.js:1750 -#: templates/js/translated/sales_order.js:1208 +#: templates/js/translated/build.js:1753 +#: templates/js/translated/sales_order.js:1174 msgid "You must select at least one part to allocate" msgstr "" -#: templates/js/translated/build.js:1813 -#: templates/js/translated/sales_order.js:1157 +#: templates/js/translated/build.js:1816 +#: templates/js/translated/sales_order.js:1123 msgid "Specify stock allocation quantity" msgstr "" -#: templates/js/translated/build.js:1890 +#: templates/js/translated/build.js:1893 msgid "All Parts Allocated" msgstr "" -#: templates/js/translated/build.js:1891 +#: templates/js/translated/build.js:1894 msgid "All selected parts have been fully allocated" msgstr "" -#: templates/js/translated/build.js:1905 -#: templates/js/translated/sales_order.js:1222 +#: templates/js/translated/build.js:1908 +#: templates/js/translated/sales_order.js:1188 msgid "Select source location (leave blank to take from all locations)" msgstr "Выберите место хранения - источник (оставьте пустым, чтобы взять из всех мест)" -#: templates/js/translated/build.js:1933 +#: templates/js/translated/build.js:1936 msgid "Allocate Stock Items to Build Order" msgstr "Зарезервировать складские позиции для этого заказа на производства" -#: templates/js/translated/build.js:1944 -#: templates/js/translated/sales_order.js:1319 +#: templates/js/translated/build.js:1947 +#: templates/js/translated/sales_order.js:1285 msgid "No matching stock locations" msgstr "" -#: templates/js/translated/build.js:2017 -#: templates/js/translated/sales_order.js:1398 +#: templates/js/translated/build.js:2020 +#: templates/js/translated/sales_order.js:1364 msgid "No matching stock items" msgstr "Нет совпадающих складских позиций" -#: templates/js/translated/build.js:2114 +#: templates/js/translated/build.js:2117 msgid "Automatic Stock Allocation" msgstr "" -#: templates/js/translated/build.js:2115 +#: templates/js/translated/build.js:2118 msgid "Stock items will be automatically allocated to this build order, according to the provided guidelines" msgstr "Складские позиции будут автоматически зарезервированы на этот заказ на производстве, в соответствии с указанными рекомендациями" -#: templates/js/translated/build.js:2117 +#: templates/js/translated/build.js:2120 msgid "If a location is specified, stock will only be allocated from that location" msgstr "" -#: templates/js/translated/build.js:2118 +#: templates/js/translated/build.js:2121 msgid "If stock is considered interchangeable, it will be allocated from the first location it is found" msgstr "" -#: templates/js/translated/build.js:2119 +#: templates/js/translated/build.js:2122 msgid "If substitute stock is allowed, it will be used where stock of the primary part cannot be found" msgstr "" -#: templates/js/translated/build.js:2149 +#: templates/js/translated/build.js:2152 msgid "Allocate Stock Items" msgstr "Зарезервировать Складские Позиции" -#: templates/js/translated/build.js:2254 +#: templates/js/translated/build.js:2257 msgid "No builds matching query" msgstr "" -#: templates/js/translated/build.js:2289 templates/js/translated/build.js:2652 +#: templates/js/translated/build.js:2292 templates/js/translated/build.js:2661 #: templates/js/translated/forms.js:2196 templates/js/translated/forms.js:2212 #: templates/js/translated/part.js:2322 templates/js/translated/part.js:2761 -#: templates/js/translated/stock.js:2068 templates/js/translated/stock.js:2795 +#: templates/js/translated/stock.js:2069 templates/js/translated/stock.js:2796 msgid "Select" msgstr "Выбрать" -#: templates/js/translated/build.js:2303 +#: templates/js/translated/build.js:2306 msgid "Build order is overdue" msgstr "" -#: templates/js/translated/build.js:2385 templates/js/translated/stock.js:3126 +#: templates/js/translated/build.js:2388 templates/js/translated/stock.js:3127 msgid "No user information" msgstr "" -#: templates/js/translated/build.js:2561 -#: templates/js/translated/sales_order.js:1682 +#: templates/js/translated/build.js:2568 +#: templates/js/translated/sales_order.js:1663 msgid "Edit stock allocation" msgstr "" -#: templates/js/translated/build.js:2562 -#: templates/js/translated/sales_order.js:1683 +#: templates/js/translated/build.js:2569 +#: templates/js/translated/sales_order.js:1664 msgid "Delete stock allocation" msgstr "" -#: templates/js/translated/build.js:2577 +#: templates/js/translated/build.js:2584 msgid "Edit Allocation" msgstr "Редактировать Резерв" -#: templates/js/translated/build.js:2589 +#: templates/js/translated/build.js:2596 msgid "Remove Allocation" msgstr "" -#: templates/js/translated/build.js:2628 +#: templates/js/translated/build.js:2636 msgid "build line" msgstr "строка производства" -#: templates/js/translated/build.js:2629 +#: templates/js/translated/build.js:2637 msgid "build lines" msgstr "позиция производства" -#: templates/js/translated/build.js:2647 +#: templates/js/translated/build.js:2656 msgid "No build lines found" msgstr "" -#: templates/js/translated/build.js:2677 templates/js/translated/part.js:793 +#: templates/js/translated/build.js:2686 templates/js/translated/part.js:793 #: templates/js/translated/part.js:1209 msgid "Trackable part" msgstr "Отслеживаемая деталь" -#: templates/js/translated/build.js:2720 +#: templates/js/translated/build.js:2729 msgid "Gets Inherited" msgstr "" -#: templates/js/translated/build.js:2730 +#: templates/js/translated/build.js:2748 msgid "Unit Quantity" msgstr "Количество единиц" -#: templates/js/translated/build.js:2782 -#: templates/js/translated/sales_order.js:1951 +#: templates/js/translated/build.js:2800 +#: templates/js/translated/sales_order.js:1932 msgid "Sufficient stock available" msgstr "" -#: templates/js/translated/build.js:2837 +#: templates/js/translated/build.js:2855 msgid "Consumable Item" msgstr "Расходник" -#: templates/js/translated/build.js:2844 +#: templates/js/translated/build.js:2862 msgid "Tracked item" msgstr "Отслеживаемый элемент" -#: templates/js/translated/build.js:2845 +#: templates/js/translated/build.js:2863 msgid "Allocate tracked items against individual build outputs" msgstr "" -#: templates/js/translated/build.js:2853 -#: templates/js/translated/sales_order.js:2052 +#: templates/js/translated/build.js:2871 +#: templates/js/translated/sales_order.js:2033 msgid "Build stock" msgstr "Запасы производства" -#: templates/js/translated/build.js:2858 templates/js/translated/stock.js:1953 +#: templates/js/translated/build.js:2876 templates/js/translated/stock.js:1954 msgid "Order stock" msgstr "Заказать запасы" -#: templates/js/translated/build.js:2862 -#: templates/js/translated/sales_order.js:2046 +#: templates/js/translated/build.js:2880 +#: templates/js/translated/sales_order.js:2027 msgid "Allocate stock" msgstr "Зарезервировать Остатки" -#: templates/js/translated/build.js:2866 +#: templates/js/translated/build.js:2884 msgid "Remove stock allocation" msgstr "" @@ -12641,7 +13006,7 @@ msgid "Add Manufacturer" msgstr "Добавить производителя" #: templates/js/translated/company.js:111 -#: templates/js/translated/company.js:213 +#: templates/js/translated/company.js:214 msgid "Add Manufacturer Part" msgstr "" @@ -12649,231 +13014,231 @@ msgstr "" msgid "Edit Manufacturer Part" msgstr "" -#: templates/js/translated/company.js:201 +#: templates/js/translated/company.js:202 #: templates/js/translated/purchase_order.js:93 msgid "Add Supplier" msgstr "Добавить поставщика" -#: templates/js/translated/company.js:243 -#: templates/js/translated/purchase_order.js:318 +#: templates/js/translated/company.js:244 +#: templates/js/translated/purchase_order.js:301 msgid "Add Supplier Part" msgstr "" -#: templates/js/translated/company.js:344 +#: templates/js/translated/company.js:345 msgid "All selected supplier parts will be deleted" msgstr "" -#: templates/js/translated/company.js:360 +#: templates/js/translated/company.js:361 msgid "Delete Supplier Parts" msgstr "" -#: templates/js/translated/company.js:466 +#: templates/js/translated/company.js:467 msgid "Add new Company" msgstr "Добавить новую компанию" -#: templates/js/translated/company.js:546 +#: templates/js/translated/company.js:547 msgid "Parts Supplied" msgstr "Поставленные Детали" -#: templates/js/translated/company.js:555 +#: templates/js/translated/company.js:556 msgid "Parts Manufactured" msgstr "" -#: templates/js/translated/company.js:570 +#: templates/js/translated/company.js:571 msgid "No company information found" msgstr "" -#: templates/js/translated/company.js:619 +#: templates/js/translated/company.js:620 msgid "Create New Contact" msgstr "" -#: templates/js/translated/company.js:635 -#: templates/js/translated/company.js:758 +#: templates/js/translated/company.js:636 +#: templates/js/translated/company.js:759 msgid "Edit Contact" msgstr "Изменить контакт" -#: templates/js/translated/company.js:672 +#: templates/js/translated/company.js:673 msgid "All selected contacts will be deleted" msgstr "" -#: templates/js/translated/company.js:678 -#: templates/js/translated/company.js:742 +#: templates/js/translated/company.js:679 +#: templates/js/translated/company.js:743 msgid "Role" msgstr "Роль" -#: templates/js/translated/company.js:686 +#: templates/js/translated/company.js:687 msgid "Delete Contacts" msgstr "Удалить контакты" -#: templates/js/translated/company.js:717 +#: templates/js/translated/company.js:718 msgid "No contacts found" msgstr "" -#: templates/js/translated/company.js:730 +#: templates/js/translated/company.js:731 msgid "Phone Number" msgstr "Номер телефона" -#: templates/js/translated/company.js:736 +#: templates/js/translated/company.js:737 msgid "Email Address" msgstr "Адрес электронной почты" -#: templates/js/translated/company.js:762 +#: templates/js/translated/company.js:763 msgid "Delete Contact" msgstr "Удалить Контакт" -#: templates/js/translated/company.js:859 +#: templates/js/translated/company.js:860 msgid "Create New Address" msgstr "" -#: templates/js/translated/company.js:874 -#: templates/js/translated/company.js:1035 +#: templates/js/translated/company.js:875 +#: templates/js/translated/company.js:1036 msgid "Edit Address" msgstr "Редактировать адрес" -#: templates/js/translated/company.js:909 +#: templates/js/translated/company.js:910 msgid "All selected addresses will be deleted" msgstr "" -#: templates/js/translated/company.js:923 +#: templates/js/translated/company.js:924 msgid "Delete Addresses" msgstr "Удалить адрес" -#: templates/js/translated/company.js:950 +#: templates/js/translated/company.js:951 msgid "No addresses found" msgstr "" -#: templates/js/translated/company.js:989 +#: templates/js/translated/company.js:990 msgid "Postal city" msgstr "Почтовый индекс" -#: templates/js/translated/company.js:995 +#: templates/js/translated/company.js:996 msgid "State/province" msgstr "Регион/Область" -#: templates/js/translated/company.js:1007 +#: templates/js/translated/company.js:1008 msgid "Courier notes" msgstr "Записи Курьера" -#: templates/js/translated/company.js:1013 +#: templates/js/translated/company.js:1014 msgid "Internal notes" msgstr "Внутренние записи" -#: templates/js/translated/company.js:1039 +#: templates/js/translated/company.js:1040 msgid "Delete Address" msgstr "Удалить Адрес" -#: templates/js/translated/company.js:1112 +#: templates/js/translated/company.js:1113 msgid "All selected manufacturer parts will be deleted" msgstr "" -#: templates/js/translated/company.js:1127 +#: templates/js/translated/company.js:1128 msgid "Delete Manufacturer Parts" msgstr "" -#: templates/js/translated/company.js:1161 +#: templates/js/translated/company.js:1162 msgid "All selected parameters will be deleted" msgstr "" -#: templates/js/translated/company.js:1175 +#: templates/js/translated/company.js:1176 msgid "Delete Parameters" msgstr "" -#: templates/js/translated/company.js:1191 -#: templates/js/translated/company.js:1479 templates/js/translated/part.js:2250 +#: templates/js/translated/company.js:1192 +#: templates/js/translated/company.js:1480 templates/js/translated/part.js:2250 msgid "Order parts" msgstr "Заказать детали" -#: templates/js/translated/company.js:1208 +#: templates/js/translated/company.js:1209 msgid "Delete manufacturer parts" msgstr "" -#: templates/js/translated/company.js:1240 +#: templates/js/translated/company.js:1241 msgid "Manufacturer part actions" msgstr "" -#: templates/js/translated/company.js:1259 +#: templates/js/translated/company.js:1260 msgid "No manufacturer parts found" msgstr "" -#: templates/js/translated/company.js:1279 -#: templates/js/translated/company.js:1567 templates/js/translated/part.js:801 +#: templates/js/translated/company.js:1280 +#: templates/js/translated/company.js:1568 templates/js/translated/part.js:801 #: templates/js/translated/part.js:1217 msgid "Template part" msgstr "Деталь-шаблон" -#: templates/js/translated/company.js:1283 -#: templates/js/translated/company.js:1571 templates/js/translated/part.js:805 +#: templates/js/translated/company.js:1284 +#: templates/js/translated/company.js:1572 templates/js/translated/part.js:805 #: templates/js/translated/part.js:1221 msgid "Assembled part" msgstr "Производимая Деталь" -#: templates/js/translated/company.js:1403 templates/js/translated/part.js:1471 +#: templates/js/translated/company.js:1404 templates/js/translated/part.js:1471 msgid "No parameters found" msgstr "" -#: templates/js/translated/company.js:1438 templates/js/translated/part.js:1534 +#: templates/js/translated/company.js:1439 templates/js/translated/part.js:1534 msgid "Edit parameter" msgstr "Редактировать параметр" -#: templates/js/translated/company.js:1439 templates/js/translated/part.js:1535 +#: templates/js/translated/company.js:1440 templates/js/translated/part.js:1535 msgid "Delete parameter" msgstr "Удалить параметр" -#: templates/js/translated/company.js:1456 templates/js/translated/part.js:1440 +#: templates/js/translated/company.js:1457 templates/js/translated/part.js:1440 msgid "Edit Parameter" msgstr "Редактировать параметр" -#: templates/js/translated/company.js:1465 templates/js/translated/part.js:1556 +#: templates/js/translated/company.js:1466 templates/js/translated/part.js:1556 msgid "Delete Parameter" msgstr "Удалить параметр" -#: templates/js/translated/company.js:1496 +#: templates/js/translated/company.js:1497 msgid "Delete supplier parts" msgstr "" -#: templates/js/translated/company.js:1546 +#: templates/js/translated/company.js:1547 msgid "No supplier parts found" msgstr "" -#: templates/js/translated/company.js:1664 +#: templates/js/translated/company.js:1665 msgid "Base Units" msgstr "Базовая Единица" -#: templates/js/translated/company.js:1694 +#: templates/js/translated/company.js:1695 msgid "Availability" msgstr "Доступность" -#: templates/js/translated/company.js:1725 +#: templates/js/translated/company.js:1726 msgid "Edit supplier part" msgstr "" -#: templates/js/translated/company.js:1726 +#: templates/js/translated/company.js:1727 msgid "Delete supplier part" msgstr "" -#: templates/js/translated/company.js:1779 +#: templates/js/translated/company.js:1780 #: templates/js/translated/pricing.js:694 msgid "Delete Price Break" msgstr "" -#: templates/js/translated/company.js:1789 +#: templates/js/translated/company.js:1790 #: templates/js/translated/pricing.js:712 msgid "Edit Price Break" msgstr "Изменить разрыв цен" -#: templates/js/translated/company.js:1804 +#: templates/js/translated/company.js:1805 msgid "No price break information found" msgstr "" -#: templates/js/translated/company.js:1833 +#: templates/js/translated/company.js:1834 msgid "Last updated" msgstr "Последнее обновление" -#: templates/js/translated/company.js:1840 +#: templates/js/translated/company.js:1841 msgid "Edit price break" msgstr "Изменить разрыв цен" -#: templates/js/translated/company.js:1841 +#: templates/js/translated/company.js:1842 msgid "Delete price break" msgstr "" @@ -12977,19 +13342,19 @@ msgstr "Имя Поля" msgid "Select Columns" msgstr "Выбрать столбцы" -#: templates/js/translated/helpers.js:80 +#: templates/js/translated/helpers.js:81 msgid "YES" msgstr "ДА" -#: templates/js/translated/helpers.js:83 +#: templates/js/translated/helpers.js:84 msgid "NO" msgstr "НЕТ" -#: templates/js/translated/helpers.js:96 +#: templates/js/translated/helpers.js:97 msgid "True" msgstr "Да" -#: templates/js/translated/helpers.js:97 +#: templates/js/translated/helpers.js:98 msgid "False" msgstr "" @@ -13131,7 +13496,7 @@ msgid "Delete Line" msgstr "Удалить Строку" #: templates/js/translated/order.js:306 -#: templates/js/translated/purchase_order.js:2060 +#: templates/js/translated/purchase_order.js:2044 msgid "No line items found" msgstr "" @@ -13366,19 +13731,19 @@ msgid "Delete Part Parameter Template" msgstr "" #: templates/js/translated/part.js:1723 -#: templates/js/translated/purchase_order.js:1724 +#: templates/js/translated/purchase_order.js:1708 msgid "No purchase orders found" msgstr "" #: templates/js/translated/part.js:1867 -#: templates/js/translated/purchase_order.js:2223 +#: templates/js/translated/purchase_order.js:2207 #: templates/js/translated/return_order.js:754 -#: templates/js/translated/sales_order.js:1911 +#: templates/js/translated/sales_order.js:1892 msgid "This line item is overdue" msgstr "" #: templates/js/translated/part.js:1913 -#: templates/js/translated/purchase_order.js:2290 +#: templates/js/translated/purchase_order.js:2274 msgid "Receive line item" msgstr "" @@ -13419,7 +13784,7 @@ msgid "No category" msgstr "Нет категории" #: templates/js/translated/part.js:2550 templates/js/translated/part.js:2680 -#: templates/js/translated/stock.js:2754 +#: templates/js/translated/stock.js:2755 msgid "Display as list" msgstr "Отобразить списком" @@ -13431,7 +13796,7 @@ msgstr "Отобразить сеткой" msgid "No subcategories found" msgstr "" -#: templates/js/translated/part.js:2700 templates/js/translated/stock.js:2774 +#: templates/js/translated/part.js:2700 templates/js/translated/stock.js:2775 msgid "Display as tree" msgstr "Отобразить древом" @@ -13483,23 +13848,23 @@ msgstr "" msgid "Speculative" msgstr "Приблизительный" -#: templates/js/translated/part.js:3128 +#: templates/js/translated/part.js:3144 msgid "No scheduling information available for this part" msgstr "" -#: templates/js/translated/part.js:3134 +#: templates/js/translated/part.js:3150 msgid "Error fetching scheduling information for this part" msgstr "" -#: templates/js/translated/part.js:3230 +#: templates/js/translated/part.js:3246 msgid "Scheduled Stock Quantities" msgstr "" -#: templates/js/translated/part.js:3246 +#: templates/js/translated/part.js:3262 msgid "Maximum Quantity" msgstr "Максимальное количество" -#: templates/js/translated/part.js:3291 +#: templates/js/translated/part.js:3307 msgid "Minimum Stock Level" msgstr "" @@ -13575,267 +13940,243 @@ msgstr "" msgid "Purchase Price History" msgstr "" -#: templates/js/translated/pricing.js:894 +#: templates/js/translated/pricing.js:892 msgid "No sales history data available" msgstr "" -#: templates/js/translated/pricing.js:916 +#: templates/js/translated/pricing.js:914 msgid "Sale Price History" msgstr "" -#: templates/js/translated/pricing.js:1005 +#: templates/js/translated/pricing.js:1003 msgid "No variant data available" msgstr "" -#: templates/js/translated/pricing.js:1045 +#: templates/js/translated/pricing.js:1043 msgid "Variant Part" msgstr "Вариант детали" -#: templates/js/translated/purchase_order.js:169 -msgid "Select purchase order to duplicate" -msgstr "" - -#: templates/js/translated/purchase_order.js:176 -msgid "Duplicate Line Items" -msgstr "" - -#: templates/js/translated/purchase_order.js:177 -msgid "Duplicate all line items from the selected order" -msgstr "" - -#: templates/js/translated/purchase_order.js:184 -msgid "Duplicate Extra Lines" -msgstr "" - -#: templates/js/translated/purchase_order.js:185 -msgid "Duplicate extra line items from the selected order" -msgstr "" - -#: templates/js/translated/purchase_order.js:206 +#: templates/js/translated/purchase_order.js:188 msgid "Edit Purchase Order" msgstr "" -#: templates/js/translated/purchase_order.js:223 +#: templates/js/translated/purchase_order.js:205 msgid "Duplication Options" msgstr "" -#: templates/js/translated/purchase_order.js:431 +#: templates/js/translated/purchase_order.js:414 msgid "Complete Purchase Order" msgstr "" -#: templates/js/translated/purchase_order.js:448 +#: templates/js/translated/purchase_order.js:431 #: templates/js/translated/return_order.js:210 -#: templates/js/translated/sales_order.js:552 +#: templates/js/translated/sales_order.js:511 msgid "Mark this order as complete?" msgstr "" -#: templates/js/translated/purchase_order.js:454 +#: templates/js/translated/purchase_order.js:437 msgid "All line items have been received" msgstr "" -#: templates/js/translated/purchase_order.js:459 +#: templates/js/translated/purchase_order.js:442 msgid "This order has line items which have not been marked as received." msgstr "" -#: templates/js/translated/purchase_order.js:460 +#: templates/js/translated/purchase_order.js:443 msgid "Completing this order means that the order and line items will no longer be editable." msgstr "" -#: templates/js/translated/purchase_order.js:483 +#: templates/js/translated/purchase_order.js:466 msgid "Cancel Purchase Order" msgstr "" -#: templates/js/translated/purchase_order.js:488 +#: templates/js/translated/purchase_order.js:471 msgid "Are you sure you wish to cancel this purchase order?" msgstr "" -#: templates/js/translated/purchase_order.js:494 +#: templates/js/translated/purchase_order.js:477 msgid "This purchase order can not be cancelled" msgstr "" -#: templates/js/translated/purchase_order.js:515 +#: templates/js/translated/purchase_order.js:498 #: templates/js/translated/return_order.js:164 msgid "After placing this order, line items will no longer be editable." msgstr "" -#: templates/js/translated/purchase_order.js:520 +#: templates/js/translated/purchase_order.js:503 msgid "Issue Purchase Order" msgstr "" -#: templates/js/translated/purchase_order.js:612 +#: templates/js/translated/purchase_order.js:595 msgid "At least one purchaseable part must be selected" msgstr "" -#: templates/js/translated/purchase_order.js:637 +#: templates/js/translated/purchase_order.js:620 msgid "Quantity to order" msgstr "" -#: templates/js/translated/purchase_order.js:646 +#: templates/js/translated/purchase_order.js:629 msgid "New supplier part" msgstr "" -#: templates/js/translated/purchase_order.js:664 +#: templates/js/translated/purchase_order.js:647 msgid "New purchase order" msgstr "" -#: templates/js/translated/purchase_order.js:705 +#: templates/js/translated/purchase_order.js:688 msgid "Add to purchase order" msgstr "" -#: templates/js/translated/purchase_order.js:755 +#: templates/js/translated/purchase_order.js:738 msgid "Merge" msgstr "" -#: templates/js/translated/purchase_order.js:859 +#: templates/js/translated/purchase_order.js:842 msgid "No matching supplier parts" msgstr "" -#: templates/js/translated/purchase_order.js:878 +#: templates/js/translated/purchase_order.js:861 msgid "No matching purchase orders" msgstr "" -#: templates/js/translated/purchase_order.js:1073 +#: templates/js/translated/purchase_order.js:1056 #: templates/js/translated/return_order.js:490 msgid "Select Line Items" msgstr "" -#: templates/js/translated/purchase_order.js:1074 +#: templates/js/translated/purchase_order.js:1057 #: templates/js/translated/return_order.js:491 msgid "At least one line item must be selected" msgstr "" -#: templates/js/translated/purchase_order.js:1104 +#: templates/js/translated/purchase_order.js:1087 msgid "Received Quantity" msgstr "" -#: templates/js/translated/purchase_order.js:1115 +#: templates/js/translated/purchase_order.js:1098 msgid "Quantity to receive" msgstr "" -#: templates/js/translated/purchase_order.js:1170 +#: templates/js/translated/purchase_order.js:1153 #: templates/js/translated/stock.js:1215 msgid "Specify packaging for incoming stock items" msgstr "" -#: templates/js/translated/purchase_order.js:1223 +#: templates/js/translated/purchase_order.js:1206 msgid "Stock Status" msgstr "Статус Запасов" -#: templates/js/translated/purchase_order.js:1237 +#: templates/js/translated/purchase_order.js:1220 msgid "Add barcode" msgstr "Добавить штрихкод" -#: templates/js/translated/purchase_order.js:1238 +#: templates/js/translated/purchase_order.js:1221 msgid "Remove barcode" msgstr "Удалить штрихкод" -#: templates/js/translated/purchase_order.js:1241 +#: templates/js/translated/purchase_order.js:1224 msgid "Specify location" msgstr "Выберите место хранения" -#: templates/js/translated/purchase_order.js:1249 +#: templates/js/translated/purchase_order.js:1232 msgid "Add batch code" msgstr "Добавить код партии" -#: templates/js/translated/purchase_order.js:1259 +#: templates/js/translated/purchase_order.js:1242 msgid "Specify packaging" msgstr "" -#: templates/js/translated/purchase_order.js:1270 +#: templates/js/translated/purchase_order.js:1253 msgid "Add serial numbers" msgstr "" -#: templates/js/translated/purchase_order.js:1281 +#: templates/js/translated/purchase_order.js:1264 msgid "Add note" msgstr "" -#: templates/js/translated/purchase_order.js:1338 +#: templates/js/translated/purchase_order.js:1321 msgid "Serials" msgstr "Серийные номера" -#: templates/js/translated/purchase_order.js:1368 +#: templates/js/translated/purchase_order.js:1351 msgid "Order Code" msgstr "Код Заказа" -#: templates/js/translated/purchase_order.js:1370 +#: templates/js/translated/purchase_order.js:1353 msgid "Quantity to Receive" msgstr "" -#: templates/js/translated/purchase_order.js:1395 +#: templates/js/translated/purchase_order.js:1379 #: templates/js/translated/return_order.js:559 msgid "Confirm receipt of items" msgstr "" -#: templates/js/translated/purchase_order.js:1396 +#: templates/js/translated/purchase_order.js:1380 msgid "Receive Purchase Order Items" msgstr "" -#: templates/js/translated/purchase_order.js:1464 +#: templates/js/translated/purchase_order.js:1448 msgid "Scan Item Barcode" msgstr "" -#: templates/js/translated/purchase_order.js:1465 +#: templates/js/translated/purchase_order.js:1449 msgid "Scan barcode on incoming item (must not match any existing stock items)" msgstr "Сканировать штрихкод входящего элемента (не должен совпадать с любой существующей складской позицией)" -#: templates/js/translated/purchase_order.js:1479 +#: templates/js/translated/purchase_order.js:1463 msgid "Invalid barcode data" msgstr "" -#: templates/js/translated/purchase_order.js:1751 +#: templates/js/translated/purchase_order.js:1735 #: templates/js/translated/return_order.js:285 -#: templates/js/translated/sales_order.js:810 -#: templates/js/translated/sales_order.js:1034 +#: templates/js/translated/sales_order.js:769 +#: templates/js/translated/sales_order.js:1007 msgid "Order is overdue" msgstr "Заказ просрочен" -#: templates/js/translated/purchase_order.js:1913 +#: templates/js/translated/purchase_order.js:1897 msgid "All selected Line items will be deleted" msgstr "" -#: templates/js/translated/purchase_order.js:1931 +#: templates/js/translated/purchase_order.js:1915 msgid "Delete selected Line items?" msgstr "" -#: templates/js/translated/purchase_order.js:1986 -#: templates/js/translated/sales_order.js:2106 +#: templates/js/translated/purchase_order.js:1970 +#: templates/js/translated/sales_order.js:2087 msgid "Duplicate Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2001 +#: templates/js/translated/purchase_order.js:1985 #: templates/js/translated/return_order.js:475 #: templates/js/translated/return_order.js:667 -#: templates/js/translated/sales_order.js:2119 +#: templates/js/translated/sales_order.js:2100 msgid "Edit Line Item" msgstr "Редактировать Позицию" -#: templates/js/translated/purchase_order.js:2012 +#: templates/js/translated/purchase_order.js:1996 #: templates/js/translated/return_order.js:680 -#: templates/js/translated/sales_order.js:2130 +#: templates/js/translated/sales_order.js:2111 msgid "Delete Line Item" msgstr "Удалить позицию" -#: templates/js/translated/purchase_order.js:2294 -#: templates/js/translated/sales_order.js:2060 +#: templates/js/translated/purchase_order.js:2278 +#: templates/js/translated/sales_order.js:2041 msgid "Duplicate line item" msgstr "" -#: templates/js/translated/purchase_order.js:2295 +#: templates/js/translated/purchase_order.js:2279 #: templates/js/translated/return_order.js:799 -#: templates/js/translated/sales_order.js:2061 +#: templates/js/translated/sales_order.js:2042 msgid "Edit line item" msgstr "Редактировать Позицию" -#: templates/js/translated/purchase_order.js:2296 +#: templates/js/translated/purchase_order.js:2280 #: templates/js/translated/return_order.js:803 -#: templates/js/translated/sales_order.js:2067 +#: templates/js/translated/sales_order.js:2048 msgid "Delete line item" msgstr "Удалить позицию" -#: templates/js/translated/report.js:49 -msgid "Print Report" -msgstr "" - #: templates/js/translated/report.js:68 msgid "Report print successful" msgstr "" @@ -13878,7 +14219,7 @@ msgid "No return orders found" msgstr "" #: templates/js/translated/return_order.js:299 -#: templates/js/translated/sales_order.js:824 +#: templates/js/translated/sales_order.js:783 msgid "Invalid Customer" msgstr "Некорректный клиент" @@ -13887,7 +14228,7 @@ msgid "Receive Return Order Items" msgstr "" #: templates/js/translated/return_order.js:691 -#: templates/js/translated/sales_order.js:2267 +#: templates/js/translated/sales_order.js:2248 msgid "No matching line items" msgstr "" @@ -13903,188 +14244,181 @@ msgstr "" msgid "Edit Sales Order" msgstr "" -#: templates/js/translated/sales_order.js:291 +#: templates/js/translated/sales_order.js:288 msgid "No stock items have been allocated to this shipment" msgstr "Нет зарезервированных складских позиций для этого отправления" -#: templates/js/translated/sales_order.js:296 -msgid "The following stock items will be shipped" -msgstr "Следующие складские позиции будут отправлены" - -#: templates/js/translated/sales_order.js:336 +#: templates/js/translated/sales_order.js:294 msgid "Complete Shipment" msgstr "" -#: templates/js/translated/sales_order.js:360 +#: templates/js/translated/sales_order.js:318 msgid "Confirm Shipment" msgstr "" -#: templates/js/translated/sales_order.js:416 +#: templates/js/translated/sales_order.js:375 msgid "No pending shipments found" msgstr "" -#: templates/js/translated/sales_order.js:420 +#: templates/js/translated/sales_order.js:379 msgid "No stock items have been allocated to pending shipments" msgstr "Нет складских позиций зарезервированных для ожидающих отправлений" -#: templates/js/translated/sales_order.js:430 +#: templates/js/translated/sales_order.js:389 msgid "Complete Shipments" msgstr "" -#: templates/js/translated/sales_order.js:452 +#: templates/js/translated/sales_order.js:411 msgid "Skip" msgstr "Пропустить" -#: templates/js/translated/sales_order.js:484 +#: templates/js/translated/sales_order.js:443 msgid "Ship Sales Order" msgstr "" -#: templates/js/translated/sales_order.js:500 +#: templates/js/translated/sales_order.js:459 msgid "Ship this order?" msgstr "" -#: templates/js/translated/sales_order.js:506 +#: templates/js/translated/sales_order.js:465 msgid "Order cannot be shipped as there are incomplete shipments" msgstr "" -#: templates/js/translated/sales_order.js:513 +#: templates/js/translated/sales_order.js:472 msgid "This order has line items which have not been completed." msgstr "" -#: templates/js/translated/sales_order.js:514 +#: templates/js/translated/sales_order.js:473 msgid "Shipping this order means that the order and line items will no longer be editable." msgstr "" -#: templates/js/translated/sales_order.js:572 +#: templates/js/translated/sales_order.js:531 msgid "Issue this Sales Order?" msgstr "" -#: templates/js/translated/sales_order.js:577 +#: templates/js/translated/sales_order.js:536 msgid "Issue Sales Order" msgstr "" -#: templates/js/translated/sales_order.js:596 +#: templates/js/translated/sales_order.js:555 msgid "Cancel Sales Order" msgstr "" -#: templates/js/translated/sales_order.js:601 +#: templates/js/translated/sales_order.js:560 msgid "Cancelling this order means that the order will no longer be editable." msgstr "" -#: templates/js/translated/sales_order.js:655 +#: templates/js/translated/sales_order.js:614 msgid "Create New Shipment" msgstr "" -#: templates/js/translated/sales_order.js:764 +#: templates/js/translated/sales_order.js:723 msgid "No sales orders found" msgstr "" -#: templates/js/translated/sales_order.js:944 +#: templates/js/translated/sales_order.js:907 msgid "Edit shipment" msgstr "Редактировать отправление" -#: templates/js/translated/sales_order.js:947 +#: templates/js/translated/sales_order.js:910 msgid "Complete shipment" msgstr "" -#: templates/js/translated/sales_order.js:952 +#: templates/js/translated/sales_order.js:915 msgid "Delete shipment" msgstr "Удалить отправление" -#: templates/js/translated/sales_order.js:969 +#: templates/js/translated/sales_order.js:932 msgid "Edit Shipment" msgstr "Редактировать отправление" -#: templates/js/translated/sales_order.js:984 +#: templates/js/translated/sales_order.js:947 msgid "Delete Shipment" msgstr "Удалить Отправление" -#: templates/js/translated/sales_order.js:1017 +#: templates/js/translated/sales_order.js:989 msgid "No matching shipments found" msgstr "" -#: templates/js/translated/sales_order.js:1042 +#: templates/js/translated/sales_order.js:1015 msgid "Shipment Reference" msgstr "" -#: templates/js/translated/sales_order.js:1066 -#: templates/js/translated/sales_order.js:1565 +#: templates/js/translated/sales_order.js:1032 +#: templates/js/translated/sales_order.js:1531 msgid "Not shipped" msgstr "Не отправленно" -#: templates/js/translated/sales_order.js:1084 +#: templates/js/translated/sales_order.js:1050 msgid "Tracking" msgstr "Отслеживание" -#: templates/js/translated/sales_order.js:1088 +#: templates/js/translated/sales_order.js:1054 msgid "Invoice" msgstr "Счет" -#: templates/js/translated/sales_order.js:1255 +#: templates/js/translated/sales_order.js:1221 msgid "Add Shipment" msgstr "Создать Отправление" -#: templates/js/translated/sales_order.js:1306 +#: templates/js/translated/sales_order.js:1272 msgid "Confirm stock allocation" msgstr "" -#: templates/js/translated/sales_order.js:1307 +#: templates/js/translated/sales_order.js:1273 msgid "Allocate Stock Items to Sales Order" msgstr "Зарезервировать складские позиции для заказа на продажу" -#: templates/js/translated/sales_order.js:1513 +#: templates/js/translated/sales_order.js:1479 msgid "No sales order allocations found" msgstr "" -#: templates/js/translated/sales_order.js:1605 +#: templates/js/translated/sales_order.js:1571 msgid "Edit Stock Allocation" msgstr "" -#: templates/js/translated/sales_order.js:1619 +#: templates/js/translated/sales_order.js:1585 msgid "Confirm Delete Operation" msgstr "" -#: templates/js/translated/sales_order.js:1620 +#: templates/js/translated/sales_order.js:1586 msgid "Delete Stock Allocation" msgstr "" -#: templates/js/translated/sales_order.js:1659 -#: templates/js/translated/sales_order.js:1746 +#: templates/js/translated/sales_order.js:1640 +#: templates/js/translated/sales_order.js:1727 #: templates/js/translated/stock.js:1861 msgid "Shipped to customer" msgstr "" -#: templates/js/translated/sales_order.js:1667 -#: templates/js/translated/sales_order.js:1755 +#: templates/js/translated/sales_order.js:1648 +#: templates/js/translated/sales_order.js:1736 msgid "Stock location not specified" msgstr "" -#: templates/js/translated/sales_order.js:2044 -msgid "Allocate serial numbers" -msgstr "" - -#: templates/js/translated/sales_order.js:2048 -msgid "Purchase stock" -msgstr "Закупить запасы" - -#: templates/js/translated/sales_order.js:2057 -#: templates/js/translated/sales_order.js:2245 -msgid "Calculate price" -msgstr "Рассчитать стоимость" - -#: templates/js/translated/sales_order.js:2071 -msgid "Cannot be deleted as items have been shipped" -msgstr "" - -#: templates/js/translated/sales_order.js:2074 -msgid "Cannot be deleted as items have been allocated" -msgstr "" - -#: templates/js/translated/sales_order.js:2145 +#: templates/js/translated/sales_order.js:2025 +#: templates/js/translated/sales_order.js:2126 msgid "Allocate Serial Numbers" msgstr "" -#: templates/js/translated/sales_order.js:2253 +#: templates/js/translated/sales_order.js:2029 +msgid "Purchase stock" +msgstr "Закупить запасы" + +#: templates/js/translated/sales_order.js:2038 +#: templates/js/translated/sales_order.js:2226 +msgid "Calculate price" +msgstr "Рассчитать стоимость" + +#: templates/js/translated/sales_order.js:2052 +msgid "Cannot be deleted as items have been shipped" +msgstr "" + +#: templates/js/translated/sales_order.js:2055 +msgid "Cannot be deleted as items have been allocated" +msgstr "" + +#: templates/js/translated/sales_order.js:2234 msgid "Update Unit Price" msgstr "" @@ -14209,11 +14543,8 @@ msgid "Find Serial Number" msgstr "" #: templates/js/translated/stock.js:603 templates/js/translated/stock.js:604 -msgid "Enter serial number" -msgstr "" - #: templates/js/translated/stock.js:620 -msgid "Enter a serial number" +msgid "Enter serial number" msgstr "" #: templates/js/translated/stock.js:640 @@ -14284,7 +14615,7 @@ msgstr "Взять" msgid "Add Stock" msgstr "Добавить Запасы" -#: templates/js/translated/stock.js:1049 users/models.py:396 +#: templates/js/translated/stock.js:1049 users/models.py:398 msgid "Add" msgstr "Добавить" @@ -14308,7 +14639,7 @@ msgstr "" msgid "Adjust packaging" msgstr "" -#: templates/js/translated/stock.js:1256 templates/js/translated/stock.js:3382 +#: templates/js/translated/stock.js:1256 templates/js/translated/stock.js:3383 msgid "Select Stock Items" msgstr "Выбрать складские позиции" @@ -14320,18 +14651,6 @@ msgstr "Выбрать как минимум одну складскую поз msgid "Confirm stock adjustment" msgstr "Подтвердите изменение запасов" -#: templates/js/translated/stock.js:1448 -msgid "PASS" -msgstr "ПРОШЕЛ" - -#: templates/js/translated/stock.js:1450 -msgid "FAIL" -msgstr "ПРОВАЛЕН" - -#: templates/js/translated/stock.js:1455 -msgid "NO RESULT" -msgstr "НЕТ РЕЗУЛЬТАТА" - #: templates/js/translated/stock.js:1535 msgid "Pass test" msgstr "Тест пройден" @@ -14388,216 +14707,216 @@ msgstr "" msgid "No stock location set" msgstr "Место хранения не установлено" -#: templates/js/translated/stock.js:1927 +#: templates/js/translated/stock.js:1928 msgid "Change stock status" msgstr "Изменить статус запасов" -#: templates/js/translated/stock.js:1936 +#: templates/js/translated/stock.js:1937 msgid "Merge stock" msgstr "Объединить Запасы" -#: templates/js/translated/stock.js:1985 +#: templates/js/translated/stock.js:1986 msgid "Delete stock" msgstr "Удалить запасы" -#: templates/js/translated/stock.js:2038 +#: templates/js/translated/stock.js:2039 msgid "stock items" msgstr "складские позиции" -#: templates/js/translated/stock.js:2043 +#: templates/js/translated/stock.js:2044 msgid "Scan to location" msgstr "" -#: templates/js/translated/stock.js:2054 +#: templates/js/translated/stock.js:2055 msgid "Stock Actions" msgstr "Действия с Запасами" -#: templates/js/translated/stock.js:2098 +#: templates/js/translated/stock.js:2099 msgid "Load installed items" msgstr "" -#: templates/js/translated/stock.js:2176 +#: templates/js/translated/stock.js:2177 msgid "Stock item is in production" msgstr "Складская позиция в производстве" -#: templates/js/translated/stock.js:2181 +#: templates/js/translated/stock.js:2182 msgid "Stock item assigned to sales order" msgstr "Складская позиция зарезервирована заказом на продажу" -#: templates/js/translated/stock.js:2184 +#: templates/js/translated/stock.js:2185 msgid "Stock item assigned to customer" msgstr "Складская позиция была назначена покупателю" -#: templates/js/translated/stock.js:2187 +#: templates/js/translated/stock.js:2188 msgid "Serialized stock item has been allocated" msgstr "Сериализированная складская позиция была зарезервирована " -#: templates/js/translated/stock.js:2189 +#: templates/js/translated/stock.js:2190 msgid "Stock item has been fully allocated" msgstr "Складские позиции были полностью зарезервированы" -#: templates/js/translated/stock.js:2191 +#: templates/js/translated/stock.js:2192 msgid "Stock item has been partially allocated" msgstr "Складские позиции были частично зарезервированы" -#: templates/js/translated/stock.js:2194 +#: templates/js/translated/stock.js:2195 msgid "Stock item has been installed in another item" msgstr "Складская позиция была установлена в другую деталь" -#: templates/js/translated/stock.js:2196 +#: templates/js/translated/stock.js:2197 msgid "Stock item has been consumed by a build order" msgstr "Складская позиция была поглощена заказом на продажу" -#: templates/js/translated/stock.js:2200 +#: templates/js/translated/stock.js:2201 msgid "Stock item has expired" msgstr "Складская позиция была просрочена" -#: templates/js/translated/stock.js:2202 +#: templates/js/translated/stock.js:2203 msgid "Stock item will expire soon" msgstr "Складская позиция будет просрочена в скором времени" -#: templates/js/translated/stock.js:2207 +#: templates/js/translated/stock.js:2208 msgid "Stock item has been rejected" msgstr "Складская позиция была отклонена" -#: templates/js/translated/stock.js:2209 +#: templates/js/translated/stock.js:2210 msgid "Stock item is lost" msgstr "Складская позиция была утеряна" -#: templates/js/translated/stock.js:2211 +#: templates/js/translated/stock.js:2212 msgid "Stock item is destroyed" msgstr "Складская позиция была уничтожена" -#: templates/js/translated/stock.js:2215 +#: templates/js/translated/stock.js:2216 #: templates/js/translated/table_filters.js:357 msgid "Depleted" msgstr "Истощен" -#: templates/js/translated/stock.js:2380 +#: templates/js/translated/stock.js:2381 msgid "Supplier part not specified" msgstr "" -#: templates/js/translated/stock.js:2427 +#: templates/js/translated/stock.js:2428 msgid "Stock Value" msgstr "Кол-во Запаса" -#: templates/js/translated/stock.js:2555 +#: templates/js/translated/stock.js:2556 msgid "No stock items matching query" msgstr "Нет складских позиций соответствующих запросу" -#: templates/js/translated/stock.js:2658 +#: templates/js/translated/stock.js:2659 msgid "stock locations" msgstr "места хранения" -#: templates/js/translated/stock.js:2813 +#: templates/js/translated/stock.js:2814 msgid "Load Sublocations" msgstr "" -#: templates/js/translated/stock.js:2930 +#: templates/js/translated/stock.js:2931 msgid "Details" msgstr "Подробности" -#: templates/js/translated/stock.js:2934 +#: templates/js/translated/stock.js:2935 msgid "No changes" msgstr "Нет изменений" -#: templates/js/translated/stock.js:2946 +#: templates/js/translated/stock.js:2947 msgid "Part information unavailable" msgstr "" -#: templates/js/translated/stock.js:2968 +#: templates/js/translated/stock.js:2969 msgid "Location no longer exists" msgstr "" -#: templates/js/translated/stock.js:2985 +#: templates/js/translated/stock.js:2986 msgid "Build order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3000 +#: templates/js/translated/stock.js:3001 msgid "Purchase order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3017 +#: templates/js/translated/stock.js:3018 msgid "Sales Order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3034 +#: templates/js/translated/stock.js:3035 msgid "Return Order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3053 +#: templates/js/translated/stock.js:3054 msgid "Customer no longer exists" msgstr "" -#: templates/js/translated/stock.js:3071 +#: templates/js/translated/stock.js:3072 msgid "Stock item no longer exists" msgstr "Складская позиция не существует" -#: templates/js/translated/stock.js:3089 +#: templates/js/translated/stock.js:3090 msgid "Added" msgstr "Добавлено" -#: templates/js/translated/stock.js:3097 +#: templates/js/translated/stock.js:3098 msgid "Removed" msgstr "Удалено" -#: templates/js/translated/stock.js:3169 +#: templates/js/translated/stock.js:3170 msgid "No installed items" msgstr "" -#: templates/js/translated/stock.js:3223 templates/js/translated/stock.js:3259 +#: templates/js/translated/stock.js:3224 templates/js/translated/stock.js:3260 msgid "Uninstall Stock Item" msgstr "Снять складскую позицию" -#: templates/js/translated/stock.js:3280 +#: templates/js/translated/stock.js:3281 msgid "Select stock item to uninstall" msgstr "Выберите складскую позицию для съема" -#: templates/js/translated/stock.js:3301 +#: templates/js/translated/stock.js:3302 msgid "Install another stock item into this item" msgstr "Установить другую складскую позицию в эту деталь" -#: templates/js/translated/stock.js:3302 +#: templates/js/translated/stock.js:3303 msgid "Stock items can only be installed if they meet the following criteria" msgstr "Складские позиции могут быть установлены, только если отвечают следующим критериям" -#: templates/js/translated/stock.js:3304 +#: templates/js/translated/stock.js:3305 msgid "The Stock Item links to a Part which is the BOM for this Stock Item" msgstr "Складская позиция ссылается на деталь, чья спецификация является этой складской позицией" -#: templates/js/translated/stock.js:3305 +#: templates/js/translated/stock.js:3306 msgid "The Stock Item is currently available in stock" msgstr "Складская позиция сейчас доступна на складе" -#: templates/js/translated/stock.js:3306 +#: templates/js/translated/stock.js:3307 msgid "The Stock Item is not already installed in another item" msgstr "Складская позиция не установлена в другую деталь" -#: templates/js/translated/stock.js:3307 +#: templates/js/translated/stock.js:3308 msgid "The Stock Item is tracked by either a batch code or serial number" msgstr "Складская позиция отслеживается либо по коду партии, либо серийному номеру" -#: templates/js/translated/stock.js:3320 +#: templates/js/translated/stock.js:3321 msgid "Select part to install" msgstr "" -#: templates/js/translated/stock.js:3383 +#: templates/js/translated/stock.js:3384 msgid "Select one or more stock items" msgstr "Выберите одну или более складских позиций" -#: templates/js/translated/stock.js:3396 +#: templates/js/translated/stock.js:3397 msgid "Selected stock items" msgstr "Выбранные складские позиции" -#: templates/js/translated/stock.js:3400 +#: templates/js/translated/stock.js:3401 msgid "Change Stock Status" msgstr "Изменить статус запасов" -#: templates/js/translated/stock.js:3477 +#: templates/js/translated/stock.js:3478 msgid "This week" msgstr "" -#: templates/js/translated/stock.js:3485 +#: templates/js/translated/stock.js:3486 msgid "This month" msgstr "" @@ -14734,10 +15053,6 @@ msgstr "" msgid "Show items which are in production" msgstr "" -#: templates/js/translated/table_filters.js:372 -msgid "Include Variants" -msgstr "" - #: templates/js/translated/table_filters.js:373 msgid "Include stock items for variant parts" msgstr "Включить складские позиции для разновидностей деталей" @@ -15012,10 +15327,6 @@ msgstr "Ошибка входа в аккаунт" msgid "An error occurred while attempting to login via your social network account." msgstr "Произошла ошибка при попытке входа через социальную сеть." -#: templates/socialaccount/authentication_error.html:13 -msgid "Contact your system administrator for further information." -msgstr "Свяжитесь с вашим системным администратором для получения дополнительной информации." - #: templates/socialaccount/login.html:13 #, python-format msgid "Connect %(provider)s" @@ -15141,27 +15452,27 @@ msgstr "Да" msgid "No" msgstr "Нет" -#: users/admin.py:104 +#: users/admin.py:101 msgid "Users" msgstr "Пользователи" -#: users/admin.py:105 +#: users/admin.py:102 msgid "Select which users are assigned to this group" msgstr "" -#: users/admin.py:249 +#: users/admin.py:246 msgid "The following users are members of multiple groups" msgstr "" -#: users/admin.py:283 +#: users/admin.py:280 msgid "Personal info" msgstr "Персональная информация" -#: users/admin.py:285 +#: users/admin.py:282 msgid "Permissions" msgstr "Права доступа" -#: users/admin.py:288 +#: users/admin.py:285 msgid "Important dates" msgstr "Важные даты" @@ -15205,35 +15516,35 @@ msgstr "" msgid "Revoked" msgstr "Отозван" -#: users/models.py:379 +#: users/models.py:381 msgid "Permission set" msgstr "Права доступа" -#: users/models.py:388 +#: users/models.py:390 msgid "Group" msgstr "Группа" -#: users/models.py:392 +#: users/models.py:394 msgid "View" msgstr "Вид" -#: users/models.py:392 +#: users/models.py:394 msgid "Permission to view items" msgstr "Разрешение на просмотр элементов" -#: users/models.py:396 +#: users/models.py:398 msgid "Permission to add items" msgstr "Разрешение на добавление элементов" -#: users/models.py:400 +#: users/models.py:402 msgid "Change" msgstr "Изменить" -#: users/models.py:402 +#: users/models.py:404 msgid "Permissions to edit items" msgstr "Разрешение на редактирование элементов" -#: users/models.py:408 +#: users/models.py:410 msgid "Permission to delete items" msgstr "Разрешение на удаление элементов" diff --git a/src/backend/InvenTree/locale/sk/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/sk/LC_MESSAGES/django.po index 96e4a319cd..85aae96b8b 100644 --- a/src/backend/InvenTree/locale/sk/LC_MESSAGES/django.po +++ b/src/backend/InvenTree/locale/sk/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-08-20 01:22+0000\n" -"PO-Revision-Date: 2024-08-20 19:51\n" +"POT-Creation-Date: 2024-11-04 03:11+0000\n" +"PO-Revision-Date: 2024-11-04 03:14\n" "Last-Translator: \n" "Language-Team: Slovak\n" "Language: sk_SK\n" @@ -14,81 +14,89 @@ msgstr "" "X-Crowdin-Project: inventree\n" "X-Crowdin-Project-ID: 452300\n" "X-Crowdin-Language: sk\n" -"X-Crowdin-File: /[inventree.InvenTree] l10/src/backend/InvenTree/locale/en/LC_MESSAGES/django.po\n" -"X-Crowdin-File-ID: 216\n" +"X-Crowdin-File: /src/backend/InvenTree/locale/en/LC_MESSAGES/django.po\n" +"X-Crowdin-File-ID: 250\n" -#: InvenTree/api.py:269 +#: InvenTree/api.py:270 msgid "API endpoint not found" msgstr "" -#: InvenTree/api.py:502 +#: InvenTree/api.py:387 +msgid "Invalid items list provided" +msgstr "" + +#: InvenTree/api.py:396 +msgid "Invalid filters provided" +msgstr "" + +#: InvenTree/api.py:401 +msgid "No items found to delete" +msgstr "" + +#: InvenTree/api.py:515 msgid "User does not have permission to view this model" msgstr "" -#: InvenTree/conversion.py:160 +#: InvenTree/conversion.py:161 #, python-brace-format msgid "Invalid unit provided ({unit})" msgstr "" -#: InvenTree/conversion.py:177 +#: InvenTree/conversion.py:178 msgid "No value provided" msgstr "" -#: InvenTree/conversion.py:204 +#: InvenTree/conversion.py:205 #, python-brace-format msgid "Could not convert {original} to {unit}" msgstr "" -#: InvenTree/conversion.py:206 -msgid "Invalid quantity supplied" +#: InvenTree/conversion.py:207 InvenTree/conversion.py:221 +#: InvenTree/helpers.py:505 order/models.py:589 order/models.py:832 +msgid "Invalid quantity provided" msgstr "" -#: InvenTree/conversion.py:220 -#, python-brace-format -msgid "Invalid quantity supplied ({exc})" -msgstr "" - -#: InvenTree/exceptions.py:108 +#: InvenTree/exceptions.py:104 msgid "Error details can be found in the admin panel" msgstr "" -#: InvenTree/fields.py:136 +#: InvenTree/fields.py:135 msgid "Enter date" msgstr "" -#: InvenTree/fields.py:205 InvenTree/models.py:929 build/serializers.py:468 -#: build/serializers.py:546 build/templates/build/sidebar.html:29 -#: company/models.py:836 +#: InvenTree/fields.py:204 InvenTree/models.py:928 build/serializers.py:512 +#: build/serializers.py:590 build/templates/build/sidebar.html:29 +#: company/models.py:833 #: company/templates/company/manufacturer_part_sidebar.html:11 #: company/templates/company/sidebar.html:37 -#: company/templates/company/supplier_part_sidebar.html:11 order/models.py:1380 +#: company/templates/company/supplier_part_sidebar.html:11 order/models.py:1397 #: order/templates/order/po_sidebar.html:11 #: order/templates/order/return_order_sidebar.html:9 #: order/templates/order/so_sidebar.html:17 part/admin.py:59 -#: part/models.py:3297 part/templates/part/part_sidebar.html:65 +#: part/models.py:3348 part/templates/part/part_sidebar.html:65 #: report/templates/report/inventree_build_order_report.html:172 -#: stock/admin.py:230 stock/models.py:2375 stock/models.py:2563 -#: stock/serializers.py:698 stock/serializers.py:856 stock/serializers.py:982 -#: stock/serializers.py:1032 stock/serializers.py:1343 -#: stock/serializers.py:1432 stock/serializers.py:1597 +#: stock/admin.py:231 stock/models.py:2494 stock/models.py:2679 +#: stock/serializers.py:725 stock/serializers.py:887 stock/serializers.py:1013 +#: stock/serializers.py:1063 stock/serializers.py:1374 +#: stock/serializers.py:1463 stock/serializers.py:1628 #: stock/templates/stock/stock_sidebar.html:25 #: templates/js/translated/barcode.js:143 templates/js/translated/bom.js:1265 -#: templates/js/translated/company.js:1684 templates/js/translated/order.js:372 +#: templates/js/translated/company.js:1685 templates/js/translated/order.js:372 #: templates/js/translated/part.js:1087 -#: templates/js/translated/purchase_order.js:2270 +#: templates/js/translated/purchase_order.js:2254 #: templates/js/translated/return_order.js:774 -#: templates/js/translated/sales_order.js:1103 -#: templates/js/translated/sales_order.js:2018 -#: templates/js/translated/stock.js:1621 templates/js/translated/stock.js:2513 +#: templates/js/translated/sales_order.js:1069 +#: templates/js/translated/sales_order.js:1999 +#: templates/js/translated/stock.js:1621 templates/js/translated/stock.js:2514 msgid "Notes" msgstr "" -#: InvenTree/format.py:164 +#: InvenTree/format.py:162 #, python-brace-format msgid "Value '{name}' does not appear in pattern format" msgstr "" -#: InvenTree/format.py:175 +#: InvenTree/format.py:173 msgid "Provided value does not match required pattern: " msgstr "" @@ -132,397 +140,409 @@ msgstr "" msgid "The provided primary email address is not valid." msgstr "" -#: InvenTree/forms.py:274 +#: InvenTree/forms.py:273 msgid "The provided email domain is not approved." msgstr "" -#: InvenTree/forms.py:403 +#: InvenTree/forms.py:402 msgid "Registration is disabled." msgstr "" -#: InvenTree/helpers.py:491 order/models.py:567 order/models.py:810 -msgid "Invalid quantity provided" +#: InvenTree/helpers.py:509 +msgid "Cannot serialize more than 1000 items at once" msgstr "" -#: InvenTree/helpers.py:499 +#: InvenTree/helpers.py:515 msgid "Empty serial number string" msgstr "" -#: InvenTree/helpers.py:528 +#: InvenTree/helpers.py:544 msgid "Duplicate serial" msgstr "" -#: InvenTree/helpers.py:560 InvenTree/helpers.py:603 +#: InvenTree/helpers.py:576 InvenTree/helpers.py:619 InvenTree/helpers.py:637 +#: InvenTree/helpers.py:644 InvenTree/helpers.py:663 #, python-brace-format -msgid "Invalid group range: {group}" +msgid "Invalid group: {group}" msgstr "" -#: InvenTree/helpers.py:591 +#: InvenTree/helpers.py:607 #, python-brace-format msgid "Group range {group} exceeds allowed quantity ({expected_quantity})" msgstr "" -#: InvenTree/helpers.py:621 InvenTree/helpers.py:628 InvenTree/helpers.py:647 -#, python-brace-format -msgid "Invalid group sequence: {group}" -msgstr "" - -#: InvenTree/helpers.py:657 +#: InvenTree/helpers.py:673 msgid "No serial numbers found" msgstr "" -#: InvenTree/helpers.py:662 +#: InvenTree/helpers.py:678 msgid "Number of unique serial numbers ({len(serials)}) must match quantity ({expected_quantity})" msgstr "" -#: InvenTree/helpers.py:780 +#: InvenTree/helpers.py:796 msgid "Remove HTML tags from this value" msgstr "" -#: InvenTree/helpers_model.py:133 +#: InvenTree/helpers.py:881 +msgid "Data contains prohibited markdown content" +msgstr "" + +#: InvenTree/helpers_model.py:130 msgid "Connection error" msgstr "" -#: InvenTree/helpers_model.py:138 InvenTree/helpers_model.py:145 +#: InvenTree/helpers_model.py:135 InvenTree/helpers_model.py:142 msgid "Server responded with invalid status code" msgstr "" -#: InvenTree/helpers_model.py:141 +#: InvenTree/helpers_model.py:138 msgid "Exception occurred" msgstr "" -#: InvenTree/helpers_model.py:151 +#: InvenTree/helpers_model.py:148 msgid "Server responded with invalid Content-Length value" msgstr "" -#: InvenTree/helpers_model.py:154 +#: InvenTree/helpers_model.py:151 msgid "Image size is too large" msgstr "" -#: InvenTree/helpers_model.py:166 +#: InvenTree/helpers_model.py:163 msgid "Image download exceeded maximum size" msgstr "" -#: InvenTree/helpers_model.py:171 +#: InvenTree/helpers_model.py:168 msgid "Remote server returned empty response" msgstr "" -#: InvenTree/helpers_model.py:179 +#: InvenTree/helpers_model.py:176 msgid "Supplied URL is not a valid image file" msgstr "" -#: InvenTree/locales.py:18 +#: InvenTree/locales.py:20 msgid "Arabic" msgstr "" -#: InvenTree/locales.py:19 +#: InvenTree/locales.py:21 msgid "Bulgarian" msgstr "" -#: InvenTree/locales.py:20 +#: InvenTree/locales.py:22 msgid "Czech" msgstr "" -#: InvenTree/locales.py:21 +#: InvenTree/locales.py:23 msgid "Danish" msgstr "" -#: InvenTree/locales.py:22 +#: InvenTree/locales.py:24 msgid "German" msgstr "" -#: InvenTree/locales.py:23 +#: InvenTree/locales.py:25 msgid "Greek" msgstr "" -#: InvenTree/locales.py:24 +#: InvenTree/locales.py:26 msgid "English" msgstr "" -#: InvenTree/locales.py:25 +#: InvenTree/locales.py:27 msgid "Spanish" msgstr "" -#: InvenTree/locales.py:26 +#: InvenTree/locales.py:28 msgid "Spanish (Mexican)" msgstr "" -#: InvenTree/locales.py:27 +#: InvenTree/locales.py:29 msgid "Estonian" msgstr "" -#: InvenTree/locales.py:28 +#: InvenTree/locales.py:30 msgid "Farsi / Persian" msgstr "" -#: InvenTree/locales.py:29 +#: InvenTree/locales.py:31 msgid "Finnish" msgstr "" -#: InvenTree/locales.py:30 +#: InvenTree/locales.py:32 msgid "French" msgstr "" -#: InvenTree/locales.py:31 +#: InvenTree/locales.py:33 msgid "Hebrew" msgstr "" -#: InvenTree/locales.py:32 +#: InvenTree/locales.py:34 msgid "Hindi" msgstr "" -#: InvenTree/locales.py:33 +#: InvenTree/locales.py:35 msgid "Hungarian" msgstr "" -#: InvenTree/locales.py:34 +#: InvenTree/locales.py:36 msgid "Italian" msgstr "" -#: InvenTree/locales.py:35 +#: InvenTree/locales.py:37 msgid "Japanese" msgstr "" -#: InvenTree/locales.py:36 +#: InvenTree/locales.py:38 msgid "Korean" msgstr "" -#: InvenTree/locales.py:37 -msgid "Latvian" -msgstr "" - -#: InvenTree/locales.py:38 -msgid "Dutch" -msgstr "" - #: InvenTree/locales.py:39 -msgid "Norwegian" +msgid "Lithuanian" msgstr "" #: InvenTree/locales.py:40 -msgid "Polish" +msgid "Latvian" msgstr "" #: InvenTree/locales.py:41 -msgid "Portuguese" +msgid "Dutch" msgstr "" #: InvenTree/locales.py:42 -msgid "Portuguese (Brazilian)" +msgid "Norwegian" msgstr "" #: InvenTree/locales.py:43 -msgid "Romanian" +msgid "Polish" msgstr "" #: InvenTree/locales.py:44 -msgid "Russian" +msgid "Portuguese" msgstr "" #: InvenTree/locales.py:45 -msgid "Slovak" +msgid "Portuguese (Brazilian)" msgstr "" #: InvenTree/locales.py:46 -msgid "Slovenian" +msgid "Romanian" msgstr "" #: InvenTree/locales.py:47 -msgid "Serbian" +msgid "Russian" msgstr "" #: InvenTree/locales.py:48 -msgid "Swedish" +msgid "Slovak" msgstr "" #: InvenTree/locales.py:49 -msgid "Thai" +msgid "Slovenian" msgstr "" #: InvenTree/locales.py:50 -msgid "Turkish" +msgid "Serbian" msgstr "" #: InvenTree/locales.py:51 -msgid "Ukrainian" +msgid "Swedish" msgstr "" #: InvenTree/locales.py:52 -msgid "Vietnamese" +msgid "Thai" msgstr "" #: InvenTree/locales.py:53 -msgid "Chinese (Simplified)" +msgid "Turkish" msgstr "" #: InvenTree/locales.py:54 +msgid "Ukrainian" +msgstr "" + +#: InvenTree/locales.py:55 +msgid "Vietnamese" +msgstr "" + +#: InvenTree/locales.py:56 +msgid "Chinese (Simplified)" +msgstr "" + +#: InvenTree/locales.py:57 msgid "Chinese (Traditional)" msgstr "" #: InvenTree/magic_login.py:28 -#, python-brace-format -msgid "[{site_name}] Log in to the app" +msgid "Log in to the app" msgstr "" -#: InvenTree/magic_login.py:38 InvenTree/serializers.py:415 -#: company/models.py:136 company/templates/company/company_base.html:138 +#: InvenTree/magic_login.py:38 InvenTree/serializers.py:416 +#: company/models.py:133 company/templates/company/company_base.html:138 #: templates/InvenTree/settings/user.html:49 -#: templates/js/translated/company.js:677 +#: templates/js/translated/company.js:678 msgid "Email" msgstr "" -#: InvenTree/models.py:103 +#: InvenTree/models.py:105 msgid "Error running plugin validation" msgstr "" -#: InvenTree/models.py:172 +#: InvenTree/models.py:174 msgid "Metadata must be a python dict object" msgstr "" -#: InvenTree/models.py:178 +#: InvenTree/models.py:180 msgid "Plugin Metadata" msgstr "" -#: InvenTree/models.py:179 +#: InvenTree/models.py:181 msgid "JSON metadata field, for use by external plugins" msgstr "" -#: InvenTree/models.py:409 +#: InvenTree/models.py:408 msgid "Improperly formatted pattern" msgstr "" -#: InvenTree/models.py:416 +#: InvenTree/models.py:415 msgid "Unknown format key specified" msgstr "" -#: InvenTree/models.py:422 +#: InvenTree/models.py:421 msgid "Missing required format key" msgstr "" -#: InvenTree/models.py:433 +#: InvenTree/models.py:432 msgid "Reference field cannot be empty" msgstr "" -#: InvenTree/models.py:441 +#: InvenTree/models.py:440 msgid "Reference must match required pattern" msgstr "" -#: InvenTree/models.py:472 +#: InvenTree/models.py:471 msgid "Reference number is too large" msgstr "" -#: InvenTree/models.py:723 +#: InvenTree/models.py:722 msgid "Duplicate names cannot exist under the same parent" msgstr "" -#: InvenTree/models.py:740 +#: InvenTree/models.py:739 msgid "Invalid choice" msgstr "" -#: InvenTree/models.py:770 common/models.py:2702 common/models.py:3132 -#: common/serializers.py:412 company/models.py:593 machine/models.py:24 -#: part/models.py:983 part/models.py:3764 plugin/models.py:51 -#: report/models.py:149 stock/models.py:77 +#: InvenTree/models.py:769 common/models.py:2766 common/models.py:3193 +#: common/models.py:3413 common/serializers.py:460 company/models.py:590 +#: machine/models.py:24 part/models.py:1044 part/models.py:3815 +#: plugin/models.py:51 report/models.py:149 stock/models.py:83 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/notifications.html:17 #: templates/InvenTree/settings/plugin.html:83 #: templates/InvenTree/settings/plugin_settings.html:22 #: templates/InvenTree/settings/settings_staff_js.html:67 #: templates/InvenTree/settings/settings_staff_js.html:454 -#: templates/js/translated/company.js:676 -#: templates/js/translated/company.js:724 -#: templates/js/translated/company.js:913 -#: templates/js/translated/company.js:1165 -#: templates/js/translated/company.js:1413 templates/js/translated/part.js:1193 +#: templates/js/translated/company.js:677 +#: templates/js/translated/company.js:725 +#: templates/js/translated/company.js:914 +#: templates/js/translated/company.js:1166 +#: templates/js/translated/company.js:1414 templates/js/translated/part.js:1193 #: templates/js/translated/part.js:1481 templates/js/translated/part.js:1617 -#: templates/js/translated/part.js:2768 templates/js/translated/stock.js:2801 +#: templates/js/translated/part.js:2768 templates/js/translated/stock.js:2802 msgid "Name" msgstr "" -#: InvenTree/models.py:776 build/models.py:250 -#: build/templates/build/detail.html:24 common/models.py:156 -#: company/models.py:521 company/models.py:827 +#: InvenTree/models.py:775 build/models.py:251 +#: build/templates/build/detail.html:24 common/models.py:159 +#: company/models.py:518 company/models.py:824 #: company/templates/company/company_base.html:77 #: company/templates/company/manufacturer_part.html:75 -#: company/templates/company/supplier_part.html:107 order/models.py:288 -#: order/models.py:1413 part/admin.py:305 part/admin.py:411 part/models.py:1006 -#: part/models.py:3779 part/templates/part/category.html:79 -#: part/templates/part/part_base.html:170 +#: company/templates/company/supplier_part.html:108 order/models.py:295 +#: order/models.py:1430 part/admin.py:305 part/admin.py:411 part/models.py:1067 +#: part/models.py:3830 part/templates/part/category.html:79 +#: part/templates/part/part_base.html:171 #: part/templates/part/part_scheduling.html:12 report/models.py:155 -#: report/models.py:509 report/models.py:535 +#: report/models.py:517 report/models.py:543 #: report/templates/report/inventree_build_order_report.html:117 -#: stock/admin.py:54 stock/models.py:83 stock/templates/stock/location.html:122 +#: stock/admin.py:54 stock/models.py:89 stock/templates/stock/location.html:123 #: templates/InvenTree/settings/notifications.html:19 #: templates/InvenTree/settings/plugin_settings.html:27 #: templates/InvenTree/settings/settings_staff_js.html:170 #: templates/InvenTree/settings/settings_staff_js.html:459 #: templates/js/translated/bom.js:633 templates/js/translated/bom.js:963 -#: templates/js/translated/build.js:2311 templates/js/translated/company.js:519 -#: templates/js/translated/company.js:1330 -#: templates/js/translated/company.js:1641 templates/js/translated/index.js:119 +#: templates/js/translated/build.js:2314 templates/js/translated/company.js:520 +#: templates/js/translated/company.js:1331 +#: templates/js/translated/company.js:1642 templates/js/translated/index.js:119 #: templates/js/translated/order.js:323 templates/js/translated/part.js:1245 #: templates/js/translated/part.js:1490 templates/js/translated/part.js:1628 #: templates/js/translated/part.js:1965 templates/js/translated/part.js:2361 #: templates/js/translated/part.js:2803 templates/js/translated/part.js:2915 #: templates/js/translated/plugin.js:80 -#: templates/js/translated/purchase_order.js:1776 -#: templates/js/translated/purchase_order.js:1919 -#: templates/js/translated/purchase_order.js:2092 +#: templates/js/translated/purchase_order.js:1760 +#: templates/js/translated/purchase_order.js:1903 +#: templates/js/translated/purchase_order.js:2076 #: templates/js/translated/return_order.js:313 -#: templates/js/translated/sales_order.js:838 -#: templates/js/translated/sales_order.js:1848 -#: templates/js/translated/stock.js:1600 templates/js/translated/stock.js:2143 -#: templates/js/translated/stock.js:2832 templates/js/translated/stock.js:2915 +#: templates/js/translated/sales_order.js:797 +#: templates/js/translated/sales_order.js:1829 +#: templates/js/translated/stock.js:1600 templates/js/translated/stock.js:2144 +#: templates/js/translated/stock.js:2833 templates/js/translated/stock.js:2916 msgid "Description" msgstr "" -#: InvenTree/models.py:777 stock/models.py:84 +#: InvenTree/models.py:776 stock/models.py:90 msgid "Description (optional)" msgstr "" -#: InvenTree/models.py:792 templates/js/translated/part.js:2812 -#: templates/js/translated/stock.js:2841 +#: InvenTree/models.py:791 common/models.py:3546 +#: templates/js/translated/part.js:2812 templates/js/translated/stock.js:2842 msgid "Path" msgstr "" -#: InvenTree/models.py:929 +#: InvenTree/models.py:928 msgid "Markdown notes (optional)" msgstr "" -#: InvenTree/models.py:960 +#: InvenTree/models.py:959 msgid "Barcode Data" msgstr "" -#: InvenTree/models.py:961 +#: InvenTree/models.py:960 msgid "Third party barcode data" msgstr "" -#: InvenTree/models.py:967 +#: InvenTree/models.py:966 msgid "Barcode Hash" msgstr "" -#: InvenTree/models.py:968 +#: InvenTree/models.py:967 msgid "Unique hash of barcode data" msgstr "" -#: InvenTree/models.py:1035 +#: InvenTree/models.py:1034 msgid "Existing barcode found" msgstr "" -#: InvenTree/models.py:1078 +#: InvenTree/models.py:1112 +msgid "Task Failure" +msgstr "" + +#: InvenTree/models.py:1114 +#, python-brace-format +msgid "Background worker task '{instance.func}' failed after {n} attempts" +msgstr "" + +#: InvenTree/models.py:1142 msgid "Server Error" msgstr "" -#: InvenTree/models.py:1079 +#: InvenTree/models.py:1143 msgid "An error has been logged by the server." msgstr "" -#: InvenTree/serializers.py:63 part/models.py:4387 +#: InvenTree/serializers.py:63 part/models.py:4444 msgid "Must be a valid number" msgstr "" -#: InvenTree/serializers.py:100 company/models.py:186 -#: company/templates/company/company_base.html:112 part/models.py:3115 +#: InvenTree/serializers.py:100 company/models.py:183 +#: company/templates/company/company_base.html:112 part/models.py:3166 #: templates/InvenTree/settings/settings_staff_js.html:44 #: templates/currency_data.html:5 msgid "Currency" @@ -532,15 +552,15 @@ msgstr "" msgid "Select currency from available options" msgstr "" -#: InvenTree/serializers.py:407 templates/InvenTree/settings/user.html:33 +#: InvenTree/serializers.py:405 templates/InvenTree/settings/user.html:33 msgid "Username" msgstr "" -#: InvenTree/serializers.py:409 templates/InvenTree/settings/user.html:37 +#: InvenTree/serializers.py:408 templates/InvenTree/settings/user.html:37 msgid "First Name" msgstr "" -#: InvenTree/serializers.py:409 +#: InvenTree/serializers.py:408 msgid "First name of the user" msgstr "" @@ -552,30 +572,30 @@ msgstr "" msgid "Last name of the user" msgstr "" -#: InvenTree/serializers.py:415 +#: InvenTree/serializers.py:416 msgid "Email address of the user" msgstr "" -#: InvenTree/serializers.py:439 +#: InvenTree/serializers.py:441 msgid "Staff" msgstr "" -#: InvenTree/serializers.py:439 +#: InvenTree/serializers.py:441 msgid "Does this user have staff permissions" msgstr "" -#: InvenTree/serializers.py:442 +#: InvenTree/serializers.py:445 msgid "Superuser" msgstr "" -#: InvenTree/serializers.py:442 +#: InvenTree/serializers.py:445 msgid "Is this user a superuser" msgstr "" -#: InvenTree/serializers.py:445 common/models.py:2707 company/models.py:163 -#: company/models.py:801 machine/models.py:39 part/admin.py:88 -#: part/models.py:1189 plugin/models.py:66 -#: templates/js/translated/company.js:523 +#: InvenTree/serializers.py:449 common/models.py:2771 company/models.py:160 +#: company/models.py:798 machine/models.py:39 part/admin.py:88 +#: part/models.py:1250 plugin/models.py:66 +#: templates/js/translated/company.js:524 #: templates/js/translated/table_filters.js:134 #: templates/js/translated/table_filters.js:226 #: templates/js/translated/table_filters.js:513 @@ -585,230 +605,229 @@ msgstr "" msgid "Active" msgstr "" -#: InvenTree/serializers.py:445 +#: InvenTree/serializers.py:449 msgid "Is this user account active" msgstr "" -#: InvenTree/serializers.py:463 +#: InvenTree/serializers.py:467 msgid "You do not have permission to change this user role." msgstr "" -#: InvenTree/serializers.py:475 +#: InvenTree/serializers.py:503 msgid "Only superusers can create new users" msgstr "" -#: InvenTree/serializers.py:494 +#: InvenTree/serializers.py:523 msgid "Your account has been created." msgstr "" -#: InvenTree/serializers.py:496 +#: InvenTree/serializers.py:525 msgid "Please use the password reset function to login" msgstr "" -#: InvenTree/serializers.py:503 +#: InvenTree/serializers.py:531 msgid "Welcome to InvenTree" msgstr "" -#: InvenTree/serializers.py:561 +#: InvenTree/serializers.py:594 msgid "Invalid value" msgstr "" -#: InvenTree/serializers.py:581 importer/models.py:63 +#: InvenTree/serializers.py:614 importer/models.py:64 msgid "Data File" msgstr "" -#: InvenTree/serializers.py:582 +#: InvenTree/serializers.py:615 msgid "Select data file for upload" msgstr "" -#: InvenTree/serializers.py:599 -msgid "Unsupported file type" +#: InvenTree/serializers.py:632 common/files.py:63 +msgid "Unsupported file format" msgstr "" -#: InvenTree/serializers.py:605 +#: InvenTree/serializers.py:638 msgid "File is too large" msgstr "" -#: InvenTree/serializers.py:626 +#: InvenTree/serializers.py:659 msgid "No columns found in file" msgstr "" -#: InvenTree/serializers.py:629 +#: InvenTree/serializers.py:662 msgid "No data rows found in file" msgstr "" -#: InvenTree/serializers.py:742 +#: InvenTree/serializers.py:774 msgid "No data rows provided" msgstr "" -#: InvenTree/serializers.py:745 +#: InvenTree/serializers.py:777 msgid "No data columns supplied" msgstr "" -#: InvenTree/serializers.py:812 +#: InvenTree/serializers.py:843 #, python-brace-format msgid "Missing required column: '{name}'" msgstr "" -#: InvenTree/serializers.py:821 +#: InvenTree/serializers.py:852 #, python-brace-format msgid "Duplicate column: '{col}'" msgstr "" -#: InvenTree/serializers.py:861 +#: InvenTree/serializers.py:891 msgid "Remote Image" msgstr "" -#: InvenTree/serializers.py:862 +#: InvenTree/serializers.py:892 msgid "URL of remote image file" msgstr "" -#: InvenTree/serializers.py:880 +#: InvenTree/serializers.py:910 msgid "Downloading images from remote URL is not enabled" msgstr "" -#: InvenTree/status.py:66 part/serializers.py:1246 -msgid "Background worker check failed" -msgstr "" - -#: InvenTree/status.py:70 -msgid "Email backend not configured" -msgstr "" - -#: InvenTree/status.py:73 -msgid "InvenTree system health checks failed" +#: InvenTree/serializers.py:917 +msgid "Failed to download image from remote URL" msgstr "" #: InvenTree/templatetags/inventree_extras.py:184 msgid "Unknown database" msgstr "" -#: InvenTree/validators.py:32 InvenTree/validators.py:34 +#: InvenTree/validators.py:32 msgid "Invalid physical unit" msgstr "" -#: InvenTree/validators.py:40 +#: InvenTree/validators.py:38 msgid "Not a valid currency code" msgstr "" -#: InvenTree/validators.py:118 InvenTree/validators.py:134 +#: InvenTree/validators.py:115 InvenTree/validators.py:131 msgid "Overage value must not be negative" msgstr "" -#: InvenTree/validators.py:136 +#: InvenTree/validators.py:133 msgid "Overage must not exceed 100%" msgstr "" -#: InvenTree/validators.py:142 +#: InvenTree/validators.py:139 msgid "Invalid value for overage" msgstr "" -#: InvenTree/views.py:400 templates/InvenTree/settings/user.html:23 +#: InvenTree/views.py:399 templates/InvenTree/settings/user.html:23 msgid "Edit User Information" msgstr "" -#: InvenTree/views.py:412 templates/InvenTree/settings/user.html:20 +#: InvenTree/views.py:411 templates/InvenTree/settings/user.html:20 msgid "Set Password" msgstr "" -#: InvenTree/views.py:434 +#: InvenTree/views.py:433 msgid "Password fields must match" msgstr "" -#: InvenTree/views.py:442 +#: InvenTree/views.py:441 msgid "Wrong password provided" msgstr "" -#: InvenTree/views.py:650 templates/navbar.html:160 +#: InvenTree/views.py:645 templates/navbar.html:160 msgid "System Information" msgstr "" -#: InvenTree/views.py:657 templates/navbar.html:171 +#: InvenTree/views.py:652 templates/navbar.html:171 msgid "About InvenTree" msgstr "" -#: build/api.py:51 part/api.py:156 stock/api.py:343 -msgid "Cascade" -msgstr "" - -#: build/api.py:64 build/models.py:261 -#: build/templates/build/build_base.html:191 +#: build/api.py:54 build/models.py:262 +#: build/templates/build/build_base.html:192 #: build/templates/build/detail.html:87 msgid "Parent Build" msgstr "" -#: build/api.py:89 order/api.py:92 templates/js/translated/table_filters.js:101 +#: build/api.py:58 build/api.py:625 order/api.py:396 order/api.py:611 +#: order/api.py:990 order/api.py:1187 +#: templates/js/translated/table_filters.js:372 +msgid "Include Variants" +msgstr "" + +#: build/api.py:93 +msgid "Ancestor Build" +msgstr "" + +#: build/api.py:112 order/api.py:90 +#: templates/js/translated/table_filters.js:101 #: templates/js/translated/table_filters.js:549 #: templates/js/translated/table_filters.js:633 #: templates/js/translated/table_filters.js:674 msgid "Assigned to me" msgstr "" -#: build/api.py:106 build/templates/build/build_base.html:205 +#: build/api.py:129 build/templates/build/build_base.html:206 #: build/templates/build/detail.html:115 #: report/templates/report/inventree_build_order_report.html:152 #: templates/js/translated/table_filters.js:552 msgid "Issued By" msgstr "" -#: build/api.py:125 +#: build/api.py:148 msgid "Assigned To" msgstr "" -#: build/api.py:301 +#: build/api.py:310 msgid "Build must be cancelled before it can be deleted" msgstr "" -#: build/api.py:345 build/serializers.py:1288 part/models.py:4265 +#: build/api.py:354 build/serializers.py:1342 part/models.py:4322 #: templates/js/translated/bom.js:997 templates/js/translated/bom.js:1037 -#: templates/js/translated/build.js:2702 +#: templates/js/translated/build.js:2711 #: templates/js/translated/table_filters.js:197 #: templates/js/translated/table_filters.js:586 msgid "Consumable" msgstr "" -#: build/api.py:346 build/serializers.py:1289 part/models.py:4259 +#: build/api.py:355 build/serializers.py:1343 part/models.py:4316 #: part/templates/part/upload_bom.html:58 templates/js/translated/bom.js:1001 -#: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2693 +#: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2702 #: templates/js/translated/table_filters.js:193 #: templates/js/translated/table_filters.js:222 #: templates/js/translated/table_filters.js:590 msgid "Optional" msgstr "" -#: build/api.py:347 common/models.py:1489 part/admin.py:91 part/admin.py:428 -#: part/models.py:1154 part/serializers.py:1575 +#: build/api.py:356 common/models.py:1558 part/admin.py:91 part/admin.py:428 +#: part/models.py:1215 part/serializers.py:1633 #: templates/js/translated/bom.js:1639 #: templates/js/translated/table_filters.js:337 #: templates/js/translated/table_filters.js:729 msgid "Assembly" msgstr "" -#: build/api.py:348 templates/js/translated/table_filters.js:415 +#: build/api.py:357 templates/js/translated/table_filters.js:415 #: templates/js/translated/table_filters.js:582 msgid "Tracked" msgstr "" -#: build/api.py:349 build/serializers.py:1290 part/models.py:1172 +#: build/api.py:358 build/serializers.py:1344 part/models.py:1233 #: templates/js/translated/table_filters.js:146 #: templates/js/translated/table_filters.js:779 msgid "Testable" msgstr "" -#: build/api.py:351 part/admin.py:144 templates/js/translated/build.js:1917 -#: templates/js/translated/build.js:2820 -#: templates/js/translated/sales_order.js:1965 +#: build/api.py:360 order/api.py:779 part/admin.py:144 +#: templates/js/translated/build.js:1920 templates/js/translated/build.js:2838 +#: templates/js/translated/sales_order.js:1946 #: templates/js/translated/table_filters.js:574 msgid "Allocated" msgstr "" -#: build/api.py:359 company/models.py:891 company/serializers.py:395 -#: company/templates/company/supplier_part.html:114 +#: build/api.py:368 company/models.py:888 company/serializers.py:399 +#: company/templates/company/supplier_part.html:115 #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:17 -#: templates/js/translated/bom.js:1162 templates/js/translated/build.js:2752 +#: templates/js/translated/bom.js:1162 templates/js/translated/build.js:2770 #: templates/js/translated/index.js:123 -#: templates/js/translated/model_renderers.js:235 +#: templates/js/translated/model_renderers.js:238 #: templates/js/translated/part.js:695 templates/js/translated/part.js:697 #: templates/js/translated/part.js:702 #: templates/js/translated/table_filters.js:347 @@ -816,16 +835,68 @@ msgstr "" msgid "Available" msgstr "" -#: build/models.py:86 build/templates/build/build_base.html:9 -#: build/templates/build/build_base.html:27 +#: build/api.py:640 build/models.py:268 build/serializers.py:1330 +#: build/templates/build/build_base.html:106 +#: build/templates/build/detail.html:29 company/models.py:1043 order/api.py:775 +#: order/api.py:1003 order/models.py:1519 order/models.py:1674 +#: order/models.py:1675 part/api.py:1495 part/api.py:1802 part/models.py:419 +#: part/models.py:3177 part/models.py:3321 part/models.py:3469 +#: part/models.py:3490 part/models.py:3512 part/models.py:3648 +#: part/models.py:3995 part/models.py:4158 part/models.py:4288 +#: part/models.py:4654 part/serializers.py:1245 part/serializers.py:1898 +#: part/templates/part/part_app_base.html:8 +#: part/templates/part/part_pricing.html:12 +#: part/templates/part/upload_bom.html:52 +#: report/templates/report/inventree_bill_of_materials_report.html:110 +#: report/templates/report/inventree_bill_of_materials_report.html:137 +#: report/templates/report/inventree_build_order_report.html:109 +#: report/templates/report/inventree_purchase_order_report.html:27 +#: report/templates/report/inventree_return_order_report.html:24 +#: report/templates/report/inventree_sales_order_report.html:27 +#: report/templates/report/inventree_sales_order_shipment_report.html:28 +#: report/templates/report/inventree_stock_location_report.html:102 +#: stock/serializers.py:112 stock/serializers.py:160 stock/serializers.py:456 +#: stock/serializers.py:947 templates/InvenTree/search.html:82 +#: templates/email/build_order_completed.html:17 +#: templates/email/build_order_required_stock.html:17 +#: templates/email/low_stock_notification.html:15 +#: templates/email/overdue_build_order.html:16 +#: templates/js/translated/barcode.js:577 templates/js/translated/bom.js:632 +#: templates/js/translated/bom.js:769 templates/js/translated/bom.js:905 +#: templates/js/translated/build.js:1005 templates/js/translated/build.js:1488 +#: templates/js/translated/build.js:1919 templates/js/translated/build.js:2337 +#: templates/js/translated/build.js:2514 templates/js/translated/company.js:349 +#: templates/js/translated/company.js:1117 +#: templates/js/translated/company.js:1272 +#: templates/js/translated/company.js:1560 templates/js/translated/index.js:109 +#: templates/js/translated/part.js:1950 templates/js/translated/part.js:2022 +#: templates/js/translated/part.js:2330 templates/js/translated/pricing.js:369 +#: templates/js/translated/purchase_order.js:734 +#: templates/js/translated/purchase_order.js:1350 +#: templates/js/translated/purchase_order.js:1902 +#: templates/js/translated/purchase_order.js:2061 +#: templates/js/translated/return_order.js:538 +#: templates/js/translated/return_order.js:708 +#: templates/js/translated/sales_order.js:1199 +#: templates/js/translated/sales_order.js:1608 +#: templates/js/translated/sales_order.js:1813 +#: templates/js/translated/stock.js:682 templates/js/translated/stock.js:848 +#: templates/js/translated/stock.js:1065 templates/js/translated/stock.js:2083 +#: templates/js/translated/stock.js:2942 templates/js/translated/stock.js:3175 +#: templates/js/translated/stock.js:3320 +msgid "Part" +msgstr "" + +#: build/api.py:662 build/models.py:88 build/templates/build/build_base.html:10 +#: build/templates/build/build_base.html:28 #: report/templates/report/inventree_build_order_report.html:105 -#: stock/serializers.py:84 templates/email/build_order_completed.html:16 +#: stock/serializers.py:85 templates/email/build_order_completed.html:16 #: templates/email/overdue_build_order.html:15 -#: templates/js/translated/build.js:1145 templates/js/translated/stock.js:2976 +#: templates/js/translated/build.js:1148 templates/js/translated/stock.js:2977 msgid "Build Order" msgstr "" -#: build/models.py:87 build/templates/build/build_base.html:13 +#: build/models.py:89 build/templates/build/build_base.html:14 #: build/templates/build/index.html:8 build/templates/build/index.html:12 #: order/templates/order/sales_order_detail.html:111 #: order/templates/order/so_sidebar.html:13 @@ -836,268 +907,216 @@ msgstr "" msgid "Build Orders" msgstr "" -#: build/models.py:135 +#: build/models.py:136 msgid "Assembly BOM has not been validated" msgstr "" -#: build/models.py:142 +#: build/models.py:143 msgid "Build order cannot be created for an inactive part" msgstr "" -#: build/models.py:149 +#: build/models.py:150 msgid "Build order cannot be created for an unlocked part" msgstr "" -#: build/models.py:163 +#: build/models.py:164 msgid "Invalid choice for parent build" msgstr "" -#: build/models.py:174 order/models.py:239 +#: build/models.py:175 order/models.py:236 msgid "Responsible user or group must be specified" msgstr "" -#: build/models.py:180 +#: build/models.py:181 msgid "Build order part cannot be changed" msgstr "" -#: build/models.py:241 +#: build/models.py:242 msgid "Build Order Reference" msgstr "" -#: build/models.py:242 build/serializers.py:1287 order/models.py:467 -#: order/models.py:978 order/models.py:1373 order/models.py:2135 -#: part/admin.py:414 part/models.py:4280 part/templates/part/upload_bom.html:54 +#: build/models.py:243 build/serializers.py:1341 order/models.py:479 +#: order/models.py:1005 order/models.py:1390 order/models.py:2174 +#: part/admin.py:414 part/models.py:4337 part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_bill_of_materials_report.html:139 #: report/templates/report/inventree_purchase_order_report.html:28 #: report/templates/report/inventree_return_order_report.html:26 #: report/templates/report/inventree_sales_order_report.html:28 #: templates/js/translated/bom.js:770 templates/js/translated/bom.js:973 -#: templates/js/translated/build.js:1011 templates/js/translated/build.js:2685 +#: templates/js/translated/build.js:1014 templates/js/translated/build.js:2694 #: templates/js/translated/order.js:316 templates/js/translated/pricing.js:386 -#: templates/js/translated/purchase_order.js:2135 +#: templates/js/translated/purchase_order.js:2119 #: templates/js/translated/return_order.js:727 -#: templates/js/translated/sales_order.js:1854 +#: templates/js/translated/sales_order.js:1835 msgid "Reference" msgstr "" -#: build/models.py:253 +#: build/models.py:254 msgid "Brief description of the build (optional)" msgstr "" -#: build/models.py:262 +#: build/models.py:263 msgid "BuildOrder to which this build is allocated" msgstr "" -#: build/models.py:267 build/serializers.py:1278 -#: build/templates/build/build_base.html:105 -#: build/templates/build/detail.html:29 company/models.py:1046 order/api.py:767 -#: order/models.py:1503 order/models.py:1658 order/models.py:1659 -#: part/api.py:1509 part/api.py:1813 part/models.py:424 part/models.py:3126 -#: part/models.py:3270 part/models.py:3418 part/models.py:3439 -#: part/models.py:3461 part/models.py:3597 part/models.py:3937 -#: part/models.py:4100 part/models.py:4231 part/models.py:4592 -#: part/serializers.py:1192 part/serializers.py:1836 -#: part/templates/part/part_app_base.html:8 -#: part/templates/part/part_pricing.html:12 -#: part/templates/part/upload_bom.html:52 -#: report/templates/report/inventree_bill_of_materials_report.html:110 -#: report/templates/report/inventree_bill_of_materials_report.html:137 -#: report/templates/report/inventree_build_order_report.html:109 -#: report/templates/report/inventree_purchase_order_report.html:27 -#: report/templates/report/inventree_return_order_report.html:24 -#: report/templates/report/inventree_sales_order_report.html:27 -#: report/templates/report/inventree_stock_location_report.html:102 -#: stock/serializers.py:111 stock/serializers.py:159 stock/serializers.py:446 -#: stock/serializers.py:916 templates/InvenTree/search.html:82 -#: templates/email/build_order_completed.html:17 -#: templates/email/build_order_required_stock.html:17 -#: templates/email/low_stock_notification.html:15 -#: templates/email/overdue_build_order.html:16 -#: templates/js/translated/barcode.js:577 templates/js/translated/bom.js:632 -#: templates/js/translated/bom.js:769 templates/js/translated/bom.js:905 -#: templates/js/translated/build.js:1002 templates/js/translated/build.js:1485 -#: templates/js/translated/build.js:1916 templates/js/translated/build.js:2334 -#: templates/js/translated/build.js:2507 templates/js/translated/company.js:348 -#: templates/js/translated/company.js:1116 -#: templates/js/translated/company.js:1271 -#: templates/js/translated/company.js:1559 templates/js/translated/index.js:109 -#: templates/js/translated/part.js:1950 templates/js/translated/part.js:2022 -#: templates/js/translated/part.js:2330 templates/js/translated/pricing.js:369 -#: templates/js/translated/purchase_order.js:751 -#: templates/js/translated/purchase_order.js:1367 -#: templates/js/translated/purchase_order.js:1918 -#: templates/js/translated/purchase_order.js:2077 -#: templates/js/translated/return_order.js:538 -#: templates/js/translated/return_order.js:708 -#: templates/js/translated/sales_order.js:300 -#: templates/js/translated/sales_order.js:1233 -#: templates/js/translated/sales_order.js:1634 -#: templates/js/translated/sales_order.js:1832 -#: templates/js/translated/stock.js:682 templates/js/translated/stock.js:848 -#: templates/js/translated/stock.js:1065 templates/js/translated/stock.js:2082 -#: templates/js/translated/stock.js:2941 templates/js/translated/stock.js:3174 -#: templates/js/translated/stock.js:3319 -msgid "Part" -msgstr "" - -#: build/models.py:275 +#: build/models.py:274 msgid "Select part to build" msgstr "" -#: build/models.py:280 +#: build/models.py:279 msgid "Sales Order Reference" msgstr "" -#: build/models.py:284 +#: build/models.py:283 msgid "SalesOrder to which this build is allocated" msgstr "" -#: build/models.py:289 build/serializers.py:1048 -#: templates/js/translated/build.js:1904 -#: templates/js/translated/sales_order.js:1221 +#: build/models.py:288 build/serializers.py:1092 +#: templates/js/translated/build.js:1907 +#: templates/js/translated/sales_order.js:1187 msgid "Source Location" msgstr "" -#: build/models.py:293 +#: build/models.py:292 msgid "Select location to take stock from for this build (leave blank to take from any stock location)" msgstr "" -#: build/models.py:298 +#: build/models.py:297 msgid "Destination Location" msgstr "" -#: build/models.py:302 +#: build/models.py:301 msgid "Select location where the completed items will be stored" msgstr "" -#: build/models.py:306 +#: build/models.py:305 msgid "Build Quantity" msgstr "" -#: build/models.py:309 +#: build/models.py:308 msgid "Number of stock items to build" msgstr "" -#: build/models.py:313 +#: build/models.py:312 msgid "Completed items" msgstr "" -#: build/models.py:315 +#: build/models.py:314 msgid "Number of stock items which have been completed" msgstr "" -#: build/models.py:319 +#: build/models.py:318 msgid "Build Status" msgstr "" -#: build/models.py:323 +#: build/models.py:322 msgid "Build status code" msgstr "" -#: build/models.py:332 build/serializers.py:302 build/serializers.py:1198 -#: order/serializers.py:670 stock/models.py:859 stock/serializers.py:76 -#: stock/serializers.py:1562 templates/js/translated/purchase_order.js:1129 +#: build/models.py:331 build/serializers.py:349 build/serializers.py:1243 +#: order/serializers.py:755 stock/models.py:936 stock/serializers.py:77 +#: stock/serializers.py:1593 templates/js/translated/purchase_order.js:1112 #: templates/js/translated/stock.js:1199 msgid "Batch Code" msgstr "" -#: build/models.py:336 build/serializers.py:303 +#: build/models.py:335 build/serializers.py:350 msgid "Batch code for this build output" msgstr "" -#: build/models.py:339 order/models.py:315 order/serializers.py:126 -#: part/models.py:1229 part/templates/part/part_base.html:319 +#: build/models.py:338 order/models.py:322 order/serializers.py:157 +#: part/models.py:1290 part/templates/part/part_base.html:327 #: templates/js/translated/return_order.js:338 -#: templates/js/translated/sales_order.js:863 +#: templates/js/translated/sales_order.js:822 msgid "Creation Date" msgstr "" -#: build/models.py:343 +#: build/models.py:342 msgid "Target completion date" msgstr "" -#: build/models.py:344 +#: build/models.py:343 msgid "Target date for build completion. Build will be overdue after this date." msgstr "" -#: build/models.py:347 order/models.py:526 order/models.py:2180 -#: templates/js/translated/build.js:2419 +#: build/models.py:346 order/models.py:538 order/models.py:2219 +#: templates/js/translated/build.js:2422 msgid "Completion Date" msgstr "" -#: build/models.py:353 +#: build/models.py:352 msgid "completed by" msgstr "" -#: build/models.py:361 templates/js/translated/build.js:2379 +#: build/models.py:360 templates/js/translated/build.js:2382 msgid "Issued by" msgstr "" -#: build/models.py:362 +#: build/models.py:361 msgid "User who issued this build order" msgstr "" -#: build/models.py:370 build/templates/build/build_base.html:212 -#: build/templates/build/detail.html:122 common/models.py:165 order/api.py:142 -#: order/models.py:333 order/templates/order/order_base.html:222 -#: order/templates/order/return_order_base.html:191 -#: order/templates/order/sales_order_base.html:235 part/models.py:1246 -#: part/templates/part/part_base.html:399 +#: build/models.py:369 build/templates/build/build_base.html:213 +#: build/templates/build/detail.html:122 common/models.py:168 order/api.py:140 +#: order/models.py:340 order/templates/order/order_base.html:231 +#: order/templates/order/return_order_base.html:192 +#: order/templates/order/sales_order_base.html:236 part/models.py:1307 +#: part/templates/part/part_base.html:407 #: report/templates/report/inventree_build_order_report.html:158 #: templates/InvenTree/settings/settings_staff_js.html:150 -#: templates/js/translated/build.js:2391 -#: templates/js/translated/purchase_order.js:1833 +#: templates/js/translated/build.js:2394 +#: templates/js/translated/purchase_order.js:1817 #: templates/js/translated/return_order.js:358 #: templates/js/translated/table_filters.js:551 msgid "Responsible" msgstr "" -#: build/models.py:371 +#: build/models.py:370 msgid "User or group responsible for this build order" msgstr "" -#: build/models.py:376 build/templates/build/detail.html:108 +#: build/models.py:375 build/templates/build/detail.html:108 #: company/templates/company/manufacturer_part.html:107 -#: company/templates/company/supplier_part.html:194 -#: order/templates/order/order_base.html:172 -#: order/templates/order/return_order_base.html:148 -#: order/templates/order/sales_order_base.html:187 -#: part/templates/part/part_base.html:392 stock/models.py:855 -#: stock/templates/stock/item_base.html:200 -#: templates/js/translated/company.js:1019 +#: company/templates/company/supplier_part.html:195 +#: order/templates/order/order_base.html:181 +#: order/templates/order/return_order_base.html:149 +#: order/templates/order/sales_order_base.html:188 +#: part/templates/part/part_base.html:400 stock/models.py:932 +#: stock/templates/stock/item_base.html:197 +#: templates/js/translated/company.js:1020 msgid "External Link" msgstr "" -#: build/models.py:377 common/models.py:3273 part/models.py:1058 -#: stock/models.py:855 +#: build/models.py:376 common/models.py:3334 part/models.py:1119 +#: stock/models.py:932 msgid "Link to external URL" msgstr "" -#: build/models.py:381 +#: build/models.py:380 msgid "Build Priority" msgstr "" -#: build/models.py:384 +#: build/models.py:383 msgid "Priority of this build order" msgstr "" -#: build/models.py:391 common/models.py:135 common/models.py:149 -#: order/admin.py:18 order/api.py:128 order/models.py:297 +#: build/models.py:390 common/models.py:138 common/models.py:152 +#: order/admin.py:18 order/api.py:126 order/models.py:304 #: templates/InvenTree/settings/settings_staff_js.html:146 -#: templates/js/translated/build.js:2316 -#: templates/js/translated/purchase_order.js:1780 +#: templates/js/translated/build.js:2319 +#: templates/js/translated/purchase_order.js:1764 #: templates/js/translated/return_order.js:317 -#: templates/js/translated/sales_order.js:842 +#: templates/js/translated/sales_order.js:801 #: templates/js/translated/table_filters.js:47 #: templates/project_code_data.html:6 msgid "Project Code" msgstr "" -#: build/models.py:392 +#: build/models.py:391 msgid "Project code for this build order" msgstr "" -#: build/models.py:651 build/models.py:778 +#: build/models.py:651 build/models.py:779 msgid "Failed to offload task to complete build allocations" msgstr "" @@ -1110,610 +1129,619 @@ msgstr "" msgid "A build order has been completed" msgstr "" -#: build/models.py:967 build/models.py:1055 +#: build/models.py:858 build/serializers.py:393 +msgid "Serial numbers must be provided for trackable parts" +msgstr "" + +#: build/models.py:969 build/models.py:1058 msgid "No build output specified" msgstr "" -#: build/models.py:970 +#: build/models.py:972 msgid "Build output is already completed" msgstr "" -#: build/models.py:973 +#: build/models.py:975 msgid "Build output does not match Build Order" msgstr "" -#: build/models.py:1059 build/serializers.py:235 build/serializers.py:284 -#: build/serializers.py:915 order/models.py:564 order/serializers.py:499 -#: order/serializers.py:665 part/serializers.py:1569 part/serializers.py:1999 -#: stock/models.py:700 stock/models.py:1520 stock/serializers.py:669 +#: build/models.py:1062 build/serializers.py:282 build/serializers.py:331 +#: build/serializers.py:959 order/models.py:586 order/serializers.py:584 +#: order/serializers.py:750 part/serializers.py:1627 part/serializers.py:2060 +#: stock/models.py:777 stock/models.py:1609 stock/serializers.py:696 msgid "Quantity must be greater than zero" msgstr "" -#: build/models.py:1064 build/serializers.py:240 +#: build/models.py:1067 build/serializers.py:287 msgid "Quantity cannot be greater than the output quantity" msgstr "" -#: build/models.py:1124 build/serializers.py:563 +#: build/models.py:1127 build/serializers.py:607 #, python-brace-format msgid "Build output {serial} has not passed all required tests" msgstr "" -#: build/models.py:1465 +#: build/models.py:1482 msgid "Build Order Line Item" msgstr "" -#: build/models.py:1490 +#: build/models.py:1507 msgid "Build object" msgstr "" -#: build/models.py:1504 build/models.py:1760 build/serializers.py:222 -#: build/serializers.py:269 build/serializers.py:1295 -#: build/templates/build/build_base.html:110 -#: build/templates/build/detail.html:34 common/models.py:2579 -#: order/models.py:1356 order/models.py:2041 order/serializers.py:1460 +#: build/models.py:1521 build/models.py:1787 build/serializers.py:269 +#: build/serializers.py:316 build/serializers.py:1349 +#: build/templates/build/build_base.html:111 +#: build/templates/build/detail.html:34 common/models.py:2643 +#: order/models.py:1373 order/models.py:2074 order/serializers.py:1586 #: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:413 -#: part/forms.py:48 part/models.py:3284 part/models.py:4253 -#: part/templates/part/part_pricing.html:16 +#: part/forms.py:48 part/models.py:3335 part/models.py:4310 +#: part/serializers.py:265 part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_bill_of_materials_report.html:138 #: report/templates/report/inventree_build_order_report.html:113 #: report/templates/report/inventree_purchase_order_report.html:29 #: report/templates/report/inventree_sales_order_report.html:29 +#: report/templates/report/inventree_sales_order_shipment_report.html:47 +#: report/templates/report/inventree_sales_order_shipment_report.html:49 #: report/templates/report/inventree_stock_location_report.html:104 #: report/templates/report/inventree_test_report.html:90 -#: report/templates/report/inventree_test_report.html:169 stock/admin.py:159 -#: stock/serializers.py:127 stock/serializers.py:167 stock/serializers.py:660 -#: stock/templates/stock/item_base.html:287 -#: stock/templates/stock/item_base.html:295 -#: stock/templates/stock/item_base.html:342 +#: report/templates/report/inventree_test_report.html:169 stock/admin.py:160 +#: stock/serializers.py:128 stock/serializers.py:168 stock/serializers.py:687 +#: stock/templates/stock/item_base.html:284 +#: stock/templates/stock/item_base.html:292 +#: stock/templates/stock/item_base.html:339 #: templates/email/build_order_completed.html:18 #: templates/js/translated/barcode.js:579 templates/js/translated/bom.js:771 -#: templates/js/translated/bom.js:981 templates/js/translated/build.js:522 -#: templates/js/translated/build.js:737 templates/js/translated/build.js:1542 -#: templates/js/translated/build.js:1919 templates/js/translated/build.js:2529 -#: templates/js/translated/company.js:1818 -#: templates/js/translated/model_renderers.js:237 +#: templates/js/translated/bom.js:981 templates/js/translated/build.js:525 +#: templates/js/translated/build.js:740 templates/js/translated/build.js:1545 +#: templates/js/translated/build.js:1922 templates/js/translated/build.js:2536 +#: templates/js/translated/company.js:1819 +#: templates/js/translated/model_renderers.js:240 #: templates/js/translated/order.js:329 templates/js/translated/part.js:968 -#: templates/js/translated/part.js:1818 templates/js/translated/part.js:3360 +#: templates/js/translated/part.js:1818 templates/js/translated/part.js:3376 #: templates/js/translated/pricing.js:381 #: templates/js/translated/pricing.js:474 #: templates/js/translated/pricing.js:522 #: templates/js/translated/pricing.js:616 -#: templates/js/translated/purchase_order.js:754 -#: templates/js/translated/purchase_order.js:1922 -#: templates/js/translated/purchase_order.js:2141 -#: templates/js/translated/sales_order.js:317 -#: templates/js/translated/sales_order.js:1235 -#: templates/js/translated/sales_order.js:1554 -#: templates/js/translated/sales_order.js:1644 -#: templates/js/translated/sales_order.js:1734 -#: templates/js/translated/sales_order.js:1860 +#: templates/js/translated/purchase_order.js:737 +#: templates/js/translated/purchase_order.js:1906 +#: templates/js/translated/purchase_order.js:2125 +#: templates/js/translated/sales_order.js:1201 +#: templates/js/translated/sales_order.js:1520 +#: templates/js/translated/sales_order.js:1625 +#: templates/js/translated/sales_order.js:1715 +#: templates/js/translated/sales_order.js:1841 #: templates/js/translated/stock.js:570 templates/js/translated/stock.js:708 -#: templates/js/translated/stock.js:879 templates/js/translated/stock.js:3105 -#: templates/js/translated/stock.js:3188 +#: templates/js/translated/stock.js:879 templates/js/translated/stock.js:3106 +#: templates/js/translated/stock.js:3189 msgid "Quantity" msgstr "" -#: build/models.py:1505 +#: build/models.py:1522 msgid "Required quantity for build order" msgstr "" -#: build/models.py:1585 +#: build/models.py:1602 msgid "Build item must specify a build output, as master part is marked as trackable" msgstr "" -#: build/models.py:1594 +#: build/models.py:1611 #, python-brace-format msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgstr "" -#: build/models.py:1604 order/models.py:1992 +#: build/models.py:1628 order/models.py:2025 msgid "Stock item is over-allocated" msgstr "" -#: build/models.py:1610 order/models.py:1995 +#: build/models.py:1634 order/models.py:2028 msgid "Allocation quantity must be greater than zero" msgstr "" -#: build/models.py:1616 +#: build/models.py:1640 msgid "Quantity must be 1 for serialized stock" msgstr "" -#: build/models.py:1675 +#: build/models.py:1699 msgid "Selected stock item does not match BOM line" msgstr "" -#: build/models.py:1747 build/serializers.py:895 order/serializers.py:1297 -#: order/serializers.py:1318 stock/models.py:376 stock/serializers.py:93 -#: stock/serializers.py:763 stock/serializers.py:1281 stock/serializers.py:1393 -#: stock/templates/stock/item_base.html:10 -#: stock/templates/stock/item_base.html:23 -#: stock/templates/stock/item_base.html:194 -#: templates/js/translated/build.js:1918 -#: templates/js/translated/sales_order.js:301 -#: templates/js/translated/sales_order.js:1234 -#: templates/js/translated/sales_order.js:1535 -#: templates/js/translated/sales_order.js:1540 -#: templates/js/translated/sales_order.js:1641 -#: templates/js/translated/sales_order.js:1728 +#: build/models.py:1774 build/serializers.py:939 order/serializers.py:1423 +#: order/serializers.py:1444 +#: report/templates/report/inventree_sales_order_shipment_report.html:29 +#: stock/models.py:382 stock/serializers.py:94 stock/serializers.py:794 +#: stock/serializers.py:1312 stock/serializers.py:1424 +#: stock/templates/stock/item_base.html:11 +#: stock/templates/stock/item_base.html:24 +#: stock/templates/stock/item_base.html:191 +#: templates/js/translated/build.js:1921 +#: templates/js/translated/sales_order.js:1200 +#: templates/js/translated/sales_order.js:1501 +#: templates/js/translated/sales_order.js:1506 +#: templates/js/translated/sales_order.js:1622 +#: templates/js/translated/sales_order.js:1709 #: templates/js/translated/stock.js:683 templates/js/translated/stock.js:849 -#: templates/js/translated/stock.js:3061 +#: templates/js/translated/stock.js:3062 msgid "Stock Item" msgstr "" -#: build/models.py:1748 +#: build/models.py:1775 msgid "Source stock item" msgstr "" -#: build/models.py:1761 +#: build/models.py:1788 msgid "Stock quantity to allocate to build" msgstr "" -#: build/models.py:1769 +#: build/models.py:1796 msgid "Install into" msgstr "" -#: build/models.py:1770 +#: build/models.py:1797 msgid "Destination stock item" msgstr "" -#: build/serializers.py:91 +#: build/serializers.py:108 msgid "Build Level" msgstr "" -#: build/serializers.py:99 build/serializers.py:1190 build/serializers.py:1279 -#: part/admin.py:41 part/admin.py:408 part/models.py:4102 part/stocktake.py:219 -#: stock/admin.py:156 +#: build/serializers.py:116 build/serializers.py:1235 build/serializers.py:1331 +#: part/admin.py:41 part/admin.py:408 part/models.py:4160 part/stocktake.py:219 +#: stock/admin.py:157 msgid "Part Name" msgstr "" -#: build/serializers.py:111 +#: build/serializers.py:128 msgid "Project Code Label" msgstr "" -#: build/serializers.py:172 build/serializers.py:924 -#: templates/js/translated/build.js:1042 templates/js/translated/build.js:1495 +#: build/serializers.py:134 +msgid "Create Child Builds" +msgstr "" + +#: build/serializers.py:135 +msgid "Automatically generate child build orders" +msgstr "" + +#: build/serializers.py:219 build/serializers.py:968 +#: templates/js/translated/build.js:1045 templates/js/translated/build.js:1498 msgid "Build Output" msgstr "" -#: build/serializers.py:184 +#: build/serializers.py:231 msgid "Build output does not match the parent build" msgstr "" -#: build/serializers.py:188 +#: build/serializers.py:235 msgid "Output part does not match BuildOrder part" msgstr "" -#: build/serializers.py:192 +#: build/serializers.py:239 msgid "This build output has already been completed" msgstr "" -#: build/serializers.py:203 +#: build/serializers.py:250 msgid "This build output is not fully allocated" msgstr "" -#: build/serializers.py:223 build/serializers.py:270 +#: build/serializers.py:270 build/serializers.py:317 msgid "Enter quantity for build output" msgstr "" -#: build/serializers.py:291 +#: build/serializers.py:338 msgid "Integer quantity required for trackable parts" msgstr "" -#: build/serializers.py:294 +#: build/serializers.py:341 msgid "Integer quantity required, as the bill of materials contains trackable parts" msgstr "" -#: build/serializers.py:309 order/serializers.py:678 order/serializers.py:1464 -#: stock/serializers.py:680 templates/js/translated/purchase_order.js:1154 +#: build/serializers.py:356 order/serializers.py:763 order/serializers.py:1590 +#: stock/serializers.py:707 templates/js/translated/purchase_order.js:1137 #: templates/js/translated/stock.js:373 templates/js/translated/stock.js:571 msgid "Serial Numbers" msgstr "" -#: build/serializers.py:310 +#: build/serializers.py:357 msgid "Enter serial numbers for build outputs" msgstr "" -#: build/serializers.py:315 build/serializers.py:456 build/serializers.py:528 -#: order/serializers.py:654 order/serializers.py:778 order/serializers.py:1781 -#: part/serializers.py:1212 stock/serializers.py:102 stock/serializers.py:691 -#: stock/serializers.py:851 stock/serializers.py:977 stock/serializers.py:1425 -#: stock/serializers.py:1681 stock/templates/stock/item_base.html:394 +#: build/serializers.py:362 build/serializers.py:500 build/serializers.py:572 +#: order/serializers.py:739 order/serializers.py:880 order/serializers.py:1933 +#: part/serializers.py:1265 stock/serializers.py:103 stock/serializers.py:718 +#: stock/serializers.py:882 stock/serializers.py:1008 stock/serializers.py:1456 +#: stock/serializers.py:1712 stock/templates/stock/item_base.html:391 #: templates/js/translated/barcode.js:578 -#: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1032 -#: templates/js/translated/build.js:1174 templates/js/translated/build.js:2544 -#: templates/js/translated/purchase_order.js:1210 -#: templates/js/translated/purchase_order.js:1320 -#: templates/js/translated/sales_order.js:1547 -#: templates/js/translated/sales_order.js:1655 -#: templates/js/translated/sales_order.js:1663 -#: templates/js/translated/sales_order.js:1742 +#: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1035 +#: templates/js/translated/build.js:1177 templates/js/translated/build.js:2551 +#: templates/js/translated/purchase_order.js:1193 +#: templates/js/translated/purchase_order.js:1303 +#: templates/js/translated/sales_order.js:1513 +#: templates/js/translated/sales_order.js:1636 +#: templates/js/translated/sales_order.js:1644 +#: templates/js/translated/sales_order.js:1723 #: templates/js/translated/stock.js:684 templates/js/translated/stock.js:850 -#: templates/js/translated/stock.js:1067 templates/js/translated/stock.js:2286 -#: templates/js/translated/stock.js:2955 +#: templates/js/translated/stock.js:1067 templates/js/translated/stock.js:2287 +#: templates/js/translated/stock.js:2956 msgid "Location" msgstr "" -#: build/serializers.py:316 +#: build/serializers.py:363 msgid "Stock location for build output" msgstr "" -#: build/serializers.py:330 +#: build/serializers.py:377 msgid "Auto Allocate Serial Numbers" msgstr "" -#: build/serializers.py:331 +#: build/serializers.py:378 msgid "Automatically allocate required items with matching serial numbers" msgstr "" -#: build/serializers.py:346 -msgid "Serial numbers must be provided for trackable parts" -msgstr "" - -#: build/serializers.py:371 stock/api.py:1031 +#: build/serializers.py:415 order/serializers.py:858 stock/api.py:1017 +#: stock/models.py:1632 msgid "The following serial numbers already exist or are invalid" msgstr "" -#: build/serializers.py:418 build/serializers.py:480 build/serializers.py:569 +#: build/serializers.py:462 build/serializers.py:524 build/serializers.py:613 msgid "A list of build outputs must be provided" msgstr "" -#: build/serializers.py:457 +#: build/serializers.py:501 msgid "Stock location for scrapped outputs" msgstr "" -#: build/serializers.py:463 +#: build/serializers.py:507 msgid "Discard Allocations" msgstr "" -#: build/serializers.py:464 +#: build/serializers.py:508 msgid "Discard any stock allocations for scrapped outputs" msgstr "" -#: build/serializers.py:469 +#: build/serializers.py:513 msgid "Reason for scrapping build output(s)" msgstr "" -#: build/serializers.py:529 +#: build/serializers.py:573 msgid "Location for completed build outputs" msgstr "" -#: build/serializers.py:535 build/templates/build/build_base.html:159 -#: build/templates/build/detail.html:62 order/models.py:476 -#: order/models.py:1002 order/models.py:2159 order/serializers.py:686 -#: stock/admin.py:164 stock/serializers.py:1028 stock/serializers.py:1569 -#: stock/templates/stock/item_base.html:427 -#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2363 -#: templates/js/translated/purchase_order.js:1371 -#: templates/js/translated/purchase_order.js:1792 +#: build/serializers.py:579 build/templates/build/build_base.html:160 +#: build/templates/build/detail.html:62 order/models.py:488 +#: order/models.py:1029 order/models.py:2198 order/serializers.py:771 +#: stock/admin.py:165 stock/serializers.py:581 stock/serializers.py:1059 +#: stock/serializers.py:1600 stock/templates/stock/item_base.html:424 +#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2366 +#: templates/js/translated/purchase_order.js:1354 +#: templates/js/translated/purchase_order.js:1776 #: templates/js/translated/return_order.js:330 -#: templates/js/translated/sales_order.js:855 -#: templates/js/translated/stock.js:2261 templates/js/translated/stock.js:3079 -#: templates/js/translated/stock.js:3204 +#: templates/js/translated/sales_order.js:814 +#: templates/js/translated/stock.js:2262 templates/js/translated/stock.js:3080 +#: templates/js/translated/stock.js:3205 msgid "Status" msgstr "" -#: build/serializers.py:541 +#: build/serializers.py:585 msgid "Accept Incomplete Allocation" msgstr "" -#: build/serializers.py:542 +#: build/serializers.py:586 msgid "Complete outputs if stock has not been fully allocated" msgstr "" -#: build/serializers.py:654 +#: build/serializers.py:698 msgid "Consume Allocated Stock" msgstr "" -#: build/serializers.py:655 +#: build/serializers.py:699 msgid "Consume any stock which has already been allocated to this build" msgstr "" -#: build/serializers.py:661 +#: build/serializers.py:705 msgid "Remove Incomplete Outputs" msgstr "" -#: build/serializers.py:662 +#: build/serializers.py:706 msgid "Delete any build outputs which have not been completed" msgstr "" -#: build/serializers.py:689 +#: build/serializers.py:733 msgid "Not permitted" msgstr "" -#: build/serializers.py:690 +#: build/serializers.py:734 msgid "Accept as consumed by this build order" msgstr "" -#: build/serializers.py:691 +#: build/serializers.py:735 msgid "Deallocate before completing this build order" msgstr "" -#: build/serializers.py:721 +#: build/serializers.py:765 msgid "Overallocated Stock" msgstr "" -#: build/serializers.py:723 +#: build/serializers.py:767 msgid "How do you want to handle extra stock items assigned to the build order" msgstr "" -#: build/serializers.py:733 +#: build/serializers.py:777 msgid "Some stock items have been overallocated" msgstr "" -#: build/serializers.py:738 +#: build/serializers.py:782 msgid "Accept Unallocated" msgstr "" -#: build/serializers.py:739 +#: build/serializers.py:783 msgid "Accept that stock items have not been fully allocated to this build order" msgstr "" -#: build/serializers.py:749 templates/js/translated/build.js:316 +#: build/serializers.py:793 templates/js/translated/build.js:319 msgid "Required stock has not been fully allocated" msgstr "" -#: build/serializers.py:754 order/serializers.py:345 order/serializers.py:1365 +#: build/serializers.py:798 order/serializers.py:430 order/serializers.py:1491 msgid "Accept Incomplete" msgstr "" -#: build/serializers.py:755 +#: build/serializers.py:799 msgid "Accept that the required number of build outputs have not been completed" msgstr "" -#: build/serializers.py:765 templates/js/translated/build.js:320 +#: build/serializers.py:809 templates/js/translated/build.js:323 msgid "Required build quantity has not been completed" msgstr "" -#: build/serializers.py:774 +#: build/serializers.py:818 msgid "Build order has open child build orders" msgstr "" -#: build/serializers.py:777 +#: build/serializers.py:821 msgid "Build order must be in production state" msgstr "" -#: build/serializers.py:780 templates/js/translated/build.js:304 +#: build/serializers.py:824 templates/js/translated/build.js:307 msgid "Build order has incomplete outputs" msgstr "" -#: build/serializers.py:818 +#: build/serializers.py:862 msgid "Build Line" msgstr "" -#: build/serializers.py:828 +#: build/serializers.py:872 msgid "Build output" msgstr "" -#: build/serializers.py:836 +#: build/serializers.py:880 msgid "Build output must point to the same build" msgstr "" -#: build/serializers.py:872 +#: build/serializers.py:916 msgid "Build Line Item" msgstr "" -#: build/serializers.py:886 +#: build/serializers.py:930 msgid "bom_item.part must point to the same part as the build order" msgstr "" -#: build/serializers.py:901 stock/serializers.py:1294 +#: build/serializers.py:945 stock/serializers.py:1325 msgid "Item must be in stock" msgstr "" -#: build/serializers.py:949 order/serializers.py:1351 +#: build/serializers.py:993 order/serializers.py:1477 #, python-brace-format msgid "Available quantity ({q}) exceeded" msgstr "" -#: build/serializers.py:955 +#: build/serializers.py:999 msgid "Build output must be specified for allocation of tracked parts" msgstr "" -#: build/serializers.py:962 +#: build/serializers.py:1006 msgid "Build output cannot be specified for allocation of untracked parts" msgstr "" -#: build/serializers.py:986 order/serializers.py:1610 +#: build/serializers.py:1030 order/serializers.py:1750 msgid "Allocation items must be provided" msgstr "" -#: build/serializers.py:1049 +#: build/serializers.py:1093 msgid "Stock location where parts are to be sourced (leave blank to take from any location)" msgstr "" -#: build/serializers.py:1057 +#: build/serializers.py:1101 msgid "Exclude Location" msgstr "" -#: build/serializers.py:1058 +#: build/serializers.py:1102 msgid "Exclude stock items from this selected location" msgstr "" -#: build/serializers.py:1063 +#: build/serializers.py:1107 msgid "Interchangeable Stock" msgstr "" -#: build/serializers.py:1064 +#: build/serializers.py:1108 msgid "Stock items in multiple locations can be used interchangeably" msgstr "" -#: build/serializers.py:1069 +#: build/serializers.py:1113 msgid "Substitute Stock" msgstr "" -#: build/serializers.py:1070 +#: build/serializers.py:1114 msgid "Allow allocation of substitute parts" msgstr "" -#: build/serializers.py:1075 +#: build/serializers.py:1119 msgid "Optional Items" msgstr "" -#: build/serializers.py:1076 +#: build/serializers.py:1120 msgid "Allocate optional BOM items to build order" msgstr "" -#: build/serializers.py:1098 +#: build/serializers.py:1143 msgid "Failed to start auto-allocation task" msgstr "" -#: build/serializers.py:1181 +#: build/serializers.py:1226 stock/serializers.py:585 msgid "Supplier Part Number" msgstr "" -#: build/serializers.py:1182 company/models.py:506 +#: build/serializers.py:1227 company/models.py:503 stock/serializers.py:591 msgid "Manufacturer Part Number" msgstr "" -#: build/serializers.py:1183 stock/admin.py:53 stock/admin.py:175 -#: stock/serializers.py:457 +#: build/serializers.py:1228 stock/admin.py:53 stock/admin.py:176 +#: stock/serializers.py:467 msgid "Location Name" msgstr "" -#: build/serializers.py:1184 +#: build/serializers.py:1229 build/serializers.py:1327 msgid "Build Reference" msgstr "" -#: build/serializers.py:1185 +#: build/serializers.py:1230 msgid "BOM Reference" msgstr "" -#: build/serializers.py:1186 company/models.py:852 -#: company/templates/company/supplier_part.html:160 order/serializers.py:690 -#: stock/admin.py:228 stock/models.py:818 stock/serializers.py:1579 -#: stock/templates/stock/item_base.html:240 -#: templates/js/translated/company.js:1646 -#: templates/js/translated/purchase_order.js:1169 -#: templates/js/translated/purchase_order.js:1332 +#: build/serializers.py:1231 company/models.py:849 +#: company/templates/company/supplier_part.html:161 order/serializers.py:775 +#: stock/admin.py:229 stock/models.py:895 stock/serializers.py:1610 +#: stock/templates/stock/item_base.html:237 +#: templates/js/translated/company.js:1647 +#: templates/js/translated/purchase_order.js:1152 +#: templates/js/translated/purchase_order.js:1315 #: templates/js/translated/stock.js:1214 templates/js/translated/stock.js:1246 -#: templates/js/translated/stock.js:2509 +#: templates/js/translated/stock.js:2510 msgid "Packaging" msgstr "" -#: build/serializers.py:1189 part/admin.py:39 part/admin.py:398 -#: part/models.py:4101 part/stocktake.py:218 stock/admin.py:152 +#: build/serializers.py:1234 part/admin.py:39 part/admin.py:398 +#: part/models.py:4159 part/stocktake.py:218 stock/admin.py:153 msgid "Part ID" msgstr "" -#: build/serializers.py:1191 build/serializers.py:1280 part/admin.py:402 -#: part/models.py:4103 +#: build/serializers.py:1236 build/serializers.py:1332 part/admin.py:402 +#: part/models.py:4161 msgid "Part IPN" msgstr "" -#: build/serializers.py:1192 build/serializers.py:1282 part/admin.py:45 +#: build/serializers.py:1237 build/serializers.py:1334 part/admin.py:45 #: part/stocktake.py:220 msgid "Part Description" msgstr "" -#: build/serializers.py:1195 +#: build/serializers.py:1240 msgid "BOM Part ID" msgstr "" -#: build/serializers.py:1196 +#: build/serializers.py:1241 msgid "BOM Part Name" msgstr "" -#: build/serializers.py:1199 +#: build/serializers.py:1244 #: report/templates/report/inventree_return_order_report.html:25 -#: report/templates/report/inventree_test_report.html:88 stock/models.py:845 -#: stock/serializers.py:151 stock/templates/stock/item_base.html:311 -#: templates/js/translated/build.js:520 templates/js/translated/build.js:1540 -#: templates/js/translated/build.js:2527 -#: templates/js/translated/model_renderers.js:231 +#: report/templates/report/inventree_sales_order_shipment_report.html:45 +#: report/templates/report/inventree_test_report.html:88 stock/models.py:922 +#: stock/serializers.py:152 stock/templates/stock/item_base.html:308 +#: templates/js/translated/build.js:523 templates/js/translated/build.js:1543 +#: templates/js/translated/build.js:2534 +#: templates/js/translated/model_renderers.js:234 #: templates/js/translated/return_order.js:539 #: templates/js/translated/return_order.js:722 -#: templates/js/translated/sales_order.js:315 -#: templates/js/translated/sales_order.js:1647 -#: templates/js/translated/sales_order.js:1732 +#: templates/js/translated/sales_order.js:1628 +#: templates/js/translated/sales_order.js:1713 #: templates/js/translated/stock.js:602 msgid "Serial Number" msgstr "" -#: build/serializers.py:1212 stock/serializers.py:593 -#: templates/js/translated/build.js:1017 templates/js/translated/build.js:1164 -#: templates/js/translated/build.js:2516 +#: build/serializers.py:1257 stock/serializers.py:620 +#: templates/js/translated/build.js:1020 templates/js/translated/build.js:1167 +#: templates/js/translated/build.js:2523 msgid "Allocated Quantity" msgstr "" -#: build/serializers.py:1213 stock/templates/stock/item_base.html:340 +#: build/serializers.py:1258 stock/templates/stock/item_base.html:337 msgid "Available Quantity" msgstr "" -#: build/serializers.py:1283 +#: build/serializers.py:1335 msgid "Part Category ID" msgstr "" -#: build/serializers.py:1284 +#: build/serializers.py:1336 msgid "Part Category Name" msgstr "" -#: build/serializers.py:1291 common/models.py:1513 part/admin.py:113 -#: part/models.py:1166 templates/js/translated/table_filters.js:150 +#: build/serializers.py:1345 common/models.py:1582 part/admin.py:113 +#: part/models.py:1227 templates/js/translated/build.js:2738 +#: templates/js/translated/table_filters.js:150 #: templates/js/translated/table_filters.js:230 #: templates/js/translated/table_filters.js:783 msgid "Trackable" msgstr "" -#: build/serializers.py:1292 +#: build/serializers.py:1346 msgid "Inherited" msgstr "" -#: build/serializers.py:1293 part/models.py:4313 +#: build/serializers.py:1347 part/models.py:4370 #: part/templates/part/upload_bom.html:56 templates/js/translated/bom.js:1046 -#: templates/js/translated/build.js:2711 +#: templates/js/translated/build.js:2720 msgid "Allow Variants" msgstr "" -#: build/serializers.py:1297 part/models.py:4110 part/models.py:4584 +#: build/serializers.py:1351 part/models.py:4168 part/models.py:4646 #: stock/api.py:794 msgid "BOM Item" msgstr "" -#: build/serializers.py:1306 build/templates/build/detail.html:236 +#: build/serializers.py:1370 build/templates/build/detail.html:236 #: build/templates/build/sidebar.html:16 templates/js/translated/index.js:130 msgid "Allocated Stock" msgstr "" -#: build/serializers.py:1311 order/serializers.py:1175 part/admin.py:132 -#: part/bom.py:181 part/serializers.py:899 part/serializers.py:1602 -#: part/templates/part/part_base.html:210 templates/js/translated/bom.js:1208 -#: templates/js/translated/build.js:2804 templates/js/translated/part.js:712 +#: build/serializers.py:1375 order/serializers.py:1209 part/admin.py:132 +#: part/bom.py:186 part/serializers.py:951 part/serializers.py:1660 +#: part/templates/part/part_base.html:211 templates/js/translated/bom.js:1208 +#: templates/js/translated/build.js:2822 templates/js/translated/part.js:712 #: templates/js/translated/part.js:2155 #: templates/js/translated/table_filters.js:177 msgid "On Order" msgstr "" -#: build/serializers.py:1316 order/serializers.py:1176 part/serializers.py:1604 -#: templates/js/translated/build.js:2808 +#: build/serializers.py:1380 order/serializers.py:1210 part/serializers.py:1662 +#: templates/js/translated/build.js:2826 #: templates/js/translated/table_filters.js:367 msgid "In Production" msgstr "" -#: build/serializers.py:1321 part/bom.py:180 part/serializers.py:1629 -#: part/templates/part/part_base.html:192 -#: templates/js/translated/sales_order.js:1929 -msgid "Available Stock" -msgstr "" - -#: build/serializers.py:1325 -msgid "Available Substitute Stock" -msgstr "" - -#: build/serializers.py:1326 -msgid "Available Variant Stock" -msgstr "" - -#: build/serializers.py:1327 -msgid "Total Available Stock" -msgstr "" - -#: build/serializers.py:1328 part/serializers.py:906 +#: build/serializers.py:1384 part/serializers.py:958 msgid "External Stock" msgstr "" -#: build/status_codes.py:11 generic/states/tests.py:17 order/status_codes.py:12 -#: order/status_codes.py:42 order/status_codes.py:74 order/status_codes.py:98 +#: build/serializers.py:1385 part/bom.py:185 part/serializers.py:1687 +#: part/templates/part/part_base.html:193 +#: templates/js/translated/sales_order.js:1910 +msgid "Available Stock" +msgstr "" + +#: build/serializers.py:1386 +msgid "Available Substitute Stock" +msgstr "" + +#: build/serializers.py:1387 +msgid "Available Variant Stock" +msgstr "" + +#: build/status_codes.py:11 generic/states/tests.py:21 +#: generic/states/tests.py:131 order/status_codes.py:12 +#: order/status_codes.py:44 order/status_codes.py:76 order/status_codes.py:102 #: templates/js/translated/table_filters.js:601 msgid "Pending" msgstr "" @@ -1722,21 +1750,21 @@ msgstr "" msgid "Production" msgstr "" -#: build/status_codes.py:13 order/status_codes.py:14 order/status_codes.py:49 -#: order/status_codes.py:79 +#: build/status_codes.py:13 order/status_codes.py:14 order/status_codes.py:51 +#: order/status_codes.py:81 msgid "On Hold" msgstr "" -#: build/status_codes.py:14 order/status_codes.py:16 order/status_codes.py:51 -#: order/status_codes.py:82 +#: build/status_codes.py:14 order/status_codes.py:16 order/status_codes.py:53 +#: order/status_codes.py:84 msgid "Cancelled" msgstr "" -#: build/status_codes.py:15 generic/states/tests.py:19 importer/models.py:509 -#: importer/status_codes.py:19 order/status_codes.py:15 -#: order/status_codes.py:50 order/status_codes.py:81 -#: order/templates/order/order_base.html:163 -#: order/templates/order/sales_order_base.html:168 report/models.py:443 +#: build/status_codes.py:15 generic/states/tests.py:23 importer/models.py:518 +#: importer/status_codes.py:27 order/status_codes.py:15 +#: order/status_codes.py:52 order/status_codes.py:83 +#: order/templates/order/order_base.html:172 +#: order/templates/order/sales_order_base.html:169 report/models.py:451 msgid "Complete" msgstr "" @@ -1744,165 +1772,162 @@ msgstr "" msgid "Stock required for build order" msgstr "" -#: build/tasks.py:201 +#: build/tasks.py:260 msgid "Overdue Build Order" msgstr "" -#: build/tasks.py:206 +#: build/tasks.py:265 #, python-brace-format msgid "Build order {bo} is now overdue" msgstr "" -#: build/templates/build/build_base.html:18 +#: build/templates/build/build_base.html:19 msgid "Part thumbnail" msgstr "" -#: build/templates/build/build_base.html:38 -#: company/templates/company/supplier_part.html:35 -#: order/templates/order/order_base.html:29 -#: order/templates/order/return_order_base.html:38 -#: order/templates/order/sales_order_base.html:38 -#: part/templates/part/part_base.html:41 -#: stock/templates/stock/item_base.html:40 -#: stock/templates/stock/location.html:52 +#: build/templates/build/build_base.html:39 +#: company/templates/company/supplier_part.html:36 +#: order/templates/order/order_base.html:30 +#: order/templates/order/return_order_base.html:39 +#: order/templates/order/sales_order_base.html:39 +#: part/templates/part/part_base.html:42 +#: stock/templates/stock/item_base.html:41 +#: stock/templates/stock/location.html:53 #: templates/js/translated/filters.js:338 msgid "Barcode actions" msgstr "" -#: build/templates/build/build_base.html:42 -#: company/templates/company/supplier_part.html:39 -#: order/templates/order/order_base.html:33 -#: order/templates/order/return_order_base.html:42 -#: order/templates/order/sales_order_base.html:42 -#: part/templates/part/part_base.html:44 -#: stock/templates/stock/item_base.html:44 -#: stock/templates/stock/location.html:54 templates/qr_button.html:1 +#: build/templates/build/build_base.html:43 +#: company/templates/company/supplier_part.html:40 +#: order/templates/order/order_base.html:34 +#: order/templates/order/return_order_base.html:43 +#: order/templates/order/sales_order_base.html:43 +#: part/templates/part/part_base.html:45 +#: stock/templates/stock/item_base.html:45 +#: stock/templates/stock/location.html:55 templates/qr_button.html:1 msgid "Show QR Code" msgstr "" -#: build/templates/build/build_base.html:45 -#: company/templates/company/supplier_part.html:41 -#: order/templates/order/order_base.html:36 -#: order/templates/order/return_order_base.html:45 -#: order/templates/order/sales_order_base.html:45 -#: part/templates/part/part_base.html:47 -#: stock/templates/stock/item_base.html:47 -#: stock/templates/stock/location.html:56 +#: build/templates/build/build_base.html:46 +#: company/templates/company/supplier_part.html:42 +#: order/templates/order/order_base.html:37 +#: order/templates/order/return_order_base.html:46 +#: order/templates/order/sales_order_base.html:46 +#: part/templates/part/part_base.html:48 +#: stock/templates/stock/item_base.html:48 +#: stock/templates/stock/location.html:57 #: templates/js/translated/barcode.js:527 #: templates/js/translated/barcode.js:532 msgid "Unlink Barcode" msgstr "" -#: build/templates/build/build_base.html:47 -#: company/templates/company/supplier_part.html:43 -#: order/templates/order/order_base.html:38 -#: order/templates/order/return_order_base.html:47 -#: order/templates/order/sales_order_base.html:47 -#: part/templates/part/part_base.html:49 -#: stock/templates/stock/item_base.html:49 -#: stock/templates/stock/location.html:58 +#: build/templates/build/build_base.html:48 +#: company/templates/company/supplier_part.html:44 +#: order/templates/order/order_base.html:39 +#: order/templates/order/return_order_base.html:48 +#: order/templates/order/sales_order_base.html:48 +#: part/templates/part/part_base.html:50 +#: stock/templates/stock/item_base.html:50 +#: stock/templates/stock/location.html:59 msgid "Link Barcode" msgstr "" -#: build/templates/build/build_base.html:56 -#: order/templates/order/order_base.html:46 -#: order/templates/order/return_order_base.html:55 -#: order/templates/order/sales_order_base.html:55 +#: build/templates/build/build_base.html:57 +#: order/templates/order/order_base.html:47 +#: order/templates/order/return_order_base.html:56 +#: order/templates/order/sales_order_base.html:56 msgid "Print actions" msgstr "" -#: build/templates/build/build_base.html:60 +#: build/templates/build/build_base.html:61 msgid "Print build order report" msgstr "" -#: build/templates/build/build_base.html:67 +#: build/templates/build/build_base.html:68 msgid "Build actions" msgstr "" -#: build/templates/build/build_base.html:71 +#: build/templates/build/build_base.html:72 msgid "Edit Build" msgstr "" -#: build/templates/build/build_base.html:73 +#: build/templates/build/build_base.html:74 msgid "Duplicate Build" msgstr "" -#: build/templates/build/build_base.html:76 +#: build/templates/build/build_base.html:77 msgid "Hold Build" msgstr "" -#: build/templates/build/build_base.html:79 +#: build/templates/build/build_base.html:80 msgid "Cancel Build" msgstr "" -#: build/templates/build/build_base.html:82 +#: build/templates/build/build_base.html:83 msgid "Delete Build" msgstr "" -#: build/templates/build/build_base.html:87 -msgid "Isueue Build" -msgstr "" - #: build/templates/build/build_base.html:88 +#: build/templates/build/build_base.html:89 msgid "Issue Build" msgstr "" -#: build/templates/build/build_base.html:91 #: build/templates/build/build_base.html:92 +#: build/templates/build/build_base.html:93 msgid "Complete Build" msgstr "" -#: build/templates/build/build_base.html:115 +#: build/templates/build/build_base.html:116 msgid "Build Description" msgstr "" -#: build/templates/build/build_base.html:125 +#: build/templates/build/build_base.html:126 msgid "No build outputs have been created for this build order" msgstr "" -#: build/templates/build/build_base.html:132 +#: build/templates/build/build_base.html:133 msgid "Build Order is ready to mark as completed" msgstr "" -#: build/templates/build/build_base.html:137 +#: build/templates/build/build_base.html:138 msgid "Build Order cannot be completed as outstanding outputs remain" msgstr "" -#: build/templates/build/build_base.html:142 +#: build/templates/build/build_base.html:143 msgid "Required build quantity has not yet been completed" msgstr "" -#: build/templates/build/build_base.html:147 +#: build/templates/build/build_base.html:148 msgid "Stock has not been fully allocated to this Build Order" msgstr "" -#: build/templates/build/build_base.html:168 -#: build/templates/build/detail.html:138 order/models.py:308 -#: order/models.py:1391 order/serializers.py:174 -#: order/templates/order/order_base.html:191 -#: order/templates/order/return_order_base.html:167 -#: order/templates/order/sales_order_base.html:199 +#: build/templates/build/build_base.html:169 +#: build/templates/build/detail.html:138 order/models.py:315 +#: order/models.py:1408 order/serializers.py:254 +#: order/templates/order/order_base.html:200 +#: order/templates/order/return_order_base.html:168 +#: order/templates/order/sales_order_base.html:200 #: report/templates/report/inventree_build_order_report.html:125 -#: templates/js/translated/build.js:2411 templates/js/translated/part.js:1837 -#: templates/js/translated/purchase_order.js:1809 -#: templates/js/translated/purchase_order.js:2217 +#: templates/js/translated/build.js:2414 templates/js/translated/part.js:1837 +#: templates/js/translated/purchase_order.js:1793 +#: templates/js/translated/purchase_order.js:2201 #: templates/js/translated/return_order.js:346 #: templates/js/translated/return_order.js:749 -#: templates/js/translated/sales_order.js:871 -#: templates/js/translated/sales_order.js:1903 +#: templates/js/translated/sales_order.js:830 +#: templates/js/translated/sales_order.js:1884 msgid "Target Date" msgstr "" -#: build/templates/build/build_base.html:173 +#: build/templates/build/build_base.html:174 #, python-format msgid "This build was due on %(target)s" msgstr "" -#: build/templates/build/build_base.html:173 -#: build/templates/build/build_base.html:230 -#: order/templates/order/order_base.html:127 -#: order/templates/order/return_order_base.html:120 -#: order/templates/order/sales_order_base.html:129 +#: build/templates/build/build_base.html:174 +#: build/templates/build/build_base.html:231 +#: order/templates/order/order_base.html:128 +#: order/templates/order/return_order_base.html:121 +#: order/templates/order/sales_order_base.html:130 #: templates/js/translated/table_filters.js:97 #: templates/js/translated/table_filters.js:545 #: templates/js/translated/table_filters.js:629 @@ -1910,49 +1935,50 @@ msgstr "" msgid "Overdue" msgstr "" -#: build/templates/build/build_base.html:185 +#: build/templates/build/build_base.html:186 #: build/templates/build/detail.html:67 build/templates/build/sidebar.html:13 msgid "Completed Outputs" msgstr "" -#: build/templates/build/build_base.html:198 -#: build/templates/build/detail.html:101 order/api.py:1406 order/models.py:892 -#: order/models.py:1650 order/models.py:1765 order/models.py:1924 -#: order/templates/order/sales_order_base.html:9 -#: order/templates/order/sales_order_base.html:28 +#: build/templates/build/build_base.html:199 +#: build/templates/build/detail.html:101 order/api.py:1528 order/models.py:914 +#: order/models.py:1666 order/models.py:1794 order/models.py:1957 +#: order/templates/order/sales_order_base.html:10 +#: order/templates/order/sales_order_base.html:29 #: report/templates/report/inventree_build_order_report.html:135 #: report/templates/report/inventree_sales_order_report.html:14 -#: stock/templates/stock/item_base.html:369 +#: report/templates/report/inventree_sales_order_shipment_report.html:15 +#: stock/templates/stock/item_base.html:366 #: templates/email/overdue_sales_order.html:15 -#: templates/js/translated/pricing.js:929 -#: templates/js/translated/sales_order.js:805 -#: templates/js/translated/sales_order.js:1028 -#: templates/js/translated/stock.js:3008 +#: templates/js/translated/pricing.js:927 +#: templates/js/translated/sales_order.js:764 +#: templates/js/translated/sales_order.js:1001 +#: templates/js/translated/stock.js:3009 msgid "Sales Order" msgstr "" -#: build/templates/build/build_base.html:219 -#: build/templates/build/detail.html:94 templates/js/translated/build.js:2328 +#: build/templates/build/build_base.html:220 +#: build/templates/build/detail.html:94 templates/js/translated/build.js:2331 msgid "Priority" msgstr "" -#: build/templates/build/build_base.html:267 +#: build/templates/build/build_base.html:268 msgid "Issue Build Order" msgstr "" -#: build/templates/build/build_base.html:271 +#: build/templates/build/build_base.html:272 msgid "Issue this Build Order?" msgstr "" -#: build/templates/build/build_base.html:302 +#: build/templates/build/build_base.html:303 msgid "Delete Build Order" msgstr "" -#: build/templates/build/build_base.html:312 +#: build/templates/build/build_base.html:313 msgid "Build Order QR Code" msgstr "" -#: build/templates/build/build_base.html:324 +#: build/templates/build/build_base.html:325 msgid "Link Barcode to Build Order" msgstr "" @@ -1968,8 +1994,9 @@ msgstr "" msgid "Stock can be taken from any available location." msgstr "" -#: build/templates/build/detail.html:49 order/models.py:1532 -#: templates/js/translated/purchase_order.js:2259 +#: build/templates/build/detail.html:49 order/models.py:548 +#: order/models.py:1548 order/templates/order/order_base.html:135 +#: templates/js/translated/purchase_order.js:2243 msgid "Destination" msgstr "" @@ -1981,23 +2008,24 @@ msgstr "" msgid "Allocated Parts" msgstr "" -#: build/templates/build/detail.html:80 stock/admin.py:162 -#: stock/templates/stock/item_base.html:162 -#: templates/js/translated/build.js:1553 -#: templates/js/translated/model_renderers.js:242 -#: templates/js/translated/purchase_order.js:1326 +#: build/templates/build/detail.html:80 +#: report/templates/report/inventree_sales_order_shipment_report.html:47 +#: stock/admin.py:163 stock/templates/stock/item_base.html:159 +#: templates/js/translated/build.js:1556 +#: templates/js/translated/model_renderers.js:245 +#: templates/js/translated/purchase_order.js:1309 #: templates/js/translated/stock.js:1139 templates/js/translated/stock.js:1240 -#: templates/js/translated/stock.js:2275 templates/js/translated/stock.js:3211 +#: templates/js/translated/stock.js:2276 templates/js/translated/stock.js:3212 #: templates/js/translated/table_filters.js:320 #: templates/js/translated/table_filters.js:411 msgid "Batch" msgstr "" #: build/templates/build/detail.html:133 -#: order/templates/order/order_base.html:178 -#: order/templates/order/return_order_base.html:154 -#: order/templates/order/sales_order_base.html:193 -#: templates/js/translated/build.js:2371 +#: order/templates/order/order_base.html:187 +#: order/templates/order/return_order_base.html:155 +#: order/templates/order/sales_order_base.html:194 +#: templates/js/translated/build.js:2374 msgid "Created" msgstr "" @@ -2005,8 +2033,8 @@ msgstr "" msgid "No target date set" msgstr "" -#: build/templates/build/detail.html:149 -#: order/templates/order/sales_order_base.html:209 +#: build/templates/build/detail.html:149 order/api.py:794 +#: order/templates/order/sales_order_base.html:210 #: templates/js/translated/table_filters.js:692 msgid "Completed" msgstr "" @@ -2052,7 +2080,7 @@ msgid "Order required parts" msgstr "" #: build/templates/build/detail.html:192 -#: templates/js/translated/purchase_order.js:795 +#: templates/js/translated/purchase_order.js:778 msgid "Order Parts" msgstr "" @@ -2120,7 +2148,7 @@ msgstr "" msgid "Build Order Details" msgstr "" -#: build/templates/build/sidebar.html:8 order/serializers.py:82 +#: build/templates/build/sidebar.html:8 order/serializers.py:113 #: order/templates/order/po_sidebar.html:5 #: order/templates/order/return_order_detail.html:18 #: order/templates/order/so_sidebar.html:5 @@ -2139,43 +2167,38 @@ msgstr "" msgid "Test Statistics" msgstr "" -#: common/api.py:693 +#: common/api.py:725 msgid "Is Link" msgstr "" -#: common/api.py:701 +#: common/api.py:733 msgid "Is File" msgstr "" -#: common/api.py:744 +#: common/api.py:776 msgid "User does not have permission to delete these attachments" msgstr "" -#: common/api.py:761 +#: common/api.py:793 msgid "User does not have permission to delete this attachment" msgstr "" -#: common/currency.py:132 +#: common/currency.py:134 msgid "Invalid currency code" msgstr "" -#: common/currency.py:134 +#: common/currency.py:136 msgid "Duplicate currency code" msgstr "" -#: common/currency.py:139 +#: common/currency.py:141 msgid "No valid currency codes provided" msgstr "" -#: common/currency.py:156 +#: common/currency.py:158 msgid "No plugin" msgstr "" -#: common/files.py:63 -#, python-brace-format -msgid "Unsupported file format: {fmt}" -msgstr "" - #: common/files.py:65 msgid "Error reading file (invalid encoding)" msgstr "" @@ -2192,1883 +2215,2039 @@ msgstr "" msgid "Error reading file (data could be corrupted)" msgstr "" -#: common/forms.py:12 +#: common/forms.py:12 common/forms.py:25 msgid "File" msgstr "" -#: common/forms.py:12 +#: common/forms.py:12 common/forms.py:26 msgid "Select file to upload" msgstr "" -#: common/forms.py:25 -msgid "{name.title()} File" -msgstr "" - -#: common/forms.py:26 -#, python-brace-format -msgid "Select {name} file to upload" -msgstr "" - -#: common/models.py:86 +#: common/models.py:89 msgid "Updated" msgstr "" -#: common/models.py:87 +#: common/models.py:90 msgid "Timestamp of last update" msgstr "" -#: common/models.py:120 +#: common/models.py:123 msgid "Site URL is locked by configuration" msgstr "" -#: common/models.py:150 +#: common/models.py:153 msgid "Unique project code" msgstr "" -#: common/models.py:157 +#: common/models.py:160 msgid "Project description" msgstr "" -#: common/models.py:166 +#: common/models.py:169 msgid "User or group responsible for this project" msgstr "" -#: common/models.py:783 -msgid "Settings key (must be unique - case insensitive)" +#: common/models.py:783 common/models.py:2236 common/models.py:2613 +msgid "Settings key" msgstr "" #: common/models.py:787 msgid "Settings value" msgstr "" -#: common/models.py:839 +#: common/models.py:842 msgid "Chosen value is not a valid option" msgstr "" -#: common/models.py:855 +#: common/models.py:858 msgid "Value must be a boolean value" msgstr "" -#: common/models.py:863 +#: common/models.py:866 msgid "Value must be an integer value" msgstr "" -#: common/models.py:900 +#: common/models.py:874 +msgid "Value must be a valid number" +msgstr "" + +#: common/models.py:899 +msgid "Value does not pass validation checks" +msgstr "" + +#: common/models.py:921 msgid "Key string must be unique" msgstr "" -#: common/models.py:1132 +#: common/models.py:1189 msgid "No group" msgstr "" -#: common/models.py:1231 +#: common/models.py:1288 msgid "Restart required" msgstr "" -#: common/models.py:1233 +#: common/models.py:1290 msgid "A setting has been changed which requires a server restart" msgstr "" -#: common/models.py:1240 +#: common/models.py:1297 msgid "Pending migrations" msgstr "" -#: common/models.py:1241 +#: common/models.py:1298 msgid "Number of pending database migrations" msgstr "" -#: common/models.py:1246 +#: common/models.py:1303 msgid "Server Instance Name" msgstr "" -#: common/models.py:1248 +#: common/models.py:1305 msgid "String descriptor for the server instance" msgstr "" -#: common/models.py:1252 +#: common/models.py:1309 msgid "Use instance name" msgstr "" -#: common/models.py:1253 +#: common/models.py:1310 msgid "Use the instance name in the title-bar" msgstr "" -#: common/models.py:1258 +#: common/models.py:1315 msgid "Restrict showing `about`" msgstr "" -#: common/models.py:1259 +#: common/models.py:1316 msgid "Show the `about` modal only to superusers" msgstr "" -#: common/models.py:1264 company/models.py:111 company/models.py:112 +#: common/models.py:1321 company/models.py:108 company/models.py:109 msgid "Company name" msgstr "" -#: common/models.py:1265 +#: common/models.py:1322 msgid "Internal company name" msgstr "" -#: common/models.py:1269 +#: common/models.py:1326 msgid "Base URL" msgstr "" -#: common/models.py:1270 +#: common/models.py:1327 msgid "Base URL for server instance" msgstr "" -#: common/models.py:1276 +#: common/models.py:1333 msgid "Default Currency" msgstr "" -#: common/models.py:1277 +#: common/models.py:1334 msgid "Select base currency for pricing calculations" msgstr "" -#: common/models.py:1283 +#: common/models.py:1340 msgid "Supported Currencies" msgstr "" -#: common/models.py:1284 +#: common/models.py:1341 msgid "List of supported currency codes" msgstr "" -#: common/models.py:1290 +#: common/models.py:1347 msgid "Currency Update Interval" msgstr "" -#: common/models.py:1292 +#: common/models.py:1349 msgid "How often to update exchange rates (set to zero to disable)" msgstr "" -#: common/models.py:1295 common/models.py:1351 common/models.py:1364 -#: common/models.py:1372 common/models.py:1381 common/models.py:1390 -#: common/models.py:1627 common/models.py:1649 common/models.py:1764 -#: common/models.py:2146 +#: common/models.py:1352 common/models.py:1408 common/models.py:1421 +#: common/models.py:1429 common/models.py:1438 common/models.py:1447 +#: common/models.py:1696 common/models.py:1718 common/models.py:1819 +#: common/models.py:2208 msgid "days" msgstr "" -#: common/models.py:1299 +#: common/models.py:1356 msgid "Currency Update Plugin" msgstr "" -#: common/models.py:1300 +#: common/models.py:1357 msgid "Currency update plugin to use" msgstr "" -#: common/models.py:1305 +#: common/models.py:1362 msgid "Download from URL" msgstr "" -#: common/models.py:1307 +#: common/models.py:1364 msgid "Allow download of remote images and files from external URL" msgstr "" -#: common/models.py:1313 +#: common/models.py:1370 msgid "Download Size Limit" msgstr "" -#: common/models.py:1314 +#: common/models.py:1371 msgid "Maximum allowable download size for remote image" msgstr "" -#: common/models.py:1320 +#: common/models.py:1377 msgid "User-agent used to download from URL" msgstr "" -#: common/models.py:1322 +#: common/models.py:1379 msgid "Allow to override the user-agent used to download images and files from external URL (leave blank for the default)" msgstr "" -#: common/models.py:1327 +#: common/models.py:1384 msgid "Strict URL Validation" msgstr "" -#: common/models.py:1328 +#: common/models.py:1385 msgid "Require schema specification when validating URLs" msgstr "" -#: common/models.py:1333 +#: common/models.py:1390 msgid "Require confirm" msgstr "" -#: common/models.py:1334 +#: common/models.py:1391 msgid "Require explicit user confirmation for certain action." msgstr "" -#: common/models.py:1339 +#: common/models.py:1396 msgid "Tree Depth" msgstr "" -#: common/models.py:1341 +#: common/models.py:1398 msgid "Default tree depth for treeview. Deeper levels can be lazy loaded as they are needed." msgstr "" -#: common/models.py:1347 +#: common/models.py:1404 msgid "Update Check Interval" msgstr "" -#: common/models.py:1348 +#: common/models.py:1405 msgid "How often to check for updates (set to zero to disable)" msgstr "" -#: common/models.py:1354 +#: common/models.py:1411 msgid "Automatic Backup" msgstr "" -#: common/models.py:1355 +#: common/models.py:1412 msgid "Enable automatic backup of database and media files" msgstr "" -#: common/models.py:1360 +#: common/models.py:1417 msgid "Auto Backup Interval" msgstr "" -#: common/models.py:1361 +#: common/models.py:1418 msgid "Specify number of days between automated backup events" msgstr "" -#: common/models.py:1367 +#: common/models.py:1424 msgid "Task Deletion Interval" msgstr "" -#: common/models.py:1369 +#: common/models.py:1426 msgid "Background task results will be deleted after specified number of days" msgstr "" -#: common/models.py:1376 +#: common/models.py:1433 msgid "Error Log Deletion Interval" msgstr "" -#: common/models.py:1378 +#: common/models.py:1435 msgid "Error logs will be deleted after specified number of days" msgstr "" -#: common/models.py:1385 +#: common/models.py:1442 msgid "Notification Deletion Interval" msgstr "" -#: common/models.py:1387 +#: common/models.py:1444 msgid "User notifications will be deleted after specified number of days" msgstr "" -#: common/models.py:1394 templates/InvenTree/settings/sidebar.html:31 +#: common/models.py:1451 templates/InvenTree/settings/sidebar.html:31 msgid "Barcode Support" msgstr "" -#: common/models.py:1395 +#: common/models.py:1452 msgid "Enable barcode scanner support in the web interface" msgstr "" -#: common/models.py:1400 +#: common/models.py:1457 +msgid "Store Barcode Results" +msgstr "" + +#: common/models.py:1458 +msgid "Store barcode scan results in the database" +msgstr "" + +#: common/models.py:1463 +msgid "Barcode Scans Maximum Count" +msgstr "" + +#: common/models.py:1464 +msgid "Maximum number of barcode scan results to store" +msgstr "" + +#: common/models.py:1469 msgid "Barcode Input Delay" msgstr "" -#: common/models.py:1401 +#: common/models.py:1470 msgid "Barcode input processing delay time" msgstr "" -#: common/models.py:1407 +#: common/models.py:1476 msgid "Barcode Webcam Support" msgstr "" -#: common/models.py:1408 +#: common/models.py:1477 msgid "Allow barcode scanning via webcam in browser" msgstr "" -#: common/models.py:1413 +#: common/models.py:1482 msgid "Barcode Show Data" msgstr "" -#: common/models.py:1414 +#: common/models.py:1483 msgid "Display barcode data in browser as text" msgstr "" -#: common/models.py:1419 +#: common/models.py:1488 msgid "Barcode Generation Plugin" msgstr "" -#: common/models.py:1420 +#: common/models.py:1489 msgid "Plugin to use for internal barcode data generation" msgstr "" -#: common/models.py:1425 +#: common/models.py:1494 msgid "Part Revisions" msgstr "" -#: common/models.py:1426 +#: common/models.py:1495 msgid "Enable revision field for Part" msgstr "" -#: common/models.py:1431 +#: common/models.py:1500 msgid "Assembly Revision Only" msgstr "" -#: common/models.py:1432 +#: common/models.py:1501 msgid "Only allow revisions for assembly parts" msgstr "" -#: common/models.py:1437 +#: common/models.py:1506 msgid "Allow Deletion from Assembly" msgstr "" -#: common/models.py:1438 +#: common/models.py:1507 msgid "Allow deletion of parts which are used in an assembly" msgstr "" -#: common/models.py:1443 +#: common/models.py:1512 msgid "IPN Regex" msgstr "" -#: common/models.py:1444 +#: common/models.py:1513 msgid "Regular expression pattern for matching Part IPN" msgstr "" -#: common/models.py:1447 +#: common/models.py:1516 msgid "Allow Duplicate IPN" msgstr "" -#: common/models.py:1448 +#: common/models.py:1517 msgid "Allow multiple parts to share the same IPN" msgstr "" -#: common/models.py:1453 +#: common/models.py:1522 msgid "Allow Editing IPN" msgstr "" -#: common/models.py:1454 +#: common/models.py:1523 msgid "Allow changing the IPN value while editing a part" msgstr "" -#: common/models.py:1459 +#: common/models.py:1528 msgid "Copy Part BOM Data" msgstr "" -#: common/models.py:1460 +#: common/models.py:1529 msgid "Copy BOM data by default when duplicating a part" msgstr "" -#: common/models.py:1465 +#: common/models.py:1534 msgid "Copy Part Parameter Data" msgstr "" -#: common/models.py:1466 +#: common/models.py:1535 msgid "Copy parameter data by default when duplicating a part" msgstr "" -#: common/models.py:1471 +#: common/models.py:1540 msgid "Copy Part Test Data" msgstr "" -#: common/models.py:1472 +#: common/models.py:1541 msgid "Copy test data by default when duplicating a part" msgstr "" -#: common/models.py:1477 +#: common/models.py:1546 msgid "Copy Category Parameter Templates" msgstr "" -#: common/models.py:1478 +#: common/models.py:1547 msgid "Copy category parameter templates when creating a part" msgstr "" -#: common/models.py:1483 part/admin.py:108 part/models.py:3945 -#: report/models.py:293 report/models.py:360 report/serializers.py:90 -#: report/serializers.py:131 stock/serializers.py:232 +#: common/models.py:1552 part/admin.py:108 part/models.py:4003 +#: report/models.py:301 report/models.py:368 report/serializers.py:91 +#: report/serializers.py:132 stock/serializers.py:233 #: templates/js/translated/table_filters.js:138 #: templates/js/translated/table_filters.js:775 msgid "Template" msgstr "" -#: common/models.py:1484 +#: common/models.py:1553 msgid "Parts are templates by default" msgstr "" -#: common/models.py:1490 +#: common/models.py:1559 msgid "Parts can be assembled from other components by default" msgstr "" -#: common/models.py:1495 part/admin.py:95 part/models.py:1160 -#: part/serializers.py:1596 templates/js/translated/table_filters.js:737 +#: common/models.py:1564 part/admin.py:95 part/models.py:1221 +#: part/serializers.py:1654 templates/js/translated/table_filters.js:737 msgid "Component" msgstr "" -#: common/models.py:1496 +#: common/models.py:1565 msgid "Parts can be used as sub-components by default" msgstr "" -#: common/models.py:1501 part/admin.py:100 part/models.py:1178 +#: common/models.py:1570 part/admin.py:100 part/models.py:1239 msgid "Purchaseable" msgstr "" -#: common/models.py:1502 +#: common/models.py:1571 msgid "Parts are purchaseable by default" msgstr "" -#: common/models.py:1507 part/admin.py:104 part/models.py:1184 +#: common/models.py:1576 part/admin.py:104 part/models.py:1245 #: templates/js/translated/table_filters.js:763 msgid "Salable" msgstr "" -#: common/models.py:1508 +#: common/models.py:1577 msgid "Parts are salable by default" msgstr "" -#: common/models.py:1514 +#: common/models.py:1583 msgid "Parts are trackable by default" msgstr "" -#: common/models.py:1519 part/admin.py:117 part/models.py:1200 -#: part/templates/part/part_base.html:154 +#: common/models.py:1588 part/admin.py:117 part/models.py:1261 +#: part/templates/part/part_base.html:155 #: templates/js/translated/table_filters.js:142 #: templates/js/translated/table_filters.js:787 msgid "Virtual" msgstr "" -#: common/models.py:1520 +#: common/models.py:1589 msgid "Parts are virtual by default" msgstr "" -#: common/models.py:1525 +#: common/models.py:1594 msgid "Show Import in Views" msgstr "" -#: common/models.py:1526 +#: common/models.py:1595 msgid "Display the import wizard in some part views" msgstr "" -#: common/models.py:1531 +#: common/models.py:1600 msgid "Show related parts" msgstr "" -#: common/models.py:1532 +#: common/models.py:1601 msgid "Display related parts for a part" msgstr "" -#: common/models.py:1537 +#: common/models.py:1606 msgid "Initial Stock Data" msgstr "" -#: common/models.py:1538 +#: common/models.py:1607 msgid "Allow creation of initial stock when adding a new part" msgstr "" -#: common/models.py:1543 templates/js/translated/part.js:108 +#: common/models.py:1612 templates/js/translated/part.js:108 msgid "Initial Supplier Data" msgstr "" -#: common/models.py:1545 +#: common/models.py:1614 msgid "Allow creation of initial supplier data when adding a new part" msgstr "" -#: common/models.py:1551 +#: common/models.py:1620 msgid "Part Name Display Format" msgstr "" -#: common/models.py:1552 +#: common/models.py:1621 msgid "Format to display the part name" msgstr "" -#: common/models.py:1558 +#: common/models.py:1627 msgid "Part Category Default Icon" msgstr "" -#: common/models.py:1559 +#: common/models.py:1628 msgid "Part category default icon (empty means no icon)" msgstr "" -#: common/models.py:1564 +#: common/models.py:1633 msgid "Enforce Parameter Units" msgstr "" -#: common/models.py:1566 +#: common/models.py:1635 msgid "If units are provided, parameter values must match the specified units" msgstr "" -#: common/models.py:1572 +#: common/models.py:1641 msgid "Minimum Pricing Decimal Places" msgstr "" -#: common/models.py:1574 +#: common/models.py:1643 msgid "Minimum number of decimal places to display when rendering pricing data" msgstr "" -#: common/models.py:1585 +#: common/models.py:1654 msgid "Maximum Pricing Decimal Places" msgstr "" -#: common/models.py:1587 +#: common/models.py:1656 msgid "Maximum number of decimal places to display when rendering pricing data" msgstr "" -#: common/models.py:1598 +#: common/models.py:1667 msgid "Use Supplier Pricing" msgstr "" -#: common/models.py:1600 +#: common/models.py:1669 msgid "Include supplier price breaks in overall pricing calculations" msgstr "" -#: common/models.py:1606 +#: common/models.py:1675 msgid "Purchase History Override" msgstr "" -#: common/models.py:1608 +#: common/models.py:1677 msgid "Historical purchase order pricing overrides supplier price breaks" msgstr "" -#: common/models.py:1614 +#: common/models.py:1683 msgid "Use Stock Item Pricing" msgstr "" -#: common/models.py:1616 +#: common/models.py:1685 msgid "Use pricing from manually entered stock data for pricing calculations" msgstr "" -#: common/models.py:1622 +#: common/models.py:1691 msgid "Stock Item Pricing Age" msgstr "" -#: common/models.py:1624 +#: common/models.py:1693 msgid "Exclude stock items older than this number of days from pricing calculations" msgstr "" -#: common/models.py:1631 +#: common/models.py:1700 msgid "Use Variant Pricing" msgstr "" -#: common/models.py:1632 +#: common/models.py:1701 msgid "Include variant pricing in overall pricing calculations" msgstr "" -#: common/models.py:1637 +#: common/models.py:1706 msgid "Active Variants Only" msgstr "" -#: common/models.py:1639 +#: common/models.py:1708 msgid "Only use active variant parts for calculating variant pricing" msgstr "" -#: common/models.py:1645 +#: common/models.py:1714 msgid "Pricing Rebuild Interval" msgstr "" -#: common/models.py:1647 +#: common/models.py:1716 msgid "Number of days before part pricing is automatically updated" msgstr "" -#: common/models.py:1654 +#: common/models.py:1723 msgid "Internal Prices" msgstr "" -#: common/models.py:1655 +#: common/models.py:1724 msgid "Enable internal prices for parts" msgstr "" -#: common/models.py:1660 +#: common/models.py:1729 msgid "Internal Price Override" msgstr "" -#: common/models.py:1662 +#: common/models.py:1731 msgid "If available, internal prices override price range calculations" msgstr "" -#: common/models.py:1668 +#: common/models.py:1737 msgid "Enable label printing" msgstr "" -#: common/models.py:1669 +#: common/models.py:1738 msgid "Enable label printing from the web interface" msgstr "" -#: common/models.py:1674 +#: common/models.py:1743 msgid "Label Image DPI" msgstr "" -#: common/models.py:1676 +#: common/models.py:1745 msgid "DPI resolution when generating image files to supply to label printing plugins" msgstr "" -#: common/models.py:1682 +#: common/models.py:1751 msgid "Enable Reports" msgstr "" -#: common/models.py:1683 +#: common/models.py:1752 msgid "Enable generation of reports" msgstr "" -#: common/models.py:1688 templates/stats.html:25 +#: common/models.py:1757 templates/stats.html:25 msgid "Debug Mode" msgstr "" -#: common/models.py:1689 +#: common/models.py:1758 msgid "Generate reports in debug mode (HTML output)" msgstr "" -#: common/models.py:1694 +#: common/models.py:1763 msgid "Log Report Errors" msgstr "" -#: common/models.py:1695 +#: common/models.py:1764 msgid "Log errors which occur when generating reports" msgstr "" -#: common/models.py:1700 plugin/builtin/labels/label_sheet.py:28 -#: report/models.py:301 +#: common/models.py:1769 plugin/builtin/labels/label_sheet.py:28 +#: report/models.py:309 msgid "Page Size" msgstr "" -#: common/models.py:1701 +#: common/models.py:1770 msgid "Default page size for PDF reports" msgstr "" -#: common/models.py:1706 -msgid "Enable Test Reports" -msgstr "" - -#: common/models.py:1707 -msgid "Enable generation of test reports" -msgstr "" - -#: common/models.py:1712 -msgid "Attach Test Reports" -msgstr "" - -#: common/models.py:1714 -msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item" -msgstr "" - -#: common/models.py:1720 +#: common/models.py:1775 msgid "Globally Unique Serials" msgstr "" -#: common/models.py:1721 +#: common/models.py:1776 msgid "Serial numbers for stock items must be globally unique" msgstr "" -#: common/models.py:1726 +#: common/models.py:1781 msgid "Autofill Serial Numbers" msgstr "" -#: common/models.py:1727 +#: common/models.py:1782 msgid "Autofill serial numbers in forms" msgstr "" -#: common/models.py:1732 +#: common/models.py:1787 msgid "Delete Depleted Stock" msgstr "" -#: common/models.py:1734 +#: common/models.py:1789 msgid "Determines default behavior when a stock item is depleted" msgstr "" -#: common/models.py:1740 +#: common/models.py:1795 msgid "Batch Code Template" msgstr "" -#: common/models.py:1742 +#: common/models.py:1797 msgid "Template for generating default batch codes for stock items" msgstr "" -#: common/models.py:1747 +#: common/models.py:1802 msgid "Stock Expiry" msgstr "" -#: common/models.py:1748 +#: common/models.py:1803 msgid "Enable stock expiry functionality" msgstr "" -#: common/models.py:1753 +#: common/models.py:1808 msgid "Sell Expired Stock" msgstr "" -#: common/models.py:1754 +#: common/models.py:1809 msgid "Allow sale of expired stock" msgstr "" -#: common/models.py:1759 +#: common/models.py:1814 msgid "Stock Stale Time" msgstr "" -#: common/models.py:1761 +#: common/models.py:1816 msgid "Number of days stock items are considered stale before expiring" msgstr "" -#: common/models.py:1768 +#: common/models.py:1823 msgid "Build Expired Stock" msgstr "" -#: common/models.py:1769 +#: common/models.py:1824 msgid "Allow building with expired stock" msgstr "" -#: common/models.py:1774 +#: common/models.py:1829 msgid "Stock Ownership Control" msgstr "" -#: common/models.py:1775 +#: common/models.py:1830 msgid "Enable ownership control over stock locations and items" msgstr "" -#: common/models.py:1780 +#: common/models.py:1835 msgid "Stock Location Default Icon" msgstr "" -#: common/models.py:1781 +#: common/models.py:1836 msgid "Stock location default icon (empty means no icon)" msgstr "" -#: common/models.py:1786 +#: common/models.py:1841 msgid "Show Installed Stock Items" msgstr "" -#: common/models.py:1787 +#: common/models.py:1842 msgid "Display installed stock items in stock tables" msgstr "" -#: common/models.py:1792 +#: common/models.py:1847 msgid "Check BOM when installing items" msgstr "" -#: common/models.py:1794 +#: common/models.py:1849 msgid "Installed stock items must exist in the BOM for the parent part" msgstr "" -#: common/models.py:1800 +#: common/models.py:1855 msgid "Allow Out of Stock Transfer" msgstr "" -#: common/models.py:1802 +#: common/models.py:1857 msgid "Allow stock items which are not in stock to be transferred between stock locations" msgstr "" -#: common/models.py:1808 +#: common/models.py:1863 msgid "Build Order Reference Pattern" msgstr "" -#: common/models.py:1810 +#: common/models.py:1865 msgid "Required pattern for generating Build Order reference field" msgstr "" -#: common/models.py:1816 common/models.py:1872 common/models.py:1894 -#: common/models.py:1930 +#: common/models.py:1871 common/models.py:1927 common/models.py:1949 +#: common/models.py:1985 msgid "Require Responsible Owner" msgstr "" -#: common/models.py:1817 common/models.py:1873 common/models.py:1895 -#: common/models.py:1931 +#: common/models.py:1872 common/models.py:1928 common/models.py:1950 +#: common/models.py:1986 msgid "A responsible owner must be assigned to each order" msgstr "" -#: common/models.py:1822 +#: common/models.py:1877 msgid "Require Active Part" msgstr "" -#: common/models.py:1823 +#: common/models.py:1878 msgid "Prevent build order creation for inactive parts" msgstr "" -#: common/models.py:1828 +#: common/models.py:1883 msgid "Require Locked Part" msgstr "" -#: common/models.py:1829 +#: common/models.py:1884 msgid "Prevent build order creation for unlocked parts" msgstr "" -#: common/models.py:1834 +#: common/models.py:1889 msgid "Require Valid BOM" msgstr "" -#: common/models.py:1836 +#: common/models.py:1891 msgid "Prevent build order creation unless BOM has been validated" msgstr "" -#: common/models.py:1842 +#: common/models.py:1897 msgid "Require Closed Child Orders" msgstr "" -#: common/models.py:1844 +#: common/models.py:1899 msgid "Prevent build order completion until all child orders are closed" msgstr "" -#: common/models.py:1850 +#: common/models.py:1905 msgid "Block Until Tests Pass" msgstr "" -#: common/models.py:1852 +#: common/models.py:1907 msgid "Prevent build outputs from being completed until all required tests pass" msgstr "" -#: common/models.py:1858 +#: common/models.py:1913 msgid "Enable Return Orders" msgstr "" -#: common/models.py:1859 +#: common/models.py:1914 msgid "Enable return order functionality in the user interface" msgstr "" -#: common/models.py:1864 +#: common/models.py:1919 msgid "Return Order Reference Pattern" msgstr "" -#: common/models.py:1866 +#: common/models.py:1921 msgid "Required pattern for generating Return Order reference field" msgstr "" -#: common/models.py:1878 +#: common/models.py:1933 msgid "Edit Completed Return Orders" msgstr "" -#: common/models.py:1880 +#: common/models.py:1935 msgid "Allow editing of return orders after they have been completed" msgstr "" -#: common/models.py:1886 +#: common/models.py:1941 msgid "Sales Order Reference Pattern" msgstr "" -#: common/models.py:1888 +#: common/models.py:1943 msgid "Required pattern for generating Sales Order reference field" msgstr "" -#: common/models.py:1900 +#: common/models.py:1955 msgid "Sales Order Default Shipment" msgstr "" -#: common/models.py:1901 +#: common/models.py:1956 msgid "Enable creation of default shipment with sales orders" msgstr "" -#: common/models.py:1906 +#: common/models.py:1961 msgid "Edit Completed Sales Orders" msgstr "" -#: common/models.py:1908 +#: common/models.py:1963 msgid "Allow editing of sales orders after they have been shipped or completed" msgstr "" -#: common/models.py:1914 +#: common/models.py:1969 msgid "Mark Shipped Orders as Complete" msgstr "" -#: common/models.py:1916 +#: common/models.py:1971 msgid "Sales orders marked as shipped will automatically be completed, bypassing the \"shipped\" status" msgstr "" -#: common/models.py:1922 +#: common/models.py:1977 msgid "Purchase Order Reference Pattern" msgstr "" -#: common/models.py:1924 +#: common/models.py:1979 msgid "Required pattern for generating Purchase Order reference field" msgstr "" -#: common/models.py:1936 +#: common/models.py:1991 msgid "Edit Completed Purchase Orders" msgstr "" -#: common/models.py:1938 +#: common/models.py:1993 msgid "Allow editing of purchase orders after they have been shipped or completed" msgstr "" -#: common/models.py:1944 +#: common/models.py:1999 msgid "Auto Complete Purchase Orders" msgstr "" -#: common/models.py:1946 +#: common/models.py:2001 msgid "Automatically mark purchase orders as complete when all line items are received" msgstr "" -#: common/models.py:1953 +#: common/models.py:2008 msgid "Enable password forgot" msgstr "" -#: common/models.py:1954 +#: common/models.py:2009 msgid "Enable password forgot function on the login pages" msgstr "" -#: common/models.py:1959 +#: common/models.py:2014 msgid "Enable registration" msgstr "" -#: common/models.py:1960 +#: common/models.py:2015 msgid "Enable self-registration for users on the login pages" msgstr "" -#: common/models.py:1965 +#: common/models.py:2020 msgid "Enable SSO" msgstr "" -#: common/models.py:1966 +#: common/models.py:2021 msgid "Enable SSO on the login pages" msgstr "" -#: common/models.py:1971 +#: common/models.py:2026 msgid "Enable SSO registration" msgstr "" -#: common/models.py:1973 +#: common/models.py:2028 msgid "Enable self-registration via SSO for users on the login pages" msgstr "" -#: common/models.py:1979 +#: common/models.py:2034 msgid "Enable SSO group sync" msgstr "" -#: common/models.py:1981 +#: common/models.py:2036 msgid "Enable synchronizing InvenTree groups with groups provided by the IdP" msgstr "" -#: common/models.py:1987 +#: common/models.py:2042 msgid "SSO group key" msgstr "" -#: common/models.py:1989 +#: common/models.py:2044 msgid "The name of the groups claim attribute provided by the IdP" msgstr "" -#: common/models.py:1995 +#: common/models.py:2050 msgid "SSO group map" msgstr "" -#: common/models.py:1997 +#: common/models.py:2052 msgid "A mapping from SSO groups to local InvenTree groups. If the local group does not exist, it will be created." msgstr "" -#: common/models.py:2003 +#: common/models.py:2058 msgid "Remove groups outside of SSO" msgstr "" -#: common/models.py:2005 +#: common/models.py:2060 msgid "Whether groups assigned to the user should be removed if they are not backend by the IdP. Disabling this setting might cause security issues" msgstr "" -#: common/models.py:2011 +#: common/models.py:2066 msgid "Email required" msgstr "" -#: common/models.py:2012 +#: common/models.py:2067 msgid "Require user to supply mail on signup" msgstr "" -#: common/models.py:2017 +#: common/models.py:2072 msgid "Auto-fill SSO users" msgstr "" -#: common/models.py:2019 +#: common/models.py:2074 msgid "Automatically fill out user-details from SSO account-data" msgstr "" -#: common/models.py:2025 +#: common/models.py:2080 msgid "Mail twice" msgstr "" -#: common/models.py:2026 +#: common/models.py:2081 msgid "On signup ask users twice for their mail" msgstr "" -#: common/models.py:2031 +#: common/models.py:2086 msgid "Password twice" msgstr "" -#: common/models.py:2032 +#: common/models.py:2087 msgid "On signup ask users twice for their password" msgstr "" -#: common/models.py:2037 +#: common/models.py:2092 msgid "Allowed domains" msgstr "" -#: common/models.py:2039 +#: common/models.py:2094 msgid "Restrict signup to certain domains (comma-separated, starting with @)" msgstr "" -#: common/models.py:2045 +#: common/models.py:2100 msgid "Group on signup" msgstr "" -#: common/models.py:2047 +#: common/models.py:2102 msgid "Group to which new users are assigned on registration. If SSO group sync is enabled, this group is only set if no group can be assigned from the IdP." msgstr "" -#: common/models.py:2053 +#: common/models.py:2108 msgid "Enforce MFA" msgstr "" -#: common/models.py:2054 +#: common/models.py:2109 msgid "Users must use multifactor security." msgstr "" -#: common/models.py:2059 +#: common/models.py:2114 msgid "Check plugins on startup" msgstr "" -#: common/models.py:2061 +#: common/models.py:2116 msgid "Check that all plugins are installed on startup - enable in container environments" msgstr "" -#: common/models.py:2069 +#: common/models.py:2124 msgid "Check for plugin updates" msgstr "" -#: common/models.py:2070 +#: common/models.py:2125 msgid "Enable periodic checks for updates to installed plugins" msgstr "" -#: common/models.py:2076 +#: common/models.py:2131 msgid "Enable URL integration" msgstr "" -#: common/models.py:2077 +#: common/models.py:2132 msgid "Enable plugins to add URL routes" msgstr "" -#: common/models.py:2083 +#: common/models.py:2138 msgid "Enable navigation integration" msgstr "" -#: common/models.py:2084 +#: common/models.py:2139 msgid "Enable plugins to integrate into navigation" msgstr "" -#: common/models.py:2090 +#: common/models.py:2145 msgid "Enable app integration" msgstr "" -#: common/models.py:2091 +#: common/models.py:2146 msgid "Enable plugins to add apps" msgstr "" -#: common/models.py:2097 +#: common/models.py:2152 msgid "Enable schedule integration" msgstr "" -#: common/models.py:2098 +#: common/models.py:2153 msgid "Enable plugins to run scheduled tasks" msgstr "" -#: common/models.py:2104 +#: common/models.py:2159 msgid "Enable event integration" msgstr "" -#: common/models.py:2105 +#: common/models.py:2160 msgid "Enable plugins to respond to internal events" msgstr "" -#: common/models.py:2111 +#: common/models.py:2166 +msgid "Enable interface integration" +msgstr "" + +#: common/models.py:2167 +msgid "Enable plugins to integrate into the user interface" +msgstr "" + +#: common/models.py:2173 msgid "Enable project codes" msgstr "" -#: common/models.py:2112 +#: common/models.py:2174 msgid "Enable project codes for tracking projects" msgstr "" -#: common/models.py:2117 +#: common/models.py:2179 msgid "Stocktake Functionality" msgstr "" -#: common/models.py:2119 +#: common/models.py:2181 msgid "Enable stocktake functionality for recording stock levels and calculating stock value" msgstr "" -#: common/models.py:2125 +#: common/models.py:2187 msgid "Exclude External Locations" msgstr "" -#: common/models.py:2127 +#: common/models.py:2189 msgid "Exclude stock items in external locations from stocktake calculations" msgstr "" -#: common/models.py:2133 +#: common/models.py:2195 msgid "Automatic Stocktake Period" msgstr "" -#: common/models.py:2135 +#: common/models.py:2197 msgid "Number of days between automatic stocktake recording (set to zero to disable)" msgstr "" -#: common/models.py:2141 +#: common/models.py:2203 msgid "Report Deletion Interval" msgstr "" -#: common/models.py:2143 +#: common/models.py:2205 msgid "Stocktake reports will be deleted after specified number of days" msgstr "" -#: common/models.py:2150 +#: common/models.py:2212 msgid "Display Users full names" msgstr "" -#: common/models.py:2151 +#: common/models.py:2213 msgid "Display Users full names instead of usernames" msgstr "" -#: common/models.py:2156 +#: common/models.py:2218 msgid "Enable Test Station Data" msgstr "" -#: common/models.py:2157 +#: common/models.py:2219 msgid "Enable test station data collection for test results" msgstr "" -#: common/models.py:2169 common/models.py:2549 -msgid "Settings key (must be unique - case insensitive" -msgstr "" - -#: common/models.py:2212 -msgid "Hide inactive parts" -msgstr "" - -#: common/models.py:2214 -msgid "Hide inactive parts in results displayed on the homepage" -msgstr "" - -#: common/models.py:2220 -msgid "Show subscribed parts" -msgstr "" - -#: common/models.py:2221 -msgid "Show subscribed parts on the homepage" +#: common/models.py:2224 +msgid "Create Template on Upload" msgstr "" #: common/models.py:2226 -msgid "Show subscribed categories" +msgid "Create a new test template when uploading test data which does not match an existing template" msgstr "" -#: common/models.py:2227 -msgid "Show subscribed part categories on the homepage" -msgstr "" - -#: common/models.py:2232 -msgid "Show latest parts" -msgstr "" - -#: common/models.py:2233 -msgid "Show latest parts on the homepage" -msgstr "" - -#: common/models.py:2238 -msgid "Show invalid BOMs" -msgstr "" - -#: common/models.py:2239 -msgid "Show BOMs that await validation on the homepage" -msgstr "" - -#: common/models.py:2244 -msgid "Show recent stock changes" -msgstr "" - -#: common/models.py:2245 -msgid "Show recently changed stock items on the homepage" -msgstr "" - -#: common/models.py:2250 -msgid "Show low stock" -msgstr "" - -#: common/models.py:2251 -msgid "Show low stock items on the homepage" -msgstr "" - -#: common/models.py:2256 -msgid "Show depleted stock" -msgstr "" - -#: common/models.py:2257 -msgid "Show depleted stock items on the homepage" -msgstr "" - -#: common/models.py:2262 -msgid "Show needed stock" -msgstr "" - -#: common/models.py:2263 -msgid "Show stock items needed for builds on the homepage" -msgstr "" - -#: common/models.py:2268 -msgid "Show expired stock" -msgstr "" - -#: common/models.py:2269 -msgid "Show expired stock items on the homepage" -msgstr "" - -#: common/models.py:2274 -msgid "Show stale stock" -msgstr "" - -#: common/models.py:2275 -msgid "Show stale stock items on the homepage" -msgstr "" - -#: common/models.py:2280 -msgid "Show pending builds" +#: common/models.py:2279 +msgid "Hide inactive parts" msgstr "" #: common/models.py:2281 -msgid "Show pending builds on the homepage" -msgstr "" - -#: common/models.py:2286 -msgid "Show overdue builds" +msgid "Hide inactive parts in results displayed on the homepage" msgstr "" #: common/models.py:2287 -msgid "Show overdue builds on the homepage" +msgid "Show subscribed parts" msgstr "" -#: common/models.py:2292 -msgid "Show outstanding POs" +#: common/models.py:2288 +msgid "Show subscribed parts on the homepage" msgstr "" #: common/models.py:2293 -msgid "Show outstanding POs on the homepage" +msgid "Show subscribed categories" msgstr "" -#: common/models.py:2298 -msgid "Show overdue POs" +#: common/models.py:2294 +msgid "Show subscribed part categories on the homepage" msgstr "" #: common/models.py:2299 -msgid "Show overdue POs on the homepage" +msgid "Show latest parts" msgstr "" -#: common/models.py:2304 -msgid "Show outstanding SOs" +#: common/models.py:2300 +msgid "Show latest parts on the homepage" msgstr "" #: common/models.py:2305 -msgid "Show outstanding SOs on the homepage" +msgid "Show invalid BOMs" msgstr "" -#: common/models.py:2310 -msgid "Show overdue SOs" +#: common/models.py:2306 +msgid "Show BOMs that await validation on the homepage" msgstr "" #: common/models.py:2311 -msgid "Show overdue SOs on the homepage" +msgid "Show recent stock changes" msgstr "" -#: common/models.py:2316 -msgid "Show pending SO shipments" +#: common/models.py:2312 +msgid "Show recently changed stock items on the homepage" msgstr "" #: common/models.py:2317 -msgid "Show pending SO shipments on the homepage" +msgid "Show low stock" msgstr "" -#: common/models.py:2322 -msgid "Show News" +#: common/models.py:2318 +msgid "Show low stock items on the homepage" msgstr "" #: common/models.py:2323 -msgid "Show news on the homepage" +msgid "Show depleted stock" msgstr "" -#: common/models.py:2328 -msgid "Inline label display" +#: common/models.py:2324 +msgid "Show depleted stock items on the homepage" +msgstr "" + +#: common/models.py:2329 +msgid "Show needed stock" msgstr "" #: common/models.py:2330 -msgid "Display PDF labels in the browser, instead of downloading as a file" +msgid "Show stock items needed for builds on the homepage" +msgstr "" + +#: common/models.py:2335 +msgid "Show expired stock" msgstr "" #: common/models.py:2336 -msgid "Default label printer" +msgid "Show expired stock items on the homepage" msgstr "" -#: common/models.py:2338 -msgid "Configure which label printer should be selected by default" +#: common/models.py:2341 +msgid "Show stale stock" msgstr "" -#: common/models.py:2344 -msgid "Inline report display" +#: common/models.py:2342 +msgid "Show stale stock items on the homepage" msgstr "" -#: common/models.py:2346 -msgid "Display PDF reports in the browser, instead of downloading as a file" +#: common/models.py:2347 +msgid "Show pending builds" msgstr "" -#: common/models.py:2352 -msgid "Search Parts" +#: common/models.py:2348 +msgid "Show pending builds on the homepage" msgstr "" #: common/models.py:2353 -msgid "Display parts in search preview window" +msgid "Show overdue builds" msgstr "" -#: common/models.py:2358 -msgid "Search Supplier Parts" +#: common/models.py:2354 +msgid "Show overdue builds on the homepage" msgstr "" #: common/models.py:2359 -msgid "Display supplier parts in search preview window" +msgid "Show outstanding POs" msgstr "" -#: common/models.py:2364 -msgid "Search Manufacturer Parts" +#: common/models.py:2360 +msgid "Show outstanding POs on the homepage" msgstr "" #: common/models.py:2365 -msgid "Display manufacturer parts in search preview window" +msgid "Show overdue POs" msgstr "" -#: common/models.py:2370 -msgid "Hide Inactive Parts" +#: common/models.py:2366 +msgid "Show overdue POs on the homepage" msgstr "" #: common/models.py:2371 -msgid "Excluded inactive parts from search preview window" +msgid "Show outstanding SOs" msgstr "" -#: common/models.py:2376 -msgid "Search Categories" +#: common/models.py:2372 +msgid "Show outstanding SOs on the homepage" msgstr "" #: common/models.py:2377 -msgid "Display part categories in search preview window" +msgid "Show overdue SOs" msgstr "" -#: common/models.py:2382 -msgid "Search Stock" +#: common/models.py:2378 +msgid "Show overdue SOs on the homepage" msgstr "" #: common/models.py:2383 -msgid "Display stock items in search preview window" +msgid "Show pending SO shipments" msgstr "" -#: common/models.py:2388 -msgid "Hide Unavailable Stock Items" +#: common/models.py:2384 +msgid "Show pending SO shipments on the homepage" +msgstr "" + +#: common/models.py:2389 +msgid "Show News" msgstr "" #: common/models.py:2390 -msgid "Exclude stock items which are not available from the search preview window" +msgid "Show news on the homepage" msgstr "" -#: common/models.py:2396 -msgid "Search Locations" +#: common/models.py:2395 +msgid "Inline label display" msgstr "" #: common/models.py:2397 -msgid "Display stock locations in search preview window" -msgstr "" - -#: common/models.py:2402 -msgid "Search Companies" +msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "" #: common/models.py:2403 -msgid "Display companies in search preview window" +msgid "Default label printer" msgstr "" -#: common/models.py:2408 -msgid "Search Build Orders" +#: common/models.py:2405 +msgid "Configure which label printer should be selected by default" msgstr "" -#: common/models.py:2409 -msgid "Display build orders in search preview window" +#: common/models.py:2411 +msgid "Inline report display" msgstr "" -#: common/models.py:2414 -msgid "Search Purchase Orders" +#: common/models.py:2413 +msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:2415 -msgid "Display purchase orders in search preview window" +#: common/models.py:2419 +msgid "Search Parts" msgstr "" #: common/models.py:2420 -msgid "Exclude Inactive Purchase Orders" +msgid "Display parts in search preview window" msgstr "" -#: common/models.py:2422 -msgid "Exclude inactive purchase orders from search preview window" +#: common/models.py:2425 +msgid "Search Supplier Parts" msgstr "" -#: common/models.py:2428 -msgid "Search Sales Orders" +#: common/models.py:2426 +msgid "Display supplier parts in search preview window" msgstr "" -#: common/models.py:2429 -msgid "Display sales orders in search preview window" +#: common/models.py:2431 +msgid "Search Manufacturer Parts" msgstr "" -#: common/models.py:2434 -msgid "Exclude Inactive Sales Orders" +#: common/models.py:2432 +msgid "Display manufacturer parts in search preview window" msgstr "" -#: common/models.py:2436 -msgid "Exclude inactive sales orders from search preview window" +#: common/models.py:2437 +msgid "Hide Inactive Parts" msgstr "" -#: common/models.py:2442 -msgid "Search Return Orders" +#: common/models.py:2438 +msgid "Excluded inactive parts from search preview window" msgstr "" #: common/models.py:2443 -msgid "Display return orders in search preview window" +msgid "Search Categories" msgstr "" -#: common/models.py:2448 -msgid "Exclude Inactive Return Orders" +#: common/models.py:2444 +msgid "Display part categories in search preview window" +msgstr "" + +#: common/models.py:2449 +msgid "Search Stock" msgstr "" #: common/models.py:2450 -msgid "Exclude inactive return orders from search preview window" +msgid "Display stock items in search preview window" msgstr "" -#: common/models.py:2456 -msgid "Search Preview Results" +#: common/models.py:2455 +msgid "Hide Unavailable Stock Items" msgstr "" -#: common/models.py:2458 -msgid "Number of results to show in each section of the search preview window" +#: common/models.py:2457 +msgid "Exclude stock items which are not available from the search preview window" +msgstr "" + +#: common/models.py:2463 +msgid "Search Locations" msgstr "" #: common/models.py:2464 -msgid "Regex Search" +msgid "Display stock locations in search preview window" msgstr "" -#: common/models.py:2465 -msgid "Enable regular expressions in search queries" +#: common/models.py:2469 +msgid "Search Companies" msgstr "" #: common/models.py:2470 -msgid "Whole Word Search" +msgid "Display companies in search preview window" msgstr "" -#: common/models.py:2471 -msgid "Search queries return results for whole word matches" +#: common/models.py:2475 +msgid "Search Build Orders" msgstr "" #: common/models.py:2476 -msgid "Show Quantity in Forms" +msgid "Display build orders in search preview window" msgstr "" -#: common/models.py:2477 -msgid "Display available part quantity in some forms" +#: common/models.py:2481 +msgid "Search Purchase Orders" msgstr "" #: common/models.py:2482 -msgid "Escape Key Closes Forms" +msgid "Display purchase orders in search preview window" msgstr "" -#: common/models.py:2483 -msgid "Use the escape key to close modal forms" -msgstr "" - -#: common/models.py:2488 -msgid "Fixed Navbar" +#: common/models.py:2487 +msgid "Exclude Inactive Purchase Orders" msgstr "" #: common/models.py:2489 -msgid "The navbar position is fixed to the top of the screen" -msgstr "" - -#: common/models.py:2494 -msgid "Date Format" +msgid "Exclude inactive purchase orders from search preview window" msgstr "" #: common/models.py:2495 -msgid "Preferred format for displaying dates" +msgid "Search Sales Orders" msgstr "" -#: common/models.py:2508 part/templates/part/detail.html:41 -msgid "Part Scheduling" +#: common/models.py:2496 +msgid "Display sales orders in search preview window" +msgstr "" + +#: common/models.py:2501 +msgid "Exclude Inactive Sales Orders" +msgstr "" + +#: common/models.py:2503 +msgid "Exclude inactive sales orders from search preview window" msgstr "" #: common/models.py:2509 -msgid "Display part scheduling information" +msgid "Search Return Orders" msgstr "" -#: common/models.py:2514 part/templates/part/detail.html:62 -msgid "Part Stocktake" +#: common/models.py:2510 +msgid "Display return orders in search preview window" msgstr "" -#: common/models.py:2516 -msgid "Display part stocktake information (if stocktake functionality is enabled)" +#: common/models.py:2515 +msgid "Exclude Inactive Return Orders" msgstr "" -#: common/models.py:2522 -msgid "Table String Length" +#: common/models.py:2517 +msgid "Exclude inactive return orders from search preview window" msgstr "" -#: common/models.py:2524 -msgid "Maximum length limit for strings displayed in table views" +#: common/models.py:2523 +msgid "Search Preview Results" msgstr "" -#: common/models.py:2530 -msgid "Receive error reports" +#: common/models.py:2525 +msgid "Number of results to show in each section of the search preview window" msgstr "" #: common/models.py:2531 -msgid "Receive notifications for system errors" +msgid "Regex Search" msgstr "" -#: common/models.py:2536 -msgid "Last used printing machines" +#: common/models.py:2532 +msgid "Enable regular expressions in search queries" msgstr "" #: common/models.py:2537 +msgid "Whole Word Search" +msgstr "" + +#: common/models.py:2538 +msgid "Search queries return results for whole word matches" +msgstr "" + +#: common/models.py:2543 +msgid "Show Quantity in Forms" +msgstr "" + +#: common/models.py:2544 +msgid "Display available part quantity in some forms" +msgstr "" + +#: common/models.py:2549 +msgid "Escape Key Closes Forms" +msgstr "" + +#: common/models.py:2550 +msgid "Use the escape key to close modal forms" +msgstr "" + +#: common/models.py:2555 +msgid "Fixed Navbar" +msgstr "" + +#: common/models.py:2556 +msgid "The navbar position is fixed to the top of the screen" +msgstr "" + +#: common/models.py:2561 +msgid "Date Format" +msgstr "" + +#: common/models.py:2562 +msgid "Preferred format for displaying dates" +msgstr "" + +#: common/models.py:2575 part/templates/part/detail.html:41 +msgid "Part Scheduling" +msgstr "" + +#: common/models.py:2576 +msgid "Display part scheduling information" +msgstr "" + +#: common/models.py:2581 part/templates/part/detail.html:62 +msgid "Part Stocktake" +msgstr "" + +#: common/models.py:2583 +msgid "Display part stocktake information (if stocktake functionality is enabled)" +msgstr "" + +#: common/models.py:2589 +msgid "Table String Length" +msgstr "" + +#: common/models.py:2591 +msgid "Maximum length limit for strings displayed in table views" +msgstr "" + +#: common/models.py:2597 +msgid "Receive error reports" +msgstr "" + +#: common/models.py:2598 +msgid "Receive notifications for system errors" +msgstr "" + +#: common/models.py:2603 +msgid "Last used printing machines" +msgstr "" + +#: common/models.py:2604 msgid "Save the last used printing machines for a user" msgstr "" -#: common/models.py:2557 common/models.py:2558 common/models.py:2715 -#: common/models.py:2716 common/models.py:2961 common/models.py:2962 -#: common/models.py:3288 common/models.py:3289 importer/models.py:88 -#: part/models.py:3307 part/models.py:3394 part/models.py:3468 -#: part/models.py:3496 plugin/models.py:274 plugin/models.py:275 -#: report/templates/report/inventree_test_report.html:105 -#: templates/js/translated/stock.js:3120 users/models.py:111 +#: common/models.py:2621 common/models.py:2622 common/models.py:2779 +#: common/models.py:2780 common/models.py:3025 common/models.py:3026 +#: common/models.py:3349 common/models.py:3350 common/models.py:3534 +#: importer/models.py:89 part/models.py:3358 part/models.py:3445 +#: part/models.py:3519 part/models.py:3547 plugin/models.py:313 +#: plugin/models.py:314 report/templates/report/inventree_test_report.html:105 +#: templates/js/translated/stock.js:3121 users/models.py:111 msgid "User" msgstr "" -#: common/models.py:2580 +#: common/models.py:2644 msgid "Price break quantity" msgstr "" -#: common/models.py:2587 company/serializers.py:513 order/admin.py:42 -#: order/models.py:1430 order/models.py:2417 -#: templates/js/translated/company.js:1823 templates/js/translated/part.js:1892 +#: common/models.py:2651 company/serializers.py:524 order/admin.py:42 +#: order/models.py:1447 order/models.py:2456 +#: templates/js/translated/company.js:1824 templates/js/translated/part.js:1892 #: templates/js/translated/pricing.js:621 #: templates/js/translated/return_order.js:739 msgid "Price" msgstr "" -#: common/models.py:2588 +#: common/models.py:2652 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:2692 common/models.py:2877 +#: common/models.py:2756 common/models.py:2941 msgid "Endpoint" msgstr "" -#: common/models.py:2693 +#: common/models.py:2757 msgid "Endpoint at which this webhook is received" msgstr "" -#: common/models.py:2703 +#: common/models.py:2767 msgid "Name for this webhook" msgstr "" -#: common/models.py:2707 +#: common/models.py:2771 msgid "Is this webhook active" msgstr "" -#: common/models.py:2723 users/models.py:159 +#: common/models.py:2787 users/models.py:159 msgid "Token" msgstr "" -#: common/models.py:2724 +#: common/models.py:2788 msgid "Token for access" msgstr "" -#: common/models.py:2732 +#: common/models.py:2796 msgid "Secret" msgstr "" -#: common/models.py:2733 +#: common/models.py:2797 msgid "Shared secret for HMAC" msgstr "" -#: common/models.py:2841 +#: common/models.py:2905 msgid "Message ID" msgstr "" -#: common/models.py:2842 +#: common/models.py:2906 msgid "Unique identifier for this message" msgstr "" -#: common/models.py:2850 +#: common/models.py:2914 msgid "Host" msgstr "" -#: common/models.py:2851 +#: common/models.py:2915 msgid "Host from which this message was received" msgstr "" -#: common/models.py:2859 +#: common/models.py:2923 msgid "Header" msgstr "" -#: common/models.py:2860 +#: common/models.py:2924 msgid "Header of this message" msgstr "" -#: common/models.py:2867 +#: common/models.py:2931 msgid "Body" msgstr "" -#: common/models.py:2868 +#: common/models.py:2932 msgid "Body of this message" msgstr "" -#: common/models.py:2878 +#: common/models.py:2942 msgid "Endpoint on which this message was received" msgstr "" -#: common/models.py:2883 +#: common/models.py:2947 msgid "Worked on" msgstr "" -#: common/models.py:2884 +#: common/models.py:2948 msgid "Was the work on this message finished?" msgstr "" -#: common/models.py:3010 +#: common/models.py:3074 msgid "Id" msgstr "" -#: common/models.py:3012 templates/js/translated/company.js:965 -#: templates/js/translated/news.js:44 +#: common/models.py:3076 part/serializers.py:271 +#: templates/js/translated/company.js:966 templates/js/translated/news.js:44 msgid "Title" msgstr "" -#: common/models.py:3014 common/models.py:3272 company/models.py:149 -#: company/models.py:446 company/models.py:512 company/models.py:818 -#: order/models.py:302 order/models.py:1385 order/models.py:1817 -#: part/admin.py:55 part/models.py:1057 +#: common/models.py:3078 common/models.py:3333 company/models.py:146 +#: company/models.py:443 company/models.py:509 company/models.py:815 +#: order/models.py:309 order/models.py:1402 order/models.py:1846 +#: part/admin.py:55 part/models.py:1118 #: part/templates/part/part_scheduling.html:11 #: report/templates/report/inventree_build_order_report.html:164 -#: stock/admin.py:229 templates/js/translated/company.js:1319 -#: templates/js/translated/company.js:1673 templates/js/translated/order.js:376 +#: stock/admin.py:230 templates/js/translated/company.js:1320 +#: templates/js/translated/company.js:1674 templates/js/translated/order.js:376 #: templates/js/translated/part.js:2475 -#: templates/js/translated/purchase_order.js:2110 -#: templates/js/translated/purchase_order.js:2274 +#: templates/js/translated/purchase_order.js:2094 +#: templates/js/translated/purchase_order.js:2258 #: templates/js/translated/return_order.js:778 -#: templates/js/translated/sales_order.js:1092 -#: templates/js/translated/sales_order.js:2023 +#: templates/js/translated/sales_order.js:1058 +#: templates/js/translated/sales_order.js:2004 msgid "Link" msgstr "" -#: common/models.py:3016 templates/js/translated/news.js:60 +#: common/models.py:3080 templates/js/translated/news.js:60 msgid "Published" msgstr "" -#: common/models.py:3018 templates/InvenTree/settings/plugin_settings.html:32 +#: common/models.py:3082 templates/InvenTree/settings/plugin_settings.html:32 #: templates/js/translated/news.js:56 templates/js/translated/plugin.js:103 msgid "Author" msgstr "" -#: common/models.py:3020 templates/js/translated/news.js:52 +#: common/models.py:3084 templates/js/translated/news.js:52 msgid "Summary" msgstr "" -#: common/models.py:3023 +#: common/models.py:3087 msgid "Read" msgstr "" -#: common/models.py:3023 +#: common/models.py:3087 msgid "Was this news item read?" msgstr "" -#: common/models.py:3040 company/models.py:159 part/models.py:1067 +#: common/models.py:3104 company/models.py:156 part/models.py:1128 #: report/templates/report/inventree_bill_of_materials_report.html:126 #: report/templates/report/inventree_bill_of_materials_report.html:148 #: report/templates/report/inventree_return_order_report.html:35 -#: stock/templates/stock/item_base.html:133 templates/503.html:31 +#: stock/templates/stock/item_base.html:130 templates/503.html:31 #: templates/hover_image.html:7 templates/hover_image.html:9 #: templates/modals.html:6 msgid "Image" msgstr "" -#: common/models.py:3040 +#: common/models.py:3104 msgid "Image file" msgstr "" -#: common/models.py:3052 common/models.py:3256 +#: common/models.py:3116 common/models.py:3317 msgid "Target model type for this image" msgstr "" -#: common/models.py:3056 +#: common/models.py:3120 msgid "Target model ID for this image" msgstr "" -#: common/models.py:3078 +#: common/models.py:3142 msgid "Custom Unit" msgstr "" -#: common/models.py:3099 +#: common/models.py:3160 msgid "Unit symbol must be unique" msgstr "" -#: common/models.py:3114 +#: common/models.py:3175 msgid "Unit name must be a valid identifier" msgstr "" -#: common/models.py:3133 +#: common/models.py:3194 msgid "Unit name" msgstr "" -#: common/models.py:3140 templates/InvenTree/settings/settings_staff_js.html:75 +#: common/models.py:3201 templates/InvenTree/settings/settings_staff_js.html:75 msgid "Symbol" msgstr "" -#: common/models.py:3141 +#: common/models.py:3202 msgid "Optional unit symbol" msgstr "" -#: common/models.py:3147 templates/InvenTree/settings/settings_staff_js.html:71 +#: common/models.py:3208 templates/InvenTree/settings/settings_staff_js.html:71 msgid "Definition" msgstr "" -#: common/models.py:3148 +#: common/models.py:3209 msgid "Unit definition" msgstr "" -#: common/models.py:3206 common/models.py:3263 stock/models.py:2558 -#: templates/js/translated/attachment.js:119 +#: common/models.py:3267 common/models.py:3324 stock/models.py:2674 +#: stock/serializers.py:244 templates/js/translated/attachment.js:119 #: templates/js/translated/attachment.js:345 msgid "Attachment" msgstr "" -#: common/models.py:3218 +#: common/models.py:3279 msgid "Missing file" msgstr "" -#: common/models.py:3219 +#: common/models.py:3280 msgid "Missing external link" msgstr "" -#: common/models.py:3264 +#: common/models.py:3325 msgid "Select file to attach" msgstr "" -#: common/models.py:3279 templates/js/translated/attachment.js:120 +#: common/models.py:3340 templates/js/translated/attachment.js:120 #: templates/js/translated/attachment.js:360 msgid "Comment" msgstr "" -#: common/models.py:3280 +#: common/models.py:3341 msgid "Attachment comment" msgstr "" -#: common/models.py:3296 +#: common/models.py:3357 msgid "Upload date" msgstr "" -#: common/models.py:3297 +#: common/models.py:3358 msgid "Date the file was uploaded" msgstr "" -#: common/models.py:3301 +#: common/models.py:3362 msgid "File size" msgstr "" -#: common/models.py:3301 +#: common/models.py:3362 msgid "File size in bytes" msgstr "" -#: common/models.py:3339 common/serializers.py:562 +#: common/models.py:3400 common/serializers.py:609 msgid "Invalid model type specified for attachment" msgstr "" -#: common/notifications.py:314 +#: common/models.py:3409 plugin/models.py:43 users/models.py:100 +msgid "Key" +msgstr "" + +#: common/models.py:3410 +msgid "Value that will be saved in the models database" +msgstr "" + +#: common/models.py:3413 +msgid "Name of the state" +msgstr "" + +#: common/models.py:3417 part/serializers.py:273 +msgid "Label" +msgstr "" + +#: common/models.py:3418 +msgid "Label that will be displayed in the frontend" +msgstr "" + +#: common/models.py:3424 +msgid "Color" +msgstr "" + +#: common/models.py:3425 +msgid "Color that will be displayed in the frontend" +msgstr "" + +#: common/models.py:3428 +msgid "Logical Key" +msgstr "" + +#: common/models.py:3430 +msgid "State logical key that is equal to this custom state in business logic" +msgstr "" + +#: common/models.py:3438 part/serializers.py:275 +msgid "Model" +msgstr "" + +#: common/models.py:3439 +msgid "Model this state is associated with" +msgstr "" + +#: common/models.py:3443 +msgid "Reference Status Set" +msgstr "" + +#: common/models.py:3444 +msgid "Status set that is extended with this custom state" +msgstr "" + +#: common/models.py:3450 +msgid "Custom State" +msgstr "" + +#: common/models.py:3451 +msgid "Custom States" +msgstr "" + +#: common/models.py:3466 +msgid "Model must be selected" +msgstr "" + +#: common/models.py:3469 +msgid "Key must be selected" +msgstr "" + +#: common/models.py:3472 +msgid "Logical key must be selected" +msgstr "" + +#: common/models.py:3476 +msgid "Key must be different from logical key" +msgstr "" + +#: common/models.py:3480 +msgid "Reference status must be selected" +msgstr "" + +#: common/models.py:3492 +msgid "Reference status set not found" +msgstr "" + +#: common/models.py:3498 +msgid "Key must be different from the logical keys of the reference status" +msgstr "" + +#: common/models.py:3504 +msgid "Logical key must be in the logical keys of the reference status" +msgstr "" + +#: common/models.py:3519 +msgid "Barcode Scan" +msgstr "" + +#: common/models.py:3523 importer/models.py:512 part/models.py:4009 +msgid "Data" +msgstr "" + +#: common/models.py:3524 +msgid "Barcode data" +msgstr "" + +#: common/models.py:3535 +msgid "User who scanned the barcode" +msgstr "" + +#: common/models.py:3540 importer/models.py:60 +msgid "Timestamp" +msgstr "" + +#: common/models.py:3541 +msgid "Date and time of the barcode scan" +msgstr "" + +#: common/models.py:3547 +msgid "URL endpoint which processed the barcode" +msgstr "" + +#: common/models.py:3554 order/models.py:1437 plugin/serializers.py:89 +msgid "Context" +msgstr "" + +#: common/models.py:3555 +msgid "Context data for the barcode scan" +msgstr "" + +#: common/models.py:3562 +msgid "Response" +msgstr "" + +#: common/models.py:3563 +msgid "Response data from the barcode scan" +msgstr "" + +#: common/models.py:3569 report/templates/report/inventree_test_report.html:103 +#: stock/models.py:2660 +msgid "Result" +msgstr "" + +#: common/models.py:3570 +msgid "Was the barcode scan successful?" +msgstr "" + +#: common/notifications.py:328 #, python-brace-format msgid "New {verbose_name}" msgstr "" -#: common/notifications.py:316 +#: common/notifications.py:330 msgid "A new order has been created and assigned to you" msgstr "" -#: common/notifications.py:322 +#: common/notifications.py:336 #, python-brace-format msgid "{verbose_name} canceled" msgstr "" -#: common/notifications.py:324 +#: common/notifications.py:338 msgid "A order that is assigned to you was canceled" msgstr "" -#: common/notifications.py:330 common/notifications.py:337 order/api.py:462 +#: common/notifications.py:344 common/notifications.py:351 order/api.py:440 msgid "Items Received" msgstr "" -#: common/notifications.py:332 +#: common/notifications.py:346 msgid "Items have been received against a purchase order" msgstr "" -#: common/notifications.py:339 +#: common/notifications.py:353 msgid "Items have been received against a return order" msgstr "" -#: common/notifications.py:457 +#: common/notifications.py:475 msgid "Error raised by plugin" msgstr "" -#: common/serializers.py:375 +#: common/serializers.py:423 msgid "Is Running" msgstr "" -#: common/serializers.py:381 +#: common/serializers.py:429 msgid "Pending Tasks" msgstr "" -#: common/serializers.py:387 +#: common/serializers.py:435 msgid "Scheduled Tasks" msgstr "" -#: common/serializers.py:393 +#: common/serializers.py:441 msgid "Failed Tasks" msgstr "" -#: common/serializers.py:408 +#: common/serializers.py:456 msgid "Task ID" msgstr "" -#: common/serializers.py:408 +#: common/serializers.py:456 msgid "Unique task ID" msgstr "" -#: common/serializers.py:410 +#: common/serializers.py:458 msgid "Lock" msgstr "" -#: common/serializers.py:410 +#: common/serializers.py:458 msgid "Lock time" msgstr "" -#: common/serializers.py:412 +#: common/serializers.py:460 msgid "Task name" msgstr "" -#: common/serializers.py:414 +#: common/serializers.py:462 msgid "Function" msgstr "" -#: common/serializers.py:414 +#: common/serializers.py:462 msgid "Function name" msgstr "" -#: common/serializers.py:416 +#: common/serializers.py:464 msgid "Arguments" msgstr "" -#: common/serializers.py:416 +#: common/serializers.py:464 msgid "Task arguments" msgstr "" -#: common/serializers.py:419 +#: common/serializers.py:467 msgid "Keyword Arguments" msgstr "" -#: common/serializers.py:419 +#: common/serializers.py:467 msgid "Task keyword arguments" msgstr "" -#: common/serializers.py:529 +#: common/serializers.py:577 msgid "Filename" msgstr "" -#: common/serializers.py:536 report/api.py:100 report/serializers.py:53 +#: common/serializers.py:584 report/api.py:100 report/serializers.py:54 msgid "Model Type" msgstr "" -#: common/serializers.py:565 +#: common/serializers.py:612 msgid "User does not have permission to create or edit attachments for this model" msgstr "" @@ -4116,15 +4295,15 @@ msgstr "" msgid "Match Items" msgstr "" -#: common/views.py:401 +#: common/views.py:397 msgid "Fields matching failed" msgstr "" -#: common/views.py:464 +#: common/views.py:460 msgid "Parts imported" msgstr "" -#: common/views.py:494 order/templates/order/order_wizard/match_fields.html:27 +#: common/views.py:490 order/templates/order/order_wizard/match_fields.html:27 #: order/templates/order/order_wizard/match_parts.html:19 #: order/templates/order/order_wizard/po_upload.html:49 #: part/templates/part/import_wizard/match_fields.html:27 @@ -4155,429 +4334,429 @@ msgstr "" msgid "Supplier is Active" msgstr "" -#: company/models.py:100 company/models.py:371 +#: company/models.py:97 company/models.py:368 #: company/templates/company/company_base.html:8 #: company/templates/company/company_base.html:12 stock/api.py:812 -#: templates/InvenTree/search.html:178 templates/js/translated/company.js:496 +#: templates/InvenTree/search.html:178 templates/js/translated/company.js:497 msgid "Company" msgstr "" -#: company/models.py:101 company/views.py:51 +#: company/models.py:98 company/views.py:51 #: templates/js/translated/search.js:192 msgid "Companies" msgstr "" -#: company/models.py:117 +#: company/models.py:114 msgid "Company description" msgstr "" -#: company/models.py:118 +#: company/models.py:115 msgid "Description of the company" msgstr "" -#: company/models.py:123 company/templates/company/company_base.html:106 +#: company/models.py:120 company/templates/company/company_base.html:106 #: templates/InvenTree/settings/plugin_settings.html:54 -#: templates/js/translated/company.js:532 +#: templates/js/translated/company.js:533 msgid "Website" msgstr "" -#: company/models.py:123 +#: company/models.py:120 msgid "Company website URL" msgstr "" -#: company/models.py:128 +#: company/models.py:125 msgid "Phone number" msgstr "" -#: company/models.py:130 +#: company/models.py:127 msgid "Contact phone number" msgstr "" -#: company/models.py:137 +#: company/models.py:134 msgid "Contact email address" msgstr "" -#: company/models.py:142 company/models.py:275 -#: company/templates/company/company_base.html:145 order/models.py:342 -#: order/templates/order/order_base.html:208 -#: order/templates/order/return_order_base.html:177 -#: order/templates/order/sales_order_base.html:221 +#: company/models.py:139 company/models.py:272 +#: company/templates/company/company_base.html:145 order/models.py:349 +#: order/templates/order/order_base.html:217 +#: order/templates/order/return_order_base.html:178 +#: order/templates/order/sales_order_base.html:222 msgid "Contact" msgstr "" -#: company/models.py:144 +#: company/models.py:141 msgid "Point of contact" msgstr "" -#: company/models.py:150 +#: company/models.py:147 msgid "Link to external company information" msgstr "" -#: company/models.py:163 +#: company/models.py:160 msgid "Is this company active?" msgstr "" -#: company/models.py:168 +#: company/models.py:165 msgid "Is customer" msgstr "" -#: company/models.py:169 +#: company/models.py:166 msgid "Do you sell items to this company?" msgstr "" -#: company/models.py:174 +#: company/models.py:171 msgid "Is supplier" msgstr "" -#: company/models.py:175 +#: company/models.py:172 msgid "Do you purchase items from this company?" msgstr "" -#: company/models.py:180 +#: company/models.py:177 msgid "Is manufacturer" msgstr "" -#: company/models.py:181 +#: company/models.py:178 msgid "Does this company manufacture parts?" msgstr "" -#: company/models.py:189 +#: company/models.py:186 msgid "Default currency used for this company" msgstr "" -#: company/models.py:314 company/templates/company/company_base.html:124 -#: order/models.py:352 order/templates/order/order_base.html:215 -#: order/templates/order/return_order_base.html:184 -#: order/templates/order/sales_order_base.html:228 +#: company/models.py:311 company/templates/company/company_base.html:124 +#: order/models.py:359 order/templates/order/order_base.html:224 +#: order/templates/order/return_order_base.html:185 +#: order/templates/order/sales_order_base.html:229 msgid "Address" msgstr "" -#: company/models.py:315 company/templates/company/sidebar.html:35 +#: company/models.py:312 company/templates/company/sidebar.html:35 msgid "Addresses" msgstr "" -#: company/models.py:372 +#: company/models.py:369 msgid "Select company" msgstr "" -#: company/models.py:377 +#: company/models.py:374 msgid "Address title" msgstr "" -#: company/models.py:378 +#: company/models.py:375 msgid "Title describing the address entry" msgstr "" -#: company/models.py:384 +#: company/models.py:381 msgid "Primary address" msgstr "" -#: company/models.py:385 +#: company/models.py:382 msgid "Set as primary address" msgstr "" -#: company/models.py:390 templates/js/translated/company.js:914 -#: templates/js/translated/company.js:971 +#: company/models.py:387 templates/js/translated/company.js:915 +#: templates/js/translated/company.js:972 msgid "Line 1" msgstr "" -#: company/models.py:391 +#: company/models.py:388 msgid "Address line 1" msgstr "" -#: company/models.py:397 templates/js/translated/company.js:915 -#: templates/js/translated/company.js:977 +#: company/models.py:394 templates/js/translated/company.js:916 +#: templates/js/translated/company.js:978 msgid "Line 2" msgstr "" -#: company/models.py:398 +#: company/models.py:395 msgid "Address line 2" msgstr "" -#: company/models.py:404 company/models.py:405 -#: templates/js/translated/company.js:983 +#: company/models.py:401 company/models.py:402 +#: templates/js/translated/company.js:984 msgid "Postal code" msgstr "" -#: company/models.py:411 +#: company/models.py:408 msgid "City/Region" msgstr "" -#: company/models.py:412 +#: company/models.py:409 msgid "Postal code city/region" msgstr "" -#: company/models.py:418 +#: company/models.py:415 msgid "State/Province" msgstr "" -#: company/models.py:419 +#: company/models.py:416 msgid "State or province" msgstr "" -#: company/models.py:425 templates/js/translated/company.js:1001 +#: company/models.py:422 templates/js/translated/company.js:1002 msgid "Country" msgstr "" -#: company/models.py:426 +#: company/models.py:423 msgid "Address country" msgstr "" -#: company/models.py:432 +#: company/models.py:429 msgid "Courier shipping notes" msgstr "" -#: company/models.py:433 +#: company/models.py:430 msgid "Notes for shipping courier" msgstr "" -#: company/models.py:439 +#: company/models.py:436 msgid "Internal shipping notes" msgstr "" -#: company/models.py:440 +#: company/models.py:437 msgid "Shipping notes for internal use" msgstr "" -#: company/models.py:447 +#: company/models.py:444 msgid "Link to address information (external)" msgstr "" -#: company/models.py:470 company/models.py:587 company/models.py:811 +#: company/models.py:467 company/models.py:584 company/models.py:808 #: company/templates/company/manufacturer_part.html:7 #: company/templates/company/manufacturer_part.html:24 -#: stock/templates/stock/item_base.html:217 +#: stock/templates/stock/item_base.html:214 msgid "Manufacturer Part" msgstr "" -#: company/models.py:487 company/models.py:779 stock/models.py:787 -#: stock/serializers.py:445 stock/templates/stock/item_base.html:142 +#: company/models.py:484 company/models.py:776 stock/models.py:864 +#: stock/serializers.py:455 stock/templates/stock/item_base.html:139 #: templates/js/translated/bom.js:622 msgid "Base Part" msgstr "" -#: company/models.py:489 company/models.py:781 +#: company/models.py:486 company/models.py:778 msgid "Select part" msgstr "" -#: company/models.py:498 company/templates/company/company_base.html:82 +#: company/models.py:495 company/templates/company/company_base.html:82 #: company/templates/company/manufacturer_part.html:90 -#: company/templates/company/supplier_part.html:145 part/serializers.py:554 -#: stock/templates/stock/item_base.html:207 -#: templates/js/translated/company.js:507 -#: templates/js/translated/company.js:1118 -#: templates/js/translated/company.js:1296 -#: templates/js/translated/company.js:1611 +#: company/templates/company/supplier_part.html:146 part/serializers.py:598 +#: stock/templates/stock/item_base.html:204 +#: templates/js/translated/company.js:508 +#: templates/js/translated/company.js:1119 +#: templates/js/translated/company.js:1297 +#: templates/js/translated/company.js:1612 #: templates/js/translated/table_filters.js:812 msgid "Manufacturer" msgstr "" -#: company/models.py:499 +#: company/models.py:496 msgid "Select manufacturer" msgstr "" -#: company/models.py:505 company/templates/company/manufacturer_part.html:101 -#: company/templates/company/supplier_part.html:153 order/serializers.py:556 -#: part/serializers.py:564 templates/js/translated/company.js:351 -#: templates/js/translated/company.js:1117 -#: templates/js/translated/company.js:1312 -#: templates/js/translated/company.js:1630 templates/js/translated/part.js:1807 -#: templates/js/translated/purchase_order.js:1921 -#: templates/js/translated/purchase_order.js:2123 +#: company/models.py:502 company/templates/company/manufacturer_part.html:101 +#: company/templates/company/supplier_part.html:154 order/serializers.py:641 +#: part/serializers.py:608 templates/js/translated/company.js:352 +#: templates/js/translated/company.js:1118 +#: templates/js/translated/company.js:1313 +#: templates/js/translated/company.js:1631 templates/js/translated/part.js:1807 +#: templates/js/translated/purchase_order.js:1905 +#: templates/js/translated/purchase_order.js:2107 msgid "MPN" msgstr "" -#: company/models.py:513 +#: company/models.py:510 msgid "URL for external manufacturer part link" msgstr "" -#: company/models.py:522 +#: company/models.py:519 msgid "Manufacturer part description" msgstr "" -#: company/models.py:575 +#: company/models.py:572 msgid "Manufacturer Part Parameter" msgstr "" -#: company/models.py:594 +#: company/models.py:591 msgid "Parameter name" msgstr "" -#: company/models.py:600 report/templates/report/inventree_test_report.html:104 -#: stock/models.py:2550 templates/js/translated/company.js:1166 -#: templates/js/translated/company.js:1419 templates/js/translated/part.js:1499 +#: company/models.py:597 report/templates/report/inventree_test_report.html:104 +#: stock/models.py:2666 templates/js/translated/company.js:1167 +#: templates/js/translated/company.js:1420 templates/js/translated/part.js:1499 #: templates/js/translated/stock.js:1607 msgid "Value" msgstr "" -#: company/models.py:601 +#: company/models.py:598 msgid "Parameter value" msgstr "" -#: company/models.py:608 company/templates/company/supplier_part.html:168 -#: part/admin.py:57 part/models.py:1147 part/models.py:3771 -#: part/templates/part/part_base.html:293 -#: templates/js/translated/company.js:1425 templates/js/translated/part.js:1518 +#: company/models.py:605 company/templates/company/supplier_part.html:169 +#: part/admin.py:57 part/models.py:1208 part/models.py:3822 +#: part/templates/part/part_base.html:301 +#: templates/js/translated/company.js:1426 templates/js/translated/part.js:1518 #: templates/js/translated/part.js:1622 templates/js/translated/part.js:2376 msgid "Units" msgstr "" -#: company/models.py:609 +#: company/models.py:606 msgid "Parameter units" msgstr "" -#: company/models.py:662 company/templates/company/supplier_part.html:7 -#: company/templates/company/supplier_part.html:24 order/api.py:442 -#: order/serializers.py:491 stock/models.py:798 -#: stock/templates/stock/item_base.html:233 -#: templates/js/translated/build.js:1052 -#: templates/js/translated/company.js:1600 -#: templates/js/translated/purchase_order.js:752 -#: templates/js/translated/stock.js:2365 +#: company/models.py:659 company/templates/company/supplier_part.html:8 +#: company/templates/company/supplier_part.html:25 order/api.py:392 +#: order/serializers.py:576 stock/models.py:875 +#: stock/templates/stock/item_base.html:230 +#: templates/js/translated/build.js:1055 +#: templates/js/translated/company.js:1601 +#: templates/js/translated/purchase_order.js:735 +#: templates/js/translated/stock.js:2366 msgid "Supplier Part" msgstr "" -#: company/models.py:719 +#: company/models.py:716 msgid "Pack units must be compatible with the base part units" msgstr "" -#: company/models.py:726 +#: company/models.py:723 msgid "Pack units must be greater than zero" msgstr "" -#: company/models.py:740 +#: company/models.py:737 msgid "Linked manufacturer part must reference the same base part" msgstr "" -#: company/models.py:789 company/templates/company/company_base.html:87 -#: company/templates/company/supplier_part.html:129 order/models.py:491 -#: order/templates/order/order_base.html:141 part/bom.py:280 part/bom.py:318 -#: part/serializers.py:538 plugin/builtin/suppliers/digikey.py:25 +#: company/models.py:786 company/templates/company/company_base.html:87 +#: company/templates/company/supplier_part.html:130 order/models.py:503 +#: order/templates/order/order_base.html:150 part/bom.py:279 part/bom.py:314 +#: part/serializers.py:582 plugin/builtin/suppliers/digikey.py:25 #: plugin/builtin/suppliers/lcsc.py:26 plugin/builtin/suppliers/mouser.py:24 -#: plugin/builtin/suppliers/tme.py:26 stock/templates/stock/item_base.html:224 +#: plugin/builtin/suppliers/tme.py:26 stock/templates/stock/item_base.html:221 #: templates/email/overdue_purchase_order.html:16 -#: templates/js/translated/company.js:350 -#: templates/js/translated/company.js:511 -#: templates/js/translated/company.js:1584 templates/js/translated/part.js:1775 +#: templates/js/translated/company.js:351 +#: templates/js/translated/company.js:512 +#: templates/js/translated/company.js:1585 templates/js/translated/part.js:1775 #: templates/js/translated/pricing.js:498 -#: templates/js/translated/purchase_order.js:1759 +#: templates/js/translated/purchase_order.js:1743 #: templates/js/translated/table_filters.js:816 msgid "Supplier" msgstr "" -#: company/models.py:790 +#: company/models.py:787 msgid "Select supplier" msgstr "" -#: company/models.py:796 part/serializers.py:549 +#: company/models.py:793 part/serializers.py:593 msgid "Supplier stock keeping unit" msgstr "" -#: company/models.py:802 +#: company/models.py:799 msgid "Is this supplier part active?" msgstr "" -#: company/models.py:812 +#: company/models.py:809 msgid "Select manufacturer part" msgstr "" -#: company/models.py:819 +#: company/models.py:816 msgid "URL for external supplier part link" msgstr "" -#: company/models.py:828 +#: company/models.py:825 msgid "Supplier part description" msgstr "" -#: company/models.py:835 company/templates/company/supplier_part.html:187 -#: order/serializers.py:698 part/admin.py:415 part/models.py:4288 +#: company/models.py:832 company/templates/company/supplier_part.html:188 +#: order/serializers.py:783 part/admin.py:415 part/models.py:4345 #: part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_bill_of_materials_report.html:140 #: report/templates/report/inventree_purchase_order_report.html:32 #: report/templates/report/inventree_return_order_report.html:27 #: report/templates/report/inventree_sales_order_report.html:32 #: report/templates/report/inventree_stock_location_report.html:105 -#: stock/serializers.py:776 templates/js/translated/purchase_order.js:1185 -#: templates/js/translated/purchase_order.js:1344 +#: stock/serializers.py:807 templates/js/translated/purchase_order.js:1168 +#: templates/js/translated/purchase_order.js:1327 msgid "Note" msgstr "" -#: company/models.py:844 part/models.py:2117 +#: company/models.py:841 part/models.py:2177 msgid "base cost" msgstr "" -#: company/models.py:845 part/models.py:2118 +#: company/models.py:842 part/models.py:2178 msgid "Minimum charge (e.g. stocking fee)" msgstr "" -#: company/models.py:853 +#: company/models.py:850 msgid "Part packaging" msgstr "" -#: company/models.py:858 templates/js/translated/company.js:1651 +#: company/models.py:855 templates/js/translated/company.js:1652 #: templates/js/translated/part.js:1828 templates/js/translated/part.js:1884 -#: templates/js/translated/purchase_order.js:311 -#: templates/js/translated/purchase_order.js:841 -#: templates/js/translated/purchase_order.js:1103 -#: templates/js/translated/purchase_order.js:2154 -#: templates/js/translated/purchase_order.js:2171 +#: templates/js/translated/purchase_order.js:294 +#: templates/js/translated/purchase_order.js:824 +#: templates/js/translated/purchase_order.js:1086 +#: templates/js/translated/purchase_order.js:2138 +#: templates/js/translated/purchase_order.js:2155 msgid "Pack Quantity" msgstr "" -#: company/models.py:860 +#: company/models.py:857 msgid "Total quantity supplied in a single pack. Leave empty for single items." msgstr "" -#: company/models.py:879 part/models.py:2124 +#: company/models.py:876 part/models.py:2184 msgid "multiple" msgstr "" -#: company/models.py:880 +#: company/models.py:877 msgid "Order multiple" msgstr "" -#: company/models.py:892 +#: company/models.py:889 msgid "Quantity available from supplier" msgstr "" -#: company/models.py:898 +#: company/models.py:895 msgid "Availability Updated" msgstr "" -#: company/models.py:899 +#: company/models.py:896 msgid "Date of last update of availability data" msgstr "" -#: company/models.py:1027 +#: company/models.py:1024 msgid "Supplier Price Break" msgstr "" -#: company/serializers.py:174 +#: company/serializers.py:178 msgid "Default currency used for this supplier" msgstr "" -#: company/serializers.py:210 +#: company/serializers.py:214 msgid "Company Name" msgstr "" -#: company/serializers.py:393 part/admin.py:126 part/serializers.py:898 -#: part/templates/part/part_base.html:197 -#: templates/js/translated/company.js:1689 +#: company/serializers.py:397 part/admin.py:126 part/serializers.py:950 +#: part/templates/part/part_base.html:198 stock/serializers.py:474 +#: templates/js/translated/company.js:1690 #: templates/js/translated/table_filters.js:362 msgid "In Stock" msgstr "" #: company/templates/company/company_base.html:16 -#: part/templates/part/part_base.html:146 -#: templates/js/translated/company.js:1287 -#: templates/js/translated/company.js:1575 -#: templates/js/translated/model_renderers.js:313 +#: part/templates/part/part_base.html:147 +#: templates/js/translated/company.js:1288 +#: templates/js/translated/company.js:1576 +#: templates/js/translated/model_renderers.js:316 #: templates/js/translated/part.js:817 templates/js/translated/part.js:1225 msgid "Inactive" msgstr "" #: company/templates/company/company_base.html:27 -#: templates/js/translated/purchase_order.js:242 +#: templates/js/translated/purchase_order.js:224 msgid "Create Purchase Order" msgstr "" @@ -4590,7 +4769,7 @@ msgid "Edit company information" msgstr "" #: company/templates/company/company_base.html:39 -#: templates/js/translated/company.js:445 +#: templates/js/translated/company.js:446 msgid "Edit Company" msgstr "" @@ -4605,11 +4784,12 @@ msgstr "" #: company/templates/company/company_base.html:53 #: company/templates/company/manufacturer_part.html:51 -#: company/templates/company/supplier_part.html:83 +#: company/templates/company/supplier_part.html:84 #: part/templates/part/part_thumb.html:20 #: report/templates/report/inventree_build_order_report.html:98 #: report/templates/report/inventree_purchase_order_report.html:40 #: report/templates/report/inventree_sales_order_report.html:40 +#: report/templates/report/inventree_sales_order_shipment_report.html:37 #: report/templates/report/inventree_test_report.html:84 #: report/templates/report/inventree_test_report.html:162 msgid "Part image" @@ -4630,16 +4810,16 @@ msgstr "" msgid "Delete image" msgstr "" -#: company/templates/company/company_base.html:92 order/models.py:990 -#: order/models.py:2147 order/templates/order/return_order_base.html:134 -#: order/templates/order/sales_order_base.html:151 stock/models.py:840 -#: stock/models.py:841 stock/serializers.py:1329 -#: stock/templates/stock/item_base.html:405 +#: company/templates/company/company_base.html:92 order/models.py:1017 +#: order/models.py:2186 order/templates/order/return_order_base.html:135 +#: order/templates/order/sales_order_base.html:152 stock/models.py:917 +#: stock/models.py:918 stock/serializers.py:1360 +#: stock/templates/stock/item_base.html:402 #: templates/email/overdue_sales_order.html:16 -#: templates/js/translated/company.js:503 +#: templates/js/translated/company.js:504 #: templates/js/translated/return_order.js:295 -#: templates/js/translated/sales_order.js:820 -#: templates/js/translated/stock.js:3043 +#: templates/js/translated/sales_order.js:779 +#: templates/js/translated/stock.js:3044 #: templates/js/translated/table_filters.js:820 msgid "Customer" msgstr "" @@ -4653,7 +4833,7 @@ msgid "Phone" msgstr "" #: company/templates/company/company_base.html:211 -#: part/templates/part/part_base.html:536 +#: part/templates/part/part_base.html:544 msgid "Remove Image" msgstr "" @@ -4662,19 +4842,19 @@ msgid "Remove associated image from this company" msgstr "" #: company/templates/company/company_base.html:214 -#: part/templates/part/part_base.html:539 +#: part/templates/part/part_base.html:547 #: templates/InvenTree/settings/user.html:88 #: templates/InvenTree/settings/user_sso.html:43 msgid "Remove" msgstr "" #: company/templates/company/company_base.html:243 -#: part/templates/part/part_base.html:568 +#: part/templates/part/part_base.html:576 msgid "Upload Image" msgstr "" #: company/templates/company/company_base.html:258 -#: part/templates/part/part_base.html:622 +#: part/templates/part/part_base.html:630 msgid "Download Image" msgstr "" @@ -4714,7 +4894,7 @@ msgstr "" #: company/templates/company/detail.html:75 #: company/templates/company/sidebar.html:12 #: company/templates/company/supplier_part_sidebar.html:7 -#: order/templates/order/order_base.html:13 +#: order/templates/order/order_base.html:14 #: order/templates/order/purchase_orders.html:8 #: order/templates/order/purchase_orders.html:12 #: part/templates/part/detail.html:122 part/templates/part/part_sidebar.html:35 @@ -4737,7 +4917,7 @@ msgstr "" #: company/templates/company/detail.html:101 #: company/templates/company/sidebar.html:21 -#: order/templates/order/sales_order_base.html:13 +#: order/templates/order/sales_order_base.html:14 #: order/templates/order/sales_orders.html:8 #: order/templates/order/sales_orders.html:15 #: part/templates/part/detail.html:143 part/templates/part/part_sidebar.html:39 @@ -4764,7 +4944,7 @@ msgstr "" #: company/templates/company/detail.html:142 #: company/templates/company/sidebar.html:29 -#: order/templates/order/return_order_base.html:13 +#: order/templates/order/return_order_base.html:14 #: order/templates/order/return_orders.html:8 #: order/templates/order/return_orders.html:15 #: templates/InvenTree/settings/sidebar.html:61 @@ -4811,24 +4991,24 @@ msgid "Manufacturers" msgstr "" #: company/templates/company/manufacturer_part.html:35 -#: company/templates/company/supplier_part.html:227 -#: part/templates/part/detail.html:125 part/templates/part/part_base.html:83 +#: company/templates/company/supplier_part.html:228 +#: part/templates/part/detail.html:125 part/templates/part/part_base.html:84 msgid "Order part" msgstr "" #: company/templates/company/manufacturer_part.html:39 -#: templates/js/translated/company.js:1343 +#: templates/js/translated/company.js:1344 msgid "Edit manufacturer part" msgstr "" #: company/templates/company/manufacturer_part.html:43 -#: templates/js/translated/company.js:1344 +#: templates/js/translated/company.js:1345 msgid "Delete manufacturer part" msgstr "" #: company/templates/company/manufacturer_part.html:65 -#: company/templates/company/supplier_part.html:97 order/api.py:448 -#: order/serializers.py:564 +#: company/templates/company/supplier_part.html:98 order/api.py:411 +#: order/serializers.py:649 msgid "Internal Part" msgstr "" @@ -4837,8 +5017,8 @@ msgid "No manufacturer information available" msgstr "" #: company/templates/company/manufacturer_part.html:119 -#: company/templates/company/supplier_part.html:15 company/views.py:31 -#: part/admin.py:122 part/serializers.py:904 +#: company/templates/company/supplier_part.html:16 company/views.py:31 +#: part/admin.py:122 part/serializers.py:956 #: part/templates/part/part_sidebar.html:33 templates/InvenTree/search.html:190 #: templates/navbar.html:48 msgid "Suppliers" @@ -4887,112 +5067,113 @@ msgstr "" msgid "Contacts" msgstr "" -#: company/templates/company/supplier_part.html:50 -#: templates/js/translated/company.js:1526 +#: company/templates/company/supplier_part.html:51 +#: templates/js/translated/company.js:1527 msgid "Supplier part actions" msgstr "" -#: company/templates/company/supplier_part.html:55 #: company/templates/company/supplier_part.html:56 -#: company/templates/company/supplier_part.html:228 +#: company/templates/company/supplier_part.html:57 +#: company/templates/company/supplier_part.html:229 #: part/templates/part/detail.html:126 msgid "Order Part" msgstr "" -#: company/templates/company/supplier_part.html:60 #: company/templates/company/supplier_part.html:61 +#: company/templates/company/supplier_part.html:62 msgid "Update Availability" msgstr "" -#: company/templates/company/supplier_part.html:63 #: company/templates/company/supplier_part.html:64 -#: templates/js/translated/company.js:294 +#: company/templates/company/supplier_part.html:65 +#: templates/js/translated/company.js:295 msgid "Edit Supplier Part" msgstr "" -#: company/templates/company/supplier_part.html:68 #: company/templates/company/supplier_part.html:69 -#: templates/js/translated/company.js:269 +#: company/templates/company/supplier_part.html:70 +#: templates/js/translated/company.js:270 msgid "Duplicate Supplier Part" msgstr "" -#: company/templates/company/supplier_part.html:73 +#: company/templates/company/supplier_part.html:74 msgid "Delete Supplier Part" msgstr "" -#: company/templates/company/supplier_part.html:74 +#: company/templates/company/supplier_part.html:75 msgid "Delete Supplier Part" msgstr "" -#: company/templates/company/supplier_part.html:133 +#: company/templates/company/supplier_part.html:134 +#: order/templates/order/order_base.html:155 msgid "No supplier information available" msgstr "" -#: company/templates/company/supplier_part.html:139 order/serializers.py:553 -#: part/bom.py:287 part/bom.py:319 part/serializers.py:548 -#: templates/js/translated/company.js:349 templates/js/translated/part.js:1793 +#: company/templates/company/supplier_part.html:140 order/serializers.py:638 +#: part/bom.py:286 part/bom.py:315 part/serializers.py:592 +#: templates/js/translated/company.js:350 templates/js/translated/part.js:1793 #: templates/js/translated/pricing.js:510 -#: templates/js/translated/purchase_order.js:1920 -#: templates/js/translated/purchase_order.js:2098 +#: templates/js/translated/purchase_order.js:1904 +#: templates/js/translated/purchase_order.js:2082 msgid "SKU" msgstr "" -#: company/templates/company/supplier_part.html:206 +#: company/templates/company/supplier_part.html:207 msgid "Supplier Part Stock" msgstr "" -#: company/templates/company/supplier_part.html:209 -#: part/templates/part/detail.html:24 stock/templates/stock/location.html:204 +#: company/templates/company/supplier_part.html:210 +#: part/templates/part/detail.html:24 stock/templates/stock/location.html:205 msgid "Create new stock item" msgstr "" -#: company/templates/company/supplier_part.html:210 -#: part/templates/part/detail.html:25 stock/templates/stock/location.html:205 +#: company/templates/company/supplier_part.html:211 +#: part/templates/part/detail.html:25 stock/templates/stock/location.html:206 #: templates/js/translated/stock.js:543 msgid "New Stock Item" msgstr "" -#: company/templates/company/supplier_part.html:223 +#: company/templates/company/supplier_part.html:224 msgid "Supplier Part Orders" msgstr "" -#: company/templates/company/supplier_part.html:246 +#: company/templates/company/supplier_part.html:247 msgid "Pricing Information" msgstr "" -#: company/templates/company/supplier_part.html:251 -#: templates/js/translated/company.js:398 +#: company/templates/company/supplier_part.html:252 +#: templates/js/translated/company.js:399 #: templates/js/translated/pricing.js:684 msgid "Add Price Break" msgstr "" -#: company/templates/company/supplier_part.html:270 +#: company/templates/company/supplier_part.html:271 msgid "Supplier Part Notes" msgstr "" -#: company/templates/company/supplier_part.html:305 +#: company/templates/company/supplier_part.html:306 msgid "Supplier Part QR Code" msgstr "" -#: company/templates/company/supplier_part.html:316 +#: company/templates/company/supplier_part.html:317 msgid "Link Barcode to Supplier Part" msgstr "" -#: company/templates/company/supplier_part.html:388 +#: company/templates/company/supplier_part.html:389 msgid "Update Part Availability" msgstr "" #: company/templates/company/supplier_part_sidebar.html:5 -#: part/serializers.py:902 part/stocktake.py:223 +#: part/serializers.py:954 part/stocktake.py:223 #: part/templates/part/category.html:180 #: part/templates/part/category_sidebar.html:17 stock/admin.py:68 -#: stock/serializers.py:1014 stock/serializers.py:1192 -#: stock/templates/stock/location.html:167 -#: stock/templates/stock/location.html:188 -#: stock/templates/stock/location.html:200 +#: stock/serializers.py:1045 stock/serializers.py:1223 +#: stock/templates/stock/location.html:168 +#: stock/templates/stock/location.html:189 +#: stock/templates/stock/location.html:201 #: stock/templates/stock/location_sidebar.html:7 #: templates/InvenTree/search.html:155 templates/js/translated/part.js:1067 -#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2850 +#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2851 #: users/models.py:206 msgid "Stock Items" msgstr "" @@ -5022,99 +5203,99 @@ msgstr "" msgid "New Company" msgstr "" -#: generic/states/tests.py:18 order/status_codes.py:13 +#: generic/states/fields.py:118 +msgid "Custom status key" +msgstr "" + +#: generic/states/fields.py:119 +msgid "Additional status information for this item" +msgstr "" + +#: generic/states/tests.py:22 order/status_codes.py:13 msgid "Placed" msgstr "" -#: importer/mixins.py:263 +#: importer/mixins.py:261 msgid "Invalid export format" msgstr "" -#: importer/models.py:59 -msgid "Timestamp" -msgstr "" - -#: importer/models.py:64 +#: importer/models.py:65 msgid "Data file to import" msgstr "" -#: importer/models.py:73 templates/js/translated/tables.js:558 +#: importer/models.py:74 templates/js/translated/tables.js:558 msgid "Columns" msgstr "" -#: importer/models.py:84 +#: importer/models.py:85 msgid "Import status" msgstr "" -#: importer/models.py:94 +#: importer/models.py:95 msgid "Field Defaults" msgstr "" -#: importer/models.py:101 +#: importer/models.py:102 msgid "Field Overrides" msgstr "" -#: importer/models.py:108 +#: importer/models.py:109 msgid "Field Filters" msgstr "" -#: importer/models.py:230 +#: importer/models.py:239 msgid "Some required fields have not been mapped" msgstr "" -#: importer/models.py:387 +#: importer/models.py:396 msgid "Column is already mapped to a database field" msgstr "" -#: importer/models.py:392 +#: importer/models.py:401 msgid "Field is already mapped to a data column" msgstr "" -#: importer/models.py:401 +#: importer/models.py:410 msgid "Column mapping must be linked to a valid import session" msgstr "" -#: importer/models.py:406 +#: importer/models.py:415 msgid "Column does not exist in the data file" msgstr "" -#: importer/models.py:413 +#: importer/models.py:422 msgid "Field does not exist in the target model" msgstr "" -#: importer/models.py:417 +#: importer/models.py:426 msgid "Selected field is read-only" msgstr "" -#: importer/models.py:422 importer/models.py:493 +#: importer/models.py:431 importer/models.py:502 msgid "Import Session" msgstr "" -#: importer/models.py:426 +#: importer/models.py:435 msgid "Field" msgstr "" -#: importer/models.py:428 +#: importer/models.py:437 msgid "Column" msgstr "" -#: importer/models.py:497 +#: importer/models.py:506 msgid "Row Index" msgstr "" -#: importer/models.py:500 +#: importer/models.py:509 msgid "Original row data" msgstr "" -#: importer/models.py:503 part/models.py:3951 -msgid "Data" -msgstr "" - -#: importer/models.py:505 machine/models.py:110 +#: importer/models.py:514 machine/models.py:110 msgid "Errors" msgstr "" -#: importer/models.py:507 part/api.py:873 +#: importer/models.py:516 part/api.py:857 msgid "Valid" msgstr "" @@ -5166,19 +5347,19 @@ msgstr "" msgid "Row has already been completed" msgstr "" -#: importer/status_codes.py:11 +#: importer/status_codes.py:13 msgid "Initializing" msgstr "" -#: importer/status_codes.py:12 +#: importer/status_codes.py:18 msgid "Mapping Columns" msgstr "" -#: importer/status_codes.py:13 +#: importer/status_codes.py:21 msgid "Importing Data" msgstr "" -#: importer/status_codes.py:16 +#: importer/status_codes.py:24 msgid "Processing Data" msgstr "" @@ -5202,52 +5383,52 @@ msgstr "" msgid "Value must be a valid dictionary object" msgstr "" -#: machine/machine_types/label_printer.py:215 +#: machine/machine_types/label_printer.py:216 msgid "Copies" msgstr "" -#: machine/machine_types/label_printer.py:216 +#: machine/machine_types/label_printer.py:217 msgid "Number of copies to print for each label" msgstr "" -#: machine/machine_types/label_printer.py:231 +#: machine/machine_types/label_printer.py:232 msgid "Connected" msgstr "" -#: machine/machine_types/label_printer.py:232 order/api.py:1410 -#: templates/js/translated/sales_order.js:1078 +#: machine/machine_types/label_printer.py:233 order/api.py:1532 +#: templates/js/translated/sales_order.js:1044 msgid "Unknown" msgstr "" -#: machine/machine_types/label_printer.py:233 +#: machine/machine_types/label_printer.py:234 msgid "Printing" msgstr "" -#: machine/machine_types/label_printer.py:234 +#: machine/machine_types/label_printer.py:235 msgid "No media" msgstr "" -#: machine/machine_types/label_printer.py:235 +#: machine/machine_types/label_printer.py:236 msgid "Paper jam" msgstr "" -#: machine/machine_types/label_printer.py:236 +#: machine/machine_types/label_printer.py:237 msgid "Disconnected" msgstr "" -#: machine/machine_types/label_printer.py:243 +#: machine/machine_types/label_printer.py:244 msgid "Label Printer" msgstr "" -#: machine/machine_types/label_printer.py:244 +#: machine/machine_types/label_printer.py:245 msgid "Directly print labels for various items." msgstr "" -#: machine/machine_types/label_printer.py:250 +#: machine/machine_types/label_printer.py:251 msgid "Printer Location" msgstr "" -#: machine/machine_types/label_printer.py:251 +#: machine/machine_types/label_printer.py:252 msgid "Scope the printer to a specific location" msgstr "" @@ -5307,79 +5488,75 @@ msgstr "" #: report/templates/report/inventree_purchase_order_report.html:31 #: report/templates/report/inventree_sales_order_report.html:31 #: templates/js/translated/order.js:352 -#: templates/js/translated/purchase_order.js:2195 -#: templates/js/translated/sales_order.js:1883 +#: templates/js/translated/purchase_order.js:2179 +#: templates/js/translated/sales_order.js:1864 msgid "Total Price" msgstr "" -#: order/api.py:80 order/api.py:151 order/serializers.py:93 -#: order/templates/order/order_base.html:123 -#: order/templates/order/return_order_base.html:116 -#: order/templates/order/sales_order_base.html:125 +#: order/api.py:78 order/api.py:149 order/serializers.py:124 +#: order/templates/order/order_base.html:124 +#: order/templates/order/return_order_base.html:117 +#: order/templates/order/sales_order_base.html:126 msgid "Order Status" msgstr "" -#: order/api.py:88 order/templates/order/order_base.html:111 -#: order/templates/order/return_order_base.html:104 -#: order/templates/order/sales_order_base.html:113 +#: order/api.py:86 order/templates/order/order_base.html:112 +#: order/templates/order/return_order_base.html:105 +#: order/templates/order/sales_order_base.html:114 msgid "Order Reference" msgstr "" -#: order/api.py:116 templates/js/translated/table_filters.js:93 +#: order/api.py:114 order/api.py:1022 +#: templates/js/translated/table_filters.js:93 #: templates/js/translated/table_filters.js:625 #: templates/js/translated/table_filters.js:651 #: templates/js/translated/table_filters.js:666 msgid "Outstanding" msgstr "" -#: order/api.py:132 +#: order/api.py:130 msgid "Has Project Code" msgstr "" -#: order/api.py:155 templates/js/translated/table_filters.js:201 +#: order/api.py:153 templates/js/translated/table_filters.js:201 #: templates/js/translated/table_filters.js:791 msgid "Has Pricing" msgstr "" -#: order/api.py:230 -msgid "No matching purchase order found" -msgstr "" - -#: order/api.py:425 order/api.py:763 order/models.py:1484 order/models.py:1598 -#: order/models.py:1649 order/models.py:1764 order/models.py:1923 -#: order/models.py:2383 order/models.py:2439 -#: templates/js/translated/sales_order.js:1524 +#: order/api.py:375 order/api.py:771 order/api.py:986 order/models.py:1500 +#: order/models.py:1614 order/models.py:1665 order/models.py:1793 +#: order/models.py:1956 order/models.py:2422 order/models.py:2478 +#: templates/js/translated/sales_order.js:1490 msgid "Order" msgstr "" -#: order/api.py:429 order/api.py:784 +#: order/api.py:379 order/api.py:809 msgid "Order Complete" msgstr "" -#: order/api.py:452 +#: order/api.py:430 msgid "Order Pending" msgstr "" -#: order/api.py:1404 order/models.py:379 order/models.py:1485 -#: order/models.py:1599 order/templates/order/order_base.html:9 -#: order/templates/order/order_base.html:18 +#: order/api.py:1526 order/models.py:386 order/models.py:1501 +#: order/models.py:1615 order/templates/order/order_base.html:10 +#: order/templates/order/order_base.html:19 #: report/templates/report/inventree_purchase_order_report.html:14 -#: stock/serializers.py:120 stock/templates/stock/item_base.html:176 +#: stock/serializers.py:121 stock/templates/stock/item_base.html:173 #: templates/email/overdue_purchase_order.html:15 #: templates/js/translated/part.js:1752 templates/js/translated/pricing.js:804 -#: templates/js/translated/purchase_order.js:168 -#: templates/js/translated/purchase_order.js:753 -#: templates/js/translated/purchase_order.js:1743 -#: templates/js/translated/stock.js:2345 templates/js/translated/stock.js:2991 +#: templates/js/translated/purchase_order.js:736 +#: templates/js/translated/purchase_order.js:1727 +#: templates/js/translated/stock.js:2346 templates/js/translated/stock.js:2992 msgid "Purchase Order" msgstr "" -#: order/api.py:1408 order/models.py:2091 order/models.py:2384 -#: order/models.py:2440 order/templates/order/return_order_base.html:9 -#: order/templates/order/return_order_base.html:28 +#: order/api.py:1530 order/models.py:2124 order/models.py:2423 +#: order/models.py:2479 order/templates/order/return_order_base.html:10 +#: order/templates/order/return_order_base.html:29 #: report/templates/report/inventree_return_order_report.html:13 #: templates/js/translated/return_order.js:280 -#: templates/js/translated/stock.js:3025 +#: templates/js/translated/stock.js:3026 msgid "Return Order" msgstr "" @@ -5387,751 +5564,782 @@ msgstr "" msgid "Total price for this order" msgstr "" -#: order/models.py:95 order/serializers.py:71 +#: order/models.py:95 order/serializers.py:73 msgid "Order Currency" msgstr "" -#: order/models.py:98 order/serializers.py:72 +#: order/models.py:98 order/serializers.py:74 msgid "Currency for this order (leave blank to use company default)" msgstr "" -#: order/models.py:246 +#: order/models.py:243 msgid "Contact does not match selected company" msgstr "" -#: order/models.py:289 +#: order/models.py:296 msgid "Order description (optional)" msgstr "" -#: order/models.py:298 +#: order/models.py:305 msgid "Select project code for this order" msgstr "" -#: order/models.py:302 order/models.py:1385 order/models.py:1817 +#: order/models.py:309 order/models.py:1402 order/models.py:1846 msgid "Link to external page" msgstr "" -#: order/models.py:310 +#: order/models.py:317 msgid "Expected date for order delivery. Order will be overdue after this date." msgstr "" -#: order/models.py:324 +#: order/models.py:331 msgid "Created By" msgstr "" -#: order/models.py:332 +#: order/models.py:339 msgid "User or group responsible for this order" msgstr "" -#: order/models.py:343 +#: order/models.py:350 msgid "Point of contact for this order" msgstr "" -#: order/models.py:353 +#: order/models.py:360 msgid "Company address for this order" msgstr "" -#: order/models.py:468 order/models.py:979 +#: order/models.py:480 order/models.py:1006 msgid "Order reference" msgstr "" -#: order/models.py:477 +#: order/models.py:489 msgid "Purchase order status" msgstr "" -#: order/models.py:492 +#: order/models.py:504 msgid "Company from which the items are being ordered" msgstr "" -#: order/models.py:503 order/templates/order/order_base.html:153 -#: templates/js/translated/purchase_order.js:1772 +#: order/models.py:515 order/templates/order/order_base.html:162 +#: templates/js/translated/purchase_order.js:1756 msgid "Supplier Reference" msgstr "" -#: order/models.py:504 +#: order/models.py:516 msgid "Supplier order reference code" msgstr "" -#: order/models.py:513 +#: order/models.py:525 msgid "received by" msgstr "" -#: order/models.py:519 order/models.py:2173 +#: order/models.py:531 order/models.py:2212 msgid "Issue Date" msgstr "" -#: order/models.py:520 order/models.py:2174 +#: order/models.py:532 order/models.py:2213 msgid "Date order was issued" msgstr "" -#: order/models.py:527 order/models.py:2181 +#: order/models.py:539 order/models.py:2220 msgid "Date order was completed" msgstr "" -#: order/models.py:571 +#: order/models.py:549 order/models.py:1552 +msgid "Destination for received items" +msgstr "" + +#: order/models.py:593 msgid "Part supplier must match PO supplier" msgstr "" -#: order/models.py:806 +#: order/models.py:828 msgid "Quantity must be a positive number" msgstr "" -#: order/models.py:991 +#: order/models.py:1018 msgid "Company to which the items are being sold" msgstr "" -#: order/models.py:1003 +#: order/models.py:1030 msgid "Sales order status" msgstr "" -#: order/models.py:1014 order/models.py:2166 +#: order/models.py:1041 order/models.py:2205 msgid "Customer Reference " msgstr "" -#: order/models.py:1015 order/models.py:2167 +#: order/models.py:1042 order/models.py:2206 msgid "Customer order reference code" msgstr "" -#: order/models.py:1019 order/models.py:1771 -#: templates/js/translated/sales_order.js:879 -#: templates/js/translated/sales_order.js:1060 +#: order/models.py:1046 order/models.py:1800 +#: templates/js/translated/sales_order.js:838 +#: templates/js/translated/sales_order.js:1026 msgid "Shipment Date" msgstr "" -#: order/models.py:1028 +#: order/models.py:1055 msgid "shipped by" msgstr "" -#: order/models.py:1077 +#: order/models.py:1094 msgid "Order is already complete" msgstr "" -#: order/models.py:1080 +#: order/models.py:1097 msgid "Order is already cancelled" msgstr "" -#: order/models.py:1084 +#: order/models.py:1101 msgid "Only an open order can be marked as complete" msgstr "" -#: order/models.py:1088 +#: order/models.py:1105 msgid "Order cannot be completed as there are incomplete shipments" msgstr "" -#: order/models.py:1093 +#: order/models.py:1110 msgid "Order cannot be completed as there are incomplete line items" msgstr "" -#: order/models.py:1357 +#: order/models.py:1374 msgid "Item quantity" msgstr "" -#: order/models.py:1374 +#: order/models.py:1391 msgid "Line item reference" msgstr "" -#: order/models.py:1381 +#: order/models.py:1398 msgid "Line item notes" msgstr "" -#: order/models.py:1393 +#: order/models.py:1410 msgid "Target date for this line item (leave blank to use the target date from the order)" msgstr "" -#: order/models.py:1414 +#: order/models.py:1431 msgid "Line item description (optional)" msgstr "" -#: order/models.py:1420 -msgid "Context" -msgstr "" - -#: order/models.py:1421 +#: order/models.py:1438 msgid "Additional context for this line" msgstr "" -#: order/models.py:1431 +#: order/models.py:1448 msgid "Unit price" msgstr "" -#: order/models.py:1445 +#: order/models.py:1462 msgid "Purchase Order Line Item" msgstr "" -#: order/models.py:1469 +#: order/models.py:1486 msgid "Supplier part must match supplier" msgstr "" -#: order/models.py:1476 -msgid "deleted" -msgstr "" - -#: order/models.py:1504 +#: order/models.py:1520 msgid "Supplier part" msgstr "" -#: order/models.py:1511 order/templates/order/order_base.html:201 +#: order/models.py:1527 order/templates/order/order_base.html:210 #: templates/js/translated/part.js:1876 templates/js/translated/part.js:1908 -#: templates/js/translated/purchase_order.js:1369 -#: templates/js/translated/purchase_order.js:2239 +#: templates/js/translated/purchase_order.js:1352 +#: templates/js/translated/purchase_order.js:2223 #: templates/js/translated/return_order.js:762 #: templates/js/translated/table_filters.js:119 #: templates/js/translated/table_filters.js:605 msgid "Received" msgstr "" -#: order/models.py:1512 +#: order/models.py:1528 msgid "Number of items received" msgstr "" -#: order/models.py:1520 stock/models.py:959 stock/serializers.py:610 -#: stock/templates/stock/item_base.html:183 -#: templates/js/translated/stock.js:2396 +#: order/models.py:1536 stock/models.py:1036 stock/serializers.py:637 +#: stock/templates/stock/item_base.html:180 +#: templates/js/translated/stock.js:2397 msgid "Purchase Price" msgstr "" -#: order/models.py:1521 +#: order/models.py:1537 msgid "Unit purchase price" msgstr "" -#: order/models.py:1536 -msgid "Where does the Purchaser want this item to be stored?" -msgstr "" - -#: order/models.py:1587 +#: order/models.py:1603 msgid "Purchase Order Extra Line" msgstr "" -#: order/models.py:1616 +#: order/models.py:1632 msgid "Sales Order Line Item" msgstr "" -#: order/models.py:1637 +#: order/models.py:1653 msgid "Virtual part cannot be assigned to a sales order" msgstr "" -#: order/models.py:1642 +#: order/models.py:1658 msgid "Only salable parts can be assigned to a sales order" msgstr "" -#: order/models.py:1668 part/templates/part/part_pricing.html:107 -#: part/templates/part/prices.html:139 templates/js/translated/pricing.js:957 +#: order/models.py:1684 part/templates/part/part_pricing.html:107 +#: part/templates/part/prices.html:139 templates/js/translated/pricing.js:955 msgid "Sale Price" msgstr "" -#: order/models.py:1669 +#: order/models.py:1685 msgid "Unit sale price" msgstr "" -#: order/models.py:1678 order/status_codes.py:48 -#: templates/js/translated/sales_order.js:1559 -#: templates/js/translated/sales_order.js:1680 -#: templates/js/translated/sales_order.js:1993 +#: order/models.py:1694 order/status_codes.py:50 +#: templates/js/translated/sales_order.js:1525 +#: templates/js/translated/sales_order.js:1661 +#: templates/js/translated/sales_order.js:1974 msgid "Shipped" msgstr "" -#: order/models.py:1679 +#: order/models.py:1695 msgid "Shipped quantity" msgstr "" -#: order/models.py:1751 +#: order/models.py:1769 msgid "Sales Order Shipment" msgstr "" -#: order/models.py:1772 +#: order/models.py:1801 msgid "Date of shipment" msgstr "" -#: order/models.py:1778 templates/js/translated/sales_order.js:1072 +#: order/models.py:1807 templates/js/translated/sales_order.js:1038 msgid "Delivery Date" msgstr "" -#: order/models.py:1779 +#: order/models.py:1808 msgid "Date of delivery of shipment" msgstr "" -#: order/models.py:1787 +#: order/models.py:1816 msgid "Checked By" msgstr "" -#: order/models.py:1788 +#: order/models.py:1817 msgid "User who checked this shipment" msgstr "" -#: order/models.py:1795 order/models.py:2018 order/serializers.py:1475 -#: order/serializers.py:1585 templates/js/translated/model_renderers.js:455 +#: order/models.py:1824 order/models.py:2051 order/serializers.py:1601 +#: order/serializers.py:1725 +#: report/templates/report/inventree_sales_order_shipment_report.html:14 +#: templates/js/translated/model_renderers.js:458 +#: templates/js/translated/sales_order.js:1615 msgid "Shipment" msgstr "" -#: order/models.py:1796 +#: order/models.py:1825 msgid "Shipment number" msgstr "" -#: order/models.py:1804 +#: order/models.py:1833 msgid "Tracking Number" msgstr "" -#: order/models.py:1805 +#: order/models.py:1834 msgid "Shipment tracking information" msgstr "" -#: order/models.py:1812 +#: order/models.py:1841 msgid "Invoice Number" msgstr "" -#: order/models.py:1813 +#: order/models.py:1842 msgid "Reference number for associated invoice" msgstr "" -#: order/models.py:1833 +#: order/models.py:1862 msgid "Shipment has already been sent" msgstr "" -#: order/models.py:1836 +#: order/models.py:1865 msgid "Shipment has no allocated stock items" msgstr "" -#: order/models.py:1912 +#: order/models.py:1945 msgid "Sales Order Extra Line" msgstr "" -#: order/models.py:1941 +#: order/models.py:1974 msgid "Sales Order Allocation" msgstr "" -#: order/models.py:1964 order/models.py:1966 +#: order/models.py:1997 order/models.py:1999 msgid "Stock item has not been assigned" msgstr "" -#: order/models.py:1973 +#: order/models.py:2006 msgid "Cannot allocate stock item to a line with a different part" msgstr "" -#: order/models.py:1976 +#: order/models.py:2009 msgid "Cannot allocate stock to a line without a part" msgstr "" -#: order/models.py:1979 +#: order/models.py:2012 msgid "Allocation quantity cannot exceed stock quantity" msgstr "" -#: order/models.py:1998 order/serializers.py:1345 +#: order/models.py:2031 order/serializers.py:1471 msgid "Quantity must be 1 for serialized stock item" msgstr "" -#: order/models.py:2001 +#: order/models.py:2034 msgid "Sales order does not match shipment" msgstr "" -#: order/models.py:2002 plugin/base/barcodes/api.py:524 +#: order/models.py:2035 plugin/base/barcodes/api.py:629 msgid "Shipment does not match sales order" msgstr "" -#: order/models.py:2010 +#: order/models.py:2043 msgid "Line" msgstr "" -#: order/models.py:2019 +#: order/models.py:2052 msgid "Sales order shipment reference" msgstr "" -#: order/models.py:2032 order/models.py:2391 +#: order/models.py:2065 order/models.py:2430 #: templates/js/translated/return_order.js:720 msgid "Item" msgstr "" -#: order/models.py:2033 +#: order/models.py:2066 msgid "Select stock item to allocate" msgstr "" -#: order/models.py:2042 +#: order/models.py:2075 msgid "Enter stock allocation quantity" msgstr "" -#: order/models.py:2136 +#: order/models.py:2175 msgid "Return Order reference" msgstr "" -#: order/models.py:2148 +#: order/models.py:2187 msgid "Company from which items are being returned" msgstr "" -#: order/models.py:2160 +#: order/models.py:2199 msgid "Return order status" msgstr "" -#: order/models.py:2362 +#: order/models.py:2401 msgid "Return Order Line Item" msgstr "" -#: order/models.py:2376 +#: order/models.py:2415 msgid "Only serialized items can be assigned to a Return Order" msgstr "" -#: order/models.py:2392 +#: order/models.py:2431 msgid "Select item to return from customer" msgstr "" -#: order/models.py:2398 +#: order/models.py:2437 msgid "Received Date" msgstr "" -#: order/models.py:2399 +#: order/models.py:2438 msgid "The date this this return item was received" msgstr "" -#: order/models.py:2410 templates/js/translated/return_order.js:731 +#: order/models.py:2449 templates/js/translated/return_order.js:731 #: templates/js/translated/table_filters.js:122 msgid "Outcome" msgstr "" -#: order/models.py:2411 +#: order/models.py:2450 msgid "Outcome for this line item" msgstr "" -#: order/models.py:2418 +#: order/models.py:2457 msgid "Cost associated with return or repair for this line item" msgstr "" -#: order/models.py:2428 +#: order/models.py:2467 msgid "Return Order Extra Line" msgstr "" -#: order/serializers.py:86 +#: order/serializers.py:87 +msgid "Order ID" +msgstr "" + +#: order/serializers.py:87 +msgid "ID of the order to duplicate" +msgstr "" + +#: order/serializers.py:93 +msgid "Copy Lines" +msgstr "" + +#: order/serializers.py:94 +msgid "Copy line items from the original order" +msgstr "" + +#: order/serializers.py:100 +msgid "Copy Extra Lines" +msgstr "" + +#: order/serializers.py:101 +msgid "Copy extra line items from the original order" +msgstr "" + +#: order/serializers.py:117 msgid "Completed Lines" msgstr "" -#: order/serializers.py:283 stock/admin.py:195 +#: order/serializers.py:161 +msgid "Duplicate Order" +msgstr "" + +#: order/serializers.py:162 +msgid "Specify options for duplicating this order" +msgstr "" + +#: order/serializers.py:234 +msgid "Invalid order ID" +msgstr "" + +#: order/serializers.py:374 stock/admin.py:196 msgid "Supplier Name" msgstr "" -#: order/serializers.py:331 +#: order/serializers.py:416 msgid "Order cannot be cancelled" msgstr "" -#: order/serializers.py:346 order/serializers.py:1366 +#: order/serializers.py:431 order/serializers.py:1492 msgid "Allow order to be closed with incomplete line items" msgstr "" -#: order/serializers.py:356 order/serializers.py:1376 +#: order/serializers.py:441 order/serializers.py:1502 msgid "Order has incomplete line items" msgstr "" -#: order/serializers.py:506 +#: order/serializers.py:591 msgid "Order is not open" msgstr "" -#: order/serializers.py:527 +#: order/serializers.py:612 msgid "Auto Pricing" msgstr "" -#: order/serializers.py:529 +#: order/serializers.py:614 msgid "Automatically calculate purchase price based on supplier part data" msgstr "" -#: order/serializers.py:539 +#: order/serializers.py:624 msgid "Purchase price currency" msgstr "" -#: order/serializers.py:545 +#: order/serializers.py:630 msgid "Merge Items" msgstr "" -#: order/serializers.py:547 +#: order/serializers.py:632 msgid "Merge items with the same part, destination and target date into one line item" msgstr "" -#: order/serializers.py:560 part/models.py:1033 +#: order/serializers.py:645 part/models.py:1094 part/serializers.py:387 msgid "Internal Part Number" msgstr "" -#: order/serializers.py:568 +#: order/serializers.py:653 msgid "Internal Part Name" msgstr "" -#: order/serializers.py:584 +#: order/serializers.py:669 msgid "Supplier part must be specified" msgstr "" -#: order/serializers.py:587 +#: order/serializers.py:672 msgid "Purchase order must be specified" msgstr "" -#: order/serializers.py:595 +#: order/serializers.py:680 msgid "Supplier must match purchase order" msgstr "" -#: order/serializers.py:596 +#: order/serializers.py:681 msgid "Purchase order must match supplier" msgstr "" -#: order/serializers.py:639 order/serializers.py:1446 +#: order/serializers.py:724 order/serializers.py:1572 msgid "Line Item" msgstr "" -#: order/serializers.py:645 +#: order/serializers.py:730 msgid "Line item does not match purchase order" msgstr "" -#: order/serializers.py:655 order/serializers.py:779 order/serializers.py:1782 +#: order/serializers.py:740 order/serializers.py:881 order/serializers.py:1934 msgid "Select destination location for received items" msgstr "" -#: order/serializers.py:671 templates/js/translated/purchase_order.js:1130 +#: order/serializers.py:756 templates/js/translated/purchase_order.js:1113 #: templates/js/translated/stock.js:1200 msgid "Enter batch code for incoming stock items" msgstr "" -#: order/serializers.py:679 templates/js/translated/purchase_order.js:1155 +#: order/serializers.py:764 templates/js/translated/purchase_order.js:1138 msgid "Enter serial numbers for incoming stock items" msgstr "" -#: order/serializers.py:691 +#: order/serializers.py:776 msgid "Override packaging information for incoming stock items" msgstr "" -#: order/serializers.py:699 +#: order/serializers.py:784 msgid "Additional note for incoming stock items" msgstr "" -#: order/serializers.py:706 templates/js/translated/barcode.js:52 +#: order/serializers.py:791 templates/js/translated/barcode.js:52 msgid "Barcode" msgstr "" -#: order/serializers.py:707 +#: order/serializers.py:792 msgid "Scanned barcode" msgstr "" -#: order/serializers.py:723 +#: order/serializers.py:808 msgid "Barcode is already in use" msgstr "" -#: order/serializers.py:747 +#: order/serializers.py:831 msgid "An integer quantity must be provided for trackable parts" msgstr "" -#: order/serializers.py:795 order/serializers.py:1798 +#: order/serializers.py:898 order/serializers.py:1950 msgid "Line items must be provided" msgstr "" -#: order/serializers.py:811 +#: order/serializers.py:914 msgid "Destination location must be specified" msgstr "" -#: order/serializers.py:822 +#: order/serializers.py:925 msgid "Supplied barcode values must be unique" msgstr "" -#: order/serializers.py:1187 +#: order/serializers.py:1221 msgid "Sale price currency" msgstr "" -#: order/serializers.py:1248 +#: order/serializers.py:1260 +msgid "Allocated Items" +msgstr "" + +#: order/serializers.py:1374 msgid "No shipment details provided" msgstr "" -#: order/serializers.py:1309 order/serializers.py:1455 +#: order/serializers.py:1435 order/serializers.py:1581 msgid "Line item is not associated with this order" msgstr "" -#: order/serializers.py:1328 +#: order/serializers.py:1454 msgid "Quantity must be positive" msgstr "" -#: order/serializers.py:1465 +#: order/serializers.py:1591 msgid "Enter serial numbers to allocate" msgstr "" -#: order/serializers.py:1487 order/serializers.py:1593 +#: order/serializers.py:1613 order/serializers.py:1733 msgid "Shipment has already been shipped" msgstr "" -#: order/serializers.py:1490 order/serializers.py:1596 +#: order/serializers.py:1616 order/serializers.py:1736 msgid "Shipment is not associated with this order" msgstr "" -#: order/serializers.py:1537 +#: order/serializers.py:1671 msgid "No match found for the following serial numbers" msgstr "" -#: order/serializers.py:1544 -msgid "The following serial numbers are already allocated" +#: order/serializers.py:1678 +msgid "The following serial numbers are unavailable" msgstr "" -#: order/serializers.py:1752 +#: order/serializers.py:1904 msgid "Return order line item" msgstr "" -#: order/serializers.py:1758 +#: order/serializers.py:1910 msgid "Line item does not match return order" msgstr "" -#: order/serializers.py:1761 +#: order/serializers.py:1913 msgid "Line item has already been received" msgstr "" -#: order/serializers.py:1790 +#: order/serializers.py:1942 msgid "Items can only be received against orders which are in progress" msgstr "" -#: order/serializers.py:1873 +#: order/serializers.py:2025 msgid "Line price currency" msgstr "" -#: order/status_codes.py:17 order/status_codes.py:52 stock/status_codes.py:16 +#: order/status_codes.py:17 order/status_codes.py:54 stock/status_codes.py:16 msgid "Lost" msgstr "" -#: order/status_codes.py:18 order/status_codes.py:53 stock/status_codes.py:22 +#: order/status_codes.py:18 order/status_codes.py:55 stock/status_codes.py:24 msgid "Returned" msgstr "" -#: order/status_codes.py:45 order/status_codes.py:77 +#: order/status_codes.py:47 order/status_codes.py:79 msgid "In Progress" msgstr "" -#: order/status_codes.py:101 +#: order/status_codes.py:105 msgid "Return" msgstr "" -#: order/status_codes.py:104 +#: order/status_codes.py:108 msgid "Repair" msgstr "" -#: order/status_codes.py:107 +#: order/status_codes.py:111 msgid "Replace" msgstr "" -#: order/status_codes.py:110 +#: order/status_codes.py:114 msgid "Refund" msgstr "" -#: order/status_codes.py:113 +#: order/status_codes.py:117 msgid "Reject" msgstr "" -#: order/tasks.py:25 +#: order/tasks.py:30 msgid "Overdue Purchase Order" msgstr "" -#: order/tasks.py:30 +#: order/tasks.py:35 #, python-brace-format msgid "Purchase order {po} is now overdue" msgstr "" -#: order/tasks.py:75 +#: order/tasks.py:80 msgid "Overdue Sales Order" msgstr "" -#: order/tasks.py:80 +#: order/tasks.py:85 #, python-brace-format msgid "Sales order {so} is now overdue" msgstr "" -#: order/templates/order/order_base.html:51 +#: order/templates/order/order_base.html:52 msgid "Print purchase order report" msgstr "" -#: order/templates/order/order_base.html:53 -#: order/templates/order/return_order_base.html:62 -#: order/templates/order/sales_order_base.html:62 +#: order/templates/order/order_base.html:54 +#: order/templates/order/return_order_base.html:63 +#: order/templates/order/sales_order_base.html:63 msgid "Export order to file" msgstr "" -#: order/templates/order/order_base.html:59 -#: order/templates/order/return_order_base.html:72 -#: order/templates/order/sales_order_base.html:71 +#: order/templates/order/order_base.html:60 +#: order/templates/order/return_order_base.html:73 +#: order/templates/order/sales_order_base.html:72 msgid "Order actions" msgstr "" -#: order/templates/order/order_base.html:64 -#: order/templates/order/return_order_base.html:76 -#: order/templates/order/sales_order_base.html:75 +#: order/templates/order/order_base.html:65 +#: order/templates/order/return_order_base.html:77 +#: order/templates/order/sales_order_base.html:76 msgid "Edit order" msgstr "" -#: order/templates/order/order_base.html:68 +#: order/templates/order/order_base.html:69 msgid "Duplicate order" msgstr "" -#: order/templates/order/order_base.html:73 -#: order/templates/order/return_order_base.html:78 -#: order/templates/order/sales_order_base.html:77 +#: order/templates/order/order_base.html:74 +#: order/templates/order/return_order_base.html:79 +#: order/templates/order/sales_order_base.html:78 msgid "Hold order" msgstr "" -#: order/templates/order/order_base.html:78 -#: order/templates/order/return_order_base.html:81 -#: order/templates/order/sales_order_base.html:80 +#: order/templates/order/order_base.html:79 +#: order/templates/order/return_order_base.html:82 +#: order/templates/order/sales_order_base.html:81 msgid "Cancel order" msgstr "" -#: order/templates/order/order_base.html:84 #: order/templates/order/order_base.html:85 -#: order/templates/order/return_order_base.html:85 +#: order/templates/order/order_base.html:86 #: order/templates/order/return_order_base.html:86 -#: order/templates/order/sales_order_base.html:86 +#: order/templates/order/return_order_base.html:87 #: order/templates/order/sales_order_base.html:87 +#: order/templates/order/sales_order_base.html:88 msgid "Issue Order" msgstr "" -#: order/templates/order/order_base.html:88 -#: order/templates/order/return_order_base.html:89 -msgid "Mark order as complete" -msgstr "" - #: order/templates/order/order_base.html:89 #: order/templates/order/return_order_base.html:90 -#: order/templates/order/sales_order_base.html:100 +msgid "Mark order as complete" +msgstr "" + +#: order/templates/order/order_base.html:90 +#: order/templates/order/return_order_base.html:91 +#: order/templates/order/sales_order_base.html:101 msgid "Complete Order" msgstr "" -#: order/templates/order/order_base.html:96 +#: order/templates/order/order_base.html:97 msgid "Supplier part thumbnail" msgstr "" -#: order/templates/order/order_base.html:116 -#: order/templates/order/return_order_base.html:109 -#: order/templates/order/sales_order_base.html:118 +#: order/templates/order/order_base.html:117 +#: order/templates/order/return_order_base.html:110 +#: order/templates/order/sales_order_base.html:119 msgid "Order Description" msgstr "" -#: order/templates/order/order_base.html:146 -msgid "No suppplier information available" -msgstr "" - -#: order/templates/order/order_base.html:159 -#: order/templates/order/sales_order_base.html:164 +#: order/templates/order/order_base.html:168 +#: order/templates/order/sales_order_base.html:165 msgid "Completed Line Items" msgstr "" -#: order/templates/order/order_base.html:165 -#: order/templates/order/sales_order_base.html:170 -#: order/templates/order/sales_order_base.html:180 +#: order/templates/order/order_base.html:174 +#: order/templates/order/sales_order_base.html:171 +#: order/templates/order/sales_order_base.html:181 msgid "Incomplete" msgstr "" -#: order/templates/order/order_base.html:184 -#: order/templates/order/return_order_base.html:160 +#: order/templates/order/order_base.html:193 +#: order/templates/order/return_order_base.html:161 #: report/templates/report/inventree_build_order_report.html:121 msgid "Issued" msgstr "" -#: order/templates/order/order_base.html:229 +#: order/templates/order/order_base.html:238 msgid "Total cost" msgstr "" -#: order/templates/order/order_base.html:233 -#: order/templates/order/return_order_base.html:202 -#: order/templates/order/sales_order_base.html:246 +#: order/templates/order/order_base.html:242 +#: order/templates/order/return_order_base.html:203 +#: order/templates/order/sales_order_base.html:247 msgid "Total cost could not be calculated" msgstr "" -#: order/templates/order/order_base.html:335 +#: order/templates/order/order_base.html:344 msgid "Purchase Order QR Code" msgstr "" -#: order/templates/order/order_base.html:347 +#: order/templates/order/order_base.html:356 msgid "Link Barcode to Purchase Order" msgstr "" @@ -6184,12 +6392,12 @@ msgstr "" #: part/templates/part/import_wizard/ajax_match_references.html:42 #: part/templates/part/import_wizard/match_fields.html:71 #: part/templates/part/import_wizard/match_references.html:49 -#: templates/js/translated/bom.js:133 templates/js/translated/build.js:530 -#: templates/js/translated/build.js:1802 -#: templates/js/translated/purchase_order.js:696 -#: templates/js/translated/purchase_order.js:1288 +#: templates/js/translated/bom.js:133 templates/js/translated/build.js:533 +#: templates/js/translated/build.js:1805 +#: templates/js/translated/purchase_order.js:679 +#: templates/js/translated/purchase_order.js:1271 #: templates/js/translated/return_order.js:505 -#: templates/js/translated/sales_order.js:1145 +#: templates/js/translated/sales_order.js:1111 #: templates/js/translated/stock.js:720 templates/js/translated/stock.js:889 #: templates/patterns/wizard/match_fields.html:70 msgid "Remove row" @@ -6242,7 +6450,7 @@ msgstr "" #: order/templates/order/purchase_order_detail.html:27 #: order/templates/order/return_order_detail.html:24 #: order/templates/order/sales_order_detail.html:24 -#: templates/js/translated/purchase_order.js:414 +#: templates/js/translated/purchase_order.js:397 #: templates/js/translated/return_order.js:458 #: templates/js/translated/sales_order.js:237 msgid "Add Line Item" @@ -6277,45 +6485,45 @@ msgstr "" msgid "Order Notes" msgstr "" -#: order/templates/order/return_order_base.html:18 -#: order/templates/order/sales_order_base.html:18 +#: order/templates/order/return_order_base.html:19 +#: order/templates/order/sales_order_base.html:19 msgid "Customer logo thumbnail" msgstr "" -#: order/templates/order/return_order_base.html:60 +#: order/templates/order/return_order_base.html:61 msgid "Print return order report" msgstr "" -#: order/templates/order/return_order_base.html:64 -#: order/templates/order/sales_order_base.html:64 +#: order/templates/order/return_order_base.html:65 +#: order/templates/order/sales_order_base.html:65 msgid "Print packing list" msgstr "" -#: order/templates/order/return_order_base.html:141 -#: order/templates/order/sales_order_base.html:158 +#: order/templates/order/return_order_base.html:142 +#: order/templates/order/sales_order_base.html:159 #: templates/js/translated/return_order.js:308 -#: templates/js/translated/sales_order.js:833 +#: templates/js/translated/sales_order.js:792 msgid "Customer Reference" msgstr "" -#: order/templates/order/return_order_base.html:198 -#: order/templates/order/sales_order_base.html:242 +#: order/templates/order/return_order_base.html:199 +#: order/templates/order/sales_order_base.html:243 #: part/templates/part/part_pricing.html:32 #: part/templates/part/part_pricing.html:58 #: part/templates/part/part_pricing.html:99 #: part/templates/part/part_pricing.html:114 #: templates/js/translated/part.js:1079 -#: templates/js/translated/purchase_order.js:1822 +#: templates/js/translated/purchase_order.js:1806 #: templates/js/translated/return_order.js:380 -#: templates/js/translated/sales_order.js:891 +#: templates/js/translated/sales_order.js:850 msgid "Total Cost" msgstr "" -#: order/templates/order/return_order_base.html:273 +#: order/templates/order/return_order_base.html:274 msgid "Return Order QR Code" msgstr "" -#: order/templates/order/return_order_base.html:285 +#: order/templates/order/return_order_base.html:286 msgid "Link Barcode to Return Order" msgstr "" @@ -6323,40 +6531,40 @@ msgstr "" msgid "Order Details" msgstr "" -#: order/templates/order/sales_order_base.html:60 +#: order/templates/order/sales_order_base.html:61 msgid "Print sales order report" msgstr "" -#: order/templates/order/sales_order_base.html:91 #: order/templates/order/sales_order_base.html:92 +#: order/templates/order/sales_order_base.html:93 msgid "Ship Items" msgstr "" -#: order/templates/order/sales_order_base.html:95 #: order/templates/order/sales_order_base.html:96 +#: order/templates/order/sales_order_base.html:97 msgid "Mark As Shipped" msgstr "" -#: order/templates/order/sales_order_base.html:99 -#: templates/js/translated/sales_order.js:536 +#: order/templates/order/sales_order_base.html:100 +#: templates/js/translated/sales_order.js:495 msgid "Complete Sales Order" msgstr "" -#: order/templates/order/sales_order_base.html:138 +#: order/templates/order/sales_order_base.html:139 msgid "This Sales Order has not been fully allocated" msgstr "" -#: order/templates/order/sales_order_base.html:176 +#: order/templates/order/sales_order_base.html:177 #: order/templates/order/sales_order_detail.html:99 #: order/templates/order/so_sidebar.html:11 msgid "Completed Shipments" msgstr "" -#: order/templates/order/sales_order_base.html:339 +#: order/templates/order/sales_order_base.html:340 msgid "Sales Order QR Code" msgstr "" -#: order/templates/order/sales_order_base.html:351 +#: order/templates/order/sales_order_base.html:352 msgid "Link Barcode to Sales Order" msgstr "" @@ -6370,7 +6578,7 @@ msgid "Pending Shipments" msgstr "" #: order/templates/order/sales_order_detail.html:71 -#: templates/js/translated/bom.js:1277 templates/js/translated/build.js:1063 +#: templates/js/translated/bom.js:1277 templates/js/translated/build.js:1066 #: templates/js/translated/filters.js:299 msgid "Actions" msgstr "" @@ -6383,39 +6591,40 @@ msgstr "" msgid "Match Supplier Parts" msgstr "" -#: order/views.py:406 +#: order/views.py:407 msgid "Sales order not found" msgstr "" -#: order/views.py:412 +#: order/views.py:413 msgid "Price not found" msgstr "" -#: order/views.py:415 +#: order/views.py:416 #, python-brace-format msgid "Updated {part} unit-price to {price}" msgstr "" -#: order/views.py:421 +#: order/views.py:422 #, python-brace-format msgid "Updated {part} unit-price to {price} and quantity to {qty}" msgstr "" -#: part/admin.py:48 part/models.py:1032 part/templates/part/part_base.html:269 +#: part/admin.py:48 part/models.py:1093 part/serializers.py:939 +#: part/templates/part/part_base.html:277 #: report/templates/report/inventree_stock_location_report.html:103 #: templates/js/translated/part.js:1233 templates/js/translated/part.js:2347 -#: templates/js/translated/stock.js:2121 +#: templates/js/translated/stock.js:2122 msgid "IPN" msgstr "" -#: part/admin.py:50 part/models.py:1041 part/templates/part/part_base.html:286 +#: part/admin.py:50 part/models.py:1102 part/templates/part/part_base.html:294 #: report/models.py:161 templates/js/translated/part.js:1238 #: templates/js/translated/part.js:2353 msgid "Revision" msgstr "" -#: part/admin.py:53 part/admin.py:319 part/models.py:1014 -#: part/templates/part/category.html:91 part/templates/part/part_base.html:307 +#: part/admin.py:53 part/admin.py:319 part/models.py:1075 +#: part/templates/part/category.html:91 part/templates/part/part_base.html:315 msgid "Keywords" msgstr "" @@ -6427,7 +6636,7 @@ msgstr "" msgid "Category ID" msgstr "" -#: part/admin.py:67 part/admin.py:304 part/serializers.py:880 +#: part/admin.py:67 part/admin.py:304 part/serializers.py:924 #: part/stocktake.py:222 msgid "Category Name" msgstr "" @@ -6440,11 +6649,11 @@ msgstr "" msgid "Default Supplier ID" msgstr "" -#: part/admin.py:81 part/models.py:1000 part/templates/part/part_base.html:177 +#: part/admin.py:81 part/models.py:1061 part/templates/part/part_base.html:178 msgid "Variant Of" msgstr "" -#: part/admin.py:84 part/models.py:1138 part/templates/part/part_base.html:203 +#: part/admin.py:84 part/models.py:1199 part/templates/part/part_base.html:204 msgid "Minimum Stock" msgstr "" @@ -6452,23 +6661,23 @@ msgstr "" msgid "Used In" msgstr "" -#: part/admin.py:150 part/serializers.py:897 -#: part/templates/part/part_base.html:241 stock/admin.py:235 +#: part/admin.py:150 part/serializers.py:949 +#: part/templates/part/part_base.html:249 stock/admin.py:236 #: templates/js/translated/part.js:717 templates/js/translated/part.js:2159 msgid "Building" msgstr "" -#: part/admin.py:155 part/models.py:3202 part/models.py:3216 +#: part/admin.py:155 part/models.py:3253 part/models.py:3267 #: templates/js/translated/part.js:976 msgid "Minimum Cost" msgstr "" -#: part/admin.py:158 part/models.py:3209 part/models.py:3223 +#: part/admin.py:158 part/models.py:3260 part/models.py:3274 #: templates/js/translated/part.js:986 msgid "Maximum Cost" msgstr "" -#: part/admin.py:308 part/admin.py:387 stock/admin.py:57 stock/admin.py:215 +#: part/admin.py:308 part/admin.py:387 stock/admin.py:57 stock/admin.py:216 msgid "Parent ID" msgstr "" @@ -6481,8 +6690,8 @@ msgstr "" msgid "Category Path" msgstr "" -#: part/admin.py:325 part/models.py:425 part/serializers.py:130 -#: part/serializers.py:290 part/serializers.py:415 +#: part/admin.py:325 part/models.py:420 part/serializers.py:130 +#: part/serializers.py:323 part/serializers.py:459 #: part/templates/part/cat_link.html:3 part/templates/part/category.html:20 #: part/templates/part/category.html:138 part/templates/part/category.html:158 #: part/templates/part/category_sidebar.html:9 @@ -6509,15 +6718,15 @@ msgstr "" msgid "Part Revision" msgstr "" -#: part/admin.py:418 part/serializers.py:1346 +#: part/admin.py:418 part/serializers.py:1400 #: templates/js/translated/pricing.js:358 -#: templates/js/translated/pricing.js:1024 +#: templates/js/translated/pricing.js:1022 msgid "Minimum Price" msgstr "" -#: part/admin.py:423 part/serializers.py:1361 +#: part/admin.py:423 part/serializers.py:1415 #: templates/js/translated/pricing.js:353 -#: templates/js/translated/pricing.js:1032 +#: templates/js/translated/pricing.js:1030 msgid "Maximum Price" msgstr "" @@ -6545,94 +6754,98 @@ msgstr "" msgid "Filter by top-level categories" msgstr "" +#: part/api.py:156 stock/api.py:343 +msgid "Cascade" +msgstr "" + #: part/api.py:158 msgid "Include sub-categories in filtered results" msgstr "" -#: part/api.py:179 templates/js/translated/part.js:311 +#: part/api.py:178 templates/js/translated/part.js:311 msgid "Parent" msgstr "" -#: part/api.py:181 +#: part/api.py:180 msgid "Filter by parent category" msgstr "" -#: part/api.py:214 +#: part/api.py:213 msgid "Exclude Tree" msgstr "" -#: part/api.py:216 +#: part/api.py:215 msgid "Exclude sub-categories under the specified category" msgstr "" -#: part/api.py:441 +#: part/api.py:440 msgid "Has Results" msgstr "" -#: part/api.py:608 +#: part/api.py:604 msgid "Incoming Purchase Order" msgstr "" -#: part/api.py:626 +#: part/api.py:618 msgid "Outgoing Sales Order" msgstr "" -#: part/api.py:642 +#: part/api.py:630 msgid "Stock produced by Build Order" msgstr "" -#: part/api.py:726 +#: part/api.py:712 msgid "Stock required for Build Order" msgstr "" -#: part/api.py:874 +#: part/api.py:858 msgid "Validate entire Bill of Materials" msgstr "" -#: part/api.py:880 +#: part/api.py:864 msgid "This option must be selected" msgstr "" -#: part/api.py:916 +#: part/api.py:900 msgid "Is Revision" msgstr "" -#: part/api.py:926 +#: part/api.py:910 msgid "Has Revisions" msgstr "" -#: part/api.py:1117 +#: part/api.py:1101 msgid "BOM Valid" msgstr "" -#: part/api.py:1523 part/models.py:1024 part/models.py:3489 part/models.py:4046 -#: part/serializers.py:430 part/serializers.py:1202 -#: part/templates/part/part_base.html:260 stock/api.py:781 +#: part/api.py:1509 part/models.py:1085 part/models.py:3540 part/models.py:4104 +#: part/serializers.py:474 part/serializers.py:1255 +#: part/templates/part/part_base.html:268 stock/api.py:781 #: templates/InvenTree/settings/settings_staff_js.html:300 #: templates/js/translated/notification.js:60 #: templates/js/translated/part.js:2383 msgid "Category" msgstr "" -#: part/api.py:1761 +#: part/api.py:1750 msgid "Assembly part is testable" msgstr "" -#: part/api.py:1770 +#: part/api.py:1759 msgid "Component part is testable" msgstr "" -#: part/api.py:1821 +#: part/api.py:1810 msgid "Uses" msgstr "" -#: part/bom.py:178 part/models.py:107 part/models.py:1077 -#: part/templates/part/category.html:113 part/templates/part/part_base.html:376 +#: part/bom.py:183 part/models.py:109 part/models.py:1138 +#: part/templates/part/category.html:113 part/templates/part/part_base.html:384 #: templates/js/translated/part.js:2397 msgid "Default Location" msgstr "" -#: part/bom.py:179 part/serializers.py:905 +#: part/bom.py:184 part/serializers.py:957 #: templates/email/low_stock_notification.html:16 msgid "Total Stock" msgstr "" @@ -6641,789 +6854,789 @@ msgstr "" msgid "Input quantity for price calculation" msgstr "" -#: part/models.py:88 part/models.py:4047 part/templates/part/category.html:16 +#: part/models.py:90 part/models.py:4105 part/templates/part/category.html:16 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "" -#: part/models.py:89 part/templates/part/category.html:133 +#: part/models.py:91 part/templates/part/category.html:133 #: templates/InvenTree/search.html:97 templates/js/translated/search.js:158 #: users/models.py:202 msgid "Part Categories" msgstr "" -#: part/models.py:108 +#: part/models.py:110 msgid "Default location for parts in this category" msgstr "" -#: part/models.py:113 stock/models.py:187 templates/js/translated/part.js:2828 -#: templates/js/translated/stock.js:2856 +#: part/models.py:115 stock/models.py:193 templates/js/translated/part.js:2828 +#: templates/js/translated/stock.js:2857 #: templates/js/translated/table_filters.js:246 #: templates/js/translated/table_filters.js:290 msgid "Structural" msgstr "" -#: part/models.py:115 +#: part/models.py:117 msgid "Parts may not be directly assigned to a structural category, but may be assigned to child categories." msgstr "" -#: part/models.py:124 +#: part/models.py:126 msgid "Default keywords" msgstr "" -#: part/models.py:125 +#: part/models.py:127 msgid "Default keywords for parts in this category" msgstr "" -#: part/models.py:131 stock/models.py:90 stock/models.py:169 +#: part/models.py:133 stock/models.py:96 stock/models.py:175 #: templates/InvenTree/settings/settings_staff_js.html:445 msgid "Icon" msgstr "" -#: part/models.py:132 part/serializers.py:143 part/serializers.py:161 -#: stock/models.py:170 +#: part/models.py:134 part/serializers.py:143 part/serializers.py:161 +#: stock/models.py:176 msgid "Icon (optional)" msgstr "" -#: part/models.py:178 +#: part/models.py:180 msgid "You cannot make this part category structural because some parts are already assigned to it!" msgstr "" -#: part/models.py:519 +#: part/models.py:514 msgid "Cannot delete this part as it is locked" msgstr "" -#: part/models.py:522 +#: part/models.py:517 msgid "Cannot delete this part as it is still active" msgstr "" -#: part/models.py:527 +#: part/models.py:522 msgid "Cannot delete this part as it is used in an assembly" msgstr "" -#: part/models.py:565 +#: part/models.py:560 msgid "Invalid choice for parent part" msgstr "" -#: part/models.py:613 part/models.py:620 +#: part/models.py:608 part/models.py:615 #, python-brace-format msgid "Part '{self}' cannot be used in BOM for '{parent}' (recursive)" msgstr "" -#: part/models.py:632 +#: part/models.py:627 #, python-brace-format msgid "Part '{parent}' is used in BOM for '{self}' (recursive)" msgstr "" -#: part/models.py:695 +#: part/models.py:694 #, python-brace-format msgid "IPN must match regex pattern {pattern}" msgstr "" -#: part/models.py:703 +#: part/models.py:702 msgid "Part cannot be a revision of itself" msgstr "" -#: part/models.py:710 +#: part/models.py:709 msgid "Cannot make a revision of a part which is already a revision" msgstr "" -#: part/models.py:717 +#: part/models.py:716 msgid "Revision code must be specified" msgstr "" -#: part/models.py:724 +#: part/models.py:723 msgid "Revisions are only allowed for assembly parts" msgstr "" -#: part/models.py:731 +#: part/models.py:730 msgid "Cannot make a revision of a template part" msgstr "" -#: part/models.py:737 +#: part/models.py:736 msgid "Parent part must point to the same template" msgstr "" -#: part/models.py:816 +#: part/models.py:832 msgid "Stock item with this serial number already exists" msgstr "" -#: part/models.py:917 +#: part/models.py:976 msgid "Duplicate IPN not allowed in part settings" msgstr "" -#: part/models.py:926 +#: part/models.py:988 msgid "Duplicate part revision already exists." msgstr "" -#: part/models.py:936 +#: part/models.py:997 msgid "Part with this Name, IPN and Revision already exists." msgstr "" -#: part/models.py:951 +#: part/models.py:1012 msgid "Parts cannot be assigned to structural part categories!" msgstr "" -#: part/models.py:983 part/models.py:4102 +#: part/models.py:1044 part/models.py:4160 msgid "Part name" msgstr "" -#: part/models.py:988 +#: part/models.py:1049 msgid "Is Template" msgstr "" -#: part/models.py:989 +#: part/models.py:1050 msgid "Is this part a template part?" msgstr "" -#: part/models.py:999 +#: part/models.py:1060 msgid "Is this part a variant of another part?" msgstr "" -#: part/models.py:1007 +#: part/models.py:1068 msgid "Part description (optional)" msgstr "" -#: part/models.py:1015 +#: part/models.py:1076 msgid "Part keywords to improve visibility in search results" msgstr "" -#: part/models.py:1025 +#: part/models.py:1086 msgid "Part category" msgstr "" -#: part/models.py:1040 +#: part/models.py:1101 msgid "Part revision or version number" msgstr "" -#: part/models.py:1050 +#: part/models.py:1111 msgid "Is this part a revision of another part?" msgstr "" -#: part/models.py:1051 part/templates/part/part_base.html:277 +#: part/models.py:1112 part/templates/part/part_base.html:285 msgid "Revision Of" msgstr "" -#: part/models.py:1075 +#: part/models.py:1136 msgid "Where is this item normally stored?" msgstr "" -#: part/models.py:1121 part/templates/part/part_base.html:385 +#: part/models.py:1182 part/templates/part/part_base.html:393 msgid "Default Supplier" msgstr "" -#: part/models.py:1122 +#: part/models.py:1183 msgid "Default supplier part" msgstr "" -#: part/models.py:1129 +#: part/models.py:1190 msgid "Default Expiry" msgstr "" -#: part/models.py:1130 +#: part/models.py:1191 msgid "Expiry time (in days) for stock items of this part" msgstr "" -#: part/models.py:1139 +#: part/models.py:1200 msgid "Minimum allowed stock level" msgstr "" -#: part/models.py:1148 +#: part/models.py:1209 msgid "Units of measure for this part" msgstr "" -#: part/models.py:1155 +#: part/models.py:1216 msgid "Can this part be built from other parts?" msgstr "" -#: part/models.py:1161 +#: part/models.py:1222 msgid "Can this part be used to build other parts?" msgstr "" -#: part/models.py:1167 +#: part/models.py:1228 msgid "Does this part have tracking for unique items?" msgstr "" -#: part/models.py:1173 +#: part/models.py:1234 msgid "Can this part have test results recorded against it?" msgstr "" -#: part/models.py:1179 +#: part/models.py:1240 msgid "Can this part be purchased from external suppliers?" msgstr "" -#: part/models.py:1185 +#: part/models.py:1246 msgid "Can this part be sold to customers?" msgstr "" -#: part/models.py:1189 +#: part/models.py:1250 msgid "Is this part active?" msgstr "" -#: part/models.py:1194 templates/js/translated/part.js:821 +#: part/models.py:1255 templates/js/translated/part.js:821 #: templates/js/translated/table_filters.js:724 msgid "Locked" msgstr "" -#: part/models.py:1195 +#: part/models.py:1256 msgid "Locked parts cannot be edited" msgstr "" -#: part/models.py:1201 +#: part/models.py:1262 msgid "Is this a virtual part, such as a software product or license?" msgstr "" -#: part/models.py:1207 +#: part/models.py:1268 msgid "BOM checksum" msgstr "" -#: part/models.py:1208 +#: part/models.py:1269 msgid "Stored BOM checksum" msgstr "" -#: part/models.py:1216 +#: part/models.py:1277 msgid "BOM checked by" msgstr "" -#: part/models.py:1221 +#: part/models.py:1282 msgid "BOM checked date" msgstr "" -#: part/models.py:1237 +#: part/models.py:1298 msgid "Creation User" msgstr "" -#: part/models.py:1247 +#: part/models.py:1308 msgid "Owner responsible for this part" msgstr "" -#: part/models.py:1252 part/templates/part/part_base.html:348 -#: stock/templates/stock/item_base.html:451 +#: part/models.py:1313 part/templates/part/part_base.html:356 +#: stock/templates/stock/item_base.html:448 #: templates/js/translated/part.js:2490 msgid "Last Stocktake" msgstr "" -#: part/models.py:2125 +#: part/models.py:2185 msgid "Sell multiple" msgstr "" -#: part/models.py:3116 +#: part/models.py:3167 msgid "Currency used to cache pricing calculations" msgstr "" -#: part/models.py:3132 +#: part/models.py:3183 msgid "Minimum BOM Cost" msgstr "" -#: part/models.py:3133 +#: part/models.py:3184 msgid "Minimum cost of component parts" msgstr "" -#: part/models.py:3139 +#: part/models.py:3190 msgid "Maximum BOM Cost" msgstr "" -#: part/models.py:3140 +#: part/models.py:3191 msgid "Maximum cost of component parts" msgstr "" -#: part/models.py:3146 +#: part/models.py:3197 msgid "Minimum Purchase Cost" msgstr "" -#: part/models.py:3147 +#: part/models.py:3198 msgid "Minimum historical purchase cost" msgstr "" -#: part/models.py:3153 +#: part/models.py:3204 msgid "Maximum Purchase Cost" msgstr "" -#: part/models.py:3154 +#: part/models.py:3205 msgid "Maximum historical purchase cost" msgstr "" -#: part/models.py:3160 +#: part/models.py:3211 msgid "Minimum Internal Price" msgstr "" -#: part/models.py:3161 +#: part/models.py:3212 msgid "Minimum cost based on internal price breaks" msgstr "" -#: part/models.py:3167 +#: part/models.py:3218 msgid "Maximum Internal Price" msgstr "" -#: part/models.py:3168 +#: part/models.py:3219 msgid "Maximum cost based on internal price breaks" msgstr "" -#: part/models.py:3174 +#: part/models.py:3225 msgid "Minimum Supplier Price" msgstr "" -#: part/models.py:3175 +#: part/models.py:3226 msgid "Minimum price of part from external suppliers" msgstr "" -#: part/models.py:3181 +#: part/models.py:3232 msgid "Maximum Supplier Price" msgstr "" -#: part/models.py:3182 +#: part/models.py:3233 msgid "Maximum price of part from external suppliers" msgstr "" -#: part/models.py:3188 +#: part/models.py:3239 msgid "Minimum Variant Cost" msgstr "" -#: part/models.py:3189 +#: part/models.py:3240 msgid "Calculated minimum cost of variant parts" msgstr "" -#: part/models.py:3195 +#: part/models.py:3246 msgid "Maximum Variant Cost" msgstr "" -#: part/models.py:3196 +#: part/models.py:3247 msgid "Calculated maximum cost of variant parts" msgstr "" -#: part/models.py:3203 +#: part/models.py:3254 msgid "Override minimum cost" msgstr "" -#: part/models.py:3210 +#: part/models.py:3261 msgid "Override maximum cost" msgstr "" -#: part/models.py:3217 +#: part/models.py:3268 msgid "Calculated overall minimum cost" msgstr "" -#: part/models.py:3224 +#: part/models.py:3275 msgid "Calculated overall maximum cost" msgstr "" -#: part/models.py:3230 +#: part/models.py:3281 msgid "Minimum Sale Price" msgstr "" -#: part/models.py:3231 +#: part/models.py:3282 msgid "Minimum sale price based on price breaks" msgstr "" -#: part/models.py:3237 +#: part/models.py:3288 msgid "Maximum Sale Price" msgstr "" -#: part/models.py:3238 +#: part/models.py:3289 msgid "Maximum sale price based on price breaks" msgstr "" -#: part/models.py:3244 +#: part/models.py:3295 msgid "Minimum Sale Cost" msgstr "" -#: part/models.py:3245 +#: part/models.py:3296 msgid "Minimum historical sale price" msgstr "" -#: part/models.py:3251 +#: part/models.py:3302 msgid "Maximum Sale Cost" msgstr "" -#: part/models.py:3252 +#: part/models.py:3303 msgid "Maximum historical sale price" msgstr "" -#: part/models.py:3271 +#: part/models.py:3322 msgid "Part for stocktake" msgstr "" -#: part/models.py:3276 +#: part/models.py:3327 msgid "Item Count" msgstr "" -#: part/models.py:3277 +#: part/models.py:3328 msgid "Number of individual stock entries at time of stocktake" msgstr "" -#: part/models.py:3285 +#: part/models.py:3336 msgid "Total available stock at time of stocktake" msgstr "" -#: part/models.py:3289 part/models.py:3372 +#: part/models.py:3340 part/models.py:3423 part/serializers.py:263 #: part/templates/part/part_scheduling.html:13 #: report/templates/report/inventree_test_report.html:106 #: templates/InvenTree/settings/plugin_settings.html:37 #: templates/InvenTree/settings/settings_staff_js.html:543 -#: templates/js/translated/part.js:1092 templates/js/translated/pricing.js:826 -#: templates/js/translated/pricing.js:950 -#: templates/js/translated/purchase_order.js:1801 -#: templates/js/translated/stock.js:2905 +#: templates/js/translated/part.js:1092 templates/js/translated/pricing.js:824 +#: templates/js/translated/pricing.js:948 +#: templates/js/translated/purchase_order.js:1785 +#: templates/js/translated/stock.js:2906 msgid "Date" msgstr "" -#: part/models.py:3290 +#: part/models.py:3341 msgid "Date stocktake was performed" msgstr "" -#: part/models.py:3298 +#: part/models.py:3349 msgid "Additional notes" msgstr "" -#: part/models.py:3308 +#: part/models.py:3359 msgid "User who performed this stocktake" msgstr "" -#: part/models.py:3314 +#: part/models.py:3365 msgid "Minimum Stock Cost" msgstr "" -#: part/models.py:3315 +#: part/models.py:3366 msgid "Estimated minimum cost of stock on hand" msgstr "" -#: part/models.py:3321 +#: part/models.py:3372 msgid "Maximum Stock Cost" msgstr "" -#: part/models.py:3322 +#: part/models.py:3373 msgid "Estimated maximum cost of stock on hand" msgstr "" -#: part/models.py:3378 templates/InvenTree/settings/settings_staff_js.html:532 +#: part/models.py:3429 templates/InvenTree/settings/settings_staff_js.html:532 msgid "Report" msgstr "" -#: part/models.py:3379 +#: part/models.py:3430 msgid "Stocktake report file (generated internally)" msgstr "" -#: part/models.py:3384 templates/InvenTree/settings/settings_staff_js.html:539 +#: part/models.py:3435 templates/InvenTree/settings/settings_staff_js.html:539 msgid "Part Count" msgstr "" -#: part/models.py:3385 +#: part/models.py:3436 msgid "Number of parts covered by stocktake" msgstr "" -#: part/models.py:3395 +#: part/models.py:3446 msgid "User who requested this stocktake report" msgstr "" -#: part/models.py:3405 +#: part/models.py:3456 msgid "Part Sale Price Break" msgstr "" -#: part/models.py:3517 +#: part/models.py:3568 msgid "Part Test Template" msgstr "" -#: part/models.py:3543 +#: part/models.py:3594 msgid "Invalid template name - must include at least one alphanumeric character" msgstr "" -#: part/models.py:3564 part/models.py:3733 +#: part/models.py:3615 part/models.py:3784 msgid "Choices must be unique" msgstr "" -#: part/models.py:3575 -msgid "Test templates can only be created for trackable parts" +#: part/models.py:3626 +msgid "Test templates can only be created for testable parts" msgstr "" -#: part/models.py:3586 +#: part/models.py:3637 msgid "Test template with the same key already exists for part" msgstr "" -#: part/models.py:3603 templates/js/translated/part.js:2898 +#: part/models.py:3654 templates/js/translated/part.js:2898 msgid "Test Name" msgstr "" -#: part/models.py:3604 +#: part/models.py:3655 msgid "Enter a name for the test" msgstr "" -#: part/models.py:3610 +#: part/models.py:3661 msgid "Test Key" msgstr "" -#: part/models.py:3611 +#: part/models.py:3662 msgid "Simplified key for the test" msgstr "" -#: part/models.py:3618 +#: part/models.py:3669 msgid "Test Description" msgstr "" -#: part/models.py:3619 +#: part/models.py:3670 msgid "Enter description for this test" msgstr "" -#: part/models.py:3623 report/models.py:208 +#: part/models.py:3674 report/models.py:216 #: templates/js/translated/part.js:2919 #: templates/js/translated/table_filters.js:502 msgid "Enabled" msgstr "" -#: part/models.py:3623 +#: part/models.py:3674 msgid "Is this test enabled?" msgstr "" -#: part/models.py:3628 templates/js/translated/part.js:2927 +#: part/models.py:3679 templates/js/translated/part.js:2927 #: templates/js/translated/table_filters.js:498 msgid "Required" msgstr "" -#: part/models.py:3629 +#: part/models.py:3680 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:3634 templates/js/translated/part.js:2935 +#: part/models.py:3685 templates/js/translated/part.js:2935 msgid "Requires Value" msgstr "" -#: part/models.py:3635 +#: part/models.py:3686 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:3640 templates/js/translated/part.js:2942 +#: part/models.py:3691 templates/js/translated/part.js:2942 msgid "Requires Attachment" msgstr "" -#: part/models.py:3642 +#: part/models.py:3693 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:3648 part/models.py:3792 templates/js/translated/part.js:1643 +#: part/models.py:3699 part/models.py:3843 templates/js/translated/part.js:1643 msgid "Choices" msgstr "" -#: part/models.py:3649 +#: part/models.py:3700 msgid "Valid choices for this test (comma-separated)" msgstr "" -#: part/models.py:3681 +#: part/models.py:3732 msgid "Part Parameter Template" msgstr "" -#: part/models.py:3708 +#: part/models.py:3759 msgid "Checkbox parameters cannot have units" msgstr "" -#: part/models.py:3713 +#: part/models.py:3764 msgid "Checkbox parameters cannot have choices" msgstr "" -#: part/models.py:3750 +#: part/models.py:3801 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:3765 +#: part/models.py:3816 msgid "Parameter Name" msgstr "" -#: part/models.py:3772 +#: part/models.py:3823 msgid "Physical units for this parameter" msgstr "" -#: part/models.py:3780 +#: part/models.py:3831 msgid "Parameter description" msgstr "" -#: part/models.py:3786 templates/js/translated/part.js:1634 +#: part/models.py:3837 templates/js/translated/part.js:1634 #: templates/js/translated/table_filters.js:837 msgid "Checkbox" msgstr "" -#: part/models.py:3787 +#: part/models.py:3838 msgid "Is this parameter a checkbox?" msgstr "" -#: part/models.py:3793 +#: part/models.py:3844 msgid "Valid choices for this parameter (comma-separated)" msgstr "" -#: part/models.py:3827 +#: part/models.py:3881 msgid "Part Parameter" msgstr "" -#: part/models.py:3853 +#: part/models.py:3907 msgid "Parameter cannot be modified - part is locked" msgstr "" -#: part/models.py:3889 +#: part/models.py:3945 msgid "Invalid choice for parameter value" msgstr "" -#: part/models.py:3938 +#: part/models.py:3996 msgid "Parent Part" msgstr "" -#: part/models.py:3946 part/models.py:4054 part/models.py:4055 +#: part/models.py:4004 part/models.py:4112 part/models.py:4113 #: templates/InvenTree/settings/settings_staff_js.html:295 msgid "Parameter Template" msgstr "" -#: part/models.py:3952 +#: part/models.py:4010 msgid "Parameter Value" msgstr "" -#: part/models.py:4002 +#: part/models.py:4060 msgid "Part Category Parameter Template" msgstr "" -#: part/models.py:4061 templates/InvenTree/settings/settings_staff_js.html:304 +#: part/models.py:4119 templates/InvenTree/settings/settings_staff_js.html:304 msgid "Default Value" msgstr "" -#: part/models.py:4062 +#: part/models.py:4120 msgid "Default Parameter Value" msgstr "" -#: part/models.py:4100 +#: part/models.py:4158 msgid "Part ID or part name" msgstr "" -#: part/models.py:4101 +#: part/models.py:4159 msgid "Unique part ID value" msgstr "" -#: part/models.py:4103 +#: part/models.py:4161 msgid "Part IPN value" msgstr "" -#: part/models.py:4104 +#: part/models.py:4162 msgid "Level" msgstr "" -#: part/models.py:4104 +#: part/models.py:4162 msgid "BOM level" msgstr "" -#: part/models.py:4215 +#: part/models.py:4272 msgid "BOM item cannot be modified - assembly is locked" msgstr "" -#: part/models.py:4222 +#: part/models.py:4279 msgid "BOM item cannot be modified - variant assembly is locked" msgstr "" -#: part/models.py:4232 +#: part/models.py:4289 msgid "Select parent part" msgstr "" -#: part/models.py:4242 +#: part/models.py:4299 msgid "Sub part" msgstr "" -#: part/models.py:4243 +#: part/models.py:4300 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:4254 +#: part/models.py:4311 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:4260 +#: part/models.py:4317 msgid "This BOM item is optional" msgstr "" -#: part/models.py:4266 +#: part/models.py:4323 msgid "This BOM item is consumable (it is not tracked in build orders)" msgstr "" -#: part/models.py:4273 part/templates/part/upload_bom.html:55 +#: part/models.py:4330 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "" -#: part/models.py:4274 +#: part/models.py:4331 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:4281 +#: part/models.py:4338 msgid "BOM item reference" msgstr "" -#: part/models.py:4289 +#: part/models.py:4346 msgid "BOM item notes" msgstr "" -#: part/models.py:4295 +#: part/models.py:4352 msgid "Checksum" msgstr "" -#: part/models.py:4296 +#: part/models.py:4353 msgid "BOM line checksum" msgstr "" -#: part/models.py:4301 templates/js/translated/table_filters.js:181 +#: part/models.py:4358 templates/js/translated/table_filters.js:181 msgid "Validated" msgstr "" -#: part/models.py:4302 +#: part/models.py:4359 msgid "This BOM item has been validated" msgstr "" -#: part/models.py:4307 part/templates/part/upload_bom.html:57 +#: part/models.py:4364 part/templates/part/upload_bom.html:57 #: templates/js/translated/bom.js:1054 #: templates/js/translated/table_filters.js:185 #: templates/js/translated/table_filters.js:218 msgid "Gets inherited" msgstr "" -#: part/models.py:4308 +#: part/models.py:4365 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:4314 +#: part/models.py:4371 msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:4399 stock/models.py:685 +#: part/models.py:4456 stock/models.py:762 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:4409 part/models.py:4411 +#: part/models.py:4466 part/models.py:4468 msgid "Sub part must be specified" msgstr "" -#: part/models.py:4551 +#: part/models.py:4613 msgid "BOM Item Substitute" msgstr "" -#: part/models.py:4572 +#: part/models.py:4634 msgid "Substitute part cannot be the same as the master part" msgstr "" -#: part/models.py:4585 +#: part/models.py:4647 msgid "Parent BOM item" msgstr "" -#: part/models.py:4593 +#: part/models.py:4655 msgid "Substitute part" msgstr "" -#: part/models.py:4609 +#: part/models.py:4671 msgid "Part 1" msgstr "" -#: part/models.py:4617 +#: part/models.py:4679 msgid "Part 2" msgstr "" -#: part/models.py:4618 +#: part/models.py:4680 msgid "Select Related Part" msgstr "" -#: part/models.py:4637 +#: part/models.py:4699 msgid "Part relationship cannot be created between a part and itself" msgstr "" -#: part/models.py:4642 +#: part/models.py:4704 msgid "Duplicate relationship already exists" msgstr "" @@ -7449,340 +7662,352 @@ msgstr "" msgid "Number of results recorded against this template" msgstr "" -#: part/serializers.py:225 part/serializers.py:243 stock/serializers.py:616 +#: part/serializers.py:225 part/serializers.py:243 stock/serializers.py:643 msgid "Purchase currency of this stock item" msgstr "" -#: part/serializers.py:291 +#: part/serializers.py:268 +msgid "Speculative Quantity" +msgstr "" + +#: part/serializers.py:277 +msgid "Model ID" +msgstr "" + +#: part/serializers.py:324 msgid "Number of parts using this template" msgstr "" -#: part/serializers.py:421 +#: part/serializers.py:465 msgid "No parts selected" msgstr "" -#: part/serializers.py:431 +#: part/serializers.py:475 msgid "Select category" msgstr "" -#: part/serializers.py:466 +#: part/serializers.py:510 msgid "Original Part" msgstr "" -#: part/serializers.py:467 +#: part/serializers.py:511 msgid "Select original part to duplicate" msgstr "" -#: part/serializers.py:472 +#: part/serializers.py:516 msgid "Copy Image" msgstr "" -#: part/serializers.py:473 +#: part/serializers.py:517 msgid "Copy image from original part" msgstr "" -#: part/serializers.py:479 part/templates/part/detail.html:293 +#: part/serializers.py:523 part/templates/part/detail.html:293 msgid "Copy BOM" msgstr "" -#: part/serializers.py:480 +#: part/serializers.py:524 msgid "Copy bill of materials from original part" msgstr "" -#: part/serializers.py:486 +#: part/serializers.py:530 msgid "Copy Parameters" msgstr "" -#: part/serializers.py:487 +#: part/serializers.py:531 msgid "Copy parameter data from original part" msgstr "" -#: part/serializers.py:493 +#: part/serializers.py:537 msgid "Copy Notes" msgstr "" -#: part/serializers.py:494 +#: part/serializers.py:538 msgid "Copy notes from original part" msgstr "" -#: part/serializers.py:512 +#: part/serializers.py:556 msgid "Initial Stock Quantity" msgstr "" -#: part/serializers.py:514 +#: part/serializers.py:558 msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added." msgstr "" -#: part/serializers.py:521 +#: part/serializers.py:565 msgid "Initial Stock Location" msgstr "" -#: part/serializers.py:522 +#: part/serializers.py:566 msgid "Specify initial stock location for this Part" msgstr "" -#: part/serializers.py:539 +#: part/serializers.py:583 msgid "Select supplier (or leave blank to skip)" msgstr "" -#: part/serializers.py:555 +#: part/serializers.py:599 msgid "Select manufacturer (or leave blank to skip)" msgstr "" -#: part/serializers.py:565 +#: part/serializers.py:609 msgid "Manufacturer part number" msgstr "" -#: part/serializers.py:572 +#: part/serializers.py:616 msgid "Selected company is not a valid supplier" msgstr "" -#: part/serializers.py:581 +#: part/serializers.py:625 msgid "Selected company is not a valid manufacturer" msgstr "" -#: part/serializers.py:592 +#: part/serializers.py:636 msgid "Manufacturer part matching this MPN already exists" msgstr "" -#: part/serializers.py:599 +#: part/serializers.py:643 msgid "Supplier part matching this SKU already exists" msgstr "" -#: part/serializers.py:903 +#: part/serializers.py:955 msgid "Revisions" msgstr "" -#: part/serializers.py:908 +#: part/serializers.py:960 msgid "Unallocated Stock" msgstr "" -#: part/serializers.py:911 +#: part/serializers.py:963 msgid "Variant Stock" msgstr "" -#: part/serializers.py:941 part/templates/part/copy_part.html:9 +#: part/serializers.py:993 part/templates/part/copy_part.html:9 #: templates/js/translated/part.js:474 msgid "Duplicate Part" msgstr "" -#: part/serializers.py:942 +#: part/serializers.py:994 msgid "Copy initial data from another Part" msgstr "" -#: part/serializers.py:948 templates/js/translated/part.js:103 +#: part/serializers.py:1000 templates/js/translated/part.js:103 msgid "Initial Stock" msgstr "" -#: part/serializers.py:949 +#: part/serializers.py:1001 msgid "Create Part with initial stock quantity" msgstr "" -#: part/serializers.py:955 +#: part/serializers.py:1007 msgid "Supplier Information" msgstr "" -#: part/serializers.py:956 +#: part/serializers.py:1008 msgid "Add initial supplier information for this part" msgstr "" -#: part/serializers.py:964 +#: part/serializers.py:1016 msgid "Copy Category Parameters" msgstr "" -#: part/serializers.py:965 +#: part/serializers.py:1017 msgid "Copy parameter templates from selected part category" msgstr "" -#: part/serializers.py:970 +#: part/serializers.py:1022 msgid "Existing Image" msgstr "" -#: part/serializers.py:971 +#: part/serializers.py:1023 msgid "Filename of an existing part image" msgstr "" -#: part/serializers.py:988 +#: part/serializers.py:1040 msgid "Image file does not exist" msgstr "" -#: part/serializers.py:1194 +#: part/serializers.py:1247 msgid "Limit stocktake report to a particular part, and any variant parts" msgstr "" -#: part/serializers.py:1204 +#: part/serializers.py:1257 msgid "Limit stocktake report to a particular part category, and any child categories" msgstr "" -#: part/serializers.py:1214 +#: part/serializers.py:1267 msgid "Limit stocktake report to a particular stock location, and any child locations" msgstr "" -#: part/serializers.py:1220 +#: part/serializers.py:1273 msgid "Exclude External Stock" msgstr "" -#: part/serializers.py:1221 +#: part/serializers.py:1274 msgid "Exclude stock items in external locations" msgstr "" -#: part/serializers.py:1226 +#: part/serializers.py:1279 msgid "Generate Report" msgstr "" -#: part/serializers.py:1227 +#: part/serializers.py:1280 msgid "Generate report file containing calculated stocktake data" msgstr "" -#: part/serializers.py:1232 +#: part/serializers.py:1285 msgid "Update Parts" msgstr "" -#: part/serializers.py:1233 +#: part/serializers.py:1286 msgid "Update specified parts with calculated stocktake data" msgstr "" -#: part/serializers.py:1241 +#: part/serializers.py:1294 msgid "Stocktake functionality is not enabled" msgstr "" -#: part/serializers.py:1347 +#: part/serializers.py:1299 +msgid "Background worker check failed" +msgstr "" + +#: part/serializers.py:1401 msgid "Override calculated value for minimum price" msgstr "" -#: part/serializers.py:1354 +#: part/serializers.py:1408 msgid "Minimum price currency" msgstr "" -#: part/serializers.py:1362 +#: part/serializers.py:1416 msgid "Override calculated value for maximum price" msgstr "" -#: part/serializers.py:1369 +#: part/serializers.py:1423 msgid "Maximum price currency" msgstr "" -#: part/serializers.py:1398 +#: part/serializers.py:1452 msgid "Update" msgstr "" -#: part/serializers.py:1399 +#: part/serializers.py:1453 msgid "Update pricing for this part" msgstr "" -#: part/serializers.py:1422 +#: part/serializers.py:1476 #, python-brace-format msgid "Could not convert from provided currencies to {default_currency}" msgstr "" -#: part/serializers.py:1429 +#: part/serializers.py:1483 msgid "Minimum price must not be greater than maximum price" msgstr "" -#: part/serializers.py:1432 +#: part/serializers.py:1486 msgid "Maximum price must not be less than minimum price" msgstr "" -#: part/serializers.py:1576 +#: part/serializers.py:1634 msgid "Select the parent assembly" msgstr "" -#: part/serializers.py:1585 +#: part/serializers.py:1643 msgid "Component Name" msgstr "" -#: part/serializers.py:1588 +#: part/serializers.py:1646 msgid "Component IPN" msgstr "" -#: part/serializers.py:1591 +#: part/serializers.py:1649 msgid "Component Description" msgstr "" -#: part/serializers.py:1597 +#: part/serializers.py:1655 msgid "Select the component part" msgstr "" -#: part/serializers.py:1606 part/templates/part/part_base.html:235 +#: part/serializers.py:1664 part/templates/part/part_base.html:243 #: templates/js/translated/bom.js:1219 msgid "Can Build" msgstr "" -#: part/serializers.py:1837 +#: part/serializers.py:1899 msgid "Select part to copy BOM from" msgstr "" -#: part/serializers.py:1845 +#: part/serializers.py:1907 msgid "Remove Existing Data" msgstr "" -#: part/serializers.py:1846 +#: part/serializers.py:1908 msgid "Remove existing BOM items before copying" msgstr "" -#: part/serializers.py:1851 +#: part/serializers.py:1913 msgid "Include Inherited" msgstr "" -#: part/serializers.py:1852 +#: part/serializers.py:1914 msgid "Include BOM items which are inherited from templated parts" msgstr "" -#: part/serializers.py:1857 +#: part/serializers.py:1919 msgid "Skip Invalid Rows" msgstr "" -#: part/serializers.py:1858 +#: part/serializers.py:1920 msgid "Enable this option to skip invalid rows" msgstr "" -#: part/serializers.py:1863 +#: part/serializers.py:1925 msgid "Copy Substitute Parts" msgstr "" -#: part/serializers.py:1864 +#: part/serializers.py:1926 msgid "Copy substitute parts when duplicate BOM items" msgstr "" -#: part/serializers.py:1901 +#: part/serializers.py:1963 msgid "Clear Existing BOM" msgstr "" -#: part/serializers.py:1902 +#: part/serializers.py:1964 msgid "Delete existing BOM items before uploading" msgstr "" -#: part/serializers.py:1934 +#: part/serializers.py:1996 msgid "No part column specified" msgstr "" -#: part/serializers.py:1978 +#: part/serializers.py:2040 msgid "Multiple matching parts found" msgstr "" -#: part/serializers.py:1981 +#: part/serializers.py:2043 msgid "No matching part found" msgstr "" -#: part/serializers.py:1984 +#: part/serializers.py:2045 msgid "Part is not designated as a component" msgstr "" -#: part/serializers.py:1993 +#: part/serializers.py:2054 msgid "Quantity not provided" msgstr "" -#: part/serializers.py:2001 +#: part/serializers.py:2062 msgid "Invalid quantity" msgstr "" -#: part/serializers.py:2024 +#: part/serializers.py:2085 msgid "At least one BOM item is required" msgstr "" #: part/stocktake.py:224 templates/js/translated/part.js:1073 #: templates/js/translated/part.js:1828 templates/js/translated/part.js:1884 -#: templates/js/translated/purchase_order.js:2154 +#: templates/js/translated/purchase_order.js:2138 msgid "Total Quantity" msgstr "" @@ -7932,9 +8157,9 @@ msgid "Add stocktake information" msgstr "" #: part/templates/part/detail.html:67 part/templates/part/part_sidebar.html:50 -#: stock/admin.py:255 templates/InvenTree/settings/part_stocktake.html:30 +#: stock/admin.py:256 templates/InvenTree/settings/part_stocktake.html:30 #: templates/InvenTree/settings/sidebar.html:53 -#: templates/js/translated/stock.js:2301 users/models.py:204 +#: templates/js/translated/stock.js:2302 users/models.py:204 msgid "Stocktake" msgstr "" @@ -8093,142 +8318,146 @@ msgstr "" msgid "Part List" msgstr "" -#: part/templates/part/part_base.html:25 part/templates/part/part_base.html:29 +#: part/templates/part/part_base.html:26 part/templates/part/part_base.html:30 msgid "You are subscribed to notifications for this part" msgstr "" -#: part/templates/part/part_base.html:33 +#: part/templates/part/part_base.html:34 msgid "Subscribe to notifications for this part" msgstr "" -#: part/templates/part/part_base.html:52 +#: part/templates/part/part_base.html:53 #: stock/templates/stock/item_base.html:62 -#: stock/templates/stock/location.html:71 templates/js/translated/label.js:136 +#: stock/templates/stock/location.html:72 templates/js/translated/label.js:136 msgid "Print Label" msgstr "" -#: part/templates/part/part_base.html:58 +#: part/templates/part/part_base.html:59 msgid "Show pricing information" msgstr "" -#: part/templates/part/part_base.html:63 -#: stock/templates/stock/item_base.html:110 -#: stock/templates/stock/location.html:80 +#: part/templates/part/part_base.html:64 +#: stock/templates/stock/item_base.html:107 +#: stock/templates/stock/location.html:81 msgid "Stock actions" msgstr "" -#: part/templates/part/part_base.html:70 +#: part/templates/part/part_base.html:71 msgid "Count part stock" msgstr "" -#: part/templates/part/part_base.html:76 +#: part/templates/part/part_base.html:77 msgid "Transfer part stock" msgstr "" -#: part/templates/part/part_base.html:91 templates/js/translated/part.js:2299 +#: part/templates/part/part_base.html:92 templates/js/translated/part.js:2299 msgid "Part actions" msgstr "" -#: part/templates/part/part_base.html:94 +#: part/templates/part/part_base.html:95 msgid "Duplicate part" msgstr "" -#: part/templates/part/part_base.html:97 +#: part/templates/part/part_base.html:98 msgid "Edit part" msgstr "" -#: part/templates/part/part_base.html:100 +#: part/templates/part/part_base.html:101 msgid "Delete part" msgstr "" -#: part/templates/part/part_base.html:119 +#: part/templates/part/part_base.html:120 msgid "Part is a template part (variants can be made from this part)" msgstr "" -#: part/templates/part/part_base.html:123 +#: part/templates/part/part_base.html:124 msgid "Part can be assembled from other parts" msgstr "" -#: part/templates/part/part_base.html:127 +#: part/templates/part/part_base.html:128 msgid "Part can be used in assemblies" msgstr "" -#: part/templates/part/part_base.html:131 +#: part/templates/part/part_base.html:132 msgid "Part stock is tracked by serial number" msgstr "" -#: part/templates/part/part_base.html:135 +#: part/templates/part/part_base.html:136 msgid "Part can be purchased from external suppliers" msgstr "" -#: part/templates/part/part_base.html:139 +#: part/templates/part/part_base.html:140 msgid "Part can be sold to customers" msgstr "" -#: part/templates/part/part_base.html:145 +#: part/templates/part/part_base.html:146 msgid "Part is not active" msgstr "" -#: part/templates/part/part_base.html:153 +#: part/templates/part/part_base.html:154 msgid "Part is virtual (not a physical part)" msgstr "" -#: part/templates/part/part_base.html:163 -#: part/templates/part/part_base.html:690 +#: part/templates/part/part_base.html:164 +#: part/templates/part/part_base.html:698 msgid "Show Part Details" msgstr "" #: part/templates/part/part_base.html:218 -#: stock/templates/stock/item_base.html:388 +msgid "Required for Orders" +msgstr "" + +#: part/templates/part/part_base.html:226 +#: stock/templates/stock/item_base.html:385 msgid "Allocated to Build Orders" msgstr "" -#: part/templates/part/part_base.html:227 -#: stock/templates/stock/item_base.html:381 +#: part/templates/part/part_base.html:235 +#: stock/templates/stock/item_base.html:378 msgid "Allocated to Sales Orders" msgstr "" -#: part/templates/part/part_base.html:300 +#: part/templates/part/part_base.html:308 msgid "Minimum stock level" msgstr "" -#: part/templates/part/part_base.html:331 templates/js/translated/bom.js:1071 +#: part/templates/part/part_base.html:339 templates/js/translated/bom.js:1071 #: templates/js/translated/part.js:1271 templates/js/translated/part.js:2463 #: templates/js/translated/pricing.js:391 -#: templates/js/translated/pricing.js:1054 +#: templates/js/translated/pricing.js:1052 msgid "Price Range" msgstr "" -#: part/templates/part/part_base.html:361 +#: part/templates/part/part_base.html:369 msgid "Latest Serial Number" msgstr "" -#: part/templates/part/part_base.html:365 -#: stock/templates/stock/item_base.html:322 +#: part/templates/part/part_base.html:373 +#: stock/templates/stock/item_base.html:319 msgid "Search for serial number" msgstr "" -#: part/templates/part/part_base.html:453 +#: part/templates/part/part_base.html:461 msgid "Part QR Code" msgstr "" -#: part/templates/part/part_base.html:470 +#: part/templates/part/part_base.html:478 msgid "Link Barcode to Part" msgstr "" -#: part/templates/part/part_base.html:520 +#: part/templates/part/part_base.html:528 msgid "Calculate" msgstr "" -#: part/templates/part/part_base.html:537 +#: part/templates/part/part_base.html:545 msgid "Remove associated image from this part" msgstr "" -#: part/templates/part/part_base.html:588 +#: part/templates/part/part_base.html:596 msgid "No matching images found" msgstr "" -#: part/templates/part/part_base.html:684 +#: part/templates/part/part_base.html:692 msgid "Hide Part Details" msgstr "" @@ -8282,13 +8511,13 @@ msgid "Variants" msgstr "" #: part/templates/part/part_sidebar.html:14 -#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:21 +#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:22 #: stock/templates/stock/stock_app_base.html:10 #: templates/InvenTree/search.html:153 #: templates/InvenTree/settings/sidebar.html:51 #: templates/js/translated/part.js:1249 templates/js/translated/part.js:2152 #: templates/js/translated/part.js:2411 templates/js/translated/stock.js:1066 -#: templates/js/translated/stock.js:2155 templates/navbar.html:31 +#: templates/js/translated/stock.js:2156 templates/navbar.html:31 msgid "Stock" msgstr "" @@ -8324,17 +8553,17 @@ msgstr "" #: part/templates/part/prices.html:18 #: templates/InvenTree/settings/settings_staff_js.html:80 #: templates/InvenTree/settings/user.html:24 -#: templates/js/translated/helpers.js:103 +#: templates/js/translated/helpers.js:104 #: templates/js/translated/pricing.js:628 templates/notes_buttons.html:3 #: templates/notes_buttons.html:4 msgid "Edit" msgstr "" -#: part/templates/part/prices.html:28 stock/admin.py:251 -#: stock/templates/stock/item_base.html:446 -#: templates/js/translated/company.js:1703 -#: templates/js/translated/company.js:1713 -#: templates/js/translated/stock.js:2331 +#: part/templates/part/prices.html:28 stock/admin.py:252 +#: stock/templates/stock/item_base.html:443 +#: templates/js/translated/company.js:1704 +#: templates/js/translated/company.js:1714 +#: templates/js/translated/stock.js:2332 msgid "Last Updated" msgstr "" @@ -8406,7 +8635,7 @@ msgid "Update Pricing" msgstr "" #: part/templates/part/stock_count.html:7 -#: templates/js/translated/model_renderers.js:228 +#: templates/js/translated/model_renderers.js:231 #: templates/js/translated/part.js:707 templates/js/translated/part.js:2147 #: templates/js/translated/part.js:2149 msgid "No Stock" @@ -8486,7 +8715,7 @@ msgstr "" msgid "Part Pricing" msgstr "" -#: plugin/api.py:172 +#: plugin/api.py:175 msgid "Plugin cannot be deleted as it is currently active" msgstr "" @@ -8498,78 +8727,85 @@ msgstr "" msgid "No matching action found" msgstr "" -#: plugin/base/barcodes/api.py:125 plugin/base/barcodes/api.py:371 -#: plugin/base/barcodes/api.py:546 +#: plugin/base/barcodes/api.py:203 msgid "No match found for barcode data" msgstr "" -#: plugin/base/barcodes/api.py:129 +#: plugin/base/barcodes/api.py:207 msgid "Match found for barcode data" msgstr "" -#: plugin/base/barcodes/api.py:163 plugin/base/barcodes/serializers.py:45 +#: plugin/base/barcodes/api.py:245 plugin/base/barcodes/serializers.py:72 msgid "Model is not supported" msgstr "" -#: plugin/base/barcodes/api.py:168 +#: plugin/base/barcodes/api.py:250 msgid "Model instance not found" msgstr "" -#: plugin/base/barcodes/api.py:197 -#: templates/js/translated/purchase_order.js:1468 +#: plugin/base/barcodes/api.py:279 +#: templates/js/translated/purchase_order.js:1452 msgid "Barcode matches existing item" msgstr "" -#: plugin/base/barcodes/api.py:336 +#: plugin/base/barcodes/api.py:418 msgid "No matching part data found" msgstr "" -#: plugin/base/barcodes/api.py:353 +#: plugin/base/barcodes/api.py:434 msgid "No matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:357 +#: plugin/base/barcodes/api.py:437 msgid "Multiple matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:381 +#: plugin/base/barcodes/api.py:450 plugin/base/barcodes/api.py:664 +msgid "No matching plugin found for barcode data" +msgstr "" + +#: plugin/base/barcodes/api.py:460 msgid "Matched supplier part" msgstr "" -#: plugin/base/barcodes/api.py:430 +#: plugin/base/barcodes/api.py:525 msgid "Item has already been received" msgstr "" -#: plugin/base/barcodes/api.py:467 +#: plugin/base/barcodes/api.py:563 msgid "No match for supplier barcode" msgstr "" -#: plugin/base/barcodes/api.py:510 +#: plugin/base/barcodes/api.py:612 msgid "Multiple matching line items found" msgstr "" -#: plugin/base/barcodes/api.py:513 +#: plugin/base/barcodes/api.py:615 msgid "No matching line item found" msgstr "" -#: plugin/base/barcodes/api.py:551 plugin/base/barcodes/api.py:558 +#: plugin/base/barcodes/api.py:661 +msgid "No sales order provided" +msgstr "" + +#: plugin/base/barcodes/api.py:670 msgid "Barcode does not match an existing stock item" msgstr "" -#: plugin/base/barcodes/api.py:569 +#: plugin/base/barcodes/api.py:686 msgid "Stock item does not match line item" msgstr "" -#: plugin/base/barcodes/api.py:593 templates/js/translated/build.js:2780 -#: templates/js/translated/sales_order.js:1953 +#: plugin/base/barcodes/api.py:716 templates/js/translated/build.js:2798 +#: templates/js/translated/sales_order.js:1934 msgid "Insufficient stock available" msgstr "" -#: plugin/base/barcodes/api.py:602 +#: plugin/base/barcodes/api.py:729 msgid "Stock item allocated to sales order" msgstr "" -#: plugin/base/barcodes/api.py:606 +#: plugin/base/barcodes/api.py:732 msgid "Not enough information" msgstr "" @@ -8591,75 +8827,75 @@ msgstr "" msgid "Purchase order does not match supplier" msgstr "" -#: plugin/base/barcodes/mixins.py:465 +#: plugin/base/barcodes/mixins.py:467 msgid "Failed to find pending line item for supplier part" msgstr "" -#: plugin/base/barcodes/mixins.py:496 +#: plugin/base/barcodes/mixins.py:498 msgid "Further information required to receive line item" msgstr "" -#: plugin/base/barcodes/mixins.py:504 +#: plugin/base/barcodes/mixins.py:506 msgid "Received purchase order line item" msgstr "" -#: plugin/base/barcodes/serializers.py:21 +#: plugin/base/barcodes/serializers.py:48 msgid "Scanned barcode data" msgstr "" -#: plugin/base/barcodes/serializers.py:30 +#: plugin/base/barcodes/serializers.py:57 msgid "Model name to generate barcode for" msgstr "" -#: plugin/base/barcodes/serializers.py:35 +#: plugin/base/barcodes/serializers.py:62 msgid "Primary key of model object to generate barcode for" msgstr "" -#: plugin/base/barcodes/serializers.py:105 +#: plugin/base/barcodes/serializers.py:132 msgid "Purchase Order to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:111 +#: plugin/base/barcodes/serializers.py:138 msgid "Purchase order is not pending" msgstr "" -#: plugin/base/barcodes/serializers.py:129 +#: plugin/base/barcodes/serializers.py:156 msgid "PurchaseOrder to receive items against" msgstr "" -#: plugin/base/barcodes/serializers.py:135 +#: plugin/base/barcodes/serializers.py:162 msgid "Purchase order has not been placed" msgstr "" -#: plugin/base/barcodes/serializers.py:143 +#: plugin/base/barcodes/serializers.py:170 msgid "Location to receive items into" msgstr "" -#: plugin/base/barcodes/serializers.py:149 +#: plugin/base/barcodes/serializers.py:176 msgid "Cannot select a structural location" msgstr "" -#: plugin/base/barcodes/serializers.py:163 +#: plugin/base/barcodes/serializers.py:190 msgid "Sales Order to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:169 +#: plugin/base/barcodes/serializers.py:196 msgid "Sales order is not pending" msgstr "" -#: plugin/base/barcodes/serializers.py:177 +#: plugin/base/barcodes/serializers.py:204 msgid "Sales order line item to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:184 +#: plugin/base/barcodes/serializers.py:211 msgid "Sales order shipment to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:190 +#: plugin/base/barcodes/serializers.py:217 msgid "Shipment has already been delivered" msgstr "" -#: plugin/base/barcodes/serializers.py:195 +#: plugin/base/barcodes/serializers.py:222 msgid "Quantity to allocate" msgstr "" @@ -8679,6 +8915,42 @@ msgstr "" msgid "No items provided to print" msgstr "" +#: plugin/base/ui/serializers.py:30 +msgid "Plugin Name" +msgstr "" + +#: plugin/base/ui/serializers.py:34 +msgid "Feature Type" +msgstr "" + +#: plugin/base/ui/serializers.py:39 +msgid "Feature Label" +msgstr "" + +#: plugin/base/ui/serializers.py:44 +msgid "Feature Title" +msgstr "" + +#: plugin/base/ui/serializers.py:49 +msgid "Feature Description" +msgstr "" + +#: plugin/base/ui/serializers.py:54 +msgid "Feature Icon" +msgstr "" + +#: plugin/base/ui/serializers.py:58 +msgid "Feature Options" +msgstr "" + +#: plugin/base/ui/serializers.py:61 +msgid "Feature Context" +msgstr "" + +#: plugin/base/ui/serializers.py:64 +msgid "Feature Source (javascript)" +msgstr "" + #: plugin/builtin/barcodes/inventree_barcode.py:27 msgid "InvenTree Barcodes" msgstr "" @@ -8756,7 +9028,7 @@ msgstr "" msgid "URL that is used to send messages to a slack channel" msgstr "" -#: plugin/builtin/integration/core_notifications.py:164 +#: plugin/builtin/integration/core_notifications.py:166 msgid "Open link" msgstr "" @@ -8794,11 +9066,11 @@ msgstr "" msgid "Provides support for printing using a machine" msgstr "" -#: plugin/builtin/labels/inventree_machine.py:149 +#: plugin/builtin/labels/inventree_machine.py:151 msgid "last used" msgstr "" -#: plugin/builtin/labels/inventree_machine.py:166 +#: plugin/builtin/labels/inventree_machine.py:168 msgid "Options" msgstr "" @@ -8822,7 +9094,7 @@ msgstr "" msgid "Print a border around each label" msgstr "" -#: plugin/builtin/labels/label_sheet.py:47 report/models.py:307 +#: plugin/builtin/labels/label_sheet.py:47 report/models.py:315 msgid "Landscape" msgstr "" @@ -8894,19 +9166,19 @@ msgstr "" msgid "The Supplier which acts as 'TME'" msgstr "" -#: plugin/installer.py:194 plugin/installer.py:282 +#: plugin/installer.py:199 plugin/installer.py:282 msgid "Only staff users can administer plugins" msgstr "" -#: plugin/installer.py:197 +#: plugin/installer.py:202 msgid "Plugin installation is disabled" msgstr "" -#: plugin/installer.py:248 +#: plugin/installer.py:246 msgid "Installed plugin successfully" msgstr "" -#: plugin/installer.py:254 +#: plugin/installer.py:251 #, python-brace-format msgid "Installed plugin into {path}" msgstr "" @@ -8943,10 +9215,6 @@ msgstr "" msgid "Plugin Configurations" msgstr "" -#: plugin/models.py:43 users/models.py:100 -msgid "Key" -msgstr "" - #: plugin/models.py:44 msgid "Key of plugin" msgstr "" @@ -8955,7 +9223,7 @@ msgstr "" msgid "PluginName of the plugin" msgstr "" -#: plugin/models.py:59 plugin/serializers.py:90 +#: plugin/models.py:59 plugin/serializers.py:115 msgid "Package Name" msgstr "" @@ -8984,17 +9252,17 @@ msgstr "" msgid "Package Plugin" msgstr "" -#: plugin/models.py:220 report/models.py:474 +#: plugin/models.py:259 report/models.py:482 #: templates/InvenTree/settings/plugin_settings.html:9 #: templates/js/translated/plugin.js:51 msgid "Plugin" msgstr "" -#: plugin/models.py:267 +#: plugin/models.py:306 msgid "Method" msgstr "" -#: plugin/plugin.py:270 +#: plugin/plugin.py:275 msgid "No author found" msgstr "" @@ -9053,81 +9321,157 @@ msgstr "" msgid "InvenTree Contributors" msgstr "" -#: plugin/serializers.py:81 -msgid "Source URL" +#: plugin/samples/integration/user_interface_sample.py:27 +msgid "Enable Part Panels" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:28 +msgid "Enable custom panels for Part views" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:33 +msgid "Enable Purchase Order Panels" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:34 +msgid "Enable custom panels for Purchase Order views" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:39 +msgid "Enable Broken Panels" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:40 +msgid "Enable broken panels for testing" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:45 +msgid "Enable Dynamic Panel" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:46 +msgid "Enable dynamic panels for testing" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:98 +msgid "Part Panel" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:131 +msgid "Broken Dashboard Item" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:133 +msgid "This is a broken dashboard item - it will not render!" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:139 +msgid "Sample Dashboard Item" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:141 +msgid "This is a sample dashboard item. It renders a simple string of HTML content." +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:147 +msgid "Context Dashboard Item" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:161 +msgid "Admin Dashboard Item" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:162 +msgid "This is an admin-only dashboard item." +msgstr "" + +#: plugin/serializers.py:82 +msgid "Source File" msgstr "" #: plugin/serializers.py:83 +msgid "Path to the source file for admin integration" +msgstr "" + +#: plugin/serializers.py:90 +msgid "Optional context data for the admin integration" +msgstr "" + +#: plugin/serializers.py:106 +msgid "Source URL" +msgstr "" + +#: plugin/serializers.py:108 msgid "Source for the package - this can be a custom registry or a VCS path" msgstr "" -#: plugin/serializers.py:92 +#: plugin/serializers.py:117 msgid "Name for the Plugin Package - can also contain a version indicator" msgstr "" -#: plugin/serializers.py:99 +#: plugin/serializers.py:124 #: templates/InvenTree/settings/plugin_settings.html:42 #: templates/js/translated/plugin.js:86 msgid "Version" msgstr "" -#: plugin/serializers.py:101 +#: plugin/serializers.py:126 msgid "Version specifier for the plugin. Leave blank for latest version." msgstr "" -#: plugin/serializers.py:106 +#: plugin/serializers.py:131 msgid "Confirm plugin installation" msgstr "" -#: plugin/serializers.py:108 +#: plugin/serializers.py:133 msgid "This will install this plugin now into the current instance. The instance will go into maintenance." msgstr "" -#: plugin/serializers.py:121 +#: plugin/serializers.py:146 msgid "Installation not confirmed" msgstr "" -#: plugin/serializers.py:123 +#: plugin/serializers.py:148 msgid "Either packagename of URL must be provided" msgstr "" -#: plugin/serializers.py:161 +#: plugin/serializers.py:184 msgid "Full reload" msgstr "" -#: plugin/serializers.py:162 +#: plugin/serializers.py:185 msgid "Perform a full reload of the plugin registry" msgstr "" -#: plugin/serializers.py:168 +#: plugin/serializers.py:191 msgid "Force reload" msgstr "" -#: plugin/serializers.py:170 +#: plugin/serializers.py:193 msgid "Force a reload of the plugin registry, even if it is already loaded" msgstr "" -#: plugin/serializers.py:177 +#: plugin/serializers.py:200 msgid "Collect plugins" msgstr "" -#: plugin/serializers.py:178 +#: plugin/serializers.py:201 msgid "Collect plugins and add them to the registry" msgstr "" -#: plugin/serializers.py:205 +#: plugin/serializers.py:228 msgid "Activate Plugin" msgstr "" -#: plugin/serializers.py:206 +#: plugin/serializers.py:229 msgid "Activate this plugin" msgstr "" -#: plugin/serializers.py:226 +#: plugin/serializers.py:249 msgid "Delete configuration" msgstr "" -#: plugin/serializers.py:227 +#: plugin/serializers.py:250 msgid "Delete the plugin configuration from the database" msgstr "" @@ -9135,11 +9479,11 @@ msgstr "" msgid "No valid objects provided to template" msgstr "" -#: report/api.py:103 report/models.py:438 report/serializers.py:98 -#: report/serializers.py:148 templates/js/translated/purchase_order.js:1817 +#: report/api.py:103 report/models.py:446 report/serializers.py:99 +#: report/serializers.py:149 templates/js/translated/purchase_order.js:1801 #: templates/js/translated/return_order.js:353 -#: templates/js/translated/sales_order.js:887 -#: templates/js/translated/sales_order.js:1047 +#: templates/js/translated/sales_order.js:846 +#: templates/js/translated/sales_order.js:1020 msgid "Items" msgstr "" @@ -9167,7 +9511,11 @@ msgstr "" msgid "Error printing label" msgstr "" -#: report/api.py:375 report/api.py:411 +#: report/api.py:358 +msgid "Report saved at time of printing" +msgstr "" + +#: report/api.py:384 report/api.py:420 #, python-brace-format msgid "Template file '{template}' is missing or does not exist" msgstr "" @@ -9204,135 +9552,143 @@ msgstr "" msgid "Revision number (auto-increments)" msgstr "" -#: report/models.py:202 +#: report/models.py:168 +msgid "Attach to Model on Print" +msgstr "" + +#: report/models.py:170 +msgid "Save report output as an attachment against linked model instance when printing" +msgstr "" + +#: report/models.py:210 msgid "Filename Pattern" msgstr "" -#: report/models.py:203 +#: report/models.py:211 msgid "Pattern for generating filenames" msgstr "" -#: report/models.py:208 +#: report/models.py:216 msgid "Template is enabled" msgstr "" -#: report/models.py:214 +#: report/models.py:222 msgid "Target model type for template" msgstr "" -#: report/models.py:234 +#: report/models.py:242 msgid "Filters" msgstr "" -#: report/models.py:235 +#: report/models.py:243 msgid "Template query filters (comma-separated list of key=value pairs)" msgstr "" -#: report/models.py:294 report/models.py:361 +#: report/models.py:302 report/models.py:369 msgid "Template file" msgstr "" -#: report/models.py:302 +#: report/models.py:310 msgid "Page size for PDF reports" msgstr "" -#: report/models.py:308 +#: report/models.py:316 msgid "Render report in landscape orientation" msgstr "" -#: report/models.py:367 +#: report/models.py:375 msgid "Width [mm]" msgstr "" -#: report/models.py:368 +#: report/models.py:376 msgid "Label width, specified in mm" msgstr "" -#: report/models.py:374 +#: report/models.py:382 msgid "Height [mm]" msgstr "" -#: report/models.py:375 +#: report/models.py:383 msgid "Label height, specified in mm" msgstr "" -#: report/models.py:438 +#: report/models.py:446 msgid "Number of items to process" msgstr "" -#: report/models.py:444 +#: report/models.py:452 msgid "Report generation is complete" msgstr "" -#: report/models.py:448 templates/js/translated/build.js:2349 +#: report/models.py:456 templates/js/translated/build.js:2352 msgid "Progress" msgstr "" -#: report/models.py:448 +#: report/models.py:456 msgid "Report generation progress" msgstr "" -#: report/models.py:456 +#: report/models.py:464 msgid "Report Template" msgstr "" -#: report/models.py:463 report/models.py:486 +#: report/models.py:471 report/models.py:494 msgid "Output File" msgstr "" -#: report/models.py:464 report/models.py:487 +#: report/models.py:472 report/models.py:495 msgid "Generated output file" msgstr "" -#: report/models.py:475 +#: report/models.py:483 msgid "Label output plugin" msgstr "" -#: report/models.py:479 +#: report/models.py:487 msgid "Label Template" msgstr "" -#: report/models.py:502 +#: report/models.py:510 msgid "Snippet" msgstr "" -#: report/models.py:503 +#: report/models.py:511 msgid "Report snippet file" msgstr "" -#: report/models.py:510 +#: report/models.py:518 msgid "Snippet file description" msgstr "" -#: report/models.py:528 +#: report/models.py:536 msgid "Asset" msgstr "" -#: report/models.py:529 +#: report/models.py:537 msgid "Report asset file" msgstr "" -#: report/models.py:536 +#: report/models.py:544 msgid "Asset file description" msgstr "" -#: report/serializers.py:91 +#: report/serializers.py:92 msgid "Select report template" msgstr "" -#: report/serializers.py:99 report/serializers.py:149 +#: report/serializers.py:100 report/serializers.py:150 msgid "List of item primary keys to include in the report" msgstr "" -#: report/serializers.py:132 +#: report/serializers.py:133 msgid "Select label template" msgstr "" -#: report/serializers.py:140 +#: report/serializers.py:141 msgid "Printing Plugin" msgstr "" -#: report/serializers.py:141 +#: report/serializers.py:142 msgid "Select plugin to use for label printing" msgstr "" @@ -9365,9 +9721,9 @@ msgstr "" #: report/templates/report/inventree_sales_order_report.html:30 #: templates/js/translated/order.js:341 templates/js/translated/pricing.js:527 #: templates/js/translated/pricing.js:596 -#: templates/js/translated/pricing.js:834 -#: templates/js/translated/purchase_order.js:2185 -#: templates/js/translated/sales_order.js:1873 +#: templates/js/translated/pricing.js:832 +#: templates/js/translated/purchase_order.js:2169 +#: templates/js/translated/sales_order.js:1854 msgid "Unit Price" msgstr "" @@ -9379,13 +9735,18 @@ msgstr "" #: report/templates/report/inventree_purchase_order_report.html:72 #: report/templates/report/inventree_sales_order_report.html:72 -#: templates/js/translated/purchase_order.js:2087 -#: templates/js/translated/sales_order.js:1842 +#: templates/js/translated/purchase_order.js:2071 +#: templates/js/translated/sales_order.js:1823 #: templates/test_statistics_table.html:8 #: templates/test_statistics_table.html:19 msgid "Total" msgstr "" +#: report/templates/report/inventree_sales_order_shipment_report.html:23 +#: stock/templates/stock/stock_sidebar.html:8 +msgid "Allocations" +msgstr "" + #: report/templates/report/inventree_stock_location_report.html:97 msgid "Stock location items" msgstr "" @@ -9403,15 +9764,13 @@ msgstr "" msgid "Test" msgstr "" -#: report/templates/report/inventree_test_report.html:103 stock/models.py:2544 -msgid "Result" -msgstr "" - #: report/templates/report/inventree_test_report.html:129 +#: templates/js/translated/stock.js:1448 msgid "Pass" msgstr "" #: report/templates/report/inventree_test_report.html:131 +#: templates/js/translated/stock.js:1450 msgid "Fail" msgstr "" @@ -9420,17 +9779,18 @@ msgid "No result (required)" msgstr "" #: report/templates/report/inventree_test_report.html:140 +#: templates/js/translated/stock.js:1455 msgid "No result" msgstr "" #: report/templates/report/inventree_test_report.html:153 -#: stock/serializers.py:599 stock/templates/stock/stock_sidebar.html:16 +#: stock/serializers.py:626 stock/templates/stock/stock_sidebar.html:16 msgid "Installed Items" msgstr "" -#: report/templates/report/inventree_test_report.html:167 stock/admin.py:161 +#: report/templates/report/inventree_test_report.html:167 stock/admin.py:162 #: templates/js/translated/stock.js:706 templates/js/translated/stock.js:877 -#: templates/js/translated/stock.js:3194 +#: templates/js/translated/stock.js:3195 msgid "Serial" msgstr "" @@ -9450,67 +9810,67 @@ msgstr "" msgid "company_image tag requires a Company instance" msgstr "" -#: stock/admin.py:51 stock/admin.py:171 +#: stock/admin.py:51 stock/admin.py:172 msgid "Location ID" msgstr "" -#: stock/admin.py:63 stock/templates/stock/location.html:128 -#: stock/templates/stock/location.html:134 +#: stock/admin.py:63 stock/templates/stock/location.html:129 +#: stock/templates/stock/location.html:135 msgid "Location Path" msgstr "" -#: stock/admin.py:148 +#: stock/admin.py:149 msgid "Stock Item ID" msgstr "" -#: stock/admin.py:167 +#: stock/admin.py:168 msgid "Status Code" msgstr "" -#: stock/admin.py:179 +#: stock/admin.py:180 msgid "Supplier Part ID" msgstr "" -#: stock/admin.py:184 +#: stock/admin.py:185 msgid "Supplier Part SKU" msgstr "" -#: stock/admin.py:189 +#: stock/admin.py:190 msgid "Supplier ID" msgstr "" -#: stock/admin.py:200 +#: stock/admin.py:201 msgid "Customer ID" msgstr "" -#: stock/admin.py:205 stock/models.py:825 -#: stock/templates/stock/item_base.html:354 +#: stock/admin.py:206 stock/models.py:902 +#: stock/templates/stock/item_base.html:351 msgid "Installed In" msgstr "" -#: stock/admin.py:210 +#: stock/admin.py:211 msgid "Build ID" msgstr "" -#: stock/admin.py:220 +#: stock/admin.py:221 msgid "Sales Order ID" msgstr "" -#: stock/admin.py:225 +#: stock/admin.py:226 msgid "Purchase Order ID" msgstr "" -#: stock/admin.py:240 +#: stock/admin.py:241 msgid "Review Needed" msgstr "" -#: stock/admin.py:245 +#: stock/admin.py:246 msgid "Delete on Deplete" msgstr "" -#: stock/admin.py:260 stock/models.py:919 -#: stock/templates/stock/item_base.html:433 -#: templates/js/translated/stock.js:2315 users/models.py:124 +#: stock/admin.py:261 stock/models.py:996 +#: stock/templates/stock/item_base.html:430 +#: templates/js/translated/stock.js:2316 users/models.py:124 msgid "Expiry Date" msgstr "" @@ -9526,11 +9886,11 @@ msgstr "" msgid "Include sub-locations in filtered results" msgstr "" -#: stock/api.py:367 stock/serializers.py:1186 +#: stock/api.py:366 stock/serializers.py:1217 msgid "Parent Location" msgstr "" -#: stock/api.py:368 +#: stock/api.py:367 msgid "Filter by parent location" msgstr "" @@ -9550,8 +9910,8 @@ msgstr "" msgid "Expiry date after" msgstr "" -#: stock/api.py:840 stock/serializers.py:604 -#: stock/templates/stock/item_base.html:439 +#: stock/api.py:840 stock/serializers.py:631 +#: stock/templates/stock/item_base.html:436 #: templates/js/translated/table_filters.js:448 msgid "Stale" msgstr "" @@ -9560,594 +9920,598 @@ msgstr "" msgid "Quantity is required" msgstr "" -#: stock/api.py:933 +#: stock/api.py:932 msgid "Valid part must be supplied" msgstr "" -#: stock/api.py:964 +#: stock/api.py:959 msgid "The given supplier part does not exist" msgstr "" -#: stock/api.py:974 +#: stock/api.py:969 msgid "The supplier part has a pack size defined, but flag use_pack_size not set" msgstr "" -#: stock/api.py:1005 +#: stock/api.py:996 msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "" -#: stock/models.py:64 +#: stock/models.py:70 msgid "Stock Location type" msgstr "" -#: stock/models.py:65 +#: stock/models.py:71 msgid "Stock Location types" msgstr "" -#: stock/models.py:91 +#: stock/models.py:97 msgid "Default icon for all locations that have no icon set (optional)" msgstr "" -#: stock/models.py:131 stock/models.py:807 -#: stock/templates/stock/location.html:17 +#: stock/models.py:137 stock/models.py:884 +#: stock/templates/stock/location.html:18 #: stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "" -#: stock/models.py:132 stock/templates/stock/location.html:183 +#: stock/models.py:138 stock/templates/stock/location.html:184 #: templates/InvenTree/search.html:166 templates/js/translated/search.js:178 #: users/models.py:205 msgid "Stock Locations" msgstr "" -#: stock/models.py:180 stock/models.py:968 -#: stock/templates/stock/item_base.html:247 +#: stock/models.py:186 stock/models.py:1045 +#: stock/templates/stock/item_base.html:244 msgid "Owner" msgstr "" -#: stock/models.py:181 stock/models.py:969 +#: stock/models.py:187 stock/models.py:1046 msgid "Select Owner" msgstr "" -#: stock/models.py:189 +#: stock/models.py:195 msgid "Stock items may not be directly located into a structural stock locations, but may be located to child locations." msgstr "" -#: stock/models.py:196 templates/js/translated/stock.js:2865 +#: stock/models.py:202 templates/js/translated/stock.js:2866 #: templates/js/translated/table_filters.js:250 msgid "External" msgstr "" -#: stock/models.py:197 +#: stock/models.py:203 msgid "This is an external stock location" msgstr "" -#: stock/models.py:203 templates/js/translated/stock.js:2874 +#: stock/models.py:209 templates/js/translated/stock.js:2875 #: templates/js/translated/table_filters.js:253 msgid "Location type" msgstr "" -#: stock/models.py:207 +#: stock/models.py:213 msgid "Stock location type of this location" msgstr "" -#: stock/models.py:279 +#: stock/models.py:285 msgid "You cannot make this stock location structural because some stock items are already located into it!" msgstr "" -#: stock/models.py:664 +#: stock/models.py:492 +msgid "Part must be specified" +msgstr "" + +#: stock/models.py:741 msgid "Stock items cannot be located into structural stock locations!" msgstr "" -#: stock/models.py:691 stock/serializers.py:480 +#: stock/models.py:768 stock/serializers.py:492 msgid "Stock item cannot be created for virtual parts" msgstr "" -#: stock/models.py:708 +#: stock/models.py:785 #, python-brace-format msgid "Part type ('{self.supplier_part.part}') must be {self.part}" msgstr "" -#: stock/models.py:718 stock/models.py:731 +#: stock/models.py:795 stock/models.py:808 msgid "Quantity must be 1 for item with a serial number" msgstr "" -#: stock/models.py:721 +#: stock/models.py:798 msgid "Serial number cannot be set if quantity greater than 1" msgstr "" -#: stock/models.py:743 +#: stock/models.py:820 msgid "Item cannot belong to itself" msgstr "" -#: stock/models.py:748 +#: stock/models.py:825 msgid "Item must have a build reference if is_building=True" msgstr "" -#: stock/models.py:761 +#: stock/models.py:838 msgid "Build reference does not point to the same part object" msgstr "" -#: stock/models.py:777 +#: stock/models.py:854 msgid "Parent Stock Item" msgstr "" -#: stock/models.py:789 +#: stock/models.py:866 msgid "Base part" msgstr "" -#: stock/models.py:799 +#: stock/models.py:876 msgid "Select a matching supplier part for this stock item" msgstr "" -#: stock/models.py:811 +#: stock/models.py:888 msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:819 stock/serializers.py:1580 +#: stock/models.py:896 stock/serializers.py:1611 msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:830 +#: stock/models.py:907 msgid "Is this item installed in another item?" msgstr "" -#: stock/models.py:849 +#: stock/models.py:926 msgid "Serial number for this item" msgstr "" -#: stock/models.py:863 stock/serializers.py:1563 +#: stock/models.py:940 stock/serializers.py:1594 msgid "Batch code for this stock item" msgstr "" -#: stock/models.py:868 +#: stock/models.py:945 msgid "Stock Quantity" msgstr "" -#: stock/models.py:878 +#: stock/models.py:955 msgid "Source Build" msgstr "" -#: stock/models.py:881 +#: stock/models.py:958 msgid "Build for this stock item" msgstr "" -#: stock/models.py:888 stock/templates/stock/item_base.html:363 +#: stock/models.py:965 stock/templates/stock/item_base.html:360 msgid "Consumed By" msgstr "" -#: stock/models.py:891 +#: stock/models.py:968 msgid "Build order which consumed this stock item" msgstr "" -#: stock/models.py:900 +#: stock/models.py:977 msgid "Source Purchase Order" msgstr "" -#: stock/models.py:904 +#: stock/models.py:981 msgid "Purchase order for this stock item" msgstr "" -#: stock/models.py:910 +#: stock/models.py:987 msgid "Destination Sales Order" msgstr "" -#: stock/models.py:921 +#: stock/models.py:998 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "" -#: stock/models.py:939 +#: stock/models.py:1016 msgid "Delete on deplete" msgstr "" -#: stock/models.py:940 +#: stock/models.py:1017 msgid "Delete this Stock Item when stock is depleted" msgstr "" -#: stock/models.py:960 +#: stock/models.py:1037 msgid "Single unit purchase price at time of purchase" msgstr "" -#: stock/models.py:991 +#: stock/models.py:1068 msgid "Converted to part" msgstr "" -#: stock/models.py:1511 +#: stock/models.py:1600 msgid "Part is not set as trackable" msgstr "" -#: stock/models.py:1517 +#: stock/models.py:1606 msgid "Quantity must be integer" msgstr "" -#: stock/models.py:1525 +#: stock/models.py:1614 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({self.quantity})" msgstr "" -#: stock/models.py:1531 -msgid "Serial numbers must be a list of integers" +#: stock/models.py:1620 +msgid "Serial numbers must be provided as a list" msgstr "" -#: stock/models.py:1536 +#: stock/models.py:1625 msgid "Quantity does not match serial numbers" msgstr "" -#: stock/models.py:1544 stock/serializers.py:726 -msgid "Serial numbers already exist" -msgstr "" - -#: stock/models.py:1641 +#: stock/models.py:1747 stock/models.py:2563 msgid "Test template does not exist" msgstr "" -#: stock/models.py:1659 +#: stock/models.py:1765 msgid "Stock item has been assigned to a sales order" msgstr "" -#: stock/models.py:1663 +#: stock/models.py:1769 msgid "Stock item is installed in another item" msgstr "" -#: stock/models.py:1666 +#: stock/models.py:1772 msgid "Stock item contains other items" msgstr "" -#: stock/models.py:1669 +#: stock/models.py:1775 msgid "Stock item has been assigned to a customer" msgstr "" -#: stock/models.py:1672 +#: stock/models.py:1778 msgid "Stock item is currently in production" msgstr "" -#: stock/models.py:1675 +#: stock/models.py:1781 msgid "Serialized stock cannot be merged" msgstr "" -#: stock/models.py:1682 stock/serializers.py:1469 +#: stock/models.py:1788 stock/serializers.py:1500 msgid "Duplicate stock items" msgstr "" -#: stock/models.py:1686 +#: stock/models.py:1792 msgid "Stock items must refer to the same part" msgstr "" -#: stock/models.py:1694 +#: stock/models.py:1800 msgid "Stock items must refer to the same supplier part" msgstr "" -#: stock/models.py:1699 +#: stock/models.py:1805 msgid "Stock status codes must match" msgstr "" -#: stock/models.py:1960 +#: stock/models.py:2066 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:2343 +#: stock/models.py:2462 msgid "Stock Item Tracking" msgstr "" -#: stock/models.py:2376 +#: stock/models.py:2495 msgid "Entry notes" msgstr "" -#: stock/models.py:2416 +#: stock/models.py:2535 msgid "Stock Item Test Result" msgstr "" -#: stock/models.py:2449 +#: stock/models.py:2566 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:2454 +#: stock/models.py:2570 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:2459 +#: stock/models.py:2575 msgid "Invalid value for this test" msgstr "" -#: stock/models.py:2544 +#: stock/models.py:2660 msgid "Test result" msgstr "" -#: stock/models.py:2551 +#: stock/models.py:2667 msgid "Test output value" msgstr "" -#: stock/models.py:2559 +#: stock/models.py:2675 stock/serializers.py:245 msgid "Test result attachment" msgstr "" -#: stock/models.py:2563 +#: stock/models.py:2679 msgid "Test notes" msgstr "" -#: stock/models.py:2571 templates/js/translated/stock.js:1633 +#: stock/models.py:2687 templates/js/translated/stock.js:1633 msgid "Test station" msgstr "" -#: stock/models.py:2572 +#: stock/models.py:2688 msgid "The identifier of the test station where the test was performed" msgstr "" -#: stock/models.py:2578 +#: stock/models.py:2694 msgid "Started" msgstr "" -#: stock/models.py:2579 +#: stock/models.py:2695 msgid "The timestamp of the test start" msgstr "" -#: stock/models.py:2585 +#: stock/models.py:2701 msgid "Finished" msgstr "" -#: stock/models.py:2586 +#: stock/models.py:2702 msgid "The timestamp of the test finish" msgstr "" -#: stock/serializers.py:76 +#: stock/serializers.py:77 msgid "Generated batch code" msgstr "" -#: stock/serializers.py:85 +#: stock/serializers.py:86 msgid "Select build order" msgstr "" -#: stock/serializers.py:94 +#: stock/serializers.py:95 msgid "Select stock item to generate batch code for" msgstr "" -#: stock/serializers.py:103 +#: stock/serializers.py:104 msgid "Select location to generate batch code for" msgstr "" -#: stock/serializers.py:112 +#: stock/serializers.py:113 msgid "Select part to generate batch code for" msgstr "" -#: stock/serializers.py:121 +#: stock/serializers.py:122 msgid "Select purchase order" msgstr "" -#: stock/serializers.py:128 +#: stock/serializers.py:129 msgid "Enter quantity for batch code" msgstr "" -#: stock/serializers.py:151 +#: stock/serializers.py:152 msgid "Generated serial number" msgstr "" -#: stock/serializers.py:160 +#: stock/serializers.py:161 msgid "Select part to generate serial number for" msgstr "" -#: stock/serializers.py:168 +#: stock/serializers.py:169 msgid "Quantity of serial numbers to generate" msgstr "" -#: stock/serializers.py:233 +#: stock/serializers.py:234 msgid "Test template for this result" msgstr "" -#: stock/serializers.py:254 +#: stock/serializers.py:258 msgid "Template ID or test name must be provided" msgstr "" -#: stock/serializers.py:286 +#: stock/serializers.py:290 msgid "The test finished time cannot be earlier than the test started time" msgstr "" -#: stock/serializers.py:323 +#: stock/serializers.py:327 msgid "Serial number is too large" msgstr "" -#: stock/serializers.py:452 stock/templates/stock/item_base.html:193 +#: stock/serializers.py:462 stock/templates/stock/item_base.html:190 msgid "Parent Item" msgstr "" -#: stock/serializers.py:453 +#: stock/serializers.py:463 msgid "Parent stock item" msgstr "" -#: stock/serializers.py:472 +#: stock/serializers.py:484 msgid "Use pack size when adding: the quantity defined is the number of packs" msgstr "" -#: stock/serializers.py:596 stock/templates/stock/item_base.html:437 +#: stock/serializers.py:623 stock/templates/stock/item_base.html:434 #: templates/js/translated/table_filters.js:442 users/models.py:174 msgid "Expired" msgstr "" -#: stock/serializers.py:602 stock/templates/stock/stock_sidebar.html:20 +#: stock/serializers.py:629 stock/templates/stock/stock_sidebar.html:20 msgid "Child Items" msgstr "" -#: stock/serializers.py:606 +#: stock/serializers.py:633 msgid "Tracking Items" msgstr "" -#: stock/serializers.py:612 +#: stock/serializers.py:639 msgid "Purchase price of this stock item, per unit or pack" msgstr "" -#: stock/serializers.py:631 +#: stock/serializers.py:658 msgid "Minimum Pricing" msgstr "" -#: stock/serializers.py:637 +#: stock/serializers.py:664 msgid "Maximum Pricing" msgstr "" -#: stock/serializers.py:661 +#: stock/serializers.py:688 msgid "Enter number of stock items to serialize" msgstr "" -#: stock/serializers.py:674 +#: stock/serializers.py:701 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({q})" msgstr "" -#: stock/serializers.py:681 +#: stock/serializers.py:708 msgid "Enter serial numbers for new items" msgstr "" -#: stock/serializers.py:692 stock/serializers.py:1426 stock/serializers.py:1682 +#: stock/serializers.py:719 stock/serializers.py:1457 stock/serializers.py:1713 msgid "Destination stock location" msgstr "" -#: stock/serializers.py:699 +#: stock/serializers.py:726 msgid "Optional note field" msgstr "" -#: stock/serializers.py:709 +#: stock/serializers.py:736 msgid "Serial numbers cannot be assigned to this part" msgstr "" -#: stock/serializers.py:764 +#: stock/serializers.py:756 +msgid "Serial numbers already exist" +msgstr "" + +#: stock/serializers.py:795 msgid "Select stock item to install" msgstr "" -#: stock/serializers.py:771 +#: stock/serializers.py:802 msgid "Quantity to Install" msgstr "" -#: stock/serializers.py:772 +#: stock/serializers.py:803 msgid "Enter the quantity of items to install" msgstr "" -#: stock/serializers.py:777 stock/serializers.py:857 stock/serializers.py:983 -#: stock/serializers.py:1033 +#: stock/serializers.py:808 stock/serializers.py:888 stock/serializers.py:1014 +#: stock/serializers.py:1064 msgid "Add transaction note (optional)" msgstr "" -#: stock/serializers.py:785 +#: stock/serializers.py:816 msgid "Quantity to install must be at least 1" msgstr "" -#: stock/serializers.py:793 +#: stock/serializers.py:824 msgid "Stock item is unavailable" msgstr "" -#: stock/serializers.py:804 +#: stock/serializers.py:835 msgid "Selected part is not in the Bill of Materials" msgstr "" -#: stock/serializers.py:817 +#: stock/serializers.py:848 msgid "Quantity to install must not exceed available quantity" msgstr "" -#: stock/serializers.py:852 +#: stock/serializers.py:883 msgid "Destination location for uninstalled item" msgstr "" -#: stock/serializers.py:903 +#: stock/serializers.py:934 msgid "Unsupported statistic type: " msgstr "" -#: stock/serializers.py:917 +#: stock/serializers.py:948 msgid "Select part to convert stock item into" msgstr "" -#: stock/serializers.py:930 +#: stock/serializers.py:961 msgid "Selected part is not a valid option for conversion" msgstr "" -#: stock/serializers.py:947 +#: stock/serializers.py:978 msgid "Cannot convert stock item with assigned SupplierPart" msgstr "" -#: stock/serializers.py:978 +#: stock/serializers.py:1009 msgid "Destination location for returned item" msgstr "" -#: stock/serializers.py:1015 +#: stock/serializers.py:1046 msgid "Select stock items to change status" msgstr "" -#: stock/serializers.py:1021 +#: stock/serializers.py:1052 msgid "No stock items selected" msgstr "" -#: stock/serializers.py:1117 stock/serializers.py:1194 -#: stock/templates/stock/location.html:162 -#: stock/templates/stock/location.html:219 +#: stock/serializers.py:1148 stock/serializers.py:1225 +#: stock/templates/stock/location.html:163 +#: stock/templates/stock/location.html:220 #: stock/templates/stock/location_sidebar.html:5 msgid "Sublocations" msgstr "" -#: stock/serializers.py:1187 templates/js/translated/stock.js:160 +#: stock/serializers.py:1218 templates/js/translated/stock.js:160 msgid "Parent stock location" msgstr "" -#: stock/serializers.py:1298 +#: stock/serializers.py:1329 msgid "Part must be salable" msgstr "" -#: stock/serializers.py:1302 +#: stock/serializers.py:1333 msgid "Item is allocated to a sales order" msgstr "" -#: stock/serializers.py:1306 +#: stock/serializers.py:1337 msgid "Item is allocated to a build order" msgstr "" -#: stock/serializers.py:1330 +#: stock/serializers.py:1361 msgid "Customer to assign stock items" msgstr "" -#: stock/serializers.py:1336 +#: stock/serializers.py:1367 msgid "Selected company is not a customer" msgstr "" -#: stock/serializers.py:1344 +#: stock/serializers.py:1375 msgid "Stock assignment notes" msgstr "" -#: stock/serializers.py:1354 stock/serializers.py:1608 +#: stock/serializers.py:1385 stock/serializers.py:1639 msgid "A list of stock items must be provided" msgstr "" -#: stock/serializers.py:1433 +#: stock/serializers.py:1464 msgid "Stock merging notes" msgstr "" -#: stock/serializers.py:1438 +#: stock/serializers.py:1469 msgid "Allow mismatched suppliers" msgstr "" -#: stock/serializers.py:1439 +#: stock/serializers.py:1470 msgid "Allow stock items with different supplier parts to be merged" msgstr "" -#: stock/serializers.py:1444 +#: stock/serializers.py:1475 msgid "Allow mismatched status" msgstr "" -#: stock/serializers.py:1445 +#: stock/serializers.py:1476 msgid "Allow stock items with different status codes to be merged" msgstr "" -#: stock/serializers.py:1455 +#: stock/serializers.py:1486 msgid "At least two stock items must be provided" msgstr "" -#: stock/serializers.py:1522 +#: stock/serializers.py:1553 msgid "No Change" msgstr "" -#: stock/serializers.py:1551 +#: stock/serializers.py:1582 msgid "StockItem primary key value" msgstr "" -#: stock/serializers.py:1570 +#: stock/serializers.py:1601 msgid "Stock item status code" msgstr "" -#: stock/serializers.py:1598 +#: stock/serializers.py:1629 msgid "Stock transaction notes" msgstr "" @@ -10175,107 +10539,107 @@ msgstr "" msgid "Quarantined" msgstr "" -#: stock/status_codes.py:40 +#: stock/status_codes.py:44 msgid "Legacy stock tracking entry" msgstr "" -#: stock/status_codes.py:42 templates/js/translated/stock.js:550 +#: stock/status_codes.py:46 templates/js/translated/stock.js:550 msgid "Stock item created" msgstr "" -#: stock/status_codes.py:45 +#: stock/status_codes.py:49 msgid "Edited stock item" msgstr "" -#: stock/status_codes.py:46 +#: stock/status_codes.py:50 msgid "Assigned serial number" msgstr "" -#: stock/status_codes.py:49 +#: stock/status_codes.py:53 msgid "Stock counted" msgstr "" -#: stock/status_codes.py:50 +#: stock/status_codes.py:54 msgid "Stock manually added" msgstr "" -#: stock/status_codes.py:51 +#: stock/status_codes.py:55 msgid "Stock manually removed" msgstr "" -#: stock/status_codes.py:54 +#: stock/status_codes.py:58 msgid "Location changed" msgstr "" -#: stock/status_codes.py:55 +#: stock/status_codes.py:59 msgid "Stock updated" msgstr "" -#: stock/status_codes.py:58 +#: stock/status_codes.py:62 msgid "Installed into assembly" msgstr "" -#: stock/status_codes.py:59 +#: stock/status_codes.py:63 msgid "Removed from assembly" msgstr "" -#: stock/status_codes.py:61 +#: stock/status_codes.py:65 msgid "Installed component item" msgstr "" -#: stock/status_codes.py:62 +#: stock/status_codes.py:66 msgid "Removed component item" msgstr "" -#: stock/status_codes.py:65 +#: stock/status_codes.py:69 msgid "Split from parent item" msgstr "" -#: stock/status_codes.py:66 +#: stock/status_codes.py:70 msgid "Split child item" msgstr "" -#: stock/status_codes.py:69 templates/js/translated/stock.js:1943 +#: stock/status_codes.py:73 templates/js/translated/stock.js:1944 msgid "Merged stock items" msgstr "" -#: stock/status_codes.py:72 +#: stock/status_codes.py:76 msgid "Converted to variant" msgstr "" -#: stock/status_codes.py:75 +#: stock/status_codes.py:79 msgid "Build order output created" msgstr "" -#: stock/status_codes.py:76 +#: stock/status_codes.py:80 msgid "Build order output completed" msgstr "" -#: stock/status_codes.py:77 +#: stock/status_codes.py:81 msgid "Build order output rejected" msgstr "" -#: stock/status_codes.py:78 templates/js/translated/stock.js:1849 +#: stock/status_codes.py:82 templates/js/translated/stock.js:1849 msgid "Consumed by build order" msgstr "" -#: stock/status_codes.py:81 +#: stock/status_codes.py:85 msgid "Shipped against Sales Order" msgstr "" -#: stock/status_codes.py:84 +#: stock/status_codes.py:88 msgid "Received against Purchase Order" msgstr "" -#: stock/status_codes.py:87 +#: stock/status_codes.py:91 msgid "Returned against Return Order" msgstr "" -#: stock/status_codes.py:90 templates/js/translated/table_filters.js:382 +#: stock/status_codes.py:94 templates/js/translated/table_filters.js:382 msgid "Sent to customer" msgstr "" -#: stock/status_codes.py:91 +#: stock/status_codes.py:95 msgid "Returned from customer" msgstr "" @@ -10296,7 +10660,7 @@ msgstr "" msgid "Test Data" msgstr "" -#: stock/templates/stock/item.html:85 stock/templates/stock/item_base.html:65 +#: stock/templates/stock/item.html:85 msgid "Test Report" msgstr "" @@ -10316,7 +10680,7 @@ msgstr "" msgid "Installed Stock Items" msgstr "" -#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3354 +#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3355 msgid "Install Stock Item" msgstr "" @@ -10328,208 +10692,212 @@ msgstr "" msgid "Add Test Result" msgstr "" -#: stock/templates/stock/item_base.html:33 +#: stock/templates/stock/item_base.html:34 msgid "Locate stock item" msgstr "" -#: stock/templates/stock/item_base.html:51 +#: stock/templates/stock/item_base.html:52 msgid "Scan to Location" msgstr "" #: stock/templates/stock/item_base.html:59 -#: stock/templates/stock/location.html:67 +#: stock/templates/stock/location.html:68 #: templates/js/translated/filters.js:434 msgid "Printing actions" msgstr "" -#: stock/templates/stock/item_base.html:75 +#: stock/templates/stock/item_base.html:64 templates/js/translated/report.js:49 +msgid "Print Report" +msgstr "" + +#: stock/templates/stock/item_base.html:72 msgid "Stock adjustment actions" msgstr "" -#: stock/templates/stock/item_base.html:79 -#: stock/templates/stock/location.html:87 templates/js/translated/stock.js:1909 +#: stock/templates/stock/item_base.html:76 +#: stock/templates/stock/location.html:88 templates/js/translated/stock.js:1909 msgid "Count stock" msgstr "" -#: stock/templates/stock/item_base.html:81 +#: stock/templates/stock/item_base.html:78 #: templates/js/translated/stock.js:1891 msgid "Add stock" msgstr "" -#: stock/templates/stock/item_base.html:82 +#: stock/templates/stock/item_base.html:79 #: templates/js/translated/stock.js:1900 msgid "Remove stock" msgstr "" -#: stock/templates/stock/item_base.html:85 +#: stock/templates/stock/item_base.html:82 msgid "Serialize stock" msgstr "" -#: stock/templates/stock/item_base.html:88 -#: stock/templates/stock/location.html:93 templates/js/translated/stock.js:1918 +#: stock/templates/stock/item_base.html:85 +#: stock/templates/stock/location.html:94 templates/js/translated/stock.js:1918 msgid "Transfer stock" msgstr "" -#: stock/templates/stock/item_base.html:91 -#: templates/js/translated/stock.js:1972 +#: stock/templates/stock/item_base.html:88 +#: templates/js/translated/stock.js:1973 msgid "Assign to customer" msgstr "" -#: stock/templates/stock/item_base.html:94 +#: stock/templates/stock/item_base.html:91 msgid "Return to stock" msgstr "" -#: stock/templates/stock/item_base.html:97 +#: stock/templates/stock/item_base.html:94 msgid "Uninstall stock item" msgstr "" -#: stock/templates/stock/item_base.html:97 +#: stock/templates/stock/item_base.html:94 msgid "Uninstall" msgstr "" -#: stock/templates/stock/item_base.html:101 +#: stock/templates/stock/item_base.html:98 msgid "Install stock item" msgstr "" -#: stock/templates/stock/item_base.html:101 +#: stock/templates/stock/item_base.html:98 msgid "Install" msgstr "" -#: stock/templates/stock/item_base.html:115 +#: stock/templates/stock/item_base.html:112 msgid "Convert to variant" msgstr "" -#: stock/templates/stock/item_base.html:118 +#: stock/templates/stock/item_base.html:115 msgid "Duplicate stock item" msgstr "" -#: stock/templates/stock/item_base.html:120 +#: stock/templates/stock/item_base.html:117 msgid "Edit stock item" msgstr "" -#: stock/templates/stock/item_base.html:123 +#: stock/templates/stock/item_base.html:120 msgid "Delete stock item" msgstr "" -#: stock/templates/stock/item_base.html:169 templates/InvenTree/search.html:139 -#: templates/js/translated/build.js:2295 templates/navbar.html:38 +#: stock/templates/stock/item_base.html:166 templates/InvenTree/search.html:139 +#: templates/js/translated/build.js:2298 templates/navbar.html:38 msgid "Build" msgstr "" -#: stock/templates/stock/item_base.html:211 +#: stock/templates/stock/item_base.html:208 msgid "No manufacturer set" msgstr "" -#: stock/templates/stock/item_base.html:251 +#: stock/templates/stock/item_base.html:248 msgid "You are not in the list of owners of this item. This stock item cannot be edited." msgstr "" -#: stock/templates/stock/item_base.html:252 -#: stock/templates/stock/location.html:146 +#: stock/templates/stock/item_base.html:249 +#: stock/templates/stock/location.html:147 msgid "Read only" msgstr "" -#: stock/templates/stock/item_base.html:265 +#: stock/templates/stock/item_base.html:262 msgid "This stock item is unavailable" msgstr "" -#: stock/templates/stock/item_base.html:271 +#: stock/templates/stock/item_base.html:268 msgid "This stock item is in production and cannot be edited." msgstr "" -#: stock/templates/stock/item_base.html:272 +#: stock/templates/stock/item_base.html:269 msgid "Edit the stock item from the build view." msgstr "" -#: stock/templates/stock/item_base.html:287 +#: stock/templates/stock/item_base.html:284 msgid "This stock item is allocated to Sales Order" msgstr "" -#: stock/templates/stock/item_base.html:295 +#: stock/templates/stock/item_base.html:292 msgid "This stock item is allocated to Build Order" msgstr "" -#: stock/templates/stock/item_base.html:311 +#: stock/templates/stock/item_base.html:308 msgid "This stock item is serialized. It has a unique serial number and the quantity cannot be adjusted" msgstr "" -#: stock/templates/stock/item_base.html:317 +#: stock/templates/stock/item_base.html:314 msgid "previous page" msgstr "" -#: stock/templates/stock/item_base.html:317 +#: stock/templates/stock/item_base.html:314 msgid "Navigate to previous serial number" msgstr "" -#: stock/templates/stock/item_base.html:326 +#: stock/templates/stock/item_base.html:323 msgid "next page" msgstr "" -#: stock/templates/stock/item_base.html:326 +#: stock/templates/stock/item_base.html:323 msgid "Navigate to next serial number" msgstr "" -#: stock/templates/stock/item_base.html:398 -#: templates/js/translated/build.js:2552 +#: stock/templates/stock/item_base.html:395 +#: templates/js/translated/build.js:2559 msgid "No location set" msgstr "" -#: stock/templates/stock/item_base.html:413 +#: stock/templates/stock/item_base.html:410 msgid "Tests" msgstr "" -#: stock/templates/stock/item_base.html:419 +#: stock/templates/stock/item_base.html:416 msgid "This stock item has not passed all required tests" msgstr "" -#: stock/templates/stock/item_base.html:437 +#: stock/templates/stock/item_base.html:434 #, python-format msgid "This StockItem expired on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:439 +#: stock/templates/stock/item_base.html:436 #, python-format msgid "This StockItem expires on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:455 +#: stock/templates/stock/item_base.html:452 msgid "No stocktake performed" msgstr "" -#: stock/templates/stock/item_base.html:504 -#: templates/js/translated/stock.js:2037 +#: stock/templates/stock/item_base.html:501 +#: templates/js/translated/stock.js:2038 msgid "stock item" msgstr "" -#: stock/templates/stock/item_base.html:527 +#: stock/templates/stock/item_base.html:524 msgid "Edit Stock Status" msgstr "" -#: stock/templates/stock/item_base.html:536 +#: stock/templates/stock/item_base.html:533 msgid "Stock Item QR Code" msgstr "" -#: stock/templates/stock/item_base.html:547 +#: stock/templates/stock/item_base.html:544 msgid "Link Barcode to Stock Item" msgstr "" -#: stock/templates/stock/item_base.html:611 +#: stock/templates/stock/item_base.html:608 msgid "Select one of the part variants listed below." msgstr "" -#: stock/templates/stock/item_base.html:614 +#: stock/templates/stock/item_base.html:611 msgid "Warning" msgstr "" -#: stock/templates/stock/item_base.html:615 +#: stock/templates/stock/item_base.html:612 msgid "This action cannot be easily undone" msgstr "" -#: stock/templates/stock/item_base.html:623 +#: stock/templates/stock/item_base.html:620 msgid "Convert Stock Item" msgstr "" -#: stock/templates/stock/item_base.html:656 +#: stock/templates/stock/item_base.html:653 msgid "Return to Stock" msgstr "" @@ -10541,84 +10909,84 @@ msgstr "" msgid "Select quantity to serialize, and unique serial numbers." msgstr "" -#: stock/templates/stock/location.html:35 +#: stock/templates/stock/location.html:36 msgid "Perform stocktake for this stock location" msgstr "" -#: stock/templates/stock/location.html:42 +#: stock/templates/stock/location.html:43 msgid "Locate stock location" msgstr "" -#: stock/templates/stock/location.html:60 +#: stock/templates/stock/location.html:61 msgid "Scan stock items into this location" msgstr "" -#: stock/templates/stock/location.html:60 +#: stock/templates/stock/location.html:61 msgid "Scan In Stock Items" msgstr "" -#: stock/templates/stock/location.html:61 +#: stock/templates/stock/location.html:62 msgid "Scan stock container into this location" msgstr "" -#: stock/templates/stock/location.html:61 +#: stock/templates/stock/location.html:62 msgid "Scan In Container" msgstr "" -#: stock/templates/stock/location.html:72 +#: stock/templates/stock/location.html:73 msgid "Print Location Report" msgstr "" -#: stock/templates/stock/location.html:101 +#: stock/templates/stock/location.html:102 msgid "Location actions" msgstr "" -#: stock/templates/stock/location.html:103 +#: stock/templates/stock/location.html:104 msgid "Edit location" msgstr "" -#: stock/templates/stock/location.html:105 +#: stock/templates/stock/location.html:106 msgid "Delete location" msgstr "" -#: stock/templates/stock/location.html:135 +#: stock/templates/stock/location.html:136 msgid "Top level stock location" msgstr "" -#: stock/templates/stock/location.html:141 +#: stock/templates/stock/location.html:142 msgid "Location Owner" msgstr "" -#: stock/templates/stock/location.html:145 +#: stock/templates/stock/location.html:146 msgid "You are not in the list of owners of this location. This stock location cannot be edited." msgstr "" -#: stock/templates/stock/location.html:173 +#: stock/templates/stock/location.html:174 msgid "Location Type" msgstr "" -#: stock/templates/stock/location.html:223 +#: stock/templates/stock/location.html:224 msgid "Create new stock location" msgstr "" -#: stock/templates/stock/location.html:224 +#: stock/templates/stock/location.html:225 msgid "New Location" msgstr "" -#: stock/templates/stock/location.html:298 -#: templates/js/translated/stock.js:2657 +#: stock/templates/stock/location.html:299 +#: templates/js/translated/stock.js:2658 msgid "stock location" msgstr "" -#: stock/templates/stock/location.html:320 +#: stock/templates/stock/location.html:321 msgid "Scanned stock container into this location" msgstr "" -#: stock/templates/stock/location.html:393 +#: stock/templates/stock/location.html:394 msgid "Stock Location QR Code" msgstr "" -#: stock/templates/stock/location.html:404 +#: stock/templates/stock/location.html:405 msgid "Link Barcode to Stock Location" msgstr "" @@ -10630,10 +10998,6 @@ msgstr "" msgid "Stock Tracking" msgstr "" -#: stock/templates/stock/stock_sidebar.html:8 -msgid "Allocations" -msgstr "" - #: templates/403.html:6 templates/403.html:12 templates/403_csrf.html:7 msgid "Permission Denied" msgstr "" @@ -11107,9 +11471,9 @@ msgid "Rate" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:81 -#: templates/js/translated/forms.js:548 templates/js/translated/helpers.js:108 +#: templates/js/translated/forms.js:548 templates/js/translated/helpers.js:109 #: templates/js/translated/part.js:395 templates/js/translated/pricing.js:629 -#: templates/js/translated/stock.js:252 users/models.py:406 +#: templates/js/translated/stock.js:252 users/models.py:408 msgid "Delete" msgstr "" @@ -11130,7 +11494,7 @@ msgid "No project codes found" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:158 -#: templates/js/translated/build.js:2400 +#: templates/js/translated/build.js:2403 msgid "group" msgstr "" @@ -11196,7 +11560,7 @@ msgid "Delete Location Type" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:503 -#: templates/InvenTree/settings/stock.html:38 +#: templates/InvenTree/settings/stock.html:39 msgid "New Location Type" msgstr "" @@ -11253,7 +11617,7 @@ msgstr "" msgid "Stock Settings" msgstr "" -#: templates/InvenTree/settings/stock.html:34 +#: templates/InvenTree/settings/stock.html:35 msgid "Stock Location Types" msgstr "" @@ -11280,7 +11644,7 @@ msgid "Unverified" msgstr "" #: templates/InvenTree/settings/user.html:80 -#: templates/js/translated/company.js:957 +#: templates/js/translated/company.js:958 msgid "Primary" msgstr "" @@ -11532,7 +11896,7 @@ msgid "Submit Bug Report" msgstr "" #: templates/about.html:91 templates/clip.html:4 -#: templates/js/translated/helpers.js:592 +#: templates/js/translated/helpers.js:598 msgid "copy to clipboard" msgstr "" @@ -11738,23 +12102,24 @@ msgstr "" msgid "Barcode Identifier" msgstr "" -#: templates/base.html:103 +#: templates/base.html:102 msgid "Server Restart Required" msgstr "" -#: templates/base.html:106 +#: templates/base.html:105 msgid "A configuration option has been changed which requires a server restart" msgstr "" -#: templates/base.html:106 templates/base.html:116 +#: templates/base.html:105 templates/base.html:115 +#: templates/socialaccount/authentication_error.html:13 msgid "Contact your system administrator for further information" msgstr "" -#: templates/base.html:113 +#: templates/base.html:112 msgid "Pending Database Migrations" msgstr "" -#: templates/base.html:116 +#: templates/base.html:115 msgid "There are pending database migrations which require attention" msgstr "" @@ -11787,7 +12152,7 @@ msgid "The following parts are low on required stock" msgstr "" #: templates/email/build_order_required_stock.html:18 -#: templates/js/translated/bom.js:1674 templates/js/translated/build.js:2747 +#: templates/js/translated/bom.js:1674 templates/js/translated/build.js:2765 msgid "Required Quantity" msgstr "" @@ -11801,7 +12166,7 @@ msgid "Click on the following link to view this part" msgstr "" #: templates/email/low_stock_notification.html:18 -#: templates/js/translated/part.js:3237 +#: templates/js/translated/part.js:3253 msgid "Minimum Quantity" msgstr "" @@ -12039,7 +12404,7 @@ msgstr "" #: templates/js/translated/bom.js:189 templates/js/translated/bom.js:700 #: templates/js/translated/modals.js:75 templates/js/translated/modals.js:629 #: templates/js/translated/modals.js:757 templates/js/translated/modals.js:1065 -#: templates/js/translated/purchase_order.js:797 templates/modals.html:15 +#: templates/js/translated/purchase_order.js:780 templates/modals.html:15 #: templates/modals.html:27 templates/modals.html:39 templates/modals.html:50 msgid "Close" msgstr "" @@ -12156,7 +12521,7 @@ msgstr "" msgid "Substitutes Available" msgstr "" -#: templates/js/translated/bom.js:950 templates/js/translated/build.js:2673 +#: templates/js/translated/bom.js:950 templates/js/translated/build.js:2682 msgid "Variant stock allowed" msgstr "" @@ -12176,30 +12541,30 @@ msgstr "" msgid "No pricing available" msgstr "" -#: templates/js/translated/bom.js:1184 templates/js/translated/build.js:2812 +#: templates/js/translated/bom.js:1184 templates/js/translated/build.js:2830 msgid "External stock" msgstr "" -#: templates/js/translated/bom.js:1188 templates/js/translated/build.js:2786 -#: templates/js/translated/sales_order.js:1946 +#: templates/js/translated/bom.js:1188 templates/js/translated/build.js:2804 +#: templates/js/translated/sales_order.js:1927 msgid "No Stock Available" msgstr "" -#: templates/js/translated/bom.js:1193 templates/js/translated/build.js:2790 +#: templates/js/translated/bom.js:1193 templates/js/translated/build.js:2808 msgid "Includes variant and substitute stock" msgstr "" -#: templates/js/translated/bom.js:1195 templates/js/translated/build.js:2792 +#: templates/js/translated/bom.js:1195 templates/js/translated/build.js:2810 #: templates/js/translated/part.js:1263 -#: templates/js/translated/sales_order.js:1943 +#: templates/js/translated/sales_order.js:1924 msgid "Includes variant stock" msgstr "" -#: templates/js/translated/bom.js:1197 templates/js/translated/build.js:2794 +#: templates/js/translated/bom.js:1197 templates/js/translated/build.js:2812 msgid "Includes substitute stock" msgstr "" -#: templates/js/translated/bom.js:1225 templates/js/translated/build.js:2777 +#: templates/js/translated/bom.js:1225 templates/js/translated/build.js:2795 msgid "Consumable item" msgstr "" @@ -12231,7 +12596,7 @@ msgstr "" msgid "No BOM items found" msgstr "" -#: templates/js/translated/bom.js:1657 templates/js/translated/build.js:2658 +#: templates/js/translated/bom.js:1657 templates/js/translated/build.js:2667 msgid "Required Part" msgstr "" @@ -12243,396 +12608,396 @@ msgstr "" msgid "Edit Build Order" msgstr "" -#: templates/js/translated/build.js:191 +#: templates/js/translated/build.js:194 msgid "Create Build Order" msgstr "" -#: templates/js/translated/build.js:223 +#: templates/js/translated/build.js:226 msgid "Cancel Build Order" msgstr "" -#: templates/js/translated/build.js:232 +#: templates/js/translated/build.js:235 msgid "Are you sure you wish to cancel this build?" msgstr "" -#: templates/js/translated/build.js:238 +#: templates/js/translated/build.js:241 msgid "Stock items have been allocated to this build order" msgstr "" -#: templates/js/translated/build.js:245 +#: templates/js/translated/build.js:248 msgid "There are incomplete outputs remaining for this build order" msgstr "" -#: templates/js/translated/build.js:297 +#: templates/js/translated/build.js:300 msgid "Build order is ready to be completed" msgstr "" -#: templates/js/translated/build.js:305 +#: templates/js/translated/build.js:308 msgid "This build order cannot be completed as there are incomplete outputs" msgstr "" -#: templates/js/translated/build.js:310 +#: templates/js/translated/build.js:313 msgid "Build Order is incomplete" msgstr "" -#: templates/js/translated/build.js:328 +#: templates/js/translated/build.js:331 msgid "Complete Build Order" msgstr "" -#: templates/js/translated/build.js:369 templates/js/translated/stock.js:127 +#: templates/js/translated/build.js:372 templates/js/translated/stock.js:127 #: templates/js/translated/stock.js:301 msgid "Next available serial number" msgstr "" -#: templates/js/translated/build.js:371 templates/js/translated/stock.js:129 +#: templates/js/translated/build.js:374 templates/js/translated/stock.js:129 #: templates/js/translated/stock.js:303 msgid "Latest serial number" msgstr "" -#: templates/js/translated/build.js:380 +#: templates/js/translated/build.js:383 msgid "The Bill of Materials contains trackable parts" msgstr "" -#: templates/js/translated/build.js:381 +#: templates/js/translated/build.js:384 msgid "Build outputs must be generated individually" msgstr "" -#: templates/js/translated/build.js:389 +#: templates/js/translated/build.js:392 msgid "Trackable parts can have serial numbers specified" msgstr "" -#: templates/js/translated/build.js:390 +#: templates/js/translated/build.js:393 msgid "Enter serial numbers to generate multiple single build outputs" msgstr "" -#: templates/js/translated/build.js:397 +#: templates/js/translated/build.js:400 msgid "Create Build Output" msgstr "" -#: templates/js/translated/build.js:428 +#: templates/js/translated/build.js:431 msgid "Allocate stock items to this build output" msgstr "" -#: templates/js/translated/build.js:436 +#: templates/js/translated/build.js:439 msgid "Deallocate stock from build output" msgstr "" -#: templates/js/translated/build.js:445 +#: templates/js/translated/build.js:448 msgid "Complete build output" msgstr "" -#: templates/js/translated/build.js:453 +#: templates/js/translated/build.js:456 msgid "Scrap build output" msgstr "" -#: templates/js/translated/build.js:460 +#: templates/js/translated/build.js:463 msgid "Delete build output" msgstr "" -#: templates/js/translated/build.js:480 +#: templates/js/translated/build.js:483 msgid "Are you sure you wish to deallocate the selected stock items from this build?" msgstr "" -#: templates/js/translated/build.js:498 +#: templates/js/translated/build.js:501 msgid "Deallocate Stock Items" msgstr "" -#: templates/js/translated/build.js:584 templates/js/translated/build.js:711 -#: templates/js/translated/build.js:836 +#: templates/js/translated/build.js:587 templates/js/translated/build.js:714 +#: templates/js/translated/build.js:839 msgid "Select Build Outputs" msgstr "" -#: templates/js/translated/build.js:585 templates/js/translated/build.js:712 -#: templates/js/translated/build.js:837 +#: templates/js/translated/build.js:588 templates/js/translated/build.js:715 +#: templates/js/translated/build.js:840 msgid "At least one build output must be selected" msgstr "" -#: templates/js/translated/build.js:599 +#: templates/js/translated/build.js:602 msgid "Selected build outputs will be marked as complete" msgstr "" -#: templates/js/translated/build.js:603 templates/js/translated/build.js:736 -#: templates/js/translated/build.js:859 +#: templates/js/translated/build.js:606 templates/js/translated/build.js:739 +#: templates/js/translated/build.js:862 msgid "Output" msgstr "" -#: templates/js/translated/build.js:630 +#: templates/js/translated/build.js:633 msgid "Complete Build Outputs" msgstr "" -#: templates/js/translated/build.js:727 +#: templates/js/translated/build.js:730 msgid "Selected build outputs will be marked as scrapped" msgstr "" -#: templates/js/translated/build.js:729 +#: templates/js/translated/build.js:732 msgid "Scrapped output are marked as rejected" msgstr "" -#: templates/js/translated/build.js:730 +#: templates/js/translated/build.js:733 msgid "Allocated stock items will no longer be available" msgstr "" -#: templates/js/translated/build.js:731 +#: templates/js/translated/build.js:734 msgid "The completion status of the build order will not be adjusted" msgstr "" -#: templates/js/translated/build.js:761 +#: templates/js/translated/build.js:764 msgid "Scrap Build Outputs" msgstr "" -#: templates/js/translated/build.js:851 +#: templates/js/translated/build.js:854 msgid "Selected build outputs will be deleted" msgstr "" -#: templates/js/translated/build.js:853 +#: templates/js/translated/build.js:856 msgid "Build output data will be permanently deleted" msgstr "" -#: templates/js/translated/build.js:854 +#: templates/js/translated/build.js:857 msgid "Allocated stock items will be returned to stock" msgstr "" -#: templates/js/translated/build.js:872 +#: templates/js/translated/build.js:875 msgid "Delete Build Outputs" msgstr "" -#: templates/js/translated/build.js:959 +#: templates/js/translated/build.js:962 msgid "Delete allocations" msgstr "" -#: templates/js/translated/build.js:966 +#: templates/js/translated/build.js:969 msgid "Delete Stock Allocations" msgstr "" -#: templates/js/translated/build.js:989 +#: templates/js/translated/build.js:992 msgid "No allocated stock" msgstr "" -#: templates/js/translated/build.js:1045 +#: templates/js/translated/build.js:1048 msgid "Stock item" msgstr "" -#: templates/js/translated/build.js:1070 +#: templates/js/translated/build.js:1073 msgid "Edit build allocation" msgstr "" -#: templates/js/translated/build.js:1071 +#: templates/js/translated/build.js:1074 msgid "Delete build allocation" msgstr "" -#: templates/js/translated/build.js:1089 +#: templates/js/translated/build.js:1092 msgid "Edit Build Allocation" msgstr "" -#: templates/js/translated/build.js:1102 +#: templates/js/translated/build.js:1105 msgid "Delete Build Allocation" msgstr "" -#: templates/js/translated/build.js:1133 +#: templates/js/translated/build.js:1136 msgid "No build order allocations found" msgstr "" -#: templates/js/translated/build.js:1178 +#: templates/js/translated/build.js:1181 msgid "Location not specified" msgstr "" -#: templates/js/translated/build.js:1200 +#: templates/js/translated/build.js:1203 msgid "Complete outputs" msgstr "" -#: templates/js/translated/build.js:1218 +#: templates/js/translated/build.js:1221 msgid "Scrap outputs" msgstr "" -#: templates/js/translated/build.js:1236 +#: templates/js/translated/build.js:1239 msgid "Delete outputs" msgstr "" -#: templates/js/translated/build.js:1289 +#: templates/js/translated/build.js:1292 msgid "build output" msgstr "" -#: templates/js/translated/build.js:1290 +#: templates/js/translated/build.js:1293 msgid "build outputs" msgstr "" -#: templates/js/translated/build.js:1294 +#: templates/js/translated/build.js:1297 msgid "Build output actions" msgstr "" -#: templates/js/translated/build.js:1470 +#: templates/js/translated/build.js:1473 msgid "No active build outputs found" msgstr "" -#: templates/js/translated/build.js:1563 +#: templates/js/translated/build.js:1566 msgid "Allocated Lines" msgstr "" -#: templates/js/translated/build.js:1577 +#: templates/js/translated/build.js:1580 msgid "Required Tests" msgstr "" -#: templates/js/translated/build.js:1749 -#: templates/js/translated/purchase_order.js:611 -#: templates/js/translated/sales_order.js:1207 +#: templates/js/translated/build.js:1752 +#: templates/js/translated/purchase_order.js:594 +#: templates/js/translated/sales_order.js:1173 msgid "Select Parts" msgstr "" -#: templates/js/translated/build.js:1750 -#: templates/js/translated/sales_order.js:1208 +#: templates/js/translated/build.js:1753 +#: templates/js/translated/sales_order.js:1174 msgid "You must select at least one part to allocate" msgstr "" -#: templates/js/translated/build.js:1813 -#: templates/js/translated/sales_order.js:1157 +#: templates/js/translated/build.js:1816 +#: templates/js/translated/sales_order.js:1123 msgid "Specify stock allocation quantity" msgstr "" -#: templates/js/translated/build.js:1890 +#: templates/js/translated/build.js:1893 msgid "All Parts Allocated" msgstr "" -#: templates/js/translated/build.js:1891 +#: templates/js/translated/build.js:1894 msgid "All selected parts have been fully allocated" msgstr "" -#: templates/js/translated/build.js:1905 -#: templates/js/translated/sales_order.js:1222 +#: templates/js/translated/build.js:1908 +#: templates/js/translated/sales_order.js:1188 msgid "Select source location (leave blank to take from all locations)" msgstr "" -#: templates/js/translated/build.js:1933 +#: templates/js/translated/build.js:1936 msgid "Allocate Stock Items to Build Order" msgstr "" -#: templates/js/translated/build.js:1944 -#: templates/js/translated/sales_order.js:1319 +#: templates/js/translated/build.js:1947 +#: templates/js/translated/sales_order.js:1285 msgid "No matching stock locations" msgstr "" -#: templates/js/translated/build.js:2017 -#: templates/js/translated/sales_order.js:1398 +#: templates/js/translated/build.js:2020 +#: templates/js/translated/sales_order.js:1364 msgid "No matching stock items" msgstr "" -#: templates/js/translated/build.js:2114 +#: templates/js/translated/build.js:2117 msgid "Automatic Stock Allocation" msgstr "" -#: templates/js/translated/build.js:2115 +#: templates/js/translated/build.js:2118 msgid "Stock items will be automatically allocated to this build order, according to the provided guidelines" msgstr "" -#: templates/js/translated/build.js:2117 +#: templates/js/translated/build.js:2120 msgid "If a location is specified, stock will only be allocated from that location" msgstr "" -#: templates/js/translated/build.js:2118 +#: templates/js/translated/build.js:2121 msgid "If stock is considered interchangeable, it will be allocated from the first location it is found" msgstr "" -#: templates/js/translated/build.js:2119 +#: templates/js/translated/build.js:2122 msgid "If substitute stock is allowed, it will be used where stock of the primary part cannot be found" msgstr "" -#: templates/js/translated/build.js:2149 +#: templates/js/translated/build.js:2152 msgid "Allocate Stock Items" msgstr "" -#: templates/js/translated/build.js:2254 +#: templates/js/translated/build.js:2257 msgid "No builds matching query" msgstr "" -#: templates/js/translated/build.js:2289 templates/js/translated/build.js:2652 +#: templates/js/translated/build.js:2292 templates/js/translated/build.js:2661 #: templates/js/translated/forms.js:2196 templates/js/translated/forms.js:2212 #: templates/js/translated/part.js:2322 templates/js/translated/part.js:2761 -#: templates/js/translated/stock.js:2068 templates/js/translated/stock.js:2795 +#: templates/js/translated/stock.js:2069 templates/js/translated/stock.js:2796 msgid "Select" msgstr "" -#: templates/js/translated/build.js:2303 +#: templates/js/translated/build.js:2306 msgid "Build order is overdue" msgstr "" -#: templates/js/translated/build.js:2385 templates/js/translated/stock.js:3126 +#: templates/js/translated/build.js:2388 templates/js/translated/stock.js:3127 msgid "No user information" msgstr "" -#: templates/js/translated/build.js:2561 -#: templates/js/translated/sales_order.js:1682 +#: templates/js/translated/build.js:2568 +#: templates/js/translated/sales_order.js:1663 msgid "Edit stock allocation" msgstr "" -#: templates/js/translated/build.js:2562 -#: templates/js/translated/sales_order.js:1683 +#: templates/js/translated/build.js:2569 +#: templates/js/translated/sales_order.js:1664 msgid "Delete stock allocation" msgstr "" -#: templates/js/translated/build.js:2577 +#: templates/js/translated/build.js:2584 msgid "Edit Allocation" msgstr "" -#: templates/js/translated/build.js:2589 +#: templates/js/translated/build.js:2596 msgid "Remove Allocation" msgstr "" -#: templates/js/translated/build.js:2628 +#: templates/js/translated/build.js:2636 msgid "build line" msgstr "" -#: templates/js/translated/build.js:2629 +#: templates/js/translated/build.js:2637 msgid "build lines" msgstr "" -#: templates/js/translated/build.js:2647 +#: templates/js/translated/build.js:2656 msgid "No build lines found" msgstr "" -#: templates/js/translated/build.js:2677 templates/js/translated/part.js:793 +#: templates/js/translated/build.js:2686 templates/js/translated/part.js:793 #: templates/js/translated/part.js:1209 msgid "Trackable part" msgstr "" -#: templates/js/translated/build.js:2720 +#: templates/js/translated/build.js:2729 msgid "Gets Inherited" msgstr "" -#: templates/js/translated/build.js:2730 +#: templates/js/translated/build.js:2748 msgid "Unit Quantity" msgstr "" -#: templates/js/translated/build.js:2782 -#: templates/js/translated/sales_order.js:1951 +#: templates/js/translated/build.js:2800 +#: templates/js/translated/sales_order.js:1932 msgid "Sufficient stock available" msgstr "" -#: templates/js/translated/build.js:2837 +#: templates/js/translated/build.js:2855 msgid "Consumable Item" msgstr "" -#: templates/js/translated/build.js:2844 +#: templates/js/translated/build.js:2862 msgid "Tracked item" msgstr "" -#: templates/js/translated/build.js:2845 +#: templates/js/translated/build.js:2863 msgid "Allocate tracked items against individual build outputs" msgstr "" -#: templates/js/translated/build.js:2853 -#: templates/js/translated/sales_order.js:2052 +#: templates/js/translated/build.js:2871 +#: templates/js/translated/sales_order.js:2033 msgid "Build stock" msgstr "" -#: templates/js/translated/build.js:2858 templates/js/translated/stock.js:1953 +#: templates/js/translated/build.js:2876 templates/js/translated/stock.js:1954 msgid "Order stock" msgstr "" -#: templates/js/translated/build.js:2862 -#: templates/js/translated/sales_order.js:2046 +#: templates/js/translated/build.js:2880 +#: templates/js/translated/sales_order.js:2027 msgid "Allocate stock" msgstr "" -#: templates/js/translated/build.js:2866 +#: templates/js/translated/build.js:2884 msgid "Remove stock allocation" msgstr "" @@ -12641,7 +13006,7 @@ msgid "Add Manufacturer" msgstr "" #: templates/js/translated/company.js:111 -#: templates/js/translated/company.js:213 +#: templates/js/translated/company.js:214 msgid "Add Manufacturer Part" msgstr "" @@ -12649,231 +13014,231 @@ msgstr "" msgid "Edit Manufacturer Part" msgstr "" -#: templates/js/translated/company.js:201 +#: templates/js/translated/company.js:202 #: templates/js/translated/purchase_order.js:93 msgid "Add Supplier" msgstr "" -#: templates/js/translated/company.js:243 -#: templates/js/translated/purchase_order.js:318 +#: templates/js/translated/company.js:244 +#: templates/js/translated/purchase_order.js:301 msgid "Add Supplier Part" msgstr "" -#: templates/js/translated/company.js:344 +#: templates/js/translated/company.js:345 msgid "All selected supplier parts will be deleted" msgstr "" -#: templates/js/translated/company.js:360 +#: templates/js/translated/company.js:361 msgid "Delete Supplier Parts" msgstr "" -#: templates/js/translated/company.js:466 +#: templates/js/translated/company.js:467 msgid "Add new Company" msgstr "" -#: templates/js/translated/company.js:546 +#: templates/js/translated/company.js:547 msgid "Parts Supplied" msgstr "" -#: templates/js/translated/company.js:555 +#: templates/js/translated/company.js:556 msgid "Parts Manufactured" msgstr "" -#: templates/js/translated/company.js:570 +#: templates/js/translated/company.js:571 msgid "No company information found" msgstr "" -#: templates/js/translated/company.js:619 +#: templates/js/translated/company.js:620 msgid "Create New Contact" msgstr "" -#: templates/js/translated/company.js:635 -#: templates/js/translated/company.js:758 +#: templates/js/translated/company.js:636 +#: templates/js/translated/company.js:759 msgid "Edit Contact" msgstr "" -#: templates/js/translated/company.js:672 +#: templates/js/translated/company.js:673 msgid "All selected contacts will be deleted" msgstr "" -#: templates/js/translated/company.js:678 -#: templates/js/translated/company.js:742 +#: templates/js/translated/company.js:679 +#: templates/js/translated/company.js:743 msgid "Role" msgstr "" -#: templates/js/translated/company.js:686 +#: templates/js/translated/company.js:687 msgid "Delete Contacts" msgstr "" -#: templates/js/translated/company.js:717 +#: templates/js/translated/company.js:718 msgid "No contacts found" msgstr "" -#: templates/js/translated/company.js:730 +#: templates/js/translated/company.js:731 msgid "Phone Number" msgstr "" -#: templates/js/translated/company.js:736 +#: templates/js/translated/company.js:737 msgid "Email Address" msgstr "" -#: templates/js/translated/company.js:762 +#: templates/js/translated/company.js:763 msgid "Delete Contact" msgstr "" -#: templates/js/translated/company.js:859 +#: templates/js/translated/company.js:860 msgid "Create New Address" msgstr "" -#: templates/js/translated/company.js:874 -#: templates/js/translated/company.js:1035 +#: templates/js/translated/company.js:875 +#: templates/js/translated/company.js:1036 msgid "Edit Address" msgstr "" -#: templates/js/translated/company.js:909 +#: templates/js/translated/company.js:910 msgid "All selected addresses will be deleted" msgstr "" -#: templates/js/translated/company.js:923 +#: templates/js/translated/company.js:924 msgid "Delete Addresses" msgstr "" -#: templates/js/translated/company.js:950 +#: templates/js/translated/company.js:951 msgid "No addresses found" msgstr "" -#: templates/js/translated/company.js:989 +#: templates/js/translated/company.js:990 msgid "Postal city" msgstr "" -#: templates/js/translated/company.js:995 +#: templates/js/translated/company.js:996 msgid "State/province" msgstr "" -#: templates/js/translated/company.js:1007 +#: templates/js/translated/company.js:1008 msgid "Courier notes" msgstr "" -#: templates/js/translated/company.js:1013 +#: templates/js/translated/company.js:1014 msgid "Internal notes" msgstr "" -#: templates/js/translated/company.js:1039 +#: templates/js/translated/company.js:1040 msgid "Delete Address" msgstr "" -#: templates/js/translated/company.js:1112 +#: templates/js/translated/company.js:1113 msgid "All selected manufacturer parts will be deleted" msgstr "" -#: templates/js/translated/company.js:1127 +#: templates/js/translated/company.js:1128 msgid "Delete Manufacturer Parts" msgstr "" -#: templates/js/translated/company.js:1161 +#: templates/js/translated/company.js:1162 msgid "All selected parameters will be deleted" msgstr "" -#: templates/js/translated/company.js:1175 +#: templates/js/translated/company.js:1176 msgid "Delete Parameters" msgstr "" -#: templates/js/translated/company.js:1191 -#: templates/js/translated/company.js:1479 templates/js/translated/part.js:2250 +#: templates/js/translated/company.js:1192 +#: templates/js/translated/company.js:1480 templates/js/translated/part.js:2250 msgid "Order parts" msgstr "" -#: templates/js/translated/company.js:1208 +#: templates/js/translated/company.js:1209 msgid "Delete manufacturer parts" msgstr "" -#: templates/js/translated/company.js:1240 +#: templates/js/translated/company.js:1241 msgid "Manufacturer part actions" msgstr "" -#: templates/js/translated/company.js:1259 +#: templates/js/translated/company.js:1260 msgid "No manufacturer parts found" msgstr "" -#: templates/js/translated/company.js:1279 -#: templates/js/translated/company.js:1567 templates/js/translated/part.js:801 +#: templates/js/translated/company.js:1280 +#: templates/js/translated/company.js:1568 templates/js/translated/part.js:801 #: templates/js/translated/part.js:1217 msgid "Template part" msgstr "" -#: templates/js/translated/company.js:1283 -#: templates/js/translated/company.js:1571 templates/js/translated/part.js:805 +#: templates/js/translated/company.js:1284 +#: templates/js/translated/company.js:1572 templates/js/translated/part.js:805 #: templates/js/translated/part.js:1221 msgid "Assembled part" msgstr "" -#: templates/js/translated/company.js:1403 templates/js/translated/part.js:1471 +#: templates/js/translated/company.js:1404 templates/js/translated/part.js:1471 msgid "No parameters found" msgstr "" -#: templates/js/translated/company.js:1438 templates/js/translated/part.js:1534 +#: templates/js/translated/company.js:1439 templates/js/translated/part.js:1534 msgid "Edit parameter" msgstr "" -#: templates/js/translated/company.js:1439 templates/js/translated/part.js:1535 +#: templates/js/translated/company.js:1440 templates/js/translated/part.js:1535 msgid "Delete parameter" msgstr "" -#: templates/js/translated/company.js:1456 templates/js/translated/part.js:1440 +#: templates/js/translated/company.js:1457 templates/js/translated/part.js:1440 msgid "Edit Parameter" msgstr "" -#: templates/js/translated/company.js:1465 templates/js/translated/part.js:1556 +#: templates/js/translated/company.js:1466 templates/js/translated/part.js:1556 msgid "Delete Parameter" msgstr "" -#: templates/js/translated/company.js:1496 +#: templates/js/translated/company.js:1497 msgid "Delete supplier parts" msgstr "" -#: templates/js/translated/company.js:1546 +#: templates/js/translated/company.js:1547 msgid "No supplier parts found" msgstr "" -#: templates/js/translated/company.js:1664 +#: templates/js/translated/company.js:1665 msgid "Base Units" msgstr "" -#: templates/js/translated/company.js:1694 +#: templates/js/translated/company.js:1695 msgid "Availability" msgstr "" -#: templates/js/translated/company.js:1725 +#: templates/js/translated/company.js:1726 msgid "Edit supplier part" msgstr "" -#: templates/js/translated/company.js:1726 +#: templates/js/translated/company.js:1727 msgid "Delete supplier part" msgstr "" -#: templates/js/translated/company.js:1779 +#: templates/js/translated/company.js:1780 #: templates/js/translated/pricing.js:694 msgid "Delete Price Break" msgstr "" -#: templates/js/translated/company.js:1789 +#: templates/js/translated/company.js:1790 #: templates/js/translated/pricing.js:712 msgid "Edit Price Break" msgstr "" -#: templates/js/translated/company.js:1804 +#: templates/js/translated/company.js:1805 msgid "No price break information found" msgstr "" -#: templates/js/translated/company.js:1833 +#: templates/js/translated/company.js:1834 msgid "Last updated" msgstr "" -#: templates/js/translated/company.js:1840 +#: templates/js/translated/company.js:1841 msgid "Edit price break" msgstr "" -#: templates/js/translated/company.js:1841 +#: templates/js/translated/company.js:1842 msgid "Delete price break" msgstr "" @@ -12977,19 +13342,19 @@ msgstr "" msgid "Select Columns" msgstr "" -#: templates/js/translated/helpers.js:80 +#: templates/js/translated/helpers.js:81 msgid "YES" msgstr "" -#: templates/js/translated/helpers.js:83 +#: templates/js/translated/helpers.js:84 msgid "NO" msgstr "" -#: templates/js/translated/helpers.js:96 +#: templates/js/translated/helpers.js:97 msgid "True" msgstr "" -#: templates/js/translated/helpers.js:97 +#: templates/js/translated/helpers.js:98 msgid "False" msgstr "" @@ -13131,7 +13496,7 @@ msgid "Delete Line" msgstr "" #: templates/js/translated/order.js:306 -#: templates/js/translated/purchase_order.js:2060 +#: templates/js/translated/purchase_order.js:2044 msgid "No line items found" msgstr "" @@ -13366,19 +13731,19 @@ msgid "Delete Part Parameter Template" msgstr "" #: templates/js/translated/part.js:1723 -#: templates/js/translated/purchase_order.js:1724 +#: templates/js/translated/purchase_order.js:1708 msgid "No purchase orders found" msgstr "" #: templates/js/translated/part.js:1867 -#: templates/js/translated/purchase_order.js:2223 +#: templates/js/translated/purchase_order.js:2207 #: templates/js/translated/return_order.js:754 -#: templates/js/translated/sales_order.js:1911 +#: templates/js/translated/sales_order.js:1892 msgid "This line item is overdue" msgstr "" #: templates/js/translated/part.js:1913 -#: templates/js/translated/purchase_order.js:2290 +#: templates/js/translated/purchase_order.js:2274 msgid "Receive line item" msgstr "" @@ -13419,7 +13784,7 @@ msgid "No category" msgstr "" #: templates/js/translated/part.js:2550 templates/js/translated/part.js:2680 -#: templates/js/translated/stock.js:2754 +#: templates/js/translated/stock.js:2755 msgid "Display as list" msgstr "" @@ -13431,7 +13796,7 @@ msgstr "" msgid "No subcategories found" msgstr "" -#: templates/js/translated/part.js:2700 templates/js/translated/stock.js:2774 +#: templates/js/translated/part.js:2700 templates/js/translated/stock.js:2775 msgid "Display as tree" msgstr "" @@ -13483,23 +13848,23 @@ msgstr "" msgid "Speculative" msgstr "" -#: templates/js/translated/part.js:3128 +#: templates/js/translated/part.js:3144 msgid "No scheduling information available for this part" msgstr "" -#: templates/js/translated/part.js:3134 +#: templates/js/translated/part.js:3150 msgid "Error fetching scheduling information for this part" msgstr "" -#: templates/js/translated/part.js:3230 +#: templates/js/translated/part.js:3246 msgid "Scheduled Stock Quantities" msgstr "" -#: templates/js/translated/part.js:3246 +#: templates/js/translated/part.js:3262 msgid "Maximum Quantity" msgstr "" -#: templates/js/translated/part.js:3291 +#: templates/js/translated/part.js:3307 msgid "Minimum Stock Level" msgstr "" @@ -13575,267 +13940,243 @@ msgstr "" msgid "Purchase Price History" msgstr "" -#: templates/js/translated/pricing.js:894 +#: templates/js/translated/pricing.js:892 msgid "No sales history data available" msgstr "" -#: templates/js/translated/pricing.js:916 +#: templates/js/translated/pricing.js:914 msgid "Sale Price History" msgstr "" -#: templates/js/translated/pricing.js:1005 +#: templates/js/translated/pricing.js:1003 msgid "No variant data available" msgstr "" -#: templates/js/translated/pricing.js:1045 +#: templates/js/translated/pricing.js:1043 msgid "Variant Part" msgstr "" -#: templates/js/translated/purchase_order.js:169 -msgid "Select purchase order to duplicate" -msgstr "" - -#: templates/js/translated/purchase_order.js:176 -msgid "Duplicate Line Items" -msgstr "" - -#: templates/js/translated/purchase_order.js:177 -msgid "Duplicate all line items from the selected order" -msgstr "" - -#: templates/js/translated/purchase_order.js:184 -msgid "Duplicate Extra Lines" -msgstr "" - -#: templates/js/translated/purchase_order.js:185 -msgid "Duplicate extra line items from the selected order" -msgstr "" - -#: templates/js/translated/purchase_order.js:206 +#: templates/js/translated/purchase_order.js:188 msgid "Edit Purchase Order" msgstr "" -#: templates/js/translated/purchase_order.js:223 +#: templates/js/translated/purchase_order.js:205 msgid "Duplication Options" msgstr "" -#: templates/js/translated/purchase_order.js:431 +#: templates/js/translated/purchase_order.js:414 msgid "Complete Purchase Order" msgstr "" -#: templates/js/translated/purchase_order.js:448 +#: templates/js/translated/purchase_order.js:431 #: templates/js/translated/return_order.js:210 -#: templates/js/translated/sales_order.js:552 +#: templates/js/translated/sales_order.js:511 msgid "Mark this order as complete?" msgstr "" -#: templates/js/translated/purchase_order.js:454 +#: templates/js/translated/purchase_order.js:437 msgid "All line items have been received" msgstr "" -#: templates/js/translated/purchase_order.js:459 +#: templates/js/translated/purchase_order.js:442 msgid "This order has line items which have not been marked as received." msgstr "" -#: templates/js/translated/purchase_order.js:460 +#: templates/js/translated/purchase_order.js:443 msgid "Completing this order means that the order and line items will no longer be editable." msgstr "" -#: templates/js/translated/purchase_order.js:483 +#: templates/js/translated/purchase_order.js:466 msgid "Cancel Purchase Order" msgstr "" -#: templates/js/translated/purchase_order.js:488 +#: templates/js/translated/purchase_order.js:471 msgid "Are you sure you wish to cancel this purchase order?" msgstr "" -#: templates/js/translated/purchase_order.js:494 +#: templates/js/translated/purchase_order.js:477 msgid "This purchase order can not be cancelled" msgstr "" -#: templates/js/translated/purchase_order.js:515 +#: templates/js/translated/purchase_order.js:498 #: templates/js/translated/return_order.js:164 msgid "After placing this order, line items will no longer be editable." msgstr "" -#: templates/js/translated/purchase_order.js:520 +#: templates/js/translated/purchase_order.js:503 msgid "Issue Purchase Order" msgstr "" -#: templates/js/translated/purchase_order.js:612 +#: templates/js/translated/purchase_order.js:595 msgid "At least one purchaseable part must be selected" msgstr "" -#: templates/js/translated/purchase_order.js:637 +#: templates/js/translated/purchase_order.js:620 msgid "Quantity to order" msgstr "" -#: templates/js/translated/purchase_order.js:646 +#: templates/js/translated/purchase_order.js:629 msgid "New supplier part" msgstr "" -#: templates/js/translated/purchase_order.js:664 +#: templates/js/translated/purchase_order.js:647 msgid "New purchase order" msgstr "" -#: templates/js/translated/purchase_order.js:705 +#: templates/js/translated/purchase_order.js:688 msgid "Add to purchase order" msgstr "" -#: templates/js/translated/purchase_order.js:755 +#: templates/js/translated/purchase_order.js:738 msgid "Merge" msgstr "" -#: templates/js/translated/purchase_order.js:859 +#: templates/js/translated/purchase_order.js:842 msgid "No matching supplier parts" msgstr "" -#: templates/js/translated/purchase_order.js:878 +#: templates/js/translated/purchase_order.js:861 msgid "No matching purchase orders" msgstr "" -#: templates/js/translated/purchase_order.js:1073 +#: templates/js/translated/purchase_order.js:1056 #: templates/js/translated/return_order.js:490 msgid "Select Line Items" msgstr "" -#: templates/js/translated/purchase_order.js:1074 +#: templates/js/translated/purchase_order.js:1057 #: templates/js/translated/return_order.js:491 msgid "At least one line item must be selected" msgstr "" -#: templates/js/translated/purchase_order.js:1104 +#: templates/js/translated/purchase_order.js:1087 msgid "Received Quantity" msgstr "" -#: templates/js/translated/purchase_order.js:1115 +#: templates/js/translated/purchase_order.js:1098 msgid "Quantity to receive" msgstr "" -#: templates/js/translated/purchase_order.js:1170 +#: templates/js/translated/purchase_order.js:1153 #: templates/js/translated/stock.js:1215 msgid "Specify packaging for incoming stock items" msgstr "" -#: templates/js/translated/purchase_order.js:1223 +#: templates/js/translated/purchase_order.js:1206 msgid "Stock Status" msgstr "" -#: templates/js/translated/purchase_order.js:1237 +#: templates/js/translated/purchase_order.js:1220 msgid "Add barcode" msgstr "" -#: templates/js/translated/purchase_order.js:1238 +#: templates/js/translated/purchase_order.js:1221 msgid "Remove barcode" msgstr "" -#: templates/js/translated/purchase_order.js:1241 +#: templates/js/translated/purchase_order.js:1224 msgid "Specify location" msgstr "" -#: templates/js/translated/purchase_order.js:1249 +#: templates/js/translated/purchase_order.js:1232 msgid "Add batch code" msgstr "" -#: templates/js/translated/purchase_order.js:1259 +#: templates/js/translated/purchase_order.js:1242 msgid "Specify packaging" msgstr "" -#: templates/js/translated/purchase_order.js:1270 +#: templates/js/translated/purchase_order.js:1253 msgid "Add serial numbers" msgstr "" -#: templates/js/translated/purchase_order.js:1281 +#: templates/js/translated/purchase_order.js:1264 msgid "Add note" msgstr "" -#: templates/js/translated/purchase_order.js:1338 +#: templates/js/translated/purchase_order.js:1321 msgid "Serials" msgstr "" -#: templates/js/translated/purchase_order.js:1368 +#: templates/js/translated/purchase_order.js:1351 msgid "Order Code" msgstr "" -#: templates/js/translated/purchase_order.js:1370 +#: templates/js/translated/purchase_order.js:1353 msgid "Quantity to Receive" msgstr "" -#: templates/js/translated/purchase_order.js:1395 +#: templates/js/translated/purchase_order.js:1379 #: templates/js/translated/return_order.js:559 msgid "Confirm receipt of items" msgstr "" -#: templates/js/translated/purchase_order.js:1396 +#: templates/js/translated/purchase_order.js:1380 msgid "Receive Purchase Order Items" msgstr "" -#: templates/js/translated/purchase_order.js:1464 +#: templates/js/translated/purchase_order.js:1448 msgid "Scan Item Barcode" msgstr "" -#: templates/js/translated/purchase_order.js:1465 +#: templates/js/translated/purchase_order.js:1449 msgid "Scan barcode on incoming item (must not match any existing stock items)" msgstr "" -#: templates/js/translated/purchase_order.js:1479 +#: templates/js/translated/purchase_order.js:1463 msgid "Invalid barcode data" msgstr "" -#: templates/js/translated/purchase_order.js:1751 +#: templates/js/translated/purchase_order.js:1735 #: templates/js/translated/return_order.js:285 -#: templates/js/translated/sales_order.js:810 -#: templates/js/translated/sales_order.js:1034 +#: templates/js/translated/sales_order.js:769 +#: templates/js/translated/sales_order.js:1007 msgid "Order is overdue" msgstr "" -#: templates/js/translated/purchase_order.js:1913 +#: templates/js/translated/purchase_order.js:1897 msgid "All selected Line items will be deleted" msgstr "" -#: templates/js/translated/purchase_order.js:1931 +#: templates/js/translated/purchase_order.js:1915 msgid "Delete selected Line items?" msgstr "" -#: templates/js/translated/purchase_order.js:1986 -#: templates/js/translated/sales_order.js:2106 +#: templates/js/translated/purchase_order.js:1970 +#: templates/js/translated/sales_order.js:2087 msgid "Duplicate Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2001 +#: templates/js/translated/purchase_order.js:1985 #: templates/js/translated/return_order.js:475 #: templates/js/translated/return_order.js:667 -#: templates/js/translated/sales_order.js:2119 +#: templates/js/translated/sales_order.js:2100 msgid "Edit Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2012 +#: templates/js/translated/purchase_order.js:1996 #: templates/js/translated/return_order.js:680 -#: templates/js/translated/sales_order.js:2130 +#: templates/js/translated/sales_order.js:2111 msgid "Delete Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2294 -#: templates/js/translated/sales_order.js:2060 +#: templates/js/translated/purchase_order.js:2278 +#: templates/js/translated/sales_order.js:2041 msgid "Duplicate line item" msgstr "" -#: templates/js/translated/purchase_order.js:2295 +#: templates/js/translated/purchase_order.js:2279 #: templates/js/translated/return_order.js:799 -#: templates/js/translated/sales_order.js:2061 +#: templates/js/translated/sales_order.js:2042 msgid "Edit line item" msgstr "" -#: templates/js/translated/purchase_order.js:2296 +#: templates/js/translated/purchase_order.js:2280 #: templates/js/translated/return_order.js:803 -#: templates/js/translated/sales_order.js:2067 +#: templates/js/translated/sales_order.js:2048 msgid "Delete line item" msgstr "" -#: templates/js/translated/report.js:49 -msgid "Print Report" -msgstr "" - #: templates/js/translated/report.js:68 msgid "Report print successful" msgstr "" @@ -13878,7 +14219,7 @@ msgid "No return orders found" msgstr "" #: templates/js/translated/return_order.js:299 -#: templates/js/translated/sales_order.js:824 +#: templates/js/translated/sales_order.js:783 msgid "Invalid Customer" msgstr "" @@ -13887,7 +14228,7 @@ msgid "Receive Return Order Items" msgstr "" #: templates/js/translated/return_order.js:691 -#: templates/js/translated/sales_order.js:2267 +#: templates/js/translated/sales_order.js:2248 msgid "No matching line items" msgstr "" @@ -13903,188 +14244,181 @@ msgstr "" msgid "Edit Sales Order" msgstr "" -#: templates/js/translated/sales_order.js:291 +#: templates/js/translated/sales_order.js:288 msgid "No stock items have been allocated to this shipment" msgstr "" -#: templates/js/translated/sales_order.js:296 -msgid "The following stock items will be shipped" -msgstr "" - -#: templates/js/translated/sales_order.js:336 +#: templates/js/translated/sales_order.js:294 msgid "Complete Shipment" msgstr "" -#: templates/js/translated/sales_order.js:360 +#: templates/js/translated/sales_order.js:318 msgid "Confirm Shipment" msgstr "" -#: templates/js/translated/sales_order.js:416 +#: templates/js/translated/sales_order.js:375 msgid "No pending shipments found" msgstr "" -#: templates/js/translated/sales_order.js:420 +#: templates/js/translated/sales_order.js:379 msgid "No stock items have been allocated to pending shipments" msgstr "" -#: templates/js/translated/sales_order.js:430 +#: templates/js/translated/sales_order.js:389 msgid "Complete Shipments" msgstr "" -#: templates/js/translated/sales_order.js:452 +#: templates/js/translated/sales_order.js:411 msgid "Skip" msgstr "" -#: templates/js/translated/sales_order.js:484 +#: templates/js/translated/sales_order.js:443 msgid "Ship Sales Order" msgstr "" -#: templates/js/translated/sales_order.js:500 +#: templates/js/translated/sales_order.js:459 msgid "Ship this order?" msgstr "" -#: templates/js/translated/sales_order.js:506 +#: templates/js/translated/sales_order.js:465 msgid "Order cannot be shipped as there are incomplete shipments" msgstr "" -#: templates/js/translated/sales_order.js:513 +#: templates/js/translated/sales_order.js:472 msgid "This order has line items which have not been completed." msgstr "" -#: templates/js/translated/sales_order.js:514 +#: templates/js/translated/sales_order.js:473 msgid "Shipping this order means that the order and line items will no longer be editable." msgstr "" -#: templates/js/translated/sales_order.js:572 +#: templates/js/translated/sales_order.js:531 msgid "Issue this Sales Order?" msgstr "" -#: templates/js/translated/sales_order.js:577 +#: templates/js/translated/sales_order.js:536 msgid "Issue Sales Order" msgstr "" -#: templates/js/translated/sales_order.js:596 +#: templates/js/translated/sales_order.js:555 msgid "Cancel Sales Order" msgstr "" -#: templates/js/translated/sales_order.js:601 +#: templates/js/translated/sales_order.js:560 msgid "Cancelling this order means that the order will no longer be editable." msgstr "" -#: templates/js/translated/sales_order.js:655 +#: templates/js/translated/sales_order.js:614 msgid "Create New Shipment" msgstr "" -#: templates/js/translated/sales_order.js:764 +#: templates/js/translated/sales_order.js:723 msgid "No sales orders found" msgstr "" -#: templates/js/translated/sales_order.js:944 +#: templates/js/translated/sales_order.js:907 msgid "Edit shipment" msgstr "" -#: templates/js/translated/sales_order.js:947 +#: templates/js/translated/sales_order.js:910 msgid "Complete shipment" msgstr "" -#: templates/js/translated/sales_order.js:952 +#: templates/js/translated/sales_order.js:915 msgid "Delete shipment" msgstr "" -#: templates/js/translated/sales_order.js:969 +#: templates/js/translated/sales_order.js:932 msgid "Edit Shipment" msgstr "" -#: templates/js/translated/sales_order.js:984 +#: templates/js/translated/sales_order.js:947 msgid "Delete Shipment" msgstr "" -#: templates/js/translated/sales_order.js:1017 +#: templates/js/translated/sales_order.js:989 msgid "No matching shipments found" msgstr "" -#: templates/js/translated/sales_order.js:1042 +#: templates/js/translated/sales_order.js:1015 msgid "Shipment Reference" msgstr "" -#: templates/js/translated/sales_order.js:1066 -#: templates/js/translated/sales_order.js:1565 +#: templates/js/translated/sales_order.js:1032 +#: templates/js/translated/sales_order.js:1531 msgid "Not shipped" msgstr "" -#: templates/js/translated/sales_order.js:1084 +#: templates/js/translated/sales_order.js:1050 msgid "Tracking" msgstr "" -#: templates/js/translated/sales_order.js:1088 +#: templates/js/translated/sales_order.js:1054 msgid "Invoice" msgstr "" -#: templates/js/translated/sales_order.js:1255 +#: templates/js/translated/sales_order.js:1221 msgid "Add Shipment" msgstr "" -#: templates/js/translated/sales_order.js:1306 +#: templates/js/translated/sales_order.js:1272 msgid "Confirm stock allocation" msgstr "" -#: templates/js/translated/sales_order.js:1307 +#: templates/js/translated/sales_order.js:1273 msgid "Allocate Stock Items to Sales Order" msgstr "" -#: templates/js/translated/sales_order.js:1513 +#: templates/js/translated/sales_order.js:1479 msgid "No sales order allocations found" msgstr "" -#: templates/js/translated/sales_order.js:1605 +#: templates/js/translated/sales_order.js:1571 msgid "Edit Stock Allocation" msgstr "" -#: templates/js/translated/sales_order.js:1619 +#: templates/js/translated/sales_order.js:1585 msgid "Confirm Delete Operation" msgstr "" -#: templates/js/translated/sales_order.js:1620 +#: templates/js/translated/sales_order.js:1586 msgid "Delete Stock Allocation" msgstr "" -#: templates/js/translated/sales_order.js:1659 -#: templates/js/translated/sales_order.js:1746 +#: templates/js/translated/sales_order.js:1640 +#: templates/js/translated/sales_order.js:1727 #: templates/js/translated/stock.js:1861 msgid "Shipped to customer" msgstr "" -#: templates/js/translated/sales_order.js:1667 -#: templates/js/translated/sales_order.js:1755 +#: templates/js/translated/sales_order.js:1648 +#: templates/js/translated/sales_order.js:1736 msgid "Stock location not specified" msgstr "" -#: templates/js/translated/sales_order.js:2044 -msgid "Allocate serial numbers" -msgstr "" - -#: templates/js/translated/sales_order.js:2048 -msgid "Purchase stock" -msgstr "" - -#: templates/js/translated/sales_order.js:2057 -#: templates/js/translated/sales_order.js:2245 -msgid "Calculate price" -msgstr "" - -#: templates/js/translated/sales_order.js:2071 -msgid "Cannot be deleted as items have been shipped" -msgstr "" - -#: templates/js/translated/sales_order.js:2074 -msgid "Cannot be deleted as items have been allocated" -msgstr "" - -#: templates/js/translated/sales_order.js:2145 +#: templates/js/translated/sales_order.js:2025 +#: templates/js/translated/sales_order.js:2126 msgid "Allocate Serial Numbers" msgstr "" -#: templates/js/translated/sales_order.js:2253 +#: templates/js/translated/sales_order.js:2029 +msgid "Purchase stock" +msgstr "" + +#: templates/js/translated/sales_order.js:2038 +#: templates/js/translated/sales_order.js:2226 +msgid "Calculate price" +msgstr "" + +#: templates/js/translated/sales_order.js:2052 +msgid "Cannot be deleted as items have been shipped" +msgstr "" + +#: templates/js/translated/sales_order.js:2055 +msgid "Cannot be deleted as items have been allocated" +msgstr "" + +#: templates/js/translated/sales_order.js:2234 msgid "Update Unit Price" msgstr "" @@ -14209,11 +14543,8 @@ msgid "Find Serial Number" msgstr "" #: templates/js/translated/stock.js:603 templates/js/translated/stock.js:604 -msgid "Enter serial number" -msgstr "" - #: templates/js/translated/stock.js:620 -msgid "Enter a serial number" +msgid "Enter serial number" msgstr "" #: templates/js/translated/stock.js:640 @@ -14284,7 +14615,7 @@ msgstr "" msgid "Add Stock" msgstr "" -#: templates/js/translated/stock.js:1049 users/models.py:396 +#: templates/js/translated/stock.js:1049 users/models.py:398 msgid "Add" msgstr "" @@ -14308,7 +14639,7 @@ msgstr "" msgid "Adjust packaging" msgstr "" -#: templates/js/translated/stock.js:1256 templates/js/translated/stock.js:3382 +#: templates/js/translated/stock.js:1256 templates/js/translated/stock.js:3383 msgid "Select Stock Items" msgstr "" @@ -14320,18 +14651,6 @@ msgstr "" msgid "Confirm stock adjustment" msgstr "" -#: templates/js/translated/stock.js:1448 -msgid "PASS" -msgstr "" - -#: templates/js/translated/stock.js:1450 -msgid "FAIL" -msgstr "" - -#: templates/js/translated/stock.js:1455 -msgid "NO RESULT" -msgstr "" - #: templates/js/translated/stock.js:1535 msgid "Pass test" msgstr "" @@ -14388,216 +14707,216 @@ msgstr "" msgid "No stock location set" msgstr "" -#: templates/js/translated/stock.js:1927 +#: templates/js/translated/stock.js:1928 msgid "Change stock status" msgstr "" -#: templates/js/translated/stock.js:1936 +#: templates/js/translated/stock.js:1937 msgid "Merge stock" msgstr "" -#: templates/js/translated/stock.js:1985 +#: templates/js/translated/stock.js:1986 msgid "Delete stock" msgstr "" -#: templates/js/translated/stock.js:2038 +#: templates/js/translated/stock.js:2039 msgid "stock items" msgstr "" -#: templates/js/translated/stock.js:2043 +#: templates/js/translated/stock.js:2044 msgid "Scan to location" msgstr "" -#: templates/js/translated/stock.js:2054 +#: templates/js/translated/stock.js:2055 msgid "Stock Actions" msgstr "" -#: templates/js/translated/stock.js:2098 +#: templates/js/translated/stock.js:2099 msgid "Load installed items" msgstr "" -#: templates/js/translated/stock.js:2176 +#: templates/js/translated/stock.js:2177 msgid "Stock item is in production" msgstr "" -#: templates/js/translated/stock.js:2181 +#: templates/js/translated/stock.js:2182 msgid "Stock item assigned to sales order" msgstr "" -#: templates/js/translated/stock.js:2184 +#: templates/js/translated/stock.js:2185 msgid "Stock item assigned to customer" msgstr "" -#: templates/js/translated/stock.js:2187 +#: templates/js/translated/stock.js:2188 msgid "Serialized stock item has been allocated" msgstr "" -#: templates/js/translated/stock.js:2189 +#: templates/js/translated/stock.js:2190 msgid "Stock item has been fully allocated" msgstr "" -#: templates/js/translated/stock.js:2191 +#: templates/js/translated/stock.js:2192 msgid "Stock item has been partially allocated" msgstr "" -#: templates/js/translated/stock.js:2194 +#: templates/js/translated/stock.js:2195 msgid "Stock item has been installed in another item" msgstr "" -#: templates/js/translated/stock.js:2196 +#: templates/js/translated/stock.js:2197 msgid "Stock item has been consumed by a build order" msgstr "" -#: templates/js/translated/stock.js:2200 +#: templates/js/translated/stock.js:2201 msgid "Stock item has expired" msgstr "" -#: templates/js/translated/stock.js:2202 +#: templates/js/translated/stock.js:2203 msgid "Stock item will expire soon" msgstr "" -#: templates/js/translated/stock.js:2207 +#: templates/js/translated/stock.js:2208 msgid "Stock item has been rejected" msgstr "" -#: templates/js/translated/stock.js:2209 +#: templates/js/translated/stock.js:2210 msgid "Stock item is lost" msgstr "" -#: templates/js/translated/stock.js:2211 +#: templates/js/translated/stock.js:2212 msgid "Stock item is destroyed" msgstr "" -#: templates/js/translated/stock.js:2215 +#: templates/js/translated/stock.js:2216 #: templates/js/translated/table_filters.js:357 msgid "Depleted" msgstr "" -#: templates/js/translated/stock.js:2380 +#: templates/js/translated/stock.js:2381 msgid "Supplier part not specified" msgstr "" -#: templates/js/translated/stock.js:2427 +#: templates/js/translated/stock.js:2428 msgid "Stock Value" msgstr "" -#: templates/js/translated/stock.js:2555 +#: templates/js/translated/stock.js:2556 msgid "No stock items matching query" msgstr "" -#: templates/js/translated/stock.js:2658 +#: templates/js/translated/stock.js:2659 msgid "stock locations" msgstr "" -#: templates/js/translated/stock.js:2813 +#: templates/js/translated/stock.js:2814 msgid "Load Sublocations" msgstr "" -#: templates/js/translated/stock.js:2930 +#: templates/js/translated/stock.js:2931 msgid "Details" msgstr "" -#: templates/js/translated/stock.js:2934 +#: templates/js/translated/stock.js:2935 msgid "No changes" msgstr "" -#: templates/js/translated/stock.js:2946 +#: templates/js/translated/stock.js:2947 msgid "Part information unavailable" msgstr "" -#: templates/js/translated/stock.js:2968 +#: templates/js/translated/stock.js:2969 msgid "Location no longer exists" msgstr "" -#: templates/js/translated/stock.js:2985 +#: templates/js/translated/stock.js:2986 msgid "Build order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3000 +#: templates/js/translated/stock.js:3001 msgid "Purchase order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3017 +#: templates/js/translated/stock.js:3018 msgid "Sales Order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3034 +#: templates/js/translated/stock.js:3035 msgid "Return Order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3053 +#: templates/js/translated/stock.js:3054 msgid "Customer no longer exists" msgstr "" -#: templates/js/translated/stock.js:3071 +#: templates/js/translated/stock.js:3072 msgid "Stock item no longer exists" msgstr "" -#: templates/js/translated/stock.js:3089 +#: templates/js/translated/stock.js:3090 msgid "Added" msgstr "" -#: templates/js/translated/stock.js:3097 +#: templates/js/translated/stock.js:3098 msgid "Removed" msgstr "" -#: templates/js/translated/stock.js:3169 +#: templates/js/translated/stock.js:3170 msgid "No installed items" msgstr "" -#: templates/js/translated/stock.js:3223 templates/js/translated/stock.js:3259 +#: templates/js/translated/stock.js:3224 templates/js/translated/stock.js:3260 msgid "Uninstall Stock Item" msgstr "" -#: templates/js/translated/stock.js:3280 +#: templates/js/translated/stock.js:3281 msgid "Select stock item to uninstall" msgstr "" -#: templates/js/translated/stock.js:3301 +#: templates/js/translated/stock.js:3302 msgid "Install another stock item into this item" msgstr "" -#: templates/js/translated/stock.js:3302 +#: templates/js/translated/stock.js:3303 msgid "Stock items can only be installed if they meet the following criteria" msgstr "" -#: templates/js/translated/stock.js:3304 +#: templates/js/translated/stock.js:3305 msgid "The Stock Item links to a Part which is the BOM for this Stock Item" msgstr "" -#: templates/js/translated/stock.js:3305 +#: templates/js/translated/stock.js:3306 msgid "The Stock Item is currently available in stock" msgstr "" -#: templates/js/translated/stock.js:3306 +#: templates/js/translated/stock.js:3307 msgid "The Stock Item is not already installed in another item" msgstr "" -#: templates/js/translated/stock.js:3307 +#: templates/js/translated/stock.js:3308 msgid "The Stock Item is tracked by either a batch code or serial number" msgstr "" -#: templates/js/translated/stock.js:3320 +#: templates/js/translated/stock.js:3321 msgid "Select part to install" msgstr "" -#: templates/js/translated/stock.js:3383 +#: templates/js/translated/stock.js:3384 msgid "Select one or more stock items" msgstr "" -#: templates/js/translated/stock.js:3396 +#: templates/js/translated/stock.js:3397 msgid "Selected stock items" msgstr "" -#: templates/js/translated/stock.js:3400 +#: templates/js/translated/stock.js:3401 msgid "Change Stock Status" msgstr "" -#: templates/js/translated/stock.js:3477 +#: templates/js/translated/stock.js:3478 msgid "This week" msgstr "" -#: templates/js/translated/stock.js:3485 +#: templates/js/translated/stock.js:3486 msgid "This month" msgstr "" @@ -14734,10 +15053,6 @@ msgstr "" msgid "Show items which are in production" msgstr "" -#: templates/js/translated/table_filters.js:372 -msgid "Include Variants" -msgstr "" - #: templates/js/translated/table_filters.js:373 msgid "Include stock items for variant parts" msgstr "" @@ -15012,10 +15327,6 @@ msgstr "" msgid "An error occurred while attempting to login via your social network account." msgstr "" -#: templates/socialaccount/authentication_error.html:13 -msgid "Contact your system administrator for further information." -msgstr "" - #: templates/socialaccount/login.html:13 #, python-format msgid "Connect %(provider)s" @@ -15141,27 +15452,27 @@ msgstr "" msgid "No" msgstr "" -#: users/admin.py:104 +#: users/admin.py:101 msgid "Users" msgstr "" -#: users/admin.py:105 +#: users/admin.py:102 msgid "Select which users are assigned to this group" msgstr "" -#: users/admin.py:249 +#: users/admin.py:246 msgid "The following users are members of multiple groups" msgstr "" -#: users/admin.py:283 +#: users/admin.py:280 msgid "Personal info" msgstr "" -#: users/admin.py:285 +#: users/admin.py:282 msgid "Permissions" msgstr "" -#: users/admin.py:288 +#: users/admin.py:285 msgid "Important dates" msgstr "" @@ -15205,35 +15516,35 @@ msgstr "" msgid "Revoked" msgstr "" -#: users/models.py:379 +#: users/models.py:381 msgid "Permission set" msgstr "" -#: users/models.py:388 +#: users/models.py:390 msgid "Group" msgstr "" -#: users/models.py:392 +#: users/models.py:394 msgid "View" msgstr "" -#: users/models.py:392 +#: users/models.py:394 msgid "Permission to view items" msgstr "" -#: users/models.py:396 +#: users/models.py:398 msgid "Permission to add items" msgstr "" -#: users/models.py:400 +#: users/models.py:402 msgid "Change" msgstr "" -#: users/models.py:402 +#: users/models.py:404 msgid "Permissions to edit items" msgstr "" -#: users/models.py:408 +#: users/models.py:410 msgid "Permission to delete items" msgstr "" diff --git a/src/backend/InvenTree/locale/sl/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/sl/LC_MESSAGES/django.po index 98343eefb0..a6392f9e1e 100644 --- a/src/backend/InvenTree/locale/sl/LC_MESSAGES/django.po +++ b/src/backend/InvenTree/locale/sl/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-08-20 01:22+0000\n" -"PO-Revision-Date: 2024-08-20 19:51\n" +"POT-Creation-Date: 2024-11-04 03:11+0000\n" +"PO-Revision-Date: 2024-11-04 03:14\n" "Last-Translator: \n" "Language-Team: Slovenian\n" "Language: sl_SI\n" @@ -14,81 +14,89 @@ msgstr "" "X-Crowdin-Project: inventree\n" "X-Crowdin-Project-ID: 452300\n" "X-Crowdin-Language: sl\n" -"X-Crowdin-File: /[inventree.InvenTree] l10/src/backend/InvenTree/locale/en/LC_MESSAGES/django.po\n" -"X-Crowdin-File-ID: 216\n" +"X-Crowdin-File: /src/backend/InvenTree/locale/en/LC_MESSAGES/django.po\n" +"X-Crowdin-File-ID: 250\n" -#: InvenTree/api.py:269 +#: InvenTree/api.py:270 msgid "API endpoint not found" msgstr "API vmesnik ni najden" -#: InvenTree/api.py:502 +#: InvenTree/api.py:387 +msgid "Invalid items list provided" +msgstr "" + +#: InvenTree/api.py:396 +msgid "Invalid filters provided" +msgstr "" + +#: InvenTree/api.py:401 +msgid "No items found to delete" +msgstr "" + +#: InvenTree/api.py:515 msgid "User does not have permission to view this model" msgstr "Uporabnik nima dovoljenja pogleda tega modela" -#: InvenTree/conversion.py:160 +#: InvenTree/conversion.py:161 #, python-brace-format msgid "Invalid unit provided ({unit})" msgstr "Vnesena napačna enota ({unit})" -#: InvenTree/conversion.py:177 +#: InvenTree/conversion.py:178 msgid "No value provided" msgstr "Vrednost ni vnesena" -#: InvenTree/conversion.py:204 +#: InvenTree/conversion.py:205 #, python-brace-format msgid "Could not convert {original} to {unit}" msgstr "Ni mogoče pretvoriti {original} v {unit}" -#: InvenTree/conversion.py:206 -msgid "Invalid quantity supplied" -msgstr "Vnesena napačna količina" +#: InvenTree/conversion.py:207 InvenTree/conversion.py:221 +#: InvenTree/helpers.py:505 order/models.py:589 order/models.py:832 +msgid "Invalid quantity provided" +msgstr "Podana napačna količina" -#: InvenTree/conversion.py:220 -#, python-brace-format -msgid "Invalid quantity supplied ({exc})" -msgstr "Vnesena napačna količina ({exc})" - -#: InvenTree/exceptions.py:108 +#: InvenTree/exceptions.py:104 msgid "Error details can be found in the admin panel" msgstr "Podrobnosti napake so vidne v pogledu administratorja" -#: InvenTree/fields.py:136 +#: InvenTree/fields.py:135 msgid "Enter date" msgstr "Vnesi datum" -#: InvenTree/fields.py:205 InvenTree/models.py:929 build/serializers.py:468 -#: build/serializers.py:546 build/templates/build/sidebar.html:29 -#: company/models.py:836 +#: InvenTree/fields.py:204 InvenTree/models.py:928 build/serializers.py:512 +#: build/serializers.py:590 build/templates/build/sidebar.html:29 +#: company/models.py:833 #: company/templates/company/manufacturer_part_sidebar.html:11 #: company/templates/company/sidebar.html:37 -#: company/templates/company/supplier_part_sidebar.html:11 order/models.py:1380 +#: company/templates/company/supplier_part_sidebar.html:11 order/models.py:1397 #: order/templates/order/po_sidebar.html:11 #: order/templates/order/return_order_sidebar.html:9 #: order/templates/order/so_sidebar.html:17 part/admin.py:59 -#: part/models.py:3297 part/templates/part/part_sidebar.html:65 +#: part/models.py:3348 part/templates/part/part_sidebar.html:65 #: report/templates/report/inventree_build_order_report.html:172 -#: stock/admin.py:230 stock/models.py:2375 stock/models.py:2563 -#: stock/serializers.py:698 stock/serializers.py:856 stock/serializers.py:982 -#: stock/serializers.py:1032 stock/serializers.py:1343 -#: stock/serializers.py:1432 stock/serializers.py:1597 +#: stock/admin.py:231 stock/models.py:2494 stock/models.py:2679 +#: stock/serializers.py:725 stock/serializers.py:887 stock/serializers.py:1013 +#: stock/serializers.py:1063 stock/serializers.py:1374 +#: stock/serializers.py:1463 stock/serializers.py:1628 #: stock/templates/stock/stock_sidebar.html:25 #: templates/js/translated/barcode.js:143 templates/js/translated/bom.js:1265 -#: templates/js/translated/company.js:1684 templates/js/translated/order.js:372 +#: templates/js/translated/company.js:1685 templates/js/translated/order.js:372 #: templates/js/translated/part.js:1087 -#: templates/js/translated/purchase_order.js:2270 +#: templates/js/translated/purchase_order.js:2254 #: templates/js/translated/return_order.js:774 -#: templates/js/translated/sales_order.js:1103 -#: templates/js/translated/sales_order.js:2018 -#: templates/js/translated/stock.js:1621 templates/js/translated/stock.js:2513 +#: templates/js/translated/sales_order.js:1069 +#: templates/js/translated/sales_order.js:1999 +#: templates/js/translated/stock.js:1621 templates/js/translated/stock.js:2514 msgid "Notes" msgstr "Zapiski" -#: InvenTree/format.py:164 +#: InvenTree/format.py:162 #, python-brace-format msgid "Value '{name}' does not appear in pattern format" msgstr "Vrednost '{name}' ni v predpisanem formatu" -#: InvenTree/format.py:175 +#: InvenTree/format.py:173 msgid "Provided value does not match required pattern: " msgstr "Podana vrednost se ujema s predpisanim vzorcem: " @@ -132,397 +140,409 @@ msgstr "" msgid "The provided primary email address is not valid." msgstr "Podana epošta ni veljavna." -#: InvenTree/forms.py:274 +#: InvenTree/forms.py:273 msgid "The provided email domain is not approved." msgstr "Domena epošte ni podprta." -#: InvenTree/forms.py:403 +#: InvenTree/forms.py:402 msgid "Registration is disabled." msgstr "Registracija je onemogočena." -#: InvenTree/helpers.py:491 order/models.py:567 order/models.py:810 -msgid "Invalid quantity provided" -msgstr "Podana napačna količina" +#: InvenTree/helpers.py:509 +msgid "Cannot serialize more than 1000 items at once" +msgstr "" -#: InvenTree/helpers.py:499 +#: InvenTree/helpers.py:515 msgid "Empty serial number string" msgstr "Prazno polje serijske številke" -#: InvenTree/helpers.py:528 +#: InvenTree/helpers.py:544 msgid "Duplicate serial" msgstr "Dvojna serijska številka" -#: InvenTree/helpers.py:560 InvenTree/helpers.py:603 +#: InvenTree/helpers.py:576 InvenTree/helpers.py:619 InvenTree/helpers.py:637 +#: InvenTree/helpers.py:644 InvenTree/helpers.py:663 #, python-brace-format -msgid "Invalid group range: {group}" -msgstr "Neveljavni doseg skupine: {group}" +msgid "Invalid group: {group}" +msgstr "" -#: InvenTree/helpers.py:591 +#: InvenTree/helpers.py:607 #, python-brace-format msgid "Group range {group} exceeds allowed quantity ({expected_quantity})" msgstr "Doseg skupine {group} presega dovoljene količine ({expected_quantity})" -#: InvenTree/helpers.py:621 InvenTree/helpers.py:628 InvenTree/helpers.py:647 -#, python-brace-format -msgid "Invalid group sequence: {group}" -msgstr "Nepravilno zaporedje skupine: {group}" - -#: InvenTree/helpers.py:657 +#: InvenTree/helpers.py:673 msgid "No serial numbers found" msgstr "Serijske številke niso najdene" -#: InvenTree/helpers.py:662 +#: InvenTree/helpers.py:678 msgid "Number of unique serial numbers ({len(serials)}) must match quantity ({expected_quantity})" msgstr "Število unikatnih serijskih številk ({len(serials)}) se mora ujemati s količino ({expected_quantity})" -#: InvenTree/helpers.py:780 +#: InvenTree/helpers.py:796 msgid "Remove HTML tags from this value" msgstr "Odstranite oznako HTML iz te vrednosti" -#: InvenTree/helpers_model.py:133 +#: InvenTree/helpers.py:881 +msgid "Data contains prohibited markdown content" +msgstr "" + +#: InvenTree/helpers_model.py:130 msgid "Connection error" msgstr "Napaka povezave" -#: InvenTree/helpers_model.py:138 InvenTree/helpers_model.py:145 +#: InvenTree/helpers_model.py:135 InvenTree/helpers_model.py:142 msgid "Server responded with invalid status code" msgstr "Odziv serverja: napravilni status kode" -#: InvenTree/helpers_model.py:141 +#: InvenTree/helpers_model.py:138 msgid "Exception occurred" msgstr "Pojavila se je izjema" -#: InvenTree/helpers_model.py:151 +#: InvenTree/helpers_model.py:148 msgid "Server responded with invalid Content-Length value" msgstr "Odziv serverja: napačna dolžina vrednosti" -#: InvenTree/helpers_model.py:154 +#: InvenTree/helpers_model.py:151 msgid "Image size is too large" msgstr "Prevelika velikost slike" -#: InvenTree/helpers_model.py:166 +#: InvenTree/helpers_model.py:163 msgid "Image download exceeded maximum size" msgstr "Prenos slike presegel največjo velikost" -#: InvenTree/helpers_model.py:171 +#: InvenTree/helpers_model.py:168 msgid "Remote server returned empty response" msgstr "Oddaljeni server vrnil prazen odziv" -#: InvenTree/helpers_model.py:179 +#: InvenTree/helpers_model.py:176 msgid "Supplied URL is not a valid image file" msgstr "Podani URL ni veljavna slikovna datoteka" -#: InvenTree/locales.py:18 +#: InvenTree/locales.py:20 msgid "Arabic" msgstr "" -#: InvenTree/locales.py:19 +#: InvenTree/locales.py:21 msgid "Bulgarian" msgstr "Bolgarščina" -#: InvenTree/locales.py:20 +#: InvenTree/locales.py:22 msgid "Czech" msgstr "Češko" -#: InvenTree/locales.py:21 +#: InvenTree/locales.py:23 msgid "Danish" msgstr "Danščina" -#: InvenTree/locales.py:22 +#: InvenTree/locales.py:24 msgid "German" msgstr "Nemščina" -#: InvenTree/locales.py:23 +#: InvenTree/locales.py:25 msgid "Greek" msgstr "Grščina" -#: InvenTree/locales.py:24 +#: InvenTree/locales.py:26 msgid "English" msgstr "Angleščina" -#: InvenTree/locales.py:25 +#: InvenTree/locales.py:27 msgid "Spanish" msgstr "Španščina" -#: InvenTree/locales.py:26 +#: InvenTree/locales.py:28 msgid "Spanish (Mexican)" msgstr "Španščina (Mehiško)" -#: InvenTree/locales.py:27 +#: InvenTree/locales.py:29 msgid "Estonian" msgstr "" -#: InvenTree/locales.py:28 +#: InvenTree/locales.py:30 msgid "Farsi / Persian" msgstr "Farsi / Perzijsko" -#: InvenTree/locales.py:29 +#: InvenTree/locales.py:31 msgid "Finnish" msgstr "Finščina" -#: InvenTree/locales.py:30 +#: InvenTree/locales.py:32 msgid "French" msgstr "Francoščina" -#: InvenTree/locales.py:31 +#: InvenTree/locales.py:33 msgid "Hebrew" msgstr "Hebrejščina" -#: InvenTree/locales.py:32 +#: InvenTree/locales.py:34 msgid "Hindi" msgstr "Hindujščina" -#: InvenTree/locales.py:33 +#: InvenTree/locales.py:35 msgid "Hungarian" msgstr "Madžarščina" -#: InvenTree/locales.py:34 +#: InvenTree/locales.py:36 msgid "Italian" msgstr "Italijanščina" -#: InvenTree/locales.py:35 +#: InvenTree/locales.py:37 msgid "Japanese" msgstr "Japonščina" -#: InvenTree/locales.py:36 +#: InvenTree/locales.py:38 msgid "Korean" msgstr "Korejščina" -#: InvenTree/locales.py:37 +#: InvenTree/locales.py:39 +msgid "Lithuanian" +msgstr "" + +#: InvenTree/locales.py:40 msgid "Latvian" msgstr "Latvijščina" -#: InvenTree/locales.py:38 +#: InvenTree/locales.py:41 msgid "Dutch" msgstr "Nizozemščina" -#: InvenTree/locales.py:39 +#: InvenTree/locales.py:42 msgid "Norwegian" msgstr "Norveščina" -#: InvenTree/locales.py:40 +#: InvenTree/locales.py:43 msgid "Polish" msgstr "Poljščina" -#: InvenTree/locales.py:41 +#: InvenTree/locales.py:44 msgid "Portuguese" msgstr "Portugalščina" -#: InvenTree/locales.py:42 +#: InvenTree/locales.py:45 msgid "Portuguese (Brazilian)" msgstr "Portugalščina (Brazilsko)" -#: InvenTree/locales.py:43 +#: InvenTree/locales.py:46 msgid "Romanian" msgstr "" -#: InvenTree/locales.py:44 +#: InvenTree/locales.py:47 msgid "Russian" msgstr "Ruščina" -#: InvenTree/locales.py:45 +#: InvenTree/locales.py:48 msgid "Slovak" msgstr "Slovaščina" -#: InvenTree/locales.py:46 +#: InvenTree/locales.py:49 msgid "Slovenian" msgstr "Slovenščina" -#: InvenTree/locales.py:47 +#: InvenTree/locales.py:50 msgid "Serbian" msgstr "Srbščina" -#: InvenTree/locales.py:48 +#: InvenTree/locales.py:51 msgid "Swedish" msgstr "Švedščina" -#: InvenTree/locales.py:49 +#: InvenTree/locales.py:52 msgid "Thai" msgstr "Tajščina" -#: InvenTree/locales.py:50 +#: InvenTree/locales.py:53 msgid "Turkish" msgstr "Turščina" -#: InvenTree/locales.py:51 +#: InvenTree/locales.py:54 msgid "Ukrainian" msgstr "" -#: InvenTree/locales.py:52 +#: InvenTree/locales.py:55 msgid "Vietnamese" msgstr "Vietnamščina" -#: InvenTree/locales.py:53 +#: InvenTree/locales.py:56 msgid "Chinese (Simplified)" msgstr "Kitajščina (poenostavljena)" -#: InvenTree/locales.py:54 +#: InvenTree/locales.py:57 msgid "Chinese (Traditional)" msgstr "Kitajščina (tradicionalno)" #: InvenTree/magic_login.py:28 -#, python-brace-format -msgid "[{site_name}] Log in to the app" -msgstr "[{site_name}] Prijavite se v aplikacijo" +msgid "Log in to the app" +msgstr "" -#: InvenTree/magic_login.py:38 InvenTree/serializers.py:415 -#: company/models.py:136 company/templates/company/company_base.html:138 +#: InvenTree/magic_login.py:38 InvenTree/serializers.py:416 +#: company/models.py:133 company/templates/company/company_base.html:138 #: templates/InvenTree/settings/user.html:49 -#: templates/js/translated/company.js:677 +#: templates/js/translated/company.js:678 msgid "Email" msgstr "E-pošta" -#: InvenTree/models.py:103 +#: InvenTree/models.py:105 msgid "Error running plugin validation" msgstr "Napaka pri izvajanju preverjanja vtičnika" -#: InvenTree/models.py:172 +#: InvenTree/models.py:174 msgid "Metadata must be a python dict object" msgstr "Metapodatki morajo biti objekt tipa python dict" -#: InvenTree/models.py:178 +#: InvenTree/models.py:180 msgid "Plugin Metadata" msgstr "Metapodatki vtičnika" -#: InvenTree/models.py:179 +#: InvenTree/models.py:181 msgid "JSON metadata field, for use by external plugins" msgstr "Polje metapodatkov JSON za uporabo pri zunanjih vtičnikih" -#: InvenTree/models.py:409 +#: InvenTree/models.py:408 msgid "Improperly formatted pattern" msgstr "Nepravilno nastavljen vzorec" -#: InvenTree/models.py:416 +#: InvenTree/models.py:415 msgid "Unknown format key specified" msgstr "Nastavljen neprepoznan ključ formata" -#: InvenTree/models.py:422 +#: InvenTree/models.py:421 msgid "Missing required format key" msgstr "Manjka obvezen ključ formata" -#: InvenTree/models.py:433 +#: InvenTree/models.py:432 msgid "Reference field cannot be empty" msgstr "Referenčno polje ne sme biti prazno" -#: InvenTree/models.py:441 +#: InvenTree/models.py:440 msgid "Reference must match required pattern" msgstr "Referenca se mora ujemati s vzorcem" -#: InvenTree/models.py:472 +#: InvenTree/models.py:471 msgid "Reference number is too large" msgstr "Referenčna številka prevelika" -#: InvenTree/models.py:723 +#: InvenTree/models.py:722 msgid "Duplicate names cannot exist under the same parent" msgstr "Podvojena imena ne morejo obstajati pod istim nadrejenim elementom" -#: InvenTree/models.py:740 +#: InvenTree/models.py:739 msgid "Invalid choice" msgstr "Nedovoljena izbira" -#: InvenTree/models.py:770 common/models.py:2702 common/models.py:3132 -#: common/serializers.py:412 company/models.py:593 machine/models.py:24 -#: part/models.py:983 part/models.py:3764 plugin/models.py:51 -#: report/models.py:149 stock/models.py:77 +#: InvenTree/models.py:769 common/models.py:2766 common/models.py:3193 +#: common/models.py:3413 common/serializers.py:460 company/models.py:590 +#: machine/models.py:24 part/models.py:1044 part/models.py:3815 +#: plugin/models.py:51 report/models.py:149 stock/models.py:83 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/notifications.html:17 #: templates/InvenTree/settings/plugin.html:83 #: templates/InvenTree/settings/plugin_settings.html:22 #: templates/InvenTree/settings/settings_staff_js.html:67 #: templates/InvenTree/settings/settings_staff_js.html:454 -#: templates/js/translated/company.js:676 -#: templates/js/translated/company.js:724 -#: templates/js/translated/company.js:913 -#: templates/js/translated/company.js:1165 -#: templates/js/translated/company.js:1413 templates/js/translated/part.js:1193 +#: templates/js/translated/company.js:677 +#: templates/js/translated/company.js:725 +#: templates/js/translated/company.js:914 +#: templates/js/translated/company.js:1166 +#: templates/js/translated/company.js:1414 templates/js/translated/part.js:1193 #: templates/js/translated/part.js:1481 templates/js/translated/part.js:1617 -#: templates/js/translated/part.js:2768 templates/js/translated/stock.js:2801 +#: templates/js/translated/part.js:2768 templates/js/translated/stock.js:2802 msgid "Name" msgstr "Ime" -#: InvenTree/models.py:776 build/models.py:250 -#: build/templates/build/detail.html:24 common/models.py:156 -#: company/models.py:521 company/models.py:827 +#: InvenTree/models.py:775 build/models.py:251 +#: build/templates/build/detail.html:24 common/models.py:159 +#: company/models.py:518 company/models.py:824 #: company/templates/company/company_base.html:77 #: company/templates/company/manufacturer_part.html:75 -#: company/templates/company/supplier_part.html:107 order/models.py:288 -#: order/models.py:1413 part/admin.py:305 part/admin.py:411 part/models.py:1006 -#: part/models.py:3779 part/templates/part/category.html:79 -#: part/templates/part/part_base.html:170 +#: company/templates/company/supplier_part.html:108 order/models.py:295 +#: order/models.py:1430 part/admin.py:305 part/admin.py:411 part/models.py:1067 +#: part/models.py:3830 part/templates/part/category.html:79 +#: part/templates/part/part_base.html:171 #: part/templates/part/part_scheduling.html:12 report/models.py:155 -#: report/models.py:509 report/models.py:535 +#: report/models.py:517 report/models.py:543 #: report/templates/report/inventree_build_order_report.html:117 -#: stock/admin.py:54 stock/models.py:83 stock/templates/stock/location.html:122 +#: stock/admin.py:54 stock/models.py:89 stock/templates/stock/location.html:123 #: templates/InvenTree/settings/notifications.html:19 #: templates/InvenTree/settings/plugin_settings.html:27 #: templates/InvenTree/settings/settings_staff_js.html:170 #: templates/InvenTree/settings/settings_staff_js.html:459 #: templates/js/translated/bom.js:633 templates/js/translated/bom.js:963 -#: templates/js/translated/build.js:2311 templates/js/translated/company.js:519 -#: templates/js/translated/company.js:1330 -#: templates/js/translated/company.js:1641 templates/js/translated/index.js:119 +#: templates/js/translated/build.js:2314 templates/js/translated/company.js:520 +#: templates/js/translated/company.js:1331 +#: templates/js/translated/company.js:1642 templates/js/translated/index.js:119 #: templates/js/translated/order.js:323 templates/js/translated/part.js:1245 #: templates/js/translated/part.js:1490 templates/js/translated/part.js:1628 #: templates/js/translated/part.js:1965 templates/js/translated/part.js:2361 #: templates/js/translated/part.js:2803 templates/js/translated/part.js:2915 #: templates/js/translated/plugin.js:80 -#: templates/js/translated/purchase_order.js:1776 -#: templates/js/translated/purchase_order.js:1919 -#: templates/js/translated/purchase_order.js:2092 +#: templates/js/translated/purchase_order.js:1760 +#: templates/js/translated/purchase_order.js:1903 +#: templates/js/translated/purchase_order.js:2076 #: templates/js/translated/return_order.js:313 -#: templates/js/translated/sales_order.js:838 -#: templates/js/translated/sales_order.js:1848 -#: templates/js/translated/stock.js:1600 templates/js/translated/stock.js:2143 -#: templates/js/translated/stock.js:2832 templates/js/translated/stock.js:2915 +#: templates/js/translated/sales_order.js:797 +#: templates/js/translated/sales_order.js:1829 +#: templates/js/translated/stock.js:1600 templates/js/translated/stock.js:2144 +#: templates/js/translated/stock.js:2833 templates/js/translated/stock.js:2916 msgid "Description" msgstr "Opis" -#: InvenTree/models.py:777 stock/models.py:84 +#: InvenTree/models.py:776 stock/models.py:90 msgid "Description (optional)" msgstr "Opis (opcijsko)" -#: InvenTree/models.py:792 templates/js/translated/part.js:2812 -#: templates/js/translated/stock.js:2841 +#: InvenTree/models.py:791 common/models.py:3546 +#: templates/js/translated/part.js:2812 templates/js/translated/stock.js:2842 msgid "Path" msgstr "Pot" -#: InvenTree/models.py:929 +#: InvenTree/models.py:928 msgid "Markdown notes (optional)" msgstr "Markdown opombe (neobvezno)" -#: InvenTree/models.py:960 +#: InvenTree/models.py:959 msgid "Barcode Data" msgstr "Podatki čtrne kode" -#: InvenTree/models.py:961 +#: InvenTree/models.py:960 msgid "Third party barcode data" msgstr "Podatki črtne kode tretje osebe" -#: InvenTree/models.py:967 +#: InvenTree/models.py:966 msgid "Barcode Hash" msgstr "Oznaka črtne kode" -#: InvenTree/models.py:968 +#: InvenTree/models.py:967 msgid "Unique hash of barcode data" msgstr "Enolična oznaka podatkov črtne kode" -#: InvenTree/models.py:1035 +#: InvenTree/models.py:1034 msgid "Existing barcode found" msgstr "Črtna koda že obstaja" -#: InvenTree/models.py:1078 +#: InvenTree/models.py:1112 +msgid "Task Failure" +msgstr "" + +#: InvenTree/models.py:1114 +#, python-brace-format +msgid "Background worker task '{instance.func}' failed after {n} attempts" +msgstr "" + +#: InvenTree/models.py:1142 msgid "Server Error" msgstr "Napaka strežnika" -#: InvenTree/models.py:1079 +#: InvenTree/models.py:1143 msgid "An error has been logged by the server." msgstr "Zaznana napaka na strežniku." -#: InvenTree/serializers.py:63 part/models.py:4387 +#: InvenTree/serializers.py:63 part/models.py:4444 msgid "Must be a valid number" msgstr "Mora biti veljavna številka" -#: InvenTree/serializers.py:100 company/models.py:186 -#: company/templates/company/company_base.html:112 part/models.py:3115 +#: InvenTree/serializers.py:100 company/models.py:183 +#: company/templates/company/company_base.html:112 part/models.py:3166 #: templates/InvenTree/settings/settings_staff_js.html:44 #: templates/currency_data.html:5 msgid "Currency" @@ -532,15 +552,15 @@ msgstr "Valuta" msgid "Select currency from available options" msgstr "Izberite valuto med razpoložljivimi možnostmi" -#: InvenTree/serializers.py:407 templates/InvenTree/settings/user.html:33 +#: InvenTree/serializers.py:405 templates/InvenTree/settings/user.html:33 msgid "Username" msgstr "" -#: InvenTree/serializers.py:409 templates/InvenTree/settings/user.html:37 +#: InvenTree/serializers.py:408 templates/InvenTree/settings/user.html:37 msgid "First Name" msgstr "" -#: InvenTree/serializers.py:409 +#: InvenTree/serializers.py:408 msgid "First name of the user" msgstr "" @@ -552,30 +572,30 @@ msgstr "" msgid "Last name of the user" msgstr "" -#: InvenTree/serializers.py:415 +#: InvenTree/serializers.py:416 msgid "Email address of the user" msgstr "" -#: InvenTree/serializers.py:439 +#: InvenTree/serializers.py:441 msgid "Staff" msgstr "" -#: InvenTree/serializers.py:439 +#: InvenTree/serializers.py:441 msgid "Does this user have staff permissions" msgstr "" -#: InvenTree/serializers.py:442 +#: InvenTree/serializers.py:445 msgid "Superuser" msgstr "" -#: InvenTree/serializers.py:442 +#: InvenTree/serializers.py:445 msgid "Is this user a superuser" msgstr "" -#: InvenTree/serializers.py:445 common/models.py:2707 company/models.py:163 -#: company/models.py:801 machine/models.py:39 part/admin.py:88 -#: part/models.py:1189 plugin/models.py:66 -#: templates/js/translated/company.js:523 +#: InvenTree/serializers.py:449 common/models.py:2771 company/models.py:160 +#: company/models.py:798 machine/models.py:39 part/admin.py:88 +#: part/models.py:1250 plugin/models.py:66 +#: templates/js/translated/company.js:524 #: templates/js/translated/table_filters.js:134 #: templates/js/translated/table_filters.js:226 #: templates/js/translated/table_filters.js:513 @@ -585,230 +605,229 @@ msgstr "" msgid "Active" msgstr "" -#: InvenTree/serializers.py:445 +#: InvenTree/serializers.py:449 msgid "Is this user account active" msgstr "" -#: InvenTree/serializers.py:463 +#: InvenTree/serializers.py:467 msgid "You do not have permission to change this user role." msgstr "Nimate dovoljenja za spreminjanje vloge tega uporabnika." -#: InvenTree/serializers.py:475 +#: InvenTree/serializers.py:503 msgid "Only superusers can create new users" msgstr "Samo superuporabniki lahko ustvarijo nove uporabnike" -#: InvenTree/serializers.py:494 +#: InvenTree/serializers.py:523 msgid "Your account has been created." msgstr "Vaš račun je bil ustvarjen." -#: InvenTree/serializers.py:496 +#: InvenTree/serializers.py:525 msgid "Please use the password reset function to login" msgstr "Za prijavo uporabite funkcijo ponastavitve gesla" -#: InvenTree/serializers.py:503 +#: InvenTree/serializers.py:531 msgid "Welcome to InvenTree" msgstr "Dobrodošli v InvenTree" -#: InvenTree/serializers.py:561 +#: InvenTree/serializers.py:594 msgid "Invalid value" msgstr "Neveljavna vrednost" -#: InvenTree/serializers.py:581 importer/models.py:63 +#: InvenTree/serializers.py:614 importer/models.py:64 msgid "Data File" msgstr "Podatki datoteke" -#: InvenTree/serializers.py:582 +#: InvenTree/serializers.py:615 msgid "Select data file for upload" msgstr "Izberite datoteke za naložiti" -#: InvenTree/serializers.py:599 -msgid "Unsupported file type" -msgstr "Nepodprta vrsta datotek" +#: InvenTree/serializers.py:632 common/files.py:63 +msgid "Unsupported file format" +msgstr "" -#: InvenTree/serializers.py:605 +#: InvenTree/serializers.py:638 msgid "File is too large" msgstr "Datoteka je prevelika" -#: InvenTree/serializers.py:626 +#: InvenTree/serializers.py:659 msgid "No columns found in file" msgstr "V datoteki ni bilo najdenih stolpcev" -#: InvenTree/serializers.py:629 +#: InvenTree/serializers.py:662 msgid "No data rows found in file" msgstr "V datoteki ni bilo njadenih vrstic" -#: InvenTree/serializers.py:742 +#: InvenTree/serializers.py:774 msgid "No data rows provided" msgstr "Niso bile podane vrste s podatki" -#: InvenTree/serializers.py:745 +#: InvenTree/serializers.py:777 msgid "No data columns supplied" msgstr "Niso bili podani stolpci s podatki" -#: InvenTree/serializers.py:812 +#: InvenTree/serializers.py:843 #, python-brace-format msgid "Missing required column: '{name}'" msgstr "Manjka obvezni stolpec: '{name}'" -#: InvenTree/serializers.py:821 +#: InvenTree/serializers.py:852 #, python-brace-format msgid "Duplicate column: '{col}'" msgstr "Dvojni stolpec: '{col}'" -#: InvenTree/serializers.py:861 +#: InvenTree/serializers.py:891 msgid "Remote Image" msgstr "Oddaljena slika" -#: InvenTree/serializers.py:862 +#: InvenTree/serializers.py:892 msgid "URL of remote image file" msgstr "Povezava do oddaljene slike" -#: InvenTree/serializers.py:880 +#: InvenTree/serializers.py:910 msgid "Downloading images from remote URL is not enabled" msgstr "Prenos slik iz oddaljene povezave ni omogočen" -#: InvenTree/status.py:66 part/serializers.py:1246 -msgid "Background worker check failed" -msgstr "Nadzor dela v ozadju neuspel" - -#: InvenTree/status.py:70 -msgid "Email backend not configured" -msgstr "Zaledje e-pošte ni nastavljeno" - -#: InvenTree/status.py:73 -msgid "InvenTree system health checks failed" -msgstr "Preverjanje zdravja sistema InvenTree neuspelo" +#: InvenTree/serializers.py:917 +msgid "Failed to download image from remote URL" +msgstr "" #: InvenTree/templatetags/inventree_extras.py:184 msgid "Unknown database" msgstr "" -#: InvenTree/validators.py:32 InvenTree/validators.py:34 +#: InvenTree/validators.py:32 msgid "Invalid physical unit" msgstr "" -#: InvenTree/validators.py:40 +#: InvenTree/validators.py:38 msgid "Not a valid currency code" msgstr "Neveljavna oznaka valute" -#: InvenTree/validators.py:118 InvenTree/validators.py:134 +#: InvenTree/validators.py:115 InvenTree/validators.py:131 msgid "Overage value must not be negative" msgstr "Prestara vrednost ne sme biti negativna" -#: InvenTree/validators.py:136 +#: InvenTree/validators.py:133 msgid "Overage must not exceed 100%" msgstr "Prestarost ne sme presegati 100%" -#: InvenTree/validators.py:142 +#: InvenTree/validators.py:139 msgid "Invalid value for overage" msgstr "Neveljavna vrednost za prestarost" -#: InvenTree/views.py:400 templates/InvenTree/settings/user.html:23 +#: InvenTree/views.py:399 templates/InvenTree/settings/user.html:23 msgid "Edit User Information" msgstr "Uredite informacije o uporabniku" -#: InvenTree/views.py:412 templates/InvenTree/settings/user.html:20 +#: InvenTree/views.py:411 templates/InvenTree/settings/user.html:20 msgid "Set Password" msgstr "Nastavite geslo" -#: InvenTree/views.py:434 +#: InvenTree/views.py:433 msgid "Password fields must match" msgstr "Polja z geslom se morajo ujemati" -#: InvenTree/views.py:442 +#: InvenTree/views.py:441 msgid "Wrong password provided" msgstr "Vnešeno nepravilno geslo" -#: InvenTree/views.py:650 templates/navbar.html:160 +#: InvenTree/views.py:645 templates/navbar.html:160 msgid "System Information" msgstr "Sistemske informacije" -#: InvenTree/views.py:657 templates/navbar.html:171 +#: InvenTree/views.py:652 templates/navbar.html:171 msgid "About InvenTree" msgstr "O InvenTree" -#: build/api.py:51 part/api.py:156 stock/api.py:343 -msgid "Cascade" -msgstr "" - -#: build/api.py:64 build/models.py:261 -#: build/templates/build/build_base.html:191 +#: build/api.py:54 build/models.py:262 +#: build/templates/build/build_base.html:192 #: build/templates/build/detail.html:87 msgid "Parent Build" msgstr "Nadrejena izgradnja" -#: build/api.py:89 order/api.py:92 templates/js/translated/table_filters.js:101 +#: build/api.py:58 build/api.py:625 order/api.py:396 order/api.py:611 +#: order/api.py:990 order/api.py:1187 +#: templates/js/translated/table_filters.js:372 +msgid "Include Variants" +msgstr "" + +#: build/api.py:93 +msgid "Ancestor Build" +msgstr "" + +#: build/api.py:112 order/api.py:90 +#: templates/js/translated/table_filters.js:101 #: templates/js/translated/table_filters.js:549 #: templates/js/translated/table_filters.js:633 #: templates/js/translated/table_filters.js:674 msgid "Assigned to me" msgstr "" -#: build/api.py:106 build/templates/build/build_base.html:205 +#: build/api.py:129 build/templates/build/build_base.html:206 #: build/templates/build/detail.html:115 #: report/templates/report/inventree_build_order_report.html:152 #: templates/js/translated/table_filters.js:552 msgid "Issued By" msgstr "" -#: build/api.py:125 +#: build/api.py:148 msgid "Assigned To" msgstr "" -#: build/api.py:301 +#: build/api.py:310 msgid "Build must be cancelled before it can be deleted" msgstr "Izgradnja mora biti najprej preklicana, nato je lahko izbrisana" -#: build/api.py:345 build/serializers.py:1288 part/models.py:4265 +#: build/api.py:354 build/serializers.py:1342 part/models.py:4322 #: templates/js/translated/bom.js:997 templates/js/translated/bom.js:1037 -#: templates/js/translated/build.js:2702 +#: templates/js/translated/build.js:2711 #: templates/js/translated/table_filters.js:197 #: templates/js/translated/table_filters.js:586 msgid "Consumable" msgstr "" -#: build/api.py:346 build/serializers.py:1289 part/models.py:4259 +#: build/api.py:355 build/serializers.py:1343 part/models.py:4316 #: part/templates/part/upload_bom.html:58 templates/js/translated/bom.js:1001 -#: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2693 +#: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2702 #: templates/js/translated/table_filters.js:193 #: templates/js/translated/table_filters.js:222 #: templates/js/translated/table_filters.js:590 msgid "Optional" msgstr "" -#: build/api.py:347 common/models.py:1489 part/admin.py:91 part/admin.py:428 -#: part/models.py:1154 part/serializers.py:1575 +#: build/api.py:356 common/models.py:1558 part/admin.py:91 part/admin.py:428 +#: part/models.py:1215 part/serializers.py:1633 #: templates/js/translated/bom.js:1639 #: templates/js/translated/table_filters.js:337 #: templates/js/translated/table_filters.js:729 msgid "Assembly" msgstr "" -#: build/api.py:348 templates/js/translated/table_filters.js:415 +#: build/api.py:357 templates/js/translated/table_filters.js:415 #: templates/js/translated/table_filters.js:582 msgid "Tracked" msgstr "" -#: build/api.py:349 build/serializers.py:1290 part/models.py:1172 +#: build/api.py:358 build/serializers.py:1344 part/models.py:1233 #: templates/js/translated/table_filters.js:146 #: templates/js/translated/table_filters.js:779 msgid "Testable" msgstr "" -#: build/api.py:351 part/admin.py:144 templates/js/translated/build.js:1917 -#: templates/js/translated/build.js:2820 -#: templates/js/translated/sales_order.js:1965 +#: build/api.py:360 order/api.py:779 part/admin.py:144 +#: templates/js/translated/build.js:1920 templates/js/translated/build.js:2838 +#: templates/js/translated/sales_order.js:1946 #: templates/js/translated/table_filters.js:574 msgid "Allocated" msgstr "" -#: build/api.py:359 company/models.py:891 company/serializers.py:395 -#: company/templates/company/supplier_part.html:114 +#: build/api.py:368 company/models.py:888 company/serializers.py:399 +#: company/templates/company/supplier_part.html:115 #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:17 -#: templates/js/translated/bom.js:1162 templates/js/translated/build.js:2752 +#: templates/js/translated/bom.js:1162 templates/js/translated/build.js:2770 #: templates/js/translated/index.js:123 -#: templates/js/translated/model_renderers.js:235 +#: templates/js/translated/model_renderers.js:238 #: templates/js/translated/part.js:695 templates/js/translated/part.js:697 #: templates/js/translated/part.js:702 #: templates/js/translated/table_filters.js:347 @@ -816,16 +835,68 @@ msgstr "" msgid "Available" msgstr "" -#: build/models.py:86 build/templates/build/build_base.html:9 -#: build/templates/build/build_base.html:27 +#: build/api.py:640 build/models.py:268 build/serializers.py:1330 +#: build/templates/build/build_base.html:106 +#: build/templates/build/detail.html:29 company/models.py:1043 order/api.py:775 +#: order/api.py:1003 order/models.py:1519 order/models.py:1674 +#: order/models.py:1675 part/api.py:1495 part/api.py:1802 part/models.py:419 +#: part/models.py:3177 part/models.py:3321 part/models.py:3469 +#: part/models.py:3490 part/models.py:3512 part/models.py:3648 +#: part/models.py:3995 part/models.py:4158 part/models.py:4288 +#: part/models.py:4654 part/serializers.py:1245 part/serializers.py:1898 +#: part/templates/part/part_app_base.html:8 +#: part/templates/part/part_pricing.html:12 +#: part/templates/part/upload_bom.html:52 +#: report/templates/report/inventree_bill_of_materials_report.html:110 +#: report/templates/report/inventree_bill_of_materials_report.html:137 +#: report/templates/report/inventree_build_order_report.html:109 +#: report/templates/report/inventree_purchase_order_report.html:27 +#: report/templates/report/inventree_return_order_report.html:24 +#: report/templates/report/inventree_sales_order_report.html:27 +#: report/templates/report/inventree_sales_order_shipment_report.html:28 +#: report/templates/report/inventree_stock_location_report.html:102 +#: stock/serializers.py:112 stock/serializers.py:160 stock/serializers.py:456 +#: stock/serializers.py:947 templates/InvenTree/search.html:82 +#: templates/email/build_order_completed.html:17 +#: templates/email/build_order_required_stock.html:17 +#: templates/email/low_stock_notification.html:15 +#: templates/email/overdue_build_order.html:16 +#: templates/js/translated/barcode.js:577 templates/js/translated/bom.js:632 +#: templates/js/translated/bom.js:769 templates/js/translated/bom.js:905 +#: templates/js/translated/build.js:1005 templates/js/translated/build.js:1488 +#: templates/js/translated/build.js:1919 templates/js/translated/build.js:2337 +#: templates/js/translated/build.js:2514 templates/js/translated/company.js:349 +#: templates/js/translated/company.js:1117 +#: templates/js/translated/company.js:1272 +#: templates/js/translated/company.js:1560 templates/js/translated/index.js:109 +#: templates/js/translated/part.js:1950 templates/js/translated/part.js:2022 +#: templates/js/translated/part.js:2330 templates/js/translated/pricing.js:369 +#: templates/js/translated/purchase_order.js:734 +#: templates/js/translated/purchase_order.js:1350 +#: templates/js/translated/purchase_order.js:1902 +#: templates/js/translated/purchase_order.js:2061 +#: templates/js/translated/return_order.js:538 +#: templates/js/translated/return_order.js:708 +#: templates/js/translated/sales_order.js:1199 +#: templates/js/translated/sales_order.js:1608 +#: templates/js/translated/sales_order.js:1813 +#: templates/js/translated/stock.js:682 templates/js/translated/stock.js:848 +#: templates/js/translated/stock.js:1065 templates/js/translated/stock.js:2083 +#: templates/js/translated/stock.js:2942 templates/js/translated/stock.js:3175 +#: templates/js/translated/stock.js:3320 +msgid "Part" +msgstr "Del" + +#: build/api.py:662 build/models.py:88 build/templates/build/build_base.html:10 +#: build/templates/build/build_base.html:28 #: report/templates/report/inventree_build_order_report.html:105 -#: stock/serializers.py:84 templates/email/build_order_completed.html:16 +#: stock/serializers.py:85 templates/email/build_order_completed.html:16 #: templates/email/overdue_build_order.html:15 -#: templates/js/translated/build.js:1145 templates/js/translated/stock.js:2976 +#: templates/js/translated/build.js:1148 templates/js/translated/stock.js:2977 msgid "Build Order" msgstr "Nalog izgradnje" -#: build/models.py:87 build/templates/build/build_base.html:13 +#: build/models.py:89 build/templates/build/build_base.html:14 #: build/templates/build/index.html:8 build/templates/build/index.html:12 #: order/templates/order/sales_order_detail.html:111 #: order/templates/order/so_sidebar.html:13 @@ -836,268 +907,216 @@ msgstr "Nalog izgradnje" msgid "Build Orders" msgstr "Nalogi izgradnje" -#: build/models.py:135 +#: build/models.py:136 msgid "Assembly BOM has not been validated" msgstr "" -#: build/models.py:142 +#: build/models.py:143 msgid "Build order cannot be created for an inactive part" msgstr "" -#: build/models.py:149 +#: build/models.py:150 msgid "Build order cannot be created for an unlocked part" msgstr "" -#: build/models.py:163 +#: build/models.py:164 msgid "Invalid choice for parent build" msgstr "Neveljavna izbira za nadrejeno izgradnjo" -#: build/models.py:174 order/models.py:239 +#: build/models.py:175 order/models.py:236 msgid "Responsible user or group must be specified" msgstr "" -#: build/models.py:180 +#: build/models.py:181 msgid "Build order part cannot be changed" msgstr "" -#: build/models.py:241 +#: build/models.py:242 msgid "Build Order Reference" msgstr "Referenca naloga izgradnje" -#: build/models.py:242 build/serializers.py:1287 order/models.py:467 -#: order/models.py:978 order/models.py:1373 order/models.py:2135 -#: part/admin.py:414 part/models.py:4280 part/templates/part/upload_bom.html:54 +#: build/models.py:243 build/serializers.py:1341 order/models.py:479 +#: order/models.py:1005 order/models.py:1390 order/models.py:2174 +#: part/admin.py:414 part/models.py:4337 part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_bill_of_materials_report.html:139 #: report/templates/report/inventree_purchase_order_report.html:28 #: report/templates/report/inventree_return_order_report.html:26 #: report/templates/report/inventree_sales_order_report.html:28 #: templates/js/translated/bom.js:770 templates/js/translated/bom.js:973 -#: templates/js/translated/build.js:1011 templates/js/translated/build.js:2685 +#: templates/js/translated/build.js:1014 templates/js/translated/build.js:2694 #: templates/js/translated/order.js:316 templates/js/translated/pricing.js:386 -#: templates/js/translated/purchase_order.js:2135 +#: templates/js/translated/purchase_order.js:2119 #: templates/js/translated/return_order.js:727 -#: templates/js/translated/sales_order.js:1854 +#: templates/js/translated/sales_order.js:1835 msgid "Reference" msgstr "Referenca" -#: build/models.py:253 +#: build/models.py:254 msgid "Brief description of the build (optional)" msgstr "" -#: build/models.py:262 +#: build/models.py:263 msgid "BuildOrder to which this build is allocated" msgstr "Nalog izgradnje na katerega se ta izgradnaj nanaša" -#: build/models.py:267 build/serializers.py:1278 -#: build/templates/build/build_base.html:105 -#: build/templates/build/detail.html:29 company/models.py:1046 order/api.py:767 -#: order/models.py:1503 order/models.py:1658 order/models.py:1659 -#: part/api.py:1509 part/api.py:1813 part/models.py:424 part/models.py:3126 -#: part/models.py:3270 part/models.py:3418 part/models.py:3439 -#: part/models.py:3461 part/models.py:3597 part/models.py:3937 -#: part/models.py:4100 part/models.py:4231 part/models.py:4592 -#: part/serializers.py:1192 part/serializers.py:1836 -#: part/templates/part/part_app_base.html:8 -#: part/templates/part/part_pricing.html:12 -#: part/templates/part/upload_bom.html:52 -#: report/templates/report/inventree_bill_of_materials_report.html:110 -#: report/templates/report/inventree_bill_of_materials_report.html:137 -#: report/templates/report/inventree_build_order_report.html:109 -#: report/templates/report/inventree_purchase_order_report.html:27 -#: report/templates/report/inventree_return_order_report.html:24 -#: report/templates/report/inventree_sales_order_report.html:27 -#: report/templates/report/inventree_stock_location_report.html:102 -#: stock/serializers.py:111 stock/serializers.py:159 stock/serializers.py:446 -#: stock/serializers.py:916 templates/InvenTree/search.html:82 -#: templates/email/build_order_completed.html:17 -#: templates/email/build_order_required_stock.html:17 -#: templates/email/low_stock_notification.html:15 -#: templates/email/overdue_build_order.html:16 -#: templates/js/translated/barcode.js:577 templates/js/translated/bom.js:632 -#: templates/js/translated/bom.js:769 templates/js/translated/bom.js:905 -#: templates/js/translated/build.js:1002 templates/js/translated/build.js:1485 -#: templates/js/translated/build.js:1916 templates/js/translated/build.js:2334 -#: templates/js/translated/build.js:2507 templates/js/translated/company.js:348 -#: templates/js/translated/company.js:1116 -#: templates/js/translated/company.js:1271 -#: templates/js/translated/company.js:1559 templates/js/translated/index.js:109 -#: templates/js/translated/part.js:1950 templates/js/translated/part.js:2022 -#: templates/js/translated/part.js:2330 templates/js/translated/pricing.js:369 -#: templates/js/translated/purchase_order.js:751 -#: templates/js/translated/purchase_order.js:1367 -#: templates/js/translated/purchase_order.js:1918 -#: templates/js/translated/purchase_order.js:2077 -#: templates/js/translated/return_order.js:538 -#: templates/js/translated/return_order.js:708 -#: templates/js/translated/sales_order.js:300 -#: templates/js/translated/sales_order.js:1233 -#: templates/js/translated/sales_order.js:1634 -#: templates/js/translated/sales_order.js:1832 -#: templates/js/translated/stock.js:682 templates/js/translated/stock.js:848 -#: templates/js/translated/stock.js:1065 templates/js/translated/stock.js:2082 -#: templates/js/translated/stock.js:2941 templates/js/translated/stock.js:3174 -#: templates/js/translated/stock.js:3319 -msgid "Part" -msgstr "Del" - -#: build/models.py:275 +#: build/models.py:274 msgid "Select part to build" msgstr "Izberite del za izgradnjo" -#: build/models.py:280 +#: build/models.py:279 msgid "Sales Order Reference" msgstr "Referenca dobavnica" -#: build/models.py:284 +#: build/models.py:283 msgid "SalesOrder to which this build is allocated" msgstr "Dobavnica na katero se navezuje ta izgradnja" -#: build/models.py:289 build/serializers.py:1048 -#: templates/js/translated/build.js:1904 -#: templates/js/translated/sales_order.js:1221 +#: build/models.py:288 build/serializers.py:1092 +#: templates/js/translated/build.js:1907 +#: templates/js/translated/sales_order.js:1187 msgid "Source Location" msgstr "Lokacija vira" -#: build/models.py:293 +#: build/models.py:292 msgid "Select location to take stock from for this build (leave blank to take from any stock location)" msgstr "Izberite lokacijo dela za to izgradnjo (v primeru da ni pomembno pusti prazno)" -#: build/models.py:298 +#: build/models.py:297 msgid "Destination Location" msgstr "Ciljna lokacija" -#: build/models.py:302 +#: build/models.py:301 msgid "Select location where the completed items will be stored" msgstr "Izberite lokacijo, kjer bodo končne postavke shranjene" -#: build/models.py:306 +#: build/models.py:305 msgid "Build Quantity" msgstr "Količina izgradenj" -#: build/models.py:309 +#: build/models.py:308 msgid "Number of stock items to build" msgstr "Število postavk za izgradnjo" -#: build/models.py:313 +#: build/models.py:312 msgid "Completed items" msgstr "Končane postavke" -#: build/models.py:315 +#: build/models.py:314 msgid "Number of stock items which have been completed" msgstr "Število postavk zaloge, ki so bile končane" -#: build/models.py:319 +#: build/models.py:318 msgid "Build Status" msgstr "Status izgradnje" -#: build/models.py:323 +#: build/models.py:322 msgid "Build status code" msgstr "Koda statusa izgradnje" -#: build/models.py:332 build/serializers.py:302 build/serializers.py:1198 -#: order/serializers.py:670 stock/models.py:859 stock/serializers.py:76 -#: stock/serializers.py:1562 templates/js/translated/purchase_order.js:1129 +#: build/models.py:331 build/serializers.py:349 build/serializers.py:1243 +#: order/serializers.py:755 stock/models.py:936 stock/serializers.py:77 +#: stock/serializers.py:1593 templates/js/translated/purchase_order.js:1112 #: templates/js/translated/stock.js:1199 msgid "Batch Code" msgstr "Številka serije" -#: build/models.py:336 build/serializers.py:303 +#: build/models.py:335 build/serializers.py:350 msgid "Batch code for this build output" msgstr "Številka serije za to izgradnjo" -#: build/models.py:339 order/models.py:315 order/serializers.py:126 -#: part/models.py:1229 part/templates/part/part_base.html:319 +#: build/models.py:338 order/models.py:322 order/serializers.py:157 +#: part/models.py:1290 part/templates/part/part_base.html:327 #: templates/js/translated/return_order.js:338 -#: templates/js/translated/sales_order.js:863 +#: templates/js/translated/sales_order.js:822 msgid "Creation Date" msgstr "Datum ustvarjenja" -#: build/models.py:343 +#: build/models.py:342 msgid "Target completion date" msgstr "Rok dokončanja" -#: build/models.py:344 +#: build/models.py:343 msgid "Target date for build completion. Build will be overdue after this date." msgstr "Rok končanja izdelave. Izdelava po tem datumu bo v zamudi po tem datumu." -#: build/models.py:347 order/models.py:526 order/models.py:2180 -#: templates/js/translated/build.js:2419 +#: build/models.py:346 order/models.py:538 order/models.py:2219 +#: templates/js/translated/build.js:2422 msgid "Completion Date" msgstr "Datom končanja" -#: build/models.py:353 +#: build/models.py:352 msgid "completed by" msgstr "dokončal" -#: build/models.py:361 templates/js/translated/build.js:2379 +#: build/models.py:360 templates/js/translated/build.js:2382 msgid "Issued by" msgstr "Izdal" -#: build/models.py:362 +#: build/models.py:361 msgid "User who issued this build order" msgstr "Uporabnik, ki je izdal nalog za izgradnjo" -#: build/models.py:370 build/templates/build/build_base.html:212 -#: build/templates/build/detail.html:122 common/models.py:165 order/api.py:142 -#: order/models.py:333 order/templates/order/order_base.html:222 -#: order/templates/order/return_order_base.html:191 -#: order/templates/order/sales_order_base.html:235 part/models.py:1246 -#: part/templates/part/part_base.html:399 +#: build/models.py:369 build/templates/build/build_base.html:213 +#: build/templates/build/detail.html:122 common/models.py:168 order/api.py:140 +#: order/models.py:340 order/templates/order/order_base.html:231 +#: order/templates/order/return_order_base.html:192 +#: order/templates/order/sales_order_base.html:236 part/models.py:1307 +#: part/templates/part/part_base.html:407 #: report/templates/report/inventree_build_order_report.html:158 #: templates/InvenTree/settings/settings_staff_js.html:150 -#: templates/js/translated/build.js:2391 -#: templates/js/translated/purchase_order.js:1833 +#: templates/js/translated/build.js:2394 +#: templates/js/translated/purchase_order.js:1817 #: templates/js/translated/return_order.js:358 #: templates/js/translated/table_filters.js:551 msgid "Responsible" msgstr "Odgovoren" -#: build/models.py:371 +#: build/models.py:370 msgid "User or group responsible for this build order" msgstr "" -#: build/models.py:376 build/templates/build/detail.html:108 +#: build/models.py:375 build/templates/build/detail.html:108 #: company/templates/company/manufacturer_part.html:107 -#: company/templates/company/supplier_part.html:194 -#: order/templates/order/order_base.html:172 -#: order/templates/order/return_order_base.html:148 -#: order/templates/order/sales_order_base.html:187 -#: part/templates/part/part_base.html:392 stock/models.py:855 -#: stock/templates/stock/item_base.html:200 -#: templates/js/translated/company.js:1019 +#: company/templates/company/supplier_part.html:195 +#: order/templates/order/order_base.html:181 +#: order/templates/order/return_order_base.html:149 +#: order/templates/order/sales_order_base.html:188 +#: part/templates/part/part_base.html:400 stock/models.py:932 +#: stock/templates/stock/item_base.html:197 +#: templates/js/translated/company.js:1020 msgid "External Link" msgstr "Zunanja povezava" -#: build/models.py:377 common/models.py:3273 part/models.py:1058 -#: stock/models.py:855 +#: build/models.py:376 common/models.py:3334 part/models.py:1119 +#: stock/models.py:932 msgid "Link to external URL" msgstr "Zunanja povezava" -#: build/models.py:381 +#: build/models.py:380 msgid "Build Priority" msgstr "" -#: build/models.py:384 +#: build/models.py:383 msgid "Priority of this build order" msgstr "" -#: build/models.py:391 common/models.py:135 common/models.py:149 -#: order/admin.py:18 order/api.py:128 order/models.py:297 +#: build/models.py:390 common/models.py:138 common/models.py:152 +#: order/admin.py:18 order/api.py:126 order/models.py:304 #: templates/InvenTree/settings/settings_staff_js.html:146 -#: templates/js/translated/build.js:2316 -#: templates/js/translated/purchase_order.js:1780 +#: templates/js/translated/build.js:2319 +#: templates/js/translated/purchase_order.js:1764 #: templates/js/translated/return_order.js:317 -#: templates/js/translated/sales_order.js:842 +#: templates/js/translated/sales_order.js:801 #: templates/js/translated/table_filters.js:47 #: templates/project_code_data.html:6 msgid "Project Code" msgstr "" -#: build/models.py:392 +#: build/models.py:391 msgid "Project code for this build order" msgstr "" -#: build/models.py:651 build/models.py:778 +#: build/models.py:651 build/models.py:779 msgid "Failed to offload task to complete build allocations" msgstr "" @@ -1110,610 +1129,619 @@ msgstr "Nalog izgradnje {build} je dokončan" msgid "A build order has been completed" msgstr "Nalog izgradnej dokončan" -#: build/models.py:967 build/models.py:1055 +#: build/models.py:858 build/serializers.py:393 +msgid "Serial numbers must be provided for trackable parts" +msgstr "" + +#: build/models.py:969 build/models.py:1058 msgid "No build output specified" msgstr "Ni določena izgradnja" -#: build/models.py:970 +#: build/models.py:972 msgid "Build output is already completed" msgstr "Igradnja je že dokončana" -#: build/models.py:973 +#: build/models.py:975 msgid "Build output does not match Build Order" msgstr "Izgradnja se ne ujema s nalogom izdelave" -#: build/models.py:1059 build/serializers.py:235 build/serializers.py:284 -#: build/serializers.py:915 order/models.py:564 order/serializers.py:499 -#: order/serializers.py:665 part/serializers.py:1569 part/serializers.py:1999 -#: stock/models.py:700 stock/models.py:1520 stock/serializers.py:669 +#: build/models.py:1062 build/serializers.py:282 build/serializers.py:331 +#: build/serializers.py:959 order/models.py:586 order/serializers.py:584 +#: order/serializers.py:750 part/serializers.py:1627 part/serializers.py:2060 +#: stock/models.py:777 stock/models.py:1609 stock/serializers.py:696 msgid "Quantity must be greater than zero" msgstr "" -#: build/models.py:1064 build/serializers.py:240 +#: build/models.py:1067 build/serializers.py:287 msgid "Quantity cannot be greater than the output quantity" msgstr "" -#: build/models.py:1124 build/serializers.py:563 +#: build/models.py:1127 build/serializers.py:607 #, python-brace-format msgid "Build output {serial} has not passed all required tests" msgstr "" -#: build/models.py:1465 +#: build/models.py:1482 msgid "Build Order Line Item" msgstr "" -#: build/models.py:1490 +#: build/models.py:1507 msgid "Build object" msgstr "" -#: build/models.py:1504 build/models.py:1760 build/serializers.py:222 -#: build/serializers.py:269 build/serializers.py:1295 -#: build/templates/build/build_base.html:110 -#: build/templates/build/detail.html:34 common/models.py:2579 -#: order/models.py:1356 order/models.py:2041 order/serializers.py:1460 +#: build/models.py:1521 build/models.py:1787 build/serializers.py:269 +#: build/serializers.py:316 build/serializers.py:1349 +#: build/templates/build/build_base.html:111 +#: build/templates/build/detail.html:34 common/models.py:2643 +#: order/models.py:1373 order/models.py:2074 order/serializers.py:1586 #: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:413 -#: part/forms.py:48 part/models.py:3284 part/models.py:4253 -#: part/templates/part/part_pricing.html:16 +#: part/forms.py:48 part/models.py:3335 part/models.py:4310 +#: part/serializers.py:265 part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_bill_of_materials_report.html:138 #: report/templates/report/inventree_build_order_report.html:113 #: report/templates/report/inventree_purchase_order_report.html:29 #: report/templates/report/inventree_sales_order_report.html:29 +#: report/templates/report/inventree_sales_order_shipment_report.html:47 +#: report/templates/report/inventree_sales_order_shipment_report.html:49 #: report/templates/report/inventree_stock_location_report.html:104 #: report/templates/report/inventree_test_report.html:90 -#: report/templates/report/inventree_test_report.html:169 stock/admin.py:159 -#: stock/serializers.py:127 stock/serializers.py:167 stock/serializers.py:660 -#: stock/templates/stock/item_base.html:287 -#: stock/templates/stock/item_base.html:295 -#: stock/templates/stock/item_base.html:342 +#: report/templates/report/inventree_test_report.html:169 stock/admin.py:160 +#: stock/serializers.py:128 stock/serializers.py:168 stock/serializers.py:687 +#: stock/templates/stock/item_base.html:284 +#: stock/templates/stock/item_base.html:292 +#: stock/templates/stock/item_base.html:339 #: templates/email/build_order_completed.html:18 #: templates/js/translated/barcode.js:579 templates/js/translated/bom.js:771 -#: templates/js/translated/bom.js:981 templates/js/translated/build.js:522 -#: templates/js/translated/build.js:737 templates/js/translated/build.js:1542 -#: templates/js/translated/build.js:1919 templates/js/translated/build.js:2529 -#: templates/js/translated/company.js:1818 -#: templates/js/translated/model_renderers.js:237 +#: templates/js/translated/bom.js:981 templates/js/translated/build.js:525 +#: templates/js/translated/build.js:740 templates/js/translated/build.js:1545 +#: templates/js/translated/build.js:1922 templates/js/translated/build.js:2536 +#: templates/js/translated/company.js:1819 +#: templates/js/translated/model_renderers.js:240 #: templates/js/translated/order.js:329 templates/js/translated/part.js:968 -#: templates/js/translated/part.js:1818 templates/js/translated/part.js:3360 +#: templates/js/translated/part.js:1818 templates/js/translated/part.js:3376 #: templates/js/translated/pricing.js:381 #: templates/js/translated/pricing.js:474 #: templates/js/translated/pricing.js:522 #: templates/js/translated/pricing.js:616 -#: templates/js/translated/purchase_order.js:754 -#: templates/js/translated/purchase_order.js:1922 -#: templates/js/translated/purchase_order.js:2141 -#: templates/js/translated/sales_order.js:317 -#: templates/js/translated/sales_order.js:1235 -#: templates/js/translated/sales_order.js:1554 -#: templates/js/translated/sales_order.js:1644 -#: templates/js/translated/sales_order.js:1734 -#: templates/js/translated/sales_order.js:1860 +#: templates/js/translated/purchase_order.js:737 +#: templates/js/translated/purchase_order.js:1906 +#: templates/js/translated/purchase_order.js:2125 +#: templates/js/translated/sales_order.js:1201 +#: templates/js/translated/sales_order.js:1520 +#: templates/js/translated/sales_order.js:1625 +#: templates/js/translated/sales_order.js:1715 +#: templates/js/translated/sales_order.js:1841 #: templates/js/translated/stock.js:570 templates/js/translated/stock.js:708 -#: templates/js/translated/stock.js:879 templates/js/translated/stock.js:3105 -#: templates/js/translated/stock.js:3188 +#: templates/js/translated/stock.js:879 templates/js/translated/stock.js:3106 +#: templates/js/translated/stock.js:3189 msgid "Quantity" msgstr "Količina" -#: build/models.py:1505 +#: build/models.py:1522 msgid "Required quantity for build order" msgstr "" -#: build/models.py:1585 +#: build/models.py:1602 msgid "Build item must specify a build output, as master part is marked as trackable" msgstr "Izdelana postavka mora imeti izgradnjo, če je glavni del označen kot sledljiv" -#: build/models.py:1594 +#: build/models.py:1611 #, python-brace-format msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgstr "Prestavljena zaloga ({q}) ne sme presegati zaloge ({a})" -#: build/models.py:1604 order/models.py:1992 +#: build/models.py:1628 order/models.py:2025 msgid "Stock item is over-allocated" msgstr "Preveč zaloge je prestavljene" -#: build/models.py:1610 order/models.py:1995 +#: build/models.py:1634 order/models.py:2028 msgid "Allocation quantity must be greater than zero" msgstr "Prestavljena količina mora biti večja od 0" -#: build/models.py:1616 +#: build/models.py:1640 msgid "Quantity must be 1 for serialized stock" msgstr "Količina za zalogo s serijsko številko mora biti 1" -#: build/models.py:1675 +#: build/models.py:1699 msgid "Selected stock item does not match BOM line" msgstr "" -#: build/models.py:1747 build/serializers.py:895 order/serializers.py:1297 -#: order/serializers.py:1318 stock/models.py:376 stock/serializers.py:93 -#: stock/serializers.py:763 stock/serializers.py:1281 stock/serializers.py:1393 -#: stock/templates/stock/item_base.html:10 -#: stock/templates/stock/item_base.html:23 -#: stock/templates/stock/item_base.html:194 -#: templates/js/translated/build.js:1918 -#: templates/js/translated/sales_order.js:301 -#: templates/js/translated/sales_order.js:1234 -#: templates/js/translated/sales_order.js:1535 -#: templates/js/translated/sales_order.js:1540 -#: templates/js/translated/sales_order.js:1641 -#: templates/js/translated/sales_order.js:1728 +#: build/models.py:1774 build/serializers.py:939 order/serializers.py:1423 +#: order/serializers.py:1444 +#: report/templates/report/inventree_sales_order_shipment_report.html:29 +#: stock/models.py:382 stock/serializers.py:94 stock/serializers.py:794 +#: stock/serializers.py:1312 stock/serializers.py:1424 +#: stock/templates/stock/item_base.html:11 +#: stock/templates/stock/item_base.html:24 +#: stock/templates/stock/item_base.html:191 +#: templates/js/translated/build.js:1921 +#: templates/js/translated/sales_order.js:1200 +#: templates/js/translated/sales_order.js:1501 +#: templates/js/translated/sales_order.js:1506 +#: templates/js/translated/sales_order.js:1622 +#: templates/js/translated/sales_order.js:1709 #: templates/js/translated/stock.js:683 templates/js/translated/stock.js:849 -#: templates/js/translated/stock.js:3061 +#: templates/js/translated/stock.js:3062 msgid "Stock Item" msgstr "Postavka zaloge" -#: build/models.py:1748 +#: build/models.py:1775 msgid "Source stock item" msgstr "Izvorna postavka zaloge" -#: build/models.py:1761 +#: build/models.py:1788 msgid "Stock quantity to allocate to build" msgstr "Količina zaloge za prestavljanje za izgradnjo" -#: build/models.py:1769 +#: build/models.py:1796 msgid "Install into" msgstr "Inštaliraj v" -#: build/models.py:1770 +#: build/models.py:1797 msgid "Destination stock item" msgstr "Destinacija postavke zaloge" -#: build/serializers.py:91 +#: build/serializers.py:108 msgid "Build Level" msgstr "" -#: build/serializers.py:99 build/serializers.py:1190 build/serializers.py:1279 -#: part/admin.py:41 part/admin.py:408 part/models.py:4102 part/stocktake.py:219 -#: stock/admin.py:156 +#: build/serializers.py:116 build/serializers.py:1235 build/serializers.py:1331 +#: part/admin.py:41 part/admin.py:408 part/models.py:4160 part/stocktake.py:219 +#: stock/admin.py:157 msgid "Part Name" msgstr "" -#: build/serializers.py:111 +#: build/serializers.py:128 msgid "Project Code Label" msgstr "" -#: build/serializers.py:172 build/serializers.py:924 -#: templates/js/translated/build.js:1042 templates/js/translated/build.js:1495 +#: build/serializers.py:134 +msgid "Create Child Builds" +msgstr "" + +#: build/serializers.py:135 +msgid "Automatically generate child build orders" +msgstr "" + +#: build/serializers.py:219 build/serializers.py:968 +#: templates/js/translated/build.js:1045 templates/js/translated/build.js:1498 msgid "Build Output" msgstr "Izgradnja" -#: build/serializers.py:184 +#: build/serializers.py:231 msgid "Build output does not match the parent build" msgstr "Izgradnja se ne ujema z nadrejeno izgradnjo" -#: build/serializers.py:188 +#: build/serializers.py:235 msgid "Output part does not match BuildOrder part" msgstr "Izhodni del se ne ujema s naročilom sestava" -#: build/serializers.py:192 +#: build/serializers.py:239 msgid "This build output has already been completed" msgstr "Ta sestava je že zaključena" -#: build/serializers.py:203 +#: build/serializers.py:250 msgid "This build output is not fully allocated" msgstr "" -#: build/serializers.py:223 build/serializers.py:270 +#: build/serializers.py:270 build/serializers.py:317 msgid "Enter quantity for build output" msgstr "" -#: build/serializers.py:291 +#: build/serializers.py:338 msgid "Integer quantity required for trackable parts" msgstr "" -#: build/serializers.py:294 +#: build/serializers.py:341 msgid "Integer quantity required, as the bill of materials contains trackable parts" msgstr "" -#: build/serializers.py:309 order/serializers.py:678 order/serializers.py:1464 -#: stock/serializers.py:680 templates/js/translated/purchase_order.js:1154 +#: build/serializers.py:356 order/serializers.py:763 order/serializers.py:1590 +#: stock/serializers.py:707 templates/js/translated/purchase_order.js:1137 #: templates/js/translated/stock.js:373 templates/js/translated/stock.js:571 msgid "Serial Numbers" msgstr "" -#: build/serializers.py:310 +#: build/serializers.py:357 msgid "Enter serial numbers for build outputs" msgstr "" -#: build/serializers.py:315 build/serializers.py:456 build/serializers.py:528 -#: order/serializers.py:654 order/serializers.py:778 order/serializers.py:1781 -#: part/serializers.py:1212 stock/serializers.py:102 stock/serializers.py:691 -#: stock/serializers.py:851 stock/serializers.py:977 stock/serializers.py:1425 -#: stock/serializers.py:1681 stock/templates/stock/item_base.html:394 +#: build/serializers.py:362 build/serializers.py:500 build/serializers.py:572 +#: order/serializers.py:739 order/serializers.py:880 order/serializers.py:1933 +#: part/serializers.py:1265 stock/serializers.py:103 stock/serializers.py:718 +#: stock/serializers.py:882 stock/serializers.py:1008 stock/serializers.py:1456 +#: stock/serializers.py:1712 stock/templates/stock/item_base.html:391 #: templates/js/translated/barcode.js:578 -#: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1032 -#: templates/js/translated/build.js:1174 templates/js/translated/build.js:2544 -#: templates/js/translated/purchase_order.js:1210 -#: templates/js/translated/purchase_order.js:1320 -#: templates/js/translated/sales_order.js:1547 -#: templates/js/translated/sales_order.js:1655 -#: templates/js/translated/sales_order.js:1663 -#: templates/js/translated/sales_order.js:1742 +#: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1035 +#: templates/js/translated/build.js:1177 templates/js/translated/build.js:2551 +#: templates/js/translated/purchase_order.js:1193 +#: templates/js/translated/purchase_order.js:1303 +#: templates/js/translated/sales_order.js:1513 +#: templates/js/translated/sales_order.js:1636 +#: templates/js/translated/sales_order.js:1644 +#: templates/js/translated/sales_order.js:1723 #: templates/js/translated/stock.js:684 templates/js/translated/stock.js:850 -#: templates/js/translated/stock.js:1067 templates/js/translated/stock.js:2286 -#: templates/js/translated/stock.js:2955 +#: templates/js/translated/stock.js:1067 templates/js/translated/stock.js:2287 +#: templates/js/translated/stock.js:2956 msgid "Location" msgstr "" -#: build/serializers.py:316 +#: build/serializers.py:363 msgid "Stock location for build output" msgstr "" -#: build/serializers.py:330 +#: build/serializers.py:377 msgid "Auto Allocate Serial Numbers" msgstr "" -#: build/serializers.py:331 +#: build/serializers.py:378 msgid "Automatically allocate required items with matching serial numbers" msgstr "" -#: build/serializers.py:346 -msgid "Serial numbers must be provided for trackable parts" -msgstr "" - -#: build/serializers.py:371 stock/api.py:1031 +#: build/serializers.py:415 order/serializers.py:858 stock/api.py:1017 +#: stock/models.py:1632 msgid "The following serial numbers already exist or are invalid" msgstr "" -#: build/serializers.py:418 build/serializers.py:480 build/serializers.py:569 +#: build/serializers.py:462 build/serializers.py:524 build/serializers.py:613 msgid "A list of build outputs must be provided" msgstr "" -#: build/serializers.py:457 +#: build/serializers.py:501 msgid "Stock location for scrapped outputs" msgstr "" -#: build/serializers.py:463 +#: build/serializers.py:507 msgid "Discard Allocations" msgstr "" -#: build/serializers.py:464 +#: build/serializers.py:508 msgid "Discard any stock allocations for scrapped outputs" msgstr "" -#: build/serializers.py:469 +#: build/serializers.py:513 msgid "Reason for scrapping build output(s)" msgstr "" -#: build/serializers.py:529 +#: build/serializers.py:573 msgid "Location for completed build outputs" msgstr "" -#: build/serializers.py:535 build/templates/build/build_base.html:159 -#: build/templates/build/detail.html:62 order/models.py:476 -#: order/models.py:1002 order/models.py:2159 order/serializers.py:686 -#: stock/admin.py:164 stock/serializers.py:1028 stock/serializers.py:1569 -#: stock/templates/stock/item_base.html:427 -#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2363 -#: templates/js/translated/purchase_order.js:1371 -#: templates/js/translated/purchase_order.js:1792 +#: build/serializers.py:579 build/templates/build/build_base.html:160 +#: build/templates/build/detail.html:62 order/models.py:488 +#: order/models.py:1029 order/models.py:2198 order/serializers.py:771 +#: stock/admin.py:165 stock/serializers.py:581 stock/serializers.py:1059 +#: stock/serializers.py:1600 stock/templates/stock/item_base.html:424 +#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2366 +#: templates/js/translated/purchase_order.js:1354 +#: templates/js/translated/purchase_order.js:1776 #: templates/js/translated/return_order.js:330 -#: templates/js/translated/sales_order.js:855 -#: templates/js/translated/stock.js:2261 templates/js/translated/stock.js:3079 -#: templates/js/translated/stock.js:3204 +#: templates/js/translated/sales_order.js:814 +#: templates/js/translated/stock.js:2262 templates/js/translated/stock.js:3080 +#: templates/js/translated/stock.js:3205 msgid "Status" msgstr "" -#: build/serializers.py:541 +#: build/serializers.py:585 msgid "Accept Incomplete Allocation" msgstr "" -#: build/serializers.py:542 +#: build/serializers.py:586 msgid "Complete outputs if stock has not been fully allocated" msgstr "" -#: build/serializers.py:654 +#: build/serializers.py:698 msgid "Consume Allocated Stock" msgstr "" -#: build/serializers.py:655 +#: build/serializers.py:699 msgid "Consume any stock which has already been allocated to this build" msgstr "" -#: build/serializers.py:661 +#: build/serializers.py:705 msgid "Remove Incomplete Outputs" msgstr "" -#: build/serializers.py:662 +#: build/serializers.py:706 msgid "Delete any build outputs which have not been completed" msgstr "" -#: build/serializers.py:689 +#: build/serializers.py:733 msgid "Not permitted" msgstr "" -#: build/serializers.py:690 +#: build/serializers.py:734 msgid "Accept as consumed by this build order" msgstr "" -#: build/serializers.py:691 +#: build/serializers.py:735 msgid "Deallocate before completing this build order" msgstr "" -#: build/serializers.py:721 +#: build/serializers.py:765 msgid "Overallocated Stock" msgstr "" -#: build/serializers.py:723 +#: build/serializers.py:767 msgid "How do you want to handle extra stock items assigned to the build order" msgstr "" -#: build/serializers.py:733 +#: build/serializers.py:777 msgid "Some stock items have been overallocated" msgstr "" -#: build/serializers.py:738 +#: build/serializers.py:782 msgid "Accept Unallocated" msgstr "" -#: build/serializers.py:739 +#: build/serializers.py:783 msgid "Accept that stock items have not been fully allocated to this build order" msgstr "" -#: build/serializers.py:749 templates/js/translated/build.js:316 +#: build/serializers.py:793 templates/js/translated/build.js:319 msgid "Required stock has not been fully allocated" msgstr "" -#: build/serializers.py:754 order/serializers.py:345 order/serializers.py:1365 +#: build/serializers.py:798 order/serializers.py:430 order/serializers.py:1491 msgid "Accept Incomplete" msgstr "" -#: build/serializers.py:755 +#: build/serializers.py:799 msgid "Accept that the required number of build outputs have not been completed" msgstr "" -#: build/serializers.py:765 templates/js/translated/build.js:320 +#: build/serializers.py:809 templates/js/translated/build.js:323 msgid "Required build quantity has not been completed" msgstr "" -#: build/serializers.py:774 +#: build/serializers.py:818 msgid "Build order has open child build orders" msgstr "" -#: build/serializers.py:777 +#: build/serializers.py:821 msgid "Build order must be in production state" msgstr "" -#: build/serializers.py:780 templates/js/translated/build.js:304 +#: build/serializers.py:824 templates/js/translated/build.js:307 msgid "Build order has incomplete outputs" msgstr "" -#: build/serializers.py:818 +#: build/serializers.py:862 msgid "Build Line" msgstr "" -#: build/serializers.py:828 +#: build/serializers.py:872 msgid "Build output" msgstr "" -#: build/serializers.py:836 +#: build/serializers.py:880 msgid "Build output must point to the same build" msgstr "" -#: build/serializers.py:872 +#: build/serializers.py:916 msgid "Build Line Item" msgstr "" -#: build/serializers.py:886 +#: build/serializers.py:930 msgid "bom_item.part must point to the same part as the build order" msgstr "" -#: build/serializers.py:901 stock/serializers.py:1294 +#: build/serializers.py:945 stock/serializers.py:1325 msgid "Item must be in stock" msgstr "" -#: build/serializers.py:949 order/serializers.py:1351 +#: build/serializers.py:993 order/serializers.py:1477 #, python-brace-format msgid "Available quantity ({q}) exceeded" msgstr "" -#: build/serializers.py:955 +#: build/serializers.py:999 msgid "Build output must be specified for allocation of tracked parts" msgstr "" -#: build/serializers.py:962 +#: build/serializers.py:1006 msgid "Build output cannot be specified for allocation of untracked parts" msgstr "" -#: build/serializers.py:986 order/serializers.py:1610 +#: build/serializers.py:1030 order/serializers.py:1750 msgid "Allocation items must be provided" msgstr "" -#: build/serializers.py:1049 +#: build/serializers.py:1093 msgid "Stock location where parts are to be sourced (leave blank to take from any location)" msgstr "" -#: build/serializers.py:1057 +#: build/serializers.py:1101 msgid "Exclude Location" msgstr "" -#: build/serializers.py:1058 +#: build/serializers.py:1102 msgid "Exclude stock items from this selected location" msgstr "" -#: build/serializers.py:1063 +#: build/serializers.py:1107 msgid "Interchangeable Stock" msgstr "" -#: build/serializers.py:1064 +#: build/serializers.py:1108 msgid "Stock items in multiple locations can be used interchangeably" msgstr "" -#: build/serializers.py:1069 +#: build/serializers.py:1113 msgid "Substitute Stock" msgstr "" -#: build/serializers.py:1070 +#: build/serializers.py:1114 msgid "Allow allocation of substitute parts" msgstr "" -#: build/serializers.py:1075 +#: build/serializers.py:1119 msgid "Optional Items" msgstr "" -#: build/serializers.py:1076 +#: build/serializers.py:1120 msgid "Allocate optional BOM items to build order" msgstr "" -#: build/serializers.py:1098 +#: build/serializers.py:1143 msgid "Failed to start auto-allocation task" msgstr "" -#: build/serializers.py:1181 +#: build/serializers.py:1226 stock/serializers.py:585 msgid "Supplier Part Number" msgstr "" -#: build/serializers.py:1182 company/models.py:506 +#: build/serializers.py:1227 company/models.py:503 stock/serializers.py:591 msgid "Manufacturer Part Number" msgstr "" -#: build/serializers.py:1183 stock/admin.py:53 stock/admin.py:175 -#: stock/serializers.py:457 +#: build/serializers.py:1228 stock/admin.py:53 stock/admin.py:176 +#: stock/serializers.py:467 msgid "Location Name" msgstr "" -#: build/serializers.py:1184 +#: build/serializers.py:1229 build/serializers.py:1327 msgid "Build Reference" msgstr "" -#: build/serializers.py:1185 +#: build/serializers.py:1230 msgid "BOM Reference" msgstr "" -#: build/serializers.py:1186 company/models.py:852 -#: company/templates/company/supplier_part.html:160 order/serializers.py:690 -#: stock/admin.py:228 stock/models.py:818 stock/serializers.py:1579 -#: stock/templates/stock/item_base.html:240 -#: templates/js/translated/company.js:1646 -#: templates/js/translated/purchase_order.js:1169 -#: templates/js/translated/purchase_order.js:1332 +#: build/serializers.py:1231 company/models.py:849 +#: company/templates/company/supplier_part.html:161 order/serializers.py:775 +#: stock/admin.py:229 stock/models.py:895 stock/serializers.py:1610 +#: stock/templates/stock/item_base.html:237 +#: templates/js/translated/company.js:1647 +#: templates/js/translated/purchase_order.js:1152 +#: templates/js/translated/purchase_order.js:1315 #: templates/js/translated/stock.js:1214 templates/js/translated/stock.js:1246 -#: templates/js/translated/stock.js:2509 +#: templates/js/translated/stock.js:2510 msgid "Packaging" msgstr "" -#: build/serializers.py:1189 part/admin.py:39 part/admin.py:398 -#: part/models.py:4101 part/stocktake.py:218 stock/admin.py:152 +#: build/serializers.py:1234 part/admin.py:39 part/admin.py:398 +#: part/models.py:4159 part/stocktake.py:218 stock/admin.py:153 msgid "Part ID" msgstr "" -#: build/serializers.py:1191 build/serializers.py:1280 part/admin.py:402 -#: part/models.py:4103 +#: build/serializers.py:1236 build/serializers.py:1332 part/admin.py:402 +#: part/models.py:4161 msgid "Part IPN" msgstr "" -#: build/serializers.py:1192 build/serializers.py:1282 part/admin.py:45 +#: build/serializers.py:1237 build/serializers.py:1334 part/admin.py:45 #: part/stocktake.py:220 msgid "Part Description" msgstr "" -#: build/serializers.py:1195 +#: build/serializers.py:1240 msgid "BOM Part ID" msgstr "" -#: build/serializers.py:1196 +#: build/serializers.py:1241 msgid "BOM Part Name" msgstr "" -#: build/serializers.py:1199 +#: build/serializers.py:1244 #: report/templates/report/inventree_return_order_report.html:25 -#: report/templates/report/inventree_test_report.html:88 stock/models.py:845 -#: stock/serializers.py:151 stock/templates/stock/item_base.html:311 -#: templates/js/translated/build.js:520 templates/js/translated/build.js:1540 -#: templates/js/translated/build.js:2527 -#: templates/js/translated/model_renderers.js:231 +#: report/templates/report/inventree_sales_order_shipment_report.html:45 +#: report/templates/report/inventree_test_report.html:88 stock/models.py:922 +#: stock/serializers.py:152 stock/templates/stock/item_base.html:308 +#: templates/js/translated/build.js:523 templates/js/translated/build.js:1543 +#: templates/js/translated/build.js:2534 +#: templates/js/translated/model_renderers.js:234 #: templates/js/translated/return_order.js:539 #: templates/js/translated/return_order.js:722 -#: templates/js/translated/sales_order.js:315 -#: templates/js/translated/sales_order.js:1647 -#: templates/js/translated/sales_order.js:1732 +#: templates/js/translated/sales_order.js:1628 +#: templates/js/translated/sales_order.js:1713 #: templates/js/translated/stock.js:602 msgid "Serial Number" msgstr "" -#: build/serializers.py:1212 stock/serializers.py:593 -#: templates/js/translated/build.js:1017 templates/js/translated/build.js:1164 -#: templates/js/translated/build.js:2516 +#: build/serializers.py:1257 stock/serializers.py:620 +#: templates/js/translated/build.js:1020 templates/js/translated/build.js:1167 +#: templates/js/translated/build.js:2523 msgid "Allocated Quantity" msgstr "" -#: build/serializers.py:1213 stock/templates/stock/item_base.html:340 +#: build/serializers.py:1258 stock/templates/stock/item_base.html:337 msgid "Available Quantity" msgstr "" -#: build/serializers.py:1283 +#: build/serializers.py:1335 msgid "Part Category ID" msgstr "" -#: build/serializers.py:1284 +#: build/serializers.py:1336 msgid "Part Category Name" msgstr "" -#: build/serializers.py:1291 common/models.py:1513 part/admin.py:113 -#: part/models.py:1166 templates/js/translated/table_filters.js:150 +#: build/serializers.py:1345 common/models.py:1582 part/admin.py:113 +#: part/models.py:1227 templates/js/translated/build.js:2738 +#: templates/js/translated/table_filters.js:150 #: templates/js/translated/table_filters.js:230 #: templates/js/translated/table_filters.js:783 msgid "Trackable" msgstr "" -#: build/serializers.py:1292 +#: build/serializers.py:1346 msgid "Inherited" msgstr "" -#: build/serializers.py:1293 part/models.py:4313 +#: build/serializers.py:1347 part/models.py:4370 #: part/templates/part/upload_bom.html:56 templates/js/translated/bom.js:1046 -#: templates/js/translated/build.js:2711 +#: templates/js/translated/build.js:2720 msgid "Allow Variants" msgstr "" -#: build/serializers.py:1297 part/models.py:4110 part/models.py:4584 +#: build/serializers.py:1351 part/models.py:4168 part/models.py:4646 #: stock/api.py:794 msgid "BOM Item" msgstr "" -#: build/serializers.py:1306 build/templates/build/detail.html:236 +#: build/serializers.py:1370 build/templates/build/detail.html:236 #: build/templates/build/sidebar.html:16 templates/js/translated/index.js:130 msgid "Allocated Stock" msgstr "" -#: build/serializers.py:1311 order/serializers.py:1175 part/admin.py:132 -#: part/bom.py:181 part/serializers.py:899 part/serializers.py:1602 -#: part/templates/part/part_base.html:210 templates/js/translated/bom.js:1208 -#: templates/js/translated/build.js:2804 templates/js/translated/part.js:712 +#: build/serializers.py:1375 order/serializers.py:1209 part/admin.py:132 +#: part/bom.py:186 part/serializers.py:951 part/serializers.py:1660 +#: part/templates/part/part_base.html:211 templates/js/translated/bom.js:1208 +#: templates/js/translated/build.js:2822 templates/js/translated/part.js:712 #: templates/js/translated/part.js:2155 #: templates/js/translated/table_filters.js:177 msgid "On Order" msgstr "" -#: build/serializers.py:1316 order/serializers.py:1176 part/serializers.py:1604 -#: templates/js/translated/build.js:2808 +#: build/serializers.py:1380 order/serializers.py:1210 part/serializers.py:1662 +#: templates/js/translated/build.js:2826 #: templates/js/translated/table_filters.js:367 msgid "In Production" msgstr "" -#: build/serializers.py:1321 part/bom.py:180 part/serializers.py:1629 -#: part/templates/part/part_base.html:192 -#: templates/js/translated/sales_order.js:1929 -msgid "Available Stock" -msgstr "" - -#: build/serializers.py:1325 -msgid "Available Substitute Stock" -msgstr "" - -#: build/serializers.py:1326 -msgid "Available Variant Stock" -msgstr "" - -#: build/serializers.py:1327 -msgid "Total Available Stock" -msgstr "" - -#: build/serializers.py:1328 part/serializers.py:906 +#: build/serializers.py:1384 part/serializers.py:958 msgid "External Stock" msgstr "" -#: build/status_codes.py:11 generic/states/tests.py:17 order/status_codes.py:12 -#: order/status_codes.py:42 order/status_codes.py:74 order/status_codes.py:98 +#: build/serializers.py:1385 part/bom.py:185 part/serializers.py:1687 +#: part/templates/part/part_base.html:193 +#: templates/js/translated/sales_order.js:1910 +msgid "Available Stock" +msgstr "" + +#: build/serializers.py:1386 +msgid "Available Substitute Stock" +msgstr "" + +#: build/serializers.py:1387 +msgid "Available Variant Stock" +msgstr "" + +#: build/status_codes.py:11 generic/states/tests.py:21 +#: generic/states/tests.py:131 order/status_codes.py:12 +#: order/status_codes.py:44 order/status_codes.py:76 order/status_codes.py:102 #: templates/js/translated/table_filters.js:601 msgid "Pending" msgstr "V teku" @@ -1722,21 +1750,21 @@ msgstr "V teku" msgid "Production" msgstr "Proizvodnja" -#: build/status_codes.py:13 order/status_codes.py:14 order/status_codes.py:49 -#: order/status_codes.py:79 +#: build/status_codes.py:13 order/status_codes.py:14 order/status_codes.py:51 +#: order/status_codes.py:81 msgid "On Hold" msgstr "" -#: build/status_codes.py:14 order/status_codes.py:16 order/status_codes.py:51 -#: order/status_codes.py:82 +#: build/status_codes.py:14 order/status_codes.py:16 order/status_codes.py:53 +#: order/status_codes.py:84 msgid "Cancelled" msgstr "Preklicano" -#: build/status_codes.py:15 generic/states/tests.py:19 importer/models.py:509 -#: importer/status_codes.py:19 order/status_codes.py:15 -#: order/status_codes.py:50 order/status_codes.py:81 -#: order/templates/order/order_base.html:163 -#: order/templates/order/sales_order_base.html:168 report/models.py:443 +#: build/status_codes.py:15 generic/states/tests.py:23 importer/models.py:518 +#: importer/status_codes.py:27 order/status_codes.py:15 +#: order/status_codes.py:52 order/status_codes.py:83 +#: order/templates/order/order_base.html:172 +#: order/templates/order/sales_order_base.html:169 report/models.py:451 msgid "Complete" msgstr "Končano" @@ -1744,165 +1772,162 @@ msgstr "Končano" msgid "Stock required for build order" msgstr "" -#: build/tasks.py:201 +#: build/tasks.py:260 msgid "Overdue Build Order" msgstr "" -#: build/tasks.py:206 +#: build/tasks.py:265 #, python-brace-format msgid "Build order {bo} is now overdue" msgstr "" -#: build/templates/build/build_base.html:18 +#: build/templates/build/build_base.html:19 msgid "Part thumbnail" msgstr "" -#: build/templates/build/build_base.html:38 -#: company/templates/company/supplier_part.html:35 -#: order/templates/order/order_base.html:29 -#: order/templates/order/return_order_base.html:38 -#: order/templates/order/sales_order_base.html:38 -#: part/templates/part/part_base.html:41 -#: stock/templates/stock/item_base.html:40 -#: stock/templates/stock/location.html:52 +#: build/templates/build/build_base.html:39 +#: company/templates/company/supplier_part.html:36 +#: order/templates/order/order_base.html:30 +#: order/templates/order/return_order_base.html:39 +#: order/templates/order/sales_order_base.html:39 +#: part/templates/part/part_base.html:42 +#: stock/templates/stock/item_base.html:41 +#: stock/templates/stock/location.html:53 #: templates/js/translated/filters.js:338 msgid "Barcode actions" msgstr "" -#: build/templates/build/build_base.html:42 -#: company/templates/company/supplier_part.html:39 -#: order/templates/order/order_base.html:33 -#: order/templates/order/return_order_base.html:42 -#: order/templates/order/sales_order_base.html:42 -#: part/templates/part/part_base.html:44 -#: stock/templates/stock/item_base.html:44 -#: stock/templates/stock/location.html:54 templates/qr_button.html:1 +#: build/templates/build/build_base.html:43 +#: company/templates/company/supplier_part.html:40 +#: order/templates/order/order_base.html:34 +#: order/templates/order/return_order_base.html:43 +#: order/templates/order/sales_order_base.html:43 +#: part/templates/part/part_base.html:45 +#: stock/templates/stock/item_base.html:45 +#: stock/templates/stock/location.html:55 templates/qr_button.html:1 msgid "Show QR Code" msgstr "" -#: build/templates/build/build_base.html:45 -#: company/templates/company/supplier_part.html:41 -#: order/templates/order/order_base.html:36 -#: order/templates/order/return_order_base.html:45 -#: order/templates/order/sales_order_base.html:45 -#: part/templates/part/part_base.html:47 -#: stock/templates/stock/item_base.html:47 -#: stock/templates/stock/location.html:56 +#: build/templates/build/build_base.html:46 +#: company/templates/company/supplier_part.html:42 +#: order/templates/order/order_base.html:37 +#: order/templates/order/return_order_base.html:46 +#: order/templates/order/sales_order_base.html:46 +#: part/templates/part/part_base.html:48 +#: stock/templates/stock/item_base.html:48 +#: stock/templates/stock/location.html:57 #: templates/js/translated/barcode.js:527 #: templates/js/translated/barcode.js:532 msgid "Unlink Barcode" msgstr "" -#: build/templates/build/build_base.html:47 -#: company/templates/company/supplier_part.html:43 -#: order/templates/order/order_base.html:38 -#: order/templates/order/return_order_base.html:47 -#: order/templates/order/sales_order_base.html:47 -#: part/templates/part/part_base.html:49 -#: stock/templates/stock/item_base.html:49 -#: stock/templates/stock/location.html:58 +#: build/templates/build/build_base.html:48 +#: company/templates/company/supplier_part.html:44 +#: order/templates/order/order_base.html:39 +#: order/templates/order/return_order_base.html:48 +#: order/templates/order/sales_order_base.html:48 +#: part/templates/part/part_base.html:50 +#: stock/templates/stock/item_base.html:50 +#: stock/templates/stock/location.html:59 msgid "Link Barcode" msgstr "" -#: build/templates/build/build_base.html:56 -#: order/templates/order/order_base.html:46 -#: order/templates/order/return_order_base.html:55 -#: order/templates/order/sales_order_base.html:55 +#: build/templates/build/build_base.html:57 +#: order/templates/order/order_base.html:47 +#: order/templates/order/return_order_base.html:56 +#: order/templates/order/sales_order_base.html:56 msgid "Print actions" msgstr "" -#: build/templates/build/build_base.html:60 +#: build/templates/build/build_base.html:61 msgid "Print build order report" msgstr "" -#: build/templates/build/build_base.html:67 +#: build/templates/build/build_base.html:68 msgid "Build actions" msgstr "" -#: build/templates/build/build_base.html:71 +#: build/templates/build/build_base.html:72 msgid "Edit Build" msgstr "" -#: build/templates/build/build_base.html:73 +#: build/templates/build/build_base.html:74 msgid "Duplicate Build" msgstr "" -#: build/templates/build/build_base.html:76 +#: build/templates/build/build_base.html:77 msgid "Hold Build" msgstr "" -#: build/templates/build/build_base.html:79 +#: build/templates/build/build_base.html:80 msgid "Cancel Build" msgstr "" -#: build/templates/build/build_base.html:82 +#: build/templates/build/build_base.html:83 msgid "Delete Build" msgstr "" -#: build/templates/build/build_base.html:87 -msgid "Isueue Build" -msgstr "" - #: build/templates/build/build_base.html:88 +#: build/templates/build/build_base.html:89 msgid "Issue Build" msgstr "" -#: build/templates/build/build_base.html:91 #: build/templates/build/build_base.html:92 +#: build/templates/build/build_base.html:93 msgid "Complete Build" msgstr "" -#: build/templates/build/build_base.html:115 +#: build/templates/build/build_base.html:116 msgid "Build Description" msgstr "" -#: build/templates/build/build_base.html:125 +#: build/templates/build/build_base.html:126 msgid "No build outputs have been created for this build order" msgstr "" -#: build/templates/build/build_base.html:132 +#: build/templates/build/build_base.html:133 msgid "Build Order is ready to mark as completed" msgstr "" -#: build/templates/build/build_base.html:137 +#: build/templates/build/build_base.html:138 msgid "Build Order cannot be completed as outstanding outputs remain" msgstr "" -#: build/templates/build/build_base.html:142 +#: build/templates/build/build_base.html:143 msgid "Required build quantity has not yet been completed" msgstr "" -#: build/templates/build/build_base.html:147 +#: build/templates/build/build_base.html:148 msgid "Stock has not been fully allocated to this Build Order" msgstr "" -#: build/templates/build/build_base.html:168 -#: build/templates/build/detail.html:138 order/models.py:308 -#: order/models.py:1391 order/serializers.py:174 -#: order/templates/order/order_base.html:191 -#: order/templates/order/return_order_base.html:167 -#: order/templates/order/sales_order_base.html:199 +#: build/templates/build/build_base.html:169 +#: build/templates/build/detail.html:138 order/models.py:315 +#: order/models.py:1408 order/serializers.py:254 +#: order/templates/order/order_base.html:200 +#: order/templates/order/return_order_base.html:168 +#: order/templates/order/sales_order_base.html:200 #: report/templates/report/inventree_build_order_report.html:125 -#: templates/js/translated/build.js:2411 templates/js/translated/part.js:1837 -#: templates/js/translated/purchase_order.js:1809 -#: templates/js/translated/purchase_order.js:2217 +#: templates/js/translated/build.js:2414 templates/js/translated/part.js:1837 +#: templates/js/translated/purchase_order.js:1793 +#: templates/js/translated/purchase_order.js:2201 #: templates/js/translated/return_order.js:346 #: templates/js/translated/return_order.js:749 -#: templates/js/translated/sales_order.js:871 -#: templates/js/translated/sales_order.js:1903 +#: templates/js/translated/sales_order.js:830 +#: templates/js/translated/sales_order.js:1884 msgid "Target Date" msgstr "" -#: build/templates/build/build_base.html:173 +#: build/templates/build/build_base.html:174 #, python-format msgid "This build was due on %(target)s" msgstr "" -#: build/templates/build/build_base.html:173 -#: build/templates/build/build_base.html:230 -#: order/templates/order/order_base.html:127 -#: order/templates/order/return_order_base.html:120 -#: order/templates/order/sales_order_base.html:129 +#: build/templates/build/build_base.html:174 +#: build/templates/build/build_base.html:231 +#: order/templates/order/order_base.html:128 +#: order/templates/order/return_order_base.html:121 +#: order/templates/order/sales_order_base.html:130 #: templates/js/translated/table_filters.js:97 #: templates/js/translated/table_filters.js:545 #: templates/js/translated/table_filters.js:629 @@ -1910,49 +1935,50 @@ msgstr "" msgid "Overdue" msgstr "" -#: build/templates/build/build_base.html:185 +#: build/templates/build/build_base.html:186 #: build/templates/build/detail.html:67 build/templates/build/sidebar.html:13 msgid "Completed Outputs" msgstr "" -#: build/templates/build/build_base.html:198 -#: build/templates/build/detail.html:101 order/api.py:1406 order/models.py:892 -#: order/models.py:1650 order/models.py:1765 order/models.py:1924 -#: order/templates/order/sales_order_base.html:9 -#: order/templates/order/sales_order_base.html:28 +#: build/templates/build/build_base.html:199 +#: build/templates/build/detail.html:101 order/api.py:1528 order/models.py:914 +#: order/models.py:1666 order/models.py:1794 order/models.py:1957 +#: order/templates/order/sales_order_base.html:10 +#: order/templates/order/sales_order_base.html:29 #: report/templates/report/inventree_build_order_report.html:135 #: report/templates/report/inventree_sales_order_report.html:14 -#: stock/templates/stock/item_base.html:369 +#: report/templates/report/inventree_sales_order_shipment_report.html:15 +#: stock/templates/stock/item_base.html:366 #: templates/email/overdue_sales_order.html:15 -#: templates/js/translated/pricing.js:929 -#: templates/js/translated/sales_order.js:805 -#: templates/js/translated/sales_order.js:1028 -#: templates/js/translated/stock.js:3008 +#: templates/js/translated/pricing.js:927 +#: templates/js/translated/sales_order.js:764 +#: templates/js/translated/sales_order.js:1001 +#: templates/js/translated/stock.js:3009 msgid "Sales Order" msgstr "" -#: build/templates/build/build_base.html:219 -#: build/templates/build/detail.html:94 templates/js/translated/build.js:2328 +#: build/templates/build/build_base.html:220 +#: build/templates/build/detail.html:94 templates/js/translated/build.js:2331 msgid "Priority" msgstr "" -#: build/templates/build/build_base.html:267 +#: build/templates/build/build_base.html:268 msgid "Issue Build Order" msgstr "" -#: build/templates/build/build_base.html:271 +#: build/templates/build/build_base.html:272 msgid "Issue this Build Order?" msgstr "" -#: build/templates/build/build_base.html:302 +#: build/templates/build/build_base.html:303 msgid "Delete Build Order" msgstr "" -#: build/templates/build/build_base.html:312 +#: build/templates/build/build_base.html:313 msgid "Build Order QR Code" msgstr "" -#: build/templates/build/build_base.html:324 +#: build/templates/build/build_base.html:325 msgid "Link Barcode to Build Order" msgstr "" @@ -1968,8 +1994,9 @@ msgstr "" msgid "Stock can be taken from any available location." msgstr "" -#: build/templates/build/detail.html:49 order/models.py:1532 -#: templates/js/translated/purchase_order.js:2259 +#: build/templates/build/detail.html:49 order/models.py:548 +#: order/models.py:1548 order/templates/order/order_base.html:135 +#: templates/js/translated/purchase_order.js:2243 msgid "Destination" msgstr "" @@ -1981,23 +2008,24 @@ msgstr "" msgid "Allocated Parts" msgstr "" -#: build/templates/build/detail.html:80 stock/admin.py:162 -#: stock/templates/stock/item_base.html:162 -#: templates/js/translated/build.js:1553 -#: templates/js/translated/model_renderers.js:242 -#: templates/js/translated/purchase_order.js:1326 +#: build/templates/build/detail.html:80 +#: report/templates/report/inventree_sales_order_shipment_report.html:47 +#: stock/admin.py:163 stock/templates/stock/item_base.html:159 +#: templates/js/translated/build.js:1556 +#: templates/js/translated/model_renderers.js:245 +#: templates/js/translated/purchase_order.js:1309 #: templates/js/translated/stock.js:1139 templates/js/translated/stock.js:1240 -#: templates/js/translated/stock.js:2275 templates/js/translated/stock.js:3211 +#: templates/js/translated/stock.js:2276 templates/js/translated/stock.js:3212 #: templates/js/translated/table_filters.js:320 #: templates/js/translated/table_filters.js:411 msgid "Batch" msgstr "" #: build/templates/build/detail.html:133 -#: order/templates/order/order_base.html:178 -#: order/templates/order/return_order_base.html:154 -#: order/templates/order/sales_order_base.html:193 -#: templates/js/translated/build.js:2371 +#: order/templates/order/order_base.html:187 +#: order/templates/order/return_order_base.html:155 +#: order/templates/order/sales_order_base.html:194 +#: templates/js/translated/build.js:2374 msgid "Created" msgstr "" @@ -2005,8 +2033,8 @@ msgstr "" msgid "No target date set" msgstr "" -#: build/templates/build/detail.html:149 -#: order/templates/order/sales_order_base.html:209 +#: build/templates/build/detail.html:149 order/api.py:794 +#: order/templates/order/sales_order_base.html:210 #: templates/js/translated/table_filters.js:692 msgid "Completed" msgstr "" @@ -2052,7 +2080,7 @@ msgid "Order required parts" msgstr "" #: build/templates/build/detail.html:192 -#: templates/js/translated/purchase_order.js:795 +#: templates/js/translated/purchase_order.js:778 msgid "Order Parts" msgstr "" @@ -2120,7 +2148,7 @@ msgstr "" msgid "Build Order Details" msgstr "" -#: build/templates/build/sidebar.html:8 order/serializers.py:82 +#: build/templates/build/sidebar.html:8 order/serializers.py:113 #: order/templates/order/po_sidebar.html:5 #: order/templates/order/return_order_detail.html:18 #: order/templates/order/so_sidebar.html:5 @@ -2139,43 +2167,38 @@ msgstr "" msgid "Test Statistics" msgstr "" -#: common/api.py:693 +#: common/api.py:725 msgid "Is Link" msgstr "" -#: common/api.py:701 +#: common/api.py:733 msgid "Is File" msgstr "" -#: common/api.py:744 +#: common/api.py:776 msgid "User does not have permission to delete these attachments" msgstr "" -#: common/api.py:761 +#: common/api.py:793 msgid "User does not have permission to delete this attachment" msgstr "" -#: common/currency.py:132 +#: common/currency.py:134 msgid "Invalid currency code" msgstr "" -#: common/currency.py:134 +#: common/currency.py:136 msgid "Duplicate currency code" msgstr "" -#: common/currency.py:139 +#: common/currency.py:141 msgid "No valid currency codes provided" msgstr "" -#: common/currency.py:156 +#: common/currency.py:158 msgid "No plugin" msgstr "" -#: common/files.py:63 -#, python-brace-format -msgid "Unsupported file format: {fmt}" -msgstr "" - #: common/files.py:65 msgid "Error reading file (invalid encoding)" msgstr "" @@ -2192,1883 +2215,2039 @@ msgstr "" msgid "Error reading file (data could be corrupted)" msgstr "" -#: common/forms.py:12 +#: common/forms.py:12 common/forms.py:25 msgid "File" msgstr "" -#: common/forms.py:12 +#: common/forms.py:12 common/forms.py:26 msgid "Select file to upload" msgstr "" -#: common/forms.py:25 -msgid "{name.title()} File" -msgstr "" - -#: common/forms.py:26 -#, python-brace-format -msgid "Select {name} file to upload" -msgstr "" - -#: common/models.py:86 +#: common/models.py:89 msgid "Updated" msgstr "" -#: common/models.py:87 +#: common/models.py:90 msgid "Timestamp of last update" msgstr "" -#: common/models.py:120 +#: common/models.py:123 msgid "Site URL is locked by configuration" msgstr "" -#: common/models.py:150 +#: common/models.py:153 msgid "Unique project code" msgstr "" -#: common/models.py:157 +#: common/models.py:160 msgid "Project description" msgstr "" -#: common/models.py:166 +#: common/models.py:169 msgid "User or group responsible for this project" msgstr "" -#: common/models.py:783 -msgid "Settings key (must be unique - case insensitive)" +#: common/models.py:783 common/models.py:2236 common/models.py:2613 +msgid "Settings key" msgstr "" #: common/models.py:787 msgid "Settings value" msgstr "" -#: common/models.py:839 +#: common/models.py:842 msgid "Chosen value is not a valid option" msgstr "" -#: common/models.py:855 +#: common/models.py:858 msgid "Value must be a boolean value" msgstr "" -#: common/models.py:863 +#: common/models.py:866 msgid "Value must be an integer value" msgstr "" -#: common/models.py:900 +#: common/models.py:874 +msgid "Value must be a valid number" +msgstr "" + +#: common/models.py:899 +msgid "Value does not pass validation checks" +msgstr "" + +#: common/models.py:921 msgid "Key string must be unique" msgstr "" -#: common/models.py:1132 +#: common/models.py:1189 msgid "No group" msgstr "" -#: common/models.py:1231 +#: common/models.py:1288 msgid "Restart required" msgstr "" -#: common/models.py:1233 +#: common/models.py:1290 msgid "A setting has been changed which requires a server restart" msgstr "" -#: common/models.py:1240 +#: common/models.py:1297 msgid "Pending migrations" msgstr "" -#: common/models.py:1241 +#: common/models.py:1298 msgid "Number of pending database migrations" msgstr "" -#: common/models.py:1246 +#: common/models.py:1303 msgid "Server Instance Name" msgstr "" -#: common/models.py:1248 +#: common/models.py:1305 msgid "String descriptor for the server instance" msgstr "" -#: common/models.py:1252 +#: common/models.py:1309 msgid "Use instance name" msgstr "" -#: common/models.py:1253 +#: common/models.py:1310 msgid "Use the instance name in the title-bar" msgstr "" -#: common/models.py:1258 +#: common/models.py:1315 msgid "Restrict showing `about`" msgstr "" -#: common/models.py:1259 +#: common/models.py:1316 msgid "Show the `about` modal only to superusers" msgstr "" -#: common/models.py:1264 company/models.py:111 company/models.py:112 +#: common/models.py:1321 company/models.py:108 company/models.py:109 msgid "Company name" msgstr "" -#: common/models.py:1265 +#: common/models.py:1322 msgid "Internal company name" msgstr "" -#: common/models.py:1269 +#: common/models.py:1326 msgid "Base URL" msgstr "" -#: common/models.py:1270 +#: common/models.py:1327 msgid "Base URL for server instance" msgstr "" -#: common/models.py:1276 +#: common/models.py:1333 msgid "Default Currency" msgstr "" -#: common/models.py:1277 +#: common/models.py:1334 msgid "Select base currency for pricing calculations" msgstr "" -#: common/models.py:1283 +#: common/models.py:1340 msgid "Supported Currencies" msgstr "" -#: common/models.py:1284 +#: common/models.py:1341 msgid "List of supported currency codes" msgstr "" -#: common/models.py:1290 +#: common/models.py:1347 msgid "Currency Update Interval" msgstr "" -#: common/models.py:1292 +#: common/models.py:1349 msgid "How often to update exchange rates (set to zero to disable)" msgstr "" -#: common/models.py:1295 common/models.py:1351 common/models.py:1364 -#: common/models.py:1372 common/models.py:1381 common/models.py:1390 -#: common/models.py:1627 common/models.py:1649 common/models.py:1764 -#: common/models.py:2146 +#: common/models.py:1352 common/models.py:1408 common/models.py:1421 +#: common/models.py:1429 common/models.py:1438 common/models.py:1447 +#: common/models.py:1696 common/models.py:1718 common/models.py:1819 +#: common/models.py:2208 msgid "days" msgstr "" -#: common/models.py:1299 +#: common/models.py:1356 msgid "Currency Update Plugin" msgstr "" -#: common/models.py:1300 +#: common/models.py:1357 msgid "Currency update plugin to use" msgstr "" -#: common/models.py:1305 +#: common/models.py:1362 msgid "Download from URL" msgstr "" -#: common/models.py:1307 +#: common/models.py:1364 msgid "Allow download of remote images and files from external URL" msgstr "" -#: common/models.py:1313 +#: common/models.py:1370 msgid "Download Size Limit" msgstr "" -#: common/models.py:1314 +#: common/models.py:1371 msgid "Maximum allowable download size for remote image" msgstr "" -#: common/models.py:1320 +#: common/models.py:1377 msgid "User-agent used to download from URL" msgstr "" -#: common/models.py:1322 +#: common/models.py:1379 msgid "Allow to override the user-agent used to download images and files from external URL (leave blank for the default)" msgstr "" -#: common/models.py:1327 +#: common/models.py:1384 msgid "Strict URL Validation" msgstr "" -#: common/models.py:1328 +#: common/models.py:1385 msgid "Require schema specification when validating URLs" msgstr "" -#: common/models.py:1333 +#: common/models.py:1390 msgid "Require confirm" msgstr "" -#: common/models.py:1334 +#: common/models.py:1391 msgid "Require explicit user confirmation for certain action." msgstr "" -#: common/models.py:1339 +#: common/models.py:1396 msgid "Tree Depth" msgstr "" -#: common/models.py:1341 +#: common/models.py:1398 msgid "Default tree depth for treeview. Deeper levels can be lazy loaded as they are needed." msgstr "" -#: common/models.py:1347 +#: common/models.py:1404 msgid "Update Check Interval" msgstr "" -#: common/models.py:1348 +#: common/models.py:1405 msgid "How often to check for updates (set to zero to disable)" msgstr "" -#: common/models.py:1354 +#: common/models.py:1411 msgid "Automatic Backup" msgstr "" -#: common/models.py:1355 +#: common/models.py:1412 msgid "Enable automatic backup of database and media files" msgstr "" -#: common/models.py:1360 +#: common/models.py:1417 msgid "Auto Backup Interval" msgstr "" -#: common/models.py:1361 +#: common/models.py:1418 msgid "Specify number of days between automated backup events" msgstr "" -#: common/models.py:1367 +#: common/models.py:1424 msgid "Task Deletion Interval" msgstr "" -#: common/models.py:1369 +#: common/models.py:1426 msgid "Background task results will be deleted after specified number of days" msgstr "" -#: common/models.py:1376 +#: common/models.py:1433 msgid "Error Log Deletion Interval" msgstr "" -#: common/models.py:1378 +#: common/models.py:1435 msgid "Error logs will be deleted after specified number of days" msgstr "" -#: common/models.py:1385 +#: common/models.py:1442 msgid "Notification Deletion Interval" msgstr "" -#: common/models.py:1387 +#: common/models.py:1444 msgid "User notifications will be deleted after specified number of days" msgstr "" -#: common/models.py:1394 templates/InvenTree/settings/sidebar.html:31 +#: common/models.py:1451 templates/InvenTree/settings/sidebar.html:31 msgid "Barcode Support" msgstr "" -#: common/models.py:1395 +#: common/models.py:1452 msgid "Enable barcode scanner support in the web interface" msgstr "" -#: common/models.py:1400 +#: common/models.py:1457 +msgid "Store Barcode Results" +msgstr "" + +#: common/models.py:1458 +msgid "Store barcode scan results in the database" +msgstr "" + +#: common/models.py:1463 +msgid "Barcode Scans Maximum Count" +msgstr "" + +#: common/models.py:1464 +msgid "Maximum number of barcode scan results to store" +msgstr "" + +#: common/models.py:1469 msgid "Barcode Input Delay" msgstr "" -#: common/models.py:1401 +#: common/models.py:1470 msgid "Barcode input processing delay time" msgstr "" -#: common/models.py:1407 +#: common/models.py:1476 msgid "Barcode Webcam Support" msgstr "" -#: common/models.py:1408 +#: common/models.py:1477 msgid "Allow barcode scanning via webcam in browser" msgstr "" -#: common/models.py:1413 +#: common/models.py:1482 msgid "Barcode Show Data" msgstr "" -#: common/models.py:1414 +#: common/models.py:1483 msgid "Display barcode data in browser as text" msgstr "" -#: common/models.py:1419 +#: common/models.py:1488 msgid "Barcode Generation Plugin" msgstr "" -#: common/models.py:1420 +#: common/models.py:1489 msgid "Plugin to use for internal barcode data generation" msgstr "" -#: common/models.py:1425 +#: common/models.py:1494 msgid "Part Revisions" msgstr "" -#: common/models.py:1426 +#: common/models.py:1495 msgid "Enable revision field for Part" msgstr "" -#: common/models.py:1431 +#: common/models.py:1500 msgid "Assembly Revision Only" msgstr "" -#: common/models.py:1432 +#: common/models.py:1501 msgid "Only allow revisions for assembly parts" msgstr "" -#: common/models.py:1437 +#: common/models.py:1506 msgid "Allow Deletion from Assembly" msgstr "" -#: common/models.py:1438 +#: common/models.py:1507 msgid "Allow deletion of parts which are used in an assembly" msgstr "" -#: common/models.py:1443 +#: common/models.py:1512 msgid "IPN Regex" msgstr "" -#: common/models.py:1444 +#: common/models.py:1513 msgid "Regular expression pattern for matching Part IPN" msgstr "" -#: common/models.py:1447 +#: common/models.py:1516 msgid "Allow Duplicate IPN" msgstr "" -#: common/models.py:1448 +#: common/models.py:1517 msgid "Allow multiple parts to share the same IPN" msgstr "" -#: common/models.py:1453 +#: common/models.py:1522 msgid "Allow Editing IPN" msgstr "" -#: common/models.py:1454 +#: common/models.py:1523 msgid "Allow changing the IPN value while editing a part" msgstr "" -#: common/models.py:1459 +#: common/models.py:1528 msgid "Copy Part BOM Data" msgstr "" -#: common/models.py:1460 +#: common/models.py:1529 msgid "Copy BOM data by default when duplicating a part" msgstr "" -#: common/models.py:1465 +#: common/models.py:1534 msgid "Copy Part Parameter Data" msgstr "" -#: common/models.py:1466 +#: common/models.py:1535 msgid "Copy parameter data by default when duplicating a part" msgstr "" -#: common/models.py:1471 +#: common/models.py:1540 msgid "Copy Part Test Data" msgstr "" -#: common/models.py:1472 +#: common/models.py:1541 msgid "Copy test data by default when duplicating a part" msgstr "" -#: common/models.py:1477 +#: common/models.py:1546 msgid "Copy Category Parameter Templates" msgstr "" -#: common/models.py:1478 +#: common/models.py:1547 msgid "Copy category parameter templates when creating a part" msgstr "" -#: common/models.py:1483 part/admin.py:108 part/models.py:3945 -#: report/models.py:293 report/models.py:360 report/serializers.py:90 -#: report/serializers.py:131 stock/serializers.py:232 +#: common/models.py:1552 part/admin.py:108 part/models.py:4003 +#: report/models.py:301 report/models.py:368 report/serializers.py:91 +#: report/serializers.py:132 stock/serializers.py:233 #: templates/js/translated/table_filters.js:138 #: templates/js/translated/table_filters.js:775 msgid "Template" msgstr "" -#: common/models.py:1484 +#: common/models.py:1553 msgid "Parts are templates by default" msgstr "" -#: common/models.py:1490 +#: common/models.py:1559 msgid "Parts can be assembled from other components by default" msgstr "" -#: common/models.py:1495 part/admin.py:95 part/models.py:1160 -#: part/serializers.py:1596 templates/js/translated/table_filters.js:737 +#: common/models.py:1564 part/admin.py:95 part/models.py:1221 +#: part/serializers.py:1654 templates/js/translated/table_filters.js:737 msgid "Component" msgstr "" -#: common/models.py:1496 +#: common/models.py:1565 msgid "Parts can be used as sub-components by default" msgstr "" -#: common/models.py:1501 part/admin.py:100 part/models.py:1178 +#: common/models.py:1570 part/admin.py:100 part/models.py:1239 msgid "Purchaseable" msgstr "" -#: common/models.py:1502 +#: common/models.py:1571 msgid "Parts are purchaseable by default" msgstr "" -#: common/models.py:1507 part/admin.py:104 part/models.py:1184 +#: common/models.py:1576 part/admin.py:104 part/models.py:1245 #: templates/js/translated/table_filters.js:763 msgid "Salable" msgstr "" -#: common/models.py:1508 +#: common/models.py:1577 msgid "Parts are salable by default" msgstr "" -#: common/models.py:1514 +#: common/models.py:1583 msgid "Parts are trackable by default" msgstr "" -#: common/models.py:1519 part/admin.py:117 part/models.py:1200 -#: part/templates/part/part_base.html:154 +#: common/models.py:1588 part/admin.py:117 part/models.py:1261 +#: part/templates/part/part_base.html:155 #: templates/js/translated/table_filters.js:142 #: templates/js/translated/table_filters.js:787 msgid "Virtual" msgstr "" -#: common/models.py:1520 +#: common/models.py:1589 msgid "Parts are virtual by default" msgstr "" -#: common/models.py:1525 +#: common/models.py:1594 msgid "Show Import in Views" msgstr "" -#: common/models.py:1526 +#: common/models.py:1595 msgid "Display the import wizard in some part views" msgstr "" -#: common/models.py:1531 +#: common/models.py:1600 msgid "Show related parts" msgstr "" -#: common/models.py:1532 +#: common/models.py:1601 msgid "Display related parts for a part" msgstr "" -#: common/models.py:1537 +#: common/models.py:1606 msgid "Initial Stock Data" msgstr "" -#: common/models.py:1538 +#: common/models.py:1607 msgid "Allow creation of initial stock when adding a new part" msgstr "" -#: common/models.py:1543 templates/js/translated/part.js:108 +#: common/models.py:1612 templates/js/translated/part.js:108 msgid "Initial Supplier Data" msgstr "" -#: common/models.py:1545 +#: common/models.py:1614 msgid "Allow creation of initial supplier data when adding a new part" msgstr "" -#: common/models.py:1551 +#: common/models.py:1620 msgid "Part Name Display Format" msgstr "" -#: common/models.py:1552 +#: common/models.py:1621 msgid "Format to display the part name" msgstr "" -#: common/models.py:1558 +#: common/models.py:1627 msgid "Part Category Default Icon" msgstr "" -#: common/models.py:1559 +#: common/models.py:1628 msgid "Part category default icon (empty means no icon)" msgstr "" -#: common/models.py:1564 +#: common/models.py:1633 msgid "Enforce Parameter Units" msgstr "" -#: common/models.py:1566 +#: common/models.py:1635 msgid "If units are provided, parameter values must match the specified units" msgstr "" -#: common/models.py:1572 +#: common/models.py:1641 msgid "Minimum Pricing Decimal Places" msgstr "" -#: common/models.py:1574 +#: common/models.py:1643 msgid "Minimum number of decimal places to display when rendering pricing data" msgstr "" -#: common/models.py:1585 +#: common/models.py:1654 msgid "Maximum Pricing Decimal Places" msgstr "" -#: common/models.py:1587 +#: common/models.py:1656 msgid "Maximum number of decimal places to display when rendering pricing data" msgstr "" -#: common/models.py:1598 +#: common/models.py:1667 msgid "Use Supplier Pricing" msgstr "" -#: common/models.py:1600 +#: common/models.py:1669 msgid "Include supplier price breaks in overall pricing calculations" msgstr "" -#: common/models.py:1606 +#: common/models.py:1675 msgid "Purchase History Override" msgstr "" -#: common/models.py:1608 +#: common/models.py:1677 msgid "Historical purchase order pricing overrides supplier price breaks" msgstr "" -#: common/models.py:1614 +#: common/models.py:1683 msgid "Use Stock Item Pricing" msgstr "" -#: common/models.py:1616 +#: common/models.py:1685 msgid "Use pricing from manually entered stock data for pricing calculations" msgstr "" -#: common/models.py:1622 +#: common/models.py:1691 msgid "Stock Item Pricing Age" msgstr "" -#: common/models.py:1624 +#: common/models.py:1693 msgid "Exclude stock items older than this number of days from pricing calculations" msgstr "" -#: common/models.py:1631 +#: common/models.py:1700 msgid "Use Variant Pricing" msgstr "" -#: common/models.py:1632 +#: common/models.py:1701 msgid "Include variant pricing in overall pricing calculations" msgstr "" -#: common/models.py:1637 +#: common/models.py:1706 msgid "Active Variants Only" msgstr "" -#: common/models.py:1639 +#: common/models.py:1708 msgid "Only use active variant parts for calculating variant pricing" msgstr "" -#: common/models.py:1645 +#: common/models.py:1714 msgid "Pricing Rebuild Interval" msgstr "" -#: common/models.py:1647 +#: common/models.py:1716 msgid "Number of days before part pricing is automatically updated" msgstr "" -#: common/models.py:1654 +#: common/models.py:1723 msgid "Internal Prices" msgstr "" -#: common/models.py:1655 +#: common/models.py:1724 msgid "Enable internal prices for parts" msgstr "" -#: common/models.py:1660 +#: common/models.py:1729 msgid "Internal Price Override" msgstr "" -#: common/models.py:1662 +#: common/models.py:1731 msgid "If available, internal prices override price range calculations" msgstr "" -#: common/models.py:1668 +#: common/models.py:1737 msgid "Enable label printing" msgstr "" -#: common/models.py:1669 +#: common/models.py:1738 msgid "Enable label printing from the web interface" msgstr "" -#: common/models.py:1674 +#: common/models.py:1743 msgid "Label Image DPI" msgstr "" -#: common/models.py:1676 +#: common/models.py:1745 msgid "DPI resolution when generating image files to supply to label printing plugins" msgstr "" -#: common/models.py:1682 +#: common/models.py:1751 msgid "Enable Reports" msgstr "" -#: common/models.py:1683 +#: common/models.py:1752 msgid "Enable generation of reports" msgstr "" -#: common/models.py:1688 templates/stats.html:25 +#: common/models.py:1757 templates/stats.html:25 msgid "Debug Mode" msgstr "" -#: common/models.py:1689 +#: common/models.py:1758 msgid "Generate reports in debug mode (HTML output)" msgstr "" -#: common/models.py:1694 +#: common/models.py:1763 msgid "Log Report Errors" msgstr "" -#: common/models.py:1695 +#: common/models.py:1764 msgid "Log errors which occur when generating reports" msgstr "" -#: common/models.py:1700 plugin/builtin/labels/label_sheet.py:28 -#: report/models.py:301 +#: common/models.py:1769 plugin/builtin/labels/label_sheet.py:28 +#: report/models.py:309 msgid "Page Size" msgstr "" -#: common/models.py:1701 +#: common/models.py:1770 msgid "Default page size for PDF reports" msgstr "" -#: common/models.py:1706 -msgid "Enable Test Reports" -msgstr "" - -#: common/models.py:1707 -msgid "Enable generation of test reports" -msgstr "" - -#: common/models.py:1712 -msgid "Attach Test Reports" -msgstr "" - -#: common/models.py:1714 -msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item" -msgstr "" - -#: common/models.py:1720 +#: common/models.py:1775 msgid "Globally Unique Serials" msgstr "" -#: common/models.py:1721 +#: common/models.py:1776 msgid "Serial numbers for stock items must be globally unique" msgstr "" -#: common/models.py:1726 +#: common/models.py:1781 msgid "Autofill Serial Numbers" msgstr "" -#: common/models.py:1727 +#: common/models.py:1782 msgid "Autofill serial numbers in forms" msgstr "" -#: common/models.py:1732 +#: common/models.py:1787 msgid "Delete Depleted Stock" msgstr "" -#: common/models.py:1734 +#: common/models.py:1789 msgid "Determines default behavior when a stock item is depleted" msgstr "" -#: common/models.py:1740 +#: common/models.py:1795 msgid "Batch Code Template" msgstr "" -#: common/models.py:1742 +#: common/models.py:1797 msgid "Template for generating default batch codes for stock items" msgstr "" -#: common/models.py:1747 +#: common/models.py:1802 msgid "Stock Expiry" msgstr "" -#: common/models.py:1748 +#: common/models.py:1803 msgid "Enable stock expiry functionality" msgstr "" -#: common/models.py:1753 +#: common/models.py:1808 msgid "Sell Expired Stock" msgstr "" -#: common/models.py:1754 +#: common/models.py:1809 msgid "Allow sale of expired stock" msgstr "" -#: common/models.py:1759 +#: common/models.py:1814 msgid "Stock Stale Time" msgstr "" -#: common/models.py:1761 +#: common/models.py:1816 msgid "Number of days stock items are considered stale before expiring" msgstr "" -#: common/models.py:1768 +#: common/models.py:1823 msgid "Build Expired Stock" msgstr "" -#: common/models.py:1769 +#: common/models.py:1824 msgid "Allow building with expired stock" msgstr "" -#: common/models.py:1774 +#: common/models.py:1829 msgid "Stock Ownership Control" msgstr "" -#: common/models.py:1775 +#: common/models.py:1830 msgid "Enable ownership control over stock locations and items" msgstr "" -#: common/models.py:1780 +#: common/models.py:1835 msgid "Stock Location Default Icon" msgstr "" -#: common/models.py:1781 +#: common/models.py:1836 msgid "Stock location default icon (empty means no icon)" msgstr "" -#: common/models.py:1786 +#: common/models.py:1841 msgid "Show Installed Stock Items" msgstr "" -#: common/models.py:1787 +#: common/models.py:1842 msgid "Display installed stock items in stock tables" msgstr "" -#: common/models.py:1792 +#: common/models.py:1847 msgid "Check BOM when installing items" msgstr "" -#: common/models.py:1794 +#: common/models.py:1849 msgid "Installed stock items must exist in the BOM for the parent part" msgstr "" -#: common/models.py:1800 +#: common/models.py:1855 msgid "Allow Out of Stock Transfer" msgstr "" -#: common/models.py:1802 +#: common/models.py:1857 msgid "Allow stock items which are not in stock to be transferred between stock locations" msgstr "" -#: common/models.py:1808 +#: common/models.py:1863 msgid "Build Order Reference Pattern" msgstr "" -#: common/models.py:1810 +#: common/models.py:1865 msgid "Required pattern for generating Build Order reference field" msgstr "" -#: common/models.py:1816 common/models.py:1872 common/models.py:1894 -#: common/models.py:1930 +#: common/models.py:1871 common/models.py:1927 common/models.py:1949 +#: common/models.py:1985 msgid "Require Responsible Owner" msgstr "" -#: common/models.py:1817 common/models.py:1873 common/models.py:1895 -#: common/models.py:1931 +#: common/models.py:1872 common/models.py:1928 common/models.py:1950 +#: common/models.py:1986 msgid "A responsible owner must be assigned to each order" msgstr "" -#: common/models.py:1822 +#: common/models.py:1877 msgid "Require Active Part" msgstr "" -#: common/models.py:1823 +#: common/models.py:1878 msgid "Prevent build order creation for inactive parts" msgstr "" -#: common/models.py:1828 +#: common/models.py:1883 msgid "Require Locked Part" msgstr "" -#: common/models.py:1829 +#: common/models.py:1884 msgid "Prevent build order creation for unlocked parts" msgstr "" -#: common/models.py:1834 +#: common/models.py:1889 msgid "Require Valid BOM" msgstr "" -#: common/models.py:1836 +#: common/models.py:1891 msgid "Prevent build order creation unless BOM has been validated" msgstr "" -#: common/models.py:1842 +#: common/models.py:1897 msgid "Require Closed Child Orders" msgstr "" -#: common/models.py:1844 +#: common/models.py:1899 msgid "Prevent build order completion until all child orders are closed" msgstr "" -#: common/models.py:1850 +#: common/models.py:1905 msgid "Block Until Tests Pass" msgstr "" -#: common/models.py:1852 +#: common/models.py:1907 msgid "Prevent build outputs from being completed until all required tests pass" msgstr "" -#: common/models.py:1858 +#: common/models.py:1913 msgid "Enable Return Orders" msgstr "" -#: common/models.py:1859 +#: common/models.py:1914 msgid "Enable return order functionality in the user interface" msgstr "" -#: common/models.py:1864 +#: common/models.py:1919 msgid "Return Order Reference Pattern" msgstr "" -#: common/models.py:1866 +#: common/models.py:1921 msgid "Required pattern for generating Return Order reference field" msgstr "" -#: common/models.py:1878 +#: common/models.py:1933 msgid "Edit Completed Return Orders" msgstr "" -#: common/models.py:1880 +#: common/models.py:1935 msgid "Allow editing of return orders after they have been completed" msgstr "" -#: common/models.py:1886 +#: common/models.py:1941 msgid "Sales Order Reference Pattern" msgstr "" -#: common/models.py:1888 +#: common/models.py:1943 msgid "Required pattern for generating Sales Order reference field" msgstr "" -#: common/models.py:1900 +#: common/models.py:1955 msgid "Sales Order Default Shipment" msgstr "" -#: common/models.py:1901 +#: common/models.py:1956 msgid "Enable creation of default shipment with sales orders" msgstr "" -#: common/models.py:1906 +#: common/models.py:1961 msgid "Edit Completed Sales Orders" msgstr "" -#: common/models.py:1908 +#: common/models.py:1963 msgid "Allow editing of sales orders after they have been shipped or completed" msgstr "" -#: common/models.py:1914 +#: common/models.py:1969 msgid "Mark Shipped Orders as Complete" msgstr "" -#: common/models.py:1916 +#: common/models.py:1971 msgid "Sales orders marked as shipped will automatically be completed, bypassing the \"shipped\" status" msgstr "" -#: common/models.py:1922 +#: common/models.py:1977 msgid "Purchase Order Reference Pattern" msgstr "" -#: common/models.py:1924 +#: common/models.py:1979 msgid "Required pattern for generating Purchase Order reference field" msgstr "" -#: common/models.py:1936 +#: common/models.py:1991 msgid "Edit Completed Purchase Orders" msgstr "" -#: common/models.py:1938 +#: common/models.py:1993 msgid "Allow editing of purchase orders after they have been shipped or completed" msgstr "" -#: common/models.py:1944 +#: common/models.py:1999 msgid "Auto Complete Purchase Orders" msgstr "" -#: common/models.py:1946 +#: common/models.py:2001 msgid "Automatically mark purchase orders as complete when all line items are received" msgstr "" -#: common/models.py:1953 +#: common/models.py:2008 msgid "Enable password forgot" msgstr "" -#: common/models.py:1954 +#: common/models.py:2009 msgid "Enable password forgot function on the login pages" msgstr "" -#: common/models.py:1959 +#: common/models.py:2014 msgid "Enable registration" msgstr "" -#: common/models.py:1960 +#: common/models.py:2015 msgid "Enable self-registration for users on the login pages" msgstr "" -#: common/models.py:1965 +#: common/models.py:2020 msgid "Enable SSO" msgstr "" -#: common/models.py:1966 +#: common/models.py:2021 msgid "Enable SSO on the login pages" msgstr "" -#: common/models.py:1971 +#: common/models.py:2026 msgid "Enable SSO registration" msgstr "" -#: common/models.py:1973 +#: common/models.py:2028 msgid "Enable self-registration via SSO for users on the login pages" msgstr "" -#: common/models.py:1979 +#: common/models.py:2034 msgid "Enable SSO group sync" msgstr "" -#: common/models.py:1981 +#: common/models.py:2036 msgid "Enable synchronizing InvenTree groups with groups provided by the IdP" msgstr "" -#: common/models.py:1987 +#: common/models.py:2042 msgid "SSO group key" msgstr "" -#: common/models.py:1989 +#: common/models.py:2044 msgid "The name of the groups claim attribute provided by the IdP" msgstr "" -#: common/models.py:1995 +#: common/models.py:2050 msgid "SSO group map" msgstr "" -#: common/models.py:1997 +#: common/models.py:2052 msgid "A mapping from SSO groups to local InvenTree groups. If the local group does not exist, it will be created." msgstr "" -#: common/models.py:2003 +#: common/models.py:2058 msgid "Remove groups outside of SSO" msgstr "" -#: common/models.py:2005 +#: common/models.py:2060 msgid "Whether groups assigned to the user should be removed if they are not backend by the IdP. Disabling this setting might cause security issues" msgstr "" -#: common/models.py:2011 +#: common/models.py:2066 msgid "Email required" msgstr "" -#: common/models.py:2012 +#: common/models.py:2067 msgid "Require user to supply mail on signup" msgstr "" -#: common/models.py:2017 +#: common/models.py:2072 msgid "Auto-fill SSO users" msgstr "" -#: common/models.py:2019 +#: common/models.py:2074 msgid "Automatically fill out user-details from SSO account-data" msgstr "" -#: common/models.py:2025 +#: common/models.py:2080 msgid "Mail twice" msgstr "" -#: common/models.py:2026 +#: common/models.py:2081 msgid "On signup ask users twice for their mail" msgstr "" -#: common/models.py:2031 +#: common/models.py:2086 msgid "Password twice" msgstr "" -#: common/models.py:2032 +#: common/models.py:2087 msgid "On signup ask users twice for their password" msgstr "" -#: common/models.py:2037 +#: common/models.py:2092 msgid "Allowed domains" msgstr "" -#: common/models.py:2039 +#: common/models.py:2094 msgid "Restrict signup to certain domains (comma-separated, starting with @)" msgstr "" -#: common/models.py:2045 +#: common/models.py:2100 msgid "Group on signup" msgstr "" -#: common/models.py:2047 +#: common/models.py:2102 msgid "Group to which new users are assigned on registration. If SSO group sync is enabled, this group is only set if no group can be assigned from the IdP." msgstr "" -#: common/models.py:2053 +#: common/models.py:2108 msgid "Enforce MFA" msgstr "" -#: common/models.py:2054 +#: common/models.py:2109 msgid "Users must use multifactor security." msgstr "" -#: common/models.py:2059 +#: common/models.py:2114 msgid "Check plugins on startup" msgstr "" -#: common/models.py:2061 +#: common/models.py:2116 msgid "Check that all plugins are installed on startup - enable in container environments" msgstr "" -#: common/models.py:2069 +#: common/models.py:2124 msgid "Check for plugin updates" msgstr "" -#: common/models.py:2070 +#: common/models.py:2125 msgid "Enable periodic checks for updates to installed plugins" msgstr "" -#: common/models.py:2076 +#: common/models.py:2131 msgid "Enable URL integration" msgstr "" -#: common/models.py:2077 +#: common/models.py:2132 msgid "Enable plugins to add URL routes" msgstr "" -#: common/models.py:2083 +#: common/models.py:2138 msgid "Enable navigation integration" msgstr "" -#: common/models.py:2084 +#: common/models.py:2139 msgid "Enable plugins to integrate into navigation" msgstr "" -#: common/models.py:2090 +#: common/models.py:2145 msgid "Enable app integration" msgstr "" -#: common/models.py:2091 +#: common/models.py:2146 msgid "Enable plugins to add apps" msgstr "" -#: common/models.py:2097 +#: common/models.py:2152 msgid "Enable schedule integration" msgstr "" -#: common/models.py:2098 +#: common/models.py:2153 msgid "Enable plugins to run scheduled tasks" msgstr "" -#: common/models.py:2104 +#: common/models.py:2159 msgid "Enable event integration" msgstr "" -#: common/models.py:2105 +#: common/models.py:2160 msgid "Enable plugins to respond to internal events" msgstr "" -#: common/models.py:2111 +#: common/models.py:2166 +msgid "Enable interface integration" +msgstr "" + +#: common/models.py:2167 +msgid "Enable plugins to integrate into the user interface" +msgstr "" + +#: common/models.py:2173 msgid "Enable project codes" msgstr "" -#: common/models.py:2112 +#: common/models.py:2174 msgid "Enable project codes for tracking projects" msgstr "" -#: common/models.py:2117 +#: common/models.py:2179 msgid "Stocktake Functionality" msgstr "" -#: common/models.py:2119 +#: common/models.py:2181 msgid "Enable stocktake functionality for recording stock levels and calculating stock value" msgstr "" -#: common/models.py:2125 +#: common/models.py:2187 msgid "Exclude External Locations" msgstr "" -#: common/models.py:2127 +#: common/models.py:2189 msgid "Exclude stock items in external locations from stocktake calculations" msgstr "" -#: common/models.py:2133 +#: common/models.py:2195 msgid "Automatic Stocktake Period" msgstr "" -#: common/models.py:2135 +#: common/models.py:2197 msgid "Number of days between automatic stocktake recording (set to zero to disable)" msgstr "" -#: common/models.py:2141 +#: common/models.py:2203 msgid "Report Deletion Interval" msgstr "" -#: common/models.py:2143 +#: common/models.py:2205 msgid "Stocktake reports will be deleted after specified number of days" msgstr "" -#: common/models.py:2150 +#: common/models.py:2212 msgid "Display Users full names" msgstr "" -#: common/models.py:2151 +#: common/models.py:2213 msgid "Display Users full names instead of usernames" msgstr "" -#: common/models.py:2156 +#: common/models.py:2218 msgid "Enable Test Station Data" msgstr "" -#: common/models.py:2157 +#: common/models.py:2219 msgid "Enable test station data collection for test results" msgstr "" -#: common/models.py:2169 common/models.py:2549 -msgid "Settings key (must be unique - case insensitive" -msgstr "" - -#: common/models.py:2212 -msgid "Hide inactive parts" -msgstr "" - -#: common/models.py:2214 -msgid "Hide inactive parts in results displayed on the homepage" -msgstr "" - -#: common/models.py:2220 -msgid "Show subscribed parts" -msgstr "" - -#: common/models.py:2221 -msgid "Show subscribed parts on the homepage" +#: common/models.py:2224 +msgid "Create Template on Upload" msgstr "" #: common/models.py:2226 -msgid "Show subscribed categories" +msgid "Create a new test template when uploading test data which does not match an existing template" msgstr "" -#: common/models.py:2227 -msgid "Show subscribed part categories on the homepage" -msgstr "" - -#: common/models.py:2232 -msgid "Show latest parts" -msgstr "" - -#: common/models.py:2233 -msgid "Show latest parts on the homepage" -msgstr "" - -#: common/models.py:2238 -msgid "Show invalid BOMs" -msgstr "" - -#: common/models.py:2239 -msgid "Show BOMs that await validation on the homepage" -msgstr "" - -#: common/models.py:2244 -msgid "Show recent stock changes" -msgstr "" - -#: common/models.py:2245 -msgid "Show recently changed stock items on the homepage" -msgstr "" - -#: common/models.py:2250 -msgid "Show low stock" -msgstr "" - -#: common/models.py:2251 -msgid "Show low stock items on the homepage" -msgstr "" - -#: common/models.py:2256 -msgid "Show depleted stock" -msgstr "" - -#: common/models.py:2257 -msgid "Show depleted stock items on the homepage" -msgstr "" - -#: common/models.py:2262 -msgid "Show needed stock" -msgstr "" - -#: common/models.py:2263 -msgid "Show stock items needed for builds on the homepage" -msgstr "" - -#: common/models.py:2268 -msgid "Show expired stock" -msgstr "" - -#: common/models.py:2269 -msgid "Show expired stock items on the homepage" -msgstr "" - -#: common/models.py:2274 -msgid "Show stale stock" -msgstr "" - -#: common/models.py:2275 -msgid "Show stale stock items on the homepage" -msgstr "" - -#: common/models.py:2280 -msgid "Show pending builds" +#: common/models.py:2279 +msgid "Hide inactive parts" msgstr "" #: common/models.py:2281 -msgid "Show pending builds on the homepage" -msgstr "" - -#: common/models.py:2286 -msgid "Show overdue builds" +msgid "Hide inactive parts in results displayed on the homepage" msgstr "" #: common/models.py:2287 -msgid "Show overdue builds on the homepage" +msgid "Show subscribed parts" msgstr "" -#: common/models.py:2292 -msgid "Show outstanding POs" +#: common/models.py:2288 +msgid "Show subscribed parts on the homepage" msgstr "" #: common/models.py:2293 -msgid "Show outstanding POs on the homepage" +msgid "Show subscribed categories" msgstr "" -#: common/models.py:2298 -msgid "Show overdue POs" +#: common/models.py:2294 +msgid "Show subscribed part categories on the homepage" msgstr "" #: common/models.py:2299 -msgid "Show overdue POs on the homepage" +msgid "Show latest parts" msgstr "" -#: common/models.py:2304 -msgid "Show outstanding SOs" +#: common/models.py:2300 +msgid "Show latest parts on the homepage" msgstr "" #: common/models.py:2305 -msgid "Show outstanding SOs on the homepage" +msgid "Show invalid BOMs" msgstr "" -#: common/models.py:2310 -msgid "Show overdue SOs" +#: common/models.py:2306 +msgid "Show BOMs that await validation on the homepage" msgstr "" #: common/models.py:2311 -msgid "Show overdue SOs on the homepage" +msgid "Show recent stock changes" msgstr "" -#: common/models.py:2316 -msgid "Show pending SO shipments" +#: common/models.py:2312 +msgid "Show recently changed stock items on the homepage" msgstr "" #: common/models.py:2317 -msgid "Show pending SO shipments on the homepage" +msgid "Show low stock" msgstr "" -#: common/models.py:2322 -msgid "Show News" +#: common/models.py:2318 +msgid "Show low stock items on the homepage" msgstr "" #: common/models.py:2323 -msgid "Show news on the homepage" +msgid "Show depleted stock" msgstr "" -#: common/models.py:2328 -msgid "Inline label display" +#: common/models.py:2324 +msgid "Show depleted stock items on the homepage" +msgstr "" + +#: common/models.py:2329 +msgid "Show needed stock" msgstr "" #: common/models.py:2330 -msgid "Display PDF labels in the browser, instead of downloading as a file" +msgid "Show stock items needed for builds on the homepage" +msgstr "" + +#: common/models.py:2335 +msgid "Show expired stock" msgstr "" #: common/models.py:2336 -msgid "Default label printer" +msgid "Show expired stock items on the homepage" msgstr "" -#: common/models.py:2338 -msgid "Configure which label printer should be selected by default" +#: common/models.py:2341 +msgid "Show stale stock" msgstr "" -#: common/models.py:2344 -msgid "Inline report display" +#: common/models.py:2342 +msgid "Show stale stock items on the homepage" msgstr "" -#: common/models.py:2346 -msgid "Display PDF reports in the browser, instead of downloading as a file" +#: common/models.py:2347 +msgid "Show pending builds" msgstr "" -#: common/models.py:2352 -msgid "Search Parts" +#: common/models.py:2348 +msgid "Show pending builds on the homepage" msgstr "" #: common/models.py:2353 -msgid "Display parts in search preview window" +msgid "Show overdue builds" msgstr "" -#: common/models.py:2358 -msgid "Search Supplier Parts" +#: common/models.py:2354 +msgid "Show overdue builds on the homepage" msgstr "" #: common/models.py:2359 -msgid "Display supplier parts in search preview window" +msgid "Show outstanding POs" msgstr "" -#: common/models.py:2364 -msgid "Search Manufacturer Parts" +#: common/models.py:2360 +msgid "Show outstanding POs on the homepage" msgstr "" #: common/models.py:2365 -msgid "Display manufacturer parts in search preview window" +msgid "Show overdue POs" msgstr "" -#: common/models.py:2370 -msgid "Hide Inactive Parts" +#: common/models.py:2366 +msgid "Show overdue POs on the homepage" msgstr "" #: common/models.py:2371 -msgid "Excluded inactive parts from search preview window" +msgid "Show outstanding SOs" msgstr "" -#: common/models.py:2376 -msgid "Search Categories" +#: common/models.py:2372 +msgid "Show outstanding SOs on the homepage" msgstr "" #: common/models.py:2377 -msgid "Display part categories in search preview window" +msgid "Show overdue SOs" msgstr "" -#: common/models.py:2382 -msgid "Search Stock" +#: common/models.py:2378 +msgid "Show overdue SOs on the homepage" msgstr "" #: common/models.py:2383 -msgid "Display stock items in search preview window" +msgid "Show pending SO shipments" msgstr "" -#: common/models.py:2388 -msgid "Hide Unavailable Stock Items" +#: common/models.py:2384 +msgid "Show pending SO shipments on the homepage" +msgstr "" + +#: common/models.py:2389 +msgid "Show News" msgstr "" #: common/models.py:2390 -msgid "Exclude stock items which are not available from the search preview window" +msgid "Show news on the homepage" msgstr "" -#: common/models.py:2396 -msgid "Search Locations" +#: common/models.py:2395 +msgid "Inline label display" msgstr "" #: common/models.py:2397 -msgid "Display stock locations in search preview window" -msgstr "" - -#: common/models.py:2402 -msgid "Search Companies" +msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "" #: common/models.py:2403 -msgid "Display companies in search preview window" +msgid "Default label printer" msgstr "" -#: common/models.py:2408 -msgid "Search Build Orders" +#: common/models.py:2405 +msgid "Configure which label printer should be selected by default" msgstr "" -#: common/models.py:2409 -msgid "Display build orders in search preview window" +#: common/models.py:2411 +msgid "Inline report display" msgstr "" -#: common/models.py:2414 -msgid "Search Purchase Orders" +#: common/models.py:2413 +msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:2415 -msgid "Display purchase orders in search preview window" +#: common/models.py:2419 +msgid "Search Parts" msgstr "" #: common/models.py:2420 -msgid "Exclude Inactive Purchase Orders" +msgid "Display parts in search preview window" msgstr "" -#: common/models.py:2422 -msgid "Exclude inactive purchase orders from search preview window" +#: common/models.py:2425 +msgid "Search Supplier Parts" msgstr "" -#: common/models.py:2428 -msgid "Search Sales Orders" +#: common/models.py:2426 +msgid "Display supplier parts in search preview window" msgstr "" -#: common/models.py:2429 -msgid "Display sales orders in search preview window" +#: common/models.py:2431 +msgid "Search Manufacturer Parts" msgstr "" -#: common/models.py:2434 -msgid "Exclude Inactive Sales Orders" +#: common/models.py:2432 +msgid "Display manufacturer parts in search preview window" msgstr "" -#: common/models.py:2436 -msgid "Exclude inactive sales orders from search preview window" +#: common/models.py:2437 +msgid "Hide Inactive Parts" msgstr "" -#: common/models.py:2442 -msgid "Search Return Orders" +#: common/models.py:2438 +msgid "Excluded inactive parts from search preview window" msgstr "" #: common/models.py:2443 -msgid "Display return orders in search preview window" +msgid "Search Categories" msgstr "" -#: common/models.py:2448 -msgid "Exclude Inactive Return Orders" +#: common/models.py:2444 +msgid "Display part categories in search preview window" +msgstr "" + +#: common/models.py:2449 +msgid "Search Stock" msgstr "" #: common/models.py:2450 -msgid "Exclude inactive return orders from search preview window" +msgid "Display stock items in search preview window" msgstr "" -#: common/models.py:2456 -msgid "Search Preview Results" +#: common/models.py:2455 +msgid "Hide Unavailable Stock Items" msgstr "" -#: common/models.py:2458 -msgid "Number of results to show in each section of the search preview window" +#: common/models.py:2457 +msgid "Exclude stock items which are not available from the search preview window" +msgstr "" + +#: common/models.py:2463 +msgid "Search Locations" msgstr "" #: common/models.py:2464 -msgid "Regex Search" +msgid "Display stock locations in search preview window" msgstr "" -#: common/models.py:2465 -msgid "Enable regular expressions in search queries" +#: common/models.py:2469 +msgid "Search Companies" msgstr "" #: common/models.py:2470 -msgid "Whole Word Search" +msgid "Display companies in search preview window" msgstr "" -#: common/models.py:2471 -msgid "Search queries return results for whole word matches" +#: common/models.py:2475 +msgid "Search Build Orders" msgstr "" #: common/models.py:2476 -msgid "Show Quantity in Forms" +msgid "Display build orders in search preview window" msgstr "" -#: common/models.py:2477 -msgid "Display available part quantity in some forms" +#: common/models.py:2481 +msgid "Search Purchase Orders" msgstr "" #: common/models.py:2482 -msgid "Escape Key Closes Forms" +msgid "Display purchase orders in search preview window" msgstr "" -#: common/models.py:2483 -msgid "Use the escape key to close modal forms" -msgstr "" - -#: common/models.py:2488 -msgid "Fixed Navbar" +#: common/models.py:2487 +msgid "Exclude Inactive Purchase Orders" msgstr "" #: common/models.py:2489 -msgid "The navbar position is fixed to the top of the screen" -msgstr "" - -#: common/models.py:2494 -msgid "Date Format" +msgid "Exclude inactive purchase orders from search preview window" msgstr "" #: common/models.py:2495 -msgid "Preferred format for displaying dates" +msgid "Search Sales Orders" msgstr "" -#: common/models.py:2508 part/templates/part/detail.html:41 -msgid "Part Scheduling" +#: common/models.py:2496 +msgid "Display sales orders in search preview window" +msgstr "" + +#: common/models.py:2501 +msgid "Exclude Inactive Sales Orders" +msgstr "" + +#: common/models.py:2503 +msgid "Exclude inactive sales orders from search preview window" msgstr "" #: common/models.py:2509 -msgid "Display part scheduling information" +msgid "Search Return Orders" msgstr "" -#: common/models.py:2514 part/templates/part/detail.html:62 -msgid "Part Stocktake" +#: common/models.py:2510 +msgid "Display return orders in search preview window" msgstr "" -#: common/models.py:2516 -msgid "Display part stocktake information (if stocktake functionality is enabled)" +#: common/models.py:2515 +msgid "Exclude Inactive Return Orders" msgstr "" -#: common/models.py:2522 -msgid "Table String Length" +#: common/models.py:2517 +msgid "Exclude inactive return orders from search preview window" msgstr "" -#: common/models.py:2524 -msgid "Maximum length limit for strings displayed in table views" +#: common/models.py:2523 +msgid "Search Preview Results" msgstr "" -#: common/models.py:2530 -msgid "Receive error reports" +#: common/models.py:2525 +msgid "Number of results to show in each section of the search preview window" msgstr "" #: common/models.py:2531 -msgid "Receive notifications for system errors" +msgid "Regex Search" msgstr "" -#: common/models.py:2536 -msgid "Last used printing machines" +#: common/models.py:2532 +msgid "Enable regular expressions in search queries" msgstr "" #: common/models.py:2537 +msgid "Whole Word Search" +msgstr "" + +#: common/models.py:2538 +msgid "Search queries return results for whole word matches" +msgstr "" + +#: common/models.py:2543 +msgid "Show Quantity in Forms" +msgstr "" + +#: common/models.py:2544 +msgid "Display available part quantity in some forms" +msgstr "" + +#: common/models.py:2549 +msgid "Escape Key Closes Forms" +msgstr "" + +#: common/models.py:2550 +msgid "Use the escape key to close modal forms" +msgstr "" + +#: common/models.py:2555 +msgid "Fixed Navbar" +msgstr "" + +#: common/models.py:2556 +msgid "The navbar position is fixed to the top of the screen" +msgstr "" + +#: common/models.py:2561 +msgid "Date Format" +msgstr "" + +#: common/models.py:2562 +msgid "Preferred format for displaying dates" +msgstr "" + +#: common/models.py:2575 part/templates/part/detail.html:41 +msgid "Part Scheduling" +msgstr "" + +#: common/models.py:2576 +msgid "Display part scheduling information" +msgstr "" + +#: common/models.py:2581 part/templates/part/detail.html:62 +msgid "Part Stocktake" +msgstr "" + +#: common/models.py:2583 +msgid "Display part stocktake information (if stocktake functionality is enabled)" +msgstr "" + +#: common/models.py:2589 +msgid "Table String Length" +msgstr "" + +#: common/models.py:2591 +msgid "Maximum length limit for strings displayed in table views" +msgstr "" + +#: common/models.py:2597 +msgid "Receive error reports" +msgstr "" + +#: common/models.py:2598 +msgid "Receive notifications for system errors" +msgstr "" + +#: common/models.py:2603 +msgid "Last used printing machines" +msgstr "" + +#: common/models.py:2604 msgid "Save the last used printing machines for a user" msgstr "" -#: common/models.py:2557 common/models.py:2558 common/models.py:2715 -#: common/models.py:2716 common/models.py:2961 common/models.py:2962 -#: common/models.py:3288 common/models.py:3289 importer/models.py:88 -#: part/models.py:3307 part/models.py:3394 part/models.py:3468 -#: part/models.py:3496 plugin/models.py:274 plugin/models.py:275 -#: report/templates/report/inventree_test_report.html:105 -#: templates/js/translated/stock.js:3120 users/models.py:111 +#: common/models.py:2621 common/models.py:2622 common/models.py:2779 +#: common/models.py:2780 common/models.py:3025 common/models.py:3026 +#: common/models.py:3349 common/models.py:3350 common/models.py:3534 +#: importer/models.py:89 part/models.py:3358 part/models.py:3445 +#: part/models.py:3519 part/models.py:3547 plugin/models.py:313 +#: plugin/models.py:314 report/templates/report/inventree_test_report.html:105 +#: templates/js/translated/stock.js:3121 users/models.py:111 msgid "User" msgstr "Uporabnik" -#: common/models.py:2580 +#: common/models.py:2644 msgid "Price break quantity" msgstr "" -#: common/models.py:2587 company/serializers.py:513 order/admin.py:42 -#: order/models.py:1430 order/models.py:2417 -#: templates/js/translated/company.js:1823 templates/js/translated/part.js:1892 +#: common/models.py:2651 company/serializers.py:524 order/admin.py:42 +#: order/models.py:1447 order/models.py:2456 +#: templates/js/translated/company.js:1824 templates/js/translated/part.js:1892 #: templates/js/translated/pricing.js:621 #: templates/js/translated/return_order.js:739 msgid "Price" msgstr "" -#: common/models.py:2588 +#: common/models.py:2652 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:2692 common/models.py:2877 +#: common/models.py:2756 common/models.py:2941 msgid "Endpoint" msgstr "" -#: common/models.py:2693 +#: common/models.py:2757 msgid "Endpoint at which this webhook is received" msgstr "" -#: common/models.py:2703 +#: common/models.py:2767 msgid "Name for this webhook" msgstr "" -#: common/models.py:2707 +#: common/models.py:2771 msgid "Is this webhook active" msgstr "" -#: common/models.py:2723 users/models.py:159 +#: common/models.py:2787 users/models.py:159 msgid "Token" msgstr "" -#: common/models.py:2724 +#: common/models.py:2788 msgid "Token for access" msgstr "" -#: common/models.py:2732 +#: common/models.py:2796 msgid "Secret" msgstr "" -#: common/models.py:2733 +#: common/models.py:2797 msgid "Shared secret for HMAC" msgstr "" -#: common/models.py:2841 +#: common/models.py:2905 msgid "Message ID" msgstr "" -#: common/models.py:2842 +#: common/models.py:2906 msgid "Unique identifier for this message" msgstr "" -#: common/models.py:2850 +#: common/models.py:2914 msgid "Host" msgstr "" -#: common/models.py:2851 +#: common/models.py:2915 msgid "Host from which this message was received" msgstr "" -#: common/models.py:2859 +#: common/models.py:2923 msgid "Header" msgstr "" -#: common/models.py:2860 +#: common/models.py:2924 msgid "Header of this message" msgstr "" -#: common/models.py:2867 +#: common/models.py:2931 msgid "Body" msgstr "" -#: common/models.py:2868 +#: common/models.py:2932 msgid "Body of this message" msgstr "" -#: common/models.py:2878 +#: common/models.py:2942 msgid "Endpoint on which this message was received" msgstr "" -#: common/models.py:2883 +#: common/models.py:2947 msgid "Worked on" msgstr "" -#: common/models.py:2884 +#: common/models.py:2948 msgid "Was the work on this message finished?" msgstr "" -#: common/models.py:3010 +#: common/models.py:3074 msgid "Id" msgstr "" -#: common/models.py:3012 templates/js/translated/company.js:965 -#: templates/js/translated/news.js:44 +#: common/models.py:3076 part/serializers.py:271 +#: templates/js/translated/company.js:966 templates/js/translated/news.js:44 msgid "Title" msgstr "" -#: common/models.py:3014 common/models.py:3272 company/models.py:149 -#: company/models.py:446 company/models.py:512 company/models.py:818 -#: order/models.py:302 order/models.py:1385 order/models.py:1817 -#: part/admin.py:55 part/models.py:1057 +#: common/models.py:3078 common/models.py:3333 company/models.py:146 +#: company/models.py:443 company/models.py:509 company/models.py:815 +#: order/models.py:309 order/models.py:1402 order/models.py:1846 +#: part/admin.py:55 part/models.py:1118 #: part/templates/part/part_scheduling.html:11 #: report/templates/report/inventree_build_order_report.html:164 -#: stock/admin.py:229 templates/js/translated/company.js:1319 -#: templates/js/translated/company.js:1673 templates/js/translated/order.js:376 +#: stock/admin.py:230 templates/js/translated/company.js:1320 +#: templates/js/translated/company.js:1674 templates/js/translated/order.js:376 #: templates/js/translated/part.js:2475 -#: templates/js/translated/purchase_order.js:2110 -#: templates/js/translated/purchase_order.js:2274 +#: templates/js/translated/purchase_order.js:2094 +#: templates/js/translated/purchase_order.js:2258 #: templates/js/translated/return_order.js:778 -#: templates/js/translated/sales_order.js:1092 -#: templates/js/translated/sales_order.js:2023 +#: templates/js/translated/sales_order.js:1058 +#: templates/js/translated/sales_order.js:2004 msgid "Link" msgstr "Povezava" -#: common/models.py:3016 templates/js/translated/news.js:60 +#: common/models.py:3080 templates/js/translated/news.js:60 msgid "Published" msgstr "" -#: common/models.py:3018 templates/InvenTree/settings/plugin_settings.html:32 +#: common/models.py:3082 templates/InvenTree/settings/plugin_settings.html:32 #: templates/js/translated/news.js:56 templates/js/translated/plugin.js:103 msgid "Author" msgstr "" -#: common/models.py:3020 templates/js/translated/news.js:52 +#: common/models.py:3084 templates/js/translated/news.js:52 msgid "Summary" msgstr "" -#: common/models.py:3023 +#: common/models.py:3087 msgid "Read" msgstr "" -#: common/models.py:3023 +#: common/models.py:3087 msgid "Was this news item read?" msgstr "" -#: common/models.py:3040 company/models.py:159 part/models.py:1067 +#: common/models.py:3104 company/models.py:156 part/models.py:1128 #: report/templates/report/inventree_bill_of_materials_report.html:126 #: report/templates/report/inventree_bill_of_materials_report.html:148 #: report/templates/report/inventree_return_order_report.html:35 -#: stock/templates/stock/item_base.html:133 templates/503.html:31 +#: stock/templates/stock/item_base.html:130 templates/503.html:31 #: templates/hover_image.html:7 templates/hover_image.html:9 #: templates/modals.html:6 msgid "Image" msgstr "" -#: common/models.py:3040 +#: common/models.py:3104 msgid "Image file" msgstr "" -#: common/models.py:3052 common/models.py:3256 +#: common/models.py:3116 common/models.py:3317 msgid "Target model type for this image" msgstr "" -#: common/models.py:3056 +#: common/models.py:3120 msgid "Target model ID for this image" msgstr "" -#: common/models.py:3078 +#: common/models.py:3142 msgid "Custom Unit" msgstr "" -#: common/models.py:3099 +#: common/models.py:3160 msgid "Unit symbol must be unique" msgstr "" -#: common/models.py:3114 +#: common/models.py:3175 msgid "Unit name must be a valid identifier" msgstr "" -#: common/models.py:3133 +#: common/models.py:3194 msgid "Unit name" msgstr "" -#: common/models.py:3140 templates/InvenTree/settings/settings_staff_js.html:75 +#: common/models.py:3201 templates/InvenTree/settings/settings_staff_js.html:75 msgid "Symbol" msgstr "" -#: common/models.py:3141 +#: common/models.py:3202 msgid "Optional unit symbol" msgstr "" -#: common/models.py:3147 templates/InvenTree/settings/settings_staff_js.html:71 +#: common/models.py:3208 templates/InvenTree/settings/settings_staff_js.html:71 msgid "Definition" msgstr "" -#: common/models.py:3148 +#: common/models.py:3209 msgid "Unit definition" msgstr "" -#: common/models.py:3206 common/models.py:3263 stock/models.py:2558 -#: templates/js/translated/attachment.js:119 +#: common/models.py:3267 common/models.py:3324 stock/models.py:2674 +#: stock/serializers.py:244 templates/js/translated/attachment.js:119 #: templates/js/translated/attachment.js:345 msgid "Attachment" msgstr "Priloga" -#: common/models.py:3218 +#: common/models.py:3279 msgid "Missing file" msgstr "Manjka datoteka" -#: common/models.py:3219 +#: common/models.py:3280 msgid "Missing external link" msgstr "Manjka zunanja povezava" -#: common/models.py:3264 +#: common/models.py:3325 msgid "Select file to attach" msgstr "Izberite prilogo" -#: common/models.py:3279 templates/js/translated/attachment.js:120 +#: common/models.py:3340 templates/js/translated/attachment.js:120 #: templates/js/translated/attachment.js:360 msgid "Comment" msgstr "Komentar" -#: common/models.py:3280 +#: common/models.py:3341 msgid "Attachment comment" msgstr "" -#: common/models.py:3296 +#: common/models.py:3357 msgid "Upload date" msgstr "" -#: common/models.py:3297 +#: common/models.py:3358 msgid "Date the file was uploaded" msgstr "" -#: common/models.py:3301 +#: common/models.py:3362 msgid "File size" msgstr "" -#: common/models.py:3301 +#: common/models.py:3362 msgid "File size in bytes" msgstr "" -#: common/models.py:3339 common/serializers.py:562 +#: common/models.py:3400 common/serializers.py:609 msgid "Invalid model type specified for attachment" msgstr "" -#: common/notifications.py:314 +#: common/models.py:3409 plugin/models.py:43 users/models.py:100 +msgid "Key" +msgstr "" + +#: common/models.py:3410 +msgid "Value that will be saved in the models database" +msgstr "" + +#: common/models.py:3413 +msgid "Name of the state" +msgstr "" + +#: common/models.py:3417 part/serializers.py:273 +msgid "Label" +msgstr "" + +#: common/models.py:3418 +msgid "Label that will be displayed in the frontend" +msgstr "" + +#: common/models.py:3424 +msgid "Color" +msgstr "" + +#: common/models.py:3425 +msgid "Color that will be displayed in the frontend" +msgstr "" + +#: common/models.py:3428 +msgid "Logical Key" +msgstr "" + +#: common/models.py:3430 +msgid "State logical key that is equal to this custom state in business logic" +msgstr "" + +#: common/models.py:3438 part/serializers.py:275 +msgid "Model" +msgstr "" + +#: common/models.py:3439 +msgid "Model this state is associated with" +msgstr "" + +#: common/models.py:3443 +msgid "Reference Status Set" +msgstr "" + +#: common/models.py:3444 +msgid "Status set that is extended with this custom state" +msgstr "" + +#: common/models.py:3450 +msgid "Custom State" +msgstr "" + +#: common/models.py:3451 +msgid "Custom States" +msgstr "" + +#: common/models.py:3466 +msgid "Model must be selected" +msgstr "" + +#: common/models.py:3469 +msgid "Key must be selected" +msgstr "" + +#: common/models.py:3472 +msgid "Logical key must be selected" +msgstr "" + +#: common/models.py:3476 +msgid "Key must be different from logical key" +msgstr "" + +#: common/models.py:3480 +msgid "Reference status must be selected" +msgstr "" + +#: common/models.py:3492 +msgid "Reference status set not found" +msgstr "" + +#: common/models.py:3498 +msgid "Key must be different from the logical keys of the reference status" +msgstr "" + +#: common/models.py:3504 +msgid "Logical key must be in the logical keys of the reference status" +msgstr "" + +#: common/models.py:3519 +msgid "Barcode Scan" +msgstr "" + +#: common/models.py:3523 importer/models.py:512 part/models.py:4009 +msgid "Data" +msgstr "" + +#: common/models.py:3524 +msgid "Barcode data" +msgstr "" + +#: common/models.py:3535 +msgid "User who scanned the barcode" +msgstr "" + +#: common/models.py:3540 importer/models.py:60 +msgid "Timestamp" +msgstr "" + +#: common/models.py:3541 +msgid "Date and time of the barcode scan" +msgstr "" + +#: common/models.py:3547 +msgid "URL endpoint which processed the barcode" +msgstr "" + +#: common/models.py:3554 order/models.py:1437 plugin/serializers.py:89 +msgid "Context" +msgstr "" + +#: common/models.py:3555 +msgid "Context data for the barcode scan" +msgstr "" + +#: common/models.py:3562 +msgid "Response" +msgstr "" + +#: common/models.py:3563 +msgid "Response data from the barcode scan" +msgstr "" + +#: common/models.py:3569 report/templates/report/inventree_test_report.html:103 +#: stock/models.py:2660 +msgid "Result" +msgstr "" + +#: common/models.py:3570 +msgid "Was the barcode scan successful?" +msgstr "" + +#: common/notifications.py:328 #, python-brace-format msgid "New {verbose_name}" msgstr "" -#: common/notifications.py:316 +#: common/notifications.py:330 msgid "A new order has been created and assigned to you" msgstr "" -#: common/notifications.py:322 +#: common/notifications.py:336 #, python-brace-format msgid "{verbose_name} canceled" msgstr "" -#: common/notifications.py:324 +#: common/notifications.py:338 msgid "A order that is assigned to you was canceled" msgstr "" -#: common/notifications.py:330 common/notifications.py:337 order/api.py:462 +#: common/notifications.py:344 common/notifications.py:351 order/api.py:440 msgid "Items Received" msgstr "" -#: common/notifications.py:332 +#: common/notifications.py:346 msgid "Items have been received against a purchase order" msgstr "" -#: common/notifications.py:339 +#: common/notifications.py:353 msgid "Items have been received against a return order" msgstr "" -#: common/notifications.py:457 +#: common/notifications.py:475 msgid "Error raised by plugin" msgstr "" -#: common/serializers.py:375 +#: common/serializers.py:423 msgid "Is Running" msgstr "" -#: common/serializers.py:381 +#: common/serializers.py:429 msgid "Pending Tasks" msgstr "" -#: common/serializers.py:387 +#: common/serializers.py:435 msgid "Scheduled Tasks" msgstr "" -#: common/serializers.py:393 +#: common/serializers.py:441 msgid "Failed Tasks" msgstr "" -#: common/serializers.py:408 +#: common/serializers.py:456 msgid "Task ID" msgstr "" -#: common/serializers.py:408 +#: common/serializers.py:456 msgid "Unique task ID" msgstr "" -#: common/serializers.py:410 +#: common/serializers.py:458 msgid "Lock" msgstr "" -#: common/serializers.py:410 +#: common/serializers.py:458 msgid "Lock time" msgstr "" -#: common/serializers.py:412 +#: common/serializers.py:460 msgid "Task name" msgstr "" -#: common/serializers.py:414 +#: common/serializers.py:462 msgid "Function" msgstr "" -#: common/serializers.py:414 +#: common/serializers.py:462 msgid "Function name" msgstr "" -#: common/serializers.py:416 +#: common/serializers.py:464 msgid "Arguments" msgstr "" -#: common/serializers.py:416 +#: common/serializers.py:464 msgid "Task arguments" msgstr "" -#: common/serializers.py:419 +#: common/serializers.py:467 msgid "Keyword Arguments" msgstr "" -#: common/serializers.py:419 +#: common/serializers.py:467 msgid "Task keyword arguments" msgstr "" -#: common/serializers.py:529 +#: common/serializers.py:577 msgid "Filename" msgstr "Ime datoteke" -#: common/serializers.py:536 report/api.py:100 report/serializers.py:53 +#: common/serializers.py:584 report/api.py:100 report/serializers.py:54 msgid "Model Type" msgstr "" -#: common/serializers.py:565 +#: common/serializers.py:612 msgid "User does not have permission to create or edit attachments for this model" msgstr "" @@ -4116,15 +4295,15 @@ msgstr "" msgid "Match Items" msgstr "" -#: common/views.py:401 +#: common/views.py:397 msgid "Fields matching failed" msgstr "" -#: common/views.py:464 +#: common/views.py:460 msgid "Parts imported" msgstr "" -#: common/views.py:494 order/templates/order/order_wizard/match_fields.html:27 +#: common/views.py:490 order/templates/order/order_wizard/match_fields.html:27 #: order/templates/order/order_wizard/match_parts.html:19 #: order/templates/order/order_wizard/po_upload.html:49 #: part/templates/part/import_wizard/match_fields.html:27 @@ -4155,429 +4334,429 @@ msgstr "" msgid "Supplier is Active" msgstr "" -#: company/models.py:100 company/models.py:371 +#: company/models.py:97 company/models.py:368 #: company/templates/company/company_base.html:8 #: company/templates/company/company_base.html:12 stock/api.py:812 -#: templates/InvenTree/search.html:178 templates/js/translated/company.js:496 +#: templates/InvenTree/search.html:178 templates/js/translated/company.js:497 msgid "Company" msgstr "" -#: company/models.py:101 company/views.py:51 +#: company/models.py:98 company/views.py:51 #: templates/js/translated/search.js:192 msgid "Companies" msgstr "" -#: company/models.py:117 +#: company/models.py:114 msgid "Company description" msgstr "" -#: company/models.py:118 +#: company/models.py:115 msgid "Description of the company" msgstr "" -#: company/models.py:123 company/templates/company/company_base.html:106 +#: company/models.py:120 company/templates/company/company_base.html:106 #: templates/InvenTree/settings/plugin_settings.html:54 -#: templates/js/translated/company.js:532 +#: templates/js/translated/company.js:533 msgid "Website" msgstr "" -#: company/models.py:123 +#: company/models.py:120 msgid "Company website URL" msgstr "" -#: company/models.py:128 +#: company/models.py:125 msgid "Phone number" msgstr "" -#: company/models.py:130 +#: company/models.py:127 msgid "Contact phone number" msgstr "" -#: company/models.py:137 +#: company/models.py:134 msgid "Contact email address" msgstr "" -#: company/models.py:142 company/models.py:275 -#: company/templates/company/company_base.html:145 order/models.py:342 -#: order/templates/order/order_base.html:208 -#: order/templates/order/return_order_base.html:177 -#: order/templates/order/sales_order_base.html:221 +#: company/models.py:139 company/models.py:272 +#: company/templates/company/company_base.html:145 order/models.py:349 +#: order/templates/order/order_base.html:217 +#: order/templates/order/return_order_base.html:178 +#: order/templates/order/sales_order_base.html:222 msgid "Contact" msgstr "" -#: company/models.py:144 +#: company/models.py:141 msgid "Point of contact" msgstr "" -#: company/models.py:150 +#: company/models.py:147 msgid "Link to external company information" msgstr "" -#: company/models.py:163 +#: company/models.py:160 msgid "Is this company active?" msgstr "" -#: company/models.py:168 +#: company/models.py:165 msgid "Is customer" msgstr "" -#: company/models.py:169 +#: company/models.py:166 msgid "Do you sell items to this company?" msgstr "" -#: company/models.py:174 +#: company/models.py:171 msgid "Is supplier" msgstr "" -#: company/models.py:175 +#: company/models.py:172 msgid "Do you purchase items from this company?" msgstr "" -#: company/models.py:180 +#: company/models.py:177 msgid "Is manufacturer" msgstr "" -#: company/models.py:181 +#: company/models.py:178 msgid "Does this company manufacture parts?" msgstr "" -#: company/models.py:189 +#: company/models.py:186 msgid "Default currency used for this company" msgstr "" -#: company/models.py:314 company/templates/company/company_base.html:124 -#: order/models.py:352 order/templates/order/order_base.html:215 -#: order/templates/order/return_order_base.html:184 -#: order/templates/order/sales_order_base.html:228 +#: company/models.py:311 company/templates/company/company_base.html:124 +#: order/models.py:359 order/templates/order/order_base.html:224 +#: order/templates/order/return_order_base.html:185 +#: order/templates/order/sales_order_base.html:229 msgid "Address" msgstr "" -#: company/models.py:315 company/templates/company/sidebar.html:35 +#: company/models.py:312 company/templates/company/sidebar.html:35 msgid "Addresses" msgstr "" -#: company/models.py:372 +#: company/models.py:369 msgid "Select company" msgstr "" -#: company/models.py:377 +#: company/models.py:374 msgid "Address title" msgstr "" -#: company/models.py:378 +#: company/models.py:375 msgid "Title describing the address entry" msgstr "" -#: company/models.py:384 +#: company/models.py:381 msgid "Primary address" msgstr "" -#: company/models.py:385 +#: company/models.py:382 msgid "Set as primary address" msgstr "" -#: company/models.py:390 templates/js/translated/company.js:914 -#: templates/js/translated/company.js:971 +#: company/models.py:387 templates/js/translated/company.js:915 +#: templates/js/translated/company.js:972 msgid "Line 1" msgstr "" -#: company/models.py:391 +#: company/models.py:388 msgid "Address line 1" msgstr "" -#: company/models.py:397 templates/js/translated/company.js:915 -#: templates/js/translated/company.js:977 +#: company/models.py:394 templates/js/translated/company.js:916 +#: templates/js/translated/company.js:978 msgid "Line 2" msgstr "" -#: company/models.py:398 +#: company/models.py:395 msgid "Address line 2" msgstr "" -#: company/models.py:404 company/models.py:405 -#: templates/js/translated/company.js:983 +#: company/models.py:401 company/models.py:402 +#: templates/js/translated/company.js:984 msgid "Postal code" msgstr "" -#: company/models.py:411 +#: company/models.py:408 msgid "City/Region" msgstr "" -#: company/models.py:412 +#: company/models.py:409 msgid "Postal code city/region" msgstr "" -#: company/models.py:418 +#: company/models.py:415 msgid "State/Province" msgstr "" -#: company/models.py:419 +#: company/models.py:416 msgid "State or province" msgstr "" -#: company/models.py:425 templates/js/translated/company.js:1001 +#: company/models.py:422 templates/js/translated/company.js:1002 msgid "Country" msgstr "" -#: company/models.py:426 +#: company/models.py:423 msgid "Address country" msgstr "" -#: company/models.py:432 +#: company/models.py:429 msgid "Courier shipping notes" msgstr "" -#: company/models.py:433 +#: company/models.py:430 msgid "Notes for shipping courier" msgstr "" -#: company/models.py:439 +#: company/models.py:436 msgid "Internal shipping notes" msgstr "" -#: company/models.py:440 +#: company/models.py:437 msgid "Shipping notes for internal use" msgstr "" -#: company/models.py:447 +#: company/models.py:444 msgid "Link to address information (external)" msgstr "" -#: company/models.py:470 company/models.py:587 company/models.py:811 +#: company/models.py:467 company/models.py:584 company/models.py:808 #: company/templates/company/manufacturer_part.html:7 #: company/templates/company/manufacturer_part.html:24 -#: stock/templates/stock/item_base.html:217 +#: stock/templates/stock/item_base.html:214 msgid "Manufacturer Part" msgstr "" -#: company/models.py:487 company/models.py:779 stock/models.py:787 -#: stock/serializers.py:445 stock/templates/stock/item_base.html:142 +#: company/models.py:484 company/models.py:776 stock/models.py:864 +#: stock/serializers.py:455 stock/templates/stock/item_base.html:139 #: templates/js/translated/bom.js:622 msgid "Base Part" msgstr "" -#: company/models.py:489 company/models.py:781 +#: company/models.py:486 company/models.py:778 msgid "Select part" msgstr "" -#: company/models.py:498 company/templates/company/company_base.html:82 +#: company/models.py:495 company/templates/company/company_base.html:82 #: company/templates/company/manufacturer_part.html:90 -#: company/templates/company/supplier_part.html:145 part/serializers.py:554 -#: stock/templates/stock/item_base.html:207 -#: templates/js/translated/company.js:507 -#: templates/js/translated/company.js:1118 -#: templates/js/translated/company.js:1296 -#: templates/js/translated/company.js:1611 +#: company/templates/company/supplier_part.html:146 part/serializers.py:598 +#: stock/templates/stock/item_base.html:204 +#: templates/js/translated/company.js:508 +#: templates/js/translated/company.js:1119 +#: templates/js/translated/company.js:1297 +#: templates/js/translated/company.js:1612 #: templates/js/translated/table_filters.js:812 msgid "Manufacturer" msgstr "" -#: company/models.py:499 +#: company/models.py:496 msgid "Select manufacturer" msgstr "" -#: company/models.py:505 company/templates/company/manufacturer_part.html:101 -#: company/templates/company/supplier_part.html:153 order/serializers.py:556 -#: part/serializers.py:564 templates/js/translated/company.js:351 -#: templates/js/translated/company.js:1117 -#: templates/js/translated/company.js:1312 -#: templates/js/translated/company.js:1630 templates/js/translated/part.js:1807 -#: templates/js/translated/purchase_order.js:1921 -#: templates/js/translated/purchase_order.js:2123 +#: company/models.py:502 company/templates/company/manufacturer_part.html:101 +#: company/templates/company/supplier_part.html:154 order/serializers.py:641 +#: part/serializers.py:608 templates/js/translated/company.js:352 +#: templates/js/translated/company.js:1118 +#: templates/js/translated/company.js:1313 +#: templates/js/translated/company.js:1631 templates/js/translated/part.js:1807 +#: templates/js/translated/purchase_order.js:1905 +#: templates/js/translated/purchase_order.js:2107 msgid "MPN" msgstr "" -#: company/models.py:513 +#: company/models.py:510 msgid "URL for external manufacturer part link" msgstr "" -#: company/models.py:522 +#: company/models.py:519 msgid "Manufacturer part description" msgstr "" -#: company/models.py:575 +#: company/models.py:572 msgid "Manufacturer Part Parameter" msgstr "" -#: company/models.py:594 +#: company/models.py:591 msgid "Parameter name" msgstr "" -#: company/models.py:600 report/templates/report/inventree_test_report.html:104 -#: stock/models.py:2550 templates/js/translated/company.js:1166 -#: templates/js/translated/company.js:1419 templates/js/translated/part.js:1499 +#: company/models.py:597 report/templates/report/inventree_test_report.html:104 +#: stock/models.py:2666 templates/js/translated/company.js:1167 +#: templates/js/translated/company.js:1420 templates/js/translated/part.js:1499 #: templates/js/translated/stock.js:1607 msgid "Value" msgstr "" -#: company/models.py:601 +#: company/models.py:598 msgid "Parameter value" msgstr "" -#: company/models.py:608 company/templates/company/supplier_part.html:168 -#: part/admin.py:57 part/models.py:1147 part/models.py:3771 -#: part/templates/part/part_base.html:293 -#: templates/js/translated/company.js:1425 templates/js/translated/part.js:1518 +#: company/models.py:605 company/templates/company/supplier_part.html:169 +#: part/admin.py:57 part/models.py:1208 part/models.py:3822 +#: part/templates/part/part_base.html:301 +#: templates/js/translated/company.js:1426 templates/js/translated/part.js:1518 #: templates/js/translated/part.js:1622 templates/js/translated/part.js:2376 msgid "Units" msgstr "" -#: company/models.py:609 +#: company/models.py:606 msgid "Parameter units" msgstr "" -#: company/models.py:662 company/templates/company/supplier_part.html:7 -#: company/templates/company/supplier_part.html:24 order/api.py:442 -#: order/serializers.py:491 stock/models.py:798 -#: stock/templates/stock/item_base.html:233 -#: templates/js/translated/build.js:1052 -#: templates/js/translated/company.js:1600 -#: templates/js/translated/purchase_order.js:752 -#: templates/js/translated/stock.js:2365 +#: company/models.py:659 company/templates/company/supplier_part.html:8 +#: company/templates/company/supplier_part.html:25 order/api.py:392 +#: order/serializers.py:576 stock/models.py:875 +#: stock/templates/stock/item_base.html:230 +#: templates/js/translated/build.js:1055 +#: templates/js/translated/company.js:1601 +#: templates/js/translated/purchase_order.js:735 +#: templates/js/translated/stock.js:2366 msgid "Supplier Part" msgstr "" -#: company/models.py:719 +#: company/models.py:716 msgid "Pack units must be compatible with the base part units" msgstr "" -#: company/models.py:726 +#: company/models.py:723 msgid "Pack units must be greater than zero" msgstr "" -#: company/models.py:740 +#: company/models.py:737 msgid "Linked manufacturer part must reference the same base part" msgstr "" -#: company/models.py:789 company/templates/company/company_base.html:87 -#: company/templates/company/supplier_part.html:129 order/models.py:491 -#: order/templates/order/order_base.html:141 part/bom.py:280 part/bom.py:318 -#: part/serializers.py:538 plugin/builtin/suppliers/digikey.py:25 +#: company/models.py:786 company/templates/company/company_base.html:87 +#: company/templates/company/supplier_part.html:130 order/models.py:503 +#: order/templates/order/order_base.html:150 part/bom.py:279 part/bom.py:314 +#: part/serializers.py:582 plugin/builtin/suppliers/digikey.py:25 #: plugin/builtin/suppliers/lcsc.py:26 plugin/builtin/suppliers/mouser.py:24 -#: plugin/builtin/suppliers/tme.py:26 stock/templates/stock/item_base.html:224 +#: plugin/builtin/suppliers/tme.py:26 stock/templates/stock/item_base.html:221 #: templates/email/overdue_purchase_order.html:16 -#: templates/js/translated/company.js:350 -#: templates/js/translated/company.js:511 -#: templates/js/translated/company.js:1584 templates/js/translated/part.js:1775 +#: templates/js/translated/company.js:351 +#: templates/js/translated/company.js:512 +#: templates/js/translated/company.js:1585 templates/js/translated/part.js:1775 #: templates/js/translated/pricing.js:498 -#: templates/js/translated/purchase_order.js:1759 +#: templates/js/translated/purchase_order.js:1743 #: templates/js/translated/table_filters.js:816 msgid "Supplier" msgstr "" -#: company/models.py:790 +#: company/models.py:787 msgid "Select supplier" msgstr "" -#: company/models.py:796 part/serializers.py:549 +#: company/models.py:793 part/serializers.py:593 msgid "Supplier stock keeping unit" msgstr "" -#: company/models.py:802 +#: company/models.py:799 msgid "Is this supplier part active?" msgstr "" -#: company/models.py:812 +#: company/models.py:809 msgid "Select manufacturer part" msgstr "" -#: company/models.py:819 +#: company/models.py:816 msgid "URL for external supplier part link" msgstr "" -#: company/models.py:828 +#: company/models.py:825 msgid "Supplier part description" msgstr "" -#: company/models.py:835 company/templates/company/supplier_part.html:187 -#: order/serializers.py:698 part/admin.py:415 part/models.py:4288 +#: company/models.py:832 company/templates/company/supplier_part.html:188 +#: order/serializers.py:783 part/admin.py:415 part/models.py:4345 #: part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_bill_of_materials_report.html:140 #: report/templates/report/inventree_purchase_order_report.html:32 #: report/templates/report/inventree_return_order_report.html:27 #: report/templates/report/inventree_sales_order_report.html:32 #: report/templates/report/inventree_stock_location_report.html:105 -#: stock/serializers.py:776 templates/js/translated/purchase_order.js:1185 -#: templates/js/translated/purchase_order.js:1344 +#: stock/serializers.py:807 templates/js/translated/purchase_order.js:1168 +#: templates/js/translated/purchase_order.js:1327 msgid "Note" msgstr "" -#: company/models.py:844 part/models.py:2117 +#: company/models.py:841 part/models.py:2177 msgid "base cost" msgstr "" -#: company/models.py:845 part/models.py:2118 +#: company/models.py:842 part/models.py:2178 msgid "Minimum charge (e.g. stocking fee)" msgstr "" -#: company/models.py:853 +#: company/models.py:850 msgid "Part packaging" msgstr "" -#: company/models.py:858 templates/js/translated/company.js:1651 +#: company/models.py:855 templates/js/translated/company.js:1652 #: templates/js/translated/part.js:1828 templates/js/translated/part.js:1884 -#: templates/js/translated/purchase_order.js:311 -#: templates/js/translated/purchase_order.js:841 -#: templates/js/translated/purchase_order.js:1103 -#: templates/js/translated/purchase_order.js:2154 -#: templates/js/translated/purchase_order.js:2171 +#: templates/js/translated/purchase_order.js:294 +#: templates/js/translated/purchase_order.js:824 +#: templates/js/translated/purchase_order.js:1086 +#: templates/js/translated/purchase_order.js:2138 +#: templates/js/translated/purchase_order.js:2155 msgid "Pack Quantity" msgstr "" -#: company/models.py:860 +#: company/models.py:857 msgid "Total quantity supplied in a single pack. Leave empty for single items." msgstr "" -#: company/models.py:879 part/models.py:2124 +#: company/models.py:876 part/models.py:2184 msgid "multiple" msgstr "" -#: company/models.py:880 +#: company/models.py:877 msgid "Order multiple" msgstr "" -#: company/models.py:892 +#: company/models.py:889 msgid "Quantity available from supplier" msgstr "" -#: company/models.py:898 +#: company/models.py:895 msgid "Availability Updated" msgstr "" -#: company/models.py:899 +#: company/models.py:896 msgid "Date of last update of availability data" msgstr "" -#: company/models.py:1027 +#: company/models.py:1024 msgid "Supplier Price Break" msgstr "" -#: company/serializers.py:174 +#: company/serializers.py:178 msgid "Default currency used for this supplier" msgstr "" -#: company/serializers.py:210 +#: company/serializers.py:214 msgid "Company Name" msgstr "" -#: company/serializers.py:393 part/admin.py:126 part/serializers.py:898 -#: part/templates/part/part_base.html:197 -#: templates/js/translated/company.js:1689 +#: company/serializers.py:397 part/admin.py:126 part/serializers.py:950 +#: part/templates/part/part_base.html:198 stock/serializers.py:474 +#: templates/js/translated/company.js:1690 #: templates/js/translated/table_filters.js:362 msgid "In Stock" msgstr "" #: company/templates/company/company_base.html:16 -#: part/templates/part/part_base.html:146 -#: templates/js/translated/company.js:1287 -#: templates/js/translated/company.js:1575 -#: templates/js/translated/model_renderers.js:313 +#: part/templates/part/part_base.html:147 +#: templates/js/translated/company.js:1288 +#: templates/js/translated/company.js:1576 +#: templates/js/translated/model_renderers.js:316 #: templates/js/translated/part.js:817 templates/js/translated/part.js:1225 msgid "Inactive" msgstr "" #: company/templates/company/company_base.html:27 -#: templates/js/translated/purchase_order.js:242 +#: templates/js/translated/purchase_order.js:224 msgid "Create Purchase Order" msgstr "" @@ -4590,7 +4769,7 @@ msgid "Edit company information" msgstr "" #: company/templates/company/company_base.html:39 -#: templates/js/translated/company.js:445 +#: templates/js/translated/company.js:446 msgid "Edit Company" msgstr "" @@ -4605,11 +4784,12 @@ msgstr "" #: company/templates/company/company_base.html:53 #: company/templates/company/manufacturer_part.html:51 -#: company/templates/company/supplier_part.html:83 +#: company/templates/company/supplier_part.html:84 #: part/templates/part/part_thumb.html:20 #: report/templates/report/inventree_build_order_report.html:98 #: report/templates/report/inventree_purchase_order_report.html:40 #: report/templates/report/inventree_sales_order_report.html:40 +#: report/templates/report/inventree_sales_order_shipment_report.html:37 #: report/templates/report/inventree_test_report.html:84 #: report/templates/report/inventree_test_report.html:162 msgid "Part image" @@ -4630,16 +4810,16 @@ msgstr "" msgid "Delete image" msgstr "" -#: company/templates/company/company_base.html:92 order/models.py:990 -#: order/models.py:2147 order/templates/order/return_order_base.html:134 -#: order/templates/order/sales_order_base.html:151 stock/models.py:840 -#: stock/models.py:841 stock/serializers.py:1329 -#: stock/templates/stock/item_base.html:405 +#: company/templates/company/company_base.html:92 order/models.py:1017 +#: order/models.py:2186 order/templates/order/return_order_base.html:135 +#: order/templates/order/sales_order_base.html:152 stock/models.py:917 +#: stock/models.py:918 stock/serializers.py:1360 +#: stock/templates/stock/item_base.html:402 #: templates/email/overdue_sales_order.html:16 -#: templates/js/translated/company.js:503 +#: templates/js/translated/company.js:504 #: templates/js/translated/return_order.js:295 -#: templates/js/translated/sales_order.js:820 -#: templates/js/translated/stock.js:3043 +#: templates/js/translated/sales_order.js:779 +#: templates/js/translated/stock.js:3044 #: templates/js/translated/table_filters.js:820 msgid "Customer" msgstr "" @@ -4653,7 +4833,7 @@ msgid "Phone" msgstr "" #: company/templates/company/company_base.html:211 -#: part/templates/part/part_base.html:536 +#: part/templates/part/part_base.html:544 msgid "Remove Image" msgstr "" @@ -4662,19 +4842,19 @@ msgid "Remove associated image from this company" msgstr "" #: company/templates/company/company_base.html:214 -#: part/templates/part/part_base.html:539 +#: part/templates/part/part_base.html:547 #: templates/InvenTree/settings/user.html:88 #: templates/InvenTree/settings/user_sso.html:43 msgid "Remove" msgstr "" #: company/templates/company/company_base.html:243 -#: part/templates/part/part_base.html:568 +#: part/templates/part/part_base.html:576 msgid "Upload Image" msgstr "" #: company/templates/company/company_base.html:258 -#: part/templates/part/part_base.html:622 +#: part/templates/part/part_base.html:630 msgid "Download Image" msgstr "" @@ -4714,7 +4894,7 @@ msgstr "" #: company/templates/company/detail.html:75 #: company/templates/company/sidebar.html:12 #: company/templates/company/supplier_part_sidebar.html:7 -#: order/templates/order/order_base.html:13 +#: order/templates/order/order_base.html:14 #: order/templates/order/purchase_orders.html:8 #: order/templates/order/purchase_orders.html:12 #: part/templates/part/detail.html:122 part/templates/part/part_sidebar.html:35 @@ -4737,7 +4917,7 @@ msgstr "" #: company/templates/company/detail.html:101 #: company/templates/company/sidebar.html:21 -#: order/templates/order/sales_order_base.html:13 +#: order/templates/order/sales_order_base.html:14 #: order/templates/order/sales_orders.html:8 #: order/templates/order/sales_orders.html:15 #: part/templates/part/detail.html:143 part/templates/part/part_sidebar.html:39 @@ -4764,7 +4944,7 @@ msgstr "" #: company/templates/company/detail.html:142 #: company/templates/company/sidebar.html:29 -#: order/templates/order/return_order_base.html:13 +#: order/templates/order/return_order_base.html:14 #: order/templates/order/return_orders.html:8 #: order/templates/order/return_orders.html:15 #: templates/InvenTree/settings/sidebar.html:61 @@ -4811,24 +4991,24 @@ msgid "Manufacturers" msgstr "" #: company/templates/company/manufacturer_part.html:35 -#: company/templates/company/supplier_part.html:227 -#: part/templates/part/detail.html:125 part/templates/part/part_base.html:83 +#: company/templates/company/supplier_part.html:228 +#: part/templates/part/detail.html:125 part/templates/part/part_base.html:84 msgid "Order part" msgstr "" #: company/templates/company/manufacturer_part.html:39 -#: templates/js/translated/company.js:1343 +#: templates/js/translated/company.js:1344 msgid "Edit manufacturer part" msgstr "" #: company/templates/company/manufacturer_part.html:43 -#: templates/js/translated/company.js:1344 +#: templates/js/translated/company.js:1345 msgid "Delete manufacturer part" msgstr "" #: company/templates/company/manufacturer_part.html:65 -#: company/templates/company/supplier_part.html:97 order/api.py:448 -#: order/serializers.py:564 +#: company/templates/company/supplier_part.html:98 order/api.py:411 +#: order/serializers.py:649 msgid "Internal Part" msgstr "" @@ -4837,8 +5017,8 @@ msgid "No manufacturer information available" msgstr "" #: company/templates/company/manufacturer_part.html:119 -#: company/templates/company/supplier_part.html:15 company/views.py:31 -#: part/admin.py:122 part/serializers.py:904 +#: company/templates/company/supplier_part.html:16 company/views.py:31 +#: part/admin.py:122 part/serializers.py:956 #: part/templates/part/part_sidebar.html:33 templates/InvenTree/search.html:190 #: templates/navbar.html:48 msgid "Suppliers" @@ -4887,112 +5067,113 @@ msgstr "" msgid "Contacts" msgstr "" -#: company/templates/company/supplier_part.html:50 -#: templates/js/translated/company.js:1526 +#: company/templates/company/supplier_part.html:51 +#: templates/js/translated/company.js:1527 msgid "Supplier part actions" msgstr "" -#: company/templates/company/supplier_part.html:55 #: company/templates/company/supplier_part.html:56 -#: company/templates/company/supplier_part.html:228 +#: company/templates/company/supplier_part.html:57 +#: company/templates/company/supplier_part.html:229 #: part/templates/part/detail.html:126 msgid "Order Part" msgstr "" -#: company/templates/company/supplier_part.html:60 #: company/templates/company/supplier_part.html:61 +#: company/templates/company/supplier_part.html:62 msgid "Update Availability" msgstr "" -#: company/templates/company/supplier_part.html:63 #: company/templates/company/supplier_part.html:64 -#: templates/js/translated/company.js:294 +#: company/templates/company/supplier_part.html:65 +#: templates/js/translated/company.js:295 msgid "Edit Supplier Part" msgstr "" -#: company/templates/company/supplier_part.html:68 #: company/templates/company/supplier_part.html:69 -#: templates/js/translated/company.js:269 +#: company/templates/company/supplier_part.html:70 +#: templates/js/translated/company.js:270 msgid "Duplicate Supplier Part" msgstr "" -#: company/templates/company/supplier_part.html:73 +#: company/templates/company/supplier_part.html:74 msgid "Delete Supplier Part" msgstr "" -#: company/templates/company/supplier_part.html:74 +#: company/templates/company/supplier_part.html:75 msgid "Delete Supplier Part" msgstr "" -#: company/templates/company/supplier_part.html:133 +#: company/templates/company/supplier_part.html:134 +#: order/templates/order/order_base.html:155 msgid "No supplier information available" msgstr "" -#: company/templates/company/supplier_part.html:139 order/serializers.py:553 -#: part/bom.py:287 part/bom.py:319 part/serializers.py:548 -#: templates/js/translated/company.js:349 templates/js/translated/part.js:1793 +#: company/templates/company/supplier_part.html:140 order/serializers.py:638 +#: part/bom.py:286 part/bom.py:315 part/serializers.py:592 +#: templates/js/translated/company.js:350 templates/js/translated/part.js:1793 #: templates/js/translated/pricing.js:510 -#: templates/js/translated/purchase_order.js:1920 -#: templates/js/translated/purchase_order.js:2098 +#: templates/js/translated/purchase_order.js:1904 +#: templates/js/translated/purchase_order.js:2082 msgid "SKU" msgstr "" -#: company/templates/company/supplier_part.html:206 +#: company/templates/company/supplier_part.html:207 msgid "Supplier Part Stock" msgstr "" -#: company/templates/company/supplier_part.html:209 -#: part/templates/part/detail.html:24 stock/templates/stock/location.html:204 +#: company/templates/company/supplier_part.html:210 +#: part/templates/part/detail.html:24 stock/templates/stock/location.html:205 msgid "Create new stock item" msgstr "" -#: company/templates/company/supplier_part.html:210 -#: part/templates/part/detail.html:25 stock/templates/stock/location.html:205 +#: company/templates/company/supplier_part.html:211 +#: part/templates/part/detail.html:25 stock/templates/stock/location.html:206 #: templates/js/translated/stock.js:543 msgid "New Stock Item" msgstr "" -#: company/templates/company/supplier_part.html:223 +#: company/templates/company/supplier_part.html:224 msgid "Supplier Part Orders" msgstr "" -#: company/templates/company/supplier_part.html:246 +#: company/templates/company/supplier_part.html:247 msgid "Pricing Information" msgstr "" -#: company/templates/company/supplier_part.html:251 -#: templates/js/translated/company.js:398 +#: company/templates/company/supplier_part.html:252 +#: templates/js/translated/company.js:399 #: templates/js/translated/pricing.js:684 msgid "Add Price Break" msgstr "" -#: company/templates/company/supplier_part.html:270 +#: company/templates/company/supplier_part.html:271 msgid "Supplier Part Notes" msgstr "" -#: company/templates/company/supplier_part.html:305 +#: company/templates/company/supplier_part.html:306 msgid "Supplier Part QR Code" msgstr "" -#: company/templates/company/supplier_part.html:316 +#: company/templates/company/supplier_part.html:317 msgid "Link Barcode to Supplier Part" msgstr "" -#: company/templates/company/supplier_part.html:388 +#: company/templates/company/supplier_part.html:389 msgid "Update Part Availability" msgstr "" #: company/templates/company/supplier_part_sidebar.html:5 -#: part/serializers.py:902 part/stocktake.py:223 +#: part/serializers.py:954 part/stocktake.py:223 #: part/templates/part/category.html:180 #: part/templates/part/category_sidebar.html:17 stock/admin.py:68 -#: stock/serializers.py:1014 stock/serializers.py:1192 -#: stock/templates/stock/location.html:167 -#: stock/templates/stock/location.html:188 -#: stock/templates/stock/location.html:200 +#: stock/serializers.py:1045 stock/serializers.py:1223 +#: stock/templates/stock/location.html:168 +#: stock/templates/stock/location.html:189 +#: stock/templates/stock/location.html:201 #: stock/templates/stock/location_sidebar.html:7 #: templates/InvenTree/search.html:155 templates/js/translated/part.js:1067 -#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2850 +#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2851 #: users/models.py:206 msgid "Stock Items" msgstr "" @@ -5022,99 +5203,99 @@ msgstr "" msgid "New Company" msgstr "" -#: generic/states/tests.py:18 order/status_codes.py:13 +#: generic/states/fields.py:118 +msgid "Custom status key" +msgstr "" + +#: generic/states/fields.py:119 +msgid "Additional status information for this item" +msgstr "" + +#: generic/states/tests.py:22 order/status_codes.py:13 msgid "Placed" msgstr "Postavljeno" -#: importer/mixins.py:263 +#: importer/mixins.py:261 msgid "Invalid export format" msgstr "" -#: importer/models.py:59 -msgid "Timestamp" -msgstr "" - -#: importer/models.py:64 +#: importer/models.py:65 msgid "Data file to import" msgstr "" -#: importer/models.py:73 templates/js/translated/tables.js:558 +#: importer/models.py:74 templates/js/translated/tables.js:558 msgid "Columns" msgstr "" -#: importer/models.py:84 +#: importer/models.py:85 msgid "Import status" msgstr "" -#: importer/models.py:94 +#: importer/models.py:95 msgid "Field Defaults" msgstr "" -#: importer/models.py:101 +#: importer/models.py:102 msgid "Field Overrides" msgstr "" -#: importer/models.py:108 +#: importer/models.py:109 msgid "Field Filters" msgstr "" -#: importer/models.py:230 +#: importer/models.py:239 msgid "Some required fields have not been mapped" msgstr "" -#: importer/models.py:387 +#: importer/models.py:396 msgid "Column is already mapped to a database field" msgstr "" -#: importer/models.py:392 +#: importer/models.py:401 msgid "Field is already mapped to a data column" msgstr "" -#: importer/models.py:401 +#: importer/models.py:410 msgid "Column mapping must be linked to a valid import session" msgstr "" -#: importer/models.py:406 +#: importer/models.py:415 msgid "Column does not exist in the data file" msgstr "" -#: importer/models.py:413 +#: importer/models.py:422 msgid "Field does not exist in the target model" msgstr "" -#: importer/models.py:417 +#: importer/models.py:426 msgid "Selected field is read-only" msgstr "" -#: importer/models.py:422 importer/models.py:493 +#: importer/models.py:431 importer/models.py:502 msgid "Import Session" msgstr "" -#: importer/models.py:426 +#: importer/models.py:435 msgid "Field" msgstr "" -#: importer/models.py:428 +#: importer/models.py:437 msgid "Column" msgstr "" -#: importer/models.py:497 +#: importer/models.py:506 msgid "Row Index" msgstr "" -#: importer/models.py:500 +#: importer/models.py:509 msgid "Original row data" msgstr "" -#: importer/models.py:503 part/models.py:3951 -msgid "Data" -msgstr "" - -#: importer/models.py:505 machine/models.py:110 +#: importer/models.py:514 machine/models.py:110 msgid "Errors" msgstr "" -#: importer/models.py:507 part/api.py:873 +#: importer/models.py:516 part/api.py:857 msgid "Valid" msgstr "" @@ -5166,19 +5347,19 @@ msgstr "" msgid "Row has already been completed" msgstr "" -#: importer/status_codes.py:11 +#: importer/status_codes.py:13 msgid "Initializing" msgstr "" -#: importer/status_codes.py:12 +#: importer/status_codes.py:18 msgid "Mapping Columns" msgstr "" -#: importer/status_codes.py:13 +#: importer/status_codes.py:21 msgid "Importing Data" msgstr "" -#: importer/status_codes.py:16 +#: importer/status_codes.py:24 msgid "Processing Data" msgstr "" @@ -5202,52 +5383,52 @@ msgstr "" msgid "Value must be a valid dictionary object" msgstr "" -#: machine/machine_types/label_printer.py:215 +#: machine/machine_types/label_printer.py:216 msgid "Copies" msgstr "" -#: machine/machine_types/label_printer.py:216 +#: machine/machine_types/label_printer.py:217 msgid "Number of copies to print for each label" msgstr "" -#: machine/machine_types/label_printer.py:231 +#: machine/machine_types/label_printer.py:232 msgid "Connected" msgstr "" -#: machine/machine_types/label_printer.py:232 order/api.py:1410 -#: templates/js/translated/sales_order.js:1078 +#: machine/machine_types/label_printer.py:233 order/api.py:1532 +#: templates/js/translated/sales_order.js:1044 msgid "Unknown" msgstr "" -#: machine/machine_types/label_printer.py:233 +#: machine/machine_types/label_printer.py:234 msgid "Printing" msgstr "" -#: machine/machine_types/label_printer.py:234 +#: machine/machine_types/label_printer.py:235 msgid "No media" msgstr "" -#: machine/machine_types/label_printer.py:235 +#: machine/machine_types/label_printer.py:236 msgid "Paper jam" msgstr "" -#: machine/machine_types/label_printer.py:236 +#: machine/machine_types/label_printer.py:237 msgid "Disconnected" msgstr "" -#: machine/machine_types/label_printer.py:243 +#: machine/machine_types/label_printer.py:244 msgid "Label Printer" msgstr "" -#: machine/machine_types/label_printer.py:244 +#: machine/machine_types/label_printer.py:245 msgid "Directly print labels for various items." msgstr "" -#: machine/machine_types/label_printer.py:250 +#: machine/machine_types/label_printer.py:251 msgid "Printer Location" msgstr "" -#: machine/machine_types/label_printer.py:251 +#: machine/machine_types/label_printer.py:252 msgid "Scope the printer to a specific location" msgstr "" @@ -5307,79 +5488,75 @@ msgstr "" #: report/templates/report/inventree_purchase_order_report.html:31 #: report/templates/report/inventree_sales_order_report.html:31 #: templates/js/translated/order.js:352 -#: templates/js/translated/purchase_order.js:2195 -#: templates/js/translated/sales_order.js:1883 +#: templates/js/translated/purchase_order.js:2179 +#: templates/js/translated/sales_order.js:1864 msgid "Total Price" msgstr "" -#: order/api.py:80 order/api.py:151 order/serializers.py:93 -#: order/templates/order/order_base.html:123 -#: order/templates/order/return_order_base.html:116 -#: order/templates/order/sales_order_base.html:125 +#: order/api.py:78 order/api.py:149 order/serializers.py:124 +#: order/templates/order/order_base.html:124 +#: order/templates/order/return_order_base.html:117 +#: order/templates/order/sales_order_base.html:126 msgid "Order Status" msgstr "" -#: order/api.py:88 order/templates/order/order_base.html:111 -#: order/templates/order/return_order_base.html:104 -#: order/templates/order/sales_order_base.html:113 +#: order/api.py:86 order/templates/order/order_base.html:112 +#: order/templates/order/return_order_base.html:105 +#: order/templates/order/sales_order_base.html:114 msgid "Order Reference" msgstr "" -#: order/api.py:116 templates/js/translated/table_filters.js:93 +#: order/api.py:114 order/api.py:1022 +#: templates/js/translated/table_filters.js:93 #: templates/js/translated/table_filters.js:625 #: templates/js/translated/table_filters.js:651 #: templates/js/translated/table_filters.js:666 msgid "Outstanding" msgstr "" -#: order/api.py:132 +#: order/api.py:130 msgid "Has Project Code" msgstr "" -#: order/api.py:155 templates/js/translated/table_filters.js:201 +#: order/api.py:153 templates/js/translated/table_filters.js:201 #: templates/js/translated/table_filters.js:791 msgid "Has Pricing" msgstr "" -#: order/api.py:230 -msgid "No matching purchase order found" -msgstr "" - -#: order/api.py:425 order/api.py:763 order/models.py:1484 order/models.py:1598 -#: order/models.py:1649 order/models.py:1764 order/models.py:1923 -#: order/models.py:2383 order/models.py:2439 -#: templates/js/translated/sales_order.js:1524 +#: order/api.py:375 order/api.py:771 order/api.py:986 order/models.py:1500 +#: order/models.py:1614 order/models.py:1665 order/models.py:1793 +#: order/models.py:1956 order/models.py:2422 order/models.py:2478 +#: templates/js/translated/sales_order.js:1490 msgid "Order" msgstr "" -#: order/api.py:429 order/api.py:784 +#: order/api.py:379 order/api.py:809 msgid "Order Complete" msgstr "" -#: order/api.py:452 +#: order/api.py:430 msgid "Order Pending" msgstr "" -#: order/api.py:1404 order/models.py:379 order/models.py:1485 -#: order/models.py:1599 order/templates/order/order_base.html:9 -#: order/templates/order/order_base.html:18 +#: order/api.py:1526 order/models.py:386 order/models.py:1501 +#: order/models.py:1615 order/templates/order/order_base.html:10 +#: order/templates/order/order_base.html:19 #: report/templates/report/inventree_purchase_order_report.html:14 -#: stock/serializers.py:120 stock/templates/stock/item_base.html:176 +#: stock/serializers.py:121 stock/templates/stock/item_base.html:173 #: templates/email/overdue_purchase_order.html:15 #: templates/js/translated/part.js:1752 templates/js/translated/pricing.js:804 -#: templates/js/translated/purchase_order.js:168 -#: templates/js/translated/purchase_order.js:753 -#: templates/js/translated/purchase_order.js:1743 -#: templates/js/translated/stock.js:2345 templates/js/translated/stock.js:2991 +#: templates/js/translated/purchase_order.js:736 +#: templates/js/translated/purchase_order.js:1727 +#: templates/js/translated/stock.js:2346 templates/js/translated/stock.js:2992 msgid "Purchase Order" msgstr "" -#: order/api.py:1408 order/models.py:2091 order/models.py:2384 -#: order/models.py:2440 order/templates/order/return_order_base.html:9 -#: order/templates/order/return_order_base.html:28 +#: order/api.py:1530 order/models.py:2124 order/models.py:2423 +#: order/models.py:2479 order/templates/order/return_order_base.html:10 +#: order/templates/order/return_order_base.html:29 #: report/templates/report/inventree_return_order_report.html:13 #: templates/js/translated/return_order.js:280 -#: templates/js/translated/stock.js:3025 +#: templates/js/translated/stock.js:3026 msgid "Return Order" msgstr "" @@ -5387,751 +5564,782 @@ msgstr "" msgid "Total price for this order" msgstr "" -#: order/models.py:95 order/serializers.py:71 +#: order/models.py:95 order/serializers.py:73 msgid "Order Currency" msgstr "" -#: order/models.py:98 order/serializers.py:72 +#: order/models.py:98 order/serializers.py:74 msgid "Currency for this order (leave blank to use company default)" msgstr "" -#: order/models.py:246 +#: order/models.py:243 msgid "Contact does not match selected company" msgstr "" -#: order/models.py:289 +#: order/models.py:296 msgid "Order description (optional)" msgstr "" -#: order/models.py:298 +#: order/models.py:305 msgid "Select project code for this order" msgstr "" -#: order/models.py:302 order/models.py:1385 order/models.py:1817 +#: order/models.py:309 order/models.py:1402 order/models.py:1846 msgid "Link to external page" msgstr "" -#: order/models.py:310 +#: order/models.py:317 msgid "Expected date for order delivery. Order will be overdue after this date." msgstr "" -#: order/models.py:324 +#: order/models.py:331 msgid "Created By" msgstr "" -#: order/models.py:332 +#: order/models.py:339 msgid "User or group responsible for this order" msgstr "" -#: order/models.py:343 +#: order/models.py:350 msgid "Point of contact for this order" msgstr "" -#: order/models.py:353 +#: order/models.py:360 msgid "Company address for this order" msgstr "" -#: order/models.py:468 order/models.py:979 +#: order/models.py:480 order/models.py:1006 msgid "Order reference" msgstr "" -#: order/models.py:477 +#: order/models.py:489 msgid "Purchase order status" msgstr "" -#: order/models.py:492 +#: order/models.py:504 msgid "Company from which the items are being ordered" msgstr "" -#: order/models.py:503 order/templates/order/order_base.html:153 -#: templates/js/translated/purchase_order.js:1772 +#: order/models.py:515 order/templates/order/order_base.html:162 +#: templates/js/translated/purchase_order.js:1756 msgid "Supplier Reference" msgstr "" -#: order/models.py:504 +#: order/models.py:516 msgid "Supplier order reference code" msgstr "" -#: order/models.py:513 +#: order/models.py:525 msgid "received by" msgstr "" -#: order/models.py:519 order/models.py:2173 +#: order/models.py:531 order/models.py:2212 msgid "Issue Date" msgstr "" -#: order/models.py:520 order/models.py:2174 +#: order/models.py:532 order/models.py:2213 msgid "Date order was issued" msgstr "" -#: order/models.py:527 order/models.py:2181 +#: order/models.py:539 order/models.py:2220 msgid "Date order was completed" msgstr "" -#: order/models.py:571 +#: order/models.py:549 order/models.py:1552 +msgid "Destination for received items" +msgstr "" + +#: order/models.py:593 msgid "Part supplier must match PO supplier" msgstr "" -#: order/models.py:806 +#: order/models.py:828 msgid "Quantity must be a positive number" msgstr "" -#: order/models.py:991 +#: order/models.py:1018 msgid "Company to which the items are being sold" msgstr "" -#: order/models.py:1003 +#: order/models.py:1030 msgid "Sales order status" msgstr "" -#: order/models.py:1014 order/models.py:2166 +#: order/models.py:1041 order/models.py:2205 msgid "Customer Reference " msgstr "" -#: order/models.py:1015 order/models.py:2167 +#: order/models.py:1042 order/models.py:2206 msgid "Customer order reference code" msgstr "" -#: order/models.py:1019 order/models.py:1771 -#: templates/js/translated/sales_order.js:879 -#: templates/js/translated/sales_order.js:1060 +#: order/models.py:1046 order/models.py:1800 +#: templates/js/translated/sales_order.js:838 +#: templates/js/translated/sales_order.js:1026 msgid "Shipment Date" msgstr "" -#: order/models.py:1028 +#: order/models.py:1055 msgid "shipped by" msgstr "" -#: order/models.py:1077 +#: order/models.py:1094 msgid "Order is already complete" msgstr "" -#: order/models.py:1080 +#: order/models.py:1097 msgid "Order is already cancelled" msgstr "" -#: order/models.py:1084 +#: order/models.py:1101 msgid "Only an open order can be marked as complete" msgstr "" -#: order/models.py:1088 +#: order/models.py:1105 msgid "Order cannot be completed as there are incomplete shipments" msgstr "" -#: order/models.py:1093 +#: order/models.py:1110 msgid "Order cannot be completed as there are incomplete line items" msgstr "" -#: order/models.py:1357 +#: order/models.py:1374 msgid "Item quantity" msgstr "" -#: order/models.py:1374 +#: order/models.py:1391 msgid "Line item reference" msgstr "" -#: order/models.py:1381 +#: order/models.py:1398 msgid "Line item notes" msgstr "" -#: order/models.py:1393 +#: order/models.py:1410 msgid "Target date for this line item (leave blank to use the target date from the order)" msgstr "" -#: order/models.py:1414 +#: order/models.py:1431 msgid "Line item description (optional)" msgstr "" -#: order/models.py:1420 -msgid "Context" -msgstr "" - -#: order/models.py:1421 +#: order/models.py:1438 msgid "Additional context for this line" msgstr "" -#: order/models.py:1431 +#: order/models.py:1448 msgid "Unit price" msgstr "" -#: order/models.py:1445 +#: order/models.py:1462 msgid "Purchase Order Line Item" msgstr "" -#: order/models.py:1469 +#: order/models.py:1486 msgid "Supplier part must match supplier" msgstr "" -#: order/models.py:1476 -msgid "deleted" -msgstr "" - -#: order/models.py:1504 +#: order/models.py:1520 msgid "Supplier part" msgstr "" -#: order/models.py:1511 order/templates/order/order_base.html:201 +#: order/models.py:1527 order/templates/order/order_base.html:210 #: templates/js/translated/part.js:1876 templates/js/translated/part.js:1908 -#: templates/js/translated/purchase_order.js:1369 -#: templates/js/translated/purchase_order.js:2239 +#: templates/js/translated/purchase_order.js:1352 +#: templates/js/translated/purchase_order.js:2223 #: templates/js/translated/return_order.js:762 #: templates/js/translated/table_filters.js:119 #: templates/js/translated/table_filters.js:605 msgid "Received" msgstr "" -#: order/models.py:1512 +#: order/models.py:1528 msgid "Number of items received" msgstr "" -#: order/models.py:1520 stock/models.py:959 stock/serializers.py:610 -#: stock/templates/stock/item_base.html:183 -#: templates/js/translated/stock.js:2396 +#: order/models.py:1536 stock/models.py:1036 stock/serializers.py:637 +#: stock/templates/stock/item_base.html:180 +#: templates/js/translated/stock.js:2397 msgid "Purchase Price" msgstr "" -#: order/models.py:1521 +#: order/models.py:1537 msgid "Unit purchase price" msgstr "" -#: order/models.py:1536 -msgid "Where does the Purchaser want this item to be stored?" -msgstr "" - -#: order/models.py:1587 +#: order/models.py:1603 msgid "Purchase Order Extra Line" msgstr "" -#: order/models.py:1616 +#: order/models.py:1632 msgid "Sales Order Line Item" msgstr "" -#: order/models.py:1637 +#: order/models.py:1653 msgid "Virtual part cannot be assigned to a sales order" msgstr "" -#: order/models.py:1642 +#: order/models.py:1658 msgid "Only salable parts can be assigned to a sales order" msgstr "" -#: order/models.py:1668 part/templates/part/part_pricing.html:107 -#: part/templates/part/prices.html:139 templates/js/translated/pricing.js:957 +#: order/models.py:1684 part/templates/part/part_pricing.html:107 +#: part/templates/part/prices.html:139 templates/js/translated/pricing.js:955 msgid "Sale Price" msgstr "" -#: order/models.py:1669 +#: order/models.py:1685 msgid "Unit sale price" msgstr "" -#: order/models.py:1678 order/status_codes.py:48 -#: templates/js/translated/sales_order.js:1559 -#: templates/js/translated/sales_order.js:1680 -#: templates/js/translated/sales_order.js:1993 +#: order/models.py:1694 order/status_codes.py:50 +#: templates/js/translated/sales_order.js:1525 +#: templates/js/translated/sales_order.js:1661 +#: templates/js/translated/sales_order.js:1974 msgid "Shipped" msgstr "Poslano" -#: order/models.py:1679 +#: order/models.py:1695 msgid "Shipped quantity" msgstr "" -#: order/models.py:1751 +#: order/models.py:1769 msgid "Sales Order Shipment" msgstr "" -#: order/models.py:1772 +#: order/models.py:1801 msgid "Date of shipment" msgstr "" -#: order/models.py:1778 templates/js/translated/sales_order.js:1072 +#: order/models.py:1807 templates/js/translated/sales_order.js:1038 msgid "Delivery Date" msgstr "" -#: order/models.py:1779 +#: order/models.py:1808 msgid "Date of delivery of shipment" msgstr "" -#: order/models.py:1787 +#: order/models.py:1816 msgid "Checked By" msgstr "" -#: order/models.py:1788 +#: order/models.py:1817 msgid "User who checked this shipment" msgstr "" -#: order/models.py:1795 order/models.py:2018 order/serializers.py:1475 -#: order/serializers.py:1585 templates/js/translated/model_renderers.js:455 +#: order/models.py:1824 order/models.py:2051 order/serializers.py:1601 +#: order/serializers.py:1725 +#: report/templates/report/inventree_sales_order_shipment_report.html:14 +#: templates/js/translated/model_renderers.js:458 +#: templates/js/translated/sales_order.js:1615 msgid "Shipment" msgstr "" -#: order/models.py:1796 +#: order/models.py:1825 msgid "Shipment number" msgstr "" -#: order/models.py:1804 +#: order/models.py:1833 msgid "Tracking Number" msgstr "" -#: order/models.py:1805 +#: order/models.py:1834 msgid "Shipment tracking information" msgstr "" -#: order/models.py:1812 +#: order/models.py:1841 msgid "Invoice Number" msgstr "" -#: order/models.py:1813 +#: order/models.py:1842 msgid "Reference number for associated invoice" msgstr "" -#: order/models.py:1833 +#: order/models.py:1862 msgid "Shipment has already been sent" msgstr "" -#: order/models.py:1836 +#: order/models.py:1865 msgid "Shipment has no allocated stock items" msgstr "" -#: order/models.py:1912 +#: order/models.py:1945 msgid "Sales Order Extra Line" msgstr "" -#: order/models.py:1941 +#: order/models.py:1974 msgid "Sales Order Allocation" msgstr "" -#: order/models.py:1964 order/models.py:1966 +#: order/models.py:1997 order/models.py:1999 msgid "Stock item has not been assigned" msgstr "" -#: order/models.py:1973 +#: order/models.py:2006 msgid "Cannot allocate stock item to a line with a different part" msgstr "" -#: order/models.py:1976 +#: order/models.py:2009 msgid "Cannot allocate stock to a line without a part" msgstr "" -#: order/models.py:1979 +#: order/models.py:2012 msgid "Allocation quantity cannot exceed stock quantity" msgstr "" -#: order/models.py:1998 order/serializers.py:1345 +#: order/models.py:2031 order/serializers.py:1471 msgid "Quantity must be 1 for serialized stock item" msgstr "" -#: order/models.py:2001 +#: order/models.py:2034 msgid "Sales order does not match shipment" msgstr "" -#: order/models.py:2002 plugin/base/barcodes/api.py:524 +#: order/models.py:2035 plugin/base/barcodes/api.py:629 msgid "Shipment does not match sales order" msgstr "" -#: order/models.py:2010 +#: order/models.py:2043 msgid "Line" msgstr "" -#: order/models.py:2019 +#: order/models.py:2052 msgid "Sales order shipment reference" msgstr "" -#: order/models.py:2032 order/models.py:2391 +#: order/models.py:2065 order/models.py:2430 #: templates/js/translated/return_order.js:720 msgid "Item" msgstr "" -#: order/models.py:2033 +#: order/models.py:2066 msgid "Select stock item to allocate" msgstr "" -#: order/models.py:2042 +#: order/models.py:2075 msgid "Enter stock allocation quantity" msgstr "" -#: order/models.py:2136 +#: order/models.py:2175 msgid "Return Order reference" msgstr "" -#: order/models.py:2148 +#: order/models.py:2187 msgid "Company from which items are being returned" msgstr "" -#: order/models.py:2160 +#: order/models.py:2199 msgid "Return order status" msgstr "" -#: order/models.py:2362 +#: order/models.py:2401 msgid "Return Order Line Item" msgstr "" -#: order/models.py:2376 +#: order/models.py:2415 msgid "Only serialized items can be assigned to a Return Order" msgstr "" -#: order/models.py:2392 +#: order/models.py:2431 msgid "Select item to return from customer" msgstr "" -#: order/models.py:2398 +#: order/models.py:2437 msgid "Received Date" msgstr "" -#: order/models.py:2399 +#: order/models.py:2438 msgid "The date this this return item was received" msgstr "" -#: order/models.py:2410 templates/js/translated/return_order.js:731 +#: order/models.py:2449 templates/js/translated/return_order.js:731 #: templates/js/translated/table_filters.js:122 msgid "Outcome" msgstr "" -#: order/models.py:2411 +#: order/models.py:2450 msgid "Outcome for this line item" msgstr "" -#: order/models.py:2418 +#: order/models.py:2457 msgid "Cost associated with return or repair for this line item" msgstr "" -#: order/models.py:2428 +#: order/models.py:2467 msgid "Return Order Extra Line" msgstr "" -#: order/serializers.py:86 +#: order/serializers.py:87 +msgid "Order ID" +msgstr "" + +#: order/serializers.py:87 +msgid "ID of the order to duplicate" +msgstr "" + +#: order/serializers.py:93 +msgid "Copy Lines" +msgstr "" + +#: order/serializers.py:94 +msgid "Copy line items from the original order" +msgstr "" + +#: order/serializers.py:100 +msgid "Copy Extra Lines" +msgstr "" + +#: order/serializers.py:101 +msgid "Copy extra line items from the original order" +msgstr "" + +#: order/serializers.py:117 msgid "Completed Lines" msgstr "" -#: order/serializers.py:283 stock/admin.py:195 +#: order/serializers.py:161 +msgid "Duplicate Order" +msgstr "" + +#: order/serializers.py:162 +msgid "Specify options for duplicating this order" +msgstr "" + +#: order/serializers.py:234 +msgid "Invalid order ID" +msgstr "" + +#: order/serializers.py:374 stock/admin.py:196 msgid "Supplier Name" msgstr "" -#: order/serializers.py:331 +#: order/serializers.py:416 msgid "Order cannot be cancelled" msgstr "" -#: order/serializers.py:346 order/serializers.py:1366 +#: order/serializers.py:431 order/serializers.py:1492 msgid "Allow order to be closed with incomplete line items" msgstr "" -#: order/serializers.py:356 order/serializers.py:1376 +#: order/serializers.py:441 order/serializers.py:1502 msgid "Order has incomplete line items" msgstr "" -#: order/serializers.py:506 +#: order/serializers.py:591 msgid "Order is not open" msgstr "" -#: order/serializers.py:527 +#: order/serializers.py:612 msgid "Auto Pricing" msgstr "" -#: order/serializers.py:529 +#: order/serializers.py:614 msgid "Automatically calculate purchase price based on supplier part data" msgstr "" -#: order/serializers.py:539 +#: order/serializers.py:624 msgid "Purchase price currency" msgstr "" -#: order/serializers.py:545 +#: order/serializers.py:630 msgid "Merge Items" msgstr "" -#: order/serializers.py:547 +#: order/serializers.py:632 msgid "Merge items with the same part, destination and target date into one line item" msgstr "" -#: order/serializers.py:560 part/models.py:1033 +#: order/serializers.py:645 part/models.py:1094 part/serializers.py:387 msgid "Internal Part Number" msgstr "" -#: order/serializers.py:568 +#: order/serializers.py:653 msgid "Internal Part Name" msgstr "" -#: order/serializers.py:584 +#: order/serializers.py:669 msgid "Supplier part must be specified" msgstr "" -#: order/serializers.py:587 +#: order/serializers.py:672 msgid "Purchase order must be specified" msgstr "" -#: order/serializers.py:595 +#: order/serializers.py:680 msgid "Supplier must match purchase order" msgstr "" -#: order/serializers.py:596 +#: order/serializers.py:681 msgid "Purchase order must match supplier" msgstr "" -#: order/serializers.py:639 order/serializers.py:1446 +#: order/serializers.py:724 order/serializers.py:1572 msgid "Line Item" msgstr "" -#: order/serializers.py:645 +#: order/serializers.py:730 msgid "Line item does not match purchase order" msgstr "" -#: order/serializers.py:655 order/serializers.py:779 order/serializers.py:1782 +#: order/serializers.py:740 order/serializers.py:881 order/serializers.py:1934 msgid "Select destination location for received items" msgstr "" -#: order/serializers.py:671 templates/js/translated/purchase_order.js:1130 +#: order/serializers.py:756 templates/js/translated/purchase_order.js:1113 #: templates/js/translated/stock.js:1200 msgid "Enter batch code for incoming stock items" msgstr "" -#: order/serializers.py:679 templates/js/translated/purchase_order.js:1155 +#: order/serializers.py:764 templates/js/translated/purchase_order.js:1138 msgid "Enter serial numbers for incoming stock items" msgstr "" -#: order/serializers.py:691 +#: order/serializers.py:776 msgid "Override packaging information for incoming stock items" msgstr "" -#: order/serializers.py:699 +#: order/serializers.py:784 msgid "Additional note for incoming stock items" msgstr "" -#: order/serializers.py:706 templates/js/translated/barcode.js:52 +#: order/serializers.py:791 templates/js/translated/barcode.js:52 msgid "Barcode" msgstr "" -#: order/serializers.py:707 +#: order/serializers.py:792 msgid "Scanned barcode" msgstr "" -#: order/serializers.py:723 +#: order/serializers.py:808 msgid "Barcode is already in use" msgstr "" -#: order/serializers.py:747 +#: order/serializers.py:831 msgid "An integer quantity must be provided for trackable parts" msgstr "" -#: order/serializers.py:795 order/serializers.py:1798 +#: order/serializers.py:898 order/serializers.py:1950 msgid "Line items must be provided" msgstr "" -#: order/serializers.py:811 +#: order/serializers.py:914 msgid "Destination location must be specified" msgstr "" -#: order/serializers.py:822 +#: order/serializers.py:925 msgid "Supplied barcode values must be unique" msgstr "" -#: order/serializers.py:1187 +#: order/serializers.py:1221 msgid "Sale price currency" msgstr "" -#: order/serializers.py:1248 +#: order/serializers.py:1260 +msgid "Allocated Items" +msgstr "" + +#: order/serializers.py:1374 msgid "No shipment details provided" msgstr "" -#: order/serializers.py:1309 order/serializers.py:1455 +#: order/serializers.py:1435 order/serializers.py:1581 msgid "Line item is not associated with this order" msgstr "" -#: order/serializers.py:1328 +#: order/serializers.py:1454 msgid "Quantity must be positive" msgstr "" -#: order/serializers.py:1465 +#: order/serializers.py:1591 msgid "Enter serial numbers to allocate" msgstr "" -#: order/serializers.py:1487 order/serializers.py:1593 +#: order/serializers.py:1613 order/serializers.py:1733 msgid "Shipment has already been shipped" msgstr "" -#: order/serializers.py:1490 order/serializers.py:1596 +#: order/serializers.py:1616 order/serializers.py:1736 msgid "Shipment is not associated with this order" msgstr "" -#: order/serializers.py:1537 +#: order/serializers.py:1671 msgid "No match found for the following serial numbers" msgstr "" -#: order/serializers.py:1544 -msgid "The following serial numbers are already allocated" +#: order/serializers.py:1678 +msgid "The following serial numbers are unavailable" msgstr "" -#: order/serializers.py:1752 +#: order/serializers.py:1904 msgid "Return order line item" msgstr "" -#: order/serializers.py:1758 +#: order/serializers.py:1910 msgid "Line item does not match return order" msgstr "" -#: order/serializers.py:1761 +#: order/serializers.py:1913 msgid "Line item has already been received" msgstr "" -#: order/serializers.py:1790 +#: order/serializers.py:1942 msgid "Items can only be received against orders which are in progress" msgstr "" -#: order/serializers.py:1873 +#: order/serializers.py:2025 msgid "Line price currency" msgstr "" -#: order/status_codes.py:17 order/status_codes.py:52 stock/status_codes.py:16 +#: order/status_codes.py:17 order/status_codes.py:54 stock/status_codes.py:16 msgid "Lost" msgstr "Izgubljeno" -#: order/status_codes.py:18 order/status_codes.py:53 stock/status_codes.py:22 +#: order/status_codes.py:18 order/status_codes.py:55 stock/status_codes.py:24 msgid "Returned" msgstr "Vrnjeno" -#: order/status_codes.py:45 order/status_codes.py:77 +#: order/status_codes.py:47 order/status_codes.py:79 msgid "In Progress" msgstr "V teku" -#: order/status_codes.py:101 +#: order/status_codes.py:105 msgid "Return" msgstr "" -#: order/status_codes.py:104 +#: order/status_codes.py:108 msgid "Repair" msgstr "" -#: order/status_codes.py:107 +#: order/status_codes.py:111 msgid "Replace" msgstr "" -#: order/status_codes.py:110 +#: order/status_codes.py:114 msgid "Refund" msgstr "" -#: order/status_codes.py:113 +#: order/status_codes.py:117 msgid "Reject" msgstr "" -#: order/tasks.py:25 +#: order/tasks.py:30 msgid "Overdue Purchase Order" msgstr "" -#: order/tasks.py:30 +#: order/tasks.py:35 #, python-brace-format msgid "Purchase order {po} is now overdue" msgstr "" -#: order/tasks.py:75 +#: order/tasks.py:80 msgid "Overdue Sales Order" msgstr "" -#: order/tasks.py:80 +#: order/tasks.py:85 #, python-brace-format msgid "Sales order {so} is now overdue" msgstr "" -#: order/templates/order/order_base.html:51 +#: order/templates/order/order_base.html:52 msgid "Print purchase order report" msgstr "" -#: order/templates/order/order_base.html:53 -#: order/templates/order/return_order_base.html:62 -#: order/templates/order/sales_order_base.html:62 +#: order/templates/order/order_base.html:54 +#: order/templates/order/return_order_base.html:63 +#: order/templates/order/sales_order_base.html:63 msgid "Export order to file" msgstr "" -#: order/templates/order/order_base.html:59 -#: order/templates/order/return_order_base.html:72 -#: order/templates/order/sales_order_base.html:71 +#: order/templates/order/order_base.html:60 +#: order/templates/order/return_order_base.html:73 +#: order/templates/order/sales_order_base.html:72 msgid "Order actions" msgstr "" -#: order/templates/order/order_base.html:64 -#: order/templates/order/return_order_base.html:76 -#: order/templates/order/sales_order_base.html:75 +#: order/templates/order/order_base.html:65 +#: order/templates/order/return_order_base.html:77 +#: order/templates/order/sales_order_base.html:76 msgid "Edit order" msgstr "" -#: order/templates/order/order_base.html:68 +#: order/templates/order/order_base.html:69 msgid "Duplicate order" msgstr "" -#: order/templates/order/order_base.html:73 -#: order/templates/order/return_order_base.html:78 -#: order/templates/order/sales_order_base.html:77 +#: order/templates/order/order_base.html:74 +#: order/templates/order/return_order_base.html:79 +#: order/templates/order/sales_order_base.html:78 msgid "Hold order" msgstr "" -#: order/templates/order/order_base.html:78 -#: order/templates/order/return_order_base.html:81 -#: order/templates/order/sales_order_base.html:80 +#: order/templates/order/order_base.html:79 +#: order/templates/order/return_order_base.html:82 +#: order/templates/order/sales_order_base.html:81 msgid "Cancel order" msgstr "" -#: order/templates/order/order_base.html:84 #: order/templates/order/order_base.html:85 -#: order/templates/order/return_order_base.html:85 +#: order/templates/order/order_base.html:86 #: order/templates/order/return_order_base.html:86 -#: order/templates/order/sales_order_base.html:86 +#: order/templates/order/return_order_base.html:87 #: order/templates/order/sales_order_base.html:87 +#: order/templates/order/sales_order_base.html:88 msgid "Issue Order" msgstr "" -#: order/templates/order/order_base.html:88 -#: order/templates/order/return_order_base.html:89 -msgid "Mark order as complete" -msgstr "" - #: order/templates/order/order_base.html:89 #: order/templates/order/return_order_base.html:90 -#: order/templates/order/sales_order_base.html:100 +msgid "Mark order as complete" +msgstr "" + +#: order/templates/order/order_base.html:90 +#: order/templates/order/return_order_base.html:91 +#: order/templates/order/sales_order_base.html:101 msgid "Complete Order" msgstr "" -#: order/templates/order/order_base.html:96 +#: order/templates/order/order_base.html:97 msgid "Supplier part thumbnail" msgstr "" -#: order/templates/order/order_base.html:116 -#: order/templates/order/return_order_base.html:109 -#: order/templates/order/sales_order_base.html:118 +#: order/templates/order/order_base.html:117 +#: order/templates/order/return_order_base.html:110 +#: order/templates/order/sales_order_base.html:119 msgid "Order Description" msgstr "" -#: order/templates/order/order_base.html:146 -msgid "No suppplier information available" -msgstr "" - -#: order/templates/order/order_base.html:159 -#: order/templates/order/sales_order_base.html:164 +#: order/templates/order/order_base.html:168 +#: order/templates/order/sales_order_base.html:165 msgid "Completed Line Items" msgstr "" -#: order/templates/order/order_base.html:165 -#: order/templates/order/sales_order_base.html:170 -#: order/templates/order/sales_order_base.html:180 +#: order/templates/order/order_base.html:174 +#: order/templates/order/sales_order_base.html:171 +#: order/templates/order/sales_order_base.html:181 msgid "Incomplete" msgstr "" -#: order/templates/order/order_base.html:184 -#: order/templates/order/return_order_base.html:160 +#: order/templates/order/order_base.html:193 +#: order/templates/order/return_order_base.html:161 #: report/templates/report/inventree_build_order_report.html:121 msgid "Issued" msgstr "" -#: order/templates/order/order_base.html:229 +#: order/templates/order/order_base.html:238 msgid "Total cost" msgstr "" -#: order/templates/order/order_base.html:233 -#: order/templates/order/return_order_base.html:202 -#: order/templates/order/sales_order_base.html:246 +#: order/templates/order/order_base.html:242 +#: order/templates/order/return_order_base.html:203 +#: order/templates/order/sales_order_base.html:247 msgid "Total cost could not be calculated" msgstr "" -#: order/templates/order/order_base.html:335 +#: order/templates/order/order_base.html:344 msgid "Purchase Order QR Code" msgstr "" -#: order/templates/order/order_base.html:347 +#: order/templates/order/order_base.html:356 msgid "Link Barcode to Purchase Order" msgstr "" @@ -6184,12 +6392,12 @@ msgstr "" #: part/templates/part/import_wizard/ajax_match_references.html:42 #: part/templates/part/import_wizard/match_fields.html:71 #: part/templates/part/import_wizard/match_references.html:49 -#: templates/js/translated/bom.js:133 templates/js/translated/build.js:530 -#: templates/js/translated/build.js:1802 -#: templates/js/translated/purchase_order.js:696 -#: templates/js/translated/purchase_order.js:1288 +#: templates/js/translated/bom.js:133 templates/js/translated/build.js:533 +#: templates/js/translated/build.js:1805 +#: templates/js/translated/purchase_order.js:679 +#: templates/js/translated/purchase_order.js:1271 #: templates/js/translated/return_order.js:505 -#: templates/js/translated/sales_order.js:1145 +#: templates/js/translated/sales_order.js:1111 #: templates/js/translated/stock.js:720 templates/js/translated/stock.js:889 #: templates/patterns/wizard/match_fields.html:70 msgid "Remove row" @@ -6242,7 +6450,7 @@ msgstr "" #: order/templates/order/purchase_order_detail.html:27 #: order/templates/order/return_order_detail.html:24 #: order/templates/order/sales_order_detail.html:24 -#: templates/js/translated/purchase_order.js:414 +#: templates/js/translated/purchase_order.js:397 #: templates/js/translated/return_order.js:458 #: templates/js/translated/sales_order.js:237 msgid "Add Line Item" @@ -6277,45 +6485,45 @@ msgstr "" msgid "Order Notes" msgstr "" -#: order/templates/order/return_order_base.html:18 -#: order/templates/order/sales_order_base.html:18 +#: order/templates/order/return_order_base.html:19 +#: order/templates/order/sales_order_base.html:19 msgid "Customer logo thumbnail" msgstr "" -#: order/templates/order/return_order_base.html:60 +#: order/templates/order/return_order_base.html:61 msgid "Print return order report" msgstr "" -#: order/templates/order/return_order_base.html:64 -#: order/templates/order/sales_order_base.html:64 +#: order/templates/order/return_order_base.html:65 +#: order/templates/order/sales_order_base.html:65 msgid "Print packing list" msgstr "" -#: order/templates/order/return_order_base.html:141 -#: order/templates/order/sales_order_base.html:158 +#: order/templates/order/return_order_base.html:142 +#: order/templates/order/sales_order_base.html:159 #: templates/js/translated/return_order.js:308 -#: templates/js/translated/sales_order.js:833 +#: templates/js/translated/sales_order.js:792 msgid "Customer Reference" msgstr "" -#: order/templates/order/return_order_base.html:198 -#: order/templates/order/sales_order_base.html:242 +#: order/templates/order/return_order_base.html:199 +#: order/templates/order/sales_order_base.html:243 #: part/templates/part/part_pricing.html:32 #: part/templates/part/part_pricing.html:58 #: part/templates/part/part_pricing.html:99 #: part/templates/part/part_pricing.html:114 #: templates/js/translated/part.js:1079 -#: templates/js/translated/purchase_order.js:1822 +#: templates/js/translated/purchase_order.js:1806 #: templates/js/translated/return_order.js:380 -#: templates/js/translated/sales_order.js:891 +#: templates/js/translated/sales_order.js:850 msgid "Total Cost" msgstr "" -#: order/templates/order/return_order_base.html:273 +#: order/templates/order/return_order_base.html:274 msgid "Return Order QR Code" msgstr "" -#: order/templates/order/return_order_base.html:285 +#: order/templates/order/return_order_base.html:286 msgid "Link Barcode to Return Order" msgstr "" @@ -6323,40 +6531,40 @@ msgstr "" msgid "Order Details" msgstr "" -#: order/templates/order/sales_order_base.html:60 +#: order/templates/order/sales_order_base.html:61 msgid "Print sales order report" msgstr "" -#: order/templates/order/sales_order_base.html:91 #: order/templates/order/sales_order_base.html:92 +#: order/templates/order/sales_order_base.html:93 msgid "Ship Items" msgstr "" -#: order/templates/order/sales_order_base.html:95 #: order/templates/order/sales_order_base.html:96 +#: order/templates/order/sales_order_base.html:97 msgid "Mark As Shipped" msgstr "" -#: order/templates/order/sales_order_base.html:99 -#: templates/js/translated/sales_order.js:536 +#: order/templates/order/sales_order_base.html:100 +#: templates/js/translated/sales_order.js:495 msgid "Complete Sales Order" msgstr "" -#: order/templates/order/sales_order_base.html:138 +#: order/templates/order/sales_order_base.html:139 msgid "This Sales Order has not been fully allocated" msgstr "" -#: order/templates/order/sales_order_base.html:176 +#: order/templates/order/sales_order_base.html:177 #: order/templates/order/sales_order_detail.html:99 #: order/templates/order/so_sidebar.html:11 msgid "Completed Shipments" msgstr "" -#: order/templates/order/sales_order_base.html:339 +#: order/templates/order/sales_order_base.html:340 msgid "Sales Order QR Code" msgstr "" -#: order/templates/order/sales_order_base.html:351 +#: order/templates/order/sales_order_base.html:352 msgid "Link Barcode to Sales Order" msgstr "" @@ -6370,7 +6578,7 @@ msgid "Pending Shipments" msgstr "" #: order/templates/order/sales_order_detail.html:71 -#: templates/js/translated/bom.js:1277 templates/js/translated/build.js:1063 +#: templates/js/translated/bom.js:1277 templates/js/translated/build.js:1066 #: templates/js/translated/filters.js:299 msgid "Actions" msgstr "" @@ -6383,39 +6591,40 @@ msgstr "" msgid "Match Supplier Parts" msgstr "" -#: order/views.py:406 +#: order/views.py:407 msgid "Sales order not found" msgstr "" -#: order/views.py:412 +#: order/views.py:413 msgid "Price not found" msgstr "" -#: order/views.py:415 +#: order/views.py:416 #, python-brace-format msgid "Updated {part} unit-price to {price}" msgstr "" -#: order/views.py:421 +#: order/views.py:422 #, python-brace-format msgid "Updated {part} unit-price to {price} and quantity to {qty}" msgstr "" -#: part/admin.py:48 part/models.py:1032 part/templates/part/part_base.html:269 +#: part/admin.py:48 part/models.py:1093 part/serializers.py:939 +#: part/templates/part/part_base.html:277 #: report/templates/report/inventree_stock_location_report.html:103 #: templates/js/translated/part.js:1233 templates/js/translated/part.js:2347 -#: templates/js/translated/stock.js:2121 +#: templates/js/translated/stock.js:2122 msgid "IPN" msgstr "" -#: part/admin.py:50 part/models.py:1041 part/templates/part/part_base.html:286 +#: part/admin.py:50 part/models.py:1102 part/templates/part/part_base.html:294 #: report/models.py:161 templates/js/translated/part.js:1238 #: templates/js/translated/part.js:2353 msgid "Revision" msgstr "" -#: part/admin.py:53 part/admin.py:319 part/models.py:1014 -#: part/templates/part/category.html:91 part/templates/part/part_base.html:307 +#: part/admin.py:53 part/admin.py:319 part/models.py:1075 +#: part/templates/part/category.html:91 part/templates/part/part_base.html:315 msgid "Keywords" msgstr "" @@ -6427,7 +6636,7 @@ msgstr "" msgid "Category ID" msgstr "" -#: part/admin.py:67 part/admin.py:304 part/serializers.py:880 +#: part/admin.py:67 part/admin.py:304 part/serializers.py:924 #: part/stocktake.py:222 msgid "Category Name" msgstr "" @@ -6440,11 +6649,11 @@ msgstr "" msgid "Default Supplier ID" msgstr "" -#: part/admin.py:81 part/models.py:1000 part/templates/part/part_base.html:177 +#: part/admin.py:81 part/models.py:1061 part/templates/part/part_base.html:178 msgid "Variant Of" msgstr "" -#: part/admin.py:84 part/models.py:1138 part/templates/part/part_base.html:203 +#: part/admin.py:84 part/models.py:1199 part/templates/part/part_base.html:204 msgid "Minimum Stock" msgstr "" @@ -6452,23 +6661,23 @@ msgstr "" msgid "Used In" msgstr "" -#: part/admin.py:150 part/serializers.py:897 -#: part/templates/part/part_base.html:241 stock/admin.py:235 +#: part/admin.py:150 part/serializers.py:949 +#: part/templates/part/part_base.html:249 stock/admin.py:236 #: templates/js/translated/part.js:717 templates/js/translated/part.js:2159 msgid "Building" msgstr "" -#: part/admin.py:155 part/models.py:3202 part/models.py:3216 +#: part/admin.py:155 part/models.py:3253 part/models.py:3267 #: templates/js/translated/part.js:976 msgid "Minimum Cost" msgstr "" -#: part/admin.py:158 part/models.py:3209 part/models.py:3223 +#: part/admin.py:158 part/models.py:3260 part/models.py:3274 #: templates/js/translated/part.js:986 msgid "Maximum Cost" msgstr "" -#: part/admin.py:308 part/admin.py:387 stock/admin.py:57 stock/admin.py:215 +#: part/admin.py:308 part/admin.py:387 stock/admin.py:57 stock/admin.py:216 msgid "Parent ID" msgstr "" @@ -6481,8 +6690,8 @@ msgstr "" msgid "Category Path" msgstr "" -#: part/admin.py:325 part/models.py:425 part/serializers.py:130 -#: part/serializers.py:290 part/serializers.py:415 +#: part/admin.py:325 part/models.py:420 part/serializers.py:130 +#: part/serializers.py:323 part/serializers.py:459 #: part/templates/part/cat_link.html:3 part/templates/part/category.html:20 #: part/templates/part/category.html:138 part/templates/part/category.html:158 #: part/templates/part/category_sidebar.html:9 @@ -6509,15 +6718,15 @@ msgstr "" msgid "Part Revision" msgstr "" -#: part/admin.py:418 part/serializers.py:1346 +#: part/admin.py:418 part/serializers.py:1400 #: templates/js/translated/pricing.js:358 -#: templates/js/translated/pricing.js:1024 +#: templates/js/translated/pricing.js:1022 msgid "Minimum Price" msgstr "" -#: part/admin.py:423 part/serializers.py:1361 +#: part/admin.py:423 part/serializers.py:1415 #: templates/js/translated/pricing.js:353 -#: templates/js/translated/pricing.js:1032 +#: templates/js/translated/pricing.js:1030 msgid "Maximum Price" msgstr "" @@ -6545,94 +6754,98 @@ msgstr "" msgid "Filter by top-level categories" msgstr "" +#: part/api.py:156 stock/api.py:343 +msgid "Cascade" +msgstr "" + #: part/api.py:158 msgid "Include sub-categories in filtered results" msgstr "" -#: part/api.py:179 templates/js/translated/part.js:311 +#: part/api.py:178 templates/js/translated/part.js:311 msgid "Parent" msgstr "" -#: part/api.py:181 +#: part/api.py:180 msgid "Filter by parent category" msgstr "" -#: part/api.py:214 +#: part/api.py:213 msgid "Exclude Tree" msgstr "" -#: part/api.py:216 +#: part/api.py:215 msgid "Exclude sub-categories under the specified category" msgstr "" -#: part/api.py:441 +#: part/api.py:440 msgid "Has Results" msgstr "" -#: part/api.py:608 +#: part/api.py:604 msgid "Incoming Purchase Order" msgstr "" -#: part/api.py:626 +#: part/api.py:618 msgid "Outgoing Sales Order" msgstr "" -#: part/api.py:642 +#: part/api.py:630 msgid "Stock produced by Build Order" msgstr "" -#: part/api.py:726 +#: part/api.py:712 msgid "Stock required for Build Order" msgstr "" -#: part/api.py:874 +#: part/api.py:858 msgid "Validate entire Bill of Materials" msgstr "" -#: part/api.py:880 +#: part/api.py:864 msgid "This option must be selected" msgstr "" -#: part/api.py:916 +#: part/api.py:900 msgid "Is Revision" msgstr "" -#: part/api.py:926 +#: part/api.py:910 msgid "Has Revisions" msgstr "" -#: part/api.py:1117 +#: part/api.py:1101 msgid "BOM Valid" msgstr "" -#: part/api.py:1523 part/models.py:1024 part/models.py:3489 part/models.py:4046 -#: part/serializers.py:430 part/serializers.py:1202 -#: part/templates/part/part_base.html:260 stock/api.py:781 +#: part/api.py:1509 part/models.py:1085 part/models.py:3540 part/models.py:4104 +#: part/serializers.py:474 part/serializers.py:1255 +#: part/templates/part/part_base.html:268 stock/api.py:781 #: templates/InvenTree/settings/settings_staff_js.html:300 #: templates/js/translated/notification.js:60 #: templates/js/translated/part.js:2383 msgid "Category" msgstr "" -#: part/api.py:1761 +#: part/api.py:1750 msgid "Assembly part is testable" msgstr "" -#: part/api.py:1770 +#: part/api.py:1759 msgid "Component part is testable" msgstr "" -#: part/api.py:1821 +#: part/api.py:1810 msgid "Uses" msgstr "" -#: part/bom.py:178 part/models.py:107 part/models.py:1077 -#: part/templates/part/category.html:113 part/templates/part/part_base.html:376 +#: part/bom.py:183 part/models.py:109 part/models.py:1138 +#: part/templates/part/category.html:113 part/templates/part/part_base.html:384 #: templates/js/translated/part.js:2397 msgid "Default Location" msgstr "" -#: part/bom.py:179 part/serializers.py:905 +#: part/bom.py:184 part/serializers.py:957 #: templates/email/low_stock_notification.html:16 msgid "Total Stock" msgstr "" @@ -6641,789 +6854,789 @@ msgstr "" msgid "Input quantity for price calculation" msgstr "" -#: part/models.py:88 part/models.py:4047 part/templates/part/category.html:16 +#: part/models.py:90 part/models.py:4105 part/templates/part/category.html:16 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "" -#: part/models.py:89 part/templates/part/category.html:133 +#: part/models.py:91 part/templates/part/category.html:133 #: templates/InvenTree/search.html:97 templates/js/translated/search.js:158 #: users/models.py:202 msgid "Part Categories" msgstr "" -#: part/models.py:108 +#: part/models.py:110 msgid "Default location for parts in this category" msgstr "" -#: part/models.py:113 stock/models.py:187 templates/js/translated/part.js:2828 -#: templates/js/translated/stock.js:2856 +#: part/models.py:115 stock/models.py:193 templates/js/translated/part.js:2828 +#: templates/js/translated/stock.js:2857 #: templates/js/translated/table_filters.js:246 #: templates/js/translated/table_filters.js:290 msgid "Structural" msgstr "" -#: part/models.py:115 +#: part/models.py:117 msgid "Parts may not be directly assigned to a structural category, but may be assigned to child categories." msgstr "" -#: part/models.py:124 +#: part/models.py:126 msgid "Default keywords" msgstr "" -#: part/models.py:125 +#: part/models.py:127 msgid "Default keywords for parts in this category" msgstr "" -#: part/models.py:131 stock/models.py:90 stock/models.py:169 +#: part/models.py:133 stock/models.py:96 stock/models.py:175 #: templates/InvenTree/settings/settings_staff_js.html:445 msgid "Icon" msgstr "" -#: part/models.py:132 part/serializers.py:143 part/serializers.py:161 -#: stock/models.py:170 +#: part/models.py:134 part/serializers.py:143 part/serializers.py:161 +#: stock/models.py:176 msgid "Icon (optional)" msgstr "" -#: part/models.py:178 +#: part/models.py:180 msgid "You cannot make this part category structural because some parts are already assigned to it!" msgstr "" -#: part/models.py:519 +#: part/models.py:514 msgid "Cannot delete this part as it is locked" msgstr "" -#: part/models.py:522 +#: part/models.py:517 msgid "Cannot delete this part as it is still active" msgstr "" -#: part/models.py:527 +#: part/models.py:522 msgid "Cannot delete this part as it is used in an assembly" msgstr "" -#: part/models.py:565 +#: part/models.py:560 msgid "Invalid choice for parent part" msgstr "" -#: part/models.py:613 part/models.py:620 +#: part/models.py:608 part/models.py:615 #, python-brace-format msgid "Part '{self}' cannot be used in BOM for '{parent}' (recursive)" msgstr "" -#: part/models.py:632 +#: part/models.py:627 #, python-brace-format msgid "Part '{parent}' is used in BOM for '{self}' (recursive)" msgstr "" -#: part/models.py:695 +#: part/models.py:694 #, python-brace-format msgid "IPN must match regex pattern {pattern}" msgstr "" -#: part/models.py:703 +#: part/models.py:702 msgid "Part cannot be a revision of itself" msgstr "" -#: part/models.py:710 +#: part/models.py:709 msgid "Cannot make a revision of a part which is already a revision" msgstr "" -#: part/models.py:717 +#: part/models.py:716 msgid "Revision code must be specified" msgstr "" -#: part/models.py:724 +#: part/models.py:723 msgid "Revisions are only allowed for assembly parts" msgstr "" -#: part/models.py:731 +#: part/models.py:730 msgid "Cannot make a revision of a template part" msgstr "" -#: part/models.py:737 +#: part/models.py:736 msgid "Parent part must point to the same template" msgstr "" -#: part/models.py:816 +#: part/models.py:832 msgid "Stock item with this serial number already exists" msgstr "" -#: part/models.py:917 +#: part/models.py:976 msgid "Duplicate IPN not allowed in part settings" msgstr "" -#: part/models.py:926 +#: part/models.py:988 msgid "Duplicate part revision already exists." msgstr "" -#: part/models.py:936 +#: part/models.py:997 msgid "Part with this Name, IPN and Revision already exists." msgstr "" -#: part/models.py:951 +#: part/models.py:1012 msgid "Parts cannot be assigned to structural part categories!" msgstr "" -#: part/models.py:983 part/models.py:4102 +#: part/models.py:1044 part/models.py:4160 msgid "Part name" msgstr "" -#: part/models.py:988 +#: part/models.py:1049 msgid "Is Template" msgstr "" -#: part/models.py:989 +#: part/models.py:1050 msgid "Is this part a template part?" msgstr "" -#: part/models.py:999 +#: part/models.py:1060 msgid "Is this part a variant of another part?" msgstr "" -#: part/models.py:1007 +#: part/models.py:1068 msgid "Part description (optional)" msgstr "" -#: part/models.py:1015 +#: part/models.py:1076 msgid "Part keywords to improve visibility in search results" msgstr "" -#: part/models.py:1025 +#: part/models.py:1086 msgid "Part category" msgstr "" -#: part/models.py:1040 +#: part/models.py:1101 msgid "Part revision or version number" msgstr "" -#: part/models.py:1050 +#: part/models.py:1111 msgid "Is this part a revision of another part?" msgstr "" -#: part/models.py:1051 part/templates/part/part_base.html:277 +#: part/models.py:1112 part/templates/part/part_base.html:285 msgid "Revision Of" msgstr "" -#: part/models.py:1075 +#: part/models.py:1136 msgid "Where is this item normally stored?" msgstr "" -#: part/models.py:1121 part/templates/part/part_base.html:385 +#: part/models.py:1182 part/templates/part/part_base.html:393 msgid "Default Supplier" msgstr "" -#: part/models.py:1122 +#: part/models.py:1183 msgid "Default supplier part" msgstr "" -#: part/models.py:1129 +#: part/models.py:1190 msgid "Default Expiry" msgstr "" -#: part/models.py:1130 +#: part/models.py:1191 msgid "Expiry time (in days) for stock items of this part" msgstr "" -#: part/models.py:1139 +#: part/models.py:1200 msgid "Minimum allowed stock level" msgstr "" -#: part/models.py:1148 +#: part/models.py:1209 msgid "Units of measure for this part" msgstr "" -#: part/models.py:1155 +#: part/models.py:1216 msgid "Can this part be built from other parts?" msgstr "" -#: part/models.py:1161 +#: part/models.py:1222 msgid "Can this part be used to build other parts?" msgstr "" -#: part/models.py:1167 +#: part/models.py:1228 msgid "Does this part have tracking for unique items?" msgstr "" -#: part/models.py:1173 +#: part/models.py:1234 msgid "Can this part have test results recorded against it?" msgstr "" -#: part/models.py:1179 +#: part/models.py:1240 msgid "Can this part be purchased from external suppliers?" msgstr "" -#: part/models.py:1185 +#: part/models.py:1246 msgid "Can this part be sold to customers?" msgstr "" -#: part/models.py:1189 +#: part/models.py:1250 msgid "Is this part active?" msgstr "" -#: part/models.py:1194 templates/js/translated/part.js:821 +#: part/models.py:1255 templates/js/translated/part.js:821 #: templates/js/translated/table_filters.js:724 msgid "Locked" msgstr "" -#: part/models.py:1195 +#: part/models.py:1256 msgid "Locked parts cannot be edited" msgstr "" -#: part/models.py:1201 +#: part/models.py:1262 msgid "Is this a virtual part, such as a software product or license?" msgstr "" -#: part/models.py:1207 +#: part/models.py:1268 msgid "BOM checksum" msgstr "" -#: part/models.py:1208 +#: part/models.py:1269 msgid "Stored BOM checksum" msgstr "" -#: part/models.py:1216 +#: part/models.py:1277 msgid "BOM checked by" msgstr "" -#: part/models.py:1221 +#: part/models.py:1282 msgid "BOM checked date" msgstr "" -#: part/models.py:1237 +#: part/models.py:1298 msgid "Creation User" msgstr "" -#: part/models.py:1247 +#: part/models.py:1308 msgid "Owner responsible for this part" msgstr "" -#: part/models.py:1252 part/templates/part/part_base.html:348 -#: stock/templates/stock/item_base.html:451 +#: part/models.py:1313 part/templates/part/part_base.html:356 +#: stock/templates/stock/item_base.html:448 #: templates/js/translated/part.js:2490 msgid "Last Stocktake" msgstr "" -#: part/models.py:2125 +#: part/models.py:2185 msgid "Sell multiple" msgstr "" -#: part/models.py:3116 +#: part/models.py:3167 msgid "Currency used to cache pricing calculations" msgstr "" -#: part/models.py:3132 +#: part/models.py:3183 msgid "Minimum BOM Cost" msgstr "" -#: part/models.py:3133 +#: part/models.py:3184 msgid "Minimum cost of component parts" msgstr "" -#: part/models.py:3139 +#: part/models.py:3190 msgid "Maximum BOM Cost" msgstr "" -#: part/models.py:3140 +#: part/models.py:3191 msgid "Maximum cost of component parts" msgstr "" -#: part/models.py:3146 +#: part/models.py:3197 msgid "Minimum Purchase Cost" msgstr "" -#: part/models.py:3147 +#: part/models.py:3198 msgid "Minimum historical purchase cost" msgstr "" -#: part/models.py:3153 +#: part/models.py:3204 msgid "Maximum Purchase Cost" msgstr "" -#: part/models.py:3154 +#: part/models.py:3205 msgid "Maximum historical purchase cost" msgstr "" -#: part/models.py:3160 +#: part/models.py:3211 msgid "Minimum Internal Price" msgstr "" -#: part/models.py:3161 +#: part/models.py:3212 msgid "Minimum cost based on internal price breaks" msgstr "" -#: part/models.py:3167 +#: part/models.py:3218 msgid "Maximum Internal Price" msgstr "" -#: part/models.py:3168 +#: part/models.py:3219 msgid "Maximum cost based on internal price breaks" msgstr "" -#: part/models.py:3174 +#: part/models.py:3225 msgid "Minimum Supplier Price" msgstr "" -#: part/models.py:3175 +#: part/models.py:3226 msgid "Minimum price of part from external suppliers" msgstr "" -#: part/models.py:3181 +#: part/models.py:3232 msgid "Maximum Supplier Price" msgstr "" -#: part/models.py:3182 +#: part/models.py:3233 msgid "Maximum price of part from external suppliers" msgstr "" -#: part/models.py:3188 +#: part/models.py:3239 msgid "Minimum Variant Cost" msgstr "" -#: part/models.py:3189 +#: part/models.py:3240 msgid "Calculated minimum cost of variant parts" msgstr "" -#: part/models.py:3195 +#: part/models.py:3246 msgid "Maximum Variant Cost" msgstr "" -#: part/models.py:3196 +#: part/models.py:3247 msgid "Calculated maximum cost of variant parts" msgstr "" -#: part/models.py:3203 +#: part/models.py:3254 msgid "Override minimum cost" msgstr "" -#: part/models.py:3210 +#: part/models.py:3261 msgid "Override maximum cost" msgstr "" -#: part/models.py:3217 +#: part/models.py:3268 msgid "Calculated overall minimum cost" msgstr "" -#: part/models.py:3224 +#: part/models.py:3275 msgid "Calculated overall maximum cost" msgstr "" -#: part/models.py:3230 +#: part/models.py:3281 msgid "Minimum Sale Price" msgstr "" -#: part/models.py:3231 +#: part/models.py:3282 msgid "Minimum sale price based on price breaks" msgstr "" -#: part/models.py:3237 +#: part/models.py:3288 msgid "Maximum Sale Price" msgstr "" -#: part/models.py:3238 +#: part/models.py:3289 msgid "Maximum sale price based on price breaks" msgstr "" -#: part/models.py:3244 +#: part/models.py:3295 msgid "Minimum Sale Cost" msgstr "" -#: part/models.py:3245 +#: part/models.py:3296 msgid "Minimum historical sale price" msgstr "" -#: part/models.py:3251 +#: part/models.py:3302 msgid "Maximum Sale Cost" msgstr "" -#: part/models.py:3252 +#: part/models.py:3303 msgid "Maximum historical sale price" msgstr "" -#: part/models.py:3271 +#: part/models.py:3322 msgid "Part for stocktake" msgstr "" -#: part/models.py:3276 +#: part/models.py:3327 msgid "Item Count" msgstr "" -#: part/models.py:3277 +#: part/models.py:3328 msgid "Number of individual stock entries at time of stocktake" msgstr "" -#: part/models.py:3285 +#: part/models.py:3336 msgid "Total available stock at time of stocktake" msgstr "" -#: part/models.py:3289 part/models.py:3372 +#: part/models.py:3340 part/models.py:3423 part/serializers.py:263 #: part/templates/part/part_scheduling.html:13 #: report/templates/report/inventree_test_report.html:106 #: templates/InvenTree/settings/plugin_settings.html:37 #: templates/InvenTree/settings/settings_staff_js.html:543 -#: templates/js/translated/part.js:1092 templates/js/translated/pricing.js:826 -#: templates/js/translated/pricing.js:950 -#: templates/js/translated/purchase_order.js:1801 -#: templates/js/translated/stock.js:2905 +#: templates/js/translated/part.js:1092 templates/js/translated/pricing.js:824 +#: templates/js/translated/pricing.js:948 +#: templates/js/translated/purchase_order.js:1785 +#: templates/js/translated/stock.js:2906 msgid "Date" msgstr "" -#: part/models.py:3290 +#: part/models.py:3341 msgid "Date stocktake was performed" msgstr "" -#: part/models.py:3298 +#: part/models.py:3349 msgid "Additional notes" msgstr "" -#: part/models.py:3308 +#: part/models.py:3359 msgid "User who performed this stocktake" msgstr "" -#: part/models.py:3314 +#: part/models.py:3365 msgid "Minimum Stock Cost" msgstr "" -#: part/models.py:3315 +#: part/models.py:3366 msgid "Estimated minimum cost of stock on hand" msgstr "" -#: part/models.py:3321 +#: part/models.py:3372 msgid "Maximum Stock Cost" msgstr "" -#: part/models.py:3322 +#: part/models.py:3373 msgid "Estimated maximum cost of stock on hand" msgstr "" -#: part/models.py:3378 templates/InvenTree/settings/settings_staff_js.html:532 +#: part/models.py:3429 templates/InvenTree/settings/settings_staff_js.html:532 msgid "Report" msgstr "" -#: part/models.py:3379 +#: part/models.py:3430 msgid "Stocktake report file (generated internally)" msgstr "" -#: part/models.py:3384 templates/InvenTree/settings/settings_staff_js.html:539 +#: part/models.py:3435 templates/InvenTree/settings/settings_staff_js.html:539 msgid "Part Count" msgstr "" -#: part/models.py:3385 +#: part/models.py:3436 msgid "Number of parts covered by stocktake" msgstr "" -#: part/models.py:3395 +#: part/models.py:3446 msgid "User who requested this stocktake report" msgstr "" -#: part/models.py:3405 +#: part/models.py:3456 msgid "Part Sale Price Break" msgstr "" -#: part/models.py:3517 +#: part/models.py:3568 msgid "Part Test Template" msgstr "" -#: part/models.py:3543 +#: part/models.py:3594 msgid "Invalid template name - must include at least one alphanumeric character" msgstr "" -#: part/models.py:3564 part/models.py:3733 +#: part/models.py:3615 part/models.py:3784 msgid "Choices must be unique" msgstr "" -#: part/models.py:3575 -msgid "Test templates can only be created for trackable parts" +#: part/models.py:3626 +msgid "Test templates can only be created for testable parts" msgstr "" -#: part/models.py:3586 +#: part/models.py:3637 msgid "Test template with the same key already exists for part" msgstr "" -#: part/models.py:3603 templates/js/translated/part.js:2898 +#: part/models.py:3654 templates/js/translated/part.js:2898 msgid "Test Name" msgstr "" -#: part/models.py:3604 +#: part/models.py:3655 msgid "Enter a name for the test" msgstr "" -#: part/models.py:3610 +#: part/models.py:3661 msgid "Test Key" msgstr "" -#: part/models.py:3611 +#: part/models.py:3662 msgid "Simplified key for the test" msgstr "" -#: part/models.py:3618 +#: part/models.py:3669 msgid "Test Description" msgstr "" -#: part/models.py:3619 +#: part/models.py:3670 msgid "Enter description for this test" msgstr "" -#: part/models.py:3623 report/models.py:208 +#: part/models.py:3674 report/models.py:216 #: templates/js/translated/part.js:2919 #: templates/js/translated/table_filters.js:502 msgid "Enabled" msgstr "" -#: part/models.py:3623 +#: part/models.py:3674 msgid "Is this test enabled?" msgstr "" -#: part/models.py:3628 templates/js/translated/part.js:2927 +#: part/models.py:3679 templates/js/translated/part.js:2927 #: templates/js/translated/table_filters.js:498 msgid "Required" msgstr "" -#: part/models.py:3629 +#: part/models.py:3680 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:3634 templates/js/translated/part.js:2935 +#: part/models.py:3685 templates/js/translated/part.js:2935 msgid "Requires Value" msgstr "" -#: part/models.py:3635 +#: part/models.py:3686 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:3640 templates/js/translated/part.js:2942 +#: part/models.py:3691 templates/js/translated/part.js:2942 msgid "Requires Attachment" msgstr "" -#: part/models.py:3642 +#: part/models.py:3693 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:3648 part/models.py:3792 templates/js/translated/part.js:1643 +#: part/models.py:3699 part/models.py:3843 templates/js/translated/part.js:1643 msgid "Choices" msgstr "" -#: part/models.py:3649 +#: part/models.py:3700 msgid "Valid choices for this test (comma-separated)" msgstr "" -#: part/models.py:3681 +#: part/models.py:3732 msgid "Part Parameter Template" msgstr "" -#: part/models.py:3708 +#: part/models.py:3759 msgid "Checkbox parameters cannot have units" msgstr "" -#: part/models.py:3713 +#: part/models.py:3764 msgid "Checkbox parameters cannot have choices" msgstr "" -#: part/models.py:3750 +#: part/models.py:3801 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:3765 +#: part/models.py:3816 msgid "Parameter Name" msgstr "" -#: part/models.py:3772 +#: part/models.py:3823 msgid "Physical units for this parameter" msgstr "" -#: part/models.py:3780 +#: part/models.py:3831 msgid "Parameter description" msgstr "" -#: part/models.py:3786 templates/js/translated/part.js:1634 +#: part/models.py:3837 templates/js/translated/part.js:1634 #: templates/js/translated/table_filters.js:837 msgid "Checkbox" msgstr "" -#: part/models.py:3787 +#: part/models.py:3838 msgid "Is this parameter a checkbox?" msgstr "" -#: part/models.py:3793 +#: part/models.py:3844 msgid "Valid choices for this parameter (comma-separated)" msgstr "" -#: part/models.py:3827 +#: part/models.py:3881 msgid "Part Parameter" msgstr "" -#: part/models.py:3853 +#: part/models.py:3907 msgid "Parameter cannot be modified - part is locked" msgstr "" -#: part/models.py:3889 +#: part/models.py:3945 msgid "Invalid choice for parameter value" msgstr "" -#: part/models.py:3938 +#: part/models.py:3996 msgid "Parent Part" msgstr "" -#: part/models.py:3946 part/models.py:4054 part/models.py:4055 +#: part/models.py:4004 part/models.py:4112 part/models.py:4113 #: templates/InvenTree/settings/settings_staff_js.html:295 msgid "Parameter Template" msgstr "" -#: part/models.py:3952 +#: part/models.py:4010 msgid "Parameter Value" msgstr "" -#: part/models.py:4002 +#: part/models.py:4060 msgid "Part Category Parameter Template" msgstr "" -#: part/models.py:4061 templates/InvenTree/settings/settings_staff_js.html:304 +#: part/models.py:4119 templates/InvenTree/settings/settings_staff_js.html:304 msgid "Default Value" msgstr "" -#: part/models.py:4062 +#: part/models.py:4120 msgid "Default Parameter Value" msgstr "" -#: part/models.py:4100 +#: part/models.py:4158 msgid "Part ID or part name" msgstr "" -#: part/models.py:4101 +#: part/models.py:4159 msgid "Unique part ID value" msgstr "" -#: part/models.py:4103 +#: part/models.py:4161 msgid "Part IPN value" msgstr "" -#: part/models.py:4104 +#: part/models.py:4162 msgid "Level" msgstr "" -#: part/models.py:4104 +#: part/models.py:4162 msgid "BOM level" msgstr "" -#: part/models.py:4215 +#: part/models.py:4272 msgid "BOM item cannot be modified - assembly is locked" msgstr "" -#: part/models.py:4222 +#: part/models.py:4279 msgid "BOM item cannot be modified - variant assembly is locked" msgstr "" -#: part/models.py:4232 +#: part/models.py:4289 msgid "Select parent part" msgstr "" -#: part/models.py:4242 +#: part/models.py:4299 msgid "Sub part" msgstr "" -#: part/models.py:4243 +#: part/models.py:4300 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:4254 +#: part/models.py:4311 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:4260 +#: part/models.py:4317 msgid "This BOM item is optional" msgstr "" -#: part/models.py:4266 +#: part/models.py:4323 msgid "This BOM item is consumable (it is not tracked in build orders)" msgstr "" -#: part/models.py:4273 part/templates/part/upload_bom.html:55 +#: part/models.py:4330 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "" -#: part/models.py:4274 +#: part/models.py:4331 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:4281 +#: part/models.py:4338 msgid "BOM item reference" msgstr "" -#: part/models.py:4289 +#: part/models.py:4346 msgid "BOM item notes" msgstr "" -#: part/models.py:4295 +#: part/models.py:4352 msgid "Checksum" msgstr "" -#: part/models.py:4296 +#: part/models.py:4353 msgid "BOM line checksum" msgstr "" -#: part/models.py:4301 templates/js/translated/table_filters.js:181 +#: part/models.py:4358 templates/js/translated/table_filters.js:181 msgid "Validated" msgstr "" -#: part/models.py:4302 +#: part/models.py:4359 msgid "This BOM item has been validated" msgstr "" -#: part/models.py:4307 part/templates/part/upload_bom.html:57 +#: part/models.py:4364 part/templates/part/upload_bom.html:57 #: templates/js/translated/bom.js:1054 #: templates/js/translated/table_filters.js:185 #: templates/js/translated/table_filters.js:218 msgid "Gets inherited" msgstr "" -#: part/models.py:4308 +#: part/models.py:4365 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:4314 +#: part/models.py:4371 msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:4399 stock/models.py:685 +#: part/models.py:4456 stock/models.py:762 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:4409 part/models.py:4411 +#: part/models.py:4466 part/models.py:4468 msgid "Sub part must be specified" msgstr "" -#: part/models.py:4551 +#: part/models.py:4613 msgid "BOM Item Substitute" msgstr "" -#: part/models.py:4572 +#: part/models.py:4634 msgid "Substitute part cannot be the same as the master part" msgstr "" -#: part/models.py:4585 +#: part/models.py:4647 msgid "Parent BOM item" msgstr "" -#: part/models.py:4593 +#: part/models.py:4655 msgid "Substitute part" msgstr "" -#: part/models.py:4609 +#: part/models.py:4671 msgid "Part 1" msgstr "" -#: part/models.py:4617 +#: part/models.py:4679 msgid "Part 2" msgstr "" -#: part/models.py:4618 +#: part/models.py:4680 msgid "Select Related Part" msgstr "" -#: part/models.py:4637 +#: part/models.py:4699 msgid "Part relationship cannot be created between a part and itself" msgstr "" -#: part/models.py:4642 +#: part/models.py:4704 msgid "Duplicate relationship already exists" msgstr "" @@ -7449,340 +7662,352 @@ msgstr "" msgid "Number of results recorded against this template" msgstr "" -#: part/serializers.py:225 part/serializers.py:243 stock/serializers.py:616 +#: part/serializers.py:225 part/serializers.py:243 stock/serializers.py:643 msgid "Purchase currency of this stock item" msgstr "" -#: part/serializers.py:291 +#: part/serializers.py:268 +msgid "Speculative Quantity" +msgstr "" + +#: part/serializers.py:277 +msgid "Model ID" +msgstr "" + +#: part/serializers.py:324 msgid "Number of parts using this template" msgstr "" -#: part/serializers.py:421 +#: part/serializers.py:465 msgid "No parts selected" msgstr "" -#: part/serializers.py:431 +#: part/serializers.py:475 msgid "Select category" msgstr "" -#: part/serializers.py:466 +#: part/serializers.py:510 msgid "Original Part" msgstr "" -#: part/serializers.py:467 +#: part/serializers.py:511 msgid "Select original part to duplicate" msgstr "" -#: part/serializers.py:472 +#: part/serializers.py:516 msgid "Copy Image" msgstr "" -#: part/serializers.py:473 +#: part/serializers.py:517 msgid "Copy image from original part" msgstr "" -#: part/serializers.py:479 part/templates/part/detail.html:293 +#: part/serializers.py:523 part/templates/part/detail.html:293 msgid "Copy BOM" msgstr "" -#: part/serializers.py:480 +#: part/serializers.py:524 msgid "Copy bill of materials from original part" msgstr "" -#: part/serializers.py:486 +#: part/serializers.py:530 msgid "Copy Parameters" msgstr "" -#: part/serializers.py:487 +#: part/serializers.py:531 msgid "Copy parameter data from original part" msgstr "" -#: part/serializers.py:493 +#: part/serializers.py:537 msgid "Copy Notes" msgstr "" -#: part/serializers.py:494 +#: part/serializers.py:538 msgid "Copy notes from original part" msgstr "" -#: part/serializers.py:512 +#: part/serializers.py:556 msgid "Initial Stock Quantity" msgstr "" -#: part/serializers.py:514 +#: part/serializers.py:558 msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added." msgstr "" -#: part/serializers.py:521 +#: part/serializers.py:565 msgid "Initial Stock Location" msgstr "" -#: part/serializers.py:522 +#: part/serializers.py:566 msgid "Specify initial stock location for this Part" msgstr "" -#: part/serializers.py:539 +#: part/serializers.py:583 msgid "Select supplier (or leave blank to skip)" msgstr "" -#: part/serializers.py:555 +#: part/serializers.py:599 msgid "Select manufacturer (or leave blank to skip)" msgstr "" -#: part/serializers.py:565 +#: part/serializers.py:609 msgid "Manufacturer part number" msgstr "" -#: part/serializers.py:572 +#: part/serializers.py:616 msgid "Selected company is not a valid supplier" msgstr "" -#: part/serializers.py:581 +#: part/serializers.py:625 msgid "Selected company is not a valid manufacturer" msgstr "" -#: part/serializers.py:592 +#: part/serializers.py:636 msgid "Manufacturer part matching this MPN already exists" msgstr "" -#: part/serializers.py:599 +#: part/serializers.py:643 msgid "Supplier part matching this SKU already exists" msgstr "" -#: part/serializers.py:903 +#: part/serializers.py:955 msgid "Revisions" msgstr "" -#: part/serializers.py:908 +#: part/serializers.py:960 msgid "Unallocated Stock" msgstr "" -#: part/serializers.py:911 +#: part/serializers.py:963 msgid "Variant Stock" msgstr "" -#: part/serializers.py:941 part/templates/part/copy_part.html:9 +#: part/serializers.py:993 part/templates/part/copy_part.html:9 #: templates/js/translated/part.js:474 msgid "Duplicate Part" msgstr "" -#: part/serializers.py:942 +#: part/serializers.py:994 msgid "Copy initial data from another Part" msgstr "" -#: part/serializers.py:948 templates/js/translated/part.js:103 +#: part/serializers.py:1000 templates/js/translated/part.js:103 msgid "Initial Stock" msgstr "" -#: part/serializers.py:949 +#: part/serializers.py:1001 msgid "Create Part with initial stock quantity" msgstr "" -#: part/serializers.py:955 +#: part/serializers.py:1007 msgid "Supplier Information" msgstr "" -#: part/serializers.py:956 +#: part/serializers.py:1008 msgid "Add initial supplier information for this part" msgstr "" -#: part/serializers.py:964 +#: part/serializers.py:1016 msgid "Copy Category Parameters" msgstr "" -#: part/serializers.py:965 +#: part/serializers.py:1017 msgid "Copy parameter templates from selected part category" msgstr "" -#: part/serializers.py:970 +#: part/serializers.py:1022 msgid "Existing Image" msgstr "" -#: part/serializers.py:971 +#: part/serializers.py:1023 msgid "Filename of an existing part image" msgstr "" -#: part/serializers.py:988 +#: part/serializers.py:1040 msgid "Image file does not exist" msgstr "" -#: part/serializers.py:1194 +#: part/serializers.py:1247 msgid "Limit stocktake report to a particular part, and any variant parts" msgstr "" -#: part/serializers.py:1204 +#: part/serializers.py:1257 msgid "Limit stocktake report to a particular part category, and any child categories" msgstr "" -#: part/serializers.py:1214 +#: part/serializers.py:1267 msgid "Limit stocktake report to a particular stock location, and any child locations" msgstr "" -#: part/serializers.py:1220 +#: part/serializers.py:1273 msgid "Exclude External Stock" msgstr "" -#: part/serializers.py:1221 +#: part/serializers.py:1274 msgid "Exclude stock items in external locations" msgstr "" -#: part/serializers.py:1226 +#: part/serializers.py:1279 msgid "Generate Report" msgstr "" -#: part/serializers.py:1227 +#: part/serializers.py:1280 msgid "Generate report file containing calculated stocktake data" msgstr "" -#: part/serializers.py:1232 +#: part/serializers.py:1285 msgid "Update Parts" msgstr "" -#: part/serializers.py:1233 +#: part/serializers.py:1286 msgid "Update specified parts with calculated stocktake data" msgstr "" -#: part/serializers.py:1241 +#: part/serializers.py:1294 msgid "Stocktake functionality is not enabled" msgstr "" -#: part/serializers.py:1347 +#: part/serializers.py:1299 +msgid "Background worker check failed" +msgstr "Nadzor dela v ozadju neuspel" + +#: part/serializers.py:1401 msgid "Override calculated value for minimum price" msgstr "" -#: part/serializers.py:1354 +#: part/serializers.py:1408 msgid "Minimum price currency" msgstr "" -#: part/serializers.py:1362 +#: part/serializers.py:1416 msgid "Override calculated value for maximum price" msgstr "" -#: part/serializers.py:1369 +#: part/serializers.py:1423 msgid "Maximum price currency" msgstr "" -#: part/serializers.py:1398 +#: part/serializers.py:1452 msgid "Update" msgstr "" -#: part/serializers.py:1399 +#: part/serializers.py:1453 msgid "Update pricing for this part" msgstr "" -#: part/serializers.py:1422 +#: part/serializers.py:1476 #, python-brace-format msgid "Could not convert from provided currencies to {default_currency}" msgstr "" -#: part/serializers.py:1429 +#: part/serializers.py:1483 msgid "Minimum price must not be greater than maximum price" msgstr "" -#: part/serializers.py:1432 +#: part/serializers.py:1486 msgid "Maximum price must not be less than minimum price" msgstr "" -#: part/serializers.py:1576 +#: part/serializers.py:1634 msgid "Select the parent assembly" msgstr "" -#: part/serializers.py:1585 +#: part/serializers.py:1643 msgid "Component Name" msgstr "" -#: part/serializers.py:1588 +#: part/serializers.py:1646 msgid "Component IPN" msgstr "" -#: part/serializers.py:1591 +#: part/serializers.py:1649 msgid "Component Description" msgstr "" -#: part/serializers.py:1597 +#: part/serializers.py:1655 msgid "Select the component part" msgstr "" -#: part/serializers.py:1606 part/templates/part/part_base.html:235 +#: part/serializers.py:1664 part/templates/part/part_base.html:243 #: templates/js/translated/bom.js:1219 msgid "Can Build" msgstr "" -#: part/serializers.py:1837 +#: part/serializers.py:1899 msgid "Select part to copy BOM from" msgstr "" -#: part/serializers.py:1845 +#: part/serializers.py:1907 msgid "Remove Existing Data" msgstr "" -#: part/serializers.py:1846 +#: part/serializers.py:1908 msgid "Remove existing BOM items before copying" msgstr "" -#: part/serializers.py:1851 +#: part/serializers.py:1913 msgid "Include Inherited" msgstr "" -#: part/serializers.py:1852 +#: part/serializers.py:1914 msgid "Include BOM items which are inherited from templated parts" msgstr "" -#: part/serializers.py:1857 +#: part/serializers.py:1919 msgid "Skip Invalid Rows" msgstr "" -#: part/serializers.py:1858 +#: part/serializers.py:1920 msgid "Enable this option to skip invalid rows" msgstr "" -#: part/serializers.py:1863 +#: part/serializers.py:1925 msgid "Copy Substitute Parts" msgstr "" -#: part/serializers.py:1864 +#: part/serializers.py:1926 msgid "Copy substitute parts when duplicate BOM items" msgstr "" -#: part/serializers.py:1901 +#: part/serializers.py:1963 msgid "Clear Existing BOM" msgstr "" -#: part/serializers.py:1902 +#: part/serializers.py:1964 msgid "Delete existing BOM items before uploading" msgstr "" -#: part/serializers.py:1934 +#: part/serializers.py:1996 msgid "No part column specified" msgstr "" -#: part/serializers.py:1978 +#: part/serializers.py:2040 msgid "Multiple matching parts found" msgstr "" -#: part/serializers.py:1981 +#: part/serializers.py:2043 msgid "No matching part found" msgstr "" -#: part/serializers.py:1984 +#: part/serializers.py:2045 msgid "Part is not designated as a component" msgstr "" -#: part/serializers.py:1993 +#: part/serializers.py:2054 msgid "Quantity not provided" msgstr "" -#: part/serializers.py:2001 +#: part/serializers.py:2062 msgid "Invalid quantity" msgstr "" -#: part/serializers.py:2024 +#: part/serializers.py:2085 msgid "At least one BOM item is required" msgstr "" #: part/stocktake.py:224 templates/js/translated/part.js:1073 #: templates/js/translated/part.js:1828 templates/js/translated/part.js:1884 -#: templates/js/translated/purchase_order.js:2154 +#: templates/js/translated/purchase_order.js:2138 msgid "Total Quantity" msgstr "" @@ -7932,9 +8157,9 @@ msgid "Add stocktake information" msgstr "" #: part/templates/part/detail.html:67 part/templates/part/part_sidebar.html:50 -#: stock/admin.py:255 templates/InvenTree/settings/part_stocktake.html:30 +#: stock/admin.py:256 templates/InvenTree/settings/part_stocktake.html:30 #: templates/InvenTree/settings/sidebar.html:53 -#: templates/js/translated/stock.js:2301 users/models.py:204 +#: templates/js/translated/stock.js:2302 users/models.py:204 msgid "Stocktake" msgstr "" @@ -8093,142 +8318,146 @@ msgstr "" msgid "Part List" msgstr "" -#: part/templates/part/part_base.html:25 part/templates/part/part_base.html:29 +#: part/templates/part/part_base.html:26 part/templates/part/part_base.html:30 msgid "You are subscribed to notifications for this part" msgstr "" -#: part/templates/part/part_base.html:33 +#: part/templates/part/part_base.html:34 msgid "Subscribe to notifications for this part" msgstr "" -#: part/templates/part/part_base.html:52 +#: part/templates/part/part_base.html:53 #: stock/templates/stock/item_base.html:62 -#: stock/templates/stock/location.html:71 templates/js/translated/label.js:136 +#: stock/templates/stock/location.html:72 templates/js/translated/label.js:136 msgid "Print Label" msgstr "" -#: part/templates/part/part_base.html:58 +#: part/templates/part/part_base.html:59 msgid "Show pricing information" msgstr "" -#: part/templates/part/part_base.html:63 -#: stock/templates/stock/item_base.html:110 -#: stock/templates/stock/location.html:80 +#: part/templates/part/part_base.html:64 +#: stock/templates/stock/item_base.html:107 +#: stock/templates/stock/location.html:81 msgid "Stock actions" msgstr "" -#: part/templates/part/part_base.html:70 +#: part/templates/part/part_base.html:71 msgid "Count part stock" msgstr "" -#: part/templates/part/part_base.html:76 +#: part/templates/part/part_base.html:77 msgid "Transfer part stock" msgstr "" -#: part/templates/part/part_base.html:91 templates/js/translated/part.js:2299 +#: part/templates/part/part_base.html:92 templates/js/translated/part.js:2299 msgid "Part actions" msgstr "" -#: part/templates/part/part_base.html:94 +#: part/templates/part/part_base.html:95 msgid "Duplicate part" msgstr "" -#: part/templates/part/part_base.html:97 +#: part/templates/part/part_base.html:98 msgid "Edit part" msgstr "" -#: part/templates/part/part_base.html:100 +#: part/templates/part/part_base.html:101 msgid "Delete part" msgstr "" -#: part/templates/part/part_base.html:119 +#: part/templates/part/part_base.html:120 msgid "Part is a template part (variants can be made from this part)" msgstr "" -#: part/templates/part/part_base.html:123 +#: part/templates/part/part_base.html:124 msgid "Part can be assembled from other parts" msgstr "" -#: part/templates/part/part_base.html:127 +#: part/templates/part/part_base.html:128 msgid "Part can be used in assemblies" msgstr "" -#: part/templates/part/part_base.html:131 +#: part/templates/part/part_base.html:132 msgid "Part stock is tracked by serial number" msgstr "" -#: part/templates/part/part_base.html:135 +#: part/templates/part/part_base.html:136 msgid "Part can be purchased from external suppliers" msgstr "" -#: part/templates/part/part_base.html:139 +#: part/templates/part/part_base.html:140 msgid "Part can be sold to customers" msgstr "" -#: part/templates/part/part_base.html:145 +#: part/templates/part/part_base.html:146 msgid "Part is not active" msgstr "" -#: part/templates/part/part_base.html:153 +#: part/templates/part/part_base.html:154 msgid "Part is virtual (not a physical part)" msgstr "" -#: part/templates/part/part_base.html:163 -#: part/templates/part/part_base.html:690 +#: part/templates/part/part_base.html:164 +#: part/templates/part/part_base.html:698 msgid "Show Part Details" msgstr "" #: part/templates/part/part_base.html:218 -#: stock/templates/stock/item_base.html:388 +msgid "Required for Orders" +msgstr "" + +#: part/templates/part/part_base.html:226 +#: stock/templates/stock/item_base.html:385 msgid "Allocated to Build Orders" msgstr "" -#: part/templates/part/part_base.html:227 -#: stock/templates/stock/item_base.html:381 +#: part/templates/part/part_base.html:235 +#: stock/templates/stock/item_base.html:378 msgid "Allocated to Sales Orders" msgstr "" -#: part/templates/part/part_base.html:300 +#: part/templates/part/part_base.html:308 msgid "Minimum stock level" msgstr "" -#: part/templates/part/part_base.html:331 templates/js/translated/bom.js:1071 +#: part/templates/part/part_base.html:339 templates/js/translated/bom.js:1071 #: templates/js/translated/part.js:1271 templates/js/translated/part.js:2463 #: templates/js/translated/pricing.js:391 -#: templates/js/translated/pricing.js:1054 +#: templates/js/translated/pricing.js:1052 msgid "Price Range" msgstr "" -#: part/templates/part/part_base.html:361 +#: part/templates/part/part_base.html:369 msgid "Latest Serial Number" msgstr "" -#: part/templates/part/part_base.html:365 -#: stock/templates/stock/item_base.html:322 +#: part/templates/part/part_base.html:373 +#: stock/templates/stock/item_base.html:319 msgid "Search for serial number" msgstr "" -#: part/templates/part/part_base.html:453 +#: part/templates/part/part_base.html:461 msgid "Part QR Code" msgstr "" -#: part/templates/part/part_base.html:470 +#: part/templates/part/part_base.html:478 msgid "Link Barcode to Part" msgstr "" -#: part/templates/part/part_base.html:520 +#: part/templates/part/part_base.html:528 msgid "Calculate" msgstr "" -#: part/templates/part/part_base.html:537 +#: part/templates/part/part_base.html:545 msgid "Remove associated image from this part" msgstr "" -#: part/templates/part/part_base.html:588 +#: part/templates/part/part_base.html:596 msgid "No matching images found" msgstr "" -#: part/templates/part/part_base.html:684 +#: part/templates/part/part_base.html:692 msgid "Hide Part Details" msgstr "" @@ -8282,13 +8511,13 @@ msgid "Variants" msgstr "" #: part/templates/part/part_sidebar.html:14 -#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:21 +#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:22 #: stock/templates/stock/stock_app_base.html:10 #: templates/InvenTree/search.html:153 #: templates/InvenTree/settings/sidebar.html:51 #: templates/js/translated/part.js:1249 templates/js/translated/part.js:2152 #: templates/js/translated/part.js:2411 templates/js/translated/stock.js:1066 -#: templates/js/translated/stock.js:2155 templates/navbar.html:31 +#: templates/js/translated/stock.js:2156 templates/navbar.html:31 msgid "Stock" msgstr "" @@ -8324,17 +8553,17 @@ msgstr "" #: part/templates/part/prices.html:18 #: templates/InvenTree/settings/settings_staff_js.html:80 #: templates/InvenTree/settings/user.html:24 -#: templates/js/translated/helpers.js:103 +#: templates/js/translated/helpers.js:104 #: templates/js/translated/pricing.js:628 templates/notes_buttons.html:3 #: templates/notes_buttons.html:4 msgid "Edit" msgstr "" -#: part/templates/part/prices.html:28 stock/admin.py:251 -#: stock/templates/stock/item_base.html:446 -#: templates/js/translated/company.js:1703 -#: templates/js/translated/company.js:1713 -#: templates/js/translated/stock.js:2331 +#: part/templates/part/prices.html:28 stock/admin.py:252 +#: stock/templates/stock/item_base.html:443 +#: templates/js/translated/company.js:1704 +#: templates/js/translated/company.js:1714 +#: templates/js/translated/stock.js:2332 msgid "Last Updated" msgstr "" @@ -8406,7 +8635,7 @@ msgid "Update Pricing" msgstr "" #: part/templates/part/stock_count.html:7 -#: templates/js/translated/model_renderers.js:228 +#: templates/js/translated/model_renderers.js:231 #: templates/js/translated/part.js:707 templates/js/translated/part.js:2147 #: templates/js/translated/part.js:2149 msgid "No Stock" @@ -8486,7 +8715,7 @@ msgstr "" msgid "Part Pricing" msgstr "" -#: plugin/api.py:172 +#: plugin/api.py:175 msgid "Plugin cannot be deleted as it is currently active" msgstr "" @@ -8498,78 +8727,85 @@ msgstr "" msgid "No matching action found" msgstr "" -#: plugin/base/barcodes/api.py:125 plugin/base/barcodes/api.py:371 -#: plugin/base/barcodes/api.py:546 +#: plugin/base/barcodes/api.py:203 msgid "No match found for barcode data" msgstr "" -#: plugin/base/barcodes/api.py:129 +#: plugin/base/barcodes/api.py:207 msgid "Match found for barcode data" msgstr "" -#: plugin/base/barcodes/api.py:163 plugin/base/barcodes/serializers.py:45 +#: plugin/base/barcodes/api.py:245 plugin/base/barcodes/serializers.py:72 msgid "Model is not supported" msgstr "" -#: plugin/base/barcodes/api.py:168 +#: plugin/base/barcodes/api.py:250 msgid "Model instance not found" msgstr "" -#: plugin/base/barcodes/api.py:197 -#: templates/js/translated/purchase_order.js:1468 +#: plugin/base/barcodes/api.py:279 +#: templates/js/translated/purchase_order.js:1452 msgid "Barcode matches existing item" msgstr "" -#: plugin/base/barcodes/api.py:336 +#: plugin/base/barcodes/api.py:418 msgid "No matching part data found" msgstr "" -#: plugin/base/barcodes/api.py:353 +#: plugin/base/barcodes/api.py:434 msgid "No matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:357 +#: plugin/base/barcodes/api.py:437 msgid "Multiple matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:381 +#: plugin/base/barcodes/api.py:450 plugin/base/barcodes/api.py:664 +msgid "No matching plugin found for barcode data" +msgstr "" + +#: plugin/base/barcodes/api.py:460 msgid "Matched supplier part" msgstr "" -#: plugin/base/barcodes/api.py:430 +#: plugin/base/barcodes/api.py:525 msgid "Item has already been received" msgstr "" -#: plugin/base/barcodes/api.py:467 +#: plugin/base/barcodes/api.py:563 msgid "No match for supplier barcode" msgstr "" -#: plugin/base/barcodes/api.py:510 +#: plugin/base/barcodes/api.py:612 msgid "Multiple matching line items found" msgstr "" -#: plugin/base/barcodes/api.py:513 +#: plugin/base/barcodes/api.py:615 msgid "No matching line item found" msgstr "" -#: plugin/base/barcodes/api.py:551 plugin/base/barcodes/api.py:558 +#: plugin/base/barcodes/api.py:661 +msgid "No sales order provided" +msgstr "" + +#: plugin/base/barcodes/api.py:670 msgid "Barcode does not match an existing stock item" msgstr "" -#: plugin/base/barcodes/api.py:569 +#: plugin/base/barcodes/api.py:686 msgid "Stock item does not match line item" msgstr "" -#: plugin/base/barcodes/api.py:593 templates/js/translated/build.js:2780 -#: templates/js/translated/sales_order.js:1953 +#: plugin/base/barcodes/api.py:716 templates/js/translated/build.js:2798 +#: templates/js/translated/sales_order.js:1934 msgid "Insufficient stock available" msgstr "" -#: plugin/base/barcodes/api.py:602 +#: plugin/base/barcodes/api.py:729 msgid "Stock item allocated to sales order" msgstr "" -#: plugin/base/barcodes/api.py:606 +#: plugin/base/barcodes/api.py:732 msgid "Not enough information" msgstr "" @@ -8591,75 +8827,75 @@ msgstr "" msgid "Purchase order does not match supplier" msgstr "" -#: plugin/base/barcodes/mixins.py:465 +#: plugin/base/barcodes/mixins.py:467 msgid "Failed to find pending line item for supplier part" msgstr "" -#: plugin/base/barcodes/mixins.py:496 +#: plugin/base/barcodes/mixins.py:498 msgid "Further information required to receive line item" msgstr "" -#: plugin/base/barcodes/mixins.py:504 +#: plugin/base/barcodes/mixins.py:506 msgid "Received purchase order line item" msgstr "" -#: plugin/base/barcodes/serializers.py:21 +#: plugin/base/barcodes/serializers.py:48 msgid "Scanned barcode data" msgstr "" -#: plugin/base/barcodes/serializers.py:30 +#: plugin/base/barcodes/serializers.py:57 msgid "Model name to generate barcode for" msgstr "" -#: plugin/base/barcodes/serializers.py:35 +#: plugin/base/barcodes/serializers.py:62 msgid "Primary key of model object to generate barcode for" msgstr "" -#: plugin/base/barcodes/serializers.py:105 +#: plugin/base/barcodes/serializers.py:132 msgid "Purchase Order to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:111 +#: plugin/base/barcodes/serializers.py:138 msgid "Purchase order is not pending" msgstr "" -#: plugin/base/barcodes/serializers.py:129 +#: plugin/base/barcodes/serializers.py:156 msgid "PurchaseOrder to receive items against" msgstr "" -#: plugin/base/barcodes/serializers.py:135 +#: plugin/base/barcodes/serializers.py:162 msgid "Purchase order has not been placed" msgstr "" -#: plugin/base/barcodes/serializers.py:143 +#: plugin/base/barcodes/serializers.py:170 msgid "Location to receive items into" msgstr "" -#: plugin/base/barcodes/serializers.py:149 +#: plugin/base/barcodes/serializers.py:176 msgid "Cannot select a structural location" msgstr "" -#: plugin/base/barcodes/serializers.py:163 +#: plugin/base/barcodes/serializers.py:190 msgid "Sales Order to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:169 +#: plugin/base/barcodes/serializers.py:196 msgid "Sales order is not pending" msgstr "" -#: plugin/base/barcodes/serializers.py:177 +#: plugin/base/barcodes/serializers.py:204 msgid "Sales order line item to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:184 +#: plugin/base/barcodes/serializers.py:211 msgid "Sales order shipment to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:190 +#: plugin/base/barcodes/serializers.py:217 msgid "Shipment has already been delivered" msgstr "" -#: plugin/base/barcodes/serializers.py:195 +#: plugin/base/barcodes/serializers.py:222 msgid "Quantity to allocate" msgstr "" @@ -8679,6 +8915,42 @@ msgstr "" msgid "No items provided to print" msgstr "" +#: plugin/base/ui/serializers.py:30 +msgid "Plugin Name" +msgstr "" + +#: plugin/base/ui/serializers.py:34 +msgid "Feature Type" +msgstr "" + +#: plugin/base/ui/serializers.py:39 +msgid "Feature Label" +msgstr "" + +#: plugin/base/ui/serializers.py:44 +msgid "Feature Title" +msgstr "" + +#: plugin/base/ui/serializers.py:49 +msgid "Feature Description" +msgstr "" + +#: plugin/base/ui/serializers.py:54 +msgid "Feature Icon" +msgstr "" + +#: plugin/base/ui/serializers.py:58 +msgid "Feature Options" +msgstr "" + +#: plugin/base/ui/serializers.py:61 +msgid "Feature Context" +msgstr "" + +#: plugin/base/ui/serializers.py:64 +msgid "Feature Source (javascript)" +msgstr "" + #: plugin/builtin/barcodes/inventree_barcode.py:27 msgid "InvenTree Barcodes" msgstr "" @@ -8756,7 +9028,7 @@ msgstr "" msgid "URL that is used to send messages to a slack channel" msgstr "" -#: plugin/builtin/integration/core_notifications.py:164 +#: plugin/builtin/integration/core_notifications.py:166 msgid "Open link" msgstr "" @@ -8794,11 +9066,11 @@ msgstr "" msgid "Provides support for printing using a machine" msgstr "" -#: plugin/builtin/labels/inventree_machine.py:149 +#: plugin/builtin/labels/inventree_machine.py:151 msgid "last used" msgstr "" -#: plugin/builtin/labels/inventree_machine.py:166 +#: plugin/builtin/labels/inventree_machine.py:168 msgid "Options" msgstr "" @@ -8822,7 +9094,7 @@ msgstr "" msgid "Print a border around each label" msgstr "" -#: plugin/builtin/labels/label_sheet.py:47 report/models.py:307 +#: plugin/builtin/labels/label_sheet.py:47 report/models.py:315 msgid "Landscape" msgstr "" @@ -8894,19 +9166,19 @@ msgstr "" msgid "The Supplier which acts as 'TME'" msgstr "" -#: plugin/installer.py:194 plugin/installer.py:282 +#: plugin/installer.py:199 plugin/installer.py:282 msgid "Only staff users can administer plugins" msgstr "" -#: plugin/installer.py:197 +#: plugin/installer.py:202 msgid "Plugin installation is disabled" msgstr "" -#: plugin/installer.py:248 +#: plugin/installer.py:246 msgid "Installed plugin successfully" msgstr "" -#: plugin/installer.py:254 +#: plugin/installer.py:251 #, python-brace-format msgid "Installed plugin into {path}" msgstr "" @@ -8943,10 +9215,6 @@ msgstr "" msgid "Plugin Configurations" msgstr "" -#: plugin/models.py:43 users/models.py:100 -msgid "Key" -msgstr "" - #: plugin/models.py:44 msgid "Key of plugin" msgstr "" @@ -8955,7 +9223,7 @@ msgstr "" msgid "PluginName of the plugin" msgstr "" -#: plugin/models.py:59 plugin/serializers.py:90 +#: plugin/models.py:59 plugin/serializers.py:115 msgid "Package Name" msgstr "" @@ -8984,17 +9252,17 @@ msgstr "" msgid "Package Plugin" msgstr "" -#: plugin/models.py:220 report/models.py:474 +#: plugin/models.py:259 report/models.py:482 #: templates/InvenTree/settings/plugin_settings.html:9 #: templates/js/translated/plugin.js:51 msgid "Plugin" msgstr "" -#: plugin/models.py:267 +#: plugin/models.py:306 msgid "Method" msgstr "" -#: plugin/plugin.py:270 +#: plugin/plugin.py:275 msgid "No author found" msgstr "" @@ -9053,81 +9321,157 @@ msgstr "" msgid "InvenTree Contributors" msgstr "" -#: plugin/serializers.py:81 -msgid "Source URL" +#: plugin/samples/integration/user_interface_sample.py:27 +msgid "Enable Part Panels" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:28 +msgid "Enable custom panels for Part views" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:33 +msgid "Enable Purchase Order Panels" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:34 +msgid "Enable custom panels for Purchase Order views" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:39 +msgid "Enable Broken Panels" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:40 +msgid "Enable broken panels for testing" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:45 +msgid "Enable Dynamic Panel" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:46 +msgid "Enable dynamic panels for testing" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:98 +msgid "Part Panel" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:131 +msgid "Broken Dashboard Item" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:133 +msgid "This is a broken dashboard item - it will not render!" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:139 +msgid "Sample Dashboard Item" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:141 +msgid "This is a sample dashboard item. It renders a simple string of HTML content." +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:147 +msgid "Context Dashboard Item" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:161 +msgid "Admin Dashboard Item" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:162 +msgid "This is an admin-only dashboard item." +msgstr "" + +#: plugin/serializers.py:82 +msgid "Source File" msgstr "" #: plugin/serializers.py:83 +msgid "Path to the source file for admin integration" +msgstr "" + +#: plugin/serializers.py:90 +msgid "Optional context data for the admin integration" +msgstr "" + +#: plugin/serializers.py:106 +msgid "Source URL" +msgstr "" + +#: plugin/serializers.py:108 msgid "Source for the package - this can be a custom registry or a VCS path" msgstr "" -#: plugin/serializers.py:92 +#: plugin/serializers.py:117 msgid "Name for the Plugin Package - can also contain a version indicator" msgstr "" -#: plugin/serializers.py:99 +#: plugin/serializers.py:124 #: templates/InvenTree/settings/plugin_settings.html:42 #: templates/js/translated/plugin.js:86 msgid "Version" msgstr "" -#: plugin/serializers.py:101 +#: plugin/serializers.py:126 msgid "Version specifier for the plugin. Leave blank for latest version." msgstr "" -#: plugin/serializers.py:106 +#: plugin/serializers.py:131 msgid "Confirm plugin installation" msgstr "" -#: plugin/serializers.py:108 +#: plugin/serializers.py:133 msgid "This will install this plugin now into the current instance. The instance will go into maintenance." msgstr "" -#: plugin/serializers.py:121 +#: plugin/serializers.py:146 msgid "Installation not confirmed" msgstr "" -#: plugin/serializers.py:123 +#: plugin/serializers.py:148 msgid "Either packagename of URL must be provided" msgstr "" -#: plugin/serializers.py:161 +#: plugin/serializers.py:184 msgid "Full reload" msgstr "" -#: plugin/serializers.py:162 +#: plugin/serializers.py:185 msgid "Perform a full reload of the plugin registry" msgstr "" -#: plugin/serializers.py:168 +#: plugin/serializers.py:191 msgid "Force reload" msgstr "" -#: plugin/serializers.py:170 +#: plugin/serializers.py:193 msgid "Force a reload of the plugin registry, even if it is already loaded" msgstr "" -#: plugin/serializers.py:177 +#: plugin/serializers.py:200 msgid "Collect plugins" msgstr "" -#: plugin/serializers.py:178 +#: plugin/serializers.py:201 msgid "Collect plugins and add them to the registry" msgstr "" -#: plugin/serializers.py:205 +#: plugin/serializers.py:228 msgid "Activate Plugin" msgstr "" -#: plugin/serializers.py:206 +#: plugin/serializers.py:229 msgid "Activate this plugin" msgstr "" -#: plugin/serializers.py:226 +#: plugin/serializers.py:249 msgid "Delete configuration" msgstr "" -#: plugin/serializers.py:227 +#: plugin/serializers.py:250 msgid "Delete the plugin configuration from the database" msgstr "" @@ -9135,11 +9479,11 @@ msgstr "" msgid "No valid objects provided to template" msgstr "" -#: report/api.py:103 report/models.py:438 report/serializers.py:98 -#: report/serializers.py:148 templates/js/translated/purchase_order.js:1817 +#: report/api.py:103 report/models.py:446 report/serializers.py:99 +#: report/serializers.py:149 templates/js/translated/purchase_order.js:1801 #: templates/js/translated/return_order.js:353 -#: templates/js/translated/sales_order.js:887 -#: templates/js/translated/sales_order.js:1047 +#: templates/js/translated/sales_order.js:846 +#: templates/js/translated/sales_order.js:1020 msgid "Items" msgstr "" @@ -9167,7 +9511,11 @@ msgstr "" msgid "Error printing label" msgstr "" -#: report/api.py:375 report/api.py:411 +#: report/api.py:358 +msgid "Report saved at time of printing" +msgstr "" + +#: report/api.py:384 report/api.py:420 #, python-brace-format msgid "Template file '{template}' is missing or does not exist" msgstr "" @@ -9204,135 +9552,143 @@ msgstr "" msgid "Revision number (auto-increments)" msgstr "" -#: report/models.py:202 +#: report/models.py:168 +msgid "Attach to Model on Print" +msgstr "" + +#: report/models.py:170 +msgid "Save report output as an attachment against linked model instance when printing" +msgstr "" + +#: report/models.py:210 msgid "Filename Pattern" msgstr "" -#: report/models.py:203 +#: report/models.py:211 msgid "Pattern for generating filenames" msgstr "" -#: report/models.py:208 +#: report/models.py:216 msgid "Template is enabled" msgstr "" -#: report/models.py:214 +#: report/models.py:222 msgid "Target model type for template" msgstr "" -#: report/models.py:234 +#: report/models.py:242 msgid "Filters" msgstr "" -#: report/models.py:235 +#: report/models.py:243 msgid "Template query filters (comma-separated list of key=value pairs)" msgstr "" -#: report/models.py:294 report/models.py:361 +#: report/models.py:302 report/models.py:369 msgid "Template file" msgstr "" -#: report/models.py:302 +#: report/models.py:310 msgid "Page size for PDF reports" msgstr "" -#: report/models.py:308 +#: report/models.py:316 msgid "Render report in landscape orientation" msgstr "" -#: report/models.py:367 +#: report/models.py:375 msgid "Width [mm]" msgstr "" -#: report/models.py:368 +#: report/models.py:376 msgid "Label width, specified in mm" msgstr "" -#: report/models.py:374 +#: report/models.py:382 msgid "Height [mm]" msgstr "" -#: report/models.py:375 +#: report/models.py:383 msgid "Label height, specified in mm" msgstr "" -#: report/models.py:438 +#: report/models.py:446 msgid "Number of items to process" msgstr "" -#: report/models.py:444 +#: report/models.py:452 msgid "Report generation is complete" msgstr "" -#: report/models.py:448 templates/js/translated/build.js:2349 +#: report/models.py:456 templates/js/translated/build.js:2352 msgid "Progress" msgstr "" -#: report/models.py:448 +#: report/models.py:456 msgid "Report generation progress" msgstr "" -#: report/models.py:456 +#: report/models.py:464 msgid "Report Template" msgstr "" -#: report/models.py:463 report/models.py:486 +#: report/models.py:471 report/models.py:494 msgid "Output File" msgstr "" -#: report/models.py:464 report/models.py:487 +#: report/models.py:472 report/models.py:495 msgid "Generated output file" msgstr "" -#: report/models.py:475 +#: report/models.py:483 msgid "Label output plugin" msgstr "" -#: report/models.py:479 +#: report/models.py:487 msgid "Label Template" msgstr "" -#: report/models.py:502 +#: report/models.py:510 msgid "Snippet" msgstr "" -#: report/models.py:503 +#: report/models.py:511 msgid "Report snippet file" msgstr "" -#: report/models.py:510 +#: report/models.py:518 msgid "Snippet file description" msgstr "" -#: report/models.py:528 +#: report/models.py:536 msgid "Asset" msgstr "" -#: report/models.py:529 +#: report/models.py:537 msgid "Report asset file" msgstr "" -#: report/models.py:536 +#: report/models.py:544 msgid "Asset file description" msgstr "" -#: report/serializers.py:91 +#: report/serializers.py:92 msgid "Select report template" msgstr "" -#: report/serializers.py:99 report/serializers.py:149 +#: report/serializers.py:100 report/serializers.py:150 msgid "List of item primary keys to include in the report" msgstr "" -#: report/serializers.py:132 +#: report/serializers.py:133 msgid "Select label template" msgstr "" -#: report/serializers.py:140 +#: report/serializers.py:141 msgid "Printing Plugin" msgstr "" -#: report/serializers.py:141 +#: report/serializers.py:142 msgid "Select plugin to use for label printing" msgstr "" @@ -9365,9 +9721,9 @@ msgstr "" #: report/templates/report/inventree_sales_order_report.html:30 #: templates/js/translated/order.js:341 templates/js/translated/pricing.js:527 #: templates/js/translated/pricing.js:596 -#: templates/js/translated/pricing.js:834 -#: templates/js/translated/purchase_order.js:2185 -#: templates/js/translated/sales_order.js:1873 +#: templates/js/translated/pricing.js:832 +#: templates/js/translated/purchase_order.js:2169 +#: templates/js/translated/sales_order.js:1854 msgid "Unit Price" msgstr "" @@ -9379,13 +9735,18 @@ msgstr "" #: report/templates/report/inventree_purchase_order_report.html:72 #: report/templates/report/inventree_sales_order_report.html:72 -#: templates/js/translated/purchase_order.js:2087 -#: templates/js/translated/sales_order.js:1842 +#: templates/js/translated/purchase_order.js:2071 +#: templates/js/translated/sales_order.js:1823 #: templates/test_statistics_table.html:8 #: templates/test_statistics_table.html:19 msgid "Total" msgstr "" +#: report/templates/report/inventree_sales_order_shipment_report.html:23 +#: stock/templates/stock/stock_sidebar.html:8 +msgid "Allocations" +msgstr "" + #: report/templates/report/inventree_stock_location_report.html:97 msgid "Stock location items" msgstr "" @@ -9403,15 +9764,13 @@ msgstr "" msgid "Test" msgstr "" -#: report/templates/report/inventree_test_report.html:103 stock/models.py:2544 -msgid "Result" -msgstr "" - #: report/templates/report/inventree_test_report.html:129 +#: templates/js/translated/stock.js:1448 msgid "Pass" msgstr "" #: report/templates/report/inventree_test_report.html:131 +#: templates/js/translated/stock.js:1450 msgid "Fail" msgstr "" @@ -9420,17 +9779,18 @@ msgid "No result (required)" msgstr "" #: report/templates/report/inventree_test_report.html:140 +#: templates/js/translated/stock.js:1455 msgid "No result" msgstr "" #: report/templates/report/inventree_test_report.html:153 -#: stock/serializers.py:599 stock/templates/stock/stock_sidebar.html:16 +#: stock/serializers.py:626 stock/templates/stock/stock_sidebar.html:16 msgid "Installed Items" msgstr "" -#: report/templates/report/inventree_test_report.html:167 stock/admin.py:161 +#: report/templates/report/inventree_test_report.html:167 stock/admin.py:162 #: templates/js/translated/stock.js:706 templates/js/translated/stock.js:877 -#: templates/js/translated/stock.js:3194 +#: templates/js/translated/stock.js:3195 msgid "Serial" msgstr "" @@ -9450,67 +9810,67 @@ msgstr "" msgid "company_image tag requires a Company instance" msgstr "" -#: stock/admin.py:51 stock/admin.py:171 +#: stock/admin.py:51 stock/admin.py:172 msgid "Location ID" msgstr "" -#: stock/admin.py:63 stock/templates/stock/location.html:128 -#: stock/templates/stock/location.html:134 +#: stock/admin.py:63 stock/templates/stock/location.html:129 +#: stock/templates/stock/location.html:135 msgid "Location Path" msgstr "" -#: stock/admin.py:148 +#: stock/admin.py:149 msgid "Stock Item ID" msgstr "" -#: stock/admin.py:167 +#: stock/admin.py:168 msgid "Status Code" msgstr "" -#: stock/admin.py:179 +#: stock/admin.py:180 msgid "Supplier Part ID" msgstr "" -#: stock/admin.py:184 +#: stock/admin.py:185 msgid "Supplier Part SKU" msgstr "" -#: stock/admin.py:189 +#: stock/admin.py:190 msgid "Supplier ID" msgstr "" -#: stock/admin.py:200 +#: stock/admin.py:201 msgid "Customer ID" msgstr "" -#: stock/admin.py:205 stock/models.py:825 -#: stock/templates/stock/item_base.html:354 +#: stock/admin.py:206 stock/models.py:902 +#: stock/templates/stock/item_base.html:351 msgid "Installed In" msgstr "" -#: stock/admin.py:210 +#: stock/admin.py:211 msgid "Build ID" msgstr "" -#: stock/admin.py:220 +#: stock/admin.py:221 msgid "Sales Order ID" msgstr "" -#: stock/admin.py:225 +#: stock/admin.py:226 msgid "Purchase Order ID" msgstr "" -#: stock/admin.py:240 +#: stock/admin.py:241 msgid "Review Needed" msgstr "" -#: stock/admin.py:245 +#: stock/admin.py:246 msgid "Delete on Deplete" msgstr "" -#: stock/admin.py:260 stock/models.py:919 -#: stock/templates/stock/item_base.html:433 -#: templates/js/translated/stock.js:2315 users/models.py:124 +#: stock/admin.py:261 stock/models.py:996 +#: stock/templates/stock/item_base.html:430 +#: templates/js/translated/stock.js:2316 users/models.py:124 msgid "Expiry Date" msgstr "" @@ -9526,11 +9886,11 @@ msgstr "" msgid "Include sub-locations in filtered results" msgstr "" -#: stock/api.py:367 stock/serializers.py:1186 +#: stock/api.py:366 stock/serializers.py:1217 msgid "Parent Location" msgstr "" -#: stock/api.py:368 +#: stock/api.py:367 msgid "Filter by parent location" msgstr "" @@ -9550,8 +9910,8 @@ msgstr "" msgid "Expiry date after" msgstr "" -#: stock/api.py:840 stock/serializers.py:604 -#: stock/templates/stock/item_base.html:439 +#: stock/api.py:840 stock/serializers.py:631 +#: stock/templates/stock/item_base.html:436 #: templates/js/translated/table_filters.js:448 msgid "Stale" msgstr "" @@ -9560,594 +9920,598 @@ msgstr "" msgid "Quantity is required" msgstr "" -#: stock/api.py:933 +#: stock/api.py:932 msgid "Valid part must be supplied" msgstr "" -#: stock/api.py:964 +#: stock/api.py:959 msgid "The given supplier part does not exist" msgstr "" -#: stock/api.py:974 +#: stock/api.py:969 msgid "The supplier part has a pack size defined, but flag use_pack_size not set" msgstr "" -#: stock/api.py:1005 +#: stock/api.py:996 msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "" -#: stock/models.py:64 +#: stock/models.py:70 msgid "Stock Location type" msgstr "" -#: stock/models.py:65 +#: stock/models.py:71 msgid "Stock Location types" msgstr "" -#: stock/models.py:91 +#: stock/models.py:97 msgid "Default icon for all locations that have no icon set (optional)" msgstr "" -#: stock/models.py:131 stock/models.py:807 -#: stock/templates/stock/location.html:17 +#: stock/models.py:137 stock/models.py:884 +#: stock/templates/stock/location.html:18 #: stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "" -#: stock/models.py:132 stock/templates/stock/location.html:183 +#: stock/models.py:138 stock/templates/stock/location.html:184 #: templates/InvenTree/search.html:166 templates/js/translated/search.js:178 #: users/models.py:205 msgid "Stock Locations" msgstr "" -#: stock/models.py:180 stock/models.py:968 -#: stock/templates/stock/item_base.html:247 +#: stock/models.py:186 stock/models.py:1045 +#: stock/templates/stock/item_base.html:244 msgid "Owner" msgstr "" -#: stock/models.py:181 stock/models.py:969 +#: stock/models.py:187 stock/models.py:1046 msgid "Select Owner" msgstr "" -#: stock/models.py:189 +#: stock/models.py:195 msgid "Stock items may not be directly located into a structural stock locations, but may be located to child locations." msgstr "" -#: stock/models.py:196 templates/js/translated/stock.js:2865 +#: stock/models.py:202 templates/js/translated/stock.js:2866 #: templates/js/translated/table_filters.js:250 msgid "External" msgstr "" -#: stock/models.py:197 +#: stock/models.py:203 msgid "This is an external stock location" msgstr "" -#: stock/models.py:203 templates/js/translated/stock.js:2874 +#: stock/models.py:209 templates/js/translated/stock.js:2875 #: templates/js/translated/table_filters.js:253 msgid "Location type" msgstr "" -#: stock/models.py:207 +#: stock/models.py:213 msgid "Stock location type of this location" msgstr "" -#: stock/models.py:279 +#: stock/models.py:285 msgid "You cannot make this stock location structural because some stock items are already located into it!" msgstr "" -#: stock/models.py:664 +#: stock/models.py:492 +msgid "Part must be specified" +msgstr "" + +#: stock/models.py:741 msgid "Stock items cannot be located into structural stock locations!" msgstr "" -#: stock/models.py:691 stock/serializers.py:480 +#: stock/models.py:768 stock/serializers.py:492 msgid "Stock item cannot be created for virtual parts" msgstr "" -#: stock/models.py:708 +#: stock/models.py:785 #, python-brace-format msgid "Part type ('{self.supplier_part.part}') must be {self.part}" msgstr "" -#: stock/models.py:718 stock/models.py:731 +#: stock/models.py:795 stock/models.py:808 msgid "Quantity must be 1 for item with a serial number" msgstr "" -#: stock/models.py:721 +#: stock/models.py:798 msgid "Serial number cannot be set if quantity greater than 1" msgstr "" -#: stock/models.py:743 +#: stock/models.py:820 msgid "Item cannot belong to itself" msgstr "" -#: stock/models.py:748 +#: stock/models.py:825 msgid "Item must have a build reference if is_building=True" msgstr "" -#: stock/models.py:761 +#: stock/models.py:838 msgid "Build reference does not point to the same part object" msgstr "" -#: stock/models.py:777 +#: stock/models.py:854 msgid "Parent Stock Item" msgstr "" -#: stock/models.py:789 +#: stock/models.py:866 msgid "Base part" msgstr "" -#: stock/models.py:799 +#: stock/models.py:876 msgid "Select a matching supplier part for this stock item" msgstr "" -#: stock/models.py:811 +#: stock/models.py:888 msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:819 stock/serializers.py:1580 +#: stock/models.py:896 stock/serializers.py:1611 msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:830 +#: stock/models.py:907 msgid "Is this item installed in another item?" msgstr "" -#: stock/models.py:849 +#: stock/models.py:926 msgid "Serial number for this item" msgstr "" -#: stock/models.py:863 stock/serializers.py:1563 +#: stock/models.py:940 stock/serializers.py:1594 msgid "Batch code for this stock item" msgstr "" -#: stock/models.py:868 +#: stock/models.py:945 msgid "Stock Quantity" msgstr "" -#: stock/models.py:878 +#: stock/models.py:955 msgid "Source Build" msgstr "" -#: stock/models.py:881 +#: stock/models.py:958 msgid "Build for this stock item" msgstr "" -#: stock/models.py:888 stock/templates/stock/item_base.html:363 +#: stock/models.py:965 stock/templates/stock/item_base.html:360 msgid "Consumed By" msgstr "" -#: stock/models.py:891 +#: stock/models.py:968 msgid "Build order which consumed this stock item" msgstr "" -#: stock/models.py:900 +#: stock/models.py:977 msgid "Source Purchase Order" msgstr "" -#: stock/models.py:904 +#: stock/models.py:981 msgid "Purchase order for this stock item" msgstr "" -#: stock/models.py:910 +#: stock/models.py:987 msgid "Destination Sales Order" msgstr "" -#: stock/models.py:921 +#: stock/models.py:998 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "" -#: stock/models.py:939 +#: stock/models.py:1016 msgid "Delete on deplete" msgstr "" -#: stock/models.py:940 +#: stock/models.py:1017 msgid "Delete this Stock Item when stock is depleted" msgstr "" -#: stock/models.py:960 +#: stock/models.py:1037 msgid "Single unit purchase price at time of purchase" msgstr "" -#: stock/models.py:991 +#: stock/models.py:1068 msgid "Converted to part" msgstr "" -#: stock/models.py:1511 +#: stock/models.py:1600 msgid "Part is not set as trackable" msgstr "" -#: stock/models.py:1517 +#: stock/models.py:1606 msgid "Quantity must be integer" msgstr "" -#: stock/models.py:1525 +#: stock/models.py:1614 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({self.quantity})" msgstr "" -#: stock/models.py:1531 -msgid "Serial numbers must be a list of integers" +#: stock/models.py:1620 +msgid "Serial numbers must be provided as a list" msgstr "" -#: stock/models.py:1536 +#: stock/models.py:1625 msgid "Quantity does not match serial numbers" msgstr "" -#: stock/models.py:1544 stock/serializers.py:726 -msgid "Serial numbers already exist" -msgstr "" - -#: stock/models.py:1641 +#: stock/models.py:1747 stock/models.py:2563 msgid "Test template does not exist" msgstr "" -#: stock/models.py:1659 +#: stock/models.py:1765 msgid "Stock item has been assigned to a sales order" msgstr "" -#: stock/models.py:1663 +#: stock/models.py:1769 msgid "Stock item is installed in another item" msgstr "" -#: stock/models.py:1666 +#: stock/models.py:1772 msgid "Stock item contains other items" msgstr "" -#: stock/models.py:1669 +#: stock/models.py:1775 msgid "Stock item has been assigned to a customer" msgstr "" -#: stock/models.py:1672 +#: stock/models.py:1778 msgid "Stock item is currently in production" msgstr "" -#: stock/models.py:1675 +#: stock/models.py:1781 msgid "Serialized stock cannot be merged" msgstr "" -#: stock/models.py:1682 stock/serializers.py:1469 +#: stock/models.py:1788 stock/serializers.py:1500 msgid "Duplicate stock items" msgstr "" -#: stock/models.py:1686 +#: stock/models.py:1792 msgid "Stock items must refer to the same part" msgstr "" -#: stock/models.py:1694 +#: stock/models.py:1800 msgid "Stock items must refer to the same supplier part" msgstr "" -#: stock/models.py:1699 +#: stock/models.py:1805 msgid "Stock status codes must match" msgstr "" -#: stock/models.py:1960 +#: stock/models.py:2066 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:2343 +#: stock/models.py:2462 msgid "Stock Item Tracking" msgstr "" -#: stock/models.py:2376 +#: stock/models.py:2495 msgid "Entry notes" msgstr "" -#: stock/models.py:2416 +#: stock/models.py:2535 msgid "Stock Item Test Result" msgstr "" -#: stock/models.py:2449 +#: stock/models.py:2566 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:2454 +#: stock/models.py:2570 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:2459 +#: stock/models.py:2575 msgid "Invalid value for this test" msgstr "" -#: stock/models.py:2544 +#: stock/models.py:2660 msgid "Test result" msgstr "" -#: stock/models.py:2551 +#: stock/models.py:2667 msgid "Test output value" msgstr "" -#: stock/models.py:2559 +#: stock/models.py:2675 stock/serializers.py:245 msgid "Test result attachment" msgstr "" -#: stock/models.py:2563 +#: stock/models.py:2679 msgid "Test notes" msgstr "" -#: stock/models.py:2571 templates/js/translated/stock.js:1633 +#: stock/models.py:2687 templates/js/translated/stock.js:1633 msgid "Test station" msgstr "" -#: stock/models.py:2572 +#: stock/models.py:2688 msgid "The identifier of the test station where the test was performed" msgstr "" -#: stock/models.py:2578 +#: stock/models.py:2694 msgid "Started" msgstr "" -#: stock/models.py:2579 +#: stock/models.py:2695 msgid "The timestamp of the test start" msgstr "" -#: stock/models.py:2585 +#: stock/models.py:2701 msgid "Finished" msgstr "" -#: stock/models.py:2586 +#: stock/models.py:2702 msgid "The timestamp of the test finish" msgstr "" -#: stock/serializers.py:76 +#: stock/serializers.py:77 msgid "Generated batch code" msgstr "" -#: stock/serializers.py:85 +#: stock/serializers.py:86 msgid "Select build order" msgstr "" -#: stock/serializers.py:94 +#: stock/serializers.py:95 msgid "Select stock item to generate batch code for" msgstr "" -#: stock/serializers.py:103 +#: stock/serializers.py:104 msgid "Select location to generate batch code for" msgstr "" -#: stock/serializers.py:112 +#: stock/serializers.py:113 msgid "Select part to generate batch code for" msgstr "" -#: stock/serializers.py:121 +#: stock/serializers.py:122 msgid "Select purchase order" msgstr "" -#: stock/serializers.py:128 +#: stock/serializers.py:129 msgid "Enter quantity for batch code" msgstr "" -#: stock/serializers.py:151 +#: stock/serializers.py:152 msgid "Generated serial number" msgstr "" -#: stock/serializers.py:160 +#: stock/serializers.py:161 msgid "Select part to generate serial number for" msgstr "" -#: stock/serializers.py:168 +#: stock/serializers.py:169 msgid "Quantity of serial numbers to generate" msgstr "" -#: stock/serializers.py:233 +#: stock/serializers.py:234 msgid "Test template for this result" msgstr "" -#: stock/serializers.py:254 +#: stock/serializers.py:258 msgid "Template ID or test name must be provided" msgstr "" -#: stock/serializers.py:286 +#: stock/serializers.py:290 msgid "The test finished time cannot be earlier than the test started time" msgstr "" -#: stock/serializers.py:323 +#: stock/serializers.py:327 msgid "Serial number is too large" msgstr "" -#: stock/serializers.py:452 stock/templates/stock/item_base.html:193 +#: stock/serializers.py:462 stock/templates/stock/item_base.html:190 msgid "Parent Item" msgstr "" -#: stock/serializers.py:453 +#: stock/serializers.py:463 msgid "Parent stock item" msgstr "" -#: stock/serializers.py:472 +#: stock/serializers.py:484 msgid "Use pack size when adding: the quantity defined is the number of packs" msgstr "" -#: stock/serializers.py:596 stock/templates/stock/item_base.html:437 +#: stock/serializers.py:623 stock/templates/stock/item_base.html:434 #: templates/js/translated/table_filters.js:442 users/models.py:174 msgid "Expired" msgstr "" -#: stock/serializers.py:602 stock/templates/stock/stock_sidebar.html:20 +#: stock/serializers.py:629 stock/templates/stock/stock_sidebar.html:20 msgid "Child Items" msgstr "" -#: stock/serializers.py:606 +#: stock/serializers.py:633 msgid "Tracking Items" msgstr "" -#: stock/serializers.py:612 +#: stock/serializers.py:639 msgid "Purchase price of this stock item, per unit or pack" msgstr "" -#: stock/serializers.py:631 +#: stock/serializers.py:658 msgid "Minimum Pricing" msgstr "" -#: stock/serializers.py:637 +#: stock/serializers.py:664 msgid "Maximum Pricing" msgstr "" -#: stock/serializers.py:661 +#: stock/serializers.py:688 msgid "Enter number of stock items to serialize" msgstr "" -#: stock/serializers.py:674 +#: stock/serializers.py:701 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({q})" msgstr "" -#: stock/serializers.py:681 +#: stock/serializers.py:708 msgid "Enter serial numbers for new items" msgstr "" -#: stock/serializers.py:692 stock/serializers.py:1426 stock/serializers.py:1682 +#: stock/serializers.py:719 stock/serializers.py:1457 stock/serializers.py:1713 msgid "Destination stock location" msgstr "" -#: stock/serializers.py:699 +#: stock/serializers.py:726 msgid "Optional note field" msgstr "" -#: stock/serializers.py:709 +#: stock/serializers.py:736 msgid "Serial numbers cannot be assigned to this part" msgstr "" -#: stock/serializers.py:764 +#: stock/serializers.py:756 +msgid "Serial numbers already exist" +msgstr "" + +#: stock/serializers.py:795 msgid "Select stock item to install" msgstr "" -#: stock/serializers.py:771 +#: stock/serializers.py:802 msgid "Quantity to Install" msgstr "" -#: stock/serializers.py:772 +#: stock/serializers.py:803 msgid "Enter the quantity of items to install" msgstr "" -#: stock/serializers.py:777 stock/serializers.py:857 stock/serializers.py:983 -#: stock/serializers.py:1033 +#: stock/serializers.py:808 stock/serializers.py:888 stock/serializers.py:1014 +#: stock/serializers.py:1064 msgid "Add transaction note (optional)" msgstr "" -#: stock/serializers.py:785 +#: stock/serializers.py:816 msgid "Quantity to install must be at least 1" msgstr "" -#: stock/serializers.py:793 +#: stock/serializers.py:824 msgid "Stock item is unavailable" msgstr "" -#: stock/serializers.py:804 +#: stock/serializers.py:835 msgid "Selected part is not in the Bill of Materials" msgstr "" -#: stock/serializers.py:817 +#: stock/serializers.py:848 msgid "Quantity to install must not exceed available quantity" msgstr "" -#: stock/serializers.py:852 +#: stock/serializers.py:883 msgid "Destination location for uninstalled item" msgstr "" -#: stock/serializers.py:903 +#: stock/serializers.py:934 msgid "Unsupported statistic type: " msgstr "" -#: stock/serializers.py:917 +#: stock/serializers.py:948 msgid "Select part to convert stock item into" msgstr "" -#: stock/serializers.py:930 +#: stock/serializers.py:961 msgid "Selected part is not a valid option for conversion" msgstr "" -#: stock/serializers.py:947 +#: stock/serializers.py:978 msgid "Cannot convert stock item with assigned SupplierPart" msgstr "" -#: stock/serializers.py:978 +#: stock/serializers.py:1009 msgid "Destination location for returned item" msgstr "" -#: stock/serializers.py:1015 +#: stock/serializers.py:1046 msgid "Select stock items to change status" msgstr "" -#: stock/serializers.py:1021 +#: stock/serializers.py:1052 msgid "No stock items selected" msgstr "" -#: stock/serializers.py:1117 stock/serializers.py:1194 -#: stock/templates/stock/location.html:162 -#: stock/templates/stock/location.html:219 +#: stock/serializers.py:1148 stock/serializers.py:1225 +#: stock/templates/stock/location.html:163 +#: stock/templates/stock/location.html:220 #: stock/templates/stock/location_sidebar.html:5 msgid "Sublocations" msgstr "" -#: stock/serializers.py:1187 templates/js/translated/stock.js:160 +#: stock/serializers.py:1218 templates/js/translated/stock.js:160 msgid "Parent stock location" msgstr "" -#: stock/serializers.py:1298 +#: stock/serializers.py:1329 msgid "Part must be salable" msgstr "" -#: stock/serializers.py:1302 +#: stock/serializers.py:1333 msgid "Item is allocated to a sales order" msgstr "" -#: stock/serializers.py:1306 +#: stock/serializers.py:1337 msgid "Item is allocated to a build order" msgstr "" -#: stock/serializers.py:1330 +#: stock/serializers.py:1361 msgid "Customer to assign stock items" msgstr "" -#: stock/serializers.py:1336 +#: stock/serializers.py:1367 msgid "Selected company is not a customer" msgstr "" -#: stock/serializers.py:1344 +#: stock/serializers.py:1375 msgid "Stock assignment notes" msgstr "" -#: stock/serializers.py:1354 stock/serializers.py:1608 +#: stock/serializers.py:1385 stock/serializers.py:1639 msgid "A list of stock items must be provided" msgstr "" -#: stock/serializers.py:1433 +#: stock/serializers.py:1464 msgid "Stock merging notes" msgstr "" -#: stock/serializers.py:1438 +#: stock/serializers.py:1469 msgid "Allow mismatched suppliers" msgstr "" -#: stock/serializers.py:1439 +#: stock/serializers.py:1470 msgid "Allow stock items with different supplier parts to be merged" msgstr "" -#: stock/serializers.py:1444 +#: stock/serializers.py:1475 msgid "Allow mismatched status" msgstr "" -#: stock/serializers.py:1445 +#: stock/serializers.py:1476 msgid "Allow stock items with different status codes to be merged" msgstr "" -#: stock/serializers.py:1455 +#: stock/serializers.py:1486 msgid "At least two stock items must be provided" msgstr "" -#: stock/serializers.py:1522 +#: stock/serializers.py:1553 msgid "No Change" msgstr "" -#: stock/serializers.py:1551 +#: stock/serializers.py:1582 msgid "StockItem primary key value" msgstr "" -#: stock/serializers.py:1570 +#: stock/serializers.py:1601 msgid "Stock item status code" msgstr "" -#: stock/serializers.py:1598 +#: stock/serializers.py:1629 msgid "Stock transaction notes" msgstr "" @@ -10175,107 +10539,107 @@ msgstr "Zavrnjeno" msgid "Quarantined" msgstr "Dano v karanteno" -#: stock/status_codes.py:40 +#: stock/status_codes.py:44 msgid "Legacy stock tracking entry" msgstr "Vnos zaloge postavke" -#: stock/status_codes.py:42 templates/js/translated/stock.js:550 +#: stock/status_codes.py:46 templates/js/translated/stock.js:550 msgid "Stock item created" msgstr "Postavka zaloge ustvarjena" -#: stock/status_codes.py:45 +#: stock/status_codes.py:49 msgid "Edited stock item" msgstr "Urejena postavka zaloge" -#: stock/status_codes.py:46 +#: stock/status_codes.py:50 msgid "Assigned serial number" msgstr "Dodeljena serijska številka" -#: stock/status_codes.py:49 +#: stock/status_codes.py:53 msgid "Stock counted" msgstr "Zaloga prešteta" -#: stock/status_codes.py:50 +#: stock/status_codes.py:54 msgid "Stock manually added" msgstr "Zaloga ročno dodana" -#: stock/status_codes.py:51 +#: stock/status_codes.py:55 msgid "Stock manually removed" msgstr "Zaloga ročno odstranjena" -#: stock/status_codes.py:54 +#: stock/status_codes.py:58 msgid "Location changed" msgstr "Lokacija spremenjena" -#: stock/status_codes.py:55 +#: stock/status_codes.py:59 msgid "Stock updated" msgstr "Zaloga posodobljena" -#: stock/status_codes.py:58 +#: stock/status_codes.py:62 msgid "Installed into assembly" msgstr "Vstavljeno v sestavo" -#: stock/status_codes.py:59 +#: stock/status_codes.py:63 msgid "Removed from assembly" msgstr "Odstranjeno iz sestave" -#: stock/status_codes.py:61 +#: stock/status_codes.py:65 msgid "Installed component item" msgstr "Vstavljena postavka komponente" -#: stock/status_codes.py:62 +#: stock/status_codes.py:66 msgid "Removed component item" msgstr "Odstranjena postavka komponente" -#: stock/status_codes.py:65 +#: stock/status_codes.py:69 msgid "Split from parent item" msgstr "Razdeljena od nadrejene postavke" -#: stock/status_codes.py:66 +#: stock/status_codes.py:70 msgid "Split child item" msgstr "Razdeljena podrejena postavka" -#: stock/status_codes.py:69 templates/js/translated/stock.js:1943 +#: stock/status_codes.py:73 templates/js/translated/stock.js:1944 msgid "Merged stock items" msgstr "Združena zaloga postavk" -#: stock/status_codes.py:72 +#: stock/status_codes.py:76 msgid "Converted to variant" msgstr "Spremenjeno v varianto" -#: stock/status_codes.py:75 +#: stock/status_codes.py:79 msgid "Build order output created" msgstr "Nalog za izgradnjo ustvarjen" -#: stock/status_codes.py:76 +#: stock/status_codes.py:80 msgid "Build order output completed" msgstr "Nalog za izgradnjo končan" -#: stock/status_codes.py:77 +#: stock/status_codes.py:81 msgid "Build order output rejected" msgstr "Nalog za izgradnjo zavrnjen" -#: stock/status_codes.py:78 templates/js/translated/stock.js:1849 +#: stock/status_codes.py:82 templates/js/translated/stock.js:1849 msgid "Consumed by build order" msgstr "Porabljeno v nalogu za izgradnjo" -#: stock/status_codes.py:81 +#: stock/status_codes.py:85 msgid "Shipped against Sales Order" msgstr "Poslano preko prodajnega naročila" -#: stock/status_codes.py:84 +#: stock/status_codes.py:88 msgid "Received against Purchase Order" msgstr "Prejeto preko nabavnega naročila" -#: stock/status_codes.py:87 +#: stock/status_codes.py:91 msgid "Returned against Return Order" msgstr "Vrnjeno preko naročila za vračilo" -#: stock/status_codes.py:90 templates/js/translated/table_filters.js:382 +#: stock/status_codes.py:94 templates/js/translated/table_filters.js:382 msgid "Sent to customer" msgstr "Posalno stranki" -#: stock/status_codes.py:91 +#: stock/status_codes.py:95 msgid "Returned from customer" msgstr "Vrnjeno od stranke" @@ -10296,7 +10660,7 @@ msgstr "" msgid "Test Data" msgstr "" -#: stock/templates/stock/item.html:85 stock/templates/stock/item_base.html:65 +#: stock/templates/stock/item.html:85 msgid "Test Report" msgstr "" @@ -10316,7 +10680,7 @@ msgstr "" msgid "Installed Stock Items" msgstr "" -#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3354 +#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3355 msgid "Install Stock Item" msgstr "" @@ -10328,208 +10692,212 @@ msgstr "" msgid "Add Test Result" msgstr "" -#: stock/templates/stock/item_base.html:33 +#: stock/templates/stock/item_base.html:34 msgid "Locate stock item" msgstr "" -#: stock/templates/stock/item_base.html:51 +#: stock/templates/stock/item_base.html:52 msgid "Scan to Location" msgstr "" #: stock/templates/stock/item_base.html:59 -#: stock/templates/stock/location.html:67 +#: stock/templates/stock/location.html:68 #: templates/js/translated/filters.js:434 msgid "Printing actions" msgstr "" -#: stock/templates/stock/item_base.html:75 +#: stock/templates/stock/item_base.html:64 templates/js/translated/report.js:49 +msgid "Print Report" +msgstr "" + +#: stock/templates/stock/item_base.html:72 msgid "Stock adjustment actions" msgstr "" -#: stock/templates/stock/item_base.html:79 -#: stock/templates/stock/location.html:87 templates/js/translated/stock.js:1909 +#: stock/templates/stock/item_base.html:76 +#: stock/templates/stock/location.html:88 templates/js/translated/stock.js:1909 msgid "Count stock" msgstr "" -#: stock/templates/stock/item_base.html:81 +#: stock/templates/stock/item_base.html:78 #: templates/js/translated/stock.js:1891 msgid "Add stock" msgstr "" -#: stock/templates/stock/item_base.html:82 +#: stock/templates/stock/item_base.html:79 #: templates/js/translated/stock.js:1900 msgid "Remove stock" msgstr "" -#: stock/templates/stock/item_base.html:85 +#: stock/templates/stock/item_base.html:82 msgid "Serialize stock" msgstr "" -#: stock/templates/stock/item_base.html:88 -#: stock/templates/stock/location.html:93 templates/js/translated/stock.js:1918 +#: stock/templates/stock/item_base.html:85 +#: stock/templates/stock/location.html:94 templates/js/translated/stock.js:1918 msgid "Transfer stock" msgstr "" -#: stock/templates/stock/item_base.html:91 -#: templates/js/translated/stock.js:1972 +#: stock/templates/stock/item_base.html:88 +#: templates/js/translated/stock.js:1973 msgid "Assign to customer" msgstr "" -#: stock/templates/stock/item_base.html:94 +#: stock/templates/stock/item_base.html:91 msgid "Return to stock" msgstr "" -#: stock/templates/stock/item_base.html:97 +#: stock/templates/stock/item_base.html:94 msgid "Uninstall stock item" msgstr "" -#: stock/templates/stock/item_base.html:97 +#: stock/templates/stock/item_base.html:94 msgid "Uninstall" msgstr "" -#: stock/templates/stock/item_base.html:101 +#: stock/templates/stock/item_base.html:98 msgid "Install stock item" msgstr "" -#: stock/templates/stock/item_base.html:101 +#: stock/templates/stock/item_base.html:98 msgid "Install" msgstr "" -#: stock/templates/stock/item_base.html:115 +#: stock/templates/stock/item_base.html:112 msgid "Convert to variant" msgstr "" -#: stock/templates/stock/item_base.html:118 +#: stock/templates/stock/item_base.html:115 msgid "Duplicate stock item" msgstr "" -#: stock/templates/stock/item_base.html:120 +#: stock/templates/stock/item_base.html:117 msgid "Edit stock item" msgstr "" -#: stock/templates/stock/item_base.html:123 +#: stock/templates/stock/item_base.html:120 msgid "Delete stock item" msgstr "" -#: stock/templates/stock/item_base.html:169 templates/InvenTree/search.html:139 -#: templates/js/translated/build.js:2295 templates/navbar.html:38 +#: stock/templates/stock/item_base.html:166 templates/InvenTree/search.html:139 +#: templates/js/translated/build.js:2298 templates/navbar.html:38 msgid "Build" msgstr "Izdelava" -#: stock/templates/stock/item_base.html:211 +#: stock/templates/stock/item_base.html:208 msgid "No manufacturer set" msgstr "" -#: stock/templates/stock/item_base.html:251 +#: stock/templates/stock/item_base.html:248 msgid "You are not in the list of owners of this item. This stock item cannot be edited." msgstr "" -#: stock/templates/stock/item_base.html:252 -#: stock/templates/stock/location.html:146 +#: stock/templates/stock/item_base.html:249 +#: stock/templates/stock/location.html:147 msgid "Read only" msgstr "" -#: stock/templates/stock/item_base.html:265 +#: stock/templates/stock/item_base.html:262 msgid "This stock item is unavailable" msgstr "" -#: stock/templates/stock/item_base.html:271 +#: stock/templates/stock/item_base.html:268 msgid "This stock item is in production and cannot be edited." msgstr "" -#: stock/templates/stock/item_base.html:272 +#: stock/templates/stock/item_base.html:269 msgid "Edit the stock item from the build view." msgstr "" -#: stock/templates/stock/item_base.html:287 +#: stock/templates/stock/item_base.html:284 msgid "This stock item is allocated to Sales Order" msgstr "" -#: stock/templates/stock/item_base.html:295 +#: stock/templates/stock/item_base.html:292 msgid "This stock item is allocated to Build Order" msgstr "" -#: stock/templates/stock/item_base.html:311 +#: stock/templates/stock/item_base.html:308 msgid "This stock item is serialized. It has a unique serial number and the quantity cannot be adjusted" msgstr "" -#: stock/templates/stock/item_base.html:317 +#: stock/templates/stock/item_base.html:314 msgid "previous page" msgstr "" -#: stock/templates/stock/item_base.html:317 +#: stock/templates/stock/item_base.html:314 msgid "Navigate to previous serial number" msgstr "" -#: stock/templates/stock/item_base.html:326 +#: stock/templates/stock/item_base.html:323 msgid "next page" msgstr "" -#: stock/templates/stock/item_base.html:326 +#: stock/templates/stock/item_base.html:323 msgid "Navigate to next serial number" msgstr "" -#: stock/templates/stock/item_base.html:398 -#: templates/js/translated/build.js:2552 +#: stock/templates/stock/item_base.html:395 +#: templates/js/translated/build.js:2559 msgid "No location set" msgstr "" -#: stock/templates/stock/item_base.html:413 +#: stock/templates/stock/item_base.html:410 msgid "Tests" msgstr "" -#: stock/templates/stock/item_base.html:419 +#: stock/templates/stock/item_base.html:416 msgid "This stock item has not passed all required tests" msgstr "" -#: stock/templates/stock/item_base.html:437 +#: stock/templates/stock/item_base.html:434 #, python-format msgid "This StockItem expired on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:439 +#: stock/templates/stock/item_base.html:436 #, python-format msgid "This StockItem expires on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:455 +#: stock/templates/stock/item_base.html:452 msgid "No stocktake performed" msgstr "" -#: stock/templates/stock/item_base.html:504 -#: templates/js/translated/stock.js:2037 +#: stock/templates/stock/item_base.html:501 +#: templates/js/translated/stock.js:2038 msgid "stock item" msgstr "" -#: stock/templates/stock/item_base.html:527 +#: stock/templates/stock/item_base.html:524 msgid "Edit Stock Status" msgstr "" -#: stock/templates/stock/item_base.html:536 +#: stock/templates/stock/item_base.html:533 msgid "Stock Item QR Code" msgstr "" -#: stock/templates/stock/item_base.html:547 +#: stock/templates/stock/item_base.html:544 msgid "Link Barcode to Stock Item" msgstr "" -#: stock/templates/stock/item_base.html:611 +#: stock/templates/stock/item_base.html:608 msgid "Select one of the part variants listed below." msgstr "" -#: stock/templates/stock/item_base.html:614 +#: stock/templates/stock/item_base.html:611 msgid "Warning" msgstr "" -#: stock/templates/stock/item_base.html:615 +#: stock/templates/stock/item_base.html:612 msgid "This action cannot be easily undone" msgstr "" -#: stock/templates/stock/item_base.html:623 +#: stock/templates/stock/item_base.html:620 msgid "Convert Stock Item" msgstr "" -#: stock/templates/stock/item_base.html:656 +#: stock/templates/stock/item_base.html:653 msgid "Return to Stock" msgstr "" @@ -10541,84 +10909,84 @@ msgstr "" msgid "Select quantity to serialize, and unique serial numbers." msgstr "" -#: stock/templates/stock/location.html:35 +#: stock/templates/stock/location.html:36 msgid "Perform stocktake for this stock location" msgstr "" -#: stock/templates/stock/location.html:42 +#: stock/templates/stock/location.html:43 msgid "Locate stock location" msgstr "" -#: stock/templates/stock/location.html:60 +#: stock/templates/stock/location.html:61 msgid "Scan stock items into this location" msgstr "" -#: stock/templates/stock/location.html:60 +#: stock/templates/stock/location.html:61 msgid "Scan In Stock Items" msgstr "" -#: stock/templates/stock/location.html:61 +#: stock/templates/stock/location.html:62 msgid "Scan stock container into this location" msgstr "" -#: stock/templates/stock/location.html:61 +#: stock/templates/stock/location.html:62 msgid "Scan In Container" msgstr "" -#: stock/templates/stock/location.html:72 +#: stock/templates/stock/location.html:73 msgid "Print Location Report" msgstr "" -#: stock/templates/stock/location.html:101 +#: stock/templates/stock/location.html:102 msgid "Location actions" msgstr "" -#: stock/templates/stock/location.html:103 +#: stock/templates/stock/location.html:104 msgid "Edit location" msgstr "" -#: stock/templates/stock/location.html:105 +#: stock/templates/stock/location.html:106 msgid "Delete location" msgstr "" -#: stock/templates/stock/location.html:135 +#: stock/templates/stock/location.html:136 msgid "Top level stock location" msgstr "" -#: stock/templates/stock/location.html:141 +#: stock/templates/stock/location.html:142 msgid "Location Owner" msgstr "" -#: stock/templates/stock/location.html:145 +#: stock/templates/stock/location.html:146 msgid "You are not in the list of owners of this location. This stock location cannot be edited." msgstr "" -#: stock/templates/stock/location.html:173 +#: stock/templates/stock/location.html:174 msgid "Location Type" msgstr "" -#: stock/templates/stock/location.html:223 +#: stock/templates/stock/location.html:224 msgid "Create new stock location" msgstr "" -#: stock/templates/stock/location.html:224 +#: stock/templates/stock/location.html:225 msgid "New Location" msgstr "" -#: stock/templates/stock/location.html:298 -#: templates/js/translated/stock.js:2657 +#: stock/templates/stock/location.html:299 +#: templates/js/translated/stock.js:2658 msgid "stock location" msgstr "" -#: stock/templates/stock/location.html:320 +#: stock/templates/stock/location.html:321 msgid "Scanned stock container into this location" msgstr "" -#: stock/templates/stock/location.html:393 +#: stock/templates/stock/location.html:394 msgid "Stock Location QR Code" msgstr "" -#: stock/templates/stock/location.html:404 +#: stock/templates/stock/location.html:405 msgid "Link Barcode to Stock Location" msgstr "" @@ -10630,10 +10998,6 @@ msgstr "" msgid "Stock Tracking" msgstr "" -#: stock/templates/stock/stock_sidebar.html:8 -msgid "Allocations" -msgstr "" - #: templates/403.html:6 templates/403.html:12 templates/403_csrf.html:7 msgid "Permission Denied" msgstr "" @@ -11107,9 +11471,9 @@ msgid "Rate" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:81 -#: templates/js/translated/forms.js:548 templates/js/translated/helpers.js:108 +#: templates/js/translated/forms.js:548 templates/js/translated/helpers.js:109 #: templates/js/translated/part.js:395 templates/js/translated/pricing.js:629 -#: templates/js/translated/stock.js:252 users/models.py:406 +#: templates/js/translated/stock.js:252 users/models.py:408 msgid "Delete" msgstr "" @@ -11130,7 +11494,7 @@ msgid "No project codes found" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:158 -#: templates/js/translated/build.js:2400 +#: templates/js/translated/build.js:2403 msgid "group" msgstr "" @@ -11196,7 +11560,7 @@ msgid "Delete Location Type" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:503 -#: templates/InvenTree/settings/stock.html:38 +#: templates/InvenTree/settings/stock.html:39 msgid "New Location Type" msgstr "" @@ -11253,7 +11617,7 @@ msgstr "" msgid "Stock Settings" msgstr "" -#: templates/InvenTree/settings/stock.html:34 +#: templates/InvenTree/settings/stock.html:35 msgid "Stock Location Types" msgstr "" @@ -11280,7 +11644,7 @@ msgid "Unverified" msgstr "" #: templates/InvenTree/settings/user.html:80 -#: templates/js/translated/company.js:957 +#: templates/js/translated/company.js:958 msgid "Primary" msgstr "" @@ -11532,7 +11896,7 @@ msgid "Submit Bug Report" msgstr "" #: templates/about.html:91 templates/clip.html:4 -#: templates/js/translated/helpers.js:592 +#: templates/js/translated/helpers.js:598 msgid "copy to clipboard" msgstr "" @@ -11738,23 +12102,24 @@ msgstr "" msgid "Barcode Identifier" msgstr "" -#: templates/base.html:103 +#: templates/base.html:102 msgid "Server Restart Required" msgstr "" -#: templates/base.html:106 +#: templates/base.html:105 msgid "A configuration option has been changed which requires a server restart" msgstr "" -#: templates/base.html:106 templates/base.html:116 +#: templates/base.html:105 templates/base.html:115 +#: templates/socialaccount/authentication_error.html:13 msgid "Contact your system administrator for further information" msgstr "" -#: templates/base.html:113 +#: templates/base.html:112 msgid "Pending Database Migrations" msgstr "" -#: templates/base.html:116 +#: templates/base.html:115 msgid "There are pending database migrations which require attention" msgstr "" @@ -11787,7 +12152,7 @@ msgid "The following parts are low on required stock" msgstr "" #: templates/email/build_order_required_stock.html:18 -#: templates/js/translated/bom.js:1674 templates/js/translated/build.js:2747 +#: templates/js/translated/bom.js:1674 templates/js/translated/build.js:2765 msgid "Required Quantity" msgstr "" @@ -11801,7 +12166,7 @@ msgid "Click on the following link to view this part" msgstr "" #: templates/email/low_stock_notification.html:18 -#: templates/js/translated/part.js:3237 +#: templates/js/translated/part.js:3253 msgid "Minimum Quantity" msgstr "" @@ -12039,7 +12404,7 @@ msgstr "" #: templates/js/translated/bom.js:189 templates/js/translated/bom.js:700 #: templates/js/translated/modals.js:75 templates/js/translated/modals.js:629 #: templates/js/translated/modals.js:757 templates/js/translated/modals.js:1065 -#: templates/js/translated/purchase_order.js:797 templates/modals.html:15 +#: templates/js/translated/purchase_order.js:780 templates/modals.html:15 #: templates/modals.html:27 templates/modals.html:39 templates/modals.html:50 msgid "Close" msgstr "" @@ -12156,7 +12521,7 @@ msgstr "" msgid "Substitutes Available" msgstr "" -#: templates/js/translated/bom.js:950 templates/js/translated/build.js:2673 +#: templates/js/translated/bom.js:950 templates/js/translated/build.js:2682 msgid "Variant stock allowed" msgstr "" @@ -12176,30 +12541,30 @@ msgstr "" msgid "No pricing available" msgstr "" -#: templates/js/translated/bom.js:1184 templates/js/translated/build.js:2812 +#: templates/js/translated/bom.js:1184 templates/js/translated/build.js:2830 msgid "External stock" msgstr "" -#: templates/js/translated/bom.js:1188 templates/js/translated/build.js:2786 -#: templates/js/translated/sales_order.js:1946 +#: templates/js/translated/bom.js:1188 templates/js/translated/build.js:2804 +#: templates/js/translated/sales_order.js:1927 msgid "No Stock Available" msgstr "" -#: templates/js/translated/bom.js:1193 templates/js/translated/build.js:2790 +#: templates/js/translated/bom.js:1193 templates/js/translated/build.js:2808 msgid "Includes variant and substitute stock" msgstr "" -#: templates/js/translated/bom.js:1195 templates/js/translated/build.js:2792 +#: templates/js/translated/bom.js:1195 templates/js/translated/build.js:2810 #: templates/js/translated/part.js:1263 -#: templates/js/translated/sales_order.js:1943 +#: templates/js/translated/sales_order.js:1924 msgid "Includes variant stock" msgstr "" -#: templates/js/translated/bom.js:1197 templates/js/translated/build.js:2794 +#: templates/js/translated/bom.js:1197 templates/js/translated/build.js:2812 msgid "Includes substitute stock" msgstr "" -#: templates/js/translated/bom.js:1225 templates/js/translated/build.js:2777 +#: templates/js/translated/bom.js:1225 templates/js/translated/build.js:2795 msgid "Consumable item" msgstr "" @@ -12231,7 +12596,7 @@ msgstr "" msgid "No BOM items found" msgstr "" -#: templates/js/translated/bom.js:1657 templates/js/translated/build.js:2658 +#: templates/js/translated/bom.js:1657 templates/js/translated/build.js:2667 msgid "Required Part" msgstr "" @@ -12243,396 +12608,396 @@ msgstr "" msgid "Edit Build Order" msgstr "" -#: templates/js/translated/build.js:191 +#: templates/js/translated/build.js:194 msgid "Create Build Order" msgstr "" -#: templates/js/translated/build.js:223 +#: templates/js/translated/build.js:226 msgid "Cancel Build Order" msgstr "" -#: templates/js/translated/build.js:232 +#: templates/js/translated/build.js:235 msgid "Are you sure you wish to cancel this build?" msgstr "" -#: templates/js/translated/build.js:238 +#: templates/js/translated/build.js:241 msgid "Stock items have been allocated to this build order" msgstr "" -#: templates/js/translated/build.js:245 +#: templates/js/translated/build.js:248 msgid "There are incomplete outputs remaining for this build order" msgstr "" -#: templates/js/translated/build.js:297 +#: templates/js/translated/build.js:300 msgid "Build order is ready to be completed" msgstr "" -#: templates/js/translated/build.js:305 +#: templates/js/translated/build.js:308 msgid "This build order cannot be completed as there are incomplete outputs" msgstr "" -#: templates/js/translated/build.js:310 +#: templates/js/translated/build.js:313 msgid "Build Order is incomplete" msgstr "" -#: templates/js/translated/build.js:328 +#: templates/js/translated/build.js:331 msgid "Complete Build Order" msgstr "" -#: templates/js/translated/build.js:369 templates/js/translated/stock.js:127 +#: templates/js/translated/build.js:372 templates/js/translated/stock.js:127 #: templates/js/translated/stock.js:301 msgid "Next available serial number" msgstr "" -#: templates/js/translated/build.js:371 templates/js/translated/stock.js:129 +#: templates/js/translated/build.js:374 templates/js/translated/stock.js:129 #: templates/js/translated/stock.js:303 msgid "Latest serial number" msgstr "" -#: templates/js/translated/build.js:380 +#: templates/js/translated/build.js:383 msgid "The Bill of Materials contains trackable parts" msgstr "" -#: templates/js/translated/build.js:381 +#: templates/js/translated/build.js:384 msgid "Build outputs must be generated individually" msgstr "" -#: templates/js/translated/build.js:389 +#: templates/js/translated/build.js:392 msgid "Trackable parts can have serial numbers specified" msgstr "" -#: templates/js/translated/build.js:390 +#: templates/js/translated/build.js:393 msgid "Enter serial numbers to generate multiple single build outputs" msgstr "" -#: templates/js/translated/build.js:397 +#: templates/js/translated/build.js:400 msgid "Create Build Output" msgstr "" -#: templates/js/translated/build.js:428 +#: templates/js/translated/build.js:431 msgid "Allocate stock items to this build output" msgstr "" -#: templates/js/translated/build.js:436 +#: templates/js/translated/build.js:439 msgid "Deallocate stock from build output" msgstr "" -#: templates/js/translated/build.js:445 +#: templates/js/translated/build.js:448 msgid "Complete build output" msgstr "" -#: templates/js/translated/build.js:453 +#: templates/js/translated/build.js:456 msgid "Scrap build output" msgstr "" -#: templates/js/translated/build.js:460 +#: templates/js/translated/build.js:463 msgid "Delete build output" msgstr "" -#: templates/js/translated/build.js:480 +#: templates/js/translated/build.js:483 msgid "Are you sure you wish to deallocate the selected stock items from this build?" msgstr "" -#: templates/js/translated/build.js:498 +#: templates/js/translated/build.js:501 msgid "Deallocate Stock Items" msgstr "" -#: templates/js/translated/build.js:584 templates/js/translated/build.js:711 -#: templates/js/translated/build.js:836 +#: templates/js/translated/build.js:587 templates/js/translated/build.js:714 +#: templates/js/translated/build.js:839 msgid "Select Build Outputs" msgstr "" -#: templates/js/translated/build.js:585 templates/js/translated/build.js:712 -#: templates/js/translated/build.js:837 +#: templates/js/translated/build.js:588 templates/js/translated/build.js:715 +#: templates/js/translated/build.js:840 msgid "At least one build output must be selected" msgstr "" -#: templates/js/translated/build.js:599 +#: templates/js/translated/build.js:602 msgid "Selected build outputs will be marked as complete" msgstr "" -#: templates/js/translated/build.js:603 templates/js/translated/build.js:736 -#: templates/js/translated/build.js:859 +#: templates/js/translated/build.js:606 templates/js/translated/build.js:739 +#: templates/js/translated/build.js:862 msgid "Output" msgstr "" -#: templates/js/translated/build.js:630 +#: templates/js/translated/build.js:633 msgid "Complete Build Outputs" msgstr "" -#: templates/js/translated/build.js:727 +#: templates/js/translated/build.js:730 msgid "Selected build outputs will be marked as scrapped" msgstr "" -#: templates/js/translated/build.js:729 +#: templates/js/translated/build.js:732 msgid "Scrapped output are marked as rejected" msgstr "" -#: templates/js/translated/build.js:730 +#: templates/js/translated/build.js:733 msgid "Allocated stock items will no longer be available" msgstr "" -#: templates/js/translated/build.js:731 +#: templates/js/translated/build.js:734 msgid "The completion status of the build order will not be adjusted" msgstr "" -#: templates/js/translated/build.js:761 +#: templates/js/translated/build.js:764 msgid "Scrap Build Outputs" msgstr "" -#: templates/js/translated/build.js:851 +#: templates/js/translated/build.js:854 msgid "Selected build outputs will be deleted" msgstr "" -#: templates/js/translated/build.js:853 +#: templates/js/translated/build.js:856 msgid "Build output data will be permanently deleted" msgstr "" -#: templates/js/translated/build.js:854 +#: templates/js/translated/build.js:857 msgid "Allocated stock items will be returned to stock" msgstr "" -#: templates/js/translated/build.js:872 +#: templates/js/translated/build.js:875 msgid "Delete Build Outputs" msgstr "" -#: templates/js/translated/build.js:959 +#: templates/js/translated/build.js:962 msgid "Delete allocations" msgstr "" -#: templates/js/translated/build.js:966 +#: templates/js/translated/build.js:969 msgid "Delete Stock Allocations" msgstr "" -#: templates/js/translated/build.js:989 +#: templates/js/translated/build.js:992 msgid "No allocated stock" msgstr "" -#: templates/js/translated/build.js:1045 +#: templates/js/translated/build.js:1048 msgid "Stock item" msgstr "" -#: templates/js/translated/build.js:1070 +#: templates/js/translated/build.js:1073 msgid "Edit build allocation" msgstr "" -#: templates/js/translated/build.js:1071 +#: templates/js/translated/build.js:1074 msgid "Delete build allocation" msgstr "" -#: templates/js/translated/build.js:1089 +#: templates/js/translated/build.js:1092 msgid "Edit Build Allocation" msgstr "" -#: templates/js/translated/build.js:1102 +#: templates/js/translated/build.js:1105 msgid "Delete Build Allocation" msgstr "" -#: templates/js/translated/build.js:1133 +#: templates/js/translated/build.js:1136 msgid "No build order allocations found" msgstr "" -#: templates/js/translated/build.js:1178 +#: templates/js/translated/build.js:1181 msgid "Location not specified" msgstr "" -#: templates/js/translated/build.js:1200 +#: templates/js/translated/build.js:1203 msgid "Complete outputs" msgstr "" -#: templates/js/translated/build.js:1218 +#: templates/js/translated/build.js:1221 msgid "Scrap outputs" msgstr "" -#: templates/js/translated/build.js:1236 +#: templates/js/translated/build.js:1239 msgid "Delete outputs" msgstr "" -#: templates/js/translated/build.js:1289 +#: templates/js/translated/build.js:1292 msgid "build output" msgstr "" -#: templates/js/translated/build.js:1290 +#: templates/js/translated/build.js:1293 msgid "build outputs" msgstr "" -#: templates/js/translated/build.js:1294 +#: templates/js/translated/build.js:1297 msgid "Build output actions" msgstr "" -#: templates/js/translated/build.js:1470 +#: templates/js/translated/build.js:1473 msgid "No active build outputs found" msgstr "" -#: templates/js/translated/build.js:1563 +#: templates/js/translated/build.js:1566 msgid "Allocated Lines" msgstr "" -#: templates/js/translated/build.js:1577 +#: templates/js/translated/build.js:1580 msgid "Required Tests" msgstr "" -#: templates/js/translated/build.js:1749 -#: templates/js/translated/purchase_order.js:611 -#: templates/js/translated/sales_order.js:1207 +#: templates/js/translated/build.js:1752 +#: templates/js/translated/purchase_order.js:594 +#: templates/js/translated/sales_order.js:1173 msgid "Select Parts" msgstr "" -#: templates/js/translated/build.js:1750 -#: templates/js/translated/sales_order.js:1208 +#: templates/js/translated/build.js:1753 +#: templates/js/translated/sales_order.js:1174 msgid "You must select at least one part to allocate" msgstr "" -#: templates/js/translated/build.js:1813 -#: templates/js/translated/sales_order.js:1157 +#: templates/js/translated/build.js:1816 +#: templates/js/translated/sales_order.js:1123 msgid "Specify stock allocation quantity" msgstr "" -#: templates/js/translated/build.js:1890 +#: templates/js/translated/build.js:1893 msgid "All Parts Allocated" msgstr "" -#: templates/js/translated/build.js:1891 +#: templates/js/translated/build.js:1894 msgid "All selected parts have been fully allocated" msgstr "" -#: templates/js/translated/build.js:1905 -#: templates/js/translated/sales_order.js:1222 +#: templates/js/translated/build.js:1908 +#: templates/js/translated/sales_order.js:1188 msgid "Select source location (leave blank to take from all locations)" msgstr "" -#: templates/js/translated/build.js:1933 +#: templates/js/translated/build.js:1936 msgid "Allocate Stock Items to Build Order" msgstr "" -#: templates/js/translated/build.js:1944 -#: templates/js/translated/sales_order.js:1319 +#: templates/js/translated/build.js:1947 +#: templates/js/translated/sales_order.js:1285 msgid "No matching stock locations" msgstr "" -#: templates/js/translated/build.js:2017 -#: templates/js/translated/sales_order.js:1398 +#: templates/js/translated/build.js:2020 +#: templates/js/translated/sales_order.js:1364 msgid "No matching stock items" msgstr "" -#: templates/js/translated/build.js:2114 +#: templates/js/translated/build.js:2117 msgid "Automatic Stock Allocation" msgstr "" -#: templates/js/translated/build.js:2115 +#: templates/js/translated/build.js:2118 msgid "Stock items will be automatically allocated to this build order, according to the provided guidelines" msgstr "" -#: templates/js/translated/build.js:2117 +#: templates/js/translated/build.js:2120 msgid "If a location is specified, stock will only be allocated from that location" msgstr "" -#: templates/js/translated/build.js:2118 +#: templates/js/translated/build.js:2121 msgid "If stock is considered interchangeable, it will be allocated from the first location it is found" msgstr "" -#: templates/js/translated/build.js:2119 +#: templates/js/translated/build.js:2122 msgid "If substitute stock is allowed, it will be used where stock of the primary part cannot be found" msgstr "" -#: templates/js/translated/build.js:2149 +#: templates/js/translated/build.js:2152 msgid "Allocate Stock Items" msgstr "" -#: templates/js/translated/build.js:2254 +#: templates/js/translated/build.js:2257 msgid "No builds matching query" msgstr "" -#: templates/js/translated/build.js:2289 templates/js/translated/build.js:2652 +#: templates/js/translated/build.js:2292 templates/js/translated/build.js:2661 #: templates/js/translated/forms.js:2196 templates/js/translated/forms.js:2212 #: templates/js/translated/part.js:2322 templates/js/translated/part.js:2761 -#: templates/js/translated/stock.js:2068 templates/js/translated/stock.js:2795 +#: templates/js/translated/stock.js:2069 templates/js/translated/stock.js:2796 msgid "Select" msgstr "" -#: templates/js/translated/build.js:2303 +#: templates/js/translated/build.js:2306 msgid "Build order is overdue" msgstr "" -#: templates/js/translated/build.js:2385 templates/js/translated/stock.js:3126 +#: templates/js/translated/build.js:2388 templates/js/translated/stock.js:3127 msgid "No user information" msgstr "" -#: templates/js/translated/build.js:2561 -#: templates/js/translated/sales_order.js:1682 +#: templates/js/translated/build.js:2568 +#: templates/js/translated/sales_order.js:1663 msgid "Edit stock allocation" msgstr "" -#: templates/js/translated/build.js:2562 -#: templates/js/translated/sales_order.js:1683 +#: templates/js/translated/build.js:2569 +#: templates/js/translated/sales_order.js:1664 msgid "Delete stock allocation" msgstr "" -#: templates/js/translated/build.js:2577 +#: templates/js/translated/build.js:2584 msgid "Edit Allocation" msgstr "" -#: templates/js/translated/build.js:2589 +#: templates/js/translated/build.js:2596 msgid "Remove Allocation" msgstr "" -#: templates/js/translated/build.js:2628 +#: templates/js/translated/build.js:2636 msgid "build line" msgstr "" -#: templates/js/translated/build.js:2629 +#: templates/js/translated/build.js:2637 msgid "build lines" msgstr "" -#: templates/js/translated/build.js:2647 +#: templates/js/translated/build.js:2656 msgid "No build lines found" msgstr "" -#: templates/js/translated/build.js:2677 templates/js/translated/part.js:793 +#: templates/js/translated/build.js:2686 templates/js/translated/part.js:793 #: templates/js/translated/part.js:1209 msgid "Trackable part" msgstr "" -#: templates/js/translated/build.js:2720 +#: templates/js/translated/build.js:2729 msgid "Gets Inherited" msgstr "" -#: templates/js/translated/build.js:2730 +#: templates/js/translated/build.js:2748 msgid "Unit Quantity" msgstr "" -#: templates/js/translated/build.js:2782 -#: templates/js/translated/sales_order.js:1951 +#: templates/js/translated/build.js:2800 +#: templates/js/translated/sales_order.js:1932 msgid "Sufficient stock available" msgstr "" -#: templates/js/translated/build.js:2837 +#: templates/js/translated/build.js:2855 msgid "Consumable Item" msgstr "" -#: templates/js/translated/build.js:2844 +#: templates/js/translated/build.js:2862 msgid "Tracked item" msgstr "" -#: templates/js/translated/build.js:2845 +#: templates/js/translated/build.js:2863 msgid "Allocate tracked items against individual build outputs" msgstr "" -#: templates/js/translated/build.js:2853 -#: templates/js/translated/sales_order.js:2052 +#: templates/js/translated/build.js:2871 +#: templates/js/translated/sales_order.js:2033 msgid "Build stock" msgstr "" -#: templates/js/translated/build.js:2858 templates/js/translated/stock.js:1953 +#: templates/js/translated/build.js:2876 templates/js/translated/stock.js:1954 msgid "Order stock" msgstr "" -#: templates/js/translated/build.js:2862 -#: templates/js/translated/sales_order.js:2046 +#: templates/js/translated/build.js:2880 +#: templates/js/translated/sales_order.js:2027 msgid "Allocate stock" msgstr "" -#: templates/js/translated/build.js:2866 +#: templates/js/translated/build.js:2884 msgid "Remove stock allocation" msgstr "" @@ -12641,7 +13006,7 @@ msgid "Add Manufacturer" msgstr "" #: templates/js/translated/company.js:111 -#: templates/js/translated/company.js:213 +#: templates/js/translated/company.js:214 msgid "Add Manufacturer Part" msgstr "" @@ -12649,231 +13014,231 @@ msgstr "" msgid "Edit Manufacturer Part" msgstr "" -#: templates/js/translated/company.js:201 +#: templates/js/translated/company.js:202 #: templates/js/translated/purchase_order.js:93 msgid "Add Supplier" msgstr "" -#: templates/js/translated/company.js:243 -#: templates/js/translated/purchase_order.js:318 +#: templates/js/translated/company.js:244 +#: templates/js/translated/purchase_order.js:301 msgid "Add Supplier Part" msgstr "" -#: templates/js/translated/company.js:344 +#: templates/js/translated/company.js:345 msgid "All selected supplier parts will be deleted" msgstr "" -#: templates/js/translated/company.js:360 +#: templates/js/translated/company.js:361 msgid "Delete Supplier Parts" msgstr "" -#: templates/js/translated/company.js:466 +#: templates/js/translated/company.js:467 msgid "Add new Company" msgstr "" -#: templates/js/translated/company.js:546 +#: templates/js/translated/company.js:547 msgid "Parts Supplied" msgstr "" -#: templates/js/translated/company.js:555 +#: templates/js/translated/company.js:556 msgid "Parts Manufactured" msgstr "" -#: templates/js/translated/company.js:570 +#: templates/js/translated/company.js:571 msgid "No company information found" msgstr "" -#: templates/js/translated/company.js:619 +#: templates/js/translated/company.js:620 msgid "Create New Contact" msgstr "" -#: templates/js/translated/company.js:635 -#: templates/js/translated/company.js:758 +#: templates/js/translated/company.js:636 +#: templates/js/translated/company.js:759 msgid "Edit Contact" msgstr "" -#: templates/js/translated/company.js:672 +#: templates/js/translated/company.js:673 msgid "All selected contacts will be deleted" msgstr "" -#: templates/js/translated/company.js:678 -#: templates/js/translated/company.js:742 +#: templates/js/translated/company.js:679 +#: templates/js/translated/company.js:743 msgid "Role" msgstr "Vloga" -#: templates/js/translated/company.js:686 +#: templates/js/translated/company.js:687 msgid "Delete Contacts" msgstr "" -#: templates/js/translated/company.js:717 +#: templates/js/translated/company.js:718 msgid "No contacts found" msgstr "" -#: templates/js/translated/company.js:730 +#: templates/js/translated/company.js:731 msgid "Phone Number" msgstr "" -#: templates/js/translated/company.js:736 +#: templates/js/translated/company.js:737 msgid "Email Address" msgstr "" -#: templates/js/translated/company.js:762 +#: templates/js/translated/company.js:763 msgid "Delete Contact" msgstr "" -#: templates/js/translated/company.js:859 +#: templates/js/translated/company.js:860 msgid "Create New Address" msgstr "" -#: templates/js/translated/company.js:874 -#: templates/js/translated/company.js:1035 +#: templates/js/translated/company.js:875 +#: templates/js/translated/company.js:1036 msgid "Edit Address" msgstr "" -#: templates/js/translated/company.js:909 +#: templates/js/translated/company.js:910 msgid "All selected addresses will be deleted" msgstr "" -#: templates/js/translated/company.js:923 +#: templates/js/translated/company.js:924 msgid "Delete Addresses" msgstr "" -#: templates/js/translated/company.js:950 +#: templates/js/translated/company.js:951 msgid "No addresses found" msgstr "" -#: templates/js/translated/company.js:989 +#: templates/js/translated/company.js:990 msgid "Postal city" msgstr "" -#: templates/js/translated/company.js:995 +#: templates/js/translated/company.js:996 msgid "State/province" msgstr "" -#: templates/js/translated/company.js:1007 +#: templates/js/translated/company.js:1008 msgid "Courier notes" msgstr "" -#: templates/js/translated/company.js:1013 +#: templates/js/translated/company.js:1014 msgid "Internal notes" msgstr "" -#: templates/js/translated/company.js:1039 +#: templates/js/translated/company.js:1040 msgid "Delete Address" msgstr "" -#: templates/js/translated/company.js:1112 +#: templates/js/translated/company.js:1113 msgid "All selected manufacturer parts will be deleted" msgstr "" -#: templates/js/translated/company.js:1127 +#: templates/js/translated/company.js:1128 msgid "Delete Manufacturer Parts" msgstr "" -#: templates/js/translated/company.js:1161 +#: templates/js/translated/company.js:1162 msgid "All selected parameters will be deleted" msgstr "" -#: templates/js/translated/company.js:1175 +#: templates/js/translated/company.js:1176 msgid "Delete Parameters" msgstr "" -#: templates/js/translated/company.js:1191 -#: templates/js/translated/company.js:1479 templates/js/translated/part.js:2250 +#: templates/js/translated/company.js:1192 +#: templates/js/translated/company.js:1480 templates/js/translated/part.js:2250 msgid "Order parts" msgstr "" -#: templates/js/translated/company.js:1208 +#: templates/js/translated/company.js:1209 msgid "Delete manufacturer parts" msgstr "" -#: templates/js/translated/company.js:1240 +#: templates/js/translated/company.js:1241 msgid "Manufacturer part actions" msgstr "" -#: templates/js/translated/company.js:1259 +#: templates/js/translated/company.js:1260 msgid "No manufacturer parts found" msgstr "" -#: templates/js/translated/company.js:1279 -#: templates/js/translated/company.js:1567 templates/js/translated/part.js:801 +#: templates/js/translated/company.js:1280 +#: templates/js/translated/company.js:1568 templates/js/translated/part.js:801 #: templates/js/translated/part.js:1217 msgid "Template part" msgstr "" -#: templates/js/translated/company.js:1283 -#: templates/js/translated/company.js:1571 templates/js/translated/part.js:805 +#: templates/js/translated/company.js:1284 +#: templates/js/translated/company.js:1572 templates/js/translated/part.js:805 #: templates/js/translated/part.js:1221 msgid "Assembled part" msgstr "" -#: templates/js/translated/company.js:1403 templates/js/translated/part.js:1471 +#: templates/js/translated/company.js:1404 templates/js/translated/part.js:1471 msgid "No parameters found" msgstr "" -#: templates/js/translated/company.js:1438 templates/js/translated/part.js:1534 +#: templates/js/translated/company.js:1439 templates/js/translated/part.js:1534 msgid "Edit parameter" msgstr "" -#: templates/js/translated/company.js:1439 templates/js/translated/part.js:1535 +#: templates/js/translated/company.js:1440 templates/js/translated/part.js:1535 msgid "Delete parameter" msgstr "" -#: templates/js/translated/company.js:1456 templates/js/translated/part.js:1440 +#: templates/js/translated/company.js:1457 templates/js/translated/part.js:1440 msgid "Edit Parameter" msgstr "" -#: templates/js/translated/company.js:1465 templates/js/translated/part.js:1556 +#: templates/js/translated/company.js:1466 templates/js/translated/part.js:1556 msgid "Delete Parameter" msgstr "" -#: templates/js/translated/company.js:1496 +#: templates/js/translated/company.js:1497 msgid "Delete supplier parts" msgstr "" -#: templates/js/translated/company.js:1546 +#: templates/js/translated/company.js:1547 msgid "No supplier parts found" msgstr "" -#: templates/js/translated/company.js:1664 +#: templates/js/translated/company.js:1665 msgid "Base Units" msgstr "" -#: templates/js/translated/company.js:1694 +#: templates/js/translated/company.js:1695 msgid "Availability" msgstr "" -#: templates/js/translated/company.js:1725 +#: templates/js/translated/company.js:1726 msgid "Edit supplier part" msgstr "" -#: templates/js/translated/company.js:1726 +#: templates/js/translated/company.js:1727 msgid "Delete supplier part" msgstr "" -#: templates/js/translated/company.js:1779 +#: templates/js/translated/company.js:1780 #: templates/js/translated/pricing.js:694 msgid "Delete Price Break" msgstr "" -#: templates/js/translated/company.js:1789 +#: templates/js/translated/company.js:1790 #: templates/js/translated/pricing.js:712 msgid "Edit Price Break" msgstr "" -#: templates/js/translated/company.js:1804 +#: templates/js/translated/company.js:1805 msgid "No price break information found" msgstr "" -#: templates/js/translated/company.js:1833 +#: templates/js/translated/company.js:1834 msgid "Last updated" msgstr "" -#: templates/js/translated/company.js:1840 +#: templates/js/translated/company.js:1841 msgid "Edit price break" msgstr "" -#: templates/js/translated/company.js:1841 +#: templates/js/translated/company.js:1842 msgid "Delete price break" msgstr "" @@ -12977,19 +13342,19 @@ msgstr "" msgid "Select Columns" msgstr "" -#: templates/js/translated/helpers.js:80 +#: templates/js/translated/helpers.js:81 msgid "YES" msgstr "" -#: templates/js/translated/helpers.js:83 +#: templates/js/translated/helpers.js:84 msgid "NO" msgstr "" -#: templates/js/translated/helpers.js:96 +#: templates/js/translated/helpers.js:97 msgid "True" msgstr "" -#: templates/js/translated/helpers.js:97 +#: templates/js/translated/helpers.js:98 msgid "False" msgstr "" @@ -13131,7 +13496,7 @@ msgid "Delete Line" msgstr "" #: templates/js/translated/order.js:306 -#: templates/js/translated/purchase_order.js:2060 +#: templates/js/translated/purchase_order.js:2044 msgid "No line items found" msgstr "" @@ -13366,19 +13731,19 @@ msgid "Delete Part Parameter Template" msgstr "" #: templates/js/translated/part.js:1723 -#: templates/js/translated/purchase_order.js:1724 +#: templates/js/translated/purchase_order.js:1708 msgid "No purchase orders found" msgstr "" #: templates/js/translated/part.js:1867 -#: templates/js/translated/purchase_order.js:2223 +#: templates/js/translated/purchase_order.js:2207 #: templates/js/translated/return_order.js:754 -#: templates/js/translated/sales_order.js:1911 +#: templates/js/translated/sales_order.js:1892 msgid "This line item is overdue" msgstr "" #: templates/js/translated/part.js:1913 -#: templates/js/translated/purchase_order.js:2290 +#: templates/js/translated/purchase_order.js:2274 msgid "Receive line item" msgstr "" @@ -13419,7 +13784,7 @@ msgid "No category" msgstr "" #: templates/js/translated/part.js:2550 templates/js/translated/part.js:2680 -#: templates/js/translated/stock.js:2754 +#: templates/js/translated/stock.js:2755 msgid "Display as list" msgstr "" @@ -13431,7 +13796,7 @@ msgstr "" msgid "No subcategories found" msgstr "" -#: templates/js/translated/part.js:2700 templates/js/translated/stock.js:2774 +#: templates/js/translated/part.js:2700 templates/js/translated/stock.js:2775 msgid "Display as tree" msgstr "" @@ -13483,23 +13848,23 @@ msgstr "" msgid "Speculative" msgstr "" -#: templates/js/translated/part.js:3128 +#: templates/js/translated/part.js:3144 msgid "No scheduling information available for this part" msgstr "" -#: templates/js/translated/part.js:3134 +#: templates/js/translated/part.js:3150 msgid "Error fetching scheduling information for this part" msgstr "" -#: templates/js/translated/part.js:3230 +#: templates/js/translated/part.js:3246 msgid "Scheduled Stock Quantities" msgstr "" -#: templates/js/translated/part.js:3246 +#: templates/js/translated/part.js:3262 msgid "Maximum Quantity" msgstr "" -#: templates/js/translated/part.js:3291 +#: templates/js/translated/part.js:3307 msgid "Minimum Stock Level" msgstr "" @@ -13575,267 +13940,243 @@ msgstr "" msgid "Purchase Price History" msgstr "" -#: templates/js/translated/pricing.js:894 +#: templates/js/translated/pricing.js:892 msgid "No sales history data available" msgstr "" -#: templates/js/translated/pricing.js:916 +#: templates/js/translated/pricing.js:914 msgid "Sale Price History" msgstr "" -#: templates/js/translated/pricing.js:1005 +#: templates/js/translated/pricing.js:1003 msgid "No variant data available" msgstr "" -#: templates/js/translated/pricing.js:1045 +#: templates/js/translated/pricing.js:1043 msgid "Variant Part" msgstr "" -#: templates/js/translated/purchase_order.js:169 -msgid "Select purchase order to duplicate" -msgstr "" - -#: templates/js/translated/purchase_order.js:176 -msgid "Duplicate Line Items" -msgstr "" - -#: templates/js/translated/purchase_order.js:177 -msgid "Duplicate all line items from the selected order" -msgstr "" - -#: templates/js/translated/purchase_order.js:184 -msgid "Duplicate Extra Lines" -msgstr "" - -#: templates/js/translated/purchase_order.js:185 -msgid "Duplicate extra line items from the selected order" -msgstr "" - -#: templates/js/translated/purchase_order.js:206 +#: templates/js/translated/purchase_order.js:188 msgid "Edit Purchase Order" msgstr "" -#: templates/js/translated/purchase_order.js:223 +#: templates/js/translated/purchase_order.js:205 msgid "Duplication Options" msgstr "" -#: templates/js/translated/purchase_order.js:431 +#: templates/js/translated/purchase_order.js:414 msgid "Complete Purchase Order" msgstr "" -#: templates/js/translated/purchase_order.js:448 +#: templates/js/translated/purchase_order.js:431 #: templates/js/translated/return_order.js:210 -#: templates/js/translated/sales_order.js:552 +#: templates/js/translated/sales_order.js:511 msgid "Mark this order as complete?" msgstr "" -#: templates/js/translated/purchase_order.js:454 +#: templates/js/translated/purchase_order.js:437 msgid "All line items have been received" msgstr "" -#: templates/js/translated/purchase_order.js:459 +#: templates/js/translated/purchase_order.js:442 msgid "This order has line items which have not been marked as received." msgstr "" -#: templates/js/translated/purchase_order.js:460 +#: templates/js/translated/purchase_order.js:443 msgid "Completing this order means that the order and line items will no longer be editable." msgstr "" -#: templates/js/translated/purchase_order.js:483 +#: templates/js/translated/purchase_order.js:466 msgid "Cancel Purchase Order" msgstr "" -#: templates/js/translated/purchase_order.js:488 +#: templates/js/translated/purchase_order.js:471 msgid "Are you sure you wish to cancel this purchase order?" msgstr "" -#: templates/js/translated/purchase_order.js:494 +#: templates/js/translated/purchase_order.js:477 msgid "This purchase order can not be cancelled" msgstr "" -#: templates/js/translated/purchase_order.js:515 +#: templates/js/translated/purchase_order.js:498 #: templates/js/translated/return_order.js:164 msgid "After placing this order, line items will no longer be editable." msgstr "" -#: templates/js/translated/purchase_order.js:520 +#: templates/js/translated/purchase_order.js:503 msgid "Issue Purchase Order" msgstr "" -#: templates/js/translated/purchase_order.js:612 +#: templates/js/translated/purchase_order.js:595 msgid "At least one purchaseable part must be selected" msgstr "" -#: templates/js/translated/purchase_order.js:637 +#: templates/js/translated/purchase_order.js:620 msgid "Quantity to order" msgstr "" -#: templates/js/translated/purchase_order.js:646 +#: templates/js/translated/purchase_order.js:629 msgid "New supplier part" msgstr "" -#: templates/js/translated/purchase_order.js:664 +#: templates/js/translated/purchase_order.js:647 msgid "New purchase order" msgstr "" -#: templates/js/translated/purchase_order.js:705 +#: templates/js/translated/purchase_order.js:688 msgid "Add to purchase order" msgstr "" -#: templates/js/translated/purchase_order.js:755 +#: templates/js/translated/purchase_order.js:738 msgid "Merge" msgstr "" -#: templates/js/translated/purchase_order.js:859 +#: templates/js/translated/purchase_order.js:842 msgid "No matching supplier parts" msgstr "" -#: templates/js/translated/purchase_order.js:878 +#: templates/js/translated/purchase_order.js:861 msgid "No matching purchase orders" msgstr "" -#: templates/js/translated/purchase_order.js:1073 +#: templates/js/translated/purchase_order.js:1056 #: templates/js/translated/return_order.js:490 msgid "Select Line Items" msgstr "" -#: templates/js/translated/purchase_order.js:1074 +#: templates/js/translated/purchase_order.js:1057 #: templates/js/translated/return_order.js:491 msgid "At least one line item must be selected" msgstr "" -#: templates/js/translated/purchase_order.js:1104 +#: templates/js/translated/purchase_order.js:1087 msgid "Received Quantity" msgstr "" -#: templates/js/translated/purchase_order.js:1115 +#: templates/js/translated/purchase_order.js:1098 msgid "Quantity to receive" msgstr "" -#: templates/js/translated/purchase_order.js:1170 +#: templates/js/translated/purchase_order.js:1153 #: templates/js/translated/stock.js:1215 msgid "Specify packaging for incoming stock items" msgstr "" -#: templates/js/translated/purchase_order.js:1223 +#: templates/js/translated/purchase_order.js:1206 msgid "Stock Status" msgstr "" -#: templates/js/translated/purchase_order.js:1237 +#: templates/js/translated/purchase_order.js:1220 msgid "Add barcode" msgstr "" -#: templates/js/translated/purchase_order.js:1238 +#: templates/js/translated/purchase_order.js:1221 msgid "Remove barcode" msgstr "" -#: templates/js/translated/purchase_order.js:1241 +#: templates/js/translated/purchase_order.js:1224 msgid "Specify location" msgstr "" -#: templates/js/translated/purchase_order.js:1249 +#: templates/js/translated/purchase_order.js:1232 msgid "Add batch code" msgstr "" -#: templates/js/translated/purchase_order.js:1259 +#: templates/js/translated/purchase_order.js:1242 msgid "Specify packaging" msgstr "" -#: templates/js/translated/purchase_order.js:1270 +#: templates/js/translated/purchase_order.js:1253 msgid "Add serial numbers" msgstr "" -#: templates/js/translated/purchase_order.js:1281 +#: templates/js/translated/purchase_order.js:1264 msgid "Add note" msgstr "" -#: templates/js/translated/purchase_order.js:1338 +#: templates/js/translated/purchase_order.js:1321 msgid "Serials" msgstr "" -#: templates/js/translated/purchase_order.js:1368 +#: templates/js/translated/purchase_order.js:1351 msgid "Order Code" msgstr "" -#: templates/js/translated/purchase_order.js:1370 +#: templates/js/translated/purchase_order.js:1353 msgid "Quantity to Receive" msgstr "" -#: templates/js/translated/purchase_order.js:1395 +#: templates/js/translated/purchase_order.js:1379 #: templates/js/translated/return_order.js:559 msgid "Confirm receipt of items" msgstr "" -#: templates/js/translated/purchase_order.js:1396 +#: templates/js/translated/purchase_order.js:1380 msgid "Receive Purchase Order Items" msgstr "" -#: templates/js/translated/purchase_order.js:1464 +#: templates/js/translated/purchase_order.js:1448 msgid "Scan Item Barcode" msgstr "" -#: templates/js/translated/purchase_order.js:1465 +#: templates/js/translated/purchase_order.js:1449 msgid "Scan barcode on incoming item (must not match any existing stock items)" msgstr "" -#: templates/js/translated/purchase_order.js:1479 +#: templates/js/translated/purchase_order.js:1463 msgid "Invalid barcode data" msgstr "" -#: templates/js/translated/purchase_order.js:1751 +#: templates/js/translated/purchase_order.js:1735 #: templates/js/translated/return_order.js:285 -#: templates/js/translated/sales_order.js:810 -#: templates/js/translated/sales_order.js:1034 +#: templates/js/translated/sales_order.js:769 +#: templates/js/translated/sales_order.js:1007 msgid "Order is overdue" msgstr "" -#: templates/js/translated/purchase_order.js:1913 +#: templates/js/translated/purchase_order.js:1897 msgid "All selected Line items will be deleted" msgstr "" -#: templates/js/translated/purchase_order.js:1931 +#: templates/js/translated/purchase_order.js:1915 msgid "Delete selected Line items?" msgstr "" -#: templates/js/translated/purchase_order.js:1986 -#: templates/js/translated/sales_order.js:2106 +#: templates/js/translated/purchase_order.js:1970 +#: templates/js/translated/sales_order.js:2087 msgid "Duplicate Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2001 +#: templates/js/translated/purchase_order.js:1985 #: templates/js/translated/return_order.js:475 #: templates/js/translated/return_order.js:667 -#: templates/js/translated/sales_order.js:2119 +#: templates/js/translated/sales_order.js:2100 msgid "Edit Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2012 +#: templates/js/translated/purchase_order.js:1996 #: templates/js/translated/return_order.js:680 -#: templates/js/translated/sales_order.js:2130 +#: templates/js/translated/sales_order.js:2111 msgid "Delete Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2294 -#: templates/js/translated/sales_order.js:2060 +#: templates/js/translated/purchase_order.js:2278 +#: templates/js/translated/sales_order.js:2041 msgid "Duplicate line item" msgstr "" -#: templates/js/translated/purchase_order.js:2295 +#: templates/js/translated/purchase_order.js:2279 #: templates/js/translated/return_order.js:799 -#: templates/js/translated/sales_order.js:2061 +#: templates/js/translated/sales_order.js:2042 msgid "Edit line item" msgstr "" -#: templates/js/translated/purchase_order.js:2296 +#: templates/js/translated/purchase_order.js:2280 #: templates/js/translated/return_order.js:803 -#: templates/js/translated/sales_order.js:2067 +#: templates/js/translated/sales_order.js:2048 msgid "Delete line item" msgstr "" -#: templates/js/translated/report.js:49 -msgid "Print Report" -msgstr "" - #: templates/js/translated/report.js:68 msgid "Report print successful" msgstr "" @@ -13878,7 +14219,7 @@ msgid "No return orders found" msgstr "" #: templates/js/translated/return_order.js:299 -#: templates/js/translated/sales_order.js:824 +#: templates/js/translated/sales_order.js:783 msgid "Invalid Customer" msgstr "" @@ -13887,7 +14228,7 @@ msgid "Receive Return Order Items" msgstr "" #: templates/js/translated/return_order.js:691 -#: templates/js/translated/sales_order.js:2267 +#: templates/js/translated/sales_order.js:2248 msgid "No matching line items" msgstr "" @@ -13903,188 +14244,181 @@ msgstr "" msgid "Edit Sales Order" msgstr "" -#: templates/js/translated/sales_order.js:291 +#: templates/js/translated/sales_order.js:288 msgid "No stock items have been allocated to this shipment" msgstr "" -#: templates/js/translated/sales_order.js:296 -msgid "The following stock items will be shipped" -msgstr "" - -#: templates/js/translated/sales_order.js:336 +#: templates/js/translated/sales_order.js:294 msgid "Complete Shipment" msgstr "" -#: templates/js/translated/sales_order.js:360 +#: templates/js/translated/sales_order.js:318 msgid "Confirm Shipment" msgstr "" -#: templates/js/translated/sales_order.js:416 +#: templates/js/translated/sales_order.js:375 msgid "No pending shipments found" msgstr "" -#: templates/js/translated/sales_order.js:420 +#: templates/js/translated/sales_order.js:379 msgid "No stock items have been allocated to pending shipments" msgstr "" -#: templates/js/translated/sales_order.js:430 +#: templates/js/translated/sales_order.js:389 msgid "Complete Shipments" msgstr "" -#: templates/js/translated/sales_order.js:452 +#: templates/js/translated/sales_order.js:411 msgid "Skip" msgstr "" -#: templates/js/translated/sales_order.js:484 +#: templates/js/translated/sales_order.js:443 msgid "Ship Sales Order" msgstr "" -#: templates/js/translated/sales_order.js:500 +#: templates/js/translated/sales_order.js:459 msgid "Ship this order?" msgstr "" -#: templates/js/translated/sales_order.js:506 +#: templates/js/translated/sales_order.js:465 msgid "Order cannot be shipped as there are incomplete shipments" msgstr "" -#: templates/js/translated/sales_order.js:513 +#: templates/js/translated/sales_order.js:472 msgid "This order has line items which have not been completed." msgstr "" -#: templates/js/translated/sales_order.js:514 +#: templates/js/translated/sales_order.js:473 msgid "Shipping this order means that the order and line items will no longer be editable." msgstr "" -#: templates/js/translated/sales_order.js:572 +#: templates/js/translated/sales_order.js:531 msgid "Issue this Sales Order?" msgstr "" -#: templates/js/translated/sales_order.js:577 +#: templates/js/translated/sales_order.js:536 msgid "Issue Sales Order" msgstr "" -#: templates/js/translated/sales_order.js:596 +#: templates/js/translated/sales_order.js:555 msgid "Cancel Sales Order" msgstr "" -#: templates/js/translated/sales_order.js:601 +#: templates/js/translated/sales_order.js:560 msgid "Cancelling this order means that the order will no longer be editable." msgstr "" -#: templates/js/translated/sales_order.js:655 +#: templates/js/translated/sales_order.js:614 msgid "Create New Shipment" msgstr "" -#: templates/js/translated/sales_order.js:764 +#: templates/js/translated/sales_order.js:723 msgid "No sales orders found" msgstr "" -#: templates/js/translated/sales_order.js:944 +#: templates/js/translated/sales_order.js:907 msgid "Edit shipment" msgstr "" -#: templates/js/translated/sales_order.js:947 +#: templates/js/translated/sales_order.js:910 msgid "Complete shipment" msgstr "" -#: templates/js/translated/sales_order.js:952 +#: templates/js/translated/sales_order.js:915 msgid "Delete shipment" msgstr "" -#: templates/js/translated/sales_order.js:969 +#: templates/js/translated/sales_order.js:932 msgid "Edit Shipment" msgstr "" -#: templates/js/translated/sales_order.js:984 +#: templates/js/translated/sales_order.js:947 msgid "Delete Shipment" msgstr "" -#: templates/js/translated/sales_order.js:1017 +#: templates/js/translated/sales_order.js:989 msgid "No matching shipments found" msgstr "" -#: templates/js/translated/sales_order.js:1042 +#: templates/js/translated/sales_order.js:1015 msgid "Shipment Reference" msgstr "" -#: templates/js/translated/sales_order.js:1066 -#: templates/js/translated/sales_order.js:1565 +#: templates/js/translated/sales_order.js:1032 +#: templates/js/translated/sales_order.js:1531 msgid "Not shipped" msgstr "" -#: templates/js/translated/sales_order.js:1084 +#: templates/js/translated/sales_order.js:1050 msgid "Tracking" msgstr "" -#: templates/js/translated/sales_order.js:1088 +#: templates/js/translated/sales_order.js:1054 msgid "Invoice" msgstr "" -#: templates/js/translated/sales_order.js:1255 +#: templates/js/translated/sales_order.js:1221 msgid "Add Shipment" msgstr "" -#: templates/js/translated/sales_order.js:1306 +#: templates/js/translated/sales_order.js:1272 msgid "Confirm stock allocation" msgstr "" -#: templates/js/translated/sales_order.js:1307 +#: templates/js/translated/sales_order.js:1273 msgid "Allocate Stock Items to Sales Order" msgstr "" -#: templates/js/translated/sales_order.js:1513 +#: templates/js/translated/sales_order.js:1479 msgid "No sales order allocations found" msgstr "" -#: templates/js/translated/sales_order.js:1605 +#: templates/js/translated/sales_order.js:1571 msgid "Edit Stock Allocation" msgstr "" -#: templates/js/translated/sales_order.js:1619 +#: templates/js/translated/sales_order.js:1585 msgid "Confirm Delete Operation" msgstr "" -#: templates/js/translated/sales_order.js:1620 +#: templates/js/translated/sales_order.js:1586 msgid "Delete Stock Allocation" msgstr "" -#: templates/js/translated/sales_order.js:1659 -#: templates/js/translated/sales_order.js:1746 +#: templates/js/translated/sales_order.js:1640 +#: templates/js/translated/sales_order.js:1727 #: templates/js/translated/stock.js:1861 msgid "Shipped to customer" msgstr "" -#: templates/js/translated/sales_order.js:1667 -#: templates/js/translated/sales_order.js:1755 +#: templates/js/translated/sales_order.js:1648 +#: templates/js/translated/sales_order.js:1736 msgid "Stock location not specified" msgstr "" -#: templates/js/translated/sales_order.js:2044 -msgid "Allocate serial numbers" -msgstr "" - -#: templates/js/translated/sales_order.js:2048 -msgid "Purchase stock" -msgstr "" - -#: templates/js/translated/sales_order.js:2057 -#: templates/js/translated/sales_order.js:2245 -msgid "Calculate price" -msgstr "" - -#: templates/js/translated/sales_order.js:2071 -msgid "Cannot be deleted as items have been shipped" -msgstr "" - -#: templates/js/translated/sales_order.js:2074 -msgid "Cannot be deleted as items have been allocated" -msgstr "" - -#: templates/js/translated/sales_order.js:2145 +#: templates/js/translated/sales_order.js:2025 +#: templates/js/translated/sales_order.js:2126 msgid "Allocate Serial Numbers" msgstr "" -#: templates/js/translated/sales_order.js:2253 +#: templates/js/translated/sales_order.js:2029 +msgid "Purchase stock" +msgstr "" + +#: templates/js/translated/sales_order.js:2038 +#: templates/js/translated/sales_order.js:2226 +msgid "Calculate price" +msgstr "" + +#: templates/js/translated/sales_order.js:2052 +msgid "Cannot be deleted as items have been shipped" +msgstr "" + +#: templates/js/translated/sales_order.js:2055 +msgid "Cannot be deleted as items have been allocated" +msgstr "" + +#: templates/js/translated/sales_order.js:2234 msgid "Update Unit Price" msgstr "" @@ -14209,11 +14543,8 @@ msgid "Find Serial Number" msgstr "" #: templates/js/translated/stock.js:603 templates/js/translated/stock.js:604 -msgid "Enter serial number" -msgstr "" - #: templates/js/translated/stock.js:620 -msgid "Enter a serial number" +msgid "Enter serial number" msgstr "" #: templates/js/translated/stock.js:640 @@ -14284,7 +14615,7 @@ msgstr "" msgid "Add Stock" msgstr "" -#: templates/js/translated/stock.js:1049 users/models.py:396 +#: templates/js/translated/stock.js:1049 users/models.py:398 msgid "Add" msgstr "" @@ -14308,7 +14639,7 @@ msgstr "" msgid "Adjust packaging" msgstr "" -#: templates/js/translated/stock.js:1256 templates/js/translated/stock.js:3382 +#: templates/js/translated/stock.js:1256 templates/js/translated/stock.js:3383 msgid "Select Stock Items" msgstr "" @@ -14320,18 +14651,6 @@ msgstr "" msgid "Confirm stock adjustment" msgstr "" -#: templates/js/translated/stock.js:1448 -msgid "PASS" -msgstr "" - -#: templates/js/translated/stock.js:1450 -msgid "FAIL" -msgstr "" - -#: templates/js/translated/stock.js:1455 -msgid "NO RESULT" -msgstr "" - #: templates/js/translated/stock.js:1535 msgid "Pass test" msgstr "" @@ -14388,216 +14707,216 @@ msgstr "" msgid "No stock location set" msgstr "" -#: templates/js/translated/stock.js:1927 +#: templates/js/translated/stock.js:1928 msgid "Change stock status" msgstr "" -#: templates/js/translated/stock.js:1936 +#: templates/js/translated/stock.js:1937 msgid "Merge stock" msgstr "" -#: templates/js/translated/stock.js:1985 +#: templates/js/translated/stock.js:1986 msgid "Delete stock" msgstr "" -#: templates/js/translated/stock.js:2038 +#: templates/js/translated/stock.js:2039 msgid "stock items" msgstr "" -#: templates/js/translated/stock.js:2043 +#: templates/js/translated/stock.js:2044 msgid "Scan to location" msgstr "" -#: templates/js/translated/stock.js:2054 +#: templates/js/translated/stock.js:2055 msgid "Stock Actions" msgstr "" -#: templates/js/translated/stock.js:2098 +#: templates/js/translated/stock.js:2099 msgid "Load installed items" msgstr "" -#: templates/js/translated/stock.js:2176 +#: templates/js/translated/stock.js:2177 msgid "Stock item is in production" msgstr "" -#: templates/js/translated/stock.js:2181 +#: templates/js/translated/stock.js:2182 msgid "Stock item assigned to sales order" msgstr "" -#: templates/js/translated/stock.js:2184 +#: templates/js/translated/stock.js:2185 msgid "Stock item assigned to customer" msgstr "" -#: templates/js/translated/stock.js:2187 +#: templates/js/translated/stock.js:2188 msgid "Serialized stock item has been allocated" msgstr "" -#: templates/js/translated/stock.js:2189 +#: templates/js/translated/stock.js:2190 msgid "Stock item has been fully allocated" msgstr "" -#: templates/js/translated/stock.js:2191 +#: templates/js/translated/stock.js:2192 msgid "Stock item has been partially allocated" msgstr "" -#: templates/js/translated/stock.js:2194 +#: templates/js/translated/stock.js:2195 msgid "Stock item has been installed in another item" msgstr "" -#: templates/js/translated/stock.js:2196 +#: templates/js/translated/stock.js:2197 msgid "Stock item has been consumed by a build order" msgstr "" -#: templates/js/translated/stock.js:2200 +#: templates/js/translated/stock.js:2201 msgid "Stock item has expired" msgstr "" -#: templates/js/translated/stock.js:2202 +#: templates/js/translated/stock.js:2203 msgid "Stock item will expire soon" msgstr "" -#: templates/js/translated/stock.js:2207 +#: templates/js/translated/stock.js:2208 msgid "Stock item has been rejected" msgstr "" -#: templates/js/translated/stock.js:2209 +#: templates/js/translated/stock.js:2210 msgid "Stock item is lost" msgstr "" -#: templates/js/translated/stock.js:2211 +#: templates/js/translated/stock.js:2212 msgid "Stock item is destroyed" msgstr "" -#: templates/js/translated/stock.js:2215 +#: templates/js/translated/stock.js:2216 #: templates/js/translated/table_filters.js:357 msgid "Depleted" msgstr "" -#: templates/js/translated/stock.js:2380 +#: templates/js/translated/stock.js:2381 msgid "Supplier part not specified" msgstr "" -#: templates/js/translated/stock.js:2427 +#: templates/js/translated/stock.js:2428 msgid "Stock Value" msgstr "" -#: templates/js/translated/stock.js:2555 +#: templates/js/translated/stock.js:2556 msgid "No stock items matching query" msgstr "" -#: templates/js/translated/stock.js:2658 +#: templates/js/translated/stock.js:2659 msgid "stock locations" msgstr "" -#: templates/js/translated/stock.js:2813 +#: templates/js/translated/stock.js:2814 msgid "Load Sublocations" msgstr "" -#: templates/js/translated/stock.js:2930 +#: templates/js/translated/stock.js:2931 msgid "Details" msgstr "" -#: templates/js/translated/stock.js:2934 +#: templates/js/translated/stock.js:2935 msgid "No changes" msgstr "" -#: templates/js/translated/stock.js:2946 +#: templates/js/translated/stock.js:2947 msgid "Part information unavailable" msgstr "" -#: templates/js/translated/stock.js:2968 +#: templates/js/translated/stock.js:2969 msgid "Location no longer exists" msgstr "" -#: templates/js/translated/stock.js:2985 +#: templates/js/translated/stock.js:2986 msgid "Build order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3000 +#: templates/js/translated/stock.js:3001 msgid "Purchase order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3017 +#: templates/js/translated/stock.js:3018 msgid "Sales Order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3034 +#: templates/js/translated/stock.js:3035 msgid "Return Order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3053 +#: templates/js/translated/stock.js:3054 msgid "Customer no longer exists" msgstr "" -#: templates/js/translated/stock.js:3071 +#: templates/js/translated/stock.js:3072 msgid "Stock item no longer exists" msgstr "" -#: templates/js/translated/stock.js:3089 +#: templates/js/translated/stock.js:3090 msgid "Added" msgstr "" -#: templates/js/translated/stock.js:3097 +#: templates/js/translated/stock.js:3098 msgid "Removed" msgstr "" -#: templates/js/translated/stock.js:3169 +#: templates/js/translated/stock.js:3170 msgid "No installed items" msgstr "" -#: templates/js/translated/stock.js:3223 templates/js/translated/stock.js:3259 +#: templates/js/translated/stock.js:3224 templates/js/translated/stock.js:3260 msgid "Uninstall Stock Item" msgstr "" -#: templates/js/translated/stock.js:3280 +#: templates/js/translated/stock.js:3281 msgid "Select stock item to uninstall" msgstr "" -#: templates/js/translated/stock.js:3301 +#: templates/js/translated/stock.js:3302 msgid "Install another stock item into this item" msgstr "" -#: templates/js/translated/stock.js:3302 +#: templates/js/translated/stock.js:3303 msgid "Stock items can only be installed if they meet the following criteria" msgstr "" -#: templates/js/translated/stock.js:3304 +#: templates/js/translated/stock.js:3305 msgid "The Stock Item links to a Part which is the BOM for this Stock Item" msgstr "" -#: templates/js/translated/stock.js:3305 +#: templates/js/translated/stock.js:3306 msgid "The Stock Item is currently available in stock" msgstr "" -#: templates/js/translated/stock.js:3306 +#: templates/js/translated/stock.js:3307 msgid "The Stock Item is not already installed in another item" msgstr "" -#: templates/js/translated/stock.js:3307 +#: templates/js/translated/stock.js:3308 msgid "The Stock Item is tracked by either a batch code or serial number" msgstr "" -#: templates/js/translated/stock.js:3320 +#: templates/js/translated/stock.js:3321 msgid "Select part to install" msgstr "" -#: templates/js/translated/stock.js:3383 +#: templates/js/translated/stock.js:3384 msgid "Select one or more stock items" msgstr "" -#: templates/js/translated/stock.js:3396 +#: templates/js/translated/stock.js:3397 msgid "Selected stock items" msgstr "" -#: templates/js/translated/stock.js:3400 +#: templates/js/translated/stock.js:3401 msgid "Change Stock Status" msgstr "" -#: templates/js/translated/stock.js:3477 +#: templates/js/translated/stock.js:3478 msgid "This week" msgstr "" -#: templates/js/translated/stock.js:3485 +#: templates/js/translated/stock.js:3486 msgid "This month" msgstr "" @@ -14734,10 +15053,6 @@ msgstr "" msgid "Show items which are in production" msgstr "" -#: templates/js/translated/table_filters.js:372 -msgid "Include Variants" -msgstr "" - #: templates/js/translated/table_filters.js:373 msgid "Include stock items for variant parts" msgstr "" @@ -15012,10 +15327,6 @@ msgstr "" msgid "An error occurred while attempting to login via your social network account." msgstr "" -#: templates/socialaccount/authentication_error.html:13 -msgid "Contact your system administrator for further information." -msgstr "" - #: templates/socialaccount/login.html:13 #, python-format msgid "Connect %(provider)s" @@ -15141,27 +15452,27 @@ msgstr "" msgid "No" msgstr "" -#: users/admin.py:104 +#: users/admin.py:101 msgid "Users" msgstr "" -#: users/admin.py:105 +#: users/admin.py:102 msgid "Select which users are assigned to this group" msgstr "" -#: users/admin.py:249 +#: users/admin.py:246 msgid "The following users are members of multiple groups" msgstr "" -#: users/admin.py:283 +#: users/admin.py:280 msgid "Personal info" msgstr "" -#: users/admin.py:285 +#: users/admin.py:282 msgid "Permissions" msgstr "" -#: users/admin.py:288 +#: users/admin.py:285 msgid "Important dates" msgstr "" @@ -15205,35 +15516,35 @@ msgstr "" msgid "Revoked" msgstr "" -#: users/models.py:379 +#: users/models.py:381 msgid "Permission set" msgstr "" -#: users/models.py:388 +#: users/models.py:390 msgid "Group" msgstr "" -#: users/models.py:392 +#: users/models.py:394 msgid "View" msgstr "" -#: users/models.py:392 +#: users/models.py:394 msgid "Permission to view items" msgstr "" -#: users/models.py:396 +#: users/models.py:398 msgid "Permission to add items" msgstr "" -#: users/models.py:400 +#: users/models.py:402 msgid "Change" msgstr "" -#: users/models.py:402 +#: users/models.py:404 msgid "Permissions to edit items" msgstr "" -#: users/models.py:408 +#: users/models.py:410 msgid "Permission to delete items" msgstr "" diff --git a/src/backend/InvenTree/locale/sr/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/sr/LC_MESSAGES/django.po index fedb1960be..9416fd62d2 100644 --- a/src/backend/InvenTree/locale/sr/LC_MESSAGES/django.po +++ b/src/backend/InvenTree/locale/sr/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-08-20 01:22+0000\n" -"PO-Revision-Date: 2024-08-20 19:51\n" +"POT-Creation-Date: 2024-11-04 03:11+0000\n" +"PO-Revision-Date: 2024-11-04 03:14\n" "Last-Translator: \n" "Language-Team: Serbian (Latin)\n" "Language: sr_CS\n" @@ -14,81 +14,89 @@ msgstr "" "X-Crowdin-Project: inventree\n" "X-Crowdin-Project-ID: 452300\n" "X-Crowdin-Language: sr-CS\n" -"X-Crowdin-File: /[inventree.InvenTree] l10/src/backend/InvenTree/locale/en/LC_MESSAGES/django.po\n" -"X-Crowdin-File-ID: 216\n" +"X-Crowdin-File: /src/backend/InvenTree/locale/en/LC_MESSAGES/django.po\n" +"X-Crowdin-File-ID: 250\n" -#: InvenTree/api.py:269 +#: InvenTree/api.py:270 msgid "API endpoint not found" msgstr "API krajnja tačka nije pronađena" -#: InvenTree/api.py:502 +#: InvenTree/api.py:387 +msgid "Invalid items list provided" +msgstr "" + +#: InvenTree/api.py:396 +msgid "Invalid filters provided" +msgstr "" + +#: InvenTree/api.py:401 +msgid "No items found to delete" +msgstr "" + +#: InvenTree/api.py:515 msgid "User does not have permission to view this model" msgstr "Korisnik nema dozvolu za pregled ovog modela" -#: InvenTree/conversion.py:160 +#: InvenTree/conversion.py:161 #, python-brace-format msgid "Invalid unit provided ({unit})" msgstr "" -#: InvenTree/conversion.py:177 +#: InvenTree/conversion.py:178 msgid "No value provided" msgstr "Nije navedena vrednost" -#: InvenTree/conversion.py:204 +#: InvenTree/conversion.py:205 #, python-brace-format msgid "Could not convert {original} to {unit}" msgstr "Nije moguće konvertovati {original} u {unit}" -#: InvenTree/conversion.py:206 -msgid "Invalid quantity supplied" +#: InvenTree/conversion.py:207 InvenTree/conversion.py:221 +#: InvenTree/helpers.py:505 order/models.py:589 order/models.py:832 +msgid "Invalid quantity provided" msgstr "Isporučena nevažeća količina" -#: InvenTree/conversion.py:220 -#, python-brace-format -msgid "Invalid quantity supplied ({exc})" -msgstr "Isporučena nevažeća količina ({exc})" - -#: InvenTree/exceptions.py:108 +#: InvenTree/exceptions.py:104 msgid "Error details can be found in the admin panel" msgstr "Detalji o grešci se mogu naći u admin sekciji" -#: InvenTree/fields.py:136 +#: InvenTree/fields.py:135 msgid "Enter date" msgstr "Unesite datum" -#: InvenTree/fields.py:205 InvenTree/models.py:929 build/serializers.py:468 -#: build/serializers.py:546 build/templates/build/sidebar.html:29 -#: company/models.py:836 +#: InvenTree/fields.py:204 InvenTree/models.py:928 build/serializers.py:512 +#: build/serializers.py:590 build/templates/build/sidebar.html:29 +#: company/models.py:833 #: company/templates/company/manufacturer_part_sidebar.html:11 #: company/templates/company/sidebar.html:37 -#: company/templates/company/supplier_part_sidebar.html:11 order/models.py:1380 +#: company/templates/company/supplier_part_sidebar.html:11 order/models.py:1397 #: order/templates/order/po_sidebar.html:11 #: order/templates/order/return_order_sidebar.html:9 #: order/templates/order/so_sidebar.html:17 part/admin.py:59 -#: part/models.py:3297 part/templates/part/part_sidebar.html:65 +#: part/models.py:3348 part/templates/part/part_sidebar.html:65 #: report/templates/report/inventree_build_order_report.html:172 -#: stock/admin.py:230 stock/models.py:2375 stock/models.py:2563 -#: stock/serializers.py:698 stock/serializers.py:856 stock/serializers.py:982 -#: stock/serializers.py:1032 stock/serializers.py:1343 -#: stock/serializers.py:1432 stock/serializers.py:1597 +#: stock/admin.py:231 stock/models.py:2494 stock/models.py:2679 +#: stock/serializers.py:725 stock/serializers.py:887 stock/serializers.py:1013 +#: stock/serializers.py:1063 stock/serializers.py:1374 +#: stock/serializers.py:1463 stock/serializers.py:1628 #: stock/templates/stock/stock_sidebar.html:25 #: templates/js/translated/barcode.js:143 templates/js/translated/bom.js:1265 -#: templates/js/translated/company.js:1684 templates/js/translated/order.js:372 +#: templates/js/translated/company.js:1685 templates/js/translated/order.js:372 #: templates/js/translated/part.js:1087 -#: templates/js/translated/purchase_order.js:2270 +#: templates/js/translated/purchase_order.js:2254 #: templates/js/translated/return_order.js:774 -#: templates/js/translated/sales_order.js:1103 -#: templates/js/translated/sales_order.js:2018 -#: templates/js/translated/stock.js:1621 templates/js/translated/stock.js:2513 +#: templates/js/translated/sales_order.js:1069 +#: templates/js/translated/sales_order.js:1999 +#: templates/js/translated/stock.js:1621 templates/js/translated/stock.js:2514 msgid "Notes" msgstr "Napomene" -#: InvenTree/format.py:164 +#: InvenTree/format.py:162 #, python-brace-format msgid "Value '{name}' does not appear in pattern format" msgstr "Vrednost '{name}' se ne pojavljuje u formatu obrasca" -#: InvenTree/format.py:175 +#: InvenTree/format.py:173 msgid "Provided value does not match required pattern: " msgstr "Navedena vrednost ne odgovara traženom obrascu: " @@ -132,397 +140,409 @@ msgstr "" msgid "The provided primary email address is not valid." msgstr "Navedena primarna adresa e-pošte nije važeća." -#: InvenTree/forms.py:274 +#: InvenTree/forms.py:273 msgid "The provided email domain is not approved." msgstr "Navedeni domen adrese e-pošte nije prihvaćen." -#: InvenTree/forms.py:403 +#: InvenTree/forms.py:402 msgid "Registration is disabled." msgstr "Registracija je onemogućena." -#: InvenTree/helpers.py:491 order/models.py:567 order/models.py:810 -msgid "Invalid quantity provided" -msgstr "Isporučena nevažeća količina" +#: InvenTree/helpers.py:509 +msgid "Cannot serialize more than 1000 items at once" +msgstr "" -#: InvenTree/helpers.py:499 +#: InvenTree/helpers.py:515 msgid "Empty serial number string" msgstr "Serijski broj nije popunjen" -#: InvenTree/helpers.py:528 +#: InvenTree/helpers.py:544 msgid "Duplicate serial" msgstr "Dupliciraj serijski broj" -#: InvenTree/helpers.py:560 InvenTree/helpers.py:603 +#: InvenTree/helpers.py:576 InvenTree/helpers.py:619 InvenTree/helpers.py:637 +#: InvenTree/helpers.py:644 InvenTree/helpers.py:663 #, python-brace-format -msgid "Invalid group range: {group}" -msgstr "Nevažeći raspon grupe: {group}" +msgid "Invalid group: {group}" +msgstr "" -#: InvenTree/helpers.py:591 +#: InvenTree/helpers.py:607 #, python-brace-format msgid "Group range {group} exceeds allowed quantity ({expected_quantity})" msgstr "Raspon grupe {group} prelazi dozvoljenu količinu ({expected_quantity})" -#: InvenTree/helpers.py:621 InvenTree/helpers.py:628 InvenTree/helpers.py:647 -#, python-brace-format -msgid "Invalid group sequence: {group}" -msgstr "Nevažeća sekvenca grupe: {group}" - -#: InvenTree/helpers.py:657 +#: InvenTree/helpers.py:673 msgid "No serial numbers found" msgstr "Nisu pronađeni serijski brojevi" -#: InvenTree/helpers.py:662 +#: InvenTree/helpers.py:678 msgid "Number of unique serial numbers ({len(serials)}) must match quantity ({expected_quantity})" msgstr "Broj jedinstvenih serijskih brojeva ({len(serials)}) mora odgovarati količini ({expected_quantity})" -#: InvenTree/helpers.py:780 +#: InvenTree/helpers.py:796 msgid "Remove HTML tags from this value" msgstr "Uklonite HTML oznake iz ove vrednosti" -#: InvenTree/helpers_model.py:133 +#: InvenTree/helpers.py:881 +msgid "Data contains prohibited markdown content" +msgstr "" + +#: InvenTree/helpers_model.py:130 msgid "Connection error" msgstr "Greška u povezivanju" -#: InvenTree/helpers_model.py:138 InvenTree/helpers_model.py:145 +#: InvenTree/helpers_model.py:135 InvenTree/helpers_model.py:142 msgid "Server responded with invalid status code" msgstr "Server je odgovorio nevažećim statusnim kodom" -#: InvenTree/helpers_model.py:141 +#: InvenTree/helpers_model.py:138 msgid "Exception occurred" msgstr "Došlo je do izuzetka" -#: InvenTree/helpers_model.py:151 +#: InvenTree/helpers_model.py:148 msgid "Server responded with invalid Content-Length value" msgstr "Server je odgovorio nevažećom vrednošću dužina sadržaja" -#: InvenTree/helpers_model.py:154 +#: InvenTree/helpers_model.py:151 msgid "Image size is too large" msgstr "Veličina slike je prevelika" -#: InvenTree/helpers_model.py:166 +#: InvenTree/helpers_model.py:163 msgid "Image download exceeded maximum size" msgstr "Preuzimanje slike premašilo je maksimalnu veličinu" -#: InvenTree/helpers_model.py:171 +#: InvenTree/helpers_model.py:168 msgid "Remote server returned empty response" msgstr "Udaljeni server vratio je prazan odgovor" -#: InvenTree/helpers_model.py:179 +#: InvenTree/helpers_model.py:176 msgid "Supplied URL is not a valid image file" msgstr "Navedeni URL nije važeća slikovna datoteka" -#: InvenTree/locales.py:18 +#: InvenTree/locales.py:20 msgid "Arabic" msgstr "" -#: InvenTree/locales.py:19 +#: InvenTree/locales.py:21 msgid "Bulgarian" msgstr "Bugarski" -#: InvenTree/locales.py:20 +#: InvenTree/locales.py:22 msgid "Czech" msgstr "Češki" -#: InvenTree/locales.py:21 +#: InvenTree/locales.py:23 msgid "Danish" msgstr "Danski" -#: InvenTree/locales.py:22 +#: InvenTree/locales.py:24 msgid "German" msgstr "Nemački" -#: InvenTree/locales.py:23 +#: InvenTree/locales.py:25 msgid "Greek" msgstr "Grčki" -#: InvenTree/locales.py:24 +#: InvenTree/locales.py:26 msgid "English" msgstr "Engleski" -#: InvenTree/locales.py:25 +#: InvenTree/locales.py:27 msgid "Spanish" msgstr "Španski" -#: InvenTree/locales.py:26 +#: InvenTree/locales.py:28 msgid "Spanish (Mexican)" msgstr "Španski (Meksiko)" -#: InvenTree/locales.py:27 +#: InvenTree/locales.py:29 msgid "Estonian" msgstr "" -#: InvenTree/locales.py:28 +#: InvenTree/locales.py:30 msgid "Farsi / Persian" msgstr "Farsi / Persijski" -#: InvenTree/locales.py:29 +#: InvenTree/locales.py:31 msgid "Finnish" msgstr "Finski" -#: InvenTree/locales.py:30 +#: InvenTree/locales.py:32 msgid "French" msgstr "Francuski" -#: InvenTree/locales.py:31 +#: InvenTree/locales.py:33 msgid "Hebrew" msgstr "Jevrejski" -#: InvenTree/locales.py:32 +#: InvenTree/locales.py:34 msgid "Hindi" msgstr "Hindu" -#: InvenTree/locales.py:33 +#: InvenTree/locales.py:35 msgid "Hungarian" msgstr "Mađarski" -#: InvenTree/locales.py:34 +#: InvenTree/locales.py:36 msgid "Italian" msgstr "Italijanski" -#: InvenTree/locales.py:35 +#: InvenTree/locales.py:37 msgid "Japanese" msgstr "Japanski" -#: InvenTree/locales.py:36 +#: InvenTree/locales.py:38 msgid "Korean" msgstr "Korejski" -#: InvenTree/locales.py:37 +#: InvenTree/locales.py:39 +msgid "Lithuanian" +msgstr "" + +#: InvenTree/locales.py:40 msgid "Latvian" msgstr "" -#: InvenTree/locales.py:38 +#: InvenTree/locales.py:41 msgid "Dutch" msgstr "Holandski" -#: InvenTree/locales.py:39 +#: InvenTree/locales.py:42 msgid "Norwegian" msgstr "Norveški" -#: InvenTree/locales.py:40 +#: InvenTree/locales.py:43 msgid "Polish" msgstr "Poljski" -#: InvenTree/locales.py:41 +#: InvenTree/locales.py:44 msgid "Portuguese" msgstr "Portugalski" -#: InvenTree/locales.py:42 +#: InvenTree/locales.py:45 msgid "Portuguese (Brazilian)" msgstr "Portugalski (Brazil)" -#: InvenTree/locales.py:43 +#: InvenTree/locales.py:46 msgid "Romanian" msgstr "" -#: InvenTree/locales.py:44 +#: InvenTree/locales.py:47 msgid "Russian" msgstr "Ruski" -#: InvenTree/locales.py:45 +#: InvenTree/locales.py:48 msgid "Slovak" msgstr "" -#: InvenTree/locales.py:46 +#: InvenTree/locales.py:49 msgid "Slovenian" msgstr "Slovenski" -#: InvenTree/locales.py:47 +#: InvenTree/locales.py:50 msgid "Serbian" msgstr "Srpski" -#: InvenTree/locales.py:48 +#: InvenTree/locales.py:51 msgid "Swedish" msgstr "Švedski" -#: InvenTree/locales.py:49 +#: InvenTree/locales.py:52 msgid "Thai" msgstr "Tajlandski" -#: InvenTree/locales.py:50 +#: InvenTree/locales.py:53 msgid "Turkish" msgstr "Turski" -#: InvenTree/locales.py:51 +#: InvenTree/locales.py:54 msgid "Ukrainian" msgstr "" -#: InvenTree/locales.py:52 +#: InvenTree/locales.py:55 msgid "Vietnamese" msgstr "Vijetnamski" -#: InvenTree/locales.py:53 +#: InvenTree/locales.py:56 msgid "Chinese (Simplified)" msgstr "Kineski (Uprošćeni)" -#: InvenTree/locales.py:54 +#: InvenTree/locales.py:57 msgid "Chinese (Traditional)" msgstr "Kineski (Tradicionalni)" #: InvenTree/magic_login.py:28 -#, python-brace-format -msgid "[{site_name}] Log in to the app" +msgid "Log in to the app" msgstr "" -#: InvenTree/magic_login.py:38 InvenTree/serializers.py:415 -#: company/models.py:136 company/templates/company/company_base.html:138 +#: InvenTree/magic_login.py:38 InvenTree/serializers.py:416 +#: company/models.py:133 company/templates/company/company_base.html:138 #: templates/InvenTree/settings/user.html:49 -#: templates/js/translated/company.js:677 +#: templates/js/translated/company.js:678 msgid "Email" msgstr "E-Pošta" -#: InvenTree/models.py:103 +#: InvenTree/models.py:105 msgid "Error running plugin validation" msgstr "" -#: InvenTree/models.py:172 +#: InvenTree/models.py:174 msgid "Metadata must be a python dict object" msgstr "Metapodaci moraju biti \"python dict\" objekat" -#: InvenTree/models.py:178 +#: InvenTree/models.py:180 msgid "Plugin Metadata" msgstr "Metapodaci dodatka" -#: InvenTree/models.py:179 +#: InvenTree/models.py:181 msgid "JSON metadata field, for use by external plugins" msgstr "Polje metapodataka JSON, za korištenje eksternih dodataka" -#: InvenTree/models.py:409 +#: InvenTree/models.py:408 msgid "Improperly formatted pattern" msgstr "Neispravno formatiran obrazac" -#: InvenTree/models.py:416 +#: InvenTree/models.py:415 msgid "Unknown format key specified" msgstr "Naveden je ključ nepoznatog formata" -#: InvenTree/models.py:422 +#: InvenTree/models.py:421 msgid "Missing required format key" msgstr "Nedostaje potreban ključ formata" -#: InvenTree/models.py:433 +#: InvenTree/models.py:432 msgid "Reference field cannot be empty" msgstr "Polje za reference ne može biti prazno" -#: InvenTree/models.py:441 +#: InvenTree/models.py:440 msgid "Reference must match required pattern" msgstr "Referenca mora odgovarati traženom obrascu" -#: InvenTree/models.py:472 +#: InvenTree/models.py:471 msgid "Reference number is too large" msgstr "Broj reference je predugačak" -#: InvenTree/models.py:723 +#: InvenTree/models.py:722 msgid "Duplicate names cannot exist under the same parent" msgstr "Dvostruka imena ne mogu postojati pod istom nadredjenom grupom" -#: InvenTree/models.py:740 +#: InvenTree/models.py:739 msgid "Invalid choice" msgstr "Nevažeći izvor" -#: InvenTree/models.py:770 common/models.py:2702 common/models.py:3132 -#: common/serializers.py:412 company/models.py:593 machine/models.py:24 -#: part/models.py:983 part/models.py:3764 plugin/models.py:51 -#: report/models.py:149 stock/models.py:77 +#: InvenTree/models.py:769 common/models.py:2766 common/models.py:3193 +#: common/models.py:3413 common/serializers.py:460 company/models.py:590 +#: machine/models.py:24 part/models.py:1044 part/models.py:3815 +#: plugin/models.py:51 report/models.py:149 stock/models.py:83 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/notifications.html:17 #: templates/InvenTree/settings/plugin.html:83 #: templates/InvenTree/settings/plugin_settings.html:22 #: templates/InvenTree/settings/settings_staff_js.html:67 #: templates/InvenTree/settings/settings_staff_js.html:454 -#: templates/js/translated/company.js:676 -#: templates/js/translated/company.js:724 -#: templates/js/translated/company.js:913 -#: templates/js/translated/company.js:1165 -#: templates/js/translated/company.js:1413 templates/js/translated/part.js:1193 +#: templates/js/translated/company.js:677 +#: templates/js/translated/company.js:725 +#: templates/js/translated/company.js:914 +#: templates/js/translated/company.js:1166 +#: templates/js/translated/company.js:1414 templates/js/translated/part.js:1193 #: templates/js/translated/part.js:1481 templates/js/translated/part.js:1617 -#: templates/js/translated/part.js:2768 templates/js/translated/stock.js:2801 +#: templates/js/translated/part.js:2768 templates/js/translated/stock.js:2802 msgid "Name" msgstr "Ime" -#: InvenTree/models.py:776 build/models.py:250 -#: build/templates/build/detail.html:24 common/models.py:156 -#: company/models.py:521 company/models.py:827 +#: InvenTree/models.py:775 build/models.py:251 +#: build/templates/build/detail.html:24 common/models.py:159 +#: company/models.py:518 company/models.py:824 #: company/templates/company/company_base.html:77 #: company/templates/company/manufacturer_part.html:75 -#: company/templates/company/supplier_part.html:107 order/models.py:288 -#: order/models.py:1413 part/admin.py:305 part/admin.py:411 part/models.py:1006 -#: part/models.py:3779 part/templates/part/category.html:79 -#: part/templates/part/part_base.html:170 +#: company/templates/company/supplier_part.html:108 order/models.py:295 +#: order/models.py:1430 part/admin.py:305 part/admin.py:411 part/models.py:1067 +#: part/models.py:3830 part/templates/part/category.html:79 +#: part/templates/part/part_base.html:171 #: part/templates/part/part_scheduling.html:12 report/models.py:155 -#: report/models.py:509 report/models.py:535 +#: report/models.py:517 report/models.py:543 #: report/templates/report/inventree_build_order_report.html:117 -#: stock/admin.py:54 stock/models.py:83 stock/templates/stock/location.html:122 +#: stock/admin.py:54 stock/models.py:89 stock/templates/stock/location.html:123 #: templates/InvenTree/settings/notifications.html:19 #: templates/InvenTree/settings/plugin_settings.html:27 #: templates/InvenTree/settings/settings_staff_js.html:170 #: templates/InvenTree/settings/settings_staff_js.html:459 #: templates/js/translated/bom.js:633 templates/js/translated/bom.js:963 -#: templates/js/translated/build.js:2311 templates/js/translated/company.js:519 -#: templates/js/translated/company.js:1330 -#: templates/js/translated/company.js:1641 templates/js/translated/index.js:119 +#: templates/js/translated/build.js:2314 templates/js/translated/company.js:520 +#: templates/js/translated/company.js:1331 +#: templates/js/translated/company.js:1642 templates/js/translated/index.js:119 #: templates/js/translated/order.js:323 templates/js/translated/part.js:1245 #: templates/js/translated/part.js:1490 templates/js/translated/part.js:1628 #: templates/js/translated/part.js:1965 templates/js/translated/part.js:2361 #: templates/js/translated/part.js:2803 templates/js/translated/part.js:2915 #: templates/js/translated/plugin.js:80 -#: templates/js/translated/purchase_order.js:1776 -#: templates/js/translated/purchase_order.js:1919 -#: templates/js/translated/purchase_order.js:2092 +#: templates/js/translated/purchase_order.js:1760 +#: templates/js/translated/purchase_order.js:1903 +#: templates/js/translated/purchase_order.js:2076 #: templates/js/translated/return_order.js:313 -#: templates/js/translated/sales_order.js:838 -#: templates/js/translated/sales_order.js:1848 -#: templates/js/translated/stock.js:1600 templates/js/translated/stock.js:2143 -#: templates/js/translated/stock.js:2832 templates/js/translated/stock.js:2915 +#: templates/js/translated/sales_order.js:797 +#: templates/js/translated/sales_order.js:1829 +#: templates/js/translated/stock.js:1600 templates/js/translated/stock.js:2144 +#: templates/js/translated/stock.js:2833 templates/js/translated/stock.js:2916 msgid "Description" msgstr "Opis" -#: InvenTree/models.py:777 stock/models.py:84 +#: InvenTree/models.py:776 stock/models.py:90 msgid "Description (optional)" msgstr "Opis (Opciono)" -#: InvenTree/models.py:792 templates/js/translated/part.js:2812 -#: templates/js/translated/stock.js:2841 +#: InvenTree/models.py:791 common/models.py:3546 +#: templates/js/translated/part.js:2812 templates/js/translated/stock.js:2842 msgid "Path" msgstr "Putanja" -#: InvenTree/models.py:929 +#: InvenTree/models.py:928 msgid "Markdown notes (optional)" msgstr "Zabeleške (Opciono)" -#: InvenTree/models.py:960 +#: InvenTree/models.py:959 msgid "Barcode Data" msgstr "Podaci sa barkoda" -#: InvenTree/models.py:961 +#: InvenTree/models.py:960 msgid "Third party barcode data" msgstr "Podaci sa barkoda trećih lica" -#: InvenTree/models.py:967 +#: InvenTree/models.py:966 msgid "Barcode Hash" msgstr "Heš barkoda" -#: InvenTree/models.py:968 +#: InvenTree/models.py:967 msgid "Unique hash of barcode data" msgstr "Jedinstveni hash barkoda" -#: InvenTree/models.py:1035 +#: InvenTree/models.py:1034 msgid "Existing barcode found" msgstr "Postojeći barkod pronađen" -#: InvenTree/models.py:1078 +#: InvenTree/models.py:1112 +msgid "Task Failure" +msgstr "" + +#: InvenTree/models.py:1114 +#, python-brace-format +msgid "Background worker task '{instance.func}' failed after {n} attempts" +msgstr "" + +#: InvenTree/models.py:1142 msgid "Server Error" msgstr "Greška servera" -#: InvenTree/models.py:1079 +#: InvenTree/models.py:1143 msgid "An error has been logged by the server." msgstr "Server je zabležio grešku." -#: InvenTree/serializers.py:63 part/models.py:4387 +#: InvenTree/serializers.py:63 part/models.py:4444 msgid "Must be a valid number" msgstr "Mora biti važeći broj" -#: InvenTree/serializers.py:100 company/models.py:186 -#: company/templates/company/company_base.html:112 part/models.py:3115 +#: InvenTree/serializers.py:100 company/models.py:183 +#: company/templates/company/company_base.html:112 part/models.py:3166 #: templates/InvenTree/settings/settings_staff_js.html:44 #: templates/currency_data.html:5 msgid "Currency" @@ -532,15 +552,15 @@ msgstr "Valuta" msgid "Select currency from available options" msgstr "Odaberite valutu među dostupnim opcijama" -#: InvenTree/serializers.py:407 templates/InvenTree/settings/user.html:33 +#: InvenTree/serializers.py:405 templates/InvenTree/settings/user.html:33 msgid "Username" msgstr "" -#: InvenTree/serializers.py:409 templates/InvenTree/settings/user.html:37 +#: InvenTree/serializers.py:408 templates/InvenTree/settings/user.html:37 msgid "First Name" msgstr "" -#: InvenTree/serializers.py:409 +#: InvenTree/serializers.py:408 msgid "First name of the user" msgstr "" @@ -552,30 +572,30 @@ msgstr "" msgid "Last name of the user" msgstr "" -#: InvenTree/serializers.py:415 +#: InvenTree/serializers.py:416 msgid "Email address of the user" msgstr "" -#: InvenTree/serializers.py:439 +#: InvenTree/serializers.py:441 msgid "Staff" msgstr "" -#: InvenTree/serializers.py:439 +#: InvenTree/serializers.py:441 msgid "Does this user have staff permissions" msgstr "" -#: InvenTree/serializers.py:442 +#: InvenTree/serializers.py:445 msgid "Superuser" msgstr "" -#: InvenTree/serializers.py:442 +#: InvenTree/serializers.py:445 msgid "Is this user a superuser" msgstr "" -#: InvenTree/serializers.py:445 common/models.py:2707 company/models.py:163 -#: company/models.py:801 machine/models.py:39 part/admin.py:88 -#: part/models.py:1189 plugin/models.py:66 -#: templates/js/translated/company.js:523 +#: InvenTree/serializers.py:449 common/models.py:2771 company/models.py:160 +#: company/models.py:798 machine/models.py:39 part/admin.py:88 +#: part/models.py:1250 plugin/models.py:66 +#: templates/js/translated/company.js:524 #: templates/js/translated/table_filters.js:134 #: templates/js/translated/table_filters.js:226 #: templates/js/translated/table_filters.js:513 @@ -585,230 +605,229 @@ msgstr "" msgid "Active" msgstr "" -#: InvenTree/serializers.py:445 +#: InvenTree/serializers.py:449 msgid "Is this user account active" msgstr "" -#: InvenTree/serializers.py:463 +#: InvenTree/serializers.py:467 msgid "You do not have permission to change this user role." msgstr "Nemate dozvolu za promenu ove korisničke uloge." -#: InvenTree/serializers.py:475 +#: InvenTree/serializers.py:503 msgid "Only superusers can create new users" msgstr "Samo superkorisnici mogu kreirati nove korisnike" -#: InvenTree/serializers.py:494 +#: InvenTree/serializers.py:523 msgid "Your account has been created." msgstr "" -#: InvenTree/serializers.py:496 +#: InvenTree/serializers.py:525 msgid "Please use the password reset function to login" msgstr "" -#: InvenTree/serializers.py:503 +#: InvenTree/serializers.py:531 msgid "Welcome to InvenTree" msgstr "" -#: InvenTree/serializers.py:561 +#: InvenTree/serializers.py:594 msgid "Invalid value" msgstr "Nevažeća vrednost" -#: InvenTree/serializers.py:581 importer/models.py:63 +#: InvenTree/serializers.py:614 importer/models.py:64 msgid "Data File" msgstr "Datoteka" -#: InvenTree/serializers.py:582 +#: InvenTree/serializers.py:615 msgid "Select data file for upload" msgstr "Odaberite datoteku za učitavanje" -#: InvenTree/serializers.py:599 -msgid "Unsupported file type" -msgstr "Nije podržan tip datoteke" +#: InvenTree/serializers.py:632 common/files.py:63 +msgid "Unsupported file format" +msgstr "" -#: InvenTree/serializers.py:605 +#: InvenTree/serializers.py:638 msgid "File is too large" msgstr "Prevelika datoteka" -#: InvenTree/serializers.py:626 +#: InvenTree/serializers.py:659 msgid "No columns found in file" msgstr "Nisu pronađene kolone podataka u datoteci" -#: InvenTree/serializers.py:629 +#: InvenTree/serializers.py:662 msgid "No data rows found in file" msgstr "Nisu pronađeni redovi podataka u datoteci" -#: InvenTree/serializers.py:742 +#: InvenTree/serializers.py:774 msgid "No data rows provided" msgstr "Nisu navedeni redovi podataka" -#: InvenTree/serializers.py:745 +#: InvenTree/serializers.py:777 msgid "No data columns supplied" msgstr "Nisu obezbeđene kolone podataka" -#: InvenTree/serializers.py:812 +#: InvenTree/serializers.py:843 #, python-brace-format msgid "Missing required column: '{name}'" msgstr "Nedostaje potrebna kolona: '{name}'" -#: InvenTree/serializers.py:821 +#: InvenTree/serializers.py:852 #, python-brace-format msgid "Duplicate column: '{col}'" msgstr "Duplicirana kolona: '{col}'" -#: InvenTree/serializers.py:861 +#: InvenTree/serializers.py:891 msgid "Remote Image" msgstr "Udaljena slika" -#: InvenTree/serializers.py:862 +#: InvenTree/serializers.py:892 msgid "URL of remote image file" msgstr "URL udaljene slike" -#: InvenTree/serializers.py:880 +#: InvenTree/serializers.py:910 msgid "Downloading images from remote URL is not enabled" msgstr "Preuzimanje slika s udaljenog URL-a nije omogućeno" -#: InvenTree/status.py:66 part/serializers.py:1246 -msgid "Background worker check failed" -msgstr "Provera pozadinskog radnika nije uspjela" - -#: InvenTree/status.py:70 -msgid "Email backend not configured" -msgstr "Pozadina e-pošte nije konfigurirana" - -#: InvenTree/status.py:73 -msgid "InvenTree system health checks failed" -msgstr "Provere integriteta sistema InvenTree nije uspela" +#: InvenTree/serializers.py:917 +msgid "Failed to download image from remote URL" +msgstr "" #: InvenTree/templatetags/inventree_extras.py:184 msgid "Unknown database" msgstr "" -#: InvenTree/validators.py:32 InvenTree/validators.py:34 +#: InvenTree/validators.py:32 msgid "Invalid physical unit" msgstr "" -#: InvenTree/validators.py:40 +#: InvenTree/validators.py:38 msgid "Not a valid currency code" msgstr "" -#: InvenTree/validators.py:118 InvenTree/validators.py:134 +#: InvenTree/validators.py:115 InvenTree/validators.py:131 msgid "Overage value must not be negative" msgstr "" -#: InvenTree/validators.py:136 +#: InvenTree/validators.py:133 msgid "Overage must not exceed 100%" msgstr "" -#: InvenTree/validators.py:142 +#: InvenTree/validators.py:139 msgid "Invalid value for overage" msgstr "" -#: InvenTree/views.py:400 templates/InvenTree/settings/user.html:23 +#: InvenTree/views.py:399 templates/InvenTree/settings/user.html:23 msgid "Edit User Information" msgstr "" -#: InvenTree/views.py:412 templates/InvenTree/settings/user.html:20 +#: InvenTree/views.py:411 templates/InvenTree/settings/user.html:20 msgid "Set Password" msgstr "" -#: InvenTree/views.py:434 +#: InvenTree/views.py:433 msgid "Password fields must match" msgstr "" -#: InvenTree/views.py:442 +#: InvenTree/views.py:441 msgid "Wrong password provided" msgstr "" -#: InvenTree/views.py:650 templates/navbar.html:160 +#: InvenTree/views.py:645 templates/navbar.html:160 msgid "System Information" msgstr "" -#: InvenTree/views.py:657 templates/navbar.html:171 +#: InvenTree/views.py:652 templates/navbar.html:171 msgid "About InvenTree" msgstr "" -#: build/api.py:51 part/api.py:156 stock/api.py:343 -msgid "Cascade" -msgstr "" - -#: build/api.py:64 build/models.py:261 -#: build/templates/build/build_base.html:191 +#: build/api.py:54 build/models.py:262 +#: build/templates/build/build_base.html:192 #: build/templates/build/detail.html:87 msgid "Parent Build" msgstr "" -#: build/api.py:89 order/api.py:92 templates/js/translated/table_filters.js:101 +#: build/api.py:58 build/api.py:625 order/api.py:396 order/api.py:611 +#: order/api.py:990 order/api.py:1187 +#: templates/js/translated/table_filters.js:372 +msgid "Include Variants" +msgstr "" + +#: build/api.py:93 +msgid "Ancestor Build" +msgstr "" + +#: build/api.py:112 order/api.py:90 +#: templates/js/translated/table_filters.js:101 #: templates/js/translated/table_filters.js:549 #: templates/js/translated/table_filters.js:633 #: templates/js/translated/table_filters.js:674 msgid "Assigned to me" msgstr "" -#: build/api.py:106 build/templates/build/build_base.html:205 +#: build/api.py:129 build/templates/build/build_base.html:206 #: build/templates/build/detail.html:115 #: report/templates/report/inventree_build_order_report.html:152 #: templates/js/translated/table_filters.js:552 msgid "Issued By" msgstr "" -#: build/api.py:125 +#: build/api.py:148 msgid "Assigned To" msgstr "" -#: build/api.py:301 +#: build/api.py:310 msgid "Build must be cancelled before it can be deleted" msgstr "" -#: build/api.py:345 build/serializers.py:1288 part/models.py:4265 +#: build/api.py:354 build/serializers.py:1342 part/models.py:4322 #: templates/js/translated/bom.js:997 templates/js/translated/bom.js:1037 -#: templates/js/translated/build.js:2702 +#: templates/js/translated/build.js:2711 #: templates/js/translated/table_filters.js:197 #: templates/js/translated/table_filters.js:586 msgid "Consumable" msgstr "" -#: build/api.py:346 build/serializers.py:1289 part/models.py:4259 +#: build/api.py:355 build/serializers.py:1343 part/models.py:4316 #: part/templates/part/upload_bom.html:58 templates/js/translated/bom.js:1001 -#: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2693 +#: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2702 #: templates/js/translated/table_filters.js:193 #: templates/js/translated/table_filters.js:222 #: templates/js/translated/table_filters.js:590 msgid "Optional" msgstr "" -#: build/api.py:347 common/models.py:1489 part/admin.py:91 part/admin.py:428 -#: part/models.py:1154 part/serializers.py:1575 +#: build/api.py:356 common/models.py:1558 part/admin.py:91 part/admin.py:428 +#: part/models.py:1215 part/serializers.py:1633 #: templates/js/translated/bom.js:1639 #: templates/js/translated/table_filters.js:337 #: templates/js/translated/table_filters.js:729 msgid "Assembly" msgstr "" -#: build/api.py:348 templates/js/translated/table_filters.js:415 +#: build/api.py:357 templates/js/translated/table_filters.js:415 #: templates/js/translated/table_filters.js:582 msgid "Tracked" msgstr "" -#: build/api.py:349 build/serializers.py:1290 part/models.py:1172 +#: build/api.py:358 build/serializers.py:1344 part/models.py:1233 #: templates/js/translated/table_filters.js:146 #: templates/js/translated/table_filters.js:779 msgid "Testable" msgstr "" -#: build/api.py:351 part/admin.py:144 templates/js/translated/build.js:1917 -#: templates/js/translated/build.js:2820 -#: templates/js/translated/sales_order.js:1965 +#: build/api.py:360 order/api.py:779 part/admin.py:144 +#: templates/js/translated/build.js:1920 templates/js/translated/build.js:2838 +#: templates/js/translated/sales_order.js:1946 #: templates/js/translated/table_filters.js:574 msgid "Allocated" msgstr "" -#: build/api.py:359 company/models.py:891 company/serializers.py:395 -#: company/templates/company/supplier_part.html:114 +#: build/api.py:368 company/models.py:888 company/serializers.py:399 +#: company/templates/company/supplier_part.html:115 #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:17 -#: templates/js/translated/bom.js:1162 templates/js/translated/build.js:2752 +#: templates/js/translated/bom.js:1162 templates/js/translated/build.js:2770 #: templates/js/translated/index.js:123 -#: templates/js/translated/model_renderers.js:235 +#: templates/js/translated/model_renderers.js:238 #: templates/js/translated/part.js:695 templates/js/translated/part.js:697 #: templates/js/translated/part.js:702 #: templates/js/translated/table_filters.js:347 @@ -816,16 +835,68 @@ msgstr "" msgid "Available" msgstr "" -#: build/models.py:86 build/templates/build/build_base.html:9 -#: build/templates/build/build_base.html:27 +#: build/api.py:640 build/models.py:268 build/serializers.py:1330 +#: build/templates/build/build_base.html:106 +#: build/templates/build/detail.html:29 company/models.py:1043 order/api.py:775 +#: order/api.py:1003 order/models.py:1519 order/models.py:1674 +#: order/models.py:1675 part/api.py:1495 part/api.py:1802 part/models.py:419 +#: part/models.py:3177 part/models.py:3321 part/models.py:3469 +#: part/models.py:3490 part/models.py:3512 part/models.py:3648 +#: part/models.py:3995 part/models.py:4158 part/models.py:4288 +#: part/models.py:4654 part/serializers.py:1245 part/serializers.py:1898 +#: part/templates/part/part_app_base.html:8 +#: part/templates/part/part_pricing.html:12 +#: part/templates/part/upload_bom.html:52 +#: report/templates/report/inventree_bill_of_materials_report.html:110 +#: report/templates/report/inventree_bill_of_materials_report.html:137 +#: report/templates/report/inventree_build_order_report.html:109 +#: report/templates/report/inventree_purchase_order_report.html:27 +#: report/templates/report/inventree_return_order_report.html:24 +#: report/templates/report/inventree_sales_order_report.html:27 +#: report/templates/report/inventree_sales_order_shipment_report.html:28 +#: report/templates/report/inventree_stock_location_report.html:102 +#: stock/serializers.py:112 stock/serializers.py:160 stock/serializers.py:456 +#: stock/serializers.py:947 templates/InvenTree/search.html:82 +#: templates/email/build_order_completed.html:17 +#: templates/email/build_order_required_stock.html:17 +#: templates/email/low_stock_notification.html:15 +#: templates/email/overdue_build_order.html:16 +#: templates/js/translated/barcode.js:577 templates/js/translated/bom.js:632 +#: templates/js/translated/bom.js:769 templates/js/translated/bom.js:905 +#: templates/js/translated/build.js:1005 templates/js/translated/build.js:1488 +#: templates/js/translated/build.js:1919 templates/js/translated/build.js:2337 +#: templates/js/translated/build.js:2514 templates/js/translated/company.js:349 +#: templates/js/translated/company.js:1117 +#: templates/js/translated/company.js:1272 +#: templates/js/translated/company.js:1560 templates/js/translated/index.js:109 +#: templates/js/translated/part.js:1950 templates/js/translated/part.js:2022 +#: templates/js/translated/part.js:2330 templates/js/translated/pricing.js:369 +#: templates/js/translated/purchase_order.js:734 +#: templates/js/translated/purchase_order.js:1350 +#: templates/js/translated/purchase_order.js:1902 +#: templates/js/translated/purchase_order.js:2061 +#: templates/js/translated/return_order.js:538 +#: templates/js/translated/return_order.js:708 +#: templates/js/translated/sales_order.js:1199 +#: templates/js/translated/sales_order.js:1608 +#: templates/js/translated/sales_order.js:1813 +#: templates/js/translated/stock.js:682 templates/js/translated/stock.js:848 +#: templates/js/translated/stock.js:1065 templates/js/translated/stock.js:2083 +#: templates/js/translated/stock.js:2942 templates/js/translated/stock.js:3175 +#: templates/js/translated/stock.js:3320 +msgid "Part" +msgstr "" + +#: build/api.py:662 build/models.py:88 build/templates/build/build_base.html:10 +#: build/templates/build/build_base.html:28 #: report/templates/report/inventree_build_order_report.html:105 -#: stock/serializers.py:84 templates/email/build_order_completed.html:16 +#: stock/serializers.py:85 templates/email/build_order_completed.html:16 #: templates/email/overdue_build_order.html:15 -#: templates/js/translated/build.js:1145 templates/js/translated/stock.js:2976 +#: templates/js/translated/build.js:1148 templates/js/translated/stock.js:2977 msgid "Build Order" msgstr "Nalog za izradu" -#: build/models.py:87 build/templates/build/build_base.html:13 +#: build/models.py:89 build/templates/build/build_base.html:14 #: build/templates/build/index.html:8 build/templates/build/index.html:12 #: order/templates/order/sales_order_detail.html:111 #: order/templates/order/so_sidebar.html:13 @@ -836,268 +907,216 @@ msgstr "Nalog za izradu" msgid "Build Orders" msgstr "Nalozi za izradu" -#: build/models.py:135 +#: build/models.py:136 msgid "Assembly BOM has not been validated" msgstr "" -#: build/models.py:142 +#: build/models.py:143 msgid "Build order cannot be created for an inactive part" msgstr "" -#: build/models.py:149 +#: build/models.py:150 msgid "Build order cannot be created for an unlocked part" msgstr "" -#: build/models.py:163 +#: build/models.py:164 msgid "Invalid choice for parent build" msgstr "Nevažeći izbor za nadređenu verziju" -#: build/models.py:174 order/models.py:239 +#: build/models.py:175 order/models.py:236 msgid "Responsible user or group must be specified" msgstr "" -#: build/models.py:180 +#: build/models.py:181 msgid "Build order part cannot be changed" msgstr "Deo u nalogu za izradu ne može se izmeniti" -#: build/models.py:241 +#: build/models.py:242 msgid "Build Order Reference" msgstr "Reference naloga za pravljenje" -#: build/models.py:242 build/serializers.py:1287 order/models.py:467 -#: order/models.py:978 order/models.py:1373 order/models.py:2135 -#: part/admin.py:414 part/models.py:4280 part/templates/part/upload_bom.html:54 +#: build/models.py:243 build/serializers.py:1341 order/models.py:479 +#: order/models.py:1005 order/models.py:1390 order/models.py:2174 +#: part/admin.py:414 part/models.py:4337 part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_bill_of_materials_report.html:139 #: report/templates/report/inventree_purchase_order_report.html:28 #: report/templates/report/inventree_return_order_report.html:26 #: report/templates/report/inventree_sales_order_report.html:28 #: templates/js/translated/bom.js:770 templates/js/translated/bom.js:973 -#: templates/js/translated/build.js:1011 templates/js/translated/build.js:2685 +#: templates/js/translated/build.js:1014 templates/js/translated/build.js:2694 #: templates/js/translated/order.js:316 templates/js/translated/pricing.js:386 -#: templates/js/translated/purchase_order.js:2135 +#: templates/js/translated/purchase_order.js:2119 #: templates/js/translated/return_order.js:727 -#: templates/js/translated/sales_order.js:1854 +#: templates/js/translated/sales_order.js:1835 msgid "Reference" msgstr "Referenca" -#: build/models.py:253 +#: build/models.py:254 msgid "Brief description of the build (optional)" msgstr "Kratak opis izrade (nije obavezno)" -#: build/models.py:262 +#: build/models.py:263 msgid "BuildOrder to which this build is allocated" msgstr "" -#: build/models.py:267 build/serializers.py:1278 -#: build/templates/build/build_base.html:105 -#: build/templates/build/detail.html:29 company/models.py:1046 order/api.py:767 -#: order/models.py:1503 order/models.py:1658 order/models.py:1659 -#: part/api.py:1509 part/api.py:1813 part/models.py:424 part/models.py:3126 -#: part/models.py:3270 part/models.py:3418 part/models.py:3439 -#: part/models.py:3461 part/models.py:3597 part/models.py:3937 -#: part/models.py:4100 part/models.py:4231 part/models.py:4592 -#: part/serializers.py:1192 part/serializers.py:1836 -#: part/templates/part/part_app_base.html:8 -#: part/templates/part/part_pricing.html:12 -#: part/templates/part/upload_bom.html:52 -#: report/templates/report/inventree_bill_of_materials_report.html:110 -#: report/templates/report/inventree_bill_of_materials_report.html:137 -#: report/templates/report/inventree_build_order_report.html:109 -#: report/templates/report/inventree_purchase_order_report.html:27 -#: report/templates/report/inventree_return_order_report.html:24 -#: report/templates/report/inventree_sales_order_report.html:27 -#: report/templates/report/inventree_stock_location_report.html:102 -#: stock/serializers.py:111 stock/serializers.py:159 stock/serializers.py:446 -#: stock/serializers.py:916 templates/InvenTree/search.html:82 -#: templates/email/build_order_completed.html:17 -#: templates/email/build_order_required_stock.html:17 -#: templates/email/low_stock_notification.html:15 -#: templates/email/overdue_build_order.html:16 -#: templates/js/translated/barcode.js:577 templates/js/translated/bom.js:632 -#: templates/js/translated/bom.js:769 templates/js/translated/bom.js:905 -#: templates/js/translated/build.js:1002 templates/js/translated/build.js:1485 -#: templates/js/translated/build.js:1916 templates/js/translated/build.js:2334 -#: templates/js/translated/build.js:2507 templates/js/translated/company.js:348 -#: templates/js/translated/company.js:1116 -#: templates/js/translated/company.js:1271 -#: templates/js/translated/company.js:1559 templates/js/translated/index.js:109 -#: templates/js/translated/part.js:1950 templates/js/translated/part.js:2022 -#: templates/js/translated/part.js:2330 templates/js/translated/pricing.js:369 -#: templates/js/translated/purchase_order.js:751 -#: templates/js/translated/purchase_order.js:1367 -#: templates/js/translated/purchase_order.js:1918 -#: templates/js/translated/purchase_order.js:2077 -#: templates/js/translated/return_order.js:538 -#: templates/js/translated/return_order.js:708 -#: templates/js/translated/sales_order.js:300 -#: templates/js/translated/sales_order.js:1233 -#: templates/js/translated/sales_order.js:1634 -#: templates/js/translated/sales_order.js:1832 -#: templates/js/translated/stock.js:682 templates/js/translated/stock.js:848 -#: templates/js/translated/stock.js:1065 templates/js/translated/stock.js:2082 -#: templates/js/translated/stock.js:2941 templates/js/translated/stock.js:3174 -#: templates/js/translated/stock.js:3319 -msgid "Part" -msgstr "" - -#: build/models.py:275 +#: build/models.py:274 msgid "Select part to build" msgstr "" -#: build/models.py:280 +#: build/models.py:279 msgid "Sales Order Reference" msgstr "" -#: build/models.py:284 +#: build/models.py:283 msgid "SalesOrder to which this build is allocated" msgstr "" -#: build/models.py:289 build/serializers.py:1048 -#: templates/js/translated/build.js:1904 -#: templates/js/translated/sales_order.js:1221 +#: build/models.py:288 build/serializers.py:1092 +#: templates/js/translated/build.js:1907 +#: templates/js/translated/sales_order.js:1187 msgid "Source Location" msgstr "" -#: build/models.py:293 +#: build/models.py:292 msgid "Select location to take stock from for this build (leave blank to take from any stock location)" msgstr "" -#: build/models.py:298 +#: build/models.py:297 msgid "Destination Location" msgstr "" -#: build/models.py:302 +#: build/models.py:301 msgid "Select location where the completed items will be stored" msgstr "" -#: build/models.py:306 +#: build/models.py:305 msgid "Build Quantity" msgstr "" -#: build/models.py:309 +#: build/models.py:308 msgid "Number of stock items to build" msgstr "" -#: build/models.py:313 +#: build/models.py:312 msgid "Completed items" msgstr "" -#: build/models.py:315 +#: build/models.py:314 msgid "Number of stock items which have been completed" msgstr "" -#: build/models.py:319 +#: build/models.py:318 msgid "Build Status" msgstr "" -#: build/models.py:323 +#: build/models.py:322 msgid "Build status code" msgstr "" -#: build/models.py:332 build/serializers.py:302 build/serializers.py:1198 -#: order/serializers.py:670 stock/models.py:859 stock/serializers.py:76 -#: stock/serializers.py:1562 templates/js/translated/purchase_order.js:1129 +#: build/models.py:331 build/serializers.py:349 build/serializers.py:1243 +#: order/serializers.py:755 stock/models.py:936 stock/serializers.py:77 +#: stock/serializers.py:1593 templates/js/translated/purchase_order.js:1112 #: templates/js/translated/stock.js:1199 msgid "Batch Code" msgstr "" -#: build/models.py:336 build/serializers.py:303 +#: build/models.py:335 build/serializers.py:350 msgid "Batch code for this build output" msgstr "" -#: build/models.py:339 order/models.py:315 order/serializers.py:126 -#: part/models.py:1229 part/templates/part/part_base.html:319 +#: build/models.py:338 order/models.py:322 order/serializers.py:157 +#: part/models.py:1290 part/templates/part/part_base.html:327 #: templates/js/translated/return_order.js:338 -#: templates/js/translated/sales_order.js:863 +#: templates/js/translated/sales_order.js:822 msgid "Creation Date" msgstr "" -#: build/models.py:343 +#: build/models.py:342 msgid "Target completion date" msgstr "" -#: build/models.py:344 +#: build/models.py:343 msgid "Target date for build completion. Build will be overdue after this date." msgstr "" -#: build/models.py:347 order/models.py:526 order/models.py:2180 -#: templates/js/translated/build.js:2419 +#: build/models.py:346 order/models.py:538 order/models.py:2219 +#: templates/js/translated/build.js:2422 msgid "Completion Date" msgstr "" -#: build/models.py:353 +#: build/models.py:352 msgid "completed by" msgstr "" -#: build/models.py:361 templates/js/translated/build.js:2379 +#: build/models.py:360 templates/js/translated/build.js:2382 msgid "Issued by" msgstr "" -#: build/models.py:362 +#: build/models.py:361 msgid "User who issued this build order" msgstr "" -#: build/models.py:370 build/templates/build/build_base.html:212 -#: build/templates/build/detail.html:122 common/models.py:165 order/api.py:142 -#: order/models.py:333 order/templates/order/order_base.html:222 -#: order/templates/order/return_order_base.html:191 -#: order/templates/order/sales_order_base.html:235 part/models.py:1246 -#: part/templates/part/part_base.html:399 +#: build/models.py:369 build/templates/build/build_base.html:213 +#: build/templates/build/detail.html:122 common/models.py:168 order/api.py:140 +#: order/models.py:340 order/templates/order/order_base.html:231 +#: order/templates/order/return_order_base.html:192 +#: order/templates/order/sales_order_base.html:236 part/models.py:1307 +#: part/templates/part/part_base.html:407 #: report/templates/report/inventree_build_order_report.html:158 #: templates/InvenTree/settings/settings_staff_js.html:150 -#: templates/js/translated/build.js:2391 -#: templates/js/translated/purchase_order.js:1833 +#: templates/js/translated/build.js:2394 +#: templates/js/translated/purchase_order.js:1817 #: templates/js/translated/return_order.js:358 #: templates/js/translated/table_filters.js:551 msgid "Responsible" msgstr "" -#: build/models.py:371 +#: build/models.py:370 msgid "User or group responsible for this build order" msgstr "" -#: build/models.py:376 build/templates/build/detail.html:108 +#: build/models.py:375 build/templates/build/detail.html:108 #: company/templates/company/manufacturer_part.html:107 -#: company/templates/company/supplier_part.html:194 -#: order/templates/order/order_base.html:172 -#: order/templates/order/return_order_base.html:148 -#: order/templates/order/sales_order_base.html:187 -#: part/templates/part/part_base.html:392 stock/models.py:855 -#: stock/templates/stock/item_base.html:200 -#: templates/js/translated/company.js:1019 +#: company/templates/company/supplier_part.html:195 +#: order/templates/order/order_base.html:181 +#: order/templates/order/return_order_base.html:149 +#: order/templates/order/sales_order_base.html:188 +#: part/templates/part/part_base.html:400 stock/models.py:932 +#: stock/templates/stock/item_base.html:197 +#: templates/js/translated/company.js:1020 msgid "External Link" msgstr "" -#: build/models.py:377 common/models.py:3273 part/models.py:1058 -#: stock/models.py:855 +#: build/models.py:376 common/models.py:3334 part/models.py:1119 +#: stock/models.py:932 msgid "Link to external URL" msgstr "Link za eksterni URL" -#: build/models.py:381 +#: build/models.py:380 msgid "Build Priority" msgstr "" -#: build/models.py:384 +#: build/models.py:383 msgid "Priority of this build order" msgstr "" -#: build/models.py:391 common/models.py:135 common/models.py:149 -#: order/admin.py:18 order/api.py:128 order/models.py:297 +#: build/models.py:390 common/models.py:138 common/models.py:152 +#: order/admin.py:18 order/api.py:126 order/models.py:304 #: templates/InvenTree/settings/settings_staff_js.html:146 -#: templates/js/translated/build.js:2316 -#: templates/js/translated/purchase_order.js:1780 +#: templates/js/translated/build.js:2319 +#: templates/js/translated/purchase_order.js:1764 #: templates/js/translated/return_order.js:317 -#: templates/js/translated/sales_order.js:842 +#: templates/js/translated/sales_order.js:801 #: templates/js/translated/table_filters.js:47 #: templates/project_code_data.html:6 msgid "Project Code" msgstr "" -#: build/models.py:392 +#: build/models.py:391 msgid "Project code for this build order" msgstr "" -#: build/models.py:651 build/models.py:778 +#: build/models.py:651 build/models.py:779 msgid "Failed to offload task to complete build allocations" msgstr "" @@ -1110,610 +1129,619 @@ msgstr "" msgid "A build order has been completed" msgstr "" -#: build/models.py:967 build/models.py:1055 +#: build/models.py:858 build/serializers.py:393 +msgid "Serial numbers must be provided for trackable parts" +msgstr "" + +#: build/models.py:969 build/models.py:1058 msgid "No build output specified" msgstr "" -#: build/models.py:970 +#: build/models.py:972 msgid "Build output is already completed" msgstr "" -#: build/models.py:973 +#: build/models.py:975 msgid "Build output does not match Build Order" msgstr "" -#: build/models.py:1059 build/serializers.py:235 build/serializers.py:284 -#: build/serializers.py:915 order/models.py:564 order/serializers.py:499 -#: order/serializers.py:665 part/serializers.py:1569 part/serializers.py:1999 -#: stock/models.py:700 stock/models.py:1520 stock/serializers.py:669 +#: build/models.py:1062 build/serializers.py:282 build/serializers.py:331 +#: build/serializers.py:959 order/models.py:586 order/serializers.py:584 +#: order/serializers.py:750 part/serializers.py:1627 part/serializers.py:2060 +#: stock/models.py:777 stock/models.py:1609 stock/serializers.py:696 msgid "Quantity must be greater than zero" msgstr "" -#: build/models.py:1064 build/serializers.py:240 +#: build/models.py:1067 build/serializers.py:287 msgid "Quantity cannot be greater than the output quantity" msgstr "" -#: build/models.py:1124 build/serializers.py:563 +#: build/models.py:1127 build/serializers.py:607 #, python-brace-format msgid "Build output {serial} has not passed all required tests" msgstr "" -#: build/models.py:1465 +#: build/models.py:1482 msgid "Build Order Line Item" msgstr "" -#: build/models.py:1490 +#: build/models.py:1507 msgid "Build object" msgstr "" -#: build/models.py:1504 build/models.py:1760 build/serializers.py:222 -#: build/serializers.py:269 build/serializers.py:1295 -#: build/templates/build/build_base.html:110 -#: build/templates/build/detail.html:34 common/models.py:2579 -#: order/models.py:1356 order/models.py:2041 order/serializers.py:1460 +#: build/models.py:1521 build/models.py:1787 build/serializers.py:269 +#: build/serializers.py:316 build/serializers.py:1349 +#: build/templates/build/build_base.html:111 +#: build/templates/build/detail.html:34 common/models.py:2643 +#: order/models.py:1373 order/models.py:2074 order/serializers.py:1586 #: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:413 -#: part/forms.py:48 part/models.py:3284 part/models.py:4253 -#: part/templates/part/part_pricing.html:16 +#: part/forms.py:48 part/models.py:3335 part/models.py:4310 +#: part/serializers.py:265 part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_bill_of_materials_report.html:138 #: report/templates/report/inventree_build_order_report.html:113 #: report/templates/report/inventree_purchase_order_report.html:29 #: report/templates/report/inventree_sales_order_report.html:29 +#: report/templates/report/inventree_sales_order_shipment_report.html:47 +#: report/templates/report/inventree_sales_order_shipment_report.html:49 #: report/templates/report/inventree_stock_location_report.html:104 #: report/templates/report/inventree_test_report.html:90 -#: report/templates/report/inventree_test_report.html:169 stock/admin.py:159 -#: stock/serializers.py:127 stock/serializers.py:167 stock/serializers.py:660 -#: stock/templates/stock/item_base.html:287 -#: stock/templates/stock/item_base.html:295 -#: stock/templates/stock/item_base.html:342 +#: report/templates/report/inventree_test_report.html:169 stock/admin.py:160 +#: stock/serializers.py:128 stock/serializers.py:168 stock/serializers.py:687 +#: stock/templates/stock/item_base.html:284 +#: stock/templates/stock/item_base.html:292 +#: stock/templates/stock/item_base.html:339 #: templates/email/build_order_completed.html:18 #: templates/js/translated/barcode.js:579 templates/js/translated/bom.js:771 -#: templates/js/translated/bom.js:981 templates/js/translated/build.js:522 -#: templates/js/translated/build.js:737 templates/js/translated/build.js:1542 -#: templates/js/translated/build.js:1919 templates/js/translated/build.js:2529 -#: templates/js/translated/company.js:1818 -#: templates/js/translated/model_renderers.js:237 +#: templates/js/translated/bom.js:981 templates/js/translated/build.js:525 +#: templates/js/translated/build.js:740 templates/js/translated/build.js:1545 +#: templates/js/translated/build.js:1922 templates/js/translated/build.js:2536 +#: templates/js/translated/company.js:1819 +#: templates/js/translated/model_renderers.js:240 #: templates/js/translated/order.js:329 templates/js/translated/part.js:968 -#: templates/js/translated/part.js:1818 templates/js/translated/part.js:3360 +#: templates/js/translated/part.js:1818 templates/js/translated/part.js:3376 #: templates/js/translated/pricing.js:381 #: templates/js/translated/pricing.js:474 #: templates/js/translated/pricing.js:522 #: templates/js/translated/pricing.js:616 -#: templates/js/translated/purchase_order.js:754 -#: templates/js/translated/purchase_order.js:1922 -#: templates/js/translated/purchase_order.js:2141 -#: templates/js/translated/sales_order.js:317 -#: templates/js/translated/sales_order.js:1235 -#: templates/js/translated/sales_order.js:1554 -#: templates/js/translated/sales_order.js:1644 -#: templates/js/translated/sales_order.js:1734 -#: templates/js/translated/sales_order.js:1860 +#: templates/js/translated/purchase_order.js:737 +#: templates/js/translated/purchase_order.js:1906 +#: templates/js/translated/purchase_order.js:2125 +#: templates/js/translated/sales_order.js:1201 +#: templates/js/translated/sales_order.js:1520 +#: templates/js/translated/sales_order.js:1625 +#: templates/js/translated/sales_order.js:1715 +#: templates/js/translated/sales_order.js:1841 #: templates/js/translated/stock.js:570 templates/js/translated/stock.js:708 -#: templates/js/translated/stock.js:879 templates/js/translated/stock.js:3105 -#: templates/js/translated/stock.js:3188 +#: templates/js/translated/stock.js:879 templates/js/translated/stock.js:3106 +#: templates/js/translated/stock.js:3189 msgid "Quantity" msgstr "" -#: build/models.py:1505 +#: build/models.py:1522 msgid "Required quantity for build order" msgstr "" -#: build/models.py:1585 +#: build/models.py:1602 msgid "Build item must specify a build output, as master part is marked as trackable" msgstr "" -#: build/models.py:1594 +#: build/models.py:1611 #, python-brace-format msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgstr "" -#: build/models.py:1604 order/models.py:1992 +#: build/models.py:1628 order/models.py:2025 msgid "Stock item is over-allocated" msgstr "" -#: build/models.py:1610 order/models.py:1995 +#: build/models.py:1634 order/models.py:2028 msgid "Allocation quantity must be greater than zero" msgstr "" -#: build/models.py:1616 +#: build/models.py:1640 msgid "Quantity must be 1 for serialized stock" msgstr "" -#: build/models.py:1675 +#: build/models.py:1699 msgid "Selected stock item does not match BOM line" msgstr "" -#: build/models.py:1747 build/serializers.py:895 order/serializers.py:1297 -#: order/serializers.py:1318 stock/models.py:376 stock/serializers.py:93 -#: stock/serializers.py:763 stock/serializers.py:1281 stock/serializers.py:1393 -#: stock/templates/stock/item_base.html:10 -#: stock/templates/stock/item_base.html:23 -#: stock/templates/stock/item_base.html:194 -#: templates/js/translated/build.js:1918 -#: templates/js/translated/sales_order.js:301 -#: templates/js/translated/sales_order.js:1234 -#: templates/js/translated/sales_order.js:1535 -#: templates/js/translated/sales_order.js:1540 -#: templates/js/translated/sales_order.js:1641 -#: templates/js/translated/sales_order.js:1728 +#: build/models.py:1774 build/serializers.py:939 order/serializers.py:1423 +#: order/serializers.py:1444 +#: report/templates/report/inventree_sales_order_shipment_report.html:29 +#: stock/models.py:382 stock/serializers.py:94 stock/serializers.py:794 +#: stock/serializers.py:1312 stock/serializers.py:1424 +#: stock/templates/stock/item_base.html:11 +#: stock/templates/stock/item_base.html:24 +#: stock/templates/stock/item_base.html:191 +#: templates/js/translated/build.js:1921 +#: templates/js/translated/sales_order.js:1200 +#: templates/js/translated/sales_order.js:1501 +#: templates/js/translated/sales_order.js:1506 +#: templates/js/translated/sales_order.js:1622 +#: templates/js/translated/sales_order.js:1709 #: templates/js/translated/stock.js:683 templates/js/translated/stock.js:849 -#: templates/js/translated/stock.js:3061 +#: templates/js/translated/stock.js:3062 msgid "Stock Item" msgstr "" -#: build/models.py:1748 +#: build/models.py:1775 msgid "Source stock item" msgstr "" -#: build/models.py:1761 +#: build/models.py:1788 msgid "Stock quantity to allocate to build" msgstr "" -#: build/models.py:1769 +#: build/models.py:1796 msgid "Install into" msgstr "" -#: build/models.py:1770 +#: build/models.py:1797 msgid "Destination stock item" msgstr "" -#: build/serializers.py:91 +#: build/serializers.py:108 msgid "Build Level" msgstr "" -#: build/serializers.py:99 build/serializers.py:1190 build/serializers.py:1279 -#: part/admin.py:41 part/admin.py:408 part/models.py:4102 part/stocktake.py:219 -#: stock/admin.py:156 +#: build/serializers.py:116 build/serializers.py:1235 build/serializers.py:1331 +#: part/admin.py:41 part/admin.py:408 part/models.py:4160 part/stocktake.py:219 +#: stock/admin.py:157 msgid "Part Name" msgstr "" -#: build/serializers.py:111 +#: build/serializers.py:128 msgid "Project Code Label" msgstr "" -#: build/serializers.py:172 build/serializers.py:924 -#: templates/js/translated/build.js:1042 templates/js/translated/build.js:1495 +#: build/serializers.py:134 +msgid "Create Child Builds" +msgstr "" + +#: build/serializers.py:135 +msgid "Automatically generate child build orders" +msgstr "" + +#: build/serializers.py:219 build/serializers.py:968 +#: templates/js/translated/build.js:1045 templates/js/translated/build.js:1498 msgid "Build Output" msgstr "" -#: build/serializers.py:184 +#: build/serializers.py:231 msgid "Build output does not match the parent build" msgstr "" -#: build/serializers.py:188 +#: build/serializers.py:235 msgid "Output part does not match BuildOrder part" msgstr "" -#: build/serializers.py:192 +#: build/serializers.py:239 msgid "This build output has already been completed" msgstr "" -#: build/serializers.py:203 +#: build/serializers.py:250 msgid "This build output is not fully allocated" msgstr "" -#: build/serializers.py:223 build/serializers.py:270 +#: build/serializers.py:270 build/serializers.py:317 msgid "Enter quantity for build output" msgstr "" -#: build/serializers.py:291 +#: build/serializers.py:338 msgid "Integer quantity required for trackable parts" msgstr "" -#: build/serializers.py:294 +#: build/serializers.py:341 msgid "Integer quantity required, as the bill of materials contains trackable parts" msgstr "" -#: build/serializers.py:309 order/serializers.py:678 order/serializers.py:1464 -#: stock/serializers.py:680 templates/js/translated/purchase_order.js:1154 +#: build/serializers.py:356 order/serializers.py:763 order/serializers.py:1590 +#: stock/serializers.py:707 templates/js/translated/purchase_order.js:1137 #: templates/js/translated/stock.js:373 templates/js/translated/stock.js:571 msgid "Serial Numbers" msgstr "" -#: build/serializers.py:310 +#: build/serializers.py:357 msgid "Enter serial numbers for build outputs" msgstr "" -#: build/serializers.py:315 build/serializers.py:456 build/serializers.py:528 -#: order/serializers.py:654 order/serializers.py:778 order/serializers.py:1781 -#: part/serializers.py:1212 stock/serializers.py:102 stock/serializers.py:691 -#: stock/serializers.py:851 stock/serializers.py:977 stock/serializers.py:1425 -#: stock/serializers.py:1681 stock/templates/stock/item_base.html:394 +#: build/serializers.py:362 build/serializers.py:500 build/serializers.py:572 +#: order/serializers.py:739 order/serializers.py:880 order/serializers.py:1933 +#: part/serializers.py:1265 stock/serializers.py:103 stock/serializers.py:718 +#: stock/serializers.py:882 stock/serializers.py:1008 stock/serializers.py:1456 +#: stock/serializers.py:1712 stock/templates/stock/item_base.html:391 #: templates/js/translated/barcode.js:578 -#: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1032 -#: templates/js/translated/build.js:1174 templates/js/translated/build.js:2544 -#: templates/js/translated/purchase_order.js:1210 -#: templates/js/translated/purchase_order.js:1320 -#: templates/js/translated/sales_order.js:1547 -#: templates/js/translated/sales_order.js:1655 -#: templates/js/translated/sales_order.js:1663 -#: templates/js/translated/sales_order.js:1742 +#: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1035 +#: templates/js/translated/build.js:1177 templates/js/translated/build.js:2551 +#: templates/js/translated/purchase_order.js:1193 +#: templates/js/translated/purchase_order.js:1303 +#: templates/js/translated/sales_order.js:1513 +#: templates/js/translated/sales_order.js:1636 +#: templates/js/translated/sales_order.js:1644 +#: templates/js/translated/sales_order.js:1723 #: templates/js/translated/stock.js:684 templates/js/translated/stock.js:850 -#: templates/js/translated/stock.js:1067 templates/js/translated/stock.js:2286 -#: templates/js/translated/stock.js:2955 +#: templates/js/translated/stock.js:1067 templates/js/translated/stock.js:2287 +#: templates/js/translated/stock.js:2956 msgid "Location" msgstr "" -#: build/serializers.py:316 +#: build/serializers.py:363 msgid "Stock location for build output" msgstr "" -#: build/serializers.py:330 +#: build/serializers.py:377 msgid "Auto Allocate Serial Numbers" msgstr "" -#: build/serializers.py:331 +#: build/serializers.py:378 msgid "Automatically allocate required items with matching serial numbers" msgstr "" -#: build/serializers.py:346 -msgid "Serial numbers must be provided for trackable parts" -msgstr "" - -#: build/serializers.py:371 stock/api.py:1031 +#: build/serializers.py:415 order/serializers.py:858 stock/api.py:1017 +#: stock/models.py:1632 msgid "The following serial numbers already exist or are invalid" msgstr "" -#: build/serializers.py:418 build/serializers.py:480 build/serializers.py:569 +#: build/serializers.py:462 build/serializers.py:524 build/serializers.py:613 msgid "A list of build outputs must be provided" msgstr "" -#: build/serializers.py:457 +#: build/serializers.py:501 msgid "Stock location for scrapped outputs" msgstr "" -#: build/serializers.py:463 +#: build/serializers.py:507 msgid "Discard Allocations" msgstr "" -#: build/serializers.py:464 +#: build/serializers.py:508 msgid "Discard any stock allocations for scrapped outputs" msgstr "" -#: build/serializers.py:469 +#: build/serializers.py:513 msgid "Reason for scrapping build output(s)" msgstr "" -#: build/serializers.py:529 +#: build/serializers.py:573 msgid "Location for completed build outputs" msgstr "" -#: build/serializers.py:535 build/templates/build/build_base.html:159 -#: build/templates/build/detail.html:62 order/models.py:476 -#: order/models.py:1002 order/models.py:2159 order/serializers.py:686 -#: stock/admin.py:164 stock/serializers.py:1028 stock/serializers.py:1569 -#: stock/templates/stock/item_base.html:427 -#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2363 -#: templates/js/translated/purchase_order.js:1371 -#: templates/js/translated/purchase_order.js:1792 +#: build/serializers.py:579 build/templates/build/build_base.html:160 +#: build/templates/build/detail.html:62 order/models.py:488 +#: order/models.py:1029 order/models.py:2198 order/serializers.py:771 +#: stock/admin.py:165 stock/serializers.py:581 stock/serializers.py:1059 +#: stock/serializers.py:1600 stock/templates/stock/item_base.html:424 +#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2366 +#: templates/js/translated/purchase_order.js:1354 +#: templates/js/translated/purchase_order.js:1776 #: templates/js/translated/return_order.js:330 -#: templates/js/translated/sales_order.js:855 -#: templates/js/translated/stock.js:2261 templates/js/translated/stock.js:3079 -#: templates/js/translated/stock.js:3204 +#: templates/js/translated/sales_order.js:814 +#: templates/js/translated/stock.js:2262 templates/js/translated/stock.js:3080 +#: templates/js/translated/stock.js:3205 msgid "Status" msgstr "" -#: build/serializers.py:541 +#: build/serializers.py:585 msgid "Accept Incomplete Allocation" msgstr "" -#: build/serializers.py:542 +#: build/serializers.py:586 msgid "Complete outputs if stock has not been fully allocated" msgstr "" -#: build/serializers.py:654 +#: build/serializers.py:698 msgid "Consume Allocated Stock" msgstr "" -#: build/serializers.py:655 +#: build/serializers.py:699 msgid "Consume any stock which has already been allocated to this build" msgstr "" -#: build/serializers.py:661 +#: build/serializers.py:705 msgid "Remove Incomplete Outputs" msgstr "" -#: build/serializers.py:662 +#: build/serializers.py:706 msgid "Delete any build outputs which have not been completed" msgstr "" -#: build/serializers.py:689 +#: build/serializers.py:733 msgid "Not permitted" msgstr "" -#: build/serializers.py:690 +#: build/serializers.py:734 msgid "Accept as consumed by this build order" msgstr "" -#: build/serializers.py:691 +#: build/serializers.py:735 msgid "Deallocate before completing this build order" msgstr "" -#: build/serializers.py:721 +#: build/serializers.py:765 msgid "Overallocated Stock" msgstr "" -#: build/serializers.py:723 +#: build/serializers.py:767 msgid "How do you want to handle extra stock items assigned to the build order" msgstr "" -#: build/serializers.py:733 +#: build/serializers.py:777 msgid "Some stock items have been overallocated" msgstr "" -#: build/serializers.py:738 +#: build/serializers.py:782 msgid "Accept Unallocated" msgstr "" -#: build/serializers.py:739 +#: build/serializers.py:783 msgid "Accept that stock items have not been fully allocated to this build order" msgstr "" -#: build/serializers.py:749 templates/js/translated/build.js:316 +#: build/serializers.py:793 templates/js/translated/build.js:319 msgid "Required stock has not been fully allocated" msgstr "" -#: build/serializers.py:754 order/serializers.py:345 order/serializers.py:1365 +#: build/serializers.py:798 order/serializers.py:430 order/serializers.py:1491 msgid "Accept Incomplete" msgstr "" -#: build/serializers.py:755 +#: build/serializers.py:799 msgid "Accept that the required number of build outputs have not been completed" msgstr "" -#: build/serializers.py:765 templates/js/translated/build.js:320 +#: build/serializers.py:809 templates/js/translated/build.js:323 msgid "Required build quantity has not been completed" msgstr "" -#: build/serializers.py:774 +#: build/serializers.py:818 msgid "Build order has open child build orders" msgstr "" -#: build/serializers.py:777 +#: build/serializers.py:821 msgid "Build order must be in production state" msgstr "" -#: build/serializers.py:780 templates/js/translated/build.js:304 +#: build/serializers.py:824 templates/js/translated/build.js:307 msgid "Build order has incomplete outputs" msgstr "" -#: build/serializers.py:818 +#: build/serializers.py:862 msgid "Build Line" msgstr "" -#: build/serializers.py:828 +#: build/serializers.py:872 msgid "Build output" msgstr "" -#: build/serializers.py:836 +#: build/serializers.py:880 msgid "Build output must point to the same build" msgstr "" -#: build/serializers.py:872 +#: build/serializers.py:916 msgid "Build Line Item" msgstr "" -#: build/serializers.py:886 +#: build/serializers.py:930 msgid "bom_item.part must point to the same part as the build order" msgstr "" -#: build/serializers.py:901 stock/serializers.py:1294 +#: build/serializers.py:945 stock/serializers.py:1325 msgid "Item must be in stock" msgstr "" -#: build/serializers.py:949 order/serializers.py:1351 +#: build/serializers.py:993 order/serializers.py:1477 #, python-brace-format msgid "Available quantity ({q}) exceeded" msgstr "" -#: build/serializers.py:955 +#: build/serializers.py:999 msgid "Build output must be specified for allocation of tracked parts" msgstr "" -#: build/serializers.py:962 +#: build/serializers.py:1006 msgid "Build output cannot be specified for allocation of untracked parts" msgstr "" -#: build/serializers.py:986 order/serializers.py:1610 +#: build/serializers.py:1030 order/serializers.py:1750 msgid "Allocation items must be provided" msgstr "" -#: build/serializers.py:1049 +#: build/serializers.py:1093 msgid "Stock location where parts are to be sourced (leave blank to take from any location)" msgstr "" -#: build/serializers.py:1057 +#: build/serializers.py:1101 msgid "Exclude Location" msgstr "" -#: build/serializers.py:1058 +#: build/serializers.py:1102 msgid "Exclude stock items from this selected location" msgstr "" -#: build/serializers.py:1063 +#: build/serializers.py:1107 msgid "Interchangeable Stock" msgstr "" -#: build/serializers.py:1064 +#: build/serializers.py:1108 msgid "Stock items in multiple locations can be used interchangeably" msgstr "" -#: build/serializers.py:1069 +#: build/serializers.py:1113 msgid "Substitute Stock" msgstr "" -#: build/serializers.py:1070 +#: build/serializers.py:1114 msgid "Allow allocation of substitute parts" msgstr "" -#: build/serializers.py:1075 +#: build/serializers.py:1119 msgid "Optional Items" msgstr "" -#: build/serializers.py:1076 +#: build/serializers.py:1120 msgid "Allocate optional BOM items to build order" msgstr "" -#: build/serializers.py:1098 +#: build/serializers.py:1143 msgid "Failed to start auto-allocation task" msgstr "" -#: build/serializers.py:1181 +#: build/serializers.py:1226 stock/serializers.py:585 msgid "Supplier Part Number" msgstr "" -#: build/serializers.py:1182 company/models.py:506 +#: build/serializers.py:1227 company/models.py:503 stock/serializers.py:591 msgid "Manufacturer Part Number" msgstr "" -#: build/serializers.py:1183 stock/admin.py:53 stock/admin.py:175 -#: stock/serializers.py:457 +#: build/serializers.py:1228 stock/admin.py:53 stock/admin.py:176 +#: stock/serializers.py:467 msgid "Location Name" msgstr "" -#: build/serializers.py:1184 +#: build/serializers.py:1229 build/serializers.py:1327 msgid "Build Reference" msgstr "" -#: build/serializers.py:1185 +#: build/serializers.py:1230 msgid "BOM Reference" msgstr "" -#: build/serializers.py:1186 company/models.py:852 -#: company/templates/company/supplier_part.html:160 order/serializers.py:690 -#: stock/admin.py:228 stock/models.py:818 stock/serializers.py:1579 -#: stock/templates/stock/item_base.html:240 -#: templates/js/translated/company.js:1646 -#: templates/js/translated/purchase_order.js:1169 -#: templates/js/translated/purchase_order.js:1332 +#: build/serializers.py:1231 company/models.py:849 +#: company/templates/company/supplier_part.html:161 order/serializers.py:775 +#: stock/admin.py:229 stock/models.py:895 stock/serializers.py:1610 +#: stock/templates/stock/item_base.html:237 +#: templates/js/translated/company.js:1647 +#: templates/js/translated/purchase_order.js:1152 +#: templates/js/translated/purchase_order.js:1315 #: templates/js/translated/stock.js:1214 templates/js/translated/stock.js:1246 -#: templates/js/translated/stock.js:2509 +#: templates/js/translated/stock.js:2510 msgid "Packaging" msgstr "" -#: build/serializers.py:1189 part/admin.py:39 part/admin.py:398 -#: part/models.py:4101 part/stocktake.py:218 stock/admin.py:152 +#: build/serializers.py:1234 part/admin.py:39 part/admin.py:398 +#: part/models.py:4159 part/stocktake.py:218 stock/admin.py:153 msgid "Part ID" msgstr "" -#: build/serializers.py:1191 build/serializers.py:1280 part/admin.py:402 -#: part/models.py:4103 +#: build/serializers.py:1236 build/serializers.py:1332 part/admin.py:402 +#: part/models.py:4161 msgid "Part IPN" msgstr "" -#: build/serializers.py:1192 build/serializers.py:1282 part/admin.py:45 +#: build/serializers.py:1237 build/serializers.py:1334 part/admin.py:45 #: part/stocktake.py:220 msgid "Part Description" msgstr "" -#: build/serializers.py:1195 +#: build/serializers.py:1240 msgid "BOM Part ID" msgstr "" -#: build/serializers.py:1196 +#: build/serializers.py:1241 msgid "BOM Part Name" msgstr "" -#: build/serializers.py:1199 +#: build/serializers.py:1244 #: report/templates/report/inventree_return_order_report.html:25 -#: report/templates/report/inventree_test_report.html:88 stock/models.py:845 -#: stock/serializers.py:151 stock/templates/stock/item_base.html:311 -#: templates/js/translated/build.js:520 templates/js/translated/build.js:1540 -#: templates/js/translated/build.js:2527 -#: templates/js/translated/model_renderers.js:231 +#: report/templates/report/inventree_sales_order_shipment_report.html:45 +#: report/templates/report/inventree_test_report.html:88 stock/models.py:922 +#: stock/serializers.py:152 stock/templates/stock/item_base.html:308 +#: templates/js/translated/build.js:523 templates/js/translated/build.js:1543 +#: templates/js/translated/build.js:2534 +#: templates/js/translated/model_renderers.js:234 #: templates/js/translated/return_order.js:539 #: templates/js/translated/return_order.js:722 -#: templates/js/translated/sales_order.js:315 -#: templates/js/translated/sales_order.js:1647 -#: templates/js/translated/sales_order.js:1732 +#: templates/js/translated/sales_order.js:1628 +#: templates/js/translated/sales_order.js:1713 #: templates/js/translated/stock.js:602 msgid "Serial Number" msgstr "" -#: build/serializers.py:1212 stock/serializers.py:593 -#: templates/js/translated/build.js:1017 templates/js/translated/build.js:1164 -#: templates/js/translated/build.js:2516 +#: build/serializers.py:1257 stock/serializers.py:620 +#: templates/js/translated/build.js:1020 templates/js/translated/build.js:1167 +#: templates/js/translated/build.js:2523 msgid "Allocated Quantity" msgstr "" -#: build/serializers.py:1213 stock/templates/stock/item_base.html:340 +#: build/serializers.py:1258 stock/templates/stock/item_base.html:337 msgid "Available Quantity" msgstr "" -#: build/serializers.py:1283 +#: build/serializers.py:1335 msgid "Part Category ID" msgstr "" -#: build/serializers.py:1284 +#: build/serializers.py:1336 msgid "Part Category Name" msgstr "" -#: build/serializers.py:1291 common/models.py:1513 part/admin.py:113 -#: part/models.py:1166 templates/js/translated/table_filters.js:150 +#: build/serializers.py:1345 common/models.py:1582 part/admin.py:113 +#: part/models.py:1227 templates/js/translated/build.js:2738 +#: templates/js/translated/table_filters.js:150 #: templates/js/translated/table_filters.js:230 #: templates/js/translated/table_filters.js:783 msgid "Trackable" msgstr "" -#: build/serializers.py:1292 +#: build/serializers.py:1346 msgid "Inherited" msgstr "" -#: build/serializers.py:1293 part/models.py:4313 +#: build/serializers.py:1347 part/models.py:4370 #: part/templates/part/upload_bom.html:56 templates/js/translated/bom.js:1046 -#: templates/js/translated/build.js:2711 +#: templates/js/translated/build.js:2720 msgid "Allow Variants" msgstr "" -#: build/serializers.py:1297 part/models.py:4110 part/models.py:4584 +#: build/serializers.py:1351 part/models.py:4168 part/models.py:4646 #: stock/api.py:794 msgid "BOM Item" msgstr "" -#: build/serializers.py:1306 build/templates/build/detail.html:236 +#: build/serializers.py:1370 build/templates/build/detail.html:236 #: build/templates/build/sidebar.html:16 templates/js/translated/index.js:130 msgid "Allocated Stock" msgstr "" -#: build/serializers.py:1311 order/serializers.py:1175 part/admin.py:132 -#: part/bom.py:181 part/serializers.py:899 part/serializers.py:1602 -#: part/templates/part/part_base.html:210 templates/js/translated/bom.js:1208 -#: templates/js/translated/build.js:2804 templates/js/translated/part.js:712 +#: build/serializers.py:1375 order/serializers.py:1209 part/admin.py:132 +#: part/bom.py:186 part/serializers.py:951 part/serializers.py:1660 +#: part/templates/part/part_base.html:211 templates/js/translated/bom.js:1208 +#: templates/js/translated/build.js:2822 templates/js/translated/part.js:712 #: templates/js/translated/part.js:2155 #: templates/js/translated/table_filters.js:177 msgid "On Order" msgstr "" -#: build/serializers.py:1316 order/serializers.py:1176 part/serializers.py:1604 -#: templates/js/translated/build.js:2808 +#: build/serializers.py:1380 order/serializers.py:1210 part/serializers.py:1662 +#: templates/js/translated/build.js:2826 #: templates/js/translated/table_filters.js:367 msgid "In Production" msgstr "" -#: build/serializers.py:1321 part/bom.py:180 part/serializers.py:1629 -#: part/templates/part/part_base.html:192 -#: templates/js/translated/sales_order.js:1929 -msgid "Available Stock" -msgstr "" - -#: build/serializers.py:1325 -msgid "Available Substitute Stock" -msgstr "" - -#: build/serializers.py:1326 -msgid "Available Variant Stock" -msgstr "" - -#: build/serializers.py:1327 -msgid "Total Available Stock" -msgstr "" - -#: build/serializers.py:1328 part/serializers.py:906 +#: build/serializers.py:1384 part/serializers.py:958 msgid "External Stock" msgstr "" -#: build/status_codes.py:11 generic/states/tests.py:17 order/status_codes.py:12 -#: order/status_codes.py:42 order/status_codes.py:74 order/status_codes.py:98 +#: build/serializers.py:1385 part/bom.py:185 part/serializers.py:1687 +#: part/templates/part/part_base.html:193 +#: templates/js/translated/sales_order.js:1910 +msgid "Available Stock" +msgstr "" + +#: build/serializers.py:1386 +msgid "Available Substitute Stock" +msgstr "" + +#: build/serializers.py:1387 +msgid "Available Variant Stock" +msgstr "" + +#: build/status_codes.py:11 generic/states/tests.py:21 +#: generic/states/tests.py:131 order/status_codes.py:12 +#: order/status_codes.py:44 order/status_codes.py:76 order/status_codes.py:102 #: templates/js/translated/table_filters.js:601 msgid "Pending" msgstr "Na čekanju" @@ -1722,21 +1750,21 @@ msgstr "Na čekanju" msgid "Production" msgstr "" -#: build/status_codes.py:13 order/status_codes.py:14 order/status_codes.py:49 -#: order/status_codes.py:79 +#: build/status_codes.py:13 order/status_codes.py:14 order/status_codes.py:51 +#: order/status_codes.py:81 msgid "On Hold" msgstr "" -#: build/status_codes.py:14 order/status_codes.py:16 order/status_codes.py:51 -#: order/status_codes.py:82 +#: build/status_codes.py:14 order/status_codes.py:16 order/status_codes.py:53 +#: order/status_codes.py:84 msgid "Cancelled" msgstr "Otkazano" -#: build/status_codes.py:15 generic/states/tests.py:19 importer/models.py:509 -#: importer/status_codes.py:19 order/status_codes.py:15 -#: order/status_codes.py:50 order/status_codes.py:81 -#: order/templates/order/order_base.html:163 -#: order/templates/order/sales_order_base.html:168 report/models.py:443 +#: build/status_codes.py:15 generic/states/tests.py:23 importer/models.py:518 +#: importer/status_codes.py:27 order/status_codes.py:15 +#: order/status_codes.py:52 order/status_codes.py:83 +#: order/templates/order/order_base.html:172 +#: order/templates/order/sales_order_base.html:169 report/models.py:451 msgid "Complete" msgstr "Gotovo" @@ -1744,165 +1772,162 @@ msgstr "Gotovo" msgid "Stock required for build order" msgstr "" -#: build/tasks.py:201 +#: build/tasks.py:260 msgid "Overdue Build Order" msgstr "" -#: build/tasks.py:206 +#: build/tasks.py:265 #, python-brace-format msgid "Build order {bo} is now overdue" msgstr "" -#: build/templates/build/build_base.html:18 +#: build/templates/build/build_base.html:19 msgid "Part thumbnail" msgstr "" -#: build/templates/build/build_base.html:38 -#: company/templates/company/supplier_part.html:35 -#: order/templates/order/order_base.html:29 -#: order/templates/order/return_order_base.html:38 -#: order/templates/order/sales_order_base.html:38 -#: part/templates/part/part_base.html:41 -#: stock/templates/stock/item_base.html:40 -#: stock/templates/stock/location.html:52 +#: build/templates/build/build_base.html:39 +#: company/templates/company/supplier_part.html:36 +#: order/templates/order/order_base.html:30 +#: order/templates/order/return_order_base.html:39 +#: order/templates/order/sales_order_base.html:39 +#: part/templates/part/part_base.html:42 +#: stock/templates/stock/item_base.html:41 +#: stock/templates/stock/location.html:53 #: templates/js/translated/filters.js:338 msgid "Barcode actions" msgstr "" -#: build/templates/build/build_base.html:42 -#: company/templates/company/supplier_part.html:39 -#: order/templates/order/order_base.html:33 -#: order/templates/order/return_order_base.html:42 -#: order/templates/order/sales_order_base.html:42 -#: part/templates/part/part_base.html:44 -#: stock/templates/stock/item_base.html:44 -#: stock/templates/stock/location.html:54 templates/qr_button.html:1 +#: build/templates/build/build_base.html:43 +#: company/templates/company/supplier_part.html:40 +#: order/templates/order/order_base.html:34 +#: order/templates/order/return_order_base.html:43 +#: order/templates/order/sales_order_base.html:43 +#: part/templates/part/part_base.html:45 +#: stock/templates/stock/item_base.html:45 +#: stock/templates/stock/location.html:55 templates/qr_button.html:1 msgid "Show QR Code" msgstr "" -#: build/templates/build/build_base.html:45 -#: company/templates/company/supplier_part.html:41 -#: order/templates/order/order_base.html:36 -#: order/templates/order/return_order_base.html:45 -#: order/templates/order/sales_order_base.html:45 -#: part/templates/part/part_base.html:47 -#: stock/templates/stock/item_base.html:47 -#: stock/templates/stock/location.html:56 +#: build/templates/build/build_base.html:46 +#: company/templates/company/supplier_part.html:42 +#: order/templates/order/order_base.html:37 +#: order/templates/order/return_order_base.html:46 +#: order/templates/order/sales_order_base.html:46 +#: part/templates/part/part_base.html:48 +#: stock/templates/stock/item_base.html:48 +#: stock/templates/stock/location.html:57 #: templates/js/translated/barcode.js:527 #: templates/js/translated/barcode.js:532 msgid "Unlink Barcode" msgstr "" -#: build/templates/build/build_base.html:47 -#: company/templates/company/supplier_part.html:43 -#: order/templates/order/order_base.html:38 -#: order/templates/order/return_order_base.html:47 -#: order/templates/order/sales_order_base.html:47 -#: part/templates/part/part_base.html:49 -#: stock/templates/stock/item_base.html:49 -#: stock/templates/stock/location.html:58 +#: build/templates/build/build_base.html:48 +#: company/templates/company/supplier_part.html:44 +#: order/templates/order/order_base.html:39 +#: order/templates/order/return_order_base.html:48 +#: order/templates/order/sales_order_base.html:48 +#: part/templates/part/part_base.html:50 +#: stock/templates/stock/item_base.html:50 +#: stock/templates/stock/location.html:59 msgid "Link Barcode" msgstr "" -#: build/templates/build/build_base.html:56 -#: order/templates/order/order_base.html:46 -#: order/templates/order/return_order_base.html:55 -#: order/templates/order/sales_order_base.html:55 +#: build/templates/build/build_base.html:57 +#: order/templates/order/order_base.html:47 +#: order/templates/order/return_order_base.html:56 +#: order/templates/order/sales_order_base.html:56 msgid "Print actions" msgstr "" -#: build/templates/build/build_base.html:60 +#: build/templates/build/build_base.html:61 msgid "Print build order report" msgstr "" -#: build/templates/build/build_base.html:67 +#: build/templates/build/build_base.html:68 msgid "Build actions" msgstr "" -#: build/templates/build/build_base.html:71 +#: build/templates/build/build_base.html:72 msgid "Edit Build" msgstr "" -#: build/templates/build/build_base.html:73 +#: build/templates/build/build_base.html:74 msgid "Duplicate Build" msgstr "" -#: build/templates/build/build_base.html:76 +#: build/templates/build/build_base.html:77 msgid "Hold Build" msgstr "" -#: build/templates/build/build_base.html:79 +#: build/templates/build/build_base.html:80 msgid "Cancel Build" msgstr "" -#: build/templates/build/build_base.html:82 +#: build/templates/build/build_base.html:83 msgid "Delete Build" msgstr "" -#: build/templates/build/build_base.html:87 -msgid "Isueue Build" -msgstr "" - #: build/templates/build/build_base.html:88 +#: build/templates/build/build_base.html:89 msgid "Issue Build" msgstr "" -#: build/templates/build/build_base.html:91 #: build/templates/build/build_base.html:92 +#: build/templates/build/build_base.html:93 msgid "Complete Build" msgstr "" -#: build/templates/build/build_base.html:115 +#: build/templates/build/build_base.html:116 msgid "Build Description" msgstr "" -#: build/templates/build/build_base.html:125 +#: build/templates/build/build_base.html:126 msgid "No build outputs have been created for this build order" msgstr "" -#: build/templates/build/build_base.html:132 +#: build/templates/build/build_base.html:133 msgid "Build Order is ready to mark as completed" msgstr "" -#: build/templates/build/build_base.html:137 +#: build/templates/build/build_base.html:138 msgid "Build Order cannot be completed as outstanding outputs remain" msgstr "" -#: build/templates/build/build_base.html:142 +#: build/templates/build/build_base.html:143 msgid "Required build quantity has not yet been completed" msgstr "" -#: build/templates/build/build_base.html:147 +#: build/templates/build/build_base.html:148 msgid "Stock has not been fully allocated to this Build Order" msgstr "" -#: build/templates/build/build_base.html:168 -#: build/templates/build/detail.html:138 order/models.py:308 -#: order/models.py:1391 order/serializers.py:174 -#: order/templates/order/order_base.html:191 -#: order/templates/order/return_order_base.html:167 -#: order/templates/order/sales_order_base.html:199 +#: build/templates/build/build_base.html:169 +#: build/templates/build/detail.html:138 order/models.py:315 +#: order/models.py:1408 order/serializers.py:254 +#: order/templates/order/order_base.html:200 +#: order/templates/order/return_order_base.html:168 +#: order/templates/order/sales_order_base.html:200 #: report/templates/report/inventree_build_order_report.html:125 -#: templates/js/translated/build.js:2411 templates/js/translated/part.js:1837 -#: templates/js/translated/purchase_order.js:1809 -#: templates/js/translated/purchase_order.js:2217 +#: templates/js/translated/build.js:2414 templates/js/translated/part.js:1837 +#: templates/js/translated/purchase_order.js:1793 +#: templates/js/translated/purchase_order.js:2201 #: templates/js/translated/return_order.js:346 #: templates/js/translated/return_order.js:749 -#: templates/js/translated/sales_order.js:871 -#: templates/js/translated/sales_order.js:1903 +#: templates/js/translated/sales_order.js:830 +#: templates/js/translated/sales_order.js:1884 msgid "Target Date" msgstr "" -#: build/templates/build/build_base.html:173 +#: build/templates/build/build_base.html:174 #, python-format msgid "This build was due on %(target)s" msgstr "" -#: build/templates/build/build_base.html:173 -#: build/templates/build/build_base.html:230 -#: order/templates/order/order_base.html:127 -#: order/templates/order/return_order_base.html:120 -#: order/templates/order/sales_order_base.html:129 +#: build/templates/build/build_base.html:174 +#: build/templates/build/build_base.html:231 +#: order/templates/order/order_base.html:128 +#: order/templates/order/return_order_base.html:121 +#: order/templates/order/sales_order_base.html:130 #: templates/js/translated/table_filters.js:97 #: templates/js/translated/table_filters.js:545 #: templates/js/translated/table_filters.js:629 @@ -1910,49 +1935,50 @@ msgstr "" msgid "Overdue" msgstr "" -#: build/templates/build/build_base.html:185 +#: build/templates/build/build_base.html:186 #: build/templates/build/detail.html:67 build/templates/build/sidebar.html:13 msgid "Completed Outputs" msgstr "" -#: build/templates/build/build_base.html:198 -#: build/templates/build/detail.html:101 order/api.py:1406 order/models.py:892 -#: order/models.py:1650 order/models.py:1765 order/models.py:1924 -#: order/templates/order/sales_order_base.html:9 -#: order/templates/order/sales_order_base.html:28 +#: build/templates/build/build_base.html:199 +#: build/templates/build/detail.html:101 order/api.py:1528 order/models.py:914 +#: order/models.py:1666 order/models.py:1794 order/models.py:1957 +#: order/templates/order/sales_order_base.html:10 +#: order/templates/order/sales_order_base.html:29 #: report/templates/report/inventree_build_order_report.html:135 #: report/templates/report/inventree_sales_order_report.html:14 -#: stock/templates/stock/item_base.html:369 +#: report/templates/report/inventree_sales_order_shipment_report.html:15 +#: stock/templates/stock/item_base.html:366 #: templates/email/overdue_sales_order.html:15 -#: templates/js/translated/pricing.js:929 -#: templates/js/translated/sales_order.js:805 -#: templates/js/translated/sales_order.js:1028 -#: templates/js/translated/stock.js:3008 +#: templates/js/translated/pricing.js:927 +#: templates/js/translated/sales_order.js:764 +#: templates/js/translated/sales_order.js:1001 +#: templates/js/translated/stock.js:3009 msgid "Sales Order" msgstr "" -#: build/templates/build/build_base.html:219 -#: build/templates/build/detail.html:94 templates/js/translated/build.js:2328 +#: build/templates/build/build_base.html:220 +#: build/templates/build/detail.html:94 templates/js/translated/build.js:2331 msgid "Priority" msgstr "" -#: build/templates/build/build_base.html:267 +#: build/templates/build/build_base.html:268 msgid "Issue Build Order" msgstr "" -#: build/templates/build/build_base.html:271 +#: build/templates/build/build_base.html:272 msgid "Issue this Build Order?" msgstr "" -#: build/templates/build/build_base.html:302 +#: build/templates/build/build_base.html:303 msgid "Delete Build Order" msgstr "" -#: build/templates/build/build_base.html:312 +#: build/templates/build/build_base.html:313 msgid "Build Order QR Code" msgstr "" -#: build/templates/build/build_base.html:324 +#: build/templates/build/build_base.html:325 msgid "Link Barcode to Build Order" msgstr "" @@ -1968,8 +1994,9 @@ msgstr "" msgid "Stock can be taken from any available location." msgstr "" -#: build/templates/build/detail.html:49 order/models.py:1532 -#: templates/js/translated/purchase_order.js:2259 +#: build/templates/build/detail.html:49 order/models.py:548 +#: order/models.py:1548 order/templates/order/order_base.html:135 +#: templates/js/translated/purchase_order.js:2243 msgid "Destination" msgstr "" @@ -1981,23 +2008,24 @@ msgstr "" msgid "Allocated Parts" msgstr "" -#: build/templates/build/detail.html:80 stock/admin.py:162 -#: stock/templates/stock/item_base.html:162 -#: templates/js/translated/build.js:1553 -#: templates/js/translated/model_renderers.js:242 -#: templates/js/translated/purchase_order.js:1326 +#: build/templates/build/detail.html:80 +#: report/templates/report/inventree_sales_order_shipment_report.html:47 +#: stock/admin.py:163 stock/templates/stock/item_base.html:159 +#: templates/js/translated/build.js:1556 +#: templates/js/translated/model_renderers.js:245 +#: templates/js/translated/purchase_order.js:1309 #: templates/js/translated/stock.js:1139 templates/js/translated/stock.js:1240 -#: templates/js/translated/stock.js:2275 templates/js/translated/stock.js:3211 +#: templates/js/translated/stock.js:2276 templates/js/translated/stock.js:3212 #: templates/js/translated/table_filters.js:320 #: templates/js/translated/table_filters.js:411 msgid "Batch" msgstr "" #: build/templates/build/detail.html:133 -#: order/templates/order/order_base.html:178 -#: order/templates/order/return_order_base.html:154 -#: order/templates/order/sales_order_base.html:193 -#: templates/js/translated/build.js:2371 +#: order/templates/order/order_base.html:187 +#: order/templates/order/return_order_base.html:155 +#: order/templates/order/sales_order_base.html:194 +#: templates/js/translated/build.js:2374 msgid "Created" msgstr "" @@ -2005,8 +2033,8 @@ msgstr "" msgid "No target date set" msgstr "" -#: build/templates/build/detail.html:149 -#: order/templates/order/sales_order_base.html:209 +#: build/templates/build/detail.html:149 order/api.py:794 +#: order/templates/order/sales_order_base.html:210 #: templates/js/translated/table_filters.js:692 msgid "Completed" msgstr "" @@ -2052,7 +2080,7 @@ msgid "Order required parts" msgstr "" #: build/templates/build/detail.html:192 -#: templates/js/translated/purchase_order.js:795 +#: templates/js/translated/purchase_order.js:778 msgid "Order Parts" msgstr "" @@ -2120,7 +2148,7 @@ msgstr "" msgid "Build Order Details" msgstr "" -#: build/templates/build/sidebar.html:8 order/serializers.py:82 +#: build/templates/build/sidebar.html:8 order/serializers.py:113 #: order/templates/order/po_sidebar.html:5 #: order/templates/order/return_order_detail.html:18 #: order/templates/order/so_sidebar.html:5 @@ -2139,43 +2167,38 @@ msgstr "" msgid "Test Statistics" msgstr "" -#: common/api.py:693 +#: common/api.py:725 msgid "Is Link" msgstr "" -#: common/api.py:701 +#: common/api.py:733 msgid "Is File" msgstr "" -#: common/api.py:744 +#: common/api.py:776 msgid "User does not have permission to delete these attachments" msgstr "" -#: common/api.py:761 +#: common/api.py:793 msgid "User does not have permission to delete this attachment" msgstr "" -#: common/currency.py:132 +#: common/currency.py:134 msgid "Invalid currency code" msgstr "" -#: common/currency.py:134 +#: common/currency.py:136 msgid "Duplicate currency code" msgstr "" -#: common/currency.py:139 +#: common/currency.py:141 msgid "No valid currency codes provided" msgstr "" -#: common/currency.py:156 +#: common/currency.py:158 msgid "No plugin" msgstr "" -#: common/files.py:63 -#, python-brace-format -msgid "Unsupported file format: {fmt}" -msgstr "" - #: common/files.py:65 msgid "Error reading file (invalid encoding)" msgstr "" @@ -2192,1883 +2215,2039 @@ msgstr "" msgid "Error reading file (data could be corrupted)" msgstr "" -#: common/forms.py:12 +#: common/forms.py:12 common/forms.py:25 msgid "File" msgstr "" -#: common/forms.py:12 +#: common/forms.py:12 common/forms.py:26 msgid "Select file to upload" msgstr "" -#: common/forms.py:25 -msgid "{name.title()} File" -msgstr "" - -#: common/forms.py:26 -#, python-brace-format -msgid "Select {name} file to upload" -msgstr "" - -#: common/models.py:86 +#: common/models.py:89 msgid "Updated" msgstr "" -#: common/models.py:87 +#: common/models.py:90 msgid "Timestamp of last update" msgstr "" -#: common/models.py:120 +#: common/models.py:123 msgid "Site URL is locked by configuration" msgstr "" -#: common/models.py:150 +#: common/models.py:153 msgid "Unique project code" msgstr "" -#: common/models.py:157 +#: common/models.py:160 msgid "Project description" msgstr "" -#: common/models.py:166 +#: common/models.py:169 msgid "User or group responsible for this project" msgstr "" -#: common/models.py:783 -msgid "Settings key (must be unique - case insensitive)" +#: common/models.py:783 common/models.py:2236 common/models.py:2613 +msgid "Settings key" msgstr "" #: common/models.py:787 msgid "Settings value" msgstr "" -#: common/models.py:839 +#: common/models.py:842 msgid "Chosen value is not a valid option" msgstr "" -#: common/models.py:855 +#: common/models.py:858 msgid "Value must be a boolean value" msgstr "" -#: common/models.py:863 +#: common/models.py:866 msgid "Value must be an integer value" msgstr "" -#: common/models.py:900 +#: common/models.py:874 +msgid "Value must be a valid number" +msgstr "" + +#: common/models.py:899 +msgid "Value does not pass validation checks" +msgstr "" + +#: common/models.py:921 msgid "Key string must be unique" msgstr "" -#: common/models.py:1132 +#: common/models.py:1189 msgid "No group" msgstr "" -#: common/models.py:1231 +#: common/models.py:1288 msgid "Restart required" msgstr "" -#: common/models.py:1233 +#: common/models.py:1290 msgid "A setting has been changed which requires a server restart" msgstr "" -#: common/models.py:1240 +#: common/models.py:1297 msgid "Pending migrations" msgstr "" -#: common/models.py:1241 +#: common/models.py:1298 msgid "Number of pending database migrations" msgstr "" -#: common/models.py:1246 +#: common/models.py:1303 msgid "Server Instance Name" msgstr "" -#: common/models.py:1248 +#: common/models.py:1305 msgid "String descriptor for the server instance" msgstr "" -#: common/models.py:1252 +#: common/models.py:1309 msgid "Use instance name" msgstr "" -#: common/models.py:1253 +#: common/models.py:1310 msgid "Use the instance name in the title-bar" msgstr "" -#: common/models.py:1258 +#: common/models.py:1315 msgid "Restrict showing `about`" msgstr "" -#: common/models.py:1259 +#: common/models.py:1316 msgid "Show the `about` modal only to superusers" msgstr "" -#: common/models.py:1264 company/models.py:111 company/models.py:112 +#: common/models.py:1321 company/models.py:108 company/models.py:109 msgid "Company name" msgstr "" -#: common/models.py:1265 +#: common/models.py:1322 msgid "Internal company name" msgstr "" -#: common/models.py:1269 +#: common/models.py:1326 msgid "Base URL" msgstr "" -#: common/models.py:1270 +#: common/models.py:1327 msgid "Base URL for server instance" msgstr "" -#: common/models.py:1276 +#: common/models.py:1333 msgid "Default Currency" msgstr "" -#: common/models.py:1277 +#: common/models.py:1334 msgid "Select base currency for pricing calculations" msgstr "" -#: common/models.py:1283 +#: common/models.py:1340 msgid "Supported Currencies" msgstr "" -#: common/models.py:1284 +#: common/models.py:1341 msgid "List of supported currency codes" msgstr "" -#: common/models.py:1290 +#: common/models.py:1347 msgid "Currency Update Interval" msgstr "" -#: common/models.py:1292 +#: common/models.py:1349 msgid "How often to update exchange rates (set to zero to disable)" msgstr "" -#: common/models.py:1295 common/models.py:1351 common/models.py:1364 -#: common/models.py:1372 common/models.py:1381 common/models.py:1390 -#: common/models.py:1627 common/models.py:1649 common/models.py:1764 -#: common/models.py:2146 +#: common/models.py:1352 common/models.py:1408 common/models.py:1421 +#: common/models.py:1429 common/models.py:1438 common/models.py:1447 +#: common/models.py:1696 common/models.py:1718 common/models.py:1819 +#: common/models.py:2208 msgid "days" msgstr "" -#: common/models.py:1299 +#: common/models.py:1356 msgid "Currency Update Plugin" msgstr "" -#: common/models.py:1300 +#: common/models.py:1357 msgid "Currency update plugin to use" msgstr "" -#: common/models.py:1305 +#: common/models.py:1362 msgid "Download from URL" msgstr "" -#: common/models.py:1307 +#: common/models.py:1364 msgid "Allow download of remote images and files from external URL" msgstr "" -#: common/models.py:1313 +#: common/models.py:1370 msgid "Download Size Limit" msgstr "" -#: common/models.py:1314 +#: common/models.py:1371 msgid "Maximum allowable download size for remote image" msgstr "" -#: common/models.py:1320 +#: common/models.py:1377 msgid "User-agent used to download from URL" msgstr "" -#: common/models.py:1322 +#: common/models.py:1379 msgid "Allow to override the user-agent used to download images and files from external URL (leave blank for the default)" msgstr "" -#: common/models.py:1327 +#: common/models.py:1384 msgid "Strict URL Validation" msgstr "" -#: common/models.py:1328 +#: common/models.py:1385 msgid "Require schema specification when validating URLs" msgstr "" -#: common/models.py:1333 +#: common/models.py:1390 msgid "Require confirm" msgstr "" -#: common/models.py:1334 +#: common/models.py:1391 msgid "Require explicit user confirmation for certain action." msgstr "" -#: common/models.py:1339 +#: common/models.py:1396 msgid "Tree Depth" msgstr "" -#: common/models.py:1341 +#: common/models.py:1398 msgid "Default tree depth for treeview. Deeper levels can be lazy loaded as they are needed." msgstr "" -#: common/models.py:1347 +#: common/models.py:1404 msgid "Update Check Interval" msgstr "" -#: common/models.py:1348 +#: common/models.py:1405 msgid "How often to check for updates (set to zero to disable)" msgstr "" -#: common/models.py:1354 +#: common/models.py:1411 msgid "Automatic Backup" msgstr "" -#: common/models.py:1355 +#: common/models.py:1412 msgid "Enable automatic backup of database and media files" msgstr "" -#: common/models.py:1360 +#: common/models.py:1417 msgid "Auto Backup Interval" msgstr "" -#: common/models.py:1361 +#: common/models.py:1418 msgid "Specify number of days between automated backup events" msgstr "" -#: common/models.py:1367 +#: common/models.py:1424 msgid "Task Deletion Interval" msgstr "" -#: common/models.py:1369 +#: common/models.py:1426 msgid "Background task results will be deleted after specified number of days" msgstr "" -#: common/models.py:1376 +#: common/models.py:1433 msgid "Error Log Deletion Interval" msgstr "" -#: common/models.py:1378 +#: common/models.py:1435 msgid "Error logs will be deleted after specified number of days" msgstr "" -#: common/models.py:1385 +#: common/models.py:1442 msgid "Notification Deletion Interval" msgstr "" -#: common/models.py:1387 +#: common/models.py:1444 msgid "User notifications will be deleted after specified number of days" msgstr "" -#: common/models.py:1394 templates/InvenTree/settings/sidebar.html:31 +#: common/models.py:1451 templates/InvenTree/settings/sidebar.html:31 msgid "Barcode Support" msgstr "" -#: common/models.py:1395 +#: common/models.py:1452 msgid "Enable barcode scanner support in the web interface" msgstr "" -#: common/models.py:1400 +#: common/models.py:1457 +msgid "Store Barcode Results" +msgstr "" + +#: common/models.py:1458 +msgid "Store barcode scan results in the database" +msgstr "" + +#: common/models.py:1463 +msgid "Barcode Scans Maximum Count" +msgstr "" + +#: common/models.py:1464 +msgid "Maximum number of barcode scan results to store" +msgstr "" + +#: common/models.py:1469 msgid "Barcode Input Delay" msgstr "" -#: common/models.py:1401 +#: common/models.py:1470 msgid "Barcode input processing delay time" msgstr "" -#: common/models.py:1407 +#: common/models.py:1476 msgid "Barcode Webcam Support" msgstr "" -#: common/models.py:1408 +#: common/models.py:1477 msgid "Allow barcode scanning via webcam in browser" msgstr "" -#: common/models.py:1413 +#: common/models.py:1482 msgid "Barcode Show Data" msgstr "" -#: common/models.py:1414 +#: common/models.py:1483 msgid "Display barcode data in browser as text" msgstr "" -#: common/models.py:1419 +#: common/models.py:1488 msgid "Barcode Generation Plugin" msgstr "" -#: common/models.py:1420 +#: common/models.py:1489 msgid "Plugin to use for internal barcode data generation" msgstr "" -#: common/models.py:1425 +#: common/models.py:1494 msgid "Part Revisions" msgstr "" -#: common/models.py:1426 +#: common/models.py:1495 msgid "Enable revision field for Part" msgstr "" -#: common/models.py:1431 +#: common/models.py:1500 msgid "Assembly Revision Only" msgstr "" -#: common/models.py:1432 +#: common/models.py:1501 msgid "Only allow revisions for assembly parts" msgstr "" -#: common/models.py:1437 +#: common/models.py:1506 msgid "Allow Deletion from Assembly" msgstr "" -#: common/models.py:1438 +#: common/models.py:1507 msgid "Allow deletion of parts which are used in an assembly" msgstr "" -#: common/models.py:1443 +#: common/models.py:1512 msgid "IPN Regex" msgstr "" -#: common/models.py:1444 +#: common/models.py:1513 msgid "Regular expression pattern for matching Part IPN" msgstr "" -#: common/models.py:1447 +#: common/models.py:1516 msgid "Allow Duplicate IPN" msgstr "" -#: common/models.py:1448 +#: common/models.py:1517 msgid "Allow multiple parts to share the same IPN" msgstr "" -#: common/models.py:1453 +#: common/models.py:1522 msgid "Allow Editing IPN" msgstr "" -#: common/models.py:1454 +#: common/models.py:1523 msgid "Allow changing the IPN value while editing a part" msgstr "" -#: common/models.py:1459 +#: common/models.py:1528 msgid "Copy Part BOM Data" msgstr "" -#: common/models.py:1460 +#: common/models.py:1529 msgid "Copy BOM data by default when duplicating a part" msgstr "" -#: common/models.py:1465 +#: common/models.py:1534 msgid "Copy Part Parameter Data" msgstr "" -#: common/models.py:1466 +#: common/models.py:1535 msgid "Copy parameter data by default when duplicating a part" msgstr "" -#: common/models.py:1471 +#: common/models.py:1540 msgid "Copy Part Test Data" msgstr "" -#: common/models.py:1472 +#: common/models.py:1541 msgid "Copy test data by default when duplicating a part" msgstr "" -#: common/models.py:1477 +#: common/models.py:1546 msgid "Copy Category Parameter Templates" msgstr "" -#: common/models.py:1478 +#: common/models.py:1547 msgid "Copy category parameter templates when creating a part" msgstr "" -#: common/models.py:1483 part/admin.py:108 part/models.py:3945 -#: report/models.py:293 report/models.py:360 report/serializers.py:90 -#: report/serializers.py:131 stock/serializers.py:232 +#: common/models.py:1552 part/admin.py:108 part/models.py:4003 +#: report/models.py:301 report/models.py:368 report/serializers.py:91 +#: report/serializers.py:132 stock/serializers.py:233 #: templates/js/translated/table_filters.js:138 #: templates/js/translated/table_filters.js:775 msgid "Template" msgstr "" -#: common/models.py:1484 +#: common/models.py:1553 msgid "Parts are templates by default" msgstr "" -#: common/models.py:1490 +#: common/models.py:1559 msgid "Parts can be assembled from other components by default" msgstr "" -#: common/models.py:1495 part/admin.py:95 part/models.py:1160 -#: part/serializers.py:1596 templates/js/translated/table_filters.js:737 +#: common/models.py:1564 part/admin.py:95 part/models.py:1221 +#: part/serializers.py:1654 templates/js/translated/table_filters.js:737 msgid "Component" msgstr "" -#: common/models.py:1496 +#: common/models.py:1565 msgid "Parts can be used as sub-components by default" msgstr "" -#: common/models.py:1501 part/admin.py:100 part/models.py:1178 +#: common/models.py:1570 part/admin.py:100 part/models.py:1239 msgid "Purchaseable" msgstr "" -#: common/models.py:1502 +#: common/models.py:1571 msgid "Parts are purchaseable by default" msgstr "" -#: common/models.py:1507 part/admin.py:104 part/models.py:1184 +#: common/models.py:1576 part/admin.py:104 part/models.py:1245 #: templates/js/translated/table_filters.js:763 msgid "Salable" msgstr "" -#: common/models.py:1508 +#: common/models.py:1577 msgid "Parts are salable by default" msgstr "" -#: common/models.py:1514 +#: common/models.py:1583 msgid "Parts are trackable by default" msgstr "" -#: common/models.py:1519 part/admin.py:117 part/models.py:1200 -#: part/templates/part/part_base.html:154 +#: common/models.py:1588 part/admin.py:117 part/models.py:1261 +#: part/templates/part/part_base.html:155 #: templates/js/translated/table_filters.js:142 #: templates/js/translated/table_filters.js:787 msgid "Virtual" msgstr "" -#: common/models.py:1520 +#: common/models.py:1589 msgid "Parts are virtual by default" msgstr "" -#: common/models.py:1525 +#: common/models.py:1594 msgid "Show Import in Views" msgstr "" -#: common/models.py:1526 +#: common/models.py:1595 msgid "Display the import wizard in some part views" msgstr "" -#: common/models.py:1531 +#: common/models.py:1600 msgid "Show related parts" msgstr "" -#: common/models.py:1532 +#: common/models.py:1601 msgid "Display related parts for a part" msgstr "" -#: common/models.py:1537 +#: common/models.py:1606 msgid "Initial Stock Data" msgstr "" -#: common/models.py:1538 +#: common/models.py:1607 msgid "Allow creation of initial stock when adding a new part" msgstr "" -#: common/models.py:1543 templates/js/translated/part.js:108 +#: common/models.py:1612 templates/js/translated/part.js:108 msgid "Initial Supplier Data" msgstr "" -#: common/models.py:1545 +#: common/models.py:1614 msgid "Allow creation of initial supplier data when adding a new part" msgstr "" -#: common/models.py:1551 +#: common/models.py:1620 msgid "Part Name Display Format" msgstr "" -#: common/models.py:1552 +#: common/models.py:1621 msgid "Format to display the part name" msgstr "" -#: common/models.py:1558 +#: common/models.py:1627 msgid "Part Category Default Icon" msgstr "" -#: common/models.py:1559 +#: common/models.py:1628 msgid "Part category default icon (empty means no icon)" msgstr "" -#: common/models.py:1564 +#: common/models.py:1633 msgid "Enforce Parameter Units" msgstr "" -#: common/models.py:1566 +#: common/models.py:1635 msgid "If units are provided, parameter values must match the specified units" msgstr "" -#: common/models.py:1572 +#: common/models.py:1641 msgid "Minimum Pricing Decimal Places" msgstr "" -#: common/models.py:1574 +#: common/models.py:1643 msgid "Minimum number of decimal places to display when rendering pricing data" msgstr "" -#: common/models.py:1585 +#: common/models.py:1654 msgid "Maximum Pricing Decimal Places" msgstr "" -#: common/models.py:1587 +#: common/models.py:1656 msgid "Maximum number of decimal places to display when rendering pricing data" msgstr "" -#: common/models.py:1598 +#: common/models.py:1667 msgid "Use Supplier Pricing" msgstr "" -#: common/models.py:1600 +#: common/models.py:1669 msgid "Include supplier price breaks in overall pricing calculations" msgstr "" -#: common/models.py:1606 +#: common/models.py:1675 msgid "Purchase History Override" msgstr "" -#: common/models.py:1608 +#: common/models.py:1677 msgid "Historical purchase order pricing overrides supplier price breaks" msgstr "" -#: common/models.py:1614 +#: common/models.py:1683 msgid "Use Stock Item Pricing" msgstr "" -#: common/models.py:1616 +#: common/models.py:1685 msgid "Use pricing from manually entered stock data for pricing calculations" msgstr "" -#: common/models.py:1622 +#: common/models.py:1691 msgid "Stock Item Pricing Age" msgstr "" -#: common/models.py:1624 +#: common/models.py:1693 msgid "Exclude stock items older than this number of days from pricing calculations" msgstr "" -#: common/models.py:1631 +#: common/models.py:1700 msgid "Use Variant Pricing" msgstr "" -#: common/models.py:1632 +#: common/models.py:1701 msgid "Include variant pricing in overall pricing calculations" msgstr "" -#: common/models.py:1637 +#: common/models.py:1706 msgid "Active Variants Only" msgstr "" -#: common/models.py:1639 +#: common/models.py:1708 msgid "Only use active variant parts for calculating variant pricing" msgstr "" -#: common/models.py:1645 +#: common/models.py:1714 msgid "Pricing Rebuild Interval" msgstr "" -#: common/models.py:1647 +#: common/models.py:1716 msgid "Number of days before part pricing is automatically updated" msgstr "" -#: common/models.py:1654 +#: common/models.py:1723 msgid "Internal Prices" msgstr "" -#: common/models.py:1655 +#: common/models.py:1724 msgid "Enable internal prices for parts" msgstr "" -#: common/models.py:1660 +#: common/models.py:1729 msgid "Internal Price Override" msgstr "" -#: common/models.py:1662 +#: common/models.py:1731 msgid "If available, internal prices override price range calculations" msgstr "" -#: common/models.py:1668 +#: common/models.py:1737 msgid "Enable label printing" msgstr "" -#: common/models.py:1669 +#: common/models.py:1738 msgid "Enable label printing from the web interface" msgstr "" -#: common/models.py:1674 +#: common/models.py:1743 msgid "Label Image DPI" msgstr "" -#: common/models.py:1676 +#: common/models.py:1745 msgid "DPI resolution when generating image files to supply to label printing plugins" msgstr "" -#: common/models.py:1682 +#: common/models.py:1751 msgid "Enable Reports" msgstr "" -#: common/models.py:1683 +#: common/models.py:1752 msgid "Enable generation of reports" msgstr "" -#: common/models.py:1688 templates/stats.html:25 +#: common/models.py:1757 templates/stats.html:25 msgid "Debug Mode" msgstr "" -#: common/models.py:1689 +#: common/models.py:1758 msgid "Generate reports in debug mode (HTML output)" msgstr "" -#: common/models.py:1694 +#: common/models.py:1763 msgid "Log Report Errors" msgstr "" -#: common/models.py:1695 +#: common/models.py:1764 msgid "Log errors which occur when generating reports" msgstr "" -#: common/models.py:1700 plugin/builtin/labels/label_sheet.py:28 -#: report/models.py:301 +#: common/models.py:1769 plugin/builtin/labels/label_sheet.py:28 +#: report/models.py:309 msgid "Page Size" msgstr "" -#: common/models.py:1701 +#: common/models.py:1770 msgid "Default page size for PDF reports" msgstr "" -#: common/models.py:1706 -msgid "Enable Test Reports" -msgstr "" - -#: common/models.py:1707 -msgid "Enable generation of test reports" -msgstr "" - -#: common/models.py:1712 -msgid "Attach Test Reports" -msgstr "" - -#: common/models.py:1714 -msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item" -msgstr "" - -#: common/models.py:1720 +#: common/models.py:1775 msgid "Globally Unique Serials" msgstr "" -#: common/models.py:1721 +#: common/models.py:1776 msgid "Serial numbers for stock items must be globally unique" msgstr "" -#: common/models.py:1726 +#: common/models.py:1781 msgid "Autofill Serial Numbers" msgstr "" -#: common/models.py:1727 +#: common/models.py:1782 msgid "Autofill serial numbers in forms" msgstr "" -#: common/models.py:1732 +#: common/models.py:1787 msgid "Delete Depleted Stock" msgstr "" -#: common/models.py:1734 +#: common/models.py:1789 msgid "Determines default behavior when a stock item is depleted" msgstr "" -#: common/models.py:1740 +#: common/models.py:1795 msgid "Batch Code Template" msgstr "" -#: common/models.py:1742 +#: common/models.py:1797 msgid "Template for generating default batch codes for stock items" msgstr "" -#: common/models.py:1747 +#: common/models.py:1802 msgid "Stock Expiry" msgstr "" -#: common/models.py:1748 +#: common/models.py:1803 msgid "Enable stock expiry functionality" msgstr "" -#: common/models.py:1753 +#: common/models.py:1808 msgid "Sell Expired Stock" msgstr "" -#: common/models.py:1754 +#: common/models.py:1809 msgid "Allow sale of expired stock" msgstr "" -#: common/models.py:1759 +#: common/models.py:1814 msgid "Stock Stale Time" msgstr "" -#: common/models.py:1761 +#: common/models.py:1816 msgid "Number of days stock items are considered stale before expiring" msgstr "" -#: common/models.py:1768 +#: common/models.py:1823 msgid "Build Expired Stock" msgstr "" -#: common/models.py:1769 +#: common/models.py:1824 msgid "Allow building with expired stock" msgstr "" -#: common/models.py:1774 +#: common/models.py:1829 msgid "Stock Ownership Control" msgstr "" -#: common/models.py:1775 +#: common/models.py:1830 msgid "Enable ownership control over stock locations and items" msgstr "" -#: common/models.py:1780 +#: common/models.py:1835 msgid "Stock Location Default Icon" msgstr "" -#: common/models.py:1781 +#: common/models.py:1836 msgid "Stock location default icon (empty means no icon)" msgstr "" -#: common/models.py:1786 +#: common/models.py:1841 msgid "Show Installed Stock Items" msgstr "" -#: common/models.py:1787 +#: common/models.py:1842 msgid "Display installed stock items in stock tables" msgstr "" -#: common/models.py:1792 +#: common/models.py:1847 msgid "Check BOM when installing items" msgstr "" -#: common/models.py:1794 +#: common/models.py:1849 msgid "Installed stock items must exist in the BOM for the parent part" msgstr "" -#: common/models.py:1800 +#: common/models.py:1855 msgid "Allow Out of Stock Transfer" msgstr "" -#: common/models.py:1802 +#: common/models.py:1857 msgid "Allow stock items which are not in stock to be transferred between stock locations" msgstr "" -#: common/models.py:1808 +#: common/models.py:1863 msgid "Build Order Reference Pattern" msgstr "" -#: common/models.py:1810 +#: common/models.py:1865 msgid "Required pattern for generating Build Order reference field" msgstr "" -#: common/models.py:1816 common/models.py:1872 common/models.py:1894 -#: common/models.py:1930 +#: common/models.py:1871 common/models.py:1927 common/models.py:1949 +#: common/models.py:1985 msgid "Require Responsible Owner" msgstr "" -#: common/models.py:1817 common/models.py:1873 common/models.py:1895 -#: common/models.py:1931 +#: common/models.py:1872 common/models.py:1928 common/models.py:1950 +#: common/models.py:1986 msgid "A responsible owner must be assigned to each order" msgstr "" -#: common/models.py:1822 +#: common/models.py:1877 msgid "Require Active Part" msgstr "" -#: common/models.py:1823 +#: common/models.py:1878 msgid "Prevent build order creation for inactive parts" msgstr "" -#: common/models.py:1828 +#: common/models.py:1883 msgid "Require Locked Part" msgstr "" -#: common/models.py:1829 +#: common/models.py:1884 msgid "Prevent build order creation for unlocked parts" msgstr "" -#: common/models.py:1834 +#: common/models.py:1889 msgid "Require Valid BOM" msgstr "" -#: common/models.py:1836 +#: common/models.py:1891 msgid "Prevent build order creation unless BOM has been validated" msgstr "" -#: common/models.py:1842 +#: common/models.py:1897 msgid "Require Closed Child Orders" msgstr "" -#: common/models.py:1844 +#: common/models.py:1899 msgid "Prevent build order completion until all child orders are closed" msgstr "" -#: common/models.py:1850 +#: common/models.py:1905 msgid "Block Until Tests Pass" msgstr "" -#: common/models.py:1852 +#: common/models.py:1907 msgid "Prevent build outputs from being completed until all required tests pass" msgstr "" -#: common/models.py:1858 +#: common/models.py:1913 msgid "Enable Return Orders" msgstr "" -#: common/models.py:1859 +#: common/models.py:1914 msgid "Enable return order functionality in the user interface" msgstr "" -#: common/models.py:1864 +#: common/models.py:1919 msgid "Return Order Reference Pattern" msgstr "" -#: common/models.py:1866 +#: common/models.py:1921 msgid "Required pattern for generating Return Order reference field" msgstr "" -#: common/models.py:1878 +#: common/models.py:1933 msgid "Edit Completed Return Orders" msgstr "" -#: common/models.py:1880 +#: common/models.py:1935 msgid "Allow editing of return orders after they have been completed" msgstr "" -#: common/models.py:1886 +#: common/models.py:1941 msgid "Sales Order Reference Pattern" msgstr "" -#: common/models.py:1888 +#: common/models.py:1943 msgid "Required pattern for generating Sales Order reference field" msgstr "" -#: common/models.py:1900 +#: common/models.py:1955 msgid "Sales Order Default Shipment" msgstr "" -#: common/models.py:1901 +#: common/models.py:1956 msgid "Enable creation of default shipment with sales orders" msgstr "" -#: common/models.py:1906 +#: common/models.py:1961 msgid "Edit Completed Sales Orders" msgstr "" -#: common/models.py:1908 +#: common/models.py:1963 msgid "Allow editing of sales orders after they have been shipped or completed" msgstr "" -#: common/models.py:1914 +#: common/models.py:1969 msgid "Mark Shipped Orders as Complete" msgstr "" -#: common/models.py:1916 +#: common/models.py:1971 msgid "Sales orders marked as shipped will automatically be completed, bypassing the \"shipped\" status" msgstr "" -#: common/models.py:1922 +#: common/models.py:1977 msgid "Purchase Order Reference Pattern" msgstr "" -#: common/models.py:1924 +#: common/models.py:1979 msgid "Required pattern for generating Purchase Order reference field" msgstr "" -#: common/models.py:1936 +#: common/models.py:1991 msgid "Edit Completed Purchase Orders" msgstr "" -#: common/models.py:1938 +#: common/models.py:1993 msgid "Allow editing of purchase orders after they have been shipped or completed" msgstr "" -#: common/models.py:1944 +#: common/models.py:1999 msgid "Auto Complete Purchase Orders" msgstr "" -#: common/models.py:1946 +#: common/models.py:2001 msgid "Automatically mark purchase orders as complete when all line items are received" msgstr "" -#: common/models.py:1953 +#: common/models.py:2008 msgid "Enable password forgot" msgstr "" -#: common/models.py:1954 +#: common/models.py:2009 msgid "Enable password forgot function on the login pages" msgstr "" -#: common/models.py:1959 +#: common/models.py:2014 msgid "Enable registration" msgstr "" -#: common/models.py:1960 +#: common/models.py:2015 msgid "Enable self-registration for users on the login pages" msgstr "" -#: common/models.py:1965 +#: common/models.py:2020 msgid "Enable SSO" msgstr "" -#: common/models.py:1966 +#: common/models.py:2021 msgid "Enable SSO on the login pages" msgstr "" -#: common/models.py:1971 +#: common/models.py:2026 msgid "Enable SSO registration" msgstr "" -#: common/models.py:1973 +#: common/models.py:2028 msgid "Enable self-registration via SSO for users on the login pages" msgstr "" -#: common/models.py:1979 +#: common/models.py:2034 msgid "Enable SSO group sync" msgstr "" -#: common/models.py:1981 +#: common/models.py:2036 msgid "Enable synchronizing InvenTree groups with groups provided by the IdP" msgstr "" -#: common/models.py:1987 +#: common/models.py:2042 msgid "SSO group key" msgstr "" -#: common/models.py:1989 +#: common/models.py:2044 msgid "The name of the groups claim attribute provided by the IdP" msgstr "" -#: common/models.py:1995 +#: common/models.py:2050 msgid "SSO group map" msgstr "" -#: common/models.py:1997 +#: common/models.py:2052 msgid "A mapping from SSO groups to local InvenTree groups. If the local group does not exist, it will be created." msgstr "" -#: common/models.py:2003 +#: common/models.py:2058 msgid "Remove groups outside of SSO" msgstr "" -#: common/models.py:2005 +#: common/models.py:2060 msgid "Whether groups assigned to the user should be removed if they are not backend by the IdP. Disabling this setting might cause security issues" msgstr "" -#: common/models.py:2011 +#: common/models.py:2066 msgid "Email required" msgstr "" -#: common/models.py:2012 +#: common/models.py:2067 msgid "Require user to supply mail on signup" msgstr "" -#: common/models.py:2017 +#: common/models.py:2072 msgid "Auto-fill SSO users" msgstr "" -#: common/models.py:2019 +#: common/models.py:2074 msgid "Automatically fill out user-details from SSO account-data" msgstr "" -#: common/models.py:2025 +#: common/models.py:2080 msgid "Mail twice" msgstr "" -#: common/models.py:2026 +#: common/models.py:2081 msgid "On signup ask users twice for their mail" msgstr "" -#: common/models.py:2031 +#: common/models.py:2086 msgid "Password twice" msgstr "" -#: common/models.py:2032 +#: common/models.py:2087 msgid "On signup ask users twice for their password" msgstr "" -#: common/models.py:2037 +#: common/models.py:2092 msgid "Allowed domains" msgstr "" -#: common/models.py:2039 +#: common/models.py:2094 msgid "Restrict signup to certain domains (comma-separated, starting with @)" msgstr "" -#: common/models.py:2045 +#: common/models.py:2100 msgid "Group on signup" msgstr "" -#: common/models.py:2047 +#: common/models.py:2102 msgid "Group to which new users are assigned on registration. If SSO group sync is enabled, this group is only set if no group can be assigned from the IdP." msgstr "" -#: common/models.py:2053 +#: common/models.py:2108 msgid "Enforce MFA" msgstr "" -#: common/models.py:2054 +#: common/models.py:2109 msgid "Users must use multifactor security." msgstr "" -#: common/models.py:2059 +#: common/models.py:2114 msgid "Check plugins on startup" msgstr "" -#: common/models.py:2061 +#: common/models.py:2116 msgid "Check that all plugins are installed on startup - enable in container environments" msgstr "" -#: common/models.py:2069 +#: common/models.py:2124 msgid "Check for plugin updates" msgstr "" -#: common/models.py:2070 +#: common/models.py:2125 msgid "Enable periodic checks for updates to installed plugins" msgstr "" -#: common/models.py:2076 +#: common/models.py:2131 msgid "Enable URL integration" msgstr "" -#: common/models.py:2077 +#: common/models.py:2132 msgid "Enable plugins to add URL routes" msgstr "" -#: common/models.py:2083 +#: common/models.py:2138 msgid "Enable navigation integration" msgstr "" -#: common/models.py:2084 +#: common/models.py:2139 msgid "Enable plugins to integrate into navigation" msgstr "" -#: common/models.py:2090 +#: common/models.py:2145 msgid "Enable app integration" msgstr "" -#: common/models.py:2091 +#: common/models.py:2146 msgid "Enable plugins to add apps" msgstr "" -#: common/models.py:2097 +#: common/models.py:2152 msgid "Enable schedule integration" msgstr "" -#: common/models.py:2098 +#: common/models.py:2153 msgid "Enable plugins to run scheduled tasks" msgstr "" -#: common/models.py:2104 +#: common/models.py:2159 msgid "Enable event integration" msgstr "" -#: common/models.py:2105 +#: common/models.py:2160 msgid "Enable plugins to respond to internal events" msgstr "" -#: common/models.py:2111 +#: common/models.py:2166 +msgid "Enable interface integration" +msgstr "" + +#: common/models.py:2167 +msgid "Enable plugins to integrate into the user interface" +msgstr "" + +#: common/models.py:2173 msgid "Enable project codes" msgstr "" -#: common/models.py:2112 +#: common/models.py:2174 msgid "Enable project codes for tracking projects" msgstr "" -#: common/models.py:2117 +#: common/models.py:2179 msgid "Stocktake Functionality" msgstr "" -#: common/models.py:2119 +#: common/models.py:2181 msgid "Enable stocktake functionality for recording stock levels and calculating stock value" msgstr "" -#: common/models.py:2125 +#: common/models.py:2187 msgid "Exclude External Locations" msgstr "" -#: common/models.py:2127 +#: common/models.py:2189 msgid "Exclude stock items in external locations from stocktake calculations" msgstr "" -#: common/models.py:2133 +#: common/models.py:2195 msgid "Automatic Stocktake Period" msgstr "" -#: common/models.py:2135 +#: common/models.py:2197 msgid "Number of days between automatic stocktake recording (set to zero to disable)" msgstr "" -#: common/models.py:2141 +#: common/models.py:2203 msgid "Report Deletion Interval" msgstr "" -#: common/models.py:2143 +#: common/models.py:2205 msgid "Stocktake reports will be deleted after specified number of days" msgstr "" -#: common/models.py:2150 +#: common/models.py:2212 msgid "Display Users full names" msgstr "" -#: common/models.py:2151 +#: common/models.py:2213 msgid "Display Users full names instead of usernames" msgstr "" -#: common/models.py:2156 +#: common/models.py:2218 msgid "Enable Test Station Data" msgstr "" -#: common/models.py:2157 +#: common/models.py:2219 msgid "Enable test station data collection for test results" msgstr "" -#: common/models.py:2169 common/models.py:2549 -msgid "Settings key (must be unique - case insensitive" -msgstr "" - -#: common/models.py:2212 -msgid "Hide inactive parts" -msgstr "" - -#: common/models.py:2214 -msgid "Hide inactive parts in results displayed on the homepage" -msgstr "" - -#: common/models.py:2220 -msgid "Show subscribed parts" -msgstr "" - -#: common/models.py:2221 -msgid "Show subscribed parts on the homepage" +#: common/models.py:2224 +msgid "Create Template on Upload" msgstr "" #: common/models.py:2226 -msgid "Show subscribed categories" +msgid "Create a new test template when uploading test data which does not match an existing template" msgstr "" -#: common/models.py:2227 -msgid "Show subscribed part categories on the homepage" -msgstr "" - -#: common/models.py:2232 -msgid "Show latest parts" -msgstr "" - -#: common/models.py:2233 -msgid "Show latest parts on the homepage" -msgstr "" - -#: common/models.py:2238 -msgid "Show invalid BOMs" -msgstr "" - -#: common/models.py:2239 -msgid "Show BOMs that await validation on the homepage" -msgstr "" - -#: common/models.py:2244 -msgid "Show recent stock changes" -msgstr "" - -#: common/models.py:2245 -msgid "Show recently changed stock items on the homepage" -msgstr "" - -#: common/models.py:2250 -msgid "Show low stock" -msgstr "" - -#: common/models.py:2251 -msgid "Show low stock items on the homepage" -msgstr "" - -#: common/models.py:2256 -msgid "Show depleted stock" -msgstr "" - -#: common/models.py:2257 -msgid "Show depleted stock items on the homepage" -msgstr "" - -#: common/models.py:2262 -msgid "Show needed stock" -msgstr "" - -#: common/models.py:2263 -msgid "Show stock items needed for builds on the homepage" -msgstr "" - -#: common/models.py:2268 -msgid "Show expired stock" -msgstr "" - -#: common/models.py:2269 -msgid "Show expired stock items on the homepage" -msgstr "" - -#: common/models.py:2274 -msgid "Show stale stock" -msgstr "" - -#: common/models.py:2275 -msgid "Show stale stock items on the homepage" -msgstr "" - -#: common/models.py:2280 -msgid "Show pending builds" +#: common/models.py:2279 +msgid "Hide inactive parts" msgstr "" #: common/models.py:2281 -msgid "Show pending builds on the homepage" -msgstr "" - -#: common/models.py:2286 -msgid "Show overdue builds" +msgid "Hide inactive parts in results displayed on the homepage" msgstr "" #: common/models.py:2287 -msgid "Show overdue builds on the homepage" +msgid "Show subscribed parts" msgstr "" -#: common/models.py:2292 -msgid "Show outstanding POs" +#: common/models.py:2288 +msgid "Show subscribed parts on the homepage" msgstr "" #: common/models.py:2293 -msgid "Show outstanding POs on the homepage" +msgid "Show subscribed categories" msgstr "" -#: common/models.py:2298 -msgid "Show overdue POs" +#: common/models.py:2294 +msgid "Show subscribed part categories on the homepage" msgstr "" #: common/models.py:2299 -msgid "Show overdue POs on the homepage" +msgid "Show latest parts" msgstr "" -#: common/models.py:2304 -msgid "Show outstanding SOs" +#: common/models.py:2300 +msgid "Show latest parts on the homepage" msgstr "" #: common/models.py:2305 -msgid "Show outstanding SOs on the homepage" +msgid "Show invalid BOMs" msgstr "" -#: common/models.py:2310 -msgid "Show overdue SOs" +#: common/models.py:2306 +msgid "Show BOMs that await validation on the homepage" msgstr "" #: common/models.py:2311 -msgid "Show overdue SOs on the homepage" +msgid "Show recent stock changes" msgstr "" -#: common/models.py:2316 -msgid "Show pending SO shipments" +#: common/models.py:2312 +msgid "Show recently changed stock items on the homepage" msgstr "" #: common/models.py:2317 -msgid "Show pending SO shipments on the homepage" +msgid "Show low stock" msgstr "" -#: common/models.py:2322 -msgid "Show News" +#: common/models.py:2318 +msgid "Show low stock items on the homepage" msgstr "" #: common/models.py:2323 -msgid "Show news on the homepage" +msgid "Show depleted stock" msgstr "" -#: common/models.py:2328 -msgid "Inline label display" +#: common/models.py:2324 +msgid "Show depleted stock items on the homepage" +msgstr "" + +#: common/models.py:2329 +msgid "Show needed stock" msgstr "" #: common/models.py:2330 -msgid "Display PDF labels in the browser, instead of downloading as a file" +msgid "Show stock items needed for builds on the homepage" +msgstr "" + +#: common/models.py:2335 +msgid "Show expired stock" msgstr "" #: common/models.py:2336 -msgid "Default label printer" +msgid "Show expired stock items on the homepage" msgstr "" -#: common/models.py:2338 -msgid "Configure which label printer should be selected by default" +#: common/models.py:2341 +msgid "Show stale stock" msgstr "" -#: common/models.py:2344 -msgid "Inline report display" +#: common/models.py:2342 +msgid "Show stale stock items on the homepage" msgstr "" -#: common/models.py:2346 -msgid "Display PDF reports in the browser, instead of downloading as a file" +#: common/models.py:2347 +msgid "Show pending builds" msgstr "" -#: common/models.py:2352 -msgid "Search Parts" +#: common/models.py:2348 +msgid "Show pending builds on the homepage" msgstr "" #: common/models.py:2353 -msgid "Display parts in search preview window" +msgid "Show overdue builds" msgstr "" -#: common/models.py:2358 -msgid "Search Supplier Parts" +#: common/models.py:2354 +msgid "Show overdue builds on the homepage" msgstr "" #: common/models.py:2359 -msgid "Display supplier parts in search preview window" +msgid "Show outstanding POs" msgstr "" -#: common/models.py:2364 -msgid "Search Manufacturer Parts" +#: common/models.py:2360 +msgid "Show outstanding POs on the homepage" msgstr "" #: common/models.py:2365 -msgid "Display manufacturer parts in search preview window" +msgid "Show overdue POs" msgstr "" -#: common/models.py:2370 -msgid "Hide Inactive Parts" +#: common/models.py:2366 +msgid "Show overdue POs on the homepage" msgstr "" #: common/models.py:2371 -msgid "Excluded inactive parts from search preview window" +msgid "Show outstanding SOs" msgstr "" -#: common/models.py:2376 -msgid "Search Categories" +#: common/models.py:2372 +msgid "Show outstanding SOs on the homepage" msgstr "" #: common/models.py:2377 -msgid "Display part categories in search preview window" +msgid "Show overdue SOs" msgstr "" -#: common/models.py:2382 -msgid "Search Stock" +#: common/models.py:2378 +msgid "Show overdue SOs on the homepage" msgstr "" #: common/models.py:2383 -msgid "Display stock items in search preview window" +msgid "Show pending SO shipments" msgstr "" -#: common/models.py:2388 -msgid "Hide Unavailable Stock Items" +#: common/models.py:2384 +msgid "Show pending SO shipments on the homepage" +msgstr "" + +#: common/models.py:2389 +msgid "Show News" msgstr "" #: common/models.py:2390 -msgid "Exclude stock items which are not available from the search preview window" +msgid "Show news on the homepage" msgstr "" -#: common/models.py:2396 -msgid "Search Locations" +#: common/models.py:2395 +msgid "Inline label display" msgstr "" #: common/models.py:2397 -msgid "Display stock locations in search preview window" -msgstr "" - -#: common/models.py:2402 -msgid "Search Companies" +msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "" #: common/models.py:2403 -msgid "Display companies in search preview window" +msgid "Default label printer" msgstr "" -#: common/models.py:2408 -msgid "Search Build Orders" +#: common/models.py:2405 +msgid "Configure which label printer should be selected by default" msgstr "" -#: common/models.py:2409 -msgid "Display build orders in search preview window" +#: common/models.py:2411 +msgid "Inline report display" msgstr "" -#: common/models.py:2414 -msgid "Search Purchase Orders" +#: common/models.py:2413 +msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:2415 -msgid "Display purchase orders in search preview window" +#: common/models.py:2419 +msgid "Search Parts" msgstr "" #: common/models.py:2420 -msgid "Exclude Inactive Purchase Orders" +msgid "Display parts in search preview window" msgstr "" -#: common/models.py:2422 -msgid "Exclude inactive purchase orders from search preview window" +#: common/models.py:2425 +msgid "Search Supplier Parts" msgstr "" -#: common/models.py:2428 -msgid "Search Sales Orders" +#: common/models.py:2426 +msgid "Display supplier parts in search preview window" msgstr "" -#: common/models.py:2429 -msgid "Display sales orders in search preview window" +#: common/models.py:2431 +msgid "Search Manufacturer Parts" msgstr "" -#: common/models.py:2434 -msgid "Exclude Inactive Sales Orders" +#: common/models.py:2432 +msgid "Display manufacturer parts in search preview window" msgstr "" -#: common/models.py:2436 -msgid "Exclude inactive sales orders from search preview window" +#: common/models.py:2437 +msgid "Hide Inactive Parts" msgstr "" -#: common/models.py:2442 -msgid "Search Return Orders" +#: common/models.py:2438 +msgid "Excluded inactive parts from search preview window" msgstr "" #: common/models.py:2443 -msgid "Display return orders in search preview window" +msgid "Search Categories" msgstr "" -#: common/models.py:2448 -msgid "Exclude Inactive Return Orders" +#: common/models.py:2444 +msgid "Display part categories in search preview window" +msgstr "" + +#: common/models.py:2449 +msgid "Search Stock" msgstr "" #: common/models.py:2450 -msgid "Exclude inactive return orders from search preview window" +msgid "Display stock items in search preview window" msgstr "" -#: common/models.py:2456 -msgid "Search Preview Results" +#: common/models.py:2455 +msgid "Hide Unavailable Stock Items" msgstr "" -#: common/models.py:2458 -msgid "Number of results to show in each section of the search preview window" +#: common/models.py:2457 +msgid "Exclude stock items which are not available from the search preview window" +msgstr "" + +#: common/models.py:2463 +msgid "Search Locations" msgstr "" #: common/models.py:2464 -msgid "Regex Search" +msgid "Display stock locations in search preview window" msgstr "" -#: common/models.py:2465 -msgid "Enable regular expressions in search queries" +#: common/models.py:2469 +msgid "Search Companies" msgstr "" #: common/models.py:2470 -msgid "Whole Word Search" +msgid "Display companies in search preview window" msgstr "" -#: common/models.py:2471 -msgid "Search queries return results for whole word matches" +#: common/models.py:2475 +msgid "Search Build Orders" msgstr "" #: common/models.py:2476 -msgid "Show Quantity in Forms" +msgid "Display build orders in search preview window" msgstr "" -#: common/models.py:2477 -msgid "Display available part quantity in some forms" +#: common/models.py:2481 +msgid "Search Purchase Orders" msgstr "" #: common/models.py:2482 -msgid "Escape Key Closes Forms" +msgid "Display purchase orders in search preview window" msgstr "" -#: common/models.py:2483 -msgid "Use the escape key to close modal forms" -msgstr "" - -#: common/models.py:2488 -msgid "Fixed Navbar" +#: common/models.py:2487 +msgid "Exclude Inactive Purchase Orders" msgstr "" #: common/models.py:2489 -msgid "The navbar position is fixed to the top of the screen" -msgstr "" - -#: common/models.py:2494 -msgid "Date Format" +msgid "Exclude inactive purchase orders from search preview window" msgstr "" #: common/models.py:2495 -msgid "Preferred format for displaying dates" +msgid "Search Sales Orders" msgstr "" -#: common/models.py:2508 part/templates/part/detail.html:41 -msgid "Part Scheduling" +#: common/models.py:2496 +msgid "Display sales orders in search preview window" +msgstr "" + +#: common/models.py:2501 +msgid "Exclude Inactive Sales Orders" +msgstr "" + +#: common/models.py:2503 +msgid "Exclude inactive sales orders from search preview window" msgstr "" #: common/models.py:2509 -msgid "Display part scheduling information" +msgid "Search Return Orders" msgstr "" -#: common/models.py:2514 part/templates/part/detail.html:62 -msgid "Part Stocktake" +#: common/models.py:2510 +msgid "Display return orders in search preview window" msgstr "" -#: common/models.py:2516 -msgid "Display part stocktake information (if stocktake functionality is enabled)" +#: common/models.py:2515 +msgid "Exclude Inactive Return Orders" msgstr "" -#: common/models.py:2522 -msgid "Table String Length" +#: common/models.py:2517 +msgid "Exclude inactive return orders from search preview window" msgstr "" -#: common/models.py:2524 -msgid "Maximum length limit for strings displayed in table views" +#: common/models.py:2523 +msgid "Search Preview Results" msgstr "" -#: common/models.py:2530 -msgid "Receive error reports" +#: common/models.py:2525 +msgid "Number of results to show in each section of the search preview window" msgstr "" #: common/models.py:2531 -msgid "Receive notifications for system errors" +msgid "Regex Search" msgstr "" -#: common/models.py:2536 -msgid "Last used printing machines" +#: common/models.py:2532 +msgid "Enable regular expressions in search queries" msgstr "" #: common/models.py:2537 +msgid "Whole Word Search" +msgstr "" + +#: common/models.py:2538 +msgid "Search queries return results for whole word matches" +msgstr "" + +#: common/models.py:2543 +msgid "Show Quantity in Forms" +msgstr "" + +#: common/models.py:2544 +msgid "Display available part quantity in some forms" +msgstr "" + +#: common/models.py:2549 +msgid "Escape Key Closes Forms" +msgstr "" + +#: common/models.py:2550 +msgid "Use the escape key to close modal forms" +msgstr "" + +#: common/models.py:2555 +msgid "Fixed Navbar" +msgstr "" + +#: common/models.py:2556 +msgid "The navbar position is fixed to the top of the screen" +msgstr "" + +#: common/models.py:2561 +msgid "Date Format" +msgstr "" + +#: common/models.py:2562 +msgid "Preferred format for displaying dates" +msgstr "" + +#: common/models.py:2575 part/templates/part/detail.html:41 +msgid "Part Scheduling" +msgstr "" + +#: common/models.py:2576 +msgid "Display part scheduling information" +msgstr "" + +#: common/models.py:2581 part/templates/part/detail.html:62 +msgid "Part Stocktake" +msgstr "" + +#: common/models.py:2583 +msgid "Display part stocktake information (if stocktake functionality is enabled)" +msgstr "" + +#: common/models.py:2589 +msgid "Table String Length" +msgstr "" + +#: common/models.py:2591 +msgid "Maximum length limit for strings displayed in table views" +msgstr "" + +#: common/models.py:2597 +msgid "Receive error reports" +msgstr "" + +#: common/models.py:2598 +msgid "Receive notifications for system errors" +msgstr "" + +#: common/models.py:2603 +msgid "Last used printing machines" +msgstr "" + +#: common/models.py:2604 msgid "Save the last used printing machines for a user" msgstr "" -#: common/models.py:2557 common/models.py:2558 common/models.py:2715 -#: common/models.py:2716 common/models.py:2961 common/models.py:2962 -#: common/models.py:3288 common/models.py:3289 importer/models.py:88 -#: part/models.py:3307 part/models.py:3394 part/models.py:3468 -#: part/models.py:3496 plugin/models.py:274 plugin/models.py:275 -#: report/templates/report/inventree_test_report.html:105 -#: templates/js/translated/stock.js:3120 users/models.py:111 +#: common/models.py:2621 common/models.py:2622 common/models.py:2779 +#: common/models.py:2780 common/models.py:3025 common/models.py:3026 +#: common/models.py:3349 common/models.py:3350 common/models.py:3534 +#: importer/models.py:89 part/models.py:3358 part/models.py:3445 +#: part/models.py:3519 part/models.py:3547 plugin/models.py:313 +#: plugin/models.py:314 report/templates/report/inventree_test_report.html:105 +#: templates/js/translated/stock.js:3121 users/models.py:111 msgid "User" msgstr "Korisnik" -#: common/models.py:2580 +#: common/models.py:2644 msgid "Price break quantity" msgstr "" -#: common/models.py:2587 company/serializers.py:513 order/admin.py:42 -#: order/models.py:1430 order/models.py:2417 -#: templates/js/translated/company.js:1823 templates/js/translated/part.js:1892 +#: common/models.py:2651 company/serializers.py:524 order/admin.py:42 +#: order/models.py:1447 order/models.py:2456 +#: templates/js/translated/company.js:1824 templates/js/translated/part.js:1892 #: templates/js/translated/pricing.js:621 #: templates/js/translated/return_order.js:739 msgid "Price" msgstr "" -#: common/models.py:2588 +#: common/models.py:2652 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:2692 common/models.py:2877 +#: common/models.py:2756 common/models.py:2941 msgid "Endpoint" msgstr "" -#: common/models.py:2693 +#: common/models.py:2757 msgid "Endpoint at which this webhook is received" msgstr "" -#: common/models.py:2703 +#: common/models.py:2767 msgid "Name for this webhook" msgstr "" -#: common/models.py:2707 +#: common/models.py:2771 msgid "Is this webhook active" msgstr "" -#: common/models.py:2723 users/models.py:159 +#: common/models.py:2787 users/models.py:159 msgid "Token" msgstr "" -#: common/models.py:2724 +#: common/models.py:2788 msgid "Token for access" msgstr "" -#: common/models.py:2732 +#: common/models.py:2796 msgid "Secret" msgstr "" -#: common/models.py:2733 +#: common/models.py:2797 msgid "Shared secret for HMAC" msgstr "" -#: common/models.py:2841 +#: common/models.py:2905 msgid "Message ID" msgstr "" -#: common/models.py:2842 +#: common/models.py:2906 msgid "Unique identifier for this message" msgstr "" -#: common/models.py:2850 +#: common/models.py:2914 msgid "Host" msgstr "" -#: common/models.py:2851 +#: common/models.py:2915 msgid "Host from which this message was received" msgstr "" -#: common/models.py:2859 +#: common/models.py:2923 msgid "Header" msgstr "" -#: common/models.py:2860 +#: common/models.py:2924 msgid "Header of this message" msgstr "" -#: common/models.py:2867 +#: common/models.py:2931 msgid "Body" msgstr "" -#: common/models.py:2868 +#: common/models.py:2932 msgid "Body of this message" msgstr "" -#: common/models.py:2878 +#: common/models.py:2942 msgid "Endpoint on which this message was received" msgstr "" -#: common/models.py:2883 +#: common/models.py:2947 msgid "Worked on" msgstr "" -#: common/models.py:2884 +#: common/models.py:2948 msgid "Was the work on this message finished?" msgstr "" -#: common/models.py:3010 +#: common/models.py:3074 msgid "Id" msgstr "" -#: common/models.py:3012 templates/js/translated/company.js:965 -#: templates/js/translated/news.js:44 +#: common/models.py:3076 part/serializers.py:271 +#: templates/js/translated/company.js:966 templates/js/translated/news.js:44 msgid "Title" msgstr "" -#: common/models.py:3014 common/models.py:3272 company/models.py:149 -#: company/models.py:446 company/models.py:512 company/models.py:818 -#: order/models.py:302 order/models.py:1385 order/models.py:1817 -#: part/admin.py:55 part/models.py:1057 +#: common/models.py:3078 common/models.py:3333 company/models.py:146 +#: company/models.py:443 company/models.py:509 company/models.py:815 +#: order/models.py:309 order/models.py:1402 order/models.py:1846 +#: part/admin.py:55 part/models.py:1118 #: part/templates/part/part_scheduling.html:11 #: report/templates/report/inventree_build_order_report.html:164 -#: stock/admin.py:229 templates/js/translated/company.js:1319 -#: templates/js/translated/company.js:1673 templates/js/translated/order.js:376 +#: stock/admin.py:230 templates/js/translated/company.js:1320 +#: templates/js/translated/company.js:1674 templates/js/translated/order.js:376 #: templates/js/translated/part.js:2475 -#: templates/js/translated/purchase_order.js:2110 -#: templates/js/translated/purchase_order.js:2274 +#: templates/js/translated/purchase_order.js:2094 +#: templates/js/translated/purchase_order.js:2258 #: templates/js/translated/return_order.js:778 -#: templates/js/translated/sales_order.js:1092 -#: templates/js/translated/sales_order.js:2023 +#: templates/js/translated/sales_order.js:1058 +#: templates/js/translated/sales_order.js:2004 msgid "Link" msgstr "" -#: common/models.py:3016 templates/js/translated/news.js:60 +#: common/models.py:3080 templates/js/translated/news.js:60 msgid "Published" msgstr "" -#: common/models.py:3018 templates/InvenTree/settings/plugin_settings.html:32 +#: common/models.py:3082 templates/InvenTree/settings/plugin_settings.html:32 #: templates/js/translated/news.js:56 templates/js/translated/plugin.js:103 msgid "Author" msgstr "" -#: common/models.py:3020 templates/js/translated/news.js:52 +#: common/models.py:3084 templates/js/translated/news.js:52 msgid "Summary" msgstr "" -#: common/models.py:3023 +#: common/models.py:3087 msgid "Read" msgstr "" -#: common/models.py:3023 +#: common/models.py:3087 msgid "Was this news item read?" msgstr "" -#: common/models.py:3040 company/models.py:159 part/models.py:1067 +#: common/models.py:3104 company/models.py:156 part/models.py:1128 #: report/templates/report/inventree_bill_of_materials_report.html:126 #: report/templates/report/inventree_bill_of_materials_report.html:148 #: report/templates/report/inventree_return_order_report.html:35 -#: stock/templates/stock/item_base.html:133 templates/503.html:31 +#: stock/templates/stock/item_base.html:130 templates/503.html:31 #: templates/hover_image.html:7 templates/hover_image.html:9 #: templates/modals.html:6 msgid "Image" msgstr "" -#: common/models.py:3040 +#: common/models.py:3104 msgid "Image file" msgstr "" -#: common/models.py:3052 common/models.py:3256 +#: common/models.py:3116 common/models.py:3317 msgid "Target model type for this image" msgstr "" -#: common/models.py:3056 +#: common/models.py:3120 msgid "Target model ID for this image" msgstr "" -#: common/models.py:3078 +#: common/models.py:3142 msgid "Custom Unit" msgstr "" -#: common/models.py:3099 +#: common/models.py:3160 msgid "Unit symbol must be unique" msgstr "" -#: common/models.py:3114 +#: common/models.py:3175 msgid "Unit name must be a valid identifier" msgstr "" -#: common/models.py:3133 +#: common/models.py:3194 msgid "Unit name" msgstr "" -#: common/models.py:3140 templates/InvenTree/settings/settings_staff_js.html:75 +#: common/models.py:3201 templates/InvenTree/settings/settings_staff_js.html:75 msgid "Symbol" msgstr "" -#: common/models.py:3141 +#: common/models.py:3202 msgid "Optional unit symbol" msgstr "" -#: common/models.py:3147 templates/InvenTree/settings/settings_staff_js.html:71 +#: common/models.py:3208 templates/InvenTree/settings/settings_staff_js.html:71 msgid "Definition" msgstr "" -#: common/models.py:3148 +#: common/models.py:3209 msgid "Unit definition" msgstr "" -#: common/models.py:3206 common/models.py:3263 stock/models.py:2558 -#: templates/js/translated/attachment.js:119 +#: common/models.py:3267 common/models.py:3324 stock/models.py:2674 +#: stock/serializers.py:244 templates/js/translated/attachment.js:119 #: templates/js/translated/attachment.js:345 msgid "Attachment" msgstr "Prilog" -#: common/models.py:3218 +#: common/models.py:3279 msgid "Missing file" msgstr "Nedostaje datoteka" -#: common/models.py:3219 +#: common/models.py:3280 msgid "Missing external link" msgstr "Nedostaje eksterni link" -#: common/models.py:3264 +#: common/models.py:3325 msgid "Select file to attach" msgstr "Izaberite datoteku za prilog" -#: common/models.py:3279 templates/js/translated/attachment.js:120 +#: common/models.py:3340 templates/js/translated/attachment.js:120 #: templates/js/translated/attachment.js:360 msgid "Comment" msgstr "Komentar" -#: common/models.py:3280 +#: common/models.py:3341 msgid "Attachment comment" msgstr "" -#: common/models.py:3296 +#: common/models.py:3357 msgid "Upload date" msgstr "" -#: common/models.py:3297 +#: common/models.py:3358 msgid "Date the file was uploaded" msgstr "" -#: common/models.py:3301 +#: common/models.py:3362 msgid "File size" msgstr "" -#: common/models.py:3301 +#: common/models.py:3362 msgid "File size in bytes" msgstr "" -#: common/models.py:3339 common/serializers.py:562 +#: common/models.py:3400 common/serializers.py:609 msgid "Invalid model type specified for attachment" msgstr "" -#: common/notifications.py:314 +#: common/models.py:3409 plugin/models.py:43 users/models.py:100 +msgid "Key" +msgstr "" + +#: common/models.py:3410 +msgid "Value that will be saved in the models database" +msgstr "" + +#: common/models.py:3413 +msgid "Name of the state" +msgstr "" + +#: common/models.py:3417 part/serializers.py:273 +msgid "Label" +msgstr "" + +#: common/models.py:3418 +msgid "Label that will be displayed in the frontend" +msgstr "" + +#: common/models.py:3424 +msgid "Color" +msgstr "" + +#: common/models.py:3425 +msgid "Color that will be displayed in the frontend" +msgstr "" + +#: common/models.py:3428 +msgid "Logical Key" +msgstr "" + +#: common/models.py:3430 +msgid "State logical key that is equal to this custom state in business logic" +msgstr "" + +#: common/models.py:3438 part/serializers.py:275 +msgid "Model" +msgstr "" + +#: common/models.py:3439 +msgid "Model this state is associated with" +msgstr "" + +#: common/models.py:3443 +msgid "Reference Status Set" +msgstr "" + +#: common/models.py:3444 +msgid "Status set that is extended with this custom state" +msgstr "" + +#: common/models.py:3450 +msgid "Custom State" +msgstr "" + +#: common/models.py:3451 +msgid "Custom States" +msgstr "" + +#: common/models.py:3466 +msgid "Model must be selected" +msgstr "" + +#: common/models.py:3469 +msgid "Key must be selected" +msgstr "" + +#: common/models.py:3472 +msgid "Logical key must be selected" +msgstr "" + +#: common/models.py:3476 +msgid "Key must be different from logical key" +msgstr "" + +#: common/models.py:3480 +msgid "Reference status must be selected" +msgstr "" + +#: common/models.py:3492 +msgid "Reference status set not found" +msgstr "" + +#: common/models.py:3498 +msgid "Key must be different from the logical keys of the reference status" +msgstr "" + +#: common/models.py:3504 +msgid "Logical key must be in the logical keys of the reference status" +msgstr "" + +#: common/models.py:3519 +msgid "Barcode Scan" +msgstr "" + +#: common/models.py:3523 importer/models.py:512 part/models.py:4009 +msgid "Data" +msgstr "" + +#: common/models.py:3524 +msgid "Barcode data" +msgstr "" + +#: common/models.py:3535 +msgid "User who scanned the barcode" +msgstr "" + +#: common/models.py:3540 importer/models.py:60 +msgid "Timestamp" +msgstr "" + +#: common/models.py:3541 +msgid "Date and time of the barcode scan" +msgstr "" + +#: common/models.py:3547 +msgid "URL endpoint which processed the barcode" +msgstr "" + +#: common/models.py:3554 order/models.py:1437 plugin/serializers.py:89 +msgid "Context" +msgstr "" + +#: common/models.py:3555 +msgid "Context data for the barcode scan" +msgstr "" + +#: common/models.py:3562 +msgid "Response" +msgstr "" + +#: common/models.py:3563 +msgid "Response data from the barcode scan" +msgstr "" + +#: common/models.py:3569 report/templates/report/inventree_test_report.html:103 +#: stock/models.py:2660 +msgid "Result" +msgstr "" + +#: common/models.py:3570 +msgid "Was the barcode scan successful?" +msgstr "" + +#: common/notifications.py:328 #, python-brace-format msgid "New {verbose_name}" msgstr "" -#: common/notifications.py:316 +#: common/notifications.py:330 msgid "A new order has been created and assigned to you" msgstr "" -#: common/notifications.py:322 +#: common/notifications.py:336 #, python-brace-format msgid "{verbose_name} canceled" msgstr "" -#: common/notifications.py:324 +#: common/notifications.py:338 msgid "A order that is assigned to you was canceled" msgstr "" -#: common/notifications.py:330 common/notifications.py:337 order/api.py:462 +#: common/notifications.py:344 common/notifications.py:351 order/api.py:440 msgid "Items Received" msgstr "" -#: common/notifications.py:332 +#: common/notifications.py:346 msgid "Items have been received against a purchase order" msgstr "" -#: common/notifications.py:339 +#: common/notifications.py:353 msgid "Items have been received against a return order" msgstr "" -#: common/notifications.py:457 +#: common/notifications.py:475 msgid "Error raised by plugin" msgstr "" -#: common/serializers.py:375 +#: common/serializers.py:423 msgid "Is Running" msgstr "" -#: common/serializers.py:381 +#: common/serializers.py:429 msgid "Pending Tasks" msgstr "" -#: common/serializers.py:387 +#: common/serializers.py:435 msgid "Scheduled Tasks" msgstr "" -#: common/serializers.py:393 +#: common/serializers.py:441 msgid "Failed Tasks" msgstr "" -#: common/serializers.py:408 +#: common/serializers.py:456 msgid "Task ID" msgstr "" -#: common/serializers.py:408 +#: common/serializers.py:456 msgid "Unique task ID" msgstr "" -#: common/serializers.py:410 +#: common/serializers.py:458 msgid "Lock" msgstr "" -#: common/serializers.py:410 +#: common/serializers.py:458 msgid "Lock time" msgstr "" -#: common/serializers.py:412 +#: common/serializers.py:460 msgid "Task name" msgstr "" -#: common/serializers.py:414 +#: common/serializers.py:462 msgid "Function" msgstr "" -#: common/serializers.py:414 +#: common/serializers.py:462 msgid "Function name" msgstr "" -#: common/serializers.py:416 +#: common/serializers.py:464 msgid "Arguments" msgstr "" -#: common/serializers.py:416 +#: common/serializers.py:464 msgid "Task arguments" msgstr "" -#: common/serializers.py:419 +#: common/serializers.py:467 msgid "Keyword Arguments" msgstr "" -#: common/serializers.py:419 +#: common/serializers.py:467 msgid "Task keyword arguments" msgstr "" -#: common/serializers.py:529 +#: common/serializers.py:577 msgid "Filename" msgstr "Ime datoteke" -#: common/serializers.py:536 report/api.py:100 report/serializers.py:53 +#: common/serializers.py:584 report/api.py:100 report/serializers.py:54 msgid "Model Type" msgstr "" -#: common/serializers.py:565 +#: common/serializers.py:612 msgid "User does not have permission to create or edit attachments for this model" msgstr "" @@ -4116,15 +4295,15 @@ msgstr "" msgid "Match Items" msgstr "" -#: common/views.py:401 +#: common/views.py:397 msgid "Fields matching failed" msgstr "" -#: common/views.py:464 +#: common/views.py:460 msgid "Parts imported" msgstr "" -#: common/views.py:494 order/templates/order/order_wizard/match_fields.html:27 +#: common/views.py:490 order/templates/order/order_wizard/match_fields.html:27 #: order/templates/order/order_wizard/match_parts.html:19 #: order/templates/order/order_wizard/po_upload.html:49 #: part/templates/part/import_wizard/match_fields.html:27 @@ -4155,429 +4334,429 @@ msgstr "" msgid "Supplier is Active" msgstr "" -#: company/models.py:100 company/models.py:371 +#: company/models.py:97 company/models.py:368 #: company/templates/company/company_base.html:8 #: company/templates/company/company_base.html:12 stock/api.py:812 -#: templates/InvenTree/search.html:178 templates/js/translated/company.js:496 +#: templates/InvenTree/search.html:178 templates/js/translated/company.js:497 msgid "Company" msgstr "" -#: company/models.py:101 company/views.py:51 +#: company/models.py:98 company/views.py:51 #: templates/js/translated/search.js:192 msgid "Companies" msgstr "" -#: company/models.py:117 +#: company/models.py:114 msgid "Company description" msgstr "" -#: company/models.py:118 +#: company/models.py:115 msgid "Description of the company" msgstr "" -#: company/models.py:123 company/templates/company/company_base.html:106 +#: company/models.py:120 company/templates/company/company_base.html:106 #: templates/InvenTree/settings/plugin_settings.html:54 -#: templates/js/translated/company.js:532 +#: templates/js/translated/company.js:533 msgid "Website" msgstr "" -#: company/models.py:123 +#: company/models.py:120 msgid "Company website URL" msgstr "" -#: company/models.py:128 +#: company/models.py:125 msgid "Phone number" msgstr "" -#: company/models.py:130 +#: company/models.py:127 msgid "Contact phone number" msgstr "" -#: company/models.py:137 +#: company/models.py:134 msgid "Contact email address" msgstr "" -#: company/models.py:142 company/models.py:275 -#: company/templates/company/company_base.html:145 order/models.py:342 -#: order/templates/order/order_base.html:208 -#: order/templates/order/return_order_base.html:177 -#: order/templates/order/sales_order_base.html:221 +#: company/models.py:139 company/models.py:272 +#: company/templates/company/company_base.html:145 order/models.py:349 +#: order/templates/order/order_base.html:217 +#: order/templates/order/return_order_base.html:178 +#: order/templates/order/sales_order_base.html:222 msgid "Contact" msgstr "" -#: company/models.py:144 +#: company/models.py:141 msgid "Point of contact" msgstr "" -#: company/models.py:150 +#: company/models.py:147 msgid "Link to external company information" msgstr "" -#: company/models.py:163 +#: company/models.py:160 msgid "Is this company active?" msgstr "" -#: company/models.py:168 +#: company/models.py:165 msgid "Is customer" msgstr "" -#: company/models.py:169 +#: company/models.py:166 msgid "Do you sell items to this company?" msgstr "" -#: company/models.py:174 +#: company/models.py:171 msgid "Is supplier" msgstr "" -#: company/models.py:175 +#: company/models.py:172 msgid "Do you purchase items from this company?" msgstr "" -#: company/models.py:180 +#: company/models.py:177 msgid "Is manufacturer" msgstr "" -#: company/models.py:181 +#: company/models.py:178 msgid "Does this company manufacture parts?" msgstr "" -#: company/models.py:189 +#: company/models.py:186 msgid "Default currency used for this company" msgstr "" -#: company/models.py:314 company/templates/company/company_base.html:124 -#: order/models.py:352 order/templates/order/order_base.html:215 -#: order/templates/order/return_order_base.html:184 -#: order/templates/order/sales_order_base.html:228 +#: company/models.py:311 company/templates/company/company_base.html:124 +#: order/models.py:359 order/templates/order/order_base.html:224 +#: order/templates/order/return_order_base.html:185 +#: order/templates/order/sales_order_base.html:229 msgid "Address" msgstr "" -#: company/models.py:315 company/templates/company/sidebar.html:35 +#: company/models.py:312 company/templates/company/sidebar.html:35 msgid "Addresses" msgstr "" -#: company/models.py:372 +#: company/models.py:369 msgid "Select company" msgstr "" -#: company/models.py:377 +#: company/models.py:374 msgid "Address title" msgstr "" -#: company/models.py:378 +#: company/models.py:375 msgid "Title describing the address entry" msgstr "" -#: company/models.py:384 +#: company/models.py:381 msgid "Primary address" msgstr "" -#: company/models.py:385 +#: company/models.py:382 msgid "Set as primary address" msgstr "" -#: company/models.py:390 templates/js/translated/company.js:914 -#: templates/js/translated/company.js:971 +#: company/models.py:387 templates/js/translated/company.js:915 +#: templates/js/translated/company.js:972 msgid "Line 1" msgstr "" -#: company/models.py:391 +#: company/models.py:388 msgid "Address line 1" msgstr "" -#: company/models.py:397 templates/js/translated/company.js:915 -#: templates/js/translated/company.js:977 +#: company/models.py:394 templates/js/translated/company.js:916 +#: templates/js/translated/company.js:978 msgid "Line 2" msgstr "" -#: company/models.py:398 +#: company/models.py:395 msgid "Address line 2" msgstr "" -#: company/models.py:404 company/models.py:405 -#: templates/js/translated/company.js:983 +#: company/models.py:401 company/models.py:402 +#: templates/js/translated/company.js:984 msgid "Postal code" msgstr "" -#: company/models.py:411 +#: company/models.py:408 msgid "City/Region" msgstr "" -#: company/models.py:412 +#: company/models.py:409 msgid "Postal code city/region" msgstr "" -#: company/models.py:418 +#: company/models.py:415 msgid "State/Province" msgstr "" -#: company/models.py:419 +#: company/models.py:416 msgid "State or province" msgstr "" -#: company/models.py:425 templates/js/translated/company.js:1001 +#: company/models.py:422 templates/js/translated/company.js:1002 msgid "Country" msgstr "" -#: company/models.py:426 +#: company/models.py:423 msgid "Address country" msgstr "" -#: company/models.py:432 +#: company/models.py:429 msgid "Courier shipping notes" msgstr "" -#: company/models.py:433 +#: company/models.py:430 msgid "Notes for shipping courier" msgstr "" -#: company/models.py:439 +#: company/models.py:436 msgid "Internal shipping notes" msgstr "" -#: company/models.py:440 +#: company/models.py:437 msgid "Shipping notes for internal use" msgstr "" -#: company/models.py:447 +#: company/models.py:444 msgid "Link to address information (external)" msgstr "" -#: company/models.py:470 company/models.py:587 company/models.py:811 +#: company/models.py:467 company/models.py:584 company/models.py:808 #: company/templates/company/manufacturer_part.html:7 #: company/templates/company/manufacturer_part.html:24 -#: stock/templates/stock/item_base.html:217 +#: stock/templates/stock/item_base.html:214 msgid "Manufacturer Part" msgstr "" -#: company/models.py:487 company/models.py:779 stock/models.py:787 -#: stock/serializers.py:445 stock/templates/stock/item_base.html:142 +#: company/models.py:484 company/models.py:776 stock/models.py:864 +#: stock/serializers.py:455 stock/templates/stock/item_base.html:139 #: templates/js/translated/bom.js:622 msgid "Base Part" msgstr "" -#: company/models.py:489 company/models.py:781 +#: company/models.py:486 company/models.py:778 msgid "Select part" msgstr "" -#: company/models.py:498 company/templates/company/company_base.html:82 +#: company/models.py:495 company/templates/company/company_base.html:82 #: company/templates/company/manufacturer_part.html:90 -#: company/templates/company/supplier_part.html:145 part/serializers.py:554 -#: stock/templates/stock/item_base.html:207 -#: templates/js/translated/company.js:507 -#: templates/js/translated/company.js:1118 -#: templates/js/translated/company.js:1296 -#: templates/js/translated/company.js:1611 +#: company/templates/company/supplier_part.html:146 part/serializers.py:598 +#: stock/templates/stock/item_base.html:204 +#: templates/js/translated/company.js:508 +#: templates/js/translated/company.js:1119 +#: templates/js/translated/company.js:1297 +#: templates/js/translated/company.js:1612 #: templates/js/translated/table_filters.js:812 msgid "Manufacturer" msgstr "" -#: company/models.py:499 +#: company/models.py:496 msgid "Select manufacturer" msgstr "" -#: company/models.py:505 company/templates/company/manufacturer_part.html:101 -#: company/templates/company/supplier_part.html:153 order/serializers.py:556 -#: part/serializers.py:564 templates/js/translated/company.js:351 -#: templates/js/translated/company.js:1117 -#: templates/js/translated/company.js:1312 -#: templates/js/translated/company.js:1630 templates/js/translated/part.js:1807 -#: templates/js/translated/purchase_order.js:1921 -#: templates/js/translated/purchase_order.js:2123 +#: company/models.py:502 company/templates/company/manufacturer_part.html:101 +#: company/templates/company/supplier_part.html:154 order/serializers.py:641 +#: part/serializers.py:608 templates/js/translated/company.js:352 +#: templates/js/translated/company.js:1118 +#: templates/js/translated/company.js:1313 +#: templates/js/translated/company.js:1631 templates/js/translated/part.js:1807 +#: templates/js/translated/purchase_order.js:1905 +#: templates/js/translated/purchase_order.js:2107 msgid "MPN" msgstr "" -#: company/models.py:513 +#: company/models.py:510 msgid "URL for external manufacturer part link" msgstr "" -#: company/models.py:522 +#: company/models.py:519 msgid "Manufacturer part description" msgstr "" -#: company/models.py:575 +#: company/models.py:572 msgid "Manufacturer Part Parameter" msgstr "" -#: company/models.py:594 +#: company/models.py:591 msgid "Parameter name" msgstr "" -#: company/models.py:600 report/templates/report/inventree_test_report.html:104 -#: stock/models.py:2550 templates/js/translated/company.js:1166 -#: templates/js/translated/company.js:1419 templates/js/translated/part.js:1499 +#: company/models.py:597 report/templates/report/inventree_test_report.html:104 +#: stock/models.py:2666 templates/js/translated/company.js:1167 +#: templates/js/translated/company.js:1420 templates/js/translated/part.js:1499 #: templates/js/translated/stock.js:1607 msgid "Value" msgstr "" -#: company/models.py:601 +#: company/models.py:598 msgid "Parameter value" msgstr "" -#: company/models.py:608 company/templates/company/supplier_part.html:168 -#: part/admin.py:57 part/models.py:1147 part/models.py:3771 -#: part/templates/part/part_base.html:293 -#: templates/js/translated/company.js:1425 templates/js/translated/part.js:1518 +#: company/models.py:605 company/templates/company/supplier_part.html:169 +#: part/admin.py:57 part/models.py:1208 part/models.py:3822 +#: part/templates/part/part_base.html:301 +#: templates/js/translated/company.js:1426 templates/js/translated/part.js:1518 #: templates/js/translated/part.js:1622 templates/js/translated/part.js:2376 msgid "Units" msgstr "" -#: company/models.py:609 +#: company/models.py:606 msgid "Parameter units" msgstr "" -#: company/models.py:662 company/templates/company/supplier_part.html:7 -#: company/templates/company/supplier_part.html:24 order/api.py:442 -#: order/serializers.py:491 stock/models.py:798 -#: stock/templates/stock/item_base.html:233 -#: templates/js/translated/build.js:1052 -#: templates/js/translated/company.js:1600 -#: templates/js/translated/purchase_order.js:752 -#: templates/js/translated/stock.js:2365 +#: company/models.py:659 company/templates/company/supplier_part.html:8 +#: company/templates/company/supplier_part.html:25 order/api.py:392 +#: order/serializers.py:576 stock/models.py:875 +#: stock/templates/stock/item_base.html:230 +#: templates/js/translated/build.js:1055 +#: templates/js/translated/company.js:1601 +#: templates/js/translated/purchase_order.js:735 +#: templates/js/translated/stock.js:2366 msgid "Supplier Part" msgstr "" -#: company/models.py:719 +#: company/models.py:716 msgid "Pack units must be compatible with the base part units" msgstr "" -#: company/models.py:726 +#: company/models.py:723 msgid "Pack units must be greater than zero" msgstr "" -#: company/models.py:740 +#: company/models.py:737 msgid "Linked manufacturer part must reference the same base part" msgstr "" -#: company/models.py:789 company/templates/company/company_base.html:87 -#: company/templates/company/supplier_part.html:129 order/models.py:491 -#: order/templates/order/order_base.html:141 part/bom.py:280 part/bom.py:318 -#: part/serializers.py:538 plugin/builtin/suppliers/digikey.py:25 +#: company/models.py:786 company/templates/company/company_base.html:87 +#: company/templates/company/supplier_part.html:130 order/models.py:503 +#: order/templates/order/order_base.html:150 part/bom.py:279 part/bom.py:314 +#: part/serializers.py:582 plugin/builtin/suppliers/digikey.py:25 #: plugin/builtin/suppliers/lcsc.py:26 plugin/builtin/suppliers/mouser.py:24 -#: plugin/builtin/suppliers/tme.py:26 stock/templates/stock/item_base.html:224 +#: plugin/builtin/suppliers/tme.py:26 stock/templates/stock/item_base.html:221 #: templates/email/overdue_purchase_order.html:16 -#: templates/js/translated/company.js:350 -#: templates/js/translated/company.js:511 -#: templates/js/translated/company.js:1584 templates/js/translated/part.js:1775 +#: templates/js/translated/company.js:351 +#: templates/js/translated/company.js:512 +#: templates/js/translated/company.js:1585 templates/js/translated/part.js:1775 #: templates/js/translated/pricing.js:498 -#: templates/js/translated/purchase_order.js:1759 +#: templates/js/translated/purchase_order.js:1743 #: templates/js/translated/table_filters.js:816 msgid "Supplier" msgstr "" -#: company/models.py:790 +#: company/models.py:787 msgid "Select supplier" msgstr "" -#: company/models.py:796 part/serializers.py:549 +#: company/models.py:793 part/serializers.py:593 msgid "Supplier stock keeping unit" msgstr "" -#: company/models.py:802 +#: company/models.py:799 msgid "Is this supplier part active?" msgstr "" -#: company/models.py:812 +#: company/models.py:809 msgid "Select manufacturer part" msgstr "" -#: company/models.py:819 +#: company/models.py:816 msgid "URL for external supplier part link" msgstr "" -#: company/models.py:828 +#: company/models.py:825 msgid "Supplier part description" msgstr "" -#: company/models.py:835 company/templates/company/supplier_part.html:187 -#: order/serializers.py:698 part/admin.py:415 part/models.py:4288 +#: company/models.py:832 company/templates/company/supplier_part.html:188 +#: order/serializers.py:783 part/admin.py:415 part/models.py:4345 #: part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_bill_of_materials_report.html:140 #: report/templates/report/inventree_purchase_order_report.html:32 #: report/templates/report/inventree_return_order_report.html:27 #: report/templates/report/inventree_sales_order_report.html:32 #: report/templates/report/inventree_stock_location_report.html:105 -#: stock/serializers.py:776 templates/js/translated/purchase_order.js:1185 -#: templates/js/translated/purchase_order.js:1344 +#: stock/serializers.py:807 templates/js/translated/purchase_order.js:1168 +#: templates/js/translated/purchase_order.js:1327 msgid "Note" msgstr "" -#: company/models.py:844 part/models.py:2117 +#: company/models.py:841 part/models.py:2177 msgid "base cost" msgstr "" -#: company/models.py:845 part/models.py:2118 +#: company/models.py:842 part/models.py:2178 msgid "Minimum charge (e.g. stocking fee)" msgstr "" -#: company/models.py:853 +#: company/models.py:850 msgid "Part packaging" msgstr "" -#: company/models.py:858 templates/js/translated/company.js:1651 +#: company/models.py:855 templates/js/translated/company.js:1652 #: templates/js/translated/part.js:1828 templates/js/translated/part.js:1884 -#: templates/js/translated/purchase_order.js:311 -#: templates/js/translated/purchase_order.js:841 -#: templates/js/translated/purchase_order.js:1103 -#: templates/js/translated/purchase_order.js:2154 -#: templates/js/translated/purchase_order.js:2171 +#: templates/js/translated/purchase_order.js:294 +#: templates/js/translated/purchase_order.js:824 +#: templates/js/translated/purchase_order.js:1086 +#: templates/js/translated/purchase_order.js:2138 +#: templates/js/translated/purchase_order.js:2155 msgid "Pack Quantity" msgstr "" -#: company/models.py:860 +#: company/models.py:857 msgid "Total quantity supplied in a single pack. Leave empty for single items." msgstr "" -#: company/models.py:879 part/models.py:2124 +#: company/models.py:876 part/models.py:2184 msgid "multiple" msgstr "" -#: company/models.py:880 +#: company/models.py:877 msgid "Order multiple" msgstr "" -#: company/models.py:892 +#: company/models.py:889 msgid "Quantity available from supplier" msgstr "" -#: company/models.py:898 +#: company/models.py:895 msgid "Availability Updated" msgstr "" -#: company/models.py:899 +#: company/models.py:896 msgid "Date of last update of availability data" msgstr "" -#: company/models.py:1027 +#: company/models.py:1024 msgid "Supplier Price Break" msgstr "" -#: company/serializers.py:174 +#: company/serializers.py:178 msgid "Default currency used for this supplier" msgstr "" -#: company/serializers.py:210 +#: company/serializers.py:214 msgid "Company Name" msgstr "" -#: company/serializers.py:393 part/admin.py:126 part/serializers.py:898 -#: part/templates/part/part_base.html:197 -#: templates/js/translated/company.js:1689 +#: company/serializers.py:397 part/admin.py:126 part/serializers.py:950 +#: part/templates/part/part_base.html:198 stock/serializers.py:474 +#: templates/js/translated/company.js:1690 #: templates/js/translated/table_filters.js:362 msgid "In Stock" msgstr "" #: company/templates/company/company_base.html:16 -#: part/templates/part/part_base.html:146 -#: templates/js/translated/company.js:1287 -#: templates/js/translated/company.js:1575 -#: templates/js/translated/model_renderers.js:313 +#: part/templates/part/part_base.html:147 +#: templates/js/translated/company.js:1288 +#: templates/js/translated/company.js:1576 +#: templates/js/translated/model_renderers.js:316 #: templates/js/translated/part.js:817 templates/js/translated/part.js:1225 msgid "Inactive" msgstr "" #: company/templates/company/company_base.html:27 -#: templates/js/translated/purchase_order.js:242 +#: templates/js/translated/purchase_order.js:224 msgid "Create Purchase Order" msgstr "" @@ -4590,7 +4769,7 @@ msgid "Edit company information" msgstr "" #: company/templates/company/company_base.html:39 -#: templates/js/translated/company.js:445 +#: templates/js/translated/company.js:446 msgid "Edit Company" msgstr "" @@ -4605,11 +4784,12 @@ msgstr "" #: company/templates/company/company_base.html:53 #: company/templates/company/manufacturer_part.html:51 -#: company/templates/company/supplier_part.html:83 +#: company/templates/company/supplier_part.html:84 #: part/templates/part/part_thumb.html:20 #: report/templates/report/inventree_build_order_report.html:98 #: report/templates/report/inventree_purchase_order_report.html:40 #: report/templates/report/inventree_sales_order_report.html:40 +#: report/templates/report/inventree_sales_order_shipment_report.html:37 #: report/templates/report/inventree_test_report.html:84 #: report/templates/report/inventree_test_report.html:162 msgid "Part image" @@ -4630,16 +4810,16 @@ msgstr "" msgid "Delete image" msgstr "" -#: company/templates/company/company_base.html:92 order/models.py:990 -#: order/models.py:2147 order/templates/order/return_order_base.html:134 -#: order/templates/order/sales_order_base.html:151 stock/models.py:840 -#: stock/models.py:841 stock/serializers.py:1329 -#: stock/templates/stock/item_base.html:405 +#: company/templates/company/company_base.html:92 order/models.py:1017 +#: order/models.py:2186 order/templates/order/return_order_base.html:135 +#: order/templates/order/sales_order_base.html:152 stock/models.py:917 +#: stock/models.py:918 stock/serializers.py:1360 +#: stock/templates/stock/item_base.html:402 #: templates/email/overdue_sales_order.html:16 -#: templates/js/translated/company.js:503 +#: templates/js/translated/company.js:504 #: templates/js/translated/return_order.js:295 -#: templates/js/translated/sales_order.js:820 -#: templates/js/translated/stock.js:3043 +#: templates/js/translated/sales_order.js:779 +#: templates/js/translated/stock.js:3044 #: templates/js/translated/table_filters.js:820 msgid "Customer" msgstr "" @@ -4653,7 +4833,7 @@ msgid "Phone" msgstr "" #: company/templates/company/company_base.html:211 -#: part/templates/part/part_base.html:536 +#: part/templates/part/part_base.html:544 msgid "Remove Image" msgstr "" @@ -4662,19 +4842,19 @@ msgid "Remove associated image from this company" msgstr "" #: company/templates/company/company_base.html:214 -#: part/templates/part/part_base.html:539 +#: part/templates/part/part_base.html:547 #: templates/InvenTree/settings/user.html:88 #: templates/InvenTree/settings/user_sso.html:43 msgid "Remove" msgstr "" #: company/templates/company/company_base.html:243 -#: part/templates/part/part_base.html:568 +#: part/templates/part/part_base.html:576 msgid "Upload Image" msgstr "" #: company/templates/company/company_base.html:258 -#: part/templates/part/part_base.html:622 +#: part/templates/part/part_base.html:630 msgid "Download Image" msgstr "" @@ -4714,7 +4894,7 @@ msgstr "" #: company/templates/company/detail.html:75 #: company/templates/company/sidebar.html:12 #: company/templates/company/supplier_part_sidebar.html:7 -#: order/templates/order/order_base.html:13 +#: order/templates/order/order_base.html:14 #: order/templates/order/purchase_orders.html:8 #: order/templates/order/purchase_orders.html:12 #: part/templates/part/detail.html:122 part/templates/part/part_sidebar.html:35 @@ -4737,7 +4917,7 @@ msgstr "" #: company/templates/company/detail.html:101 #: company/templates/company/sidebar.html:21 -#: order/templates/order/sales_order_base.html:13 +#: order/templates/order/sales_order_base.html:14 #: order/templates/order/sales_orders.html:8 #: order/templates/order/sales_orders.html:15 #: part/templates/part/detail.html:143 part/templates/part/part_sidebar.html:39 @@ -4764,7 +4944,7 @@ msgstr "" #: company/templates/company/detail.html:142 #: company/templates/company/sidebar.html:29 -#: order/templates/order/return_order_base.html:13 +#: order/templates/order/return_order_base.html:14 #: order/templates/order/return_orders.html:8 #: order/templates/order/return_orders.html:15 #: templates/InvenTree/settings/sidebar.html:61 @@ -4811,24 +4991,24 @@ msgid "Manufacturers" msgstr "" #: company/templates/company/manufacturer_part.html:35 -#: company/templates/company/supplier_part.html:227 -#: part/templates/part/detail.html:125 part/templates/part/part_base.html:83 +#: company/templates/company/supplier_part.html:228 +#: part/templates/part/detail.html:125 part/templates/part/part_base.html:84 msgid "Order part" msgstr "" #: company/templates/company/manufacturer_part.html:39 -#: templates/js/translated/company.js:1343 +#: templates/js/translated/company.js:1344 msgid "Edit manufacturer part" msgstr "" #: company/templates/company/manufacturer_part.html:43 -#: templates/js/translated/company.js:1344 +#: templates/js/translated/company.js:1345 msgid "Delete manufacturer part" msgstr "" #: company/templates/company/manufacturer_part.html:65 -#: company/templates/company/supplier_part.html:97 order/api.py:448 -#: order/serializers.py:564 +#: company/templates/company/supplier_part.html:98 order/api.py:411 +#: order/serializers.py:649 msgid "Internal Part" msgstr "" @@ -4837,8 +5017,8 @@ msgid "No manufacturer information available" msgstr "" #: company/templates/company/manufacturer_part.html:119 -#: company/templates/company/supplier_part.html:15 company/views.py:31 -#: part/admin.py:122 part/serializers.py:904 +#: company/templates/company/supplier_part.html:16 company/views.py:31 +#: part/admin.py:122 part/serializers.py:956 #: part/templates/part/part_sidebar.html:33 templates/InvenTree/search.html:190 #: templates/navbar.html:48 msgid "Suppliers" @@ -4887,112 +5067,113 @@ msgstr "" msgid "Contacts" msgstr "" -#: company/templates/company/supplier_part.html:50 -#: templates/js/translated/company.js:1526 +#: company/templates/company/supplier_part.html:51 +#: templates/js/translated/company.js:1527 msgid "Supplier part actions" msgstr "" -#: company/templates/company/supplier_part.html:55 #: company/templates/company/supplier_part.html:56 -#: company/templates/company/supplier_part.html:228 +#: company/templates/company/supplier_part.html:57 +#: company/templates/company/supplier_part.html:229 #: part/templates/part/detail.html:126 msgid "Order Part" msgstr "" -#: company/templates/company/supplier_part.html:60 #: company/templates/company/supplier_part.html:61 +#: company/templates/company/supplier_part.html:62 msgid "Update Availability" msgstr "" -#: company/templates/company/supplier_part.html:63 #: company/templates/company/supplier_part.html:64 -#: templates/js/translated/company.js:294 +#: company/templates/company/supplier_part.html:65 +#: templates/js/translated/company.js:295 msgid "Edit Supplier Part" msgstr "" -#: company/templates/company/supplier_part.html:68 #: company/templates/company/supplier_part.html:69 -#: templates/js/translated/company.js:269 +#: company/templates/company/supplier_part.html:70 +#: templates/js/translated/company.js:270 msgid "Duplicate Supplier Part" msgstr "" -#: company/templates/company/supplier_part.html:73 +#: company/templates/company/supplier_part.html:74 msgid "Delete Supplier Part" msgstr "" -#: company/templates/company/supplier_part.html:74 +#: company/templates/company/supplier_part.html:75 msgid "Delete Supplier Part" msgstr "" -#: company/templates/company/supplier_part.html:133 +#: company/templates/company/supplier_part.html:134 +#: order/templates/order/order_base.html:155 msgid "No supplier information available" msgstr "" -#: company/templates/company/supplier_part.html:139 order/serializers.py:553 -#: part/bom.py:287 part/bom.py:319 part/serializers.py:548 -#: templates/js/translated/company.js:349 templates/js/translated/part.js:1793 +#: company/templates/company/supplier_part.html:140 order/serializers.py:638 +#: part/bom.py:286 part/bom.py:315 part/serializers.py:592 +#: templates/js/translated/company.js:350 templates/js/translated/part.js:1793 #: templates/js/translated/pricing.js:510 -#: templates/js/translated/purchase_order.js:1920 -#: templates/js/translated/purchase_order.js:2098 +#: templates/js/translated/purchase_order.js:1904 +#: templates/js/translated/purchase_order.js:2082 msgid "SKU" msgstr "" -#: company/templates/company/supplier_part.html:206 +#: company/templates/company/supplier_part.html:207 msgid "Supplier Part Stock" msgstr "" -#: company/templates/company/supplier_part.html:209 -#: part/templates/part/detail.html:24 stock/templates/stock/location.html:204 +#: company/templates/company/supplier_part.html:210 +#: part/templates/part/detail.html:24 stock/templates/stock/location.html:205 msgid "Create new stock item" msgstr "" -#: company/templates/company/supplier_part.html:210 -#: part/templates/part/detail.html:25 stock/templates/stock/location.html:205 +#: company/templates/company/supplier_part.html:211 +#: part/templates/part/detail.html:25 stock/templates/stock/location.html:206 #: templates/js/translated/stock.js:543 msgid "New Stock Item" msgstr "" -#: company/templates/company/supplier_part.html:223 +#: company/templates/company/supplier_part.html:224 msgid "Supplier Part Orders" msgstr "" -#: company/templates/company/supplier_part.html:246 +#: company/templates/company/supplier_part.html:247 msgid "Pricing Information" msgstr "" -#: company/templates/company/supplier_part.html:251 -#: templates/js/translated/company.js:398 +#: company/templates/company/supplier_part.html:252 +#: templates/js/translated/company.js:399 #: templates/js/translated/pricing.js:684 msgid "Add Price Break" msgstr "" -#: company/templates/company/supplier_part.html:270 +#: company/templates/company/supplier_part.html:271 msgid "Supplier Part Notes" msgstr "" -#: company/templates/company/supplier_part.html:305 +#: company/templates/company/supplier_part.html:306 msgid "Supplier Part QR Code" msgstr "" -#: company/templates/company/supplier_part.html:316 +#: company/templates/company/supplier_part.html:317 msgid "Link Barcode to Supplier Part" msgstr "" -#: company/templates/company/supplier_part.html:388 +#: company/templates/company/supplier_part.html:389 msgid "Update Part Availability" msgstr "" #: company/templates/company/supplier_part_sidebar.html:5 -#: part/serializers.py:902 part/stocktake.py:223 +#: part/serializers.py:954 part/stocktake.py:223 #: part/templates/part/category.html:180 #: part/templates/part/category_sidebar.html:17 stock/admin.py:68 -#: stock/serializers.py:1014 stock/serializers.py:1192 -#: stock/templates/stock/location.html:167 -#: stock/templates/stock/location.html:188 -#: stock/templates/stock/location.html:200 +#: stock/serializers.py:1045 stock/serializers.py:1223 +#: stock/templates/stock/location.html:168 +#: stock/templates/stock/location.html:189 +#: stock/templates/stock/location.html:201 #: stock/templates/stock/location_sidebar.html:7 #: templates/InvenTree/search.html:155 templates/js/translated/part.js:1067 -#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2850 +#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2851 #: users/models.py:206 msgid "Stock Items" msgstr "" @@ -5022,99 +5203,99 @@ msgstr "" msgid "New Company" msgstr "" -#: generic/states/tests.py:18 order/status_codes.py:13 +#: generic/states/fields.py:118 +msgid "Custom status key" +msgstr "" + +#: generic/states/fields.py:119 +msgid "Additional status information for this item" +msgstr "" + +#: generic/states/tests.py:22 order/status_codes.py:13 msgid "Placed" msgstr "Postavljen" -#: importer/mixins.py:263 +#: importer/mixins.py:261 msgid "Invalid export format" msgstr "" -#: importer/models.py:59 -msgid "Timestamp" -msgstr "" - -#: importer/models.py:64 +#: importer/models.py:65 msgid "Data file to import" msgstr "" -#: importer/models.py:73 templates/js/translated/tables.js:558 +#: importer/models.py:74 templates/js/translated/tables.js:558 msgid "Columns" msgstr "" -#: importer/models.py:84 +#: importer/models.py:85 msgid "Import status" msgstr "" -#: importer/models.py:94 +#: importer/models.py:95 msgid "Field Defaults" msgstr "" -#: importer/models.py:101 +#: importer/models.py:102 msgid "Field Overrides" msgstr "" -#: importer/models.py:108 +#: importer/models.py:109 msgid "Field Filters" msgstr "" -#: importer/models.py:230 +#: importer/models.py:239 msgid "Some required fields have not been mapped" msgstr "" -#: importer/models.py:387 +#: importer/models.py:396 msgid "Column is already mapped to a database field" msgstr "" -#: importer/models.py:392 +#: importer/models.py:401 msgid "Field is already mapped to a data column" msgstr "" -#: importer/models.py:401 +#: importer/models.py:410 msgid "Column mapping must be linked to a valid import session" msgstr "" -#: importer/models.py:406 +#: importer/models.py:415 msgid "Column does not exist in the data file" msgstr "" -#: importer/models.py:413 +#: importer/models.py:422 msgid "Field does not exist in the target model" msgstr "" -#: importer/models.py:417 +#: importer/models.py:426 msgid "Selected field is read-only" msgstr "" -#: importer/models.py:422 importer/models.py:493 +#: importer/models.py:431 importer/models.py:502 msgid "Import Session" msgstr "" -#: importer/models.py:426 +#: importer/models.py:435 msgid "Field" msgstr "" -#: importer/models.py:428 +#: importer/models.py:437 msgid "Column" msgstr "" -#: importer/models.py:497 +#: importer/models.py:506 msgid "Row Index" msgstr "" -#: importer/models.py:500 +#: importer/models.py:509 msgid "Original row data" msgstr "" -#: importer/models.py:503 part/models.py:3951 -msgid "Data" -msgstr "" - -#: importer/models.py:505 machine/models.py:110 +#: importer/models.py:514 machine/models.py:110 msgid "Errors" msgstr "" -#: importer/models.py:507 part/api.py:873 +#: importer/models.py:516 part/api.py:857 msgid "Valid" msgstr "" @@ -5166,19 +5347,19 @@ msgstr "" msgid "Row has already been completed" msgstr "" -#: importer/status_codes.py:11 +#: importer/status_codes.py:13 msgid "Initializing" msgstr "" -#: importer/status_codes.py:12 +#: importer/status_codes.py:18 msgid "Mapping Columns" msgstr "" -#: importer/status_codes.py:13 +#: importer/status_codes.py:21 msgid "Importing Data" msgstr "" -#: importer/status_codes.py:16 +#: importer/status_codes.py:24 msgid "Processing Data" msgstr "" @@ -5202,52 +5383,52 @@ msgstr "" msgid "Value must be a valid dictionary object" msgstr "" -#: machine/machine_types/label_printer.py:215 +#: machine/machine_types/label_printer.py:216 msgid "Copies" msgstr "" -#: machine/machine_types/label_printer.py:216 +#: machine/machine_types/label_printer.py:217 msgid "Number of copies to print for each label" msgstr "" -#: machine/machine_types/label_printer.py:231 +#: machine/machine_types/label_printer.py:232 msgid "Connected" msgstr "" -#: machine/machine_types/label_printer.py:232 order/api.py:1410 -#: templates/js/translated/sales_order.js:1078 +#: machine/machine_types/label_printer.py:233 order/api.py:1532 +#: templates/js/translated/sales_order.js:1044 msgid "Unknown" msgstr "" -#: machine/machine_types/label_printer.py:233 +#: machine/machine_types/label_printer.py:234 msgid "Printing" msgstr "" -#: machine/machine_types/label_printer.py:234 +#: machine/machine_types/label_printer.py:235 msgid "No media" msgstr "" -#: machine/machine_types/label_printer.py:235 +#: machine/machine_types/label_printer.py:236 msgid "Paper jam" msgstr "" -#: machine/machine_types/label_printer.py:236 +#: machine/machine_types/label_printer.py:237 msgid "Disconnected" msgstr "" -#: machine/machine_types/label_printer.py:243 +#: machine/machine_types/label_printer.py:244 msgid "Label Printer" msgstr "" -#: machine/machine_types/label_printer.py:244 +#: machine/machine_types/label_printer.py:245 msgid "Directly print labels for various items." msgstr "" -#: machine/machine_types/label_printer.py:250 +#: machine/machine_types/label_printer.py:251 msgid "Printer Location" msgstr "" -#: machine/machine_types/label_printer.py:251 +#: machine/machine_types/label_printer.py:252 msgid "Scope the printer to a specific location" msgstr "" @@ -5307,79 +5488,75 @@ msgstr "" #: report/templates/report/inventree_purchase_order_report.html:31 #: report/templates/report/inventree_sales_order_report.html:31 #: templates/js/translated/order.js:352 -#: templates/js/translated/purchase_order.js:2195 -#: templates/js/translated/sales_order.js:1883 +#: templates/js/translated/purchase_order.js:2179 +#: templates/js/translated/sales_order.js:1864 msgid "Total Price" msgstr "" -#: order/api.py:80 order/api.py:151 order/serializers.py:93 -#: order/templates/order/order_base.html:123 -#: order/templates/order/return_order_base.html:116 -#: order/templates/order/sales_order_base.html:125 +#: order/api.py:78 order/api.py:149 order/serializers.py:124 +#: order/templates/order/order_base.html:124 +#: order/templates/order/return_order_base.html:117 +#: order/templates/order/sales_order_base.html:126 msgid "Order Status" msgstr "" -#: order/api.py:88 order/templates/order/order_base.html:111 -#: order/templates/order/return_order_base.html:104 -#: order/templates/order/sales_order_base.html:113 +#: order/api.py:86 order/templates/order/order_base.html:112 +#: order/templates/order/return_order_base.html:105 +#: order/templates/order/sales_order_base.html:114 msgid "Order Reference" msgstr "" -#: order/api.py:116 templates/js/translated/table_filters.js:93 +#: order/api.py:114 order/api.py:1022 +#: templates/js/translated/table_filters.js:93 #: templates/js/translated/table_filters.js:625 #: templates/js/translated/table_filters.js:651 #: templates/js/translated/table_filters.js:666 msgid "Outstanding" msgstr "" -#: order/api.py:132 +#: order/api.py:130 msgid "Has Project Code" msgstr "" -#: order/api.py:155 templates/js/translated/table_filters.js:201 +#: order/api.py:153 templates/js/translated/table_filters.js:201 #: templates/js/translated/table_filters.js:791 msgid "Has Pricing" msgstr "" -#: order/api.py:230 -msgid "No matching purchase order found" -msgstr "" - -#: order/api.py:425 order/api.py:763 order/models.py:1484 order/models.py:1598 -#: order/models.py:1649 order/models.py:1764 order/models.py:1923 -#: order/models.py:2383 order/models.py:2439 -#: templates/js/translated/sales_order.js:1524 +#: order/api.py:375 order/api.py:771 order/api.py:986 order/models.py:1500 +#: order/models.py:1614 order/models.py:1665 order/models.py:1793 +#: order/models.py:1956 order/models.py:2422 order/models.py:2478 +#: templates/js/translated/sales_order.js:1490 msgid "Order" msgstr "" -#: order/api.py:429 order/api.py:784 +#: order/api.py:379 order/api.py:809 msgid "Order Complete" msgstr "" -#: order/api.py:452 +#: order/api.py:430 msgid "Order Pending" msgstr "" -#: order/api.py:1404 order/models.py:379 order/models.py:1485 -#: order/models.py:1599 order/templates/order/order_base.html:9 -#: order/templates/order/order_base.html:18 +#: order/api.py:1526 order/models.py:386 order/models.py:1501 +#: order/models.py:1615 order/templates/order/order_base.html:10 +#: order/templates/order/order_base.html:19 #: report/templates/report/inventree_purchase_order_report.html:14 -#: stock/serializers.py:120 stock/templates/stock/item_base.html:176 +#: stock/serializers.py:121 stock/templates/stock/item_base.html:173 #: templates/email/overdue_purchase_order.html:15 #: templates/js/translated/part.js:1752 templates/js/translated/pricing.js:804 -#: templates/js/translated/purchase_order.js:168 -#: templates/js/translated/purchase_order.js:753 -#: templates/js/translated/purchase_order.js:1743 -#: templates/js/translated/stock.js:2345 templates/js/translated/stock.js:2991 +#: templates/js/translated/purchase_order.js:736 +#: templates/js/translated/purchase_order.js:1727 +#: templates/js/translated/stock.js:2346 templates/js/translated/stock.js:2992 msgid "Purchase Order" msgstr "" -#: order/api.py:1408 order/models.py:2091 order/models.py:2384 -#: order/models.py:2440 order/templates/order/return_order_base.html:9 -#: order/templates/order/return_order_base.html:28 +#: order/api.py:1530 order/models.py:2124 order/models.py:2423 +#: order/models.py:2479 order/templates/order/return_order_base.html:10 +#: order/templates/order/return_order_base.html:29 #: report/templates/report/inventree_return_order_report.html:13 #: templates/js/translated/return_order.js:280 -#: templates/js/translated/stock.js:3025 +#: templates/js/translated/stock.js:3026 msgid "Return Order" msgstr "" @@ -5387,751 +5564,782 @@ msgstr "" msgid "Total price for this order" msgstr "" -#: order/models.py:95 order/serializers.py:71 +#: order/models.py:95 order/serializers.py:73 msgid "Order Currency" msgstr "" -#: order/models.py:98 order/serializers.py:72 +#: order/models.py:98 order/serializers.py:74 msgid "Currency for this order (leave blank to use company default)" msgstr "" -#: order/models.py:246 +#: order/models.py:243 msgid "Contact does not match selected company" msgstr "" -#: order/models.py:289 +#: order/models.py:296 msgid "Order description (optional)" msgstr "" -#: order/models.py:298 +#: order/models.py:305 msgid "Select project code for this order" msgstr "" -#: order/models.py:302 order/models.py:1385 order/models.py:1817 +#: order/models.py:309 order/models.py:1402 order/models.py:1846 msgid "Link to external page" msgstr "" -#: order/models.py:310 +#: order/models.py:317 msgid "Expected date for order delivery. Order will be overdue after this date." msgstr "" -#: order/models.py:324 +#: order/models.py:331 msgid "Created By" msgstr "" -#: order/models.py:332 +#: order/models.py:339 msgid "User or group responsible for this order" msgstr "" -#: order/models.py:343 +#: order/models.py:350 msgid "Point of contact for this order" msgstr "" -#: order/models.py:353 +#: order/models.py:360 msgid "Company address for this order" msgstr "" -#: order/models.py:468 order/models.py:979 +#: order/models.py:480 order/models.py:1006 msgid "Order reference" msgstr "" -#: order/models.py:477 +#: order/models.py:489 msgid "Purchase order status" msgstr "" -#: order/models.py:492 +#: order/models.py:504 msgid "Company from which the items are being ordered" msgstr "" -#: order/models.py:503 order/templates/order/order_base.html:153 -#: templates/js/translated/purchase_order.js:1772 +#: order/models.py:515 order/templates/order/order_base.html:162 +#: templates/js/translated/purchase_order.js:1756 msgid "Supplier Reference" msgstr "" -#: order/models.py:504 +#: order/models.py:516 msgid "Supplier order reference code" msgstr "" -#: order/models.py:513 +#: order/models.py:525 msgid "received by" msgstr "" -#: order/models.py:519 order/models.py:2173 +#: order/models.py:531 order/models.py:2212 msgid "Issue Date" msgstr "" -#: order/models.py:520 order/models.py:2174 +#: order/models.py:532 order/models.py:2213 msgid "Date order was issued" msgstr "" -#: order/models.py:527 order/models.py:2181 +#: order/models.py:539 order/models.py:2220 msgid "Date order was completed" msgstr "" -#: order/models.py:571 +#: order/models.py:549 order/models.py:1552 +msgid "Destination for received items" +msgstr "" + +#: order/models.py:593 msgid "Part supplier must match PO supplier" msgstr "" -#: order/models.py:806 +#: order/models.py:828 msgid "Quantity must be a positive number" msgstr "" -#: order/models.py:991 +#: order/models.py:1018 msgid "Company to which the items are being sold" msgstr "" -#: order/models.py:1003 +#: order/models.py:1030 msgid "Sales order status" msgstr "" -#: order/models.py:1014 order/models.py:2166 +#: order/models.py:1041 order/models.py:2205 msgid "Customer Reference " msgstr "" -#: order/models.py:1015 order/models.py:2167 +#: order/models.py:1042 order/models.py:2206 msgid "Customer order reference code" msgstr "" -#: order/models.py:1019 order/models.py:1771 -#: templates/js/translated/sales_order.js:879 -#: templates/js/translated/sales_order.js:1060 +#: order/models.py:1046 order/models.py:1800 +#: templates/js/translated/sales_order.js:838 +#: templates/js/translated/sales_order.js:1026 msgid "Shipment Date" msgstr "" -#: order/models.py:1028 +#: order/models.py:1055 msgid "shipped by" msgstr "" -#: order/models.py:1077 +#: order/models.py:1094 msgid "Order is already complete" msgstr "" -#: order/models.py:1080 +#: order/models.py:1097 msgid "Order is already cancelled" msgstr "" -#: order/models.py:1084 +#: order/models.py:1101 msgid "Only an open order can be marked as complete" msgstr "" -#: order/models.py:1088 +#: order/models.py:1105 msgid "Order cannot be completed as there are incomplete shipments" msgstr "" -#: order/models.py:1093 +#: order/models.py:1110 msgid "Order cannot be completed as there are incomplete line items" msgstr "" -#: order/models.py:1357 +#: order/models.py:1374 msgid "Item quantity" msgstr "" -#: order/models.py:1374 +#: order/models.py:1391 msgid "Line item reference" msgstr "" -#: order/models.py:1381 +#: order/models.py:1398 msgid "Line item notes" msgstr "" -#: order/models.py:1393 +#: order/models.py:1410 msgid "Target date for this line item (leave blank to use the target date from the order)" msgstr "" -#: order/models.py:1414 +#: order/models.py:1431 msgid "Line item description (optional)" msgstr "" -#: order/models.py:1420 -msgid "Context" -msgstr "" - -#: order/models.py:1421 +#: order/models.py:1438 msgid "Additional context for this line" msgstr "" -#: order/models.py:1431 +#: order/models.py:1448 msgid "Unit price" msgstr "" -#: order/models.py:1445 +#: order/models.py:1462 msgid "Purchase Order Line Item" msgstr "" -#: order/models.py:1469 +#: order/models.py:1486 msgid "Supplier part must match supplier" msgstr "" -#: order/models.py:1476 -msgid "deleted" -msgstr "" - -#: order/models.py:1504 +#: order/models.py:1520 msgid "Supplier part" msgstr "" -#: order/models.py:1511 order/templates/order/order_base.html:201 +#: order/models.py:1527 order/templates/order/order_base.html:210 #: templates/js/translated/part.js:1876 templates/js/translated/part.js:1908 -#: templates/js/translated/purchase_order.js:1369 -#: templates/js/translated/purchase_order.js:2239 +#: templates/js/translated/purchase_order.js:1352 +#: templates/js/translated/purchase_order.js:2223 #: templates/js/translated/return_order.js:762 #: templates/js/translated/table_filters.js:119 #: templates/js/translated/table_filters.js:605 msgid "Received" msgstr "" -#: order/models.py:1512 +#: order/models.py:1528 msgid "Number of items received" msgstr "" -#: order/models.py:1520 stock/models.py:959 stock/serializers.py:610 -#: stock/templates/stock/item_base.html:183 -#: templates/js/translated/stock.js:2396 +#: order/models.py:1536 stock/models.py:1036 stock/serializers.py:637 +#: stock/templates/stock/item_base.html:180 +#: templates/js/translated/stock.js:2397 msgid "Purchase Price" msgstr "" -#: order/models.py:1521 +#: order/models.py:1537 msgid "Unit purchase price" msgstr "" -#: order/models.py:1536 -msgid "Where does the Purchaser want this item to be stored?" -msgstr "" - -#: order/models.py:1587 +#: order/models.py:1603 msgid "Purchase Order Extra Line" msgstr "" -#: order/models.py:1616 +#: order/models.py:1632 msgid "Sales Order Line Item" msgstr "" -#: order/models.py:1637 +#: order/models.py:1653 msgid "Virtual part cannot be assigned to a sales order" msgstr "" -#: order/models.py:1642 +#: order/models.py:1658 msgid "Only salable parts can be assigned to a sales order" msgstr "" -#: order/models.py:1668 part/templates/part/part_pricing.html:107 -#: part/templates/part/prices.html:139 templates/js/translated/pricing.js:957 +#: order/models.py:1684 part/templates/part/part_pricing.html:107 +#: part/templates/part/prices.html:139 templates/js/translated/pricing.js:955 msgid "Sale Price" msgstr "" -#: order/models.py:1669 +#: order/models.py:1685 msgid "Unit sale price" msgstr "" -#: order/models.py:1678 order/status_codes.py:48 -#: templates/js/translated/sales_order.js:1559 -#: templates/js/translated/sales_order.js:1680 -#: templates/js/translated/sales_order.js:1993 +#: order/models.py:1694 order/status_codes.py:50 +#: templates/js/translated/sales_order.js:1525 +#: templates/js/translated/sales_order.js:1661 +#: templates/js/translated/sales_order.js:1974 msgid "Shipped" msgstr "Poslato" -#: order/models.py:1679 +#: order/models.py:1695 msgid "Shipped quantity" msgstr "" -#: order/models.py:1751 +#: order/models.py:1769 msgid "Sales Order Shipment" msgstr "" -#: order/models.py:1772 +#: order/models.py:1801 msgid "Date of shipment" msgstr "" -#: order/models.py:1778 templates/js/translated/sales_order.js:1072 +#: order/models.py:1807 templates/js/translated/sales_order.js:1038 msgid "Delivery Date" msgstr "" -#: order/models.py:1779 +#: order/models.py:1808 msgid "Date of delivery of shipment" msgstr "" -#: order/models.py:1787 +#: order/models.py:1816 msgid "Checked By" msgstr "" -#: order/models.py:1788 +#: order/models.py:1817 msgid "User who checked this shipment" msgstr "" -#: order/models.py:1795 order/models.py:2018 order/serializers.py:1475 -#: order/serializers.py:1585 templates/js/translated/model_renderers.js:455 +#: order/models.py:1824 order/models.py:2051 order/serializers.py:1601 +#: order/serializers.py:1725 +#: report/templates/report/inventree_sales_order_shipment_report.html:14 +#: templates/js/translated/model_renderers.js:458 +#: templates/js/translated/sales_order.js:1615 msgid "Shipment" msgstr "" -#: order/models.py:1796 +#: order/models.py:1825 msgid "Shipment number" msgstr "" -#: order/models.py:1804 +#: order/models.py:1833 msgid "Tracking Number" msgstr "" -#: order/models.py:1805 +#: order/models.py:1834 msgid "Shipment tracking information" msgstr "" -#: order/models.py:1812 +#: order/models.py:1841 msgid "Invoice Number" msgstr "" -#: order/models.py:1813 +#: order/models.py:1842 msgid "Reference number for associated invoice" msgstr "" -#: order/models.py:1833 +#: order/models.py:1862 msgid "Shipment has already been sent" msgstr "" -#: order/models.py:1836 +#: order/models.py:1865 msgid "Shipment has no allocated stock items" msgstr "" -#: order/models.py:1912 +#: order/models.py:1945 msgid "Sales Order Extra Line" msgstr "" -#: order/models.py:1941 +#: order/models.py:1974 msgid "Sales Order Allocation" msgstr "" -#: order/models.py:1964 order/models.py:1966 +#: order/models.py:1997 order/models.py:1999 msgid "Stock item has not been assigned" msgstr "" -#: order/models.py:1973 +#: order/models.py:2006 msgid "Cannot allocate stock item to a line with a different part" msgstr "" -#: order/models.py:1976 +#: order/models.py:2009 msgid "Cannot allocate stock to a line without a part" msgstr "" -#: order/models.py:1979 +#: order/models.py:2012 msgid "Allocation quantity cannot exceed stock quantity" msgstr "" -#: order/models.py:1998 order/serializers.py:1345 +#: order/models.py:2031 order/serializers.py:1471 msgid "Quantity must be 1 for serialized stock item" msgstr "" -#: order/models.py:2001 +#: order/models.py:2034 msgid "Sales order does not match shipment" msgstr "" -#: order/models.py:2002 plugin/base/barcodes/api.py:524 +#: order/models.py:2035 plugin/base/barcodes/api.py:629 msgid "Shipment does not match sales order" msgstr "" -#: order/models.py:2010 +#: order/models.py:2043 msgid "Line" msgstr "" -#: order/models.py:2019 +#: order/models.py:2052 msgid "Sales order shipment reference" msgstr "" -#: order/models.py:2032 order/models.py:2391 +#: order/models.py:2065 order/models.py:2430 #: templates/js/translated/return_order.js:720 msgid "Item" msgstr "" -#: order/models.py:2033 +#: order/models.py:2066 msgid "Select stock item to allocate" msgstr "" -#: order/models.py:2042 +#: order/models.py:2075 msgid "Enter stock allocation quantity" msgstr "" -#: order/models.py:2136 +#: order/models.py:2175 msgid "Return Order reference" msgstr "" -#: order/models.py:2148 +#: order/models.py:2187 msgid "Company from which items are being returned" msgstr "" -#: order/models.py:2160 +#: order/models.py:2199 msgid "Return order status" msgstr "" -#: order/models.py:2362 +#: order/models.py:2401 msgid "Return Order Line Item" msgstr "" -#: order/models.py:2376 +#: order/models.py:2415 msgid "Only serialized items can be assigned to a Return Order" msgstr "" -#: order/models.py:2392 +#: order/models.py:2431 msgid "Select item to return from customer" msgstr "" -#: order/models.py:2398 +#: order/models.py:2437 msgid "Received Date" msgstr "" -#: order/models.py:2399 +#: order/models.py:2438 msgid "The date this this return item was received" msgstr "" -#: order/models.py:2410 templates/js/translated/return_order.js:731 +#: order/models.py:2449 templates/js/translated/return_order.js:731 #: templates/js/translated/table_filters.js:122 msgid "Outcome" msgstr "" -#: order/models.py:2411 +#: order/models.py:2450 msgid "Outcome for this line item" msgstr "" -#: order/models.py:2418 +#: order/models.py:2457 msgid "Cost associated with return or repair for this line item" msgstr "" -#: order/models.py:2428 +#: order/models.py:2467 msgid "Return Order Extra Line" msgstr "" -#: order/serializers.py:86 +#: order/serializers.py:87 +msgid "Order ID" +msgstr "" + +#: order/serializers.py:87 +msgid "ID of the order to duplicate" +msgstr "" + +#: order/serializers.py:93 +msgid "Copy Lines" +msgstr "" + +#: order/serializers.py:94 +msgid "Copy line items from the original order" +msgstr "" + +#: order/serializers.py:100 +msgid "Copy Extra Lines" +msgstr "" + +#: order/serializers.py:101 +msgid "Copy extra line items from the original order" +msgstr "" + +#: order/serializers.py:117 msgid "Completed Lines" msgstr "" -#: order/serializers.py:283 stock/admin.py:195 +#: order/serializers.py:161 +msgid "Duplicate Order" +msgstr "" + +#: order/serializers.py:162 +msgid "Specify options for duplicating this order" +msgstr "" + +#: order/serializers.py:234 +msgid "Invalid order ID" +msgstr "" + +#: order/serializers.py:374 stock/admin.py:196 msgid "Supplier Name" msgstr "" -#: order/serializers.py:331 +#: order/serializers.py:416 msgid "Order cannot be cancelled" msgstr "" -#: order/serializers.py:346 order/serializers.py:1366 +#: order/serializers.py:431 order/serializers.py:1492 msgid "Allow order to be closed with incomplete line items" msgstr "" -#: order/serializers.py:356 order/serializers.py:1376 +#: order/serializers.py:441 order/serializers.py:1502 msgid "Order has incomplete line items" msgstr "" -#: order/serializers.py:506 +#: order/serializers.py:591 msgid "Order is not open" msgstr "" -#: order/serializers.py:527 +#: order/serializers.py:612 msgid "Auto Pricing" msgstr "" -#: order/serializers.py:529 +#: order/serializers.py:614 msgid "Automatically calculate purchase price based on supplier part data" msgstr "" -#: order/serializers.py:539 +#: order/serializers.py:624 msgid "Purchase price currency" msgstr "" -#: order/serializers.py:545 +#: order/serializers.py:630 msgid "Merge Items" msgstr "" -#: order/serializers.py:547 +#: order/serializers.py:632 msgid "Merge items with the same part, destination and target date into one line item" msgstr "" -#: order/serializers.py:560 part/models.py:1033 +#: order/serializers.py:645 part/models.py:1094 part/serializers.py:387 msgid "Internal Part Number" msgstr "" -#: order/serializers.py:568 +#: order/serializers.py:653 msgid "Internal Part Name" msgstr "" -#: order/serializers.py:584 +#: order/serializers.py:669 msgid "Supplier part must be specified" msgstr "" -#: order/serializers.py:587 +#: order/serializers.py:672 msgid "Purchase order must be specified" msgstr "" -#: order/serializers.py:595 +#: order/serializers.py:680 msgid "Supplier must match purchase order" msgstr "" -#: order/serializers.py:596 +#: order/serializers.py:681 msgid "Purchase order must match supplier" msgstr "" -#: order/serializers.py:639 order/serializers.py:1446 +#: order/serializers.py:724 order/serializers.py:1572 msgid "Line Item" msgstr "" -#: order/serializers.py:645 +#: order/serializers.py:730 msgid "Line item does not match purchase order" msgstr "" -#: order/serializers.py:655 order/serializers.py:779 order/serializers.py:1782 +#: order/serializers.py:740 order/serializers.py:881 order/serializers.py:1934 msgid "Select destination location for received items" msgstr "" -#: order/serializers.py:671 templates/js/translated/purchase_order.js:1130 +#: order/serializers.py:756 templates/js/translated/purchase_order.js:1113 #: templates/js/translated/stock.js:1200 msgid "Enter batch code for incoming stock items" msgstr "" -#: order/serializers.py:679 templates/js/translated/purchase_order.js:1155 +#: order/serializers.py:764 templates/js/translated/purchase_order.js:1138 msgid "Enter serial numbers for incoming stock items" msgstr "" -#: order/serializers.py:691 +#: order/serializers.py:776 msgid "Override packaging information for incoming stock items" msgstr "" -#: order/serializers.py:699 +#: order/serializers.py:784 msgid "Additional note for incoming stock items" msgstr "" -#: order/serializers.py:706 templates/js/translated/barcode.js:52 +#: order/serializers.py:791 templates/js/translated/barcode.js:52 msgid "Barcode" msgstr "" -#: order/serializers.py:707 +#: order/serializers.py:792 msgid "Scanned barcode" msgstr "" -#: order/serializers.py:723 +#: order/serializers.py:808 msgid "Barcode is already in use" msgstr "" -#: order/serializers.py:747 +#: order/serializers.py:831 msgid "An integer quantity must be provided for trackable parts" msgstr "" -#: order/serializers.py:795 order/serializers.py:1798 +#: order/serializers.py:898 order/serializers.py:1950 msgid "Line items must be provided" msgstr "" -#: order/serializers.py:811 +#: order/serializers.py:914 msgid "Destination location must be specified" msgstr "" -#: order/serializers.py:822 +#: order/serializers.py:925 msgid "Supplied barcode values must be unique" msgstr "" -#: order/serializers.py:1187 +#: order/serializers.py:1221 msgid "Sale price currency" msgstr "" -#: order/serializers.py:1248 +#: order/serializers.py:1260 +msgid "Allocated Items" +msgstr "" + +#: order/serializers.py:1374 msgid "No shipment details provided" msgstr "" -#: order/serializers.py:1309 order/serializers.py:1455 +#: order/serializers.py:1435 order/serializers.py:1581 msgid "Line item is not associated with this order" msgstr "" -#: order/serializers.py:1328 +#: order/serializers.py:1454 msgid "Quantity must be positive" msgstr "" -#: order/serializers.py:1465 +#: order/serializers.py:1591 msgid "Enter serial numbers to allocate" msgstr "" -#: order/serializers.py:1487 order/serializers.py:1593 +#: order/serializers.py:1613 order/serializers.py:1733 msgid "Shipment has already been shipped" msgstr "" -#: order/serializers.py:1490 order/serializers.py:1596 +#: order/serializers.py:1616 order/serializers.py:1736 msgid "Shipment is not associated with this order" msgstr "" -#: order/serializers.py:1537 +#: order/serializers.py:1671 msgid "No match found for the following serial numbers" msgstr "" -#: order/serializers.py:1544 -msgid "The following serial numbers are already allocated" +#: order/serializers.py:1678 +msgid "The following serial numbers are unavailable" msgstr "" -#: order/serializers.py:1752 +#: order/serializers.py:1904 msgid "Return order line item" msgstr "" -#: order/serializers.py:1758 +#: order/serializers.py:1910 msgid "Line item does not match return order" msgstr "" -#: order/serializers.py:1761 +#: order/serializers.py:1913 msgid "Line item has already been received" msgstr "" -#: order/serializers.py:1790 +#: order/serializers.py:1942 msgid "Items can only be received against orders which are in progress" msgstr "" -#: order/serializers.py:1873 +#: order/serializers.py:2025 msgid "Line price currency" msgstr "" -#: order/status_codes.py:17 order/status_codes.py:52 stock/status_codes.py:16 +#: order/status_codes.py:17 order/status_codes.py:54 stock/status_codes.py:16 msgid "Lost" msgstr "Izgubljeno" -#: order/status_codes.py:18 order/status_codes.py:53 stock/status_codes.py:22 +#: order/status_codes.py:18 order/status_codes.py:55 stock/status_codes.py:24 msgid "Returned" msgstr "Vraćeno" -#: order/status_codes.py:45 order/status_codes.py:77 +#: order/status_codes.py:47 order/status_codes.py:79 msgid "In Progress" msgstr "U progresu" -#: order/status_codes.py:101 +#: order/status_codes.py:105 msgid "Return" msgstr "" -#: order/status_codes.py:104 +#: order/status_codes.py:108 msgid "Repair" msgstr "" -#: order/status_codes.py:107 +#: order/status_codes.py:111 msgid "Replace" msgstr "" -#: order/status_codes.py:110 +#: order/status_codes.py:114 msgid "Refund" msgstr "" -#: order/status_codes.py:113 +#: order/status_codes.py:117 msgid "Reject" msgstr "" -#: order/tasks.py:25 +#: order/tasks.py:30 msgid "Overdue Purchase Order" msgstr "" -#: order/tasks.py:30 +#: order/tasks.py:35 #, python-brace-format msgid "Purchase order {po} is now overdue" msgstr "" -#: order/tasks.py:75 +#: order/tasks.py:80 msgid "Overdue Sales Order" msgstr "" -#: order/tasks.py:80 +#: order/tasks.py:85 #, python-brace-format msgid "Sales order {so} is now overdue" msgstr "" -#: order/templates/order/order_base.html:51 +#: order/templates/order/order_base.html:52 msgid "Print purchase order report" msgstr "" -#: order/templates/order/order_base.html:53 -#: order/templates/order/return_order_base.html:62 -#: order/templates/order/sales_order_base.html:62 +#: order/templates/order/order_base.html:54 +#: order/templates/order/return_order_base.html:63 +#: order/templates/order/sales_order_base.html:63 msgid "Export order to file" msgstr "" -#: order/templates/order/order_base.html:59 -#: order/templates/order/return_order_base.html:72 -#: order/templates/order/sales_order_base.html:71 +#: order/templates/order/order_base.html:60 +#: order/templates/order/return_order_base.html:73 +#: order/templates/order/sales_order_base.html:72 msgid "Order actions" msgstr "" -#: order/templates/order/order_base.html:64 -#: order/templates/order/return_order_base.html:76 -#: order/templates/order/sales_order_base.html:75 +#: order/templates/order/order_base.html:65 +#: order/templates/order/return_order_base.html:77 +#: order/templates/order/sales_order_base.html:76 msgid "Edit order" msgstr "" -#: order/templates/order/order_base.html:68 +#: order/templates/order/order_base.html:69 msgid "Duplicate order" msgstr "" -#: order/templates/order/order_base.html:73 -#: order/templates/order/return_order_base.html:78 -#: order/templates/order/sales_order_base.html:77 +#: order/templates/order/order_base.html:74 +#: order/templates/order/return_order_base.html:79 +#: order/templates/order/sales_order_base.html:78 msgid "Hold order" msgstr "" -#: order/templates/order/order_base.html:78 -#: order/templates/order/return_order_base.html:81 -#: order/templates/order/sales_order_base.html:80 +#: order/templates/order/order_base.html:79 +#: order/templates/order/return_order_base.html:82 +#: order/templates/order/sales_order_base.html:81 msgid "Cancel order" msgstr "" -#: order/templates/order/order_base.html:84 #: order/templates/order/order_base.html:85 -#: order/templates/order/return_order_base.html:85 +#: order/templates/order/order_base.html:86 #: order/templates/order/return_order_base.html:86 -#: order/templates/order/sales_order_base.html:86 +#: order/templates/order/return_order_base.html:87 #: order/templates/order/sales_order_base.html:87 +#: order/templates/order/sales_order_base.html:88 msgid "Issue Order" msgstr "" -#: order/templates/order/order_base.html:88 -#: order/templates/order/return_order_base.html:89 -msgid "Mark order as complete" -msgstr "" - #: order/templates/order/order_base.html:89 #: order/templates/order/return_order_base.html:90 -#: order/templates/order/sales_order_base.html:100 +msgid "Mark order as complete" +msgstr "" + +#: order/templates/order/order_base.html:90 +#: order/templates/order/return_order_base.html:91 +#: order/templates/order/sales_order_base.html:101 msgid "Complete Order" msgstr "" -#: order/templates/order/order_base.html:96 +#: order/templates/order/order_base.html:97 msgid "Supplier part thumbnail" msgstr "" -#: order/templates/order/order_base.html:116 -#: order/templates/order/return_order_base.html:109 -#: order/templates/order/sales_order_base.html:118 +#: order/templates/order/order_base.html:117 +#: order/templates/order/return_order_base.html:110 +#: order/templates/order/sales_order_base.html:119 msgid "Order Description" msgstr "" -#: order/templates/order/order_base.html:146 -msgid "No suppplier information available" -msgstr "" - -#: order/templates/order/order_base.html:159 -#: order/templates/order/sales_order_base.html:164 +#: order/templates/order/order_base.html:168 +#: order/templates/order/sales_order_base.html:165 msgid "Completed Line Items" msgstr "" -#: order/templates/order/order_base.html:165 -#: order/templates/order/sales_order_base.html:170 -#: order/templates/order/sales_order_base.html:180 +#: order/templates/order/order_base.html:174 +#: order/templates/order/sales_order_base.html:171 +#: order/templates/order/sales_order_base.html:181 msgid "Incomplete" msgstr "" -#: order/templates/order/order_base.html:184 -#: order/templates/order/return_order_base.html:160 +#: order/templates/order/order_base.html:193 +#: order/templates/order/return_order_base.html:161 #: report/templates/report/inventree_build_order_report.html:121 msgid "Issued" msgstr "" -#: order/templates/order/order_base.html:229 +#: order/templates/order/order_base.html:238 msgid "Total cost" msgstr "" -#: order/templates/order/order_base.html:233 -#: order/templates/order/return_order_base.html:202 -#: order/templates/order/sales_order_base.html:246 +#: order/templates/order/order_base.html:242 +#: order/templates/order/return_order_base.html:203 +#: order/templates/order/sales_order_base.html:247 msgid "Total cost could not be calculated" msgstr "" -#: order/templates/order/order_base.html:335 +#: order/templates/order/order_base.html:344 msgid "Purchase Order QR Code" msgstr "" -#: order/templates/order/order_base.html:347 +#: order/templates/order/order_base.html:356 msgid "Link Barcode to Purchase Order" msgstr "" @@ -6184,12 +6392,12 @@ msgstr "" #: part/templates/part/import_wizard/ajax_match_references.html:42 #: part/templates/part/import_wizard/match_fields.html:71 #: part/templates/part/import_wizard/match_references.html:49 -#: templates/js/translated/bom.js:133 templates/js/translated/build.js:530 -#: templates/js/translated/build.js:1802 -#: templates/js/translated/purchase_order.js:696 -#: templates/js/translated/purchase_order.js:1288 +#: templates/js/translated/bom.js:133 templates/js/translated/build.js:533 +#: templates/js/translated/build.js:1805 +#: templates/js/translated/purchase_order.js:679 +#: templates/js/translated/purchase_order.js:1271 #: templates/js/translated/return_order.js:505 -#: templates/js/translated/sales_order.js:1145 +#: templates/js/translated/sales_order.js:1111 #: templates/js/translated/stock.js:720 templates/js/translated/stock.js:889 #: templates/patterns/wizard/match_fields.html:70 msgid "Remove row" @@ -6242,7 +6450,7 @@ msgstr "" #: order/templates/order/purchase_order_detail.html:27 #: order/templates/order/return_order_detail.html:24 #: order/templates/order/sales_order_detail.html:24 -#: templates/js/translated/purchase_order.js:414 +#: templates/js/translated/purchase_order.js:397 #: templates/js/translated/return_order.js:458 #: templates/js/translated/sales_order.js:237 msgid "Add Line Item" @@ -6277,45 +6485,45 @@ msgstr "" msgid "Order Notes" msgstr "" -#: order/templates/order/return_order_base.html:18 -#: order/templates/order/sales_order_base.html:18 +#: order/templates/order/return_order_base.html:19 +#: order/templates/order/sales_order_base.html:19 msgid "Customer logo thumbnail" msgstr "" -#: order/templates/order/return_order_base.html:60 +#: order/templates/order/return_order_base.html:61 msgid "Print return order report" msgstr "" -#: order/templates/order/return_order_base.html:64 -#: order/templates/order/sales_order_base.html:64 +#: order/templates/order/return_order_base.html:65 +#: order/templates/order/sales_order_base.html:65 msgid "Print packing list" msgstr "" -#: order/templates/order/return_order_base.html:141 -#: order/templates/order/sales_order_base.html:158 +#: order/templates/order/return_order_base.html:142 +#: order/templates/order/sales_order_base.html:159 #: templates/js/translated/return_order.js:308 -#: templates/js/translated/sales_order.js:833 +#: templates/js/translated/sales_order.js:792 msgid "Customer Reference" msgstr "" -#: order/templates/order/return_order_base.html:198 -#: order/templates/order/sales_order_base.html:242 +#: order/templates/order/return_order_base.html:199 +#: order/templates/order/sales_order_base.html:243 #: part/templates/part/part_pricing.html:32 #: part/templates/part/part_pricing.html:58 #: part/templates/part/part_pricing.html:99 #: part/templates/part/part_pricing.html:114 #: templates/js/translated/part.js:1079 -#: templates/js/translated/purchase_order.js:1822 +#: templates/js/translated/purchase_order.js:1806 #: templates/js/translated/return_order.js:380 -#: templates/js/translated/sales_order.js:891 +#: templates/js/translated/sales_order.js:850 msgid "Total Cost" msgstr "" -#: order/templates/order/return_order_base.html:273 +#: order/templates/order/return_order_base.html:274 msgid "Return Order QR Code" msgstr "" -#: order/templates/order/return_order_base.html:285 +#: order/templates/order/return_order_base.html:286 msgid "Link Barcode to Return Order" msgstr "" @@ -6323,40 +6531,40 @@ msgstr "" msgid "Order Details" msgstr "" -#: order/templates/order/sales_order_base.html:60 +#: order/templates/order/sales_order_base.html:61 msgid "Print sales order report" msgstr "" -#: order/templates/order/sales_order_base.html:91 #: order/templates/order/sales_order_base.html:92 +#: order/templates/order/sales_order_base.html:93 msgid "Ship Items" msgstr "" -#: order/templates/order/sales_order_base.html:95 #: order/templates/order/sales_order_base.html:96 +#: order/templates/order/sales_order_base.html:97 msgid "Mark As Shipped" msgstr "" -#: order/templates/order/sales_order_base.html:99 -#: templates/js/translated/sales_order.js:536 +#: order/templates/order/sales_order_base.html:100 +#: templates/js/translated/sales_order.js:495 msgid "Complete Sales Order" msgstr "" -#: order/templates/order/sales_order_base.html:138 +#: order/templates/order/sales_order_base.html:139 msgid "This Sales Order has not been fully allocated" msgstr "" -#: order/templates/order/sales_order_base.html:176 +#: order/templates/order/sales_order_base.html:177 #: order/templates/order/sales_order_detail.html:99 #: order/templates/order/so_sidebar.html:11 msgid "Completed Shipments" msgstr "" -#: order/templates/order/sales_order_base.html:339 +#: order/templates/order/sales_order_base.html:340 msgid "Sales Order QR Code" msgstr "" -#: order/templates/order/sales_order_base.html:351 +#: order/templates/order/sales_order_base.html:352 msgid "Link Barcode to Sales Order" msgstr "" @@ -6370,7 +6578,7 @@ msgid "Pending Shipments" msgstr "" #: order/templates/order/sales_order_detail.html:71 -#: templates/js/translated/bom.js:1277 templates/js/translated/build.js:1063 +#: templates/js/translated/bom.js:1277 templates/js/translated/build.js:1066 #: templates/js/translated/filters.js:299 msgid "Actions" msgstr "" @@ -6383,39 +6591,40 @@ msgstr "" msgid "Match Supplier Parts" msgstr "" -#: order/views.py:406 +#: order/views.py:407 msgid "Sales order not found" msgstr "" -#: order/views.py:412 +#: order/views.py:413 msgid "Price not found" msgstr "" -#: order/views.py:415 +#: order/views.py:416 #, python-brace-format msgid "Updated {part} unit-price to {price}" msgstr "" -#: order/views.py:421 +#: order/views.py:422 #, python-brace-format msgid "Updated {part} unit-price to {price} and quantity to {qty}" msgstr "" -#: part/admin.py:48 part/models.py:1032 part/templates/part/part_base.html:269 +#: part/admin.py:48 part/models.py:1093 part/serializers.py:939 +#: part/templates/part/part_base.html:277 #: report/templates/report/inventree_stock_location_report.html:103 #: templates/js/translated/part.js:1233 templates/js/translated/part.js:2347 -#: templates/js/translated/stock.js:2121 +#: templates/js/translated/stock.js:2122 msgid "IPN" msgstr "" -#: part/admin.py:50 part/models.py:1041 part/templates/part/part_base.html:286 +#: part/admin.py:50 part/models.py:1102 part/templates/part/part_base.html:294 #: report/models.py:161 templates/js/translated/part.js:1238 #: templates/js/translated/part.js:2353 msgid "Revision" msgstr "" -#: part/admin.py:53 part/admin.py:319 part/models.py:1014 -#: part/templates/part/category.html:91 part/templates/part/part_base.html:307 +#: part/admin.py:53 part/admin.py:319 part/models.py:1075 +#: part/templates/part/category.html:91 part/templates/part/part_base.html:315 msgid "Keywords" msgstr "" @@ -6427,7 +6636,7 @@ msgstr "" msgid "Category ID" msgstr "" -#: part/admin.py:67 part/admin.py:304 part/serializers.py:880 +#: part/admin.py:67 part/admin.py:304 part/serializers.py:924 #: part/stocktake.py:222 msgid "Category Name" msgstr "" @@ -6440,11 +6649,11 @@ msgstr "" msgid "Default Supplier ID" msgstr "" -#: part/admin.py:81 part/models.py:1000 part/templates/part/part_base.html:177 +#: part/admin.py:81 part/models.py:1061 part/templates/part/part_base.html:178 msgid "Variant Of" msgstr "" -#: part/admin.py:84 part/models.py:1138 part/templates/part/part_base.html:203 +#: part/admin.py:84 part/models.py:1199 part/templates/part/part_base.html:204 msgid "Minimum Stock" msgstr "" @@ -6452,23 +6661,23 @@ msgstr "" msgid "Used In" msgstr "" -#: part/admin.py:150 part/serializers.py:897 -#: part/templates/part/part_base.html:241 stock/admin.py:235 +#: part/admin.py:150 part/serializers.py:949 +#: part/templates/part/part_base.html:249 stock/admin.py:236 #: templates/js/translated/part.js:717 templates/js/translated/part.js:2159 msgid "Building" msgstr "" -#: part/admin.py:155 part/models.py:3202 part/models.py:3216 +#: part/admin.py:155 part/models.py:3253 part/models.py:3267 #: templates/js/translated/part.js:976 msgid "Minimum Cost" msgstr "" -#: part/admin.py:158 part/models.py:3209 part/models.py:3223 +#: part/admin.py:158 part/models.py:3260 part/models.py:3274 #: templates/js/translated/part.js:986 msgid "Maximum Cost" msgstr "" -#: part/admin.py:308 part/admin.py:387 stock/admin.py:57 stock/admin.py:215 +#: part/admin.py:308 part/admin.py:387 stock/admin.py:57 stock/admin.py:216 msgid "Parent ID" msgstr "" @@ -6481,8 +6690,8 @@ msgstr "" msgid "Category Path" msgstr "" -#: part/admin.py:325 part/models.py:425 part/serializers.py:130 -#: part/serializers.py:290 part/serializers.py:415 +#: part/admin.py:325 part/models.py:420 part/serializers.py:130 +#: part/serializers.py:323 part/serializers.py:459 #: part/templates/part/cat_link.html:3 part/templates/part/category.html:20 #: part/templates/part/category.html:138 part/templates/part/category.html:158 #: part/templates/part/category_sidebar.html:9 @@ -6509,15 +6718,15 @@ msgstr "" msgid "Part Revision" msgstr "" -#: part/admin.py:418 part/serializers.py:1346 +#: part/admin.py:418 part/serializers.py:1400 #: templates/js/translated/pricing.js:358 -#: templates/js/translated/pricing.js:1024 +#: templates/js/translated/pricing.js:1022 msgid "Minimum Price" msgstr "" -#: part/admin.py:423 part/serializers.py:1361 +#: part/admin.py:423 part/serializers.py:1415 #: templates/js/translated/pricing.js:353 -#: templates/js/translated/pricing.js:1032 +#: templates/js/translated/pricing.js:1030 msgid "Maximum Price" msgstr "" @@ -6545,94 +6754,98 @@ msgstr "" msgid "Filter by top-level categories" msgstr "" +#: part/api.py:156 stock/api.py:343 +msgid "Cascade" +msgstr "" + #: part/api.py:158 msgid "Include sub-categories in filtered results" msgstr "" -#: part/api.py:179 templates/js/translated/part.js:311 +#: part/api.py:178 templates/js/translated/part.js:311 msgid "Parent" msgstr "" -#: part/api.py:181 +#: part/api.py:180 msgid "Filter by parent category" msgstr "" -#: part/api.py:214 +#: part/api.py:213 msgid "Exclude Tree" msgstr "" -#: part/api.py:216 +#: part/api.py:215 msgid "Exclude sub-categories under the specified category" msgstr "" -#: part/api.py:441 +#: part/api.py:440 msgid "Has Results" msgstr "" -#: part/api.py:608 +#: part/api.py:604 msgid "Incoming Purchase Order" msgstr "" -#: part/api.py:626 +#: part/api.py:618 msgid "Outgoing Sales Order" msgstr "" -#: part/api.py:642 +#: part/api.py:630 msgid "Stock produced by Build Order" msgstr "" -#: part/api.py:726 +#: part/api.py:712 msgid "Stock required for Build Order" msgstr "" -#: part/api.py:874 +#: part/api.py:858 msgid "Validate entire Bill of Materials" msgstr "" -#: part/api.py:880 +#: part/api.py:864 msgid "This option must be selected" msgstr "" -#: part/api.py:916 +#: part/api.py:900 msgid "Is Revision" msgstr "" -#: part/api.py:926 +#: part/api.py:910 msgid "Has Revisions" msgstr "" -#: part/api.py:1117 +#: part/api.py:1101 msgid "BOM Valid" msgstr "" -#: part/api.py:1523 part/models.py:1024 part/models.py:3489 part/models.py:4046 -#: part/serializers.py:430 part/serializers.py:1202 -#: part/templates/part/part_base.html:260 stock/api.py:781 +#: part/api.py:1509 part/models.py:1085 part/models.py:3540 part/models.py:4104 +#: part/serializers.py:474 part/serializers.py:1255 +#: part/templates/part/part_base.html:268 stock/api.py:781 #: templates/InvenTree/settings/settings_staff_js.html:300 #: templates/js/translated/notification.js:60 #: templates/js/translated/part.js:2383 msgid "Category" msgstr "" -#: part/api.py:1761 +#: part/api.py:1750 msgid "Assembly part is testable" msgstr "" -#: part/api.py:1770 +#: part/api.py:1759 msgid "Component part is testable" msgstr "" -#: part/api.py:1821 +#: part/api.py:1810 msgid "Uses" msgstr "" -#: part/bom.py:178 part/models.py:107 part/models.py:1077 -#: part/templates/part/category.html:113 part/templates/part/part_base.html:376 +#: part/bom.py:183 part/models.py:109 part/models.py:1138 +#: part/templates/part/category.html:113 part/templates/part/part_base.html:384 #: templates/js/translated/part.js:2397 msgid "Default Location" msgstr "" -#: part/bom.py:179 part/serializers.py:905 +#: part/bom.py:184 part/serializers.py:957 #: templates/email/low_stock_notification.html:16 msgid "Total Stock" msgstr "" @@ -6641,789 +6854,789 @@ msgstr "" msgid "Input quantity for price calculation" msgstr "" -#: part/models.py:88 part/models.py:4047 part/templates/part/category.html:16 +#: part/models.py:90 part/models.py:4105 part/templates/part/category.html:16 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "" -#: part/models.py:89 part/templates/part/category.html:133 +#: part/models.py:91 part/templates/part/category.html:133 #: templates/InvenTree/search.html:97 templates/js/translated/search.js:158 #: users/models.py:202 msgid "Part Categories" msgstr "" -#: part/models.py:108 +#: part/models.py:110 msgid "Default location for parts in this category" msgstr "" -#: part/models.py:113 stock/models.py:187 templates/js/translated/part.js:2828 -#: templates/js/translated/stock.js:2856 +#: part/models.py:115 stock/models.py:193 templates/js/translated/part.js:2828 +#: templates/js/translated/stock.js:2857 #: templates/js/translated/table_filters.js:246 #: templates/js/translated/table_filters.js:290 msgid "Structural" msgstr "" -#: part/models.py:115 +#: part/models.py:117 msgid "Parts may not be directly assigned to a structural category, but may be assigned to child categories." msgstr "" -#: part/models.py:124 +#: part/models.py:126 msgid "Default keywords" msgstr "" -#: part/models.py:125 +#: part/models.py:127 msgid "Default keywords for parts in this category" msgstr "" -#: part/models.py:131 stock/models.py:90 stock/models.py:169 +#: part/models.py:133 stock/models.py:96 stock/models.py:175 #: templates/InvenTree/settings/settings_staff_js.html:445 msgid "Icon" msgstr "" -#: part/models.py:132 part/serializers.py:143 part/serializers.py:161 -#: stock/models.py:170 +#: part/models.py:134 part/serializers.py:143 part/serializers.py:161 +#: stock/models.py:176 msgid "Icon (optional)" msgstr "" -#: part/models.py:178 +#: part/models.py:180 msgid "You cannot make this part category structural because some parts are already assigned to it!" msgstr "" -#: part/models.py:519 +#: part/models.py:514 msgid "Cannot delete this part as it is locked" msgstr "" -#: part/models.py:522 +#: part/models.py:517 msgid "Cannot delete this part as it is still active" msgstr "" -#: part/models.py:527 +#: part/models.py:522 msgid "Cannot delete this part as it is used in an assembly" msgstr "" -#: part/models.py:565 +#: part/models.py:560 msgid "Invalid choice for parent part" msgstr "" -#: part/models.py:613 part/models.py:620 +#: part/models.py:608 part/models.py:615 #, python-brace-format msgid "Part '{self}' cannot be used in BOM for '{parent}' (recursive)" msgstr "" -#: part/models.py:632 +#: part/models.py:627 #, python-brace-format msgid "Part '{parent}' is used in BOM for '{self}' (recursive)" msgstr "" -#: part/models.py:695 +#: part/models.py:694 #, python-brace-format msgid "IPN must match regex pattern {pattern}" msgstr "" -#: part/models.py:703 +#: part/models.py:702 msgid "Part cannot be a revision of itself" msgstr "" -#: part/models.py:710 +#: part/models.py:709 msgid "Cannot make a revision of a part which is already a revision" msgstr "" -#: part/models.py:717 +#: part/models.py:716 msgid "Revision code must be specified" msgstr "" -#: part/models.py:724 +#: part/models.py:723 msgid "Revisions are only allowed for assembly parts" msgstr "" -#: part/models.py:731 +#: part/models.py:730 msgid "Cannot make a revision of a template part" msgstr "" -#: part/models.py:737 +#: part/models.py:736 msgid "Parent part must point to the same template" msgstr "" -#: part/models.py:816 +#: part/models.py:832 msgid "Stock item with this serial number already exists" msgstr "" -#: part/models.py:917 +#: part/models.py:976 msgid "Duplicate IPN not allowed in part settings" msgstr "" -#: part/models.py:926 +#: part/models.py:988 msgid "Duplicate part revision already exists." msgstr "" -#: part/models.py:936 +#: part/models.py:997 msgid "Part with this Name, IPN and Revision already exists." msgstr "" -#: part/models.py:951 +#: part/models.py:1012 msgid "Parts cannot be assigned to structural part categories!" msgstr "" -#: part/models.py:983 part/models.py:4102 +#: part/models.py:1044 part/models.py:4160 msgid "Part name" msgstr "" -#: part/models.py:988 +#: part/models.py:1049 msgid "Is Template" msgstr "" -#: part/models.py:989 +#: part/models.py:1050 msgid "Is this part a template part?" msgstr "" -#: part/models.py:999 +#: part/models.py:1060 msgid "Is this part a variant of another part?" msgstr "" -#: part/models.py:1007 +#: part/models.py:1068 msgid "Part description (optional)" msgstr "" -#: part/models.py:1015 +#: part/models.py:1076 msgid "Part keywords to improve visibility in search results" msgstr "" -#: part/models.py:1025 +#: part/models.py:1086 msgid "Part category" msgstr "" -#: part/models.py:1040 +#: part/models.py:1101 msgid "Part revision or version number" msgstr "" -#: part/models.py:1050 +#: part/models.py:1111 msgid "Is this part a revision of another part?" msgstr "" -#: part/models.py:1051 part/templates/part/part_base.html:277 +#: part/models.py:1112 part/templates/part/part_base.html:285 msgid "Revision Of" msgstr "" -#: part/models.py:1075 +#: part/models.py:1136 msgid "Where is this item normally stored?" msgstr "" -#: part/models.py:1121 part/templates/part/part_base.html:385 +#: part/models.py:1182 part/templates/part/part_base.html:393 msgid "Default Supplier" msgstr "" -#: part/models.py:1122 +#: part/models.py:1183 msgid "Default supplier part" msgstr "" -#: part/models.py:1129 +#: part/models.py:1190 msgid "Default Expiry" msgstr "" -#: part/models.py:1130 +#: part/models.py:1191 msgid "Expiry time (in days) for stock items of this part" msgstr "" -#: part/models.py:1139 +#: part/models.py:1200 msgid "Minimum allowed stock level" msgstr "" -#: part/models.py:1148 +#: part/models.py:1209 msgid "Units of measure for this part" msgstr "" -#: part/models.py:1155 +#: part/models.py:1216 msgid "Can this part be built from other parts?" msgstr "" -#: part/models.py:1161 +#: part/models.py:1222 msgid "Can this part be used to build other parts?" msgstr "" -#: part/models.py:1167 +#: part/models.py:1228 msgid "Does this part have tracking for unique items?" msgstr "" -#: part/models.py:1173 +#: part/models.py:1234 msgid "Can this part have test results recorded against it?" msgstr "" -#: part/models.py:1179 +#: part/models.py:1240 msgid "Can this part be purchased from external suppliers?" msgstr "" -#: part/models.py:1185 +#: part/models.py:1246 msgid "Can this part be sold to customers?" msgstr "" -#: part/models.py:1189 +#: part/models.py:1250 msgid "Is this part active?" msgstr "" -#: part/models.py:1194 templates/js/translated/part.js:821 +#: part/models.py:1255 templates/js/translated/part.js:821 #: templates/js/translated/table_filters.js:724 msgid "Locked" msgstr "" -#: part/models.py:1195 +#: part/models.py:1256 msgid "Locked parts cannot be edited" msgstr "" -#: part/models.py:1201 +#: part/models.py:1262 msgid "Is this a virtual part, such as a software product or license?" msgstr "" -#: part/models.py:1207 +#: part/models.py:1268 msgid "BOM checksum" msgstr "" -#: part/models.py:1208 +#: part/models.py:1269 msgid "Stored BOM checksum" msgstr "" -#: part/models.py:1216 +#: part/models.py:1277 msgid "BOM checked by" msgstr "" -#: part/models.py:1221 +#: part/models.py:1282 msgid "BOM checked date" msgstr "" -#: part/models.py:1237 +#: part/models.py:1298 msgid "Creation User" msgstr "" -#: part/models.py:1247 +#: part/models.py:1308 msgid "Owner responsible for this part" msgstr "" -#: part/models.py:1252 part/templates/part/part_base.html:348 -#: stock/templates/stock/item_base.html:451 +#: part/models.py:1313 part/templates/part/part_base.html:356 +#: stock/templates/stock/item_base.html:448 #: templates/js/translated/part.js:2490 msgid "Last Stocktake" msgstr "" -#: part/models.py:2125 +#: part/models.py:2185 msgid "Sell multiple" msgstr "" -#: part/models.py:3116 +#: part/models.py:3167 msgid "Currency used to cache pricing calculations" msgstr "" -#: part/models.py:3132 +#: part/models.py:3183 msgid "Minimum BOM Cost" msgstr "" -#: part/models.py:3133 +#: part/models.py:3184 msgid "Minimum cost of component parts" msgstr "" -#: part/models.py:3139 +#: part/models.py:3190 msgid "Maximum BOM Cost" msgstr "" -#: part/models.py:3140 +#: part/models.py:3191 msgid "Maximum cost of component parts" msgstr "" -#: part/models.py:3146 +#: part/models.py:3197 msgid "Minimum Purchase Cost" msgstr "" -#: part/models.py:3147 +#: part/models.py:3198 msgid "Minimum historical purchase cost" msgstr "" -#: part/models.py:3153 +#: part/models.py:3204 msgid "Maximum Purchase Cost" msgstr "" -#: part/models.py:3154 +#: part/models.py:3205 msgid "Maximum historical purchase cost" msgstr "" -#: part/models.py:3160 +#: part/models.py:3211 msgid "Minimum Internal Price" msgstr "" -#: part/models.py:3161 +#: part/models.py:3212 msgid "Minimum cost based on internal price breaks" msgstr "" -#: part/models.py:3167 +#: part/models.py:3218 msgid "Maximum Internal Price" msgstr "" -#: part/models.py:3168 +#: part/models.py:3219 msgid "Maximum cost based on internal price breaks" msgstr "" -#: part/models.py:3174 +#: part/models.py:3225 msgid "Minimum Supplier Price" msgstr "" -#: part/models.py:3175 +#: part/models.py:3226 msgid "Minimum price of part from external suppliers" msgstr "" -#: part/models.py:3181 +#: part/models.py:3232 msgid "Maximum Supplier Price" msgstr "" -#: part/models.py:3182 +#: part/models.py:3233 msgid "Maximum price of part from external suppliers" msgstr "" -#: part/models.py:3188 +#: part/models.py:3239 msgid "Minimum Variant Cost" msgstr "" -#: part/models.py:3189 +#: part/models.py:3240 msgid "Calculated minimum cost of variant parts" msgstr "" -#: part/models.py:3195 +#: part/models.py:3246 msgid "Maximum Variant Cost" msgstr "" -#: part/models.py:3196 +#: part/models.py:3247 msgid "Calculated maximum cost of variant parts" msgstr "" -#: part/models.py:3203 +#: part/models.py:3254 msgid "Override minimum cost" msgstr "" -#: part/models.py:3210 +#: part/models.py:3261 msgid "Override maximum cost" msgstr "" -#: part/models.py:3217 +#: part/models.py:3268 msgid "Calculated overall minimum cost" msgstr "" -#: part/models.py:3224 +#: part/models.py:3275 msgid "Calculated overall maximum cost" msgstr "" -#: part/models.py:3230 +#: part/models.py:3281 msgid "Minimum Sale Price" msgstr "" -#: part/models.py:3231 +#: part/models.py:3282 msgid "Minimum sale price based on price breaks" msgstr "" -#: part/models.py:3237 +#: part/models.py:3288 msgid "Maximum Sale Price" msgstr "" -#: part/models.py:3238 +#: part/models.py:3289 msgid "Maximum sale price based on price breaks" msgstr "" -#: part/models.py:3244 +#: part/models.py:3295 msgid "Minimum Sale Cost" msgstr "" -#: part/models.py:3245 +#: part/models.py:3296 msgid "Minimum historical sale price" msgstr "" -#: part/models.py:3251 +#: part/models.py:3302 msgid "Maximum Sale Cost" msgstr "" -#: part/models.py:3252 +#: part/models.py:3303 msgid "Maximum historical sale price" msgstr "" -#: part/models.py:3271 +#: part/models.py:3322 msgid "Part for stocktake" msgstr "" -#: part/models.py:3276 +#: part/models.py:3327 msgid "Item Count" msgstr "" -#: part/models.py:3277 +#: part/models.py:3328 msgid "Number of individual stock entries at time of stocktake" msgstr "" -#: part/models.py:3285 +#: part/models.py:3336 msgid "Total available stock at time of stocktake" msgstr "" -#: part/models.py:3289 part/models.py:3372 +#: part/models.py:3340 part/models.py:3423 part/serializers.py:263 #: part/templates/part/part_scheduling.html:13 #: report/templates/report/inventree_test_report.html:106 #: templates/InvenTree/settings/plugin_settings.html:37 #: templates/InvenTree/settings/settings_staff_js.html:543 -#: templates/js/translated/part.js:1092 templates/js/translated/pricing.js:826 -#: templates/js/translated/pricing.js:950 -#: templates/js/translated/purchase_order.js:1801 -#: templates/js/translated/stock.js:2905 +#: templates/js/translated/part.js:1092 templates/js/translated/pricing.js:824 +#: templates/js/translated/pricing.js:948 +#: templates/js/translated/purchase_order.js:1785 +#: templates/js/translated/stock.js:2906 msgid "Date" msgstr "" -#: part/models.py:3290 +#: part/models.py:3341 msgid "Date stocktake was performed" msgstr "" -#: part/models.py:3298 +#: part/models.py:3349 msgid "Additional notes" msgstr "" -#: part/models.py:3308 +#: part/models.py:3359 msgid "User who performed this stocktake" msgstr "" -#: part/models.py:3314 +#: part/models.py:3365 msgid "Minimum Stock Cost" msgstr "" -#: part/models.py:3315 +#: part/models.py:3366 msgid "Estimated minimum cost of stock on hand" msgstr "" -#: part/models.py:3321 +#: part/models.py:3372 msgid "Maximum Stock Cost" msgstr "" -#: part/models.py:3322 +#: part/models.py:3373 msgid "Estimated maximum cost of stock on hand" msgstr "" -#: part/models.py:3378 templates/InvenTree/settings/settings_staff_js.html:532 +#: part/models.py:3429 templates/InvenTree/settings/settings_staff_js.html:532 msgid "Report" msgstr "" -#: part/models.py:3379 +#: part/models.py:3430 msgid "Stocktake report file (generated internally)" msgstr "" -#: part/models.py:3384 templates/InvenTree/settings/settings_staff_js.html:539 +#: part/models.py:3435 templates/InvenTree/settings/settings_staff_js.html:539 msgid "Part Count" msgstr "" -#: part/models.py:3385 +#: part/models.py:3436 msgid "Number of parts covered by stocktake" msgstr "" -#: part/models.py:3395 +#: part/models.py:3446 msgid "User who requested this stocktake report" msgstr "" -#: part/models.py:3405 +#: part/models.py:3456 msgid "Part Sale Price Break" msgstr "" -#: part/models.py:3517 +#: part/models.py:3568 msgid "Part Test Template" msgstr "" -#: part/models.py:3543 +#: part/models.py:3594 msgid "Invalid template name - must include at least one alphanumeric character" msgstr "" -#: part/models.py:3564 part/models.py:3733 +#: part/models.py:3615 part/models.py:3784 msgid "Choices must be unique" msgstr "" -#: part/models.py:3575 -msgid "Test templates can only be created for trackable parts" +#: part/models.py:3626 +msgid "Test templates can only be created for testable parts" msgstr "" -#: part/models.py:3586 +#: part/models.py:3637 msgid "Test template with the same key already exists for part" msgstr "" -#: part/models.py:3603 templates/js/translated/part.js:2898 +#: part/models.py:3654 templates/js/translated/part.js:2898 msgid "Test Name" msgstr "" -#: part/models.py:3604 +#: part/models.py:3655 msgid "Enter a name for the test" msgstr "" -#: part/models.py:3610 +#: part/models.py:3661 msgid "Test Key" msgstr "" -#: part/models.py:3611 +#: part/models.py:3662 msgid "Simplified key for the test" msgstr "" -#: part/models.py:3618 +#: part/models.py:3669 msgid "Test Description" msgstr "" -#: part/models.py:3619 +#: part/models.py:3670 msgid "Enter description for this test" msgstr "" -#: part/models.py:3623 report/models.py:208 +#: part/models.py:3674 report/models.py:216 #: templates/js/translated/part.js:2919 #: templates/js/translated/table_filters.js:502 msgid "Enabled" msgstr "" -#: part/models.py:3623 +#: part/models.py:3674 msgid "Is this test enabled?" msgstr "" -#: part/models.py:3628 templates/js/translated/part.js:2927 +#: part/models.py:3679 templates/js/translated/part.js:2927 #: templates/js/translated/table_filters.js:498 msgid "Required" msgstr "" -#: part/models.py:3629 +#: part/models.py:3680 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:3634 templates/js/translated/part.js:2935 +#: part/models.py:3685 templates/js/translated/part.js:2935 msgid "Requires Value" msgstr "" -#: part/models.py:3635 +#: part/models.py:3686 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:3640 templates/js/translated/part.js:2942 +#: part/models.py:3691 templates/js/translated/part.js:2942 msgid "Requires Attachment" msgstr "" -#: part/models.py:3642 +#: part/models.py:3693 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:3648 part/models.py:3792 templates/js/translated/part.js:1643 +#: part/models.py:3699 part/models.py:3843 templates/js/translated/part.js:1643 msgid "Choices" msgstr "" -#: part/models.py:3649 +#: part/models.py:3700 msgid "Valid choices for this test (comma-separated)" msgstr "" -#: part/models.py:3681 +#: part/models.py:3732 msgid "Part Parameter Template" msgstr "" -#: part/models.py:3708 +#: part/models.py:3759 msgid "Checkbox parameters cannot have units" msgstr "" -#: part/models.py:3713 +#: part/models.py:3764 msgid "Checkbox parameters cannot have choices" msgstr "" -#: part/models.py:3750 +#: part/models.py:3801 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:3765 +#: part/models.py:3816 msgid "Parameter Name" msgstr "" -#: part/models.py:3772 +#: part/models.py:3823 msgid "Physical units for this parameter" msgstr "" -#: part/models.py:3780 +#: part/models.py:3831 msgid "Parameter description" msgstr "" -#: part/models.py:3786 templates/js/translated/part.js:1634 +#: part/models.py:3837 templates/js/translated/part.js:1634 #: templates/js/translated/table_filters.js:837 msgid "Checkbox" msgstr "" -#: part/models.py:3787 +#: part/models.py:3838 msgid "Is this parameter a checkbox?" msgstr "" -#: part/models.py:3793 +#: part/models.py:3844 msgid "Valid choices for this parameter (comma-separated)" msgstr "" -#: part/models.py:3827 +#: part/models.py:3881 msgid "Part Parameter" msgstr "" -#: part/models.py:3853 +#: part/models.py:3907 msgid "Parameter cannot be modified - part is locked" msgstr "" -#: part/models.py:3889 +#: part/models.py:3945 msgid "Invalid choice for parameter value" msgstr "" -#: part/models.py:3938 +#: part/models.py:3996 msgid "Parent Part" msgstr "" -#: part/models.py:3946 part/models.py:4054 part/models.py:4055 +#: part/models.py:4004 part/models.py:4112 part/models.py:4113 #: templates/InvenTree/settings/settings_staff_js.html:295 msgid "Parameter Template" msgstr "" -#: part/models.py:3952 +#: part/models.py:4010 msgid "Parameter Value" msgstr "" -#: part/models.py:4002 +#: part/models.py:4060 msgid "Part Category Parameter Template" msgstr "" -#: part/models.py:4061 templates/InvenTree/settings/settings_staff_js.html:304 +#: part/models.py:4119 templates/InvenTree/settings/settings_staff_js.html:304 msgid "Default Value" msgstr "" -#: part/models.py:4062 +#: part/models.py:4120 msgid "Default Parameter Value" msgstr "" -#: part/models.py:4100 +#: part/models.py:4158 msgid "Part ID or part name" msgstr "" -#: part/models.py:4101 +#: part/models.py:4159 msgid "Unique part ID value" msgstr "" -#: part/models.py:4103 +#: part/models.py:4161 msgid "Part IPN value" msgstr "" -#: part/models.py:4104 +#: part/models.py:4162 msgid "Level" msgstr "" -#: part/models.py:4104 +#: part/models.py:4162 msgid "BOM level" msgstr "" -#: part/models.py:4215 +#: part/models.py:4272 msgid "BOM item cannot be modified - assembly is locked" msgstr "" -#: part/models.py:4222 +#: part/models.py:4279 msgid "BOM item cannot be modified - variant assembly is locked" msgstr "" -#: part/models.py:4232 +#: part/models.py:4289 msgid "Select parent part" msgstr "" -#: part/models.py:4242 +#: part/models.py:4299 msgid "Sub part" msgstr "" -#: part/models.py:4243 +#: part/models.py:4300 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:4254 +#: part/models.py:4311 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:4260 +#: part/models.py:4317 msgid "This BOM item is optional" msgstr "" -#: part/models.py:4266 +#: part/models.py:4323 msgid "This BOM item is consumable (it is not tracked in build orders)" msgstr "" -#: part/models.py:4273 part/templates/part/upload_bom.html:55 +#: part/models.py:4330 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "" -#: part/models.py:4274 +#: part/models.py:4331 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:4281 +#: part/models.py:4338 msgid "BOM item reference" msgstr "" -#: part/models.py:4289 +#: part/models.py:4346 msgid "BOM item notes" msgstr "" -#: part/models.py:4295 +#: part/models.py:4352 msgid "Checksum" msgstr "" -#: part/models.py:4296 +#: part/models.py:4353 msgid "BOM line checksum" msgstr "" -#: part/models.py:4301 templates/js/translated/table_filters.js:181 +#: part/models.py:4358 templates/js/translated/table_filters.js:181 msgid "Validated" msgstr "" -#: part/models.py:4302 +#: part/models.py:4359 msgid "This BOM item has been validated" msgstr "" -#: part/models.py:4307 part/templates/part/upload_bom.html:57 +#: part/models.py:4364 part/templates/part/upload_bom.html:57 #: templates/js/translated/bom.js:1054 #: templates/js/translated/table_filters.js:185 #: templates/js/translated/table_filters.js:218 msgid "Gets inherited" msgstr "" -#: part/models.py:4308 +#: part/models.py:4365 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:4314 +#: part/models.py:4371 msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:4399 stock/models.py:685 +#: part/models.py:4456 stock/models.py:762 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:4409 part/models.py:4411 +#: part/models.py:4466 part/models.py:4468 msgid "Sub part must be specified" msgstr "" -#: part/models.py:4551 +#: part/models.py:4613 msgid "BOM Item Substitute" msgstr "" -#: part/models.py:4572 +#: part/models.py:4634 msgid "Substitute part cannot be the same as the master part" msgstr "" -#: part/models.py:4585 +#: part/models.py:4647 msgid "Parent BOM item" msgstr "" -#: part/models.py:4593 +#: part/models.py:4655 msgid "Substitute part" msgstr "" -#: part/models.py:4609 +#: part/models.py:4671 msgid "Part 1" msgstr "" -#: part/models.py:4617 +#: part/models.py:4679 msgid "Part 2" msgstr "" -#: part/models.py:4618 +#: part/models.py:4680 msgid "Select Related Part" msgstr "" -#: part/models.py:4637 +#: part/models.py:4699 msgid "Part relationship cannot be created between a part and itself" msgstr "" -#: part/models.py:4642 +#: part/models.py:4704 msgid "Duplicate relationship already exists" msgstr "" @@ -7449,340 +7662,352 @@ msgstr "" msgid "Number of results recorded against this template" msgstr "" -#: part/serializers.py:225 part/serializers.py:243 stock/serializers.py:616 +#: part/serializers.py:225 part/serializers.py:243 stock/serializers.py:643 msgid "Purchase currency of this stock item" msgstr "" -#: part/serializers.py:291 +#: part/serializers.py:268 +msgid "Speculative Quantity" +msgstr "" + +#: part/serializers.py:277 +msgid "Model ID" +msgstr "" + +#: part/serializers.py:324 msgid "Number of parts using this template" msgstr "" -#: part/serializers.py:421 +#: part/serializers.py:465 msgid "No parts selected" msgstr "" -#: part/serializers.py:431 +#: part/serializers.py:475 msgid "Select category" msgstr "" -#: part/serializers.py:466 +#: part/serializers.py:510 msgid "Original Part" msgstr "" -#: part/serializers.py:467 +#: part/serializers.py:511 msgid "Select original part to duplicate" msgstr "" -#: part/serializers.py:472 +#: part/serializers.py:516 msgid "Copy Image" msgstr "" -#: part/serializers.py:473 +#: part/serializers.py:517 msgid "Copy image from original part" msgstr "" -#: part/serializers.py:479 part/templates/part/detail.html:293 +#: part/serializers.py:523 part/templates/part/detail.html:293 msgid "Copy BOM" msgstr "" -#: part/serializers.py:480 +#: part/serializers.py:524 msgid "Copy bill of materials from original part" msgstr "" -#: part/serializers.py:486 +#: part/serializers.py:530 msgid "Copy Parameters" msgstr "" -#: part/serializers.py:487 +#: part/serializers.py:531 msgid "Copy parameter data from original part" msgstr "" -#: part/serializers.py:493 +#: part/serializers.py:537 msgid "Copy Notes" msgstr "" -#: part/serializers.py:494 +#: part/serializers.py:538 msgid "Copy notes from original part" msgstr "" -#: part/serializers.py:512 +#: part/serializers.py:556 msgid "Initial Stock Quantity" msgstr "" -#: part/serializers.py:514 +#: part/serializers.py:558 msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added." msgstr "" -#: part/serializers.py:521 +#: part/serializers.py:565 msgid "Initial Stock Location" msgstr "" -#: part/serializers.py:522 +#: part/serializers.py:566 msgid "Specify initial stock location for this Part" msgstr "" -#: part/serializers.py:539 +#: part/serializers.py:583 msgid "Select supplier (or leave blank to skip)" msgstr "" -#: part/serializers.py:555 +#: part/serializers.py:599 msgid "Select manufacturer (or leave blank to skip)" msgstr "" -#: part/serializers.py:565 +#: part/serializers.py:609 msgid "Manufacturer part number" msgstr "" -#: part/serializers.py:572 +#: part/serializers.py:616 msgid "Selected company is not a valid supplier" msgstr "" -#: part/serializers.py:581 +#: part/serializers.py:625 msgid "Selected company is not a valid manufacturer" msgstr "" -#: part/serializers.py:592 +#: part/serializers.py:636 msgid "Manufacturer part matching this MPN already exists" msgstr "" -#: part/serializers.py:599 +#: part/serializers.py:643 msgid "Supplier part matching this SKU already exists" msgstr "" -#: part/serializers.py:903 +#: part/serializers.py:955 msgid "Revisions" msgstr "" -#: part/serializers.py:908 +#: part/serializers.py:960 msgid "Unallocated Stock" msgstr "" -#: part/serializers.py:911 +#: part/serializers.py:963 msgid "Variant Stock" msgstr "" -#: part/serializers.py:941 part/templates/part/copy_part.html:9 +#: part/serializers.py:993 part/templates/part/copy_part.html:9 #: templates/js/translated/part.js:474 msgid "Duplicate Part" msgstr "" -#: part/serializers.py:942 +#: part/serializers.py:994 msgid "Copy initial data from another Part" msgstr "" -#: part/serializers.py:948 templates/js/translated/part.js:103 +#: part/serializers.py:1000 templates/js/translated/part.js:103 msgid "Initial Stock" msgstr "" -#: part/serializers.py:949 +#: part/serializers.py:1001 msgid "Create Part with initial stock quantity" msgstr "" -#: part/serializers.py:955 +#: part/serializers.py:1007 msgid "Supplier Information" msgstr "" -#: part/serializers.py:956 +#: part/serializers.py:1008 msgid "Add initial supplier information for this part" msgstr "" -#: part/serializers.py:964 +#: part/serializers.py:1016 msgid "Copy Category Parameters" msgstr "" -#: part/serializers.py:965 +#: part/serializers.py:1017 msgid "Copy parameter templates from selected part category" msgstr "" -#: part/serializers.py:970 +#: part/serializers.py:1022 msgid "Existing Image" msgstr "" -#: part/serializers.py:971 +#: part/serializers.py:1023 msgid "Filename of an existing part image" msgstr "" -#: part/serializers.py:988 +#: part/serializers.py:1040 msgid "Image file does not exist" msgstr "" -#: part/serializers.py:1194 +#: part/serializers.py:1247 msgid "Limit stocktake report to a particular part, and any variant parts" msgstr "" -#: part/serializers.py:1204 +#: part/serializers.py:1257 msgid "Limit stocktake report to a particular part category, and any child categories" msgstr "" -#: part/serializers.py:1214 +#: part/serializers.py:1267 msgid "Limit stocktake report to a particular stock location, and any child locations" msgstr "" -#: part/serializers.py:1220 +#: part/serializers.py:1273 msgid "Exclude External Stock" msgstr "" -#: part/serializers.py:1221 +#: part/serializers.py:1274 msgid "Exclude stock items in external locations" msgstr "" -#: part/serializers.py:1226 +#: part/serializers.py:1279 msgid "Generate Report" msgstr "" -#: part/serializers.py:1227 +#: part/serializers.py:1280 msgid "Generate report file containing calculated stocktake data" msgstr "" -#: part/serializers.py:1232 +#: part/serializers.py:1285 msgid "Update Parts" msgstr "" -#: part/serializers.py:1233 +#: part/serializers.py:1286 msgid "Update specified parts with calculated stocktake data" msgstr "" -#: part/serializers.py:1241 +#: part/serializers.py:1294 msgid "Stocktake functionality is not enabled" msgstr "" -#: part/serializers.py:1347 +#: part/serializers.py:1299 +msgid "Background worker check failed" +msgstr "Provera pozadinskog radnika nije uspjela" + +#: part/serializers.py:1401 msgid "Override calculated value for minimum price" msgstr "" -#: part/serializers.py:1354 +#: part/serializers.py:1408 msgid "Minimum price currency" msgstr "" -#: part/serializers.py:1362 +#: part/serializers.py:1416 msgid "Override calculated value for maximum price" msgstr "" -#: part/serializers.py:1369 +#: part/serializers.py:1423 msgid "Maximum price currency" msgstr "" -#: part/serializers.py:1398 +#: part/serializers.py:1452 msgid "Update" msgstr "" -#: part/serializers.py:1399 +#: part/serializers.py:1453 msgid "Update pricing for this part" msgstr "" -#: part/serializers.py:1422 +#: part/serializers.py:1476 #, python-brace-format msgid "Could not convert from provided currencies to {default_currency}" msgstr "" -#: part/serializers.py:1429 +#: part/serializers.py:1483 msgid "Minimum price must not be greater than maximum price" msgstr "" -#: part/serializers.py:1432 +#: part/serializers.py:1486 msgid "Maximum price must not be less than minimum price" msgstr "" -#: part/serializers.py:1576 +#: part/serializers.py:1634 msgid "Select the parent assembly" msgstr "" -#: part/serializers.py:1585 +#: part/serializers.py:1643 msgid "Component Name" msgstr "" -#: part/serializers.py:1588 +#: part/serializers.py:1646 msgid "Component IPN" msgstr "" -#: part/serializers.py:1591 +#: part/serializers.py:1649 msgid "Component Description" msgstr "" -#: part/serializers.py:1597 +#: part/serializers.py:1655 msgid "Select the component part" msgstr "" -#: part/serializers.py:1606 part/templates/part/part_base.html:235 +#: part/serializers.py:1664 part/templates/part/part_base.html:243 #: templates/js/translated/bom.js:1219 msgid "Can Build" msgstr "" -#: part/serializers.py:1837 +#: part/serializers.py:1899 msgid "Select part to copy BOM from" msgstr "" -#: part/serializers.py:1845 +#: part/serializers.py:1907 msgid "Remove Existing Data" msgstr "" -#: part/serializers.py:1846 +#: part/serializers.py:1908 msgid "Remove existing BOM items before copying" msgstr "" -#: part/serializers.py:1851 +#: part/serializers.py:1913 msgid "Include Inherited" msgstr "" -#: part/serializers.py:1852 +#: part/serializers.py:1914 msgid "Include BOM items which are inherited from templated parts" msgstr "" -#: part/serializers.py:1857 +#: part/serializers.py:1919 msgid "Skip Invalid Rows" msgstr "" -#: part/serializers.py:1858 +#: part/serializers.py:1920 msgid "Enable this option to skip invalid rows" msgstr "" -#: part/serializers.py:1863 +#: part/serializers.py:1925 msgid "Copy Substitute Parts" msgstr "" -#: part/serializers.py:1864 +#: part/serializers.py:1926 msgid "Copy substitute parts when duplicate BOM items" msgstr "" -#: part/serializers.py:1901 +#: part/serializers.py:1963 msgid "Clear Existing BOM" msgstr "" -#: part/serializers.py:1902 +#: part/serializers.py:1964 msgid "Delete existing BOM items before uploading" msgstr "" -#: part/serializers.py:1934 +#: part/serializers.py:1996 msgid "No part column specified" msgstr "" -#: part/serializers.py:1978 +#: part/serializers.py:2040 msgid "Multiple matching parts found" msgstr "" -#: part/serializers.py:1981 +#: part/serializers.py:2043 msgid "No matching part found" msgstr "" -#: part/serializers.py:1984 +#: part/serializers.py:2045 msgid "Part is not designated as a component" msgstr "" -#: part/serializers.py:1993 +#: part/serializers.py:2054 msgid "Quantity not provided" msgstr "" -#: part/serializers.py:2001 +#: part/serializers.py:2062 msgid "Invalid quantity" msgstr "" -#: part/serializers.py:2024 +#: part/serializers.py:2085 msgid "At least one BOM item is required" msgstr "" #: part/stocktake.py:224 templates/js/translated/part.js:1073 #: templates/js/translated/part.js:1828 templates/js/translated/part.js:1884 -#: templates/js/translated/purchase_order.js:2154 +#: templates/js/translated/purchase_order.js:2138 msgid "Total Quantity" msgstr "" @@ -7932,9 +8157,9 @@ msgid "Add stocktake information" msgstr "" #: part/templates/part/detail.html:67 part/templates/part/part_sidebar.html:50 -#: stock/admin.py:255 templates/InvenTree/settings/part_stocktake.html:30 +#: stock/admin.py:256 templates/InvenTree/settings/part_stocktake.html:30 #: templates/InvenTree/settings/sidebar.html:53 -#: templates/js/translated/stock.js:2301 users/models.py:204 +#: templates/js/translated/stock.js:2302 users/models.py:204 msgid "Stocktake" msgstr "" @@ -8093,142 +8318,146 @@ msgstr "" msgid "Part List" msgstr "" -#: part/templates/part/part_base.html:25 part/templates/part/part_base.html:29 +#: part/templates/part/part_base.html:26 part/templates/part/part_base.html:30 msgid "You are subscribed to notifications for this part" msgstr "" -#: part/templates/part/part_base.html:33 +#: part/templates/part/part_base.html:34 msgid "Subscribe to notifications for this part" msgstr "" -#: part/templates/part/part_base.html:52 +#: part/templates/part/part_base.html:53 #: stock/templates/stock/item_base.html:62 -#: stock/templates/stock/location.html:71 templates/js/translated/label.js:136 +#: stock/templates/stock/location.html:72 templates/js/translated/label.js:136 msgid "Print Label" msgstr "" -#: part/templates/part/part_base.html:58 +#: part/templates/part/part_base.html:59 msgid "Show pricing information" msgstr "" -#: part/templates/part/part_base.html:63 -#: stock/templates/stock/item_base.html:110 -#: stock/templates/stock/location.html:80 +#: part/templates/part/part_base.html:64 +#: stock/templates/stock/item_base.html:107 +#: stock/templates/stock/location.html:81 msgid "Stock actions" msgstr "" -#: part/templates/part/part_base.html:70 +#: part/templates/part/part_base.html:71 msgid "Count part stock" msgstr "" -#: part/templates/part/part_base.html:76 +#: part/templates/part/part_base.html:77 msgid "Transfer part stock" msgstr "" -#: part/templates/part/part_base.html:91 templates/js/translated/part.js:2299 +#: part/templates/part/part_base.html:92 templates/js/translated/part.js:2299 msgid "Part actions" msgstr "" -#: part/templates/part/part_base.html:94 +#: part/templates/part/part_base.html:95 msgid "Duplicate part" msgstr "" -#: part/templates/part/part_base.html:97 +#: part/templates/part/part_base.html:98 msgid "Edit part" msgstr "" -#: part/templates/part/part_base.html:100 +#: part/templates/part/part_base.html:101 msgid "Delete part" msgstr "" -#: part/templates/part/part_base.html:119 +#: part/templates/part/part_base.html:120 msgid "Part is a template part (variants can be made from this part)" msgstr "" -#: part/templates/part/part_base.html:123 +#: part/templates/part/part_base.html:124 msgid "Part can be assembled from other parts" msgstr "" -#: part/templates/part/part_base.html:127 +#: part/templates/part/part_base.html:128 msgid "Part can be used in assemblies" msgstr "" -#: part/templates/part/part_base.html:131 +#: part/templates/part/part_base.html:132 msgid "Part stock is tracked by serial number" msgstr "" -#: part/templates/part/part_base.html:135 +#: part/templates/part/part_base.html:136 msgid "Part can be purchased from external suppliers" msgstr "" -#: part/templates/part/part_base.html:139 +#: part/templates/part/part_base.html:140 msgid "Part can be sold to customers" msgstr "" -#: part/templates/part/part_base.html:145 +#: part/templates/part/part_base.html:146 msgid "Part is not active" msgstr "" -#: part/templates/part/part_base.html:153 +#: part/templates/part/part_base.html:154 msgid "Part is virtual (not a physical part)" msgstr "" -#: part/templates/part/part_base.html:163 -#: part/templates/part/part_base.html:690 +#: part/templates/part/part_base.html:164 +#: part/templates/part/part_base.html:698 msgid "Show Part Details" msgstr "" #: part/templates/part/part_base.html:218 -#: stock/templates/stock/item_base.html:388 +msgid "Required for Orders" +msgstr "" + +#: part/templates/part/part_base.html:226 +#: stock/templates/stock/item_base.html:385 msgid "Allocated to Build Orders" msgstr "" -#: part/templates/part/part_base.html:227 -#: stock/templates/stock/item_base.html:381 +#: part/templates/part/part_base.html:235 +#: stock/templates/stock/item_base.html:378 msgid "Allocated to Sales Orders" msgstr "" -#: part/templates/part/part_base.html:300 +#: part/templates/part/part_base.html:308 msgid "Minimum stock level" msgstr "" -#: part/templates/part/part_base.html:331 templates/js/translated/bom.js:1071 +#: part/templates/part/part_base.html:339 templates/js/translated/bom.js:1071 #: templates/js/translated/part.js:1271 templates/js/translated/part.js:2463 #: templates/js/translated/pricing.js:391 -#: templates/js/translated/pricing.js:1054 +#: templates/js/translated/pricing.js:1052 msgid "Price Range" msgstr "" -#: part/templates/part/part_base.html:361 +#: part/templates/part/part_base.html:369 msgid "Latest Serial Number" msgstr "" -#: part/templates/part/part_base.html:365 -#: stock/templates/stock/item_base.html:322 +#: part/templates/part/part_base.html:373 +#: stock/templates/stock/item_base.html:319 msgid "Search for serial number" msgstr "" -#: part/templates/part/part_base.html:453 +#: part/templates/part/part_base.html:461 msgid "Part QR Code" msgstr "" -#: part/templates/part/part_base.html:470 +#: part/templates/part/part_base.html:478 msgid "Link Barcode to Part" msgstr "" -#: part/templates/part/part_base.html:520 +#: part/templates/part/part_base.html:528 msgid "Calculate" msgstr "" -#: part/templates/part/part_base.html:537 +#: part/templates/part/part_base.html:545 msgid "Remove associated image from this part" msgstr "" -#: part/templates/part/part_base.html:588 +#: part/templates/part/part_base.html:596 msgid "No matching images found" msgstr "" -#: part/templates/part/part_base.html:684 +#: part/templates/part/part_base.html:692 msgid "Hide Part Details" msgstr "" @@ -8282,13 +8511,13 @@ msgid "Variants" msgstr "" #: part/templates/part/part_sidebar.html:14 -#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:21 +#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:22 #: stock/templates/stock/stock_app_base.html:10 #: templates/InvenTree/search.html:153 #: templates/InvenTree/settings/sidebar.html:51 #: templates/js/translated/part.js:1249 templates/js/translated/part.js:2152 #: templates/js/translated/part.js:2411 templates/js/translated/stock.js:1066 -#: templates/js/translated/stock.js:2155 templates/navbar.html:31 +#: templates/js/translated/stock.js:2156 templates/navbar.html:31 msgid "Stock" msgstr "" @@ -8324,17 +8553,17 @@ msgstr "" #: part/templates/part/prices.html:18 #: templates/InvenTree/settings/settings_staff_js.html:80 #: templates/InvenTree/settings/user.html:24 -#: templates/js/translated/helpers.js:103 +#: templates/js/translated/helpers.js:104 #: templates/js/translated/pricing.js:628 templates/notes_buttons.html:3 #: templates/notes_buttons.html:4 msgid "Edit" msgstr "" -#: part/templates/part/prices.html:28 stock/admin.py:251 -#: stock/templates/stock/item_base.html:446 -#: templates/js/translated/company.js:1703 -#: templates/js/translated/company.js:1713 -#: templates/js/translated/stock.js:2331 +#: part/templates/part/prices.html:28 stock/admin.py:252 +#: stock/templates/stock/item_base.html:443 +#: templates/js/translated/company.js:1704 +#: templates/js/translated/company.js:1714 +#: templates/js/translated/stock.js:2332 msgid "Last Updated" msgstr "" @@ -8406,7 +8635,7 @@ msgid "Update Pricing" msgstr "" #: part/templates/part/stock_count.html:7 -#: templates/js/translated/model_renderers.js:228 +#: templates/js/translated/model_renderers.js:231 #: templates/js/translated/part.js:707 templates/js/translated/part.js:2147 #: templates/js/translated/part.js:2149 msgid "No Stock" @@ -8486,7 +8715,7 @@ msgstr "" msgid "Part Pricing" msgstr "" -#: plugin/api.py:172 +#: plugin/api.py:175 msgid "Plugin cannot be deleted as it is currently active" msgstr "" @@ -8498,78 +8727,85 @@ msgstr "" msgid "No matching action found" msgstr "" -#: plugin/base/barcodes/api.py:125 plugin/base/barcodes/api.py:371 -#: plugin/base/barcodes/api.py:546 +#: plugin/base/barcodes/api.py:203 msgid "No match found for barcode data" msgstr "" -#: plugin/base/barcodes/api.py:129 +#: plugin/base/barcodes/api.py:207 msgid "Match found for barcode data" msgstr "" -#: plugin/base/barcodes/api.py:163 plugin/base/barcodes/serializers.py:45 +#: plugin/base/barcodes/api.py:245 plugin/base/barcodes/serializers.py:72 msgid "Model is not supported" msgstr "" -#: plugin/base/barcodes/api.py:168 +#: plugin/base/barcodes/api.py:250 msgid "Model instance not found" msgstr "" -#: plugin/base/barcodes/api.py:197 -#: templates/js/translated/purchase_order.js:1468 +#: plugin/base/barcodes/api.py:279 +#: templates/js/translated/purchase_order.js:1452 msgid "Barcode matches existing item" msgstr "" -#: plugin/base/barcodes/api.py:336 +#: plugin/base/barcodes/api.py:418 msgid "No matching part data found" msgstr "" -#: plugin/base/barcodes/api.py:353 +#: plugin/base/barcodes/api.py:434 msgid "No matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:357 +#: plugin/base/barcodes/api.py:437 msgid "Multiple matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:381 +#: plugin/base/barcodes/api.py:450 plugin/base/barcodes/api.py:664 +msgid "No matching plugin found for barcode data" +msgstr "" + +#: plugin/base/barcodes/api.py:460 msgid "Matched supplier part" msgstr "" -#: plugin/base/barcodes/api.py:430 +#: plugin/base/barcodes/api.py:525 msgid "Item has already been received" msgstr "" -#: plugin/base/barcodes/api.py:467 +#: plugin/base/barcodes/api.py:563 msgid "No match for supplier barcode" msgstr "" -#: plugin/base/barcodes/api.py:510 +#: plugin/base/barcodes/api.py:612 msgid "Multiple matching line items found" msgstr "" -#: plugin/base/barcodes/api.py:513 +#: plugin/base/barcodes/api.py:615 msgid "No matching line item found" msgstr "" -#: plugin/base/barcodes/api.py:551 plugin/base/barcodes/api.py:558 +#: plugin/base/barcodes/api.py:661 +msgid "No sales order provided" +msgstr "" + +#: plugin/base/barcodes/api.py:670 msgid "Barcode does not match an existing stock item" msgstr "" -#: plugin/base/barcodes/api.py:569 +#: plugin/base/barcodes/api.py:686 msgid "Stock item does not match line item" msgstr "" -#: plugin/base/barcodes/api.py:593 templates/js/translated/build.js:2780 -#: templates/js/translated/sales_order.js:1953 +#: plugin/base/barcodes/api.py:716 templates/js/translated/build.js:2798 +#: templates/js/translated/sales_order.js:1934 msgid "Insufficient stock available" msgstr "" -#: plugin/base/barcodes/api.py:602 +#: plugin/base/barcodes/api.py:729 msgid "Stock item allocated to sales order" msgstr "" -#: plugin/base/barcodes/api.py:606 +#: plugin/base/barcodes/api.py:732 msgid "Not enough information" msgstr "" @@ -8591,75 +8827,75 @@ msgstr "" msgid "Purchase order does not match supplier" msgstr "" -#: plugin/base/barcodes/mixins.py:465 +#: plugin/base/barcodes/mixins.py:467 msgid "Failed to find pending line item for supplier part" msgstr "" -#: plugin/base/barcodes/mixins.py:496 +#: plugin/base/barcodes/mixins.py:498 msgid "Further information required to receive line item" msgstr "" -#: plugin/base/barcodes/mixins.py:504 +#: plugin/base/barcodes/mixins.py:506 msgid "Received purchase order line item" msgstr "" -#: plugin/base/barcodes/serializers.py:21 +#: plugin/base/barcodes/serializers.py:48 msgid "Scanned barcode data" msgstr "" -#: plugin/base/barcodes/serializers.py:30 +#: plugin/base/barcodes/serializers.py:57 msgid "Model name to generate barcode for" msgstr "" -#: plugin/base/barcodes/serializers.py:35 +#: plugin/base/barcodes/serializers.py:62 msgid "Primary key of model object to generate barcode for" msgstr "" -#: plugin/base/barcodes/serializers.py:105 +#: plugin/base/barcodes/serializers.py:132 msgid "Purchase Order to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:111 +#: plugin/base/barcodes/serializers.py:138 msgid "Purchase order is not pending" msgstr "" -#: plugin/base/barcodes/serializers.py:129 +#: plugin/base/barcodes/serializers.py:156 msgid "PurchaseOrder to receive items against" msgstr "" -#: plugin/base/barcodes/serializers.py:135 +#: plugin/base/barcodes/serializers.py:162 msgid "Purchase order has not been placed" msgstr "" -#: plugin/base/barcodes/serializers.py:143 +#: plugin/base/barcodes/serializers.py:170 msgid "Location to receive items into" msgstr "" -#: plugin/base/barcodes/serializers.py:149 +#: plugin/base/barcodes/serializers.py:176 msgid "Cannot select a structural location" msgstr "" -#: plugin/base/barcodes/serializers.py:163 +#: plugin/base/barcodes/serializers.py:190 msgid "Sales Order to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:169 +#: plugin/base/barcodes/serializers.py:196 msgid "Sales order is not pending" msgstr "" -#: plugin/base/barcodes/serializers.py:177 +#: plugin/base/barcodes/serializers.py:204 msgid "Sales order line item to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:184 +#: plugin/base/barcodes/serializers.py:211 msgid "Sales order shipment to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:190 +#: plugin/base/barcodes/serializers.py:217 msgid "Shipment has already been delivered" msgstr "" -#: plugin/base/barcodes/serializers.py:195 +#: plugin/base/barcodes/serializers.py:222 msgid "Quantity to allocate" msgstr "" @@ -8679,6 +8915,42 @@ msgstr "" msgid "No items provided to print" msgstr "" +#: plugin/base/ui/serializers.py:30 +msgid "Plugin Name" +msgstr "" + +#: plugin/base/ui/serializers.py:34 +msgid "Feature Type" +msgstr "" + +#: plugin/base/ui/serializers.py:39 +msgid "Feature Label" +msgstr "" + +#: plugin/base/ui/serializers.py:44 +msgid "Feature Title" +msgstr "" + +#: plugin/base/ui/serializers.py:49 +msgid "Feature Description" +msgstr "" + +#: plugin/base/ui/serializers.py:54 +msgid "Feature Icon" +msgstr "" + +#: plugin/base/ui/serializers.py:58 +msgid "Feature Options" +msgstr "" + +#: plugin/base/ui/serializers.py:61 +msgid "Feature Context" +msgstr "" + +#: plugin/base/ui/serializers.py:64 +msgid "Feature Source (javascript)" +msgstr "" + #: plugin/builtin/barcodes/inventree_barcode.py:27 msgid "InvenTree Barcodes" msgstr "" @@ -8756,7 +9028,7 @@ msgstr "" msgid "URL that is used to send messages to a slack channel" msgstr "" -#: plugin/builtin/integration/core_notifications.py:164 +#: plugin/builtin/integration/core_notifications.py:166 msgid "Open link" msgstr "" @@ -8794,11 +9066,11 @@ msgstr "" msgid "Provides support for printing using a machine" msgstr "" -#: plugin/builtin/labels/inventree_machine.py:149 +#: plugin/builtin/labels/inventree_machine.py:151 msgid "last used" msgstr "" -#: plugin/builtin/labels/inventree_machine.py:166 +#: plugin/builtin/labels/inventree_machine.py:168 msgid "Options" msgstr "" @@ -8822,7 +9094,7 @@ msgstr "" msgid "Print a border around each label" msgstr "" -#: plugin/builtin/labels/label_sheet.py:47 report/models.py:307 +#: plugin/builtin/labels/label_sheet.py:47 report/models.py:315 msgid "Landscape" msgstr "" @@ -8894,19 +9166,19 @@ msgstr "" msgid "The Supplier which acts as 'TME'" msgstr "" -#: plugin/installer.py:194 plugin/installer.py:282 +#: plugin/installer.py:199 plugin/installer.py:282 msgid "Only staff users can administer plugins" msgstr "" -#: plugin/installer.py:197 +#: plugin/installer.py:202 msgid "Plugin installation is disabled" msgstr "" -#: plugin/installer.py:248 +#: plugin/installer.py:246 msgid "Installed plugin successfully" msgstr "" -#: plugin/installer.py:254 +#: plugin/installer.py:251 #, python-brace-format msgid "Installed plugin into {path}" msgstr "" @@ -8943,10 +9215,6 @@ msgstr "" msgid "Plugin Configurations" msgstr "" -#: plugin/models.py:43 users/models.py:100 -msgid "Key" -msgstr "" - #: plugin/models.py:44 msgid "Key of plugin" msgstr "" @@ -8955,7 +9223,7 @@ msgstr "" msgid "PluginName of the plugin" msgstr "" -#: plugin/models.py:59 plugin/serializers.py:90 +#: plugin/models.py:59 plugin/serializers.py:115 msgid "Package Name" msgstr "" @@ -8984,17 +9252,17 @@ msgstr "" msgid "Package Plugin" msgstr "" -#: plugin/models.py:220 report/models.py:474 +#: plugin/models.py:259 report/models.py:482 #: templates/InvenTree/settings/plugin_settings.html:9 #: templates/js/translated/plugin.js:51 msgid "Plugin" msgstr "" -#: plugin/models.py:267 +#: plugin/models.py:306 msgid "Method" msgstr "" -#: plugin/plugin.py:270 +#: plugin/plugin.py:275 msgid "No author found" msgstr "" @@ -9053,81 +9321,157 @@ msgstr "" msgid "InvenTree Contributors" msgstr "" -#: plugin/serializers.py:81 -msgid "Source URL" +#: plugin/samples/integration/user_interface_sample.py:27 +msgid "Enable Part Panels" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:28 +msgid "Enable custom panels for Part views" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:33 +msgid "Enable Purchase Order Panels" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:34 +msgid "Enable custom panels for Purchase Order views" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:39 +msgid "Enable Broken Panels" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:40 +msgid "Enable broken panels for testing" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:45 +msgid "Enable Dynamic Panel" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:46 +msgid "Enable dynamic panels for testing" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:98 +msgid "Part Panel" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:131 +msgid "Broken Dashboard Item" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:133 +msgid "This is a broken dashboard item - it will not render!" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:139 +msgid "Sample Dashboard Item" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:141 +msgid "This is a sample dashboard item. It renders a simple string of HTML content." +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:147 +msgid "Context Dashboard Item" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:161 +msgid "Admin Dashboard Item" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:162 +msgid "This is an admin-only dashboard item." +msgstr "" + +#: plugin/serializers.py:82 +msgid "Source File" msgstr "" #: plugin/serializers.py:83 +msgid "Path to the source file for admin integration" +msgstr "" + +#: plugin/serializers.py:90 +msgid "Optional context data for the admin integration" +msgstr "" + +#: plugin/serializers.py:106 +msgid "Source URL" +msgstr "" + +#: plugin/serializers.py:108 msgid "Source for the package - this can be a custom registry or a VCS path" msgstr "" -#: plugin/serializers.py:92 +#: plugin/serializers.py:117 msgid "Name for the Plugin Package - can also contain a version indicator" msgstr "" -#: plugin/serializers.py:99 +#: plugin/serializers.py:124 #: templates/InvenTree/settings/plugin_settings.html:42 #: templates/js/translated/plugin.js:86 msgid "Version" msgstr "" -#: plugin/serializers.py:101 +#: plugin/serializers.py:126 msgid "Version specifier for the plugin. Leave blank for latest version." msgstr "" -#: plugin/serializers.py:106 +#: plugin/serializers.py:131 msgid "Confirm plugin installation" msgstr "" -#: plugin/serializers.py:108 +#: plugin/serializers.py:133 msgid "This will install this plugin now into the current instance. The instance will go into maintenance." msgstr "" -#: plugin/serializers.py:121 +#: plugin/serializers.py:146 msgid "Installation not confirmed" msgstr "" -#: plugin/serializers.py:123 +#: plugin/serializers.py:148 msgid "Either packagename of URL must be provided" msgstr "" -#: plugin/serializers.py:161 +#: plugin/serializers.py:184 msgid "Full reload" msgstr "" -#: plugin/serializers.py:162 +#: plugin/serializers.py:185 msgid "Perform a full reload of the plugin registry" msgstr "" -#: plugin/serializers.py:168 +#: plugin/serializers.py:191 msgid "Force reload" msgstr "" -#: plugin/serializers.py:170 +#: plugin/serializers.py:193 msgid "Force a reload of the plugin registry, even if it is already loaded" msgstr "" -#: plugin/serializers.py:177 +#: plugin/serializers.py:200 msgid "Collect plugins" msgstr "" -#: plugin/serializers.py:178 +#: plugin/serializers.py:201 msgid "Collect plugins and add them to the registry" msgstr "" -#: plugin/serializers.py:205 +#: plugin/serializers.py:228 msgid "Activate Plugin" msgstr "" -#: plugin/serializers.py:206 +#: plugin/serializers.py:229 msgid "Activate this plugin" msgstr "" -#: plugin/serializers.py:226 +#: plugin/serializers.py:249 msgid "Delete configuration" msgstr "" -#: plugin/serializers.py:227 +#: plugin/serializers.py:250 msgid "Delete the plugin configuration from the database" msgstr "" @@ -9135,11 +9479,11 @@ msgstr "" msgid "No valid objects provided to template" msgstr "" -#: report/api.py:103 report/models.py:438 report/serializers.py:98 -#: report/serializers.py:148 templates/js/translated/purchase_order.js:1817 +#: report/api.py:103 report/models.py:446 report/serializers.py:99 +#: report/serializers.py:149 templates/js/translated/purchase_order.js:1801 #: templates/js/translated/return_order.js:353 -#: templates/js/translated/sales_order.js:887 -#: templates/js/translated/sales_order.js:1047 +#: templates/js/translated/sales_order.js:846 +#: templates/js/translated/sales_order.js:1020 msgid "Items" msgstr "" @@ -9167,7 +9511,11 @@ msgstr "" msgid "Error printing label" msgstr "" -#: report/api.py:375 report/api.py:411 +#: report/api.py:358 +msgid "Report saved at time of printing" +msgstr "" + +#: report/api.py:384 report/api.py:420 #, python-brace-format msgid "Template file '{template}' is missing or does not exist" msgstr "" @@ -9204,135 +9552,143 @@ msgstr "" msgid "Revision number (auto-increments)" msgstr "" -#: report/models.py:202 +#: report/models.py:168 +msgid "Attach to Model on Print" +msgstr "" + +#: report/models.py:170 +msgid "Save report output as an attachment against linked model instance when printing" +msgstr "" + +#: report/models.py:210 msgid "Filename Pattern" msgstr "" -#: report/models.py:203 +#: report/models.py:211 msgid "Pattern for generating filenames" msgstr "" -#: report/models.py:208 +#: report/models.py:216 msgid "Template is enabled" msgstr "" -#: report/models.py:214 +#: report/models.py:222 msgid "Target model type for template" msgstr "" -#: report/models.py:234 +#: report/models.py:242 msgid "Filters" msgstr "" -#: report/models.py:235 +#: report/models.py:243 msgid "Template query filters (comma-separated list of key=value pairs)" msgstr "" -#: report/models.py:294 report/models.py:361 +#: report/models.py:302 report/models.py:369 msgid "Template file" msgstr "" -#: report/models.py:302 +#: report/models.py:310 msgid "Page size for PDF reports" msgstr "" -#: report/models.py:308 +#: report/models.py:316 msgid "Render report in landscape orientation" msgstr "" -#: report/models.py:367 +#: report/models.py:375 msgid "Width [mm]" msgstr "" -#: report/models.py:368 +#: report/models.py:376 msgid "Label width, specified in mm" msgstr "" -#: report/models.py:374 +#: report/models.py:382 msgid "Height [mm]" msgstr "" -#: report/models.py:375 +#: report/models.py:383 msgid "Label height, specified in mm" msgstr "" -#: report/models.py:438 +#: report/models.py:446 msgid "Number of items to process" msgstr "" -#: report/models.py:444 +#: report/models.py:452 msgid "Report generation is complete" msgstr "" -#: report/models.py:448 templates/js/translated/build.js:2349 +#: report/models.py:456 templates/js/translated/build.js:2352 msgid "Progress" msgstr "" -#: report/models.py:448 +#: report/models.py:456 msgid "Report generation progress" msgstr "" -#: report/models.py:456 +#: report/models.py:464 msgid "Report Template" msgstr "" -#: report/models.py:463 report/models.py:486 +#: report/models.py:471 report/models.py:494 msgid "Output File" msgstr "" -#: report/models.py:464 report/models.py:487 +#: report/models.py:472 report/models.py:495 msgid "Generated output file" msgstr "" -#: report/models.py:475 +#: report/models.py:483 msgid "Label output plugin" msgstr "" -#: report/models.py:479 +#: report/models.py:487 msgid "Label Template" msgstr "" -#: report/models.py:502 +#: report/models.py:510 msgid "Snippet" msgstr "" -#: report/models.py:503 +#: report/models.py:511 msgid "Report snippet file" msgstr "" -#: report/models.py:510 +#: report/models.py:518 msgid "Snippet file description" msgstr "" -#: report/models.py:528 +#: report/models.py:536 msgid "Asset" msgstr "" -#: report/models.py:529 +#: report/models.py:537 msgid "Report asset file" msgstr "" -#: report/models.py:536 +#: report/models.py:544 msgid "Asset file description" msgstr "" -#: report/serializers.py:91 +#: report/serializers.py:92 msgid "Select report template" msgstr "" -#: report/serializers.py:99 report/serializers.py:149 +#: report/serializers.py:100 report/serializers.py:150 msgid "List of item primary keys to include in the report" msgstr "" -#: report/serializers.py:132 +#: report/serializers.py:133 msgid "Select label template" msgstr "" -#: report/serializers.py:140 +#: report/serializers.py:141 msgid "Printing Plugin" msgstr "" -#: report/serializers.py:141 +#: report/serializers.py:142 msgid "Select plugin to use for label printing" msgstr "" @@ -9365,9 +9721,9 @@ msgstr "" #: report/templates/report/inventree_sales_order_report.html:30 #: templates/js/translated/order.js:341 templates/js/translated/pricing.js:527 #: templates/js/translated/pricing.js:596 -#: templates/js/translated/pricing.js:834 -#: templates/js/translated/purchase_order.js:2185 -#: templates/js/translated/sales_order.js:1873 +#: templates/js/translated/pricing.js:832 +#: templates/js/translated/purchase_order.js:2169 +#: templates/js/translated/sales_order.js:1854 msgid "Unit Price" msgstr "" @@ -9379,13 +9735,18 @@ msgstr "" #: report/templates/report/inventree_purchase_order_report.html:72 #: report/templates/report/inventree_sales_order_report.html:72 -#: templates/js/translated/purchase_order.js:2087 -#: templates/js/translated/sales_order.js:1842 +#: templates/js/translated/purchase_order.js:2071 +#: templates/js/translated/sales_order.js:1823 #: templates/test_statistics_table.html:8 #: templates/test_statistics_table.html:19 msgid "Total" msgstr "" +#: report/templates/report/inventree_sales_order_shipment_report.html:23 +#: stock/templates/stock/stock_sidebar.html:8 +msgid "Allocations" +msgstr "" + #: report/templates/report/inventree_stock_location_report.html:97 msgid "Stock location items" msgstr "" @@ -9403,15 +9764,13 @@ msgstr "" msgid "Test" msgstr "" -#: report/templates/report/inventree_test_report.html:103 stock/models.py:2544 -msgid "Result" -msgstr "" - #: report/templates/report/inventree_test_report.html:129 +#: templates/js/translated/stock.js:1448 msgid "Pass" msgstr "" #: report/templates/report/inventree_test_report.html:131 +#: templates/js/translated/stock.js:1450 msgid "Fail" msgstr "" @@ -9420,17 +9779,18 @@ msgid "No result (required)" msgstr "" #: report/templates/report/inventree_test_report.html:140 +#: templates/js/translated/stock.js:1455 msgid "No result" msgstr "" #: report/templates/report/inventree_test_report.html:153 -#: stock/serializers.py:599 stock/templates/stock/stock_sidebar.html:16 +#: stock/serializers.py:626 stock/templates/stock/stock_sidebar.html:16 msgid "Installed Items" msgstr "" -#: report/templates/report/inventree_test_report.html:167 stock/admin.py:161 +#: report/templates/report/inventree_test_report.html:167 stock/admin.py:162 #: templates/js/translated/stock.js:706 templates/js/translated/stock.js:877 -#: templates/js/translated/stock.js:3194 +#: templates/js/translated/stock.js:3195 msgid "Serial" msgstr "" @@ -9450,67 +9810,67 @@ msgstr "" msgid "company_image tag requires a Company instance" msgstr "" -#: stock/admin.py:51 stock/admin.py:171 +#: stock/admin.py:51 stock/admin.py:172 msgid "Location ID" msgstr "" -#: stock/admin.py:63 stock/templates/stock/location.html:128 -#: stock/templates/stock/location.html:134 +#: stock/admin.py:63 stock/templates/stock/location.html:129 +#: stock/templates/stock/location.html:135 msgid "Location Path" msgstr "" -#: stock/admin.py:148 +#: stock/admin.py:149 msgid "Stock Item ID" msgstr "" -#: stock/admin.py:167 +#: stock/admin.py:168 msgid "Status Code" msgstr "" -#: stock/admin.py:179 +#: stock/admin.py:180 msgid "Supplier Part ID" msgstr "" -#: stock/admin.py:184 +#: stock/admin.py:185 msgid "Supplier Part SKU" msgstr "" -#: stock/admin.py:189 +#: stock/admin.py:190 msgid "Supplier ID" msgstr "" -#: stock/admin.py:200 +#: stock/admin.py:201 msgid "Customer ID" msgstr "" -#: stock/admin.py:205 stock/models.py:825 -#: stock/templates/stock/item_base.html:354 +#: stock/admin.py:206 stock/models.py:902 +#: stock/templates/stock/item_base.html:351 msgid "Installed In" msgstr "" -#: stock/admin.py:210 +#: stock/admin.py:211 msgid "Build ID" msgstr "" -#: stock/admin.py:220 +#: stock/admin.py:221 msgid "Sales Order ID" msgstr "" -#: stock/admin.py:225 +#: stock/admin.py:226 msgid "Purchase Order ID" msgstr "" -#: stock/admin.py:240 +#: stock/admin.py:241 msgid "Review Needed" msgstr "" -#: stock/admin.py:245 +#: stock/admin.py:246 msgid "Delete on Deplete" msgstr "" -#: stock/admin.py:260 stock/models.py:919 -#: stock/templates/stock/item_base.html:433 -#: templates/js/translated/stock.js:2315 users/models.py:124 +#: stock/admin.py:261 stock/models.py:996 +#: stock/templates/stock/item_base.html:430 +#: templates/js/translated/stock.js:2316 users/models.py:124 msgid "Expiry Date" msgstr "" @@ -9526,11 +9886,11 @@ msgstr "" msgid "Include sub-locations in filtered results" msgstr "" -#: stock/api.py:367 stock/serializers.py:1186 +#: stock/api.py:366 stock/serializers.py:1217 msgid "Parent Location" msgstr "" -#: stock/api.py:368 +#: stock/api.py:367 msgid "Filter by parent location" msgstr "" @@ -9550,8 +9910,8 @@ msgstr "" msgid "Expiry date after" msgstr "" -#: stock/api.py:840 stock/serializers.py:604 -#: stock/templates/stock/item_base.html:439 +#: stock/api.py:840 stock/serializers.py:631 +#: stock/templates/stock/item_base.html:436 #: templates/js/translated/table_filters.js:448 msgid "Stale" msgstr "" @@ -9560,594 +9920,598 @@ msgstr "" msgid "Quantity is required" msgstr "" -#: stock/api.py:933 +#: stock/api.py:932 msgid "Valid part must be supplied" msgstr "" -#: stock/api.py:964 +#: stock/api.py:959 msgid "The given supplier part does not exist" msgstr "" -#: stock/api.py:974 +#: stock/api.py:969 msgid "The supplier part has a pack size defined, but flag use_pack_size not set" msgstr "" -#: stock/api.py:1005 +#: stock/api.py:996 msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "" -#: stock/models.py:64 +#: stock/models.py:70 msgid "Stock Location type" msgstr "" -#: stock/models.py:65 +#: stock/models.py:71 msgid "Stock Location types" msgstr "" -#: stock/models.py:91 +#: stock/models.py:97 msgid "Default icon for all locations that have no icon set (optional)" msgstr "" -#: stock/models.py:131 stock/models.py:807 -#: stock/templates/stock/location.html:17 +#: stock/models.py:137 stock/models.py:884 +#: stock/templates/stock/location.html:18 #: stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "" -#: stock/models.py:132 stock/templates/stock/location.html:183 +#: stock/models.py:138 stock/templates/stock/location.html:184 #: templates/InvenTree/search.html:166 templates/js/translated/search.js:178 #: users/models.py:205 msgid "Stock Locations" msgstr "" -#: stock/models.py:180 stock/models.py:968 -#: stock/templates/stock/item_base.html:247 +#: stock/models.py:186 stock/models.py:1045 +#: stock/templates/stock/item_base.html:244 msgid "Owner" msgstr "" -#: stock/models.py:181 stock/models.py:969 +#: stock/models.py:187 stock/models.py:1046 msgid "Select Owner" msgstr "" -#: stock/models.py:189 +#: stock/models.py:195 msgid "Stock items may not be directly located into a structural stock locations, but may be located to child locations." msgstr "" -#: stock/models.py:196 templates/js/translated/stock.js:2865 +#: stock/models.py:202 templates/js/translated/stock.js:2866 #: templates/js/translated/table_filters.js:250 msgid "External" msgstr "" -#: stock/models.py:197 +#: stock/models.py:203 msgid "This is an external stock location" msgstr "" -#: stock/models.py:203 templates/js/translated/stock.js:2874 +#: stock/models.py:209 templates/js/translated/stock.js:2875 #: templates/js/translated/table_filters.js:253 msgid "Location type" msgstr "" -#: stock/models.py:207 +#: stock/models.py:213 msgid "Stock location type of this location" msgstr "" -#: stock/models.py:279 +#: stock/models.py:285 msgid "You cannot make this stock location structural because some stock items are already located into it!" msgstr "" -#: stock/models.py:664 +#: stock/models.py:492 +msgid "Part must be specified" +msgstr "" + +#: stock/models.py:741 msgid "Stock items cannot be located into structural stock locations!" msgstr "" -#: stock/models.py:691 stock/serializers.py:480 +#: stock/models.py:768 stock/serializers.py:492 msgid "Stock item cannot be created for virtual parts" msgstr "" -#: stock/models.py:708 +#: stock/models.py:785 #, python-brace-format msgid "Part type ('{self.supplier_part.part}') must be {self.part}" msgstr "" -#: stock/models.py:718 stock/models.py:731 +#: stock/models.py:795 stock/models.py:808 msgid "Quantity must be 1 for item with a serial number" msgstr "" -#: stock/models.py:721 +#: stock/models.py:798 msgid "Serial number cannot be set if quantity greater than 1" msgstr "" -#: stock/models.py:743 +#: stock/models.py:820 msgid "Item cannot belong to itself" msgstr "" -#: stock/models.py:748 +#: stock/models.py:825 msgid "Item must have a build reference if is_building=True" msgstr "" -#: stock/models.py:761 +#: stock/models.py:838 msgid "Build reference does not point to the same part object" msgstr "" -#: stock/models.py:777 +#: stock/models.py:854 msgid "Parent Stock Item" msgstr "" -#: stock/models.py:789 +#: stock/models.py:866 msgid "Base part" msgstr "" -#: stock/models.py:799 +#: stock/models.py:876 msgid "Select a matching supplier part for this stock item" msgstr "" -#: stock/models.py:811 +#: stock/models.py:888 msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:819 stock/serializers.py:1580 +#: stock/models.py:896 stock/serializers.py:1611 msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:830 +#: stock/models.py:907 msgid "Is this item installed in another item?" msgstr "" -#: stock/models.py:849 +#: stock/models.py:926 msgid "Serial number for this item" msgstr "" -#: stock/models.py:863 stock/serializers.py:1563 +#: stock/models.py:940 stock/serializers.py:1594 msgid "Batch code for this stock item" msgstr "" -#: stock/models.py:868 +#: stock/models.py:945 msgid "Stock Quantity" msgstr "" -#: stock/models.py:878 +#: stock/models.py:955 msgid "Source Build" msgstr "" -#: stock/models.py:881 +#: stock/models.py:958 msgid "Build for this stock item" msgstr "" -#: stock/models.py:888 stock/templates/stock/item_base.html:363 +#: stock/models.py:965 stock/templates/stock/item_base.html:360 msgid "Consumed By" msgstr "" -#: stock/models.py:891 +#: stock/models.py:968 msgid "Build order which consumed this stock item" msgstr "" -#: stock/models.py:900 +#: stock/models.py:977 msgid "Source Purchase Order" msgstr "" -#: stock/models.py:904 +#: stock/models.py:981 msgid "Purchase order for this stock item" msgstr "" -#: stock/models.py:910 +#: stock/models.py:987 msgid "Destination Sales Order" msgstr "" -#: stock/models.py:921 +#: stock/models.py:998 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "" -#: stock/models.py:939 +#: stock/models.py:1016 msgid "Delete on deplete" msgstr "" -#: stock/models.py:940 +#: stock/models.py:1017 msgid "Delete this Stock Item when stock is depleted" msgstr "" -#: stock/models.py:960 +#: stock/models.py:1037 msgid "Single unit purchase price at time of purchase" msgstr "" -#: stock/models.py:991 +#: stock/models.py:1068 msgid "Converted to part" msgstr "" -#: stock/models.py:1511 +#: stock/models.py:1600 msgid "Part is not set as trackable" msgstr "" -#: stock/models.py:1517 +#: stock/models.py:1606 msgid "Quantity must be integer" msgstr "" -#: stock/models.py:1525 +#: stock/models.py:1614 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({self.quantity})" msgstr "" -#: stock/models.py:1531 -msgid "Serial numbers must be a list of integers" +#: stock/models.py:1620 +msgid "Serial numbers must be provided as a list" msgstr "" -#: stock/models.py:1536 +#: stock/models.py:1625 msgid "Quantity does not match serial numbers" msgstr "" -#: stock/models.py:1544 stock/serializers.py:726 -msgid "Serial numbers already exist" -msgstr "" - -#: stock/models.py:1641 +#: stock/models.py:1747 stock/models.py:2563 msgid "Test template does not exist" msgstr "" -#: stock/models.py:1659 +#: stock/models.py:1765 msgid "Stock item has been assigned to a sales order" msgstr "" -#: stock/models.py:1663 +#: stock/models.py:1769 msgid "Stock item is installed in another item" msgstr "" -#: stock/models.py:1666 +#: stock/models.py:1772 msgid "Stock item contains other items" msgstr "" -#: stock/models.py:1669 +#: stock/models.py:1775 msgid "Stock item has been assigned to a customer" msgstr "" -#: stock/models.py:1672 +#: stock/models.py:1778 msgid "Stock item is currently in production" msgstr "" -#: stock/models.py:1675 +#: stock/models.py:1781 msgid "Serialized stock cannot be merged" msgstr "" -#: stock/models.py:1682 stock/serializers.py:1469 +#: stock/models.py:1788 stock/serializers.py:1500 msgid "Duplicate stock items" msgstr "" -#: stock/models.py:1686 +#: stock/models.py:1792 msgid "Stock items must refer to the same part" msgstr "" -#: stock/models.py:1694 +#: stock/models.py:1800 msgid "Stock items must refer to the same supplier part" msgstr "" -#: stock/models.py:1699 +#: stock/models.py:1805 msgid "Stock status codes must match" msgstr "" -#: stock/models.py:1960 +#: stock/models.py:2066 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:2343 +#: stock/models.py:2462 msgid "Stock Item Tracking" msgstr "" -#: stock/models.py:2376 +#: stock/models.py:2495 msgid "Entry notes" msgstr "" -#: stock/models.py:2416 +#: stock/models.py:2535 msgid "Stock Item Test Result" msgstr "" -#: stock/models.py:2449 +#: stock/models.py:2566 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:2454 +#: stock/models.py:2570 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:2459 +#: stock/models.py:2575 msgid "Invalid value for this test" msgstr "" -#: stock/models.py:2544 +#: stock/models.py:2660 msgid "Test result" msgstr "" -#: stock/models.py:2551 +#: stock/models.py:2667 msgid "Test output value" msgstr "" -#: stock/models.py:2559 +#: stock/models.py:2675 stock/serializers.py:245 msgid "Test result attachment" msgstr "" -#: stock/models.py:2563 +#: stock/models.py:2679 msgid "Test notes" msgstr "" -#: stock/models.py:2571 templates/js/translated/stock.js:1633 +#: stock/models.py:2687 templates/js/translated/stock.js:1633 msgid "Test station" msgstr "" -#: stock/models.py:2572 +#: stock/models.py:2688 msgid "The identifier of the test station where the test was performed" msgstr "" -#: stock/models.py:2578 +#: stock/models.py:2694 msgid "Started" msgstr "" -#: stock/models.py:2579 +#: stock/models.py:2695 msgid "The timestamp of the test start" msgstr "" -#: stock/models.py:2585 +#: stock/models.py:2701 msgid "Finished" msgstr "" -#: stock/models.py:2586 +#: stock/models.py:2702 msgid "The timestamp of the test finish" msgstr "" -#: stock/serializers.py:76 +#: stock/serializers.py:77 msgid "Generated batch code" msgstr "" -#: stock/serializers.py:85 +#: stock/serializers.py:86 msgid "Select build order" msgstr "" -#: stock/serializers.py:94 +#: stock/serializers.py:95 msgid "Select stock item to generate batch code for" msgstr "" -#: stock/serializers.py:103 +#: stock/serializers.py:104 msgid "Select location to generate batch code for" msgstr "" -#: stock/serializers.py:112 +#: stock/serializers.py:113 msgid "Select part to generate batch code for" msgstr "" -#: stock/serializers.py:121 +#: stock/serializers.py:122 msgid "Select purchase order" msgstr "" -#: stock/serializers.py:128 +#: stock/serializers.py:129 msgid "Enter quantity for batch code" msgstr "" -#: stock/serializers.py:151 +#: stock/serializers.py:152 msgid "Generated serial number" msgstr "" -#: stock/serializers.py:160 +#: stock/serializers.py:161 msgid "Select part to generate serial number for" msgstr "" -#: stock/serializers.py:168 +#: stock/serializers.py:169 msgid "Quantity of serial numbers to generate" msgstr "" -#: stock/serializers.py:233 +#: stock/serializers.py:234 msgid "Test template for this result" msgstr "" -#: stock/serializers.py:254 +#: stock/serializers.py:258 msgid "Template ID or test name must be provided" msgstr "" -#: stock/serializers.py:286 +#: stock/serializers.py:290 msgid "The test finished time cannot be earlier than the test started time" msgstr "" -#: stock/serializers.py:323 +#: stock/serializers.py:327 msgid "Serial number is too large" msgstr "" -#: stock/serializers.py:452 stock/templates/stock/item_base.html:193 +#: stock/serializers.py:462 stock/templates/stock/item_base.html:190 msgid "Parent Item" msgstr "" -#: stock/serializers.py:453 +#: stock/serializers.py:463 msgid "Parent stock item" msgstr "" -#: stock/serializers.py:472 +#: stock/serializers.py:484 msgid "Use pack size when adding: the quantity defined is the number of packs" msgstr "" -#: stock/serializers.py:596 stock/templates/stock/item_base.html:437 +#: stock/serializers.py:623 stock/templates/stock/item_base.html:434 #: templates/js/translated/table_filters.js:442 users/models.py:174 msgid "Expired" msgstr "" -#: stock/serializers.py:602 stock/templates/stock/stock_sidebar.html:20 +#: stock/serializers.py:629 stock/templates/stock/stock_sidebar.html:20 msgid "Child Items" msgstr "" -#: stock/serializers.py:606 +#: stock/serializers.py:633 msgid "Tracking Items" msgstr "" -#: stock/serializers.py:612 +#: stock/serializers.py:639 msgid "Purchase price of this stock item, per unit or pack" msgstr "" -#: stock/serializers.py:631 +#: stock/serializers.py:658 msgid "Minimum Pricing" msgstr "" -#: stock/serializers.py:637 +#: stock/serializers.py:664 msgid "Maximum Pricing" msgstr "" -#: stock/serializers.py:661 +#: stock/serializers.py:688 msgid "Enter number of stock items to serialize" msgstr "" -#: stock/serializers.py:674 +#: stock/serializers.py:701 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({q})" msgstr "" -#: stock/serializers.py:681 +#: stock/serializers.py:708 msgid "Enter serial numbers for new items" msgstr "" -#: stock/serializers.py:692 stock/serializers.py:1426 stock/serializers.py:1682 +#: stock/serializers.py:719 stock/serializers.py:1457 stock/serializers.py:1713 msgid "Destination stock location" msgstr "" -#: stock/serializers.py:699 +#: stock/serializers.py:726 msgid "Optional note field" msgstr "" -#: stock/serializers.py:709 +#: stock/serializers.py:736 msgid "Serial numbers cannot be assigned to this part" msgstr "" -#: stock/serializers.py:764 +#: stock/serializers.py:756 +msgid "Serial numbers already exist" +msgstr "" + +#: stock/serializers.py:795 msgid "Select stock item to install" msgstr "" -#: stock/serializers.py:771 +#: stock/serializers.py:802 msgid "Quantity to Install" msgstr "" -#: stock/serializers.py:772 +#: stock/serializers.py:803 msgid "Enter the quantity of items to install" msgstr "" -#: stock/serializers.py:777 stock/serializers.py:857 stock/serializers.py:983 -#: stock/serializers.py:1033 +#: stock/serializers.py:808 stock/serializers.py:888 stock/serializers.py:1014 +#: stock/serializers.py:1064 msgid "Add transaction note (optional)" msgstr "" -#: stock/serializers.py:785 +#: stock/serializers.py:816 msgid "Quantity to install must be at least 1" msgstr "" -#: stock/serializers.py:793 +#: stock/serializers.py:824 msgid "Stock item is unavailable" msgstr "" -#: stock/serializers.py:804 +#: stock/serializers.py:835 msgid "Selected part is not in the Bill of Materials" msgstr "" -#: stock/serializers.py:817 +#: stock/serializers.py:848 msgid "Quantity to install must not exceed available quantity" msgstr "" -#: stock/serializers.py:852 +#: stock/serializers.py:883 msgid "Destination location for uninstalled item" msgstr "" -#: stock/serializers.py:903 +#: stock/serializers.py:934 msgid "Unsupported statistic type: " msgstr "" -#: stock/serializers.py:917 +#: stock/serializers.py:948 msgid "Select part to convert stock item into" msgstr "" -#: stock/serializers.py:930 +#: stock/serializers.py:961 msgid "Selected part is not a valid option for conversion" msgstr "" -#: stock/serializers.py:947 +#: stock/serializers.py:978 msgid "Cannot convert stock item with assigned SupplierPart" msgstr "" -#: stock/serializers.py:978 +#: stock/serializers.py:1009 msgid "Destination location for returned item" msgstr "" -#: stock/serializers.py:1015 +#: stock/serializers.py:1046 msgid "Select stock items to change status" msgstr "" -#: stock/serializers.py:1021 +#: stock/serializers.py:1052 msgid "No stock items selected" msgstr "" -#: stock/serializers.py:1117 stock/serializers.py:1194 -#: stock/templates/stock/location.html:162 -#: stock/templates/stock/location.html:219 +#: stock/serializers.py:1148 stock/serializers.py:1225 +#: stock/templates/stock/location.html:163 +#: stock/templates/stock/location.html:220 #: stock/templates/stock/location_sidebar.html:5 msgid "Sublocations" msgstr "" -#: stock/serializers.py:1187 templates/js/translated/stock.js:160 +#: stock/serializers.py:1218 templates/js/translated/stock.js:160 msgid "Parent stock location" msgstr "" -#: stock/serializers.py:1298 +#: stock/serializers.py:1329 msgid "Part must be salable" msgstr "" -#: stock/serializers.py:1302 +#: stock/serializers.py:1333 msgid "Item is allocated to a sales order" msgstr "" -#: stock/serializers.py:1306 +#: stock/serializers.py:1337 msgid "Item is allocated to a build order" msgstr "" -#: stock/serializers.py:1330 +#: stock/serializers.py:1361 msgid "Customer to assign stock items" msgstr "" -#: stock/serializers.py:1336 +#: stock/serializers.py:1367 msgid "Selected company is not a customer" msgstr "" -#: stock/serializers.py:1344 +#: stock/serializers.py:1375 msgid "Stock assignment notes" msgstr "" -#: stock/serializers.py:1354 stock/serializers.py:1608 +#: stock/serializers.py:1385 stock/serializers.py:1639 msgid "A list of stock items must be provided" msgstr "" -#: stock/serializers.py:1433 +#: stock/serializers.py:1464 msgid "Stock merging notes" msgstr "" -#: stock/serializers.py:1438 +#: stock/serializers.py:1469 msgid "Allow mismatched suppliers" msgstr "" -#: stock/serializers.py:1439 +#: stock/serializers.py:1470 msgid "Allow stock items with different supplier parts to be merged" msgstr "" -#: stock/serializers.py:1444 +#: stock/serializers.py:1475 msgid "Allow mismatched status" msgstr "" -#: stock/serializers.py:1445 +#: stock/serializers.py:1476 msgid "Allow stock items with different status codes to be merged" msgstr "" -#: stock/serializers.py:1455 +#: stock/serializers.py:1486 msgid "At least two stock items must be provided" msgstr "" -#: stock/serializers.py:1522 +#: stock/serializers.py:1553 msgid "No Change" msgstr "" -#: stock/serializers.py:1551 +#: stock/serializers.py:1582 msgid "StockItem primary key value" msgstr "" -#: stock/serializers.py:1570 +#: stock/serializers.py:1601 msgid "Stock item status code" msgstr "" -#: stock/serializers.py:1598 +#: stock/serializers.py:1629 msgid "Stock transaction notes" msgstr "" @@ -10175,107 +10539,107 @@ msgstr "Odbijeno" msgid "Quarantined" msgstr "U karantinu" -#: stock/status_codes.py:40 +#: stock/status_codes.py:44 msgid "Legacy stock tracking entry" msgstr "Nasleđeni unos za praćenje zaliha" -#: stock/status_codes.py:42 templates/js/translated/stock.js:550 +#: stock/status_codes.py:46 templates/js/translated/stock.js:550 msgid "Stock item created" msgstr "Stavka na zalihi stvorena" -#: stock/status_codes.py:45 +#: stock/status_codes.py:49 msgid "Edited stock item" msgstr "Izmenjena stavka u zalihama" -#: stock/status_codes.py:46 +#: stock/status_codes.py:50 msgid "Assigned serial number" msgstr "Dodeljen serijski broj" -#: stock/status_codes.py:49 +#: stock/status_codes.py:53 msgid "Stock counted" msgstr "Zalihe prebrojane" -#: stock/status_codes.py:50 +#: stock/status_codes.py:54 msgid "Stock manually added" msgstr "Zalihe dodane ručno" -#: stock/status_codes.py:51 +#: stock/status_codes.py:55 msgid "Stock manually removed" msgstr "Zaliha ručno uklonjena" -#: stock/status_codes.py:54 +#: stock/status_codes.py:58 msgid "Location changed" msgstr "Lokacija promenjena" -#: stock/status_codes.py:55 +#: stock/status_codes.py:59 msgid "Stock updated" msgstr "Zaliha obnovljena" -#: stock/status_codes.py:58 +#: stock/status_codes.py:62 msgid "Installed into assembly" msgstr "Instalisan u sklopu" -#: stock/status_codes.py:59 +#: stock/status_codes.py:63 msgid "Removed from assembly" msgstr "Skinuto sa sklopa" -#: stock/status_codes.py:61 +#: stock/status_codes.py:65 msgid "Installed component item" msgstr "Instalirana stavka komponente" -#: stock/status_codes.py:62 +#: stock/status_codes.py:66 msgid "Removed component item" msgstr "Uklonjena stavka komponente" -#: stock/status_codes.py:65 +#: stock/status_codes.py:69 msgid "Split from parent item" msgstr "Odvoj od nadređene stavke" -#: stock/status_codes.py:66 +#: stock/status_codes.py:70 msgid "Split child item" msgstr "Podeli podređenu stavku" -#: stock/status_codes.py:69 templates/js/translated/stock.js:1943 +#: stock/status_codes.py:73 templates/js/translated/stock.js:1944 msgid "Merged stock items" msgstr "Spojene stavke zaliha" -#: stock/status_codes.py:72 +#: stock/status_codes.py:76 msgid "Converted to variant" msgstr "Pretvoreno u varijaciju" -#: stock/status_codes.py:75 +#: stock/status_codes.py:79 msgid "Build order output created" msgstr "" -#: stock/status_codes.py:76 +#: stock/status_codes.py:80 msgid "Build order output completed" msgstr "" -#: stock/status_codes.py:77 +#: stock/status_codes.py:81 msgid "Build order output rejected" msgstr "" -#: stock/status_codes.py:78 templates/js/translated/stock.js:1849 +#: stock/status_codes.py:82 templates/js/translated/stock.js:1849 msgid "Consumed by build order" msgstr "" -#: stock/status_codes.py:81 +#: stock/status_codes.py:85 msgid "Shipped against Sales Order" msgstr "" -#: stock/status_codes.py:84 +#: stock/status_codes.py:88 msgid "Received against Purchase Order" msgstr "" -#: stock/status_codes.py:87 +#: stock/status_codes.py:91 msgid "Returned against Return Order" msgstr "" -#: stock/status_codes.py:90 templates/js/translated/table_filters.js:382 +#: stock/status_codes.py:94 templates/js/translated/table_filters.js:382 msgid "Sent to customer" msgstr "" -#: stock/status_codes.py:91 +#: stock/status_codes.py:95 msgid "Returned from customer" msgstr "" @@ -10296,7 +10660,7 @@ msgstr "" msgid "Test Data" msgstr "" -#: stock/templates/stock/item.html:85 stock/templates/stock/item_base.html:65 +#: stock/templates/stock/item.html:85 msgid "Test Report" msgstr "" @@ -10316,7 +10680,7 @@ msgstr "" msgid "Installed Stock Items" msgstr "" -#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3354 +#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3355 msgid "Install Stock Item" msgstr "" @@ -10328,208 +10692,212 @@ msgstr "" msgid "Add Test Result" msgstr "" -#: stock/templates/stock/item_base.html:33 +#: stock/templates/stock/item_base.html:34 msgid "Locate stock item" msgstr "" -#: stock/templates/stock/item_base.html:51 +#: stock/templates/stock/item_base.html:52 msgid "Scan to Location" msgstr "" #: stock/templates/stock/item_base.html:59 -#: stock/templates/stock/location.html:67 +#: stock/templates/stock/location.html:68 #: templates/js/translated/filters.js:434 msgid "Printing actions" msgstr "" -#: stock/templates/stock/item_base.html:75 +#: stock/templates/stock/item_base.html:64 templates/js/translated/report.js:49 +msgid "Print Report" +msgstr "" + +#: stock/templates/stock/item_base.html:72 msgid "Stock adjustment actions" msgstr "" -#: stock/templates/stock/item_base.html:79 -#: stock/templates/stock/location.html:87 templates/js/translated/stock.js:1909 +#: stock/templates/stock/item_base.html:76 +#: stock/templates/stock/location.html:88 templates/js/translated/stock.js:1909 msgid "Count stock" msgstr "" -#: stock/templates/stock/item_base.html:81 +#: stock/templates/stock/item_base.html:78 #: templates/js/translated/stock.js:1891 msgid "Add stock" msgstr "" -#: stock/templates/stock/item_base.html:82 +#: stock/templates/stock/item_base.html:79 #: templates/js/translated/stock.js:1900 msgid "Remove stock" msgstr "" -#: stock/templates/stock/item_base.html:85 +#: stock/templates/stock/item_base.html:82 msgid "Serialize stock" msgstr "" -#: stock/templates/stock/item_base.html:88 -#: stock/templates/stock/location.html:93 templates/js/translated/stock.js:1918 +#: stock/templates/stock/item_base.html:85 +#: stock/templates/stock/location.html:94 templates/js/translated/stock.js:1918 msgid "Transfer stock" msgstr "" -#: stock/templates/stock/item_base.html:91 -#: templates/js/translated/stock.js:1972 +#: stock/templates/stock/item_base.html:88 +#: templates/js/translated/stock.js:1973 msgid "Assign to customer" msgstr "" -#: stock/templates/stock/item_base.html:94 +#: stock/templates/stock/item_base.html:91 msgid "Return to stock" msgstr "" -#: stock/templates/stock/item_base.html:97 +#: stock/templates/stock/item_base.html:94 msgid "Uninstall stock item" msgstr "" -#: stock/templates/stock/item_base.html:97 +#: stock/templates/stock/item_base.html:94 msgid "Uninstall" msgstr "" -#: stock/templates/stock/item_base.html:101 +#: stock/templates/stock/item_base.html:98 msgid "Install stock item" msgstr "" -#: stock/templates/stock/item_base.html:101 +#: stock/templates/stock/item_base.html:98 msgid "Install" msgstr "" -#: stock/templates/stock/item_base.html:115 +#: stock/templates/stock/item_base.html:112 msgid "Convert to variant" msgstr "" -#: stock/templates/stock/item_base.html:118 +#: stock/templates/stock/item_base.html:115 msgid "Duplicate stock item" msgstr "" -#: stock/templates/stock/item_base.html:120 +#: stock/templates/stock/item_base.html:117 msgid "Edit stock item" msgstr "" -#: stock/templates/stock/item_base.html:123 +#: stock/templates/stock/item_base.html:120 msgid "Delete stock item" msgstr "" -#: stock/templates/stock/item_base.html:169 templates/InvenTree/search.html:139 -#: templates/js/translated/build.js:2295 templates/navbar.html:38 +#: stock/templates/stock/item_base.html:166 templates/InvenTree/search.html:139 +#: templates/js/translated/build.js:2298 templates/navbar.html:38 msgid "Build" msgstr "" -#: stock/templates/stock/item_base.html:211 +#: stock/templates/stock/item_base.html:208 msgid "No manufacturer set" msgstr "" -#: stock/templates/stock/item_base.html:251 +#: stock/templates/stock/item_base.html:248 msgid "You are not in the list of owners of this item. This stock item cannot be edited." msgstr "" -#: stock/templates/stock/item_base.html:252 -#: stock/templates/stock/location.html:146 +#: stock/templates/stock/item_base.html:249 +#: stock/templates/stock/location.html:147 msgid "Read only" msgstr "" -#: stock/templates/stock/item_base.html:265 +#: stock/templates/stock/item_base.html:262 msgid "This stock item is unavailable" msgstr "" -#: stock/templates/stock/item_base.html:271 +#: stock/templates/stock/item_base.html:268 msgid "This stock item is in production and cannot be edited." msgstr "" -#: stock/templates/stock/item_base.html:272 +#: stock/templates/stock/item_base.html:269 msgid "Edit the stock item from the build view." msgstr "" -#: stock/templates/stock/item_base.html:287 +#: stock/templates/stock/item_base.html:284 msgid "This stock item is allocated to Sales Order" msgstr "" -#: stock/templates/stock/item_base.html:295 +#: stock/templates/stock/item_base.html:292 msgid "This stock item is allocated to Build Order" msgstr "" -#: stock/templates/stock/item_base.html:311 +#: stock/templates/stock/item_base.html:308 msgid "This stock item is serialized. It has a unique serial number and the quantity cannot be adjusted" msgstr "" -#: stock/templates/stock/item_base.html:317 +#: stock/templates/stock/item_base.html:314 msgid "previous page" msgstr "" -#: stock/templates/stock/item_base.html:317 +#: stock/templates/stock/item_base.html:314 msgid "Navigate to previous serial number" msgstr "" -#: stock/templates/stock/item_base.html:326 +#: stock/templates/stock/item_base.html:323 msgid "next page" msgstr "" -#: stock/templates/stock/item_base.html:326 +#: stock/templates/stock/item_base.html:323 msgid "Navigate to next serial number" msgstr "" -#: stock/templates/stock/item_base.html:398 -#: templates/js/translated/build.js:2552 +#: stock/templates/stock/item_base.html:395 +#: templates/js/translated/build.js:2559 msgid "No location set" msgstr "" -#: stock/templates/stock/item_base.html:413 +#: stock/templates/stock/item_base.html:410 msgid "Tests" msgstr "" -#: stock/templates/stock/item_base.html:419 +#: stock/templates/stock/item_base.html:416 msgid "This stock item has not passed all required tests" msgstr "" -#: stock/templates/stock/item_base.html:437 +#: stock/templates/stock/item_base.html:434 #, python-format msgid "This StockItem expired on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:439 +#: stock/templates/stock/item_base.html:436 #, python-format msgid "This StockItem expires on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:455 +#: stock/templates/stock/item_base.html:452 msgid "No stocktake performed" msgstr "" -#: stock/templates/stock/item_base.html:504 -#: templates/js/translated/stock.js:2037 +#: stock/templates/stock/item_base.html:501 +#: templates/js/translated/stock.js:2038 msgid "stock item" msgstr "" -#: stock/templates/stock/item_base.html:527 +#: stock/templates/stock/item_base.html:524 msgid "Edit Stock Status" msgstr "" -#: stock/templates/stock/item_base.html:536 +#: stock/templates/stock/item_base.html:533 msgid "Stock Item QR Code" msgstr "" -#: stock/templates/stock/item_base.html:547 +#: stock/templates/stock/item_base.html:544 msgid "Link Barcode to Stock Item" msgstr "" -#: stock/templates/stock/item_base.html:611 +#: stock/templates/stock/item_base.html:608 msgid "Select one of the part variants listed below." msgstr "" -#: stock/templates/stock/item_base.html:614 +#: stock/templates/stock/item_base.html:611 msgid "Warning" msgstr "" -#: stock/templates/stock/item_base.html:615 +#: stock/templates/stock/item_base.html:612 msgid "This action cannot be easily undone" msgstr "" -#: stock/templates/stock/item_base.html:623 +#: stock/templates/stock/item_base.html:620 msgid "Convert Stock Item" msgstr "" -#: stock/templates/stock/item_base.html:656 +#: stock/templates/stock/item_base.html:653 msgid "Return to Stock" msgstr "" @@ -10541,84 +10909,84 @@ msgstr "" msgid "Select quantity to serialize, and unique serial numbers." msgstr "" -#: stock/templates/stock/location.html:35 +#: stock/templates/stock/location.html:36 msgid "Perform stocktake for this stock location" msgstr "" -#: stock/templates/stock/location.html:42 +#: stock/templates/stock/location.html:43 msgid "Locate stock location" msgstr "" -#: stock/templates/stock/location.html:60 +#: stock/templates/stock/location.html:61 msgid "Scan stock items into this location" msgstr "" -#: stock/templates/stock/location.html:60 +#: stock/templates/stock/location.html:61 msgid "Scan In Stock Items" msgstr "" -#: stock/templates/stock/location.html:61 +#: stock/templates/stock/location.html:62 msgid "Scan stock container into this location" msgstr "" -#: stock/templates/stock/location.html:61 +#: stock/templates/stock/location.html:62 msgid "Scan In Container" msgstr "" -#: stock/templates/stock/location.html:72 +#: stock/templates/stock/location.html:73 msgid "Print Location Report" msgstr "" -#: stock/templates/stock/location.html:101 +#: stock/templates/stock/location.html:102 msgid "Location actions" msgstr "" -#: stock/templates/stock/location.html:103 +#: stock/templates/stock/location.html:104 msgid "Edit location" msgstr "" -#: stock/templates/stock/location.html:105 +#: stock/templates/stock/location.html:106 msgid "Delete location" msgstr "" -#: stock/templates/stock/location.html:135 +#: stock/templates/stock/location.html:136 msgid "Top level stock location" msgstr "" -#: stock/templates/stock/location.html:141 +#: stock/templates/stock/location.html:142 msgid "Location Owner" msgstr "" -#: stock/templates/stock/location.html:145 +#: stock/templates/stock/location.html:146 msgid "You are not in the list of owners of this location. This stock location cannot be edited." msgstr "" -#: stock/templates/stock/location.html:173 +#: stock/templates/stock/location.html:174 msgid "Location Type" msgstr "" -#: stock/templates/stock/location.html:223 +#: stock/templates/stock/location.html:224 msgid "Create new stock location" msgstr "" -#: stock/templates/stock/location.html:224 +#: stock/templates/stock/location.html:225 msgid "New Location" msgstr "" -#: stock/templates/stock/location.html:298 -#: templates/js/translated/stock.js:2657 +#: stock/templates/stock/location.html:299 +#: templates/js/translated/stock.js:2658 msgid "stock location" msgstr "" -#: stock/templates/stock/location.html:320 +#: stock/templates/stock/location.html:321 msgid "Scanned stock container into this location" msgstr "" -#: stock/templates/stock/location.html:393 +#: stock/templates/stock/location.html:394 msgid "Stock Location QR Code" msgstr "" -#: stock/templates/stock/location.html:404 +#: stock/templates/stock/location.html:405 msgid "Link Barcode to Stock Location" msgstr "" @@ -10630,10 +10998,6 @@ msgstr "" msgid "Stock Tracking" msgstr "" -#: stock/templates/stock/stock_sidebar.html:8 -msgid "Allocations" -msgstr "" - #: templates/403.html:6 templates/403.html:12 templates/403_csrf.html:7 msgid "Permission Denied" msgstr "" @@ -11107,9 +11471,9 @@ msgid "Rate" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:81 -#: templates/js/translated/forms.js:548 templates/js/translated/helpers.js:108 +#: templates/js/translated/forms.js:548 templates/js/translated/helpers.js:109 #: templates/js/translated/part.js:395 templates/js/translated/pricing.js:629 -#: templates/js/translated/stock.js:252 users/models.py:406 +#: templates/js/translated/stock.js:252 users/models.py:408 msgid "Delete" msgstr "" @@ -11130,7 +11494,7 @@ msgid "No project codes found" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:158 -#: templates/js/translated/build.js:2400 +#: templates/js/translated/build.js:2403 msgid "group" msgstr "" @@ -11196,7 +11560,7 @@ msgid "Delete Location Type" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:503 -#: templates/InvenTree/settings/stock.html:38 +#: templates/InvenTree/settings/stock.html:39 msgid "New Location Type" msgstr "" @@ -11253,7 +11617,7 @@ msgstr "" msgid "Stock Settings" msgstr "" -#: templates/InvenTree/settings/stock.html:34 +#: templates/InvenTree/settings/stock.html:35 msgid "Stock Location Types" msgstr "" @@ -11280,7 +11644,7 @@ msgid "Unverified" msgstr "" #: templates/InvenTree/settings/user.html:80 -#: templates/js/translated/company.js:957 +#: templates/js/translated/company.js:958 msgid "Primary" msgstr "" @@ -11532,7 +11896,7 @@ msgid "Submit Bug Report" msgstr "" #: templates/about.html:91 templates/clip.html:4 -#: templates/js/translated/helpers.js:592 +#: templates/js/translated/helpers.js:598 msgid "copy to clipboard" msgstr "" @@ -11738,23 +12102,24 @@ msgstr "" msgid "Barcode Identifier" msgstr "" -#: templates/base.html:103 +#: templates/base.html:102 msgid "Server Restart Required" msgstr "" -#: templates/base.html:106 +#: templates/base.html:105 msgid "A configuration option has been changed which requires a server restart" msgstr "" -#: templates/base.html:106 templates/base.html:116 +#: templates/base.html:105 templates/base.html:115 +#: templates/socialaccount/authentication_error.html:13 msgid "Contact your system administrator for further information" msgstr "" -#: templates/base.html:113 +#: templates/base.html:112 msgid "Pending Database Migrations" msgstr "" -#: templates/base.html:116 +#: templates/base.html:115 msgid "There are pending database migrations which require attention" msgstr "" @@ -11787,7 +12152,7 @@ msgid "The following parts are low on required stock" msgstr "" #: templates/email/build_order_required_stock.html:18 -#: templates/js/translated/bom.js:1674 templates/js/translated/build.js:2747 +#: templates/js/translated/bom.js:1674 templates/js/translated/build.js:2765 msgid "Required Quantity" msgstr "" @@ -11801,7 +12166,7 @@ msgid "Click on the following link to view this part" msgstr "" #: templates/email/low_stock_notification.html:18 -#: templates/js/translated/part.js:3237 +#: templates/js/translated/part.js:3253 msgid "Minimum Quantity" msgstr "" @@ -12039,7 +12404,7 @@ msgstr "" #: templates/js/translated/bom.js:189 templates/js/translated/bom.js:700 #: templates/js/translated/modals.js:75 templates/js/translated/modals.js:629 #: templates/js/translated/modals.js:757 templates/js/translated/modals.js:1065 -#: templates/js/translated/purchase_order.js:797 templates/modals.html:15 +#: templates/js/translated/purchase_order.js:780 templates/modals.html:15 #: templates/modals.html:27 templates/modals.html:39 templates/modals.html:50 msgid "Close" msgstr "" @@ -12156,7 +12521,7 @@ msgstr "" msgid "Substitutes Available" msgstr "" -#: templates/js/translated/bom.js:950 templates/js/translated/build.js:2673 +#: templates/js/translated/bom.js:950 templates/js/translated/build.js:2682 msgid "Variant stock allowed" msgstr "" @@ -12176,30 +12541,30 @@ msgstr "" msgid "No pricing available" msgstr "" -#: templates/js/translated/bom.js:1184 templates/js/translated/build.js:2812 +#: templates/js/translated/bom.js:1184 templates/js/translated/build.js:2830 msgid "External stock" msgstr "" -#: templates/js/translated/bom.js:1188 templates/js/translated/build.js:2786 -#: templates/js/translated/sales_order.js:1946 +#: templates/js/translated/bom.js:1188 templates/js/translated/build.js:2804 +#: templates/js/translated/sales_order.js:1927 msgid "No Stock Available" msgstr "" -#: templates/js/translated/bom.js:1193 templates/js/translated/build.js:2790 +#: templates/js/translated/bom.js:1193 templates/js/translated/build.js:2808 msgid "Includes variant and substitute stock" msgstr "" -#: templates/js/translated/bom.js:1195 templates/js/translated/build.js:2792 +#: templates/js/translated/bom.js:1195 templates/js/translated/build.js:2810 #: templates/js/translated/part.js:1263 -#: templates/js/translated/sales_order.js:1943 +#: templates/js/translated/sales_order.js:1924 msgid "Includes variant stock" msgstr "" -#: templates/js/translated/bom.js:1197 templates/js/translated/build.js:2794 +#: templates/js/translated/bom.js:1197 templates/js/translated/build.js:2812 msgid "Includes substitute stock" msgstr "" -#: templates/js/translated/bom.js:1225 templates/js/translated/build.js:2777 +#: templates/js/translated/bom.js:1225 templates/js/translated/build.js:2795 msgid "Consumable item" msgstr "" @@ -12231,7 +12596,7 @@ msgstr "" msgid "No BOM items found" msgstr "" -#: templates/js/translated/bom.js:1657 templates/js/translated/build.js:2658 +#: templates/js/translated/bom.js:1657 templates/js/translated/build.js:2667 msgid "Required Part" msgstr "" @@ -12243,396 +12608,396 @@ msgstr "" msgid "Edit Build Order" msgstr "" -#: templates/js/translated/build.js:191 +#: templates/js/translated/build.js:194 msgid "Create Build Order" msgstr "" -#: templates/js/translated/build.js:223 +#: templates/js/translated/build.js:226 msgid "Cancel Build Order" msgstr "" -#: templates/js/translated/build.js:232 +#: templates/js/translated/build.js:235 msgid "Are you sure you wish to cancel this build?" msgstr "" -#: templates/js/translated/build.js:238 +#: templates/js/translated/build.js:241 msgid "Stock items have been allocated to this build order" msgstr "" -#: templates/js/translated/build.js:245 +#: templates/js/translated/build.js:248 msgid "There are incomplete outputs remaining for this build order" msgstr "" -#: templates/js/translated/build.js:297 +#: templates/js/translated/build.js:300 msgid "Build order is ready to be completed" msgstr "" -#: templates/js/translated/build.js:305 +#: templates/js/translated/build.js:308 msgid "This build order cannot be completed as there are incomplete outputs" msgstr "" -#: templates/js/translated/build.js:310 +#: templates/js/translated/build.js:313 msgid "Build Order is incomplete" msgstr "" -#: templates/js/translated/build.js:328 +#: templates/js/translated/build.js:331 msgid "Complete Build Order" msgstr "" -#: templates/js/translated/build.js:369 templates/js/translated/stock.js:127 +#: templates/js/translated/build.js:372 templates/js/translated/stock.js:127 #: templates/js/translated/stock.js:301 msgid "Next available serial number" msgstr "" -#: templates/js/translated/build.js:371 templates/js/translated/stock.js:129 +#: templates/js/translated/build.js:374 templates/js/translated/stock.js:129 #: templates/js/translated/stock.js:303 msgid "Latest serial number" msgstr "" -#: templates/js/translated/build.js:380 +#: templates/js/translated/build.js:383 msgid "The Bill of Materials contains trackable parts" msgstr "" -#: templates/js/translated/build.js:381 +#: templates/js/translated/build.js:384 msgid "Build outputs must be generated individually" msgstr "" -#: templates/js/translated/build.js:389 +#: templates/js/translated/build.js:392 msgid "Trackable parts can have serial numbers specified" msgstr "" -#: templates/js/translated/build.js:390 +#: templates/js/translated/build.js:393 msgid "Enter serial numbers to generate multiple single build outputs" msgstr "" -#: templates/js/translated/build.js:397 +#: templates/js/translated/build.js:400 msgid "Create Build Output" msgstr "" -#: templates/js/translated/build.js:428 +#: templates/js/translated/build.js:431 msgid "Allocate stock items to this build output" msgstr "" -#: templates/js/translated/build.js:436 +#: templates/js/translated/build.js:439 msgid "Deallocate stock from build output" msgstr "" -#: templates/js/translated/build.js:445 +#: templates/js/translated/build.js:448 msgid "Complete build output" msgstr "" -#: templates/js/translated/build.js:453 +#: templates/js/translated/build.js:456 msgid "Scrap build output" msgstr "" -#: templates/js/translated/build.js:460 +#: templates/js/translated/build.js:463 msgid "Delete build output" msgstr "" -#: templates/js/translated/build.js:480 +#: templates/js/translated/build.js:483 msgid "Are you sure you wish to deallocate the selected stock items from this build?" msgstr "" -#: templates/js/translated/build.js:498 +#: templates/js/translated/build.js:501 msgid "Deallocate Stock Items" msgstr "" -#: templates/js/translated/build.js:584 templates/js/translated/build.js:711 -#: templates/js/translated/build.js:836 +#: templates/js/translated/build.js:587 templates/js/translated/build.js:714 +#: templates/js/translated/build.js:839 msgid "Select Build Outputs" msgstr "" -#: templates/js/translated/build.js:585 templates/js/translated/build.js:712 -#: templates/js/translated/build.js:837 +#: templates/js/translated/build.js:588 templates/js/translated/build.js:715 +#: templates/js/translated/build.js:840 msgid "At least one build output must be selected" msgstr "" -#: templates/js/translated/build.js:599 +#: templates/js/translated/build.js:602 msgid "Selected build outputs will be marked as complete" msgstr "" -#: templates/js/translated/build.js:603 templates/js/translated/build.js:736 -#: templates/js/translated/build.js:859 +#: templates/js/translated/build.js:606 templates/js/translated/build.js:739 +#: templates/js/translated/build.js:862 msgid "Output" msgstr "" -#: templates/js/translated/build.js:630 +#: templates/js/translated/build.js:633 msgid "Complete Build Outputs" msgstr "" -#: templates/js/translated/build.js:727 +#: templates/js/translated/build.js:730 msgid "Selected build outputs will be marked as scrapped" msgstr "" -#: templates/js/translated/build.js:729 +#: templates/js/translated/build.js:732 msgid "Scrapped output are marked as rejected" msgstr "" -#: templates/js/translated/build.js:730 +#: templates/js/translated/build.js:733 msgid "Allocated stock items will no longer be available" msgstr "" -#: templates/js/translated/build.js:731 +#: templates/js/translated/build.js:734 msgid "The completion status of the build order will not be adjusted" msgstr "" -#: templates/js/translated/build.js:761 +#: templates/js/translated/build.js:764 msgid "Scrap Build Outputs" msgstr "" -#: templates/js/translated/build.js:851 +#: templates/js/translated/build.js:854 msgid "Selected build outputs will be deleted" msgstr "" -#: templates/js/translated/build.js:853 +#: templates/js/translated/build.js:856 msgid "Build output data will be permanently deleted" msgstr "" -#: templates/js/translated/build.js:854 +#: templates/js/translated/build.js:857 msgid "Allocated stock items will be returned to stock" msgstr "" -#: templates/js/translated/build.js:872 +#: templates/js/translated/build.js:875 msgid "Delete Build Outputs" msgstr "" -#: templates/js/translated/build.js:959 +#: templates/js/translated/build.js:962 msgid "Delete allocations" msgstr "" -#: templates/js/translated/build.js:966 +#: templates/js/translated/build.js:969 msgid "Delete Stock Allocations" msgstr "" -#: templates/js/translated/build.js:989 +#: templates/js/translated/build.js:992 msgid "No allocated stock" msgstr "" -#: templates/js/translated/build.js:1045 +#: templates/js/translated/build.js:1048 msgid "Stock item" msgstr "" -#: templates/js/translated/build.js:1070 +#: templates/js/translated/build.js:1073 msgid "Edit build allocation" msgstr "" -#: templates/js/translated/build.js:1071 +#: templates/js/translated/build.js:1074 msgid "Delete build allocation" msgstr "" -#: templates/js/translated/build.js:1089 +#: templates/js/translated/build.js:1092 msgid "Edit Build Allocation" msgstr "" -#: templates/js/translated/build.js:1102 +#: templates/js/translated/build.js:1105 msgid "Delete Build Allocation" msgstr "" -#: templates/js/translated/build.js:1133 +#: templates/js/translated/build.js:1136 msgid "No build order allocations found" msgstr "" -#: templates/js/translated/build.js:1178 +#: templates/js/translated/build.js:1181 msgid "Location not specified" msgstr "" -#: templates/js/translated/build.js:1200 +#: templates/js/translated/build.js:1203 msgid "Complete outputs" msgstr "" -#: templates/js/translated/build.js:1218 +#: templates/js/translated/build.js:1221 msgid "Scrap outputs" msgstr "" -#: templates/js/translated/build.js:1236 +#: templates/js/translated/build.js:1239 msgid "Delete outputs" msgstr "" -#: templates/js/translated/build.js:1289 +#: templates/js/translated/build.js:1292 msgid "build output" msgstr "" -#: templates/js/translated/build.js:1290 +#: templates/js/translated/build.js:1293 msgid "build outputs" msgstr "" -#: templates/js/translated/build.js:1294 +#: templates/js/translated/build.js:1297 msgid "Build output actions" msgstr "" -#: templates/js/translated/build.js:1470 +#: templates/js/translated/build.js:1473 msgid "No active build outputs found" msgstr "" -#: templates/js/translated/build.js:1563 +#: templates/js/translated/build.js:1566 msgid "Allocated Lines" msgstr "" -#: templates/js/translated/build.js:1577 +#: templates/js/translated/build.js:1580 msgid "Required Tests" msgstr "" -#: templates/js/translated/build.js:1749 -#: templates/js/translated/purchase_order.js:611 -#: templates/js/translated/sales_order.js:1207 +#: templates/js/translated/build.js:1752 +#: templates/js/translated/purchase_order.js:594 +#: templates/js/translated/sales_order.js:1173 msgid "Select Parts" msgstr "" -#: templates/js/translated/build.js:1750 -#: templates/js/translated/sales_order.js:1208 +#: templates/js/translated/build.js:1753 +#: templates/js/translated/sales_order.js:1174 msgid "You must select at least one part to allocate" msgstr "" -#: templates/js/translated/build.js:1813 -#: templates/js/translated/sales_order.js:1157 +#: templates/js/translated/build.js:1816 +#: templates/js/translated/sales_order.js:1123 msgid "Specify stock allocation quantity" msgstr "" -#: templates/js/translated/build.js:1890 +#: templates/js/translated/build.js:1893 msgid "All Parts Allocated" msgstr "" -#: templates/js/translated/build.js:1891 +#: templates/js/translated/build.js:1894 msgid "All selected parts have been fully allocated" msgstr "" -#: templates/js/translated/build.js:1905 -#: templates/js/translated/sales_order.js:1222 +#: templates/js/translated/build.js:1908 +#: templates/js/translated/sales_order.js:1188 msgid "Select source location (leave blank to take from all locations)" msgstr "" -#: templates/js/translated/build.js:1933 +#: templates/js/translated/build.js:1936 msgid "Allocate Stock Items to Build Order" msgstr "" -#: templates/js/translated/build.js:1944 -#: templates/js/translated/sales_order.js:1319 +#: templates/js/translated/build.js:1947 +#: templates/js/translated/sales_order.js:1285 msgid "No matching stock locations" msgstr "" -#: templates/js/translated/build.js:2017 -#: templates/js/translated/sales_order.js:1398 +#: templates/js/translated/build.js:2020 +#: templates/js/translated/sales_order.js:1364 msgid "No matching stock items" msgstr "" -#: templates/js/translated/build.js:2114 +#: templates/js/translated/build.js:2117 msgid "Automatic Stock Allocation" msgstr "" -#: templates/js/translated/build.js:2115 +#: templates/js/translated/build.js:2118 msgid "Stock items will be automatically allocated to this build order, according to the provided guidelines" msgstr "" -#: templates/js/translated/build.js:2117 +#: templates/js/translated/build.js:2120 msgid "If a location is specified, stock will only be allocated from that location" msgstr "" -#: templates/js/translated/build.js:2118 +#: templates/js/translated/build.js:2121 msgid "If stock is considered interchangeable, it will be allocated from the first location it is found" msgstr "" -#: templates/js/translated/build.js:2119 +#: templates/js/translated/build.js:2122 msgid "If substitute stock is allowed, it will be used where stock of the primary part cannot be found" msgstr "" -#: templates/js/translated/build.js:2149 +#: templates/js/translated/build.js:2152 msgid "Allocate Stock Items" msgstr "" -#: templates/js/translated/build.js:2254 +#: templates/js/translated/build.js:2257 msgid "No builds matching query" msgstr "" -#: templates/js/translated/build.js:2289 templates/js/translated/build.js:2652 +#: templates/js/translated/build.js:2292 templates/js/translated/build.js:2661 #: templates/js/translated/forms.js:2196 templates/js/translated/forms.js:2212 #: templates/js/translated/part.js:2322 templates/js/translated/part.js:2761 -#: templates/js/translated/stock.js:2068 templates/js/translated/stock.js:2795 +#: templates/js/translated/stock.js:2069 templates/js/translated/stock.js:2796 msgid "Select" msgstr "" -#: templates/js/translated/build.js:2303 +#: templates/js/translated/build.js:2306 msgid "Build order is overdue" msgstr "" -#: templates/js/translated/build.js:2385 templates/js/translated/stock.js:3126 +#: templates/js/translated/build.js:2388 templates/js/translated/stock.js:3127 msgid "No user information" msgstr "" -#: templates/js/translated/build.js:2561 -#: templates/js/translated/sales_order.js:1682 +#: templates/js/translated/build.js:2568 +#: templates/js/translated/sales_order.js:1663 msgid "Edit stock allocation" msgstr "" -#: templates/js/translated/build.js:2562 -#: templates/js/translated/sales_order.js:1683 +#: templates/js/translated/build.js:2569 +#: templates/js/translated/sales_order.js:1664 msgid "Delete stock allocation" msgstr "" -#: templates/js/translated/build.js:2577 +#: templates/js/translated/build.js:2584 msgid "Edit Allocation" msgstr "" -#: templates/js/translated/build.js:2589 +#: templates/js/translated/build.js:2596 msgid "Remove Allocation" msgstr "" -#: templates/js/translated/build.js:2628 +#: templates/js/translated/build.js:2636 msgid "build line" msgstr "" -#: templates/js/translated/build.js:2629 +#: templates/js/translated/build.js:2637 msgid "build lines" msgstr "" -#: templates/js/translated/build.js:2647 +#: templates/js/translated/build.js:2656 msgid "No build lines found" msgstr "" -#: templates/js/translated/build.js:2677 templates/js/translated/part.js:793 +#: templates/js/translated/build.js:2686 templates/js/translated/part.js:793 #: templates/js/translated/part.js:1209 msgid "Trackable part" msgstr "" -#: templates/js/translated/build.js:2720 +#: templates/js/translated/build.js:2729 msgid "Gets Inherited" msgstr "" -#: templates/js/translated/build.js:2730 +#: templates/js/translated/build.js:2748 msgid "Unit Quantity" msgstr "" -#: templates/js/translated/build.js:2782 -#: templates/js/translated/sales_order.js:1951 +#: templates/js/translated/build.js:2800 +#: templates/js/translated/sales_order.js:1932 msgid "Sufficient stock available" msgstr "" -#: templates/js/translated/build.js:2837 +#: templates/js/translated/build.js:2855 msgid "Consumable Item" msgstr "" -#: templates/js/translated/build.js:2844 +#: templates/js/translated/build.js:2862 msgid "Tracked item" msgstr "" -#: templates/js/translated/build.js:2845 +#: templates/js/translated/build.js:2863 msgid "Allocate tracked items against individual build outputs" msgstr "" -#: templates/js/translated/build.js:2853 -#: templates/js/translated/sales_order.js:2052 +#: templates/js/translated/build.js:2871 +#: templates/js/translated/sales_order.js:2033 msgid "Build stock" msgstr "" -#: templates/js/translated/build.js:2858 templates/js/translated/stock.js:1953 +#: templates/js/translated/build.js:2876 templates/js/translated/stock.js:1954 msgid "Order stock" msgstr "" -#: templates/js/translated/build.js:2862 -#: templates/js/translated/sales_order.js:2046 +#: templates/js/translated/build.js:2880 +#: templates/js/translated/sales_order.js:2027 msgid "Allocate stock" msgstr "" -#: templates/js/translated/build.js:2866 +#: templates/js/translated/build.js:2884 msgid "Remove stock allocation" msgstr "" @@ -12641,7 +13006,7 @@ msgid "Add Manufacturer" msgstr "" #: templates/js/translated/company.js:111 -#: templates/js/translated/company.js:213 +#: templates/js/translated/company.js:214 msgid "Add Manufacturer Part" msgstr "" @@ -12649,231 +13014,231 @@ msgstr "" msgid "Edit Manufacturer Part" msgstr "" -#: templates/js/translated/company.js:201 +#: templates/js/translated/company.js:202 #: templates/js/translated/purchase_order.js:93 msgid "Add Supplier" msgstr "" -#: templates/js/translated/company.js:243 -#: templates/js/translated/purchase_order.js:318 +#: templates/js/translated/company.js:244 +#: templates/js/translated/purchase_order.js:301 msgid "Add Supplier Part" msgstr "" -#: templates/js/translated/company.js:344 +#: templates/js/translated/company.js:345 msgid "All selected supplier parts will be deleted" msgstr "" -#: templates/js/translated/company.js:360 +#: templates/js/translated/company.js:361 msgid "Delete Supplier Parts" msgstr "" -#: templates/js/translated/company.js:466 +#: templates/js/translated/company.js:467 msgid "Add new Company" msgstr "" -#: templates/js/translated/company.js:546 +#: templates/js/translated/company.js:547 msgid "Parts Supplied" msgstr "" -#: templates/js/translated/company.js:555 +#: templates/js/translated/company.js:556 msgid "Parts Manufactured" msgstr "" -#: templates/js/translated/company.js:570 +#: templates/js/translated/company.js:571 msgid "No company information found" msgstr "" -#: templates/js/translated/company.js:619 +#: templates/js/translated/company.js:620 msgid "Create New Contact" msgstr "" -#: templates/js/translated/company.js:635 -#: templates/js/translated/company.js:758 +#: templates/js/translated/company.js:636 +#: templates/js/translated/company.js:759 msgid "Edit Contact" msgstr "" -#: templates/js/translated/company.js:672 +#: templates/js/translated/company.js:673 msgid "All selected contacts will be deleted" msgstr "" -#: templates/js/translated/company.js:678 -#: templates/js/translated/company.js:742 +#: templates/js/translated/company.js:679 +#: templates/js/translated/company.js:743 msgid "Role" msgstr "" -#: templates/js/translated/company.js:686 +#: templates/js/translated/company.js:687 msgid "Delete Contacts" msgstr "" -#: templates/js/translated/company.js:717 +#: templates/js/translated/company.js:718 msgid "No contacts found" msgstr "" -#: templates/js/translated/company.js:730 +#: templates/js/translated/company.js:731 msgid "Phone Number" msgstr "" -#: templates/js/translated/company.js:736 +#: templates/js/translated/company.js:737 msgid "Email Address" msgstr "" -#: templates/js/translated/company.js:762 +#: templates/js/translated/company.js:763 msgid "Delete Contact" msgstr "" -#: templates/js/translated/company.js:859 +#: templates/js/translated/company.js:860 msgid "Create New Address" msgstr "" -#: templates/js/translated/company.js:874 -#: templates/js/translated/company.js:1035 +#: templates/js/translated/company.js:875 +#: templates/js/translated/company.js:1036 msgid "Edit Address" msgstr "" -#: templates/js/translated/company.js:909 +#: templates/js/translated/company.js:910 msgid "All selected addresses will be deleted" msgstr "" -#: templates/js/translated/company.js:923 +#: templates/js/translated/company.js:924 msgid "Delete Addresses" msgstr "" -#: templates/js/translated/company.js:950 +#: templates/js/translated/company.js:951 msgid "No addresses found" msgstr "" -#: templates/js/translated/company.js:989 +#: templates/js/translated/company.js:990 msgid "Postal city" msgstr "" -#: templates/js/translated/company.js:995 +#: templates/js/translated/company.js:996 msgid "State/province" msgstr "" -#: templates/js/translated/company.js:1007 +#: templates/js/translated/company.js:1008 msgid "Courier notes" msgstr "" -#: templates/js/translated/company.js:1013 +#: templates/js/translated/company.js:1014 msgid "Internal notes" msgstr "" -#: templates/js/translated/company.js:1039 +#: templates/js/translated/company.js:1040 msgid "Delete Address" msgstr "" -#: templates/js/translated/company.js:1112 +#: templates/js/translated/company.js:1113 msgid "All selected manufacturer parts will be deleted" msgstr "" -#: templates/js/translated/company.js:1127 +#: templates/js/translated/company.js:1128 msgid "Delete Manufacturer Parts" msgstr "" -#: templates/js/translated/company.js:1161 +#: templates/js/translated/company.js:1162 msgid "All selected parameters will be deleted" msgstr "" -#: templates/js/translated/company.js:1175 +#: templates/js/translated/company.js:1176 msgid "Delete Parameters" msgstr "" -#: templates/js/translated/company.js:1191 -#: templates/js/translated/company.js:1479 templates/js/translated/part.js:2250 +#: templates/js/translated/company.js:1192 +#: templates/js/translated/company.js:1480 templates/js/translated/part.js:2250 msgid "Order parts" msgstr "" -#: templates/js/translated/company.js:1208 +#: templates/js/translated/company.js:1209 msgid "Delete manufacturer parts" msgstr "" -#: templates/js/translated/company.js:1240 +#: templates/js/translated/company.js:1241 msgid "Manufacturer part actions" msgstr "" -#: templates/js/translated/company.js:1259 +#: templates/js/translated/company.js:1260 msgid "No manufacturer parts found" msgstr "" -#: templates/js/translated/company.js:1279 -#: templates/js/translated/company.js:1567 templates/js/translated/part.js:801 +#: templates/js/translated/company.js:1280 +#: templates/js/translated/company.js:1568 templates/js/translated/part.js:801 #: templates/js/translated/part.js:1217 msgid "Template part" msgstr "" -#: templates/js/translated/company.js:1283 -#: templates/js/translated/company.js:1571 templates/js/translated/part.js:805 +#: templates/js/translated/company.js:1284 +#: templates/js/translated/company.js:1572 templates/js/translated/part.js:805 #: templates/js/translated/part.js:1221 msgid "Assembled part" msgstr "" -#: templates/js/translated/company.js:1403 templates/js/translated/part.js:1471 +#: templates/js/translated/company.js:1404 templates/js/translated/part.js:1471 msgid "No parameters found" msgstr "" -#: templates/js/translated/company.js:1438 templates/js/translated/part.js:1534 +#: templates/js/translated/company.js:1439 templates/js/translated/part.js:1534 msgid "Edit parameter" msgstr "" -#: templates/js/translated/company.js:1439 templates/js/translated/part.js:1535 +#: templates/js/translated/company.js:1440 templates/js/translated/part.js:1535 msgid "Delete parameter" msgstr "" -#: templates/js/translated/company.js:1456 templates/js/translated/part.js:1440 +#: templates/js/translated/company.js:1457 templates/js/translated/part.js:1440 msgid "Edit Parameter" msgstr "" -#: templates/js/translated/company.js:1465 templates/js/translated/part.js:1556 +#: templates/js/translated/company.js:1466 templates/js/translated/part.js:1556 msgid "Delete Parameter" msgstr "" -#: templates/js/translated/company.js:1496 +#: templates/js/translated/company.js:1497 msgid "Delete supplier parts" msgstr "" -#: templates/js/translated/company.js:1546 +#: templates/js/translated/company.js:1547 msgid "No supplier parts found" msgstr "" -#: templates/js/translated/company.js:1664 +#: templates/js/translated/company.js:1665 msgid "Base Units" msgstr "" -#: templates/js/translated/company.js:1694 +#: templates/js/translated/company.js:1695 msgid "Availability" msgstr "" -#: templates/js/translated/company.js:1725 +#: templates/js/translated/company.js:1726 msgid "Edit supplier part" msgstr "" -#: templates/js/translated/company.js:1726 +#: templates/js/translated/company.js:1727 msgid "Delete supplier part" msgstr "" -#: templates/js/translated/company.js:1779 +#: templates/js/translated/company.js:1780 #: templates/js/translated/pricing.js:694 msgid "Delete Price Break" msgstr "" -#: templates/js/translated/company.js:1789 +#: templates/js/translated/company.js:1790 #: templates/js/translated/pricing.js:712 msgid "Edit Price Break" msgstr "" -#: templates/js/translated/company.js:1804 +#: templates/js/translated/company.js:1805 msgid "No price break information found" msgstr "" -#: templates/js/translated/company.js:1833 +#: templates/js/translated/company.js:1834 msgid "Last updated" msgstr "" -#: templates/js/translated/company.js:1840 +#: templates/js/translated/company.js:1841 msgid "Edit price break" msgstr "" -#: templates/js/translated/company.js:1841 +#: templates/js/translated/company.js:1842 msgid "Delete price break" msgstr "" @@ -12977,19 +13342,19 @@ msgstr "" msgid "Select Columns" msgstr "" -#: templates/js/translated/helpers.js:80 +#: templates/js/translated/helpers.js:81 msgid "YES" msgstr "" -#: templates/js/translated/helpers.js:83 +#: templates/js/translated/helpers.js:84 msgid "NO" msgstr "" -#: templates/js/translated/helpers.js:96 +#: templates/js/translated/helpers.js:97 msgid "True" msgstr "" -#: templates/js/translated/helpers.js:97 +#: templates/js/translated/helpers.js:98 msgid "False" msgstr "" @@ -13131,7 +13496,7 @@ msgid "Delete Line" msgstr "" #: templates/js/translated/order.js:306 -#: templates/js/translated/purchase_order.js:2060 +#: templates/js/translated/purchase_order.js:2044 msgid "No line items found" msgstr "" @@ -13366,19 +13731,19 @@ msgid "Delete Part Parameter Template" msgstr "" #: templates/js/translated/part.js:1723 -#: templates/js/translated/purchase_order.js:1724 +#: templates/js/translated/purchase_order.js:1708 msgid "No purchase orders found" msgstr "" #: templates/js/translated/part.js:1867 -#: templates/js/translated/purchase_order.js:2223 +#: templates/js/translated/purchase_order.js:2207 #: templates/js/translated/return_order.js:754 -#: templates/js/translated/sales_order.js:1911 +#: templates/js/translated/sales_order.js:1892 msgid "This line item is overdue" msgstr "" #: templates/js/translated/part.js:1913 -#: templates/js/translated/purchase_order.js:2290 +#: templates/js/translated/purchase_order.js:2274 msgid "Receive line item" msgstr "" @@ -13419,7 +13784,7 @@ msgid "No category" msgstr "" #: templates/js/translated/part.js:2550 templates/js/translated/part.js:2680 -#: templates/js/translated/stock.js:2754 +#: templates/js/translated/stock.js:2755 msgid "Display as list" msgstr "" @@ -13431,7 +13796,7 @@ msgstr "" msgid "No subcategories found" msgstr "" -#: templates/js/translated/part.js:2700 templates/js/translated/stock.js:2774 +#: templates/js/translated/part.js:2700 templates/js/translated/stock.js:2775 msgid "Display as tree" msgstr "" @@ -13483,23 +13848,23 @@ msgstr "" msgid "Speculative" msgstr "" -#: templates/js/translated/part.js:3128 +#: templates/js/translated/part.js:3144 msgid "No scheduling information available for this part" msgstr "" -#: templates/js/translated/part.js:3134 +#: templates/js/translated/part.js:3150 msgid "Error fetching scheduling information for this part" msgstr "" -#: templates/js/translated/part.js:3230 +#: templates/js/translated/part.js:3246 msgid "Scheduled Stock Quantities" msgstr "" -#: templates/js/translated/part.js:3246 +#: templates/js/translated/part.js:3262 msgid "Maximum Quantity" msgstr "" -#: templates/js/translated/part.js:3291 +#: templates/js/translated/part.js:3307 msgid "Minimum Stock Level" msgstr "" @@ -13575,267 +13940,243 @@ msgstr "" msgid "Purchase Price History" msgstr "" -#: templates/js/translated/pricing.js:894 +#: templates/js/translated/pricing.js:892 msgid "No sales history data available" msgstr "" -#: templates/js/translated/pricing.js:916 +#: templates/js/translated/pricing.js:914 msgid "Sale Price History" msgstr "" -#: templates/js/translated/pricing.js:1005 +#: templates/js/translated/pricing.js:1003 msgid "No variant data available" msgstr "" -#: templates/js/translated/pricing.js:1045 +#: templates/js/translated/pricing.js:1043 msgid "Variant Part" msgstr "" -#: templates/js/translated/purchase_order.js:169 -msgid "Select purchase order to duplicate" -msgstr "" - -#: templates/js/translated/purchase_order.js:176 -msgid "Duplicate Line Items" -msgstr "" - -#: templates/js/translated/purchase_order.js:177 -msgid "Duplicate all line items from the selected order" -msgstr "" - -#: templates/js/translated/purchase_order.js:184 -msgid "Duplicate Extra Lines" -msgstr "" - -#: templates/js/translated/purchase_order.js:185 -msgid "Duplicate extra line items from the selected order" -msgstr "" - -#: templates/js/translated/purchase_order.js:206 +#: templates/js/translated/purchase_order.js:188 msgid "Edit Purchase Order" msgstr "" -#: templates/js/translated/purchase_order.js:223 +#: templates/js/translated/purchase_order.js:205 msgid "Duplication Options" msgstr "" -#: templates/js/translated/purchase_order.js:431 +#: templates/js/translated/purchase_order.js:414 msgid "Complete Purchase Order" msgstr "" -#: templates/js/translated/purchase_order.js:448 +#: templates/js/translated/purchase_order.js:431 #: templates/js/translated/return_order.js:210 -#: templates/js/translated/sales_order.js:552 +#: templates/js/translated/sales_order.js:511 msgid "Mark this order as complete?" msgstr "" -#: templates/js/translated/purchase_order.js:454 +#: templates/js/translated/purchase_order.js:437 msgid "All line items have been received" msgstr "" -#: templates/js/translated/purchase_order.js:459 +#: templates/js/translated/purchase_order.js:442 msgid "This order has line items which have not been marked as received." msgstr "" -#: templates/js/translated/purchase_order.js:460 +#: templates/js/translated/purchase_order.js:443 msgid "Completing this order means that the order and line items will no longer be editable." msgstr "" -#: templates/js/translated/purchase_order.js:483 +#: templates/js/translated/purchase_order.js:466 msgid "Cancel Purchase Order" msgstr "" -#: templates/js/translated/purchase_order.js:488 +#: templates/js/translated/purchase_order.js:471 msgid "Are you sure you wish to cancel this purchase order?" msgstr "" -#: templates/js/translated/purchase_order.js:494 +#: templates/js/translated/purchase_order.js:477 msgid "This purchase order can not be cancelled" msgstr "" -#: templates/js/translated/purchase_order.js:515 +#: templates/js/translated/purchase_order.js:498 #: templates/js/translated/return_order.js:164 msgid "After placing this order, line items will no longer be editable." msgstr "" -#: templates/js/translated/purchase_order.js:520 +#: templates/js/translated/purchase_order.js:503 msgid "Issue Purchase Order" msgstr "" -#: templates/js/translated/purchase_order.js:612 +#: templates/js/translated/purchase_order.js:595 msgid "At least one purchaseable part must be selected" msgstr "" -#: templates/js/translated/purchase_order.js:637 +#: templates/js/translated/purchase_order.js:620 msgid "Quantity to order" msgstr "" -#: templates/js/translated/purchase_order.js:646 +#: templates/js/translated/purchase_order.js:629 msgid "New supplier part" msgstr "" -#: templates/js/translated/purchase_order.js:664 +#: templates/js/translated/purchase_order.js:647 msgid "New purchase order" msgstr "" -#: templates/js/translated/purchase_order.js:705 +#: templates/js/translated/purchase_order.js:688 msgid "Add to purchase order" msgstr "" -#: templates/js/translated/purchase_order.js:755 +#: templates/js/translated/purchase_order.js:738 msgid "Merge" msgstr "" -#: templates/js/translated/purchase_order.js:859 +#: templates/js/translated/purchase_order.js:842 msgid "No matching supplier parts" msgstr "" -#: templates/js/translated/purchase_order.js:878 +#: templates/js/translated/purchase_order.js:861 msgid "No matching purchase orders" msgstr "" -#: templates/js/translated/purchase_order.js:1073 +#: templates/js/translated/purchase_order.js:1056 #: templates/js/translated/return_order.js:490 msgid "Select Line Items" msgstr "" -#: templates/js/translated/purchase_order.js:1074 +#: templates/js/translated/purchase_order.js:1057 #: templates/js/translated/return_order.js:491 msgid "At least one line item must be selected" msgstr "" -#: templates/js/translated/purchase_order.js:1104 +#: templates/js/translated/purchase_order.js:1087 msgid "Received Quantity" msgstr "" -#: templates/js/translated/purchase_order.js:1115 +#: templates/js/translated/purchase_order.js:1098 msgid "Quantity to receive" msgstr "" -#: templates/js/translated/purchase_order.js:1170 +#: templates/js/translated/purchase_order.js:1153 #: templates/js/translated/stock.js:1215 msgid "Specify packaging for incoming stock items" msgstr "" -#: templates/js/translated/purchase_order.js:1223 +#: templates/js/translated/purchase_order.js:1206 msgid "Stock Status" msgstr "" -#: templates/js/translated/purchase_order.js:1237 +#: templates/js/translated/purchase_order.js:1220 msgid "Add barcode" msgstr "" -#: templates/js/translated/purchase_order.js:1238 +#: templates/js/translated/purchase_order.js:1221 msgid "Remove barcode" msgstr "" -#: templates/js/translated/purchase_order.js:1241 +#: templates/js/translated/purchase_order.js:1224 msgid "Specify location" msgstr "" -#: templates/js/translated/purchase_order.js:1249 +#: templates/js/translated/purchase_order.js:1232 msgid "Add batch code" msgstr "" -#: templates/js/translated/purchase_order.js:1259 +#: templates/js/translated/purchase_order.js:1242 msgid "Specify packaging" msgstr "" -#: templates/js/translated/purchase_order.js:1270 +#: templates/js/translated/purchase_order.js:1253 msgid "Add serial numbers" msgstr "" -#: templates/js/translated/purchase_order.js:1281 +#: templates/js/translated/purchase_order.js:1264 msgid "Add note" msgstr "" -#: templates/js/translated/purchase_order.js:1338 +#: templates/js/translated/purchase_order.js:1321 msgid "Serials" msgstr "" -#: templates/js/translated/purchase_order.js:1368 +#: templates/js/translated/purchase_order.js:1351 msgid "Order Code" msgstr "" -#: templates/js/translated/purchase_order.js:1370 +#: templates/js/translated/purchase_order.js:1353 msgid "Quantity to Receive" msgstr "" -#: templates/js/translated/purchase_order.js:1395 +#: templates/js/translated/purchase_order.js:1379 #: templates/js/translated/return_order.js:559 msgid "Confirm receipt of items" msgstr "" -#: templates/js/translated/purchase_order.js:1396 +#: templates/js/translated/purchase_order.js:1380 msgid "Receive Purchase Order Items" msgstr "" -#: templates/js/translated/purchase_order.js:1464 +#: templates/js/translated/purchase_order.js:1448 msgid "Scan Item Barcode" msgstr "" -#: templates/js/translated/purchase_order.js:1465 +#: templates/js/translated/purchase_order.js:1449 msgid "Scan barcode on incoming item (must not match any existing stock items)" msgstr "" -#: templates/js/translated/purchase_order.js:1479 +#: templates/js/translated/purchase_order.js:1463 msgid "Invalid barcode data" msgstr "" -#: templates/js/translated/purchase_order.js:1751 +#: templates/js/translated/purchase_order.js:1735 #: templates/js/translated/return_order.js:285 -#: templates/js/translated/sales_order.js:810 -#: templates/js/translated/sales_order.js:1034 +#: templates/js/translated/sales_order.js:769 +#: templates/js/translated/sales_order.js:1007 msgid "Order is overdue" msgstr "" -#: templates/js/translated/purchase_order.js:1913 +#: templates/js/translated/purchase_order.js:1897 msgid "All selected Line items will be deleted" msgstr "" -#: templates/js/translated/purchase_order.js:1931 +#: templates/js/translated/purchase_order.js:1915 msgid "Delete selected Line items?" msgstr "" -#: templates/js/translated/purchase_order.js:1986 -#: templates/js/translated/sales_order.js:2106 +#: templates/js/translated/purchase_order.js:1970 +#: templates/js/translated/sales_order.js:2087 msgid "Duplicate Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2001 +#: templates/js/translated/purchase_order.js:1985 #: templates/js/translated/return_order.js:475 #: templates/js/translated/return_order.js:667 -#: templates/js/translated/sales_order.js:2119 +#: templates/js/translated/sales_order.js:2100 msgid "Edit Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2012 +#: templates/js/translated/purchase_order.js:1996 #: templates/js/translated/return_order.js:680 -#: templates/js/translated/sales_order.js:2130 +#: templates/js/translated/sales_order.js:2111 msgid "Delete Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2294 -#: templates/js/translated/sales_order.js:2060 +#: templates/js/translated/purchase_order.js:2278 +#: templates/js/translated/sales_order.js:2041 msgid "Duplicate line item" msgstr "" -#: templates/js/translated/purchase_order.js:2295 +#: templates/js/translated/purchase_order.js:2279 #: templates/js/translated/return_order.js:799 -#: templates/js/translated/sales_order.js:2061 +#: templates/js/translated/sales_order.js:2042 msgid "Edit line item" msgstr "" -#: templates/js/translated/purchase_order.js:2296 +#: templates/js/translated/purchase_order.js:2280 #: templates/js/translated/return_order.js:803 -#: templates/js/translated/sales_order.js:2067 +#: templates/js/translated/sales_order.js:2048 msgid "Delete line item" msgstr "" -#: templates/js/translated/report.js:49 -msgid "Print Report" -msgstr "" - #: templates/js/translated/report.js:68 msgid "Report print successful" msgstr "" @@ -13878,7 +14219,7 @@ msgid "No return orders found" msgstr "" #: templates/js/translated/return_order.js:299 -#: templates/js/translated/sales_order.js:824 +#: templates/js/translated/sales_order.js:783 msgid "Invalid Customer" msgstr "" @@ -13887,7 +14228,7 @@ msgid "Receive Return Order Items" msgstr "" #: templates/js/translated/return_order.js:691 -#: templates/js/translated/sales_order.js:2267 +#: templates/js/translated/sales_order.js:2248 msgid "No matching line items" msgstr "" @@ -13903,188 +14244,181 @@ msgstr "" msgid "Edit Sales Order" msgstr "" -#: templates/js/translated/sales_order.js:291 +#: templates/js/translated/sales_order.js:288 msgid "No stock items have been allocated to this shipment" msgstr "" -#: templates/js/translated/sales_order.js:296 -msgid "The following stock items will be shipped" -msgstr "" - -#: templates/js/translated/sales_order.js:336 +#: templates/js/translated/sales_order.js:294 msgid "Complete Shipment" msgstr "" -#: templates/js/translated/sales_order.js:360 +#: templates/js/translated/sales_order.js:318 msgid "Confirm Shipment" msgstr "" -#: templates/js/translated/sales_order.js:416 +#: templates/js/translated/sales_order.js:375 msgid "No pending shipments found" msgstr "" -#: templates/js/translated/sales_order.js:420 +#: templates/js/translated/sales_order.js:379 msgid "No stock items have been allocated to pending shipments" msgstr "" -#: templates/js/translated/sales_order.js:430 +#: templates/js/translated/sales_order.js:389 msgid "Complete Shipments" msgstr "" -#: templates/js/translated/sales_order.js:452 +#: templates/js/translated/sales_order.js:411 msgid "Skip" msgstr "" -#: templates/js/translated/sales_order.js:484 +#: templates/js/translated/sales_order.js:443 msgid "Ship Sales Order" msgstr "" -#: templates/js/translated/sales_order.js:500 +#: templates/js/translated/sales_order.js:459 msgid "Ship this order?" msgstr "" -#: templates/js/translated/sales_order.js:506 +#: templates/js/translated/sales_order.js:465 msgid "Order cannot be shipped as there are incomplete shipments" msgstr "" -#: templates/js/translated/sales_order.js:513 +#: templates/js/translated/sales_order.js:472 msgid "This order has line items which have not been completed." msgstr "" -#: templates/js/translated/sales_order.js:514 +#: templates/js/translated/sales_order.js:473 msgid "Shipping this order means that the order and line items will no longer be editable." msgstr "" -#: templates/js/translated/sales_order.js:572 +#: templates/js/translated/sales_order.js:531 msgid "Issue this Sales Order?" msgstr "" -#: templates/js/translated/sales_order.js:577 +#: templates/js/translated/sales_order.js:536 msgid "Issue Sales Order" msgstr "" -#: templates/js/translated/sales_order.js:596 +#: templates/js/translated/sales_order.js:555 msgid "Cancel Sales Order" msgstr "" -#: templates/js/translated/sales_order.js:601 +#: templates/js/translated/sales_order.js:560 msgid "Cancelling this order means that the order will no longer be editable." msgstr "" -#: templates/js/translated/sales_order.js:655 +#: templates/js/translated/sales_order.js:614 msgid "Create New Shipment" msgstr "" -#: templates/js/translated/sales_order.js:764 +#: templates/js/translated/sales_order.js:723 msgid "No sales orders found" msgstr "" -#: templates/js/translated/sales_order.js:944 +#: templates/js/translated/sales_order.js:907 msgid "Edit shipment" msgstr "" -#: templates/js/translated/sales_order.js:947 +#: templates/js/translated/sales_order.js:910 msgid "Complete shipment" msgstr "" -#: templates/js/translated/sales_order.js:952 +#: templates/js/translated/sales_order.js:915 msgid "Delete shipment" msgstr "" -#: templates/js/translated/sales_order.js:969 +#: templates/js/translated/sales_order.js:932 msgid "Edit Shipment" msgstr "" -#: templates/js/translated/sales_order.js:984 +#: templates/js/translated/sales_order.js:947 msgid "Delete Shipment" msgstr "" -#: templates/js/translated/sales_order.js:1017 +#: templates/js/translated/sales_order.js:989 msgid "No matching shipments found" msgstr "" -#: templates/js/translated/sales_order.js:1042 +#: templates/js/translated/sales_order.js:1015 msgid "Shipment Reference" msgstr "" -#: templates/js/translated/sales_order.js:1066 -#: templates/js/translated/sales_order.js:1565 +#: templates/js/translated/sales_order.js:1032 +#: templates/js/translated/sales_order.js:1531 msgid "Not shipped" msgstr "" -#: templates/js/translated/sales_order.js:1084 +#: templates/js/translated/sales_order.js:1050 msgid "Tracking" msgstr "" -#: templates/js/translated/sales_order.js:1088 +#: templates/js/translated/sales_order.js:1054 msgid "Invoice" msgstr "" -#: templates/js/translated/sales_order.js:1255 +#: templates/js/translated/sales_order.js:1221 msgid "Add Shipment" msgstr "" -#: templates/js/translated/sales_order.js:1306 +#: templates/js/translated/sales_order.js:1272 msgid "Confirm stock allocation" msgstr "" -#: templates/js/translated/sales_order.js:1307 +#: templates/js/translated/sales_order.js:1273 msgid "Allocate Stock Items to Sales Order" msgstr "" -#: templates/js/translated/sales_order.js:1513 +#: templates/js/translated/sales_order.js:1479 msgid "No sales order allocations found" msgstr "" -#: templates/js/translated/sales_order.js:1605 +#: templates/js/translated/sales_order.js:1571 msgid "Edit Stock Allocation" msgstr "" -#: templates/js/translated/sales_order.js:1619 +#: templates/js/translated/sales_order.js:1585 msgid "Confirm Delete Operation" msgstr "" -#: templates/js/translated/sales_order.js:1620 +#: templates/js/translated/sales_order.js:1586 msgid "Delete Stock Allocation" msgstr "" -#: templates/js/translated/sales_order.js:1659 -#: templates/js/translated/sales_order.js:1746 +#: templates/js/translated/sales_order.js:1640 +#: templates/js/translated/sales_order.js:1727 #: templates/js/translated/stock.js:1861 msgid "Shipped to customer" msgstr "" -#: templates/js/translated/sales_order.js:1667 -#: templates/js/translated/sales_order.js:1755 +#: templates/js/translated/sales_order.js:1648 +#: templates/js/translated/sales_order.js:1736 msgid "Stock location not specified" msgstr "" -#: templates/js/translated/sales_order.js:2044 -msgid "Allocate serial numbers" -msgstr "" - -#: templates/js/translated/sales_order.js:2048 -msgid "Purchase stock" -msgstr "" - -#: templates/js/translated/sales_order.js:2057 -#: templates/js/translated/sales_order.js:2245 -msgid "Calculate price" -msgstr "" - -#: templates/js/translated/sales_order.js:2071 -msgid "Cannot be deleted as items have been shipped" -msgstr "" - -#: templates/js/translated/sales_order.js:2074 -msgid "Cannot be deleted as items have been allocated" -msgstr "" - -#: templates/js/translated/sales_order.js:2145 +#: templates/js/translated/sales_order.js:2025 +#: templates/js/translated/sales_order.js:2126 msgid "Allocate Serial Numbers" msgstr "" -#: templates/js/translated/sales_order.js:2253 +#: templates/js/translated/sales_order.js:2029 +msgid "Purchase stock" +msgstr "" + +#: templates/js/translated/sales_order.js:2038 +#: templates/js/translated/sales_order.js:2226 +msgid "Calculate price" +msgstr "" + +#: templates/js/translated/sales_order.js:2052 +msgid "Cannot be deleted as items have been shipped" +msgstr "" + +#: templates/js/translated/sales_order.js:2055 +msgid "Cannot be deleted as items have been allocated" +msgstr "" + +#: templates/js/translated/sales_order.js:2234 msgid "Update Unit Price" msgstr "" @@ -14209,11 +14543,8 @@ msgid "Find Serial Number" msgstr "" #: templates/js/translated/stock.js:603 templates/js/translated/stock.js:604 -msgid "Enter serial number" -msgstr "" - #: templates/js/translated/stock.js:620 -msgid "Enter a serial number" +msgid "Enter serial number" msgstr "" #: templates/js/translated/stock.js:640 @@ -14284,7 +14615,7 @@ msgstr "" msgid "Add Stock" msgstr "" -#: templates/js/translated/stock.js:1049 users/models.py:396 +#: templates/js/translated/stock.js:1049 users/models.py:398 msgid "Add" msgstr "" @@ -14308,7 +14639,7 @@ msgstr "" msgid "Adjust packaging" msgstr "" -#: templates/js/translated/stock.js:1256 templates/js/translated/stock.js:3382 +#: templates/js/translated/stock.js:1256 templates/js/translated/stock.js:3383 msgid "Select Stock Items" msgstr "" @@ -14320,18 +14651,6 @@ msgstr "" msgid "Confirm stock adjustment" msgstr "" -#: templates/js/translated/stock.js:1448 -msgid "PASS" -msgstr "" - -#: templates/js/translated/stock.js:1450 -msgid "FAIL" -msgstr "" - -#: templates/js/translated/stock.js:1455 -msgid "NO RESULT" -msgstr "" - #: templates/js/translated/stock.js:1535 msgid "Pass test" msgstr "" @@ -14388,216 +14707,216 @@ msgstr "" msgid "No stock location set" msgstr "" -#: templates/js/translated/stock.js:1927 +#: templates/js/translated/stock.js:1928 msgid "Change stock status" msgstr "" -#: templates/js/translated/stock.js:1936 +#: templates/js/translated/stock.js:1937 msgid "Merge stock" msgstr "" -#: templates/js/translated/stock.js:1985 +#: templates/js/translated/stock.js:1986 msgid "Delete stock" msgstr "" -#: templates/js/translated/stock.js:2038 +#: templates/js/translated/stock.js:2039 msgid "stock items" msgstr "" -#: templates/js/translated/stock.js:2043 +#: templates/js/translated/stock.js:2044 msgid "Scan to location" msgstr "" -#: templates/js/translated/stock.js:2054 +#: templates/js/translated/stock.js:2055 msgid "Stock Actions" msgstr "" -#: templates/js/translated/stock.js:2098 +#: templates/js/translated/stock.js:2099 msgid "Load installed items" msgstr "" -#: templates/js/translated/stock.js:2176 +#: templates/js/translated/stock.js:2177 msgid "Stock item is in production" msgstr "" -#: templates/js/translated/stock.js:2181 +#: templates/js/translated/stock.js:2182 msgid "Stock item assigned to sales order" msgstr "" -#: templates/js/translated/stock.js:2184 +#: templates/js/translated/stock.js:2185 msgid "Stock item assigned to customer" msgstr "" -#: templates/js/translated/stock.js:2187 +#: templates/js/translated/stock.js:2188 msgid "Serialized stock item has been allocated" msgstr "" -#: templates/js/translated/stock.js:2189 +#: templates/js/translated/stock.js:2190 msgid "Stock item has been fully allocated" msgstr "" -#: templates/js/translated/stock.js:2191 +#: templates/js/translated/stock.js:2192 msgid "Stock item has been partially allocated" msgstr "" -#: templates/js/translated/stock.js:2194 +#: templates/js/translated/stock.js:2195 msgid "Stock item has been installed in another item" msgstr "" -#: templates/js/translated/stock.js:2196 +#: templates/js/translated/stock.js:2197 msgid "Stock item has been consumed by a build order" msgstr "" -#: templates/js/translated/stock.js:2200 +#: templates/js/translated/stock.js:2201 msgid "Stock item has expired" msgstr "" -#: templates/js/translated/stock.js:2202 +#: templates/js/translated/stock.js:2203 msgid "Stock item will expire soon" msgstr "" -#: templates/js/translated/stock.js:2207 +#: templates/js/translated/stock.js:2208 msgid "Stock item has been rejected" msgstr "" -#: templates/js/translated/stock.js:2209 +#: templates/js/translated/stock.js:2210 msgid "Stock item is lost" msgstr "" -#: templates/js/translated/stock.js:2211 +#: templates/js/translated/stock.js:2212 msgid "Stock item is destroyed" msgstr "" -#: templates/js/translated/stock.js:2215 +#: templates/js/translated/stock.js:2216 #: templates/js/translated/table_filters.js:357 msgid "Depleted" msgstr "" -#: templates/js/translated/stock.js:2380 +#: templates/js/translated/stock.js:2381 msgid "Supplier part not specified" msgstr "" -#: templates/js/translated/stock.js:2427 +#: templates/js/translated/stock.js:2428 msgid "Stock Value" msgstr "" -#: templates/js/translated/stock.js:2555 +#: templates/js/translated/stock.js:2556 msgid "No stock items matching query" msgstr "" -#: templates/js/translated/stock.js:2658 +#: templates/js/translated/stock.js:2659 msgid "stock locations" msgstr "" -#: templates/js/translated/stock.js:2813 +#: templates/js/translated/stock.js:2814 msgid "Load Sublocations" msgstr "" -#: templates/js/translated/stock.js:2930 +#: templates/js/translated/stock.js:2931 msgid "Details" msgstr "" -#: templates/js/translated/stock.js:2934 +#: templates/js/translated/stock.js:2935 msgid "No changes" msgstr "" -#: templates/js/translated/stock.js:2946 +#: templates/js/translated/stock.js:2947 msgid "Part information unavailable" msgstr "" -#: templates/js/translated/stock.js:2968 +#: templates/js/translated/stock.js:2969 msgid "Location no longer exists" msgstr "" -#: templates/js/translated/stock.js:2985 +#: templates/js/translated/stock.js:2986 msgid "Build order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3000 +#: templates/js/translated/stock.js:3001 msgid "Purchase order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3017 +#: templates/js/translated/stock.js:3018 msgid "Sales Order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3034 +#: templates/js/translated/stock.js:3035 msgid "Return Order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3053 +#: templates/js/translated/stock.js:3054 msgid "Customer no longer exists" msgstr "" -#: templates/js/translated/stock.js:3071 +#: templates/js/translated/stock.js:3072 msgid "Stock item no longer exists" msgstr "" -#: templates/js/translated/stock.js:3089 +#: templates/js/translated/stock.js:3090 msgid "Added" msgstr "" -#: templates/js/translated/stock.js:3097 +#: templates/js/translated/stock.js:3098 msgid "Removed" msgstr "" -#: templates/js/translated/stock.js:3169 +#: templates/js/translated/stock.js:3170 msgid "No installed items" msgstr "" -#: templates/js/translated/stock.js:3223 templates/js/translated/stock.js:3259 +#: templates/js/translated/stock.js:3224 templates/js/translated/stock.js:3260 msgid "Uninstall Stock Item" msgstr "" -#: templates/js/translated/stock.js:3280 +#: templates/js/translated/stock.js:3281 msgid "Select stock item to uninstall" msgstr "" -#: templates/js/translated/stock.js:3301 +#: templates/js/translated/stock.js:3302 msgid "Install another stock item into this item" msgstr "" -#: templates/js/translated/stock.js:3302 +#: templates/js/translated/stock.js:3303 msgid "Stock items can only be installed if they meet the following criteria" msgstr "" -#: templates/js/translated/stock.js:3304 +#: templates/js/translated/stock.js:3305 msgid "The Stock Item links to a Part which is the BOM for this Stock Item" msgstr "" -#: templates/js/translated/stock.js:3305 +#: templates/js/translated/stock.js:3306 msgid "The Stock Item is currently available in stock" msgstr "" -#: templates/js/translated/stock.js:3306 +#: templates/js/translated/stock.js:3307 msgid "The Stock Item is not already installed in another item" msgstr "" -#: templates/js/translated/stock.js:3307 +#: templates/js/translated/stock.js:3308 msgid "The Stock Item is tracked by either a batch code or serial number" msgstr "" -#: templates/js/translated/stock.js:3320 +#: templates/js/translated/stock.js:3321 msgid "Select part to install" msgstr "" -#: templates/js/translated/stock.js:3383 +#: templates/js/translated/stock.js:3384 msgid "Select one or more stock items" msgstr "" -#: templates/js/translated/stock.js:3396 +#: templates/js/translated/stock.js:3397 msgid "Selected stock items" msgstr "" -#: templates/js/translated/stock.js:3400 +#: templates/js/translated/stock.js:3401 msgid "Change Stock Status" msgstr "" -#: templates/js/translated/stock.js:3477 +#: templates/js/translated/stock.js:3478 msgid "This week" msgstr "" -#: templates/js/translated/stock.js:3485 +#: templates/js/translated/stock.js:3486 msgid "This month" msgstr "" @@ -14734,10 +15053,6 @@ msgstr "" msgid "Show items which are in production" msgstr "" -#: templates/js/translated/table_filters.js:372 -msgid "Include Variants" -msgstr "" - #: templates/js/translated/table_filters.js:373 msgid "Include stock items for variant parts" msgstr "" @@ -15012,10 +15327,6 @@ msgstr "" msgid "An error occurred while attempting to login via your social network account." msgstr "" -#: templates/socialaccount/authentication_error.html:13 -msgid "Contact your system administrator for further information." -msgstr "" - #: templates/socialaccount/login.html:13 #, python-format msgid "Connect %(provider)s" @@ -15141,27 +15452,27 @@ msgstr "" msgid "No" msgstr "" -#: users/admin.py:104 +#: users/admin.py:101 msgid "Users" msgstr "" -#: users/admin.py:105 +#: users/admin.py:102 msgid "Select which users are assigned to this group" msgstr "" -#: users/admin.py:249 +#: users/admin.py:246 msgid "The following users are members of multiple groups" msgstr "" -#: users/admin.py:283 +#: users/admin.py:280 msgid "Personal info" msgstr "" -#: users/admin.py:285 +#: users/admin.py:282 msgid "Permissions" msgstr "" -#: users/admin.py:288 +#: users/admin.py:285 msgid "Important dates" msgstr "" @@ -15205,35 +15516,35 @@ msgstr "" msgid "Revoked" msgstr "" -#: users/models.py:379 +#: users/models.py:381 msgid "Permission set" msgstr "" -#: users/models.py:388 +#: users/models.py:390 msgid "Group" msgstr "" -#: users/models.py:392 +#: users/models.py:394 msgid "View" msgstr "" -#: users/models.py:392 +#: users/models.py:394 msgid "Permission to view items" msgstr "" -#: users/models.py:396 +#: users/models.py:398 msgid "Permission to add items" msgstr "" -#: users/models.py:400 +#: users/models.py:402 msgid "Change" msgstr "" -#: users/models.py:402 +#: users/models.py:404 msgid "Permissions to edit items" msgstr "" -#: users/models.py:408 +#: users/models.py:410 msgid "Permission to delete items" msgstr "" diff --git a/src/backend/InvenTree/locale/sv/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/sv/LC_MESSAGES/django.po index 468fcbfef9..23162394af 100644 --- a/src/backend/InvenTree/locale/sv/LC_MESSAGES/django.po +++ b/src/backend/InvenTree/locale/sv/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-08-20 01:22+0000\n" -"PO-Revision-Date: 2024-08-20 19:51\n" +"POT-Creation-Date: 2024-11-04 03:11+0000\n" +"PO-Revision-Date: 2024-11-04 03:14\n" "Last-Translator: \n" "Language-Team: Swedish\n" "Language: sv_SE\n" @@ -14,81 +14,89 @@ msgstr "" "X-Crowdin-Project: inventree\n" "X-Crowdin-Project-ID: 452300\n" "X-Crowdin-Language: sv-SE\n" -"X-Crowdin-File: /[inventree.InvenTree] l10/src/backend/InvenTree/locale/en/LC_MESSAGES/django.po\n" -"X-Crowdin-File-ID: 216\n" +"X-Crowdin-File: /src/backend/InvenTree/locale/en/LC_MESSAGES/django.po\n" +"X-Crowdin-File-ID: 250\n" -#: InvenTree/api.py:269 +#: InvenTree/api.py:270 msgid "API endpoint not found" msgstr "API-slutpunkt hittades inte" -#: InvenTree/api.py:502 +#: InvenTree/api.py:387 +msgid "Invalid items list provided" +msgstr "" + +#: InvenTree/api.py:396 +msgid "Invalid filters provided" +msgstr "" + +#: InvenTree/api.py:401 +msgid "No items found to delete" +msgstr "" + +#: InvenTree/api.py:515 msgid "User does not have permission to view this model" msgstr "Användaren har inte behörighet att se denna modell" -#: InvenTree/conversion.py:160 +#: InvenTree/conversion.py:161 #, python-brace-format msgid "Invalid unit provided ({unit})" msgstr "Ogiltig enhet angiven ({unit})" -#: InvenTree/conversion.py:177 +#: InvenTree/conversion.py:178 msgid "No value provided" msgstr "Inget värde angivet" -#: InvenTree/conversion.py:204 +#: InvenTree/conversion.py:205 #, python-brace-format msgid "Could not convert {original} to {unit}" msgstr "Kunde inte konvertera {original} till {unit}" -#: InvenTree/conversion.py:206 -msgid "Invalid quantity supplied" +#: InvenTree/conversion.py:207 InvenTree/conversion.py:221 +#: InvenTree/helpers.py:505 order/models.py:589 order/models.py:832 +msgid "Invalid quantity provided" msgstr "Ogiltigt antal angivet" -#: InvenTree/conversion.py:220 -#, python-brace-format -msgid "Invalid quantity supplied ({exc})" -msgstr "Ogiltigt antal angivet ({exc})" - -#: InvenTree/exceptions.py:108 +#: InvenTree/exceptions.py:104 msgid "Error details can be found in the admin panel" msgstr "Information om felet finns under Error i adminpanelen" -#: InvenTree/fields.py:136 +#: InvenTree/fields.py:135 msgid "Enter date" msgstr "Ange datum" -#: InvenTree/fields.py:205 InvenTree/models.py:929 build/serializers.py:468 -#: build/serializers.py:546 build/templates/build/sidebar.html:29 -#: company/models.py:836 +#: InvenTree/fields.py:204 InvenTree/models.py:928 build/serializers.py:512 +#: build/serializers.py:590 build/templates/build/sidebar.html:29 +#: company/models.py:833 #: company/templates/company/manufacturer_part_sidebar.html:11 #: company/templates/company/sidebar.html:37 -#: company/templates/company/supplier_part_sidebar.html:11 order/models.py:1380 +#: company/templates/company/supplier_part_sidebar.html:11 order/models.py:1397 #: order/templates/order/po_sidebar.html:11 #: order/templates/order/return_order_sidebar.html:9 #: order/templates/order/so_sidebar.html:17 part/admin.py:59 -#: part/models.py:3297 part/templates/part/part_sidebar.html:65 +#: part/models.py:3348 part/templates/part/part_sidebar.html:65 #: report/templates/report/inventree_build_order_report.html:172 -#: stock/admin.py:230 stock/models.py:2375 stock/models.py:2563 -#: stock/serializers.py:698 stock/serializers.py:856 stock/serializers.py:982 -#: stock/serializers.py:1032 stock/serializers.py:1343 -#: stock/serializers.py:1432 stock/serializers.py:1597 +#: stock/admin.py:231 stock/models.py:2494 stock/models.py:2679 +#: stock/serializers.py:725 stock/serializers.py:887 stock/serializers.py:1013 +#: stock/serializers.py:1063 stock/serializers.py:1374 +#: stock/serializers.py:1463 stock/serializers.py:1628 #: stock/templates/stock/stock_sidebar.html:25 #: templates/js/translated/barcode.js:143 templates/js/translated/bom.js:1265 -#: templates/js/translated/company.js:1684 templates/js/translated/order.js:372 +#: templates/js/translated/company.js:1685 templates/js/translated/order.js:372 #: templates/js/translated/part.js:1087 -#: templates/js/translated/purchase_order.js:2270 +#: templates/js/translated/purchase_order.js:2254 #: templates/js/translated/return_order.js:774 -#: templates/js/translated/sales_order.js:1103 -#: templates/js/translated/sales_order.js:2018 -#: templates/js/translated/stock.js:1621 templates/js/translated/stock.js:2513 +#: templates/js/translated/sales_order.js:1069 +#: templates/js/translated/sales_order.js:1999 +#: templates/js/translated/stock.js:1621 templates/js/translated/stock.js:2514 msgid "Notes" msgstr "Anteckningar" -#: InvenTree/format.py:164 +#: InvenTree/format.py:162 #, python-brace-format msgid "Value '{name}' does not appear in pattern format" msgstr "Värdet '{name}' visas inte i mönsterformat" -#: InvenTree/format.py:175 +#: InvenTree/format.py:173 msgid "Provided value does not match required pattern: " msgstr "Det angivna värdet matchar inte det obligatoriska mönstret: " @@ -132,397 +140,409 @@ msgstr "MFA Registrering är inaktiverad." msgid "The provided primary email address is not valid." msgstr "Den angivna primära e-postadressen är inte giltig." -#: InvenTree/forms.py:274 +#: InvenTree/forms.py:273 msgid "The provided email domain is not approved." msgstr "Den angivna e-postdomänen är inte godkänd." -#: InvenTree/forms.py:403 +#: InvenTree/forms.py:402 msgid "Registration is disabled." msgstr "Registrering är stängd." -#: InvenTree/helpers.py:491 order/models.py:567 order/models.py:810 -msgid "Invalid quantity provided" -msgstr "Ogiltigt antal angivet" +#: InvenTree/helpers.py:509 +msgid "Cannot serialize more than 1000 items at once" +msgstr "" -#: InvenTree/helpers.py:499 +#: InvenTree/helpers.py:515 msgid "Empty serial number string" msgstr "Tom serienummersträng" -#: InvenTree/helpers.py:528 +#: InvenTree/helpers.py:544 msgid "Duplicate serial" msgstr "Serienummret finns redan" -#: InvenTree/helpers.py:560 InvenTree/helpers.py:603 +#: InvenTree/helpers.py:576 InvenTree/helpers.py:619 InvenTree/helpers.py:637 +#: InvenTree/helpers.py:644 InvenTree/helpers.py:663 #, python-brace-format -msgid "Invalid group range: {group}" -msgstr "Ogiltigt gruppintervall: {group}" +msgid "Invalid group: {group}" +msgstr "Ogiltig grupp: {group}" -#: InvenTree/helpers.py:591 +#: InvenTree/helpers.py:607 #, python-brace-format msgid "Group range {group} exceeds allowed quantity ({expected_quantity})" msgstr "Gruppintervall {group} överstiger tillåtet antal ({expected_quantity})" -#: InvenTree/helpers.py:621 InvenTree/helpers.py:628 InvenTree/helpers.py:647 -#, python-brace-format -msgid "Invalid group sequence: {group}" -msgstr "Ogiltig gruppsekvens: {group}" - -#: InvenTree/helpers.py:657 +#: InvenTree/helpers.py:673 msgid "No serial numbers found" msgstr "Inga serienummer hittades" -#: InvenTree/helpers.py:662 +#: InvenTree/helpers.py:678 msgid "Number of unique serial numbers ({len(serials)}) must match quantity ({expected_quantity})" msgstr "Antal unika serienummer ({len(serials)}) måste matcha antal ({expected_quantity})" -#: InvenTree/helpers.py:780 +#: InvenTree/helpers.py:796 msgid "Remove HTML tags from this value" msgstr "Ta bort HTML-taggar från detta värde" -#: InvenTree/helpers_model.py:133 +#: InvenTree/helpers.py:881 +msgid "Data contains prohibited markdown content" +msgstr "" + +#: InvenTree/helpers_model.py:130 msgid "Connection error" msgstr "Anslutningsfel" -#: InvenTree/helpers_model.py:138 InvenTree/helpers_model.py:145 +#: InvenTree/helpers_model.py:135 InvenTree/helpers_model.py:142 msgid "Server responded with invalid status code" msgstr "Servern svarade med ogiltig statuskod" -#: InvenTree/helpers_model.py:141 +#: InvenTree/helpers_model.py:138 msgid "Exception occurred" msgstr "Undantag inträffade" -#: InvenTree/helpers_model.py:151 +#: InvenTree/helpers_model.py:148 msgid "Server responded with invalid Content-Length value" msgstr "Servern svarade med ogiltigt innehållslängdsvärde" -#: InvenTree/helpers_model.py:154 +#: InvenTree/helpers_model.py:151 msgid "Image size is too large" msgstr "Bilden är för stor" -#: InvenTree/helpers_model.py:166 +#: InvenTree/helpers_model.py:163 msgid "Image download exceeded maximum size" msgstr "Nedladdning av bilder överskred maximal storlek" -#: InvenTree/helpers_model.py:171 +#: InvenTree/helpers_model.py:168 msgid "Remote server returned empty response" msgstr "Fjärrservern returnerade tomt svar" -#: InvenTree/helpers_model.py:179 +#: InvenTree/helpers_model.py:176 msgid "Supplied URL is not a valid image file" msgstr "Angiven URL är inte en giltig bildfil" -#: InvenTree/locales.py:18 +#: InvenTree/locales.py:20 msgid "Arabic" msgstr "Arabiska" -#: InvenTree/locales.py:19 +#: InvenTree/locales.py:21 msgid "Bulgarian" msgstr "Bulgariska" -#: InvenTree/locales.py:20 +#: InvenTree/locales.py:22 msgid "Czech" msgstr "Tjeckiska" -#: InvenTree/locales.py:21 +#: InvenTree/locales.py:23 msgid "Danish" msgstr "Danska" -#: InvenTree/locales.py:22 +#: InvenTree/locales.py:24 msgid "German" msgstr "Tyska" -#: InvenTree/locales.py:23 +#: InvenTree/locales.py:25 msgid "Greek" msgstr "Grekiska" -#: InvenTree/locales.py:24 +#: InvenTree/locales.py:26 msgid "English" msgstr "Engelska" -#: InvenTree/locales.py:25 +#: InvenTree/locales.py:27 msgid "Spanish" msgstr "Spanska" -#: InvenTree/locales.py:26 +#: InvenTree/locales.py:28 msgid "Spanish (Mexican)" msgstr "Spanska (Mexikanska)" -#: InvenTree/locales.py:27 +#: InvenTree/locales.py:29 msgid "Estonian" msgstr "Estniska" -#: InvenTree/locales.py:28 +#: InvenTree/locales.py:30 msgid "Farsi / Persian" msgstr "Farsi / Persiska" -#: InvenTree/locales.py:29 +#: InvenTree/locales.py:31 msgid "Finnish" msgstr "Finska" -#: InvenTree/locales.py:30 +#: InvenTree/locales.py:32 msgid "French" msgstr "Franska" -#: InvenTree/locales.py:31 +#: InvenTree/locales.py:33 msgid "Hebrew" msgstr "Hebreiska" -#: InvenTree/locales.py:32 +#: InvenTree/locales.py:34 msgid "Hindi" msgstr "Hindi" -#: InvenTree/locales.py:33 +#: InvenTree/locales.py:35 msgid "Hungarian" msgstr "Ungerska" -#: InvenTree/locales.py:34 +#: InvenTree/locales.py:36 msgid "Italian" msgstr "Italienska" -#: InvenTree/locales.py:35 +#: InvenTree/locales.py:37 msgid "Japanese" msgstr "Japanska" -#: InvenTree/locales.py:36 +#: InvenTree/locales.py:38 msgid "Korean" msgstr "Koreanska" -#: InvenTree/locales.py:37 +#: InvenTree/locales.py:39 +msgid "Lithuanian" +msgstr "Litauiska" + +#: InvenTree/locales.py:40 msgid "Latvian" msgstr "Lettiska" -#: InvenTree/locales.py:38 +#: InvenTree/locales.py:41 msgid "Dutch" msgstr "Nederländska" -#: InvenTree/locales.py:39 +#: InvenTree/locales.py:42 msgid "Norwegian" msgstr "Norska" -#: InvenTree/locales.py:40 +#: InvenTree/locales.py:43 msgid "Polish" msgstr "Polska" -#: InvenTree/locales.py:41 +#: InvenTree/locales.py:44 msgid "Portuguese" msgstr "Portugisiska" -#: InvenTree/locales.py:42 +#: InvenTree/locales.py:45 msgid "Portuguese (Brazilian)" msgstr "Portugisiska (brasiliansk)" -#: InvenTree/locales.py:43 +#: InvenTree/locales.py:46 msgid "Romanian" msgstr "Rumänska" -#: InvenTree/locales.py:44 +#: InvenTree/locales.py:47 msgid "Russian" msgstr "Ryska" -#: InvenTree/locales.py:45 +#: InvenTree/locales.py:48 msgid "Slovak" msgstr "Slovakiska" -#: InvenTree/locales.py:46 +#: InvenTree/locales.py:49 msgid "Slovenian" msgstr "Slovenska" -#: InvenTree/locales.py:47 +#: InvenTree/locales.py:50 msgid "Serbian" msgstr "Serbiska" -#: InvenTree/locales.py:48 +#: InvenTree/locales.py:51 msgid "Swedish" msgstr "Svenska" -#: InvenTree/locales.py:49 +#: InvenTree/locales.py:52 msgid "Thai" msgstr "Thailändska" -#: InvenTree/locales.py:50 +#: InvenTree/locales.py:53 msgid "Turkish" msgstr "Turkiska" -#: InvenTree/locales.py:51 +#: InvenTree/locales.py:54 msgid "Ukrainian" msgstr "Ukrainska" -#: InvenTree/locales.py:52 +#: InvenTree/locales.py:55 msgid "Vietnamese" msgstr "Vietnamesiska" -#: InvenTree/locales.py:53 +#: InvenTree/locales.py:56 msgid "Chinese (Simplified)" msgstr "Kinesiska (Förenklad)" -#: InvenTree/locales.py:54 +#: InvenTree/locales.py:57 msgid "Chinese (Traditional)" msgstr "Kinesiska (Traditionell)" #: InvenTree/magic_login.py:28 -#, python-brace-format -msgid "[{site_name}] Log in to the app" -msgstr "[{site_name}] Logga in på appen" +msgid "Log in to the app" +msgstr "" -#: InvenTree/magic_login.py:38 InvenTree/serializers.py:415 -#: company/models.py:136 company/templates/company/company_base.html:138 +#: InvenTree/magic_login.py:38 InvenTree/serializers.py:416 +#: company/models.py:133 company/templates/company/company_base.html:138 #: templates/InvenTree/settings/user.html:49 -#: templates/js/translated/company.js:677 +#: templates/js/translated/company.js:678 msgid "Email" msgstr "E-postadress" -#: InvenTree/models.py:103 +#: InvenTree/models.py:105 msgid "Error running plugin validation" msgstr "Fel vid validering av plugin" -#: InvenTree/models.py:172 +#: InvenTree/models.py:174 msgid "Metadata must be a python dict object" msgstr "Metadata måste vara ett python dict objekt" -#: InvenTree/models.py:178 +#: InvenTree/models.py:180 msgid "Plugin Metadata" msgstr "Metadata för plugin" -#: InvenTree/models.py:179 +#: InvenTree/models.py:181 msgid "JSON metadata field, for use by external plugins" msgstr "JSON metadata fält, för användning av externa plugins" -#: InvenTree/models.py:409 +#: InvenTree/models.py:408 msgid "Improperly formatted pattern" msgstr "Felaktigt formaterat mönster" -#: InvenTree/models.py:416 +#: InvenTree/models.py:415 msgid "Unknown format key specified" msgstr "Okänd formatnyckel angiven" -#: InvenTree/models.py:422 +#: InvenTree/models.py:421 msgid "Missing required format key" msgstr "Obligatorisk formatnyckel saknas" -#: InvenTree/models.py:433 +#: InvenTree/models.py:432 msgid "Reference field cannot be empty" msgstr "Textfältet kan inte lämnas tomt" -#: InvenTree/models.py:441 +#: InvenTree/models.py:440 msgid "Reference must match required pattern" msgstr "Referensen måste matcha obligatoriskt mönster" -#: InvenTree/models.py:472 +#: InvenTree/models.py:471 msgid "Reference number is too large" msgstr "Referensnumret är för stort" -#: InvenTree/models.py:723 +#: InvenTree/models.py:722 msgid "Duplicate names cannot exist under the same parent" msgstr "" -#: InvenTree/models.py:740 +#: InvenTree/models.py:739 msgid "Invalid choice" msgstr "Ogiltigt val" -#: InvenTree/models.py:770 common/models.py:2702 common/models.py:3132 -#: common/serializers.py:412 company/models.py:593 machine/models.py:24 -#: part/models.py:983 part/models.py:3764 plugin/models.py:51 -#: report/models.py:149 stock/models.py:77 +#: InvenTree/models.py:769 common/models.py:2766 common/models.py:3193 +#: common/models.py:3413 common/serializers.py:460 company/models.py:590 +#: machine/models.py:24 part/models.py:1044 part/models.py:3815 +#: plugin/models.py:51 report/models.py:149 stock/models.py:83 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/notifications.html:17 #: templates/InvenTree/settings/plugin.html:83 #: templates/InvenTree/settings/plugin_settings.html:22 #: templates/InvenTree/settings/settings_staff_js.html:67 #: templates/InvenTree/settings/settings_staff_js.html:454 -#: templates/js/translated/company.js:676 -#: templates/js/translated/company.js:724 -#: templates/js/translated/company.js:913 -#: templates/js/translated/company.js:1165 -#: templates/js/translated/company.js:1413 templates/js/translated/part.js:1193 +#: templates/js/translated/company.js:677 +#: templates/js/translated/company.js:725 +#: templates/js/translated/company.js:914 +#: templates/js/translated/company.js:1166 +#: templates/js/translated/company.js:1414 templates/js/translated/part.js:1193 #: templates/js/translated/part.js:1481 templates/js/translated/part.js:1617 -#: templates/js/translated/part.js:2768 templates/js/translated/stock.js:2801 +#: templates/js/translated/part.js:2768 templates/js/translated/stock.js:2802 msgid "Name" msgstr "Namn" -#: InvenTree/models.py:776 build/models.py:250 -#: build/templates/build/detail.html:24 common/models.py:156 -#: company/models.py:521 company/models.py:827 +#: InvenTree/models.py:775 build/models.py:251 +#: build/templates/build/detail.html:24 common/models.py:159 +#: company/models.py:518 company/models.py:824 #: company/templates/company/company_base.html:77 #: company/templates/company/manufacturer_part.html:75 -#: company/templates/company/supplier_part.html:107 order/models.py:288 -#: order/models.py:1413 part/admin.py:305 part/admin.py:411 part/models.py:1006 -#: part/models.py:3779 part/templates/part/category.html:79 -#: part/templates/part/part_base.html:170 +#: company/templates/company/supplier_part.html:108 order/models.py:295 +#: order/models.py:1430 part/admin.py:305 part/admin.py:411 part/models.py:1067 +#: part/models.py:3830 part/templates/part/category.html:79 +#: part/templates/part/part_base.html:171 #: part/templates/part/part_scheduling.html:12 report/models.py:155 -#: report/models.py:509 report/models.py:535 +#: report/models.py:517 report/models.py:543 #: report/templates/report/inventree_build_order_report.html:117 -#: stock/admin.py:54 stock/models.py:83 stock/templates/stock/location.html:122 +#: stock/admin.py:54 stock/models.py:89 stock/templates/stock/location.html:123 #: templates/InvenTree/settings/notifications.html:19 #: templates/InvenTree/settings/plugin_settings.html:27 #: templates/InvenTree/settings/settings_staff_js.html:170 #: templates/InvenTree/settings/settings_staff_js.html:459 #: templates/js/translated/bom.js:633 templates/js/translated/bom.js:963 -#: templates/js/translated/build.js:2311 templates/js/translated/company.js:519 -#: templates/js/translated/company.js:1330 -#: templates/js/translated/company.js:1641 templates/js/translated/index.js:119 +#: templates/js/translated/build.js:2314 templates/js/translated/company.js:520 +#: templates/js/translated/company.js:1331 +#: templates/js/translated/company.js:1642 templates/js/translated/index.js:119 #: templates/js/translated/order.js:323 templates/js/translated/part.js:1245 #: templates/js/translated/part.js:1490 templates/js/translated/part.js:1628 #: templates/js/translated/part.js:1965 templates/js/translated/part.js:2361 #: templates/js/translated/part.js:2803 templates/js/translated/part.js:2915 #: templates/js/translated/plugin.js:80 -#: templates/js/translated/purchase_order.js:1776 -#: templates/js/translated/purchase_order.js:1919 -#: templates/js/translated/purchase_order.js:2092 +#: templates/js/translated/purchase_order.js:1760 +#: templates/js/translated/purchase_order.js:1903 +#: templates/js/translated/purchase_order.js:2076 #: templates/js/translated/return_order.js:313 -#: templates/js/translated/sales_order.js:838 -#: templates/js/translated/sales_order.js:1848 -#: templates/js/translated/stock.js:1600 templates/js/translated/stock.js:2143 -#: templates/js/translated/stock.js:2832 templates/js/translated/stock.js:2915 +#: templates/js/translated/sales_order.js:797 +#: templates/js/translated/sales_order.js:1829 +#: templates/js/translated/stock.js:1600 templates/js/translated/stock.js:2144 +#: templates/js/translated/stock.js:2833 templates/js/translated/stock.js:2916 msgid "Description" msgstr "Beskrivning" -#: InvenTree/models.py:777 stock/models.py:84 +#: InvenTree/models.py:776 stock/models.py:90 msgid "Description (optional)" msgstr "Beskrivning (valfritt)" -#: InvenTree/models.py:792 templates/js/translated/part.js:2812 -#: templates/js/translated/stock.js:2841 +#: InvenTree/models.py:791 common/models.py:3546 +#: templates/js/translated/part.js:2812 templates/js/translated/stock.js:2842 msgid "Path" msgstr "Sökväg" -#: InvenTree/models.py:929 +#: InvenTree/models.py:928 msgid "Markdown notes (optional)" msgstr "Markdown anteckningar (valfritt)" -#: InvenTree/models.py:960 +#: InvenTree/models.py:959 msgid "Barcode Data" msgstr "Streckkodsdata" -#: InvenTree/models.py:961 +#: InvenTree/models.py:960 msgid "Third party barcode data" msgstr "Tredje parts streckkodsdata" -#: InvenTree/models.py:967 +#: InvenTree/models.py:966 msgid "Barcode Hash" msgstr "Streckkodsdata" -#: InvenTree/models.py:968 +#: InvenTree/models.py:967 msgid "Unique hash of barcode data" msgstr "Unik hash med streckkodsdata" -#: InvenTree/models.py:1035 +#: InvenTree/models.py:1034 msgid "Existing barcode found" msgstr "Befintlig streckkod hittades" -#: InvenTree/models.py:1078 +#: InvenTree/models.py:1112 +msgid "Task Failure" +msgstr "" + +#: InvenTree/models.py:1114 +#, python-brace-format +msgid "Background worker task '{instance.func}' failed after {n} attempts" +msgstr "" + +#: InvenTree/models.py:1142 msgid "Server Error" msgstr "Serverfel" -#: InvenTree/models.py:1079 +#: InvenTree/models.py:1143 msgid "An error has been logged by the server." msgstr "Ett fel har loggats av servern." -#: InvenTree/serializers.py:63 part/models.py:4387 +#: InvenTree/serializers.py:63 part/models.py:4444 msgid "Must be a valid number" msgstr "Måste vara ett giltigt nummer" -#: InvenTree/serializers.py:100 company/models.py:186 -#: company/templates/company/company_base.html:112 part/models.py:3115 +#: InvenTree/serializers.py:100 company/models.py:183 +#: company/templates/company/company_base.html:112 part/models.py:3166 #: templates/InvenTree/settings/settings_staff_js.html:44 #: templates/currency_data.html:5 msgid "Currency" @@ -532,15 +552,15 @@ msgstr "Valuta" msgid "Select currency from available options" msgstr "Välj valuta från tillgängliga alternativ" -#: InvenTree/serializers.py:407 templates/InvenTree/settings/user.html:33 +#: InvenTree/serializers.py:405 templates/InvenTree/settings/user.html:33 msgid "Username" msgstr "Användarnamn" -#: InvenTree/serializers.py:409 templates/InvenTree/settings/user.html:37 +#: InvenTree/serializers.py:408 templates/InvenTree/settings/user.html:37 msgid "First Name" msgstr "Förnamn" -#: InvenTree/serializers.py:409 +#: InvenTree/serializers.py:408 msgid "First name of the user" msgstr "Förnamn på användaren" @@ -552,30 +572,30 @@ msgstr "Efternamn" msgid "Last name of the user" msgstr "Efternamn på användaren" -#: InvenTree/serializers.py:415 +#: InvenTree/serializers.py:416 msgid "Email address of the user" msgstr "Avsändarens E-postadress" -#: InvenTree/serializers.py:439 +#: InvenTree/serializers.py:441 msgid "Staff" msgstr "Personal" -#: InvenTree/serializers.py:439 +#: InvenTree/serializers.py:441 msgid "Does this user have staff permissions" msgstr "Har den här användaren behörighet för personal" -#: InvenTree/serializers.py:442 +#: InvenTree/serializers.py:445 msgid "Superuser" msgstr "Superanvändare" -#: InvenTree/serializers.py:442 +#: InvenTree/serializers.py:445 msgid "Is this user a superuser" msgstr "Är den här användaren en superanvändare" -#: InvenTree/serializers.py:445 common/models.py:2707 company/models.py:163 -#: company/models.py:801 machine/models.py:39 part/admin.py:88 -#: part/models.py:1189 plugin/models.py:66 -#: templates/js/translated/company.js:523 +#: InvenTree/serializers.py:449 common/models.py:2771 company/models.py:160 +#: company/models.py:798 machine/models.py:39 part/admin.py:88 +#: part/models.py:1250 plugin/models.py:66 +#: templates/js/translated/company.js:524 #: templates/js/translated/table_filters.js:134 #: templates/js/translated/table_filters.js:226 #: templates/js/translated/table_filters.js:513 @@ -585,230 +605,229 @@ msgstr "Är den här användaren en superanvändare" msgid "Active" msgstr "Aktiv" -#: InvenTree/serializers.py:445 +#: InvenTree/serializers.py:449 msgid "Is this user account active" msgstr "Är detta användarkonto aktivt" -#: InvenTree/serializers.py:463 +#: InvenTree/serializers.py:467 msgid "You do not have permission to change this user role." msgstr "Du har inte behörighet att ändra denna användarrollen." -#: InvenTree/serializers.py:475 +#: InvenTree/serializers.py:503 msgid "Only superusers can create new users" msgstr "Endast superanvändare kan skapa nya användare" -#: InvenTree/serializers.py:494 +#: InvenTree/serializers.py:523 msgid "Your account has been created." msgstr "Ditt konto har skapats." -#: InvenTree/serializers.py:496 +#: InvenTree/serializers.py:525 msgid "Please use the password reset function to login" msgstr "Använd funktionen för lösenordsåterställning för att logga in" -#: InvenTree/serializers.py:503 +#: InvenTree/serializers.py:531 msgid "Welcome to InvenTree" msgstr "Välkommen till InvenTree" -#: InvenTree/serializers.py:561 +#: InvenTree/serializers.py:594 msgid "Invalid value" msgstr "Ogiltigt värde" -#: InvenTree/serializers.py:581 importer/models.py:63 +#: InvenTree/serializers.py:614 importer/models.py:64 msgid "Data File" msgstr "Datafil" -#: InvenTree/serializers.py:582 +#: InvenTree/serializers.py:615 msgid "Select data file for upload" msgstr "Välj fil för uppladdning" -#: InvenTree/serializers.py:599 -msgid "Unsupported file type" -msgstr "Filtypen stöds inte" +#: InvenTree/serializers.py:632 common/files.py:63 +msgid "Unsupported file format" +msgstr "" -#: InvenTree/serializers.py:605 +#: InvenTree/serializers.py:638 msgid "File is too large" msgstr "Filen är för stor" -#: InvenTree/serializers.py:626 +#: InvenTree/serializers.py:659 msgid "No columns found in file" msgstr "Inga kolumner hittades i filen" -#: InvenTree/serializers.py:629 +#: InvenTree/serializers.py:662 msgid "No data rows found in file" msgstr "Inga rader hittades i filen" -#: InvenTree/serializers.py:742 +#: InvenTree/serializers.py:774 msgid "No data rows provided" msgstr "Inga rader angivna" -#: InvenTree/serializers.py:745 +#: InvenTree/serializers.py:777 msgid "No data columns supplied" msgstr "Inga datakolumner har angetts" -#: InvenTree/serializers.py:812 +#: InvenTree/serializers.py:843 #, python-brace-format msgid "Missing required column: '{name}'" msgstr "Saknar obligatorisk kolumn: '{name}'" -#: InvenTree/serializers.py:821 +#: InvenTree/serializers.py:852 #, python-brace-format msgid "Duplicate column: '{col}'" msgstr "Duplicerad kolumn: '{col}'" -#: InvenTree/serializers.py:861 +#: InvenTree/serializers.py:891 msgid "Remote Image" msgstr "Fjärransluten bild" -#: InvenTree/serializers.py:862 +#: InvenTree/serializers.py:892 msgid "URL of remote image file" msgstr "URL för fjärrbildsfil" -#: InvenTree/serializers.py:880 +#: InvenTree/serializers.py:910 msgid "Downloading images from remote URL is not enabled" msgstr "Nedladdning av bilder från fjärr-URL är inte aktiverad" -#: InvenTree/status.py:66 part/serializers.py:1246 -msgid "Background worker check failed" -msgstr "Kontroll av bakgrundsarbetare misslyckades" - -#: InvenTree/status.py:70 -msgid "Email backend not configured" -msgstr "Backend för e-post är inte konfigurerad" - -#: InvenTree/status.py:73 -msgid "InvenTree system health checks failed" -msgstr "InvenTree systemhälsokontroll misslyckades" +#: InvenTree/serializers.py:917 +msgid "Failed to download image from remote URL" +msgstr "" #: InvenTree/templatetags/inventree_extras.py:184 msgid "Unknown database" msgstr "Okänd databas" -#: InvenTree/validators.py:32 InvenTree/validators.py:34 +#: InvenTree/validators.py:32 msgid "Invalid physical unit" msgstr "Ogiltig fysisk enhet" -#: InvenTree/validators.py:40 +#: InvenTree/validators.py:38 msgid "Not a valid currency code" msgstr "Inte en giltig valutakod" -#: InvenTree/validators.py:118 InvenTree/validators.py:134 +#: InvenTree/validators.py:115 InvenTree/validators.py:131 msgid "Overage value must not be negative" msgstr "Överskott värde får inte vara negativt" -#: InvenTree/validators.py:136 +#: InvenTree/validators.py:133 msgid "Overage must not exceed 100%" msgstr "Överskott får inte överstiga 100%" -#: InvenTree/validators.py:142 +#: InvenTree/validators.py:139 msgid "Invalid value for overage" msgstr "Ogiltigt värde för överskott" -#: InvenTree/views.py:400 templates/InvenTree/settings/user.html:23 +#: InvenTree/views.py:399 templates/InvenTree/settings/user.html:23 msgid "Edit User Information" msgstr "Redigera användarinformation" -#: InvenTree/views.py:412 templates/InvenTree/settings/user.html:20 +#: InvenTree/views.py:411 templates/InvenTree/settings/user.html:20 msgid "Set Password" msgstr "Ställ in lösenord" -#: InvenTree/views.py:434 +#: InvenTree/views.py:433 msgid "Password fields must match" msgstr "Lösenorden måste matcha" -#: InvenTree/views.py:442 +#: InvenTree/views.py:441 msgid "Wrong password provided" msgstr "Felaktigt lösenord angivet" -#: InvenTree/views.py:650 templates/navbar.html:160 +#: InvenTree/views.py:645 templates/navbar.html:160 msgid "System Information" msgstr "Systeminformation" -#: InvenTree/views.py:657 templates/navbar.html:171 +#: InvenTree/views.py:652 templates/navbar.html:171 msgid "About InvenTree" msgstr "Om InvenTree" -#: build/api.py:51 part/api.py:156 stock/api.py:343 -msgid "Cascade" -msgstr "" - -#: build/api.py:64 build/models.py:261 -#: build/templates/build/build_base.html:191 +#: build/api.py:54 build/models.py:262 +#: build/templates/build/build_base.html:192 #: build/templates/build/detail.html:87 msgid "Parent Build" -msgstr "Överordnat Bygge" +msgstr "Föregående tillverkning" -#: build/api.py:89 order/api.py:92 templates/js/translated/table_filters.js:101 +#: build/api.py:58 build/api.py:625 order/api.py:396 order/api.py:611 +#: order/api.py:990 order/api.py:1187 +#: templates/js/translated/table_filters.js:372 +msgid "Include Variants" +msgstr "" + +#: build/api.py:93 +msgid "Ancestor Build" +msgstr "" + +#: build/api.py:112 order/api.py:90 +#: templates/js/translated/table_filters.js:101 #: templates/js/translated/table_filters.js:549 #: templates/js/translated/table_filters.js:633 #: templates/js/translated/table_filters.js:674 msgid "Assigned to me" msgstr "" -#: build/api.py:106 build/templates/build/build_base.html:205 +#: build/api.py:129 build/templates/build/build_base.html:206 #: build/templates/build/detail.html:115 #: report/templates/report/inventree_build_order_report.html:152 #: templates/js/translated/table_filters.js:552 msgid "Issued By" msgstr "Utfärdad av" -#: build/api.py:125 +#: build/api.py:148 msgid "Assigned To" msgstr "" -#: build/api.py:301 +#: build/api.py:310 msgid "Build must be cancelled before it can be deleted" -msgstr "Byggnationen måste avbrytas innan den kan tas bort" +msgstr "Tillverkningen måste avbrytas innan den kan tas bort" -#: build/api.py:345 build/serializers.py:1288 part/models.py:4265 +#: build/api.py:354 build/serializers.py:1342 part/models.py:4322 #: templates/js/translated/bom.js:997 templates/js/translated/bom.js:1037 -#: templates/js/translated/build.js:2702 +#: templates/js/translated/build.js:2711 #: templates/js/translated/table_filters.js:197 #: templates/js/translated/table_filters.js:586 msgid "Consumable" msgstr "" -#: build/api.py:346 build/serializers.py:1289 part/models.py:4259 +#: build/api.py:355 build/serializers.py:1343 part/models.py:4316 #: part/templates/part/upload_bom.html:58 templates/js/translated/bom.js:1001 -#: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2693 +#: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2702 #: templates/js/translated/table_filters.js:193 #: templates/js/translated/table_filters.js:222 #: templates/js/translated/table_filters.js:590 msgid "Optional" msgstr "Valfri" -#: build/api.py:347 common/models.py:1489 part/admin.py:91 part/admin.py:428 -#: part/models.py:1154 part/serializers.py:1575 +#: build/api.py:356 common/models.py:1558 part/admin.py:91 part/admin.py:428 +#: part/models.py:1215 part/serializers.py:1633 #: templates/js/translated/bom.js:1639 #: templates/js/translated/table_filters.js:337 #: templates/js/translated/table_filters.js:729 msgid "Assembly" msgstr "" -#: build/api.py:348 templates/js/translated/table_filters.js:415 +#: build/api.py:357 templates/js/translated/table_filters.js:415 #: templates/js/translated/table_filters.js:582 msgid "Tracked" msgstr "Spårad" -#: build/api.py:349 build/serializers.py:1290 part/models.py:1172 +#: build/api.py:358 build/serializers.py:1344 part/models.py:1233 #: templates/js/translated/table_filters.js:146 #: templates/js/translated/table_filters.js:779 msgid "Testable" msgstr "Testbar" -#: build/api.py:351 part/admin.py:144 templates/js/translated/build.js:1917 -#: templates/js/translated/build.js:2820 -#: templates/js/translated/sales_order.js:1965 +#: build/api.py:360 order/api.py:779 part/admin.py:144 +#: templates/js/translated/build.js:1920 templates/js/translated/build.js:2838 +#: templates/js/translated/sales_order.js:1946 #: templates/js/translated/table_filters.js:574 msgid "Allocated" msgstr "Allokerad" -#: build/api.py:359 company/models.py:891 company/serializers.py:395 -#: company/templates/company/supplier_part.html:114 +#: build/api.py:368 company/models.py:888 company/serializers.py:399 +#: company/templates/company/supplier_part.html:115 #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:17 -#: templates/js/translated/bom.js:1162 templates/js/translated/build.js:2752 +#: templates/js/translated/bom.js:1162 templates/js/translated/build.js:2770 #: templates/js/translated/index.js:123 -#: templates/js/translated/model_renderers.js:235 +#: templates/js/translated/model_renderers.js:238 #: templates/js/translated/part.js:695 templates/js/translated/part.js:697 #: templates/js/translated/part.js:702 #: templates/js/translated/table_filters.js:347 @@ -816,16 +835,68 @@ msgstr "Allokerad" msgid "Available" msgstr "Tillgänglig" -#: build/models.py:86 build/templates/build/build_base.html:9 -#: build/templates/build/build_base.html:27 +#: build/api.py:640 build/models.py:268 build/serializers.py:1330 +#: build/templates/build/build_base.html:106 +#: build/templates/build/detail.html:29 company/models.py:1043 order/api.py:775 +#: order/api.py:1003 order/models.py:1519 order/models.py:1674 +#: order/models.py:1675 part/api.py:1495 part/api.py:1802 part/models.py:419 +#: part/models.py:3177 part/models.py:3321 part/models.py:3469 +#: part/models.py:3490 part/models.py:3512 part/models.py:3648 +#: part/models.py:3995 part/models.py:4158 part/models.py:4288 +#: part/models.py:4654 part/serializers.py:1245 part/serializers.py:1898 +#: part/templates/part/part_app_base.html:8 +#: part/templates/part/part_pricing.html:12 +#: part/templates/part/upload_bom.html:52 +#: report/templates/report/inventree_bill_of_materials_report.html:110 +#: report/templates/report/inventree_bill_of_materials_report.html:137 +#: report/templates/report/inventree_build_order_report.html:109 +#: report/templates/report/inventree_purchase_order_report.html:27 +#: report/templates/report/inventree_return_order_report.html:24 +#: report/templates/report/inventree_sales_order_report.html:27 +#: report/templates/report/inventree_sales_order_shipment_report.html:28 +#: report/templates/report/inventree_stock_location_report.html:102 +#: stock/serializers.py:112 stock/serializers.py:160 stock/serializers.py:456 +#: stock/serializers.py:947 templates/InvenTree/search.html:82 +#: templates/email/build_order_completed.html:17 +#: templates/email/build_order_required_stock.html:17 +#: templates/email/low_stock_notification.html:15 +#: templates/email/overdue_build_order.html:16 +#: templates/js/translated/barcode.js:577 templates/js/translated/bom.js:632 +#: templates/js/translated/bom.js:769 templates/js/translated/bom.js:905 +#: templates/js/translated/build.js:1005 templates/js/translated/build.js:1488 +#: templates/js/translated/build.js:1919 templates/js/translated/build.js:2337 +#: templates/js/translated/build.js:2514 templates/js/translated/company.js:349 +#: templates/js/translated/company.js:1117 +#: templates/js/translated/company.js:1272 +#: templates/js/translated/company.js:1560 templates/js/translated/index.js:109 +#: templates/js/translated/part.js:1950 templates/js/translated/part.js:2022 +#: templates/js/translated/part.js:2330 templates/js/translated/pricing.js:369 +#: templates/js/translated/purchase_order.js:734 +#: templates/js/translated/purchase_order.js:1350 +#: templates/js/translated/purchase_order.js:1902 +#: templates/js/translated/purchase_order.js:2061 +#: templates/js/translated/return_order.js:538 +#: templates/js/translated/return_order.js:708 +#: templates/js/translated/sales_order.js:1199 +#: templates/js/translated/sales_order.js:1608 +#: templates/js/translated/sales_order.js:1813 +#: templates/js/translated/stock.js:682 templates/js/translated/stock.js:848 +#: templates/js/translated/stock.js:1065 templates/js/translated/stock.js:2083 +#: templates/js/translated/stock.js:2942 templates/js/translated/stock.js:3175 +#: templates/js/translated/stock.js:3320 +msgid "Part" +msgstr "Del" + +#: build/api.py:662 build/models.py:88 build/templates/build/build_base.html:10 +#: build/templates/build/build_base.html:28 #: report/templates/report/inventree_build_order_report.html:105 -#: stock/serializers.py:84 templates/email/build_order_completed.html:16 +#: stock/serializers.py:85 templates/email/build_order_completed.html:16 #: templates/email/overdue_build_order.html:15 -#: templates/js/translated/build.js:1145 templates/js/translated/stock.js:2976 +#: templates/js/translated/build.js:1148 templates/js/translated/stock.js:2977 msgid "Build Order" msgstr "Byggorder" -#: build/models.py:87 build/templates/build/build_base.html:13 +#: build/models.py:89 build/templates/build/build_base.html:14 #: build/templates/build/index.html:8 build/templates/build/index.html:12 #: order/templates/order/sales_order_detail.html:111 #: order/templates/order/so_sidebar.html:13 @@ -836,884 +907,841 @@ msgstr "Byggorder" msgid "Build Orders" msgstr "Byggordrar" -#: build/models.py:135 +#: build/models.py:136 msgid "Assembly BOM has not been validated" msgstr "" -#: build/models.py:142 +#: build/models.py:143 msgid "Build order cannot be created for an inactive part" msgstr "" -#: build/models.py:149 +#: build/models.py:150 msgid "Build order cannot be created for an unlocked part" msgstr "" -#: build/models.py:163 +#: build/models.py:164 msgid "Invalid choice for parent build" msgstr "Ogiltigt val för överordnad bygge" -#: build/models.py:174 order/models.py:239 +#: build/models.py:175 order/models.py:236 msgid "Responsible user or group must be specified" msgstr "" -#: build/models.py:180 +#: build/models.py:181 msgid "Build order part cannot be changed" msgstr "" -#: build/models.py:241 +#: build/models.py:242 msgid "Build Order Reference" -msgstr "Byggorderreferens" +msgstr "Tillverknings order referens" -#: build/models.py:242 build/serializers.py:1287 order/models.py:467 -#: order/models.py:978 order/models.py:1373 order/models.py:2135 -#: part/admin.py:414 part/models.py:4280 part/templates/part/upload_bom.html:54 +#: build/models.py:243 build/serializers.py:1341 order/models.py:479 +#: order/models.py:1005 order/models.py:1390 order/models.py:2174 +#: part/admin.py:414 part/models.py:4337 part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_bill_of_materials_report.html:139 #: report/templates/report/inventree_purchase_order_report.html:28 #: report/templates/report/inventree_return_order_report.html:26 #: report/templates/report/inventree_sales_order_report.html:28 #: templates/js/translated/bom.js:770 templates/js/translated/bom.js:973 -#: templates/js/translated/build.js:1011 templates/js/translated/build.js:2685 +#: templates/js/translated/build.js:1014 templates/js/translated/build.js:2694 #: templates/js/translated/order.js:316 templates/js/translated/pricing.js:386 -#: templates/js/translated/purchase_order.js:2135 +#: templates/js/translated/purchase_order.js:2119 #: templates/js/translated/return_order.js:727 -#: templates/js/translated/sales_order.js:1854 +#: templates/js/translated/sales_order.js:1835 msgid "Reference" msgstr "Referens" -#: build/models.py:253 +#: build/models.py:254 msgid "Brief description of the build (optional)" msgstr "" -#: build/models.py:262 +#: build/models.py:263 msgid "BuildOrder to which this build is allocated" -msgstr "Byggorder till vilken detta bygge är tilldelad" +msgstr "Tillverknings order till vilken detta produkt är tilldelad" -#: build/models.py:267 build/serializers.py:1278 -#: build/templates/build/build_base.html:105 -#: build/templates/build/detail.html:29 company/models.py:1046 order/api.py:767 -#: order/models.py:1503 order/models.py:1658 order/models.py:1659 -#: part/api.py:1509 part/api.py:1813 part/models.py:424 part/models.py:3126 -#: part/models.py:3270 part/models.py:3418 part/models.py:3439 -#: part/models.py:3461 part/models.py:3597 part/models.py:3937 -#: part/models.py:4100 part/models.py:4231 part/models.py:4592 -#: part/serializers.py:1192 part/serializers.py:1836 -#: part/templates/part/part_app_base.html:8 -#: part/templates/part/part_pricing.html:12 -#: part/templates/part/upload_bom.html:52 -#: report/templates/report/inventree_bill_of_materials_report.html:110 -#: report/templates/report/inventree_bill_of_materials_report.html:137 -#: report/templates/report/inventree_build_order_report.html:109 -#: report/templates/report/inventree_purchase_order_report.html:27 -#: report/templates/report/inventree_return_order_report.html:24 -#: report/templates/report/inventree_sales_order_report.html:27 -#: report/templates/report/inventree_stock_location_report.html:102 -#: stock/serializers.py:111 stock/serializers.py:159 stock/serializers.py:446 -#: stock/serializers.py:916 templates/InvenTree/search.html:82 -#: templates/email/build_order_completed.html:17 -#: templates/email/build_order_required_stock.html:17 -#: templates/email/low_stock_notification.html:15 -#: templates/email/overdue_build_order.html:16 -#: templates/js/translated/barcode.js:577 templates/js/translated/bom.js:632 -#: templates/js/translated/bom.js:769 templates/js/translated/bom.js:905 -#: templates/js/translated/build.js:1002 templates/js/translated/build.js:1485 -#: templates/js/translated/build.js:1916 templates/js/translated/build.js:2334 -#: templates/js/translated/build.js:2507 templates/js/translated/company.js:348 -#: templates/js/translated/company.js:1116 -#: templates/js/translated/company.js:1271 -#: templates/js/translated/company.js:1559 templates/js/translated/index.js:109 -#: templates/js/translated/part.js:1950 templates/js/translated/part.js:2022 -#: templates/js/translated/part.js:2330 templates/js/translated/pricing.js:369 -#: templates/js/translated/purchase_order.js:751 -#: templates/js/translated/purchase_order.js:1367 -#: templates/js/translated/purchase_order.js:1918 -#: templates/js/translated/purchase_order.js:2077 -#: templates/js/translated/return_order.js:538 -#: templates/js/translated/return_order.js:708 -#: templates/js/translated/sales_order.js:300 -#: templates/js/translated/sales_order.js:1233 -#: templates/js/translated/sales_order.js:1634 -#: templates/js/translated/sales_order.js:1832 -#: templates/js/translated/stock.js:682 templates/js/translated/stock.js:848 -#: templates/js/translated/stock.js:1065 templates/js/translated/stock.js:2082 -#: templates/js/translated/stock.js:2941 templates/js/translated/stock.js:3174 -#: templates/js/translated/stock.js:3319 -msgid "Part" -msgstr "Del" - -#: build/models.py:275 +#: build/models.py:274 msgid "Select part to build" -msgstr "Välj del att bygga" +msgstr "Välj del att tillverka" -#: build/models.py:280 +#: build/models.py:279 msgid "Sales Order Reference" msgstr "Försäljningsorderreferens" -#: build/models.py:284 +#: build/models.py:283 msgid "SalesOrder to which this build is allocated" msgstr "Försäljningsorder till vilken detta bygge allokeras" -#: build/models.py:289 build/serializers.py:1048 -#: templates/js/translated/build.js:1904 -#: templates/js/translated/sales_order.js:1221 +#: build/models.py:288 build/serializers.py:1092 +#: templates/js/translated/build.js:1907 +#: templates/js/translated/sales_order.js:1187 msgid "Source Location" msgstr "Källa Plats" -#: build/models.py:293 +#: build/models.py:292 msgid "Select location to take stock from for this build (leave blank to take from any stock location)" msgstr "Välj plats att ta lager från för detta bygge (lämna tomt för att ta från någon lagerplats)" -#: build/models.py:298 +#: build/models.py:297 msgid "Destination Location" msgstr "Destinationsplats" -#: build/models.py:302 +#: build/models.py:301 msgid "Select location where the completed items will be stored" msgstr "Välj plats där de färdiga objekten kommer att lagras" -#: build/models.py:306 +#: build/models.py:305 msgid "Build Quantity" -msgstr "Bygg kvantitet" +msgstr "Tillverkat antal" -#: build/models.py:309 +#: build/models.py:308 msgid "Number of stock items to build" msgstr "Antal lagerobjekt att bygga" -#: build/models.py:313 +#: build/models.py:312 msgid "Completed items" msgstr "Slutförda objekt" -#: build/models.py:315 +#: build/models.py:314 msgid "Number of stock items which have been completed" msgstr "Antal lagerposter som har slutförts" -#: build/models.py:319 +#: build/models.py:318 msgid "Build Status" -msgstr "Byggstatus" +msgstr "Tillverknings status" -#: build/models.py:323 +#: build/models.py:322 msgid "Build status code" -msgstr "Bygg statuskod" +msgstr "Tillverkning statuskod" -#: build/models.py:332 build/serializers.py:302 build/serializers.py:1198 -#: order/serializers.py:670 stock/models.py:859 stock/serializers.py:76 -#: stock/serializers.py:1562 templates/js/translated/purchase_order.js:1129 +#: build/models.py:331 build/serializers.py:349 build/serializers.py:1243 +#: order/serializers.py:755 stock/models.py:936 stock/serializers.py:77 +#: stock/serializers.py:1593 templates/js/translated/purchase_order.js:1112 #: templates/js/translated/stock.js:1199 msgid "Batch Code" msgstr "Batchkod" -#: build/models.py:336 build/serializers.py:303 +#: build/models.py:335 build/serializers.py:350 msgid "Batch code for this build output" msgstr "Batch-kod för denna byggutdata" -#: build/models.py:339 order/models.py:315 order/serializers.py:126 -#: part/models.py:1229 part/templates/part/part_base.html:319 +#: build/models.py:338 order/models.py:322 order/serializers.py:157 +#: part/models.py:1290 part/templates/part/part_base.html:327 #: templates/js/translated/return_order.js:338 -#: templates/js/translated/sales_order.js:863 +#: templates/js/translated/sales_order.js:822 msgid "Creation Date" msgstr "Skapad" -#: build/models.py:343 +#: build/models.py:342 msgid "Target completion date" msgstr "Datum för slutförande" -#: build/models.py:344 +#: build/models.py:343 msgid "Target date for build completion. Build will be overdue after this date." -msgstr "Måldatum för färdigställande. Byggandet kommer att förfallas efter detta datum." +msgstr "Måldatum för färdigställande. Tillverkningen kommer att förfallas efter detta datum." -#: build/models.py:347 order/models.py:526 order/models.py:2180 -#: templates/js/translated/build.js:2419 +#: build/models.py:346 order/models.py:538 order/models.py:2219 +#: templates/js/translated/build.js:2422 msgid "Completion Date" msgstr "Slutförandedatum" -#: build/models.py:353 +#: build/models.py:352 msgid "completed by" msgstr "slutfört av" -#: build/models.py:361 templates/js/translated/build.js:2379 +#: build/models.py:360 templates/js/translated/build.js:2382 msgid "Issued by" msgstr "Utfärdad av" -#: build/models.py:362 +#: build/models.py:361 msgid "User who issued this build order" -msgstr "Användare som utfärdade denna byggorder" +msgstr "Användare som utfärdade denna tillverknings order" -#: build/models.py:370 build/templates/build/build_base.html:212 -#: build/templates/build/detail.html:122 common/models.py:165 order/api.py:142 -#: order/models.py:333 order/templates/order/order_base.html:222 -#: order/templates/order/return_order_base.html:191 -#: order/templates/order/sales_order_base.html:235 part/models.py:1246 -#: part/templates/part/part_base.html:399 +#: build/models.py:369 build/templates/build/build_base.html:213 +#: build/templates/build/detail.html:122 common/models.py:168 order/api.py:140 +#: order/models.py:340 order/templates/order/order_base.html:231 +#: order/templates/order/return_order_base.html:192 +#: order/templates/order/sales_order_base.html:236 part/models.py:1307 +#: part/templates/part/part_base.html:407 #: report/templates/report/inventree_build_order_report.html:158 #: templates/InvenTree/settings/settings_staff_js.html:150 -#: templates/js/translated/build.js:2391 -#: templates/js/translated/purchase_order.js:1833 +#: templates/js/translated/build.js:2394 +#: templates/js/translated/purchase_order.js:1817 #: templates/js/translated/return_order.js:358 #: templates/js/translated/table_filters.js:551 msgid "Responsible" msgstr "Ansvarig" -#: build/models.py:371 +#: build/models.py:370 msgid "User or group responsible for this build order" msgstr "" -#: build/models.py:376 build/templates/build/detail.html:108 +#: build/models.py:375 build/templates/build/detail.html:108 #: company/templates/company/manufacturer_part.html:107 -#: company/templates/company/supplier_part.html:194 -#: order/templates/order/order_base.html:172 -#: order/templates/order/return_order_base.html:148 -#: order/templates/order/sales_order_base.html:187 -#: part/templates/part/part_base.html:392 stock/models.py:855 -#: stock/templates/stock/item_base.html:200 -#: templates/js/translated/company.js:1019 +#: company/templates/company/supplier_part.html:195 +#: order/templates/order/order_base.html:181 +#: order/templates/order/return_order_base.html:149 +#: order/templates/order/sales_order_base.html:188 +#: part/templates/part/part_base.html:400 stock/models.py:932 +#: stock/templates/stock/item_base.html:197 +#: templates/js/translated/company.js:1020 msgid "External Link" msgstr "Extern länk" -#: build/models.py:377 common/models.py:3273 part/models.py:1058 -#: stock/models.py:855 +#: build/models.py:376 common/models.py:3334 part/models.py:1119 +#: stock/models.py:932 msgid "Link to external URL" msgstr "Länk till extern URL" -#: build/models.py:381 +#: build/models.py:380 msgid "Build Priority" msgstr "" -#: build/models.py:384 +#: build/models.py:383 msgid "Priority of this build order" msgstr "" -#: build/models.py:391 common/models.py:135 common/models.py:149 -#: order/admin.py:18 order/api.py:128 order/models.py:297 +#: build/models.py:390 common/models.py:138 common/models.py:152 +#: order/admin.py:18 order/api.py:126 order/models.py:304 #: templates/InvenTree/settings/settings_staff_js.html:146 -#: templates/js/translated/build.js:2316 -#: templates/js/translated/purchase_order.js:1780 +#: templates/js/translated/build.js:2319 +#: templates/js/translated/purchase_order.js:1764 #: templates/js/translated/return_order.js:317 -#: templates/js/translated/sales_order.js:842 +#: templates/js/translated/sales_order.js:801 #: templates/js/translated/table_filters.js:47 #: templates/project_code_data.html:6 msgid "Project Code" msgstr "Projektkod" -#: build/models.py:392 +#: build/models.py:391 msgid "Project code for this build order" msgstr "" -#: build/models.py:651 build/models.py:778 +#: build/models.py:651 build/models.py:779 msgid "Failed to offload task to complete build allocations" msgstr "" #: build/models.py:673 #, python-brace-format msgid "Build order {build} has been completed" -msgstr "Byggorder {build} har slutförts" +msgstr "Tillverknings order {build} har slutförts" #: build/models.py:679 msgid "A build order has been completed" -msgstr "En byggorder har slutförts" +msgstr "En tillverknings order har slutförts" -#: build/models.py:967 build/models.py:1055 +#: build/models.py:858 build/serializers.py:393 +msgid "Serial numbers must be provided for trackable parts" +msgstr "" + +#: build/models.py:969 build/models.py:1058 msgid "No build output specified" msgstr "Ingen byggutgång angiven" -#: build/models.py:970 +#: build/models.py:972 msgid "Build output is already completed" msgstr "Byggutgång är redan slutförd" -#: build/models.py:973 +#: build/models.py:975 msgid "Build output does not match Build Order" msgstr "Byggutgång matchar inte bygg order" -#: build/models.py:1059 build/serializers.py:235 build/serializers.py:284 -#: build/serializers.py:915 order/models.py:564 order/serializers.py:499 -#: order/serializers.py:665 part/serializers.py:1569 part/serializers.py:1999 -#: stock/models.py:700 stock/models.py:1520 stock/serializers.py:669 +#: build/models.py:1062 build/serializers.py:282 build/serializers.py:331 +#: build/serializers.py:959 order/models.py:586 order/serializers.py:584 +#: order/serializers.py:750 part/serializers.py:1627 part/serializers.py:2060 +#: stock/models.py:777 stock/models.py:1609 stock/serializers.py:696 msgid "Quantity must be greater than zero" msgstr "" -#: build/models.py:1064 build/serializers.py:240 +#: build/models.py:1067 build/serializers.py:287 msgid "Quantity cannot be greater than the output quantity" msgstr "" -#: build/models.py:1124 build/serializers.py:563 +#: build/models.py:1127 build/serializers.py:607 #, python-brace-format msgid "Build output {serial} has not passed all required tests" msgstr "" -#: build/models.py:1465 +#: build/models.py:1482 msgid "Build Order Line Item" msgstr "" -#: build/models.py:1490 +#: build/models.py:1507 msgid "Build object" msgstr "" -#: build/models.py:1504 build/models.py:1760 build/serializers.py:222 -#: build/serializers.py:269 build/serializers.py:1295 -#: build/templates/build/build_base.html:110 -#: build/templates/build/detail.html:34 common/models.py:2579 -#: order/models.py:1356 order/models.py:2041 order/serializers.py:1460 +#: build/models.py:1521 build/models.py:1787 build/serializers.py:269 +#: build/serializers.py:316 build/serializers.py:1349 +#: build/templates/build/build_base.html:111 +#: build/templates/build/detail.html:34 common/models.py:2643 +#: order/models.py:1373 order/models.py:2074 order/serializers.py:1586 #: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:413 -#: part/forms.py:48 part/models.py:3284 part/models.py:4253 -#: part/templates/part/part_pricing.html:16 +#: part/forms.py:48 part/models.py:3335 part/models.py:4310 +#: part/serializers.py:265 part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_bill_of_materials_report.html:138 #: report/templates/report/inventree_build_order_report.html:113 #: report/templates/report/inventree_purchase_order_report.html:29 #: report/templates/report/inventree_sales_order_report.html:29 +#: report/templates/report/inventree_sales_order_shipment_report.html:47 +#: report/templates/report/inventree_sales_order_shipment_report.html:49 #: report/templates/report/inventree_stock_location_report.html:104 #: report/templates/report/inventree_test_report.html:90 -#: report/templates/report/inventree_test_report.html:169 stock/admin.py:159 -#: stock/serializers.py:127 stock/serializers.py:167 stock/serializers.py:660 -#: stock/templates/stock/item_base.html:287 -#: stock/templates/stock/item_base.html:295 -#: stock/templates/stock/item_base.html:342 +#: report/templates/report/inventree_test_report.html:169 stock/admin.py:160 +#: stock/serializers.py:128 stock/serializers.py:168 stock/serializers.py:687 +#: stock/templates/stock/item_base.html:284 +#: stock/templates/stock/item_base.html:292 +#: stock/templates/stock/item_base.html:339 #: templates/email/build_order_completed.html:18 #: templates/js/translated/barcode.js:579 templates/js/translated/bom.js:771 -#: templates/js/translated/bom.js:981 templates/js/translated/build.js:522 -#: templates/js/translated/build.js:737 templates/js/translated/build.js:1542 -#: templates/js/translated/build.js:1919 templates/js/translated/build.js:2529 -#: templates/js/translated/company.js:1818 -#: templates/js/translated/model_renderers.js:237 +#: templates/js/translated/bom.js:981 templates/js/translated/build.js:525 +#: templates/js/translated/build.js:740 templates/js/translated/build.js:1545 +#: templates/js/translated/build.js:1922 templates/js/translated/build.js:2536 +#: templates/js/translated/company.js:1819 +#: templates/js/translated/model_renderers.js:240 #: templates/js/translated/order.js:329 templates/js/translated/part.js:968 -#: templates/js/translated/part.js:1818 templates/js/translated/part.js:3360 +#: templates/js/translated/part.js:1818 templates/js/translated/part.js:3376 #: templates/js/translated/pricing.js:381 #: templates/js/translated/pricing.js:474 #: templates/js/translated/pricing.js:522 #: templates/js/translated/pricing.js:616 -#: templates/js/translated/purchase_order.js:754 -#: templates/js/translated/purchase_order.js:1922 -#: templates/js/translated/purchase_order.js:2141 -#: templates/js/translated/sales_order.js:317 -#: templates/js/translated/sales_order.js:1235 -#: templates/js/translated/sales_order.js:1554 -#: templates/js/translated/sales_order.js:1644 -#: templates/js/translated/sales_order.js:1734 -#: templates/js/translated/sales_order.js:1860 +#: templates/js/translated/purchase_order.js:737 +#: templates/js/translated/purchase_order.js:1906 +#: templates/js/translated/purchase_order.js:2125 +#: templates/js/translated/sales_order.js:1201 +#: templates/js/translated/sales_order.js:1520 +#: templates/js/translated/sales_order.js:1625 +#: templates/js/translated/sales_order.js:1715 +#: templates/js/translated/sales_order.js:1841 #: templates/js/translated/stock.js:570 templates/js/translated/stock.js:708 -#: templates/js/translated/stock.js:879 templates/js/translated/stock.js:3105 -#: templates/js/translated/stock.js:3188 +#: templates/js/translated/stock.js:879 templates/js/translated/stock.js:3106 +#: templates/js/translated/stock.js:3189 msgid "Quantity" msgstr "Antal" -#: build/models.py:1505 +#: build/models.py:1522 msgid "Required quantity for build order" msgstr "" -#: build/models.py:1585 +#: build/models.py:1602 msgid "Build item must specify a build output, as master part is marked as trackable" msgstr "Byggobjekt måste ange en byggutgång, eftersom huvuddelen är markerad som spårbar" -#: build/models.py:1594 +#: build/models.py:1611 #, python-brace-format msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgstr "Tilldelad kvantitet ({q}) får inte överstiga tillgängligt lagersaldo ({a})" -#: build/models.py:1604 order/models.py:1992 +#: build/models.py:1628 order/models.py:2025 msgid "Stock item is over-allocated" msgstr "Lagerposten är överallokerad" -#: build/models.py:1610 order/models.py:1995 +#: build/models.py:1634 order/models.py:2028 msgid "Allocation quantity must be greater than zero" msgstr "Allokeringsmängden måste vara större än noll" -#: build/models.py:1616 +#: build/models.py:1640 msgid "Quantity must be 1 for serialized stock" msgstr "Antal måste vara 1 för serialiserat lager" -#: build/models.py:1675 +#: build/models.py:1699 msgid "Selected stock item does not match BOM line" msgstr "" -#: build/models.py:1747 build/serializers.py:895 order/serializers.py:1297 -#: order/serializers.py:1318 stock/models.py:376 stock/serializers.py:93 -#: stock/serializers.py:763 stock/serializers.py:1281 stock/serializers.py:1393 -#: stock/templates/stock/item_base.html:10 -#: stock/templates/stock/item_base.html:23 -#: stock/templates/stock/item_base.html:194 -#: templates/js/translated/build.js:1918 -#: templates/js/translated/sales_order.js:301 -#: templates/js/translated/sales_order.js:1234 -#: templates/js/translated/sales_order.js:1535 -#: templates/js/translated/sales_order.js:1540 -#: templates/js/translated/sales_order.js:1641 -#: templates/js/translated/sales_order.js:1728 +#: build/models.py:1774 build/serializers.py:939 order/serializers.py:1423 +#: order/serializers.py:1444 +#: report/templates/report/inventree_sales_order_shipment_report.html:29 +#: stock/models.py:382 stock/serializers.py:94 stock/serializers.py:794 +#: stock/serializers.py:1312 stock/serializers.py:1424 +#: stock/templates/stock/item_base.html:11 +#: stock/templates/stock/item_base.html:24 +#: stock/templates/stock/item_base.html:191 +#: templates/js/translated/build.js:1921 +#: templates/js/translated/sales_order.js:1200 +#: templates/js/translated/sales_order.js:1501 +#: templates/js/translated/sales_order.js:1506 +#: templates/js/translated/sales_order.js:1622 +#: templates/js/translated/sales_order.js:1709 #: templates/js/translated/stock.js:683 templates/js/translated/stock.js:849 -#: templates/js/translated/stock.js:3061 +#: templates/js/translated/stock.js:3062 msgid "Stock Item" msgstr "Artikel i lager" -#: build/models.py:1748 +#: build/models.py:1775 msgid "Source stock item" msgstr "Källa lagervara" -#: build/models.py:1761 +#: build/models.py:1788 msgid "Stock quantity to allocate to build" msgstr "Lagersaldo att allokera för att bygga" -#: build/models.py:1769 +#: build/models.py:1796 msgid "Install into" msgstr "Installera till" -#: build/models.py:1770 +#: build/models.py:1797 msgid "Destination stock item" msgstr "Destination lagervara" -#: build/serializers.py:91 +#: build/serializers.py:108 msgid "Build Level" msgstr "" -#: build/serializers.py:99 build/serializers.py:1190 build/serializers.py:1279 -#: part/admin.py:41 part/admin.py:408 part/models.py:4102 part/stocktake.py:219 -#: stock/admin.py:156 +#: build/serializers.py:116 build/serializers.py:1235 build/serializers.py:1331 +#: part/admin.py:41 part/admin.py:408 part/models.py:4160 part/stocktake.py:219 +#: stock/admin.py:157 msgid "Part Name" msgstr "" -#: build/serializers.py:111 +#: build/serializers.py:128 msgid "Project Code Label" msgstr "" -#: build/serializers.py:172 build/serializers.py:924 -#: templates/js/translated/build.js:1042 templates/js/translated/build.js:1495 +#: build/serializers.py:134 +msgid "Create Child Builds" +msgstr "" + +#: build/serializers.py:135 +msgid "Automatically generate child build orders" +msgstr "" + +#: build/serializers.py:219 build/serializers.py:968 +#: templates/js/translated/build.js:1045 templates/js/translated/build.js:1498 msgid "Build Output" msgstr "Bygg utdata" -#: build/serializers.py:184 +#: build/serializers.py:231 msgid "Build output does not match the parent build" msgstr "Byggutdata matchar inte överordnad version" -#: build/serializers.py:188 +#: build/serializers.py:235 msgid "Output part does not match BuildOrder part" msgstr "" -#: build/serializers.py:192 +#: build/serializers.py:239 msgid "This build output has already been completed" msgstr "" -#: build/serializers.py:203 +#: build/serializers.py:250 msgid "This build output is not fully allocated" msgstr "" -#: build/serializers.py:223 build/serializers.py:270 +#: build/serializers.py:270 build/serializers.py:317 msgid "Enter quantity for build output" msgstr "" -#: build/serializers.py:291 +#: build/serializers.py:338 msgid "Integer quantity required for trackable parts" msgstr "" -#: build/serializers.py:294 +#: build/serializers.py:341 msgid "Integer quantity required, as the bill of materials contains trackable parts" msgstr "" -#: build/serializers.py:309 order/serializers.py:678 order/serializers.py:1464 -#: stock/serializers.py:680 templates/js/translated/purchase_order.js:1154 +#: build/serializers.py:356 order/serializers.py:763 order/serializers.py:1590 +#: stock/serializers.py:707 templates/js/translated/purchase_order.js:1137 #: templates/js/translated/stock.js:373 templates/js/translated/stock.js:571 msgid "Serial Numbers" msgstr "Serienummer" -#: build/serializers.py:310 +#: build/serializers.py:357 msgid "Enter serial numbers for build outputs" msgstr "Ange serienummer för att tillverkade produkter" -#: build/serializers.py:315 build/serializers.py:456 build/serializers.py:528 -#: order/serializers.py:654 order/serializers.py:778 order/serializers.py:1781 -#: part/serializers.py:1212 stock/serializers.py:102 stock/serializers.py:691 -#: stock/serializers.py:851 stock/serializers.py:977 stock/serializers.py:1425 -#: stock/serializers.py:1681 stock/templates/stock/item_base.html:394 +#: build/serializers.py:362 build/serializers.py:500 build/serializers.py:572 +#: order/serializers.py:739 order/serializers.py:880 order/serializers.py:1933 +#: part/serializers.py:1265 stock/serializers.py:103 stock/serializers.py:718 +#: stock/serializers.py:882 stock/serializers.py:1008 stock/serializers.py:1456 +#: stock/serializers.py:1712 stock/templates/stock/item_base.html:391 #: templates/js/translated/barcode.js:578 -#: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1032 -#: templates/js/translated/build.js:1174 templates/js/translated/build.js:2544 -#: templates/js/translated/purchase_order.js:1210 -#: templates/js/translated/purchase_order.js:1320 -#: templates/js/translated/sales_order.js:1547 -#: templates/js/translated/sales_order.js:1655 -#: templates/js/translated/sales_order.js:1663 -#: templates/js/translated/sales_order.js:1742 +#: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1035 +#: templates/js/translated/build.js:1177 templates/js/translated/build.js:2551 +#: templates/js/translated/purchase_order.js:1193 +#: templates/js/translated/purchase_order.js:1303 +#: templates/js/translated/sales_order.js:1513 +#: templates/js/translated/sales_order.js:1636 +#: templates/js/translated/sales_order.js:1644 +#: templates/js/translated/sales_order.js:1723 #: templates/js/translated/stock.js:684 templates/js/translated/stock.js:850 -#: templates/js/translated/stock.js:1067 templates/js/translated/stock.js:2286 -#: templates/js/translated/stock.js:2955 +#: templates/js/translated/stock.js:1067 templates/js/translated/stock.js:2287 +#: templates/js/translated/stock.js:2956 msgid "Location" msgstr "Plats" -#: build/serializers.py:316 +#: build/serializers.py:363 msgid "Stock location for build output" msgstr "" -#: build/serializers.py:330 +#: build/serializers.py:377 msgid "Auto Allocate Serial Numbers" msgstr "" -#: build/serializers.py:331 +#: build/serializers.py:378 msgid "Automatically allocate required items with matching serial numbers" msgstr "" -#: build/serializers.py:346 -msgid "Serial numbers must be provided for trackable parts" -msgstr "" - -#: build/serializers.py:371 stock/api.py:1031 +#: build/serializers.py:415 order/serializers.py:858 stock/api.py:1017 +#: stock/models.py:1632 msgid "The following serial numbers already exist or are invalid" msgstr "" -#: build/serializers.py:418 build/serializers.py:480 build/serializers.py:569 +#: build/serializers.py:462 build/serializers.py:524 build/serializers.py:613 msgid "A list of build outputs must be provided" msgstr "En lista över tillverkade produkter måste anges" -#: build/serializers.py:457 +#: build/serializers.py:501 msgid "Stock location for scrapped outputs" msgstr "Lagerplats för skrotade produkter" -#: build/serializers.py:463 +#: build/serializers.py:507 msgid "Discard Allocations" msgstr "" -#: build/serializers.py:464 +#: build/serializers.py:508 msgid "Discard any stock allocations for scrapped outputs" msgstr "Ignorera alla lagerallokeringar för skrotade produkter" -#: build/serializers.py:469 +#: build/serializers.py:513 msgid "Reason for scrapping build output(s)" msgstr "" -#: build/serializers.py:529 +#: build/serializers.py:573 msgid "Location for completed build outputs" msgstr "Plats för färdiga produkter" -#: build/serializers.py:535 build/templates/build/build_base.html:159 -#: build/templates/build/detail.html:62 order/models.py:476 -#: order/models.py:1002 order/models.py:2159 order/serializers.py:686 -#: stock/admin.py:164 stock/serializers.py:1028 stock/serializers.py:1569 -#: stock/templates/stock/item_base.html:427 -#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2363 -#: templates/js/translated/purchase_order.js:1371 -#: templates/js/translated/purchase_order.js:1792 +#: build/serializers.py:579 build/templates/build/build_base.html:160 +#: build/templates/build/detail.html:62 order/models.py:488 +#: order/models.py:1029 order/models.py:2198 order/serializers.py:771 +#: stock/admin.py:165 stock/serializers.py:581 stock/serializers.py:1059 +#: stock/serializers.py:1600 stock/templates/stock/item_base.html:424 +#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2366 +#: templates/js/translated/purchase_order.js:1354 +#: templates/js/translated/purchase_order.js:1776 #: templates/js/translated/return_order.js:330 -#: templates/js/translated/sales_order.js:855 -#: templates/js/translated/stock.js:2261 templates/js/translated/stock.js:3079 -#: templates/js/translated/stock.js:3204 +#: templates/js/translated/sales_order.js:814 +#: templates/js/translated/stock.js:2262 templates/js/translated/stock.js:3080 +#: templates/js/translated/stock.js:3205 msgid "Status" msgstr "Status" -#: build/serializers.py:541 +#: build/serializers.py:585 msgid "Accept Incomplete Allocation" msgstr "" -#: build/serializers.py:542 +#: build/serializers.py:586 msgid "Complete outputs if stock has not been fully allocated" msgstr "Slutför utfall om lager inte har tilldelats fullt ut" -#: build/serializers.py:654 +#: build/serializers.py:698 msgid "Consume Allocated Stock" msgstr "" -#: build/serializers.py:655 +#: build/serializers.py:699 msgid "Consume any stock which has already been allocated to this build" msgstr "" -#: build/serializers.py:661 +#: build/serializers.py:705 msgid "Remove Incomplete Outputs" msgstr "Ta bort ofullständiga produkter" -#: build/serializers.py:662 +#: build/serializers.py:706 msgid "Delete any build outputs which have not been completed" msgstr "Ta bort eventuella produkter som inte har slutförts" -#: build/serializers.py:689 +#: build/serializers.py:733 msgid "Not permitted" msgstr "" -#: build/serializers.py:690 +#: build/serializers.py:734 msgid "Accept as consumed by this build order" msgstr "" -#: build/serializers.py:691 +#: build/serializers.py:735 msgid "Deallocate before completing this build order" msgstr "" -#: build/serializers.py:721 +#: build/serializers.py:765 msgid "Overallocated Stock" msgstr "" -#: build/serializers.py:723 +#: build/serializers.py:767 msgid "How do you want to handle extra stock items assigned to the build order" msgstr "" -#: build/serializers.py:733 +#: build/serializers.py:777 msgid "Some stock items have been overallocated" msgstr "" -#: build/serializers.py:738 +#: build/serializers.py:782 msgid "Accept Unallocated" msgstr "" -#: build/serializers.py:739 +#: build/serializers.py:783 msgid "Accept that stock items have not been fully allocated to this build order" msgstr "" -#: build/serializers.py:749 templates/js/translated/build.js:316 +#: build/serializers.py:793 templates/js/translated/build.js:319 msgid "Required stock has not been fully allocated" msgstr "" -#: build/serializers.py:754 order/serializers.py:345 order/serializers.py:1365 +#: build/serializers.py:798 order/serializers.py:430 order/serializers.py:1491 msgid "Accept Incomplete" msgstr "Acceptera ofullständig" -#: build/serializers.py:755 +#: build/serializers.py:799 msgid "Accept that the required number of build outputs have not been completed" msgstr "Acceptera att det önskade antalet produkter som inte har slutförts" -#: build/serializers.py:765 templates/js/translated/build.js:320 +#: build/serializers.py:809 templates/js/translated/build.js:323 msgid "Required build quantity has not been completed" msgstr "" -#: build/serializers.py:774 +#: build/serializers.py:818 msgid "Build order has open child build orders" msgstr "" -#: build/serializers.py:777 +#: build/serializers.py:821 msgid "Build order must be in production state" msgstr "" -#: build/serializers.py:780 templates/js/translated/build.js:304 +#: build/serializers.py:824 templates/js/translated/build.js:307 msgid "Build order has incomplete outputs" msgstr "Tillverknings ordern är ofullständig" -#: build/serializers.py:818 +#: build/serializers.py:862 msgid "Build Line" msgstr "" -#: build/serializers.py:828 +#: build/serializers.py:872 msgid "Build output" msgstr "" -#: build/serializers.py:836 +#: build/serializers.py:880 msgid "Build output must point to the same build" msgstr "" -#: build/serializers.py:872 +#: build/serializers.py:916 msgid "Build Line Item" msgstr "" -#: build/serializers.py:886 +#: build/serializers.py:930 msgid "bom_item.part must point to the same part as the build order" msgstr "" -#: build/serializers.py:901 stock/serializers.py:1294 +#: build/serializers.py:945 stock/serializers.py:1325 msgid "Item must be in stock" msgstr "" -#: build/serializers.py:949 order/serializers.py:1351 +#: build/serializers.py:993 order/serializers.py:1477 #, python-brace-format msgid "Available quantity ({q}) exceeded" msgstr "" -#: build/serializers.py:955 +#: build/serializers.py:999 msgid "Build output must be specified for allocation of tracked parts" msgstr "" -#: build/serializers.py:962 +#: build/serializers.py:1006 msgid "Build output cannot be specified for allocation of untracked parts" msgstr "" -#: build/serializers.py:986 order/serializers.py:1610 +#: build/serializers.py:1030 order/serializers.py:1750 msgid "Allocation items must be provided" msgstr "" -#: build/serializers.py:1049 +#: build/serializers.py:1093 msgid "Stock location where parts are to be sourced (leave blank to take from any location)" msgstr "" -#: build/serializers.py:1057 +#: build/serializers.py:1101 msgid "Exclude Location" msgstr "" -#: build/serializers.py:1058 +#: build/serializers.py:1102 msgid "Exclude stock items from this selected location" msgstr "" -#: build/serializers.py:1063 +#: build/serializers.py:1107 msgid "Interchangeable Stock" msgstr "" -#: build/serializers.py:1064 +#: build/serializers.py:1108 msgid "Stock items in multiple locations can be used interchangeably" msgstr "" -#: build/serializers.py:1069 +#: build/serializers.py:1113 msgid "Substitute Stock" msgstr "" -#: build/serializers.py:1070 +#: build/serializers.py:1114 msgid "Allow allocation of substitute parts" msgstr "" -#: build/serializers.py:1075 +#: build/serializers.py:1119 msgid "Optional Items" msgstr "" -#: build/serializers.py:1076 +#: build/serializers.py:1120 msgid "Allocate optional BOM items to build order" msgstr "" -#: build/serializers.py:1098 +#: build/serializers.py:1143 msgid "Failed to start auto-allocation task" msgstr "" -#: build/serializers.py:1181 +#: build/serializers.py:1226 stock/serializers.py:585 msgid "Supplier Part Number" msgstr "" -#: build/serializers.py:1182 company/models.py:506 +#: build/serializers.py:1227 company/models.py:503 stock/serializers.py:591 msgid "Manufacturer Part Number" msgstr "" -#: build/serializers.py:1183 stock/admin.py:53 stock/admin.py:175 -#: stock/serializers.py:457 +#: build/serializers.py:1228 stock/admin.py:53 stock/admin.py:176 +#: stock/serializers.py:467 msgid "Location Name" msgstr "" -#: build/serializers.py:1184 +#: build/serializers.py:1229 build/serializers.py:1327 msgid "Build Reference" msgstr "" -#: build/serializers.py:1185 +#: build/serializers.py:1230 msgid "BOM Reference" msgstr "" -#: build/serializers.py:1186 company/models.py:852 -#: company/templates/company/supplier_part.html:160 order/serializers.py:690 -#: stock/admin.py:228 stock/models.py:818 stock/serializers.py:1579 -#: stock/templates/stock/item_base.html:240 -#: templates/js/translated/company.js:1646 -#: templates/js/translated/purchase_order.js:1169 -#: templates/js/translated/purchase_order.js:1332 +#: build/serializers.py:1231 company/models.py:849 +#: company/templates/company/supplier_part.html:161 order/serializers.py:775 +#: stock/admin.py:229 stock/models.py:895 stock/serializers.py:1610 +#: stock/templates/stock/item_base.html:237 +#: templates/js/translated/company.js:1647 +#: templates/js/translated/purchase_order.js:1152 +#: templates/js/translated/purchase_order.js:1315 #: templates/js/translated/stock.js:1214 templates/js/translated/stock.js:1246 -#: templates/js/translated/stock.js:2509 +#: templates/js/translated/stock.js:2510 msgid "Packaging" msgstr "" -#: build/serializers.py:1189 part/admin.py:39 part/admin.py:398 -#: part/models.py:4101 part/stocktake.py:218 stock/admin.py:152 +#: build/serializers.py:1234 part/admin.py:39 part/admin.py:398 +#: part/models.py:4159 part/stocktake.py:218 stock/admin.py:153 msgid "Part ID" msgstr "" -#: build/serializers.py:1191 build/serializers.py:1280 part/admin.py:402 -#: part/models.py:4103 +#: build/serializers.py:1236 build/serializers.py:1332 part/admin.py:402 +#: part/models.py:4161 msgid "Part IPN" msgstr "" -#: build/serializers.py:1192 build/serializers.py:1282 part/admin.py:45 +#: build/serializers.py:1237 build/serializers.py:1334 part/admin.py:45 #: part/stocktake.py:220 msgid "Part Description" msgstr "" -#: build/serializers.py:1195 +#: build/serializers.py:1240 msgid "BOM Part ID" msgstr "" -#: build/serializers.py:1196 +#: build/serializers.py:1241 msgid "BOM Part Name" msgstr "" -#: build/serializers.py:1199 +#: build/serializers.py:1244 #: report/templates/report/inventree_return_order_report.html:25 -#: report/templates/report/inventree_test_report.html:88 stock/models.py:845 -#: stock/serializers.py:151 stock/templates/stock/item_base.html:311 -#: templates/js/translated/build.js:520 templates/js/translated/build.js:1540 -#: templates/js/translated/build.js:2527 -#: templates/js/translated/model_renderers.js:231 +#: report/templates/report/inventree_sales_order_shipment_report.html:45 +#: report/templates/report/inventree_test_report.html:88 stock/models.py:922 +#: stock/serializers.py:152 stock/templates/stock/item_base.html:308 +#: templates/js/translated/build.js:523 templates/js/translated/build.js:1543 +#: templates/js/translated/build.js:2534 +#: templates/js/translated/model_renderers.js:234 #: templates/js/translated/return_order.js:539 #: templates/js/translated/return_order.js:722 -#: templates/js/translated/sales_order.js:315 -#: templates/js/translated/sales_order.js:1647 -#: templates/js/translated/sales_order.js:1732 +#: templates/js/translated/sales_order.js:1628 +#: templates/js/translated/sales_order.js:1713 #: templates/js/translated/stock.js:602 msgid "Serial Number" msgstr "Serienummer" -#: build/serializers.py:1212 stock/serializers.py:593 -#: templates/js/translated/build.js:1017 templates/js/translated/build.js:1164 -#: templates/js/translated/build.js:2516 +#: build/serializers.py:1257 stock/serializers.py:620 +#: templates/js/translated/build.js:1020 templates/js/translated/build.js:1167 +#: templates/js/translated/build.js:2523 msgid "Allocated Quantity" msgstr "" -#: build/serializers.py:1213 stock/templates/stock/item_base.html:340 +#: build/serializers.py:1258 stock/templates/stock/item_base.html:337 msgid "Available Quantity" msgstr "" -#: build/serializers.py:1283 +#: build/serializers.py:1335 msgid "Part Category ID" msgstr "" -#: build/serializers.py:1284 +#: build/serializers.py:1336 msgid "Part Category Name" msgstr "" -#: build/serializers.py:1291 common/models.py:1513 part/admin.py:113 -#: part/models.py:1166 templates/js/translated/table_filters.js:150 +#: build/serializers.py:1345 common/models.py:1582 part/admin.py:113 +#: part/models.py:1227 templates/js/translated/build.js:2738 +#: templates/js/translated/table_filters.js:150 #: templates/js/translated/table_filters.js:230 #: templates/js/translated/table_filters.js:783 msgid "Trackable" msgstr "" -#: build/serializers.py:1292 +#: build/serializers.py:1346 msgid "Inherited" msgstr "" -#: build/serializers.py:1293 part/models.py:4313 +#: build/serializers.py:1347 part/models.py:4370 #: part/templates/part/upload_bom.html:56 templates/js/translated/bom.js:1046 -#: templates/js/translated/build.js:2711 +#: templates/js/translated/build.js:2720 msgid "Allow Variants" msgstr "" -#: build/serializers.py:1297 part/models.py:4110 part/models.py:4584 +#: build/serializers.py:1351 part/models.py:4168 part/models.py:4646 #: stock/api.py:794 msgid "BOM Item" msgstr "" -#: build/serializers.py:1306 build/templates/build/detail.html:236 +#: build/serializers.py:1370 build/templates/build/detail.html:236 #: build/templates/build/sidebar.html:16 templates/js/translated/index.js:130 msgid "Allocated Stock" msgstr "" -#: build/serializers.py:1311 order/serializers.py:1175 part/admin.py:132 -#: part/bom.py:181 part/serializers.py:899 part/serializers.py:1602 -#: part/templates/part/part_base.html:210 templates/js/translated/bom.js:1208 -#: templates/js/translated/build.js:2804 templates/js/translated/part.js:712 +#: build/serializers.py:1375 order/serializers.py:1209 part/admin.py:132 +#: part/bom.py:186 part/serializers.py:951 part/serializers.py:1660 +#: part/templates/part/part_base.html:211 templates/js/translated/bom.js:1208 +#: templates/js/translated/build.js:2822 templates/js/translated/part.js:712 #: templates/js/translated/part.js:2155 #: templates/js/translated/table_filters.js:177 msgid "On Order" msgstr "" -#: build/serializers.py:1316 order/serializers.py:1176 part/serializers.py:1604 -#: templates/js/translated/build.js:2808 +#: build/serializers.py:1380 order/serializers.py:1210 part/serializers.py:1662 +#: templates/js/translated/build.js:2826 #: templates/js/translated/table_filters.js:367 msgid "In Production" msgstr "" -#: build/serializers.py:1321 part/bom.py:180 part/serializers.py:1629 -#: part/templates/part/part_base.html:192 -#: templates/js/translated/sales_order.js:1929 -msgid "Available Stock" -msgstr "" - -#: build/serializers.py:1325 -msgid "Available Substitute Stock" -msgstr "" - -#: build/serializers.py:1326 -msgid "Available Variant Stock" -msgstr "" - -#: build/serializers.py:1327 -msgid "Total Available Stock" -msgstr "" - -#: build/serializers.py:1328 part/serializers.py:906 +#: build/serializers.py:1384 part/serializers.py:958 msgid "External Stock" msgstr "" -#: build/status_codes.py:11 generic/states/tests.py:17 order/status_codes.py:12 -#: order/status_codes.py:42 order/status_codes.py:74 order/status_codes.py:98 +#: build/serializers.py:1385 part/bom.py:185 part/serializers.py:1687 +#: part/templates/part/part_base.html:193 +#: templates/js/translated/sales_order.js:1910 +msgid "Available Stock" +msgstr "" + +#: build/serializers.py:1386 +msgid "Available Substitute Stock" +msgstr "" + +#: build/serializers.py:1387 +msgid "Available Variant Stock" +msgstr "" + +#: build/status_codes.py:11 generic/states/tests.py:21 +#: generic/states/tests.py:131 order/status_codes.py:12 +#: order/status_codes.py:44 order/status_codes.py:76 order/status_codes.py:102 #: templates/js/translated/table_filters.js:601 msgid "Pending" msgstr "Väntar" @@ -1722,21 +1750,21 @@ msgstr "Väntar" msgid "Production" msgstr "Produktion" -#: build/status_codes.py:13 order/status_codes.py:14 order/status_codes.py:49 -#: order/status_codes.py:79 +#: build/status_codes.py:13 order/status_codes.py:14 order/status_codes.py:51 +#: order/status_codes.py:81 msgid "On Hold" msgstr "" -#: build/status_codes.py:14 order/status_codes.py:16 order/status_codes.py:51 -#: order/status_codes.py:82 +#: build/status_codes.py:14 order/status_codes.py:16 order/status_codes.py:53 +#: order/status_codes.py:84 msgid "Cancelled" msgstr "Avbruten" -#: build/status_codes.py:15 generic/states/tests.py:19 importer/models.py:509 -#: importer/status_codes.py:19 order/status_codes.py:15 -#: order/status_codes.py:50 order/status_codes.py:81 -#: order/templates/order/order_base.html:163 -#: order/templates/order/sales_order_base.html:168 report/models.py:443 +#: build/status_codes.py:15 generic/states/tests.py:23 importer/models.py:518 +#: importer/status_codes.py:27 order/status_codes.py:15 +#: order/status_codes.py:52 order/status_codes.py:83 +#: order/templates/order/order_base.html:172 +#: order/templates/order/sales_order_base.html:169 report/models.py:451 msgid "Complete" msgstr "Slutför" @@ -1744,165 +1772,162 @@ msgstr "Slutför" msgid "Stock required for build order" msgstr "" -#: build/tasks.py:201 +#: build/tasks.py:260 msgid "Overdue Build Order" msgstr "" -#: build/tasks.py:206 +#: build/tasks.py:265 #, python-brace-format msgid "Build order {bo} is now overdue" msgstr "" -#: build/templates/build/build_base.html:18 +#: build/templates/build/build_base.html:19 msgid "Part thumbnail" msgstr "" -#: build/templates/build/build_base.html:38 -#: company/templates/company/supplier_part.html:35 -#: order/templates/order/order_base.html:29 -#: order/templates/order/return_order_base.html:38 -#: order/templates/order/sales_order_base.html:38 -#: part/templates/part/part_base.html:41 -#: stock/templates/stock/item_base.html:40 -#: stock/templates/stock/location.html:52 +#: build/templates/build/build_base.html:39 +#: company/templates/company/supplier_part.html:36 +#: order/templates/order/order_base.html:30 +#: order/templates/order/return_order_base.html:39 +#: order/templates/order/sales_order_base.html:39 +#: part/templates/part/part_base.html:42 +#: stock/templates/stock/item_base.html:41 +#: stock/templates/stock/location.html:53 #: templates/js/translated/filters.js:338 msgid "Barcode actions" msgstr "" -#: build/templates/build/build_base.html:42 -#: company/templates/company/supplier_part.html:39 -#: order/templates/order/order_base.html:33 -#: order/templates/order/return_order_base.html:42 -#: order/templates/order/sales_order_base.html:42 -#: part/templates/part/part_base.html:44 -#: stock/templates/stock/item_base.html:44 -#: stock/templates/stock/location.html:54 templates/qr_button.html:1 +#: build/templates/build/build_base.html:43 +#: company/templates/company/supplier_part.html:40 +#: order/templates/order/order_base.html:34 +#: order/templates/order/return_order_base.html:43 +#: order/templates/order/sales_order_base.html:43 +#: part/templates/part/part_base.html:45 +#: stock/templates/stock/item_base.html:45 +#: stock/templates/stock/location.html:55 templates/qr_button.html:1 msgid "Show QR Code" msgstr "Visa QR-kod" -#: build/templates/build/build_base.html:45 -#: company/templates/company/supplier_part.html:41 -#: order/templates/order/order_base.html:36 -#: order/templates/order/return_order_base.html:45 -#: order/templates/order/sales_order_base.html:45 -#: part/templates/part/part_base.html:47 -#: stock/templates/stock/item_base.html:47 -#: stock/templates/stock/location.html:56 +#: build/templates/build/build_base.html:46 +#: company/templates/company/supplier_part.html:42 +#: order/templates/order/order_base.html:37 +#: order/templates/order/return_order_base.html:46 +#: order/templates/order/sales_order_base.html:46 +#: part/templates/part/part_base.html:48 +#: stock/templates/stock/item_base.html:48 +#: stock/templates/stock/location.html:57 #: templates/js/translated/barcode.js:527 #: templates/js/translated/barcode.js:532 msgid "Unlink Barcode" msgstr "" -#: build/templates/build/build_base.html:47 -#: company/templates/company/supplier_part.html:43 -#: order/templates/order/order_base.html:38 -#: order/templates/order/return_order_base.html:47 -#: order/templates/order/sales_order_base.html:47 -#: part/templates/part/part_base.html:49 -#: stock/templates/stock/item_base.html:49 -#: stock/templates/stock/location.html:58 +#: build/templates/build/build_base.html:48 +#: company/templates/company/supplier_part.html:44 +#: order/templates/order/order_base.html:39 +#: order/templates/order/return_order_base.html:48 +#: order/templates/order/sales_order_base.html:48 +#: part/templates/part/part_base.html:50 +#: stock/templates/stock/item_base.html:50 +#: stock/templates/stock/location.html:59 msgid "Link Barcode" msgstr "" -#: build/templates/build/build_base.html:56 -#: order/templates/order/order_base.html:46 -#: order/templates/order/return_order_base.html:55 -#: order/templates/order/sales_order_base.html:55 +#: build/templates/build/build_base.html:57 +#: order/templates/order/order_base.html:47 +#: order/templates/order/return_order_base.html:56 +#: order/templates/order/sales_order_base.html:56 msgid "Print actions" msgstr "" -#: build/templates/build/build_base.html:60 +#: build/templates/build/build_base.html:61 msgid "Print build order report" msgstr "" -#: build/templates/build/build_base.html:67 +#: build/templates/build/build_base.html:68 msgid "Build actions" msgstr "" -#: build/templates/build/build_base.html:71 +#: build/templates/build/build_base.html:72 msgid "Edit Build" msgstr "Redigera bygge" -#: build/templates/build/build_base.html:73 +#: build/templates/build/build_base.html:74 msgid "Duplicate Build" msgstr "" -#: build/templates/build/build_base.html:76 +#: build/templates/build/build_base.html:77 msgid "Hold Build" msgstr "" -#: build/templates/build/build_base.html:79 +#: build/templates/build/build_base.html:80 msgid "Cancel Build" msgstr "Avbryt bygge" -#: build/templates/build/build_base.html:82 +#: build/templates/build/build_base.html:83 msgid "Delete Build" msgstr "Ta bort bygge" -#: build/templates/build/build_base.html:87 -msgid "Isueue Build" -msgstr "" - #: build/templates/build/build_base.html:88 +#: build/templates/build/build_base.html:89 msgid "Issue Build" msgstr "" -#: build/templates/build/build_base.html:91 #: build/templates/build/build_base.html:92 +#: build/templates/build/build_base.html:93 msgid "Complete Build" msgstr "Färdigställ bygget" -#: build/templates/build/build_base.html:115 +#: build/templates/build/build_base.html:116 msgid "Build Description" msgstr "Byggbeskrivning" -#: build/templates/build/build_base.html:125 +#: build/templates/build/build_base.html:126 msgid "No build outputs have been created for this build order" msgstr "Inget utfall har skapats för denna tillverknings order" -#: build/templates/build/build_base.html:132 +#: build/templates/build/build_base.html:133 msgid "Build Order is ready to mark as completed" msgstr "" -#: build/templates/build/build_base.html:137 +#: build/templates/build/build_base.html:138 msgid "Build Order cannot be completed as outstanding outputs remain" msgstr "Tillverknings order kan inte slutföras eftersom produktion återstår" -#: build/templates/build/build_base.html:142 +#: build/templates/build/build_base.html:143 msgid "Required build quantity has not yet been completed" msgstr "" -#: build/templates/build/build_base.html:147 +#: build/templates/build/build_base.html:148 msgid "Stock has not been fully allocated to this Build Order" msgstr "" -#: build/templates/build/build_base.html:168 -#: build/templates/build/detail.html:138 order/models.py:308 -#: order/models.py:1391 order/serializers.py:174 -#: order/templates/order/order_base.html:191 -#: order/templates/order/return_order_base.html:167 -#: order/templates/order/sales_order_base.html:199 +#: build/templates/build/build_base.html:169 +#: build/templates/build/detail.html:138 order/models.py:315 +#: order/models.py:1408 order/serializers.py:254 +#: order/templates/order/order_base.html:200 +#: order/templates/order/return_order_base.html:168 +#: order/templates/order/sales_order_base.html:200 #: report/templates/report/inventree_build_order_report.html:125 -#: templates/js/translated/build.js:2411 templates/js/translated/part.js:1837 -#: templates/js/translated/purchase_order.js:1809 -#: templates/js/translated/purchase_order.js:2217 +#: templates/js/translated/build.js:2414 templates/js/translated/part.js:1837 +#: templates/js/translated/purchase_order.js:1793 +#: templates/js/translated/purchase_order.js:2201 #: templates/js/translated/return_order.js:346 #: templates/js/translated/return_order.js:749 -#: templates/js/translated/sales_order.js:871 -#: templates/js/translated/sales_order.js:1903 +#: templates/js/translated/sales_order.js:830 +#: templates/js/translated/sales_order.js:1884 msgid "Target Date" msgstr "Måldatum" -#: build/templates/build/build_base.html:173 +#: build/templates/build/build_base.html:174 #, python-format msgid "This build was due on %(target)s" msgstr "" -#: build/templates/build/build_base.html:173 -#: build/templates/build/build_base.html:230 -#: order/templates/order/order_base.html:127 -#: order/templates/order/return_order_base.html:120 -#: order/templates/order/sales_order_base.html:129 +#: build/templates/build/build_base.html:174 +#: build/templates/build/build_base.html:231 +#: order/templates/order/order_base.html:128 +#: order/templates/order/return_order_base.html:121 +#: order/templates/order/sales_order_base.html:130 #: templates/js/translated/table_filters.js:97 #: templates/js/translated/table_filters.js:545 #: templates/js/translated/table_filters.js:629 @@ -1910,49 +1935,50 @@ msgstr "" msgid "Overdue" msgstr "Försenad" -#: build/templates/build/build_base.html:185 +#: build/templates/build/build_base.html:186 #: build/templates/build/detail.html:67 build/templates/build/sidebar.html:13 msgid "Completed Outputs" msgstr "Slutförd produktion" -#: build/templates/build/build_base.html:198 -#: build/templates/build/detail.html:101 order/api.py:1406 order/models.py:892 -#: order/models.py:1650 order/models.py:1765 order/models.py:1924 -#: order/templates/order/sales_order_base.html:9 -#: order/templates/order/sales_order_base.html:28 +#: build/templates/build/build_base.html:199 +#: build/templates/build/detail.html:101 order/api.py:1528 order/models.py:914 +#: order/models.py:1666 order/models.py:1794 order/models.py:1957 +#: order/templates/order/sales_order_base.html:10 +#: order/templates/order/sales_order_base.html:29 #: report/templates/report/inventree_build_order_report.html:135 #: report/templates/report/inventree_sales_order_report.html:14 -#: stock/templates/stock/item_base.html:369 +#: report/templates/report/inventree_sales_order_shipment_report.html:15 +#: stock/templates/stock/item_base.html:366 #: templates/email/overdue_sales_order.html:15 -#: templates/js/translated/pricing.js:929 -#: templates/js/translated/sales_order.js:805 -#: templates/js/translated/sales_order.js:1028 -#: templates/js/translated/stock.js:3008 +#: templates/js/translated/pricing.js:927 +#: templates/js/translated/sales_order.js:764 +#: templates/js/translated/sales_order.js:1001 +#: templates/js/translated/stock.js:3009 msgid "Sales Order" msgstr "Försäljningsorder" -#: build/templates/build/build_base.html:219 -#: build/templates/build/detail.html:94 templates/js/translated/build.js:2328 +#: build/templates/build/build_base.html:220 +#: build/templates/build/detail.html:94 templates/js/translated/build.js:2331 msgid "Priority" msgstr "" -#: build/templates/build/build_base.html:267 +#: build/templates/build/build_base.html:268 msgid "Issue Build Order" msgstr "" -#: build/templates/build/build_base.html:271 +#: build/templates/build/build_base.html:272 msgid "Issue this Build Order?" msgstr "" -#: build/templates/build/build_base.html:302 +#: build/templates/build/build_base.html:303 msgid "Delete Build Order" msgstr "" -#: build/templates/build/build_base.html:312 +#: build/templates/build/build_base.html:313 msgid "Build Order QR Code" msgstr "" -#: build/templates/build/build_base.html:324 +#: build/templates/build/build_base.html:325 msgid "Link Barcode to Build Order" msgstr "" @@ -1968,8 +1994,9 @@ msgstr "" msgid "Stock can be taken from any available location." msgstr "" -#: build/templates/build/detail.html:49 order/models.py:1532 -#: templates/js/translated/purchase_order.js:2259 +#: build/templates/build/detail.html:49 order/models.py:548 +#: order/models.py:1548 order/templates/order/order_base.html:135 +#: templates/js/translated/purchase_order.js:2243 msgid "Destination" msgstr "Mål" @@ -1981,23 +2008,24 @@ msgstr "" msgid "Allocated Parts" msgstr "" -#: build/templates/build/detail.html:80 stock/admin.py:162 -#: stock/templates/stock/item_base.html:162 -#: templates/js/translated/build.js:1553 -#: templates/js/translated/model_renderers.js:242 -#: templates/js/translated/purchase_order.js:1326 +#: build/templates/build/detail.html:80 +#: report/templates/report/inventree_sales_order_shipment_report.html:47 +#: stock/admin.py:163 stock/templates/stock/item_base.html:159 +#: templates/js/translated/build.js:1556 +#: templates/js/translated/model_renderers.js:245 +#: templates/js/translated/purchase_order.js:1309 #: templates/js/translated/stock.js:1139 templates/js/translated/stock.js:1240 -#: templates/js/translated/stock.js:2275 templates/js/translated/stock.js:3211 +#: templates/js/translated/stock.js:2276 templates/js/translated/stock.js:3212 #: templates/js/translated/table_filters.js:320 #: templates/js/translated/table_filters.js:411 msgid "Batch" msgstr "" #: build/templates/build/detail.html:133 -#: order/templates/order/order_base.html:178 -#: order/templates/order/return_order_base.html:154 -#: order/templates/order/sales_order_base.html:193 -#: templates/js/translated/build.js:2371 +#: order/templates/order/order_base.html:187 +#: order/templates/order/return_order_base.html:155 +#: order/templates/order/sales_order_base.html:194 +#: templates/js/translated/build.js:2374 msgid "Created" msgstr "Skapad" @@ -2005,8 +2033,8 @@ msgstr "Skapad" msgid "No target date set" msgstr "" -#: build/templates/build/detail.html:149 -#: order/templates/order/sales_order_base.html:209 +#: build/templates/build/detail.html:149 order/api.py:794 +#: order/templates/order/sales_order_base.html:210 #: templates/js/translated/table_filters.js:692 msgid "Completed" msgstr "Slutförd" @@ -2052,7 +2080,7 @@ msgid "Order required parts" msgstr "Beställ obligatoriska delar" #: build/templates/build/detail.html:192 -#: templates/js/translated/purchase_order.js:795 +#: templates/js/translated/purchase_order.js:778 msgid "Order Parts" msgstr "Beställ delar" @@ -2120,7 +2148,7 @@ msgstr "Ny byggorder" msgid "Build Order Details" msgstr "" -#: build/templates/build/sidebar.html:8 order/serializers.py:82 +#: build/templates/build/sidebar.html:8 order/serializers.py:113 #: order/templates/order/po_sidebar.html:5 #: order/templates/order/return_order_detail.html:18 #: order/templates/order/so_sidebar.html:5 @@ -2139,43 +2167,38 @@ msgstr "Ofullständig produktion" msgid "Test Statistics" msgstr "" -#: common/api.py:693 +#: common/api.py:725 msgid "Is Link" -msgstr "" +msgstr "Är länk" -#: common/api.py:701 +#: common/api.py:733 msgid "Is File" -msgstr "" +msgstr "Är fil" -#: common/api.py:744 +#: common/api.py:776 msgid "User does not have permission to delete these attachments" msgstr "" -#: common/api.py:761 +#: common/api.py:793 msgid "User does not have permission to delete this attachment" msgstr "" -#: common/currency.py:132 +#: common/currency.py:134 msgid "Invalid currency code" msgstr "Ogiltig valutakod" -#: common/currency.py:134 +#: common/currency.py:136 msgid "Duplicate currency code" msgstr "" -#: common/currency.py:139 +#: common/currency.py:141 msgid "No valid currency codes provided" msgstr "" -#: common/currency.py:156 +#: common/currency.py:158 msgid "No plugin" msgstr "" -#: common/files.py:63 -#, python-brace-format -msgid "Unsupported file format: {fmt}" -msgstr "" - #: common/files.py:65 msgid "Error reading file (invalid encoding)" msgstr "Fel vid läsning av fil (ogiltig kodning)" @@ -2192,1883 +2215,2039 @@ msgstr "Fel vid läsning av filen (felaktig dimension)" msgid "Error reading file (data could be corrupted)" msgstr "Fel vid läsning av fil (data kan vara skadat)" -#: common/forms.py:12 +#: common/forms.py:12 common/forms.py:25 msgid "File" msgstr "Fil" -#: common/forms.py:12 +#: common/forms.py:12 common/forms.py:26 msgid "Select file to upload" msgstr "Välj en fil att ladda upp" -#: common/forms.py:25 -msgid "{name.title()} File" -msgstr "{name.title()} Fil" - -#: common/forms.py:26 -#, python-brace-format -msgid "Select {name} file to upload" -msgstr "" - -#: common/models.py:86 +#: common/models.py:89 msgid "Updated" msgstr "" -#: common/models.py:87 +#: common/models.py:90 msgid "Timestamp of last update" msgstr "" -#: common/models.py:120 +#: common/models.py:123 msgid "Site URL is locked by configuration" msgstr "" -#: common/models.py:150 +#: common/models.py:153 msgid "Unique project code" msgstr "Unik projektkod" -#: common/models.py:157 +#: common/models.py:160 msgid "Project description" msgstr "Projektbeskrivning" -#: common/models.py:166 +#: common/models.py:169 msgid "User or group responsible for this project" msgstr "" -#: common/models.py:783 -msgid "Settings key (must be unique - case insensitive)" +#: common/models.py:783 common/models.py:2236 common/models.py:2613 +msgid "Settings key" msgstr "" #: common/models.py:787 msgid "Settings value" msgstr "" -#: common/models.py:839 +#: common/models.py:842 msgid "Chosen value is not a valid option" msgstr "" -#: common/models.py:855 +#: common/models.py:858 msgid "Value must be a boolean value" msgstr "" -#: common/models.py:863 +#: common/models.py:866 msgid "Value must be an integer value" msgstr "" -#: common/models.py:900 +#: common/models.py:874 +msgid "Value must be a valid number" +msgstr "" + +#: common/models.py:899 +msgid "Value does not pass validation checks" +msgstr "" + +#: common/models.py:921 msgid "Key string must be unique" msgstr "" -#: common/models.py:1132 +#: common/models.py:1189 msgid "No group" msgstr "Ingen grupp" -#: common/models.py:1231 +#: common/models.py:1288 msgid "Restart required" msgstr "Omstart krävs" -#: common/models.py:1233 +#: common/models.py:1290 msgid "A setting has been changed which requires a server restart" msgstr "" -#: common/models.py:1240 +#: common/models.py:1297 msgid "Pending migrations" msgstr "" -#: common/models.py:1241 +#: common/models.py:1298 msgid "Number of pending database migrations" msgstr "" -#: common/models.py:1246 +#: common/models.py:1303 msgid "Server Instance Name" msgstr "Serverinstans (Namn)" -#: common/models.py:1248 +#: common/models.py:1305 msgid "String descriptor for the server instance" msgstr "" -#: common/models.py:1252 +#: common/models.py:1309 msgid "Use instance name" msgstr "" -#: common/models.py:1253 +#: common/models.py:1310 msgid "Use the instance name in the title-bar" msgstr "" -#: common/models.py:1258 +#: common/models.py:1315 msgid "Restrict showing `about`" msgstr "" -#: common/models.py:1259 +#: common/models.py:1316 msgid "Show the `about` modal only to superusers" msgstr "" -#: common/models.py:1264 company/models.py:111 company/models.py:112 +#: common/models.py:1321 company/models.py:108 company/models.py:109 msgid "Company name" msgstr "Företagsnamn" -#: common/models.py:1265 +#: common/models.py:1322 msgid "Internal company name" msgstr "Internt företagsnamn" -#: common/models.py:1269 +#: common/models.py:1326 msgid "Base URL" msgstr "Bas-URL" -#: common/models.py:1270 +#: common/models.py:1327 msgid "Base URL for server instance" msgstr "Bas-URL för serverinstans" -#: common/models.py:1276 +#: common/models.py:1333 msgid "Default Currency" msgstr "Standardvaluta" -#: common/models.py:1277 +#: common/models.py:1334 msgid "Select base currency for pricing calculations" msgstr "" -#: common/models.py:1283 +#: common/models.py:1340 msgid "Supported Currencies" msgstr "" -#: common/models.py:1284 +#: common/models.py:1341 msgid "List of supported currency codes" msgstr "" -#: common/models.py:1290 +#: common/models.py:1347 msgid "Currency Update Interval" msgstr "" -#: common/models.py:1292 +#: common/models.py:1349 msgid "How often to update exchange rates (set to zero to disable)" msgstr "" -#: common/models.py:1295 common/models.py:1351 common/models.py:1364 -#: common/models.py:1372 common/models.py:1381 common/models.py:1390 -#: common/models.py:1627 common/models.py:1649 common/models.py:1764 -#: common/models.py:2146 +#: common/models.py:1352 common/models.py:1408 common/models.py:1421 +#: common/models.py:1429 common/models.py:1438 common/models.py:1447 +#: common/models.py:1696 common/models.py:1718 common/models.py:1819 +#: common/models.py:2208 msgid "days" msgstr "dagar" -#: common/models.py:1299 +#: common/models.py:1356 msgid "Currency Update Plugin" msgstr "" -#: common/models.py:1300 +#: common/models.py:1357 msgid "Currency update plugin to use" msgstr "" -#: common/models.py:1305 +#: common/models.py:1362 msgid "Download from URL" msgstr "Ladda ner från URL" -#: common/models.py:1307 +#: common/models.py:1364 msgid "Allow download of remote images and files from external URL" msgstr "Tillåt nedladdning av bilder och filer från extern URL" -#: common/models.py:1313 +#: common/models.py:1370 msgid "Download Size Limit" msgstr "" -#: common/models.py:1314 +#: common/models.py:1371 msgid "Maximum allowable download size for remote image" msgstr "" -#: common/models.py:1320 +#: common/models.py:1377 msgid "User-agent used to download from URL" msgstr "" -#: common/models.py:1322 +#: common/models.py:1379 msgid "Allow to override the user-agent used to download images and files from external URL (leave blank for the default)" msgstr "" -#: common/models.py:1327 +#: common/models.py:1384 msgid "Strict URL Validation" msgstr "" -#: common/models.py:1328 +#: common/models.py:1385 msgid "Require schema specification when validating URLs" msgstr "" -#: common/models.py:1333 +#: common/models.py:1390 msgid "Require confirm" msgstr "Kräv bekräftelse" -#: common/models.py:1334 +#: common/models.py:1391 msgid "Require explicit user confirmation for certain action." msgstr "Kräv uttrycklig användarbekräftelse för vissa åtgärder." -#: common/models.py:1339 +#: common/models.py:1396 msgid "Tree Depth" msgstr "" -#: common/models.py:1341 +#: common/models.py:1398 msgid "Default tree depth for treeview. Deeper levels can be lazy loaded as they are needed." msgstr "" -#: common/models.py:1347 +#: common/models.py:1404 msgid "Update Check Interval" msgstr "" -#: common/models.py:1348 +#: common/models.py:1405 msgid "How often to check for updates (set to zero to disable)" msgstr "" -#: common/models.py:1354 +#: common/models.py:1411 msgid "Automatic Backup" msgstr "" -#: common/models.py:1355 +#: common/models.py:1412 msgid "Enable automatic backup of database and media files" msgstr "" -#: common/models.py:1360 +#: common/models.py:1417 msgid "Auto Backup Interval" msgstr "" -#: common/models.py:1361 +#: common/models.py:1418 msgid "Specify number of days between automated backup events" msgstr "" -#: common/models.py:1367 +#: common/models.py:1424 msgid "Task Deletion Interval" msgstr "" -#: common/models.py:1369 +#: common/models.py:1426 msgid "Background task results will be deleted after specified number of days" msgstr "" -#: common/models.py:1376 +#: common/models.py:1433 msgid "Error Log Deletion Interval" msgstr "" -#: common/models.py:1378 +#: common/models.py:1435 msgid "Error logs will be deleted after specified number of days" msgstr "" -#: common/models.py:1385 +#: common/models.py:1442 msgid "Notification Deletion Interval" msgstr "" -#: common/models.py:1387 +#: common/models.py:1444 msgid "User notifications will be deleted after specified number of days" msgstr "" -#: common/models.py:1394 templates/InvenTree/settings/sidebar.html:31 +#: common/models.py:1451 templates/InvenTree/settings/sidebar.html:31 msgid "Barcode Support" msgstr "Stöd för streckkoder" -#: common/models.py:1395 +#: common/models.py:1452 msgid "Enable barcode scanner support in the web interface" msgstr "" -#: common/models.py:1400 +#: common/models.py:1457 +msgid "Store Barcode Results" +msgstr "" + +#: common/models.py:1458 +msgid "Store barcode scan results in the database" +msgstr "" + +#: common/models.py:1463 +msgid "Barcode Scans Maximum Count" +msgstr "" + +#: common/models.py:1464 +msgid "Maximum number of barcode scan results to store" +msgstr "" + +#: common/models.py:1469 msgid "Barcode Input Delay" msgstr "" -#: common/models.py:1401 +#: common/models.py:1470 msgid "Barcode input processing delay time" msgstr "" -#: common/models.py:1407 +#: common/models.py:1476 msgid "Barcode Webcam Support" msgstr "" -#: common/models.py:1408 +#: common/models.py:1477 msgid "Allow barcode scanning via webcam in browser" msgstr "" -#: common/models.py:1413 +#: common/models.py:1482 msgid "Barcode Show Data" msgstr "" -#: common/models.py:1414 +#: common/models.py:1483 msgid "Display barcode data in browser as text" msgstr "" -#: common/models.py:1419 +#: common/models.py:1488 msgid "Barcode Generation Plugin" msgstr "" -#: common/models.py:1420 +#: common/models.py:1489 msgid "Plugin to use for internal barcode data generation" msgstr "" -#: common/models.py:1425 +#: common/models.py:1494 msgid "Part Revisions" msgstr "" -#: common/models.py:1426 +#: common/models.py:1495 msgid "Enable revision field for Part" msgstr "" -#: common/models.py:1431 +#: common/models.py:1500 msgid "Assembly Revision Only" msgstr "" -#: common/models.py:1432 +#: common/models.py:1501 msgid "Only allow revisions for assembly parts" msgstr "" -#: common/models.py:1437 +#: common/models.py:1506 msgid "Allow Deletion from Assembly" msgstr "" -#: common/models.py:1438 +#: common/models.py:1507 msgid "Allow deletion of parts which are used in an assembly" msgstr "" -#: common/models.py:1443 +#: common/models.py:1512 msgid "IPN Regex" msgstr "" -#: common/models.py:1444 +#: common/models.py:1513 msgid "Regular expression pattern for matching Part IPN" msgstr "" -#: common/models.py:1447 +#: common/models.py:1516 msgid "Allow Duplicate IPN" msgstr "" -#: common/models.py:1448 +#: common/models.py:1517 msgid "Allow multiple parts to share the same IPN" msgstr "" -#: common/models.py:1453 +#: common/models.py:1522 msgid "Allow Editing IPN" msgstr "" -#: common/models.py:1454 +#: common/models.py:1523 msgid "Allow changing the IPN value while editing a part" msgstr "" -#: common/models.py:1459 +#: common/models.py:1528 msgid "Copy Part BOM Data" msgstr "" -#: common/models.py:1460 +#: common/models.py:1529 msgid "Copy BOM data by default when duplicating a part" msgstr "" -#: common/models.py:1465 +#: common/models.py:1534 msgid "Copy Part Parameter Data" msgstr "" -#: common/models.py:1466 +#: common/models.py:1535 msgid "Copy parameter data by default when duplicating a part" msgstr "" -#: common/models.py:1471 +#: common/models.py:1540 msgid "Copy Part Test Data" msgstr "" -#: common/models.py:1472 +#: common/models.py:1541 msgid "Copy test data by default when duplicating a part" msgstr "" -#: common/models.py:1477 +#: common/models.py:1546 msgid "Copy Category Parameter Templates" msgstr "" -#: common/models.py:1478 +#: common/models.py:1547 msgid "Copy category parameter templates when creating a part" msgstr "" -#: common/models.py:1483 part/admin.py:108 part/models.py:3945 -#: report/models.py:293 report/models.py:360 report/serializers.py:90 -#: report/serializers.py:131 stock/serializers.py:232 +#: common/models.py:1552 part/admin.py:108 part/models.py:4003 +#: report/models.py:301 report/models.py:368 report/serializers.py:91 +#: report/serializers.py:132 stock/serializers.py:233 #: templates/js/translated/table_filters.js:138 #: templates/js/translated/table_filters.js:775 msgid "Template" msgstr "Mall" -#: common/models.py:1484 +#: common/models.py:1553 msgid "Parts are templates by default" msgstr "" -#: common/models.py:1490 +#: common/models.py:1559 msgid "Parts can be assembled from other components by default" msgstr "" -#: common/models.py:1495 part/admin.py:95 part/models.py:1160 -#: part/serializers.py:1596 templates/js/translated/table_filters.js:737 +#: common/models.py:1564 part/admin.py:95 part/models.py:1221 +#: part/serializers.py:1654 templates/js/translated/table_filters.js:737 msgid "Component" msgstr "" -#: common/models.py:1496 +#: common/models.py:1565 msgid "Parts can be used as sub-components by default" msgstr "" -#: common/models.py:1501 part/admin.py:100 part/models.py:1178 +#: common/models.py:1570 part/admin.py:100 part/models.py:1239 msgid "Purchaseable" msgstr "" -#: common/models.py:1502 +#: common/models.py:1571 msgid "Parts are purchaseable by default" msgstr "" -#: common/models.py:1507 part/admin.py:104 part/models.py:1184 +#: common/models.py:1576 part/admin.py:104 part/models.py:1245 #: templates/js/translated/table_filters.js:763 msgid "Salable" msgstr "" -#: common/models.py:1508 +#: common/models.py:1577 msgid "Parts are salable by default" msgstr "" -#: common/models.py:1514 +#: common/models.py:1583 msgid "Parts are trackable by default" msgstr "" -#: common/models.py:1519 part/admin.py:117 part/models.py:1200 -#: part/templates/part/part_base.html:154 +#: common/models.py:1588 part/admin.py:117 part/models.py:1261 +#: part/templates/part/part_base.html:155 #: templates/js/translated/table_filters.js:142 #: templates/js/translated/table_filters.js:787 msgid "Virtual" msgstr "Virtuell" -#: common/models.py:1520 +#: common/models.py:1589 msgid "Parts are virtual by default" msgstr "Delar är virtuella som standard" -#: common/models.py:1525 +#: common/models.py:1594 msgid "Show Import in Views" msgstr "Visa import i vyer" -#: common/models.py:1526 +#: common/models.py:1595 msgid "Display the import wizard in some part views" msgstr "Visa importguiden i vissa delvyer" -#: common/models.py:1531 +#: common/models.py:1600 msgid "Show related parts" msgstr "Visa relaterade delar" -#: common/models.py:1532 +#: common/models.py:1601 msgid "Display related parts for a part" msgstr "Visa relaterade delar för en del" -#: common/models.py:1537 +#: common/models.py:1606 msgid "Initial Stock Data" msgstr "" -#: common/models.py:1538 +#: common/models.py:1607 msgid "Allow creation of initial stock when adding a new part" msgstr "" -#: common/models.py:1543 templates/js/translated/part.js:108 +#: common/models.py:1612 templates/js/translated/part.js:108 msgid "Initial Supplier Data" msgstr "" -#: common/models.py:1545 +#: common/models.py:1614 msgid "Allow creation of initial supplier data when adding a new part" msgstr "" -#: common/models.py:1551 +#: common/models.py:1620 msgid "Part Name Display Format" msgstr "Visningsformat för delnamn" -#: common/models.py:1552 +#: common/models.py:1621 msgid "Format to display the part name" msgstr "Formatera för att visa artikelnamnet" -#: common/models.py:1558 +#: common/models.py:1627 msgid "Part Category Default Icon" msgstr "" -#: common/models.py:1559 +#: common/models.py:1628 msgid "Part category default icon (empty means no icon)" msgstr "" -#: common/models.py:1564 +#: common/models.py:1633 msgid "Enforce Parameter Units" msgstr "" -#: common/models.py:1566 +#: common/models.py:1635 msgid "If units are provided, parameter values must match the specified units" msgstr "" -#: common/models.py:1572 +#: common/models.py:1641 msgid "Minimum Pricing Decimal Places" msgstr "" -#: common/models.py:1574 +#: common/models.py:1643 msgid "Minimum number of decimal places to display when rendering pricing data" msgstr "" -#: common/models.py:1585 +#: common/models.py:1654 msgid "Maximum Pricing Decimal Places" msgstr "" -#: common/models.py:1587 +#: common/models.py:1656 msgid "Maximum number of decimal places to display when rendering pricing data" msgstr "" -#: common/models.py:1598 +#: common/models.py:1667 msgid "Use Supplier Pricing" msgstr "" -#: common/models.py:1600 +#: common/models.py:1669 msgid "Include supplier price breaks in overall pricing calculations" msgstr "" -#: common/models.py:1606 +#: common/models.py:1675 msgid "Purchase History Override" msgstr "" -#: common/models.py:1608 +#: common/models.py:1677 msgid "Historical purchase order pricing overrides supplier price breaks" msgstr "" -#: common/models.py:1614 +#: common/models.py:1683 msgid "Use Stock Item Pricing" msgstr "" -#: common/models.py:1616 +#: common/models.py:1685 msgid "Use pricing from manually entered stock data for pricing calculations" msgstr "" -#: common/models.py:1622 +#: common/models.py:1691 msgid "Stock Item Pricing Age" msgstr "" -#: common/models.py:1624 +#: common/models.py:1693 msgid "Exclude stock items older than this number of days from pricing calculations" msgstr "" -#: common/models.py:1631 +#: common/models.py:1700 msgid "Use Variant Pricing" msgstr "" -#: common/models.py:1632 +#: common/models.py:1701 msgid "Include variant pricing in overall pricing calculations" msgstr "" -#: common/models.py:1637 +#: common/models.py:1706 msgid "Active Variants Only" msgstr "" -#: common/models.py:1639 +#: common/models.py:1708 msgid "Only use active variant parts for calculating variant pricing" msgstr "" -#: common/models.py:1645 +#: common/models.py:1714 msgid "Pricing Rebuild Interval" msgstr "" -#: common/models.py:1647 +#: common/models.py:1716 msgid "Number of days before part pricing is automatically updated" msgstr "" -#: common/models.py:1654 +#: common/models.py:1723 msgid "Internal Prices" msgstr "Interna priser" -#: common/models.py:1655 +#: common/models.py:1724 msgid "Enable internal prices for parts" msgstr "" -#: common/models.py:1660 +#: common/models.py:1729 msgid "Internal Price Override" msgstr "" -#: common/models.py:1662 +#: common/models.py:1731 msgid "If available, internal prices override price range calculations" msgstr "" -#: common/models.py:1668 +#: common/models.py:1737 msgid "Enable label printing" msgstr "Aktivera etikettutskrift" -#: common/models.py:1669 +#: common/models.py:1738 msgid "Enable label printing from the web interface" msgstr "Aktivera etikettutskrift från webbgränssnittet" -#: common/models.py:1674 +#: common/models.py:1743 msgid "Label Image DPI" msgstr "Etikettbild DPI" -#: common/models.py:1676 +#: common/models.py:1745 msgid "DPI resolution when generating image files to supply to label printing plugins" msgstr "" -#: common/models.py:1682 +#: common/models.py:1751 msgid "Enable Reports" msgstr "Aktivera rapporter" -#: common/models.py:1683 +#: common/models.py:1752 msgid "Enable generation of reports" msgstr "Aktivera generering av rapporter" -#: common/models.py:1688 templates/stats.html:25 +#: common/models.py:1757 templates/stats.html:25 msgid "Debug Mode" msgstr "Debugläge" -#: common/models.py:1689 +#: common/models.py:1758 msgid "Generate reports in debug mode (HTML output)" msgstr "" -#: common/models.py:1694 +#: common/models.py:1763 msgid "Log Report Errors" msgstr "" -#: common/models.py:1695 +#: common/models.py:1764 msgid "Log errors which occur when generating reports" msgstr "" -#: common/models.py:1700 plugin/builtin/labels/label_sheet.py:28 -#: report/models.py:301 +#: common/models.py:1769 plugin/builtin/labels/label_sheet.py:28 +#: report/models.py:309 msgid "Page Size" msgstr "Sidstorlek" -#: common/models.py:1701 +#: common/models.py:1770 msgid "Default page size for PDF reports" msgstr "Standard sidstorlek för PDF-rapporter" -#: common/models.py:1706 -msgid "Enable Test Reports" -msgstr "Aktivera testrapporter" - -#: common/models.py:1707 -msgid "Enable generation of test reports" -msgstr "" - -#: common/models.py:1712 -msgid "Attach Test Reports" -msgstr "" - -#: common/models.py:1714 -msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item" -msgstr "" - -#: common/models.py:1720 +#: common/models.py:1775 msgid "Globally Unique Serials" msgstr "" -#: common/models.py:1721 +#: common/models.py:1776 msgid "Serial numbers for stock items must be globally unique" msgstr "" -#: common/models.py:1726 +#: common/models.py:1781 msgid "Autofill Serial Numbers" msgstr "" -#: common/models.py:1727 +#: common/models.py:1782 msgid "Autofill serial numbers in forms" msgstr "" -#: common/models.py:1732 +#: common/models.py:1787 msgid "Delete Depleted Stock" msgstr "" -#: common/models.py:1734 +#: common/models.py:1789 msgid "Determines default behavior when a stock item is depleted" msgstr "" -#: common/models.py:1740 +#: common/models.py:1795 msgid "Batch Code Template" msgstr "" -#: common/models.py:1742 +#: common/models.py:1797 msgid "Template for generating default batch codes for stock items" msgstr "" -#: common/models.py:1747 +#: common/models.py:1802 msgid "Stock Expiry" msgstr "" -#: common/models.py:1748 +#: common/models.py:1803 msgid "Enable stock expiry functionality" msgstr "" -#: common/models.py:1753 +#: common/models.py:1808 msgid "Sell Expired Stock" msgstr "" -#: common/models.py:1754 +#: common/models.py:1809 msgid "Allow sale of expired stock" msgstr "" -#: common/models.py:1759 +#: common/models.py:1814 msgid "Stock Stale Time" msgstr "" -#: common/models.py:1761 +#: common/models.py:1816 msgid "Number of days stock items are considered stale before expiring" msgstr "" -#: common/models.py:1768 +#: common/models.py:1823 msgid "Build Expired Stock" msgstr "" -#: common/models.py:1769 +#: common/models.py:1824 msgid "Allow building with expired stock" msgstr "" -#: common/models.py:1774 +#: common/models.py:1829 msgid "Stock Ownership Control" msgstr "" -#: common/models.py:1775 +#: common/models.py:1830 msgid "Enable ownership control over stock locations and items" msgstr "" -#: common/models.py:1780 +#: common/models.py:1835 msgid "Stock Location Default Icon" msgstr "" -#: common/models.py:1781 +#: common/models.py:1836 msgid "Stock location default icon (empty means no icon)" msgstr "" -#: common/models.py:1786 +#: common/models.py:1841 msgid "Show Installed Stock Items" msgstr "" -#: common/models.py:1787 +#: common/models.py:1842 msgid "Display installed stock items in stock tables" msgstr "" -#: common/models.py:1792 +#: common/models.py:1847 msgid "Check BOM when installing items" msgstr "" -#: common/models.py:1794 +#: common/models.py:1849 msgid "Installed stock items must exist in the BOM for the parent part" msgstr "" -#: common/models.py:1800 +#: common/models.py:1855 msgid "Allow Out of Stock Transfer" msgstr "" -#: common/models.py:1802 +#: common/models.py:1857 msgid "Allow stock items which are not in stock to be transferred between stock locations" msgstr "" -#: common/models.py:1808 +#: common/models.py:1863 msgid "Build Order Reference Pattern" msgstr "" -#: common/models.py:1810 +#: common/models.py:1865 msgid "Required pattern for generating Build Order reference field" msgstr "" -#: common/models.py:1816 common/models.py:1872 common/models.py:1894 -#: common/models.py:1930 +#: common/models.py:1871 common/models.py:1927 common/models.py:1949 +#: common/models.py:1985 msgid "Require Responsible Owner" msgstr "" -#: common/models.py:1817 common/models.py:1873 common/models.py:1895 -#: common/models.py:1931 +#: common/models.py:1872 common/models.py:1928 common/models.py:1950 +#: common/models.py:1986 msgid "A responsible owner must be assigned to each order" msgstr "" -#: common/models.py:1822 +#: common/models.py:1877 msgid "Require Active Part" msgstr "" -#: common/models.py:1823 +#: common/models.py:1878 msgid "Prevent build order creation for inactive parts" msgstr "" -#: common/models.py:1828 +#: common/models.py:1883 msgid "Require Locked Part" msgstr "" -#: common/models.py:1829 +#: common/models.py:1884 msgid "Prevent build order creation for unlocked parts" msgstr "" -#: common/models.py:1834 +#: common/models.py:1889 msgid "Require Valid BOM" msgstr "" -#: common/models.py:1836 +#: common/models.py:1891 msgid "Prevent build order creation unless BOM has been validated" msgstr "" -#: common/models.py:1842 +#: common/models.py:1897 msgid "Require Closed Child Orders" msgstr "" -#: common/models.py:1844 +#: common/models.py:1899 msgid "Prevent build order completion until all child orders are closed" msgstr "" -#: common/models.py:1850 +#: common/models.py:1905 msgid "Block Until Tests Pass" msgstr "" -#: common/models.py:1852 +#: common/models.py:1907 msgid "Prevent build outputs from being completed until all required tests pass" msgstr "Förhindra produktion från att slutföras tills alla nödvändiga tester är klara" -#: common/models.py:1858 +#: common/models.py:1913 msgid "Enable Return Orders" msgstr "" -#: common/models.py:1859 +#: common/models.py:1914 msgid "Enable return order functionality in the user interface" msgstr "" -#: common/models.py:1864 +#: common/models.py:1919 msgid "Return Order Reference Pattern" msgstr "" -#: common/models.py:1866 +#: common/models.py:1921 msgid "Required pattern for generating Return Order reference field" msgstr "" -#: common/models.py:1878 +#: common/models.py:1933 msgid "Edit Completed Return Orders" msgstr "" -#: common/models.py:1880 +#: common/models.py:1935 msgid "Allow editing of return orders after they have been completed" msgstr "" -#: common/models.py:1886 +#: common/models.py:1941 msgid "Sales Order Reference Pattern" msgstr "" -#: common/models.py:1888 +#: common/models.py:1943 msgid "Required pattern for generating Sales Order reference field" msgstr "" -#: common/models.py:1900 +#: common/models.py:1955 msgid "Sales Order Default Shipment" msgstr "" -#: common/models.py:1901 +#: common/models.py:1956 msgid "Enable creation of default shipment with sales orders" msgstr "" -#: common/models.py:1906 +#: common/models.py:1961 msgid "Edit Completed Sales Orders" msgstr "" -#: common/models.py:1908 +#: common/models.py:1963 msgid "Allow editing of sales orders after they have been shipped or completed" msgstr "" -#: common/models.py:1914 +#: common/models.py:1969 msgid "Mark Shipped Orders as Complete" msgstr "" -#: common/models.py:1916 +#: common/models.py:1971 msgid "Sales orders marked as shipped will automatically be completed, bypassing the \"shipped\" status" msgstr "" -#: common/models.py:1922 +#: common/models.py:1977 msgid "Purchase Order Reference Pattern" msgstr "" -#: common/models.py:1924 +#: common/models.py:1979 msgid "Required pattern for generating Purchase Order reference field" msgstr "" -#: common/models.py:1936 +#: common/models.py:1991 msgid "Edit Completed Purchase Orders" msgstr "" -#: common/models.py:1938 +#: common/models.py:1993 msgid "Allow editing of purchase orders after they have been shipped or completed" msgstr "" -#: common/models.py:1944 +#: common/models.py:1999 msgid "Auto Complete Purchase Orders" msgstr "" -#: common/models.py:1946 +#: common/models.py:2001 msgid "Automatically mark purchase orders as complete when all line items are received" msgstr "" -#: common/models.py:1953 +#: common/models.py:2008 msgid "Enable password forgot" msgstr "" -#: common/models.py:1954 +#: common/models.py:2009 msgid "Enable password forgot function on the login pages" msgstr "" -#: common/models.py:1959 +#: common/models.py:2014 msgid "Enable registration" msgstr "Aktivera registrering" -#: common/models.py:1960 +#: common/models.py:2015 msgid "Enable self-registration for users on the login pages" msgstr "" -#: common/models.py:1965 +#: common/models.py:2020 msgid "Enable SSO" msgstr "" -#: common/models.py:1966 +#: common/models.py:2021 msgid "Enable SSO on the login pages" msgstr "" -#: common/models.py:1971 +#: common/models.py:2026 msgid "Enable SSO registration" msgstr "" -#: common/models.py:1973 +#: common/models.py:2028 msgid "Enable self-registration via SSO for users on the login pages" msgstr "" -#: common/models.py:1979 +#: common/models.py:2034 msgid "Enable SSO group sync" msgstr "" -#: common/models.py:1981 +#: common/models.py:2036 msgid "Enable synchronizing InvenTree groups with groups provided by the IdP" msgstr "" -#: common/models.py:1987 +#: common/models.py:2042 msgid "SSO group key" msgstr "" -#: common/models.py:1989 +#: common/models.py:2044 msgid "The name of the groups claim attribute provided by the IdP" msgstr "" -#: common/models.py:1995 +#: common/models.py:2050 msgid "SSO group map" msgstr "" -#: common/models.py:1997 +#: common/models.py:2052 msgid "A mapping from SSO groups to local InvenTree groups. If the local group does not exist, it will be created." msgstr "" -#: common/models.py:2003 +#: common/models.py:2058 msgid "Remove groups outside of SSO" msgstr "" -#: common/models.py:2005 +#: common/models.py:2060 msgid "Whether groups assigned to the user should be removed if they are not backend by the IdP. Disabling this setting might cause security issues" msgstr "" -#: common/models.py:2011 +#: common/models.py:2066 msgid "Email required" msgstr "" -#: common/models.py:2012 +#: common/models.py:2067 msgid "Require user to supply mail on signup" msgstr "" -#: common/models.py:2017 +#: common/models.py:2072 msgid "Auto-fill SSO users" msgstr "" -#: common/models.py:2019 +#: common/models.py:2074 msgid "Automatically fill out user-details from SSO account-data" msgstr "" -#: common/models.py:2025 +#: common/models.py:2080 msgid "Mail twice" msgstr "" -#: common/models.py:2026 +#: common/models.py:2081 msgid "On signup ask users twice for their mail" msgstr "" -#: common/models.py:2031 +#: common/models.py:2086 msgid "Password twice" msgstr "" -#: common/models.py:2032 +#: common/models.py:2087 msgid "On signup ask users twice for their password" msgstr "" -#: common/models.py:2037 +#: common/models.py:2092 msgid "Allowed domains" msgstr "Tillåtna domäner" -#: common/models.py:2039 +#: common/models.py:2094 msgid "Restrict signup to certain domains (comma-separated, starting with @)" msgstr "" -#: common/models.py:2045 +#: common/models.py:2100 msgid "Group on signup" msgstr "" -#: common/models.py:2047 +#: common/models.py:2102 msgid "Group to which new users are assigned on registration. If SSO group sync is enabled, this group is only set if no group can be assigned from the IdP." msgstr "" -#: common/models.py:2053 +#: common/models.py:2108 msgid "Enforce MFA" msgstr "" -#: common/models.py:2054 +#: common/models.py:2109 msgid "Users must use multifactor security." msgstr "" -#: common/models.py:2059 +#: common/models.py:2114 msgid "Check plugins on startup" msgstr "" -#: common/models.py:2061 +#: common/models.py:2116 msgid "Check that all plugins are installed on startup - enable in container environments" msgstr "" -#: common/models.py:2069 +#: common/models.py:2124 msgid "Check for plugin updates" msgstr "" -#: common/models.py:2070 +#: common/models.py:2125 msgid "Enable periodic checks for updates to installed plugins" msgstr "" -#: common/models.py:2076 +#: common/models.py:2131 msgid "Enable URL integration" msgstr "" -#: common/models.py:2077 +#: common/models.py:2132 msgid "Enable plugins to add URL routes" msgstr "" -#: common/models.py:2083 +#: common/models.py:2138 msgid "Enable navigation integration" msgstr "" -#: common/models.py:2084 +#: common/models.py:2139 msgid "Enable plugins to integrate into navigation" msgstr "" -#: common/models.py:2090 +#: common/models.py:2145 msgid "Enable app integration" msgstr "" -#: common/models.py:2091 +#: common/models.py:2146 msgid "Enable plugins to add apps" msgstr "" -#: common/models.py:2097 +#: common/models.py:2152 msgid "Enable schedule integration" msgstr "" -#: common/models.py:2098 +#: common/models.py:2153 msgid "Enable plugins to run scheduled tasks" msgstr "" -#: common/models.py:2104 +#: common/models.py:2159 msgid "Enable event integration" msgstr "" -#: common/models.py:2105 +#: common/models.py:2160 msgid "Enable plugins to respond to internal events" msgstr "" -#: common/models.py:2111 +#: common/models.py:2166 +msgid "Enable interface integration" +msgstr "" + +#: common/models.py:2167 +msgid "Enable plugins to integrate into the user interface" +msgstr "" + +#: common/models.py:2173 msgid "Enable project codes" msgstr "Aktivera projektkoder" -#: common/models.py:2112 +#: common/models.py:2174 msgid "Enable project codes for tracking projects" msgstr "" -#: common/models.py:2117 +#: common/models.py:2179 msgid "Stocktake Functionality" msgstr "" -#: common/models.py:2119 +#: common/models.py:2181 msgid "Enable stocktake functionality for recording stock levels and calculating stock value" msgstr "" -#: common/models.py:2125 +#: common/models.py:2187 msgid "Exclude External Locations" msgstr "" -#: common/models.py:2127 +#: common/models.py:2189 msgid "Exclude stock items in external locations from stocktake calculations" msgstr "" -#: common/models.py:2133 +#: common/models.py:2195 msgid "Automatic Stocktake Period" msgstr "" -#: common/models.py:2135 +#: common/models.py:2197 msgid "Number of days between automatic stocktake recording (set to zero to disable)" msgstr "" -#: common/models.py:2141 +#: common/models.py:2203 msgid "Report Deletion Interval" msgstr "" -#: common/models.py:2143 +#: common/models.py:2205 msgid "Stocktake reports will be deleted after specified number of days" msgstr "" -#: common/models.py:2150 +#: common/models.py:2212 msgid "Display Users full names" msgstr "" -#: common/models.py:2151 +#: common/models.py:2213 msgid "Display Users full names instead of usernames" msgstr "" -#: common/models.py:2156 +#: common/models.py:2218 msgid "Enable Test Station Data" msgstr "" -#: common/models.py:2157 +#: common/models.py:2219 msgid "Enable test station data collection for test results" msgstr "" -#: common/models.py:2169 common/models.py:2549 -msgid "Settings key (must be unique - case insensitive" -msgstr "" - -#: common/models.py:2212 -msgid "Hide inactive parts" -msgstr "" - -#: common/models.py:2214 -msgid "Hide inactive parts in results displayed on the homepage" -msgstr "" - -#: common/models.py:2220 -msgid "Show subscribed parts" -msgstr "" - -#: common/models.py:2221 -msgid "Show subscribed parts on the homepage" +#: common/models.py:2224 +msgid "Create Template on Upload" msgstr "" #: common/models.py:2226 -msgid "Show subscribed categories" +msgid "Create a new test template when uploading test data which does not match an existing template" msgstr "" -#: common/models.py:2227 -msgid "Show subscribed part categories on the homepage" -msgstr "" - -#: common/models.py:2232 -msgid "Show latest parts" -msgstr "" - -#: common/models.py:2233 -msgid "Show latest parts on the homepage" -msgstr "" - -#: common/models.py:2238 -msgid "Show invalid BOMs" -msgstr "" - -#: common/models.py:2239 -msgid "Show BOMs that await validation on the homepage" -msgstr "" - -#: common/models.py:2244 -msgid "Show recent stock changes" -msgstr "" - -#: common/models.py:2245 -msgid "Show recently changed stock items on the homepage" -msgstr "" - -#: common/models.py:2250 -msgid "Show low stock" -msgstr "" - -#: common/models.py:2251 -msgid "Show low stock items on the homepage" -msgstr "" - -#: common/models.py:2256 -msgid "Show depleted stock" -msgstr "" - -#: common/models.py:2257 -msgid "Show depleted stock items on the homepage" -msgstr "" - -#: common/models.py:2262 -msgid "Show needed stock" -msgstr "" - -#: common/models.py:2263 -msgid "Show stock items needed for builds on the homepage" -msgstr "" - -#: common/models.py:2268 -msgid "Show expired stock" -msgstr "" - -#: common/models.py:2269 -msgid "Show expired stock items on the homepage" -msgstr "" - -#: common/models.py:2274 -msgid "Show stale stock" -msgstr "" - -#: common/models.py:2275 -msgid "Show stale stock items on the homepage" -msgstr "" - -#: common/models.py:2280 -msgid "Show pending builds" +#: common/models.py:2279 +msgid "Hide inactive parts" msgstr "" #: common/models.py:2281 -msgid "Show pending builds on the homepage" -msgstr "" - -#: common/models.py:2286 -msgid "Show overdue builds" +msgid "Hide inactive parts in results displayed on the homepage" msgstr "" #: common/models.py:2287 -msgid "Show overdue builds on the homepage" +msgid "Show subscribed parts" msgstr "" -#: common/models.py:2292 -msgid "Show outstanding POs" +#: common/models.py:2288 +msgid "Show subscribed parts on the homepage" msgstr "" #: common/models.py:2293 -msgid "Show outstanding POs on the homepage" +msgid "Show subscribed categories" msgstr "" -#: common/models.py:2298 -msgid "Show overdue POs" +#: common/models.py:2294 +msgid "Show subscribed part categories on the homepage" msgstr "" #: common/models.py:2299 -msgid "Show overdue POs on the homepage" +msgid "Show latest parts" msgstr "" -#: common/models.py:2304 -msgid "Show outstanding SOs" +#: common/models.py:2300 +msgid "Show latest parts on the homepage" msgstr "" #: common/models.py:2305 -msgid "Show outstanding SOs on the homepage" +msgid "Show invalid BOMs" msgstr "" -#: common/models.py:2310 -msgid "Show overdue SOs" +#: common/models.py:2306 +msgid "Show BOMs that await validation on the homepage" msgstr "" #: common/models.py:2311 -msgid "Show overdue SOs on the homepage" +msgid "Show recent stock changes" msgstr "" -#: common/models.py:2316 -msgid "Show pending SO shipments" +#: common/models.py:2312 +msgid "Show recently changed stock items on the homepage" msgstr "" #: common/models.py:2317 -msgid "Show pending SO shipments on the homepage" +msgid "Show low stock" msgstr "" -#: common/models.py:2322 -msgid "Show News" -msgstr "Visa nyheter" +#: common/models.py:2318 +msgid "Show low stock items on the homepage" +msgstr "" #: common/models.py:2323 -msgid "Show news on the homepage" +msgid "Show depleted stock" msgstr "" -#: common/models.py:2328 -msgid "Inline label display" +#: common/models.py:2324 +msgid "Show depleted stock items on the homepage" +msgstr "" + +#: common/models.py:2329 +msgid "Show needed stock" msgstr "" #: common/models.py:2330 -msgid "Display PDF labels in the browser, instead of downloading as a file" +msgid "Show stock items needed for builds on the homepage" +msgstr "" + +#: common/models.py:2335 +msgid "Show expired stock" msgstr "" #: common/models.py:2336 -msgid "Default label printer" +msgid "Show expired stock items on the homepage" msgstr "" -#: common/models.py:2338 -msgid "Configure which label printer should be selected by default" +#: common/models.py:2341 +msgid "Show stale stock" msgstr "" -#: common/models.py:2344 -msgid "Inline report display" +#: common/models.py:2342 +msgid "Show stale stock items on the homepage" msgstr "" -#: common/models.py:2346 -msgid "Display PDF reports in the browser, instead of downloading as a file" +#: common/models.py:2347 +msgid "Show pending builds" msgstr "" -#: common/models.py:2352 -msgid "Search Parts" -msgstr "Sök efter artiklar" +#: common/models.py:2348 +msgid "Show pending builds on the homepage" +msgstr "" #: common/models.py:2353 -msgid "Display parts in search preview window" +msgid "Show overdue builds" msgstr "" -#: common/models.py:2358 -msgid "Search Supplier Parts" -msgstr "Sök efter leverantörsartikel" +#: common/models.py:2354 +msgid "Show overdue builds on the homepage" +msgstr "" #: common/models.py:2359 -msgid "Display supplier parts in search preview window" +msgid "Show outstanding POs" msgstr "" -#: common/models.py:2364 -msgid "Search Manufacturer Parts" -msgstr "Sök efter tillverkarartikel" +#: common/models.py:2360 +msgid "Show outstanding POs on the homepage" +msgstr "" #: common/models.py:2365 -msgid "Display manufacturer parts in search preview window" +msgid "Show overdue POs" msgstr "" -#: common/models.py:2370 -msgid "Hide Inactive Parts" +#: common/models.py:2366 +msgid "Show overdue POs on the homepage" msgstr "" #: common/models.py:2371 -msgid "Excluded inactive parts from search preview window" +msgid "Show outstanding SOs" msgstr "" -#: common/models.py:2376 -msgid "Search Categories" +#: common/models.py:2372 +msgid "Show outstanding SOs on the homepage" msgstr "" #: common/models.py:2377 -msgid "Display part categories in search preview window" +msgid "Show overdue SOs" msgstr "" -#: common/models.py:2382 -msgid "Search Stock" +#: common/models.py:2378 +msgid "Show overdue SOs on the homepage" msgstr "" #: common/models.py:2383 -msgid "Display stock items in search preview window" +msgid "Show pending SO shipments" msgstr "" -#: common/models.py:2388 -msgid "Hide Unavailable Stock Items" +#: common/models.py:2384 +msgid "Show pending SO shipments on the homepage" msgstr "" +#: common/models.py:2389 +msgid "Show News" +msgstr "Visa nyheter" + #: common/models.py:2390 -msgid "Exclude stock items which are not available from the search preview window" +msgid "Show news on the homepage" msgstr "" -#: common/models.py:2396 -msgid "Search Locations" +#: common/models.py:2395 +msgid "Inline label display" msgstr "" #: common/models.py:2397 -msgid "Display stock locations in search preview window" -msgstr "" - -#: common/models.py:2402 -msgid "Search Companies" +msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "" #: common/models.py:2403 -msgid "Display companies in search preview window" +msgid "Default label printer" msgstr "" -#: common/models.py:2408 -msgid "Search Build Orders" +#: common/models.py:2405 +msgid "Configure which label printer should be selected by default" msgstr "" -#: common/models.py:2409 -msgid "Display build orders in search preview window" +#: common/models.py:2411 +msgid "Inline report display" msgstr "" -#: common/models.py:2414 -msgid "Search Purchase Orders" +#: common/models.py:2413 +msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:2415 -msgid "Display purchase orders in search preview window" -msgstr "" +#: common/models.py:2419 +msgid "Search Parts" +msgstr "Sök efter artiklar" #: common/models.py:2420 -msgid "Exclude Inactive Purchase Orders" +msgid "Display parts in search preview window" msgstr "" -#: common/models.py:2422 -msgid "Exclude inactive purchase orders from search preview window" +#: common/models.py:2425 +msgid "Search Supplier Parts" +msgstr "Sök efter leverantörsartikel" + +#: common/models.py:2426 +msgid "Display supplier parts in search preview window" msgstr "" -#: common/models.py:2428 -msgid "Search Sales Orders" +#: common/models.py:2431 +msgid "Search Manufacturer Parts" +msgstr "Sök efter tillverkarartikel" + +#: common/models.py:2432 +msgid "Display manufacturer parts in search preview window" msgstr "" -#: common/models.py:2429 -msgid "Display sales orders in search preview window" +#: common/models.py:2437 +msgid "Hide Inactive Parts" msgstr "" -#: common/models.py:2434 -msgid "Exclude Inactive Sales Orders" -msgstr "" - -#: common/models.py:2436 -msgid "Exclude inactive sales orders from search preview window" -msgstr "" - -#: common/models.py:2442 -msgid "Search Return Orders" +#: common/models.py:2438 +msgid "Excluded inactive parts from search preview window" msgstr "" #: common/models.py:2443 -msgid "Display return orders in search preview window" +msgid "Search Categories" msgstr "" -#: common/models.py:2448 -msgid "Exclude Inactive Return Orders" +#: common/models.py:2444 +msgid "Display part categories in search preview window" +msgstr "" + +#: common/models.py:2449 +msgid "Search Stock" msgstr "" #: common/models.py:2450 -msgid "Exclude inactive return orders from search preview window" +msgid "Display stock items in search preview window" msgstr "" -#: common/models.py:2456 -msgid "Search Preview Results" +#: common/models.py:2455 +msgid "Hide Unavailable Stock Items" msgstr "" -#: common/models.py:2458 -msgid "Number of results to show in each section of the search preview window" +#: common/models.py:2457 +msgid "Exclude stock items which are not available from the search preview window" +msgstr "" + +#: common/models.py:2463 +msgid "Search Locations" msgstr "" #: common/models.py:2464 -msgid "Regex Search" +msgid "Display stock locations in search preview window" msgstr "" -#: common/models.py:2465 -msgid "Enable regular expressions in search queries" +#: common/models.py:2469 +msgid "Search Companies" msgstr "" #: common/models.py:2470 -msgid "Whole Word Search" +msgid "Display companies in search preview window" msgstr "" -#: common/models.py:2471 -msgid "Search queries return results for whole word matches" +#: common/models.py:2475 +msgid "Search Build Orders" msgstr "" #: common/models.py:2476 -msgid "Show Quantity in Forms" +msgid "Display build orders in search preview window" msgstr "" -#: common/models.py:2477 -msgid "Display available part quantity in some forms" +#: common/models.py:2481 +msgid "Search Purchase Orders" msgstr "" #: common/models.py:2482 -msgid "Escape Key Closes Forms" +msgid "Display purchase orders in search preview window" msgstr "" -#: common/models.py:2483 -msgid "Use the escape key to close modal forms" -msgstr "" - -#: common/models.py:2488 -msgid "Fixed Navbar" +#: common/models.py:2487 +msgid "Exclude Inactive Purchase Orders" msgstr "" #: common/models.py:2489 -msgid "The navbar position is fixed to the top of the screen" +msgid "Exclude inactive purchase orders from search preview window" msgstr "" -#: common/models.py:2494 -msgid "Date Format" -msgstr "Datumformat" - #: common/models.py:2495 -msgid "Preferred format for displaying dates" +msgid "Search Sales Orders" msgstr "" -#: common/models.py:2508 part/templates/part/detail.html:41 -msgid "Part Scheduling" +#: common/models.py:2496 +msgid "Display sales orders in search preview window" +msgstr "" + +#: common/models.py:2501 +msgid "Exclude Inactive Sales Orders" +msgstr "" + +#: common/models.py:2503 +msgid "Exclude inactive sales orders from search preview window" msgstr "" #: common/models.py:2509 -msgid "Display part scheduling information" +msgid "Search Return Orders" msgstr "" -#: common/models.py:2514 part/templates/part/detail.html:62 -msgid "Part Stocktake" +#: common/models.py:2510 +msgid "Display return orders in search preview window" msgstr "" -#: common/models.py:2516 -msgid "Display part stocktake information (if stocktake functionality is enabled)" +#: common/models.py:2515 +msgid "Exclude Inactive Return Orders" msgstr "" -#: common/models.py:2522 -msgid "Table String Length" +#: common/models.py:2517 +msgid "Exclude inactive return orders from search preview window" msgstr "" -#: common/models.py:2524 -msgid "Maximum length limit for strings displayed in table views" +#: common/models.py:2523 +msgid "Search Preview Results" msgstr "" -#: common/models.py:2530 -msgid "Receive error reports" +#: common/models.py:2525 +msgid "Number of results to show in each section of the search preview window" msgstr "" #: common/models.py:2531 -msgid "Receive notifications for system errors" +msgid "Regex Search" msgstr "" -#: common/models.py:2536 -msgid "Last used printing machines" +#: common/models.py:2532 +msgid "Enable regular expressions in search queries" msgstr "" #: common/models.py:2537 +msgid "Whole Word Search" +msgstr "" + +#: common/models.py:2538 +msgid "Search queries return results for whole word matches" +msgstr "" + +#: common/models.py:2543 +msgid "Show Quantity in Forms" +msgstr "" + +#: common/models.py:2544 +msgid "Display available part quantity in some forms" +msgstr "" + +#: common/models.py:2549 +msgid "Escape Key Closes Forms" +msgstr "" + +#: common/models.py:2550 +msgid "Use the escape key to close modal forms" +msgstr "" + +#: common/models.py:2555 +msgid "Fixed Navbar" +msgstr "" + +#: common/models.py:2556 +msgid "The navbar position is fixed to the top of the screen" +msgstr "" + +#: common/models.py:2561 +msgid "Date Format" +msgstr "Datumformat" + +#: common/models.py:2562 +msgid "Preferred format for displaying dates" +msgstr "" + +#: common/models.py:2575 part/templates/part/detail.html:41 +msgid "Part Scheduling" +msgstr "" + +#: common/models.py:2576 +msgid "Display part scheduling information" +msgstr "" + +#: common/models.py:2581 part/templates/part/detail.html:62 +msgid "Part Stocktake" +msgstr "" + +#: common/models.py:2583 +msgid "Display part stocktake information (if stocktake functionality is enabled)" +msgstr "" + +#: common/models.py:2589 +msgid "Table String Length" +msgstr "" + +#: common/models.py:2591 +msgid "Maximum length limit for strings displayed in table views" +msgstr "" + +#: common/models.py:2597 +msgid "Receive error reports" +msgstr "" + +#: common/models.py:2598 +msgid "Receive notifications for system errors" +msgstr "" + +#: common/models.py:2603 +msgid "Last used printing machines" +msgstr "" + +#: common/models.py:2604 msgid "Save the last used printing machines for a user" msgstr "" -#: common/models.py:2557 common/models.py:2558 common/models.py:2715 -#: common/models.py:2716 common/models.py:2961 common/models.py:2962 -#: common/models.py:3288 common/models.py:3289 importer/models.py:88 -#: part/models.py:3307 part/models.py:3394 part/models.py:3468 -#: part/models.py:3496 plugin/models.py:274 plugin/models.py:275 -#: report/templates/report/inventree_test_report.html:105 -#: templates/js/translated/stock.js:3120 users/models.py:111 +#: common/models.py:2621 common/models.py:2622 common/models.py:2779 +#: common/models.py:2780 common/models.py:3025 common/models.py:3026 +#: common/models.py:3349 common/models.py:3350 common/models.py:3534 +#: importer/models.py:89 part/models.py:3358 part/models.py:3445 +#: part/models.py:3519 part/models.py:3547 plugin/models.py:313 +#: plugin/models.py:314 report/templates/report/inventree_test_report.html:105 +#: templates/js/translated/stock.js:3121 users/models.py:111 msgid "User" msgstr "Användare" -#: common/models.py:2580 +#: common/models.py:2644 msgid "Price break quantity" msgstr "" -#: common/models.py:2587 company/serializers.py:513 order/admin.py:42 -#: order/models.py:1430 order/models.py:2417 -#: templates/js/translated/company.js:1823 templates/js/translated/part.js:1892 +#: common/models.py:2651 company/serializers.py:524 order/admin.py:42 +#: order/models.py:1447 order/models.py:2456 +#: templates/js/translated/company.js:1824 templates/js/translated/part.js:1892 #: templates/js/translated/pricing.js:621 #: templates/js/translated/return_order.js:739 msgid "Price" msgstr "" -#: common/models.py:2588 +#: common/models.py:2652 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:2692 common/models.py:2877 +#: common/models.py:2756 common/models.py:2941 msgid "Endpoint" msgstr "" -#: common/models.py:2693 +#: common/models.py:2757 msgid "Endpoint at which this webhook is received" msgstr "" -#: common/models.py:2703 +#: common/models.py:2767 msgid "Name for this webhook" msgstr "" -#: common/models.py:2707 +#: common/models.py:2771 msgid "Is this webhook active" msgstr "" -#: common/models.py:2723 users/models.py:159 +#: common/models.py:2787 users/models.py:159 msgid "Token" msgstr "" -#: common/models.py:2724 +#: common/models.py:2788 msgid "Token for access" msgstr "" -#: common/models.py:2732 +#: common/models.py:2796 msgid "Secret" msgstr "" -#: common/models.py:2733 +#: common/models.py:2797 msgid "Shared secret for HMAC" msgstr "" -#: common/models.py:2841 +#: common/models.py:2905 msgid "Message ID" msgstr "" -#: common/models.py:2842 +#: common/models.py:2906 msgid "Unique identifier for this message" msgstr "" -#: common/models.py:2850 +#: common/models.py:2914 msgid "Host" msgstr "" -#: common/models.py:2851 +#: common/models.py:2915 msgid "Host from which this message was received" msgstr "" -#: common/models.py:2859 +#: common/models.py:2923 msgid "Header" msgstr "" -#: common/models.py:2860 +#: common/models.py:2924 msgid "Header of this message" msgstr "" -#: common/models.py:2867 +#: common/models.py:2931 msgid "Body" msgstr "" -#: common/models.py:2868 +#: common/models.py:2932 msgid "Body of this message" msgstr "" -#: common/models.py:2878 +#: common/models.py:2942 msgid "Endpoint on which this message was received" msgstr "" -#: common/models.py:2883 +#: common/models.py:2947 msgid "Worked on" msgstr "" -#: common/models.py:2884 +#: common/models.py:2948 msgid "Was the work on this message finished?" msgstr "" -#: common/models.py:3010 +#: common/models.py:3074 msgid "Id" msgstr "" -#: common/models.py:3012 templates/js/translated/company.js:965 -#: templates/js/translated/news.js:44 +#: common/models.py:3076 part/serializers.py:271 +#: templates/js/translated/company.js:966 templates/js/translated/news.js:44 msgid "Title" msgstr "" -#: common/models.py:3014 common/models.py:3272 company/models.py:149 -#: company/models.py:446 company/models.py:512 company/models.py:818 -#: order/models.py:302 order/models.py:1385 order/models.py:1817 -#: part/admin.py:55 part/models.py:1057 +#: common/models.py:3078 common/models.py:3333 company/models.py:146 +#: company/models.py:443 company/models.py:509 company/models.py:815 +#: order/models.py:309 order/models.py:1402 order/models.py:1846 +#: part/admin.py:55 part/models.py:1118 #: part/templates/part/part_scheduling.html:11 #: report/templates/report/inventree_build_order_report.html:164 -#: stock/admin.py:229 templates/js/translated/company.js:1319 -#: templates/js/translated/company.js:1673 templates/js/translated/order.js:376 +#: stock/admin.py:230 templates/js/translated/company.js:1320 +#: templates/js/translated/company.js:1674 templates/js/translated/order.js:376 #: templates/js/translated/part.js:2475 -#: templates/js/translated/purchase_order.js:2110 -#: templates/js/translated/purchase_order.js:2274 +#: templates/js/translated/purchase_order.js:2094 +#: templates/js/translated/purchase_order.js:2258 #: templates/js/translated/return_order.js:778 -#: templates/js/translated/sales_order.js:1092 -#: templates/js/translated/sales_order.js:2023 +#: templates/js/translated/sales_order.js:1058 +#: templates/js/translated/sales_order.js:2004 msgid "Link" msgstr "Länk" -#: common/models.py:3016 templates/js/translated/news.js:60 +#: common/models.py:3080 templates/js/translated/news.js:60 msgid "Published" msgstr "" -#: common/models.py:3018 templates/InvenTree/settings/plugin_settings.html:32 +#: common/models.py:3082 templates/InvenTree/settings/plugin_settings.html:32 #: templates/js/translated/news.js:56 templates/js/translated/plugin.js:103 msgid "Author" msgstr "" -#: common/models.py:3020 templates/js/translated/news.js:52 +#: common/models.py:3084 templates/js/translated/news.js:52 msgid "Summary" msgstr "" -#: common/models.py:3023 +#: common/models.py:3087 msgid "Read" msgstr "" -#: common/models.py:3023 +#: common/models.py:3087 msgid "Was this news item read?" msgstr "" -#: common/models.py:3040 company/models.py:159 part/models.py:1067 +#: common/models.py:3104 company/models.py:156 part/models.py:1128 #: report/templates/report/inventree_bill_of_materials_report.html:126 #: report/templates/report/inventree_bill_of_materials_report.html:148 #: report/templates/report/inventree_return_order_report.html:35 -#: stock/templates/stock/item_base.html:133 templates/503.html:31 +#: stock/templates/stock/item_base.html:130 templates/503.html:31 #: templates/hover_image.html:7 templates/hover_image.html:9 #: templates/modals.html:6 msgid "Image" msgstr "Bild" -#: common/models.py:3040 +#: common/models.py:3104 msgid "Image file" msgstr "" -#: common/models.py:3052 common/models.py:3256 +#: common/models.py:3116 common/models.py:3317 msgid "Target model type for this image" msgstr "" -#: common/models.py:3056 +#: common/models.py:3120 msgid "Target model ID for this image" msgstr "" -#: common/models.py:3078 +#: common/models.py:3142 msgid "Custom Unit" msgstr "" -#: common/models.py:3099 +#: common/models.py:3160 msgid "Unit symbol must be unique" msgstr "" -#: common/models.py:3114 +#: common/models.py:3175 msgid "Unit name must be a valid identifier" msgstr "" -#: common/models.py:3133 +#: common/models.py:3194 msgid "Unit name" msgstr "" -#: common/models.py:3140 templates/InvenTree/settings/settings_staff_js.html:75 +#: common/models.py:3201 templates/InvenTree/settings/settings_staff_js.html:75 msgid "Symbol" msgstr "" -#: common/models.py:3141 +#: common/models.py:3202 msgid "Optional unit symbol" msgstr "" -#: common/models.py:3147 templates/InvenTree/settings/settings_staff_js.html:71 +#: common/models.py:3208 templates/InvenTree/settings/settings_staff_js.html:71 msgid "Definition" msgstr "" -#: common/models.py:3148 +#: common/models.py:3209 msgid "Unit definition" msgstr "" -#: common/models.py:3206 common/models.py:3263 stock/models.py:2558 -#: templates/js/translated/attachment.js:119 +#: common/models.py:3267 common/models.py:3324 stock/models.py:2674 +#: stock/serializers.py:244 templates/js/translated/attachment.js:119 #: templates/js/translated/attachment.js:345 msgid "Attachment" msgstr "Bilaga" -#: common/models.py:3218 +#: common/models.py:3279 msgid "Missing file" msgstr "Saknad fil" -#: common/models.py:3219 +#: common/models.py:3280 msgid "Missing external link" msgstr "Extern länk saknas" -#: common/models.py:3264 +#: common/models.py:3325 msgid "Select file to attach" msgstr "Välj fil att bifoga" -#: common/models.py:3279 templates/js/translated/attachment.js:120 +#: common/models.py:3340 templates/js/translated/attachment.js:120 #: templates/js/translated/attachment.js:360 msgid "Comment" msgstr "Kommentar" -#: common/models.py:3280 +#: common/models.py:3341 msgid "Attachment comment" msgstr "" -#: common/models.py:3296 +#: common/models.py:3357 msgid "Upload date" msgstr "" -#: common/models.py:3297 +#: common/models.py:3358 msgid "Date the file was uploaded" msgstr "" -#: common/models.py:3301 +#: common/models.py:3362 msgid "File size" msgstr "Filstorlek" -#: common/models.py:3301 +#: common/models.py:3362 msgid "File size in bytes" msgstr "" -#: common/models.py:3339 common/serializers.py:562 +#: common/models.py:3400 common/serializers.py:609 msgid "Invalid model type specified for attachment" msgstr "" -#: common/notifications.py:314 +#: common/models.py:3409 plugin/models.py:43 users/models.py:100 +msgid "Key" +msgstr "" + +#: common/models.py:3410 +msgid "Value that will be saved in the models database" +msgstr "" + +#: common/models.py:3413 +msgid "Name of the state" +msgstr "" + +#: common/models.py:3417 part/serializers.py:273 +msgid "Label" +msgstr "Etikett" + +#: common/models.py:3418 +msgid "Label that will be displayed in the frontend" +msgstr "" + +#: common/models.py:3424 +msgid "Color" +msgstr "Färg" + +#: common/models.py:3425 +msgid "Color that will be displayed in the frontend" +msgstr "" + +#: common/models.py:3428 +msgid "Logical Key" +msgstr "" + +#: common/models.py:3430 +msgid "State logical key that is equal to this custom state in business logic" +msgstr "" + +#: common/models.py:3438 part/serializers.py:275 +msgid "Model" +msgstr "" + +#: common/models.py:3439 +msgid "Model this state is associated with" +msgstr "" + +#: common/models.py:3443 +msgid "Reference Status Set" +msgstr "" + +#: common/models.py:3444 +msgid "Status set that is extended with this custom state" +msgstr "" + +#: common/models.py:3450 +msgid "Custom State" +msgstr "" + +#: common/models.py:3451 +msgid "Custom States" +msgstr "" + +#: common/models.py:3466 +msgid "Model must be selected" +msgstr "" + +#: common/models.py:3469 +msgid "Key must be selected" +msgstr "" + +#: common/models.py:3472 +msgid "Logical key must be selected" +msgstr "" + +#: common/models.py:3476 +msgid "Key must be different from logical key" +msgstr "" + +#: common/models.py:3480 +msgid "Reference status must be selected" +msgstr "" + +#: common/models.py:3492 +msgid "Reference status set not found" +msgstr "" + +#: common/models.py:3498 +msgid "Key must be different from the logical keys of the reference status" +msgstr "" + +#: common/models.py:3504 +msgid "Logical key must be in the logical keys of the reference status" +msgstr "" + +#: common/models.py:3519 +msgid "Barcode Scan" +msgstr "" + +#: common/models.py:3523 importer/models.py:512 part/models.py:4009 +msgid "Data" +msgstr "" + +#: common/models.py:3524 +msgid "Barcode data" +msgstr "Streckkodsdata" + +#: common/models.py:3535 +msgid "User who scanned the barcode" +msgstr "" + +#: common/models.py:3540 importer/models.py:60 +msgid "Timestamp" +msgstr "" + +#: common/models.py:3541 +msgid "Date and time of the barcode scan" +msgstr "" + +#: common/models.py:3547 +msgid "URL endpoint which processed the barcode" +msgstr "" + +#: common/models.py:3554 order/models.py:1437 plugin/serializers.py:89 +msgid "Context" +msgstr "" + +#: common/models.py:3555 +msgid "Context data for the barcode scan" +msgstr "" + +#: common/models.py:3562 +msgid "Response" +msgstr "" + +#: common/models.py:3563 +msgid "Response data from the barcode scan" +msgstr "" + +#: common/models.py:3569 report/templates/report/inventree_test_report.html:103 +#: stock/models.py:2660 +msgid "Result" +msgstr "" + +#: common/models.py:3570 +msgid "Was the barcode scan successful?" +msgstr "" + +#: common/notifications.py:328 #, python-brace-format msgid "New {verbose_name}" msgstr "" -#: common/notifications.py:316 +#: common/notifications.py:330 msgid "A new order has been created and assigned to you" msgstr "" -#: common/notifications.py:322 +#: common/notifications.py:336 #, python-brace-format msgid "{verbose_name} canceled" msgstr "" -#: common/notifications.py:324 +#: common/notifications.py:338 msgid "A order that is assigned to you was canceled" msgstr "" -#: common/notifications.py:330 common/notifications.py:337 order/api.py:462 +#: common/notifications.py:344 common/notifications.py:351 order/api.py:440 msgid "Items Received" msgstr "" -#: common/notifications.py:332 +#: common/notifications.py:346 msgid "Items have been received against a purchase order" msgstr "" -#: common/notifications.py:339 +#: common/notifications.py:353 msgid "Items have been received against a return order" msgstr "" -#: common/notifications.py:457 +#: common/notifications.py:475 msgid "Error raised by plugin" msgstr "" -#: common/serializers.py:375 +#: common/serializers.py:423 msgid "Is Running" msgstr "" -#: common/serializers.py:381 +#: common/serializers.py:429 msgid "Pending Tasks" msgstr "" -#: common/serializers.py:387 +#: common/serializers.py:435 msgid "Scheduled Tasks" msgstr "Schemalagda uppgifter" -#: common/serializers.py:393 +#: common/serializers.py:441 msgid "Failed Tasks" msgstr "" -#: common/serializers.py:408 +#: common/serializers.py:456 msgid "Task ID" msgstr "" -#: common/serializers.py:408 +#: common/serializers.py:456 msgid "Unique task ID" msgstr "" -#: common/serializers.py:410 +#: common/serializers.py:458 msgid "Lock" msgstr "" -#: common/serializers.py:410 +#: common/serializers.py:458 msgid "Lock time" msgstr "" -#: common/serializers.py:412 +#: common/serializers.py:460 msgid "Task name" msgstr "" -#: common/serializers.py:414 +#: common/serializers.py:462 msgid "Function" msgstr "" -#: common/serializers.py:414 +#: common/serializers.py:462 msgid "Function name" msgstr "" -#: common/serializers.py:416 +#: common/serializers.py:464 msgid "Arguments" msgstr "" -#: common/serializers.py:416 +#: common/serializers.py:464 msgid "Task arguments" msgstr "" -#: common/serializers.py:419 +#: common/serializers.py:467 msgid "Keyword Arguments" msgstr "" -#: common/serializers.py:419 +#: common/serializers.py:467 msgid "Task keyword arguments" msgstr "" -#: common/serializers.py:529 +#: common/serializers.py:577 msgid "Filename" msgstr "Filnamn" -#: common/serializers.py:536 report/api.py:100 report/serializers.py:53 +#: common/serializers.py:584 report/api.py:100 report/serializers.py:54 msgid "Model Type" msgstr "" -#: common/serializers.py:565 +#: common/serializers.py:612 msgid "User does not have permission to create or edit attachments for this model" msgstr "" @@ -4116,15 +4295,15 @@ msgstr "" msgid "Match Items" msgstr "" -#: common/views.py:401 +#: common/views.py:397 msgid "Fields matching failed" msgstr "" -#: common/views.py:464 +#: common/views.py:460 msgid "Parts imported" msgstr "" -#: common/views.py:494 order/templates/order/order_wizard/match_fields.html:27 +#: common/views.py:490 order/templates/order/order_wizard/match_fields.html:27 #: order/templates/order/order_wizard/match_parts.html:19 #: order/templates/order/order_wizard/po_upload.html:49 #: part/templates/part/import_wizard/match_fields.html:27 @@ -4155,429 +4334,429 @@ msgstr "" msgid "Supplier is Active" msgstr "" -#: company/models.py:100 company/models.py:371 +#: company/models.py:97 company/models.py:368 #: company/templates/company/company_base.html:8 #: company/templates/company/company_base.html:12 stock/api.py:812 -#: templates/InvenTree/search.html:178 templates/js/translated/company.js:496 +#: templates/InvenTree/search.html:178 templates/js/translated/company.js:497 msgid "Company" msgstr "Företag" -#: company/models.py:101 company/views.py:51 +#: company/models.py:98 company/views.py:51 #: templates/js/translated/search.js:192 msgid "Companies" msgstr "Företag" -#: company/models.py:117 +#: company/models.py:114 msgid "Company description" msgstr "Företagsbeskrivning" -#: company/models.py:118 +#: company/models.py:115 msgid "Description of the company" msgstr "" -#: company/models.py:123 company/templates/company/company_base.html:106 +#: company/models.py:120 company/templates/company/company_base.html:106 #: templates/InvenTree/settings/plugin_settings.html:54 -#: templates/js/translated/company.js:532 +#: templates/js/translated/company.js:533 msgid "Website" msgstr "Webbplats" -#: company/models.py:123 +#: company/models.py:120 msgid "Company website URL" msgstr "" -#: company/models.py:128 +#: company/models.py:125 msgid "Phone number" msgstr "Telefonnummer" -#: company/models.py:130 +#: company/models.py:127 msgid "Contact phone number" msgstr "" -#: company/models.py:137 +#: company/models.py:134 msgid "Contact email address" msgstr "" -#: company/models.py:142 company/models.py:275 -#: company/templates/company/company_base.html:145 order/models.py:342 -#: order/templates/order/order_base.html:208 -#: order/templates/order/return_order_base.html:177 -#: order/templates/order/sales_order_base.html:221 +#: company/models.py:139 company/models.py:272 +#: company/templates/company/company_base.html:145 order/models.py:349 +#: order/templates/order/order_base.html:217 +#: order/templates/order/return_order_base.html:178 +#: order/templates/order/sales_order_base.html:222 msgid "Contact" msgstr "Kontakt" -#: company/models.py:144 +#: company/models.py:141 msgid "Point of contact" msgstr "" -#: company/models.py:150 +#: company/models.py:147 msgid "Link to external company information" msgstr "" -#: company/models.py:163 +#: company/models.py:160 msgid "Is this company active?" msgstr "" -#: company/models.py:168 +#: company/models.py:165 msgid "Is customer" -msgstr "" +msgstr "Är kund" -#: company/models.py:169 +#: company/models.py:166 msgid "Do you sell items to this company?" msgstr "" -#: company/models.py:174 +#: company/models.py:171 msgid "Is supplier" -msgstr "" +msgstr "Är leverantör" -#: company/models.py:175 +#: company/models.py:172 msgid "Do you purchase items from this company?" msgstr "" -#: company/models.py:180 +#: company/models.py:177 msgid "Is manufacturer" -msgstr "" +msgstr "Är tillverkare" -#: company/models.py:181 +#: company/models.py:178 msgid "Does this company manufacture parts?" msgstr "" -#: company/models.py:189 +#: company/models.py:186 msgid "Default currency used for this company" msgstr "" -#: company/models.py:314 company/templates/company/company_base.html:124 -#: order/models.py:352 order/templates/order/order_base.html:215 -#: order/templates/order/return_order_base.html:184 -#: order/templates/order/sales_order_base.html:228 +#: company/models.py:311 company/templates/company/company_base.html:124 +#: order/models.py:359 order/templates/order/order_base.html:224 +#: order/templates/order/return_order_base.html:185 +#: order/templates/order/sales_order_base.html:229 msgid "Address" msgstr "Adress" -#: company/models.py:315 company/templates/company/sidebar.html:35 +#: company/models.py:312 company/templates/company/sidebar.html:35 msgid "Addresses" msgstr "Adresser" -#: company/models.py:372 +#: company/models.py:369 msgid "Select company" msgstr "Välj företag" -#: company/models.py:377 +#: company/models.py:374 msgid "Address title" msgstr "" -#: company/models.py:378 +#: company/models.py:375 msgid "Title describing the address entry" msgstr "" -#: company/models.py:384 +#: company/models.py:381 msgid "Primary address" msgstr "Primär adress" -#: company/models.py:385 +#: company/models.py:382 msgid "Set as primary address" msgstr "" -#: company/models.py:390 templates/js/translated/company.js:914 -#: templates/js/translated/company.js:971 +#: company/models.py:387 templates/js/translated/company.js:915 +#: templates/js/translated/company.js:972 msgid "Line 1" msgstr "" -#: company/models.py:391 +#: company/models.py:388 msgid "Address line 1" msgstr "Adressrad 1" -#: company/models.py:397 templates/js/translated/company.js:915 -#: templates/js/translated/company.js:977 +#: company/models.py:394 templates/js/translated/company.js:916 +#: templates/js/translated/company.js:978 msgid "Line 2" msgstr "" -#: company/models.py:398 +#: company/models.py:395 msgid "Address line 2" msgstr "Adressrad 2" -#: company/models.py:404 company/models.py:405 -#: templates/js/translated/company.js:983 +#: company/models.py:401 company/models.py:402 +#: templates/js/translated/company.js:984 msgid "Postal code" msgstr "Postnummer" -#: company/models.py:411 +#: company/models.py:408 msgid "City/Region" msgstr "" -#: company/models.py:412 +#: company/models.py:409 msgid "Postal code city/region" msgstr "" -#: company/models.py:418 +#: company/models.py:415 msgid "State/Province" msgstr "" -#: company/models.py:419 +#: company/models.py:416 msgid "State or province" msgstr "" -#: company/models.py:425 templates/js/translated/company.js:1001 +#: company/models.py:422 templates/js/translated/company.js:1002 msgid "Country" msgstr "Land" -#: company/models.py:426 +#: company/models.py:423 msgid "Address country" msgstr "" -#: company/models.py:432 +#: company/models.py:429 msgid "Courier shipping notes" msgstr "" -#: company/models.py:433 +#: company/models.py:430 msgid "Notes for shipping courier" msgstr "" -#: company/models.py:439 +#: company/models.py:436 msgid "Internal shipping notes" msgstr "" -#: company/models.py:440 +#: company/models.py:437 msgid "Shipping notes for internal use" msgstr "" -#: company/models.py:447 +#: company/models.py:444 msgid "Link to address information (external)" msgstr "" -#: company/models.py:470 company/models.py:587 company/models.py:811 +#: company/models.py:467 company/models.py:584 company/models.py:808 #: company/templates/company/manufacturer_part.html:7 #: company/templates/company/manufacturer_part.html:24 -#: stock/templates/stock/item_base.html:217 +#: stock/templates/stock/item_base.html:214 msgid "Manufacturer Part" msgstr "" -#: company/models.py:487 company/models.py:779 stock/models.py:787 -#: stock/serializers.py:445 stock/templates/stock/item_base.html:142 +#: company/models.py:484 company/models.py:776 stock/models.py:864 +#: stock/serializers.py:455 stock/templates/stock/item_base.html:139 #: templates/js/translated/bom.js:622 msgid "Base Part" msgstr "" -#: company/models.py:489 company/models.py:781 +#: company/models.py:486 company/models.py:778 msgid "Select part" msgstr "" -#: company/models.py:498 company/templates/company/company_base.html:82 +#: company/models.py:495 company/templates/company/company_base.html:82 #: company/templates/company/manufacturer_part.html:90 -#: company/templates/company/supplier_part.html:145 part/serializers.py:554 -#: stock/templates/stock/item_base.html:207 -#: templates/js/translated/company.js:507 -#: templates/js/translated/company.js:1118 -#: templates/js/translated/company.js:1296 -#: templates/js/translated/company.js:1611 +#: company/templates/company/supplier_part.html:146 part/serializers.py:598 +#: stock/templates/stock/item_base.html:204 +#: templates/js/translated/company.js:508 +#: templates/js/translated/company.js:1119 +#: templates/js/translated/company.js:1297 +#: templates/js/translated/company.js:1612 #: templates/js/translated/table_filters.js:812 msgid "Manufacturer" msgstr "Tillverkare" -#: company/models.py:499 +#: company/models.py:496 msgid "Select manufacturer" msgstr "" -#: company/models.py:505 company/templates/company/manufacturer_part.html:101 -#: company/templates/company/supplier_part.html:153 order/serializers.py:556 -#: part/serializers.py:564 templates/js/translated/company.js:351 -#: templates/js/translated/company.js:1117 -#: templates/js/translated/company.js:1312 -#: templates/js/translated/company.js:1630 templates/js/translated/part.js:1807 -#: templates/js/translated/purchase_order.js:1921 -#: templates/js/translated/purchase_order.js:2123 +#: company/models.py:502 company/templates/company/manufacturer_part.html:101 +#: company/templates/company/supplier_part.html:154 order/serializers.py:641 +#: part/serializers.py:608 templates/js/translated/company.js:352 +#: templates/js/translated/company.js:1118 +#: templates/js/translated/company.js:1313 +#: templates/js/translated/company.js:1631 templates/js/translated/part.js:1807 +#: templates/js/translated/purchase_order.js:1905 +#: templates/js/translated/purchase_order.js:2107 msgid "MPN" msgstr "" -#: company/models.py:513 +#: company/models.py:510 msgid "URL for external manufacturer part link" msgstr "" -#: company/models.py:522 +#: company/models.py:519 msgid "Manufacturer part description" msgstr "" -#: company/models.py:575 +#: company/models.py:572 msgid "Manufacturer Part Parameter" msgstr "" -#: company/models.py:594 +#: company/models.py:591 msgid "Parameter name" msgstr "" -#: company/models.py:600 report/templates/report/inventree_test_report.html:104 -#: stock/models.py:2550 templates/js/translated/company.js:1166 -#: templates/js/translated/company.js:1419 templates/js/translated/part.js:1499 +#: company/models.py:597 report/templates/report/inventree_test_report.html:104 +#: stock/models.py:2666 templates/js/translated/company.js:1167 +#: templates/js/translated/company.js:1420 templates/js/translated/part.js:1499 #: templates/js/translated/stock.js:1607 msgid "Value" msgstr "" -#: company/models.py:601 +#: company/models.py:598 msgid "Parameter value" msgstr "" -#: company/models.py:608 company/templates/company/supplier_part.html:168 -#: part/admin.py:57 part/models.py:1147 part/models.py:3771 -#: part/templates/part/part_base.html:293 -#: templates/js/translated/company.js:1425 templates/js/translated/part.js:1518 +#: company/models.py:605 company/templates/company/supplier_part.html:169 +#: part/admin.py:57 part/models.py:1208 part/models.py:3822 +#: part/templates/part/part_base.html:301 +#: templates/js/translated/company.js:1426 templates/js/translated/part.js:1518 #: templates/js/translated/part.js:1622 templates/js/translated/part.js:2376 msgid "Units" msgstr "" -#: company/models.py:609 +#: company/models.py:606 msgid "Parameter units" msgstr "" -#: company/models.py:662 company/templates/company/supplier_part.html:7 -#: company/templates/company/supplier_part.html:24 order/api.py:442 -#: order/serializers.py:491 stock/models.py:798 -#: stock/templates/stock/item_base.html:233 -#: templates/js/translated/build.js:1052 -#: templates/js/translated/company.js:1600 -#: templates/js/translated/purchase_order.js:752 -#: templates/js/translated/stock.js:2365 +#: company/models.py:659 company/templates/company/supplier_part.html:8 +#: company/templates/company/supplier_part.html:25 order/api.py:392 +#: order/serializers.py:576 stock/models.py:875 +#: stock/templates/stock/item_base.html:230 +#: templates/js/translated/build.js:1055 +#: templates/js/translated/company.js:1601 +#: templates/js/translated/purchase_order.js:735 +#: templates/js/translated/stock.js:2366 msgid "Supplier Part" msgstr "" -#: company/models.py:719 +#: company/models.py:716 msgid "Pack units must be compatible with the base part units" msgstr "" -#: company/models.py:726 +#: company/models.py:723 msgid "Pack units must be greater than zero" msgstr "" -#: company/models.py:740 +#: company/models.py:737 msgid "Linked manufacturer part must reference the same base part" msgstr "" -#: company/models.py:789 company/templates/company/company_base.html:87 -#: company/templates/company/supplier_part.html:129 order/models.py:491 -#: order/templates/order/order_base.html:141 part/bom.py:280 part/bom.py:318 -#: part/serializers.py:538 plugin/builtin/suppliers/digikey.py:25 +#: company/models.py:786 company/templates/company/company_base.html:87 +#: company/templates/company/supplier_part.html:130 order/models.py:503 +#: order/templates/order/order_base.html:150 part/bom.py:279 part/bom.py:314 +#: part/serializers.py:582 plugin/builtin/suppliers/digikey.py:25 #: plugin/builtin/suppliers/lcsc.py:26 plugin/builtin/suppliers/mouser.py:24 -#: plugin/builtin/suppliers/tme.py:26 stock/templates/stock/item_base.html:224 +#: plugin/builtin/suppliers/tme.py:26 stock/templates/stock/item_base.html:221 #: templates/email/overdue_purchase_order.html:16 -#: templates/js/translated/company.js:350 -#: templates/js/translated/company.js:511 -#: templates/js/translated/company.js:1584 templates/js/translated/part.js:1775 +#: templates/js/translated/company.js:351 +#: templates/js/translated/company.js:512 +#: templates/js/translated/company.js:1585 templates/js/translated/part.js:1775 #: templates/js/translated/pricing.js:498 -#: templates/js/translated/purchase_order.js:1759 +#: templates/js/translated/purchase_order.js:1743 #: templates/js/translated/table_filters.js:816 msgid "Supplier" msgstr "Leverantör" -#: company/models.py:790 +#: company/models.py:787 msgid "Select supplier" msgstr "Välj leverantör" -#: company/models.py:796 part/serializers.py:549 +#: company/models.py:793 part/serializers.py:593 msgid "Supplier stock keeping unit" msgstr "" -#: company/models.py:802 +#: company/models.py:799 msgid "Is this supplier part active?" msgstr "" -#: company/models.py:812 +#: company/models.py:809 msgid "Select manufacturer part" msgstr "" -#: company/models.py:819 +#: company/models.py:816 msgid "URL for external supplier part link" msgstr "" -#: company/models.py:828 +#: company/models.py:825 msgid "Supplier part description" msgstr "" -#: company/models.py:835 company/templates/company/supplier_part.html:187 -#: order/serializers.py:698 part/admin.py:415 part/models.py:4288 +#: company/models.py:832 company/templates/company/supplier_part.html:188 +#: order/serializers.py:783 part/admin.py:415 part/models.py:4345 #: part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_bill_of_materials_report.html:140 #: report/templates/report/inventree_purchase_order_report.html:32 #: report/templates/report/inventree_return_order_report.html:27 #: report/templates/report/inventree_sales_order_report.html:32 #: report/templates/report/inventree_stock_location_report.html:105 -#: stock/serializers.py:776 templates/js/translated/purchase_order.js:1185 -#: templates/js/translated/purchase_order.js:1344 +#: stock/serializers.py:807 templates/js/translated/purchase_order.js:1168 +#: templates/js/translated/purchase_order.js:1327 msgid "Note" msgstr "" -#: company/models.py:844 part/models.py:2117 +#: company/models.py:841 part/models.py:2177 msgid "base cost" msgstr "" -#: company/models.py:845 part/models.py:2118 +#: company/models.py:842 part/models.py:2178 msgid "Minimum charge (e.g. stocking fee)" msgstr "" -#: company/models.py:853 +#: company/models.py:850 msgid "Part packaging" msgstr "" -#: company/models.py:858 templates/js/translated/company.js:1651 +#: company/models.py:855 templates/js/translated/company.js:1652 #: templates/js/translated/part.js:1828 templates/js/translated/part.js:1884 -#: templates/js/translated/purchase_order.js:311 -#: templates/js/translated/purchase_order.js:841 -#: templates/js/translated/purchase_order.js:1103 -#: templates/js/translated/purchase_order.js:2154 -#: templates/js/translated/purchase_order.js:2171 +#: templates/js/translated/purchase_order.js:294 +#: templates/js/translated/purchase_order.js:824 +#: templates/js/translated/purchase_order.js:1086 +#: templates/js/translated/purchase_order.js:2138 +#: templates/js/translated/purchase_order.js:2155 msgid "Pack Quantity" msgstr "" -#: company/models.py:860 +#: company/models.py:857 msgid "Total quantity supplied in a single pack. Leave empty for single items." msgstr "" -#: company/models.py:879 part/models.py:2124 +#: company/models.py:876 part/models.py:2184 msgid "multiple" msgstr "" -#: company/models.py:880 +#: company/models.py:877 msgid "Order multiple" msgstr "" -#: company/models.py:892 +#: company/models.py:889 msgid "Quantity available from supplier" msgstr "" -#: company/models.py:898 +#: company/models.py:895 msgid "Availability Updated" msgstr "" -#: company/models.py:899 +#: company/models.py:896 msgid "Date of last update of availability data" msgstr "" -#: company/models.py:1027 +#: company/models.py:1024 msgid "Supplier Price Break" msgstr "" -#: company/serializers.py:174 +#: company/serializers.py:178 msgid "Default currency used for this supplier" msgstr "" -#: company/serializers.py:210 +#: company/serializers.py:214 msgid "Company Name" msgstr "Företagsnamn" -#: company/serializers.py:393 part/admin.py:126 part/serializers.py:898 -#: part/templates/part/part_base.html:197 -#: templates/js/translated/company.js:1689 +#: company/serializers.py:397 part/admin.py:126 part/serializers.py:950 +#: part/templates/part/part_base.html:198 stock/serializers.py:474 +#: templates/js/translated/company.js:1690 #: templates/js/translated/table_filters.js:362 msgid "In Stock" msgstr "I lager" #: company/templates/company/company_base.html:16 -#: part/templates/part/part_base.html:146 -#: templates/js/translated/company.js:1287 -#: templates/js/translated/company.js:1575 -#: templates/js/translated/model_renderers.js:313 +#: part/templates/part/part_base.html:147 +#: templates/js/translated/company.js:1288 +#: templates/js/translated/company.js:1576 +#: templates/js/translated/model_renderers.js:316 #: templates/js/translated/part.js:817 templates/js/translated/part.js:1225 msgid "Inactive" msgstr "" #: company/templates/company/company_base.html:27 -#: templates/js/translated/purchase_order.js:242 +#: templates/js/translated/purchase_order.js:224 msgid "Create Purchase Order" msgstr "" @@ -4590,7 +4769,7 @@ msgid "Edit company information" msgstr "" #: company/templates/company/company_base.html:39 -#: templates/js/translated/company.js:445 +#: templates/js/translated/company.js:446 msgid "Edit Company" msgstr "Redigera företag" @@ -4605,11 +4784,12 @@ msgstr "Radera företag" #: company/templates/company/company_base.html:53 #: company/templates/company/manufacturer_part.html:51 -#: company/templates/company/supplier_part.html:83 +#: company/templates/company/supplier_part.html:84 #: part/templates/part/part_thumb.html:20 #: report/templates/report/inventree_build_order_report.html:98 #: report/templates/report/inventree_purchase_order_report.html:40 #: report/templates/report/inventree_sales_order_report.html:40 +#: report/templates/report/inventree_sales_order_shipment_report.html:37 #: report/templates/report/inventree_test_report.html:84 #: report/templates/report/inventree_test_report.html:162 msgid "Part image" @@ -4630,16 +4810,16 @@ msgstr "" msgid "Delete image" msgstr "Radera bild" -#: company/templates/company/company_base.html:92 order/models.py:990 -#: order/models.py:2147 order/templates/order/return_order_base.html:134 -#: order/templates/order/sales_order_base.html:151 stock/models.py:840 -#: stock/models.py:841 stock/serializers.py:1329 -#: stock/templates/stock/item_base.html:405 +#: company/templates/company/company_base.html:92 order/models.py:1017 +#: order/models.py:2186 order/templates/order/return_order_base.html:135 +#: order/templates/order/sales_order_base.html:152 stock/models.py:917 +#: stock/models.py:918 stock/serializers.py:1360 +#: stock/templates/stock/item_base.html:402 #: templates/email/overdue_sales_order.html:16 -#: templates/js/translated/company.js:503 +#: templates/js/translated/company.js:504 #: templates/js/translated/return_order.js:295 -#: templates/js/translated/sales_order.js:820 -#: templates/js/translated/stock.js:3043 +#: templates/js/translated/sales_order.js:779 +#: templates/js/translated/stock.js:3044 #: templates/js/translated/table_filters.js:820 msgid "Customer" msgstr "Kund" @@ -4653,7 +4833,7 @@ msgid "Phone" msgstr "Telefon" #: company/templates/company/company_base.html:211 -#: part/templates/part/part_base.html:536 +#: part/templates/part/part_base.html:544 msgid "Remove Image" msgstr "" @@ -4662,19 +4842,19 @@ msgid "Remove associated image from this company" msgstr "" #: company/templates/company/company_base.html:214 -#: part/templates/part/part_base.html:539 +#: part/templates/part/part_base.html:547 #: templates/InvenTree/settings/user.html:88 #: templates/InvenTree/settings/user_sso.html:43 msgid "Remove" msgstr "" #: company/templates/company/company_base.html:243 -#: part/templates/part/part_base.html:568 +#: part/templates/part/part_base.html:576 msgid "Upload Image" msgstr "" #: company/templates/company/company_base.html:258 -#: part/templates/part/part_base.html:622 +#: part/templates/part/part_base.html:630 msgid "Download Image" msgstr "" @@ -4714,7 +4894,7 @@ msgstr "" #: company/templates/company/detail.html:75 #: company/templates/company/sidebar.html:12 #: company/templates/company/supplier_part_sidebar.html:7 -#: order/templates/order/order_base.html:13 +#: order/templates/order/order_base.html:14 #: order/templates/order/purchase_orders.html:8 #: order/templates/order/purchase_orders.html:12 #: part/templates/part/detail.html:122 part/templates/part/part_sidebar.html:35 @@ -4737,7 +4917,7 @@ msgstr "" #: company/templates/company/detail.html:101 #: company/templates/company/sidebar.html:21 -#: order/templates/order/sales_order_base.html:13 +#: order/templates/order/sales_order_base.html:14 #: order/templates/order/sales_orders.html:8 #: order/templates/order/sales_orders.html:15 #: part/templates/part/detail.html:143 part/templates/part/part_sidebar.html:39 @@ -4764,7 +4944,7 @@ msgstr "" #: company/templates/company/detail.html:142 #: company/templates/company/sidebar.html:29 -#: order/templates/order/return_order_base.html:13 +#: order/templates/order/return_order_base.html:14 #: order/templates/order/return_orders.html:8 #: order/templates/order/return_orders.html:15 #: templates/InvenTree/settings/sidebar.html:61 @@ -4811,24 +4991,24 @@ msgid "Manufacturers" msgstr "Tillverkare" #: company/templates/company/manufacturer_part.html:35 -#: company/templates/company/supplier_part.html:227 -#: part/templates/part/detail.html:125 part/templates/part/part_base.html:83 +#: company/templates/company/supplier_part.html:228 +#: part/templates/part/detail.html:125 part/templates/part/part_base.html:84 msgid "Order part" msgstr "" #: company/templates/company/manufacturer_part.html:39 -#: templates/js/translated/company.js:1343 +#: templates/js/translated/company.js:1344 msgid "Edit manufacturer part" msgstr "" #: company/templates/company/manufacturer_part.html:43 -#: templates/js/translated/company.js:1344 +#: templates/js/translated/company.js:1345 msgid "Delete manufacturer part" msgstr "" #: company/templates/company/manufacturer_part.html:65 -#: company/templates/company/supplier_part.html:97 order/api.py:448 -#: order/serializers.py:564 +#: company/templates/company/supplier_part.html:98 order/api.py:411 +#: order/serializers.py:649 msgid "Internal Part" msgstr "" @@ -4837,8 +5017,8 @@ msgid "No manufacturer information available" msgstr "" #: company/templates/company/manufacturer_part.html:119 -#: company/templates/company/supplier_part.html:15 company/views.py:31 -#: part/admin.py:122 part/serializers.py:904 +#: company/templates/company/supplier_part.html:16 company/views.py:31 +#: part/admin.py:122 part/serializers.py:956 #: part/templates/part/part_sidebar.html:33 templates/InvenTree/search.html:190 #: templates/navbar.html:48 msgid "Suppliers" @@ -4887,112 +5067,113 @@ msgstr "" msgid "Contacts" msgstr "Kontakter" -#: company/templates/company/supplier_part.html:50 -#: templates/js/translated/company.js:1526 +#: company/templates/company/supplier_part.html:51 +#: templates/js/translated/company.js:1527 msgid "Supplier part actions" msgstr "" -#: company/templates/company/supplier_part.html:55 #: company/templates/company/supplier_part.html:56 -#: company/templates/company/supplier_part.html:228 +#: company/templates/company/supplier_part.html:57 +#: company/templates/company/supplier_part.html:229 #: part/templates/part/detail.html:126 msgid "Order Part" msgstr "" -#: company/templates/company/supplier_part.html:60 #: company/templates/company/supplier_part.html:61 +#: company/templates/company/supplier_part.html:62 msgid "Update Availability" msgstr "" -#: company/templates/company/supplier_part.html:63 #: company/templates/company/supplier_part.html:64 -#: templates/js/translated/company.js:294 +#: company/templates/company/supplier_part.html:65 +#: templates/js/translated/company.js:295 msgid "Edit Supplier Part" msgstr "" -#: company/templates/company/supplier_part.html:68 #: company/templates/company/supplier_part.html:69 -#: templates/js/translated/company.js:269 +#: company/templates/company/supplier_part.html:70 +#: templates/js/translated/company.js:270 msgid "Duplicate Supplier Part" msgstr "" -#: company/templates/company/supplier_part.html:73 +#: company/templates/company/supplier_part.html:74 msgid "Delete Supplier Part" msgstr "" -#: company/templates/company/supplier_part.html:74 +#: company/templates/company/supplier_part.html:75 msgid "Delete Supplier Part" msgstr "" -#: company/templates/company/supplier_part.html:133 +#: company/templates/company/supplier_part.html:134 +#: order/templates/order/order_base.html:155 msgid "No supplier information available" msgstr "" -#: company/templates/company/supplier_part.html:139 order/serializers.py:553 -#: part/bom.py:287 part/bom.py:319 part/serializers.py:548 -#: templates/js/translated/company.js:349 templates/js/translated/part.js:1793 +#: company/templates/company/supplier_part.html:140 order/serializers.py:638 +#: part/bom.py:286 part/bom.py:315 part/serializers.py:592 +#: templates/js/translated/company.js:350 templates/js/translated/part.js:1793 #: templates/js/translated/pricing.js:510 -#: templates/js/translated/purchase_order.js:1920 -#: templates/js/translated/purchase_order.js:2098 +#: templates/js/translated/purchase_order.js:1904 +#: templates/js/translated/purchase_order.js:2082 msgid "SKU" msgstr "" -#: company/templates/company/supplier_part.html:206 +#: company/templates/company/supplier_part.html:207 msgid "Supplier Part Stock" msgstr "" -#: company/templates/company/supplier_part.html:209 -#: part/templates/part/detail.html:24 stock/templates/stock/location.html:204 +#: company/templates/company/supplier_part.html:210 +#: part/templates/part/detail.html:24 stock/templates/stock/location.html:205 msgid "Create new stock item" msgstr "" -#: company/templates/company/supplier_part.html:210 -#: part/templates/part/detail.html:25 stock/templates/stock/location.html:205 +#: company/templates/company/supplier_part.html:211 +#: part/templates/part/detail.html:25 stock/templates/stock/location.html:206 #: templates/js/translated/stock.js:543 msgid "New Stock Item" msgstr "" -#: company/templates/company/supplier_part.html:223 +#: company/templates/company/supplier_part.html:224 msgid "Supplier Part Orders" msgstr "" -#: company/templates/company/supplier_part.html:246 +#: company/templates/company/supplier_part.html:247 msgid "Pricing Information" msgstr "" -#: company/templates/company/supplier_part.html:251 -#: templates/js/translated/company.js:398 +#: company/templates/company/supplier_part.html:252 +#: templates/js/translated/company.js:399 #: templates/js/translated/pricing.js:684 msgid "Add Price Break" msgstr "" -#: company/templates/company/supplier_part.html:270 +#: company/templates/company/supplier_part.html:271 msgid "Supplier Part Notes" msgstr "" -#: company/templates/company/supplier_part.html:305 +#: company/templates/company/supplier_part.html:306 msgid "Supplier Part QR Code" msgstr "" -#: company/templates/company/supplier_part.html:316 +#: company/templates/company/supplier_part.html:317 msgid "Link Barcode to Supplier Part" msgstr "" -#: company/templates/company/supplier_part.html:388 +#: company/templates/company/supplier_part.html:389 msgid "Update Part Availability" msgstr "" #: company/templates/company/supplier_part_sidebar.html:5 -#: part/serializers.py:902 part/stocktake.py:223 +#: part/serializers.py:954 part/stocktake.py:223 #: part/templates/part/category.html:180 #: part/templates/part/category_sidebar.html:17 stock/admin.py:68 -#: stock/serializers.py:1014 stock/serializers.py:1192 -#: stock/templates/stock/location.html:167 -#: stock/templates/stock/location.html:188 -#: stock/templates/stock/location.html:200 +#: stock/serializers.py:1045 stock/serializers.py:1223 +#: stock/templates/stock/location.html:168 +#: stock/templates/stock/location.html:189 +#: stock/templates/stock/location.html:201 #: stock/templates/stock/location_sidebar.html:7 #: templates/InvenTree/search.html:155 templates/js/translated/part.js:1067 -#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2850 +#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2851 #: users/models.py:206 msgid "Stock Items" msgstr "" @@ -5022,99 +5203,99 @@ msgstr "Ny kund" msgid "New Company" msgstr "Nytt företag" -#: generic/states/tests.py:18 order/status_codes.py:13 +#: generic/states/fields.py:118 +msgid "Custom status key" +msgstr "" + +#: generic/states/fields.py:119 +msgid "Additional status information for this item" +msgstr "" + +#: generic/states/tests.py:22 order/status_codes.py:13 msgid "Placed" msgstr "Placerad" -#: importer/mixins.py:263 +#: importer/mixins.py:261 msgid "Invalid export format" -msgstr "" +msgstr "Ogiltigt exportformat" -#: importer/models.py:59 -msgid "Timestamp" -msgstr "" - -#: importer/models.py:64 +#: importer/models.py:65 msgid "Data file to import" msgstr "" -#: importer/models.py:73 templates/js/translated/tables.js:558 +#: importer/models.py:74 templates/js/translated/tables.js:558 msgid "Columns" msgstr "Kolumner" -#: importer/models.py:84 +#: importer/models.py:85 msgid "Import status" msgstr "" -#: importer/models.py:94 +#: importer/models.py:95 msgid "Field Defaults" msgstr "" -#: importer/models.py:101 +#: importer/models.py:102 msgid "Field Overrides" msgstr "" -#: importer/models.py:108 +#: importer/models.py:109 msgid "Field Filters" msgstr "" -#: importer/models.py:230 +#: importer/models.py:239 msgid "Some required fields have not been mapped" msgstr "" -#: importer/models.py:387 +#: importer/models.py:396 msgid "Column is already mapped to a database field" msgstr "" -#: importer/models.py:392 +#: importer/models.py:401 msgid "Field is already mapped to a data column" msgstr "" -#: importer/models.py:401 +#: importer/models.py:410 msgid "Column mapping must be linked to a valid import session" msgstr "" -#: importer/models.py:406 +#: importer/models.py:415 msgid "Column does not exist in the data file" msgstr "" -#: importer/models.py:413 +#: importer/models.py:422 msgid "Field does not exist in the target model" msgstr "" -#: importer/models.py:417 +#: importer/models.py:426 msgid "Selected field is read-only" msgstr "" -#: importer/models.py:422 importer/models.py:493 +#: importer/models.py:431 importer/models.py:502 msgid "Import Session" msgstr "" -#: importer/models.py:426 +#: importer/models.py:435 msgid "Field" -msgstr "" +msgstr "Fält" -#: importer/models.py:428 +#: importer/models.py:437 msgid "Column" msgstr "Kolumn" -#: importer/models.py:497 +#: importer/models.py:506 msgid "Row Index" msgstr "" -#: importer/models.py:500 +#: importer/models.py:509 msgid "Original row data" msgstr "" -#: importer/models.py:503 part/models.py:3951 -msgid "Data" -msgstr "" - -#: importer/models.py:505 machine/models.py:110 +#: importer/models.py:514 machine/models.py:110 msgid "Errors" msgstr "" -#: importer/models.py:507 part/api.py:873 +#: importer/models.py:516 part/api.py:857 msgid "Valid" msgstr "" @@ -5166,19 +5347,19 @@ msgstr "" msgid "Row has already been completed" msgstr "" -#: importer/status_codes.py:11 +#: importer/status_codes.py:13 msgid "Initializing" msgstr "" -#: importer/status_codes.py:12 +#: importer/status_codes.py:18 msgid "Mapping Columns" msgstr "" -#: importer/status_codes.py:13 +#: importer/status_codes.py:21 msgid "Importing Data" msgstr "" -#: importer/status_codes.py:16 +#: importer/status_codes.py:24 msgid "Processing Data" msgstr "" @@ -5202,52 +5383,52 @@ msgstr "" msgid "Value must be a valid dictionary object" msgstr "" -#: machine/machine_types/label_printer.py:215 +#: machine/machine_types/label_printer.py:216 msgid "Copies" msgstr "" -#: machine/machine_types/label_printer.py:216 +#: machine/machine_types/label_printer.py:217 msgid "Number of copies to print for each label" msgstr "" -#: machine/machine_types/label_printer.py:231 +#: machine/machine_types/label_printer.py:232 msgid "Connected" msgstr "" -#: machine/machine_types/label_printer.py:232 order/api.py:1410 -#: templates/js/translated/sales_order.js:1078 +#: machine/machine_types/label_printer.py:233 order/api.py:1532 +#: templates/js/translated/sales_order.js:1044 msgid "Unknown" msgstr "" -#: machine/machine_types/label_printer.py:233 +#: machine/machine_types/label_printer.py:234 msgid "Printing" msgstr "" -#: machine/machine_types/label_printer.py:234 +#: machine/machine_types/label_printer.py:235 msgid "No media" msgstr "" -#: machine/machine_types/label_printer.py:235 +#: machine/machine_types/label_printer.py:236 msgid "Paper jam" msgstr "" -#: machine/machine_types/label_printer.py:236 +#: machine/machine_types/label_printer.py:237 msgid "Disconnected" msgstr "" -#: machine/machine_types/label_printer.py:243 +#: machine/machine_types/label_printer.py:244 msgid "Label Printer" msgstr "" -#: machine/machine_types/label_printer.py:244 +#: machine/machine_types/label_printer.py:245 msgid "Directly print labels for various items." msgstr "" -#: machine/machine_types/label_printer.py:250 +#: machine/machine_types/label_printer.py:251 msgid "Printer Location" msgstr "" -#: machine/machine_types/label_printer.py:251 +#: machine/machine_types/label_printer.py:252 msgid "Scope the printer to a specific location" msgstr "" @@ -5307,79 +5488,75 @@ msgstr "" #: report/templates/report/inventree_purchase_order_report.html:31 #: report/templates/report/inventree_sales_order_report.html:31 #: templates/js/translated/order.js:352 -#: templates/js/translated/purchase_order.js:2195 -#: templates/js/translated/sales_order.js:1883 +#: templates/js/translated/purchase_order.js:2179 +#: templates/js/translated/sales_order.js:1864 msgid "Total Price" msgstr "" -#: order/api.py:80 order/api.py:151 order/serializers.py:93 -#: order/templates/order/order_base.html:123 -#: order/templates/order/return_order_base.html:116 -#: order/templates/order/sales_order_base.html:125 +#: order/api.py:78 order/api.py:149 order/serializers.py:124 +#: order/templates/order/order_base.html:124 +#: order/templates/order/return_order_base.html:117 +#: order/templates/order/sales_order_base.html:126 msgid "Order Status" msgstr "Orderstatus" -#: order/api.py:88 order/templates/order/order_base.html:111 -#: order/templates/order/return_order_base.html:104 -#: order/templates/order/sales_order_base.html:113 +#: order/api.py:86 order/templates/order/order_base.html:112 +#: order/templates/order/return_order_base.html:105 +#: order/templates/order/sales_order_base.html:114 msgid "Order Reference" msgstr "" -#: order/api.py:116 templates/js/translated/table_filters.js:93 +#: order/api.py:114 order/api.py:1022 +#: templates/js/translated/table_filters.js:93 #: templates/js/translated/table_filters.js:625 #: templates/js/translated/table_filters.js:651 #: templates/js/translated/table_filters.js:666 msgid "Outstanding" msgstr "" -#: order/api.py:132 +#: order/api.py:130 msgid "Has Project Code" -msgstr "" +msgstr "Har projektkod" -#: order/api.py:155 templates/js/translated/table_filters.js:201 +#: order/api.py:153 templates/js/translated/table_filters.js:201 #: templates/js/translated/table_filters.js:791 msgid "Has Pricing" msgstr "" -#: order/api.py:230 -msgid "No matching purchase order found" -msgstr "" - -#: order/api.py:425 order/api.py:763 order/models.py:1484 order/models.py:1598 -#: order/models.py:1649 order/models.py:1764 order/models.py:1923 -#: order/models.py:2383 order/models.py:2439 -#: templates/js/translated/sales_order.js:1524 +#: order/api.py:375 order/api.py:771 order/api.py:986 order/models.py:1500 +#: order/models.py:1614 order/models.py:1665 order/models.py:1793 +#: order/models.py:1956 order/models.py:2422 order/models.py:2478 +#: templates/js/translated/sales_order.js:1490 msgid "Order" msgstr "" -#: order/api.py:429 order/api.py:784 +#: order/api.py:379 order/api.py:809 msgid "Order Complete" msgstr "" -#: order/api.py:452 +#: order/api.py:430 msgid "Order Pending" msgstr "" -#: order/api.py:1404 order/models.py:379 order/models.py:1485 -#: order/models.py:1599 order/templates/order/order_base.html:9 -#: order/templates/order/order_base.html:18 +#: order/api.py:1526 order/models.py:386 order/models.py:1501 +#: order/models.py:1615 order/templates/order/order_base.html:10 +#: order/templates/order/order_base.html:19 #: report/templates/report/inventree_purchase_order_report.html:14 -#: stock/serializers.py:120 stock/templates/stock/item_base.html:176 +#: stock/serializers.py:121 stock/templates/stock/item_base.html:173 #: templates/email/overdue_purchase_order.html:15 #: templates/js/translated/part.js:1752 templates/js/translated/pricing.js:804 -#: templates/js/translated/purchase_order.js:168 -#: templates/js/translated/purchase_order.js:753 -#: templates/js/translated/purchase_order.js:1743 -#: templates/js/translated/stock.js:2345 templates/js/translated/stock.js:2991 +#: templates/js/translated/purchase_order.js:736 +#: templates/js/translated/purchase_order.js:1727 +#: templates/js/translated/stock.js:2346 templates/js/translated/stock.js:2992 msgid "Purchase Order" msgstr "" -#: order/api.py:1408 order/models.py:2091 order/models.py:2384 -#: order/models.py:2440 order/templates/order/return_order_base.html:9 -#: order/templates/order/return_order_base.html:28 +#: order/api.py:1530 order/models.py:2124 order/models.py:2423 +#: order/models.py:2479 order/templates/order/return_order_base.html:10 +#: order/templates/order/return_order_base.html:29 #: report/templates/report/inventree_return_order_report.html:13 #: templates/js/translated/return_order.js:280 -#: templates/js/translated/stock.js:3025 +#: templates/js/translated/stock.js:3026 msgid "Return Order" msgstr "" @@ -5387,751 +5564,782 @@ msgstr "" msgid "Total price for this order" msgstr "" -#: order/models.py:95 order/serializers.py:71 +#: order/models.py:95 order/serializers.py:73 msgid "Order Currency" msgstr "" -#: order/models.py:98 order/serializers.py:72 +#: order/models.py:98 order/serializers.py:74 msgid "Currency for this order (leave blank to use company default)" msgstr "" -#: order/models.py:246 +#: order/models.py:243 msgid "Contact does not match selected company" msgstr "" -#: order/models.py:289 +#: order/models.py:296 msgid "Order description (optional)" msgstr "" -#: order/models.py:298 +#: order/models.py:305 msgid "Select project code for this order" msgstr "" -#: order/models.py:302 order/models.py:1385 order/models.py:1817 +#: order/models.py:309 order/models.py:1402 order/models.py:1846 msgid "Link to external page" msgstr "" -#: order/models.py:310 +#: order/models.py:317 msgid "Expected date for order delivery. Order will be overdue after this date." msgstr "" -#: order/models.py:324 +#: order/models.py:331 msgid "Created By" msgstr "" -#: order/models.py:332 +#: order/models.py:339 msgid "User or group responsible for this order" msgstr "" -#: order/models.py:343 +#: order/models.py:350 msgid "Point of contact for this order" msgstr "" -#: order/models.py:353 +#: order/models.py:360 msgid "Company address for this order" msgstr "" -#: order/models.py:468 order/models.py:979 +#: order/models.py:480 order/models.py:1006 msgid "Order reference" msgstr "" -#: order/models.py:477 +#: order/models.py:489 msgid "Purchase order status" msgstr "" -#: order/models.py:492 +#: order/models.py:504 msgid "Company from which the items are being ordered" msgstr "" -#: order/models.py:503 order/templates/order/order_base.html:153 -#: templates/js/translated/purchase_order.js:1772 +#: order/models.py:515 order/templates/order/order_base.html:162 +#: templates/js/translated/purchase_order.js:1756 msgid "Supplier Reference" msgstr "" -#: order/models.py:504 +#: order/models.py:516 msgid "Supplier order reference code" msgstr "" -#: order/models.py:513 +#: order/models.py:525 msgid "received by" msgstr "" -#: order/models.py:519 order/models.py:2173 +#: order/models.py:531 order/models.py:2212 msgid "Issue Date" msgstr "" -#: order/models.py:520 order/models.py:2174 +#: order/models.py:532 order/models.py:2213 msgid "Date order was issued" msgstr "" -#: order/models.py:527 order/models.py:2181 +#: order/models.py:539 order/models.py:2220 msgid "Date order was completed" msgstr "" -#: order/models.py:571 +#: order/models.py:549 order/models.py:1552 +msgid "Destination for received items" +msgstr "" + +#: order/models.py:593 msgid "Part supplier must match PO supplier" msgstr "" -#: order/models.py:806 +#: order/models.py:828 msgid "Quantity must be a positive number" msgstr "" -#: order/models.py:991 +#: order/models.py:1018 msgid "Company to which the items are being sold" msgstr "" -#: order/models.py:1003 +#: order/models.py:1030 msgid "Sales order status" msgstr "" -#: order/models.py:1014 order/models.py:2166 +#: order/models.py:1041 order/models.py:2205 msgid "Customer Reference " msgstr "" -#: order/models.py:1015 order/models.py:2167 +#: order/models.py:1042 order/models.py:2206 msgid "Customer order reference code" msgstr "" -#: order/models.py:1019 order/models.py:1771 -#: templates/js/translated/sales_order.js:879 -#: templates/js/translated/sales_order.js:1060 +#: order/models.py:1046 order/models.py:1800 +#: templates/js/translated/sales_order.js:838 +#: templates/js/translated/sales_order.js:1026 msgid "Shipment Date" msgstr "" -#: order/models.py:1028 +#: order/models.py:1055 msgid "shipped by" msgstr "" -#: order/models.py:1077 +#: order/models.py:1094 msgid "Order is already complete" msgstr "" -#: order/models.py:1080 +#: order/models.py:1097 msgid "Order is already cancelled" msgstr "" -#: order/models.py:1084 +#: order/models.py:1101 msgid "Only an open order can be marked as complete" msgstr "" -#: order/models.py:1088 +#: order/models.py:1105 msgid "Order cannot be completed as there are incomplete shipments" msgstr "" -#: order/models.py:1093 +#: order/models.py:1110 msgid "Order cannot be completed as there are incomplete line items" msgstr "" -#: order/models.py:1357 +#: order/models.py:1374 msgid "Item quantity" msgstr "" -#: order/models.py:1374 +#: order/models.py:1391 msgid "Line item reference" msgstr "" -#: order/models.py:1381 +#: order/models.py:1398 msgid "Line item notes" msgstr "" -#: order/models.py:1393 +#: order/models.py:1410 msgid "Target date for this line item (leave blank to use the target date from the order)" msgstr "" -#: order/models.py:1414 +#: order/models.py:1431 msgid "Line item description (optional)" msgstr "" -#: order/models.py:1420 -msgid "Context" -msgstr "" - -#: order/models.py:1421 +#: order/models.py:1438 msgid "Additional context for this line" msgstr "" -#: order/models.py:1431 +#: order/models.py:1448 msgid "Unit price" msgstr "" -#: order/models.py:1445 +#: order/models.py:1462 msgid "Purchase Order Line Item" msgstr "" -#: order/models.py:1469 +#: order/models.py:1486 msgid "Supplier part must match supplier" msgstr "" -#: order/models.py:1476 -msgid "deleted" -msgstr "" - -#: order/models.py:1504 +#: order/models.py:1520 msgid "Supplier part" msgstr "" -#: order/models.py:1511 order/templates/order/order_base.html:201 +#: order/models.py:1527 order/templates/order/order_base.html:210 #: templates/js/translated/part.js:1876 templates/js/translated/part.js:1908 -#: templates/js/translated/purchase_order.js:1369 -#: templates/js/translated/purchase_order.js:2239 +#: templates/js/translated/purchase_order.js:1352 +#: templates/js/translated/purchase_order.js:2223 #: templates/js/translated/return_order.js:762 #: templates/js/translated/table_filters.js:119 #: templates/js/translated/table_filters.js:605 msgid "Received" msgstr "" -#: order/models.py:1512 +#: order/models.py:1528 msgid "Number of items received" msgstr "" -#: order/models.py:1520 stock/models.py:959 stock/serializers.py:610 -#: stock/templates/stock/item_base.html:183 -#: templates/js/translated/stock.js:2396 +#: order/models.py:1536 stock/models.py:1036 stock/serializers.py:637 +#: stock/templates/stock/item_base.html:180 +#: templates/js/translated/stock.js:2397 msgid "Purchase Price" msgstr "" -#: order/models.py:1521 +#: order/models.py:1537 msgid "Unit purchase price" msgstr "" -#: order/models.py:1536 -msgid "Where does the Purchaser want this item to be stored?" -msgstr "" - -#: order/models.py:1587 +#: order/models.py:1603 msgid "Purchase Order Extra Line" msgstr "" -#: order/models.py:1616 +#: order/models.py:1632 msgid "Sales Order Line Item" msgstr "" -#: order/models.py:1637 +#: order/models.py:1653 msgid "Virtual part cannot be assigned to a sales order" msgstr "" -#: order/models.py:1642 +#: order/models.py:1658 msgid "Only salable parts can be assigned to a sales order" msgstr "" -#: order/models.py:1668 part/templates/part/part_pricing.html:107 -#: part/templates/part/prices.html:139 templates/js/translated/pricing.js:957 +#: order/models.py:1684 part/templates/part/part_pricing.html:107 +#: part/templates/part/prices.html:139 templates/js/translated/pricing.js:955 msgid "Sale Price" msgstr "" -#: order/models.py:1669 +#: order/models.py:1685 msgid "Unit sale price" msgstr "" -#: order/models.py:1678 order/status_codes.py:48 -#: templates/js/translated/sales_order.js:1559 -#: templates/js/translated/sales_order.js:1680 -#: templates/js/translated/sales_order.js:1993 +#: order/models.py:1694 order/status_codes.py:50 +#: templates/js/translated/sales_order.js:1525 +#: templates/js/translated/sales_order.js:1661 +#: templates/js/translated/sales_order.js:1974 msgid "Shipped" msgstr "Skickad" -#: order/models.py:1679 +#: order/models.py:1695 msgid "Shipped quantity" msgstr "" -#: order/models.py:1751 +#: order/models.py:1769 msgid "Sales Order Shipment" msgstr "" -#: order/models.py:1772 +#: order/models.py:1801 msgid "Date of shipment" msgstr "" -#: order/models.py:1778 templates/js/translated/sales_order.js:1072 +#: order/models.py:1807 templates/js/translated/sales_order.js:1038 msgid "Delivery Date" msgstr "Leveransdatum" -#: order/models.py:1779 +#: order/models.py:1808 msgid "Date of delivery of shipment" msgstr "" -#: order/models.py:1787 +#: order/models.py:1816 msgid "Checked By" msgstr "" -#: order/models.py:1788 +#: order/models.py:1817 msgid "User who checked this shipment" msgstr "" -#: order/models.py:1795 order/models.py:2018 order/serializers.py:1475 -#: order/serializers.py:1585 templates/js/translated/model_renderers.js:455 +#: order/models.py:1824 order/models.py:2051 order/serializers.py:1601 +#: order/serializers.py:1725 +#: report/templates/report/inventree_sales_order_shipment_report.html:14 +#: templates/js/translated/model_renderers.js:458 +#: templates/js/translated/sales_order.js:1615 msgid "Shipment" msgstr "" -#: order/models.py:1796 +#: order/models.py:1825 msgid "Shipment number" msgstr "" -#: order/models.py:1804 +#: order/models.py:1833 msgid "Tracking Number" msgstr "" -#: order/models.py:1805 +#: order/models.py:1834 msgid "Shipment tracking information" msgstr "" -#: order/models.py:1812 +#: order/models.py:1841 msgid "Invoice Number" msgstr "Fakturanummer" -#: order/models.py:1813 +#: order/models.py:1842 msgid "Reference number for associated invoice" msgstr "" -#: order/models.py:1833 +#: order/models.py:1862 msgid "Shipment has already been sent" msgstr "" -#: order/models.py:1836 +#: order/models.py:1865 msgid "Shipment has no allocated stock items" msgstr "" -#: order/models.py:1912 +#: order/models.py:1945 msgid "Sales Order Extra Line" msgstr "" -#: order/models.py:1941 +#: order/models.py:1974 msgid "Sales Order Allocation" msgstr "" -#: order/models.py:1964 order/models.py:1966 +#: order/models.py:1997 order/models.py:1999 msgid "Stock item has not been assigned" msgstr "" -#: order/models.py:1973 +#: order/models.py:2006 msgid "Cannot allocate stock item to a line with a different part" msgstr "" -#: order/models.py:1976 +#: order/models.py:2009 msgid "Cannot allocate stock to a line without a part" msgstr "" -#: order/models.py:1979 +#: order/models.py:2012 msgid "Allocation quantity cannot exceed stock quantity" msgstr "" -#: order/models.py:1998 order/serializers.py:1345 +#: order/models.py:2031 order/serializers.py:1471 msgid "Quantity must be 1 for serialized stock item" msgstr "" -#: order/models.py:2001 +#: order/models.py:2034 msgid "Sales order does not match shipment" msgstr "" -#: order/models.py:2002 plugin/base/barcodes/api.py:524 +#: order/models.py:2035 plugin/base/barcodes/api.py:629 msgid "Shipment does not match sales order" msgstr "" -#: order/models.py:2010 +#: order/models.py:2043 msgid "Line" msgstr "" -#: order/models.py:2019 +#: order/models.py:2052 msgid "Sales order shipment reference" msgstr "" -#: order/models.py:2032 order/models.py:2391 +#: order/models.py:2065 order/models.py:2430 #: templates/js/translated/return_order.js:720 msgid "Item" msgstr "" -#: order/models.py:2033 +#: order/models.py:2066 msgid "Select stock item to allocate" msgstr "" -#: order/models.py:2042 +#: order/models.py:2075 msgid "Enter stock allocation quantity" msgstr "" -#: order/models.py:2136 +#: order/models.py:2175 msgid "Return Order reference" msgstr "" -#: order/models.py:2148 +#: order/models.py:2187 msgid "Company from which items are being returned" msgstr "" -#: order/models.py:2160 +#: order/models.py:2199 msgid "Return order status" msgstr "" -#: order/models.py:2362 +#: order/models.py:2401 msgid "Return Order Line Item" msgstr "" -#: order/models.py:2376 +#: order/models.py:2415 msgid "Only serialized items can be assigned to a Return Order" msgstr "" -#: order/models.py:2392 +#: order/models.py:2431 msgid "Select item to return from customer" msgstr "" -#: order/models.py:2398 +#: order/models.py:2437 msgid "Received Date" msgstr "" -#: order/models.py:2399 +#: order/models.py:2438 msgid "The date this this return item was received" msgstr "" -#: order/models.py:2410 templates/js/translated/return_order.js:731 +#: order/models.py:2449 templates/js/translated/return_order.js:731 #: templates/js/translated/table_filters.js:122 msgid "Outcome" msgstr "" -#: order/models.py:2411 +#: order/models.py:2450 msgid "Outcome for this line item" msgstr "" -#: order/models.py:2418 +#: order/models.py:2457 msgid "Cost associated with return or repair for this line item" msgstr "" -#: order/models.py:2428 +#: order/models.py:2467 msgid "Return Order Extra Line" msgstr "" -#: order/serializers.py:86 +#: order/serializers.py:87 +msgid "Order ID" +msgstr "" + +#: order/serializers.py:87 +msgid "ID of the order to duplicate" +msgstr "" + +#: order/serializers.py:93 +msgid "Copy Lines" +msgstr "" + +#: order/serializers.py:94 +msgid "Copy line items from the original order" +msgstr "" + +#: order/serializers.py:100 +msgid "Copy Extra Lines" +msgstr "" + +#: order/serializers.py:101 +msgid "Copy extra line items from the original order" +msgstr "" + +#: order/serializers.py:117 msgid "Completed Lines" msgstr "" -#: order/serializers.py:283 stock/admin.py:195 +#: order/serializers.py:161 +msgid "Duplicate Order" +msgstr "" + +#: order/serializers.py:162 +msgid "Specify options for duplicating this order" +msgstr "" + +#: order/serializers.py:234 +msgid "Invalid order ID" +msgstr "" + +#: order/serializers.py:374 stock/admin.py:196 msgid "Supplier Name" msgstr "Leverantörsnamn" -#: order/serializers.py:331 +#: order/serializers.py:416 msgid "Order cannot be cancelled" msgstr "" -#: order/serializers.py:346 order/serializers.py:1366 +#: order/serializers.py:431 order/serializers.py:1492 msgid "Allow order to be closed with incomplete line items" msgstr "" -#: order/serializers.py:356 order/serializers.py:1376 +#: order/serializers.py:441 order/serializers.py:1502 msgid "Order has incomplete line items" msgstr "" -#: order/serializers.py:506 +#: order/serializers.py:591 msgid "Order is not open" msgstr "" -#: order/serializers.py:527 +#: order/serializers.py:612 msgid "Auto Pricing" msgstr "" -#: order/serializers.py:529 +#: order/serializers.py:614 msgid "Automatically calculate purchase price based on supplier part data" msgstr "" -#: order/serializers.py:539 +#: order/serializers.py:624 msgid "Purchase price currency" msgstr "" -#: order/serializers.py:545 +#: order/serializers.py:630 msgid "Merge Items" msgstr "" -#: order/serializers.py:547 +#: order/serializers.py:632 msgid "Merge items with the same part, destination and target date into one line item" msgstr "" -#: order/serializers.py:560 part/models.py:1033 +#: order/serializers.py:645 part/models.py:1094 part/serializers.py:387 msgid "Internal Part Number" msgstr "" -#: order/serializers.py:568 +#: order/serializers.py:653 msgid "Internal Part Name" msgstr "" -#: order/serializers.py:584 +#: order/serializers.py:669 msgid "Supplier part must be specified" msgstr "" -#: order/serializers.py:587 +#: order/serializers.py:672 msgid "Purchase order must be specified" msgstr "" -#: order/serializers.py:595 +#: order/serializers.py:680 msgid "Supplier must match purchase order" msgstr "" -#: order/serializers.py:596 +#: order/serializers.py:681 msgid "Purchase order must match supplier" msgstr "" -#: order/serializers.py:639 order/serializers.py:1446 +#: order/serializers.py:724 order/serializers.py:1572 msgid "Line Item" msgstr "" -#: order/serializers.py:645 +#: order/serializers.py:730 msgid "Line item does not match purchase order" msgstr "" -#: order/serializers.py:655 order/serializers.py:779 order/serializers.py:1782 +#: order/serializers.py:740 order/serializers.py:881 order/serializers.py:1934 msgid "Select destination location for received items" msgstr "" -#: order/serializers.py:671 templates/js/translated/purchase_order.js:1130 +#: order/serializers.py:756 templates/js/translated/purchase_order.js:1113 #: templates/js/translated/stock.js:1200 msgid "Enter batch code for incoming stock items" msgstr "" -#: order/serializers.py:679 templates/js/translated/purchase_order.js:1155 +#: order/serializers.py:764 templates/js/translated/purchase_order.js:1138 msgid "Enter serial numbers for incoming stock items" msgstr "" -#: order/serializers.py:691 +#: order/serializers.py:776 msgid "Override packaging information for incoming stock items" msgstr "" -#: order/serializers.py:699 +#: order/serializers.py:784 msgid "Additional note for incoming stock items" msgstr "" -#: order/serializers.py:706 templates/js/translated/barcode.js:52 +#: order/serializers.py:791 templates/js/translated/barcode.js:52 msgid "Barcode" msgstr "Streckkod" -#: order/serializers.py:707 +#: order/serializers.py:792 msgid "Scanned barcode" msgstr "" -#: order/serializers.py:723 +#: order/serializers.py:808 msgid "Barcode is already in use" msgstr "" -#: order/serializers.py:747 +#: order/serializers.py:831 msgid "An integer quantity must be provided for trackable parts" msgstr "" -#: order/serializers.py:795 order/serializers.py:1798 +#: order/serializers.py:898 order/serializers.py:1950 msgid "Line items must be provided" msgstr "" -#: order/serializers.py:811 +#: order/serializers.py:914 msgid "Destination location must be specified" msgstr "" -#: order/serializers.py:822 +#: order/serializers.py:925 msgid "Supplied barcode values must be unique" msgstr "" -#: order/serializers.py:1187 +#: order/serializers.py:1221 msgid "Sale price currency" msgstr "" -#: order/serializers.py:1248 +#: order/serializers.py:1260 +msgid "Allocated Items" +msgstr "" + +#: order/serializers.py:1374 msgid "No shipment details provided" msgstr "" -#: order/serializers.py:1309 order/serializers.py:1455 +#: order/serializers.py:1435 order/serializers.py:1581 msgid "Line item is not associated with this order" msgstr "" -#: order/serializers.py:1328 +#: order/serializers.py:1454 msgid "Quantity must be positive" msgstr "" -#: order/serializers.py:1465 +#: order/serializers.py:1591 msgid "Enter serial numbers to allocate" msgstr "" -#: order/serializers.py:1487 order/serializers.py:1593 +#: order/serializers.py:1613 order/serializers.py:1733 msgid "Shipment has already been shipped" msgstr "" -#: order/serializers.py:1490 order/serializers.py:1596 +#: order/serializers.py:1616 order/serializers.py:1736 msgid "Shipment is not associated with this order" msgstr "" -#: order/serializers.py:1537 +#: order/serializers.py:1671 msgid "No match found for the following serial numbers" msgstr "" -#: order/serializers.py:1544 -msgid "The following serial numbers are already allocated" +#: order/serializers.py:1678 +msgid "The following serial numbers are unavailable" msgstr "" -#: order/serializers.py:1752 +#: order/serializers.py:1904 msgid "Return order line item" msgstr "" -#: order/serializers.py:1758 +#: order/serializers.py:1910 msgid "Line item does not match return order" msgstr "" -#: order/serializers.py:1761 +#: order/serializers.py:1913 msgid "Line item has already been received" msgstr "" -#: order/serializers.py:1790 +#: order/serializers.py:1942 msgid "Items can only be received against orders which are in progress" msgstr "" -#: order/serializers.py:1873 +#: order/serializers.py:2025 msgid "Line price currency" msgstr "" -#: order/status_codes.py:17 order/status_codes.py:52 stock/status_codes.py:16 +#: order/status_codes.py:17 order/status_codes.py:54 stock/status_codes.py:16 msgid "Lost" msgstr "Förlorad" -#: order/status_codes.py:18 order/status_codes.py:53 stock/status_codes.py:22 +#: order/status_codes.py:18 order/status_codes.py:55 stock/status_codes.py:24 msgid "Returned" msgstr "Återlämnad" -#: order/status_codes.py:45 order/status_codes.py:77 +#: order/status_codes.py:47 order/status_codes.py:79 msgid "In Progress" msgstr "Pågående" -#: order/status_codes.py:101 +#: order/status_codes.py:105 msgid "Return" msgstr "" -#: order/status_codes.py:104 +#: order/status_codes.py:108 msgid "Repair" msgstr "Reparera" -#: order/status_codes.py:107 +#: order/status_codes.py:111 msgid "Replace" msgstr "Ersätt" -#: order/status_codes.py:110 +#: order/status_codes.py:114 msgid "Refund" msgstr "Återbetala" -#: order/status_codes.py:113 +#: order/status_codes.py:117 msgid "Reject" msgstr "Avvisa" -#: order/tasks.py:25 +#: order/tasks.py:30 msgid "Overdue Purchase Order" msgstr "" -#: order/tasks.py:30 +#: order/tasks.py:35 #, python-brace-format msgid "Purchase order {po} is now overdue" msgstr "" -#: order/tasks.py:75 +#: order/tasks.py:80 msgid "Overdue Sales Order" msgstr "" -#: order/tasks.py:80 +#: order/tasks.py:85 #, python-brace-format msgid "Sales order {so} is now overdue" msgstr "" -#: order/templates/order/order_base.html:51 +#: order/templates/order/order_base.html:52 msgid "Print purchase order report" msgstr "" -#: order/templates/order/order_base.html:53 -#: order/templates/order/return_order_base.html:62 -#: order/templates/order/sales_order_base.html:62 +#: order/templates/order/order_base.html:54 +#: order/templates/order/return_order_base.html:63 +#: order/templates/order/sales_order_base.html:63 msgid "Export order to file" msgstr "" -#: order/templates/order/order_base.html:59 -#: order/templates/order/return_order_base.html:72 -#: order/templates/order/sales_order_base.html:71 +#: order/templates/order/order_base.html:60 +#: order/templates/order/return_order_base.html:73 +#: order/templates/order/sales_order_base.html:72 msgid "Order actions" msgstr "" -#: order/templates/order/order_base.html:64 -#: order/templates/order/return_order_base.html:76 -#: order/templates/order/sales_order_base.html:75 +#: order/templates/order/order_base.html:65 +#: order/templates/order/return_order_base.html:77 +#: order/templates/order/sales_order_base.html:76 msgid "Edit order" msgstr "" -#: order/templates/order/order_base.html:68 +#: order/templates/order/order_base.html:69 msgid "Duplicate order" msgstr "" -#: order/templates/order/order_base.html:73 -#: order/templates/order/return_order_base.html:78 -#: order/templates/order/sales_order_base.html:77 +#: order/templates/order/order_base.html:74 +#: order/templates/order/return_order_base.html:79 +#: order/templates/order/sales_order_base.html:78 msgid "Hold order" msgstr "" -#: order/templates/order/order_base.html:78 -#: order/templates/order/return_order_base.html:81 -#: order/templates/order/sales_order_base.html:80 +#: order/templates/order/order_base.html:79 +#: order/templates/order/return_order_base.html:82 +#: order/templates/order/sales_order_base.html:81 msgid "Cancel order" msgstr "" -#: order/templates/order/order_base.html:84 #: order/templates/order/order_base.html:85 -#: order/templates/order/return_order_base.html:85 +#: order/templates/order/order_base.html:86 #: order/templates/order/return_order_base.html:86 -#: order/templates/order/sales_order_base.html:86 +#: order/templates/order/return_order_base.html:87 #: order/templates/order/sales_order_base.html:87 +#: order/templates/order/sales_order_base.html:88 msgid "Issue Order" msgstr "" -#: order/templates/order/order_base.html:88 -#: order/templates/order/return_order_base.html:89 -msgid "Mark order as complete" -msgstr "" - #: order/templates/order/order_base.html:89 #: order/templates/order/return_order_base.html:90 -#: order/templates/order/sales_order_base.html:100 +msgid "Mark order as complete" +msgstr "" + +#: order/templates/order/order_base.html:90 +#: order/templates/order/return_order_base.html:91 +#: order/templates/order/sales_order_base.html:101 msgid "Complete Order" msgstr "" -#: order/templates/order/order_base.html:96 +#: order/templates/order/order_base.html:97 msgid "Supplier part thumbnail" msgstr "" -#: order/templates/order/order_base.html:116 -#: order/templates/order/return_order_base.html:109 -#: order/templates/order/sales_order_base.html:118 +#: order/templates/order/order_base.html:117 +#: order/templates/order/return_order_base.html:110 +#: order/templates/order/sales_order_base.html:119 msgid "Order Description" msgstr "" -#: order/templates/order/order_base.html:146 -msgid "No suppplier information available" -msgstr "" - -#: order/templates/order/order_base.html:159 -#: order/templates/order/sales_order_base.html:164 +#: order/templates/order/order_base.html:168 +#: order/templates/order/sales_order_base.html:165 msgid "Completed Line Items" msgstr "" -#: order/templates/order/order_base.html:165 -#: order/templates/order/sales_order_base.html:170 -#: order/templates/order/sales_order_base.html:180 +#: order/templates/order/order_base.html:174 +#: order/templates/order/sales_order_base.html:171 +#: order/templates/order/sales_order_base.html:181 msgid "Incomplete" msgstr "" -#: order/templates/order/order_base.html:184 -#: order/templates/order/return_order_base.html:160 +#: order/templates/order/order_base.html:193 +#: order/templates/order/return_order_base.html:161 #: report/templates/report/inventree_build_order_report.html:121 msgid "Issued" msgstr "" -#: order/templates/order/order_base.html:229 +#: order/templates/order/order_base.html:238 msgid "Total cost" msgstr "" -#: order/templates/order/order_base.html:233 -#: order/templates/order/return_order_base.html:202 -#: order/templates/order/sales_order_base.html:246 +#: order/templates/order/order_base.html:242 +#: order/templates/order/return_order_base.html:203 +#: order/templates/order/sales_order_base.html:247 msgid "Total cost could not be calculated" msgstr "" -#: order/templates/order/order_base.html:335 +#: order/templates/order/order_base.html:344 msgid "Purchase Order QR Code" msgstr "" -#: order/templates/order/order_base.html:347 +#: order/templates/order/order_base.html:356 msgid "Link Barcode to Purchase Order" msgstr "" @@ -6184,12 +6392,12 @@ msgstr "" #: part/templates/part/import_wizard/ajax_match_references.html:42 #: part/templates/part/import_wizard/match_fields.html:71 #: part/templates/part/import_wizard/match_references.html:49 -#: templates/js/translated/bom.js:133 templates/js/translated/build.js:530 -#: templates/js/translated/build.js:1802 -#: templates/js/translated/purchase_order.js:696 -#: templates/js/translated/purchase_order.js:1288 +#: templates/js/translated/bom.js:133 templates/js/translated/build.js:533 +#: templates/js/translated/build.js:1805 +#: templates/js/translated/purchase_order.js:679 +#: templates/js/translated/purchase_order.js:1271 #: templates/js/translated/return_order.js:505 -#: templates/js/translated/sales_order.js:1145 +#: templates/js/translated/sales_order.js:1111 #: templates/js/translated/stock.js:720 templates/js/translated/stock.js:889 #: templates/patterns/wizard/match_fields.html:70 msgid "Remove row" @@ -6242,7 +6450,7 @@ msgstr "" #: order/templates/order/purchase_order_detail.html:27 #: order/templates/order/return_order_detail.html:24 #: order/templates/order/sales_order_detail.html:24 -#: templates/js/translated/purchase_order.js:414 +#: templates/js/translated/purchase_order.js:397 #: templates/js/translated/return_order.js:458 #: templates/js/translated/sales_order.js:237 msgid "Add Line Item" @@ -6277,45 +6485,45 @@ msgstr "" msgid "Order Notes" msgstr "" -#: order/templates/order/return_order_base.html:18 -#: order/templates/order/sales_order_base.html:18 +#: order/templates/order/return_order_base.html:19 +#: order/templates/order/sales_order_base.html:19 msgid "Customer logo thumbnail" msgstr "" -#: order/templates/order/return_order_base.html:60 +#: order/templates/order/return_order_base.html:61 msgid "Print return order report" msgstr "" -#: order/templates/order/return_order_base.html:64 -#: order/templates/order/sales_order_base.html:64 +#: order/templates/order/return_order_base.html:65 +#: order/templates/order/sales_order_base.html:65 msgid "Print packing list" msgstr "" -#: order/templates/order/return_order_base.html:141 -#: order/templates/order/sales_order_base.html:158 +#: order/templates/order/return_order_base.html:142 +#: order/templates/order/sales_order_base.html:159 #: templates/js/translated/return_order.js:308 -#: templates/js/translated/sales_order.js:833 +#: templates/js/translated/sales_order.js:792 msgid "Customer Reference" msgstr "" -#: order/templates/order/return_order_base.html:198 -#: order/templates/order/sales_order_base.html:242 +#: order/templates/order/return_order_base.html:199 +#: order/templates/order/sales_order_base.html:243 #: part/templates/part/part_pricing.html:32 #: part/templates/part/part_pricing.html:58 #: part/templates/part/part_pricing.html:99 #: part/templates/part/part_pricing.html:114 #: templates/js/translated/part.js:1079 -#: templates/js/translated/purchase_order.js:1822 +#: templates/js/translated/purchase_order.js:1806 #: templates/js/translated/return_order.js:380 -#: templates/js/translated/sales_order.js:891 +#: templates/js/translated/sales_order.js:850 msgid "Total Cost" msgstr "" -#: order/templates/order/return_order_base.html:273 +#: order/templates/order/return_order_base.html:274 msgid "Return Order QR Code" msgstr "" -#: order/templates/order/return_order_base.html:285 +#: order/templates/order/return_order_base.html:286 msgid "Link Barcode to Return Order" msgstr "" @@ -6323,40 +6531,40 @@ msgstr "" msgid "Order Details" msgstr "" -#: order/templates/order/sales_order_base.html:60 +#: order/templates/order/sales_order_base.html:61 msgid "Print sales order report" msgstr "" -#: order/templates/order/sales_order_base.html:91 #: order/templates/order/sales_order_base.html:92 +#: order/templates/order/sales_order_base.html:93 msgid "Ship Items" msgstr "" -#: order/templates/order/sales_order_base.html:95 #: order/templates/order/sales_order_base.html:96 +#: order/templates/order/sales_order_base.html:97 msgid "Mark As Shipped" msgstr "" -#: order/templates/order/sales_order_base.html:99 -#: templates/js/translated/sales_order.js:536 +#: order/templates/order/sales_order_base.html:100 +#: templates/js/translated/sales_order.js:495 msgid "Complete Sales Order" msgstr "" -#: order/templates/order/sales_order_base.html:138 +#: order/templates/order/sales_order_base.html:139 msgid "This Sales Order has not been fully allocated" msgstr "" -#: order/templates/order/sales_order_base.html:176 +#: order/templates/order/sales_order_base.html:177 #: order/templates/order/sales_order_detail.html:99 #: order/templates/order/so_sidebar.html:11 msgid "Completed Shipments" msgstr "" -#: order/templates/order/sales_order_base.html:339 +#: order/templates/order/sales_order_base.html:340 msgid "Sales Order QR Code" msgstr "" -#: order/templates/order/sales_order_base.html:351 +#: order/templates/order/sales_order_base.html:352 msgid "Link Barcode to Sales Order" msgstr "" @@ -6370,7 +6578,7 @@ msgid "Pending Shipments" msgstr "" #: order/templates/order/sales_order_detail.html:71 -#: templates/js/translated/bom.js:1277 templates/js/translated/build.js:1063 +#: templates/js/translated/bom.js:1277 templates/js/translated/build.js:1066 #: templates/js/translated/filters.js:299 msgid "Actions" msgstr "" @@ -6383,39 +6591,40 @@ msgstr "" msgid "Match Supplier Parts" msgstr "" -#: order/views.py:406 +#: order/views.py:407 msgid "Sales order not found" msgstr "" -#: order/views.py:412 +#: order/views.py:413 msgid "Price not found" msgstr "" -#: order/views.py:415 +#: order/views.py:416 #, python-brace-format msgid "Updated {part} unit-price to {price}" msgstr "" -#: order/views.py:421 +#: order/views.py:422 #, python-brace-format msgid "Updated {part} unit-price to {price} and quantity to {qty}" msgstr "" -#: part/admin.py:48 part/models.py:1032 part/templates/part/part_base.html:269 +#: part/admin.py:48 part/models.py:1093 part/serializers.py:939 +#: part/templates/part/part_base.html:277 #: report/templates/report/inventree_stock_location_report.html:103 #: templates/js/translated/part.js:1233 templates/js/translated/part.js:2347 -#: templates/js/translated/stock.js:2121 +#: templates/js/translated/stock.js:2122 msgid "IPN" msgstr "" -#: part/admin.py:50 part/models.py:1041 part/templates/part/part_base.html:286 +#: part/admin.py:50 part/models.py:1102 part/templates/part/part_base.html:294 #: report/models.py:161 templates/js/translated/part.js:1238 #: templates/js/translated/part.js:2353 msgid "Revision" msgstr "" -#: part/admin.py:53 part/admin.py:319 part/models.py:1014 -#: part/templates/part/category.html:91 part/templates/part/part_base.html:307 +#: part/admin.py:53 part/admin.py:319 part/models.py:1075 +#: part/templates/part/category.html:91 part/templates/part/part_base.html:315 msgid "Keywords" msgstr "Nyckelord" @@ -6427,7 +6636,7 @@ msgstr "" msgid "Category ID" msgstr "" -#: part/admin.py:67 part/admin.py:304 part/serializers.py:880 +#: part/admin.py:67 part/admin.py:304 part/serializers.py:924 #: part/stocktake.py:222 msgid "Category Name" msgstr "Kategorinamn" @@ -6440,11 +6649,11 @@ msgstr "" msgid "Default Supplier ID" msgstr "" -#: part/admin.py:81 part/models.py:1000 part/templates/part/part_base.html:177 +#: part/admin.py:81 part/models.py:1061 part/templates/part/part_base.html:178 msgid "Variant Of" msgstr "" -#: part/admin.py:84 part/models.py:1138 part/templates/part/part_base.html:203 +#: part/admin.py:84 part/models.py:1199 part/templates/part/part_base.html:204 msgid "Minimum Stock" msgstr "" @@ -6452,23 +6661,23 @@ msgstr "" msgid "Used In" msgstr "" -#: part/admin.py:150 part/serializers.py:897 -#: part/templates/part/part_base.html:241 stock/admin.py:235 +#: part/admin.py:150 part/serializers.py:949 +#: part/templates/part/part_base.html:249 stock/admin.py:236 #: templates/js/translated/part.js:717 templates/js/translated/part.js:2159 msgid "Building" msgstr "" -#: part/admin.py:155 part/models.py:3202 part/models.py:3216 +#: part/admin.py:155 part/models.py:3253 part/models.py:3267 #: templates/js/translated/part.js:976 msgid "Minimum Cost" msgstr "" -#: part/admin.py:158 part/models.py:3209 part/models.py:3223 +#: part/admin.py:158 part/models.py:3260 part/models.py:3274 #: templates/js/translated/part.js:986 msgid "Maximum Cost" msgstr "" -#: part/admin.py:308 part/admin.py:387 stock/admin.py:57 stock/admin.py:215 +#: part/admin.py:308 part/admin.py:387 stock/admin.py:57 stock/admin.py:216 msgid "Parent ID" msgstr "" @@ -6481,8 +6690,8 @@ msgstr "" msgid "Category Path" msgstr "" -#: part/admin.py:325 part/models.py:425 part/serializers.py:130 -#: part/serializers.py:290 part/serializers.py:415 +#: part/admin.py:325 part/models.py:420 part/serializers.py:130 +#: part/serializers.py:323 part/serializers.py:459 #: part/templates/part/cat_link.html:3 part/templates/part/category.html:20 #: part/templates/part/category.html:138 part/templates/part/category.html:158 #: part/templates/part/category_sidebar.html:9 @@ -6509,15 +6718,15 @@ msgstr "" msgid "Part Revision" msgstr "" -#: part/admin.py:418 part/serializers.py:1346 +#: part/admin.py:418 part/serializers.py:1400 #: templates/js/translated/pricing.js:358 -#: templates/js/translated/pricing.js:1024 +#: templates/js/translated/pricing.js:1022 msgid "Minimum Price" msgstr "" -#: part/admin.py:423 part/serializers.py:1361 +#: part/admin.py:423 part/serializers.py:1415 #: templates/js/translated/pricing.js:353 -#: templates/js/translated/pricing.js:1032 +#: templates/js/translated/pricing.js:1030 msgid "Maximum Price" msgstr "" @@ -6545,94 +6754,98 @@ msgstr "" msgid "Filter by top-level categories" msgstr "" +#: part/api.py:156 stock/api.py:343 +msgid "Cascade" +msgstr "" + #: part/api.py:158 msgid "Include sub-categories in filtered results" msgstr "" -#: part/api.py:179 templates/js/translated/part.js:311 +#: part/api.py:178 templates/js/translated/part.js:311 msgid "Parent" msgstr "" -#: part/api.py:181 +#: part/api.py:180 msgid "Filter by parent category" msgstr "" -#: part/api.py:214 +#: part/api.py:213 msgid "Exclude Tree" msgstr "" -#: part/api.py:216 +#: part/api.py:215 msgid "Exclude sub-categories under the specified category" msgstr "" -#: part/api.py:441 +#: part/api.py:440 msgid "Has Results" msgstr "" -#: part/api.py:608 +#: part/api.py:604 msgid "Incoming Purchase Order" msgstr "" -#: part/api.py:626 +#: part/api.py:618 msgid "Outgoing Sales Order" msgstr "" -#: part/api.py:642 +#: part/api.py:630 msgid "Stock produced by Build Order" msgstr "" -#: part/api.py:726 +#: part/api.py:712 msgid "Stock required for Build Order" msgstr "" -#: part/api.py:874 +#: part/api.py:858 msgid "Validate entire Bill of Materials" msgstr "" -#: part/api.py:880 +#: part/api.py:864 msgid "This option must be selected" msgstr "" -#: part/api.py:916 +#: part/api.py:900 msgid "Is Revision" msgstr "" -#: part/api.py:926 +#: part/api.py:910 msgid "Has Revisions" msgstr "" -#: part/api.py:1117 +#: part/api.py:1101 msgid "BOM Valid" msgstr "" -#: part/api.py:1523 part/models.py:1024 part/models.py:3489 part/models.py:4046 -#: part/serializers.py:430 part/serializers.py:1202 -#: part/templates/part/part_base.html:260 stock/api.py:781 +#: part/api.py:1509 part/models.py:1085 part/models.py:3540 part/models.py:4104 +#: part/serializers.py:474 part/serializers.py:1255 +#: part/templates/part/part_base.html:268 stock/api.py:781 #: templates/InvenTree/settings/settings_staff_js.html:300 #: templates/js/translated/notification.js:60 #: templates/js/translated/part.js:2383 msgid "Category" msgstr "Kategori" -#: part/api.py:1761 +#: part/api.py:1750 msgid "Assembly part is testable" msgstr "" -#: part/api.py:1770 +#: part/api.py:1759 msgid "Component part is testable" msgstr "" -#: part/api.py:1821 +#: part/api.py:1810 msgid "Uses" msgstr "" -#: part/bom.py:178 part/models.py:107 part/models.py:1077 -#: part/templates/part/category.html:113 part/templates/part/part_base.html:376 +#: part/bom.py:183 part/models.py:109 part/models.py:1138 +#: part/templates/part/category.html:113 part/templates/part/part_base.html:384 #: templates/js/translated/part.js:2397 msgid "Default Location" msgstr "" -#: part/bom.py:179 part/serializers.py:905 +#: part/bom.py:184 part/serializers.py:957 #: templates/email/low_stock_notification.html:16 msgid "Total Stock" msgstr "" @@ -6641,789 +6854,789 @@ msgstr "" msgid "Input quantity for price calculation" msgstr "" -#: part/models.py:88 part/models.py:4047 part/templates/part/category.html:16 +#: part/models.py:90 part/models.py:4105 part/templates/part/category.html:16 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "" -#: part/models.py:89 part/templates/part/category.html:133 +#: part/models.py:91 part/templates/part/category.html:133 #: templates/InvenTree/search.html:97 templates/js/translated/search.js:158 #: users/models.py:202 msgid "Part Categories" msgstr "" -#: part/models.py:108 +#: part/models.py:110 msgid "Default location for parts in this category" msgstr "" -#: part/models.py:113 stock/models.py:187 templates/js/translated/part.js:2828 -#: templates/js/translated/stock.js:2856 +#: part/models.py:115 stock/models.py:193 templates/js/translated/part.js:2828 +#: templates/js/translated/stock.js:2857 #: templates/js/translated/table_filters.js:246 #: templates/js/translated/table_filters.js:290 msgid "Structural" msgstr "" -#: part/models.py:115 +#: part/models.py:117 msgid "Parts may not be directly assigned to a structural category, but may be assigned to child categories." msgstr "" -#: part/models.py:124 +#: part/models.py:126 msgid "Default keywords" msgstr "" -#: part/models.py:125 +#: part/models.py:127 msgid "Default keywords for parts in this category" msgstr "" -#: part/models.py:131 stock/models.py:90 stock/models.py:169 +#: part/models.py:133 stock/models.py:96 stock/models.py:175 #: templates/InvenTree/settings/settings_staff_js.html:445 msgid "Icon" msgstr "Ikon" -#: part/models.py:132 part/serializers.py:143 part/serializers.py:161 -#: stock/models.py:170 +#: part/models.py:134 part/serializers.py:143 part/serializers.py:161 +#: stock/models.py:176 msgid "Icon (optional)" msgstr "Ikon (valfritt)" -#: part/models.py:178 +#: part/models.py:180 msgid "You cannot make this part category structural because some parts are already assigned to it!" msgstr "" -#: part/models.py:519 +#: part/models.py:514 msgid "Cannot delete this part as it is locked" msgstr "" -#: part/models.py:522 +#: part/models.py:517 msgid "Cannot delete this part as it is still active" msgstr "" -#: part/models.py:527 +#: part/models.py:522 msgid "Cannot delete this part as it is used in an assembly" msgstr "" -#: part/models.py:565 +#: part/models.py:560 msgid "Invalid choice for parent part" msgstr "" -#: part/models.py:613 part/models.py:620 +#: part/models.py:608 part/models.py:615 #, python-brace-format msgid "Part '{self}' cannot be used in BOM for '{parent}' (recursive)" msgstr "" -#: part/models.py:632 +#: part/models.py:627 #, python-brace-format msgid "Part '{parent}' is used in BOM for '{self}' (recursive)" msgstr "" -#: part/models.py:695 +#: part/models.py:694 #, python-brace-format msgid "IPN must match regex pattern {pattern}" msgstr "" -#: part/models.py:703 +#: part/models.py:702 msgid "Part cannot be a revision of itself" msgstr "" -#: part/models.py:710 +#: part/models.py:709 msgid "Cannot make a revision of a part which is already a revision" msgstr "" -#: part/models.py:717 +#: part/models.py:716 msgid "Revision code must be specified" msgstr "" -#: part/models.py:724 +#: part/models.py:723 msgid "Revisions are only allowed for assembly parts" msgstr "" -#: part/models.py:731 +#: part/models.py:730 msgid "Cannot make a revision of a template part" msgstr "" -#: part/models.py:737 +#: part/models.py:736 msgid "Parent part must point to the same template" msgstr "" -#: part/models.py:816 +#: part/models.py:832 msgid "Stock item with this serial number already exists" msgstr "" -#: part/models.py:917 +#: part/models.py:976 msgid "Duplicate IPN not allowed in part settings" msgstr "" -#: part/models.py:926 +#: part/models.py:988 msgid "Duplicate part revision already exists." msgstr "" -#: part/models.py:936 +#: part/models.py:997 msgid "Part with this Name, IPN and Revision already exists." msgstr "" -#: part/models.py:951 +#: part/models.py:1012 msgid "Parts cannot be assigned to structural part categories!" msgstr "" -#: part/models.py:983 part/models.py:4102 +#: part/models.py:1044 part/models.py:4160 msgid "Part name" msgstr "" -#: part/models.py:988 +#: part/models.py:1049 msgid "Is Template" msgstr "" -#: part/models.py:989 +#: part/models.py:1050 msgid "Is this part a template part?" msgstr "" -#: part/models.py:999 +#: part/models.py:1060 msgid "Is this part a variant of another part?" msgstr "" -#: part/models.py:1007 +#: part/models.py:1068 msgid "Part description (optional)" msgstr "" -#: part/models.py:1015 +#: part/models.py:1076 msgid "Part keywords to improve visibility in search results" msgstr "" -#: part/models.py:1025 +#: part/models.py:1086 msgid "Part category" msgstr "" -#: part/models.py:1040 +#: part/models.py:1101 msgid "Part revision or version number" msgstr "" -#: part/models.py:1050 +#: part/models.py:1111 msgid "Is this part a revision of another part?" msgstr "" -#: part/models.py:1051 part/templates/part/part_base.html:277 +#: part/models.py:1112 part/templates/part/part_base.html:285 msgid "Revision Of" msgstr "" -#: part/models.py:1075 +#: part/models.py:1136 msgid "Where is this item normally stored?" msgstr "" -#: part/models.py:1121 part/templates/part/part_base.html:385 +#: part/models.py:1182 part/templates/part/part_base.html:393 msgid "Default Supplier" msgstr "Standardleverantör" -#: part/models.py:1122 +#: part/models.py:1183 msgid "Default supplier part" msgstr "" -#: part/models.py:1129 +#: part/models.py:1190 msgid "Default Expiry" msgstr "" -#: part/models.py:1130 +#: part/models.py:1191 msgid "Expiry time (in days) for stock items of this part" msgstr "" -#: part/models.py:1139 +#: part/models.py:1200 msgid "Minimum allowed stock level" msgstr "" -#: part/models.py:1148 +#: part/models.py:1209 msgid "Units of measure for this part" msgstr "" -#: part/models.py:1155 +#: part/models.py:1216 msgid "Can this part be built from other parts?" msgstr "" -#: part/models.py:1161 +#: part/models.py:1222 msgid "Can this part be used to build other parts?" msgstr "" -#: part/models.py:1167 +#: part/models.py:1228 msgid "Does this part have tracking for unique items?" msgstr "" -#: part/models.py:1173 +#: part/models.py:1234 msgid "Can this part have test results recorded against it?" msgstr "" -#: part/models.py:1179 +#: part/models.py:1240 msgid "Can this part be purchased from external suppliers?" msgstr "" -#: part/models.py:1185 +#: part/models.py:1246 msgid "Can this part be sold to customers?" msgstr "" -#: part/models.py:1189 +#: part/models.py:1250 msgid "Is this part active?" msgstr "" -#: part/models.py:1194 templates/js/translated/part.js:821 +#: part/models.py:1255 templates/js/translated/part.js:821 #: templates/js/translated/table_filters.js:724 msgid "Locked" msgstr "" -#: part/models.py:1195 +#: part/models.py:1256 msgid "Locked parts cannot be edited" msgstr "" -#: part/models.py:1201 +#: part/models.py:1262 msgid "Is this a virtual part, such as a software product or license?" msgstr "" -#: part/models.py:1207 +#: part/models.py:1268 msgid "BOM checksum" msgstr "" -#: part/models.py:1208 +#: part/models.py:1269 msgid "Stored BOM checksum" msgstr "" -#: part/models.py:1216 +#: part/models.py:1277 msgid "BOM checked by" msgstr "" -#: part/models.py:1221 +#: part/models.py:1282 msgid "BOM checked date" msgstr "" -#: part/models.py:1237 +#: part/models.py:1298 msgid "Creation User" msgstr "" -#: part/models.py:1247 +#: part/models.py:1308 msgid "Owner responsible for this part" msgstr "" -#: part/models.py:1252 part/templates/part/part_base.html:348 -#: stock/templates/stock/item_base.html:451 +#: part/models.py:1313 part/templates/part/part_base.html:356 +#: stock/templates/stock/item_base.html:448 #: templates/js/translated/part.js:2490 msgid "Last Stocktake" msgstr "" -#: part/models.py:2125 +#: part/models.py:2185 msgid "Sell multiple" msgstr "" -#: part/models.py:3116 +#: part/models.py:3167 msgid "Currency used to cache pricing calculations" msgstr "" -#: part/models.py:3132 +#: part/models.py:3183 msgid "Minimum BOM Cost" msgstr "" -#: part/models.py:3133 +#: part/models.py:3184 msgid "Minimum cost of component parts" msgstr "" -#: part/models.py:3139 +#: part/models.py:3190 msgid "Maximum BOM Cost" msgstr "" -#: part/models.py:3140 +#: part/models.py:3191 msgid "Maximum cost of component parts" msgstr "" -#: part/models.py:3146 +#: part/models.py:3197 msgid "Minimum Purchase Cost" msgstr "" -#: part/models.py:3147 +#: part/models.py:3198 msgid "Minimum historical purchase cost" msgstr "" -#: part/models.py:3153 +#: part/models.py:3204 msgid "Maximum Purchase Cost" msgstr "" -#: part/models.py:3154 +#: part/models.py:3205 msgid "Maximum historical purchase cost" msgstr "" -#: part/models.py:3160 +#: part/models.py:3211 msgid "Minimum Internal Price" msgstr "" -#: part/models.py:3161 +#: part/models.py:3212 msgid "Minimum cost based on internal price breaks" msgstr "" -#: part/models.py:3167 +#: part/models.py:3218 msgid "Maximum Internal Price" msgstr "" -#: part/models.py:3168 +#: part/models.py:3219 msgid "Maximum cost based on internal price breaks" msgstr "" -#: part/models.py:3174 +#: part/models.py:3225 msgid "Minimum Supplier Price" msgstr "" -#: part/models.py:3175 +#: part/models.py:3226 msgid "Minimum price of part from external suppliers" msgstr "" -#: part/models.py:3181 +#: part/models.py:3232 msgid "Maximum Supplier Price" msgstr "" -#: part/models.py:3182 +#: part/models.py:3233 msgid "Maximum price of part from external suppliers" msgstr "" -#: part/models.py:3188 +#: part/models.py:3239 msgid "Minimum Variant Cost" msgstr "" -#: part/models.py:3189 +#: part/models.py:3240 msgid "Calculated minimum cost of variant parts" msgstr "" -#: part/models.py:3195 +#: part/models.py:3246 msgid "Maximum Variant Cost" msgstr "" -#: part/models.py:3196 +#: part/models.py:3247 msgid "Calculated maximum cost of variant parts" msgstr "" -#: part/models.py:3203 +#: part/models.py:3254 msgid "Override minimum cost" msgstr "" -#: part/models.py:3210 +#: part/models.py:3261 msgid "Override maximum cost" msgstr "" -#: part/models.py:3217 +#: part/models.py:3268 msgid "Calculated overall minimum cost" msgstr "" -#: part/models.py:3224 +#: part/models.py:3275 msgid "Calculated overall maximum cost" msgstr "" -#: part/models.py:3230 +#: part/models.py:3281 msgid "Minimum Sale Price" msgstr "" -#: part/models.py:3231 +#: part/models.py:3282 msgid "Minimum sale price based on price breaks" msgstr "" -#: part/models.py:3237 +#: part/models.py:3288 msgid "Maximum Sale Price" msgstr "" -#: part/models.py:3238 +#: part/models.py:3289 msgid "Maximum sale price based on price breaks" msgstr "" -#: part/models.py:3244 +#: part/models.py:3295 msgid "Minimum Sale Cost" msgstr "" -#: part/models.py:3245 +#: part/models.py:3296 msgid "Minimum historical sale price" msgstr "" -#: part/models.py:3251 +#: part/models.py:3302 msgid "Maximum Sale Cost" msgstr "" -#: part/models.py:3252 +#: part/models.py:3303 msgid "Maximum historical sale price" msgstr "" -#: part/models.py:3271 +#: part/models.py:3322 msgid "Part for stocktake" msgstr "" -#: part/models.py:3276 +#: part/models.py:3327 msgid "Item Count" msgstr "" -#: part/models.py:3277 +#: part/models.py:3328 msgid "Number of individual stock entries at time of stocktake" msgstr "" -#: part/models.py:3285 +#: part/models.py:3336 msgid "Total available stock at time of stocktake" msgstr "" -#: part/models.py:3289 part/models.py:3372 +#: part/models.py:3340 part/models.py:3423 part/serializers.py:263 #: part/templates/part/part_scheduling.html:13 #: report/templates/report/inventree_test_report.html:106 #: templates/InvenTree/settings/plugin_settings.html:37 #: templates/InvenTree/settings/settings_staff_js.html:543 -#: templates/js/translated/part.js:1092 templates/js/translated/pricing.js:826 -#: templates/js/translated/pricing.js:950 -#: templates/js/translated/purchase_order.js:1801 -#: templates/js/translated/stock.js:2905 +#: templates/js/translated/part.js:1092 templates/js/translated/pricing.js:824 +#: templates/js/translated/pricing.js:948 +#: templates/js/translated/purchase_order.js:1785 +#: templates/js/translated/stock.js:2906 msgid "Date" msgstr "Datum" -#: part/models.py:3290 +#: part/models.py:3341 msgid "Date stocktake was performed" msgstr "" -#: part/models.py:3298 +#: part/models.py:3349 msgid "Additional notes" msgstr "" -#: part/models.py:3308 +#: part/models.py:3359 msgid "User who performed this stocktake" msgstr "" -#: part/models.py:3314 +#: part/models.py:3365 msgid "Minimum Stock Cost" msgstr "" -#: part/models.py:3315 +#: part/models.py:3366 msgid "Estimated minimum cost of stock on hand" msgstr "" -#: part/models.py:3321 +#: part/models.py:3372 msgid "Maximum Stock Cost" msgstr "" -#: part/models.py:3322 +#: part/models.py:3373 msgid "Estimated maximum cost of stock on hand" msgstr "" -#: part/models.py:3378 templates/InvenTree/settings/settings_staff_js.html:532 +#: part/models.py:3429 templates/InvenTree/settings/settings_staff_js.html:532 msgid "Report" msgstr "" -#: part/models.py:3379 +#: part/models.py:3430 msgid "Stocktake report file (generated internally)" msgstr "" -#: part/models.py:3384 templates/InvenTree/settings/settings_staff_js.html:539 +#: part/models.py:3435 templates/InvenTree/settings/settings_staff_js.html:539 msgid "Part Count" msgstr "" -#: part/models.py:3385 +#: part/models.py:3436 msgid "Number of parts covered by stocktake" msgstr "" -#: part/models.py:3395 +#: part/models.py:3446 msgid "User who requested this stocktake report" msgstr "" -#: part/models.py:3405 +#: part/models.py:3456 msgid "Part Sale Price Break" msgstr "" -#: part/models.py:3517 +#: part/models.py:3568 msgid "Part Test Template" msgstr "" -#: part/models.py:3543 +#: part/models.py:3594 msgid "Invalid template name - must include at least one alphanumeric character" msgstr "" -#: part/models.py:3564 part/models.py:3733 +#: part/models.py:3615 part/models.py:3784 msgid "Choices must be unique" msgstr "" -#: part/models.py:3575 -msgid "Test templates can only be created for trackable parts" +#: part/models.py:3626 +msgid "Test templates can only be created for testable parts" msgstr "" -#: part/models.py:3586 +#: part/models.py:3637 msgid "Test template with the same key already exists for part" msgstr "" -#: part/models.py:3603 templates/js/translated/part.js:2898 +#: part/models.py:3654 templates/js/translated/part.js:2898 msgid "Test Name" msgstr "" -#: part/models.py:3604 +#: part/models.py:3655 msgid "Enter a name for the test" msgstr "" -#: part/models.py:3610 +#: part/models.py:3661 msgid "Test Key" msgstr "" -#: part/models.py:3611 +#: part/models.py:3662 msgid "Simplified key for the test" msgstr "" -#: part/models.py:3618 +#: part/models.py:3669 msgid "Test Description" msgstr "" -#: part/models.py:3619 +#: part/models.py:3670 msgid "Enter description for this test" msgstr "" -#: part/models.py:3623 report/models.py:208 +#: part/models.py:3674 report/models.py:216 #: templates/js/translated/part.js:2919 #: templates/js/translated/table_filters.js:502 msgid "Enabled" msgstr "" -#: part/models.py:3623 +#: part/models.py:3674 msgid "Is this test enabled?" msgstr "" -#: part/models.py:3628 templates/js/translated/part.js:2927 +#: part/models.py:3679 templates/js/translated/part.js:2927 #: templates/js/translated/table_filters.js:498 msgid "Required" msgstr "" -#: part/models.py:3629 +#: part/models.py:3680 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:3634 templates/js/translated/part.js:2935 +#: part/models.py:3685 templates/js/translated/part.js:2935 msgid "Requires Value" msgstr "" -#: part/models.py:3635 +#: part/models.py:3686 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:3640 templates/js/translated/part.js:2942 +#: part/models.py:3691 templates/js/translated/part.js:2942 msgid "Requires Attachment" msgstr "" -#: part/models.py:3642 +#: part/models.py:3693 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:3648 part/models.py:3792 templates/js/translated/part.js:1643 +#: part/models.py:3699 part/models.py:3843 templates/js/translated/part.js:1643 msgid "Choices" msgstr "" -#: part/models.py:3649 +#: part/models.py:3700 msgid "Valid choices for this test (comma-separated)" msgstr "" -#: part/models.py:3681 +#: part/models.py:3732 msgid "Part Parameter Template" msgstr "" -#: part/models.py:3708 +#: part/models.py:3759 msgid "Checkbox parameters cannot have units" msgstr "" -#: part/models.py:3713 +#: part/models.py:3764 msgid "Checkbox parameters cannot have choices" msgstr "" -#: part/models.py:3750 +#: part/models.py:3801 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:3765 +#: part/models.py:3816 msgid "Parameter Name" msgstr "" -#: part/models.py:3772 +#: part/models.py:3823 msgid "Physical units for this parameter" msgstr "" -#: part/models.py:3780 +#: part/models.py:3831 msgid "Parameter description" msgstr "" -#: part/models.py:3786 templates/js/translated/part.js:1634 +#: part/models.py:3837 templates/js/translated/part.js:1634 #: templates/js/translated/table_filters.js:837 msgid "Checkbox" msgstr "" -#: part/models.py:3787 +#: part/models.py:3838 msgid "Is this parameter a checkbox?" msgstr "" -#: part/models.py:3793 +#: part/models.py:3844 msgid "Valid choices for this parameter (comma-separated)" msgstr "" -#: part/models.py:3827 +#: part/models.py:3881 msgid "Part Parameter" msgstr "" -#: part/models.py:3853 +#: part/models.py:3907 msgid "Parameter cannot be modified - part is locked" msgstr "" -#: part/models.py:3889 +#: part/models.py:3945 msgid "Invalid choice for parameter value" msgstr "" -#: part/models.py:3938 +#: part/models.py:3996 msgid "Parent Part" msgstr "" -#: part/models.py:3946 part/models.py:4054 part/models.py:4055 +#: part/models.py:4004 part/models.py:4112 part/models.py:4113 #: templates/InvenTree/settings/settings_staff_js.html:295 msgid "Parameter Template" msgstr "" -#: part/models.py:3952 +#: part/models.py:4010 msgid "Parameter Value" msgstr "" -#: part/models.py:4002 +#: part/models.py:4060 msgid "Part Category Parameter Template" msgstr "" -#: part/models.py:4061 templates/InvenTree/settings/settings_staff_js.html:304 +#: part/models.py:4119 templates/InvenTree/settings/settings_staff_js.html:304 msgid "Default Value" msgstr "" -#: part/models.py:4062 +#: part/models.py:4120 msgid "Default Parameter Value" msgstr "" -#: part/models.py:4100 +#: part/models.py:4158 msgid "Part ID or part name" msgstr "" -#: part/models.py:4101 +#: part/models.py:4159 msgid "Unique part ID value" msgstr "" -#: part/models.py:4103 +#: part/models.py:4161 msgid "Part IPN value" msgstr "" -#: part/models.py:4104 +#: part/models.py:4162 msgid "Level" msgstr "" -#: part/models.py:4104 +#: part/models.py:4162 msgid "BOM level" msgstr "" -#: part/models.py:4215 +#: part/models.py:4272 msgid "BOM item cannot be modified - assembly is locked" msgstr "" -#: part/models.py:4222 +#: part/models.py:4279 msgid "BOM item cannot be modified - variant assembly is locked" msgstr "" -#: part/models.py:4232 +#: part/models.py:4289 msgid "Select parent part" msgstr "" -#: part/models.py:4242 +#: part/models.py:4299 msgid "Sub part" msgstr "" -#: part/models.py:4243 +#: part/models.py:4300 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:4254 +#: part/models.py:4311 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:4260 +#: part/models.py:4317 msgid "This BOM item is optional" msgstr "" -#: part/models.py:4266 +#: part/models.py:4323 msgid "This BOM item is consumable (it is not tracked in build orders)" msgstr "" -#: part/models.py:4273 part/templates/part/upload_bom.html:55 +#: part/models.py:4330 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "" -#: part/models.py:4274 +#: part/models.py:4331 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:4281 +#: part/models.py:4338 msgid "BOM item reference" msgstr "" -#: part/models.py:4289 +#: part/models.py:4346 msgid "BOM item notes" msgstr "" -#: part/models.py:4295 +#: part/models.py:4352 msgid "Checksum" msgstr "" -#: part/models.py:4296 +#: part/models.py:4353 msgid "BOM line checksum" msgstr "" -#: part/models.py:4301 templates/js/translated/table_filters.js:181 +#: part/models.py:4358 templates/js/translated/table_filters.js:181 msgid "Validated" msgstr "" -#: part/models.py:4302 +#: part/models.py:4359 msgid "This BOM item has been validated" msgstr "" -#: part/models.py:4307 part/templates/part/upload_bom.html:57 +#: part/models.py:4364 part/templates/part/upload_bom.html:57 #: templates/js/translated/bom.js:1054 #: templates/js/translated/table_filters.js:185 #: templates/js/translated/table_filters.js:218 msgid "Gets inherited" msgstr "" -#: part/models.py:4308 +#: part/models.py:4365 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:4314 +#: part/models.py:4371 msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:4399 stock/models.py:685 +#: part/models.py:4456 stock/models.py:762 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:4409 part/models.py:4411 +#: part/models.py:4466 part/models.py:4468 msgid "Sub part must be specified" msgstr "" -#: part/models.py:4551 +#: part/models.py:4613 msgid "BOM Item Substitute" msgstr "" -#: part/models.py:4572 +#: part/models.py:4634 msgid "Substitute part cannot be the same as the master part" msgstr "" -#: part/models.py:4585 +#: part/models.py:4647 msgid "Parent BOM item" msgstr "" -#: part/models.py:4593 +#: part/models.py:4655 msgid "Substitute part" msgstr "" -#: part/models.py:4609 +#: part/models.py:4671 msgid "Part 1" msgstr "" -#: part/models.py:4617 +#: part/models.py:4679 msgid "Part 2" msgstr "" -#: part/models.py:4618 +#: part/models.py:4680 msgid "Select Related Part" msgstr "" -#: part/models.py:4637 +#: part/models.py:4699 msgid "Part relationship cannot be created between a part and itself" msgstr "" -#: part/models.py:4642 +#: part/models.py:4704 msgid "Duplicate relationship already exists" msgstr "" @@ -7449,340 +7662,352 @@ msgstr "" msgid "Number of results recorded against this template" msgstr "" -#: part/serializers.py:225 part/serializers.py:243 stock/serializers.py:616 +#: part/serializers.py:225 part/serializers.py:243 stock/serializers.py:643 msgid "Purchase currency of this stock item" msgstr "" -#: part/serializers.py:291 +#: part/serializers.py:268 +msgid "Speculative Quantity" +msgstr "" + +#: part/serializers.py:277 +msgid "Model ID" +msgstr "" + +#: part/serializers.py:324 msgid "Number of parts using this template" msgstr "" -#: part/serializers.py:421 +#: part/serializers.py:465 msgid "No parts selected" msgstr "" -#: part/serializers.py:431 +#: part/serializers.py:475 msgid "Select category" msgstr "Välj kategori" -#: part/serializers.py:466 +#: part/serializers.py:510 msgid "Original Part" msgstr "" -#: part/serializers.py:467 +#: part/serializers.py:511 msgid "Select original part to duplicate" msgstr "" -#: part/serializers.py:472 +#: part/serializers.py:516 msgid "Copy Image" msgstr "Kopiera bild" -#: part/serializers.py:473 +#: part/serializers.py:517 msgid "Copy image from original part" msgstr "" -#: part/serializers.py:479 part/templates/part/detail.html:293 +#: part/serializers.py:523 part/templates/part/detail.html:293 msgid "Copy BOM" msgstr "" -#: part/serializers.py:480 +#: part/serializers.py:524 msgid "Copy bill of materials from original part" msgstr "" -#: part/serializers.py:486 +#: part/serializers.py:530 msgid "Copy Parameters" msgstr "" -#: part/serializers.py:487 +#: part/serializers.py:531 msgid "Copy parameter data from original part" msgstr "" -#: part/serializers.py:493 +#: part/serializers.py:537 msgid "Copy Notes" msgstr "" -#: part/serializers.py:494 +#: part/serializers.py:538 msgid "Copy notes from original part" msgstr "" -#: part/serializers.py:512 +#: part/serializers.py:556 msgid "Initial Stock Quantity" msgstr "" -#: part/serializers.py:514 +#: part/serializers.py:558 msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added." msgstr "" -#: part/serializers.py:521 +#: part/serializers.py:565 msgid "Initial Stock Location" msgstr "" -#: part/serializers.py:522 +#: part/serializers.py:566 msgid "Specify initial stock location for this Part" msgstr "" -#: part/serializers.py:539 +#: part/serializers.py:583 msgid "Select supplier (or leave blank to skip)" msgstr "" -#: part/serializers.py:555 +#: part/serializers.py:599 msgid "Select manufacturer (or leave blank to skip)" msgstr "" -#: part/serializers.py:565 +#: part/serializers.py:609 msgid "Manufacturer part number" msgstr "" -#: part/serializers.py:572 +#: part/serializers.py:616 msgid "Selected company is not a valid supplier" msgstr "" -#: part/serializers.py:581 +#: part/serializers.py:625 msgid "Selected company is not a valid manufacturer" msgstr "" -#: part/serializers.py:592 +#: part/serializers.py:636 msgid "Manufacturer part matching this MPN already exists" msgstr "" -#: part/serializers.py:599 +#: part/serializers.py:643 msgid "Supplier part matching this SKU already exists" msgstr "" -#: part/serializers.py:903 +#: part/serializers.py:955 msgid "Revisions" msgstr "" -#: part/serializers.py:908 +#: part/serializers.py:960 msgid "Unallocated Stock" msgstr "" -#: part/serializers.py:911 +#: part/serializers.py:963 msgid "Variant Stock" msgstr "" -#: part/serializers.py:941 part/templates/part/copy_part.html:9 +#: part/serializers.py:993 part/templates/part/copy_part.html:9 #: templates/js/translated/part.js:474 msgid "Duplicate Part" msgstr "" -#: part/serializers.py:942 +#: part/serializers.py:994 msgid "Copy initial data from another Part" msgstr "" -#: part/serializers.py:948 templates/js/translated/part.js:103 +#: part/serializers.py:1000 templates/js/translated/part.js:103 msgid "Initial Stock" msgstr "" -#: part/serializers.py:949 +#: part/serializers.py:1001 msgid "Create Part with initial stock quantity" msgstr "" -#: part/serializers.py:955 +#: part/serializers.py:1007 msgid "Supplier Information" msgstr "" -#: part/serializers.py:956 +#: part/serializers.py:1008 msgid "Add initial supplier information for this part" msgstr "" -#: part/serializers.py:964 +#: part/serializers.py:1016 msgid "Copy Category Parameters" msgstr "" -#: part/serializers.py:965 +#: part/serializers.py:1017 msgid "Copy parameter templates from selected part category" msgstr "" -#: part/serializers.py:970 +#: part/serializers.py:1022 msgid "Existing Image" msgstr "" -#: part/serializers.py:971 +#: part/serializers.py:1023 msgid "Filename of an existing part image" msgstr "" -#: part/serializers.py:988 +#: part/serializers.py:1040 msgid "Image file does not exist" msgstr "" -#: part/serializers.py:1194 +#: part/serializers.py:1247 msgid "Limit stocktake report to a particular part, and any variant parts" msgstr "" -#: part/serializers.py:1204 +#: part/serializers.py:1257 msgid "Limit stocktake report to a particular part category, and any child categories" msgstr "" -#: part/serializers.py:1214 +#: part/serializers.py:1267 msgid "Limit stocktake report to a particular stock location, and any child locations" msgstr "" -#: part/serializers.py:1220 +#: part/serializers.py:1273 msgid "Exclude External Stock" msgstr "" -#: part/serializers.py:1221 +#: part/serializers.py:1274 msgid "Exclude stock items in external locations" msgstr "" -#: part/serializers.py:1226 +#: part/serializers.py:1279 msgid "Generate Report" msgstr "Generera rapport" -#: part/serializers.py:1227 +#: part/serializers.py:1280 msgid "Generate report file containing calculated stocktake data" msgstr "" -#: part/serializers.py:1232 +#: part/serializers.py:1285 msgid "Update Parts" msgstr "" -#: part/serializers.py:1233 +#: part/serializers.py:1286 msgid "Update specified parts with calculated stocktake data" msgstr "" -#: part/serializers.py:1241 +#: part/serializers.py:1294 msgid "Stocktake functionality is not enabled" msgstr "" -#: part/serializers.py:1347 +#: part/serializers.py:1299 +msgid "Background worker check failed" +msgstr "Kontroll av bakgrundsarbetare misslyckades" + +#: part/serializers.py:1401 msgid "Override calculated value for minimum price" msgstr "" -#: part/serializers.py:1354 +#: part/serializers.py:1408 msgid "Minimum price currency" msgstr "" -#: part/serializers.py:1362 +#: part/serializers.py:1416 msgid "Override calculated value for maximum price" msgstr "" -#: part/serializers.py:1369 +#: part/serializers.py:1423 msgid "Maximum price currency" msgstr "" -#: part/serializers.py:1398 +#: part/serializers.py:1452 msgid "Update" msgstr "Uppdatera" -#: part/serializers.py:1399 +#: part/serializers.py:1453 msgid "Update pricing for this part" msgstr "" -#: part/serializers.py:1422 +#: part/serializers.py:1476 #, python-brace-format msgid "Could not convert from provided currencies to {default_currency}" msgstr "" -#: part/serializers.py:1429 +#: part/serializers.py:1483 msgid "Minimum price must not be greater than maximum price" msgstr "" -#: part/serializers.py:1432 +#: part/serializers.py:1486 msgid "Maximum price must not be less than minimum price" msgstr "" -#: part/serializers.py:1576 +#: part/serializers.py:1634 msgid "Select the parent assembly" msgstr "" -#: part/serializers.py:1585 +#: part/serializers.py:1643 msgid "Component Name" msgstr "" -#: part/serializers.py:1588 +#: part/serializers.py:1646 msgid "Component IPN" msgstr "" -#: part/serializers.py:1591 +#: part/serializers.py:1649 msgid "Component Description" msgstr "" -#: part/serializers.py:1597 +#: part/serializers.py:1655 msgid "Select the component part" msgstr "" -#: part/serializers.py:1606 part/templates/part/part_base.html:235 +#: part/serializers.py:1664 part/templates/part/part_base.html:243 #: templates/js/translated/bom.js:1219 msgid "Can Build" msgstr "" -#: part/serializers.py:1837 +#: part/serializers.py:1899 msgid "Select part to copy BOM from" msgstr "" -#: part/serializers.py:1845 +#: part/serializers.py:1907 msgid "Remove Existing Data" msgstr "" -#: part/serializers.py:1846 +#: part/serializers.py:1908 msgid "Remove existing BOM items before copying" msgstr "" -#: part/serializers.py:1851 +#: part/serializers.py:1913 msgid "Include Inherited" msgstr "" -#: part/serializers.py:1852 +#: part/serializers.py:1914 msgid "Include BOM items which are inherited from templated parts" msgstr "" -#: part/serializers.py:1857 +#: part/serializers.py:1919 msgid "Skip Invalid Rows" msgstr "" -#: part/serializers.py:1858 +#: part/serializers.py:1920 msgid "Enable this option to skip invalid rows" msgstr "" -#: part/serializers.py:1863 +#: part/serializers.py:1925 msgid "Copy Substitute Parts" msgstr "" -#: part/serializers.py:1864 +#: part/serializers.py:1926 msgid "Copy substitute parts when duplicate BOM items" msgstr "" -#: part/serializers.py:1901 +#: part/serializers.py:1963 msgid "Clear Existing BOM" msgstr "" -#: part/serializers.py:1902 +#: part/serializers.py:1964 msgid "Delete existing BOM items before uploading" msgstr "" -#: part/serializers.py:1934 +#: part/serializers.py:1996 msgid "No part column specified" msgstr "" -#: part/serializers.py:1978 +#: part/serializers.py:2040 msgid "Multiple matching parts found" msgstr "" -#: part/serializers.py:1981 +#: part/serializers.py:2043 msgid "No matching part found" msgstr "" -#: part/serializers.py:1984 +#: part/serializers.py:2045 msgid "Part is not designated as a component" msgstr "" -#: part/serializers.py:1993 +#: part/serializers.py:2054 msgid "Quantity not provided" msgstr "" -#: part/serializers.py:2001 +#: part/serializers.py:2062 msgid "Invalid quantity" msgstr "" -#: part/serializers.py:2024 +#: part/serializers.py:2085 msgid "At least one BOM item is required" msgstr "" #: part/stocktake.py:224 templates/js/translated/part.js:1073 #: templates/js/translated/part.js:1828 templates/js/translated/part.js:1884 -#: templates/js/translated/purchase_order.js:2154 +#: templates/js/translated/purchase_order.js:2138 msgid "Total Quantity" msgstr "" @@ -7932,9 +8157,9 @@ msgid "Add stocktake information" msgstr "" #: part/templates/part/detail.html:67 part/templates/part/part_sidebar.html:50 -#: stock/admin.py:255 templates/InvenTree/settings/part_stocktake.html:30 +#: stock/admin.py:256 templates/InvenTree/settings/part_stocktake.html:30 #: templates/InvenTree/settings/sidebar.html:53 -#: templates/js/translated/stock.js:2301 users/models.py:204 +#: templates/js/translated/stock.js:2302 users/models.py:204 msgid "Stocktake" msgstr "" @@ -8093,142 +8318,146 @@ msgstr "Välj filformat" msgid "Part List" msgstr "" -#: part/templates/part/part_base.html:25 part/templates/part/part_base.html:29 +#: part/templates/part/part_base.html:26 part/templates/part/part_base.html:30 msgid "You are subscribed to notifications for this part" msgstr "" -#: part/templates/part/part_base.html:33 +#: part/templates/part/part_base.html:34 msgid "Subscribe to notifications for this part" msgstr "" -#: part/templates/part/part_base.html:52 +#: part/templates/part/part_base.html:53 #: stock/templates/stock/item_base.html:62 -#: stock/templates/stock/location.html:71 templates/js/translated/label.js:136 +#: stock/templates/stock/location.html:72 templates/js/translated/label.js:136 msgid "Print Label" msgstr "" -#: part/templates/part/part_base.html:58 +#: part/templates/part/part_base.html:59 msgid "Show pricing information" msgstr "" -#: part/templates/part/part_base.html:63 -#: stock/templates/stock/item_base.html:110 -#: stock/templates/stock/location.html:80 +#: part/templates/part/part_base.html:64 +#: stock/templates/stock/item_base.html:107 +#: stock/templates/stock/location.html:81 msgid "Stock actions" msgstr "" -#: part/templates/part/part_base.html:70 +#: part/templates/part/part_base.html:71 msgid "Count part stock" msgstr "" -#: part/templates/part/part_base.html:76 +#: part/templates/part/part_base.html:77 msgid "Transfer part stock" msgstr "" -#: part/templates/part/part_base.html:91 templates/js/translated/part.js:2299 +#: part/templates/part/part_base.html:92 templates/js/translated/part.js:2299 msgid "Part actions" msgstr "" -#: part/templates/part/part_base.html:94 +#: part/templates/part/part_base.html:95 msgid "Duplicate part" msgstr "" -#: part/templates/part/part_base.html:97 +#: part/templates/part/part_base.html:98 msgid "Edit part" msgstr "" -#: part/templates/part/part_base.html:100 +#: part/templates/part/part_base.html:101 msgid "Delete part" msgstr "" -#: part/templates/part/part_base.html:119 +#: part/templates/part/part_base.html:120 msgid "Part is a template part (variants can be made from this part)" msgstr "" -#: part/templates/part/part_base.html:123 +#: part/templates/part/part_base.html:124 msgid "Part can be assembled from other parts" msgstr "" -#: part/templates/part/part_base.html:127 +#: part/templates/part/part_base.html:128 msgid "Part can be used in assemblies" msgstr "" -#: part/templates/part/part_base.html:131 +#: part/templates/part/part_base.html:132 msgid "Part stock is tracked by serial number" msgstr "" -#: part/templates/part/part_base.html:135 +#: part/templates/part/part_base.html:136 msgid "Part can be purchased from external suppliers" msgstr "" -#: part/templates/part/part_base.html:139 +#: part/templates/part/part_base.html:140 msgid "Part can be sold to customers" msgstr "" -#: part/templates/part/part_base.html:145 +#: part/templates/part/part_base.html:146 msgid "Part is not active" msgstr "" -#: part/templates/part/part_base.html:153 +#: part/templates/part/part_base.html:154 msgid "Part is virtual (not a physical part)" msgstr "" -#: part/templates/part/part_base.html:163 -#: part/templates/part/part_base.html:690 +#: part/templates/part/part_base.html:164 +#: part/templates/part/part_base.html:698 msgid "Show Part Details" msgstr "" #: part/templates/part/part_base.html:218 -#: stock/templates/stock/item_base.html:388 +msgid "Required for Orders" +msgstr "" + +#: part/templates/part/part_base.html:226 +#: stock/templates/stock/item_base.html:385 msgid "Allocated to Build Orders" msgstr "" -#: part/templates/part/part_base.html:227 -#: stock/templates/stock/item_base.html:381 +#: part/templates/part/part_base.html:235 +#: stock/templates/stock/item_base.html:378 msgid "Allocated to Sales Orders" msgstr "" -#: part/templates/part/part_base.html:300 +#: part/templates/part/part_base.html:308 msgid "Minimum stock level" msgstr "" -#: part/templates/part/part_base.html:331 templates/js/translated/bom.js:1071 +#: part/templates/part/part_base.html:339 templates/js/translated/bom.js:1071 #: templates/js/translated/part.js:1271 templates/js/translated/part.js:2463 #: templates/js/translated/pricing.js:391 -#: templates/js/translated/pricing.js:1054 +#: templates/js/translated/pricing.js:1052 msgid "Price Range" msgstr "" -#: part/templates/part/part_base.html:361 +#: part/templates/part/part_base.html:369 msgid "Latest Serial Number" msgstr "" -#: part/templates/part/part_base.html:365 -#: stock/templates/stock/item_base.html:322 +#: part/templates/part/part_base.html:373 +#: stock/templates/stock/item_base.html:319 msgid "Search for serial number" msgstr "" -#: part/templates/part/part_base.html:453 +#: part/templates/part/part_base.html:461 msgid "Part QR Code" msgstr "" -#: part/templates/part/part_base.html:470 +#: part/templates/part/part_base.html:478 msgid "Link Barcode to Part" msgstr "" -#: part/templates/part/part_base.html:520 +#: part/templates/part/part_base.html:528 msgid "Calculate" msgstr "" -#: part/templates/part/part_base.html:537 +#: part/templates/part/part_base.html:545 msgid "Remove associated image from this part" msgstr "" -#: part/templates/part/part_base.html:588 +#: part/templates/part/part_base.html:596 msgid "No matching images found" msgstr "" -#: part/templates/part/part_base.html:684 +#: part/templates/part/part_base.html:692 msgid "Hide Part Details" msgstr "" @@ -8282,13 +8511,13 @@ msgid "Variants" msgstr "" #: part/templates/part/part_sidebar.html:14 -#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:21 +#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:22 #: stock/templates/stock/stock_app_base.html:10 #: templates/InvenTree/search.html:153 #: templates/InvenTree/settings/sidebar.html:51 #: templates/js/translated/part.js:1249 templates/js/translated/part.js:2152 #: templates/js/translated/part.js:2411 templates/js/translated/stock.js:1066 -#: templates/js/translated/stock.js:2155 templates/navbar.html:31 +#: templates/js/translated/stock.js:2156 templates/navbar.html:31 msgid "Stock" msgstr "" @@ -8324,17 +8553,17 @@ msgstr "" #: part/templates/part/prices.html:18 #: templates/InvenTree/settings/settings_staff_js.html:80 #: templates/InvenTree/settings/user.html:24 -#: templates/js/translated/helpers.js:103 +#: templates/js/translated/helpers.js:104 #: templates/js/translated/pricing.js:628 templates/notes_buttons.html:3 #: templates/notes_buttons.html:4 msgid "Edit" msgstr "Redigera" -#: part/templates/part/prices.html:28 stock/admin.py:251 -#: stock/templates/stock/item_base.html:446 -#: templates/js/translated/company.js:1703 -#: templates/js/translated/company.js:1713 -#: templates/js/translated/stock.js:2331 +#: part/templates/part/prices.html:28 stock/admin.py:252 +#: stock/templates/stock/item_base.html:443 +#: templates/js/translated/company.js:1704 +#: templates/js/translated/company.js:1714 +#: templates/js/translated/stock.js:2332 msgid "Last Updated" msgstr "Senast uppdaterad" @@ -8406,7 +8635,7 @@ msgid "Update Pricing" msgstr "" #: part/templates/part/stock_count.html:7 -#: templates/js/translated/model_renderers.js:228 +#: templates/js/translated/model_renderers.js:231 #: templates/js/translated/part.js:707 templates/js/translated/part.js:2147 #: templates/js/translated/part.js:2149 msgid "No Stock" @@ -8486,7 +8715,7 @@ msgstr "" msgid "Part Pricing" msgstr "" -#: plugin/api.py:172 +#: plugin/api.py:175 msgid "Plugin cannot be deleted as it is currently active" msgstr "" @@ -8498,78 +8727,85 @@ msgstr "Ingen åtgärd specificerad" msgid "No matching action found" msgstr "Ingen matchande åtgärd hittades" -#: plugin/base/barcodes/api.py:125 plugin/base/barcodes/api.py:371 -#: plugin/base/barcodes/api.py:546 +#: plugin/base/barcodes/api.py:203 msgid "No match found for barcode data" msgstr "" -#: plugin/base/barcodes/api.py:129 +#: plugin/base/barcodes/api.py:207 msgid "Match found for barcode data" msgstr "" -#: plugin/base/barcodes/api.py:163 plugin/base/barcodes/serializers.py:45 +#: plugin/base/barcodes/api.py:245 plugin/base/barcodes/serializers.py:72 msgid "Model is not supported" msgstr "" -#: plugin/base/barcodes/api.py:168 +#: plugin/base/barcodes/api.py:250 msgid "Model instance not found" msgstr "" -#: plugin/base/barcodes/api.py:197 -#: templates/js/translated/purchase_order.js:1468 +#: plugin/base/barcodes/api.py:279 +#: templates/js/translated/purchase_order.js:1452 msgid "Barcode matches existing item" msgstr "" -#: plugin/base/barcodes/api.py:336 +#: plugin/base/barcodes/api.py:418 msgid "No matching part data found" msgstr "" -#: plugin/base/barcodes/api.py:353 +#: plugin/base/barcodes/api.py:434 msgid "No matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:357 +#: plugin/base/barcodes/api.py:437 msgid "Multiple matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:381 +#: plugin/base/barcodes/api.py:450 plugin/base/barcodes/api.py:664 +msgid "No matching plugin found for barcode data" +msgstr "" + +#: plugin/base/barcodes/api.py:460 msgid "Matched supplier part" msgstr "" -#: plugin/base/barcodes/api.py:430 +#: plugin/base/barcodes/api.py:525 msgid "Item has already been received" msgstr "" -#: plugin/base/barcodes/api.py:467 +#: plugin/base/barcodes/api.py:563 msgid "No match for supplier barcode" msgstr "" -#: plugin/base/barcodes/api.py:510 +#: plugin/base/barcodes/api.py:612 msgid "Multiple matching line items found" msgstr "" -#: plugin/base/barcodes/api.py:513 +#: plugin/base/barcodes/api.py:615 msgid "No matching line item found" msgstr "" -#: plugin/base/barcodes/api.py:551 plugin/base/barcodes/api.py:558 +#: plugin/base/barcodes/api.py:661 +msgid "No sales order provided" +msgstr "" + +#: plugin/base/barcodes/api.py:670 msgid "Barcode does not match an existing stock item" msgstr "" -#: plugin/base/barcodes/api.py:569 +#: plugin/base/barcodes/api.py:686 msgid "Stock item does not match line item" msgstr "" -#: plugin/base/barcodes/api.py:593 templates/js/translated/build.js:2780 -#: templates/js/translated/sales_order.js:1953 +#: plugin/base/barcodes/api.py:716 templates/js/translated/build.js:2798 +#: templates/js/translated/sales_order.js:1934 msgid "Insufficient stock available" msgstr "" -#: plugin/base/barcodes/api.py:602 +#: plugin/base/barcodes/api.py:729 msgid "Stock item allocated to sales order" msgstr "" -#: plugin/base/barcodes/api.py:606 +#: plugin/base/barcodes/api.py:732 msgid "Not enough information" msgstr "" @@ -8591,75 +8827,75 @@ msgstr "" msgid "Purchase order does not match supplier" msgstr "" -#: plugin/base/barcodes/mixins.py:465 +#: plugin/base/barcodes/mixins.py:467 msgid "Failed to find pending line item for supplier part" msgstr "" -#: plugin/base/barcodes/mixins.py:496 +#: plugin/base/barcodes/mixins.py:498 msgid "Further information required to receive line item" msgstr "" -#: plugin/base/barcodes/mixins.py:504 +#: plugin/base/barcodes/mixins.py:506 msgid "Received purchase order line item" msgstr "" -#: plugin/base/barcodes/serializers.py:21 +#: plugin/base/barcodes/serializers.py:48 msgid "Scanned barcode data" msgstr "" -#: plugin/base/barcodes/serializers.py:30 +#: plugin/base/barcodes/serializers.py:57 msgid "Model name to generate barcode for" msgstr "" -#: plugin/base/barcodes/serializers.py:35 +#: plugin/base/barcodes/serializers.py:62 msgid "Primary key of model object to generate barcode for" msgstr "" -#: plugin/base/barcodes/serializers.py:105 +#: plugin/base/barcodes/serializers.py:132 msgid "Purchase Order to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:111 +#: plugin/base/barcodes/serializers.py:138 msgid "Purchase order is not pending" msgstr "" -#: plugin/base/barcodes/serializers.py:129 +#: plugin/base/barcodes/serializers.py:156 msgid "PurchaseOrder to receive items against" msgstr "" -#: plugin/base/barcodes/serializers.py:135 +#: plugin/base/barcodes/serializers.py:162 msgid "Purchase order has not been placed" msgstr "" -#: plugin/base/barcodes/serializers.py:143 +#: plugin/base/barcodes/serializers.py:170 msgid "Location to receive items into" msgstr "" -#: plugin/base/barcodes/serializers.py:149 +#: plugin/base/barcodes/serializers.py:176 msgid "Cannot select a structural location" msgstr "" -#: plugin/base/barcodes/serializers.py:163 +#: plugin/base/barcodes/serializers.py:190 msgid "Sales Order to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:169 +#: plugin/base/barcodes/serializers.py:196 msgid "Sales order is not pending" msgstr "" -#: plugin/base/barcodes/serializers.py:177 +#: plugin/base/barcodes/serializers.py:204 msgid "Sales order line item to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:184 +#: plugin/base/barcodes/serializers.py:211 msgid "Sales order shipment to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:190 +#: plugin/base/barcodes/serializers.py:217 msgid "Shipment has already been delivered" msgstr "" -#: plugin/base/barcodes/serializers.py:195 +#: plugin/base/barcodes/serializers.py:222 msgid "Quantity to allocate" msgstr "" @@ -8679,6 +8915,42 @@ msgstr "" msgid "No items provided to print" msgstr "" +#: plugin/base/ui/serializers.py:30 +msgid "Plugin Name" +msgstr "" + +#: plugin/base/ui/serializers.py:34 +msgid "Feature Type" +msgstr "" + +#: plugin/base/ui/serializers.py:39 +msgid "Feature Label" +msgstr "" + +#: plugin/base/ui/serializers.py:44 +msgid "Feature Title" +msgstr "" + +#: plugin/base/ui/serializers.py:49 +msgid "Feature Description" +msgstr "" + +#: plugin/base/ui/serializers.py:54 +msgid "Feature Icon" +msgstr "" + +#: plugin/base/ui/serializers.py:58 +msgid "Feature Options" +msgstr "" + +#: plugin/base/ui/serializers.py:61 +msgid "Feature Context" +msgstr "" + +#: plugin/base/ui/serializers.py:64 +msgid "Feature Source (javascript)" +msgstr "" + #: plugin/builtin/barcodes/inventree_barcode.py:27 msgid "InvenTree Barcodes" msgstr "" @@ -8756,7 +9028,7 @@ msgstr "" msgid "URL that is used to send messages to a slack channel" msgstr "" -#: plugin/builtin/integration/core_notifications.py:164 +#: plugin/builtin/integration/core_notifications.py:166 msgid "Open link" msgstr "" @@ -8794,11 +9066,11 @@ msgstr "" msgid "Provides support for printing using a machine" msgstr "" -#: plugin/builtin/labels/inventree_machine.py:149 +#: plugin/builtin/labels/inventree_machine.py:151 msgid "last used" msgstr "" -#: plugin/builtin/labels/inventree_machine.py:166 +#: plugin/builtin/labels/inventree_machine.py:168 msgid "Options" msgstr "" @@ -8822,7 +9094,7 @@ msgstr "" msgid "Print a border around each label" msgstr "" -#: plugin/builtin/labels/label_sheet.py:47 report/models.py:307 +#: plugin/builtin/labels/label_sheet.py:47 report/models.py:315 msgid "Landscape" msgstr "" @@ -8894,19 +9166,19 @@ msgstr "" msgid "The Supplier which acts as 'TME'" msgstr "" -#: plugin/installer.py:194 plugin/installer.py:282 +#: plugin/installer.py:199 plugin/installer.py:282 msgid "Only staff users can administer plugins" msgstr "" -#: plugin/installer.py:197 +#: plugin/installer.py:202 msgid "Plugin installation is disabled" msgstr "" -#: plugin/installer.py:248 +#: plugin/installer.py:246 msgid "Installed plugin successfully" msgstr "" -#: plugin/installer.py:254 +#: plugin/installer.py:251 #, python-brace-format msgid "Installed plugin into {path}" msgstr "" @@ -8943,10 +9215,6 @@ msgstr "" msgid "Plugin Configurations" msgstr "" -#: plugin/models.py:43 users/models.py:100 -msgid "Key" -msgstr "" - #: plugin/models.py:44 msgid "Key of plugin" msgstr "" @@ -8955,7 +9223,7 @@ msgstr "" msgid "PluginName of the plugin" msgstr "" -#: plugin/models.py:59 plugin/serializers.py:90 +#: plugin/models.py:59 plugin/serializers.py:115 msgid "Package Name" msgstr "" @@ -8984,17 +9252,17 @@ msgstr "" msgid "Package Plugin" msgstr "" -#: plugin/models.py:220 report/models.py:474 +#: plugin/models.py:259 report/models.py:482 #: templates/InvenTree/settings/plugin_settings.html:9 #: templates/js/translated/plugin.js:51 msgid "Plugin" msgstr "" -#: plugin/models.py:267 +#: plugin/models.py:306 msgid "Method" msgstr "" -#: plugin/plugin.py:270 +#: plugin/plugin.py:275 msgid "No author found" msgstr "" @@ -9053,81 +9321,157 @@ msgstr "" msgid "InvenTree Contributors" msgstr "" -#: plugin/serializers.py:81 -msgid "Source URL" +#: plugin/samples/integration/user_interface_sample.py:27 +msgid "Enable Part Panels" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:28 +msgid "Enable custom panels for Part views" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:33 +msgid "Enable Purchase Order Panels" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:34 +msgid "Enable custom panels for Purchase Order views" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:39 +msgid "Enable Broken Panels" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:40 +msgid "Enable broken panels for testing" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:45 +msgid "Enable Dynamic Panel" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:46 +msgid "Enable dynamic panels for testing" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:98 +msgid "Part Panel" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:131 +msgid "Broken Dashboard Item" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:133 +msgid "This is a broken dashboard item - it will not render!" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:139 +msgid "Sample Dashboard Item" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:141 +msgid "This is a sample dashboard item. It renders a simple string of HTML content." +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:147 +msgid "Context Dashboard Item" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:161 +msgid "Admin Dashboard Item" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:162 +msgid "This is an admin-only dashboard item." +msgstr "" + +#: plugin/serializers.py:82 +msgid "Source File" msgstr "" #: plugin/serializers.py:83 +msgid "Path to the source file for admin integration" +msgstr "" + +#: plugin/serializers.py:90 +msgid "Optional context data for the admin integration" +msgstr "" + +#: plugin/serializers.py:106 +msgid "Source URL" +msgstr "" + +#: plugin/serializers.py:108 msgid "Source for the package - this can be a custom registry or a VCS path" msgstr "" -#: plugin/serializers.py:92 +#: plugin/serializers.py:117 msgid "Name for the Plugin Package - can also contain a version indicator" msgstr "" -#: plugin/serializers.py:99 +#: plugin/serializers.py:124 #: templates/InvenTree/settings/plugin_settings.html:42 #: templates/js/translated/plugin.js:86 msgid "Version" msgstr "Version" -#: plugin/serializers.py:101 +#: plugin/serializers.py:126 msgid "Version specifier for the plugin. Leave blank for latest version." msgstr "" -#: plugin/serializers.py:106 +#: plugin/serializers.py:131 msgid "Confirm plugin installation" msgstr "" -#: plugin/serializers.py:108 +#: plugin/serializers.py:133 msgid "This will install this plugin now into the current instance. The instance will go into maintenance." msgstr "" -#: plugin/serializers.py:121 +#: plugin/serializers.py:146 msgid "Installation not confirmed" msgstr "" -#: plugin/serializers.py:123 +#: plugin/serializers.py:148 msgid "Either packagename of URL must be provided" msgstr "" -#: plugin/serializers.py:161 +#: plugin/serializers.py:184 msgid "Full reload" msgstr "" -#: plugin/serializers.py:162 +#: plugin/serializers.py:185 msgid "Perform a full reload of the plugin registry" msgstr "" -#: plugin/serializers.py:168 +#: plugin/serializers.py:191 msgid "Force reload" msgstr "" -#: plugin/serializers.py:170 +#: plugin/serializers.py:193 msgid "Force a reload of the plugin registry, even if it is already loaded" msgstr "" -#: plugin/serializers.py:177 +#: plugin/serializers.py:200 msgid "Collect plugins" msgstr "" -#: plugin/serializers.py:178 +#: plugin/serializers.py:201 msgid "Collect plugins and add them to the registry" msgstr "" -#: plugin/serializers.py:205 +#: plugin/serializers.py:228 msgid "Activate Plugin" msgstr "" -#: plugin/serializers.py:206 +#: plugin/serializers.py:229 msgid "Activate this plugin" msgstr "" -#: plugin/serializers.py:226 +#: plugin/serializers.py:249 msgid "Delete configuration" msgstr "" -#: plugin/serializers.py:227 +#: plugin/serializers.py:250 msgid "Delete the plugin configuration from the database" msgstr "" @@ -9135,11 +9479,11 @@ msgstr "" msgid "No valid objects provided to template" msgstr "" -#: report/api.py:103 report/models.py:438 report/serializers.py:98 -#: report/serializers.py:148 templates/js/translated/purchase_order.js:1817 +#: report/api.py:103 report/models.py:446 report/serializers.py:99 +#: report/serializers.py:149 templates/js/translated/purchase_order.js:1801 #: templates/js/translated/return_order.js:353 -#: templates/js/translated/sales_order.js:887 -#: templates/js/translated/sales_order.js:1047 +#: templates/js/translated/sales_order.js:846 +#: templates/js/translated/sales_order.js:1020 msgid "Items" msgstr "" @@ -9167,7 +9511,11 @@ msgstr "" msgid "Error printing label" msgstr "" -#: report/api.py:375 report/api.py:411 +#: report/api.py:358 +msgid "Report saved at time of printing" +msgstr "" + +#: report/api.py:384 report/api.py:420 #, python-brace-format msgid "Template file '{template}' is missing or does not exist" msgstr "" @@ -9204,135 +9552,143 @@ msgstr "" msgid "Revision number (auto-increments)" msgstr "" -#: report/models.py:202 +#: report/models.py:168 +msgid "Attach to Model on Print" +msgstr "" + +#: report/models.py:170 +msgid "Save report output as an attachment against linked model instance when printing" +msgstr "" + +#: report/models.py:210 msgid "Filename Pattern" msgstr "" -#: report/models.py:203 +#: report/models.py:211 msgid "Pattern for generating filenames" msgstr "" -#: report/models.py:208 +#: report/models.py:216 msgid "Template is enabled" msgstr "" -#: report/models.py:214 +#: report/models.py:222 msgid "Target model type for template" msgstr "" -#: report/models.py:234 +#: report/models.py:242 msgid "Filters" msgstr "" -#: report/models.py:235 +#: report/models.py:243 msgid "Template query filters (comma-separated list of key=value pairs)" msgstr "" -#: report/models.py:294 report/models.py:361 +#: report/models.py:302 report/models.py:369 msgid "Template file" msgstr "" -#: report/models.py:302 +#: report/models.py:310 msgid "Page size for PDF reports" msgstr "" -#: report/models.py:308 +#: report/models.py:316 msgid "Render report in landscape orientation" msgstr "" -#: report/models.py:367 +#: report/models.py:375 msgid "Width [mm]" msgstr "" -#: report/models.py:368 +#: report/models.py:376 msgid "Label width, specified in mm" msgstr "" -#: report/models.py:374 +#: report/models.py:382 msgid "Height [mm]" msgstr "" -#: report/models.py:375 +#: report/models.py:383 msgid "Label height, specified in mm" msgstr "" -#: report/models.py:438 +#: report/models.py:446 msgid "Number of items to process" msgstr "" -#: report/models.py:444 +#: report/models.py:452 msgid "Report generation is complete" msgstr "" -#: report/models.py:448 templates/js/translated/build.js:2349 +#: report/models.py:456 templates/js/translated/build.js:2352 msgid "Progress" msgstr "" -#: report/models.py:448 +#: report/models.py:456 msgid "Report generation progress" msgstr "" -#: report/models.py:456 +#: report/models.py:464 msgid "Report Template" msgstr "" -#: report/models.py:463 report/models.py:486 +#: report/models.py:471 report/models.py:494 msgid "Output File" msgstr "" -#: report/models.py:464 report/models.py:487 +#: report/models.py:472 report/models.py:495 msgid "Generated output file" msgstr "" -#: report/models.py:475 +#: report/models.py:483 msgid "Label output plugin" msgstr "" -#: report/models.py:479 +#: report/models.py:487 msgid "Label Template" msgstr "" -#: report/models.py:502 +#: report/models.py:510 msgid "Snippet" msgstr "" -#: report/models.py:503 +#: report/models.py:511 msgid "Report snippet file" msgstr "" -#: report/models.py:510 +#: report/models.py:518 msgid "Snippet file description" msgstr "" -#: report/models.py:528 +#: report/models.py:536 msgid "Asset" msgstr "" -#: report/models.py:529 +#: report/models.py:537 msgid "Report asset file" msgstr "" -#: report/models.py:536 +#: report/models.py:544 msgid "Asset file description" msgstr "" -#: report/serializers.py:91 +#: report/serializers.py:92 msgid "Select report template" msgstr "" -#: report/serializers.py:99 report/serializers.py:149 +#: report/serializers.py:100 report/serializers.py:150 msgid "List of item primary keys to include in the report" msgstr "" -#: report/serializers.py:132 +#: report/serializers.py:133 msgid "Select label template" msgstr "" -#: report/serializers.py:140 +#: report/serializers.py:141 msgid "Printing Plugin" msgstr "" -#: report/serializers.py:141 +#: report/serializers.py:142 msgid "Select plugin to use for label printing" msgstr "" @@ -9365,9 +9721,9 @@ msgstr "" #: report/templates/report/inventree_sales_order_report.html:30 #: templates/js/translated/order.js:341 templates/js/translated/pricing.js:527 #: templates/js/translated/pricing.js:596 -#: templates/js/translated/pricing.js:834 -#: templates/js/translated/purchase_order.js:2185 -#: templates/js/translated/sales_order.js:1873 +#: templates/js/translated/pricing.js:832 +#: templates/js/translated/purchase_order.js:2169 +#: templates/js/translated/sales_order.js:1854 msgid "Unit Price" msgstr "" @@ -9379,13 +9735,18 @@ msgstr "" #: report/templates/report/inventree_purchase_order_report.html:72 #: report/templates/report/inventree_sales_order_report.html:72 -#: templates/js/translated/purchase_order.js:2087 -#: templates/js/translated/sales_order.js:1842 +#: templates/js/translated/purchase_order.js:2071 +#: templates/js/translated/sales_order.js:1823 #: templates/test_statistics_table.html:8 #: templates/test_statistics_table.html:19 msgid "Total" msgstr "" +#: report/templates/report/inventree_sales_order_shipment_report.html:23 +#: stock/templates/stock/stock_sidebar.html:8 +msgid "Allocations" +msgstr "" + #: report/templates/report/inventree_stock_location_report.html:97 msgid "Stock location items" msgstr "" @@ -9403,15 +9764,13 @@ msgstr "" msgid "Test" msgstr "" -#: report/templates/report/inventree_test_report.html:103 stock/models.py:2544 -msgid "Result" -msgstr "" - #: report/templates/report/inventree_test_report.html:129 +#: templates/js/translated/stock.js:1448 msgid "Pass" msgstr "" #: report/templates/report/inventree_test_report.html:131 +#: templates/js/translated/stock.js:1450 msgid "Fail" msgstr "" @@ -9420,17 +9779,18 @@ msgid "No result (required)" msgstr "" #: report/templates/report/inventree_test_report.html:140 +#: templates/js/translated/stock.js:1455 msgid "No result" msgstr "" #: report/templates/report/inventree_test_report.html:153 -#: stock/serializers.py:599 stock/templates/stock/stock_sidebar.html:16 +#: stock/serializers.py:626 stock/templates/stock/stock_sidebar.html:16 msgid "Installed Items" msgstr "" -#: report/templates/report/inventree_test_report.html:167 stock/admin.py:161 +#: report/templates/report/inventree_test_report.html:167 stock/admin.py:162 #: templates/js/translated/stock.js:706 templates/js/translated/stock.js:877 -#: templates/js/translated/stock.js:3194 +#: templates/js/translated/stock.js:3195 msgid "Serial" msgstr "" @@ -9450,67 +9810,67 @@ msgstr "" msgid "company_image tag requires a Company instance" msgstr "" -#: stock/admin.py:51 stock/admin.py:171 +#: stock/admin.py:51 stock/admin.py:172 msgid "Location ID" msgstr "" -#: stock/admin.py:63 stock/templates/stock/location.html:128 -#: stock/templates/stock/location.html:134 +#: stock/admin.py:63 stock/templates/stock/location.html:129 +#: stock/templates/stock/location.html:135 msgid "Location Path" msgstr "" -#: stock/admin.py:148 +#: stock/admin.py:149 msgid "Stock Item ID" msgstr "" -#: stock/admin.py:167 +#: stock/admin.py:168 msgid "Status Code" msgstr "Statuskod" -#: stock/admin.py:179 +#: stock/admin.py:180 msgid "Supplier Part ID" msgstr "" -#: stock/admin.py:184 +#: stock/admin.py:185 msgid "Supplier Part SKU" msgstr "" -#: stock/admin.py:189 +#: stock/admin.py:190 msgid "Supplier ID" msgstr "" -#: stock/admin.py:200 +#: stock/admin.py:201 msgid "Customer ID" msgstr "" -#: stock/admin.py:205 stock/models.py:825 -#: stock/templates/stock/item_base.html:354 +#: stock/admin.py:206 stock/models.py:902 +#: stock/templates/stock/item_base.html:351 msgid "Installed In" msgstr "" -#: stock/admin.py:210 +#: stock/admin.py:211 msgid "Build ID" msgstr "" -#: stock/admin.py:220 +#: stock/admin.py:221 msgid "Sales Order ID" msgstr "" -#: stock/admin.py:225 +#: stock/admin.py:226 msgid "Purchase Order ID" msgstr "" -#: stock/admin.py:240 +#: stock/admin.py:241 msgid "Review Needed" msgstr "" -#: stock/admin.py:245 +#: stock/admin.py:246 msgid "Delete on Deplete" msgstr "" -#: stock/admin.py:260 stock/models.py:919 -#: stock/templates/stock/item_base.html:433 -#: templates/js/translated/stock.js:2315 users/models.py:124 +#: stock/admin.py:261 stock/models.py:996 +#: stock/templates/stock/item_base.html:430 +#: templates/js/translated/stock.js:2316 users/models.py:124 msgid "Expiry Date" msgstr "" @@ -9526,11 +9886,11 @@ msgstr "" msgid "Include sub-locations in filtered results" msgstr "" -#: stock/api.py:367 stock/serializers.py:1186 +#: stock/api.py:366 stock/serializers.py:1217 msgid "Parent Location" msgstr "" -#: stock/api.py:368 +#: stock/api.py:367 msgid "Filter by parent location" msgstr "" @@ -9550,8 +9910,8 @@ msgstr "" msgid "Expiry date after" msgstr "" -#: stock/api.py:840 stock/serializers.py:604 -#: stock/templates/stock/item_base.html:439 +#: stock/api.py:840 stock/serializers.py:631 +#: stock/templates/stock/item_base.html:436 #: templates/js/translated/table_filters.js:448 msgid "Stale" msgstr "" @@ -9560,594 +9920,598 @@ msgstr "" msgid "Quantity is required" msgstr "" -#: stock/api.py:933 +#: stock/api.py:932 msgid "Valid part must be supplied" msgstr "" -#: stock/api.py:964 +#: stock/api.py:959 msgid "The given supplier part does not exist" msgstr "" -#: stock/api.py:974 +#: stock/api.py:969 msgid "The supplier part has a pack size defined, but flag use_pack_size not set" msgstr "" -#: stock/api.py:1005 +#: stock/api.py:996 msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "" -#: stock/models.py:64 +#: stock/models.py:70 msgid "Stock Location type" msgstr "" -#: stock/models.py:65 +#: stock/models.py:71 msgid "Stock Location types" msgstr "" -#: stock/models.py:91 +#: stock/models.py:97 msgid "Default icon for all locations that have no icon set (optional)" msgstr "" -#: stock/models.py:131 stock/models.py:807 -#: stock/templates/stock/location.html:17 +#: stock/models.py:137 stock/models.py:884 +#: stock/templates/stock/location.html:18 #: stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "" -#: stock/models.py:132 stock/templates/stock/location.html:183 +#: stock/models.py:138 stock/templates/stock/location.html:184 #: templates/InvenTree/search.html:166 templates/js/translated/search.js:178 #: users/models.py:205 msgid "Stock Locations" msgstr "" -#: stock/models.py:180 stock/models.py:968 -#: stock/templates/stock/item_base.html:247 +#: stock/models.py:186 stock/models.py:1045 +#: stock/templates/stock/item_base.html:244 msgid "Owner" msgstr "" -#: stock/models.py:181 stock/models.py:969 +#: stock/models.py:187 stock/models.py:1046 msgid "Select Owner" msgstr "" -#: stock/models.py:189 +#: stock/models.py:195 msgid "Stock items may not be directly located into a structural stock locations, but may be located to child locations." msgstr "" -#: stock/models.py:196 templates/js/translated/stock.js:2865 +#: stock/models.py:202 templates/js/translated/stock.js:2866 #: templates/js/translated/table_filters.js:250 msgid "External" msgstr "" -#: stock/models.py:197 +#: stock/models.py:203 msgid "This is an external stock location" msgstr "" -#: stock/models.py:203 templates/js/translated/stock.js:2874 +#: stock/models.py:209 templates/js/translated/stock.js:2875 #: templates/js/translated/table_filters.js:253 msgid "Location type" msgstr "" -#: stock/models.py:207 +#: stock/models.py:213 msgid "Stock location type of this location" msgstr "" -#: stock/models.py:279 +#: stock/models.py:285 msgid "You cannot make this stock location structural because some stock items are already located into it!" msgstr "" -#: stock/models.py:664 +#: stock/models.py:492 +msgid "Part must be specified" +msgstr "" + +#: stock/models.py:741 msgid "Stock items cannot be located into structural stock locations!" msgstr "" -#: stock/models.py:691 stock/serializers.py:480 +#: stock/models.py:768 stock/serializers.py:492 msgid "Stock item cannot be created for virtual parts" msgstr "" -#: stock/models.py:708 +#: stock/models.py:785 #, python-brace-format msgid "Part type ('{self.supplier_part.part}') must be {self.part}" msgstr "" -#: stock/models.py:718 stock/models.py:731 +#: stock/models.py:795 stock/models.py:808 msgid "Quantity must be 1 for item with a serial number" msgstr "" -#: stock/models.py:721 +#: stock/models.py:798 msgid "Serial number cannot be set if quantity greater than 1" msgstr "" -#: stock/models.py:743 +#: stock/models.py:820 msgid "Item cannot belong to itself" msgstr "" -#: stock/models.py:748 +#: stock/models.py:825 msgid "Item must have a build reference if is_building=True" msgstr "" -#: stock/models.py:761 +#: stock/models.py:838 msgid "Build reference does not point to the same part object" msgstr "" -#: stock/models.py:777 +#: stock/models.py:854 msgid "Parent Stock Item" msgstr "" -#: stock/models.py:789 +#: stock/models.py:866 msgid "Base part" msgstr "" -#: stock/models.py:799 +#: stock/models.py:876 msgid "Select a matching supplier part for this stock item" msgstr "" -#: stock/models.py:811 +#: stock/models.py:888 msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:819 stock/serializers.py:1580 +#: stock/models.py:896 stock/serializers.py:1611 msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:830 +#: stock/models.py:907 msgid "Is this item installed in another item?" msgstr "" -#: stock/models.py:849 +#: stock/models.py:926 msgid "Serial number for this item" msgstr "" -#: stock/models.py:863 stock/serializers.py:1563 +#: stock/models.py:940 stock/serializers.py:1594 msgid "Batch code for this stock item" msgstr "" -#: stock/models.py:868 +#: stock/models.py:945 msgid "Stock Quantity" msgstr "" -#: stock/models.py:878 +#: stock/models.py:955 msgid "Source Build" msgstr "" -#: stock/models.py:881 +#: stock/models.py:958 msgid "Build for this stock item" msgstr "" -#: stock/models.py:888 stock/templates/stock/item_base.html:363 +#: stock/models.py:965 stock/templates/stock/item_base.html:360 msgid "Consumed By" msgstr "" -#: stock/models.py:891 +#: stock/models.py:968 msgid "Build order which consumed this stock item" msgstr "" -#: stock/models.py:900 +#: stock/models.py:977 msgid "Source Purchase Order" msgstr "" -#: stock/models.py:904 +#: stock/models.py:981 msgid "Purchase order for this stock item" msgstr "" -#: stock/models.py:910 +#: stock/models.py:987 msgid "Destination Sales Order" msgstr "" -#: stock/models.py:921 +#: stock/models.py:998 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "" -#: stock/models.py:939 +#: stock/models.py:1016 msgid "Delete on deplete" msgstr "" -#: stock/models.py:940 +#: stock/models.py:1017 msgid "Delete this Stock Item when stock is depleted" msgstr "" -#: stock/models.py:960 +#: stock/models.py:1037 msgid "Single unit purchase price at time of purchase" msgstr "" -#: stock/models.py:991 +#: stock/models.py:1068 msgid "Converted to part" msgstr "" -#: stock/models.py:1511 +#: stock/models.py:1600 msgid "Part is not set as trackable" msgstr "" -#: stock/models.py:1517 +#: stock/models.py:1606 msgid "Quantity must be integer" msgstr "" -#: stock/models.py:1525 +#: stock/models.py:1614 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({self.quantity})" msgstr "" -#: stock/models.py:1531 -msgid "Serial numbers must be a list of integers" +#: stock/models.py:1620 +msgid "Serial numbers must be provided as a list" msgstr "" -#: stock/models.py:1536 +#: stock/models.py:1625 msgid "Quantity does not match serial numbers" msgstr "" -#: stock/models.py:1544 stock/serializers.py:726 -msgid "Serial numbers already exist" -msgstr "" - -#: stock/models.py:1641 +#: stock/models.py:1747 stock/models.py:2563 msgid "Test template does not exist" msgstr "" -#: stock/models.py:1659 +#: stock/models.py:1765 msgid "Stock item has been assigned to a sales order" msgstr "" -#: stock/models.py:1663 +#: stock/models.py:1769 msgid "Stock item is installed in another item" msgstr "" -#: stock/models.py:1666 +#: stock/models.py:1772 msgid "Stock item contains other items" msgstr "" -#: stock/models.py:1669 +#: stock/models.py:1775 msgid "Stock item has been assigned to a customer" msgstr "" -#: stock/models.py:1672 +#: stock/models.py:1778 msgid "Stock item is currently in production" msgstr "" -#: stock/models.py:1675 +#: stock/models.py:1781 msgid "Serialized stock cannot be merged" msgstr "" -#: stock/models.py:1682 stock/serializers.py:1469 +#: stock/models.py:1788 stock/serializers.py:1500 msgid "Duplicate stock items" msgstr "" -#: stock/models.py:1686 +#: stock/models.py:1792 msgid "Stock items must refer to the same part" msgstr "" -#: stock/models.py:1694 +#: stock/models.py:1800 msgid "Stock items must refer to the same supplier part" msgstr "" -#: stock/models.py:1699 +#: stock/models.py:1805 msgid "Stock status codes must match" msgstr "" -#: stock/models.py:1960 +#: stock/models.py:2066 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:2343 +#: stock/models.py:2462 msgid "Stock Item Tracking" msgstr "" -#: stock/models.py:2376 +#: stock/models.py:2495 msgid "Entry notes" msgstr "" -#: stock/models.py:2416 +#: stock/models.py:2535 msgid "Stock Item Test Result" msgstr "" -#: stock/models.py:2449 +#: stock/models.py:2566 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:2454 +#: stock/models.py:2570 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:2459 +#: stock/models.py:2575 msgid "Invalid value for this test" msgstr "" -#: stock/models.py:2544 +#: stock/models.py:2660 msgid "Test result" msgstr "" -#: stock/models.py:2551 +#: stock/models.py:2667 msgid "Test output value" msgstr "" -#: stock/models.py:2559 +#: stock/models.py:2675 stock/serializers.py:245 msgid "Test result attachment" msgstr "" -#: stock/models.py:2563 +#: stock/models.py:2679 msgid "Test notes" msgstr "" -#: stock/models.py:2571 templates/js/translated/stock.js:1633 +#: stock/models.py:2687 templates/js/translated/stock.js:1633 msgid "Test station" msgstr "" -#: stock/models.py:2572 +#: stock/models.py:2688 msgid "The identifier of the test station where the test was performed" msgstr "" -#: stock/models.py:2578 +#: stock/models.py:2694 msgid "Started" msgstr "" -#: stock/models.py:2579 +#: stock/models.py:2695 msgid "The timestamp of the test start" msgstr "" -#: stock/models.py:2585 +#: stock/models.py:2701 msgid "Finished" msgstr "" -#: stock/models.py:2586 +#: stock/models.py:2702 msgid "The timestamp of the test finish" msgstr "" -#: stock/serializers.py:76 +#: stock/serializers.py:77 msgid "Generated batch code" msgstr "" -#: stock/serializers.py:85 +#: stock/serializers.py:86 msgid "Select build order" msgstr "" -#: stock/serializers.py:94 +#: stock/serializers.py:95 msgid "Select stock item to generate batch code for" msgstr "" -#: stock/serializers.py:103 +#: stock/serializers.py:104 msgid "Select location to generate batch code for" msgstr "" -#: stock/serializers.py:112 +#: stock/serializers.py:113 msgid "Select part to generate batch code for" msgstr "" -#: stock/serializers.py:121 +#: stock/serializers.py:122 msgid "Select purchase order" msgstr "" -#: stock/serializers.py:128 +#: stock/serializers.py:129 msgid "Enter quantity for batch code" msgstr "" -#: stock/serializers.py:151 +#: stock/serializers.py:152 msgid "Generated serial number" msgstr "" -#: stock/serializers.py:160 +#: stock/serializers.py:161 msgid "Select part to generate serial number for" msgstr "" -#: stock/serializers.py:168 +#: stock/serializers.py:169 msgid "Quantity of serial numbers to generate" msgstr "" -#: stock/serializers.py:233 +#: stock/serializers.py:234 msgid "Test template for this result" msgstr "" -#: stock/serializers.py:254 +#: stock/serializers.py:258 msgid "Template ID or test name must be provided" msgstr "" -#: stock/serializers.py:286 +#: stock/serializers.py:290 msgid "The test finished time cannot be earlier than the test started time" msgstr "" -#: stock/serializers.py:323 +#: stock/serializers.py:327 msgid "Serial number is too large" msgstr "" -#: stock/serializers.py:452 stock/templates/stock/item_base.html:193 +#: stock/serializers.py:462 stock/templates/stock/item_base.html:190 msgid "Parent Item" msgstr "" -#: stock/serializers.py:453 +#: stock/serializers.py:463 msgid "Parent stock item" msgstr "" -#: stock/serializers.py:472 +#: stock/serializers.py:484 msgid "Use pack size when adding: the quantity defined is the number of packs" msgstr "" -#: stock/serializers.py:596 stock/templates/stock/item_base.html:437 +#: stock/serializers.py:623 stock/templates/stock/item_base.html:434 #: templates/js/translated/table_filters.js:442 users/models.py:174 msgid "Expired" msgstr "" -#: stock/serializers.py:602 stock/templates/stock/stock_sidebar.html:20 +#: stock/serializers.py:629 stock/templates/stock/stock_sidebar.html:20 msgid "Child Items" msgstr "" -#: stock/serializers.py:606 +#: stock/serializers.py:633 msgid "Tracking Items" msgstr "" -#: stock/serializers.py:612 +#: stock/serializers.py:639 msgid "Purchase price of this stock item, per unit or pack" msgstr "" -#: stock/serializers.py:631 +#: stock/serializers.py:658 msgid "Minimum Pricing" msgstr "" -#: stock/serializers.py:637 +#: stock/serializers.py:664 msgid "Maximum Pricing" msgstr "" -#: stock/serializers.py:661 +#: stock/serializers.py:688 msgid "Enter number of stock items to serialize" msgstr "" -#: stock/serializers.py:674 +#: stock/serializers.py:701 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({q})" msgstr "" -#: stock/serializers.py:681 +#: stock/serializers.py:708 msgid "Enter serial numbers for new items" msgstr "" -#: stock/serializers.py:692 stock/serializers.py:1426 stock/serializers.py:1682 +#: stock/serializers.py:719 stock/serializers.py:1457 stock/serializers.py:1713 msgid "Destination stock location" msgstr "" -#: stock/serializers.py:699 +#: stock/serializers.py:726 msgid "Optional note field" msgstr "" -#: stock/serializers.py:709 +#: stock/serializers.py:736 msgid "Serial numbers cannot be assigned to this part" msgstr "" -#: stock/serializers.py:764 +#: stock/serializers.py:756 +msgid "Serial numbers already exist" +msgstr "" + +#: stock/serializers.py:795 msgid "Select stock item to install" msgstr "" -#: stock/serializers.py:771 +#: stock/serializers.py:802 msgid "Quantity to Install" msgstr "" -#: stock/serializers.py:772 +#: stock/serializers.py:803 msgid "Enter the quantity of items to install" msgstr "" -#: stock/serializers.py:777 stock/serializers.py:857 stock/serializers.py:983 -#: stock/serializers.py:1033 +#: stock/serializers.py:808 stock/serializers.py:888 stock/serializers.py:1014 +#: stock/serializers.py:1064 msgid "Add transaction note (optional)" msgstr "" -#: stock/serializers.py:785 +#: stock/serializers.py:816 msgid "Quantity to install must be at least 1" msgstr "" -#: stock/serializers.py:793 +#: stock/serializers.py:824 msgid "Stock item is unavailable" msgstr "" -#: stock/serializers.py:804 +#: stock/serializers.py:835 msgid "Selected part is not in the Bill of Materials" msgstr "" -#: stock/serializers.py:817 +#: stock/serializers.py:848 msgid "Quantity to install must not exceed available quantity" msgstr "" -#: stock/serializers.py:852 +#: stock/serializers.py:883 msgid "Destination location for uninstalled item" msgstr "" -#: stock/serializers.py:903 +#: stock/serializers.py:934 msgid "Unsupported statistic type: " msgstr "" -#: stock/serializers.py:917 +#: stock/serializers.py:948 msgid "Select part to convert stock item into" msgstr "" -#: stock/serializers.py:930 +#: stock/serializers.py:961 msgid "Selected part is not a valid option for conversion" msgstr "" -#: stock/serializers.py:947 +#: stock/serializers.py:978 msgid "Cannot convert stock item with assigned SupplierPart" msgstr "" -#: stock/serializers.py:978 +#: stock/serializers.py:1009 msgid "Destination location for returned item" msgstr "" -#: stock/serializers.py:1015 +#: stock/serializers.py:1046 msgid "Select stock items to change status" msgstr "" -#: stock/serializers.py:1021 +#: stock/serializers.py:1052 msgid "No stock items selected" msgstr "" -#: stock/serializers.py:1117 stock/serializers.py:1194 -#: stock/templates/stock/location.html:162 -#: stock/templates/stock/location.html:219 +#: stock/serializers.py:1148 stock/serializers.py:1225 +#: stock/templates/stock/location.html:163 +#: stock/templates/stock/location.html:220 #: stock/templates/stock/location_sidebar.html:5 msgid "Sublocations" msgstr "" -#: stock/serializers.py:1187 templates/js/translated/stock.js:160 +#: stock/serializers.py:1218 templates/js/translated/stock.js:160 msgid "Parent stock location" msgstr "" -#: stock/serializers.py:1298 +#: stock/serializers.py:1329 msgid "Part must be salable" msgstr "" -#: stock/serializers.py:1302 +#: stock/serializers.py:1333 msgid "Item is allocated to a sales order" msgstr "" -#: stock/serializers.py:1306 +#: stock/serializers.py:1337 msgid "Item is allocated to a build order" msgstr "" -#: stock/serializers.py:1330 +#: stock/serializers.py:1361 msgid "Customer to assign stock items" msgstr "" -#: stock/serializers.py:1336 +#: stock/serializers.py:1367 msgid "Selected company is not a customer" msgstr "" -#: stock/serializers.py:1344 +#: stock/serializers.py:1375 msgid "Stock assignment notes" msgstr "" -#: stock/serializers.py:1354 stock/serializers.py:1608 +#: stock/serializers.py:1385 stock/serializers.py:1639 msgid "A list of stock items must be provided" msgstr "" -#: stock/serializers.py:1433 +#: stock/serializers.py:1464 msgid "Stock merging notes" msgstr "" -#: stock/serializers.py:1438 +#: stock/serializers.py:1469 msgid "Allow mismatched suppliers" msgstr "" -#: stock/serializers.py:1439 +#: stock/serializers.py:1470 msgid "Allow stock items with different supplier parts to be merged" msgstr "" -#: stock/serializers.py:1444 +#: stock/serializers.py:1475 msgid "Allow mismatched status" msgstr "" -#: stock/serializers.py:1445 +#: stock/serializers.py:1476 msgid "Allow stock items with different status codes to be merged" msgstr "" -#: stock/serializers.py:1455 +#: stock/serializers.py:1486 msgid "At least two stock items must be provided" msgstr "" -#: stock/serializers.py:1522 +#: stock/serializers.py:1553 msgid "No Change" msgstr "" -#: stock/serializers.py:1551 +#: stock/serializers.py:1582 msgid "StockItem primary key value" msgstr "" -#: stock/serializers.py:1570 +#: stock/serializers.py:1601 msgid "Stock item status code" msgstr "" -#: stock/serializers.py:1598 +#: stock/serializers.py:1629 msgid "Stock transaction notes" msgstr "" @@ -10175,107 +10539,107 @@ msgstr "Avvisad" msgid "Quarantined" msgstr "I karantän" -#: stock/status_codes.py:40 +#: stock/status_codes.py:44 msgid "Legacy stock tracking entry" msgstr "Spårningspost för äldre lager" -#: stock/status_codes.py:42 templates/js/translated/stock.js:550 +#: stock/status_codes.py:46 templates/js/translated/stock.js:550 msgid "Stock item created" msgstr "Lagerpost skapad" -#: stock/status_codes.py:45 +#: stock/status_codes.py:49 msgid "Edited stock item" msgstr "Redigerade lagerpost" -#: stock/status_codes.py:46 +#: stock/status_codes.py:50 msgid "Assigned serial number" msgstr "Tilldelade serienummer" -#: stock/status_codes.py:49 +#: stock/status_codes.py:53 msgid "Stock counted" msgstr "Lagersaldo beräknat" -#: stock/status_codes.py:50 +#: stock/status_codes.py:54 msgid "Stock manually added" msgstr "Lagerpost manuellt tillagd" -#: stock/status_codes.py:51 +#: stock/status_codes.py:55 msgid "Stock manually removed" msgstr "Lagerpost manuellt borttagen" -#: stock/status_codes.py:54 +#: stock/status_codes.py:58 msgid "Location changed" msgstr "Platsen har ändrats" -#: stock/status_codes.py:55 +#: stock/status_codes.py:59 msgid "Stock updated" msgstr "" -#: stock/status_codes.py:58 +#: stock/status_codes.py:62 msgid "Installed into assembly" msgstr "Installerad i montering" -#: stock/status_codes.py:59 +#: stock/status_codes.py:63 msgid "Removed from assembly" msgstr "Borttagen från montering" -#: stock/status_codes.py:61 +#: stock/status_codes.py:65 msgid "Installed component item" msgstr "Installerat komponentobjekt" -#: stock/status_codes.py:62 +#: stock/status_codes.py:66 msgid "Removed component item" msgstr "Tog bort komponentobjekt" -#: stock/status_codes.py:65 +#: stock/status_codes.py:69 msgid "Split from parent item" msgstr "Dela från överordnat objekt" -#: stock/status_codes.py:66 +#: stock/status_codes.py:70 msgid "Split child item" msgstr "Dela underordnat objekt" -#: stock/status_codes.py:69 templates/js/translated/stock.js:1943 +#: stock/status_codes.py:73 templates/js/translated/stock.js:1944 msgid "Merged stock items" msgstr "Sammanfogade lagerposter" -#: stock/status_codes.py:72 +#: stock/status_codes.py:76 msgid "Converted to variant" msgstr "Konverterad till variant" -#: stock/status_codes.py:75 +#: stock/status_codes.py:79 msgid "Build order output created" msgstr "Bygg orderutgång skapad" -#: stock/status_codes.py:76 +#: stock/status_codes.py:80 msgid "Build order output completed" msgstr "Bygg orderutgång slutförd" -#: stock/status_codes.py:77 +#: stock/status_codes.py:81 msgid "Build order output rejected" msgstr "" -#: stock/status_codes.py:78 templates/js/translated/stock.js:1849 +#: stock/status_codes.py:82 templates/js/translated/stock.js:1849 msgid "Consumed by build order" msgstr "Konsumeras av byggorder" -#: stock/status_codes.py:81 +#: stock/status_codes.py:85 msgid "Shipped against Sales Order" msgstr "" -#: stock/status_codes.py:84 +#: stock/status_codes.py:88 msgid "Received against Purchase Order" msgstr "" -#: stock/status_codes.py:87 +#: stock/status_codes.py:91 msgid "Returned against Return Order" msgstr "" -#: stock/status_codes.py:90 templates/js/translated/table_filters.js:382 +#: stock/status_codes.py:94 templates/js/translated/table_filters.js:382 msgid "Sent to customer" msgstr "Skickat till kund" -#: stock/status_codes.py:91 +#: stock/status_codes.py:95 msgid "Returned from customer" msgstr "Returnerad från kund" @@ -10296,7 +10660,7 @@ msgstr "" msgid "Test Data" msgstr "" -#: stock/templates/stock/item.html:85 stock/templates/stock/item_base.html:65 +#: stock/templates/stock/item.html:85 msgid "Test Report" msgstr "" @@ -10316,7 +10680,7 @@ msgstr "" msgid "Installed Stock Items" msgstr "" -#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3354 +#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3355 msgid "Install Stock Item" msgstr "" @@ -10328,208 +10692,212 @@ msgstr "" msgid "Add Test Result" msgstr "" -#: stock/templates/stock/item_base.html:33 +#: stock/templates/stock/item_base.html:34 msgid "Locate stock item" msgstr "" -#: stock/templates/stock/item_base.html:51 +#: stock/templates/stock/item_base.html:52 msgid "Scan to Location" msgstr "" #: stock/templates/stock/item_base.html:59 -#: stock/templates/stock/location.html:67 +#: stock/templates/stock/location.html:68 #: templates/js/translated/filters.js:434 msgid "Printing actions" msgstr "" -#: stock/templates/stock/item_base.html:75 +#: stock/templates/stock/item_base.html:64 templates/js/translated/report.js:49 +msgid "Print Report" +msgstr "" + +#: stock/templates/stock/item_base.html:72 msgid "Stock adjustment actions" msgstr "" -#: stock/templates/stock/item_base.html:79 -#: stock/templates/stock/location.html:87 templates/js/translated/stock.js:1909 +#: stock/templates/stock/item_base.html:76 +#: stock/templates/stock/location.html:88 templates/js/translated/stock.js:1909 msgid "Count stock" msgstr "" -#: stock/templates/stock/item_base.html:81 +#: stock/templates/stock/item_base.html:78 #: templates/js/translated/stock.js:1891 msgid "Add stock" msgstr "" -#: stock/templates/stock/item_base.html:82 +#: stock/templates/stock/item_base.html:79 #: templates/js/translated/stock.js:1900 msgid "Remove stock" msgstr "" -#: stock/templates/stock/item_base.html:85 +#: stock/templates/stock/item_base.html:82 msgid "Serialize stock" msgstr "" -#: stock/templates/stock/item_base.html:88 -#: stock/templates/stock/location.html:93 templates/js/translated/stock.js:1918 +#: stock/templates/stock/item_base.html:85 +#: stock/templates/stock/location.html:94 templates/js/translated/stock.js:1918 msgid "Transfer stock" msgstr "" -#: stock/templates/stock/item_base.html:91 -#: templates/js/translated/stock.js:1972 +#: stock/templates/stock/item_base.html:88 +#: templates/js/translated/stock.js:1973 msgid "Assign to customer" msgstr "" -#: stock/templates/stock/item_base.html:94 +#: stock/templates/stock/item_base.html:91 msgid "Return to stock" msgstr "" -#: stock/templates/stock/item_base.html:97 +#: stock/templates/stock/item_base.html:94 msgid "Uninstall stock item" msgstr "" -#: stock/templates/stock/item_base.html:97 +#: stock/templates/stock/item_base.html:94 msgid "Uninstall" msgstr "" -#: stock/templates/stock/item_base.html:101 +#: stock/templates/stock/item_base.html:98 msgid "Install stock item" msgstr "" -#: stock/templates/stock/item_base.html:101 +#: stock/templates/stock/item_base.html:98 msgid "Install" msgstr "" -#: stock/templates/stock/item_base.html:115 +#: stock/templates/stock/item_base.html:112 msgid "Convert to variant" msgstr "" -#: stock/templates/stock/item_base.html:118 +#: stock/templates/stock/item_base.html:115 msgid "Duplicate stock item" msgstr "" -#: stock/templates/stock/item_base.html:120 +#: stock/templates/stock/item_base.html:117 msgid "Edit stock item" msgstr "" -#: stock/templates/stock/item_base.html:123 +#: stock/templates/stock/item_base.html:120 msgid "Delete stock item" msgstr "" -#: stock/templates/stock/item_base.html:169 templates/InvenTree/search.html:139 -#: templates/js/translated/build.js:2295 templates/navbar.html:38 +#: stock/templates/stock/item_base.html:166 templates/InvenTree/search.html:139 +#: templates/js/translated/build.js:2298 templates/navbar.html:38 msgid "Build" msgstr "Bygg" -#: stock/templates/stock/item_base.html:211 +#: stock/templates/stock/item_base.html:208 msgid "No manufacturer set" msgstr "" -#: stock/templates/stock/item_base.html:251 +#: stock/templates/stock/item_base.html:248 msgid "You are not in the list of owners of this item. This stock item cannot be edited." msgstr "" -#: stock/templates/stock/item_base.html:252 -#: stock/templates/stock/location.html:146 +#: stock/templates/stock/item_base.html:249 +#: stock/templates/stock/location.html:147 msgid "Read only" msgstr "" -#: stock/templates/stock/item_base.html:265 +#: stock/templates/stock/item_base.html:262 msgid "This stock item is unavailable" msgstr "" -#: stock/templates/stock/item_base.html:271 +#: stock/templates/stock/item_base.html:268 msgid "This stock item is in production and cannot be edited." msgstr "" -#: stock/templates/stock/item_base.html:272 +#: stock/templates/stock/item_base.html:269 msgid "Edit the stock item from the build view." msgstr "" -#: stock/templates/stock/item_base.html:287 +#: stock/templates/stock/item_base.html:284 msgid "This stock item is allocated to Sales Order" msgstr "" -#: stock/templates/stock/item_base.html:295 +#: stock/templates/stock/item_base.html:292 msgid "This stock item is allocated to Build Order" msgstr "" -#: stock/templates/stock/item_base.html:311 +#: stock/templates/stock/item_base.html:308 msgid "This stock item is serialized. It has a unique serial number and the quantity cannot be adjusted" msgstr "" -#: stock/templates/stock/item_base.html:317 +#: stock/templates/stock/item_base.html:314 msgid "previous page" msgstr "föregående sida" -#: stock/templates/stock/item_base.html:317 +#: stock/templates/stock/item_base.html:314 msgid "Navigate to previous serial number" msgstr "" -#: stock/templates/stock/item_base.html:326 +#: stock/templates/stock/item_base.html:323 msgid "next page" msgstr "nästa sida" -#: stock/templates/stock/item_base.html:326 +#: stock/templates/stock/item_base.html:323 msgid "Navigate to next serial number" msgstr "" -#: stock/templates/stock/item_base.html:398 -#: templates/js/translated/build.js:2552 +#: stock/templates/stock/item_base.html:395 +#: templates/js/translated/build.js:2559 msgid "No location set" msgstr "" -#: stock/templates/stock/item_base.html:413 +#: stock/templates/stock/item_base.html:410 msgid "Tests" msgstr "" -#: stock/templates/stock/item_base.html:419 +#: stock/templates/stock/item_base.html:416 msgid "This stock item has not passed all required tests" msgstr "" -#: stock/templates/stock/item_base.html:437 +#: stock/templates/stock/item_base.html:434 #, python-format msgid "This StockItem expired on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:439 +#: stock/templates/stock/item_base.html:436 #, python-format msgid "This StockItem expires on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:455 +#: stock/templates/stock/item_base.html:452 msgid "No stocktake performed" msgstr "" -#: stock/templates/stock/item_base.html:504 -#: templates/js/translated/stock.js:2037 +#: stock/templates/stock/item_base.html:501 +#: templates/js/translated/stock.js:2038 msgid "stock item" msgstr "" -#: stock/templates/stock/item_base.html:527 +#: stock/templates/stock/item_base.html:524 msgid "Edit Stock Status" msgstr "Redigera lagerstatus" -#: stock/templates/stock/item_base.html:536 +#: stock/templates/stock/item_base.html:533 msgid "Stock Item QR Code" msgstr "" -#: stock/templates/stock/item_base.html:547 +#: stock/templates/stock/item_base.html:544 msgid "Link Barcode to Stock Item" msgstr "" -#: stock/templates/stock/item_base.html:611 +#: stock/templates/stock/item_base.html:608 msgid "Select one of the part variants listed below." msgstr "" -#: stock/templates/stock/item_base.html:614 +#: stock/templates/stock/item_base.html:611 msgid "Warning" msgstr "Varning" -#: stock/templates/stock/item_base.html:615 +#: stock/templates/stock/item_base.html:612 msgid "This action cannot be easily undone" msgstr "" -#: stock/templates/stock/item_base.html:623 +#: stock/templates/stock/item_base.html:620 msgid "Convert Stock Item" msgstr "" -#: stock/templates/stock/item_base.html:656 +#: stock/templates/stock/item_base.html:653 msgid "Return to Stock" msgstr "" @@ -10541,84 +10909,84 @@ msgstr "" msgid "Select quantity to serialize, and unique serial numbers." msgstr "" -#: stock/templates/stock/location.html:35 +#: stock/templates/stock/location.html:36 msgid "Perform stocktake for this stock location" msgstr "" -#: stock/templates/stock/location.html:42 +#: stock/templates/stock/location.html:43 msgid "Locate stock location" msgstr "" -#: stock/templates/stock/location.html:60 +#: stock/templates/stock/location.html:61 msgid "Scan stock items into this location" msgstr "" -#: stock/templates/stock/location.html:60 +#: stock/templates/stock/location.html:61 msgid "Scan In Stock Items" msgstr "" -#: stock/templates/stock/location.html:61 +#: stock/templates/stock/location.html:62 msgid "Scan stock container into this location" msgstr "" -#: stock/templates/stock/location.html:61 +#: stock/templates/stock/location.html:62 msgid "Scan In Container" msgstr "" -#: stock/templates/stock/location.html:72 +#: stock/templates/stock/location.html:73 msgid "Print Location Report" msgstr "" -#: stock/templates/stock/location.html:101 +#: stock/templates/stock/location.html:102 msgid "Location actions" msgstr "" -#: stock/templates/stock/location.html:103 +#: stock/templates/stock/location.html:104 msgid "Edit location" msgstr "" -#: stock/templates/stock/location.html:105 +#: stock/templates/stock/location.html:106 msgid "Delete location" msgstr "" -#: stock/templates/stock/location.html:135 +#: stock/templates/stock/location.html:136 msgid "Top level stock location" msgstr "" -#: stock/templates/stock/location.html:141 +#: stock/templates/stock/location.html:142 msgid "Location Owner" msgstr "" -#: stock/templates/stock/location.html:145 +#: stock/templates/stock/location.html:146 msgid "You are not in the list of owners of this location. This stock location cannot be edited." msgstr "" -#: stock/templates/stock/location.html:173 +#: stock/templates/stock/location.html:174 msgid "Location Type" msgstr "" -#: stock/templates/stock/location.html:223 +#: stock/templates/stock/location.html:224 msgid "Create new stock location" msgstr "" -#: stock/templates/stock/location.html:224 +#: stock/templates/stock/location.html:225 msgid "New Location" msgstr "" -#: stock/templates/stock/location.html:298 -#: templates/js/translated/stock.js:2657 +#: stock/templates/stock/location.html:299 +#: templates/js/translated/stock.js:2658 msgid "stock location" msgstr "" -#: stock/templates/stock/location.html:320 +#: stock/templates/stock/location.html:321 msgid "Scanned stock container into this location" msgstr "" -#: stock/templates/stock/location.html:393 +#: stock/templates/stock/location.html:394 msgid "Stock Location QR Code" msgstr "" -#: stock/templates/stock/location.html:404 +#: stock/templates/stock/location.html:405 msgid "Link Barcode to Stock Location" msgstr "" @@ -10630,10 +10998,6 @@ msgstr "Laddar..." msgid "Stock Tracking" msgstr "" -#: stock/templates/stock/stock_sidebar.html:8 -msgid "Allocations" -msgstr "" - #: templates/403.html:6 templates/403.html:12 templates/403_csrf.html:7 msgid "Permission Denied" msgstr "" @@ -11107,9 +11471,9 @@ msgid "Rate" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:81 -#: templates/js/translated/forms.js:548 templates/js/translated/helpers.js:108 +#: templates/js/translated/forms.js:548 templates/js/translated/helpers.js:109 #: templates/js/translated/part.js:395 templates/js/translated/pricing.js:629 -#: templates/js/translated/stock.js:252 users/models.py:406 +#: templates/js/translated/stock.js:252 users/models.py:408 msgid "Delete" msgstr "Radera" @@ -11130,7 +11494,7 @@ msgid "No project codes found" msgstr "Inga projektkoder hittades" #: templates/InvenTree/settings/settings_staff_js.html:158 -#: templates/js/translated/build.js:2400 +#: templates/js/translated/build.js:2403 msgid "group" msgstr "" @@ -11196,7 +11560,7 @@ msgid "Delete Location Type" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:503 -#: templates/InvenTree/settings/stock.html:38 +#: templates/InvenTree/settings/stock.html:39 msgid "New Location Type" msgstr "" @@ -11253,7 +11617,7 @@ msgstr "" msgid "Stock Settings" msgstr "" -#: templates/InvenTree/settings/stock.html:34 +#: templates/InvenTree/settings/stock.html:35 msgid "Stock Location Types" msgstr "" @@ -11280,7 +11644,7 @@ msgid "Unverified" msgstr "" #: templates/InvenTree/settings/user.html:80 -#: templates/js/translated/company.js:957 +#: templates/js/translated/company.js:958 msgid "Primary" msgstr "" @@ -11532,7 +11896,7 @@ msgid "Submit Bug Report" msgstr "" #: templates/about.html:91 templates/clip.html:4 -#: templates/js/translated/helpers.js:592 +#: templates/js/translated/helpers.js:598 msgid "copy to clipboard" msgstr "" @@ -11738,23 +12102,24 @@ msgstr "Lägg till bilaga" msgid "Barcode Identifier" msgstr "" -#: templates/base.html:103 +#: templates/base.html:102 msgid "Server Restart Required" msgstr "" -#: templates/base.html:106 +#: templates/base.html:105 msgid "A configuration option has been changed which requires a server restart" msgstr "" -#: templates/base.html:106 templates/base.html:116 +#: templates/base.html:105 templates/base.html:115 +#: templates/socialaccount/authentication_error.html:13 msgid "Contact your system administrator for further information" msgstr "" -#: templates/base.html:113 +#: templates/base.html:112 msgid "Pending Database Migrations" msgstr "" -#: templates/base.html:116 +#: templates/base.html:115 msgid "There are pending database migrations which require attention" msgstr "" @@ -11787,7 +12152,7 @@ msgid "The following parts are low on required stock" msgstr "" #: templates/email/build_order_required_stock.html:18 -#: templates/js/translated/bom.js:1674 templates/js/translated/build.js:2747 +#: templates/js/translated/bom.js:1674 templates/js/translated/build.js:2765 msgid "Required Quantity" msgstr "" @@ -11801,7 +12166,7 @@ msgid "Click on the following link to view this part" msgstr "" #: templates/email/low_stock_notification.html:18 -#: templates/js/translated/part.js:3237 +#: templates/js/translated/part.js:3253 msgid "Minimum Quantity" msgstr "" @@ -12039,7 +12404,7 @@ msgstr "" #: templates/js/translated/bom.js:189 templates/js/translated/bom.js:700 #: templates/js/translated/modals.js:75 templates/js/translated/modals.js:629 #: templates/js/translated/modals.js:757 templates/js/translated/modals.js:1065 -#: templates/js/translated/purchase_order.js:797 templates/modals.html:15 +#: templates/js/translated/purchase_order.js:780 templates/modals.html:15 #: templates/modals.html:27 templates/modals.html:39 templates/modals.html:50 msgid "Close" msgstr "Stäng" @@ -12156,7 +12521,7 @@ msgstr "" msgid "Substitutes Available" msgstr "" -#: templates/js/translated/bom.js:950 templates/js/translated/build.js:2673 +#: templates/js/translated/bom.js:950 templates/js/translated/build.js:2682 msgid "Variant stock allowed" msgstr "" @@ -12176,30 +12541,30 @@ msgstr "" msgid "No pricing available" msgstr "" -#: templates/js/translated/bom.js:1184 templates/js/translated/build.js:2812 +#: templates/js/translated/bom.js:1184 templates/js/translated/build.js:2830 msgid "External stock" msgstr "" -#: templates/js/translated/bom.js:1188 templates/js/translated/build.js:2786 -#: templates/js/translated/sales_order.js:1946 +#: templates/js/translated/bom.js:1188 templates/js/translated/build.js:2804 +#: templates/js/translated/sales_order.js:1927 msgid "No Stock Available" msgstr "" -#: templates/js/translated/bom.js:1193 templates/js/translated/build.js:2790 +#: templates/js/translated/bom.js:1193 templates/js/translated/build.js:2808 msgid "Includes variant and substitute stock" msgstr "" -#: templates/js/translated/bom.js:1195 templates/js/translated/build.js:2792 +#: templates/js/translated/bom.js:1195 templates/js/translated/build.js:2810 #: templates/js/translated/part.js:1263 -#: templates/js/translated/sales_order.js:1943 +#: templates/js/translated/sales_order.js:1924 msgid "Includes variant stock" msgstr "" -#: templates/js/translated/bom.js:1197 templates/js/translated/build.js:2794 +#: templates/js/translated/bom.js:1197 templates/js/translated/build.js:2812 msgid "Includes substitute stock" msgstr "" -#: templates/js/translated/bom.js:1225 templates/js/translated/build.js:2777 +#: templates/js/translated/bom.js:1225 templates/js/translated/build.js:2795 msgid "Consumable item" msgstr "" @@ -12231,7 +12596,7 @@ msgstr "" msgid "No BOM items found" msgstr "" -#: templates/js/translated/bom.js:1657 templates/js/translated/build.js:2658 +#: templates/js/translated/bom.js:1657 templates/js/translated/build.js:2667 msgid "Required Part" msgstr "" @@ -12243,396 +12608,396 @@ msgstr "" msgid "Edit Build Order" msgstr "" -#: templates/js/translated/build.js:191 +#: templates/js/translated/build.js:194 msgid "Create Build Order" msgstr "" -#: templates/js/translated/build.js:223 +#: templates/js/translated/build.js:226 msgid "Cancel Build Order" msgstr "" -#: templates/js/translated/build.js:232 +#: templates/js/translated/build.js:235 msgid "Are you sure you wish to cancel this build?" msgstr "" -#: templates/js/translated/build.js:238 +#: templates/js/translated/build.js:241 msgid "Stock items have been allocated to this build order" msgstr "" -#: templates/js/translated/build.js:245 +#: templates/js/translated/build.js:248 msgid "There are incomplete outputs remaining for this build order" msgstr "Det finns ofullständiga produktion kvar för den här tillverknings ordern" -#: templates/js/translated/build.js:297 +#: templates/js/translated/build.js:300 msgid "Build order is ready to be completed" msgstr "" -#: templates/js/translated/build.js:305 +#: templates/js/translated/build.js:308 msgid "This build order cannot be completed as there are incomplete outputs" msgstr "Denna tillverknings order kan inte slutföras eftersom det finns ofullständigt utfall" -#: templates/js/translated/build.js:310 +#: templates/js/translated/build.js:313 msgid "Build Order is incomplete" msgstr "" -#: templates/js/translated/build.js:328 +#: templates/js/translated/build.js:331 msgid "Complete Build Order" msgstr "" -#: templates/js/translated/build.js:369 templates/js/translated/stock.js:127 +#: templates/js/translated/build.js:372 templates/js/translated/stock.js:127 #: templates/js/translated/stock.js:301 msgid "Next available serial number" msgstr "" -#: templates/js/translated/build.js:371 templates/js/translated/stock.js:129 +#: templates/js/translated/build.js:374 templates/js/translated/stock.js:129 #: templates/js/translated/stock.js:303 msgid "Latest serial number" msgstr "" -#: templates/js/translated/build.js:380 +#: templates/js/translated/build.js:383 msgid "The Bill of Materials contains trackable parts" msgstr "" -#: templates/js/translated/build.js:381 +#: templates/js/translated/build.js:384 msgid "Build outputs must be generated individually" msgstr "Produktionerna måste genereras individuellt" -#: templates/js/translated/build.js:389 +#: templates/js/translated/build.js:392 msgid "Trackable parts can have serial numbers specified" msgstr "" -#: templates/js/translated/build.js:390 +#: templates/js/translated/build.js:393 msgid "Enter serial numbers to generate multiple single build outputs" msgstr "Ange serienummer för att generera flera enskild produktion" -#: templates/js/translated/build.js:397 +#: templates/js/translated/build.js:400 msgid "Create Build Output" msgstr "" -#: templates/js/translated/build.js:428 +#: templates/js/translated/build.js:431 msgid "Allocate stock items to this build output" msgstr "" -#: templates/js/translated/build.js:436 +#: templates/js/translated/build.js:439 msgid "Deallocate stock from build output" msgstr "" -#: templates/js/translated/build.js:445 +#: templates/js/translated/build.js:448 msgid "Complete build output" msgstr "" -#: templates/js/translated/build.js:453 +#: templates/js/translated/build.js:456 msgid "Scrap build output" msgstr "" -#: templates/js/translated/build.js:460 +#: templates/js/translated/build.js:463 msgid "Delete build output" msgstr "" -#: templates/js/translated/build.js:480 +#: templates/js/translated/build.js:483 msgid "Are you sure you wish to deallocate the selected stock items from this build?" msgstr "" -#: templates/js/translated/build.js:498 +#: templates/js/translated/build.js:501 msgid "Deallocate Stock Items" msgstr "" -#: templates/js/translated/build.js:584 templates/js/translated/build.js:711 -#: templates/js/translated/build.js:836 +#: templates/js/translated/build.js:587 templates/js/translated/build.js:714 +#: templates/js/translated/build.js:839 msgid "Select Build Outputs" msgstr "Vald produktion" -#: templates/js/translated/build.js:585 templates/js/translated/build.js:712 -#: templates/js/translated/build.js:837 +#: templates/js/translated/build.js:588 templates/js/translated/build.js:715 +#: templates/js/translated/build.js:840 msgid "At least one build output must be selected" msgstr "" -#: templates/js/translated/build.js:599 +#: templates/js/translated/build.js:602 msgid "Selected build outputs will be marked as complete" msgstr "Valda produktion markeras som färdiga" -#: templates/js/translated/build.js:603 templates/js/translated/build.js:736 -#: templates/js/translated/build.js:859 +#: templates/js/translated/build.js:606 templates/js/translated/build.js:739 +#: templates/js/translated/build.js:862 msgid "Output" msgstr "" -#: templates/js/translated/build.js:630 +#: templates/js/translated/build.js:633 msgid "Complete Build Outputs" msgstr "Slutförd produktion" -#: templates/js/translated/build.js:727 +#: templates/js/translated/build.js:730 msgid "Selected build outputs will be marked as scrapped" msgstr "Valda produktion markeras som skrotade" -#: templates/js/translated/build.js:729 +#: templates/js/translated/build.js:732 msgid "Scrapped output are marked as rejected" msgstr "" -#: templates/js/translated/build.js:730 +#: templates/js/translated/build.js:733 msgid "Allocated stock items will no longer be available" msgstr "" -#: templates/js/translated/build.js:731 +#: templates/js/translated/build.js:734 msgid "The completion status of the build order will not be adjusted" msgstr "" -#: templates/js/translated/build.js:761 +#: templates/js/translated/build.js:764 msgid "Scrap Build Outputs" msgstr "Skrota tillverkad produktion" -#: templates/js/translated/build.js:851 +#: templates/js/translated/build.js:854 msgid "Selected build outputs will be deleted" msgstr "Vald produktion kommer att raderas" -#: templates/js/translated/build.js:853 +#: templates/js/translated/build.js:856 msgid "Build output data will be permanently deleted" msgstr "" -#: templates/js/translated/build.js:854 +#: templates/js/translated/build.js:857 msgid "Allocated stock items will be returned to stock" msgstr "" -#: templates/js/translated/build.js:872 +#: templates/js/translated/build.js:875 msgid "Delete Build Outputs" msgstr "Radera produktion" -#: templates/js/translated/build.js:959 +#: templates/js/translated/build.js:962 msgid "Delete allocations" msgstr "" -#: templates/js/translated/build.js:966 +#: templates/js/translated/build.js:969 msgid "Delete Stock Allocations" msgstr "" -#: templates/js/translated/build.js:989 +#: templates/js/translated/build.js:992 msgid "No allocated stock" msgstr "" -#: templates/js/translated/build.js:1045 +#: templates/js/translated/build.js:1048 msgid "Stock item" msgstr "" -#: templates/js/translated/build.js:1070 +#: templates/js/translated/build.js:1073 msgid "Edit build allocation" msgstr "" -#: templates/js/translated/build.js:1071 +#: templates/js/translated/build.js:1074 msgid "Delete build allocation" msgstr "" -#: templates/js/translated/build.js:1089 +#: templates/js/translated/build.js:1092 msgid "Edit Build Allocation" msgstr "" -#: templates/js/translated/build.js:1102 +#: templates/js/translated/build.js:1105 msgid "Delete Build Allocation" msgstr "" -#: templates/js/translated/build.js:1133 +#: templates/js/translated/build.js:1136 msgid "No build order allocations found" msgstr "" -#: templates/js/translated/build.js:1178 +#: templates/js/translated/build.js:1181 msgid "Location not specified" msgstr "" -#: templates/js/translated/build.js:1200 +#: templates/js/translated/build.js:1203 msgid "Complete outputs" msgstr "Slutförd produktion" -#: templates/js/translated/build.js:1218 +#: templates/js/translated/build.js:1221 msgid "Scrap outputs" msgstr "Skrot utfall" -#: templates/js/translated/build.js:1236 +#: templates/js/translated/build.js:1239 msgid "Delete outputs" msgstr "Radera utfall" -#: templates/js/translated/build.js:1289 +#: templates/js/translated/build.js:1292 msgid "build output" msgstr "" -#: templates/js/translated/build.js:1290 +#: templates/js/translated/build.js:1293 msgid "build outputs" msgstr "produktion" -#: templates/js/translated/build.js:1294 +#: templates/js/translated/build.js:1297 msgid "Build output actions" msgstr "" -#: templates/js/translated/build.js:1470 +#: templates/js/translated/build.js:1473 msgid "No active build outputs found" msgstr "Inga aktiva produktioner hittades" -#: templates/js/translated/build.js:1563 +#: templates/js/translated/build.js:1566 msgid "Allocated Lines" msgstr "" -#: templates/js/translated/build.js:1577 +#: templates/js/translated/build.js:1580 msgid "Required Tests" msgstr "" -#: templates/js/translated/build.js:1749 -#: templates/js/translated/purchase_order.js:611 -#: templates/js/translated/sales_order.js:1207 +#: templates/js/translated/build.js:1752 +#: templates/js/translated/purchase_order.js:594 +#: templates/js/translated/sales_order.js:1173 msgid "Select Parts" msgstr "" -#: templates/js/translated/build.js:1750 -#: templates/js/translated/sales_order.js:1208 +#: templates/js/translated/build.js:1753 +#: templates/js/translated/sales_order.js:1174 msgid "You must select at least one part to allocate" msgstr "" -#: templates/js/translated/build.js:1813 -#: templates/js/translated/sales_order.js:1157 +#: templates/js/translated/build.js:1816 +#: templates/js/translated/sales_order.js:1123 msgid "Specify stock allocation quantity" msgstr "" -#: templates/js/translated/build.js:1890 +#: templates/js/translated/build.js:1893 msgid "All Parts Allocated" msgstr "" -#: templates/js/translated/build.js:1891 +#: templates/js/translated/build.js:1894 msgid "All selected parts have been fully allocated" msgstr "" -#: templates/js/translated/build.js:1905 -#: templates/js/translated/sales_order.js:1222 +#: templates/js/translated/build.js:1908 +#: templates/js/translated/sales_order.js:1188 msgid "Select source location (leave blank to take from all locations)" msgstr "" -#: templates/js/translated/build.js:1933 +#: templates/js/translated/build.js:1936 msgid "Allocate Stock Items to Build Order" msgstr "" -#: templates/js/translated/build.js:1944 -#: templates/js/translated/sales_order.js:1319 +#: templates/js/translated/build.js:1947 +#: templates/js/translated/sales_order.js:1285 msgid "No matching stock locations" msgstr "" -#: templates/js/translated/build.js:2017 -#: templates/js/translated/sales_order.js:1398 +#: templates/js/translated/build.js:2020 +#: templates/js/translated/sales_order.js:1364 msgid "No matching stock items" msgstr "" -#: templates/js/translated/build.js:2114 +#: templates/js/translated/build.js:2117 msgid "Automatic Stock Allocation" msgstr "" -#: templates/js/translated/build.js:2115 +#: templates/js/translated/build.js:2118 msgid "Stock items will be automatically allocated to this build order, according to the provided guidelines" msgstr "" -#: templates/js/translated/build.js:2117 +#: templates/js/translated/build.js:2120 msgid "If a location is specified, stock will only be allocated from that location" msgstr "" -#: templates/js/translated/build.js:2118 +#: templates/js/translated/build.js:2121 msgid "If stock is considered interchangeable, it will be allocated from the first location it is found" msgstr "" -#: templates/js/translated/build.js:2119 +#: templates/js/translated/build.js:2122 msgid "If substitute stock is allowed, it will be used where stock of the primary part cannot be found" msgstr "" -#: templates/js/translated/build.js:2149 +#: templates/js/translated/build.js:2152 msgid "Allocate Stock Items" msgstr "" -#: templates/js/translated/build.js:2254 +#: templates/js/translated/build.js:2257 msgid "No builds matching query" msgstr "" -#: templates/js/translated/build.js:2289 templates/js/translated/build.js:2652 +#: templates/js/translated/build.js:2292 templates/js/translated/build.js:2661 #: templates/js/translated/forms.js:2196 templates/js/translated/forms.js:2212 #: templates/js/translated/part.js:2322 templates/js/translated/part.js:2761 -#: templates/js/translated/stock.js:2068 templates/js/translated/stock.js:2795 +#: templates/js/translated/stock.js:2069 templates/js/translated/stock.js:2796 msgid "Select" msgstr "" -#: templates/js/translated/build.js:2303 +#: templates/js/translated/build.js:2306 msgid "Build order is overdue" msgstr "" -#: templates/js/translated/build.js:2385 templates/js/translated/stock.js:3126 +#: templates/js/translated/build.js:2388 templates/js/translated/stock.js:3127 msgid "No user information" msgstr "" -#: templates/js/translated/build.js:2561 -#: templates/js/translated/sales_order.js:1682 +#: templates/js/translated/build.js:2568 +#: templates/js/translated/sales_order.js:1663 msgid "Edit stock allocation" msgstr "" -#: templates/js/translated/build.js:2562 -#: templates/js/translated/sales_order.js:1683 +#: templates/js/translated/build.js:2569 +#: templates/js/translated/sales_order.js:1664 msgid "Delete stock allocation" msgstr "" -#: templates/js/translated/build.js:2577 +#: templates/js/translated/build.js:2584 msgid "Edit Allocation" msgstr "" -#: templates/js/translated/build.js:2589 +#: templates/js/translated/build.js:2596 msgid "Remove Allocation" msgstr "" -#: templates/js/translated/build.js:2628 +#: templates/js/translated/build.js:2636 msgid "build line" msgstr "" -#: templates/js/translated/build.js:2629 +#: templates/js/translated/build.js:2637 msgid "build lines" msgstr "" -#: templates/js/translated/build.js:2647 +#: templates/js/translated/build.js:2656 msgid "No build lines found" msgstr "" -#: templates/js/translated/build.js:2677 templates/js/translated/part.js:793 +#: templates/js/translated/build.js:2686 templates/js/translated/part.js:793 #: templates/js/translated/part.js:1209 msgid "Trackable part" msgstr "" -#: templates/js/translated/build.js:2720 +#: templates/js/translated/build.js:2729 msgid "Gets Inherited" msgstr "" -#: templates/js/translated/build.js:2730 +#: templates/js/translated/build.js:2748 msgid "Unit Quantity" msgstr "" -#: templates/js/translated/build.js:2782 -#: templates/js/translated/sales_order.js:1951 +#: templates/js/translated/build.js:2800 +#: templates/js/translated/sales_order.js:1932 msgid "Sufficient stock available" msgstr "" -#: templates/js/translated/build.js:2837 +#: templates/js/translated/build.js:2855 msgid "Consumable Item" msgstr "" -#: templates/js/translated/build.js:2844 +#: templates/js/translated/build.js:2862 msgid "Tracked item" msgstr "" -#: templates/js/translated/build.js:2845 +#: templates/js/translated/build.js:2863 msgid "Allocate tracked items against individual build outputs" msgstr "Tilldela spårade artiklar mot individuella produkter" -#: templates/js/translated/build.js:2853 -#: templates/js/translated/sales_order.js:2052 +#: templates/js/translated/build.js:2871 +#: templates/js/translated/sales_order.js:2033 msgid "Build stock" msgstr "" -#: templates/js/translated/build.js:2858 templates/js/translated/stock.js:1953 +#: templates/js/translated/build.js:2876 templates/js/translated/stock.js:1954 msgid "Order stock" msgstr "" -#: templates/js/translated/build.js:2862 -#: templates/js/translated/sales_order.js:2046 +#: templates/js/translated/build.js:2880 +#: templates/js/translated/sales_order.js:2027 msgid "Allocate stock" msgstr "" -#: templates/js/translated/build.js:2866 +#: templates/js/translated/build.js:2884 msgid "Remove stock allocation" msgstr "" @@ -12641,7 +13006,7 @@ msgid "Add Manufacturer" msgstr "" #: templates/js/translated/company.js:111 -#: templates/js/translated/company.js:213 +#: templates/js/translated/company.js:214 msgid "Add Manufacturer Part" msgstr "" @@ -12649,231 +13014,231 @@ msgstr "" msgid "Edit Manufacturer Part" msgstr "" -#: templates/js/translated/company.js:201 +#: templates/js/translated/company.js:202 #: templates/js/translated/purchase_order.js:93 msgid "Add Supplier" msgstr "" -#: templates/js/translated/company.js:243 -#: templates/js/translated/purchase_order.js:318 +#: templates/js/translated/company.js:244 +#: templates/js/translated/purchase_order.js:301 msgid "Add Supplier Part" msgstr "" -#: templates/js/translated/company.js:344 +#: templates/js/translated/company.js:345 msgid "All selected supplier parts will be deleted" msgstr "" -#: templates/js/translated/company.js:360 +#: templates/js/translated/company.js:361 msgid "Delete Supplier Parts" msgstr "" -#: templates/js/translated/company.js:466 +#: templates/js/translated/company.js:467 msgid "Add new Company" msgstr "Lägg till nytt företag" -#: templates/js/translated/company.js:546 +#: templates/js/translated/company.js:547 msgid "Parts Supplied" msgstr "" -#: templates/js/translated/company.js:555 +#: templates/js/translated/company.js:556 msgid "Parts Manufactured" msgstr "" -#: templates/js/translated/company.js:570 +#: templates/js/translated/company.js:571 msgid "No company information found" msgstr "" -#: templates/js/translated/company.js:619 +#: templates/js/translated/company.js:620 msgid "Create New Contact" msgstr "Skapa ny kontakt" -#: templates/js/translated/company.js:635 -#: templates/js/translated/company.js:758 +#: templates/js/translated/company.js:636 +#: templates/js/translated/company.js:759 msgid "Edit Contact" msgstr "Redigera kontakt" -#: templates/js/translated/company.js:672 +#: templates/js/translated/company.js:673 msgid "All selected contacts will be deleted" msgstr "" -#: templates/js/translated/company.js:678 -#: templates/js/translated/company.js:742 +#: templates/js/translated/company.js:679 +#: templates/js/translated/company.js:743 msgid "Role" msgstr "Roll" -#: templates/js/translated/company.js:686 +#: templates/js/translated/company.js:687 msgid "Delete Contacts" msgstr "Radera kontakter" -#: templates/js/translated/company.js:717 +#: templates/js/translated/company.js:718 msgid "No contacts found" msgstr "Inga kontakter hittades" -#: templates/js/translated/company.js:730 +#: templates/js/translated/company.js:731 msgid "Phone Number" msgstr "Telefonnummer" -#: templates/js/translated/company.js:736 +#: templates/js/translated/company.js:737 msgid "Email Address" msgstr "E-postadress" -#: templates/js/translated/company.js:762 +#: templates/js/translated/company.js:763 msgid "Delete Contact" msgstr "Radera kontakt" -#: templates/js/translated/company.js:859 +#: templates/js/translated/company.js:860 msgid "Create New Address" msgstr "Skapa ny adress" -#: templates/js/translated/company.js:874 -#: templates/js/translated/company.js:1035 +#: templates/js/translated/company.js:875 +#: templates/js/translated/company.js:1036 msgid "Edit Address" msgstr "Redigera adress" -#: templates/js/translated/company.js:909 +#: templates/js/translated/company.js:910 msgid "All selected addresses will be deleted" msgstr "" -#: templates/js/translated/company.js:923 +#: templates/js/translated/company.js:924 msgid "Delete Addresses" msgstr "Radera adresser" -#: templates/js/translated/company.js:950 +#: templates/js/translated/company.js:951 msgid "No addresses found" msgstr "Inga adresser hittades" -#: templates/js/translated/company.js:989 +#: templates/js/translated/company.js:990 msgid "Postal city" msgstr "" -#: templates/js/translated/company.js:995 +#: templates/js/translated/company.js:996 msgid "State/province" msgstr "" -#: templates/js/translated/company.js:1007 +#: templates/js/translated/company.js:1008 msgid "Courier notes" msgstr "" -#: templates/js/translated/company.js:1013 +#: templates/js/translated/company.js:1014 msgid "Internal notes" msgstr "" -#: templates/js/translated/company.js:1039 +#: templates/js/translated/company.js:1040 msgid "Delete Address" msgstr "Radera adress" -#: templates/js/translated/company.js:1112 +#: templates/js/translated/company.js:1113 msgid "All selected manufacturer parts will be deleted" msgstr "" -#: templates/js/translated/company.js:1127 +#: templates/js/translated/company.js:1128 msgid "Delete Manufacturer Parts" msgstr "" -#: templates/js/translated/company.js:1161 +#: templates/js/translated/company.js:1162 msgid "All selected parameters will be deleted" msgstr "" -#: templates/js/translated/company.js:1175 +#: templates/js/translated/company.js:1176 msgid "Delete Parameters" msgstr "" -#: templates/js/translated/company.js:1191 -#: templates/js/translated/company.js:1479 templates/js/translated/part.js:2250 +#: templates/js/translated/company.js:1192 +#: templates/js/translated/company.js:1480 templates/js/translated/part.js:2250 msgid "Order parts" msgstr "" -#: templates/js/translated/company.js:1208 +#: templates/js/translated/company.js:1209 msgid "Delete manufacturer parts" msgstr "" -#: templates/js/translated/company.js:1240 +#: templates/js/translated/company.js:1241 msgid "Manufacturer part actions" msgstr "" -#: templates/js/translated/company.js:1259 +#: templates/js/translated/company.js:1260 msgid "No manufacturer parts found" msgstr "" -#: templates/js/translated/company.js:1279 -#: templates/js/translated/company.js:1567 templates/js/translated/part.js:801 +#: templates/js/translated/company.js:1280 +#: templates/js/translated/company.js:1568 templates/js/translated/part.js:801 #: templates/js/translated/part.js:1217 msgid "Template part" msgstr "" -#: templates/js/translated/company.js:1283 -#: templates/js/translated/company.js:1571 templates/js/translated/part.js:805 +#: templates/js/translated/company.js:1284 +#: templates/js/translated/company.js:1572 templates/js/translated/part.js:805 #: templates/js/translated/part.js:1221 msgid "Assembled part" msgstr "" -#: templates/js/translated/company.js:1403 templates/js/translated/part.js:1471 +#: templates/js/translated/company.js:1404 templates/js/translated/part.js:1471 msgid "No parameters found" msgstr "" -#: templates/js/translated/company.js:1438 templates/js/translated/part.js:1534 +#: templates/js/translated/company.js:1439 templates/js/translated/part.js:1534 msgid "Edit parameter" msgstr "" -#: templates/js/translated/company.js:1439 templates/js/translated/part.js:1535 +#: templates/js/translated/company.js:1440 templates/js/translated/part.js:1535 msgid "Delete parameter" msgstr "" -#: templates/js/translated/company.js:1456 templates/js/translated/part.js:1440 +#: templates/js/translated/company.js:1457 templates/js/translated/part.js:1440 msgid "Edit Parameter" msgstr "" -#: templates/js/translated/company.js:1465 templates/js/translated/part.js:1556 +#: templates/js/translated/company.js:1466 templates/js/translated/part.js:1556 msgid "Delete Parameter" msgstr "" -#: templates/js/translated/company.js:1496 +#: templates/js/translated/company.js:1497 msgid "Delete supplier parts" msgstr "" -#: templates/js/translated/company.js:1546 +#: templates/js/translated/company.js:1547 msgid "No supplier parts found" msgstr "" -#: templates/js/translated/company.js:1664 +#: templates/js/translated/company.js:1665 msgid "Base Units" msgstr "" -#: templates/js/translated/company.js:1694 +#: templates/js/translated/company.js:1695 msgid "Availability" msgstr "" -#: templates/js/translated/company.js:1725 +#: templates/js/translated/company.js:1726 msgid "Edit supplier part" msgstr "" -#: templates/js/translated/company.js:1726 +#: templates/js/translated/company.js:1727 msgid "Delete supplier part" msgstr "" -#: templates/js/translated/company.js:1779 +#: templates/js/translated/company.js:1780 #: templates/js/translated/pricing.js:694 msgid "Delete Price Break" msgstr "" -#: templates/js/translated/company.js:1789 +#: templates/js/translated/company.js:1790 #: templates/js/translated/pricing.js:712 msgid "Edit Price Break" msgstr "" -#: templates/js/translated/company.js:1804 +#: templates/js/translated/company.js:1805 msgid "No price break information found" msgstr "" -#: templates/js/translated/company.js:1833 +#: templates/js/translated/company.js:1834 msgid "Last updated" msgstr "" -#: templates/js/translated/company.js:1840 +#: templates/js/translated/company.js:1841 msgid "Edit price break" msgstr "" -#: templates/js/translated/company.js:1841 +#: templates/js/translated/company.js:1842 msgid "Delete price break" msgstr "" @@ -12977,19 +13342,19 @@ msgstr "" msgid "Select Columns" msgstr "" -#: templates/js/translated/helpers.js:80 +#: templates/js/translated/helpers.js:81 msgid "YES" msgstr "JA" -#: templates/js/translated/helpers.js:83 +#: templates/js/translated/helpers.js:84 msgid "NO" msgstr "NEJ" -#: templates/js/translated/helpers.js:96 +#: templates/js/translated/helpers.js:97 msgid "True" msgstr "" -#: templates/js/translated/helpers.js:97 +#: templates/js/translated/helpers.js:98 msgid "False" msgstr "" @@ -13131,7 +13496,7 @@ msgid "Delete Line" msgstr "" #: templates/js/translated/order.js:306 -#: templates/js/translated/purchase_order.js:2060 +#: templates/js/translated/purchase_order.js:2044 msgid "No line items found" msgstr "" @@ -13366,19 +13731,19 @@ msgid "Delete Part Parameter Template" msgstr "" #: templates/js/translated/part.js:1723 -#: templates/js/translated/purchase_order.js:1724 +#: templates/js/translated/purchase_order.js:1708 msgid "No purchase orders found" msgstr "" #: templates/js/translated/part.js:1867 -#: templates/js/translated/purchase_order.js:2223 +#: templates/js/translated/purchase_order.js:2207 #: templates/js/translated/return_order.js:754 -#: templates/js/translated/sales_order.js:1911 +#: templates/js/translated/sales_order.js:1892 msgid "This line item is overdue" msgstr "" #: templates/js/translated/part.js:1913 -#: templates/js/translated/purchase_order.js:2290 +#: templates/js/translated/purchase_order.js:2274 msgid "Receive line item" msgstr "" @@ -13419,7 +13784,7 @@ msgid "No category" msgstr "Ingen kategori" #: templates/js/translated/part.js:2550 templates/js/translated/part.js:2680 -#: templates/js/translated/stock.js:2754 +#: templates/js/translated/stock.js:2755 msgid "Display as list" msgstr "Visa som lista" @@ -13431,7 +13796,7 @@ msgstr "" msgid "No subcategories found" msgstr "Inga underkategorier hittades" -#: templates/js/translated/part.js:2700 templates/js/translated/stock.js:2774 +#: templates/js/translated/part.js:2700 templates/js/translated/stock.js:2775 msgid "Display as tree" msgstr "" @@ -13483,23 +13848,23 @@ msgstr "" msgid "Speculative" msgstr "" -#: templates/js/translated/part.js:3128 +#: templates/js/translated/part.js:3144 msgid "No scheduling information available for this part" msgstr "" -#: templates/js/translated/part.js:3134 +#: templates/js/translated/part.js:3150 msgid "Error fetching scheduling information for this part" msgstr "" -#: templates/js/translated/part.js:3230 +#: templates/js/translated/part.js:3246 msgid "Scheduled Stock Quantities" msgstr "" -#: templates/js/translated/part.js:3246 +#: templates/js/translated/part.js:3262 msgid "Maximum Quantity" msgstr "" -#: templates/js/translated/part.js:3291 +#: templates/js/translated/part.js:3307 msgid "Minimum Stock Level" msgstr "" @@ -13575,267 +13940,243 @@ msgstr "" msgid "Purchase Price History" msgstr "" -#: templates/js/translated/pricing.js:894 +#: templates/js/translated/pricing.js:892 msgid "No sales history data available" msgstr "" -#: templates/js/translated/pricing.js:916 +#: templates/js/translated/pricing.js:914 msgid "Sale Price History" msgstr "" -#: templates/js/translated/pricing.js:1005 +#: templates/js/translated/pricing.js:1003 msgid "No variant data available" msgstr "" -#: templates/js/translated/pricing.js:1045 +#: templates/js/translated/pricing.js:1043 msgid "Variant Part" msgstr "" -#: templates/js/translated/purchase_order.js:169 -msgid "Select purchase order to duplicate" -msgstr "" - -#: templates/js/translated/purchase_order.js:176 -msgid "Duplicate Line Items" -msgstr "" - -#: templates/js/translated/purchase_order.js:177 -msgid "Duplicate all line items from the selected order" -msgstr "" - -#: templates/js/translated/purchase_order.js:184 -msgid "Duplicate Extra Lines" -msgstr "" - -#: templates/js/translated/purchase_order.js:185 -msgid "Duplicate extra line items from the selected order" -msgstr "" - -#: templates/js/translated/purchase_order.js:206 +#: templates/js/translated/purchase_order.js:188 msgid "Edit Purchase Order" msgstr "" -#: templates/js/translated/purchase_order.js:223 +#: templates/js/translated/purchase_order.js:205 msgid "Duplication Options" msgstr "" -#: templates/js/translated/purchase_order.js:431 +#: templates/js/translated/purchase_order.js:414 msgid "Complete Purchase Order" msgstr "" -#: templates/js/translated/purchase_order.js:448 +#: templates/js/translated/purchase_order.js:431 #: templates/js/translated/return_order.js:210 -#: templates/js/translated/sales_order.js:552 +#: templates/js/translated/sales_order.js:511 msgid "Mark this order as complete?" msgstr "" -#: templates/js/translated/purchase_order.js:454 +#: templates/js/translated/purchase_order.js:437 msgid "All line items have been received" msgstr "" -#: templates/js/translated/purchase_order.js:459 +#: templates/js/translated/purchase_order.js:442 msgid "This order has line items which have not been marked as received." msgstr "" -#: templates/js/translated/purchase_order.js:460 +#: templates/js/translated/purchase_order.js:443 msgid "Completing this order means that the order and line items will no longer be editable." msgstr "" -#: templates/js/translated/purchase_order.js:483 +#: templates/js/translated/purchase_order.js:466 msgid "Cancel Purchase Order" msgstr "" -#: templates/js/translated/purchase_order.js:488 +#: templates/js/translated/purchase_order.js:471 msgid "Are you sure you wish to cancel this purchase order?" msgstr "" -#: templates/js/translated/purchase_order.js:494 +#: templates/js/translated/purchase_order.js:477 msgid "This purchase order can not be cancelled" msgstr "" -#: templates/js/translated/purchase_order.js:515 +#: templates/js/translated/purchase_order.js:498 #: templates/js/translated/return_order.js:164 msgid "After placing this order, line items will no longer be editable." msgstr "" -#: templates/js/translated/purchase_order.js:520 +#: templates/js/translated/purchase_order.js:503 msgid "Issue Purchase Order" msgstr "" -#: templates/js/translated/purchase_order.js:612 +#: templates/js/translated/purchase_order.js:595 msgid "At least one purchaseable part must be selected" msgstr "" -#: templates/js/translated/purchase_order.js:637 +#: templates/js/translated/purchase_order.js:620 msgid "Quantity to order" msgstr "" -#: templates/js/translated/purchase_order.js:646 +#: templates/js/translated/purchase_order.js:629 msgid "New supplier part" msgstr "" -#: templates/js/translated/purchase_order.js:664 +#: templates/js/translated/purchase_order.js:647 msgid "New purchase order" msgstr "" -#: templates/js/translated/purchase_order.js:705 +#: templates/js/translated/purchase_order.js:688 msgid "Add to purchase order" msgstr "" -#: templates/js/translated/purchase_order.js:755 +#: templates/js/translated/purchase_order.js:738 msgid "Merge" msgstr "" -#: templates/js/translated/purchase_order.js:859 +#: templates/js/translated/purchase_order.js:842 msgid "No matching supplier parts" msgstr "" -#: templates/js/translated/purchase_order.js:878 +#: templates/js/translated/purchase_order.js:861 msgid "No matching purchase orders" msgstr "" -#: templates/js/translated/purchase_order.js:1073 +#: templates/js/translated/purchase_order.js:1056 #: templates/js/translated/return_order.js:490 msgid "Select Line Items" msgstr "" -#: templates/js/translated/purchase_order.js:1074 +#: templates/js/translated/purchase_order.js:1057 #: templates/js/translated/return_order.js:491 msgid "At least one line item must be selected" msgstr "" -#: templates/js/translated/purchase_order.js:1104 +#: templates/js/translated/purchase_order.js:1087 msgid "Received Quantity" msgstr "" -#: templates/js/translated/purchase_order.js:1115 +#: templates/js/translated/purchase_order.js:1098 msgid "Quantity to receive" msgstr "" -#: templates/js/translated/purchase_order.js:1170 +#: templates/js/translated/purchase_order.js:1153 #: templates/js/translated/stock.js:1215 msgid "Specify packaging for incoming stock items" msgstr "" -#: templates/js/translated/purchase_order.js:1223 +#: templates/js/translated/purchase_order.js:1206 msgid "Stock Status" msgstr "Lagerstatus" -#: templates/js/translated/purchase_order.js:1237 +#: templates/js/translated/purchase_order.js:1220 msgid "Add barcode" msgstr "Lägg till streckkod" -#: templates/js/translated/purchase_order.js:1238 +#: templates/js/translated/purchase_order.js:1221 msgid "Remove barcode" msgstr "" -#: templates/js/translated/purchase_order.js:1241 +#: templates/js/translated/purchase_order.js:1224 msgid "Specify location" msgstr "" -#: templates/js/translated/purchase_order.js:1249 +#: templates/js/translated/purchase_order.js:1232 msgid "Add batch code" msgstr "" -#: templates/js/translated/purchase_order.js:1259 +#: templates/js/translated/purchase_order.js:1242 msgid "Specify packaging" msgstr "" -#: templates/js/translated/purchase_order.js:1270 +#: templates/js/translated/purchase_order.js:1253 msgid "Add serial numbers" msgstr "" -#: templates/js/translated/purchase_order.js:1281 +#: templates/js/translated/purchase_order.js:1264 msgid "Add note" msgstr "" -#: templates/js/translated/purchase_order.js:1338 +#: templates/js/translated/purchase_order.js:1321 msgid "Serials" msgstr "" -#: templates/js/translated/purchase_order.js:1368 +#: templates/js/translated/purchase_order.js:1351 msgid "Order Code" msgstr "" -#: templates/js/translated/purchase_order.js:1370 +#: templates/js/translated/purchase_order.js:1353 msgid "Quantity to Receive" msgstr "" -#: templates/js/translated/purchase_order.js:1395 +#: templates/js/translated/purchase_order.js:1379 #: templates/js/translated/return_order.js:559 msgid "Confirm receipt of items" msgstr "" -#: templates/js/translated/purchase_order.js:1396 +#: templates/js/translated/purchase_order.js:1380 msgid "Receive Purchase Order Items" msgstr "" -#: templates/js/translated/purchase_order.js:1464 +#: templates/js/translated/purchase_order.js:1448 msgid "Scan Item Barcode" msgstr "" -#: templates/js/translated/purchase_order.js:1465 +#: templates/js/translated/purchase_order.js:1449 msgid "Scan barcode on incoming item (must not match any existing stock items)" msgstr "" -#: templates/js/translated/purchase_order.js:1479 +#: templates/js/translated/purchase_order.js:1463 msgid "Invalid barcode data" msgstr "" -#: templates/js/translated/purchase_order.js:1751 +#: templates/js/translated/purchase_order.js:1735 #: templates/js/translated/return_order.js:285 -#: templates/js/translated/sales_order.js:810 -#: templates/js/translated/sales_order.js:1034 +#: templates/js/translated/sales_order.js:769 +#: templates/js/translated/sales_order.js:1007 msgid "Order is overdue" msgstr "" -#: templates/js/translated/purchase_order.js:1913 +#: templates/js/translated/purchase_order.js:1897 msgid "All selected Line items will be deleted" msgstr "" -#: templates/js/translated/purchase_order.js:1931 +#: templates/js/translated/purchase_order.js:1915 msgid "Delete selected Line items?" msgstr "" -#: templates/js/translated/purchase_order.js:1986 -#: templates/js/translated/sales_order.js:2106 +#: templates/js/translated/purchase_order.js:1970 +#: templates/js/translated/sales_order.js:2087 msgid "Duplicate Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2001 +#: templates/js/translated/purchase_order.js:1985 #: templates/js/translated/return_order.js:475 #: templates/js/translated/return_order.js:667 -#: templates/js/translated/sales_order.js:2119 +#: templates/js/translated/sales_order.js:2100 msgid "Edit Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2012 +#: templates/js/translated/purchase_order.js:1996 #: templates/js/translated/return_order.js:680 -#: templates/js/translated/sales_order.js:2130 +#: templates/js/translated/sales_order.js:2111 msgid "Delete Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2294 -#: templates/js/translated/sales_order.js:2060 +#: templates/js/translated/purchase_order.js:2278 +#: templates/js/translated/sales_order.js:2041 msgid "Duplicate line item" msgstr "" -#: templates/js/translated/purchase_order.js:2295 +#: templates/js/translated/purchase_order.js:2279 #: templates/js/translated/return_order.js:799 -#: templates/js/translated/sales_order.js:2061 +#: templates/js/translated/sales_order.js:2042 msgid "Edit line item" msgstr "" -#: templates/js/translated/purchase_order.js:2296 +#: templates/js/translated/purchase_order.js:2280 #: templates/js/translated/return_order.js:803 -#: templates/js/translated/sales_order.js:2067 +#: templates/js/translated/sales_order.js:2048 msgid "Delete line item" msgstr "" -#: templates/js/translated/report.js:49 -msgid "Print Report" -msgstr "" - #: templates/js/translated/report.js:68 msgid "Report print successful" msgstr "" @@ -13878,7 +14219,7 @@ msgid "No return orders found" msgstr "" #: templates/js/translated/return_order.js:299 -#: templates/js/translated/sales_order.js:824 +#: templates/js/translated/sales_order.js:783 msgid "Invalid Customer" msgstr "Ogiltig kund" @@ -13887,7 +14228,7 @@ msgid "Receive Return Order Items" msgstr "" #: templates/js/translated/return_order.js:691 -#: templates/js/translated/sales_order.js:2267 +#: templates/js/translated/sales_order.js:2248 msgid "No matching line items" msgstr "" @@ -13903,188 +14244,181 @@ msgstr "" msgid "Edit Sales Order" msgstr "" -#: templates/js/translated/sales_order.js:291 +#: templates/js/translated/sales_order.js:288 msgid "No stock items have been allocated to this shipment" msgstr "" -#: templates/js/translated/sales_order.js:296 -msgid "The following stock items will be shipped" -msgstr "" - -#: templates/js/translated/sales_order.js:336 +#: templates/js/translated/sales_order.js:294 msgid "Complete Shipment" msgstr "" -#: templates/js/translated/sales_order.js:360 +#: templates/js/translated/sales_order.js:318 msgid "Confirm Shipment" msgstr "" -#: templates/js/translated/sales_order.js:416 +#: templates/js/translated/sales_order.js:375 msgid "No pending shipments found" msgstr "" -#: templates/js/translated/sales_order.js:420 +#: templates/js/translated/sales_order.js:379 msgid "No stock items have been allocated to pending shipments" msgstr "" -#: templates/js/translated/sales_order.js:430 +#: templates/js/translated/sales_order.js:389 msgid "Complete Shipments" msgstr "" -#: templates/js/translated/sales_order.js:452 +#: templates/js/translated/sales_order.js:411 msgid "Skip" msgstr "" -#: templates/js/translated/sales_order.js:484 +#: templates/js/translated/sales_order.js:443 msgid "Ship Sales Order" msgstr "" -#: templates/js/translated/sales_order.js:500 +#: templates/js/translated/sales_order.js:459 msgid "Ship this order?" msgstr "" -#: templates/js/translated/sales_order.js:506 +#: templates/js/translated/sales_order.js:465 msgid "Order cannot be shipped as there are incomplete shipments" msgstr "" -#: templates/js/translated/sales_order.js:513 +#: templates/js/translated/sales_order.js:472 msgid "This order has line items which have not been completed." msgstr "" -#: templates/js/translated/sales_order.js:514 +#: templates/js/translated/sales_order.js:473 msgid "Shipping this order means that the order and line items will no longer be editable." msgstr "" -#: templates/js/translated/sales_order.js:572 +#: templates/js/translated/sales_order.js:531 msgid "Issue this Sales Order?" msgstr "" -#: templates/js/translated/sales_order.js:577 +#: templates/js/translated/sales_order.js:536 msgid "Issue Sales Order" msgstr "" -#: templates/js/translated/sales_order.js:596 +#: templates/js/translated/sales_order.js:555 msgid "Cancel Sales Order" msgstr "" -#: templates/js/translated/sales_order.js:601 +#: templates/js/translated/sales_order.js:560 msgid "Cancelling this order means that the order will no longer be editable." msgstr "" -#: templates/js/translated/sales_order.js:655 +#: templates/js/translated/sales_order.js:614 msgid "Create New Shipment" msgstr "" -#: templates/js/translated/sales_order.js:764 +#: templates/js/translated/sales_order.js:723 msgid "No sales orders found" msgstr "" -#: templates/js/translated/sales_order.js:944 +#: templates/js/translated/sales_order.js:907 msgid "Edit shipment" msgstr "" -#: templates/js/translated/sales_order.js:947 +#: templates/js/translated/sales_order.js:910 msgid "Complete shipment" msgstr "" -#: templates/js/translated/sales_order.js:952 +#: templates/js/translated/sales_order.js:915 msgid "Delete shipment" msgstr "" -#: templates/js/translated/sales_order.js:969 +#: templates/js/translated/sales_order.js:932 msgid "Edit Shipment" msgstr "" -#: templates/js/translated/sales_order.js:984 +#: templates/js/translated/sales_order.js:947 msgid "Delete Shipment" msgstr "" -#: templates/js/translated/sales_order.js:1017 +#: templates/js/translated/sales_order.js:989 msgid "No matching shipments found" msgstr "" -#: templates/js/translated/sales_order.js:1042 +#: templates/js/translated/sales_order.js:1015 msgid "Shipment Reference" msgstr "" -#: templates/js/translated/sales_order.js:1066 -#: templates/js/translated/sales_order.js:1565 +#: templates/js/translated/sales_order.js:1032 +#: templates/js/translated/sales_order.js:1531 msgid "Not shipped" msgstr "" -#: templates/js/translated/sales_order.js:1084 +#: templates/js/translated/sales_order.js:1050 msgid "Tracking" msgstr "" -#: templates/js/translated/sales_order.js:1088 +#: templates/js/translated/sales_order.js:1054 msgid "Invoice" msgstr "Faktura" -#: templates/js/translated/sales_order.js:1255 +#: templates/js/translated/sales_order.js:1221 msgid "Add Shipment" msgstr "" -#: templates/js/translated/sales_order.js:1306 +#: templates/js/translated/sales_order.js:1272 msgid "Confirm stock allocation" msgstr "" -#: templates/js/translated/sales_order.js:1307 +#: templates/js/translated/sales_order.js:1273 msgid "Allocate Stock Items to Sales Order" msgstr "" -#: templates/js/translated/sales_order.js:1513 +#: templates/js/translated/sales_order.js:1479 msgid "No sales order allocations found" msgstr "" -#: templates/js/translated/sales_order.js:1605 +#: templates/js/translated/sales_order.js:1571 msgid "Edit Stock Allocation" msgstr "" -#: templates/js/translated/sales_order.js:1619 +#: templates/js/translated/sales_order.js:1585 msgid "Confirm Delete Operation" msgstr "" -#: templates/js/translated/sales_order.js:1620 +#: templates/js/translated/sales_order.js:1586 msgid "Delete Stock Allocation" msgstr "" -#: templates/js/translated/sales_order.js:1659 -#: templates/js/translated/sales_order.js:1746 +#: templates/js/translated/sales_order.js:1640 +#: templates/js/translated/sales_order.js:1727 #: templates/js/translated/stock.js:1861 msgid "Shipped to customer" msgstr "" -#: templates/js/translated/sales_order.js:1667 -#: templates/js/translated/sales_order.js:1755 +#: templates/js/translated/sales_order.js:1648 +#: templates/js/translated/sales_order.js:1736 msgid "Stock location not specified" msgstr "" -#: templates/js/translated/sales_order.js:2044 -msgid "Allocate serial numbers" -msgstr "" - -#: templates/js/translated/sales_order.js:2048 -msgid "Purchase stock" -msgstr "" - -#: templates/js/translated/sales_order.js:2057 -#: templates/js/translated/sales_order.js:2245 -msgid "Calculate price" -msgstr "" - -#: templates/js/translated/sales_order.js:2071 -msgid "Cannot be deleted as items have been shipped" -msgstr "" - -#: templates/js/translated/sales_order.js:2074 -msgid "Cannot be deleted as items have been allocated" -msgstr "" - -#: templates/js/translated/sales_order.js:2145 +#: templates/js/translated/sales_order.js:2025 +#: templates/js/translated/sales_order.js:2126 msgid "Allocate Serial Numbers" msgstr "" -#: templates/js/translated/sales_order.js:2253 +#: templates/js/translated/sales_order.js:2029 +msgid "Purchase stock" +msgstr "" + +#: templates/js/translated/sales_order.js:2038 +#: templates/js/translated/sales_order.js:2226 +msgid "Calculate price" +msgstr "" + +#: templates/js/translated/sales_order.js:2052 +msgid "Cannot be deleted as items have been shipped" +msgstr "" + +#: templates/js/translated/sales_order.js:2055 +msgid "Cannot be deleted as items have been allocated" +msgstr "" + +#: templates/js/translated/sales_order.js:2234 msgid "Update Unit Price" msgstr "" @@ -14209,13 +14543,10 @@ msgid "Find Serial Number" msgstr "" #: templates/js/translated/stock.js:603 templates/js/translated/stock.js:604 +#: templates/js/translated/stock.js:620 msgid "Enter serial number" msgstr "Ange serienummer" -#: templates/js/translated/stock.js:620 -msgid "Enter a serial number" -msgstr "" - #: templates/js/translated/stock.js:640 msgid "No matching serial number" msgstr "" @@ -14284,7 +14615,7 @@ msgstr "" msgid "Add Stock" msgstr "" -#: templates/js/translated/stock.js:1049 users/models.py:396 +#: templates/js/translated/stock.js:1049 users/models.py:398 msgid "Add" msgstr "Lägg till" @@ -14308,7 +14639,7 @@ msgstr "" msgid "Adjust packaging" msgstr "" -#: templates/js/translated/stock.js:1256 templates/js/translated/stock.js:3382 +#: templates/js/translated/stock.js:1256 templates/js/translated/stock.js:3383 msgid "Select Stock Items" msgstr "" @@ -14320,18 +14651,6 @@ msgstr "" msgid "Confirm stock adjustment" msgstr "" -#: templates/js/translated/stock.js:1448 -msgid "PASS" -msgstr "" - -#: templates/js/translated/stock.js:1450 -msgid "FAIL" -msgstr "" - -#: templates/js/translated/stock.js:1455 -msgid "NO RESULT" -msgstr "" - #: templates/js/translated/stock.js:1535 msgid "Pass test" msgstr "" @@ -14388,216 +14707,216 @@ msgstr "" msgid "No stock location set" msgstr "" -#: templates/js/translated/stock.js:1927 +#: templates/js/translated/stock.js:1928 msgid "Change stock status" msgstr "" -#: templates/js/translated/stock.js:1936 +#: templates/js/translated/stock.js:1937 msgid "Merge stock" msgstr "" -#: templates/js/translated/stock.js:1985 +#: templates/js/translated/stock.js:1986 msgid "Delete stock" msgstr "" -#: templates/js/translated/stock.js:2038 +#: templates/js/translated/stock.js:2039 msgid "stock items" msgstr "" -#: templates/js/translated/stock.js:2043 +#: templates/js/translated/stock.js:2044 msgid "Scan to location" msgstr "" -#: templates/js/translated/stock.js:2054 +#: templates/js/translated/stock.js:2055 msgid "Stock Actions" msgstr "" -#: templates/js/translated/stock.js:2098 +#: templates/js/translated/stock.js:2099 msgid "Load installed items" msgstr "" -#: templates/js/translated/stock.js:2176 +#: templates/js/translated/stock.js:2177 msgid "Stock item is in production" msgstr "" -#: templates/js/translated/stock.js:2181 +#: templates/js/translated/stock.js:2182 msgid "Stock item assigned to sales order" msgstr "" -#: templates/js/translated/stock.js:2184 +#: templates/js/translated/stock.js:2185 msgid "Stock item assigned to customer" msgstr "" -#: templates/js/translated/stock.js:2187 +#: templates/js/translated/stock.js:2188 msgid "Serialized stock item has been allocated" msgstr "" -#: templates/js/translated/stock.js:2189 +#: templates/js/translated/stock.js:2190 msgid "Stock item has been fully allocated" msgstr "" -#: templates/js/translated/stock.js:2191 +#: templates/js/translated/stock.js:2192 msgid "Stock item has been partially allocated" msgstr "" -#: templates/js/translated/stock.js:2194 +#: templates/js/translated/stock.js:2195 msgid "Stock item has been installed in another item" msgstr "" -#: templates/js/translated/stock.js:2196 +#: templates/js/translated/stock.js:2197 msgid "Stock item has been consumed by a build order" msgstr "" -#: templates/js/translated/stock.js:2200 +#: templates/js/translated/stock.js:2201 msgid "Stock item has expired" msgstr "" -#: templates/js/translated/stock.js:2202 +#: templates/js/translated/stock.js:2203 msgid "Stock item will expire soon" msgstr "" -#: templates/js/translated/stock.js:2207 +#: templates/js/translated/stock.js:2208 msgid "Stock item has been rejected" msgstr "" -#: templates/js/translated/stock.js:2209 +#: templates/js/translated/stock.js:2210 msgid "Stock item is lost" msgstr "" -#: templates/js/translated/stock.js:2211 +#: templates/js/translated/stock.js:2212 msgid "Stock item is destroyed" msgstr "" -#: templates/js/translated/stock.js:2215 +#: templates/js/translated/stock.js:2216 #: templates/js/translated/table_filters.js:357 msgid "Depleted" msgstr "" -#: templates/js/translated/stock.js:2380 +#: templates/js/translated/stock.js:2381 msgid "Supplier part not specified" msgstr "" -#: templates/js/translated/stock.js:2427 +#: templates/js/translated/stock.js:2428 msgid "Stock Value" msgstr "" -#: templates/js/translated/stock.js:2555 +#: templates/js/translated/stock.js:2556 msgid "No stock items matching query" msgstr "" -#: templates/js/translated/stock.js:2658 +#: templates/js/translated/stock.js:2659 msgid "stock locations" msgstr "" -#: templates/js/translated/stock.js:2813 +#: templates/js/translated/stock.js:2814 msgid "Load Sublocations" msgstr "" -#: templates/js/translated/stock.js:2930 +#: templates/js/translated/stock.js:2931 msgid "Details" msgstr "" -#: templates/js/translated/stock.js:2934 +#: templates/js/translated/stock.js:2935 msgid "No changes" msgstr "Inga ändringar" -#: templates/js/translated/stock.js:2946 +#: templates/js/translated/stock.js:2947 msgid "Part information unavailable" msgstr "" -#: templates/js/translated/stock.js:2968 +#: templates/js/translated/stock.js:2969 msgid "Location no longer exists" msgstr "" -#: templates/js/translated/stock.js:2985 +#: templates/js/translated/stock.js:2986 msgid "Build order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3000 +#: templates/js/translated/stock.js:3001 msgid "Purchase order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3017 +#: templates/js/translated/stock.js:3018 msgid "Sales Order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3034 +#: templates/js/translated/stock.js:3035 msgid "Return Order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3053 +#: templates/js/translated/stock.js:3054 msgid "Customer no longer exists" msgstr "" -#: templates/js/translated/stock.js:3071 +#: templates/js/translated/stock.js:3072 msgid "Stock item no longer exists" msgstr "" -#: templates/js/translated/stock.js:3089 +#: templates/js/translated/stock.js:3090 msgid "Added" msgstr "" -#: templates/js/translated/stock.js:3097 +#: templates/js/translated/stock.js:3098 msgid "Removed" msgstr "" -#: templates/js/translated/stock.js:3169 +#: templates/js/translated/stock.js:3170 msgid "No installed items" msgstr "" -#: templates/js/translated/stock.js:3223 templates/js/translated/stock.js:3259 +#: templates/js/translated/stock.js:3224 templates/js/translated/stock.js:3260 msgid "Uninstall Stock Item" msgstr "" -#: templates/js/translated/stock.js:3280 +#: templates/js/translated/stock.js:3281 msgid "Select stock item to uninstall" msgstr "" -#: templates/js/translated/stock.js:3301 +#: templates/js/translated/stock.js:3302 msgid "Install another stock item into this item" msgstr "" -#: templates/js/translated/stock.js:3302 +#: templates/js/translated/stock.js:3303 msgid "Stock items can only be installed if they meet the following criteria" msgstr "" -#: templates/js/translated/stock.js:3304 +#: templates/js/translated/stock.js:3305 msgid "The Stock Item links to a Part which is the BOM for this Stock Item" msgstr "" -#: templates/js/translated/stock.js:3305 +#: templates/js/translated/stock.js:3306 msgid "The Stock Item is currently available in stock" msgstr "" -#: templates/js/translated/stock.js:3306 +#: templates/js/translated/stock.js:3307 msgid "The Stock Item is not already installed in another item" msgstr "" -#: templates/js/translated/stock.js:3307 +#: templates/js/translated/stock.js:3308 msgid "The Stock Item is tracked by either a batch code or serial number" msgstr "" -#: templates/js/translated/stock.js:3320 +#: templates/js/translated/stock.js:3321 msgid "Select part to install" msgstr "" -#: templates/js/translated/stock.js:3383 +#: templates/js/translated/stock.js:3384 msgid "Select one or more stock items" msgstr "" -#: templates/js/translated/stock.js:3396 +#: templates/js/translated/stock.js:3397 msgid "Selected stock items" msgstr "" -#: templates/js/translated/stock.js:3400 +#: templates/js/translated/stock.js:3401 msgid "Change Stock Status" msgstr "" -#: templates/js/translated/stock.js:3477 +#: templates/js/translated/stock.js:3478 msgid "This week" msgstr "" -#: templates/js/translated/stock.js:3485 +#: templates/js/translated/stock.js:3486 msgid "This month" msgstr "" @@ -14734,10 +15053,6 @@ msgstr "" msgid "Show items which are in production" msgstr "" -#: templates/js/translated/table_filters.js:372 -msgid "Include Variants" -msgstr "" - #: templates/js/translated/table_filters.js:373 msgid "Include stock items for variant parts" msgstr "" @@ -15012,10 +15327,6 @@ msgstr "" msgid "An error occurred while attempting to login via your social network account." msgstr "" -#: templates/socialaccount/authentication_error.html:13 -msgid "Contact your system administrator for further information." -msgstr "" - #: templates/socialaccount/login.html:13 #, python-format msgid "Connect %(provider)s" @@ -15141,27 +15452,27 @@ msgstr "Ja" msgid "No" msgstr "Nej" -#: users/admin.py:104 +#: users/admin.py:101 msgid "Users" msgstr "Användare" -#: users/admin.py:105 +#: users/admin.py:102 msgid "Select which users are assigned to this group" msgstr "" -#: users/admin.py:249 +#: users/admin.py:246 msgid "The following users are members of multiple groups" msgstr "" -#: users/admin.py:283 +#: users/admin.py:280 msgid "Personal info" msgstr "" -#: users/admin.py:285 +#: users/admin.py:282 msgid "Permissions" msgstr "" -#: users/admin.py:288 +#: users/admin.py:285 msgid "Important dates" msgstr "" @@ -15205,35 +15516,35 @@ msgstr "" msgid "Revoked" msgstr "" -#: users/models.py:379 +#: users/models.py:381 msgid "Permission set" msgstr "" -#: users/models.py:388 +#: users/models.py:390 msgid "Group" msgstr "" -#: users/models.py:392 +#: users/models.py:394 msgid "View" msgstr "" -#: users/models.py:392 +#: users/models.py:394 msgid "Permission to view items" msgstr "" -#: users/models.py:396 +#: users/models.py:398 msgid "Permission to add items" msgstr "" -#: users/models.py:400 +#: users/models.py:402 msgid "Change" msgstr "" -#: users/models.py:402 +#: users/models.py:404 msgid "Permissions to edit items" msgstr "" -#: users/models.py:408 +#: users/models.py:410 msgid "Permission to delete items" msgstr "" diff --git a/src/backend/InvenTree/locale/th/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/th/LC_MESSAGES/django.po index 9af682f34c..cf6379dcb7 100644 --- a/src/backend/InvenTree/locale/th/LC_MESSAGES/django.po +++ b/src/backend/InvenTree/locale/th/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-08-20 01:22+0000\n" -"PO-Revision-Date: 2024-08-20 19:51\n" +"POT-Creation-Date: 2024-11-04 03:11+0000\n" +"PO-Revision-Date: 2024-11-04 03:14\n" "Last-Translator: \n" "Language-Team: Thai\n" "Language: th_TH\n" @@ -14,81 +14,89 @@ msgstr "" "X-Crowdin-Project: inventree\n" "X-Crowdin-Project-ID: 452300\n" "X-Crowdin-Language: th\n" -"X-Crowdin-File: /[inventree.InvenTree] l10/src/backend/InvenTree/locale/en/LC_MESSAGES/django.po\n" -"X-Crowdin-File-ID: 216\n" +"X-Crowdin-File: /src/backend/InvenTree/locale/en/LC_MESSAGES/django.po\n" +"X-Crowdin-File-ID: 250\n" -#: InvenTree/api.py:269 +#: InvenTree/api.py:270 msgid "API endpoint not found" msgstr "ไม่พบ API endpoint" -#: InvenTree/api.py:502 +#: InvenTree/api.py:387 +msgid "Invalid items list provided" +msgstr "" + +#: InvenTree/api.py:396 +msgid "Invalid filters provided" +msgstr "" + +#: InvenTree/api.py:401 +msgid "No items found to delete" +msgstr "" + +#: InvenTree/api.py:515 msgid "User does not have permission to view this model" msgstr "" -#: InvenTree/conversion.py:160 +#: InvenTree/conversion.py:161 #, python-brace-format msgid "Invalid unit provided ({unit})" msgstr "" -#: InvenTree/conversion.py:177 +#: InvenTree/conversion.py:178 msgid "No value provided" msgstr "" -#: InvenTree/conversion.py:204 +#: InvenTree/conversion.py:205 #, python-brace-format msgid "Could not convert {original} to {unit}" msgstr "" -#: InvenTree/conversion.py:206 -msgid "Invalid quantity supplied" -msgstr "" +#: InvenTree/conversion.py:207 InvenTree/conversion.py:221 +#: InvenTree/helpers.py:505 order/models.py:589 order/models.py:832 +msgid "Invalid quantity provided" +msgstr "ปริมาณสินค้าไม่ถูกต้อง" -#: InvenTree/conversion.py:220 -#, python-brace-format -msgid "Invalid quantity supplied ({exc})" -msgstr "" - -#: InvenTree/exceptions.py:108 +#: InvenTree/exceptions.py:104 msgid "Error details can be found in the admin panel" msgstr "" -#: InvenTree/fields.py:136 +#: InvenTree/fields.py:135 msgid "Enter date" msgstr "ป้อนวันที่" -#: InvenTree/fields.py:205 InvenTree/models.py:929 build/serializers.py:468 -#: build/serializers.py:546 build/templates/build/sidebar.html:29 -#: company/models.py:836 +#: InvenTree/fields.py:204 InvenTree/models.py:928 build/serializers.py:512 +#: build/serializers.py:590 build/templates/build/sidebar.html:29 +#: company/models.py:833 #: company/templates/company/manufacturer_part_sidebar.html:11 #: company/templates/company/sidebar.html:37 -#: company/templates/company/supplier_part_sidebar.html:11 order/models.py:1380 +#: company/templates/company/supplier_part_sidebar.html:11 order/models.py:1397 #: order/templates/order/po_sidebar.html:11 #: order/templates/order/return_order_sidebar.html:9 #: order/templates/order/so_sidebar.html:17 part/admin.py:59 -#: part/models.py:3297 part/templates/part/part_sidebar.html:65 +#: part/models.py:3348 part/templates/part/part_sidebar.html:65 #: report/templates/report/inventree_build_order_report.html:172 -#: stock/admin.py:230 stock/models.py:2375 stock/models.py:2563 -#: stock/serializers.py:698 stock/serializers.py:856 stock/serializers.py:982 -#: stock/serializers.py:1032 stock/serializers.py:1343 -#: stock/serializers.py:1432 stock/serializers.py:1597 +#: stock/admin.py:231 stock/models.py:2494 stock/models.py:2679 +#: stock/serializers.py:725 stock/serializers.py:887 stock/serializers.py:1013 +#: stock/serializers.py:1063 stock/serializers.py:1374 +#: stock/serializers.py:1463 stock/serializers.py:1628 #: stock/templates/stock/stock_sidebar.html:25 #: templates/js/translated/barcode.js:143 templates/js/translated/bom.js:1265 -#: templates/js/translated/company.js:1684 templates/js/translated/order.js:372 +#: templates/js/translated/company.js:1685 templates/js/translated/order.js:372 #: templates/js/translated/part.js:1087 -#: templates/js/translated/purchase_order.js:2270 +#: templates/js/translated/purchase_order.js:2254 #: templates/js/translated/return_order.js:774 -#: templates/js/translated/sales_order.js:1103 -#: templates/js/translated/sales_order.js:2018 -#: templates/js/translated/stock.js:1621 templates/js/translated/stock.js:2513 +#: templates/js/translated/sales_order.js:1069 +#: templates/js/translated/sales_order.js:1999 +#: templates/js/translated/stock.js:1621 templates/js/translated/stock.js:2514 msgid "Notes" msgstr "หมายเหตุ" -#: InvenTree/format.py:164 +#: InvenTree/format.py:162 #, python-brace-format msgid "Value '{name}' does not appear in pattern format" msgstr "" -#: InvenTree/format.py:175 +#: InvenTree/format.py:173 msgid "Provided value does not match required pattern: " msgstr "" @@ -132,397 +140,409 @@ msgstr "" msgid "The provided primary email address is not valid." msgstr "" -#: InvenTree/forms.py:274 +#: InvenTree/forms.py:273 msgid "The provided email domain is not approved." msgstr "" -#: InvenTree/forms.py:403 +#: InvenTree/forms.py:402 msgid "Registration is disabled." msgstr "" -#: InvenTree/helpers.py:491 order/models.py:567 order/models.py:810 -msgid "Invalid quantity provided" -msgstr "ปริมาณสินค้าไม่ถูกต้อง" +#: InvenTree/helpers.py:509 +msgid "Cannot serialize more than 1000 items at once" +msgstr "" -#: InvenTree/helpers.py:499 +#: InvenTree/helpers.py:515 msgid "Empty serial number string" msgstr "" -#: InvenTree/helpers.py:528 +#: InvenTree/helpers.py:544 msgid "Duplicate serial" msgstr "หมายเลขซีเรียลซ้ำกัน" -#: InvenTree/helpers.py:560 InvenTree/helpers.py:603 +#: InvenTree/helpers.py:576 InvenTree/helpers.py:619 InvenTree/helpers.py:637 +#: InvenTree/helpers.py:644 InvenTree/helpers.py:663 #, python-brace-format -msgid "Invalid group range: {group}" +msgid "Invalid group: {group}" msgstr "" -#: InvenTree/helpers.py:591 +#: InvenTree/helpers.py:607 #, python-brace-format msgid "Group range {group} exceeds allowed quantity ({expected_quantity})" msgstr "" -#: InvenTree/helpers.py:621 InvenTree/helpers.py:628 InvenTree/helpers.py:647 -#, python-brace-format -msgid "Invalid group sequence: {group}" -msgstr "" - -#: InvenTree/helpers.py:657 +#: InvenTree/helpers.py:673 msgid "No serial numbers found" msgstr "ไม่พบหมายเลขซีเรียล" -#: InvenTree/helpers.py:662 +#: InvenTree/helpers.py:678 msgid "Number of unique serial numbers ({len(serials)}) must match quantity ({expected_quantity})" msgstr "" -#: InvenTree/helpers.py:780 +#: InvenTree/helpers.py:796 msgid "Remove HTML tags from this value" msgstr "" -#: InvenTree/helpers_model.py:133 +#: InvenTree/helpers.py:881 +msgid "Data contains prohibited markdown content" +msgstr "" + +#: InvenTree/helpers_model.py:130 msgid "Connection error" msgstr "การเชื่อมต่อขัดข้อง" -#: InvenTree/helpers_model.py:138 InvenTree/helpers_model.py:145 +#: InvenTree/helpers_model.py:135 InvenTree/helpers_model.py:142 msgid "Server responded with invalid status code" msgstr "" -#: InvenTree/helpers_model.py:141 +#: InvenTree/helpers_model.py:138 msgid "Exception occurred" msgstr "" -#: InvenTree/helpers_model.py:151 +#: InvenTree/helpers_model.py:148 msgid "Server responded with invalid Content-Length value" msgstr "" -#: InvenTree/helpers_model.py:154 +#: InvenTree/helpers_model.py:151 msgid "Image size is too large" msgstr "ไฟล์รูปภาพมีขนาดใหญ่เกินไป" -#: InvenTree/helpers_model.py:166 +#: InvenTree/helpers_model.py:163 msgid "Image download exceeded maximum size" msgstr "" -#: InvenTree/helpers_model.py:171 +#: InvenTree/helpers_model.py:168 msgid "Remote server returned empty response" msgstr "" -#: InvenTree/helpers_model.py:179 +#: InvenTree/helpers_model.py:176 msgid "Supplied URL is not a valid image file" msgstr "" -#: InvenTree/locales.py:18 +#: InvenTree/locales.py:20 msgid "Arabic" msgstr "" -#: InvenTree/locales.py:19 +#: InvenTree/locales.py:21 msgid "Bulgarian" msgstr "" -#: InvenTree/locales.py:20 +#: InvenTree/locales.py:22 msgid "Czech" msgstr "" -#: InvenTree/locales.py:21 +#: InvenTree/locales.py:23 msgid "Danish" msgstr "" -#: InvenTree/locales.py:22 +#: InvenTree/locales.py:24 msgid "German" msgstr "" -#: InvenTree/locales.py:23 +#: InvenTree/locales.py:25 msgid "Greek" msgstr "" -#: InvenTree/locales.py:24 +#: InvenTree/locales.py:26 msgid "English" msgstr "" -#: InvenTree/locales.py:25 +#: InvenTree/locales.py:27 msgid "Spanish" msgstr "" -#: InvenTree/locales.py:26 +#: InvenTree/locales.py:28 msgid "Spanish (Mexican)" msgstr "" -#: InvenTree/locales.py:27 +#: InvenTree/locales.py:29 msgid "Estonian" msgstr "" -#: InvenTree/locales.py:28 +#: InvenTree/locales.py:30 msgid "Farsi / Persian" msgstr "" -#: InvenTree/locales.py:29 +#: InvenTree/locales.py:31 msgid "Finnish" msgstr "" -#: InvenTree/locales.py:30 +#: InvenTree/locales.py:32 msgid "French" msgstr "" -#: InvenTree/locales.py:31 +#: InvenTree/locales.py:33 msgid "Hebrew" msgstr "" -#: InvenTree/locales.py:32 +#: InvenTree/locales.py:34 msgid "Hindi" msgstr "" -#: InvenTree/locales.py:33 +#: InvenTree/locales.py:35 msgid "Hungarian" msgstr "" -#: InvenTree/locales.py:34 +#: InvenTree/locales.py:36 msgid "Italian" msgstr "" -#: InvenTree/locales.py:35 +#: InvenTree/locales.py:37 msgid "Japanese" msgstr "" -#: InvenTree/locales.py:36 +#: InvenTree/locales.py:38 msgid "Korean" msgstr "" -#: InvenTree/locales.py:37 -msgid "Latvian" -msgstr "" - -#: InvenTree/locales.py:38 -msgid "Dutch" -msgstr "" - #: InvenTree/locales.py:39 -msgid "Norwegian" +msgid "Lithuanian" msgstr "" #: InvenTree/locales.py:40 -msgid "Polish" +msgid "Latvian" msgstr "" #: InvenTree/locales.py:41 -msgid "Portuguese" -msgstr "ภาษาโปรตุเกส" +msgid "Dutch" +msgstr "" #: InvenTree/locales.py:42 -msgid "Portuguese (Brazilian)" +msgid "Norwegian" msgstr "" #: InvenTree/locales.py:43 -msgid "Romanian" +msgid "Polish" msgstr "" #: InvenTree/locales.py:44 -msgid "Russian" -msgstr "ภาษารัสเซีย" +msgid "Portuguese" +msgstr "ภาษาโปรตุเกส" #: InvenTree/locales.py:45 -msgid "Slovak" +msgid "Portuguese (Brazilian)" msgstr "" #: InvenTree/locales.py:46 -msgid "Slovenian" +msgid "Romanian" msgstr "" #: InvenTree/locales.py:47 +msgid "Russian" +msgstr "ภาษารัสเซีย" + +#: InvenTree/locales.py:48 +msgid "Slovak" +msgstr "" + +#: InvenTree/locales.py:49 +msgid "Slovenian" +msgstr "" + +#: InvenTree/locales.py:50 msgid "Serbian" msgstr "" -#: InvenTree/locales.py:48 +#: InvenTree/locales.py:51 msgid "Swedish" msgstr "ภาษาสวีเดน" -#: InvenTree/locales.py:49 +#: InvenTree/locales.py:52 msgid "Thai" msgstr "ภาษาไทย" -#: InvenTree/locales.py:50 +#: InvenTree/locales.py:53 msgid "Turkish" msgstr "" -#: InvenTree/locales.py:51 +#: InvenTree/locales.py:54 msgid "Ukrainian" msgstr "" -#: InvenTree/locales.py:52 +#: InvenTree/locales.py:55 msgid "Vietnamese" msgstr "ภาษาเวียดนาม" -#: InvenTree/locales.py:53 +#: InvenTree/locales.py:56 msgid "Chinese (Simplified)" msgstr "" -#: InvenTree/locales.py:54 +#: InvenTree/locales.py:57 msgid "Chinese (Traditional)" msgstr "" #: InvenTree/magic_login.py:28 -#, python-brace-format -msgid "[{site_name}] Log in to the app" +msgid "Log in to the app" msgstr "" -#: InvenTree/magic_login.py:38 InvenTree/serializers.py:415 -#: company/models.py:136 company/templates/company/company_base.html:138 +#: InvenTree/magic_login.py:38 InvenTree/serializers.py:416 +#: company/models.py:133 company/templates/company/company_base.html:138 #: templates/InvenTree/settings/user.html:49 -#: templates/js/translated/company.js:677 +#: templates/js/translated/company.js:678 msgid "Email" msgstr "อีเมล" -#: InvenTree/models.py:103 +#: InvenTree/models.py:105 msgid "Error running plugin validation" msgstr "" -#: InvenTree/models.py:172 +#: InvenTree/models.py:174 msgid "Metadata must be a python dict object" msgstr "" -#: InvenTree/models.py:178 +#: InvenTree/models.py:180 msgid "Plugin Metadata" msgstr "ข้อมูลเมตาของปลั๊กอิน" -#: InvenTree/models.py:179 +#: InvenTree/models.py:181 msgid "JSON metadata field, for use by external plugins" msgstr "" -#: InvenTree/models.py:409 +#: InvenTree/models.py:408 msgid "Improperly formatted pattern" msgstr "" -#: InvenTree/models.py:416 +#: InvenTree/models.py:415 msgid "Unknown format key specified" msgstr "" -#: InvenTree/models.py:422 +#: InvenTree/models.py:421 msgid "Missing required format key" msgstr "" -#: InvenTree/models.py:433 +#: InvenTree/models.py:432 msgid "Reference field cannot be empty" msgstr "" -#: InvenTree/models.py:441 +#: InvenTree/models.py:440 msgid "Reference must match required pattern" msgstr "" -#: InvenTree/models.py:472 +#: InvenTree/models.py:471 msgid "Reference number is too large" msgstr "" -#: InvenTree/models.py:723 +#: InvenTree/models.py:722 msgid "Duplicate names cannot exist under the same parent" msgstr "" -#: InvenTree/models.py:740 +#: InvenTree/models.py:739 msgid "Invalid choice" msgstr "" -#: InvenTree/models.py:770 common/models.py:2702 common/models.py:3132 -#: common/serializers.py:412 company/models.py:593 machine/models.py:24 -#: part/models.py:983 part/models.py:3764 plugin/models.py:51 -#: report/models.py:149 stock/models.py:77 +#: InvenTree/models.py:769 common/models.py:2766 common/models.py:3193 +#: common/models.py:3413 common/serializers.py:460 company/models.py:590 +#: machine/models.py:24 part/models.py:1044 part/models.py:3815 +#: plugin/models.py:51 report/models.py:149 stock/models.py:83 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/notifications.html:17 #: templates/InvenTree/settings/plugin.html:83 #: templates/InvenTree/settings/plugin_settings.html:22 #: templates/InvenTree/settings/settings_staff_js.html:67 #: templates/InvenTree/settings/settings_staff_js.html:454 -#: templates/js/translated/company.js:676 -#: templates/js/translated/company.js:724 -#: templates/js/translated/company.js:913 -#: templates/js/translated/company.js:1165 -#: templates/js/translated/company.js:1413 templates/js/translated/part.js:1193 +#: templates/js/translated/company.js:677 +#: templates/js/translated/company.js:725 +#: templates/js/translated/company.js:914 +#: templates/js/translated/company.js:1166 +#: templates/js/translated/company.js:1414 templates/js/translated/part.js:1193 #: templates/js/translated/part.js:1481 templates/js/translated/part.js:1617 -#: templates/js/translated/part.js:2768 templates/js/translated/stock.js:2801 +#: templates/js/translated/part.js:2768 templates/js/translated/stock.js:2802 msgid "Name" msgstr "ชื่อ" -#: InvenTree/models.py:776 build/models.py:250 -#: build/templates/build/detail.html:24 common/models.py:156 -#: company/models.py:521 company/models.py:827 +#: InvenTree/models.py:775 build/models.py:251 +#: build/templates/build/detail.html:24 common/models.py:159 +#: company/models.py:518 company/models.py:824 #: company/templates/company/company_base.html:77 #: company/templates/company/manufacturer_part.html:75 -#: company/templates/company/supplier_part.html:107 order/models.py:288 -#: order/models.py:1413 part/admin.py:305 part/admin.py:411 part/models.py:1006 -#: part/models.py:3779 part/templates/part/category.html:79 -#: part/templates/part/part_base.html:170 +#: company/templates/company/supplier_part.html:108 order/models.py:295 +#: order/models.py:1430 part/admin.py:305 part/admin.py:411 part/models.py:1067 +#: part/models.py:3830 part/templates/part/category.html:79 +#: part/templates/part/part_base.html:171 #: part/templates/part/part_scheduling.html:12 report/models.py:155 -#: report/models.py:509 report/models.py:535 +#: report/models.py:517 report/models.py:543 #: report/templates/report/inventree_build_order_report.html:117 -#: stock/admin.py:54 stock/models.py:83 stock/templates/stock/location.html:122 +#: stock/admin.py:54 stock/models.py:89 stock/templates/stock/location.html:123 #: templates/InvenTree/settings/notifications.html:19 #: templates/InvenTree/settings/plugin_settings.html:27 #: templates/InvenTree/settings/settings_staff_js.html:170 #: templates/InvenTree/settings/settings_staff_js.html:459 #: templates/js/translated/bom.js:633 templates/js/translated/bom.js:963 -#: templates/js/translated/build.js:2311 templates/js/translated/company.js:519 -#: templates/js/translated/company.js:1330 -#: templates/js/translated/company.js:1641 templates/js/translated/index.js:119 +#: templates/js/translated/build.js:2314 templates/js/translated/company.js:520 +#: templates/js/translated/company.js:1331 +#: templates/js/translated/company.js:1642 templates/js/translated/index.js:119 #: templates/js/translated/order.js:323 templates/js/translated/part.js:1245 #: templates/js/translated/part.js:1490 templates/js/translated/part.js:1628 #: templates/js/translated/part.js:1965 templates/js/translated/part.js:2361 #: templates/js/translated/part.js:2803 templates/js/translated/part.js:2915 #: templates/js/translated/plugin.js:80 -#: templates/js/translated/purchase_order.js:1776 -#: templates/js/translated/purchase_order.js:1919 -#: templates/js/translated/purchase_order.js:2092 +#: templates/js/translated/purchase_order.js:1760 +#: templates/js/translated/purchase_order.js:1903 +#: templates/js/translated/purchase_order.js:2076 #: templates/js/translated/return_order.js:313 -#: templates/js/translated/sales_order.js:838 -#: templates/js/translated/sales_order.js:1848 -#: templates/js/translated/stock.js:1600 templates/js/translated/stock.js:2143 -#: templates/js/translated/stock.js:2832 templates/js/translated/stock.js:2915 +#: templates/js/translated/sales_order.js:797 +#: templates/js/translated/sales_order.js:1829 +#: templates/js/translated/stock.js:1600 templates/js/translated/stock.js:2144 +#: templates/js/translated/stock.js:2833 templates/js/translated/stock.js:2916 msgid "Description" msgstr "คำอธิบาย" -#: InvenTree/models.py:777 stock/models.py:84 +#: InvenTree/models.py:776 stock/models.py:90 msgid "Description (optional)" msgstr "" -#: InvenTree/models.py:792 templates/js/translated/part.js:2812 -#: templates/js/translated/stock.js:2841 +#: InvenTree/models.py:791 common/models.py:3546 +#: templates/js/translated/part.js:2812 templates/js/translated/stock.js:2842 msgid "Path" msgstr "" -#: InvenTree/models.py:929 +#: InvenTree/models.py:928 msgid "Markdown notes (optional)" msgstr "" -#: InvenTree/models.py:960 +#: InvenTree/models.py:959 msgid "Barcode Data" msgstr "ข้อมูลบาร์โค้ด" -#: InvenTree/models.py:961 +#: InvenTree/models.py:960 msgid "Third party barcode data" msgstr "" -#: InvenTree/models.py:967 +#: InvenTree/models.py:966 msgid "Barcode Hash" msgstr "" -#: InvenTree/models.py:968 +#: InvenTree/models.py:967 msgid "Unique hash of barcode data" msgstr "" -#: InvenTree/models.py:1035 +#: InvenTree/models.py:1034 msgid "Existing barcode found" msgstr "บาร์โค้ดนี้มีในระบบแล้ว" -#: InvenTree/models.py:1078 +#: InvenTree/models.py:1112 +msgid "Task Failure" +msgstr "" + +#: InvenTree/models.py:1114 +#, python-brace-format +msgid "Background worker task '{instance.func}' failed after {n} attempts" +msgstr "" + +#: InvenTree/models.py:1142 msgid "Server Error" msgstr "เกิดข้อผิดพลาดที่เซิร์ฟเวอร์" -#: InvenTree/models.py:1079 +#: InvenTree/models.py:1143 msgid "An error has been logged by the server." msgstr "" -#: InvenTree/serializers.py:63 part/models.py:4387 +#: InvenTree/serializers.py:63 part/models.py:4444 msgid "Must be a valid number" msgstr "ต้องเป็นตัวเลข" -#: InvenTree/serializers.py:100 company/models.py:186 -#: company/templates/company/company_base.html:112 part/models.py:3115 +#: InvenTree/serializers.py:100 company/models.py:183 +#: company/templates/company/company_base.html:112 part/models.py:3166 #: templates/InvenTree/settings/settings_staff_js.html:44 #: templates/currency_data.html:5 msgid "Currency" @@ -532,15 +552,15 @@ msgstr "สกุลเงิน" msgid "Select currency from available options" msgstr "" -#: InvenTree/serializers.py:407 templates/InvenTree/settings/user.html:33 +#: InvenTree/serializers.py:405 templates/InvenTree/settings/user.html:33 msgid "Username" msgstr "" -#: InvenTree/serializers.py:409 templates/InvenTree/settings/user.html:37 +#: InvenTree/serializers.py:408 templates/InvenTree/settings/user.html:37 msgid "First Name" msgstr "" -#: InvenTree/serializers.py:409 +#: InvenTree/serializers.py:408 msgid "First name of the user" msgstr "" @@ -552,30 +572,30 @@ msgstr "" msgid "Last name of the user" msgstr "" -#: InvenTree/serializers.py:415 +#: InvenTree/serializers.py:416 msgid "Email address of the user" msgstr "" -#: InvenTree/serializers.py:439 +#: InvenTree/serializers.py:441 msgid "Staff" msgstr "" -#: InvenTree/serializers.py:439 +#: InvenTree/serializers.py:441 msgid "Does this user have staff permissions" msgstr "" -#: InvenTree/serializers.py:442 +#: InvenTree/serializers.py:445 msgid "Superuser" msgstr "" -#: InvenTree/serializers.py:442 +#: InvenTree/serializers.py:445 msgid "Is this user a superuser" msgstr "" -#: InvenTree/serializers.py:445 common/models.py:2707 company/models.py:163 -#: company/models.py:801 machine/models.py:39 part/admin.py:88 -#: part/models.py:1189 plugin/models.py:66 -#: templates/js/translated/company.js:523 +#: InvenTree/serializers.py:449 common/models.py:2771 company/models.py:160 +#: company/models.py:798 machine/models.py:39 part/admin.py:88 +#: part/models.py:1250 plugin/models.py:66 +#: templates/js/translated/company.js:524 #: templates/js/translated/table_filters.js:134 #: templates/js/translated/table_filters.js:226 #: templates/js/translated/table_filters.js:513 @@ -585,230 +605,229 @@ msgstr "" msgid "Active" msgstr "" -#: InvenTree/serializers.py:445 +#: InvenTree/serializers.py:449 msgid "Is this user account active" msgstr "" -#: InvenTree/serializers.py:463 +#: InvenTree/serializers.py:467 msgid "You do not have permission to change this user role." msgstr "" -#: InvenTree/serializers.py:475 +#: InvenTree/serializers.py:503 msgid "Only superusers can create new users" msgstr "" -#: InvenTree/serializers.py:494 +#: InvenTree/serializers.py:523 msgid "Your account has been created." msgstr "" -#: InvenTree/serializers.py:496 +#: InvenTree/serializers.py:525 msgid "Please use the password reset function to login" msgstr "" -#: InvenTree/serializers.py:503 +#: InvenTree/serializers.py:531 msgid "Welcome to InvenTree" msgstr "ยินดีต้อนรับเข้าสู่ Inventree" -#: InvenTree/serializers.py:561 +#: InvenTree/serializers.py:594 msgid "Invalid value" msgstr "" -#: InvenTree/serializers.py:581 importer/models.py:63 +#: InvenTree/serializers.py:614 importer/models.py:64 msgid "Data File" msgstr "ไฟล์ข้อมูล" -#: InvenTree/serializers.py:582 +#: InvenTree/serializers.py:615 msgid "Select data file for upload" msgstr "เลือกไฟล์ข้อมูลที่จะอัปโหลด" -#: InvenTree/serializers.py:599 -msgid "Unsupported file type" +#: InvenTree/serializers.py:632 common/files.py:63 +msgid "Unsupported file format" msgstr "" -#: InvenTree/serializers.py:605 +#: InvenTree/serializers.py:638 msgid "File is too large" msgstr "ไฟล์มีขนาดใหญ่เกินไป" -#: InvenTree/serializers.py:626 +#: InvenTree/serializers.py:659 msgid "No columns found in file" msgstr "" -#: InvenTree/serializers.py:629 +#: InvenTree/serializers.py:662 msgid "No data rows found in file" msgstr "" -#: InvenTree/serializers.py:742 +#: InvenTree/serializers.py:774 msgid "No data rows provided" msgstr "" -#: InvenTree/serializers.py:745 +#: InvenTree/serializers.py:777 msgid "No data columns supplied" msgstr "" -#: InvenTree/serializers.py:812 +#: InvenTree/serializers.py:843 #, python-brace-format msgid "Missing required column: '{name}'" msgstr "" -#: InvenTree/serializers.py:821 +#: InvenTree/serializers.py:852 #, python-brace-format msgid "Duplicate column: '{col}'" msgstr "" -#: InvenTree/serializers.py:861 +#: InvenTree/serializers.py:891 msgid "Remote Image" msgstr "" -#: InvenTree/serializers.py:862 +#: InvenTree/serializers.py:892 msgid "URL of remote image file" msgstr "" -#: InvenTree/serializers.py:880 +#: InvenTree/serializers.py:910 msgid "Downloading images from remote URL is not enabled" msgstr "" -#: InvenTree/status.py:66 part/serializers.py:1246 -msgid "Background worker check failed" -msgstr "" - -#: InvenTree/status.py:70 -msgid "Email backend not configured" -msgstr "" - -#: InvenTree/status.py:73 -msgid "InvenTree system health checks failed" +#: InvenTree/serializers.py:917 +msgid "Failed to download image from remote URL" msgstr "" #: InvenTree/templatetags/inventree_extras.py:184 msgid "Unknown database" msgstr "" -#: InvenTree/validators.py:32 InvenTree/validators.py:34 +#: InvenTree/validators.py:32 msgid "Invalid physical unit" msgstr "" -#: InvenTree/validators.py:40 +#: InvenTree/validators.py:38 msgid "Not a valid currency code" msgstr "" -#: InvenTree/validators.py:118 InvenTree/validators.py:134 +#: InvenTree/validators.py:115 InvenTree/validators.py:131 msgid "Overage value must not be negative" msgstr "" -#: InvenTree/validators.py:136 +#: InvenTree/validators.py:133 msgid "Overage must not exceed 100%" msgstr "" -#: InvenTree/validators.py:142 +#: InvenTree/validators.py:139 msgid "Invalid value for overage" msgstr "" -#: InvenTree/views.py:400 templates/InvenTree/settings/user.html:23 +#: InvenTree/views.py:399 templates/InvenTree/settings/user.html:23 msgid "Edit User Information" msgstr "แก้ไขข้อมูลสมาชิก" -#: InvenTree/views.py:412 templates/InvenTree/settings/user.html:20 +#: InvenTree/views.py:411 templates/InvenTree/settings/user.html:20 msgid "Set Password" msgstr "ตั้งรหัสผ่าน" -#: InvenTree/views.py:434 +#: InvenTree/views.py:433 msgid "Password fields must match" msgstr "รหัสผ่านต้องตรงกัน" -#: InvenTree/views.py:442 +#: InvenTree/views.py:441 msgid "Wrong password provided" msgstr "ป้อนรหัสผ่านไม่ถูกต้อง" -#: InvenTree/views.py:650 templates/navbar.html:160 +#: InvenTree/views.py:645 templates/navbar.html:160 msgid "System Information" msgstr "ข้อมูลระบบ" -#: InvenTree/views.py:657 templates/navbar.html:171 +#: InvenTree/views.py:652 templates/navbar.html:171 msgid "About InvenTree" msgstr "เกี่ยวกับ Inventree" -#: build/api.py:51 part/api.py:156 stock/api.py:343 -msgid "Cascade" -msgstr "" - -#: build/api.py:64 build/models.py:261 -#: build/templates/build/build_base.html:191 +#: build/api.py:54 build/models.py:262 +#: build/templates/build/build_base.html:192 #: build/templates/build/detail.html:87 msgid "Parent Build" msgstr "" -#: build/api.py:89 order/api.py:92 templates/js/translated/table_filters.js:101 +#: build/api.py:58 build/api.py:625 order/api.py:396 order/api.py:611 +#: order/api.py:990 order/api.py:1187 +#: templates/js/translated/table_filters.js:372 +msgid "Include Variants" +msgstr "" + +#: build/api.py:93 +msgid "Ancestor Build" +msgstr "" + +#: build/api.py:112 order/api.py:90 +#: templates/js/translated/table_filters.js:101 #: templates/js/translated/table_filters.js:549 #: templates/js/translated/table_filters.js:633 #: templates/js/translated/table_filters.js:674 msgid "Assigned to me" msgstr "" -#: build/api.py:106 build/templates/build/build_base.html:205 +#: build/api.py:129 build/templates/build/build_base.html:206 #: build/templates/build/detail.html:115 #: report/templates/report/inventree_build_order_report.html:152 #: templates/js/translated/table_filters.js:552 msgid "Issued By" msgstr "" -#: build/api.py:125 +#: build/api.py:148 msgid "Assigned To" msgstr "" -#: build/api.py:301 +#: build/api.py:310 msgid "Build must be cancelled before it can be deleted" msgstr "" -#: build/api.py:345 build/serializers.py:1288 part/models.py:4265 +#: build/api.py:354 build/serializers.py:1342 part/models.py:4322 #: templates/js/translated/bom.js:997 templates/js/translated/bom.js:1037 -#: templates/js/translated/build.js:2702 +#: templates/js/translated/build.js:2711 #: templates/js/translated/table_filters.js:197 #: templates/js/translated/table_filters.js:586 msgid "Consumable" msgstr "" -#: build/api.py:346 build/serializers.py:1289 part/models.py:4259 +#: build/api.py:355 build/serializers.py:1343 part/models.py:4316 #: part/templates/part/upload_bom.html:58 templates/js/translated/bom.js:1001 -#: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2693 +#: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2702 #: templates/js/translated/table_filters.js:193 #: templates/js/translated/table_filters.js:222 #: templates/js/translated/table_filters.js:590 msgid "Optional" msgstr "" -#: build/api.py:347 common/models.py:1489 part/admin.py:91 part/admin.py:428 -#: part/models.py:1154 part/serializers.py:1575 +#: build/api.py:356 common/models.py:1558 part/admin.py:91 part/admin.py:428 +#: part/models.py:1215 part/serializers.py:1633 #: templates/js/translated/bom.js:1639 #: templates/js/translated/table_filters.js:337 #: templates/js/translated/table_filters.js:729 msgid "Assembly" msgstr "" -#: build/api.py:348 templates/js/translated/table_filters.js:415 +#: build/api.py:357 templates/js/translated/table_filters.js:415 #: templates/js/translated/table_filters.js:582 msgid "Tracked" msgstr "" -#: build/api.py:349 build/serializers.py:1290 part/models.py:1172 +#: build/api.py:358 build/serializers.py:1344 part/models.py:1233 #: templates/js/translated/table_filters.js:146 #: templates/js/translated/table_filters.js:779 msgid "Testable" msgstr "" -#: build/api.py:351 part/admin.py:144 templates/js/translated/build.js:1917 -#: templates/js/translated/build.js:2820 -#: templates/js/translated/sales_order.js:1965 +#: build/api.py:360 order/api.py:779 part/admin.py:144 +#: templates/js/translated/build.js:1920 templates/js/translated/build.js:2838 +#: templates/js/translated/sales_order.js:1946 #: templates/js/translated/table_filters.js:574 msgid "Allocated" msgstr "" -#: build/api.py:359 company/models.py:891 company/serializers.py:395 -#: company/templates/company/supplier_part.html:114 +#: build/api.py:368 company/models.py:888 company/serializers.py:399 +#: company/templates/company/supplier_part.html:115 #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:17 -#: templates/js/translated/bom.js:1162 templates/js/translated/build.js:2752 +#: templates/js/translated/bom.js:1162 templates/js/translated/build.js:2770 #: templates/js/translated/index.js:123 -#: templates/js/translated/model_renderers.js:235 +#: templates/js/translated/model_renderers.js:238 #: templates/js/translated/part.js:695 templates/js/translated/part.js:697 #: templates/js/translated/part.js:702 #: templates/js/translated/table_filters.js:347 @@ -816,16 +835,68 @@ msgstr "" msgid "Available" msgstr "" -#: build/models.py:86 build/templates/build/build_base.html:9 -#: build/templates/build/build_base.html:27 +#: build/api.py:640 build/models.py:268 build/serializers.py:1330 +#: build/templates/build/build_base.html:106 +#: build/templates/build/detail.html:29 company/models.py:1043 order/api.py:775 +#: order/api.py:1003 order/models.py:1519 order/models.py:1674 +#: order/models.py:1675 part/api.py:1495 part/api.py:1802 part/models.py:419 +#: part/models.py:3177 part/models.py:3321 part/models.py:3469 +#: part/models.py:3490 part/models.py:3512 part/models.py:3648 +#: part/models.py:3995 part/models.py:4158 part/models.py:4288 +#: part/models.py:4654 part/serializers.py:1245 part/serializers.py:1898 +#: part/templates/part/part_app_base.html:8 +#: part/templates/part/part_pricing.html:12 +#: part/templates/part/upload_bom.html:52 +#: report/templates/report/inventree_bill_of_materials_report.html:110 +#: report/templates/report/inventree_bill_of_materials_report.html:137 +#: report/templates/report/inventree_build_order_report.html:109 +#: report/templates/report/inventree_purchase_order_report.html:27 +#: report/templates/report/inventree_return_order_report.html:24 +#: report/templates/report/inventree_sales_order_report.html:27 +#: report/templates/report/inventree_sales_order_shipment_report.html:28 +#: report/templates/report/inventree_stock_location_report.html:102 +#: stock/serializers.py:112 stock/serializers.py:160 stock/serializers.py:456 +#: stock/serializers.py:947 templates/InvenTree/search.html:82 +#: templates/email/build_order_completed.html:17 +#: templates/email/build_order_required_stock.html:17 +#: templates/email/low_stock_notification.html:15 +#: templates/email/overdue_build_order.html:16 +#: templates/js/translated/barcode.js:577 templates/js/translated/bom.js:632 +#: templates/js/translated/bom.js:769 templates/js/translated/bom.js:905 +#: templates/js/translated/build.js:1005 templates/js/translated/build.js:1488 +#: templates/js/translated/build.js:1919 templates/js/translated/build.js:2337 +#: templates/js/translated/build.js:2514 templates/js/translated/company.js:349 +#: templates/js/translated/company.js:1117 +#: templates/js/translated/company.js:1272 +#: templates/js/translated/company.js:1560 templates/js/translated/index.js:109 +#: templates/js/translated/part.js:1950 templates/js/translated/part.js:2022 +#: templates/js/translated/part.js:2330 templates/js/translated/pricing.js:369 +#: templates/js/translated/purchase_order.js:734 +#: templates/js/translated/purchase_order.js:1350 +#: templates/js/translated/purchase_order.js:1902 +#: templates/js/translated/purchase_order.js:2061 +#: templates/js/translated/return_order.js:538 +#: templates/js/translated/return_order.js:708 +#: templates/js/translated/sales_order.js:1199 +#: templates/js/translated/sales_order.js:1608 +#: templates/js/translated/sales_order.js:1813 +#: templates/js/translated/stock.js:682 templates/js/translated/stock.js:848 +#: templates/js/translated/stock.js:1065 templates/js/translated/stock.js:2083 +#: templates/js/translated/stock.js:2942 templates/js/translated/stock.js:3175 +#: templates/js/translated/stock.js:3320 +msgid "Part" +msgstr "" + +#: build/api.py:662 build/models.py:88 build/templates/build/build_base.html:10 +#: build/templates/build/build_base.html:28 #: report/templates/report/inventree_build_order_report.html:105 -#: stock/serializers.py:84 templates/email/build_order_completed.html:16 +#: stock/serializers.py:85 templates/email/build_order_completed.html:16 #: templates/email/overdue_build_order.html:15 -#: templates/js/translated/build.js:1145 templates/js/translated/stock.js:2976 +#: templates/js/translated/build.js:1148 templates/js/translated/stock.js:2977 msgid "Build Order" msgstr "" -#: build/models.py:87 build/templates/build/build_base.html:13 +#: build/models.py:89 build/templates/build/build_base.html:14 #: build/templates/build/index.html:8 build/templates/build/index.html:12 #: order/templates/order/sales_order_detail.html:111 #: order/templates/order/so_sidebar.html:13 @@ -836,268 +907,216 @@ msgstr "" msgid "Build Orders" msgstr "" -#: build/models.py:135 +#: build/models.py:136 msgid "Assembly BOM has not been validated" msgstr "" -#: build/models.py:142 +#: build/models.py:143 msgid "Build order cannot be created for an inactive part" msgstr "" -#: build/models.py:149 +#: build/models.py:150 msgid "Build order cannot be created for an unlocked part" msgstr "" -#: build/models.py:163 +#: build/models.py:164 msgid "Invalid choice for parent build" msgstr "" -#: build/models.py:174 order/models.py:239 +#: build/models.py:175 order/models.py:236 msgid "Responsible user or group must be specified" msgstr "" -#: build/models.py:180 +#: build/models.py:181 msgid "Build order part cannot be changed" msgstr "" -#: build/models.py:241 +#: build/models.py:242 msgid "Build Order Reference" msgstr "" -#: build/models.py:242 build/serializers.py:1287 order/models.py:467 -#: order/models.py:978 order/models.py:1373 order/models.py:2135 -#: part/admin.py:414 part/models.py:4280 part/templates/part/upload_bom.html:54 +#: build/models.py:243 build/serializers.py:1341 order/models.py:479 +#: order/models.py:1005 order/models.py:1390 order/models.py:2174 +#: part/admin.py:414 part/models.py:4337 part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_bill_of_materials_report.html:139 #: report/templates/report/inventree_purchase_order_report.html:28 #: report/templates/report/inventree_return_order_report.html:26 #: report/templates/report/inventree_sales_order_report.html:28 #: templates/js/translated/bom.js:770 templates/js/translated/bom.js:973 -#: templates/js/translated/build.js:1011 templates/js/translated/build.js:2685 +#: templates/js/translated/build.js:1014 templates/js/translated/build.js:2694 #: templates/js/translated/order.js:316 templates/js/translated/pricing.js:386 -#: templates/js/translated/purchase_order.js:2135 +#: templates/js/translated/purchase_order.js:2119 #: templates/js/translated/return_order.js:727 -#: templates/js/translated/sales_order.js:1854 +#: templates/js/translated/sales_order.js:1835 msgid "Reference" msgstr "" -#: build/models.py:253 +#: build/models.py:254 msgid "Brief description of the build (optional)" msgstr "" -#: build/models.py:262 +#: build/models.py:263 msgid "BuildOrder to which this build is allocated" msgstr "" -#: build/models.py:267 build/serializers.py:1278 -#: build/templates/build/build_base.html:105 -#: build/templates/build/detail.html:29 company/models.py:1046 order/api.py:767 -#: order/models.py:1503 order/models.py:1658 order/models.py:1659 -#: part/api.py:1509 part/api.py:1813 part/models.py:424 part/models.py:3126 -#: part/models.py:3270 part/models.py:3418 part/models.py:3439 -#: part/models.py:3461 part/models.py:3597 part/models.py:3937 -#: part/models.py:4100 part/models.py:4231 part/models.py:4592 -#: part/serializers.py:1192 part/serializers.py:1836 -#: part/templates/part/part_app_base.html:8 -#: part/templates/part/part_pricing.html:12 -#: part/templates/part/upload_bom.html:52 -#: report/templates/report/inventree_bill_of_materials_report.html:110 -#: report/templates/report/inventree_bill_of_materials_report.html:137 -#: report/templates/report/inventree_build_order_report.html:109 -#: report/templates/report/inventree_purchase_order_report.html:27 -#: report/templates/report/inventree_return_order_report.html:24 -#: report/templates/report/inventree_sales_order_report.html:27 -#: report/templates/report/inventree_stock_location_report.html:102 -#: stock/serializers.py:111 stock/serializers.py:159 stock/serializers.py:446 -#: stock/serializers.py:916 templates/InvenTree/search.html:82 -#: templates/email/build_order_completed.html:17 -#: templates/email/build_order_required_stock.html:17 -#: templates/email/low_stock_notification.html:15 -#: templates/email/overdue_build_order.html:16 -#: templates/js/translated/barcode.js:577 templates/js/translated/bom.js:632 -#: templates/js/translated/bom.js:769 templates/js/translated/bom.js:905 -#: templates/js/translated/build.js:1002 templates/js/translated/build.js:1485 -#: templates/js/translated/build.js:1916 templates/js/translated/build.js:2334 -#: templates/js/translated/build.js:2507 templates/js/translated/company.js:348 -#: templates/js/translated/company.js:1116 -#: templates/js/translated/company.js:1271 -#: templates/js/translated/company.js:1559 templates/js/translated/index.js:109 -#: templates/js/translated/part.js:1950 templates/js/translated/part.js:2022 -#: templates/js/translated/part.js:2330 templates/js/translated/pricing.js:369 -#: templates/js/translated/purchase_order.js:751 -#: templates/js/translated/purchase_order.js:1367 -#: templates/js/translated/purchase_order.js:1918 -#: templates/js/translated/purchase_order.js:2077 -#: templates/js/translated/return_order.js:538 -#: templates/js/translated/return_order.js:708 -#: templates/js/translated/sales_order.js:300 -#: templates/js/translated/sales_order.js:1233 -#: templates/js/translated/sales_order.js:1634 -#: templates/js/translated/sales_order.js:1832 -#: templates/js/translated/stock.js:682 templates/js/translated/stock.js:848 -#: templates/js/translated/stock.js:1065 templates/js/translated/stock.js:2082 -#: templates/js/translated/stock.js:2941 templates/js/translated/stock.js:3174 -#: templates/js/translated/stock.js:3319 -msgid "Part" -msgstr "" - -#: build/models.py:275 +#: build/models.py:274 msgid "Select part to build" msgstr "" -#: build/models.py:280 +#: build/models.py:279 msgid "Sales Order Reference" msgstr "" -#: build/models.py:284 +#: build/models.py:283 msgid "SalesOrder to which this build is allocated" msgstr "" -#: build/models.py:289 build/serializers.py:1048 -#: templates/js/translated/build.js:1904 -#: templates/js/translated/sales_order.js:1221 +#: build/models.py:288 build/serializers.py:1092 +#: templates/js/translated/build.js:1907 +#: templates/js/translated/sales_order.js:1187 msgid "Source Location" msgstr "" -#: build/models.py:293 +#: build/models.py:292 msgid "Select location to take stock from for this build (leave blank to take from any stock location)" msgstr "" -#: build/models.py:298 +#: build/models.py:297 msgid "Destination Location" msgstr "" -#: build/models.py:302 +#: build/models.py:301 msgid "Select location where the completed items will be stored" msgstr "" -#: build/models.py:306 +#: build/models.py:305 msgid "Build Quantity" msgstr "" -#: build/models.py:309 +#: build/models.py:308 msgid "Number of stock items to build" msgstr "" -#: build/models.py:313 +#: build/models.py:312 msgid "Completed items" msgstr "" -#: build/models.py:315 +#: build/models.py:314 msgid "Number of stock items which have been completed" msgstr "" -#: build/models.py:319 +#: build/models.py:318 msgid "Build Status" msgstr "" -#: build/models.py:323 +#: build/models.py:322 msgid "Build status code" msgstr "" -#: build/models.py:332 build/serializers.py:302 build/serializers.py:1198 -#: order/serializers.py:670 stock/models.py:859 stock/serializers.py:76 -#: stock/serializers.py:1562 templates/js/translated/purchase_order.js:1129 +#: build/models.py:331 build/serializers.py:349 build/serializers.py:1243 +#: order/serializers.py:755 stock/models.py:936 stock/serializers.py:77 +#: stock/serializers.py:1593 templates/js/translated/purchase_order.js:1112 #: templates/js/translated/stock.js:1199 msgid "Batch Code" msgstr "" -#: build/models.py:336 build/serializers.py:303 +#: build/models.py:335 build/serializers.py:350 msgid "Batch code for this build output" msgstr "" -#: build/models.py:339 order/models.py:315 order/serializers.py:126 -#: part/models.py:1229 part/templates/part/part_base.html:319 +#: build/models.py:338 order/models.py:322 order/serializers.py:157 +#: part/models.py:1290 part/templates/part/part_base.html:327 #: templates/js/translated/return_order.js:338 -#: templates/js/translated/sales_order.js:863 +#: templates/js/translated/sales_order.js:822 msgid "Creation Date" msgstr "" -#: build/models.py:343 +#: build/models.py:342 msgid "Target completion date" msgstr "" -#: build/models.py:344 +#: build/models.py:343 msgid "Target date for build completion. Build will be overdue after this date." msgstr "" -#: build/models.py:347 order/models.py:526 order/models.py:2180 -#: templates/js/translated/build.js:2419 +#: build/models.py:346 order/models.py:538 order/models.py:2219 +#: templates/js/translated/build.js:2422 msgid "Completion Date" msgstr "" -#: build/models.py:353 +#: build/models.py:352 msgid "completed by" msgstr "" -#: build/models.py:361 templates/js/translated/build.js:2379 +#: build/models.py:360 templates/js/translated/build.js:2382 msgid "Issued by" msgstr "ออกโดย" -#: build/models.py:362 +#: build/models.py:361 msgid "User who issued this build order" msgstr "" -#: build/models.py:370 build/templates/build/build_base.html:212 -#: build/templates/build/detail.html:122 common/models.py:165 order/api.py:142 -#: order/models.py:333 order/templates/order/order_base.html:222 -#: order/templates/order/return_order_base.html:191 -#: order/templates/order/sales_order_base.html:235 part/models.py:1246 -#: part/templates/part/part_base.html:399 +#: build/models.py:369 build/templates/build/build_base.html:213 +#: build/templates/build/detail.html:122 common/models.py:168 order/api.py:140 +#: order/models.py:340 order/templates/order/order_base.html:231 +#: order/templates/order/return_order_base.html:192 +#: order/templates/order/sales_order_base.html:236 part/models.py:1307 +#: part/templates/part/part_base.html:407 #: report/templates/report/inventree_build_order_report.html:158 #: templates/InvenTree/settings/settings_staff_js.html:150 -#: templates/js/translated/build.js:2391 -#: templates/js/translated/purchase_order.js:1833 +#: templates/js/translated/build.js:2394 +#: templates/js/translated/purchase_order.js:1817 #: templates/js/translated/return_order.js:358 #: templates/js/translated/table_filters.js:551 msgid "Responsible" msgstr "" -#: build/models.py:371 +#: build/models.py:370 msgid "User or group responsible for this build order" msgstr "" -#: build/models.py:376 build/templates/build/detail.html:108 +#: build/models.py:375 build/templates/build/detail.html:108 #: company/templates/company/manufacturer_part.html:107 -#: company/templates/company/supplier_part.html:194 -#: order/templates/order/order_base.html:172 -#: order/templates/order/return_order_base.html:148 -#: order/templates/order/sales_order_base.html:187 -#: part/templates/part/part_base.html:392 stock/models.py:855 -#: stock/templates/stock/item_base.html:200 -#: templates/js/translated/company.js:1019 +#: company/templates/company/supplier_part.html:195 +#: order/templates/order/order_base.html:181 +#: order/templates/order/return_order_base.html:149 +#: order/templates/order/sales_order_base.html:188 +#: part/templates/part/part_base.html:400 stock/models.py:932 +#: stock/templates/stock/item_base.html:197 +#: templates/js/translated/company.js:1020 msgid "External Link" msgstr "" -#: build/models.py:377 common/models.py:3273 part/models.py:1058 -#: stock/models.py:855 +#: build/models.py:376 common/models.py:3334 part/models.py:1119 +#: stock/models.py:932 msgid "Link to external URL" msgstr "" -#: build/models.py:381 +#: build/models.py:380 msgid "Build Priority" msgstr "" -#: build/models.py:384 +#: build/models.py:383 msgid "Priority of this build order" msgstr "" -#: build/models.py:391 common/models.py:135 common/models.py:149 -#: order/admin.py:18 order/api.py:128 order/models.py:297 +#: build/models.py:390 common/models.py:138 common/models.py:152 +#: order/admin.py:18 order/api.py:126 order/models.py:304 #: templates/InvenTree/settings/settings_staff_js.html:146 -#: templates/js/translated/build.js:2316 -#: templates/js/translated/purchase_order.js:1780 +#: templates/js/translated/build.js:2319 +#: templates/js/translated/purchase_order.js:1764 #: templates/js/translated/return_order.js:317 -#: templates/js/translated/sales_order.js:842 +#: templates/js/translated/sales_order.js:801 #: templates/js/translated/table_filters.js:47 #: templates/project_code_data.html:6 msgid "Project Code" msgstr "" -#: build/models.py:392 +#: build/models.py:391 msgid "Project code for this build order" msgstr "" -#: build/models.py:651 build/models.py:778 +#: build/models.py:651 build/models.py:779 msgid "Failed to offload task to complete build allocations" msgstr "" @@ -1110,610 +1129,619 @@ msgstr "" msgid "A build order has been completed" msgstr "" -#: build/models.py:967 build/models.py:1055 +#: build/models.py:858 build/serializers.py:393 +msgid "Serial numbers must be provided for trackable parts" +msgstr "" + +#: build/models.py:969 build/models.py:1058 msgid "No build output specified" msgstr "" -#: build/models.py:970 +#: build/models.py:972 msgid "Build output is already completed" msgstr "" -#: build/models.py:973 +#: build/models.py:975 msgid "Build output does not match Build Order" msgstr "" -#: build/models.py:1059 build/serializers.py:235 build/serializers.py:284 -#: build/serializers.py:915 order/models.py:564 order/serializers.py:499 -#: order/serializers.py:665 part/serializers.py:1569 part/serializers.py:1999 -#: stock/models.py:700 stock/models.py:1520 stock/serializers.py:669 +#: build/models.py:1062 build/serializers.py:282 build/serializers.py:331 +#: build/serializers.py:959 order/models.py:586 order/serializers.py:584 +#: order/serializers.py:750 part/serializers.py:1627 part/serializers.py:2060 +#: stock/models.py:777 stock/models.py:1609 stock/serializers.py:696 msgid "Quantity must be greater than zero" msgstr "จำนวนต้องมีค่ามากกว่า 0" -#: build/models.py:1064 build/serializers.py:240 +#: build/models.py:1067 build/serializers.py:287 msgid "Quantity cannot be greater than the output quantity" msgstr "" -#: build/models.py:1124 build/serializers.py:563 +#: build/models.py:1127 build/serializers.py:607 #, python-brace-format msgid "Build output {serial} has not passed all required tests" msgstr "" -#: build/models.py:1465 +#: build/models.py:1482 msgid "Build Order Line Item" msgstr "" -#: build/models.py:1490 +#: build/models.py:1507 msgid "Build object" msgstr "" -#: build/models.py:1504 build/models.py:1760 build/serializers.py:222 -#: build/serializers.py:269 build/serializers.py:1295 -#: build/templates/build/build_base.html:110 -#: build/templates/build/detail.html:34 common/models.py:2579 -#: order/models.py:1356 order/models.py:2041 order/serializers.py:1460 +#: build/models.py:1521 build/models.py:1787 build/serializers.py:269 +#: build/serializers.py:316 build/serializers.py:1349 +#: build/templates/build/build_base.html:111 +#: build/templates/build/detail.html:34 common/models.py:2643 +#: order/models.py:1373 order/models.py:2074 order/serializers.py:1586 #: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:413 -#: part/forms.py:48 part/models.py:3284 part/models.py:4253 -#: part/templates/part/part_pricing.html:16 +#: part/forms.py:48 part/models.py:3335 part/models.py:4310 +#: part/serializers.py:265 part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_bill_of_materials_report.html:138 #: report/templates/report/inventree_build_order_report.html:113 #: report/templates/report/inventree_purchase_order_report.html:29 #: report/templates/report/inventree_sales_order_report.html:29 +#: report/templates/report/inventree_sales_order_shipment_report.html:47 +#: report/templates/report/inventree_sales_order_shipment_report.html:49 #: report/templates/report/inventree_stock_location_report.html:104 #: report/templates/report/inventree_test_report.html:90 -#: report/templates/report/inventree_test_report.html:169 stock/admin.py:159 -#: stock/serializers.py:127 stock/serializers.py:167 stock/serializers.py:660 -#: stock/templates/stock/item_base.html:287 -#: stock/templates/stock/item_base.html:295 -#: stock/templates/stock/item_base.html:342 +#: report/templates/report/inventree_test_report.html:169 stock/admin.py:160 +#: stock/serializers.py:128 stock/serializers.py:168 stock/serializers.py:687 +#: stock/templates/stock/item_base.html:284 +#: stock/templates/stock/item_base.html:292 +#: stock/templates/stock/item_base.html:339 #: templates/email/build_order_completed.html:18 #: templates/js/translated/barcode.js:579 templates/js/translated/bom.js:771 -#: templates/js/translated/bom.js:981 templates/js/translated/build.js:522 -#: templates/js/translated/build.js:737 templates/js/translated/build.js:1542 -#: templates/js/translated/build.js:1919 templates/js/translated/build.js:2529 -#: templates/js/translated/company.js:1818 -#: templates/js/translated/model_renderers.js:237 +#: templates/js/translated/bom.js:981 templates/js/translated/build.js:525 +#: templates/js/translated/build.js:740 templates/js/translated/build.js:1545 +#: templates/js/translated/build.js:1922 templates/js/translated/build.js:2536 +#: templates/js/translated/company.js:1819 +#: templates/js/translated/model_renderers.js:240 #: templates/js/translated/order.js:329 templates/js/translated/part.js:968 -#: templates/js/translated/part.js:1818 templates/js/translated/part.js:3360 +#: templates/js/translated/part.js:1818 templates/js/translated/part.js:3376 #: templates/js/translated/pricing.js:381 #: templates/js/translated/pricing.js:474 #: templates/js/translated/pricing.js:522 #: templates/js/translated/pricing.js:616 -#: templates/js/translated/purchase_order.js:754 -#: templates/js/translated/purchase_order.js:1922 -#: templates/js/translated/purchase_order.js:2141 -#: templates/js/translated/sales_order.js:317 -#: templates/js/translated/sales_order.js:1235 -#: templates/js/translated/sales_order.js:1554 -#: templates/js/translated/sales_order.js:1644 -#: templates/js/translated/sales_order.js:1734 -#: templates/js/translated/sales_order.js:1860 +#: templates/js/translated/purchase_order.js:737 +#: templates/js/translated/purchase_order.js:1906 +#: templates/js/translated/purchase_order.js:2125 +#: templates/js/translated/sales_order.js:1201 +#: templates/js/translated/sales_order.js:1520 +#: templates/js/translated/sales_order.js:1625 +#: templates/js/translated/sales_order.js:1715 +#: templates/js/translated/sales_order.js:1841 #: templates/js/translated/stock.js:570 templates/js/translated/stock.js:708 -#: templates/js/translated/stock.js:879 templates/js/translated/stock.js:3105 -#: templates/js/translated/stock.js:3188 +#: templates/js/translated/stock.js:879 templates/js/translated/stock.js:3106 +#: templates/js/translated/stock.js:3189 msgid "Quantity" msgstr "" -#: build/models.py:1505 +#: build/models.py:1522 msgid "Required quantity for build order" msgstr "" -#: build/models.py:1585 +#: build/models.py:1602 msgid "Build item must specify a build output, as master part is marked as trackable" msgstr "" -#: build/models.py:1594 +#: build/models.py:1611 #, python-brace-format msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgstr "" -#: build/models.py:1604 order/models.py:1992 +#: build/models.py:1628 order/models.py:2025 msgid "Stock item is over-allocated" msgstr "" -#: build/models.py:1610 order/models.py:1995 +#: build/models.py:1634 order/models.py:2028 msgid "Allocation quantity must be greater than zero" msgstr "" -#: build/models.py:1616 +#: build/models.py:1640 msgid "Quantity must be 1 for serialized stock" msgstr "" -#: build/models.py:1675 +#: build/models.py:1699 msgid "Selected stock item does not match BOM line" msgstr "" -#: build/models.py:1747 build/serializers.py:895 order/serializers.py:1297 -#: order/serializers.py:1318 stock/models.py:376 stock/serializers.py:93 -#: stock/serializers.py:763 stock/serializers.py:1281 stock/serializers.py:1393 -#: stock/templates/stock/item_base.html:10 -#: stock/templates/stock/item_base.html:23 -#: stock/templates/stock/item_base.html:194 -#: templates/js/translated/build.js:1918 -#: templates/js/translated/sales_order.js:301 -#: templates/js/translated/sales_order.js:1234 -#: templates/js/translated/sales_order.js:1535 -#: templates/js/translated/sales_order.js:1540 -#: templates/js/translated/sales_order.js:1641 -#: templates/js/translated/sales_order.js:1728 +#: build/models.py:1774 build/serializers.py:939 order/serializers.py:1423 +#: order/serializers.py:1444 +#: report/templates/report/inventree_sales_order_shipment_report.html:29 +#: stock/models.py:382 stock/serializers.py:94 stock/serializers.py:794 +#: stock/serializers.py:1312 stock/serializers.py:1424 +#: stock/templates/stock/item_base.html:11 +#: stock/templates/stock/item_base.html:24 +#: stock/templates/stock/item_base.html:191 +#: templates/js/translated/build.js:1921 +#: templates/js/translated/sales_order.js:1200 +#: templates/js/translated/sales_order.js:1501 +#: templates/js/translated/sales_order.js:1506 +#: templates/js/translated/sales_order.js:1622 +#: templates/js/translated/sales_order.js:1709 #: templates/js/translated/stock.js:683 templates/js/translated/stock.js:849 -#: templates/js/translated/stock.js:3061 +#: templates/js/translated/stock.js:3062 msgid "Stock Item" msgstr "" -#: build/models.py:1748 +#: build/models.py:1775 msgid "Source stock item" msgstr "" -#: build/models.py:1761 +#: build/models.py:1788 msgid "Stock quantity to allocate to build" msgstr "" -#: build/models.py:1769 +#: build/models.py:1796 msgid "Install into" msgstr "" -#: build/models.py:1770 +#: build/models.py:1797 msgid "Destination stock item" msgstr "" -#: build/serializers.py:91 +#: build/serializers.py:108 msgid "Build Level" msgstr "" -#: build/serializers.py:99 build/serializers.py:1190 build/serializers.py:1279 -#: part/admin.py:41 part/admin.py:408 part/models.py:4102 part/stocktake.py:219 -#: stock/admin.py:156 +#: build/serializers.py:116 build/serializers.py:1235 build/serializers.py:1331 +#: part/admin.py:41 part/admin.py:408 part/models.py:4160 part/stocktake.py:219 +#: stock/admin.py:157 msgid "Part Name" msgstr "" -#: build/serializers.py:111 +#: build/serializers.py:128 msgid "Project Code Label" msgstr "" -#: build/serializers.py:172 build/serializers.py:924 -#: templates/js/translated/build.js:1042 templates/js/translated/build.js:1495 +#: build/serializers.py:134 +msgid "Create Child Builds" +msgstr "" + +#: build/serializers.py:135 +msgid "Automatically generate child build orders" +msgstr "" + +#: build/serializers.py:219 build/serializers.py:968 +#: templates/js/translated/build.js:1045 templates/js/translated/build.js:1498 msgid "Build Output" msgstr "" -#: build/serializers.py:184 +#: build/serializers.py:231 msgid "Build output does not match the parent build" msgstr "" -#: build/serializers.py:188 +#: build/serializers.py:235 msgid "Output part does not match BuildOrder part" msgstr "" -#: build/serializers.py:192 +#: build/serializers.py:239 msgid "This build output has already been completed" msgstr "" -#: build/serializers.py:203 +#: build/serializers.py:250 msgid "This build output is not fully allocated" msgstr "" -#: build/serializers.py:223 build/serializers.py:270 +#: build/serializers.py:270 build/serializers.py:317 msgid "Enter quantity for build output" msgstr "" -#: build/serializers.py:291 +#: build/serializers.py:338 msgid "Integer quantity required for trackable parts" msgstr "" -#: build/serializers.py:294 +#: build/serializers.py:341 msgid "Integer quantity required, as the bill of materials contains trackable parts" msgstr "" -#: build/serializers.py:309 order/serializers.py:678 order/serializers.py:1464 -#: stock/serializers.py:680 templates/js/translated/purchase_order.js:1154 +#: build/serializers.py:356 order/serializers.py:763 order/serializers.py:1590 +#: stock/serializers.py:707 templates/js/translated/purchase_order.js:1137 #: templates/js/translated/stock.js:373 templates/js/translated/stock.js:571 msgid "Serial Numbers" msgstr "" -#: build/serializers.py:310 +#: build/serializers.py:357 msgid "Enter serial numbers for build outputs" msgstr "" -#: build/serializers.py:315 build/serializers.py:456 build/serializers.py:528 -#: order/serializers.py:654 order/serializers.py:778 order/serializers.py:1781 -#: part/serializers.py:1212 stock/serializers.py:102 stock/serializers.py:691 -#: stock/serializers.py:851 stock/serializers.py:977 stock/serializers.py:1425 -#: stock/serializers.py:1681 stock/templates/stock/item_base.html:394 +#: build/serializers.py:362 build/serializers.py:500 build/serializers.py:572 +#: order/serializers.py:739 order/serializers.py:880 order/serializers.py:1933 +#: part/serializers.py:1265 stock/serializers.py:103 stock/serializers.py:718 +#: stock/serializers.py:882 stock/serializers.py:1008 stock/serializers.py:1456 +#: stock/serializers.py:1712 stock/templates/stock/item_base.html:391 #: templates/js/translated/barcode.js:578 -#: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1032 -#: templates/js/translated/build.js:1174 templates/js/translated/build.js:2544 -#: templates/js/translated/purchase_order.js:1210 -#: templates/js/translated/purchase_order.js:1320 -#: templates/js/translated/sales_order.js:1547 -#: templates/js/translated/sales_order.js:1655 -#: templates/js/translated/sales_order.js:1663 -#: templates/js/translated/sales_order.js:1742 +#: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1035 +#: templates/js/translated/build.js:1177 templates/js/translated/build.js:2551 +#: templates/js/translated/purchase_order.js:1193 +#: templates/js/translated/purchase_order.js:1303 +#: templates/js/translated/sales_order.js:1513 +#: templates/js/translated/sales_order.js:1636 +#: templates/js/translated/sales_order.js:1644 +#: templates/js/translated/sales_order.js:1723 #: templates/js/translated/stock.js:684 templates/js/translated/stock.js:850 -#: templates/js/translated/stock.js:1067 templates/js/translated/stock.js:2286 -#: templates/js/translated/stock.js:2955 +#: templates/js/translated/stock.js:1067 templates/js/translated/stock.js:2287 +#: templates/js/translated/stock.js:2956 msgid "Location" msgstr "สถานที่" -#: build/serializers.py:316 +#: build/serializers.py:363 msgid "Stock location for build output" msgstr "" -#: build/serializers.py:330 +#: build/serializers.py:377 msgid "Auto Allocate Serial Numbers" msgstr "" -#: build/serializers.py:331 +#: build/serializers.py:378 msgid "Automatically allocate required items with matching serial numbers" msgstr "" -#: build/serializers.py:346 -msgid "Serial numbers must be provided for trackable parts" -msgstr "" - -#: build/serializers.py:371 stock/api.py:1031 +#: build/serializers.py:415 order/serializers.py:858 stock/api.py:1017 +#: stock/models.py:1632 msgid "The following serial numbers already exist or are invalid" msgstr "" -#: build/serializers.py:418 build/serializers.py:480 build/serializers.py:569 +#: build/serializers.py:462 build/serializers.py:524 build/serializers.py:613 msgid "A list of build outputs must be provided" msgstr "" -#: build/serializers.py:457 +#: build/serializers.py:501 msgid "Stock location for scrapped outputs" msgstr "" -#: build/serializers.py:463 +#: build/serializers.py:507 msgid "Discard Allocations" msgstr "" -#: build/serializers.py:464 +#: build/serializers.py:508 msgid "Discard any stock allocations for scrapped outputs" msgstr "" -#: build/serializers.py:469 +#: build/serializers.py:513 msgid "Reason for scrapping build output(s)" msgstr "" -#: build/serializers.py:529 +#: build/serializers.py:573 msgid "Location for completed build outputs" msgstr "" -#: build/serializers.py:535 build/templates/build/build_base.html:159 -#: build/templates/build/detail.html:62 order/models.py:476 -#: order/models.py:1002 order/models.py:2159 order/serializers.py:686 -#: stock/admin.py:164 stock/serializers.py:1028 stock/serializers.py:1569 -#: stock/templates/stock/item_base.html:427 -#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2363 -#: templates/js/translated/purchase_order.js:1371 -#: templates/js/translated/purchase_order.js:1792 +#: build/serializers.py:579 build/templates/build/build_base.html:160 +#: build/templates/build/detail.html:62 order/models.py:488 +#: order/models.py:1029 order/models.py:2198 order/serializers.py:771 +#: stock/admin.py:165 stock/serializers.py:581 stock/serializers.py:1059 +#: stock/serializers.py:1600 stock/templates/stock/item_base.html:424 +#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2366 +#: templates/js/translated/purchase_order.js:1354 +#: templates/js/translated/purchase_order.js:1776 #: templates/js/translated/return_order.js:330 -#: templates/js/translated/sales_order.js:855 -#: templates/js/translated/stock.js:2261 templates/js/translated/stock.js:3079 -#: templates/js/translated/stock.js:3204 +#: templates/js/translated/sales_order.js:814 +#: templates/js/translated/stock.js:2262 templates/js/translated/stock.js:3080 +#: templates/js/translated/stock.js:3205 msgid "Status" msgstr "สถานะ" -#: build/serializers.py:541 +#: build/serializers.py:585 msgid "Accept Incomplete Allocation" msgstr "" -#: build/serializers.py:542 +#: build/serializers.py:586 msgid "Complete outputs if stock has not been fully allocated" msgstr "" -#: build/serializers.py:654 +#: build/serializers.py:698 msgid "Consume Allocated Stock" msgstr "" -#: build/serializers.py:655 +#: build/serializers.py:699 msgid "Consume any stock which has already been allocated to this build" msgstr "" -#: build/serializers.py:661 +#: build/serializers.py:705 msgid "Remove Incomplete Outputs" msgstr "" -#: build/serializers.py:662 +#: build/serializers.py:706 msgid "Delete any build outputs which have not been completed" msgstr "" -#: build/serializers.py:689 +#: build/serializers.py:733 msgid "Not permitted" msgstr "" -#: build/serializers.py:690 +#: build/serializers.py:734 msgid "Accept as consumed by this build order" msgstr "" -#: build/serializers.py:691 +#: build/serializers.py:735 msgid "Deallocate before completing this build order" msgstr "" -#: build/serializers.py:721 +#: build/serializers.py:765 msgid "Overallocated Stock" msgstr "" -#: build/serializers.py:723 +#: build/serializers.py:767 msgid "How do you want to handle extra stock items assigned to the build order" msgstr "" -#: build/serializers.py:733 +#: build/serializers.py:777 msgid "Some stock items have been overallocated" msgstr "" -#: build/serializers.py:738 +#: build/serializers.py:782 msgid "Accept Unallocated" msgstr "" -#: build/serializers.py:739 +#: build/serializers.py:783 msgid "Accept that stock items have not been fully allocated to this build order" msgstr "" -#: build/serializers.py:749 templates/js/translated/build.js:316 +#: build/serializers.py:793 templates/js/translated/build.js:319 msgid "Required stock has not been fully allocated" msgstr "" -#: build/serializers.py:754 order/serializers.py:345 order/serializers.py:1365 +#: build/serializers.py:798 order/serializers.py:430 order/serializers.py:1491 msgid "Accept Incomplete" msgstr "" -#: build/serializers.py:755 +#: build/serializers.py:799 msgid "Accept that the required number of build outputs have not been completed" msgstr "" -#: build/serializers.py:765 templates/js/translated/build.js:320 +#: build/serializers.py:809 templates/js/translated/build.js:323 msgid "Required build quantity has not been completed" msgstr "" -#: build/serializers.py:774 +#: build/serializers.py:818 msgid "Build order has open child build orders" msgstr "" -#: build/serializers.py:777 +#: build/serializers.py:821 msgid "Build order must be in production state" msgstr "" -#: build/serializers.py:780 templates/js/translated/build.js:304 +#: build/serializers.py:824 templates/js/translated/build.js:307 msgid "Build order has incomplete outputs" msgstr "" -#: build/serializers.py:818 +#: build/serializers.py:862 msgid "Build Line" msgstr "" -#: build/serializers.py:828 +#: build/serializers.py:872 msgid "Build output" msgstr "" -#: build/serializers.py:836 +#: build/serializers.py:880 msgid "Build output must point to the same build" msgstr "" -#: build/serializers.py:872 +#: build/serializers.py:916 msgid "Build Line Item" msgstr "" -#: build/serializers.py:886 +#: build/serializers.py:930 msgid "bom_item.part must point to the same part as the build order" msgstr "" -#: build/serializers.py:901 stock/serializers.py:1294 +#: build/serializers.py:945 stock/serializers.py:1325 msgid "Item must be in stock" msgstr "" -#: build/serializers.py:949 order/serializers.py:1351 +#: build/serializers.py:993 order/serializers.py:1477 #, python-brace-format msgid "Available quantity ({q}) exceeded" msgstr "" -#: build/serializers.py:955 +#: build/serializers.py:999 msgid "Build output must be specified for allocation of tracked parts" msgstr "" -#: build/serializers.py:962 +#: build/serializers.py:1006 msgid "Build output cannot be specified for allocation of untracked parts" msgstr "" -#: build/serializers.py:986 order/serializers.py:1610 +#: build/serializers.py:1030 order/serializers.py:1750 msgid "Allocation items must be provided" msgstr "" -#: build/serializers.py:1049 +#: build/serializers.py:1093 msgid "Stock location where parts are to be sourced (leave blank to take from any location)" msgstr "" -#: build/serializers.py:1057 +#: build/serializers.py:1101 msgid "Exclude Location" msgstr "" -#: build/serializers.py:1058 +#: build/serializers.py:1102 msgid "Exclude stock items from this selected location" msgstr "" -#: build/serializers.py:1063 +#: build/serializers.py:1107 msgid "Interchangeable Stock" msgstr "" -#: build/serializers.py:1064 +#: build/serializers.py:1108 msgid "Stock items in multiple locations can be used interchangeably" msgstr "" -#: build/serializers.py:1069 +#: build/serializers.py:1113 msgid "Substitute Stock" msgstr "" -#: build/serializers.py:1070 +#: build/serializers.py:1114 msgid "Allow allocation of substitute parts" msgstr "" -#: build/serializers.py:1075 +#: build/serializers.py:1119 msgid "Optional Items" msgstr "" -#: build/serializers.py:1076 +#: build/serializers.py:1120 msgid "Allocate optional BOM items to build order" msgstr "" -#: build/serializers.py:1098 +#: build/serializers.py:1143 msgid "Failed to start auto-allocation task" msgstr "" -#: build/serializers.py:1181 +#: build/serializers.py:1226 stock/serializers.py:585 msgid "Supplier Part Number" msgstr "" -#: build/serializers.py:1182 company/models.py:506 +#: build/serializers.py:1227 company/models.py:503 stock/serializers.py:591 msgid "Manufacturer Part Number" msgstr "" -#: build/serializers.py:1183 stock/admin.py:53 stock/admin.py:175 -#: stock/serializers.py:457 +#: build/serializers.py:1228 stock/admin.py:53 stock/admin.py:176 +#: stock/serializers.py:467 msgid "Location Name" msgstr "" -#: build/serializers.py:1184 +#: build/serializers.py:1229 build/serializers.py:1327 msgid "Build Reference" msgstr "" -#: build/serializers.py:1185 +#: build/serializers.py:1230 msgid "BOM Reference" msgstr "" -#: build/serializers.py:1186 company/models.py:852 -#: company/templates/company/supplier_part.html:160 order/serializers.py:690 -#: stock/admin.py:228 stock/models.py:818 stock/serializers.py:1579 -#: stock/templates/stock/item_base.html:240 -#: templates/js/translated/company.js:1646 -#: templates/js/translated/purchase_order.js:1169 -#: templates/js/translated/purchase_order.js:1332 +#: build/serializers.py:1231 company/models.py:849 +#: company/templates/company/supplier_part.html:161 order/serializers.py:775 +#: stock/admin.py:229 stock/models.py:895 stock/serializers.py:1610 +#: stock/templates/stock/item_base.html:237 +#: templates/js/translated/company.js:1647 +#: templates/js/translated/purchase_order.js:1152 +#: templates/js/translated/purchase_order.js:1315 #: templates/js/translated/stock.js:1214 templates/js/translated/stock.js:1246 -#: templates/js/translated/stock.js:2509 +#: templates/js/translated/stock.js:2510 msgid "Packaging" msgstr "" -#: build/serializers.py:1189 part/admin.py:39 part/admin.py:398 -#: part/models.py:4101 part/stocktake.py:218 stock/admin.py:152 +#: build/serializers.py:1234 part/admin.py:39 part/admin.py:398 +#: part/models.py:4159 part/stocktake.py:218 stock/admin.py:153 msgid "Part ID" msgstr "" -#: build/serializers.py:1191 build/serializers.py:1280 part/admin.py:402 -#: part/models.py:4103 +#: build/serializers.py:1236 build/serializers.py:1332 part/admin.py:402 +#: part/models.py:4161 msgid "Part IPN" msgstr "" -#: build/serializers.py:1192 build/serializers.py:1282 part/admin.py:45 +#: build/serializers.py:1237 build/serializers.py:1334 part/admin.py:45 #: part/stocktake.py:220 msgid "Part Description" msgstr "" -#: build/serializers.py:1195 +#: build/serializers.py:1240 msgid "BOM Part ID" msgstr "" -#: build/serializers.py:1196 +#: build/serializers.py:1241 msgid "BOM Part Name" msgstr "" -#: build/serializers.py:1199 +#: build/serializers.py:1244 #: report/templates/report/inventree_return_order_report.html:25 -#: report/templates/report/inventree_test_report.html:88 stock/models.py:845 -#: stock/serializers.py:151 stock/templates/stock/item_base.html:311 -#: templates/js/translated/build.js:520 templates/js/translated/build.js:1540 -#: templates/js/translated/build.js:2527 -#: templates/js/translated/model_renderers.js:231 +#: report/templates/report/inventree_sales_order_shipment_report.html:45 +#: report/templates/report/inventree_test_report.html:88 stock/models.py:922 +#: stock/serializers.py:152 stock/templates/stock/item_base.html:308 +#: templates/js/translated/build.js:523 templates/js/translated/build.js:1543 +#: templates/js/translated/build.js:2534 +#: templates/js/translated/model_renderers.js:234 #: templates/js/translated/return_order.js:539 #: templates/js/translated/return_order.js:722 -#: templates/js/translated/sales_order.js:315 -#: templates/js/translated/sales_order.js:1647 -#: templates/js/translated/sales_order.js:1732 +#: templates/js/translated/sales_order.js:1628 +#: templates/js/translated/sales_order.js:1713 #: templates/js/translated/stock.js:602 msgid "Serial Number" msgstr "" -#: build/serializers.py:1212 stock/serializers.py:593 -#: templates/js/translated/build.js:1017 templates/js/translated/build.js:1164 -#: templates/js/translated/build.js:2516 +#: build/serializers.py:1257 stock/serializers.py:620 +#: templates/js/translated/build.js:1020 templates/js/translated/build.js:1167 +#: templates/js/translated/build.js:2523 msgid "Allocated Quantity" msgstr "" -#: build/serializers.py:1213 stock/templates/stock/item_base.html:340 +#: build/serializers.py:1258 stock/templates/stock/item_base.html:337 msgid "Available Quantity" msgstr "" -#: build/serializers.py:1283 +#: build/serializers.py:1335 msgid "Part Category ID" msgstr "" -#: build/serializers.py:1284 +#: build/serializers.py:1336 msgid "Part Category Name" msgstr "" -#: build/serializers.py:1291 common/models.py:1513 part/admin.py:113 -#: part/models.py:1166 templates/js/translated/table_filters.js:150 +#: build/serializers.py:1345 common/models.py:1582 part/admin.py:113 +#: part/models.py:1227 templates/js/translated/build.js:2738 +#: templates/js/translated/table_filters.js:150 #: templates/js/translated/table_filters.js:230 #: templates/js/translated/table_filters.js:783 msgid "Trackable" msgstr "" -#: build/serializers.py:1292 +#: build/serializers.py:1346 msgid "Inherited" msgstr "" -#: build/serializers.py:1293 part/models.py:4313 +#: build/serializers.py:1347 part/models.py:4370 #: part/templates/part/upload_bom.html:56 templates/js/translated/bom.js:1046 -#: templates/js/translated/build.js:2711 +#: templates/js/translated/build.js:2720 msgid "Allow Variants" msgstr "" -#: build/serializers.py:1297 part/models.py:4110 part/models.py:4584 +#: build/serializers.py:1351 part/models.py:4168 part/models.py:4646 #: stock/api.py:794 msgid "BOM Item" msgstr "" -#: build/serializers.py:1306 build/templates/build/detail.html:236 +#: build/serializers.py:1370 build/templates/build/detail.html:236 #: build/templates/build/sidebar.html:16 templates/js/translated/index.js:130 msgid "Allocated Stock" msgstr "" -#: build/serializers.py:1311 order/serializers.py:1175 part/admin.py:132 -#: part/bom.py:181 part/serializers.py:899 part/serializers.py:1602 -#: part/templates/part/part_base.html:210 templates/js/translated/bom.js:1208 -#: templates/js/translated/build.js:2804 templates/js/translated/part.js:712 +#: build/serializers.py:1375 order/serializers.py:1209 part/admin.py:132 +#: part/bom.py:186 part/serializers.py:951 part/serializers.py:1660 +#: part/templates/part/part_base.html:211 templates/js/translated/bom.js:1208 +#: templates/js/translated/build.js:2822 templates/js/translated/part.js:712 #: templates/js/translated/part.js:2155 #: templates/js/translated/table_filters.js:177 msgid "On Order" msgstr "" -#: build/serializers.py:1316 order/serializers.py:1176 part/serializers.py:1604 -#: templates/js/translated/build.js:2808 +#: build/serializers.py:1380 order/serializers.py:1210 part/serializers.py:1662 +#: templates/js/translated/build.js:2826 #: templates/js/translated/table_filters.js:367 msgid "In Production" msgstr "" -#: build/serializers.py:1321 part/bom.py:180 part/serializers.py:1629 -#: part/templates/part/part_base.html:192 -#: templates/js/translated/sales_order.js:1929 -msgid "Available Stock" -msgstr "" - -#: build/serializers.py:1325 -msgid "Available Substitute Stock" -msgstr "" - -#: build/serializers.py:1326 -msgid "Available Variant Stock" -msgstr "" - -#: build/serializers.py:1327 -msgid "Total Available Stock" -msgstr "" - -#: build/serializers.py:1328 part/serializers.py:906 +#: build/serializers.py:1384 part/serializers.py:958 msgid "External Stock" msgstr "" -#: build/status_codes.py:11 generic/states/tests.py:17 order/status_codes.py:12 -#: order/status_codes.py:42 order/status_codes.py:74 order/status_codes.py:98 +#: build/serializers.py:1385 part/bom.py:185 part/serializers.py:1687 +#: part/templates/part/part_base.html:193 +#: templates/js/translated/sales_order.js:1910 +msgid "Available Stock" +msgstr "" + +#: build/serializers.py:1386 +msgid "Available Substitute Stock" +msgstr "" + +#: build/serializers.py:1387 +msgid "Available Variant Stock" +msgstr "" + +#: build/status_codes.py:11 generic/states/tests.py:21 +#: generic/states/tests.py:131 order/status_codes.py:12 +#: order/status_codes.py:44 order/status_codes.py:76 order/status_codes.py:102 #: templates/js/translated/table_filters.js:601 msgid "Pending" msgstr "อยู่ระหว่างดำเนินการ" @@ -1722,21 +1750,21 @@ msgstr "อยู่ระหว่างดำเนินการ" msgid "Production" msgstr "" -#: build/status_codes.py:13 order/status_codes.py:14 order/status_codes.py:49 -#: order/status_codes.py:79 +#: build/status_codes.py:13 order/status_codes.py:14 order/status_codes.py:51 +#: order/status_codes.py:81 msgid "On Hold" msgstr "" -#: build/status_codes.py:14 order/status_codes.py:16 order/status_codes.py:51 -#: order/status_codes.py:82 +#: build/status_codes.py:14 order/status_codes.py:16 order/status_codes.py:53 +#: order/status_codes.py:84 msgid "Cancelled" msgstr "ยกเลิกแล้ว" -#: build/status_codes.py:15 generic/states/tests.py:19 importer/models.py:509 -#: importer/status_codes.py:19 order/status_codes.py:15 -#: order/status_codes.py:50 order/status_codes.py:81 -#: order/templates/order/order_base.html:163 -#: order/templates/order/sales_order_base.html:168 report/models.py:443 +#: build/status_codes.py:15 generic/states/tests.py:23 importer/models.py:518 +#: importer/status_codes.py:27 order/status_codes.py:15 +#: order/status_codes.py:52 order/status_codes.py:83 +#: order/templates/order/order_base.html:172 +#: order/templates/order/sales_order_base.html:169 report/models.py:451 msgid "Complete" msgstr "สำเร็จแล้ว" @@ -1744,165 +1772,162 @@ msgstr "สำเร็จแล้ว" msgid "Stock required for build order" msgstr "" -#: build/tasks.py:201 +#: build/tasks.py:260 msgid "Overdue Build Order" msgstr "" -#: build/tasks.py:206 +#: build/tasks.py:265 #, python-brace-format msgid "Build order {bo} is now overdue" msgstr "" -#: build/templates/build/build_base.html:18 +#: build/templates/build/build_base.html:19 msgid "Part thumbnail" msgstr "" -#: build/templates/build/build_base.html:38 -#: company/templates/company/supplier_part.html:35 -#: order/templates/order/order_base.html:29 -#: order/templates/order/return_order_base.html:38 -#: order/templates/order/sales_order_base.html:38 -#: part/templates/part/part_base.html:41 -#: stock/templates/stock/item_base.html:40 -#: stock/templates/stock/location.html:52 +#: build/templates/build/build_base.html:39 +#: company/templates/company/supplier_part.html:36 +#: order/templates/order/order_base.html:30 +#: order/templates/order/return_order_base.html:39 +#: order/templates/order/sales_order_base.html:39 +#: part/templates/part/part_base.html:42 +#: stock/templates/stock/item_base.html:41 +#: stock/templates/stock/location.html:53 #: templates/js/translated/filters.js:338 msgid "Barcode actions" msgstr "" -#: build/templates/build/build_base.html:42 -#: company/templates/company/supplier_part.html:39 -#: order/templates/order/order_base.html:33 -#: order/templates/order/return_order_base.html:42 -#: order/templates/order/sales_order_base.html:42 -#: part/templates/part/part_base.html:44 -#: stock/templates/stock/item_base.html:44 -#: stock/templates/stock/location.html:54 templates/qr_button.html:1 +#: build/templates/build/build_base.html:43 +#: company/templates/company/supplier_part.html:40 +#: order/templates/order/order_base.html:34 +#: order/templates/order/return_order_base.html:43 +#: order/templates/order/sales_order_base.html:43 +#: part/templates/part/part_base.html:45 +#: stock/templates/stock/item_base.html:45 +#: stock/templates/stock/location.html:55 templates/qr_button.html:1 msgid "Show QR Code" msgstr "" -#: build/templates/build/build_base.html:45 -#: company/templates/company/supplier_part.html:41 -#: order/templates/order/order_base.html:36 -#: order/templates/order/return_order_base.html:45 -#: order/templates/order/sales_order_base.html:45 -#: part/templates/part/part_base.html:47 -#: stock/templates/stock/item_base.html:47 -#: stock/templates/stock/location.html:56 +#: build/templates/build/build_base.html:46 +#: company/templates/company/supplier_part.html:42 +#: order/templates/order/order_base.html:37 +#: order/templates/order/return_order_base.html:46 +#: order/templates/order/sales_order_base.html:46 +#: part/templates/part/part_base.html:48 +#: stock/templates/stock/item_base.html:48 +#: stock/templates/stock/location.html:57 #: templates/js/translated/barcode.js:527 #: templates/js/translated/barcode.js:532 msgid "Unlink Barcode" msgstr "" -#: build/templates/build/build_base.html:47 -#: company/templates/company/supplier_part.html:43 -#: order/templates/order/order_base.html:38 -#: order/templates/order/return_order_base.html:47 -#: order/templates/order/sales_order_base.html:47 -#: part/templates/part/part_base.html:49 -#: stock/templates/stock/item_base.html:49 -#: stock/templates/stock/location.html:58 +#: build/templates/build/build_base.html:48 +#: company/templates/company/supplier_part.html:44 +#: order/templates/order/order_base.html:39 +#: order/templates/order/return_order_base.html:48 +#: order/templates/order/sales_order_base.html:48 +#: part/templates/part/part_base.html:50 +#: stock/templates/stock/item_base.html:50 +#: stock/templates/stock/location.html:59 msgid "Link Barcode" msgstr "" -#: build/templates/build/build_base.html:56 -#: order/templates/order/order_base.html:46 -#: order/templates/order/return_order_base.html:55 -#: order/templates/order/sales_order_base.html:55 +#: build/templates/build/build_base.html:57 +#: order/templates/order/order_base.html:47 +#: order/templates/order/return_order_base.html:56 +#: order/templates/order/sales_order_base.html:56 msgid "Print actions" msgstr "" -#: build/templates/build/build_base.html:60 +#: build/templates/build/build_base.html:61 msgid "Print build order report" msgstr "" -#: build/templates/build/build_base.html:67 +#: build/templates/build/build_base.html:68 msgid "Build actions" msgstr "" -#: build/templates/build/build_base.html:71 +#: build/templates/build/build_base.html:72 msgid "Edit Build" msgstr "" -#: build/templates/build/build_base.html:73 +#: build/templates/build/build_base.html:74 msgid "Duplicate Build" msgstr "" -#: build/templates/build/build_base.html:76 +#: build/templates/build/build_base.html:77 msgid "Hold Build" msgstr "" -#: build/templates/build/build_base.html:79 +#: build/templates/build/build_base.html:80 msgid "Cancel Build" msgstr "" -#: build/templates/build/build_base.html:82 +#: build/templates/build/build_base.html:83 msgid "Delete Build" msgstr "" -#: build/templates/build/build_base.html:87 -msgid "Isueue Build" -msgstr "" - #: build/templates/build/build_base.html:88 +#: build/templates/build/build_base.html:89 msgid "Issue Build" msgstr "" -#: build/templates/build/build_base.html:91 #: build/templates/build/build_base.html:92 +#: build/templates/build/build_base.html:93 msgid "Complete Build" msgstr "" -#: build/templates/build/build_base.html:115 +#: build/templates/build/build_base.html:116 msgid "Build Description" msgstr "" -#: build/templates/build/build_base.html:125 +#: build/templates/build/build_base.html:126 msgid "No build outputs have been created for this build order" msgstr "" -#: build/templates/build/build_base.html:132 +#: build/templates/build/build_base.html:133 msgid "Build Order is ready to mark as completed" msgstr "" -#: build/templates/build/build_base.html:137 +#: build/templates/build/build_base.html:138 msgid "Build Order cannot be completed as outstanding outputs remain" msgstr "" -#: build/templates/build/build_base.html:142 +#: build/templates/build/build_base.html:143 msgid "Required build quantity has not yet been completed" msgstr "" -#: build/templates/build/build_base.html:147 +#: build/templates/build/build_base.html:148 msgid "Stock has not been fully allocated to this Build Order" msgstr "" -#: build/templates/build/build_base.html:168 -#: build/templates/build/detail.html:138 order/models.py:308 -#: order/models.py:1391 order/serializers.py:174 -#: order/templates/order/order_base.html:191 -#: order/templates/order/return_order_base.html:167 -#: order/templates/order/sales_order_base.html:199 +#: build/templates/build/build_base.html:169 +#: build/templates/build/detail.html:138 order/models.py:315 +#: order/models.py:1408 order/serializers.py:254 +#: order/templates/order/order_base.html:200 +#: order/templates/order/return_order_base.html:168 +#: order/templates/order/sales_order_base.html:200 #: report/templates/report/inventree_build_order_report.html:125 -#: templates/js/translated/build.js:2411 templates/js/translated/part.js:1837 -#: templates/js/translated/purchase_order.js:1809 -#: templates/js/translated/purchase_order.js:2217 +#: templates/js/translated/build.js:2414 templates/js/translated/part.js:1837 +#: templates/js/translated/purchase_order.js:1793 +#: templates/js/translated/purchase_order.js:2201 #: templates/js/translated/return_order.js:346 #: templates/js/translated/return_order.js:749 -#: templates/js/translated/sales_order.js:871 -#: templates/js/translated/sales_order.js:1903 +#: templates/js/translated/sales_order.js:830 +#: templates/js/translated/sales_order.js:1884 msgid "Target Date" msgstr "" -#: build/templates/build/build_base.html:173 +#: build/templates/build/build_base.html:174 #, python-format msgid "This build was due on %(target)s" msgstr "" -#: build/templates/build/build_base.html:173 -#: build/templates/build/build_base.html:230 -#: order/templates/order/order_base.html:127 -#: order/templates/order/return_order_base.html:120 -#: order/templates/order/sales_order_base.html:129 +#: build/templates/build/build_base.html:174 +#: build/templates/build/build_base.html:231 +#: order/templates/order/order_base.html:128 +#: order/templates/order/return_order_base.html:121 +#: order/templates/order/sales_order_base.html:130 #: templates/js/translated/table_filters.js:97 #: templates/js/translated/table_filters.js:545 #: templates/js/translated/table_filters.js:629 @@ -1910,49 +1935,50 @@ msgstr "" msgid "Overdue" msgstr "" -#: build/templates/build/build_base.html:185 +#: build/templates/build/build_base.html:186 #: build/templates/build/detail.html:67 build/templates/build/sidebar.html:13 msgid "Completed Outputs" msgstr "" -#: build/templates/build/build_base.html:198 -#: build/templates/build/detail.html:101 order/api.py:1406 order/models.py:892 -#: order/models.py:1650 order/models.py:1765 order/models.py:1924 -#: order/templates/order/sales_order_base.html:9 -#: order/templates/order/sales_order_base.html:28 +#: build/templates/build/build_base.html:199 +#: build/templates/build/detail.html:101 order/api.py:1528 order/models.py:914 +#: order/models.py:1666 order/models.py:1794 order/models.py:1957 +#: order/templates/order/sales_order_base.html:10 +#: order/templates/order/sales_order_base.html:29 #: report/templates/report/inventree_build_order_report.html:135 #: report/templates/report/inventree_sales_order_report.html:14 -#: stock/templates/stock/item_base.html:369 +#: report/templates/report/inventree_sales_order_shipment_report.html:15 +#: stock/templates/stock/item_base.html:366 #: templates/email/overdue_sales_order.html:15 -#: templates/js/translated/pricing.js:929 -#: templates/js/translated/sales_order.js:805 -#: templates/js/translated/sales_order.js:1028 -#: templates/js/translated/stock.js:3008 +#: templates/js/translated/pricing.js:927 +#: templates/js/translated/sales_order.js:764 +#: templates/js/translated/sales_order.js:1001 +#: templates/js/translated/stock.js:3009 msgid "Sales Order" msgstr "" -#: build/templates/build/build_base.html:219 -#: build/templates/build/detail.html:94 templates/js/translated/build.js:2328 +#: build/templates/build/build_base.html:220 +#: build/templates/build/detail.html:94 templates/js/translated/build.js:2331 msgid "Priority" msgstr "" -#: build/templates/build/build_base.html:267 +#: build/templates/build/build_base.html:268 msgid "Issue Build Order" msgstr "" -#: build/templates/build/build_base.html:271 +#: build/templates/build/build_base.html:272 msgid "Issue this Build Order?" msgstr "" -#: build/templates/build/build_base.html:302 +#: build/templates/build/build_base.html:303 msgid "Delete Build Order" msgstr "" -#: build/templates/build/build_base.html:312 +#: build/templates/build/build_base.html:313 msgid "Build Order QR Code" msgstr "" -#: build/templates/build/build_base.html:324 +#: build/templates/build/build_base.html:325 msgid "Link Barcode to Build Order" msgstr "" @@ -1968,8 +1994,9 @@ msgstr "" msgid "Stock can be taken from any available location." msgstr "" -#: build/templates/build/detail.html:49 order/models.py:1532 -#: templates/js/translated/purchase_order.js:2259 +#: build/templates/build/detail.html:49 order/models.py:548 +#: order/models.py:1548 order/templates/order/order_base.html:135 +#: templates/js/translated/purchase_order.js:2243 msgid "Destination" msgstr "" @@ -1981,23 +2008,24 @@ msgstr "" msgid "Allocated Parts" msgstr "" -#: build/templates/build/detail.html:80 stock/admin.py:162 -#: stock/templates/stock/item_base.html:162 -#: templates/js/translated/build.js:1553 -#: templates/js/translated/model_renderers.js:242 -#: templates/js/translated/purchase_order.js:1326 +#: build/templates/build/detail.html:80 +#: report/templates/report/inventree_sales_order_shipment_report.html:47 +#: stock/admin.py:163 stock/templates/stock/item_base.html:159 +#: templates/js/translated/build.js:1556 +#: templates/js/translated/model_renderers.js:245 +#: templates/js/translated/purchase_order.js:1309 #: templates/js/translated/stock.js:1139 templates/js/translated/stock.js:1240 -#: templates/js/translated/stock.js:2275 templates/js/translated/stock.js:3211 +#: templates/js/translated/stock.js:2276 templates/js/translated/stock.js:3212 #: templates/js/translated/table_filters.js:320 #: templates/js/translated/table_filters.js:411 msgid "Batch" msgstr "" #: build/templates/build/detail.html:133 -#: order/templates/order/order_base.html:178 -#: order/templates/order/return_order_base.html:154 -#: order/templates/order/sales_order_base.html:193 -#: templates/js/translated/build.js:2371 +#: order/templates/order/order_base.html:187 +#: order/templates/order/return_order_base.html:155 +#: order/templates/order/sales_order_base.html:194 +#: templates/js/translated/build.js:2374 msgid "Created" msgstr "" @@ -2005,8 +2033,8 @@ msgstr "" msgid "No target date set" msgstr "" -#: build/templates/build/detail.html:149 -#: order/templates/order/sales_order_base.html:209 +#: build/templates/build/detail.html:149 order/api.py:794 +#: order/templates/order/sales_order_base.html:210 #: templates/js/translated/table_filters.js:692 msgid "Completed" msgstr "สำเร็จแล้ว" @@ -2052,7 +2080,7 @@ msgid "Order required parts" msgstr "" #: build/templates/build/detail.html:192 -#: templates/js/translated/purchase_order.js:795 +#: templates/js/translated/purchase_order.js:778 msgid "Order Parts" msgstr "" @@ -2120,7 +2148,7 @@ msgstr "" msgid "Build Order Details" msgstr "" -#: build/templates/build/sidebar.html:8 order/serializers.py:82 +#: build/templates/build/sidebar.html:8 order/serializers.py:113 #: order/templates/order/po_sidebar.html:5 #: order/templates/order/return_order_detail.html:18 #: order/templates/order/so_sidebar.html:5 @@ -2139,43 +2167,38 @@ msgstr "" msgid "Test Statistics" msgstr "" -#: common/api.py:693 +#: common/api.py:725 msgid "Is Link" msgstr "" -#: common/api.py:701 +#: common/api.py:733 msgid "Is File" msgstr "" -#: common/api.py:744 +#: common/api.py:776 msgid "User does not have permission to delete these attachments" msgstr "" -#: common/api.py:761 +#: common/api.py:793 msgid "User does not have permission to delete this attachment" msgstr "" -#: common/currency.py:132 +#: common/currency.py:134 msgid "Invalid currency code" msgstr "" -#: common/currency.py:134 +#: common/currency.py:136 msgid "Duplicate currency code" msgstr "" -#: common/currency.py:139 +#: common/currency.py:141 msgid "No valid currency codes provided" msgstr "" -#: common/currency.py:156 +#: common/currency.py:158 msgid "No plugin" msgstr "" -#: common/files.py:63 -#, python-brace-format -msgid "Unsupported file format: {fmt}" -msgstr "" - #: common/files.py:65 msgid "Error reading file (invalid encoding)" msgstr "" @@ -2192,1883 +2215,2039 @@ msgstr "" msgid "Error reading file (data could be corrupted)" msgstr "" -#: common/forms.py:12 +#: common/forms.py:12 common/forms.py:25 msgid "File" msgstr "" -#: common/forms.py:12 +#: common/forms.py:12 common/forms.py:26 msgid "Select file to upload" msgstr "" -#: common/forms.py:25 -msgid "{name.title()} File" -msgstr "" - -#: common/forms.py:26 -#, python-brace-format -msgid "Select {name} file to upload" -msgstr "" - -#: common/models.py:86 +#: common/models.py:89 msgid "Updated" msgstr "" -#: common/models.py:87 +#: common/models.py:90 msgid "Timestamp of last update" msgstr "" -#: common/models.py:120 +#: common/models.py:123 msgid "Site URL is locked by configuration" msgstr "" -#: common/models.py:150 +#: common/models.py:153 msgid "Unique project code" msgstr "" -#: common/models.py:157 +#: common/models.py:160 msgid "Project description" msgstr "" -#: common/models.py:166 +#: common/models.py:169 msgid "User or group responsible for this project" msgstr "" -#: common/models.py:783 -msgid "Settings key (must be unique - case insensitive)" +#: common/models.py:783 common/models.py:2236 common/models.py:2613 +msgid "Settings key" msgstr "" #: common/models.py:787 msgid "Settings value" msgstr "" -#: common/models.py:839 +#: common/models.py:842 msgid "Chosen value is not a valid option" msgstr "" -#: common/models.py:855 +#: common/models.py:858 msgid "Value must be a boolean value" msgstr "" -#: common/models.py:863 +#: common/models.py:866 msgid "Value must be an integer value" msgstr "" -#: common/models.py:900 +#: common/models.py:874 +msgid "Value must be a valid number" +msgstr "" + +#: common/models.py:899 +msgid "Value does not pass validation checks" +msgstr "" + +#: common/models.py:921 msgid "Key string must be unique" msgstr "" -#: common/models.py:1132 +#: common/models.py:1189 msgid "No group" msgstr "" -#: common/models.py:1231 +#: common/models.py:1288 msgid "Restart required" msgstr "" -#: common/models.py:1233 +#: common/models.py:1290 msgid "A setting has been changed which requires a server restart" msgstr "" -#: common/models.py:1240 +#: common/models.py:1297 msgid "Pending migrations" msgstr "" -#: common/models.py:1241 +#: common/models.py:1298 msgid "Number of pending database migrations" msgstr "" -#: common/models.py:1246 +#: common/models.py:1303 msgid "Server Instance Name" msgstr "" -#: common/models.py:1248 +#: common/models.py:1305 msgid "String descriptor for the server instance" msgstr "" -#: common/models.py:1252 +#: common/models.py:1309 msgid "Use instance name" msgstr "" -#: common/models.py:1253 +#: common/models.py:1310 msgid "Use the instance name in the title-bar" msgstr "" -#: common/models.py:1258 +#: common/models.py:1315 msgid "Restrict showing `about`" msgstr "" -#: common/models.py:1259 +#: common/models.py:1316 msgid "Show the `about` modal only to superusers" msgstr "" -#: common/models.py:1264 company/models.py:111 company/models.py:112 +#: common/models.py:1321 company/models.py:108 company/models.py:109 msgid "Company name" msgstr "" -#: common/models.py:1265 +#: common/models.py:1322 msgid "Internal company name" msgstr "" -#: common/models.py:1269 +#: common/models.py:1326 msgid "Base URL" msgstr "" -#: common/models.py:1270 +#: common/models.py:1327 msgid "Base URL for server instance" msgstr "" -#: common/models.py:1276 +#: common/models.py:1333 msgid "Default Currency" msgstr "" -#: common/models.py:1277 +#: common/models.py:1334 msgid "Select base currency for pricing calculations" msgstr "" -#: common/models.py:1283 +#: common/models.py:1340 msgid "Supported Currencies" msgstr "" -#: common/models.py:1284 +#: common/models.py:1341 msgid "List of supported currency codes" msgstr "" -#: common/models.py:1290 +#: common/models.py:1347 msgid "Currency Update Interval" msgstr "" -#: common/models.py:1292 +#: common/models.py:1349 msgid "How often to update exchange rates (set to zero to disable)" msgstr "" -#: common/models.py:1295 common/models.py:1351 common/models.py:1364 -#: common/models.py:1372 common/models.py:1381 common/models.py:1390 -#: common/models.py:1627 common/models.py:1649 common/models.py:1764 -#: common/models.py:2146 +#: common/models.py:1352 common/models.py:1408 common/models.py:1421 +#: common/models.py:1429 common/models.py:1438 common/models.py:1447 +#: common/models.py:1696 common/models.py:1718 common/models.py:1819 +#: common/models.py:2208 msgid "days" msgstr "" -#: common/models.py:1299 +#: common/models.py:1356 msgid "Currency Update Plugin" msgstr "" -#: common/models.py:1300 +#: common/models.py:1357 msgid "Currency update plugin to use" msgstr "" -#: common/models.py:1305 +#: common/models.py:1362 msgid "Download from URL" msgstr "" -#: common/models.py:1307 +#: common/models.py:1364 msgid "Allow download of remote images and files from external URL" msgstr "" -#: common/models.py:1313 +#: common/models.py:1370 msgid "Download Size Limit" msgstr "" -#: common/models.py:1314 +#: common/models.py:1371 msgid "Maximum allowable download size for remote image" msgstr "" -#: common/models.py:1320 +#: common/models.py:1377 msgid "User-agent used to download from URL" msgstr "" -#: common/models.py:1322 +#: common/models.py:1379 msgid "Allow to override the user-agent used to download images and files from external URL (leave blank for the default)" msgstr "" -#: common/models.py:1327 +#: common/models.py:1384 msgid "Strict URL Validation" msgstr "" -#: common/models.py:1328 +#: common/models.py:1385 msgid "Require schema specification when validating URLs" msgstr "" -#: common/models.py:1333 +#: common/models.py:1390 msgid "Require confirm" msgstr "" -#: common/models.py:1334 +#: common/models.py:1391 msgid "Require explicit user confirmation for certain action." msgstr "" -#: common/models.py:1339 +#: common/models.py:1396 msgid "Tree Depth" msgstr "" -#: common/models.py:1341 +#: common/models.py:1398 msgid "Default tree depth for treeview. Deeper levels can be lazy loaded as they are needed." msgstr "" -#: common/models.py:1347 +#: common/models.py:1404 msgid "Update Check Interval" msgstr "" -#: common/models.py:1348 +#: common/models.py:1405 msgid "How often to check for updates (set to zero to disable)" msgstr "" -#: common/models.py:1354 +#: common/models.py:1411 msgid "Automatic Backup" msgstr "" -#: common/models.py:1355 +#: common/models.py:1412 msgid "Enable automatic backup of database and media files" msgstr "" -#: common/models.py:1360 +#: common/models.py:1417 msgid "Auto Backup Interval" msgstr "" -#: common/models.py:1361 +#: common/models.py:1418 msgid "Specify number of days between automated backup events" msgstr "" -#: common/models.py:1367 +#: common/models.py:1424 msgid "Task Deletion Interval" msgstr "" -#: common/models.py:1369 +#: common/models.py:1426 msgid "Background task results will be deleted after specified number of days" msgstr "" -#: common/models.py:1376 +#: common/models.py:1433 msgid "Error Log Deletion Interval" msgstr "" -#: common/models.py:1378 +#: common/models.py:1435 msgid "Error logs will be deleted after specified number of days" msgstr "" -#: common/models.py:1385 +#: common/models.py:1442 msgid "Notification Deletion Interval" msgstr "" -#: common/models.py:1387 +#: common/models.py:1444 msgid "User notifications will be deleted after specified number of days" msgstr "" -#: common/models.py:1394 templates/InvenTree/settings/sidebar.html:31 +#: common/models.py:1451 templates/InvenTree/settings/sidebar.html:31 msgid "Barcode Support" msgstr "" -#: common/models.py:1395 +#: common/models.py:1452 msgid "Enable barcode scanner support in the web interface" msgstr "" -#: common/models.py:1400 +#: common/models.py:1457 +msgid "Store Barcode Results" +msgstr "" + +#: common/models.py:1458 +msgid "Store barcode scan results in the database" +msgstr "" + +#: common/models.py:1463 +msgid "Barcode Scans Maximum Count" +msgstr "" + +#: common/models.py:1464 +msgid "Maximum number of barcode scan results to store" +msgstr "" + +#: common/models.py:1469 msgid "Barcode Input Delay" msgstr "" -#: common/models.py:1401 +#: common/models.py:1470 msgid "Barcode input processing delay time" msgstr "" -#: common/models.py:1407 +#: common/models.py:1476 msgid "Barcode Webcam Support" msgstr "" -#: common/models.py:1408 +#: common/models.py:1477 msgid "Allow barcode scanning via webcam in browser" msgstr "" -#: common/models.py:1413 +#: common/models.py:1482 msgid "Barcode Show Data" msgstr "" -#: common/models.py:1414 +#: common/models.py:1483 msgid "Display barcode data in browser as text" msgstr "" -#: common/models.py:1419 +#: common/models.py:1488 msgid "Barcode Generation Plugin" msgstr "" -#: common/models.py:1420 +#: common/models.py:1489 msgid "Plugin to use for internal barcode data generation" msgstr "" -#: common/models.py:1425 +#: common/models.py:1494 msgid "Part Revisions" msgstr "" -#: common/models.py:1426 +#: common/models.py:1495 msgid "Enable revision field for Part" msgstr "" -#: common/models.py:1431 +#: common/models.py:1500 msgid "Assembly Revision Only" msgstr "" -#: common/models.py:1432 +#: common/models.py:1501 msgid "Only allow revisions for assembly parts" msgstr "" -#: common/models.py:1437 +#: common/models.py:1506 msgid "Allow Deletion from Assembly" msgstr "" -#: common/models.py:1438 +#: common/models.py:1507 msgid "Allow deletion of parts which are used in an assembly" msgstr "" -#: common/models.py:1443 +#: common/models.py:1512 msgid "IPN Regex" msgstr "" -#: common/models.py:1444 +#: common/models.py:1513 msgid "Regular expression pattern for matching Part IPN" msgstr "" -#: common/models.py:1447 +#: common/models.py:1516 msgid "Allow Duplicate IPN" msgstr "" -#: common/models.py:1448 +#: common/models.py:1517 msgid "Allow multiple parts to share the same IPN" msgstr "" -#: common/models.py:1453 +#: common/models.py:1522 msgid "Allow Editing IPN" msgstr "" -#: common/models.py:1454 +#: common/models.py:1523 msgid "Allow changing the IPN value while editing a part" msgstr "" -#: common/models.py:1459 +#: common/models.py:1528 msgid "Copy Part BOM Data" msgstr "" -#: common/models.py:1460 +#: common/models.py:1529 msgid "Copy BOM data by default when duplicating a part" msgstr "" -#: common/models.py:1465 +#: common/models.py:1534 msgid "Copy Part Parameter Data" msgstr "" -#: common/models.py:1466 +#: common/models.py:1535 msgid "Copy parameter data by default when duplicating a part" msgstr "" -#: common/models.py:1471 +#: common/models.py:1540 msgid "Copy Part Test Data" msgstr "" -#: common/models.py:1472 +#: common/models.py:1541 msgid "Copy test data by default when duplicating a part" msgstr "" -#: common/models.py:1477 +#: common/models.py:1546 msgid "Copy Category Parameter Templates" msgstr "" -#: common/models.py:1478 +#: common/models.py:1547 msgid "Copy category parameter templates when creating a part" msgstr "" -#: common/models.py:1483 part/admin.py:108 part/models.py:3945 -#: report/models.py:293 report/models.py:360 report/serializers.py:90 -#: report/serializers.py:131 stock/serializers.py:232 +#: common/models.py:1552 part/admin.py:108 part/models.py:4003 +#: report/models.py:301 report/models.py:368 report/serializers.py:91 +#: report/serializers.py:132 stock/serializers.py:233 #: templates/js/translated/table_filters.js:138 #: templates/js/translated/table_filters.js:775 msgid "Template" msgstr "" -#: common/models.py:1484 +#: common/models.py:1553 msgid "Parts are templates by default" msgstr "" -#: common/models.py:1490 +#: common/models.py:1559 msgid "Parts can be assembled from other components by default" msgstr "" -#: common/models.py:1495 part/admin.py:95 part/models.py:1160 -#: part/serializers.py:1596 templates/js/translated/table_filters.js:737 +#: common/models.py:1564 part/admin.py:95 part/models.py:1221 +#: part/serializers.py:1654 templates/js/translated/table_filters.js:737 msgid "Component" msgstr "" -#: common/models.py:1496 +#: common/models.py:1565 msgid "Parts can be used as sub-components by default" msgstr "" -#: common/models.py:1501 part/admin.py:100 part/models.py:1178 +#: common/models.py:1570 part/admin.py:100 part/models.py:1239 msgid "Purchaseable" msgstr "" -#: common/models.py:1502 +#: common/models.py:1571 msgid "Parts are purchaseable by default" msgstr "" -#: common/models.py:1507 part/admin.py:104 part/models.py:1184 +#: common/models.py:1576 part/admin.py:104 part/models.py:1245 #: templates/js/translated/table_filters.js:763 msgid "Salable" msgstr "" -#: common/models.py:1508 +#: common/models.py:1577 msgid "Parts are salable by default" msgstr "" -#: common/models.py:1514 +#: common/models.py:1583 msgid "Parts are trackable by default" msgstr "" -#: common/models.py:1519 part/admin.py:117 part/models.py:1200 -#: part/templates/part/part_base.html:154 +#: common/models.py:1588 part/admin.py:117 part/models.py:1261 +#: part/templates/part/part_base.html:155 #: templates/js/translated/table_filters.js:142 #: templates/js/translated/table_filters.js:787 msgid "Virtual" msgstr "" -#: common/models.py:1520 +#: common/models.py:1589 msgid "Parts are virtual by default" msgstr "" -#: common/models.py:1525 +#: common/models.py:1594 msgid "Show Import in Views" msgstr "" -#: common/models.py:1526 +#: common/models.py:1595 msgid "Display the import wizard in some part views" msgstr "" -#: common/models.py:1531 +#: common/models.py:1600 msgid "Show related parts" msgstr "" -#: common/models.py:1532 +#: common/models.py:1601 msgid "Display related parts for a part" msgstr "" -#: common/models.py:1537 +#: common/models.py:1606 msgid "Initial Stock Data" msgstr "" -#: common/models.py:1538 +#: common/models.py:1607 msgid "Allow creation of initial stock when adding a new part" msgstr "" -#: common/models.py:1543 templates/js/translated/part.js:108 +#: common/models.py:1612 templates/js/translated/part.js:108 msgid "Initial Supplier Data" msgstr "" -#: common/models.py:1545 +#: common/models.py:1614 msgid "Allow creation of initial supplier data when adding a new part" msgstr "" -#: common/models.py:1551 +#: common/models.py:1620 msgid "Part Name Display Format" msgstr "" -#: common/models.py:1552 +#: common/models.py:1621 msgid "Format to display the part name" msgstr "" -#: common/models.py:1558 +#: common/models.py:1627 msgid "Part Category Default Icon" msgstr "" -#: common/models.py:1559 +#: common/models.py:1628 msgid "Part category default icon (empty means no icon)" msgstr "" -#: common/models.py:1564 +#: common/models.py:1633 msgid "Enforce Parameter Units" msgstr "" -#: common/models.py:1566 +#: common/models.py:1635 msgid "If units are provided, parameter values must match the specified units" msgstr "" -#: common/models.py:1572 +#: common/models.py:1641 msgid "Minimum Pricing Decimal Places" msgstr "" -#: common/models.py:1574 +#: common/models.py:1643 msgid "Minimum number of decimal places to display when rendering pricing data" msgstr "" -#: common/models.py:1585 +#: common/models.py:1654 msgid "Maximum Pricing Decimal Places" msgstr "" -#: common/models.py:1587 +#: common/models.py:1656 msgid "Maximum number of decimal places to display when rendering pricing data" msgstr "" -#: common/models.py:1598 +#: common/models.py:1667 msgid "Use Supplier Pricing" msgstr "" -#: common/models.py:1600 +#: common/models.py:1669 msgid "Include supplier price breaks in overall pricing calculations" msgstr "" -#: common/models.py:1606 +#: common/models.py:1675 msgid "Purchase History Override" msgstr "" -#: common/models.py:1608 +#: common/models.py:1677 msgid "Historical purchase order pricing overrides supplier price breaks" msgstr "" -#: common/models.py:1614 +#: common/models.py:1683 msgid "Use Stock Item Pricing" msgstr "" -#: common/models.py:1616 +#: common/models.py:1685 msgid "Use pricing from manually entered stock data for pricing calculations" msgstr "" -#: common/models.py:1622 +#: common/models.py:1691 msgid "Stock Item Pricing Age" msgstr "" -#: common/models.py:1624 +#: common/models.py:1693 msgid "Exclude stock items older than this number of days from pricing calculations" msgstr "" -#: common/models.py:1631 +#: common/models.py:1700 msgid "Use Variant Pricing" msgstr "" -#: common/models.py:1632 +#: common/models.py:1701 msgid "Include variant pricing in overall pricing calculations" msgstr "" -#: common/models.py:1637 +#: common/models.py:1706 msgid "Active Variants Only" msgstr "" -#: common/models.py:1639 +#: common/models.py:1708 msgid "Only use active variant parts for calculating variant pricing" msgstr "" -#: common/models.py:1645 +#: common/models.py:1714 msgid "Pricing Rebuild Interval" msgstr "" -#: common/models.py:1647 +#: common/models.py:1716 msgid "Number of days before part pricing is automatically updated" msgstr "" -#: common/models.py:1654 +#: common/models.py:1723 msgid "Internal Prices" msgstr "" -#: common/models.py:1655 +#: common/models.py:1724 msgid "Enable internal prices for parts" msgstr "" -#: common/models.py:1660 +#: common/models.py:1729 msgid "Internal Price Override" msgstr "" -#: common/models.py:1662 +#: common/models.py:1731 msgid "If available, internal prices override price range calculations" msgstr "" -#: common/models.py:1668 +#: common/models.py:1737 msgid "Enable label printing" msgstr "" -#: common/models.py:1669 +#: common/models.py:1738 msgid "Enable label printing from the web interface" msgstr "" -#: common/models.py:1674 +#: common/models.py:1743 msgid "Label Image DPI" msgstr "" -#: common/models.py:1676 +#: common/models.py:1745 msgid "DPI resolution when generating image files to supply to label printing plugins" msgstr "" -#: common/models.py:1682 +#: common/models.py:1751 msgid "Enable Reports" msgstr "" -#: common/models.py:1683 +#: common/models.py:1752 msgid "Enable generation of reports" msgstr "" -#: common/models.py:1688 templates/stats.html:25 +#: common/models.py:1757 templates/stats.html:25 msgid "Debug Mode" msgstr "" -#: common/models.py:1689 +#: common/models.py:1758 msgid "Generate reports in debug mode (HTML output)" msgstr "" -#: common/models.py:1694 +#: common/models.py:1763 msgid "Log Report Errors" msgstr "" -#: common/models.py:1695 +#: common/models.py:1764 msgid "Log errors which occur when generating reports" msgstr "" -#: common/models.py:1700 plugin/builtin/labels/label_sheet.py:28 -#: report/models.py:301 +#: common/models.py:1769 plugin/builtin/labels/label_sheet.py:28 +#: report/models.py:309 msgid "Page Size" msgstr "" -#: common/models.py:1701 +#: common/models.py:1770 msgid "Default page size for PDF reports" msgstr "" -#: common/models.py:1706 -msgid "Enable Test Reports" -msgstr "" - -#: common/models.py:1707 -msgid "Enable generation of test reports" -msgstr "" - -#: common/models.py:1712 -msgid "Attach Test Reports" -msgstr "" - -#: common/models.py:1714 -msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item" -msgstr "" - -#: common/models.py:1720 +#: common/models.py:1775 msgid "Globally Unique Serials" msgstr "" -#: common/models.py:1721 +#: common/models.py:1776 msgid "Serial numbers for stock items must be globally unique" msgstr "" -#: common/models.py:1726 +#: common/models.py:1781 msgid "Autofill Serial Numbers" msgstr "" -#: common/models.py:1727 +#: common/models.py:1782 msgid "Autofill serial numbers in forms" msgstr "" -#: common/models.py:1732 +#: common/models.py:1787 msgid "Delete Depleted Stock" msgstr "" -#: common/models.py:1734 +#: common/models.py:1789 msgid "Determines default behavior when a stock item is depleted" msgstr "" -#: common/models.py:1740 +#: common/models.py:1795 msgid "Batch Code Template" msgstr "" -#: common/models.py:1742 +#: common/models.py:1797 msgid "Template for generating default batch codes for stock items" msgstr "" -#: common/models.py:1747 +#: common/models.py:1802 msgid "Stock Expiry" msgstr "" -#: common/models.py:1748 +#: common/models.py:1803 msgid "Enable stock expiry functionality" msgstr "" -#: common/models.py:1753 +#: common/models.py:1808 msgid "Sell Expired Stock" msgstr "" -#: common/models.py:1754 +#: common/models.py:1809 msgid "Allow sale of expired stock" msgstr "" -#: common/models.py:1759 +#: common/models.py:1814 msgid "Stock Stale Time" msgstr "" -#: common/models.py:1761 +#: common/models.py:1816 msgid "Number of days stock items are considered stale before expiring" msgstr "" -#: common/models.py:1768 +#: common/models.py:1823 msgid "Build Expired Stock" msgstr "" -#: common/models.py:1769 +#: common/models.py:1824 msgid "Allow building with expired stock" msgstr "" -#: common/models.py:1774 +#: common/models.py:1829 msgid "Stock Ownership Control" msgstr "" -#: common/models.py:1775 +#: common/models.py:1830 msgid "Enable ownership control over stock locations and items" msgstr "" -#: common/models.py:1780 +#: common/models.py:1835 msgid "Stock Location Default Icon" msgstr "" -#: common/models.py:1781 +#: common/models.py:1836 msgid "Stock location default icon (empty means no icon)" msgstr "" -#: common/models.py:1786 +#: common/models.py:1841 msgid "Show Installed Stock Items" msgstr "" -#: common/models.py:1787 +#: common/models.py:1842 msgid "Display installed stock items in stock tables" msgstr "" -#: common/models.py:1792 +#: common/models.py:1847 msgid "Check BOM when installing items" msgstr "" -#: common/models.py:1794 +#: common/models.py:1849 msgid "Installed stock items must exist in the BOM for the parent part" msgstr "" -#: common/models.py:1800 +#: common/models.py:1855 msgid "Allow Out of Stock Transfer" msgstr "" -#: common/models.py:1802 +#: common/models.py:1857 msgid "Allow stock items which are not in stock to be transferred between stock locations" msgstr "" -#: common/models.py:1808 +#: common/models.py:1863 msgid "Build Order Reference Pattern" msgstr "" -#: common/models.py:1810 +#: common/models.py:1865 msgid "Required pattern for generating Build Order reference field" msgstr "" -#: common/models.py:1816 common/models.py:1872 common/models.py:1894 -#: common/models.py:1930 +#: common/models.py:1871 common/models.py:1927 common/models.py:1949 +#: common/models.py:1985 msgid "Require Responsible Owner" msgstr "" -#: common/models.py:1817 common/models.py:1873 common/models.py:1895 -#: common/models.py:1931 +#: common/models.py:1872 common/models.py:1928 common/models.py:1950 +#: common/models.py:1986 msgid "A responsible owner must be assigned to each order" msgstr "" -#: common/models.py:1822 +#: common/models.py:1877 msgid "Require Active Part" msgstr "" -#: common/models.py:1823 +#: common/models.py:1878 msgid "Prevent build order creation for inactive parts" msgstr "" -#: common/models.py:1828 +#: common/models.py:1883 msgid "Require Locked Part" msgstr "" -#: common/models.py:1829 +#: common/models.py:1884 msgid "Prevent build order creation for unlocked parts" msgstr "" -#: common/models.py:1834 +#: common/models.py:1889 msgid "Require Valid BOM" msgstr "" -#: common/models.py:1836 +#: common/models.py:1891 msgid "Prevent build order creation unless BOM has been validated" msgstr "" -#: common/models.py:1842 +#: common/models.py:1897 msgid "Require Closed Child Orders" msgstr "" -#: common/models.py:1844 +#: common/models.py:1899 msgid "Prevent build order completion until all child orders are closed" msgstr "" -#: common/models.py:1850 +#: common/models.py:1905 msgid "Block Until Tests Pass" msgstr "" -#: common/models.py:1852 +#: common/models.py:1907 msgid "Prevent build outputs from being completed until all required tests pass" msgstr "" -#: common/models.py:1858 +#: common/models.py:1913 msgid "Enable Return Orders" msgstr "" -#: common/models.py:1859 +#: common/models.py:1914 msgid "Enable return order functionality in the user interface" msgstr "" -#: common/models.py:1864 +#: common/models.py:1919 msgid "Return Order Reference Pattern" msgstr "" -#: common/models.py:1866 +#: common/models.py:1921 msgid "Required pattern for generating Return Order reference field" msgstr "" -#: common/models.py:1878 +#: common/models.py:1933 msgid "Edit Completed Return Orders" msgstr "" -#: common/models.py:1880 +#: common/models.py:1935 msgid "Allow editing of return orders after they have been completed" msgstr "" -#: common/models.py:1886 +#: common/models.py:1941 msgid "Sales Order Reference Pattern" msgstr "" -#: common/models.py:1888 +#: common/models.py:1943 msgid "Required pattern for generating Sales Order reference field" msgstr "" -#: common/models.py:1900 +#: common/models.py:1955 msgid "Sales Order Default Shipment" msgstr "" -#: common/models.py:1901 +#: common/models.py:1956 msgid "Enable creation of default shipment with sales orders" msgstr "" -#: common/models.py:1906 +#: common/models.py:1961 msgid "Edit Completed Sales Orders" msgstr "" -#: common/models.py:1908 +#: common/models.py:1963 msgid "Allow editing of sales orders after they have been shipped or completed" msgstr "" -#: common/models.py:1914 +#: common/models.py:1969 msgid "Mark Shipped Orders as Complete" msgstr "" -#: common/models.py:1916 +#: common/models.py:1971 msgid "Sales orders marked as shipped will automatically be completed, bypassing the \"shipped\" status" msgstr "" -#: common/models.py:1922 +#: common/models.py:1977 msgid "Purchase Order Reference Pattern" msgstr "" -#: common/models.py:1924 +#: common/models.py:1979 msgid "Required pattern for generating Purchase Order reference field" msgstr "" -#: common/models.py:1936 +#: common/models.py:1991 msgid "Edit Completed Purchase Orders" msgstr "" -#: common/models.py:1938 +#: common/models.py:1993 msgid "Allow editing of purchase orders after they have been shipped or completed" msgstr "" -#: common/models.py:1944 +#: common/models.py:1999 msgid "Auto Complete Purchase Orders" msgstr "" -#: common/models.py:1946 +#: common/models.py:2001 msgid "Automatically mark purchase orders as complete when all line items are received" msgstr "" -#: common/models.py:1953 +#: common/models.py:2008 msgid "Enable password forgot" msgstr "" -#: common/models.py:1954 +#: common/models.py:2009 msgid "Enable password forgot function on the login pages" msgstr "" -#: common/models.py:1959 +#: common/models.py:2014 msgid "Enable registration" msgstr "" -#: common/models.py:1960 +#: common/models.py:2015 msgid "Enable self-registration for users on the login pages" msgstr "" -#: common/models.py:1965 +#: common/models.py:2020 msgid "Enable SSO" msgstr "" -#: common/models.py:1966 +#: common/models.py:2021 msgid "Enable SSO on the login pages" msgstr "" -#: common/models.py:1971 +#: common/models.py:2026 msgid "Enable SSO registration" msgstr "" -#: common/models.py:1973 +#: common/models.py:2028 msgid "Enable self-registration via SSO for users on the login pages" msgstr "" -#: common/models.py:1979 +#: common/models.py:2034 msgid "Enable SSO group sync" msgstr "" -#: common/models.py:1981 +#: common/models.py:2036 msgid "Enable synchronizing InvenTree groups with groups provided by the IdP" msgstr "" -#: common/models.py:1987 +#: common/models.py:2042 msgid "SSO group key" msgstr "" -#: common/models.py:1989 +#: common/models.py:2044 msgid "The name of the groups claim attribute provided by the IdP" msgstr "" -#: common/models.py:1995 +#: common/models.py:2050 msgid "SSO group map" msgstr "" -#: common/models.py:1997 +#: common/models.py:2052 msgid "A mapping from SSO groups to local InvenTree groups. If the local group does not exist, it will be created." msgstr "" -#: common/models.py:2003 +#: common/models.py:2058 msgid "Remove groups outside of SSO" msgstr "" -#: common/models.py:2005 +#: common/models.py:2060 msgid "Whether groups assigned to the user should be removed if they are not backend by the IdP. Disabling this setting might cause security issues" msgstr "" -#: common/models.py:2011 +#: common/models.py:2066 msgid "Email required" msgstr "" -#: common/models.py:2012 +#: common/models.py:2067 msgid "Require user to supply mail on signup" msgstr "" -#: common/models.py:2017 +#: common/models.py:2072 msgid "Auto-fill SSO users" msgstr "" -#: common/models.py:2019 +#: common/models.py:2074 msgid "Automatically fill out user-details from SSO account-data" msgstr "" -#: common/models.py:2025 +#: common/models.py:2080 msgid "Mail twice" msgstr "" -#: common/models.py:2026 +#: common/models.py:2081 msgid "On signup ask users twice for their mail" msgstr "" -#: common/models.py:2031 +#: common/models.py:2086 msgid "Password twice" msgstr "" -#: common/models.py:2032 +#: common/models.py:2087 msgid "On signup ask users twice for their password" msgstr "" -#: common/models.py:2037 +#: common/models.py:2092 msgid "Allowed domains" msgstr "" -#: common/models.py:2039 +#: common/models.py:2094 msgid "Restrict signup to certain domains (comma-separated, starting with @)" msgstr "" -#: common/models.py:2045 +#: common/models.py:2100 msgid "Group on signup" msgstr "" -#: common/models.py:2047 +#: common/models.py:2102 msgid "Group to which new users are assigned on registration. If SSO group sync is enabled, this group is only set if no group can be assigned from the IdP." msgstr "" -#: common/models.py:2053 +#: common/models.py:2108 msgid "Enforce MFA" msgstr "" -#: common/models.py:2054 +#: common/models.py:2109 msgid "Users must use multifactor security." msgstr "" -#: common/models.py:2059 +#: common/models.py:2114 msgid "Check plugins on startup" msgstr "" -#: common/models.py:2061 +#: common/models.py:2116 msgid "Check that all plugins are installed on startup - enable in container environments" msgstr "" -#: common/models.py:2069 +#: common/models.py:2124 msgid "Check for plugin updates" msgstr "" -#: common/models.py:2070 +#: common/models.py:2125 msgid "Enable periodic checks for updates to installed plugins" msgstr "" -#: common/models.py:2076 +#: common/models.py:2131 msgid "Enable URL integration" msgstr "" -#: common/models.py:2077 +#: common/models.py:2132 msgid "Enable plugins to add URL routes" msgstr "" -#: common/models.py:2083 +#: common/models.py:2138 msgid "Enable navigation integration" msgstr "" -#: common/models.py:2084 +#: common/models.py:2139 msgid "Enable plugins to integrate into navigation" msgstr "" -#: common/models.py:2090 +#: common/models.py:2145 msgid "Enable app integration" msgstr "" -#: common/models.py:2091 +#: common/models.py:2146 msgid "Enable plugins to add apps" msgstr "" -#: common/models.py:2097 +#: common/models.py:2152 msgid "Enable schedule integration" msgstr "" -#: common/models.py:2098 +#: common/models.py:2153 msgid "Enable plugins to run scheduled tasks" msgstr "" -#: common/models.py:2104 +#: common/models.py:2159 msgid "Enable event integration" msgstr "" -#: common/models.py:2105 +#: common/models.py:2160 msgid "Enable plugins to respond to internal events" msgstr "" -#: common/models.py:2111 +#: common/models.py:2166 +msgid "Enable interface integration" +msgstr "" + +#: common/models.py:2167 +msgid "Enable plugins to integrate into the user interface" +msgstr "" + +#: common/models.py:2173 msgid "Enable project codes" msgstr "" -#: common/models.py:2112 +#: common/models.py:2174 msgid "Enable project codes for tracking projects" msgstr "" -#: common/models.py:2117 +#: common/models.py:2179 msgid "Stocktake Functionality" msgstr "" -#: common/models.py:2119 +#: common/models.py:2181 msgid "Enable stocktake functionality for recording stock levels and calculating stock value" msgstr "" -#: common/models.py:2125 +#: common/models.py:2187 msgid "Exclude External Locations" msgstr "" -#: common/models.py:2127 +#: common/models.py:2189 msgid "Exclude stock items in external locations from stocktake calculations" msgstr "" -#: common/models.py:2133 +#: common/models.py:2195 msgid "Automatic Stocktake Period" msgstr "" -#: common/models.py:2135 +#: common/models.py:2197 msgid "Number of days between automatic stocktake recording (set to zero to disable)" msgstr "" -#: common/models.py:2141 +#: common/models.py:2203 msgid "Report Deletion Interval" msgstr "" -#: common/models.py:2143 +#: common/models.py:2205 msgid "Stocktake reports will be deleted after specified number of days" msgstr "" -#: common/models.py:2150 +#: common/models.py:2212 msgid "Display Users full names" msgstr "" -#: common/models.py:2151 +#: common/models.py:2213 msgid "Display Users full names instead of usernames" msgstr "" -#: common/models.py:2156 +#: common/models.py:2218 msgid "Enable Test Station Data" msgstr "" -#: common/models.py:2157 +#: common/models.py:2219 msgid "Enable test station data collection for test results" msgstr "" -#: common/models.py:2169 common/models.py:2549 -msgid "Settings key (must be unique - case insensitive" -msgstr "" - -#: common/models.py:2212 -msgid "Hide inactive parts" -msgstr "" - -#: common/models.py:2214 -msgid "Hide inactive parts in results displayed on the homepage" -msgstr "" - -#: common/models.py:2220 -msgid "Show subscribed parts" -msgstr "" - -#: common/models.py:2221 -msgid "Show subscribed parts on the homepage" +#: common/models.py:2224 +msgid "Create Template on Upload" msgstr "" #: common/models.py:2226 -msgid "Show subscribed categories" +msgid "Create a new test template when uploading test data which does not match an existing template" msgstr "" -#: common/models.py:2227 -msgid "Show subscribed part categories on the homepage" -msgstr "" - -#: common/models.py:2232 -msgid "Show latest parts" -msgstr "" - -#: common/models.py:2233 -msgid "Show latest parts on the homepage" -msgstr "" - -#: common/models.py:2238 -msgid "Show invalid BOMs" -msgstr "" - -#: common/models.py:2239 -msgid "Show BOMs that await validation on the homepage" -msgstr "" - -#: common/models.py:2244 -msgid "Show recent stock changes" -msgstr "" - -#: common/models.py:2245 -msgid "Show recently changed stock items on the homepage" -msgstr "" - -#: common/models.py:2250 -msgid "Show low stock" -msgstr "" - -#: common/models.py:2251 -msgid "Show low stock items on the homepage" -msgstr "" - -#: common/models.py:2256 -msgid "Show depleted stock" -msgstr "" - -#: common/models.py:2257 -msgid "Show depleted stock items on the homepage" -msgstr "" - -#: common/models.py:2262 -msgid "Show needed stock" -msgstr "" - -#: common/models.py:2263 -msgid "Show stock items needed for builds on the homepage" -msgstr "" - -#: common/models.py:2268 -msgid "Show expired stock" -msgstr "" - -#: common/models.py:2269 -msgid "Show expired stock items on the homepage" -msgstr "" - -#: common/models.py:2274 -msgid "Show stale stock" -msgstr "" - -#: common/models.py:2275 -msgid "Show stale stock items on the homepage" -msgstr "" - -#: common/models.py:2280 -msgid "Show pending builds" +#: common/models.py:2279 +msgid "Hide inactive parts" msgstr "" #: common/models.py:2281 -msgid "Show pending builds on the homepage" -msgstr "" - -#: common/models.py:2286 -msgid "Show overdue builds" +msgid "Hide inactive parts in results displayed on the homepage" msgstr "" #: common/models.py:2287 -msgid "Show overdue builds on the homepage" +msgid "Show subscribed parts" msgstr "" -#: common/models.py:2292 -msgid "Show outstanding POs" +#: common/models.py:2288 +msgid "Show subscribed parts on the homepage" msgstr "" #: common/models.py:2293 -msgid "Show outstanding POs on the homepage" +msgid "Show subscribed categories" msgstr "" -#: common/models.py:2298 -msgid "Show overdue POs" +#: common/models.py:2294 +msgid "Show subscribed part categories on the homepage" msgstr "" #: common/models.py:2299 -msgid "Show overdue POs on the homepage" +msgid "Show latest parts" msgstr "" -#: common/models.py:2304 -msgid "Show outstanding SOs" +#: common/models.py:2300 +msgid "Show latest parts on the homepage" msgstr "" #: common/models.py:2305 -msgid "Show outstanding SOs on the homepage" +msgid "Show invalid BOMs" msgstr "" -#: common/models.py:2310 -msgid "Show overdue SOs" +#: common/models.py:2306 +msgid "Show BOMs that await validation on the homepage" msgstr "" #: common/models.py:2311 -msgid "Show overdue SOs on the homepage" +msgid "Show recent stock changes" msgstr "" -#: common/models.py:2316 -msgid "Show pending SO shipments" +#: common/models.py:2312 +msgid "Show recently changed stock items on the homepage" msgstr "" #: common/models.py:2317 -msgid "Show pending SO shipments on the homepage" +msgid "Show low stock" msgstr "" -#: common/models.py:2322 -msgid "Show News" +#: common/models.py:2318 +msgid "Show low stock items on the homepage" msgstr "" #: common/models.py:2323 -msgid "Show news on the homepage" +msgid "Show depleted stock" msgstr "" -#: common/models.py:2328 -msgid "Inline label display" +#: common/models.py:2324 +msgid "Show depleted stock items on the homepage" +msgstr "" + +#: common/models.py:2329 +msgid "Show needed stock" msgstr "" #: common/models.py:2330 -msgid "Display PDF labels in the browser, instead of downloading as a file" +msgid "Show stock items needed for builds on the homepage" +msgstr "" + +#: common/models.py:2335 +msgid "Show expired stock" msgstr "" #: common/models.py:2336 -msgid "Default label printer" +msgid "Show expired stock items on the homepage" msgstr "" -#: common/models.py:2338 -msgid "Configure which label printer should be selected by default" +#: common/models.py:2341 +msgid "Show stale stock" msgstr "" -#: common/models.py:2344 -msgid "Inline report display" +#: common/models.py:2342 +msgid "Show stale stock items on the homepage" msgstr "" -#: common/models.py:2346 -msgid "Display PDF reports in the browser, instead of downloading as a file" +#: common/models.py:2347 +msgid "Show pending builds" msgstr "" -#: common/models.py:2352 -msgid "Search Parts" +#: common/models.py:2348 +msgid "Show pending builds on the homepage" msgstr "" #: common/models.py:2353 -msgid "Display parts in search preview window" +msgid "Show overdue builds" msgstr "" -#: common/models.py:2358 -msgid "Search Supplier Parts" +#: common/models.py:2354 +msgid "Show overdue builds on the homepage" msgstr "" #: common/models.py:2359 -msgid "Display supplier parts in search preview window" +msgid "Show outstanding POs" msgstr "" -#: common/models.py:2364 -msgid "Search Manufacturer Parts" +#: common/models.py:2360 +msgid "Show outstanding POs on the homepage" msgstr "" #: common/models.py:2365 -msgid "Display manufacturer parts in search preview window" +msgid "Show overdue POs" msgstr "" -#: common/models.py:2370 -msgid "Hide Inactive Parts" +#: common/models.py:2366 +msgid "Show overdue POs on the homepage" msgstr "" #: common/models.py:2371 -msgid "Excluded inactive parts from search preview window" +msgid "Show outstanding SOs" msgstr "" -#: common/models.py:2376 -msgid "Search Categories" +#: common/models.py:2372 +msgid "Show outstanding SOs on the homepage" msgstr "" #: common/models.py:2377 -msgid "Display part categories in search preview window" +msgid "Show overdue SOs" msgstr "" -#: common/models.py:2382 -msgid "Search Stock" +#: common/models.py:2378 +msgid "Show overdue SOs on the homepage" msgstr "" #: common/models.py:2383 -msgid "Display stock items in search preview window" +msgid "Show pending SO shipments" msgstr "" -#: common/models.py:2388 -msgid "Hide Unavailable Stock Items" +#: common/models.py:2384 +msgid "Show pending SO shipments on the homepage" +msgstr "" + +#: common/models.py:2389 +msgid "Show News" msgstr "" #: common/models.py:2390 -msgid "Exclude stock items which are not available from the search preview window" +msgid "Show news on the homepage" msgstr "" -#: common/models.py:2396 -msgid "Search Locations" +#: common/models.py:2395 +msgid "Inline label display" msgstr "" #: common/models.py:2397 -msgid "Display stock locations in search preview window" -msgstr "" - -#: common/models.py:2402 -msgid "Search Companies" +msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "" #: common/models.py:2403 -msgid "Display companies in search preview window" +msgid "Default label printer" msgstr "" -#: common/models.py:2408 -msgid "Search Build Orders" +#: common/models.py:2405 +msgid "Configure which label printer should be selected by default" msgstr "" -#: common/models.py:2409 -msgid "Display build orders in search preview window" +#: common/models.py:2411 +msgid "Inline report display" msgstr "" -#: common/models.py:2414 -msgid "Search Purchase Orders" +#: common/models.py:2413 +msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:2415 -msgid "Display purchase orders in search preview window" +#: common/models.py:2419 +msgid "Search Parts" msgstr "" #: common/models.py:2420 -msgid "Exclude Inactive Purchase Orders" +msgid "Display parts in search preview window" msgstr "" -#: common/models.py:2422 -msgid "Exclude inactive purchase orders from search preview window" +#: common/models.py:2425 +msgid "Search Supplier Parts" msgstr "" -#: common/models.py:2428 -msgid "Search Sales Orders" +#: common/models.py:2426 +msgid "Display supplier parts in search preview window" msgstr "" -#: common/models.py:2429 -msgid "Display sales orders in search preview window" +#: common/models.py:2431 +msgid "Search Manufacturer Parts" msgstr "" -#: common/models.py:2434 -msgid "Exclude Inactive Sales Orders" +#: common/models.py:2432 +msgid "Display manufacturer parts in search preview window" msgstr "" -#: common/models.py:2436 -msgid "Exclude inactive sales orders from search preview window" +#: common/models.py:2437 +msgid "Hide Inactive Parts" msgstr "" -#: common/models.py:2442 -msgid "Search Return Orders" +#: common/models.py:2438 +msgid "Excluded inactive parts from search preview window" msgstr "" #: common/models.py:2443 -msgid "Display return orders in search preview window" +msgid "Search Categories" msgstr "" -#: common/models.py:2448 -msgid "Exclude Inactive Return Orders" +#: common/models.py:2444 +msgid "Display part categories in search preview window" +msgstr "" + +#: common/models.py:2449 +msgid "Search Stock" msgstr "" #: common/models.py:2450 -msgid "Exclude inactive return orders from search preview window" +msgid "Display stock items in search preview window" msgstr "" -#: common/models.py:2456 -msgid "Search Preview Results" +#: common/models.py:2455 +msgid "Hide Unavailable Stock Items" msgstr "" -#: common/models.py:2458 -msgid "Number of results to show in each section of the search preview window" +#: common/models.py:2457 +msgid "Exclude stock items which are not available from the search preview window" +msgstr "" + +#: common/models.py:2463 +msgid "Search Locations" msgstr "" #: common/models.py:2464 -msgid "Regex Search" +msgid "Display stock locations in search preview window" msgstr "" -#: common/models.py:2465 -msgid "Enable regular expressions in search queries" +#: common/models.py:2469 +msgid "Search Companies" msgstr "" #: common/models.py:2470 -msgid "Whole Word Search" +msgid "Display companies in search preview window" msgstr "" -#: common/models.py:2471 -msgid "Search queries return results for whole word matches" +#: common/models.py:2475 +msgid "Search Build Orders" msgstr "" #: common/models.py:2476 -msgid "Show Quantity in Forms" +msgid "Display build orders in search preview window" msgstr "" -#: common/models.py:2477 -msgid "Display available part quantity in some forms" +#: common/models.py:2481 +msgid "Search Purchase Orders" msgstr "" #: common/models.py:2482 -msgid "Escape Key Closes Forms" +msgid "Display purchase orders in search preview window" msgstr "" -#: common/models.py:2483 -msgid "Use the escape key to close modal forms" -msgstr "" - -#: common/models.py:2488 -msgid "Fixed Navbar" +#: common/models.py:2487 +msgid "Exclude Inactive Purchase Orders" msgstr "" #: common/models.py:2489 -msgid "The navbar position is fixed to the top of the screen" -msgstr "" - -#: common/models.py:2494 -msgid "Date Format" +msgid "Exclude inactive purchase orders from search preview window" msgstr "" #: common/models.py:2495 -msgid "Preferred format for displaying dates" +msgid "Search Sales Orders" msgstr "" -#: common/models.py:2508 part/templates/part/detail.html:41 -msgid "Part Scheduling" +#: common/models.py:2496 +msgid "Display sales orders in search preview window" +msgstr "" + +#: common/models.py:2501 +msgid "Exclude Inactive Sales Orders" +msgstr "" + +#: common/models.py:2503 +msgid "Exclude inactive sales orders from search preview window" msgstr "" #: common/models.py:2509 -msgid "Display part scheduling information" +msgid "Search Return Orders" msgstr "" -#: common/models.py:2514 part/templates/part/detail.html:62 -msgid "Part Stocktake" +#: common/models.py:2510 +msgid "Display return orders in search preview window" msgstr "" -#: common/models.py:2516 -msgid "Display part stocktake information (if stocktake functionality is enabled)" +#: common/models.py:2515 +msgid "Exclude Inactive Return Orders" msgstr "" -#: common/models.py:2522 -msgid "Table String Length" +#: common/models.py:2517 +msgid "Exclude inactive return orders from search preview window" msgstr "" -#: common/models.py:2524 -msgid "Maximum length limit for strings displayed in table views" +#: common/models.py:2523 +msgid "Search Preview Results" msgstr "" -#: common/models.py:2530 -msgid "Receive error reports" +#: common/models.py:2525 +msgid "Number of results to show in each section of the search preview window" msgstr "" #: common/models.py:2531 -msgid "Receive notifications for system errors" +msgid "Regex Search" msgstr "" -#: common/models.py:2536 -msgid "Last used printing machines" +#: common/models.py:2532 +msgid "Enable regular expressions in search queries" msgstr "" #: common/models.py:2537 +msgid "Whole Word Search" +msgstr "" + +#: common/models.py:2538 +msgid "Search queries return results for whole word matches" +msgstr "" + +#: common/models.py:2543 +msgid "Show Quantity in Forms" +msgstr "" + +#: common/models.py:2544 +msgid "Display available part quantity in some forms" +msgstr "" + +#: common/models.py:2549 +msgid "Escape Key Closes Forms" +msgstr "" + +#: common/models.py:2550 +msgid "Use the escape key to close modal forms" +msgstr "" + +#: common/models.py:2555 +msgid "Fixed Navbar" +msgstr "" + +#: common/models.py:2556 +msgid "The navbar position is fixed to the top of the screen" +msgstr "" + +#: common/models.py:2561 +msgid "Date Format" +msgstr "" + +#: common/models.py:2562 +msgid "Preferred format for displaying dates" +msgstr "" + +#: common/models.py:2575 part/templates/part/detail.html:41 +msgid "Part Scheduling" +msgstr "" + +#: common/models.py:2576 +msgid "Display part scheduling information" +msgstr "" + +#: common/models.py:2581 part/templates/part/detail.html:62 +msgid "Part Stocktake" +msgstr "" + +#: common/models.py:2583 +msgid "Display part stocktake information (if stocktake functionality is enabled)" +msgstr "" + +#: common/models.py:2589 +msgid "Table String Length" +msgstr "" + +#: common/models.py:2591 +msgid "Maximum length limit for strings displayed in table views" +msgstr "" + +#: common/models.py:2597 +msgid "Receive error reports" +msgstr "" + +#: common/models.py:2598 +msgid "Receive notifications for system errors" +msgstr "" + +#: common/models.py:2603 +msgid "Last used printing machines" +msgstr "" + +#: common/models.py:2604 msgid "Save the last used printing machines for a user" msgstr "" -#: common/models.py:2557 common/models.py:2558 common/models.py:2715 -#: common/models.py:2716 common/models.py:2961 common/models.py:2962 -#: common/models.py:3288 common/models.py:3289 importer/models.py:88 -#: part/models.py:3307 part/models.py:3394 part/models.py:3468 -#: part/models.py:3496 plugin/models.py:274 plugin/models.py:275 -#: report/templates/report/inventree_test_report.html:105 -#: templates/js/translated/stock.js:3120 users/models.py:111 +#: common/models.py:2621 common/models.py:2622 common/models.py:2779 +#: common/models.py:2780 common/models.py:3025 common/models.py:3026 +#: common/models.py:3349 common/models.py:3350 common/models.py:3534 +#: importer/models.py:89 part/models.py:3358 part/models.py:3445 +#: part/models.py:3519 part/models.py:3547 plugin/models.py:313 +#: plugin/models.py:314 report/templates/report/inventree_test_report.html:105 +#: templates/js/translated/stock.js:3121 users/models.py:111 msgid "User" msgstr "ผู้ใช้งาน" -#: common/models.py:2580 +#: common/models.py:2644 msgid "Price break quantity" msgstr "" -#: common/models.py:2587 company/serializers.py:513 order/admin.py:42 -#: order/models.py:1430 order/models.py:2417 -#: templates/js/translated/company.js:1823 templates/js/translated/part.js:1892 +#: common/models.py:2651 company/serializers.py:524 order/admin.py:42 +#: order/models.py:1447 order/models.py:2456 +#: templates/js/translated/company.js:1824 templates/js/translated/part.js:1892 #: templates/js/translated/pricing.js:621 #: templates/js/translated/return_order.js:739 msgid "Price" msgstr "" -#: common/models.py:2588 +#: common/models.py:2652 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:2692 common/models.py:2877 +#: common/models.py:2756 common/models.py:2941 msgid "Endpoint" msgstr "" -#: common/models.py:2693 +#: common/models.py:2757 msgid "Endpoint at which this webhook is received" msgstr "" -#: common/models.py:2703 +#: common/models.py:2767 msgid "Name for this webhook" msgstr "" -#: common/models.py:2707 +#: common/models.py:2771 msgid "Is this webhook active" msgstr "" -#: common/models.py:2723 users/models.py:159 +#: common/models.py:2787 users/models.py:159 msgid "Token" msgstr "" -#: common/models.py:2724 +#: common/models.py:2788 msgid "Token for access" msgstr "" -#: common/models.py:2732 +#: common/models.py:2796 msgid "Secret" msgstr "" -#: common/models.py:2733 +#: common/models.py:2797 msgid "Shared secret for HMAC" msgstr "" -#: common/models.py:2841 +#: common/models.py:2905 msgid "Message ID" msgstr "" -#: common/models.py:2842 +#: common/models.py:2906 msgid "Unique identifier for this message" msgstr "" -#: common/models.py:2850 +#: common/models.py:2914 msgid "Host" msgstr "" -#: common/models.py:2851 +#: common/models.py:2915 msgid "Host from which this message was received" msgstr "" -#: common/models.py:2859 +#: common/models.py:2923 msgid "Header" msgstr "" -#: common/models.py:2860 +#: common/models.py:2924 msgid "Header of this message" msgstr "" -#: common/models.py:2867 +#: common/models.py:2931 msgid "Body" msgstr "" -#: common/models.py:2868 +#: common/models.py:2932 msgid "Body of this message" msgstr "" -#: common/models.py:2878 +#: common/models.py:2942 msgid "Endpoint on which this message was received" msgstr "" -#: common/models.py:2883 +#: common/models.py:2947 msgid "Worked on" msgstr "" -#: common/models.py:2884 +#: common/models.py:2948 msgid "Was the work on this message finished?" msgstr "" -#: common/models.py:3010 +#: common/models.py:3074 msgid "Id" msgstr "" -#: common/models.py:3012 templates/js/translated/company.js:965 -#: templates/js/translated/news.js:44 +#: common/models.py:3076 part/serializers.py:271 +#: templates/js/translated/company.js:966 templates/js/translated/news.js:44 msgid "Title" msgstr "" -#: common/models.py:3014 common/models.py:3272 company/models.py:149 -#: company/models.py:446 company/models.py:512 company/models.py:818 -#: order/models.py:302 order/models.py:1385 order/models.py:1817 -#: part/admin.py:55 part/models.py:1057 +#: common/models.py:3078 common/models.py:3333 company/models.py:146 +#: company/models.py:443 company/models.py:509 company/models.py:815 +#: order/models.py:309 order/models.py:1402 order/models.py:1846 +#: part/admin.py:55 part/models.py:1118 #: part/templates/part/part_scheduling.html:11 #: report/templates/report/inventree_build_order_report.html:164 -#: stock/admin.py:229 templates/js/translated/company.js:1319 -#: templates/js/translated/company.js:1673 templates/js/translated/order.js:376 +#: stock/admin.py:230 templates/js/translated/company.js:1320 +#: templates/js/translated/company.js:1674 templates/js/translated/order.js:376 #: templates/js/translated/part.js:2475 -#: templates/js/translated/purchase_order.js:2110 -#: templates/js/translated/purchase_order.js:2274 +#: templates/js/translated/purchase_order.js:2094 +#: templates/js/translated/purchase_order.js:2258 #: templates/js/translated/return_order.js:778 -#: templates/js/translated/sales_order.js:1092 -#: templates/js/translated/sales_order.js:2023 +#: templates/js/translated/sales_order.js:1058 +#: templates/js/translated/sales_order.js:2004 msgid "Link" msgstr "ลิงก์" -#: common/models.py:3016 templates/js/translated/news.js:60 +#: common/models.py:3080 templates/js/translated/news.js:60 msgid "Published" msgstr "" -#: common/models.py:3018 templates/InvenTree/settings/plugin_settings.html:32 +#: common/models.py:3082 templates/InvenTree/settings/plugin_settings.html:32 #: templates/js/translated/news.js:56 templates/js/translated/plugin.js:103 msgid "Author" msgstr "" -#: common/models.py:3020 templates/js/translated/news.js:52 +#: common/models.py:3084 templates/js/translated/news.js:52 msgid "Summary" msgstr "" -#: common/models.py:3023 +#: common/models.py:3087 msgid "Read" msgstr "" -#: common/models.py:3023 +#: common/models.py:3087 msgid "Was this news item read?" msgstr "" -#: common/models.py:3040 company/models.py:159 part/models.py:1067 +#: common/models.py:3104 company/models.py:156 part/models.py:1128 #: report/templates/report/inventree_bill_of_materials_report.html:126 #: report/templates/report/inventree_bill_of_materials_report.html:148 #: report/templates/report/inventree_return_order_report.html:35 -#: stock/templates/stock/item_base.html:133 templates/503.html:31 +#: stock/templates/stock/item_base.html:130 templates/503.html:31 #: templates/hover_image.html:7 templates/hover_image.html:9 #: templates/modals.html:6 msgid "Image" msgstr "" -#: common/models.py:3040 +#: common/models.py:3104 msgid "Image file" msgstr "" -#: common/models.py:3052 common/models.py:3256 +#: common/models.py:3116 common/models.py:3317 msgid "Target model type for this image" msgstr "" -#: common/models.py:3056 +#: common/models.py:3120 msgid "Target model ID for this image" msgstr "" -#: common/models.py:3078 +#: common/models.py:3142 msgid "Custom Unit" msgstr "" -#: common/models.py:3099 +#: common/models.py:3160 msgid "Unit symbol must be unique" msgstr "" -#: common/models.py:3114 +#: common/models.py:3175 msgid "Unit name must be a valid identifier" msgstr "" -#: common/models.py:3133 +#: common/models.py:3194 msgid "Unit name" msgstr "" -#: common/models.py:3140 templates/InvenTree/settings/settings_staff_js.html:75 +#: common/models.py:3201 templates/InvenTree/settings/settings_staff_js.html:75 msgid "Symbol" msgstr "" -#: common/models.py:3141 +#: common/models.py:3202 msgid "Optional unit symbol" msgstr "" -#: common/models.py:3147 templates/InvenTree/settings/settings_staff_js.html:71 +#: common/models.py:3208 templates/InvenTree/settings/settings_staff_js.html:71 msgid "Definition" msgstr "" -#: common/models.py:3148 +#: common/models.py:3209 msgid "Unit definition" msgstr "" -#: common/models.py:3206 common/models.py:3263 stock/models.py:2558 -#: templates/js/translated/attachment.js:119 +#: common/models.py:3267 common/models.py:3324 stock/models.py:2674 +#: stock/serializers.py:244 templates/js/translated/attachment.js:119 #: templates/js/translated/attachment.js:345 msgid "Attachment" msgstr "ไฟล์แนบ" -#: common/models.py:3218 +#: common/models.py:3279 msgid "Missing file" msgstr "ไม่พบไฟล์" -#: common/models.py:3219 +#: common/models.py:3280 msgid "Missing external link" msgstr "" -#: common/models.py:3264 +#: common/models.py:3325 msgid "Select file to attach" msgstr "เลือกไฟล์ที่ต้องการแนบ" -#: common/models.py:3279 templates/js/translated/attachment.js:120 +#: common/models.py:3340 templates/js/translated/attachment.js:120 #: templates/js/translated/attachment.js:360 msgid "Comment" msgstr "ความคิดเห็น" -#: common/models.py:3280 +#: common/models.py:3341 msgid "Attachment comment" msgstr "" -#: common/models.py:3296 +#: common/models.py:3357 msgid "Upload date" msgstr "" -#: common/models.py:3297 +#: common/models.py:3358 msgid "Date the file was uploaded" msgstr "" -#: common/models.py:3301 +#: common/models.py:3362 msgid "File size" msgstr "" -#: common/models.py:3301 +#: common/models.py:3362 msgid "File size in bytes" msgstr "" -#: common/models.py:3339 common/serializers.py:562 +#: common/models.py:3400 common/serializers.py:609 msgid "Invalid model type specified for attachment" msgstr "" -#: common/notifications.py:314 +#: common/models.py:3409 plugin/models.py:43 users/models.py:100 +msgid "Key" +msgstr "" + +#: common/models.py:3410 +msgid "Value that will be saved in the models database" +msgstr "" + +#: common/models.py:3413 +msgid "Name of the state" +msgstr "" + +#: common/models.py:3417 part/serializers.py:273 +msgid "Label" +msgstr "" + +#: common/models.py:3418 +msgid "Label that will be displayed in the frontend" +msgstr "" + +#: common/models.py:3424 +msgid "Color" +msgstr "" + +#: common/models.py:3425 +msgid "Color that will be displayed in the frontend" +msgstr "" + +#: common/models.py:3428 +msgid "Logical Key" +msgstr "" + +#: common/models.py:3430 +msgid "State logical key that is equal to this custom state in business logic" +msgstr "" + +#: common/models.py:3438 part/serializers.py:275 +msgid "Model" +msgstr "" + +#: common/models.py:3439 +msgid "Model this state is associated with" +msgstr "" + +#: common/models.py:3443 +msgid "Reference Status Set" +msgstr "" + +#: common/models.py:3444 +msgid "Status set that is extended with this custom state" +msgstr "" + +#: common/models.py:3450 +msgid "Custom State" +msgstr "" + +#: common/models.py:3451 +msgid "Custom States" +msgstr "" + +#: common/models.py:3466 +msgid "Model must be selected" +msgstr "" + +#: common/models.py:3469 +msgid "Key must be selected" +msgstr "" + +#: common/models.py:3472 +msgid "Logical key must be selected" +msgstr "" + +#: common/models.py:3476 +msgid "Key must be different from logical key" +msgstr "" + +#: common/models.py:3480 +msgid "Reference status must be selected" +msgstr "" + +#: common/models.py:3492 +msgid "Reference status set not found" +msgstr "" + +#: common/models.py:3498 +msgid "Key must be different from the logical keys of the reference status" +msgstr "" + +#: common/models.py:3504 +msgid "Logical key must be in the logical keys of the reference status" +msgstr "" + +#: common/models.py:3519 +msgid "Barcode Scan" +msgstr "" + +#: common/models.py:3523 importer/models.py:512 part/models.py:4009 +msgid "Data" +msgstr "" + +#: common/models.py:3524 +msgid "Barcode data" +msgstr "" + +#: common/models.py:3535 +msgid "User who scanned the barcode" +msgstr "" + +#: common/models.py:3540 importer/models.py:60 +msgid "Timestamp" +msgstr "" + +#: common/models.py:3541 +msgid "Date and time of the barcode scan" +msgstr "" + +#: common/models.py:3547 +msgid "URL endpoint which processed the barcode" +msgstr "" + +#: common/models.py:3554 order/models.py:1437 plugin/serializers.py:89 +msgid "Context" +msgstr "" + +#: common/models.py:3555 +msgid "Context data for the barcode scan" +msgstr "" + +#: common/models.py:3562 +msgid "Response" +msgstr "" + +#: common/models.py:3563 +msgid "Response data from the barcode scan" +msgstr "" + +#: common/models.py:3569 report/templates/report/inventree_test_report.html:103 +#: stock/models.py:2660 +msgid "Result" +msgstr "" + +#: common/models.py:3570 +msgid "Was the barcode scan successful?" +msgstr "" + +#: common/notifications.py:328 #, python-brace-format msgid "New {verbose_name}" msgstr "" -#: common/notifications.py:316 +#: common/notifications.py:330 msgid "A new order has been created and assigned to you" msgstr "" -#: common/notifications.py:322 +#: common/notifications.py:336 #, python-brace-format msgid "{verbose_name} canceled" msgstr "" -#: common/notifications.py:324 +#: common/notifications.py:338 msgid "A order that is assigned to you was canceled" msgstr "" -#: common/notifications.py:330 common/notifications.py:337 order/api.py:462 +#: common/notifications.py:344 common/notifications.py:351 order/api.py:440 msgid "Items Received" msgstr "" -#: common/notifications.py:332 +#: common/notifications.py:346 msgid "Items have been received against a purchase order" msgstr "" -#: common/notifications.py:339 +#: common/notifications.py:353 msgid "Items have been received against a return order" msgstr "" -#: common/notifications.py:457 +#: common/notifications.py:475 msgid "Error raised by plugin" msgstr "" -#: common/serializers.py:375 +#: common/serializers.py:423 msgid "Is Running" msgstr "" -#: common/serializers.py:381 +#: common/serializers.py:429 msgid "Pending Tasks" msgstr "" -#: common/serializers.py:387 +#: common/serializers.py:435 msgid "Scheduled Tasks" msgstr "" -#: common/serializers.py:393 +#: common/serializers.py:441 msgid "Failed Tasks" msgstr "" -#: common/serializers.py:408 +#: common/serializers.py:456 msgid "Task ID" msgstr "" -#: common/serializers.py:408 +#: common/serializers.py:456 msgid "Unique task ID" msgstr "" -#: common/serializers.py:410 +#: common/serializers.py:458 msgid "Lock" msgstr "" -#: common/serializers.py:410 +#: common/serializers.py:458 msgid "Lock time" msgstr "" -#: common/serializers.py:412 +#: common/serializers.py:460 msgid "Task name" msgstr "" -#: common/serializers.py:414 +#: common/serializers.py:462 msgid "Function" msgstr "" -#: common/serializers.py:414 +#: common/serializers.py:462 msgid "Function name" msgstr "" -#: common/serializers.py:416 +#: common/serializers.py:464 msgid "Arguments" msgstr "" -#: common/serializers.py:416 +#: common/serializers.py:464 msgid "Task arguments" msgstr "" -#: common/serializers.py:419 +#: common/serializers.py:467 msgid "Keyword Arguments" msgstr "" -#: common/serializers.py:419 +#: common/serializers.py:467 msgid "Task keyword arguments" msgstr "" -#: common/serializers.py:529 +#: common/serializers.py:577 msgid "Filename" msgstr "ชื่อไฟล์" -#: common/serializers.py:536 report/api.py:100 report/serializers.py:53 +#: common/serializers.py:584 report/api.py:100 report/serializers.py:54 msgid "Model Type" msgstr "" -#: common/serializers.py:565 +#: common/serializers.py:612 msgid "User does not have permission to create or edit attachments for this model" msgstr "" @@ -4116,15 +4295,15 @@ msgstr "" msgid "Match Items" msgstr "" -#: common/views.py:401 +#: common/views.py:397 msgid "Fields matching failed" msgstr "" -#: common/views.py:464 +#: common/views.py:460 msgid "Parts imported" msgstr "" -#: common/views.py:494 order/templates/order/order_wizard/match_fields.html:27 +#: common/views.py:490 order/templates/order/order_wizard/match_fields.html:27 #: order/templates/order/order_wizard/match_parts.html:19 #: order/templates/order/order_wizard/po_upload.html:49 #: part/templates/part/import_wizard/match_fields.html:27 @@ -4155,429 +4334,429 @@ msgstr "" msgid "Supplier is Active" msgstr "" -#: company/models.py:100 company/models.py:371 +#: company/models.py:97 company/models.py:368 #: company/templates/company/company_base.html:8 #: company/templates/company/company_base.html:12 stock/api.py:812 -#: templates/InvenTree/search.html:178 templates/js/translated/company.js:496 +#: templates/InvenTree/search.html:178 templates/js/translated/company.js:497 msgid "Company" msgstr "" -#: company/models.py:101 company/views.py:51 +#: company/models.py:98 company/views.py:51 #: templates/js/translated/search.js:192 msgid "Companies" msgstr "" -#: company/models.py:117 +#: company/models.py:114 msgid "Company description" msgstr "" -#: company/models.py:118 +#: company/models.py:115 msgid "Description of the company" msgstr "" -#: company/models.py:123 company/templates/company/company_base.html:106 +#: company/models.py:120 company/templates/company/company_base.html:106 #: templates/InvenTree/settings/plugin_settings.html:54 -#: templates/js/translated/company.js:532 +#: templates/js/translated/company.js:533 msgid "Website" msgstr "" -#: company/models.py:123 +#: company/models.py:120 msgid "Company website URL" msgstr "" -#: company/models.py:128 +#: company/models.py:125 msgid "Phone number" msgstr "" -#: company/models.py:130 +#: company/models.py:127 msgid "Contact phone number" msgstr "" -#: company/models.py:137 +#: company/models.py:134 msgid "Contact email address" msgstr "" -#: company/models.py:142 company/models.py:275 -#: company/templates/company/company_base.html:145 order/models.py:342 -#: order/templates/order/order_base.html:208 -#: order/templates/order/return_order_base.html:177 -#: order/templates/order/sales_order_base.html:221 +#: company/models.py:139 company/models.py:272 +#: company/templates/company/company_base.html:145 order/models.py:349 +#: order/templates/order/order_base.html:217 +#: order/templates/order/return_order_base.html:178 +#: order/templates/order/sales_order_base.html:222 msgid "Contact" msgstr "" -#: company/models.py:144 +#: company/models.py:141 msgid "Point of contact" msgstr "" -#: company/models.py:150 +#: company/models.py:147 msgid "Link to external company information" msgstr "" -#: company/models.py:163 +#: company/models.py:160 msgid "Is this company active?" msgstr "" -#: company/models.py:168 +#: company/models.py:165 msgid "Is customer" msgstr "" -#: company/models.py:169 +#: company/models.py:166 msgid "Do you sell items to this company?" msgstr "" -#: company/models.py:174 +#: company/models.py:171 msgid "Is supplier" msgstr "" -#: company/models.py:175 +#: company/models.py:172 msgid "Do you purchase items from this company?" msgstr "" -#: company/models.py:180 +#: company/models.py:177 msgid "Is manufacturer" msgstr "" -#: company/models.py:181 +#: company/models.py:178 msgid "Does this company manufacture parts?" msgstr "" -#: company/models.py:189 +#: company/models.py:186 msgid "Default currency used for this company" msgstr "" -#: company/models.py:314 company/templates/company/company_base.html:124 -#: order/models.py:352 order/templates/order/order_base.html:215 -#: order/templates/order/return_order_base.html:184 -#: order/templates/order/sales_order_base.html:228 +#: company/models.py:311 company/templates/company/company_base.html:124 +#: order/models.py:359 order/templates/order/order_base.html:224 +#: order/templates/order/return_order_base.html:185 +#: order/templates/order/sales_order_base.html:229 msgid "Address" msgstr "" -#: company/models.py:315 company/templates/company/sidebar.html:35 +#: company/models.py:312 company/templates/company/sidebar.html:35 msgid "Addresses" msgstr "" -#: company/models.py:372 +#: company/models.py:369 msgid "Select company" msgstr "" -#: company/models.py:377 +#: company/models.py:374 msgid "Address title" msgstr "" -#: company/models.py:378 +#: company/models.py:375 msgid "Title describing the address entry" msgstr "" -#: company/models.py:384 +#: company/models.py:381 msgid "Primary address" msgstr "" -#: company/models.py:385 +#: company/models.py:382 msgid "Set as primary address" msgstr "" -#: company/models.py:390 templates/js/translated/company.js:914 -#: templates/js/translated/company.js:971 +#: company/models.py:387 templates/js/translated/company.js:915 +#: templates/js/translated/company.js:972 msgid "Line 1" msgstr "" -#: company/models.py:391 +#: company/models.py:388 msgid "Address line 1" msgstr "" -#: company/models.py:397 templates/js/translated/company.js:915 -#: templates/js/translated/company.js:977 +#: company/models.py:394 templates/js/translated/company.js:916 +#: templates/js/translated/company.js:978 msgid "Line 2" msgstr "" -#: company/models.py:398 +#: company/models.py:395 msgid "Address line 2" msgstr "" -#: company/models.py:404 company/models.py:405 -#: templates/js/translated/company.js:983 +#: company/models.py:401 company/models.py:402 +#: templates/js/translated/company.js:984 msgid "Postal code" msgstr "" -#: company/models.py:411 +#: company/models.py:408 msgid "City/Region" msgstr "" -#: company/models.py:412 +#: company/models.py:409 msgid "Postal code city/region" msgstr "" -#: company/models.py:418 +#: company/models.py:415 msgid "State/Province" msgstr "" -#: company/models.py:419 +#: company/models.py:416 msgid "State or province" msgstr "" -#: company/models.py:425 templates/js/translated/company.js:1001 +#: company/models.py:422 templates/js/translated/company.js:1002 msgid "Country" msgstr "" -#: company/models.py:426 +#: company/models.py:423 msgid "Address country" msgstr "" -#: company/models.py:432 +#: company/models.py:429 msgid "Courier shipping notes" msgstr "" -#: company/models.py:433 +#: company/models.py:430 msgid "Notes for shipping courier" msgstr "" -#: company/models.py:439 +#: company/models.py:436 msgid "Internal shipping notes" msgstr "" -#: company/models.py:440 +#: company/models.py:437 msgid "Shipping notes for internal use" msgstr "" -#: company/models.py:447 +#: company/models.py:444 msgid "Link to address information (external)" msgstr "" -#: company/models.py:470 company/models.py:587 company/models.py:811 +#: company/models.py:467 company/models.py:584 company/models.py:808 #: company/templates/company/manufacturer_part.html:7 #: company/templates/company/manufacturer_part.html:24 -#: stock/templates/stock/item_base.html:217 +#: stock/templates/stock/item_base.html:214 msgid "Manufacturer Part" msgstr "" -#: company/models.py:487 company/models.py:779 stock/models.py:787 -#: stock/serializers.py:445 stock/templates/stock/item_base.html:142 +#: company/models.py:484 company/models.py:776 stock/models.py:864 +#: stock/serializers.py:455 stock/templates/stock/item_base.html:139 #: templates/js/translated/bom.js:622 msgid "Base Part" msgstr "" -#: company/models.py:489 company/models.py:781 +#: company/models.py:486 company/models.py:778 msgid "Select part" msgstr "" -#: company/models.py:498 company/templates/company/company_base.html:82 +#: company/models.py:495 company/templates/company/company_base.html:82 #: company/templates/company/manufacturer_part.html:90 -#: company/templates/company/supplier_part.html:145 part/serializers.py:554 -#: stock/templates/stock/item_base.html:207 -#: templates/js/translated/company.js:507 -#: templates/js/translated/company.js:1118 -#: templates/js/translated/company.js:1296 -#: templates/js/translated/company.js:1611 +#: company/templates/company/supplier_part.html:146 part/serializers.py:598 +#: stock/templates/stock/item_base.html:204 +#: templates/js/translated/company.js:508 +#: templates/js/translated/company.js:1119 +#: templates/js/translated/company.js:1297 +#: templates/js/translated/company.js:1612 #: templates/js/translated/table_filters.js:812 msgid "Manufacturer" msgstr "" -#: company/models.py:499 +#: company/models.py:496 msgid "Select manufacturer" msgstr "" -#: company/models.py:505 company/templates/company/manufacturer_part.html:101 -#: company/templates/company/supplier_part.html:153 order/serializers.py:556 -#: part/serializers.py:564 templates/js/translated/company.js:351 -#: templates/js/translated/company.js:1117 -#: templates/js/translated/company.js:1312 -#: templates/js/translated/company.js:1630 templates/js/translated/part.js:1807 -#: templates/js/translated/purchase_order.js:1921 -#: templates/js/translated/purchase_order.js:2123 +#: company/models.py:502 company/templates/company/manufacturer_part.html:101 +#: company/templates/company/supplier_part.html:154 order/serializers.py:641 +#: part/serializers.py:608 templates/js/translated/company.js:352 +#: templates/js/translated/company.js:1118 +#: templates/js/translated/company.js:1313 +#: templates/js/translated/company.js:1631 templates/js/translated/part.js:1807 +#: templates/js/translated/purchase_order.js:1905 +#: templates/js/translated/purchase_order.js:2107 msgid "MPN" msgstr "" -#: company/models.py:513 +#: company/models.py:510 msgid "URL for external manufacturer part link" msgstr "" -#: company/models.py:522 +#: company/models.py:519 msgid "Manufacturer part description" msgstr "" -#: company/models.py:575 +#: company/models.py:572 msgid "Manufacturer Part Parameter" msgstr "" -#: company/models.py:594 +#: company/models.py:591 msgid "Parameter name" msgstr "" -#: company/models.py:600 report/templates/report/inventree_test_report.html:104 -#: stock/models.py:2550 templates/js/translated/company.js:1166 -#: templates/js/translated/company.js:1419 templates/js/translated/part.js:1499 +#: company/models.py:597 report/templates/report/inventree_test_report.html:104 +#: stock/models.py:2666 templates/js/translated/company.js:1167 +#: templates/js/translated/company.js:1420 templates/js/translated/part.js:1499 #: templates/js/translated/stock.js:1607 msgid "Value" msgstr "" -#: company/models.py:601 +#: company/models.py:598 msgid "Parameter value" msgstr "" -#: company/models.py:608 company/templates/company/supplier_part.html:168 -#: part/admin.py:57 part/models.py:1147 part/models.py:3771 -#: part/templates/part/part_base.html:293 -#: templates/js/translated/company.js:1425 templates/js/translated/part.js:1518 +#: company/models.py:605 company/templates/company/supplier_part.html:169 +#: part/admin.py:57 part/models.py:1208 part/models.py:3822 +#: part/templates/part/part_base.html:301 +#: templates/js/translated/company.js:1426 templates/js/translated/part.js:1518 #: templates/js/translated/part.js:1622 templates/js/translated/part.js:2376 msgid "Units" msgstr "" -#: company/models.py:609 +#: company/models.py:606 msgid "Parameter units" msgstr "" -#: company/models.py:662 company/templates/company/supplier_part.html:7 -#: company/templates/company/supplier_part.html:24 order/api.py:442 -#: order/serializers.py:491 stock/models.py:798 -#: stock/templates/stock/item_base.html:233 -#: templates/js/translated/build.js:1052 -#: templates/js/translated/company.js:1600 -#: templates/js/translated/purchase_order.js:752 -#: templates/js/translated/stock.js:2365 +#: company/models.py:659 company/templates/company/supplier_part.html:8 +#: company/templates/company/supplier_part.html:25 order/api.py:392 +#: order/serializers.py:576 stock/models.py:875 +#: stock/templates/stock/item_base.html:230 +#: templates/js/translated/build.js:1055 +#: templates/js/translated/company.js:1601 +#: templates/js/translated/purchase_order.js:735 +#: templates/js/translated/stock.js:2366 msgid "Supplier Part" msgstr "" -#: company/models.py:719 +#: company/models.py:716 msgid "Pack units must be compatible with the base part units" msgstr "" -#: company/models.py:726 +#: company/models.py:723 msgid "Pack units must be greater than zero" msgstr "" -#: company/models.py:740 +#: company/models.py:737 msgid "Linked manufacturer part must reference the same base part" msgstr "" -#: company/models.py:789 company/templates/company/company_base.html:87 -#: company/templates/company/supplier_part.html:129 order/models.py:491 -#: order/templates/order/order_base.html:141 part/bom.py:280 part/bom.py:318 -#: part/serializers.py:538 plugin/builtin/suppliers/digikey.py:25 +#: company/models.py:786 company/templates/company/company_base.html:87 +#: company/templates/company/supplier_part.html:130 order/models.py:503 +#: order/templates/order/order_base.html:150 part/bom.py:279 part/bom.py:314 +#: part/serializers.py:582 plugin/builtin/suppliers/digikey.py:25 #: plugin/builtin/suppliers/lcsc.py:26 plugin/builtin/suppliers/mouser.py:24 -#: plugin/builtin/suppliers/tme.py:26 stock/templates/stock/item_base.html:224 +#: plugin/builtin/suppliers/tme.py:26 stock/templates/stock/item_base.html:221 #: templates/email/overdue_purchase_order.html:16 -#: templates/js/translated/company.js:350 -#: templates/js/translated/company.js:511 -#: templates/js/translated/company.js:1584 templates/js/translated/part.js:1775 +#: templates/js/translated/company.js:351 +#: templates/js/translated/company.js:512 +#: templates/js/translated/company.js:1585 templates/js/translated/part.js:1775 #: templates/js/translated/pricing.js:498 -#: templates/js/translated/purchase_order.js:1759 +#: templates/js/translated/purchase_order.js:1743 #: templates/js/translated/table_filters.js:816 msgid "Supplier" msgstr "" -#: company/models.py:790 +#: company/models.py:787 msgid "Select supplier" msgstr "" -#: company/models.py:796 part/serializers.py:549 +#: company/models.py:793 part/serializers.py:593 msgid "Supplier stock keeping unit" msgstr "" -#: company/models.py:802 +#: company/models.py:799 msgid "Is this supplier part active?" msgstr "" -#: company/models.py:812 +#: company/models.py:809 msgid "Select manufacturer part" msgstr "" -#: company/models.py:819 +#: company/models.py:816 msgid "URL for external supplier part link" msgstr "" -#: company/models.py:828 +#: company/models.py:825 msgid "Supplier part description" msgstr "" -#: company/models.py:835 company/templates/company/supplier_part.html:187 -#: order/serializers.py:698 part/admin.py:415 part/models.py:4288 +#: company/models.py:832 company/templates/company/supplier_part.html:188 +#: order/serializers.py:783 part/admin.py:415 part/models.py:4345 #: part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_bill_of_materials_report.html:140 #: report/templates/report/inventree_purchase_order_report.html:32 #: report/templates/report/inventree_return_order_report.html:27 #: report/templates/report/inventree_sales_order_report.html:32 #: report/templates/report/inventree_stock_location_report.html:105 -#: stock/serializers.py:776 templates/js/translated/purchase_order.js:1185 -#: templates/js/translated/purchase_order.js:1344 +#: stock/serializers.py:807 templates/js/translated/purchase_order.js:1168 +#: templates/js/translated/purchase_order.js:1327 msgid "Note" msgstr "" -#: company/models.py:844 part/models.py:2117 +#: company/models.py:841 part/models.py:2177 msgid "base cost" msgstr "" -#: company/models.py:845 part/models.py:2118 +#: company/models.py:842 part/models.py:2178 msgid "Minimum charge (e.g. stocking fee)" msgstr "" -#: company/models.py:853 +#: company/models.py:850 msgid "Part packaging" msgstr "" -#: company/models.py:858 templates/js/translated/company.js:1651 +#: company/models.py:855 templates/js/translated/company.js:1652 #: templates/js/translated/part.js:1828 templates/js/translated/part.js:1884 -#: templates/js/translated/purchase_order.js:311 -#: templates/js/translated/purchase_order.js:841 -#: templates/js/translated/purchase_order.js:1103 -#: templates/js/translated/purchase_order.js:2154 -#: templates/js/translated/purchase_order.js:2171 +#: templates/js/translated/purchase_order.js:294 +#: templates/js/translated/purchase_order.js:824 +#: templates/js/translated/purchase_order.js:1086 +#: templates/js/translated/purchase_order.js:2138 +#: templates/js/translated/purchase_order.js:2155 msgid "Pack Quantity" msgstr "" -#: company/models.py:860 +#: company/models.py:857 msgid "Total quantity supplied in a single pack. Leave empty for single items." msgstr "" -#: company/models.py:879 part/models.py:2124 +#: company/models.py:876 part/models.py:2184 msgid "multiple" msgstr "" -#: company/models.py:880 +#: company/models.py:877 msgid "Order multiple" msgstr "" -#: company/models.py:892 +#: company/models.py:889 msgid "Quantity available from supplier" msgstr "" -#: company/models.py:898 +#: company/models.py:895 msgid "Availability Updated" msgstr "" -#: company/models.py:899 +#: company/models.py:896 msgid "Date of last update of availability data" msgstr "" -#: company/models.py:1027 +#: company/models.py:1024 msgid "Supplier Price Break" msgstr "" -#: company/serializers.py:174 +#: company/serializers.py:178 msgid "Default currency used for this supplier" msgstr "" -#: company/serializers.py:210 +#: company/serializers.py:214 msgid "Company Name" msgstr "" -#: company/serializers.py:393 part/admin.py:126 part/serializers.py:898 -#: part/templates/part/part_base.html:197 -#: templates/js/translated/company.js:1689 +#: company/serializers.py:397 part/admin.py:126 part/serializers.py:950 +#: part/templates/part/part_base.html:198 stock/serializers.py:474 +#: templates/js/translated/company.js:1690 #: templates/js/translated/table_filters.js:362 msgid "In Stock" msgstr "" #: company/templates/company/company_base.html:16 -#: part/templates/part/part_base.html:146 -#: templates/js/translated/company.js:1287 -#: templates/js/translated/company.js:1575 -#: templates/js/translated/model_renderers.js:313 +#: part/templates/part/part_base.html:147 +#: templates/js/translated/company.js:1288 +#: templates/js/translated/company.js:1576 +#: templates/js/translated/model_renderers.js:316 #: templates/js/translated/part.js:817 templates/js/translated/part.js:1225 msgid "Inactive" msgstr "" #: company/templates/company/company_base.html:27 -#: templates/js/translated/purchase_order.js:242 +#: templates/js/translated/purchase_order.js:224 msgid "Create Purchase Order" msgstr "" @@ -4590,7 +4769,7 @@ msgid "Edit company information" msgstr "" #: company/templates/company/company_base.html:39 -#: templates/js/translated/company.js:445 +#: templates/js/translated/company.js:446 msgid "Edit Company" msgstr "" @@ -4605,11 +4784,12 @@ msgstr "" #: company/templates/company/company_base.html:53 #: company/templates/company/manufacturer_part.html:51 -#: company/templates/company/supplier_part.html:83 +#: company/templates/company/supplier_part.html:84 #: part/templates/part/part_thumb.html:20 #: report/templates/report/inventree_build_order_report.html:98 #: report/templates/report/inventree_purchase_order_report.html:40 #: report/templates/report/inventree_sales_order_report.html:40 +#: report/templates/report/inventree_sales_order_shipment_report.html:37 #: report/templates/report/inventree_test_report.html:84 #: report/templates/report/inventree_test_report.html:162 msgid "Part image" @@ -4630,16 +4810,16 @@ msgstr "" msgid "Delete image" msgstr "" -#: company/templates/company/company_base.html:92 order/models.py:990 -#: order/models.py:2147 order/templates/order/return_order_base.html:134 -#: order/templates/order/sales_order_base.html:151 stock/models.py:840 -#: stock/models.py:841 stock/serializers.py:1329 -#: stock/templates/stock/item_base.html:405 +#: company/templates/company/company_base.html:92 order/models.py:1017 +#: order/models.py:2186 order/templates/order/return_order_base.html:135 +#: order/templates/order/sales_order_base.html:152 stock/models.py:917 +#: stock/models.py:918 stock/serializers.py:1360 +#: stock/templates/stock/item_base.html:402 #: templates/email/overdue_sales_order.html:16 -#: templates/js/translated/company.js:503 +#: templates/js/translated/company.js:504 #: templates/js/translated/return_order.js:295 -#: templates/js/translated/sales_order.js:820 -#: templates/js/translated/stock.js:3043 +#: templates/js/translated/sales_order.js:779 +#: templates/js/translated/stock.js:3044 #: templates/js/translated/table_filters.js:820 msgid "Customer" msgstr "" @@ -4653,7 +4833,7 @@ msgid "Phone" msgstr "" #: company/templates/company/company_base.html:211 -#: part/templates/part/part_base.html:536 +#: part/templates/part/part_base.html:544 msgid "Remove Image" msgstr "" @@ -4662,19 +4842,19 @@ msgid "Remove associated image from this company" msgstr "" #: company/templates/company/company_base.html:214 -#: part/templates/part/part_base.html:539 +#: part/templates/part/part_base.html:547 #: templates/InvenTree/settings/user.html:88 #: templates/InvenTree/settings/user_sso.html:43 msgid "Remove" msgstr "" #: company/templates/company/company_base.html:243 -#: part/templates/part/part_base.html:568 +#: part/templates/part/part_base.html:576 msgid "Upload Image" msgstr "" #: company/templates/company/company_base.html:258 -#: part/templates/part/part_base.html:622 +#: part/templates/part/part_base.html:630 msgid "Download Image" msgstr "" @@ -4714,7 +4894,7 @@ msgstr "" #: company/templates/company/detail.html:75 #: company/templates/company/sidebar.html:12 #: company/templates/company/supplier_part_sidebar.html:7 -#: order/templates/order/order_base.html:13 +#: order/templates/order/order_base.html:14 #: order/templates/order/purchase_orders.html:8 #: order/templates/order/purchase_orders.html:12 #: part/templates/part/detail.html:122 part/templates/part/part_sidebar.html:35 @@ -4737,7 +4917,7 @@ msgstr "" #: company/templates/company/detail.html:101 #: company/templates/company/sidebar.html:21 -#: order/templates/order/sales_order_base.html:13 +#: order/templates/order/sales_order_base.html:14 #: order/templates/order/sales_orders.html:8 #: order/templates/order/sales_orders.html:15 #: part/templates/part/detail.html:143 part/templates/part/part_sidebar.html:39 @@ -4764,7 +4944,7 @@ msgstr "" #: company/templates/company/detail.html:142 #: company/templates/company/sidebar.html:29 -#: order/templates/order/return_order_base.html:13 +#: order/templates/order/return_order_base.html:14 #: order/templates/order/return_orders.html:8 #: order/templates/order/return_orders.html:15 #: templates/InvenTree/settings/sidebar.html:61 @@ -4811,24 +4991,24 @@ msgid "Manufacturers" msgstr "" #: company/templates/company/manufacturer_part.html:35 -#: company/templates/company/supplier_part.html:227 -#: part/templates/part/detail.html:125 part/templates/part/part_base.html:83 +#: company/templates/company/supplier_part.html:228 +#: part/templates/part/detail.html:125 part/templates/part/part_base.html:84 msgid "Order part" msgstr "" #: company/templates/company/manufacturer_part.html:39 -#: templates/js/translated/company.js:1343 +#: templates/js/translated/company.js:1344 msgid "Edit manufacturer part" msgstr "" #: company/templates/company/manufacturer_part.html:43 -#: templates/js/translated/company.js:1344 +#: templates/js/translated/company.js:1345 msgid "Delete manufacturer part" msgstr "" #: company/templates/company/manufacturer_part.html:65 -#: company/templates/company/supplier_part.html:97 order/api.py:448 -#: order/serializers.py:564 +#: company/templates/company/supplier_part.html:98 order/api.py:411 +#: order/serializers.py:649 msgid "Internal Part" msgstr "" @@ -4837,8 +5017,8 @@ msgid "No manufacturer information available" msgstr "" #: company/templates/company/manufacturer_part.html:119 -#: company/templates/company/supplier_part.html:15 company/views.py:31 -#: part/admin.py:122 part/serializers.py:904 +#: company/templates/company/supplier_part.html:16 company/views.py:31 +#: part/admin.py:122 part/serializers.py:956 #: part/templates/part/part_sidebar.html:33 templates/InvenTree/search.html:190 #: templates/navbar.html:48 msgid "Suppliers" @@ -4887,112 +5067,113 @@ msgstr "" msgid "Contacts" msgstr "" -#: company/templates/company/supplier_part.html:50 -#: templates/js/translated/company.js:1526 +#: company/templates/company/supplier_part.html:51 +#: templates/js/translated/company.js:1527 msgid "Supplier part actions" msgstr "" -#: company/templates/company/supplier_part.html:55 #: company/templates/company/supplier_part.html:56 -#: company/templates/company/supplier_part.html:228 +#: company/templates/company/supplier_part.html:57 +#: company/templates/company/supplier_part.html:229 #: part/templates/part/detail.html:126 msgid "Order Part" msgstr "" -#: company/templates/company/supplier_part.html:60 #: company/templates/company/supplier_part.html:61 +#: company/templates/company/supplier_part.html:62 msgid "Update Availability" msgstr "" -#: company/templates/company/supplier_part.html:63 #: company/templates/company/supplier_part.html:64 -#: templates/js/translated/company.js:294 +#: company/templates/company/supplier_part.html:65 +#: templates/js/translated/company.js:295 msgid "Edit Supplier Part" msgstr "" -#: company/templates/company/supplier_part.html:68 #: company/templates/company/supplier_part.html:69 -#: templates/js/translated/company.js:269 +#: company/templates/company/supplier_part.html:70 +#: templates/js/translated/company.js:270 msgid "Duplicate Supplier Part" msgstr "" -#: company/templates/company/supplier_part.html:73 +#: company/templates/company/supplier_part.html:74 msgid "Delete Supplier Part" msgstr "" -#: company/templates/company/supplier_part.html:74 +#: company/templates/company/supplier_part.html:75 msgid "Delete Supplier Part" msgstr "" -#: company/templates/company/supplier_part.html:133 +#: company/templates/company/supplier_part.html:134 +#: order/templates/order/order_base.html:155 msgid "No supplier information available" msgstr "" -#: company/templates/company/supplier_part.html:139 order/serializers.py:553 -#: part/bom.py:287 part/bom.py:319 part/serializers.py:548 -#: templates/js/translated/company.js:349 templates/js/translated/part.js:1793 +#: company/templates/company/supplier_part.html:140 order/serializers.py:638 +#: part/bom.py:286 part/bom.py:315 part/serializers.py:592 +#: templates/js/translated/company.js:350 templates/js/translated/part.js:1793 #: templates/js/translated/pricing.js:510 -#: templates/js/translated/purchase_order.js:1920 -#: templates/js/translated/purchase_order.js:2098 +#: templates/js/translated/purchase_order.js:1904 +#: templates/js/translated/purchase_order.js:2082 msgid "SKU" msgstr "" -#: company/templates/company/supplier_part.html:206 +#: company/templates/company/supplier_part.html:207 msgid "Supplier Part Stock" msgstr "" -#: company/templates/company/supplier_part.html:209 -#: part/templates/part/detail.html:24 stock/templates/stock/location.html:204 +#: company/templates/company/supplier_part.html:210 +#: part/templates/part/detail.html:24 stock/templates/stock/location.html:205 msgid "Create new stock item" msgstr "" -#: company/templates/company/supplier_part.html:210 -#: part/templates/part/detail.html:25 stock/templates/stock/location.html:205 +#: company/templates/company/supplier_part.html:211 +#: part/templates/part/detail.html:25 stock/templates/stock/location.html:206 #: templates/js/translated/stock.js:543 msgid "New Stock Item" msgstr "" -#: company/templates/company/supplier_part.html:223 +#: company/templates/company/supplier_part.html:224 msgid "Supplier Part Orders" msgstr "" -#: company/templates/company/supplier_part.html:246 +#: company/templates/company/supplier_part.html:247 msgid "Pricing Information" msgstr "" -#: company/templates/company/supplier_part.html:251 -#: templates/js/translated/company.js:398 +#: company/templates/company/supplier_part.html:252 +#: templates/js/translated/company.js:399 #: templates/js/translated/pricing.js:684 msgid "Add Price Break" msgstr "" -#: company/templates/company/supplier_part.html:270 +#: company/templates/company/supplier_part.html:271 msgid "Supplier Part Notes" msgstr "" -#: company/templates/company/supplier_part.html:305 +#: company/templates/company/supplier_part.html:306 msgid "Supplier Part QR Code" msgstr "" -#: company/templates/company/supplier_part.html:316 +#: company/templates/company/supplier_part.html:317 msgid "Link Barcode to Supplier Part" msgstr "" -#: company/templates/company/supplier_part.html:388 +#: company/templates/company/supplier_part.html:389 msgid "Update Part Availability" msgstr "" #: company/templates/company/supplier_part_sidebar.html:5 -#: part/serializers.py:902 part/stocktake.py:223 +#: part/serializers.py:954 part/stocktake.py:223 #: part/templates/part/category.html:180 #: part/templates/part/category_sidebar.html:17 stock/admin.py:68 -#: stock/serializers.py:1014 stock/serializers.py:1192 -#: stock/templates/stock/location.html:167 -#: stock/templates/stock/location.html:188 -#: stock/templates/stock/location.html:200 +#: stock/serializers.py:1045 stock/serializers.py:1223 +#: stock/templates/stock/location.html:168 +#: stock/templates/stock/location.html:189 +#: stock/templates/stock/location.html:201 #: stock/templates/stock/location_sidebar.html:7 #: templates/InvenTree/search.html:155 templates/js/translated/part.js:1067 -#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2850 +#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2851 #: users/models.py:206 msgid "Stock Items" msgstr "" @@ -5022,99 +5203,99 @@ msgstr "" msgid "New Company" msgstr "" -#: generic/states/tests.py:18 order/status_codes.py:13 +#: generic/states/fields.py:118 +msgid "Custom status key" +msgstr "" + +#: generic/states/fields.py:119 +msgid "Additional status information for this item" +msgstr "" + +#: generic/states/tests.py:22 order/status_codes.py:13 msgid "Placed" msgstr "" -#: importer/mixins.py:263 +#: importer/mixins.py:261 msgid "Invalid export format" msgstr "" -#: importer/models.py:59 -msgid "Timestamp" -msgstr "" - -#: importer/models.py:64 +#: importer/models.py:65 msgid "Data file to import" msgstr "" -#: importer/models.py:73 templates/js/translated/tables.js:558 +#: importer/models.py:74 templates/js/translated/tables.js:558 msgid "Columns" msgstr "" -#: importer/models.py:84 +#: importer/models.py:85 msgid "Import status" msgstr "" -#: importer/models.py:94 +#: importer/models.py:95 msgid "Field Defaults" msgstr "" -#: importer/models.py:101 +#: importer/models.py:102 msgid "Field Overrides" msgstr "" -#: importer/models.py:108 +#: importer/models.py:109 msgid "Field Filters" msgstr "" -#: importer/models.py:230 +#: importer/models.py:239 msgid "Some required fields have not been mapped" msgstr "" -#: importer/models.py:387 +#: importer/models.py:396 msgid "Column is already mapped to a database field" msgstr "" -#: importer/models.py:392 +#: importer/models.py:401 msgid "Field is already mapped to a data column" msgstr "" -#: importer/models.py:401 +#: importer/models.py:410 msgid "Column mapping must be linked to a valid import session" msgstr "" -#: importer/models.py:406 +#: importer/models.py:415 msgid "Column does not exist in the data file" msgstr "" -#: importer/models.py:413 +#: importer/models.py:422 msgid "Field does not exist in the target model" msgstr "" -#: importer/models.py:417 +#: importer/models.py:426 msgid "Selected field is read-only" msgstr "" -#: importer/models.py:422 importer/models.py:493 +#: importer/models.py:431 importer/models.py:502 msgid "Import Session" msgstr "" -#: importer/models.py:426 +#: importer/models.py:435 msgid "Field" msgstr "" -#: importer/models.py:428 +#: importer/models.py:437 msgid "Column" msgstr "" -#: importer/models.py:497 +#: importer/models.py:506 msgid "Row Index" msgstr "" -#: importer/models.py:500 +#: importer/models.py:509 msgid "Original row data" msgstr "" -#: importer/models.py:503 part/models.py:3951 -msgid "Data" -msgstr "" - -#: importer/models.py:505 machine/models.py:110 +#: importer/models.py:514 machine/models.py:110 msgid "Errors" msgstr "" -#: importer/models.py:507 part/api.py:873 +#: importer/models.py:516 part/api.py:857 msgid "Valid" msgstr "" @@ -5166,19 +5347,19 @@ msgstr "" msgid "Row has already been completed" msgstr "" -#: importer/status_codes.py:11 +#: importer/status_codes.py:13 msgid "Initializing" msgstr "" -#: importer/status_codes.py:12 +#: importer/status_codes.py:18 msgid "Mapping Columns" msgstr "" -#: importer/status_codes.py:13 +#: importer/status_codes.py:21 msgid "Importing Data" msgstr "" -#: importer/status_codes.py:16 +#: importer/status_codes.py:24 msgid "Processing Data" msgstr "" @@ -5202,52 +5383,52 @@ msgstr "" msgid "Value must be a valid dictionary object" msgstr "" -#: machine/machine_types/label_printer.py:215 +#: machine/machine_types/label_printer.py:216 msgid "Copies" msgstr "" -#: machine/machine_types/label_printer.py:216 +#: machine/machine_types/label_printer.py:217 msgid "Number of copies to print for each label" msgstr "" -#: machine/machine_types/label_printer.py:231 +#: machine/machine_types/label_printer.py:232 msgid "Connected" msgstr "" -#: machine/machine_types/label_printer.py:232 order/api.py:1410 -#: templates/js/translated/sales_order.js:1078 +#: machine/machine_types/label_printer.py:233 order/api.py:1532 +#: templates/js/translated/sales_order.js:1044 msgid "Unknown" msgstr "" -#: machine/machine_types/label_printer.py:233 +#: machine/machine_types/label_printer.py:234 msgid "Printing" msgstr "" -#: machine/machine_types/label_printer.py:234 +#: machine/machine_types/label_printer.py:235 msgid "No media" msgstr "" -#: machine/machine_types/label_printer.py:235 +#: machine/machine_types/label_printer.py:236 msgid "Paper jam" msgstr "" -#: machine/machine_types/label_printer.py:236 +#: machine/machine_types/label_printer.py:237 msgid "Disconnected" msgstr "" -#: machine/machine_types/label_printer.py:243 +#: machine/machine_types/label_printer.py:244 msgid "Label Printer" msgstr "" -#: machine/machine_types/label_printer.py:244 +#: machine/machine_types/label_printer.py:245 msgid "Directly print labels for various items." msgstr "" -#: machine/machine_types/label_printer.py:250 +#: machine/machine_types/label_printer.py:251 msgid "Printer Location" msgstr "" -#: machine/machine_types/label_printer.py:251 +#: machine/machine_types/label_printer.py:252 msgid "Scope the printer to a specific location" msgstr "" @@ -5307,79 +5488,75 @@ msgstr "" #: report/templates/report/inventree_purchase_order_report.html:31 #: report/templates/report/inventree_sales_order_report.html:31 #: templates/js/translated/order.js:352 -#: templates/js/translated/purchase_order.js:2195 -#: templates/js/translated/sales_order.js:1883 +#: templates/js/translated/purchase_order.js:2179 +#: templates/js/translated/sales_order.js:1864 msgid "Total Price" msgstr "" -#: order/api.py:80 order/api.py:151 order/serializers.py:93 -#: order/templates/order/order_base.html:123 -#: order/templates/order/return_order_base.html:116 -#: order/templates/order/sales_order_base.html:125 +#: order/api.py:78 order/api.py:149 order/serializers.py:124 +#: order/templates/order/order_base.html:124 +#: order/templates/order/return_order_base.html:117 +#: order/templates/order/sales_order_base.html:126 msgid "Order Status" msgstr "" -#: order/api.py:88 order/templates/order/order_base.html:111 -#: order/templates/order/return_order_base.html:104 -#: order/templates/order/sales_order_base.html:113 +#: order/api.py:86 order/templates/order/order_base.html:112 +#: order/templates/order/return_order_base.html:105 +#: order/templates/order/sales_order_base.html:114 msgid "Order Reference" msgstr "" -#: order/api.py:116 templates/js/translated/table_filters.js:93 +#: order/api.py:114 order/api.py:1022 +#: templates/js/translated/table_filters.js:93 #: templates/js/translated/table_filters.js:625 #: templates/js/translated/table_filters.js:651 #: templates/js/translated/table_filters.js:666 msgid "Outstanding" msgstr "" -#: order/api.py:132 +#: order/api.py:130 msgid "Has Project Code" msgstr "" -#: order/api.py:155 templates/js/translated/table_filters.js:201 +#: order/api.py:153 templates/js/translated/table_filters.js:201 #: templates/js/translated/table_filters.js:791 msgid "Has Pricing" msgstr "" -#: order/api.py:230 -msgid "No matching purchase order found" -msgstr "" - -#: order/api.py:425 order/api.py:763 order/models.py:1484 order/models.py:1598 -#: order/models.py:1649 order/models.py:1764 order/models.py:1923 -#: order/models.py:2383 order/models.py:2439 -#: templates/js/translated/sales_order.js:1524 +#: order/api.py:375 order/api.py:771 order/api.py:986 order/models.py:1500 +#: order/models.py:1614 order/models.py:1665 order/models.py:1793 +#: order/models.py:1956 order/models.py:2422 order/models.py:2478 +#: templates/js/translated/sales_order.js:1490 msgid "Order" msgstr "" -#: order/api.py:429 order/api.py:784 +#: order/api.py:379 order/api.py:809 msgid "Order Complete" msgstr "" -#: order/api.py:452 +#: order/api.py:430 msgid "Order Pending" msgstr "" -#: order/api.py:1404 order/models.py:379 order/models.py:1485 -#: order/models.py:1599 order/templates/order/order_base.html:9 -#: order/templates/order/order_base.html:18 +#: order/api.py:1526 order/models.py:386 order/models.py:1501 +#: order/models.py:1615 order/templates/order/order_base.html:10 +#: order/templates/order/order_base.html:19 #: report/templates/report/inventree_purchase_order_report.html:14 -#: stock/serializers.py:120 stock/templates/stock/item_base.html:176 +#: stock/serializers.py:121 stock/templates/stock/item_base.html:173 #: templates/email/overdue_purchase_order.html:15 #: templates/js/translated/part.js:1752 templates/js/translated/pricing.js:804 -#: templates/js/translated/purchase_order.js:168 -#: templates/js/translated/purchase_order.js:753 -#: templates/js/translated/purchase_order.js:1743 -#: templates/js/translated/stock.js:2345 templates/js/translated/stock.js:2991 +#: templates/js/translated/purchase_order.js:736 +#: templates/js/translated/purchase_order.js:1727 +#: templates/js/translated/stock.js:2346 templates/js/translated/stock.js:2992 msgid "Purchase Order" msgstr "" -#: order/api.py:1408 order/models.py:2091 order/models.py:2384 -#: order/models.py:2440 order/templates/order/return_order_base.html:9 -#: order/templates/order/return_order_base.html:28 +#: order/api.py:1530 order/models.py:2124 order/models.py:2423 +#: order/models.py:2479 order/templates/order/return_order_base.html:10 +#: order/templates/order/return_order_base.html:29 #: report/templates/report/inventree_return_order_report.html:13 #: templates/js/translated/return_order.js:280 -#: templates/js/translated/stock.js:3025 +#: templates/js/translated/stock.js:3026 msgid "Return Order" msgstr "" @@ -5387,751 +5564,782 @@ msgstr "" msgid "Total price for this order" msgstr "" -#: order/models.py:95 order/serializers.py:71 +#: order/models.py:95 order/serializers.py:73 msgid "Order Currency" msgstr "" -#: order/models.py:98 order/serializers.py:72 +#: order/models.py:98 order/serializers.py:74 msgid "Currency for this order (leave blank to use company default)" msgstr "" -#: order/models.py:246 +#: order/models.py:243 msgid "Contact does not match selected company" msgstr "" -#: order/models.py:289 +#: order/models.py:296 msgid "Order description (optional)" msgstr "" -#: order/models.py:298 +#: order/models.py:305 msgid "Select project code for this order" msgstr "" -#: order/models.py:302 order/models.py:1385 order/models.py:1817 +#: order/models.py:309 order/models.py:1402 order/models.py:1846 msgid "Link to external page" msgstr "" -#: order/models.py:310 +#: order/models.py:317 msgid "Expected date for order delivery. Order will be overdue after this date." msgstr "" -#: order/models.py:324 +#: order/models.py:331 msgid "Created By" msgstr "" -#: order/models.py:332 +#: order/models.py:339 msgid "User or group responsible for this order" msgstr "" -#: order/models.py:343 +#: order/models.py:350 msgid "Point of contact for this order" msgstr "" -#: order/models.py:353 +#: order/models.py:360 msgid "Company address for this order" msgstr "" -#: order/models.py:468 order/models.py:979 +#: order/models.py:480 order/models.py:1006 msgid "Order reference" msgstr "" -#: order/models.py:477 +#: order/models.py:489 msgid "Purchase order status" msgstr "" -#: order/models.py:492 +#: order/models.py:504 msgid "Company from which the items are being ordered" msgstr "" -#: order/models.py:503 order/templates/order/order_base.html:153 -#: templates/js/translated/purchase_order.js:1772 +#: order/models.py:515 order/templates/order/order_base.html:162 +#: templates/js/translated/purchase_order.js:1756 msgid "Supplier Reference" msgstr "" -#: order/models.py:504 +#: order/models.py:516 msgid "Supplier order reference code" msgstr "" -#: order/models.py:513 +#: order/models.py:525 msgid "received by" msgstr "" -#: order/models.py:519 order/models.py:2173 +#: order/models.py:531 order/models.py:2212 msgid "Issue Date" msgstr "" -#: order/models.py:520 order/models.py:2174 +#: order/models.py:532 order/models.py:2213 msgid "Date order was issued" msgstr "" -#: order/models.py:527 order/models.py:2181 +#: order/models.py:539 order/models.py:2220 msgid "Date order was completed" msgstr "" -#: order/models.py:571 +#: order/models.py:549 order/models.py:1552 +msgid "Destination for received items" +msgstr "" + +#: order/models.py:593 msgid "Part supplier must match PO supplier" msgstr "" -#: order/models.py:806 +#: order/models.py:828 msgid "Quantity must be a positive number" msgstr "" -#: order/models.py:991 +#: order/models.py:1018 msgid "Company to which the items are being sold" msgstr "" -#: order/models.py:1003 +#: order/models.py:1030 msgid "Sales order status" msgstr "" -#: order/models.py:1014 order/models.py:2166 +#: order/models.py:1041 order/models.py:2205 msgid "Customer Reference " msgstr "" -#: order/models.py:1015 order/models.py:2167 +#: order/models.py:1042 order/models.py:2206 msgid "Customer order reference code" msgstr "" -#: order/models.py:1019 order/models.py:1771 -#: templates/js/translated/sales_order.js:879 -#: templates/js/translated/sales_order.js:1060 +#: order/models.py:1046 order/models.py:1800 +#: templates/js/translated/sales_order.js:838 +#: templates/js/translated/sales_order.js:1026 msgid "Shipment Date" msgstr "" -#: order/models.py:1028 +#: order/models.py:1055 msgid "shipped by" msgstr "" -#: order/models.py:1077 +#: order/models.py:1094 msgid "Order is already complete" msgstr "" -#: order/models.py:1080 +#: order/models.py:1097 msgid "Order is already cancelled" msgstr "" -#: order/models.py:1084 +#: order/models.py:1101 msgid "Only an open order can be marked as complete" msgstr "" -#: order/models.py:1088 +#: order/models.py:1105 msgid "Order cannot be completed as there are incomplete shipments" msgstr "" -#: order/models.py:1093 +#: order/models.py:1110 msgid "Order cannot be completed as there are incomplete line items" msgstr "" -#: order/models.py:1357 +#: order/models.py:1374 msgid "Item quantity" msgstr "" -#: order/models.py:1374 +#: order/models.py:1391 msgid "Line item reference" msgstr "" -#: order/models.py:1381 +#: order/models.py:1398 msgid "Line item notes" msgstr "" -#: order/models.py:1393 +#: order/models.py:1410 msgid "Target date for this line item (leave blank to use the target date from the order)" msgstr "" -#: order/models.py:1414 +#: order/models.py:1431 msgid "Line item description (optional)" msgstr "" -#: order/models.py:1420 -msgid "Context" -msgstr "" - -#: order/models.py:1421 +#: order/models.py:1438 msgid "Additional context for this line" msgstr "" -#: order/models.py:1431 +#: order/models.py:1448 msgid "Unit price" msgstr "" -#: order/models.py:1445 +#: order/models.py:1462 msgid "Purchase Order Line Item" msgstr "" -#: order/models.py:1469 +#: order/models.py:1486 msgid "Supplier part must match supplier" msgstr "" -#: order/models.py:1476 -msgid "deleted" -msgstr "" - -#: order/models.py:1504 +#: order/models.py:1520 msgid "Supplier part" msgstr "" -#: order/models.py:1511 order/templates/order/order_base.html:201 +#: order/models.py:1527 order/templates/order/order_base.html:210 #: templates/js/translated/part.js:1876 templates/js/translated/part.js:1908 -#: templates/js/translated/purchase_order.js:1369 -#: templates/js/translated/purchase_order.js:2239 +#: templates/js/translated/purchase_order.js:1352 +#: templates/js/translated/purchase_order.js:2223 #: templates/js/translated/return_order.js:762 #: templates/js/translated/table_filters.js:119 #: templates/js/translated/table_filters.js:605 msgid "Received" msgstr "" -#: order/models.py:1512 +#: order/models.py:1528 msgid "Number of items received" msgstr "" -#: order/models.py:1520 stock/models.py:959 stock/serializers.py:610 -#: stock/templates/stock/item_base.html:183 -#: templates/js/translated/stock.js:2396 +#: order/models.py:1536 stock/models.py:1036 stock/serializers.py:637 +#: stock/templates/stock/item_base.html:180 +#: templates/js/translated/stock.js:2397 msgid "Purchase Price" msgstr "" -#: order/models.py:1521 +#: order/models.py:1537 msgid "Unit purchase price" msgstr "" -#: order/models.py:1536 -msgid "Where does the Purchaser want this item to be stored?" -msgstr "" - -#: order/models.py:1587 +#: order/models.py:1603 msgid "Purchase Order Extra Line" msgstr "" -#: order/models.py:1616 +#: order/models.py:1632 msgid "Sales Order Line Item" msgstr "" -#: order/models.py:1637 +#: order/models.py:1653 msgid "Virtual part cannot be assigned to a sales order" msgstr "" -#: order/models.py:1642 +#: order/models.py:1658 msgid "Only salable parts can be assigned to a sales order" msgstr "" -#: order/models.py:1668 part/templates/part/part_pricing.html:107 -#: part/templates/part/prices.html:139 templates/js/translated/pricing.js:957 +#: order/models.py:1684 part/templates/part/part_pricing.html:107 +#: part/templates/part/prices.html:139 templates/js/translated/pricing.js:955 msgid "Sale Price" msgstr "" -#: order/models.py:1669 +#: order/models.py:1685 msgid "Unit sale price" msgstr "" -#: order/models.py:1678 order/status_codes.py:48 -#: templates/js/translated/sales_order.js:1559 -#: templates/js/translated/sales_order.js:1680 -#: templates/js/translated/sales_order.js:1993 +#: order/models.py:1694 order/status_codes.py:50 +#: templates/js/translated/sales_order.js:1525 +#: templates/js/translated/sales_order.js:1661 +#: templates/js/translated/sales_order.js:1974 msgid "Shipped" msgstr "จัดส่งแล้ว" -#: order/models.py:1679 +#: order/models.py:1695 msgid "Shipped quantity" msgstr "" -#: order/models.py:1751 +#: order/models.py:1769 msgid "Sales Order Shipment" msgstr "" -#: order/models.py:1772 +#: order/models.py:1801 msgid "Date of shipment" msgstr "" -#: order/models.py:1778 templates/js/translated/sales_order.js:1072 +#: order/models.py:1807 templates/js/translated/sales_order.js:1038 msgid "Delivery Date" msgstr "" -#: order/models.py:1779 +#: order/models.py:1808 msgid "Date of delivery of shipment" msgstr "" -#: order/models.py:1787 +#: order/models.py:1816 msgid "Checked By" msgstr "" -#: order/models.py:1788 +#: order/models.py:1817 msgid "User who checked this shipment" msgstr "" -#: order/models.py:1795 order/models.py:2018 order/serializers.py:1475 -#: order/serializers.py:1585 templates/js/translated/model_renderers.js:455 +#: order/models.py:1824 order/models.py:2051 order/serializers.py:1601 +#: order/serializers.py:1725 +#: report/templates/report/inventree_sales_order_shipment_report.html:14 +#: templates/js/translated/model_renderers.js:458 +#: templates/js/translated/sales_order.js:1615 msgid "Shipment" msgstr "" -#: order/models.py:1796 +#: order/models.py:1825 msgid "Shipment number" msgstr "" -#: order/models.py:1804 +#: order/models.py:1833 msgid "Tracking Number" msgstr "" -#: order/models.py:1805 +#: order/models.py:1834 msgid "Shipment tracking information" msgstr "" -#: order/models.py:1812 +#: order/models.py:1841 msgid "Invoice Number" msgstr "" -#: order/models.py:1813 +#: order/models.py:1842 msgid "Reference number for associated invoice" msgstr "" -#: order/models.py:1833 +#: order/models.py:1862 msgid "Shipment has already been sent" msgstr "" -#: order/models.py:1836 +#: order/models.py:1865 msgid "Shipment has no allocated stock items" msgstr "" -#: order/models.py:1912 +#: order/models.py:1945 msgid "Sales Order Extra Line" msgstr "" -#: order/models.py:1941 +#: order/models.py:1974 msgid "Sales Order Allocation" msgstr "" -#: order/models.py:1964 order/models.py:1966 +#: order/models.py:1997 order/models.py:1999 msgid "Stock item has not been assigned" msgstr "" -#: order/models.py:1973 +#: order/models.py:2006 msgid "Cannot allocate stock item to a line with a different part" msgstr "" -#: order/models.py:1976 +#: order/models.py:2009 msgid "Cannot allocate stock to a line without a part" msgstr "" -#: order/models.py:1979 +#: order/models.py:2012 msgid "Allocation quantity cannot exceed stock quantity" msgstr "" -#: order/models.py:1998 order/serializers.py:1345 +#: order/models.py:2031 order/serializers.py:1471 msgid "Quantity must be 1 for serialized stock item" msgstr "" -#: order/models.py:2001 +#: order/models.py:2034 msgid "Sales order does not match shipment" msgstr "" -#: order/models.py:2002 plugin/base/barcodes/api.py:524 +#: order/models.py:2035 plugin/base/barcodes/api.py:629 msgid "Shipment does not match sales order" msgstr "" -#: order/models.py:2010 +#: order/models.py:2043 msgid "Line" msgstr "" -#: order/models.py:2019 +#: order/models.py:2052 msgid "Sales order shipment reference" msgstr "" -#: order/models.py:2032 order/models.py:2391 +#: order/models.py:2065 order/models.py:2430 #: templates/js/translated/return_order.js:720 msgid "Item" msgstr "" -#: order/models.py:2033 +#: order/models.py:2066 msgid "Select stock item to allocate" msgstr "" -#: order/models.py:2042 +#: order/models.py:2075 msgid "Enter stock allocation quantity" msgstr "" -#: order/models.py:2136 +#: order/models.py:2175 msgid "Return Order reference" msgstr "" -#: order/models.py:2148 +#: order/models.py:2187 msgid "Company from which items are being returned" msgstr "" -#: order/models.py:2160 +#: order/models.py:2199 msgid "Return order status" msgstr "" -#: order/models.py:2362 +#: order/models.py:2401 msgid "Return Order Line Item" msgstr "" -#: order/models.py:2376 +#: order/models.py:2415 msgid "Only serialized items can be assigned to a Return Order" msgstr "" -#: order/models.py:2392 +#: order/models.py:2431 msgid "Select item to return from customer" msgstr "" -#: order/models.py:2398 +#: order/models.py:2437 msgid "Received Date" msgstr "" -#: order/models.py:2399 +#: order/models.py:2438 msgid "The date this this return item was received" msgstr "" -#: order/models.py:2410 templates/js/translated/return_order.js:731 +#: order/models.py:2449 templates/js/translated/return_order.js:731 #: templates/js/translated/table_filters.js:122 msgid "Outcome" msgstr "" -#: order/models.py:2411 +#: order/models.py:2450 msgid "Outcome for this line item" msgstr "" -#: order/models.py:2418 +#: order/models.py:2457 msgid "Cost associated with return or repair for this line item" msgstr "" -#: order/models.py:2428 +#: order/models.py:2467 msgid "Return Order Extra Line" msgstr "" -#: order/serializers.py:86 +#: order/serializers.py:87 +msgid "Order ID" +msgstr "" + +#: order/serializers.py:87 +msgid "ID of the order to duplicate" +msgstr "" + +#: order/serializers.py:93 +msgid "Copy Lines" +msgstr "" + +#: order/serializers.py:94 +msgid "Copy line items from the original order" +msgstr "" + +#: order/serializers.py:100 +msgid "Copy Extra Lines" +msgstr "" + +#: order/serializers.py:101 +msgid "Copy extra line items from the original order" +msgstr "" + +#: order/serializers.py:117 msgid "Completed Lines" msgstr "" -#: order/serializers.py:283 stock/admin.py:195 +#: order/serializers.py:161 +msgid "Duplicate Order" +msgstr "" + +#: order/serializers.py:162 +msgid "Specify options for duplicating this order" +msgstr "" + +#: order/serializers.py:234 +msgid "Invalid order ID" +msgstr "" + +#: order/serializers.py:374 stock/admin.py:196 msgid "Supplier Name" msgstr "" -#: order/serializers.py:331 +#: order/serializers.py:416 msgid "Order cannot be cancelled" msgstr "" -#: order/serializers.py:346 order/serializers.py:1366 +#: order/serializers.py:431 order/serializers.py:1492 msgid "Allow order to be closed with incomplete line items" msgstr "" -#: order/serializers.py:356 order/serializers.py:1376 +#: order/serializers.py:441 order/serializers.py:1502 msgid "Order has incomplete line items" msgstr "" -#: order/serializers.py:506 +#: order/serializers.py:591 msgid "Order is not open" msgstr "" -#: order/serializers.py:527 +#: order/serializers.py:612 msgid "Auto Pricing" msgstr "" -#: order/serializers.py:529 +#: order/serializers.py:614 msgid "Automatically calculate purchase price based on supplier part data" msgstr "" -#: order/serializers.py:539 +#: order/serializers.py:624 msgid "Purchase price currency" msgstr "" -#: order/serializers.py:545 +#: order/serializers.py:630 msgid "Merge Items" msgstr "" -#: order/serializers.py:547 +#: order/serializers.py:632 msgid "Merge items with the same part, destination and target date into one line item" msgstr "" -#: order/serializers.py:560 part/models.py:1033 +#: order/serializers.py:645 part/models.py:1094 part/serializers.py:387 msgid "Internal Part Number" msgstr "" -#: order/serializers.py:568 +#: order/serializers.py:653 msgid "Internal Part Name" msgstr "" -#: order/serializers.py:584 +#: order/serializers.py:669 msgid "Supplier part must be specified" msgstr "" -#: order/serializers.py:587 +#: order/serializers.py:672 msgid "Purchase order must be specified" msgstr "" -#: order/serializers.py:595 +#: order/serializers.py:680 msgid "Supplier must match purchase order" msgstr "" -#: order/serializers.py:596 +#: order/serializers.py:681 msgid "Purchase order must match supplier" msgstr "" -#: order/serializers.py:639 order/serializers.py:1446 +#: order/serializers.py:724 order/serializers.py:1572 msgid "Line Item" msgstr "" -#: order/serializers.py:645 +#: order/serializers.py:730 msgid "Line item does not match purchase order" msgstr "" -#: order/serializers.py:655 order/serializers.py:779 order/serializers.py:1782 +#: order/serializers.py:740 order/serializers.py:881 order/serializers.py:1934 msgid "Select destination location for received items" msgstr "" -#: order/serializers.py:671 templates/js/translated/purchase_order.js:1130 +#: order/serializers.py:756 templates/js/translated/purchase_order.js:1113 #: templates/js/translated/stock.js:1200 msgid "Enter batch code for incoming stock items" msgstr "" -#: order/serializers.py:679 templates/js/translated/purchase_order.js:1155 +#: order/serializers.py:764 templates/js/translated/purchase_order.js:1138 msgid "Enter serial numbers for incoming stock items" msgstr "" -#: order/serializers.py:691 +#: order/serializers.py:776 msgid "Override packaging information for incoming stock items" msgstr "" -#: order/serializers.py:699 +#: order/serializers.py:784 msgid "Additional note for incoming stock items" msgstr "" -#: order/serializers.py:706 templates/js/translated/barcode.js:52 +#: order/serializers.py:791 templates/js/translated/barcode.js:52 msgid "Barcode" msgstr "" -#: order/serializers.py:707 +#: order/serializers.py:792 msgid "Scanned barcode" msgstr "" -#: order/serializers.py:723 +#: order/serializers.py:808 msgid "Barcode is already in use" msgstr "" -#: order/serializers.py:747 +#: order/serializers.py:831 msgid "An integer quantity must be provided for trackable parts" msgstr "" -#: order/serializers.py:795 order/serializers.py:1798 +#: order/serializers.py:898 order/serializers.py:1950 msgid "Line items must be provided" msgstr "" -#: order/serializers.py:811 +#: order/serializers.py:914 msgid "Destination location must be specified" msgstr "" -#: order/serializers.py:822 +#: order/serializers.py:925 msgid "Supplied barcode values must be unique" msgstr "" -#: order/serializers.py:1187 +#: order/serializers.py:1221 msgid "Sale price currency" msgstr "" -#: order/serializers.py:1248 +#: order/serializers.py:1260 +msgid "Allocated Items" +msgstr "" + +#: order/serializers.py:1374 msgid "No shipment details provided" msgstr "" -#: order/serializers.py:1309 order/serializers.py:1455 +#: order/serializers.py:1435 order/serializers.py:1581 msgid "Line item is not associated with this order" msgstr "" -#: order/serializers.py:1328 +#: order/serializers.py:1454 msgid "Quantity must be positive" msgstr "" -#: order/serializers.py:1465 +#: order/serializers.py:1591 msgid "Enter serial numbers to allocate" msgstr "" -#: order/serializers.py:1487 order/serializers.py:1593 +#: order/serializers.py:1613 order/serializers.py:1733 msgid "Shipment has already been shipped" msgstr "" -#: order/serializers.py:1490 order/serializers.py:1596 +#: order/serializers.py:1616 order/serializers.py:1736 msgid "Shipment is not associated with this order" msgstr "" -#: order/serializers.py:1537 +#: order/serializers.py:1671 msgid "No match found for the following serial numbers" msgstr "" -#: order/serializers.py:1544 -msgid "The following serial numbers are already allocated" +#: order/serializers.py:1678 +msgid "The following serial numbers are unavailable" msgstr "" -#: order/serializers.py:1752 +#: order/serializers.py:1904 msgid "Return order line item" msgstr "" -#: order/serializers.py:1758 +#: order/serializers.py:1910 msgid "Line item does not match return order" msgstr "" -#: order/serializers.py:1761 +#: order/serializers.py:1913 msgid "Line item has already been received" msgstr "" -#: order/serializers.py:1790 +#: order/serializers.py:1942 msgid "Items can only be received against orders which are in progress" msgstr "" -#: order/serializers.py:1873 +#: order/serializers.py:2025 msgid "Line price currency" msgstr "" -#: order/status_codes.py:17 order/status_codes.py:52 stock/status_codes.py:16 +#: order/status_codes.py:17 order/status_codes.py:54 stock/status_codes.py:16 msgid "Lost" msgstr "สูญหาย" -#: order/status_codes.py:18 order/status_codes.py:53 stock/status_codes.py:22 +#: order/status_codes.py:18 order/status_codes.py:55 stock/status_codes.py:24 msgid "Returned" msgstr "ส่งคืนแล้ว" -#: order/status_codes.py:45 order/status_codes.py:77 +#: order/status_codes.py:47 order/status_codes.py:79 msgid "In Progress" msgstr "" -#: order/status_codes.py:101 +#: order/status_codes.py:105 msgid "Return" msgstr "" -#: order/status_codes.py:104 +#: order/status_codes.py:108 msgid "Repair" msgstr "" -#: order/status_codes.py:107 +#: order/status_codes.py:111 msgid "Replace" msgstr "" -#: order/status_codes.py:110 +#: order/status_codes.py:114 msgid "Refund" msgstr "" -#: order/status_codes.py:113 +#: order/status_codes.py:117 msgid "Reject" msgstr "" -#: order/tasks.py:25 +#: order/tasks.py:30 msgid "Overdue Purchase Order" msgstr "" -#: order/tasks.py:30 +#: order/tasks.py:35 #, python-brace-format msgid "Purchase order {po} is now overdue" msgstr "" -#: order/tasks.py:75 +#: order/tasks.py:80 msgid "Overdue Sales Order" msgstr "" -#: order/tasks.py:80 +#: order/tasks.py:85 #, python-brace-format msgid "Sales order {so} is now overdue" msgstr "" -#: order/templates/order/order_base.html:51 +#: order/templates/order/order_base.html:52 msgid "Print purchase order report" msgstr "" -#: order/templates/order/order_base.html:53 -#: order/templates/order/return_order_base.html:62 -#: order/templates/order/sales_order_base.html:62 +#: order/templates/order/order_base.html:54 +#: order/templates/order/return_order_base.html:63 +#: order/templates/order/sales_order_base.html:63 msgid "Export order to file" msgstr "" -#: order/templates/order/order_base.html:59 -#: order/templates/order/return_order_base.html:72 -#: order/templates/order/sales_order_base.html:71 +#: order/templates/order/order_base.html:60 +#: order/templates/order/return_order_base.html:73 +#: order/templates/order/sales_order_base.html:72 msgid "Order actions" msgstr "" -#: order/templates/order/order_base.html:64 -#: order/templates/order/return_order_base.html:76 -#: order/templates/order/sales_order_base.html:75 +#: order/templates/order/order_base.html:65 +#: order/templates/order/return_order_base.html:77 +#: order/templates/order/sales_order_base.html:76 msgid "Edit order" msgstr "" -#: order/templates/order/order_base.html:68 +#: order/templates/order/order_base.html:69 msgid "Duplicate order" msgstr "" -#: order/templates/order/order_base.html:73 -#: order/templates/order/return_order_base.html:78 -#: order/templates/order/sales_order_base.html:77 +#: order/templates/order/order_base.html:74 +#: order/templates/order/return_order_base.html:79 +#: order/templates/order/sales_order_base.html:78 msgid "Hold order" msgstr "" -#: order/templates/order/order_base.html:78 -#: order/templates/order/return_order_base.html:81 -#: order/templates/order/sales_order_base.html:80 +#: order/templates/order/order_base.html:79 +#: order/templates/order/return_order_base.html:82 +#: order/templates/order/sales_order_base.html:81 msgid "Cancel order" msgstr "" -#: order/templates/order/order_base.html:84 #: order/templates/order/order_base.html:85 -#: order/templates/order/return_order_base.html:85 +#: order/templates/order/order_base.html:86 #: order/templates/order/return_order_base.html:86 -#: order/templates/order/sales_order_base.html:86 +#: order/templates/order/return_order_base.html:87 #: order/templates/order/sales_order_base.html:87 +#: order/templates/order/sales_order_base.html:88 msgid "Issue Order" msgstr "" -#: order/templates/order/order_base.html:88 -#: order/templates/order/return_order_base.html:89 -msgid "Mark order as complete" -msgstr "" - #: order/templates/order/order_base.html:89 #: order/templates/order/return_order_base.html:90 -#: order/templates/order/sales_order_base.html:100 +msgid "Mark order as complete" +msgstr "" + +#: order/templates/order/order_base.html:90 +#: order/templates/order/return_order_base.html:91 +#: order/templates/order/sales_order_base.html:101 msgid "Complete Order" msgstr "" -#: order/templates/order/order_base.html:96 +#: order/templates/order/order_base.html:97 msgid "Supplier part thumbnail" msgstr "" -#: order/templates/order/order_base.html:116 -#: order/templates/order/return_order_base.html:109 -#: order/templates/order/sales_order_base.html:118 +#: order/templates/order/order_base.html:117 +#: order/templates/order/return_order_base.html:110 +#: order/templates/order/sales_order_base.html:119 msgid "Order Description" msgstr "" -#: order/templates/order/order_base.html:146 -msgid "No suppplier information available" -msgstr "" - -#: order/templates/order/order_base.html:159 -#: order/templates/order/sales_order_base.html:164 +#: order/templates/order/order_base.html:168 +#: order/templates/order/sales_order_base.html:165 msgid "Completed Line Items" msgstr "" -#: order/templates/order/order_base.html:165 -#: order/templates/order/sales_order_base.html:170 -#: order/templates/order/sales_order_base.html:180 +#: order/templates/order/order_base.html:174 +#: order/templates/order/sales_order_base.html:171 +#: order/templates/order/sales_order_base.html:181 msgid "Incomplete" msgstr "" -#: order/templates/order/order_base.html:184 -#: order/templates/order/return_order_base.html:160 +#: order/templates/order/order_base.html:193 +#: order/templates/order/return_order_base.html:161 #: report/templates/report/inventree_build_order_report.html:121 msgid "Issued" msgstr "" -#: order/templates/order/order_base.html:229 +#: order/templates/order/order_base.html:238 msgid "Total cost" msgstr "" -#: order/templates/order/order_base.html:233 -#: order/templates/order/return_order_base.html:202 -#: order/templates/order/sales_order_base.html:246 +#: order/templates/order/order_base.html:242 +#: order/templates/order/return_order_base.html:203 +#: order/templates/order/sales_order_base.html:247 msgid "Total cost could not be calculated" msgstr "" -#: order/templates/order/order_base.html:335 +#: order/templates/order/order_base.html:344 msgid "Purchase Order QR Code" msgstr "" -#: order/templates/order/order_base.html:347 +#: order/templates/order/order_base.html:356 msgid "Link Barcode to Purchase Order" msgstr "" @@ -6184,12 +6392,12 @@ msgstr "" #: part/templates/part/import_wizard/ajax_match_references.html:42 #: part/templates/part/import_wizard/match_fields.html:71 #: part/templates/part/import_wizard/match_references.html:49 -#: templates/js/translated/bom.js:133 templates/js/translated/build.js:530 -#: templates/js/translated/build.js:1802 -#: templates/js/translated/purchase_order.js:696 -#: templates/js/translated/purchase_order.js:1288 +#: templates/js/translated/bom.js:133 templates/js/translated/build.js:533 +#: templates/js/translated/build.js:1805 +#: templates/js/translated/purchase_order.js:679 +#: templates/js/translated/purchase_order.js:1271 #: templates/js/translated/return_order.js:505 -#: templates/js/translated/sales_order.js:1145 +#: templates/js/translated/sales_order.js:1111 #: templates/js/translated/stock.js:720 templates/js/translated/stock.js:889 #: templates/patterns/wizard/match_fields.html:70 msgid "Remove row" @@ -6242,7 +6450,7 @@ msgstr "" #: order/templates/order/purchase_order_detail.html:27 #: order/templates/order/return_order_detail.html:24 #: order/templates/order/sales_order_detail.html:24 -#: templates/js/translated/purchase_order.js:414 +#: templates/js/translated/purchase_order.js:397 #: templates/js/translated/return_order.js:458 #: templates/js/translated/sales_order.js:237 msgid "Add Line Item" @@ -6277,45 +6485,45 @@ msgstr "" msgid "Order Notes" msgstr "" -#: order/templates/order/return_order_base.html:18 -#: order/templates/order/sales_order_base.html:18 +#: order/templates/order/return_order_base.html:19 +#: order/templates/order/sales_order_base.html:19 msgid "Customer logo thumbnail" msgstr "" -#: order/templates/order/return_order_base.html:60 +#: order/templates/order/return_order_base.html:61 msgid "Print return order report" msgstr "" -#: order/templates/order/return_order_base.html:64 -#: order/templates/order/sales_order_base.html:64 +#: order/templates/order/return_order_base.html:65 +#: order/templates/order/sales_order_base.html:65 msgid "Print packing list" msgstr "" -#: order/templates/order/return_order_base.html:141 -#: order/templates/order/sales_order_base.html:158 +#: order/templates/order/return_order_base.html:142 +#: order/templates/order/sales_order_base.html:159 #: templates/js/translated/return_order.js:308 -#: templates/js/translated/sales_order.js:833 +#: templates/js/translated/sales_order.js:792 msgid "Customer Reference" msgstr "" -#: order/templates/order/return_order_base.html:198 -#: order/templates/order/sales_order_base.html:242 +#: order/templates/order/return_order_base.html:199 +#: order/templates/order/sales_order_base.html:243 #: part/templates/part/part_pricing.html:32 #: part/templates/part/part_pricing.html:58 #: part/templates/part/part_pricing.html:99 #: part/templates/part/part_pricing.html:114 #: templates/js/translated/part.js:1079 -#: templates/js/translated/purchase_order.js:1822 +#: templates/js/translated/purchase_order.js:1806 #: templates/js/translated/return_order.js:380 -#: templates/js/translated/sales_order.js:891 +#: templates/js/translated/sales_order.js:850 msgid "Total Cost" msgstr "" -#: order/templates/order/return_order_base.html:273 +#: order/templates/order/return_order_base.html:274 msgid "Return Order QR Code" msgstr "" -#: order/templates/order/return_order_base.html:285 +#: order/templates/order/return_order_base.html:286 msgid "Link Barcode to Return Order" msgstr "" @@ -6323,40 +6531,40 @@ msgstr "" msgid "Order Details" msgstr "" -#: order/templates/order/sales_order_base.html:60 +#: order/templates/order/sales_order_base.html:61 msgid "Print sales order report" msgstr "" -#: order/templates/order/sales_order_base.html:91 #: order/templates/order/sales_order_base.html:92 +#: order/templates/order/sales_order_base.html:93 msgid "Ship Items" msgstr "" -#: order/templates/order/sales_order_base.html:95 #: order/templates/order/sales_order_base.html:96 +#: order/templates/order/sales_order_base.html:97 msgid "Mark As Shipped" msgstr "" -#: order/templates/order/sales_order_base.html:99 -#: templates/js/translated/sales_order.js:536 +#: order/templates/order/sales_order_base.html:100 +#: templates/js/translated/sales_order.js:495 msgid "Complete Sales Order" msgstr "" -#: order/templates/order/sales_order_base.html:138 +#: order/templates/order/sales_order_base.html:139 msgid "This Sales Order has not been fully allocated" msgstr "" -#: order/templates/order/sales_order_base.html:176 +#: order/templates/order/sales_order_base.html:177 #: order/templates/order/sales_order_detail.html:99 #: order/templates/order/so_sidebar.html:11 msgid "Completed Shipments" msgstr "" -#: order/templates/order/sales_order_base.html:339 +#: order/templates/order/sales_order_base.html:340 msgid "Sales Order QR Code" msgstr "" -#: order/templates/order/sales_order_base.html:351 +#: order/templates/order/sales_order_base.html:352 msgid "Link Barcode to Sales Order" msgstr "" @@ -6370,7 +6578,7 @@ msgid "Pending Shipments" msgstr "" #: order/templates/order/sales_order_detail.html:71 -#: templates/js/translated/bom.js:1277 templates/js/translated/build.js:1063 +#: templates/js/translated/bom.js:1277 templates/js/translated/build.js:1066 #: templates/js/translated/filters.js:299 msgid "Actions" msgstr "" @@ -6383,39 +6591,40 @@ msgstr "" msgid "Match Supplier Parts" msgstr "" -#: order/views.py:406 +#: order/views.py:407 msgid "Sales order not found" msgstr "" -#: order/views.py:412 +#: order/views.py:413 msgid "Price not found" msgstr "" -#: order/views.py:415 +#: order/views.py:416 #, python-brace-format msgid "Updated {part} unit-price to {price}" msgstr "" -#: order/views.py:421 +#: order/views.py:422 #, python-brace-format msgid "Updated {part} unit-price to {price} and quantity to {qty}" msgstr "" -#: part/admin.py:48 part/models.py:1032 part/templates/part/part_base.html:269 +#: part/admin.py:48 part/models.py:1093 part/serializers.py:939 +#: part/templates/part/part_base.html:277 #: report/templates/report/inventree_stock_location_report.html:103 #: templates/js/translated/part.js:1233 templates/js/translated/part.js:2347 -#: templates/js/translated/stock.js:2121 +#: templates/js/translated/stock.js:2122 msgid "IPN" msgstr "" -#: part/admin.py:50 part/models.py:1041 part/templates/part/part_base.html:286 +#: part/admin.py:50 part/models.py:1102 part/templates/part/part_base.html:294 #: report/models.py:161 templates/js/translated/part.js:1238 #: templates/js/translated/part.js:2353 msgid "Revision" msgstr "" -#: part/admin.py:53 part/admin.py:319 part/models.py:1014 -#: part/templates/part/category.html:91 part/templates/part/part_base.html:307 +#: part/admin.py:53 part/admin.py:319 part/models.py:1075 +#: part/templates/part/category.html:91 part/templates/part/part_base.html:315 msgid "Keywords" msgstr "" @@ -6427,7 +6636,7 @@ msgstr "" msgid "Category ID" msgstr "" -#: part/admin.py:67 part/admin.py:304 part/serializers.py:880 +#: part/admin.py:67 part/admin.py:304 part/serializers.py:924 #: part/stocktake.py:222 msgid "Category Name" msgstr "" @@ -6440,11 +6649,11 @@ msgstr "" msgid "Default Supplier ID" msgstr "" -#: part/admin.py:81 part/models.py:1000 part/templates/part/part_base.html:177 +#: part/admin.py:81 part/models.py:1061 part/templates/part/part_base.html:178 msgid "Variant Of" msgstr "" -#: part/admin.py:84 part/models.py:1138 part/templates/part/part_base.html:203 +#: part/admin.py:84 part/models.py:1199 part/templates/part/part_base.html:204 msgid "Minimum Stock" msgstr "" @@ -6452,23 +6661,23 @@ msgstr "" msgid "Used In" msgstr "" -#: part/admin.py:150 part/serializers.py:897 -#: part/templates/part/part_base.html:241 stock/admin.py:235 +#: part/admin.py:150 part/serializers.py:949 +#: part/templates/part/part_base.html:249 stock/admin.py:236 #: templates/js/translated/part.js:717 templates/js/translated/part.js:2159 msgid "Building" msgstr "" -#: part/admin.py:155 part/models.py:3202 part/models.py:3216 +#: part/admin.py:155 part/models.py:3253 part/models.py:3267 #: templates/js/translated/part.js:976 msgid "Minimum Cost" msgstr "" -#: part/admin.py:158 part/models.py:3209 part/models.py:3223 +#: part/admin.py:158 part/models.py:3260 part/models.py:3274 #: templates/js/translated/part.js:986 msgid "Maximum Cost" msgstr "" -#: part/admin.py:308 part/admin.py:387 stock/admin.py:57 stock/admin.py:215 +#: part/admin.py:308 part/admin.py:387 stock/admin.py:57 stock/admin.py:216 msgid "Parent ID" msgstr "" @@ -6481,8 +6690,8 @@ msgstr "" msgid "Category Path" msgstr "" -#: part/admin.py:325 part/models.py:425 part/serializers.py:130 -#: part/serializers.py:290 part/serializers.py:415 +#: part/admin.py:325 part/models.py:420 part/serializers.py:130 +#: part/serializers.py:323 part/serializers.py:459 #: part/templates/part/cat_link.html:3 part/templates/part/category.html:20 #: part/templates/part/category.html:138 part/templates/part/category.html:158 #: part/templates/part/category_sidebar.html:9 @@ -6509,15 +6718,15 @@ msgstr "" msgid "Part Revision" msgstr "" -#: part/admin.py:418 part/serializers.py:1346 +#: part/admin.py:418 part/serializers.py:1400 #: templates/js/translated/pricing.js:358 -#: templates/js/translated/pricing.js:1024 +#: templates/js/translated/pricing.js:1022 msgid "Minimum Price" msgstr "" -#: part/admin.py:423 part/serializers.py:1361 +#: part/admin.py:423 part/serializers.py:1415 #: templates/js/translated/pricing.js:353 -#: templates/js/translated/pricing.js:1032 +#: templates/js/translated/pricing.js:1030 msgid "Maximum Price" msgstr "" @@ -6545,94 +6754,98 @@ msgstr "" msgid "Filter by top-level categories" msgstr "" +#: part/api.py:156 stock/api.py:343 +msgid "Cascade" +msgstr "" + #: part/api.py:158 msgid "Include sub-categories in filtered results" msgstr "" -#: part/api.py:179 templates/js/translated/part.js:311 +#: part/api.py:178 templates/js/translated/part.js:311 msgid "Parent" msgstr "" -#: part/api.py:181 +#: part/api.py:180 msgid "Filter by parent category" msgstr "" -#: part/api.py:214 +#: part/api.py:213 msgid "Exclude Tree" msgstr "" -#: part/api.py:216 +#: part/api.py:215 msgid "Exclude sub-categories under the specified category" msgstr "" -#: part/api.py:441 +#: part/api.py:440 msgid "Has Results" msgstr "" -#: part/api.py:608 +#: part/api.py:604 msgid "Incoming Purchase Order" msgstr "" -#: part/api.py:626 +#: part/api.py:618 msgid "Outgoing Sales Order" msgstr "" -#: part/api.py:642 +#: part/api.py:630 msgid "Stock produced by Build Order" msgstr "" -#: part/api.py:726 +#: part/api.py:712 msgid "Stock required for Build Order" msgstr "" -#: part/api.py:874 +#: part/api.py:858 msgid "Validate entire Bill of Materials" msgstr "" -#: part/api.py:880 +#: part/api.py:864 msgid "This option must be selected" msgstr "" -#: part/api.py:916 +#: part/api.py:900 msgid "Is Revision" msgstr "" -#: part/api.py:926 +#: part/api.py:910 msgid "Has Revisions" msgstr "" -#: part/api.py:1117 +#: part/api.py:1101 msgid "BOM Valid" msgstr "" -#: part/api.py:1523 part/models.py:1024 part/models.py:3489 part/models.py:4046 -#: part/serializers.py:430 part/serializers.py:1202 -#: part/templates/part/part_base.html:260 stock/api.py:781 +#: part/api.py:1509 part/models.py:1085 part/models.py:3540 part/models.py:4104 +#: part/serializers.py:474 part/serializers.py:1255 +#: part/templates/part/part_base.html:268 stock/api.py:781 #: templates/InvenTree/settings/settings_staff_js.html:300 #: templates/js/translated/notification.js:60 #: templates/js/translated/part.js:2383 msgid "Category" msgstr "" -#: part/api.py:1761 +#: part/api.py:1750 msgid "Assembly part is testable" msgstr "" -#: part/api.py:1770 +#: part/api.py:1759 msgid "Component part is testable" msgstr "" -#: part/api.py:1821 +#: part/api.py:1810 msgid "Uses" msgstr "" -#: part/bom.py:178 part/models.py:107 part/models.py:1077 -#: part/templates/part/category.html:113 part/templates/part/part_base.html:376 +#: part/bom.py:183 part/models.py:109 part/models.py:1138 +#: part/templates/part/category.html:113 part/templates/part/part_base.html:384 #: templates/js/translated/part.js:2397 msgid "Default Location" msgstr "" -#: part/bom.py:179 part/serializers.py:905 +#: part/bom.py:184 part/serializers.py:957 #: templates/email/low_stock_notification.html:16 msgid "Total Stock" msgstr "" @@ -6641,789 +6854,789 @@ msgstr "" msgid "Input quantity for price calculation" msgstr "" -#: part/models.py:88 part/models.py:4047 part/templates/part/category.html:16 +#: part/models.py:90 part/models.py:4105 part/templates/part/category.html:16 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "" -#: part/models.py:89 part/templates/part/category.html:133 +#: part/models.py:91 part/templates/part/category.html:133 #: templates/InvenTree/search.html:97 templates/js/translated/search.js:158 #: users/models.py:202 msgid "Part Categories" msgstr "" -#: part/models.py:108 +#: part/models.py:110 msgid "Default location for parts in this category" msgstr "" -#: part/models.py:113 stock/models.py:187 templates/js/translated/part.js:2828 -#: templates/js/translated/stock.js:2856 +#: part/models.py:115 stock/models.py:193 templates/js/translated/part.js:2828 +#: templates/js/translated/stock.js:2857 #: templates/js/translated/table_filters.js:246 #: templates/js/translated/table_filters.js:290 msgid "Structural" msgstr "" -#: part/models.py:115 +#: part/models.py:117 msgid "Parts may not be directly assigned to a structural category, but may be assigned to child categories." msgstr "" -#: part/models.py:124 +#: part/models.py:126 msgid "Default keywords" msgstr "" -#: part/models.py:125 +#: part/models.py:127 msgid "Default keywords for parts in this category" msgstr "" -#: part/models.py:131 stock/models.py:90 stock/models.py:169 +#: part/models.py:133 stock/models.py:96 stock/models.py:175 #: templates/InvenTree/settings/settings_staff_js.html:445 msgid "Icon" msgstr "" -#: part/models.py:132 part/serializers.py:143 part/serializers.py:161 -#: stock/models.py:170 +#: part/models.py:134 part/serializers.py:143 part/serializers.py:161 +#: stock/models.py:176 msgid "Icon (optional)" msgstr "" -#: part/models.py:178 +#: part/models.py:180 msgid "You cannot make this part category structural because some parts are already assigned to it!" msgstr "" -#: part/models.py:519 +#: part/models.py:514 msgid "Cannot delete this part as it is locked" msgstr "" -#: part/models.py:522 +#: part/models.py:517 msgid "Cannot delete this part as it is still active" msgstr "" -#: part/models.py:527 +#: part/models.py:522 msgid "Cannot delete this part as it is used in an assembly" msgstr "" -#: part/models.py:565 +#: part/models.py:560 msgid "Invalid choice for parent part" msgstr "" -#: part/models.py:613 part/models.py:620 +#: part/models.py:608 part/models.py:615 #, python-brace-format msgid "Part '{self}' cannot be used in BOM for '{parent}' (recursive)" msgstr "" -#: part/models.py:632 +#: part/models.py:627 #, python-brace-format msgid "Part '{parent}' is used in BOM for '{self}' (recursive)" msgstr "" -#: part/models.py:695 +#: part/models.py:694 #, python-brace-format msgid "IPN must match regex pattern {pattern}" msgstr "" -#: part/models.py:703 +#: part/models.py:702 msgid "Part cannot be a revision of itself" msgstr "" -#: part/models.py:710 +#: part/models.py:709 msgid "Cannot make a revision of a part which is already a revision" msgstr "" -#: part/models.py:717 +#: part/models.py:716 msgid "Revision code must be specified" msgstr "" -#: part/models.py:724 +#: part/models.py:723 msgid "Revisions are only allowed for assembly parts" msgstr "" -#: part/models.py:731 +#: part/models.py:730 msgid "Cannot make a revision of a template part" msgstr "" -#: part/models.py:737 +#: part/models.py:736 msgid "Parent part must point to the same template" msgstr "" -#: part/models.py:816 +#: part/models.py:832 msgid "Stock item with this serial number already exists" msgstr "" -#: part/models.py:917 +#: part/models.py:976 msgid "Duplicate IPN not allowed in part settings" msgstr "" -#: part/models.py:926 +#: part/models.py:988 msgid "Duplicate part revision already exists." msgstr "" -#: part/models.py:936 +#: part/models.py:997 msgid "Part with this Name, IPN and Revision already exists." msgstr "" -#: part/models.py:951 +#: part/models.py:1012 msgid "Parts cannot be assigned to structural part categories!" msgstr "" -#: part/models.py:983 part/models.py:4102 +#: part/models.py:1044 part/models.py:4160 msgid "Part name" msgstr "" -#: part/models.py:988 +#: part/models.py:1049 msgid "Is Template" msgstr "" -#: part/models.py:989 +#: part/models.py:1050 msgid "Is this part a template part?" msgstr "" -#: part/models.py:999 +#: part/models.py:1060 msgid "Is this part a variant of another part?" msgstr "" -#: part/models.py:1007 +#: part/models.py:1068 msgid "Part description (optional)" msgstr "" -#: part/models.py:1015 +#: part/models.py:1076 msgid "Part keywords to improve visibility in search results" msgstr "" -#: part/models.py:1025 +#: part/models.py:1086 msgid "Part category" msgstr "" -#: part/models.py:1040 +#: part/models.py:1101 msgid "Part revision or version number" msgstr "" -#: part/models.py:1050 +#: part/models.py:1111 msgid "Is this part a revision of another part?" msgstr "" -#: part/models.py:1051 part/templates/part/part_base.html:277 +#: part/models.py:1112 part/templates/part/part_base.html:285 msgid "Revision Of" msgstr "" -#: part/models.py:1075 +#: part/models.py:1136 msgid "Where is this item normally stored?" msgstr "" -#: part/models.py:1121 part/templates/part/part_base.html:385 +#: part/models.py:1182 part/templates/part/part_base.html:393 msgid "Default Supplier" msgstr "" -#: part/models.py:1122 +#: part/models.py:1183 msgid "Default supplier part" msgstr "" -#: part/models.py:1129 +#: part/models.py:1190 msgid "Default Expiry" msgstr "" -#: part/models.py:1130 +#: part/models.py:1191 msgid "Expiry time (in days) for stock items of this part" msgstr "" -#: part/models.py:1139 +#: part/models.py:1200 msgid "Minimum allowed stock level" msgstr "" -#: part/models.py:1148 +#: part/models.py:1209 msgid "Units of measure for this part" msgstr "" -#: part/models.py:1155 +#: part/models.py:1216 msgid "Can this part be built from other parts?" msgstr "" -#: part/models.py:1161 +#: part/models.py:1222 msgid "Can this part be used to build other parts?" msgstr "" -#: part/models.py:1167 +#: part/models.py:1228 msgid "Does this part have tracking for unique items?" msgstr "" -#: part/models.py:1173 +#: part/models.py:1234 msgid "Can this part have test results recorded against it?" msgstr "" -#: part/models.py:1179 +#: part/models.py:1240 msgid "Can this part be purchased from external suppliers?" msgstr "" -#: part/models.py:1185 +#: part/models.py:1246 msgid "Can this part be sold to customers?" msgstr "" -#: part/models.py:1189 +#: part/models.py:1250 msgid "Is this part active?" msgstr "" -#: part/models.py:1194 templates/js/translated/part.js:821 +#: part/models.py:1255 templates/js/translated/part.js:821 #: templates/js/translated/table_filters.js:724 msgid "Locked" msgstr "" -#: part/models.py:1195 +#: part/models.py:1256 msgid "Locked parts cannot be edited" msgstr "" -#: part/models.py:1201 +#: part/models.py:1262 msgid "Is this a virtual part, such as a software product or license?" msgstr "" -#: part/models.py:1207 +#: part/models.py:1268 msgid "BOM checksum" msgstr "" -#: part/models.py:1208 +#: part/models.py:1269 msgid "Stored BOM checksum" msgstr "" -#: part/models.py:1216 +#: part/models.py:1277 msgid "BOM checked by" msgstr "" -#: part/models.py:1221 +#: part/models.py:1282 msgid "BOM checked date" msgstr "" -#: part/models.py:1237 +#: part/models.py:1298 msgid "Creation User" msgstr "" -#: part/models.py:1247 +#: part/models.py:1308 msgid "Owner responsible for this part" msgstr "" -#: part/models.py:1252 part/templates/part/part_base.html:348 -#: stock/templates/stock/item_base.html:451 +#: part/models.py:1313 part/templates/part/part_base.html:356 +#: stock/templates/stock/item_base.html:448 #: templates/js/translated/part.js:2490 msgid "Last Stocktake" msgstr "" -#: part/models.py:2125 +#: part/models.py:2185 msgid "Sell multiple" msgstr "" -#: part/models.py:3116 +#: part/models.py:3167 msgid "Currency used to cache pricing calculations" msgstr "" -#: part/models.py:3132 +#: part/models.py:3183 msgid "Minimum BOM Cost" msgstr "" -#: part/models.py:3133 +#: part/models.py:3184 msgid "Minimum cost of component parts" msgstr "" -#: part/models.py:3139 +#: part/models.py:3190 msgid "Maximum BOM Cost" msgstr "" -#: part/models.py:3140 +#: part/models.py:3191 msgid "Maximum cost of component parts" msgstr "" -#: part/models.py:3146 +#: part/models.py:3197 msgid "Minimum Purchase Cost" msgstr "" -#: part/models.py:3147 +#: part/models.py:3198 msgid "Minimum historical purchase cost" msgstr "" -#: part/models.py:3153 +#: part/models.py:3204 msgid "Maximum Purchase Cost" msgstr "" -#: part/models.py:3154 +#: part/models.py:3205 msgid "Maximum historical purchase cost" msgstr "" -#: part/models.py:3160 +#: part/models.py:3211 msgid "Minimum Internal Price" msgstr "" -#: part/models.py:3161 +#: part/models.py:3212 msgid "Minimum cost based on internal price breaks" msgstr "" -#: part/models.py:3167 +#: part/models.py:3218 msgid "Maximum Internal Price" msgstr "" -#: part/models.py:3168 +#: part/models.py:3219 msgid "Maximum cost based on internal price breaks" msgstr "" -#: part/models.py:3174 +#: part/models.py:3225 msgid "Minimum Supplier Price" msgstr "" -#: part/models.py:3175 +#: part/models.py:3226 msgid "Minimum price of part from external suppliers" msgstr "" -#: part/models.py:3181 +#: part/models.py:3232 msgid "Maximum Supplier Price" msgstr "" -#: part/models.py:3182 +#: part/models.py:3233 msgid "Maximum price of part from external suppliers" msgstr "" -#: part/models.py:3188 +#: part/models.py:3239 msgid "Minimum Variant Cost" msgstr "" -#: part/models.py:3189 +#: part/models.py:3240 msgid "Calculated minimum cost of variant parts" msgstr "" -#: part/models.py:3195 +#: part/models.py:3246 msgid "Maximum Variant Cost" msgstr "" -#: part/models.py:3196 +#: part/models.py:3247 msgid "Calculated maximum cost of variant parts" msgstr "" -#: part/models.py:3203 +#: part/models.py:3254 msgid "Override minimum cost" msgstr "" -#: part/models.py:3210 +#: part/models.py:3261 msgid "Override maximum cost" msgstr "" -#: part/models.py:3217 +#: part/models.py:3268 msgid "Calculated overall minimum cost" msgstr "" -#: part/models.py:3224 +#: part/models.py:3275 msgid "Calculated overall maximum cost" msgstr "" -#: part/models.py:3230 +#: part/models.py:3281 msgid "Minimum Sale Price" msgstr "" -#: part/models.py:3231 +#: part/models.py:3282 msgid "Minimum sale price based on price breaks" msgstr "" -#: part/models.py:3237 +#: part/models.py:3288 msgid "Maximum Sale Price" msgstr "" -#: part/models.py:3238 +#: part/models.py:3289 msgid "Maximum sale price based on price breaks" msgstr "" -#: part/models.py:3244 +#: part/models.py:3295 msgid "Minimum Sale Cost" msgstr "" -#: part/models.py:3245 +#: part/models.py:3296 msgid "Minimum historical sale price" msgstr "" -#: part/models.py:3251 +#: part/models.py:3302 msgid "Maximum Sale Cost" msgstr "" -#: part/models.py:3252 +#: part/models.py:3303 msgid "Maximum historical sale price" msgstr "" -#: part/models.py:3271 +#: part/models.py:3322 msgid "Part for stocktake" msgstr "" -#: part/models.py:3276 +#: part/models.py:3327 msgid "Item Count" msgstr "" -#: part/models.py:3277 +#: part/models.py:3328 msgid "Number of individual stock entries at time of stocktake" msgstr "" -#: part/models.py:3285 +#: part/models.py:3336 msgid "Total available stock at time of stocktake" msgstr "" -#: part/models.py:3289 part/models.py:3372 +#: part/models.py:3340 part/models.py:3423 part/serializers.py:263 #: part/templates/part/part_scheduling.html:13 #: report/templates/report/inventree_test_report.html:106 #: templates/InvenTree/settings/plugin_settings.html:37 #: templates/InvenTree/settings/settings_staff_js.html:543 -#: templates/js/translated/part.js:1092 templates/js/translated/pricing.js:826 -#: templates/js/translated/pricing.js:950 -#: templates/js/translated/purchase_order.js:1801 -#: templates/js/translated/stock.js:2905 +#: templates/js/translated/part.js:1092 templates/js/translated/pricing.js:824 +#: templates/js/translated/pricing.js:948 +#: templates/js/translated/purchase_order.js:1785 +#: templates/js/translated/stock.js:2906 msgid "Date" msgstr "" -#: part/models.py:3290 +#: part/models.py:3341 msgid "Date stocktake was performed" msgstr "" -#: part/models.py:3298 +#: part/models.py:3349 msgid "Additional notes" msgstr "" -#: part/models.py:3308 +#: part/models.py:3359 msgid "User who performed this stocktake" msgstr "" -#: part/models.py:3314 +#: part/models.py:3365 msgid "Minimum Stock Cost" msgstr "" -#: part/models.py:3315 +#: part/models.py:3366 msgid "Estimated minimum cost of stock on hand" msgstr "" -#: part/models.py:3321 +#: part/models.py:3372 msgid "Maximum Stock Cost" msgstr "" -#: part/models.py:3322 +#: part/models.py:3373 msgid "Estimated maximum cost of stock on hand" msgstr "" -#: part/models.py:3378 templates/InvenTree/settings/settings_staff_js.html:532 +#: part/models.py:3429 templates/InvenTree/settings/settings_staff_js.html:532 msgid "Report" msgstr "" -#: part/models.py:3379 +#: part/models.py:3430 msgid "Stocktake report file (generated internally)" msgstr "" -#: part/models.py:3384 templates/InvenTree/settings/settings_staff_js.html:539 +#: part/models.py:3435 templates/InvenTree/settings/settings_staff_js.html:539 msgid "Part Count" msgstr "" -#: part/models.py:3385 +#: part/models.py:3436 msgid "Number of parts covered by stocktake" msgstr "" -#: part/models.py:3395 +#: part/models.py:3446 msgid "User who requested this stocktake report" msgstr "" -#: part/models.py:3405 +#: part/models.py:3456 msgid "Part Sale Price Break" msgstr "" -#: part/models.py:3517 +#: part/models.py:3568 msgid "Part Test Template" msgstr "" -#: part/models.py:3543 +#: part/models.py:3594 msgid "Invalid template name - must include at least one alphanumeric character" msgstr "" -#: part/models.py:3564 part/models.py:3733 +#: part/models.py:3615 part/models.py:3784 msgid "Choices must be unique" msgstr "" -#: part/models.py:3575 -msgid "Test templates can only be created for trackable parts" +#: part/models.py:3626 +msgid "Test templates can only be created for testable parts" msgstr "" -#: part/models.py:3586 +#: part/models.py:3637 msgid "Test template with the same key already exists for part" msgstr "" -#: part/models.py:3603 templates/js/translated/part.js:2898 +#: part/models.py:3654 templates/js/translated/part.js:2898 msgid "Test Name" msgstr "" -#: part/models.py:3604 +#: part/models.py:3655 msgid "Enter a name for the test" msgstr "" -#: part/models.py:3610 +#: part/models.py:3661 msgid "Test Key" msgstr "" -#: part/models.py:3611 +#: part/models.py:3662 msgid "Simplified key for the test" msgstr "" -#: part/models.py:3618 +#: part/models.py:3669 msgid "Test Description" msgstr "" -#: part/models.py:3619 +#: part/models.py:3670 msgid "Enter description for this test" msgstr "" -#: part/models.py:3623 report/models.py:208 +#: part/models.py:3674 report/models.py:216 #: templates/js/translated/part.js:2919 #: templates/js/translated/table_filters.js:502 msgid "Enabled" msgstr "" -#: part/models.py:3623 +#: part/models.py:3674 msgid "Is this test enabled?" msgstr "" -#: part/models.py:3628 templates/js/translated/part.js:2927 +#: part/models.py:3679 templates/js/translated/part.js:2927 #: templates/js/translated/table_filters.js:498 msgid "Required" msgstr "" -#: part/models.py:3629 +#: part/models.py:3680 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:3634 templates/js/translated/part.js:2935 +#: part/models.py:3685 templates/js/translated/part.js:2935 msgid "Requires Value" msgstr "" -#: part/models.py:3635 +#: part/models.py:3686 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:3640 templates/js/translated/part.js:2942 +#: part/models.py:3691 templates/js/translated/part.js:2942 msgid "Requires Attachment" msgstr "" -#: part/models.py:3642 +#: part/models.py:3693 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:3648 part/models.py:3792 templates/js/translated/part.js:1643 +#: part/models.py:3699 part/models.py:3843 templates/js/translated/part.js:1643 msgid "Choices" msgstr "" -#: part/models.py:3649 +#: part/models.py:3700 msgid "Valid choices for this test (comma-separated)" msgstr "" -#: part/models.py:3681 +#: part/models.py:3732 msgid "Part Parameter Template" msgstr "" -#: part/models.py:3708 +#: part/models.py:3759 msgid "Checkbox parameters cannot have units" msgstr "" -#: part/models.py:3713 +#: part/models.py:3764 msgid "Checkbox parameters cannot have choices" msgstr "" -#: part/models.py:3750 +#: part/models.py:3801 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:3765 +#: part/models.py:3816 msgid "Parameter Name" msgstr "" -#: part/models.py:3772 +#: part/models.py:3823 msgid "Physical units for this parameter" msgstr "" -#: part/models.py:3780 +#: part/models.py:3831 msgid "Parameter description" msgstr "" -#: part/models.py:3786 templates/js/translated/part.js:1634 +#: part/models.py:3837 templates/js/translated/part.js:1634 #: templates/js/translated/table_filters.js:837 msgid "Checkbox" msgstr "" -#: part/models.py:3787 +#: part/models.py:3838 msgid "Is this parameter a checkbox?" msgstr "" -#: part/models.py:3793 +#: part/models.py:3844 msgid "Valid choices for this parameter (comma-separated)" msgstr "" -#: part/models.py:3827 +#: part/models.py:3881 msgid "Part Parameter" msgstr "" -#: part/models.py:3853 +#: part/models.py:3907 msgid "Parameter cannot be modified - part is locked" msgstr "" -#: part/models.py:3889 +#: part/models.py:3945 msgid "Invalid choice for parameter value" msgstr "" -#: part/models.py:3938 +#: part/models.py:3996 msgid "Parent Part" msgstr "" -#: part/models.py:3946 part/models.py:4054 part/models.py:4055 +#: part/models.py:4004 part/models.py:4112 part/models.py:4113 #: templates/InvenTree/settings/settings_staff_js.html:295 msgid "Parameter Template" msgstr "" -#: part/models.py:3952 +#: part/models.py:4010 msgid "Parameter Value" msgstr "" -#: part/models.py:4002 +#: part/models.py:4060 msgid "Part Category Parameter Template" msgstr "" -#: part/models.py:4061 templates/InvenTree/settings/settings_staff_js.html:304 +#: part/models.py:4119 templates/InvenTree/settings/settings_staff_js.html:304 msgid "Default Value" msgstr "" -#: part/models.py:4062 +#: part/models.py:4120 msgid "Default Parameter Value" msgstr "" -#: part/models.py:4100 +#: part/models.py:4158 msgid "Part ID or part name" msgstr "" -#: part/models.py:4101 +#: part/models.py:4159 msgid "Unique part ID value" msgstr "" -#: part/models.py:4103 +#: part/models.py:4161 msgid "Part IPN value" msgstr "" -#: part/models.py:4104 +#: part/models.py:4162 msgid "Level" msgstr "" -#: part/models.py:4104 +#: part/models.py:4162 msgid "BOM level" msgstr "" -#: part/models.py:4215 +#: part/models.py:4272 msgid "BOM item cannot be modified - assembly is locked" msgstr "" -#: part/models.py:4222 +#: part/models.py:4279 msgid "BOM item cannot be modified - variant assembly is locked" msgstr "" -#: part/models.py:4232 +#: part/models.py:4289 msgid "Select parent part" msgstr "" -#: part/models.py:4242 +#: part/models.py:4299 msgid "Sub part" msgstr "" -#: part/models.py:4243 +#: part/models.py:4300 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:4254 +#: part/models.py:4311 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:4260 +#: part/models.py:4317 msgid "This BOM item is optional" msgstr "" -#: part/models.py:4266 +#: part/models.py:4323 msgid "This BOM item is consumable (it is not tracked in build orders)" msgstr "" -#: part/models.py:4273 part/templates/part/upload_bom.html:55 +#: part/models.py:4330 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "" -#: part/models.py:4274 +#: part/models.py:4331 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:4281 +#: part/models.py:4338 msgid "BOM item reference" msgstr "" -#: part/models.py:4289 +#: part/models.py:4346 msgid "BOM item notes" msgstr "" -#: part/models.py:4295 +#: part/models.py:4352 msgid "Checksum" msgstr "" -#: part/models.py:4296 +#: part/models.py:4353 msgid "BOM line checksum" msgstr "" -#: part/models.py:4301 templates/js/translated/table_filters.js:181 +#: part/models.py:4358 templates/js/translated/table_filters.js:181 msgid "Validated" msgstr "" -#: part/models.py:4302 +#: part/models.py:4359 msgid "This BOM item has been validated" msgstr "" -#: part/models.py:4307 part/templates/part/upload_bom.html:57 +#: part/models.py:4364 part/templates/part/upload_bom.html:57 #: templates/js/translated/bom.js:1054 #: templates/js/translated/table_filters.js:185 #: templates/js/translated/table_filters.js:218 msgid "Gets inherited" msgstr "" -#: part/models.py:4308 +#: part/models.py:4365 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:4314 +#: part/models.py:4371 msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:4399 stock/models.py:685 +#: part/models.py:4456 stock/models.py:762 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:4409 part/models.py:4411 +#: part/models.py:4466 part/models.py:4468 msgid "Sub part must be specified" msgstr "" -#: part/models.py:4551 +#: part/models.py:4613 msgid "BOM Item Substitute" msgstr "" -#: part/models.py:4572 +#: part/models.py:4634 msgid "Substitute part cannot be the same as the master part" msgstr "" -#: part/models.py:4585 +#: part/models.py:4647 msgid "Parent BOM item" msgstr "" -#: part/models.py:4593 +#: part/models.py:4655 msgid "Substitute part" msgstr "" -#: part/models.py:4609 +#: part/models.py:4671 msgid "Part 1" msgstr "" -#: part/models.py:4617 +#: part/models.py:4679 msgid "Part 2" msgstr "" -#: part/models.py:4618 +#: part/models.py:4680 msgid "Select Related Part" msgstr "" -#: part/models.py:4637 +#: part/models.py:4699 msgid "Part relationship cannot be created between a part and itself" msgstr "" -#: part/models.py:4642 +#: part/models.py:4704 msgid "Duplicate relationship already exists" msgstr "" @@ -7449,340 +7662,352 @@ msgstr "" msgid "Number of results recorded against this template" msgstr "" -#: part/serializers.py:225 part/serializers.py:243 stock/serializers.py:616 +#: part/serializers.py:225 part/serializers.py:243 stock/serializers.py:643 msgid "Purchase currency of this stock item" msgstr "" -#: part/serializers.py:291 +#: part/serializers.py:268 +msgid "Speculative Quantity" +msgstr "" + +#: part/serializers.py:277 +msgid "Model ID" +msgstr "" + +#: part/serializers.py:324 msgid "Number of parts using this template" msgstr "" -#: part/serializers.py:421 +#: part/serializers.py:465 msgid "No parts selected" msgstr "" -#: part/serializers.py:431 +#: part/serializers.py:475 msgid "Select category" msgstr "" -#: part/serializers.py:466 +#: part/serializers.py:510 msgid "Original Part" msgstr "" -#: part/serializers.py:467 +#: part/serializers.py:511 msgid "Select original part to duplicate" msgstr "" -#: part/serializers.py:472 +#: part/serializers.py:516 msgid "Copy Image" msgstr "" -#: part/serializers.py:473 +#: part/serializers.py:517 msgid "Copy image from original part" msgstr "" -#: part/serializers.py:479 part/templates/part/detail.html:293 +#: part/serializers.py:523 part/templates/part/detail.html:293 msgid "Copy BOM" msgstr "" -#: part/serializers.py:480 +#: part/serializers.py:524 msgid "Copy bill of materials from original part" msgstr "" -#: part/serializers.py:486 +#: part/serializers.py:530 msgid "Copy Parameters" msgstr "" -#: part/serializers.py:487 +#: part/serializers.py:531 msgid "Copy parameter data from original part" msgstr "" -#: part/serializers.py:493 +#: part/serializers.py:537 msgid "Copy Notes" msgstr "" -#: part/serializers.py:494 +#: part/serializers.py:538 msgid "Copy notes from original part" msgstr "" -#: part/serializers.py:512 +#: part/serializers.py:556 msgid "Initial Stock Quantity" msgstr "" -#: part/serializers.py:514 +#: part/serializers.py:558 msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added." msgstr "" -#: part/serializers.py:521 +#: part/serializers.py:565 msgid "Initial Stock Location" msgstr "" -#: part/serializers.py:522 +#: part/serializers.py:566 msgid "Specify initial stock location for this Part" msgstr "" -#: part/serializers.py:539 +#: part/serializers.py:583 msgid "Select supplier (or leave blank to skip)" msgstr "" -#: part/serializers.py:555 +#: part/serializers.py:599 msgid "Select manufacturer (or leave blank to skip)" msgstr "" -#: part/serializers.py:565 +#: part/serializers.py:609 msgid "Manufacturer part number" msgstr "" -#: part/serializers.py:572 +#: part/serializers.py:616 msgid "Selected company is not a valid supplier" msgstr "" -#: part/serializers.py:581 +#: part/serializers.py:625 msgid "Selected company is not a valid manufacturer" msgstr "" -#: part/serializers.py:592 +#: part/serializers.py:636 msgid "Manufacturer part matching this MPN already exists" msgstr "" -#: part/serializers.py:599 +#: part/serializers.py:643 msgid "Supplier part matching this SKU already exists" msgstr "" -#: part/serializers.py:903 +#: part/serializers.py:955 msgid "Revisions" msgstr "" -#: part/serializers.py:908 +#: part/serializers.py:960 msgid "Unallocated Stock" msgstr "" -#: part/serializers.py:911 +#: part/serializers.py:963 msgid "Variant Stock" msgstr "" -#: part/serializers.py:941 part/templates/part/copy_part.html:9 +#: part/serializers.py:993 part/templates/part/copy_part.html:9 #: templates/js/translated/part.js:474 msgid "Duplicate Part" msgstr "" -#: part/serializers.py:942 +#: part/serializers.py:994 msgid "Copy initial data from another Part" msgstr "" -#: part/serializers.py:948 templates/js/translated/part.js:103 +#: part/serializers.py:1000 templates/js/translated/part.js:103 msgid "Initial Stock" msgstr "" -#: part/serializers.py:949 +#: part/serializers.py:1001 msgid "Create Part with initial stock quantity" msgstr "" -#: part/serializers.py:955 +#: part/serializers.py:1007 msgid "Supplier Information" msgstr "" -#: part/serializers.py:956 +#: part/serializers.py:1008 msgid "Add initial supplier information for this part" msgstr "" -#: part/serializers.py:964 +#: part/serializers.py:1016 msgid "Copy Category Parameters" msgstr "" -#: part/serializers.py:965 +#: part/serializers.py:1017 msgid "Copy parameter templates from selected part category" msgstr "" -#: part/serializers.py:970 +#: part/serializers.py:1022 msgid "Existing Image" msgstr "" -#: part/serializers.py:971 +#: part/serializers.py:1023 msgid "Filename of an existing part image" msgstr "" -#: part/serializers.py:988 +#: part/serializers.py:1040 msgid "Image file does not exist" msgstr "" -#: part/serializers.py:1194 +#: part/serializers.py:1247 msgid "Limit stocktake report to a particular part, and any variant parts" msgstr "" -#: part/serializers.py:1204 +#: part/serializers.py:1257 msgid "Limit stocktake report to a particular part category, and any child categories" msgstr "" -#: part/serializers.py:1214 +#: part/serializers.py:1267 msgid "Limit stocktake report to a particular stock location, and any child locations" msgstr "" -#: part/serializers.py:1220 +#: part/serializers.py:1273 msgid "Exclude External Stock" msgstr "" -#: part/serializers.py:1221 +#: part/serializers.py:1274 msgid "Exclude stock items in external locations" msgstr "" -#: part/serializers.py:1226 +#: part/serializers.py:1279 msgid "Generate Report" msgstr "" -#: part/serializers.py:1227 +#: part/serializers.py:1280 msgid "Generate report file containing calculated stocktake data" msgstr "" -#: part/serializers.py:1232 +#: part/serializers.py:1285 msgid "Update Parts" msgstr "" -#: part/serializers.py:1233 +#: part/serializers.py:1286 msgid "Update specified parts with calculated stocktake data" msgstr "" -#: part/serializers.py:1241 +#: part/serializers.py:1294 msgid "Stocktake functionality is not enabled" msgstr "" -#: part/serializers.py:1347 +#: part/serializers.py:1299 +msgid "Background worker check failed" +msgstr "" + +#: part/serializers.py:1401 msgid "Override calculated value for minimum price" msgstr "" -#: part/serializers.py:1354 +#: part/serializers.py:1408 msgid "Minimum price currency" msgstr "" -#: part/serializers.py:1362 +#: part/serializers.py:1416 msgid "Override calculated value for maximum price" msgstr "" -#: part/serializers.py:1369 +#: part/serializers.py:1423 msgid "Maximum price currency" msgstr "" -#: part/serializers.py:1398 +#: part/serializers.py:1452 msgid "Update" msgstr "" -#: part/serializers.py:1399 +#: part/serializers.py:1453 msgid "Update pricing for this part" msgstr "" -#: part/serializers.py:1422 +#: part/serializers.py:1476 #, python-brace-format msgid "Could not convert from provided currencies to {default_currency}" msgstr "" -#: part/serializers.py:1429 +#: part/serializers.py:1483 msgid "Minimum price must not be greater than maximum price" msgstr "" -#: part/serializers.py:1432 +#: part/serializers.py:1486 msgid "Maximum price must not be less than minimum price" msgstr "" -#: part/serializers.py:1576 +#: part/serializers.py:1634 msgid "Select the parent assembly" msgstr "" -#: part/serializers.py:1585 +#: part/serializers.py:1643 msgid "Component Name" msgstr "" -#: part/serializers.py:1588 +#: part/serializers.py:1646 msgid "Component IPN" msgstr "" -#: part/serializers.py:1591 +#: part/serializers.py:1649 msgid "Component Description" msgstr "" -#: part/serializers.py:1597 +#: part/serializers.py:1655 msgid "Select the component part" msgstr "" -#: part/serializers.py:1606 part/templates/part/part_base.html:235 +#: part/serializers.py:1664 part/templates/part/part_base.html:243 #: templates/js/translated/bom.js:1219 msgid "Can Build" msgstr "" -#: part/serializers.py:1837 +#: part/serializers.py:1899 msgid "Select part to copy BOM from" msgstr "" -#: part/serializers.py:1845 +#: part/serializers.py:1907 msgid "Remove Existing Data" msgstr "" -#: part/serializers.py:1846 +#: part/serializers.py:1908 msgid "Remove existing BOM items before copying" msgstr "" -#: part/serializers.py:1851 +#: part/serializers.py:1913 msgid "Include Inherited" msgstr "" -#: part/serializers.py:1852 +#: part/serializers.py:1914 msgid "Include BOM items which are inherited from templated parts" msgstr "" -#: part/serializers.py:1857 +#: part/serializers.py:1919 msgid "Skip Invalid Rows" msgstr "" -#: part/serializers.py:1858 +#: part/serializers.py:1920 msgid "Enable this option to skip invalid rows" msgstr "" -#: part/serializers.py:1863 +#: part/serializers.py:1925 msgid "Copy Substitute Parts" msgstr "" -#: part/serializers.py:1864 +#: part/serializers.py:1926 msgid "Copy substitute parts when duplicate BOM items" msgstr "" -#: part/serializers.py:1901 +#: part/serializers.py:1963 msgid "Clear Existing BOM" msgstr "" -#: part/serializers.py:1902 +#: part/serializers.py:1964 msgid "Delete existing BOM items before uploading" msgstr "" -#: part/serializers.py:1934 +#: part/serializers.py:1996 msgid "No part column specified" msgstr "" -#: part/serializers.py:1978 +#: part/serializers.py:2040 msgid "Multiple matching parts found" msgstr "" -#: part/serializers.py:1981 +#: part/serializers.py:2043 msgid "No matching part found" msgstr "" -#: part/serializers.py:1984 +#: part/serializers.py:2045 msgid "Part is not designated as a component" msgstr "" -#: part/serializers.py:1993 +#: part/serializers.py:2054 msgid "Quantity not provided" msgstr "" -#: part/serializers.py:2001 +#: part/serializers.py:2062 msgid "Invalid quantity" msgstr "" -#: part/serializers.py:2024 +#: part/serializers.py:2085 msgid "At least one BOM item is required" msgstr "" #: part/stocktake.py:224 templates/js/translated/part.js:1073 #: templates/js/translated/part.js:1828 templates/js/translated/part.js:1884 -#: templates/js/translated/purchase_order.js:2154 +#: templates/js/translated/purchase_order.js:2138 msgid "Total Quantity" msgstr "" @@ -7932,9 +8157,9 @@ msgid "Add stocktake information" msgstr "" #: part/templates/part/detail.html:67 part/templates/part/part_sidebar.html:50 -#: stock/admin.py:255 templates/InvenTree/settings/part_stocktake.html:30 +#: stock/admin.py:256 templates/InvenTree/settings/part_stocktake.html:30 #: templates/InvenTree/settings/sidebar.html:53 -#: templates/js/translated/stock.js:2301 users/models.py:204 +#: templates/js/translated/stock.js:2302 users/models.py:204 msgid "Stocktake" msgstr "" @@ -8093,142 +8318,146 @@ msgstr "" msgid "Part List" msgstr "" -#: part/templates/part/part_base.html:25 part/templates/part/part_base.html:29 +#: part/templates/part/part_base.html:26 part/templates/part/part_base.html:30 msgid "You are subscribed to notifications for this part" msgstr "" -#: part/templates/part/part_base.html:33 +#: part/templates/part/part_base.html:34 msgid "Subscribe to notifications for this part" msgstr "" -#: part/templates/part/part_base.html:52 +#: part/templates/part/part_base.html:53 #: stock/templates/stock/item_base.html:62 -#: stock/templates/stock/location.html:71 templates/js/translated/label.js:136 +#: stock/templates/stock/location.html:72 templates/js/translated/label.js:136 msgid "Print Label" msgstr "" -#: part/templates/part/part_base.html:58 +#: part/templates/part/part_base.html:59 msgid "Show pricing information" msgstr "" -#: part/templates/part/part_base.html:63 -#: stock/templates/stock/item_base.html:110 -#: stock/templates/stock/location.html:80 +#: part/templates/part/part_base.html:64 +#: stock/templates/stock/item_base.html:107 +#: stock/templates/stock/location.html:81 msgid "Stock actions" msgstr "" -#: part/templates/part/part_base.html:70 +#: part/templates/part/part_base.html:71 msgid "Count part stock" msgstr "" -#: part/templates/part/part_base.html:76 +#: part/templates/part/part_base.html:77 msgid "Transfer part stock" msgstr "" -#: part/templates/part/part_base.html:91 templates/js/translated/part.js:2299 +#: part/templates/part/part_base.html:92 templates/js/translated/part.js:2299 msgid "Part actions" msgstr "" -#: part/templates/part/part_base.html:94 +#: part/templates/part/part_base.html:95 msgid "Duplicate part" msgstr "" -#: part/templates/part/part_base.html:97 +#: part/templates/part/part_base.html:98 msgid "Edit part" msgstr "" -#: part/templates/part/part_base.html:100 +#: part/templates/part/part_base.html:101 msgid "Delete part" msgstr "" -#: part/templates/part/part_base.html:119 +#: part/templates/part/part_base.html:120 msgid "Part is a template part (variants can be made from this part)" msgstr "" -#: part/templates/part/part_base.html:123 +#: part/templates/part/part_base.html:124 msgid "Part can be assembled from other parts" msgstr "" -#: part/templates/part/part_base.html:127 +#: part/templates/part/part_base.html:128 msgid "Part can be used in assemblies" msgstr "" -#: part/templates/part/part_base.html:131 +#: part/templates/part/part_base.html:132 msgid "Part stock is tracked by serial number" msgstr "" -#: part/templates/part/part_base.html:135 +#: part/templates/part/part_base.html:136 msgid "Part can be purchased from external suppliers" msgstr "" -#: part/templates/part/part_base.html:139 +#: part/templates/part/part_base.html:140 msgid "Part can be sold to customers" msgstr "" -#: part/templates/part/part_base.html:145 +#: part/templates/part/part_base.html:146 msgid "Part is not active" msgstr "" -#: part/templates/part/part_base.html:153 +#: part/templates/part/part_base.html:154 msgid "Part is virtual (not a physical part)" msgstr "" -#: part/templates/part/part_base.html:163 -#: part/templates/part/part_base.html:690 +#: part/templates/part/part_base.html:164 +#: part/templates/part/part_base.html:698 msgid "Show Part Details" msgstr "" #: part/templates/part/part_base.html:218 -#: stock/templates/stock/item_base.html:388 +msgid "Required for Orders" +msgstr "" + +#: part/templates/part/part_base.html:226 +#: stock/templates/stock/item_base.html:385 msgid "Allocated to Build Orders" msgstr "" -#: part/templates/part/part_base.html:227 -#: stock/templates/stock/item_base.html:381 +#: part/templates/part/part_base.html:235 +#: stock/templates/stock/item_base.html:378 msgid "Allocated to Sales Orders" msgstr "" -#: part/templates/part/part_base.html:300 +#: part/templates/part/part_base.html:308 msgid "Minimum stock level" msgstr "" -#: part/templates/part/part_base.html:331 templates/js/translated/bom.js:1071 +#: part/templates/part/part_base.html:339 templates/js/translated/bom.js:1071 #: templates/js/translated/part.js:1271 templates/js/translated/part.js:2463 #: templates/js/translated/pricing.js:391 -#: templates/js/translated/pricing.js:1054 +#: templates/js/translated/pricing.js:1052 msgid "Price Range" msgstr "" -#: part/templates/part/part_base.html:361 +#: part/templates/part/part_base.html:369 msgid "Latest Serial Number" msgstr "" -#: part/templates/part/part_base.html:365 -#: stock/templates/stock/item_base.html:322 +#: part/templates/part/part_base.html:373 +#: stock/templates/stock/item_base.html:319 msgid "Search for serial number" msgstr "" -#: part/templates/part/part_base.html:453 +#: part/templates/part/part_base.html:461 msgid "Part QR Code" msgstr "" -#: part/templates/part/part_base.html:470 +#: part/templates/part/part_base.html:478 msgid "Link Barcode to Part" msgstr "" -#: part/templates/part/part_base.html:520 +#: part/templates/part/part_base.html:528 msgid "Calculate" msgstr "" -#: part/templates/part/part_base.html:537 +#: part/templates/part/part_base.html:545 msgid "Remove associated image from this part" msgstr "" -#: part/templates/part/part_base.html:588 +#: part/templates/part/part_base.html:596 msgid "No matching images found" msgstr "" -#: part/templates/part/part_base.html:684 +#: part/templates/part/part_base.html:692 msgid "Hide Part Details" msgstr "" @@ -8282,13 +8511,13 @@ msgid "Variants" msgstr "" #: part/templates/part/part_sidebar.html:14 -#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:21 +#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:22 #: stock/templates/stock/stock_app_base.html:10 #: templates/InvenTree/search.html:153 #: templates/InvenTree/settings/sidebar.html:51 #: templates/js/translated/part.js:1249 templates/js/translated/part.js:2152 #: templates/js/translated/part.js:2411 templates/js/translated/stock.js:1066 -#: templates/js/translated/stock.js:2155 templates/navbar.html:31 +#: templates/js/translated/stock.js:2156 templates/navbar.html:31 msgid "Stock" msgstr "" @@ -8324,17 +8553,17 @@ msgstr "" #: part/templates/part/prices.html:18 #: templates/InvenTree/settings/settings_staff_js.html:80 #: templates/InvenTree/settings/user.html:24 -#: templates/js/translated/helpers.js:103 +#: templates/js/translated/helpers.js:104 #: templates/js/translated/pricing.js:628 templates/notes_buttons.html:3 #: templates/notes_buttons.html:4 msgid "Edit" msgstr "" -#: part/templates/part/prices.html:28 stock/admin.py:251 -#: stock/templates/stock/item_base.html:446 -#: templates/js/translated/company.js:1703 -#: templates/js/translated/company.js:1713 -#: templates/js/translated/stock.js:2331 +#: part/templates/part/prices.html:28 stock/admin.py:252 +#: stock/templates/stock/item_base.html:443 +#: templates/js/translated/company.js:1704 +#: templates/js/translated/company.js:1714 +#: templates/js/translated/stock.js:2332 msgid "Last Updated" msgstr "" @@ -8406,7 +8635,7 @@ msgid "Update Pricing" msgstr "" #: part/templates/part/stock_count.html:7 -#: templates/js/translated/model_renderers.js:228 +#: templates/js/translated/model_renderers.js:231 #: templates/js/translated/part.js:707 templates/js/translated/part.js:2147 #: templates/js/translated/part.js:2149 msgid "No Stock" @@ -8486,7 +8715,7 @@ msgstr "" msgid "Part Pricing" msgstr "" -#: plugin/api.py:172 +#: plugin/api.py:175 msgid "Plugin cannot be deleted as it is currently active" msgstr "" @@ -8498,78 +8727,85 @@ msgstr "" msgid "No matching action found" msgstr "" -#: plugin/base/barcodes/api.py:125 plugin/base/barcodes/api.py:371 -#: plugin/base/barcodes/api.py:546 +#: plugin/base/barcodes/api.py:203 msgid "No match found for barcode data" msgstr "" -#: plugin/base/barcodes/api.py:129 +#: plugin/base/barcodes/api.py:207 msgid "Match found for barcode data" msgstr "" -#: plugin/base/barcodes/api.py:163 plugin/base/barcodes/serializers.py:45 +#: plugin/base/barcodes/api.py:245 plugin/base/barcodes/serializers.py:72 msgid "Model is not supported" msgstr "" -#: plugin/base/barcodes/api.py:168 +#: plugin/base/barcodes/api.py:250 msgid "Model instance not found" msgstr "" -#: plugin/base/barcodes/api.py:197 -#: templates/js/translated/purchase_order.js:1468 +#: plugin/base/barcodes/api.py:279 +#: templates/js/translated/purchase_order.js:1452 msgid "Barcode matches existing item" msgstr "" -#: plugin/base/barcodes/api.py:336 +#: plugin/base/barcodes/api.py:418 msgid "No matching part data found" msgstr "" -#: plugin/base/barcodes/api.py:353 +#: plugin/base/barcodes/api.py:434 msgid "No matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:357 +#: plugin/base/barcodes/api.py:437 msgid "Multiple matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:381 +#: plugin/base/barcodes/api.py:450 plugin/base/barcodes/api.py:664 +msgid "No matching plugin found for barcode data" +msgstr "" + +#: plugin/base/barcodes/api.py:460 msgid "Matched supplier part" msgstr "" -#: plugin/base/barcodes/api.py:430 +#: plugin/base/barcodes/api.py:525 msgid "Item has already been received" msgstr "" -#: plugin/base/barcodes/api.py:467 +#: plugin/base/barcodes/api.py:563 msgid "No match for supplier barcode" msgstr "" -#: plugin/base/barcodes/api.py:510 +#: plugin/base/barcodes/api.py:612 msgid "Multiple matching line items found" msgstr "" -#: plugin/base/barcodes/api.py:513 +#: plugin/base/barcodes/api.py:615 msgid "No matching line item found" msgstr "" -#: plugin/base/barcodes/api.py:551 plugin/base/barcodes/api.py:558 +#: plugin/base/barcodes/api.py:661 +msgid "No sales order provided" +msgstr "" + +#: plugin/base/barcodes/api.py:670 msgid "Barcode does not match an existing stock item" msgstr "" -#: plugin/base/barcodes/api.py:569 +#: plugin/base/barcodes/api.py:686 msgid "Stock item does not match line item" msgstr "" -#: plugin/base/barcodes/api.py:593 templates/js/translated/build.js:2780 -#: templates/js/translated/sales_order.js:1953 +#: plugin/base/barcodes/api.py:716 templates/js/translated/build.js:2798 +#: templates/js/translated/sales_order.js:1934 msgid "Insufficient stock available" msgstr "" -#: plugin/base/barcodes/api.py:602 +#: plugin/base/barcodes/api.py:729 msgid "Stock item allocated to sales order" msgstr "" -#: plugin/base/barcodes/api.py:606 +#: plugin/base/barcodes/api.py:732 msgid "Not enough information" msgstr "" @@ -8591,75 +8827,75 @@ msgstr "" msgid "Purchase order does not match supplier" msgstr "" -#: plugin/base/barcodes/mixins.py:465 +#: plugin/base/barcodes/mixins.py:467 msgid "Failed to find pending line item for supplier part" msgstr "" -#: plugin/base/barcodes/mixins.py:496 +#: plugin/base/barcodes/mixins.py:498 msgid "Further information required to receive line item" msgstr "" -#: plugin/base/barcodes/mixins.py:504 +#: plugin/base/barcodes/mixins.py:506 msgid "Received purchase order line item" msgstr "" -#: plugin/base/barcodes/serializers.py:21 +#: plugin/base/barcodes/serializers.py:48 msgid "Scanned barcode data" msgstr "" -#: plugin/base/barcodes/serializers.py:30 +#: plugin/base/barcodes/serializers.py:57 msgid "Model name to generate barcode for" msgstr "" -#: plugin/base/barcodes/serializers.py:35 +#: plugin/base/barcodes/serializers.py:62 msgid "Primary key of model object to generate barcode for" msgstr "" -#: plugin/base/barcodes/serializers.py:105 +#: plugin/base/barcodes/serializers.py:132 msgid "Purchase Order to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:111 +#: plugin/base/barcodes/serializers.py:138 msgid "Purchase order is not pending" msgstr "" -#: plugin/base/barcodes/serializers.py:129 +#: plugin/base/barcodes/serializers.py:156 msgid "PurchaseOrder to receive items against" msgstr "" -#: plugin/base/barcodes/serializers.py:135 +#: plugin/base/barcodes/serializers.py:162 msgid "Purchase order has not been placed" msgstr "" -#: plugin/base/barcodes/serializers.py:143 +#: plugin/base/barcodes/serializers.py:170 msgid "Location to receive items into" msgstr "" -#: plugin/base/barcodes/serializers.py:149 +#: plugin/base/barcodes/serializers.py:176 msgid "Cannot select a structural location" msgstr "" -#: plugin/base/barcodes/serializers.py:163 +#: plugin/base/barcodes/serializers.py:190 msgid "Sales Order to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:169 +#: plugin/base/barcodes/serializers.py:196 msgid "Sales order is not pending" msgstr "" -#: plugin/base/barcodes/serializers.py:177 +#: plugin/base/barcodes/serializers.py:204 msgid "Sales order line item to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:184 +#: plugin/base/barcodes/serializers.py:211 msgid "Sales order shipment to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:190 +#: plugin/base/barcodes/serializers.py:217 msgid "Shipment has already been delivered" msgstr "" -#: plugin/base/barcodes/serializers.py:195 +#: plugin/base/barcodes/serializers.py:222 msgid "Quantity to allocate" msgstr "" @@ -8679,6 +8915,42 @@ msgstr "" msgid "No items provided to print" msgstr "" +#: plugin/base/ui/serializers.py:30 +msgid "Plugin Name" +msgstr "" + +#: plugin/base/ui/serializers.py:34 +msgid "Feature Type" +msgstr "" + +#: plugin/base/ui/serializers.py:39 +msgid "Feature Label" +msgstr "" + +#: plugin/base/ui/serializers.py:44 +msgid "Feature Title" +msgstr "" + +#: plugin/base/ui/serializers.py:49 +msgid "Feature Description" +msgstr "" + +#: plugin/base/ui/serializers.py:54 +msgid "Feature Icon" +msgstr "" + +#: plugin/base/ui/serializers.py:58 +msgid "Feature Options" +msgstr "" + +#: plugin/base/ui/serializers.py:61 +msgid "Feature Context" +msgstr "" + +#: plugin/base/ui/serializers.py:64 +msgid "Feature Source (javascript)" +msgstr "" + #: plugin/builtin/barcodes/inventree_barcode.py:27 msgid "InvenTree Barcodes" msgstr "" @@ -8756,7 +9028,7 @@ msgstr "" msgid "URL that is used to send messages to a slack channel" msgstr "" -#: plugin/builtin/integration/core_notifications.py:164 +#: plugin/builtin/integration/core_notifications.py:166 msgid "Open link" msgstr "" @@ -8794,11 +9066,11 @@ msgstr "" msgid "Provides support for printing using a machine" msgstr "" -#: plugin/builtin/labels/inventree_machine.py:149 +#: plugin/builtin/labels/inventree_machine.py:151 msgid "last used" msgstr "" -#: plugin/builtin/labels/inventree_machine.py:166 +#: plugin/builtin/labels/inventree_machine.py:168 msgid "Options" msgstr "" @@ -8822,7 +9094,7 @@ msgstr "" msgid "Print a border around each label" msgstr "" -#: plugin/builtin/labels/label_sheet.py:47 report/models.py:307 +#: plugin/builtin/labels/label_sheet.py:47 report/models.py:315 msgid "Landscape" msgstr "" @@ -8894,19 +9166,19 @@ msgstr "" msgid "The Supplier which acts as 'TME'" msgstr "" -#: plugin/installer.py:194 plugin/installer.py:282 +#: plugin/installer.py:199 plugin/installer.py:282 msgid "Only staff users can administer plugins" msgstr "" -#: plugin/installer.py:197 +#: plugin/installer.py:202 msgid "Plugin installation is disabled" msgstr "" -#: plugin/installer.py:248 +#: plugin/installer.py:246 msgid "Installed plugin successfully" msgstr "" -#: plugin/installer.py:254 +#: plugin/installer.py:251 #, python-brace-format msgid "Installed plugin into {path}" msgstr "" @@ -8943,10 +9215,6 @@ msgstr "" msgid "Plugin Configurations" msgstr "" -#: plugin/models.py:43 users/models.py:100 -msgid "Key" -msgstr "" - #: plugin/models.py:44 msgid "Key of plugin" msgstr "" @@ -8955,7 +9223,7 @@ msgstr "" msgid "PluginName of the plugin" msgstr "" -#: plugin/models.py:59 plugin/serializers.py:90 +#: plugin/models.py:59 plugin/serializers.py:115 msgid "Package Name" msgstr "" @@ -8984,17 +9252,17 @@ msgstr "" msgid "Package Plugin" msgstr "" -#: plugin/models.py:220 report/models.py:474 +#: plugin/models.py:259 report/models.py:482 #: templates/InvenTree/settings/plugin_settings.html:9 #: templates/js/translated/plugin.js:51 msgid "Plugin" msgstr "" -#: plugin/models.py:267 +#: plugin/models.py:306 msgid "Method" msgstr "" -#: plugin/plugin.py:270 +#: plugin/plugin.py:275 msgid "No author found" msgstr "" @@ -9053,81 +9321,157 @@ msgstr "" msgid "InvenTree Contributors" msgstr "" -#: plugin/serializers.py:81 -msgid "Source URL" +#: plugin/samples/integration/user_interface_sample.py:27 +msgid "Enable Part Panels" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:28 +msgid "Enable custom panels for Part views" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:33 +msgid "Enable Purchase Order Panels" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:34 +msgid "Enable custom panels for Purchase Order views" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:39 +msgid "Enable Broken Panels" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:40 +msgid "Enable broken panels for testing" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:45 +msgid "Enable Dynamic Panel" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:46 +msgid "Enable dynamic panels for testing" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:98 +msgid "Part Panel" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:131 +msgid "Broken Dashboard Item" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:133 +msgid "This is a broken dashboard item - it will not render!" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:139 +msgid "Sample Dashboard Item" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:141 +msgid "This is a sample dashboard item. It renders a simple string of HTML content." +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:147 +msgid "Context Dashboard Item" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:161 +msgid "Admin Dashboard Item" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:162 +msgid "This is an admin-only dashboard item." +msgstr "" + +#: plugin/serializers.py:82 +msgid "Source File" msgstr "" #: plugin/serializers.py:83 +msgid "Path to the source file for admin integration" +msgstr "" + +#: plugin/serializers.py:90 +msgid "Optional context data for the admin integration" +msgstr "" + +#: plugin/serializers.py:106 +msgid "Source URL" +msgstr "" + +#: plugin/serializers.py:108 msgid "Source for the package - this can be a custom registry or a VCS path" msgstr "" -#: plugin/serializers.py:92 +#: plugin/serializers.py:117 msgid "Name for the Plugin Package - can also contain a version indicator" msgstr "" -#: plugin/serializers.py:99 +#: plugin/serializers.py:124 #: templates/InvenTree/settings/plugin_settings.html:42 #: templates/js/translated/plugin.js:86 msgid "Version" msgstr "" -#: plugin/serializers.py:101 +#: plugin/serializers.py:126 msgid "Version specifier for the plugin. Leave blank for latest version." msgstr "" -#: plugin/serializers.py:106 +#: plugin/serializers.py:131 msgid "Confirm plugin installation" msgstr "" -#: plugin/serializers.py:108 +#: plugin/serializers.py:133 msgid "This will install this plugin now into the current instance. The instance will go into maintenance." msgstr "" -#: plugin/serializers.py:121 +#: plugin/serializers.py:146 msgid "Installation not confirmed" msgstr "" -#: plugin/serializers.py:123 +#: plugin/serializers.py:148 msgid "Either packagename of URL must be provided" msgstr "" -#: plugin/serializers.py:161 +#: plugin/serializers.py:184 msgid "Full reload" msgstr "" -#: plugin/serializers.py:162 +#: plugin/serializers.py:185 msgid "Perform a full reload of the plugin registry" msgstr "" -#: plugin/serializers.py:168 +#: plugin/serializers.py:191 msgid "Force reload" msgstr "" -#: plugin/serializers.py:170 +#: plugin/serializers.py:193 msgid "Force a reload of the plugin registry, even if it is already loaded" msgstr "" -#: plugin/serializers.py:177 +#: plugin/serializers.py:200 msgid "Collect plugins" msgstr "" -#: plugin/serializers.py:178 +#: plugin/serializers.py:201 msgid "Collect plugins and add them to the registry" msgstr "" -#: plugin/serializers.py:205 +#: plugin/serializers.py:228 msgid "Activate Plugin" msgstr "" -#: plugin/serializers.py:206 +#: plugin/serializers.py:229 msgid "Activate this plugin" msgstr "" -#: plugin/serializers.py:226 +#: plugin/serializers.py:249 msgid "Delete configuration" msgstr "" -#: plugin/serializers.py:227 +#: plugin/serializers.py:250 msgid "Delete the plugin configuration from the database" msgstr "" @@ -9135,11 +9479,11 @@ msgstr "" msgid "No valid objects provided to template" msgstr "" -#: report/api.py:103 report/models.py:438 report/serializers.py:98 -#: report/serializers.py:148 templates/js/translated/purchase_order.js:1817 +#: report/api.py:103 report/models.py:446 report/serializers.py:99 +#: report/serializers.py:149 templates/js/translated/purchase_order.js:1801 #: templates/js/translated/return_order.js:353 -#: templates/js/translated/sales_order.js:887 -#: templates/js/translated/sales_order.js:1047 +#: templates/js/translated/sales_order.js:846 +#: templates/js/translated/sales_order.js:1020 msgid "Items" msgstr "" @@ -9167,7 +9511,11 @@ msgstr "" msgid "Error printing label" msgstr "" -#: report/api.py:375 report/api.py:411 +#: report/api.py:358 +msgid "Report saved at time of printing" +msgstr "" + +#: report/api.py:384 report/api.py:420 #, python-brace-format msgid "Template file '{template}' is missing or does not exist" msgstr "" @@ -9204,135 +9552,143 @@ msgstr "" msgid "Revision number (auto-increments)" msgstr "" -#: report/models.py:202 +#: report/models.py:168 +msgid "Attach to Model on Print" +msgstr "" + +#: report/models.py:170 +msgid "Save report output as an attachment against linked model instance when printing" +msgstr "" + +#: report/models.py:210 msgid "Filename Pattern" msgstr "" -#: report/models.py:203 +#: report/models.py:211 msgid "Pattern for generating filenames" msgstr "" -#: report/models.py:208 +#: report/models.py:216 msgid "Template is enabled" msgstr "" -#: report/models.py:214 +#: report/models.py:222 msgid "Target model type for template" msgstr "" -#: report/models.py:234 +#: report/models.py:242 msgid "Filters" msgstr "" -#: report/models.py:235 +#: report/models.py:243 msgid "Template query filters (comma-separated list of key=value pairs)" msgstr "" -#: report/models.py:294 report/models.py:361 +#: report/models.py:302 report/models.py:369 msgid "Template file" msgstr "" -#: report/models.py:302 +#: report/models.py:310 msgid "Page size for PDF reports" msgstr "" -#: report/models.py:308 +#: report/models.py:316 msgid "Render report in landscape orientation" msgstr "" -#: report/models.py:367 +#: report/models.py:375 msgid "Width [mm]" msgstr "" -#: report/models.py:368 +#: report/models.py:376 msgid "Label width, specified in mm" msgstr "" -#: report/models.py:374 +#: report/models.py:382 msgid "Height [mm]" msgstr "" -#: report/models.py:375 +#: report/models.py:383 msgid "Label height, specified in mm" msgstr "" -#: report/models.py:438 +#: report/models.py:446 msgid "Number of items to process" msgstr "" -#: report/models.py:444 +#: report/models.py:452 msgid "Report generation is complete" msgstr "" -#: report/models.py:448 templates/js/translated/build.js:2349 +#: report/models.py:456 templates/js/translated/build.js:2352 msgid "Progress" msgstr "" -#: report/models.py:448 +#: report/models.py:456 msgid "Report generation progress" msgstr "" -#: report/models.py:456 +#: report/models.py:464 msgid "Report Template" msgstr "" -#: report/models.py:463 report/models.py:486 +#: report/models.py:471 report/models.py:494 msgid "Output File" msgstr "" -#: report/models.py:464 report/models.py:487 +#: report/models.py:472 report/models.py:495 msgid "Generated output file" msgstr "" -#: report/models.py:475 +#: report/models.py:483 msgid "Label output plugin" msgstr "" -#: report/models.py:479 +#: report/models.py:487 msgid "Label Template" msgstr "" -#: report/models.py:502 +#: report/models.py:510 msgid "Snippet" msgstr "" -#: report/models.py:503 +#: report/models.py:511 msgid "Report snippet file" msgstr "" -#: report/models.py:510 +#: report/models.py:518 msgid "Snippet file description" msgstr "" -#: report/models.py:528 +#: report/models.py:536 msgid "Asset" msgstr "" -#: report/models.py:529 +#: report/models.py:537 msgid "Report asset file" msgstr "" -#: report/models.py:536 +#: report/models.py:544 msgid "Asset file description" msgstr "" -#: report/serializers.py:91 +#: report/serializers.py:92 msgid "Select report template" msgstr "" -#: report/serializers.py:99 report/serializers.py:149 +#: report/serializers.py:100 report/serializers.py:150 msgid "List of item primary keys to include in the report" msgstr "" -#: report/serializers.py:132 +#: report/serializers.py:133 msgid "Select label template" msgstr "" -#: report/serializers.py:140 +#: report/serializers.py:141 msgid "Printing Plugin" msgstr "" -#: report/serializers.py:141 +#: report/serializers.py:142 msgid "Select plugin to use for label printing" msgstr "" @@ -9365,9 +9721,9 @@ msgstr "" #: report/templates/report/inventree_sales_order_report.html:30 #: templates/js/translated/order.js:341 templates/js/translated/pricing.js:527 #: templates/js/translated/pricing.js:596 -#: templates/js/translated/pricing.js:834 -#: templates/js/translated/purchase_order.js:2185 -#: templates/js/translated/sales_order.js:1873 +#: templates/js/translated/pricing.js:832 +#: templates/js/translated/purchase_order.js:2169 +#: templates/js/translated/sales_order.js:1854 msgid "Unit Price" msgstr "" @@ -9379,13 +9735,18 @@ msgstr "" #: report/templates/report/inventree_purchase_order_report.html:72 #: report/templates/report/inventree_sales_order_report.html:72 -#: templates/js/translated/purchase_order.js:2087 -#: templates/js/translated/sales_order.js:1842 +#: templates/js/translated/purchase_order.js:2071 +#: templates/js/translated/sales_order.js:1823 #: templates/test_statistics_table.html:8 #: templates/test_statistics_table.html:19 msgid "Total" msgstr "" +#: report/templates/report/inventree_sales_order_shipment_report.html:23 +#: stock/templates/stock/stock_sidebar.html:8 +msgid "Allocations" +msgstr "" + #: report/templates/report/inventree_stock_location_report.html:97 msgid "Stock location items" msgstr "" @@ -9403,15 +9764,13 @@ msgstr "" msgid "Test" msgstr "" -#: report/templates/report/inventree_test_report.html:103 stock/models.py:2544 -msgid "Result" -msgstr "" - #: report/templates/report/inventree_test_report.html:129 +#: templates/js/translated/stock.js:1448 msgid "Pass" msgstr "" #: report/templates/report/inventree_test_report.html:131 +#: templates/js/translated/stock.js:1450 msgid "Fail" msgstr "" @@ -9420,17 +9779,18 @@ msgid "No result (required)" msgstr "" #: report/templates/report/inventree_test_report.html:140 +#: templates/js/translated/stock.js:1455 msgid "No result" msgstr "" #: report/templates/report/inventree_test_report.html:153 -#: stock/serializers.py:599 stock/templates/stock/stock_sidebar.html:16 +#: stock/serializers.py:626 stock/templates/stock/stock_sidebar.html:16 msgid "Installed Items" msgstr "" -#: report/templates/report/inventree_test_report.html:167 stock/admin.py:161 +#: report/templates/report/inventree_test_report.html:167 stock/admin.py:162 #: templates/js/translated/stock.js:706 templates/js/translated/stock.js:877 -#: templates/js/translated/stock.js:3194 +#: templates/js/translated/stock.js:3195 msgid "Serial" msgstr "" @@ -9450,67 +9810,67 @@ msgstr "" msgid "company_image tag requires a Company instance" msgstr "" -#: stock/admin.py:51 stock/admin.py:171 +#: stock/admin.py:51 stock/admin.py:172 msgid "Location ID" msgstr "" -#: stock/admin.py:63 stock/templates/stock/location.html:128 -#: stock/templates/stock/location.html:134 +#: stock/admin.py:63 stock/templates/stock/location.html:129 +#: stock/templates/stock/location.html:135 msgid "Location Path" msgstr "" -#: stock/admin.py:148 +#: stock/admin.py:149 msgid "Stock Item ID" msgstr "" -#: stock/admin.py:167 +#: stock/admin.py:168 msgid "Status Code" msgstr "" -#: stock/admin.py:179 +#: stock/admin.py:180 msgid "Supplier Part ID" msgstr "" -#: stock/admin.py:184 +#: stock/admin.py:185 msgid "Supplier Part SKU" msgstr "" -#: stock/admin.py:189 +#: stock/admin.py:190 msgid "Supplier ID" msgstr "" -#: stock/admin.py:200 +#: stock/admin.py:201 msgid "Customer ID" msgstr "" -#: stock/admin.py:205 stock/models.py:825 -#: stock/templates/stock/item_base.html:354 +#: stock/admin.py:206 stock/models.py:902 +#: stock/templates/stock/item_base.html:351 msgid "Installed In" msgstr "" -#: stock/admin.py:210 +#: stock/admin.py:211 msgid "Build ID" msgstr "" -#: stock/admin.py:220 +#: stock/admin.py:221 msgid "Sales Order ID" msgstr "" -#: stock/admin.py:225 +#: stock/admin.py:226 msgid "Purchase Order ID" msgstr "" -#: stock/admin.py:240 +#: stock/admin.py:241 msgid "Review Needed" msgstr "" -#: stock/admin.py:245 +#: stock/admin.py:246 msgid "Delete on Deplete" msgstr "" -#: stock/admin.py:260 stock/models.py:919 -#: stock/templates/stock/item_base.html:433 -#: templates/js/translated/stock.js:2315 users/models.py:124 +#: stock/admin.py:261 stock/models.py:996 +#: stock/templates/stock/item_base.html:430 +#: templates/js/translated/stock.js:2316 users/models.py:124 msgid "Expiry Date" msgstr "" @@ -9526,11 +9886,11 @@ msgstr "" msgid "Include sub-locations in filtered results" msgstr "" -#: stock/api.py:367 stock/serializers.py:1186 +#: stock/api.py:366 stock/serializers.py:1217 msgid "Parent Location" msgstr "" -#: stock/api.py:368 +#: stock/api.py:367 msgid "Filter by parent location" msgstr "" @@ -9550,8 +9910,8 @@ msgstr "" msgid "Expiry date after" msgstr "" -#: stock/api.py:840 stock/serializers.py:604 -#: stock/templates/stock/item_base.html:439 +#: stock/api.py:840 stock/serializers.py:631 +#: stock/templates/stock/item_base.html:436 #: templates/js/translated/table_filters.js:448 msgid "Stale" msgstr "" @@ -9560,594 +9920,598 @@ msgstr "" msgid "Quantity is required" msgstr "" -#: stock/api.py:933 +#: stock/api.py:932 msgid "Valid part must be supplied" msgstr "" -#: stock/api.py:964 +#: stock/api.py:959 msgid "The given supplier part does not exist" msgstr "" -#: stock/api.py:974 +#: stock/api.py:969 msgid "The supplier part has a pack size defined, but flag use_pack_size not set" msgstr "" -#: stock/api.py:1005 +#: stock/api.py:996 msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "" -#: stock/models.py:64 +#: stock/models.py:70 msgid "Stock Location type" msgstr "" -#: stock/models.py:65 +#: stock/models.py:71 msgid "Stock Location types" msgstr "" -#: stock/models.py:91 +#: stock/models.py:97 msgid "Default icon for all locations that have no icon set (optional)" msgstr "" -#: stock/models.py:131 stock/models.py:807 -#: stock/templates/stock/location.html:17 +#: stock/models.py:137 stock/models.py:884 +#: stock/templates/stock/location.html:18 #: stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "" -#: stock/models.py:132 stock/templates/stock/location.html:183 +#: stock/models.py:138 stock/templates/stock/location.html:184 #: templates/InvenTree/search.html:166 templates/js/translated/search.js:178 #: users/models.py:205 msgid "Stock Locations" msgstr "" -#: stock/models.py:180 stock/models.py:968 -#: stock/templates/stock/item_base.html:247 +#: stock/models.py:186 stock/models.py:1045 +#: stock/templates/stock/item_base.html:244 msgid "Owner" msgstr "" -#: stock/models.py:181 stock/models.py:969 +#: stock/models.py:187 stock/models.py:1046 msgid "Select Owner" msgstr "" -#: stock/models.py:189 +#: stock/models.py:195 msgid "Stock items may not be directly located into a structural stock locations, but may be located to child locations." msgstr "" -#: stock/models.py:196 templates/js/translated/stock.js:2865 +#: stock/models.py:202 templates/js/translated/stock.js:2866 #: templates/js/translated/table_filters.js:250 msgid "External" msgstr "" -#: stock/models.py:197 +#: stock/models.py:203 msgid "This is an external stock location" msgstr "" -#: stock/models.py:203 templates/js/translated/stock.js:2874 +#: stock/models.py:209 templates/js/translated/stock.js:2875 #: templates/js/translated/table_filters.js:253 msgid "Location type" msgstr "" -#: stock/models.py:207 +#: stock/models.py:213 msgid "Stock location type of this location" msgstr "" -#: stock/models.py:279 +#: stock/models.py:285 msgid "You cannot make this stock location structural because some stock items are already located into it!" msgstr "" -#: stock/models.py:664 +#: stock/models.py:492 +msgid "Part must be specified" +msgstr "" + +#: stock/models.py:741 msgid "Stock items cannot be located into structural stock locations!" msgstr "" -#: stock/models.py:691 stock/serializers.py:480 +#: stock/models.py:768 stock/serializers.py:492 msgid "Stock item cannot be created for virtual parts" msgstr "" -#: stock/models.py:708 +#: stock/models.py:785 #, python-brace-format msgid "Part type ('{self.supplier_part.part}') must be {self.part}" msgstr "" -#: stock/models.py:718 stock/models.py:731 +#: stock/models.py:795 stock/models.py:808 msgid "Quantity must be 1 for item with a serial number" msgstr "" -#: stock/models.py:721 +#: stock/models.py:798 msgid "Serial number cannot be set if quantity greater than 1" msgstr "" -#: stock/models.py:743 +#: stock/models.py:820 msgid "Item cannot belong to itself" msgstr "" -#: stock/models.py:748 +#: stock/models.py:825 msgid "Item must have a build reference if is_building=True" msgstr "" -#: stock/models.py:761 +#: stock/models.py:838 msgid "Build reference does not point to the same part object" msgstr "" -#: stock/models.py:777 +#: stock/models.py:854 msgid "Parent Stock Item" msgstr "" -#: stock/models.py:789 +#: stock/models.py:866 msgid "Base part" msgstr "" -#: stock/models.py:799 +#: stock/models.py:876 msgid "Select a matching supplier part for this stock item" msgstr "" -#: stock/models.py:811 +#: stock/models.py:888 msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:819 stock/serializers.py:1580 +#: stock/models.py:896 stock/serializers.py:1611 msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:830 +#: stock/models.py:907 msgid "Is this item installed in another item?" msgstr "" -#: stock/models.py:849 +#: stock/models.py:926 msgid "Serial number for this item" msgstr "" -#: stock/models.py:863 stock/serializers.py:1563 +#: stock/models.py:940 stock/serializers.py:1594 msgid "Batch code for this stock item" msgstr "" -#: stock/models.py:868 +#: stock/models.py:945 msgid "Stock Quantity" msgstr "" -#: stock/models.py:878 +#: stock/models.py:955 msgid "Source Build" msgstr "" -#: stock/models.py:881 +#: stock/models.py:958 msgid "Build for this stock item" msgstr "" -#: stock/models.py:888 stock/templates/stock/item_base.html:363 +#: stock/models.py:965 stock/templates/stock/item_base.html:360 msgid "Consumed By" msgstr "" -#: stock/models.py:891 +#: stock/models.py:968 msgid "Build order which consumed this stock item" msgstr "" -#: stock/models.py:900 +#: stock/models.py:977 msgid "Source Purchase Order" msgstr "" -#: stock/models.py:904 +#: stock/models.py:981 msgid "Purchase order for this stock item" msgstr "" -#: stock/models.py:910 +#: stock/models.py:987 msgid "Destination Sales Order" msgstr "" -#: stock/models.py:921 +#: stock/models.py:998 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "" -#: stock/models.py:939 +#: stock/models.py:1016 msgid "Delete on deplete" msgstr "" -#: stock/models.py:940 +#: stock/models.py:1017 msgid "Delete this Stock Item when stock is depleted" msgstr "" -#: stock/models.py:960 +#: stock/models.py:1037 msgid "Single unit purchase price at time of purchase" msgstr "" -#: stock/models.py:991 +#: stock/models.py:1068 msgid "Converted to part" msgstr "" -#: stock/models.py:1511 +#: stock/models.py:1600 msgid "Part is not set as trackable" msgstr "" -#: stock/models.py:1517 +#: stock/models.py:1606 msgid "Quantity must be integer" msgstr "" -#: stock/models.py:1525 +#: stock/models.py:1614 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({self.quantity})" msgstr "" -#: stock/models.py:1531 -msgid "Serial numbers must be a list of integers" +#: stock/models.py:1620 +msgid "Serial numbers must be provided as a list" msgstr "" -#: stock/models.py:1536 +#: stock/models.py:1625 msgid "Quantity does not match serial numbers" msgstr "" -#: stock/models.py:1544 stock/serializers.py:726 -msgid "Serial numbers already exist" -msgstr "" - -#: stock/models.py:1641 +#: stock/models.py:1747 stock/models.py:2563 msgid "Test template does not exist" msgstr "" -#: stock/models.py:1659 +#: stock/models.py:1765 msgid "Stock item has been assigned to a sales order" msgstr "" -#: stock/models.py:1663 +#: stock/models.py:1769 msgid "Stock item is installed in another item" msgstr "" -#: stock/models.py:1666 +#: stock/models.py:1772 msgid "Stock item contains other items" msgstr "" -#: stock/models.py:1669 +#: stock/models.py:1775 msgid "Stock item has been assigned to a customer" msgstr "" -#: stock/models.py:1672 +#: stock/models.py:1778 msgid "Stock item is currently in production" msgstr "" -#: stock/models.py:1675 +#: stock/models.py:1781 msgid "Serialized stock cannot be merged" msgstr "" -#: stock/models.py:1682 stock/serializers.py:1469 +#: stock/models.py:1788 stock/serializers.py:1500 msgid "Duplicate stock items" msgstr "" -#: stock/models.py:1686 +#: stock/models.py:1792 msgid "Stock items must refer to the same part" msgstr "" -#: stock/models.py:1694 +#: stock/models.py:1800 msgid "Stock items must refer to the same supplier part" msgstr "" -#: stock/models.py:1699 +#: stock/models.py:1805 msgid "Stock status codes must match" msgstr "" -#: stock/models.py:1960 +#: stock/models.py:2066 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:2343 +#: stock/models.py:2462 msgid "Stock Item Tracking" msgstr "" -#: stock/models.py:2376 +#: stock/models.py:2495 msgid "Entry notes" msgstr "" -#: stock/models.py:2416 +#: stock/models.py:2535 msgid "Stock Item Test Result" msgstr "" -#: stock/models.py:2449 +#: stock/models.py:2566 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:2454 +#: stock/models.py:2570 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:2459 +#: stock/models.py:2575 msgid "Invalid value for this test" msgstr "" -#: stock/models.py:2544 +#: stock/models.py:2660 msgid "Test result" msgstr "" -#: stock/models.py:2551 +#: stock/models.py:2667 msgid "Test output value" msgstr "" -#: stock/models.py:2559 +#: stock/models.py:2675 stock/serializers.py:245 msgid "Test result attachment" msgstr "" -#: stock/models.py:2563 +#: stock/models.py:2679 msgid "Test notes" msgstr "" -#: stock/models.py:2571 templates/js/translated/stock.js:1633 +#: stock/models.py:2687 templates/js/translated/stock.js:1633 msgid "Test station" msgstr "" -#: stock/models.py:2572 +#: stock/models.py:2688 msgid "The identifier of the test station where the test was performed" msgstr "" -#: stock/models.py:2578 +#: stock/models.py:2694 msgid "Started" msgstr "" -#: stock/models.py:2579 +#: stock/models.py:2695 msgid "The timestamp of the test start" msgstr "" -#: stock/models.py:2585 +#: stock/models.py:2701 msgid "Finished" msgstr "" -#: stock/models.py:2586 +#: stock/models.py:2702 msgid "The timestamp of the test finish" msgstr "" -#: stock/serializers.py:76 +#: stock/serializers.py:77 msgid "Generated batch code" msgstr "" -#: stock/serializers.py:85 +#: stock/serializers.py:86 msgid "Select build order" msgstr "" -#: stock/serializers.py:94 +#: stock/serializers.py:95 msgid "Select stock item to generate batch code for" msgstr "" -#: stock/serializers.py:103 +#: stock/serializers.py:104 msgid "Select location to generate batch code for" msgstr "" -#: stock/serializers.py:112 +#: stock/serializers.py:113 msgid "Select part to generate batch code for" msgstr "" -#: stock/serializers.py:121 +#: stock/serializers.py:122 msgid "Select purchase order" msgstr "" -#: stock/serializers.py:128 +#: stock/serializers.py:129 msgid "Enter quantity for batch code" msgstr "" -#: stock/serializers.py:151 +#: stock/serializers.py:152 msgid "Generated serial number" msgstr "" -#: stock/serializers.py:160 +#: stock/serializers.py:161 msgid "Select part to generate serial number for" msgstr "" -#: stock/serializers.py:168 +#: stock/serializers.py:169 msgid "Quantity of serial numbers to generate" msgstr "" -#: stock/serializers.py:233 +#: stock/serializers.py:234 msgid "Test template for this result" msgstr "" -#: stock/serializers.py:254 +#: stock/serializers.py:258 msgid "Template ID or test name must be provided" msgstr "" -#: stock/serializers.py:286 +#: stock/serializers.py:290 msgid "The test finished time cannot be earlier than the test started time" msgstr "" -#: stock/serializers.py:323 +#: stock/serializers.py:327 msgid "Serial number is too large" msgstr "" -#: stock/serializers.py:452 stock/templates/stock/item_base.html:193 +#: stock/serializers.py:462 stock/templates/stock/item_base.html:190 msgid "Parent Item" msgstr "" -#: stock/serializers.py:453 +#: stock/serializers.py:463 msgid "Parent stock item" msgstr "" -#: stock/serializers.py:472 +#: stock/serializers.py:484 msgid "Use pack size when adding: the quantity defined is the number of packs" msgstr "" -#: stock/serializers.py:596 stock/templates/stock/item_base.html:437 +#: stock/serializers.py:623 stock/templates/stock/item_base.html:434 #: templates/js/translated/table_filters.js:442 users/models.py:174 msgid "Expired" msgstr "" -#: stock/serializers.py:602 stock/templates/stock/stock_sidebar.html:20 +#: stock/serializers.py:629 stock/templates/stock/stock_sidebar.html:20 msgid "Child Items" msgstr "" -#: stock/serializers.py:606 +#: stock/serializers.py:633 msgid "Tracking Items" msgstr "" -#: stock/serializers.py:612 +#: stock/serializers.py:639 msgid "Purchase price of this stock item, per unit or pack" msgstr "" -#: stock/serializers.py:631 +#: stock/serializers.py:658 msgid "Minimum Pricing" msgstr "" -#: stock/serializers.py:637 +#: stock/serializers.py:664 msgid "Maximum Pricing" msgstr "" -#: stock/serializers.py:661 +#: stock/serializers.py:688 msgid "Enter number of stock items to serialize" msgstr "" -#: stock/serializers.py:674 +#: stock/serializers.py:701 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({q})" msgstr "" -#: stock/serializers.py:681 +#: stock/serializers.py:708 msgid "Enter serial numbers for new items" msgstr "" -#: stock/serializers.py:692 stock/serializers.py:1426 stock/serializers.py:1682 +#: stock/serializers.py:719 stock/serializers.py:1457 stock/serializers.py:1713 msgid "Destination stock location" msgstr "" -#: stock/serializers.py:699 +#: stock/serializers.py:726 msgid "Optional note field" msgstr "" -#: stock/serializers.py:709 +#: stock/serializers.py:736 msgid "Serial numbers cannot be assigned to this part" msgstr "" -#: stock/serializers.py:764 +#: stock/serializers.py:756 +msgid "Serial numbers already exist" +msgstr "" + +#: stock/serializers.py:795 msgid "Select stock item to install" msgstr "" -#: stock/serializers.py:771 +#: stock/serializers.py:802 msgid "Quantity to Install" msgstr "" -#: stock/serializers.py:772 +#: stock/serializers.py:803 msgid "Enter the quantity of items to install" msgstr "" -#: stock/serializers.py:777 stock/serializers.py:857 stock/serializers.py:983 -#: stock/serializers.py:1033 +#: stock/serializers.py:808 stock/serializers.py:888 stock/serializers.py:1014 +#: stock/serializers.py:1064 msgid "Add transaction note (optional)" msgstr "" -#: stock/serializers.py:785 +#: stock/serializers.py:816 msgid "Quantity to install must be at least 1" msgstr "" -#: stock/serializers.py:793 +#: stock/serializers.py:824 msgid "Stock item is unavailable" msgstr "" -#: stock/serializers.py:804 +#: stock/serializers.py:835 msgid "Selected part is not in the Bill of Materials" msgstr "" -#: stock/serializers.py:817 +#: stock/serializers.py:848 msgid "Quantity to install must not exceed available quantity" msgstr "" -#: stock/serializers.py:852 +#: stock/serializers.py:883 msgid "Destination location for uninstalled item" msgstr "" -#: stock/serializers.py:903 +#: stock/serializers.py:934 msgid "Unsupported statistic type: " msgstr "" -#: stock/serializers.py:917 +#: stock/serializers.py:948 msgid "Select part to convert stock item into" msgstr "" -#: stock/serializers.py:930 +#: stock/serializers.py:961 msgid "Selected part is not a valid option for conversion" msgstr "" -#: stock/serializers.py:947 +#: stock/serializers.py:978 msgid "Cannot convert stock item with assigned SupplierPart" msgstr "" -#: stock/serializers.py:978 +#: stock/serializers.py:1009 msgid "Destination location for returned item" msgstr "" -#: stock/serializers.py:1015 +#: stock/serializers.py:1046 msgid "Select stock items to change status" msgstr "" -#: stock/serializers.py:1021 +#: stock/serializers.py:1052 msgid "No stock items selected" msgstr "" -#: stock/serializers.py:1117 stock/serializers.py:1194 -#: stock/templates/stock/location.html:162 -#: stock/templates/stock/location.html:219 +#: stock/serializers.py:1148 stock/serializers.py:1225 +#: stock/templates/stock/location.html:163 +#: stock/templates/stock/location.html:220 #: stock/templates/stock/location_sidebar.html:5 msgid "Sublocations" msgstr "" -#: stock/serializers.py:1187 templates/js/translated/stock.js:160 +#: stock/serializers.py:1218 templates/js/translated/stock.js:160 msgid "Parent stock location" msgstr "" -#: stock/serializers.py:1298 +#: stock/serializers.py:1329 msgid "Part must be salable" msgstr "" -#: stock/serializers.py:1302 +#: stock/serializers.py:1333 msgid "Item is allocated to a sales order" msgstr "" -#: stock/serializers.py:1306 +#: stock/serializers.py:1337 msgid "Item is allocated to a build order" msgstr "" -#: stock/serializers.py:1330 +#: stock/serializers.py:1361 msgid "Customer to assign stock items" msgstr "" -#: stock/serializers.py:1336 +#: stock/serializers.py:1367 msgid "Selected company is not a customer" msgstr "" -#: stock/serializers.py:1344 +#: stock/serializers.py:1375 msgid "Stock assignment notes" msgstr "" -#: stock/serializers.py:1354 stock/serializers.py:1608 +#: stock/serializers.py:1385 stock/serializers.py:1639 msgid "A list of stock items must be provided" msgstr "" -#: stock/serializers.py:1433 +#: stock/serializers.py:1464 msgid "Stock merging notes" msgstr "" -#: stock/serializers.py:1438 +#: stock/serializers.py:1469 msgid "Allow mismatched suppliers" msgstr "" -#: stock/serializers.py:1439 +#: stock/serializers.py:1470 msgid "Allow stock items with different supplier parts to be merged" msgstr "" -#: stock/serializers.py:1444 +#: stock/serializers.py:1475 msgid "Allow mismatched status" msgstr "" -#: stock/serializers.py:1445 +#: stock/serializers.py:1476 msgid "Allow stock items with different status codes to be merged" msgstr "" -#: stock/serializers.py:1455 +#: stock/serializers.py:1486 msgid "At least two stock items must be provided" msgstr "" -#: stock/serializers.py:1522 +#: stock/serializers.py:1553 msgid "No Change" msgstr "" -#: stock/serializers.py:1551 +#: stock/serializers.py:1582 msgid "StockItem primary key value" msgstr "" -#: stock/serializers.py:1570 +#: stock/serializers.py:1601 msgid "Stock item status code" msgstr "" -#: stock/serializers.py:1598 +#: stock/serializers.py:1629 msgid "Stock transaction notes" msgstr "" @@ -10175,107 +10539,107 @@ msgstr "ถูกปฏิเสธ" msgid "Quarantined" msgstr "" -#: stock/status_codes.py:40 +#: stock/status_codes.py:44 msgid "Legacy stock tracking entry" msgstr "" -#: stock/status_codes.py:42 templates/js/translated/stock.js:550 +#: stock/status_codes.py:46 templates/js/translated/stock.js:550 msgid "Stock item created" msgstr "" -#: stock/status_codes.py:45 +#: stock/status_codes.py:49 msgid "Edited stock item" msgstr "" -#: stock/status_codes.py:46 +#: stock/status_codes.py:50 msgid "Assigned serial number" msgstr "กำหนดหมายเลขซีเรียลแล้ว" -#: stock/status_codes.py:49 +#: stock/status_codes.py:53 msgid "Stock counted" msgstr "นับสต็อกแล้ว" -#: stock/status_codes.py:50 +#: stock/status_codes.py:54 msgid "Stock manually added" msgstr "เพิ่มสต็อกแล้ว" -#: stock/status_codes.py:51 +#: stock/status_codes.py:55 msgid "Stock manually removed" msgstr "ลบสต็อกแล้ว" -#: stock/status_codes.py:54 +#: stock/status_codes.py:58 msgid "Location changed" msgstr "เปลี่ยนสถานที่แล้ว" -#: stock/status_codes.py:55 +#: stock/status_codes.py:59 msgid "Stock updated" msgstr "อัพเดทสต็อกแล้ว" -#: stock/status_codes.py:58 +#: stock/status_codes.py:62 msgid "Installed into assembly" msgstr "" -#: stock/status_codes.py:59 +#: stock/status_codes.py:63 msgid "Removed from assembly" msgstr "" -#: stock/status_codes.py:61 +#: stock/status_codes.py:65 msgid "Installed component item" msgstr "" -#: stock/status_codes.py:62 +#: stock/status_codes.py:66 msgid "Removed component item" msgstr "" -#: stock/status_codes.py:65 +#: stock/status_codes.py:69 msgid "Split from parent item" msgstr "" -#: stock/status_codes.py:66 +#: stock/status_codes.py:70 msgid "Split child item" msgstr "" -#: stock/status_codes.py:69 templates/js/translated/stock.js:1943 +#: stock/status_codes.py:73 templates/js/translated/stock.js:1944 msgid "Merged stock items" msgstr "" -#: stock/status_codes.py:72 +#: stock/status_codes.py:76 msgid "Converted to variant" msgstr "" -#: stock/status_codes.py:75 +#: stock/status_codes.py:79 msgid "Build order output created" msgstr "" -#: stock/status_codes.py:76 +#: stock/status_codes.py:80 msgid "Build order output completed" msgstr "" -#: stock/status_codes.py:77 +#: stock/status_codes.py:81 msgid "Build order output rejected" msgstr "" -#: stock/status_codes.py:78 templates/js/translated/stock.js:1849 +#: stock/status_codes.py:82 templates/js/translated/stock.js:1849 msgid "Consumed by build order" msgstr "" -#: stock/status_codes.py:81 +#: stock/status_codes.py:85 msgid "Shipped against Sales Order" msgstr "" -#: stock/status_codes.py:84 +#: stock/status_codes.py:88 msgid "Received against Purchase Order" msgstr "" -#: stock/status_codes.py:87 +#: stock/status_codes.py:91 msgid "Returned against Return Order" msgstr "" -#: stock/status_codes.py:90 templates/js/translated/table_filters.js:382 +#: stock/status_codes.py:94 templates/js/translated/table_filters.js:382 msgid "Sent to customer" msgstr "จัดส่งให้ลูกค้าแล้ว" -#: stock/status_codes.py:91 +#: stock/status_codes.py:95 msgid "Returned from customer" msgstr "" @@ -10296,7 +10660,7 @@ msgstr "" msgid "Test Data" msgstr "" -#: stock/templates/stock/item.html:85 stock/templates/stock/item_base.html:65 +#: stock/templates/stock/item.html:85 msgid "Test Report" msgstr "" @@ -10316,7 +10680,7 @@ msgstr "" msgid "Installed Stock Items" msgstr "" -#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3354 +#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3355 msgid "Install Stock Item" msgstr "" @@ -10328,208 +10692,212 @@ msgstr "" msgid "Add Test Result" msgstr "" -#: stock/templates/stock/item_base.html:33 +#: stock/templates/stock/item_base.html:34 msgid "Locate stock item" msgstr "" -#: stock/templates/stock/item_base.html:51 +#: stock/templates/stock/item_base.html:52 msgid "Scan to Location" msgstr "" #: stock/templates/stock/item_base.html:59 -#: stock/templates/stock/location.html:67 +#: stock/templates/stock/location.html:68 #: templates/js/translated/filters.js:434 msgid "Printing actions" msgstr "" -#: stock/templates/stock/item_base.html:75 +#: stock/templates/stock/item_base.html:64 templates/js/translated/report.js:49 +msgid "Print Report" +msgstr "" + +#: stock/templates/stock/item_base.html:72 msgid "Stock adjustment actions" msgstr "" -#: stock/templates/stock/item_base.html:79 -#: stock/templates/stock/location.html:87 templates/js/translated/stock.js:1909 +#: stock/templates/stock/item_base.html:76 +#: stock/templates/stock/location.html:88 templates/js/translated/stock.js:1909 msgid "Count stock" msgstr "" -#: stock/templates/stock/item_base.html:81 +#: stock/templates/stock/item_base.html:78 #: templates/js/translated/stock.js:1891 msgid "Add stock" msgstr "" -#: stock/templates/stock/item_base.html:82 +#: stock/templates/stock/item_base.html:79 #: templates/js/translated/stock.js:1900 msgid "Remove stock" msgstr "" -#: stock/templates/stock/item_base.html:85 +#: stock/templates/stock/item_base.html:82 msgid "Serialize stock" msgstr "" -#: stock/templates/stock/item_base.html:88 -#: stock/templates/stock/location.html:93 templates/js/translated/stock.js:1918 +#: stock/templates/stock/item_base.html:85 +#: stock/templates/stock/location.html:94 templates/js/translated/stock.js:1918 msgid "Transfer stock" msgstr "" -#: stock/templates/stock/item_base.html:91 -#: templates/js/translated/stock.js:1972 +#: stock/templates/stock/item_base.html:88 +#: templates/js/translated/stock.js:1973 msgid "Assign to customer" msgstr "" -#: stock/templates/stock/item_base.html:94 +#: stock/templates/stock/item_base.html:91 msgid "Return to stock" msgstr "" -#: stock/templates/stock/item_base.html:97 +#: stock/templates/stock/item_base.html:94 msgid "Uninstall stock item" msgstr "" -#: stock/templates/stock/item_base.html:97 +#: stock/templates/stock/item_base.html:94 msgid "Uninstall" msgstr "" -#: stock/templates/stock/item_base.html:101 +#: stock/templates/stock/item_base.html:98 msgid "Install stock item" msgstr "" -#: stock/templates/stock/item_base.html:101 +#: stock/templates/stock/item_base.html:98 msgid "Install" msgstr "" -#: stock/templates/stock/item_base.html:115 +#: stock/templates/stock/item_base.html:112 msgid "Convert to variant" msgstr "" -#: stock/templates/stock/item_base.html:118 +#: stock/templates/stock/item_base.html:115 msgid "Duplicate stock item" msgstr "" -#: stock/templates/stock/item_base.html:120 +#: stock/templates/stock/item_base.html:117 msgid "Edit stock item" msgstr "" -#: stock/templates/stock/item_base.html:123 +#: stock/templates/stock/item_base.html:120 msgid "Delete stock item" msgstr "" -#: stock/templates/stock/item_base.html:169 templates/InvenTree/search.html:139 -#: templates/js/translated/build.js:2295 templates/navbar.html:38 +#: stock/templates/stock/item_base.html:166 templates/InvenTree/search.html:139 +#: templates/js/translated/build.js:2298 templates/navbar.html:38 msgid "Build" msgstr "" -#: stock/templates/stock/item_base.html:211 +#: stock/templates/stock/item_base.html:208 msgid "No manufacturer set" msgstr "" -#: stock/templates/stock/item_base.html:251 +#: stock/templates/stock/item_base.html:248 msgid "You are not in the list of owners of this item. This stock item cannot be edited." msgstr "" -#: stock/templates/stock/item_base.html:252 -#: stock/templates/stock/location.html:146 +#: stock/templates/stock/item_base.html:249 +#: stock/templates/stock/location.html:147 msgid "Read only" msgstr "" -#: stock/templates/stock/item_base.html:265 +#: stock/templates/stock/item_base.html:262 msgid "This stock item is unavailable" msgstr "" -#: stock/templates/stock/item_base.html:271 +#: stock/templates/stock/item_base.html:268 msgid "This stock item is in production and cannot be edited." msgstr "" -#: stock/templates/stock/item_base.html:272 +#: stock/templates/stock/item_base.html:269 msgid "Edit the stock item from the build view." msgstr "" -#: stock/templates/stock/item_base.html:287 +#: stock/templates/stock/item_base.html:284 msgid "This stock item is allocated to Sales Order" msgstr "" -#: stock/templates/stock/item_base.html:295 +#: stock/templates/stock/item_base.html:292 msgid "This stock item is allocated to Build Order" msgstr "" -#: stock/templates/stock/item_base.html:311 +#: stock/templates/stock/item_base.html:308 msgid "This stock item is serialized. It has a unique serial number and the quantity cannot be adjusted" msgstr "" -#: stock/templates/stock/item_base.html:317 +#: stock/templates/stock/item_base.html:314 msgid "previous page" msgstr "" -#: stock/templates/stock/item_base.html:317 +#: stock/templates/stock/item_base.html:314 msgid "Navigate to previous serial number" msgstr "" -#: stock/templates/stock/item_base.html:326 +#: stock/templates/stock/item_base.html:323 msgid "next page" msgstr "" -#: stock/templates/stock/item_base.html:326 +#: stock/templates/stock/item_base.html:323 msgid "Navigate to next serial number" msgstr "" -#: stock/templates/stock/item_base.html:398 -#: templates/js/translated/build.js:2552 +#: stock/templates/stock/item_base.html:395 +#: templates/js/translated/build.js:2559 msgid "No location set" msgstr "" -#: stock/templates/stock/item_base.html:413 +#: stock/templates/stock/item_base.html:410 msgid "Tests" msgstr "" -#: stock/templates/stock/item_base.html:419 +#: stock/templates/stock/item_base.html:416 msgid "This stock item has not passed all required tests" msgstr "" -#: stock/templates/stock/item_base.html:437 +#: stock/templates/stock/item_base.html:434 #, python-format msgid "This StockItem expired on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:439 +#: stock/templates/stock/item_base.html:436 #, python-format msgid "This StockItem expires on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:455 +#: stock/templates/stock/item_base.html:452 msgid "No stocktake performed" msgstr "" -#: stock/templates/stock/item_base.html:504 -#: templates/js/translated/stock.js:2037 +#: stock/templates/stock/item_base.html:501 +#: templates/js/translated/stock.js:2038 msgid "stock item" msgstr "" -#: stock/templates/stock/item_base.html:527 +#: stock/templates/stock/item_base.html:524 msgid "Edit Stock Status" msgstr "" -#: stock/templates/stock/item_base.html:536 +#: stock/templates/stock/item_base.html:533 msgid "Stock Item QR Code" msgstr "" -#: stock/templates/stock/item_base.html:547 +#: stock/templates/stock/item_base.html:544 msgid "Link Barcode to Stock Item" msgstr "" -#: stock/templates/stock/item_base.html:611 +#: stock/templates/stock/item_base.html:608 msgid "Select one of the part variants listed below." msgstr "" -#: stock/templates/stock/item_base.html:614 +#: stock/templates/stock/item_base.html:611 msgid "Warning" msgstr "" -#: stock/templates/stock/item_base.html:615 +#: stock/templates/stock/item_base.html:612 msgid "This action cannot be easily undone" msgstr "" -#: stock/templates/stock/item_base.html:623 +#: stock/templates/stock/item_base.html:620 msgid "Convert Stock Item" msgstr "" -#: stock/templates/stock/item_base.html:656 +#: stock/templates/stock/item_base.html:653 msgid "Return to Stock" msgstr "" @@ -10541,84 +10909,84 @@ msgstr "" msgid "Select quantity to serialize, and unique serial numbers." msgstr "" -#: stock/templates/stock/location.html:35 +#: stock/templates/stock/location.html:36 msgid "Perform stocktake for this stock location" msgstr "" -#: stock/templates/stock/location.html:42 +#: stock/templates/stock/location.html:43 msgid "Locate stock location" msgstr "" -#: stock/templates/stock/location.html:60 +#: stock/templates/stock/location.html:61 msgid "Scan stock items into this location" msgstr "" -#: stock/templates/stock/location.html:60 +#: stock/templates/stock/location.html:61 msgid "Scan In Stock Items" msgstr "" -#: stock/templates/stock/location.html:61 +#: stock/templates/stock/location.html:62 msgid "Scan stock container into this location" msgstr "" -#: stock/templates/stock/location.html:61 +#: stock/templates/stock/location.html:62 msgid "Scan In Container" msgstr "" -#: stock/templates/stock/location.html:72 +#: stock/templates/stock/location.html:73 msgid "Print Location Report" msgstr "" -#: stock/templates/stock/location.html:101 +#: stock/templates/stock/location.html:102 msgid "Location actions" msgstr "" -#: stock/templates/stock/location.html:103 +#: stock/templates/stock/location.html:104 msgid "Edit location" msgstr "" -#: stock/templates/stock/location.html:105 +#: stock/templates/stock/location.html:106 msgid "Delete location" msgstr "" -#: stock/templates/stock/location.html:135 +#: stock/templates/stock/location.html:136 msgid "Top level stock location" msgstr "" -#: stock/templates/stock/location.html:141 +#: stock/templates/stock/location.html:142 msgid "Location Owner" msgstr "" -#: stock/templates/stock/location.html:145 +#: stock/templates/stock/location.html:146 msgid "You are not in the list of owners of this location. This stock location cannot be edited." msgstr "" -#: stock/templates/stock/location.html:173 +#: stock/templates/stock/location.html:174 msgid "Location Type" msgstr "" -#: stock/templates/stock/location.html:223 +#: stock/templates/stock/location.html:224 msgid "Create new stock location" msgstr "" -#: stock/templates/stock/location.html:224 +#: stock/templates/stock/location.html:225 msgid "New Location" msgstr "" -#: stock/templates/stock/location.html:298 -#: templates/js/translated/stock.js:2657 +#: stock/templates/stock/location.html:299 +#: templates/js/translated/stock.js:2658 msgid "stock location" msgstr "" -#: stock/templates/stock/location.html:320 +#: stock/templates/stock/location.html:321 msgid "Scanned stock container into this location" msgstr "" -#: stock/templates/stock/location.html:393 +#: stock/templates/stock/location.html:394 msgid "Stock Location QR Code" msgstr "" -#: stock/templates/stock/location.html:404 +#: stock/templates/stock/location.html:405 msgid "Link Barcode to Stock Location" msgstr "" @@ -10630,10 +10998,6 @@ msgstr "" msgid "Stock Tracking" msgstr "" -#: stock/templates/stock/stock_sidebar.html:8 -msgid "Allocations" -msgstr "" - #: templates/403.html:6 templates/403.html:12 templates/403_csrf.html:7 msgid "Permission Denied" msgstr "" @@ -11107,9 +11471,9 @@ msgid "Rate" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:81 -#: templates/js/translated/forms.js:548 templates/js/translated/helpers.js:108 +#: templates/js/translated/forms.js:548 templates/js/translated/helpers.js:109 #: templates/js/translated/part.js:395 templates/js/translated/pricing.js:629 -#: templates/js/translated/stock.js:252 users/models.py:406 +#: templates/js/translated/stock.js:252 users/models.py:408 msgid "Delete" msgstr "" @@ -11130,7 +11494,7 @@ msgid "No project codes found" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:158 -#: templates/js/translated/build.js:2400 +#: templates/js/translated/build.js:2403 msgid "group" msgstr "" @@ -11196,7 +11560,7 @@ msgid "Delete Location Type" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:503 -#: templates/InvenTree/settings/stock.html:38 +#: templates/InvenTree/settings/stock.html:39 msgid "New Location Type" msgstr "" @@ -11253,7 +11617,7 @@ msgstr "" msgid "Stock Settings" msgstr "" -#: templates/InvenTree/settings/stock.html:34 +#: templates/InvenTree/settings/stock.html:35 msgid "Stock Location Types" msgstr "" @@ -11280,7 +11644,7 @@ msgid "Unverified" msgstr "" #: templates/InvenTree/settings/user.html:80 -#: templates/js/translated/company.js:957 +#: templates/js/translated/company.js:958 msgid "Primary" msgstr "" @@ -11532,7 +11896,7 @@ msgid "Submit Bug Report" msgstr "" #: templates/about.html:91 templates/clip.html:4 -#: templates/js/translated/helpers.js:592 +#: templates/js/translated/helpers.js:598 msgid "copy to clipboard" msgstr "" @@ -11738,23 +12102,24 @@ msgstr "" msgid "Barcode Identifier" msgstr "" -#: templates/base.html:103 +#: templates/base.html:102 msgid "Server Restart Required" msgstr "" -#: templates/base.html:106 +#: templates/base.html:105 msgid "A configuration option has been changed which requires a server restart" msgstr "" -#: templates/base.html:106 templates/base.html:116 +#: templates/base.html:105 templates/base.html:115 +#: templates/socialaccount/authentication_error.html:13 msgid "Contact your system administrator for further information" msgstr "" -#: templates/base.html:113 +#: templates/base.html:112 msgid "Pending Database Migrations" msgstr "" -#: templates/base.html:116 +#: templates/base.html:115 msgid "There are pending database migrations which require attention" msgstr "" @@ -11787,7 +12152,7 @@ msgid "The following parts are low on required stock" msgstr "" #: templates/email/build_order_required_stock.html:18 -#: templates/js/translated/bom.js:1674 templates/js/translated/build.js:2747 +#: templates/js/translated/bom.js:1674 templates/js/translated/build.js:2765 msgid "Required Quantity" msgstr "" @@ -11801,7 +12166,7 @@ msgid "Click on the following link to view this part" msgstr "" #: templates/email/low_stock_notification.html:18 -#: templates/js/translated/part.js:3237 +#: templates/js/translated/part.js:3253 msgid "Minimum Quantity" msgstr "" @@ -12039,7 +12404,7 @@ msgstr "" #: templates/js/translated/bom.js:189 templates/js/translated/bom.js:700 #: templates/js/translated/modals.js:75 templates/js/translated/modals.js:629 #: templates/js/translated/modals.js:757 templates/js/translated/modals.js:1065 -#: templates/js/translated/purchase_order.js:797 templates/modals.html:15 +#: templates/js/translated/purchase_order.js:780 templates/modals.html:15 #: templates/modals.html:27 templates/modals.html:39 templates/modals.html:50 msgid "Close" msgstr "" @@ -12156,7 +12521,7 @@ msgstr "" msgid "Substitutes Available" msgstr "" -#: templates/js/translated/bom.js:950 templates/js/translated/build.js:2673 +#: templates/js/translated/bom.js:950 templates/js/translated/build.js:2682 msgid "Variant stock allowed" msgstr "" @@ -12176,30 +12541,30 @@ msgstr "" msgid "No pricing available" msgstr "" -#: templates/js/translated/bom.js:1184 templates/js/translated/build.js:2812 +#: templates/js/translated/bom.js:1184 templates/js/translated/build.js:2830 msgid "External stock" msgstr "" -#: templates/js/translated/bom.js:1188 templates/js/translated/build.js:2786 -#: templates/js/translated/sales_order.js:1946 +#: templates/js/translated/bom.js:1188 templates/js/translated/build.js:2804 +#: templates/js/translated/sales_order.js:1927 msgid "No Stock Available" msgstr "" -#: templates/js/translated/bom.js:1193 templates/js/translated/build.js:2790 +#: templates/js/translated/bom.js:1193 templates/js/translated/build.js:2808 msgid "Includes variant and substitute stock" msgstr "" -#: templates/js/translated/bom.js:1195 templates/js/translated/build.js:2792 +#: templates/js/translated/bom.js:1195 templates/js/translated/build.js:2810 #: templates/js/translated/part.js:1263 -#: templates/js/translated/sales_order.js:1943 +#: templates/js/translated/sales_order.js:1924 msgid "Includes variant stock" msgstr "" -#: templates/js/translated/bom.js:1197 templates/js/translated/build.js:2794 +#: templates/js/translated/bom.js:1197 templates/js/translated/build.js:2812 msgid "Includes substitute stock" msgstr "" -#: templates/js/translated/bom.js:1225 templates/js/translated/build.js:2777 +#: templates/js/translated/bom.js:1225 templates/js/translated/build.js:2795 msgid "Consumable item" msgstr "" @@ -12231,7 +12596,7 @@ msgstr "" msgid "No BOM items found" msgstr "" -#: templates/js/translated/bom.js:1657 templates/js/translated/build.js:2658 +#: templates/js/translated/bom.js:1657 templates/js/translated/build.js:2667 msgid "Required Part" msgstr "" @@ -12243,396 +12608,396 @@ msgstr "" msgid "Edit Build Order" msgstr "" -#: templates/js/translated/build.js:191 +#: templates/js/translated/build.js:194 msgid "Create Build Order" msgstr "" -#: templates/js/translated/build.js:223 +#: templates/js/translated/build.js:226 msgid "Cancel Build Order" msgstr "" -#: templates/js/translated/build.js:232 +#: templates/js/translated/build.js:235 msgid "Are you sure you wish to cancel this build?" msgstr "" -#: templates/js/translated/build.js:238 +#: templates/js/translated/build.js:241 msgid "Stock items have been allocated to this build order" msgstr "" -#: templates/js/translated/build.js:245 +#: templates/js/translated/build.js:248 msgid "There are incomplete outputs remaining for this build order" msgstr "" -#: templates/js/translated/build.js:297 +#: templates/js/translated/build.js:300 msgid "Build order is ready to be completed" msgstr "" -#: templates/js/translated/build.js:305 +#: templates/js/translated/build.js:308 msgid "This build order cannot be completed as there are incomplete outputs" msgstr "" -#: templates/js/translated/build.js:310 +#: templates/js/translated/build.js:313 msgid "Build Order is incomplete" msgstr "" -#: templates/js/translated/build.js:328 +#: templates/js/translated/build.js:331 msgid "Complete Build Order" msgstr "" -#: templates/js/translated/build.js:369 templates/js/translated/stock.js:127 +#: templates/js/translated/build.js:372 templates/js/translated/stock.js:127 #: templates/js/translated/stock.js:301 msgid "Next available serial number" msgstr "" -#: templates/js/translated/build.js:371 templates/js/translated/stock.js:129 +#: templates/js/translated/build.js:374 templates/js/translated/stock.js:129 #: templates/js/translated/stock.js:303 msgid "Latest serial number" msgstr "" -#: templates/js/translated/build.js:380 +#: templates/js/translated/build.js:383 msgid "The Bill of Materials contains trackable parts" msgstr "" -#: templates/js/translated/build.js:381 +#: templates/js/translated/build.js:384 msgid "Build outputs must be generated individually" msgstr "" -#: templates/js/translated/build.js:389 +#: templates/js/translated/build.js:392 msgid "Trackable parts can have serial numbers specified" msgstr "" -#: templates/js/translated/build.js:390 +#: templates/js/translated/build.js:393 msgid "Enter serial numbers to generate multiple single build outputs" msgstr "" -#: templates/js/translated/build.js:397 +#: templates/js/translated/build.js:400 msgid "Create Build Output" msgstr "" -#: templates/js/translated/build.js:428 +#: templates/js/translated/build.js:431 msgid "Allocate stock items to this build output" msgstr "" -#: templates/js/translated/build.js:436 +#: templates/js/translated/build.js:439 msgid "Deallocate stock from build output" msgstr "" -#: templates/js/translated/build.js:445 +#: templates/js/translated/build.js:448 msgid "Complete build output" msgstr "" -#: templates/js/translated/build.js:453 +#: templates/js/translated/build.js:456 msgid "Scrap build output" msgstr "" -#: templates/js/translated/build.js:460 +#: templates/js/translated/build.js:463 msgid "Delete build output" msgstr "" -#: templates/js/translated/build.js:480 +#: templates/js/translated/build.js:483 msgid "Are you sure you wish to deallocate the selected stock items from this build?" msgstr "" -#: templates/js/translated/build.js:498 +#: templates/js/translated/build.js:501 msgid "Deallocate Stock Items" msgstr "" -#: templates/js/translated/build.js:584 templates/js/translated/build.js:711 -#: templates/js/translated/build.js:836 +#: templates/js/translated/build.js:587 templates/js/translated/build.js:714 +#: templates/js/translated/build.js:839 msgid "Select Build Outputs" msgstr "" -#: templates/js/translated/build.js:585 templates/js/translated/build.js:712 -#: templates/js/translated/build.js:837 +#: templates/js/translated/build.js:588 templates/js/translated/build.js:715 +#: templates/js/translated/build.js:840 msgid "At least one build output must be selected" msgstr "" -#: templates/js/translated/build.js:599 +#: templates/js/translated/build.js:602 msgid "Selected build outputs will be marked as complete" msgstr "" -#: templates/js/translated/build.js:603 templates/js/translated/build.js:736 -#: templates/js/translated/build.js:859 +#: templates/js/translated/build.js:606 templates/js/translated/build.js:739 +#: templates/js/translated/build.js:862 msgid "Output" msgstr "" -#: templates/js/translated/build.js:630 +#: templates/js/translated/build.js:633 msgid "Complete Build Outputs" msgstr "" -#: templates/js/translated/build.js:727 +#: templates/js/translated/build.js:730 msgid "Selected build outputs will be marked as scrapped" msgstr "" -#: templates/js/translated/build.js:729 +#: templates/js/translated/build.js:732 msgid "Scrapped output are marked as rejected" msgstr "" -#: templates/js/translated/build.js:730 +#: templates/js/translated/build.js:733 msgid "Allocated stock items will no longer be available" msgstr "" -#: templates/js/translated/build.js:731 +#: templates/js/translated/build.js:734 msgid "The completion status of the build order will not be adjusted" msgstr "" -#: templates/js/translated/build.js:761 +#: templates/js/translated/build.js:764 msgid "Scrap Build Outputs" msgstr "" -#: templates/js/translated/build.js:851 +#: templates/js/translated/build.js:854 msgid "Selected build outputs will be deleted" msgstr "" -#: templates/js/translated/build.js:853 +#: templates/js/translated/build.js:856 msgid "Build output data will be permanently deleted" msgstr "" -#: templates/js/translated/build.js:854 +#: templates/js/translated/build.js:857 msgid "Allocated stock items will be returned to stock" msgstr "" -#: templates/js/translated/build.js:872 +#: templates/js/translated/build.js:875 msgid "Delete Build Outputs" msgstr "" -#: templates/js/translated/build.js:959 +#: templates/js/translated/build.js:962 msgid "Delete allocations" msgstr "" -#: templates/js/translated/build.js:966 +#: templates/js/translated/build.js:969 msgid "Delete Stock Allocations" msgstr "" -#: templates/js/translated/build.js:989 +#: templates/js/translated/build.js:992 msgid "No allocated stock" msgstr "" -#: templates/js/translated/build.js:1045 +#: templates/js/translated/build.js:1048 msgid "Stock item" msgstr "" -#: templates/js/translated/build.js:1070 +#: templates/js/translated/build.js:1073 msgid "Edit build allocation" msgstr "" -#: templates/js/translated/build.js:1071 +#: templates/js/translated/build.js:1074 msgid "Delete build allocation" msgstr "" -#: templates/js/translated/build.js:1089 +#: templates/js/translated/build.js:1092 msgid "Edit Build Allocation" msgstr "" -#: templates/js/translated/build.js:1102 +#: templates/js/translated/build.js:1105 msgid "Delete Build Allocation" msgstr "" -#: templates/js/translated/build.js:1133 +#: templates/js/translated/build.js:1136 msgid "No build order allocations found" msgstr "" -#: templates/js/translated/build.js:1178 +#: templates/js/translated/build.js:1181 msgid "Location not specified" msgstr "" -#: templates/js/translated/build.js:1200 +#: templates/js/translated/build.js:1203 msgid "Complete outputs" msgstr "" -#: templates/js/translated/build.js:1218 +#: templates/js/translated/build.js:1221 msgid "Scrap outputs" msgstr "" -#: templates/js/translated/build.js:1236 +#: templates/js/translated/build.js:1239 msgid "Delete outputs" msgstr "" -#: templates/js/translated/build.js:1289 +#: templates/js/translated/build.js:1292 msgid "build output" msgstr "" -#: templates/js/translated/build.js:1290 +#: templates/js/translated/build.js:1293 msgid "build outputs" msgstr "" -#: templates/js/translated/build.js:1294 +#: templates/js/translated/build.js:1297 msgid "Build output actions" msgstr "" -#: templates/js/translated/build.js:1470 +#: templates/js/translated/build.js:1473 msgid "No active build outputs found" msgstr "" -#: templates/js/translated/build.js:1563 +#: templates/js/translated/build.js:1566 msgid "Allocated Lines" msgstr "" -#: templates/js/translated/build.js:1577 +#: templates/js/translated/build.js:1580 msgid "Required Tests" msgstr "" -#: templates/js/translated/build.js:1749 -#: templates/js/translated/purchase_order.js:611 -#: templates/js/translated/sales_order.js:1207 +#: templates/js/translated/build.js:1752 +#: templates/js/translated/purchase_order.js:594 +#: templates/js/translated/sales_order.js:1173 msgid "Select Parts" msgstr "" -#: templates/js/translated/build.js:1750 -#: templates/js/translated/sales_order.js:1208 +#: templates/js/translated/build.js:1753 +#: templates/js/translated/sales_order.js:1174 msgid "You must select at least one part to allocate" msgstr "" -#: templates/js/translated/build.js:1813 -#: templates/js/translated/sales_order.js:1157 +#: templates/js/translated/build.js:1816 +#: templates/js/translated/sales_order.js:1123 msgid "Specify stock allocation quantity" msgstr "" -#: templates/js/translated/build.js:1890 +#: templates/js/translated/build.js:1893 msgid "All Parts Allocated" msgstr "" -#: templates/js/translated/build.js:1891 +#: templates/js/translated/build.js:1894 msgid "All selected parts have been fully allocated" msgstr "" -#: templates/js/translated/build.js:1905 -#: templates/js/translated/sales_order.js:1222 +#: templates/js/translated/build.js:1908 +#: templates/js/translated/sales_order.js:1188 msgid "Select source location (leave blank to take from all locations)" msgstr "" -#: templates/js/translated/build.js:1933 +#: templates/js/translated/build.js:1936 msgid "Allocate Stock Items to Build Order" msgstr "" -#: templates/js/translated/build.js:1944 -#: templates/js/translated/sales_order.js:1319 +#: templates/js/translated/build.js:1947 +#: templates/js/translated/sales_order.js:1285 msgid "No matching stock locations" msgstr "" -#: templates/js/translated/build.js:2017 -#: templates/js/translated/sales_order.js:1398 +#: templates/js/translated/build.js:2020 +#: templates/js/translated/sales_order.js:1364 msgid "No matching stock items" msgstr "" -#: templates/js/translated/build.js:2114 +#: templates/js/translated/build.js:2117 msgid "Automatic Stock Allocation" msgstr "" -#: templates/js/translated/build.js:2115 +#: templates/js/translated/build.js:2118 msgid "Stock items will be automatically allocated to this build order, according to the provided guidelines" msgstr "" -#: templates/js/translated/build.js:2117 +#: templates/js/translated/build.js:2120 msgid "If a location is specified, stock will only be allocated from that location" msgstr "" -#: templates/js/translated/build.js:2118 +#: templates/js/translated/build.js:2121 msgid "If stock is considered interchangeable, it will be allocated from the first location it is found" msgstr "" -#: templates/js/translated/build.js:2119 +#: templates/js/translated/build.js:2122 msgid "If substitute stock is allowed, it will be used where stock of the primary part cannot be found" msgstr "" -#: templates/js/translated/build.js:2149 +#: templates/js/translated/build.js:2152 msgid "Allocate Stock Items" msgstr "" -#: templates/js/translated/build.js:2254 +#: templates/js/translated/build.js:2257 msgid "No builds matching query" msgstr "" -#: templates/js/translated/build.js:2289 templates/js/translated/build.js:2652 +#: templates/js/translated/build.js:2292 templates/js/translated/build.js:2661 #: templates/js/translated/forms.js:2196 templates/js/translated/forms.js:2212 #: templates/js/translated/part.js:2322 templates/js/translated/part.js:2761 -#: templates/js/translated/stock.js:2068 templates/js/translated/stock.js:2795 +#: templates/js/translated/stock.js:2069 templates/js/translated/stock.js:2796 msgid "Select" msgstr "" -#: templates/js/translated/build.js:2303 +#: templates/js/translated/build.js:2306 msgid "Build order is overdue" msgstr "" -#: templates/js/translated/build.js:2385 templates/js/translated/stock.js:3126 +#: templates/js/translated/build.js:2388 templates/js/translated/stock.js:3127 msgid "No user information" msgstr "" -#: templates/js/translated/build.js:2561 -#: templates/js/translated/sales_order.js:1682 +#: templates/js/translated/build.js:2568 +#: templates/js/translated/sales_order.js:1663 msgid "Edit stock allocation" msgstr "" -#: templates/js/translated/build.js:2562 -#: templates/js/translated/sales_order.js:1683 +#: templates/js/translated/build.js:2569 +#: templates/js/translated/sales_order.js:1664 msgid "Delete stock allocation" msgstr "" -#: templates/js/translated/build.js:2577 +#: templates/js/translated/build.js:2584 msgid "Edit Allocation" msgstr "" -#: templates/js/translated/build.js:2589 +#: templates/js/translated/build.js:2596 msgid "Remove Allocation" msgstr "" -#: templates/js/translated/build.js:2628 +#: templates/js/translated/build.js:2636 msgid "build line" msgstr "" -#: templates/js/translated/build.js:2629 +#: templates/js/translated/build.js:2637 msgid "build lines" msgstr "" -#: templates/js/translated/build.js:2647 +#: templates/js/translated/build.js:2656 msgid "No build lines found" msgstr "" -#: templates/js/translated/build.js:2677 templates/js/translated/part.js:793 +#: templates/js/translated/build.js:2686 templates/js/translated/part.js:793 #: templates/js/translated/part.js:1209 msgid "Trackable part" msgstr "" -#: templates/js/translated/build.js:2720 +#: templates/js/translated/build.js:2729 msgid "Gets Inherited" msgstr "" -#: templates/js/translated/build.js:2730 +#: templates/js/translated/build.js:2748 msgid "Unit Quantity" msgstr "" -#: templates/js/translated/build.js:2782 -#: templates/js/translated/sales_order.js:1951 +#: templates/js/translated/build.js:2800 +#: templates/js/translated/sales_order.js:1932 msgid "Sufficient stock available" msgstr "" -#: templates/js/translated/build.js:2837 +#: templates/js/translated/build.js:2855 msgid "Consumable Item" msgstr "" -#: templates/js/translated/build.js:2844 +#: templates/js/translated/build.js:2862 msgid "Tracked item" msgstr "" -#: templates/js/translated/build.js:2845 +#: templates/js/translated/build.js:2863 msgid "Allocate tracked items against individual build outputs" msgstr "" -#: templates/js/translated/build.js:2853 -#: templates/js/translated/sales_order.js:2052 +#: templates/js/translated/build.js:2871 +#: templates/js/translated/sales_order.js:2033 msgid "Build stock" msgstr "" -#: templates/js/translated/build.js:2858 templates/js/translated/stock.js:1953 +#: templates/js/translated/build.js:2876 templates/js/translated/stock.js:1954 msgid "Order stock" msgstr "" -#: templates/js/translated/build.js:2862 -#: templates/js/translated/sales_order.js:2046 +#: templates/js/translated/build.js:2880 +#: templates/js/translated/sales_order.js:2027 msgid "Allocate stock" msgstr "" -#: templates/js/translated/build.js:2866 +#: templates/js/translated/build.js:2884 msgid "Remove stock allocation" msgstr "" @@ -12641,7 +13006,7 @@ msgid "Add Manufacturer" msgstr "" #: templates/js/translated/company.js:111 -#: templates/js/translated/company.js:213 +#: templates/js/translated/company.js:214 msgid "Add Manufacturer Part" msgstr "" @@ -12649,231 +13014,231 @@ msgstr "" msgid "Edit Manufacturer Part" msgstr "" -#: templates/js/translated/company.js:201 +#: templates/js/translated/company.js:202 #: templates/js/translated/purchase_order.js:93 msgid "Add Supplier" msgstr "" -#: templates/js/translated/company.js:243 -#: templates/js/translated/purchase_order.js:318 +#: templates/js/translated/company.js:244 +#: templates/js/translated/purchase_order.js:301 msgid "Add Supplier Part" msgstr "" -#: templates/js/translated/company.js:344 +#: templates/js/translated/company.js:345 msgid "All selected supplier parts will be deleted" msgstr "" -#: templates/js/translated/company.js:360 +#: templates/js/translated/company.js:361 msgid "Delete Supplier Parts" msgstr "" -#: templates/js/translated/company.js:466 +#: templates/js/translated/company.js:467 msgid "Add new Company" msgstr "" -#: templates/js/translated/company.js:546 +#: templates/js/translated/company.js:547 msgid "Parts Supplied" msgstr "" -#: templates/js/translated/company.js:555 +#: templates/js/translated/company.js:556 msgid "Parts Manufactured" msgstr "" -#: templates/js/translated/company.js:570 +#: templates/js/translated/company.js:571 msgid "No company information found" msgstr "" -#: templates/js/translated/company.js:619 +#: templates/js/translated/company.js:620 msgid "Create New Contact" msgstr "" -#: templates/js/translated/company.js:635 -#: templates/js/translated/company.js:758 +#: templates/js/translated/company.js:636 +#: templates/js/translated/company.js:759 msgid "Edit Contact" msgstr "" -#: templates/js/translated/company.js:672 +#: templates/js/translated/company.js:673 msgid "All selected contacts will be deleted" msgstr "" -#: templates/js/translated/company.js:678 -#: templates/js/translated/company.js:742 +#: templates/js/translated/company.js:679 +#: templates/js/translated/company.js:743 msgid "Role" msgstr "" -#: templates/js/translated/company.js:686 +#: templates/js/translated/company.js:687 msgid "Delete Contacts" msgstr "" -#: templates/js/translated/company.js:717 +#: templates/js/translated/company.js:718 msgid "No contacts found" msgstr "" -#: templates/js/translated/company.js:730 +#: templates/js/translated/company.js:731 msgid "Phone Number" msgstr "" -#: templates/js/translated/company.js:736 +#: templates/js/translated/company.js:737 msgid "Email Address" msgstr "" -#: templates/js/translated/company.js:762 +#: templates/js/translated/company.js:763 msgid "Delete Contact" msgstr "" -#: templates/js/translated/company.js:859 +#: templates/js/translated/company.js:860 msgid "Create New Address" msgstr "" -#: templates/js/translated/company.js:874 -#: templates/js/translated/company.js:1035 +#: templates/js/translated/company.js:875 +#: templates/js/translated/company.js:1036 msgid "Edit Address" msgstr "" -#: templates/js/translated/company.js:909 +#: templates/js/translated/company.js:910 msgid "All selected addresses will be deleted" msgstr "" -#: templates/js/translated/company.js:923 +#: templates/js/translated/company.js:924 msgid "Delete Addresses" msgstr "" -#: templates/js/translated/company.js:950 +#: templates/js/translated/company.js:951 msgid "No addresses found" msgstr "" -#: templates/js/translated/company.js:989 +#: templates/js/translated/company.js:990 msgid "Postal city" msgstr "" -#: templates/js/translated/company.js:995 +#: templates/js/translated/company.js:996 msgid "State/province" msgstr "" -#: templates/js/translated/company.js:1007 +#: templates/js/translated/company.js:1008 msgid "Courier notes" msgstr "" -#: templates/js/translated/company.js:1013 +#: templates/js/translated/company.js:1014 msgid "Internal notes" msgstr "" -#: templates/js/translated/company.js:1039 +#: templates/js/translated/company.js:1040 msgid "Delete Address" msgstr "" -#: templates/js/translated/company.js:1112 +#: templates/js/translated/company.js:1113 msgid "All selected manufacturer parts will be deleted" msgstr "" -#: templates/js/translated/company.js:1127 +#: templates/js/translated/company.js:1128 msgid "Delete Manufacturer Parts" msgstr "" -#: templates/js/translated/company.js:1161 +#: templates/js/translated/company.js:1162 msgid "All selected parameters will be deleted" msgstr "" -#: templates/js/translated/company.js:1175 +#: templates/js/translated/company.js:1176 msgid "Delete Parameters" msgstr "" -#: templates/js/translated/company.js:1191 -#: templates/js/translated/company.js:1479 templates/js/translated/part.js:2250 +#: templates/js/translated/company.js:1192 +#: templates/js/translated/company.js:1480 templates/js/translated/part.js:2250 msgid "Order parts" msgstr "" -#: templates/js/translated/company.js:1208 +#: templates/js/translated/company.js:1209 msgid "Delete manufacturer parts" msgstr "" -#: templates/js/translated/company.js:1240 +#: templates/js/translated/company.js:1241 msgid "Manufacturer part actions" msgstr "" -#: templates/js/translated/company.js:1259 +#: templates/js/translated/company.js:1260 msgid "No manufacturer parts found" msgstr "" -#: templates/js/translated/company.js:1279 -#: templates/js/translated/company.js:1567 templates/js/translated/part.js:801 +#: templates/js/translated/company.js:1280 +#: templates/js/translated/company.js:1568 templates/js/translated/part.js:801 #: templates/js/translated/part.js:1217 msgid "Template part" msgstr "" -#: templates/js/translated/company.js:1283 -#: templates/js/translated/company.js:1571 templates/js/translated/part.js:805 +#: templates/js/translated/company.js:1284 +#: templates/js/translated/company.js:1572 templates/js/translated/part.js:805 #: templates/js/translated/part.js:1221 msgid "Assembled part" msgstr "" -#: templates/js/translated/company.js:1403 templates/js/translated/part.js:1471 +#: templates/js/translated/company.js:1404 templates/js/translated/part.js:1471 msgid "No parameters found" msgstr "" -#: templates/js/translated/company.js:1438 templates/js/translated/part.js:1534 +#: templates/js/translated/company.js:1439 templates/js/translated/part.js:1534 msgid "Edit parameter" msgstr "" -#: templates/js/translated/company.js:1439 templates/js/translated/part.js:1535 +#: templates/js/translated/company.js:1440 templates/js/translated/part.js:1535 msgid "Delete parameter" msgstr "" -#: templates/js/translated/company.js:1456 templates/js/translated/part.js:1440 +#: templates/js/translated/company.js:1457 templates/js/translated/part.js:1440 msgid "Edit Parameter" msgstr "" -#: templates/js/translated/company.js:1465 templates/js/translated/part.js:1556 +#: templates/js/translated/company.js:1466 templates/js/translated/part.js:1556 msgid "Delete Parameter" msgstr "" -#: templates/js/translated/company.js:1496 +#: templates/js/translated/company.js:1497 msgid "Delete supplier parts" msgstr "" -#: templates/js/translated/company.js:1546 +#: templates/js/translated/company.js:1547 msgid "No supplier parts found" msgstr "" -#: templates/js/translated/company.js:1664 +#: templates/js/translated/company.js:1665 msgid "Base Units" msgstr "" -#: templates/js/translated/company.js:1694 +#: templates/js/translated/company.js:1695 msgid "Availability" msgstr "" -#: templates/js/translated/company.js:1725 +#: templates/js/translated/company.js:1726 msgid "Edit supplier part" msgstr "" -#: templates/js/translated/company.js:1726 +#: templates/js/translated/company.js:1727 msgid "Delete supplier part" msgstr "" -#: templates/js/translated/company.js:1779 +#: templates/js/translated/company.js:1780 #: templates/js/translated/pricing.js:694 msgid "Delete Price Break" msgstr "" -#: templates/js/translated/company.js:1789 +#: templates/js/translated/company.js:1790 #: templates/js/translated/pricing.js:712 msgid "Edit Price Break" msgstr "" -#: templates/js/translated/company.js:1804 +#: templates/js/translated/company.js:1805 msgid "No price break information found" msgstr "" -#: templates/js/translated/company.js:1833 +#: templates/js/translated/company.js:1834 msgid "Last updated" msgstr "" -#: templates/js/translated/company.js:1840 +#: templates/js/translated/company.js:1841 msgid "Edit price break" msgstr "" -#: templates/js/translated/company.js:1841 +#: templates/js/translated/company.js:1842 msgid "Delete price break" msgstr "" @@ -12977,19 +13342,19 @@ msgstr "" msgid "Select Columns" msgstr "" -#: templates/js/translated/helpers.js:80 +#: templates/js/translated/helpers.js:81 msgid "YES" msgstr "" -#: templates/js/translated/helpers.js:83 +#: templates/js/translated/helpers.js:84 msgid "NO" msgstr "" -#: templates/js/translated/helpers.js:96 +#: templates/js/translated/helpers.js:97 msgid "True" msgstr "" -#: templates/js/translated/helpers.js:97 +#: templates/js/translated/helpers.js:98 msgid "False" msgstr "" @@ -13131,7 +13496,7 @@ msgid "Delete Line" msgstr "" #: templates/js/translated/order.js:306 -#: templates/js/translated/purchase_order.js:2060 +#: templates/js/translated/purchase_order.js:2044 msgid "No line items found" msgstr "" @@ -13366,19 +13731,19 @@ msgid "Delete Part Parameter Template" msgstr "" #: templates/js/translated/part.js:1723 -#: templates/js/translated/purchase_order.js:1724 +#: templates/js/translated/purchase_order.js:1708 msgid "No purchase orders found" msgstr "" #: templates/js/translated/part.js:1867 -#: templates/js/translated/purchase_order.js:2223 +#: templates/js/translated/purchase_order.js:2207 #: templates/js/translated/return_order.js:754 -#: templates/js/translated/sales_order.js:1911 +#: templates/js/translated/sales_order.js:1892 msgid "This line item is overdue" msgstr "" #: templates/js/translated/part.js:1913 -#: templates/js/translated/purchase_order.js:2290 +#: templates/js/translated/purchase_order.js:2274 msgid "Receive line item" msgstr "" @@ -13419,7 +13784,7 @@ msgid "No category" msgstr "" #: templates/js/translated/part.js:2550 templates/js/translated/part.js:2680 -#: templates/js/translated/stock.js:2754 +#: templates/js/translated/stock.js:2755 msgid "Display as list" msgstr "" @@ -13431,7 +13796,7 @@ msgstr "" msgid "No subcategories found" msgstr "" -#: templates/js/translated/part.js:2700 templates/js/translated/stock.js:2774 +#: templates/js/translated/part.js:2700 templates/js/translated/stock.js:2775 msgid "Display as tree" msgstr "" @@ -13483,23 +13848,23 @@ msgstr "" msgid "Speculative" msgstr "" -#: templates/js/translated/part.js:3128 +#: templates/js/translated/part.js:3144 msgid "No scheduling information available for this part" msgstr "" -#: templates/js/translated/part.js:3134 +#: templates/js/translated/part.js:3150 msgid "Error fetching scheduling information for this part" msgstr "" -#: templates/js/translated/part.js:3230 +#: templates/js/translated/part.js:3246 msgid "Scheduled Stock Quantities" msgstr "" -#: templates/js/translated/part.js:3246 +#: templates/js/translated/part.js:3262 msgid "Maximum Quantity" msgstr "" -#: templates/js/translated/part.js:3291 +#: templates/js/translated/part.js:3307 msgid "Minimum Stock Level" msgstr "" @@ -13575,267 +13940,243 @@ msgstr "" msgid "Purchase Price History" msgstr "" -#: templates/js/translated/pricing.js:894 +#: templates/js/translated/pricing.js:892 msgid "No sales history data available" msgstr "" -#: templates/js/translated/pricing.js:916 +#: templates/js/translated/pricing.js:914 msgid "Sale Price History" msgstr "" -#: templates/js/translated/pricing.js:1005 +#: templates/js/translated/pricing.js:1003 msgid "No variant data available" msgstr "" -#: templates/js/translated/pricing.js:1045 +#: templates/js/translated/pricing.js:1043 msgid "Variant Part" msgstr "" -#: templates/js/translated/purchase_order.js:169 -msgid "Select purchase order to duplicate" -msgstr "" - -#: templates/js/translated/purchase_order.js:176 -msgid "Duplicate Line Items" -msgstr "" - -#: templates/js/translated/purchase_order.js:177 -msgid "Duplicate all line items from the selected order" -msgstr "" - -#: templates/js/translated/purchase_order.js:184 -msgid "Duplicate Extra Lines" -msgstr "" - -#: templates/js/translated/purchase_order.js:185 -msgid "Duplicate extra line items from the selected order" -msgstr "" - -#: templates/js/translated/purchase_order.js:206 +#: templates/js/translated/purchase_order.js:188 msgid "Edit Purchase Order" msgstr "" -#: templates/js/translated/purchase_order.js:223 +#: templates/js/translated/purchase_order.js:205 msgid "Duplication Options" msgstr "" -#: templates/js/translated/purchase_order.js:431 +#: templates/js/translated/purchase_order.js:414 msgid "Complete Purchase Order" msgstr "" -#: templates/js/translated/purchase_order.js:448 +#: templates/js/translated/purchase_order.js:431 #: templates/js/translated/return_order.js:210 -#: templates/js/translated/sales_order.js:552 +#: templates/js/translated/sales_order.js:511 msgid "Mark this order as complete?" msgstr "" -#: templates/js/translated/purchase_order.js:454 +#: templates/js/translated/purchase_order.js:437 msgid "All line items have been received" msgstr "" -#: templates/js/translated/purchase_order.js:459 +#: templates/js/translated/purchase_order.js:442 msgid "This order has line items which have not been marked as received." msgstr "" -#: templates/js/translated/purchase_order.js:460 +#: templates/js/translated/purchase_order.js:443 msgid "Completing this order means that the order and line items will no longer be editable." msgstr "" -#: templates/js/translated/purchase_order.js:483 +#: templates/js/translated/purchase_order.js:466 msgid "Cancel Purchase Order" msgstr "" -#: templates/js/translated/purchase_order.js:488 +#: templates/js/translated/purchase_order.js:471 msgid "Are you sure you wish to cancel this purchase order?" msgstr "" -#: templates/js/translated/purchase_order.js:494 +#: templates/js/translated/purchase_order.js:477 msgid "This purchase order can not be cancelled" msgstr "" -#: templates/js/translated/purchase_order.js:515 +#: templates/js/translated/purchase_order.js:498 #: templates/js/translated/return_order.js:164 msgid "After placing this order, line items will no longer be editable." msgstr "" -#: templates/js/translated/purchase_order.js:520 +#: templates/js/translated/purchase_order.js:503 msgid "Issue Purchase Order" msgstr "" -#: templates/js/translated/purchase_order.js:612 +#: templates/js/translated/purchase_order.js:595 msgid "At least one purchaseable part must be selected" msgstr "" -#: templates/js/translated/purchase_order.js:637 +#: templates/js/translated/purchase_order.js:620 msgid "Quantity to order" msgstr "" -#: templates/js/translated/purchase_order.js:646 +#: templates/js/translated/purchase_order.js:629 msgid "New supplier part" msgstr "" -#: templates/js/translated/purchase_order.js:664 +#: templates/js/translated/purchase_order.js:647 msgid "New purchase order" msgstr "" -#: templates/js/translated/purchase_order.js:705 +#: templates/js/translated/purchase_order.js:688 msgid "Add to purchase order" msgstr "" -#: templates/js/translated/purchase_order.js:755 +#: templates/js/translated/purchase_order.js:738 msgid "Merge" msgstr "" -#: templates/js/translated/purchase_order.js:859 +#: templates/js/translated/purchase_order.js:842 msgid "No matching supplier parts" msgstr "" -#: templates/js/translated/purchase_order.js:878 +#: templates/js/translated/purchase_order.js:861 msgid "No matching purchase orders" msgstr "" -#: templates/js/translated/purchase_order.js:1073 +#: templates/js/translated/purchase_order.js:1056 #: templates/js/translated/return_order.js:490 msgid "Select Line Items" msgstr "" -#: templates/js/translated/purchase_order.js:1074 +#: templates/js/translated/purchase_order.js:1057 #: templates/js/translated/return_order.js:491 msgid "At least one line item must be selected" msgstr "" -#: templates/js/translated/purchase_order.js:1104 +#: templates/js/translated/purchase_order.js:1087 msgid "Received Quantity" msgstr "" -#: templates/js/translated/purchase_order.js:1115 +#: templates/js/translated/purchase_order.js:1098 msgid "Quantity to receive" msgstr "" -#: templates/js/translated/purchase_order.js:1170 +#: templates/js/translated/purchase_order.js:1153 #: templates/js/translated/stock.js:1215 msgid "Specify packaging for incoming stock items" msgstr "" -#: templates/js/translated/purchase_order.js:1223 +#: templates/js/translated/purchase_order.js:1206 msgid "Stock Status" msgstr "" -#: templates/js/translated/purchase_order.js:1237 +#: templates/js/translated/purchase_order.js:1220 msgid "Add barcode" msgstr "" -#: templates/js/translated/purchase_order.js:1238 +#: templates/js/translated/purchase_order.js:1221 msgid "Remove barcode" msgstr "" -#: templates/js/translated/purchase_order.js:1241 +#: templates/js/translated/purchase_order.js:1224 msgid "Specify location" msgstr "" -#: templates/js/translated/purchase_order.js:1249 +#: templates/js/translated/purchase_order.js:1232 msgid "Add batch code" msgstr "" -#: templates/js/translated/purchase_order.js:1259 +#: templates/js/translated/purchase_order.js:1242 msgid "Specify packaging" msgstr "" -#: templates/js/translated/purchase_order.js:1270 +#: templates/js/translated/purchase_order.js:1253 msgid "Add serial numbers" msgstr "" -#: templates/js/translated/purchase_order.js:1281 +#: templates/js/translated/purchase_order.js:1264 msgid "Add note" msgstr "" -#: templates/js/translated/purchase_order.js:1338 +#: templates/js/translated/purchase_order.js:1321 msgid "Serials" msgstr "" -#: templates/js/translated/purchase_order.js:1368 +#: templates/js/translated/purchase_order.js:1351 msgid "Order Code" msgstr "" -#: templates/js/translated/purchase_order.js:1370 +#: templates/js/translated/purchase_order.js:1353 msgid "Quantity to Receive" msgstr "" -#: templates/js/translated/purchase_order.js:1395 +#: templates/js/translated/purchase_order.js:1379 #: templates/js/translated/return_order.js:559 msgid "Confirm receipt of items" msgstr "" -#: templates/js/translated/purchase_order.js:1396 +#: templates/js/translated/purchase_order.js:1380 msgid "Receive Purchase Order Items" msgstr "" -#: templates/js/translated/purchase_order.js:1464 +#: templates/js/translated/purchase_order.js:1448 msgid "Scan Item Barcode" msgstr "" -#: templates/js/translated/purchase_order.js:1465 +#: templates/js/translated/purchase_order.js:1449 msgid "Scan barcode on incoming item (must not match any existing stock items)" msgstr "" -#: templates/js/translated/purchase_order.js:1479 +#: templates/js/translated/purchase_order.js:1463 msgid "Invalid barcode data" msgstr "" -#: templates/js/translated/purchase_order.js:1751 +#: templates/js/translated/purchase_order.js:1735 #: templates/js/translated/return_order.js:285 -#: templates/js/translated/sales_order.js:810 -#: templates/js/translated/sales_order.js:1034 +#: templates/js/translated/sales_order.js:769 +#: templates/js/translated/sales_order.js:1007 msgid "Order is overdue" msgstr "" -#: templates/js/translated/purchase_order.js:1913 +#: templates/js/translated/purchase_order.js:1897 msgid "All selected Line items will be deleted" msgstr "" -#: templates/js/translated/purchase_order.js:1931 +#: templates/js/translated/purchase_order.js:1915 msgid "Delete selected Line items?" msgstr "" -#: templates/js/translated/purchase_order.js:1986 -#: templates/js/translated/sales_order.js:2106 +#: templates/js/translated/purchase_order.js:1970 +#: templates/js/translated/sales_order.js:2087 msgid "Duplicate Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2001 +#: templates/js/translated/purchase_order.js:1985 #: templates/js/translated/return_order.js:475 #: templates/js/translated/return_order.js:667 -#: templates/js/translated/sales_order.js:2119 +#: templates/js/translated/sales_order.js:2100 msgid "Edit Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2012 +#: templates/js/translated/purchase_order.js:1996 #: templates/js/translated/return_order.js:680 -#: templates/js/translated/sales_order.js:2130 +#: templates/js/translated/sales_order.js:2111 msgid "Delete Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2294 -#: templates/js/translated/sales_order.js:2060 +#: templates/js/translated/purchase_order.js:2278 +#: templates/js/translated/sales_order.js:2041 msgid "Duplicate line item" msgstr "" -#: templates/js/translated/purchase_order.js:2295 +#: templates/js/translated/purchase_order.js:2279 #: templates/js/translated/return_order.js:799 -#: templates/js/translated/sales_order.js:2061 +#: templates/js/translated/sales_order.js:2042 msgid "Edit line item" msgstr "" -#: templates/js/translated/purchase_order.js:2296 +#: templates/js/translated/purchase_order.js:2280 #: templates/js/translated/return_order.js:803 -#: templates/js/translated/sales_order.js:2067 +#: templates/js/translated/sales_order.js:2048 msgid "Delete line item" msgstr "" -#: templates/js/translated/report.js:49 -msgid "Print Report" -msgstr "" - #: templates/js/translated/report.js:68 msgid "Report print successful" msgstr "" @@ -13878,7 +14219,7 @@ msgid "No return orders found" msgstr "" #: templates/js/translated/return_order.js:299 -#: templates/js/translated/sales_order.js:824 +#: templates/js/translated/sales_order.js:783 msgid "Invalid Customer" msgstr "" @@ -13887,7 +14228,7 @@ msgid "Receive Return Order Items" msgstr "" #: templates/js/translated/return_order.js:691 -#: templates/js/translated/sales_order.js:2267 +#: templates/js/translated/sales_order.js:2248 msgid "No matching line items" msgstr "" @@ -13903,188 +14244,181 @@ msgstr "" msgid "Edit Sales Order" msgstr "" -#: templates/js/translated/sales_order.js:291 +#: templates/js/translated/sales_order.js:288 msgid "No stock items have been allocated to this shipment" msgstr "" -#: templates/js/translated/sales_order.js:296 -msgid "The following stock items will be shipped" -msgstr "" - -#: templates/js/translated/sales_order.js:336 +#: templates/js/translated/sales_order.js:294 msgid "Complete Shipment" msgstr "" -#: templates/js/translated/sales_order.js:360 +#: templates/js/translated/sales_order.js:318 msgid "Confirm Shipment" msgstr "" -#: templates/js/translated/sales_order.js:416 +#: templates/js/translated/sales_order.js:375 msgid "No pending shipments found" msgstr "" -#: templates/js/translated/sales_order.js:420 +#: templates/js/translated/sales_order.js:379 msgid "No stock items have been allocated to pending shipments" msgstr "" -#: templates/js/translated/sales_order.js:430 +#: templates/js/translated/sales_order.js:389 msgid "Complete Shipments" msgstr "" -#: templates/js/translated/sales_order.js:452 +#: templates/js/translated/sales_order.js:411 msgid "Skip" msgstr "" -#: templates/js/translated/sales_order.js:484 +#: templates/js/translated/sales_order.js:443 msgid "Ship Sales Order" msgstr "" -#: templates/js/translated/sales_order.js:500 +#: templates/js/translated/sales_order.js:459 msgid "Ship this order?" msgstr "" -#: templates/js/translated/sales_order.js:506 +#: templates/js/translated/sales_order.js:465 msgid "Order cannot be shipped as there are incomplete shipments" msgstr "" -#: templates/js/translated/sales_order.js:513 +#: templates/js/translated/sales_order.js:472 msgid "This order has line items which have not been completed." msgstr "" -#: templates/js/translated/sales_order.js:514 +#: templates/js/translated/sales_order.js:473 msgid "Shipping this order means that the order and line items will no longer be editable." msgstr "" -#: templates/js/translated/sales_order.js:572 +#: templates/js/translated/sales_order.js:531 msgid "Issue this Sales Order?" msgstr "" -#: templates/js/translated/sales_order.js:577 +#: templates/js/translated/sales_order.js:536 msgid "Issue Sales Order" msgstr "" -#: templates/js/translated/sales_order.js:596 +#: templates/js/translated/sales_order.js:555 msgid "Cancel Sales Order" msgstr "" -#: templates/js/translated/sales_order.js:601 +#: templates/js/translated/sales_order.js:560 msgid "Cancelling this order means that the order will no longer be editable." msgstr "" -#: templates/js/translated/sales_order.js:655 +#: templates/js/translated/sales_order.js:614 msgid "Create New Shipment" msgstr "" -#: templates/js/translated/sales_order.js:764 +#: templates/js/translated/sales_order.js:723 msgid "No sales orders found" msgstr "" -#: templates/js/translated/sales_order.js:944 +#: templates/js/translated/sales_order.js:907 msgid "Edit shipment" msgstr "" -#: templates/js/translated/sales_order.js:947 +#: templates/js/translated/sales_order.js:910 msgid "Complete shipment" msgstr "" -#: templates/js/translated/sales_order.js:952 +#: templates/js/translated/sales_order.js:915 msgid "Delete shipment" msgstr "" -#: templates/js/translated/sales_order.js:969 +#: templates/js/translated/sales_order.js:932 msgid "Edit Shipment" msgstr "" -#: templates/js/translated/sales_order.js:984 +#: templates/js/translated/sales_order.js:947 msgid "Delete Shipment" msgstr "" -#: templates/js/translated/sales_order.js:1017 +#: templates/js/translated/sales_order.js:989 msgid "No matching shipments found" msgstr "" -#: templates/js/translated/sales_order.js:1042 +#: templates/js/translated/sales_order.js:1015 msgid "Shipment Reference" msgstr "" -#: templates/js/translated/sales_order.js:1066 -#: templates/js/translated/sales_order.js:1565 +#: templates/js/translated/sales_order.js:1032 +#: templates/js/translated/sales_order.js:1531 msgid "Not shipped" msgstr "" -#: templates/js/translated/sales_order.js:1084 +#: templates/js/translated/sales_order.js:1050 msgid "Tracking" msgstr "" -#: templates/js/translated/sales_order.js:1088 +#: templates/js/translated/sales_order.js:1054 msgid "Invoice" msgstr "" -#: templates/js/translated/sales_order.js:1255 +#: templates/js/translated/sales_order.js:1221 msgid "Add Shipment" msgstr "" -#: templates/js/translated/sales_order.js:1306 +#: templates/js/translated/sales_order.js:1272 msgid "Confirm stock allocation" msgstr "" -#: templates/js/translated/sales_order.js:1307 +#: templates/js/translated/sales_order.js:1273 msgid "Allocate Stock Items to Sales Order" msgstr "" -#: templates/js/translated/sales_order.js:1513 +#: templates/js/translated/sales_order.js:1479 msgid "No sales order allocations found" msgstr "" -#: templates/js/translated/sales_order.js:1605 +#: templates/js/translated/sales_order.js:1571 msgid "Edit Stock Allocation" msgstr "" -#: templates/js/translated/sales_order.js:1619 +#: templates/js/translated/sales_order.js:1585 msgid "Confirm Delete Operation" msgstr "" -#: templates/js/translated/sales_order.js:1620 +#: templates/js/translated/sales_order.js:1586 msgid "Delete Stock Allocation" msgstr "" -#: templates/js/translated/sales_order.js:1659 -#: templates/js/translated/sales_order.js:1746 +#: templates/js/translated/sales_order.js:1640 +#: templates/js/translated/sales_order.js:1727 #: templates/js/translated/stock.js:1861 msgid "Shipped to customer" msgstr "" -#: templates/js/translated/sales_order.js:1667 -#: templates/js/translated/sales_order.js:1755 +#: templates/js/translated/sales_order.js:1648 +#: templates/js/translated/sales_order.js:1736 msgid "Stock location not specified" msgstr "" -#: templates/js/translated/sales_order.js:2044 -msgid "Allocate serial numbers" -msgstr "" - -#: templates/js/translated/sales_order.js:2048 -msgid "Purchase stock" -msgstr "" - -#: templates/js/translated/sales_order.js:2057 -#: templates/js/translated/sales_order.js:2245 -msgid "Calculate price" -msgstr "" - -#: templates/js/translated/sales_order.js:2071 -msgid "Cannot be deleted as items have been shipped" -msgstr "" - -#: templates/js/translated/sales_order.js:2074 -msgid "Cannot be deleted as items have been allocated" -msgstr "" - -#: templates/js/translated/sales_order.js:2145 +#: templates/js/translated/sales_order.js:2025 +#: templates/js/translated/sales_order.js:2126 msgid "Allocate Serial Numbers" msgstr "" -#: templates/js/translated/sales_order.js:2253 +#: templates/js/translated/sales_order.js:2029 +msgid "Purchase stock" +msgstr "" + +#: templates/js/translated/sales_order.js:2038 +#: templates/js/translated/sales_order.js:2226 +msgid "Calculate price" +msgstr "" + +#: templates/js/translated/sales_order.js:2052 +msgid "Cannot be deleted as items have been shipped" +msgstr "" + +#: templates/js/translated/sales_order.js:2055 +msgid "Cannot be deleted as items have been allocated" +msgstr "" + +#: templates/js/translated/sales_order.js:2234 msgid "Update Unit Price" msgstr "" @@ -14209,11 +14543,8 @@ msgid "Find Serial Number" msgstr "" #: templates/js/translated/stock.js:603 templates/js/translated/stock.js:604 -msgid "Enter serial number" -msgstr "" - #: templates/js/translated/stock.js:620 -msgid "Enter a serial number" +msgid "Enter serial number" msgstr "" #: templates/js/translated/stock.js:640 @@ -14284,7 +14615,7 @@ msgstr "" msgid "Add Stock" msgstr "" -#: templates/js/translated/stock.js:1049 users/models.py:396 +#: templates/js/translated/stock.js:1049 users/models.py:398 msgid "Add" msgstr "" @@ -14308,7 +14639,7 @@ msgstr "" msgid "Adjust packaging" msgstr "" -#: templates/js/translated/stock.js:1256 templates/js/translated/stock.js:3382 +#: templates/js/translated/stock.js:1256 templates/js/translated/stock.js:3383 msgid "Select Stock Items" msgstr "" @@ -14320,18 +14651,6 @@ msgstr "" msgid "Confirm stock adjustment" msgstr "" -#: templates/js/translated/stock.js:1448 -msgid "PASS" -msgstr "" - -#: templates/js/translated/stock.js:1450 -msgid "FAIL" -msgstr "" - -#: templates/js/translated/stock.js:1455 -msgid "NO RESULT" -msgstr "" - #: templates/js/translated/stock.js:1535 msgid "Pass test" msgstr "" @@ -14388,216 +14707,216 @@ msgstr "" msgid "No stock location set" msgstr "" -#: templates/js/translated/stock.js:1927 +#: templates/js/translated/stock.js:1928 msgid "Change stock status" msgstr "" -#: templates/js/translated/stock.js:1936 +#: templates/js/translated/stock.js:1937 msgid "Merge stock" msgstr "" -#: templates/js/translated/stock.js:1985 +#: templates/js/translated/stock.js:1986 msgid "Delete stock" msgstr "" -#: templates/js/translated/stock.js:2038 +#: templates/js/translated/stock.js:2039 msgid "stock items" msgstr "" -#: templates/js/translated/stock.js:2043 +#: templates/js/translated/stock.js:2044 msgid "Scan to location" msgstr "" -#: templates/js/translated/stock.js:2054 +#: templates/js/translated/stock.js:2055 msgid "Stock Actions" msgstr "" -#: templates/js/translated/stock.js:2098 +#: templates/js/translated/stock.js:2099 msgid "Load installed items" msgstr "" -#: templates/js/translated/stock.js:2176 +#: templates/js/translated/stock.js:2177 msgid "Stock item is in production" msgstr "" -#: templates/js/translated/stock.js:2181 +#: templates/js/translated/stock.js:2182 msgid "Stock item assigned to sales order" msgstr "" -#: templates/js/translated/stock.js:2184 +#: templates/js/translated/stock.js:2185 msgid "Stock item assigned to customer" msgstr "" -#: templates/js/translated/stock.js:2187 +#: templates/js/translated/stock.js:2188 msgid "Serialized stock item has been allocated" msgstr "" -#: templates/js/translated/stock.js:2189 +#: templates/js/translated/stock.js:2190 msgid "Stock item has been fully allocated" msgstr "" -#: templates/js/translated/stock.js:2191 +#: templates/js/translated/stock.js:2192 msgid "Stock item has been partially allocated" msgstr "" -#: templates/js/translated/stock.js:2194 +#: templates/js/translated/stock.js:2195 msgid "Stock item has been installed in another item" msgstr "" -#: templates/js/translated/stock.js:2196 +#: templates/js/translated/stock.js:2197 msgid "Stock item has been consumed by a build order" msgstr "" -#: templates/js/translated/stock.js:2200 +#: templates/js/translated/stock.js:2201 msgid "Stock item has expired" msgstr "" -#: templates/js/translated/stock.js:2202 +#: templates/js/translated/stock.js:2203 msgid "Stock item will expire soon" msgstr "" -#: templates/js/translated/stock.js:2207 +#: templates/js/translated/stock.js:2208 msgid "Stock item has been rejected" msgstr "" -#: templates/js/translated/stock.js:2209 +#: templates/js/translated/stock.js:2210 msgid "Stock item is lost" msgstr "" -#: templates/js/translated/stock.js:2211 +#: templates/js/translated/stock.js:2212 msgid "Stock item is destroyed" msgstr "" -#: templates/js/translated/stock.js:2215 +#: templates/js/translated/stock.js:2216 #: templates/js/translated/table_filters.js:357 msgid "Depleted" msgstr "" -#: templates/js/translated/stock.js:2380 +#: templates/js/translated/stock.js:2381 msgid "Supplier part not specified" msgstr "" -#: templates/js/translated/stock.js:2427 +#: templates/js/translated/stock.js:2428 msgid "Stock Value" msgstr "" -#: templates/js/translated/stock.js:2555 +#: templates/js/translated/stock.js:2556 msgid "No stock items matching query" msgstr "" -#: templates/js/translated/stock.js:2658 +#: templates/js/translated/stock.js:2659 msgid "stock locations" msgstr "" -#: templates/js/translated/stock.js:2813 +#: templates/js/translated/stock.js:2814 msgid "Load Sublocations" msgstr "" -#: templates/js/translated/stock.js:2930 +#: templates/js/translated/stock.js:2931 msgid "Details" msgstr "" -#: templates/js/translated/stock.js:2934 +#: templates/js/translated/stock.js:2935 msgid "No changes" msgstr "" -#: templates/js/translated/stock.js:2946 +#: templates/js/translated/stock.js:2947 msgid "Part information unavailable" msgstr "" -#: templates/js/translated/stock.js:2968 +#: templates/js/translated/stock.js:2969 msgid "Location no longer exists" msgstr "" -#: templates/js/translated/stock.js:2985 +#: templates/js/translated/stock.js:2986 msgid "Build order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3000 +#: templates/js/translated/stock.js:3001 msgid "Purchase order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3017 +#: templates/js/translated/stock.js:3018 msgid "Sales Order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3034 +#: templates/js/translated/stock.js:3035 msgid "Return Order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3053 +#: templates/js/translated/stock.js:3054 msgid "Customer no longer exists" msgstr "" -#: templates/js/translated/stock.js:3071 +#: templates/js/translated/stock.js:3072 msgid "Stock item no longer exists" msgstr "" -#: templates/js/translated/stock.js:3089 +#: templates/js/translated/stock.js:3090 msgid "Added" msgstr "" -#: templates/js/translated/stock.js:3097 +#: templates/js/translated/stock.js:3098 msgid "Removed" msgstr "" -#: templates/js/translated/stock.js:3169 +#: templates/js/translated/stock.js:3170 msgid "No installed items" msgstr "" -#: templates/js/translated/stock.js:3223 templates/js/translated/stock.js:3259 +#: templates/js/translated/stock.js:3224 templates/js/translated/stock.js:3260 msgid "Uninstall Stock Item" msgstr "" -#: templates/js/translated/stock.js:3280 +#: templates/js/translated/stock.js:3281 msgid "Select stock item to uninstall" msgstr "" -#: templates/js/translated/stock.js:3301 +#: templates/js/translated/stock.js:3302 msgid "Install another stock item into this item" msgstr "" -#: templates/js/translated/stock.js:3302 +#: templates/js/translated/stock.js:3303 msgid "Stock items can only be installed if they meet the following criteria" msgstr "" -#: templates/js/translated/stock.js:3304 +#: templates/js/translated/stock.js:3305 msgid "The Stock Item links to a Part which is the BOM for this Stock Item" msgstr "" -#: templates/js/translated/stock.js:3305 +#: templates/js/translated/stock.js:3306 msgid "The Stock Item is currently available in stock" msgstr "" -#: templates/js/translated/stock.js:3306 +#: templates/js/translated/stock.js:3307 msgid "The Stock Item is not already installed in another item" msgstr "" -#: templates/js/translated/stock.js:3307 +#: templates/js/translated/stock.js:3308 msgid "The Stock Item is tracked by either a batch code or serial number" msgstr "" -#: templates/js/translated/stock.js:3320 +#: templates/js/translated/stock.js:3321 msgid "Select part to install" msgstr "" -#: templates/js/translated/stock.js:3383 +#: templates/js/translated/stock.js:3384 msgid "Select one or more stock items" msgstr "" -#: templates/js/translated/stock.js:3396 +#: templates/js/translated/stock.js:3397 msgid "Selected stock items" msgstr "" -#: templates/js/translated/stock.js:3400 +#: templates/js/translated/stock.js:3401 msgid "Change Stock Status" msgstr "" -#: templates/js/translated/stock.js:3477 +#: templates/js/translated/stock.js:3478 msgid "This week" msgstr "" -#: templates/js/translated/stock.js:3485 +#: templates/js/translated/stock.js:3486 msgid "This month" msgstr "" @@ -14734,10 +15053,6 @@ msgstr "" msgid "Show items which are in production" msgstr "" -#: templates/js/translated/table_filters.js:372 -msgid "Include Variants" -msgstr "" - #: templates/js/translated/table_filters.js:373 msgid "Include stock items for variant parts" msgstr "" @@ -15012,10 +15327,6 @@ msgstr "" msgid "An error occurred while attempting to login via your social network account." msgstr "" -#: templates/socialaccount/authentication_error.html:13 -msgid "Contact your system administrator for further information." -msgstr "" - #: templates/socialaccount/login.html:13 #, python-format msgid "Connect %(provider)s" @@ -15141,27 +15452,27 @@ msgstr "" msgid "No" msgstr "" -#: users/admin.py:104 +#: users/admin.py:101 msgid "Users" msgstr "" -#: users/admin.py:105 +#: users/admin.py:102 msgid "Select which users are assigned to this group" msgstr "" -#: users/admin.py:249 +#: users/admin.py:246 msgid "The following users are members of multiple groups" msgstr "" -#: users/admin.py:283 +#: users/admin.py:280 msgid "Personal info" msgstr "" -#: users/admin.py:285 +#: users/admin.py:282 msgid "Permissions" msgstr "" -#: users/admin.py:288 +#: users/admin.py:285 msgid "Important dates" msgstr "" @@ -15205,35 +15516,35 @@ msgstr "" msgid "Revoked" msgstr "" -#: users/models.py:379 +#: users/models.py:381 msgid "Permission set" msgstr "" -#: users/models.py:388 +#: users/models.py:390 msgid "Group" msgstr "" -#: users/models.py:392 +#: users/models.py:394 msgid "View" msgstr "" -#: users/models.py:392 +#: users/models.py:394 msgid "Permission to view items" msgstr "" -#: users/models.py:396 +#: users/models.py:398 msgid "Permission to add items" msgstr "" -#: users/models.py:400 +#: users/models.py:402 msgid "Change" msgstr "" -#: users/models.py:402 +#: users/models.py:404 msgid "Permissions to edit items" msgstr "" -#: users/models.py:408 +#: users/models.py:410 msgid "Permission to delete items" msgstr "" diff --git a/src/backend/InvenTree/locale/tr/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/tr/LC_MESSAGES/django.po index c7807a62b9..f74bf8ae48 100644 --- a/src/backend/InvenTree/locale/tr/LC_MESSAGES/django.po +++ b/src/backend/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: 2024-08-20 01:22+0000\n" -"PO-Revision-Date: 2024-08-20 19:51\n" +"POT-Creation-Date: 2024-11-04 03:11+0000\n" +"PO-Revision-Date: 2024-11-04 03:14\n" "Last-Translator: \n" "Language-Team: Turkish\n" "Language: tr_TR\n" @@ -14,81 +14,89 @@ msgstr "" "X-Crowdin-Project: inventree\n" "X-Crowdin-Project-ID: 452300\n" "X-Crowdin-Language: tr\n" -"X-Crowdin-File: /[inventree.InvenTree] l10/src/backend/InvenTree/locale/en/LC_MESSAGES/django.po\n" -"X-Crowdin-File-ID: 216\n" +"X-Crowdin-File: /src/backend/InvenTree/locale/en/LC_MESSAGES/django.po\n" +"X-Crowdin-File-ID: 250\n" -#: InvenTree/api.py:269 +#: InvenTree/api.py:270 msgid "API endpoint not found" msgstr "API uç noktası bulunamadı" -#: InvenTree/api.py:502 +#: InvenTree/api.py:387 +msgid "Invalid items list provided" +msgstr "" + +#: InvenTree/api.py:396 +msgid "Invalid filters provided" +msgstr "" + +#: InvenTree/api.py:401 +msgid "No items found to delete" +msgstr "" + +#: InvenTree/api.py:515 msgid "User does not have permission to view this model" msgstr "Kullanıcının bu modeli görüntüleme izni yok" -#: InvenTree/conversion.py:160 +#: InvenTree/conversion.py:161 #, python-brace-format msgid "Invalid unit provided ({unit})" msgstr "Geçersiz ürün girildi ({unit})" -#: InvenTree/conversion.py:177 +#: InvenTree/conversion.py:178 msgid "No value provided" msgstr "Değer verilmemiş" -#: InvenTree/conversion.py:204 +#: InvenTree/conversion.py:205 #, python-brace-format msgid "Could not convert {original} to {unit}" msgstr "{original} birimi {unit} birimine dönüştürülemedi" -#: InvenTree/conversion.py:206 -msgid "Invalid quantity supplied" -msgstr "Geçersiz miktar sağlandı" +#: InvenTree/conversion.py:207 InvenTree/conversion.py:221 +#: InvenTree/helpers.py:505 order/models.py:589 order/models.py:832 +msgid "Invalid quantity provided" +msgstr "Geçersiz veri sağlandı" -#: InvenTree/conversion.py:220 -#, python-brace-format -msgid "Invalid quantity supplied ({exc})" -msgstr "Geçersiz miktar sağlandı({exc})" - -#: InvenTree/exceptions.py:108 +#: InvenTree/exceptions.py:104 msgid "Error details can be found in the admin panel" msgstr "Hata detaylarını admin panelinde bulabilirsiniz" -#: InvenTree/fields.py:136 +#: InvenTree/fields.py:135 msgid "Enter date" msgstr "Tarih giriniz" -#: InvenTree/fields.py:205 InvenTree/models.py:929 build/serializers.py:468 -#: build/serializers.py:546 build/templates/build/sidebar.html:29 -#: company/models.py:836 +#: InvenTree/fields.py:204 InvenTree/models.py:928 build/serializers.py:512 +#: build/serializers.py:590 build/templates/build/sidebar.html:29 +#: company/models.py:833 #: company/templates/company/manufacturer_part_sidebar.html:11 #: company/templates/company/sidebar.html:37 -#: company/templates/company/supplier_part_sidebar.html:11 order/models.py:1380 +#: company/templates/company/supplier_part_sidebar.html:11 order/models.py:1397 #: order/templates/order/po_sidebar.html:11 #: order/templates/order/return_order_sidebar.html:9 #: order/templates/order/so_sidebar.html:17 part/admin.py:59 -#: part/models.py:3297 part/templates/part/part_sidebar.html:65 +#: part/models.py:3348 part/templates/part/part_sidebar.html:65 #: report/templates/report/inventree_build_order_report.html:172 -#: stock/admin.py:230 stock/models.py:2375 stock/models.py:2563 -#: stock/serializers.py:698 stock/serializers.py:856 stock/serializers.py:982 -#: stock/serializers.py:1032 stock/serializers.py:1343 -#: stock/serializers.py:1432 stock/serializers.py:1597 +#: stock/admin.py:231 stock/models.py:2494 stock/models.py:2679 +#: stock/serializers.py:725 stock/serializers.py:887 stock/serializers.py:1013 +#: stock/serializers.py:1063 stock/serializers.py:1374 +#: stock/serializers.py:1463 stock/serializers.py:1628 #: stock/templates/stock/stock_sidebar.html:25 #: templates/js/translated/barcode.js:143 templates/js/translated/bom.js:1265 -#: templates/js/translated/company.js:1684 templates/js/translated/order.js:372 +#: templates/js/translated/company.js:1685 templates/js/translated/order.js:372 #: templates/js/translated/part.js:1087 -#: templates/js/translated/purchase_order.js:2270 +#: templates/js/translated/purchase_order.js:2254 #: templates/js/translated/return_order.js:774 -#: templates/js/translated/sales_order.js:1103 -#: templates/js/translated/sales_order.js:2018 -#: templates/js/translated/stock.js:1621 templates/js/translated/stock.js:2513 +#: templates/js/translated/sales_order.js:1069 +#: templates/js/translated/sales_order.js:1999 +#: templates/js/translated/stock.js:1621 templates/js/translated/stock.js:2514 msgid "Notes" msgstr "Notlar" -#: InvenTree/format.py:164 +#: InvenTree/format.py:162 #, python-brace-format msgid "Value '{name}' does not appear in pattern format" msgstr "'{name}' değeri desen formatında yer almıyor" -#: InvenTree/format.py:175 +#: InvenTree/format.py:173 msgid "Provided value does not match required pattern: " msgstr "Sağlanan değer gerekli kalıpla eşleşmiyor: " @@ -126,403 +134,415 @@ msgstr "Her seferind eaynı e-posta adresini yazmalısınız." #: InvenTree/forms.py:221 msgid "MFA Registration is disabled." -msgstr "" +msgstr "MFA Kaydı etkisizleştirildi." #: InvenTree/forms.py:259 InvenTree/forms.py:267 msgid "The provided primary email address is not valid." msgstr "Sağlanan e-posta adresi geçerli değil." -#: InvenTree/forms.py:274 +#: InvenTree/forms.py:273 msgid "The provided email domain is not approved." msgstr "Sağlanan e-posta alanı onaylanmadı." -#: InvenTree/forms.py:403 +#: InvenTree/forms.py:402 msgid "Registration is disabled." msgstr "Kayıt devre dışı." -#: InvenTree/helpers.py:491 order/models.py:567 order/models.py:810 -msgid "Invalid quantity provided" -msgstr "Geçersiz veri sağlandı" +#: InvenTree/helpers.py:509 +msgid "Cannot serialize more than 1000 items at once" +msgstr "" -#: InvenTree/helpers.py:499 +#: InvenTree/helpers.py:515 msgid "Empty serial number string" msgstr "Boş seri numarası dizesi" -#: InvenTree/helpers.py:528 +#: InvenTree/helpers.py:544 msgid "Duplicate serial" msgstr "Yinelenen seri" -#: InvenTree/helpers.py:560 InvenTree/helpers.py:603 +#: InvenTree/helpers.py:576 InvenTree/helpers.py:619 InvenTree/helpers.py:637 +#: InvenTree/helpers.py:644 InvenTree/helpers.py:663 #, python-brace-format -msgid "Invalid group range: {group}" -msgstr "Geçersiz grup aralığı: {group}" +msgid "Invalid group: {group}" +msgstr "" -#: InvenTree/helpers.py:591 +#: InvenTree/helpers.py:607 #, python-brace-format msgid "Group range {group} exceeds allowed quantity ({expected_quantity})" msgstr "Grup aralığı {group}, izin verilen miktarı aşmaktadır ({expected_quantity})" -#: InvenTree/helpers.py:621 InvenTree/helpers.py:628 InvenTree/helpers.py:647 -#, python-brace-format -msgid "Invalid group sequence: {group}" -msgstr "Geçersiz grup aralığı: {group}" - -#: InvenTree/helpers.py:657 +#: InvenTree/helpers.py:673 msgid "No serial numbers found" msgstr "Seri numarası bulunamadı" -#: InvenTree/helpers.py:662 +#: InvenTree/helpers.py:678 msgid "Number of unique serial numbers ({len(serials)}) must match quantity ({expected_quantity})" msgstr "Benzersiz seri numaralarının sayısı ({len(serials)}) ile miktarın ({expected_quantity}) eşleşmesi gerekmektedir" -#: InvenTree/helpers.py:780 +#: InvenTree/helpers.py:796 msgid "Remove HTML tags from this value" msgstr "Bu değerden HTML etiketlerini kaldır" -#: InvenTree/helpers_model.py:133 +#: InvenTree/helpers.py:881 +msgid "Data contains prohibited markdown content" +msgstr "" + +#: InvenTree/helpers_model.py:130 msgid "Connection error" msgstr "Bağlantı hatası" -#: InvenTree/helpers_model.py:138 InvenTree/helpers_model.py:145 +#: InvenTree/helpers_model.py:135 InvenTree/helpers_model.py:142 msgid "Server responded with invalid status code" msgstr "Sunucu geçersiz durum kodu ile cevap verdi" -#: InvenTree/helpers_model.py:141 +#: InvenTree/helpers_model.py:138 msgid "Exception occurred" msgstr "İstisna oluştu" -#: InvenTree/helpers_model.py:151 +#: InvenTree/helpers_model.py:148 msgid "Server responded with invalid Content-Length value" msgstr "Sunucu geçersiz Content-Length değeriyle yanıt verdi" -#: InvenTree/helpers_model.py:154 +#: InvenTree/helpers_model.py:151 msgid "Image size is too large" msgstr "Resim boyutu çok büyük" -#: InvenTree/helpers_model.py:166 +#: InvenTree/helpers_model.py:163 msgid "Image download exceeded maximum size" msgstr "Resim indirme boyutu izin verilenden büyük" -#: InvenTree/helpers_model.py:171 +#: InvenTree/helpers_model.py:168 msgid "Remote server returned empty response" msgstr "Uzak sunucu boş cevap döndü" -#: InvenTree/helpers_model.py:179 +#: InvenTree/helpers_model.py:176 msgid "Supplied URL is not a valid image file" msgstr "Sağlanan URL geçerli bir resim dosyası değil" -#: InvenTree/locales.py:18 +#: InvenTree/locales.py:20 msgid "Arabic" -msgstr "" +msgstr "Arapça" -#: InvenTree/locales.py:19 +#: InvenTree/locales.py:21 msgid "Bulgarian" msgstr "Bulgarca" -#: InvenTree/locales.py:20 +#: InvenTree/locales.py:22 msgid "Czech" msgstr "Çekçe" -#: InvenTree/locales.py:21 +#: InvenTree/locales.py:23 msgid "Danish" msgstr "Danca" -#: InvenTree/locales.py:22 +#: InvenTree/locales.py:24 msgid "German" msgstr "Almanca" -#: InvenTree/locales.py:23 +#: InvenTree/locales.py:25 msgid "Greek" msgstr "Yunanca" -#: InvenTree/locales.py:24 +#: InvenTree/locales.py:26 msgid "English" msgstr "İngilizce" -#: InvenTree/locales.py:25 +#: InvenTree/locales.py:27 msgid "Spanish" msgstr "İspanyolca" -#: InvenTree/locales.py:26 +#: InvenTree/locales.py:28 msgid "Spanish (Mexican)" msgstr "İspanyolca(Meksika)" -#: InvenTree/locales.py:27 +#: InvenTree/locales.py:29 msgid "Estonian" -msgstr "" +msgstr "Estonca" -#: InvenTree/locales.py:28 +#: InvenTree/locales.py:30 msgid "Farsi / Persian" msgstr "Farsça" -#: InvenTree/locales.py:29 +#: InvenTree/locales.py:31 msgid "Finnish" msgstr "Fince" -#: InvenTree/locales.py:30 +#: InvenTree/locales.py:32 msgid "French" msgstr "Fransızca" -#: InvenTree/locales.py:31 +#: InvenTree/locales.py:33 msgid "Hebrew" msgstr "İbranice" -#: InvenTree/locales.py:32 +#: InvenTree/locales.py:34 msgid "Hindi" msgstr "Hintçe" -#: InvenTree/locales.py:33 +#: InvenTree/locales.py:35 msgid "Hungarian" msgstr "Macarca" -#: InvenTree/locales.py:34 +#: InvenTree/locales.py:36 msgid "Italian" msgstr "İtalyanca" -#: InvenTree/locales.py:35 +#: InvenTree/locales.py:37 msgid "Japanese" msgstr "Japonca" -#: InvenTree/locales.py:36 +#: InvenTree/locales.py:38 msgid "Korean" msgstr "Korece" -#: InvenTree/locales.py:37 -msgid "Latvian" +#: InvenTree/locales.py:39 +msgid "Lithuanian" msgstr "" -#: InvenTree/locales.py:38 +#: InvenTree/locales.py:40 +msgid "Latvian" +msgstr "Letonca" + +#: InvenTree/locales.py:41 msgid "Dutch" msgstr "Flemenkçe" -#: InvenTree/locales.py:39 +#: InvenTree/locales.py:42 msgid "Norwegian" msgstr "Norveççe" -#: InvenTree/locales.py:40 +#: InvenTree/locales.py:43 msgid "Polish" msgstr "Polonyaca" -#: InvenTree/locales.py:41 +#: InvenTree/locales.py:44 msgid "Portuguese" msgstr "Portekizce" -#: InvenTree/locales.py:42 +#: InvenTree/locales.py:45 msgid "Portuguese (Brazilian)" msgstr "Portekizce (Brezilya)" -#: InvenTree/locales.py:43 +#: InvenTree/locales.py:46 msgid "Romanian" -msgstr "" +msgstr "Romen" -#: InvenTree/locales.py:44 +#: InvenTree/locales.py:47 msgid "Russian" msgstr "Rusça" -#: InvenTree/locales.py:45 +#: InvenTree/locales.py:48 msgid "Slovak" msgstr "Slovakça" -#: InvenTree/locales.py:46 +#: InvenTree/locales.py:49 msgid "Slovenian" msgstr "Slovakça" -#: InvenTree/locales.py:47 +#: InvenTree/locales.py:50 msgid "Serbian" msgstr "Sırpça" -#: InvenTree/locales.py:48 +#: InvenTree/locales.py:51 msgid "Swedish" msgstr "İsveççe" -#: InvenTree/locales.py:49 +#: InvenTree/locales.py:52 msgid "Thai" msgstr "Tay dili" -#: InvenTree/locales.py:50 +#: InvenTree/locales.py:53 msgid "Turkish" msgstr "Türkçe" -#: InvenTree/locales.py:51 +#: InvenTree/locales.py:54 msgid "Ukrainian" -msgstr "" +msgstr "Ukraynaca" -#: InvenTree/locales.py:52 +#: InvenTree/locales.py:55 msgid "Vietnamese" msgstr "Vietnamca" -#: InvenTree/locales.py:53 +#: InvenTree/locales.py:56 msgid "Chinese (Simplified)" msgstr "Çince (Basitleştirilmiş)" -#: InvenTree/locales.py:54 +#: InvenTree/locales.py:57 msgid "Chinese (Traditional)" msgstr "Çince (Geleneksel)" #: InvenTree/magic_login.py:28 -#, python-brace-format -msgid "[{site_name}] Log in to the app" -msgstr "[{site_name}] Uygulamaya giriş yap" +msgid "Log in to the app" +msgstr "" -#: InvenTree/magic_login.py:38 InvenTree/serializers.py:415 -#: company/models.py:136 company/templates/company/company_base.html:138 +#: InvenTree/magic_login.py:38 InvenTree/serializers.py:416 +#: company/models.py:133 company/templates/company/company_base.html:138 #: templates/InvenTree/settings/user.html:49 -#: templates/js/translated/company.js:677 +#: templates/js/translated/company.js:678 msgid "Email" msgstr "E-posta" -#: InvenTree/models.py:103 +#: InvenTree/models.py:105 msgid "Error running plugin validation" msgstr "Eklenti doğrulama sırasında hata oluştu" -#: InvenTree/models.py:172 +#: InvenTree/models.py:174 msgid "Metadata must be a python dict object" msgstr "Metadata, bir python dict nesnesi olmalıdır" -#: InvenTree/models.py:178 +#: InvenTree/models.py:180 msgid "Plugin Metadata" msgstr "Plugin Metaverileri" -#: InvenTree/models.py:179 +#: InvenTree/models.py:181 msgid "JSON metadata field, for use by external plugins" msgstr "Harici eklentiler tarafından kullanım için JSON metadata alanı" -#: InvenTree/models.py:409 +#: InvenTree/models.py:408 msgid "Improperly formatted pattern" msgstr "Yanlış biçimlendirilmiş desen" -#: InvenTree/models.py:416 +#: InvenTree/models.py:415 msgid "Unknown format key specified" msgstr "Belirtilen bilinmeyen format anahtarı" -#: InvenTree/models.py:422 +#: InvenTree/models.py:421 msgid "Missing required format key" msgstr "Gerekli format anahtarı eksik" -#: InvenTree/models.py:433 +#: InvenTree/models.py:432 msgid "Reference field cannot be empty" msgstr "Referans alanı boş olamaz" -#: InvenTree/models.py:441 +#: InvenTree/models.py:440 msgid "Reference must match required pattern" msgstr "Referans {pattern} deseniyle mutlaka eşleşmeli" -#: InvenTree/models.py:472 +#: InvenTree/models.py:471 msgid "Reference number is too large" msgstr "Referans sayısı çok fazla" -#: InvenTree/models.py:723 +#: InvenTree/models.py:722 msgid "Duplicate names cannot exist under the same parent" msgstr "Aynı kaynak altında birden fazla aynı isim kullanılamaz" -#: InvenTree/models.py:740 +#: InvenTree/models.py:739 msgid "Invalid choice" msgstr "Geçersiz seçim" -#: InvenTree/models.py:770 common/models.py:2702 common/models.py:3132 -#: common/serializers.py:412 company/models.py:593 machine/models.py:24 -#: part/models.py:983 part/models.py:3764 plugin/models.py:51 -#: report/models.py:149 stock/models.py:77 +#: InvenTree/models.py:769 common/models.py:2766 common/models.py:3193 +#: common/models.py:3413 common/serializers.py:460 company/models.py:590 +#: machine/models.py:24 part/models.py:1044 part/models.py:3815 +#: plugin/models.py:51 report/models.py:149 stock/models.py:83 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/notifications.html:17 #: templates/InvenTree/settings/plugin.html:83 #: templates/InvenTree/settings/plugin_settings.html:22 #: templates/InvenTree/settings/settings_staff_js.html:67 #: templates/InvenTree/settings/settings_staff_js.html:454 -#: templates/js/translated/company.js:676 -#: templates/js/translated/company.js:724 -#: templates/js/translated/company.js:913 -#: templates/js/translated/company.js:1165 -#: templates/js/translated/company.js:1413 templates/js/translated/part.js:1193 +#: templates/js/translated/company.js:677 +#: templates/js/translated/company.js:725 +#: templates/js/translated/company.js:914 +#: templates/js/translated/company.js:1166 +#: templates/js/translated/company.js:1414 templates/js/translated/part.js:1193 #: templates/js/translated/part.js:1481 templates/js/translated/part.js:1617 -#: templates/js/translated/part.js:2768 templates/js/translated/stock.js:2801 +#: templates/js/translated/part.js:2768 templates/js/translated/stock.js:2802 msgid "Name" msgstr "Adı" -#: InvenTree/models.py:776 build/models.py:250 -#: build/templates/build/detail.html:24 common/models.py:156 -#: company/models.py:521 company/models.py:827 +#: InvenTree/models.py:775 build/models.py:251 +#: build/templates/build/detail.html:24 common/models.py:159 +#: company/models.py:518 company/models.py:824 #: company/templates/company/company_base.html:77 #: company/templates/company/manufacturer_part.html:75 -#: company/templates/company/supplier_part.html:107 order/models.py:288 -#: order/models.py:1413 part/admin.py:305 part/admin.py:411 part/models.py:1006 -#: part/models.py:3779 part/templates/part/category.html:79 -#: part/templates/part/part_base.html:170 +#: company/templates/company/supplier_part.html:108 order/models.py:295 +#: order/models.py:1430 part/admin.py:305 part/admin.py:411 part/models.py:1067 +#: part/models.py:3830 part/templates/part/category.html:79 +#: part/templates/part/part_base.html:171 #: part/templates/part/part_scheduling.html:12 report/models.py:155 -#: report/models.py:509 report/models.py:535 +#: report/models.py:517 report/models.py:543 #: report/templates/report/inventree_build_order_report.html:117 -#: stock/admin.py:54 stock/models.py:83 stock/templates/stock/location.html:122 +#: stock/admin.py:54 stock/models.py:89 stock/templates/stock/location.html:123 #: templates/InvenTree/settings/notifications.html:19 #: templates/InvenTree/settings/plugin_settings.html:27 #: templates/InvenTree/settings/settings_staff_js.html:170 #: templates/InvenTree/settings/settings_staff_js.html:459 #: templates/js/translated/bom.js:633 templates/js/translated/bom.js:963 -#: templates/js/translated/build.js:2311 templates/js/translated/company.js:519 -#: templates/js/translated/company.js:1330 -#: templates/js/translated/company.js:1641 templates/js/translated/index.js:119 +#: templates/js/translated/build.js:2314 templates/js/translated/company.js:520 +#: templates/js/translated/company.js:1331 +#: templates/js/translated/company.js:1642 templates/js/translated/index.js:119 #: templates/js/translated/order.js:323 templates/js/translated/part.js:1245 #: templates/js/translated/part.js:1490 templates/js/translated/part.js:1628 #: templates/js/translated/part.js:1965 templates/js/translated/part.js:2361 #: templates/js/translated/part.js:2803 templates/js/translated/part.js:2915 #: templates/js/translated/plugin.js:80 -#: templates/js/translated/purchase_order.js:1776 -#: templates/js/translated/purchase_order.js:1919 -#: templates/js/translated/purchase_order.js:2092 +#: templates/js/translated/purchase_order.js:1760 +#: templates/js/translated/purchase_order.js:1903 +#: templates/js/translated/purchase_order.js:2076 #: templates/js/translated/return_order.js:313 -#: templates/js/translated/sales_order.js:838 -#: templates/js/translated/sales_order.js:1848 -#: templates/js/translated/stock.js:1600 templates/js/translated/stock.js:2143 -#: templates/js/translated/stock.js:2832 templates/js/translated/stock.js:2915 +#: templates/js/translated/sales_order.js:797 +#: templates/js/translated/sales_order.js:1829 +#: templates/js/translated/stock.js:1600 templates/js/translated/stock.js:2144 +#: templates/js/translated/stock.js:2833 templates/js/translated/stock.js:2916 msgid "Description" msgstr "Açıklama" -#: InvenTree/models.py:777 stock/models.py:84 +#: InvenTree/models.py:776 stock/models.py:90 msgid "Description (optional)" msgstr "Açıklama (isteğe bağlı)" -#: InvenTree/models.py:792 templates/js/translated/part.js:2812 -#: templates/js/translated/stock.js:2841 +#: InvenTree/models.py:791 common/models.py:3546 +#: templates/js/translated/part.js:2812 templates/js/translated/stock.js:2842 msgid "Path" msgstr "Yol" -#: InvenTree/models.py:929 +#: InvenTree/models.py:928 msgid "Markdown notes (optional)" msgstr "Markdown notları (isteğe bağlı)" -#: InvenTree/models.py:960 +#: InvenTree/models.py:959 msgid "Barcode Data" msgstr "Barkod Verisi" -#: InvenTree/models.py:961 +#: InvenTree/models.py:960 msgid "Third party barcode data" msgstr "Üçüncü parti barkod verisi" -#: InvenTree/models.py:967 +#: InvenTree/models.py:966 msgid "Barcode Hash" msgstr "Barkod Hash" -#: InvenTree/models.py:968 +#: InvenTree/models.py:967 msgid "Unique hash of barcode data" msgstr "Barkod verisinin benzersiz hash'i" -#: InvenTree/models.py:1035 +#: InvenTree/models.py:1034 msgid "Existing barcode found" msgstr "Var olan barkod bulundu" -#: InvenTree/models.py:1078 +#: InvenTree/models.py:1112 +msgid "Task Failure" +msgstr "" + +#: InvenTree/models.py:1114 +#, python-brace-format +msgid "Background worker task '{instance.func}' failed after {n} attempts" +msgstr "" + +#: InvenTree/models.py:1142 msgid "Server Error" msgstr "Sunucu Hatası" -#: InvenTree/models.py:1079 +#: InvenTree/models.py:1143 msgid "An error has been logged by the server." msgstr "Bir hafta sunucu tarafından kayıt edildi." -#: InvenTree/serializers.py:63 part/models.py:4387 +#: InvenTree/serializers.py:63 part/models.py:4444 msgid "Must be a valid number" msgstr "Geçerli bir numara olmalı" -#: InvenTree/serializers.py:100 company/models.py:186 -#: company/templates/company/company_base.html:112 part/models.py:3115 +#: InvenTree/serializers.py:100 company/models.py:183 +#: company/templates/company/company_base.html:112 part/models.py:3166 #: templates/InvenTree/settings/settings_staff_js.html:44 #: templates/currency_data.html:5 msgid "Currency" @@ -532,50 +552,50 @@ msgstr "Para birimi" msgid "Select currency from available options" msgstr "Var olan seçeneklerden bir döviz birimi seçin" -#: InvenTree/serializers.py:407 templates/InvenTree/settings/user.html:33 +#: InvenTree/serializers.py:405 templates/InvenTree/settings/user.html:33 msgid "Username" -msgstr "" +msgstr "Kullanıcı Adı" -#: InvenTree/serializers.py:409 templates/InvenTree/settings/user.html:37 +#: InvenTree/serializers.py:408 templates/InvenTree/settings/user.html:37 msgid "First Name" -msgstr "" +msgstr "Adı" -#: InvenTree/serializers.py:409 +#: InvenTree/serializers.py:408 msgid "First name of the user" -msgstr "" +msgstr "Kullanıcının adı" #: InvenTree/serializers.py:412 templates/InvenTree/settings/user.html:41 msgid "Last Name" -msgstr "" +msgstr "Soyadı" #: InvenTree/serializers.py:412 msgid "Last name of the user" -msgstr "" +msgstr "Kullanıcının soyadı" -#: InvenTree/serializers.py:415 +#: InvenTree/serializers.py:416 msgid "Email address of the user" -msgstr "" +msgstr "Kullanıcının e-posta adresi" -#: InvenTree/serializers.py:439 +#: InvenTree/serializers.py:441 msgid "Staff" -msgstr "" +msgstr "Personel" -#: InvenTree/serializers.py:439 +#: InvenTree/serializers.py:441 msgid "Does this user have staff permissions" -msgstr "" +msgstr "Bu kullanıcının personel izinleri var mı" -#: InvenTree/serializers.py:442 +#: InvenTree/serializers.py:445 msgid "Superuser" -msgstr "" +msgstr "Süper Kullanıcı" -#: InvenTree/serializers.py:442 +#: InvenTree/serializers.py:445 msgid "Is this user a superuser" -msgstr "" +msgstr "Bu kullanıcı bir süper kullanıcı mı" -#: InvenTree/serializers.py:445 common/models.py:2707 company/models.py:163 -#: company/models.py:801 machine/models.py:39 part/admin.py:88 -#: part/models.py:1189 plugin/models.py:66 -#: templates/js/translated/company.js:523 +#: InvenTree/serializers.py:449 common/models.py:2771 company/models.py:160 +#: company/models.py:798 machine/models.py:39 part/admin.py:88 +#: part/models.py:1250 plugin/models.py:66 +#: templates/js/translated/company.js:524 #: templates/js/translated/table_filters.js:134 #: templates/js/translated/table_filters.js:226 #: templates/js/translated/table_filters.js:513 @@ -585,230 +605,229 @@ msgstr "" msgid "Active" msgstr "Aktif" -#: InvenTree/serializers.py:445 +#: InvenTree/serializers.py:449 msgid "Is this user account active" -msgstr "" +msgstr "Bu kullanıcı hesabı etkin mi" -#: InvenTree/serializers.py:463 +#: InvenTree/serializers.py:467 msgid "You do not have permission to change this user role." msgstr "Bu kullanıcı rolünü değiştirmek için izniniz yok." -#: InvenTree/serializers.py:475 +#: InvenTree/serializers.py:503 msgid "Only superusers can create new users" msgstr "Sadece süper kullanıcılar yeni kullanıcı oluşturabilir" -#: InvenTree/serializers.py:494 +#: InvenTree/serializers.py:523 msgid "Your account has been created." msgstr "Kullanıcı hesabınız oluşturulmuştur." -#: InvenTree/serializers.py:496 +#: InvenTree/serializers.py:525 msgid "Please use the password reset function to login" msgstr "Giriş yapmak için lütfen şifre sıfırlama fonksiyonunu kullanınız" -#: InvenTree/serializers.py:503 +#: InvenTree/serializers.py:531 msgid "Welcome to InvenTree" msgstr "InvenTree'ye Hoşgeldiniz" -#: InvenTree/serializers.py:561 +#: InvenTree/serializers.py:594 msgid "Invalid value" msgstr "Geçersiz değer" -#: InvenTree/serializers.py:581 importer/models.py:63 +#: InvenTree/serializers.py:614 importer/models.py:64 msgid "Data File" msgstr "Veri Dosyası" -#: InvenTree/serializers.py:582 +#: InvenTree/serializers.py:615 msgid "Select data file for upload" msgstr "Yüklemek istediğiniz dosyayı seçin" -#: InvenTree/serializers.py:599 -msgid "Unsupported file type" -msgstr "Desteklenmeyen dsoya tipi" +#: InvenTree/serializers.py:632 common/files.py:63 +msgid "Unsupported file format" +msgstr "" -#: InvenTree/serializers.py:605 +#: InvenTree/serializers.py:638 msgid "File is too large" msgstr "Dosya boyutu çok büyük" -#: InvenTree/serializers.py:626 +#: InvenTree/serializers.py:659 msgid "No columns found in file" msgstr "Dosyada kolon bulunamadı" -#: InvenTree/serializers.py:629 +#: InvenTree/serializers.py:662 msgid "No data rows found in file" msgstr "Dosyada satır bulunamadı" -#: InvenTree/serializers.py:742 +#: InvenTree/serializers.py:774 msgid "No data rows provided" msgstr "Dosyada satır bulunamadı" -#: InvenTree/serializers.py:745 +#: InvenTree/serializers.py:777 msgid "No data columns supplied" msgstr "Dosyada uygun kolon bulunamadı" -#: InvenTree/serializers.py:812 +#: InvenTree/serializers.py:843 #, python-brace-format msgid "Missing required column: '{name}'" msgstr "Gerekli kolon ismi eksik:'{name}'" -#: InvenTree/serializers.py:821 +#: InvenTree/serializers.py:852 #, python-brace-format msgid "Duplicate column: '{col}'" msgstr "Tekrarlanan kolon ismi:'{col}'" -#: InvenTree/serializers.py:861 +#: InvenTree/serializers.py:891 msgid "Remote Image" msgstr "Uzaktan Görüntüler" -#: InvenTree/serializers.py:862 +#: InvenTree/serializers.py:892 msgid "URL of remote image file" msgstr "Uzaktan görüntü dosya URL'si" -#: InvenTree/serializers.py:880 +#: InvenTree/serializers.py:910 msgid "Downloading images from remote URL is not enabled" +msgstr "Uzak URL'den resim indirmek etkinleştirilmedi" + +#: InvenTree/serializers.py:917 +msgid "Failed to download image from remote URL" msgstr "" -#: InvenTree/status.py:66 part/serializers.py:1246 -msgid "Background worker check failed" -msgstr "Arka plan çalışanı kontrolü başarısız oldu" - -#: InvenTree/status.py:70 -msgid "Email backend not configured" -msgstr "E-posta arka ucu yapılandırılmadı" - -#: InvenTree/status.py:73 -msgid "InvenTree system health checks failed" -msgstr "InvenTree sistem sağlık kontrolü başarısız" - #: InvenTree/templatetags/inventree_extras.py:184 msgid "Unknown database" -msgstr "" +msgstr "Bilinmeyen veritabanı" -#: InvenTree/validators.py:32 InvenTree/validators.py:34 +#: InvenTree/validators.py:32 msgid "Invalid physical unit" -msgstr "" +msgstr "Geçersiz fiziksel birim" -#: InvenTree/validators.py:40 +#: InvenTree/validators.py:38 msgid "Not a valid currency code" msgstr "Geçerli bir para birimi kodu değil" -#: InvenTree/validators.py:118 InvenTree/validators.py:134 +#: InvenTree/validators.py:115 InvenTree/validators.py:131 msgid "Overage value must not be negative" msgstr "Fazlalık değeri negatif olmamalıdır" -#: InvenTree/validators.py:136 +#: InvenTree/validators.py:133 msgid "Overage must not exceed 100%" msgstr "Fazlalık %100'ü geçmemelidir" -#: InvenTree/validators.py:142 +#: InvenTree/validators.py:139 msgid "Invalid value for overage" -msgstr "" +msgstr "Aşım için geçersiz değer" -#: InvenTree/views.py:400 templates/InvenTree/settings/user.html:23 +#: InvenTree/views.py:399 templates/InvenTree/settings/user.html:23 msgid "Edit User Information" msgstr "Kullanıcı Bilgisini Düzenle" -#: InvenTree/views.py:412 templates/InvenTree/settings/user.html:20 +#: InvenTree/views.py:411 templates/InvenTree/settings/user.html:20 msgid "Set Password" msgstr "Şifre Belirle" -#: InvenTree/views.py:434 +#: InvenTree/views.py:433 msgid "Password fields must match" msgstr "Parola alanları eşleşmelidir" -#: InvenTree/views.py:442 +#: InvenTree/views.py:441 msgid "Wrong password provided" -msgstr "" +msgstr "Sağlanan şifre yanlış" -#: InvenTree/views.py:650 templates/navbar.html:160 +#: InvenTree/views.py:645 templates/navbar.html:160 msgid "System Information" msgstr "Sistem Bilgisi" -#: InvenTree/views.py:657 templates/navbar.html:171 +#: InvenTree/views.py:652 templates/navbar.html:171 msgid "About InvenTree" msgstr "InvenTree Hakkında" -#: build/api.py:51 part/api.py:156 stock/api.py:343 -msgid "Cascade" -msgstr "" - -#: build/api.py:64 build/models.py:261 -#: build/templates/build/build_base.html:191 +#: build/api.py:54 build/models.py:262 +#: build/templates/build/build_base.html:192 #: build/templates/build/detail.html:87 msgid "Parent Build" msgstr "Üst Yapım İşi" -#: build/api.py:89 order/api.py:92 templates/js/translated/table_filters.js:101 +#: build/api.py:58 build/api.py:625 order/api.py:396 order/api.py:611 +#: order/api.py:990 order/api.py:1187 +#: templates/js/translated/table_filters.js:372 +msgid "Include Variants" +msgstr "" + +#: build/api.py:93 +msgid "Ancestor Build" +msgstr "Ata Yapım" + +#: build/api.py:112 order/api.py:90 +#: templates/js/translated/table_filters.js:101 #: templates/js/translated/table_filters.js:549 #: templates/js/translated/table_filters.js:633 #: templates/js/translated/table_filters.js:674 msgid "Assigned to me" -msgstr "" +msgstr "Bana atandı" -#: build/api.py:106 build/templates/build/build_base.html:205 +#: build/api.py:129 build/templates/build/build_base.html:206 #: build/templates/build/detail.html:115 #: report/templates/report/inventree_build_order_report.html:152 #: templates/js/translated/table_filters.js:552 msgid "Issued By" msgstr "Veren" -#: build/api.py:125 +#: build/api.py:148 msgid "Assigned To" -msgstr "" +msgstr "Atanılan Kişi" -#: build/api.py:301 +#: build/api.py:310 msgid "Build must be cancelled before it can be deleted" -msgstr "" +msgstr "Yapımın silinebilmesi için önce iptal edilmesi gerekir" -#: build/api.py:345 build/serializers.py:1288 part/models.py:4265 +#: build/api.py:354 build/serializers.py:1342 part/models.py:4322 #: templates/js/translated/bom.js:997 templates/js/translated/bom.js:1037 -#: templates/js/translated/build.js:2702 +#: templates/js/translated/build.js:2711 #: templates/js/translated/table_filters.js:197 #: templates/js/translated/table_filters.js:586 msgid "Consumable" -msgstr "" +msgstr "Sarf Malzemesi" -#: build/api.py:346 build/serializers.py:1289 part/models.py:4259 +#: build/api.py:355 build/serializers.py:1343 part/models.py:4316 #: part/templates/part/upload_bom.html:58 templates/js/translated/bom.js:1001 -#: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2693 +#: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2702 #: templates/js/translated/table_filters.js:193 #: templates/js/translated/table_filters.js:222 #: templates/js/translated/table_filters.js:590 msgid "Optional" -msgstr "" +msgstr "İsteğe Bağlı" -#: build/api.py:347 common/models.py:1489 part/admin.py:91 part/admin.py:428 -#: part/models.py:1154 part/serializers.py:1575 +#: build/api.py:356 common/models.py:1558 part/admin.py:91 part/admin.py:428 +#: part/models.py:1215 part/serializers.py:1633 #: templates/js/translated/bom.js:1639 #: templates/js/translated/table_filters.js:337 #: templates/js/translated/table_filters.js:729 msgid "Assembly" msgstr "Montaj" -#: build/api.py:348 templates/js/translated/table_filters.js:415 +#: build/api.py:357 templates/js/translated/table_filters.js:415 #: templates/js/translated/table_filters.js:582 msgid "Tracked" -msgstr "" +msgstr "İzlenen" -#: build/api.py:349 build/serializers.py:1290 part/models.py:1172 +#: build/api.py:358 build/serializers.py:1344 part/models.py:1233 #: templates/js/translated/table_filters.js:146 #: templates/js/translated/table_filters.js:779 msgid "Testable" -msgstr "" +msgstr "Test Edilebilir" -#: build/api.py:351 part/admin.py:144 templates/js/translated/build.js:1917 -#: templates/js/translated/build.js:2820 -#: templates/js/translated/sales_order.js:1965 +#: build/api.py:360 order/api.py:779 part/admin.py:144 +#: templates/js/translated/build.js:1920 templates/js/translated/build.js:2838 +#: templates/js/translated/sales_order.js:1946 #: templates/js/translated/table_filters.js:574 msgid "Allocated" -msgstr "" +msgstr "Ayrıldı" -#: build/api.py:359 company/models.py:891 company/serializers.py:395 -#: company/templates/company/supplier_part.html:114 +#: build/api.py:368 company/models.py:888 company/serializers.py:399 +#: company/templates/company/supplier_part.html:115 #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:17 -#: templates/js/translated/bom.js:1162 templates/js/translated/build.js:2752 +#: templates/js/translated/bom.js:1162 templates/js/translated/build.js:2770 #: templates/js/translated/index.js:123 -#: templates/js/translated/model_renderers.js:235 +#: templates/js/translated/model_renderers.js:238 #: templates/js/translated/part.js:695 templates/js/translated/part.js:697 #: templates/js/translated/part.js:702 #: templates/js/translated/table_filters.js:347 @@ -816,16 +835,68 @@ msgstr "" msgid "Available" msgstr "Mevcut" -#: build/models.py:86 build/templates/build/build_base.html:9 -#: build/templates/build/build_base.html:27 +#: build/api.py:640 build/models.py:268 build/serializers.py:1330 +#: build/templates/build/build_base.html:106 +#: build/templates/build/detail.html:29 company/models.py:1043 order/api.py:775 +#: order/api.py:1003 order/models.py:1519 order/models.py:1674 +#: order/models.py:1675 part/api.py:1495 part/api.py:1802 part/models.py:419 +#: part/models.py:3177 part/models.py:3321 part/models.py:3469 +#: part/models.py:3490 part/models.py:3512 part/models.py:3648 +#: part/models.py:3995 part/models.py:4158 part/models.py:4288 +#: part/models.py:4654 part/serializers.py:1245 part/serializers.py:1898 +#: part/templates/part/part_app_base.html:8 +#: part/templates/part/part_pricing.html:12 +#: part/templates/part/upload_bom.html:52 +#: report/templates/report/inventree_bill_of_materials_report.html:110 +#: report/templates/report/inventree_bill_of_materials_report.html:137 +#: report/templates/report/inventree_build_order_report.html:109 +#: report/templates/report/inventree_purchase_order_report.html:27 +#: report/templates/report/inventree_return_order_report.html:24 +#: report/templates/report/inventree_sales_order_report.html:27 +#: report/templates/report/inventree_sales_order_shipment_report.html:28 +#: report/templates/report/inventree_stock_location_report.html:102 +#: stock/serializers.py:112 stock/serializers.py:160 stock/serializers.py:456 +#: stock/serializers.py:947 templates/InvenTree/search.html:82 +#: templates/email/build_order_completed.html:17 +#: templates/email/build_order_required_stock.html:17 +#: templates/email/low_stock_notification.html:15 +#: templates/email/overdue_build_order.html:16 +#: templates/js/translated/barcode.js:577 templates/js/translated/bom.js:632 +#: templates/js/translated/bom.js:769 templates/js/translated/bom.js:905 +#: templates/js/translated/build.js:1005 templates/js/translated/build.js:1488 +#: templates/js/translated/build.js:1919 templates/js/translated/build.js:2337 +#: templates/js/translated/build.js:2514 templates/js/translated/company.js:349 +#: templates/js/translated/company.js:1117 +#: templates/js/translated/company.js:1272 +#: templates/js/translated/company.js:1560 templates/js/translated/index.js:109 +#: templates/js/translated/part.js:1950 templates/js/translated/part.js:2022 +#: templates/js/translated/part.js:2330 templates/js/translated/pricing.js:369 +#: templates/js/translated/purchase_order.js:734 +#: templates/js/translated/purchase_order.js:1350 +#: templates/js/translated/purchase_order.js:1902 +#: templates/js/translated/purchase_order.js:2061 +#: templates/js/translated/return_order.js:538 +#: templates/js/translated/return_order.js:708 +#: templates/js/translated/sales_order.js:1199 +#: templates/js/translated/sales_order.js:1608 +#: templates/js/translated/sales_order.js:1813 +#: templates/js/translated/stock.js:682 templates/js/translated/stock.js:848 +#: templates/js/translated/stock.js:1065 templates/js/translated/stock.js:2083 +#: templates/js/translated/stock.js:2942 templates/js/translated/stock.js:3175 +#: templates/js/translated/stock.js:3320 +msgid "Part" +msgstr "Parça" + +#: build/api.py:662 build/models.py:88 build/templates/build/build_base.html:10 +#: build/templates/build/build_base.html:28 #: report/templates/report/inventree_build_order_report.html:105 -#: stock/serializers.py:84 templates/email/build_order_completed.html:16 +#: stock/serializers.py:85 templates/email/build_order_completed.html:16 #: templates/email/overdue_build_order.html:15 -#: templates/js/translated/build.js:1145 templates/js/translated/stock.js:2976 +#: templates/js/translated/build.js:1148 templates/js/translated/stock.js:2977 msgid "Build Order" msgstr "Yapım İşi Emri" -#: build/models.py:87 build/templates/build/build_base.html:13 +#: build/models.py:89 build/templates/build/build_base.html:14 #: build/templates/build/index.html:8 build/templates/build/index.html:12 #: order/templates/order/sales_order_detail.html:111 #: order/templates/order/so_sidebar.html:13 @@ -836,884 +907,841 @@ msgstr "Yapım İşi Emri" msgid "Build Orders" msgstr "Yapım İşi Emirleri" -#: build/models.py:135 +#: build/models.py:136 msgid "Assembly BOM has not been validated" -msgstr "" +msgstr "Montaj malzeme listesi doğrulanmadı" -#: build/models.py:142 +#: build/models.py:143 msgid "Build order cannot be created for an inactive part" -msgstr "" +msgstr "İnaktif bir parça için yapım siparişi oluşturulamaz" -#: build/models.py:149 +#: build/models.py:150 msgid "Build order cannot be created for an unlocked part" -msgstr "" +msgstr "Kilidi açılmış bir parça için yapım siparişi oluşturulamaz" -#: build/models.py:163 +#: build/models.py:164 msgid "Invalid choice for parent build" -msgstr "" +msgstr "Üst yapım için geçersiz seçim" -#: build/models.py:174 order/models.py:239 +#: build/models.py:175 order/models.py:236 msgid "Responsible user or group must be specified" -msgstr "" +msgstr "Sorumlu kullanıcı veya grup belirtilmelidir" -#: build/models.py:180 +#: build/models.py:181 msgid "Build order part cannot be changed" -msgstr "" +msgstr "Yapım siparişi parçası değiştirilemez" -#: build/models.py:241 +#: build/models.py:242 msgid "Build Order Reference" msgstr "Yapım İşi Emri Referansı" -#: build/models.py:242 build/serializers.py:1287 order/models.py:467 -#: order/models.py:978 order/models.py:1373 order/models.py:2135 -#: part/admin.py:414 part/models.py:4280 part/templates/part/upload_bom.html:54 +#: build/models.py:243 build/serializers.py:1341 order/models.py:479 +#: order/models.py:1005 order/models.py:1390 order/models.py:2174 +#: part/admin.py:414 part/models.py:4337 part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_bill_of_materials_report.html:139 #: report/templates/report/inventree_purchase_order_report.html:28 #: report/templates/report/inventree_return_order_report.html:26 #: report/templates/report/inventree_sales_order_report.html:28 #: templates/js/translated/bom.js:770 templates/js/translated/bom.js:973 -#: templates/js/translated/build.js:1011 templates/js/translated/build.js:2685 +#: templates/js/translated/build.js:1014 templates/js/translated/build.js:2694 #: templates/js/translated/order.js:316 templates/js/translated/pricing.js:386 -#: templates/js/translated/purchase_order.js:2135 +#: templates/js/translated/purchase_order.js:2119 #: templates/js/translated/return_order.js:727 -#: templates/js/translated/sales_order.js:1854 +#: templates/js/translated/sales_order.js:1835 msgid "Reference" msgstr "Referans" -#: build/models.py:253 +#: build/models.py:254 msgid "Brief description of the build (optional)" -msgstr "" +msgstr "Yapımın kısa açıklaması (isteğe bağlı)" -#: build/models.py:262 +#: build/models.py:263 msgid "BuildOrder to which this build is allocated" msgstr "Bu yapım işinin tahsis edildiği yapım işi emri" -#: build/models.py:267 build/serializers.py:1278 -#: build/templates/build/build_base.html:105 -#: build/templates/build/detail.html:29 company/models.py:1046 order/api.py:767 -#: order/models.py:1503 order/models.py:1658 order/models.py:1659 -#: part/api.py:1509 part/api.py:1813 part/models.py:424 part/models.py:3126 -#: part/models.py:3270 part/models.py:3418 part/models.py:3439 -#: part/models.py:3461 part/models.py:3597 part/models.py:3937 -#: part/models.py:4100 part/models.py:4231 part/models.py:4592 -#: part/serializers.py:1192 part/serializers.py:1836 -#: part/templates/part/part_app_base.html:8 -#: part/templates/part/part_pricing.html:12 -#: part/templates/part/upload_bom.html:52 -#: report/templates/report/inventree_bill_of_materials_report.html:110 -#: report/templates/report/inventree_bill_of_materials_report.html:137 -#: report/templates/report/inventree_build_order_report.html:109 -#: report/templates/report/inventree_purchase_order_report.html:27 -#: report/templates/report/inventree_return_order_report.html:24 -#: report/templates/report/inventree_sales_order_report.html:27 -#: report/templates/report/inventree_stock_location_report.html:102 -#: stock/serializers.py:111 stock/serializers.py:159 stock/serializers.py:446 -#: stock/serializers.py:916 templates/InvenTree/search.html:82 -#: templates/email/build_order_completed.html:17 -#: templates/email/build_order_required_stock.html:17 -#: templates/email/low_stock_notification.html:15 -#: templates/email/overdue_build_order.html:16 -#: templates/js/translated/barcode.js:577 templates/js/translated/bom.js:632 -#: templates/js/translated/bom.js:769 templates/js/translated/bom.js:905 -#: templates/js/translated/build.js:1002 templates/js/translated/build.js:1485 -#: templates/js/translated/build.js:1916 templates/js/translated/build.js:2334 -#: templates/js/translated/build.js:2507 templates/js/translated/company.js:348 -#: templates/js/translated/company.js:1116 -#: templates/js/translated/company.js:1271 -#: templates/js/translated/company.js:1559 templates/js/translated/index.js:109 -#: templates/js/translated/part.js:1950 templates/js/translated/part.js:2022 -#: templates/js/translated/part.js:2330 templates/js/translated/pricing.js:369 -#: templates/js/translated/purchase_order.js:751 -#: templates/js/translated/purchase_order.js:1367 -#: templates/js/translated/purchase_order.js:1918 -#: templates/js/translated/purchase_order.js:2077 -#: templates/js/translated/return_order.js:538 -#: templates/js/translated/return_order.js:708 -#: templates/js/translated/sales_order.js:300 -#: templates/js/translated/sales_order.js:1233 -#: templates/js/translated/sales_order.js:1634 -#: templates/js/translated/sales_order.js:1832 -#: templates/js/translated/stock.js:682 templates/js/translated/stock.js:848 -#: templates/js/translated/stock.js:1065 templates/js/translated/stock.js:2082 -#: templates/js/translated/stock.js:2941 templates/js/translated/stock.js:3174 -#: templates/js/translated/stock.js:3319 -msgid "Part" -msgstr "Parça" - -#: build/models.py:275 +#: build/models.py:274 msgid "Select part to build" msgstr "Yapım işi için parça seçin" -#: build/models.py:280 +#: build/models.py:279 msgid "Sales Order Reference" msgstr "Satış Emri Referansı" -#: build/models.py:284 +#: build/models.py:283 msgid "SalesOrder to which this build is allocated" msgstr "Bu yapım işinin tahsis edildiği satış emri" -#: build/models.py:289 build/serializers.py:1048 -#: templates/js/translated/build.js:1904 -#: templates/js/translated/sales_order.js:1221 +#: build/models.py:288 build/serializers.py:1092 +#: templates/js/translated/build.js:1907 +#: templates/js/translated/sales_order.js:1187 msgid "Source Location" msgstr "Kaynak Konum" -#: build/models.py:293 +#: build/models.py:292 msgid "Select location to take stock from for this build (leave blank to take from any stock location)" 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:298 +#: build/models.py:297 msgid "Destination Location" msgstr "Hedef Konum" -#: build/models.py:302 +#: build/models.py:301 msgid "Select location where the completed items will be stored" msgstr "Tamamlanmış ögelerin saklanacağı konumu seçiniz" -#: build/models.py:306 +#: build/models.py:305 msgid "Build Quantity" msgstr "Yapım İşi Miktarı" -#: build/models.py:309 +#: build/models.py:308 msgid "Number of stock items to build" msgstr "Yapım işi stok kalemlerinin sayısı" -#: build/models.py:313 +#: build/models.py:312 msgid "Completed items" msgstr "Tamamlanmış ögeler" -#: build/models.py:315 +#: build/models.py:314 msgid "Number of stock items which have been completed" msgstr "Tamamlanan stok kalemlerinin sayısı" -#: build/models.py:319 +#: build/models.py:318 msgid "Build Status" msgstr "Yapım İşi Durumu" -#: build/models.py:323 +#: build/models.py:322 msgid "Build status code" msgstr "Yapım işi durum kodu" -#: build/models.py:332 build/serializers.py:302 build/serializers.py:1198 -#: order/serializers.py:670 stock/models.py:859 stock/serializers.py:76 -#: stock/serializers.py:1562 templates/js/translated/purchase_order.js:1129 +#: build/models.py:331 build/serializers.py:349 build/serializers.py:1243 +#: order/serializers.py:755 stock/models.py:936 stock/serializers.py:77 +#: stock/serializers.py:1593 templates/js/translated/purchase_order.js:1112 #: templates/js/translated/stock.js:1199 msgid "Batch Code" msgstr "Sıra numarası" -#: build/models.py:336 build/serializers.py:303 +#: build/models.py:335 build/serializers.py:350 msgid "Batch code for this build output" msgstr "Yapım işi çıktısı için sıra numarası" -#: build/models.py:339 order/models.py:315 order/serializers.py:126 -#: part/models.py:1229 part/templates/part/part_base.html:319 +#: build/models.py:338 order/models.py:322 order/serializers.py:157 +#: part/models.py:1290 part/templates/part/part_base.html:327 #: templates/js/translated/return_order.js:338 -#: templates/js/translated/sales_order.js:863 +#: templates/js/translated/sales_order.js:822 msgid "Creation Date" msgstr "Oluşturulma tarihi" -#: build/models.py:343 +#: build/models.py:342 msgid "Target completion date" msgstr "Hedef tamamlama tarihi" -#: build/models.py:344 +#: build/models.py:343 msgid "Target date for build completion. Build will be overdue after this date." msgstr "Yapım işinin tamamlanması için hedef tarih. Bu tarihten sonra yapım işi gecikmiş olacak." -#: build/models.py:347 order/models.py:526 order/models.py:2180 -#: templates/js/translated/build.js:2419 +#: build/models.py:346 order/models.py:538 order/models.py:2219 +#: templates/js/translated/build.js:2422 msgid "Completion Date" msgstr "Tamamlama tarihi" -#: build/models.py:353 +#: build/models.py:352 msgid "completed by" msgstr "tamamlayan" -#: build/models.py:361 templates/js/translated/build.js:2379 +#: build/models.py:360 templates/js/translated/build.js:2382 msgid "Issued by" msgstr "Veren" -#: build/models.py:362 +#: build/models.py:361 msgid "User who issued this build order" msgstr "Bu yapım işi emrini veren kullanıcı" -#: build/models.py:370 build/templates/build/build_base.html:212 -#: build/templates/build/detail.html:122 common/models.py:165 order/api.py:142 -#: order/models.py:333 order/templates/order/order_base.html:222 -#: order/templates/order/return_order_base.html:191 -#: order/templates/order/sales_order_base.html:235 part/models.py:1246 -#: part/templates/part/part_base.html:399 +#: build/models.py:369 build/templates/build/build_base.html:213 +#: build/templates/build/detail.html:122 common/models.py:168 order/api.py:140 +#: order/models.py:340 order/templates/order/order_base.html:231 +#: order/templates/order/return_order_base.html:192 +#: order/templates/order/sales_order_base.html:236 part/models.py:1307 +#: part/templates/part/part_base.html:407 #: report/templates/report/inventree_build_order_report.html:158 #: templates/InvenTree/settings/settings_staff_js.html:150 -#: templates/js/translated/build.js:2391 -#: templates/js/translated/purchase_order.js:1833 +#: templates/js/translated/build.js:2394 +#: templates/js/translated/purchase_order.js:1817 #: templates/js/translated/return_order.js:358 #: templates/js/translated/table_filters.js:551 msgid "Responsible" msgstr "Sorumlu" -#: build/models.py:371 +#: build/models.py:370 msgid "User or group responsible for this build order" -msgstr "" +msgstr "Bu yapım siparişinden sorumlu kullanıcı veya grup" -#: build/models.py:376 build/templates/build/detail.html:108 +#: build/models.py:375 build/templates/build/detail.html:108 #: company/templates/company/manufacturer_part.html:107 -#: company/templates/company/supplier_part.html:194 -#: order/templates/order/order_base.html:172 -#: order/templates/order/return_order_base.html:148 -#: order/templates/order/sales_order_base.html:187 -#: part/templates/part/part_base.html:392 stock/models.py:855 -#: stock/templates/stock/item_base.html:200 -#: templates/js/translated/company.js:1019 +#: company/templates/company/supplier_part.html:195 +#: order/templates/order/order_base.html:181 +#: order/templates/order/return_order_base.html:149 +#: order/templates/order/sales_order_base.html:188 +#: part/templates/part/part_base.html:400 stock/models.py:932 +#: stock/templates/stock/item_base.html:197 +#: templates/js/translated/company.js:1020 msgid "External Link" msgstr "Harici Bağlantı" -#: build/models.py:377 common/models.py:3273 part/models.py:1058 -#: stock/models.py:855 +#: build/models.py:376 common/models.py:3334 part/models.py:1119 +#: stock/models.py:932 msgid "Link to external URL" msgstr "Harici URL'ye bağlantı" -#: build/models.py:381 +#: build/models.py:380 msgid "Build Priority" -msgstr "" +msgstr "Yapım Önceliği" -#: build/models.py:384 +#: build/models.py:383 msgid "Priority of this build order" -msgstr "" +msgstr "Bu yapım siparişinin önceliği" -#: build/models.py:391 common/models.py:135 common/models.py:149 -#: order/admin.py:18 order/api.py:128 order/models.py:297 +#: build/models.py:390 common/models.py:138 common/models.py:152 +#: order/admin.py:18 order/api.py:126 order/models.py:304 #: templates/InvenTree/settings/settings_staff_js.html:146 -#: templates/js/translated/build.js:2316 -#: templates/js/translated/purchase_order.js:1780 +#: templates/js/translated/build.js:2319 +#: templates/js/translated/purchase_order.js:1764 #: templates/js/translated/return_order.js:317 -#: templates/js/translated/sales_order.js:842 +#: templates/js/translated/sales_order.js:801 #: templates/js/translated/table_filters.js:47 #: templates/project_code_data.html:6 msgid "Project Code" msgstr "Proje Kodu" -#: build/models.py:392 +#: build/models.py:391 msgid "Project code for this build order" -msgstr "" +msgstr "Bu yapım siparişi için proje kodu" -#: build/models.py:651 build/models.py:778 +#: build/models.py:651 build/models.py:779 msgid "Failed to offload task to complete build allocations" -msgstr "" +msgstr "Yapıma ayrılanları tamamlamak için boşaltma görevi başarısız oldu" #: build/models.py:673 #, python-brace-format msgid "Build order {build} has been completed" -msgstr "" +msgstr "{build} yapım siparişi tamamlandı" #: build/models.py:679 msgid "A build order has been completed" -msgstr "" +msgstr "Bir yapım siparişi tamamlandı" -#: build/models.py:967 build/models.py:1055 +#: build/models.py:858 build/serializers.py:393 +msgid "Serial numbers must be provided for trackable parts" +msgstr "İzlenebilir parçalar için seri numaraları sağlanmalıdır" + +#: build/models.py:969 build/models.py:1058 msgid "No build output specified" msgstr "Yapım işi çıktısı belirtilmedi" -#: build/models.py:970 +#: build/models.py:972 msgid "Build output is already completed" msgstr "Yapım işi çıktısı zaten tamamlanmış" -#: build/models.py:973 +#: build/models.py:975 msgid "Build output does not match Build Order" msgstr "Yapım işi çıktısı, yapım işi emri ile eşleşmiyor" -#: build/models.py:1059 build/serializers.py:235 build/serializers.py:284 -#: build/serializers.py:915 order/models.py:564 order/serializers.py:499 -#: order/serializers.py:665 part/serializers.py:1569 part/serializers.py:1999 -#: stock/models.py:700 stock/models.py:1520 stock/serializers.py:669 +#: build/models.py:1062 build/serializers.py:282 build/serializers.py:331 +#: build/serializers.py:959 order/models.py:586 order/serializers.py:584 +#: order/serializers.py:750 part/serializers.py:1627 part/serializers.py:2060 +#: stock/models.py:777 stock/models.py:1609 stock/serializers.py:696 msgid "Quantity must be greater than zero" -msgstr "" +msgstr "Miktar sıfırdan büyük olmalıdır" -#: build/models.py:1064 build/serializers.py:240 +#: build/models.py:1067 build/serializers.py:287 msgid "Quantity cannot be greater than the output quantity" -msgstr "" +msgstr "Miktar çıktı miktarından büyük olamaz" -#: build/models.py:1124 build/serializers.py:563 +#: build/models.py:1127 build/serializers.py:607 #, python-brace-format msgid "Build output {serial} has not passed all required tests" -msgstr "" +msgstr "{serial} yapım çıktısı gerekli testleri geçemedi" -#: build/models.py:1465 +#: build/models.py:1482 msgid "Build Order Line Item" -msgstr "" +msgstr "Yapım Siparişi Satır Ögesi" -#: build/models.py:1490 +#: build/models.py:1507 msgid "Build object" -msgstr "" +msgstr "Nesne yap" -#: build/models.py:1504 build/models.py:1760 build/serializers.py:222 -#: build/serializers.py:269 build/serializers.py:1295 -#: build/templates/build/build_base.html:110 -#: build/templates/build/detail.html:34 common/models.py:2579 -#: order/models.py:1356 order/models.py:2041 order/serializers.py:1460 +#: build/models.py:1521 build/models.py:1787 build/serializers.py:269 +#: build/serializers.py:316 build/serializers.py:1349 +#: build/templates/build/build_base.html:111 +#: build/templates/build/detail.html:34 common/models.py:2643 +#: order/models.py:1373 order/models.py:2074 order/serializers.py:1586 #: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:413 -#: part/forms.py:48 part/models.py:3284 part/models.py:4253 -#: part/templates/part/part_pricing.html:16 +#: part/forms.py:48 part/models.py:3335 part/models.py:4310 +#: part/serializers.py:265 part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_bill_of_materials_report.html:138 #: report/templates/report/inventree_build_order_report.html:113 #: report/templates/report/inventree_purchase_order_report.html:29 #: report/templates/report/inventree_sales_order_report.html:29 +#: report/templates/report/inventree_sales_order_shipment_report.html:47 +#: report/templates/report/inventree_sales_order_shipment_report.html:49 #: report/templates/report/inventree_stock_location_report.html:104 #: report/templates/report/inventree_test_report.html:90 -#: report/templates/report/inventree_test_report.html:169 stock/admin.py:159 -#: stock/serializers.py:127 stock/serializers.py:167 stock/serializers.py:660 -#: stock/templates/stock/item_base.html:287 -#: stock/templates/stock/item_base.html:295 -#: stock/templates/stock/item_base.html:342 +#: report/templates/report/inventree_test_report.html:169 stock/admin.py:160 +#: stock/serializers.py:128 stock/serializers.py:168 stock/serializers.py:687 +#: stock/templates/stock/item_base.html:284 +#: stock/templates/stock/item_base.html:292 +#: stock/templates/stock/item_base.html:339 #: templates/email/build_order_completed.html:18 #: templates/js/translated/barcode.js:579 templates/js/translated/bom.js:771 -#: templates/js/translated/bom.js:981 templates/js/translated/build.js:522 -#: templates/js/translated/build.js:737 templates/js/translated/build.js:1542 -#: templates/js/translated/build.js:1919 templates/js/translated/build.js:2529 -#: templates/js/translated/company.js:1818 -#: templates/js/translated/model_renderers.js:237 +#: templates/js/translated/bom.js:981 templates/js/translated/build.js:525 +#: templates/js/translated/build.js:740 templates/js/translated/build.js:1545 +#: templates/js/translated/build.js:1922 templates/js/translated/build.js:2536 +#: templates/js/translated/company.js:1819 +#: templates/js/translated/model_renderers.js:240 #: templates/js/translated/order.js:329 templates/js/translated/part.js:968 -#: templates/js/translated/part.js:1818 templates/js/translated/part.js:3360 +#: templates/js/translated/part.js:1818 templates/js/translated/part.js:3376 #: templates/js/translated/pricing.js:381 #: templates/js/translated/pricing.js:474 #: templates/js/translated/pricing.js:522 #: templates/js/translated/pricing.js:616 -#: templates/js/translated/purchase_order.js:754 -#: templates/js/translated/purchase_order.js:1922 -#: templates/js/translated/purchase_order.js:2141 -#: templates/js/translated/sales_order.js:317 -#: templates/js/translated/sales_order.js:1235 -#: templates/js/translated/sales_order.js:1554 -#: templates/js/translated/sales_order.js:1644 -#: templates/js/translated/sales_order.js:1734 -#: templates/js/translated/sales_order.js:1860 +#: templates/js/translated/purchase_order.js:737 +#: templates/js/translated/purchase_order.js:1906 +#: templates/js/translated/purchase_order.js:2125 +#: templates/js/translated/sales_order.js:1201 +#: templates/js/translated/sales_order.js:1520 +#: templates/js/translated/sales_order.js:1625 +#: templates/js/translated/sales_order.js:1715 +#: templates/js/translated/sales_order.js:1841 #: templates/js/translated/stock.js:570 templates/js/translated/stock.js:708 -#: templates/js/translated/stock.js:879 templates/js/translated/stock.js:3105 -#: templates/js/translated/stock.js:3188 +#: templates/js/translated/stock.js:879 templates/js/translated/stock.js:3106 +#: templates/js/translated/stock.js:3189 msgid "Quantity" msgstr "Miktar" -#: build/models.py:1505 +#: build/models.py:1522 msgid "Required quantity for build order" -msgstr "" +msgstr "Yapım siparişi için gereken miktar" -#: build/models.py:1585 +#: build/models.py:1602 msgid "Build item must specify a build output, as master part is marked as trackable" 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:1594 +#: build/models.py:1611 #, python-brace-format msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" -msgstr "" +msgstr "Ayrılan miktar ({q}) mevcut stok miktarını ({a}) aşmamalı" -#: build/models.py:1604 order/models.py:1992 +#: build/models.py:1628 order/models.py:2025 msgid "Stock item is over-allocated" msgstr "Stok kalemi fazladan tahsis edilmiş" -#: build/models.py:1610 order/models.py:1995 +#: build/models.py:1634 order/models.py:2028 msgid "Allocation quantity must be greater than zero" msgstr "Tahsis edilen miktar sıfırdan büyük olmalıdır" -#: build/models.py:1616 +#: build/models.py:1640 msgid "Quantity must be 1 for serialized stock" msgstr "Seri numaralı stok için miktar bir olmalı" -#: build/models.py:1675 +#: build/models.py:1699 msgid "Selected stock item does not match BOM line" -msgstr "" +msgstr "Seçilen stok ögesi malzeme listesi satırıyla eşleşmiyor" -#: build/models.py:1747 build/serializers.py:895 order/serializers.py:1297 -#: order/serializers.py:1318 stock/models.py:376 stock/serializers.py:93 -#: stock/serializers.py:763 stock/serializers.py:1281 stock/serializers.py:1393 -#: stock/templates/stock/item_base.html:10 -#: stock/templates/stock/item_base.html:23 -#: stock/templates/stock/item_base.html:194 -#: templates/js/translated/build.js:1918 -#: templates/js/translated/sales_order.js:301 -#: templates/js/translated/sales_order.js:1234 -#: templates/js/translated/sales_order.js:1535 -#: templates/js/translated/sales_order.js:1540 -#: templates/js/translated/sales_order.js:1641 -#: templates/js/translated/sales_order.js:1728 +#: build/models.py:1774 build/serializers.py:939 order/serializers.py:1423 +#: order/serializers.py:1444 +#: report/templates/report/inventree_sales_order_shipment_report.html:29 +#: stock/models.py:382 stock/serializers.py:94 stock/serializers.py:794 +#: stock/serializers.py:1312 stock/serializers.py:1424 +#: stock/templates/stock/item_base.html:11 +#: stock/templates/stock/item_base.html:24 +#: stock/templates/stock/item_base.html:191 +#: templates/js/translated/build.js:1921 +#: templates/js/translated/sales_order.js:1200 +#: templates/js/translated/sales_order.js:1501 +#: templates/js/translated/sales_order.js:1506 +#: templates/js/translated/sales_order.js:1622 +#: templates/js/translated/sales_order.js:1709 #: templates/js/translated/stock.js:683 templates/js/translated/stock.js:849 -#: templates/js/translated/stock.js:3061 +#: templates/js/translated/stock.js:3062 msgid "Stock Item" msgstr "Stok Kalemi" -#: build/models.py:1748 +#: build/models.py:1775 msgid "Source stock item" msgstr "Kaynak stok kalemi" -#: build/models.py:1761 +#: build/models.py:1788 msgid "Stock quantity to allocate to build" msgstr "Yapım işi için tahsis edilen stok miktarı" -#: build/models.py:1769 +#: build/models.py:1796 msgid "Install into" msgstr "Kurulduğu yer" -#: build/models.py:1770 +#: build/models.py:1797 msgid "Destination stock item" msgstr "Hedef stok kalemi" -#: build/serializers.py:91 +#: build/serializers.py:108 msgid "Build Level" -msgstr "" +msgstr "Yapım Düzeyi" -#: build/serializers.py:99 build/serializers.py:1190 build/serializers.py:1279 -#: part/admin.py:41 part/admin.py:408 part/models.py:4102 part/stocktake.py:219 -#: stock/admin.py:156 +#: build/serializers.py:116 build/serializers.py:1235 build/serializers.py:1331 +#: part/admin.py:41 part/admin.py:408 part/models.py:4160 part/stocktake.py:219 +#: stock/admin.py:157 msgid "Part Name" -msgstr "" +msgstr "Parça Adı" -#: build/serializers.py:111 +#: build/serializers.py:128 msgid "Project Code Label" -msgstr "" +msgstr "Proje Kodu Etiketi" -#: build/serializers.py:172 build/serializers.py:924 -#: templates/js/translated/build.js:1042 templates/js/translated/build.js:1495 +#: build/serializers.py:134 +msgid "Create Child Builds" +msgstr "Alt Yapımlar Oluştur" + +#: build/serializers.py:135 +msgid "Automatically generate child build orders" +msgstr "Alt yapım siparişlerini otomatik olarak -üret" + +#: build/serializers.py:219 build/serializers.py:968 +#: templates/js/translated/build.js:1045 templates/js/translated/build.js:1498 msgid "Build Output" -msgstr "" +msgstr "Yapım Çıktısı" -#: build/serializers.py:184 +#: build/serializers.py:231 msgid "Build output does not match the parent build" -msgstr "" +msgstr "Yapım çıktısı üst yapım ile eşleşmiyor" -#: build/serializers.py:188 +#: build/serializers.py:235 msgid "Output part does not match BuildOrder part" -msgstr "" +msgstr "Çıktı parçası Yapım Siparişi parçası ile eşleşmiyor" -#: build/serializers.py:192 +#: build/serializers.py:239 msgid "This build output has already been completed" -msgstr "" +msgstr "Bu yapım çıktısı zaten tamamlandı" -#: build/serializers.py:203 +#: build/serializers.py:250 msgid "This build output is not fully allocated" -msgstr "" +msgstr "Bu yapım çıktısı tam ayrılmadı" -#: build/serializers.py:223 build/serializers.py:270 +#: build/serializers.py:270 build/serializers.py:317 msgid "Enter quantity for build output" msgstr "Yapım işi çıktısı için miktarını girin" -#: build/serializers.py:291 +#: build/serializers.py:338 msgid "Integer quantity required for trackable parts" -msgstr "" +msgstr "İzlenebilir parçalar için tamsayı miktar gerekir" -#: build/serializers.py:294 +#: build/serializers.py:341 msgid "Integer quantity required, as the bill of materials contains trackable parts" -msgstr "" +msgstr "Malzeme listesi izlenebilir parçalar içerdiğinden tamsayı miktar gereklidir" -#: build/serializers.py:309 order/serializers.py:678 order/serializers.py:1464 -#: stock/serializers.py:680 templates/js/translated/purchase_order.js:1154 +#: build/serializers.py:356 order/serializers.py:763 order/serializers.py:1590 +#: stock/serializers.py:707 templates/js/translated/purchase_order.js:1137 #: templates/js/translated/stock.js:373 templates/js/translated/stock.js:571 msgid "Serial Numbers" msgstr "Seri Numaraları" -#: build/serializers.py:310 +#: build/serializers.py:357 msgid "Enter serial numbers for build outputs" msgstr "Yapım işi çıktısı için seri numaraları girin" -#: build/serializers.py:315 build/serializers.py:456 build/serializers.py:528 -#: order/serializers.py:654 order/serializers.py:778 order/serializers.py:1781 -#: part/serializers.py:1212 stock/serializers.py:102 stock/serializers.py:691 -#: stock/serializers.py:851 stock/serializers.py:977 stock/serializers.py:1425 -#: stock/serializers.py:1681 stock/templates/stock/item_base.html:394 +#: build/serializers.py:362 build/serializers.py:500 build/serializers.py:572 +#: order/serializers.py:739 order/serializers.py:880 order/serializers.py:1933 +#: part/serializers.py:1265 stock/serializers.py:103 stock/serializers.py:718 +#: stock/serializers.py:882 stock/serializers.py:1008 stock/serializers.py:1456 +#: stock/serializers.py:1712 stock/templates/stock/item_base.html:391 #: templates/js/translated/barcode.js:578 -#: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1032 -#: templates/js/translated/build.js:1174 templates/js/translated/build.js:2544 -#: templates/js/translated/purchase_order.js:1210 -#: templates/js/translated/purchase_order.js:1320 -#: templates/js/translated/sales_order.js:1547 -#: templates/js/translated/sales_order.js:1655 -#: templates/js/translated/sales_order.js:1663 -#: templates/js/translated/sales_order.js:1742 +#: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1035 +#: templates/js/translated/build.js:1177 templates/js/translated/build.js:2551 +#: templates/js/translated/purchase_order.js:1193 +#: templates/js/translated/purchase_order.js:1303 +#: templates/js/translated/sales_order.js:1513 +#: templates/js/translated/sales_order.js:1636 +#: templates/js/translated/sales_order.js:1644 +#: templates/js/translated/sales_order.js:1723 #: templates/js/translated/stock.js:684 templates/js/translated/stock.js:850 -#: templates/js/translated/stock.js:1067 templates/js/translated/stock.js:2286 -#: templates/js/translated/stock.js:2955 +#: templates/js/translated/stock.js:1067 templates/js/translated/stock.js:2287 +#: templates/js/translated/stock.js:2956 msgid "Location" msgstr "Konum" -#: build/serializers.py:316 +#: build/serializers.py:363 msgid "Stock location for build output" -msgstr "" +msgstr "Yapım çıktısı için stok konumu" -#: build/serializers.py:330 +#: build/serializers.py:377 msgid "Auto Allocate Serial Numbers" -msgstr "" +msgstr "Seri Numaralarını Otomatik Ayır" -#: build/serializers.py:331 +#: build/serializers.py:378 msgid "Automatically allocate required items with matching serial numbers" -msgstr "" +msgstr "Gerekli ögeleri eşleşen seri numaralarıyla otomatik ayır" -#: build/serializers.py:346 -msgid "Serial numbers must be provided for trackable parts" -msgstr "" - -#: build/serializers.py:371 stock/api.py:1031 +#: build/serializers.py:415 order/serializers.py:858 stock/api.py:1017 +#: stock/models.py:1632 msgid "The following serial numbers already exist or are invalid" -msgstr "" +msgstr "Şu seri numaraları zaten varlar veya geçersizler" -#: build/serializers.py:418 build/serializers.py:480 build/serializers.py:569 +#: build/serializers.py:462 build/serializers.py:524 build/serializers.py:613 msgid "A list of build outputs must be provided" -msgstr "" +msgstr "Bir yapım çıktıları listesi sağlanmalıdır" -#: build/serializers.py:457 +#: build/serializers.py:501 msgid "Stock location for scrapped outputs" -msgstr "" +msgstr "Hurdaya ayrılan çıktılar için stok konumu" -#: build/serializers.py:463 +#: build/serializers.py:507 msgid "Discard Allocations" -msgstr "" +msgstr "Ayırmaları İptal Et" -#: build/serializers.py:464 +#: build/serializers.py:508 msgid "Discard any stock allocations for scrapped outputs" -msgstr "" +msgstr "Hurdaya ayrılan çıktılar için yapılan tüm stok ayırmalarını iptal et" -#: build/serializers.py:469 +#: build/serializers.py:513 msgid "Reason for scrapping build output(s)" -msgstr "" +msgstr "Yapım çıktı(larını) hurdaya ayırma nedeni" -#: build/serializers.py:529 +#: build/serializers.py:573 msgid "Location for completed build outputs" -msgstr "" +msgstr "Tamamlanan yapım çıktıları içi konum" -#: build/serializers.py:535 build/templates/build/build_base.html:159 -#: build/templates/build/detail.html:62 order/models.py:476 -#: order/models.py:1002 order/models.py:2159 order/serializers.py:686 -#: stock/admin.py:164 stock/serializers.py:1028 stock/serializers.py:1569 -#: stock/templates/stock/item_base.html:427 -#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2363 -#: templates/js/translated/purchase_order.js:1371 -#: templates/js/translated/purchase_order.js:1792 +#: build/serializers.py:579 build/templates/build/build_base.html:160 +#: build/templates/build/detail.html:62 order/models.py:488 +#: order/models.py:1029 order/models.py:2198 order/serializers.py:771 +#: stock/admin.py:165 stock/serializers.py:581 stock/serializers.py:1059 +#: stock/serializers.py:1600 stock/templates/stock/item_base.html:424 +#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2366 +#: templates/js/translated/purchase_order.js:1354 +#: templates/js/translated/purchase_order.js:1776 #: templates/js/translated/return_order.js:330 -#: templates/js/translated/sales_order.js:855 -#: templates/js/translated/stock.js:2261 templates/js/translated/stock.js:3079 -#: templates/js/translated/stock.js:3204 +#: templates/js/translated/sales_order.js:814 +#: templates/js/translated/stock.js:2262 templates/js/translated/stock.js:3080 +#: templates/js/translated/stock.js:3205 msgid "Status" msgstr "Durum" -#: build/serializers.py:541 +#: build/serializers.py:585 msgid "Accept Incomplete Allocation" -msgstr "" +msgstr "Tamamlanmamış Ayırmayı Onayla" -#: build/serializers.py:542 +#: build/serializers.py:586 msgid "Complete outputs if stock has not been fully allocated" -msgstr "" +msgstr "Stok tamamen ayrılmamışsa çıktıları tamamla" -#: build/serializers.py:654 +#: build/serializers.py:698 msgid "Consume Allocated Stock" -msgstr "" +msgstr "Ayrılan Stoku Tüket" -#: build/serializers.py:655 +#: build/serializers.py:699 msgid "Consume any stock which has already been allocated to this build" -msgstr "" +msgstr "Bu yapım için zaten ayrılmış olan tüm stokları tüket" -#: build/serializers.py:661 +#: build/serializers.py:705 msgid "Remove Incomplete Outputs" -msgstr "" +msgstr "Tamamlanmamış Çıktıları Kaldır" -#: build/serializers.py:662 +#: build/serializers.py:706 msgid "Delete any build outputs which have not been completed" -msgstr "" - -#: build/serializers.py:689 -msgid "Not permitted" -msgstr "" - -#: build/serializers.py:690 -msgid "Accept as consumed by this build order" -msgstr "" - -#: build/serializers.py:691 -msgid "Deallocate before completing this build order" -msgstr "" - -#: build/serializers.py:721 -msgid "Overallocated Stock" -msgstr "" - -#: build/serializers.py:723 -msgid "How do you want to handle extra stock items assigned to the build order" -msgstr "" +msgstr "Tamamlanmamış tüm yapım çıktılarını sil" #: build/serializers.py:733 +msgid "Not permitted" +msgstr "İzin verilmedi" + +#: build/serializers.py:734 +msgid "Accept as consumed by this build order" +msgstr "Bu yapım siparişi tarafından tüketildi olarak kabul et" + +#: build/serializers.py:735 +msgid "Deallocate before completing this build order" +msgstr "Bu yapım emrini tamamlamadan önce iade et" + +#: build/serializers.py:765 +msgid "Overallocated Stock" +msgstr "Fazla Ayrılmış Stok" + +#: build/serializers.py:767 +msgid "How do you want to handle extra stock items assigned to the build order" +msgstr "Yapım siparişine atanan ekstra stok öğelerini nasıl ele almak istersiniz" + +#: build/serializers.py:777 msgid "Some stock items have been overallocated" -msgstr "" +msgstr "Bazı stok ögeleri fazla ayrıldı" -#: build/serializers.py:738 +#: build/serializers.py:782 msgid "Accept Unallocated" -msgstr "" +msgstr "Ayrılmamışı Kabul Et" -#: build/serializers.py:739 +#: build/serializers.py:783 msgid "Accept that stock items have not been fully allocated to this build order" -msgstr "" +msgstr "Stok öğelerinin bu yapım siparişine tam olarak ayrılmadığını kabul edin" -#: build/serializers.py:749 templates/js/translated/build.js:316 +#: build/serializers.py:793 templates/js/translated/build.js:319 msgid "Required stock has not been fully allocated" msgstr "Gerekli stok tamamen tahsis edilemedi" -#: build/serializers.py:754 order/serializers.py:345 order/serializers.py:1365 +#: build/serializers.py:798 order/serializers.py:430 order/serializers.py:1491 msgid "Accept Incomplete" -msgstr "" +msgstr "Tamamlanmamış Kabul et" -#: build/serializers.py:755 +#: build/serializers.py:799 msgid "Accept that the required number of build outputs have not been completed" -msgstr "" +msgstr "Gerekli sayıda derleme çıktısının tamamlanmadığını kabul edin" -#: build/serializers.py:765 templates/js/translated/build.js:320 +#: build/serializers.py:809 templates/js/translated/build.js:323 msgid "Required build quantity has not been completed" msgstr "Gerekli yapım işi miktarı tamamlanmadı" -#: build/serializers.py:774 -msgid "Build order has open child build orders" -msgstr "" - -#: build/serializers.py:777 -msgid "Build order must be in production state" -msgstr "" - -#: build/serializers.py:780 templates/js/translated/build.js:304 -msgid "Build order has incomplete outputs" -msgstr "" - #: build/serializers.py:818 +msgid "Build order has open child build orders" +msgstr "Yapım siparişinin açık alt yapım emirleri var" + +#: build/serializers.py:821 +msgid "Build order must be in production state" +msgstr "Yapım siparişi üretim durumunda olmalıdır" + +#: build/serializers.py:824 templates/js/translated/build.js:307 +msgid "Build order has incomplete outputs" +msgstr "Yapım siparişinin tamamlanmamış çıktıları var" + +#: build/serializers.py:862 msgid "Build Line" -msgstr "" - -#: build/serializers.py:828 -msgid "Build output" -msgstr "" - -#: build/serializers.py:836 -msgid "Build output must point to the same build" -msgstr "" +msgstr "Yapım Satırı" #: build/serializers.py:872 +msgid "Build output" +msgstr "Yapım çıktısı" + +#: build/serializers.py:880 +msgid "Build output must point to the same build" +msgstr "Yapım çıktısı aynı yapımı göstermelidir" + +#: build/serializers.py:916 msgid "Build Line Item" -msgstr "" +msgstr "Yapım Satırı Ögesi" -#: build/serializers.py:886 +#: build/serializers.py:930 msgid "bom_item.part must point to the same part as the build order" -msgstr "" +msgstr "bom_item.part yapım siparişi aynı olan parçayı göstermelidir" -#: build/serializers.py:901 stock/serializers.py:1294 +#: build/serializers.py:945 stock/serializers.py:1325 msgid "Item must be in stock" -msgstr "" +msgstr "Öge stokta olmalıdır" -#: build/serializers.py:949 order/serializers.py:1351 +#: build/serializers.py:993 order/serializers.py:1477 #, python-brace-format msgid "Available quantity ({q}) exceeded" -msgstr "" +msgstr "Mevcut miktar ({q}) aşıldı" -#: build/serializers.py:955 +#: build/serializers.py:999 msgid "Build output must be specified for allocation of tracked parts" -msgstr "" +msgstr "İzlenen parçaların ayrılması için yapım çıktısı belirtilmelidir" -#: build/serializers.py:962 +#: build/serializers.py:1006 msgid "Build output cannot be specified for allocation of untracked parts" -msgstr "" +msgstr "İzlenmeyen parçaların ayrılması için yapım çıktısı belirlenemez" -#: build/serializers.py:986 order/serializers.py:1610 +#: build/serializers.py:1030 order/serializers.py:1750 msgid "Allocation items must be provided" -msgstr "" +msgstr "Ayrılma ögeleri sağlanmalıdır" -#: build/serializers.py:1049 +#: build/serializers.py:1093 msgid "Stock location where parts are to be sourced (leave blank to take from any location)" -msgstr "" +msgstr "Parçaların alınacağı stok konumu (herhangi bir konumdan almak için boş bırakın)" -#: build/serializers.py:1057 +#: build/serializers.py:1101 msgid "Exclude Location" -msgstr "" +msgstr "Konum Çıkar" -#: build/serializers.py:1058 +#: build/serializers.py:1102 msgid "Exclude stock items from this selected location" -msgstr "" +msgstr "Bu seçilen konumdan stok ögelerini içerme" -#: build/serializers.py:1063 +#: build/serializers.py:1107 msgid "Interchangeable Stock" -msgstr "" +msgstr "Birbirinin Yerine Kullanılabilir Stok" -#: build/serializers.py:1064 +#: build/serializers.py:1108 msgid "Stock items in multiple locations can be used interchangeably" -msgstr "" +msgstr "Birden çok konumdaki stok ögeleri birbirinin yerine kullanılabilir" -#: build/serializers.py:1069 +#: build/serializers.py:1113 msgid "Substitute Stock" -msgstr "" +msgstr "Yedek Stok" -#: build/serializers.py:1070 +#: build/serializers.py:1114 msgid "Allow allocation of substitute parts" -msgstr "" +msgstr "Yedek parçaların ayrılmasına izin ver" -#: build/serializers.py:1075 +#: build/serializers.py:1119 msgid "Optional Items" -msgstr "" +msgstr "İsteğe Bağlı Ögeler" -#: build/serializers.py:1076 +#: build/serializers.py:1120 msgid "Allocate optional BOM items to build order" -msgstr "" +msgstr "Sipariş yapmak için isteğe bağlı ML ögelerini ayır" -#: build/serializers.py:1098 +#: build/serializers.py:1143 msgid "Failed to start auto-allocation task" -msgstr "" +msgstr "Otomatik ayırma görevini başlatma başarısız oldu" -#: build/serializers.py:1181 +#: build/serializers.py:1226 stock/serializers.py:585 msgid "Supplier Part Number" -msgstr "" +msgstr "Sağlayıcı Parça Numarası" -#: build/serializers.py:1182 company/models.py:506 +#: build/serializers.py:1227 company/models.py:503 stock/serializers.py:591 msgid "Manufacturer Part Number" msgstr "Üretici Parça Numarası" -#: build/serializers.py:1183 stock/admin.py:53 stock/admin.py:175 -#: stock/serializers.py:457 +#: build/serializers.py:1228 stock/admin.py:53 stock/admin.py:176 +#: stock/serializers.py:467 msgid "Location Name" -msgstr "" +msgstr "Konum Adı" -#: build/serializers.py:1184 +#: build/serializers.py:1229 build/serializers.py:1327 msgid "Build Reference" -msgstr "" +msgstr "Yapım Referansı" -#: build/serializers.py:1185 +#: build/serializers.py:1230 msgid "BOM Reference" -msgstr "" +msgstr "ML Referansı" -#: build/serializers.py:1186 company/models.py:852 -#: company/templates/company/supplier_part.html:160 order/serializers.py:690 -#: stock/admin.py:228 stock/models.py:818 stock/serializers.py:1579 -#: stock/templates/stock/item_base.html:240 -#: templates/js/translated/company.js:1646 -#: templates/js/translated/purchase_order.js:1169 -#: templates/js/translated/purchase_order.js:1332 +#: build/serializers.py:1231 company/models.py:849 +#: company/templates/company/supplier_part.html:161 order/serializers.py:775 +#: stock/admin.py:229 stock/models.py:895 stock/serializers.py:1610 +#: stock/templates/stock/item_base.html:237 +#: templates/js/translated/company.js:1647 +#: templates/js/translated/purchase_order.js:1152 +#: templates/js/translated/purchase_order.js:1315 #: templates/js/translated/stock.js:1214 templates/js/translated/stock.js:1246 -#: templates/js/translated/stock.js:2509 +#: templates/js/translated/stock.js:2510 msgid "Packaging" msgstr "Paketleme" -#: build/serializers.py:1189 part/admin.py:39 part/admin.py:398 -#: part/models.py:4101 part/stocktake.py:218 stock/admin.py:152 +#: build/serializers.py:1234 part/admin.py:39 part/admin.py:398 +#: part/models.py:4159 part/stocktake.py:218 stock/admin.py:153 msgid "Part ID" -msgstr "" +msgstr "Parça ID" -#: build/serializers.py:1191 build/serializers.py:1280 part/admin.py:402 -#: part/models.py:4103 +#: build/serializers.py:1236 build/serializers.py:1332 part/admin.py:402 +#: part/models.py:4161 msgid "Part IPN" -msgstr "" +msgstr "Parça DPN" -#: build/serializers.py:1192 build/serializers.py:1282 part/admin.py:45 +#: build/serializers.py:1237 build/serializers.py:1334 part/admin.py:45 #: part/stocktake.py:220 msgid "Part Description" -msgstr "" +msgstr "Parça Açıklaması" -#: build/serializers.py:1195 +#: build/serializers.py:1240 msgid "BOM Part ID" -msgstr "" +msgstr "ML Parça Kimliği" -#: build/serializers.py:1196 +#: build/serializers.py:1241 msgid "BOM Part Name" -msgstr "" +msgstr "ML Parça Adı" -#: build/serializers.py:1199 +#: build/serializers.py:1244 #: report/templates/report/inventree_return_order_report.html:25 -#: report/templates/report/inventree_test_report.html:88 stock/models.py:845 -#: stock/serializers.py:151 stock/templates/stock/item_base.html:311 -#: templates/js/translated/build.js:520 templates/js/translated/build.js:1540 -#: templates/js/translated/build.js:2527 -#: templates/js/translated/model_renderers.js:231 +#: report/templates/report/inventree_sales_order_shipment_report.html:45 +#: report/templates/report/inventree_test_report.html:88 stock/models.py:922 +#: stock/serializers.py:152 stock/templates/stock/item_base.html:308 +#: templates/js/translated/build.js:523 templates/js/translated/build.js:1543 +#: templates/js/translated/build.js:2534 +#: templates/js/translated/model_renderers.js:234 #: templates/js/translated/return_order.js:539 #: templates/js/translated/return_order.js:722 -#: templates/js/translated/sales_order.js:315 -#: templates/js/translated/sales_order.js:1647 -#: templates/js/translated/sales_order.js:1732 +#: templates/js/translated/sales_order.js:1628 +#: templates/js/translated/sales_order.js:1713 #: templates/js/translated/stock.js:602 msgid "Serial Number" msgstr "Seri Numara" -#: build/serializers.py:1212 stock/serializers.py:593 -#: templates/js/translated/build.js:1017 templates/js/translated/build.js:1164 -#: templates/js/translated/build.js:2516 +#: build/serializers.py:1257 stock/serializers.py:620 +#: templates/js/translated/build.js:1020 templates/js/translated/build.js:1167 +#: templates/js/translated/build.js:2523 msgid "Allocated Quantity" -msgstr "" +msgstr "Ayrılan Miktar" -#: build/serializers.py:1213 stock/templates/stock/item_base.html:340 +#: build/serializers.py:1258 stock/templates/stock/item_base.html:337 msgid "Available Quantity" -msgstr "" +msgstr "Mavcut Miktar" -#: build/serializers.py:1283 +#: build/serializers.py:1335 msgid "Part Category ID" -msgstr "" +msgstr "Parça Sınıfı Kimliği" -#: build/serializers.py:1284 +#: build/serializers.py:1336 msgid "Part Category Name" -msgstr "" +msgstr "Parça Sınıfı Adı" -#: build/serializers.py:1291 common/models.py:1513 part/admin.py:113 -#: part/models.py:1166 templates/js/translated/table_filters.js:150 +#: build/serializers.py:1345 common/models.py:1582 part/admin.py:113 +#: part/models.py:1227 templates/js/translated/build.js:2738 +#: templates/js/translated/table_filters.js:150 #: templates/js/translated/table_filters.js:230 #: templates/js/translated/table_filters.js:783 msgid "Trackable" msgstr "Takip Edilebilir" -#: build/serializers.py:1292 +#: build/serializers.py:1346 msgid "Inherited" -msgstr "" +msgstr "Miras Alındı" -#: build/serializers.py:1293 part/models.py:4313 +#: build/serializers.py:1347 part/models.py:4370 #: part/templates/part/upload_bom.html:56 templates/js/translated/bom.js:1046 -#: templates/js/translated/build.js:2711 +#: templates/js/translated/build.js:2720 msgid "Allow Variants" msgstr "Çeşide İzin Ver" -#: build/serializers.py:1297 part/models.py:4110 part/models.py:4584 +#: build/serializers.py:1351 part/models.py:4168 part/models.py:4646 #: stock/api.py:794 msgid "BOM Item" -msgstr "" +msgstr "ML Ögesi" -#: build/serializers.py:1306 build/templates/build/detail.html:236 +#: build/serializers.py:1370 build/templates/build/detail.html:236 #: build/templates/build/sidebar.html:16 templates/js/translated/index.js:130 msgid "Allocated Stock" -msgstr "" +msgstr "Ayrılan Stok" -#: build/serializers.py:1311 order/serializers.py:1175 part/admin.py:132 -#: part/bom.py:181 part/serializers.py:899 part/serializers.py:1602 -#: part/templates/part/part_base.html:210 templates/js/translated/bom.js:1208 -#: templates/js/translated/build.js:2804 templates/js/translated/part.js:712 +#: build/serializers.py:1375 order/serializers.py:1209 part/admin.py:132 +#: part/bom.py:186 part/serializers.py:951 part/serializers.py:1660 +#: part/templates/part/part_base.html:211 templates/js/translated/bom.js:1208 +#: templates/js/translated/build.js:2822 templates/js/translated/part.js:712 #: templates/js/translated/part.js:2155 #: templates/js/translated/table_filters.js:177 msgid "On Order" -msgstr "" +msgstr "Siparişte" -#: build/serializers.py:1316 order/serializers.py:1176 part/serializers.py:1604 -#: templates/js/translated/build.js:2808 +#: build/serializers.py:1380 order/serializers.py:1210 part/serializers.py:1662 +#: templates/js/translated/build.js:2826 #: templates/js/translated/table_filters.js:367 msgid "In Production" -msgstr "" +msgstr "Üretimde" -#: build/serializers.py:1321 part/bom.py:180 part/serializers.py:1629 -#: part/templates/part/part_base.html:192 -#: templates/js/translated/sales_order.js:1929 -msgid "Available Stock" -msgstr "" - -#: build/serializers.py:1325 -msgid "Available Substitute Stock" -msgstr "" - -#: build/serializers.py:1326 -msgid "Available Variant Stock" -msgstr "" - -#: build/serializers.py:1327 -msgid "Total Available Stock" -msgstr "" - -#: build/serializers.py:1328 part/serializers.py:906 +#: build/serializers.py:1384 part/serializers.py:958 msgid "External Stock" -msgstr "" +msgstr "Harici Stok" -#: build/status_codes.py:11 generic/states/tests.py:17 order/status_codes.py:12 -#: order/status_codes.py:42 order/status_codes.py:74 order/status_codes.py:98 +#: build/serializers.py:1385 part/bom.py:185 part/serializers.py:1687 +#: part/templates/part/part_base.html:193 +#: templates/js/translated/sales_order.js:1910 +msgid "Available Stock" +msgstr "Mevcut Stok" + +#: build/serializers.py:1386 +msgid "Available Substitute Stock" +msgstr "Mevcut Yedek Stok" + +#: build/serializers.py:1387 +msgid "Available Variant Stock" +msgstr "Mevcut Turev Stoku" + +#: build/status_codes.py:11 generic/states/tests.py:21 +#: generic/states/tests.py:131 order/status_codes.py:12 +#: order/status_codes.py:44 order/status_codes.py:76 order/status_codes.py:102 #: templates/js/translated/table_filters.js:601 msgid "Pending" msgstr "Bekliyor" @@ -1722,187 +1750,184 @@ msgstr "Bekliyor" msgid "Production" msgstr "Üretim" -#: build/status_codes.py:13 order/status_codes.py:14 order/status_codes.py:49 -#: order/status_codes.py:79 +#: build/status_codes.py:13 order/status_codes.py:14 order/status_codes.py:51 +#: order/status_codes.py:81 msgid "On Hold" -msgstr "" +msgstr "Beklemede" -#: build/status_codes.py:14 order/status_codes.py:16 order/status_codes.py:51 -#: order/status_codes.py:82 +#: build/status_codes.py:14 order/status_codes.py:16 order/status_codes.py:53 +#: order/status_codes.py:84 msgid "Cancelled" msgstr "İptal edildi" -#: build/status_codes.py:15 generic/states/tests.py:19 importer/models.py:509 -#: importer/status_codes.py:19 order/status_codes.py:15 -#: order/status_codes.py:50 order/status_codes.py:81 -#: order/templates/order/order_base.html:163 -#: order/templates/order/sales_order_base.html:168 report/models.py:443 +#: build/status_codes.py:15 generic/states/tests.py:23 importer/models.py:518 +#: importer/status_codes.py:27 order/status_codes.py:15 +#: order/status_codes.py:52 order/status_codes.py:83 +#: order/templates/order/order_base.html:172 +#: order/templates/order/sales_order_base.html:169 report/models.py:451 msgid "Complete" msgstr "Tamamlandı" #: build/tasks.py:184 msgid "Stock required for build order" -msgstr "" +msgstr "Yapım siparişi için gereken stok" -#: build/tasks.py:201 +#: build/tasks.py:260 msgid "Overdue Build Order" -msgstr "" +msgstr "Gecikmiş Yapım Siparişi" -#: build/tasks.py:206 +#: build/tasks.py:265 #, python-brace-format msgid "Build order {bo} is now overdue" -msgstr "" +msgstr "{bo} yapım siparişi şimdi gecikti" -#: build/templates/build/build_base.html:18 +#: build/templates/build/build_base.html:19 msgid "Part thumbnail" -msgstr "" +msgstr "Parçanın küçük resmi" -#: build/templates/build/build_base.html:38 -#: company/templates/company/supplier_part.html:35 -#: order/templates/order/order_base.html:29 -#: order/templates/order/return_order_base.html:38 -#: order/templates/order/sales_order_base.html:38 -#: part/templates/part/part_base.html:41 -#: stock/templates/stock/item_base.html:40 -#: stock/templates/stock/location.html:52 +#: build/templates/build/build_base.html:39 +#: company/templates/company/supplier_part.html:36 +#: order/templates/order/order_base.html:30 +#: order/templates/order/return_order_base.html:39 +#: order/templates/order/sales_order_base.html:39 +#: part/templates/part/part_base.html:42 +#: stock/templates/stock/item_base.html:41 +#: stock/templates/stock/location.html:53 #: templates/js/translated/filters.js:338 msgid "Barcode actions" msgstr "Barkod işlemleri" -#: build/templates/build/build_base.html:42 -#: company/templates/company/supplier_part.html:39 -#: order/templates/order/order_base.html:33 -#: order/templates/order/return_order_base.html:42 -#: order/templates/order/sales_order_base.html:42 -#: part/templates/part/part_base.html:44 -#: stock/templates/stock/item_base.html:44 -#: stock/templates/stock/location.html:54 templates/qr_button.html:1 +#: build/templates/build/build_base.html:43 +#: company/templates/company/supplier_part.html:40 +#: order/templates/order/order_base.html:34 +#: order/templates/order/return_order_base.html:43 +#: order/templates/order/sales_order_base.html:43 +#: part/templates/part/part_base.html:45 +#: stock/templates/stock/item_base.html:45 +#: stock/templates/stock/location.html:55 templates/qr_button.html:1 msgid "Show QR Code" -msgstr "" +msgstr "QR Kodunu Göster" -#: build/templates/build/build_base.html:45 -#: company/templates/company/supplier_part.html:41 -#: order/templates/order/order_base.html:36 -#: order/templates/order/return_order_base.html:45 -#: order/templates/order/sales_order_base.html:45 -#: part/templates/part/part_base.html:47 -#: stock/templates/stock/item_base.html:47 -#: stock/templates/stock/location.html:56 +#: build/templates/build/build_base.html:46 +#: company/templates/company/supplier_part.html:42 +#: order/templates/order/order_base.html:37 +#: order/templates/order/return_order_base.html:46 +#: order/templates/order/sales_order_base.html:46 +#: part/templates/part/part_base.html:48 +#: stock/templates/stock/item_base.html:48 +#: stock/templates/stock/location.html:57 #: templates/js/translated/barcode.js:527 #: templates/js/translated/barcode.js:532 msgid "Unlink Barcode" -msgstr "" +msgstr "Barkodun Bağlantısını Kaldır" -#: build/templates/build/build_base.html:47 -#: company/templates/company/supplier_part.html:43 -#: order/templates/order/order_base.html:38 -#: order/templates/order/return_order_base.html:47 -#: order/templates/order/sales_order_base.html:47 -#: part/templates/part/part_base.html:49 -#: stock/templates/stock/item_base.html:49 -#: stock/templates/stock/location.html:58 +#: build/templates/build/build_base.html:48 +#: company/templates/company/supplier_part.html:44 +#: order/templates/order/order_base.html:39 +#: order/templates/order/return_order_base.html:48 +#: order/templates/order/sales_order_base.html:48 +#: part/templates/part/part_base.html:50 +#: stock/templates/stock/item_base.html:50 +#: stock/templates/stock/location.html:59 msgid "Link Barcode" -msgstr "" +msgstr "Barkod Bağla" -#: build/templates/build/build_base.html:56 -#: order/templates/order/order_base.html:46 -#: order/templates/order/return_order_base.html:55 -#: order/templates/order/sales_order_base.html:55 +#: build/templates/build/build_base.html:57 +#: order/templates/order/order_base.html:47 +#: order/templates/order/return_order_base.html:56 +#: order/templates/order/sales_order_base.html:56 msgid "Print actions" msgstr "Yazdırma işlemleri" -#: build/templates/build/build_base.html:60 +#: build/templates/build/build_base.html:61 msgid "Print build order report" -msgstr "" +msgstr "Yapım siparişi raporu yazdır" -#: build/templates/build/build_base.html:67 +#: build/templates/build/build_base.html:68 msgid "Build actions" msgstr "Yapım İşi işlemleri" -#: build/templates/build/build_base.html:71 +#: build/templates/build/build_base.html:72 msgid "Edit Build" msgstr "Yapım İşini Düzenle" -#: build/templates/build/build_base.html:73 +#: build/templates/build/build_base.html:74 msgid "Duplicate Build" -msgstr "" +msgstr "Yapımı Çoğalt" -#: build/templates/build/build_base.html:76 +#: build/templates/build/build_base.html:77 msgid "Hold Build" -msgstr "" +msgstr "Yapımı Beklet" -#: build/templates/build/build_base.html:79 +#: build/templates/build/build_base.html:80 msgid "Cancel Build" msgstr "Yapım İşini İptal Et" -#: build/templates/build/build_base.html:82 +#: build/templates/build/build_base.html:83 msgid "Delete Build" -msgstr "" - -#: build/templates/build/build_base.html:87 -msgid "Isueue Build" -msgstr "" +msgstr "Yapımı Sil" #: build/templates/build/build_base.html:88 +#: build/templates/build/build_base.html:89 msgid "Issue Build" -msgstr "" +msgstr "Yapımı Başlat" -#: build/templates/build/build_base.html:91 #: build/templates/build/build_base.html:92 +#: build/templates/build/build_base.html:93 msgid "Complete Build" msgstr "Tamamlanmış Yapım İşi" -#: build/templates/build/build_base.html:115 +#: build/templates/build/build_base.html:116 msgid "Build Description" -msgstr "" +msgstr "Yapım Açıklaması" -#: build/templates/build/build_base.html:125 +#: build/templates/build/build_base.html:126 msgid "No build outputs have been created for this build order" -msgstr "" +msgstr "Bu yapım siparişi için hiç yapım çıktısı oluşturulmadı" -#: build/templates/build/build_base.html:132 +#: build/templates/build/build_base.html:133 msgid "Build Order is ready to mark as completed" msgstr "Yapım işi tamamlandı olarak işaretlenmeye hazır" -#: build/templates/build/build_base.html:137 +#: build/templates/build/build_base.html:138 msgid "Build Order cannot be completed as outstanding outputs remain" msgstr "Bekleyen çıktılar kaldığı için yapım işi emri tamamlanamıyor" -#: build/templates/build/build_base.html:142 +#: build/templates/build/build_base.html:143 msgid "Required build quantity has not yet been completed" msgstr "Gerekli yapım işi miktarı henüz tamamlanmadı" -#: build/templates/build/build_base.html:147 +#: build/templates/build/build_base.html:148 msgid "Stock has not been fully allocated to this Build Order" msgstr "Stok, yapım işi emri için tamamen tahsis edilemedi" -#: build/templates/build/build_base.html:168 -#: build/templates/build/detail.html:138 order/models.py:308 -#: order/models.py:1391 order/serializers.py:174 -#: order/templates/order/order_base.html:191 -#: order/templates/order/return_order_base.html:167 -#: order/templates/order/sales_order_base.html:199 +#: build/templates/build/build_base.html:169 +#: build/templates/build/detail.html:138 order/models.py:315 +#: order/models.py:1408 order/serializers.py:254 +#: order/templates/order/order_base.html:200 +#: order/templates/order/return_order_base.html:168 +#: order/templates/order/sales_order_base.html:200 #: report/templates/report/inventree_build_order_report.html:125 -#: templates/js/translated/build.js:2411 templates/js/translated/part.js:1837 -#: templates/js/translated/purchase_order.js:1809 -#: templates/js/translated/purchase_order.js:2217 +#: templates/js/translated/build.js:2414 templates/js/translated/part.js:1837 +#: templates/js/translated/purchase_order.js:1793 +#: templates/js/translated/purchase_order.js:2201 #: templates/js/translated/return_order.js:346 #: templates/js/translated/return_order.js:749 -#: templates/js/translated/sales_order.js:871 -#: templates/js/translated/sales_order.js:1903 +#: templates/js/translated/sales_order.js:830 +#: templates/js/translated/sales_order.js:1884 msgid "Target Date" msgstr "Hedeflenen tarih" -#: build/templates/build/build_base.html:173 +#: build/templates/build/build_base.html:174 #, python-format msgid "This build was due on %(target)s" msgstr "Bu yapım işinin %(target)s tarihinde süresi doluyor" -#: build/templates/build/build_base.html:173 -#: build/templates/build/build_base.html:230 -#: order/templates/order/order_base.html:127 -#: order/templates/order/return_order_base.html:120 -#: order/templates/order/sales_order_base.html:129 +#: build/templates/build/build_base.html:174 +#: build/templates/build/build_base.html:231 +#: order/templates/order/order_base.html:128 +#: order/templates/order/return_order_base.html:121 +#: order/templates/order/sales_order_base.html:130 #: templates/js/translated/table_filters.js:97 #: templates/js/translated/table_filters.js:545 #: templates/js/translated/table_filters.js:629 @@ -1910,51 +1935,52 @@ msgstr "Bu yapım işinin %(target)s tarihinde süresi doluyor" msgid "Overdue" msgstr "Vadesi geçmiş" -#: build/templates/build/build_base.html:185 +#: build/templates/build/build_base.html:186 #: build/templates/build/detail.html:67 build/templates/build/sidebar.html:13 msgid "Completed Outputs" -msgstr "" +msgstr "Tamamalanan Çıktılar" -#: build/templates/build/build_base.html:198 -#: build/templates/build/detail.html:101 order/api.py:1406 order/models.py:892 -#: order/models.py:1650 order/models.py:1765 order/models.py:1924 -#: order/templates/order/sales_order_base.html:9 -#: order/templates/order/sales_order_base.html:28 +#: build/templates/build/build_base.html:199 +#: build/templates/build/detail.html:101 order/api.py:1528 order/models.py:914 +#: order/models.py:1666 order/models.py:1794 order/models.py:1957 +#: order/templates/order/sales_order_base.html:10 +#: order/templates/order/sales_order_base.html:29 #: report/templates/report/inventree_build_order_report.html:135 #: report/templates/report/inventree_sales_order_report.html:14 -#: stock/templates/stock/item_base.html:369 +#: report/templates/report/inventree_sales_order_shipment_report.html:15 +#: stock/templates/stock/item_base.html:366 #: templates/email/overdue_sales_order.html:15 -#: templates/js/translated/pricing.js:929 -#: templates/js/translated/sales_order.js:805 -#: templates/js/translated/sales_order.js:1028 -#: templates/js/translated/stock.js:3008 +#: templates/js/translated/pricing.js:927 +#: templates/js/translated/sales_order.js:764 +#: templates/js/translated/sales_order.js:1001 +#: templates/js/translated/stock.js:3009 msgid "Sales Order" msgstr "Sipariş Emri" -#: build/templates/build/build_base.html:219 -#: build/templates/build/detail.html:94 templates/js/translated/build.js:2328 +#: build/templates/build/build_base.html:220 +#: build/templates/build/detail.html:94 templates/js/translated/build.js:2331 msgid "Priority" -msgstr "" +msgstr "Öncelik" -#: build/templates/build/build_base.html:267 +#: build/templates/build/build_base.html:268 msgid "Issue Build Order" -msgstr "" +msgstr "Yapım Siparişi Ver" -#: build/templates/build/build_base.html:271 +#: build/templates/build/build_base.html:272 msgid "Issue this Build Order?" -msgstr "" +msgstr "Bu Yapımın Siparişi Verilsin mi?" -#: build/templates/build/build_base.html:302 +#: build/templates/build/build_base.html:303 msgid "Delete Build Order" -msgstr "" +msgstr "Yapım Siparişini Sil" -#: build/templates/build/build_base.html:312 +#: build/templates/build/build_base.html:313 msgid "Build Order QR Code" -msgstr "" +msgstr "Yapım Siparişinin QR Kodu" -#: build/templates/build/build_base.html:324 +#: build/templates/build/build_base.html:325 msgid "Link Barcode to Build Order" -msgstr "" +msgstr "Yapım Siparişine Barkod Bağla" #: build/templates/build/detail.html:15 msgid "Build Details" @@ -1968,8 +1994,9 @@ msgstr "Stok Kaynağı" msgid "Stock can be taken from any available location." msgstr "Stok herhangi bir konumdan alınabilir." -#: build/templates/build/detail.html:49 order/models.py:1532 -#: templates/js/translated/purchase_order.js:2259 +#: build/templates/build/detail.html:49 order/models.py:548 +#: order/models.py:1548 order/templates/order/order_base.html:135 +#: templates/js/translated/purchase_order.js:2243 msgid "Destination" msgstr "Hedef" @@ -1979,25 +2006,26 @@ msgstr "Hedef konumu belirtilmedi" #: build/templates/build/detail.html:73 msgid "Allocated Parts" -msgstr "" +msgstr "Ayrılan Parçalar" -#: build/templates/build/detail.html:80 stock/admin.py:162 -#: stock/templates/stock/item_base.html:162 -#: templates/js/translated/build.js:1553 -#: templates/js/translated/model_renderers.js:242 -#: templates/js/translated/purchase_order.js:1326 +#: build/templates/build/detail.html:80 +#: report/templates/report/inventree_sales_order_shipment_report.html:47 +#: stock/admin.py:163 stock/templates/stock/item_base.html:159 +#: templates/js/translated/build.js:1556 +#: templates/js/translated/model_renderers.js:245 +#: templates/js/translated/purchase_order.js:1309 #: templates/js/translated/stock.js:1139 templates/js/translated/stock.js:1240 -#: templates/js/translated/stock.js:2275 templates/js/translated/stock.js:3211 +#: templates/js/translated/stock.js:2276 templates/js/translated/stock.js:3212 #: templates/js/translated/table_filters.js:320 #: templates/js/translated/table_filters.js:411 msgid "Batch" msgstr "Toplu" #: build/templates/build/detail.html:133 -#: order/templates/order/order_base.html:178 -#: order/templates/order/return_order_base.html:154 -#: order/templates/order/sales_order_base.html:193 -#: templates/js/translated/build.js:2371 +#: order/templates/order/order_base.html:187 +#: order/templates/order/return_order_base.html:155 +#: order/templates/order/sales_order_base.html:194 +#: templates/js/translated/build.js:2374 msgid "Created" msgstr "Oluşturuldu" @@ -2005,8 +2033,8 @@ msgstr "Oluşturuldu" msgid "No target date set" msgstr "Hedef tarih ayarlanmadı" -#: build/templates/build/detail.html:149 -#: order/templates/order/sales_order_base.html:209 +#: build/templates/build/detail.html:149 order/api.py:794 +#: order/templates/order/sales_order_base.html:210 #: templates/js/translated/table_filters.js:692 msgid "Completed" msgstr "Tamamlandı" @@ -2021,27 +2049,27 @@ msgstr "Alt Yapım İşi Emrileri" #: build/templates/build/detail.html:177 msgid "Build Order Line Items" -msgstr "" +msgstr "Yapım Siparişi Satır Ögeleri" #: build/templates/build/detail.html:181 msgid "Deallocate stock" -msgstr "" +msgstr "Stok ayırmayı iptal et" #: build/templates/build/detail.html:182 msgid "Deallocate Stock" -msgstr "" +msgstr "Stok Ayırmayı İptal Et" #: build/templates/build/detail.html:184 msgid "Automatically allocate stock to build" -msgstr "" +msgstr "Yapıma stoku otomatik olarak ayır" #: build/templates/build/detail.html:185 msgid "Auto Allocate" -msgstr "" +msgstr "Otomatik Ayır" #: build/templates/build/detail.html:187 msgid "Manually allocate stock to build" -msgstr "" +msgstr "Yapıma stoku elle ayır" #: build/templates/build/detail.html:188 msgid "Allocate Stock" @@ -2052,13 +2080,13 @@ msgid "Order required parts" msgstr "Gerekli parçaları sipariş edin" #: build/templates/build/detail.html:192 -#: templates/js/translated/purchase_order.js:795 +#: templates/js/translated/purchase_order.js:778 msgid "Order Parts" msgstr "Parça Siparişi" #: build/templates/build/detail.html:205 msgid "Available stock has been filtered based on specified source location for this build order" -msgstr "" +msgstr "Mevcut stok bu yapım siparişi için belirtilen kaynak konuma göre süzüldü" #: build/templates/build/detail.html:215 msgid "Incomplete Build Outputs" @@ -2070,11 +2098,11 @@ msgstr "Yeni yapım işi çıktısı oluştur" #: build/templates/build/detail.html:220 msgid "New Build Output" -msgstr "" +msgstr "Yeni Yapım Çıktısı" #: build/templates/build/detail.html:249 build/templates/build/sidebar.html:19 msgid "Consumed Stock" -msgstr "" +msgstr "Harcanan Stok" #: build/templates/build/detail.html:261 msgid "Completed Build Outputs" @@ -2082,7 +2110,7 @@ msgstr "Tamamlanmış Yapım İşi Çıktıları" #: build/templates/build/detail.html:273 msgid "Build test statistics" -msgstr "" +msgstr "Yapım test istatistikleri" #: build/templates/build/detail.html:288 build/templates/build/sidebar.html:27 #: company/templates/company/detail.html:229 @@ -2106,11 +2134,11 @@ msgstr "Yapım İşi Notları" #: build/templates/build/detail.html:458 msgid "Allocation Complete" -msgstr "" +msgstr "Ayrılma Tamam" #: build/templates/build/detail.html:459 msgid "All lines have been fully allocated" -msgstr "" +msgstr "Tüm satırlar tamamen tahsis edildi" #: build/templates/build/index.html:18 part/templates/part/detail.html:335 msgid "New Build Order" @@ -2118,9 +2146,9 @@ msgstr "Yeni Yapım İşi Emri" #: build/templates/build/sidebar.html:5 msgid "Build Order Details" -msgstr "" +msgstr "Yapım Siparişi Ayrıntıları" -#: build/templates/build/sidebar.html:8 order/serializers.py:82 +#: build/templates/build/sidebar.html:8 order/serializers.py:113 #: order/templates/order/po_sidebar.html:5 #: order/templates/order/return_order_detail.html:18 #: order/templates/order/so_sidebar.html:5 @@ -2128,7 +2156,7 @@ msgstr "" #: report/templates/report/inventree_return_order_report.html:19 #: report/templates/report/inventree_sales_order_report.html:22 msgid "Line Items" -msgstr "" +msgstr "Satır Ögeleri" #: build/templates/build/sidebar.html:10 msgid "Incomplete Outputs" @@ -2137,44 +2165,39 @@ msgstr "Tamamlanmamış Çıktılar" #: build/templates/build/sidebar.html:24 #: part/templates/part/part_sidebar.html:56 msgid "Test Statistics" -msgstr "" +msgstr "Test İstatistikleri" -#: common/api.py:693 +#: common/api.py:725 msgid "Is Link" -msgstr "" +msgstr "Link Olanlar" -#: common/api.py:701 +#: common/api.py:733 msgid "Is File" -msgstr "" +msgstr "Dosya Olanlar" -#: common/api.py:744 +#: common/api.py:776 msgid "User does not have permission to delete these attachments" -msgstr "" +msgstr "Kullanıcının bu ekleri silmek için izni yok" -#: common/api.py:761 +#: common/api.py:793 msgid "User does not have permission to delete this attachment" -msgstr "" - -#: common/currency.py:132 -msgid "Invalid currency code" -msgstr "" +msgstr "Kullanıcının bu eki silmek için izni yok" #: common/currency.py:134 +msgid "Invalid currency code" +msgstr "Geçersiz para birimi kodu" + +#: common/currency.py:136 msgid "Duplicate currency code" -msgstr "" +msgstr "Para birimi kodunu çoğalt" -#: common/currency.py:139 +#: common/currency.py:141 msgid "No valid currency codes provided" -msgstr "" +msgstr "Geçerli bir para birimi kodu sağlanmamış" -#: common/currency.py:156 +#: common/currency.py:158 msgid "No plugin" -msgstr "" - -#: common/files.py:63 -#, python-brace-format -msgid "Unsupported file format: {fmt}" -msgstr "" +msgstr "Eklenti yok" #: common/files.py:65 msgid "Error reading file (invalid encoding)" @@ -2192,1883 +2215,2039 @@ msgstr "Dosya okurken hata (hatalı ölçüler)" msgid "Error reading file (data could be corrupted)" msgstr "Dosya okurken hata (veri bozulmuş olabilir)" -#: common/forms.py:12 +#: common/forms.py:12 common/forms.py:25 msgid "File" msgstr "Dosya" -#: common/forms.py:12 +#: common/forms.py:12 common/forms.py:26 msgid "Select file to upload" msgstr "Yüklenecek dosyayı seç" -#: common/forms.py:25 -msgid "{name.title()} File" -msgstr "{name.title()} Dosya" - -#: common/forms.py:26 -#, python-brace-format -msgid "Select {name} file to upload" -msgstr "{name} dosyasını yüklemek için seçin" - -#: common/models.py:86 +#: common/models.py:89 msgid "Updated" -msgstr "" +msgstr "Güncellendi" -#: common/models.py:87 +#: common/models.py:90 msgid "Timestamp of last update" -msgstr "" +msgstr "Son güncellemenin zaman damgası" -#: common/models.py:120 +#: common/models.py:123 msgid "Site URL is locked by configuration" -msgstr "" +msgstr "Site URL'si yapılandırma tarafından kilitlendi" -#: common/models.py:150 +#: common/models.py:153 msgid "Unique project code" -msgstr "" +msgstr "Eşsiz proje kodu" -#: common/models.py:157 +#: common/models.py:160 msgid "Project description" -msgstr "" +msgstr "Proje açıklaması" -#: common/models.py:166 +#: common/models.py:169 msgid "User or group responsible for this project" -msgstr "" +msgstr "Bu projeden sorumlu kullanıcı veya grup" -#: common/models.py:783 -msgid "Settings key (must be unique - case insensitive)" +#: common/models.py:783 common/models.py:2236 common/models.py:2613 +msgid "Settings key" msgstr "" #: common/models.py:787 msgid "Settings value" -msgstr "" +msgstr "Ayarlar değeri" -#: common/models.py:839 +#: common/models.py:842 msgid "Chosen value is not a valid option" -msgstr "" +msgstr "Seçilen değer geçerli bir seçenek değil" -#: common/models.py:855 +#: common/models.py:858 msgid "Value must be a boolean value" -msgstr "" +msgstr "Değer bir boolean değer olmalıdır" -#: common/models.py:863 +#: common/models.py:866 msgid "Value must be an integer value" +msgstr "Değer bir integer değer olmalıdır" + +#: common/models.py:874 +msgid "Value must be a valid number" msgstr "" -#: common/models.py:900 +#: common/models.py:899 +msgid "Value does not pass validation checks" +msgstr "" + +#: common/models.py:921 msgid "Key string must be unique" msgstr "Anahtar dizesi benzersiz olmalı" -#: common/models.py:1132 +#: common/models.py:1189 msgid "No group" -msgstr "" +msgstr "Grup yok" -#: common/models.py:1231 +#: common/models.py:1288 msgid "Restart required" -msgstr "" +msgstr "Yeniden başlatma gerekli" -#: common/models.py:1233 +#: common/models.py:1290 msgid "A setting has been changed which requires a server restart" -msgstr "" +msgstr "Sunucunun yeniden başlatılmasını gerektiren bir ayar değişti" -#: common/models.py:1240 +#: common/models.py:1297 msgid "Pending migrations" -msgstr "" +msgstr "Bekleyen taşıma işlemleri" -#: common/models.py:1241 +#: common/models.py:1298 msgid "Number of pending database migrations" -msgstr "" +msgstr "Bekleyen veritabanı taşıma sayısı" -#: common/models.py:1246 +#: common/models.py:1303 msgid "Server Instance Name" -msgstr "" +msgstr "Sunucu Örneği adı" -#: common/models.py:1248 +#: common/models.py:1305 msgid "String descriptor for the server instance" -msgstr "" +msgstr "Sunucu örneği için sözce (string) açıklayıcı" -#: common/models.py:1252 +#: common/models.py:1309 msgid "Use instance name" -msgstr "" +msgstr "Örnek adını kullan" -#: common/models.py:1253 +#: common/models.py:1310 msgid "Use the instance name in the title-bar" -msgstr "" +msgstr "Örnek adını başlık çubuğunda kullan" -#: common/models.py:1258 +#: common/models.py:1315 msgid "Restrict showing `about`" -msgstr "" +msgstr "`Hakkında` gösterimini kısıtla" -#: common/models.py:1259 +#: common/models.py:1316 msgid "Show the `about` modal only to superusers" -msgstr "" +msgstr "`Hakkında` kipini yalnızca süper kullanıcılara göster" -#: common/models.py:1264 company/models.py:111 company/models.py:112 +#: common/models.py:1321 company/models.py:108 company/models.py:109 msgid "Company name" msgstr "Şirket adı" -#: common/models.py:1265 +#: common/models.py:1322 msgid "Internal company name" -msgstr "" +msgstr "Dahili şirket adı" -#: common/models.py:1269 +#: common/models.py:1326 msgid "Base URL" msgstr "Ana URL" -#: common/models.py:1270 +#: common/models.py:1327 msgid "Base URL for server instance" -msgstr "" +msgstr "Sunucu örneğinn temel URL'i" -#: common/models.py:1276 +#: common/models.py:1333 msgid "Default Currency" msgstr "Varsayılan Para Birimi" -#: common/models.py:1277 +#: common/models.py:1334 msgid "Select base currency for pricing calculations" -msgstr "" +msgstr "Fiyat hesaplamaları için temel para birimini seçin" -#: common/models.py:1283 +#: common/models.py:1340 msgid "Supported Currencies" -msgstr "" +msgstr "Desteklenen Para Birimleri" -#: common/models.py:1284 +#: common/models.py:1341 msgid "List of supported currency codes" -msgstr "" +msgstr "Desteklenen para birimi kodlarının listesi" -#: common/models.py:1290 +#: common/models.py:1347 msgid "Currency Update Interval" -msgstr "" +msgstr "Döviz Güncelleme Aralığı" -#: common/models.py:1292 +#: common/models.py:1349 msgid "How often to update exchange rates (set to zero to disable)" -msgstr "" +msgstr "Döviz kurlarını şu sıklıkla güncelle (etkisizleştirmek için sıfır yapın)" -#: common/models.py:1295 common/models.py:1351 common/models.py:1364 -#: common/models.py:1372 common/models.py:1381 common/models.py:1390 -#: common/models.py:1627 common/models.py:1649 common/models.py:1764 -#: common/models.py:2146 +#: common/models.py:1352 common/models.py:1408 common/models.py:1421 +#: common/models.py:1429 common/models.py:1438 common/models.py:1447 +#: common/models.py:1696 common/models.py:1718 common/models.py:1819 +#: common/models.py:2208 msgid "days" msgstr "günler" -#: common/models.py:1299 +#: common/models.py:1356 msgid "Currency Update Plugin" -msgstr "" +msgstr "Döviz Güncelleme Eklentisi" -#: common/models.py:1300 +#: common/models.py:1357 msgid "Currency update plugin to use" -msgstr "" +msgstr "Kullanılacak döviz güncelleme eklentisi" -#: common/models.py:1305 +#: common/models.py:1362 msgid "Download from URL" msgstr "URL'den indir" -#: common/models.py:1307 +#: common/models.py:1364 msgid "Allow download of remote images and files from external URL" msgstr "Harici URL'den resim ve dosyaların indirilmesine izin ver" -#: common/models.py:1313 +#: common/models.py:1370 msgid "Download Size Limit" -msgstr "" +msgstr "İndirme Boyutu Sınırı" -#: common/models.py:1314 +#: common/models.py:1371 msgid "Maximum allowable download size for remote image" -msgstr "" +msgstr "Uzak resimler için izin verilebilir maksimum indirme boyutu" -#: common/models.py:1320 +#: common/models.py:1377 msgid "User-agent used to download from URL" -msgstr "" +msgstr "URL'den indirmek için kullanılan kullanıcı aracısı" -#: common/models.py:1322 +#: common/models.py:1379 msgid "Allow to override the user-agent used to download images and files from external URL (leave blank for the default)" -msgstr "" +msgstr "Harici URL'den resim ve dosya indirmek için kullanılan kullanıcı aracısını geçersiz kılmaya izin ver (varsayılan için boş bırakın)" -#: common/models.py:1327 +#: common/models.py:1384 msgid "Strict URL Validation" -msgstr "" - -#: common/models.py:1328 -msgid "Require schema specification when validating URLs" -msgstr "" - -#: common/models.py:1333 -msgid "Require confirm" -msgstr "" - -#: common/models.py:1334 -msgid "Require explicit user confirmation for certain action." -msgstr "" - -#: common/models.py:1339 -msgid "Tree Depth" -msgstr "" - -#: common/models.py:1341 -msgid "Default tree depth for treeview. Deeper levels can be lazy loaded as they are needed." -msgstr "" - -#: common/models.py:1347 -msgid "Update Check Interval" -msgstr "" - -#: common/models.py:1348 -msgid "How often to check for updates (set to zero to disable)" -msgstr "" - -#: common/models.py:1354 -msgid "Automatic Backup" -msgstr "" - -#: common/models.py:1355 -msgid "Enable automatic backup of database and media files" -msgstr "" - -#: common/models.py:1360 -msgid "Auto Backup Interval" -msgstr "" - -#: common/models.py:1361 -msgid "Specify number of days between automated backup events" -msgstr "" - -#: common/models.py:1367 -msgid "Task Deletion Interval" -msgstr "" - -#: common/models.py:1369 -msgid "Background task results will be deleted after specified number of days" -msgstr "" - -#: common/models.py:1376 -msgid "Error Log Deletion Interval" -msgstr "" - -#: common/models.py:1378 -msgid "Error logs will be deleted after specified number of days" -msgstr "" +msgstr "Sıkı URL Doğrulama" #: common/models.py:1385 +msgid "Require schema specification when validating URLs" +msgstr "URL'leri doğrularken şema tanımlamasını gerekli kıl" + +#: common/models.py:1390 +msgid "Require confirm" +msgstr "Doğrulama gerektir" + +#: common/models.py:1391 +msgid "Require explicit user confirmation for certain action." +msgstr "Belirli bir eylem için açıkça kullanıcı doğrulamasını gerekli kıl." + +#: common/models.py:1396 +msgid "Tree Depth" +msgstr "Ağaç Derinliği" + +#: common/models.py:1398 +msgid "Default tree depth for treeview. Deeper levels can be lazy loaded as they are needed." +msgstr "Ağaç görünümü için varsayılan derinlik. Daha derin düzeyler gerek oldukça tembel olarak yüklenebilir." + +#: common/models.py:1404 +msgid "Update Check Interval" +msgstr "Güncelleme Denetleme Aralığı" + +#: common/models.py:1405 +msgid "How often to check for updates (set to zero to disable)" +msgstr "Güncellemeleri şu sıklıkla denetle (etkisizleştirmek için sıfır yapın)" + +#: common/models.py:1411 +msgid "Automatic Backup" +msgstr "Otomatik Yedekleme" + +#: common/models.py:1412 +msgid "Enable automatic backup of database and media files" +msgstr "Veritabanı ve ortam dosyalarını otomatik yedeklemeyi etkinleştir" + +#: common/models.py:1417 +msgid "Auto Backup Interval" +msgstr "Otomatik Yedekleme Aralığı" + +#: common/models.py:1418 +msgid "Specify number of days between automated backup events" +msgstr "Otomatik yedekleme olayları arasındaki gün sayısını belirtin" + +#: common/models.py:1424 +msgid "Task Deletion Interval" +msgstr "Görev Silme Aralığı" + +#: common/models.py:1426 +msgid "Background task results will be deleted after specified number of days" +msgstr "Arkaplan görev sonuçları belirtilen gün sayısı kadar sonra silinecektir" + +#: common/models.py:1433 +msgid "Error Log Deletion Interval" +msgstr "Hata Günlüğü Silme Aralığı" + +#: common/models.py:1435 +msgid "Error logs will be deleted after specified number of days" +msgstr "Hata günlükleri belirtilen gün sayısı kadar sonra silinecektir" + +#: common/models.py:1442 msgid "Notification Deletion Interval" -msgstr "" +msgstr "Bildirim Silme Aralığı" -#: common/models.py:1387 +#: common/models.py:1444 msgid "User notifications will be deleted after specified number of days" -msgstr "" +msgstr "Kullanıcı bildirimleri belirtilen gün sayısı kadar sonra silinecektir" -#: common/models.py:1394 templates/InvenTree/settings/sidebar.html:31 +#: common/models.py:1451 templates/InvenTree/settings/sidebar.html:31 msgid "Barcode Support" msgstr "Barkod Desteği" -#: common/models.py:1395 +#: common/models.py:1452 msgid "Enable barcode scanner support in the web interface" +msgstr "Web arayüzünde barkod tarayıcı desteğini etkinleştir" + +#: common/models.py:1457 +msgid "Store Barcode Results" msgstr "" -#: common/models.py:1400 +#: common/models.py:1458 +msgid "Store barcode scan results in the database" +msgstr "" + +#: common/models.py:1463 +msgid "Barcode Scans Maximum Count" +msgstr "" + +#: common/models.py:1464 +msgid "Maximum number of barcode scan results to store" +msgstr "" + +#: common/models.py:1469 msgid "Barcode Input Delay" -msgstr "" +msgstr "Barkod Girdi Gecikmesi" -#: common/models.py:1401 +#: common/models.py:1470 msgid "Barcode input processing delay time" -msgstr "" +msgstr "Barkod girdi işleme gecikme süresi" -#: common/models.py:1407 +#: common/models.py:1476 msgid "Barcode Webcam Support" -msgstr "" +msgstr "Barkod Web Kamerası Desteği" -#: common/models.py:1408 +#: common/models.py:1477 msgid "Allow barcode scanning via webcam in browser" -msgstr "" +msgstr "Tarayıcıda web kamerası aracılığıyla barkod taramaya izin ver" -#: common/models.py:1413 +#: common/models.py:1482 msgid "Barcode Show Data" -msgstr "" +msgstr "Barkod Verisini Göster" -#: common/models.py:1414 +#: common/models.py:1483 msgid "Display barcode data in browser as text" -msgstr "" +msgstr "Barkod verisini tarayıcıda metin olarak görüntüle" -#: common/models.py:1419 +#: common/models.py:1488 msgid "Barcode Generation Plugin" -msgstr "" +msgstr "Barkod Üreteci Eklentisi" -#: common/models.py:1420 +#: common/models.py:1489 msgid "Plugin to use for internal barcode data generation" -msgstr "" +msgstr "Dahili barkod üretimi için kullanılacak eklenti" -#: common/models.py:1425 +#: common/models.py:1494 msgid "Part Revisions" -msgstr "" +msgstr "Parça Revizyonları" -#: common/models.py:1426 +#: common/models.py:1495 msgid "Enable revision field for Part" -msgstr "" +msgstr "Parça için revizyon alanını etkinleştir" -#: common/models.py:1431 +#: common/models.py:1500 msgid "Assembly Revision Only" -msgstr "" +msgstr "Yalnızca Montaj Revizyonu" -#: common/models.py:1432 +#: common/models.py:1501 msgid "Only allow revisions for assembly parts" -msgstr "" +msgstr "Yalnızca montaj parçaları için revizyona izin ver" -#: common/models.py:1437 +#: common/models.py:1506 msgid "Allow Deletion from Assembly" -msgstr "" +msgstr "Montajdan Silmeye İzin Ver" -#: common/models.py:1438 +#: common/models.py:1507 msgid "Allow deletion of parts which are used in an assembly" -msgstr "" +msgstr "Bir montajda kullanılan parçaları silmeye izin ver" -#: common/models.py:1443 +#: common/models.py:1512 msgid "IPN Regex" msgstr "DPN Regex" -#: common/models.py:1444 +#: common/models.py:1513 msgid "Regular expression pattern for matching Part IPN" msgstr "Parça DPN eşleştirmesi için Düzenli İfade Kalıbı (Regex)" -#: common/models.py:1447 +#: common/models.py:1516 msgid "Allow Duplicate IPN" msgstr "Yinelenen DPN'ye İzin Ver" -#: common/models.py:1448 +#: common/models.py:1517 msgid "Allow multiple parts to share the same IPN" msgstr "Birden çok parçanın aynı DPN'yi paylaşmasına izin ver" -#: common/models.py:1453 +#: common/models.py:1522 msgid "Allow Editing IPN" msgstr "DPN Düzenlemeye İzin Ver" -#: common/models.py:1454 +#: common/models.py:1523 msgid "Allow changing the IPN value while editing a part" msgstr "Parçayı düzenlerken DPN değiştirmeye izin ver" -#: common/models.py:1459 +#: common/models.py:1528 msgid "Copy Part BOM Data" -msgstr "" +msgstr "Parça ML Verisini Kopyala" -#: common/models.py:1460 +#: common/models.py:1529 msgid "Copy BOM data by default when duplicating a part" -msgstr "" +msgstr "Bir parçayo çoğaltırken varsayılan olarak ML verisini kopyala" -#: common/models.py:1465 +#: common/models.py:1534 msgid "Copy Part Parameter Data" -msgstr "" +msgstr "Parça Parametre Verisini Kopyala" -#: common/models.py:1466 +#: common/models.py:1535 msgid "Copy parameter data by default when duplicating a part" -msgstr "" +msgstr "Bir parçayı çoğaltırken varsayılan olarak parametre verisini kopyala" -#: common/models.py:1471 +#: common/models.py:1540 msgid "Copy Part Test Data" -msgstr "" +msgstr "Parça Test Verisini Kopyala" -#: common/models.py:1472 +#: common/models.py:1541 msgid "Copy test data by default when duplicating a part" -msgstr "" +msgstr "Bir parçayı çoğaltırken varsayılan olarak test verisini kopyala" -#: common/models.py:1477 +#: common/models.py:1546 msgid "Copy Category Parameter Templates" msgstr "Kategori Paremetre Sablonu Kopyala" -#: common/models.py:1478 +#: common/models.py:1547 msgid "Copy category parameter templates when creating a part" msgstr "Parça oluştururken kategori parametre şablonlarını kopyala" -#: common/models.py:1483 part/admin.py:108 part/models.py:3945 -#: report/models.py:293 report/models.py:360 report/serializers.py:90 -#: report/serializers.py:131 stock/serializers.py:232 +#: common/models.py:1552 part/admin.py:108 part/models.py:4003 +#: report/models.py:301 report/models.py:368 report/serializers.py:91 +#: report/serializers.py:132 stock/serializers.py:233 #: templates/js/translated/table_filters.js:138 #: templates/js/translated/table_filters.js:775 msgid "Template" msgstr "Şablon" -#: common/models.py:1484 +#: common/models.py:1553 msgid "Parts are templates by default" msgstr "Parçaları varsayılan olan şablondur" -#: common/models.py:1490 +#: common/models.py:1559 msgid "Parts can be assembled from other components by default" msgstr "Parçalar varsayılan olarak başka bileşenlerden monte edilebilir" -#: common/models.py:1495 part/admin.py:95 part/models.py:1160 -#: part/serializers.py:1596 templates/js/translated/table_filters.js:737 +#: common/models.py:1564 part/admin.py:95 part/models.py:1221 +#: part/serializers.py:1654 templates/js/translated/table_filters.js:737 msgid "Component" msgstr "Bileşen" -#: common/models.py:1496 +#: common/models.py:1565 msgid "Parts can be used as sub-components by default" msgstr "Parçalar varsayılan olarak alt bileşen olarak kullanılabilir" -#: common/models.py:1501 part/admin.py:100 part/models.py:1178 +#: common/models.py:1570 part/admin.py:100 part/models.py:1239 msgid "Purchaseable" msgstr "Satın Alınabilir" -#: common/models.py:1502 +#: common/models.py:1571 msgid "Parts are purchaseable by default" msgstr "Parçalar varsayılan olarak satın alınabilir" -#: common/models.py:1507 part/admin.py:104 part/models.py:1184 +#: common/models.py:1576 part/admin.py:104 part/models.py:1245 #: templates/js/translated/table_filters.js:763 msgid "Salable" msgstr "Satılabilir" -#: common/models.py:1508 +#: common/models.py:1577 msgid "Parts are salable by default" msgstr "Parçalar varsayılan olarak satılabilir" -#: common/models.py:1514 +#: common/models.py:1583 msgid "Parts are trackable by default" msgstr "Parçalar varsayılan olarak takip edilebilir" -#: common/models.py:1519 part/admin.py:117 part/models.py:1200 -#: part/templates/part/part_base.html:154 +#: common/models.py:1588 part/admin.py:117 part/models.py:1261 +#: part/templates/part/part_base.html:155 #: templates/js/translated/table_filters.js:142 #: templates/js/translated/table_filters.js:787 msgid "Virtual" msgstr "Sanal" -#: common/models.py:1520 +#: common/models.py:1589 msgid "Parts are virtual by default" msgstr "Parçalar varsayılan olarak sanaldır" -#: common/models.py:1525 +#: common/models.py:1594 msgid "Show Import in Views" -msgstr "" +msgstr "Görünümlerde İçe Aktarmayı Göster" -#: common/models.py:1526 +#: common/models.py:1595 msgid "Display the import wizard in some part views" -msgstr "" +msgstr "Bazı parça görünümlerinde içe aktarma sihirbazını görüntüle" -#: common/models.py:1531 +#: common/models.py:1600 msgid "Show related parts" msgstr "İlgili parçaları göster" -#: common/models.py:1532 +#: common/models.py:1601 msgid "Display related parts for a part" -msgstr "" - -#: common/models.py:1537 -msgid "Initial Stock Data" -msgstr "" - -#: common/models.py:1538 -msgid "Allow creation of initial stock when adding a new part" -msgstr "" - -#: common/models.py:1543 templates/js/translated/part.js:108 -msgid "Initial Supplier Data" -msgstr "" - -#: common/models.py:1545 -msgid "Allow creation of initial supplier data when adding a new part" -msgstr "" - -#: common/models.py:1551 -msgid "Part Name Display Format" -msgstr "" - -#: common/models.py:1552 -msgid "Format to display the part name" -msgstr "" - -#: common/models.py:1558 -msgid "Part Category Default Icon" -msgstr "" - -#: common/models.py:1559 -msgid "Part category default icon (empty means no icon)" -msgstr "" - -#: common/models.py:1564 -msgid "Enforce Parameter Units" -msgstr "" - -#: common/models.py:1566 -msgid "If units are provided, parameter values must match the specified units" -msgstr "" - -#: common/models.py:1572 -msgid "Minimum Pricing Decimal Places" -msgstr "" - -#: common/models.py:1574 -msgid "Minimum number of decimal places to display when rendering pricing data" -msgstr "" - -#: common/models.py:1585 -msgid "Maximum Pricing Decimal Places" -msgstr "" - -#: common/models.py:1587 -msgid "Maximum number of decimal places to display when rendering pricing data" -msgstr "" - -#: common/models.py:1598 -msgid "Use Supplier Pricing" -msgstr "" - -#: common/models.py:1600 -msgid "Include supplier price breaks in overall pricing calculations" -msgstr "" +msgstr "Bir parça için ilgili parçaları göster" #: common/models.py:1606 -msgid "Purchase History Override" -msgstr "" +msgid "Initial Stock Data" +msgstr "Başlangıç Stok Verisi" -#: common/models.py:1608 -msgid "Historical purchase order pricing overrides supplier price breaks" -msgstr "" +#: common/models.py:1607 +msgid "Allow creation of initial stock when adding a new part" +msgstr "Yeni bir parça eklerken başlangıç stoku oluşturmaya izin ver" + +#: common/models.py:1612 templates/js/translated/part.js:108 +msgid "Initial Supplier Data" +msgstr "Başlangıç Sağlayıcı Verisi" #: common/models.py:1614 -msgid "Use Stock Item Pricing" -msgstr "" +msgid "Allow creation of initial supplier data when adding a new part" +msgstr "Yeni bir parça oluştururken başlangıç sağlayıcı verisi oluşturmaya izin ver" -#: common/models.py:1616 -msgid "Use pricing from manually entered stock data for pricing calculations" -msgstr "" +#: common/models.py:1620 +msgid "Part Name Display Format" +msgstr "Parça Adı Görüntüleme Biçimi" -#: common/models.py:1622 -msgid "Stock Item Pricing Age" -msgstr "" +#: common/models.py:1621 +msgid "Format to display the part name" +msgstr "Parça adını görüntüleme biçimi" -#: common/models.py:1624 -msgid "Exclude stock items older than this number of days from pricing calculations" -msgstr "" +#: common/models.py:1627 +msgid "Part Category Default Icon" +msgstr "Parça Sınıfının Varsayılan Simgesi" -#: common/models.py:1631 -msgid "Use Variant Pricing" -msgstr "" +#: common/models.py:1628 +msgid "Part category default icon (empty means no icon)" +msgstr "Parça sınıfı için varsayılan simge (boş bırakılırsa simge kullanılmaz)" -#: common/models.py:1632 -msgid "Include variant pricing in overall pricing calculations" -msgstr "" +#: common/models.py:1633 +msgid "Enforce Parameter Units" +msgstr "Parametre Birimlerini Zorunlu Kıl" -#: common/models.py:1637 -msgid "Active Variants Only" -msgstr "" +#: common/models.py:1635 +msgid "If units are provided, parameter values must match the specified units" +msgstr "Birimler sağlanırsa, parametre değerleri belirtilen birimlere uymalıdır" -#: common/models.py:1639 -msgid "Only use active variant parts for calculating variant pricing" -msgstr "" +#: common/models.py:1641 +msgid "Minimum Pricing Decimal Places" +msgstr "Minimum Fiyatlandırma Ondalık Basamakları" -#: common/models.py:1645 -msgid "Pricing Rebuild Interval" -msgstr "" - -#: common/models.py:1647 -msgid "Number of days before part pricing is automatically updated" -msgstr "" +#: common/models.py:1643 +msgid "Minimum number of decimal places to display when rendering pricing data" +msgstr "Fiiyatlandırma verisini oluştururken gösterilecek ondalık basamakların minimum sayısı" #: common/models.py:1654 -msgid "Internal Prices" -msgstr "" +msgid "Maximum Pricing Decimal Places" +msgstr "Maksimum Fiyatlandırma Ondalık Basamakları" -#: common/models.py:1655 -msgid "Enable internal prices for parts" -msgstr "" +#: common/models.py:1656 +msgid "Maximum number of decimal places to display when rendering pricing data" +msgstr "Fiiyatlandırma verisini oluştururken gösterilecek ondalık basamakların maksimum sayısı" -#: common/models.py:1660 -msgid "Internal Price Override" -msgstr "" - -#: common/models.py:1662 -msgid "If available, internal prices override price range calculations" -msgstr "" - -#: common/models.py:1668 -msgid "Enable label printing" -msgstr "" +#: common/models.py:1667 +msgid "Use Supplier Pricing" +msgstr "Sağlayıcı Fiyatlandırmasını Kullan" #: common/models.py:1669 -msgid "Enable label printing from the web interface" -msgstr "" +msgid "Include supplier price breaks in overall pricing calculations" +msgstr "Genel fiyatlandırma hesaplamalarına sağlayıcı fiyat aralıklarını ekle" -#: common/models.py:1674 -msgid "Label Image DPI" -msgstr "" +#: common/models.py:1675 +msgid "Purchase History Override" +msgstr "Satın Alma Geçmişini Geçersiz Kılma" -#: common/models.py:1676 -msgid "DPI resolution when generating image files to supply to label printing plugins" -msgstr "" - -#: common/models.py:1682 -msgid "Enable Reports" -msgstr "" +#: common/models.py:1677 +msgid "Historical purchase order pricing overrides supplier price breaks" +msgstr "Geçmiş satınalma siparişi fiyatlandırması, sağlayıcı fiyat aralıklarını geçersiz kılar" #: common/models.py:1683 -msgid "Enable generation of reports" -msgstr "" +msgid "Use Stock Item Pricing" +msgstr "Stok Ögesi Fiyatlandırmasını Kullan" -#: common/models.py:1688 templates/stats.html:25 +#: common/models.py:1685 +msgid "Use pricing from manually entered stock data for pricing calculations" +msgstr "Fiyatlandırma hesaplamaları için elle girilen stok verisinin fiyatlandırmasını kullan" + +#: common/models.py:1691 +msgid "Stock Item Pricing Age" +msgstr "Stok Ögesi Fiyatlandırma Yaşı" + +#: common/models.py:1693 +msgid "Exclude stock items older than this number of days from pricing calculations" +msgstr "Bu gün sayısından daha eski olan stok kalemlerini fiyatlandırma hesaplamalarından hariç tut" + +#: common/models.py:1700 +msgid "Use Variant Pricing" +msgstr "Türev Fiyatlandırması Kullan" + +#: common/models.py:1701 +msgid "Include variant pricing in overall pricing calculations" +msgstr "Genel fiyat hesaplamalarına türev fiyatlarını da ekle" + +#: common/models.py:1706 +msgid "Active Variants Only" +msgstr "Yalnızca Etkin Türevler" + +#: common/models.py:1708 +msgid "Only use active variant parts for calculating variant pricing" +msgstr "Türev fiyatlandırması için yalnızca etkin türev parçaları kullan" + +#: common/models.py:1714 +msgid "Pricing Rebuild Interval" +msgstr "Fiyatlandırmayı Yeniden Oluşturma Aralığı" + +#: common/models.py:1716 +msgid "Number of days before part pricing is automatically updated" +msgstr "Parça fiyatlandrımasının otomatik güncellenmesinden önceki gün sayısı" + +#: common/models.py:1723 +msgid "Internal Prices" +msgstr "Dahili Fiyatlar" + +#: common/models.py:1724 +msgid "Enable internal prices for parts" +msgstr "Parçalar için dahili fiyatları etkinleştir" + +#: common/models.py:1729 +msgid "Internal Price Override" +msgstr "Dahili Fiyat Geçersiz Kılma" + +#: common/models.py:1731 +msgid "If available, internal prices override price range calculations" +msgstr "Varsa, dahili fiyatlar fiyat aralığı hesaplarını geçersiz kılar" + +#: common/models.py:1737 +msgid "Enable label printing" +msgstr "Etiket yazdırmayı etkinleştir" + +#: common/models.py:1738 +msgid "Enable label printing from the web interface" +msgstr "Web arayüzünden etiket yazdırmayı etkinleştir" + +#: common/models.py:1743 +msgid "Label Image DPI" +msgstr "Etiket Resmi DPI Değeri" + +#: common/models.py:1745 +msgid "DPI resolution when generating image files to supply to label printing plugins" +msgstr "Resim dosyaları üretirken etiket yazdırma eklentilerine sağlanacak DPI çözünürlüğü" + +#: common/models.py:1751 +msgid "Enable Reports" +msgstr "Raporları Etkinleştir" + +#: common/models.py:1752 +msgid "Enable generation of reports" +msgstr "Rapor üretimini etkinleştir" + +#: common/models.py:1757 templates/stats.html:25 msgid "Debug Mode" msgstr "Hata Ayıklama Modu" -#: common/models.py:1689 +#: common/models.py:1758 msgid "Generate reports in debug mode (HTML output)" msgstr "Raporları hata ayıklama modunda üret (HTML çıktısı)" -#: common/models.py:1694 +#: common/models.py:1763 msgid "Log Report Errors" -msgstr "" +msgstr "Rapor Hatalarını Günlüğe Kaydet" -#: common/models.py:1695 +#: common/models.py:1764 msgid "Log errors which occur when generating reports" -msgstr "" +msgstr "Raporlar üretirken oluşan hataları günlüğe kaydet" -#: common/models.py:1700 plugin/builtin/labels/label_sheet.py:28 -#: report/models.py:301 +#: common/models.py:1769 plugin/builtin/labels/label_sheet.py:28 +#: report/models.py:309 msgid "Page Size" msgstr "Sayfa Boyutu" -#: common/models.py:1701 +#: common/models.py:1770 msgid "Default page size for PDF reports" msgstr "PDF raporlar için varsayılan sayfa boyutu" -#: common/models.py:1706 -msgid "Enable Test Reports" -msgstr "" - -#: common/models.py:1707 -msgid "Enable generation of test reports" -msgstr "" - -#: common/models.py:1712 -msgid "Attach Test Reports" -msgstr "" - -#: common/models.py:1714 -msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item" -msgstr "" - -#: common/models.py:1720 -msgid "Globally Unique Serials" -msgstr "" - -#: common/models.py:1721 -msgid "Serial numbers for stock items must be globally unique" -msgstr "" - -#: common/models.py:1726 -msgid "Autofill Serial Numbers" -msgstr "" - -#: common/models.py:1727 -msgid "Autofill serial numbers in forms" -msgstr "" - -#: common/models.py:1732 -msgid "Delete Depleted Stock" -msgstr "" - -#: common/models.py:1734 -msgid "Determines default behavior when a stock item is depleted" -msgstr "" - -#: common/models.py:1740 -msgid "Batch Code Template" -msgstr "" - -#: common/models.py:1742 -msgid "Template for generating default batch codes for stock items" -msgstr "" - -#: common/models.py:1747 -msgid "Stock Expiry" -msgstr "" - -#: common/models.py:1748 -msgid "Enable stock expiry functionality" -msgstr "" - -#: common/models.py:1753 -msgid "Sell Expired Stock" -msgstr "" - -#: common/models.py:1754 -msgid "Allow sale of expired stock" -msgstr "" - -#: common/models.py:1759 -msgid "Stock Stale Time" -msgstr "" - -#: common/models.py:1761 -msgid "Number of days stock items are considered stale before expiring" -msgstr "" - -#: common/models.py:1768 -msgid "Build Expired Stock" -msgstr "" - -#: common/models.py:1769 -msgid "Allow building with expired stock" -msgstr "" - -#: common/models.py:1774 -msgid "Stock Ownership Control" -msgstr "" - #: common/models.py:1775 +msgid "Globally Unique Serials" +msgstr "Küresel Çapta Benzersiz Seri Numaraları" + +#: common/models.py:1776 +msgid "Serial numbers for stock items must be globally unique" +msgstr "Stok ögeleri için seri numaraları küresel çapta benzersiz olmalıdır" + +#: common/models.py:1781 +msgid "Autofill Serial Numbers" +msgstr "Seri Numaralarını Otomatik Doldur" + +#: common/models.py:1782 +msgid "Autofill serial numbers in forms" +msgstr "Seri numaralarını formlarda otomatik doldur" + +#: common/models.py:1787 +msgid "Delete Depleted Stock" +msgstr "Tükenen Stoku Sil" + +#: common/models.py:1789 +msgid "Determines default behavior when a stock item is depleted" +msgstr "Bir stok ögesi tükendiğinde varsayılan davranışı belirler" + +#: common/models.py:1795 +msgid "Batch Code Template" +msgstr "Parti Kodu Şablonu" + +#: common/models.py:1797 +msgid "Template for generating default batch codes for stock items" +msgstr "Stok ögelerine varsayılan parti kodlarını üretmek için şablon" + +#: common/models.py:1802 +msgid "Stock Expiry" +msgstr "Stok Sona Erme Tarihi" + +#: common/models.py:1803 +msgid "Enable stock expiry functionality" +msgstr "Stokun sona erme işlevselliğini etkinleştir" + +#: common/models.py:1808 +msgid "Sell Expired Stock" +msgstr "Süresi Dolan Stoku Sat" + +#: common/models.py:1809 +msgid "Allow sale of expired stock" +msgstr "Süresi dolan stok satışına izin ver" + +#: common/models.py:1814 +msgid "Stock Stale Time" +msgstr "Stok Eskime Süresi" + +#: common/models.py:1816 +msgid "Number of days stock items are considered stale before expiring" +msgstr "Stok öğelerinin son kullanma tarihi geçmeden eskimiş sayıldığı gün sayısı" + +#: common/models.py:1823 +msgid "Build Expired Stock" +msgstr "Yapımın Süresi Geçmiş Stoku" + +#: common/models.py:1824 +msgid "Allow building with expired stock" +msgstr "Süresi geçmiş stok ile yapıma izin ver" + +#: common/models.py:1829 +msgid "Stock Ownership Control" +msgstr "Stok Sahipliği Kontrolü" + +#: common/models.py:1830 msgid "Enable ownership control over stock locations and items" msgstr "Stok konumu ve ögeler üzerinde sahiplik kontrolünü etkinleştirin" -#: common/models.py:1780 +#: common/models.py:1835 msgid "Stock Location Default Icon" -msgstr "" - -#: common/models.py:1781 -msgid "Stock location default icon (empty means no icon)" -msgstr "" - -#: common/models.py:1786 -msgid "Show Installed Stock Items" -msgstr "" - -#: common/models.py:1787 -msgid "Display installed stock items in stock tables" -msgstr "" - -#: common/models.py:1792 -msgid "Check BOM when installing items" -msgstr "" - -#: common/models.py:1794 -msgid "Installed stock items must exist in the BOM for the parent part" -msgstr "" - -#: common/models.py:1800 -msgid "Allow Out of Stock Transfer" -msgstr "" - -#: common/models.py:1802 -msgid "Allow stock items which are not in stock to be transferred between stock locations" -msgstr "" - -#: common/models.py:1808 -msgid "Build Order Reference Pattern" -msgstr "" - -#: common/models.py:1810 -msgid "Required pattern for generating Build Order reference field" -msgstr "" - -#: common/models.py:1816 common/models.py:1872 common/models.py:1894 -#: common/models.py:1930 -msgid "Require Responsible Owner" -msgstr "" - -#: common/models.py:1817 common/models.py:1873 common/models.py:1895 -#: common/models.py:1931 -msgid "A responsible owner must be assigned to each order" -msgstr "" - -#: common/models.py:1822 -msgid "Require Active Part" -msgstr "" - -#: common/models.py:1823 -msgid "Prevent build order creation for inactive parts" -msgstr "" - -#: common/models.py:1828 -msgid "Require Locked Part" -msgstr "" - -#: common/models.py:1829 -msgid "Prevent build order creation for unlocked parts" -msgstr "" - -#: common/models.py:1834 -msgid "Require Valid BOM" -msgstr "" +msgstr "Varsayılan Stok Konumu Simgesi" #: common/models.py:1836 -msgid "Prevent build order creation unless BOM has been validated" -msgstr "" +msgid "Stock location default icon (empty means no icon)" +msgstr "Stok konumu için varsayılan simge (boşsa simge yok demektir)" + +#: common/models.py:1841 +msgid "Show Installed Stock Items" +msgstr "Kurulu Stok Ögelerini Göster" #: common/models.py:1842 -msgid "Require Closed Child Orders" -msgstr "" +msgid "Display installed stock items in stock tables" +msgstr "Stok tablolarında kurulu stok ögelerini göster" -#: common/models.py:1844 -msgid "Prevent build order completion until all child orders are closed" -msgstr "" +#: common/models.py:1847 +msgid "Check BOM when installing items" +msgstr "Ögelerin kurulumunu yaparken ML'i kontrol et" -#: common/models.py:1850 -msgid "Block Until Tests Pass" -msgstr "" +#: common/models.py:1849 +msgid "Installed stock items must exist in the BOM for the parent part" +msgstr "Kurulu stok ögeleri üst parçanın ML'nde mevcut olmalıdır" -#: common/models.py:1852 -msgid "Prevent build outputs from being completed until all required tests pass" -msgstr "" +#: common/models.py:1855 +msgid "Allow Out of Stock Transfer" +msgstr "Stok Dışı Aktarıma İzin Ver" -#: common/models.py:1858 -msgid "Enable Return Orders" -msgstr "" +#: common/models.py:1857 +msgid "Allow stock items which are not in stock to be transferred between stock locations" +msgstr "Stokta olmayan ögelerin stok konumları arasında aktarılmasına izin ver" -#: common/models.py:1859 -msgid "Enable return order functionality in the user interface" -msgstr "" +#: common/models.py:1863 +msgid "Build Order Reference Pattern" +msgstr "Yapım Siparişi Referans Kalıbı" -#: common/models.py:1864 -msgid "Return Order Reference Pattern" -msgstr "" +#: common/models.py:1865 +msgid "Required pattern for generating Build Order reference field" +msgstr "Yapım Siparişi referans alanını üretmek için gerekli kalıp" -#: common/models.py:1866 -msgid "Required pattern for generating Return Order reference field" -msgstr "" +#: common/models.py:1871 common/models.py:1927 common/models.py:1949 +#: common/models.py:1985 +msgid "Require Responsible Owner" +msgstr "Sorumlu Sahip Gerektir" + +#: common/models.py:1872 common/models.py:1928 common/models.py:1950 +#: common/models.py:1986 +msgid "A responsible owner must be assigned to each order" +msgstr "Her siparişe sorumlu bir yetkili atanmalıdır." + +#: common/models.py:1877 +msgid "Require Active Part" +msgstr "Aktif Parça Gerekli" #: common/models.py:1878 -msgid "Edit Completed Return Orders" -msgstr "" +msgid "Prevent build order creation for inactive parts" +msgstr "Etkin olmayan parçalar için yapı sırası oluşturulmasını önleyin." -#: common/models.py:1880 -msgid "Allow editing of return orders after they have been completed" -msgstr "" +#: common/models.py:1883 +msgid "Require Locked Part" +msgstr "Kilitli Parça Gerekli" -#: common/models.py:1886 -msgid "Sales Order Reference Pattern" -msgstr "" +#: common/models.py:1884 +msgid "Prevent build order creation for unlocked parts" +msgstr "Kilitlenmemiş parçalar için yapı sırası oluşturulmasını engelle." -#: common/models.py:1888 -msgid "Required pattern for generating Sales Order reference field" -msgstr "" +#: common/models.py:1889 +msgid "Require Valid BOM" +msgstr "Geçerli BOM gereklidir." -#: common/models.py:1900 -msgid "Sales Order Default Shipment" -msgstr "" +#: common/models.py:1891 +msgid "Prevent build order creation unless BOM has been validated" +msgstr "BOM doğrulanmadan yapı sırası oluşturulmasını engelle." -#: common/models.py:1901 -msgid "Enable creation of default shipment with sales orders" -msgstr "" +#: common/models.py:1897 +msgid "Require Closed Child Orders" +msgstr "Kapalı Alt Siparişler Gerekli" -#: common/models.py:1906 -msgid "Edit Completed Sales Orders" -msgstr "" +#: common/models.py:1899 +msgid "Prevent build order completion until all child orders are closed" +msgstr "Tüm alt siparişler kapatılana kadar yapı sırası tamamlanmasını engelle." -#: common/models.py:1908 -msgid "Allow editing of sales orders after they have been shipped or completed" -msgstr "" +#: common/models.py:1905 +msgid "Block Until Tests Pass" +msgstr "Testler Geçene Kadar Engelle" + +#: common/models.py:1907 +msgid "Prevent build outputs from being completed until all required tests pass" +msgstr "Tüm gerekli testler geçene kadar yapı çıktıları tamamlanmasını engelle" + +#: common/models.py:1913 +msgid "Enable Return Orders" +msgstr "İade Siparişlerini Etkinleştir" #: common/models.py:1914 +msgid "Enable return order functionality in the user interface" +msgstr "Kullanıcı arayüzünde iade siparişi işlevselliğini etkinleştirin." + +#: common/models.py:1919 +msgid "Return Order Reference Pattern" +msgstr "Kullanıcı arayüzünde iade siparişi işlevselliğini etkinleştirin." + +#: common/models.py:1921 +msgid "Required pattern for generating Return Order reference field" +msgstr "İade Sipariş referans alanı oluşturmak için gerekli desen" + +#: common/models.py:1933 +msgid "Edit Completed Return Orders" +msgstr "Tamamlanan İade Siparişlerini Düzenle" + +#: common/models.py:1935 +msgid "Allow editing of return orders after they have been completed" +msgstr "Tamamlandıktan sonra iade emirlerini düzenlemeye izin ver" + +#: common/models.py:1941 +msgid "Sales Order Reference Pattern" +msgstr "Satış Siparişi Referans Şablonu" + +#: common/models.py:1943 +msgid "Required pattern for generating Sales Order reference field" +msgstr "Satış Siparişi referans alanını üretmek için gerekli şablon" + +#: common/models.py:1955 +msgid "Sales Order Default Shipment" +msgstr "Satış Siparişi Varsayılan Gönderi" + +#: common/models.py:1956 +msgid "Enable creation of default shipment with sales orders" +msgstr "Satış siparişleriyle varsayılan gönderi oluşturmayı etkinleştir" + +#: common/models.py:1961 +msgid "Edit Completed Sales Orders" +msgstr "Tamamlanmış Satış Siparişini Düzenle" + +#: common/models.py:1963 +msgid "Allow editing of sales orders after they have been shipped or completed" +msgstr "Gönderilen veya tamamlanan satış siparişlerini düzenlemeye izin ver" + +#: common/models.py:1969 msgid "Mark Shipped Orders as Complete" -msgstr "" +msgstr "Gönderilen Siparişleri Tamamlandı Olarak İmle" -#: common/models.py:1916 +#: common/models.py:1971 msgid "Sales orders marked as shipped will automatically be completed, bypassing the \"shipped\" status" -msgstr "" +msgstr "Gönderildi olarak imlenen satış siparişleri \"gönderildi\" durumu atlanarak otomatik olarak tamamlanacaktır" -#: common/models.py:1922 +#: common/models.py:1977 msgid "Purchase Order Reference Pattern" -msgstr "" +msgstr "Satın Alma Siparişi Referans Şablonu" -#: common/models.py:1924 +#: common/models.py:1979 msgid "Required pattern for generating Purchase Order reference field" -msgstr "" +msgstr "Satın Alma Siparişi referans alanını üretmek için gerekli şablon" -#: common/models.py:1936 +#: common/models.py:1991 msgid "Edit Completed Purchase Orders" -msgstr "" +msgstr "Tamamlanan Satın Alma Siparişlerini Düzenle" -#: common/models.py:1938 +#: common/models.py:1993 msgid "Allow editing of purchase orders after they have been shipped or completed" -msgstr "" +msgstr "Gönderildikten veya tamamlandıktan sonra satın alma siparişlerini düzenlemeye izin ver" -#: common/models.py:1944 +#: common/models.py:1999 msgid "Auto Complete Purchase Orders" -msgstr "" +msgstr "Satın Alma Siparişlerini Otomatik Tamamla" -#: common/models.py:1946 +#: common/models.py:2001 msgid "Automatically mark purchase orders as complete when all line items are received" -msgstr "" +msgstr "Tüm satır ögeleri alındığında satın alma siparişini otomatikmen tamamlandı olarak imle" -#: common/models.py:1953 +#: common/models.py:2008 msgid "Enable password forgot" -msgstr "" +msgstr "Şifreyi unuttumu etkinleştir" -#: common/models.py:1954 +#: common/models.py:2009 msgid "Enable password forgot function on the login pages" -msgstr "" +msgstr "Giriş yapma sayfasında şifremi unuttum işlevini etkinleştir" -#: common/models.py:1959 +#: common/models.py:2014 msgid "Enable registration" -msgstr "" +msgstr "Kayıt olmayı etkinleştir" -#: common/models.py:1960 +#: common/models.py:2015 msgid "Enable self-registration for users on the login pages" -msgstr "" +msgstr "Giriş yapma sayfalarında kullanıcılar için kendini kaydetme işlevini etkinleştir" -#: common/models.py:1965 +#: common/models.py:2020 msgid "Enable SSO" msgstr "" -#: common/models.py:1966 +#: common/models.py:2021 msgid "Enable SSO on the login pages" msgstr "" -#: common/models.py:1971 +#: common/models.py:2026 msgid "Enable SSO registration" msgstr "" -#: common/models.py:1973 +#: common/models.py:2028 msgid "Enable self-registration via SSO for users on the login pages" msgstr "" -#: common/models.py:1979 +#: common/models.py:2034 msgid "Enable SSO group sync" msgstr "" -#: common/models.py:1981 +#: common/models.py:2036 msgid "Enable synchronizing InvenTree groups with groups provided by the IdP" msgstr "" -#: common/models.py:1987 +#: common/models.py:2042 msgid "SSO group key" msgstr "" -#: common/models.py:1989 +#: common/models.py:2044 msgid "The name of the groups claim attribute provided by the IdP" msgstr "" -#: common/models.py:1995 +#: common/models.py:2050 msgid "SSO group map" msgstr "" -#: common/models.py:1997 +#: common/models.py:2052 msgid "A mapping from SSO groups to local InvenTree groups. If the local group does not exist, it will be created." msgstr "" -#: common/models.py:2003 +#: common/models.py:2058 msgid "Remove groups outside of SSO" msgstr "" -#: common/models.py:2005 +#: common/models.py:2060 msgid "Whether groups assigned to the user should be removed if they are not backend by the IdP. Disabling this setting might cause security issues" msgstr "" -#: common/models.py:2011 +#: common/models.py:2066 msgid "Email required" msgstr "" -#: common/models.py:2012 +#: common/models.py:2067 msgid "Require user to supply mail on signup" msgstr "" -#: common/models.py:2017 +#: common/models.py:2072 msgid "Auto-fill SSO users" msgstr "" -#: common/models.py:2019 +#: common/models.py:2074 msgid "Automatically fill out user-details from SSO account-data" -msgstr "" +msgstr "Kullanıcı ayrıntılarını TOA hesabı verisinden otomatik olarak doldur" -#: common/models.py:2025 +#: common/models.py:2080 msgid "Mail twice" -msgstr "" +msgstr "Postayı iki kez gir" -#: common/models.py:2026 +#: common/models.py:2081 msgid "On signup ask users twice for their mail" -msgstr "" +msgstr "Hesap oluştururken kullanıcıların postalarını iki kez girmelerini iste" -#: common/models.py:2031 +#: common/models.py:2086 msgid "Password twice" -msgstr "" +msgstr "Şifreyi iki kez gir" -#: common/models.py:2032 +#: common/models.py:2087 msgid "On signup ask users twice for their password" -msgstr "" +msgstr "Hesap oluştururken kullanıcıların şifrelerini iki kez girmesini iste" -#: common/models.py:2037 +#: common/models.py:2092 msgid "Allowed domains" -msgstr "" +msgstr "Alanlara izin ver" -#: common/models.py:2039 +#: common/models.py:2094 msgid "Restrict signup to certain domains (comma-separated, starting with @)" -msgstr "" +msgstr "Belirli alanlara hesap açmayı kısıtla (virgülle ayrılmış, @ ile başlayan)" -#: common/models.py:2045 +#: common/models.py:2100 msgid "Group on signup" -msgstr "" +msgstr "Hesap oluştururken grup" -#: common/models.py:2047 +#: common/models.py:2102 msgid "Group to which new users are assigned on registration. If SSO group sync is enabled, this group is only set if no group can be assigned from the IdP." -msgstr "" +msgstr "Yeni kullanıcıların kayıt sırasında atanacağı grup. Eğer TOA grup eşitlemesi etkinse, yalnızca ıdP'den hiçbir grup atanamazsa bu grup ayarlanır." -#: common/models.py:2053 +#: common/models.py:2108 msgid "Enforce MFA" -msgstr "" +msgstr "ÇFKD'yi Zorunlu Kıl" -#: common/models.py:2054 +#: common/models.py:2109 msgid "Users must use multifactor security." msgstr "" -#: common/models.py:2059 +#: common/models.py:2114 msgid "Check plugins on startup" msgstr "" -#: common/models.py:2061 +#: common/models.py:2116 msgid "Check that all plugins are installed on startup - enable in container environments" msgstr "" -#: common/models.py:2069 +#: common/models.py:2124 msgid "Check for plugin updates" msgstr "" -#: common/models.py:2070 +#: common/models.py:2125 msgid "Enable periodic checks for updates to installed plugins" msgstr "" -#: common/models.py:2076 +#: common/models.py:2131 msgid "Enable URL integration" msgstr "" -#: common/models.py:2077 +#: common/models.py:2132 msgid "Enable plugins to add URL routes" msgstr "" -#: common/models.py:2083 +#: common/models.py:2138 msgid "Enable navigation integration" msgstr "" -#: common/models.py:2084 +#: common/models.py:2139 msgid "Enable plugins to integrate into navigation" msgstr "" -#: common/models.py:2090 +#: common/models.py:2145 msgid "Enable app integration" msgstr "" -#: common/models.py:2091 +#: common/models.py:2146 msgid "Enable plugins to add apps" msgstr "" -#: common/models.py:2097 +#: common/models.py:2152 msgid "Enable schedule integration" msgstr "" -#: common/models.py:2098 +#: common/models.py:2153 msgid "Enable plugins to run scheduled tasks" msgstr "" -#: common/models.py:2104 +#: common/models.py:2159 msgid "Enable event integration" msgstr "" -#: common/models.py:2105 +#: common/models.py:2160 msgid "Enable plugins to respond to internal events" msgstr "" -#: common/models.py:2111 +#: common/models.py:2166 +msgid "Enable interface integration" +msgstr "" + +#: common/models.py:2167 +msgid "Enable plugins to integrate into the user interface" +msgstr "" + +#: common/models.py:2173 msgid "Enable project codes" msgstr "" -#: common/models.py:2112 +#: common/models.py:2174 msgid "Enable project codes for tracking projects" msgstr "" -#: common/models.py:2117 +#: common/models.py:2179 msgid "Stocktake Functionality" msgstr "" -#: common/models.py:2119 +#: common/models.py:2181 msgid "Enable stocktake functionality for recording stock levels and calculating stock value" msgstr "" -#: common/models.py:2125 +#: common/models.py:2187 msgid "Exclude External Locations" msgstr "" -#: common/models.py:2127 +#: common/models.py:2189 msgid "Exclude stock items in external locations from stocktake calculations" msgstr "" -#: common/models.py:2133 +#: common/models.py:2195 msgid "Automatic Stocktake Period" msgstr "" -#: common/models.py:2135 +#: common/models.py:2197 msgid "Number of days between automatic stocktake recording (set to zero to disable)" msgstr "" -#: common/models.py:2141 +#: common/models.py:2203 msgid "Report Deletion Interval" msgstr "" -#: common/models.py:2143 +#: common/models.py:2205 msgid "Stocktake reports will be deleted after specified number of days" msgstr "" -#: common/models.py:2150 +#: common/models.py:2212 msgid "Display Users full names" msgstr "" -#: common/models.py:2151 +#: common/models.py:2213 msgid "Display Users full names instead of usernames" msgstr "" -#: common/models.py:2156 +#: common/models.py:2218 msgid "Enable Test Station Data" msgstr "" -#: common/models.py:2157 +#: common/models.py:2219 msgid "Enable test station data collection for test results" msgstr "" -#: common/models.py:2169 common/models.py:2549 -msgid "Settings key (must be unique - case insensitive" -msgstr "" - -#: common/models.py:2212 -msgid "Hide inactive parts" -msgstr "" - -#: common/models.py:2214 -msgid "Hide inactive parts in results displayed on the homepage" -msgstr "" - -#: common/models.py:2220 -msgid "Show subscribed parts" -msgstr "" - -#: common/models.py:2221 -msgid "Show subscribed parts on the homepage" +#: common/models.py:2224 +msgid "Create Template on Upload" msgstr "" #: common/models.py:2226 -msgid "Show subscribed categories" +msgid "Create a new test template when uploading test data which does not match an existing template" msgstr "" -#: common/models.py:2227 -msgid "Show subscribed part categories on the homepage" -msgstr "" - -#: common/models.py:2232 -msgid "Show latest parts" -msgstr "" - -#: common/models.py:2233 -msgid "Show latest parts on the homepage" -msgstr "" - -#: common/models.py:2238 -msgid "Show invalid BOMs" -msgstr "" - -#: common/models.py:2239 -msgid "Show BOMs that await validation on the homepage" -msgstr "" - -#: common/models.py:2244 -msgid "Show recent stock changes" -msgstr "" - -#: common/models.py:2245 -msgid "Show recently changed stock items on the homepage" -msgstr "" - -#: common/models.py:2250 -msgid "Show low stock" -msgstr "" - -#: common/models.py:2251 -msgid "Show low stock items on the homepage" -msgstr "" - -#: common/models.py:2256 -msgid "Show depleted stock" -msgstr "" - -#: common/models.py:2257 -msgid "Show depleted stock items on the homepage" -msgstr "" - -#: common/models.py:2262 -msgid "Show needed stock" -msgstr "" - -#: common/models.py:2263 -msgid "Show stock items needed for builds on the homepage" -msgstr "" - -#: common/models.py:2268 -msgid "Show expired stock" -msgstr "" - -#: common/models.py:2269 -msgid "Show expired stock items on the homepage" -msgstr "" - -#: common/models.py:2274 -msgid "Show stale stock" -msgstr "" - -#: common/models.py:2275 -msgid "Show stale stock items on the homepage" -msgstr "" - -#: common/models.py:2280 -msgid "Show pending builds" +#: common/models.py:2279 +msgid "Hide inactive parts" msgstr "" #: common/models.py:2281 -msgid "Show pending builds on the homepage" -msgstr "" - -#: common/models.py:2286 -msgid "Show overdue builds" +msgid "Hide inactive parts in results displayed on the homepage" msgstr "" #: common/models.py:2287 -msgid "Show overdue builds on the homepage" +msgid "Show subscribed parts" msgstr "" -#: common/models.py:2292 -msgid "Show outstanding POs" +#: common/models.py:2288 +msgid "Show subscribed parts on the homepage" msgstr "" #: common/models.py:2293 -msgid "Show outstanding POs on the homepage" +msgid "Show subscribed categories" msgstr "" -#: common/models.py:2298 -msgid "Show overdue POs" +#: common/models.py:2294 +msgid "Show subscribed part categories on the homepage" msgstr "" #: common/models.py:2299 -msgid "Show overdue POs on the homepage" +msgid "Show latest parts" msgstr "" -#: common/models.py:2304 -msgid "Show outstanding SOs" +#: common/models.py:2300 +msgid "Show latest parts on the homepage" msgstr "" #: common/models.py:2305 -msgid "Show outstanding SOs on the homepage" +msgid "Show invalid BOMs" msgstr "" -#: common/models.py:2310 -msgid "Show overdue SOs" +#: common/models.py:2306 +msgid "Show BOMs that await validation on the homepage" msgstr "" #: common/models.py:2311 -msgid "Show overdue SOs on the homepage" +msgid "Show recent stock changes" msgstr "" -#: common/models.py:2316 -msgid "Show pending SO shipments" +#: common/models.py:2312 +msgid "Show recently changed stock items on the homepage" msgstr "" #: common/models.py:2317 -msgid "Show pending SO shipments on the homepage" +msgid "Show low stock" msgstr "" -#: common/models.py:2322 -msgid "Show News" +#: common/models.py:2318 +msgid "Show low stock items on the homepage" msgstr "" #: common/models.py:2323 -msgid "Show news on the homepage" +msgid "Show depleted stock" msgstr "" -#: common/models.py:2328 -msgid "Inline label display" +#: common/models.py:2324 +msgid "Show depleted stock items on the homepage" +msgstr "" + +#: common/models.py:2329 +msgid "Show needed stock" msgstr "" #: common/models.py:2330 -msgid "Display PDF labels in the browser, instead of downloading as a file" +msgid "Show stock items needed for builds on the homepage" +msgstr "" + +#: common/models.py:2335 +msgid "Show expired stock" msgstr "" #: common/models.py:2336 -msgid "Default label printer" +msgid "Show expired stock items on the homepage" msgstr "" -#: common/models.py:2338 -msgid "Configure which label printer should be selected by default" +#: common/models.py:2341 +msgid "Show stale stock" msgstr "" -#: common/models.py:2344 -msgid "Inline report display" +#: common/models.py:2342 +msgid "Show stale stock items on the homepage" msgstr "" -#: common/models.py:2346 -msgid "Display PDF reports in the browser, instead of downloading as a file" +#: common/models.py:2347 +msgid "Show pending builds" msgstr "" -#: common/models.py:2352 -msgid "Search Parts" +#: common/models.py:2348 +msgid "Show pending builds on the homepage" msgstr "" #: common/models.py:2353 -msgid "Display parts in search preview window" +msgid "Show overdue builds" msgstr "" -#: common/models.py:2358 -msgid "Search Supplier Parts" +#: common/models.py:2354 +msgid "Show overdue builds on the homepage" msgstr "" #: common/models.py:2359 -msgid "Display supplier parts in search preview window" +msgid "Show outstanding POs" msgstr "" -#: common/models.py:2364 -msgid "Search Manufacturer Parts" +#: common/models.py:2360 +msgid "Show outstanding POs on the homepage" msgstr "" #: common/models.py:2365 -msgid "Display manufacturer parts in search preview window" +msgid "Show overdue POs" msgstr "" -#: common/models.py:2370 -msgid "Hide Inactive Parts" +#: common/models.py:2366 +msgid "Show overdue POs on the homepage" msgstr "" #: common/models.py:2371 -msgid "Excluded inactive parts from search preview window" +msgid "Show outstanding SOs" msgstr "" -#: common/models.py:2376 -msgid "Search Categories" +#: common/models.py:2372 +msgid "Show outstanding SOs on the homepage" msgstr "" #: common/models.py:2377 -msgid "Display part categories in search preview window" +msgid "Show overdue SOs" msgstr "" -#: common/models.py:2382 -msgid "Search Stock" +#: common/models.py:2378 +msgid "Show overdue SOs on the homepage" msgstr "" #: common/models.py:2383 -msgid "Display stock items in search preview window" +msgid "Show pending SO shipments" msgstr "" -#: common/models.py:2388 -msgid "Hide Unavailable Stock Items" +#: common/models.py:2384 +msgid "Show pending SO shipments on the homepage" +msgstr "" + +#: common/models.py:2389 +msgid "Show News" msgstr "" #: common/models.py:2390 -msgid "Exclude stock items which are not available from the search preview window" +msgid "Show news on the homepage" msgstr "" -#: common/models.py:2396 -msgid "Search Locations" +#: common/models.py:2395 +msgid "Inline label display" msgstr "" #: common/models.py:2397 -msgid "Display stock locations in search preview window" -msgstr "" - -#: common/models.py:2402 -msgid "Search Companies" +msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "" #: common/models.py:2403 -msgid "Display companies in search preview window" +msgid "Default label printer" msgstr "" -#: common/models.py:2408 -msgid "Search Build Orders" +#: common/models.py:2405 +msgid "Configure which label printer should be selected by default" msgstr "" -#: common/models.py:2409 -msgid "Display build orders in search preview window" +#: common/models.py:2411 +msgid "Inline report display" msgstr "" -#: common/models.py:2414 -msgid "Search Purchase Orders" +#: common/models.py:2413 +msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:2415 -msgid "Display purchase orders in search preview window" +#: common/models.py:2419 +msgid "Search Parts" msgstr "" #: common/models.py:2420 -msgid "Exclude Inactive Purchase Orders" +msgid "Display parts in search preview window" msgstr "" -#: common/models.py:2422 -msgid "Exclude inactive purchase orders from search preview window" +#: common/models.py:2425 +msgid "Search Supplier Parts" msgstr "" -#: common/models.py:2428 -msgid "Search Sales Orders" +#: common/models.py:2426 +msgid "Display supplier parts in search preview window" msgstr "" -#: common/models.py:2429 -msgid "Display sales orders in search preview window" +#: common/models.py:2431 +msgid "Search Manufacturer Parts" msgstr "" -#: common/models.py:2434 -msgid "Exclude Inactive Sales Orders" +#: common/models.py:2432 +msgid "Display manufacturer parts in search preview window" msgstr "" -#: common/models.py:2436 -msgid "Exclude inactive sales orders from search preview window" +#: common/models.py:2437 +msgid "Hide Inactive Parts" msgstr "" -#: common/models.py:2442 -msgid "Search Return Orders" +#: common/models.py:2438 +msgid "Excluded inactive parts from search preview window" msgstr "" #: common/models.py:2443 -msgid "Display return orders in search preview window" +msgid "Search Categories" msgstr "" -#: common/models.py:2448 -msgid "Exclude Inactive Return Orders" +#: common/models.py:2444 +msgid "Display part categories in search preview window" +msgstr "" + +#: common/models.py:2449 +msgid "Search Stock" msgstr "" #: common/models.py:2450 -msgid "Exclude inactive return orders from search preview window" +msgid "Display stock items in search preview window" msgstr "" -#: common/models.py:2456 -msgid "Search Preview Results" +#: common/models.py:2455 +msgid "Hide Unavailable Stock Items" msgstr "" -#: common/models.py:2458 -msgid "Number of results to show in each section of the search preview window" +#: common/models.py:2457 +msgid "Exclude stock items which are not available from the search preview window" +msgstr "" + +#: common/models.py:2463 +msgid "Search Locations" msgstr "" #: common/models.py:2464 -msgid "Regex Search" +msgid "Display stock locations in search preview window" msgstr "" -#: common/models.py:2465 -msgid "Enable regular expressions in search queries" +#: common/models.py:2469 +msgid "Search Companies" msgstr "" #: common/models.py:2470 -msgid "Whole Word Search" +msgid "Display companies in search preview window" msgstr "" -#: common/models.py:2471 -msgid "Search queries return results for whole word matches" +#: common/models.py:2475 +msgid "Search Build Orders" msgstr "" #: common/models.py:2476 -msgid "Show Quantity in Forms" -msgstr "Formlarda Miktarı Göster" +msgid "Display build orders in search preview window" +msgstr "" -#: common/models.py:2477 -msgid "Display available part quantity in some forms" +#: common/models.py:2481 +msgid "Search Purchase Orders" msgstr "" #: common/models.py:2482 -msgid "Escape Key Closes Forms" +msgid "Display purchase orders in search preview window" msgstr "" -#: common/models.py:2483 -msgid "Use the escape key to close modal forms" -msgstr "" - -#: common/models.py:2488 -msgid "Fixed Navbar" +#: common/models.py:2487 +msgid "Exclude Inactive Purchase Orders" msgstr "" #: common/models.py:2489 -msgid "The navbar position is fixed to the top of the screen" -msgstr "" - -#: common/models.py:2494 -msgid "Date Format" +msgid "Exclude inactive purchase orders from search preview window" msgstr "" #: common/models.py:2495 -msgid "Preferred format for displaying dates" +msgid "Search Sales Orders" msgstr "" -#: common/models.py:2508 part/templates/part/detail.html:41 -msgid "Part Scheduling" +#: common/models.py:2496 +msgid "Display sales orders in search preview window" +msgstr "" + +#: common/models.py:2501 +msgid "Exclude Inactive Sales Orders" +msgstr "" + +#: common/models.py:2503 +msgid "Exclude inactive sales orders from search preview window" msgstr "" #: common/models.py:2509 -msgid "Display part scheduling information" +msgid "Search Return Orders" msgstr "" -#: common/models.py:2514 part/templates/part/detail.html:62 -msgid "Part Stocktake" +#: common/models.py:2510 +msgid "Display return orders in search preview window" msgstr "" -#: common/models.py:2516 -msgid "Display part stocktake information (if stocktake functionality is enabled)" +#: common/models.py:2515 +msgid "Exclude Inactive Return Orders" msgstr "" -#: common/models.py:2522 -msgid "Table String Length" +#: common/models.py:2517 +msgid "Exclude inactive return orders from search preview window" msgstr "" -#: common/models.py:2524 -msgid "Maximum length limit for strings displayed in table views" +#: common/models.py:2523 +msgid "Search Preview Results" msgstr "" -#: common/models.py:2530 -msgid "Receive error reports" +#: common/models.py:2525 +msgid "Number of results to show in each section of the search preview window" msgstr "" #: common/models.py:2531 -msgid "Receive notifications for system errors" +msgid "Regex Search" msgstr "" -#: common/models.py:2536 -msgid "Last used printing machines" +#: common/models.py:2532 +msgid "Enable regular expressions in search queries" msgstr "" #: common/models.py:2537 +msgid "Whole Word Search" +msgstr "" + +#: common/models.py:2538 +msgid "Search queries return results for whole word matches" +msgstr "" + +#: common/models.py:2543 +msgid "Show Quantity in Forms" +msgstr "Formlarda Miktarı Göster" + +#: common/models.py:2544 +msgid "Display available part quantity in some forms" +msgstr "" + +#: common/models.py:2549 +msgid "Escape Key Closes Forms" +msgstr "" + +#: common/models.py:2550 +msgid "Use the escape key to close modal forms" +msgstr "" + +#: common/models.py:2555 +msgid "Fixed Navbar" +msgstr "" + +#: common/models.py:2556 +msgid "The navbar position is fixed to the top of the screen" +msgstr "" + +#: common/models.py:2561 +msgid "Date Format" +msgstr "" + +#: common/models.py:2562 +msgid "Preferred format for displaying dates" +msgstr "" + +#: common/models.py:2575 part/templates/part/detail.html:41 +msgid "Part Scheduling" +msgstr "" + +#: common/models.py:2576 +msgid "Display part scheduling information" +msgstr "" + +#: common/models.py:2581 part/templates/part/detail.html:62 +msgid "Part Stocktake" +msgstr "" + +#: common/models.py:2583 +msgid "Display part stocktake information (if stocktake functionality is enabled)" +msgstr "" + +#: common/models.py:2589 +msgid "Table String Length" +msgstr "" + +#: common/models.py:2591 +msgid "Maximum length limit for strings displayed in table views" +msgstr "" + +#: common/models.py:2597 +msgid "Receive error reports" +msgstr "" + +#: common/models.py:2598 +msgid "Receive notifications for system errors" +msgstr "" + +#: common/models.py:2603 +msgid "Last used printing machines" +msgstr "" + +#: common/models.py:2604 msgid "Save the last used printing machines for a user" msgstr "" -#: common/models.py:2557 common/models.py:2558 common/models.py:2715 -#: common/models.py:2716 common/models.py:2961 common/models.py:2962 -#: common/models.py:3288 common/models.py:3289 importer/models.py:88 -#: part/models.py:3307 part/models.py:3394 part/models.py:3468 -#: part/models.py:3496 plugin/models.py:274 plugin/models.py:275 -#: report/templates/report/inventree_test_report.html:105 -#: templates/js/translated/stock.js:3120 users/models.py:111 +#: common/models.py:2621 common/models.py:2622 common/models.py:2779 +#: common/models.py:2780 common/models.py:3025 common/models.py:3026 +#: common/models.py:3349 common/models.py:3350 common/models.py:3534 +#: importer/models.py:89 part/models.py:3358 part/models.py:3445 +#: part/models.py:3519 part/models.py:3547 plugin/models.py:313 +#: plugin/models.py:314 report/templates/report/inventree_test_report.html:105 +#: templates/js/translated/stock.js:3121 users/models.py:111 msgid "User" msgstr "Kullanıcı" -#: common/models.py:2580 +#: common/models.py:2644 msgid "Price break quantity" msgstr "" -#: common/models.py:2587 company/serializers.py:513 order/admin.py:42 -#: order/models.py:1430 order/models.py:2417 -#: templates/js/translated/company.js:1823 templates/js/translated/part.js:1892 +#: common/models.py:2651 company/serializers.py:524 order/admin.py:42 +#: order/models.py:1447 order/models.py:2456 +#: templates/js/translated/company.js:1824 templates/js/translated/part.js:1892 #: templates/js/translated/pricing.js:621 #: templates/js/translated/return_order.js:739 msgid "Price" msgstr "Fiyat" -#: common/models.py:2588 +#: common/models.py:2652 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:2692 common/models.py:2877 +#: common/models.py:2756 common/models.py:2941 msgid "Endpoint" msgstr "" -#: common/models.py:2693 +#: common/models.py:2757 msgid "Endpoint at which this webhook is received" msgstr "" -#: common/models.py:2703 +#: common/models.py:2767 msgid "Name for this webhook" msgstr "" -#: common/models.py:2707 +#: common/models.py:2771 msgid "Is this webhook active" msgstr "" -#: common/models.py:2723 users/models.py:159 +#: common/models.py:2787 users/models.py:159 msgid "Token" msgstr "" -#: common/models.py:2724 +#: common/models.py:2788 msgid "Token for access" msgstr "" -#: common/models.py:2732 +#: common/models.py:2796 msgid "Secret" msgstr "" -#: common/models.py:2733 +#: common/models.py:2797 msgid "Shared secret for HMAC" msgstr "" -#: common/models.py:2841 +#: common/models.py:2905 msgid "Message ID" msgstr "" -#: common/models.py:2842 +#: common/models.py:2906 msgid "Unique identifier for this message" msgstr "" -#: common/models.py:2850 +#: common/models.py:2914 msgid "Host" msgstr "" -#: common/models.py:2851 +#: common/models.py:2915 msgid "Host from which this message was received" msgstr "" -#: common/models.py:2859 +#: common/models.py:2923 msgid "Header" msgstr "" -#: common/models.py:2860 +#: common/models.py:2924 msgid "Header of this message" msgstr "" -#: common/models.py:2867 +#: common/models.py:2931 msgid "Body" msgstr "" -#: common/models.py:2868 +#: common/models.py:2932 msgid "Body of this message" msgstr "" -#: common/models.py:2878 +#: common/models.py:2942 msgid "Endpoint on which this message was received" msgstr "" -#: common/models.py:2883 +#: common/models.py:2947 msgid "Worked on" msgstr "" -#: common/models.py:2884 +#: common/models.py:2948 msgid "Was the work on this message finished?" msgstr "" -#: common/models.py:3010 +#: common/models.py:3074 msgid "Id" msgstr "" -#: common/models.py:3012 templates/js/translated/company.js:965 -#: templates/js/translated/news.js:44 +#: common/models.py:3076 part/serializers.py:271 +#: templates/js/translated/company.js:966 templates/js/translated/news.js:44 msgid "Title" msgstr "" -#: common/models.py:3014 common/models.py:3272 company/models.py:149 -#: company/models.py:446 company/models.py:512 company/models.py:818 -#: order/models.py:302 order/models.py:1385 order/models.py:1817 -#: part/admin.py:55 part/models.py:1057 +#: common/models.py:3078 common/models.py:3333 company/models.py:146 +#: company/models.py:443 company/models.py:509 company/models.py:815 +#: order/models.py:309 order/models.py:1402 order/models.py:1846 +#: part/admin.py:55 part/models.py:1118 #: part/templates/part/part_scheduling.html:11 #: report/templates/report/inventree_build_order_report.html:164 -#: stock/admin.py:229 templates/js/translated/company.js:1319 -#: templates/js/translated/company.js:1673 templates/js/translated/order.js:376 +#: stock/admin.py:230 templates/js/translated/company.js:1320 +#: templates/js/translated/company.js:1674 templates/js/translated/order.js:376 #: templates/js/translated/part.js:2475 -#: templates/js/translated/purchase_order.js:2110 -#: templates/js/translated/purchase_order.js:2274 +#: templates/js/translated/purchase_order.js:2094 +#: templates/js/translated/purchase_order.js:2258 #: templates/js/translated/return_order.js:778 -#: templates/js/translated/sales_order.js:1092 -#: templates/js/translated/sales_order.js:2023 +#: templates/js/translated/sales_order.js:1058 +#: templates/js/translated/sales_order.js:2004 msgid "Link" msgstr "Bağlantı" -#: common/models.py:3016 templates/js/translated/news.js:60 +#: common/models.py:3080 templates/js/translated/news.js:60 msgid "Published" -msgstr "" +msgstr "Yayınlandı" -#: common/models.py:3018 templates/InvenTree/settings/plugin_settings.html:32 +#: common/models.py:3082 templates/InvenTree/settings/plugin_settings.html:32 #: templates/js/translated/news.js:56 templates/js/translated/plugin.js:103 msgid "Author" -msgstr "" +msgstr "Yazar" -#: common/models.py:3020 templates/js/translated/news.js:52 +#: common/models.py:3084 templates/js/translated/news.js:52 msgid "Summary" -msgstr "" +msgstr "Özet" -#: common/models.py:3023 +#: common/models.py:3087 msgid "Read" -msgstr "" +msgstr "Oku" -#: common/models.py:3023 +#: common/models.py:3087 msgid "Was this news item read?" -msgstr "" +msgstr "Haberi okudunuz mu?" -#: common/models.py:3040 company/models.py:159 part/models.py:1067 +#: common/models.py:3104 company/models.py:156 part/models.py:1128 #: report/templates/report/inventree_bill_of_materials_report.html:126 #: report/templates/report/inventree_bill_of_materials_report.html:148 #: report/templates/report/inventree_return_order_report.html:35 -#: stock/templates/stock/item_base.html:133 templates/503.html:31 +#: stock/templates/stock/item_base.html:130 templates/503.html:31 #: templates/hover_image.html:7 templates/hover_image.html:9 #: templates/modals.html:6 msgid "Image" msgstr "Resim" -#: common/models.py:3040 +#: common/models.py:3104 msgid "Image file" -msgstr "" +msgstr "Görsel yükleyin" -#: common/models.py:3052 common/models.py:3256 +#: common/models.py:3116 common/models.py:3317 msgid "Target model type for this image" msgstr "" -#: common/models.py:3056 +#: common/models.py:3120 msgid "Target model ID for this image" msgstr "" -#: common/models.py:3078 +#: common/models.py:3142 msgid "Custom Unit" msgstr "" -#: common/models.py:3099 +#: common/models.py:3160 msgid "Unit symbol must be unique" msgstr "" -#: common/models.py:3114 +#: common/models.py:3175 msgid "Unit name must be a valid identifier" msgstr "" -#: common/models.py:3133 +#: common/models.py:3194 msgid "Unit name" msgstr "" -#: common/models.py:3140 templates/InvenTree/settings/settings_staff_js.html:75 +#: common/models.py:3201 templates/InvenTree/settings/settings_staff_js.html:75 msgid "Symbol" msgstr "" -#: common/models.py:3141 +#: common/models.py:3202 msgid "Optional unit symbol" msgstr "" -#: common/models.py:3147 templates/InvenTree/settings/settings_staff_js.html:71 +#: common/models.py:3208 templates/InvenTree/settings/settings_staff_js.html:71 msgid "Definition" msgstr "" -#: common/models.py:3148 +#: common/models.py:3209 msgid "Unit definition" msgstr "" -#: common/models.py:3206 common/models.py:3263 stock/models.py:2558 -#: templates/js/translated/attachment.js:119 +#: common/models.py:3267 common/models.py:3324 stock/models.py:2674 +#: stock/serializers.py:244 templates/js/translated/attachment.js:119 #: templates/js/translated/attachment.js:345 msgid "Attachment" msgstr "Ek" -#: common/models.py:3218 +#: common/models.py:3279 msgid "Missing file" msgstr "Eksik dosya" -#: common/models.py:3219 +#: common/models.py:3280 msgid "Missing external link" msgstr "Bozuk dış bağlantı" -#: common/models.py:3264 +#: common/models.py:3325 msgid "Select file to attach" msgstr "Eklenecek dosyayı seç" -#: common/models.py:3279 templates/js/translated/attachment.js:120 +#: common/models.py:3340 templates/js/translated/attachment.js:120 #: templates/js/translated/attachment.js:360 msgid "Comment" msgstr "Yorum" -#: common/models.py:3280 +#: common/models.py:3341 msgid "Attachment comment" msgstr "" -#: common/models.py:3296 +#: common/models.py:3357 msgid "Upload date" msgstr "" -#: common/models.py:3297 +#: common/models.py:3358 msgid "Date the file was uploaded" msgstr "" -#: common/models.py:3301 +#: common/models.py:3362 msgid "File size" msgstr "" -#: common/models.py:3301 +#: common/models.py:3362 msgid "File size in bytes" msgstr "" -#: common/models.py:3339 common/serializers.py:562 +#: common/models.py:3400 common/serializers.py:609 msgid "Invalid model type specified for attachment" msgstr "" -#: common/notifications.py:314 +#: common/models.py:3409 plugin/models.py:43 users/models.py:100 +msgid "Key" +msgstr "Anahtar" + +#: common/models.py:3410 +msgid "Value that will be saved in the models database" +msgstr "" + +#: common/models.py:3413 +msgid "Name of the state" +msgstr "" + +#: common/models.py:3417 part/serializers.py:273 +msgid "Label" +msgstr "" + +#: common/models.py:3418 +msgid "Label that will be displayed in the frontend" +msgstr "" + +#: common/models.py:3424 +msgid "Color" +msgstr "Renk" + +#: common/models.py:3425 +msgid "Color that will be displayed in the frontend" +msgstr "" + +#: common/models.py:3428 +msgid "Logical Key" +msgstr "" + +#: common/models.py:3430 +msgid "State logical key that is equal to this custom state in business logic" +msgstr "" + +#: common/models.py:3438 part/serializers.py:275 +msgid "Model" +msgstr "" + +#: common/models.py:3439 +msgid "Model this state is associated with" +msgstr "" + +#: common/models.py:3443 +msgid "Reference Status Set" +msgstr "" + +#: common/models.py:3444 +msgid "Status set that is extended with this custom state" +msgstr "" + +#: common/models.py:3450 +msgid "Custom State" +msgstr "" + +#: common/models.py:3451 +msgid "Custom States" +msgstr "" + +#: common/models.py:3466 +msgid "Model must be selected" +msgstr "" + +#: common/models.py:3469 +msgid "Key must be selected" +msgstr "" + +#: common/models.py:3472 +msgid "Logical key must be selected" +msgstr "" + +#: common/models.py:3476 +msgid "Key must be different from logical key" +msgstr "" + +#: common/models.py:3480 +msgid "Reference status must be selected" +msgstr "" + +#: common/models.py:3492 +msgid "Reference status set not found" +msgstr "" + +#: common/models.py:3498 +msgid "Key must be different from the logical keys of the reference status" +msgstr "" + +#: common/models.py:3504 +msgid "Logical key must be in the logical keys of the reference status" +msgstr "" + +#: common/models.py:3519 +msgid "Barcode Scan" +msgstr "" + +#: common/models.py:3523 importer/models.py:512 part/models.py:4009 +msgid "Data" +msgstr "" + +#: common/models.py:3524 +msgid "Barcode data" +msgstr "" + +#: common/models.py:3535 +msgid "User who scanned the barcode" +msgstr "" + +#: common/models.py:3540 importer/models.py:60 +msgid "Timestamp" +msgstr "" + +#: common/models.py:3541 +msgid "Date and time of the barcode scan" +msgstr "" + +#: common/models.py:3547 +msgid "URL endpoint which processed the barcode" +msgstr "" + +#: common/models.py:3554 order/models.py:1437 plugin/serializers.py:89 +msgid "Context" +msgstr "" + +#: common/models.py:3555 +msgid "Context data for the barcode scan" +msgstr "" + +#: common/models.py:3562 +msgid "Response" +msgstr "" + +#: common/models.py:3563 +msgid "Response data from the barcode scan" +msgstr "" + +#: common/models.py:3569 report/templates/report/inventree_test_report.html:103 +#: stock/models.py:2660 +msgid "Result" +msgstr "" + +#: common/models.py:3570 +msgid "Was the barcode scan successful?" +msgstr "" + +#: common/notifications.py:328 #, python-brace-format msgid "New {verbose_name}" msgstr "" -#: common/notifications.py:316 +#: common/notifications.py:330 msgid "A new order has been created and assigned to you" msgstr "" -#: common/notifications.py:322 +#: common/notifications.py:336 #, python-brace-format msgid "{verbose_name} canceled" msgstr "" -#: common/notifications.py:324 +#: common/notifications.py:338 msgid "A order that is assigned to you was canceled" msgstr "" -#: common/notifications.py:330 common/notifications.py:337 order/api.py:462 +#: common/notifications.py:344 common/notifications.py:351 order/api.py:440 msgid "Items Received" msgstr "" -#: common/notifications.py:332 +#: common/notifications.py:346 msgid "Items have been received against a purchase order" msgstr "" -#: common/notifications.py:339 +#: common/notifications.py:353 msgid "Items have been received against a return order" msgstr "" -#: common/notifications.py:457 +#: common/notifications.py:475 msgid "Error raised by plugin" msgstr "" -#: common/serializers.py:375 +#: common/serializers.py:423 msgid "Is Running" msgstr "" -#: common/serializers.py:381 +#: common/serializers.py:429 msgid "Pending Tasks" -msgstr "" +msgstr "Bekleyen Görevler" -#: common/serializers.py:387 +#: common/serializers.py:435 msgid "Scheduled Tasks" -msgstr "" +msgstr "Planlanan Görevler" -#: common/serializers.py:393 +#: common/serializers.py:441 msgid "Failed Tasks" -msgstr "" +msgstr "Başarısız Görevler" -#: common/serializers.py:408 +#: common/serializers.py:456 msgid "Task ID" -msgstr "" +msgstr "Görev ID" -#: common/serializers.py:408 +#: common/serializers.py:456 msgid "Unique task ID" -msgstr "" +msgstr "Benzersiz Görev ID" -#: common/serializers.py:410 +#: common/serializers.py:458 msgid "Lock" -msgstr "" +msgstr "Kilit" -#: common/serializers.py:410 +#: common/serializers.py:458 msgid "Lock time" -msgstr "" +msgstr "Kilit Zamanı" -#: common/serializers.py:412 +#: common/serializers.py:460 msgid "Task name" -msgstr "" +msgstr "Görev Adı" -#: common/serializers.py:414 +#: common/serializers.py:462 msgid "Function" -msgstr "" +msgstr "Fonksiyon" -#: common/serializers.py:414 +#: common/serializers.py:462 msgid "Function name" -msgstr "" +msgstr "Fonksiyon Adı" -#: common/serializers.py:416 +#: common/serializers.py:464 msgid "Arguments" -msgstr "" +msgstr "Argümanlar" -#: common/serializers.py:416 +#: common/serializers.py:464 msgid "Task arguments" -msgstr "" +msgstr "Görev Argümanları" -#: common/serializers.py:419 +#: common/serializers.py:467 msgid "Keyword Arguments" -msgstr "" +msgstr "Anahtar Argümanlar" -#: common/serializers.py:419 +#: common/serializers.py:467 msgid "Task keyword arguments" -msgstr "" +msgstr "Anahtar görev argümanları" -#: common/serializers.py:529 +#: common/serializers.py:577 msgid "Filename" msgstr "Dosya adı" -#: common/serializers.py:536 report/api.py:100 report/serializers.py:53 +#: common/serializers.py:584 report/api.py:100 report/serializers.py:54 msgid "Model Type" -msgstr "" +msgstr "Model Tipi" -#: common/serializers.py:565 +#: common/serializers.py:612 msgid "User does not have permission to create or edit attachments for this model" msgstr "" @@ -4116,15 +4295,15 @@ msgstr "Alanları Eşleştir" msgid "Match Items" msgstr "" -#: common/views.py:401 +#: common/views.py:397 msgid "Fields matching failed" msgstr "" -#: common/views.py:464 +#: common/views.py:460 msgid "Parts imported" msgstr "" -#: common/views.py:494 order/templates/order/order_wizard/match_fields.html:27 +#: common/views.py:490 order/templates/order/order_wizard/match_fields.html:27 #: order/templates/order/order_wizard/match_parts.html:19 #: order/templates/order/order_wizard/po_upload.html:49 #: part/templates/part/import_wizard/match_fields.html:27 @@ -4155,429 +4334,429 @@ msgstr "" msgid "Supplier is Active" msgstr "" -#: company/models.py:100 company/models.py:371 +#: company/models.py:97 company/models.py:368 #: company/templates/company/company_base.html:8 #: company/templates/company/company_base.html:12 stock/api.py:812 -#: templates/InvenTree/search.html:178 templates/js/translated/company.js:496 +#: templates/InvenTree/search.html:178 templates/js/translated/company.js:497 msgid "Company" msgstr "" -#: company/models.py:101 company/views.py:51 +#: company/models.py:98 company/views.py:51 #: templates/js/translated/search.js:192 msgid "Companies" msgstr "Şirketler" -#: company/models.py:117 +#: company/models.py:114 msgid "Company description" msgstr "" -#: company/models.py:118 +#: company/models.py:115 msgid "Description of the company" msgstr "" -#: company/models.py:123 company/templates/company/company_base.html:106 +#: company/models.py:120 company/templates/company/company_base.html:106 #: templates/InvenTree/settings/plugin_settings.html:54 -#: templates/js/translated/company.js:532 +#: templates/js/translated/company.js:533 msgid "Website" msgstr "" -#: company/models.py:123 +#: company/models.py:120 msgid "Company website URL" msgstr "Şirket web sitesi" -#: company/models.py:128 +#: company/models.py:125 msgid "Phone number" msgstr "Telefon numarası" -#: company/models.py:130 +#: company/models.py:127 msgid "Contact phone number" msgstr "İletişim telefon numarası" -#: company/models.py:137 +#: company/models.py:134 msgid "Contact email address" msgstr "İletişim e-posta adresi" -#: company/models.py:142 company/models.py:275 -#: company/templates/company/company_base.html:145 order/models.py:342 -#: order/templates/order/order_base.html:208 -#: order/templates/order/return_order_base.html:177 -#: order/templates/order/sales_order_base.html:221 +#: company/models.py:139 company/models.py:272 +#: company/templates/company/company_base.html:145 order/models.py:349 +#: order/templates/order/order_base.html:217 +#: order/templates/order/return_order_base.html:178 +#: order/templates/order/sales_order_base.html:222 msgid "Contact" msgstr "İletişim" -#: company/models.py:144 +#: company/models.py:141 msgid "Point of contact" msgstr "" -#: company/models.py:150 +#: company/models.py:147 msgid "Link to external company information" msgstr "" -#: company/models.py:163 +#: company/models.py:160 msgid "Is this company active?" msgstr "" -#: company/models.py:168 +#: company/models.py:165 msgid "Is customer" msgstr "" -#: company/models.py:169 +#: company/models.py:166 msgid "Do you sell items to this company?" msgstr "Bu şirkete ürün satıyor musunuz?" -#: company/models.py:174 +#: company/models.py:171 msgid "Is supplier" msgstr "" -#: company/models.py:175 +#: company/models.py:172 msgid "Do you purchase items from this company?" msgstr "Bu şirketten ürün satın alıyor musunuz?" -#: company/models.py:180 +#: company/models.py:177 msgid "Is manufacturer" msgstr "" -#: company/models.py:181 +#: company/models.py:178 msgid "Does this company manufacture parts?" msgstr "Bu şirket üretim yapıyor mu?" -#: company/models.py:189 +#: company/models.py:186 msgid "Default currency used for this company" msgstr "Bu şirket için varsayılan para birimi" -#: company/models.py:314 company/templates/company/company_base.html:124 -#: order/models.py:352 order/templates/order/order_base.html:215 -#: order/templates/order/return_order_base.html:184 -#: order/templates/order/sales_order_base.html:228 +#: company/models.py:311 company/templates/company/company_base.html:124 +#: order/models.py:359 order/templates/order/order_base.html:224 +#: order/templates/order/return_order_base.html:185 +#: order/templates/order/sales_order_base.html:229 msgid "Address" msgstr "Adres" -#: company/models.py:315 company/templates/company/sidebar.html:35 +#: company/models.py:312 company/templates/company/sidebar.html:35 msgid "Addresses" msgstr "" -#: company/models.py:372 +#: company/models.py:369 msgid "Select company" msgstr "" -#: company/models.py:377 +#: company/models.py:374 msgid "Address title" msgstr "" -#: company/models.py:378 +#: company/models.py:375 msgid "Title describing the address entry" msgstr "" -#: company/models.py:384 +#: company/models.py:381 msgid "Primary address" msgstr "" -#: company/models.py:385 +#: company/models.py:382 msgid "Set as primary address" msgstr "" -#: company/models.py:390 templates/js/translated/company.js:914 -#: templates/js/translated/company.js:971 +#: company/models.py:387 templates/js/translated/company.js:915 +#: templates/js/translated/company.js:972 msgid "Line 1" msgstr "" -#: company/models.py:391 +#: company/models.py:388 msgid "Address line 1" msgstr "" -#: company/models.py:397 templates/js/translated/company.js:915 -#: templates/js/translated/company.js:977 +#: company/models.py:394 templates/js/translated/company.js:916 +#: templates/js/translated/company.js:978 msgid "Line 2" msgstr "" -#: company/models.py:398 +#: company/models.py:395 msgid "Address line 2" msgstr "" -#: company/models.py:404 company/models.py:405 -#: templates/js/translated/company.js:983 +#: company/models.py:401 company/models.py:402 +#: templates/js/translated/company.js:984 msgid "Postal code" msgstr "" -#: company/models.py:411 +#: company/models.py:408 msgid "City/Region" msgstr "" -#: company/models.py:412 +#: company/models.py:409 msgid "Postal code city/region" msgstr "" -#: company/models.py:418 +#: company/models.py:415 msgid "State/Province" msgstr "" -#: company/models.py:419 +#: company/models.py:416 msgid "State or province" msgstr "" -#: company/models.py:425 templates/js/translated/company.js:1001 +#: company/models.py:422 templates/js/translated/company.js:1002 msgid "Country" msgstr "" -#: company/models.py:426 +#: company/models.py:423 msgid "Address country" msgstr "" -#: company/models.py:432 +#: company/models.py:429 msgid "Courier shipping notes" msgstr "" -#: company/models.py:433 +#: company/models.py:430 msgid "Notes for shipping courier" msgstr "" -#: company/models.py:439 +#: company/models.py:436 msgid "Internal shipping notes" msgstr "" -#: company/models.py:440 +#: company/models.py:437 msgid "Shipping notes for internal use" msgstr "" -#: company/models.py:447 +#: company/models.py:444 msgid "Link to address information (external)" msgstr "" -#: company/models.py:470 company/models.py:587 company/models.py:811 +#: company/models.py:467 company/models.py:584 company/models.py:808 #: company/templates/company/manufacturer_part.html:7 #: company/templates/company/manufacturer_part.html:24 -#: stock/templates/stock/item_base.html:217 +#: stock/templates/stock/item_base.html:214 msgid "Manufacturer Part" msgstr "" -#: company/models.py:487 company/models.py:779 stock/models.py:787 -#: stock/serializers.py:445 stock/templates/stock/item_base.html:142 +#: company/models.py:484 company/models.py:776 stock/models.py:864 +#: stock/serializers.py:455 stock/templates/stock/item_base.html:139 #: templates/js/translated/bom.js:622 msgid "Base Part" msgstr "Temel Parça" -#: company/models.py:489 company/models.py:781 +#: company/models.py:486 company/models.py:778 msgid "Select part" msgstr "Parça seçin" -#: company/models.py:498 company/templates/company/company_base.html:82 +#: company/models.py:495 company/templates/company/company_base.html:82 #: company/templates/company/manufacturer_part.html:90 -#: company/templates/company/supplier_part.html:145 part/serializers.py:554 -#: stock/templates/stock/item_base.html:207 -#: templates/js/translated/company.js:507 -#: templates/js/translated/company.js:1118 -#: templates/js/translated/company.js:1296 -#: templates/js/translated/company.js:1611 +#: company/templates/company/supplier_part.html:146 part/serializers.py:598 +#: stock/templates/stock/item_base.html:204 +#: templates/js/translated/company.js:508 +#: templates/js/translated/company.js:1119 +#: templates/js/translated/company.js:1297 +#: templates/js/translated/company.js:1612 #: templates/js/translated/table_filters.js:812 msgid "Manufacturer" msgstr "Üretici" -#: company/models.py:499 +#: company/models.py:496 msgid "Select manufacturer" msgstr "Üretici seçin" -#: company/models.py:505 company/templates/company/manufacturer_part.html:101 -#: company/templates/company/supplier_part.html:153 order/serializers.py:556 -#: part/serializers.py:564 templates/js/translated/company.js:351 -#: templates/js/translated/company.js:1117 -#: templates/js/translated/company.js:1312 -#: templates/js/translated/company.js:1630 templates/js/translated/part.js:1807 -#: templates/js/translated/purchase_order.js:1921 -#: templates/js/translated/purchase_order.js:2123 +#: company/models.py:502 company/templates/company/manufacturer_part.html:101 +#: company/templates/company/supplier_part.html:154 order/serializers.py:641 +#: part/serializers.py:608 templates/js/translated/company.js:352 +#: templates/js/translated/company.js:1118 +#: templates/js/translated/company.js:1313 +#: templates/js/translated/company.js:1631 templates/js/translated/part.js:1807 +#: templates/js/translated/purchase_order.js:1905 +#: templates/js/translated/purchase_order.js:2107 msgid "MPN" msgstr "ÜPN" -#: company/models.py:513 +#: company/models.py:510 msgid "URL for external manufacturer part link" msgstr "" -#: company/models.py:522 +#: company/models.py:519 msgid "Manufacturer part description" msgstr "" -#: company/models.py:575 +#: company/models.py:572 msgid "Manufacturer Part Parameter" msgstr "" -#: company/models.py:594 +#: company/models.py:591 msgid "Parameter name" msgstr "Parametre adı" -#: company/models.py:600 report/templates/report/inventree_test_report.html:104 -#: stock/models.py:2550 templates/js/translated/company.js:1166 -#: templates/js/translated/company.js:1419 templates/js/translated/part.js:1499 +#: company/models.py:597 report/templates/report/inventree_test_report.html:104 +#: stock/models.py:2666 templates/js/translated/company.js:1167 +#: templates/js/translated/company.js:1420 templates/js/translated/part.js:1499 #: templates/js/translated/stock.js:1607 msgid "Value" msgstr "Değer" -#: company/models.py:601 +#: company/models.py:598 msgid "Parameter value" msgstr "Parametre değeri" -#: company/models.py:608 company/templates/company/supplier_part.html:168 -#: part/admin.py:57 part/models.py:1147 part/models.py:3771 -#: part/templates/part/part_base.html:293 -#: templates/js/translated/company.js:1425 templates/js/translated/part.js:1518 +#: company/models.py:605 company/templates/company/supplier_part.html:169 +#: part/admin.py:57 part/models.py:1208 part/models.py:3822 +#: part/templates/part/part_base.html:301 +#: templates/js/translated/company.js:1426 templates/js/translated/part.js:1518 #: templates/js/translated/part.js:1622 templates/js/translated/part.js:2376 msgid "Units" msgstr "" -#: company/models.py:609 +#: company/models.py:606 msgid "Parameter units" msgstr "" -#: company/models.py:662 company/templates/company/supplier_part.html:7 -#: company/templates/company/supplier_part.html:24 order/api.py:442 -#: order/serializers.py:491 stock/models.py:798 -#: stock/templates/stock/item_base.html:233 -#: templates/js/translated/build.js:1052 -#: templates/js/translated/company.js:1600 -#: templates/js/translated/purchase_order.js:752 -#: templates/js/translated/stock.js:2365 +#: company/models.py:659 company/templates/company/supplier_part.html:8 +#: company/templates/company/supplier_part.html:25 order/api.py:392 +#: order/serializers.py:576 stock/models.py:875 +#: stock/templates/stock/item_base.html:230 +#: templates/js/translated/build.js:1055 +#: templates/js/translated/company.js:1601 +#: templates/js/translated/purchase_order.js:735 +#: templates/js/translated/stock.js:2366 msgid "Supplier Part" msgstr "Tedarikçi Parçası" -#: company/models.py:719 +#: company/models.py:716 msgid "Pack units must be compatible with the base part units" msgstr "" -#: company/models.py:726 +#: company/models.py:723 msgid "Pack units must be greater than zero" msgstr "" -#: company/models.py:740 +#: company/models.py:737 msgid "Linked manufacturer part must reference the same base part" msgstr "" -#: company/models.py:789 company/templates/company/company_base.html:87 -#: company/templates/company/supplier_part.html:129 order/models.py:491 -#: order/templates/order/order_base.html:141 part/bom.py:280 part/bom.py:318 -#: part/serializers.py:538 plugin/builtin/suppliers/digikey.py:25 +#: company/models.py:786 company/templates/company/company_base.html:87 +#: company/templates/company/supplier_part.html:130 order/models.py:503 +#: order/templates/order/order_base.html:150 part/bom.py:279 part/bom.py:314 +#: part/serializers.py:582 plugin/builtin/suppliers/digikey.py:25 #: plugin/builtin/suppliers/lcsc.py:26 plugin/builtin/suppliers/mouser.py:24 -#: plugin/builtin/suppliers/tme.py:26 stock/templates/stock/item_base.html:224 +#: plugin/builtin/suppliers/tme.py:26 stock/templates/stock/item_base.html:221 #: templates/email/overdue_purchase_order.html:16 -#: templates/js/translated/company.js:350 -#: templates/js/translated/company.js:511 -#: templates/js/translated/company.js:1584 templates/js/translated/part.js:1775 +#: templates/js/translated/company.js:351 +#: templates/js/translated/company.js:512 +#: templates/js/translated/company.js:1585 templates/js/translated/part.js:1775 #: templates/js/translated/pricing.js:498 -#: templates/js/translated/purchase_order.js:1759 +#: templates/js/translated/purchase_order.js:1743 #: templates/js/translated/table_filters.js:816 msgid "Supplier" msgstr "Tedarikçi" -#: company/models.py:790 +#: company/models.py:787 msgid "Select supplier" msgstr "Tedarikçi seçin" -#: company/models.py:796 part/serializers.py:549 +#: company/models.py:793 part/serializers.py:593 msgid "Supplier stock keeping unit" msgstr "" -#: company/models.py:802 +#: company/models.py:799 msgid "Is this supplier part active?" msgstr "" -#: company/models.py:812 +#: company/models.py:809 msgid "Select manufacturer part" msgstr "" -#: company/models.py:819 +#: company/models.py:816 msgid "URL for external supplier part link" msgstr "" -#: company/models.py:828 +#: company/models.py:825 msgid "Supplier part description" msgstr "" -#: company/models.py:835 company/templates/company/supplier_part.html:187 -#: order/serializers.py:698 part/admin.py:415 part/models.py:4288 +#: company/models.py:832 company/templates/company/supplier_part.html:188 +#: order/serializers.py:783 part/admin.py:415 part/models.py:4345 #: part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_bill_of_materials_report.html:140 #: report/templates/report/inventree_purchase_order_report.html:32 #: report/templates/report/inventree_return_order_report.html:27 #: report/templates/report/inventree_sales_order_report.html:32 #: report/templates/report/inventree_stock_location_report.html:105 -#: stock/serializers.py:776 templates/js/translated/purchase_order.js:1185 -#: templates/js/translated/purchase_order.js:1344 +#: stock/serializers.py:807 templates/js/translated/purchase_order.js:1168 +#: templates/js/translated/purchase_order.js:1327 msgid "Note" msgstr "Not" -#: company/models.py:844 part/models.py:2117 +#: company/models.py:841 part/models.py:2177 msgid "base cost" msgstr "temel maliyet" -#: company/models.py:845 part/models.py:2118 +#: company/models.py:842 part/models.py:2178 msgid "Minimum charge (e.g. stocking fee)" msgstr "" -#: company/models.py:853 +#: company/models.py:850 msgid "Part packaging" msgstr "" -#: company/models.py:858 templates/js/translated/company.js:1651 +#: company/models.py:855 templates/js/translated/company.js:1652 #: templates/js/translated/part.js:1828 templates/js/translated/part.js:1884 -#: templates/js/translated/purchase_order.js:311 -#: templates/js/translated/purchase_order.js:841 -#: templates/js/translated/purchase_order.js:1103 -#: templates/js/translated/purchase_order.js:2154 -#: templates/js/translated/purchase_order.js:2171 +#: templates/js/translated/purchase_order.js:294 +#: templates/js/translated/purchase_order.js:824 +#: templates/js/translated/purchase_order.js:1086 +#: templates/js/translated/purchase_order.js:2138 +#: templates/js/translated/purchase_order.js:2155 msgid "Pack Quantity" msgstr "" -#: company/models.py:860 +#: company/models.py:857 msgid "Total quantity supplied in a single pack. Leave empty for single items." msgstr "" -#: company/models.py:879 part/models.py:2124 +#: company/models.py:876 part/models.py:2184 msgid "multiple" msgstr "çoklu" -#: company/models.py:880 +#: company/models.py:877 msgid "Order multiple" msgstr "" -#: company/models.py:892 +#: company/models.py:889 msgid "Quantity available from supplier" msgstr "" -#: company/models.py:898 +#: company/models.py:895 msgid "Availability Updated" msgstr "" -#: company/models.py:899 +#: company/models.py:896 msgid "Date of last update of availability data" msgstr "" -#: company/models.py:1027 +#: company/models.py:1024 msgid "Supplier Price Break" msgstr "" -#: company/serializers.py:174 +#: company/serializers.py:178 msgid "Default currency used for this supplier" msgstr "" -#: company/serializers.py:210 +#: company/serializers.py:214 msgid "Company Name" msgstr "" -#: company/serializers.py:393 part/admin.py:126 part/serializers.py:898 -#: part/templates/part/part_base.html:197 -#: templates/js/translated/company.js:1689 +#: company/serializers.py:397 part/admin.py:126 part/serializers.py:950 +#: part/templates/part/part_base.html:198 stock/serializers.py:474 +#: templates/js/translated/company.js:1690 #: templates/js/translated/table_filters.js:362 msgid "In Stock" msgstr "" #: company/templates/company/company_base.html:16 -#: part/templates/part/part_base.html:146 -#: templates/js/translated/company.js:1287 -#: templates/js/translated/company.js:1575 -#: templates/js/translated/model_renderers.js:313 +#: part/templates/part/part_base.html:147 +#: templates/js/translated/company.js:1288 +#: templates/js/translated/company.js:1576 +#: templates/js/translated/model_renderers.js:316 #: templates/js/translated/part.js:817 templates/js/translated/part.js:1225 msgid "Inactive" msgstr "Pasif" #: company/templates/company/company_base.html:27 -#: templates/js/translated/purchase_order.js:242 +#: templates/js/translated/purchase_order.js:224 msgid "Create Purchase Order" msgstr "Satın Alma Emri Oluştur" @@ -4590,7 +4769,7 @@ msgid "Edit company information" msgstr "" #: company/templates/company/company_base.html:39 -#: templates/js/translated/company.js:445 +#: templates/js/translated/company.js:446 msgid "Edit Company" msgstr "" @@ -4605,11 +4784,12 @@ msgstr "" #: company/templates/company/company_base.html:53 #: company/templates/company/manufacturer_part.html:51 -#: company/templates/company/supplier_part.html:83 +#: company/templates/company/supplier_part.html:84 #: part/templates/part/part_thumb.html:20 #: report/templates/report/inventree_build_order_report.html:98 #: report/templates/report/inventree_purchase_order_report.html:40 #: report/templates/report/inventree_sales_order_report.html:40 +#: report/templates/report/inventree_sales_order_shipment_report.html:37 #: report/templates/report/inventree_test_report.html:84 #: report/templates/report/inventree_test_report.html:162 msgid "Part image" @@ -4630,16 +4810,16 @@ msgstr "" msgid "Delete image" msgstr "" -#: company/templates/company/company_base.html:92 order/models.py:990 -#: order/models.py:2147 order/templates/order/return_order_base.html:134 -#: order/templates/order/sales_order_base.html:151 stock/models.py:840 -#: stock/models.py:841 stock/serializers.py:1329 -#: stock/templates/stock/item_base.html:405 +#: company/templates/company/company_base.html:92 order/models.py:1017 +#: order/models.py:2186 order/templates/order/return_order_base.html:135 +#: order/templates/order/sales_order_base.html:152 stock/models.py:917 +#: stock/models.py:918 stock/serializers.py:1360 +#: stock/templates/stock/item_base.html:402 #: templates/email/overdue_sales_order.html:16 -#: templates/js/translated/company.js:503 +#: templates/js/translated/company.js:504 #: templates/js/translated/return_order.js:295 -#: templates/js/translated/sales_order.js:820 -#: templates/js/translated/stock.js:3043 +#: templates/js/translated/sales_order.js:779 +#: templates/js/translated/stock.js:3044 #: templates/js/translated/table_filters.js:820 msgid "Customer" msgstr "Müşteri" @@ -4653,7 +4833,7 @@ msgid "Phone" msgstr "" #: company/templates/company/company_base.html:211 -#: part/templates/part/part_base.html:536 +#: part/templates/part/part_base.html:544 msgid "Remove Image" msgstr "" @@ -4662,19 +4842,19 @@ msgid "Remove associated image from this company" msgstr "" #: company/templates/company/company_base.html:214 -#: part/templates/part/part_base.html:539 +#: part/templates/part/part_base.html:547 #: templates/InvenTree/settings/user.html:88 #: templates/InvenTree/settings/user_sso.html:43 msgid "Remove" msgstr "" #: company/templates/company/company_base.html:243 -#: part/templates/part/part_base.html:568 +#: part/templates/part/part_base.html:576 msgid "Upload Image" msgstr "" #: company/templates/company/company_base.html:258 -#: part/templates/part/part_base.html:622 +#: part/templates/part/part_base.html:630 msgid "Download Image" msgstr "" @@ -4714,7 +4894,7 @@ msgstr "Tedarikçi Stoku" #: company/templates/company/detail.html:75 #: company/templates/company/sidebar.html:12 #: company/templates/company/supplier_part_sidebar.html:7 -#: order/templates/order/order_base.html:13 +#: order/templates/order/order_base.html:14 #: order/templates/order/purchase_orders.html:8 #: order/templates/order/purchase_orders.html:12 #: part/templates/part/detail.html:122 part/templates/part/part_sidebar.html:35 @@ -4737,7 +4917,7 @@ msgstr "Yeni Satın Alma Emri" #: company/templates/company/detail.html:101 #: company/templates/company/sidebar.html:21 -#: order/templates/order/sales_order_base.html:13 +#: order/templates/order/sales_order_base.html:14 #: order/templates/order/sales_orders.html:8 #: order/templates/order/sales_orders.html:15 #: part/templates/part/detail.html:143 part/templates/part/part_sidebar.html:39 @@ -4764,7 +4944,7 @@ msgstr "Atanan Stok" #: company/templates/company/detail.html:142 #: company/templates/company/sidebar.html:29 -#: order/templates/order/return_order_base.html:13 +#: order/templates/order/return_order_base.html:14 #: order/templates/order/return_orders.html:8 #: order/templates/order/return_orders.html:15 #: templates/InvenTree/settings/sidebar.html:61 @@ -4811,24 +4991,24 @@ msgid "Manufacturers" msgstr "Üreticiler" #: company/templates/company/manufacturer_part.html:35 -#: company/templates/company/supplier_part.html:227 -#: part/templates/part/detail.html:125 part/templates/part/part_base.html:83 +#: company/templates/company/supplier_part.html:228 +#: part/templates/part/detail.html:125 part/templates/part/part_base.html:84 msgid "Order part" msgstr "Parça siparişi" #: company/templates/company/manufacturer_part.html:39 -#: templates/js/translated/company.js:1343 +#: templates/js/translated/company.js:1344 msgid "Edit manufacturer part" msgstr "" #: company/templates/company/manufacturer_part.html:43 -#: templates/js/translated/company.js:1344 +#: templates/js/translated/company.js:1345 msgid "Delete manufacturer part" msgstr "" #: company/templates/company/manufacturer_part.html:65 -#: company/templates/company/supplier_part.html:97 order/api.py:448 -#: order/serializers.py:564 +#: company/templates/company/supplier_part.html:98 order/api.py:411 +#: order/serializers.py:649 msgid "Internal Part" msgstr "" @@ -4837,8 +5017,8 @@ msgid "No manufacturer information available" msgstr "" #: company/templates/company/manufacturer_part.html:119 -#: company/templates/company/supplier_part.html:15 company/views.py:31 -#: part/admin.py:122 part/serializers.py:904 +#: company/templates/company/supplier_part.html:16 company/views.py:31 +#: part/admin.py:122 part/serializers.py:956 #: part/templates/part/part_sidebar.html:33 templates/InvenTree/search.html:190 #: templates/navbar.html:48 msgid "Suppliers" @@ -4887,112 +5067,113 @@ msgstr "" msgid "Contacts" msgstr "" -#: company/templates/company/supplier_part.html:50 -#: templates/js/translated/company.js:1526 +#: company/templates/company/supplier_part.html:51 +#: templates/js/translated/company.js:1527 msgid "Supplier part actions" msgstr "" -#: company/templates/company/supplier_part.html:55 #: company/templates/company/supplier_part.html:56 -#: company/templates/company/supplier_part.html:228 +#: company/templates/company/supplier_part.html:57 +#: company/templates/company/supplier_part.html:229 #: part/templates/part/detail.html:126 msgid "Order Part" msgstr "" -#: company/templates/company/supplier_part.html:60 #: company/templates/company/supplier_part.html:61 +#: company/templates/company/supplier_part.html:62 msgid "Update Availability" msgstr "" -#: company/templates/company/supplier_part.html:63 #: company/templates/company/supplier_part.html:64 -#: templates/js/translated/company.js:294 +#: company/templates/company/supplier_part.html:65 +#: templates/js/translated/company.js:295 msgid "Edit Supplier Part" msgstr "" -#: company/templates/company/supplier_part.html:68 #: company/templates/company/supplier_part.html:69 -#: templates/js/translated/company.js:269 +#: company/templates/company/supplier_part.html:70 +#: templates/js/translated/company.js:270 msgid "Duplicate Supplier Part" msgstr "" -#: company/templates/company/supplier_part.html:73 +#: company/templates/company/supplier_part.html:74 msgid "Delete Supplier Part" msgstr "" -#: company/templates/company/supplier_part.html:74 +#: company/templates/company/supplier_part.html:75 msgid "Delete Supplier Part" msgstr "" -#: company/templates/company/supplier_part.html:133 +#: company/templates/company/supplier_part.html:134 +#: order/templates/order/order_base.html:155 msgid "No supplier information available" msgstr "" -#: company/templates/company/supplier_part.html:139 order/serializers.py:553 -#: part/bom.py:287 part/bom.py:319 part/serializers.py:548 -#: templates/js/translated/company.js:349 templates/js/translated/part.js:1793 +#: company/templates/company/supplier_part.html:140 order/serializers.py:638 +#: part/bom.py:286 part/bom.py:315 part/serializers.py:592 +#: templates/js/translated/company.js:350 templates/js/translated/part.js:1793 #: templates/js/translated/pricing.js:510 -#: templates/js/translated/purchase_order.js:1920 -#: templates/js/translated/purchase_order.js:2098 +#: templates/js/translated/purchase_order.js:1904 +#: templates/js/translated/purchase_order.js:2082 msgid "SKU" msgstr "" -#: company/templates/company/supplier_part.html:206 +#: company/templates/company/supplier_part.html:207 msgid "Supplier Part Stock" msgstr "Tedarikçi Parça Stoku" -#: company/templates/company/supplier_part.html:209 -#: part/templates/part/detail.html:24 stock/templates/stock/location.html:204 +#: company/templates/company/supplier_part.html:210 +#: part/templates/part/detail.html:24 stock/templates/stock/location.html:205 msgid "Create new stock item" msgstr "" -#: company/templates/company/supplier_part.html:210 -#: part/templates/part/detail.html:25 stock/templates/stock/location.html:205 +#: company/templates/company/supplier_part.html:211 +#: part/templates/part/detail.html:25 stock/templates/stock/location.html:206 #: templates/js/translated/stock.js:543 msgid "New Stock Item" msgstr "" -#: company/templates/company/supplier_part.html:223 +#: company/templates/company/supplier_part.html:224 msgid "Supplier Part Orders" msgstr "Tedarikçi Parçası Emirleri" -#: company/templates/company/supplier_part.html:246 +#: company/templates/company/supplier_part.html:247 msgid "Pricing Information" msgstr "Fiyat Bilgisi" -#: company/templates/company/supplier_part.html:251 -#: templates/js/translated/company.js:398 +#: company/templates/company/supplier_part.html:252 +#: templates/js/translated/company.js:399 #: templates/js/translated/pricing.js:684 msgid "Add Price Break" msgstr "" -#: company/templates/company/supplier_part.html:270 +#: company/templates/company/supplier_part.html:271 msgid "Supplier Part Notes" msgstr "" -#: company/templates/company/supplier_part.html:305 +#: company/templates/company/supplier_part.html:306 msgid "Supplier Part QR Code" msgstr "" -#: company/templates/company/supplier_part.html:316 +#: company/templates/company/supplier_part.html:317 msgid "Link Barcode to Supplier Part" msgstr "" -#: company/templates/company/supplier_part.html:388 +#: company/templates/company/supplier_part.html:389 msgid "Update Part Availability" msgstr "" #: company/templates/company/supplier_part_sidebar.html:5 -#: part/serializers.py:902 part/stocktake.py:223 +#: part/serializers.py:954 part/stocktake.py:223 #: part/templates/part/category.html:180 #: part/templates/part/category_sidebar.html:17 stock/admin.py:68 -#: stock/serializers.py:1014 stock/serializers.py:1192 -#: stock/templates/stock/location.html:167 -#: stock/templates/stock/location.html:188 -#: stock/templates/stock/location.html:200 +#: stock/serializers.py:1045 stock/serializers.py:1223 +#: stock/templates/stock/location.html:168 +#: stock/templates/stock/location.html:189 +#: stock/templates/stock/location.html:201 #: stock/templates/stock/location_sidebar.html:7 #: templates/InvenTree/search.html:155 templates/js/translated/part.js:1067 -#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2850 +#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2851 #: users/models.py:206 msgid "Stock Items" msgstr "Stok Kalemleri" @@ -5022,99 +5203,99 @@ msgstr "Yeni Müşteri" msgid "New Company" msgstr "Yeni Şirket" -#: generic/states/tests.py:18 order/status_codes.py:13 +#: generic/states/fields.py:118 +msgid "Custom status key" +msgstr "" + +#: generic/states/fields.py:119 +msgid "Additional status information for this item" +msgstr "" + +#: generic/states/tests.py:22 order/status_codes.py:13 msgid "Placed" msgstr "Sipariş verildi" -#: importer/mixins.py:263 +#: importer/mixins.py:261 msgid "Invalid export format" msgstr "" -#: importer/models.py:59 -msgid "Timestamp" -msgstr "" - -#: importer/models.py:64 +#: importer/models.py:65 msgid "Data file to import" msgstr "" -#: importer/models.py:73 templates/js/translated/tables.js:558 +#: importer/models.py:74 templates/js/translated/tables.js:558 msgid "Columns" msgstr "" -#: importer/models.py:84 +#: importer/models.py:85 msgid "Import status" msgstr "" -#: importer/models.py:94 +#: importer/models.py:95 msgid "Field Defaults" msgstr "" -#: importer/models.py:101 +#: importer/models.py:102 msgid "Field Overrides" msgstr "" -#: importer/models.py:108 +#: importer/models.py:109 msgid "Field Filters" msgstr "" -#: importer/models.py:230 +#: importer/models.py:239 msgid "Some required fields have not been mapped" msgstr "" -#: importer/models.py:387 +#: importer/models.py:396 msgid "Column is already mapped to a database field" msgstr "" -#: importer/models.py:392 +#: importer/models.py:401 msgid "Field is already mapped to a data column" msgstr "" -#: importer/models.py:401 +#: importer/models.py:410 msgid "Column mapping must be linked to a valid import session" msgstr "" -#: importer/models.py:406 +#: importer/models.py:415 msgid "Column does not exist in the data file" msgstr "" -#: importer/models.py:413 +#: importer/models.py:422 msgid "Field does not exist in the target model" msgstr "" -#: importer/models.py:417 +#: importer/models.py:426 msgid "Selected field is read-only" msgstr "" -#: importer/models.py:422 importer/models.py:493 +#: importer/models.py:431 importer/models.py:502 msgid "Import Session" msgstr "" -#: importer/models.py:426 +#: importer/models.py:435 msgid "Field" msgstr "" -#: importer/models.py:428 +#: importer/models.py:437 msgid "Column" msgstr "" -#: importer/models.py:497 +#: importer/models.py:506 msgid "Row Index" msgstr "" -#: importer/models.py:500 +#: importer/models.py:509 msgid "Original row data" msgstr "" -#: importer/models.py:503 part/models.py:3951 -msgid "Data" -msgstr "" - -#: importer/models.py:505 machine/models.py:110 +#: importer/models.py:514 machine/models.py:110 msgid "Errors" msgstr "" -#: importer/models.py:507 part/api.py:873 +#: importer/models.py:516 part/api.py:857 msgid "Valid" msgstr "" @@ -5166,19 +5347,19 @@ msgstr "" msgid "Row has already been completed" msgstr "" -#: importer/status_codes.py:11 +#: importer/status_codes.py:13 msgid "Initializing" msgstr "" -#: importer/status_codes.py:12 +#: importer/status_codes.py:18 msgid "Mapping Columns" msgstr "" -#: importer/status_codes.py:13 +#: importer/status_codes.py:21 msgid "Importing Data" msgstr "" -#: importer/status_codes.py:16 +#: importer/status_codes.py:24 msgid "Processing Data" msgstr "" @@ -5202,52 +5383,52 @@ msgstr "" msgid "Value must be a valid dictionary object" msgstr "" -#: machine/machine_types/label_printer.py:215 +#: machine/machine_types/label_printer.py:216 msgid "Copies" msgstr "" -#: machine/machine_types/label_printer.py:216 +#: machine/machine_types/label_printer.py:217 msgid "Number of copies to print for each label" msgstr "" -#: machine/machine_types/label_printer.py:231 +#: machine/machine_types/label_printer.py:232 msgid "Connected" msgstr "" -#: machine/machine_types/label_printer.py:232 order/api.py:1410 -#: templates/js/translated/sales_order.js:1078 +#: machine/machine_types/label_printer.py:233 order/api.py:1532 +#: templates/js/translated/sales_order.js:1044 msgid "Unknown" msgstr "" -#: machine/machine_types/label_printer.py:233 +#: machine/machine_types/label_printer.py:234 msgid "Printing" msgstr "" -#: machine/machine_types/label_printer.py:234 +#: machine/machine_types/label_printer.py:235 msgid "No media" msgstr "" -#: machine/machine_types/label_printer.py:235 +#: machine/machine_types/label_printer.py:236 msgid "Paper jam" msgstr "" -#: machine/machine_types/label_printer.py:236 +#: machine/machine_types/label_printer.py:237 msgid "Disconnected" msgstr "" -#: machine/machine_types/label_printer.py:243 -msgid "Label Printer" -msgstr "" - #: machine/machine_types/label_printer.py:244 +msgid "Label Printer" +msgstr "Etiket Yazdırma" + +#: machine/machine_types/label_printer.py:245 msgid "Directly print labels for various items." msgstr "" -#: machine/machine_types/label_printer.py:250 +#: machine/machine_types/label_printer.py:251 msgid "Printer Location" msgstr "" -#: machine/machine_types/label_printer.py:251 +#: machine/machine_types/label_printer.py:252 msgid "Scope the printer to a specific location" msgstr "" @@ -5307,79 +5488,75 @@ msgstr "" #: report/templates/report/inventree_purchase_order_report.html:31 #: report/templates/report/inventree_sales_order_report.html:31 #: templates/js/translated/order.js:352 -#: templates/js/translated/purchase_order.js:2195 -#: templates/js/translated/sales_order.js:1883 +#: templates/js/translated/purchase_order.js:2179 +#: templates/js/translated/sales_order.js:1864 msgid "Total Price" msgstr "" -#: order/api.py:80 order/api.py:151 order/serializers.py:93 -#: order/templates/order/order_base.html:123 -#: order/templates/order/return_order_base.html:116 -#: order/templates/order/sales_order_base.html:125 +#: order/api.py:78 order/api.py:149 order/serializers.py:124 +#: order/templates/order/order_base.html:124 +#: order/templates/order/return_order_base.html:117 +#: order/templates/order/sales_order_base.html:126 msgid "Order Status" msgstr "" -#: order/api.py:88 order/templates/order/order_base.html:111 -#: order/templates/order/return_order_base.html:104 -#: order/templates/order/sales_order_base.html:113 +#: order/api.py:86 order/templates/order/order_base.html:112 +#: order/templates/order/return_order_base.html:105 +#: order/templates/order/sales_order_base.html:114 msgid "Order Reference" msgstr "" -#: order/api.py:116 templates/js/translated/table_filters.js:93 +#: order/api.py:114 order/api.py:1022 +#: templates/js/translated/table_filters.js:93 #: templates/js/translated/table_filters.js:625 #: templates/js/translated/table_filters.js:651 #: templates/js/translated/table_filters.js:666 msgid "Outstanding" msgstr "" -#: order/api.py:132 +#: order/api.py:130 msgid "Has Project Code" msgstr "" -#: order/api.py:155 templates/js/translated/table_filters.js:201 +#: order/api.py:153 templates/js/translated/table_filters.js:201 #: templates/js/translated/table_filters.js:791 msgid "Has Pricing" msgstr "" -#: order/api.py:230 -msgid "No matching purchase order found" -msgstr "" - -#: order/api.py:425 order/api.py:763 order/models.py:1484 order/models.py:1598 -#: order/models.py:1649 order/models.py:1764 order/models.py:1923 -#: order/models.py:2383 order/models.py:2439 -#: templates/js/translated/sales_order.js:1524 +#: order/api.py:375 order/api.py:771 order/api.py:986 order/models.py:1500 +#: order/models.py:1614 order/models.py:1665 order/models.py:1793 +#: order/models.py:1956 order/models.py:2422 order/models.py:2478 +#: templates/js/translated/sales_order.js:1490 msgid "Order" msgstr "" -#: order/api.py:429 order/api.py:784 +#: order/api.py:379 order/api.py:809 msgid "Order Complete" msgstr "" -#: order/api.py:452 +#: order/api.py:430 msgid "Order Pending" msgstr "" -#: order/api.py:1404 order/models.py:379 order/models.py:1485 -#: order/models.py:1599 order/templates/order/order_base.html:9 -#: order/templates/order/order_base.html:18 +#: order/api.py:1526 order/models.py:386 order/models.py:1501 +#: order/models.py:1615 order/templates/order/order_base.html:10 +#: order/templates/order/order_base.html:19 #: report/templates/report/inventree_purchase_order_report.html:14 -#: stock/serializers.py:120 stock/templates/stock/item_base.html:176 +#: stock/serializers.py:121 stock/templates/stock/item_base.html:173 #: templates/email/overdue_purchase_order.html:15 #: templates/js/translated/part.js:1752 templates/js/translated/pricing.js:804 -#: templates/js/translated/purchase_order.js:168 -#: templates/js/translated/purchase_order.js:753 -#: templates/js/translated/purchase_order.js:1743 -#: templates/js/translated/stock.js:2345 templates/js/translated/stock.js:2991 +#: templates/js/translated/purchase_order.js:736 +#: templates/js/translated/purchase_order.js:1727 +#: templates/js/translated/stock.js:2346 templates/js/translated/stock.js:2992 msgid "Purchase Order" msgstr "" -#: order/api.py:1408 order/models.py:2091 order/models.py:2384 -#: order/models.py:2440 order/templates/order/return_order_base.html:9 -#: order/templates/order/return_order_base.html:28 +#: order/api.py:1530 order/models.py:2124 order/models.py:2423 +#: order/models.py:2479 order/templates/order/return_order_base.html:10 +#: order/templates/order/return_order_base.html:29 #: report/templates/report/inventree_return_order_report.html:13 #: templates/js/translated/return_order.js:280 -#: templates/js/translated/stock.js:3025 +#: templates/js/translated/stock.js:3026 msgid "Return Order" msgstr "" @@ -5387,751 +5564,782 @@ msgstr "" msgid "Total price for this order" msgstr "" -#: order/models.py:95 order/serializers.py:71 +#: order/models.py:95 order/serializers.py:73 msgid "Order Currency" msgstr "" -#: order/models.py:98 order/serializers.py:72 +#: order/models.py:98 order/serializers.py:74 msgid "Currency for this order (leave blank to use company default)" msgstr "" -#: order/models.py:246 +#: order/models.py:243 msgid "Contact does not match selected company" msgstr "" -#: order/models.py:289 +#: order/models.py:296 msgid "Order description (optional)" msgstr "" -#: order/models.py:298 +#: order/models.py:305 msgid "Select project code for this order" msgstr "" -#: order/models.py:302 order/models.py:1385 order/models.py:1817 +#: order/models.py:309 order/models.py:1402 order/models.py:1846 msgid "Link to external page" msgstr "Harici sayfaya bağlantı" -#: order/models.py:310 +#: order/models.py:317 msgid "Expected date for order delivery. Order will be overdue after this date." msgstr "" -#: order/models.py:324 +#: order/models.py:331 msgid "Created By" msgstr "Oluşturan" -#: order/models.py:332 +#: order/models.py:339 msgid "User or group responsible for this order" msgstr "" -#: order/models.py:343 +#: order/models.py:350 msgid "Point of contact for this order" msgstr "" -#: order/models.py:353 +#: order/models.py:360 msgid "Company address for this order" msgstr "" -#: order/models.py:468 order/models.py:979 +#: order/models.py:480 order/models.py:1006 msgid "Order reference" msgstr "Sipariş referansı" -#: order/models.py:477 +#: order/models.py:489 msgid "Purchase order status" msgstr "" -#: order/models.py:492 +#: order/models.py:504 msgid "Company from which the items are being ordered" msgstr "" -#: order/models.py:503 order/templates/order/order_base.html:153 -#: templates/js/translated/purchase_order.js:1772 +#: order/models.py:515 order/templates/order/order_base.html:162 +#: templates/js/translated/purchase_order.js:1756 msgid "Supplier Reference" msgstr "" -#: order/models.py:504 +#: order/models.py:516 msgid "Supplier order reference code" msgstr "" -#: order/models.py:513 +#: order/models.py:525 msgid "received by" msgstr "" -#: order/models.py:519 order/models.py:2173 +#: order/models.py:531 order/models.py:2212 msgid "Issue Date" msgstr "" -#: order/models.py:520 order/models.py:2174 +#: order/models.py:532 order/models.py:2213 msgid "Date order was issued" msgstr "" -#: order/models.py:527 order/models.py:2181 +#: order/models.py:539 order/models.py:2220 msgid "Date order was completed" msgstr "" -#: order/models.py:571 +#: order/models.py:549 order/models.py:1552 +msgid "Destination for received items" +msgstr "" + +#: order/models.py:593 msgid "Part supplier must match PO supplier" msgstr "" -#: order/models.py:806 +#: order/models.py:828 msgid "Quantity must be a positive number" msgstr "" -#: order/models.py:991 +#: order/models.py:1018 msgid "Company to which the items are being sold" msgstr "" -#: order/models.py:1003 +#: order/models.py:1030 msgid "Sales order status" msgstr "" -#: order/models.py:1014 order/models.py:2166 +#: order/models.py:1041 order/models.py:2205 msgid "Customer Reference " msgstr "" -#: order/models.py:1015 order/models.py:2167 +#: order/models.py:1042 order/models.py:2206 msgid "Customer order reference code" msgstr "" -#: order/models.py:1019 order/models.py:1771 -#: templates/js/translated/sales_order.js:879 -#: templates/js/translated/sales_order.js:1060 +#: order/models.py:1046 order/models.py:1800 +#: templates/js/translated/sales_order.js:838 +#: templates/js/translated/sales_order.js:1026 msgid "Shipment Date" msgstr "" -#: order/models.py:1028 +#: order/models.py:1055 msgid "shipped by" msgstr "" -#: order/models.py:1077 +#: order/models.py:1094 msgid "Order is already complete" msgstr "" -#: order/models.py:1080 +#: order/models.py:1097 msgid "Order is already cancelled" msgstr "" -#: order/models.py:1084 +#: order/models.py:1101 msgid "Only an open order can be marked as complete" msgstr "" -#: order/models.py:1088 +#: order/models.py:1105 msgid "Order cannot be completed as there are incomplete shipments" msgstr "" -#: order/models.py:1093 +#: order/models.py:1110 msgid "Order cannot be completed as there are incomplete line items" msgstr "" -#: order/models.py:1357 +#: order/models.py:1374 msgid "Item quantity" msgstr "" -#: order/models.py:1374 +#: order/models.py:1391 msgid "Line item reference" msgstr "" -#: order/models.py:1381 +#: order/models.py:1398 msgid "Line item notes" msgstr "" -#: order/models.py:1393 +#: order/models.py:1410 msgid "Target date for this line item (leave blank to use the target date from the order)" msgstr "" -#: order/models.py:1414 +#: order/models.py:1431 msgid "Line item description (optional)" msgstr "" -#: order/models.py:1420 -msgid "Context" -msgstr "" - -#: order/models.py:1421 +#: order/models.py:1438 msgid "Additional context for this line" msgstr "" -#: order/models.py:1431 +#: order/models.py:1448 msgid "Unit price" msgstr "" -#: order/models.py:1445 +#: order/models.py:1462 msgid "Purchase Order Line Item" msgstr "" -#: order/models.py:1469 +#: order/models.py:1486 msgid "Supplier part must match supplier" msgstr "" -#: order/models.py:1476 -msgid "deleted" -msgstr "" - -#: order/models.py:1504 +#: order/models.py:1520 msgid "Supplier part" msgstr "" -#: order/models.py:1511 order/templates/order/order_base.html:201 +#: order/models.py:1527 order/templates/order/order_base.html:210 #: templates/js/translated/part.js:1876 templates/js/translated/part.js:1908 -#: templates/js/translated/purchase_order.js:1369 -#: templates/js/translated/purchase_order.js:2239 +#: templates/js/translated/purchase_order.js:1352 +#: templates/js/translated/purchase_order.js:2223 #: templates/js/translated/return_order.js:762 #: templates/js/translated/table_filters.js:119 #: templates/js/translated/table_filters.js:605 msgid "Received" msgstr "" -#: order/models.py:1512 +#: order/models.py:1528 msgid "Number of items received" msgstr "" -#: order/models.py:1520 stock/models.py:959 stock/serializers.py:610 -#: stock/templates/stock/item_base.html:183 -#: templates/js/translated/stock.js:2396 +#: order/models.py:1536 stock/models.py:1036 stock/serializers.py:637 +#: stock/templates/stock/item_base.html:180 +#: templates/js/translated/stock.js:2397 msgid "Purchase Price" msgstr "" -#: order/models.py:1521 +#: order/models.py:1537 msgid "Unit purchase price" msgstr "" -#: order/models.py:1536 -msgid "Where does the Purchaser want this item to be stored?" -msgstr "" - -#: order/models.py:1587 +#: order/models.py:1603 msgid "Purchase Order Extra Line" msgstr "" -#: order/models.py:1616 +#: order/models.py:1632 msgid "Sales Order Line Item" msgstr "" -#: order/models.py:1637 +#: order/models.py:1653 msgid "Virtual part cannot be assigned to a sales order" msgstr "" -#: order/models.py:1642 +#: order/models.py:1658 msgid "Only salable parts can be assigned to a sales order" msgstr "" -#: order/models.py:1668 part/templates/part/part_pricing.html:107 -#: part/templates/part/prices.html:139 templates/js/translated/pricing.js:957 +#: order/models.py:1684 part/templates/part/part_pricing.html:107 +#: part/templates/part/prices.html:139 templates/js/translated/pricing.js:955 msgid "Sale Price" msgstr "" -#: order/models.py:1669 +#: order/models.py:1685 msgid "Unit sale price" msgstr "" -#: order/models.py:1678 order/status_codes.py:48 -#: templates/js/translated/sales_order.js:1559 -#: templates/js/translated/sales_order.js:1680 -#: templates/js/translated/sales_order.js:1993 +#: order/models.py:1694 order/status_codes.py:50 +#: templates/js/translated/sales_order.js:1525 +#: templates/js/translated/sales_order.js:1661 +#: templates/js/translated/sales_order.js:1974 msgid "Shipped" msgstr "Sevk edildi" -#: order/models.py:1679 +#: order/models.py:1695 msgid "Shipped quantity" msgstr "" -#: order/models.py:1751 +#: order/models.py:1769 msgid "Sales Order Shipment" msgstr "" -#: order/models.py:1772 +#: order/models.py:1801 msgid "Date of shipment" msgstr "" -#: order/models.py:1778 templates/js/translated/sales_order.js:1072 +#: order/models.py:1807 templates/js/translated/sales_order.js:1038 msgid "Delivery Date" msgstr "" -#: order/models.py:1779 +#: order/models.py:1808 msgid "Date of delivery of shipment" msgstr "" -#: order/models.py:1787 +#: order/models.py:1816 msgid "Checked By" msgstr "" -#: order/models.py:1788 +#: order/models.py:1817 msgid "User who checked this shipment" msgstr "" -#: order/models.py:1795 order/models.py:2018 order/serializers.py:1475 -#: order/serializers.py:1585 templates/js/translated/model_renderers.js:455 +#: order/models.py:1824 order/models.py:2051 order/serializers.py:1601 +#: order/serializers.py:1725 +#: report/templates/report/inventree_sales_order_shipment_report.html:14 +#: templates/js/translated/model_renderers.js:458 +#: templates/js/translated/sales_order.js:1615 msgid "Shipment" msgstr "" -#: order/models.py:1796 +#: order/models.py:1825 msgid "Shipment number" msgstr "" -#: order/models.py:1804 +#: order/models.py:1833 msgid "Tracking Number" msgstr "" -#: order/models.py:1805 +#: order/models.py:1834 msgid "Shipment tracking information" msgstr "" -#: order/models.py:1812 +#: order/models.py:1841 msgid "Invoice Number" msgstr "" -#: order/models.py:1813 +#: order/models.py:1842 msgid "Reference number for associated invoice" msgstr "" -#: order/models.py:1833 +#: order/models.py:1862 msgid "Shipment has already been sent" msgstr "" -#: order/models.py:1836 +#: order/models.py:1865 msgid "Shipment has no allocated stock items" msgstr "" -#: order/models.py:1912 +#: order/models.py:1945 msgid "Sales Order Extra Line" msgstr "" -#: order/models.py:1941 +#: order/models.py:1974 msgid "Sales Order Allocation" msgstr "" -#: order/models.py:1964 order/models.py:1966 +#: order/models.py:1997 order/models.py:1999 msgid "Stock item has not been assigned" msgstr "" -#: order/models.py:1973 +#: order/models.py:2006 msgid "Cannot allocate stock item to a line with a different part" msgstr "" -#: order/models.py:1976 +#: order/models.py:2009 msgid "Cannot allocate stock to a line without a part" msgstr "" -#: order/models.py:1979 +#: order/models.py:2012 msgid "Allocation quantity cannot exceed stock quantity" msgstr "Tahsis miktarı stok miktarını aşamaz" -#: order/models.py:1998 order/serializers.py:1345 +#: order/models.py:2031 order/serializers.py:1471 msgid "Quantity must be 1 for serialized stock item" msgstr "Seri numaralı stok kalemi için miktar bir olmalı" -#: order/models.py:2001 +#: order/models.py:2034 msgid "Sales order does not match shipment" msgstr "" -#: order/models.py:2002 plugin/base/barcodes/api.py:524 +#: order/models.py:2035 plugin/base/barcodes/api.py:629 msgid "Shipment does not match sales order" msgstr "" -#: order/models.py:2010 +#: order/models.py:2043 msgid "Line" msgstr "" -#: order/models.py:2019 +#: order/models.py:2052 msgid "Sales order shipment reference" msgstr "" -#: order/models.py:2032 order/models.py:2391 +#: order/models.py:2065 order/models.py:2430 #: templates/js/translated/return_order.js:720 msgid "Item" msgstr "" -#: order/models.py:2033 +#: order/models.py:2066 msgid "Select stock item to allocate" msgstr "" -#: order/models.py:2042 +#: order/models.py:2075 msgid "Enter stock allocation quantity" msgstr "Stok tahsis miktarını girin" -#: order/models.py:2136 +#: order/models.py:2175 msgid "Return Order reference" msgstr "" -#: order/models.py:2148 +#: order/models.py:2187 msgid "Company from which items are being returned" msgstr "" -#: order/models.py:2160 +#: order/models.py:2199 msgid "Return order status" msgstr "" -#: order/models.py:2362 +#: order/models.py:2401 msgid "Return Order Line Item" msgstr "" -#: order/models.py:2376 +#: order/models.py:2415 msgid "Only serialized items can be assigned to a Return Order" msgstr "" -#: order/models.py:2392 +#: order/models.py:2431 msgid "Select item to return from customer" msgstr "" -#: order/models.py:2398 +#: order/models.py:2437 msgid "Received Date" msgstr "" -#: order/models.py:2399 +#: order/models.py:2438 msgid "The date this this return item was received" msgstr "" -#: order/models.py:2410 templates/js/translated/return_order.js:731 +#: order/models.py:2449 templates/js/translated/return_order.js:731 #: templates/js/translated/table_filters.js:122 msgid "Outcome" msgstr "" -#: order/models.py:2411 +#: order/models.py:2450 msgid "Outcome for this line item" msgstr "" -#: order/models.py:2418 +#: order/models.py:2457 msgid "Cost associated with return or repair for this line item" msgstr "" -#: order/models.py:2428 +#: order/models.py:2467 msgid "Return Order Extra Line" msgstr "" -#: order/serializers.py:86 +#: order/serializers.py:87 +msgid "Order ID" +msgstr "" + +#: order/serializers.py:87 +msgid "ID of the order to duplicate" +msgstr "" + +#: order/serializers.py:93 +msgid "Copy Lines" +msgstr "" + +#: order/serializers.py:94 +msgid "Copy line items from the original order" +msgstr "" + +#: order/serializers.py:100 +msgid "Copy Extra Lines" +msgstr "" + +#: order/serializers.py:101 +msgid "Copy extra line items from the original order" +msgstr "" + +#: order/serializers.py:117 msgid "Completed Lines" msgstr "" -#: order/serializers.py:283 stock/admin.py:195 +#: order/serializers.py:161 +msgid "Duplicate Order" +msgstr "" + +#: order/serializers.py:162 +msgid "Specify options for duplicating this order" +msgstr "" + +#: order/serializers.py:234 +msgid "Invalid order ID" +msgstr "" + +#: order/serializers.py:374 stock/admin.py:196 msgid "Supplier Name" msgstr "" -#: order/serializers.py:331 +#: order/serializers.py:416 msgid "Order cannot be cancelled" msgstr "" -#: order/serializers.py:346 order/serializers.py:1366 +#: order/serializers.py:431 order/serializers.py:1492 msgid "Allow order to be closed with incomplete line items" msgstr "" -#: order/serializers.py:356 order/serializers.py:1376 +#: order/serializers.py:441 order/serializers.py:1502 msgid "Order has incomplete line items" msgstr "" -#: order/serializers.py:506 +#: order/serializers.py:591 msgid "Order is not open" msgstr "" -#: order/serializers.py:527 +#: order/serializers.py:612 msgid "Auto Pricing" msgstr "" -#: order/serializers.py:529 +#: order/serializers.py:614 msgid "Automatically calculate purchase price based on supplier part data" msgstr "" -#: order/serializers.py:539 +#: order/serializers.py:624 msgid "Purchase price currency" msgstr "" -#: order/serializers.py:545 +#: order/serializers.py:630 msgid "Merge Items" msgstr "" -#: order/serializers.py:547 +#: order/serializers.py:632 msgid "Merge items with the same part, destination and target date into one line item" msgstr "" -#: order/serializers.py:560 part/models.py:1033 +#: order/serializers.py:645 part/models.py:1094 part/serializers.py:387 msgid "Internal Part Number" msgstr "" -#: order/serializers.py:568 +#: order/serializers.py:653 msgid "Internal Part Name" msgstr "" -#: order/serializers.py:584 +#: order/serializers.py:669 msgid "Supplier part must be specified" msgstr "" -#: order/serializers.py:587 +#: order/serializers.py:672 msgid "Purchase order must be specified" msgstr "" -#: order/serializers.py:595 +#: order/serializers.py:680 msgid "Supplier must match purchase order" msgstr "" -#: order/serializers.py:596 +#: order/serializers.py:681 msgid "Purchase order must match supplier" msgstr "" -#: order/serializers.py:639 order/serializers.py:1446 +#: order/serializers.py:724 order/serializers.py:1572 msgid "Line Item" msgstr "" -#: order/serializers.py:645 +#: order/serializers.py:730 msgid "Line item does not match purchase order" msgstr "" -#: order/serializers.py:655 order/serializers.py:779 order/serializers.py:1782 +#: order/serializers.py:740 order/serializers.py:881 order/serializers.py:1934 msgid "Select destination location for received items" msgstr "" -#: order/serializers.py:671 templates/js/translated/purchase_order.js:1130 +#: order/serializers.py:756 templates/js/translated/purchase_order.js:1113 #: templates/js/translated/stock.js:1200 msgid "Enter batch code for incoming stock items" msgstr "" -#: order/serializers.py:679 templates/js/translated/purchase_order.js:1155 +#: order/serializers.py:764 templates/js/translated/purchase_order.js:1138 msgid "Enter serial numbers for incoming stock items" msgstr "" -#: order/serializers.py:691 +#: order/serializers.py:776 msgid "Override packaging information for incoming stock items" msgstr "" -#: order/serializers.py:699 +#: order/serializers.py:784 msgid "Additional note for incoming stock items" msgstr "" -#: order/serializers.py:706 templates/js/translated/barcode.js:52 +#: order/serializers.py:791 templates/js/translated/barcode.js:52 msgid "Barcode" msgstr "" -#: order/serializers.py:707 +#: order/serializers.py:792 msgid "Scanned barcode" msgstr "" -#: order/serializers.py:723 +#: order/serializers.py:808 msgid "Barcode is already in use" msgstr "" -#: order/serializers.py:747 +#: order/serializers.py:831 msgid "An integer quantity must be provided for trackable parts" msgstr "" -#: order/serializers.py:795 order/serializers.py:1798 +#: order/serializers.py:898 order/serializers.py:1950 msgid "Line items must be provided" msgstr "" -#: order/serializers.py:811 +#: order/serializers.py:914 msgid "Destination location must be specified" msgstr "" -#: order/serializers.py:822 +#: order/serializers.py:925 msgid "Supplied barcode values must be unique" msgstr "" -#: order/serializers.py:1187 +#: order/serializers.py:1221 msgid "Sale price currency" msgstr "" -#: order/serializers.py:1248 +#: order/serializers.py:1260 +msgid "Allocated Items" +msgstr "" + +#: order/serializers.py:1374 msgid "No shipment details provided" msgstr "" -#: order/serializers.py:1309 order/serializers.py:1455 +#: order/serializers.py:1435 order/serializers.py:1581 msgid "Line item is not associated with this order" msgstr "" -#: order/serializers.py:1328 +#: order/serializers.py:1454 msgid "Quantity must be positive" msgstr "" -#: order/serializers.py:1465 +#: order/serializers.py:1591 msgid "Enter serial numbers to allocate" msgstr "" -#: order/serializers.py:1487 order/serializers.py:1593 +#: order/serializers.py:1613 order/serializers.py:1733 msgid "Shipment has already been shipped" msgstr "" -#: order/serializers.py:1490 order/serializers.py:1596 +#: order/serializers.py:1616 order/serializers.py:1736 msgid "Shipment is not associated with this order" msgstr "" -#: order/serializers.py:1537 +#: order/serializers.py:1671 msgid "No match found for the following serial numbers" msgstr "" -#: order/serializers.py:1544 -msgid "The following serial numbers are already allocated" +#: order/serializers.py:1678 +msgid "The following serial numbers are unavailable" msgstr "" -#: order/serializers.py:1752 +#: order/serializers.py:1904 msgid "Return order line item" msgstr "" -#: order/serializers.py:1758 +#: order/serializers.py:1910 msgid "Line item does not match return order" msgstr "" -#: order/serializers.py:1761 +#: order/serializers.py:1913 msgid "Line item has already been received" msgstr "" -#: order/serializers.py:1790 +#: order/serializers.py:1942 msgid "Items can only be received against orders which are in progress" msgstr "" -#: order/serializers.py:1873 +#: order/serializers.py:2025 msgid "Line price currency" msgstr "" -#: order/status_codes.py:17 order/status_codes.py:52 stock/status_codes.py:16 +#: order/status_codes.py:17 order/status_codes.py:54 stock/status_codes.py:16 msgid "Lost" msgstr "Kayıp" -#: order/status_codes.py:18 order/status_codes.py:53 stock/status_codes.py:22 +#: order/status_codes.py:18 order/status_codes.py:55 stock/status_codes.py:24 msgid "Returned" msgstr "İade" -#: order/status_codes.py:45 order/status_codes.py:77 +#: order/status_codes.py:47 order/status_codes.py:79 msgid "In Progress" msgstr "Devam Ediyor" -#: order/status_codes.py:101 +#: order/status_codes.py:105 msgid "Return" msgstr "Geri Dön" -#: order/status_codes.py:104 +#: order/status_codes.py:108 msgid "Repair" msgstr "" -#: order/status_codes.py:107 +#: order/status_codes.py:111 msgid "Replace" msgstr "" -#: order/status_codes.py:110 +#: order/status_codes.py:114 msgid "Refund" msgstr "" -#: order/status_codes.py:113 +#: order/status_codes.py:117 msgid "Reject" msgstr "" -#: order/tasks.py:25 +#: order/tasks.py:30 msgid "Overdue Purchase Order" msgstr "" -#: order/tasks.py:30 +#: order/tasks.py:35 #, python-brace-format msgid "Purchase order {po} is now overdue" msgstr "" -#: order/tasks.py:75 +#: order/tasks.py:80 msgid "Overdue Sales Order" msgstr "" -#: order/tasks.py:80 +#: order/tasks.py:85 #, python-brace-format msgid "Sales order {so} is now overdue" msgstr "" -#: order/templates/order/order_base.html:51 +#: order/templates/order/order_base.html:52 msgid "Print purchase order report" msgstr "" -#: order/templates/order/order_base.html:53 -#: order/templates/order/return_order_base.html:62 -#: order/templates/order/sales_order_base.html:62 +#: order/templates/order/order_base.html:54 +#: order/templates/order/return_order_base.html:63 +#: order/templates/order/sales_order_base.html:63 msgid "Export order to file" msgstr "Emiri dosya çıkar" -#: order/templates/order/order_base.html:59 -#: order/templates/order/return_order_base.html:72 -#: order/templates/order/sales_order_base.html:71 +#: order/templates/order/order_base.html:60 +#: order/templates/order/return_order_base.html:73 +#: order/templates/order/sales_order_base.html:72 msgid "Order actions" msgstr "" -#: order/templates/order/order_base.html:64 -#: order/templates/order/return_order_base.html:76 -#: order/templates/order/sales_order_base.html:75 +#: order/templates/order/order_base.html:65 +#: order/templates/order/return_order_base.html:77 +#: order/templates/order/sales_order_base.html:76 msgid "Edit order" msgstr "" -#: order/templates/order/order_base.html:68 +#: order/templates/order/order_base.html:69 msgid "Duplicate order" msgstr "" -#: order/templates/order/order_base.html:73 -#: order/templates/order/return_order_base.html:78 -#: order/templates/order/sales_order_base.html:77 +#: order/templates/order/order_base.html:74 +#: order/templates/order/return_order_base.html:79 +#: order/templates/order/sales_order_base.html:78 msgid "Hold order" msgstr "" -#: order/templates/order/order_base.html:78 -#: order/templates/order/return_order_base.html:81 -#: order/templates/order/sales_order_base.html:80 +#: order/templates/order/order_base.html:79 +#: order/templates/order/return_order_base.html:82 +#: order/templates/order/sales_order_base.html:81 msgid "Cancel order" msgstr "Siparişi iptal et" -#: order/templates/order/order_base.html:84 #: order/templates/order/order_base.html:85 -#: order/templates/order/return_order_base.html:85 +#: order/templates/order/order_base.html:86 #: order/templates/order/return_order_base.html:86 -#: order/templates/order/sales_order_base.html:86 +#: order/templates/order/return_order_base.html:87 #: order/templates/order/sales_order_base.html:87 +#: order/templates/order/sales_order_base.html:88 msgid "Issue Order" msgstr "" -#: order/templates/order/order_base.html:88 -#: order/templates/order/return_order_base.html:89 +#: order/templates/order/order_base.html:89 +#: order/templates/order/return_order_base.html:90 msgid "Mark order as complete" msgstr "Siparişi tamamlandı olarak işaretle" -#: order/templates/order/order_base.html:89 -#: order/templates/order/return_order_base.html:90 -#: order/templates/order/sales_order_base.html:100 +#: order/templates/order/order_base.html:90 +#: order/templates/order/return_order_base.html:91 +#: order/templates/order/sales_order_base.html:101 msgid "Complete Order" msgstr "" -#: order/templates/order/order_base.html:96 +#: order/templates/order/order_base.html:97 msgid "Supplier part thumbnail" msgstr "" -#: order/templates/order/order_base.html:116 -#: order/templates/order/return_order_base.html:109 -#: order/templates/order/sales_order_base.html:118 +#: order/templates/order/order_base.html:117 +#: order/templates/order/return_order_base.html:110 +#: order/templates/order/sales_order_base.html:119 msgid "Order Description" msgstr "" -#: order/templates/order/order_base.html:146 -msgid "No suppplier information available" -msgstr "" - -#: order/templates/order/order_base.html:159 -#: order/templates/order/sales_order_base.html:164 +#: order/templates/order/order_base.html:168 +#: order/templates/order/sales_order_base.html:165 msgid "Completed Line Items" msgstr "" -#: order/templates/order/order_base.html:165 -#: order/templates/order/sales_order_base.html:170 -#: order/templates/order/sales_order_base.html:180 +#: order/templates/order/order_base.html:174 +#: order/templates/order/sales_order_base.html:171 +#: order/templates/order/sales_order_base.html:181 msgid "Incomplete" msgstr "" -#: order/templates/order/order_base.html:184 -#: order/templates/order/return_order_base.html:160 +#: order/templates/order/order_base.html:193 +#: order/templates/order/return_order_base.html:161 #: report/templates/report/inventree_build_order_report.html:121 msgid "Issued" msgstr "" -#: order/templates/order/order_base.html:229 +#: order/templates/order/order_base.html:238 msgid "Total cost" msgstr "" -#: order/templates/order/order_base.html:233 -#: order/templates/order/return_order_base.html:202 -#: order/templates/order/sales_order_base.html:246 +#: order/templates/order/order_base.html:242 +#: order/templates/order/return_order_base.html:203 +#: order/templates/order/sales_order_base.html:247 msgid "Total cost could not be calculated" msgstr "" -#: order/templates/order/order_base.html:335 +#: order/templates/order/order_base.html:344 msgid "Purchase Order QR Code" msgstr "" -#: order/templates/order/order_base.html:347 +#: order/templates/order/order_base.html:356 msgid "Link Barcode to Purchase Order" msgstr "" @@ -6184,12 +6392,12 @@ msgstr "" #: part/templates/part/import_wizard/ajax_match_references.html:42 #: part/templates/part/import_wizard/match_fields.html:71 #: part/templates/part/import_wizard/match_references.html:49 -#: templates/js/translated/bom.js:133 templates/js/translated/build.js:530 -#: templates/js/translated/build.js:1802 -#: templates/js/translated/purchase_order.js:696 -#: templates/js/translated/purchase_order.js:1288 +#: templates/js/translated/bom.js:133 templates/js/translated/build.js:533 +#: templates/js/translated/build.js:1805 +#: templates/js/translated/purchase_order.js:679 +#: templates/js/translated/purchase_order.js:1271 #: templates/js/translated/return_order.js:505 -#: templates/js/translated/sales_order.js:1145 +#: templates/js/translated/sales_order.js:1111 #: templates/js/translated/stock.js:720 templates/js/translated/stock.js:889 #: templates/patterns/wizard/match_fields.html:70 msgid "Remove row" @@ -6242,7 +6450,7 @@ msgstr "" #: order/templates/order/purchase_order_detail.html:27 #: order/templates/order/return_order_detail.html:24 #: order/templates/order/sales_order_detail.html:24 -#: templates/js/translated/purchase_order.js:414 +#: templates/js/translated/purchase_order.js:397 #: templates/js/translated/return_order.js:458 #: templates/js/translated/sales_order.js:237 msgid "Add Line Item" @@ -6277,45 +6485,45 @@ msgstr "" msgid "Order Notes" msgstr "Sipariş Notları" -#: order/templates/order/return_order_base.html:18 -#: order/templates/order/sales_order_base.html:18 +#: order/templates/order/return_order_base.html:19 +#: order/templates/order/sales_order_base.html:19 msgid "Customer logo thumbnail" msgstr "" -#: order/templates/order/return_order_base.html:60 +#: order/templates/order/return_order_base.html:61 msgid "Print return order report" msgstr "" -#: order/templates/order/return_order_base.html:64 -#: order/templates/order/sales_order_base.html:64 +#: order/templates/order/return_order_base.html:65 +#: order/templates/order/sales_order_base.html:65 msgid "Print packing list" msgstr "" -#: order/templates/order/return_order_base.html:141 -#: order/templates/order/sales_order_base.html:158 +#: order/templates/order/return_order_base.html:142 +#: order/templates/order/sales_order_base.html:159 #: templates/js/translated/return_order.js:308 -#: templates/js/translated/sales_order.js:833 +#: templates/js/translated/sales_order.js:792 msgid "Customer Reference" msgstr "" -#: order/templates/order/return_order_base.html:198 -#: order/templates/order/sales_order_base.html:242 +#: order/templates/order/return_order_base.html:199 +#: order/templates/order/sales_order_base.html:243 #: part/templates/part/part_pricing.html:32 #: part/templates/part/part_pricing.html:58 #: part/templates/part/part_pricing.html:99 #: part/templates/part/part_pricing.html:114 #: templates/js/translated/part.js:1079 -#: templates/js/translated/purchase_order.js:1822 +#: templates/js/translated/purchase_order.js:1806 #: templates/js/translated/return_order.js:380 -#: templates/js/translated/sales_order.js:891 +#: templates/js/translated/sales_order.js:850 msgid "Total Cost" msgstr "Toplam Maliyet" -#: order/templates/order/return_order_base.html:273 +#: order/templates/order/return_order_base.html:274 msgid "Return Order QR Code" msgstr "" -#: order/templates/order/return_order_base.html:285 +#: order/templates/order/return_order_base.html:286 msgid "Link Barcode to Return Order" msgstr "" @@ -6323,40 +6531,40 @@ msgstr "" msgid "Order Details" msgstr "" -#: order/templates/order/sales_order_base.html:60 +#: order/templates/order/sales_order_base.html:61 msgid "Print sales order report" msgstr "" -#: order/templates/order/sales_order_base.html:91 #: order/templates/order/sales_order_base.html:92 +#: order/templates/order/sales_order_base.html:93 msgid "Ship Items" msgstr "" -#: order/templates/order/sales_order_base.html:95 #: order/templates/order/sales_order_base.html:96 +#: order/templates/order/sales_order_base.html:97 msgid "Mark As Shipped" msgstr "" -#: order/templates/order/sales_order_base.html:99 -#: templates/js/translated/sales_order.js:536 +#: order/templates/order/sales_order_base.html:100 +#: templates/js/translated/sales_order.js:495 msgid "Complete Sales Order" msgstr "" -#: order/templates/order/sales_order_base.html:138 +#: order/templates/order/sales_order_base.html:139 msgid "This Sales Order has not been fully allocated" msgstr "" -#: order/templates/order/sales_order_base.html:176 +#: order/templates/order/sales_order_base.html:177 #: order/templates/order/sales_order_detail.html:99 #: order/templates/order/so_sidebar.html:11 msgid "Completed Shipments" msgstr "" -#: order/templates/order/sales_order_base.html:339 +#: order/templates/order/sales_order_base.html:340 msgid "Sales Order QR Code" msgstr "" -#: order/templates/order/sales_order_base.html:351 +#: order/templates/order/sales_order_base.html:352 msgid "Link Barcode to Sales Order" msgstr "" @@ -6370,7 +6578,7 @@ msgid "Pending Shipments" msgstr "" #: order/templates/order/sales_order_detail.html:71 -#: templates/js/translated/bom.js:1277 templates/js/translated/build.js:1063 +#: templates/js/translated/bom.js:1277 templates/js/translated/build.js:1066 #: templates/js/translated/filters.js:299 msgid "Actions" msgstr "İşlemler" @@ -6383,39 +6591,40 @@ msgstr "" msgid "Match Supplier Parts" msgstr "" -#: order/views.py:406 +#: order/views.py:407 msgid "Sales order not found" msgstr "" -#: order/views.py:412 +#: order/views.py:413 msgid "Price not found" msgstr "" -#: order/views.py:415 +#: order/views.py:416 #, python-brace-format msgid "Updated {part} unit-price to {price}" msgstr "" -#: order/views.py:421 +#: order/views.py:422 #, python-brace-format msgid "Updated {part} unit-price to {price} and quantity to {qty}" msgstr "" -#: part/admin.py:48 part/models.py:1032 part/templates/part/part_base.html:269 +#: part/admin.py:48 part/models.py:1093 part/serializers.py:939 +#: part/templates/part/part_base.html:277 #: report/templates/report/inventree_stock_location_report.html:103 #: templates/js/translated/part.js:1233 templates/js/translated/part.js:2347 -#: templates/js/translated/stock.js:2121 +#: templates/js/translated/stock.js:2122 msgid "IPN" msgstr "DPN" -#: part/admin.py:50 part/models.py:1041 part/templates/part/part_base.html:286 +#: part/admin.py:50 part/models.py:1102 part/templates/part/part_base.html:294 #: report/models.py:161 templates/js/translated/part.js:1238 #: templates/js/translated/part.js:2353 msgid "Revision" msgstr "Revizyon" -#: part/admin.py:53 part/admin.py:319 part/models.py:1014 -#: part/templates/part/category.html:91 part/templates/part/part_base.html:307 +#: part/admin.py:53 part/admin.py:319 part/models.py:1075 +#: part/templates/part/category.html:91 part/templates/part/part_base.html:315 msgid "Keywords" msgstr "Anahtar kelimeler" @@ -6427,7 +6636,7 @@ msgstr "" msgid "Category ID" msgstr "" -#: part/admin.py:67 part/admin.py:304 part/serializers.py:880 +#: part/admin.py:67 part/admin.py:304 part/serializers.py:924 #: part/stocktake.py:222 msgid "Category Name" msgstr "" @@ -6440,11 +6649,11 @@ msgstr "" msgid "Default Supplier ID" msgstr "" -#: part/admin.py:81 part/models.py:1000 part/templates/part/part_base.html:177 +#: part/admin.py:81 part/models.py:1061 part/templates/part/part_base.html:178 msgid "Variant Of" msgstr "Çeşidi" -#: part/admin.py:84 part/models.py:1138 part/templates/part/part_base.html:203 +#: part/admin.py:84 part/models.py:1199 part/templates/part/part_base.html:204 msgid "Minimum Stock" msgstr "Minimum Stok" @@ -6452,23 +6661,23 @@ msgstr "Minimum Stok" msgid "Used In" msgstr "" -#: part/admin.py:150 part/serializers.py:897 -#: part/templates/part/part_base.html:241 stock/admin.py:235 +#: part/admin.py:150 part/serializers.py:949 +#: part/templates/part/part_base.html:249 stock/admin.py:236 #: templates/js/translated/part.js:717 templates/js/translated/part.js:2159 msgid "Building" msgstr "" -#: part/admin.py:155 part/models.py:3202 part/models.py:3216 +#: part/admin.py:155 part/models.py:3253 part/models.py:3267 #: templates/js/translated/part.js:976 msgid "Minimum Cost" msgstr "" -#: part/admin.py:158 part/models.py:3209 part/models.py:3223 +#: part/admin.py:158 part/models.py:3260 part/models.py:3274 #: templates/js/translated/part.js:986 msgid "Maximum Cost" msgstr "" -#: part/admin.py:308 part/admin.py:387 stock/admin.py:57 stock/admin.py:215 +#: part/admin.py:308 part/admin.py:387 stock/admin.py:57 stock/admin.py:216 msgid "Parent ID" msgstr "" @@ -6481,8 +6690,8 @@ msgstr "" msgid "Category Path" msgstr "" -#: part/admin.py:325 part/models.py:425 part/serializers.py:130 -#: part/serializers.py:290 part/serializers.py:415 +#: part/admin.py:325 part/models.py:420 part/serializers.py:130 +#: part/serializers.py:323 part/serializers.py:459 #: part/templates/part/cat_link.html:3 part/templates/part/category.html:20 #: part/templates/part/category.html:138 part/templates/part/category.html:158 #: part/templates/part/category_sidebar.html:9 @@ -6509,15 +6718,15 @@ msgstr "" msgid "Part Revision" msgstr "" -#: part/admin.py:418 part/serializers.py:1346 +#: part/admin.py:418 part/serializers.py:1400 #: templates/js/translated/pricing.js:358 -#: templates/js/translated/pricing.js:1024 +#: templates/js/translated/pricing.js:1022 msgid "Minimum Price" msgstr "" -#: part/admin.py:423 part/serializers.py:1361 +#: part/admin.py:423 part/serializers.py:1415 #: templates/js/translated/pricing.js:353 -#: templates/js/translated/pricing.js:1032 +#: templates/js/translated/pricing.js:1030 msgid "Maximum Price" msgstr "" @@ -6545,94 +6754,98 @@ msgstr "" msgid "Filter by top-level categories" msgstr "" +#: part/api.py:156 stock/api.py:343 +msgid "Cascade" +msgstr "" + #: part/api.py:158 msgid "Include sub-categories in filtered results" msgstr "" -#: part/api.py:179 templates/js/translated/part.js:311 +#: part/api.py:178 templates/js/translated/part.js:311 msgid "Parent" msgstr "" -#: part/api.py:181 +#: part/api.py:180 msgid "Filter by parent category" msgstr "" -#: part/api.py:214 +#: part/api.py:213 msgid "Exclude Tree" msgstr "" -#: part/api.py:216 +#: part/api.py:215 msgid "Exclude sub-categories under the specified category" msgstr "" -#: part/api.py:441 +#: part/api.py:440 msgid "Has Results" msgstr "" -#: part/api.py:608 +#: part/api.py:604 msgid "Incoming Purchase Order" msgstr "" -#: part/api.py:626 +#: part/api.py:618 msgid "Outgoing Sales Order" msgstr "" -#: part/api.py:642 +#: part/api.py:630 msgid "Stock produced by Build Order" msgstr "" -#: part/api.py:726 +#: part/api.py:712 msgid "Stock required for Build Order" msgstr "" -#: part/api.py:874 +#: part/api.py:858 msgid "Validate entire Bill of Materials" msgstr "" -#: part/api.py:880 +#: part/api.py:864 msgid "This option must be selected" msgstr "" -#: part/api.py:916 +#: part/api.py:900 msgid "Is Revision" msgstr "" -#: part/api.py:926 +#: part/api.py:910 msgid "Has Revisions" msgstr "" -#: part/api.py:1117 +#: part/api.py:1101 msgid "BOM Valid" msgstr "" -#: part/api.py:1523 part/models.py:1024 part/models.py:3489 part/models.py:4046 -#: part/serializers.py:430 part/serializers.py:1202 -#: part/templates/part/part_base.html:260 stock/api.py:781 +#: part/api.py:1509 part/models.py:1085 part/models.py:3540 part/models.py:4104 +#: part/serializers.py:474 part/serializers.py:1255 +#: part/templates/part/part_base.html:268 stock/api.py:781 #: templates/InvenTree/settings/settings_staff_js.html:300 #: templates/js/translated/notification.js:60 #: templates/js/translated/part.js:2383 msgid "Category" msgstr "" -#: part/api.py:1761 +#: part/api.py:1750 msgid "Assembly part is testable" msgstr "" -#: part/api.py:1770 +#: part/api.py:1759 msgid "Component part is testable" msgstr "" -#: part/api.py:1821 +#: part/api.py:1810 msgid "Uses" msgstr "" -#: part/bom.py:178 part/models.py:107 part/models.py:1077 -#: part/templates/part/category.html:113 part/templates/part/part_base.html:376 +#: part/bom.py:183 part/models.py:109 part/models.py:1138 +#: part/templates/part/category.html:113 part/templates/part/part_base.html:384 #: templates/js/translated/part.js:2397 msgid "Default Location" msgstr "Varsayılan Konum" -#: part/bom.py:179 part/serializers.py:905 +#: part/bom.py:184 part/serializers.py:957 #: templates/email/low_stock_notification.html:16 msgid "Total Stock" msgstr "" @@ -6641,789 +6854,789 @@ msgstr "" msgid "Input quantity for price calculation" msgstr "" -#: part/models.py:88 part/models.py:4047 part/templates/part/category.html:16 +#: part/models.py:90 part/models.py:4105 part/templates/part/category.html:16 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "" -#: part/models.py:89 part/templates/part/category.html:133 +#: part/models.py:91 part/templates/part/category.html:133 #: templates/InvenTree/search.html:97 templates/js/translated/search.js:158 #: users/models.py:202 msgid "Part Categories" msgstr "Parça Kategorileri" -#: part/models.py:108 +#: part/models.py:110 msgid "Default location for parts in this category" msgstr "Bu kategori içindeki parçalar için varsayılan konum" -#: part/models.py:113 stock/models.py:187 templates/js/translated/part.js:2828 -#: templates/js/translated/stock.js:2856 +#: part/models.py:115 stock/models.py:193 templates/js/translated/part.js:2828 +#: templates/js/translated/stock.js:2857 #: templates/js/translated/table_filters.js:246 #: templates/js/translated/table_filters.js:290 msgid "Structural" msgstr "" -#: part/models.py:115 +#: part/models.py:117 msgid "Parts may not be directly assigned to a structural category, but may be assigned to child categories." msgstr "" -#: part/models.py:124 +#: part/models.py:126 msgid "Default keywords" msgstr "" -#: part/models.py:125 +#: part/models.py:127 msgid "Default keywords for parts in this category" msgstr "" -#: part/models.py:131 stock/models.py:90 stock/models.py:169 +#: part/models.py:133 stock/models.py:96 stock/models.py:175 #: templates/InvenTree/settings/settings_staff_js.html:445 msgid "Icon" msgstr "" -#: part/models.py:132 part/serializers.py:143 part/serializers.py:161 -#: stock/models.py:170 +#: part/models.py:134 part/serializers.py:143 part/serializers.py:161 +#: stock/models.py:176 msgid "Icon (optional)" msgstr "" -#: part/models.py:178 +#: part/models.py:180 msgid "You cannot make this part category structural because some parts are already assigned to it!" msgstr "" -#: part/models.py:519 +#: part/models.py:514 msgid "Cannot delete this part as it is locked" msgstr "" -#: part/models.py:522 +#: part/models.py:517 msgid "Cannot delete this part as it is still active" msgstr "" -#: part/models.py:527 +#: part/models.py:522 msgid "Cannot delete this part as it is used in an assembly" msgstr "" -#: part/models.py:565 +#: part/models.py:560 msgid "Invalid choice for parent part" msgstr "" -#: part/models.py:613 part/models.py:620 +#: part/models.py:608 part/models.py:615 #, python-brace-format msgid "Part '{self}' cannot be used in BOM for '{parent}' (recursive)" msgstr "" -#: part/models.py:632 +#: part/models.py:627 #, python-brace-format msgid "Part '{parent}' is used in BOM for '{self}' (recursive)" msgstr "" -#: part/models.py:695 +#: part/models.py:694 #, python-brace-format msgid "IPN must match regex pattern {pattern}" msgstr "" -#: part/models.py:703 +#: part/models.py:702 msgid "Part cannot be a revision of itself" msgstr "" -#: part/models.py:710 +#: part/models.py:709 msgid "Cannot make a revision of a part which is already a revision" msgstr "" -#: part/models.py:717 +#: part/models.py:716 msgid "Revision code must be specified" msgstr "" -#: part/models.py:724 +#: part/models.py:723 msgid "Revisions are only allowed for assembly parts" msgstr "" -#: part/models.py:731 +#: part/models.py:730 msgid "Cannot make a revision of a template part" msgstr "" -#: part/models.py:737 +#: part/models.py:736 msgid "Parent part must point to the same template" msgstr "" -#: part/models.py:816 +#: part/models.py:832 msgid "Stock item with this serial number already exists" msgstr "" -#: part/models.py:917 +#: part/models.py:976 msgid "Duplicate IPN not allowed in part settings" msgstr "Yinelenen DPN'ye parça ayarlarında izin verilmiyor" -#: part/models.py:926 +#: part/models.py:988 msgid "Duplicate part revision already exists." msgstr "" -#: part/models.py:936 +#: part/models.py:997 msgid "Part with this Name, IPN and Revision already exists." msgstr "" -#: part/models.py:951 +#: part/models.py:1012 msgid "Parts cannot be assigned to structural part categories!" msgstr "" -#: part/models.py:983 part/models.py:4102 +#: part/models.py:1044 part/models.py:4160 msgid "Part name" msgstr "Parça adı" -#: part/models.py:988 +#: part/models.py:1049 msgid "Is Template" msgstr "Şablon Mu" -#: part/models.py:989 +#: part/models.py:1050 msgid "Is this part a template part?" msgstr "Bu parça bir şablon parçası mı?" -#: part/models.py:999 +#: part/models.py:1060 msgid "Is this part a variant of another part?" msgstr "Bu parça başka bir parçanın çeşidi mi?" -#: part/models.py:1007 +#: part/models.py:1068 msgid "Part description (optional)" msgstr "" -#: part/models.py:1015 +#: part/models.py:1076 msgid "Part keywords to improve visibility in search results" msgstr "" -#: part/models.py:1025 +#: part/models.py:1086 msgid "Part category" msgstr "" -#: part/models.py:1040 +#: part/models.py:1101 msgid "Part revision or version number" msgstr "Parça revizyon veya versiyon numarası" -#: part/models.py:1050 +#: part/models.py:1111 msgid "Is this part a revision of another part?" msgstr "" -#: part/models.py:1051 part/templates/part/part_base.html:277 +#: part/models.py:1112 part/templates/part/part_base.html:285 msgid "Revision Of" msgstr "" -#: part/models.py:1075 +#: part/models.py:1136 msgid "Where is this item normally stored?" msgstr "" -#: part/models.py:1121 part/templates/part/part_base.html:385 +#: part/models.py:1182 part/templates/part/part_base.html:393 msgid "Default Supplier" msgstr "Varsayılan Tedarikçi" -#: part/models.py:1122 +#: part/models.py:1183 msgid "Default supplier part" msgstr "Varsayılan tedarikçi parçası" -#: part/models.py:1129 +#: part/models.py:1190 msgid "Default Expiry" msgstr "" -#: part/models.py:1130 +#: part/models.py:1191 msgid "Expiry time (in days) for stock items of this part" msgstr "" -#: part/models.py:1139 +#: part/models.py:1200 msgid "Minimum allowed stock level" msgstr "" -#: part/models.py:1148 +#: part/models.py:1209 msgid "Units of measure for this part" msgstr "" -#: part/models.py:1155 +#: part/models.py:1216 msgid "Can this part be built from other parts?" msgstr "Bu parça diğer parçalardan yapılabilir mi?" -#: part/models.py:1161 +#: part/models.py:1222 msgid "Can this part be used to build other parts?" msgstr "Bu parça diğer parçaların yapımında kullanılabilir mi?" -#: part/models.py:1167 +#: part/models.py:1228 msgid "Does this part have tracking for unique items?" msgstr "" -#: part/models.py:1173 +#: part/models.py:1234 msgid "Can this part have test results recorded against it?" msgstr "" -#: part/models.py:1179 +#: part/models.py:1240 msgid "Can this part be purchased from external suppliers?" msgstr "Bu parça dış tedarikçilerden satın alınabilir mi?" -#: part/models.py:1185 +#: part/models.py:1246 msgid "Can this part be sold to customers?" msgstr "Bu parça müşterilere satılabilir mi?" -#: part/models.py:1189 +#: part/models.py:1250 msgid "Is this part active?" msgstr "Bu parça aktif mi?" -#: part/models.py:1194 templates/js/translated/part.js:821 +#: part/models.py:1255 templates/js/translated/part.js:821 #: templates/js/translated/table_filters.js:724 msgid "Locked" msgstr "" -#: part/models.py:1195 +#: part/models.py:1256 msgid "Locked parts cannot be edited" msgstr "" -#: part/models.py:1201 +#: part/models.py:1262 msgid "Is this a virtual part, such as a software product or license?" msgstr "" -#: part/models.py:1207 +#: part/models.py:1268 msgid "BOM checksum" msgstr "" -#: part/models.py:1208 +#: part/models.py:1269 msgid "Stored BOM checksum" msgstr "" -#: part/models.py:1216 +#: part/models.py:1277 msgid "BOM checked by" msgstr "" -#: part/models.py:1221 +#: part/models.py:1282 msgid "BOM checked date" msgstr "" -#: part/models.py:1237 +#: part/models.py:1298 msgid "Creation User" msgstr "Oluşturan Kullanıcı" -#: part/models.py:1247 +#: part/models.py:1308 msgid "Owner responsible for this part" msgstr "" -#: part/models.py:1252 part/templates/part/part_base.html:348 -#: stock/templates/stock/item_base.html:451 +#: part/models.py:1313 part/templates/part/part_base.html:356 +#: stock/templates/stock/item_base.html:448 #: templates/js/translated/part.js:2490 msgid "Last Stocktake" msgstr "" -#: part/models.py:2125 +#: part/models.py:2185 msgid "Sell multiple" msgstr "" -#: part/models.py:3116 +#: part/models.py:3167 msgid "Currency used to cache pricing calculations" msgstr "" -#: part/models.py:3132 +#: part/models.py:3183 msgid "Minimum BOM Cost" msgstr "" -#: part/models.py:3133 +#: part/models.py:3184 msgid "Minimum cost of component parts" msgstr "" -#: part/models.py:3139 +#: part/models.py:3190 msgid "Maximum BOM Cost" msgstr "" -#: part/models.py:3140 +#: part/models.py:3191 msgid "Maximum cost of component parts" msgstr "" -#: part/models.py:3146 +#: part/models.py:3197 msgid "Minimum Purchase Cost" msgstr "" -#: part/models.py:3147 +#: part/models.py:3198 msgid "Minimum historical purchase cost" msgstr "" -#: part/models.py:3153 +#: part/models.py:3204 msgid "Maximum Purchase Cost" msgstr "" -#: part/models.py:3154 +#: part/models.py:3205 msgid "Maximum historical purchase cost" msgstr "" -#: part/models.py:3160 +#: part/models.py:3211 msgid "Minimum Internal Price" msgstr "" -#: part/models.py:3161 +#: part/models.py:3212 msgid "Minimum cost based on internal price breaks" msgstr "" -#: part/models.py:3167 +#: part/models.py:3218 msgid "Maximum Internal Price" msgstr "" -#: part/models.py:3168 +#: part/models.py:3219 msgid "Maximum cost based on internal price breaks" msgstr "" -#: part/models.py:3174 +#: part/models.py:3225 msgid "Minimum Supplier Price" msgstr "" -#: part/models.py:3175 +#: part/models.py:3226 msgid "Minimum price of part from external suppliers" msgstr "" -#: part/models.py:3181 +#: part/models.py:3232 msgid "Maximum Supplier Price" msgstr "" -#: part/models.py:3182 +#: part/models.py:3233 msgid "Maximum price of part from external suppliers" msgstr "" -#: part/models.py:3188 +#: part/models.py:3239 msgid "Minimum Variant Cost" msgstr "" -#: part/models.py:3189 +#: part/models.py:3240 msgid "Calculated minimum cost of variant parts" msgstr "" -#: part/models.py:3195 +#: part/models.py:3246 msgid "Maximum Variant Cost" msgstr "" -#: part/models.py:3196 +#: part/models.py:3247 msgid "Calculated maximum cost of variant parts" msgstr "" -#: part/models.py:3203 +#: part/models.py:3254 msgid "Override minimum cost" msgstr "" -#: part/models.py:3210 +#: part/models.py:3261 msgid "Override maximum cost" msgstr "" -#: part/models.py:3217 +#: part/models.py:3268 msgid "Calculated overall minimum cost" msgstr "" -#: part/models.py:3224 +#: part/models.py:3275 msgid "Calculated overall maximum cost" msgstr "" -#: part/models.py:3230 +#: part/models.py:3281 msgid "Minimum Sale Price" msgstr "" -#: part/models.py:3231 +#: part/models.py:3282 msgid "Minimum sale price based on price breaks" msgstr "" -#: part/models.py:3237 +#: part/models.py:3288 msgid "Maximum Sale Price" msgstr "" -#: part/models.py:3238 +#: part/models.py:3289 msgid "Maximum sale price based on price breaks" msgstr "" -#: part/models.py:3244 +#: part/models.py:3295 msgid "Minimum Sale Cost" msgstr "" -#: part/models.py:3245 +#: part/models.py:3296 msgid "Minimum historical sale price" msgstr "" -#: part/models.py:3251 +#: part/models.py:3302 msgid "Maximum Sale Cost" msgstr "" -#: part/models.py:3252 +#: part/models.py:3303 msgid "Maximum historical sale price" msgstr "" -#: part/models.py:3271 +#: part/models.py:3322 msgid "Part for stocktake" msgstr "" -#: part/models.py:3276 +#: part/models.py:3327 msgid "Item Count" msgstr "" -#: part/models.py:3277 +#: part/models.py:3328 msgid "Number of individual stock entries at time of stocktake" msgstr "" -#: part/models.py:3285 +#: part/models.py:3336 msgid "Total available stock at time of stocktake" msgstr "" -#: part/models.py:3289 part/models.py:3372 +#: part/models.py:3340 part/models.py:3423 part/serializers.py:263 #: part/templates/part/part_scheduling.html:13 #: report/templates/report/inventree_test_report.html:106 #: templates/InvenTree/settings/plugin_settings.html:37 #: templates/InvenTree/settings/settings_staff_js.html:543 -#: templates/js/translated/part.js:1092 templates/js/translated/pricing.js:826 -#: templates/js/translated/pricing.js:950 -#: templates/js/translated/purchase_order.js:1801 -#: templates/js/translated/stock.js:2905 +#: templates/js/translated/part.js:1092 templates/js/translated/pricing.js:824 +#: templates/js/translated/pricing.js:948 +#: templates/js/translated/purchase_order.js:1785 +#: templates/js/translated/stock.js:2906 msgid "Date" msgstr "" -#: part/models.py:3290 +#: part/models.py:3341 msgid "Date stocktake was performed" msgstr "" -#: part/models.py:3298 +#: part/models.py:3349 msgid "Additional notes" msgstr "" -#: part/models.py:3308 +#: part/models.py:3359 msgid "User who performed this stocktake" msgstr "" -#: part/models.py:3314 +#: part/models.py:3365 msgid "Minimum Stock Cost" msgstr "" -#: part/models.py:3315 +#: part/models.py:3366 msgid "Estimated minimum cost of stock on hand" msgstr "" -#: part/models.py:3321 +#: part/models.py:3372 msgid "Maximum Stock Cost" msgstr "" -#: part/models.py:3322 +#: part/models.py:3373 msgid "Estimated maximum cost of stock on hand" msgstr "" -#: part/models.py:3378 templates/InvenTree/settings/settings_staff_js.html:532 +#: part/models.py:3429 templates/InvenTree/settings/settings_staff_js.html:532 msgid "Report" msgstr "" -#: part/models.py:3379 +#: part/models.py:3430 msgid "Stocktake report file (generated internally)" msgstr "" -#: part/models.py:3384 templates/InvenTree/settings/settings_staff_js.html:539 +#: part/models.py:3435 templates/InvenTree/settings/settings_staff_js.html:539 msgid "Part Count" msgstr "" -#: part/models.py:3385 +#: part/models.py:3436 msgid "Number of parts covered by stocktake" msgstr "" -#: part/models.py:3395 +#: part/models.py:3446 msgid "User who requested this stocktake report" msgstr "" -#: part/models.py:3405 +#: part/models.py:3456 msgid "Part Sale Price Break" msgstr "" -#: part/models.py:3517 +#: part/models.py:3568 msgid "Part Test Template" msgstr "" -#: part/models.py:3543 +#: part/models.py:3594 msgid "Invalid template name - must include at least one alphanumeric character" msgstr "" -#: part/models.py:3564 part/models.py:3733 +#: part/models.py:3615 part/models.py:3784 msgid "Choices must be unique" msgstr "" -#: part/models.py:3575 -msgid "Test templates can only be created for trackable parts" -msgstr "Test şablonları sadece takip edilebilir paçalar için oluşturulabilir" +#: part/models.py:3626 +msgid "Test templates can only be created for testable parts" +msgstr "" -#: part/models.py:3586 +#: part/models.py:3637 msgid "Test template with the same key already exists for part" msgstr "" -#: part/models.py:3603 templates/js/translated/part.js:2898 +#: part/models.py:3654 templates/js/translated/part.js:2898 msgid "Test Name" msgstr "Test Adı" -#: part/models.py:3604 +#: part/models.py:3655 msgid "Enter a name for the test" msgstr "" -#: part/models.py:3610 +#: part/models.py:3661 msgid "Test Key" msgstr "" -#: part/models.py:3611 +#: part/models.py:3662 msgid "Simplified key for the test" msgstr "" -#: part/models.py:3618 +#: part/models.py:3669 msgid "Test Description" msgstr "Test Açıklaması" -#: part/models.py:3619 +#: part/models.py:3670 msgid "Enter description for this test" msgstr "" -#: part/models.py:3623 report/models.py:208 +#: part/models.py:3674 report/models.py:216 #: templates/js/translated/part.js:2919 #: templates/js/translated/table_filters.js:502 msgid "Enabled" msgstr "Etkin" -#: part/models.py:3623 +#: part/models.py:3674 msgid "Is this test enabled?" msgstr "" -#: part/models.py:3628 templates/js/translated/part.js:2927 +#: part/models.py:3679 templates/js/translated/part.js:2927 #: templates/js/translated/table_filters.js:498 msgid "Required" msgstr "Gerekli" -#: part/models.py:3629 +#: part/models.py:3680 msgid "Is this test required to pass?" msgstr "Testi geçmesi için bu gerekli mi?" -#: part/models.py:3634 templates/js/translated/part.js:2935 +#: part/models.py:3685 templates/js/translated/part.js:2935 msgid "Requires Value" msgstr "" -#: part/models.py:3635 +#: part/models.py:3686 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:3640 templates/js/translated/part.js:2942 +#: part/models.py:3691 templates/js/translated/part.js:2942 msgid "Requires Attachment" msgstr "" -#: part/models.py:3642 +#: part/models.py:3693 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:3648 part/models.py:3792 templates/js/translated/part.js:1643 +#: part/models.py:3699 part/models.py:3843 templates/js/translated/part.js:1643 msgid "Choices" msgstr "" -#: part/models.py:3649 +#: part/models.py:3700 msgid "Valid choices for this test (comma-separated)" msgstr "" -#: part/models.py:3681 +#: part/models.py:3732 msgid "Part Parameter Template" msgstr "" -#: part/models.py:3708 +#: part/models.py:3759 msgid "Checkbox parameters cannot have units" msgstr "" -#: part/models.py:3713 +#: part/models.py:3764 msgid "Checkbox parameters cannot have choices" msgstr "" -#: part/models.py:3750 +#: part/models.py:3801 msgid "Parameter template name must be unique" msgstr "Parametre şablon adı benzersiz olmalıdır" -#: part/models.py:3765 +#: part/models.py:3816 msgid "Parameter Name" msgstr "" -#: part/models.py:3772 +#: part/models.py:3823 msgid "Physical units for this parameter" msgstr "" -#: part/models.py:3780 +#: part/models.py:3831 msgid "Parameter description" msgstr "" -#: part/models.py:3786 templates/js/translated/part.js:1634 +#: part/models.py:3837 templates/js/translated/part.js:1634 #: templates/js/translated/table_filters.js:837 msgid "Checkbox" msgstr "" -#: part/models.py:3787 +#: part/models.py:3838 msgid "Is this parameter a checkbox?" msgstr "" -#: part/models.py:3793 +#: part/models.py:3844 msgid "Valid choices for this parameter (comma-separated)" msgstr "" -#: part/models.py:3827 +#: part/models.py:3881 msgid "Part Parameter" msgstr "" -#: part/models.py:3853 +#: part/models.py:3907 msgid "Parameter cannot be modified - part is locked" msgstr "" -#: part/models.py:3889 +#: part/models.py:3945 msgid "Invalid choice for parameter value" msgstr "" -#: part/models.py:3938 +#: part/models.py:3996 msgid "Parent Part" msgstr "" -#: part/models.py:3946 part/models.py:4054 part/models.py:4055 +#: part/models.py:4004 part/models.py:4112 part/models.py:4113 #: templates/InvenTree/settings/settings_staff_js.html:295 msgid "Parameter Template" msgstr "Parametre Şablonu" -#: part/models.py:3952 +#: part/models.py:4010 msgid "Parameter Value" msgstr "" -#: part/models.py:4002 +#: part/models.py:4060 msgid "Part Category Parameter Template" msgstr "" -#: part/models.py:4061 templates/InvenTree/settings/settings_staff_js.html:304 +#: part/models.py:4119 templates/InvenTree/settings/settings_staff_js.html:304 msgid "Default Value" msgstr "" -#: part/models.py:4062 +#: part/models.py:4120 msgid "Default Parameter Value" msgstr "" -#: part/models.py:4100 +#: part/models.py:4158 msgid "Part ID or part name" msgstr "" -#: part/models.py:4101 +#: part/models.py:4159 msgid "Unique part ID value" msgstr "" -#: part/models.py:4103 +#: part/models.py:4161 msgid "Part IPN value" msgstr "" -#: part/models.py:4104 +#: part/models.py:4162 msgid "Level" msgstr "" -#: part/models.py:4104 +#: part/models.py:4162 msgid "BOM level" msgstr "" -#: part/models.py:4215 +#: part/models.py:4272 msgid "BOM item cannot be modified - assembly is locked" msgstr "" -#: part/models.py:4222 +#: part/models.py:4279 msgid "BOM item cannot be modified - variant assembly is locked" msgstr "" -#: part/models.py:4232 +#: part/models.py:4289 msgid "Select parent part" msgstr "" -#: part/models.py:4242 +#: part/models.py:4299 msgid "Sub part" msgstr "" -#: part/models.py:4243 +#: part/models.py:4300 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:4254 +#: part/models.py:4311 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:4260 +#: part/models.py:4317 msgid "This BOM item is optional" msgstr "" -#: part/models.py:4266 +#: part/models.py:4323 msgid "This BOM item is consumable (it is not tracked in build orders)" msgstr "" -#: part/models.py:4273 part/templates/part/upload_bom.html:55 +#: part/models.py:4330 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "" -#: part/models.py:4274 +#: part/models.py:4331 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:4281 +#: part/models.py:4338 msgid "BOM item reference" msgstr "" -#: part/models.py:4289 +#: part/models.py:4346 msgid "BOM item notes" msgstr "" -#: part/models.py:4295 +#: part/models.py:4352 msgid "Checksum" msgstr "" -#: part/models.py:4296 +#: part/models.py:4353 msgid "BOM line checksum" msgstr "" -#: part/models.py:4301 templates/js/translated/table_filters.js:181 +#: part/models.py:4358 templates/js/translated/table_filters.js:181 msgid "Validated" msgstr "" -#: part/models.py:4302 +#: part/models.py:4359 msgid "This BOM item has been validated" msgstr "" -#: part/models.py:4307 part/templates/part/upload_bom.html:57 +#: part/models.py:4364 part/templates/part/upload_bom.html:57 #: templates/js/translated/bom.js:1054 #: templates/js/translated/table_filters.js:185 #: templates/js/translated/table_filters.js:218 msgid "Gets inherited" msgstr "" -#: part/models.py:4308 +#: part/models.py:4365 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "Bu malzeme listesi, çeşit parçalar listesini kalıtsalıdır" -#: part/models.py:4314 +#: part/models.py:4371 msgid "Stock items for variant parts can be used for this BOM item" msgstr "Çeşit parçaların stok kalemleri bu malzeme listesinde kullanılabilir" -#: part/models.py:4399 stock/models.py:685 +#: part/models.py:4456 stock/models.py:762 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:4409 part/models.py:4411 +#: part/models.py:4466 part/models.py:4468 msgid "Sub part must be specified" msgstr "" -#: part/models.py:4551 +#: part/models.py:4613 msgid "BOM Item Substitute" msgstr "" -#: part/models.py:4572 +#: part/models.py:4634 msgid "Substitute part cannot be the same as the master part" msgstr "" -#: part/models.py:4585 +#: part/models.py:4647 msgid "Parent BOM item" msgstr "" -#: part/models.py:4593 +#: part/models.py:4655 msgid "Substitute part" msgstr "" -#: part/models.py:4609 +#: part/models.py:4671 msgid "Part 1" msgstr "" -#: part/models.py:4617 +#: part/models.py:4679 msgid "Part 2" msgstr "" -#: part/models.py:4618 +#: part/models.py:4680 msgid "Select Related Part" msgstr "" -#: part/models.py:4637 +#: part/models.py:4699 msgid "Part relationship cannot be created between a part and itself" msgstr "" -#: part/models.py:4642 +#: part/models.py:4704 msgid "Duplicate relationship already exists" msgstr "" @@ -7449,340 +7662,352 @@ msgstr "" msgid "Number of results recorded against this template" msgstr "" -#: part/serializers.py:225 part/serializers.py:243 stock/serializers.py:616 +#: part/serializers.py:225 part/serializers.py:243 stock/serializers.py:643 msgid "Purchase currency of this stock item" msgstr "" -#: part/serializers.py:291 +#: part/serializers.py:268 +msgid "Speculative Quantity" +msgstr "" + +#: part/serializers.py:277 +msgid "Model ID" +msgstr "" + +#: part/serializers.py:324 msgid "Number of parts using this template" msgstr "" -#: part/serializers.py:421 +#: part/serializers.py:465 msgid "No parts selected" msgstr "" -#: part/serializers.py:431 +#: part/serializers.py:475 msgid "Select category" msgstr "" -#: part/serializers.py:466 +#: part/serializers.py:510 msgid "Original Part" msgstr "" -#: part/serializers.py:467 +#: part/serializers.py:511 msgid "Select original part to duplicate" msgstr "" -#: part/serializers.py:472 +#: part/serializers.py:516 msgid "Copy Image" msgstr "" -#: part/serializers.py:473 +#: part/serializers.py:517 msgid "Copy image from original part" msgstr "" -#: part/serializers.py:479 part/templates/part/detail.html:293 +#: part/serializers.py:523 part/templates/part/detail.html:293 msgid "Copy BOM" msgstr "" -#: part/serializers.py:480 +#: part/serializers.py:524 msgid "Copy bill of materials from original part" msgstr "" -#: part/serializers.py:486 +#: part/serializers.py:530 msgid "Copy Parameters" msgstr "" -#: part/serializers.py:487 +#: part/serializers.py:531 msgid "Copy parameter data from original part" msgstr "" -#: part/serializers.py:493 +#: part/serializers.py:537 msgid "Copy Notes" msgstr "" -#: part/serializers.py:494 +#: part/serializers.py:538 msgid "Copy notes from original part" msgstr "" -#: part/serializers.py:512 +#: part/serializers.py:556 msgid "Initial Stock Quantity" msgstr "" -#: part/serializers.py:514 +#: part/serializers.py:558 msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added." msgstr "" -#: part/serializers.py:521 +#: part/serializers.py:565 msgid "Initial Stock Location" msgstr "" -#: part/serializers.py:522 +#: part/serializers.py:566 msgid "Specify initial stock location for this Part" msgstr "" -#: part/serializers.py:539 +#: part/serializers.py:583 msgid "Select supplier (or leave blank to skip)" msgstr "" -#: part/serializers.py:555 +#: part/serializers.py:599 msgid "Select manufacturer (or leave blank to skip)" msgstr "" -#: part/serializers.py:565 +#: part/serializers.py:609 msgid "Manufacturer part number" msgstr "" -#: part/serializers.py:572 +#: part/serializers.py:616 msgid "Selected company is not a valid supplier" msgstr "" -#: part/serializers.py:581 +#: part/serializers.py:625 msgid "Selected company is not a valid manufacturer" msgstr "" -#: part/serializers.py:592 +#: part/serializers.py:636 msgid "Manufacturer part matching this MPN already exists" msgstr "" -#: part/serializers.py:599 +#: part/serializers.py:643 msgid "Supplier part matching this SKU already exists" msgstr "" -#: part/serializers.py:903 +#: part/serializers.py:955 msgid "Revisions" msgstr "" -#: part/serializers.py:908 +#: part/serializers.py:960 msgid "Unallocated Stock" msgstr "" -#: part/serializers.py:911 +#: part/serializers.py:963 msgid "Variant Stock" msgstr "" -#: part/serializers.py:941 part/templates/part/copy_part.html:9 +#: part/serializers.py:993 part/templates/part/copy_part.html:9 #: templates/js/translated/part.js:474 msgid "Duplicate Part" msgstr "" -#: part/serializers.py:942 +#: part/serializers.py:994 msgid "Copy initial data from another Part" msgstr "" -#: part/serializers.py:948 templates/js/translated/part.js:103 +#: part/serializers.py:1000 templates/js/translated/part.js:103 msgid "Initial Stock" msgstr "" -#: part/serializers.py:949 +#: part/serializers.py:1001 msgid "Create Part with initial stock quantity" msgstr "" -#: part/serializers.py:955 +#: part/serializers.py:1007 msgid "Supplier Information" msgstr "" -#: part/serializers.py:956 +#: part/serializers.py:1008 msgid "Add initial supplier information for this part" msgstr "" -#: part/serializers.py:964 +#: part/serializers.py:1016 msgid "Copy Category Parameters" msgstr "" -#: part/serializers.py:965 +#: part/serializers.py:1017 msgid "Copy parameter templates from selected part category" msgstr "" -#: part/serializers.py:970 +#: part/serializers.py:1022 msgid "Existing Image" msgstr "" -#: part/serializers.py:971 +#: part/serializers.py:1023 msgid "Filename of an existing part image" msgstr "" -#: part/serializers.py:988 +#: part/serializers.py:1040 msgid "Image file does not exist" msgstr "" -#: part/serializers.py:1194 +#: part/serializers.py:1247 msgid "Limit stocktake report to a particular part, and any variant parts" msgstr "" -#: part/serializers.py:1204 +#: part/serializers.py:1257 msgid "Limit stocktake report to a particular part category, and any child categories" msgstr "" -#: part/serializers.py:1214 +#: part/serializers.py:1267 msgid "Limit stocktake report to a particular stock location, and any child locations" msgstr "" -#: part/serializers.py:1220 +#: part/serializers.py:1273 msgid "Exclude External Stock" msgstr "" -#: part/serializers.py:1221 +#: part/serializers.py:1274 msgid "Exclude stock items in external locations" msgstr "" -#: part/serializers.py:1226 +#: part/serializers.py:1279 msgid "Generate Report" msgstr "" -#: part/serializers.py:1227 +#: part/serializers.py:1280 msgid "Generate report file containing calculated stocktake data" msgstr "" -#: part/serializers.py:1232 +#: part/serializers.py:1285 msgid "Update Parts" msgstr "" -#: part/serializers.py:1233 +#: part/serializers.py:1286 msgid "Update specified parts with calculated stocktake data" msgstr "" -#: part/serializers.py:1241 +#: part/serializers.py:1294 msgid "Stocktake functionality is not enabled" msgstr "" -#: part/serializers.py:1347 +#: part/serializers.py:1299 +msgid "Background worker check failed" +msgstr "Arka plan çalışanı kontrolü başarısız oldu" + +#: part/serializers.py:1401 msgid "Override calculated value for minimum price" msgstr "" -#: part/serializers.py:1354 +#: part/serializers.py:1408 msgid "Minimum price currency" msgstr "" -#: part/serializers.py:1362 +#: part/serializers.py:1416 msgid "Override calculated value for maximum price" msgstr "" -#: part/serializers.py:1369 +#: part/serializers.py:1423 msgid "Maximum price currency" msgstr "" -#: part/serializers.py:1398 +#: part/serializers.py:1452 msgid "Update" msgstr "" -#: part/serializers.py:1399 +#: part/serializers.py:1453 msgid "Update pricing for this part" msgstr "" -#: part/serializers.py:1422 +#: part/serializers.py:1476 #, python-brace-format msgid "Could not convert from provided currencies to {default_currency}" msgstr "" -#: part/serializers.py:1429 +#: part/serializers.py:1483 msgid "Minimum price must not be greater than maximum price" msgstr "" -#: part/serializers.py:1432 +#: part/serializers.py:1486 msgid "Maximum price must not be less than minimum price" msgstr "" -#: part/serializers.py:1576 +#: part/serializers.py:1634 msgid "Select the parent assembly" msgstr "" -#: part/serializers.py:1585 +#: part/serializers.py:1643 msgid "Component Name" msgstr "" -#: part/serializers.py:1588 +#: part/serializers.py:1646 msgid "Component IPN" msgstr "" -#: part/serializers.py:1591 +#: part/serializers.py:1649 msgid "Component Description" msgstr "" -#: part/serializers.py:1597 +#: part/serializers.py:1655 msgid "Select the component part" msgstr "" -#: part/serializers.py:1606 part/templates/part/part_base.html:235 +#: part/serializers.py:1664 part/templates/part/part_base.html:243 #: templates/js/translated/bom.js:1219 msgid "Can Build" msgstr "" -#: part/serializers.py:1837 +#: part/serializers.py:1899 msgid "Select part to copy BOM from" msgstr "" -#: part/serializers.py:1845 +#: part/serializers.py:1907 msgid "Remove Existing Data" msgstr "" -#: part/serializers.py:1846 +#: part/serializers.py:1908 msgid "Remove existing BOM items before copying" msgstr "" -#: part/serializers.py:1851 +#: part/serializers.py:1913 msgid "Include Inherited" msgstr "" -#: part/serializers.py:1852 +#: part/serializers.py:1914 msgid "Include BOM items which are inherited from templated parts" msgstr "" -#: part/serializers.py:1857 +#: part/serializers.py:1919 msgid "Skip Invalid Rows" msgstr "" -#: part/serializers.py:1858 +#: part/serializers.py:1920 msgid "Enable this option to skip invalid rows" msgstr "" -#: part/serializers.py:1863 +#: part/serializers.py:1925 msgid "Copy Substitute Parts" msgstr "" -#: part/serializers.py:1864 +#: part/serializers.py:1926 msgid "Copy substitute parts when duplicate BOM items" msgstr "" -#: part/serializers.py:1901 +#: part/serializers.py:1963 msgid "Clear Existing BOM" msgstr "" -#: part/serializers.py:1902 +#: part/serializers.py:1964 msgid "Delete existing BOM items before uploading" msgstr "" -#: part/serializers.py:1934 +#: part/serializers.py:1996 msgid "No part column specified" msgstr "" -#: part/serializers.py:1978 +#: part/serializers.py:2040 msgid "Multiple matching parts found" msgstr "" -#: part/serializers.py:1981 +#: part/serializers.py:2043 msgid "No matching part found" msgstr "" -#: part/serializers.py:1984 +#: part/serializers.py:2045 msgid "Part is not designated as a component" msgstr "" -#: part/serializers.py:1993 +#: part/serializers.py:2054 msgid "Quantity not provided" msgstr "" -#: part/serializers.py:2001 +#: part/serializers.py:2062 msgid "Invalid quantity" msgstr "" -#: part/serializers.py:2024 +#: part/serializers.py:2085 msgid "At least one BOM item is required" msgstr "" #: part/stocktake.py:224 templates/js/translated/part.js:1073 #: templates/js/translated/part.js:1828 templates/js/translated/part.js:1884 -#: templates/js/translated/purchase_order.js:2154 +#: templates/js/translated/purchase_order.js:2138 msgid "Total Quantity" msgstr "" @@ -7932,9 +8157,9 @@ msgid "Add stocktake information" msgstr "" #: part/templates/part/detail.html:67 part/templates/part/part_sidebar.html:50 -#: stock/admin.py:255 templates/InvenTree/settings/part_stocktake.html:30 +#: stock/admin.py:256 templates/InvenTree/settings/part_stocktake.html:30 #: templates/InvenTree/settings/sidebar.html:53 -#: templates/js/translated/stock.js:2301 users/models.py:204 +#: templates/js/translated/stock.js:2302 users/models.py:204 msgid "Stocktake" msgstr "" @@ -8093,142 +8318,146 @@ msgstr "" msgid "Part List" msgstr "" -#: part/templates/part/part_base.html:25 part/templates/part/part_base.html:29 +#: part/templates/part/part_base.html:26 part/templates/part/part_base.html:30 msgid "You are subscribed to notifications for this part" msgstr "" -#: part/templates/part/part_base.html:33 +#: part/templates/part/part_base.html:34 msgid "Subscribe to notifications for this part" msgstr "" -#: part/templates/part/part_base.html:52 +#: part/templates/part/part_base.html:53 #: stock/templates/stock/item_base.html:62 -#: stock/templates/stock/location.html:71 templates/js/translated/label.js:136 +#: stock/templates/stock/location.html:72 templates/js/translated/label.js:136 msgid "Print Label" msgstr "Etiket Yazdır" -#: part/templates/part/part_base.html:58 +#: part/templates/part/part_base.html:59 msgid "Show pricing information" msgstr "" -#: part/templates/part/part_base.html:63 -#: stock/templates/stock/item_base.html:110 -#: stock/templates/stock/location.html:80 +#: part/templates/part/part_base.html:64 +#: stock/templates/stock/item_base.html:107 +#: stock/templates/stock/location.html:81 msgid "Stock actions" msgstr "Stok işlemleri" -#: part/templates/part/part_base.html:70 +#: part/templates/part/part_base.html:71 msgid "Count part stock" msgstr "" -#: part/templates/part/part_base.html:76 +#: part/templates/part/part_base.html:77 msgid "Transfer part stock" msgstr "" -#: part/templates/part/part_base.html:91 templates/js/translated/part.js:2299 +#: part/templates/part/part_base.html:92 templates/js/translated/part.js:2299 msgid "Part actions" msgstr "Parça işlemleri" -#: part/templates/part/part_base.html:94 +#: part/templates/part/part_base.html:95 msgid "Duplicate part" msgstr "" -#: part/templates/part/part_base.html:97 +#: part/templates/part/part_base.html:98 msgid "Edit part" msgstr "" -#: part/templates/part/part_base.html:100 +#: part/templates/part/part_base.html:101 msgid "Delete part" msgstr "" -#: part/templates/part/part_base.html:119 +#: part/templates/part/part_base.html:120 msgid "Part is a template part (variants can be made from this part)" msgstr "Bu parça bir şablon parçadır (Bu parçanın çeşitleri yapılabilir)" -#: part/templates/part/part_base.html:123 +#: part/templates/part/part_base.html:124 msgid "Part can be assembled from other parts" msgstr "" -#: part/templates/part/part_base.html:127 +#: part/templates/part/part_base.html:128 msgid "Part can be used in assemblies" msgstr "" -#: part/templates/part/part_base.html:131 +#: part/templates/part/part_base.html:132 msgid "Part stock is tracked by serial number" msgstr "Parça stoku seri numarası ile takip edilebilir" -#: part/templates/part/part_base.html:135 +#: part/templates/part/part_base.html:136 msgid "Part can be purchased from external suppliers" msgstr "Bu parça harici tedarikçilerden satın alınabilir" -#: part/templates/part/part_base.html:139 +#: part/templates/part/part_base.html:140 msgid "Part can be sold to customers" msgstr "" -#: part/templates/part/part_base.html:145 +#: part/templates/part/part_base.html:146 msgid "Part is not active" msgstr "" -#: part/templates/part/part_base.html:153 +#: part/templates/part/part_base.html:154 msgid "Part is virtual (not a physical part)" msgstr "" -#: part/templates/part/part_base.html:163 -#: part/templates/part/part_base.html:690 +#: part/templates/part/part_base.html:164 +#: part/templates/part/part_base.html:698 msgid "Show Part Details" msgstr "" #: part/templates/part/part_base.html:218 -#: stock/templates/stock/item_base.html:388 +msgid "Required for Orders" +msgstr "" + +#: part/templates/part/part_base.html:226 +#: stock/templates/stock/item_base.html:385 msgid "Allocated to Build Orders" msgstr "" -#: part/templates/part/part_base.html:227 -#: stock/templates/stock/item_base.html:381 +#: part/templates/part/part_base.html:235 +#: stock/templates/stock/item_base.html:378 msgid "Allocated to Sales Orders" msgstr "" -#: part/templates/part/part_base.html:300 +#: part/templates/part/part_base.html:308 msgid "Minimum stock level" msgstr "" -#: part/templates/part/part_base.html:331 templates/js/translated/bom.js:1071 +#: part/templates/part/part_base.html:339 templates/js/translated/bom.js:1071 #: templates/js/translated/part.js:1271 templates/js/translated/part.js:2463 #: templates/js/translated/pricing.js:391 -#: templates/js/translated/pricing.js:1054 +#: templates/js/translated/pricing.js:1052 msgid "Price Range" msgstr "" -#: part/templates/part/part_base.html:361 +#: part/templates/part/part_base.html:369 msgid "Latest Serial Number" msgstr "Son Seri Numarası" -#: part/templates/part/part_base.html:365 -#: stock/templates/stock/item_base.html:322 +#: part/templates/part/part_base.html:373 +#: stock/templates/stock/item_base.html:319 msgid "Search for serial number" msgstr "" -#: part/templates/part/part_base.html:453 +#: part/templates/part/part_base.html:461 msgid "Part QR Code" msgstr "" -#: part/templates/part/part_base.html:470 +#: part/templates/part/part_base.html:478 msgid "Link Barcode to Part" msgstr "" -#: part/templates/part/part_base.html:520 +#: part/templates/part/part_base.html:528 msgid "Calculate" msgstr "" -#: part/templates/part/part_base.html:537 +#: part/templates/part/part_base.html:545 msgid "Remove associated image from this part" msgstr "" -#: part/templates/part/part_base.html:588 +#: part/templates/part/part_base.html:596 msgid "No matching images found" msgstr "" -#: part/templates/part/part_base.html:684 +#: part/templates/part/part_base.html:692 msgid "Hide Part Details" msgstr "" @@ -8282,13 +8511,13 @@ msgid "Variants" msgstr "" #: part/templates/part/part_sidebar.html:14 -#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:21 +#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:22 #: stock/templates/stock/stock_app_base.html:10 #: templates/InvenTree/search.html:153 #: templates/InvenTree/settings/sidebar.html:51 #: templates/js/translated/part.js:1249 templates/js/translated/part.js:2152 #: templates/js/translated/part.js:2411 templates/js/translated/stock.js:1066 -#: templates/js/translated/stock.js:2155 templates/navbar.html:31 +#: templates/js/translated/stock.js:2156 templates/navbar.html:31 msgid "Stock" msgstr "Stok" @@ -8324,17 +8553,17 @@ msgstr "" #: part/templates/part/prices.html:18 #: templates/InvenTree/settings/settings_staff_js.html:80 #: templates/InvenTree/settings/user.html:24 -#: templates/js/translated/helpers.js:103 +#: templates/js/translated/helpers.js:104 #: templates/js/translated/pricing.js:628 templates/notes_buttons.html:3 #: templates/notes_buttons.html:4 msgid "Edit" msgstr "" -#: part/templates/part/prices.html:28 stock/admin.py:251 -#: stock/templates/stock/item_base.html:446 -#: templates/js/translated/company.js:1703 -#: templates/js/translated/company.js:1713 -#: templates/js/translated/stock.js:2331 +#: part/templates/part/prices.html:28 stock/admin.py:252 +#: stock/templates/stock/item_base.html:443 +#: templates/js/translated/company.js:1704 +#: templates/js/translated/company.js:1714 +#: templates/js/translated/stock.js:2332 msgid "Last Updated" msgstr "" @@ -8406,7 +8635,7 @@ msgid "Update Pricing" msgstr "" #: part/templates/part/stock_count.html:7 -#: templates/js/translated/model_renderers.js:228 +#: templates/js/translated/model_renderers.js:231 #: templates/js/translated/part.js:707 templates/js/translated/part.js:2147 #: templates/js/translated/part.js:2149 msgid "No Stock" @@ -8486,7 +8715,7 @@ msgstr "" msgid "Part Pricing" msgstr "" -#: plugin/api.py:172 +#: plugin/api.py:175 msgid "Plugin cannot be deleted as it is currently active" msgstr "" @@ -8498,78 +8727,85 @@ msgstr "İşlem belirtilmedi" msgid "No matching action found" msgstr "Eşleşen eylem bulunamadı" -#: plugin/base/barcodes/api.py:125 plugin/base/barcodes/api.py:371 -#: plugin/base/barcodes/api.py:546 +#: plugin/base/barcodes/api.py:203 msgid "No match found for barcode data" msgstr "Barkod verisi için eşleşme bulunamadı" -#: plugin/base/barcodes/api.py:129 +#: plugin/base/barcodes/api.py:207 msgid "Match found for barcode data" msgstr "Barkod verisi için eşleşme bulundu" -#: plugin/base/barcodes/api.py:163 plugin/base/barcodes/serializers.py:45 +#: plugin/base/barcodes/api.py:245 plugin/base/barcodes/serializers.py:72 msgid "Model is not supported" msgstr "" -#: plugin/base/barcodes/api.py:168 +#: plugin/base/barcodes/api.py:250 msgid "Model instance not found" msgstr "" -#: plugin/base/barcodes/api.py:197 -#: templates/js/translated/purchase_order.js:1468 +#: plugin/base/barcodes/api.py:279 +#: templates/js/translated/purchase_order.js:1452 msgid "Barcode matches existing item" msgstr "" -#: plugin/base/barcodes/api.py:336 +#: plugin/base/barcodes/api.py:418 msgid "No matching part data found" msgstr "" -#: plugin/base/barcodes/api.py:353 +#: plugin/base/barcodes/api.py:434 msgid "No matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:357 +#: plugin/base/barcodes/api.py:437 msgid "Multiple matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:381 +#: plugin/base/barcodes/api.py:450 plugin/base/barcodes/api.py:664 +msgid "No matching plugin found for barcode data" +msgstr "" + +#: plugin/base/barcodes/api.py:460 msgid "Matched supplier part" msgstr "" -#: plugin/base/barcodes/api.py:430 +#: plugin/base/barcodes/api.py:525 msgid "Item has already been received" msgstr "" -#: plugin/base/barcodes/api.py:467 +#: plugin/base/barcodes/api.py:563 msgid "No match for supplier barcode" msgstr "" -#: plugin/base/barcodes/api.py:510 +#: plugin/base/barcodes/api.py:612 msgid "Multiple matching line items found" msgstr "" -#: plugin/base/barcodes/api.py:513 +#: plugin/base/barcodes/api.py:615 msgid "No matching line item found" msgstr "" -#: plugin/base/barcodes/api.py:551 plugin/base/barcodes/api.py:558 +#: plugin/base/barcodes/api.py:661 +msgid "No sales order provided" +msgstr "" + +#: plugin/base/barcodes/api.py:670 msgid "Barcode does not match an existing stock item" msgstr "" -#: plugin/base/barcodes/api.py:569 +#: plugin/base/barcodes/api.py:686 msgid "Stock item does not match line item" msgstr "" -#: plugin/base/barcodes/api.py:593 templates/js/translated/build.js:2780 -#: templates/js/translated/sales_order.js:1953 +#: plugin/base/barcodes/api.py:716 templates/js/translated/build.js:2798 +#: templates/js/translated/sales_order.js:1934 msgid "Insufficient stock available" msgstr "" -#: plugin/base/barcodes/api.py:602 +#: plugin/base/barcodes/api.py:729 msgid "Stock item allocated to sales order" msgstr "" -#: plugin/base/barcodes/api.py:606 +#: plugin/base/barcodes/api.py:732 msgid "Not enough information" msgstr "" @@ -8591,75 +8827,75 @@ msgstr "" msgid "Purchase order does not match supplier" msgstr "" -#: plugin/base/barcodes/mixins.py:465 +#: plugin/base/barcodes/mixins.py:467 msgid "Failed to find pending line item for supplier part" msgstr "" -#: plugin/base/barcodes/mixins.py:496 +#: plugin/base/barcodes/mixins.py:498 msgid "Further information required to receive line item" msgstr "" -#: plugin/base/barcodes/mixins.py:504 +#: plugin/base/barcodes/mixins.py:506 msgid "Received purchase order line item" msgstr "" -#: plugin/base/barcodes/serializers.py:21 +#: plugin/base/barcodes/serializers.py:48 msgid "Scanned barcode data" msgstr "" -#: plugin/base/barcodes/serializers.py:30 +#: plugin/base/barcodes/serializers.py:57 msgid "Model name to generate barcode for" msgstr "" -#: plugin/base/barcodes/serializers.py:35 +#: plugin/base/barcodes/serializers.py:62 msgid "Primary key of model object to generate barcode for" msgstr "" -#: plugin/base/barcodes/serializers.py:105 +#: plugin/base/barcodes/serializers.py:132 msgid "Purchase Order to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:111 +#: plugin/base/barcodes/serializers.py:138 msgid "Purchase order is not pending" msgstr "" -#: plugin/base/barcodes/serializers.py:129 +#: plugin/base/barcodes/serializers.py:156 msgid "PurchaseOrder to receive items against" msgstr "" -#: plugin/base/barcodes/serializers.py:135 +#: plugin/base/barcodes/serializers.py:162 msgid "Purchase order has not been placed" msgstr "" -#: plugin/base/barcodes/serializers.py:143 +#: plugin/base/barcodes/serializers.py:170 msgid "Location to receive items into" msgstr "" -#: plugin/base/barcodes/serializers.py:149 +#: plugin/base/barcodes/serializers.py:176 msgid "Cannot select a structural location" msgstr "" -#: plugin/base/barcodes/serializers.py:163 +#: plugin/base/barcodes/serializers.py:190 msgid "Sales Order to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:169 +#: plugin/base/barcodes/serializers.py:196 msgid "Sales order is not pending" msgstr "" -#: plugin/base/barcodes/serializers.py:177 +#: plugin/base/barcodes/serializers.py:204 msgid "Sales order line item to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:184 +#: plugin/base/barcodes/serializers.py:211 msgid "Sales order shipment to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:190 +#: plugin/base/barcodes/serializers.py:217 msgid "Shipment has already been delivered" msgstr "" -#: plugin/base/barcodes/serializers.py:195 +#: plugin/base/barcodes/serializers.py:222 msgid "Quantity to allocate" msgstr "" @@ -8679,6 +8915,42 @@ msgstr "" msgid "No items provided to print" msgstr "" +#: plugin/base/ui/serializers.py:30 +msgid "Plugin Name" +msgstr "" + +#: plugin/base/ui/serializers.py:34 +msgid "Feature Type" +msgstr "" + +#: plugin/base/ui/serializers.py:39 +msgid "Feature Label" +msgstr "" + +#: plugin/base/ui/serializers.py:44 +msgid "Feature Title" +msgstr "" + +#: plugin/base/ui/serializers.py:49 +msgid "Feature Description" +msgstr "" + +#: plugin/base/ui/serializers.py:54 +msgid "Feature Icon" +msgstr "" + +#: plugin/base/ui/serializers.py:58 +msgid "Feature Options" +msgstr "" + +#: plugin/base/ui/serializers.py:61 +msgid "Feature Context" +msgstr "" + +#: plugin/base/ui/serializers.py:64 +msgid "Feature Source (javascript)" +msgstr "" + #: plugin/builtin/barcodes/inventree_barcode.py:27 msgid "InvenTree Barcodes" msgstr "" @@ -8756,7 +9028,7 @@ msgstr "" msgid "URL that is used to send messages to a slack channel" msgstr "" -#: plugin/builtin/integration/core_notifications.py:164 +#: plugin/builtin/integration/core_notifications.py:166 msgid "Open link" msgstr "" @@ -8794,11 +9066,11 @@ msgstr "" msgid "Provides support for printing using a machine" msgstr "" -#: plugin/builtin/labels/inventree_machine.py:149 +#: plugin/builtin/labels/inventree_machine.py:151 msgid "last used" msgstr "" -#: plugin/builtin/labels/inventree_machine.py:166 +#: plugin/builtin/labels/inventree_machine.py:168 msgid "Options" msgstr "" @@ -8822,7 +9094,7 @@ msgstr "" msgid "Print a border around each label" msgstr "" -#: plugin/builtin/labels/label_sheet.py:47 report/models.py:307 +#: plugin/builtin/labels/label_sheet.py:47 report/models.py:315 msgid "Landscape" msgstr "" @@ -8894,19 +9166,19 @@ msgstr "" msgid "The Supplier which acts as 'TME'" msgstr "" -#: plugin/installer.py:194 plugin/installer.py:282 +#: plugin/installer.py:199 plugin/installer.py:282 msgid "Only staff users can administer plugins" msgstr "" -#: plugin/installer.py:197 +#: plugin/installer.py:202 msgid "Plugin installation is disabled" msgstr "" -#: plugin/installer.py:248 +#: plugin/installer.py:246 msgid "Installed plugin successfully" msgstr "" -#: plugin/installer.py:254 +#: plugin/installer.py:251 #, python-brace-format msgid "Installed plugin into {path}" msgstr "" @@ -8943,10 +9215,6 @@ msgstr "" msgid "Plugin Configurations" msgstr "" -#: plugin/models.py:43 users/models.py:100 -msgid "Key" -msgstr "" - #: plugin/models.py:44 msgid "Key of plugin" msgstr "" @@ -8955,7 +9223,7 @@ msgstr "" msgid "PluginName of the plugin" msgstr "" -#: plugin/models.py:59 plugin/serializers.py:90 +#: plugin/models.py:59 plugin/serializers.py:115 msgid "Package Name" msgstr "" @@ -8984,17 +9252,17 @@ msgstr "" msgid "Package Plugin" msgstr "" -#: plugin/models.py:220 report/models.py:474 +#: plugin/models.py:259 report/models.py:482 #: templates/InvenTree/settings/plugin_settings.html:9 #: templates/js/translated/plugin.js:51 msgid "Plugin" msgstr "" -#: plugin/models.py:267 +#: plugin/models.py:306 msgid "Method" msgstr "" -#: plugin/plugin.py:270 +#: plugin/plugin.py:275 msgid "No author found" msgstr "" @@ -9053,81 +9321,157 @@ msgstr "" msgid "InvenTree Contributors" msgstr "" -#: plugin/serializers.py:81 -msgid "Source URL" +#: plugin/samples/integration/user_interface_sample.py:27 +msgid "Enable Part Panels" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:28 +msgid "Enable custom panels for Part views" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:33 +msgid "Enable Purchase Order Panels" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:34 +msgid "Enable custom panels for Purchase Order views" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:39 +msgid "Enable Broken Panels" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:40 +msgid "Enable broken panels for testing" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:45 +msgid "Enable Dynamic Panel" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:46 +msgid "Enable dynamic panels for testing" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:98 +msgid "Part Panel" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:131 +msgid "Broken Dashboard Item" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:133 +msgid "This is a broken dashboard item - it will not render!" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:139 +msgid "Sample Dashboard Item" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:141 +msgid "This is a sample dashboard item. It renders a simple string of HTML content." +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:147 +msgid "Context Dashboard Item" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:161 +msgid "Admin Dashboard Item" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:162 +msgid "This is an admin-only dashboard item." +msgstr "" + +#: plugin/serializers.py:82 +msgid "Source File" msgstr "" #: plugin/serializers.py:83 +msgid "Path to the source file for admin integration" +msgstr "" + +#: plugin/serializers.py:90 +msgid "Optional context data for the admin integration" +msgstr "" + +#: plugin/serializers.py:106 +msgid "Source URL" +msgstr "" + +#: plugin/serializers.py:108 msgid "Source for the package - this can be a custom registry or a VCS path" msgstr "" -#: plugin/serializers.py:92 +#: plugin/serializers.py:117 msgid "Name for the Plugin Package - can also contain a version indicator" msgstr "" -#: plugin/serializers.py:99 +#: plugin/serializers.py:124 #: templates/InvenTree/settings/plugin_settings.html:42 #: templates/js/translated/plugin.js:86 msgid "Version" msgstr "" -#: plugin/serializers.py:101 +#: plugin/serializers.py:126 msgid "Version specifier for the plugin. Leave blank for latest version." msgstr "" -#: plugin/serializers.py:106 +#: plugin/serializers.py:131 msgid "Confirm plugin installation" msgstr "" -#: plugin/serializers.py:108 +#: plugin/serializers.py:133 msgid "This will install this plugin now into the current instance. The instance will go into maintenance." msgstr "" -#: plugin/serializers.py:121 +#: plugin/serializers.py:146 msgid "Installation not confirmed" msgstr "" -#: plugin/serializers.py:123 +#: plugin/serializers.py:148 msgid "Either packagename of URL must be provided" msgstr "" -#: plugin/serializers.py:161 +#: plugin/serializers.py:184 msgid "Full reload" msgstr "" -#: plugin/serializers.py:162 +#: plugin/serializers.py:185 msgid "Perform a full reload of the plugin registry" msgstr "" -#: plugin/serializers.py:168 +#: plugin/serializers.py:191 msgid "Force reload" msgstr "" -#: plugin/serializers.py:170 +#: plugin/serializers.py:193 msgid "Force a reload of the plugin registry, even if it is already loaded" msgstr "" -#: plugin/serializers.py:177 +#: plugin/serializers.py:200 msgid "Collect plugins" msgstr "" -#: plugin/serializers.py:178 +#: plugin/serializers.py:201 msgid "Collect plugins and add them to the registry" msgstr "" -#: plugin/serializers.py:205 +#: plugin/serializers.py:228 msgid "Activate Plugin" msgstr "" -#: plugin/serializers.py:206 +#: plugin/serializers.py:229 msgid "Activate this plugin" msgstr "" -#: plugin/serializers.py:226 +#: plugin/serializers.py:249 msgid "Delete configuration" msgstr "" -#: plugin/serializers.py:227 +#: plugin/serializers.py:250 msgid "Delete the plugin configuration from the database" msgstr "" @@ -9135,11 +9479,11 @@ msgstr "" msgid "No valid objects provided to template" msgstr "Şablon için geçerli bir nesne sağlanmadı" -#: report/api.py:103 report/models.py:438 report/serializers.py:98 -#: report/serializers.py:148 templates/js/translated/purchase_order.js:1817 +#: report/api.py:103 report/models.py:446 report/serializers.py:99 +#: report/serializers.py:149 templates/js/translated/purchase_order.js:1801 #: templates/js/translated/return_order.js:353 -#: templates/js/translated/sales_order.js:887 -#: templates/js/translated/sales_order.js:1047 +#: templates/js/translated/sales_order.js:846 +#: templates/js/translated/sales_order.js:1020 msgid "Items" msgstr "" @@ -9167,7 +9511,11 @@ msgstr "" msgid "Error printing label" msgstr "" -#: report/api.py:375 report/api.py:411 +#: report/api.py:358 +msgid "Report saved at time of printing" +msgstr "" + +#: report/api.py:384 report/api.py:420 #, python-brace-format msgid "Template file '{template}' is missing or does not exist" msgstr "" @@ -9204,135 +9552,143 @@ msgstr "" msgid "Revision number (auto-increments)" msgstr "" -#: report/models.py:202 +#: report/models.py:168 +msgid "Attach to Model on Print" +msgstr "" + +#: report/models.py:170 +msgid "Save report output as an attachment against linked model instance when printing" +msgstr "" + +#: report/models.py:210 msgid "Filename Pattern" msgstr "Dosya Adı Deseni" -#: report/models.py:203 +#: report/models.py:211 msgid "Pattern for generating filenames" msgstr "" -#: report/models.py:208 +#: report/models.py:216 msgid "Template is enabled" msgstr "" -#: report/models.py:214 +#: report/models.py:222 msgid "Target model type for template" msgstr "" -#: report/models.py:234 +#: report/models.py:242 msgid "Filters" msgstr "Filtreler" -#: report/models.py:235 +#: report/models.py:243 msgid "Template query filters (comma-separated list of key=value pairs)" msgstr "" -#: report/models.py:294 report/models.py:361 +#: report/models.py:302 report/models.py:369 msgid "Template file" msgstr "" -#: report/models.py:302 +#: report/models.py:310 msgid "Page size for PDF reports" msgstr "" -#: report/models.py:308 +#: report/models.py:316 msgid "Render report in landscape orientation" msgstr "" -#: report/models.py:367 +#: report/models.py:375 msgid "Width [mm]" msgstr "Genişlik [mm]" -#: report/models.py:368 +#: report/models.py:376 msgid "Label width, specified in mm" msgstr "Etiket genişliği mm olarak belirtilmeli" -#: report/models.py:374 +#: report/models.py:382 msgid "Height [mm]" msgstr "Yükseklik [mm]" -#: report/models.py:375 +#: report/models.py:383 msgid "Label height, specified in mm" msgstr "Etiket yüksekliği mm olarak belirtilmeli" -#: report/models.py:438 +#: report/models.py:446 msgid "Number of items to process" msgstr "" -#: report/models.py:444 +#: report/models.py:452 msgid "Report generation is complete" msgstr "" -#: report/models.py:448 templates/js/translated/build.js:2349 +#: report/models.py:456 templates/js/translated/build.js:2352 msgid "Progress" msgstr "" -#: report/models.py:448 +#: report/models.py:456 msgid "Report generation progress" msgstr "" -#: report/models.py:456 +#: report/models.py:464 msgid "Report Template" msgstr "" -#: report/models.py:463 report/models.py:486 +#: report/models.py:471 report/models.py:494 msgid "Output File" msgstr "" -#: report/models.py:464 report/models.py:487 +#: report/models.py:472 report/models.py:495 msgid "Generated output file" msgstr "" -#: report/models.py:475 +#: report/models.py:483 msgid "Label output plugin" msgstr "" -#: report/models.py:479 +#: report/models.py:487 msgid "Label Template" msgstr "" -#: report/models.py:502 +#: report/models.py:510 msgid "Snippet" msgstr "" -#: report/models.py:503 +#: report/models.py:511 msgid "Report snippet file" msgstr "" -#: report/models.py:510 +#: report/models.py:518 msgid "Snippet file description" msgstr "" -#: report/models.py:528 +#: report/models.py:536 msgid "Asset" msgstr "" -#: report/models.py:529 +#: report/models.py:537 msgid "Report asset file" msgstr "" -#: report/models.py:536 +#: report/models.py:544 msgid "Asset file description" msgstr "" -#: report/serializers.py:91 +#: report/serializers.py:92 msgid "Select report template" msgstr "" -#: report/serializers.py:99 report/serializers.py:149 +#: report/serializers.py:100 report/serializers.py:150 msgid "List of item primary keys to include in the report" msgstr "" -#: report/serializers.py:132 +#: report/serializers.py:133 msgid "Select label template" msgstr "" -#: report/serializers.py:140 +#: report/serializers.py:141 msgid "Printing Plugin" msgstr "" -#: report/serializers.py:141 +#: report/serializers.py:142 msgid "Select plugin to use for label printing" msgstr "" @@ -9365,9 +9721,9 @@ msgstr "" #: report/templates/report/inventree_sales_order_report.html:30 #: templates/js/translated/order.js:341 templates/js/translated/pricing.js:527 #: templates/js/translated/pricing.js:596 -#: templates/js/translated/pricing.js:834 -#: templates/js/translated/purchase_order.js:2185 -#: templates/js/translated/sales_order.js:1873 +#: templates/js/translated/pricing.js:832 +#: templates/js/translated/purchase_order.js:2169 +#: templates/js/translated/sales_order.js:1854 msgid "Unit Price" msgstr "" @@ -9379,13 +9735,18 @@ msgstr "" #: report/templates/report/inventree_purchase_order_report.html:72 #: report/templates/report/inventree_sales_order_report.html:72 -#: templates/js/translated/purchase_order.js:2087 -#: templates/js/translated/sales_order.js:1842 +#: templates/js/translated/purchase_order.js:2071 +#: templates/js/translated/sales_order.js:1823 #: templates/test_statistics_table.html:8 #: templates/test_statistics_table.html:19 msgid "Total" msgstr "" +#: report/templates/report/inventree_sales_order_shipment_report.html:23 +#: stock/templates/stock/stock_sidebar.html:8 +msgid "Allocations" +msgstr "" + #: report/templates/report/inventree_stock_location_report.html:97 msgid "Stock location items" msgstr "" @@ -9403,15 +9764,13 @@ msgstr "" msgid "Test" msgstr "" -#: report/templates/report/inventree_test_report.html:103 stock/models.py:2544 -msgid "Result" -msgstr "" - #: report/templates/report/inventree_test_report.html:129 +#: templates/js/translated/stock.js:1448 msgid "Pass" msgstr "" #: report/templates/report/inventree_test_report.html:131 +#: templates/js/translated/stock.js:1450 msgid "Fail" msgstr "" @@ -9420,17 +9779,18 @@ msgid "No result (required)" msgstr "" #: report/templates/report/inventree_test_report.html:140 +#: templates/js/translated/stock.js:1455 msgid "No result" msgstr "" #: report/templates/report/inventree_test_report.html:153 -#: stock/serializers.py:599 stock/templates/stock/stock_sidebar.html:16 +#: stock/serializers.py:626 stock/templates/stock/stock_sidebar.html:16 msgid "Installed Items" msgstr "" -#: report/templates/report/inventree_test_report.html:167 stock/admin.py:161 +#: report/templates/report/inventree_test_report.html:167 stock/admin.py:162 #: templates/js/translated/stock.js:706 templates/js/translated/stock.js:877 -#: templates/js/translated/stock.js:3194 +#: templates/js/translated/stock.js:3195 msgid "Serial" msgstr "Seri No" @@ -9450,67 +9810,67 @@ msgstr "" msgid "company_image tag requires a Company instance" msgstr "" -#: stock/admin.py:51 stock/admin.py:171 +#: stock/admin.py:51 stock/admin.py:172 msgid "Location ID" msgstr "" -#: stock/admin.py:63 stock/templates/stock/location.html:128 -#: stock/templates/stock/location.html:134 +#: stock/admin.py:63 stock/templates/stock/location.html:129 +#: stock/templates/stock/location.html:135 msgid "Location Path" msgstr "" -#: stock/admin.py:148 +#: stock/admin.py:149 msgid "Stock Item ID" msgstr "" -#: stock/admin.py:167 +#: stock/admin.py:168 msgid "Status Code" msgstr "" -#: stock/admin.py:179 +#: stock/admin.py:180 msgid "Supplier Part ID" msgstr "" -#: stock/admin.py:184 +#: stock/admin.py:185 msgid "Supplier Part SKU" msgstr "" -#: stock/admin.py:189 +#: stock/admin.py:190 msgid "Supplier ID" msgstr "" -#: stock/admin.py:200 +#: stock/admin.py:201 msgid "Customer ID" msgstr "" -#: stock/admin.py:205 stock/models.py:825 -#: stock/templates/stock/item_base.html:354 +#: stock/admin.py:206 stock/models.py:902 +#: stock/templates/stock/item_base.html:351 msgid "Installed In" msgstr "" -#: stock/admin.py:210 +#: stock/admin.py:211 msgid "Build ID" msgstr "" -#: stock/admin.py:220 +#: stock/admin.py:221 msgid "Sales Order ID" msgstr "" -#: stock/admin.py:225 +#: stock/admin.py:226 msgid "Purchase Order ID" msgstr "" -#: stock/admin.py:240 +#: stock/admin.py:241 msgid "Review Needed" msgstr "" -#: stock/admin.py:245 +#: stock/admin.py:246 msgid "Delete on Deplete" msgstr "" -#: stock/admin.py:260 stock/models.py:919 -#: stock/templates/stock/item_base.html:433 -#: templates/js/translated/stock.js:2315 users/models.py:124 +#: stock/admin.py:261 stock/models.py:996 +#: stock/templates/stock/item_base.html:430 +#: templates/js/translated/stock.js:2316 users/models.py:124 msgid "Expiry Date" msgstr "" @@ -9526,11 +9886,11 @@ msgstr "" msgid "Include sub-locations in filtered results" msgstr "" -#: stock/api.py:367 stock/serializers.py:1186 +#: stock/api.py:366 stock/serializers.py:1217 msgid "Parent Location" msgstr "" -#: stock/api.py:368 +#: stock/api.py:367 msgid "Filter by parent location" msgstr "" @@ -9550,8 +9910,8 @@ msgstr "" msgid "Expiry date after" msgstr "" -#: stock/api.py:840 stock/serializers.py:604 -#: stock/templates/stock/item_base.html:439 +#: stock/api.py:840 stock/serializers.py:631 +#: stock/templates/stock/item_base.html:436 #: templates/js/translated/table_filters.js:448 msgid "Stale" msgstr "" @@ -9560,594 +9920,598 @@ msgstr "" msgid "Quantity is required" msgstr "" -#: stock/api.py:933 +#: stock/api.py:932 msgid "Valid part must be supplied" msgstr "" -#: stock/api.py:964 +#: stock/api.py:959 msgid "The given supplier part does not exist" msgstr "" -#: stock/api.py:974 +#: stock/api.py:969 msgid "The supplier part has a pack size defined, but flag use_pack_size not set" msgstr "" -#: stock/api.py:1005 +#: stock/api.py:996 msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "" -#: stock/models.py:64 +#: stock/models.py:70 msgid "Stock Location type" msgstr "" -#: stock/models.py:65 +#: stock/models.py:71 msgid "Stock Location types" msgstr "" -#: stock/models.py:91 +#: stock/models.py:97 msgid "Default icon for all locations that have no icon set (optional)" msgstr "" -#: stock/models.py:131 stock/models.py:807 -#: stock/templates/stock/location.html:17 +#: stock/models.py:137 stock/models.py:884 +#: stock/templates/stock/location.html:18 #: stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "Stok Konumu" -#: stock/models.py:132 stock/templates/stock/location.html:183 +#: stock/models.py:138 stock/templates/stock/location.html:184 #: templates/InvenTree/search.html:166 templates/js/translated/search.js:178 #: users/models.py:205 msgid "Stock Locations" msgstr "Stok Konumları" -#: stock/models.py:180 stock/models.py:968 -#: stock/templates/stock/item_base.html:247 +#: stock/models.py:186 stock/models.py:1045 +#: stock/templates/stock/item_base.html:244 msgid "Owner" msgstr "" -#: stock/models.py:181 stock/models.py:969 +#: stock/models.py:187 stock/models.py:1046 msgid "Select Owner" msgstr "" -#: stock/models.py:189 +#: stock/models.py:195 msgid "Stock items may not be directly located into a structural stock locations, but may be located to child locations." msgstr "" -#: stock/models.py:196 templates/js/translated/stock.js:2865 +#: stock/models.py:202 templates/js/translated/stock.js:2866 #: templates/js/translated/table_filters.js:250 msgid "External" msgstr "" -#: stock/models.py:197 +#: stock/models.py:203 msgid "This is an external stock location" msgstr "" -#: stock/models.py:203 templates/js/translated/stock.js:2874 +#: stock/models.py:209 templates/js/translated/stock.js:2875 #: templates/js/translated/table_filters.js:253 msgid "Location type" msgstr "" -#: stock/models.py:207 +#: stock/models.py:213 msgid "Stock location type of this location" msgstr "" -#: stock/models.py:279 +#: stock/models.py:285 msgid "You cannot make this stock location structural because some stock items are already located into it!" msgstr "" -#: stock/models.py:664 +#: stock/models.py:492 +msgid "Part must be specified" +msgstr "" + +#: stock/models.py:741 msgid "Stock items cannot be located into structural stock locations!" msgstr "" -#: stock/models.py:691 stock/serializers.py:480 +#: stock/models.py:768 stock/serializers.py:492 msgid "Stock item cannot be created for virtual parts" msgstr "" -#: stock/models.py:708 +#: stock/models.py:785 #, python-brace-format msgid "Part type ('{self.supplier_part.part}') must be {self.part}" msgstr "" -#: stock/models.py:718 stock/models.py:731 +#: stock/models.py:795 stock/models.py:808 msgid "Quantity must be 1 for item with a serial number" msgstr "Seri numarası olan ögenin miktarı bir olmalı" -#: stock/models.py:721 +#: stock/models.py:798 msgid "Serial number cannot be set if quantity greater than 1" msgstr "Miktar birden büyük ise seri numarası ayarlanamaz" -#: stock/models.py:743 +#: stock/models.py:820 msgid "Item cannot belong to itself" msgstr "" -#: stock/models.py:748 +#: stock/models.py:825 msgid "Item must have a build reference if is_building=True" msgstr "" -#: stock/models.py:761 +#: stock/models.py:838 msgid "Build reference does not point to the same part object" msgstr "" -#: stock/models.py:777 +#: stock/models.py:854 msgid "Parent Stock Item" msgstr "Üst Stok Kalemi" -#: stock/models.py:789 +#: stock/models.py:866 msgid "Base part" msgstr "" -#: stock/models.py:799 +#: stock/models.py:876 msgid "Select a matching supplier part for this stock item" msgstr "Bu stok kalemi için tedarikçi parçası seçin" -#: stock/models.py:811 +#: stock/models.py:888 msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:819 stock/serializers.py:1580 +#: stock/models.py:896 stock/serializers.py:1611 msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:830 +#: stock/models.py:907 msgid "Is this item installed in another item?" msgstr "" -#: stock/models.py:849 +#: stock/models.py:926 msgid "Serial number for this item" msgstr "Bu öge için seri numarası" -#: stock/models.py:863 stock/serializers.py:1563 +#: stock/models.py:940 stock/serializers.py:1594 msgid "Batch code for this stock item" msgstr "" -#: stock/models.py:868 +#: stock/models.py:945 msgid "Stock Quantity" msgstr "" -#: stock/models.py:878 +#: stock/models.py:955 msgid "Source Build" msgstr "" -#: stock/models.py:881 +#: stock/models.py:958 msgid "Build for this stock item" msgstr "" -#: stock/models.py:888 stock/templates/stock/item_base.html:363 +#: stock/models.py:965 stock/templates/stock/item_base.html:360 msgid "Consumed By" msgstr "" -#: stock/models.py:891 +#: stock/models.py:968 msgid "Build order which consumed this stock item" msgstr "" -#: stock/models.py:900 +#: stock/models.py:977 msgid "Source Purchase Order" msgstr "" -#: stock/models.py:904 +#: stock/models.py:981 msgid "Purchase order for this stock item" msgstr "" -#: stock/models.py:910 +#: stock/models.py:987 msgid "Destination Sales Order" msgstr "" -#: stock/models.py:921 +#: stock/models.py:998 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "" -#: stock/models.py:939 +#: stock/models.py:1016 msgid "Delete on deplete" msgstr "" -#: stock/models.py:940 +#: stock/models.py:1017 msgid "Delete this Stock Item when stock is depleted" msgstr "" -#: stock/models.py:960 +#: stock/models.py:1037 msgid "Single unit purchase price at time of purchase" msgstr "" -#: stock/models.py:991 +#: stock/models.py:1068 msgid "Converted to part" msgstr "" -#: stock/models.py:1511 +#: stock/models.py:1600 msgid "Part is not set as trackable" msgstr "" -#: stock/models.py:1517 +#: stock/models.py:1606 msgid "Quantity must be integer" msgstr "" -#: stock/models.py:1525 +#: stock/models.py:1614 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({self.quantity})" msgstr "" -#: stock/models.py:1531 -msgid "Serial numbers must be a list of integers" -msgstr "Seri numaraları tam sayı listesi olmalı" +#: stock/models.py:1620 +msgid "Serial numbers must be provided as a list" +msgstr "" -#: stock/models.py:1536 +#: stock/models.py:1625 msgid "Quantity does not match serial numbers" msgstr "Miktar seri numaları ile eşleşmiyor" -#: stock/models.py:1544 stock/serializers.py:726 -msgid "Serial numbers already exist" -msgstr "Seri numaraları zaten mevcut" - -#: stock/models.py:1641 +#: stock/models.py:1747 stock/models.py:2563 msgid "Test template does not exist" msgstr "" -#: stock/models.py:1659 +#: stock/models.py:1765 msgid "Stock item has been assigned to a sales order" msgstr "" -#: stock/models.py:1663 +#: stock/models.py:1769 msgid "Stock item is installed in another item" msgstr "" -#: stock/models.py:1666 +#: stock/models.py:1772 msgid "Stock item contains other items" msgstr "" -#: stock/models.py:1669 +#: stock/models.py:1775 msgid "Stock item has been assigned to a customer" msgstr "" -#: stock/models.py:1672 +#: stock/models.py:1778 msgid "Stock item is currently in production" msgstr "" -#: stock/models.py:1675 +#: stock/models.py:1781 msgid "Serialized stock cannot be merged" msgstr "" -#: stock/models.py:1682 stock/serializers.py:1469 +#: stock/models.py:1788 stock/serializers.py:1500 msgid "Duplicate stock items" msgstr "" -#: stock/models.py:1686 +#: stock/models.py:1792 msgid "Stock items must refer to the same part" msgstr "" -#: stock/models.py:1694 +#: stock/models.py:1800 msgid "Stock items must refer to the same supplier part" msgstr "" -#: stock/models.py:1699 +#: stock/models.py:1805 msgid "Stock status codes must match" msgstr "" -#: stock/models.py:1960 +#: stock/models.py:2066 msgid "StockItem cannot be moved as it is not in stock" msgstr "Stok kalemi stokta olmadığı için taşınamaz" -#: stock/models.py:2343 +#: stock/models.py:2462 msgid "Stock Item Tracking" msgstr "" -#: stock/models.py:2376 +#: stock/models.py:2495 msgid "Entry notes" msgstr "" -#: stock/models.py:2416 +#: stock/models.py:2535 msgid "Stock Item Test Result" msgstr "" -#: stock/models.py:2449 +#: stock/models.py:2566 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:2454 +#: stock/models.py:2570 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:2459 +#: stock/models.py:2575 msgid "Invalid value for this test" msgstr "" -#: stock/models.py:2544 +#: stock/models.py:2660 msgid "Test result" msgstr "" -#: stock/models.py:2551 +#: stock/models.py:2667 msgid "Test output value" msgstr "" -#: stock/models.py:2559 +#: stock/models.py:2675 stock/serializers.py:245 msgid "Test result attachment" msgstr "" -#: stock/models.py:2563 +#: stock/models.py:2679 msgid "Test notes" msgstr "" -#: stock/models.py:2571 templates/js/translated/stock.js:1633 +#: stock/models.py:2687 templates/js/translated/stock.js:1633 msgid "Test station" msgstr "" -#: stock/models.py:2572 +#: stock/models.py:2688 msgid "The identifier of the test station where the test was performed" msgstr "" -#: stock/models.py:2578 +#: stock/models.py:2694 msgid "Started" msgstr "" -#: stock/models.py:2579 +#: stock/models.py:2695 msgid "The timestamp of the test start" msgstr "" -#: stock/models.py:2585 +#: stock/models.py:2701 msgid "Finished" msgstr "" -#: stock/models.py:2586 +#: stock/models.py:2702 msgid "The timestamp of the test finish" msgstr "" -#: stock/serializers.py:76 +#: stock/serializers.py:77 msgid "Generated batch code" msgstr "" -#: stock/serializers.py:85 +#: stock/serializers.py:86 msgid "Select build order" msgstr "" -#: stock/serializers.py:94 +#: stock/serializers.py:95 msgid "Select stock item to generate batch code for" msgstr "" -#: stock/serializers.py:103 +#: stock/serializers.py:104 msgid "Select location to generate batch code for" msgstr "" -#: stock/serializers.py:112 +#: stock/serializers.py:113 msgid "Select part to generate batch code for" msgstr "" -#: stock/serializers.py:121 +#: stock/serializers.py:122 msgid "Select purchase order" msgstr "" -#: stock/serializers.py:128 +#: stock/serializers.py:129 msgid "Enter quantity for batch code" msgstr "" -#: stock/serializers.py:151 +#: stock/serializers.py:152 msgid "Generated serial number" msgstr "" -#: stock/serializers.py:160 +#: stock/serializers.py:161 msgid "Select part to generate serial number for" msgstr "" -#: stock/serializers.py:168 +#: stock/serializers.py:169 msgid "Quantity of serial numbers to generate" msgstr "" -#: stock/serializers.py:233 +#: stock/serializers.py:234 msgid "Test template for this result" msgstr "" -#: stock/serializers.py:254 +#: stock/serializers.py:258 msgid "Template ID or test name must be provided" msgstr "" -#: stock/serializers.py:286 +#: stock/serializers.py:290 msgid "The test finished time cannot be earlier than the test started time" msgstr "" -#: stock/serializers.py:323 +#: stock/serializers.py:327 msgid "Serial number is too large" msgstr "" -#: stock/serializers.py:452 stock/templates/stock/item_base.html:193 +#: stock/serializers.py:462 stock/templates/stock/item_base.html:190 msgid "Parent Item" msgstr "" -#: stock/serializers.py:453 +#: stock/serializers.py:463 msgid "Parent stock item" msgstr "" -#: stock/serializers.py:472 +#: stock/serializers.py:484 msgid "Use pack size when adding: the quantity defined is the number of packs" msgstr "" -#: stock/serializers.py:596 stock/templates/stock/item_base.html:437 +#: stock/serializers.py:623 stock/templates/stock/item_base.html:434 #: templates/js/translated/table_filters.js:442 users/models.py:174 msgid "Expired" msgstr "" -#: stock/serializers.py:602 stock/templates/stock/stock_sidebar.html:20 +#: stock/serializers.py:629 stock/templates/stock/stock_sidebar.html:20 msgid "Child Items" msgstr "" -#: stock/serializers.py:606 +#: stock/serializers.py:633 msgid "Tracking Items" msgstr "" -#: stock/serializers.py:612 +#: stock/serializers.py:639 msgid "Purchase price of this stock item, per unit or pack" msgstr "" -#: stock/serializers.py:631 +#: stock/serializers.py:658 msgid "Minimum Pricing" msgstr "" -#: stock/serializers.py:637 +#: stock/serializers.py:664 msgid "Maximum Pricing" msgstr "" -#: stock/serializers.py:661 +#: stock/serializers.py:688 msgid "Enter number of stock items to serialize" msgstr "" -#: stock/serializers.py:674 +#: stock/serializers.py:701 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({q})" msgstr "" -#: stock/serializers.py:681 +#: stock/serializers.py:708 msgid "Enter serial numbers for new items" msgstr "" -#: stock/serializers.py:692 stock/serializers.py:1426 stock/serializers.py:1682 +#: stock/serializers.py:719 stock/serializers.py:1457 stock/serializers.py:1713 msgid "Destination stock location" msgstr "" -#: stock/serializers.py:699 +#: stock/serializers.py:726 msgid "Optional note field" msgstr "" -#: stock/serializers.py:709 +#: stock/serializers.py:736 msgid "Serial numbers cannot be assigned to this part" msgstr "" -#: stock/serializers.py:764 +#: stock/serializers.py:756 +msgid "Serial numbers already exist" +msgstr "Seri numaraları zaten mevcut" + +#: stock/serializers.py:795 msgid "Select stock item to install" msgstr "" -#: stock/serializers.py:771 +#: stock/serializers.py:802 msgid "Quantity to Install" msgstr "" -#: stock/serializers.py:772 +#: stock/serializers.py:803 msgid "Enter the quantity of items to install" msgstr "" -#: stock/serializers.py:777 stock/serializers.py:857 stock/serializers.py:983 -#: stock/serializers.py:1033 +#: stock/serializers.py:808 stock/serializers.py:888 stock/serializers.py:1014 +#: stock/serializers.py:1064 msgid "Add transaction note (optional)" msgstr "İşlem notu ekle (isteğe bağlı)" -#: stock/serializers.py:785 +#: stock/serializers.py:816 msgid "Quantity to install must be at least 1" msgstr "" -#: stock/serializers.py:793 +#: stock/serializers.py:824 msgid "Stock item is unavailable" msgstr "" -#: stock/serializers.py:804 +#: stock/serializers.py:835 msgid "Selected part is not in the Bill of Materials" msgstr "" -#: stock/serializers.py:817 +#: stock/serializers.py:848 msgid "Quantity to install must not exceed available quantity" msgstr "" -#: stock/serializers.py:852 +#: stock/serializers.py:883 msgid "Destination location for uninstalled item" msgstr "" -#: stock/serializers.py:903 +#: stock/serializers.py:934 msgid "Unsupported statistic type: " msgstr "" -#: stock/serializers.py:917 +#: stock/serializers.py:948 msgid "Select part to convert stock item into" msgstr "" -#: stock/serializers.py:930 +#: stock/serializers.py:961 msgid "Selected part is not a valid option for conversion" msgstr "" -#: stock/serializers.py:947 +#: stock/serializers.py:978 msgid "Cannot convert stock item with assigned SupplierPart" msgstr "" -#: stock/serializers.py:978 +#: stock/serializers.py:1009 msgid "Destination location for returned item" msgstr "" -#: stock/serializers.py:1015 +#: stock/serializers.py:1046 msgid "Select stock items to change status" msgstr "" -#: stock/serializers.py:1021 +#: stock/serializers.py:1052 msgid "No stock items selected" msgstr "" -#: stock/serializers.py:1117 stock/serializers.py:1194 -#: stock/templates/stock/location.html:162 -#: stock/templates/stock/location.html:219 +#: stock/serializers.py:1148 stock/serializers.py:1225 +#: stock/templates/stock/location.html:163 +#: stock/templates/stock/location.html:220 #: stock/templates/stock/location_sidebar.html:5 msgid "Sublocations" msgstr "Alt konumlar" -#: stock/serializers.py:1187 templates/js/translated/stock.js:160 +#: stock/serializers.py:1218 templates/js/translated/stock.js:160 msgid "Parent stock location" msgstr "" -#: stock/serializers.py:1298 +#: stock/serializers.py:1329 msgid "Part must be salable" msgstr "" -#: stock/serializers.py:1302 +#: stock/serializers.py:1333 msgid "Item is allocated to a sales order" msgstr "" -#: stock/serializers.py:1306 +#: stock/serializers.py:1337 msgid "Item is allocated to a build order" msgstr "" -#: stock/serializers.py:1330 +#: stock/serializers.py:1361 msgid "Customer to assign stock items" msgstr "" -#: stock/serializers.py:1336 +#: stock/serializers.py:1367 msgid "Selected company is not a customer" msgstr "" -#: stock/serializers.py:1344 +#: stock/serializers.py:1375 msgid "Stock assignment notes" msgstr "" -#: stock/serializers.py:1354 stock/serializers.py:1608 +#: stock/serializers.py:1385 stock/serializers.py:1639 msgid "A list of stock items must be provided" msgstr "" -#: stock/serializers.py:1433 +#: stock/serializers.py:1464 msgid "Stock merging notes" msgstr "" -#: stock/serializers.py:1438 +#: stock/serializers.py:1469 msgid "Allow mismatched suppliers" msgstr "" -#: stock/serializers.py:1439 +#: stock/serializers.py:1470 msgid "Allow stock items with different supplier parts to be merged" msgstr "" -#: stock/serializers.py:1444 +#: stock/serializers.py:1475 msgid "Allow mismatched status" msgstr "" -#: stock/serializers.py:1445 +#: stock/serializers.py:1476 msgid "Allow stock items with different status codes to be merged" msgstr "" -#: stock/serializers.py:1455 +#: stock/serializers.py:1486 msgid "At least two stock items must be provided" msgstr "" -#: stock/serializers.py:1522 +#: stock/serializers.py:1553 msgid "No Change" msgstr "" -#: stock/serializers.py:1551 +#: stock/serializers.py:1582 msgid "StockItem primary key value" msgstr "" -#: stock/serializers.py:1570 +#: stock/serializers.py:1601 msgid "Stock item status code" msgstr "" -#: stock/serializers.py:1598 +#: stock/serializers.py:1629 msgid "Stock transaction notes" msgstr "" @@ -10175,107 +10539,107 @@ msgstr "Reddedildi" msgid "Quarantined" msgstr "Karantinaya alındı" -#: stock/status_codes.py:40 +#: stock/status_codes.py:44 msgid "Legacy stock tracking entry" msgstr "Eski stok izleme girişi" -#: stock/status_codes.py:42 templates/js/translated/stock.js:550 +#: stock/status_codes.py:46 templates/js/translated/stock.js:550 msgid "Stock item created" msgstr "Stok kalemi oluşturuldu" -#: stock/status_codes.py:45 +#: stock/status_codes.py:49 msgid "Edited stock item" msgstr "Düzenlenen stok kalemi" -#: stock/status_codes.py:46 +#: stock/status_codes.py:50 msgid "Assigned serial number" msgstr "Atanan seri numarası" -#: stock/status_codes.py:49 +#: stock/status_codes.py:53 msgid "Stock counted" msgstr "Stok sayıldı" -#: stock/status_codes.py:50 +#: stock/status_codes.py:54 msgid "Stock manually added" msgstr "Stok manuel olarak eklendi" -#: stock/status_codes.py:51 +#: stock/status_codes.py:55 msgid "Stock manually removed" msgstr "Stok manuel olarak çıkarıldı" -#: stock/status_codes.py:54 +#: stock/status_codes.py:58 msgid "Location changed" msgstr "Konum değişti" -#: stock/status_codes.py:55 +#: stock/status_codes.py:59 msgid "Stock updated" msgstr "Stok Güncellendi" -#: stock/status_codes.py:58 +#: stock/status_codes.py:62 msgid "Installed into assembly" msgstr "Montajda kullanıldı" -#: stock/status_codes.py:59 +#: stock/status_codes.py:63 msgid "Removed from assembly" msgstr "Montajdan çıkarıldı" -#: stock/status_codes.py:61 +#: stock/status_codes.py:65 msgid "Installed component item" msgstr "Bileşen ögesinde kullanıldı" -#: stock/status_codes.py:62 +#: stock/status_codes.py:66 msgid "Removed component item" msgstr "Bileşen ögesinden çıkarıldı" -#: stock/status_codes.py:65 +#: stock/status_codes.py:69 msgid "Split from parent item" msgstr "Üst ögeden ayır" -#: stock/status_codes.py:66 +#: stock/status_codes.py:70 msgid "Split child item" msgstr "Alt ögeyi ayır" -#: stock/status_codes.py:69 templates/js/translated/stock.js:1943 +#: stock/status_codes.py:73 templates/js/translated/stock.js:1944 msgid "Merged stock items" msgstr "Stok parçalarını birleştir" -#: stock/status_codes.py:72 +#: stock/status_codes.py:76 msgid "Converted to variant" msgstr "" -#: stock/status_codes.py:75 +#: stock/status_codes.py:79 msgid "Build order output created" msgstr "Yapım emri çıktısı oluşturuldu" -#: stock/status_codes.py:76 +#: stock/status_codes.py:80 msgid "Build order output completed" msgstr "Yapım emri çıktısı tamamlandı" -#: stock/status_codes.py:77 +#: stock/status_codes.py:81 msgid "Build order output rejected" msgstr "" -#: stock/status_codes.py:78 templates/js/translated/stock.js:1849 +#: stock/status_codes.py:82 templates/js/translated/stock.js:1849 msgid "Consumed by build order" msgstr "" -#: stock/status_codes.py:81 +#: stock/status_codes.py:85 msgid "Shipped against Sales Order" msgstr "" -#: stock/status_codes.py:84 +#: stock/status_codes.py:88 msgid "Received against Purchase Order" msgstr "" -#: stock/status_codes.py:87 +#: stock/status_codes.py:91 msgid "Returned against Return Order" msgstr "" -#: stock/status_codes.py:90 templates/js/translated/table_filters.js:382 +#: stock/status_codes.py:94 templates/js/translated/table_filters.js:382 msgid "Sent to customer" msgstr "Müşteriye gönderildi" -#: stock/status_codes.py:91 +#: stock/status_codes.py:95 msgid "Returned from customer" msgstr "Müşteriden geri döndü" @@ -10296,7 +10660,7 @@ msgstr "" msgid "Test Data" msgstr "" -#: stock/templates/stock/item.html:85 stock/templates/stock/item_base.html:65 +#: stock/templates/stock/item.html:85 msgid "Test Report" msgstr "" @@ -10316,7 +10680,7 @@ msgstr "" msgid "Installed Stock Items" msgstr "" -#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3354 +#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3355 msgid "Install Stock Item" msgstr "" @@ -10328,208 +10692,212 @@ msgstr "" msgid "Add Test Result" msgstr "" -#: stock/templates/stock/item_base.html:33 +#: stock/templates/stock/item_base.html:34 msgid "Locate stock item" msgstr "" -#: stock/templates/stock/item_base.html:51 +#: stock/templates/stock/item_base.html:52 msgid "Scan to Location" msgstr "Konuma Tara" #: stock/templates/stock/item_base.html:59 -#: stock/templates/stock/location.html:67 +#: stock/templates/stock/location.html:68 #: templates/js/translated/filters.js:434 msgid "Printing actions" msgstr "Yazdırma işlemleri" -#: stock/templates/stock/item_base.html:75 +#: stock/templates/stock/item_base.html:64 templates/js/translated/report.js:49 +msgid "Print Report" +msgstr "" + +#: stock/templates/stock/item_base.html:72 msgid "Stock adjustment actions" msgstr "Stok ayarlama işlemleri" -#: stock/templates/stock/item_base.html:79 -#: stock/templates/stock/location.html:87 templates/js/translated/stock.js:1909 +#: stock/templates/stock/item_base.html:76 +#: stock/templates/stock/location.html:88 templates/js/translated/stock.js:1909 msgid "Count stock" msgstr "" -#: stock/templates/stock/item_base.html:81 +#: stock/templates/stock/item_base.html:78 #: templates/js/translated/stock.js:1891 msgid "Add stock" msgstr "" -#: stock/templates/stock/item_base.html:82 +#: stock/templates/stock/item_base.html:79 #: templates/js/translated/stock.js:1900 msgid "Remove stock" msgstr "" -#: stock/templates/stock/item_base.html:85 +#: stock/templates/stock/item_base.html:82 msgid "Serialize stock" msgstr "Stoku seri numarala" -#: stock/templates/stock/item_base.html:88 -#: stock/templates/stock/location.html:93 templates/js/translated/stock.js:1918 +#: stock/templates/stock/item_base.html:85 +#: stock/templates/stock/location.html:94 templates/js/translated/stock.js:1918 msgid "Transfer stock" msgstr "" -#: stock/templates/stock/item_base.html:91 -#: templates/js/translated/stock.js:1972 +#: stock/templates/stock/item_base.html:88 +#: templates/js/translated/stock.js:1973 msgid "Assign to customer" msgstr "" -#: stock/templates/stock/item_base.html:94 +#: stock/templates/stock/item_base.html:91 msgid "Return to stock" msgstr "" -#: stock/templates/stock/item_base.html:97 +#: stock/templates/stock/item_base.html:94 msgid "Uninstall stock item" msgstr "" -#: stock/templates/stock/item_base.html:97 +#: stock/templates/stock/item_base.html:94 msgid "Uninstall" msgstr "" -#: stock/templates/stock/item_base.html:101 +#: stock/templates/stock/item_base.html:98 msgid "Install stock item" msgstr "" -#: stock/templates/stock/item_base.html:101 +#: stock/templates/stock/item_base.html:98 msgid "Install" msgstr "" -#: stock/templates/stock/item_base.html:115 +#: stock/templates/stock/item_base.html:112 msgid "Convert to variant" msgstr "Çeşide çevir" -#: stock/templates/stock/item_base.html:118 +#: stock/templates/stock/item_base.html:115 msgid "Duplicate stock item" msgstr "" -#: stock/templates/stock/item_base.html:120 +#: stock/templates/stock/item_base.html:117 msgid "Edit stock item" msgstr "" -#: stock/templates/stock/item_base.html:123 +#: stock/templates/stock/item_base.html:120 msgid "Delete stock item" msgstr "" -#: stock/templates/stock/item_base.html:169 templates/InvenTree/search.html:139 -#: templates/js/translated/build.js:2295 templates/navbar.html:38 +#: stock/templates/stock/item_base.html:166 templates/InvenTree/search.html:139 +#: templates/js/translated/build.js:2298 templates/navbar.html:38 msgid "Build" msgstr "Yapım İşi" -#: stock/templates/stock/item_base.html:211 +#: stock/templates/stock/item_base.html:208 msgid "No manufacturer set" msgstr "" -#: stock/templates/stock/item_base.html:251 +#: stock/templates/stock/item_base.html:248 msgid "You are not in the list of owners of this item. This stock item cannot be edited." msgstr "" -#: stock/templates/stock/item_base.html:252 -#: stock/templates/stock/location.html:146 +#: stock/templates/stock/item_base.html:249 +#: stock/templates/stock/location.html:147 msgid "Read only" msgstr "" -#: stock/templates/stock/item_base.html:265 +#: stock/templates/stock/item_base.html:262 msgid "This stock item is unavailable" msgstr "" -#: stock/templates/stock/item_base.html:271 +#: stock/templates/stock/item_base.html:268 msgid "This stock item is in production and cannot be edited." msgstr "" -#: stock/templates/stock/item_base.html:272 +#: stock/templates/stock/item_base.html:269 msgid "Edit the stock item from the build view." msgstr "" -#: stock/templates/stock/item_base.html:287 +#: stock/templates/stock/item_base.html:284 msgid "This stock item is allocated to Sales Order" msgstr "" -#: stock/templates/stock/item_base.html:295 +#: stock/templates/stock/item_base.html:292 msgid "This stock item is allocated to Build Order" msgstr "" -#: stock/templates/stock/item_base.html:311 +#: stock/templates/stock/item_base.html:308 msgid "This stock item is serialized. It has a unique serial number and the quantity cannot be adjusted" msgstr "" -#: stock/templates/stock/item_base.html:317 +#: stock/templates/stock/item_base.html:314 msgid "previous page" msgstr "" -#: stock/templates/stock/item_base.html:317 +#: stock/templates/stock/item_base.html:314 msgid "Navigate to previous serial number" msgstr "" -#: stock/templates/stock/item_base.html:326 +#: stock/templates/stock/item_base.html:323 msgid "next page" msgstr "" -#: stock/templates/stock/item_base.html:326 +#: stock/templates/stock/item_base.html:323 msgid "Navigate to next serial number" msgstr "" -#: stock/templates/stock/item_base.html:398 -#: templates/js/translated/build.js:2552 +#: stock/templates/stock/item_base.html:395 +#: templates/js/translated/build.js:2559 msgid "No location set" msgstr "Konum ayarlanmadı" -#: stock/templates/stock/item_base.html:413 +#: stock/templates/stock/item_base.html:410 msgid "Tests" msgstr "" -#: stock/templates/stock/item_base.html:419 +#: stock/templates/stock/item_base.html:416 msgid "This stock item has not passed all required tests" msgstr "Stok kalemi tüm gerekli testleri geçmedi" -#: stock/templates/stock/item_base.html:437 +#: stock/templates/stock/item_base.html:434 #, python-format msgid "This StockItem expired on %(item.expiry_date)s" msgstr "Bu stok kaleminin süresi %(item.expiry_date)s tarihinde sona erdi" -#: stock/templates/stock/item_base.html:439 +#: stock/templates/stock/item_base.html:436 #, python-format msgid "This StockItem expires on %(item.expiry_date)s" msgstr "Bu stok kaleminin süresi %(item.expiry_date)s tarihinde sona erecek" -#: stock/templates/stock/item_base.html:455 +#: stock/templates/stock/item_base.html:452 msgid "No stocktake performed" msgstr "" -#: stock/templates/stock/item_base.html:504 -#: templates/js/translated/stock.js:2037 +#: stock/templates/stock/item_base.html:501 +#: templates/js/translated/stock.js:2038 msgid "stock item" msgstr "" -#: stock/templates/stock/item_base.html:527 +#: stock/templates/stock/item_base.html:524 msgid "Edit Stock Status" msgstr "" -#: stock/templates/stock/item_base.html:536 +#: stock/templates/stock/item_base.html:533 msgid "Stock Item QR Code" msgstr "" -#: stock/templates/stock/item_base.html:547 +#: stock/templates/stock/item_base.html:544 msgid "Link Barcode to Stock Item" msgstr "" -#: stock/templates/stock/item_base.html:611 +#: stock/templates/stock/item_base.html:608 msgid "Select one of the part variants listed below." msgstr "" -#: stock/templates/stock/item_base.html:614 +#: stock/templates/stock/item_base.html:611 msgid "Warning" msgstr "Uyarı" -#: stock/templates/stock/item_base.html:615 +#: stock/templates/stock/item_base.html:612 msgid "This action cannot be easily undone" msgstr "Bu işlem kolayca geri alınamaz" -#: stock/templates/stock/item_base.html:623 +#: stock/templates/stock/item_base.html:620 msgid "Convert Stock Item" msgstr "" -#: stock/templates/stock/item_base.html:656 +#: stock/templates/stock/item_base.html:653 msgid "Return to Stock" msgstr "" @@ -10541,84 +10909,84 @@ msgstr "Bu stok kalemi için seri numaralandırılmış ögeler oluştur." msgid "Select quantity to serialize, and unique serial numbers." msgstr "Seri numaralandırılacak miktarı ve benzersiz seri numaralarını seçin." -#: stock/templates/stock/location.html:35 +#: stock/templates/stock/location.html:36 msgid "Perform stocktake for this stock location" msgstr "" -#: stock/templates/stock/location.html:42 +#: stock/templates/stock/location.html:43 msgid "Locate stock location" msgstr "" -#: stock/templates/stock/location.html:60 +#: stock/templates/stock/location.html:61 msgid "Scan stock items into this location" msgstr "" -#: stock/templates/stock/location.html:60 +#: stock/templates/stock/location.html:61 msgid "Scan In Stock Items" msgstr "" -#: stock/templates/stock/location.html:61 +#: stock/templates/stock/location.html:62 msgid "Scan stock container into this location" msgstr "" -#: stock/templates/stock/location.html:61 +#: stock/templates/stock/location.html:62 msgid "Scan In Container" msgstr "" -#: stock/templates/stock/location.html:72 +#: stock/templates/stock/location.html:73 msgid "Print Location Report" msgstr "" -#: stock/templates/stock/location.html:101 +#: stock/templates/stock/location.html:102 msgid "Location actions" msgstr "Konum işlemleri" -#: stock/templates/stock/location.html:103 +#: stock/templates/stock/location.html:104 msgid "Edit location" msgstr "Konumu düzenle" -#: stock/templates/stock/location.html:105 +#: stock/templates/stock/location.html:106 msgid "Delete location" msgstr "Konumu sil" -#: stock/templates/stock/location.html:135 +#: stock/templates/stock/location.html:136 msgid "Top level stock location" msgstr "" -#: stock/templates/stock/location.html:141 +#: stock/templates/stock/location.html:142 msgid "Location Owner" msgstr "" -#: stock/templates/stock/location.html:145 +#: stock/templates/stock/location.html:146 msgid "You are not in the list of owners of this location. This stock location cannot be edited." msgstr "Bu konumun sahipleri listesinde değilsiniz. Bu stok konumu düzenlenemez." -#: stock/templates/stock/location.html:173 +#: stock/templates/stock/location.html:174 msgid "Location Type" msgstr "" -#: stock/templates/stock/location.html:223 +#: stock/templates/stock/location.html:224 msgid "Create new stock location" msgstr "Yeni stok konumu oluştur" -#: stock/templates/stock/location.html:224 +#: stock/templates/stock/location.html:225 msgid "New Location" msgstr "Yeni Konum" -#: stock/templates/stock/location.html:298 -#: templates/js/translated/stock.js:2657 +#: stock/templates/stock/location.html:299 +#: templates/js/translated/stock.js:2658 msgid "stock location" msgstr "" -#: stock/templates/stock/location.html:320 +#: stock/templates/stock/location.html:321 msgid "Scanned stock container into this location" msgstr "" -#: stock/templates/stock/location.html:393 +#: stock/templates/stock/location.html:394 msgid "Stock Location QR Code" msgstr "" -#: stock/templates/stock/location.html:404 +#: stock/templates/stock/location.html:405 msgid "Link Barcode to Stock Location" msgstr "" @@ -10630,10 +10998,6 @@ msgstr "" msgid "Stock Tracking" msgstr "" -#: stock/templates/stock/stock_sidebar.html:8 -msgid "Allocations" -msgstr "" - #: templates/403.html:6 templates/403.html:12 templates/403_csrf.html:7 msgid "Permission Denied" msgstr "" @@ -11107,9 +11471,9 @@ msgid "Rate" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:81 -#: templates/js/translated/forms.js:548 templates/js/translated/helpers.js:108 +#: templates/js/translated/forms.js:548 templates/js/translated/helpers.js:109 #: templates/js/translated/part.js:395 templates/js/translated/pricing.js:629 -#: templates/js/translated/stock.js:252 users/models.py:406 +#: templates/js/translated/stock.js:252 users/models.py:408 msgid "Delete" msgstr "" @@ -11130,7 +11494,7 @@ msgid "No project codes found" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:158 -#: templates/js/translated/build.js:2400 +#: templates/js/translated/build.js:2403 msgid "group" msgstr "" @@ -11196,7 +11560,7 @@ msgid "Delete Location Type" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:503 -#: templates/InvenTree/settings/stock.html:38 +#: templates/InvenTree/settings/stock.html:39 msgid "New Location Type" msgstr "" @@ -11253,7 +11617,7 @@ msgstr "" msgid "Stock Settings" msgstr "" -#: templates/InvenTree/settings/stock.html:34 +#: templates/InvenTree/settings/stock.html:35 msgid "Stock Location Types" msgstr "" @@ -11280,7 +11644,7 @@ msgid "Unverified" msgstr "" #: templates/InvenTree/settings/user.html:80 -#: templates/js/translated/company.js:957 +#: templates/js/translated/company.js:958 msgid "Primary" msgstr "" @@ -11532,7 +11896,7 @@ msgid "Submit Bug Report" msgstr "Hata Raporu Gönder" #: templates/about.html:91 templates/clip.html:4 -#: templates/js/translated/helpers.js:592 +#: templates/js/translated/helpers.js:598 msgid "copy to clipboard" msgstr "panoya kopyala" @@ -11738,23 +12102,24 @@ msgstr "Dosya Ekle" msgid "Barcode Identifier" msgstr "" -#: templates/base.html:103 +#: templates/base.html:102 msgid "Server Restart Required" msgstr "" -#: templates/base.html:106 +#: templates/base.html:105 msgid "A configuration option has been changed which requires a server restart" msgstr "" -#: templates/base.html:106 templates/base.html:116 +#: templates/base.html:105 templates/base.html:115 +#: templates/socialaccount/authentication_error.html:13 msgid "Contact your system administrator for further information" msgstr "" -#: templates/base.html:113 +#: templates/base.html:112 msgid "Pending Database Migrations" msgstr "" -#: templates/base.html:116 +#: templates/base.html:115 msgid "There are pending database migrations which require attention" msgstr "" @@ -11787,7 +12152,7 @@ msgid "The following parts are low on required stock" msgstr "" #: templates/email/build_order_required_stock.html:18 -#: templates/js/translated/bom.js:1674 templates/js/translated/build.js:2747 +#: templates/js/translated/bom.js:1674 templates/js/translated/build.js:2765 msgid "Required Quantity" msgstr "" @@ -11801,7 +12166,7 @@ msgid "Click on the following link to view this part" msgstr "" #: templates/email/low_stock_notification.html:18 -#: templates/js/translated/part.js:3237 +#: templates/js/translated/part.js:3253 msgid "Minimum Quantity" msgstr "" @@ -12039,7 +12404,7 @@ msgstr "" #: templates/js/translated/bom.js:189 templates/js/translated/bom.js:700 #: templates/js/translated/modals.js:75 templates/js/translated/modals.js:629 #: templates/js/translated/modals.js:757 templates/js/translated/modals.js:1065 -#: templates/js/translated/purchase_order.js:797 templates/modals.html:15 +#: templates/js/translated/purchase_order.js:780 templates/modals.html:15 #: templates/modals.html:27 templates/modals.html:39 templates/modals.html:50 msgid "Close" msgstr "Kapat" @@ -12156,7 +12521,7 @@ msgstr "" msgid "Substitutes Available" msgstr "" -#: templates/js/translated/bom.js:950 templates/js/translated/build.js:2673 +#: templates/js/translated/bom.js:950 templates/js/translated/build.js:2682 msgid "Variant stock allowed" msgstr "" @@ -12176,30 +12541,30 @@ msgstr "" msgid "No pricing available" msgstr "" -#: templates/js/translated/bom.js:1184 templates/js/translated/build.js:2812 +#: templates/js/translated/bom.js:1184 templates/js/translated/build.js:2830 msgid "External stock" msgstr "" -#: templates/js/translated/bom.js:1188 templates/js/translated/build.js:2786 -#: templates/js/translated/sales_order.js:1946 +#: templates/js/translated/bom.js:1188 templates/js/translated/build.js:2804 +#: templates/js/translated/sales_order.js:1927 msgid "No Stock Available" msgstr "" -#: templates/js/translated/bom.js:1193 templates/js/translated/build.js:2790 +#: templates/js/translated/bom.js:1193 templates/js/translated/build.js:2808 msgid "Includes variant and substitute stock" msgstr "" -#: templates/js/translated/bom.js:1195 templates/js/translated/build.js:2792 +#: templates/js/translated/bom.js:1195 templates/js/translated/build.js:2810 #: templates/js/translated/part.js:1263 -#: templates/js/translated/sales_order.js:1943 +#: templates/js/translated/sales_order.js:1924 msgid "Includes variant stock" msgstr "" -#: templates/js/translated/bom.js:1197 templates/js/translated/build.js:2794 +#: templates/js/translated/bom.js:1197 templates/js/translated/build.js:2812 msgid "Includes substitute stock" msgstr "" -#: templates/js/translated/bom.js:1225 templates/js/translated/build.js:2777 +#: templates/js/translated/bom.js:1225 templates/js/translated/build.js:2795 msgid "Consumable item" msgstr "" @@ -12231,7 +12596,7 @@ msgstr "" msgid "No BOM items found" msgstr "" -#: templates/js/translated/bom.js:1657 templates/js/translated/build.js:2658 +#: templates/js/translated/bom.js:1657 templates/js/translated/build.js:2667 msgid "Required Part" msgstr "" @@ -12243,396 +12608,396 @@ msgstr "" msgid "Edit Build Order" msgstr "" -#: templates/js/translated/build.js:191 +#: templates/js/translated/build.js:194 msgid "Create Build Order" msgstr "" -#: templates/js/translated/build.js:223 +#: templates/js/translated/build.js:226 msgid "Cancel Build Order" msgstr "" -#: templates/js/translated/build.js:232 +#: templates/js/translated/build.js:235 msgid "Are you sure you wish to cancel this build?" msgstr "" -#: templates/js/translated/build.js:238 +#: templates/js/translated/build.js:241 msgid "Stock items have been allocated to this build order" msgstr "" -#: templates/js/translated/build.js:245 +#: templates/js/translated/build.js:248 msgid "There are incomplete outputs remaining for this build order" msgstr "" -#: templates/js/translated/build.js:297 +#: templates/js/translated/build.js:300 msgid "Build order is ready to be completed" msgstr "" -#: templates/js/translated/build.js:305 +#: templates/js/translated/build.js:308 msgid "This build order cannot be completed as there are incomplete outputs" msgstr "" -#: templates/js/translated/build.js:310 +#: templates/js/translated/build.js:313 msgid "Build Order is incomplete" msgstr "" -#: templates/js/translated/build.js:328 +#: templates/js/translated/build.js:331 msgid "Complete Build Order" msgstr "" -#: templates/js/translated/build.js:369 templates/js/translated/stock.js:127 +#: templates/js/translated/build.js:372 templates/js/translated/stock.js:127 #: templates/js/translated/stock.js:301 msgid "Next available serial number" msgstr "" -#: templates/js/translated/build.js:371 templates/js/translated/stock.js:129 +#: templates/js/translated/build.js:374 templates/js/translated/stock.js:129 #: templates/js/translated/stock.js:303 msgid "Latest serial number" msgstr "" -#: templates/js/translated/build.js:380 +#: templates/js/translated/build.js:383 msgid "The Bill of Materials contains trackable parts" msgstr "" -#: templates/js/translated/build.js:381 +#: templates/js/translated/build.js:384 msgid "Build outputs must be generated individually" msgstr "" -#: templates/js/translated/build.js:389 +#: templates/js/translated/build.js:392 msgid "Trackable parts can have serial numbers specified" msgstr "" -#: templates/js/translated/build.js:390 +#: templates/js/translated/build.js:393 msgid "Enter serial numbers to generate multiple single build outputs" msgstr "" -#: templates/js/translated/build.js:397 +#: templates/js/translated/build.js:400 msgid "Create Build Output" msgstr "" -#: templates/js/translated/build.js:428 +#: templates/js/translated/build.js:431 msgid "Allocate stock items to this build output" msgstr "" -#: templates/js/translated/build.js:436 +#: templates/js/translated/build.js:439 msgid "Deallocate stock from build output" msgstr "" -#: templates/js/translated/build.js:445 +#: templates/js/translated/build.js:448 msgid "Complete build output" msgstr "" -#: templates/js/translated/build.js:453 +#: templates/js/translated/build.js:456 msgid "Scrap build output" msgstr "" -#: templates/js/translated/build.js:460 +#: templates/js/translated/build.js:463 msgid "Delete build output" msgstr "" -#: templates/js/translated/build.js:480 +#: templates/js/translated/build.js:483 msgid "Are you sure you wish to deallocate the selected stock items from this build?" msgstr "" -#: templates/js/translated/build.js:498 +#: templates/js/translated/build.js:501 msgid "Deallocate Stock Items" msgstr "" -#: templates/js/translated/build.js:584 templates/js/translated/build.js:711 -#: templates/js/translated/build.js:836 +#: templates/js/translated/build.js:587 templates/js/translated/build.js:714 +#: templates/js/translated/build.js:839 msgid "Select Build Outputs" msgstr "" -#: templates/js/translated/build.js:585 templates/js/translated/build.js:712 -#: templates/js/translated/build.js:837 +#: templates/js/translated/build.js:588 templates/js/translated/build.js:715 +#: templates/js/translated/build.js:840 msgid "At least one build output must be selected" msgstr "" -#: templates/js/translated/build.js:599 +#: templates/js/translated/build.js:602 msgid "Selected build outputs will be marked as complete" msgstr "" -#: templates/js/translated/build.js:603 templates/js/translated/build.js:736 -#: templates/js/translated/build.js:859 +#: templates/js/translated/build.js:606 templates/js/translated/build.js:739 +#: templates/js/translated/build.js:862 msgid "Output" msgstr "" -#: templates/js/translated/build.js:630 +#: templates/js/translated/build.js:633 msgid "Complete Build Outputs" msgstr "" -#: templates/js/translated/build.js:727 +#: templates/js/translated/build.js:730 msgid "Selected build outputs will be marked as scrapped" msgstr "" -#: templates/js/translated/build.js:729 +#: templates/js/translated/build.js:732 msgid "Scrapped output are marked as rejected" msgstr "" -#: templates/js/translated/build.js:730 +#: templates/js/translated/build.js:733 msgid "Allocated stock items will no longer be available" msgstr "" -#: templates/js/translated/build.js:731 +#: templates/js/translated/build.js:734 msgid "The completion status of the build order will not be adjusted" msgstr "" -#: templates/js/translated/build.js:761 +#: templates/js/translated/build.js:764 msgid "Scrap Build Outputs" msgstr "" -#: templates/js/translated/build.js:851 +#: templates/js/translated/build.js:854 msgid "Selected build outputs will be deleted" msgstr "" -#: templates/js/translated/build.js:853 +#: templates/js/translated/build.js:856 msgid "Build output data will be permanently deleted" msgstr "" -#: templates/js/translated/build.js:854 +#: templates/js/translated/build.js:857 msgid "Allocated stock items will be returned to stock" msgstr "" -#: templates/js/translated/build.js:872 +#: templates/js/translated/build.js:875 msgid "Delete Build Outputs" msgstr "" -#: templates/js/translated/build.js:959 +#: templates/js/translated/build.js:962 msgid "Delete allocations" msgstr "" -#: templates/js/translated/build.js:966 +#: templates/js/translated/build.js:969 msgid "Delete Stock Allocations" msgstr "" -#: templates/js/translated/build.js:989 +#: templates/js/translated/build.js:992 msgid "No allocated stock" msgstr "" -#: templates/js/translated/build.js:1045 +#: templates/js/translated/build.js:1048 msgid "Stock item" msgstr "" -#: templates/js/translated/build.js:1070 +#: templates/js/translated/build.js:1073 msgid "Edit build allocation" msgstr "" -#: templates/js/translated/build.js:1071 +#: templates/js/translated/build.js:1074 msgid "Delete build allocation" msgstr "" -#: templates/js/translated/build.js:1089 +#: templates/js/translated/build.js:1092 msgid "Edit Build Allocation" msgstr "" -#: templates/js/translated/build.js:1102 +#: templates/js/translated/build.js:1105 msgid "Delete Build Allocation" msgstr "" -#: templates/js/translated/build.js:1133 +#: templates/js/translated/build.js:1136 msgid "No build order allocations found" msgstr "" -#: templates/js/translated/build.js:1178 +#: templates/js/translated/build.js:1181 msgid "Location not specified" msgstr "" -#: templates/js/translated/build.js:1200 +#: templates/js/translated/build.js:1203 msgid "Complete outputs" msgstr "" -#: templates/js/translated/build.js:1218 +#: templates/js/translated/build.js:1221 msgid "Scrap outputs" msgstr "" -#: templates/js/translated/build.js:1236 +#: templates/js/translated/build.js:1239 msgid "Delete outputs" msgstr "" -#: templates/js/translated/build.js:1289 +#: templates/js/translated/build.js:1292 msgid "build output" msgstr "" -#: templates/js/translated/build.js:1290 +#: templates/js/translated/build.js:1293 msgid "build outputs" msgstr "" -#: templates/js/translated/build.js:1294 +#: templates/js/translated/build.js:1297 msgid "Build output actions" msgstr "" -#: templates/js/translated/build.js:1470 +#: templates/js/translated/build.js:1473 msgid "No active build outputs found" msgstr "" -#: templates/js/translated/build.js:1563 +#: templates/js/translated/build.js:1566 msgid "Allocated Lines" msgstr "" -#: templates/js/translated/build.js:1577 +#: templates/js/translated/build.js:1580 msgid "Required Tests" msgstr "" -#: templates/js/translated/build.js:1749 -#: templates/js/translated/purchase_order.js:611 -#: templates/js/translated/sales_order.js:1207 +#: templates/js/translated/build.js:1752 +#: templates/js/translated/purchase_order.js:594 +#: templates/js/translated/sales_order.js:1173 msgid "Select Parts" msgstr "" -#: templates/js/translated/build.js:1750 -#: templates/js/translated/sales_order.js:1208 +#: templates/js/translated/build.js:1753 +#: templates/js/translated/sales_order.js:1174 msgid "You must select at least one part to allocate" msgstr "" -#: templates/js/translated/build.js:1813 -#: templates/js/translated/sales_order.js:1157 +#: templates/js/translated/build.js:1816 +#: templates/js/translated/sales_order.js:1123 msgid "Specify stock allocation quantity" msgstr "" -#: templates/js/translated/build.js:1890 +#: templates/js/translated/build.js:1893 msgid "All Parts Allocated" msgstr "" -#: templates/js/translated/build.js:1891 +#: templates/js/translated/build.js:1894 msgid "All selected parts have been fully allocated" msgstr "" -#: templates/js/translated/build.js:1905 -#: templates/js/translated/sales_order.js:1222 +#: templates/js/translated/build.js:1908 +#: templates/js/translated/sales_order.js:1188 msgid "Select source location (leave blank to take from all locations)" msgstr "" -#: templates/js/translated/build.js:1933 +#: templates/js/translated/build.js:1936 msgid "Allocate Stock Items to Build Order" msgstr "" -#: templates/js/translated/build.js:1944 -#: templates/js/translated/sales_order.js:1319 +#: templates/js/translated/build.js:1947 +#: templates/js/translated/sales_order.js:1285 msgid "No matching stock locations" msgstr "" -#: templates/js/translated/build.js:2017 -#: templates/js/translated/sales_order.js:1398 +#: templates/js/translated/build.js:2020 +#: templates/js/translated/sales_order.js:1364 msgid "No matching stock items" msgstr "" -#: templates/js/translated/build.js:2114 +#: templates/js/translated/build.js:2117 msgid "Automatic Stock Allocation" msgstr "" -#: templates/js/translated/build.js:2115 +#: templates/js/translated/build.js:2118 msgid "Stock items will be automatically allocated to this build order, according to the provided guidelines" msgstr "" -#: templates/js/translated/build.js:2117 +#: templates/js/translated/build.js:2120 msgid "If a location is specified, stock will only be allocated from that location" msgstr "" -#: templates/js/translated/build.js:2118 +#: templates/js/translated/build.js:2121 msgid "If stock is considered interchangeable, it will be allocated from the first location it is found" msgstr "" -#: templates/js/translated/build.js:2119 +#: templates/js/translated/build.js:2122 msgid "If substitute stock is allowed, it will be used where stock of the primary part cannot be found" msgstr "" -#: templates/js/translated/build.js:2149 +#: templates/js/translated/build.js:2152 msgid "Allocate Stock Items" msgstr "" -#: templates/js/translated/build.js:2254 +#: templates/js/translated/build.js:2257 msgid "No builds matching query" msgstr "" -#: templates/js/translated/build.js:2289 templates/js/translated/build.js:2652 +#: templates/js/translated/build.js:2292 templates/js/translated/build.js:2661 #: templates/js/translated/forms.js:2196 templates/js/translated/forms.js:2212 #: templates/js/translated/part.js:2322 templates/js/translated/part.js:2761 -#: templates/js/translated/stock.js:2068 templates/js/translated/stock.js:2795 +#: templates/js/translated/stock.js:2069 templates/js/translated/stock.js:2796 msgid "Select" msgstr "" -#: templates/js/translated/build.js:2303 +#: templates/js/translated/build.js:2306 msgid "Build order is overdue" msgstr "" -#: templates/js/translated/build.js:2385 templates/js/translated/stock.js:3126 +#: templates/js/translated/build.js:2388 templates/js/translated/stock.js:3127 msgid "No user information" msgstr "" -#: templates/js/translated/build.js:2561 -#: templates/js/translated/sales_order.js:1682 +#: templates/js/translated/build.js:2568 +#: templates/js/translated/sales_order.js:1663 msgid "Edit stock allocation" msgstr "" -#: templates/js/translated/build.js:2562 -#: templates/js/translated/sales_order.js:1683 +#: templates/js/translated/build.js:2569 +#: templates/js/translated/sales_order.js:1664 msgid "Delete stock allocation" msgstr "" -#: templates/js/translated/build.js:2577 +#: templates/js/translated/build.js:2584 msgid "Edit Allocation" msgstr "" -#: templates/js/translated/build.js:2589 +#: templates/js/translated/build.js:2596 msgid "Remove Allocation" msgstr "" -#: templates/js/translated/build.js:2628 +#: templates/js/translated/build.js:2636 msgid "build line" msgstr "" -#: templates/js/translated/build.js:2629 +#: templates/js/translated/build.js:2637 msgid "build lines" msgstr "" -#: templates/js/translated/build.js:2647 +#: templates/js/translated/build.js:2656 msgid "No build lines found" msgstr "" -#: templates/js/translated/build.js:2677 templates/js/translated/part.js:793 +#: templates/js/translated/build.js:2686 templates/js/translated/part.js:793 #: templates/js/translated/part.js:1209 msgid "Trackable part" msgstr "" -#: templates/js/translated/build.js:2720 +#: templates/js/translated/build.js:2729 msgid "Gets Inherited" msgstr "" -#: templates/js/translated/build.js:2730 +#: templates/js/translated/build.js:2748 msgid "Unit Quantity" msgstr "" -#: templates/js/translated/build.js:2782 -#: templates/js/translated/sales_order.js:1951 +#: templates/js/translated/build.js:2800 +#: templates/js/translated/sales_order.js:1932 msgid "Sufficient stock available" msgstr "" -#: templates/js/translated/build.js:2837 +#: templates/js/translated/build.js:2855 msgid "Consumable Item" msgstr "" -#: templates/js/translated/build.js:2844 +#: templates/js/translated/build.js:2862 msgid "Tracked item" msgstr "" -#: templates/js/translated/build.js:2845 +#: templates/js/translated/build.js:2863 msgid "Allocate tracked items against individual build outputs" msgstr "" -#: templates/js/translated/build.js:2853 -#: templates/js/translated/sales_order.js:2052 +#: templates/js/translated/build.js:2871 +#: templates/js/translated/sales_order.js:2033 msgid "Build stock" msgstr "" -#: templates/js/translated/build.js:2858 templates/js/translated/stock.js:1953 +#: templates/js/translated/build.js:2876 templates/js/translated/stock.js:1954 msgid "Order stock" msgstr "" -#: templates/js/translated/build.js:2862 -#: templates/js/translated/sales_order.js:2046 +#: templates/js/translated/build.js:2880 +#: templates/js/translated/sales_order.js:2027 msgid "Allocate stock" msgstr "" -#: templates/js/translated/build.js:2866 +#: templates/js/translated/build.js:2884 msgid "Remove stock allocation" msgstr "" @@ -12641,7 +13006,7 @@ msgid "Add Manufacturer" msgstr "" #: templates/js/translated/company.js:111 -#: templates/js/translated/company.js:213 +#: templates/js/translated/company.js:214 msgid "Add Manufacturer Part" msgstr "" @@ -12649,231 +13014,231 @@ msgstr "" msgid "Edit Manufacturer Part" msgstr "" -#: templates/js/translated/company.js:201 +#: templates/js/translated/company.js:202 #: templates/js/translated/purchase_order.js:93 msgid "Add Supplier" msgstr "" -#: templates/js/translated/company.js:243 -#: templates/js/translated/purchase_order.js:318 +#: templates/js/translated/company.js:244 +#: templates/js/translated/purchase_order.js:301 msgid "Add Supplier Part" msgstr "" -#: templates/js/translated/company.js:344 +#: templates/js/translated/company.js:345 msgid "All selected supplier parts will be deleted" msgstr "" -#: templates/js/translated/company.js:360 +#: templates/js/translated/company.js:361 msgid "Delete Supplier Parts" msgstr "" -#: templates/js/translated/company.js:466 +#: templates/js/translated/company.js:467 msgid "Add new Company" msgstr "" -#: templates/js/translated/company.js:546 +#: templates/js/translated/company.js:547 msgid "Parts Supplied" msgstr "" -#: templates/js/translated/company.js:555 +#: templates/js/translated/company.js:556 msgid "Parts Manufactured" msgstr "" -#: templates/js/translated/company.js:570 +#: templates/js/translated/company.js:571 msgid "No company information found" msgstr "" -#: templates/js/translated/company.js:619 +#: templates/js/translated/company.js:620 msgid "Create New Contact" msgstr "" -#: templates/js/translated/company.js:635 -#: templates/js/translated/company.js:758 +#: templates/js/translated/company.js:636 +#: templates/js/translated/company.js:759 msgid "Edit Contact" msgstr "" -#: templates/js/translated/company.js:672 +#: templates/js/translated/company.js:673 msgid "All selected contacts will be deleted" msgstr "" -#: templates/js/translated/company.js:678 -#: templates/js/translated/company.js:742 +#: templates/js/translated/company.js:679 +#: templates/js/translated/company.js:743 msgid "Role" msgstr "" -#: templates/js/translated/company.js:686 +#: templates/js/translated/company.js:687 msgid "Delete Contacts" msgstr "" -#: templates/js/translated/company.js:717 +#: templates/js/translated/company.js:718 msgid "No contacts found" msgstr "" -#: templates/js/translated/company.js:730 +#: templates/js/translated/company.js:731 msgid "Phone Number" msgstr "" -#: templates/js/translated/company.js:736 +#: templates/js/translated/company.js:737 msgid "Email Address" msgstr "" -#: templates/js/translated/company.js:762 +#: templates/js/translated/company.js:763 msgid "Delete Contact" msgstr "" -#: templates/js/translated/company.js:859 +#: templates/js/translated/company.js:860 msgid "Create New Address" msgstr "" -#: templates/js/translated/company.js:874 -#: templates/js/translated/company.js:1035 +#: templates/js/translated/company.js:875 +#: templates/js/translated/company.js:1036 msgid "Edit Address" msgstr "" -#: templates/js/translated/company.js:909 +#: templates/js/translated/company.js:910 msgid "All selected addresses will be deleted" msgstr "" -#: templates/js/translated/company.js:923 +#: templates/js/translated/company.js:924 msgid "Delete Addresses" msgstr "" -#: templates/js/translated/company.js:950 +#: templates/js/translated/company.js:951 msgid "No addresses found" msgstr "" -#: templates/js/translated/company.js:989 +#: templates/js/translated/company.js:990 msgid "Postal city" msgstr "" -#: templates/js/translated/company.js:995 +#: templates/js/translated/company.js:996 msgid "State/province" msgstr "" -#: templates/js/translated/company.js:1007 +#: templates/js/translated/company.js:1008 msgid "Courier notes" msgstr "" -#: templates/js/translated/company.js:1013 +#: templates/js/translated/company.js:1014 msgid "Internal notes" msgstr "" -#: templates/js/translated/company.js:1039 +#: templates/js/translated/company.js:1040 msgid "Delete Address" msgstr "" -#: templates/js/translated/company.js:1112 +#: templates/js/translated/company.js:1113 msgid "All selected manufacturer parts will be deleted" msgstr "" -#: templates/js/translated/company.js:1127 +#: templates/js/translated/company.js:1128 msgid "Delete Manufacturer Parts" msgstr "" -#: templates/js/translated/company.js:1161 +#: templates/js/translated/company.js:1162 msgid "All selected parameters will be deleted" msgstr "" -#: templates/js/translated/company.js:1175 +#: templates/js/translated/company.js:1176 msgid "Delete Parameters" msgstr "" -#: templates/js/translated/company.js:1191 -#: templates/js/translated/company.js:1479 templates/js/translated/part.js:2250 +#: templates/js/translated/company.js:1192 +#: templates/js/translated/company.js:1480 templates/js/translated/part.js:2250 msgid "Order parts" msgstr "" -#: templates/js/translated/company.js:1208 +#: templates/js/translated/company.js:1209 msgid "Delete manufacturer parts" msgstr "" -#: templates/js/translated/company.js:1240 +#: templates/js/translated/company.js:1241 msgid "Manufacturer part actions" msgstr "" -#: templates/js/translated/company.js:1259 +#: templates/js/translated/company.js:1260 msgid "No manufacturer parts found" msgstr "" -#: templates/js/translated/company.js:1279 -#: templates/js/translated/company.js:1567 templates/js/translated/part.js:801 +#: templates/js/translated/company.js:1280 +#: templates/js/translated/company.js:1568 templates/js/translated/part.js:801 #: templates/js/translated/part.js:1217 msgid "Template part" msgstr "" -#: templates/js/translated/company.js:1283 -#: templates/js/translated/company.js:1571 templates/js/translated/part.js:805 +#: templates/js/translated/company.js:1284 +#: templates/js/translated/company.js:1572 templates/js/translated/part.js:805 #: templates/js/translated/part.js:1221 msgid "Assembled part" msgstr "" -#: templates/js/translated/company.js:1403 templates/js/translated/part.js:1471 +#: templates/js/translated/company.js:1404 templates/js/translated/part.js:1471 msgid "No parameters found" msgstr "" -#: templates/js/translated/company.js:1438 templates/js/translated/part.js:1534 +#: templates/js/translated/company.js:1439 templates/js/translated/part.js:1534 msgid "Edit parameter" msgstr "" -#: templates/js/translated/company.js:1439 templates/js/translated/part.js:1535 +#: templates/js/translated/company.js:1440 templates/js/translated/part.js:1535 msgid "Delete parameter" msgstr "" -#: templates/js/translated/company.js:1456 templates/js/translated/part.js:1440 +#: templates/js/translated/company.js:1457 templates/js/translated/part.js:1440 msgid "Edit Parameter" msgstr "" -#: templates/js/translated/company.js:1465 templates/js/translated/part.js:1556 +#: templates/js/translated/company.js:1466 templates/js/translated/part.js:1556 msgid "Delete Parameter" msgstr "" -#: templates/js/translated/company.js:1496 +#: templates/js/translated/company.js:1497 msgid "Delete supplier parts" msgstr "" -#: templates/js/translated/company.js:1546 +#: templates/js/translated/company.js:1547 msgid "No supplier parts found" msgstr "" -#: templates/js/translated/company.js:1664 +#: templates/js/translated/company.js:1665 msgid "Base Units" msgstr "" -#: templates/js/translated/company.js:1694 +#: templates/js/translated/company.js:1695 msgid "Availability" msgstr "" -#: templates/js/translated/company.js:1725 +#: templates/js/translated/company.js:1726 msgid "Edit supplier part" msgstr "" -#: templates/js/translated/company.js:1726 +#: templates/js/translated/company.js:1727 msgid "Delete supplier part" msgstr "" -#: templates/js/translated/company.js:1779 +#: templates/js/translated/company.js:1780 #: templates/js/translated/pricing.js:694 msgid "Delete Price Break" msgstr "" -#: templates/js/translated/company.js:1789 +#: templates/js/translated/company.js:1790 #: templates/js/translated/pricing.js:712 msgid "Edit Price Break" msgstr "" -#: templates/js/translated/company.js:1804 +#: templates/js/translated/company.js:1805 msgid "No price break information found" msgstr "" -#: templates/js/translated/company.js:1833 +#: templates/js/translated/company.js:1834 msgid "Last updated" msgstr "" -#: templates/js/translated/company.js:1840 +#: templates/js/translated/company.js:1841 msgid "Edit price break" msgstr "" -#: templates/js/translated/company.js:1841 +#: templates/js/translated/company.js:1842 msgid "Delete price break" msgstr "" @@ -12977,19 +13342,19 @@ msgstr "" msgid "Select Columns" msgstr "" -#: templates/js/translated/helpers.js:80 +#: templates/js/translated/helpers.js:81 msgid "YES" msgstr "" -#: templates/js/translated/helpers.js:83 +#: templates/js/translated/helpers.js:84 msgid "NO" msgstr "" -#: templates/js/translated/helpers.js:96 +#: templates/js/translated/helpers.js:97 msgid "True" msgstr "" -#: templates/js/translated/helpers.js:97 +#: templates/js/translated/helpers.js:98 msgid "False" msgstr "" @@ -13131,7 +13496,7 @@ msgid "Delete Line" msgstr "" #: templates/js/translated/order.js:306 -#: templates/js/translated/purchase_order.js:2060 +#: templates/js/translated/purchase_order.js:2044 msgid "No line items found" msgstr "" @@ -13366,19 +13731,19 @@ msgid "Delete Part Parameter Template" msgstr "" #: templates/js/translated/part.js:1723 -#: templates/js/translated/purchase_order.js:1724 +#: templates/js/translated/purchase_order.js:1708 msgid "No purchase orders found" msgstr "" #: templates/js/translated/part.js:1867 -#: templates/js/translated/purchase_order.js:2223 +#: templates/js/translated/purchase_order.js:2207 #: templates/js/translated/return_order.js:754 -#: templates/js/translated/sales_order.js:1911 +#: templates/js/translated/sales_order.js:1892 msgid "This line item is overdue" msgstr "" #: templates/js/translated/part.js:1913 -#: templates/js/translated/purchase_order.js:2290 +#: templates/js/translated/purchase_order.js:2274 msgid "Receive line item" msgstr "" @@ -13419,7 +13784,7 @@ msgid "No category" msgstr "" #: templates/js/translated/part.js:2550 templates/js/translated/part.js:2680 -#: templates/js/translated/stock.js:2754 +#: templates/js/translated/stock.js:2755 msgid "Display as list" msgstr "" @@ -13431,7 +13796,7 @@ msgstr "" msgid "No subcategories found" msgstr "" -#: templates/js/translated/part.js:2700 templates/js/translated/stock.js:2774 +#: templates/js/translated/part.js:2700 templates/js/translated/stock.js:2775 msgid "Display as tree" msgstr "" @@ -13483,23 +13848,23 @@ msgstr "" msgid "Speculative" msgstr "" -#: templates/js/translated/part.js:3128 +#: templates/js/translated/part.js:3144 msgid "No scheduling information available for this part" msgstr "" -#: templates/js/translated/part.js:3134 +#: templates/js/translated/part.js:3150 msgid "Error fetching scheduling information for this part" msgstr "" -#: templates/js/translated/part.js:3230 +#: templates/js/translated/part.js:3246 msgid "Scheduled Stock Quantities" msgstr "" -#: templates/js/translated/part.js:3246 +#: templates/js/translated/part.js:3262 msgid "Maximum Quantity" msgstr "" -#: templates/js/translated/part.js:3291 +#: templates/js/translated/part.js:3307 msgid "Minimum Stock Level" msgstr "" @@ -13575,267 +13940,243 @@ msgstr "" msgid "Purchase Price History" msgstr "" -#: templates/js/translated/pricing.js:894 +#: templates/js/translated/pricing.js:892 msgid "No sales history data available" msgstr "" -#: templates/js/translated/pricing.js:916 +#: templates/js/translated/pricing.js:914 msgid "Sale Price History" msgstr "" -#: templates/js/translated/pricing.js:1005 +#: templates/js/translated/pricing.js:1003 msgid "No variant data available" msgstr "" -#: templates/js/translated/pricing.js:1045 +#: templates/js/translated/pricing.js:1043 msgid "Variant Part" msgstr "" -#: templates/js/translated/purchase_order.js:169 -msgid "Select purchase order to duplicate" -msgstr "" - -#: templates/js/translated/purchase_order.js:176 -msgid "Duplicate Line Items" -msgstr "" - -#: templates/js/translated/purchase_order.js:177 -msgid "Duplicate all line items from the selected order" -msgstr "" - -#: templates/js/translated/purchase_order.js:184 -msgid "Duplicate Extra Lines" -msgstr "" - -#: templates/js/translated/purchase_order.js:185 -msgid "Duplicate extra line items from the selected order" -msgstr "" - -#: templates/js/translated/purchase_order.js:206 +#: templates/js/translated/purchase_order.js:188 msgid "Edit Purchase Order" msgstr "" -#: templates/js/translated/purchase_order.js:223 +#: templates/js/translated/purchase_order.js:205 msgid "Duplication Options" msgstr "" -#: templates/js/translated/purchase_order.js:431 +#: templates/js/translated/purchase_order.js:414 msgid "Complete Purchase Order" msgstr "" -#: templates/js/translated/purchase_order.js:448 +#: templates/js/translated/purchase_order.js:431 #: templates/js/translated/return_order.js:210 -#: templates/js/translated/sales_order.js:552 +#: templates/js/translated/sales_order.js:511 msgid "Mark this order as complete?" msgstr "" -#: templates/js/translated/purchase_order.js:454 +#: templates/js/translated/purchase_order.js:437 msgid "All line items have been received" msgstr "" -#: templates/js/translated/purchase_order.js:459 +#: templates/js/translated/purchase_order.js:442 msgid "This order has line items which have not been marked as received." msgstr "" -#: templates/js/translated/purchase_order.js:460 +#: templates/js/translated/purchase_order.js:443 msgid "Completing this order means that the order and line items will no longer be editable." msgstr "" -#: templates/js/translated/purchase_order.js:483 +#: templates/js/translated/purchase_order.js:466 msgid "Cancel Purchase Order" msgstr "" -#: templates/js/translated/purchase_order.js:488 +#: templates/js/translated/purchase_order.js:471 msgid "Are you sure you wish to cancel this purchase order?" msgstr "" -#: templates/js/translated/purchase_order.js:494 +#: templates/js/translated/purchase_order.js:477 msgid "This purchase order can not be cancelled" msgstr "" -#: templates/js/translated/purchase_order.js:515 +#: templates/js/translated/purchase_order.js:498 #: templates/js/translated/return_order.js:164 msgid "After placing this order, line items will no longer be editable." msgstr "" -#: templates/js/translated/purchase_order.js:520 +#: templates/js/translated/purchase_order.js:503 msgid "Issue Purchase Order" msgstr "" -#: templates/js/translated/purchase_order.js:612 +#: templates/js/translated/purchase_order.js:595 msgid "At least one purchaseable part must be selected" msgstr "" -#: templates/js/translated/purchase_order.js:637 +#: templates/js/translated/purchase_order.js:620 msgid "Quantity to order" msgstr "" -#: templates/js/translated/purchase_order.js:646 +#: templates/js/translated/purchase_order.js:629 msgid "New supplier part" msgstr "" -#: templates/js/translated/purchase_order.js:664 +#: templates/js/translated/purchase_order.js:647 msgid "New purchase order" msgstr "" -#: templates/js/translated/purchase_order.js:705 +#: templates/js/translated/purchase_order.js:688 msgid "Add to purchase order" msgstr "" -#: templates/js/translated/purchase_order.js:755 +#: templates/js/translated/purchase_order.js:738 msgid "Merge" msgstr "" -#: templates/js/translated/purchase_order.js:859 +#: templates/js/translated/purchase_order.js:842 msgid "No matching supplier parts" msgstr "" -#: templates/js/translated/purchase_order.js:878 +#: templates/js/translated/purchase_order.js:861 msgid "No matching purchase orders" msgstr "" -#: templates/js/translated/purchase_order.js:1073 +#: templates/js/translated/purchase_order.js:1056 #: templates/js/translated/return_order.js:490 msgid "Select Line Items" msgstr "" -#: templates/js/translated/purchase_order.js:1074 +#: templates/js/translated/purchase_order.js:1057 #: templates/js/translated/return_order.js:491 msgid "At least one line item must be selected" msgstr "" -#: templates/js/translated/purchase_order.js:1104 +#: templates/js/translated/purchase_order.js:1087 msgid "Received Quantity" msgstr "" -#: templates/js/translated/purchase_order.js:1115 +#: templates/js/translated/purchase_order.js:1098 msgid "Quantity to receive" msgstr "" -#: templates/js/translated/purchase_order.js:1170 +#: templates/js/translated/purchase_order.js:1153 #: templates/js/translated/stock.js:1215 msgid "Specify packaging for incoming stock items" msgstr "" -#: templates/js/translated/purchase_order.js:1223 +#: templates/js/translated/purchase_order.js:1206 msgid "Stock Status" msgstr "" -#: templates/js/translated/purchase_order.js:1237 +#: templates/js/translated/purchase_order.js:1220 msgid "Add barcode" msgstr "" -#: templates/js/translated/purchase_order.js:1238 +#: templates/js/translated/purchase_order.js:1221 msgid "Remove barcode" msgstr "" -#: templates/js/translated/purchase_order.js:1241 +#: templates/js/translated/purchase_order.js:1224 msgid "Specify location" msgstr "" -#: templates/js/translated/purchase_order.js:1249 +#: templates/js/translated/purchase_order.js:1232 msgid "Add batch code" msgstr "" -#: templates/js/translated/purchase_order.js:1259 +#: templates/js/translated/purchase_order.js:1242 msgid "Specify packaging" msgstr "" -#: templates/js/translated/purchase_order.js:1270 +#: templates/js/translated/purchase_order.js:1253 msgid "Add serial numbers" msgstr "" -#: templates/js/translated/purchase_order.js:1281 +#: templates/js/translated/purchase_order.js:1264 msgid "Add note" msgstr "" -#: templates/js/translated/purchase_order.js:1338 +#: templates/js/translated/purchase_order.js:1321 msgid "Serials" msgstr "" -#: templates/js/translated/purchase_order.js:1368 +#: templates/js/translated/purchase_order.js:1351 msgid "Order Code" msgstr "" -#: templates/js/translated/purchase_order.js:1370 +#: templates/js/translated/purchase_order.js:1353 msgid "Quantity to Receive" msgstr "" -#: templates/js/translated/purchase_order.js:1395 +#: templates/js/translated/purchase_order.js:1379 #: templates/js/translated/return_order.js:559 msgid "Confirm receipt of items" msgstr "" -#: templates/js/translated/purchase_order.js:1396 +#: templates/js/translated/purchase_order.js:1380 msgid "Receive Purchase Order Items" msgstr "" -#: templates/js/translated/purchase_order.js:1464 +#: templates/js/translated/purchase_order.js:1448 msgid "Scan Item Barcode" msgstr "" -#: templates/js/translated/purchase_order.js:1465 +#: templates/js/translated/purchase_order.js:1449 msgid "Scan barcode on incoming item (must not match any existing stock items)" msgstr "" -#: templates/js/translated/purchase_order.js:1479 +#: templates/js/translated/purchase_order.js:1463 msgid "Invalid barcode data" msgstr "" -#: templates/js/translated/purchase_order.js:1751 +#: templates/js/translated/purchase_order.js:1735 #: templates/js/translated/return_order.js:285 -#: templates/js/translated/sales_order.js:810 -#: templates/js/translated/sales_order.js:1034 +#: templates/js/translated/sales_order.js:769 +#: templates/js/translated/sales_order.js:1007 msgid "Order is overdue" msgstr "" -#: templates/js/translated/purchase_order.js:1913 +#: templates/js/translated/purchase_order.js:1897 msgid "All selected Line items will be deleted" msgstr "" -#: templates/js/translated/purchase_order.js:1931 +#: templates/js/translated/purchase_order.js:1915 msgid "Delete selected Line items?" msgstr "" -#: templates/js/translated/purchase_order.js:1986 -#: templates/js/translated/sales_order.js:2106 +#: templates/js/translated/purchase_order.js:1970 +#: templates/js/translated/sales_order.js:2087 msgid "Duplicate Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2001 +#: templates/js/translated/purchase_order.js:1985 #: templates/js/translated/return_order.js:475 #: templates/js/translated/return_order.js:667 -#: templates/js/translated/sales_order.js:2119 +#: templates/js/translated/sales_order.js:2100 msgid "Edit Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2012 +#: templates/js/translated/purchase_order.js:1996 #: templates/js/translated/return_order.js:680 -#: templates/js/translated/sales_order.js:2130 +#: templates/js/translated/sales_order.js:2111 msgid "Delete Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2294 -#: templates/js/translated/sales_order.js:2060 +#: templates/js/translated/purchase_order.js:2278 +#: templates/js/translated/sales_order.js:2041 msgid "Duplicate line item" msgstr "" -#: templates/js/translated/purchase_order.js:2295 +#: templates/js/translated/purchase_order.js:2279 #: templates/js/translated/return_order.js:799 -#: templates/js/translated/sales_order.js:2061 +#: templates/js/translated/sales_order.js:2042 msgid "Edit line item" msgstr "" -#: templates/js/translated/purchase_order.js:2296 +#: templates/js/translated/purchase_order.js:2280 #: templates/js/translated/return_order.js:803 -#: templates/js/translated/sales_order.js:2067 +#: templates/js/translated/sales_order.js:2048 msgid "Delete line item" msgstr "" -#: templates/js/translated/report.js:49 -msgid "Print Report" -msgstr "" - #: templates/js/translated/report.js:68 msgid "Report print successful" msgstr "" @@ -13878,7 +14219,7 @@ msgid "No return orders found" msgstr "" #: templates/js/translated/return_order.js:299 -#: templates/js/translated/sales_order.js:824 +#: templates/js/translated/sales_order.js:783 msgid "Invalid Customer" msgstr "" @@ -13887,7 +14228,7 @@ msgid "Receive Return Order Items" msgstr "" #: templates/js/translated/return_order.js:691 -#: templates/js/translated/sales_order.js:2267 +#: templates/js/translated/sales_order.js:2248 msgid "No matching line items" msgstr "" @@ -13903,188 +14244,181 @@ msgstr "" msgid "Edit Sales Order" msgstr "" -#: templates/js/translated/sales_order.js:291 +#: templates/js/translated/sales_order.js:288 msgid "No stock items have been allocated to this shipment" msgstr "" -#: templates/js/translated/sales_order.js:296 -msgid "The following stock items will be shipped" -msgstr "" - -#: templates/js/translated/sales_order.js:336 +#: templates/js/translated/sales_order.js:294 msgid "Complete Shipment" msgstr "" -#: templates/js/translated/sales_order.js:360 +#: templates/js/translated/sales_order.js:318 msgid "Confirm Shipment" msgstr "" -#: templates/js/translated/sales_order.js:416 +#: templates/js/translated/sales_order.js:375 msgid "No pending shipments found" msgstr "" -#: templates/js/translated/sales_order.js:420 +#: templates/js/translated/sales_order.js:379 msgid "No stock items have been allocated to pending shipments" msgstr "" -#: templates/js/translated/sales_order.js:430 +#: templates/js/translated/sales_order.js:389 msgid "Complete Shipments" msgstr "" -#: templates/js/translated/sales_order.js:452 +#: templates/js/translated/sales_order.js:411 msgid "Skip" msgstr "" -#: templates/js/translated/sales_order.js:484 +#: templates/js/translated/sales_order.js:443 msgid "Ship Sales Order" msgstr "" -#: templates/js/translated/sales_order.js:500 +#: templates/js/translated/sales_order.js:459 msgid "Ship this order?" msgstr "" -#: templates/js/translated/sales_order.js:506 +#: templates/js/translated/sales_order.js:465 msgid "Order cannot be shipped as there are incomplete shipments" msgstr "" -#: templates/js/translated/sales_order.js:513 +#: templates/js/translated/sales_order.js:472 msgid "This order has line items which have not been completed." msgstr "" -#: templates/js/translated/sales_order.js:514 +#: templates/js/translated/sales_order.js:473 msgid "Shipping this order means that the order and line items will no longer be editable." msgstr "" -#: templates/js/translated/sales_order.js:572 +#: templates/js/translated/sales_order.js:531 msgid "Issue this Sales Order?" msgstr "" -#: templates/js/translated/sales_order.js:577 +#: templates/js/translated/sales_order.js:536 msgid "Issue Sales Order" msgstr "" -#: templates/js/translated/sales_order.js:596 +#: templates/js/translated/sales_order.js:555 msgid "Cancel Sales Order" msgstr "" -#: templates/js/translated/sales_order.js:601 +#: templates/js/translated/sales_order.js:560 msgid "Cancelling this order means that the order will no longer be editable." msgstr "" -#: templates/js/translated/sales_order.js:655 +#: templates/js/translated/sales_order.js:614 msgid "Create New Shipment" msgstr "" -#: templates/js/translated/sales_order.js:764 +#: templates/js/translated/sales_order.js:723 msgid "No sales orders found" msgstr "" -#: templates/js/translated/sales_order.js:944 +#: templates/js/translated/sales_order.js:907 msgid "Edit shipment" msgstr "" -#: templates/js/translated/sales_order.js:947 +#: templates/js/translated/sales_order.js:910 msgid "Complete shipment" msgstr "" -#: templates/js/translated/sales_order.js:952 +#: templates/js/translated/sales_order.js:915 msgid "Delete shipment" msgstr "" -#: templates/js/translated/sales_order.js:969 +#: templates/js/translated/sales_order.js:932 msgid "Edit Shipment" msgstr "" -#: templates/js/translated/sales_order.js:984 +#: templates/js/translated/sales_order.js:947 msgid "Delete Shipment" msgstr "" -#: templates/js/translated/sales_order.js:1017 +#: templates/js/translated/sales_order.js:989 msgid "No matching shipments found" msgstr "" -#: templates/js/translated/sales_order.js:1042 +#: templates/js/translated/sales_order.js:1015 msgid "Shipment Reference" msgstr "" -#: templates/js/translated/sales_order.js:1066 -#: templates/js/translated/sales_order.js:1565 +#: templates/js/translated/sales_order.js:1032 +#: templates/js/translated/sales_order.js:1531 msgid "Not shipped" msgstr "" -#: templates/js/translated/sales_order.js:1084 +#: templates/js/translated/sales_order.js:1050 msgid "Tracking" msgstr "" -#: templates/js/translated/sales_order.js:1088 +#: templates/js/translated/sales_order.js:1054 msgid "Invoice" msgstr "" -#: templates/js/translated/sales_order.js:1255 +#: templates/js/translated/sales_order.js:1221 msgid "Add Shipment" msgstr "" -#: templates/js/translated/sales_order.js:1306 +#: templates/js/translated/sales_order.js:1272 msgid "Confirm stock allocation" msgstr "" -#: templates/js/translated/sales_order.js:1307 +#: templates/js/translated/sales_order.js:1273 msgid "Allocate Stock Items to Sales Order" msgstr "" -#: templates/js/translated/sales_order.js:1513 +#: templates/js/translated/sales_order.js:1479 msgid "No sales order allocations found" msgstr "" -#: templates/js/translated/sales_order.js:1605 +#: templates/js/translated/sales_order.js:1571 msgid "Edit Stock Allocation" msgstr "" -#: templates/js/translated/sales_order.js:1619 +#: templates/js/translated/sales_order.js:1585 msgid "Confirm Delete Operation" msgstr "" -#: templates/js/translated/sales_order.js:1620 +#: templates/js/translated/sales_order.js:1586 msgid "Delete Stock Allocation" msgstr "" -#: templates/js/translated/sales_order.js:1659 -#: templates/js/translated/sales_order.js:1746 +#: templates/js/translated/sales_order.js:1640 +#: templates/js/translated/sales_order.js:1727 #: templates/js/translated/stock.js:1861 msgid "Shipped to customer" msgstr "" -#: templates/js/translated/sales_order.js:1667 -#: templates/js/translated/sales_order.js:1755 +#: templates/js/translated/sales_order.js:1648 +#: templates/js/translated/sales_order.js:1736 msgid "Stock location not specified" msgstr "" -#: templates/js/translated/sales_order.js:2044 -msgid "Allocate serial numbers" -msgstr "" - -#: templates/js/translated/sales_order.js:2048 -msgid "Purchase stock" -msgstr "" - -#: templates/js/translated/sales_order.js:2057 -#: templates/js/translated/sales_order.js:2245 -msgid "Calculate price" -msgstr "" - -#: templates/js/translated/sales_order.js:2071 -msgid "Cannot be deleted as items have been shipped" -msgstr "" - -#: templates/js/translated/sales_order.js:2074 -msgid "Cannot be deleted as items have been allocated" -msgstr "" - -#: templates/js/translated/sales_order.js:2145 +#: templates/js/translated/sales_order.js:2025 +#: templates/js/translated/sales_order.js:2126 msgid "Allocate Serial Numbers" msgstr "" -#: templates/js/translated/sales_order.js:2253 +#: templates/js/translated/sales_order.js:2029 +msgid "Purchase stock" +msgstr "" + +#: templates/js/translated/sales_order.js:2038 +#: templates/js/translated/sales_order.js:2226 +msgid "Calculate price" +msgstr "" + +#: templates/js/translated/sales_order.js:2052 +msgid "Cannot be deleted as items have been shipped" +msgstr "" + +#: templates/js/translated/sales_order.js:2055 +msgid "Cannot be deleted as items have been allocated" +msgstr "" + +#: templates/js/translated/sales_order.js:2234 msgid "Update Unit Price" msgstr "" @@ -14209,11 +14543,8 @@ msgid "Find Serial Number" msgstr "" #: templates/js/translated/stock.js:603 templates/js/translated/stock.js:604 -msgid "Enter serial number" -msgstr "" - #: templates/js/translated/stock.js:620 -msgid "Enter a serial number" +msgid "Enter serial number" msgstr "" #: templates/js/translated/stock.js:640 @@ -14284,7 +14615,7 @@ msgstr "" msgid "Add Stock" msgstr "" -#: templates/js/translated/stock.js:1049 users/models.py:396 +#: templates/js/translated/stock.js:1049 users/models.py:398 msgid "Add" msgstr "" @@ -14308,7 +14639,7 @@ msgstr "" msgid "Adjust packaging" msgstr "" -#: templates/js/translated/stock.js:1256 templates/js/translated/stock.js:3382 +#: templates/js/translated/stock.js:1256 templates/js/translated/stock.js:3383 msgid "Select Stock Items" msgstr "" @@ -14320,18 +14651,6 @@ msgstr "" msgid "Confirm stock adjustment" msgstr "" -#: templates/js/translated/stock.js:1448 -msgid "PASS" -msgstr "" - -#: templates/js/translated/stock.js:1450 -msgid "FAIL" -msgstr "" - -#: templates/js/translated/stock.js:1455 -msgid "NO RESULT" -msgstr "" - #: templates/js/translated/stock.js:1535 msgid "Pass test" msgstr "" @@ -14388,216 +14707,216 @@ msgstr "" msgid "No stock location set" msgstr "" -#: templates/js/translated/stock.js:1927 +#: templates/js/translated/stock.js:1928 msgid "Change stock status" msgstr "" -#: templates/js/translated/stock.js:1936 +#: templates/js/translated/stock.js:1937 msgid "Merge stock" msgstr "" -#: templates/js/translated/stock.js:1985 +#: templates/js/translated/stock.js:1986 msgid "Delete stock" msgstr "" -#: templates/js/translated/stock.js:2038 +#: templates/js/translated/stock.js:2039 msgid "stock items" msgstr "" -#: templates/js/translated/stock.js:2043 +#: templates/js/translated/stock.js:2044 msgid "Scan to location" msgstr "" -#: templates/js/translated/stock.js:2054 +#: templates/js/translated/stock.js:2055 msgid "Stock Actions" msgstr "" -#: templates/js/translated/stock.js:2098 +#: templates/js/translated/stock.js:2099 msgid "Load installed items" msgstr "" -#: templates/js/translated/stock.js:2176 +#: templates/js/translated/stock.js:2177 msgid "Stock item is in production" msgstr "" -#: templates/js/translated/stock.js:2181 +#: templates/js/translated/stock.js:2182 msgid "Stock item assigned to sales order" msgstr "" -#: templates/js/translated/stock.js:2184 +#: templates/js/translated/stock.js:2185 msgid "Stock item assigned to customer" msgstr "" -#: templates/js/translated/stock.js:2187 +#: templates/js/translated/stock.js:2188 msgid "Serialized stock item has been allocated" msgstr "" -#: templates/js/translated/stock.js:2189 +#: templates/js/translated/stock.js:2190 msgid "Stock item has been fully allocated" msgstr "" -#: templates/js/translated/stock.js:2191 +#: templates/js/translated/stock.js:2192 msgid "Stock item has been partially allocated" msgstr "" -#: templates/js/translated/stock.js:2194 +#: templates/js/translated/stock.js:2195 msgid "Stock item has been installed in another item" msgstr "" -#: templates/js/translated/stock.js:2196 +#: templates/js/translated/stock.js:2197 msgid "Stock item has been consumed by a build order" msgstr "" -#: templates/js/translated/stock.js:2200 +#: templates/js/translated/stock.js:2201 msgid "Stock item has expired" msgstr "" -#: templates/js/translated/stock.js:2202 +#: templates/js/translated/stock.js:2203 msgid "Stock item will expire soon" msgstr "" -#: templates/js/translated/stock.js:2207 +#: templates/js/translated/stock.js:2208 msgid "Stock item has been rejected" msgstr "" -#: templates/js/translated/stock.js:2209 +#: templates/js/translated/stock.js:2210 msgid "Stock item is lost" msgstr "" -#: templates/js/translated/stock.js:2211 +#: templates/js/translated/stock.js:2212 msgid "Stock item is destroyed" msgstr "" -#: templates/js/translated/stock.js:2215 +#: templates/js/translated/stock.js:2216 #: templates/js/translated/table_filters.js:357 msgid "Depleted" msgstr "" -#: templates/js/translated/stock.js:2380 +#: templates/js/translated/stock.js:2381 msgid "Supplier part not specified" msgstr "" -#: templates/js/translated/stock.js:2427 +#: templates/js/translated/stock.js:2428 msgid "Stock Value" msgstr "" -#: templates/js/translated/stock.js:2555 +#: templates/js/translated/stock.js:2556 msgid "No stock items matching query" msgstr "" -#: templates/js/translated/stock.js:2658 +#: templates/js/translated/stock.js:2659 msgid "stock locations" msgstr "" -#: templates/js/translated/stock.js:2813 +#: templates/js/translated/stock.js:2814 msgid "Load Sublocations" msgstr "" -#: templates/js/translated/stock.js:2930 +#: templates/js/translated/stock.js:2931 msgid "Details" msgstr "" -#: templates/js/translated/stock.js:2934 +#: templates/js/translated/stock.js:2935 msgid "No changes" msgstr "" -#: templates/js/translated/stock.js:2946 +#: templates/js/translated/stock.js:2947 msgid "Part information unavailable" msgstr "" -#: templates/js/translated/stock.js:2968 +#: templates/js/translated/stock.js:2969 msgid "Location no longer exists" msgstr "" -#: templates/js/translated/stock.js:2985 +#: templates/js/translated/stock.js:2986 msgid "Build order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3000 +#: templates/js/translated/stock.js:3001 msgid "Purchase order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3017 +#: templates/js/translated/stock.js:3018 msgid "Sales Order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3034 +#: templates/js/translated/stock.js:3035 msgid "Return Order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3053 +#: templates/js/translated/stock.js:3054 msgid "Customer no longer exists" msgstr "" -#: templates/js/translated/stock.js:3071 +#: templates/js/translated/stock.js:3072 msgid "Stock item no longer exists" msgstr "" -#: templates/js/translated/stock.js:3089 +#: templates/js/translated/stock.js:3090 msgid "Added" msgstr "" -#: templates/js/translated/stock.js:3097 +#: templates/js/translated/stock.js:3098 msgid "Removed" msgstr "" -#: templates/js/translated/stock.js:3169 +#: templates/js/translated/stock.js:3170 msgid "No installed items" msgstr "" -#: templates/js/translated/stock.js:3223 templates/js/translated/stock.js:3259 +#: templates/js/translated/stock.js:3224 templates/js/translated/stock.js:3260 msgid "Uninstall Stock Item" msgstr "" -#: templates/js/translated/stock.js:3280 +#: templates/js/translated/stock.js:3281 msgid "Select stock item to uninstall" msgstr "" -#: templates/js/translated/stock.js:3301 +#: templates/js/translated/stock.js:3302 msgid "Install another stock item into this item" msgstr "" -#: templates/js/translated/stock.js:3302 +#: templates/js/translated/stock.js:3303 msgid "Stock items can only be installed if they meet the following criteria" msgstr "" -#: templates/js/translated/stock.js:3304 +#: templates/js/translated/stock.js:3305 msgid "The Stock Item links to a Part which is the BOM for this Stock Item" msgstr "" -#: templates/js/translated/stock.js:3305 +#: templates/js/translated/stock.js:3306 msgid "The Stock Item is currently available in stock" msgstr "" -#: templates/js/translated/stock.js:3306 +#: templates/js/translated/stock.js:3307 msgid "The Stock Item is not already installed in another item" msgstr "" -#: templates/js/translated/stock.js:3307 +#: templates/js/translated/stock.js:3308 msgid "The Stock Item is tracked by either a batch code or serial number" msgstr "" -#: templates/js/translated/stock.js:3320 +#: templates/js/translated/stock.js:3321 msgid "Select part to install" msgstr "" -#: templates/js/translated/stock.js:3383 +#: templates/js/translated/stock.js:3384 msgid "Select one or more stock items" msgstr "" -#: templates/js/translated/stock.js:3396 +#: templates/js/translated/stock.js:3397 msgid "Selected stock items" msgstr "" -#: templates/js/translated/stock.js:3400 +#: templates/js/translated/stock.js:3401 msgid "Change Stock Status" msgstr "" -#: templates/js/translated/stock.js:3477 +#: templates/js/translated/stock.js:3478 msgid "This week" msgstr "" -#: templates/js/translated/stock.js:3485 +#: templates/js/translated/stock.js:3486 msgid "This month" msgstr "" @@ -14734,10 +15053,6 @@ msgstr "" msgid "Show items which are in production" msgstr "" -#: templates/js/translated/table_filters.js:372 -msgid "Include Variants" -msgstr "" - #: templates/js/translated/table_filters.js:373 msgid "Include stock items for variant parts" msgstr "" @@ -15012,10 +15327,6 @@ msgstr "" msgid "An error occurred while attempting to login via your social network account." msgstr "" -#: templates/socialaccount/authentication_error.html:13 -msgid "Contact your system administrator for further information." -msgstr "" - #: templates/socialaccount/login.html:13 #, python-format msgid "Connect %(provider)s" @@ -15141,27 +15452,27 @@ msgstr "Evet" msgid "No" msgstr "Hayır" -#: users/admin.py:104 +#: users/admin.py:101 msgid "Users" msgstr "Kullanıcılar" -#: users/admin.py:105 +#: users/admin.py:102 msgid "Select which users are assigned to this group" msgstr "Bu gruba atanacak kullanıcıyı seçin" -#: users/admin.py:249 +#: users/admin.py:246 msgid "The following users are members of multiple groups" msgstr "" -#: users/admin.py:283 +#: users/admin.py:280 msgid "Personal info" msgstr "Kullanıcı bilgisi" -#: users/admin.py:285 +#: users/admin.py:282 msgid "Permissions" msgstr "Yetkiler" -#: users/admin.py:288 +#: users/admin.py:285 msgid "Important dates" msgstr "Önemli tarihler" @@ -15205,35 +15516,35 @@ msgstr "" msgid "Revoked" msgstr "" -#: users/models.py:379 +#: users/models.py:381 msgid "Permission set" msgstr "İzinleri ayarla" -#: users/models.py:388 +#: users/models.py:390 msgid "Group" msgstr "Grup" -#: users/models.py:392 +#: users/models.py:394 msgid "View" msgstr "Görünüm" -#: users/models.py:392 +#: users/models.py:394 msgid "Permission to view items" msgstr "Parçayı görüntüleme izni" -#: users/models.py:396 +#: users/models.py:398 msgid "Permission to add items" msgstr "Parça ekleme izni" -#: users/models.py:400 +#: users/models.py:402 msgid "Change" msgstr "Değiştir" -#: users/models.py:402 +#: users/models.py:404 msgid "Permissions to edit items" msgstr "Parçaları düzenleme izni" -#: users/models.py:408 +#: users/models.py:410 msgid "Permission to delete items" msgstr "Parçaları silme izni" diff --git a/src/backend/InvenTree/locale/uk/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/uk/LC_MESSAGES/django.po index a81078dc8c..3368134094 100644 --- a/src/backend/InvenTree/locale/uk/LC_MESSAGES/django.po +++ b/src/backend/InvenTree/locale/uk/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-08-20 01:22+0000\n" -"PO-Revision-Date: 2024-08-20 19:51\n" +"POT-Creation-Date: 2024-11-04 03:11+0000\n" +"PO-Revision-Date: 2024-11-04 03:14\n" "Last-Translator: \n" "Language-Team: Ukrainian\n" "Language: uk_UA\n" @@ -14,81 +14,89 @@ msgstr "" "X-Crowdin-Project: inventree\n" "X-Crowdin-Project-ID: 452300\n" "X-Crowdin-Language: uk\n" -"X-Crowdin-File: /[inventree.InvenTree] l10/src/backend/InvenTree/locale/en/LC_MESSAGES/django.po\n" -"X-Crowdin-File-ID: 216\n" +"X-Crowdin-File: /src/backend/InvenTree/locale/en/LC_MESSAGES/django.po\n" +"X-Crowdin-File-ID: 250\n" -#: InvenTree/api.py:269 +#: InvenTree/api.py:270 msgid "API endpoint not found" msgstr "Кінцева точка API не знайдена" -#: InvenTree/api.py:502 +#: InvenTree/api.py:387 +msgid "Invalid items list provided" +msgstr "" + +#: InvenTree/api.py:396 +msgid "Invalid filters provided" +msgstr "" + +#: InvenTree/api.py:401 +msgid "No items found to delete" +msgstr "" + +#: InvenTree/api.py:515 msgid "User does not have permission to view this model" msgstr "У користувача немає дозволу на перегляд цієї моделі" -#: InvenTree/conversion.py:160 +#: InvenTree/conversion.py:161 #, python-brace-format msgid "Invalid unit provided ({unit})" msgstr "" -#: InvenTree/conversion.py:177 +#: InvenTree/conversion.py:178 msgid "No value provided" msgstr "Значення не вказане" -#: InvenTree/conversion.py:204 +#: InvenTree/conversion.py:205 #, python-brace-format msgid "Could not convert {original} to {unit}" msgstr "Не вдалося перетворити {original} на {unit}" -#: InvenTree/conversion.py:206 -msgid "Invalid quantity supplied" -msgstr "Невірна кількість поставляється" +#: InvenTree/conversion.py:207 InvenTree/conversion.py:221 +#: InvenTree/helpers.py:505 order/models.py:589 order/models.py:832 +msgid "Invalid quantity provided" +msgstr "Невірна кількість" -#: InvenTree/conversion.py:220 -#, python-brace-format -msgid "Invalid quantity supplied ({exc})" -msgstr "Невірна кількість поставляється ({exc})" - -#: InvenTree/exceptions.py:108 +#: InvenTree/exceptions.py:104 msgid "Error details can be found in the admin panel" msgstr "Деталі помилки можна знайти на панелі адміністратора" -#: InvenTree/fields.py:136 +#: InvenTree/fields.py:135 msgid "Enter date" msgstr "Введіть дату" -#: InvenTree/fields.py:205 InvenTree/models.py:929 build/serializers.py:468 -#: build/serializers.py:546 build/templates/build/sidebar.html:29 -#: company/models.py:836 +#: InvenTree/fields.py:204 InvenTree/models.py:928 build/serializers.py:512 +#: build/serializers.py:590 build/templates/build/sidebar.html:29 +#: company/models.py:833 #: company/templates/company/manufacturer_part_sidebar.html:11 #: company/templates/company/sidebar.html:37 -#: company/templates/company/supplier_part_sidebar.html:11 order/models.py:1380 +#: company/templates/company/supplier_part_sidebar.html:11 order/models.py:1397 #: order/templates/order/po_sidebar.html:11 #: order/templates/order/return_order_sidebar.html:9 #: order/templates/order/so_sidebar.html:17 part/admin.py:59 -#: part/models.py:3297 part/templates/part/part_sidebar.html:65 +#: part/models.py:3348 part/templates/part/part_sidebar.html:65 #: report/templates/report/inventree_build_order_report.html:172 -#: stock/admin.py:230 stock/models.py:2375 stock/models.py:2563 -#: stock/serializers.py:698 stock/serializers.py:856 stock/serializers.py:982 -#: stock/serializers.py:1032 stock/serializers.py:1343 -#: stock/serializers.py:1432 stock/serializers.py:1597 +#: stock/admin.py:231 stock/models.py:2494 stock/models.py:2679 +#: stock/serializers.py:725 stock/serializers.py:887 stock/serializers.py:1013 +#: stock/serializers.py:1063 stock/serializers.py:1374 +#: stock/serializers.py:1463 stock/serializers.py:1628 #: stock/templates/stock/stock_sidebar.html:25 #: templates/js/translated/barcode.js:143 templates/js/translated/bom.js:1265 -#: templates/js/translated/company.js:1684 templates/js/translated/order.js:372 +#: templates/js/translated/company.js:1685 templates/js/translated/order.js:372 #: templates/js/translated/part.js:1087 -#: templates/js/translated/purchase_order.js:2270 +#: templates/js/translated/purchase_order.js:2254 #: templates/js/translated/return_order.js:774 -#: templates/js/translated/sales_order.js:1103 -#: templates/js/translated/sales_order.js:2018 -#: templates/js/translated/stock.js:1621 templates/js/translated/stock.js:2513 +#: templates/js/translated/sales_order.js:1069 +#: templates/js/translated/sales_order.js:1999 +#: templates/js/translated/stock.js:1621 templates/js/translated/stock.js:2514 msgid "Notes" msgstr "Нотатки" -#: InvenTree/format.py:164 +#: InvenTree/format.py:162 #, python-brace-format msgid "Value '{name}' does not appear in pattern format" msgstr "" -#: InvenTree/format.py:175 +#: InvenTree/format.py:173 msgid "Provided value does not match required pattern: " msgstr "" @@ -132,397 +140,409 @@ msgstr "" msgid "The provided primary email address is not valid." msgstr "Вказана основна адреса електронної пошти недійсна." -#: InvenTree/forms.py:274 +#: InvenTree/forms.py:273 msgid "The provided email domain is not approved." msgstr "Наданий домен електронної пошти не затверджено." -#: InvenTree/forms.py:403 +#: InvenTree/forms.py:402 msgid "Registration is disabled." msgstr "Реєстрацію вимкнено." -#: InvenTree/helpers.py:491 order/models.py:567 order/models.py:810 -msgid "Invalid quantity provided" -msgstr "Невірна кількість" +#: InvenTree/helpers.py:509 +msgid "Cannot serialize more than 1000 items at once" +msgstr "" -#: InvenTree/helpers.py:499 +#: InvenTree/helpers.py:515 msgid "Empty serial number string" msgstr "Пустий серійний номер" -#: InvenTree/helpers.py:528 +#: InvenTree/helpers.py:544 msgid "Duplicate serial" msgstr "" -#: InvenTree/helpers.py:560 InvenTree/helpers.py:603 +#: InvenTree/helpers.py:576 InvenTree/helpers.py:619 InvenTree/helpers.py:637 +#: InvenTree/helpers.py:644 InvenTree/helpers.py:663 #, python-brace-format -msgid "Invalid group range: {group}" +msgid "Invalid group: {group}" msgstr "" -#: InvenTree/helpers.py:591 +#: InvenTree/helpers.py:607 #, python-brace-format msgid "Group range {group} exceeds allowed quantity ({expected_quantity})" msgstr "" -#: InvenTree/helpers.py:621 InvenTree/helpers.py:628 InvenTree/helpers.py:647 -#, python-brace-format -msgid "Invalid group sequence: {group}" -msgstr "" - -#: InvenTree/helpers.py:657 +#: InvenTree/helpers.py:673 msgid "No serial numbers found" msgstr "" -#: InvenTree/helpers.py:662 +#: InvenTree/helpers.py:678 msgid "Number of unique serial numbers ({len(serials)}) must match quantity ({expected_quantity})" msgstr "" -#: InvenTree/helpers.py:780 +#: InvenTree/helpers.py:796 msgid "Remove HTML tags from this value" msgstr "" -#: InvenTree/helpers_model.py:133 +#: InvenTree/helpers.py:881 +msgid "Data contains prohibited markdown content" +msgstr "" + +#: InvenTree/helpers_model.py:130 msgid "Connection error" msgstr "" -#: InvenTree/helpers_model.py:138 InvenTree/helpers_model.py:145 +#: InvenTree/helpers_model.py:135 InvenTree/helpers_model.py:142 msgid "Server responded with invalid status code" msgstr "" -#: InvenTree/helpers_model.py:141 +#: InvenTree/helpers_model.py:138 msgid "Exception occurred" msgstr "" -#: InvenTree/helpers_model.py:151 +#: InvenTree/helpers_model.py:148 msgid "Server responded with invalid Content-Length value" msgstr "" -#: InvenTree/helpers_model.py:154 +#: InvenTree/helpers_model.py:151 msgid "Image size is too large" msgstr "" -#: InvenTree/helpers_model.py:166 +#: InvenTree/helpers_model.py:163 msgid "Image download exceeded maximum size" msgstr "" -#: InvenTree/helpers_model.py:171 +#: InvenTree/helpers_model.py:168 msgid "Remote server returned empty response" msgstr "" -#: InvenTree/helpers_model.py:179 +#: InvenTree/helpers_model.py:176 msgid "Supplied URL is not a valid image file" msgstr "" -#: InvenTree/locales.py:18 +#: InvenTree/locales.py:20 msgid "Arabic" msgstr "" -#: InvenTree/locales.py:19 +#: InvenTree/locales.py:21 msgid "Bulgarian" msgstr "" -#: InvenTree/locales.py:20 +#: InvenTree/locales.py:22 msgid "Czech" msgstr "" -#: InvenTree/locales.py:21 +#: InvenTree/locales.py:23 msgid "Danish" msgstr "" -#: InvenTree/locales.py:22 +#: InvenTree/locales.py:24 msgid "German" msgstr "" -#: InvenTree/locales.py:23 +#: InvenTree/locales.py:25 msgid "Greek" msgstr "" -#: InvenTree/locales.py:24 +#: InvenTree/locales.py:26 msgid "English" msgstr "" -#: InvenTree/locales.py:25 +#: InvenTree/locales.py:27 msgid "Spanish" msgstr "" -#: InvenTree/locales.py:26 +#: InvenTree/locales.py:28 msgid "Spanish (Mexican)" msgstr "" -#: InvenTree/locales.py:27 +#: InvenTree/locales.py:29 msgid "Estonian" msgstr "" -#: InvenTree/locales.py:28 +#: InvenTree/locales.py:30 msgid "Farsi / Persian" msgstr "" -#: InvenTree/locales.py:29 +#: InvenTree/locales.py:31 msgid "Finnish" msgstr "" -#: InvenTree/locales.py:30 +#: InvenTree/locales.py:32 msgid "French" msgstr "" -#: InvenTree/locales.py:31 +#: InvenTree/locales.py:33 msgid "Hebrew" msgstr "" -#: InvenTree/locales.py:32 +#: InvenTree/locales.py:34 msgid "Hindi" msgstr "" -#: InvenTree/locales.py:33 +#: InvenTree/locales.py:35 msgid "Hungarian" msgstr "" -#: InvenTree/locales.py:34 +#: InvenTree/locales.py:36 msgid "Italian" msgstr "" -#: InvenTree/locales.py:35 +#: InvenTree/locales.py:37 msgid "Japanese" msgstr "" -#: InvenTree/locales.py:36 +#: InvenTree/locales.py:38 msgid "Korean" msgstr "" -#: InvenTree/locales.py:37 -msgid "Latvian" -msgstr "" - -#: InvenTree/locales.py:38 -msgid "Dutch" -msgstr "" - #: InvenTree/locales.py:39 -msgid "Norwegian" +msgid "Lithuanian" msgstr "" #: InvenTree/locales.py:40 -msgid "Polish" +msgid "Latvian" msgstr "" #: InvenTree/locales.py:41 -msgid "Portuguese" +msgid "Dutch" msgstr "" #: InvenTree/locales.py:42 -msgid "Portuguese (Brazilian)" +msgid "Norwegian" msgstr "" #: InvenTree/locales.py:43 -msgid "Romanian" +msgid "Polish" msgstr "" #: InvenTree/locales.py:44 -msgid "Russian" +msgid "Portuguese" msgstr "" #: InvenTree/locales.py:45 -msgid "Slovak" +msgid "Portuguese (Brazilian)" msgstr "" #: InvenTree/locales.py:46 -msgid "Slovenian" +msgid "Romanian" msgstr "" #: InvenTree/locales.py:47 -msgid "Serbian" +msgid "Russian" msgstr "" #: InvenTree/locales.py:48 -msgid "Swedish" +msgid "Slovak" msgstr "" #: InvenTree/locales.py:49 +msgid "Slovenian" +msgstr "" + +#: InvenTree/locales.py:50 +msgid "Serbian" +msgstr "" + +#: InvenTree/locales.py:51 +msgid "Swedish" +msgstr "" + +#: InvenTree/locales.py:52 msgid "Thai" msgstr "Тайська" -#: InvenTree/locales.py:50 +#: InvenTree/locales.py:53 msgid "Turkish" msgstr "Турецька" -#: InvenTree/locales.py:51 +#: InvenTree/locales.py:54 msgid "Ukrainian" msgstr "Українська" -#: InvenTree/locales.py:52 +#: InvenTree/locales.py:55 msgid "Vietnamese" msgstr "В’єтнамська" -#: InvenTree/locales.py:53 +#: InvenTree/locales.py:56 msgid "Chinese (Simplified)" msgstr "Китайська (спрощена)" -#: InvenTree/locales.py:54 +#: InvenTree/locales.py:57 msgid "Chinese (Traditional)" msgstr "Китайська (Традиційна)" #: InvenTree/magic_login.py:28 -#, python-brace-format -msgid "[{site_name}] Log in to the app" -msgstr "[{site_name}] Увійти в додаток" +msgid "Log in to the app" +msgstr "" -#: InvenTree/magic_login.py:38 InvenTree/serializers.py:415 -#: company/models.py:136 company/templates/company/company_base.html:138 +#: InvenTree/magic_login.py:38 InvenTree/serializers.py:416 +#: company/models.py:133 company/templates/company/company_base.html:138 #: templates/InvenTree/settings/user.html:49 -#: templates/js/translated/company.js:677 +#: templates/js/translated/company.js:678 msgid "Email" msgstr "" -#: InvenTree/models.py:103 +#: InvenTree/models.py:105 msgid "Error running plugin validation" msgstr "" -#: InvenTree/models.py:172 +#: InvenTree/models.py:174 msgid "Metadata must be a python dict object" msgstr "" -#: InvenTree/models.py:178 +#: InvenTree/models.py:180 msgid "Plugin Metadata" msgstr "" -#: InvenTree/models.py:179 +#: InvenTree/models.py:181 msgid "JSON metadata field, for use by external plugins" msgstr "" -#: InvenTree/models.py:409 +#: InvenTree/models.py:408 msgid "Improperly formatted pattern" msgstr "" -#: InvenTree/models.py:416 +#: InvenTree/models.py:415 msgid "Unknown format key specified" msgstr "" -#: InvenTree/models.py:422 +#: InvenTree/models.py:421 msgid "Missing required format key" msgstr "" -#: InvenTree/models.py:433 +#: InvenTree/models.py:432 msgid "Reference field cannot be empty" msgstr "" -#: InvenTree/models.py:441 +#: InvenTree/models.py:440 msgid "Reference must match required pattern" msgstr "" -#: InvenTree/models.py:472 +#: InvenTree/models.py:471 msgid "Reference number is too large" msgstr "" -#: InvenTree/models.py:723 +#: InvenTree/models.py:722 msgid "Duplicate names cannot exist under the same parent" msgstr "" -#: InvenTree/models.py:740 +#: InvenTree/models.py:739 msgid "Invalid choice" msgstr "" -#: InvenTree/models.py:770 common/models.py:2702 common/models.py:3132 -#: common/serializers.py:412 company/models.py:593 machine/models.py:24 -#: part/models.py:983 part/models.py:3764 plugin/models.py:51 -#: report/models.py:149 stock/models.py:77 +#: InvenTree/models.py:769 common/models.py:2766 common/models.py:3193 +#: common/models.py:3413 common/serializers.py:460 company/models.py:590 +#: machine/models.py:24 part/models.py:1044 part/models.py:3815 +#: plugin/models.py:51 report/models.py:149 stock/models.py:83 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/notifications.html:17 #: templates/InvenTree/settings/plugin.html:83 #: templates/InvenTree/settings/plugin_settings.html:22 #: templates/InvenTree/settings/settings_staff_js.html:67 #: templates/InvenTree/settings/settings_staff_js.html:454 -#: templates/js/translated/company.js:676 -#: templates/js/translated/company.js:724 -#: templates/js/translated/company.js:913 -#: templates/js/translated/company.js:1165 -#: templates/js/translated/company.js:1413 templates/js/translated/part.js:1193 +#: templates/js/translated/company.js:677 +#: templates/js/translated/company.js:725 +#: templates/js/translated/company.js:914 +#: templates/js/translated/company.js:1166 +#: templates/js/translated/company.js:1414 templates/js/translated/part.js:1193 #: templates/js/translated/part.js:1481 templates/js/translated/part.js:1617 -#: templates/js/translated/part.js:2768 templates/js/translated/stock.js:2801 +#: templates/js/translated/part.js:2768 templates/js/translated/stock.js:2802 msgid "Name" msgstr "" -#: InvenTree/models.py:776 build/models.py:250 -#: build/templates/build/detail.html:24 common/models.py:156 -#: company/models.py:521 company/models.py:827 +#: InvenTree/models.py:775 build/models.py:251 +#: build/templates/build/detail.html:24 common/models.py:159 +#: company/models.py:518 company/models.py:824 #: company/templates/company/company_base.html:77 #: company/templates/company/manufacturer_part.html:75 -#: company/templates/company/supplier_part.html:107 order/models.py:288 -#: order/models.py:1413 part/admin.py:305 part/admin.py:411 part/models.py:1006 -#: part/models.py:3779 part/templates/part/category.html:79 -#: part/templates/part/part_base.html:170 +#: company/templates/company/supplier_part.html:108 order/models.py:295 +#: order/models.py:1430 part/admin.py:305 part/admin.py:411 part/models.py:1067 +#: part/models.py:3830 part/templates/part/category.html:79 +#: part/templates/part/part_base.html:171 #: part/templates/part/part_scheduling.html:12 report/models.py:155 -#: report/models.py:509 report/models.py:535 +#: report/models.py:517 report/models.py:543 #: report/templates/report/inventree_build_order_report.html:117 -#: stock/admin.py:54 stock/models.py:83 stock/templates/stock/location.html:122 +#: stock/admin.py:54 stock/models.py:89 stock/templates/stock/location.html:123 #: templates/InvenTree/settings/notifications.html:19 #: templates/InvenTree/settings/plugin_settings.html:27 #: templates/InvenTree/settings/settings_staff_js.html:170 #: templates/InvenTree/settings/settings_staff_js.html:459 #: templates/js/translated/bom.js:633 templates/js/translated/bom.js:963 -#: templates/js/translated/build.js:2311 templates/js/translated/company.js:519 -#: templates/js/translated/company.js:1330 -#: templates/js/translated/company.js:1641 templates/js/translated/index.js:119 +#: templates/js/translated/build.js:2314 templates/js/translated/company.js:520 +#: templates/js/translated/company.js:1331 +#: templates/js/translated/company.js:1642 templates/js/translated/index.js:119 #: templates/js/translated/order.js:323 templates/js/translated/part.js:1245 #: templates/js/translated/part.js:1490 templates/js/translated/part.js:1628 #: templates/js/translated/part.js:1965 templates/js/translated/part.js:2361 #: templates/js/translated/part.js:2803 templates/js/translated/part.js:2915 #: templates/js/translated/plugin.js:80 -#: templates/js/translated/purchase_order.js:1776 -#: templates/js/translated/purchase_order.js:1919 -#: templates/js/translated/purchase_order.js:2092 +#: templates/js/translated/purchase_order.js:1760 +#: templates/js/translated/purchase_order.js:1903 +#: templates/js/translated/purchase_order.js:2076 #: templates/js/translated/return_order.js:313 -#: templates/js/translated/sales_order.js:838 -#: templates/js/translated/sales_order.js:1848 -#: templates/js/translated/stock.js:1600 templates/js/translated/stock.js:2143 -#: templates/js/translated/stock.js:2832 templates/js/translated/stock.js:2915 +#: templates/js/translated/sales_order.js:797 +#: templates/js/translated/sales_order.js:1829 +#: templates/js/translated/stock.js:1600 templates/js/translated/stock.js:2144 +#: templates/js/translated/stock.js:2833 templates/js/translated/stock.js:2916 msgid "Description" msgstr "" -#: InvenTree/models.py:777 stock/models.py:84 +#: InvenTree/models.py:776 stock/models.py:90 msgid "Description (optional)" msgstr "" -#: InvenTree/models.py:792 templates/js/translated/part.js:2812 -#: templates/js/translated/stock.js:2841 +#: InvenTree/models.py:791 common/models.py:3546 +#: templates/js/translated/part.js:2812 templates/js/translated/stock.js:2842 msgid "Path" msgstr "Шлях" -#: InvenTree/models.py:929 +#: InvenTree/models.py:928 msgid "Markdown notes (optional)" msgstr "" -#: InvenTree/models.py:960 +#: InvenTree/models.py:959 msgid "Barcode Data" msgstr "" -#: InvenTree/models.py:961 +#: InvenTree/models.py:960 msgid "Third party barcode data" msgstr "" -#: InvenTree/models.py:967 +#: InvenTree/models.py:966 msgid "Barcode Hash" msgstr "" -#: InvenTree/models.py:968 +#: InvenTree/models.py:967 msgid "Unique hash of barcode data" msgstr "" -#: InvenTree/models.py:1035 +#: InvenTree/models.py:1034 msgid "Existing barcode found" msgstr "" -#: InvenTree/models.py:1078 +#: InvenTree/models.py:1112 +msgid "Task Failure" +msgstr "" + +#: InvenTree/models.py:1114 +#, python-brace-format +msgid "Background worker task '{instance.func}' failed after {n} attempts" +msgstr "" + +#: InvenTree/models.py:1142 msgid "Server Error" msgstr "" -#: InvenTree/models.py:1079 +#: InvenTree/models.py:1143 msgid "An error has been logged by the server." msgstr "" -#: InvenTree/serializers.py:63 part/models.py:4387 +#: InvenTree/serializers.py:63 part/models.py:4444 msgid "Must be a valid number" msgstr "" -#: InvenTree/serializers.py:100 company/models.py:186 -#: company/templates/company/company_base.html:112 part/models.py:3115 +#: InvenTree/serializers.py:100 company/models.py:183 +#: company/templates/company/company_base.html:112 part/models.py:3166 #: templates/InvenTree/settings/settings_staff_js.html:44 #: templates/currency_data.html:5 msgid "Currency" @@ -532,15 +552,15 @@ msgstr "" msgid "Select currency from available options" msgstr "" -#: InvenTree/serializers.py:407 templates/InvenTree/settings/user.html:33 +#: InvenTree/serializers.py:405 templates/InvenTree/settings/user.html:33 msgid "Username" msgstr "" -#: InvenTree/serializers.py:409 templates/InvenTree/settings/user.html:37 +#: InvenTree/serializers.py:408 templates/InvenTree/settings/user.html:37 msgid "First Name" msgstr "Ім`я" -#: InvenTree/serializers.py:409 +#: InvenTree/serializers.py:408 msgid "First name of the user" msgstr "" @@ -552,30 +572,30 @@ msgstr "Прізвище" msgid "Last name of the user" msgstr "" -#: InvenTree/serializers.py:415 +#: InvenTree/serializers.py:416 msgid "Email address of the user" msgstr "Адреса електронної пошти користувача" -#: InvenTree/serializers.py:439 +#: InvenTree/serializers.py:441 msgid "Staff" msgstr "Персонал" -#: InvenTree/serializers.py:439 +#: InvenTree/serializers.py:441 msgid "Does this user have staff permissions" msgstr "" -#: InvenTree/serializers.py:442 +#: InvenTree/serializers.py:445 msgid "Superuser" msgstr "" -#: InvenTree/serializers.py:442 +#: InvenTree/serializers.py:445 msgid "Is this user a superuser" msgstr "" -#: InvenTree/serializers.py:445 common/models.py:2707 company/models.py:163 -#: company/models.py:801 machine/models.py:39 part/admin.py:88 -#: part/models.py:1189 plugin/models.py:66 -#: templates/js/translated/company.js:523 +#: InvenTree/serializers.py:449 common/models.py:2771 company/models.py:160 +#: company/models.py:798 machine/models.py:39 part/admin.py:88 +#: part/models.py:1250 plugin/models.py:66 +#: templates/js/translated/company.js:524 #: templates/js/translated/table_filters.js:134 #: templates/js/translated/table_filters.js:226 #: templates/js/translated/table_filters.js:513 @@ -585,230 +605,229 @@ msgstr "" msgid "Active" msgstr "" -#: InvenTree/serializers.py:445 +#: InvenTree/serializers.py:449 msgid "Is this user account active" msgstr "" -#: InvenTree/serializers.py:463 +#: InvenTree/serializers.py:467 msgid "You do not have permission to change this user role." msgstr "" -#: InvenTree/serializers.py:475 +#: InvenTree/serializers.py:503 msgid "Only superusers can create new users" msgstr "" -#: InvenTree/serializers.py:494 +#: InvenTree/serializers.py:523 msgid "Your account has been created." msgstr "" -#: InvenTree/serializers.py:496 +#: InvenTree/serializers.py:525 msgid "Please use the password reset function to login" msgstr "" -#: InvenTree/serializers.py:503 +#: InvenTree/serializers.py:531 msgid "Welcome to InvenTree" msgstr "" -#: InvenTree/serializers.py:561 +#: InvenTree/serializers.py:594 msgid "Invalid value" msgstr "" -#: InvenTree/serializers.py:581 importer/models.py:63 +#: InvenTree/serializers.py:614 importer/models.py:64 msgid "Data File" msgstr "" -#: InvenTree/serializers.py:582 +#: InvenTree/serializers.py:615 msgid "Select data file for upload" msgstr "" -#: InvenTree/serializers.py:599 -msgid "Unsupported file type" +#: InvenTree/serializers.py:632 common/files.py:63 +msgid "Unsupported file format" msgstr "" -#: InvenTree/serializers.py:605 +#: InvenTree/serializers.py:638 msgid "File is too large" msgstr "" -#: InvenTree/serializers.py:626 +#: InvenTree/serializers.py:659 msgid "No columns found in file" msgstr "" -#: InvenTree/serializers.py:629 +#: InvenTree/serializers.py:662 msgid "No data rows found in file" msgstr "" -#: InvenTree/serializers.py:742 +#: InvenTree/serializers.py:774 msgid "No data rows provided" msgstr "" -#: InvenTree/serializers.py:745 +#: InvenTree/serializers.py:777 msgid "No data columns supplied" msgstr "" -#: InvenTree/serializers.py:812 +#: InvenTree/serializers.py:843 #, python-brace-format msgid "Missing required column: '{name}'" msgstr "" -#: InvenTree/serializers.py:821 +#: InvenTree/serializers.py:852 #, python-brace-format msgid "Duplicate column: '{col}'" msgstr "" -#: InvenTree/serializers.py:861 +#: InvenTree/serializers.py:891 msgid "Remote Image" msgstr "" -#: InvenTree/serializers.py:862 +#: InvenTree/serializers.py:892 msgid "URL of remote image file" msgstr "" -#: InvenTree/serializers.py:880 +#: InvenTree/serializers.py:910 msgid "Downloading images from remote URL is not enabled" msgstr "" -#: InvenTree/status.py:66 part/serializers.py:1246 -msgid "Background worker check failed" -msgstr "" - -#: InvenTree/status.py:70 -msgid "Email backend not configured" -msgstr "" - -#: InvenTree/status.py:73 -msgid "InvenTree system health checks failed" +#: InvenTree/serializers.py:917 +msgid "Failed to download image from remote URL" msgstr "" #: InvenTree/templatetags/inventree_extras.py:184 msgid "Unknown database" msgstr "" -#: InvenTree/validators.py:32 InvenTree/validators.py:34 +#: InvenTree/validators.py:32 msgid "Invalid physical unit" msgstr "" -#: InvenTree/validators.py:40 +#: InvenTree/validators.py:38 msgid "Not a valid currency code" msgstr "" -#: InvenTree/validators.py:118 InvenTree/validators.py:134 +#: InvenTree/validators.py:115 InvenTree/validators.py:131 msgid "Overage value must not be negative" msgstr "" -#: InvenTree/validators.py:136 +#: InvenTree/validators.py:133 msgid "Overage must not exceed 100%" msgstr "" -#: InvenTree/validators.py:142 +#: InvenTree/validators.py:139 msgid "Invalid value for overage" msgstr "" -#: InvenTree/views.py:400 templates/InvenTree/settings/user.html:23 +#: InvenTree/views.py:399 templates/InvenTree/settings/user.html:23 msgid "Edit User Information" msgstr "" -#: InvenTree/views.py:412 templates/InvenTree/settings/user.html:20 +#: InvenTree/views.py:411 templates/InvenTree/settings/user.html:20 msgid "Set Password" msgstr "" -#: InvenTree/views.py:434 +#: InvenTree/views.py:433 msgid "Password fields must match" msgstr "" -#: InvenTree/views.py:442 +#: InvenTree/views.py:441 msgid "Wrong password provided" msgstr "" -#: InvenTree/views.py:650 templates/navbar.html:160 +#: InvenTree/views.py:645 templates/navbar.html:160 msgid "System Information" msgstr "" -#: InvenTree/views.py:657 templates/navbar.html:171 +#: InvenTree/views.py:652 templates/navbar.html:171 msgid "About InvenTree" msgstr "" -#: build/api.py:51 part/api.py:156 stock/api.py:343 -msgid "Cascade" -msgstr "" - -#: build/api.py:64 build/models.py:261 -#: build/templates/build/build_base.html:191 +#: build/api.py:54 build/models.py:262 +#: build/templates/build/build_base.html:192 #: build/templates/build/detail.html:87 msgid "Parent Build" msgstr "" -#: build/api.py:89 order/api.py:92 templates/js/translated/table_filters.js:101 +#: build/api.py:58 build/api.py:625 order/api.py:396 order/api.py:611 +#: order/api.py:990 order/api.py:1187 +#: templates/js/translated/table_filters.js:372 +msgid "Include Variants" +msgstr "" + +#: build/api.py:93 +msgid "Ancestor Build" +msgstr "" + +#: build/api.py:112 order/api.py:90 +#: templates/js/translated/table_filters.js:101 #: templates/js/translated/table_filters.js:549 #: templates/js/translated/table_filters.js:633 #: templates/js/translated/table_filters.js:674 msgid "Assigned to me" msgstr "" -#: build/api.py:106 build/templates/build/build_base.html:205 +#: build/api.py:129 build/templates/build/build_base.html:206 #: build/templates/build/detail.html:115 #: report/templates/report/inventree_build_order_report.html:152 #: templates/js/translated/table_filters.js:552 msgid "Issued By" msgstr "" -#: build/api.py:125 +#: build/api.py:148 msgid "Assigned To" msgstr "" -#: build/api.py:301 +#: build/api.py:310 msgid "Build must be cancelled before it can be deleted" msgstr "" -#: build/api.py:345 build/serializers.py:1288 part/models.py:4265 +#: build/api.py:354 build/serializers.py:1342 part/models.py:4322 #: templates/js/translated/bom.js:997 templates/js/translated/bom.js:1037 -#: templates/js/translated/build.js:2702 +#: templates/js/translated/build.js:2711 #: templates/js/translated/table_filters.js:197 #: templates/js/translated/table_filters.js:586 msgid "Consumable" msgstr "" -#: build/api.py:346 build/serializers.py:1289 part/models.py:4259 +#: build/api.py:355 build/serializers.py:1343 part/models.py:4316 #: part/templates/part/upload_bom.html:58 templates/js/translated/bom.js:1001 -#: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2693 +#: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2702 #: templates/js/translated/table_filters.js:193 #: templates/js/translated/table_filters.js:222 #: templates/js/translated/table_filters.js:590 msgid "Optional" msgstr "" -#: build/api.py:347 common/models.py:1489 part/admin.py:91 part/admin.py:428 -#: part/models.py:1154 part/serializers.py:1575 +#: build/api.py:356 common/models.py:1558 part/admin.py:91 part/admin.py:428 +#: part/models.py:1215 part/serializers.py:1633 #: templates/js/translated/bom.js:1639 #: templates/js/translated/table_filters.js:337 #: templates/js/translated/table_filters.js:729 msgid "Assembly" msgstr "" -#: build/api.py:348 templates/js/translated/table_filters.js:415 +#: build/api.py:357 templates/js/translated/table_filters.js:415 #: templates/js/translated/table_filters.js:582 msgid "Tracked" msgstr "" -#: build/api.py:349 build/serializers.py:1290 part/models.py:1172 +#: build/api.py:358 build/serializers.py:1344 part/models.py:1233 #: templates/js/translated/table_filters.js:146 #: templates/js/translated/table_filters.js:779 msgid "Testable" msgstr "" -#: build/api.py:351 part/admin.py:144 templates/js/translated/build.js:1917 -#: templates/js/translated/build.js:2820 -#: templates/js/translated/sales_order.js:1965 +#: build/api.py:360 order/api.py:779 part/admin.py:144 +#: templates/js/translated/build.js:1920 templates/js/translated/build.js:2838 +#: templates/js/translated/sales_order.js:1946 #: templates/js/translated/table_filters.js:574 msgid "Allocated" msgstr "" -#: build/api.py:359 company/models.py:891 company/serializers.py:395 -#: company/templates/company/supplier_part.html:114 +#: build/api.py:368 company/models.py:888 company/serializers.py:399 +#: company/templates/company/supplier_part.html:115 #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:17 -#: templates/js/translated/bom.js:1162 templates/js/translated/build.js:2752 +#: templates/js/translated/bom.js:1162 templates/js/translated/build.js:2770 #: templates/js/translated/index.js:123 -#: templates/js/translated/model_renderers.js:235 +#: templates/js/translated/model_renderers.js:238 #: templates/js/translated/part.js:695 templates/js/translated/part.js:697 #: templates/js/translated/part.js:702 #: templates/js/translated/table_filters.js:347 @@ -816,16 +835,68 @@ msgstr "" msgid "Available" msgstr "" -#: build/models.py:86 build/templates/build/build_base.html:9 -#: build/templates/build/build_base.html:27 +#: build/api.py:640 build/models.py:268 build/serializers.py:1330 +#: build/templates/build/build_base.html:106 +#: build/templates/build/detail.html:29 company/models.py:1043 order/api.py:775 +#: order/api.py:1003 order/models.py:1519 order/models.py:1674 +#: order/models.py:1675 part/api.py:1495 part/api.py:1802 part/models.py:419 +#: part/models.py:3177 part/models.py:3321 part/models.py:3469 +#: part/models.py:3490 part/models.py:3512 part/models.py:3648 +#: part/models.py:3995 part/models.py:4158 part/models.py:4288 +#: part/models.py:4654 part/serializers.py:1245 part/serializers.py:1898 +#: part/templates/part/part_app_base.html:8 +#: part/templates/part/part_pricing.html:12 +#: part/templates/part/upload_bom.html:52 +#: report/templates/report/inventree_bill_of_materials_report.html:110 +#: report/templates/report/inventree_bill_of_materials_report.html:137 +#: report/templates/report/inventree_build_order_report.html:109 +#: report/templates/report/inventree_purchase_order_report.html:27 +#: report/templates/report/inventree_return_order_report.html:24 +#: report/templates/report/inventree_sales_order_report.html:27 +#: report/templates/report/inventree_sales_order_shipment_report.html:28 +#: report/templates/report/inventree_stock_location_report.html:102 +#: stock/serializers.py:112 stock/serializers.py:160 stock/serializers.py:456 +#: stock/serializers.py:947 templates/InvenTree/search.html:82 +#: templates/email/build_order_completed.html:17 +#: templates/email/build_order_required_stock.html:17 +#: templates/email/low_stock_notification.html:15 +#: templates/email/overdue_build_order.html:16 +#: templates/js/translated/barcode.js:577 templates/js/translated/bom.js:632 +#: templates/js/translated/bom.js:769 templates/js/translated/bom.js:905 +#: templates/js/translated/build.js:1005 templates/js/translated/build.js:1488 +#: templates/js/translated/build.js:1919 templates/js/translated/build.js:2337 +#: templates/js/translated/build.js:2514 templates/js/translated/company.js:349 +#: templates/js/translated/company.js:1117 +#: templates/js/translated/company.js:1272 +#: templates/js/translated/company.js:1560 templates/js/translated/index.js:109 +#: templates/js/translated/part.js:1950 templates/js/translated/part.js:2022 +#: templates/js/translated/part.js:2330 templates/js/translated/pricing.js:369 +#: templates/js/translated/purchase_order.js:734 +#: templates/js/translated/purchase_order.js:1350 +#: templates/js/translated/purchase_order.js:1902 +#: templates/js/translated/purchase_order.js:2061 +#: templates/js/translated/return_order.js:538 +#: templates/js/translated/return_order.js:708 +#: templates/js/translated/sales_order.js:1199 +#: templates/js/translated/sales_order.js:1608 +#: templates/js/translated/sales_order.js:1813 +#: templates/js/translated/stock.js:682 templates/js/translated/stock.js:848 +#: templates/js/translated/stock.js:1065 templates/js/translated/stock.js:2083 +#: templates/js/translated/stock.js:2942 templates/js/translated/stock.js:3175 +#: templates/js/translated/stock.js:3320 +msgid "Part" +msgstr "Деталь" + +#: build/api.py:662 build/models.py:88 build/templates/build/build_base.html:10 +#: build/templates/build/build_base.html:28 #: report/templates/report/inventree_build_order_report.html:105 -#: stock/serializers.py:84 templates/email/build_order_completed.html:16 +#: stock/serializers.py:85 templates/email/build_order_completed.html:16 #: templates/email/overdue_build_order.html:15 -#: templates/js/translated/build.js:1145 templates/js/translated/stock.js:2976 +#: templates/js/translated/build.js:1148 templates/js/translated/stock.js:2977 msgid "Build Order" msgstr "" -#: build/models.py:87 build/templates/build/build_base.html:13 +#: build/models.py:89 build/templates/build/build_base.html:14 #: build/templates/build/index.html:8 build/templates/build/index.html:12 #: order/templates/order/sales_order_detail.html:111 #: order/templates/order/so_sidebar.html:13 @@ -836,268 +907,216 @@ msgstr "" msgid "Build Orders" msgstr "" -#: build/models.py:135 +#: build/models.py:136 msgid "Assembly BOM has not been validated" msgstr "" -#: build/models.py:142 +#: build/models.py:143 msgid "Build order cannot be created for an inactive part" msgstr "" -#: build/models.py:149 +#: build/models.py:150 msgid "Build order cannot be created for an unlocked part" msgstr "" -#: build/models.py:163 +#: build/models.py:164 msgid "Invalid choice for parent build" msgstr "" -#: build/models.py:174 order/models.py:239 +#: build/models.py:175 order/models.py:236 msgid "Responsible user or group must be specified" msgstr "" -#: build/models.py:180 +#: build/models.py:181 msgid "Build order part cannot be changed" msgstr "" -#: build/models.py:241 +#: build/models.py:242 msgid "Build Order Reference" msgstr "" -#: build/models.py:242 build/serializers.py:1287 order/models.py:467 -#: order/models.py:978 order/models.py:1373 order/models.py:2135 -#: part/admin.py:414 part/models.py:4280 part/templates/part/upload_bom.html:54 +#: build/models.py:243 build/serializers.py:1341 order/models.py:479 +#: order/models.py:1005 order/models.py:1390 order/models.py:2174 +#: part/admin.py:414 part/models.py:4337 part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_bill_of_materials_report.html:139 #: report/templates/report/inventree_purchase_order_report.html:28 #: report/templates/report/inventree_return_order_report.html:26 #: report/templates/report/inventree_sales_order_report.html:28 #: templates/js/translated/bom.js:770 templates/js/translated/bom.js:973 -#: templates/js/translated/build.js:1011 templates/js/translated/build.js:2685 +#: templates/js/translated/build.js:1014 templates/js/translated/build.js:2694 #: templates/js/translated/order.js:316 templates/js/translated/pricing.js:386 -#: templates/js/translated/purchase_order.js:2135 +#: templates/js/translated/purchase_order.js:2119 #: templates/js/translated/return_order.js:727 -#: templates/js/translated/sales_order.js:1854 +#: templates/js/translated/sales_order.js:1835 msgid "Reference" msgstr "" -#: build/models.py:253 +#: build/models.py:254 msgid "Brief description of the build (optional)" msgstr "" -#: build/models.py:262 +#: build/models.py:263 msgid "BuildOrder to which this build is allocated" msgstr "" -#: build/models.py:267 build/serializers.py:1278 -#: build/templates/build/build_base.html:105 -#: build/templates/build/detail.html:29 company/models.py:1046 order/api.py:767 -#: order/models.py:1503 order/models.py:1658 order/models.py:1659 -#: part/api.py:1509 part/api.py:1813 part/models.py:424 part/models.py:3126 -#: part/models.py:3270 part/models.py:3418 part/models.py:3439 -#: part/models.py:3461 part/models.py:3597 part/models.py:3937 -#: part/models.py:4100 part/models.py:4231 part/models.py:4592 -#: part/serializers.py:1192 part/serializers.py:1836 -#: part/templates/part/part_app_base.html:8 -#: part/templates/part/part_pricing.html:12 -#: part/templates/part/upload_bom.html:52 -#: report/templates/report/inventree_bill_of_materials_report.html:110 -#: report/templates/report/inventree_bill_of_materials_report.html:137 -#: report/templates/report/inventree_build_order_report.html:109 -#: report/templates/report/inventree_purchase_order_report.html:27 -#: report/templates/report/inventree_return_order_report.html:24 -#: report/templates/report/inventree_sales_order_report.html:27 -#: report/templates/report/inventree_stock_location_report.html:102 -#: stock/serializers.py:111 stock/serializers.py:159 stock/serializers.py:446 -#: stock/serializers.py:916 templates/InvenTree/search.html:82 -#: templates/email/build_order_completed.html:17 -#: templates/email/build_order_required_stock.html:17 -#: templates/email/low_stock_notification.html:15 -#: templates/email/overdue_build_order.html:16 -#: templates/js/translated/barcode.js:577 templates/js/translated/bom.js:632 -#: templates/js/translated/bom.js:769 templates/js/translated/bom.js:905 -#: templates/js/translated/build.js:1002 templates/js/translated/build.js:1485 -#: templates/js/translated/build.js:1916 templates/js/translated/build.js:2334 -#: templates/js/translated/build.js:2507 templates/js/translated/company.js:348 -#: templates/js/translated/company.js:1116 -#: templates/js/translated/company.js:1271 -#: templates/js/translated/company.js:1559 templates/js/translated/index.js:109 -#: templates/js/translated/part.js:1950 templates/js/translated/part.js:2022 -#: templates/js/translated/part.js:2330 templates/js/translated/pricing.js:369 -#: templates/js/translated/purchase_order.js:751 -#: templates/js/translated/purchase_order.js:1367 -#: templates/js/translated/purchase_order.js:1918 -#: templates/js/translated/purchase_order.js:2077 -#: templates/js/translated/return_order.js:538 -#: templates/js/translated/return_order.js:708 -#: templates/js/translated/sales_order.js:300 -#: templates/js/translated/sales_order.js:1233 -#: templates/js/translated/sales_order.js:1634 -#: templates/js/translated/sales_order.js:1832 -#: templates/js/translated/stock.js:682 templates/js/translated/stock.js:848 -#: templates/js/translated/stock.js:1065 templates/js/translated/stock.js:2082 -#: templates/js/translated/stock.js:2941 templates/js/translated/stock.js:3174 -#: templates/js/translated/stock.js:3319 -msgid "Part" -msgstr "Деталь" - -#: build/models.py:275 +#: build/models.py:274 msgid "Select part to build" msgstr "Обрати деталь для створення" -#: build/models.py:280 +#: build/models.py:279 msgid "Sales Order Reference" msgstr "" -#: build/models.py:284 +#: build/models.py:283 msgid "SalesOrder to which this build is allocated" msgstr "" -#: build/models.py:289 build/serializers.py:1048 -#: templates/js/translated/build.js:1904 -#: templates/js/translated/sales_order.js:1221 +#: build/models.py:288 build/serializers.py:1092 +#: templates/js/translated/build.js:1907 +#: templates/js/translated/sales_order.js:1187 msgid "Source Location" msgstr "" -#: build/models.py:293 +#: build/models.py:292 msgid "Select location to take stock from for this build (leave blank to take from any stock location)" msgstr "" -#: build/models.py:298 +#: build/models.py:297 msgid "Destination Location" msgstr "" -#: build/models.py:302 +#: build/models.py:301 msgid "Select location where the completed items will be stored" msgstr "" -#: build/models.py:306 +#: build/models.py:305 msgid "Build Quantity" msgstr "" -#: build/models.py:309 +#: build/models.py:308 msgid "Number of stock items to build" msgstr "" -#: build/models.py:313 +#: build/models.py:312 msgid "Completed items" msgstr "" -#: build/models.py:315 +#: build/models.py:314 msgid "Number of stock items which have been completed" msgstr "" -#: build/models.py:319 +#: build/models.py:318 msgid "Build Status" msgstr "" -#: build/models.py:323 +#: build/models.py:322 msgid "Build status code" msgstr "" -#: build/models.py:332 build/serializers.py:302 build/serializers.py:1198 -#: order/serializers.py:670 stock/models.py:859 stock/serializers.py:76 -#: stock/serializers.py:1562 templates/js/translated/purchase_order.js:1129 +#: build/models.py:331 build/serializers.py:349 build/serializers.py:1243 +#: order/serializers.py:755 stock/models.py:936 stock/serializers.py:77 +#: stock/serializers.py:1593 templates/js/translated/purchase_order.js:1112 #: templates/js/translated/stock.js:1199 msgid "Batch Code" msgstr "" -#: build/models.py:336 build/serializers.py:303 +#: build/models.py:335 build/serializers.py:350 msgid "Batch code for this build output" msgstr "" -#: build/models.py:339 order/models.py:315 order/serializers.py:126 -#: part/models.py:1229 part/templates/part/part_base.html:319 +#: build/models.py:338 order/models.py:322 order/serializers.py:157 +#: part/models.py:1290 part/templates/part/part_base.html:327 #: templates/js/translated/return_order.js:338 -#: templates/js/translated/sales_order.js:863 +#: templates/js/translated/sales_order.js:822 msgid "Creation Date" msgstr "" -#: build/models.py:343 +#: build/models.py:342 msgid "Target completion date" msgstr "" -#: build/models.py:344 +#: build/models.py:343 msgid "Target date for build completion. Build will be overdue after this date." msgstr "" -#: build/models.py:347 order/models.py:526 order/models.py:2180 -#: templates/js/translated/build.js:2419 +#: build/models.py:346 order/models.py:538 order/models.py:2219 +#: templates/js/translated/build.js:2422 msgid "Completion Date" msgstr "" -#: build/models.py:353 +#: build/models.py:352 msgid "completed by" msgstr "" -#: build/models.py:361 templates/js/translated/build.js:2379 +#: build/models.py:360 templates/js/translated/build.js:2382 msgid "Issued by" msgstr "" -#: build/models.py:362 +#: build/models.py:361 msgid "User who issued this build order" msgstr "" -#: build/models.py:370 build/templates/build/build_base.html:212 -#: build/templates/build/detail.html:122 common/models.py:165 order/api.py:142 -#: order/models.py:333 order/templates/order/order_base.html:222 -#: order/templates/order/return_order_base.html:191 -#: order/templates/order/sales_order_base.html:235 part/models.py:1246 -#: part/templates/part/part_base.html:399 +#: build/models.py:369 build/templates/build/build_base.html:213 +#: build/templates/build/detail.html:122 common/models.py:168 order/api.py:140 +#: order/models.py:340 order/templates/order/order_base.html:231 +#: order/templates/order/return_order_base.html:192 +#: order/templates/order/sales_order_base.html:236 part/models.py:1307 +#: part/templates/part/part_base.html:407 #: report/templates/report/inventree_build_order_report.html:158 #: templates/InvenTree/settings/settings_staff_js.html:150 -#: templates/js/translated/build.js:2391 -#: templates/js/translated/purchase_order.js:1833 +#: templates/js/translated/build.js:2394 +#: templates/js/translated/purchase_order.js:1817 #: templates/js/translated/return_order.js:358 #: templates/js/translated/table_filters.js:551 msgid "Responsible" msgstr "" -#: build/models.py:371 +#: build/models.py:370 msgid "User or group responsible for this build order" msgstr "" -#: build/models.py:376 build/templates/build/detail.html:108 +#: build/models.py:375 build/templates/build/detail.html:108 #: company/templates/company/manufacturer_part.html:107 -#: company/templates/company/supplier_part.html:194 -#: order/templates/order/order_base.html:172 -#: order/templates/order/return_order_base.html:148 -#: order/templates/order/sales_order_base.html:187 -#: part/templates/part/part_base.html:392 stock/models.py:855 -#: stock/templates/stock/item_base.html:200 -#: templates/js/translated/company.js:1019 +#: company/templates/company/supplier_part.html:195 +#: order/templates/order/order_base.html:181 +#: order/templates/order/return_order_base.html:149 +#: order/templates/order/sales_order_base.html:188 +#: part/templates/part/part_base.html:400 stock/models.py:932 +#: stock/templates/stock/item_base.html:197 +#: templates/js/translated/company.js:1020 msgid "External Link" msgstr "" -#: build/models.py:377 common/models.py:3273 part/models.py:1058 -#: stock/models.py:855 +#: build/models.py:376 common/models.py:3334 part/models.py:1119 +#: stock/models.py:932 msgid "Link to external URL" msgstr "" -#: build/models.py:381 +#: build/models.py:380 msgid "Build Priority" msgstr "" -#: build/models.py:384 +#: build/models.py:383 msgid "Priority of this build order" msgstr "" -#: build/models.py:391 common/models.py:135 common/models.py:149 -#: order/admin.py:18 order/api.py:128 order/models.py:297 +#: build/models.py:390 common/models.py:138 common/models.py:152 +#: order/admin.py:18 order/api.py:126 order/models.py:304 #: templates/InvenTree/settings/settings_staff_js.html:146 -#: templates/js/translated/build.js:2316 -#: templates/js/translated/purchase_order.js:1780 +#: templates/js/translated/build.js:2319 +#: templates/js/translated/purchase_order.js:1764 #: templates/js/translated/return_order.js:317 -#: templates/js/translated/sales_order.js:842 +#: templates/js/translated/sales_order.js:801 #: templates/js/translated/table_filters.js:47 #: templates/project_code_data.html:6 msgid "Project Code" msgstr "" -#: build/models.py:392 +#: build/models.py:391 msgid "Project code for this build order" msgstr "" -#: build/models.py:651 build/models.py:778 +#: build/models.py:651 build/models.py:779 msgid "Failed to offload task to complete build allocations" msgstr "" @@ -1110,610 +1129,619 @@ msgstr "" msgid "A build order has been completed" msgstr "" -#: build/models.py:967 build/models.py:1055 +#: build/models.py:858 build/serializers.py:393 +msgid "Serial numbers must be provided for trackable parts" +msgstr "" + +#: build/models.py:969 build/models.py:1058 msgid "No build output specified" msgstr "" -#: build/models.py:970 +#: build/models.py:972 msgid "Build output is already completed" msgstr "" -#: build/models.py:973 +#: build/models.py:975 msgid "Build output does not match Build Order" msgstr "" -#: build/models.py:1059 build/serializers.py:235 build/serializers.py:284 -#: build/serializers.py:915 order/models.py:564 order/serializers.py:499 -#: order/serializers.py:665 part/serializers.py:1569 part/serializers.py:1999 -#: stock/models.py:700 stock/models.py:1520 stock/serializers.py:669 +#: build/models.py:1062 build/serializers.py:282 build/serializers.py:331 +#: build/serializers.py:959 order/models.py:586 order/serializers.py:584 +#: order/serializers.py:750 part/serializers.py:1627 part/serializers.py:2060 +#: stock/models.py:777 stock/models.py:1609 stock/serializers.py:696 msgid "Quantity must be greater than zero" msgstr "" -#: build/models.py:1064 build/serializers.py:240 +#: build/models.py:1067 build/serializers.py:287 msgid "Quantity cannot be greater than the output quantity" msgstr "" -#: build/models.py:1124 build/serializers.py:563 +#: build/models.py:1127 build/serializers.py:607 #, python-brace-format msgid "Build output {serial} has not passed all required tests" msgstr "" -#: build/models.py:1465 +#: build/models.py:1482 msgid "Build Order Line Item" msgstr "" -#: build/models.py:1490 +#: build/models.py:1507 msgid "Build object" msgstr "" -#: build/models.py:1504 build/models.py:1760 build/serializers.py:222 -#: build/serializers.py:269 build/serializers.py:1295 -#: build/templates/build/build_base.html:110 -#: build/templates/build/detail.html:34 common/models.py:2579 -#: order/models.py:1356 order/models.py:2041 order/serializers.py:1460 +#: build/models.py:1521 build/models.py:1787 build/serializers.py:269 +#: build/serializers.py:316 build/serializers.py:1349 +#: build/templates/build/build_base.html:111 +#: build/templates/build/detail.html:34 common/models.py:2643 +#: order/models.py:1373 order/models.py:2074 order/serializers.py:1586 #: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:413 -#: part/forms.py:48 part/models.py:3284 part/models.py:4253 -#: part/templates/part/part_pricing.html:16 +#: part/forms.py:48 part/models.py:3335 part/models.py:4310 +#: part/serializers.py:265 part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_bill_of_materials_report.html:138 #: report/templates/report/inventree_build_order_report.html:113 #: report/templates/report/inventree_purchase_order_report.html:29 #: report/templates/report/inventree_sales_order_report.html:29 +#: report/templates/report/inventree_sales_order_shipment_report.html:47 +#: report/templates/report/inventree_sales_order_shipment_report.html:49 #: report/templates/report/inventree_stock_location_report.html:104 #: report/templates/report/inventree_test_report.html:90 -#: report/templates/report/inventree_test_report.html:169 stock/admin.py:159 -#: stock/serializers.py:127 stock/serializers.py:167 stock/serializers.py:660 -#: stock/templates/stock/item_base.html:287 -#: stock/templates/stock/item_base.html:295 -#: stock/templates/stock/item_base.html:342 +#: report/templates/report/inventree_test_report.html:169 stock/admin.py:160 +#: stock/serializers.py:128 stock/serializers.py:168 stock/serializers.py:687 +#: stock/templates/stock/item_base.html:284 +#: stock/templates/stock/item_base.html:292 +#: stock/templates/stock/item_base.html:339 #: templates/email/build_order_completed.html:18 #: templates/js/translated/barcode.js:579 templates/js/translated/bom.js:771 -#: templates/js/translated/bom.js:981 templates/js/translated/build.js:522 -#: templates/js/translated/build.js:737 templates/js/translated/build.js:1542 -#: templates/js/translated/build.js:1919 templates/js/translated/build.js:2529 -#: templates/js/translated/company.js:1818 -#: templates/js/translated/model_renderers.js:237 +#: templates/js/translated/bom.js:981 templates/js/translated/build.js:525 +#: templates/js/translated/build.js:740 templates/js/translated/build.js:1545 +#: templates/js/translated/build.js:1922 templates/js/translated/build.js:2536 +#: templates/js/translated/company.js:1819 +#: templates/js/translated/model_renderers.js:240 #: templates/js/translated/order.js:329 templates/js/translated/part.js:968 -#: templates/js/translated/part.js:1818 templates/js/translated/part.js:3360 +#: templates/js/translated/part.js:1818 templates/js/translated/part.js:3376 #: templates/js/translated/pricing.js:381 #: templates/js/translated/pricing.js:474 #: templates/js/translated/pricing.js:522 #: templates/js/translated/pricing.js:616 -#: templates/js/translated/purchase_order.js:754 -#: templates/js/translated/purchase_order.js:1922 -#: templates/js/translated/purchase_order.js:2141 -#: templates/js/translated/sales_order.js:317 -#: templates/js/translated/sales_order.js:1235 -#: templates/js/translated/sales_order.js:1554 -#: templates/js/translated/sales_order.js:1644 -#: templates/js/translated/sales_order.js:1734 -#: templates/js/translated/sales_order.js:1860 +#: templates/js/translated/purchase_order.js:737 +#: templates/js/translated/purchase_order.js:1906 +#: templates/js/translated/purchase_order.js:2125 +#: templates/js/translated/sales_order.js:1201 +#: templates/js/translated/sales_order.js:1520 +#: templates/js/translated/sales_order.js:1625 +#: templates/js/translated/sales_order.js:1715 +#: templates/js/translated/sales_order.js:1841 #: templates/js/translated/stock.js:570 templates/js/translated/stock.js:708 -#: templates/js/translated/stock.js:879 templates/js/translated/stock.js:3105 -#: templates/js/translated/stock.js:3188 +#: templates/js/translated/stock.js:879 templates/js/translated/stock.js:3106 +#: templates/js/translated/stock.js:3189 msgid "Quantity" msgstr "" -#: build/models.py:1505 +#: build/models.py:1522 msgid "Required quantity for build order" msgstr "" -#: build/models.py:1585 +#: build/models.py:1602 msgid "Build item must specify a build output, as master part is marked as trackable" msgstr "" -#: build/models.py:1594 +#: build/models.py:1611 #, python-brace-format msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgstr "" -#: build/models.py:1604 order/models.py:1992 +#: build/models.py:1628 order/models.py:2025 msgid "Stock item is over-allocated" msgstr "" -#: build/models.py:1610 order/models.py:1995 +#: build/models.py:1634 order/models.py:2028 msgid "Allocation quantity must be greater than zero" msgstr "" -#: build/models.py:1616 +#: build/models.py:1640 msgid "Quantity must be 1 for serialized stock" msgstr "" -#: build/models.py:1675 +#: build/models.py:1699 msgid "Selected stock item does not match BOM line" msgstr "" -#: build/models.py:1747 build/serializers.py:895 order/serializers.py:1297 -#: order/serializers.py:1318 stock/models.py:376 stock/serializers.py:93 -#: stock/serializers.py:763 stock/serializers.py:1281 stock/serializers.py:1393 -#: stock/templates/stock/item_base.html:10 -#: stock/templates/stock/item_base.html:23 -#: stock/templates/stock/item_base.html:194 -#: templates/js/translated/build.js:1918 -#: templates/js/translated/sales_order.js:301 -#: templates/js/translated/sales_order.js:1234 -#: templates/js/translated/sales_order.js:1535 -#: templates/js/translated/sales_order.js:1540 -#: templates/js/translated/sales_order.js:1641 -#: templates/js/translated/sales_order.js:1728 +#: build/models.py:1774 build/serializers.py:939 order/serializers.py:1423 +#: order/serializers.py:1444 +#: report/templates/report/inventree_sales_order_shipment_report.html:29 +#: stock/models.py:382 stock/serializers.py:94 stock/serializers.py:794 +#: stock/serializers.py:1312 stock/serializers.py:1424 +#: stock/templates/stock/item_base.html:11 +#: stock/templates/stock/item_base.html:24 +#: stock/templates/stock/item_base.html:191 +#: templates/js/translated/build.js:1921 +#: templates/js/translated/sales_order.js:1200 +#: templates/js/translated/sales_order.js:1501 +#: templates/js/translated/sales_order.js:1506 +#: templates/js/translated/sales_order.js:1622 +#: templates/js/translated/sales_order.js:1709 #: templates/js/translated/stock.js:683 templates/js/translated/stock.js:849 -#: templates/js/translated/stock.js:3061 +#: templates/js/translated/stock.js:3062 msgid "Stock Item" msgstr "" -#: build/models.py:1748 +#: build/models.py:1775 msgid "Source stock item" msgstr "" -#: build/models.py:1761 +#: build/models.py:1788 msgid "Stock quantity to allocate to build" msgstr "" -#: build/models.py:1769 +#: build/models.py:1796 msgid "Install into" msgstr "" -#: build/models.py:1770 +#: build/models.py:1797 msgid "Destination stock item" msgstr "" -#: build/serializers.py:91 +#: build/serializers.py:108 msgid "Build Level" msgstr "" -#: build/serializers.py:99 build/serializers.py:1190 build/serializers.py:1279 -#: part/admin.py:41 part/admin.py:408 part/models.py:4102 part/stocktake.py:219 -#: stock/admin.py:156 +#: build/serializers.py:116 build/serializers.py:1235 build/serializers.py:1331 +#: part/admin.py:41 part/admin.py:408 part/models.py:4160 part/stocktake.py:219 +#: stock/admin.py:157 msgid "Part Name" msgstr "" -#: build/serializers.py:111 +#: build/serializers.py:128 msgid "Project Code Label" msgstr "" -#: build/serializers.py:172 build/serializers.py:924 -#: templates/js/translated/build.js:1042 templates/js/translated/build.js:1495 +#: build/serializers.py:134 +msgid "Create Child Builds" +msgstr "" + +#: build/serializers.py:135 +msgid "Automatically generate child build orders" +msgstr "" + +#: build/serializers.py:219 build/serializers.py:968 +#: templates/js/translated/build.js:1045 templates/js/translated/build.js:1498 msgid "Build Output" msgstr "" -#: build/serializers.py:184 +#: build/serializers.py:231 msgid "Build output does not match the parent build" msgstr "" -#: build/serializers.py:188 +#: build/serializers.py:235 msgid "Output part does not match BuildOrder part" msgstr "" -#: build/serializers.py:192 +#: build/serializers.py:239 msgid "This build output has already been completed" msgstr "" -#: build/serializers.py:203 +#: build/serializers.py:250 msgid "This build output is not fully allocated" msgstr "" -#: build/serializers.py:223 build/serializers.py:270 +#: build/serializers.py:270 build/serializers.py:317 msgid "Enter quantity for build output" msgstr "" -#: build/serializers.py:291 +#: build/serializers.py:338 msgid "Integer quantity required for trackable parts" msgstr "" -#: build/serializers.py:294 +#: build/serializers.py:341 msgid "Integer quantity required, as the bill of materials contains trackable parts" msgstr "" -#: build/serializers.py:309 order/serializers.py:678 order/serializers.py:1464 -#: stock/serializers.py:680 templates/js/translated/purchase_order.js:1154 +#: build/serializers.py:356 order/serializers.py:763 order/serializers.py:1590 +#: stock/serializers.py:707 templates/js/translated/purchase_order.js:1137 #: templates/js/translated/stock.js:373 templates/js/translated/stock.js:571 msgid "Serial Numbers" msgstr "" -#: build/serializers.py:310 +#: build/serializers.py:357 msgid "Enter serial numbers for build outputs" msgstr "" -#: build/serializers.py:315 build/serializers.py:456 build/serializers.py:528 -#: order/serializers.py:654 order/serializers.py:778 order/serializers.py:1781 -#: part/serializers.py:1212 stock/serializers.py:102 stock/serializers.py:691 -#: stock/serializers.py:851 stock/serializers.py:977 stock/serializers.py:1425 -#: stock/serializers.py:1681 stock/templates/stock/item_base.html:394 +#: build/serializers.py:362 build/serializers.py:500 build/serializers.py:572 +#: order/serializers.py:739 order/serializers.py:880 order/serializers.py:1933 +#: part/serializers.py:1265 stock/serializers.py:103 stock/serializers.py:718 +#: stock/serializers.py:882 stock/serializers.py:1008 stock/serializers.py:1456 +#: stock/serializers.py:1712 stock/templates/stock/item_base.html:391 #: templates/js/translated/barcode.js:578 -#: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1032 -#: templates/js/translated/build.js:1174 templates/js/translated/build.js:2544 -#: templates/js/translated/purchase_order.js:1210 -#: templates/js/translated/purchase_order.js:1320 -#: templates/js/translated/sales_order.js:1547 -#: templates/js/translated/sales_order.js:1655 -#: templates/js/translated/sales_order.js:1663 -#: templates/js/translated/sales_order.js:1742 +#: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1035 +#: templates/js/translated/build.js:1177 templates/js/translated/build.js:2551 +#: templates/js/translated/purchase_order.js:1193 +#: templates/js/translated/purchase_order.js:1303 +#: templates/js/translated/sales_order.js:1513 +#: templates/js/translated/sales_order.js:1636 +#: templates/js/translated/sales_order.js:1644 +#: templates/js/translated/sales_order.js:1723 #: templates/js/translated/stock.js:684 templates/js/translated/stock.js:850 -#: templates/js/translated/stock.js:1067 templates/js/translated/stock.js:2286 -#: templates/js/translated/stock.js:2955 +#: templates/js/translated/stock.js:1067 templates/js/translated/stock.js:2287 +#: templates/js/translated/stock.js:2956 msgid "Location" msgstr "" -#: build/serializers.py:316 +#: build/serializers.py:363 msgid "Stock location for build output" msgstr "" -#: build/serializers.py:330 +#: build/serializers.py:377 msgid "Auto Allocate Serial Numbers" msgstr "" -#: build/serializers.py:331 +#: build/serializers.py:378 msgid "Automatically allocate required items with matching serial numbers" msgstr "" -#: build/serializers.py:346 -msgid "Serial numbers must be provided for trackable parts" -msgstr "" - -#: build/serializers.py:371 stock/api.py:1031 +#: build/serializers.py:415 order/serializers.py:858 stock/api.py:1017 +#: stock/models.py:1632 msgid "The following serial numbers already exist or are invalid" msgstr "" -#: build/serializers.py:418 build/serializers.py:480 build/serializers.py:569 +#: build/serializers.py:462 build/serializers.py:524 build/serializers.py:613 msgid "A list of build outputs must be provided" msgstr "" -#: build/serializers.py:457 +#: build/serializers.py:501 msgid "Stock location for scrapped outputs" msgstr "" -#: build/serializers.py:463 +#: build/serializers.py:507 msgid "Discard Allocations" msgstr "" -#: build/serializers.py:464 +#: build/serializers.py:508 msgid "Discard any stock allocations for scrapped outputs" msgstr "" -#: build/serializers.py:469 +#: build/serializers.py:513 msgid "Reason for scrapping build output(s)" msgstr "" -#: build/serializers.py:529 +#: build/serializers.py:573 msgid "Location for completed build outputs" msgstr "" -#: build/serializers.py:535 build/templates/build/build_base.html:159 -#: build/templates/build/detail.html:62 order/models.py:476 -#: order/models.py:1002 order/models.py:2159 order/serializers.py:686 -#: stock/admin.py:164 stock/serializers.py:1028 stock/serializers.py:1569 -#: stock/templates/stock/item_base.html:427 -#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2363 -#: templates/js/translated/purchase_order.js:1371 -#: templates/js/translated/purchase_order.js:1792 +#: build/serializers.py:579 build/templates/build/build_base.html:160 +#: build/templates/build/detail.html:62 order/models.py:488 +#: order/models.py:1029 order/models.py:2198 order/serializers.py:771 +#: stock/admin.py:165 stock/serializers.py:581 stock/serializers.py:1059 +#: stock/serializers.py:1600 stock/templates/stock/item_base.html:424 +#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2366 +#: templates/js/translated/purchase_order.js:1354 +#: templates/js/translated/purchase_order.js:1776 #: templates/js/translated/return_order.js:330 -#: templates/js/translated/sales_order.js:855 -#: templates/js/translated/stock.js:2261 templates/js/translated/stock.js:3079 -#: templates/js/translated/stock.js:3204 +#: templates/js/translated/sales_order.js:814 +#: templates/js/translated/stock.js:2262 templates/js/translated/stock.js:3080 +#: templates/js/translated/stock.js:3205 msgid "Status" msgstr "" -#: build/serializers.py:541 +#: build/serializers.py:585 msgid "Accept Incomplete Allocation" msgstr "" -#: build/serializers.py:542 +#: build/serializers.py:586 msgid "Complete outputs if stock has not been fully allocated" msgstr "" -#: build/serializers.py:654 +#: build/serializers.py:698 msgid "Consume Allocated Stock" msgstr "" -#: build/serializers.py:655 +#: build/serializers.py:699 msgid "Consume any stock which has already been allocated to this build" msgstr "" -#: build/serializers.py:661 +#: build/serializers.py:705 msgid "Remove Incomplete Outputs" msgstr "" -#: build/serializers.py:662 +#: build/serializers.py:706 msgid "Delete any build outputs which have not been completed" msgstr "" -#: build/serializers.py:689 +#: build/serializers.py:733 msgid "Not permitted" msgstr "" -#: build/serializers.py:690 +#: build/serializers.py:734 msgid "Accept as consumed by this build order" msgstr "" -#: build/serializers.py:691 +#: build/serializers.py:735 msgid "Deallocate before completing this build order" msgstr "" -#: build/serializers.py:721 +#: build/serializers.py:765 msgid "Overallocated Stock" msgstr "" -#: build/serializers.py:723 +#: build/serializers.py:767 msgid "How do you want to handle extra stock items assigned to the build order" msgstr "" -#: build/serializers.py:733 +#: build/serializers.py:777 msgid "Some stock items have been overallocated" msgstr "" -#: build/serializers.py:738 +#: build/serializers.py:782 msgid "Accept Unallocated" msgstr "" -#: build/serializers.py:739 +#: build/serializers.py:783 msgid "Accept that stock items have not been fully allocated to this build order" msgstr "" -#: build/serializers.py:749 templates/js/translated/build.js:316 +#: build/serializers.py:793 templates/js/translated/build.js:319 msgid "Required stock has not been fully allocated" msgstr "" -#: build/serializers.py:754 order/serializers.py:345 order/serializers.py:1365 +#: build/serializers.py:798 order/serializers.py:430 order/serializers.py:1491 msgid "Accept Incomplete" msgstr "" -#: build/serializers.py:755 +#: build/serializers.py:799 msgid "Accept that the required number of build outputs have not been completed" msgstr "" -#: build/serializers.py:765 templates/js/translated/build.js:320 +#: build/serializers.py:809 templates/js/translated/build.js:323 msgid "Required build quantity has not been completed" msgstr "" -#: build/serializers.py:774 +#: build/serializers.py:818 msgid "Build order has open child build orders" msgstr "" -#: build/serializers.py:777 +#: build/serializers.py:821 msgid "Build order must be in production state" msgstr "" -#: build/serializers.py:780 templates/js/translated/build.js:304 +#: build/serializers.py:824 templates/js/translated/build.js:307 msgid "Build order has incomplete outputs" msgstr "" -#: build/serializers.py:818 +#: build/serializers.py:862 msgid "Build Line" msgstr "" -#: build/serializers.py:828 +#: build/serializers.py:872 msgid "Build output" msgstr "" -#: build/serializers.py:836 +#: build/serializers.py:880 msgid "Build output must point to the same build" msgstr "" -#: build/serializers.py:872 +#: build/serializers.py:916 msgid "Build Line Item" msgstr "" -#: build/serializers.py:886 +#: build/serializers.py:930 msgid "bom_item.part must point to the same part as the build order" msgstr "" -#: build/serializers.py:901 stock/serializers.py:1294 +#: build/serializers.py:945 stock/serializers.py:1325 msgid "Item must be in stock" msgstr "" -#: build/serializers.py:949 order/serializers.py:1351 +#: build/serializers.py:993 order/serializers.py:1477 #, python-brace-format msgid "Available quantity ({q}) exceeded" msgstr "" -#: build/serializers.py:955 +#: build/serializers.py:999 msgid "Build output must be specified for allocation of tracked parts" msgstr "" -#: build/serializers.py:962 +#: build/serializers.py:1006 msgid "Build output cannot be specified for allocation of untracked parts" msgstr "" -#: build/serializers.py:986 order/serializers.py:1610 +#: build/serializers.py:1030 order/serializers.py:1750 msgid "Allocation items must be provided" msgstr "" -#: build/serializers.py:1049 +#: build/serializers.py:1093 msgid "Stock location where parts are to be sourced (leave blank to take from any location)" msgstr "" -#: build/serializers.py:1057 +#: build/serializers.py:1101 msgid "Exclude Location" msgstr "" -#: build/serializers.py:1058 +#: build/serializers.py:1102 msgid "Exclude stock items from this selected location" msgstr "" -#: build/serializers.py:1063 +#: build/serializers.py:1107 msgid "Interchangeable Stock" msgstr "" -#: build/serializers.py:1064 +#: build/serializers.py:1108 msgid "Stock items in multiple locations can be used interchangeably" msgstr "" -#: build/serializers.py:1069 +#: build/serializers.py:1113 msgid "Substitute Stock" msgstr "" -#: build/serializers.py:1070 +#: build/serializers.py:1114 msgid "Allow allocation of substitute parts" msgstr "" -#: build/serializers.py:1075 +#: build/serializers.py:1119 msgid "Optional Items" msgstr "" -#: build/serializers.py:1076 +#: build/serializers.py:1120 msgid "Allocate optional BOM items to build order" msgstr "" -#: build/serializers.py:1098 +#: build/serializers.py:1143 msgid "Failed to start auto-allocation task" msgstr "" -#: build/serializers.py:1181 +#: build/serializers.py:1226 stock/serializers.py:585 msgid "Supplier Part Number" msgstr "" -#: build/serializers.py:1182 company/models.py:506 +#: build/serializers.py:1227 company/models.py:503 stock/serializers.py:591 msgid "Manufacturer Part Number" msgstr "" -#: build/serializers.py:1183 stock/admin.py:53 stock/admin.py:175 -#: stock/serializers.py:457 +#: build/serializers.py:1228 stock/admin.py:53 stock/admin.py:176 +#: stock/serializers.py:467 msgid "Location Name" msgstr "" -#: build/serializers.py:1184 +#: build/serializers.py:1229 build/serializers.py:1327 msgid "Build Reference" msgstr "" -#: build/serializers.py:1185 +#: build/serializers.py:1230 msgid "BOM Reference" msgstr "" -#: build/serializers.py:1186 company/models.py:852 -#: company/templates/company/supplier_part.html:160 order/serializers.py:690 -#: stock/admin.py:228 stock/models.py:818 stock/serializers.py:1579 -#: stock/templates/stock/item_base.html:240 -#: templates/js/translated/company.js:1646 -#: templates/js/translated/purchase_order.js:1169 -#: templates/js/translated/purchase_order.js:1332 +#: build/serializers.py:1231 company/models.py:849 +#: company/templates/company/supplier_part.html:161 order/serializers.py:775 +#: stock/admin.py:229 stock/models.py:895 stock/serializers.py:1610 +#: stock/templates/stock/item_base.html:237 +#: templates/js/translated/company.js:1647 +#: templates/js/translated/purchase_order.js:1152 +#: templates/js/translated/purchase_order.js:1315 #: templates/js/translated/stock.js:1214 templates/js/translated/stock.js:1246 -#: templates/js/translated/stock.js:2509 +#: templates/js/translated/stock.js:2510 msgid "Packaging" msgstr "" -#: build/serializers.py:1189 part/admin.py:39 part/admin.py:398 -#: part/models.py:4101 part/stocktake.py:218 stock/admin.py:152 +#: build/serializers.py:1234 part/admin.py:39 part/admin.py:398 +#: part/models.py:4159 part/stocktake.py:218 stock/admin.py:153 msgid "Part ID" msgstr "" -#: build/serializers.py:1191 build/serializers.py:1280 part/admin.py:402 -#: part/models.py:4103 +#: build/serializers.py:1236 build/serializers.py:1332 part/admin.py:402 +#: part/models.py:4161 msgid "Part IPN" msgstr "" -#: build/serializers.py:1192 build/serializers.py:1282 part/admin.py:45 +#: build/serializers.py:1237 build/serializers.py:1334 part/admin.py:45 #: part/stocktake.py:220 msgid "Part Description" msgstr "" -#: build/serializers.py:1195 +#: build/serializers.py:1240 msgid "BOM Part ID" msgstr "" -#: build/serializers.py:1196 +#: build/serializers.py:1241 msgid "BOM Part Name" msgstr "" -#: build/serializers.py:1199 +#: build/serializers.py:1244 #: report/templates/report/inventree_return_order_report.html:25 -#: report/templates/report/inventree_test_report.html:88 stock/models.py:845 -#: stock/serializers.py:151 stock/templates/stock/item_base.html:311 -#: templates/js/translated/build.js:520 templates/js/translated/build.js:1540 -#: templates/js/translated/build.js:2527 -#: templates/js/translated/model_renderers.js:231 +#: report/templates/report/inventree_sales_order_shipment_report.html:45 +#: report/templates/report/inventree_test_report.html:88 stock/models.py:922 +#: stock/serializers.py:152 stock/templates/stock/item_base.html:308 +#: templates/js/translated/build.js:523 templates/js/translated/build.js:1543 +#: templates/js/translated/build.js:2534 +#: templates/js/translated/model_renderers.js:234 #: templates/js/translated/return_order.js:539 #: templates/js/translated/return_order.js:722 -#: templates/js/translated/sales_order.js:315 -#: templates/js/translated/sales_order.js:1647 -#: templates/js/translated/sales_order.js:1732 +#: templates/js/translated/sales_order.js:1628 +#: templates/js/translated/sales_order.js:1713 #: templates/js/translated/stock.js:602 msgid "Serial Number" msgstr "" -#: build/serializers.py:1212 stock/serializers.py:593 -#: templates/js/translated/build.js:1017 templates/js/translated/build.js:1164 -#: templates/js/translated/build.js:2516 +#: build/serializers.py:1257 stock/serializers.py:620 +#: templates/js/translated/build.js:1020 templates/js/translated/build.js:1167 +#: templates/js/translated/build.js:2523 msgid "Allocated Quantity" msgstr "" -#: build/serializers.py:1213 stock/templates/stock/item_base.html:340 +#: build/serializers.py:1258 stock/templates/stock/item_base.html:337 msgid "Available Quantity" msgstr "" -#: build/serializers.py:1283 +#: build/serializers.py:1335 msgid "Part Category ID" msgstr "" -#: build/serializers.py:1284 +#: build/serializers.py:1336 msgid "Part Category Name" msgstr "" -#: build/serializers.py:1291 common/models.py:1513 part/admin.py:113 -#: part/models.py:1166 templates/js/translated/table_filters.js:150 +#: build/serializers.py:1345 common/models.py:1582 part/admin.py:113 +#: part/models.py:1227 templates/js/translated/build.js:2738 +#: templates/js/translated/table_filters.js:150 #: templates/js/translated/table_filters.js:230 #: templates/js/translated/table_filters.js:783 msgid "Trackable" msgstr "" -#: build/serializers.py:1292 +#: build/serializers.py:1346 msgid "Inherited" msgstr "" -#: build/serializers.py:1293 part/models.py:4313 +#: build/serializers.py:1347 part/models.py:4370 #: part/templates/part/upload_bom.html:56 templates/js/translated/bom.js:1046 -#: templates/js/translated/build.js:2711 +#: templates/js/translated/build.js:2720 msgid "Allow Variants" msgstr "" -#: build/serializers.py:1297 part/models.py:4110 part/models.py:4584 +#: build/serializers.py:1351 part/models.py:4168 part/models.py:4646 #: stock/api.py:794 msgid "BOM Item" msgstr "" -#: build/serializers.py:1306 build/templates/build/detail.html:236 +#: build/serializers.py:1370 build/templates/build/detail.html:236 #: build/templates/build/sidebar.html:16 templates/js/translated/index.js:130 msgid "Allocated Stock" msgstr "" -#: build/serializers.py:1311 order/serializers.py:1175 part/admin.py:132 -#: part/bom.py:181 part/serializers.py:899 part/serializers.py:1602 -#: part/templates/part/part_base.html:210 templates/js/translated/bom.js:1208 -#: templates/js/translated/build.js:2804 templates/js/translated/part.js:712 +#: build/serializers.py:1375 order/serializers.py:1209 part/admin.py:132 +#: part/bom.py:186 part/serializers.py:951 part/serializers.py:1660 +#: part/templates/part/part_base.html:211 templates/js/translated/bom.js:1208 +#: templates/js/translated/build.js:2822 templates/js/translated/part.js:712 #: templates/js/translated/part.js:2155 #: templates/js/translated/table_filters.js:177 msgid "On Order" msgstr "" -#: build/serializers.py:1316 order/serializers.py:1176 part/serializers.py:1604 -#: templates/js/translated/build.js:2808 +#: build/serializers.py:1380 order/serializers.py:1210 part/serializers.py:1662 +#: templates/js/translated/build.js:2826 #: templates/js/translated/table_filters.js:367 msgid "In Production" msgstr "" -#: build/serializers.py:1321 part/bom.py:180 part/serializers.py:1629 -#: part/templates/part/part_base.html:192 -#: templates/js/translated/sales_order.js:1929 -msgid "Available Stock" -msgstr "" - -#: build/serializers.py:1325 -msgid "Available Substitute Stock" -msgstr "" - -#: build/serializers.py:1326 -msgid "Available Variant Stock" -msgstr "" - -#: build/serializers.py:1327 -msgid "Total Available Stock" -msgstr "" - -#: build/serializers.py:1328 part/serializers.py:906 +#: build/serializers.py:1384 part/serializers.py:958 msgid "External Stock" msgstr "" -#: build/status_codes.py:11 generic/states/tests.py:17 order/status_codes.py:12 -#: order/status_codes.py:42 order/status_codes.py:74 order/status_codes.py:98 +#: build/serializers.py:1385 part/bom.py:185 part/serializers.py:1687 +#: part/templates/part/part_base.html:193 +#: templates/js/translated/sales_order.js:1910 +msgid "Available Stock" +msgstr "" + +#: build/serializers.py:1386 +msgid "Available Substitute Stock" +msgstr "" + +#: build/serializers.py:1387 +msgid "Available Variant Stock" +msgstr "" + +#: build/status_codes.py:11 generic/states/tests.py:21 +#: generic/states/tests.py:131 order/status_codes.py:12 +#: order/status_codes.py:44 order/status_codes.py:76 order/status_codes.py:102 #: templates/js/translated/table_filters.js:601 msgid "Pending" msgstr "" @@ -1722,21 +1750,21 @@ msgstr "" msgid "Production" msgstr "" -#: build/status_codes.py:13 order/status_codes.py:14 order/status_codes.py:49 -#: order/status_codes.py:79 +#: build/status_codes.py:13 order/status_codes.py:14 order/status_codes.py:51 +#: order/status_codes.py:81 msgid "On Hold" msgstr "" -#: build/status_codes.py:14 order/status_codes.py:16 order/status_codes.py:51 -#: order/status_codes.py:82 +#: build/status_codes.py:14 order/status_codes.py:16 order/status_codes.py:53 +#: order/status_codes.py:84 msgid "Cancelled" msgstr "" -#: build/status_codes.py:15 generic/states/tests.py:19 importer/models.py:509 -#: importer/status_codes.py:19 order/status_codes.py:15 -#: order/status_codes.py:50 order/status_codes.py:81 -#: order/templates/order/order_base.html:163 -#: order/templates/order/sales_order_base.html:168 report/models.py:443 +#: build/status_codes.py:15 generic/states/tests.py:23 importer/models.py:518 +#: importer/status_codes.py:27 order/status_codes.py:15 +#: order/status_codes.py:52 order/status_codes.py:83 +#: order/templates/order/order_base.html:172 +#: order/templates/order/sales_order_base.html:169 report/models.py:451 msgid "Complete" msgstr "" @@ -1744,165 +1772,162 @@ msgstr "" msgid "Stock required for build order" msgstr "" -#: build/tasks.py:201 +#: build/tasks.py:260 msgid "Overdue Build Order" msgstr "" -#: build/tasks.py:206 +#: build/tasks.py:265 #, python-brace-format msgid "Build order {bo} is now overdue" msgstr "" -#: build/templates/build/build_base.html:18 +#: build/templates/build/build_base.html:19 msgid "Part thumbnail" msgstr "" -#: build/templates/build/build_base.html:38 -#: company/templates/company/supplier_part.html:35 -#: order/templates/order/order_base.html:29 -#: order/templates/order/return_order_base.html:38 -#: order/templates/order/sales_order_base.html:38 -#: part/templates/part/part_base.html:41 -#: stock/templates/stock/item_base.html:40 -#: stock/templates/stock/location.html:52 +#: build/templates/build/build_base.html:39 +#: company/templates/company/supplier_part.html:36 +#: order/templates/order/order_base.html:30 +#: order/templates/order/return_order_base.html:39 +#: order/templates/order/sales_order_base.html:39 +#: part/templates/part/part_base.html:42 +#: stock/templates/stock/item_base.html:41 +#: stock/templates/stock/location.html:53 #: templates/js/translated/filters.js:338 msgid "Barcode actions" msgstr "" -#: build/templates/build/build_base.html:42 -#: company/templates/company/supplier_part.html:39 -#: order/templates/order/order_base.html:33 -#: order/templates/order/return_order_base.html:42 -#: order/templates/order/sales_order_base.html:42 -#: part/templates/part/part_base.html:44 -#: stock/templates/stock/item_base.html:44 -#: stock/templates/stock/location.html:54 templates/qr_button.html:1 +#: build/templates/build/build_base.html:43 +#: company/templates/company/supplier_part.html:40 +#: order/templates/order/order_base.html:34 +#: order/templates/order/return_order_base.html:43 +#: order/templates/order/sales_order_base.html:43 +#: part/templates/part/part_base.html:45 +#: stock/templates/stock/item_base.html:45 +#: stock/templates/stock/location.html:55 templates/qr_button.html:1 msgid "Show QR Code" msgstr "" -#: build/templates/build/build_base.html:45 -#: company/templates/company/supplier_part.html:41 -#: order/templates/order/order_base.html:36 -#: order/templates/order/return_order_base.html:45 -#: order/templates/order/sales_order_base.html:45 -#: part/templates/part/part_base.html:47 -#: stock/templates/stock/item_base.html:47 -#: stock/templates/stock/location.html:56 +#: build/templates/build/build_base.html:46 +#: company/templates/company/supplier_part.html:42 +#: order/templates/order/order_base.html:37 +#: order/templates/order/return_order_base.html:46 +#: order/templates/order/sales_order_base.html:46 +#: part/templates/part/part_base.html:48 +#: stock/templates/stock/item_base.html:48 +#: stock/templates/stock/location.html:57 #: templates/js/translated/barcode.js:527 #: templates/js/translated/barcode.js:532 msgid "Unlink Barcode" msgstr "" -#: build/templates/build/build_base.html:47 -#: company/templates/company/supplier_part.html:43 -#: order/templates/order/order_base.html:38 -#: order/templates/order/return_order_base.html:47 -#: order/templates/order/sales_order_base.html:47 -#: part/templates/part/part_base.html:49 -#: stock/templates/stock/item_base.html:49 -#: stock/templates/stock/location.html:58 +#: build/templates/build/build_base.html:48 +#: company/templates/company/supplier_part.html:44 +#: order/templates/order/order_base.html:39 +#: order/templates/order/return_order_base.html:48 +#: order/templates/order/sales_order_base.html:48 +#: part/templates/part/part_base.html:50 +#: stock/templates/stock/item_base.html:50 +#: stock/templates/stock/location.html:59 msgid "Link Barcode" msgstr "" -#: build/templates/build/build_base.html:56 -#: order/templates/order/order_base.html:46 -#: order/templates/order/return_order_base.html:55 -#: order/templates/order/sales_order_base.html:55 +#: build/templates/build/build_base.html:57 +#: order/templates/order/order_base.html:47 +#: order/templates/order/return_order_base.html:56 +#: order/templates/order/sales_order_base.html:56 msgid "Print actions" msgstr "" -#: build/templates/build/build_base.html:60 +#: build/templates/build/build_base.html:61 msgid "Print build order report" msgstr "" -#: build/templates/build/build_base.html:67 +#: build/templates/build/build_base.html:68 msgid "Build actions" msgstr "" -#: build/templates/build/build_base.html:71 +#: build/templates/build/build_base.html:72 msgid "Edit Build" msgstr "" -#: build/templates/build/build_base.html:73 +#: build/templates/build/build_base.html:74 msgid "Duplicate Build" msgstr "" -#: build/templates/build/build_base.html:76 +#: build/templates/build/build_base.html:77 msgid "Hold Build" msgstr "" -#: build/templates/build/build_base.html:79 +#: build/templates/build/build_base.html:80 msgid "Cancel Build" msgstr "" -#: build/templates/build/build_base.html:82 +#: build/templates/build/build_base.html:83 msgid "Delete Build" msgstr "" -#: build/templates/build/build_base.html:87 -msgid "Isueue Build" -msgstr "" - #: build/templates/build/build_base.html:88 +#: build/templates/build/build_base.html:89 msgid "Issue Build" msgstr "" -#: build/templates/build/build_base.html:91 #: build/templates/build/build_base.html:92 +#: build/templates/build/build_base.html:93 msgid "Complete Build" msgstr "" -#: build/templates/build/build_base.html:115 +#: build/templates/build/build_base.html:116 msgid "Build Description" msgstr "" -#: build/templates/build/build_base.html:125 +#: build/templates/build/build_base.html:126 msgid "No build outputs have been created for this build order" msgstr "" -#: build/templates/build/build_base.html:132 +#: build/templates/build/build_base.html:133 msgid "Build Order is ready to mark as completed" msgstr "" -#: build/templates/build/build_base.html:137 +#: build/templates/build/build_base.html:138 msgid "Build Order cannot be completed as outstanding outputs remain" msgstr "" -#: build/templates/build/build_base.html:142 +#: build/templates/build/build_base.html:143 msgid "Required build quantity has not yet been completed" msgstr "" -#: build/templates/build/build_base.html:147 +#: build/templates/build/build_base.html:148 msgid "Stock has not been fully allocated to this Build Order" msgstr "" -#: build/templates/build/build_base.html:168 -#: build/templates/build/detail.html:138 order/models.py:308 -#: order/models.py:1391 order/serializers.py:174 -#: order/templates/order/order_base.html:191 -#: order/templates/order/return_order_base.html:167 -#: order/templates/order/sales_order_base.html:199 +#: build/templates/build/build_base.html:169 +#: build/templates/build/detail.html:138 order/models.py:315 +#: order/models.py:1408 order/serializers.py:254 +#: order/templates/order/order_base.html:200 +#: order/templates/order/return_order_base.html:168 +#: order/templates/order/sales_order_base.html:200 #: report/templates/report/inventree_build_order_report.html:125 -#: templates/js/translated/build.js:2411 templates/js/translated/part.js:1837 -#: templates/js/translated/purchase_order.js:1809 -#: templates/js/translated/purchase_order.js:2217 +#: templates/js/translated/build.js:2414 templates/js/translated/part.js:1837 +#: templates/js/translated/purchase_order.js:1793 +#: templates/js/translated/purchase_order.js:2201 #: templates/js/translated/return_order.js:346 #: templates/js/translated/return_order.js:749 -#: templates/js/translated/sales_order.js:871 -#: templates/js/translated/sales_order.js:1903 +#: templates/js/translated/sales_order.js:830 +#: templates/js/translated/sales_order.js:1884 msgid "Target Date" msgstr "" -#: build/templates/build/build_base.html:173 +#: build/templates/build/build_base.html:174 #, python-format msgid "This build was due on %(target)s" msgstr "" -#: build/templates/build/build_base.html:173 -#: build/templates/build/build_base.html:230 -#: order/templates/order/order_base.html:127 -#: order/templates/order/return_order_base.html:120 -#: order/templates/order/sales_order_base.html:129 +#: build/templates/build/build_base.html:174 +#: build/templates/build/build_base.html:231 +#: order/templates/order/order_base.html:128 +#: order/templates/order/return_order_base.html:121 +#: order/templates/order/sales_order_base.html:130 #: templates/js/translated/table_filters.js:97 #: templates/js/translated/table_filters.js:545 #: templates/js/translated/table_filters.js:629 @@ -1910,49 +1935,50 @@ msgstr "" msgid "Overdue" msgstr "" -#: build/templates/build/build_base.html:185 +#: build/templates/build/build_base.html:186 #: build/templates/build/detail.html:67 build/templates/build/sidebar.html:13 msgid "Completed Outputs" msgstr "" -#: build/templates/build/build_base.html:198 -#: build/templates/build/detail.html:101 order/api.py:1406 order/models.py:892 -#: order/models.py:1650 order/models.py:1765 order/models.py:1924 -#: order/templates/order/sales_order_base.html:9 -#: order/templates/order/sales_order_base.html:28 +#: build/templates/build/build_base.html:199 +#: build/templates/build/detail.html:101 order/api.py:1528 order/models.py:914 +#: order/models.py:1666 order/models.py:1794 order/models.py:1957 +#: order/templates/order/sales_order_base.html:10 +#: order/templates/order/sales_order_base.html:29 #: report/templates/report/inventree_build_order_report.html:135 #: report/templates/report/inventree_sales_order_report.html:14 -#: stock/templates/stock/item_base.html:369 +#: report/templates/report/inventree_sales_order_shipment_report.html:15 +#: stock/templates/stock/item_base.html:366 #: templates/email/overdue_sales_order.html:15 -#: templates/js/translated/pricing.js:929 -#: templates/js/translated/sales_order.js:805 -#: templates/js/translated/sales_order.js:1028 -#: templates/js/translated/stock.js:3008 +#: templates/js/translated/pricing.js:927 +#: templates/js/translated/sales_order.js:764 +#: templates/js/translated/sales_order.js:1001 +#: templates/js/translated/stock.js:3009 msgid "Sales Order" msgstr "" -#: build/templates/build/build_base.html:219 -#: build/templates/build/detail.html:94 templates/js/translated/build.js:2328 +#: build/templates/build/build_base.html:220 +#: build/templates/build/detail.html:94 templates/js/translated/build.js:2331 msgid "Priority" msgstr "" -#: build/templates/build/build_base.html:267 +#: build/templates/build/build_base.html:268 msgid "Issue Build Order" msgstr "" -#: build/templates/build/build_base.html:271 +#: build/templates/build/build_base.html:272 msgid "Issue this Build Order?" msgstr "" -#: build/templates/build/build_base.html:302 +#: build/templates/build/build_base.html:303 msgid "Delete Build Order" msgstr "" -#: build/templates/build/build_base.html:312 +#: build/templates/build/build_base.html:313 msgid "Build Order QR Code" msgstr "" -#: build/templates/build/build_base.html:324 +#: build/templates/build/build_base.html:325 msgid "Link Barcode to Build Order" msgstr "" @@ -1968,8 +1994,9 @@ msgstr "" msgid "Stock can be taken from any available location." msgstr "" -#: build/templates/build/detail.html:49 order/models.py:1532 -#: templates/js/translated/purchase_order.js:2259 +#: build/templates/build/detail.html:49 order/models.py:548 +#: order/models.py:1548 order/templates/order/order_base.html:135 +#: templates/js/translated/purchase_order.js:2243 msgid "Destination" msgstr "" @@ -1981,23 +2008,24 @@ msgstr "" msgid "Allocated Parts" msgstr "" -#: build/templates/build/detail.html:80 stock/admin.py:162 -#: stock/templates/stock/item_base.html:162 -#: templates/js/translated/build.js:1553 -#: templates/js/translated/model_renderers.js:242 -#: templates/js/translated/purchase_order.js:1326 +#: build/templates/build/detail.html:80 +#: report/templates/report/inventree_sales_order_shipment_report.html:47 +#: stock/admin.py:163 stock/templates/stock/item_base.html:159 +#: templates/js/translated/build.js:1556 +#: templates/js/translated/model_renderers.js:245 +#: templates/js/translated/purchase_order.js:1309 #: templates/js/translated/stock.js:1139 templates/js/translated/stock.js:1240 -#: templates/js/translated/stock.js:2275 templates/js/translated/stock.js:3211 +#: templates/js/translated/stock.js:2276 templates/js/translated/stock.js:3212 #: templates/js/translated/table_filters.js:320 #: templates/js/translated/table_filters.js:411 msgid "Batch" msgstr "" #: build/templates/build/detail.html:133 -#: order/templates/order/order_base.html:178 -#: order/templates/order/return_order_base.html:154 -#: order/templates/order/sales_order_base.html:193 -#: templates/js/translated/build.js:2371 +#: order/templates/order/order_base.html:187 +#: order/templates/order/return_order_base.html:155 +#: order/templates/order/sales_order_base.html:194 +#: templates/js/translated/build.js:2374 msgid "Created" msgstr "" @@ -2005,8 +2033,8 @@ msgstr "" msgid "No target date set" msgstr "" -#: build/templates/build/detail.html:149 -#: order/templates/order/sales_order_base.html:209 +#: build/templates/build/detail.html:149 order/api.py:794 +#: order/templates/order/sales_order_base.html:210 #: templates/js/translated/table_filters.js:692 msgid "Completed" msgstr "" @@ -2052,7 +2080,7 @@ msgid "Order required parts" msgstr "" #: build/templates/build/detail.html:192 -#: templates/js/translated/purchase_order.js:795 +#: templates/js/translated/purchase_order.js:778 msgid "Order Parts" msgstr "" @@ -2120,7 +2148,7 @@ msgstr "" msgid "Build Order Details" msgstr "" -#: build/templates/build/sidebar.html:8 order/serializers.py:82 +#: build/templates/build/sidebar.html:8 order/serializers.py:113 #: order/templates/order/po_sidebar.html:5 #: order/templates/order/return_order_detail.html:18 #: order/templates/order/so_sidebar.html:5 @@ -2139,43 +2167,38 @@ msgstr "" msgid "Test Statistics" msgstr "" -#: common/api.py:693 +#: common/api.py:725 msgid "Is Link" msgstr "" -#: common/api.py:701 +#: common/api.py:733 msgid "Is File" msgstr "" -#: common/api.py:744 +#: common/api.py:776 msgid "User does not have permission to delete these attachments" msgstr "" -#: common/api.py:761 +#: common/api.py:793 msgid "User does not have permission to delete this attachment" msgstr "" -#: common/currency.py:132 +#: common/currency.py:134 msgid "Invalid currency code" msgstr "" -#: common/currency.py:134 +#: common/currency.py:136 msgid "Duplicate currency code" msgstr "" -#: common/currency.py:139 +#: common/currency.py:141 msgid "No valid currency codes provided" msgstr "" -#: common/currency.py:156 +#: common/currency.py:158 msgid "No plugin" msgstr "" -#: common/files.py:63 -#, python-brace-format -msgid "Unsupported file format: {fmt}" -msgstr "" - #: common/files.py:65 msgid "Error reading file (invalid encoding)" msgstr "" @@ -2192,1883 +2215,2039 @@ msgstr "" msgid "Error reading file (data could be corrupted)" msgstr "" -#: common/forms.py:12 +#: common/forms.py:12 common/forms.py:25 msgid "File" msgstr "" -#: common/forms.py:12 +#: common/forms.py:12 common/forms.py:26 msgid "Select file to upload" msgstr "" -#: common/forms.py:25 -msgid "{name.title()} File" -msgstr "" - -#: common/forms.py:26 -#, python-brace-format -msgid "Select {name} file to upload" -msgstr "" - -#: common/models.py:86 +#: common/models.py:89 msgid "Updated" msgstr "" -#: common/models.py:87 +#: common/models.py:90 msgid "Timestamp of last update" msgstr "" -#: common/models.py:120 +#: common/models.py:123 msgid "Site URL is locked by configuration" msgstr "" -#: common/models.py:150 +#: common/models.py:153 msgid "Unique project code" msgstr "" -#: common/models.py:157 +#: common/models.py:160 msgid "Project description" msgstr "" -#: common/models.py:166 +#: common/models.py:169 msgid "User or group responsible for this project" msgstr "" -#: common/models.py:783 -msgid "Settings key (must be unique - case insensitive)" +#: common/models.py:783 common/models.py:2236 common/models.py:2613 +msgid "Settings key" msgstr "" #: common/models.py:787 msgid "Settings value" msgstr "" -#: common/models.py:839 +#: common/models.py:842 msgid "Chosen value is not a valid option" msgstr "" -#: common/models.py:855 +#: common/models.py:858 msgid "Value must be a boolean value" msgstr "" -#: common/models.py:863 +#: common/models.py:866 msgid "Value must be an integer value" msgstr "" -#: common/models.py:900 +#: common/models.py:874 +msgid "Value must be a valid number" +msgstr "" + +#: common/models.py:899 +msgid "Value does not pass validation checks" +msgstr "" + +#: common/models.py:921 msgid "Key string must be unique" msgstr "" -#: common/models.py:1132 +#: common/models.py:1189 msgid "No group" msgstr "" -#: common/models.py:1231 +#: common/models.py:1288 msgid "Restart required" msgstr "" -#: common/models.py:1233 +#: common/models.py:1290 msgid "A setting has been changed which requires a server restart" msgstr "" -#: common/models.py:1240 +#: common/models.py:1297 msgid "Pending migrations" msgstr "" -#: common/models.py:1241 +#: common/models.py:1298 msgid "Number of pending database migrations" msgstr "" -#: common/models.py:1246 +#: common/models.py:1303 msgid "Server Instance Name" msgstr "" -#: common/models.py:1248 +#: common/models.py:1305 msgid "String descriptor for the server instance" msgstr "" -#: common/models.py:1252 +#: common/models.py:1309 msgid "Use instance name" msgstr "" -#: common/models.py:1253 +#: common/models.py:1310 msgid "Use the instance name in the title-bar" msgstr "" -#: common/models.py:1258 +#: common/models.py:1315 msgid "Restrict showing `about`" msgstr "" -#: common/models.py:1259 +#: common/models.py:1316 msgid "Show the `about` modal only to superusers" msgstr "" -#: common/models.py:1264 company/models.py:111 company/models.py:112 +#: common/models.py:1321 company/models.py:108 company/models.py:109 msgid "Company name" msgstr "" -#: common/models.py:1265 +#: common/models.py:1322 msgid "Internal company name" msgstr "" -#: common/models.py:1269 +#: common/models.py:1326 msgid "Base URL" msgstr "" -#: common/models.py:1270 +#: common/models.py:1327 msgid "Base URL for server instance" msgstr "" -#: common/models.py:1276 +#: common/models.py:1333 msgid "Default Currency" msgstr "" -#: common/models.py:1277 +#: common/models.py:1334 msgid "Select base currency for pricing calculations" msgstr "" -#: common/models.py:1283 +#: common/models.py:1340 msgid "Supported Currencies" msgstr "" -#: common/models.py:1284 +#: common/models.py:1341 msgid "List of supported currency codes" msgstr "" -#: common/models.py:1290 +#: common/models.py:1347 msgid "Currency Update Interval" msgstr "" -#: common/models.py:1292 +#: common/models.py:1349 msgid "How often to update exchange rates (set to zero to disable)" msgstr "" -#: common/models.py:1295 common/models.py:1351 common/models.py:1364 -#: common/models.py:1372 common/models.py:1381 common/models.py:1390 -#: common/models.py:1627 common/models.py:1649 common/models.py:1764 -#: common/models.py:2146 +#: common/models.py:1352 common/models.py:1408 common/models.py:1421 +#: common/models.py:1429 common/models.py:1438 common/models.py:1447 +#: common/models.py:1696 common/models.py:1718 common/models.py:1819 +#: common/models.py:2208 msgid "days" msgstr "" -#: common/models.py:1299 +#: common/models.py:1356 msgid "Currency Update Plugin" msgstr "" -#: common/models.py:1300 +#: common/models.py:1357 msgid "Currency update plugin to use" msgstr "" -#: common/models.py:1305 +#: common/models.py:1362 msgid "Download from URL" msgstr "" -#: common/models.py:1307 +#: common/models.py:1364 msgid "Allow download of remote images and files from external URL" msgstr "" -#: common/models.py:1313 +#: common/models.py:1370 msgid "Download Size Limit" msgstr "" -#: common/models.py:1314 +#: common/models.py:1371 msgid "Maximum allowable download size for remote image" msgstr "" -#: common/models.py:1320 +#: common/models.py:1377 msgid "User-agent used to download from URL" msgstr "" -#: common/models.py:1322 +#: common/models.py:1379 msgid "Allow to override the user-agent used to download images and files from external URL (leave blank for the default)" msgstr "" -#: common/models.py:1327 +#: common/models.py:1384 msgid "Strict URL Validation" msgstr "" -#: common/models.py:1328 +#: common/models.py:1385 msgid "Require schema specification when validating URLs" msgstr "" -#: common/models.py:1333 +#: common/models.py:1390 msgid "Require confirm" msgstr "" -#: common/models.py:1334 +#: common/models.py:1391 msgid "Require explicit user confirmation for certain action." msgstr "" -#: common/models.py:1339 +#: common/models.py:1396 msgid "Tree Depth" msgstr "" -#: common/models.py:1341 +#: common/models.py:1398 msgid "Default tree depth for treeview. Deeper levels can be lazy loaded as they are needed." msgstr "" -#: common/models.py:1347 +#: common/models.py:1404 msgid "Update Check Interval" msgstr "" -#: common/models.py:1348 +#: common/models.py:1405 msgid "How often to check for updates (set to zero to disable)" msgstr "" -#: common/models.py:1354 +#: common/models.py:1411 msgid "Automatic Backup" msgstr "" -#: common/models.py:1355 +#: common/models.py:1412 msgid "Enable automatic backup of database and media files" msgstr "" -#: common/models.py:1360 +#: common/models.py:1417 msgid "Auto Backup Interval" msgstr "" -#: common/models.py:1361 +#: common/models.py:1418 msgid "Specify number of days between automated backup events" msgstr "" -#: common/models.py:1367 +#: common/models.py:1424 msgid "Task Deletion Interval" msgstr "" -#: common/models.py:1369 +#: common/models.py:1426 msgid "Background task results will be deleted after specified number of days" msgstr "" -#: common/models.py:1376 +#: common/models.py:1433 msgid "Error Log Deletion Interval" msgstr "" -#: common/models.py:1378 +#: common/models.py:1435 msgid "Error logs will be deleted after specified number of days" msgstr "" -#: common/models.py:1385 +#: common/models.py:1442 msgid "Notification Deletion Interval" msgstr "" -#: common/models.py:1387 +#: common/models.py:1444 msgid "User notifications will be deleted after specified number of days" msgstr "" -#: common/models.py:1394 templates/InvenTree/settings/sidebar.html:31 +#: common/models.py:1451 templates/InvenTree/settings/sidebar.html:31 msgid "Barcode Support" msgstr "" -#: common/models.py:1395 +#: common/models.py:1452 msgid "Enable barcode scanner support in the web interface" msgstr "" -#: common/models.py:1400 +#: common/models.py:1457 +msgid "Store Barcode Results" +msgstr "" + +#: common/models.py:1458 +msgid "Store barcode scan results in the database" +msgstr "" + +#: common/models.py:1463 +msgid "Barcode Scans Maximum Count" +msgstr "" + +#: common/models.py:1464 +msgid "Maximum number of barcode scan results to store" +msgstr "" + +#: common/models.py:1469 msgid "Barcode Input Delay" msgstr "" -#: common/models.py:1401 +#: common/models.py:1470 msgid "Barcode input processing delay time" msgstr "" -#: common/models.py:1407 +#: common/models.py:1476 msgid "Barcode Webcam Support" msgstr "" -#: common/models.py:1408 +#: common/models.py:1477 msgid "Allow barcode scanning via webcam in browser" msgstr "" -#: common/models.py:1413 +#: common/models.py:1482 msgid "Barcode Show Data" msgstr "" -#: common/models.py:1414 +#: common/models.py:1483 msgid "Display barcode data in browser as text" msgstr "" -#: common/models.py:1419 +#: common/models.py:1488 msgid "Barcode Generation Plugin" msgstr "" -#: common/models.py:1420 +#: common/models.py:1489 msgid "Plugin to use for internal barcode data generation" msgstr "" -#: common/models.py:1425 +#: common/models.py:1494 msgid "Part Revisions" msgstr "" -#: common/models.py:1426 +#: common/models.py:1495 msgid "Enable revision field for Part" msgstr "" -#: common/models.py:1431 +#: common/models.py:1500 msgid "Assembly Revision Only" msgstr "" -#: common/models.py:1432 +#: common/models.py:1501 msgid "Only allow revisions for assembly parts" msgstr "" -#: common/models.py:1437 +#: common/models.py:1506 msgid "Allow Deletion from Assembly" msgstr "" -#: common/models.py:1438 +#: common/models.py:1507 msgid "Allow deletion of parts which are used in an assembly" msgstr "" -#: common/models.py:1443 +#: common/models.py:1512 msgid "IPN Regex" msgstr "" -#: common/models.py:1444 +#: common/models.py:1513 msgid "Regular expression pattern for matching Part IPN" msgstr "" -#: common/models.py:1447 +#: common/models.py:1516 msgid "Allow Duplicate IPN" msgstr "" -#: common/models.py:1448 +#: common/models.py:1517 msgid "Allow multiple parts to share the same IPN" msgstr "" -#: common/models.py:1453 +#: common/models.py:1522 msgid "Allow Editing IPN" msgstr "" -#: common/models.py:1454 +#: common/models.py:1523 msgid "Allow changing the IPN value while editing a part" msgstr "" -#: common/models.py:1459 +#: common/models.py:1528 msgid "Copy Part BOM Data" msgstr "" -#: common/models.py:1460 +#: common/models.py:1529 msgid "Copy BOM data by default when duplicating a part" msgstr "" -#: common/models.py:1465 +#: common/models.py:1534 msgid "Copy Part Parameter Data" msgstr "" -#: common/models.py:1466 +#: common/models.py:1535 msgid "Copy parameter data by default when duplicating a part" msgstr "" -#: common/models.py:1471 +#: common/models.py:1540 msgid "Copy Part Test Data" msgstr "" -#: common/models.py:1472 +#: common/models.py:1541 msgid "Copy test data by default when duplicating a part" msgstr "" -#: common/models.py:1477 +#: common/models.py:1546 msgid "Copy Category Parameter Templates" msgstr "" -#: common/models.py:1478 +#: common/models.py:1547 msgid "Copy category parameter templates when creating a part" msgstr "" -#: common/models.py:1483 part/admin.py:108 part/models.py:3945 -#: report/models.py:293 report/models.py:360 report/serializers.py:90 -#: report/serializers.py:131 stock/serializers.py:232 +#: common/models.py:1552 part/admin.py:108 part/models.py:4003 +#: report/models.py:301 report/models.py:368 report/serializers.py:91 +#: report/serializers.py:132 stock/serializers.py:233 #: templates/js/translated/table_filters.js:138 #: templates/js/translated/table_filters.js:775 msgid "Template" msgstr "" -#: common/models.py:1484 +#: common/models.py:1553 msgid "Parts are templates by default" msgstr "" -#: common/models.py:1490 +#: common/models.py:1559 msgid "Parts can be assembled from other components by default" msgstr "" -#: common/models.py:1495 part/admin.py:95 part/models.py:1160 -#: part/serializers.py:1596 templates/js/translated/table_filters.js:737 +#: common/models.py:1564 part/admin.py:95 part/models.py:1221 +#: part/serializers.py:1654 templates/js/translated/table_filters.js:737 msgid "Component" msgstr "" -#: common/models.py:1496 +#: common/models.py:1565 msgid "Parts can be used as sub-components by default" msgstr "" -#: common/models.py:1501 part/admin.py:100 part/models.py:1178 +#: common/models.py:1570 part/admin.py:100 part/models.py:1239 msgid "Purchaseable" msgstr "" -#: common/models.py:1502 +#: common/models.py:1571 msgid "Parts are purchaseable by default" msgstr "" -#: common/models.py:1507 part/admin.py:104 part/models.py:1184 +#: common/models.py:1576 part/admin.py:104 part/models.py:1245 #: templates/js/translated/table_filters.js:763 msgid "Salable" msgstr "" -#: common/models.py:1508 +#: common/models.py:1577 msgid "Parts are salable by default" msgstr "" -#: common/models.py:1514 +#: common/models.py:1583 msgid "Parts are trackable by default" msgstr "" -#: common/models.py:1519 part/admin.py:117 part/models.py:1200 -#: part/templates/part/part_base.html:154 +#: common/models.py:1588 part/admin.py:117 part/models.py:1261 +#: part/templates/part/part_base.html:155 #: templates/js/translated/table_filters.js:142 #: templates/js/translated/table_filters.js:787 msgid "Virtual" msgstr "" -#: common/models.py:1520 +#: common/models.py:1589 msgid "Parts are virtual by default" msgstr "" -#: common/models.py:1525 +#: common/models.py:1594 msgid "Show Import in Views" msgstr "" -#: common/models.py:1526 +#: common/models.py:1595 msgid "Display the import wizard in some part views" msgstr "" -#: common/models.py:1531 +#: common/models.py:1600 msgid "Show related parts" msgstr "" -#: common/models.py:1532 +#: common/models.py:1601 msgid "Display related parts for a part" msgstr "" -#: common/models.py:1537 +#: common/models.py:1606 msgid "Initial Stock Data" msgstr "" -#: common/models.py:1538 +#: common/models.py:1607 msgid "Allow creation of initial stock when adding a new part" msgstr "" -#: common/models.py:1543 templates/js/translated/part.js:108 +#: common/models.py:1612 templates/js/translated/part.js:108 msgid "Initial Supplier Data" msgstr "" -#: common/models.py:1545 +#: common/models.py:1614 msgid "Allow creation of initial supplier data when adding a new part" msgstr "" -#: common/models.py:1551 +#: common/models.py:1620 msgid "Part Name Display Format" msgstr "" -#: common/models.py:1552 +#: common/models.py:1621 msgid "Format to display the part name" msgstr "" -#: common/models.py:1558 +#: common/models.py:1627 msgid "Part Category Default Icon" msgstr "" -#: common/models.py:1559 +#: common/models.py:1628 msgid "Part category default icon (empty means no icon)" msgstr "" -#: common/models.py:1564 +#: common/models.py:1633 msgid "Enforce Parameter Units" msgstr "" -#: common/models.py:1566 +#: common/models.py:1635 msgid "If units are provided, parameter values must match the specified units" msgstr "" -#: common/models.py:1572 +#: common/models.py:1641 msgid "Minimum Pricing Decimal Places" msgstr "" -#: common/models.py:1574 +#: common/models.py:1643 msgid "Minimum number of decimal places to display when rendering pricing data" msgstr "" -#: common/models.py:1585 +#: common/models.py:1654 msgid "Maximum Pricing Decimal Places" msgstr "" -#: common/models.py:1587 +#: common/models.py:1656 msgid "Maximum number of decimal places to display when rendering pricing data" msgstr "" -#: common/models.py:1598 +#: common/models.py:1667 msgid "Use Supplier Pricing" msgstr "" -#: common/models.py:1600 +#: common/models.py:1669 msgid "Include supplier price breaks in overall pricing calculations" msgstr "" -#: common/models.py:1606 +#: common/models.py:1675 msgid "Purchase History Override" msgstr "" -#: common/models.py:1608 +#: common/models.py:1677 msgid "Historical purchase order pricing overrides supplier price breaks" msgstr "" -#: common/models.py:1614 +#: common/models.py:1683 msgid "Use Stock Item Pricing" msgstr "" -#: common/models.py:1616 +#: common/models.py:1685 msgid "Use pricing from manually entered stock data for pricing calculations" msgstr "" -#: common/models.py:1622 +#: common/models.py:1691 msgid "Stock Item Pricing Age" msgstr "" -#: common/models.py:1624 +#: common/models.py:1693 msgid "Exclude stock items older than this number of days from pricing calculations" msgstr "" -#: common/models.py:1631 +#: common/models.py:1700 msgid "Use Variant Pricing" msgstr "" -#: common/models.py:1632 +#: common/models.py:1701 msgid "Include variant pricing in overall pricing calculations" msgstr "" -#: common/models.py:1637 +#: common/models.py:1706 msgid "Active Variants Only" msgstr "" -#: common/models.py:1639 +#: common/models.py:1708 msgid "Only use active variant parts for calculating variant pricing" msgstr "" -#: common/models.py:1645 +#: common/models.py:1714 msgid "Pricing Rebuild Interval" msgstr "" -#: common/models.py:1647 +#: common/models.py:1716 msgid "Number of days before part pricing is automatically updated" msgstr "" -#: common/models.py:1654 +#: common/models.py:1723 msgid "Internal Prices" msgstr "" -#: common/models.py:1655 +#: common/models.py:1724 msgid "Enable internal prices for parts" msgstr "" -#: common/models.py:1660 +#: common/models.py:1729 msgid "Internal Price Override" msgstr "" -#: common/models.py:1662 +#: common/models.py:1731 msgid "If available, internal prices override price range calculations" msgstr "" -#: common/models.py:1668 +#: common/models.py:1737 msgid "Enable label printing" msgstr "" -#: common/models.py:1669 +#: common/models.py:1738 msgid "Enable label printing from the web interface" msgstr "" -#: common/models.py:1674 +#: common/models.py:1743 msgid "Label Image DPI" msgstr "" -#: common/models.py:1676 +#: common/models.py:1745 msgid "DPI resolution when generating image files to supply to label printing plugins" msgstr "" -#: common/models.py:1682 +#: common/models.py:1751 msgid "Enable Reports" msgstr "" -#: common/models.py:1683 +#: common/models.py:1752 msgid "Enable generation of reports" msgstr "" -#: common/models.py:1688 templates/stats.html:25 +#: common/models.py:1757 templates/stats.html:25 msgid "Debug Mode" msgstr "" -#: common/models.py:1689 +#: common/models.py:1758 msgid "Generate reports in debug mode (HTML output)" msgstr "" -#: common/models.py:1694 +#: common/models.py:1763 msgid "Log Report Errors" msgstr "" -#: common/models.py:1695 +#: common/models.py:1764 msgid "Log errors which occur when generating reports" msgstr "" -#: common/models.py:1700 plugin/builtin/labels/label_sheet.py:28 -#: report/models.py:301 +#: common/models.py:1769 plugin/builtin/labels/label_sheet.py:28 +#: report/models.py:309 msgid "Page Size" msgstr "" -#: common/models.py:1701 +#: common/models.py:1770 msgid "Default page size for PDF reports" msgstr "" -#: common/models.py:1706 -msgid "Enable Test Reports" -msgstr "" - -#: common/models.py:1707 -msgid "Enable generation of test reports" -msgstr "" - -#: common/models.py:1712 -msgid "Attach Test Reports" -msgstr "" - -#: common/models.py:1714 -msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item" -msgstr "" - -#: common/models.py:1720 +#: common/models.py:1775 msgid "Globally Unique Serials" msgstr "" -#: common/models.py:1721 +#: common/models.py:1776 msgid "Serial numbers for stock items must be globally unique" msgstr "" -#: common/models.py:1726 +#: common/models.py:1781 msgid "Autofill Serial Numbers" msgstr "" -#: common/models.py:1727 +#: common/models.py:1782 msgid "Autofill serial numbers in forms" msgstr "" -#: common/models.py:1732 +#: common/models.py:1787 msgid "Delete Depleted Stock" msgstr "" -#: common/models.py:1734 +#: common/models.py:1789 msgid "Determines default behavior when a stock item is depleted" msgstr "" -#: common/models.py:1740 +#: common/models.py:1795 msgid "Batch Code Template" msgstr "" -#: common/models.py:1742 +#: common/models.py:1797 msgid "Template for generating default batch codes for stock items" msgstr "" -#: common/models.py:1747 +#: common/models.py:1802 msgid "Stock Expiry" msgstr "" -#: common/models.py:1748 +#: common/models.py:1803 msgid "Enable stock expiry functionality" msgstr "" -#: common/models.py:1753 +#: common/models.py:1808 msgid "Sell Expired Stock" msgstr "" -#: common/models.py:1754 +#: common/models.py:1809 msgid "Allow sale of expired stock" msgstr "" -#: common/models.py:1759 +#: common/models.py:1814 msgid "Stock Stale Time" msgstr "" -#: common/models.py:1761 +#: common/models.py:1816 msgid "Number of days stock items are considered stale before expiring" msgstr "" -#: common/models.py:1768 +#: common/models.py:1823 msgid "Build Expired Stock" msgstr "" -#: common/models.py:1769 +#: common/models.py:1824 msgid "Allow building with expired stock" msgstr "" -#: common/models.py:1774 +#: common/models.py:1829 msgid "Stock Ownership Control" msgstr "" -#: common/models.py:1775 +#: common/models.py:1830 msgid "Enable ownership control over stock locations and items" msgstr "" -#: common/models.py:1780 +#: common/models.py:1835 msgid "Stock Location Default Icon" msgstr "" -#: common/models.py:1781 +#: common/models.py:1836 msgid "Stock location default icon (empty means no icon)" msgstr "" -#: common/models.py:1786 +#: common/models.py:1841 msgid "Show Installed Stock Items" msgstr "" -#: common/models.py:1787 +#: common/models.py:1842 msgid "Display installed stock items in stock tables" msgstr "" -#: common/models.py:1792 +#: common/models.py:1847 msgid "Check BOM when installing items" msgstr "" -#: common/models.py:1794 +#: common/models.py:1849 msgid "Installed stock items must exist in the BOM for the parent part" msgstr "" -#: common/models.py:1800 +#: common/models.py:1855 msgid "Allow Out of Stock Transfer" msgstr "" -#: common/models.py:1802 +#: common/models.py:1857 msgid "Allow stock items which are not in stock to be transferred between stock locations" msgstr "" -#: common/models.py:1808 +#: common/models.py:1863 msgid "Build Order Reference Pattern" msgstr "" -#: common/models.py:1810 +#: common/models.py:1865 msgid "Required pattern for generating Build Order reference field" msgstr "" -#: common/models.py:1816 common/models.py:1872 common/models.py:1894 -#: common/models.py:1930 +#: common/models.py:1871 common/models.py:1927 common/models.py:1949 +#: common/models.py:1985 msgid "Require Responsible Owner" msgstr "" -#: common/models.py:1817 common/models.py:1873 common/models.py:1895 -#: common/models.py:1931 +#: common/models.py:1872 common/models.py:1928 common/models.py:1950 +#: common/models.py:1986 msgid "A responsible owner must be assigned to each order" msgstr "" -#: common/models.py:1822 +#: common/models.py:1877 msgid "Require Active Part" msgstr "" -#: common/models.py:1823 +#: common/models.py:1878 msgid "Prevent build order creation for inactive parts" msgstr "" -#: common/models.py:1828 +#: common/models.py:1883 msgid "Require Locked Part" msgstr "" -#: common/models.py:1829 +#: common/models.py:1884 msgid "Prevent build order creation for unlocked parts" msgstr "" -#: common/models.py:1834 +#: common/models.py:1889 msgid "Require Valid BOM" msgstr "" -#: common/models.py:1836 +#: common/models.py:1891 msgid "Prevent build order creation unless BOM has been validated" msgstr "" -#: common/models.py:1842 +#: common/models.py:1897 msgid "Require Closed Child Orders" msgstr "" -#: common/models.py:1844 +#: common/models.py:1899 msgid "Prevent build order completion until all child orders are closed" msgstr "" -#: common/models.py:1850 +#: common/models.py:1905 msgid "Block Until Tests Pass" msgstr "" -#: common/models.py:1852 +#: common/models.py:1907 msgid "Prevent build outputs from being completed until all required tests pass" msgstr "" -#: common/models.py:1858 +#: common/models.py:1913 msgid "Enable Return Orders" msgstr "" -#: common/models.py:1859 +#: common/models.py:1914 msgid "Enable return order functionality in the user interface" msgstr "" -#: common/models.py:1864 +#: common/models.py:1919 msgid "Return Order Reference Pattern" msgstr "" -#: common/models.py:1866 +#: common/models.py:1921 msgid "Required pattern for generating Return Order reference field" msgstr "" -#: common/models.py:1878 +#: common/models.py:1933 msgid "Edit Completed Return Orders" msgstr "" -#: common/models.py:1880 +#: common/models.py:1935 msgid "Allow editing of return orders after they have been completed" msgstr "" -#: common/models.py:1886 +#: common/models.py:1941 msgid "Sales Order Reference Pattern" msgstr "" -#: common/models.py:1888 +#: common/models.py:1943 msgid "Required pattern for generating Sales Order reference field" msgstr "" -#: common/models.py:1900 +#: common/models.py:1955 msgid "Sales Order Default Shipment" msgstr "" -#: common/models.py:1901 +#: common/models.py:1956 msgid "Enable creation of default shipment with sales orders" msgstr "" -#: common/models.py:1906 +#: common/models.py:1961 msgid "Edit Completed Sales Orders" msgstr "" -#: common/models.py:1908 +#: common/models.py:1963 msgid "Allow editing of sales orders after they have been shipped or completed" msgstr "" -#: common/models.py:1914 +#: common/models.py:1969 msgid "Mark Shipped Orders as Complete" msgstr "" -#: common/models.py:1916 +#: common/models.py:1971 msgid "Sales orders marked as shipped will automatically be completed, bypassing the \"shipped\" status" msgstr "" -#: common/models.py:1922 +#: common/models.py:1977 msgid "Purchase Order Reference Pattern" msgstr "" -#: common/models.py:1924 +#: common/models.py:1979 msgid "Required pattern for generating Purchase Order reference field" msgstr "" -#: common/models.py:1936 +#: common/models.py:1991 msgid "Edit Completed Purchase Orders" msgstr "" -#: common/models.py:1938 +#: common/models.py:1993 msgid "Allow editing of purchase orders after they have been shipped or completed" msgstr "" -#: common/models.py:1944 +#: common/models.py:1999 msgid "Auto Complete Purchase Orders" msgstr "" -#: common/models.py:1946 +#: common/models.py:2001 msgid "Automatically mark purchase orders as complete when all line items are received" msgstr "" -#: common/models.py:1953 +#: common/models.py:2008 msgid "Enable password forgot" msgstr "" -#: common/models.py:1954 +#: common/models.py:2009 msgid "Enable password forgot function on the login pages" msgstr "" -#: common/models.py:1959 +#: common/models.py:2014 msgid "Enable registration" msgstr "" -#: common/models.py:1960 +#: common/models.py:2015 msgid "Enable self-registration for users on the login pages" msgstr "" -#: common/models.py:1965 +#: common/models.py:2020 msgid "Enable SSO" msgstr "" -#: common/models.py:1966 +#: common/models.py:2021 msgid "Enable SSO on the login pages" msgstr "" -#: common/models.py:1971 +#: common/models.py:2026 msgid "Enable SSO registration" msgstr "" -#: common/models.py:1973 +#: common/models.py:2028 msgid "Enable self-registration via SSO for users on the login pages" msgstr "" -#: common/models.py:1979 +#: common/models.py:2034 msgid "Enable SSO group sync" msgstr "" -#: common/models.py:1981 +#: common/models.py:2036 msgid "Enable synchronizing InvenTree groups with groups provided by the IdP" msgstr "" -#: common/models.py:1987 +#: common/models.py:2042 msgid "SSO group key" msgstr "" -#: common/models.py:1989 +#: common/models.py:2044 msgid "The name of the groups claim attribute provided by the IdP" msgstr "" -#: common/models.py:1995 +#: common/models.py:2050 msgid "SSO group map" msgstr "" -#: common/models.py:1997 +#: common/models.py:2052 msgid "A mapping from SSO groups to local InvenTree groups. If the local group does not exist, it will be created." msgstr "" -#: common/models.py:2003 +#: common/models.py:2058 msgid "Remove groups outside of SSO" msgstr "" -#: common/models.py:2005 +#: common/models.py:2060 msgid "Whether groups assigned to the user should be removed if they are not backend by the IdP. Disabling this setting might cause security issues" -msgstr "" +msgstr "Чи призначені групи користувачеві повинні бути видалені, якщо вони не є резервним сервером IdP. Відключення цього налаштування може спричинити проблеми безпеки" -#: common/models.py:2011 +#: common/models.py:2066 msgid "Email required" msgstr "" -#: common/models.py:2012 +#: common/models.py:2067 msgid "Require user to supply mail on signup" msgstr "" -#: common/models.py:2017 +#: common/models.py:2072 msgid "Auto-fill SSO users" msgstr "" -#: common/models.py:2019 +#: common/models.py:2074 msgid "Automatically fill out user-details from SSO account-data" msgstr "" -#: common/models.py:2025 +#: common/models.py:2080 msgid "Mail twice" msgstr "" -#: common/models.py:2026 +#: common/models.py:2081 msgid "On signup ask users twice for their mail" msgstr "" -#: common/models.py:2031 +#: common/models.py:2086 msgid "Password twice" msgstr "" -#: common/models.py:2032 +#: common/models.py:2087 msgid "On signup ask users twice for their password" msgstr "" -#: common/models.py:2037 +#: common/models.py:2092 msgid "Allowed domains" msgstr "" -#: common/models.py:2039 +#: common/models.py:2094 msgid "Restrict signup to certain domains (comma-separated, starting with @)" msgstr "" -#: common/models.py:2045 +#: common/models.py:2100 msgid "Group on signup" msgstr "" -#: common/models.py:2047 +#: common/models.py:2102 msgid "Group to which new users are assigned on registration. If SSO group sync is enabled, this group is only set if no group can be assigned from the IdP." msgstr "" -#: common/models.py:2053 +#: common/models.py:2108 msgid "Enforce MFA" msgstr "" -#: common/models.py:2054 +#: common/models.py:2109 msgid "Users must use multifactor security." msgstr "" -#: common/models.py:2059 +#: common/models.py:2114 msgid "Check plugins on startup" msgstr "" -#: common/models.py:2061 +#: common/models.py:2116 msgid "Check that all plugins are installed on startup - enable in container environments" msgstr "" -#: common/models.py:2069 +#: common/models.py:2124 msgid "Check for plugin updates" msgstr "" -#: common/models.py:2070 +#: common/models.py:2125 msgid "Enable periodic checks for updates to installed plugins" msgstr "" -#: common/models.py:2076 +#: common/models.py:2131 msgid "Enable URL integration" msgstr "" -#: common/models.py:2077 +#: common/models.py:2132 msgid "Enable plugins to add URL routes" msgstr "" -#: common/models.py:2083 +#: common/models.py:2138 msgid "Enable navigation integration" msgstr "" -#: common/models.py:2084 +#: common/models.py:2139 msgid "Enable plugins to integrate into navigation" msgstr "" -#: common/models.py:2090 +#: common/models.py:2145 msgid "Enable app integration" msgstr "" -#: common/models.py:2091 +#: common/models.py:2146 msgid "Enable plugins to add apps" msgstr "" -#: common/models.py:2097 +#: common/models.py:2152 msgid "Enable schedule integration" msgstr "" -#: common/models.py:2098 +#: common/models.py:2153 msgid "Enable plugins to run scheduled tasks" msgstr "" -#: common/models.py:2104 +#: common/models.py:2159 msgid "Enable event integration" msgstr "" -#: common/models.py:2105 +#: common/models.py:2160 msgid "Enable plugins to respond to internal events" msgstr "" -#: common/models.py:2111 +#: common/models.py:2166 +msgid "Enable interface integration" +msgstr "" + +#: common/models.py:2167 +msgid "Enable plugins to integrate into the user interface" +msgstr "" + +#: common/models.py:2173 msgid "Enable project codes" msgstr "" -#: common/models.py:2112 +#: common/models.py:2174 msgid "Enable project codes for tracking projects" msgstr "" -#: common/models.py:2117 +#: common/models.py:2179 msgid "Stocktake Functionality" msgstr "" -#: common/models.py:2119 +#: common/models.py:2181 msgid "Enable stocktake functionality for recording stock levels and calculating stock value" msgstr "" -#: common/models.py:2125 +#: common/models.py:2187 msgid "Exclude External Locations" msgstr "" -#: common/models.py:2127 +#: common/models.py:2189 msgid "Exclude stock items in external locations from stocktake calculations" msgstr "" -#: common/models.py:2133 +#: common/models.py:2195 msgid "Automatic Stocktake Period" msgstr "" -#: common/models.py:2135 +#: common/models.py:2197 msgid "Number of days between automatic stocktake recording (set to zero to disable)" msgstr "" -#: common/models.py:2141 +#: common/models.py:2203 msgid "Report Deletion Interval" msgstr "" -#: common/models.py:2143 +#: common/models.py:2205 msgid "Stocktake reports will be deleted after specified number of days" msgstr "" -#: common/models.py:2150 +#: common/models.py:2212 msgid "Display Users full names" msgstr "" -#: common/models.py:2151 +#: common/models.py:2213 msgid "Display Users full names instead of usernames" msgstr "" -#: common/models.py:2156 +#: common/models.py:2218 msgid "Enable Test Station Data" msgstr "" -#: common/models.py:2157 +#: common/models.py:2219 msgid "Enable test station data collection for test results" msgstr "" -#: common/models.py:2169 common/models.py:2549 -msgid "Settings key (must be unique - case insensitive" -msgstr "" - -#: common/models.py:2212 -msgid "Hide inactive parts" -msgstr "" - -#: common/models.py:2214 -msgid "Hide inactive parts in results displayed on the homepage" -msgstr "" - -#: common/models.py:2220 -msgid "Show subscribed parts" -msgstr "" - -#: common/models.py:2221 -msgid "Show subscribed parts on the homepage" +#: common/models.py:2224 +msgid "Create Template on Upload" msgstr "" #: common/models.py:2226 -msgid "Show subscribed categories" +msgid "Create a new test template when uploading test data which does not match an existing template" msgstr "" -#: common/models.py:2227 -msgid "Show subscribed part categories on the homepage" -msgstr "" - -#: common/models.py:2232 -msgid "Show latest parts" -msgstr "" - -#: common/models.py:2233 -msgid "Show latest parts on the homepage" -msgstr "" - -#: common/models.py:2238 -msgid "Show invalid BOMs" -msgstr "" - -#: common/models.py:2239 -msgid "Show BOMs that await validation on the homepage" -msgstr "" - -#: common/models.py:2244 -msgid "Show recent stock changes" -msgstr "" - -#: common/models.py:2245 -msgid "Show recently changed stock items on the homepage" -msgstr "" - -#: common/models.py:2250 -msgid "Show low stock" -msgstr "" - -#: common/models.py:2251 -msgid "Show low stock items on the homepage" -msgstr "" - -#: common/models.py:2256 -msgid "Show depleted stock" -msgstr "" - -#: common/models.py:2257 -msgid "Show depleted stock items on the homepage" -msgstr "" - -#: common/models.py:2262 -msgid "Show needed stock" -msgstr "" - -#: common/models.py:2263 -msgid "Show stock items needed for builds on the homepage" -msgstr "" - -#: common/models.py:2268 -msgid "Show expired stock" -msgstr "" - -#: common/models.py:2269 -msgid "Show expired stock items on the homepage" -msgstr "" - -#: common/models.py:2274 -msgid "Show stale stock" -msgstr "" - -#: common/models.py:2275 -msgid "Show stale stock items on the homepage" -msgstr "" - -#: common/models.py:2280 -msgid "Show pending builds" +#: common/models.py:2279 +msgid "Hide inactive parts" msgstr "" #: common/models.py:2281 -msgid "Show pending builds on the homepage" -msgstr "" - -#: common/models.py:2286 -msgid "Show overdue builds" +msgid "Hide inactive parts in results displayed on the homepage" msgstr "" #: common/models.py:2287 -msgid "Show overdue builds on the homepage" +msgid "Show subscribed parts" msgstr "" -#: common/models.py:2292 -msgid "Show outstanding POs" +#: common/models.py:2288 +msgid "Show subscribed parts on the homepage" msgstr "" #: common/models.py:2293 -msgid "Show outstanding POs on the homepage" +msgid "Show subscribed categories" msgstr "" -#: common/models.py:2298 -msgid "Show overdue POs" +#: common/models.py:2294 +msgid "Show subscribed part categories on the homepage" msgstr "" #: common/models.py:2299 -msgid "Show overdue POs on the homepage" +msgid "Show latest parts" msgstr "" -#: common/models.py:2304 -msgid "Show outstanding SOs" +#: common/models.py:2300 +msgid "Show latest parts on the homepage" msgstr "" #: common/models.py:2305 -msgid "Show outstanding SOs on the homepage" +msgid "Show invalid BOMs" msgstr "" -#: common/models.py:2310 -msgid "Show overdue SOs" +#: common/models.py:2306 +msgid "Show BOMs that await validation on the homepage" msgstr "" #: common/models.py:2311 -msgid "Show overdue SOs on the homepage" +msgid "Show recent stock changes" msgstr "" -#: common/models.py:2316 -msgid "Show pending SO shipments" +#: common/models.py:2312 +msgid "Show recently changed stock items on the homepage" msgstr "" #: common/models.py:2317 -msgid "Show pending SO shipments on the homepage" +msgid "Show low stock" msgstr "" -#: common/models.py:2322 -msgid "Show News" +#: common/models.py:2318 +msgid "Show low stock items on the homepage" msgstr "" #: common/models.py:2323 -msgid "Show news on the homepage" +msgid "Show depleted stock" msgstr "" -#: common/models.py:2328 -msgid "Inline label display" +#: common/models.py:2324 +msgid "Show depleted stock items on the homepage" +msgstr "" + +#: common/models.py:2329 +msgid "Show needed stock" msgstr "" #: common/models.py:2330 -msgid "Display PDF labels in the browser, instead of downloading as a file" +msgid "Show stock items needed for builds on the homepage" +msgstr "" + +#: common/models.py:2335 +msgid "Show expired stock" msgstr "" #: common/models.py:2336 -msgid "Default label printer" +msgid "Show expired stock items on the homepage" msgstr "" -#: common/models.py:2338 -msgid "Configure which label printer should be selected by default" +#: common/models.py:2341 +msgid "Show stale stock" msgstr "" -#: common/models.py:2344 -msgid "Inline report display" +#: common/models.py:2342 +msgid "Show stale stock items on the homepage" msgstr "" -#: common/models.py:2346 -msgid "Display PDF reports in the browser, instead of downloading as a file" +#: common/models.py:2347 +msgid "Show pending builds" msgstr "" -#: common/models.py:2352 -msgid "Search Parts" +#: common/models.py:2348 +msgid "Show pending builds on the homepage" msgstr "" #: common/models.py:2353 -msgid "Display parts in search preview window" +msgid "Show overdue builds" msgstr "" -#: common/models.py:2358 -msgid "Search Supplier Parts" +#: common/models.py:2354 +msgid "Show overdue builds on the homepage" msgstr "" #: common/models.py:2359 -msgid "Display supplier parts in search preview window" +msgid "Show outstanding POs" msgstr "" -#: common/models.py:2364 -msgid "Search Manufacturer Parts" +#: common/models.py:2360 +msgid "Show outstanding POs on the homepage" msgstr "" #: common/models.py:2365 -msgid "Display manufacturer parts in search preview window" +msgid "Show overdue POs" msgstr "" -#: common/models.py:2370 -msgid "Hide Inactive Parts" +#: common/models.py:2366 +msgid "Show overdue POs on the homepage" msgstr "" #: common/models.py:2371 -msgid "Excluded inactive parts from search preview window" +msgid "Show outstanding SOs" msgstr "" -#: common/models.py:2376 -msgid "Search Categories" +#: common/models.py:2372 +msgid "Show outstanding SOs on the homepage" msgstr "" #: common/models.py:2377 -msgid "Display part categories in search preview window" +msgid "Show overdue SOs" msgstr "" -#: common/models.py:2382 -msgid "Search Stock" +#: common/models.py:2378 +msgid "Show overdue SOs on the homepage" msgstr "" #: common/models.py:2383 -msgid "Display stock items in search preview window" +msgid "Show pending SO shipments" msgstr "" -#: common/models.py:2388 -msgid "Hide Unavailable Stock Items" +#: common/models.py:2384 +msgid "Show pending SO shipments on the homepage" +msgstr "" + +#: common/models.py:2389 +msgid "Show News" msgstr "" #: common/models.py:2390 -msgid "Exclude stock items which are not available from the search preview window" +msgid "Show news on the homepage" msgstr "" -#: common/models.py:2396 -msgid "Search Locations" +#: common/models.py:2395 +msgid "Inline label display" msgstr "" #: common/models.py:2397 -msgid "Display stock locations in search preview window" -msgstr "" - -#: common/models.py:2402 -msgid "Search Companies" +msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "" #: common/models.py:2403 -msgid "Display companies in search preview window" +msgid "Default label printer" msgstr "" -#: common/models.py:2408 -msgid "Search Build Orders" +#: common/models.py:2405 +msgid "Configure which label printer should be selected by default" msgstr "" -#: common/models.py:2409 -msgid "Display build orders in search preview window" +#: common/models.py:2411 +msgid "Inline report display" msgstr "" -#: common/models.py:2414 -msgid "Search Purchase Orders" +#: common/models.py:2413 +msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:2415 -msgid "Display purchase orders in search preview window" +#: common/models.py:2419 +msgid "Search Parts" msgstr "" #: common/models.py:2420 -msgid "Exclude Inactive Purchase Orders" +msgid "Display parts in search preview window" msgstr "" -#: common/models.py:2422 -msgid "Exclude inactive purchase orders from search preview window" +#: common/models.py:2425 +msgid "Search Supplier Parts" msgstr "" -#: common/models.py:2428 -msgid "Search Sales Orders" +#: common/models.py:2426 +msgid "Display supplier parts in search preview window" msgstr "" -#: common/models.py:2429 -msgid "Display sales orders in search preview window" +#: common/models.py:2431 +msgid "Search Manufacturer Parts" msgstr "" -#: common/models.py:2434 -msgid "Exclude Inactive Sales Orders" +#: common/models.py:2432 +msgid "Display manufacturer parts in search preview window" msgstr "" -#: common/models.py:2436 -msgid "Exclude inactive sales orders from search preview window" +#: common/models.py:2437 +msgid "Hide Inactive Parts" msgstr "" -#: common/models.py:2442 -msgid "Search Return Orders" +#: common/models.py:2438 +msgid "Excluded inactive parts from search preview window" msgstr "" #: common/models.py:2443 -msgid "Display return orders in search preview window" +msgid "Search Categories" msgstr "" -#: common/models.py:2448 -msgid "Exclude Inactive Return Orders" +#: common/models.py:2444 +msgid "Display part categories in search preview window" +msgstr "" + +#: common/models.py:2449 +msgid "Search Stock" msgstr "" #: common/models.py:2450 -msgid "Exclude inactive return orders from search preview window" +msgid "Display stock items in search preview window" msgstr "" -#: common/models.py:2456 -msgid "Search Preview Results" +#: common/models.py:2455 +msgid "Hide Unavailable Stock Items" msgstr "" -#: common/models.py:2458 -msgid "Number of results to show in each section of the search preview window" +#: common/models.py:2457 +msgid "Exclude stock items which are not available from the search preview window" +msgstr "" + +#: common/models.py:2463 +msgid "Search Locations" msgstr "" #: common/models.py:2464 -msgid "Regex Search" +msgid "Display stock locations in search preview window" msgstr "" -#: common/models.py:2465 -msgid "Enable regular expressions in search queries" +#: common/models.py:2469 +msgid "Search Companies" msgstr "" #: common/models.py:2470 -msgid "Whole Word Search" +msgid "Display companies in search preview window" msgstr "" -#: common/models.py:2471 -msgid "Search queries return results for whole word matches" +#: common/models.py:2475 +msgid "Search Build Orders" msgstr "" #: common/models.py:2476 -msgid "Show Quantity in Forms" +msgid "Display build orders in search preview window" msgstr "" -#: common/models.py:2477 -msgid "Display available part quantity in some forms" +#: common/models.py:2481 +msgid "Search Purchase Orders" msgstr "" #: common/models.py:2482 -msgid "Escape Key Closes Forms" +msgid "Display purchase orders in search preview window" msgstr "" -#: common/models.py:2483 -msgid "Use the escape key to close modal forms" -msgstr "" - -#: common/models.py:2488 -msgid "Fixed Navbar" +#: common/models.py:2487 +msgid "Exclude Inactive Purchase Orders" msgstr "" #: common/models.py:2489 -msgid "The navbar position is fixed to the top of the screen" -msgstr "" - -#: common/models.py:2494 -msgid "Date Format" +msgid "Exclude inactive purchase orders from search preview window" msgstr "" #: common/models.py:2495 -msgid "Preferred format for displaying dates" +msgid "Search Sales Orders" msgstr "" -#: common/models.py:2508 part/templates/part/detail.html:41 -msgid "Part Scheduling" +#: common/models.py:2496 +msgid "Display sales orders in search preview window" +msgstr "" + +#: common/models.py:2501 +msgid "Exclude Inactive Sales Orders" +msgstr "" + +#: common/models.py:2503 +msgid "Exclude inactive sales orders from search preview window" msgstr "" #: common/models.py:2509 -msgid "Display part scheduling information" +msgid "Search Return Orders" msgstr "" -#: common/models.py:2514 part/templates/part/detail.html:62 -msgid "Part Stocktake" +#: common/models.py:2510 +msgid "Display return orders in search preview window" msgstr "" -#: common/models.py:2516 -msgid "Display part stocktake information (if stocktake functionality is enabled)" +#: common/models.py:2515 +msgid "Exclude Inactive Return Orders" msgstr "" -#: common/models.py:2522 -msgid "Table String Length" +#: common/models.py:2517 +msgid "Exclude inactive return orders from search preview window" msgstr "" -#: common/models.py:2524 -msgid "Maximum length limit for strings displayed in table views" +#: common/models.py:2523 +msgid "Search Preview Results" msgstr "" -#: common/models.py:2530 -msgid "Receive error reports" +#: common/models.py:2525 +msgid "Number of results to show in each section of the search preview window" msgstr "" #: common/models.py:2531 -msgid "Receive notifications for system errors" +msgid "Regex Search" msgstr "" -#: common/models.py:2536 -msgid "Last used printing machines" +#: common/models.py:2532 +msgid "Enable regular expressions in search queries" msgstr "" #: common/models.py:2537 +msgid "Whole Word Search" +msgstr "" + +#: common/models.py:2538 +msgid "Search queries return results for whole word matches" +msgstr "" + +#: common/models.py:2543 +msgid "Show Quantity in Forms" +msgstr "" + +#: common/models.py:2544 +msgid "Display available part quantity in some forms" +msgstr "" + +#: common/models.py:2549 +msgid "Escape Key Closes Forms" +msgstr "" + +#: common/models.py:2550 +msgid "Use the escape key to close modal forms" +msgstr "" + +#: common/models.py:2555 +msgid "Fixed Navbar" +msgstr "" + +#: common/models.py:2556 +msgid "The navbar position is fixed to the top of the screen" +msgstr "" + +#: common/models.py:2561 +msgid "Date Format" +msgstr "" + +#: common/models.py:2562 +msgid "Preferred format for displaying dates" +msgstr "" + +#: common/models.py:2575 part/templates/part/detail.html:41 +msgid "Part Scheduling" +msgstr "" + +#: common/models.py:2576 +msgid "Display part scheduling information" +msgstr "" + +#: common/models.py:2581 part/templates/part/detail.html:62 +msgid "Part Stocktake" +msgstr "" + +#: common/models.py:2583 +msgid "Display part stocktake information (if stocktake functionality is enabled)" +msgstr "" + +#: common/models.py:2589 +msgid "Table String Length" +msgstr "" + +#: common/models.py:2591 +msgid "Maximum length limit for strings displayed in table views" +msgstr "" + +#: common/models.py:2597 +msgid "Receive error reports" +msgstr "" + +#: common/models.py:2598 +msgid "Receive notifications for system errors" +msgstr "" + +#: common/models.py:2603 +msgid "Last used printing machines" +msgstr "" + +#: common/models.py:2604 msgid "Save the last used printing machines for a user" msgstr "" -#: common/models.py:2557 common/models.py:2558 common/models.py:2715 -#: common/models.py:2716 common/models.py:2961 common/models.py:2962 -#: common/models.py:3288 common/models.py:3289 importer/models.py:88 -#: part/models.py:3307 part/models.py:3394 part/models.py:3468 -#: part/models.py:3496 plugin/models.py:274 plugin/models.py:275 -#: report/templates/report/inventree_test_report.html:105 -#: templates/js/translated/stock.js:3120 users/models.py:111 +#: common/models.py:2621 common/models.py:2622 common/models.py:2779 +#: common/models.py:2780 common/models.py:3025 common/models.py:3026 +#: common/models.py:3349 common/models.py:3350 common/models.py:3534 +#: importer/models.py:89 part/models.py:3358 part/models.py:3445 +#: part/models.py:3519 part/models.py:3547 plugin/models.py:313 +#: plugin/models.py:314 report/templates/report/inventree_test_report.html:105 +#: templates/js/translated/stock.js:3121 users/models.py:111 msgid "User" msgstr "" -#: common/models.py:2580 +#: common/models.py:2644 msgid "Price break quantity" msgstr "" -#: common/models.py:2587 company/serializers.py:513 order/admin.py:42 -#: order/models.py:1430 order/models.py:2417 -#: templates/js/translated/company.js:1823 templates/js/translated/part.js:1892 +#: common/models.py:2651 company/serializers.py:524 order/admin.py:42 +#: order/models.py:1447 order/models.py:2456 +#: templates/js/translated/company.js:1824 templates/js/translated/part.js:1892 #: templates/js/translated/pricing.js:621 #: templates/js/translated/return_order.js:739 msgid "Price" msgstr "" -#: common/models.py:2588 +#: common/models.py:2652 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:2692 common/models.py:2877 +#: common/models.py:2756 common/models.py:2941 msgid "Endpoint" msgstr "" -#: common/models.py:2693 +#: common/models.py:2757 msgid "Endpoint at which this webhook is received" msgstr "" -#: common/models.py:2703 +#: common/models.py:2767 msgid "Name for this webhook" msgstr "" -#: common/models.py:2707 +#: common/models.py:2771 msgid "Is this webhook active" msgstr "" -#: common/models.py:2723 users/models.py:159 +#: common/models.py:2787 users/models.py:159 msgid "Token" msgstr "" -#: common/models.py:2724 +#: common/models.py:2788 msgid "Token for access" msgstr "" -#: common/models.py:2732 +#: common/models.py:2796 msgid "Secret" msgstr "" -#: common/models.py:2733 +#: common/models.py:2797 msgid "Shared secret for HMAC" msgstr "" -#: common/models.py:2841 +#: common/models.py:2905 msgid "Message ID" msgstr "" -#: common/models.py:2842 +#: common/models.py:2906 msgid "Unique identifier for this message" msgstr "" -#: common/models.py:2850 +#: common/models.py:2914 msgid "Host" msgstr "" -#: common/models.py:2851 +#: common/models.py:2915 msgid "Host from which this message was received" msgstr "" -#: common/models.py:2859 +#: common/models.py:2923 msgid "Header" msgstr "" -#: common/models.py:2860 +#: common/models.py:2924 msgid "Header of this message" msgstr "" -#: common/models.py:2867 +#: common/models.py:2931 msgid "Body" msgstr "" -#: common/models.py:2868 +#: common/models.py:2932 msgid "Body of this message" msgstr "" -#: common/models.py:2878 +#: common/models.py:2942 msgid "Endpoint on which this message was received" msgstr "" -#: common/models.py:2883 +#: common/models.py:2947 msgid "Worked on" msgstr "" -#: common/models.py:2884 +#: common/models.py:2948 msgid "Was the work on this message finished?" msgstr "" -#: common/models.py:3010 +#: common/models.py:3074 msgid "Id" msgstr "" -#: common/models.py:3012 templates/js/translated/company.js:965 -#: templates/js/translated/news.js:44 +#: common/models.py:3076 part/serializers.py:271 +#: templates/js/translated/company.js:966 templates/js/translated/news.js:44 msgid "Title" msgstr "" -#: common/models.py:3014 common/models.py:3272 company/models.py:149 -#: company/models.py:446 company/models.py:512 company/models.py:818 -#: order/models.py:302 order/models.py:1385 order/models.py:1817 -#: part/admin.py:55 part/models.py:1057 +#: common/models.py:3078 common/models.py:3333 company/models.py:146 +#: company/models.py:443 company/models.py:509 company/models.py:815 +#: order/models.py:309 order/models.py:1402 order/models.py:1846 +#: part/admin.py:55 part/models.py:1118 #: part/templates/part/part_scheduling.html:11 #: report/templates/report/inventree_build_order_report.html:164 -#: stock/admin.py:229 templates/js/translated/company.js:1319 -#: templates/js/translated/company.js:1673 templates/js/translated/order.js:376 +#: stock/admin.py:230 templates/js/translated/company.js:1320 +#: templates/js/translated/company.js:1674 templates/js/translated/order.js:376 #: templates/js/translated/part.js:2475 -#: templates/js/translated/purchase_order.js:2110 -#: templates/js/translated/purchase_order.js:2274 +#: templates/js/translated/purchase_order.js:2094 +#: templates/js/translated/purchase_order.js:2258 #: templates/js/translated/return_order.js:778 -#: templates/js/translated/sales_order.js:1092 -#: templates/js/translated/sales_order.js:2023 +#: templates/js/translated/sales_order.js:1058 +#: templates/js/translated/sales_order.js:2004 msgid "Link" msgstr "" -#: common/models.py:3016 templates/js/translated/news.js:60 +#: common/models.py:3080 templates/js/translated/news.js:60 msgid "Published" msgstr "" -#: common/models.py:3018 templates/InvenTree/settings/plugin_settings.html:32 +#: common/models.py:3082 templates/InvenTree/settings/plugin_settings.html:32 #: templates/js/translated/news.js:56 templates/js/translated/plugin.js:103 msgid "Author" msgstr "" -#: common/models.py:3020 templates/js/translated/news.js:52 +#: common/models.py:3084 templates/js/translated/news.js:52 msgid "Summary" msgstr "" -#: common/models.py:3023 +#: common/models.py:3087 msgid "Read" msgstr "" -#: common/models.py:3023 +#: common/models.py:3087 msgid "Was this news item read?" msgstr "" -#: common/models.py:3040 company/models.py:159 part/models.py:1067 +#: common/models.py:3104 company/models.py:156 part/models.py:1128 #: report/templates/report/inventree_bill_of_materials_report.html:126 #: report/templates/report/inventree_bill_of_materials_report.html:148 #: report/templates/report/inventree_return_order_report.html:35 -#: stock/templates/stock/item_base.html:133 templates/503.html:31 +#: stock/templates/stock/item_base.html:130 templates/503.html:31 #: templates/hover_image.html:7 templates/hover_image.html:9 #: templates/modals.html:6 msgid "Image" msgstr "" -#: common/models.py:3040 +#: common/models.py:3104 msgid "Image file" msgstr "" -#: common/models.py:3052 common/models.py:3256 +#: common/models.py:3116 common/models.py:3317 msgid "Target model type for this image" msgstr "" -#: common/models.py:3056 +#: common/models.py:3120 msgid "Target model ID for this image" msgstr "" -#: common/models.py:3078 +#: common/models.py:3142 msgid "Custom Unit" msgstr "" -#: common/models.py:3099 +#: common/models.py:3160 msgid "Unit symbol must be unique" msgstr "" -#: common/models.py:3114 +#: common/models.py:3175 msgid "Unit name must be a valid identifier" msgstr "" -#: common/models.py:3133 +#: common/models.py:3194 msgid "Unit name" msgstr "" -#: common/models.py:3140 templates/InvenTree/settings/settings_staff_js.html:75 +#: common/models.py:3201 templates/InvenTree/settings/settings_staff_js.html:75 msgid "Symbol" msgstr "" -#: common/models.py:3141 +#: common/models.py:3202 msgid "Optional unit symbol" msgstr "" -#: common/models.py:3147 templates/InvenTree/settings/settings_staff_js.html:71 +#: common/models.py:3208 templates/InvenTree/settings/settings_staff_js.html:71 msgid "Definition" msgstr "" -#: common/models.py:3148 +#: common/models.py:3209 msgid "Unit definition" msgstr "" -#: common/models.py:3206 common/models.py:3263 stock/models.py:2558 -#: templates/js/translated/attachment.js:119 +#: common/models.py:3267 common/models.py:3324 stock/models.py:2674 +#: stock/serializers.py:244 templates/js/translated/attachment.js:119 #: templates/js/translated/attachment.js:345 msgid "Attachment" msgstr "" -#: common/models.py:3218 +#: common/models.py:3279 msgid "Missing file" msgstr "" -#: common/models.py:3219 +#: common/models.py:3280 msgid "Missing external link" msgstr "" -#: common/models.py:3264 +#: common/models.py:3325 msgid "Select file to attach" msgstr "" -#: common/models.py:3279 templates/js/translated/attachment.js:120 +#: common/models.py:3340 templates/js/translated/attachment.js:120 #: templates/js/translated/attachment.js:360 msgid "Comment" msgstr "" -#: common/models.py:3280 +#: common/models.py:3341 msgid "Attachment comment" msgstr "" -#: common/models.py:3296 +#: common/models.py:3357 msgid "Upload date" msgstr "" -#: common/models.py:3297 +#: common/models.py:3358 msgid "Date the file was uploaded" msgstr "" -#: common/models.py:3301 +#: common/models.py:3362 msgid "File size" msgstr "" -#: common/models.py:3301 +#: common/models.py:3362 msgid "File size in bytes" msgstr "" -#: common/models.py:3339 common/serializers.py:562 +#: common/models.py:3400 common/serializers.py:609 msgid "Invalid model type specified for attachment" msgstr "" -#: common/notifications.py:314 +#: common/models.py:3409 plugin/models.py:43 users/models.py:100 +msgid "Key" +msgstr "" + +#: common/models.py:3410 +msgid "Value that will be saved in the models database" +msgstr "" + +#: common/models.py:3413 +msgid "Name of the state" +msgstr "" + +#: common/models.py:3417 part/serializers.py:273 +msgid "Label" +msgstr "" + +#: common/models.py:3418 +msgid "Label that will be displayed in the frontend" +msgstr "" + +#: common/models.py:3424 +msgid "Color" +msgstr "" + +#: common/models.py:3425 +msgid "Color that will be displayed in the frontend" +msgstr "" + +#: common/models.py:3428 +msgid "Logical Key" +msgstr "" + +#: common/models.py:3430 +msgid "State logical key that is equal to this custom state in business logic" +msgstr "" + +#: common/models.py:3438 part/serializers.py:275 +msgid "Model" +msgstr "" + +#: common/models.py:3439 +msgid "Model this state is associated with" +msgstr "" + +#: common/models.py:3443 +msgid "Reference Status Set" +msgstr "" + +#: common/models.py:3444 +msgid "Status set that is extended with this custom state" +msgstr "" + +#: common/models.py:3450 +msgid "Custom State" +msgstr "" + +#: common/models.py:3451 +msgid "Custom States" +msgstr "" + +#: common/models.py:3466 +msgid "Model must be selected" +msgstr "" + +#: common/models.py:3469 +msgid "Key must be selected" +msgstr "" + +#: common/models.py:3472 +msgid "Logical key must be selected" +msgstr "" + +#: common/models.py:3476 +msgid "Key must be different from logical key" +msgstr "" + +#: common/models.py:3480 +msgid "Reference status must be selected" +msgstr "" + +#: common/models.py:3492 +msgid "Reference status set not found" +msgstr "" + +#: common/models.py:3498 +msgid "Key must be different from the logical keys of the reference status" +msgstr "" + +#: common/models.py:3504 +msgid "Logical key must be in the logical keys of the reference status" +msgstr "" + +#: common/models.py:3519 +msgid "Barcode Scan" +msgstr "" + +#: common/models.py:3523 importer/models.py:512 part/models.py:4009 +msgid "Data" +msgstr "" + +#: common/models.py:3524 +msgid "Barcode data" +msgstr "" + +#: common/models.py:3535 +msgid "User who scanned the barcode" +msgstr "" + +#: common/models.py:3540 importer/models.py:60 +msgid "Timestamp" +msgstr "" + +#: common/models.py:3541 +msgid "Date and time of the barcode scan" +msgstr "" + +#: common/models.py:3547 +msgid "URL endpoint which processed the barcode" +msgstr "" + +#: common/models.py:3554 order/models.py:1437 plugin/serializers.py:89 +msgid "Context" +msgstr "" + +#: common/models.py:3555 +msgid "Context data for the barcode scan" +msgstr "" + +#: common/models.py:3562 +msgid "Response" +msgstr "" + +#: common/models.py:3563 +msgid "Response data from the barcode scan" +msgstr "" + +#: common/models.py:3569 report/templates/report/inventree_test_report.html:103 +#: stock/models.py:2660 +msgid "Result" +msgstr "" + +#: common/models.py:3570 +msgid "Was the barcode scan successful?" +msgstr "" + +#: common/notifications.py:328 #, python-brace-format msgid "New {verbose_name}" msgstr "" -#: common/notifications.py:316 +#: common/notifications.py:330 msgid "A new order has been created and assigned to you" msgstr "" -#: common/notifications.py:322 +#: common/notifications.py:336 #, python-brace-format msgid "{verbose_name} canceled" msgstr "" -#: common/notifications.py:324 +#: common/notifications.py:338 msgid "A order that is assigned to you was canceled" msgstr "" -#: common/notifications.py:330 common/notifications.py:337 order/api.py:462 +#: common/notifications.py:344 common/notifications.py:351 order/api.py:440 msgid "Items Received" msgstr "" -#: common/notifications.py:332 +#: common/notifications.py:346 msgid "Items have been received against a purchase order" msgstr "" -#: common/notifications.py:339 +#: common/notifications.py:353 msgid "Items have been received against a return order" msgstr "" -#: common/notifications.py:457 +#: common/notifications.py:475 msgid "Error raised by plugin" msgstr "" -#: common/serializers.py:375 +#: common/serializers.py:423 msgid "Is Running" msgstr "" -#: common/serializers.py:381 +#: common/serializers.py:429 msgid "Pending Tasks" msgstr "" -#: common/serializers.py:387 +#: common/serializers.py:435 msgid "Scheduled Tasks" msgstr "" -#: common/serializers.py:393 +#: common/serializers.py:441 msgid "Failed Tasks" msgstr "" -#: common/serializers.py:408 +#: common/serializers.py:456 msgid "Task ID" msgstr "" -#: common/serializers.py:408 +#: common/serializers.py:456 msgid "Unique task ID" msgstr "" -#: common/serializers.py:410 +#: common/serializers.py:458 msgid "Lock" msgstr "" -#: common/serializers.py:410 +#: common/serializers.py:458 msgid "Lock time" msgstr "" -#: common/serializers.py:412 +#: common/serializers.py:460 msgid "Task name" msgstr "" -#: common/serializers.py:414 +#: common/serializers.py:462 msgid "Function" msgstr "" -#: common/serializers.py:414 +#: common/serializers.py:462 msgid "Function name" msgstr "" -#: common/serializers.py:416 +#: common/serializers.py:464 msgid "Arguments" msgstr "" -#: common/serializers.py:416 +#: common/serializers.py:464 msgid "Task arguments" msgstr "" -#: common/serializers.py:419 +#: common/serializers.py:467 msgid "Keyword Arguments" msgstr "" -#: common/serializers.py:419 +#: common/serializers.py:467 msgid "Task keyword arguments" msgstr "" -#: common/serializers.py:529 +#: common/serializers.py:577 msgid "Filename" msgstr "" -#: common/serializers.py:536 report/api.py:100 report/serializers.py:53 +#: common/serializers.py:584 report/api.py:100 report/serializers.py:54 msgid "Model Type" msgstr "" -#: common/serializers.py:565 +#: common/serializers.py:612 msgid "User does not have permission to create or edit attachments for this model" msgstr "" @@ -4116,15 +4295,15 @@ msgstr "" msgid "Match Items" msgstr "" -#: common/views.py:401 +#: common/views.py:397 msgid "Fields matching failed" msgstr "" -#: common/views.py:464 +#: common/views.py:460 msgid "Parts imported" msgstr "" -#: common/views.py:494 order/templates/order/order_wizard/match_fields.html:27 +#: common/views.py:490 order/templates/order/order_wizard/match_fields.html:27 #: order/templates/order/order_wizard/match_parts.html:19 #: order/templates/order/order_wizard/po_upload.html:49 #: part/templates/part/import_wizard/match_fields.html:27 @@ -4155,429 +4334,429 @@ msgstr "" msgid "Supplier is Active" msgstr "" -#: company/models.py:100 company/models.py:371 +#: company/models.py:97 company/models.py:368 #: company/templates/company/company_base.html:8 #: company/templates/company/company_base.html:12 stock/api.py:812 -#: templates/InvenTree/search.html:178 templates/js/translated/company.js:496 +#: templates/InvenTree/search.html:178 templates/js/translated/company.js:497 msgid "Company" msgstr "" -#: company/models.py:101 company/views.py:51 +#: company/models.py:98 company/views.py:51 #: templates/js/translated/search.js:192 msgid "Companies" msgstr "" -#: company/models.py:117 +#: company/models.py:114 msgid "Company description" msgstr "" -#: company/models.py:118 +#: company/models.py:115 msgid "Description of the company" msgstr "" -#: company/models.py:123 company/templates/company/company_base.html:106 +#: company/models.py:120 company/templates/company/company_base.html:106 #: templates/InvenTree/settings/plugin_settings.html:54 -#: templates/js/translated/company.js:532 +#: templates/js/translated/company.js:533 msgid "Website" msgstr "" -#: company/models.py:123 +#: company/models.py:120 msgid "Company website URL" msgstr "" -#: company/models.py:128 +#: company/models.py:125 msgid "Phone number" msgstr "" -#: company/models.py:130 +#: company/models.py:127 msgid "Contact phone number" msgstr "" -#: company/models.py:137 +#: company/models.py:134 msgid "Contact email address" msgstr "" -#: company/models.py:142 company/models.py:275 -#: company/templates/company/company_base.html:145 order/models.py:342 -#: order/templates/order/order_base.html:208 -#: order/templates/order/return_order_base.html:177 -#: order/templates/order/sales_order_base.html:221 +#: company/models.py:139 company/models.py:272 +#: company/templates/company/company_base.html:145 order/models.py:349 +#: order/templates/order/order_base.html:217 +#: order/templates/order/return_order_base.html:178 +#: order/templates/order/sales_order_base.html:222 msgid "Contact" msgstr "" -#: company/models.py:144 +#: company/models.py:141 msgid "Point of contact" msgstr "" -#: company/models.py:150 +#: company/models.py:147 msgid "Link to external company information" msgstr "" -#: company/models.py:163 +#: company/models.py:160 msgid "Is this company active?" msgstr "" -#: company/models.py:168 +#: company/models.py:165 msgid "Is customer" msgstr "" -#: company/models.py:169 +#: company/models.py:166 msgid "Do you sell items to this company?" msgstr "" -#: company/models.py:174 +#: company/models.py:171 msgid "Is supplier" msgstr "" -#: company/models.py:175 +#: company/models.py:172 msgid "Do you purchase items from this company?" msgstr "" -#: company/models.py:180 +#: company/models.py:177 msgid "Is manufacturer" msgstr "" -#: company/models.py:181 +#: company/models.py:178 msgid "Does this company manufacture parts?" msgstr "" -#: company/models.py:189 +#: company/models.py:186 msgid "Default currency used for this company" msgstr "" -#: company/models.py:314 company/templates/company/company_base.html:124 -#: order/models.py:352 order/templates/order/order_base.html:215 -#: order/templates/order/return_order_base.html:184 -#: order/templates/order/sales_order_base.html:228 +#: company/models.py:311 company/templates/company/company_base.html:124 +#: order/models.py:359 order/templates/order/order_base.html:224 +#: order/templates/order/return_order_base.html:185 +#: order/templates/order/sales_order_base.html:229 msgid "Address" msgstr "" -#: company/models.py:315 company/templates/company/sidebar.html:35 +#: company/models.py:312 company/templates/company/sidebar.html:35 msgid "Addresses" msgstr "" -#: company/models.py:372 +#: company/models.py:369 msgid "Select company" msgstr "" -#: company/models.py:377 +#: company/models.py:374 msgid "Address title" msgstr "" -#: company/models.py:378 +#: company/models.py:375 msgid "Title describing the address entry" msgstr "" -#: company/models.py:384 +#: company/models.py:381 msgid "Primary address" msgstr "" -#: company/models.py:385 +#: company/models.py:382 msgid "Set as primary address" msgstr "" -#: company/models.py:390 templates/js/translated/company.js:914 -#: templates/js/translated/company.js:971 +#: company/models.py:387 templates/js/translated/company.js:915 +#: templates/js/translated/company.js:972 msgid "Line 1" msgstr "" -#: company/models.py:391 +#: company/models.py:388 msgid "Address line 1" msgstr "" -#: company/models.py:397 templates/js/translated/company.js:915 -#: templates/js/translated/company.js:977 +#: company/models.py:394 templates/js/translated/company.js:916 +#: templates/js/translated/company.js:978 msgid "Line 2" msgstr "" -#: company/models.py:398 +#: company/models.py:395 msgid "Address line 2" msgstr "" -#: company/models.py:404 company/models.py:405 -#: templates/js/translated/company.js:983 +#: company/models.py:401 company/models.py:402 +#: templates/js/translated/company.js:984 msgid "Postal code" msgstr "" -#: company/models.py:411 +#: company/models.py:408 msgid "City/Region" msgstr "" -#: company/models.py:412 +#: company/models.py:409 msgid "Postal code city/region" msgstr "" -#: company/models.py:418 +#: company/models.py:415 msgid "State/Province" msgstr "" -#: company/models.py:419 +#: company/models.py:416 msgid "State or province" msgstr "" -#: company/models.py:425 templates/js/translated/company.js:1001 +#: company/models.py:422 templates/js/translated/company.js:1002 msgid "Country" msgstr "" -#: company/models.py:426 +#: company/models.py:423 msgid "Address country" msgstr "" -#: company/models.py:432 +#: company/models.py:429 msgid "Courier shipping notes" msgstr "" -#: company/models.py:433 +#: company/models.py:430 msgid "Notes for shipping courier" msgstr "" -#: company/models.py:439 +#: company/models.py:436 msgid "Internal shipping notes" msgstr "" -#: company/models.py:440 +#: company/models.py:437 msgid "Shipping notes for internal use" msgstr "" -#: company/models.py:447 +#: company/models.py:444 msgid "Link to address information (external)" msgstr "" -#: company/models.py:470 company/models.py:587 company/models.py:811 +#: company/models.py:467 company/models.py:584 company/models.py:808 #: company/templates/company/manufacturer_part.html:7 #: company/templates/company/manufacturer_part.html:24 -#: stock/templates/stock/item_base.html:217 +#: stock/templates/stock/item_base.html:214 msgid "Manufacturer Part" msgstr "" -#: company/models.py:487 company/models.py:779 stock/models.py:787 -#: stock/serializers.py:445 stock/templates/stock/item_base.html:142 +#: company/models.py:484 company/models.py:776 stock/models.py:864 +#: stock/serializers.py:455 stock/templates/stock/item_base.html:139 #: templates/js/translated/bom.js:622 msgid "Base Part" msgstr "" -#: company/models.py:489 company/models.py:781 +#: company/models.py:486 company/models.py:778 msgid "Select part" msgstr "" -#: company/models.py:498 company/templates/company/company_base.html:82 +#: company/models.py:495 company/templates/company/company_base.html:82 #: company/templates/company/manufacturer_part.html:90 -#: company/templates/company/supplier_part.html:145 part/serializers.py:554 -#: stock/templates/stock/item_base.html:207 -#: templates/js/translated/company.js:507 -#: templates/js/translated/company.js:1118 -#: templates/js/translated/company.js:1296 -#: templates/js/translated/company.js:1611 +#: company/templates/company/supplier_part.html:146 part/serializers.py:598 +#: stock/templates/stock/item_base.html:204 +#: templates/js/translated/company.js:508 +#: templates/js/translated/company.js:1119 +#: templates/js/translated/company.js:1297 +#: templates/js/translated/company.js:1612 #: templates/js/translated/table_filters.js:812 msgid "Manufacturer" msgstr "" -#: company/models.py:499 +#: company/models.py:496 msgid "Select manufacturer" msgstr "" -#: company/models.py:505 company/templates/company/manufacturer_part.html:101 -#: company/templates/company/supplier_part.html:153 order/serializers.py:556 -#: part/serializers.py:564 templates/js/translated/company.js:351 -#: templates/js/translated/company.js:1117 -#: templates/js/translated/company.js:1312 -#: templates/js/translated/company.js:1630 templates/js/translated/part.js:1807 -#: templates/js/translated/purchase_order.js:1921 -#: templates/js/translated/purchase_order.js:2123 +#: company/models.py:502 company/templates/company/manufacturer_part.html:101 +#: company/templates/company/supplier_part.html:154 order/serializers.py:641 +#: part/serializers.py:608 templates/js/translated/company.js:352 +#: templates/js/translated/company.js:1118 +#: templates/js/translated/company.js:1313 +#: templates/js/translated/company.js:1631 templates/js/translated/part.js:1807 +#: templates/js/translated/purchase_order.js:1905 +#: templates/js/translated/purchase_order.js:2107 msgid "MPN" msgstr "" -#: company/models.py:513 +#: company/models.py:510 msgid "URL for external manufacturer part link" msgstr "" -#: company/models.py:522 +#: company/models.py:519 msgid "Manufacturer part description" msgstr "" -#: company/models.py:575 +#: company/models.py:572 msgid "Manufacturer Part Parameter" msgstr "" -#: company/models.py:594 +#: company/models.py:591 msgid "Parameter name" msgstr "" -#: company/models.py:600 report/templates/report/inventree_test_report.html:104 -#: stock/models.py:2550 templates/js/translated/company.js:1166 -#: templates/js/translated/company.js:1419 templates/js/translated/part.js:1499 +#: company/models.py:597 report/templates/report/inventree_test_report.html:104 +#: stock/models.py:2666 templates/js/translated/company.js:1167 +#: templates/js/translated/company.js:1420 templates/js/translated/part.js:1499 #: templates/js/translated/stock.js:1607 msgid "Value" msgstr "" -#: company/models.py:601 +#: company/models.py:598 msgid "Parameter value" msgstr "" -#: company/models.py:608 company/templates/company/supplier_part.html:168 -#: part/admin.py:57 part/models.py:1147 part/models.py:3771 -#: part/templates/part/part_base.html:293 -#: templates/js/translated/company.js:1425 templates/js/translated/part.js:1518 +#: company/models.py:605 company/templates/company/supplier_part.html:169 +#: part/admin.py:57 part/models.py:1208 part/models.py:3822 +#: part/templates/part/part_base.html:301 +#: templates/js/translated/company.js:1426 templates/js/translated/part.js:1518 #: templates/js/translated/part.js:1622 templates/js/translated/part.js:2376 msgid "Units" msgstr "" -#: company/models.py:609 +#: company/models.py:606 msgid "Parameter units" msgstr "" -#: company/models.py:662 company/templates/company/supplier_part.html:7 -#: company/templates/company/supplier_part.html:24 order/api.py:442 -#: order/serializers.py:491 stock/models.py:798 -#: stock/templates/stock/item_base.html:233 -#: templates/js/translated/build.js:1052 -#: templates/js/translated/company.js:1600 -#: templates/js/translated/purchase_order.js:752 -#: templates/js/translated/stock.js:2365 +#: company/models.py:659 company/templates/company/supplier_part.html:8 +#: company/templates/company/supplier_part.html:25 order/api.py:392 +#: order/serializers.py:576 stock/models.py:875 +#: stock/templates/stock/item_base.html:230 +#: templates/js/translated/build.js:1055 +#: templates/js/translated/company.js:1601 +#: templates/js/translated/purchase_order.js:735 +#: templates/js/translated/stock.js:2366 msgid "Supplier Part" msgstr "" -#: company/models.py:719 +#: company/models.py:716 msgid "Pack units must be compatible with the base part units" msgstr "" -#: company/models.py:726 +#: company/models.py:723 msgid "Pack units must be greater than zero" msgstr "" -#: company/models.py:740 +#: company/models.py:737 msgid "Linked manufacturer part must reference the same base part" msgstr "" -#: company/models.py:789 company/templates/company/company_base.html:87 -#: company/templates/company/supplier_part.html:129 order/models.py:491 -#: order/templates/order/order_base.html:141 part/bom.py:280 part/bom.py:318 -#: part/serializers.py:538 plugin/builtin/suppliers/digikey.py:25 +#: company/models.py:786 company/templates/company/company_base.html:87 +#: company/templates/company/supplier_part.html:130 order/models.py:503 +#: order/templates/order/order_base.html:150 part/bom.py:279 part/bom.py:314 +#: part/serializers.py:582 plugin/builtin/suppliers/digikey.py:25 #: plugin/builtin/suppliers/lcsc.py:26 plugin/builtin/suppliers/mouser.py:24 -#: plugin/builtin/suppliers/tme.py:26 stock/templates/stock/item_base.html:224 +#: plugin/builtin/suppliers/tme.py:26 stock/templates/stock/item_base.html:221 #: templates/email/overdue_purchase_order.html:16 -#: templates/js/translated/company.js:350 -#: templates/js/translated/company.js:511 -#: templates/js/translated/company.js:1584 templates/js/translated/part.js:1775 +#: templates/js/translated/company.js:351 +#: templates/js/translated/company.js:512 +#: templates/js/translated/company.js:1585 templates/js/translated/part.js:1775 #: templates/js/translated/pricing.js:498 -#: templates/js/translated/purchase_order.js:1759 +#: templates/js/translated/purchase_order.js:1743 #: templates/js/translated/table_filters.js:816 msgid "Supplier" msgstr "" -#: company/models.py:790 +#: company/models.py:787 msgid "Select supplier" msgstr "" -#: company/models.py:796 part/serializers.py:549 +#: company/models.py:793 part/serializers.py:593 msgid "Supplier stock keeping unit" msgstr "" -#: company/models.py:802 +#: company/models.py:799 msgid "Is this supplier part active?" msgstr "" -#: company/models.py:812 +#: company/models.py:809 msgid "Select manufacturer part" msgstr "" -#: company/models.py:819 +#: company/models.py:816 msgid "URL for external supplier part link" msgstr "" -#: company/models.py:828 +#: company/models.py:825 msgid "Supplier part description" msgstr "" -#: company/models.py:835 company/templates/company/supplier_part.html:187 -#: order/serializers.py:698 part/admin.py:415 part/models.py:4288 +#: company/models.py:832 company/templates/company/supplier_part.html:188 +#: order/serializers.py:783 part/admin.py:415 part/models.py:4345 #: part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_bill_of_materials_report.html:140 #: report/templates/report/inventree_purchase_order_report.html:32 #: report/templates/report/inventree_return_order_report.html:27 #: report/templates/report/inventree_sales_order_report.html:32 #: report/templates/report/inventree_stock_location_report.html:105 -#: stock/serializers.py:776 templates/js/translated/purchase_order.js:1185 -#: templates/js/translated/purchase_order.js:1344 +#: stock/serializers.py:807 templates/js/translated/purchase_order.js:1168 +#: templates/js/translated/purchase_order.js:1327 msgid "Note" msgstr "" -#: company/models.py:844 part/models.py:2117 +#: company/models.py:841 part/models.py:2177 msgid "base cost" msgstr "" -#: company/models.py:845 part/models.py:2118 +#: company/models.py:842 part/models.py:2178 msgid "Minimum charge (e.g. stocking fee)" msgstr "" -#: company/models.py:853 +#: company/models.py:850 msgid "Part packaging" msgstr "" -#: company/models.py:858 templates/js/translated/company.js:1651 +#: company/models.py:855 templates/js/translated/company.js:1652 #: templates/js/translated/part.js:1828 templates/js/translated/part.js:1884 -#: templates/js/translated/purchase_order.js:311 -#: templates/js/translated/purchase_order.js:841 -#: templates/js/translated/purchase_order.js:1103 -#: templates/js/translated/purchase_order.js:2154 -#: templates/js/translated/purchase_order.js:2171 +#: templates/js/translated/purchase_order.js:294 +#: templates/js/translated/purchase_order.js:824 +#: templates/js/translated/purchase_order.js:1086 +#: templates/js/translated/purchase_order.js:2138 +#: templates/js/translated/purchase_order.js:2155 msgid "Pack Quantity" msgstr "" -#: company/models.py:860 +#: company/models.py:857 msgid "Total quantity supplied in a single pack. Leave empty for single items." msgstr "" -#: company/models.py:879 part/models.py:2124 +#: company/models.py:876 part/models.py:2184 msgid "multiple" msgstr "" -#: company/models.py:880 +#: company/models.py:877 msgid "Order multiple" msgstr "" -#: company/models.py:892 +#: company/models.py:889 msgid "Quantity available from supplier" msgstr "" -#: company/models.py:898 +#: company/models.py:895 msgid "Availability Updated" msgstr "" -#: company/models.py:899 +#: company/models.py:896 msgid "Date of last update of availability data" msgstr "" -#: company/models.py:1027 +#: company/models.py:1024 msgid "Supplier Price Break" msgstr "" -#: company/serializers.py:174 +#: company/serializers.py:178 msgid "Default currency used for this supplier" msgstr "" -#: company/serializers.py:210 +#: company/serializers.py:214 msgid "Company Name" msgstr "" -#: company/serializers.py:393 part/admin.py:126 part/serializers.py:898 -#: part/templates/part/part_base.html:197 -#: templates/js/translated/company.js:1689 +#: company/serializers.py:397 part/admin.py:126 part/serializers.py:950 +#: part/templates/part/part_base.html:198 stock/serializers.py:474 +#: templates/js/translated/company.js:1690 #: templates/js/translated/table_filters.js:362 msgid "In Stock" msgstr "" #: company/templates/company/company_base.html:16 -#: part/templates/part/part_base.html:146 -#: templates/js/translated/company.js:1287 -#: templates/js/translated/company.js:1575 -#: templates/js/translated/model_renderers.js:313 +#: part/templates/part/part_base.html:147 +#: templates/js/translated/company.js:1288 +#: templates/js/translated/company.js:1576 +#: templates/js/translated/model_renderers.js:316 #: templates/js/translated/part.js:817 templates/js/translated/part.js:1225 msgid "Inactive" msgstr "" #: company/templates/company/company_base.html:27 -#: templates/js/translated/purchase_order.js:242 +#: templates/js/translated/purchase_order.js:224 msgid "Create Purchase Order" msgstr "" @@ -4590,7 +4769,7 @@ msgid "Edit company information" msgstr "" #: company/templates/company/company_base.html:39 -#: templates/js/translated/company.js:445 +#: templates/js/translated/company.js:446 msgid "Edit Company" msgstr "" @@ -4605,11 +4784,12 @@ msgstr "" #: company/templates/company/company_base.html:53 #: company/templates/company/manufacturer_part.html:51 -#: company/templates/company/supplier_part.html:83 +#: company/templates/company/supplier_part.html:84 #: part/templates/part/part_thumb.html:20 #: report/templates/report/inventree_build_order_report.html:98 #: report/templates/report/inventree_purchase_order_report.html:40 #: report/templates/report/inventree_sales_order_report.html:40 +#: report/templates/report/inventree_sales_order_shipment_report.html:37 #: report/templates/report/inventree_test_report.html:84 #: report/templates/report/inventree_test_report.html:162 msgid "Part image" @@ -4630,16 +4810,16 @@ msgstr "" msgid "Delete image" msgstr "" -#: company/templates/company/company_base.html:92 order/models.py:990 -#: order/models.py:2147 order/templates/order/return_order_base.html:134 -#: order/templates/order/sales_order_base.html:151 stock/models.py:840 -#: stock/models.py:841 stock/serializers.py:1329 -#: stock/templates/stock/item_base.html:405 +#: company/templates/company/company_base.html:92 order/models.py:1017 +#: order/models.py:2186 order/templates/order/return_order_base.html:135 +#: order/templates/order/sales_order_base.html:152 stock/models.py:917 +#: stock/models.py:918 stock/serializers.py:1360 +#: stock/templates/stock/item_base.html:402 #: templates/email/overdue_sales_order.html:16 -#: templates/js/translated/company.js:503 +#: templates/js/translated/company.js:504 #: templates/js/translated/return_order.js:295 -#: templates/js/translated/sales_order.js:820 -#: templates/js/translated/stock.js:3043 +#: templates/js/translated/sales_order.js:779 +#: templates/js/translated/stock.js:3044 #: templates/js/translated/table_filters.js:820 msgid "Customer" msgstr "" @@ -4653,7 +4833,7 @@ msgid "Phone" msgstr "" #: company/templates/company/company_base.html:211 -#: part/templates/part/part_base.html:536 +#: part/templates/part/part_base.html:544 msgid "Remove Image" msgstr "" @@ -4662,19 +4842,19 @@ msgid "Remove associated image from this company" msgstr "" #: company/templates/company/company_base.html:214 -#: part/templates/part/part_base.html:539 +#: part/templates/part/part_base.html:547 #: templates/InvenTree/settings/user.html:88 #: templates/InvenTree/settings/user_sso.html:43 msgid "Remove" msgstr "" #: company/templates/company/company_base.html:243 -#: part/templates/part/part_base.html:568 +#: part/templates/part/part_base.html:576 msgid "Upload Image" msgstr "" #: company/templates/company/company_base.html:258 -#: part/templates/part/part_base.html:622 +#: part/templates/part/part_base.html:630 msgid "Download Image" msgstr "" @@ -4714,7 +4894,7 @@ msgstr "" #: company/templates/company/detail.html:75 #: company/templates/company/sidebar.html:12 #: company/templates/company/supplier_part_sidebar.html:7 -#: order/templates/order/order_base.html:13 +#: order/templates/order/order_base.html:14 #: order/templates/order/purchase_orders.html:8 #: order/templates/order/purchase_orders.html:12 #: part/templates/part/detail.html:122 part/templates/part/part_sidebar.html:35 @@ -4737,7 +4917,7 @@ msgstr "" #: company/templates/company/detail.html:101 #: company/templates/company/sidebar.html:21 -#: order/templates/order/sales_order_base.html:13 +#: order/templates/order/sales_order_base.html:14 #: order/templates/order/sales_orders.html:8 #: order/templates/order/sales_orders.html:15 #: part/templates/part/detail.html:143 part/templates/part/part_sidebar.html:39 @@ -4764,7 +4944,7 @@ msgstr "" #: company/templates/company/detail.html:142 #: company/templates/company/sidebar.html:29 -#: order/templates/order/return_order_base.html:13 +#: order/templates/order/return_order_base.html:14 #: order/templates/order/return_orders.html:8 #: order/templates/order/return_orders.html:15 #: templates/InvenTree/settings/sidebar.html:61 @@ -4811,24 +4991,24 @@ msgid "Manufacturers" msgstr "" #: company/templates/company/manufacturer_part.html:35 -#: company/templates/company/supplier_part.html:227 -#: part/templates/part/detail.html:125 part/templates/part/part_base.html:83 +#: company/templates/company/supplier_part.html:228 +#: part/templates/part/detail.html:125 part/templates/part/part_base.html:84 msgid "Order part" msgstr "" #: company/templates/company/manufacturer_part.html:39 -#: templates/js/translated/company.js:1343 +#: templates/js/translated/company.js:1344 msgid "Edit manufacturer part" msgstr "" #: company/templates/company/manufacturer_part.html:43 -#: templates/js/translated/company.js:1344 +#: templates/js/translated/company.js:1345 msgid "Delete manufacturer part" msgstr "" #: company/templates/company/manufacturer_part.html:65 -#: company/templates/company/supplier_part.html:97 order/api.py:448 -#: order/serializers.py:564 +#: company/templates/company/supplier_part.html:98 order/api.py:411 +#: order/serializers.py:649 msgid "Internal Part" msgstr "" @@ -4837,8 +5017,8 @@ msgid "No manufacturer information available" msgstr "" #: company/templates/company/manufacturer_part.html:119 -#: company/templates/company/supplier_part.html:15 company/views.py:31 -#: part/admin.py:122 part/serializers.py:904 +#: company/templates/company/supplier_part.html:16 company/views.py:31 +#: part/admin.py:122 part/serializers.py:956 #: part/templates/part/part_sidebar.html:33 templates/InvenTree/search.html:190 #: templates/navbar.html:48 msgid "Suppliers" @@ -4887,112 +5067,113 @@ msgstr "" msgid "Contacts" msgstr "" -#: company/templates/company/supplier_part.html:50 -#: templates/js/translated/company.js:1526 +#: company/templates/company/supplier_part.html:51 +#: templates/js/translated/company.js:1527 msgid "Supplier part actions" msgstr "" -#: company/templates/company/supplier_part.html:55 #: company/templates/company/supplier_part.html:56 -#: company/templates/company/supplier_part.html:228 +#: company/templates/company/supplier_part.html:57 +#: company/templates/company/supplier_part.html:229 #: part/templates/part/detail.html:126 msgid "Order Part" msgstr "" -#: company/templates/company/supplier_part.html:60 #: company/templates/company/supplier_part.html:61 +#: company/templates/company/supplier_part.html:62 msgid "Update Availability" msgstr "" -#: company/templates/company/supplier_part.html:63 #: company/templates/company/supplier_part.html:64 -#: templates/js/translated/company.js:294 +#: company/templates/company/supplier_part.html:65 +#: templates/js/translated/company.js:295 msgid "Edit Supplier Part" msgstr "" -#: company/templates/company/supplier_part.html:68 #: company/templates/company/supplier_part.html:69 -#: templates/js/translated/company.js:269 +#: company/templates/company/supplier_part.html:70 +#: templates/js/translated/company.js:270 msgid "Duplicate Supplier Part" msgstr "" -#: company/templates/company/supplier_part.html:73 +#: company/templates/company/supplier_part.html:74 msgid "Delete Supplier Part" msgstr "" -#: company/templates/company/supplier_part.html:74 +#: company/templates/company/supplier_part.html:75 msgid "Delete Supplier Part" msgstr "" -#: company/templates/company/supplier_part.html:133 +#: company/templates/company/supplier_part.html:134 +#: order/templates/order/order_base.html:155 msgid "No supplier information available" msgstr "" -#: company/templates/company/supplier_part.html:139 order/serializers.py:553 -#: part/bom.py:287 part/bom.py:319 part/serializers.py:548 -#: templates/js/translated/company.js:349 templates/js/translated/part.js:1793 +#: company/templates/company/supplier_part.html:140 order/serializers.py:638 +#: part/bom.py:286 part/bom.py:315 part/serializers.py:592 +#: templates/js/translated/company.js:350 templates/js/translated/part.js:1793 #: templates/js/translated/pricing.js:510 -#: templates/js/translated/purchase_order.js:1920 -#: templates/js/translated/purchase_order.js:2098 +#: templates/js/translated/purchase_order.js:1904 +#: templates/js/translated/purchase_order.js:2082 msgid "SKU" msgstr "" -#: company/templates/company/supplier_part.html:206 +#: company/templates/company/supplier_part.html:207 msgid "Supplier Part Stock" msgstr "" -#: company/templates/company/supplier_part.html:209 -#: part/templates/part/detail.html:24 stock/templates/stock/location.html:204 +#: company/templates/company/supplier_part.html:210 +#: part/templates/part/detail.html:24 stock/templates/stock/location.html:205 msgid "Create new stock item" msgstr "" -#: company/templates/company/supplier_part.html:210 -#: part/templates/part/detail.html:25 stock/templates/stock/location.html:205 +#: company/templates/company/supplier_part.html:211 +#: part/templates/part/detail.html:25 stock/templates/stock/location.html:206 #: templates/js/translated/stock.js:543 msgid "New Stock Item" msgstr "" -#: company/templates/company/supplier_part.html:223 +#: company/templates/company/supplier_part.html:224 msgid "Supplier Part Orders" msgstr "" -#: company/templates/company/supplier_part.html:246 +#: company/templates/company/supplier_part.html:247 msgid "Pricing Information" msgstr "" -#: company/templates/company/supplier_part.html:251 -#: templates/js/translated/company.js:398 +#: company/templates/company/supplier_part.html:252 +#: templates/js/translated/company.js:399 #: templates/js/translated/pricing.js:684 msgid "Add Price Break" msgstr "" -#: company/templates/company/supplier_part.html:270 +#: company/templates/company/supplier_part.html:271 msgid "Supplier Part Notes" msgstr "" -#: company/templates/company/supplier_part.html:305 +#: company/templates/company/supplier_part.html:306 msgid "Supplier Part QR Code" msgstr "" -#: company/templates/company/supplier_part.html:316 +#: company/templates/company/supplier_part.html:317 msgid "Link Barcode to Supplier Part" msgstr "" -#: company/templates/company/supplier_part.html:388 +#: company/templates/company/supplier_part.html:389 msgid "Update Part Availability" msgstr "" #: company/templates/company/supplier_part_sidebar.html:5 -#: part/serializers.py:902 part/stocktake.py:223 +#: part/serializers.py:954 part/stocktake.py:223 #: part/templates/part/category.html:180 #: part/templates/part/category_sidebar.html:17 stock/admin.py:68 -#: stock/serializers.py:1014 stock/serializers.py:1192 -#: stock/templates/stock/location.html:167 -#: stock/templates/stock/location.html:188 -#: stock/templates/stock/location.html:200 +#: stock/serializers.py:1045 stock/serializers.py:1223 +#: stock/templates/stock/location.html:168 +#: stock/templates/stock/location.html:189 +#: stock/templates/stock/location.html:201 #: stock/templates/stock/location_sidebar.html:7 #: templates/InvenTree/search.html:155 templates/js/translated/part.js:1067 -#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2850 +#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2851 #: users/models.py:206 msgid "Stock Items" msgstr "" @@ -5022,99 +5203,99 @@ msgstr "" msgid "New Company" msgstr "" -#: generic/states/tests.py:18 order/status_codes.py:13 +#: generic/states/fields.py:118 +msgid "Custom status key" +msgstr "" + +#: generic/states/fields.py:119 +msgid "Additional status information for this item" +msgstr "" + +#: generic/states/tests.py:22 order/status_codes.py:13 msgid "Placed" msgstr "" -#: importer/mixins.py:263 +#: importer/mixins.py:261 msgid "Invalid export format" msgstr "" -#: importer/models.py:59 -msgid "Timestamp" -msgstr "" - -#: importer/models.py:64 +#: importer/models.py:65 msgid "Data file to import" msgstr "" -#: importer/models.py:73 templates/js/translated/tables.js:558 +#: importer/models.py:74 templates/js/translated/tables.js:558 msgid "Columns" msgstr "" -#: importer/models.py:84 +#: importer/models.py:85 msgid "Import status" msgstr "" -#: importer/models.py:94 +#: importer/models.py:95 msgid "Field Defaults" msgstr "" -#: importer/models.py:101 +#: importer/models.py:102 msgid "Field Overrides" msgstr "" -#: importer/models.py:108 +#: importer/models.py:109 msgid "Field Filters" msgstr "" -#: importer/models.py:230 +#: importer/models.py:239 msgid "Some required fields have not been mapped" msgstr "" -#: importer/models.py:387 +#: importer/models.py:396 msgid "Column is already mapped to a database field" msgstr "" -#: importer/models.py:392 +#: importer/models.py:401 msgid "Field is already mapped to a data column" msgstr "" -#: importer/models.py:401 +#: importer/models.py:410 msgid "Column mapping must be linked to a valid import session" msgstr "" -#: importer/models.py:406 +#: importer/models.py:415 msgid "Column does not exist in the data file" msgstr "" -#: importer/models.py:413 +#: importer/models.py:422 msgid "Field does not exist in the target model" msgstr "" -#: importer/models.py:417 +#: importer/models.py:426 msgid "Selected field is read-only" msgstr "" -#: importer/models.py:422 importer/models.py:493 +#: importer/models.py:431 importer/models.py:502 msgid "Import Session" msgstr "" -#: importer/models.py:426 +#: importer/models.py:435 msgid "Field" msgstr "" -#: importer/models.py:428 +#: importer/models.py:437 msgid "Column" msgstr "" -#: importer/models.py:497 +#: importer/models.py:506 msgid "Row Index" msgstr "" -#: importer/models.py:500 +#: importer/models.py:509 msgid "Original row data" msgstr "" -#: importer/models.py:503 part/models.py:3951 -msgid "Data" -msgstr "" - -#: importer/models.py:505 machine/models.py:110 +#: importer/models.py:514 machine/models.py:110 msgid "Errors" msgstr "" -#: importer/models.py:507 part/api.py:873 +#: importer/models.py:516 part/api.py:857 msgid "Valid" msgstr "" @@ -5166,19 +5347,19 @@ msgstr "" msgid "Row has already been completed" msgstr "" -#: importer/status_codes.py:11 +#: importer/status_codes.py:13 msgid "Initializing" msgstr "" -#: importer/status_codes.py:12 +#: importer/status_codes.py:18 msgid "Mapping Columns" msgstr "" -#: importer/status_codes.py:13 +#: importer/status_codes.py:21 msgid "Importing Data" msgstr "" -#: importer/status_codes.py:16 +#: importer/status_codes.py:24 msgid "Processing Data" msgstr "" @@ -5202,52 +5383,52 @@ msgstr "" msgid "Value must be a valid dictionary object" msgstr "" -#: machine/machine_types/label_printer.py:215 +#: machine/machine_types/label_printer.py:216 msgid "Copies" msgstr "" -#: machine/machine_types/label_printer.py:216 +#: machine/machine_types/label_printer.py:217 msgid "Number of copies to print for each label" msgstr "" -#: machine/machine_types/label_printer.py:231 +#: machine/machine_types/label_printer.py:232 msgid "Connected" msgstr "" -#: machine/machine_types/label_printer.py:232 order/api.py:1410 -#: templates/js/translated/sales_order.js:1078 +#: machine/machine_types/label_printer.py:233 order/api.py:1532 +#: templates/js/translated/sales_order.js:1044 msgid "Unknown" msgstr "" -#: machine/machine_types/label_printer.py:233 +#: machine/machine_types/label_printer.py:234 msgid "Printing" msgstr "" -#: machine/machine_types/label_printer.py:234 +#: machine/machine_types/label_printer.py:235 msgid "No media" msgstr "" -#: machine/machine_types/label_printer.py:235 +#: machine/machine_types/label_printer.py:236 msgid "Paper jam" msgstr "" -#: machine/machine_types/label_printer.py:236 +#: machine/machine_types/label_printer.py:237 msgid "Disconnected" msgstr "" -#: machine/machine_types/label_printer.py:243 +#: machine/machine_types/label_printer.py:244 msgid "Label Printer" msgstr "" -#: machine/machine_types/label_printer.py:244 +#: machine/machine_types/label_printer.py:245 msgid "Directly print labels for various items." msgstr "" -#: machine/machine_types/label_printer.py:250 +#: machine/machine_types/label_printer.py:251 msgid "Printer Location" msgstr "" -#: machine/machine_types/label_printer.py:251 +#: machine/machine_types/label_printer.py:252 msgid "Scope the printer to a specific location" msgstr "" @@ -5307,79 +5488,75 @@ msgstr "" #: report/templates/report/inventree_purchase_order_report.html:31 #: report/templates/report/inventree_sales_order_report.html:31 #: templates/js/translated/order.js:352 -#: templates/js/translated/purchase_order.js:2195 -#: templates/js/translated/sales_order.js:1883 +#: templates/js/translated/purchase_order.js:2179 +#: templates/js/translated/sales_order.js:1864 msgid "Total Price" msgstr "" -#: order/api.py:80 order/api.py:151 order/serializers.py:93 -#: order/templates/order/order_base.html:123 -#: order/templates/order/return_order_base.html:116 -#: order/templates/order/sales_order_base.html:125 +#: order/api.py:78 order/api.py:149 order/serializers.py:124 +#: order/templates/order/order_base.html:124 +#: order/templates/order/return_order_base.html:117 +#: order/templates/order/sales_order_base.html:126 msgid "Order Status" msgstr "" -#: order/api.py:88 order/templates/order/order_base.html:111 -#: order/templates/order/return_order_base.html:104 -#: order/templates/order/sales_order_base.html:113 +#: order/api.py:86 order/templates/order/order_base.html:112 +#: order/templates/order/return_order_base.html:105 +#: order/templates/order/sales_order_base.html:114 msgid "Order Reference" msgstr "" -#: order/api.py:116 templates/js/translated/table_filters.js:93 +#: order/api.py:114 order/api.py:1022 +#: templates/js/translated/table_filters.js:93 #: templates/js/translated/table_filters.js:625 #: templates/js/translated/table_filters.js:651 #: templates/js/translated/table_filters.js:666 msgid "Outstanding" msgstr "" -#: order/api.py:132 +#: order/api.py:130 msgid "Has Project Code" msgstr "" -#: order/api.py:155 templates/js/translated/table_filters.js:201 +#: order/api.py:153 templates/js/translated/table_filters.js:201 #: templates/js/translated/table_filters.js:791 msgid "Has Pricing" msgstr "" -#: order/api.py:230 -msgid "No matching purchase order found" -msgstr "" - -#: order/api.py:425 order/api.py:763 order/models.py:1484 order/models.py:1598 -#: order/models.py:1649 order/models.py:1764 order/models.py:1923 -#: order/models.py:2383 order/models.py:2439 -#: templates/js/translated/sales_order.js:1524 +#: order/api.py:375 order/api.py:771 order/api.py:986 order/models.py:1500 +#: order/models.py:1614 order/models.py:1665 order/models.py:1793 +#: order/models.py:1956 order/models.py:2422 order/models.py:2478 +#: templates/js/translated/sales_order.js:1490 msgid "Order" msgstr "" -#: order/api.py:429 order/api.py:784 +#: order/api.py:379 order/api.py:809 msgid "Order Complete" msgstr "" -#: order/api.py:452 +#: order/api.py:430 msgid "Order Pending" msgstr "" -#: order/api.py:1404 order/models.py:379 order/models.py:1485 -#: order/models.py:1599 order/templates/order/order_base.html:9 -#: order/templates/order/order_base.html:18 +#: order/api.py:1526 order/models.py:386 order/models.py:1501 +#: order/models.py:1615 order/templates/order/order_base.html:10 +#: order/templates/order/order_base.html:19 #: report/templates/report/inventree_purchase_order_report.html:14 -#: stock/serializers.py:120 stock/templates/stock/item_base.html:176 +#: stock/serializers.py:121 stock/templates/stock/item_base.html:173 #: templates/email/overdue_purchase_order.html:15 #: templates/js/translated/part.js:1752 templates/js/translated/pricing.js:804 -#: templates/js/translated/purchase_order.js:168 -#: templates/js/translated/purchase_order.js:753 -#: templates/js/translated/purchase_order.js:1743 -#: templates/js/translated/stock.js:2345 templates/js/translated/stock.js:2991 +#: templates/js/translated/purchase_order.js:736 +#: templates/js/translated/purchase_order.js:1727 +#: templates/js/translated/stock.js:2346 templates/js/translated/stock.js:2992 msgid "Purchase Order" msgstr "" -#: order/api.py:1408 order/models.py:2091 order/models.py:2384 -#: order/models.py:2440 order/templates/order/return_order_base.html:9 -#: order/templates/order/return_order_base.html:28 +#: order/api.py:1530 order/models.py:2124 order/models.py:2423 +#: order/models.py:2479 order/templates/order/return_order_base.html:10 +#: order/templates/order/return_order_base.html:29 #: report/templates/report/inventree_return_order_report.html:13 #: templates/js/translated/return_order.js:280 -#: templates/js/translated/stock.js:3025 +#: templates/js/translated/stock.js:3026 msgid "Return Order" msgstr "" @@ -5387,751 +5564,782 @@ msgstr "" msgid "Total price for this order" msgstr "" -#: order/models.py:95 order/serializers.py:71 +#: order/models.py:95 order/serializers.py:73 msgid "Order Currency" msgstr "" -#: order/models.py:98 order/serializers.py:72 +#: order/models.py:98 order/serializers.py:74 msgid "Currency for this order (leave blank to use company default)" msgstr "" -#: order/models.py:246 +#: order/models.py:243 msgid "Contact does not match selected company" msgstr "" -#: order/models.py:289 +#: order/models.py:296 msgid "Order description (optional)" msgstr "" -#: order/models.py:298 +#: order/models.py:305 msgid "Select project code for this order" msgstr "" -#: order/models.py:302 order/models.py:1385 order/models.py:1817 +#: order/models.py:309 order/models.py:1402 order/models.py:1846 msgid "Link to external page" msgstr "" -#: order/models.py:310 +#: order/models.py:317 msgid "Expected date for order delivery. Order will be overdue after this date." msgstr "" -#: order/models.py:324 +#: order/models.py:331 msgid "Created By" msgstr "" -#: order/models.py:332 +#: order/models.py:339 msgid "User or group responsible for this order" msgstr "" -#: order/models.py:343 +#: order/models.py:350 msgid "Point of contact for this order" msgstr "" -#: order/models.py:353 +#: order/models.py:360 msgid "Company address for this order" msgstr "" -#: order/models.py:468 order/models.py:979 +#: order/models.py:480 order/models.py:1006 msgid "Order reference" msgstr "" -#: order/models.py:477 +#: order/models.py:489 msgid "Purchase order status" msgstr "" -#: order/models.py:492 +#: order/models.py:504 msgid "Company from which the items are being ordered" msgstr "" -#: order/models.py:503 order/templates/order/order_base.html:153 -#: templates/js/translated/purchase_order.js:1772 +#: order/models.py:515 order/templates/order/order_base.html:162 +#: templates/js/translated/purchase_order.js:1756 msgid "Supplier Reference" msgstr "" -#: order/models.py:504 +#: order/models.py:516 msgid "Supplier order reference code" msgstr "" -#: order/models.py:513 +#: order/models.py:525 msgid "received by" msgstr "" -#: order/models.py:519 order/models.py:2173 +#: order/models.py:531 order/models.py:2212 msgid "Issue Date" msgstr "" -#: order/models.py:520 order/models.py:2174 +#: order/models.py:532 order/models.py:2213 msgid "Date order was issued" msgstr "" -#: order/models.py:527 order/models.py:2181 +#: order/models.py:539 order/models.py:2220 msgid "Date order was completed" msgstr "" -#: order/models.py:571 +#: order/models.py:549 order/models.py:1552 +msgid "Destination for received items" +msgstr "" + +#: order/models.py:593 msgid "Part supplier must match PO supplier" msgstr "" -#: order/models.py:806 +#: order/models.py:828 msgid "Quantity must be a positive number" msgstr "" -#: order/models.py:991 +#: order/models.py:1018 msgid "Company to which the items are being sold" msgstr "" -#: order/models.py:1003 +#: order/models.py:1030 msgid "Sales order status" msgstr "" -#: order/models.py:1014 order/models.py:2166 +#: order/models.py:1041 order/models.py:2205 msgid "Customer Reference " msgstr "" -#: order/models.py:1015 order/models.py:2167 +#: order/models.py:1042 order/models.py:2206 msgid "Customer order reference code" msgstr "" -#: order/models.py:1019 order/models.py:1771 -#: templates/js/translated/sales_order.js:879 -#: templates/js/translated/sales_order.js:1060 +#: order/models.py:1046 order/models.py:1800 +#: templates/js/translated/sales_order.js:838 +#: templates/js/translated/sales_order.js:1026 msgid "Shipment Date" msgstr "" -#: order/models.py:1028 +#: order/models.py:1055 msgid "shipped by" msgstr "" -#: order/models.py:1077 +#: order/models.py:1094 msgid "Order is already complete" msgstr "" -#: order/models.py:1080 +#: order/models.py:1097 msgid "Order is already cancelled" msgstr "" -#: order/models.py:1084 +#: order/models.py:1101 msgid "Only an open order can be marked as complete" msgstr "" -#: order/models.py:1088 +#: order/models.py:1105 msgid "Order cannot be completed as there are incomplete shipments" msgstr "" -#: order/models.py:1093 +#: order/models.py:1110 msgid "Order cannot be completed as there are incomplete line items" msgstr "" -#: order/models.py:1357 +#: order/models.py:1374 msgid "Item quantity" msgstr "" -#: order/models.py:1374 +#: order/models.py:1391 msgid "Line item reference" msgstr "" -#: order/models.py:1381 +#: order/models.py:1398 msgid "Line item notes" msgstr "" -#: order/models.py:1393 +#: order/models.py:1410 msgid "Target date for this line item (leave blank to use the target date from the order)" msgstr "" -#: order/models.py:1414 +#: order/models.py:1431 msgid "Line item description (optional)" msgstr "" -#: order/models.py:1420 -msgid "Context" -msgstr "" - -#: order/models.py:1421 +#: order/models.py:1438 msgid "Additional context for this line" msgstr "" -#: order/models.py:1431 +#: order/models.py:1448 msgid "Unit price" msgstr "" -#: order/models.py:1445 +#: order/models.py:1462 msgid "Purchase Order Line Item" msgstr "" -#: order/models.py:1469 +#: order/models.py:1486 msgid "Supplier part must match supplier" msgstr "" -#: order/models.py:1476 -msgid "deleted" -msgstr "" - -#: order/models.py:1504 +#: order/models.py:1520 msgid "Supplier part" msgstr "" -#: order/models.py:1511 order/templates/order/order_base.html:201 +#: order/models.py:1527 order/templates/order/order_base.html:210 #: templates/js/translated/part.js:1876 templates/js/translated/part.js:1908 -#: templates/js/translated/purchase_order.js:1369 -#: templates/js/translated/purchase_order.js:2239 +#: templates/js/translated/purchase_order.js:1352 +#: templates/js/translated/purchase_order.js:2223 #: templates/js/translated/return_order.js:762 #: templates/js/translated/table_filters.js:119 #: templates/js/translated/table_filters.js:605 msgid "Received" msgstr "" -#: order/models.py:1512 +#: order/models.py:1528 msgid "Number of items received" msgstr "" -#: order/models.py:1520 stock/models.py:959 stock/serializers.py:610 -#: stock/templates/stock/item_base.html:183 -#: templates/js/translated/stock.js:2396 +#: order/models.py:1536 stock/models.py:1036 stock/serializers.py:637 +#: stock/templates/stock/item_base.html:180 +#: templates/js/translated/stock.js:2397 msgid "Purchase Price" msgstr "" -#: order/models.py:1521 +#: order/models.py:1537 msgid "Unit purchase price" msgstr "" -#: order/models.py:1536 -msgid "Where does the Purchaser want this item to be stored?" -msgstr "" - -#: order/models.py:1587 +#: order/models.py:1603 msgid "Purchase Order Extra Line" msgstr "" -#: order/models.py:1616 +#: order/models.py:1632 msgid "Sales Order Line Item" msgstr "" -#: order/models.py:1637 +#: order/models.py:1653 msgid "Virtual part cannot be assigned to a sales order" msgstr "" -#: order/models.py:1642 +#: order/models.py:1658 msgid "Only salable parts can be assigned to a sales order" msgstr "" -#: order/models.py:1668 part/templates/part/part_pricing.html:107 -#: part/templates/part/prices.html:139 templates/js/translated/pricing.js:957 +#: order/models.py:1684 part/templates/part/part_pricing.html:107 +#: part/templates/part/prices.html:139 templates/js/translated/pricing.js:955 msgid "Sale Price" msgstr "" -#: order/models.py:1669 +#: order/models.py:1685 msgid "Unit sale price" msgstr "" -#: order/models.py:1678 order/status_codes.py:48 -#: templates/js/translated/sales_order.js:1559 -#: templates/js/translated/sales_order.js:1680 -#: templates/js/translated/sales_order.js:1993 +#: order/models.py:1694 order/status_codes.py:50 +#: templates/js/translated/sales_order.js:1525 +#: templates/js/translated/sales_order.js:1661 +#: templates/js/translated/sales_order.js:1974 msgid "Shipped" msgstr "" -#: order/models.py:1679 +#: order/models.py:1695 msgid "Shipped quantity" msgstr "" -#: order/models.py:1751 +#: order/models.py:1769 msgid "Sales Order Shipment" msgstr "" -#: order/models.py:1772 +#: order/models.py:1801 msgid "Date of shipment" msgstr "" -#: order/models.py:1778 templates/js/translated/sales_order.js:1072 +#: order/models.py:1807 templates/js/translated/sales_order.js:1038 msgid "Delivery Date" msgstr "" -#: order/models.py:1779 +#: order/models.py:1808 msgid "Date of delivery of shipment" msgstr "" -#: order/models.py:1787 +#: order/models.py:1816 msgid "Checked By" msgstr "" -#: order/models.py:1788 +#: order/models.py:1817 msgid "User who checked this shipment" msgstr "" -#: order/models.py:1795 order/models.py:2018 order/serializers.py:1475 -#: order/serializers.py:1585 templates/js/translated/model_renderers.js:455 +#: order/models.py:1824 order/models.py:2051 order/serializers.py:1601 +#: order/serializers.py:1725 +#: report/templates/report/inventree_sales_order_shipment_report.html:14 +#: templates/js/translated/model_renderers.js:458 +#: templates/js/translated/sales_order.js:1615 msgid "Shipment" msgstr "" -#: order/models.py:1796 +#: order/models.py:1825 msgid "Shipment number" msgstr "" -#: order/models.py:1804 +#: order/models.py:1833 msgid "Tracking Number" msgstr "" -#: order/models.py:1805 +#: order/models.py:1834 msgid "Shipment tracking information" msgstr "" -#: order/models.py:1812 +#: order/models.py:1841 msgid "Invoice Number" msgstr "" -#: order/models.py:1813 +#: order/models.py:1842 msgid "Reference number for associated invoice" msgstr "" -#: order/models.py:1833 +#: order/models.py:1862 msgid "Shipment has already been sent" msgstr "" -#: order/models.py:1836 +#: order/models.py:1865 msgid "Shipment has no allocated stock items" msgstr "" -#: order/models.py:1912 +#: order/models.py:1945 msgid "Sales Order Extra Line" msgstr "" -#: order/models.py:1941 +#: order/models.py:1974 msgid "Sales Order Allocation" msgstr "" -#: order/models.py:1964 order/models.py:1966 +#: order/models.py:1997 order/models.py:1999 msgid "Stock item has not been assigned" msgstr "" -#: order/models.py:1973 +#: order/models.py:2006 msgid "Cannot allocate stock item to a line with a different part" msgstr "" -#: order/models.py:1976 +#: order/models.py:2009 msgid "Cannot allocate stock to a line without a part" msgstr "" -#: order/models.py:1979 +#: order/models.py:2012 msgid "Allocation quantity cannot exceed stock quantity" msgstr "" -#: order/models.py:1998 order/serializers.py:1345 +#: order/models.py:2031 order/serializers.py:1471 msgid "Quantity must be 1 for serialized stock item" msgstr "" -#: order/models.py:2001 +#: order/models.py:2034 msgid "Sales order does not match shipment" msgstr "" -#: order/models.py:2002 plugin/base/barcodes/api.py:524 +#: order/models.py:2035 plugin/base/barcodes/api.py:629 msgid "Shipment does not match sales order" msgstr "" -#: order/models.py:2010 +#: order/models.py:2043 msgid "Line" msgstr "" -#: order/models.py:2019 +#: order/models.py:2052 msgid "Sales order shipment reference" msgstr "" -#: order/models.py:2032 order/models.py:2391 +#: order/models.py:2065 order/models.py:2430 #: templates/js/translated/return_order.js:720 msgid "Item" msgstr "" -#: order/models.py:2033 +#: order/models.py:2066 msgid "Select stock item to allocate" msgstr "" -#: order/models.py:2042 +#: order/models.py:2075 msgid "Enter stock allocation quantity" msgstr "" -#: order/models.py:2136 +#: order/models.py:2175 msgid "Return Order reference" msgstr "" -#: order/models.py:2148 +#: order/models.py:2187 msgid "Company from which items are being returned" msgstr "" -#: order/models.py:2160 +#: order/models.py:2199 msgid "Return order status" msgstr "" -#: order/models.py:2362 +#: order/models.py:2401 msgid "Return Order Line Item" msgstr "" -#: order/models.py:2376 +#: order/models.py:2415 msgid "Only serialized items can be assigned to a Return Order" msgstr "" -#: order/models.py:2392 +#: order/models.py:2431 msgid "Select item to return from customer" msgstr "" -#: order/models.py:2398 +#: order/models.py:2437 msgid "Received Date" msgstr "" -#: order/models.py:2399 +#: order/models.py:2438 msgid "The date this this return item was received" msgstr "" -#: order/models.py:2410 templates/js/translated/return_order.js:731 +#: order/models.py:2449 templates/js/translated/return_order.js:731 #: templates/js/translated/table_filters.js:122 msgid "Outcome" msgstr "" -#: order/models.py:2411 +#: order/models.py:2450 msgid "Outcome for this line item" msgstr "" -#: order/models.py:2418 +#: order/models.py:2457 msgid "Cost associated with return or repair for this line item" msgstr "" -#: order/models.py:2428 +#: order/models.py:2467 msgid "Return Order Extra Line" msgstr "" -#: order/serializers.py:86 +#: order/serializers.py:87 +msgid "Order ID" +msgstr "" + +#: order/serializers.py:87 +msgid "ID of the order to duplicate" +msgstr "" + +#: order/serializers.py:93 +msgid "Copy Lines" +msgstr "" + +#: order/serializers.py:94 +msgid "Copy line items from the original order" +msgstr "" + +#: order/serializers.py:100 +msgid "Copy Extra Lines" +msgstr "" + +#: order/serializers.py:101 +msgid "Copy extra line items from the original order" +msgstr "" + +#: order/serializers.py:117 msgid "Completed Lines" msgstr "" -#: order/serializers.py:283 stock/admin.py:195 +#: order/serializers.py:161 +msgid "Duplicate Order" +msgstr "" + +#: order/serializers.py:162 +msgid "Specify options for duplicating this order" +msgstr "" + +#: order/serializers.py:234 +msgid "Invalid order ID" +msgstr "" + +#: order/serializers.py:374 stock/admin.py:196 msgid "Supplier Name" msgstr "" -#: order/serializers.py:331 +#: order/serializers.py:416 msgid "Order cannot be cancelled" msgstr "" -#: order/serializers.py:346 order/serializers.py:1366 +#: order/serializers.py:431 order/serializers.py:1492 msgid "Allow order to be closed with incomplete line items" msgstr "" -#: order/serializers.py:356 order/serializers.py:1376 +#: order/serializers.py:441 order/serializers.py:1502 msgid "Order has incomplete line items" msgstr "" -#: order/serializers.py:506 +#: order/serializers.py:591 msgid "Order is not open" msgstr "" -#: order/serializers.py:527 +#: order/serializers.py:612 msgid "Auto Pricing" msgstr "" -#: order/serializers.py:529 +#: order/serializers.py:614 msgid "Automatically calculate purchase price based on supplier part data" msgstr "" -#: order/serializers.py:539 +#: order/serializers.py:624 msgid "Purchase price currency" msgstr "" -#: order/serializers.py:545 +#: order/serializers.py:630 msgid "Merge Items" msgstr "" -#: order/serializers.py:547 +#: order/serializers.py:632 msgid "Merge items with the same part, destination and target date into one line item" msgstr "" -#: order/serializers.py:560 part/models.py:1033 +#: order/serializers.py:645 part/models.py:1094 part/serializers.py:387 msgid "Internal Part Number" msgstr "" -#: order/serializers.py:568 +#: order/serializers.py:653 msgid "Internal Part Name" msgstr "" -#: order/serializers.py:584 +#: order/serializers.py:669 msgid "Supplier part must be specified" msgstr "" -#: order/serializers.py:587 +#: order/serializers.py:672 msgid "Purchase order must be specified" msgstr "" -#: order/serializers.py:595 +#: order/serializers.py:680 msgid "Supplier must match purchase order" msgstr "" -#: order/serializers.py:596 +#: order/serializers.py:681 msgid "Purchase order must match supplier" msgstr "" -#: order/serializers.py:639 order/serializers.py:1446 +#: order/serializers.py:724 order/serializers.py:1572 msgid "Line Item" msgstr "" -#: order/serializers.py:645 +#: order/serializers.py:730 msgid "Line item does not match purchase order" msgstr "" -#: order/serializers.py:655 order/serializers.py:779 order/serializers.py:1782 +#: order/serializers.py:740 order/serializers.py:881 order/serializers.py:1934 msgid "Select destination location for received items" msgstr "" -#: order/serializers.py:671 templates/js/translated/purchase_order.js:1130 +#: order/serializers.py:756 templates/js/translated/purchase_order.js:1113 #: templates/js/translated/stock.js:1200 msgid "Enter batch code for incoming stock items" msgstr "" -#: order/serializers.py:679 templates/js/translated/purchase_order.js:1155 +#: order/serializers.py:764 templates/js/translated/purchase_order.js:1138 msgid "Enter serial numbers for incoming stock items" msgstr "" -#: order/serializers.py:691 +#: order/serializers.py:776 msgid "Override packaging information for incoming stock items" msgstr "" -#: order/serializers.py:699 +#: order/serializers.py:784 msgid "Additional note for incoming stock items" msgstr "" -#: order/serializers.py:706 templates/js/translated/barcode.js:52 +#: order/serializers.py:791 templates/js/translated/barcode.js:52 msgid "Barcode" msgstr "" -#: order/serializers.py:707 +#: order/serializers.py:792 msgid "Scanned barcode" msgstr "" -#: order/serializers.py:723 +#: order/serializers.py:808 msgid "Barcode is already in use" msgstr "" -#: order/serializers.py:747 +#: order/serializers.py:831 msgid "An integer quantity must be provided for trackable parts" msgstr "" -#: order/serializers.py:795 order/serializers.py:1798 +#: order/serializers.py:898 order/serializers.py:1950 msgid "Line items must be provided" msgstr "" -#: order/serializers.py:811 +#: order/serializers.py:914 msgid "Destination location must be specified" msgstr "" -#: order/serializers.py:822 +#: order/serializers.py:925 msgid "Supplied barcode values must be unique" msgstr "" -#: order/serializers.py:1187 +#: order/serializers.py:1221 msgid "Sale price currency" msgstr "" -#: order/serializers.py:1248 +#: order/serializers.py:1260 +msgid "Allocated Items" +msgstr "" + +#: order/serializers.py:1374 msgid "No shipment details provided" msgstr "" -#: order/serializers.py:1309 order/serializers.py:1455 +#: order/serializers.py:1435 order/serializers.py:1581 msgid "Line item is not associated with this order" msgstr "" -#: order/serializers.py:1328 +#: order/serializers.py:1454 msgid "Quantity must be positive" msgstr "" -#: order/serializers.py:1465 +#: order/serializers.py:1591 msgid "Enter serial numbers to allocate" msgstr "" -#: order/serializers.py:1487 order/serializers.py:1593 +#: order/serializers.py:1613 order/serializers.py:1733 msgid "Shipment has already been shipped" msgstr "" -#: order/serializers.py:1490 order/serializers.py:1596 +#: order/serializers.py:1616 order/serializers.py:1736 msgid "Shipment is not associated with this order" msgstr "" -#: order/serializers.py:1537 +#: order/serializers.py:1671 msgid "No match found for the following serial numbers" msgstr "" -#: order/serializers.py:1544 -msgid "The following serial numbers are already allocated" +#: order/serializers.py:1678 +msgid "The following serial numbers are unavailable" msgstr "" -#: order/serializers.py:1752 +#: order/serializers.py:1904 msgid "Return order line item" msgstr "" -#: order/serializers.py:1758 +#: order/serializers.py:1910 msgid "Line item does not match return order" msgstr "" -#: order/serializers.py:1761 +#: order/serializers.py:1913 msgid "Line item has already been received" msgstr "" -#: order/serializers.py:1790 +#: order/serializers.py:1942 msgid "Items can only be received against orders which are in progress" msgstr "" -#: order/serializers.py:1873 +#: order/serializers.py:2025 msgid "Line price currency" msgstr "" -#: order/status_codes.py:17 order/status_codes.py:52 stock/status_codes.py:16 +#: order/status_codes.py:17 order/status_codes.py:54 stock/status_codes.py:16 msgid "Lost" msgstr "" -#: order/status_codes.py:18 order/status_codes.py:53 stock/status_codes.py:22 +#: order/status_codes.py:18 order/status_codes.py:55 stock/status_codes.py:24 msgid "Returned" msgstr "" -#: order/status_codes.py:45 order/status_codes.py:77 +#: order/status_codes.py:47 order/status_codes.py:79 msgid "In Progress" msgstr "" -#: order/status_codes.py:101 +#: order/status_codes.py:105 msgid "Return" msgstr "" -#: order/status_codes.py:104 +#: order/status_codes.py:108 msgid "Repair" msgstr "" -#: order/status_codes.py:107 +#: order/status_codes.py:111 msgid "Replace" msgstr "" -#: order/status_codes.py:110 +#: order/status_codes.py:114 msgid "Refund" msgstr "" -#: order/status_codes.py:113 +#: order/status_codes.py:117 msgid "Reject" msgstr "" -#: order/tasks.py:25 +#: order/tasks.py:30 msgid "Overdue Purchase Order" msgstr "" -#: order/tasks.py:30 +#: order/tasks.py:35 #, python-brace-format msgid "Purchase order {po} is now overdue" msgstr "" -#: order/tasks.py:75 +#: order/tasks.py:80 msgid "Overdue Sales Order" msgstr "" -#: order/tasks.py:80 +#: order/tasks.py:85 #, python-brace-format msgid "Sales order {so} is now overdue" msgstr "" -#: order/templates/order/order_base.html:51 +#: order/templates/order/order_base.html:52 msgid "Print purchase order report" msgstr "" -#: order/templates/order/order_base.html:53 -#: order/templates/order/return_order_base.html:62 -#: order/templates/order/sales_order_base.html:62 +#: order/templates/order/order_base.html:54 +#: order/templates/order/return_order_base.html:63 +#: order/templates/order/sales_order_base.html:63 msgid "Export order to file" msgstr "" -#: order/templates/order/order_base.html:59 -#: order/templates/order/return_order_base.html:72 -#: order/templates/order/sales_order_base.html:71 +#: order/templates/order/order_base.html:60 +#: order/templates/order/return_order_base.html:73 +#: order/templates/order/sales_order_base.html:72 msgid "Order actions" msgstr "" -#: order/templates/order/order_base.html:64 -#: order/templates/order/return_order_base.html:76 -#: order/templates/order/sales_order_base.html:75 +#: order/templates/order/order_base.html:65 +#: order/templates/order/return_order_base.html:77 +#: order/templates/order/sales_order_base.html:76 msgid "Edit order" msgstr "" -#: order/templates/order/order_base.html:68 +#: order/templates/order/order_base.html:69 msgid "Duplicate order" msgstr "" -#: order/templates/order/order_base.html:73 -#: order/templates/order/return_order_base.html:78 -#: order/templates/order/sales_order_base.html:77 +#: order/templates/order/order_base.html:74 +#: order/templates/order/return_order_base.html:79 +#: order/templates/order/sales_order_base.html:78 msgid "Hold order" msgstr "" -#: order/templates/order/order_base.html:78 -#: order/templates/order/return_order_base.html:81 -#: order/templates/order/sales_order_base.html:80 +#: order/templates/order/order_base.html:79 +#: order/templates/order/return_order_base.html:82 +#: order/templates/order/sales_order_base.html:81 msgid "Cancel order" msgstr "" -#: order/templates/order/order_base.html:84 #: order/templates/order/order_base.html:85 -#: order/templates/order/return_order_base.html:85 +#: order/templates/order/order_base.html:86 #: order/templates/order/return_order_base.html:86 -#: order/templates/order/sales_order_base.html:86 +#: order/templates/order/return_order_base.html:87 #: order/templates/order/sales_order_base.html:87 +#: order/templates/order/sales_order_base.html:88 msgid "Issue Order" msgstr "" -#: order/templates/order/order_base.html:88 -#: order/templates/order/return_order_base.html:89 -msgid "Mark order as complete" -msgstr "" - #: order/templates/order/order_base.html:89 #: order/templates/order/return_order_base.html:90 -#: order/templates/order/sales_order_base.html:100 +msgid "Mark order as complete" +msgstr "" + +#: order/templates/order/order_base.html:90 +#: order/templates/order/return_order_base.html:91 +#: order/templates/order/sales_order_base.html:101 msgid "Complete Order" msgstr "" -#: order/templates/order/order_base.html:96 +#: order/templates/order/order_base.html:97 msgid "Supplier part thumbnail" msgstr "" -#: order/templates/order/order_base.html:116 -#: order/templates/order/return_order_base.html:109 -#: order/templates/order/sales_order_base.html:118 +#: order/templates/order/order_base.html:117 +#: order/templates/order/return_order_base.html:110 +#: order/templates/order/sales_order_base.html:119 msgid "Order Description" msgstr "" -#: order/templates/order/order_base.html:146 -msgid "No suppplier information available" -msgstr "" - -#: order/templates/order/order_base.html:159 -#: order/templates/order/sales_order_base.html:164 +#: order/templates/order/order_base.html:168 +#: order/templates/order/sales_order_base.html:165 msgid "Completed Line Items" msgstr "" -#: order/templates/order/order_base.html:165 -#: order/templates/order/sales_order_base.html:170 -#: order/templates/order/sales_order_base.html:180 +#: order/templates/order/order_base.html:174 +#: order/templates/order/sales_order_base.html:171 +#: order/templates/order/sales_order_base.html:181 msgid "Incomplete" msgstr "" -#: order/templates/order/order_base.html:184 -#: order/templates/order/return_order_base.html:160 +#: order/templates/order/order_base.html:193 +#: order/templates/order/return_order_base.html:161 #: report/templates/report/inventree_build_order_report.html:121 msgid "Issued" msgstr "" -#: order/templates/order/order_base.html:229 +#: order/templates/order/order_base.html:238 msgid "Total cost" msgstr "" -#: order/templates/order/order_base.html:233 -#: order/templates/order/return_order_base.html:202 -#: order/templates/order/sales_order_base.html:246 +#: order/templates/order/order_base.html:242 +#: order/templates/order/return_order_base.html:203 +#: order/templates/order/sales_order_base.html:247 msgid "Total cost could not be calculated" msgstr "" -#: order/templates/order/order_base.html:335 +#: order/templates/order/order_base.html:344 msgid "Purchase Order QR Code" msgstr "" -#: order/templates/order/order_base.html:347 +#: order/templates/order/order_base.html:356 msgid "Link Barcode to Purchase Order" msgstr "" @@ -6184,12 +6392,12 @@ msgstr "" #: part/templates/part/import_wizard/ajax_match_references.html:42 #: part/templates/part/import_wizard/match_fields.html:71 #: part/templates/part/import_wizard/match_references.html:49 -#: templates/js/translated/bom.js:133 templates/js/translated/build.js:530 -#: templates/js/translated/build.js:1802 -#: templates/js/translated/purchase_order.js:696 -#: templates/js/translated/purchase_order.js:1288 +#: templates/js/translated/bom.js:133 templates/js/translated/build.js:533 +#: templates/js/translated/build.js:1805 +#: templates/js/translated/purchase_order.js:679 +#: templates/js/translated/purchase_order.js:1271 #: templates/js/translated/return_order.js:505 -#: templates/js/translated/sales_order.js:1145 +#: templates/js/translated/sales_order.js:1111 #: templates/js/translated/stock.js:720 templates/js/translated/stock.js:889 #: templates/patterns/wizard/match_fields.html:70 msgid "Remove row" @@ -6242,7 +6450,7 @@ msgstr "" #: order/templates/order/purchase_order_detail.html:27 #: order/templates/order/return_order_detail.html:24 #: order/templates/order/sales_order_detail.html:24 -#: templates/js/translated/purchase_order.js:414 +#: templates/js/translated/purchase_order.js:397 #: templates/js/translated/return_order.js:458 #: templates/js/translated/sales_order.js:237 msgid "Add Line Item" @@ -6277,45 +6485,45 @@ msgstr "" msgid "Order Notes" msgstr "" -#: order/templates/order/return_order_base.html:18 -#: order/templates/order/sales_order_base.html:18 +#: order/templates/order/return_order_base.html:19 +#: order/templates/order/sales_order_base.html:19 msgid "Customer logo thumbnail" msgstr "" -#: order/templates/order/return_order_base.html:60 +#: order/templates/order/return_order_base.html:61 msgid "Print return order report" msgstr "" -#: order/templates/order/return_order_base.html:64 -#: order/templates/order/sales_order_base.html:64 +#: order/templates/order/return_order_base.html:65 +#: order/templates/order/sales_order_base.html:65 msgid "Print packing list" msgstr "" -#: order/templates/order/return_order_base.html:141 -#: order/templates/order/sales_order_base.html:158 +#: order/templates/order/return_order_base.html:142 +#: order/templates/order/sales_order_base.html:159 #: templates/js/translated/return_order.js:308 -#: templates/js/translated/sales_order.js:833 +#: templates/js/translated/sales_order.js:792 msgid "Customer Reference" msgstr "" -#: order/templates/order/return_order_base.html:198 -#: order/templates/order/sales_order_base.html:242 +#: order/templates/order/return_order_base.html:199 +#: order/templates/order/sales_order_base.html:243 #: part/templates/part/part_pricing.html:32 #: part/templates/part/part_pricing.html:58 #: part/templates/part/part_pricing.html:99 #: part/templates/part/part_pricing.html:114 #: templates/js/translated/part.js:1079 -#: templates/js/translated/purchase_order.js:1822 +#: templates/js/translated/purchase_order.js:1806 #: templates/js/translated/return_order.js:380 -#: templates/js/translated/sales_order.js:891 +#: templates/js/translated/sales_order.js:850 msgid "Total Cost" msgstr "" -#: order/templates/order/return_order_base.html:273 +#: order/templates/order/return_order_base.html:274 msgid "Return Order QR Code" msgstr "" -#: order/templates/order/return_order_base.html:285 +#: order/templates/order/return_order_base.html:286 msgid "Link Barcode to Return Order" msgstr "" @@ -6323,40 +6531,40 @@ msgstr "" msgid "Order Details" msgstr "" -#: order/templates/order/sales_order_base.html:60 +#: order/templates/order/sales_order_base.html:61 msgid "Print sales order report" msgstr "" -#: order/templates/order/sales_order_base.html:91 #: order/templates/order/sales_order_base.html:92 +#: order/templates/order/sales_order_base.html:93 msgid "Ship Items" msgstr "" -#: order/templates/order/sales_order_base.html:95 #: order/templates/order/sales_order_base.html:96 +#: order/templates/order/sales_order_base.html:97 msgid "Mark As Shipped" msgstr "" -#: order/templates/order/sales_order_base.html:99 -#: templates/js/translated/sales_order.js:536 +#: order/templates/order/sales_order_base.html:100 +#: templates/js/translated/sales_order.js:495 msgid "Complete Sales Order" msgstr "" -#: order/templates/order/sales_order_base.html:138 +#: order/templates/order/sales_order_base.html:139 msgid "This Sales Order has not been fully allocated" msgstr "" -#: order/templates/order/sales_order_base.html:176 +#: order/templates/order/sales_order_base.html:177 #: order/templates/order/sales_order_detail.html:99 #: order/templates/order/so_sidebar.html:11 msgid "Completed Shipments" msgstr "" -#: order/templates/order/sales_order_base.html:339 +#: order/templates/order/sales_order_base.html:340 msgid "Sales Order QR Code" msgstr "" -#: order/templates/order/sales_order_base.html:351 +#: order/templates/order/sales_order_base.html:352 msgid "Link Barcode to Sales Order" msgstr "" @@ -6370,7 +6578,7 @@ msgid "Pending Shipments" msgstr "" #: order/templates/order/sales_order_detail.html:71 -#: templates/js/translated/bom.js:1277 templates/js/translated/build.js:1063 +#: templates/js/translated/bom.js:1277 templates/js/translated/build.js:1066 #: templates/js/translated/filters.js:299 msgid "Actions" msgstr "" @@ -6383,39 +6591,40 @@ msgstr "" msgid "Match Supplier Parts" msgstr "" -#: order/views.py:406 +#: order/views.py:407 msgid "Sales order not found" msgstr "" -#: order/views.py:412 +#: order/views.py:413 msgid "Price not found" msgstr "" -#: order/views.py:415 +#: order/views.py:416 #, python-brace-format msgid "Updated {part} unit-price to {price}" msgstr "" -#: order/views.py:421 +#: order/views.py:422 #, python-brace-format msgid "Updated {part} unit-price to {price} and quantity to {qty}" msgstr "" -#: part/admin.py:48 part/models.py:1032 part/templates/part/part_base.html:269 +#: part/admin.py:48 part/models.py:1093 part/serializers.py:939 +#: part/templates/part/part_base.html:277 #: report/templates/report/inventree_stock_location_report.html:103 #: templates/js/translated/part.js:1233 templates/js/translated/part.js:2347 -#: templates/js/translated/stock.js:2121 +#: templates/js/translated/stock.js:2122 msgid "IPN" msgstr "" -#: part/admin.py:50 part/models.py:1041 part/templates/part/part_base.html:286 +#: part/admin.py:50 part/models.py:1102 part/templates/part/part_base.html:294 #: report/models.py:161 templates/js/translated/part.js:1238 #: templates/js/translated/part.js:2353 msgid "Revision" msgstr "" -#: part/admin.py:53 part/admin.py:319 part/models.py:1014 -#: part/templates/part/category.html:91 part/templates/part/part_base.html:307 +#: part/admin.py:53 part/admin.py:319 part/models.py:1075 +#: part/templates/part/category.html:91 part/templates/part/part_base.html:315 msgid "Keywords" msgstr "" @@ -6427,7 +6636,7 @@ msgstr "" msgid "Category ID" msgstr "" -#: part/admin.py:67 part/admin.py:304 part/serializers.py:880 +#: part/admin.py:67 part/admin.py:304 part/serializers.py:924 #: part/stocktake.py:222 msgid "Category Name" msgstr "" @@ -6440,11 +6649,11 @@ msgstr "" msgid "Default Supplier ID" msgstr "" -#: part/admin.py:81 part/models.py:1000 part/templates/part/part_base.html:177 +#: part/admin.py:81 part/models.py:1061 part/templates/part/part_base.html:178 msgid "Variant Of" msgstr "" -#: part/admin.py:84 part/models.py:1138 part/templates/part/part_base.html:203 +#: part/admin.py:84 part/models.py:1199 part/templates/part/part_base.html:204 msgid "Minimum Stock" msgstr "" @@ -6452,23 +6661,23 @@ msgstr "" msgid "Used In" msgstr "" -#: part/admin.py:150 part/serializers.py:897 -#: part/templates/part/part_base.html:241 stock/admin.py:235 +#: part/admin.py:150 part/serializers.py:949 +#: part/templates/part/part_base.html:249 stock/admin.py:236 #: templates/js/translated/part.js:717 templates/js/translated/part.js:2159 msgid "Building" msgstr "" -#: part/admin.py:155 part/models.py:3202 part/models.py:3216 +#: part/admin.py:155 part/models.py:3253 part/models.py:3267 #: templates/js/translated/part.js:976 msgid "Minimum Cost" msgstr "" -#: part/admin.py:158 part/models.py:3209 part/models.py:3223 +#: part/admin.py:158 part/models.py:3260 part/models.py:3274 #: templates/js/translated/part.js:986 msgid "Maximum Cost" msgstr "" -#: part/admin.py:308 part/admin.py:387 stock/admin.py:57 stock/admin.py:215 +#: part/admin.py:308 part/admin.py:387 stock/admin.py:57 stock/admin.py:216 msgid "Parent ID" msgstr "" @@ -6481,8 +6690,8 @@ msgstr "" msgid "Category Path" msgstr "" -#: part/admin.py:325 part/models.py:425 part/serializers.py:130 -#: part/serializers.py:290 part/serializers.py:415 +#: part/admin.py:325 part/models.py:420 part/serializers.py:130 +#: part/serializers.py:323 part/serializers.py:459 #: part/templates/part/cat_link.html:3 part/templates/part/category.html:20 #: part/templates/part/category.html:138 part/templates/part/category.html:158 #: part/templates/part/category_sidebar.html:9 @@ -6509,15 +6718,15 @@ msgstr "" msgid "Part Revision" msgstr "" -#: part/admin.py:418 part/serializers.py:1346 +#: part/admin.py:418 part/serializers.py:1400 #: templates/js/translated/pricing.js:358 -#: templates/js/translated/pricing.js:1024 +#: templates/js/translated/pricing.js:1022 msgid "Minimum Price" msgstr "" -#: part/admin.py:423 part/serializers.py:1361 +#: part/admin.py:423 part/serializers.py:1415 #: templates/js/translated/pricing.js:353 -#: templates/js/translated/pricing.js:1032 +#: templates/js/translated/pricing.js:1030 msgid "Maximum Price" msgstr "" @@ -6545,94 +6754,98 @@ msgstr "" msgid "Filter by top-level categories" msgstr "" +#: part/api.py:156 stock/api.py:343 +msgid "Cascade" +msgstr "" + #: part/api.py:158 msgid "Include sub-categories in filtered results" msgstr "" -#: part/api.py:179 templates/js/translated/part.js:311 +#: part/api.py:178 templates/js/translated/part.js:311 msgid "Parent" msgstr "" -#: part/api.py:181 +#: part/api.py:180 msgid "Filter by parent category" msgstr "" -#: part/api.py:214 +#: part/api.py:213 msgid "Exclude Tree" msgstr "" -#: part/api.py:216 +#: part/api.py:215 msgid "Exclude sub-categories under the specified category" msgstr "" -#: part/api.py:441 +#: part/api.py:440 msgid "Has Results" msgstr "" -#: part/api.py:608 +#: part/api.py:604 msgid "Incoming Purchase Order" msgstr "" -#: part/api.py:626 +#: part/api.py:618 msgid "Outgoing Sales Order" msgstr "" -#: part/api.py:642 +#: part/api.py:630 msgid "Stock produced by Build Order" msgstr "" -#: part/api.py:726 +#: part/api.py:712 msgid "Stock required for Build Order" msgstr "" -#: part/api.py:874 +#: part/api.py:858 msgid "Validate entire Bill of Materials" msgstr "" -#: part/api.py:880 +#: part/api.py:864 msgid "This option must be selected" msgstr "" -#: part/api.py:916 +#: part/api.py:900 msgid "Is Revision" msgstr "" -#: part/api.py:926 +#: part/api.py:910 msgid "Has Revisions" msgstr "" -#: part/api.py:1117 +#: part/api.py:1101 msgid "BOM Valid" msgstr "" -#: part/api.py:1523 part/models.py:1024 part/models.py:3489 part/models.py:4046 -#: part/serializers.py:430 part/serializers.py:1202 -#: part/templates/part/part_base.html:260 stock/api.py:781 +#: part/api.py:1509 part/models.py:1085 part/models.py:3540 part/models.py:4104 +#: part/serializers.py:474 part/serializers.py:1255 +#: part/templates/part/part_base.html:268 stock/api.py:781 #: templates/InvenTree/settings/settings_staff_js.html:300 #: templates/js/translated/notification.js:60 #: templates/js/translated/part.js:2383 msgid "Category" msgstr "" -#: part/api.py:1761 +#: part/api.py:1750 msgid "Assembly part is testable" msgstr "" -#: part/api.py:1770 +#: part/api.py:1759 msgid "Component part is testable" msgstr "" -#: part/api.py:1821 +#: part/api.py:1810 msgid "Uses" msgstr "" -#: part/bom.py:178 part/models.py:107 part/models.py:1077 -#: part/templates/part/category.html:113 part/templates/part/part_base.html:376 +#: part/bom.py:183 part/models.py:109 part/models.py:1138 +#: part/templates/part/category.html:113 part/templates/part/part_base.html:384 #: templates/js/translated/part.js:2397 msgid "Default Location" msgstr "" -#: part/bom.py:179 part/serializers.py:905 +#: part/bom.py:184 part/serializers.py:957 #: templates/email/low_stock_notification.html:16 msgid "Total Stock" msgstr "" @@ -6641,789 +6854,789 @@ msgstr "" msgid "Input quantity for price calculation" msgstr "" -#: part/models.py:88 part/models.py:4047 part/templates/part/category.html:16 +#: part/models.py:90 part/models.py:4105 part/templates/part/category.html:16 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "" -#: part/models.py:89 part/templates/part/category.html:133 +#: part/models.py:91 part/templates/part/category.html:133 #: templates/InvenTree/search.html:97 templates/js/translated/search.js:158 #: users/models.py:202 msgid "Part Categories" msgstr "" -#: part/models.py:108 +#: part/models.py:110 msgid "Default location for parts in this category" msgstr "" -#: part/models.py:113 stock/models.py:187 templates/js/translated/part.js:2828 -#: templates/js/translated/stock.js:2856 +#: part/models.py:115 stock/models.py:193 templates/js/translated/part.js:2828 +#: templates/js/translated/stock.js:2857 #: templates/js/translated/table_filters.js:246 #: templates/js/translated/table_filters.js:290 msgid "Structural" msgstr "" -#: part/models.py:115 +#: part/models.py:117 msgid "Parts may not be directly assigned to a structural category, but may be assigned to child categories." msgstr "" -#: part/models.py:124 +#: part/models.py:126 msgid "Default keywords" msgstr "" -#: part/models.py:125 +#: part/models.py:127 msgid "Default keywords for parts in this category" msgstr "" -#: part/models.py:131 stock/models.py:90 stock/models.py:169 +#: part/models.py:133 stock/models.py:96 stock/models.py:175 #: templates/InvenTree/settings/settings_staff_js.html:445 msgid "Icon" msgstr "" -#: part/models.py:132 part/serializers.py:143 part/serializers.py:161 -#: stock/models.py:170 +#: part/models.py:134 part/serializers.py:143 part/serializers.py:161 +#: stock/models.py:176 msgid "Icon (optional)" msgstr "" -#: part/models.py:178 +#: part/models.py:180 msgid "You cannot make this part category structural because some parts are already assigned to it!" msgstr "" -#: part/models.py:519 +#: part/models.py:514 msgid "Cannot delete this part as it is locked" msgstr "" -#: part/models.py:522 +#: part/models.py:517 msgid "Cannot delete this part as it is still active" msgstr "" -#: part/models.py:527 +#: part/models.py:522 msgid "Cannot delete this part as it is used in an assembly" msgstr "" -#: part/models.py:565 +#: part/models.py:560 msgid "Invalid choice for parent part" msgstr "" -#: part/models.py:613 part/models.py:620 +#: part/models.py:608 part/models.py:615 #, python-brace-format msgid "Part '{self}' cannot be used in BOM for '{parent}' (recursive)" msgstr "" -#: part/models.py:632 +#: part/models.py:627 #, python-brace-format msgid "Part '{parent}' is used in BOM for '{self}' (recursive)" msgstr "" -#: part/models.py:695 +#: part/models.py:694 #, python-brace-format msgid "IPN must match regex pattern {pattern}" msgstr "" -#: part/models.py:703 +#: part/models.py:702 msgid "Part cannot be a revision of itself" msgstr "" -#: part/models.py:710 +#: part/models.py:709 msgid "Cannot make a revision of a part which is already a revision" msgstr "" -#: part/models.py:717 +#: part/models.py:716 msgid "Revision code must be specified" msgstr "" -#: part/models.py:724 +#: part/models.py:723 msgid "Revisions are only allowed for assembly parts" msgstr "" -#: part/models.py:731 +#: part/models.py:730 msgid "Cannot make a revision of a template part" msgstr "" -#: part/models.py:737 +#: part/models.py:736 msgid "Parent part must point to the same template" msgstr "" -#: part/models.py:816 +#: part/models.py:832 msgid "Stock item with this serial number already exists" msgstr "" -#: part/models.py:917 +#: part/models.py:976 msgid "Duplicate IPN not allowed in part settings" msgstr "" -#: part/models.py:926 +#: part/models.py:988 msgid "Duplicate part revision already exists." msgstr "" -#: part/models.py:936 +#: part/models.py:997 msgid "Part with this Name, IPN and Revision already exists." msgstr "" -#: part/models.py:951 +#: part/models.py:1012 msgid "Parts cannot be assigned to structural part categories!" msgstr "" -#: part/models.py:983 part/models.py:4102 +#: part/models.py:1044 part/models.py:4160 msgid "Part name" msgstr "" -#: part/models.py:988 +#: part/models.py:1049 msgid "Is Template" msgstr "" -#: part/models.py:989 +#: part/models.py:1050 msgid "Is this part a template part?" msgstr "" -#: part/models.py:999 +#: part/models.py:1060 msgid "Is this part a variant of another part?" msgstr "" -#: part/models.py:1007 +#: part/models.py:1068 msgid "Part description (optional)" msgstr "" -#: part/models.py:1015 +#: part/models.py:1076 msgid "Part keywords to improve visibility in search results" msgstr "" -#: part/models.py:1025 +#: part/models.py:1086 msgid "Part category" msgstr "" -#: part/models.py:1040 +#: part/models.py:1101 msgid "Part revision or version number" msgstr "" -#: part/models.py:1050 +#: part/models.py:1111 msgid "Is this part a revision of another part?" msgstr "" -#: part/models.py:1051 part/templates/part/part_base.html:277 +#: part/models.py:1112 part/templates/part/part_base.html:285 msgid "Revision Of" msgstr "" -#: part/models.py:1075 +#: part/models.py:1136 msgid "Where is this item normally stored?" msgstr "" -#: part/models.py:1121 part/templates/part/part_base.html:385 +#: part/models.py:1182 part/templates/part/part_base.html:393 msgid "Default Supplier" msgstr "" -#: part/models.py:1122 +#: part/models.py:1183 msgid "Default supplier part" msgstr "" -#: part/models.py:1129 +#: part/models.py:1190 msgid "Default Expiry" msgstr "" -#: part/models.py:1130 +#: part/models.py:1191 msgid "Expiry time (in days) for stock items of this part" msgstr "" -#: part/models.py:1139 +#: part/models.py:1200 msgid "Minimum allowed stock level" msgstr "" -#: part/models.py:1148 +#: part/models.py:1209 msgid "Units of measure for this part" msgstr "" -#: part/models.py:1155 +#: part/models.py:1216 msgid "Can this part be built from other parts?" msgstr "" -#: part/models.py:1161 +#: part/models.py:1222 msgid "Can this part be used to build other parts?" msgstr "" -#: part/models.py:1167 +#: part/models.py:1228 msgid "Does this part have tracking for unique items?" msgstr "" -#: part/models.py:1173 +#: part/models.py:1234 msgid "Can this part have test results recorded against it?" msgstr "" -#: part/models.py:1179 +#: part/models.py:1240 msgid "Can this part be purchased from external suppliers?" msgstr "" -#: part/models.py:1185 +#: part/models.py:1246 msgid "Can this part be sold to customers?" msgstr "" -#: part/models.py:1189 +#: part/models.py:1250 msgid "Is this part active?" msgstr "" -#: part/models.py:1194 templates/js/translated/part.js:821 +#: part/models.py:1255 templates/js/translated/part.js:821 #: templates/js/translated/table_filters.js:724 msgid "Locked" msgstr "" -#: part/models.py:1195 +#: part/models.py:1256 msgid "Locked parts cannot be edited" msgstr "" -#: part/models.py:1201 +#: part/models.py:1262 msgid "Is this a virtual part, such as a software product or license?" msgstr "" -#: part/models.py:1207 +#: part/models.py:1268 msgid "BOM checksum" msgstr "" -#: part/models.py:1208 +#: part/models.py:1269 msgid "Stored BOM checksum" msgstr "" -#: part/models.py:1216 +#: part/models.py:1277 msgid "BOM checked by" msgstr "" -#: part/models.py:1221 +#: part/models.py:1282 msgid "BOM checked date" msgstr "" -#: part/models.py:1237 +#: part/models.py:1298 msgid "Creation User" msgstr "" -#: part/models.py:1247 +#: part/models.py:1308 msgid "Owner responsible for this part" msgstr "" -#: part/models.py:1252 part/templates/part/part_base.html:348 -#: stock/templates/stock/item_base.html:451 +#: part/models.py:1313 part/templates/part/part_base.html:356 +#: stock/templates/stock/item_base.html:448 #: templates/js/translated/part.js:2490 msgid "Last Stocktake" msgstr "" -#: part/models.py:2125 +#: part/models.py:2185 msgid "Sell multiple" msgstr "" -#: part/models.py:3116 +#: part/models.py:3167 msgid "Currency used to cache pricing calculations" msgstr "" -#: part/models.py:3132 +#: part/models.py:3183 msgid "Minimum BOM Cost" msgstr "" -#: part/models.py:3133 +#: part/models.py:3184 msgid "Minimum cost of component parts" msgstr "" -#: part/models.py:3139 +#: part/models.py:3190 msgid "Maximum BOM Cost" msgstr "" -#: part/models.py:3140 +#: part/models.py:3191 msgid "Maximum cost of component parts" msgstr "" -#: part/models.py:3146 +#: part/models.py:3197 msgid "Minimum Purchase Cost" msgstr "" -#: part/models.py:3147 +#: part/models.py:3198 msgid "Minimum historical purchase cost" msgstr "" -#: part/models.py:3153 +#: part/models.py:3204 msgid "Maximum Purchase Cost" msgstr "" -#: part/models.py:3154 +#: part/models.py:3205 msgid "Maximum historical purchase cost" msgstr "" -#: part/models.py:3160 +#: part/models.py:3211 msgid "Minimum Internal Price" msgstr "" -#: part/models.py:3161 +#: part/models.py:3212 msgid "Minimum cost based on internal price breaks" msgstr "" -#: part/models.py:3167 +#: part/models.py:3218 msgid "Maximum Internal Price" msgstr "" -#: part/models.py:3168 +#: part/models.py:3219 msgid "Maximum cost based on internal price breaks" msgstr "" -#: part/models.py:3174 +#: part/models.py:3225 msgid "Minimum Supplier Price" msgstr "" -#: part/models.py:3175 +#: part/models.py:3226 msgid "Minimum price of part from external suppliers" msgstr "" -#: part/models.py:3181 +#: part/models.py:3232 msgid "Maximum Supplier Price" msgstr "" -#: part/models.py:3182 +#: part/models.py:3233 msgid "Maximum price of part from external suppliers" msgstr "" -#: part/models.py:3188 +#: part/models.py:3239 msgid "Minimum Variant Cost" msgstr "" -#: part/models.py:3189 +#: part/models.py:3240 msgid "Calculated minimum cost of variant parts" msgstr "" -#: part/models.py:3195 +#: part/models.py:3246 msgid "Maximum Variant Cost" msgstr "" -#: part/models.py:3196 +#: part/models.py:3247 msgid "Calculated maximum cost of variant parts" msgstr "" -#: part/models.py:3203 +#: part/models.py:3254 msgid "Override minimum cost" msgstr "" -#: part/models.py:3210 +#: part/models.py:3261 msgid "Override maximum cost" msgstr "" -#: part/models.py:3217 +#: part/models.py:3268 msgid "Calculated overall minimum cost" msgstr "" -#: part/models.py:3224 +#: part/models.py:3275 msgid "Calculated overall maximum cost" msgstr "" -#: part/models.py:3230 +#: part/models.py:3281 msgid "Minimum Sale Price" msgstr "" -#: part/models.py:3231 +#: part/models.py:3282 msgid "Minimum sale price based on price breaks" msgstr "" -#: part/models.py:3237 +#: part/models.py:3288 msgid "Maximum Sale Price" msgstr "" -#: part/models.py:3238 +#: part/models.py:3289 msgid "Maximum sale price based on price breaks" msgstr "" -#: part/models.py:3244 +#: part/models.py:3295 msgid "Minimum Sale Cost" msgstr "" -#: part/models.py:3245 +#: part/models.py:3296 msgid "Minimum historical sale price" msgstr "" -#: part/models.py:3251 +#: part/models.py:3302 msgid "Maximum Sale Cost" msgstr "" -#: part/models.py:3252 +#: part/models.py:3303 msgid "Maximum historical sale price" msgstr "" -#: part/models.py:3271 +#: part/models.py:3322 msgid "Part for stocktake" msgstr "" -#: part/models.py:3276 +#: part/models.py:3327 msgid "Item Count" msgstr "" -#: part/models.py:3277 +#: part/models.py:3328 msgid "Number of individual stock entries at time of stocktake" msgstr "" -#: part/models.py:3285 +#: part/models.py:3336 msgid "Total available stock at time of stocktake" msgstr "" -#: part/models.py:3289 part/models.py:3372 +#: part/models.py:3340 part/models.py:3423 part/serializers.py:263 #: part/templates/part/part_scheduling.html:13 #: report/templates/report/inventree_test_report.html:106 #: templates/InvenTree/settings/plugin_settings.html:37 #: templates/InvenTree/settings/settings_staff_js.html:543 -#: templates/js/translated/part.js:1092 templates/js/translated/pricing.js:826 -#: templates/js/translated/pricing.js:950 -#: templates/js/translated/purchase_order.js:1801 -#: templates/js/translated/stock.js:2905 +#: templates/js/translated/part.js:1092 templates/js/translated/pricing.js:824 +#: templates/js/translated/pricing.js:948 +#: templates/js/translated/purchase_order.js:1785 +#: templates/js/translated/stock.js:2906 msgid "Date" msgstr "" -#: part/models.py:3290 +#: part/models.py:3341 msgid "Date stocktake was performed" msgstr "" -#: part/models.py:3298 +#: part/models.py:3349 msgid "Additional notes" msgstr "" -#: part/models.py:3308 +#: part/models.py:3359 msgid "User who performed this stocktake" msgstr "" -#: part/models.py:3314 +#: part/models.py:3365 msgid "Minimum Stock Cost" msgstr "" -#: part/models.py:3315 +#: part/models.py:3366 msgid "Estimated minimum cost of stock on hand" msgstr "" -#: part/models.py:3321 +#: part/models.py:3372 msgid "Maximum Stock Cost" msgstr "" -#: part/models.py:3322 +#: part/models.py:3373 msgid "Estimated maximum cost of stock on hand" msgstr "" -#: part/models.py:3378 templates/InvenTree/settings/settings_staff_js.html:532 +#: part/models.py:3429 templates/InvenTree/settings/settings_staff_js.html:532 msgid "Report" msgstr "" -#: part/models.py:3379 +#: part/models.py:3430 msgid "Stocktake report file (generated internally)" msgstr "" -#: part/models.py:3384 templates/InvenTree/settings/settings_staff_js.html:539 +#: part/models.py:3435 templates/InvenTree/settings/settings_staff_js.html:539 msgid "Part Count" msgstr "" -#: part/models.py:3385 +#: part/models.py:3436 msgid "Number of parts covered by stocktake" msgstr "" -#: part/models.py:3395 +#: part/models.py:3446 msgid "User who requested this stocktake report" msgstr "" -#: part/models.py:3405 +#: part/models.py:3456 msgid "Part Sale Price Break" msgstr "" -#: part/models.py:3517 +#: part/models.py:3568 msgid "Part Test Template" msgstr "" -#: part/models.py:3543 +#: part/models.py:3594 msgid "Invalid template name - must include at least one alphanumeric character" msgstr "" -#: part/models.py:3564 part/models.py:3733 +#: part/models.py:3615 part/models.py:3784 msgid "Choices must be unique" msgstr "" -#: part/models.py:3575 -msgid "Test templates can only be created for trackable parts" +#: part/models.py:3626 +msgid "Test templates can only be created for testable parts" msgstr "" -#: part/models.py:3586 +#: part/models.py:3637 msgid "Test template with the same key already exists for part" msgstr "" -#: part/models.py:3603 templates/js/translated/part.js:2898 +#: part/models.py:3654 templates/js/translated/part.js:2898 msgid "Test Name" msgstr "" -#: part/models.py:3604 +#: part/models.py:3655 msgid "Enter a name for the test" msgstr "" -#: part/models.py:3610 +#: part/models.py:3661 msgid "Test Key" msgstr "" -#: part/models.py:3611 +#: part/models.py:3662 msgid "Simplified key for the test" msgstr "" -#: part/models.py:3618 +#: part/models.py:3669 msgid "Test Description" msgstr "" -#: part/models.py:3619 +#: part/models.py:3670 msgid "Enter description for this test" msgstr "" -#: part/models.py:3623 report/models.py:208 +#: part/models.py:3674 report/models.py:216 #: templates/js/translated/part.js:2919 #: templates/js/translated/table_filters.js:502 msgid "Enabled" msgstr "" -#: part/models.py:3623 +#: part/models.py:3674 msgid "Is this test enabled?" msgstr "" -#: part/models.py:3628 templates/js/translated/part.js:2927 +#: part/models.py:3679 templates/js/translated/part.js:2927 #: templates/js/translated/table_filters.js:498 msgid "Required" msgstr "" -#: part/models.py:3629 +#: part/models.py:3680 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:3634 templates/js/translated/part.js:2935 +#: part/models.py:3685 templates/js/translated/part.js:2935 msgid "Requires Value" msgstr "" -#: part/models.py:3635 +#: part/models.py:3686 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:3640 templates/js/translated/part.js:2942 +#: part/models.py:3691 templates/js/translated/part.js:2942 msgid "Requires Attachment" msgstr "" -#: part/models.py:3642 +#: part/models.py:3693 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:3648 part/models.py:3792 templates/js/translated/part.js:1643 +#: part/models.py:3699 part/models.py:3843 templates/js/translated/part.js:1643 msgid "Choices" msgstr "" -#: part/models.py:3649 +#: part/models.py:3700 msgid "Valid choices for this test (comma-separated)" msgstr "" -#: part/models.py:3681 +#: part/models.py:3732 msgid "Part Parameter Template" msgstr "" -#: part/models.py:3708 +#: part/models.py:3759 msgid "Checkbox parameters cannot have units" msgstr "" -#: part/models.py:3713 +#: part/models.py:3764 msgid "Checkbox parameters cannot have choices" msgstr "" -#: part/models.py:3750 +#: part/models.py:3801 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:3765 +#: part/models.py:3816 msgid "Parameter Name" msgstr "" -#: part/models.py:3772 +#: part/models.py:3823 msgid "Physical units for this parameter" msgstr "" -#: part/models.py:3780 +#: part/models.py:3831 msgid "Parameter description" msgstr "" -#: part/models.py:3786 templates/js/translated/part.js:1634 +#: part/models.py:3837 templates/js/translated/part.js:1634 #: templates/js/translated/table_filters.js:837 msgid "Checkbox" msgstr "" -#: part/models.py:3787 +#: part/models.py:3838 msgid "Is this parameter a checkbox?" msgstr "" -#: part/models.py:3793 +#: part/models.py:3844 msgid "Valid choices for this parameter (comma-separated)" msgstr "" -#: part/models.py:3827 +#: part/models.py:3881 msgid "Part Parameter" msgstr "" -#: part/models.py:3853 +#: part/models.py:3907 msgid "Parameter cannot be modified - part is locked" msgstr "" -#: part/models.py:3889 +#: part/models.py:3945 msgid "Invalid choice for parameter value" msgstr "" -#: part/models.py:3938 +#: part/models.py:3996 msgid "Parent Part" msgstr "" -#: part/models.py:3946 part/models.py:4054 part/models.py:4055 +#: part/models.py:4004 part/models.py:4112 part/models.py:4113 #: templates/InvenTree/settings/settings_staff_js.html:295 msgid "Parameter Template" msgstr "" -#: part/models.py:3952 +#: part/models.py:4010 msgid "Parameter Value" msgstr "" -#: part/models.py:4002 +#: part/models.py:4060 msgid "Part Category Parameter Template" msgstr "" -#: part/models.py:4061 templates/InvenTree/settings/settings_staff_js.html:304 +#: part/models.py:4119 templates/InvenTree/settings/settings_staff_js.html:304 msgid "Default Value" msgstr "" -#: part/models.py:4062 +#: part/models.py:4120 msgid "Default Parameter Value" msgstr "" -#: part/models.py:4100 +#: part/models.py:4158 msgid "Part ID or part name" msgstr "" -#: part/models.py:4101 +#: part/models.py:4159 msgid "Unique part ID value" msgstr "" -#: part/models.py:4103 +#: part/models.py:4161 msgid "Part IPN value" msgstr "" -#: part/models.py:4104 +#: part/models.py:4162 msgid "Level" msgstr "" -#: part/models.py:4104 +#: part/models.py:4162 msgid "BOM level" msgstr "" -#: part/models.py:4215 +#: part/models.py:4272 msgid "BOM item cannot be modified - assembly is locked" msgstr "" -#: part/models.py:4222 +#: part/models.py:4279 msgid "BOM item cannot be modified - variant assembly is locked" msgstr "" -#: part/models.py:4232 +#: part/models.py:4289 msgid "Select parent part" msgstr "" -#: part/models.py:4242 +#: part/models.py:4299 msgid "Sub part" msgstr "" -#: part/models.py:4243 +#: part/models.py:4300 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:4254 +#: part/models.py:4311 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:4260 +#: part/models.py:4317 msgid "This BOM item is optional" msgstr "" -#: part/models.py:4266 +#: part/models.py:4323 msgid "This BOM item is consumable (it is not tracked in build orders)" msgstr "" -#: part/models.py:4273 part/templates/part/upload_bom.html:55 +#: part/models.py:4330 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "" -#: part/models.py:4274 +#: part/models.py:4331 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:4281 +#: part/models.py:4338 msgid "BOM item reference" msgstr "" -#: part/models.py:4289 +#: part/models.py:4346 msgid "BOM item notes" msgstr "" -#: part/models.py:4295 +#: part/models.py:4352 msgid "Checksum" msgstr "" -#: part/models.py:4296 +#: part/models.py:4353 msgid "BOM line checksum" msgstr "" -#: part/models.py:4301 templates/js/translated/table_filters.js:181 +#: part/models.py:4358 templates/js/translated/table_filters.js:181 msgid "Validated" msgstr "" -#: part/models.py:4302 +#: part/models.py:4359 msgid "This BOM item has been validated" msgstr "" -#: part/models.py:4307 part/templates/part/upload_bom.html:57 +#: part/models.py:4364 part/templates/part/upload_bom.html:57 #: templates/js/translated/bom.js:1054 #: templates/js/translated/table_filters.js:185 #: templates/js/translated/table_filters.js:218 msgid "Gets inherited" msgstr "" -#: part/models.py:4308 +#: part/models.py:4365 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:4314 +#: part/models.py:4371 msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:4399 stock/models.py:685 +#: part/models.py:4456 stock/models.py:762 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:4409 part/models.py:4411 +#: part/models.py:4466 part/models.py:4468 msgid "Sub part must be specified" msgstr "" -#: part/models.py:4551 +#: part/models.py:4613 msgid "BOM Item Substitute" msgstr "" -#: part/models.py:4572 +#: part/models.py:4634 msgid "Substitute part cannot be the same as the master part" msgstr "" -#: part/models.py:4585 +#: part/models.py:4647 msgid "Parent BOM item" msgstr "" -#: part/models.py:4593 +#: part/models.py:4655 msgid "Substitute part" msgstr "" -#: part/models.py:4609 +#: part/models.py:4671 msgid "Part 1" msgstr "" -#: part/models.py:4617 +#: part/models.py:4679 msgid "Part 2" msgstr "" -#: part/models.py:4618 +#: part/models.py:4680 msgid "Select Related Part" msgstr "" -#: part/models.py:4637 +#: part/models.py:4699 msgid "Part relationship cannot be created between a part and itself" msgstr "" -#: part/models.py:4642 +#: part/models.py:4704 msgid "Duplicate relationship already exists" msgstr "" @@ -7449,340 +7662,352 @@ msgstr "" msgid "Number of results recorded against this template" msgstr "" -#: part/serializers.py:225 part/serializers.py:243 stock/serializers.py:616 +#: part/serializers.py:225 part/serializers.py:243 stock/serializers.py:643 msgid "Purchase currency of this stock item" msgstr "" -#: part/serializers.py:291 +#: part/serializers.py:268 +msgid "Speculative Quantity" +msgstr "" + +#: part/serializers.py:277 +msgid "Model ID" +msgstr "" + +#: part/serializers.py:324 msgid "Number of parts using this template" msgstr "" -#: part/serializers.py:421 +#: part/serializers.py:465 msgid "No parts selected" msgstr "" -#: part/serializers.py:431 +#: part/serializers.py:475 msgid "Select category" msgstr "" -#: part/serializers.py:466 +#: part/serializers.py:510 msgid "Original Part" msgstr "" -#: part/serializers.py:467 +#: part/serializers.py:511 msgid "Select original part to duplicate" msgstr "" -#: part/serializers.py:472 +#: part/serializers.py:516 msgid "Copy Image" msgstr "" -#: part/serializers.py:473 +#: part/serializers.py:517 msgid "Copy image from original part" msgstr "" -#: part/serializers.py:479 part/templates/part/detail.html:293 +#: part/serializers.py:523 part/templates/part/detail.html:293 msgid "Copy BOM" msgstr "" -#: part/serializers.py:480 +#: part/serializers.py:524 msgid "Copy bill of materials from original part" msgstr "" -#: part/serializers.py:486 +#: part/serializers.py:530 msgid "Copy Parameters" msgstr "" -#: part/serializers.py:487 +#: part/serializers.py:531 msgid "Copy parameter data from original part" msgstr "" -#: part/serializers.py:493 +#: part/serializers.py:537 msgid "Copy Notes" msgstr "" -#: part/serializers.py:494 +#: part/serializers.py:538 msgid "Copy notes from original part" msgstr "" -#: part/serializers.py:512 +#: part/serializers.py:556 msgid "Initial Stock Quantity" msgstr "" -#: part/serializers.py:514 +#: part/serializers.py:558 msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added." msgstr "" -#: part/serializers.py:521 +#: part/serializers.py:565 msgid "Initial Stock Location" msgstr "" -#: part/serializers.py:522 +#: part/serializers.py:566 msgid "Specify initial stock location for this Part" msgstr "" -#: part/serializers.py:539 +#: part/serializers.py:583 msgid "Select supplier (or leave blank to skip)" msgstr "" -#: part/serializers.py:555 +#: part/serializers.py:599 msgid "Select manufacturer (or leave blank to skip)" msgstr "" -#: part/serializers.py:565 +#: part/serializers.py:609 msgid "Manufacturer part number" msgstr "" -#: part/serializers.py:572 +#: part/serializers.py:616 msgid "Selected company is not a valid supplier" msgstr "" -#: part/serializers.py:581 +#: part/serializers.py:625 msgid "Selected company is not a valid manufacturer" msgstr "" -#: part/serializers.py:592 +#: part/serializers.py:636 msgid "Manufacturer part matching this MPN already exists" msgstr "" -#: part/serializers.py:599 +#: part/serializers.py:643 msgid "Supplier part matching this SKU already exists" msgstr "" -#: part/serializers.py:903 +#: part/serializers.py:955 msgid "Revisions" msgstr "" -#: part/serializers.py:908 +#: part/serializers.py:960 msgid "Unallocated Stock" msgstr "" -#: part/serializers.py:911 +#: part/serializers.py:963 msgid "Variant Stock" msgstr "" -#: part/serializers.py:941 part/templates/part/copy_part.html:9 +#: part/serializers.py:993 part/templates/part/copy_part.html:9 #: templates/js/translated/part.js:474 msgid "Duplicate Part" msgstr "" -#: part/serializers.py:942 +#: part/serializers.py:994 msgid "Copy initial data from another Part" msgstr "" -#: part/serializers.py:948 templates/js/translated/part.js:103 +#: part/serializers.py:1000 templates/js/translated/part.js:103 msgid "Initial Stock" msgstr "" -#: part/serializers.py:949 +#: part/serializers.py:1001 msgid "Create Part with initial stock quantity" msgstr "" -#: part/serializers.py:955 +#: part/serializers.py:1007 msgid "Supplier Information" msgstr "" -#: part/serializers.py:956 +#: part/serializers.py:1008 msgid "Add initial supplier information for this part" msgstr "" -#: part/serializers.py:964 +#: part/serializers.py:1016 msgid "Copy Category Parameters" msgstr "" -#: part/serializers.py:965 +#: part/serializers.py:1017 msgid "Copy parameter templates from selected part category" msgstr "" -#: part/serializers.py:970 +#: part/serializers.py:1022 msgid "Existing Image" msgstr "" -#: part/serializers.py:971 +#: part/serializers.py:1023 msgid "Filename of an existing part image" msgstr "" -#: part/serializers.py:988 +#: part/serializers.py:1040 msgid "Image file does not exist" msgstr "" -#: part/serializers.py:1194 +#: part/serializers.py:1247 msgid "Limit stocktake report to a particular part, and any variant parts" msgstr "" -#: part/serializers.py:1204 +#: part/serializers.py:1257 msgid "Limit stocktake report to a particular part category, and any child categories" msgstr "" -#: part/serializers.py:1214 +#: part/serializers.py:1267 msgid "Limit stocktake report to a particular stock location, and any child locations" msgstr "" -#: part/serializers.py:1220 +#: part/serializers.py:1273 msgid "Exclude External Stock" msgstr "" -#: part/serializers.py:1221 +#: part/serializers.py:1274 msgid "Exclude stock items in external locations" msgstr "" -#: part/serializers.py:1226 +#: part/serializers.py:1279 msgid "Generate Report" msgstr "" -#: part/serializers.py:1227 +#: part/serializers.py:1280 msgid "Generate report file containing calculated stocktake data" msgstr "" -#: part/serializers.py:1232 +#: part/serializers.py:1285 msgid "Update Parts" msgstr "" -#: part/serializers.py:1233 +#: part/serializers.py:1286 msgid "Update specified parts with calculated stocktake data" msgstr "" -#: part/serializers.py:1241 +#: part/serializers.py:1294 msgid "Stocktake functionality is not enabled" msgstr "" -#: part/serializers.py:1347 +#: part/serializers.py:1299 +msgid "Background worker check failed" +msgstr "" + +#: part/serializers.py:1401 msgid "Override calculated value for minimum price" msgstr "" -#: part/serializers.py:1354 +#: part/serializers.py:1408 msgid "Minimum price currency" msgstr "" -#: part/serializers.py:1362 +#: part/serializers.py:1416 msgid "Override calculated value for maximum price" msgstr "" -#: part/serializers.py:1369 +#: part/serializers.py:1423 msgid "Maximum price currency" msgstr "" -#: part/serializers.py:1398 +#: part/serializers.py:1452 msgid "Update" msgstr "" -#: part/serializers.py:1399 +#: part/serializers.py:1453 msgid "Update pricing for this part" msgstr "" -#: part/serializers.py:1422 +#: part/serializers.py:1476 #, python-brace-format msgid "Could not convert from provided currencies to {default_currency}" msgstr "" -#: part/serializers.py:1429 +#: part/serializers.py:1483 msgid "Minimum price must not be greater than maximum price" msgstr "" -#: part/serializers.py:1432 +#: part/serializers.py:1486 msgid "Maximum price must not be less than minimum price" msgstr "" -#: part/serializers.py:1576 +#: part/serializers.py:1634 msgid "Select the parent assembly" msgstr "" -#: part/serializers.py:1585 +#: part/serializers.py:1643 msgid "Component Name" msgstr "" -#: part/serializers.py:1588 +#: part/serializers.py:1646 msgid "Component IPN" msgstr "" -#: part/serializers.py:1591 +#: part/serializers.py:1649 msgid "Component Description" msgstr "" -#: part/serializers.py:1597 +#: part/serializers.py:1655 msgid "Select the component part" msgstr "" -#: part/serializers.py:1606 part/templates/part/part_base.html:235 +#: part/serializers.py:1664 part/templates/part/part_base.html:243 #: templates/js/translated/bom.js:1219 msgid "Can Build" msgstr "" -#: part/serializers.py:1837 +#: part/serializers.py:1899 msgid "Select part to copy BOM from" msgstr "" -#: part/serializers.py:1845 +#: part/serializers.py:1907 msgid "Remove Existing Data" msgstr "" -#: part/serializers.py:1846 +#: part/serializers.py:1908 msgid "Remove existing BOM items before copying" msgstr "" -#: part/serializers.py:1851 +#: part/serializers.py:1913 msgid "Include Inherited" msgstr "" -#: part/serializers.py:1852 +#: part/serializers.py:1914 msgid "Include BOM items which are inherited from templated parts" msgstr "" -#: part/serializers.py:1857 +#: part/serializers.py:1919 msgid "Skip Invalid Rows" msgstr "" -#: part/serializers.py:1858 +#: part/serializers.py:1920 msgid "Enable this option to skip invalid rows" msgstr "" -#: part/serializers.py:1863 +#: part/serializers.py:1925 msgid "Copy Substitute Parts" msgstr "" -#: part/serializers.py:1864 +#: part/serializers.py:1926 msgid "Copy substitute parts when duplicate BOM items" msgstr "" -#: part/serializers.py:1901 +#: part/serializers.py:1963 msgid "Clear Existing BOM" msgstr "" -#: part/serializers.py:1902 +#: part/serializers.py:1964 msgid "Delete existing BOM items before uploading" msgstr "" -#: part/serializers.py:1934 +#: part/serializers.py:1996 msgid "No part column specified" msgstr "" -#: part/serializers.py:1978 +#: part/serializers.py:2040 msgid "Multiple matching parts found" msgstr "" -#: part/serializers.py:1981 +#: part/serializers.py:2043 msgid "No matching part found" msgstr "" -#: part/serializers.py:1984 +#: part/serializers.py:2045 msgid "Part is not designated as a component" msgstr "" -#: part/serializers.py:1993 +#: part/serializers.py:2054 msgid "Quantity not provided" msgstr "" -#: part/serializers.py:2001 +#: part/serializers.py:2062 msgid "Invalid quantity" msgstr "" -#: part/serializers.py:2024 +#: part/serializers.py:2085 msgid "At least one BOM item is required" msgstr "" #: part/stocktake.py:224 templates/js/translated/part.js:1073 #: templates/js/translated/part.js:1828 templates/js/translated/part.js:1884 -#: templates/js/translated/purchase_order.js:2154 +#: templates/js/translated/purchase_order.js:2138 msgid "Total Quantity" msgstr "" @@ -7932,9 +8157,9 @@ msgid "Add stocktake information" msgstr "" #: part/templates/part/detail.html:67 part/templates/part/part_sidebar.html:50 -#: stock/admin.py:255 templates/InvenTree/settings/part_stocktake.html:30 +#: stock/admin.py:256 templates/InvenTree/settings/part_stocktake.html:30 #: templates/InvenTree/settings/sidebar.html:53 -#: templates/js/translated/stock.js:2301 users/models.py:204 +#: templates/js/translated/stock.js:2302 users/models.py:204 msgid "Stocktake" msgstr "" @@ -8093,142 +8318,146 @@ msgstr "" msgid "Part List" msgstr "" -#: part/templates/part/part_base.html:25 part/templates/part/part_base.html:29 +#: part/templates/part/part_base.html:26 part/templates/part/part_base.html:30 msgid "You are subscribed to notifications for this part" msgstr "" -#: part/templates/part/part_base.html:33 +#: part/templates/part/part_base.html:34 msgid "Subscribe to notifications for this part" msgstr "" -#: part/templates/part/part_base.html:52 +#: part/templates/part/part_base.html:53 #: stock/templates/stock/item_base.html:62 -#: stock/templates/stock/location.html:71 templates/js/translated/label.js:136 +#: stock/templates/stock/location.html:72 templates/js/translated/label.js:136 msgid "Print Label" msgstr "" -#: part/templates/part/part_base.html:58 +#: part/templates/part/part_base.html:59 msgid "Show pricing information" msgstr "" -#: part/templates/part/part_base.html:63 -#: stock/templates/stock/item_base.html:110 -#: stock/templates/stock/location.html:80 +#: part/templates/part/part_base.html:64 +#: stock/templates/stock/item_base.html:107 +#: stock/templates/stock/location.html:81 msgid "Stock actions" msgstr "" -#: part/templates/part/part_base.html:70 +#: part/templates/part/part_base.html:71 msgid "Count part stock" msgstr "" -#: part/templates/part/part_base.html:76 +#: part/templates/part/part_base.html:77 msgid "Transfer part stock" msgstr "" -#: part/templates/part/part_base.html:91 templates/js/translated/part.js:2299 +#: part/templates/part/part_base.html:92 templates/js/translated/part.js:2299 msgid "Part actions" msgstr "" -#: part/templates/part/part_base.html:94 +#: part/templates/part/part_base.html:95 msgid "Duplicate part" msgstr "" -#: part/templates/part/part_base.html:97 +#: part/templates/part/part_base.html:98 msgid "Edit part" msgstr "" -#: part/templates/part/part_base.html:100 +#: part/templates/part/part_base.html:101 msgid "Delete part" msgstr "" -#: part/templates/part/part_base.html:119 +#: part/templates/part/part_base.html:120 msgid "Part is a template part (variants can be made from this part)" msgstr "" -#: part/templates/part/part_base.html:123 +#: part/templates/part/part_base.html:124 msgid "Part can be assembled from other parts" msgstr "" -#: part/templates/part/part_base.html:127 +#: part/templates/part/part_base.html:128 msgid "Part can be used in assemblies" msgstr "" -#: part/templates/part/part_base.html:131 +#: part/templates/part/part_base.html:132 msgid "Part stock is tracked by serial number" msgstr "" -#: part/templates/part/part_base.html:135 +#: part/templates/part/part_base.html:136 msgid "Part can be purchased from external suppliers" msgstr "" -#: part/templates/part/part_base.html:139 +#: part/templates/part/part_base.html:140 msgid "Part can be sold to customers" msgstr "" -#: part/templates/part/part_base.html:145 +#: part/templates/part/part_base.html:146 msgid "Part is not active" msgstr "" -#: part/templates/part/part_base.html:153 +#: part/templates/part/part_base.html:154 msgid "Part is virtual (not a physical part)" msgstr "" -#: part/templates/part/part_base.html:163 -#: part/templates/part/part_base.html:690 +#: part/templates/part/part_base.html:164 +#: part/templates/part/part_base.html:698 msgid "Show Part Details" msgstr "" #: part/templates/part/part_base.html:218 -#: stock/templates/stock/item_base.html:388 +msgid "Required for Orders" +msgstr "" + +#: part/templates/part/part_base.html:226 +#: stock/templates/stock/item_base.html:385 msgid "Allocated to Build Orders" msgstr "" -#: part/templates/part/part_base.html:227 -#: stock/templates/stock/item_base.html:381 +#: part/templates/part/part_base.html:235 +#: stock/templates/stock/item_base.html:378 msgid "Allocated to Sales Orders" msgstr "" -#: part/templates/part/part_base.html:300 +#: part/templates/part/part_base.html:308 msgid "Minimum stock level" msgstr "" -#: part/templates/part/part_base.html:331 templates/js/translated/bom.js:1071 +#: part/templates/part/part_base.html:339 templates/js/translated/bom.js:1071 #: templates/js/translated/part.js:1271 templates/js/translated/part.js:2463 #: templates/js/translated/pricing.js:391 -#: templates/js/translated/pricing.js:1054 +#: templates/js/translated/pricing.js:1052 msgid "Price Range" msgstr "" -#: part/templates/part/part_base.html:361 +#: part/templates/part/part_base.html:369 msgid "Latest Serial Number" msgstr "" -#: part/templates/part/part_base.html:365 -#: stock/templates/stock/item_base.html:322 +#: part/templates/part/part_base.html:373 +#: stock/templates/stock/item_base.html:319 msgid "Search for serial number" msgstr "" -#: part/templates/part/part_base.html:453 +#: part/templates/part/part_base.html:461 msgid "Part QR Code" msgstr "" -#: part/templates/part/part_base.html:470 +#: part/templates/part/part_base.html:478 msgid "Link Barcode to Part" msgstr "" -#: part/templates/part/part_base.html:520 +#: part/templates/part/part_base.html:528 msgid "Calculate" msgstr "" -#: part/templates/part/part_base.html:537 +#: part/templates/part/part_base.html:545 msgid "Remove associated image from this part" msgstr "" -#: part/templates/part/part_base.html:588 +#: part/templates/part/part_base.html:596 msgid "No matching images found" msgstr "" -#: part/templates/part/part_base.html:684 +#: part/templates/part/part_base.html:692 msgid "Hide Part Details" msgstr "" @@ -8282,13 +8511,13 @@ msgid "Variants" msgstr "" #: part/templates/part/part_sidebar.html:14 -#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:21 +#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:22 #: stock/templates/stock/stock_app_base.html:10 #: templates/InvenTree/search.html:153 #: templates/InvenTree/settings/sidebar.html:51 #: templates/js/translated/part.js:1249 templates/js/translated/part.js:2152 #: templates/js/translated/part.js:2411 templates/js/translated/stock.js:1066 -#: templates/js/translated/stock.js:2155 templates/navbar.html:31 +#: templates/js/translated/stock.js:2156 templates/navbar.html:31 msgid "Stock" msgstr "" @@ -8324,17 +8553,17 @@ msgstr "" #: part/templates/part/prices.html:18 #: templates/InvenTree/settings/settings_staff_js.html:80 #: templates/InvenTree/settings/user.html:24 -#: templates/js/translated/helpers.js:103 +#: templates/js/translated/helpers.js:104 #: templates/js/translated/pricing.js:628 templates/notes_buttons.html:3 #: templates/notes_buttons.html:4 msgid "Edit" msgstr "" -#: part/templates/part/prices.html:28 stock/admin.py:251 -#: stock/templates/stock/item_base.html:446 -#: templates/js/translated/company.js:1703 -#: templates/js/translated/company.js:1713 -#: templates/js/translated/stock.js:2331 +#: part/templates/part/prices.html:28 stock/admin.py:252 +#: stock/templates/stock/item_base.html:443 +#: templates/js/translated/company.js:1704 +#: templates/js/translated/company.js:1714 +#: templates/js/translated/stock.js:2332 msgid "Last Updated" msgstr "" @@ -8406,7 +8635,7 @@ msgid "Update Pricing" msgstr "" #: part/templates/part/stock_count.html:7 -#: templates/js/translated/model_renderers.js:228 +#: templates/js/translated/model_renderers.js:231 #: templates/js/translated/part.js:707 templates/js/translated/part.js:2147 #: templates/js/translated/part.js:2149 msgid "No Stock" @@ -8486,7 +8715,7 @@ msgstr "" msgid "Part Pricing" msgstr "" -#: plugin/api.py:172 +#: plugin/api.py:175 msgid "Plugin cannot be deleted as it is currently active" msgstr "" @@ -8498,78 +8727,85 @@ msgstr "" msgid "No matching action found" msgstr "" -#: plugin/base/barcodes/api.py:125 plugin/base/barcodes/api.py:371 -#: plugin/base/barcodes/api.py:546 +#: plugin/base/barcodes/api.py:203 msgid "No match found for barcode data" msgstr "" -#: plugin/base/barcodes/api.py:129 +#: plugin/base/barcodes/api.py:207 msgid "Match found for barcode data" msgstr "" -#: plugin/base/barcodes/api.py:163 plugin/base/barcodes/serializers.py:45 +#: plugin/base/barcodes/api.py:245 plugin/base/barcodes/serializers.py:72 msgid "Model is not supported" msgstr "" -#: plugin/base/barcodes/api.py:168 +#: plugin/base/barcodes/api.py:250 msgid "Model instance not found" msgstr "" -#: plugin/base/barcodes/api.py:197 -#: templates/js/translated/purchase_order.js:1468 +#: plugin/base/barcodes/api.py:279 +#: templates/js/translated/purchase_order.js:1452 msgid "Barcode matches existing item" msgstr "" -#: plugin/base/barcodes/api.py:336 +#: plugin/base/barcodes/api.py:418 msgid "No matching part data found" msgstr "" -#: plugin/base/barcodes/api.py:353 +#: plugin/base/barcodes/api.py:434 msgid "No matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:357 +#: plugin/base/barcodes/api.py:437 msgid "Multiple matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:381 +#: plugin/base/barcodes/api.py:450 plugin/base/barcodes/api.py:664 +msgid "No matching plugin found for barcode data" +msgstr "" + +#: plugin/base/barcodes/api.py:460 msgid "Matched supplier part" msgstr "" -#: plugin/base/barcodes/api.py:430 +#: plugin/base/barcodes/api.py:525 msgid "Item has already been received" msgstr "" -#: plugin/base/barcodes/api.py:467 +#: plugin/base/barcodes/api.py:563 msgid "No match for supplier barcode" msgstr "" -#: plugin/base/barcodes/api.py:510 +#: plugin/base/barcodes/api.py:612 msgid "Multiple matching line items found" msgstr "" -#: plugin/base/barcodes/api.py:513 +#: plugin/base/barcodes/api.py:615 msgid "No matching line item found" msgstr "" -#: plugin/base/barcodes/api.py:551 plugin/base/barcodes/api.py:558 +#: plugin/base/barcodes/api.py:661 +msgid "No sales order provided" +msgstr "" + +#: plugin/base/barcodes/api.py:670 msgid "Barcode does not match an existing stock item" msgstr "" -#: plugin/base/barcodes/api.py:569 +#: plugin/base/barcodes/api.py:686 msgid "Stock item does not match line item" msgstr "" -#: plugin/base/barcodes/api.py:593 templates/js/translated/build.js:2780 -#: templates/js/translated/sales_order.js:1953 +#: plugin/base/barcodes/api.py:716 templates/js/translated/build.js:2798 +#: templates/js/translated/sales_order.js:1934 msgid "Insufficient stock available" msgstr "" -#: plugin/base/barcodes/api.py:602 +#: plugin/base/barcodes/api.py:729 msgid "Stock item allocated to sales order" msgstr "" -#: plugin/base/barcodes/api.py:606 +#: plugin/base/barcodes/api.py:732 msgid "Not enough information" msgstr "" @@ -8591,75 +8827,75 @@ msgstr "" msgid "Purchase order does not match supplier" msgstr "" -#: plugin/base/barcodes/mixins.py:465 +#: plugin/base/barcodes/mixins.py:467 msgid "Failed to find pending line item for supplier part" msgstr "" -#: plugin/base/barcodes/mixins.py:496 +#: plugin/base/barcodes/mixins.py:498 msgid "Further information required to receive line item" msgstr "" -#: plugin/base/barcodes/mixins.py:504 +#: plugin/base/barcodes/mixins.py:506 msgid "Received purchase order line item" msgstr "" -#: plugin/base/barcodes/serializers.py:21 +#: plugin/base/barcodes/serializers.py:48 msgid "Scanned barcode data" msgstr "" -#: plugin/base/barcodes/serializers.py:30 +#: plugin/base/barcodes/serializers.py:57 msgid "Model name to generate barcode for" msgstr "" -#: plugin/base/barcodes/serializers.py:35 +#: plugin/base/barcodes/serializers.py:62 msgid "Primary key of model object to generate barcode for" msgstr "" -#: plugin/base/barcodes/serializers.py:105 +#: plugin/base/barcodes/serializers.py:132 msgid "Purchase Order to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:111 +#: plugin/base/barcodes/serializers.py:138 msgid "Purchase order is not pending" msgstr "" -#: plugin/base/barcodes/serializers.py:129 +#: plugin/base/barcodes/serializers.py:156 msgid "PurchaseOrder to receive items against" msgstr "" -#: plugin/base/barcodes/serializers.py:135 +#: plugin/base/barcodes/serializers.py:162 msgid "Purchase order has not been placed" msgstr "" -#: plugin/base/barcodes/serializers.py:143 +#: plugin/base/barcodes/serializers.py:170 msgid "Location to receive items into" msgstr "" -#: plugin/base/barcodes/serializers.py:149 +#: plugin/base/barcodes/serializers.py:176 msgid "Cannot select a structural location" msgstr "" -#: plugin/base/barcodes/serializers.py:163 +#: plugin/base/barcodes/serializers.py:190 msgid "Sales Order to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:169 +#: plugin/base/barcodes/serializers.py:196 msgid "Sales order is not pending" msgstr "" -#: plugin/base/barcodes/serializers.py:177 +#: plugin/base/barcodes/serializers.py:204 msgid "Sales order line item to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:184 +#: plugin/base/barcodes/serializers.py:211 msgid "Sales order shipment to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:190 +#: plugin/base/barcodes/serializers.py:217 msgid "Shipment has already been delivered" msgstr "" -#: plugin/base/barcodes/serializers.py:195 +#: plugin/base/barcodes/serializers.py:222 msgid "Quantity to allocate" msgstr "" @@ -8679,6 +8915,42 @@ msgstr "" msgid "No items provided to print" msgstr "" +#: plugin/base/ui/serializers.py:30 +msgid "Plugin Name" +msgstr "" + +#: plugin/base/ui/serializers.py:34 +msgid "Feature Type" +msgstr "" + +#: plugin/base/ui/serializers.py:39 +msgid "Feature Label" +msgstr "" + +#: plugin/base/ui/serializers.py:44 +msgid "Feature Title" +msgstr "" + +#: plugin/base/ui/serializers.py:49 +msgid "Feature Description" +msgstr "" + +#: plugin/base/ui/serializers.py:54 +msgid "Feature Icon" +msgstr "" + +#: plugin/base/ui/serializers.py:58 +msgid "Feature Options" +msgstr "" + +#: plugin/base/ui/serializers.py:61 +msgid "Feature Context" +msgstr "" + +#: plugin/base/ui/serializers.py:64 +msgid "Feature Source (javascript)" +msgstr "" + #: plugin/builtin/barcodes/inventree_barcode.py:27 msgid "InvenTree Barcodes" msgstr "" @@ -8756,7 +9028,7 @@ msgstr "" msgid "URL that is used to send messages to a slack channel" msgstr "" -#: plugin/builtin/integration/core_notifications.py:164 +#: plugin/builtin/integration/core_notifications.py:166 msgid "Open link" msgstr "" @@ -8794,11 +9066,11 @@ msgstr "" msgid "Provides support for printing using a machine" msgstr "" -#: plugin/builtin/labels/inventree_machine.py:149 +#: plugin/builtin/labels/inventree_machine.py:151 msgid "last used" msgstr "" -#: plugin/builtin/labels/inventree_machine.py:166 +#: plugin/builtin/labels/inventree_machine.py:168 msgid "Options" msgstr "" @@ -8822,7 +9094,7 @@ msgstr "" msgid "Print a border around each label" msgstr "" -#: plugin/builtin/labels/label_sheet.py:47 report/models.py:307 +#: plugin/builtin/labels/label_sheet.py:47 report/models.py:315 msgid "Landscape" msgstr "" @@ -8894,19 +9166,19 @@ msgstr "" msgid "The Supplier which acts as 'TME'" msgstr "" -#: plugin/installer.py:194 plugin/installer.py:282 +#: plugin/installer.py:199 plugin/installer.py:282 msgid "Only staff users can administer plugins" msgstr "" -#: plugin/installer.py:197 +#: plugin/installer.py:202 msgid "Plugin installation is disabled" msgstr "" -#: plugin/installer.py:248 +#: plugin/installer.py:246 msgid "Installed plugin successfully" msgstr "" -#: plugin/installer.py:254 +#: plugin/installer.py:251 #, python-brace-format msgid "Installed plugin into {path}" msgstr "" @@ -8943,10 +9215,6 @@ msgstr "" msgid "Plugin Configurations" msgstr "" -#: plugin/models.py:43 users/models.py:100 -msgid "Key" -msgstr "" - #: plugin/models.py:44 msgid "Key of plugin" msgstr "" @@ -8955,7 +9223,7 @@ msgstr "" msgid "PluginName of the plugin" msgstr "" -#: plugin/models.py:59 plugin/serializers.py:90 +#: plugin/models.py:59 plugin/serializers.py:115 msgid "Package Name" msgstr "" @@ -8984,17 +9252,17 @@ msgstr "" msgid "Package Plugin" msgstr "" -#: plugin/models.py:220 report/models.py:474 +#: plugin/models.py:259 report/models.py:482 #: templates/InvenTree/settings/plugin_settings.html:9 #: templates/js/translated/plugin.js:51 msgid "Plugin" msgstr "" -#: plugin/models.py:267 +#: plugin/models.py:306 msgid "Method" msgstr "" -#: plugin/plugin.py:270 +#: plugin/plugin.py:275 msgid "No author found" msgstr "" @@ -9053,81 +9321,157 @@ msgstr "" msgid "InvenTree Contributors" msgstr "" -#: plugin/serializers.py:81 -msgid "Source URL" +#: plugin/samples/integration/user_interface_sample.py:27 +msgid "Enable Part Panels" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:28 +msgid "Enable custom panels for Part views" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:33 +msgid "Enable Purchase Order Panels" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:34 +msgid "Enable custom panels for Purchase Order views" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:39 +msgid "Enable Broken Panels" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:40 +msgid "Enable broken panels for testing" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:45 +msgid "Enable Dynamic Panel" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:46 +msgid "Enable dynamic panels for testing" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:98 +msgid "Part Panel" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:131 +msgid "Broken Dashboard Item" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:133 +msgid "This is a broken dashboard item - it will not render!" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:139 +msgid "Sample Dashboard Item" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:141 +msgid "This is a sample dashboard item. It renders a simple string of HTML content." +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:147 +msgid "Context Dashboard Item" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:161 +msgid "Admin Dashboard Item" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:162 +msgid "This is an admin-only dashboard item." +msgstr "" + +#: plugin/serializers.py:82 +msgid "Source File" msgstr "" #: plugin/serializers.py:83 +msgid "Path to the source file for admin integration" +msgstr "" + +#: plugin/serializers.py:90 +msgid "Optional context data for the admin integration" +msgstr "" + +#: plugin/serializers.py:106 +msgid "Source URL" +msgstr "" + +#: plugin/serializers.py:108 msgid "Source for the package - this can be a custom registry or a VCS path" msgstr "" -#: plugin/serializers.py:92 +#: plugin/serializers.py:117 msgid "Name for the Plugin Package - can also contain a version indicator" msgstr "" -#: plugin/serializers.py:99 +#: plugin/serializers.py:124 #: templates/InvenTree/settings/plugin_settings.html:42 #: templates/js/translated/plugin.js:86 msgid "Version" msgstr "" -#: plugin/serializers.py:101 +#: plugin/serializers.py:126 msgid "Version specifier for the plugin. Leave blank for latest version." msgstr "" -#: plugin/serializers.py:106 +#: plugin/serializers.py:131 msgid "Confirm plugin installation" msgstr "" -#: plugin/serializers.py:108 +#: plugin/serializers.py:133 msgid "This will install this plugin now into the current instance. The instance will go into maintenance." msgstr "" -#: plugin/serializers.py:121 +#: plugin/serializers.py:146 msgid "Installation not confirmed" msgstr "" -#: plugin/serializers.py:123 +#: plugin/serializers.py:148 msgid "Either packagename of URL must be provided" msgstr "" -#: plugin/serializers.py:161 +#: plugin/serializers.py:184 msgid "Full reload" msgstr "" -#: plugin/serializers.py:162 +#: plugin/serializers.py:185 msgid "Perform a full reload of the plugin registry" msgstr "" -#: plugin/serializers.py:168 +#: plugin/serializers.py:191 msgid "Force reload" msgstr "" -#: plugin/serializers.py:170 +#: plugin/serializers.py:193 msgid "Force a reload of the plugin registry, even if it is already loaded" msgstr "" -#: plugin/serializers.py:177 +#: plugin/serializers.py:200 msgid "Collect plugins" msgstr "" -#: plugin/serializers.py:178 +#: plugin/serializers.py:201 msgid "Collect plugins and add them to the registry" msgstr "" -#: plugin/serializers.py:205 +#: plugin/serializers.py:228 msgid "Activate Plugin" msgstr "" -#: plugin/serializers.py:206 +#: plugin/serializers.py:229 msgid "Activate this plugin" msgstr "" -#: plugin/serializers.py:226 +#: plugin/serializers.py:249 msgid "Delete configuration" msgstr "" -#: plugin/serializers.py:227 +#: plugin/serializers.py:250 msgid "Delete the plugin configuration from the database" msgstr "" @@ -9135,11 +9479,11 @@ msgstr "" msgid "No valid objects provided to template" msgstr "" -#: report/api.py:103 report/models.py:438 report/serializers.py:98 -#: report/serializers.py:148 templates/js/translated/purchase_order.js:1817 +#: report/api.py:103 report/models.py:446 report/serializers.py:99 +#: report/serializers.py:149 templates/js/translated/purchase_order.js:1801 #: templates/js/translated/return_order.js:353 -#: templates/js/translated/sales_order.js:887 -#: templates/js/translated/sales_order.js:1047 +#: templates/js/translated/sales_order.js:846 +#: templates/js/translated/sales_order.js:1020 msgid "Items" msgstr "" @@ -9167,7 +9511,11 @@ msgstr "" msgid "Error printing label" msgstr "" -#: report/api.py:375 report/api.py:411 +#: report/api.py:358 +msgid "Report saved at time of printing" +msgstr "" + +#: report/api.py:384 report/api.py:420 #, python-brace-format msgid "Template file '{template}' is missing or does not exist" msgstr "" @@ -9204,135 +9552,143 @@ msgstr "" msgid "Revision number (auto-increments)" msgstr "" -#: report/models.py:202 +#: report/models.py:168 +msgid "Attach to Model on Print" +msgstr "" + +#: report/models.py:170 +msgid "Save report output as an attachment against linked model instance when printing" +msgstr "" + +#: report/models.py:210 msgid "Filename Pattern" msgstr "" -#: report/models.py:203 +#: report/models.py:211 msgid "Pattern for generating filenames" msgstr "" -#: report/models.py:208 +#: report/models.py:216 msgid "Template is enabled" msgstr "" -#: report/models.py:214 +#: report/models.py:222 msgid "Target model type for template" msgstr "" -#: report/models.py:234 +#: report/models.py:242 msgid "Filters" msgstr "" -#: report/models.py:235 +#: report/models.py:243 msgid "Template query filters (comma-separated list of key=value pairs)" msgstr "" -#: report/models.py:294 report/models.py:361 +#: report/models.py:302 report/models.py:369 msgid "Template file" msgstr "" -#: report/models.py:302 +#: report/models.py:310 msgid "Page size for PDF reports" msgstr "" -#: report/models.py:308 +#: report/models.py:316 msgid "Render report in landscape orientation" msgstr "" -#: report/models.py:367 +#: report/models.py:375 msgid "Width [mm]" msgstr "" -#: report/models.py:368 +#: report/models.py:376 msgid "Label width, specified in mm" msgstr "" -#: report/models.py:374 +#: report/models.py:382 msgid "Height [mm]" msgstr "" -#: report/models.py:375 +#: report/models.py:383 msgid "Label height, specified in mm" msgstr "" -#: report/models.py:438 +#: report/models.py:446 msgid "Number of items to process" msgstr "" -#: report/models.py:444 +#: report/models.py:452 msgid "Report generation is complete" msgstr "" -#: report/models.py:448 templates/js/translated/build.js:2349 +#: report/models.py:456 templates/js/translated/build.js:2352 msgid "Progress" msgstr "" -#: report/models.py:448 +#: report/models.py:456 msgid "Report generation progress" msgstr "" -#: report/models.py:456 +#: report/models.py:464 msgid "Report Template" msgstr "" -#: report/models.py:463 report/models.py:486 +#: report/models.py:471 report/models.py:494 msgid "Output File" msgstr "" -#: report/models.py:464 report/models.py:487 +#: report/models.py:472 report/models.py:495 msgid "Generated output file" msgstr "" -#: report/models.py:475 +#: report/models.py:483 msgid "Label output plugin" msgstr "" -#: report/models.py:479 +#: report/models.py:487 msgid "Label Template" msgstr "" -#: report/models.py:502 +#: report/models.py:510 msgid "Snippet" msgstr "" -#: report/models.py:503 +#: report/models.py:511 msgid "Report snippet file" msgstr "" -#: report/models.py:510 +#: report/models.py:518 msgid "Snippet file description" msgstr "" -#: report/models.py:528 +#: report/models.py:536 msgid "Asset" msgstr "" -#: report/models.py:529 +#: report/models.py:537 msgid "Report asset file" msgstr "" -#: report/models.py:536 +#: report/models.py:544 msgid "Asset file description" msgstr "" -#: report/serializers.py:91 +#: report/serializers.py:92 msgid "Select report template" msgstr "" -#: report/serializers.py:99 report/serializers.py:149 +#: report/serializers.py:100 report/serializers.py:150 msgid "List of item primary keys to include in the report" msgstr "" -#: report/serializers.py:132 +#: report/serializers.py:133 msgid "Select label template" msgstr "" -#: report/serializers.py:140 +#: report/serializers.py:141 msgid "Printing Plugin" msgstr "" -#: report/serializers.py:141 +#: report/serializers.py:142 msgid "Select plugin to use for label printing" msgstr "" @@ -9365,9 +9721,9 @@ msgstr "" #: report/templates/report/inventree_sales_order_report.html:30 #: templates/js/translated/order.js:341 templates/js/translated/pricing.js:527 #: templates/js/translated/pricing.js:596 -#: templates/js/translated/pricing.js:834 -#: templates/js/translated/purchase_order.js:2185 -#: templates/js/translated/sales_order.js:1873 +#: templates/js/translated/pricing.js:832 +#: templates/js/translated/purchase_order.js:2169 +#: templates/js/translated/sales_order.js:1854 msgid "Unit Price" msgstr "" @@ -9379,13 +9735,18 @@ msgstr "" #: report/templates/report/inventree_purchase_order_report.html:72 #: report/templates/report/inventree_sales_order_report.html:72 -#: templates/js/translated/purchase_order.js:2087 -#: templates/js/translated/sales_order.js:1842 +#: templates/js/translated/purchase_order.js:2071 +#: templates/js/translated/sales_order.js:1823 #: templates/test_statistics_table.html:8 #: templates/test_statistics_table.html:19 msgid "Total" msgstr "" +#: report/templates/report/inventree_sales_order_shipment_report.html:23 +#: stock/templates/stock/stock_sidebar.html:8 +msgid "Allocations" +msgstr "" + #: report/templates/report/inventree_stock_location_report.html:97 msgid "Stock location items" msgstr "" @@ -9403,15 +9764,13 @@ msgstr "" msgid "Test" msgstr "" -#: report/templates/report/inventree_test_report.html:103 stock/models.py:2544 -msgid "Result" -msgstr "" - #: report/templates/report/inventree_test_report.html:129 +#: templates/js/translated/stock.js:1448 msgid "Pass" msgstr "" #: report/templates/report/inventree_test_report.html:131 +#: templates/js/translated/stock.js:1450 msgid "Fail" msgstr "" @@ -9420,17 +9779,18 @@ msgid "No result (required)" msgstr "" #: report/templates/report/inventree_test_report.html:140 +#: templates/js/translated/stock.js:1455 msgid "No result" msgstr "" #: report/templates/report/inventree_test_report.html:153 -#: stock/serializers.py:599 stock/templates/stock/stock_sidebar.html:16 +#: stock/serializers.py:626 stock/templates/stock/stock_sidebar.html:16 msgid "Installed Items" msgstr "" -#: report/templates/report/inventree_test_report.html:167 stock/admin.py:161 +#: report/templates/report/inventree_test_report.html:167 stock/admin.py:162 #: templates/js/translated/stock.js:706 templates/js/translated/stock.js:877 -#: templates/js/translated/stock.js:3194 +#: templates/js/translated/stock.js:3195 msgid "Serial" msgstr "" @@ -9450,67 +9810,67 @@ msgstr "" msgid "company_image tag requires a Company instance" msgstr "" -#: stock/admin.py:51 stock/admin.py:171 +#: stock/admin.py:51 stock/admin.py:172 msgid "Location ID" msgstr "" -#: stock/admin.py:63 stock/templates/stock/location.html:128 -#: stock/templates/stock/location.html:134 +#: stock/admin.py:63 stock/templates/stock/location.html:129 +#: stock/templates/stock/location.html:135 msgid "Location Path" msgstr "" -#: stock/admin.py:148 +#: stock/admin.py:149 msgid "Stock Item ID" msgstr "" -#: stock/admin.py:167 +#: stock/admin.py:168 msgid "Status Code" msgstr "" -#: stock/admin.py:179 +#: stock/admin.py:180 msgid "Supplier Part ID" msgstr "" -#: stock/admin.py:184 +#: stock/admin.py:185 msgid "Supplier Part SKU" msgstr "" -#: stock/admin.py:189 +#: stock/admin.py:190 msgid "Supplier ID" msgstr "" -#: stock/admin.py:200 +#: stock/admin.py:201 msgid "Customer ID" msgstr "" -#: stock/admin.py:205 stock/models.py:825 -#: stock/templates/stock/item_base.html:354 +#: stock/admin.py:206 stock/models.py:902 +#: stock/templates/stock/item_base.html:351 msgid "Installed In" msgstr "" -#: stock/admin.py:210 +#: stock/admin.py:211 msgid "Build ID" msgstr "" -#: stock/admin.py:220 +#: stock/admin.py:221 msgid "Sales Order ID" msgstr "" -#: stock/admin.py:225 +#: stock/admin.py:226 msgid "Purchase Order ID" msgstr "" -#: stock/admin.py:240 +#: stock/admin.py:241 msgid "Review Needed" msgstr "" -#: stock/admin.py:245 +#: stock/admin.py:246 msgid "Delete on Deplete" msgstr "" -#: stock/admin.py:260 stock/models.py:919 -#: stock/templates/stock/item_base.html:433 -#: templates/js/translated/stock.js:2315 users/models.py:124 +#: stock/admin.py:261 stock/models.py:996 +#: stock/templates/stock/item_base.html:430 +#: templates/js/translated/stock.js:2316 users/models.py:124 msgid "Expiry Date" msgstr "" @@ -9526,11 +9886,11 @@ msgstr "" msgid "Include sub-locations in filtered results" msgstr "" -#: stock/api.py:367 stock/serializers.py:1186 +#: stock/api.py:366 stock/serializers.py:1217 msgid "Parent Location" msgstr "" -#: stock/api.py:368 +#: stock/api.py:367 msgid "Filter by parent location" msgstr "" @@ -9550,8 +9910,8 @@ msgstr "" msgid "Expiry date after" msgstr "" -#: stock/api.py:840 stock/serializers.py:604 -#: stock/templates/stock/item_base.html:439 +#: stock/api.py:840 stock/serializers.py:631 +#: stock/templates/stock/item_base.html:436 #: templates/js/translated/table_filters.js:448 msgid "Stale" msgstr "" @@ -9560,594 +9920,598 @@ msgstr "" msgid "Quantity is required" msgstr "" -#: stock/api.py:933 +#: stock/api.py:932 msgid "Valid part must be supplied" msgstr "" -#: stock/api.py:964 +#: stock/api.py:959 msgid "The given supplier part does not exist" msgstr "" -#: stock/api.py:974 +#: stock/api.py:969 msgid "The supplier part has a pack size defined, but flag use_pack_size not set" msgstr "" -#: stock/api.py:1005 +#: stock/api.py:996 msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "" -#: stock/models.py:64 +#: stock/models.py:70 msgid "Stock Location type" msgstr "" -#: stock/models.py:65 +#: stock/models.py:71 msgid "Stock Location types" msgstr "" -#: stock/models.py:91 +#: stock/models.py:97 msgid "Default icon for all locations that have no icon set (optional)" msgstr "" -#: stock/models.py:131 stock/models.py:807 -#: stock/templates/stock/location.html:17 +#: stock/models.py:137 stock/models.py:884 +#: stock/templates/stock/location.html:18 #: stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "" -#: stock/models.py:132 stock/templates/stock/location.html:183 +#: stock/models.py:138 stock/templates/stock/location.html:184 #: templates/InvenTree/search.html:166 templates/js/translated/search.js:178 #: users/models.py:205 msgid "Stock Locations" msgstr "" -#: stock/models.py:180 stock/models.py:968 -#: stock/templates/stock/item_base.html:247 +#: stock/models.py:186 stock/models.py:1045 +#: stock/templates/stock/item_base.html:244 msgid "Owner" msgstr "" -#: stock/models.py:181 stock/models.py:969 +#: stock/models.py:187 stock/models.py:1046 msgid "Select Owner" msgstr "" -#: stock/models.py:189 +#: stock/models.py:195 msgid "Stock items may not be directly located into a structural stock locations, but may be located to child locations." msgstr "" -#: stock/models.py:196 templates/js/translated/stock.js:2865 +#: stock/models.py:202 templates/js/translated/stock.js:2866 #: templates/js/translated/table_filters.js:250 msgid "External" msgstr "" -#: stock/models.py:197 +#: stock/models.py:203 msgid "This is an external stock location" msgstr "" -#: stock/models.py:203 templates/js/translated/stock.js:2874 +#: stock/models.py:209 templates/js/translated/stock.js:2875 #: templates/js/translated/table_filters.js:253 msgid "Location type" msgstr "" -#: stock/models.py:207 +#: stock/models.py:213 msgid "Stock location type of this location" msgstr "" -#: stock/models.py:279 +#: stock/models.py:285 msgid "You cannot make this stock location structural because some stock items are already located into it!" msgstr "" -#: stock/models.py:664 +#: stock/models.py:492 +msgid "Part must be specified" +msgstr "" + +#: stock/models.py:741 msgid "Stock items cannot be located into structural stock locations!" msgstr "" -#: stock/models.py:691 stock/serializers.py:480 +#: stock/models.py:768 stock/serializers.py:492 msgid "Stock item cannot be created for virtual parts" msgstr "" -#: stock/models.py:708 +#: stock/models.py:785 #, python-brace-format msgid "Part type ('{self.supplier_part.part}') must be {self.part}" msgstr "" -#: stock/models.py:718 stock/models.py:731 +#: stock/models.py:795 stock/models.py:808 msgid "Quantity must be 1 for item with a serial number" msgstr "" -#: stock/models.py:721 +#: stock/models.py:798 msgid "Serial number cannot be set if quantity greater than 1" msgstr "" -#: stock/models.py:743 +#: stock/models.py:820 msgid "Item cannot belong to itself" msgstr "" -#: stock/models.py:748 +#: stock/models.py:825 msgid "Item must have a build reference if is_building=True" msgstr "" -#: stock/models.py:761 +#: stock/models.py:838 msgid "Build reference does not point to the same part object" msgstr "" -#: stock/models.py:777 +#: stock/models.py:854 msgid "Parent Stock Item" msgstr "" -#: stock/models.py:789 +#: stock/models.py:866 msgid "Base part" msgstr "" -#: stock/models.py:799 +#: stock/models.py:876 msgid "Select a matching supplier part for this stock item" msgstr "" -#: stock/models.py:811 +#: stock/models.py:888 msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:819 stock/serializers.py:1580 +#: stock/models.py:896 stock/serializers.py:1611 msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:830 +#: stock/models.py:907 msgid "Is this item installed in another item?" msgstr "" -#: stock/models.py:849 +#: stock/models.py:926 msgid "Serial number for this item" msgstr "" -#: stock/models.py:863 stock/serializers.py:1563 +#: stock/models.py:940 stock/serializers.py:1594 msgid "Batch code for this stock item" msgstr "" -#: stock/models.py:868 +#: stock/models.py:945 msgid "Stock Quantity" msgstr "" -#: stock/models.py:878 +#: stock/models.py:955 msgid "Source Build" msgstr "" -#: stock/models.py:881 +#: stock/models.py:958 msgid "Build for this stock item" msgstr "" -#: stock/models.py:888 stock/templates/stock/item_base.html:363 +#: stock/models.py:965 stock/templates/stock/item_base.html:360 msgid "Consumed By" msgstr "" -#: stock/models.py:891 +#: stock/models.py:968 msgid "Build order which consumed this stock item" msgstr "" -#: stock/models.py:900 +#: stock/models.py:977 msgid "Source Purchase Order" msgstr "" -#: stock/models.py:904 +#: stock/models.py:981 msgid "Purchase order for this stock item" msgstr "" -#: stock/models.py:910 +#: stock/models.py:987 msgid "Destination Sales Order" msgstr "" -#: stock/models.py:921 +#: stock/models.py:998 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "" -#: stock/models.py:939 +#: stock/models.py:1016 msgid "Delete on deplete" msgstr "" -#: stock/models.py:940 +#: stock/models.py:1017 msgid "Delete this Stock Item when stock is depleted" msgstr "" -#: stock/models.py:960 +#: stock/models.py:1037 msgid "Single unit purchase price at time of purchase" msgstr "" -#: stock/models.py:991 +#: stock/models.py:1068 msgid "Converted to part" msgstr "" -#: stock/models.py:1511 +#: stock/models.py:1600 msgid "Part is not set as trackable" msgstr "" -#: stock/models.py:1517 +#: stock/models.py:1606 msgid "Quantity must be integer" msgstr "" -#: stock/models.py:1525 +#: stock/models.py:1614 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({self.quantity})" msgstr "" -#: stock/models.py:1531 -msgid "Serial numbers must be a list of integers" +#: stock/models.py:1620 +msgid "Serial numbers must be provided as a list" msgstr "" -#: stock/models.py:1536 +#: stock/models.py:1625 msgid "Quantity does not match serial numbers" msgstr "" -#: stock/models.py:1544 stock/serializers.py:726 -msgid "Serial numbers already exist" -msgstr "" - -#: stock/models.py:1641 +#: stock/models.py:1747 stock/models.py:2563 msgid "Test template does not exist" msgstr "" -#: stock/models.py:1659 +#: stock/models.py:1765 msgid "Stock item has been assigned to a sales order" msgstr "" -#: stock/models.py:1663 +#: stock/models.py:1769 msgid "Stock item is installed in another item" msgstr "" -#: stock/models.py:1666 +#: stock/models.py:1772 msgid "Stock item contains other items" msgstr "" -#: stock/models.py:1669 +#: stock/models.py:1775 msgid "Stock item has been assigned to a customer" msgstr "" -#: stock/models.py:1672 +#: stock/models.py:1778 msgid "Stock item is currently in production" msgstr "" -#: stock/models.py:1675 +#: stock/models.py:1781 msgid "Serialized stock cannot be merged" msgstr "" -#: stock/models.py:1682 stock/serializers.py:1469 +#: stock/models.py:1788 stock/serializers.py:1500 msgid "Duplicate stock items" msgstr "" -#: stock/models.py:1686 +#: stock/models.py:1792 msgid "Stock items must refer to the same part" msgstr "" -#: stock/models.py:1694 +#: stock/models.py:1800 msgid "Stock items must refer to the same supplier part" msgstr "" -#: stock/models.py:1699 +#: stock/models.py:1805 msgid "Stock status codes must match" msgstr "" -#: stock/models.py:1960 +#: stock/models.py:2066 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:2343 +#: stock/models.py:2462 msgid "Stock Item Tracking" msgstr "" -#: stock/models.py:2376 +#: stock/models.py:2495 msgid "Entry notes" msgstr "" -#: stock/models.py:2416 +#: stock/models.py:2535 msgid "Stock Item Test Result" msgstr "" -#: stock/models.py:2449 +#: stock/models.py:2566 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:2454 +#: stock/models.py:2570 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:2459 +#: stock/models.py:2575 msgid "Invalid value for this test" msgstr "" -#: stock/models.py:2544 +#: stock/models.py:2660 msgid "Test result" msgstr "" -#: stock/models.py:2551 +#: stock/models.py:2667 msgid "Test output value" msgstr "" -#: stock/models.py:2559 +#: stock/models.py:2675 stock/serializers.py:245 msgid "Test result attachment" msgstr "" -#: stock/models.py:2563 +#: stock/models.py:2679 msgid "Test notes" msgstr "" -#: stock/models.py:2571 templates/js/translated/stock.js:1633 +#: stock/models.py:2687 templates/js/translated/stock.js:1633 msgid "Test station" msgstr "" -#: stock/models.py:2572 +#: stock/models.py:2688 msgid "The identifier of the test station where the test was performed" msgstr "" -#: stock/models.py:2578 +#: stock/models.py:2694 msgid "Started" msgstr "" -#: stock/models.py:2579 +#: stock/models.py:2695 msgid "The timestamp of the test start" msgstr "" -#: stock/models.py:2585 +#: stock/models.py:2701 msgid "Finished" msgstr "" -#: stock/models.py:2586 +#: stock/models.py:2702 msgid "The timestamp of the test finish" msgstr "" -#: stock/serializers.py:76 +#: stock/serializers.py:77 msgid "Generated batch code" msgstr "" -#: stock/serializers.py:85 +#: stock/serializers.py:86 msgid "Select build order" msgstr "" -#: stock/serializers.py:94 +#: stock/serializers.py:95 msgid "Select stock item to generate batch code for" msgstr "" -#: stock/serializers.py:103 +#: stock/serializers.py:104 msgid "Select location to generate batch code for" msgstr "" -#: stock/serializers.py:112 +#: stock/serializers.py:113 msgid "Select part to generate batch code for" msgstr "" -#: stock/serializers.py:121 +#: stock/serializers.py:122 msgid "Select purchase order" msgstr "" -#: stock/serializers.py:128 +#: stock/serializers.py:129 msgid "Enter quantity for batch code" msgstr "" -#: stock/serializers.py:151 +#: stock/serializers.py:152 msgid "Generated serial number" msgstr "" -#: stock/serializers.py:160 +#: stock/serializers.py:161 msgid "Select part to generate serial number for" msgstr "" -#: stock/serializers.py:168 +#: stock/serializers.py:169 msgid "Quantity of serial numbers to generate" msgstr "" -#: stock/serializers.py:233 +#: stock/serializers.py:234 msgid "Test template for this result" msgstr "" -#: stock/serializers.py:254 +#: stock/serializers.py:258 msgid "Template ID or test name must be provided" msgstr "" -#: stock/serializers.py:286 +#: stock/serializers.py:290 msgid "The test finished time cannot be earlier than the test started time" msgstr "" -#: stock/serializers.py:323 +#: stock/serializers.py:327 msgid "Serial number is too large" msgstr "" -#: stock/serializers.py:452 stock/templates/stock/item_base.html:193 +#: stock/serializers.py:462 stock/templates/stock/item_base.html:190 msgid "Parent Item" msgstr "" -#: stock/serializers.py:453 +#: stock/serializers.py:463 msgid "Parent stock item" msgstr "" -#: stock/serializers.py:472 +#: stock/serializers.py:484 msgid "Use pack size when adding: the quantity defined is the number of packs" msgstr "" -#: stock/serializers.py:596 stock/templates/stock/item_base.html:437 +#: stock/serializers.py:623 stock/templates/stock/item_base.html:434 #: templates/js/translated/table_filters.js:442 users/models.py:174 msgid "Expired" msgstr "" -#: stock/serializers.py:602 stock/templates/stock/stock_sidebar.html:20 +#: stock/serializers.py:629 stock/templates/stock/stock_sidebar.html:20 msgid "Child Items" msgstr "" -#: stock/serializers.py:606 +#: stock/serializers.py:633 msgid "Tracking Items" msgstr "" -#: stock/serializers.py:612 +#: stock/serializers.py:639 msgid "Purchase price of this stock item, per unit or pack" msgstr "" -#: stock/serializers.py:631 +#: stock/serializers.py:658 msgid "Minimum Pricing" msgstr "" -#: stock/serializers.py:637 +#: stock/serializers.py:664 msgid "Maximum Pricing" msgstr "" -#: stock/serializers.py:661 +#: stock/serializers.py:688 msgid "Enter number of stock items to serialize" msgstr "" -#: stock/serializers.py:674 +#: stock/serializers.py:701 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({q})" msgstr "" -#: stock/serializers.py:681 +#: stock/serializers.py:708 msgid "Enter serial numbers for new items" msgstr "" -#: stock/serializers.py:692 stock/serializers.py:1426 stock/serializers.py:1682 +#: stock/serializers.py:719 stock/serializers.py:1457 stock/serializers.py:1713 msgid "Destination stock location" msgstr "" -#: stock/serializers.py:699 +#: stock/serializers.py:726 msgid "Optional note field" msgstr "" -#: stock/serializers.py:709 +#: stock/serializers.py:736 msgid "Serial numbers cannot be assigned to this part" msgstr "" -#: stock/serializers.py:764 +#: stock/serializers.py:756 +msgid "Serial numbers already exist" +msgstr "" + +#: stock/serializers.py:795 msgid "Select stock item to install" msgstr "" -#: stock/serializers.py:771 +#: stock/serializers.py:802 msgid "Quantity to Install" msgstr "" -#: stock/serializers.py:772 +#: stock/serializers.py:803 msgid "Enter the quantity of items to install" msgstr "" -#: stock/serializers.py:777 stock/serializers.py:857 stock/serializers.py:983 -#: stock/serializers.py:1033 +#: stock/serializers.py:808 stock/serializers.py:888 stock/serializers.py:1014 +#: stock/serializers.py:1064 msgid "Add transaction note (optional)" msgstr "" -#: stock/serializers.py:785 +#: stock/serializers.py:816 msgid "Quantity to install must be at least 1" msgstr "" -#: stock/serializers.py:793 +#: stock/serializers.py:824 msgid "Stock item is unavailable" msgstr "" -#: stock/serializers.py:804 +#: stock/serializers.py:835 msgid "Selected part is not in the Bill of Materials" msgstr "" -#: stock/serializers.py:817 +#: stock/serializers.py:848 msgid "Quantity to install must not exceed available quantity" msgstr "" -#: stock/serializers.py:852 +#: stock/serializers.py:883 msgid "Destination location for uninstalled item" msgstr "" -#: stock/serializers.py:903 +#: stock/serializers.py:934 msgid "Unsupported statistic type: " msgstr "" -#: stock/serializers.py:917 +#: stock/serializers.py:948 msgid "Select part to convert stock item into" msgstr "" -#: stock/serializers.py:930 +#: stock/serializers.py:961 msgid "Selected part is not a valid option for conversion" msgstr "" -#: stock/serializers.py:947 +#: stock/serializers.py:978 msgid "Cannot convert stock item with assigned SupplierPart" msgstr "" -#: stock/serializers.py:978 +#: stock/serializers.py:1009 msgid "Destination location for returned item" msgstr "" -#: stock/serializers.py:1015 +#: stock/serializers.py:1046 msgid "Select stock items to change status" msgstr "" -#: stock/serializers.py:1021 +#: stock/serializers.py:1052 msgid "No stock items selected" msgstr "" -#: stock/serializers.py:1117 stock/serializers.py:1194 -#: stock/templates/stock/location.html:162 -#: stock/templates/stock/location.html:219 +#: stock/serializers.py:1148 stock/serializers.py:1225 +#: stock/templates/stock/location.html:163 +#: stock/templates/stock/location.html:220 #: stock/templates/stock/location_sidebar.html:5 msgid "Sublocations" msgstr "" -#: stock/serializers.py:1187 templates/js/translated/stock.js:160 +#: stock/serializers.py:1218 templates/js/translated/stock.js:160 msgid "Parent stock location" msgstr "" -#: stock/serializers.py:1298 +#: stock/serializers.py:1329 msgid "Part must be salable" msgstr "" -#: stock/serializers.py:1302 +#: stock/serializers.py:1333 msgid "Item is allocated to a sales order" msgstr "" -#: stock/serializers.py:1306 +#: stock/serializers.py:1337 msgid "Item is allocated to a build order" msgstr "" -#: stock/serializers.py:1330 +#: stock/serializers.py:1361 msgid "Customer to assign stock items" msgstr "" -#: stock/serializers.py:1336 +#: stock/serializers.py:1367 msgid "Selected company is not a customer" msgstr "" -#: stock/serializers.py:1344 +#: stock/serializers.py:1375 msgid "Stock assignment notes" msgstr "" -#: stock/serializers.py:1354 stock/serializers.py:1608 +#: stock/serializers.py:1385 stock/serializers.py:1639 msgid "A list of stock items must be provided" msgstr "" -#: stock/serializers.py:1433 +#: stock/serializers.py:1464 msgid "Stock merging notes" msgstr "" -#: stock/serializers.py:1438 +#: stock/serializers.py:1469 msgid "Allow mismatched suppliers" msgstr "" -#: stock/serializers.py:1439 +#: stock/serializers.py:1470 msgid "Allow stock items with different supplier parts to be merged" msgstr "" -#: stock/serializers.py:1444 +#: stock/serializers.py:1475 msgid "Allow mismatched status" msgstr "" -#: stock/serializers.py:1445 +#: stock/serializers.py:1476 msgid "Allow stock items with different status codes to be merged" msgstr "" -#: stock/serializers.py:1455 +#: stock/serializers.py:1486 msgid "At least two stock items must be provided" msgstr "" -#: stock/serializers.py:1522 +#: stock/serializers.py:1553 msgid "No Change" msgstr "" -#: stock/serializers.py:1551 +#: stock/serializers.py:1582 msgid "StockItem primary key value" msgstr "" -#: stock/serializers.py:1570 +#: stock/serializers.py:1601 msgid "Stock item status code" msgstr "" -#: stock/serializers.py:1598 +#: stock/serializers.py:1629 msgid "Stock transaction notes" msgstr "" @@ -10175,107 +10539,107 @@ msgstr "" msgid "Quarantined" msgstr "" -#: stock/status_codes.py:40 +#: stock/status_codes.py:44 msgid "Legacy stock tracking entry" msgstr "" -#: stock/status_codes.py:42 templates/js/translated/stock.js:550 +#: stock/status_codes.py:46 templates/js/translated/stock.js:550 msgid "Stock item created" msgstr "" -#: stock/status_codes.py:45 +#: stock/status_codes.py:49 msgid "Edited stock item" msgstr "" -#: stock/status_codes.py:46 +#: stock/status_codes.py:50 msgid "Assigned serial number" msgstr "" -#: stock/status_codes.py:49 +#: stock/status_codes.py:53 msgid "Stock counted" msgstr "" -#: stock/status_codes.py:50 +#: stock/status_codes.py:54 msgid "Stock manually added" msgstr "" -#: stock/status_codes.py:51 +#: stock/status_codes.py:55 msgid "Stock manually removed" msgstr "" -#: stock/status_codes.py:54 +#: stock/status_codes.py:58 msgid "Location changed" msgstr "" -#: stock/status_codes.py:55 +#: stock/status_codes.py:59 msgid "Stock updated" msgstr "" -#: stock/status_codes.py:58 +#: stock/status_codes.py:62 msgid "Installed into assembly" msgstr "" -#: stock/status_codes.py:59 +#: stock/status_codes.py:63 msgid "Removed from assembly" msgstr "" -#: stock/status_codes.py:61 +#: stock/status_codes.py:65 msgid "Installed component item" msgstr "" -#: stock/status_codes.py:62 +#: stock/status_codes.py:66 msgid "Removed component item" msgstr "" -#: stock/status_codes.py:65 +#: stock/status_codes.py:69 msgid "Split from parent item" msgstr "" -#: stock/status_codes.py:66 +#: stock/status_codes.py:70 msgid "Split child item" msgstr "" -#: stock/status_codes.py:69 templates/js/translated/stock.js:1943 +#: stock/status_codes.py:73 templates/js/translated/stock.js:1944 msgid "Merged stock items" msgstr "" -#: stock/status_codes.py:72 +#: stock/status_codes.py:76 msgid "Converted to variant" msgstr "" -#: stock/status_codes.py:75 +#: stock/status_codes.py:79 msgid "Build order output created" msgstr "" -#: stock/status_codes.py:76 +#: stock/status_codes.py:80 msgid "Build order output completed" msgstr "" -#: stock/status_codes.py:77 +#: stock/status_codes.py:81 msgid "Build order output rejected" msgstr "" -#: stock/status_codes.py:78 templates/js/translated/stock.js:1849 +#: stock/status_codes.py:82 templates/js/translated/stock.js:1849 msgid "Consumed by build order" msgstr "" -#: stock/status_codes.py:81 +#: stock/status_codes.py:85 msgid "Shipped against Sales Order" msgstr "" -#: stock/status_codes.py:84 +#: stock/status_codes.py:88 msgid "Received against Purchase Order" msgstr "" -#: stock/status_codes.py:87 +#: stock/status_codes.py:91 msgid "Returned against Return Order" msgstr "" -#: stock/status_codes.py:90 templates/js/translated/table_filters.js:382 +#: stock/status_codes.py:94 templates/js/translated/table_filters.js:382 msgid "Sent to customer" msgstr "" -#: stock/status_codes.py:91 +#: stock/status_codes.py:95 msgid "Returned from customer" msgstr "" @@ -10296,7 +10660,7 @@ msgstr "" msgid "Test Data" msgstr "" -#: stock/templates/stock/item.html:85 stock/templates/stock/item_base.html:65 +#: stock/templates/stock/item.html:85 msgid "Test Report" msgstr "" @@ -10316,7 +10680,7 @@ msgstr "" msgid "Installed Stock Items" msgstr "" -#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3354 +#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3355 msgid "Install Stock Item" msgstr "" @@ -10328,208 +10692,212 @@ msgstr "" msgid "Add Test Result" msgstr "" -#: stock/templates/stock/item_base.html:33 +#: stock/templates/stock/item_base.html:34 msgid "Locate stock item" msgstr "" -#: stock/templates/stock/item_base.html:51 +#: stock/templates/stock/item_base.html:52 msgid "Scan to Location" msgstr "" #: stock/templates/stock/item_base.html:59 -#: stock/templates/stock/location.html:67 +#: stock/templates/stock/location.html:68 #: templates/js/translated/filters.js:434 msgid "Printing actions" msgstr "" -#: stock/templates/stock/item_base.html:75 +#: stock/templates/stock/item_base.html:64 templates/js/translated/report.js:49 +msgid "Print Report" +msgstr "" + +#: stock/templates/stock/item_base.html:72 msgid "Stock adjustment actions" msgstr "" -#: stock/templates/stock/item_base.html:79 -#: stock/templates/stock/location.html:87 templates/js/translated/stock.js:1909 +#: stock/templates/stock/item_base.html:76 +#: stock/templates/stock/location.html:88 templates/js/translated/stock.js:1909 msgid "Count stock" msgstr "" -#: stock/templates/stock/item_base.html:81 +#: stock/templates/stock/item_base.html:78 #: templates/js/translated/stock.js:1891 msgid "Add stock" msgstr "" -#: stock/templates/stock/item_base.html:82 +#: stock/templates/stock/item_base.html:79 #: templates/js/translated/stock.js:1900 msgid "Remove stock" msgstr "" -#: stock/templates/stock/item_base.html:85 +#: stock/templates/stock/item_base.html:82 msgid "Serialize stock" msgstr "" -#: stock/templates/stock/item_base.html:88 -#: stock/templates/stock/location.html:93 templates/js/translated/stock.js:1918 +#: stock/templates/stock/item_base.html:85 +#: stock/templates/stock/location.html:94 templates/js/translated/stock.js:1918 msgid "Transfer stock" msgstr "" -#: stock/templates/stock/item_base.html:91 -#: templates/js/translated/stock.js:1972 +#: stock/templates/stock/item_base.html:88 +#: templates/js/translated/stock.js:1973 msgid "Assign to customer" msgstr "" -#: stock/templates/stock/item_base.html:94 +#: stock/templates/stock/item_base.html:91 msgid "Return to stock" msgstr "" -#: stock/templates/stock/item_base.html:97 +#: stock/templates/stock/item_base.html:94 msgid "Uninstall stock item" msgstr "" -#: stock/templates/stock/item_base.html:97 +#: stock/templates/stock/item_base.html:94 msgid "Uninstall" msgstr "" -#: stock/templates/stock/item_base.html:101 +#: stock/templates/stock/item_base.html:98 msgid "Install stock item" msgstr "" -#: stock/templates/stock/item_base.html:101 +#: stock/templates/stock/item_base.html:98 msgid "Install" msgstr "" -#: stock/templates/stock/item_base.html:115 +#: stock/templates/stock/item_base.html:112 msgid "Convert to variant" msgstr "" -#: stock/templates/stock/item_base.html:118 +#: stock/templates/stock/item_base.html:115 msgid "Duplicate stock item" msgstr "" -#: stock/templates/stock/item_base.html:120 +#: stock/templates/stock/item_base.html:117 msgid "Edit stock item" msgstr "" -#: stock/templates/stock/item_base.html:123 +#: stock/templates/stock/item_base.html:120 msgid "Delete stock item" msgstr "" -#: stock/templates/stock/item_base.html:169 templates/InvenTree/search.html:139 -#: templates/js/translated/build.js:2295 templates/navbar.html:38 +#: stock/templates/stock/item_base.html:166 templates/InvenTree/search.html:139 +#: templates/js/translated/build.js:2298 templates/navbar.html:38 msgid "Build" msgstr "" -#: stock/templates/stock/item_base.html:211 +#: stock/templates/stock/item_base.html:208 msgid "No manufacturer set" msgstr "" -#: stock/templates/stock/item_base.html:251 +#: stock/templates/stock/item_base.html:248 msgid "You are not in the list of owners of this item. This stock item cannot be edited." msgstr "" -#: stock/templates/stock/item_base.html:252 -#: stock/templates/stock/location.html:146 +#: stock/templates/stock/item_base.html:249 +#: stock/templates/stock/location.html:147 msgid "Read only" msgstr "" -#: stock/templates/stock/item_base.html:265 +#: stock/templates/stock/item_base.html:262 msgid "This stock item is unavailable" msgstr "" -#: stock/templates/stock/item_base.html:271 +#: stock/templates/stock/item_base.html:268 msgid "This stock item is in production and cannot be edited." msgstr "" -#: stock/templates/stock/item_base.html:272 +#: stock/templates/stock/item_base.html:269 msgid "Edit the stock item from the build view." msgstr "" -#: stock/templates/stock/item_base.html:287 +#: stock/templates/stock/item_base.html:284 msgid "This stock item is allocated to Sales Order" msgstr "" -#: stock/templates/stock/item_base.html:295 +#: stock/templates/stock/item_base.html:292 msgid "This stock item is allocated to Build Order" msgstr "" -#: stock/templates/stock/item_base.html:311 +#: stock/templates/stock/item_base.html:308 msgid "This stock item is serialized. It has a unique serial number and the quantity cannot be adjusted" msgstr "" -#: stock/templates/stock/item_base.html:317 +#: stock/templates/stock/item_base.html:314 msgid "previous page" msgstr "" -#: stock/templates/stock/item_base.html:317 +#: stock/templates/stock/item_base.html:314 msgid "Navigate to previous serial number" msgstr "" -#: stock/templates/stock/item_base.html:326 +#: stock/templates/stock/item_base.html:323 msgid "next page" msgstr "" -#: stock/templates/stock/item_base.html:326 +#: stock/templates/stock/item_base.html:323 msgid "Navigate to next serial number" msgstr "" -#: stock/templates/stock/item_base.html:398 -#: templates/js/translated/build.js:2552 +#: stock/templates/stock/item_base.html:395 +#: templates/js/translated/build.js:2559 msgid "No location set" msgstr "" -#: stock/templates/stock/item_base.html:413 +#: stock/templates/stock/item_base.html:410 msgid "Tests" msgstr "" -#: stock/templates/stock/item_base.html:419 +#: stock/templates/stock/item_base.html:416 msgid "This stock item has not passed all required tests" msgstr "" -#: stock/templates/stock/item_base.html:437 +#: stock/templates/stock/item_base.html:434 #, python-format msgid "This StockItem expired on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:439 +#: stock/templates/stock/item_base.html:436 #, python-format msgid "This StockItem expires on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:455 +#: stock/templates/stock/item_base.html:452 msgid "No stocktake performed" msgstr "" -#: stock/templates/stock/item_base.html:504 -#: templates/js/translated/stock.js:2037 +#: stock/templates/stock/item_base.html:501 +#: templates/js/translated/stock.js:2038 msgid "stock item" msgstr "" -#: stock/templates/stock/item_base.html:527 +#: stock/templates/stock/item_base.html:524 msgid "Edit Stock Status" msgstr "" -#: stock/templates/stock/item_base.html:536 +#: stock/templates/stock/item_base.html:533 msgid "Stock Item QR Code" msgstr "" -#: stock/templates/stock/item_base.html:547 +#: stock/templates/stock/item_base.html:544 msgid "Link Barcode to Stock Item" msgstr "" -#: stock/templates/stock/item_base.html:611 +#: stock/templates/stock/item_base.html:608 msgid "Select one of the part variants listed below." msgstr "" -#: stock/templates/stock/item_base.html:614 +#: stock/templates/stock/item_base.html:611 msgid "Warning" msgstr "" -#: stock/templates/stock/item_base.html:615 +#: stock/templates/stock/item_base.html:612 msgid "This action cannot be easily undone" msgstr "" -#: stock/templates/stock/item_base.html:623 +#: stock/templates/stock/item_base.html:620 msgid "Convert Stock Item" msgstr "" -#: stock/templates/stock/item_base.html:656 +#: stock/templates/stock/item_base.html:653 msgid "Return to Stock" msgstr "" @@ -10541,84 +10909,84 @@ msgstr "" msgid "Select quantity to serialize, and unique serial numbers." msgstr "" -#: stock/templates/stock/location.html:35 +#: stock/templates/stock/location.html:36 msgid "Perform stocktake for this stock location" msgstr "" -#: stock/templates/stock/location.html:42 +#: stock/templates/stock/location.html:43 msgid "Locate stock location" msgstr "" -#: stock/templates/stock/location.html:60 +#: stock/templates/stock/location.html:61 msgid "Scan stock items into this location" msgstr "" -#: stock/templates/stock/location.html:60 +#: stock/templates/stock/location.html:61 msgid "Scan In Stock Items" msgstr "" -#: stock/templates/stock/location.html:61 +#: stock/templates/stock/location.html:62 msgid "Scan stock container into this location" msgstr "" -#: stock/templates/stock/location.html:61 +#: stock/templates/stock/location.html:62 msgid "Scan In Container" msgstr "" -#: stock/templates/stock/location.html:72 +#: stock/templates/stock/location.html:73 msgid "Print Location Report" msgstr "" -#: stock/templates/stock/location.html:101 +#: stock/templates/stock/location.html:102 msgid "Location actions" msgstr "" -#: stock/templates/stock/location.html:103 +#: stock/templates/stock/location.html:104 msgid "Edit location" msgstr "" -#: stock/templates/stock/location.html:105 +#: stock/templates/stock/location.html:106 msgid "Delete location" msgstr "" -#: stock/templates/stock/location.html:135 +#: stock/templates/stock/location.html:136 msgid "Top level stock location" msgstr "" -#: stock/templates/stock/location.html:141 +#: stock/templates/stock/location.html:142 msgid "Location Owner" msgstr "" -#: stock/templates/stock/location.html:145 +#: stock/templates/stock/location.html:146 msgid "You are not in the list of owners of this location. This stock location cannot be edited." msgstr "" -#: stock/templates/stock/location.html:173 +#: stock/templates/stock/location.html:174 msgid "Location Type" msgstr "" -#: stock/templates/stock/location.html:223 +#: stock/templates/stock/location.html:224 msgid "Create new stock location" msgstr "" -#: stock/templates/stock/location.html:224 +#: stock/templates/stock/location.html:225 msgid "New Location" msgstr "" -#: stock/templates/stock/location.html:298 -#: templates/js/translated/stock.js:2657 +#: stock/templates/stock/location.html:299 +#: templates/js/translated/stock.js:2658 msgid "stock location" msgstr "" -#: stock/templates/stock/location.html:320 +#: stock/templates/stock/location.html:321 msgid "Scanned stock container into this location" msgstr "" -#: stock/templates/stock/location.html:393 +#: stock/templates/stock/location.html:394 msgid "Stock Location QR Code" msgstr "" -#: stock/templates/stock/location.html:404 +#: stock/templates/stock/location.html:405 msgid "Link Barcode to Stock Location" msgstr "" @@ -10630,10 +10998,6 @@ msgstr "" msgid "Stock Tracking" msgstr "" -#: stock/templates/stock/stock_sidebar.html:8 -msgid "Allocations" -msgstr "" - #: templates/403.html:6 templates/403.html:12 templates/403_csrf.html:7 msgid "Permission Denied" msgstr "" @@ -10970,7 +11334,7 @@ msgstr "" #: templates/InvenTree/settings/plugin_settings.html:70 msgid "The code information is pulled from the latest git commit for this plugin. It might not reflect official version numbers or information but the actual code running." -msgstr "" +msgstr "Інформація про код витягнута з останнього git коміту для цього плагіну. Вона може не відображати офіційні номери версій чи інформацію, а фактичний код запущений." #: templates/InvenTree/settings/plugin_settings.html:76 msgid "Package information" @@ -11107,9 +11471,9 @@ msgid "Rate" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:81 -#: templates/js/translated/forms.js:548 templates/js/translated/helpers.js:108 +#: templates/js/translated/forms.js:548 templates/js/translated/helpers.js:109 #: templates/js/translated/part.js:395 templates/js/translated/pricing.js:629 -#: templates/js/translated/stock.js:252 users/models.py:406 +#: templates/js/translated/stock.js:252 users/models.py:408 msgid "Delete" msgstr "" @@ -11130,7 +11494,7 @@ msgid "No project codes found" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:158 -#: templates/js/translated/build.js:2400 +#: templates/js/translated/build.js:2403 msgid "group" msgstr "" @@ -11196,7 +11560,7 @@ msgid "Delete Location Type" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:503 -#: templates/InvenTree/settings/stock.html:38 +#: templates/InvenTree/settings/stock.html:39 msgid "New Location Type" msgstr "" @@ -11253,7 +11617,7 @@ msgstr "" msgid "Stock Settings" msgstr "" -#: templates/InvenTree/settings/stock.html:34 +#: templates/InvenTree/settings/stock.html:35 msgid "Stock Location Types" msgstr "" @@ -11280,7 +11644,7 @@ msgid "Unverified" msgstr "" #: templates/InvenTree/settings/user.html:80 -#: templates/js/translated/company.js:957 +#: templates/js/translated/company.js:958 msgid "Primary" msgstr "" @@ -11298,7 +11662,7 @@ msgstr "" #: templates/InvenTree/settings/user.html:97 msgid "You currently do not have any email address set up. You should really add an email address so you can receive notifications, reset your password, etc." -msgstr "" +msgstr "На даний момент у вас немає налаштувань e-mail адреси. Ви дійсно повинні додати адресу електронної пошти, щоб ви могли отримувати сповіщення, скидати пароль і т. д." #: templates/InvenTree/settings/user.html:105 msgid "Add Email Address" @@ -11532,7 +11896,7 @@ msgid "Submit Bug Report" msgstr "" #: templates/about.html:91 templates/clip.html:4 -#: templates/js/translated/helpers.js:592 +#: templates/js/translated/helpers.js:598 msgid "copy to clipboard" msgstr "" @@ -11624,7 +11988,7 @@ msgstr "" #: templates/account/password_reset_from_key.html:11 #, python-format msgid "The password reset link was invalid, possibly because it has already been used. Please request a new password reset." -msgstr "" +msgstr "Посилання для скидання пароля є недійсним, можливо, тому що його вже було використано. Будь ласка, запросіть нове скидання пароля." #: templates/account/password_reset_from_key.html:18 msgid "Change password" @@ -11708,7 +12072,7 @@ msgstr "" #: templates/allauth_2fa/setup.html:14 msgid "Scan the QR code below with a token generator of your choice (for instance Google Authenticator)." -msgstr "" +msgstr "Відскануйте QR-код внизу за допомогою генератора токенів на ваш вибір (для екземпляра Google Authenticator)." #: templates/allauth_2fa/setup.html:20 msgid "Secret: " @@ -11738,23 +12102,24 @@ msgstr "" msgid "Barcode Identifier" msgstr "" -#: templates/base.html:103 +#: templates/base.html:102 msgid "Server Restart Required" msgstr "" -#: templates/base.html:106 +#: templates/base.html:105 msgid "A configuration option has been changed which requires a server restart" msgstr "" -#: templates/base.html:106 templates/base.html:116 +#: templates/base.html:105 templates/base.html:115 +#: templates/socialaccount/authentication_error.html:13 msgid "Contact your system administrator for further information" msgstr "" -#: templates/base.html:113 +#: templates/base.html:112 msgid "Pending Database Migrations" msgstr "" -#: templates/base.html:116 +#: templates/base.html:115 msgid "There are pending database migrations which require attention" msgstr "" @@ -11787,7 +12152,7 @@ msgid "The following parts are low on required stock" msgstr "" #: templates/email/build_order_required_stock.html:18 -#: templates/js/translated/bom.js:1674 templates/js/translated/build.js:2747 +#: templates/js/translated/bom.js:1674 templates/js/translated/build.js:2765 msgid "Required Quantity" msgstr "" @@ -11801,7 +12166,7 @@ msgid "Click on the following link to view this part" msgstr "" #: templates/email/low_stock_notification.html:18 -#: templates/js/translated/part.js:3237 +#: templates/js/translated/part.js:3253 msgid "Minimum Quantity" msgstr "" @@ -12039,7 +12404,7 @@ msgstr "" #: templates/js/translated/bom.js:189 templates/js/translated/bom.js:700 #: templates/js/translated/modals.js:75 templates/js/translated/modals.js:629 #: templates/js/translated/modals.js:757 templates/js/translated/modals.js:1065 -#: templates/js/translated/purchase_order.js:797 templates/modals.html:15 +#: templates/js/translated/purchase_order.js:780 templates/modals.html:15 #: templates/modals.html:27 templates/modals.html:39 templates/modals.html:50 msgid "Close" msgstr "" @@ -12156,7 +12521,7 @@ msgstr "" msgid "Substitutes Available" msgstr "" -#: templates/js/translated/bom.js:950 templates/js/translated/build.js:2673 +#: templates/js/translated/bom.js:950 templates/js/translated/build.js:2682 msgid "Variant stock allowed" msgstr "" @@ -12176,30 +12541,30 @@ msgstr "" msgid "No pricing available" msgstr "" -#: templates/js/translated/bom.js:1184 templates/js/translated/build.js:2812 +#: templates/js/translated/bom.js:1184 templates/js/translated/build.js:2830 msgid "External stock" msgstr "" -#: templates/js/translated/bom.js:1188 templates/js/translated/build.js:2786 -#: templates/js/translated/sales_order.js:1946 +#: templates/js/translated/bom.js:1188 templates/js/translated/build.js:2804 +#: templates/js/translated/sales_order.js:1927 msgid "No Stock Available" msgstr "" -#: templates/js/translated/bom.js:1193 templates/js/translated/build.js:2790 +#: templates/js/translated/bom.js:1193 templates/js/translated/build.js:2808 msgid "Includes variant and substitute stock" msgstr "" -#: templates/js/translated/bom.js:1195 templates/js/translated/build.js:2792 +#: templates/js/translated/bom.js:1195 templates/js/translated/build.js:2810 #: templates/js/translated/part.js:1263 -#: templates/js/translated/sales_order.js:1943 +#: templates/js/translated/sales_order.js:1924 msgid "Includes variant stock" msgstr "" -#: templates/js/translated/bom.js:1197 templates/js/translated/build.js:2794 +#: templates/js/translated/bom.js:1197 templates/js/translated/build.js:2812 msgid "Includes substitute stock" msgstr "" -#: templates/js/translated/bom.js:1225 templates/js/translated/build.js:2777 +#: templates/js/translated/bom.js:1225 templates/js/translated/build.js:2795 msgid "Consumable item" msgstr "" @@ -12231,7 +12596,7 @@ msgstr "" msgid "No BOM items found" msgstr "" -#: templates/js/translated/bom.js:1657 templates/js/translated/build.js:2658 +#: templates/js/translated/bom.js:1657 templates/js/translated/build.js:2667 msgid "Required Part" msgstr "" @@ -12243,396 +12608,396 @@ msgstr "" msgid "Edit Build Order" msgstr "" -#: templates/js/translated/build.js:191 +#: templates/js/translated/build.js:194 msgid "Create Build Order" msgstr "" -#: templates/js/translated/build.js:223 +#: templates/js/translated/build.js:226 msgid "Cancel Build Order" msgstr "" -#: templates/js/translated/build.js:232 +#: templates/js/translated/build.js:235 msgid "Are you sure you wish to cancel this build?" msgstr "" -#: templates/js/translated/build.js:238 +#: templates/js/translated/build.js:241 msgid "Stock items have been allocated to this build order" msgstr "" -#: templates/js/translated/build.js:245 +#: templates/js/translated/build.js:248 msgid "There are incomplete outputs remaining for this build order" msgstr "" -#: templates/js/translated/build.js:297 +#: templates/js/translated/build.js:300 msgid "Build order is ready to be completed" msgstr "" -#: templates/js/translated/build.js:305 +#: templates/js/translated/build.js:308 msgid "This build order cannot be completed as there are incomplete outputs" msgstr "" -#: templates/js/translated/build.js:310 +#: templates/js/translated/build.js:313 msgid "Build Order is incomplete" msgstr "" -#: templates/js/translated/build.js:328 +#: templates/js/translated/build.js:331 msgid "Complete Build Order" msgstr "" -#: templates/js/translated/build.js:369 templates/js/translated/stock.js:127 +#: templates/js/translated/build.js:372 templates/js/translated/stock.js:127 #: templates/js/translated/stock.js:301 msgid "Next available serial number" msgstr "" -#: templates/js/translated/build.js:371 templates/js/translated/stock.js:129 +#: templates/js/translated/build.js:374 templates/js/translated/stock.js:129 #: templates/js/translated/stock.js:303 msgid "Latest serial number" msgstr "" -#: templates/js/translated/build.js:380 +#: templates/js/translated/build.js:383 msgid "The Bill of Materials contains trackable parts" msgstr "" -#: templates/js/translated/build.js:381 +#: templates/js/translated/build.js:384 msgid "Build outputs must be generated individually" msgstr "" -#: templates/js/translated/build.js:389 +#: templates/js/translated/build.js:392 msgid "Trackable parts can have serial numbers specified" msgstr "" -#: templates/js/translated/build.js:390 +#: templates/js/translated/build.js:393 msgid "Enter serial numbers to generate multiple single build outputs" msgstr "" -#: templates/js/translated/build.js:397 +#: templates/js/translated/build.js:400 msgid "Create Build Output" msgstr "" -#: templates/js/translated/build.js:428 +#: templates/js/translated/build.js:431 msgid "Allocate stock items to this build output" msgstr "" -#: templates/js/translated/build.js:436 +#: templates/js/translated/build.js:439 msgid "Deallocate stock from build output" msgstr "" -#: templates/js/translated/build.js:445 +#: templates/js/translated/build.js:448 msgid "Complete build output" msgstr "" -#: templates/js/translated/build.js:453 +#: templates/js/translated/build.js:456 msgid "Scrap build output" msgstr "" -#: templates/js/translated/build.js:460 +#: templates/js/translated/build.js:463 msgid "Delete build output" msgstr "" -#: templates/js/translated/build.js:480 +#: templates/js/translated/build.js:483 msgid "Are you sure you wish to deallocate the selected stock items from this build?" msgstr "" -#: templates/js/translated/build.js:498 +#: templates/js/translated/build.js:501 msgid "Deallocate Stock Items" msgstr "" -#: templates/js/translated/build.js:584 templates/js/translated/build.js:711 -#: templates/js/translated/build.js:836 +#: templates/js/translated/build.js:587 templates/js/translated/build.js:714 +#: templates/js/translated/build.js:839 msgid "Select Build Outputs" msgstr "" -#: templates/js/translated/build.js:585 templates/js/translated/build.js:712 -#: templates/js/translated/build.js:837 +#: templates/js/translated/build.js:588 templates/js/translated/build.js:715 +#: templates/js/translated/build.js:840 msgid "At least one build output must be selected" msgstr "" -#: templates/js/translated/build.js:599 +#: templates/js/translated/build.js:602 msgid "Selected build outputs will be marked as complete" msgstr "" -#: templates/js/translated/build.js:603 templates/js/translated/build.js:736 -#: templates/js/translated/build.js:859 +#: templates/js/translated/build.js:606 templates/js/translated/build.js:739 +#: templates/js/translated/build.js:862 msgid "Output" msgstr "" -#: templates/js/translated/build.js:630 +#: templates/js/translated/build.js:633 msgid "Complete Build Outputs" msgstr "" -#: templates/js/translated/build.js:727 +#: templates/js/translated/build.js:730 msgid "Selected build outputs will be marked as scrapped" msgstr "" -#: templates/js/translated/build.js:729 +#: templates/js/translated/build.js:732 msgid "Scrapped output are marked as rejected" msgstr "" -#: templates/js/translated/build.js:730 +#: templates/js/translated/build.js:733 msgid "Allocated stock items will no longer be available" msgstr "" -#: templates/js/translated/build.js:731 +#: templates/js/translated/build.js:734 msgid "The completion status of the build order will not be adjusted" msgstr "" -#: templates/js/translated/build.js:761 +#: templates/js/translated/build.js:764 msgid "Scrap Build Outputs" msgstr "" -#: templates/js/translated/build.js:851 +#: templates/js/translated/build.js:854 msgid "Selected build outputs will be deleted" msgstr "" -#: templates/js/translated/build.js:853 +#: templates/js/translated/build.js:856 msgid "Build output data will be permanently deleted" msgstr "" -#: templates/js/translated/build.js:854 +#: templates/js/translated/build.js:857 msgid "Allocated stock items will be returned to stock" msgstr "" -#: templates/js/translated/build.js:872 +#: templates/js/translated/build.js:875 msgid "Delete Build Outputs" msgstr "" -#: templates/js/translated/build.js:959 +#: templates/js/translated/build.js:962 msgid "Delete allocations" msgstr "" -#: templates/js/translated/build.js:966 +#: templates/js/translated/build.js:969 msgid "Delete Stock Allocations" msgstr "" -#: templates/js/translated/build.js:989 +#: templates/js/translated/build.js:992 msgid "No allocated stock" msgstr "" -#: templates/js/translated/build.js:1045 +#: templates/js/translated/build.js:1048 msgid "Stock item" msgstr "" -#: templates/js/translated/build.js:1070 +#: templates/js/translated/build.js:1073 msgid "Edit build allocation" msgstr "" -#: templates/js/translated/build.js:1071 +#: templates/js/translated/build.js:1074 msgid "Delete build allocation" msgstr "" -#: templates/js/translated/build.js:1089 +#: templates/js/translated/build.js:1092 msgid "Edit Build Allocation" msgstr "" -#: templates/js/translated/build.js:1102 +#: templates/js/translated/build.js:1105 msgid "Delete Build Allocation" msgstr "" -#: templates/js/translated/build.js:1133 +#: templates/js/translated/build.js:1136 msgid "No build order allocations found" msgstr "" -#: templates/js/translated/build.js:1178 +#: templates/js/translated/build.js:1181 msgid "Location not specified" msgstr "" -#: templates/js/translated/build.js:1200 +#: templates/js/translated/build.js:1203 msgid "Complete outputs" msgstr "" -#: templates/js/translated/build.js:1218 +#: templates/js/translated/build.js:1221 msgid "Scrap outputs" msgstr "" -#: templates/js/translated/build.js:1236 +#: templates/js/translated/build.js:1239 msgid "Delete outputs" msgstr "" -#: templates/js/translated/build.js:1289 +#: templates/js/translated/build.js:1292 msgid "build output" msgstr "" -#: templates/js/translated/build.js:1290 +#: templates/js/translated/build.js:1293 msgid "build outputs" msgstr "" -#: templates/js/translated/build.js:1294 +#: templates/js/translated/build.js:1297 msgid "Build output actions" msgstr "" -#: templates/js/translated/build.js:1470 +#: templates/js/translated/build.js:1473 msgid "No active build outputs found" msgstr "" -#: templates/js/translated/build.js:1563 +#: templates/js/translated/build.js:1566 msgid "Allocated Lines" msgstr "" -#: templates/js/translated/build.js:1577 +#: templates/js/translated/build.js:1580 msgid "Required Tests" msgstr "" -#: templates/js/translated/build.js:1749 -#: templates/js/translated/purchase_order.js:611 -#: templates/js/translated/sales_order.js:1207 +#: templates/js/translated/build.js:1752 +#: templates/js/translated/purchase_order.js:594 +#: templates/js/translated/sales_order.js:1173 msgid "Select Parts" msgstr "" -#: templates/js/translated/build.js:1750 -#: templates/js/translated/sales_order.js:1208 +#: templates/js/translated/build.js:1753 +#: templates/js/translated/sales_order.js:1174 msgid "You must select at least one part to allocate" msgstr "" -#: templates/js/translated/build.js:1813 -#: templates/js/translated/sales_order.js:1157 +#: templates/js/translated/build.js:1816 +#: templates/js/translated/sales_order.js:1123 msgid "Specify stock allocation quantity" msgstr "" -#: templates/js/translated/build.js:1890 +#: templates/js/translated/build.js:1893 msgid "All Parts Allocated" msgstr "" -#: templates/js/translated/build.js:1891 +#: templates/js/translated/build.js:1894 msgid "All selected parts have been fully allocated" msgstr "" -#: templates/js/translated/build.js:1905 -#: templates/js/translated/sales_order.js:1222 +#: templates/js/translated/build.js:1908 +#: templates/js/translated/sales_order.js:1188 msgid "Select source location (leave blank to take from all locations)" msgstr "" -#: templates/js/translated/build.js:1933 +#: templates/js/translated/build.js:1936 msgid "Allocate Stock Items to Build Order" msgstr "" -#: templates/js/translated/build.js:1944 -#: templates/js/translated/sales_order.js:1319 +#: templates/js/translated/build.js:1947 +#: templates/js/translated/sales_order.js:1285 msgid "No matching stock locations" msgstr "" -#: templates/js/translated/build.js:2017 -#: templates/js/translated/sales_order.js:1398 +#: templates/js/translated/build.js:2020 +#: templates/js/translated/sales_order.js:1364 msgid "No matching stock items" msgstr "" -#: templates/js/translated/build.js:2114 +#: templates/js/translated/build.js:2117 msgid "Automatic Stock Allocation" msgstr "" -#: templates/js/translated/build.js:2115 +#: templates/js/translated/build.js:2118 msgid "Stock items will be automatically allocated to this build order, according to the provided guidelines" msgstr "" -#: templates/js/translated/build.js:2117 +#: templates/js/translated/build.js:2120 msgid "If a location is specified, stock will only be allocated from that location" msgstr "" -#: templates/js/translated/build.js:2118 +#: templates/js/translated/build.js:2121 msgid "If stock is considered interchangeable, it will be allocated from the first location it is found" msgstr "" -#: templates/js/translated/build.js:2119 +#: templates/js/translated/build.js:2122 msgid "If substitute stock is allowed, it will be used where stock of the primary part cannot be found" msgstr "" -#: templates/js/translated/build.js:2149 +#: templates/js/translated/build.js:2152 msgid "Allocate Stock Items" msgstr "" -#: templates/js/translated/build.js:2254 +#: templates/js/translated/build.js:2257 msgid "No builds matching query" msgstr "" -#: templates/js/translated/build.js:2289 templates/js/translated/build.js:2652 +#: templates/js/translated/build.js:2292 templates/js/translated/build.js:2661 #: templates/js/translated/forms.js:2196 templates/js/translated/forms.js:2212 #: templates/js/translated/part.js:2322 templates/js/translated/part.js:2761 -#: templates/js/translated/stock.js:2068 templates/js/translated/stock.js:2795 +#: templates/js/translated/stock.js:2069 templates/js/translated/stock.js:2796 msgid "Select" msgstr "" -#: templates/js/translated/build.js:2303 +#: templates/js/translated/build.js:2306 msgid "Build order is overdue" msgstr "" -#: templates/js/translated/build.js:2385 templates/js/translated/stock.js:3126 +#: templates/js/translated/build.js:2388 templates/js/translated/stock.js:3127 msgid "No user information" msgstr "" -#: templates/js/translated/build.js:2561 -#: templates/js/translated/sales_order.js:1682 +#: templates/js/translated/build.js:2568 +#: templates/js/translated/sales_order.js:1663 msgid "Edit stock allocation" msgstr "" -#: templates/js/translated/build.js:2562 -#: templates/js/translated/sales_order.js:1683 +#: templates/js/translated/build.js:2569 +#: templates/js/translated/sales_order.js:1664 msgid "Delete stock allocation" msgstr "" -#: templates/js/translated/build.js:2577 +#: templates/js/translated/build.js:2584 msgid "Edit Allocation" msgstr "" -#: templates/js/translated/build.js:2589 +#: templates/js/translated/build.js:2596 msgid "Remove Allocation" msgstr "" -#: templates/js/translated/build.js:2628 +#: templates/js/translated/build.js:2636 msgid "build line" msgstr "" -#: templates/js/translated/build.js:2629 +#: templates/js/translated/build.js:2637 msgid "build lines" msgstr "" -#: templates/js/translated/build.js:2647 +#: templates/js/translated/build.js:2656 msgid "No build lines found" msgstr "" -#: templates/js/translated/build.js:2677 templates/js/translated/part.js:793 +#: templates/js/translated/build.js:2686 templates/js/translated/part.js:793 #: templates/js/translated/part.js:1209 msgid "Trackable part" msgstr "" -#: templates/js/translated/build.js:2720 +#: templates/js/translated/build.js:2729 msgid "Gets Inherited" msgstr "" -#: templates/js/translated/build.js:2730 +#: templates/js/translated/build.js:2748 msgid "Unit Quantity" msgstr "" -#: templates/js/translated/build.js:2782 -#: templates/js/translated/sales_order.js:1951 +#: templates/js/translated/build.js:2800 +#: templates/js/translated/sales_order.js:1932 msgid "Sufficient stock available" msgstr "" -#: templates/js/translated/build.js:2837 +#: templates/js/translated/build.js:2855 msgid "Consumable Item" msgstr "" -#: templates/js/translated/build.js:2844 +#: templates/js/translated/build.js:2862 msgid "Tracked item" msgstr "" -#: templates/js/translated/build.js:2845 +#: templates/js/translated/build.js:2863 msgid "Allocate tracked items against individual build outputs" msgstr "" -#: templates/js/translated/build.js:2853 -#: templates/js/translated/sales_order.js:2052 +#: templates/js/translated/build.js:2871 +#: templates/js/translated/sales_order.js:2033 msgid "Build stock" msgstr "" -#: templates/js/translated/build.js:2858 templates/js/translated/stock.js:1953 +#: templates/js/translated/build.js:2876 templates/js/translated/stock.js:1954 msgid "Order stock" msgstr "" -#: templates/js/translated/build.js:2862 -#: templates/js/translated/sales_order.js:2046 +#: templates/js/translated/build.js:2880 +#: templates/js/translated/sales_order.js:2027 msgid "Allocate stock" msgstr "" -#: templates/js/translated/build.js:2866 +#: templates/js/translated/build.js:2884 msgid "Remove stock allocation" msgstr "" @@ -12641,7 +13006,7 @@ msgid "Add Manufacturer" msgstr "" #: templates/js/translated/company.js:111 -#: templates/js/translated/company.js:213 +#: templates/js/translated/company.js:214 msgid "Add Manufacturer Part" msgstr "" @@ -12649,231 +13014,231 @@ msgstr "" msgid "Edit Manufacturer Part" msgstr "" -#: templates/js/translated/company.js:201 +#: templates/js/translated/company.js:202 #: templates/js/translated/purchase_order.js:93 msgid "Add Supplier" msgstr "" -#: templates/js/translated/company.js:243 -#: templates/js/translated/purchase_order.js:318 +#: templates/js/translated/company.js:244 +#: templates/js/translated/purchase_order.js:301 msgid "Add Supplier Part" msgstr "" -#: templates/js/translated/company.js:344 +#: templates/js/translated/company.js:345 msgid "All selected supplier parts will be deleted" msgstr "" -#: templates/js/translated/company.js:360 +#: templates/js/translated/company.js:361 msgid "Delete Supplier Parts" msgstr "" -#: templates/js/translated/company.js:466 +#: templates/js/translated/company.js:467 msgid "Add new Company" msgstr "" -#: templates/js/translated/company.js:546 +#: templates/js/translated/company.js:547 msgid "Parts Supplied" msgstr "" -#: templates/js/translated/company.js:555 +#: templates/js/translated/company.js:556 msgid "Parts Manufactured" msgstr "" -#: templates/js/translated/company.js:570 +#: templates/js/translated/company.js:571 msgid "No company information found" msgstr "" -#: templates/js/translated/company.js:619 +#: templates/js/translated/company.js:620 msgid "Create New Contact" msgstr "" -#: templates/js/translated/company.js:635 -#: templates/js/translated/company.js:758 +#: templates/js/translated/company.js:636 +#: templates/js/translated/company.js:759 msgid "Edit Contact" msgstr "" -#: templates/js/translated/company.js:672 +#: templates/js/translated/company.js:673 msgid "All selected contacts will be deleted" msgstr "" -#: templates/js/translated/company.js:678 -#: templates/js/translated/company.js:742 +#: templates/js/translated/company.js:679 +#: templates/js/translated/company.js:743 msgid "Role" msgstr "" -#: templates/js/translated/company.js:686 +#: templates/js/translated/company.js:687 msgid "Delete Contacts" msgstr "" -#: templates/js/translated/company.js:717 +#: templates/js/translated/company.js:718 msgid "No contacts found" msgstr "" -#: templates/js/translated/company.js:730 +#: templates/js/translated/company.js:731 msgid "Phone Number" msgstr "" -#: templates/js/translated/company.js:736 +#: templates/js/translated/company.js:737 msgid "Email Address" msgstr "" -#: templates/js/translated/company.js:762 +#: templates/js/translated/company.js:763 msgid "Delete Contact" msgstr "" -#: templates/js/translated/company.js:859 +#: templates/js/translated/company.js:860 msgid "Create New Address" msgstr "" -#: templates/js/translated/company.js:874 -#: templates/js/translated/company.js:1035 +#: templates/js/translated/company.js:875 +#: templates/js/translated/company.js:1036 msgid "Edit Address" msgstr "" -#: templates/js/translated/company.js:909 +#: templates/js/translated/company.js:910 msgid "All selected addresses will be deleted" msgstr "" -#: templates/js/translated/company.js:923 +#: templates/js/translated/company.js:924 msgid "Delete Addresses" msgstr "" -#: templates/js/translated/company.js:950 +#: templates/js/translated/company.js:951 msgid "No addresses found" msgstr "" -#: templates/js/translated/company.js:989 +#: templates/js/translated/company.js:990 msgid "Postal city" msgstr "" -#: templates/js/translated/company.js:995 +#: templates/js/translated/company.js:996 msgid "State/province" msgstr "" -#: templates/js/translated/company.js:1007 +#: templates/js/translated/company.js:1008 msgid "Courier notes" msgstr "" -#: templates/js/translated/company.js:1013 +#: templates/js/translated/company.js:1014 msgid "Internal notes" msgstr "" -#: templates/js/translated/company.js:1039 +#: templates/js/translated/company.js:1040 msgid "Delete Address" msgstr "" -#: templates/js/translated/company.js:1112 +#: templates/js/translated/company.js:1113 msgid "All selected manufacturer parts will be deleted" msgstr "" -#: templates/js/translated/company.js:1127 +#: templates/js/translated/company.js:1128 msgid "Delete Manufacturer Parts" msgstr "" -#: templates/js/translated/company.js:1161 +#: templates/js/translated/company.js:1162 msgid "All selected parameters will be deleted" msgstr "" -#: templates/js/translated/company.js:1175 +#: templates/js/translated/company.js:1176 msgid "Delete Parameters" msgstr "" -#: templates/js/translated/company.js:1191 -#: templates/js/translated/company.js:1479 templates/js/translated/part.js:2250 +#: templates/js/translated/company.js:1192 +#: templates/js/translated/company.js:1480 templates/js/translated/part.js:2250 msgid "Order parts" msgstr "" -#: templates/js/translated/company.js:1208 +#: templates/js/translated/company.js:1209 msgid "Delete manufacturer parts" msgstr "" -#: templates/js/translated/company.js:1240 +#: templates/js/translated/company.js:1241 msgid "Manufacturer part actions" msgstr "" -#: templates/js/translated/company.js:1259 +#: templates/js/translated/company.js:1260 msgid "No manufacturer parts found" msgstr "" -#: templates/js/translated/company.js:1279 -#: templates/js/translated/company.js:1567 templates/js/translated/part.js:801 +#: templates/js/translated/company.js:1280 +#: templates/js/translated/company.js:1568 templates/js/translated/part.js:801 #: templates/js/translated/part.js:1217 msgid "Template part" msgstr "" -#: templates/js/translated/company.js:1283 -#: templates/js/translated/company.js:1571 templates/js/translated/part.js:805 +#: templates/js/translated/company.js:1284 +#: templates/js/translated/company.js:1572 templates/js/translated/part.js:805 #: templates/js/translated/part.js:1221 msgid "Assembled part" msgstr "" -#: templates/js/translated/company.js:1403 templates/js/translated/part.js:1471 +#: templates/js/translated/company.js:1404 templates/js/translated/part.js:1471 msgid "No parameters found" msgstr "" -#: templates/js/translated/company.js:1438 templates/js/translated/part.js:1534 +#: templates/js/translated/company.js:1439 templates/js/translated/part.js:1534 msgid "Edit parameter" msgstr "" -#: templates/js/translated/company.js:1439 templates/js/translated/part.js:1535 +#: templates/js/translated/company.js:1440 templates/js/translated/part.js:1535 msgid "Delete parameter" msgstr "" -#: templates/js/translated/company.js:1456 templates/js/translated/part.js:1440 +#: templates/js/translated/company.js:1457 templates/js/translated/part.js:1440 msgid "Edit Parameter" msgstr "" -#: templates/js/translated/company.js:1465 templates/js/translated/part.js:1556 +#: templates/js/translated/company.js:1466 templates/js/translated/part.js:1556 msgid "Delete Parameter" msgstr "" -#: templates/js/translated/company.js:1496 +#: templates/js/translated/company.js:1497 msgid "Delete supplier parts" msgstr "" -#: templates/js/translated/company.js:1546 +#: templates/js/translated/company.js:1547 msgid "No supplier parts found" msgstr "" -#: templates/js/translated/company.js:1664 +#: templates/js/translated/company.js:1665 msgid "Base Units" msgstr "" -#: templates/js/translated/company.js:1694 +#: templates/js/translated/company.js:1695 msgid "Availability" msgstr "" -#: templates/js/translated/company.js:1725 +#: templates/js/translated/company.js:1726 msgid "Edit supplier part" msgstr "" -#: templates/js/translated/company.js:1726 +#: templates/js/translated/company.js:1727 msgid "Delete supplier part" msgstr "" -#: templates/js/translated/company.js:1779 +#: templates/js/translated/company.js:1780 #: templates/js/translated/pricing.js:694 msgid "Delete Price Break" msgstr "" -#: templates/js/translated/company.js:1789 +#: templates/js/translated/company.js:1790 #: templates/js/translated/pricing.js:712 msgid "Edit Price Break" msgstr "" -#: templates/js/translated/company.js:1804 +#: templates/js/translated/company.js:1805 msgid "No price break information found" msgstr "" -#: templates/js/translated/company.js:1833 +#: templates/js/translated/company.js:1834 msgid "Last updated" msgstr "" -#: templates/js/translated/company.js:1840 +#: templates/js/translated/company.js:1841 msgid "Edit price break" msgstr "" -#: templates/js/translated/company.js:1841 +#: templates/js/translated/company.js:1842 msgid "Delete price break" msgstr "" @@ -12977,19 +13342,19 @@ msgstr "" msgid "Select Columns" msgstr "" -#: templates/js/translated/helpers.js:80 +#: templates/js/translated/helpers.js:81 msgid "YES" msgstr "" -#: templates/js/translated/helpers.js:83 +#: templates/js/translated/helpers.js:84 msgid "NO" msgstr "" -#: templates/js/translated/helpers.js:96 +#: templates/js/translated/helpers.js:97 msgid "True" msgstr "" -#: templates/js/translated/helpers.js:97 +#: templates/js/translated/helpers.js:98 msgid "False" msgstr "" @@ -13131,7 +13496,7 @@ msgid "Delete Line" msgstr "" #: templates/js/translated/order.js:306 -#: templates/js/translated/purchase_order.js:2060 +#: templates/js/translated/purchase_order.js:2044 msgid "No line items found" msgstr "" @@ -13366,19 +13731,19 @@ msgid "Delete Part Parameter Template" msgstr "" #: templates/js/translated/part.js:1723 -#: templates/js/translated/purchase_order.js:1724 +#: templates/js/translated/purchase_order.js:1708 msgid "No purchase orders found" msgstr "" #: templates/js/translated/part.js:1867 -#: templates/js/translated/purchase_order.js:2223 +#: templates/js/translated/purchase_order.js:2207 #: templates/js/translated/return_order.js:754 -#: templates/js/translated/sales_order.js:1911 +#: templates/js/translated/sales_order.js:1892 msgid "This line item is overdue" msgstr "" #: templates/js/translated/part.js:1913 -#: templates/js/translated/purchase_order.js:2290 +#: templates/js/translated/purchase_order.js:2274 msgid "Receive line item" msgstr "" @@ -13419,7 +13784,7 @@ msgid "No category" msgstr "" #: templates/js/translated/part.js:2550 templates/js/translated/part.js:2680 -#: templates/js/translated/stock.js:2754 +#: templates/js/translated/stock.js:2755 msgid "Display as list" msgstr "" @@ -13431,7 +13796,7 @@ msgstr "" msgid "No subcategories found" msgstr "" -#: templates/js/translated/part.js:2700 templates/js/translated/stock.js:2774 +#: templates/js/translated/part.js:2700 templates/js/translated/stock.js:2775 msgid "Display as tree" msgstr "" @@ -13483,23 +13848,23 @@ msgstr "" msgid "Speculative" msgstr "" -#: templates/js/translated/part.js:3128 +#: templates/js/translated/part.js:3144 msgid "No scheduling information available for this part" msgstr "" -#: templates/js/translated/part.js:3134 +#: templates/js/translated/part.js:3150 msgid "Error fetching scheduling information for this part" msgstr "" -#: templates/js/translated/part.js:3230 +#: templates/js/translated/part.js:3246 msgid "Scheduled Stock Quantities" msgstr "" -#: templates/js/translated/part.js:3246 +#: templates/js/translated/part.js:3262 msgid "Maximum Quantity" msgstr "" -#: templates/js/translated/part.js:3291 +#: templates/js/translated/part.js:3307 msgid "Minimum Stock Level" msgstr "" @@ -13575,267 +13940,243 @@ msgstr "" msgid "Purchase Price History" msgstr "" -#: templates/js/translated/pricing.js:894 +#: templates/js/translated/pricing.js:892 msgid "No sales history data available" msgstr "" -#: templates/js/translated/pricing.js:916 +#: templates/js/translated/pricing.js:914 msgid "Sale Price History" msgstr "" -#: templates/js/translated/pricing.js:1005 +#: templates/js/translated/pricing.js:1003 msgid "No variant data available" msgstr "" -#: templates/js/translated/pricing.js:1045 +#: templates/js/translated/pricing.js:1043 msgid "Variant Part" msgstr "" -#: templates/js/translated/purchase_order.js:169 -msgid "Select purchase order to duplicate" -msgstr "" - -#: templates/js/translated/purchase_order.js:176 -msgid "Duplicate Line Items" -msgstr "" - -#: templates/js/translated/purchase_order.js:177 -msgid "Duplicate all line items from the selected order" -msgstr "" - -#: templates/js/translated/purchase_order.js:184 -msgid "Duplicate Extra Lines" -msgstr "" - -#: templates/js/translated/purchase_order.js:185 -msgid "Duplicate extra line items from the selected order" -msgstr "" - -#: templates/js/translated/purchase_order.js:206 +#: templates/js/translated/purchase_order.js:188 msgid "Edit Purchase Order" msgstr "" -#: templates/js/translated/purchase_order.js:223 +#: templates/js/translated/purchase_order.js:205 msgid "Duplication Options" msgstr "" -#: templates/js/translated/purchase_order.js:431 +#: templates/js/translated/purchase_order.js:414 msgid "Complete Purchase Order" msgstr "" -#: templates/js/translated/purchase_order.js:448 +#: templates/js/translated/purchase_order.js:431 #: templates/js/translated/return_order.js:210 -#: templates/js/translated/sales_order.js:552 +#: templates/js/translated/sales_order.js:511 msgid "Mark this order as complete?" msgstr "" -#: templates/js/translated/purchase_order.js:454 +#: templates/js/translated/purchase_order.js:437 msgid "All line items have been received" msgstr "" -#: templates/js/translated/purchase_order.js:459 +#: templates/js/translated/purchase_order.js:442 msgid "This order has line items which have not been marked as received." msgstr "" -#: templates/js/translated/purchase_order.js:460 +#: templates/js/translated/purchase_order.js:443 msgid "Completing this order means that the order and line items will no longer be editable." msgstr "" -#: templates/js/translated/purchase_order.js:483 +#: templates/js/translated/purchase_order.js:466 msgid "Cancel Purchase Order" msgstr "" -#: templates/js/translated/purchase_order.js:488 +#: templates/js/translated/purchase_order.js:471 msgid "Are you sure you wish to cancel this purchase order?" msgstr "" -#: templates/js/translated/purchase_order.js:494 +#: templates/js/translated/purchase_order.js:477 msgid "This purchase order can not be cancelled" msgstr "" -#: templates/js/translated/purchase_order.js:515 +#: templates/js/translated/purchase_order.js:498 #: templates/js/translated/return_order.js:164 msgid "After placing this order, line items will no longer be editable." msgstr "" -#: templates/js/translated/purchase_order.js:520 +#: templates/js/translated/purchase_order.js:503 msgid "Issue Purchase Order" msgstr "" -#: templates/js/translated/purchase_order.js:612 +#: templates/js/translated/purchase_order.js:595 msgid "At least one purchaseable part must be selected" msgstr "" -#: templates/js/translated/purchase_order.js:637 +#: templates/js/translated/purchase_order.js:620 msgid "Quantity to order" msgstr "" -#: templates/js/translated/purchase_order.js:646 +#: templates/js/translated/purchase_order.js:629 msgid "New supplier part" msgstr "" -#: templates/js/translated/purchase_order.js:664 +#: templates/js/translated/purchase_order.js:647 msgid "New purchase order" msgstr "" -#: templates/js/translated/purchase_order.js:705 +#: templates/js/translated/purchase_order.js:688 msgid "Add to purchase order" msgstr "" -#: templates/js/translated/purchase_order.js:755 +#: templates/js/translated/purchase_order.js:738 msgid "Merge" msgstr "" -#: templates/js/translated/purchase_order.js:859 +#: templates/js/translated/purchase_order.js:842 msgid "No matching supplier parts" msgstr "" -#: templates/js/translated/purchase_order.js:878 +#: templates/js/translated/purchase_order.js:861 msgid "No matching purchase orders" msgstr "" -#: templates/js/translated/purchase_order.js:1073 +#: templates/js/translated/purchase_order.js:1056 #: templates/js/translated/return_order.js:490 msgid "Select Line Items" msgstr "" -#: templates/js/translated/purchase_order.js:1074 +#: templates/js/translated/purchase_order.js:1057 #: templates/js/translated/return_order.js:491 msgid "At least one line item must be selected" msgstr "" -#: templates/js/translated/purchase_order.js:1104 +#: templates/js/translated/purchase_order.js:1087 msgid "Received Quantity" msgstr "" -#: templates/js/translated/purchase_order.js:1115 +#: templates/js/translated/purchase_order.js:1098 msgid "Quantity to receive" msgstr "" -#: templates/js/translated/purchase_order.js:1170 +#: templates/js/translated/purchase_order.js:1153 #: templates/js/translated/stock.js:1215 msgid "Specify packaging for incoming stock items" msgstr "" -#: templates/js/translated/purchase_order.js:1223 +#: templates/js/translated/purchase_order.js:1206 msgid "Stock Status" msgstr "" -#: templates/js/translated/purchase_order.js:1237 +#: templates/js/translated/purchase_order.js:1220 msgid "Add barcode" msgstr "" -#: templates/js/translated/purchase_order.js:1238 +#: templates/js/translated/purchase_order.js:1221 msgid "Remove barcode" msgstr "" -#: templates/js/translated/purchase_order.js:1241 +#: templates/js/translated/purchase_order.js:1224 msgid "Specify location" msgstr "" -#: templates/js/translated/purchase_order.js:1249 +#: templates/js/translated/purchase_order.js:1232 msgid "Add batch code" msgstr "" -#: templates/js/translated/purchase_order.js:1259 +#: templates/js/translated/purchase_order.js:1242 msgid "Specify packaging" msgstr "" -#: templates/js/translated/purchase_order.js:1270 +#: templates/js/translated/purchase_order.js:1253 msgid "Add serial numbers" msgstr "" -#: templates/js/translated/purchase_order.js:1281 +#: templates/js/translated/purchase_order.js:1264 msgid "Add note" msgstr "" -#: templates/js/translated/purchase_order.js:1338 +#: templates/js/translated/purchase_order.js:1321 msgid "Serials" msgstr "" -#: templates/js/translated/purchase_order.js:1368 +#: templates/js/translated/purchase_order.js:1351 msgid "Order Code" msgstr "" -#: templates/js/translated/purchase_order.js:1370 +#: templates/js/translated/purchase_order.js:1353 msgid "Quantity to Receive" msgstr "" -#: templates/js/translated/purchase_order.js:1395 +#: templates/js/translated/purchase_order.js:1379 #: templates/js/translated/return_order.js:559 msgid "Confirm receipt of items" msgstr "" -#: templates/js/translated/purchase_order.js:1396 +#: templates/js/translated/purchase_order.js:1380 msgid "Receive Purchase Order Items" msgstr "" -#: templates/js/translated/purchase_order.js:1464 +#: templates/js/translated/purchase_order.js:1448 msgid "Scan Item Barcode" msgstr "" -#: templates/js/translated/purchase_order.js:1465 +#: templates/js/translated/purchase_order.js:1449 msgid "Scan barcode on incoming item (must not match any existing stock items)" msgstr "" -#: templates/js/translated/purchase_order.js:1479 +#: templates/js/translated/purchase_order.js:1463 msgid "Invalid barcode data" msgstr "" -#: templates/js/translated/purchase_order.js:1751 +#: templates/js/translated/purchase_order.js:1735 #: templates/js/translated/return_order.js:285 -#: templates/js/translated/sales_order.js:810 -#: templates/js/translated/sales_order.js:1034 +#: templates/js/translated/sales_order.js:769 +#: templates/js/translated/sales_order.js:1007 msgid "Order is overdue" msgstr "" -#: templates/js/translated/purchase_order.js:1913 +#: templates/js/translated/purchase_order.js:1897 msgid "All selected Line items will be deleted" msgstr "" -#: templates/js/translated/purchase_order.js:1931 +#: templates/js/translated/purchase_order.js:1915 msgid "Delete selected Line items?" msgstr "" -#: templates/js/translated/purchase_order.js:1986 -#: templates/js/translated/sales_order.js:2106 +#: templates/js/translated/purchase_order.js:1970 +#: templates/js/translated/sales_order.js:2087 msgid "Duplicate Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2001 +#: templates/js/translated/purchase_order.js:1985 #: templates/js/translated/return_order.js:475 #: templates/js/translated/return_order.js:667 -#: templates/js/translated/sales_order.js:2119 +#: templates/js/translated/sales_order.js:2100 msgid "Edit Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2012 +#: templates/js/translated/purchase_order.js:1996 #: templates/js/translated/return_order.js:680 -#: templates/js/translated/sales_order.js:2130 +#: templates/js/translated/sales_order.js:2111 msgid "Delete Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2294 -#: templates/js/translated/sales_order.js:2060 +#: templates/js/translated/purchase_order.js:2278 +#: templates/js/translated/sales_order.js:2041 msgid "Duplicate line item" msgstr "" -#: templates/js/translated/purchase_order.js:2295 +#: templates/js/translated/purchase_order.js:2279 #: templates/js/translated/return_order.js:799 -#: templates/js/translated/sales_order.js:2061 +#: templates/js/translated/sales_order.js:2042 msgid "Edit line item" msgstr "" -#: templates/js/translated/purchase_order.js:2296 +#: templates/js/translated/purchase_order.js:2280 #: templates/js/translated/return_order.js:803 -#: templates/js/translated/sales_order.js:2067 +#: templates/js/translated/sales_order.js:2048 msgid "Delete line item" msgstr "" -#: templates/js/translated/report.js:49 -msgid "Print Report" -msgstr "" - #: templates/js/translated/report.js:68 msgid "Report print successful" msgstr "" @@ -13878,7 +14219,7 @@ msgid "No return orders found" msgstr "" #: templates/js/translated/return_order.js:299 -#: templates/js/translated/sales_order.js:824 +#: templates/js/translated/sales_order.js:783 msgid "Invalid Customer" msgstr "" @@ -13887,7 +14228,7 @@ msgid "Receive Return Order Items" msgstr "" #: templates/js/translated/return_order.js:691 -#: templates/js/translated/sales_order.js:2267 +#: templates/js/translated/sales_order.js:2248 msgid "No matching line items" msgstr "" @@ -13903,188 +14244,181 @@ msgstr "" msgid "Edit Sales Order" msgstr "" -#: templates/js/translated/sales_order.js:291 +#: templates/js/translated/sales_order.js:288 msgid "No stock items have been allocated to this shipment" msgstr "" -#: templates/js/translated/sales_order.js:296 -msgid "The following stock items will be shipped" -msgstr "" - -#: templates/js/translated/sales_order.js:336 +#: templates/js/translated/sales_order.js:294 msgid "Complete Shipment" msgstr "" -#: templates/js/translated/sales_order.js:360 +#: templates/js/translated/sales_order.js:318 msgid "Confirm Shipment" msgstr "" -#: templates/js/translated/sales_order.js:416 +#: templates/js/translated/sales_order.js:375 msgid "No pending shipments found" msgstr "" -#: templates/js/translated/sales_order.js:420 +#: templates/js/translated/sales_order.js:379 msgid "No stock items have been allocated to pending shipments" msgstr "" -#: templates/js/translated/sales_order.js:430 +#: templates/js/translated/sales_order.js:389 msgid "Complete Shipments" msgstr "" -#: templates/js/translated/sales_order.js:452 +#: templates/js/translated/sales_order.js:411 msgid "Skip" msgstr "" -#: templates/js/translated/sales_order.js:484 +#: templates/js/translated/sales_order.js:443 msgid "Ship Sales Order" msgstr "" -#: templates/js/translated/sales_order.js:500 +#: templates/js/translated/sales_order.js:459 msgid "Ship this order?" msgstr "" -#: templates/js/translated/sales_order.js:506 +#: templates/js/translated/sales_order.js:465 msgid "Order cannot be shipped as there are incomplete shipments" msgstr "" -#: templates/js/translated/sales_order.js:513 +#: templates/js/translated/sales_order.js:472 msgid "This order has line items which have not been completed." msgstr "" -#: templates/js/translated/sales_order.js:514 +#: templates/js/translated/sales_order.js:473 msgid "Shipping this order means that the order and line items will no longer be editable." msgstr "" -#: templates/js/translated/sales_order.js:572 +#: templates/js/translated/sales_order.js:531 msgid "Issue this Sales Order?" msgstr "" -#: templates/js/translated/sales_order.js:577 +#: templates/js/translated/sales_order.js:536 msgid "Issue Sales Order" msgstr "" -#: templates/js/translated/sales_order.js:596 +#: templates/js/translated/sales_order.js:555 msgid "Cancel Sales Order" msgstr "" -#: templates/js/translated/sales_order.js:601 +#: templates/js/translated/sales_order.js:560 msgid "Cancelling this order means that the order will no longer be editable." msgstr "" -#: templates/js/translated/sales_order.js:655 +#: templates/js/translated/sales_order.js:614 msgid "Create New Shipment" msgstr "" -#: templates/js/translated/sales_order.js:764 +#: templates/js/translated/sales_order.js:723 msgid "No sales orders found" msgstr "" -#: templates/js/translated/sales_order.js:944 +#: templates/js/translated/sales_order.js:907 msgid "Edit shipment" msgstr "" -#: templates/js/translated/sales_order.js:947 +#: templates/js/translated/sales_order.js:910 msgid "Complete shipment" msgstr "" -#: templates/js/translated/sales_order.js:952 +#: templates/js/translated/sales_order.js:915 msgid "Delete shipment" msgstr "" -#: templates/js/translated/sales_order.js:969 +#: templates/js/translated/sales_order.js:932 msgid "Edit Shipment" msgstr "" -#: templates/js/translated/sales_order.js:984 +#: templates/js/translated/sales_order.js:947 msgid "Delete Shipment" msgstr "" -#: templates/js/translated/sales_order.js:1017 +#: templates/js/translated/sales_order.js:989 msgid "No matching shipments found" msgstr "" -#: templates/js/translated/sales_order.js:1042 +#: templates/js/translated/sales_order.js:1015 msgid "Shipment Reference" msgstr "" -#: templates/js/translated/sales_order.js:1066 -#: templates/js/translated/sales_order.js:1565 +#: templates/js/translated/sales_order.js:1032 +#: templates/js/translated/sales_order.js:1531 msgid "Not shipped" msgstr "" -#: templates/js/translated/sales_order.js:1084 +#: templates/js/translated/sales_order.js:1050 msgid "Tracking" msgstr "" -#: templates/js/translated/sales_order.js:1088 +#: templates/js/translated/sales_order.js:1054 msgid "Invoice" msgstr "" -#: templates/js/translated/sales_order.js:1255 +#: templates/js/translated/sales_order.js:1221 msgid "Add Shipment" msgstr "" -#: templates/js/translated/sales_order.js:1306 +#: templates/js/translated/sales_order.js:1272 msgid "Confirm stock allocation" msgstr "" -#: templates/js/translated/sales_order.js:1307 +#: templates/js/translated/sales_order.js:1273 msgid "Allocate Stock Items to Sales Order" msgstr "" -#: templates/js/translated/sales_order.js:1513 +#: templates/js/translated/sales_order.js:1479 msgid "No sales order allocations found" msgstr "" -#: templates/js/translated/sales_order.js:1605 +#: templates/js/translated/sales_order.js:1571 msgid "Edit Stock Allocation" msgstr "" -#: templates/js/translated/sales_order.js:1619 +#: templates/js/translated/sales_order.js:1585 msgid "Confirm Delete Operation" msgstr "" -#: templates/js/translated/sales_order.js:1620 +#: templates/js/translated/sales_order.js:1586 msgid "Delete Stock Allocation" msgstr "" -#: templates/js/translated/sales_order.js:1659 -#: templates/js/translated/sales_order.js:1746 +#: templates/js/translated/sales_order.js:1640 +#: templates/js/translated/sales_order.js:1727 #: templates/js/translated/stock.js:1861 msgid "Shipped to customer" msgstr "" -#: templates/js/translated/sales_order.js:1667 -#: templates/js/translated/sales_order.js:1755 +#: templates/js/translated/sales_order.js:1648 +#: templates/js/translated/sales_order.js:1736 msgid "Stock location not specified" msgstr "" -#: templates/js/translated/sales_order.js:2044 -msgid "Allocate serial numbers" -msgstr "" - -#: templates/js/translated/sales_order.js:2048 -msgid "Purchase stock" -msgstr "" - -#: templates/js/translated/sales_order.js:2057 -#: templates/js/translated/sales_order.js:2245 -msgid "Calculate price" -msgstr "" - -#: templates/js/translated/sales_order.js:2071 -msgid "Cannot be deleted as items have been shipped" -msgstr "" - -#: templates/js/translated/sales_order.js:2074 -msgid "Cannot be deleted as items have been allocated" -msgstr "" - -#: templates/js/translated/sales_order.js:2145 +#: templates/js/translated/sales_order.js:2025 +#: templates/js/translated/sales_order.js:2126 msgid "Allocate Serial Numbers" msgstr "" -#: templates/js/translated/sales_order.js:2253 +#: templates/js/translated/sales_order.js:2029 +msgid "Purchase stock" +msgstr "" + +#: templates/js/translated/sales_order.js:2038 +#: templates/js/translated/sales_order.js:2226 +msgid "Calculate price" +msgstr "" + +#: templates/js/translated/sales_order.js:2052 +msgid "Cannot be deleted as items have been shipped" +msgstr "" + +#: templates/js/translated/sales_order.js:2055 +msgid "Cannot be deleted as items have been allocated" +msgstr "" + +#: templates/js/translated/sales_order.js:2234 msgid "Update Unit Price" msgstr "" @@ -14209,11 +14543,8 @@ msgid "Find Serial Number" msgstr "" #: templates/js/translated/stock.js:603 templates/js/translated/stock.js:604 -msgid "Enter serial number" -msgstr "" - #: templates/js/translated/stock.js:620 -msgid "Enter a serial number" +msgid "Enter serial number" msgstr "" #: templates/js/translated/stock.js:640 @@ -14284,7 +14615,7 @@ msgstr "" msgid "Add Stock" msgstr "" -#: templates/js/translated/stock.js:1049 users/models.py:396 +#: templates/js/translated/stock.js:1049 users/models.py:398 msgid "Add" msgstr "" @@ -14308,7 +14639,7 @@ msgstr "" msgid "Adjust packaging" msgstr "" -#: templates/js/translated/stock.js:1256 templates/js/translated/stock.js:3382 +#: templates/js/translated/stock.js:1256 templates/js/translated/stock.js:3383 msgid "Select Stock Items" msgstr "" @@ -14320,18 +14651,6 @@ msgstr "" msgid "Confirm stock adjustment" msgstr "" -#: templates/js/translated/stock.js:1448 -msgid "PASS" -msgstr "" - -#: templates/js/translated/stock.js:1450 -msgid "FAIL" -msgstr "" - -#: templates/js/translated/stock.js:1455 -msgid "NO RESULT" -msgstr "" - #: templates/js/translated/stock.js:1535 msgid "Pass test" msgstr "" @@ -14388,216 +14707,216 @@ msgstr "" msgid "No stock location set" msgstr "" -#: templates/js/translated/stock.js:1927 +#: templates/js/translated/stock.js:1928 msgid "Change stock status" msgstr "" -#: templates/js/translated/stock.js:1936 +#: templates/js/translated/stock.js:1937 msgid "Merge stock" msgstr "" -#: templates/js/translated/stock.js:1985 +#: templates/js/translated/stock.js:1986 msgid "Delete stock" msgstr "" -#: templates/js/translated/stock.js:2038 +#: templates/js/translated/stock.js:2039 msgid "stock items" msgstr "" -#: templates/js/translated/stock.js:2043 +#: templates/js/translated/stock.js:2044 msgid "Scan to location" msgstr "" -#: templates/js/translated/stock.js:2054 +#: templates/js/translated/stock.js:2055 msgid "Stock Actions" msgstr "" -#: templates/js/translated/stock.js:2098 +#: templates/js/translated/stock.js:2099 msgid "Load installed items" msgstr "" -#: templates/js/translated/stock.js:2176 +#: templates/js/translated/stock.js:2177 msgid "Stock item is in production" msgstr "" -#: templates/js/translated/stock.js:2181 +#: templates/js/translated/stock.js:2182 msgid "Stock item assigned to sales order" msgstr "" -#: templates/js/translated/stock.js:2184 +#: templates/js/translated/stock.js:2185 msgid "Stock item assigned to customer" msgstr "" -#: templates/js/translated/stock.js:2187 +#: templates/js/translated/stock.js:2188 msgid "Serialized stock item has been allocated" msgstr "" -#: templates/js/translated/stock.js:2189 +#: templates/js/translated/stock.js:2190 msgid "Stock item has been fully allocated" msgstr "" -#: templates/js/translated/stock.js:2191 +#: templates/js/translated/stock.js:2192 msgid "Stock item has been partially allocated" msgstr "" -#: templates/js/translated/stock.js:2194 +#: templates/js/translated/stock.js:2195 msgid "Stock item has been installed in another item" msgstr "" -#: templates/js/translated/stock.js:2196 +#: templates/js/translated/stock.js:2197 msgid "Stock item has been consumed by a build order" msgstr "" -#: templates/js/translated/stock.js:2200 +#: templates/js/translated/stock.js:2201 msgid "Stock item has expired" msgstr "" -#: templates/js/translated/stock.js:2202 +#: templates/js/translated/stock.js:2203 msgid "Stock item will expire soon" msgstr "" -#: templates/js/translated/stock.js:2207 +#: templates/js/translated/stock.js:2208 msgid "Stock item has been rejected" msgstr "" -#: templates/js/translated/stock.js:2209 +#: templates/js/translated/stock.js:2210 msgid "Stock item is lost" msgstr "" -#: templates/js/translated/stock.js:2211 +#: templates/js/translated/stock.js:2212 msgid "Stock item is destroyed" msgstr "" -#: templates/js/translated/stock.js:2215 +#: templates/js/translated/stock.js:2216 #: templates/js/translated/table_filters.js:357 msgid "Depleted" msgstr "" -#: templates/js/translated/stock.js:2380 +#: templates/js/translated/stock.js:2381 msgid "Supplier part not specified" msgstr "" -#: templates/js/translated/stock.js:2427 +#: templates/js/translated/stock.js:2428 msgid "Stock Value" msgstr "" -#: templates/js/translated/stock.js:2555 +#: templates/js/translated/stock.js:2556 msgid "No stock items matching query" msgstr "" -#: templates/js/translated/stock.js:2658 +#: templates/js/translated/stock.js:2659 msgid "stock locations" msgstr "" -#: templates/js/translated/stock.js:2813 +#: templates/js/translated/stock.js:2814 msgid "Load Sublocations" msgstr "" -#: templates/js/translated/stock.js:2930 +#: templates/js/translated/stock.js:2931 msgid "Details" msgstr "" -#: templates/js/translated/stock.js:2934 +#: templates/js/translated/stock.js:2935 msgid "No changes" msgstr "" -#: templates/js/translated/stock.js:2946 +#: templates/js/translated/stock.js:2947 msgid "Part information unavailable" msgstr "" -#: templates/js/translated/stock.js:2968 +#: templates/js/translated/stock.js:2969 msgid "Location no longer exists" msgstr "" -#: templates/js/translated/stock.js:2985 +#: templates/js/translated/stock.js:2986 msgid "Build order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3000 +#: templates/js/translated/stock.js:3001 msgid "Purchase order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3017 +#: templates/js/translated/stock.js:3018 msgid "Sales Order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3034 +#: templates/js/translated/stock.js:3035 msgid "Return Order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3053 +#: templates/js/translated/stock.js:3054 msgid "Customer no longer exists" msgstr "" -#: templates/js/translated/stock.js:3071 +#: templates/js/translated/stock.js:3072 msgid "Stock item no longer exists" msgstr "" -#: templates/js/translated/stock.js:3089 +#: templates/js/translated/stock.js:3090 msgid "Added" msgstr "" -#: templates/js/translated/stock.js:3097 +#: templates/js/translated/stock.js:3098 msgid "Removed" msgstr "" -#: templates/js/translated/stock.js:3169 +#: templates/js/translated/stock.js:3170 msgid "No installed items" msgstr "" -#: templates/js/translated/stock.js:3223 templates/js/translated/stock.js:3259 +#: templates/js/translated/stock.js:3224 templates/js/translated/stock.js:3260 msgid "Uninstall Stock Item" msgstr "" -#: templates/js/translated/stock.js:3280 +#: templates/js/translated/stock.js:3281 msgid "Select stock item to uninstall" msgstr "" -#: templates/js/translated/stock.js:3301 +#: templates/js/translated/stock.js:3302 msgid "Install another stock item into this item" msgstr "" -#: templates/js/translated/stock.js:3302 +#: templates/js/translated/stock.js:3303 msgid "Stock items can only be installed if they meet the following criteria" msgstr "" -#: templates/js/translated/stock.js:3304 +#: templates/js/translated/stock.js:3305 msgid "The Stock Item links to a Part which is the BOM for this Stock Item" msgstr "" -#: templates/js/translated/stock.js:3305 +#: templates/js/translated/stock.js:3306 msgid "The Stock Item is currently available in stock" msgstr "" -#: templates/js/translated/stock.js:3306 +#: templates/js/translated/stock.js:3307 msgid "The Stock Item is not already installed in another item" msgstr "" -#: templates/js/translated/stock.js:3307 +#: templates/js/translated/stock.js:3308 msgid "The Stock Item is tracked by either a batch code or serial number" msgstr "" -#: templates/js/translated/stock.js:3320 +#: templates/js/translated/stock.js:3321 msgid "Select part to install" msgstr "" -#: templates/js/translated/stock.js:3383 +#: templates/js/translated/stock.js:3384 msgid "Select one or more stock items" msgstr "" -#: templates/js/translated/stock.js:3396 +#: templates/js/translated/stock.js:3397 msgid "Selected stock items" msgstr "" -#: templates/js/translated/stock.js:3400 +#: templates/js/translated/stock.js:3401 msgid "Change Stock Status" msgstr "" -#: templates/js/translated/stock.js:3477 +#: templates/js/translated/stock.js:3478 msgid "This week" msgstr "" -#: templates/js/translated/stock.js:3485 +#: templates/js/translated/stock.js:3486 msgid "This month" msgstr "" @@ -14734,10 +15053,6 @@ msgstr "" msgid "Show items which are in production" msgstr "" -#: templates/js/translated/table_filters.js:372 -msgid "Include Variants" -msgstr "" - #: templates/js/translated/table_filters.js:373 msgid "Include stock items for variant parts" msgstr "" @@ -15012,10 +15327,6 @@ msgstr "" msgid "An error occurred while attempting to login via your social network account." msgstr "" -#: templates/socialaccount/authentication_error.html:13 -msgid "Contact your system administrator for further information." -msgstr "" - #: templates/socialaccount/login.html:13 #, python-format msgid "Connect %(provider)s" @@ -15141,27 +15452,27 @@ msgstr "" msgid "No" msgstr "" -#: users/admin.py:104 +#: users/admin.py:101 msgid "Users" msgstr "" -#: users/admin.py:105 +#: users/admin.py:102 msgid "Select which users are assigned to this group" msgstr "" -#: users/admin.py:249 +#: users/admin.py:246 msgid "The following users are members of multiple groups" msgstr "" -#: users/admin.py:283 +#: users/admin.py:280 msgid "Personal info" msgstr "" -#: users/admin.py:285 +#: users/admin.py:282 msgid "Permissions" msgstr "" -#: users/admin.py:288 +#: users/admin.py:285 msgid "Important dates" msgstr "" @@ -15205,35 +15516,35 @@ msgstr "" msgid "Revoked" msgstr "" -#: users/models.py:379 +#: users/models.py:381 msgid "Permission set" msgstr "" -#: users/models.py:388 +#: users/models.py:390 msgid "Group" msgstr "" -#: users/models.py:392 +#: users/models.py:394 msgid "View" msgstr "" -#: users/models.py:392 +#: users/models.py:394 msgid "Permission to view items" msgstr "" -#: users/models.py:396 +#: users/models.py:398 msgid "Permission to add items" msgstr "" -#: users/models.py:400 +#: users/models.py:402 msgid "Change" msgstr "" -#: users/models.py:402 +#: users/models.py:404 msgid "Permissions to edit items" msgstr "" -#: users/models.py:408 +#: users/models.py:410 msgid "Permission to delete items" msgstr "" diff --git a/src/backend/InvenTree/locale/vi/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/vi/LC_MESSAGES/django.po index c1dcb07e7e..2a0937dee1 100644 --- a/src/backend/InvenTree/locale/vi/LC_MESSAGES/django.po +++ b/src/backend/InvenTree/locale/vi/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-08-20 01:22+0000\n" -"PO-Revision-Date: 2024-08-20 19:51\n" +"POT-Creation-Date: 2024-11-04 03:11+0000\n" +"PO-Revision-Date: 2024-11-04 03:14\n" "Last-Translator: \n" "Language-Team: Vietnamese\n" "Language: vi_VN\n" @@ -14,81 +14,89 @@ msgstr "" "X-Crowdin-Project: inventree\n" "X-Crowdin-Project-ID: 452300\n" "X-Crowdin-Language: vi\n" -"X-Crowdin-File: /[inventree.InvenTree] l10/src/backend/InvenTree/locale/en/LC_MESSAGES/django.po\n" -"X-Crowdin-File-ID: 216\n" +"X-Crowdin-File: /src/backend/InvenTree/locale/en/LC_MESSAGES/django.po\n" +"X-Crowdin-File-ID: 250\n" -#: InvenTree/api.py:269 +#: InvenTree/api.py:270 msgid "API endpoint not found" msgstr "API endpoint không tồn tại" -#: InvenTree/api.py:502 +#: InvenTree/api.py:387 +msgid "Invalid items list provided" +msgstr "" + +#: InvenTree/api.py:396 +msgid "Invalid filters provided" +msgstr "" + +#: InvenTree/api.py:401 +msgid "No items found to delete" +msgstr "" + +#: InvenTree/api.py:515 msgid "User does not have permission to view this model" msgstr "Người dùng không được phân quyền xem mẫu này" -#: InvenTree/conversion.py:160 +#: InvenTree/conversion.py:161 #, python-brace-format msgid "Invalid unit provided ({unit})" -msgstr "" +msgstr "Đơn vị không hợp lệ ({unit})" -#: InvenTree/conversion.py:177 +#: InvenTree/conversion.py:178 msgid "No value provided" msgstr "Chưa cung cấp giá trị" -#: InvenTree/conversion.py:204 +#: InvenTree/conversion.py:205 #, python-brace-format msgid "Could not convert {original} to {unit}" msgstr "Không thể chuyển đổi {original} sang {unit}" -#: InvenTree/conversion.py:206 -msgid "Invalid quantity supplied" +#: InvenTree/conversion.py:207 InvenTree/conversion.py:221 +#: InvenTree/helpers.py:505 order/models.py:589 order/models.py:832 +msgid "Invalid quantity provided" msgstr "Số lượng cung cấp không hợp lệ" -#: InvenTree/conversion.py:220 -#, python-brace-format -msgid "Invalid quantity supplied ({exc})" -msgstr "Số lượng cung cấp không hợp lệ ({exc})" - -#: InvenTree/exceptions.py:108 +#: InvenTree/exceptions.py:104 msgid "Error details can be found in the admin panel" msgstr "Chi tiết lỗi có thể được tìm thấy trong bảng quản trị" -#: InvenTree/fields.py:136 +#: InvenTree/fields.py:135 msgid "Enter date" msgstr "Nhập ngày" -#: InvenTree/fields.py:205 InvenTree/models.py:929 build/serializers.py:468 -#: build/serializers.py:546 build/templates/build/sidebar.html:29 -#: company/models.py:836 +#: InvenTree/fields.py:204 InvenTree/models.py:928 build/serializers.py:512 +#: build/serializers.py:590 build/templates/build/sidebar.html:29 +#: company/models.py:833 #: company/templates/company/manufacturer_part_sidebar.html:11 #: company/templates/company/sidebar.html:37 -#: company/templates/company/supplier_part_sidebar.html:11 order/models.py:1380 +#: company/templates/company/supplier_part_sidebar.html:11 order/models.py:1397 #: order/templates/order/po_sidebar.html:11 #: order/templates/order/return_order_sidebar.html:9 #: order/templates/order/so_sidebar.html:17 part/admin.py:59 -#: part/models.py:3297 part/templates/part/part_sidebar.html:65 +#: part/models.py:3348 part/templates/part/part_sidebar.html:65 #: report/templates/report/inventree_build_order_report.html:172 -#: stock/admin.py:230 stock/models.py:2375 stock/models.py:2563 -#: stock/serializers.py:698 stock/serializers.py:856 stock/serializers.py:982 -#: stock/serializers.py:1032 stock/serializers.py:1343 -#: stock/serializers.py:1432 stock/serializers.py:1597 +#: stock/admin.py:231 stock/models.py:2494 stock/models.py:2679 +#: stock/serializers.py:725 stock/serializers.py:887 stock/serializers.py:1013 +#: stock/serializers.py:1063 stock/serializers.py:1374 +#: stock/serializers.py:1463 stock/serializers.py:1628 #: stock/templates/stock/stock_sidebar.html:25 #: templates/js/translated/barcode.js:143 templates/js/translated/bom.js:1265 -#: templates/js/translated/company.js:1684 templates/js/translated/order.js:372 +#: templates/js/translated/company.js:1685 templates/js/translated/order.js:372 #: templates/js/translated/part.js:1087 -#: templates/js/translated/purchase_order.js:2270 +#: templates/js/translated/purchase_order.js:2254 #: templates/js/translated/return_order.js:774 -#: templates/js/translated/sales_order.js:1103 -#: templates/js/translated/sales_order.js:2018 -#: templates/js/translated/stock.js:1621 templates/js/translated/stock.js:2513 +#: templates/js/translated/sales_order.js:1069 +#: templates/js/translated/sales_order.js:1999 +#: templates/js/translated/stock.js:1621 templates/js/translated/stock.js:2514 msgid "Notes" msgstr "Ghi chú" -#: InvenTree/format.py:164 +#: InvenTree/format.py:162 #, python-brace-format msgid "Value '{name}' does not appear in pattern format" msgstr "Giá trị '{name}' không xuất hiện ở định dạng mẫu" -#: InvenTree/format.py:175 +#: InvenTree/format.py:173 msgid "Provided value does not match required pattern: " msgstr "Giá trị được cung cấp không khớp với mẫu bắt buộc: " @@ -126,403 +134,415 @@ msgstr "Bạn phải nhập cùng một email mỗi lần." #: InvenTree/forms.py:221 msgid "MFA Registration is disabled." -msgstr "" +msgstr "Đăng ký MFA đang tắt." #: InvenTree/forms.py:259 InvenTree/forms.py:267 msgid "The provided primary email address is not valid." msgstr "Địa chỉ email chính đã cung cấp không hợp lệ." -#: InvenTree/forms.py:274 +#: InvenTree/forms.py:273 msgid "The provided email domain is not approved." msgstr "Miền email được cung cấp không được phê duyệt." -#: InvenTree/forms.py:403 +#: InvenTree/forms.py:402 msgid "Registration is disabled." msgstr "Đăng ký bị vô hiệu hóa." -#: InvenTree/helpers.py:491 order/models.py:567 order/models.py:810 -msgid "Invalid quantity provided" -msgstr "Số lượng cung cấp không hợp lệ" +#: InvenTree/helpers.py:509 +msgid "Cannot serialize more than 1000 items at once" +msgstr "" -#: InvenTree/helpers.py:499 +#: InvenTree/helpers.py:515 msgid "Empty serial number string" msgstr "Chuỗi số sê-ri trống" -#: InvenTree/helpers.py:528 +#: InvenTree/helpers.py:544 msgid "Duplicate serial" msgstr "Trùng lặp sê-ri" -#: InvenTree/helpers.py:560 InvenTree/helpers.py:603 +#: InvenTree/helpers.py:576 InvenTree/helpers.py:619 InvenTree/helpers.py:637 +#: InvenTree/helpers.py:644 InvenTree/helpers.py:663 #, python-brace-format -msgid "Invalid group range: {group}" -msgstr "Phạm vi nhóm không hợp lệ: {group}" +msgid "Invalid group: {group}" +msgstr "" -#: InvenTree/helpers.py:591 +#: InvenTree/helpers.py:607 #, python-brace-format msgid "Group range {group} exceeds allowed quantity ({expected_quantity})" msgstr "Khoảng nhóm {group} vượt cho phép số lượng ({expected_quantity})" -#: InvenTree/helpers.py:621 InvenTree/helpers.py:628 InvenTree/helpers.py:647 -#, python-brace-format -msgid "Invalid group sequence: {group}" -msgstr "Thứ tự nhóm không hợp lệ: {group}" - -#: InvenTree/helpers.py:657 +#: InvenTree/helpers.py:673 msgid "No serial numbers found" msgstr "Không tìm thấy số sê-ri" -#: InvenTree/helpers.py:662 +#: InvenTree/helpers.py:678 msgid "Number of unique serial numbers ({len(serials)}) must match quantity ({expected_quantity})" msgstr "Số sê ri duy nhất ({len(serials)}) phải phù hợp số lượng ({expected_quantity})" -#: InvenTree/helpers.py:780 +#: InvenTree/helpers.py:796 msgid "Remove HTML tags from this value" msgstr "Xóa thẻ HTML từ giá trị này" -#: InvenTree/helpers_model.py:133 +#: InvenTree/helpers.py:881 +msgid "Data contains prohibited markdown content" +msgstr "" + +#: InvenTree/helpers_model.py:130 msgid "Connection error" msgstr "Lỗi kết nối" -#: InvenTree/helpers_model.py:138 InvenTree/helpers_model.py:145 +#: InvenTree/helpers_model.py:135 InvenTree/helpers_model.py:142 msgid "Server responded with invalid status code" msgstr "Máy chủ phản hồi với mã trạng thái không hợp lệ" -#: InvenTree/helpers_model.py:141 +#: InvenTree/helpers_model.py:138 msgid "Exception occurred" msgstr "Xảy ra Exception" -#: InvenTree/helpers_model.py:151 +#: InvenTree/helpers_model.py:148 msgid "Server responded with invalid Content-Length value" msgstr "Máy chủ đã phản hồi với giá trị Content-Length không hợp lệ" -#: InvenTree/helpers_model.py:154 +#: InvenTree/helpers_model.py:151 msgid "Image size is too large" msgstr "Hình ảnh quá lớn" -#: InvenTree/helpers_model.py:166 +#: InvenTree/helpers_model.py:163 msgid "Image download exceeded maximum size" msgstr "Tải xuống hình ảnh vượt quá kích thước tối đa" -#: InvenTree/helpers_model.py:171 +#: InvenTree/helpers_model.py:168 msgid "Remote server returned empty response" msgstr "Máy chủ trả về phản hồi trống" -#: InvenTree/helpers_model.py:179 +#: InvenTree/helpers_model.py:176 msgid "Supplied URL is not a valid image file" msgstr "URL được cung cấp không phải là tệp hình ảnh hợp lệ" -#: InvenTree/locales.py:18 +#: InvenTree/locales.py:20 msgid "Arabic" -msgstr "" +msgstr "Arabic" -#: InvenTree/locales.py:19 +#: InvenTree/locales.py:21 msgid "Bulgarian" msgstr "Tiếng Bulgaria" -#: InvenTree/locales.py:20 +#: InvenTree/locales.py:22 msgid "Czech" msgstr "Tiếng Séc" -#: InvenTree/locales.py:21 +#: InvenTree/locales.py:23 msgid "Danish" msgstr "Tiếng Đan Mạch" -#: InvenTree/locales.py:22 +#: InvenTree/locales.py:24 msgid "German" msgstr "Tiếng Đức" -#: InvenTree/locales.py:23 +#: InvenTree/locales.py:25 msgid "Greek" msgstr "Tiếng Hy Lạp" -#: InvenTree/locales.py:24 +#: InvenTree/locales.py:26 msgid "English" msgstr "Tiếng Anh" -#: InvenTree/locales.py:25 +#: InvenTree/locales.py:27 msgid "Spanish" msgstr "Tiếng Tây Ban Nha" -#: InvenTree/locales.py:26 +#: InvenTree/locales.py:28 msgid "Spanish (Mexican)" msgstr "Tiếng Tây Ban Nha (Mê-hi-cô)" -#: InvenTree/locales.py:27 +#: InvenTree/locales.py:29 msgid "Estonian" -msgstr "" +msgstr "Estonian" -#: InvenTree/locales.py:28 +#: InvenTree/locales.py:30 msgid "Farsi / Persian" msgstr "Tiếng Ba Tư" -#: InvenTree/locales.py:29 +#: InvenTree/locales.py:31 msgid "Finnish" msgstr "Tiếng Phần Lan" -#: InvenTree/locales.py:30 +#: InvenTree/locales.py:32 msgid "French" msgstr "Tiếng Pháp" -#: InvenTree/locales.py:31 +#: InvenTree/locales.py:33 msgid "Hebrew" msgstr "Tiếng Do Thái" -#: InvenTree/locales.py:32 +#: InvenTree/locales.py:34 msgid "Hindi" msgstr "Tiếng Ấn Độ" -#: InvenTree/locales.py:33 +#: InvenTree/locales.py:35 msgid "Hungarian" msgstr "Tiếng Hung-ga-ri" -#: InvenTree/locales.py:34 +#: InvenTree/locales.py:36 msgid "Italian" msgstr "Tiếng Ý" -#: InvenTree/locales.py:35 +#: InvenTree/locales.py:37 msgid "Japanese" msgstr "Tiếng Nhật" -#: InvenTree/locales.py:36 +#: InvenTree/locales.py:38 msgid "Korean" msgstr "Tiếng Hàn" -#: InvenTree/locales.py:37 -msgid "Latvian" +#: InvenTree/locales.py:39 +msgid "Lithuanian" msgstr "" -#: InvenTree/locales.py:38 +#: InvenTree/locales.py:40 +msgid "Latvian" +msgstr "Latvian" + +#: InvenTree/locales.py:41 msgid "Dutch" msgstr "Tiếng Hà Lan" -#: InvenTree/locales.py:39 +#: InvenTree/locales.py:42 msgid "Norwegian" msgstr "Tiếng Na Uy" -#: InvenTree/locales.py:40 +#: InvenTree/locales.py:43 msgid "Polish" msgstr "Tiếng Ba Lan" -#: InvenTree/locales.py:41 +#: InvenTree/locales.py:44 msgid "Portuguese" msgstr "Tiếng Bồ Đào Nha" -#: InvenTree/locales.py:42 +#: InvenTree/locales.py:45 msgid "Portuguese (Brazilian)" msgstr "Tiếng Bồ Đào Nha (Brazil)" -#: InvenTree/locales.py:43 +#: InvenTree/locales.py:46 msgid "Romanian" -msgstr "" +msgstr "Romanian" -#: InvenTree/locales.py:44 +#: InvenTree/locales.py:47 msgid "Russian" msgstr "Tiếng Nga" -#: InvenTree/locales.py:45 +#: InvenTree/locales.py:48 msgid "Slovak" msgstr "Tiếng Slo-va-ki-a" -#: InvenTree/locales.py:46 +#: InvenTree/locales.py:49 msgid "Slovenian" msgstr "Tiếng Slô-ven-ni-a" -#: InvenTree/locales.py:47 +#: InvenTree/locales.py:50 msgid "Serbian" msgstr "Tiếng Serbia" -#: InvenTree/locales.py:48 +#: InvenTree/locales.py:51 msgid "Swedish" msgstr "Tiếng Thụy Điển" -#: InvenTree/locales.py:49 +#: InvenTree/locales.py:52 msgid "Thai" msgstr "Tiếng Thái" -#: InvenTree/locales.py:50 +#: InvenTree/locales.py:53 msgid "Turkish" msgstr "Tiếng Thổ Nhĩ Kỳ" -#: InvenTree/locales.py:51 +#: InvenTree/locales.py:54 msgid "Ukrainian" -msgstr "" +msgstr "Ukrainian" -#: InvenTree/locales.py:52 +#: InvenTree/locales.py:55 msgid "Vietnamese" msgstr "Tiếng Việt" -#: InvenTree/locales.py:53 +#: InvenTree/locales.py:56 msgid "Chinese (Simplified)" msgstr "Tiếng Trung (Giản thể)" -#: InvenTree/locales.py:54 +#: InvenTree/locales.py:57 msgid "Chinese (Traditional)" msgstr "Tiếng Trung (Phồn thể)" #: InvenTree/magic_login.py:28 -#, python-brace-format -msgid "[{site_name}] Log in to the app" -msgstr "[{site_name}] Đăng nhập vào ứng dụng" +msgid "Log in to the app" +msgstr "" -#: InvenTree/magic_login.py:38 InvenTree/serializers.py:415 -#: company/models.py:136 company/templates/company/company_base.html:138 +#: InvenTree/magic_login.py:38 InvenTree/serializers.py:416 +#: company/models.py:133 company/templates/company/company_base.html:138 #: templates/InvenTree/settings/user.html:49 -#: templates/js/translated/company.js:677 +#: templates/js/translated/company.js:678 msgid "Email" -msgstr "" +msgstr "Email" -#: InvenTree/models.py:103 +#: InvenTree/models.py:105 msgid "Error running plugin validation" -msgstr "" +msgstr "Lỗi xác thực plugin" -#: InvenTree/models.py:172 +#: InvenTree/models.py:174 msgid "Metadata must be a python dict object" msgstr "Siêu dữ liệu phải là đối tượng từ điển của python" -#: InvenTree/models.py:178 +#: InvenTree/models.py:180 msgid "Plugin Metadata" msgstr "Phụ trợ siêu dữ liệu" -#: InvenTree/models.py:179 +#: InvenTree/models.py:181 msgid "JSON metadata field, for use by external plugins" msgstr "Trường siêu dữ liệu JSON, được sử dụng bởi phụ trợ bên ngoài" -#: InvenTree/models.py:409 +#: InvenTree/models.py:408 msgid "Improperly formatted pattern" msgstr "Mẫu được định dạng không thích hợp" -#: InvenTree/models.py:416 +#: InvenTree/models.py:415 msgid "Unknown format key specified" msgstr "Khóa định dạng không rõ ràng đã được chỉ định" -#: InvenTree/models.py:422 +#: InvenTree/models.py:421 msgid "Missing required format key" msgstr "Thiếu khóa định dạng cần thiết" -#: InvenTree/models.py:433 +#: InvenTree/models.py:432 msgid "Reference field cannot be empty" msgstr "Trường tham chiếu không thể rỗng" -#: InvenTree/models.py:441 +#: InvenTree/models.py:440 msgid "Reference must match required pattern" msgstr "Tham chiếu phải phù hợp với mẫu yêu cầu" -#: InvenTree/models.py:472 +#: InvenTree/models.py:471 msgid "Reference number is too large" msgstr "Số tham chiếu quá lớn" -#: InvenTree/models.py:723 +#: InvenTree/models.py:722 msgid "Duplicate names cannot exist under the same parent" msgstr "Tên trùng lặp không thể tồn tại trong cùng cấp thư mục" -#: InvenTree/models.py:740 +#: InvenTree/models.py:739 msgid "Invalid choice" msgstr "Lựa chọn sai" -#: InvenTree/models.py:770 common/models.py:2702 common/models.py:3132 -#: common/serializers.py:412 company/models.py:593 machine/models.py:24 -#: part/models.py:983 part/models.py:3764 plugin/models.py:51 -#: report/models.py:149 stock/models.py:77 +#: InvenTree/models.py:769 common/models.py:2766 common/models.py:3193 +#: common/models.py:3413 common/serializers.py:460 company/models.py:590 +#: machine/models.py:24 part/models.py:1044 part/models.py:3815 +#: plugin/models.py:51 report/models.py:149 stock/models.py:83 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/notifications.html:17 #: templates/InvenTree/settings/plugin.html:83 #: templates/InvenTree/settings/plugin_settings.html:22 #: templates/InvenTree/settings/settings_staff_js.html:67 #: templates/InvenTree/settings/settings_staff_js.html:454 -#: templates/js/translated/company.js:676 -#: templates/js/translated/company.js:724 -#: templates/js/translated/company.js:913 -#: templates/js/translated/company.js:1165 -#: templates/js/translated/company.js:1413 templates/js/translated/part.js:1193 +#: templates/js/translated/company.js:677 +#: templates/js/translated/company.js:725 +#: templates/js/translated/company.js:914 +#: templates/js/translated/company.js:1166 +#: templates/js/translated/company.js:1414 templates/js/translated/part.js:1193 #: templates/js/translated/part.js:1481 templates/js/translated/part.js:1617 -#: templates/js/translated/part.js:2768 templates/js/translated/stock.js:2801 +#: templates/js/translated/part.js:2768 templates/js/translated/stock.js:2802 msgid "Name" msgstr "Tên" -#: InvenTree/models.py:776 build/models.py:250 -#: build/templates/build/detail.html:24 common/models.py:156 -#: company/models.py:521 company/models.py:827 +#: InvenTree/models.py:775 build/models.py:251 +#: build/templates/build/detail.html:24 common/models.py:159 +#: company/models.py:518 company/models.py:824 #: company/templates/company/company_base.html:77 #: company/templates/company/manufacturer_part.html:75 -#: company/templates/company/supplier_part.html:107 order/models.py:288 -#: order/models.py:1413 part/admin.py:305 part/admin.py:411 part/models.py:1006 -#: part/models.py:3779 part/templates/part/category.html:79 -#: part/templates/part/part_base.html:170 +#: company/templates/company/supplier_part.html:108 order/models.py:295 +#: order/models.py:1430 part/admin.py:305 part/admin.py:411 part/models.py:1067 +#: part/models.py:3830 part/templates/part/category.html:79 +#: part/templates/part/part_base.html:171 #: part/templates/part/part_scheduling.html:12 report/models.py:155 -#: report/models.py:509 report/models.py:535 +#: report/models.py:517 report/models.py:543 #: report/templates/report/inventree_build_order_report.html:117 -#: stock/admin.py:54 stock/models.py:83 stock/templates/stock/location.html:122 +#: stock/admin.py:54 stock/models.py:89 stock/templates/stock/location.html:123 #: templates/InvenTree/settings/notifications.html:19 #: templates/InvenTree/settings/plugin_settings.html:27 #: templates/InvenTree/settings/settings_staff_js.html:170 #: templates/InvenTree/settings/settings_staff_js.html:459 #: templates/js/translated/bom.js:633 templates/js/translated/bom.js:963 -#: templates/js/translated/build.js:2311 templates/js/translated/company.js:519 -#: templates/js/translated/company.js:1330 -#: templates/js/translated/company.js:1641 templates/js/translated/index.js:119 +#: templates/js/translated/build.js:2314 templates/js/translated/company.js:520 +#: templates/js/translated/company.js:1331 +#: templates/js/translated/company.js:1642 templates/js/translated/index.js:119 #: templates/js/translated/order.js:323 templates/js/translated/part.js:1245 #: templates/js/translated/part.js:1490 templates/js/translated/part.js:1628 #: templates/js/translated/part.js:1965 templates/js/translated/part.js:2361 #: templates/js/translated/part.js:2803 templates/js/translated/part.js:2915 #: templates/js/translated/plugin.js:80 -#: templates/js/translated/purchase_order.js:1776 -#: templates/js/translated/purchase_order.js:1919 -#: templates/js/translated/purchase_order.js:2092 +#: templates/js/translated/purchase_order.js:1760 +#: templates/js/translated/purchase_order.js:1903 +#: templates/js/translated/purchase_order.js:2076 #: templates/js/translated/return_order.js:313 -#: templates/js/translated/sales_order.js:838 -#: templates/js/translated/sales_order.js:1848 -#: templates/js/translated/stock.js:1600 templates/js/translated/stock.js:2143 -#: templates/js/translated/stock.js:2832 templates/js/translated/stock.js:2915 +#: templates/js/translated/sales_order.js:797 +#: templates/js/translated/sales_order.js:1829 +#: templates/js/translated/stock.js:1600 templates/js/translated/stock.js:2144 +#: templates/js/translated/stock.js:2833 templates/js/translated/stock.js:2916 msgid "Description" msgstr "Mô tả" -#: InvenTree/models.py:777 stock/models.py:84 +#: InvenTree/models.py:776 stock/models.py:90 msgid "Description (optional)" msgstr "Mô tả (tùy chọn)" -#: InvenTree/models.py:792 templates/js/translated/part.js:2812 -#: templates/js/translated/stock.js:2841 +#: InvenTree/models.py:791 common/models.py:3546 +#: templates/js/translated/part.js:2812 templates/js/translated/stock.js:2842 msgid "Path" msgstr "Đường dẫn" -#: InvenTree/models.py:929 +#: InvenTree/models.py:928 msgid "Markdown notes (optional)" msgstr "Ghi chú markdown (không bắt buộc)" -#: InvenTree/models.py:960 +#: InvenTree/models.py:959 msgid "Barcode Data" msgstr "Dữ liệu mã vạch" -#: InvenTree/models.py:961 +#: InvenTree/models.py:960 msgid "Third party barcode data" msgstr "Dữ liệu mã vạch của bên thứ ba" -#: InvenTree/models.py:967 +#: InvenTree/models.py:966 msgid "Barcode Hash" msgstr "Dữ liệu băm mã vạch" -#: InvenTree/models.py:968 +#: InvenTree/models.py:967 msgid "Unique hash of barcode data" msgstr "Chuỗi băm duy nhất của dữ liệu mã vạch" -#: InvenTree/models.py:1035 +#: InvenTree/models.py:1034 msgid "Existing barcode found" msgstr "Mã vạch đã tồn tại" -#: InvenTree/models.py:1078 +#: InvenTree/models.py:1112 +msgid "Task Failure" +msgstr "" + +#: InvenTree/models.py:1114 +#, python-brace-format +msgid "Background worker task '{instance.func}' failed after {n} attempts" +msgstr "" + +#: InvenTree/models.py:1142 msgid "Server Error" msgstr "Lỗi máy chủ" -#: InvenTree/models.py:1079 +#: InvenTree/models.py:1143 msgid "An error has been logged by the server." msgstr "Lỗi đã được ghi lại bởi máy chủ." -#: InvenTree/serializers.py:63 part/models.py:4387 +#: InvenTree/serializers.py:63 part/models.py:4444 msgid "Must be a valid number" msgstr "Phải là một số hợp lệ" -#: InvenTree/serializers.py:100 company/models.py:186 -#: company/templates/company/company_base.html:112 part/models.py:3115 +#: InvenTree/serializers.py:100 company/models.py:183 +#: company/templates/company/company_base.html:112 part/models.py:3166 #: templates/InvenTree/settings/settings_staff_js.html:44 #: templates/currency_data.html:5 msgid "Currency" @@ -532,17 +552,17 @@ msgstr "Tiền tệ" msgid "Select currency from available options" msgstr "Chọn tiền tệ trong các tùy chọn đang có" -#: InvenTree/serializers.py:407 templates/InvenTree/settings/user.html:33 +#: InvenTree/serializers.py:405 templates/InvenTree/settings/user.html:33 msgid "Username" msgstr "Tên người dùng" -#: InvenTree/serializers.py:409 templates/InvenTree/settings/user.html:37 +#: InvenTree/serializers.py:408 templates/InvenTree/settings/user.html:37 msgid "First Name" msgstr "Tên" -#: InvenTree/serializers.py:409 +#: InvenTree/serializers.py:408 msgid "First name of the user" -msgstr "" +msgstr "Họ người dùng" #: InvenTree/serializers.py:412 templates/InvenTree/settings/user.html:41 msgid "Last Name" @@ -550,32 +570,32 @@ msgstr "Họ" #: InvenTree/serializers.py:412 msgid "Last name of the user" -msgstr "" +msgstr "Tên người dùng" -#: InvenTree/serializers.py:415 +#: InvenTree/serializers.py:416 msgid "Email address of the user" -msgstr "" +msgstr "Địa chỉ email của người dùng" -#: InvenTree/serializers.py:439 +#: InvenTree/serializers.py:441 msgid "Staff" -msgstr "" +msgstr "Nhân viên" -#: InvenTree/serializers.py:439 +#: InvenTree/serializers.py:441 msgid "Does this user have staff permissions" -msgstr "" +msgstr "Người dùng có quyền nhân viên" -#: InvenTree/serializers.py:442 +#: InvenTree/serializers.py:445 msgid "Superuser" -msgstr "" +msgstr "Superuser" -#: InvenTree/serializers.py:442 +#: InvenTree/serializers.py:445 msgid "Is this user a superuser" -msgstr "" +msgstr "Người dùng này là superuser" -#: InvenTree/serializers.py:445 common/models.py:2707 company/models.py:163 -#: company/models.py:801 machine/models.py:39 part/admin.py:88 -#: part/models.py:1189 plugin/models.py:66 -#: templates/js/translated/company.js:523 +#: InvenTree/serializers.py:449 common/models.py:2771 company/models.py:160 +#: company/models.py:798 machine/models.py:39 part/admin.py:88 +#: part/models.py:1250 plugin/models.py:66 +#: templates/js/translated/company.js:524 #: templates/js/translated/table_filters.js:134 #: templates/js/translated/table_filters.js:226 #: templates/js/translated/table_filters.js:513 @@ -585,230 +605,229 @@ msgstr "" msgid "Active" msgstr "Hoạt động" -#: InvenTree/serializers.py:445 +#: InvenTree/serializers.py:449 msgid "Is this user account active" -msgstr "" +msgstr "Tài khoản người dùng đang hoạt động" -#: InvenTree/serializers.py:463 +#: InvenTree/serializers.py:467 msgid "You do not have permission to change this user role." msgstr "Bạn không có quyền thay đổi vai trò của người dùng này." -#: InvenTree/serializers.py:475 +#: InvenTree/serializers.py:503 msgid "Only superusers can create new users" msgstr "Chỉ có siêu người dùng là có thể tạo người dùng mới" -#: InvenTree/serializers.py:494 +#: InvenTree/serializers.py:523 msgid "Your account has been created." msgstr "Tài khoản của bạn đã được tạo." -#: InvenTree/serializers.py:496 +#: InvenTree/serializers.py:525 msgid "Please use the password reset function to login" msgstr "Xin hãy sử dụng chức năng tạo lại mật khẩu để đăng nhập" -#: InvenTree/serializers.py:503 +#: InvenTree/serializers.py:531 msgid "Welcome to InvenTree" msgstr "Chào mừng đến với InvenTree" -#: InvenTree/serializers.py:561 +#: InvenTree/serializers.py:594 msgid "Invalid value" msgstr "Giá trị không hợp lệ" -#: InvenTree/serializers.py:581 importer/models.py:63 +#: InvenTree/serializers.py:614 importer/models.py:64 msgid "Data File" msgstr "Tập tin dữ liệu" -#: InvenTree/serializers.py:582 +#: InvenTree/serializers.py:615 msgid "Select data file for upload" msgstr "Chọn tệp tin để tải lên" -#: InvenTree/serializers.py:599 -msgid "Unsupported file type" -msgstr "Loại tệp tin không được hỗ trợ" +#: InvenTree/serializers.py:632 common/files.py:63 +msgid "Unsupported file format" +msgstr "" -#: InvenTree/serializers.py:605 +#: InvenTree/serializers.py:638 msgid "File is too large" msgstr "Tệp tin quá lớn" -#: InvenTree/serializers.py:626 +#: InvenTree/serializers.py:659 msgid "No columns found in file" msgstr "Không tìm thấy cột nào trong tệp tin" -#: InvenTree/serializers.py:629 +#: InvenTree/serializers.py:662 msgid "No data rows found in file" msgstr "Không tìm thấy dòng nào trong tệp tin" -#: InvenTree/serializers.py:742 +#: InvenTree/serializers.py:774 msgid "No data rows provided" msgstr "Chưa có dữ liệu" -#: InvenTree/serializers.py:745 +#: InvenTree/serializers.py:777 msgid "No data columns supplied" msgstr "Chưa cung cấp cột dữ liệu" -#: InvenTree/serializers.py:812 +#: InvenTree/serializers.py:843 #, python-brace-format msgid "Missing required column: '{name}'" msgstr "Thiếu cột bắt buộc: '{name}'" -#: InvenTree/serializers.py:821 +#: InvenTree/serializers.py:852 #, python-brace-format msgid "Duplicate column: '{col}'" msgstr "Nhân bản cột: '{col}'" -#: InvenTree/serializers.py:861 +#: InvenTree/serializers.py:891 msgid "Remote Image" msgstr "Hình ảnh từ xa" -#: InvenTree/serializers.py:862 +#: InvenTree/serializers.py:892 msgid "URL of remote image file" msgstr "URL của tệp hình ảnh bên ngoài" -#: InvenTree/serializers.py:880 +#: InvenTree/serializers.py:910 msgid "Downloading images from remote URL is not enabled" msgstr "Chức năng tải hình ảnh từ URL bên ngoài không được bật" -#: InvenTree/status.py:66 part/serializers.py:1246 -msgid "Background worker check failed" -msgstr "Nhân công chạy ngầm kiểm tra thất bại" - -#: InvenTree/status.py:70 -msgid "Email backend not configured" -msgstr "Chưa cấu hình dịch vụ gửi email" - -#: InvenTree/status.py:73 -msgid "InvenTree system health checks failed" -msgstr "Kiểm tra tình trạng hệ thống InvenTree thất bại" +#: InvenTree/serializers.py:917 +msgid "Failed to download image from remote URL" +msgstr "" #: InvenTree/templatetags/inventree_extras.py:184 msgid "Unknown database" msgstr "Không rõ cơ sở dữ liệu" -#: InvenTree/validators.py:32 InvenTree/validators.py:34 +#: InvenTree/validators.py:32 msgid "Invalid physical unit" msgstr "Đơn vị vật lý không hợp lệ" -#: InvenTree/validators.py:40 +#: InvenTree/validators.py:38 msgid "Not a valid currency code" msgstr "Mã tiền tệ không hợp lệ" -#: InvenTree/validators.py:118 InvenTree/validators.py:134 +#: InvenTree/validators.py:115 InvenTree/validators.py:131 msgid "Overage value must not be negative" msgstr "Giá trị hàng hóa dư không thể là số âm" -#: InvenTree/validators.py:136 +#: InvenTree/validators.py:133 msgid "Overage must not exceed 100%" msgstr "Hàng hóa dư thừa không thể vượt quá 100%" -#: InvenTree/validators.py:142 +#: InvenTree/validators.py:139 msgid "Invalid value for overage" msgstr "Giá trị không hợp lệ cho hàng hóa dư thừa" -#: InvenTree/views.py:400 templates/InvenTree/settings/user.html:23 +#: InvenTree/views.py:399 templates/InvenTree/settings/user.html:23 msgid "Edit User Information" msgstr "Sửa thông tin người dùng" -#: InvenTree/views.py:412 templates/InvenTree/settings/user.html:20 +#: InvenTree/views.py:411 templates/InvenTree/settings/user.html:20 msgid "Set Password" msgstr "Đặt Mật khẩu" -#: InvenTree/views.py:434 +#: InvenTree/views.py:433 msgid "Password fields must match" msgstr "Mật khẩu phải trùng khớp" -#: InvenTree/views.py:442 +#: InvenTree/views.py:441 msgid "Wrong password provided" msgstr "Nhập sai mật khẩu" -#: InvenTree/views.py:650 templates/navbar.html:160 +#: InvenTree/views.py:645 templates/navbar.html:160 msgid "System Information" msgstr "Thông tin hệ thống" -#: InvenTree/views.py:657 templates/navbar.html:171 +#: InvenTree/views.py:652 templates/navbar.html:171 msgid "About InvenTree" msgstr "Giới thiệu" -#: build/api.py:51 part/api.py:156 stock/api.py:343 -msgid "Cascade" -msgstr "" - -#: build/api.py:64 build/models.py:261 -#: build/templates/build/build_base.html:191 +#: build/api.py:54 build/models.py:262 +#: build/templates/build/build_base.html:192 #: build/templates/build/detail.html:87 msgid "Parent Build" msgstr "Phiên bản cha" -#: build/api.py:89 order/api.py:92 templates/js/translated/table_filters.js:101 +#: build/api.py:58 build/api.py:625 order/api.py:396 order/api.py:611 +#: order/api.py:990 order/api.py:1187 +#: templates/js/translated/table_filters.js:372 +msgid "Include Variants" +msgstr "" + +#: build/api.py:93 +msgid "Ancestor Build" +msgstr "Xây dựng nguồn gốc" + +#: build/api.py:112 order/api.py:90 +#: templates/js/translated/table_filters.js:101 #: templates/js/translated/table_filters.js:549 #: templates/js/translated/table_filters.js:633 #: templates/js/translated/table_filters.js:674 msgid "Assigned to me" -msgstr "" +msgstr "Đã gán cho tôi" -#: build/api.py:106 build/templates/build/build_base.html:205 +#: build/api.py:129 build/templates/build/build_base.html:206 #: build/templates/build/detail.html:115 #: report/templates/report/inventree_build_order_report.html:152 #: templates/js/translated/table_filters.js:552 msgid "Issued By" msgstr "Phát hành bởi" -#: build/api.py:125 +#: build/api.py:148 msgid "Assigned To" -msgstr "" +msgstr "Đã gán cho" -#: build/api.py:301 +#: build/api.py:310 msgid "Build must be cancelled before it can be deleted" msgstr "Bạn dựng phải được hủy bỏ trước khi có thể xóa được" -#: build/api.py:345 build/serializers.py:1288 part/models.py:4265 +#: build/api.py:354 build/serializers.py:1342 part/models.py:4322 #: templates/js/translated/bom.js:997 templates/js/translated/bom.js:1037 -#: templates/js/translated/build.js:2702 +#: templates/js/translated/build.js:2711 #: templates/js/translated/table_filters.js:197 #: templates/js/translated/table_filters.js:586 msgid "Consumable" msgstr "Vật tư tiêu hao" -#: build/api.py:346 build/serializers.py:1289 part/models.py:4259 +#: build/api.py:355 build/serializers.py:1343 part/models.py:4316 #: part/templates/part/upload_bom.html:58 templates/js/translated/bom.js:1001 -#: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2693 +#: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2702 #: templates/js/translated/table_filters.js:193 #: templates/js/translated/table_filters.js:222 #: templates/js/translated/table_filters.js:590 msgid "Optional" msgstr "Tuỳ chọn" -#: build/api.py:347 common/models.py:1489 part/admin.py:91 part/admin.py:428 -#: part/models.py:1154 part/serializers.py:1575 +#: build/api.py:356 common/models.py:1558 part/admin.py:91 part/admin.py:428 +#: part/models.py:1215 part/serializers.py:1633 #: templates/js/translated/bom.js:1639 #: templates/js/translated/table_filters.js:337 #: templates/js/translated/table_filters.js:729 msgid "Assembly" msgstr "Lắp ráp" -#: build/api.py:348 templates/js/translated/table_filters.js:415 +#: build/api.py:357 templates/js/translated/table_filters.js:415 #: templates/js/translated/table_filters.js:582 msgid "Tracked" msgstr "Đã theo dõi" -#: build/api.py:349 build/serializers.py:1290 part/models.py:1172 +#: build/api.py:358 build/serializers.py:1344 part/models.py:1233 #: templates/js/translated/table_filters.js:146 #: templates/js/translated/table_filters.js:779 msgid "Testable" -msgstr "" +msgstr "Có thể kiểm tra" -#: build/api.py:351 part/admin.py:144 templates/js/translated/build.js:1917 -#: templates/js/translated/build.js:2820 -#: templates/js/translated/sales_order.js:1965 +#: build/api.py:360 order/api.py:779 part/admin.py:144 +#: templates/js/translated/build.js:1920 templates/js/translated/build.js:2838 +#: templates/js/translated/sales_order.js:1946 #: templates/js/translated/table_filters.js:574 msgid "Allocated" msgstr "Đã cấp phát" -#: build/api.py:359 company/models.py:891 company/serializers.py:395 -#: company/templates/company/supplier_part.html:114 +#: build/api.py:368 company/models.py:888 company/serializers.py:399 +#: company/templates/company/supplier_part.html:115 #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:17 -#: templates/js/translated/bom.js:1162 templates/js/translated/build.js:2752 +#: templates/js/translated/bom.js:1162 templates/js/translated/build.js:2770 #: templates/js/translated/index.js:123 -#: templates/js/translated/model_renderers.js:235 +#: templates/js/translated/model_renderers.js:238 #: templates/js/translated/part.js:695 templates/js/translated/part.js:697 #: templates/js/translated/part.js:702 #: templates/js/translated/table_filters.js:347 @@ -816,16 +835,68 @@ msgstr "Đã cấp phát" msgid "Available" msgstr "Có sẵn" -#: build/models.py:86 build/templates/build/build_base.html:9 -#: build/templates/build/build_base.html:27 +#: build/api.py:640 build/models.py:268 build/serializers.py:1330 +#: build/templates/build/build_base.html:106 +#: build/templates/build/detail.html:29 company/models.py:1043 order/api.py:775 +#: order/api.py:1003 order/models.py:1519 order/models.py:1674 +#: order/models.py:1675 part/api.py:1495 part/api.py:1802 part/models.py:419 +#: part/models.py:3177 part/models.py:3321 part/models.py:3469 +#: part/models.py:3490 part/models.py:3512 part/models.py:3648 +#: part/models.py:3995 part/models.py:4158 part/models.py:4288 +#: part/models.py:4654 part/serializers.py:1245 part/serializers.py:1898 +#: part/templates/part/part_app_base.html:8 +#: part/templates/part/part_pricing.html:12 +#: part/templates/part/upload_bom.html:52 +#: report/templates/report/inventree_bill_of_materials_report.html:110 +#: report/templates/report/inventree_bill_of_materials_report.html:137 +#: report/templates/report/inventree_build_order_report.html:109 +#: report/templates/report/inventree_purchase_order_report.html:27 +#: report/templates/report/inventree_return_order_report.html:24 +#: report/templates/report/inventree_sales_order_report.html:27 +#: report/templates/report/inventree_sales_order_shipment_report.html:28 +#: report/templates/report/inventree_stock_location_report.html:102 +#: stock/serializers.py:112 stock/serializers.py:160 stock/serializers.py:456 +#: stock/serializers.py:947 templates/InvenTree/search.html:82 +#: templates/email/build_order_completed.html:17 +#: templates/email/build_order_required_stock.html:17 +#: templates/email/low_stock_notification.html:15 +#: templates/email/overdue_build_order.html:16 +#: templates/js/translated/barcode.js:577 templates/js/translated/bom.js:632 +#: templates/js/translated/bom.js:769 templates/js/translated/bom.js:905 +#: templates/js/translated/build.js:1005 templates/js/translated/build.js:1488 +#: templates/js/translated/build.js:1919 templates/js/translated/build.js:2337 +#: templates/js/translated/build.js:2514 templates/js/translated/company.js:349 +#: templates/js/translated/company.js:1117 +#: templates/js/translated/company.js:1272 +#: templates/js/translated/company.js:1560 templates/js/translated/index.js:109 +#: templates/js/translated/part.js:1950 templates/js/translated/part.js:2022 +#: templates/js/translated/part.js:2330 templates/js/translated/pricing.js:369 +#: templates/js/translated/purchase_order.js:734 +#: templates/js/translated/purchase_order.js:1350 +#: templates/js/translated/purchase_order.js:1902 +#: templates/js/translated/purchase_order.js:2061 +#: templates/js/translated/return_order.js:538 +#: templates/js/translated/return_order.js:708 +#: templates/js/translated/sales_order.js:1199 +#: templates/js/translated/sales_order.js:1608 +#: templates/js/translated/sales_order.js:1813 +#: templates/js/translated/stock.js:682 templates/js/translated/stock.js:848 +#: templates/js/translated/stock.js:1065 templates/js/translated/stock.js:2083 +#: templates/js/translated/stock.js:2942 templates/js/translated/stock.js:3175 +#: templates/js/translated/stock.js:3320 +msgid "Part" +msgstr "Nguyên liệu" + +#: build/api.py:662 build/models.py:88 build/templates/build/build_base.html:10 +#: build/templates/build/build_base.html:28 #: report/templates/report/inventree_build_order_report.html:105 -#: stock/serializers.py:84 templates/email/build_order_completed.html:16 +#: stock/serializers.py:85 templates/email/build_order_completed.html:16 #: templates/email/overdue_build_order.html:15 -#: templates/js/translated/build.js:1145 templates/js/translated/stock.js:2976 +#: templates/js/translated/build.js:1148 templates/js/translated/stock.js:2977 msgid "Build Order" msgstr "Tạo đơn hàng" -#: build/models.py:87 build/templates/build/build_base.html:13 +#: build/models.py:89 build/templates/build/build_base.html:14 #: build/templates/build/index.html:8 build/templates/build/index.html:12 #: order/templates/order/sales_order_detail.html:111 #: order/templates/order/so_sidebar.html:13 @@ -836,270 +907,218 @@ msgstr "Tạo đơn hàng" msgid "Build Orders" msgstr "Tạo đơn hàng" -#: build/models.py:135 +#: build/models.py:136 msgid "Assembly BOM has not been validated" -msgstr "" +msgstr "Dây chuyền BOM chưa được xác thực" -#: build/models.py:142 +#: build/models.py:143 msgid "Build order cannot be created for an inactive part" -msgstr "" +msgstr "Không thể tạo đơn hàng cho hàng hoá đang không hoạt động" -#: build/models.py:149 +#: build/models.py:150 msgid "Build order cannot be created for an unlocked part" -msgstr "" +msgstr "Không thể tạo đơn hàng cho hàng hoá đang mở khoá" -#: build/models.py:163 +#: build/models.py:164 msgid "Invalid choice for parent build" msgstr "Lựa chọn sai cho bản dựng cha" -#: build/models.py:174 order/models.py:239 +#: build/models.py:175 order/models.py:236 msgid "Responsible user or group must be specified" -msgstr "" +msgstr "Phải chọn người dùng hoặc nhóm" -#: build/models.py:180 +#: build/models.py:181 msgid "Build order part cannot be changed" msgstr "Sản phẩm đơn đặt bản dựng không thể thay đổi được" -#: build/models.py:241 +#: build/models.py:242 msgid "Build Order Reference" msgstr "Tham chiếu đơn đặt bản dựng" -#: build/models.py:242 build/serializers.py:1287 order/models.py:467 -#: order/models.py:978 order/models.py:1373 order/models.py:2135 -#: part/admin.py:414 part/models.py:4280 part/templates/part/upload_bom.html:54 +#: build/models.py:243 build/serializers.py:1341 order/models.py:479 +#: order/models.py:1005 order/models.py:1390 order/models.py:2174 +#: part/admin.py:414 part/models.py:4337 part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_bill_of_materials_report.html:139 #: report/templates/report/inventree_purchase_order_report.html:28 #: report/templates/report/inventree_return_order_report.html:26 #: report/templates/report/inventree_sales_order_report.html:28 #: templates/js/translated/bom.js:770 templates/js/translated/bom.js:973 -#: templates/js/translated/build.js:1011 templates/js/translated/build.js:2685 +#: templates/js/translated/build.js:1014 templates/js/translated/build.js:2694 #: templates/js/translated/order.js:316 templates/js/translated/pricing.js:386 -#: templates/js/translated/purchase_order.js:2135 +#: templates/js/translated/purchase_order.js:2119 #: templates/js/translated/return_order.js:727 -#: templates/js/translated/sales_order.js:1854 +#: templates/js/translated/sales_order.js:1835 msgid "Reference" msgstr "Tham chiếu" -#: build/models.py:253 +#: build/models.py:254 msgid "Brief description of the build (optional)" msgstr "Mô tả ngắn về phiên bạn (Tùy chọn)" -#: build/models.py:262 +#: build/models.py:263 msgid "BuildOrder to which this build is allocated" msgstr "Đơn đặt bản dựng với bản dựng này đã được phân bổ" -#: build/models.py:267 build/serializers.py:1278 -#: build/templates/build/build_base.html:105 -#: build/templates/build/detail.html:29 company/models.py:1046 order/api.py:767 -#: order/models.py:1503 order/models.py:1658 order/models.py:1659 -#: part/api.py:1509 part/api.py:1813 part/models.py:424 part/models.py:3126 -#: part/models.py:3270 part/models.py:3418 part/models.py:3439 -#: part/models.py:3461 part/models.py:3597 part/models.py:3937 -#: part/models.py:4100 part/models.py:4231 part/models.py:4592 -#: part/serializers.py:1192 part/serializers.py:1836 -#: part/templates/part/part_app_base.html:8 -#: part/templates/part/part_pricing.html:12 -#: part/templates/part/upload_bom.html:52 -#: report/templates/report/inventree_bill_of_materials_report.html:110 -#: report/templates/report/inventree_bill_of_materials_report.html:137 -#: report/templates/report/inventree_build_order_report.html:109 -#: report/templates/report/inventree_purchase_order_report.html:27 -#: report/templates/report/inventree_return_order_report.html:24 -#: report/templates/report/inventree_sales_order_report.html:27 -#: report/templates/report/inventree_stock_location_report.html:102 -#: stock/serializers.py:111 stock/serializers.py:159 stock/serializers.py:446 -#: stock/serializers.py:916 templates/InvenTree/search.html:82 -#: templates/email/build_order_completed.html:17 -#: templates/email/build_order_required_stock.html:17 -#: templates/email/low_stock_notification.html:15 -#: templates/email/overdue_build_order.html:16 -#: templates/js/translated/barcode.js:577 templates/js/translated/bom.js:632 -#: templates/js/translated/bom.js:769 templates/js/translated/bom.js:905 -#: templates/js/translated/build.js:1002 templates/js/translated/build.js:1485 -#: templates/js/translated/build.js:1916 templates/js/translated/build.js:2334 -#: templates/js/translated/build.js:2507 templates/js/translated/company.js:348 -#: templates/js/translated/company.js:1116 -#: templates/js/translated/company.js:1271 -#: templates/js/translated/company.js:1559 templates/js/translated/index.js:109 -#: templates/js/translated/part.js:1950 templates/js/translated/part.js:2022 -#: templates/js/translated/part.js:2330 templates/js/translated/pricing.js:369 -#: templates/js/translated/purchase_order.js:751 -#: templates/js/translated/purchase_order.js:1367 -#: templates/js/translated/purchase_order.js:1918 -#: templates/js/translated/purchase_order.js:2077 -#: templates/js/translated/return_order.js:538 -#: templates/js/translated/return_order.js:708 -#: templates/js/translated/sales_order.js:300 -#: templates/js/translated/sales_order.js:1233 -#: templates/js/translated/sales_order.js:1634 -#: templates/js/translated/sales_order.js:1832 -#: templates/js/translated/stock.js:682 templates/js/translated/stock.js:848 -#: templates/js/translated/stock.js:1065 templates/js/translated/stock.js:2082 -#: templates/js/translated/stock.js:2941 templates/js/translated/stock.js:3174 -#: templates/js/translated/stock.js:3319 -msgid "Part" -msgstr "Nguyên liệu" - -#: build/models.py:275 +#: build/models.py:274 msgid "Select part to build" msgstr "Chọn sản phẩm để xây dựng" -#: build/models.py:280 +#: build/models.py:279 msgid "Sales Order Reference" msgstr "Tham chiếu đơn đặt bản dựng" -#: build/models.py:284 +#: build/models.py:283 msgid "SalesOrder to which this build is allocated" msgstr "Đơn đặt bán hàng với bản dựng này đã được phân bổ" -#: build/models.py:289 build/serializers.py:1048 -#: templates/js/translated/build.js:1904 -#: templates/js/translated/sales_order.js:1221 +#: build/models.py:288 build/serializers.py:1092 +#: templates/js/translated/build.js:1907 +#: templates/js/translated/sales_order.js:1187 msgid "Source Location" msgstr "Địa điểm nguồn" -#: build/models.py:293 +#: build/models.py:292 msgid "Select location to take stock from for this build (leave blank to take from any stock location)" msgstr "Chọn địa điểm để lấy trong kho cho bản dựng này (để trống để lấy từ bất kỳ vị trí kho nào)" -#: build/models.py:298 +#: build/models.py:297 msgid "Destination Location" msgstr "Địa điểm đích" -#: build/models.py:302 +#: build/models.py:301 msgid "Select location where the completed items will be stored" msgstr "Chọn địa điểm nơi hàng hóa hoàn thiện sẽ được lưu kho" -#: build/models.py:306 +#: build/models.py:305 msgid "Build Quantity" msgstr "Xây dựng số lượng" -#: build/models.py:309 +#: build/models.py:308 msgid "Number of stock items to build" msgstr "Số kho hàng để dựng" -#: build/models.py:313 +#: build/models.py:312 msgid "Completed items" msgstr "Những mục hoàn thành" -#: build/models.py:315 +#: build/models.py:314 msgid "Number of stock items which have been completed" msgstr "Số sản phẩm trong kho đã được hoàn thiện" -#: build/models.py:319 +#: build/models.py:318 msgid "Build Status" msgstr "Trnạg thái bản dựng" -#: build/models.py:323 +#: build/models.py:322 msgid "Build status code" msgstr "Mã trạng thái bản dựng" -#: build/models.py:332 build/serializers.py:302 build/serializers.py:1198 -#: order/serializers.py:670 stock/models.py:859 stock/serializers.py:76 -#: stock/serializers.py:1562 templates/js/translated/purchase_order.js:1129 +#: build/models.py:331 build/serializers.py:349 build/serializers.py:1243 +#: order/serializers.py:755 stock/models.py:936 stock/serializers.py:77 +#: stock/serializers.py:1593 templates/js/translated/purchase_order.js:1112 #: templates/js/translated/stock.js:1199 msgid "Batch Code" msgstr "Mã lô hàng" -#: build/models.py:336 build/serializers.py:303 +#: build/models.py:335 build/serializers.py:350 msgid "Batch code for this build output" msgstr "Mã lô cho đầu ra bản dựng này" -#: build/models.py:339 order/models.py:315 order/serializers.py:126 -#: part/models.py:1229 part/templates/part/part_base.html:319 +#: build/models.py:338 order/models.py:322 order/serializers.py:157 +#: part/models.py:1290 part/templates/part/part_base.html:327 #: templates/js/translated/return_order.js:338 -#: templates/js/translated/sales_order.js:863 +#: templates/js/translated/sales_order.js:822 msgid "Creation Date" msgstr "Ngày tạo" -#: build/models.py:343 +#: build/models.py:342 msgid "Target completion date" msgstr "Ngày hoàn thành mục tiêu" -#: build/models.py:344 +#: build/models.py:343 msgid "Target date for build completion. Build will be overdue after this date." msgstr "Ngày mục tiêu để hoàn thành bản dựng. Bản dựng sẽ bị quá hạn sau ngày này." -#: build/models.py:347 order/models.py:526 order/models.py:2180 -#: templates/js/translated/build.js:2419 +#: build/models.py:346 order/models.py:538 order/models.py:2219 +#: templates/js/translated/build.js:2422 msgid "Completion Date" msgstr "Ngày hoàn thành" -#: build/models.py:353 +#: build/models.py:352 msgid "completed by" msgstr "hoàn thành bởi" -#: build/models.py:361 templates/js/translated/build.js:2379 +#: build/models.py:360 templates/js/translated/build.js:2382 msgid "Issued by" msgstr "Cấp bởi" -#: build/models.py:362 +#: build/models.py:361 msgid "User who issued this build order" msgstr "Người dùng người đã được phân công cho đơn đặt bản dựng này" -#: build/models.py:370 build/templates/build/build_base.html:212 -#: build/templates/build/detail.html:122 common/models.py:165 order/api.py:142 -#: order/models.py:333 order/templates/order/order_base.html:222 -#: order/templates/order/return_order_base.html:191 -#: order/templates/order/sales_order_base.html:235 part/models.py:1246 -#: part/templates/part/part_base.html:399 +#: build/models.py:369 build/templates/build/build_base.html:213 +#: build/templates/build/detail.html:122 common/models.py:168 order/api.py:140 +#: order/models.py:340 order/templates/order/order_base.html:231 +#: order/templates/order/return_order_base.html:192 +#: order/templates/order/sales_order_base.html:236 part/models.py:1307 +#: part/templates/part/part_base.html:407 #: report/templates/report/inventree_build_order_report.html:158 #: templates/InvenTree/settings/settings_staff_js.html:150 -#: templates/js/translated/build.js:2391 -#: templates/js/translated/purchase_order.js:1833 +#: templates/js/translated/build.js:2394 +#: templates/js/translated/purchase_order.js:1817 #: templates/js/translated/return_order.js:358 #: templates/js/translated/table_filters.js:551 msgid "Responsible" msgstr "Chịu trách nhiệm" -#: build/models.py:371 +#: build/models.py:370 msgid "User or group responsible for this build order" msgstr "Người dùng hoặc nhóm có trách nhiệm với đơn đặt bản dựng này" -#: build/models.py:376 build/templates/build/detail.html:108 +#: build/models.py:375 build/templates/build/detail.html:108 #: company/templates/company/manufacturer_part.html:107 -#: company/templates/company/supplier_part.html:194 -#: order/templates/order/order_base.html:172 -#: order/templates/order/return_order_base.html:148 -#: order/templates/order/sales_order_base.html:187 -#: part/templates/part/part_base.html:392 stock/models.py:855 -#: stock/templates/stock/item_base.html:200 -#: templates/js/translated/company.js:1019 +#: company/templates/company/supplier_part.html:195 +#: order/templates/order/order_base.html:181 +#: order/templates/order/return_order_base.html:149 +#: order/templates/order/sales_order_base.html:188 +#: part/templates/part/part_base.html:400 stock/models.py:932 +#: stock/templates/stock/item_base.html:197 +#: templates/js/translated/company.js:1020 msgid "External Link" msgstr "Liên kết bên ngoài" -#: build/models.py:377 common/models.py:3273 part/models.py:1058 -#: stock/models.py:855 +#: build/models.py:376 common/models.py:3334 part/models.py:1119 +#: stock/models.py:932 msgid "Link to external URL" msgstr "Liên kết đến URL bên ngoài" -#: build/models.py:381 +#: build/models.py:380 msgid "Build Priority" msgstr "Độ ưu tiên" -#: build/models.py:384 +#: build/models.py:383 msgid "Priority of this build order" msgstr "Độ quan trọng của đơn đặt bản dựng" -#: build/models.py:391 common/models.py:135 common/models.py:149 -#: order/admin.py:18 order/api.py:128 order/models.py:297 +#: build/models.py:390 common/models.py:138 common/models.py:152 +#: order/admin.py:18 order/api.py:126 order/models.py:304 #: templates/InvenTree/settings/settings_staff_js.html:146 -#: templates/js/translated/build.js:2316 -#: templates/js/translated/purchase_order.js:1780 +#: templates/js/translated/build.js:2319 +#: templates/js/translated/purchase_order.js:1764 #: templates/js/translated/return_order.js:317 -#: templates/js/translated/sales_order.js:842 +#: templates/js/translated/sales_order.js:801 #: templates/js/translated/table_filters.js:47 #: templates/project_code_data.html:6 msgid "Project Code" msgstr "Mã dự án" -#: build/models.py:392 +#: build/models.py:391 msgid "Project code for this build order" msgstr "Mã dự án cho đơn đặt bản dựng này" -#: build/models.py:651 build/models.py:778 +#: build/models.py:651 build/models.py:779 msgid "Failed to offload task to complete build allocations" -msgstr "" +msgstr "Không thể dỡ bỏ tác vụ để hoàn tất phân bổ" #: build/models.py:673 #, python-brace-format @@ -1110,610 +1129,619 @@ msgstr "Đơn đặt bản dựng {build} đã được hoàn thành" msgid "A build order has been completed" msgstr "Một đơn đặt bản dựng đã được hoàn thành" -#: build/models.py:967 build/models.py:1055 +#: build/models.py:858 build/serializers.py:393 +msgid "Serial numbers must be provided for trackable parts" +msgstr "Số sê-ri phải được cung cấp cho hàng hoá có thể theo dõi" + +#: build/models.py:969 build/models.py:1058 msgid "No build output specified" msgstr "Không có đầu ra bản dựng đã được chỉ ra" -#: build/models.py:970 +#: build/models.py:972 msgid "Build output is already completed" msgstr "Đầu ra bản dựng đã được hoàn thiện" -#: build/models.py:973 +#: build/models.py:975 msgid "Build output does not match Build Order" msgstr "Đầu ra bản dựng không phù hợp với đơn đặt bản dựng" -#: build/models.py:1059 build/serializers.py:235 build/serializers.py:284 -#: build/serializers.py:915 order/models.py:564 order/serializers.py:499 -#: order/serializers.py:665 part/serializers.py:1569 part/serializers.py:1999 -#: stock/models.py:700 stock/models.py:1520 stock/serializers.py:669 +#: build/models.py:1062 build/serializers.py:282 build/serializers.py:331 +#: build/serializers.py:959 order/models.py:586 order/serializers.py:584 +#: order/serializers.py:750 part/serializers.py:1627 part/serializers.py:2060 +#: stock/models.py:777 stock/models.py:1609 stock/serializers.py:696 msgid "Quantity must be greater than zero" msgstr "Số lượng phải lớn hơn 0" -#: build/models.py:1064 build/serializers.py:240 +#: build/models.py:1067 build/serializers.py:287 msgid "Quantity cannot be greater than the output quantity" msgstr "Số lượng không thể lớn hơn số lượng đầu ra" -#: build/models.py:1124 build/serializers.py:563 +#: build/models.py:1127 build/serializers.py:607 #, python-brace-format msgid "Build output {serial} has not passed all required tests" -msgstr "" +msgstr "Tạo đầu ra {serial} chưa vượt qua tất cả các bài kiểm tra" -#: build/models.py:1465 +#: build/models.py:1482 msgid "Build Order Line Item" -msgstr "" +msgstr "Tạo mục đơn hàng" -#: build/models.py:1490 +#: build/models.py:1507 msgid "Build object" msgstr "Dựng đối tượng" -#: build/models.py:1504 build/models.py:1760 build/serializers.py:222 -#: build/serializers.py:269 build/serializers.py:1295 -#: build/templates/build/build_base.html:110 -#: build/templates/build/detail.html:34 common/models.py:2579 -#: order/models.py:1356 order/models.py:2041 order/serializers.py:1460 +#: build/models.py:1521 build/models.py:1787 build/serializers.py:269 +#: build/serializers.py:316 build/serializers.py:1349 +#: build/templates/build/build_base.html:111 +#: build/templates/build/detail.html:34 common/models.py:2643 +#: order/models.py:1373 order/models.py:2074 order/serializers.py:1586 #: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:413 -#: part/forms.py:48 part/models.py:3284 part/models.py:4253 -#: part/templates/part/part_pricing.html:16 +#: part/forms.py:48 part/models.py:3335 part/models.py:4310 +#: part/serializers.py:265 part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_bill_of_materials_report.html:138 #: report/templates/report/inventree_build_order_report.html:113 #: report/templates/report/inventree_purchase_order_report.html:29 #: report/templates/report/inventree_sales_order_report.html:29 +#: report/templates/report/inventree_sales_order_shipment_report.html:47 +#: report/templates/report/inventree_sales_order_shipment_report.html:49 #: report/templates/report/inventree_stock_location_report.html:104 #: report/templates/report/inventree_test_report.html:90 -#: report/templates/report/inventree_test_report.html:169 stock/admin.py:159 -#: stock/serializers.py:127 stock/serializers.py:167 stock/serializers.py:660 -#: stock/templates/stock/item_base.html:287 -#: stock/templates/stock/item_base.html:295 -#: stock/templates/stock/item_base.html:342 +#: report/templates/report/inventree_test_report.html:169 stock/admin.py:160 +#: stock/serializers.py:128 stock/serializers.py:168 stock/serializers.py:687 +#: stock/templates/stock/item_base.html:284 +#: stock/templates/stock/item_base.html:292 +#: stock/templates/stock/item_base.html:339 #: templates/email/build_order_completed.html:18 #: templates/js/translated/barcode.js:579 templates/js/translated/bom.js:771 -#: templates/js/translated/bom.js:981 templates/js/translated/build.js:522 -#: templates/js/translated/build.js:737 templates/js/translated/build.js:1542 -#: templates/js/translated/build.js:1919 templates/js/translated/build.js:2529 -#: templates/js/translated/company.js:1818 -#: templates/js/translated/model_renderers.js:237 +#: templates/js/translated/bom.js:981 templates/js/translated/build.js:525 +#: templates/js/translated/build.js:740 templates/js/translated/build.js:1545 +#: templates/js/translated/build.js:1922 templates/js/translated/build.js:2536 +#: templates/js/translated/company.js:1819 +#: templates/js/translated/model_renderers.js:240 #: templates/js/translated/order.js:329 templates/js/translated/part.js:968 -#: templates/js/translated/part.js:1818 templates/js/translated/part.js:3360 +#: templates/js/translated/part.js:1818 templates/js/translated/part.js:3376 #: templates/js/translated/pricing.js:381 #: templates/js/translated/pricing.js:474 #: templates/js/translated/pricing.js:522 #: templates/js/translated/pricing.js:616 -#: templates/js/translated/purchase_order.js:754 -#: templates/js/translated/purchase_order.js:1922 -#: templates/js/translated/purchase_order.js:2141 -#: templates/js/translated/sales_order.js:317 -#: templates/js/translated/sales_order.js:1235 -#: templates/js/translated/sales_order.js:1554 -#: templates/js/translated/sales_order.js:1644 -#: templates/js/translated/sales_order.js:1734 -#: templates/js/translated/sales_order.js:1860 +#: templates/js/translated/purchase_order.js:737 +#: templates/js/translated/purchase_order.js:1906 +#: templates/js/translated/purchase_order.js:2125 +#: templates/js/translated/sales_order.js:1201 +#: templates/js/translated/sales_order.js:1520 +#: templates/js/translated/sales_order.js:1625 +#: templates/js/translated/sales_order.js:1715 +#: templates/js/translated/sales_order.js:1841 #: templates/js/translated/stock.js:570 templates/js/translated/stock.js:708 -#: templates/js/translated/stock.js:879 templates/js/translated/stock.js:3105 -#: templates/js/translated/stock.js:3188 +#: templates/js/translated/stock.js:879 templates/js/translated/stock.js:3106 +#: templates/js/translated/stock.js:3189 msgid "Quantity" msgstr "Số lượng" -#: build/models.py:1505 +#: build/models.py:1522 msgid "Required quantity for build order" msgstr "Yêu cầu số lượng để dựng đơn đặt" -#: build/models.py:1585 +#: build/models.py:1602 msgid "Build item must specify a build output, as master part is marked as trackable" msgstr "Xây dựng mục phải xác định đầu ra, bởi vì sản phẩm chủ được đánh dấu là có thể theo dõi" -#: build/models.py:1594 +#: build/models.py:1611 #, python-brace-format msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgstr "Số lượng được phân bổ ({q}) không thể vượt quá số lượng có trong kho ({a})" -#: build/models.py:1604 order/models.py:1992 +#: build/models.py:1628 order/models.py:2025 msgid "Stock item is over-allocated" msgstr "Kho hàng đã bị phân bổ quá đà" -#: build/models.py:1610 order/models.py:1995 +#: build/models.py:1634 order/models.py:2028 msgid "Allocation quantity must be greater than zero" msgstr "Số lượng phân bổ phải lớn hơn 0" -#: build/models.py:1616 +#: build/models.py:1640 msgid "Quantity must be 1 for serialized stock" msgstr "Số lượng phải là 1 cho kho sê ri" -#: build/models.py:1675 +#: build/models.py:1699 msgid "Selected stock item does not match BOM line" msgstr "Hàng trong kho đã chọn không phù hợp với đường BOM" -#: build/models.py:1747 build/serializers.py:895 order/serializers.py:1297 -#: order/serializers.py:1318 stock/models.py:376 stock/serializers.py:93 -#: stock/serializers.py:763 stock/serializers.py:1281 stock/serializers.py:1393 -#: stock/templates/stock/item_base.html:10 -#: stock/templates/stock/item_base.html:23 -#: stock/templates/stock/item_base.html:194 -#: templates/js/translated/build.js:1918 -#: templates/js/translated/sales_order.js:301 -#: templates/js/translated/sales_order.js:1234 -#: templates/js/translated/sales_order.js:1535 -#: templates/js/translated/sales_order.js:1540 -#: templates/js/translated/sales_order.js:1641 -#: templates/js/translated/sales_order.js:1728 +#: build/models.py:1774 build/serializers.py:939 order/serializers.py:1423 +#: order/serializers.py:1444 +#: report/templates/report/inventree_sales_order_shipment_report.html:29 +#: stock/models.py:382 stock/serializers.py:94 stock/serializers.py:794 +#: stock/serializers.py:1312 stock/serializers.py:1424 +#: stock/templates/stock/item_base.html:11 +#: stock/templates/stock/item_base.html:24 +#: stock/templates/stock/item_base.html:191 +#: templates/js/translated/build.js:1921 +#: templates/js/translated/sales_order.js:1200 +#: templates/js/translated/sales_order.js:1501 +#: templates/js/translated/sales_order.js:1506 +#: templates/js/translated/sales_order.js:1622 +#: templates/js/translated/sales_order.js:1709 #: templates/js/translated/stock.js:683 templates/js/translated/stock.js:849 -#: templates/js/translated/stock.js:3061 +#: templates/js/translated/stock.js:3062 msgid "Stock Item" msgstr "Kho hàng" -#: build/models.py:1748 +#: build/models.py:1775 msgid "Source stock item" msgstr "Kho hàng gốc" -#: build/models.py:1761 +#: build/models.py:1788 msgid "Stock quantity to allocate to build" msgstr "Số lượng kho hàng cần chỉ định để xây dựng" -#: build/models.py:1769 +#: build/models.py:1796 msgid "Install into" msgstr "Cài đặt vào" -#: build/models.py:1770 +#: build/models.py:1797 msgid "Destination stock item" msgstr "Kho hàng đích" -#: build/serializers.py:91 +#: build/serializers.py:108 msgid "Build Level" -msgstr "" +msgstr "Tạo cấp" -#: build/serializers.py:99 build/serializers.py:1190 build/serializers.py:1279 -#: part/admin.py:41 part/admin.py:408 part/models.py:4102 part/stocktake.py:219 -#: stock/admin.py:156 +#: build/serializers.py:116 build/serializers.py:1235 build/serializers.py:1331 +#: part/admin.py:41 part/admin.py:408 part/models.py:4160 part/stocktake.py:219 +#: stock/admin.py:157 msgid "Part Name" msgstr "Tên sản phẩm" -#: build/serializers.py:111 +#: build/serializers.py:128 msgid "Project Code Label" -msgstr "" +msgstr "Nhãn mã dự án" -#: build/serializers.py:172 build/serializers.py:924 -#: templates/js/translated/build.js:1042 templates/js/translated/build.js:1495 +#: build/serializers.py:134 +msgid "Create Child Builds" +msgstr "Tạo mới bản dựng con" + +#: build/serializers.py:135 +msgid "Automatically generate child build orders" +msgstr "Tự động tạo đơn hàng con" + +#: build/serializers.py:219 build/serializers.py:968 +#: templates/js/translated/build.js:1045 templates/js/translated/build.js:1498 msgid "Build Output" msgstr "Đầu ra bản dựng" -#: build/serializers.py:184 +#: build/serializers.py:231 msgid "Build output does not match the parent build" msgstr "Đầu ra xây dựng không hợp với bản dựng cha" -#: build/serializers.py:188 +#: build/serializers.py:235 msgid "Output part does not match BuildOrder part" msgstr "Đầu ra sản phẩm không phù hợp với bản dựng đơn đặt hàng" -#: build/serializers.py:192 +#: build/serializers.py:239 msgid "This build output has already been completed" msgstr "Đầu ra bản dựng này đã được hoàn thành" -#: build/serializers.py:203 +#: build/serializers.py:250 msgid "This build output is not fully allocated" msgstr "Đầu ra bản dựng này chưa được phân bổ đầy đủ" -#: build/serializers.py:223 build/serializers.py:270 +#: build/serializers.py:270 build/serializers.py:317 msgid "Enter quantity for build output" msgstr "Điền số lượng cho đầu ra bản dựng" -#: build/serializers.py:291 +#: build/serializers.py:338 msgid "Integer quantity required for trackable parts" msgstr "Số lượng nguyên dương cần phải điền cho sản phẩm có thể theo dõi" -#: build/serializers.py:294 +#: build/serializers.py:341 msgid "Integer quantity required, as the bill of materials contains trackable parts" msgstr "Cần nhập số lượng nguyên dương, bởi vì hóa đơn vật liệu chứa sản phẩm có thể theo dõi" -#: build/serializers.py:309 order/serializers.py:678 order/serializers.py:1464 -#: stock/serializers.py:680 templates/js/translated/purchase_order.js:1154 +#: build/serializers.py:356 order/serializers.py:763 order/serializers.py:1590 +#: stock/serializers.py:707 templates/js/translated/purchase_order.js:1137 #: templates/js/translated/stock.js:373 templates/js/translated/stock.js:571 msgid "Serial Numbers" msgstr "Số sê-ri" -#: build/serializers.py:310 +#: build/serializers.py:357 msgid "Enter serial numbers for build outputs" msgstr "Nhập vào số sêri cho đầu ra bản dựng" -#: build/serializers.py:315 build/serializers.py:456 build/serializers.py:528 -#: order/serializers.py:654 order/serializers.py:778 order/serializers.py:1781 -#: part/serializers.py:1212 stock/serializers.py:102 stock/serializers.py:691 -#: stock/serializers.py:851 stock/serializers.py:977 stock/serializers.py:1425 -#: stock/serializers.py:1681 stock/templates/stock/item_base.html:394 +#: build/serializers.py:362 build/serializers.py:500 build/serializers.py:572 +#: order/serializers.py:739 order/serializers.py:880 order/serializers.py:1933 +#: part/serializers.py:1265 stock/serializers.py:103 stock/serializers.py:718 +#: stock/serializers.py:882 stock/serializers.py:1008 stock/serializers.py:1456 +#: stock/serializers.py:1712 stock/templates/stock/item_base.html:391 #: templates/js/translated/barcode.js:578 -#: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1032 -#: templates/js/translated/build.js:1174 templates/js/translated/build.js:2544 -#: templates/js/translated/purchase_order.js:1210 -#: templates/js/translated/purchase_order.js:1320 -#: templates/js/translated/sales_order.js:1547 -#: templates/js/translated/sales_order.js:1655 -#: templates/js/translated/sales_order.js:1663 -#: templates/js/translated/sales_order.js:1742 +#: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1035 +#: templates/js/translated/build.js:1177 templates/js/translated/build.js:2551 +#: templates/js/translated/purchase_order.js:1193 +#: templates/js/translated/purchase_order.js:1303 +#: templates/js/translated/sales_order.js:1513 +#: templates/js/translated/sales_order.js:1636 +#: templates/js/translated/sales_order.js:1644 +#: templates/js/translated/sales_order.js:1723 #: templates/js/translated/stock.js:684 templates/js/translated/stock.js:850 -#: templates/js/translated/stock.js:1067 templates/js/translated/stock.js:2286 -#: templates/js/translated/stock.js:2955 +#: templates/js/translated/stock.js:1067 templates/js/translated/stock.js:2287 +#: templates/js/translated/stock.js:2956 msgid "Location" msgstr "Địa điểm" -#: build/serializers.py:316 +#: build/serializers.py:363 msgid "Stock location for build output" -msgstr "" +msgstr "Vị trí tồn kho cho sản phẩm" -#: build/serializers.py:330 +#: build/serializers.py:377 msgid "Auto Allocate Serial Numbers" msgstr "Số sêri tự cấp" -#: build/serializers.py:331 +#: build/serializers.py:378 msgid "Automatically allocate required items with matching serial numbers" msgstr "Tự động cấp số seri phù hợp cho hàng hóa được yêu cầu" -#: build/serializers.py:346 -msgid "Serial numbers must be provided for trackable parts" -msgstr "" - -#: build/serializers.py:371 stock/api.py:1031 +#: build/serializers.py:415 order/serializers.py:858 stock/api.py:1017 +#: stock/models.py:1632 msgid "The following serial numbers already exist or are invalid" msgstr "Số sêri sau đây đã tồn tại hoặc không hợp lệ" -#: build/serializers.py:418 build/serializers.py:480 build/serializers.py:569 +#: build/serializers.py:462 build/serializers.py:524 build/serializers.py:613 msgid "A list of build outputs must be provided" msgstr "Danh sách đầu ra bản dựng phải được cung cấp" -#: build/serializers.py:457 +#: build/serializers.py:501 msgid "Stock location for scrapped outputs" msgstr "Vị trí kho cho đầu ra phế phẩm" -#: build/serializers.py:463 +#: build/serializers.py:507 msgid "Discard Allocations" msgstr "Hủy phân bổ" -#: build/serializers.py:464 +#: build/serializers.py:508 msgid "Discard any stock allocations for scrapped outputs" msgstr "Hủy bất kỳ phân kho nào cho đầu ra phế phẩm" -#: build/serializers.py:469 +#: build/serializers.py:513 msgid "Reason for scrapping build output(s)" msgstr "Lý do loại bỏ đầu ra bản dựng" -#: build/serializers.py:529 +#: build/serializers.py:573 msgid "Location for completed build outputs" msgstr "Vị trí cho đầu ra bản dựng hoàn thiện" -#: build/serializers.py:535 build/templates/build/build_base.html:159 -#: build/templates/build/detail.html:62 order/models.py:476 -#: order/models.py:1002 order/models.py:2159 order/serializers.py:686 -#: stock/admin.py:164 stock/serializers.py:1028 stock/serializers.py:1569 -#: stock/templates/stock/item_base.html:427 -#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2363 -#: templates/js/translated/purchase_order.js:1371 -#: templates/js/translated/purchase_order.js:1792 +#: build/serializers.py:579 build/templates/build/build_base.html:160 +#: build/templates/build/detail.html:62 order/models.py:488 +#: order/models.py:1029 order/models.py:2198 order/serializers.py:771 +#: stock/admin.py:165 stock/serializers.py:581 stock/serializers.py:1059 +#: stock/serializers.py:1600 stock/templates/stock/item_base.html:424 +#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2366 +#: templates/js/translated/purchase_order.js:1354 +#: templates/js/translated/purchase_order.js:1776 #: templates/js/translated/return_order.js:330 -#: templates/js/translated/sales_order.js:855 -#: templates/js/translated/stock.js:2261 templates/js/translated/stock.js:3079 -#: templates/js/translated/stock.js:3204 +#: templates/js/translated/sales_order.js:814 +#: templates/js/translated/stock.js:2262 templates/js/translated/stock.js:3080 +#: templates/js/translated/stock.js:3205 msgid "Status" msgstr "Trạng thái" -#: build/serializers.py:541 +#: build/serializers.py:585 msgid "Accept Incomplete Allocation" msgstr "Chấp nhận phân kho dang dở" -#: build/serializers.py:542 +#: build/serializers.py:586 msgid "Complete outputs if stock has not been fully allocated" msgstr "Hoàn hiện đầu ra nếu kho chưa được phân bổ hết chỗ trống" -#: build/serializers.py:654 +#: build/serializers.py:698 msgid "Consume Allocated Stock" -msgstr "" +msgstr "Xử lý phân bổ kho hàng" -#: build/serializers.py:655 +#: build/serializers.py:699 msgid "Consume any stock which has already been allocated to this build" -msgstr "" +msgstr "Tiêu thụ bất kỳ hàng tồn kho nào đã được phân bổ cho dự án này." -#: build/serializers.py:661 +#: build/serializers.py:705 msgid "Remove Incomplete Outputs" msgstr "Xóa toàn bộ đầu ra chưa hoàn thành" -#: build/serializers.py:662 +#: build/serializers.py:706 msgid "Delete any build outputs which have not been completed" msgstr "Xóa bất kỳ đầu ra bản dựng nào chưa được hoàn thành" -#: build/serializers.py:689 +#: build/serializers.py:733 msgid "Not permitted" msgstr "Chưa được cấp phép" -#: build/serializers.py:690 +#: build/serializers.py:734 msgid "Accept as consumed by this build order" msgstr "Chấp nhận trạng thái tiêu hao bởi đơn đặt bản dựng này" -#: build/serializers.py:691 +#: build/serializers.py:735 msgid "Deallocate before completing this build order" msgstr "Phân bổ trước khi hoàn thiện đơn đặt bản dựng này" -#: build/serializers.py:721 +#: build/serializers.py:765 msgid "Overallocated Stock" msgstr "Kho quá tải" -#: build/serializers.py:723 +#: build/serializers.py:767 msgid "How do you want to handle extra stock items assigned to the build order" msgstr "Bạn muốn thế nào để xử lý hàng trong kho được gán thừa cho đơn đặt bản dựng" -#: build/serializers.py:733 +#: build/serializers.py:777 msgid "Some stock items have been overallocated" msgstr "Một vài hàng hóa đã được phân bổ quá thừa" -#: build/serializers.py:738 +#: build/serializers.py:782 msgid "Accept Unallocated" msgstr "Chấp nhận chưa phân bổ được" -#: build/serializers.py:739 +#: build/serializers.py:783 msgid "Accept that stock items have not been fully allocated to this build order" msgstr "Chấp nhận hàng hóa không được phân bổ đầy đủ vào đơn đặt bản dựng này" -#: build/serializers.py:749 templates/js/translated/build.js:316 +#: build/serializers.py:793 templates/js/translated/build.js:319 msgid "Required stock has not been fully allocated" msgstr "Kho được yêu cầu chưa được phân bổ hết không gian" -#: build/serializers.py:754 order/serializers.py:345 order/serializers.py:1365 +#: build/serializers.py:798 order/serializers.py:430 order/serializers.py:1491 msgid "Accept Incomplete" msgstr "Chấp nhận không hoàn thành" -#: build/serializers.py:755 +#: build/serializers.py:799 msgid "Accept that the required number of build outputs have not been completed" msgstr "Chấp nhận số yêu cầu của đầu ra bản dựng chưa được hoàn thành" -#: build/serializers.py:765 templates/js/translated/build.js:320 +#: build/serializers.py:809 templates/js/translated/build.js:323 msgid "Required build quantity has not been completed" msgstr "Số lượng bản dựng được yêu cầu chưa được hoàn thành" -#: build/serializers.py:774 +#: build/serializers.py:818 msgid "Build order has open child build orders" -msgstr "" +msgstr "Tạo đơn hàng có các đơn hàng đang mở" -#: build/serializers.py:777 +#: build/serializers.py:821 msgid "Build order must be in production state" -msgstr "" +msgstr "Tạo đơn hàng phải ở trạng thái sản xuất." -#: build/serializers.py:780 templates/js/translated/build.js:304 +#: build/serializers.py:824 templates/js/translated/build.js:307 msgid "Build order has incomplete outputs" msgstr "Đơn đặt bản dựng có đầu ra chưa hoàn thiện" -#: build/serializers.py:818 +#: build/serializers.py:862 msgid "Build Line" msgstr "Lộ giới" -#: build/serializers.py:828 +#: build/serializers.py:872 msgid "Build output" msgstr "Đầu ra bản dựng" -#: build/serializers.py:836 +#: build/serializers.py:880 msgid "Build output must point to the same build" msgstr "Đầu ra bản dựng phải chỉ đến bản dựng tương ứng" -#: build/serializers.py:872 +#: build/serializers.py:916 msgid "Build Line Item" msgstr "Mục chi tiết bản dựng" -#: build/serializers.py:886 +#: build/serializers.py:930 msgid "bom_item.part must point to the same part as the build order" msgstr "bom_item.part phải trỏ đến phần tương tự của đơn đặt bản dựng" -#: build/serializers.py:901 stock/serializers.py:1294 +#: build/serializers.py:945 stock/serializers.py:1325 msgid "Item must be in stock" msgstr "Hàng hóa phải trong kho" -#: build/serializers.py:949 order/serializers.py:1351 +#: build/serializers.py:993 order/serializers.py:1477 #, python-brace-format msgid "Available quantity ({q}) exceeded" msgstr "Số lượng có sẵn ({q}) đã bị vượt quá" -#: build/serializers.py:955 +#: build/serializers.py:999 msgid "Build output must be specified for allocation of tracked parts" msgstr "Đầu ra bản dựng phải được xác định cho việc phân sản phẩm được theo dõi" -#: build/serializers.py:962 +#: build/serializers.py:1006 msgid "Build output cannot be specified for allocation of untracked parts" msgstr "Đầu ra bản dựng không thể chỉ định cho việc phân sản phẩm chưa được theo dõi" -#: build/serializers.py:986 order/serializers.py:1610 +#: build/serializers.py:1030 order/serializers.py:1750 msgid "Allocation items must be provided" msgstr "Hàng hóa phân bổ phải được cung cấp" -#: build/serializers.py:1049 +#: build/serializers.py:1093 msgid "Stock location where parts are to be sourced (leave blank to take from any location)" msgstr "Vị trí kho nơi sản phẩm được lấy ra (để trống để lấy từ bất kỳ vị trí nào)" -#: build/serializers.py:1057 +#: build/serializers.py:1101 msgid "Exclude Location" msgstr "Ngoại trừ vị trí" -#: build/serializers.py:1058 +#: build/serializers.py:1102 msgid "Exclude stock items from this selected location" msgstr "Không bao gồm hàng trong kho từ vị trí đã chọn này" -#: build/serializers.py:1063 +#: build/serializers.py:1107 msgid "Interchangeable Stock" msgstr "Kho trao đổi" -#: build/serializers.py:1064 +#: build/serializers.py:1108 msgid "Stock items in multiple locations can be used interchangeably" msgstr "Hàng trong kho thuộc nhiều vị trí có thể dùng thay thế được cho nhau" -#: build/serializers.py:1069 +#: build/serializers.py:1113 msgid "Substitute Stock" msgstr "Kho thay thế" -#: build/serializers.py:1070 +#: build/serializers.py:1114 msgid "Allow allocation of substitute parts" msgstr "Cho phép phân kho sản phẩm thay thế" -#: build/serializers.py:1075 +#: build/serializers.py:1119 msgid "Optional Items" msgstr "Mục tùy chọn" -#: build/serializers.py:1076 +#: build/serializers.py:1120 msgid "Allocate optional BOM items to build order" msgstr "Phân bổ các mục hóa đơn vật liệu tùy chọn đến đơn đặt bản dựng" -#: build/serializers.py:1098 +#: build/serializers.py:1143 msgid "Failed to start auto-allocation task" -msgstr "" +msgstr "Không thể khởi động tác vụ phân bổ tự động." -#: build/serializers.py:1181 +#: build/serializers.py:1226 stock/serializers.py:585 msgid "Supplier Part Number" -msgstr "" +msgstr "Số hiệu hàng hoá nhà cung cấp" -#: build/serializers.py:1182 company/models.py:506 +#: build/serializers.py:1227 company/models.py:503 stock/serializers.py:591 msgid "Manufacturer Part Number" msgstr "Mã số nhà sản xuất" -#: build/serializers.py:1183 stock/admin.py:53 stock/admin.py:175 -#: stock/serializers.py:457 +#: build/serializers.py:1228 stock/admin.py:53 stock/admin.py:176 +#: stock/serializers.py:467 msgid "Location Name" msgstr "Tên địa điểm" -#: build/serializers.py:1184 +#: build/serializers.py:1229 build/serializers.py:1327 msgid "Build Reference" -msgstr "" +msgstr "Tạo liên quan" -#: build/serializers.py:1185 +#: build/serializers.py:1230 msgid "BOM Reference" -msgstr "" +msgstr "BOM liên quan" -#: build/serializers.py:1186 company/models.py:852 -#: company/templates/company/supplier_part.html:160 order/serializers.py:690 -#: stock/admin.py:228 stock/models.py:818 stock/serializers.py:1579 -#: stock/templates/stock/item_base.html:240 -#: templates/js/translated/company.js:1646 -#: templates/js/translated/purchase_order.js:1169 -#: templates/js/translated/purchase_order.js:1332 +#: build/serializers.py:1231 company/models.py:849 +#: company/templates/company/supplier_part.html:161 order/serializers.py:775 +#: stock/admin.py:229 stock/models.py:895 stock/serializers.py:1610 +#: stock/templates/stock/item_base.html:237 +#: templates/js/translated/company.js:1647 +#: templates/js/translated/purchase_order.js:1152 +#: templates/js/translated/purchase_order.js:1315 #: templates/js/translated/stock.js:1214 templates/js/translated/stock.js:1246 -#: templates/js/translated/stock.js:2509 +#: templates/js/translated/stock.js:2510 msgid "Packaging" msgstr "Đóng gói" -#: build/serializers.py:1189 part/admin.py:39 part/admin.py:398 -#: part/models.py:4101 part/stocktake.py:218 stock/admin.py:152 +#: build/serializers.py:1234 part/admin.py:39 part/admin.py:398 +#: part/models.py:4159 part/stocktake.py:218 stock/admin.py:153 msgid "Part ID" msgstr "ID sản phẩm" -#: build/serializers.py:1191 build/serializers.py:1280 part/admin.py:402 -#: part/models.py:4103 +#: build/serializers.py:1236 build/serializers.py:1332 part/admin.py:402 +#: part/models.py:4161 msgid "Part IPN" msgstr "IPN sản phẩm" -#: build/serializers.py:1192 build/serializers.py:1282 part/admin.py:45 +#: build/serializers.py:1237 build/serializers.py:1334 part/admin.py:45 #: part/stocktake.py:220 msgid "Part Description" msgstr "Mô tả sản phẩm" -#: build/serializers.py:1195 +#: build/serializers.py:1240 msgid "BOM Part ID" -msgstr "" +msgstr "ID hàng hoá BOM" -#: build/serializers.py:1196 +#: build/serializers.py:1241 msgid "BOM Part Name" -msgstr "" +msgstr "Tên hàng hoá BOM" -#: build/serializers.py:1199 +#: build/serializers.py:1244 #: report/templates/report/inventree_return_order_report.html:25 -#: report/templates/report/inventree_test_report.html:88 stock/models.py:845 -#: stock/serializers.py:151 stock/templates/stock/item_base.html:311 -#: templates/js/translated/build.js:520 templates/js/translated/build.js:1540 -#: templates/js/translated/build.js:2527 -#: templates/js/translated/model_renderers.js:231 +#: report/templates/report/inventree_sales_order_shipment_report.html:45 +#: report/templates/report/inventree_test_report.html:88 stock/models.py:922 +#: stock/serializers.py:152 stock/templates/stock/item_base.html:308 +#: templates/js/translated/build.js:523 templates/js/translated/build.js:1543 +#: templates/js/translated/build.js:2534 +#: templates/js/translated/model_renderers.js:234 #: templates/js/translated/return_order.js:539 #: templates/js/translated/return_order.js:722 -#: templates/js/translated/sales_order.js:315 -#: templates/js/translated/sales_order.js:1647 -#: templates/js/translated/sales_order.js:1732 +#: templates/js/translated/sales_order.js:1628 +#: templates/js/translated/sales_order.js:1713 #: templates/js/translated/stock.js:602 msgid "Serial Number" msgstr "Số sê-ri" -#: build/serializers.py:1212 stock/serializers.py:593 -#: templates/js/translated/build.js:1017 templates/js/translated/build.js:1164 -#: templates/js/translated/build.js:2516 +#: build/serializers.py:1257 stock/serializers.py:620 +#: templates/js/translated/build.js:1020 templates/js/translated/build.js:1167 +#: templates/js/translated/build.js:2523 msgid "Allocated Quantity" -msgstr "" +msgstr "Số lượng đã phân bổ" -#: build/serializers.py:1213 stock/templates/stock/item_base.html:340 +#: build/serializers.py:1258 stock/templates/stock/item_base.html:337 msgid "Available Quantity" msgstr "Số lượng sẵn có" -#: build/serializers.py:1283 +#: build/serializers.py:1335 msgid "Part Category ID" -msgstr "" +msgstr "ID danh mục hàng hoá" -#: build/serializers.py:1284 +#: build/serializers.py:1336 msgid "Part Category Name" -msgstr "" +msgstr "Tên danh mục hàng hoá" -#: build/serializers.py:1291 common/models.py:1513 part/admin.py:113 -#: part/models.py:1166 templates/js/translated/table_filters.js:150 +#: build/serializers.py:1345 common/models.py:1582 part/admin.py:113 +#: part/models.py:1227 templates/js/translated/build.js:2738 +#: templates/js/translated/table_filters.js:150 #: templates/js/translated/table_filters.js:230 #: templates/js/translated/table_filters.js:783 msgid "Trackable" msgstr "Có thể theo dõi" -#: build/serializers.py:1292 +#: build/serializers.py:1346 msgid "Inherited" -msgstr "" +msgstr "Được kế thừa" -#: build/serializers.py:1293 part/models.py:4313 +#: build/serializers.py:1347 part/models.py:4370 #: part/templates/part/upload_bom.html:56 templates/js/translated/bom.js:1046 -#: templates/js/translated/build.js:2711 +#: templates/js/translated/build.js:2720 msgid "Allow Variants" msgstr "Cho phép biến thể" -#: build/serializers.py:1297 part/models.py:4110 part/models.py:4584 +#: build/serializers.py:1351 part/models.py:4168 part/models.py:4646 #: stock/api.py:794 msgid "BOM Item" msgstr "Mục BOM" -#: build/serializers.py:1306 build/templates/build/detail.html:236 +#: build/serializers.py:1370 build/templates/build/detail.html:236 #: build/templates/build/sidebar.html:16 templates/js/translated/index.js:130 msgid "Allocated Stock" -msgstr "" +msgstr "Phân kho" -#: build/serializers.py:1311 order/serializers.py:1175 part/admin.py:132 -#: part/bom.py:181 part/serializers.py:899 part/serializers.py:1602 -#: part/templates/part/part_base.html:210 templates/js/translated/bom.js:1208 -#: templates/js/translated/build.js:2804 templates/js/translated/part.js:712 +#: build/serializers.py:1375 order/serializers.py:1209 part/admin.py:132 +#: part/bom.py:186 part/serializers.py:951 part/serializers.py:1660 +#: part/templates/part/part_base.html:211 templates/js/translated/bom.js:1208 +#: templates/js/translated/build.js:2822 templates/js/translated/part.js:712 #: templates/js/translated/part.js:2155 #: templates/js/translated/table_filters.js:177 msgid "On Order" msgstr "Bật đơn hàng" -#: build/serializers.py:1316 order/serializers.py:1176 part/serializers.py:1604 -#: templates/js/translated/build.js:2808 +#: build/serializers.py:1380 order/serializers.py:1210 part/serializers.py:1662 +#: templates/js/translated/build.js:2826 #: templates/js/translated/table_filters.js:367 msgid "In Production" msgstr "Đang sản xuất" -#: build/serializers.py:1321 part/bom.py:180 part/serializers.py:1629 -#: part/templates/part/part_base.html:192 -#: templates/js/translated/sales_order.js:1929 +#: build/serializers.py:1384 part/serializers.py:958 +msgid "External Stock" +msgstr "Kho ngoài" + +#: build/serializers.py:1385 part/bom.py:185 part/serializers.py:1687 +#: part/templates/part/part_base.html:193 +#: templates/js/translated/sales_order.js:1910 msgid "Available Stock" msgstr "Số hàng tồn" -#: build/serializers.py:1325 +#: build/serializers.py:1386 msgid "Available Substitute Stock" -msgstr "" +msgstr "Kho hàng thay thế" -#: build/serializers.py:1326 +#: build/serializers.py:1387 msgid "Available Variant Stock" -msgstr "" +msgstr "Hàng tồn kho có sẵn" -#: build/serializers.py:1327 -msgid "Total Available Stock" -msgstr "" - -#: build/serializers.py:1328 part/serializers.py:906 -msgid "External Stock" -msgstr "" - -#: build/status_codes.py:11 generic/states/tests.py:17 order/status_codes.py:12 -#: order/status_codes.py:42 order/status_codes.py:74 order/status_codes.py:98 +#: build/status_codes.py:11 generic/states/tests.py:21 +#: generic/states/tests.py:131 order/status_codes.py:12 +#: order/status_codes.py:44 order/status_codes.py:76 order/status_codes.py:102 #: templates/js/translated/table_filters.js:601 msgid "Pending" msgstr "Đợi duyệt" @@ -1722,21 +1750,21 @@ msgstr "Đợi duyệt" msgid "Production" msgstr "Sản xuất" -#: build/status_codes.py:13 order/status_codes.py:14 order/status_codes.py:49 -#: order/status_codes.py:79 +#: build/status_codes.py:13 order/status_codes.py:14 order/status_codes.py:51 +#: order/status_codes.py:81 msgid "On Hold" -msgstr "" +msgstr "Chờ" -#: build/status_codes.py:14 order/status_codes.py:16 order/status_codes.py:51 -#: order/status_codes.py:82 +#: build/status_codes.py:14 order/status_codes.py:16 order/status_codes.py:53 +#: order/status_codes.py:84 msgid "Cancelled" msgstr "Đã hủy" -#: build/status_codes.py:15 generic/states/tests.py:19 importer/models.py:509 -#: importer/status_codes.py:19 order/status_codes.py:15 -#: order/status_codes.py:50 order/status_codes.py:81 -#: order/templates/order/order_base.html:163 -#: order/templates/order/sales_order_base.html:168 report/models.py:443 +#: build/status_codes.py:15 generic/states/tests.py:23 importer/models.py:518 +#: importer/status_codes.py:27 order/status_codes.py:15 +#: order/status_codes.py:52 order/status_codes.py:83 +#: order/templates/order/order_base.html:172 +#: order/templates/order/sales_order_base.html:169 report/models.py:451 msgid "Complete" msgstr "Hoàn thành" @@ -1744,165 +1772,162 @@ msgstr "Hoàn thành" msgid "Stock required for build order" msgstr "Kho được yêu cầu cho đặt hàng bản dựng" -#: build/tasks.py:201 +#: build/tasks.py:260 msgid "Overdue Build Order" msgstr "Đơn đặt bản dựng quá hạn" -#: build/tasks.py:206 +#: build/tasks.py:265 #, python-brace-format msgid "Build order {bo} is now overdue" msgstr "Đặt hàng bản dựng {bo} đang quá hạn" -#: build/templates/build/build_base.html:18 +#: build/templates/build/build_base.html:19 msgid "Part thumbnail" msgstr "Ảnh thu nhỏ sản phẩm" -#: build/templates/build/build_base.html:38 -#: company/templates/company/supplier_part.html:35 -#: order/templates/order/order_base.html:29 -#: order/templates/order/return_order_base.html:38 -#: order/templates/order/sales_order_base.html:38 -#: part/templates/part/part_base.html:41 -#: stock/templates/stock/item_base.html:40 -#: stock/templates/stock/location.html:52 +#: build/templates/build/build_base.html:39 +#: company/templates/company/supplier_part.html:36 +#: order/templates/order/order_base.html:30 +#: order/templates/order/return_order_base.html:39 +#: order/templates/order/sales_order_base.html:39 +#: part/templates/part/part_base.html:42 +#: stock/templates/stock/item_base.html:41 +#: stock/templates/stock/location.html:53 #: templates/js/translated/filters.js:338 msgid "Barcode actions" msgstr "Chức năng mã vạch" -#: build/templates/build/build_base.html:42 -#: company/templates/company/supplier_part.html:39 -#: order/templates/order/order_base.html:33 -#: order/templates/order/return_order_base.html:42 -#: order/templates/order/sales_order_base.html:42 -#: part/templates/part/part_base.html:44 -#: stock/templates/stock/item_base.html:44 -#: stock/templates/stock/location.html:54 templates/qr_button.html:1 +#: build/templates/build/build_base.html:43 +#: company/templates/company/supplier_part.html:40 +#: order/templates/order/order_base.html:34 +#: order/templates/order/return_order_base.html:43 +#: order/templates/order/sales_order_base.html:43 +#: part/templates/part/part_base.html:45 +#: stock/templates/stock/item_base.html:45 +#: stock/templates/stock/location.html:55 templates/qr_button.html:1 msgid "Show QR Code" msgstr "Hiển thị mã QR" -#: build/templates/build/build_base.html:45 -#: company/templates/company/supplier_part.html:41 -#: order/templates/order/order_base.html:36 -#: order/templates/order/return_order_base.html:45 -#: order/templates/order/sales_order_base.html:45 -#: part/templates/part/part_base.html:47 -#: stock/templates/stock/item_base.html:47 -#: stock/templates/stock/location.html:56 +#: build/templates/build/build_base.html:46 +#: company/templates/company/supplier_part.html:42 +#: order/templates/order/order_base.html:37 +#: order/templates/order/return_order_base.html:46 +#: order/templates/order/sales_order_base.html:46 +#: part/templates/part/part_base.html:48 +#: stock/templates/stock/item_base.html:48 +#: stock/templates/stock/location.html:57 #: templates/js/translated/barcode.js:527 #: templates/js/translated/barcode.js:532 msgid "Unlink Barcode" msgstr "Gỡ mã vạch" -#: build/templates/build/build_base.html:47 -#: company/templates/company/supplier_part.html:43 -#: order/templates/order/order_base.html:38 -#: order/templates/order/return_order_base.html:47 -#: order/templates/order/sales_order_base.html:47 -#: part/templates/part/part_base.html:49 -#: stock/templates/stock/item_base.html:49 -#: stock/templates/stock/location.html:58 +#: build/templates/build/build_base.html:48 +#: company/templates/company/supplier_part.html:44 +#: order/templates/order/order_base.html:39 +#: order/templates/order/return_order_base.html:48 +#: order/templates/order/sales_order_base.html:48 +#: part/templates/part/part_base.html:50 +#: stock/templates/stock/item_base.html:50 +#: stock/templates/stock/location.html:59 msgid "Link Barcode" msgstr "Liên kết mã vạch" -#: build/templates/build/build_base.html:56 -#: order/templates/order/order_base.html:46 -#: order/templates/order/return_order_base.html:55 -#: order/templates/order/sales_order_base.html:55 +#: build/templates/build/build_base.html:57 +#: order/templates/order/order_base.html:47 +#: order/templates/order/return_order_base.html:56 +#: order/templates/order/sales_order_base.html:56 msgid "Print actions" msgstr "Chức năng in ấn" -#: build/templates/build/build_base.html:60 +#: build/templates/build/build_base.html:61 msgid "Print build order report" msgstr "Báo cáo in đơn đặt bản dựng" -#: build/templates/build/build_base.html:67 +#: build/templates/build/build_base.html:68 msgid "Build actions" msgstr "Chức năng bản dựng" -#: build/templates/build/build_base.html:71 +#: build/templates/build/build_base.html:72 msgid "Edit Build" msgstr "Sửa bản dựng" -#: build/templates/build/build_base.html:73 +#: build/templates/build/build_base.html:74 msgid "Duplicate Build" msgstr "Nhân bản bản dựng" -#: build/templates/build/build_base.html:76 +#: build/templates/build/build_base.html:77 msgid "Hold Build" -msgstr "" +msgstr "Chờ tạo" -#: build/templates/build/build_base.html:79 +#: build/templates/build/build_base.html:80 msgid "Cancel Build" msgstr "Hủy bản dựng" -#: build/templates/build/build_base.html:82 +#: build/templates/build/build_base.html:83 msgid "Delete Build" msgstr "Xóa bản dựng" -#: build/templates/build/build_base.html:87 -msgid "Isueue Build" -msgstr "" - #: build/templates/build/build_base.html:88 +#: build/templates/build/build_base.html:89 msgid "Issue Build" -msgstr "" +msgstr "Xác nhận" -#: build/templates/build/build_base.html:91 #: build/templates/build/build_base.html:92 +#: build/templates/build/build_base.html:93 msgid "Complete Build" msgstr "Bản dựng hoàn thiện" -#: build/templates/build/build_base.html:115 +#: build/templates/build/build_base.html:116 msgid "Build Description" msgstr "Mô tả bản dựng" -#: build/templates/build/build_base.html:125 +#: build/templates/build/build_base.html:126 msgid "No build outputs have been created for this build order" msgstr "Không có đầu ra bản dựng đã được tạo cho đơn đặt bản dựng này" -#: build/templates/build/build_base.html:132 +#: build/templates/build/build_base.html:133 msgid "Build Order is ready to mark as completed" msgstr "Đơn đặt bản dựng đã được đánh dấu hoàn thành" -#: build/templates/build/build_base.html:137 +#: build/templates/build/build_base.html:138 msgid "Build Order cannot be completed as outstanding outputs remain" msgstr "Đơn đặt bản dựng không thể hoàn thiện bởi vì những đầu ra nổi bật còn tồn tại" -#: build/templates/build/build_base.html:142 +#: build/templates/build/build_base.html:143 msgid "Required build quantity has not yet been completed" msgstr "Số lượng bản dựng được yêu cầu chưa được hoàn thành" -#: build/templates/build/build_base.html:147 +#: build/templates/build/build_base.html:148 msgid "Stock has not been fully allocated to this Build Order" msgstr "Kho không được phân bổ đầy đủ với yêu cầu bản dựng này" -#: build/templates/build/build_base.html:168 -#: build/templates/build/detail.html:138 order/models.py:308 -#: order/models.py:1391 order/serializers.py:174 -#: order/templates/order/order_base.html:191 -#: order/templates/order/return_order_base.html:167 -#: order/templates/order/sales_order_base.html:199 +#: build/templates/build/build_base.html:169 +#: build/templates/build/detail.html:138 order/models.py:315 +#: order/models.py:1408 order/serializers.py:254 +#: order/templates/order/order_base.html:200 +#: order/templates/order/return_order_base.html:168 +#: order/templates/order/sales_order_base.html:200 #: report/templates/report/inventree_build_order_report.html:125 -#: templates/js/translated/build.js:2411 templates/js/translated/part.js:1837 -#: templates/js/translated/purchase_order.js:1809 -#: templates/js/translated/purchase_order.js:2217 +#: templates/js/translated/build.js:2414 templates/js/translated/part.js:1837 +#: templates/js/translated/purchase_order.js:1793 +#: templates/js/translated/purchase_order.js:2201 #: templates/js/translated/return_order.js:346 #: templates/js/translated/return_order.js:749 -#: templates/js/translated/sales_order.js:871 -#: templates/js/translated/sales_order.js:1903 +#: templates/js/translated/sales_order.js:830 +#: templates/js/translated/sales_order.js:1884 msgid "Target Date" msgstr "Ngày mục tiêu" -#: build/templates/build/build_base.html:173 +#: build/templates/build/build_base.html:174 #, python-format msgid "This build was due on %(target)s" msgstr "Bản dựng đã đến hạn vào %(target)s" -#: build/templates/build/build_base.html:173 -#: build/templates/build/build_base.html:230 -#: order/templates/order/order_base.html:127 -#: order/templates/order/return_order_base.html:120 -#: order/templates/order/sales_order_base.html:129 +#: build/templates/build/build_base.html:174 +#: build/templates/build/build_base.html:231 +#: order/templates/order/order_base.html:128 +#: order/templates/order/return_order_base.html:121 +#: order/templates/order/sales_order_base.html:130 #: templates/js/translated/table_filters.js:97 #: templates/js/translated/table_filters.js:545 #: templates/js/translated/table_filters.js:629 @@ -1910,51 +1935,52 @@ msgstr "Bản dựng đã đến hạn vào %(target)s" msgid "Overdue" msgstr "Quá hạn" -#: build/templates/build/build_base.html:185 +#: build/templates/build/build_base.html:186 #: build/templates/build/detail.html:67 build/templates/build/sidebar.html:13 msgid "Completed Outputs" msgstr "Đầu ra hoàn thiện" -#: build/templates/build/build_base.html:198 -#: build/templates/build/detail.html:101 order/api.py:1406 order/models.py:892 -#: order/models.py:1650 order/models.py:1765 order/models.py:1924 -#: order/templates/order/sales_order_base.html:9 -#: order/templates/order/sales_order_base.html:28 +#: build/templates/build/build_base.html:199 +#: build/templates/build/detail.html:101 order/api.py:1528 order/models.py:914 +#: order/models.py:1666 order/models.py:1794 order/models.py:1957 +#: order/templates/order/sales_order_base.html:10 +#: order/templates/order/sales_order_base.html:29 #: report/templates/report/inventree_build_order_report.html:135 #: report/templates/report/inventree_sales_order_report.html:14 -#: stock/templates/stock/item_base.html:369 +#: report/templates/report/inventree_sales_order_shipment_report.html:15 +#: stock/templates/stock/item_base.html:366 #: templates/email/overdue_sales_order.html:15 -#: templates/js/translated/pricing.js:929 -#: templates/js/translated/sales_order.js:805 -#: templates/js/translated/sales_order.js:1028 -#: templates/js/translated/stock.js:3008 +#: templates/js/translated/pricing.js:927 +#: templates/js/translated/sales_order.js:764 +#: templates/js/translated/sales_order.js:1001 +#: templates/js/translated/stock.js:3009 msgid "Sales Order" msgstr "Đơn đặt hàng" -#: build/templates/build/build_base.html:219 -#: build/templates/build/detail.html:94 templates/js/translated/build.js:2328 +#: build/templates/build/build_base.html:220 +#: build/templates/build/detail.html:94 templates/js/translated/build.js:2331 msgid "Priority" msgstr "Độ ưu tiên" -#: build/templates/build/build_base.html:267 +#: build/templates/build/build_base.html:268 msgid "Issue Build Order" -msgstr "" +msgstr "Xác nhận đơn hàng" -#: build/templates/build/build_base.html:271 +#: build/templates/build/build_base.html:272 msgid "Issue this Build Order?" -msgstr "" +msgstr "Xác nhận đơn hàng này?" -#: build/templates/build/build_base.html:302 +#: build/templates/build/build_base.html:303 msgid "Delete Build Order" -msgstr "" +msgstr "Xoá đơn hàng" -#: build/templates/build/build_base.html:312 +#: build/templates/build/build_base.html:313 msgid "Build Order QR Code" -msgstr "" +msgstr "Mã QR đơn hàng" -#: build/templates/build/build_base.html:324 +#: build/templates/build/build_base.html:325 msgid "Link Barcode to Build Order" -msgstr "" +msgstr "Liên kế mã vạch với đơn hàng" #: build/templates/build/detail.html:15 msgid "Build Details" @@ -1968,8 +1994,9 @@ msgstr "Nguồn kho" msgid "Stock can be taken from any available location." msgstr "Kho có thể được lấy từ bất kỳ địa điểm nào." -#: build/templates/build/detail.html:49 order/models.py:1532 -#: templates/js/translated/purchase_order.js:2259 +#: build/templates/build/detail.html:49 order/models.py:548 +#: order/models.py:1548 order/templates/order/order_base.html:135 +#: templates/js/translated/purchase_order.js:2243 msgid "Destination" msgstr "Đích đến" @@ -1981,23 +2008,24 @@ msgstr "Địa điểm đích chưa được xác định" msgid "Allocated Parts" msgstr "Sản phẩm đã phân bổ" -#: build/templates/build/detail.html:80 stock/admin.py:162 -#: stock/templates/stock/item_base.html:162 -#: templates/js/translated/build.js:1553 -#: templates/js/translated/model_renderers.js:242 -#: templates/js/translated/purchase_order.js:1326 +#: build/templates/build/detail.html:80 +#: report/templates/report/inventree_sales_order_shipment_report.html:47 +#: stock/admin.py:163 stock/templates/stock/item_base.html:159 +#: templates/js/translated/build.js:1556 +#: templates/js/translated/model_renderers.js:245 +#: templates/js/translated/purchase_order.js:1309 #: templates/js/translated/stock.js:1139 templates/js/translated/stock.js:1240 -#: templates/js/translated/stock.js:2275 templates/js/translated/stock.js:3211 +#: templates/js/translated/stock.js:2276 templates/js/translated/stock.js:3212 #: templates/js/translated/table_filters.js:320 #: templates/js/translated/table_filters.js:411 msgid "Batch" msgstr "Hàng loạt" #: build/templates/build/detail.html:133 -#: order/templates/order/order_base.html:178 -#: order/templates/order/return_order_base.html:154 -#: order/templates/order/sales_order_base.html:193 -#: templates/js/translated/build.js:2371 +#: order/templates/order/order_base.html:187 +#: order/templates/order/return_order_base.html:155 +#: order/templates/order/sales_order_base.html:194 +#: templates/js/translated/build.js:2374 msgid "Created" msgstr "Đã tạo" @@ -2005,8 +2033,8 @@ msgstr "Đã tạo" msgid "No target date set" msgstr "Chưa đặt ngày mục tiêu" -#: build/templates/build/detail.html:149 -#: order/templates/order/sales_order_base.html:209 +#: build/templates/build/detail.html:149 order/api.py:794 +#: order/templates/order/sales_order_base.html:210 #: templates/js/translated/table_filters.js:692 msgid "Completed" msgstr "Đã hoàn thành" @@ -2021,7 +2049,7 @@ msgstr "Đơn đặt bản dựng con" #: build/templates/build/detail.html:177 msgid "Build Order Line Items" -msgstr "" +msgstr "Đơn hàng" #: build/templates/build/detail.html:181 msgid "Deallocate stock" @@ -2052,13 +2080,13 @@ msgid "Order required parts" msgstr "Đơn đặt yêu cầu sản phẩm" #: build/templates/build/detail.html:192 -#: templates/js/translated/purchase_order.js:795 +#: templates/js/translated/purchase_order.js:778 msgid "Order Parts" msgstr "Đặt hàng sản phẩm" #: build/templates/build/detail.html:205 msgid "Available stock has been filtered based on specified source location for this build order" -msgstr "" +msgstr "Tồn kho có sẵn đã được lọc dựa trên vị trí nguồn đã chỉ định cho đơn hàng này" #: build/templates/build/detail.html:215 msgid "Incomplete Build Outputs" @@ -2082,7 +2110,7 @@ msgstr "Đầu ra bản dựng hoàn thiện" #: build/templates/build/detail.html:273 msgid "Build test statistics" -msgstr "" +msgstr "Tạo kiểm định" #: build/templates/build/detail.html:288 build/templates/build/sidebar.html:27 #: company/templates/company/detail.html:229 @@ -2106,11 +2134,11 @@ msgstr "Ghi chép bản dựng" #: build/templates/build/detail.html:458 msgid "Allocation Complete" -msgstr "" +msgstr "Phân bổ hoàn thành" #: build/templates/build/detail.html:459 msgid "All lines have been fully allocated" -msgstr "" +msgstr "Tất cả đã được chỉ định đầy đủ" #: build/templates/build/index.html:18 part/templates/part/detail.html:335 msgid "New Build Order" @@ -2120,7 +2148,7 @@ msgstr "Tạo đơn đặt bản dựng" msgid "Build Order Details" msgstr "Chi tiết đơn đặt bản dựng" -#: build/templates/build/sidebar.html:8 order/serializers.py:82 +#: build/templates/build/sidebar.html:8 order/serializers.py:113 #: order/templates/order/po_sidebar.html:5 #: order/templates/order/return_order_detail.html:18 #: order/templates/order/so_sidebar.html:5 @@ -2137,45 +2165,40 @@ msgstr "Đầu ra chưa hoàn thiện" #: build/templates/build/sidebar.html:24 #: part/templates/part/part_sidebar.html:56 msgid "Test Statistics" -msgstr "" +msgstr "Kiểm định" -#: common/api.py:693 +#: common/api.py:725 msgid "Is Link" -msgstr "" +msgstr "Đường dẫn" -#: common/api.py:701 +#: common/api.py:733 msgid "Is File" -msgstr "" +msgstr "File" -#: common/api.py:744 +#: common/api.py:776 msgid "User does not have permission to delete these attachments" -msgstr "" +msgstr "Không có quyền xoá file đính kèm" -#: common/api.py:761 +#: common/api.py:793 msgid "User does not have permission to delete this attachment" -msgstr "" - -#: common/currency.py:132 -msgid "Invalid currency code" -msgstr "" +msgstr "Không có quyền xoá file đính kèm" #: common/currency.py:134 +msgid "Invalid currency code" +msgstr "Sai mã tiền tệ" + +#: common/currency.py:136 msgid "Duplicate currency code" -msgstr "" +msgstr "Trùng mã tiền tệ" -#: common/currency.py:139 +#: common/currency.py:141 msgid "No valid currency codes provided" -msgstr "" +msgstr "Mã tiền tệ không đúng" -#: common/currency.py:156 +#: common/currency.py:158 msgid "No plugin" msgstr "Không phần mở rộng" -#: common/files.py:63 -#, python-brace-format -msgid "Unsupported file format: {fmt}" -msgstr "Định dạng tệp không được hỗ trợ {fmt}" - #: common/files.py:65 msgid "Error reading file (invalid encoding)" msgstr "Lỗi đọc file (mã hóa không hợp lệ)" @@ -2192,1883 +2215,2039 @@ msgstr "Lỗi đọc file (kích thước không hợp lệ)" msgid "Error reading file (data could be corrupted)" msgstr "Lỗi đọc file (dữ liệu có thể bị hư hại)" -#: common/forms.py:12 +#: common/forms.py:12 common/forms.py:25 msgid "File" msgstr "Tệp" -#: common/forms.py:12 +#: common/forms.py:12 common/forms.py:26 msgid "Select file to upload" msgstr "Chọn tệp để tải lên" -#: common/forms.py:25 -msgid "{name.title()} File" -msgstr "Tập tin {name.title()}" - -#: common/forms.py:26 -#, python-brace-format -msgid "Select {name} file to upload" -msgstr "Chọn tập tin {name} để tải lên" - -#: common/models.py:86 +#: common/models.py:89 msgid "Updated" msgstr "Đã cập nhật" -#: common/models.py:87 +#: common/models.py:90 msgid "Timestamp of last update" msgstr "Nhãn thời gian của lần cập cuối cùng" -#: common/models.py:120 +#: common/models.py:123 msgid "Site URL is locked by configuration" -msgstr "" +msgstr "URL trang web đã bị khóa bởi cấu hình" -#: common/models.py:150 +#: common/models.py:153 msgid "Unique project code" msgstr "Mã dự án duy nhất" -#: common/models.py:157 +#: common/models.py:160 msgid "Project description" msgstr "Mô tả dự án" -#: common/models.py:166 +#: common/models.py:169 msgid "User or group responsible for this project" msgstr "Người dùng hoặc nhóm có trách nhiệm với dự án này" -#: common/models.py:783 -msgid "Settings key (must be unique - case insensitive)" -msgstr "Khóa thiết lập (phải duy nhất - phân biệt hoa thường)" +#: common/models.py:783 common/models.py:2236 common/models.py:2613 +msgid "Settings key" +msgstr "" #: common/models.py:787 msgid "Settings value" msgstr "Giá trị cài đặt" -#: common/models.py:839 +#: common/models.py:842 msgid "Chosen value is not a valid option" msgstr "Giá trị đã chọn không hợp lệ" -#: common/models.py:855 +#: common/models.py:858 msgid "Value must be a boolean value" msgstr "Giá trị phải là kiểu boolean" -#: common/models.py:863 +#: common/models.py:866 msgid "Value must be an integer value" msgstr "Giá trị phải là một số nguyên dương" -#: common/models.py:900 +#: common/models.py:874 +msgid "Value must be a valid number" +msgstr "" + +#: common/models.py:899 +msgid "Value does not pass validation checks" +msgstr "" + +#: common/models.py:921 msgid "Key string must be unique" msgstr "Chuỗi khóa phải duy nhất" -#: common/models.py:1132 +#: common/models.py:1189 msgid "No group" msgstr "Không có nhóm" -#: common/models.py:1231 +#: common/models.py:1288 msgid "Restart required" msgstr "Cần khởi động lại" -#: common/models.py:1233 +#: common/models.py:1290 msgid "A setting has been changed which requires a server restart" msgstr "Một thiết lập đã bị thay đổi yêu cầu khởi động lại máy chủ" -#: common/models.py:1240 +#: common/models.py:1297 msgid "Pending migrations" msgstr "Chuyển dữ liệu chờ xử lý" -#: common/models.py:1241 +#: common/models.py:1298 msgid "Number of pending database migrations" msgstr "Số đợt nâng cấp cơ sở dữ liệu chờ xử lý" -#: common/models.py:1246 +#: common/models.py:1303 msgid "Server Instance Name" msgstr "Tên thực thể máy chủ" -#: common/models.py:1248 +#: common/models.py:1305 msgid "String descriptor for the server instance" msgstr "Mô tả chuỗi cho thực thể máy chủ" -#: common/models.py:1252 +#: common/models.py:1309 msgid "Use instance name" msgstr "Sử dụng tên thực thể" -#: common/models.py:1253 +#: common/models.py:1310 msgid "Use the instance name in the title-bar" msgstr "Sử dụng tên thực thể trên thanh tiêu đề" -#: common/models.py:1258 +#: common/models.py:1315 msgid "Restrict showing `about`" msgstr "Cấm hiển thị `giới thiệu`" -#: common/models.py:1259 +#: common/models.py:1316 msgid "Show the `about` modal only to superusers" msgstr "Chỉ hiển thị cửa sổ `giới thiệu` với siêu người dùng" -#: common/models.py:1264 company/models.py:111 company/models.py:112 +#: common/models.py:1321 company/models.py:108 company/models.py:109 msgid "Company name" msgstr "Tên công ty" -#: common/models.py:1265 +#: common/models.py:1322 msgid "Internal company name" msgstr "Tên công ty nội bộ" -#: common/models.py:1269 +#: common/models.py:1326 msgid "Base URL" msgstr "URL cơ sở" -#: common/models.py:1270 +#: common/models.py:1327 msgid "Base URL for server instance" msgstr "URL cơ sở cho thực thể máy chủ" -#: common/models.py:1276 +#: common/models.py:1333 msgid "Default Currency" msgstr "Tiền tệ mặc định" -#: common/models.py:1277 +#: common/models.py:1334 msgid "Select base currency for pricing calculations" msgstr "Chọn tiền tệ chính khi tính giá" -#: common/models.py:1283 +#: common/models.py:1340 msgid "Supported Currencies" msgstr "" -#: common/models.py:1284 +#: common/models.py:1341 msgid "List of supported currency codes" msgstr "" -#: common/models.py:1290 +#: common/models.py:1347 msgid "Currency Update Interval" msgstr "Tần suất cập nhật tiền tệ" -#: common/models.py:1292 +#: common/models.py:1349 msgid "How often to update exchange rates (set to zero to disable)" msgstr "Mức độ thường xuyên để cập nhật tỉ giá hối đoái (điền 0 để tắt)" -#: common/models.py:1295 common/models.py:1351 common/models.py:1364 -#: common/models.py:1372 common/models.py:1381 common/models.py:1390 -#: common/models.py:1627 common/models.py:1649 common/models.py:1764 -#: common/models.py:2146 +#: common/models.py:1352 common/models.py:1408 common/models.py:1421 +#: common/models.py:1429 common/models.py:1438 common/models.py:1447 +#: common/models.py:1696 common/models.py:1718 common/models.py:1819 +#: common/models.py:2208 msgid "days" msgstr "ngày" -#: common/models.py:1299 +#: common/models.py:1356 msgid "Currency Update Plugin" msgstr "Phần mở rộng cập nhật tiền tệ" -#: common/models.py:1300 +#: common/models.py:1357 msgid "Currency update plugin to use" msgstr "Phần mở rộng cập nhật tiền tệ được sử dụng" -#: common/models.py:1305 +#: common/models.py:1362 msgid "Download from URL" msgstr "Tải về từ URL" -#: common/models.py:1307 +#: common/models.py:1364 msgid "Allow download of remote images and files from external URL" msgstr "Cho phép tải ảnh và tệp tin từ xa theo URL bên ngoài" -#: common/models.py:1313 +#: common/models.py:1370 msgid "Download Size Limit" msgstr "Giới hạn kích thước tải xuống" -#: common/models.py:1314 +#: common/models.py:1371 msgid "Maximum allowable download size for remote image" msgstr "Kích thước tải xuống tối đa với hình ảnh từ xa" -#: common/models.py:1320 +#: common/models.py:1377 msgid "User-agent used to download from URL" msgstr "User-agent được dùng để tải xuống theo URL" -#: common/models.py:1322 +#: common/models.py:1379 msgid "Allow to override the user-agent used to download images and files from external URL (leave blank for the default)" msgstr "Cho phép ghi đè user-agent được dùng để tải về hình ảnh và tệp tin từ xa theo URL bên ngoài (để trống nghĩa là dùng mặc định)" -#: common/models.py:1327 +#: common/models.py:1384 msgid "Strict URL Validation" msgstr "" -#: common/models.py:1328 +#: common/models.py:1385 msgid "Require schema specification when validating URLs" msgstr "" -#: common/models.py:1333 +#: common/models.py:1390 msgid "Require confirm" msgstr "Yêu cầu xác nhận" -#: common/models.py:1334 +#: common/models.py:1391 msgid "Require explicit user confirmation for certain action." msgstr "Yêu cầu người dùng xác nhận rõ ràng với một số chức năng nhất định." -#: common/models.py:1339 +#: common/models.py:1396 msgid "Tree Depth" msgstr "Cấp độ cây" -#: common/models.py:1341 +#: common/models.py:1398 msgid "Default tree depth for treeview. Deeper levels can be lazy loaded as they are needed." msgstr "Độ sâu cây mặc định cho màn hình cây. Cấp độ sâu hơn sẽ sử dụng kỹ thuật tải chậm nếu cần thiết." -#: common/models.py:1347 +#: common/models.py:1404 msgid "Update Check Interval" msgstr "Thời gian kiểm tra bản cập nhật" -#: common/models.py:1348 +#: common/models.py:1405 msgid "How often to check for updates (set to zero to disable)" msgstr "Mức độ thường xuyên để kiểm tra bản cập nhật (điền 0 để tắt)" -#: common/models.py:1354 +#: common/models.py:1411 msgid "Automatic Backup" msgstr "Sao lưu tự động" -#: common/models.py:1355 +#: common/models.py:1412 msgid "Enable automatic backup of database and media files" msgstr "Bật tính năng sao lưu tự động cơ sở dữ liệu và tệp tin đa phương tiện" -#: common/models.py:1360 +#: common/models.py:1417 msgid "Auto Backup Interval" msgstr "Khoảng thời gian sao lưu tự động" -#: common/models.py:1361 +#: common/models.py:1418 msgid "Specify number of days between automated backup events" msgstr "Xác định số ngày giữa các kỳ sao lưu tự động" -#: common/models.py:1367 +#: common/models.py:1424 msgid "Task Deletion Interval" msgstr "Khoảng thời gian xóa tác vụ" -#: common/models.py:1369 +#: common/models.py:1426 msgid "Background task results will be deleted after specified number of days" msgstr "Kết quả tác vụ chạy ngầm sẽ bị xóa sau số ngày được chỉ định" -#: common/models.py:1376 +#: common/models.py:1433 msgid "Error Log Deletion Interval" msgstr "Khoảng thời gian xóa nhật ký lỗi" -#: common/models.py:1378 +#: common/models.py:1435 msgid "Error logs will be deleted after specified number of days" msgstr "Nhật ký lỗi sẽ bị xóa sau số ngày được chỉ định" -#: common/models.py:1385 +#: common/models.py:1442 msgid "Notification Deletion Interval" msgstr "Khoảng thời gian xóa thông báo" -#: common/models.py:1387 +#: common/models.py:1444 msgid "User notifications will be deleted after specified number of days" msgstr "Thông báo sẽ bị xóa sau số ngày được chỉ định" -#: common/models.py:1394 templates/InvenTree/settings/sidebar.html:31 +#: common/models.py:1451 templates/InvenTree/settings/sidebar.html:31 msgid "Barcode Support" msgstr "Hỗ trợ mã vạch" -#: common/models.py:1395 +#: common/models.py:1452 msgid "Enable barcode scanner support in the web interface" msgstr "Bật hỗ trợ máy quét mã vạch trong giao diện web" -#: common/models.py:1400 +#: common/models.py:1457 +msgid "Store Barcode Results" +msgstr "" + +#: common/models.py:1458 +msgid "Store barcode scan results in the database" +msgstr "" + +#: common/models.py:1463 +msgid "Barcode Scans Maximum Count" +msgstr "" + +#: common/models.py:1464 +msgid "Maximum number of barcode scan results to store" +msgstr "" + +#: common/models.py:1469 msgid "Barcode Input Delay" msgstr "Độ trễ quét mã vạch" -#: common/models.py:1401 +#: common/models.py:1470 msgid "Barcode input processing delay time" msgstr "Thời gian trễ xử lý đầu đọc mã vạch" -#: common/models.py:1407 +#: common/models.py:1476 msgid "Barcode Webcam Support" msgstr "Hỗ trợ mã vạch qua webcam" -#: common/models.py:1408 +#: common/models.py:1477 msgid "Allow barcode scanning via webcam in browser" msgstr "Cho phép quét mã vạch qua webcam bên trong trình duyệt" -#: common/models.py:1413 +#: common/models.py:1482 msgid "Barcode Show Data" msgstr "" -#: common/models.py:1414 +#: common/models.py:1483 msgid "Display barcode data in browser as text" msgstr "" -#: common/models.py:1419 +#: common/models.py:1488 msgid "Barcode Generation Plugin" msgstr "" -#: common/models.py:1420 +#: common/models.py:1489 msgid "Plugin to use for internal barcode data generation" msgstr "" -#: common/models.py:1425 +#: common/models.py:1494 msgid "Part Revisions" msgstr "Phiên bản Sản phẩm" -#: common/models.py:1426 +#: common/models.py:1495 msgid "Enable revision field for Part" msgstr "Bật trường phiên bản cho sản phẩm" -#: common/models.py:1431 +#: common/models.py:1500 msgid "Assembly Revision Only" msgstr "" -#: common/models.py:1432 +#: common/models.py:1501 msgid "Only allow revisions for assembly parts" msgstr "" -#: common/models.py:1437 +#: common/models.py:1506 msgid "Allow Deletion from Assembly" msgstr "" -#: common/models.py:1438 +#: common/models.py:1507 msgid "Allow deletion of parts which are used in an assembly" msgstr "" -#: common/models.py:1443 +#: common/models.py:1512 msgid "IPN Regex" msgstr "Mẫu IPN" -#: common/models.py:1444 +#: common/models.py:1513 msgid "Regular expression pattern for matching Part IPN" msgstr "Mẫu dùng nhanh phổ biến dành cho tìm IPN sản phẩm" -#: common/models.py:1447 +#: common/models.py:1516 msgid "Allow Duplicate IPN" msgstr "Cho phép trùng IPN" -#: common/models.py:1448 +#: common/models.py:1517 msgid "Allow multiple parts to share the same IPN" msgstr "Cho phép nhiều sản phẩm dùng IPN giống nhau" -#: common/models.py:1453 +#: common/models.py:1522 msgid "Allow Editing IPN" msgstr "Cho phép sửa IPN" -#: common/models.py:1454 +#: common/models.py:1523 msgid "Allow changing the IPN value while editing a part" msgstr "Cho phép đổi giá trị IPN khi sửa một sản phẩm" -#: common/models.py:1459 +#: common/models.py:1528 msgid "Copy Part BOM Data" msgstr "Sao chép dữ liệu BOM của sản phẩm" -#: common/models.py:1460 +#: common/models.py:1529 msgid "Copy BOM data by default when duplicating a part" msgstr "Sao chép dữ liệu BOM mặc định khi nhân bản 1 sản phẩm" -#: common/models.py:1465 +#: common/models.py:1534 msgid "Copy Part Parameter Data" msgstr "Sao chép dữ liệu tham số sản phẩm" -#: common/models.py:1466 +#: common/models.py:1535 msgid "Copy parameter data by default when duplicating a part" msgstr "Sao chép dữ liệu tham số mặc định khi nhân bản 1 sản phẩm" -#: common/models.py:1471 +#: common/models.py:1540 msgid "Copy Part Test Data" msgstr "Chép thông tin kiểm thử sản phẩm" -#: common/models.py:1472 +#: common/models.py:1541 msgid "Copy test data by default when duplicating a part" msgstr "Sao chép dữ liệu kiểm thử mặc định khi nhân bản 1 sản phẩm" -#: common/models.py:1477 +#: common/models.py:1546 msgid "Copy Category Parameter Templates" msgstr "Sao chéo mẫu tham số danh mục" -#: common/models.py:1478 +#: common/models.py:1547 msgid "Copy category parameter templates when creating a part" msgstr "Sao chéo mẫu tham số danh mục khi tạo 1 sản phẩm" -#: common/models.py:1483 part/admin.py:108 part/models.py:3945 -#: report/models.py:293 report/models.py:360 report/serializers.py:90 -#: report/serializers.py:131 stock/serializers.py:232 +#: common/models.py:1552 part/admin.py:108 part/models.py:4003 +#: report/models.py:301 report/models.py:368 report/serializers.py:91 +#: report/serializers.py:132 stock/serializers.py:233 #: templates/js/translated/table_filters.js:138 #: templates/js/translated/table_filters.js:775 msgid "Template" msgstr "Mẫu" -#: common/models.py:1484 +#: common/models.py:1553 msgid "Parts are templates by default" msgstr "Sản phẩm là mẫu bởi mặc định" -#: common/models.py:1490 +#: common/models.py:1559 msgid "Parts can be assembled from other components by default" msgstr "Sản phẩm có thể lắp giáp từ thành phần khác theo mặc định" -#: common/models.py:1495 part/admin.py:95 part/models.py:1160 -#: part/serializers.py:1596 templates/js/translated/table_filters.js:737 +#: common/models.py:1564 part/admin.py:95 part/models.py:1221 +#: part/serializers.py:1654 templates/js/translated/table_filters.js:737 msgid "Component" msgstr "Thành phần" -#: common/models.py:1496 +#: common/models.py:1565 msgid "Parts can be used as sub-components by default" msgstr "Sản phẩm có thể được sử dụng mặc định như thành phần phụ" -#: common/models.py:1501 part/admin.py:100 part/models.py:1178 +#: common/models.py:1570 part/admin.py:100 part/models.py:1239 msgid "Purchaseable" msgstr "Có thể mua" -#: common/models.py:1502 +#: common/models.py:1571 msgid "Parts are purchaseable by default" msgstr "Sản phẩm mặc định có thể mua được" -#: common/models.py:1507 part/admin.py:104 part/models.py:1184 +#: common/models.py:1576 part/admin.py:104 part/models.py:1245 #: templates/js/translated/table_filters.js:763 msgid "Salable" msgstr "Có thể bán" -#: common/models.py:1508 +#: common/models.py:1577 msgid "Parts are salable by default" msgstr "Sản phẩm mặc định có thể bán được" -#: common/models.py:1514 +#: common/models.py:1583 msgid "Parts are trackable by default" msgstr "Sản phẩm mặc định có thể theo dõi được" -#: common/models.py:1519 part/admin.py:117 part/models.py:1200 -#: part/templates/part/part_base.html:154 +#: common/models.py:1588 part/admin.py:117 part/models.py:1261 +#: part/templates/part/part_base.html:155 #: templates/js/translated/table_filters.js:142 #: templates/js/translated/table_filters.js:787 msgid "Virtual" msgstr "Ảo" -#: common/models.py:1520 +#: common/models.py:1589 msgid "Parts are virtual by default" msgstr "Sản phẩm mặc định là số hóa" -#: common/models.py:1525 +#: common/models.py:1594 msgid "Show Import in Views" msgstr "Hiển thị Nhập liệu trong khung xem" -#: common/models.py:1526 +#: common/models.py:1595 msgid "Display the import wizard in some part views" msgstr "Hiển thị đồ thuật nhập dữ liệu trong một số khung nhìn sản phẩm" -#: common/models.py:1531 +#: common/models.py:1600 msgid "Show related parts" msgstr "Hiển thị sản phẩm liên quan" -#: common/models.py:1532 +#: common/models.py:1601 msgid "Display related parts for a part" msgstr "Hiện sản phẩm liên quan cho 1 sản phẩm" -#: common/models.py:1537 +#: common/models.py:1606 msgid "Initial Stock Data" msgstr "Số liệu tồn kho ban đầu" -#: common/models.py:1538 +#: common/models.py:1607 msgid "Allow creation of initial stock when adding a new part" msgstr "Cho phép tạo tồn kho ban đầu khi thêm 1 sản phẩm mới" -#: common/models.py:1543 templates/js/translated/part.js:108 +#: common/models.py:1612 templates/js/translated/part.js:108 msgid "Initial Supplier Data" msgstr "Dữ liệu nhà cung cấp ban đầu" -#: common/models.py:1545 +#: common/models.py:1614 msgid "Allow creation of initial supplier data when adding a new part" msgstr "Cho phép tạo dữ liệu nhà cung cấp ban đầu khi thêm 1 sản phẩm mới" -#: common/models.py:1551 +#: common/models.py:1620 msgid "Part Name Display Format" msgstr "Định dạng tên sản phẩm hiển thị" -#: common/models.py:1552 +#: common/models.py:1621 msgid "Format to display the part name" msgstr "Định dạng để hiển thị tên sản phẩm" -#: common/models.py:1558 +#: common/models.py:1627 msgid "Part Category Default Icon" msgstr "Biểu tượng mặc định của danh mục sản phẩm" -#: common/models.py:1559 +#: common/models.py:1628 msgid "Part category default icon (empty means no icon)" msgstr "Biểu tượng mặc định của danh mục sản phẩm (để trống nghĩa là không có biểu tượng)" -#: common/models.py:1564 +#: common/models.py:1633 msgid "Enforce Parameter Units" msgstr "Bắt buộc đơn vị tham số" -#: common/models.py:1566 +#: common/models.py:1635 msgid "If units are provided, parameter values must match the specified units" msgstr "Nếu đơn vị được cung cấp, giá trị tham số phải phù hợp với các đơn vị xác định" -#: common/models.py:1572 +#: common/models.py:1641 msgid "Minimum Pricing Decimal Places" msgstr "Vị trí phần thập phân giá bán tối thiểu" -#: common/models.py:1574 +#: common/models.py:1643 msgid "Minimum number of decimal places to display when rendering pricing data" msgstr "Số vị trí thập phân tối thiểu cần hiển thị khi tạo dữ liệu giá" -#: common/models.py:1585 +#: common/models.py:1654 msgid "Maximum Pricing Decimal Places" msgstr "Vị trí phần thập phân giá bán tối đa" -#: common/models.py:1587 +#: common/models.py:1656 msgid "Maximum number of decimal places to display when rendering pricing data" msgstr "Số vị trí thập phân tối đa cần hiển thị khi tạo dữ liệu giá" -#: common/models.py:1598 +#: common/models.py:1667 msgid "Use Supplier Pricing" msgstr "Sử dụng giá bán nhà cung cấp" -#: common/models.py:1600 +#: common/models.py:1669 msgid "Include supplier price breaks in overall pricing calculations" msgstr "Bao gồm giá phá vỡ cả nhà cung cấp trong tính toán giá tổng thể" -#: common/models.py:1606 +#: common/models.py:1675 msgid "Purchase History Override" msgstr "Ghi đè lịch sử mua hàng" -#: common/models.py:1608 +#: common/models.py:1677 msgid "Historical purchase order pricing overrides supplier price breaks" msgstr "Giá đơn hàng đặt mua trước đó ghi đè giá phá vỡ của nhà cung cấp" -#: common/models.py:1614 +#: common/models.py:1683 msgid "Use Stock Item Pricing" msgstr "Sử dụng giá hàng hóa trong kho" -#: common/models.py:1616 +#: common/models.py:1685 msgid "Use pricing from manually entered stock data for pricing calculations" msgstr "Dùng giá bán từ dữ liệu kho nhập vào thủ công đối với bộ tính toán giá bán" -#: common/models.py:1622 +#: common/models.py:1691 msgid "Stock Item Pricing Age" msgstr "Tuổi giá kho hàng" -#: common/models.py:1624 +#: common/models.py:1693 msgid "Exclude stock items older than this number of days from pricing calculations" msgstr "Loại trừ hàng hóa trong kho cũ hơn số ngày ngày từ bảng tính giá bán" -#: common/models.py:1631 +#: common/models.py:1700 msgid "Use Variant Pricing" msgstr "Sử dụng giá biến thể" -#: common/models.py:1632 +#: common/models.py:1701 msgid "Include variant pricing in overall pricing calculations" msgstr "Bao gồm giá biến thể trong bộ tính toán giá tổng thể" -#: common/models.py:1637 +#: common/models.py:1706 msgid "Active Variants Only" msgstr "Chỉ các biến thể hoạt động" -#: common/models.py:1639 +#: common/models.py:1708 msgid "Only use active variant parts for calculating variant pricing" msgstr "Chỉ sử dụng sản phẩm biến thể hoạt động để tính toán giá bán biến thể" -#: common/models.py:1645 +#: common/models.py:1714 msgid "Pricing Rebuild Interval" msgstr "Tần suất tạo lại giá" -#: common/models.py:1647 +#: common/models.py:1716 msgid "Number of days before part pricing is automatically updated" msgstr "Số ngày trước khi giá sản phẩm được tự động cập nhật" -#: common/models.py:1654 +#: common/models.py:1723 msgid "Internal Prices" msgstr "Giá nội bộ" -#: common/models.py:1655 +#: common/models.py:1724 msgid "Enable internal prices for parts" msgstr "Bật giá nội bộ cho sản phẩm" -#: common/models.py:1660 +#: common/models.py:1729 msgid "Internal Price Override" msgstr "Ghi đè giá nội bộ" -#: common/models.py:1662 +#: common/models.py:1731 msgid "If available, internal prices override price range calculations" msgstr "Nếu khả dụng, giá nội bộ ghi đè tính toán khoảng giá" -#: common/models.py:1668 +#: common/models.py:1737 msgid "Enable label printing" msgstr "Bật in tem nhãn" -#: common/models.py:1669 +#: common/models.py:1738 msgid "Enable label printing from the web interface" msgstr "Bật chức năng in tem nhãn từ giao diện web" -#: common/models.py:1674 +#: common/models.py:1743 msgid "Label Image DPI" msgstr "DPI hỉnh ảnh tem nhãn" -#: common/models.py:1676 +#: common/models.py:1745 msgid "DPI resolution when generating image files to supply to label printing plugins" msgstr "Độ phân giải DPI khi tạo tệp hình ảnh để cung cấp cho plugin in ấn tem nhãn" -#: common/models.py:1682 +#: common/models.py:1751 msgid "Enable Reports" msgstr "Bật báo cáo" -#: common/models.py:1683 +#: common/models.py:1752 msgid "Enable generation of reports" msgstr "Cho phép tạo báo cáo" -#: common/models.py:1688 templates/stats.html:25 +#: common/models.py:1757 templates/stats.html:25 msgid "Debug Mode" msgstr "Chế độ gỡ lỗi" -#: common/models.py:1689 +#: common/models.py:1758 msgid "Generate reports in debug mode (HTML output)" msgstr "Tạo báo cáo trong chế độ gỡ lỗi (đầu ra HTML)" -#: common/models.py:1694 +#: common/models.py:1763 msgid "Log Report Errors" msgstr "" -#: common/models.py:1695 +#: common/models.py:1764 msgid "Log errors which occur when generating reports" msgstr "" -#: common/models.py:1700 plugin/builtin/labels/label_sheet.py:28 -#: report/models.py:301 +#: common/models.py:1769 plugin/builtin/labels/label_sheet.py:28 +#: report/models.py:309 msgid "Page Size" msgstr "Khổ giấy" -#: common/models.py:1701 +#: common/models.py:1770 msgid "Default page size for PDF reports" msgstr "Kích thước trang mặc định cho báo cáo PDF" -#: common/models.py:1706 -msgid "Enable Test Reports" -msgstr "Bật báo cáo kiểm thử" - -#: common/models.py:1707 -msgid "Enable generation of test reports" -msgstr "Cho phép tạo báo cáo kiểm thử" - -#: common/models.py:1712 -msgid "Attach Test Reports" -msgstr "Đính kèm báo cáo kiểm thử" - -#: common/models.py:1714 -msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item" -msgstr "Khi in một báo cáo kiểm thử, đính kèm một bản sao của báo cáo kiểm thử với hàng trong kho đã được kết hợp" - -#: common/models.py:1720 +#: common/models.py:1775 msgid "Globally Unique Serials" msgstr "Sê ri toàn cục duy nhất" -#: common/models.py:1721 +#: common/models.py:1776 msgid "Serial numbers for stock items must be globally unique" msgstr "Số sê ri cho hàng trong kho phải là duy nhất trong toàn hệ thống" -#: common/models.py:1726 +#: common/models.py:1781 msgid "Autofill Serial Numbers" msgstr "Tự động điền số sê ri" -#: common/models.py:1727 +#: common/models.py:1782 msgid "Autofill serial numbers in forms" msgstr "Tự động điền số sê ri vào biểu mẫu" -#: common/models.py:1732 +#: common/models.py:1787 msgid "Delete Depleted Stock" msgstr "Xóa kho đã hết hàng" -#: common/models.py:1734 +#: common/models.py:1789 msgid "Determines default behavior when a stock item is depleted" msgstr "" -#: common/models.py:1740 +#: common/models.py:1795 msgid "Batch Code Template" msgstr "Mẫu sinh mã theo lô" -#: common/models.py:1742 +#: common/models.py:1797 msgid "Template for generating default batch codes for stock items" msgstr "Mẫu tạo mã theo lô mặc định cho hàng trong kho" -#: common/models.py:1747 +#: common/models.py:1802 msgid "Stock Expiry" msgstr "Quá hạn trong kho" -#: common/models.py:1748 +#: common/models.py:1803 msgid "Enable stock expiry functionality" msgstr "Bật chức năng quá hạn tồn kho" -#: common/models.py:1753 +#: common/models.py:1808 msgid "Sell Expired Stock" msgstr "Bán kho quá hạn" -#: common/models.py:1754 +#: common/models.py:1809 msgid "Allow sale of expired stock" msgstr "Cho phép bán hàng kho quá hạn" -#: common/models.py:1759 +#: common/models.py:1814 msgid "Stock Stale Time" msgstr "Thời gian hàng cũ trong kho" -#: common/models.py:1761 +#: common/models.py:1816 msgid "Number of days stock items are considered stale before expiring" msgstr "Số ngày hàng trong kho được xác định là cũ trước khi quá hạn" -#: common/models.py:1768 +#: common/models.py:1823 msgid "Build Expired Stock" msgstr "Dựng kho quá hạn" -#: common/models.py:1769 +#: common/models.py:1824 msgid "Allow building with expired stock" msgstr "Cho phép xây dựng với kho hàng quá hạn" -#: common/models.py:1774 +#: common/models.py:1829 msgid "Stock Ownership Control" msgstr "Kiểm soát sở hữu kho" -#: common/models.py:1775 +#: common/models.py:1830 msgid "Enable ownership control over stock locations and items" msgstr "Bật chức năng kiểm soát sở hữu kho với địa điểm và hàng trong kho" -#: common/models.py:1780 +#: common/models.py:1835 msgid "Stock Location Default Icon" msgstr "Biểu tượng địa điểm kho mặc định" -#: common/models.py:1781 +#: common/models.py:1836 msgid "Stock location default icon (empty means no icon)" msgstr "Biểu tượng địa điểm kho hàng mặc định (trống nghĩa là không có biểu tượng)" -#: common/models.py:1786 +#: common/models.py:1841 msgid "Show Installed Stock Items" msgstr "Hiển thị hàng hóa đã lắp đặt" -#: common/models.py:1787 +#: common/models.py:1842 msgid "Display installed stock items in stock tables" msgstr "Hiển thị hàng trong kho đã được lắp đặt trên bảng kho" -#: common/models.py:1792 +#: common/models.py:1847 msgid "Check BOM when installing items" msgstr "" -#: common/models.py:1794 +#: common/models.py:1849 msgid "Installed stock items must exist in the BOM for the parent part" msgstr "" -#: common/models.py:1800 +#: common/models.py:1855 msgid "Allow Out of Stock Transfer" msgstr "" -#: common/models.py:1802 +#: common/models.py:1857 msgid "Allow stock items which are not in stock to be transferred between stock locations" msgstr "" -#: common/models.py:1808 +#: common/models.py:1863 msgid "Build Order Reference Pattern" msgstr "Mã tham chiếu đơn đặt bản dựng" -#: common/models.py:1810 +#: common/models.py:1865 msgid "Required pattern for generating Build Order reference field" msgstr "Mẫu bắt buộc cho để trường tham chiếu đơn đặt bản dựng" -#: common/models.py:1816 common/models.py:1872 common/models.py:1894 -#: common/models.py:1930 +#: common/models.py:1871 common/models.py:1927 common/models.py:1949 +#: common/models.py:1985 msgid "Require Responsible Owner" msgstr "" -#: common/models.py:1817 common/models.py:1873 common/models.py:1895 -#: common/models.py:1931 +#: common/models.py:1872 common/models.py:1928 common/models.py:1950 +#: common/models.py:1986 msgid "A responsible owner must be assigned to each order" msgstr "" -#: common/models.py:1822 +#: common/models.py:1877 msgid "Require Active Part" msgstr "" -#: common/models.py:1823 +#: common/models.py:1878 msgid "Prevent build order creation for inactive parts" msgstr "" -#: common/models.py:1828 +#: common/models.py:1883 msgid "Require Locked Part" msgstr "" -#: common/models.py:1829 +#: common/models.py:1884 msgid "Prevent build order creation for unlocked parts" msgstr "" -#: common/models.py:1834 +#: common/models.py:1889 msgid "Require Valid BOM" msgstr "" -#: common/models.py:1836 +#: common/models.py:1891 msgid "Prevent build order creation unless BOM has been validated" msgstr "" -#: common/models.py:1842 +#: common/models.py:1897 msgid "Require Closed Child Orders" msgstr "" -#: common/models.py:1844 +#: common/models.py:1899 msgid "Prevent build order completion until all child orders are closed" msgstr "" -#: common/models.py:1850 +#: common/models.py:1905 msgid "Block Until Tests Pass" msgstr "" -#: common/models.py:1852 +#: common/models.py:1907 msgid "Prevent build outputs from being completed until all required tests pass" msgstr "" -#: common/models.py:1858 +#: common/models.py:1913 msgid "Enable Return Orders" msgstr "Bật đơn hàng trả lại" -#: common/models.py:1859 +#: common/models.py:1914 msgid "Enable return order functionality in the user interface" msgstr "Bật chức năng đơn hàng trả lại trong giao diện người dùng" -#: common/models.py:1864 +#: common/models.py:1919 msgid "Return Order Reference Pattern" msgstr "Mẫu tham chiếu đơn hàng trả lại" -#: common/models.py:1866 +#: common/models.py:1921 msgid "Required pattern for generating Return Order reference field" msgstr "" -#: common/models.py:1878 +#: common/models.py:1933 msgid "Edit Completed Return Orders" msgstr "Sửa đơn hàng trả lại đã hoàn thành" -#: common/models.py:1880 +#: common/models.py:1935 msgid "Allow editing of return orders after they have been completed" msgstr "Cho phép sửa đơn hàng trả lại sau khi đã hoàn thành rồi" -#: common/models.py:1886 +#: common/models.py:1941 msgid "Sales Order Reference Pattern" msgstr "Mẫu tham chiếu đơn đặt hàng" -#: common/models.py:1888 +#: common/models.py:1943 msgid "Required pattern for generating Sales Order reference field" msgstr "Mẫu bắt buộc để tạo trường tham chiếu đơn đặt hàng" -#: common/models.py:1900 +#: common/models.py:1955 msgid "Sales Order Default Shipment" msgstr "Vận chuyển mặc định đơn đặt hàng" -#: common/models.py:1901 +#: common/models.py:1956 msgid "Enable creation of default shipment with sales orders" msgstr "Cho phép tạo vận chuyển mặc định với đơn đặt hàng" -#: common/models.py:1906 +#: common/models.py:1961 msgid "Edit Completed Sales Orders" msgstr "Sửa đơn đặt hàng đã hoàn thành" -#: common/models.py:1908 +#: common/models.py:1963 msgid "Allow editing of sales orders after they have been shipped or completed" msgstr "Cho phép sửa đơn đặt hàng sau khi đã vận chuyển hoặc hoàn thành" -#: common/models.py:1914 +#: common/models.py:1969 msgid "Mark Shipped Orders as Complete" msgstr "" -#: common/models.py:1916 +#: common/models.py:1971 msgid "Sales orders marked as shipped will automatically be completed, bypassing the \"shipped\" status" msgstr "" -#: common/models.py:1922 +#: common/models.py:1977 msgid "Purchase Order Reference Pattern" msgstr "Mẫu tham chiếu đơn đặt mua" -#: common/models.py:1924 +#: common/models.py:1979 msgid "Required pattern for generating Purchase Order reference field" msgstr "Mẫu bắt buộc cho để trường tham chiếu đơn đặt mua" -#: common/models.py:1936 +#: common/models.py:1991 msgid "Edit Completed Purchase Orders" msgstr "Sửa đơn đặt mua đã hoàn thành" -#: common/models.py:1938 +#: common/models.py:1993 msgid "Allow editing of purchase orders after they have been shipped or completed" msgstr "Cho phép sửa đơn đặt mua sau khi đã vận chuyển hoặc hoàn thành" -#: common/models.py:1944 +#: common/models.py:1999 msgid "Auto Complete Purchase Orders" msgstr "Tự động hoàn thành đơn đặt mua" -#: common/models.py:1946 +#: common/models.py:2001 msgid "Automatically mark purchase orders as complete when all line items are received" msgstr "" -#: common/models.py:1953 +#: common/models.py:2008 msgid "Enable password forgot" msgstr "Bật quên mật khẩu" -#: common/models.py:1954 +#: common/models.py:2009 msgid "Enable password forgot function on the login pages" msgstr "Bật chức năng quên mật khẩu trong trang đăng nhập" -#: common/models.py:1959 +#: common/models.py:2014 msgid "Enable registration" msgstr "Bật đăng ký" -#: common/models.py:1960 +#: common/models.py:2015 msgid "Enable self-registration for users on the login pages" msgstr "Cho phép người dùng tự đăng ký tại trang đăng nhập" -#: common/models.py:1965 +#: common/models.py:2020 msgid "Enable SSO" msgstr "Bật SSO" -#: common/models.py:1966 +#: common/models.py:2021 msgid "Enable SSO on the login pages" msgstr "Cho phép SSO tại trang đăng nhập" -#: common/models.py:1971 +#: common/models.py:2026 msgid "Enable SSO registration" msgstr "Bật đăng ký SSO" -#: common/models.py:1973 +#: common/models.py:2028 msgid "Enable self-registration via SSO for users on the login pages" msgstr "Cho phép người dùng tự đăng ký SSO tại trang đăng nhập" -#: common/models.py:1979 +#: common/models.py:2034 msgid "Enable SSO group sync" msgstr "" -#: common/models.py:1981 +#: common/models.py:2036 msgid "Enable synchronizing InvenTree groups with groups provided by the IdP" msgstr "" -#: common/models.py:1987 +#: common/models.py:2042 msgid "SSO group key" msgstr "" -#: common/models.py:1989 +#: common/models.py:2044 msgid "The name of the groups claim attribute provided by the IdP" msgstr "" -#: common/models.py:1995 +#: common/models.py:2050 msgid "SSO group map" msgstr "" -#: common/models.py:1997 +#: common/models.py:2052 msgid "A mapping from SSO groups to local InvenTree groups. If the local group does not exist, it will be created." msgstr "" -#: common/models.py:2003 +#: common/models.py:2058 msgid "Remove groups outside of SSO" msgstr "" -#: common/models.py:2005 +#: common/models.py:2060 msgid "Whether groups assigned to the user should be removed if they are not backend by the IdP. Disabling this setting might cause security issues" msgstr "" -#: common/models.py:2011 +#: common/models.py:2066 msgid "Email required" msgstr "Yêu cầu email" -#: common/models.py:2012 +#: common/models.py:2067 msgid "Require user to supply mail on signup" msgstr "Yêu cầu người dùng cung cấp email để đăng ký" -#: common/models.py:2017 +#: common/models.py:2072 msgid "Auto-fill SSO users" msgstr "Người dùng tự động điền SSO" -#: common/models.py:2019 +#: common/models.py:2074 msgid "Automatically fill out user-details from SSO account-data" msgstr "Tự động điền thông tin chi tiết từ dữ liệu tài khoản SSO" -#: common/models.py:2025 +#: common/models.py:2080 msgid "Mail twice" msgstr "Thư 2 lần" -#: common/models.py:2026 +#: common/models.py:2081 msgid "On signup ask users twice for their mail" msgstr "Khi đăng ký sẽ hỏi người dùng hai lần thư điện tử của họ" -#: common/models.py:2031 +#: common/models.py:2086 msgid "Password twice" msgstr "Mật khẩu 2 lần" -#: common/models.py:2032 +#: common/models.py:2087 msgid "On signup ask users twice for their password" msgstr "Khi đăng ký sẽ hỏi người dùng hai lần mật khẩu của họ" -#: common/models.py:2037 +#: common/models.py:2092 msgid "Allowed domains" msgstr "Các tên miền được phép" -#: common/models.py:2039 +#: common/models.py:2094 msgid "Restrict signup to certain domains (comma-separated, starting with @)" msgstr "Cấm đăng ký với 1 số tên miền cụ thể (dấu phẩy ngăn cách, bắt đầu với dấu @)" -#: common/models.py:2045 +#: common/models.py:2100 msgid "Group on signup" msgstr "Nhóm khi đăng ký" -#: common/models.py:2047 +#: common/models.py:2102 msgid "Group to which new users are assigned on registration. If SSO group sync is enabled, this group is only set if no group can be assigned from the IdP." msgstr "" -#: common/models.py:2053 +#: common/models.py:2108 msgid "Enforce MFA" msgstr "Bắt buộc MFA" -#: common/models.py:2054 +#: common/models.py:2109 msgid "Users must use multifactor security." msgstr "Người dùng phải sử dụng bảo mật đa nhân tố." -#: common/models.py:2059 +#: common/models.py:2114 msgid "Check plugins on startup" msgstr "Kiểm tra phần mở rộng khi khởi động" -#: common/models.py:2061 +#: common/models.py:2116 msgid "Check that all plugins are installed on startup - enable in container environments" msgstr "Kiểm tra toàn bộ phần mở rộng đã được cài đặt khi khởi dộng - bật trong môi trường ảo hóa" -#: common/models.py:2069 +#: common/models.py:2124 msgid "Check for plugin updates" msgstr "Kiểm tra cập nhật plugin" -#: common/models.py:2070 +#: common/models.py:2125 msgid "Enable periodic checks for updates to installed plugins" msgstr "" -#: common/models.py:2076 +#: common/models.py:2131 msgid "Enable URL integration" msgstr "Bật tích hợp URL" -#: common/models.py:2077 +#: common/models.py:2132 msgid "Enable plugins to add URL routes" msgstr "Bật phần mở rộng để thêm định tuyến URL" -#: common/models.py:2083 +#: common/models.py:2138 msgid "Enable navigation integration" msgstr "Bật tích hợp điều hướng" -#: common/models.py:2084 +#: common/models.py:2139 msgid "Enable plugins to integrate into navigation" msgstr "Bật phần mở rộng để tích hợp thanh định hướng" -#: common/models.py:2090 +#: common/models.py:2145 msgid "Enable app integration" msgstr "Bật tích hợp ứng dụng" -#: common/models.py:2091 +#: common/models.py:2146 msgid "Enable plugins to add apps" msgstr "Bật phần mở rộng để thêm ứng dụng" -#: common/models.py:2097 +#: common/models.py:2152 msgid "Enable schedule integration" msgstr "Cho phép tích hợp lập lịch" -#: common/models.py:2098 +#: common/models.py:2153 msgid "Enable plugins to run scheduled tasks" msgstr "Bật phẩn mở rộng để chạy các tác vụ theo lịch" -#: common/models.py:2104 +#: common/models.py:2159 msgid "Enable event integration" msgstr "Bật tích hợp nguồn cấp sự kiện" -#: common/models.py:2105 +#: common/models.py:2160 msgid "Enable plugins to respond to internal events" msgstr "Bật phần mở rộng để trả lời sự kiện bên trong" -#: common/models.py:2111 +#: common/models.py:2166 +msgid "Enable interface integration" +msgstr "" + +#: common/models.py:2167 +msgid "Enable plugins to integrate into the user interface" +msgstr "" + +#: common/models.py:2173 msgid "Enable project codes" msgstr "Bật mã dự án" -#: common/models.py:2112 +#: common/models.py:2174 msgid "Enable project codes for tracking projects" msgstr "Bật mã dự án để theo dõi dự án" -#: common/models.py:2117 +#: common/models.py:2179 msgid "Stocktake Functionality" msgstr "Chức năng kiểm kê" -#: common/models.py:2119 +#: common/models.py:2181 msgid "Enable stocktake functionality for recording stock levels and calculating stock value" msgstr "Bật chức năng kiểm kê theo mức độ ghi nhận kho và tính toán giá trị kho" -#: common/models.py:2125 +#: common/models.py:2187 msgid "Exclude External Locations" msgstr "Ngoại trừ vị trí bên ngoài" -#: common/models.py:2127 +#: common/models.py:2189 msgid "Exclude stock items in external locations from stocktake calculations" msgstr "Loại trừ hàng trong kho thuộc địa điểm bên ngoài ra khỏi tính toán kiểm kê" -#: common/models.py:2133 +#: common/models.py:2195 msgid "Automatic Stocktake Period" msgstr "Giai đoạn kiểm kê tự động" -#: common/models.py:2135 +#: common/models.py:2197 msgid "Number of days between automatic stocktake recording (set to zero to disable)" msgstr "Số ngày giữa ghi chép kiểm kê tự động (đặt không để tắt)" -#: common/models.py:2141 +#: common/models.py:2203 msgid "Report Deletion Interval" msgstr "Khoảng thời gian xóa báo cáo" -#: common/models.py:2143 +#: common/models.py:2205 msgid "Stocktake reports will be deleted after specified number of days" msgstr "Báo cáo kiểm kê sẽ bị xóa sau số ngày xác định" -#: common/models.py:2150 +#: common/models.py:2212 msgid "Display Users full names" msgstr "Hiển thị tên đầy đủ của người dùng" -#: common/models.py:2151 +#: common/models.py:2213 msgid "Display Users full names instead of usernames" msgstr "Hiển thị tên đầy đủ thay vì tên đăng nhập" -#: common/models.py:2156 +#: common/models.py:2218 msgid "Enable Test Station Data" msgstr "" -#: common/models.py:2157 +#: common/models.py:2219 msgid "Enable test station data collection for test results" msgstr "" -#: common/models.py:2169 common/models.py:2549 -msgid "Settings key (must be unique - case insensitive" -msgstr "Khóa thiết lập (phải duy nhất - phân biệt hoa thường" +#: common/models.py:2224 +msgid "Create Template on Upload" +msgstr "" -#: common/models.py:2212 +#: common/models.py:2226 +msgid "Create a new test template when uploading test data which does not match an existing template" +msgstr "" + +#: common/models.py:2279 msgid "Hide inactive parts" msgstr "Ẩn sản phẩm ngừng hoạt động" -#: common/models.py:2214 +#: common/models.py:2281 msgid "Hide inactive parts in results displayed on the homepage" msgstr "Ẩn sản phẩm bị tắt trong kết quả trình bày tại trang chủ" -#: common/models.py:2220 +#: common/models.py:2287 msgid "Show subscribed parts" msgstr "Hiện sản phẩm đã đăng ký" -#: common/models.py:2221 +#: common/models.py:2288 msgid "Show subscribed parts on the homepage" msgstr "Hiện sản phẩm đã đăng ký trên trang chủ" -#: common/models.py:2226 +#: common/models.py:2293 msgid "Show subscribed categories" msgstr "Hiện danh mục đã đăng ký" -#: common/models.py:2227 +#: common/models.py:2294 msgid "Show subscribed part categories on the homepage" msgstr "Hiện danh mục sản phẩm đã đăng ký trên trang chủ" -#: common/models.py:2232 +#: common/models.py:2299 msgid "Show latest parts" msgstr "Hiển thị nguyên liệu mới nhất" -#: common/models.py:2233 +#: common/models.py:2300 msgid "Show latest parts on the homepage" msgstr "Hiển thị nguyên liệu mới nhất trên trang chủ" -#: common/models.py:2238 +#: common/models.py:2305 msgid "Show invalid BOMs" msgstr "" -#: common/models.py:2239 +#: common/models.py:2306 msgid "Show BOMs that await validation on the homepage" msgstr "Hiện BOM chờ xác thực tại trang chủ" -#: common/models.py:2244 +#: common/models.py:2311 msgid "Show recent stock changes" msgstr "Hiện thay đổi kho hàng gần đây" -#: common/models.py:2245 +#: common/models.py:2312 msgid "Show recently changed stock items on the homepage" msgstr "Hiện hàng trong kho được thay đổi gần nhất trên trang chủ" -#: common/models.py:2250 +#: common/models.py:2317 msgid "Show low stock" msgstr "Hiển thị hàng còn ít" -#: common/models.py:2251 +#: common/models.py:2318 msgid "Show low stock items on the homepage" msgstr "Hiển thị hàng hóa còn ít tại trang chủ" -#: common/models.py:2256 +#: common/models.py:2323 msgid "Show depleted stock" msgstr "Hiển thị hết hàng" -#: common/models.py:2257 +#: common/models.py:2324 msgid "Show depleted stock items on the homepage" msgstr "Hiển thị hàng hóa đã bán hết tại trang chủ" -#: common/models.py:2262 +#: common/models.py:2329 msgid "Show needed stock" msgstr "Hiển thị hàng cần thiết" -#: common/models.py:2263 +#: common/models.py:2330 msgid "Show stock items needed for builds on the homepage" msgstr "Hiện hàng trong kho cần thiết cho xây dựng tại trang chủ" -#: common/models.py:2268 +#: common/models.py:2335 msgid "Show expired stock" msgstr "Bán kho quá hạn" -#: common/models.py:2269 +#: common/models.py:2336 msgid "Show expired stock items on the homepage" msgstr "Hiển thị hàng hóa đã quá hạn trên trang chủ" -#: common/models.py:2274 +#: common/models.py:2341 msgid "Show stale stock" msgstr "Hiện kho hàng ế" -#: common/models.py:2275 +#: common/models.py:2342 msgid "Show stale stock items on the homepage" msgstr "Hiện hàng trong kho bị ế trên trang chủ" -#: common/models.py:2280 +#: common/models.py:2347 msgid "Show pending builds" msgstr "Hiện bản dựng chờ xử lý" -#: common/models.py:2281 +#: common/models.py:2348 msgid "Show pending builds on the homepage" msgstr "Hiện bản dựng chờ xử lý trên trang chủ" -#: common/models.py:2286 +#: common/models.py:2353 msgid "Show overdue builds" msgstr "Hiện bản dựng quá hạn" -#: common/models.py:2287 +#: common/models.py:2354 msgid "Show overdue builds on the homepage" msgstr "Hiện bản dựng quá hạn trên trang chủ" -#: common/models.py:2292 +#: common/models.py:2359 msgid "Show outstanding POs" msgstr "Hiện PO nổi bật" -#: common/models.py:2293 +#: common/models.py:2360 msgid "Show outstanding POs on the homepage" msgstr "Hiện PO nổi bật trên trang chủ" -#: common/models.py:2298 +#: common/models.py:2365 msgid "Show overdue POs" msgstr "Hiện PO quá hạn" -#: common/models.py:2299 +#: common/models.py:2366 msgid "Show overdue POs on the homepage" msgstr "Hiện đơn mua hàng quá hạn trên trang chủ" -#: common/models.py:2304 +#: common/models.py:2371 msgid "Show outstanding SOs" msgstr "Hiện đơn hàng vận chuyển nổi bật" -#: common/models.py:2305 +#: common/models.py:2372 msgid "Show outstanding SOs on the homepage" msgstr "Hiện đơn hàng vận chuyển nổi bật tại trang chủ" -#: common/models.py:2310 +#: common/models.py:2377 msgid "Show overdue SOs" msgstr "Hiện đơn vận chuyển quá hạn" -#: common/models.py:2311 +#: common/models.py:2378 msgid "Show overdue SOs on the homepage" msgstr "Hiện đơn vận chuyển quá hạn trên trang chủ" -#: common/models.py:2316 +#: common/models.py:2383 msgid "Show pending SO shipments" msgstr "Hiện đơn vận chuyển chờ xử lý" -#: common/models.py:2317 +#: common/models.py:2384 msgid "Show pending SO shipments on the homepage" msgstr "Hiện đơn vận chuyển chờ xử lý trên trang chủ" -#: common/models.py:2322 +#: common/models.py:2389 msgid "Show News" msgstr "Hiện tin tức" -#: common/models.py:2323 +#: common/models.py:2390 msgid "Show news on the homepage" msgstr "Hiện tin tức trên trang chủ" -#: common/models.py:2328 +#: common/models.py:2395 msgid "Inline label display" msgstr "Hiển thị nhãn cùng dòng" -#: common/models.py:2330 +#: common/models.py:2397 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "Hiển thị nhãn PDF trong trình duyệt, thay vì tải về dạng tệp tin" -#: common/models.py:2336 +#: common/models.py:2403 msgid "Default label printer" msgstr "Máy in tem nhãn mặc định" -#: common/models.py:2338 +#: common/models.py:2405 msgid "Configure which label printer should be selected by default" msgstr "Cấu hình máy in tem nhãn nào được chọn mặc định" -#: common/models.py:2344 +#: common/models.py:2411 msgid "Inline report display" msgstr "Hiển thị báo cáo cùng hàng" -#: common/models.py:2346 +#: common/models.py:2413 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "Hiện báo cáo PDF trong trình duyệt, thay vì tải về dạng tệp tin" -#: common/models.py:2352 +#: common/models.py:2419 msgid "Search Parts" msgstr "Tìm sản phẩm" -#: common/models.py:2353 +#: common/models.py:2420 msgid "Display parts in search preview window" msgstr "Hiện hàng hóa trong cửa sổ xem trước tìm kiếm" -#: common/models.py:2358 +#: common/models.py:2425 msgid "Search Supplier Parts" msgstr "Tìm sản phẩm nhà cung cấp" -#: common/models.py:2359 +#: common/models.py:2426 msgid "Display supplier parts in search preview window" msgstr "Hiện sản phẩm nhà cung cấp trong cửa sổ xem trước tìm kiếm" -#: common/models.py:2364 +#: common/models.py:2431 msgid "Search Manufacturer Parts" msgstr "Tìm sản phẩm nhà sản xuất" -#: common/models.py:2365 +#: common/models.py:2432 msgid "Display manufacturer parts in search preview window" msgstr "Hiện sản phẩm nhà sản xuất trong cửa sổ xem trước tìm kiếm" -#: common/models.py:2370 +#: common/models.py:2437 msgid "Hide Inactive Parts" msgstr "Ẩn sản phẩm ngừng hoạt động" -#: common/models.py:2371 +#: common/models.py:2438 msgid "Excluded inactive parts from search preview window" msgstr "Loại trừ sản phẩm ngưng hoạt động trong cửa sổ xem trước tìm kiếm" -#: common/models.py:2376 +#: common/models.py:2443 msgid "Search Categories" msgstr "Tìm kiếm danh mục" -#: common/models.py:2377 +#: common/models.py:2444 msgid "Display part categories in search preview window" msgstr "Hiện danh mục sản phẩm trong cửa sổ xem trước tìm kiếm" -#: common/models.py:2382 +#: common/models.py:2449 msgid "Search Stock" msgstr "Tìm kiếm kho" -#: common/models.py:2383 +#: common/models.py:2450 msgid "Display stock items in search preview window" msgstr "Hiện hàng hóa ở kho trong cửa sổ xem trước tìm kiếm" -#: common/models.py:2388 +#: common/models.py:2455 msgid "Hide Unavailable Stock Items" msgstr "Ẩn hàng hóa trong kho không có sẵn" -#: common/models.py:2390 +#: common/models.py:2457 msgid "Exclude stock items which are not available from the search preview window" msgstr "Không bao gồm hàng hóa trong kho mà không sẵn sàng từ màn hình xem trước tìm kiếm" -#: common/models.py:2396 +#: common/models.py:2463 msgid "Search Locations" msgstr "Tìm kiếm vị trí" -#: common/models.py:2397 +#: common/models.py:2464 msgid "Display stock locations in search preview window" msgstr "Hiện vị trí kho hàng trong cửa sổ xem trước tìm kiếm" -#: common/models.py:2402 +#: common/models.py:2469 msgid "Search Companies" msgstr "Tìm kiếm công ty" -#: common/models.py:2403 +#: common/models.py:2470 msgid "Display companies in search preview window" msgstr "Hiện công ty trong cửa sổ xem trước tìm kiếm" -#: common/models.py:2408 +#: common/models.py:2475 msgid "Search Build Orders" msgstr "Tìm kiếm đặt hàng xây dựng" -#: common/models.py:2409 +#: common/models.py:2476 msgid "Display build orders in search preview window" msgstr "Hiện đơn đặt xây dựng trong cửa sổ xem trước tìm kiếm" -#: common/models.py:2414 +#: common/models.py:2481 msgid "Search Purchase Orders" msgstr "Tìm kiếm đơn đặt mua" -#: common/models.py:2415 +#: common/models.py:2482 msgid "Display purchase orders in search preview window" msgstr "Hiện đơn đặt mua trong cửa sổ xem trước tìm kiếm" -#: common/models.py:2420 +#: common/models.py:2487 msgid "Exclude Inactive Purchase Orders" msgstr "Loại trừ đơn đặt mua không hoạt động" -#: common/models.py:2422 +#: common/models.py:2489 msgid "Exclude inactive purchase orders from search preview window" msgstr "Loại trừ đơn đặt mua không hoạt động ra khỏi cửa sổ xem trước tìm kiếm" -#: common/models.py:2428 +#: common/models.py:2495 msgid "Search Sales Orders" msgstr "Tìm đơn đặt hàng người mua" -#: common/models.py:2429 +#: common/models.py:2496 msgid "Display sales orders in search preview window" msgstr "Hiện đơn đặt hàng người mua trong cửa sổ xem trước tìm kiếm" -#: common/models.py:2434 +#: common/models.py:2501 msgid "Exclude Inactive Sales Orders" msgstr "Loại trừ đơn đặt hàng người mua không hoạt động" -#: common/models.py:2436 +#: common/models.py:2503 msgid "Exclude inactive sales orders from search preview window" msgstr "Không bao gồm đơn đặt hàng người mua không hoạt động trong cửa sổ xem trước tìm kiếm" -#: common/models.py:2442 +#: common/models.py:2509 msgid "Search Return Orders" msgstr "Tìm kiếm đơn hàng trả lại" -#: common/models.py:2443 +#: common/models.py:2510 msgid "Display return orders in search preview window" msgstr "Hiện đơn hàng trả lại trong cửa sổ xem trước tìm kiếm" -#: common/models.py:2448 +#: common/models.py:2515 msgid "Exclude Inactive Return Orders" msgstr "Loại trừ đơn hàng trả lại không hoạt động" -#: common/models.py:2450 +#: common/models.py:2517 msgid "Exclude inactive return orders from search preview window" msgstr "Không bao gồm đơn hàng trả lại không hoạt động trong cửa sổ xem trước tìm kiếm" -#: common/models.py:2456 +#: common/models.py:2523 msgid "Search Preview Results" msgstr "Kết quả xem trước tìm kiếm" -#: common/models.py:2458 +#: common/models.py:2525 msgid "Number of results to show in each section of the search preview window" msgstr "Số kết quả cần hiển thị trong từng phần của cửa sổ xem trước tìm kiếm" -#: common/models.py:2464 +#: common/models.py:2531 msgid "Regex Search" msgstr "Tìm kiếm biểu thức" -#: common/models.py:2465 +#: common/models.py:2532 msgid "Enable regular expressions in search queries" msgstr "Bật tìm kiếm biểu thức chính quy trong câu truy vấn tìm kiếm" -#: common/models.py:2470 +#: common/models.py:2537 msgid "Whole Word Search" msgstr "Tìm phù hợp toàn bộ chữ" -#: common/models.py:2471 +#: common/models.py:2538 msgid "Search queries return results for whole word matches" msgstr "Truy vấn tìm trả về kết quả phù hợp toàn bộ chữ" -#: common/models.py:2476 +#: common/models.py:2543 msgid "Show Quantity in Forms" msgstr "Hiện số lượng trong biểu mẫu" -#: common/models.py:2477 +#: common/models.py:2544 msgid "Display available part quantity in some forms" msgstr "Hiển thị số lượng sản phẩm có sẵn trong một số biểu mẫu" -#: common/models.py:2482 +#: common/models.py:2549 msgid "Escape Key Closes Forms" msgstr "Phím escape để đóng mẫu biểu" -#: common/models.py:2483 +#: common/models.py:2550 msgid "Use the escape key to close modal forms" msgstr "Sử dụng phím escape để đóng mẫu biểu hộp thoại" -#: common/models.py:2488 +#: common/models.py:2555 msgid "Fixed Navbar" msgstr "Cố định điều hướng" -#: common/models.py:2489 +#: common/models.py:2556 msgid "The navbar position is fixed to the top of the screen" msgstr "Vị trí thành điều hướng là cố định trên cùng màn hình" -#: common/models.py:2494 +#: common/models.py:2561 msgid "Date Format" msgstr "Định dạng ngày" -#: common/models.py:2495 +#: common/models.py:2562 msgid "Preferred format for displaying dates" msgstr "Định dạng ưa chuộng khi hiển thị ngày" -#: common/models.py:2508 part/templates/part/detail.html:41 +#: common/models.py:2575 part/templates/part/detail.html:41 msgid "Part Scheduling" msgstr "Lập lịch sản phẩm" -#: common/models.py:2509 +#: common/models.py:2576 msgid "Display part scheduling information" msgstr "Hiển thị thông tin lịch sản phẩm" -#: common/models.py:2514 part/templates/part/detail.html:62 +#: common/models.py:2581 part/templates/part/detail.html:62 msgid "Part Stocktake" msgstr "Kiểm kê sản phẩm" -#: common/models.py:2516 +#: common/models.py:2583 msgid "Display part stocktake information (if stocktake functionality is enabled)" msgstr "Hiển thị thông tin kiểm kê sản phẩm (nếu chức năng kiểm kê được bật)" -#: common/models.py:2522 +#: common/models.py:2589 msgid "Table String Length" msgstr "Độ dài chuỗi trong bảng" -#: common/models.py:2524 +#: common/models.py:2591 msgid "Maximum length limit for strings displayed in table views" msgstr "Giới hạn độ dài tối đa cho chuỗi hiển thị trong kiểu xem bảng biểu" -#: common/models.py:2530 +#: common/models.py:2597 msgid "Receive error reports" msgstr "Nhận báo cáo lỗi" -#: common/models.py:2531 +#: common/models.py:2598 msgid "Receive notifications for system errors" msgstr "Nhận thông báo khi có lỗi hệ thống" -#: common/models.py:2536 +#: common/models.py:2603 msgid "Last used printing machines" msgstr "" -#: common/models.py:2537 +#: common/models.py:2604 msgid "Save the last used printing machines for a user" msgstr "" -#: common/models.py:2557 common/models.py:2558 common/models.py:2715 -#: common/models.py:2716 common/models.py:2961 common/models.py:2962 -#: common/models.py:3288 common/models.py:3289 importer/models.py:88 -#: part/models.py:3307 part/models.py:3394 part/models.py:3468 -#: part/models.py:3496 plugin/models.py:274 plugin/models.py:275 -#: report/templates/report/inventree_test_report.html:105 -#: templates/js/translated/stock.js:3120 users/models.py:111 +#: common/models.py:2621 common/models.py:2622 common/models.py:2779 +#: common/models.py:2780 common/models.py:3025 common/models.py:3026 +#: common/models.py:3349 common/models.py:3350 common/models.py:3534 +#: importer/models.py:89 part/models.py:3358 part/models.py:3445 +#: part/models.py:3519 part/models.py:3547 plugin/models.py:313 +#: plugin/models.py:314 report/templates/report/inventree_test_report.html:105 +#: templates/js/translated/stock.js:3121 users/models.py:111 msgid "User" msgstr "Người dùng" -#: common/models.py:2580 +#: common/models.py:2644 msgid "Price break quantity" msgstr "Số lượng giá phá vỡ" -#: common/models.py:2587 company/serializers.py:513 order/admin.py:42 -#: order/models.py:1430 order/models.py:2417 -#: templates/js/translated/company.js:1823 templates/js/translated/part.js:1892 +#: common/models.py:2651 company/serializers.py:524 order/admin.py:42 +#: order/models.py:1447 order/models.py:2456 +#: templates/js/translated/company.js:1824 templates/js/translated/part.js:1892 #: templates/js/translated/pricing.js:621 #: templates/js/translated/return_order.js:739 msgid "Price" msgstr "Giá" -#: common/models.py:2588 +#: common/models.py:2652 msgid "Unit price at specified quantity" msgstr "Đơn vị giá theo số lượng cụ thể" -#: common/models.py:2692 common/models.py:2877 +#: common/models.py:2756 common/models.py:2941 msgid "Endpoint" msgstr "Đầu mối" -#: common/models.py:2693 +#: common/models.py:2757 msgid "Endpoint at which this webhook is received" msgstr "Đầu mối tại điểm webhook được nhận" -#: common/models.py:2703 +#: common/models.py:2767 msgid "Name for this webhook" msgstr "Tên của webhook này" -#: common/models.py:2707 +#: common/models.py:2771 msgid "Is this webhook active" msgstr "Webhook có hoạt động không" -#: common/models.py:2723 users/models.py:159 +#: common/models.py:2787 users/models.py:159 msgid "Token" msgstr "Chữ ký số" -#: common/models.py:2724 +#: common/models.py:2788 msgid "Token for access" msgstr "Chữ ký số để truy cập" -#: common/models.py:2732 +#: common/models.py:2796 msgid "Secret" msgstr "Bí mật" -#: common/models.py:2733 +#: common/models.py:2797 msgid "Shared secret for HMAC" msgstr "Mã bí mật dùng chung cho HMAC" -#: common/models.py:2841 +#: common/models.py:2905 msgid "Message ID" msgstr "Mã Tin nhắn" -#: common/models.py:2842 +#: common/models.py:2906 msgid "Unique identifier for this message" msgstr "Định danh duy nhất cho tin nhắn này" -#: common/models.py:2850 +#: common/models.py:2914 msgid "Host" msgstr "Máy chủ" -#: common/models.py:2851 +#: common/models.py:2915 msgid "Host from which this message was received" msgstr "Mãy chủ từ tin nhắn này đã được nhận" -#: common/models.py:2859 +#: common/models.py:2923 msgid "Header" msgstr "Đầu mục" -#: common/models.py:2860 +#: common/models.py:2924 msgid "Header of this message" msgstr "Đầu mục tin nhắn" -#: common/models.py:2867 +#: common/models.py:2931 msgid "Body" msgstr "Thân" -#: common/models.py:2868 +#: common/models.py:2932 msgid "Body of this message" msgstr "Thân tin nhắn này" -#: common/models.py:2878 +#: common/models.py:2942 msgid "Endpoint on which this message was received" msgstr "Đầu mối của tin nhắn này đã nhận được" -#: common/models.py:2883 +#: common/models.py:2947 msgid "Worked on" msgstr "Làm việc vào" -#: common/models.py:2884 +#: common/models.py:2948 msgid "Was the work on this message finished?" msgstr "Công việc trong tin nhắn này đã kết thúc?" -#: common/models.py:3010 +#: common/models.py:3074 msgid "Id" msgstr "Mã" -#: common/models.py:3012 templates/js/translated/company.js:965 -#: templates/js/translated/news.js:44 +#: common/models.py:3076 part/serializers.py:271 +#: templates/js/translated/company.js:966 templates/js/translated/news.js:44 msgid "Title" msgstr "Tiêu đề" -#: common/models.py:3014 common/models.py:3272 company/models.py:149 -#: company/models.py:446 company/models.py:512 company/models.py:818 -#: order/models.py:302 order/models.py:1385 order/models.py:1817 -#: part/admin.py:55 part/models.py:1057 +#: common/models.py:3078 common/models.py:3333 company/models.py:146 +#: company/models.py:443 company/models.py:509 company/models.py:815 +#: order/models.py:309 order/models.py:1402 order/models.py:1846 +#: part/admin.py:55 part/models.py:1118 #: part/templates/part/part_scheduling.html:11 #: report/templates/report/inventree_build_order_report.html:164 -#: stock/admin.py:229 templates/js/translated/company.js:1319 -#: templates/js/translated/company.js:1673 templates/js/translated/order.js:376 +#: stock/admin.py:230 templates/js/translated/company.js:1320 +#: templates/js/translated/company.js:1674 templates/js/translated/order.js:376 #: templates/js/translated/part.js:2475 -#: templates/js/translated/purchase_order.js:2110 -#: templates/js/translated/purchase_order.js:2274 +#: templates/js/translated/purchase_order.js:2094 +#: templates/js/translated/purchase_order.js:2258 #: templates/js/translated/return_order.js:778 -#: templates/js/translated/sales_order.js:1092 -#: templates/js/translated/sales_order.js:2023 +#: templates/js/translated/sales_order.js:1058 +#: templates/js/translated/sales_order.js:2004 msgid "Link" msgstr "Liên kết" -#: common/models.py:3016 templates/js/translated/news.js:60 +#: common/models.py:3080 templates/js/translated/news.js:60 msgid "Published" msgstr "Đã công bố" -#: common/models.py:3018 templates/InvenTree/settings/plugin_settings.html:32 +#: common/models.py:3082 templates/InvenTree/settings/plugin_settings.html:32 #: templates/js/translated/news.js:56 templates/js/translated/plugin.js:103 msgid "Author" msgstr "Tác giả" -#: common/models.py:3020 templates/js/translated/news.js:52 +#: common/models.py:3084 templates/js/translated/news.js:52 msgid "Summary" msgstr "Tóm tắt" -#: common/models.py:3023 +#: common/models.py:3087 msgid "Read" msgstr "Đọc" -#: common/models.py:3023 +#: common/models.py:3087 msgid "Was this news item read?" msgstr "Tin này đã được đọc?" -#: common/models.py:3040 company/models.py:159 part/models.py:1067 +#: common/models.py:3104 company/models.py:156 part/models.py:1128 #: report/templates/report/inventree_bill_of_materials_report.html:126 #: report/templates/report/inventree_bill_of_materials_report.html:148 #: report/templates/report/inventree_return_order_report.html:35 -#: stock/templates/stock/item_base.html:133 templates/503.html:31 +#: stock/templates/stock/item_base.html:130 templates/503.html:31 #: templates/hover_image.html:7 templates/hover_image.html:9 #: templates/modals.html:6 msgid "Image" msgstr "Hình ảnh" -#: common/models.py:3040 +#: common/models.py:3104 msgid "Image file" msgstr "Tệp ảnh" -#: common/models.py:3052 common/models.py:3256 +#: common/models.py:3116 common/models.py:3317 msgid "Target model type for this image" msgstr "" -#: common/models.py:3056 +#: common/models.py:3120 msgid "Target model ID for this image" msgstr "" -#: common/models.py:3078 +#: common/models.py:3142 msgid "Custom Unit" msgstr "" -#: common/models.py:3099 +#: common/models.py:3160 msgid "Unit symbol must be unique" msgstr "" -#: common/models.py:3114 +#: common/models.py:3175 msgid "Unit name must be a valid identifier" msgstr "Tên đơn vị phải là một định danh hợp lệ" -#: common/models.py:3133 +#: common/models.py:3194 msgid "Unit name" msgstr "Tên đơn vị" -#: common/models.py:3140 templates/InvenTree/settings/settings_staff_js.html:75 +#: common/models.py:3201 templates/InvenTree/settings/settings_staff_js.html:75 msgid "Symbol" msgstr "Biểu tượng" -#: common/models.py:3141 +#: common/models.py:3202 msgid "Optional unit symbol" msgstr "Biểu tượng đơn vị tùy chọn" -#: common/models.py:3147 templates/InvenTree/settings/settings_staff_js.html:71 +#: common/models.py:3208 templates/InvenTree/settings/settings_staff_js.html:71 msgid "Definition" msgstr "Định nghĩa" -#: common/models.py:3148 +#: common/models.py:3209 msgid "Unit definition" msgstr "Định nghĩa đơn vị" -#: common/models.py:3206 common/models.py:3263 stock/models.py:2558 -#: templates/js/translated/attachment.js:119 +#: common/models.py:3267 common/models.py:3324 stock/models.py:2674 +#: stock/serializers.py:244 templates/js/translated/attachment.js:119 #: templates/js/translated/attachment.js:345 msgid "Attachment" msgstr "Đính kèm" -#: common/models.py:3218 +#: common/models.py:3279 msgid "Missing file" msgstr "Tập tin bị thiếu" -#: common/models.py:3219 +#: common/models.py:3280 msgid "Missing external link" msgstr "Thiếu liên kết bên ngoài" -#: common/models.py:3264 +#: common/models.py:3325 msgid "Select file to attach" msgstr "Chọn file đính kèm" -#: common/models.py:3279 templates/js/translated/attachment.js:120 +#: common/models.py:3340 templates/js/translated/attachment.js:120 #: templates/js/translated/attachment.js:360 msgid "Comment" msgstr "Bình luận" -#: common/models.py:3280 +#: common/models.py:3341 msgid "Attachment comment" msgstr "" -#: common/models.py:3296 +#: common/models.py:3357 msgid "Upload date" msgstr "" -#: common/models.py:3297 +#: common/models.py:3358 msgid "Date the file was uploaded" msgstr "" -#: common/models.py:3301 +#: common/models.py:3362 msgid "File size" msgstr "" -#: common/models.py:3301 +#: common/models.py:3362 msgid "File size in bytes" msgstr "" -#: common/models.py:3339 common/serializers.py:562 +#: common/models.py:3400 common/serializers.py:609 msgid "Invalid model type specified for attachment" msgstr "" -#: common/notifications.py:314 +#: common/models.py:3409 plugin/models.py:43 users/models.py:100 +msgid "Key" +msgstr "Khóa" + +#: common/models.py:3410 +msgid "Value that will be saved in the models database" +msgstr "" + +#: common/models.py:3413 +msgid "Name of the state" +msgstr "" + +#: common/models.py:3417 part/serializers.py:273 +msgid "Label" +msgstr "" + +#: common/models.py:3418 +msgid "Label that will be displayed in the frontend" +msgstr "" + +#: common/models.py:3424 +msgid "Color" +msgstr "" + +#: common/models.py:3425 +msgid "Color that will be displayed in the frontend" +msgstr "" + +#: common/models.py:3428 +msgid "Logical Key" +msgstr "" + +#: common/models.py:3430 +msgid "State logical key that is equal to this custom state in business logic" +msgstr "" + +#: common/models.py:3438 part/serializers.py:275 +msgid "Model" +msgstr "" + +#: common/models.py:3439 +msgid "Model this state is associated with" +msgstr "" + +#: common/models.py:3443 +msgid "Reference Status Set" +msgstr "" + +#: common/models.py:3444 +msgid "Status set that is extended with this custom state" +msgstr "" + +#: common/models.py:3450 +msgid "Custom State" +msgstr "" + +#: common/models.py:3451 +msgid "Custom States" +msgstr "" + +#: common/models.py:3466 +msgid "Model must be selected" +msgstr "" + +#: common/models.py:3469 +msgid "Key must be selected" +msgstr "" + +#: common/models.py:3472 +msgid "Logical key must be selected" +msgstr "" + +#: common/models.py:3476 +msgid "Key must be different from logical key" +msgstr "" + +#: common/models.py:3480 +msgid "Reference status must be selected" +msgstr "" + +#: common/models.py:3492 +msgid "Reference status set not found" +msgstr "" + +#: common/models.py:3498 +msgid "Key must be different from the logical keys of the reference status" +msgstr "" + +#: common/models.py:3504 +msgid "Logical key must be in the logical keys of the reference status" +msgstr "" + +#: common/models.py:3519 +msgid "Barcode Scan" +msgstr "" + +#: common/models.py:3523 importer/models.py:512 part/models.py:4009 +msgid "Data" +msgstr "Dữ liệu" + +#: common/models.py:3524 +msgid "Barcode data" +msgstr "" + +#: common/models.py:3535 +msgid "User who scanned the barcode" +msgstr "" + +#: common/models.py:3540 importer/models.py:60 +msgid "Timestamp" +msgstr "" + +#: common/models.py:3541 +msgid "Date and time of the barcode scan" +msgstr "" + +#: common/models.py:3547 +msgid "URL endpoint which processed the barcode" +msgstr "" + +#: common/models.py:3554 order/models.py:1437 plugin/serializers.py:89 +msgid "Context" +msgstr "Ngữ cảnh" + +#: common/models.py:3555 +msgid "Context data for the barcode scan" +msgstr "" + +#: common/models.py:3562 +msgid "Response" +msgstr "" + +#: common/models.py:3563 +msgid "Response data from the barcode scan" +msgstr "" + +#: common/models.py:3569 report/templates/report/inventree_test_report.html:103 +#: stock/models.py:2660 +msgid "Result" +msgstr "Kết quả" + +#: common/models.py:3570 +msgid "Was the barcode scan successful?" +msgstr "" + +#: common/notifications.py:328 #, python-brace-format msgid "New {verbose_name}" msgstr "Mới {verbose_name}" -#: common/notifications.py:316 +#: common/notifications.py:330 msgid "A new order has been created and assigned to you" msgstr "Một đơn đặt hàng mới đã được tạo và phân công cho bạn" -#: common/notifications.py:322 +#: common/notifications.py:336 #, python-brace-format msgid "{verbose_name} canceled" msgstr "{verbose_name} đã bị hủy" -#: common/notifications.py:324 +#: common/notifications.py:338 msgid "A order that is assigned to you was canceled" msgstr "Một đơn đặt từng được phân công cho bạn đã bị hủy bỏ" -#: common/notifications.py:330 common/notifications.py:337 order/api.py:462 +#: common/notifications.py:344 common/notifications.py:351 order/api.py:440 msgid "Items Received" msgstr "Mục đã nhận" -#: common/notifications.py:332 +#: common/notifications.py:346 msgid "Items have been received against a purchase order" msgstr "Hàng đã được nhận theo đơn đặt mua" -#: common/notifications.py:339 +#: common/notifications.py:353 msgid "Items have been received against a return order" msgstr "Hàng đã nhận theo đơn hàng trả lại" -#: common/notifications.py:457 +#: common/notifications.py:475 msgid "Error raised by plugin" msgstr "Lỗi được thông báo bởi phần mở rộng" -#: common/serializers.py:375 +#: common/serializers.py:423 msgid "Is Running" msgstr "Đang chạy" -#: common/serializers.py:381 +#: common/serializers.py:429 msgid "Pending Tasks" msgstr "Công việc chờ xử lý" -#: common/serializers.py:387 +#: common/serializers.py:435 msgid "Scheduled Tasks" msgstr "Tác vụ theo lịch" -#: common/serializers.py:393 +#: common/serializers.py:441 msgid "Failed Tasks" msgstr "Tác vụ thất bại" -#: common/serializers.py:408 +#: common/serializers.py:456 msgid "Task ID" msgstr "ID tác vụ" -#: common/serializers.py:408 +#: common/serializers.py:456 msgid "Unique task ID" msgstr "ID tác vụ duy nhất" -#: common/serializers.py:410 +#: common/serializers.py:458 msgid "Lock" msgstr "Khoá" -#: common/serializers.py:410 +#: common/serializers.py:458 msgid "Lock time" msgstr "Thời gian khóa" -#: common/serializers.py:412 +#: common/serializers.py:460 msgid "Task name" msgstr "Tên công việc" -#: common/serializers.py:414 +#: common/serializers.py:462 msgid "Function" msgstr "Chức năng" -#: common/serializers.py:414 +#: common/serializers.py:462 msgid "Function name" msgstr "Tên chức năng" -#: common/serializers.py:416 +#: common/serializers.py:464 msgid "Arguments" msgstr "Đối số" -#: common/serializers.py:416 +#: common/serializers.py:464 msgid "Task arguments" msgstr "Đối số công việc" -#: common/serializers.py:419 +#: common/serializers.py:467 msgid "Keyword Arguments" msgstr "Đối số từ khóa" -#: common/serializers.py:419 +#: common/serializers.py:467 msgid "Task keyword arguments" msgstr "Đối số từ khóa công việc" -#: common/serializers.py:529 +#: common/serializers.py:577 msgid "Filename" msgstr "Tên tập tin" -#: common/serializers.py:536 report/api.py:100 report/serializers.py:53 +#: common/serializers.py:584 report/api.py:100 report/serializers.py:54 msgid "Model Type" msgstr "" -#: common/serializers.py:565 +#: common/serializers.py:612 msgid "User does not have permission to create or edit attachments for this model" msgstr "" @@ -4116,15 +4295,15 @@ msgstr "Khớp trường" msgid "Match Items" msgstr "Khớp hàng hóa" -#: common/views.py:401 +#: common/views.py:397 msgid "Fields matching failed" msgstr "Khớp trường thất bại" -#: common/views.py:464 +#: common/views.py:460 msgid "Parts imported" msgstr "Hàng hóa đã được nhập vào" -#: common/views.py:494 order/templates/order/order_wizard/match_fields.html:27 +#: common/views.py:490 order/templates/order/order_wizard/match_fields.html:27 #: order/templates/order/order_wizard/match_parts.html:19 #: order/templates/order/order_wizard/po_upload.html:49 #: part/templates/part/import_wizard/match_fields.html:27 @@ -4155,429 +4334,429 @@ msgstr "" msgid "Supplier is Active" msgstr "" -#: company/models.py:100 company/models.py:371 +#: company/models.py:97 company/models.py:368 #: company/templates/company/company_base.html:8 #: company/templates/company/company_base.html:12 stock/api.py:812 -#: templates/InvenTree/search.html:178 templates/js/translated/company.js:496 +#: templates/InvenTree/search.html:178 templates/js/translated/company.js:497 msgid "Company" msgstr "Doanh nghiêp" -#: company/models.py:101 company/views.py:51 +#: company/models.py:98 company/views.py:51 #: templates/js/translated/search.js:192 msgid "Companies" msgstr "Doanh nghiệp" -#: company/models.py:117 +#: company/models.py:114 msgid "Company description" msgstr "Mô tả công ty" -#: company/models.py:118 +#: company/models.py:115 msgid "Description of the company" msgstr "Mô tả của công ty" -#: company/models.py:123 company/templates/company/company_base.html:106 +#: company/models.py:120 company/templates/company/company_base.html:106 #: templates/InvenTree/settings/plugin_settings.html:54 -#: templates/js/translated/company.js:532 +#: templates/js/translated/company.js:533 msgid "Website" msgstr "Trang web" -#: company/models.py:123 +#: company/models.py:120 msgid "Company website URL" msgstr "URL trang web của công ty" -#: company/models.py:128 +#: company/models.py:125 msgid "Phone number" msgstr "Số điện thoại" -#: company/models.py:130 +#: company/models.py:127 msgid "Contact phone number" msgstr "Số điện thoại liên hệ" -#: company/models.py:137 +#: company/models.py:134 msgid "Contact email address" msgstr "Địa chỉ email liên hệ" -#: company/models.py:142 company/models.py:275 -#: company/templates/company/company_base.html:145 order/models.py:342 -#: order/templates/order/order_base.html:208 -#: order/templates/order/return_order_base.html:177 -#: order/templates/order/sales_order_base.html:221 +#: company/models.py:139 company/models.py:272 +#: company/templates/company/company_base.html:145 order/models.py:349 +#: order/templates/order/order_base.html:217 +#: order/templates/order/return_order_base.html:178 +#: order/templates/order/sales_order_base.html:222 msgid "Contact" msgstr "Liên hệ" -#: company/models.py:144 +#: company/models.py:141 msgid "Point of contact" msgstr "Đầu mối liên hệ" -#: company/models.py:150 +#: company/models.py:147 msgid "Link to external company information" msgstr "Liên kết đến thông tin công ty ngoài" -#: company/models.py:163 +#: company/models.py:160 msgid "Is this company active?" msgstr "" -#: company/models.py:168 +#: company/models.py:165 msgid "Is customer" msgstr "" -#: company/models.py:169 +#: company/models.py:166 msgid "Do you sell items to this company?" msgstr "Bạn có bán hàng cho công ty này?" -#: company/models.py:174 +#: company/models.py:171 msgid "Is supplier" msgstr "" -#: company/models.py:175 +#: company/models.py:172 msgid "Do you purchase items from this company?" msgstr "Bạn có mua hàng từ công ty này?" -#: company/models.py:180 +#: company/models.py:177 msgid "Is manufacturer" msgstr "" -#: company/models.py:181 +#: company/models.py:178 msgid "Does this company manufacture parts?" msgstr "Công ty này có sản xuất sản phẩm?" -#: company/models.py:189 +#: company/models.py:186 msgid "Default currency used for this company" msgstr "Tiền tệ mặc định dùng cho công ty này" -#: company/models.py:314 company/templates/company/company_base.html:124 -#: order/models.py:352 order/templates/order/order_base.html:215 -#: order/templates/order/return_order_base.html:184 -#: order/templates/order/sales_order_base.html:228 +#: company/models.py:311 company/templates/company/company_base.html:124 +#: order/models.py:359 order/templates/order/order_base.html:224 +#: order/templates/order/return_order_base.html:185 +#: order/templates/order/sales_order_base.html:229 msgid "Address" msgstr "Địa chỉ" -#: company/models.py:315 company/templates/company/sidebar.html:35 +#: company/models.py:312 company/templates/company/sidebar.html:35 msgid "Addresses" msgstr "Địa chỉ" -#: company/models.py:372 +#: company/models.py:369 msgid "Select company" msgstr "Chọn doanh nghiệp" -#: company/models.py:377 +#: company/models.py:374 msgid "Address title" msgstr "Tiêu đề địa chỉ" -#: company/models.py:378 +#: company/models.py:375 msgid "Title describing the address entry" msgstr "Tiêu đề mô tả mục địa chỉ" -#: company/models.py:384 +#: company/models.py:381 msgid "Primary address" msgstr "Địa chỉ chính" -#: company/models.py:385 +#: company/models.py:382 msgid "Set as primary address" msgstr "Đặt làm địa chỉ chính" -#: company/models.py:390 templates/js/translated/company.js:914 -#: templates/js/translated/company.js:971 +#: company/models.py:387 templates/js/translated/company.js:915 +#: templates/js/translated/company.js:972 msgid "Line 1" msgstr "Dòng 1" -#: company/models.py:391 +#: company/models.py:388 msgid "Address line 1" msgstr "Địa chỉ dòng 1" -#: company/models.py:397 templates/js/translated/company.js:915 -#: templates/js/translated/company.js:977 +#: company/models.py:394 templates/js/translated/company.js:916 +#: templates/js/translated/company.js:978 msgid "Line 2" msgstr "Dòng 2" -#: company/models.py:398 +#: company/models.py:395 msgid "Address line 2" msgstr "Địa chỉ dòng 2" -#: company/models.py:404 company/models.py:405 -#: templates/js/translated/company.js:983 +#: company/models.py:401 company/models.py:402 +#: templates/js/translated/company.js:984 msgid "Postal code" msgstr "Mã bưu chính" -#: company/models.py:411 +#: company/models.py:408 msgid "City/Region" msgstr "Thành phố/Vùng" -#: company/models.py:412 +#: company/models.py:409 msgid "Postal code city/region" msgstr "Mã bưu chính thành phố/vùng" -#: company/models.py:418 +#: company/models.py:415 msgid "State/Province" msgstr "Bang/Tỉnh" -#: company/models.py:419 +#: company/models.py:416 msgid "State or province" msgstr "Bang hay tỉnh" -#: company/models.py:425 templates/js/translated/company.js:1001 +#: company/models.py:422 templates/js/translated/company.js:1002 msgid "Country" msgstr "Quốc gia" -#: company/models.py:426 +#: company/models.py:423 msgid "Address country" msgstr "Địa chỉ quốc gia" -#: company/models.py:432 +#: company/models.py:429 msgid "Courier shipping notes" msgstr "Ghi chú vận chuyển" -#: company/models.py:433 +#: company/models.py:430 msgid "Notes for shipping courier" msgstr "Ghi chú dành cho chuyển phát nhanh" -#: company/models.py:439 +#: company/models.py:436 msgid "Internal shipping notes" msgstr "Ghi chú nội bọ chuyển phát nhanh" -#: company/models.py:440 +#: company/models.py:437 msgid "Shipping notes for internal use" msgstr "Ghi chú nội bộ sử dụng cho chuyển phát nhanh" -#: company/models.py:447 +#: company/models.py:444 msgid "Link to address information (external)" msgstr "Liên kết thông tin địa chỉ (bên ngoài)" -#: company/models.py:470 company/models.py:587 company/models.py:811 +#: company/models.py:467 company/models.py:584 company/models.py:808 #: company/templates/company/manufacturer_part.html:7 #: company/templates/company/manufacturer_part.html:24 -#: stock/templates/stock/item_base.html:217 +#: stock/templates/stock/item_base.html:214 msgid "Manufacturer Part" msgstr "Sản phẩm nhà sản xuất" -#: company/models.py:487 company/models.py:779 stock/models.py:787 -#: stock/serializers.py:445 stock/templates/stock/item_base.html:142 +#: company/models.py:484 company/models.py:776 stock/models.py:864 +#: stock/serializers.py:455 stock/templates/stock/item_base.html:139 #: templates/js/translated/bom.js:622 msgid "Base Part" msgstr "Sản phẩm cơ bản" -#: company/models.py:489 company/models.py:781 +#: company/models.py:486 company/models.py:778 msgid "Select part" msgstr "Chọn sản phẩm" -#: company/models.py:498 company/templates/company/company_base.html:82 +#: company/models.py:495 company/templates/company/company_base.html:82 #: company/templates/company/manufacturer_part.html:90 -#: company/templates/company/supplier_part.html:145 part/serializers.py:554 -#: stock/templates/stock/item_base.html:207 -#: templates/js/translated/company.js:507 -#: templates/js/translated/company.js:1118 -#: templates/js/translated/company.js:1296 -#: templates/js/translated/company.js:1611 +#: company/templates/company/supplier_part.html:146 part/serializers.py:598 +#: stock/templates/stock/item_base.html:204 +#: templates/js/translated/company.js:508 +#: templates/js/translated/company.js:1119 +#: templates/js/translated/company.js:1297 +#: templates/js/translated/company.js:1612 #: templates/js/translated/table_filters.js:812 msgid "Manufacturer" msgstr "Nhà sản xuất" -#: company/models.py:499 +#: company/models.py:496 msgid "Select manufacturer" msgstr "Chọn nhà sản xuất" -#: company/models.py:505 company/templates/company/manufacturer_part.html:101 -#: company/templates/company/supplier_part.html:153 order/serializers.py:556 -#: part/serializers.py:564 templates/js/translated/company.js:351 -#: templates/js/translated/company.js:1117 -#: templates/js/translated/company.js:1312 -#: templates/js/translated/company.js:1630 templates/js/translated/part.js:1807 -#: templates/js/translated/purchase_order.js:1921 -#: templates/js/translated/purchase_order.js:2123 +#: company/models.py:502 company/templates/company/manufacturer_part.html:101 +#: company/templates/company/supplier_part.html:154 order/serializers.py:641 +#: part/serializers.py:608 templates/js/translated/company.js:352 +#: templates/js/translated/company.js:1118 +#: templates/js/translated/company.js:1313 +#: templates/js/translated/company.js:1631 templates/js/translated/part.js:1807 +#: templates/js/translated/purchase_order.js:1905 +#: templates/js/translated/purchase_order.js:2107 msgid "MPN" msgstr "" -#: company/models.py:513 +#: company/models.py:510 msgid "URL for external manufacturer part link" msgstr "URL cho liên kết sản phẩm của nhà sản xuất bên ngoài" -#: company/models.py:522 +#: company/models.py:519 msgid "Manufacturer part description" msgstr "Mô tả sản phẩm của nhà sản xuất" -#: company/models.py:575 +#: company/models.py:572 msgid "Manufacturer Part Parameter" msgstr "" -#: company/models.py:594 +#: company/models.py:591 msgid "Parameter name" msgstr "Tên tham số" -#: company/models.py:600 report/templates/report/inventree_test_report.html:104 -#: stock/models.py:2550 templates/js/translated/company.js:1166 -#: templates/js/translated/company.js:1419 templates/js/translated/part.js:1499 +#: company/models.py:597 report/templates/report/inventree_test_report.html:104 +#: stock/models.py:2666 templates/js/translated/company.js:1167 +#: templates/js/translated/company.js:1420 templates/js/translated/part.js:1499 #: templates/js/translated/stock.js:1607 msgid "Value" msgstr "Giá trị" -#: company/models.py:601 +#: company/models.py:598 msgid "Parameter value" msgstr "Giá trị tham số" -#: company/models.py:608 company/templates/company/supplier_part.html:168 -#: part/admin.py:57 part/models.py:1147 part/models.py:3771 -#: part/templates/part/part_base.html:293 -#: templates/js/translated/company.js:1425 templates/js/translated/part.js:1518 +#: company/models.py:605 company/templates/company/supplier_part.html:169 +#: part/admin.py:57 part/models.py:1208 part/models.py:3822 +#: part/templates/part/part_base.html:301 +#: templates/js/translated/company.js:1426 templates/js/translated/part.js:1518 #: templates/js/translated/part.js:1622 templates/js/translated/part.js:2376 msgid "Units" msgstr "Đơn vị" -#: company/models.py:609 +#: company/models.py:606 msgid "Parameter units" msgstr "Đơn vị tham số" -#: company/models.py:662 company/templates/company/supplier_part.html:7 -#: company/templates/company/supplier_part.html:24 order/api.py:442 -#: order/serializers.py:491 stock/models.py:798 -#: stock/templates/stock/item_base.html:233 -#: templates/js/translated/build.js:1052 -#: templates/js/translated/company.js:1600 -#: templates/js/translated/purchase_order.js:752 -#: templates/js/translated/stock.js:2365 +#: company/models.py:659 company/templates/company/supplier_part.html:8 +#: company/templates/company/supplier_part.html:25 order/api.py:392 +#: order/serializers.py:576 stock/models.py:875 +#: stock/templates/stock/item_base.html:230 +#: templates/js/translated/build.js:1055 +#: templates/js/translated/company.js:1601 +#: templates/js/translated/purchase_order.js:735 +#: templates/js/translated/stock.js:2366 msgid "Supplier Part" msgstr "Sản phẩm nhà cung cấp" -#: company/models.py:719 +#: company/models.py:716 msgid "Pack units must be compatible with the base part units" msgstr "Đơn vị đóng gói phải tương thích với đơn vị sản phẩm cơ bản" -#: company/models.py:726 +#: company/models.py:723 msgid "Pack units must be greater than zero" msgstr "Đơn vị đóng gói phải lớn hơn không" -#: company/models.py:740 +#: company/models.py:737 msgid "Linked manufacturer part must reference the same base part" msgstr "Sản phẩm nhà sản xuất đã liên kết phải tham chiếu với sản phẩm cơ bản tương tự" -#: company/models.py:789 company/templates/company/company_base.html:87 -#: company/templates/company/supplier_part.html:129 order/models.py:491 -#: order/templates/order/order_base.html:141 part/bom.py:280 part/bom.py:318 -#: part/serializers.py:538 plugin/builtin/suppliers/digikey.py:25 +#: company/models.py:786 company/templates/company/company_base.html:87 +#: company/templates/company/supplier_part.html:130 order/models.py:503 +#: order/templates/order/order_base.html:150 part/bom.py:279 part/bom.py:314 +#: part/serializers.py:582 plugin/builtin/suppliers/digikey.py:25 #: plugin/builtin/suppliers/lcsc.py:26 plugin/builtin/suppliers/mouser.py:24 -#: plugin/builtin/suppliers/tme.py:26 stock/templates/stock/item_base.html:224 +#: plugin/builtin/suppliers/tme.py:26 stock/templates/stock/item_base.html:221 #: templates/email/overdue_purchase_order.html:16 -#: templates/js/translated/company.js:350 -#: templates/js/translated/company.js:511 -#: templates/js/translated/company.js:1584 templates/js/translated/part.js:1775 +#: templates/js/translated/company.js:351 +#: templates/js/translated/company.js:512 +#: templates/js/translated/company.js:1585 templates/js/translated/part.js:1775 #: templates/js/translated/pricing.js:498 -#: templates/js/translated/purchase_order.js:1759 +#: templates/js/translated/purchase_order.js:1743 #: templates/js/translated/table_filters.js:816 msgid "Supplier" msgstr "Nhà cung cấp" -#: company/models.py:790 +#: company/models.py:787 msgid "Select supplier" msgstr "Chọn nhà cung cấp" -#: company/models.py:796 part/serializers.py:549 +#: company/models.py:793 part/serializers.py:593 msgid "Supplier stock keeping unit" msgstr "Đơn vị quản lý kho nhà cung cấp" -#: company/models.py:802 +#: company/models.py:799 msgid "Is this supplier part active?" msgstr "" -#: company/models.py:812 +#: company/models.py:809 msgid "Select manufacturer part" msgstr "Chọn sản phẩm của nhà sản xuất" -#: company/models.py:819 +#: company/models.py:816 msgid "URL for external supplier part link" msgstr "URL cho liên kết sản phẩm của nhà cung cấp bên ngoài" -#: company/models.py:828 +#: company/models.py:825 msgid "Supplier part description" msgstr "Mô tả sản phẩm nhà cung cấp" -#: company/models.py:835 company/templates/company/supplier_part.html:187 -#: order/serializers.py:698 part/admin.py:415 part/models.py:4288 +#: company/models.py:832 company/templates/company/supplier_part.html:188 +#: order/serializers.py:783 part/admin.py:415 part/models.py:4345 #: part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_bill_of_materials_report.html:140 #: report/templates/report/inventree_purchase_order_report.html:32 #: report/templates/report/inventree_return_order_report.html:27 #: report/templates/report/inventree_sales_order_report.html:32 #: report/templates/report/inventree_stock_location_report.html:105 -#: stock/serializers.py:776 templates/js/translated/purchase_order.js:1185 -#: templates/js/translated/purchase_order.js:1344 +#: stock/serializers.py:807 templates/js/translated/purchase_order.js:1168 +#: templates/js/translated/purchase_order.js:1327 msgid "Note" msgstr "Ghi chú" -#: company/models.py:844 part/models.py:2117 +#: company/models.py:841 part/models.py:2177 msgid "base cost" msgstr "chi phí cơ sở" -#: company/models.py:845 part/models.py:2118 +#: company/models.py:842 part/models.py:2178 msgid "Minimum charge (e.g. stocking fee)" msgstr "Thu phí tối thiểu (vd: phí kho bãi)" -#: company/models.py:853 +#: company/models.py:850 msgid "Part packaging" msgstr "Đóng gói sản phẩm" -#: company/models.py:858 templates/js/translated/company.js:1651 +#: company/models.py:855 templates/js/translated/company.js:1652 #: templates/js/translated/part.js:1828 templates/js/translated/part.js:1884 -#: templates/js/translated/purchase_order.js:311 -#: templates/js/translated/purchase_order.js:841 -#: templates/js/translated/purchase_order.js:1103 -#: templates/js/translated/purchase_order.js:2154 -#: templates/js/translated/purchase_order.js:2171 +#: templates/js/translated/purchase_order.js:294 +#: templates/js/translated/purchase_order.js:824 +#: templates/js/translated/purchase_order.js:1086 +#: templates/js/translated/purchase_order.js:2138 +#: templates/js/translated/purchase_order.js:2155 msgid "Pack Quantity" msgstr "Số lượng gói" -#: company/models.py:860 +#: company/models.py:857 msgid "Total quantity supplied in a single pack. Leave empty for single items." msgstr "Tổng số lượng được cung cấp trong một gói đơn. Để trống cho các hàng hóa riêng lẻ." -#: company/models.py:879 part/models.py:2124 +#: company/models.py:876 part/models.py:2184 msgid "multiple" msgstr "nhiều" -#: company/models.py:880 +#: company/models.py:877 msgid "Order multiple" msgstr "Đặt hàng nhiều" -#: company/models.py:892 +#: company/models.py:889 msgid "Quantity available from supplier" msgstr "Số lượng có sẵn từ nhà cung cấp" -#: company/models.py:898 +#: company/models.py:895 msgid "Availability Updated" msgstr "Sẵn hàng đã được cập nhật" -#: company/models.py:899 +#: company/models.py:896 msgid "Date of last update of availability data" msgstr "Ngày cập nhật cuối thông tin tồn kho" -#: company/models.py:1027 +#: company/models.py:1024 msgid "Supplier Price Break" msgstr "" -#: company/serializers.py:174 +#: company/serializers.py:178 msgid "Default currency used for this supplier" msgstr "Tiền tệ mặc định được sử dụng cho nhà cung cấp này" -#: company/serializers.py:210 +#: company/serializers.py:214 msgid "Company Name" msgstr "" -#: company/serializers.py:393 part/admin.py:126 part/serializers.py:898 -#: part/templates/part/part_base.html:197 -#: templates/js/translated/company.js:1689 +#: company/serializers.py:397 part/admin.py:126 part/serializers.py:950 +#: part/templates/part/part_base.html:198 stock/serializers.py:474 +#: templates/js/translated/company.js:1690 #: templates/js/translated/table_filters.js:362 msgid "In Stock" msgstr "Còn hàng" #: company/templates/company/company_base.html:16 -#: part/templates/part/part_base.html:146 -#: templates/js/translated/company.js:1287 -#: templates/js/translated/company.js:1575 -#: templates/js/translated/model_renderers.js:313 +#: part/templates/part/part_base.html:147 +#: templates/js/translated/company.js:1288 +#: templates/js/translated/company.js:1576 +#: templates/js/translated/model_renderers.js:316 #: templates/js/translated/part.js:817 templates/js/translated/part.js:1225 msgid "Inactive" msgstr "Không hoạt động" #: company/templates/company/company_base.html:27 -#: templates/js/translated/purchase_order.js:242 +#: templates/js/translated/purchase_order.js:224 msgid "Create Purchase Order" msgstr "Tạo đơn mua hàng" @@ -4590,7 +4769,7 @@ msgid "Edit company information" msgstr "Sửa thông tin doanh nghiệp" #: company/templates/company/company_base.html:39 -#: templates/js/translated/company.js:445 +#: templates/js/translated/company.js:446 msgid "Edit Company" msgstr "Sửa doanh nghiệp" @@ -4605,11 +4784,12 @@ msgstr "Xóa doanh nghiệp" #: company/templates/company/company_base.html:53 #: company/templates/company/manufacturer_part.html:51 -#: company/templates/company/supplier_part.html:83 +#: company/templates/company/supplier_part.html:84 #: part/templates/part/part_thumb.html:20 #: report/templates/report/inventree_build_order_report.html:98 #: report/templates/report/inventree_purchase_order_report.html:40 #: report/templates/report/inventree_sales_order_report.html:40 +#: report/templates/report/inventree_sales_order_shipment_report.html:37 #: report/templates/report/inventree_test_report.html:84 #: report/templates/report/inventree_test_report.html:162 msgid "Part image" @@ -4630,16 +4810,16 @@ msgstr "Tải hình ảnh từ URL" msgid "Delete image" msgstr "Xóa ảnh" -#: company/templates/company/company_base.html:92 order/models.py:990 -#: order/models.py:2147 order/templates/order/return_order_base.html:134 -#: order/templates/order/sales_order_base.html:151 stock/models.py:840 -#: stock/models.py:841 stock/serializers.py:1329 -#: stock/templates/stock/item_base.html:405 +#: company/templates/company/company_base.html:92 order/models.py:1017 +#: order/models.py:2186 order/templates/order/return_order_base.html:135 +#: order/templates/order/sales_order_base.html:152 stock/models.py:917 +#: stock/models.py:918 stock/serializers.py:1360 +#: stock/templates/stock/item_base.html:402 #: templates/email/overdue_sales_order.html:16 -#: templates/js/translated/company.js:503 +#: templates/js/translated/company.js:504 #: templates/js/translated/return_order.js:295 -#: templates/js/translated/sales_order.js:820 -#: templates/js/translated/stock.js:3043 +#: templates/js/translated/sales_order.js:779 +#: templates/js/translated/stock.js:3044 #: templates/js/translated/table_filters.js:820 msgid "Customer" msgstr "Khách hàng" @@ -4653,7 +4833,7 @@ msgid "Phone" msgstr "Điện thoại" #: company/templates/company/company_base.html:211 -#: part/templates/part/part_base.html:536 +#: part/templates/part/part_base.html:544 msgid "Remove Image" msgstr "Xoá hình ảnh" @@ -4662,19 +4842,19 @@ msgid "Remove associated image from this company" msgstr "Xóa hình ảnh gắn với công ty này" #: company/templates/company/company_base.html:214 -#: part/templates/part/part_base.html:539 +#: part/templates/part/part_base.html:547 #: templates/InvenTree/settings/user.html:88 #: templates/InvenTree/settings/user_sso.html:43 msgid "Remove" msgstr "Xóa" #: company/templates/company/company_base.html:243 -#: part/templates/part/part_base.html:568 +#: part/templates/part/part_base.html:576 msgid "Upload Image" msgstr "Tải hình lên" #: company/templates/company/company_base.html:258 -#: part/templates/part/part_base.html:622 +#: part/templates/part/part_base.html:630 msgid "Download Image" msgstr "Tải ảnh xuống" @@ -4714,7 +4894,7 @@ msgstr "Kho nhà cung cấp" #: company/templates/company/detail.html:75 #: company/templates/company/sidebar.html:12 #: company/templates/company/supplier_part_sidebar.html:7 -#: order/templates/order/order_base.html:13 +#: order/templates/order/order_base.html:14 #: order/templates/order/purchase_orders.html:8 #: order/templates/order/purchase_orders.html:12 #: part/templates/part/detail.html:122 part/templates/part/part_sidebar.html:35 @@ -4737,7 +4917,7 @@ msgstr "Đơn đặt hàng mới" #: company/templates/company/detail.html:101 #: company/templates/company/sidebar.html:21 -#: order/templates/order/sales_order_base.html:13 +#: order/templates/order/sales_order_base.html:14 #: order/templates/order/sales_orders.html:8 #: order/templates/order/sales_orders.html:15 #: part/templates/part/detail.html:143 part/templates/part/part_sidebar.html:39 @@ -4764,7 +4944,7 @@ msgstr "Kho đã được giao" #: company/templates/company/detail.html:142 #: company/templates/company/sidebar.html:29 -#: order/templates/order/return_order_base.html:13 +#: order/templates/order/return_order_base.html:14 #: order/templates/order/return_orders.html:8 #: order/templates/order/return_orders.html:15 #: templates/InvenTree/settings/sidebar.html:61 @@ -4811,24 +4991,24 @@ msgid "Manufacturers" msgstr "Nhà sản xuất" #: company/templates/company/manufacturer_part.html:35 -#: company/templates/company/supplier_part.html:227 -#: part/templates/part/detail.html:125 part/templates/part/part_base.html:83 +#: company/templates/company/supplier_part.html:228 +#: part/templates/part/detail.html:125 part/templates/part/part_base.html:84 msgid "Order part" msgstr "Đặt mua sản phẩm" #: company/templates/company/manufacturer_part.html:39 -#: templates/js/translated/company.js:1343 +#: templates/js/translated/company.js:1344 msgid "Edit manufacturer part" msgstr "Sửa sản phẩm của nhà sản xuất" #: company/templates/company/manufacturer_part.html:43 -#: templates/js/translated/company.js:1344 +#: templates/js/translated/company.js:1345 msgid "Delete manufacturer part" msgstr "Xóa sản phẩm của nhà sản xuất" #: company/templates/company/manufacturer_part.html:65 -#: company/templates/company/supplier_part.html:97 order/api.py:448 -#: order/serializers.py:564 +#: company/templates/company/supplier_part.html:98 order/api.py:411 +#: order/serializers.py:649 msgid "Internal Part" msgstr "Sản phẩm nội bộ" @@ -4837,8 +5017,8 @@ msgid "No manufacturer information available" msgstr "Chưa có thông tin nhà sản xuất" #: company/templates/company/manufacturer_part.html:119 -#: company/templates/company/supplier_part.html:15 company/views.py:31 -#: part/admin.py:122 part/serializers.py:904 +#: company/templates/company/supplier_part.html:16 company/views.py:31 +#: part/admin.py:122 part/serializers.py:956 #: part/templates/part/part_sidebar.html:33 templates/InvenTree/search.html:190 #: templates/navbar.html:48 msgid "Suppliers" @@ -4887,112 +5067,113 @@ msgstr "Hàng trong kho đã được phân bổ" msgid "Contacts" msgstr "Danh bạ" -#: company/templates/company/supplier_part.html:50 -#: templates/js/translated/company.js:1526 +#: company/templates/company/supplier_part.html:51 +#: templates/js/translated/company.js:1527 msgid "Supplier part actions" msgstr "Chức năng cho sản phẩm nhà cung cấp" -#: company/templates/company/supplier_part.html:55 #: company/templates/company/supplier_part.html:56 -#: company/templates/company/supplier_part.html:228 +#: company/templates/company/supplier_part.html:57 +#: company/templates/company/supplier_part.html:229 #: part/templates/part/detail.html:126 msgid "Order Part" msgstr "Đặt hàng sản phẩm" -#: company/templates/company/supplier_part.html:60 #: company/templates/company/supplier_part.html:61 +#: company/templates/company/supplier_part.html:62 msgid "Update Availability" msgstr "Cập nhật tính sẵn sàng" -#: company/templates/company/supplier_part.html:63 #: company/templates/company/supplier_part.html:64 -#: templates/js/translated/company.js:294 +#: company/templates/company/supplier_part.html:65 +#: templates/js/translated/company.js:295 msgid "Edit Supplier Part" msgstr "Sửa sản phẩm nhà cung cấp" -#: company/templates/company/supplier_part.html:68 #: company/templates/company/supplier_part.html:69 -#: templates/js/translated/company.js:269 +#: company/templates/company/supplier_part.html:70 +#: templates/js/translated/company.js:270 msgid "Duplicate Supplier Part" msgstr "Nhân bản sản phẩm nhà cung cấp" -#: company/templates/company/supplier_part.html:73 +#: company/templates/company/supplier_part.html:74 msgid "Delete Supplier Part" msgstr "Xóa sản phẩm nhà cung cấp" -#: company/templates/company/supplier_part.html:74 +#: company/templates/company/supplier_part.html:75 msgid "Delete Supplier Part" msgstr "Xóa sản phẩm nhà cung cấp" -#: company/templates/company/supplier_part.html:133 +#: company/templates/company/supplier_part.html:134 +#: order/templates/order/order_base.html:155 msgid "No supplier information available" msgstr "Chưa có thông tin nhà cung cấp" -#: company/templates/company/supplier_part.html:139 order/serializers.py:553 -#: part/bom.py:287 part/bom.py:319 part/serializers.py:548 -#: templates/js/translated/company.js:349 templates/js/translated/part.js:1793 +#: company/templates/company/supplier_part.html:140 order/serializers.py:638 +#: part/bom.py:286 part/bom.py:315 part/serializers.py:592 +#: templates/js/translated/company.js:350 templates/js/translated/part.js:1793 #: templates/js/translated/pricing.js:510 -#: templates/js/translated/purchase_order.js:1920 -#: templates/js/translated/purchase_order.js:2098 +#: templates/js/translated/purchase_order.js:1904 +#: templates/js/translated/purchase_order.js:2082 msgid "SKU" msgstr "" -#: company/templates/company/supplier_part.html:206 +#: company/templates/company/supplier_part.html:207 msgid "Supplier Part Stock" msgstr "Kho sản phẩm nhà cung cấp" -#: company/templates/company/supplier_part.html:209 -#: part/templates/part/detail.html:24 stock/templates/stock/location.html:204 +#: company/templates/company/supplier_part.html:210 +#: part/templates/part/detail.html:24 stock/templates/stock/location.html:205 msgid "Create new stock item" msgstr "Thêm mới hàng trong kho" -#: company/templates/company/supplier_part.html:210 -#: part/templates/part/detail.html:25 stock/templates/stock/location.html:205 +#: company/templates/company/supplier_part.html:211 +#: part/templates/part/detail.html:25 stock/templates/stock/location.html:206 #: templates/js/translated/stock.js:543 msgid "New Stock Item" msgstr "Hàng trong kho mới" -#: company/templates/company/supplier_part.html:223 +#: company/templates/company/supplier_part.html:224 msgid "Supplier Part Orders" msgstr "Đơn đặt hàng nhà cung cấp" -#: company/templates/company/supplier_part.html:246 +#: company/templates/company/supplier_part.html:247 msgid "Pricing Information" msgstr "Thông tin giá cả" -#: company/templates/company/supplier_part.html:251 -#: templates/js/translated/company.js:398 +#: company/templates/company/supplier_part.html:252 +#: templates/js/translated/company.js:399 #: templates/js/translated/pricing.js:684 msgid "Add Price Break" msgstr "Thêm giá phá vỡ" -#: company/templates/company/supplier_part.html:270 +#: company/templates/company/supplier_part.html:271 msgid "Supplier Part Notes" msgstr "" -#: company/templates/company/supplier_part.html:305 +#: company/templates/company/supplier_part.html:306 msgid "Supplier Part QR Code" msgstr "Mã QR sản phẩm nhà cung cấp" -#: company/templates/company/supplier_part.html:316 +#: company/templates/company/supplier_part.html:317 msgid "Link Barcode to Supplier Part" msgstr "Liên kết mã vạch đến hàng hóa nhà cung cấp" -#: company/templates/company/supplier_part.html:388 +#: company/templates/company/supplier_part.html:389 msgid "Update Part Availability" msgstr "Cập nhật độ sẵn sàng sản phẩm" #: company/templates/company/supplier_part_sidebar.html:5 -#: part/serializers.py:902 part/stocktake.py:223 +#: part/serializers.py:954 part/stocktake.py:223 #: part/templates/part/category.html:180 #: part/templates/part/category_sidebar.html:17 stock/admin.py:68 -#: stock/serializers.py:1014 stock/serializers.py:1192 -#: stock/templates/stock/location.html:167 -#: stock/templates/stock/location.html:188 -#: stock/templates/stock/location.html:200 +#: stock/serializers.py:1045 stock/serializers.py:1223 +#: stock/templates/stock/location.html:168 +#: stock/templates/stock/location.html:189 +#: stock/templates/stock/location.html:201 #: stock/templates/stock/location_sidebar.html:7 #: templates/InvenTree/search.html:155 templates/js/translated/part.js:1067 -#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2850 +#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2851 #: users/models.py:206 msgid "Stock Items" msgstr "Hàng trong kho" @@ -5022,99 +5203,99 @@ msgstr "Khách hàng mới" msgid "New Company" msgstr "Doanh nghiệp mới" -#: generic/states/tests.py:18 order/status_codes.py:13 +#: generic/states/fields.py:118 +msgid "Custom status key" +msgstr "" + +#: generic/states/fields.py:119 +msgid "Additional status information for this item" +msgstr "" + +#: generic/states/tests.py:22 order/status_codes.py:13 msgid "Placed" msgstr "Đã đặt" -#: importer/mixins.py:263 +#: importer/mixins.py:261 msgid "Invalid export format" msgstr "" -#: importer/models.py:59 -msgid "Timestamp" -msgstr "" - -#: importer/models.py:64 +#: importer/models.py:65 msgid "Data file to import" msgstr "" -#: importer/models.py:73 templates/js/translated/tables.js:558 +#: importer/models.py:74 templates/js/translated/tables.js:558 msgid "Columns" msgstr "" -#: importer/models.py:84 +#: importer/models.py:85 msgid "Import status" msgstr "" -#: importer/models.py:94 +#: importer/models.py:95 msgid "Field Defaults" msgstr "" -#: importer/models.py:101 +#: importer/models.py:102 msgid "Field Overrides" msgstr "" -#: importer/models.py:108 +#: importer/models.py:109 msgid "Field Filters" msgstr "" -#: importer/models.py:230 +#: importer/models.py:239 msgid "Some required fields have not been mapped" msgstr "" -#: importer/models.py:387 +#: importer/models.py:396 msgid "Column is already mapped to a database field" msgstr "" -#: importer/models.py:392 +#: importer/models.py:401 msgid "Field is already mapped to a data column" msgstr "" -#: importer/models.py:401 +#: importer/models.py:410 msgid "Column mapping must be linked to a valid import session" msgstr "" -#: importer/models.py:406 +#: importer/models.py:415 msgid "Column does not exist in the data file" msgstr "" -#: importer/models.py:413 +#: importer/models.py:422 msgid "Field does not exist in the target model" msgstr "" -#: importer/models.py:417 +#: importer/models.py:426 msgid "Selected field is read-only" msgstr "" -#: importer/models.py:422 importer/models.py:493 +#: importer/models.py:431 importer/models.py:502 msgid "Import Session" msgstr "" -#: importer/models.py:426 +#: importer/models.py:435 msgid "Field" msgstr "" -#: importer/models.py:428 +#: importer/models.py:437 msgid "Column" msgstr "" -#: importer/models.py:497 +#: importer/models.py:506 msgid "Row Index" msgstr "" -#: importer/models.py:500 +#: importer/models.py:509 msgid "Original row data" msgstr "" -#: importer/models.py:503 part/models.py:3951 -msgid "Data" -msgstr "Dữ liệu" - -#: importer/models.py:505 machine/models.py:110 +#: importer/models.py:514 machine/models.py:110 msgid "Errors" msgstr "" -#: importer/models.py:507 part/api.py:873 +#: importer/models.py:516 part/api.py:857 msgid "Valid" msgstr "Hợp lệ" @@ -5166,19 +5347,19 @@ msgstr "" msgid "Row has already been completed" msgstr "" -#: importer/status_codes.py:11 +#: importer/status_codes.py:13 msgid "Initializing" msgstr "" -#: importer/status_codes.py:12 +#: importer/status_codes.py:18 msgid "Mapping Columns" msgstr "" -#: importer/status_codes.py:13 +#: importer/status_codes.py:21 msgid "Importing Data" msgstr "" -#: importer/status_codes.py:16 +#: importer/status_codes.py:24 msgid "Processing Data" msgstr "" @@ -5202,52 +5383,52 @@ msgstr "" msgid "Value must be a valid dictionary object" msgstr "" -#: machine/machine_types/label_printer.py:215 +#: machine/machine_types/label_printer.py:216 msgid "Copies" msgstr "" -#: machine/machine_types/label_printer.py:216 +#: machine/machine_types/label_printer.py:217 msgid "Number of copies to print for each label" msgstr "" -#: machine/machine_types/label_printer.py:231 +#: machine/machine_types/label_printer.py:232 msgid "Connected" msgstr "" -#: machine/machine_types/label_printer.py:232 order/api.py:1410 -#: templates/js/translated/sales_order.js:1078 +#: machine/machine_types/label_printer.py:233 order/api.py:1532 +#: templates/js/translated/sales_order.js:1044 msgid "Unknown" msgstr "Không rõ" -#: machine/machine_types/label_printer.py:233 +#: machine/machine_types/label_printer.py:234 msgid "Printing" msgstr "" -#: machine/machine_types/label_printer.py:234 +#: machine/machine_types/label_printer.py:235 msgid "No media" msgstr "" -#: machine/machine_types/label_printer.py:235 +#: machine/machine_types/label_printer.py:236 msgid "Paper jam" msgstr "" -#: machine/machine_types/label_printer.py:236 +#: machine/machine_types/label_printer.py:237 msgid "Disconnected" msgstr "" -#: machine/machine_types/label_printer.py:243 +#: machine/machine_types/label_printer.py:244 msgid "Label Printer" msgstr "" -#: machine/machine_types/label_printer.py:244 +#: machine/machine_types/label_printer.py:245 msgid "Directly print labels for various items." msgstr "" -#: machine/machine_types/label_printer.py:250 +#: machine/machine_types/label_printer.py:251 msgid "Printer Location" msgstr "" -#: machine/machine_types/label_printer.py:251 +#: machine/machine_types/label_printer.py:252 msgid "Scope the printer to a specific location" msgstr "" @@ -5307,79 +5488,75 @@ msgstr "" #: report/templates/report/inventree_purchase_order_report.html:31 #: report/templates/report/inventree_sales_order_report.html:31 #: templates/js/translated/order.js:352 -#: templates/js/translated/purchase_order.js:2195 -#: templates/js/translated/sales_order.js:1883 +#: templates/js/translated/purchase_order.js:2179 +#: templates/js/translated/sales_order.js:1864 msgid "Total Price" msgstr "Tổng tiền" -#: order/api.py:80 order/api.py:151 order/serializers.py:93 -#: order/templates/order/order_base.html:123 -#: order/templates/order/return_order_base.html:116 -#: order/templates/order/sales_order_base.html:125 +#: order/api.py:78 order/api.py:149 order/serializers.py:124 +#: order/templates/order/order_base.html:124 +#: order/templates/order/return_order_base.html:117 +#: order/templates/order/sales_order_base.html:126 msgid "Order Status" msgstr "Trạng thái đặt hàng" -#: order/api.py:88 order/templates/order/order_base.html:111 -#: order/templates/order/return_order_base.html:104 -#: order/templates/order/sales_order_base.html:113 +#: order/api.py:86 order/templates/order/order_base.html:112 +#: order/templates/order/return_order_base.html:105 +#: order/templates/order/sales_order_base.html:114 msgid "Order Reference" msgstr "Tham chiếu đơn đặt" -#: order/api.py:116 templates/js/translated/table_filters.js:93 +#: order/api.py:114 order/api.py:1022 +#: templates/js/translated/table_filters.js:93 #: templates/js/translated/table_filters.js:625 #: templates/js/translated/table_filters.js:651 #: templates/js/translated/table_filters.js:666 msgid "Outstanding" msgstr "" -#: order/api.py:132 +#: order/api.py:130 msgid "Has Project Code" msgstr "" -#: order/api.py:155 templates/js/translated/table_filters.js:201 +#: order/api.py:153 templates/js/translated/table_filters.js:201 #: templates/js/translated/table_filters.js:791 msgid "Has Pricing" msgstr "" -#: order/api.py:230 -msgid "No matching purchase order found" -msgstr "Không tìm thấy đơn đặt mua phù hợp" - -#: order/api.py:425 order/api.py:763 order/models.py:1484 order/models.py:1598 -#: order/models.py:1649 order/models.py:1764 order/models.py:1923 -#: order/models.py:2383 order/models.py:2439 -#: templates/js/translated/sales_order.js:1524 +#: order/api.py:375 order/api.py:771 order/api.py:986 order/models.py:1500 +#: order/models.py:1614 order/models.py:1665 order/models.py:1793 +#: order/models.py:1956 order/models.py:2422 order/models.py:2478 +#: templates/js/translated/sales_order.js:1490 msgid "Order" msgstr "Đặt hàng" -#: order/api.py:429 order/api.py:784 +#: order/api.py:379 order/api.py:809 msgid "Order Complete" msgstr "" -#: order/api.py:452 +#: order/api.py:430 msgid "Order Pending" msgstr "" -#: order/api.py:1404 order/models.py:379 order/models.py:1485 -#: order/models.py:1599 order/templates/order/order_base.html:9 -#: order/templates/order/order_base.html:18 +#: order/api.py:1526 order/models.py:386 order/models.py:1501 +#: order/models.py:1615 order/templates/order/order_base.html:10 +#: order/templates/order/order_base.html:19 #: report/templates/report/inventree_purchase_order_report.html:14 -#: stock/serializers.py:120 stock/templates/stock/item_base.html:176 +#: stock/serializers.py:121 stock/templates/stock/item_base.html:173 #: templates/email/overdue_purchase_order.html:15 #: templates/js/translated/part.js:1752 templates/js/translated/pricing.js:804 -#: templates/js/translated/purchase_order.js:168 -#: templates/js/translated/purchase_order.js:753 -#: templates/js/translated/purchase_order.js:1743 -#: templates/js/translated/stock.js:2345 templates/js/translated/stock.js:2991 +#: templates/js/translated/purchase_order.js:736 +#: templates/js/translated/purchase_order.js:1727 +#: templates/js/translated/stock.js:2346 templates/js/translated/stock.js:2992 msgid "Purchase Order" msgstr "Đơn hàng" -#: order/api.py:1408 order/models.py:2091 order/models.py:2384 -#: order/models.py:2440 order/templates/order/return_order_base.html:9 -#: order/templates/order/return_order_base.html:28 +#: order/api.py:1530 order/models.py:2124 order/models.py:2423 +#: order/models.py:2479 order/templates/order/return_order_base.html:10 +#: order/templates/order/return_order_base.html:29 #: report/templates/report/inventree_return_order_report.html:13 #: templates/js/translated/return_order.js:280 -#: templates/js/translated/stock.js:3025 +#: templates/js/translated/stock.js:3026 msgid "Return Order" msgstr "Đơn hàng trả lại" @@ -5387,751 +5564,782 @@ msgstr "Đơn hàng trả lại" msgid "Total price for this order" msgstr "Tổng tiền cho đơn hàng hàng" -#: order/models.py:95 order/serializers.py:71 +#: order/models.py:95 order/serializers.py:73 msgid "Order Currency" msgstr "Tiền tệ đơn đặt hàng" -#: order/models.py:98 order/serializers.py:72 +#: order/models.py:98 order/serializers.py:74 msgid "Currency for this order (leave blank to use company default)" msgstr "Tiền tệ cho đơn đặt này (để trống để sử dụng tiền mặc định)" -#: order/models.py:246 +#: order/models.py:243 msgid "Contact does not match selected company" msgstr "Liên hệ không phù hợp với doanh nghiệp đã chọn" -#: order/models.py:289 +#: order/models.py:296 msgid "Order description (optional)" msgstr "Mô tả đơn đặt (tùy chọn)" -#: order/models.py:298 +#: order/models.py:305 msgid "Select project code for this order" msgstr "Mã dự án đã chọn cho đơn đặt hàng này" -#: order/models.py:302 order/models.py:1385 order/models.py:1817 +#: order/models.py:309 order/models.py:1402 order/models.py:1846 msgid "Link to external page" msgstr "Liên kết đến trang bên ngoài" -#: order/models.py:310 +#: order/models.py:317 msgid "Expected date for order delivery. Order will be overdue after this date." msgstr "Ngày mong muốn giao được hàng. Đơn đặt sẽ quá hạn sau ngày này." -#: order/models.py:324 +#: order/models.py:331 msgid "Created By" msgstr "Tạo bởi" -#: order/models.py:332 +#: order/models.py:339 msgid "User or group responsible for this order" msgstr "Người dùng hoặc nhóm có trách nhiệm với đơn đặt này" -#: order/models.py:343 +#: order/models.py:350 msgid "Point of contact for this order" msgstr "Đầu mối liên hệ của đơn đặt này" -#: order/models.py:353 +#: order/models.py:360 msgid "Company address for this order" msgstr "Địa chỉ công ty cho đơn đặt này" -#: order/models.py:468 order/models.py:979 +#: order/models.py:480 order/models.py:1006 msgid "Order reference" msgstr "Mã đặt hàng" -#: order/models.py:477 +#: order/models.py:489 msgid "Purchase order status" msgstr "Trạng thái đơn đặt mua" -#: order/models.py:492 +#: order/models.py:504 msgid "Company from which the items are being ordered" msgstr "Doanh nghiệp từ những hàng hóa đang được đặt mua" -#: order/models.py:503 order/templates/order/order_base.html:153 -#: templates/js/translated/purchase_order.js:1772 +#: order/models.py:515 order/templates/order/order_base.html:162 +#: templates/js/translated/purchase_order.js:1756 msgid "Supplier Reference" msgstr "Tham chiếu nhà cung cấp" -#: order/models.py:504 +#: order/models.py:516 msgid "Supplier order reference code" msgstr "Mã tham chiếu đơn đặt nhà cung cấp" -#: order/models.py:513 +#: order/models.py:525 msgid "received by" msgstr "nhận bởi" -#: order/models.py:519 order/models.py:2173 +#: order/models.py:531 order/models.py:2212 msgid "Issue Date" msgstr "Ngày phát hành" -#: order/models.py:520 order/models.py:2174 +#: order/models.py:532 order/models.py:2213 msgid "Date order was issued" msgstr "Ngày đặt hàng đã phát hành" -#: order/models.py:527 order/models.py:2181 +#: order/models.py:539 order/models.py:2220 msgid "Date order was completed" msgstr "Ngày đặt hàng đã được hoàn thiện" -#: order/models.py:571 +#: order/models.py:549 order/models.py:1552 +msgid "Destination for received items" +msgstr "" + +#: order/models.py:593 msgid "Part supplier must match PO supplier" msgstr "Nhà cung cấp sản phẩm phải trùng với nhà cung cấp PO" -#: order/models.py:806 +#: order/models.py:828 msgid "Quantity must be a positive number" msgstr "Số lượng phải là số dương" -#: order/models.py:991 +#: order/models.py:1018 msgid "Company to which the items are being sold" msgstr "Doanh nghiệp từ những hàng hóa đang được bán" -#: order/models.py:1003 +#: order/models.py:1030 msgid "Sales order status" msgstr "" -#: order/models.py:1014 order/models.py:2166 +#: order/models.py:1041 order/models.py:2205 msgid "Customer Reference " msgstr "Tham chiếu khách hàng " -#: order/models.py:1015 order/models.py:2167 +#: order/models.py:1042 order/models.py:2206 msgid "Customer order reference code" msgstr "Mã tham chiếu đơn đặt của khách hàng" -#: order/models.py:1019 order/models.py:1771 -#: templates/js/translated/sales_order.js:879 -#: templates/js/translated/sales_order.js:1060 +#: order/models.py:1046 order/models.py:1800 +#: templates/js/translated/sales_order.js:838 +#: templates/js/translated/sales_order.js:1026 msgid "Shipment Date" msgstr "Ngày giao hàng" -#: order/models.py:1028 +#: order/models.py:1055 msgid "shipped by" msgstr "vận chuyển bằng" -#: order/models.py:1077 +#: order/models.py:1094 msgid "Order is already complete" msgstr "" -#: order/models.py:1080 +#: order/models.py:1097 msgid "Order is already cancelled" msgstr "" -#: order/models.py:1084 +#: order/models.py:1101 msgid "Only an open order can be marked as complete" msgstr "Những đơn hàng đang mở thì sẽ được đánh dấu là hoàn thành" -#: order/models.py:1088 +#: order/models.py:1105 msgid "Order cannot be completed as there are incomplete shipments" msgstr "Đơn hàng không thể hoàn thành được vì vận chuyển chưa xong" -#: order/models.py:1093 +#: order/models.py:1110 msgid "Order cannot be completed as there are incomplete line items" msgstr "Đơn hàng không thể hoàn thành được vì những khoản riêng chưa xong" -#: order/models.py:1357 +#: order/models.py:1374 msgid "Item quantity" msgstr "Số lượng mặt hàng" -#: order/models.py:1374 +#: order/models.py:1391 msgid "Line item reference" msgstr "Tham chiếu khoản riêng" -#: order/models.py:1381 +#: order/models.py:1398 msgid "Line item notes" msgstr "Ghi chú khoản riêng" -#: order/models.py:1393 +#: order/models.py:1410 msgid "Target date for this line item (leave blank to use the target date from the order)" msgstr "Ngày mục tiêu cho khoản riêng này (để trống để sử dụng ngày mục tiêu từ đơn đặt)" -#: order/models.py:1414 +#: order/models.py:1431 msgid "Line item description (optional)" msgstr "Mô tả khoản riêng (tùy chọn)" -#: order/models.py:1420 -msgid "Context" -msgstr "Ngữ cảnh" - -#: order/models.py:1421 +#: order/models.py:1438 msgid "Additional context for this line" msgstr "Ngữ cảnh bổ sung" -#: order/models.py:1431 +#: order/models.py:1448 msgid "Unit price" msgstr "Đơn giá" -#: order/models.py:1445 +#: order/models.py:1462 msgid "Purchase Order Line Item" msgstr "" -#: order/models.py:1469 +#: order/models.py:1486 msgid "Supplier part must match supplier" msgstr "Sản phẩm nhà cung cấp phải phù hợp với nhà cung cung cấp" -#: order/models.py:1476 -msgid "deleted" -msgstr "đã bị xóa" - -#: order/models.py:1504 +#: order/models.py:1520 msgid "Supplier part" msgstr "Sản phẩm nhà cung cấp" -#: order/models.py:1511 order/templates/order/order_base.html:201 +#: order/models.py:1527 order/templates/order/order_base.html:210 #: templates/js/translated/part.js:1876 templates/js/translated/part.js:1908 -#: templates/js/translated/purchase_order.js:1369 -#: templates/js/translated/purchase_order.js:2239 +#: templates/js/translated/purchase_order.js:1352 +#: templates/js/translated/purchase_order.js:2223 #: templates/js/translated/return_order.js:762 #: templates/js/translated/table_filters.js:119 #: templates/js/translated/table_filters.js:605 msgid "Received" msgstr "Đã nhận" -#: order/models.py:1512 +#: order/models.py:1528 msgid "Number of items received" msgstr "Số mục đã nhận" -#: order/models.py:1520 stock/models.py:959 stock/serializers.py:610 -#: stock/templates/stock/item_base.html:183 -#: templates/js/translated/stock.js:2396 +#: order/models.py:1536 stock/models.py:1036 stock/serializers.py:637 +#: stock/templates/stock/item_base.html:180 +#: templates/js/translated/stock.js:2397 msgid "Purchase Price" msgstr "Giá mua" -#: order/models.py:1521 +#: order/models.py:1537 msgid "Unit purchase price" msgstr "Giá đơn vị mua" -#: order/models.py:1536 -msgid "Where does the Purchaser want this item to be stored?" -msgstr "Có phải người mua hàng muốn mặt hàng này được tích trữ?" - -#: order/models.py:1587 +#: order/models.py:1603 msgid "Purchase Order Extra Line" msgstr "" -#: order/models.py:1616 +#: order/models.py:1632 msgid "Sales Order Line Item" msgstr "" -#: order/models.py:1637 +#: order/models.py:1653 msgid "Virtual part cannot be assigned to a sales order" msgstr "Không thể gán sản phẩm ảo vào trong đơn đặt bán hàng" -#: order/models.py:1642 +#: order/models.py:1658 msgid "Only salable parts can be assigned to a sales order" msgstr "Chỉ có thể gán sản phẩm có thể bán vào đơn đặt bán hàng" -#: order/models.py:1668 part/templates/part/part_pricing.html:107 -#: part/templates/part/prices.html:139 templates/js/translated/pricing.js:957 +#: order/models.py:1684 part/templates/part/part_pricing.html:107 +#: part/templates/part/prices.html:139 templates/js/translated/pricing.js:955 msgid "Sale Price" msgstr "Giá bán" -#: order/models.py:1669 +#: order/models.py:1685 msgid "Unit sale price" msgstr "Giá bán đơn vị" -#: order/models.py:1678 order/status_codes.py:48 -#: templates/js/translated/sales_order.js:1559 -#: templates/js/translated/sales_order.js:1680 -#: templates/js/translated/sales_order.js:1993 +#: order/models.py:1694 order/status_codes.py:50 +#: templates/js/translated/sales_order.js:1525 +#: templates/js/translated/sales_order.js:1661 +#: templates/js/translated/sales_order.js:1974 msgid "Shipped" msgstr "Đã chuyển" -#: order/models.py:1679 +#: order/models.py:1695 msgid "Shipped quantity" msgstr "Số lượng đã vận chuyển" -#: order/models.py:1751 +#: order/models.py:1769 msgid "Sales Order Shipment" msgstr "" -#: order/models.py:1772 +#: order/models.py:1801 msgid "Date of shipment" msgstr "Ngày vận chuyển" -#: order/models.py:1778 templates/js/translated/sales_order.js:1072 +#: order/models.py:1807 templates/js/translated/sales_order.js:1038 msgid "Delivery Date" msgstr "Ngày giao hàng" -#: order/models.py:1779 +#: order/models.py:1808 msgid "Date of delivery of shipment" msgstr "Ngày giao hàng của vận chuyển" -#: order/models.py:1787 +#: order/models.py:1816 msgid "Checked By" msgstr "Kiểm tra bởi" -#: order/models.py:1788 +#: order/models.py:1817 msgid "User who checked this shipment" msgstr "Người dùng đã kiểm tra vận chuyển này" -#: order/models.py:1795 order/models.py:2018 order/serializers.py:1475 -#: order/serializers.py:1585 templates/js/translated/model_renderers.js:455 +#: order/models.py:1824 order/models.py:2051 order/serializers.py:1601 +#: order/serializers.py:1725 +#: report/templates/report/inventree_sales_order_shipment_report.html:14 +#: templates/js/translated/model_renderers.js:458 +#: templates/js/translated/sales_order.js:1615 msgid "Shipment" msgstr "Vận chuyển" -#: order/models.py:1796 +#: order/models.py:1825 msgid "Shipment number" msgstr "Mã vận chuyển" -#: order/models.py:1804 +#: order/models.py:1833 msgid "Tracking Number" msgstr "Số theo dõi" -#: order/models.py:1805 +#: order/models.py:1834 msgid "Shipment tracking information" msgstr "Thông tin theo dõi vận chuyển" -#: order/models.py:1812 +#: order/models.py:1841 msgid "Invoice Number" msgstr "Mã hóa đơn" -#: order/models.py:1813 +#: order/models.py:1842 msgid "Reference number for associated invoice" msgstr "Số tham chiếu liên kết với hóa đơn" -#: order/models.py:1833 +#: order/models.py:1862 msgid "Shipment has already been sent" msgstr "Vận đơn đã được gửi đi" -#: order/models.py:1836 +#: order/models.py:1865 msgid "Shipment has no allocated stock items" msgstr "Vận đơn chưa có hàng hóa được phân bổ" -#: order/models.py:1912 +#: order/models.py:1945 msgid "Sales Order Extra Line" msgstr "" -#: order/models.py:1941 +#: order/models.py:1974 msgid "Sales Order Allocation" msgstr "" -#: order/models.py:1964 order/models.py:1966 +#: order/models.py:1997 order/models.py:1999 msgid "Stock item has not been assigned" msgstr "Hàng trong kho chưa được giao" -#: order/models.py:1973 +#: order/models.py:2006 msgid "Cannot allocate stock item to a line with a different part" msgstr "Không thể phân bổ hàng hóa vào cùng với dòng với sản phẩm khác" -#: order/models.py:1976 +#: order/models.py:2009 msgid "Cannot allocate stock to a line without a part" msgstr "Không thể phân bổ hàng hóa vào một dòng mà không có sản phẩm nào" -#: order/models.py:1979 +#: order/models.py:2012 msgid "Allocation quantity cannot exceed stock quantity" msgstr "Số lượng phân bổ không thể vượt quá số lượng của kho" -#: order/models.py:1998 order/serializers.py:1345 +#: order/models.py:2031 order/serializers.py:1471 msgid "Quantity must be 1 for serialized stock item" msgstr "Số lượng phải là 1 cho hàng hóa sêri" -#: order/models.py:2001 +#: order/models.py:2034 msgid "Sales order does not match shipment" msgstr "Đơn bán hàng không phù hợp với vận đơn" -#: order/models.py:2002 plugin/base/barcodes/api.py:524 +#: order/models.py:2035 plugin/base/barcodes/api.py:629 msgid "Shipment does not match sales order" msgstr "Vận đơn không phù hợp với đơn bán hàng" -#: order/models.py:2010 +#: order/models.py:2043 msgid "Line" msgstr "Dòng" -#: order/models.py:2019 +#: order/models.py:2052 msgid "Sales order shipment reference" msgstr "Tham chiếu vận đơn của đơn hàng bán" -#: order/models.py:2032 order/models.py:2391 +#: order/models.py:2065 order/models.py:2430 #: templates/js/translated/return_order.js:720 msgid "Item" msgstr "Hàng hóa" -#: order/models.py:2033 +#: order/models.py:2066 msgid "Select stock item to allocate" msgstr "Chọn hàng trong kho để phân bổ" -#: order/models.py:2042 +#: order/models.py:2075 msgid "Enter stock allocation quantity" msgstr "Nhập số lượng phân kho" -#: order/models.py:2136 +#: order/models.py:2175 msgid "Return Order reference" msgstr "Tham chiếu đơn hàng trả lại" -#: order/models.py:2148 +#: order/models.py:2187 msgid "Company from which items are being returned" msgstr "Công ty có hàng hóa sẽ được trả lại" -#: order/models.py:2160 +#: order/models.py:2199 msgid "Return order status" msgstr "Trạng thái đơn hàng trả lại" -#: order/models.py:2362 +#: order/models.py:2401 msgid "Return Order Line Item" msgstr "" -#: order/models.py:2376 +#: order/models.py:2415 msgid "Only serialized items can be assigned to a Return Order" msgstr "Chỉ hàng hóa thêo sêri mới có thể được gán vào đơn hàng trả lại" -#: order/models.py:2392 +#: order/models.py:2431 msgid "Select item to return from customer" msgstr "Chọn hàng hóa để trả lại từ khách hàng" -#: order/models.py:2398 +#: order/models.py:2437 msgid "Received Date" msgstr "Ngày nhận được" -#: order/models.py:2399 +#: order/models.py:2438 msgid "The date this this return item was received" msgstr "Ngày mà hàng hóa trả lại đã được nhận" -#: order/models.py:2410 templates/js/translated/return_order.js:731 +#: order/models.py:2449 templates/js/translated/return_order.js:731 #: templates/js/translated/table_filters.js:122 msgid "Outcome" msgstr "Kết quả" -#: order/models.py:2411 +#: order/models.py:2450 msgid "Outcome for this line item" msgstr "Kết quả cho hàng hóa dòng này" -#: order/models.py:2418 +#: order/models.py:2457 msgid "Cost associated with return or repair for this line item" msgstr "Chi phí gắn với hàng trả lại hoặc sửa chữa cho dòng hàng hóa này" -#: order/models.py:2428 +#: order/models.py:2467 msgid "Return Order Extra Line" msgstr "" -#: order/serializers.py:86 +#: order/serializers.py:87 +msgid "Order ID" +msgstr "" + +#: order/serializers.py:87 +msgid "ID of the order to duplicate" +msgstr "" + +#: order/serializers.py:93 +msgid "Copy Lines" +msgstr "" + +#: order/serializers.py:94 +msgid "Copy line items from the original order" +msgstr "" + +#: order/serializers.py:100 +msgid "Copy Extra Lines" +msgstr "" + +#: order/serializers.py:101 +msgid "Copy extra line items from the original order" +msgstr "" + +#: order/serializers.py:117 msgid "Completed Lines" msgstr "" -#: order/serializers.py:283 stock/admin.py:195 +#: order/serializers.py:161 +msgid "Duplicate Order" +msgstr "" + +#: order/serializers.py:162 +msgid "Specify options for duplicating this order" +msgstr "" + +#: order/serializers.py:234 +msgid "Invalid order ID" +msgstr "" + +#: order/serializers.py:374 stock/admin.py:196 msgid "Supplier Name" msgstr "Tên nhà cung cấp" -#: order/serializers.py:331 +#: order/serializers.py:416 msgid "Order cannot be cancelled" msgstr "Đơn đặt không thể bị hủy" -#: order/serializers.py:346 order/serializers.py:1366 +#: order/serializers.py:431 order/serializers.py:1492 msgid "Allow order to be closed with incomplete line items" msgstr "Cho phép đơn đặt phải đóng lại cùng với các mục dòng hàng hóa chưa hoàn thành" -#: order/serializers.py:356 order/serializers.py:1376 +#: order/serializers.py:441 order/serializers.py:1502 msgid "Order has incomplete line items" msgstr "Đơn đặt có dòng hàng hóa chưa hoàn thành" -#: order/serializers.py:506 +#: order/serializers.py:591 msgid "Order is not open" msgstr "Đơn đặt là không được mở" -#: order/serializers.py:527 +#: order/serializers.py:612 msgid "Auto Pricing" msgstr "" -#: order/serializers.py:529 +#: order/serializers.py:614 msgid "Automatically calculate purchase price based on supplier part data" msgstr "" -#: order/serializers.py:539 +#: order/serializers.py:624 msgid "Purchase price currency" msgstr "Tiền tệ giá mua" -#: order/serializers.py:545 +#: order/serializers.py:630 msgid "Merge Items" msgstr "" -#: order/serializers.py:547 +#: order/serializers.py:632 msgid "Merge items with the same part, destination and target date into one line item" msgstr "" -#: order/serializers.py:560 part/models.py:1033 +#: order/serializers.py:645 part/models.py:1094 part/serializers.py:387 msgid "Internal Part Number" msgstr "Mã sản phẩm nội bộ" -#: order/serializers.py:568 +#: order/serializers.py:653 msgid "Internal Part Name" msgstr "" -#: order/serializers.py:584 +#: order/serializers.py:669 msgid "Supplier part must be specified" msgstr "Sản phẩm nhà cung cấp phải được chỉ định" -#: order/serializers.py:587 +#: order/serializers.py:672 msgid "Purchase order must be specified" msgstr "Đơn đặt mua phải được chỉ định" -#: order/serializers.py:595 +#: order/serializers.py:680 msgid "Supplier must match purchase order" msgstr "Nhà cung cấp phải phù hợp với đơn đặt mua" -#: order/serializers.py:596 +#: order/serializers.py:681 msgid "Purchase order must match supplier" msgstr "Đơn đặt mua phải phù hợp với nhà cung cấp" -#: order/serializers.py:639 order/serializers.py:1446 +#: order/serializers.py:724 order/serializers.py:1572 msgid "Line Item" msgstr "Mục dòng" -#: order/serializers.py:645 +#: order/serializers.py:730 msgid "Line item does not match purchase order" msgstr "Mục dòng không phù hợp với đơn đặt mua" -#: order/serializers.py:655 order/serializers.py:779 order/serializers.py:1782 +#: order/serializers.py:740 order/serializers.py:881 order/serializers.py:1934 msgid "Select destination location for received items" msgstr "Chọn vị trí đích cho hàng hóa đã nhận" -#: order/serializers.py:671 templates/js/translated/purchase_order.js:1130 +#: order/serializers.py:756 templates/js/translated/purchase_order.js:1113 #: templates/js/translated/stock.js:1200 msgid "Enter batch code for incoming stock items" msgstr "Nhập mã lô cho hàng trong kho đang đến" -#: order/serializers.py:679 templates/js/translated/purchase_order.js:1155 +#: order/serializers.py:764 templates/js/translated/purchase_order.js:1138 msgid "Enter serial numbers for incoming stock items" msgstr "Nhập số sê ri cho hàng trong kho đang đến" -#: order/serializers.py:691 +#: order/serializers.py:776 msgid "Override packaging information for incoming stock items" msgstr "" -#: order/serializers.py:699 +#: order/serializers.py:784 msgid "Additional note for incoming stock items" msgstr "" -#: order/serializers.py:706 templates/js/translated/barcode.js:52 +#: order/serializers.py:791 templates/js/translated/barcode.js:52 msgid "Barcode" msgstr "Mã vạch" -#: order/serializers.py:707 +#: order/serializers.py:792 msgid "Scanned barcode" msgstr "Mã vạch đã quét" -#: order/serializers.py:723 +#: order/serializers.py:808 msgid "Barcode is already in use" msgstr "Mã vạch đã được dùng" -#: order/serializers.py:747 +#: order/serializers.py:831 msgid "An integer quantity must be provided for trackable parts" msgstr "Cần điền số nguyên cho sản phẩm có thể theo dõi" -#: order/serializers.py:795 order/serializers.py:1798 +#: order/serializers.py:898 order/serializers.py:1950 msgid "Line items must be provided" msgstr "Dòng hàng hóa phải được cung cấp" -#: order/serializers.py:811 +#: order/serializers.py:914 msgid "Destination location must be specified" msgstr "Vị trí đích phải được chỉ ra" -#: order/serializers.py:822 +#: order/serializers.py:925 msgid "Supplied barcode values must be unique" msgstr "Giá trị mã vạch đã cung cấp phải duy nhất" -#: order/serializers.py:1187 +#: order/serializers.py:1221 msgid "Sale price currency" msgstr "Tiền tệ giá bán" -#: order/serializers.py:1248 +#: order/serializers.py:1260 +msgid "Allocated Items" +msgstr "" + +#: order/serializers.py:1374 msgid "No shipment details provided" msgstr "Chưa cung cấp thông tin vận chuyển" -#: order/serializers.py:1309 order/serializers.py:1455 +#: order/serializers.py:1435 order/serializers.py:1581 msgid "Line item is not associated with this order" msgstr "Dòng hàng hóa chưa được gắn với đơn đặt này" -#: order/serializers.py:1328 +#: order/serializers.py:1454 msgid "Quantity must be positive" msgstr "Số lượng phải là số dương" -#: order/serializers.py:1465 +#: order/serializers.py:1591 msgid "Enter serial numbers to allocate" msgstr "Nhập số sê ri để phân bổ" -#: order/serializers.py:1487 order/serializers.py:1593 +#: order/serializers.py:1613 order/serializers.py:1733 msgid "Shipment has already been shipped" msgstr "Vận đơn đã được chuyển đi" -#: order/serializers.py:1490 order/serializers.py:1596 +#: order/serializers.py:1616 order/serializers.py:1736 msgid "Shipment is not associated with this order" msgstr "Vận đơn không được gắn với đơn đặt này" -#: order/serializers.py:1537 +#: order/serializers.py:1671 msgid "No match found for the following serial numbers" msgstr "Không tìm thấy số sê ri sau đây" -#: order/serializers.py:1544 -msgid "The following serial numbers are already allocated" -msgstr "Những số sê ri sau đây đã được phân bổ" +#: order/serializers.py:1678 +msgid "The following serial numbers are unavailable" +msgstr "" -#: order/serializers.py:1752 +#: order/serializers.py:1904 msgid "Return order line item" msgstr "Dòng riêng biệt đơn hàng trả lại" -#: order/serializers.py:1758 +#: order/serializers.py:1910 msgid "Line item does not match return order" msgstr "Line item không phù hợp với đơn hàng trả lại" -#: order/serializers.py:1761 +#: order/serializers.py:1913 msgid "Line item has already been received" msgstr "Line item đã nhận được" -#: order/serializers.py:1790 +#: order/serializers.py:1942 msgid "Items can only be received against orders which are in progress" msgstr "Hàng hóa chỉ có thể được nhận theo đơn hàng đang trong tiến trình" -#: order/serializers.py:1873 +#: order/serializers.py:2025 msgid "Line price currency" msgstr "Tiền tệ giá đồng hạng" -#: order/status_codes.py:17 order/status_codes.py:52 stock/status_codes.py:16 +#: order/status_codes.py:17 order/status_codes.py:54 stock/status_codes.py:16 msgid "Lost" msgstr "Mất" -#: order/status_codes.py:18 order/status_codes.py:53 stock/status_codes.py:22 +#: order/status_codes.py:18 order/status_codes.py:55 stock/status_codes.py:24 msgid "Returned" msgstr "Đã trả lại" -#: order/status_codes.py:45 order/status_codes.py:77 +#: order/status_codes.py:47 order/status_codes.py:79 msgid "In Progress" msgstr "Đang tiến hành" -#: order/status_codes.py:101 +#: order/status_codes.py:105 msgid "Return" msgstr "Trả lại" -#: order/status_codes.py:104 +#: order/status_codes.py:108 msgid "Repair" msgstr "Sửa chữa" -#: order/status_codes.py:107 +#: order/status_codes.py:111 msgid "Replace" msgstr "Thay thế" -#: order/status_codes.py:110 +#: order/status_codes.py:114 msgid "Refund" msgstr "Hoàn tiền" -#: order/status_codes.py:113 +#: order/status_codes.py:117 msgid "Reject" msgstr "Từ chối" -#: order/tasks.py:25 +#: order/tasks.py:30 msgid "Overdue Purchase Order" msgstr "Đơn đặt mua quá hạn" -#: order/tasks.py:30 +#: order/tasks.py:35 #, python-brace-format msgid "Purchase order {po} is now overdue" msgstr "Đơn đặt mua {po} quá hạn" -#: order/tasks.py:75 +#: order/tasks.py:80 msgid "Overdue Sales Order" msgstr "Đơn bán hàng quá hạn" -#: order/tasks.py:80 +#: order/tasks.py:85 #, python-brace-format msgid "Sales order {so} is now overdue" msgstr "Đơn bán hàng {so} đã quá hạn" -#: order/templates/order/order_base.html:51 +#: order/templates/order/order_base.html:52 msgid "Print purchase order report" msgstr "In báo cáo đơn đặt mua" -#: order/templates/order/order_base.html:53 -#: order/templates/order/return_order_base.html:62 -#: order/templates/order/sales_order_base.html:62 +#: order/templates/order/order_base.html:54 +#: order/templates/order/return_order_base.html:63 +#: order/templates/order/sales_order_base.html:63 msgid "Export order to file" msgstr "Xuất đơn đặt sang tệp tin" -#: order/templates/order/order_base.html:59 -#: order/templates/order/return_order_base.html:72 -#: order/templates/order/sales_order_base.html:71 +#: order/templates/order/order_base.html:60 +#: order/templates/order/return_order_base.html:73 +#: order/templates/order/sales_order_base.html:72 msgid "Order actions" msgstr "Chức năng đơn đặt" -#: order/templates/order/order_base.html:64 -#: order/templates/order/return_order_base.html:76 -#: order/templates/order/sales_order_base.html:75 +#: order/templates/order/order_base.html:65 +#: order/templates/order/return_order_base.html:77 +#: order/templates/order/sales_order_base.html:76 msgid "Edit order" msgstr "Chỉnh sửa đơn đặt" -#: order/templates/order/order_base.html:68 +#: order/templates/order/order_base.html:69 msgid "Duplicate order" msgstr "Đơn đặt trùng" -#: order/templates/order/order_base.html:73 -#: order/templates/order/return_order_base.html:78 -#: order/templates/order/sales_order_base.html:77 +#: order/templates/order/order_base.html:74 +#: order/templates/order/return_order_base.html:79 +#: order/templates/order/sales_order_base.html:78 msgid "Hold order" msgstr "" -#: order/templates/order/order_base.html:78 -#: order/templates/order/return_order_base.html:81 -#: order/templates/order/sales_order_base.html:80 +#: order/templates/order/order_base.html:79 +#: order/templates/order/return_order_base.html:82 +#: order/templates/order/sales_order_base.html:81 msgid "Cancel order" msgstr "Hủy đơn đặt" -#: order/templates/order/order_base.html:84 #: order/templates/order/order_base.html:85 -#: order/templates/order/return_order_base.html:85 +#: order/templates/order/order_base.html:86 #: order/templates/order/return_order_base.html:86 -#: order/templates/order/sales_order_base.html:86 +#: order/templates/order/return_order_base.html:87 #: order/templates/order/sales_order_base.html:87 +#: order/templates/order/sales_order_base.html:88 msgid "Issue Order" msgstr "Vấn đề đơn hàng" -#: order/templates/order/order_base.html:88 -#: order/templates/order/return_order_base.html:89 +#: order/templates/order/order_base.html:89 +#: order/templates/order/return_order_base.html:90 msgid "Mark order as complete" msgstr "Đánh dấu đơn đặt đã hoàn thành" -#: order/templates/order/order_base.html:89 -#: order/templates/order/return_order_base.html:90 -#: order/templates/order/sales_order_base.html:100 +#: order/templates/order/order_base.html:90 +#: order/templates/order/return_order_base.html:91 +#: order/templates/order/sales_order_base.html:101 msgid "Complete Order" msgstr "Đơn đặt hoàn thành" -#: order/templates/order/order_base.html:96 +#: order/templates/order/order_base.html:97 msgid "Supplier part thumbnail" msgstr "Ảnh thu nhỏ sản phẩm nhà cung cấp" -#: order/templates/order/order_base.html:116 -#: order/templates/order/return_order_base.html:109 -#: order/templates/order/sales_order_base.html:118 +#: order/templates/order/order_base.html:117 +#: order/templates/order/return_order_base.html:110 +#: order/templates/order/sales_order_base.html:119 msgid "Order Description" msgstr "Mô tả đơn đặt" -#: order/templates/order/order_base.html:146 -msgid "No suppplier information available" -msgstr "Chưa có thông tin nhà cung cấp" - -#: order/templates/order/order_base.html:159 -#: order/templates/order/sales_order_base.html:164 +#: order/templates/order/order_base.html:168 +#: order/templates/order/sales_order_base.html:165 msgid "Completed Line Items" msgstr "Mục dòng hoàn thành" -#: order/templates/order/order_base.html:165 -#: order/templates/order/sales_order_base.html:170 -#: order/templates/order/sales_order_base.html:180 +#: order/templates/order/order_base.html:174 +#: order/templates/order/sales_order_base.html:171 +#: order/templates/order/sales_order_base.html:181 msgid "Incomplete" msgstr "Chưa hoàn thành" -#: order/templates/order/order_base.html:184 -#: order/templates/order/return_order_base.html:160 +#: order/templates/order/order_base.html:193 +#: order/templates/order/return_order_base.html:161 #: report/templates/report/inventree_build_order_report.html:121 msgid "Issued" msgstr "Đã cấp" -#: order/templates/order/order_base.html:229 +#: order/templates/order/order_base.html:238 msgid "Total cost" msgstr "Tổng chi phí" -#: order/templates/order/order_base.html:233 -#: order/templates/order/return_order_base.html:202 -#: order/templates/order/sales_order_base.html:246 +#: order/templates/order/order_base.html:242 +#: order/templates/order/return_order_base.html:203 +#: order/templates/order/sales_order_base.html:247 msgid "Total cost could not be calculated" msgstr "Không thể tính tổng chi phí" -#: order/templates/order/order_base.html:335 +#: order/templates/order/order_base.html:344 msgid "Purchase Order QR Code" msgstr "Mã QR đơn đặt mua" -#: order/templates/order/order_base.html:347 +#: order/templates/order/order_base.html:356 msgid "Link Barcode to Purchase Order" msgstr "Liên kết mã vạch đến đơn đặt mua" @@ -6184,12 +6392,12 @@ msgstr "Lựa chọn trùng lặp" #: part/templates/part/import_wizard/ajax_match_references.html:42 #: part/templates/part/import_wizard/match_fields.html:71 #: part/templates/part/import_wizard/match_references.html:49 -#: templates/js/translated/bom.js:133 templates/js/translated/build.js:530 -#: templates/js/translated/build.js:1802 -#: templates/js/translated/purchase_order.js:696 -#: templates/js/translated/purchase_order.js:1288 +#: templates/js/translated/bom.js:133 templates/js/translated/build.js:533 +#: templates/js/translated/build.js:1805 +#: templates/js/translated/purchase_order.js:679 +#: templates/js/translated/purchase_order.js:1271 #: templates/js/translated/return_order.js:505 -#: templates/js/translated/sales_order.js:1145 +#: templates/js/translated/sales_order.js:1111 #: templates/js/translated/stock.js:720 templates/js/translated/stock.js:889 #: templates/patterns/wizard/match_fields.html:70 msgid "Remove row" @@ -6242,7 +6450,7 @@ msgstr "Hàng hóa đặt mua" #: order/templates/order/purchase_order_detail.html:27 #: order/templates/order/return_order_detail.html:24 #: order/templates/order/sales_order_detail.html:24 -#: templates/js/translated/purchase_order.js:414 +#: templates/js/translated/purchase_order.js:397 #: templates/js/translated/return_order.js:458 #: templates/js/translated/sales_order.js:237 msgid "Add Line Item" @@ -6277,45 +6485,45 @@ msgstr "Mục đã nhận" msgid "Order Notes" msgstr "Ghi chú đơn đặt" -#: order/templates/order/return_order_base.html:18 -#: order/templates/order/sales_order_base.html:18 +#: order/templates/order/return_order_base.html:19 +#: order/templates/order/sales_order_base.html:19 msgid "Customer logo thumbnail" msgstr "Ảnh thu nhỏ logo khách hàng" -#: order/templates/order/return_order_base.html:60 +#: order/templates/order/return_order_base.html:61 msgid "Print return order report" msgstr "In báo cáo đơn hàng trả lại" -#: order/templates/order/return_order_base.html:64 -#: order/templates/order/sales_order_base.html:64 +#: order/templates/order/return_order_base.html:65 +#: order/templates/order/sales_order_base.html:65 msgid "Print packing list" msgstr "In danh sách đóng gói" -#: order/templates/order/return_order_base.html:141 -#: order/templates/order/sales_order_base.html:158 +#: order/templates/order/return_order_base.html:142 +#: order/templates/order/sales_order_base.html:159 #: templates/js/translated/return_order.js:308 -#: templates/js/translated/sales_order.js:833 +#: templates/js/translated/sales_order.js:792 msgid "Customer Reference" msgstr "Mã khách hàng" -#: order/templates/order/return_order_base.html:198 -#: order/templates/order/sales_order_base.html:242 +#: order/templates/order/return_order_base.html:199 +#: order/templates/order/sales_order_base.html:243 #: part/templates/part/part_pricing.html:32 #: part/templates/part/part_pricing.html:58 #: part/templates/part/part_pricing.html:99 #: part/templates/part/part_pricing.html:114 #: templates/js/translated/part.js:1079 -#: templates/js/translated/purchase_order.js:1822 +#: templates/js/translated/purchase_order.js:1806 #: templates/js/translated/return_order.js:380 -#: templates/js/translated/sales_order.js:891 +#: templates/js/translated/sales_order.js:850 msgid "Total Cost" msgstr "Tổng chi phí" -#: order/templates/order/return_order_base.html:273 +#: order/templates/order/return_order_base.html:274 msgid "Return Order QR Code" msgstr "Mã QR đơn hàng trả lại" -#: order/templates/order/return_order_base.html:285 +#: order/templates/order/return_order_base.html:286 msgid "Link Barcode to Return Order" msgstr "" @@ -6323,40 +6531,40 @@ msgstr "" msgid "Order Details" msgstr "Chi tiết đơn đặt" -#: order/templates/order/sales_order_base.html:60 +#: order/templates/order/sales_order_base.html:61 msgid "Print sales order report" msgstr "In báo cáo đơn hàng bán" -#: order/templates/order/sales_order_base.html:91 #: order/templates/order/sales_order_base.html:92 +#: order/templates/order/sales_order_base.html:93 msgid "Ship Items" msgstr "Mục vận chuyển" -#: order/templates/order/sales_order_base.html:95 #: order/templates/order/sales_order_base.html:96 +#: order/templates/order/sales_order_base.html:97 msgid "Mark As Shipped" msgstr "" -#: order/templates/order/sales_order_base.html:99 -#: templates/js/translated/sales_order.js:536 +#: order/templates/order/sales_order_base.html:100 +#: templates/js/translated/sales_order.js:495 msgid "Complete Sales Order" msgstr "Hoàn thành đơn bán hàng" -#: order/templates/order/sales_order_base.html:138 +#: order/templates/order/sales_order_base.html:139 msgid "This Sales Order has not been fully allocated" msgstr "Chưa phân bổ đầy đủ đơn bán hàng" -#: order/templates/order/sales_order_base.html:176 +#: order/templates/order/sales_order_base.html:177 #: order/templates/order/sales_order_detail.html:99 #: order/templates/order/so_sidebar.html:11 msgid "Completed Shipments" msgstr "Vận đơn đã hoàn thành" -#: order/templates/order/sales_order_base.html:339 +#: order/templates/order/sales_order_base.html:340 msgid "Sales Order QR Code" msgstr "" -#: order/templates/order/sales_order_base.html:351 +#: order/templates/order/sales_order_base.html:352 msgid "Link Barcode to Sales Order" msgstr "" @@ -6370,7 +6578,7 @@ msgid "Pending Shipments" msgstr "Vận chuyển đang chờ xử lý" #: order/templates/order/sales_order_detail.html:71 -#: templates/js/translated/bom.js:1277 templates/js/translated/build.js:1063 +#: templates/js/translated/bom.js:1277 templates/js/translated/build.js:1066 #: templates/js/translated/filters.js:299 msgid "Actions" msgstr "Chức năng" @@ -6383,39 +6591,40 @@ msgstr "Lô hàng mới" msgid "Match Supplier Parts" msgstr "Khớp sản phẩm nhà cung cấp" -#: order/views.py:406 +#: order/views.py:407 msgid "Sales order not found" msgstr "Đơn hàng bán không thấy" -#: order/views.py:412 +#: order/views.py:413 msgid "Price not found" msgstr "Không tìm thấy giá" -#: order/views.py:415 +#: order/views.py:416 #, python-brace-format msgid "Updated {part} unit-price to {price}" msgstr "Cập nhật {part} giá đơn vị đến {price}" -#: order/views.py:421 +#: order/views.py:422 #, python-brace-format msgid "Updated {part} unit-price to {price} and quantity to {qty}" msgstr "Cập nhật {part} giá đơn vị đến {price} và số lượng đến {qty}" -#: part/admin.py:48 part/models.py:1032 part/templates/part/part_base.html:269 +#: part/admin.py:48 part/models.py:1093 part/serializers.py:939 +#: part/templates/part/part_base.html:277 #: report/templates/report/inventree_stock_location_report.html:103 #: templates/js/translated/part.js:1233 templates/js/translated/part.js:2347 -#: templates/js/translated/stock.js:2121 +#: templates/js/translated/stock.js:2122 msgid "IPN" msgstr "" -#: part/admin.py:50 part/models.py:1041 part/templates/part/part_base.html:286 +#: part/admin.py:50 part/models.py:1102 part/templates/part/part_base.html:294 #: report/models.py:161 templates/js/translated/part.js:1238 #: templates/js/translated/part.js:2353 msgid "Revision" msgstr "Phiên bản" -#: part/admin.py:53 part/admin.py:319 part/models.py:1014 -#: part/templates/part/category.html:91 part/templates/part/part_base.html:307 +#: part/admin.py:53 part/admin.py:319 part/models.py:1075 +#: part/templates/part/category.html:91 part/templates/part/part_base.html:315 msgid "Keywords" msgstr "Từ khóa" @@ -6427,7 +6636,7 @@ msgstr "Ảnh sản phẩm" msgid "Category ID" msgstr "ID danh mục" -#: part/admin.py:67 part/admin.py:304 part/serializers.py:880 +#: part/admin.py:67 part/admin.py:304 part/serializers.py:924 #: part/stocktake.py:222 msgid "Category Name" msgstr "Tên danh mục" @@ -6440,11 +6649,11 @@ msgstr "ID vị trí mặc định" msgid "Default Supplier ID" msgstr "ID nhà cung ứng mặc định" -#: part/admin.py:81 part/models.py:1000 part/templates/part/part_base.html:177 +#: part/admin.py:81 part/models.py:1061 part/templates/part/part_base.html:178 msgid "Variant Of" msgstr "Biến thể của" -#: part/admin.py:84 part/models.py:1138 part/templates/part/part_base.html:203 +#: part/admin.py:84 part/models.py:1199 part/templates/part/part_base.html:204 msgid "Minimum Stock" msgstr "Kho tối thiểu" @@ -6452,23 +6661,23 @@ msgstr "Kho tối thiểu" msgid "Used In" msgstr "Sử dụng trong" -#: part/admin.py:150 part/serializers.py:897 -#: part/templates/part/part_base.html:241 stock/admin.py:235 +#: part/admin.py:150 part/serializers.py:949 +#: part/templates/part/part_base.html:249 stock/admin.py:236 #: templates/js/translated/part.js:717 templates/js/translated/part.js:2159 msgid "Building" msgstr "Đang dựng" -#: part/admin.py:155 part/models.py:3202 part/models.py:3216 +#: part/admin.py:155 part/models.py:3253 part/models.py:3267 #: templates/js/translated/part.js:976 msgid "Minimum Cost" msgstr "Chi phí tối thiểu" -#: part/admin.py:158 part/models.py:3209 part/models.py:3223 +#: part/admin.py:158 part/models.py:3260 part/models.py:3274 #: templates/js/translated/part.js:986 msgid "Maximum Cost" msgstr "Chi phí tối đa" -#: part/admin.py:308 part/admin.py:387 stock/admin.py:57 stock/admin.py:215 +#: part/admin.py:308 part/admin.py:387 stock/admin.py:57 stock/admin.py:216 msgid "Parent ID" msgstr "ID cha" @@ -6481,8 +6690,8 @@ msgstr "Tên cha" msgid "Category Path" msgstr "Đưỡng dẫn danh mục" -#: part/admin.py:325 part/models.py:425 part/serializers.py:130 -#: part/serializers.py:290 part/serializers.py:415 +#: part/admin.py:325 part/models.py:420 part/serializers.py:130 +#: part/serializers.py:323 part/serializers.py:459 #: part/templates/part/cat_link.html:3 part/templates/part/category.html:20 #: part/templates/part/category.html:138 part/templates/part/category.html:158 #: part/templates/part/category_sidebar.html:9 @@ -6509,15 +6718,15 @@ msgstr "IPN cha" msgid "Part Revision" msgstr "" -#: part/admin.py:418 part/serializers.py:1346 +#: part/admin.py:418 part/serializers.py:1400 #: templates/js/translated/pricing.js:358 -#: templates/js/translated/pricing.js:1024 +#: templates/js/translated/pricing.js:1022 msgid "Minimum Price" msgstr "Giá thấp nhất" -#: part/admin.py:423 part/serializers.py:1361 +#: part/admin.py:423 part/serializers.py:1415 #: templates/js/translated/pricing.js:353 -#: templates/js/translated/pricing.js:1032 +#: templates/js/translated/pricing.js:1030 msgid "Maximum Price" msgstr "Giá cao nhất" @@ -6545,94 +6754,98 @@ msgstr "" msgid "Filter by top-level categories" msgstr "" +#: part/api.py:156 stock/api.py:343 +msgid "Cascade" +msgstr "" + #: part/api.py:158 msgid "Include sub-categories in filtered results" msgstr "" -#: part/api.py:179 templates/js/translated/part.js:311 +#: part/api.py:178 templates/js/translated/part.js:311 msgid "Parent" msgstr "" -#: part/api.py:181 +#: part/api.py:180 msgid "Filter by parent category" msgstr "" -#: part/api.py:214 +#: part/api.py:213 msgid "Exclude Tree" msgstr "" -#: part/api.py:216 +#: part/api.py:215 msgid "Exclude sub-categories under the specified category" msgstr "" -#: part/api.py:441 +#: part/api.py:440 msgid "Has Results" msgstr "" -#: part/api.py:608 +#: part/api.py:604 msgid "Incoming Purchase Order" msgstr "Đơn đặt mua vào" -#: part/api.py:626 +#: part/api.py:618 msgid "Outgoing Sales Order" msgstr "Đơn hàng bán ra" -#: part/api.py:642 +#: part/api.py:630 msgid "Stock produced by Build Order" msgstr "Kho sản xuất bởi Đơn đặt bản dựng" -#: part/api.py:726 +#: part/api.py:712 msgid "Stock required for Build Order" msgstr "Kho được yêu cầu cho đơn đặt bản dựng" -#: part/api.py:874 +#: part/api.py:858 msgid "Validate entire Bill of Materials" msgstr "Xác minh toàn bộ hóa đơn vật liệu" -#: part/api.py:880 +#: part/api.py:864 msgid "This option must be selected" msgstr "Tùy chọn này phải được chọn" -#: part/api.py:916 +#: part/api.py:900 msgid "Is Revision" msgstr "" -#: part/api.py:926 +#: part/api.py:910 msgid "Has Revisions" msgstr "" -#: part/api.py:1117 +#: part/api.py:1101 msgid "BOM Valid" msgstr "" -#: part/api.py:1523 part/models.py:1024 part/models.py:3489 part/models.py:4046 -#: part/serializers.py:430 part/serializers.py:1202 -#: part/templates/part/part_base.html:260 stock/api.py:781 +#: part/api.py:1509 part/models.py:1085 part/models.py:3540 part/models.py:4104 +#: part/serializers.py:474 part/serializers.py:1255 +#: part/templates/part/part_base.html:268 stock/api.py:781 #: templates/InvenTree/settings/settings_staff_js.html:300 #: templates/js/translated/notification.js:60 #: templates/js/translated/part.js:2383 msgid "Category" msgstr "Danh mục" -#: part/api.py:1761 +#: part/api.py:1750 msgid "Assembly part is testable" msgstr "" -#: part/api.py:1770 +#: part/api.py:1759 msgid "Component part is testable" msgstr "" -#: part/api.py:1821 +#: part/api.py:1810 msgid "Uses" msgstr "" -#: part/bom.py:178 part/models.py:107 part/models.py:1077 -#: part/templates/part/category.html:113 part/templates/part/part_base.html:376 +#: part/bom.py:183 part/models.py:109 part/models.py:1138 +#: part/templates/part/category.html:113 part/templates/part/part_base.html:384 #: templates/js/translated/part.js:2397 msgid "Default Location" msgstr "Điểm bán mặc định" -#: part/bom.py:179 part/serializers.py:905 +#: part/bom.py:184 part/serializers.py:957 #: templates/email/low_stock_notification.html:16 msgid "Total Stock" msgstr "Tổng số lượng" @@ -6641,789 +6854,789 @@ msgstr "Tổng số lượng" msgid "Input quantity for price calculation" msgstr "Số lượng đầu ra cho tính toán giá bán" -#: part/models.py:88 part/models.py:4047 part/templates/part/category.html:16 +#: part/models.py:90 part/models.py:4105 part/templates/part/category.html:16 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "Danh mục sản phẩm" -#: part/models.py:89 part/templates/part/category.html:133 +#: part/models.py:91 part/templates/part/category.html:133 #: templates/InvenTree/search.html:97 templates/js/translated/search.js:158 #: users/models.py:202 msgid "Part Categories" msgstr "Danh mục sản phẩm" -#: part/models.py:108 +#: part/models.py:110 msgid "Default location for parts in this category" msgstr "Vị trí mặc định cho sản phẩm trong danh mục này" -#: part/models.py:113 stock/models.py:187 templates/js/translated/part.js:2828 -#: templates/js/translated/stock.js:2856 +#: part/models.py:115 stock/models.py:193 templates/js/translated/part.js:2828 +#: templates/js/translated/stock.js:2857 #: templates/js/translated/table_filters.js:246 #: templates/js/translated/table_filters.js:290 msgid "Structural" msgstr "Cấu trúc" -#: part/models.py:115 +#: part/models.py:117 msgid "Parts may not be directly assigned to a structural category, but may be assigned to child categories." msgstr "Hàng hóa không được gán trực tiếp vào danh mục có cấu trúc nhưng có thể được gán vào danh mục con." -#: part/models.py:124 +#: part/models.py:126 msgid "Default keywords" msgstr "Từ khóa mặc định" -#: part/models.py:125 +#: part/models.py:127 msgid "Default keywords for parts in this category" msgstr "Từ khóa mặc định cho sản phẩm trong danh mục này" -#: part/models.py:131 stock/models.py:90 stock/models.py:169 +#: part/models.py:133 stock/models.py:96 stock/models.py:175 #: templates/InvenTree/settings/settings_staff_js.html:445 msgid "Icon" msgstr "Biểu tượng" -#: part/models.py:132 part/serializers.py:143 part/serializers.py:161 -#: stock/models.py:170 +#: part/models.py:134 part/serializers.py:143 part/serializers.py:161 +#: stock/models.py:176 msgid "Icon (optional)" msgstr "Biểu tượng (tùy chọn)" -#: part/models.py:178 +#: part/models.py:180 msgid "You cannot make this part category structural because some parts are already assigned to it!" msgstr "Bạn không thể thay đổi cấu trúc nhóm sản phẩm này vì một số sản phẩm đã được gắn với nó rồi!" -#: part/models.py:519 +#: part/models.py:514 msgid "Cannot delete this part as it is locked" msgstr "" -#: part/models.py:522 +#: part/models.py:517 msgid "Cannot delete this part as it is still active" msgstr "" -#: part/models.py:527 +#: part/models.py:522 msgid "Cannot delete this part as it is used in an assembly" msgstr "" -#: part/models.py:565 +#: part/models.py:560 msgid "Invalid choice for parent part" msgstr "Lựa chọn sai cho sản phẩm cha" -#: part/models.py:613 part/models.py:620 +#: part/models.py:608 part/models.py:615 #, python-brace-format msgid "Part '{self}' cannot be used in BOM for '{parent}' (recursive)" msgstr "Không thể dùng sản phẩm '{self}' trong BOM cho '{parent}' (đệ quy)" -#: part/models.py:632 +#: part/models.py:627 #, python-brace-format msgid "Part '{parent}' is used in BOM for '{self}' (recursive)" msgstr "Sản phẩm '{parent}' được dùng trong BOM cho '{self}' (đệ quy)" -#: part/models.py:695 +#: part/models.py:694 #, python-brace-format msgid "IPN must match regex pattern {pattern}" msgstr "IPN phải phù hợp mẫu biểu thức chính quy {pattern}" -#: part/models.py:703 +#: part/models.py:702 msgid "Part cannot be a revision of itself" msgstr "" -#: part/models.py:710 +#: part/models.py:709 msgid "Cannot make a revision of a part which is already a revision" msgstr "" -#: part/models.py:717 +#: part/models.py:716 msgid "Revision code must be specified" msgstr "" -#: part/models.py:724 +#: part/models.py:723 msgid "Revisions are only allowed for assembly parts" msgstr "" -#: part/models.py:731 +#: part/models.py:730 msgid "Cannot make a revision of a template part" msgstr "" -#: part/models.py:737 +#: part/models.py:736 msgid "Parent part must point to the same template" msgstr "" -#: part/models.py:816 +#: part/models.py:832 msgid "Stock item with this serial number already exists" msgstr "Hàng trong kho với số sê ri này đã tồn tại" -#: part/models.py:917 +#: part/models.py:976 msgid "Duplicate IPN not allowed in part settings" msgstr "IPN trùng lặp không được cho phép trong thiết lập sản phẩm" -#: part/models.py:926 +#: part/models.py:988 msgid "Duplicate part revision already exists." msgstr "" -#: part/models.py:936 +#: part/models.py:997 msgid "Part with this Name, IPN and Revision already exists." msgstr "Sản phẩm với Tên, IPN và Duyệt lại đã tồn tại." -#: part/models.py:951 +#: part/models.py:1012 msgid "Parts cannot be assigned to structural part categories!" msgstr "Sản phẩm không thể được phân vào danh mục sản phẩm có cấu trúc!" -#: part/models.py:983 part/models.py:4102 +#: part/models.py:1044 part/models.py:4160 msgid "Part name" msgstr "Tên sản phẩm" -#: part/models.py:988 +#: part/models.py:1049 msgid "Is Template" msgstr "Là Mẫu" -#: part/models.py:989 +#: part/models.py:1050 msgid "Is this part a template part?" msgstr "Sản phẩm này có phải là sản phẩm mẫu?" -#: part/models.py:999 +#: part/models.py:1060 msgid "Is this part a variant of another part?" msgstr "Đây có phải là 1 biến thể của sản phẩm khác?" -#: part/models.py:1007 +#: part/models.py:1068 msgid "Part description (optional)" msgstr "Mô tả (không bắt buộc)" -#: part/models.py:1015 +#: part/models.py:1076 msgid "Part keywords to improve visibility in search results" msgstr "Từ khóa sản phẩm để cải thiện sự hiện diện trong kết quả tìm kiếm" -#: part/models.py:1025 +#: part/models.py:1086 msgid "Part category" msgstr "Danh mục sản phẩm" -#: part/models.py:1040 +#: part/models.py:1101 msgid "Part revision or version number" msgstr "Số phiên bản hoặc bản duyệt lại sản phẩm" -#: part/models.py:1050 +#: part/models.py:1111 msgid "Is this part a revision of another part?" msgstr "" -#: part/models.py:1051 part/templates/part/part_base.html:277 +#: part/models.py:1112 part/templates/part/part_base.html:285 msgid "Revision Of" msgstr "" -#: part/models.py:1075 +#: part/models.py:1136 msgid "Where is this item normally stored?" msgstr "Hàng hóa này sẽ được cất vào đâu?" -#: part/models.py:1121 part/templates/part/part_base.html:385 +#: part/models.py:1182 part/templates/part/part_base.html:393 msgid "Default Supplier" msgstr "Nhà cung ứng mặc định" -#: part/models.py:1122 +#: part/models.py:1183 msgid "Default supplier part" msgstr "Nhà cung ứng sản phẩm mặc định" -#: part/models.py:1129 +#: part/models.py:1190 msgid "Default Expiry" msgstr "Hết hạn mặc định" -#: part/models.py:1130 +#: part/models.py:1191 msgid "Expiry time (in days) for stock items of this part" msgstr "Thời gian hết hạn (theo ngày) để nhập kho hàng hóa cho sản phẩm này" -#: part/models.py:1139 +#: part/models.py:1200 msgid "Minimum allowed stock level" msgstr "Cấp độ kho tối thiểu được phép" -#: part/models.py:1148 +#: part/models.py:1209 msgid "Units of measure for this part" msgstr "Đơn vị đo cho sản phẩm này" -#: part/models.py:1155 +#: part/models.py:1216 msgid "Can this part be built from other parts?" msgstr "Sản phẩm này có thể được dựng từ sản phẩm khác?" -#: part/models.py:1161 +#: part/models.py:1222 msgid "Can this part be used to build other parts?" msgstr "Sản phẩm này có thể dùng để dựng các sản phẩm khác?" -#: part/models.py:1167 +#: part/models.py:1228 msgid "Does this part have tracking for unique items?" msgstr "Sản phẩm này có đang theo dõi cho hàng hóa duy nhất?" -#: part/models.py:1173 +#: part/models.py:1234 msgid "Can this part have test results recorded against it?" msgstr "" -#: part/models.py:1179 +#: part/models.py:1240 msgid "Can this part be purchased from external suppliers?" msgstr "Sản phẩm này có thể mua được từ nhà cung ứng bên ngoài?" -#: part/models.py:1185 +#: part/models.py:1246 msgid "Can this part be sold to customers?" msgstr "Sản phẩm này có thể được bán cho khách hàng?" -#: part/models.py:1189 +#: part/models.py:1250 msgid "Is this part active?" msgstr "Sản phẩm này đang hoạt động?" -#: part/models.py:1194 templates/js/translated/part.js:821 +#: part/models.py:1255 templates/js/translated/part.js:821 #: templates/js/translated/table_filters.js:724 msgid "Locked" msgstr "" -#: part/models.py:1195 +#: part/models.py:1256 msgid "Locked parts cannot be edited" msgstr "" -#: part/models.py:1201 +#: part/models.py:1262 msgid "Is this a virtual part, such as a software product or license?" msgstr "Đây là sản phẩm ảo, ví dụ như sản phẩm phần mềm hay bản quyền?" -#: part/models.py:1207 +#: part/models.py:1268 msgid "BOM checksum" msgstr "Giá trị tổng kiểm BOM" -#: part/models.py:1208 +#: part/models.py:1269 msgid "Stored BOM checksum" msgstr "Giá trị tổng kiểm BOM đã được lưu" -#: part/models.py:1216 +#: part/models.py:1277 msgid "BOM checked by" msgstr "BOM kiểm tra bởi" -#: part/models.py:1221 +#: part/models.py:1282 msgid "BOM checked date" msgstr "Ngày kiểm tra BOM" -#: part/models.py:1237 +#: part/models.py:1298 msgid "Creation User" msgstr "Tạo người dùng" -#: part/models.py:1247 +#: part/models.py:1308 msgid "Owner responsible for this part" msgstr "Trách nhiệm chủ sở hữu cho sản phẩm này" -#: part/models.py:1252 part/templates/part/part_base.html:348 -#: stock/templates/stock/item_base.html:451 +#: part/models.py:1313 part/templates/part/part_base.html:356 +#: stock/templates/stock/item_base.html:448 #: templates/js/translated/part.js:2490 msgid "Last Stocktake" msgstr "Kiểm kê cuối cùng" -#: part/models.py:2125 +#: part/models.py:2185 msgid "Sell multiple" msgstr "Bán nhiều" -#: part/models.py:3116 +#: part/models.py:3167 msgid "Currency used to cache pricing calculations" msgstr "Tiền được dùng để làm đệm tính toán giá bán" -#: part/models.py:3132 +#: part/models.py:3183 msgid "Minimum BOM Cost" msgstr "Chi phí BOM tối thiểu" -#: part/models.py:3133 +#: part/models.py:3184 msgid "Minimum cost of component parts" msgstr "Chi phí thành phần sản phẩm tối thiểu" -#: part/models.py:3139 +#: part/models.py:3190 msgid "Maximum BOM Cost" msgstr "Chi phí BOM tối đa" -#: part/models.py:3140 +#: part/models.py:3191 msgid "Maximum cost of component parts" msgstr "Chi phí thành phần sản phẩm tối đa" -#: part/models.py:3146 +#: part/models.py:3197 msgid "Minimum Purchase Cost" msgstr "Chi phí mua vào tối thiểu" -#: part/models.py:3147 +#: part/models.py:3198 msgid "Minimum historical purchase cost" msgstr "Chi phí mua vào tối thiểu trong lịch sử" -#: part/models.py:3153 +#: part/models.py:3204 msgid "Maximum Purchase Cost" msgstr "Chi phí mua tối đa" -#: part/models.py:3154 +#: part/models.py:3205 msgid "Maximum historical purchase cost" msgstr "Chi phí thành phần sản phẩm tối đa trong lịch sử" -#: part/models.py:3160 +#: part/models.py:3211 msgid "Minimum Internal Price" msgstr "Giá nội bộ tối thiểu" -#: part/models.py:3161 +#: part/models.py:3212 msgid "Minimum cost based on internal price breaks" msgstr "Chi phí tối thiểu dựa trên phá vỡ giá nội bộ" -#: part/models.py:3167 +#: part/models.py:3218 msgid "Maximum Internal Price" msgstr "Giá nội bộ tối đa" -#: part/models.py:3168 +#: part/models.py:3219 msgid "Maximum cost based on internal price breaks" msgstr "Chi phí tối đa dựa trên phá vỡ giá nội bộ" -#: part/models.py:3174 +#: part/models.py:3225 msgid "Minimum Supplier Price" msgstr "Giá nhà cung ứng tối thiểu" -#: part/models.py:3175 +#: part/models.py:3226 msgid "Minimum price of part from external suppliers" msgstr "Giá sản phẩm tối thiểu từ nhà cung ứng bên ngoài" -#: part/models.py:3181 +#: part/models.py:3232 msgid "Maximum Supplier Price" msgstr "Giá nhà cung ứng tối đa" -#: part/models.py:3182 +#: part/models.py:3233 msgid "Maximum price of part from external suppliers" msgstr "Giá sản phẩm tối đã từ nhà cung ứng bên ngoài" -#: part/models.py:3188 +#: part/models.py:3239 msgid "Minimum Variant Cost" msgstr "Giá trị biến thể tối thiểu" -#: part/models.py:3189 +#: part/models.py:3240 msgid "Calculated minimum cost of variant parts" msgstr "Chi phí tối thiểu của sản phẩm biến thể đã tính" -#: part/models.py:3195 +#: part/models.py:3246 msgid "Maximum Variant Cost" msgstr "Chi phí biến thể tối đa" -#: part/models.py:3196 +#: part/models.py:3247 msgid "Calculated maximum cost of variant parts" msgstr "Chi phí tối đa của sản phẩm biến thể đã tính" -#: part/models.py:3203 +#: part/models.py:3254 msgid "Override minimum cost" msgstr "Ghi đề chi phí tối thiểu" -#: part/models.py:3210 +#: part/models.py:3261 msgid "Override maximum cost" msgstr "Ghi đề chi phí tối đa" -#: part/models.py:3217 +#: part/models.py:3268 msgid "Calculated overall minimum cost" msgstr "Chi phí tối thiểu tính toán tổng thể" -#: part/models.py:3224 +#: part/models.py:3275 msgid "Calculated overall maximum cost" msgstr "Chi phí tối đa tính toán tổng thể" -#: part/models.py:3230 +#: part/models.py:3281 msgid "Minimum Sale Price" msgstr "Giá bán thấp nhất" -#: part/models.py:3231 +#: part/models.py:3282 msgid "Minimum sale price based on price breaks" msgstr "Giá bán tối thiểu dựa trên phá giá" -#: part/models.py:3237 +#: part/models.py:3288 msgid "Maximum Sale Price" msgstr "Giá bán cao nhất" -#: part/models.py:3238 +#: part/models.py:3289 msgid "Maximum sale price based on price breaks" msgstr "Giá bán cao nhất dựa trên phá giá" -#: part/models.py:3244 +#: part/models.py:3295 msgid "Minimum Sale Cost" msgstr "Chi phí bán hàng tối thiểu" -#: part/models.py:3245 +#: part/models.py:3296 msgid "Minimum historical sale price" msgstr "Giá bán hàng tối thiểu trong lịch sử" -#: part/models.py:3251 +#: part/models.py:3302 msgid "Maximum Sale Cost" msgstr "Giá bán hàng tối đa" -#: part/models.py:3252 +#: part/models.py:3303 msgid "Maximum historical sale price" msgstr "Giá bán hàng tối đa trong lịch sử" -#: part/models.py:3271 +#: part/models.py:3322 msgid "Part for stocktake" msgstr "Sản phẩm dành cho kiểm kê" -#: part/models.py:3276 +#: part/models.py:3327 msgid "Item Count" msgstr "Tổng số hàng" -#: part/models.py:3277 +#: part/models.py:3328 msgid "Number of individual stock entries at time of stocktake" msgstr "Số mục kho độc lậo tại thời điểm kiểm kê" -#: part/models.py:3285 +#: part/models.py:3336 msgid "Total available stock at time of stocktake" msgstr "Tống số kho tại thời điểm kiểm kê" -#: part/models.py:3289 part/models.py:3372 +#: part/models.py:3340 part/models.py:3423 part/serializers.py:263 #: part/templates/part/part_scheduling.html:13 #: report/templates/report/inventree_test_report.html:106 #: templates/InvenTree/settings/plugin_settings.html:37 #: templates/InvenTree/settings/settings_staff_js.html:543 -#: templates/js/translated/part.js:1092 templates/js/translated/pricing.js:826 -#: templates/js/translated/pricing.js:950 -#: templates/js/translated/purchase_order.js:1801 -#: templates/js/translated/stock.js:2905 +#: templates/js/translated/part.js:1092 templates/js/translated/pricing.js:824 +#: templates/js/translated/pricing.js:948 +#: templates/js/translated/purchase_order.js:1785 +#: templates/js/translated/stock.js:2906 msgid "Date" msgstr "Ngày" -#: part/models.py:3290 +#: part/models.py:3341 msgid "Date stocktake was performed" msgstr "Kiểm kê đã thực hiện" -#: part/models.py:3298 +#: part/models.py:3349 msgid "Additional notes" msgstr "Ghi chú bổ sung" -#: part/models.py:3308 +#: part/models.py:3359 msgid "User who performed this stocktake" msgstr "Người dùng đã thực hiện đợt kiểm kê này" -#: part/models.py:3314 +#: part/models.py:3365 msgid "Minimum Stock Cost" msgstr "Chi phí kho tối thiểu" -#: part/models.py:3315 +#: part/models.py:3366 msgid "Estimated minimum cost of stock on hand" msgstr "Chi phí kho tối thiểu ước tính của kho đang có" -#: part/models.py:3321 +#: part/models.py:3372 msgid "Maximum Stock Cost" msgstr "Chi phí kho tối đa" -#: part/models.py:3322 +#: part/models.py:3373 msgid "Estimated maximum cost of stock on hand" msgstr "Chi phí kho tối đa ước tính của kho đang có" -#: part/models.py:3378 templates/InvenTree/settings/settings_staff_js.html:532 +#: part/models.py:3429 templates/InvenTree/settings/settings_staff_js.html:532 msgid "Report" msgstr "Báo cáo" -#: part/models.py:3379 +#: part/models.py:3430 msgid "Stocktake report file (generated internally)" msgstr "Tệp báo cáo kiểm kê (được sinh nội bộ)" -#: part/models.py:3384 templates/InvenTree/settings/settings_staff_js.html:539 +#: part/models.py:3435 templates/InvenTree/settings/settings_staff_js.html:539 msgid "Part Count" msgstr "Bộ đếm sản phẩm" -#: part/models.py:3385 +#: part/models.py:3436 msgid "Number of parts covered by stocktake" msgstr "Số sản phẩm đã được bao quát bởi kiểm kê" -#: part/models.py:3395 +#: part/models.py:3446 msgid "User who requested this stocktake report" msgstr "Người dùng đã yêu cầu báo cáo kiểm kê này" -#: part/models.py:3405 +#: part/models.py:3456 msgid "Part Sale Price Break" msgstr "" -#: part/models.py:3517 +#: part/models.py:3568 msgid "Part Test Template" msgstr "" -#: part/models.py:3543 +#: part/models.py:3594 msgid "Invalid template name - must include at least one alphanumeric character" msgstr "" -#: part/models.py:3564 part/models.py:3733 +#: part/models.py:3615 part/models.py:3784 msgid "Choices must be unique" msgstr "Lựa chọn phải duy nhất" -#: part/models.py:3575 -msgid "Test templates can only be created for trackable parts" -msgstr "Chỉ có thể tạo mẫu kiểm thử cho sản phẩm có thể theo dõi" +#: part/models.py:3626 +msgid "Test templates can only be created for testable parts" +msgstr "" -#: part/models.py:3586 +#: part/models.py:3637 msgid "Test template with the same key already exists for part" msgstr "" -#: part/models.py:3603 templates/js/translated/part.js:2898 +#: part/models.py:3654 templates/js/translated/part.js:2898 msgid "Test Name" msgstr "Tên kiểm thử" -#: part/models.py:3604 +#: part/models.py:3655 msgid "Enter a name for the test" msgstr "Nhập tên cho kiểm thử" -#: part/models.py:3610 +#: part/models.py:3661 msgid "Test Key" msgstr "" -#: part/models.py:3611 +#: part/models.py:3662 msgid "Simplified key for the test" msgstr "" -#: part/models.py:3618 +#: part/models.py:3669 msgid "Test Description" msgstr "Mô tả kiểm thử" -#: part/models.py:3619 +#: part/models.py:3670 msgid "Enter description for this test" msgstr "Nhập mô tả cho kiểm thử này" -#: part/models.py:3623 report/models.py:208 +#: part/models.py:3674 report/models.py:216 #: templates/js/translated/part.js:2919 #: templates/js/translated/table_filters.js:502 msgid "Enabled" msgstr "Đã bật" -#: part/models.py:3623 +#: part/models.py:3674 msgid "Is this test enabled?" msgstr "" -#: part/models.py:3628 templates/js/translated/part.js:2927 +#: part/models.py:3679 templates/js/translated/part.js:2927 #: templates/js/translated/table_filters.js:498 msgid "Required" msgstr "Bắt buộc" -#: part/models.py:3629 +#: part/models.py:3680 msgid "Is this test required to pass?" msgstr "Kiểm thử này bắt buộc phải đạt?" -#: part/models.py:3634 templates/js/translated/part.js:2935 +#: part/models.py:3685 templates/js/translated/part.js:2935 msgid "Requires Value" msgstr "Giá trị bắt buộc" -#: part/models.py:3635 +#: part/models.py:3686 msgid "Does this test require a value when adding a test result?" msgstr "Kiểm thử này yêu cầu 1 giá trị khi thêm một kết quả kiểm thử?" -#: part/models.py:3640 templates/js/translated/part.js:2942 +#: part/models.py:3691 templates/js/translated/part.js:2942 msgid "Requires Attachment" msgstr "Yêu cầu đính kèm" -#: part/models.py:3642 +#: part/models.py:3693 msgid "Does this test require a file attachment when adding a test result?" msgstr "Kiểm thử này yêu cầu tệp đính kèm khi thêm một kết quả kiểm thử?" -#: part/models.py:3648 part/models.py:3792 templates/js/translated/part.js:1643 +#: part/models.py:3699 part/models.py:3843 templates/js/translated/part.js:1643 msgid "Choices" msgstr "Lựa chọn" -#: part/models.py:3649 +#: part/models.py:3700 msgid "Valid choices for this test (comma-separated)" msgstr "" -#: part/models.py:3681 +#: part/models.py:3732 msgid "Part Parameter Template" msgstr "" -#: part/models.py:3708 +#: part/models.py:3759 msgid "Checkbox parameters cannot have units" msgstr "Tham số hộp kiểm tra không thể có đơn vị" -#: part/models.py:3713 +#: part/models.py:3764 msgid "Checkbox parameters cannot have choices" msgstr "Tham số hộp kiểm tra không thể có lựa chọn" -#: part/models.py:3750 +#: part/models.py:3801 msgid "Parameter template name must be unique" msgstr "Tên tham số mẫu phải là duy nhất" -#: part/models.py:3765 +#: part/models.py:3816 msgid "Parameter Name" msgstr "Tên tham số" -#: part/models.py:3772 +#: part/models.py:3823 msgid "Physical units for this parameter" msgstr "Đơn vị vật lý cho tham số này" -#: part/models.py:3780 +#: part/models.py:3831 msgid "Parameter description" msgstr "Mô tả tham số" -#: part/models.py:3786 templates/js/translated/part.js:1634 +#: part/models.py:3837 templates/js/translated/part.js:1634 #: templates/js/translated/table_filters.js:837 msgid "Checkbox" msgstr "Ô lựa chọn" -#: part/models.py:3787 +#: part/models.py:3838 msgid "Is this parameter a checkbox?" msgstr "Tham số này có phải là hộp kiểm tra?" -#: part/models.py:3793 +#: part/models.py:3844 msgid "Valid choices for this parameter (comma-separated)" msgstr "Lựa chọn hợp lệ từ tham số này (ngăn cách bằng dấu phẩy)" -#: part/models.py:3827 +#: part/models.py:3881 msgid "Part Parameter" msgstr "" -#: part/models.py:3853 +#: part/models.py:3907 msgid "Parameter cannot be modified - part is locked" msgstr "" -#: part/models.py:3889 +#: part/models.py:3945 msgid "Invalid choice for parameter value" msgstr "Lựa chọn sai cho giá trị tham số" -#: part/models.py:3938 +#: part/models.py:3996 msgid "Parent Part" msgstr "Sản phẩm cha" -#: part/models.py:3946 part/models.py:4054 part/models.py:4055 +#: part/models.py:4004 part/models.py:4112 part/models.py:4113 #: templates/InvenTree/settings/settings_staff_js.html:295 msgid "Parameter Template" msgstr "Mẫu tham số" -#: part/models.py:3952 +#: part/models.py:4010 msgid "Parameter Value" msgstr "Giá trị tham số" -#: part/models.py:4002 +#: part/models.py:4060 msgid "Part Category Parameter Template" msgstr "" -#: part/models.py:4061 templates/InvenTree/settings/settings_staff_js.html:304 +#: part/models.py:4119 templates/InvenTree/settings/settings_staff_js.html:304 msgid "Default Value" msgstr "Giá trị mặc định" -#: part/models.py:4062 +#: part/models.py:4120 msgid "Default Parameter Value" msgstr "Giá trị tham số mặc định" -#: part/models.py:4100 +#: part/models.py:4158 msgid "Part ID or part name" msgstr "Tên hoặc mã sản phẩm" -#: part/models.py:4101 +#: part/models.py:4159 msgid "Unique part ID value" msgstr "Giá trị mã sản phẩm duy nhất" -#: part/models.py:4103 +#: part/models.py:4161 msgid "Part IPN value" msgstr "Giá trị IPN sản phẩm" -#: part/models.py:4104 +#: part/models.py:4162 msgid "Level" msgstr "Cấp độ" -#: part/models.py:4104 +#: part/models.py:4162 msgid "BOM level" msgstr "Cấp độ BOM" -#: part/models.py:4215 +#: part/models.py:4272 msgid "BOM item cannot be modified - assembly is locked" msgstr "" -#: part/models.py:4222 +#: part/models.py:4279 msgid "BOM item cannot be modified - variant assembly is locked" msgstr "" -#: part/models.py:4232 +#: part/models.py:4289 msgid "Select parent part" msgstr "Chọn sản phẩm cha" -#: part/models.py:4242 +#: part/models.py:4299 msgid "Sub part" msgstr "Sản phẩm phụ" -#: part/models.py:4243 +#: part/models.py:4300 msgid "Select part to be used in BOM" msgstr "Chọn sản phẩm được dùng trong BOM" -#: part/models.py:4254 +#: part/models.py:4311 msgid "BOM quantity for this BOM item" msgstr "Số lượng BOM cho mục BOM này" -#: part/models.py:4260 +#: part/models.py:4317 msgid "This BOM item is optional" msgstr "Mục BOM này là tùy chọn" -#: part/models.py:4266 +#: part/models.py:4323 msgid "This BOM item is consumable (it is not tracked in build orders)" msgstr "Mục BOM này bị tiêu hao (không được theo dõi trong đơn đặt bản dựng)" -#: part/models.py:4273 part/templates/part/upload_bom.html:55 +#: part/models.py:4330 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "Dư thừa" -#: part/models.py:4274 +#: part/models.py:4331 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "Số lượng bản dựng lãng phí ước tính (tuyệt đối hoặc phần trăm)" -#: part/models.py:4281 +#: part/models.py:4338 msgid "BOM item reference" msgstr "Tham chiếu mục BOM" -#: part/models.py:4289 +#: part/models.py:4346 msgid "BOM item notes" msgstr "Ghi chú mục BOM" -#: part/models.py:4295 +#: part/models.py:4352 msgid "Checksum" msgstr "Giá trị tổng kiểm" -#: part/models.py:4296 +#: part/models.py:4353 msgid "BOM line checksum" msgstr "Giá trị tổng kiểm dòng BOM" -#: part/models.py:4301 templates/js/translated/table_filters.js:181 +#: part/models.py:4358 templates/js/translated/table_filters.js:181 msgid "Validated" msgstr "Đã xác minh" -#: part/models.py:4302 +#: part/models.py:4359 msgid "This BOM item has been validated" msgstr "Mục BOM này là hợp lệ" -#: part/models.py:4307 part/templates/part/upload_bom.html:57 +#: part/models.py:4364 part/templates/part/upload_bom.html:57 #: templates/js/translated/bom.js:1054 #: templates/js/translated/table_filters.js:185 #: templates/js/translated/table_filters.js:218 msgid "Gets inherited" msgstr "Nhận thừa hưởng" -#: part/models.py:4308 +#: part/models.py:4365 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "Mục BOM này được thừa kế bởi BOM cho sản phẩm biến thể" -#: part/models.py:4314 +#: part/models.py:4371 msgid "Stock items for variant parts can be used for this BOM item" msgstr "Hàng trong kho cho sản phẩm biến thể có thể được dùng bởi mục BOM này" -#: part/models.py:4399 stock/models.py:685 +#: part/models.py:4456 stock/models.py:762 msgid "Quantity must be integer value for trackable parts" msgstr "Số lượng phải là giá trị nguyên dùng cho sản phẩm có thể theo dõi được" -#: part/models.py:4409 part/models.py:4411 +#: part/models.py:4466 part/models.py:4468 msgid "Sub part must be specified" msgstr "Sản phẩm phụ phải được chỉ định" -#: part/models.py:4551 +#: part/models.py:4613 msgid "BOM Item Substitute" msgstr "Sảm phẩm thay thế mục BOM" -#: part/models.py:4572 +#: part/models.py:4634 msgid "Substitute part cannot be the same as the master part" msgstr "Sản phẩm thay thế không thể giống sản phẩm chủ đạo" -#: part/models.py:4585 +#: part/models.py:4647 msgid "Parent BOM item" msgstr "Hàng hóa BOM cha" -#: part/models.py:4593 +#: part/models.py:4655 msgid "Substitute part" msgstr "Sản phẩm thay thế" -#: part/models.py:4609 +#: part/models.py:4671 msgid "Part 1" msgstr "Sản phẩm 1" -#: part/models.py:4617 +#: part/models.py:4679 msgid "Part 2" msgstr "Sản phẩm 2" -#: part/models.py:4618 +#: part/models.py:4680 msgid "Select Related Part" msgstr "Chọn sản phẩm liên quan" -#: part/models.py:4637 +#: part/models.py:4699 msgid "Part relationship cannot be created between a part and itself" msgstr "Không thể tạo mối quan hệ giữa một sản phẩm và chính nó" -#: part/models.py:4642 +#: part/models.py:4704 msgid "Duplicate relationship already exists" msgstr "Đã tồn tại mối quan hệ trùng lặp" @@ -7449,340 +7662,352 @@ msgstr "" msgid "Number of results recorded against this template" msgstr "" -#: part/serializers.py:225 part/serializers.py:243 stock/serializers.py:616 +#: part/serializers.py:225 part/serializers.py:243 stock/serializers.py:643 msgid "Purchase currency of this stock item" msgstr "Loại tiền mua hàng của hàng hóa này" -#: part/serializers.py:291 +#: part/serializers.py:268 +msgid "Speculative Quantity" +msgstr "" + +#: part/serializers.py:277 +msgid "Model ID" +msgstr "" + +#: part/serializers.py:324 msgid "Number of parts using this template" msgstr "" -#: part/serializers.py:421 +#: part/serializers.py:465 msgid "No parts selected" msgstr "Chưa chọn sản phẩm" -#: part/serializers.py:431 +#: part/serializers.py:475 msgid "Select category" msgstr "Chọn danh mục" -#: part/serializers.py:466 +#: part/serializers.py:510 msgid "Original Part" msgstr "Sản phẩm gốc" -#: part/serializers.py:467 +#: part/serializers.py:511 msgid "Select original part to duplicate" msgstr "Chọn sản phẩm gốc để nhân bản" -#: part/serializers.py:472 +#: part/serializers.py:516 msgid "Copy Image" msgstr "Sao chép ảnh" -#: part/serializers.py:473 +#: part/serializers.py:517 msgid "Copy image from original part" msgstr "Sao chép hình ảnh từ sản phẩm gốc" -#: part/serializers.py:479 part/templates/part/detail.html:293 +#: part/serializers.py:523 part/templates/part/detail.html:293 msgid "Copy BOM" msgstr "Sao chép BOM" -#: part/serializers.py:480 +#: part/serializers.py:524 msgid "Copy bill of materials from original part" msgstr "Sao chép định mức nguyên vật liệu từ sản phẩm gốc" -#: part/serializers.py:486 +#: part/serializers.py:530 msgid "Copy Parameters" msgstr "Sao chép thông số" -#: part/serializers.py:487 +#: part/serializers.py:531 msgid "Copy parameter data from original part" msgstr "Sao chép thông tin tham số từ sản phẩm gốc" -#: part/serializers.py:493 +#: part/serializers.py:537 msgid "Copy Notes" msgstr "Sao chép ghi chú" -#: part/serializers.py:494 +#: part/serializers.py:538 msgid "Copy notes from original part" msgstr "Sao chép ghi chú từ sản phẩm gốc" -#: part/serializers.py:512 +#: part/serializers.py:556 msgid "Initial Stock Quantity" msgstr "Số liệu tồn kho ban đầu" -#: part/serializers.py:514 +#: part/serializers.py:558 msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added." msgstr "Chỉ ra số lượng tồn kho ban đầu cho sản phẩm. Nếu điền là không, không thêm kho nào." -#: part/serializers.py:521 +#: part/serializers.py:565 msgid "Initial Stock Location" msgstr "Vị trí kho ban đầu" -#: part/serializers.py:522 +#: part/serializers.py:566 msgid "Specify initial stock location for this Part" msgstr "Chỉ định vị trí kho ban đầu cho sản phẩm này" -#: part/serializers.py:539 +#: part/serializers.py:583 msgid "Select supplier (or leave blank to skip)" msgstr "Chọn nhà cung cấp (hoặc để trống để bỏ qua)" -#: part/serializers.py:555 +#: part/serializers.py:599 msgid "Select manufacturer (or leave blank to skip)" msgstr "Chọn nhà sản xuất (hoặc để trống để bỏ qua)" -#: part/serializers.py:565 +#: part/serializers.py:609 msgid "Manufacturer part number" msgstr "Mã số nhà sản xuất" -#: part/serializers.py:572 +#: part/serializers.py:616 msgid "Selected company is not a valid supplier" msgstr "Công ty đã chọn không phải là nhà cung ứng hợp lệ" -#: part/serializers.py:581 +#: part/serializers.py:625 msgid "Selected company is not a valid manufacturer" msgstr "Công ty đã chọn không phải là nhà sản xuất hợp lệ" -#: part/serializers.py:592 +#: part/serializers.py:636 msgid "Manufacturer part matching this MPN already exists" msgstr "Mã số nhà sản xuất khớp với MPN này đã tồn tại" -#: part/serializers.py:599 +#: part/serializers.py:643 msgid "Supplier part matching this SKU already exists" msgstr "Mã số nhà cung cấp khớp với SKU này đã tồn tại" -#: part/serializers.py:903 +#: part/serializers.py:955 msgid "Revisions" msgstr "" -#: part/serializers.py:908 +#: part/serializers.py:960 msgid "Unallocated Stock" msgstr "" -#: part/serializers.py:911 +#: part/serializers.py:963 msgid "Variant Stock" msgstr "" -#: part/serializers.py:941 part/templates/part/copy_part.html:9 +#: part/serializers.py:993 part/templates/part/copy_part.html:9 #: templates/js/translated/part.js:474 msgid "Duplicate Part" msgstr "Nhân bản sản phẩm" -#: part/serializers.py:942 +#: part/serializers.py:994 msgid "Copy initial data from another Part" msgstr "Sao chép dữ liệu ban đầu từ sản phẩm khác" -#: part/serializers.py:948 templates/js/translated/part.js:103 +#: part/serializers.py:1000 templates/js/translated/part.js:103 msgid "Initial Stock" msgstr "Số liệu kho ban đầu" -#: part/serializers.py:949 +#: part/serializers.py:1001 msgid "Create Part with initial stock quantity" msgstr "Tạo sản phẩm với số lượng tồn kho ban đầu" -#: part/serializers.py:955 +#: part/serializers.py:1007 msgid "Supplier Information" msgstr "Thông tin nhà cung cấp" -#: part/serializers.py:956 +#: part/serializers.py:1008 msgid "Add initial supplier information for this part" msgstr "Thêm thông tin nhà cung cấp ban đầu cho sản phẩm này" -#: part/serializers.py:964 +#: part/serializers.py:1016 msgid "Copy Category Parameters" msgstr "Sao chép thông số nhóm hàng" -#: part/serializers.py:965 +#: part/serializers.py:1017 msgid "Copy parameter templates from selected part category" msgstr "Sao chép mẫu tham số từ nhóm sản phẩm được chọn" -#: part/serializers.py:970 +#: part/serializers.py:1022 msgid "Existing Image" msgstr "Ảnh hiện có" -#: part/serializers.py:971 +#: part/serializers.py:1023 msgid "Filename of an existing part image" msgstr "Tên tệp của ảnh sản phẩm hiện hữu" -#: part/serializers.py:988 +#: part/serializers.py:1040 msgid "Image file does not exist" msgstr "Tệp hình ảnh không tồn tại" -#: part/serializers.py:1194 +#: part/serializers.py:1247 msgid "Limit stocktake report to a particular part, and any variant parts" msgstr "Hạn chế báo cáo kiểm kê với sản phẩm riêng biệt và sản phẩm biến thể bất kỳ" -#: part/serializers.py:1204 +#: part/serializers.py:1257 msgid "Limit stocktake report to a particular part category, and any child categories" msgstr "Hạn chế báo cáo kiểm kê với danh mục sản phẩm riêng biệt và danh mục con bất kỳ" -#: part/serializers.py:1214 +#: part/serializers.py:1267 msgid "Limit stocktake report to a particular stock location, and any child locations" msgstr "Hạn chế báo cáo kiểm kê với vị trí kho riêng biệt và vị trí con bất kỳ" -#: part/serializers.py:1220 +#: part/serializers.py:1273 msgid "Exclude External Stock" msgstr "Ngoại trừ kho bên ngoài" -#: part/serializers.py:1221 +#: part/serializers.py:1274 msgid "Exclude stock items in external locations" msgstr "Loại trừ hàng trong kho của vị trí bên ngoài" -#: part/serializers.py:1226 +#: part/serializers.py:1279 msgid "Generate Report" msgstr "Tạo báo cáo" -#: part/serializers.py:1227 +#: part/serializers.py:1280 msgid "Generate report file containing calculated stocktake data" msgstr "Tạo tệp báo cáo chứa dữ liệu kiểm kê đã tính toán" -#: part/serializers.py:1232 +#: part/serializers.py:1285 msgid "Update Parts" msgstr "Cập nhật sản phẩm" -#: part/serializers.py:1233 +#: part/serializers.py:1286 msgid "Update specified parts with calculated stocktake data" msgstr "Cập nhật sản phẩm cụ thể với dữ liệu kiểm kê đã tính" -#: part/serializers.py:1241 +#: part/serializers.py:1294 msgid "Stocktake functionality is not enabled" msgstr "Chức năng kiểm kê chưa được bật" -#: part/serializers.py:1347 +#: part/serializers.py:1299 +msgid "Background worker check failed" +msgstr "Nhân công chạy ngầm kiểm tra thất bại" + +#: part/serializers.py:1401 msgid "Override calculated value for minimum price" msgstr "Giá trị tính toán ghi đè cho giá tối thiểu" -#: part/serializers.py:1354 +#: part/serializers.py:1408 msgid "Minimum price currency" msgstr "Tiền tế giá tối thiểu" -#: part/serializers.py:1362 +#: part/serializers.py:1416 msgid "Override calculated value for maximum price" msgstr "Giá trị tính toán ghi đè cho giá tối đa" -#: part/serializers.py:1369 +#: part/serializers.py:1423 msgid "Maximum price currency" msgstr "Tiền tế giá tối đa" -#: part/serializers.py:1398 +#: part/serializers.py:1452 msgid "Update" msgstr "Cập nhật" -#: part/serializers.py:1399 +#: part/serializers.py:1453 msgid "Update pricing for this part" msgstr "Cập nhật giá cho sản phẩm này" -#: part/serializers.py:1422 +#: part/serializers.py:1476 #, python-brace-format msgid "Could not convert from provided currencies to {default_currency}" msgstr "Không thể chuyển đổi từ tiền tệ đã cung cấp cho {default_currency}" -#: part/serializers.py:1429 +#: part/serializers.py:1483 msgid "Minimum price must not be greater than maximum price" msgstr "Giá tối thiểu không được lớn hơn giá tối đa" -#: part/serializers.py:1432 +#: part/serializers.py:1486 msgid "Maximum price must not be less than minimum price" msgstr "Giá tối đa không được nhỏ hơn giá tối thiểu" -#: part/serializers.py:1576 +#: part/serializers.py:1634 msgid "Select the parent assembly" msgstr "" -#: part/serializers.py:1585 +#: part/serializers.py:1643 msgid "Component Name" msgstr "" -#: part/serializers.py:1588 +#: part/serializers.py:1646 msgid "Component IPN" msgstr "" -#: part/serializers.py:1591 +#: part/serializers.py:1649 msgid "Component Description" msgstr "" -#: part/serializers.py:1597 +#: part/serializers.py:1655 msgid "Select the component part" msgstr "" -#: part/serializers.py:1606 part/templates/part/part_base.html:235 +#: part/serializers.py:1664 part/templates/part/part_base.html:243 #: templates/js/translated/bom.js:1219 msgid "Can Build" msgstr "Có thể dựng" -#: part/serializers.py:1837 +#: part/serializers.py:1899 msgid "Select part to copy BOM from" msgstr "Chọn sản phẩm để sao chép định mức nguyên vật liệu" -#: part/serializers.py:1845 +#: part/serializers.py:1907 msgid "Remove Existing Data" msgstr "Xóa dữ liệu đã tồn tại" -#: part/serializers.py:1846 +#: part/serializers.py:1908 msgid "Remove existing BOM items before copying" msgstr "Xóa mục BOM đã tồn tại trước khi sao chép" -#: part/serializers.py:1851 +#: part/serializers.py:1913 msgid "Include Inherited" msgstr "Bao gồm thừa hưởng" -#: part/serializers.py:1852 +#: part/serializers.py:1914 msgid "Include BOM items which are inherited from templated parts" msgstr "Bao gồm mục BOM được thừa hưởng từ sản phẩm mẫu" -#: part/serializers.py:1857 +#: part/serializers.py:1919 msgid "Skip Invalid Rows" msgstr "Bỏ qua dòng không hợp lệ" -#: part/serializers.py:1858 +#: part/serializers.py:1920 msgid "Enable this option to skip invalid rows" msgstr "Bật tùy chọn này để bỏ qua dòng không hợp lệ" -#: part/serializers.py:1863 +#: part/serializers.py:1925 msgid "Copy Substitute Parts" msgstr "Sao chép sản phẩm thay thế" -#: part/serializers.py:1864 +#: part/serializers.py:1926 msgid "Copy substitute parts when duplicate BOM items" msgstr "Sao chép sản phẩm thay thế khi nhân bản hàng hóa BOM" -#: part/serializers.py:1901 +#: part/serializers.py:1963 msgid "Clear Existing BOM" msgstr "Dọn dẹp BOM đang tồn tại" -#: part/serializers.py:1902 +#: part/serializers.py:1964 msgid "Delete existing BOM items before uploading" msgstr "Xóa mục BOM đang tồn tại trước khi tải lên" -#: part/serializers.py:1934 +#: part/serializers.py:1996 msgid "No part column specified" msgstr "Chưa chỉ ra cột sản phẩm" -#: part/serializers.py:1978 +#: part/serializers.py:2040 msgid "Multiple matching parts found" msgstr "Tìm thấy nhiều sản phẩm phù hợp" -#: part/serializers.py:1981 +#: part/serializers.py:2043 msgid "No matching part found" msgstr "Không tìm thấy sản phẩm nào" -#: part/serializers.py:1984 +#: part/serializers.py:2045 msgid "Part is not designated as a component" msgstr "Sản phẩm không được chỉ định như là một thành phần" -#: part/serializers.py:1993 +#: part/serializers.py:2054 msgid "Quantity not provided" msgstr "Chưa cung cấp số lượng" -#: part/serializers.py:2001 +#: part/serializers.py:2062 msgid "Invalid quantity" msgstr "Số lượng không hợp lệ" -#: part/serializers.py:2024 +#: part/serializers.py:2085 msgid "At least one BOM item is required" msgstr "Buộc phải nhập ít nhất một mục BOM" #: part/stocktake.py:224 templates/js/translated/part.js:1073 #: templates/js/translated/part.js:1828 templates/js/translated/part.js:1884 -#: templates/js/translated/purchase_order.js:2154 +#: templates/js/translated/purchase_order.js:2138 msgid "Total Quantity" msgstr "Tổng số lượng" @@ -7932,9 +8157,9 @@ msgid "Add stocktake information" msgstr "Thêm thông tin kiểm kê" #: part/templates/part/detail.html:67 part/templates/part/part_sidebar.html:50 -#: stock/admin.py:255 templates/InvenTree/settings/part_stocktake.html:30 +#: stock/admin.py:256 templates/InvenTree/settings/part_stocktake.html:30 #: templates/InvenTree/settings/sidebar.html:53 -#: templates/js/translated/stock.js:2301 users/models.py:204 +#: templates/js/translated/stock.js:2302 users/models.py:204 msgid "Stocktake" msgstr "Kiểm kê" @@ -8093,142 +8318,146 @@ msgstr "Chọn định dạng tệp" msgid "Part List" msgstr "Danh sách sản phẩm" -#: part/templates/part/part_base.html:25 part/templates/part/part_base.html:29 +#: part/templates/part/part_base.html:26 part/templates/part/part_base.html:30 msgid "You are subscribed to notifications for this part" msgstr "Bạn đã đăng ký nhận thông báo về sản phẩm này" -#: part/templates/part/part_base.html:33 +#: part/templates/part/part_base.html:34 msgid "Subscribe to notifications for this part" msgstr "Đăng ký nhận thông báo về sản phẩm này" -#: part/templates/part/part_base.html:52 +#: part/templates/part/part_base.html:53 #: stock/templates/stock/item_base.html:62 -#: stock/templates/stock/location.html:71 templates/js/translated/label.js:136 +#: stock/templates/stock/location.html:72 templates/js/translated/label.js:136 msgid "Print Label" msgstr "In tem nhãn" -#: part/templates/part/part_base.html:58 +#: part/templates/part/part_base.html:59 msgid "Show pricing information" msgstr "Hiện thông tin giá cả" -#: part/templates/part/part_base.html:63 -#: stock/templates/stock/item_base.html:110 -#: stock/templates/stock/location.html:80 +#: part/templates/part/part_base.html:64 +#: stock/templates/stock/item_base.html:107 +#: stock/templates/stock/location.html:81 msgid "Stock actions" msgstr "Chức năng kho" -#: part/templates/part/part_base.html:70 +#: part/templates/part/part_base.html:71 msgid "Count part stock" msgstr "Đếm kho sản phẩm" -#: part/templates/part/part_base.html:76 +#: part/templates/part/part_base.html:77 msgid "Transfer part stock" msgstr "Chuyển kho sản phẩm" -#: part/templates/part/part_base.html:91 templates/js/translated/part.js:2299 +#: part/templates/part/part_base.html:92 templates/js/translated/part.js:2299 msgid "Part actions" msgstr "Chức năng sản phẩm" -#: part/templates/part/part_base.html:94 +#: part/templates/part/part_base.html:95 msgid "Duplicate part" msgstr "Nhân bản sản phẩm" -#: part/templates/part/part_base.html:97 +#: part/templates/part/part_base.html:98 msgid "Edit part" msgstr "Sửa sản phẩm" -#: part/templates/part/part_base.html:100 +#: part/templates/part/part_base.html:101 msgid "Delete part" msgstr "Xóa sản phẩm" -#: part/templates/part/part_base.html:119 +#: part/templates/part/part_base.html:120 msgid "Part is a template part (variants can be made from this part)" msgstr "Sản phẩm là một mẫu (biến thể có thể được làm từ sản phẩm này)" -#: part/templates/part/part_base.html:123 +#: part/templates/part/part_base.html:124 msgid "Part can be assembled from other parts" msgstr "Sản phẩm có thể được lắp ráp từ sản phẩm khác" -#: part/templates/part/part_base.html:127 +#: part/templates/part/part_base.html:128 msgid "Part can be used in assemblies" msgstr "Sản phẩm được dùng để lắp ráp" -#: part/templates/part/part_base.html:131 +#: part/templates/part/part_base.html:132 msgid "Part stock is tracked by serial number" msgstr "Kho sản phẩm được theo dõi bởi số sê ri" -#: part/templates/part/part_base.html:135 +#: part/templates/part/part_base.html:136 msgid "Part can be purchased from external suppliers" msgstr "Có thể mua sản phẩm từ nhà cung cấp bên ngoài" -#: part/templates/part/part_base.html:139 +#: part/templates/part/part_base.html:140 msgid "Part can be sold to customers" msgstr "Có thể bán sản phẩm cho khách hàng" -#: part/templates/part/part_base.html:145 +#: part/templates/part/part_base.html:146 msgid "Part is not active" msgstr "Sản phẩm bị tắt" -#: part/templates/part/part_base.html:153 +#: part/templates/part/part_base.html:154 msgid "Part is virtual (not a physical part)" msgstr "Sản phẩm là ảo (không phải sản phẩm vật lý)" -#: part/templates/part/part_base.html:163 -#: part/templates/part/part_base.html:690 +#: part/templates/part/part_base.html:164 +#: part/templates/part/part_base.html:698 msgid "Show Part Details" msgstr "Chi tiết giá sản phẩm" #: part/templates/part/part_base.html:218 -#: stock/templates/stock/item_base.html:388 +msgid "Required for Orders" +msgstr "" + +#: part/templates/part/part_base.html:226 +#: stock/templates/stock/item_base.html:385 msgid "Allocated to Build Orders" msgstr "Phân bổ đến đơn đặt bản dựng" -#: part/templates/part/part_base.html:227 -#: stock/templates/stock/item_base.html:381 +#: part/templates/part/part_base.html:235 +#: stock/templates/stock/item_base.html:378 msgid "Allocated to Sales Orders" msgstr "Phân bổ đến đơn bán hàng" -#: part/templates/part/part_base.html:300 +#: part/templates/part/part_base.html:308 msgid "Minimum stock level" msgstr "Cấp kho tối thiểu" -#: part/templates/part/part_base.html:331 templates/js/translated/bom.js:1071 +#: part/templates/part/part_base.html:339 templates/js/translated/bom.js:1071 #: templates/js/translated/part.js:1271 templates/js/translated/part.js:2463 #: templates/js/translated/pricing.js:391 -#: templates/js/translated/pricing.js:1054 +#: templates/js/translated/pricing.js:1052 msgid "Price Range" msgstr "Khoảng giá" -#: part/templates/part/part_base.html:361 +#: part/templates/part/part_base.html:369 msgid "Latest Serial Number" msgstr "Số seri mới nhất" -#: part/templates/part/part_base.html:365 -#: stock/templates/stock/item_base.html:322 +#: part/templates/part/part_base.html:373 +#: stock/templates/stock/item_base.html:319 msgid "Search for serial number" msgstr "Tìm kiếm cho số sê ri" -#: part/templates/part/part_base.html:453 +#: part/templates/part/part_base.html:461 msgid "Part QR Code" msgstr "Mã QR sản phẩm" -#: part/templates/part/part_base.html:470 +#: part/templates/part/part_base.html:478 msgid "Link Barcode to Part" msgstr "Liên kết mã vạch đến sản phẩm" -#: part/templates/part/part_base.html:520 +#: part/templates/part/part_base.html:528 msgid "Calculate" msgstr "Tính toán" -#: part/templates/part/part_base.html:537 +#: part/templates/part/part_base.html:545 msgid "Remove associated image from this part" msgstr "Xóa ảnh gắn kết với sản phẩm này" -#: part/templates/part/part_base.html:588 +#: part/templates/part/part_base.html:596 msgid "No matching images found" msgstr "Không tìm thấy hình ảnh phù hợp" -#: part/templates/part/part_base.html:684 +#: part/templates/part/part_base.html:692 msgid "Hide Part Details" msgstr "Ẩn chi tiết sản phẩm" @@ -8282,13 +8511,13 @@ msgid "Variants" msgstr "Biến thể" #: part/templates/part/part_sidebar.html:14 -#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:21 +#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:22 #: stock/templates/stock/stock_app_base.html:10 #: templates/InvenTree/search.html:153 #: templates/InvenTree/settings/sidebar.html:51 #: templates/js/translated/part.js:1249 templates/js/translated/part.js:2152 #: templates/js/translated/part.js:2411 templates/js/translated/stock.js:1066 -#: templates/js/translated/stock.js:2155 templates/navbar.html:31 +#: templates/js/translated/stock.js:2156 templates/navbar.html:31 msgid "Stock" msgstr "Kiện hàng" @@ -8324,17 +8553,17 @@ msgstr "Ghi đè định giá sản phẩm" #: part/templates/part/prices.html:18 #: templates/InvenTree/settings/settings_staff_js.html:80 #: templates/InvenTree/settings/user.html:24 -#: templates/js/translated/helpers.js:103 +#: templates/js/translated/helpers.js:104 #: templates/js/translated/pricing.js:628 templates/notes_buttons.html:3 #: templates/notes_buttons.html:4 msgid "Edit" msgstr "Sửa" -#: part/templates/part/prices.html:28 stock/admin.py:251 -#: stock/templates/stock/item_base.html:446 -#: templates/js/translated/company.js:1703 -#: templates/js/translated/company.js:1713 -#: templates/js/translated/stock.js:2331 +#: part/templates/part/prices.html:28 stock/admin.py:252 +#: stock/templates/stock/item_base.html:443 +#: templates/js/translated/company.js:1704 +#: templates/js/translated/company.js:1714 +#: templates/js/translated/stock.js:2332 msgid "Last Updated" msgstr "Cập nhật lần cuối" @@ -8406,7 +8635,7 @@ msgid "Update Pricing" msgstr "Cập nhập giá bán" #: part/templates/part/stock_count.html:7 -#: templates/js/translated/model_renderers.js:228 +#: templates/js/translated/model_renderers.js:231 #: templates/js/translated/part.js:707 templates/js/translated/part.js:2147 #: templates/js/translated/part.js:2149 msgid "No Stock" @@ -8486,7 +8715,7 @@ msgstr "Không tìm thấy ảnh sản phẩm" msgid "Part Pricing" msgstr "Định giá sản phẩm" -#: plugin/api.py:172 +#: plugin/api.py:175 msgid "Plugin cannot be deleted as it is currently active" msgstr "" @@ -8498,78 +8727,85 @@ msgstr "Chưa chỉ ra hành động cụ thể" msgid "No matching action found" msgstr "Không tìm thấy chức năng phù hợp" -#: plugin/base/barcodes/api.py:125 plugin/base/barcodes/api.py:371 -#: plugin/base/barcodes/api.py:546 +#: plugin/base/barcodes/api.py:203 msgid "No match found for barcode data" msgstr "Không tìm thấy dữ liệu mã vạch phù hợp" -#: plugin/base/barcodes/api.py:129 +#: plugin/base/barcodes/api.py:207 msgid "Match found for barcode data" msgstr "Đã tìm thấy dữ liệu mã vạch phù hợp" -#: plugin/base/barcodes/api.py:163 plugin/base/barcodes/serializers.py:45 +#: plugin/base/barcodes/api.py:245 plugin/base/barcodes/serializers.py:72 msgid "Model is not supported" msgstr "" -#: plugin/base/barcodes/api.py:168 +#: plugin/base/barcodes/api.py:250 msgid "Model instance not found" msgstr "" -#: plugin/base/barcodes/api.py:197 -#: templates/js/translated/purchase_order.js:1468 +#: plugin/base/barcodes/api.py:279 +#: templates/js/translated/purchase_order.js:1452 msgid "Barcode matches existing item" msgstr "Mã vạch phù hợp với hàng hóa hiện có" -#: plugin/base/barcodes/api.py:336 +#: plugin/base/barcodes/api.py:418 msgid "No matching part data found" msgstr "Không tìm thấy thông tin sản phẩm phù hợp" -#: plugin/base/barcodes/api.py:353 +#: plugin/base/barcodes/api.py:434 msgid "No matching supplier parts found" msgstr "Không tìm thấy sản phẩm nhà cung cấp phù hợp" -#: plugin/base/barcodes/api.py:357 +#: plugin/base/barcodes/api.py:437 msgid "Multiple matching supplier parts found" msgstr "Tìm thấy nhiều sản phẩm nhà cung cấp phù hợp" -#: plugin/base/barcodes/api.py:381 +#: plugin/base/barcodes/api.py:450 plugin/base/barcodes/api.py:664 +msgid "No matching plugin found for barcode data" +msgstr "" + +#: plugin/base/barcodes/api.py:460 msgid "Matched supplier part" msgstr "Sản phẩm nhà cung cấp phù hợp" -#: plugin/base/barcodes/api.py:430 +#: plugin/base/barcodes/api.py:525 msgid "Item has already been received" msgstr "Hàng hóa này đã được nhận" -#: plugin/base/barcodes/api.py:467 +#: plugin/base/barcodes/api.py:563 msgid "No match for supplier barcode" msgstr "Không phù hợp với mã vạch nhà cung cấp" -#: plugin/base/barcodes/api.py:510 +#: plugin/base/barcodes/api.py:612 msgid "Multiple matching line items found" msgstr "" -#: plugin/base/barcodes/api.py:513 +#: plugin/base/barcodes/api.py:615 msgid "No matching line item found" msgstr "" -#: plugin/base/barcodes/api.py:551 plugin/base/barcodes/api.py:558 +#: plugin/base/barcodes/api.py:661 +msgid "No sales order provided" +msgstr "" + +#: plugin/base/barcodes/api.py:670 msgid "Barcode does not match an existing stock item" msgstr "" -#: plugin/base/barcodes/api.py:569 +#: plugin/base/barcodes/api.py:686 msgid "Stock item does not match line item" msgstr "" -#: plugin/base/barcodes/api.py:593 templates/js/translated/build.js:2780 -#: templates/js/translated/sales_order.js:1953 +#: plugin/base/barcodes/api.py:716 templates/js/translated/build.js:2798 +#: templates/js/translated/sales_order.js:1934 msgid "Insufficient stock available" msgstr "Kho không đủ hạn mức khả dụng" -#: plugin/base/barcodes/api.py:602 +#: plugin/base/barcodes/api.py:729 msgid "Stock item allocated to sales order" msgstr "" -#: plugin/base/barcodes/api.py:606 +#: plugin/base/barcodes/api.py:732 msgid "Not enough information" msgstr "Không đủ thông tin" @@ -8591,75 +8827,75 @@ msgstr "Không có đơn đặt mua phù hợp với '{order}'" msgid "Purchase order does not match supplier" msgstr "Đơn đặt mua không phù hợp với nhà cung cấp" -#: plugin/base/barcodes/mixins.py:465 +#: plugin/base/barcodes/mixins.py:467 msgid "Failed to find pending line item for supplier part" msgstr "Không tìm thấy mục dòng chờ xử lý cho sản phẩm nhà cung cấp" -#: plugin/base/barcodes/mixins.py:496 +#: plugin/base/barcodes/mixins.py:498 msgid "Further information required to receive line item" msgstr "Buộc phải nhập thông tin khác để nhận mục dòng này" -#: plugin/base/barcodes/mixins.py:504 +#: plugin/base/barcodes/mixins.py:506 msgid "Received purchase order line item" msgstr "Mục dòng đơn đặt mua đã nhận" -#: plugin/base/barcodes/serializers.py:21 +#: plugin/base/barcodes/serializers.py:48 msgid "Scanned barcode data" msgstr "Thông tin mã vạch đã quét" -#: plugin/base/barcodes/serializers.py:30 +#: plugin/base/barcodes/serializers.py:57 msgid "Model name to generate barcode for" msgstr "" -#: plugin/base/barcodes/serializers.py:35 +#: plugin/base/barcodes/serializers.py:62 msgid "Primary key of model object to generate barcode for" msgstr "" -#: plugin/base/barcodes/serializers.py:105 +#: plugin/base/barcodes/serializers.py:132 msgid "Purchase Order to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:111 +#: plugin/base/barcodes/serializers.py:138 msgid "Purchase order is not pending" msgstr "Đơn đặt mua không chờ xử lý" -#: plugin/base/barcodes/serializers.py:129 +#: plugin/base/barcodes/serializers.py:156 msgid "PurchaseOrder to receive items against" msgstr "Đơn đặt mua để nhận hàng hóa" -#: plugin/base/barcodes/serializers.py:135 +#: plugin/base/barcodes/serializers.py:162 msgid "Purchase order has not been placed" msgstr "Đơn đặt mua vẫn chưa được thực hiện" -#: plugin/base/barcodes/serializers.py:143 +#: plugin/base/barcodes/serializers.py:170 msgid "Location to receive items into" msgstr "Địa điểm để nhận hàng hóa vào bên trong" -#: plugin/base/barcodes/serializers.py:149 +#: plugin/base/barcodes/serializers.py:176 msgid "Cannot select a structural location" msgstr "Không thể chọn một địa điểm có cấu trúc" -#: plugin/base/barcodes/serializers.py:163 +#: plugin/base/barcodes/serializers.py:190 msgid "Sales Order to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:169 +#: plugin/base/barcodes/serializers.py:196 msgid "Sales order is not pending" msgstr "" -#: plugin/base/barcodes/serializers.py:177 +#: plugin/base/barcodes/serializers.py:204 msgid "Sales order line item to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:184 +#: plugin/base/barcodes/serializers.py:211 msgid "Sales order shipment to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:190 +#: plugin/base/barcodes/serializers.py:217 msgid "Shipment has already been delivered" msgstr "" -#: plugin/base/barcodes/serializers.py:195 +#: plugin/base/barcodes/serializers.py:222 msgid "Quantity to allocate" msgstr "Số lượng cần phân bổ" @@ -8679,6 +8915,42 @@ msgstr "" msgid "No items provided to print" msgstr "" +#: plugin/base/ui/serializers.py:30 +msgid "Plugin Name" +msgstr "" + +#: plugin/base/ui/serializers.py:34 +msgid "Feature Type" +msgstr "" + +#: plugin/base/ui/serializers.py:39 +msgid "Feature Label" +msgstr "" + +#: plugin/base/ui/serializers.py:44 +msgid "Feature Title" +msgstr "" + +#: plugin/base/ui/serializers.py:49 +msgid "Feature Description" +msgstr "" + +#: plugin/base/ui/serializers.py:54 +msgid "Feature Icon" +msgstr "" + +#: plugin/base/ui/serializers.py:58 +msgid "Feature Options" +msgstr "" + +#: plugin/base/ui/serializers.py:61 +msgid "Feature Context" +msgstr "" + +#: plugin/base/ui/serializers.py:64 +msgid "Feature Source (javascript)" +msgstr "" + #: plugin/builtin/barcodes/inventree_barcode.py:27 msgid "InvenTree Barcodes" msgstr "Mã vạch InvenTree" @@ -8756,7 +9028,7 @@ msgstr "URL webhook đầu vào của Slack" msgid "URL that is used to send messages to a slack channel" msgstr "URL dùng để gửi tin nhắn đến một kênh của Slack" -#: plugin/builtin/integration/core_notifications.py:164 +#: plugin/builtin/integration/core_notifications.py:166 msgid "Open link" msgstr "Mở liên kết" @@ -8794,11 +9066,11 @@ msgstr "" msgid "Provides support for printing using a machine" msgstr "" -#: plugin/builtin/labels/inventree_machine.py:149 +#: plugin/builtin/labels/inventree_machine.py:151 msgid "last used" msgstr "" -#: plugin/builtin/labels/inventree_machine.py:166 +#: plugin/builtin/labels/inventree_machine.py:168 msgid "Options" msgstr "" @@ -8822,7 +9094,7 @@ msgstr "Viền" msgid "Print a border around each label" msgstr "In một viền xung quanh từng nhãn" -#: plugin/builtin/labels/label_sheet.py:47 report/models.py:307 +#: plugin/builtin/labels/label_sheet.py:47 report/models.py:315 msgid "Landscape" msgstr "Ngang" @@ -8894,19 +9166,19 @@ msgstr "Cung cấp khả năng quét mã vạch TME" msgid "The Supplier which acts as 'TME'" msgstr "Nhà cung cấp hoạt động như 'TME'" -#: plugin/installer.py:194 plugin/installer.py:282 +#: plugin/installer.py:199 plugin/installer.py:282 msgid "Only staff users can administer plugins" msgstr "" -#: plugin/installer.py:197 +#: plugin/installer.py:202 msgid "Plugin installation is disabled" msgstr "" -#: plugin/installer.py:248 +#: plugin/installer.py:246 msgid "Installed plugin successfully" msgstr "Cài đặt phần mở rộng thành công" -#: plugin/installer.py:254 +#: plugin/installer.py:251 #, python-brace-format msgid "Installed plugin into {path}" msgstr "Cài đặt phần bổ sung đến {path}" @@ -8943,10 +9215,6 @@ msgstr "Cấu hình phần bổ sung" msgid "Plugin Configurations" msgstr "Cấu hình phần bổ sung" -#: plugin/models.py:43 users/models.py:100 -msgid "Key" -msgstr "Khóa" - #: plugin/models.py:44 msgid "Key of plugin" msgstr "Khóa của phần bổ sung" @@ -8955,7 +9223,7 @@ msgstr "Khóa của phần bổ sung" msgid "PluginName of the plugin" msgstr "Tên của phần bổ sung" -#: plugin/models.py:59 plugin/serializers.py:90 +#: plugin/models.py:59 plugin/serializers.py:115 msgid "Package Name" msgstr "Tên gói" @@ -8984,17 +9252,17 @@ msgstr "Plugin có sẵn" msgid "Package Plugin" msgstr "" -#: plugin/models.py:220 report/models.py:474 +#: plugin/models.py:259 report/models.py:482 #: templates/InvenTree/settings/plugin_settings.html:9 #: templates/js/translated/plugin.js:51 msgid "Plugin" msgstr "Phần bổ sung" -#: plugin/models.py:267 +#: plugin/models.py:306 msgid "Method" msgstr "Phương thức" -#: plugin/plugin.py:270 +#: plugin/plugin.py:275 msgid "No author found" msgstr "Không tìm thấy tác giả" @@ -9053,81 +9321,157 @@ msgstr "Phần bổ sung trao đổi tiền tệ mẫu" msgid "InvenTree Contributors" msgstr "Người đóng góp InvenTree" -#: plugin/serializers.py:81 +#: plugin/samples/integration/user_interface_sample.py:27 +msgid "Enable Part Panels" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:28 +msgid "Enable custom panels for Part views" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:33 +msgid "Enable Purchase Order Panels" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:34 +msgid "Enable custom panels for Purchase Order views" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:39 +msgid "Enable Broken Panels" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:40 +msgid "Enable broken panels for testing" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:45 +msgid "Enable Dynamic Panel" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:46 +msgid "Enable dynamic panels for testing" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:98 +msgid "Part Panel" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:131 +msgid "Broken Dashboard Item" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:133 +msgid "This is a broken dashboard item - it will not render!" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:139 +msgid "Sample Dashboard Item" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:141 +msgid "This is a sample dashboard item. It renders a simple string of HTML content." +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:147 +msgid "Context Dashboard Item" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:161 +msgid "Admin Dashboard Item" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:162 +msgid "This is an admin-only dashboard item." +msgstr "" + +#: plugin/serializers.py:82 +msgid "Source File" +msgstr "" + +#: plugin/serializers.py:83 +msgid "Path to the source file for admin integration" +msgstr "" + +#: plugin/serializers.py:90 +msgid "Optional context data for the admin integration" +msgstr "" + +#: plugin/serializers.py:106 msgid "Source URL" msgstr "URL nguồn" -#: plugin/serializers.py:83 +#: plugin/serializers.py:108 msgid "Source for the package - this can be a custom registry or a VCS path" msgstr "Nguồn cấp cho gói - có thể là sổ đăng ký tùy chỉnh hoặc đường dẫn VCS" -#: plugin/serializers.py:92 +#: plugin/serializers.py:117 msgid "Name for the Plugin Package - can also contain a version indicator" msgstr "Tên của gói bổ sung - có thể còn chứa chỉ dẫn phiên bản" -#: plugin/serializers.py:99 +#: plugin/serializers.py:124 #: templates/InvenTree/settings/plugin_settings.html:42 #: templates/js/translated/plugin.js:86 msgid "Version" msgstr "Phiên bản" -#: plugin/serializers.py:101 +#: plugin/serializers.py:126 msgid "Version specifier for the plugin. Leave blank for latest version." msgstr "" -#: plugin/serializers.py:106 +#: plugin/serializers.py:131 msgid "Confirm plugin installation" msgstr "Xác nhận cài đặt phần bổ sung" -#: plugin/serializers.py:108 +#: plugin/serializers.py:133 msgid "This will install this plugin now into the current instance. The instance will go into maintenance." msgstr "Sẽ cài đặt phần bổ sung này vào thực thể hiện tại. Thực thể sẽ chuyển sang chế độ bảo trì." -#: plugin/serializers.py:121 +#: plugin/serializers.py:146 msgid "Installation not confirmed" msgstr "Cài đặt chưa được xác nhận" -#: plugin/serializers.py:123 +#: plugin/serializers.py:148 msgid "Either packagename of URL must be provided" msgstr "Hoặc là phải cung cấp tên gói của URL" -#: plugin/serializers.py:161 +#: plugin/serializers.py:184 msgid "Full reload" msgstr "Tải lại đầy đủ" -#: plugin/serializers.py:162 +#: plugin/serializers.py:185 msgid "Perform a full reload of the plugin registry" msgstr "" -#: plugin/serializers.py:168 +#: plugin/serializers.py:191 msgid "Force reload" msgstr "Buộc tải lại" -#: plugin/serializers.py:170 +#: plugin/serializers.py:193 msgid "Force a reload of the plugin registry, even if it is already loaded" msgstr "" -#: plugin/serializers.py:177 +#: plugin/serializers.py:200 msgid "Collect plugins" msgstr "" -#: plugin/serializers.py:178 +#: plugin/serializers.py:201 msgid "Collect plugins and add them to the registry" msgstr "" -#: plugin/serializers.py:205 +#: plugin/serializers.py:228 msgid "Activate Plugin" msgstr "Kích hoạt phần bổ sung" -#: plugin/serializers.py:206 +#: plugin/serializers.py:229 msgid "Activate this plugin" msgstr "Kích hoạt phần bổ sung này" -#: plugin/serializers.py:226 +#: plugin/serializers.py:249 msgid "Delete configuration" msgstr "" -#: plugin/serializers.py:227 +#: plugin/serializers.py:250 msgid "Delete the plugin configuration from the database" msgstr "" @@ -9135,11 +9479,11 @@ msgstr "" msgid "No valid objects provided to template" msgstr "Chưa cung cấp đối tượng hợp lệ cho bản mẫu" -#: report/api.py:103 report/models.py:438 report/serializers.py:98 -#: report/serializers.py:148 templates/js/translated/purchase_order.js:1817 +#: report/api.py:103 report/models.py:446 report/serializers.py:99 +#: report/serializers.py:149 templates/js/translated/purchase_order.js:1801 #: templates/js/translated/return_order.js:353 -#: templates/js/translated/sales_order.js:887 -#: templates/js/translated/sales_order.js:1047 +#: templates/js/translated/sales_order.js:846 +#: templates/js/translated/sales_order.js:1020 msgid "Items" msgstr "" @@ -9167,7 +9511,11 @@ msgstr "" msgid "Error printing label" msgstr "" -#: report/api.py:375 report/api.py:411 +#: report/api.py:358 +msgid "Report saved at time of printing" +msgstr "" + +#: report/api.py:384 report/api.py:420 #, python-brace-format msgid "Template file '{template}' is missing or does not exist" msgstr "Tệp mẫu '{template}' đang bị lỗi hoặc không tồn tại" @@ -9204,135 +9552,143 @@ msgstr "" msgid "Revision number (auto-increments)" msgstr "" -#: report/models.py:202 +#: report/models.py:168 +msgid "Attach to Model on Print" +msgstr "" + +#: report/models.py:170 +msgid "Save report output as an attachment against linked model instance when printing" +msgstr "" + +#: report/models.py:210 msgid "Filename Pattern" msgstr "Mẫu tên tệp" -#: report/models.py:203 +#: report/models.py:211 msgid "Pattern for generating filenames" msgstr "" -#: report/models.py:208 +#: report/models.py:216 msgid "Template is enabled" msgstr "" -#: report/models.py:214 +#: report/models.py:222 msgid "Target model type for template" msgstr "" -#: report/models.py:234 +#: report/models.py:242 msgid "Filters" msgstr "Bộ lọc" -#: report/models.py:235 +#: report/models.py:243 msgid "Template query filters (comma-separated list of key=value pairs)" msgstr "" -#: report/models.py:294 report/models.py:361 +#: report/models.py:302 report/models.py:369 msgid "Template file" msgstr "" -#: report/models.py:302 +#: report/models.py:310 msgid "Page size for PDF reports" msgstr "Khổ giấy cho báo cáo PDF" -#: report/models.py:308 +#: report/models.py:316 msgid "Render report in landscape orientation" msgstr "Tạo báo cáo theo hướng ngang" -#: report/models.py:367 +#: report/models.py:375 msgid "Width [mm]" msgstr "Chiều rộng [mm]" -#: report/models.py:368 +#: report/models.py:376 msgid "Label width, specified in mm" msgstr "Chiều rộng nhãn, tính theo mm" -#: report/models.py:374 +#: report/models.py:382 msgid "Height [mm]" msgstr "Chiều cao [mm]" -#: report/models.py:375 +#: report/models.py:383 msgid "Label height, specified in mm" msgstr "Chiều cao nhãn, tính theo mm" -#: report/models.py:438 +#: report/models.py:446 msgid "Number of items to process" msgstr "" -#: report/models.py:444 +#: report/models.py:452 msgid "Report generation is complete" msgstr "" -#: report/models.py:448 templates/js/translated/build.js:2349 +#: report/models.py:456 templates/js/translated/build.js:2352 msgid "Progress" msgstr "" -#: report/models.py:448 +#: report/models.py:456 msgid "Report generation progress" msgstr "" -#: report/models.py:456 +#: report/models.py:464 msgid "Report Template" msgstr "" -#: report/models.py:463 report/models.py:486 +#: report/models.py:471 report/models.py:494 msgid "Output File" msgstr "" -#: report/models.py:464 report/models.py:487 +#: report/models.py:472 report/models.py:495 msgid "Generated output file" msgstr "" -#: report/models.py:475 +#: report/models.py:483 msgid "Label output plugin" msgstr "" -#: report/models.py:479 +#: report/models.py:487 msgid "Label Template" msgstr "" -#: report/models.py:502 +#: report/models.py:510 msgid "Snippet" msgstr "Mẫu trích" -#: report/models.py:503 +#: report/models.py:511 msgid "Report snippet file" msgstr "Tệp báo cáo mẫu" -#: report/models.py:510 +#: report/models.py:518 msgid "Snippet file description" msgstr "Mô tả tệp báo cáo mẫu" -#: report/models.py:528 +#: report/models.py:536 msgid "Asset" msgstr "Tài sản" -#: report/models.py:529 +#: report/models.py:537 msgid "Report asset file" msgstr "Tệp báo cáo tài sản" -#: report/models.py:536 +#: report/models.py:544 msgid "Asset file description" msgstr "Mô tả tệp báo cáo tài sản" -#: report/serializers.py:91 +#: report/serializers.py:92 msgid "Select report template" msgstr "" -#: report/serializers.py:99 report/serializers.py:149 +#: report/serializers.py:100 report/serializers.py:150 msgid "List of item primary keys to include in the report" msgstr "" -#: report/serializers.py:132 +#: report/serializers.py:133 msgid "Select label template" msgstr "" -#: report/serializers.py:140 +#: report/serializers.py:141 msgid "Printing Plugin" msgstr "" -#: report/serializers.py:141 +#: report/serializers.py:142 msgid "Select plugin to use for label printing" msgstr "" @@ -9365,9 +9721,9 @@ msgstr "Nhà cung cấp đã bị xóa" #: report/templates/report/inventree_sales_order_report.html:30 #: templates/js/translated/order.js:341 templates/js/translated/pricing.js:527 #: templates/js/translated/pricing.js:596 -#: templates/js/translated/pricing.js:834 -#: templates/js/translated/purchase_order.js:2185 -#: templates/js/translated/sales_order.js:1873 +#: templates/js/translated/pricing.js:832 +#: templates/js/translated/purchase_order.js:2169 +#: templates/js/translated/sales_order.js:1854 msgid "Unit Price" msgstr "Đơn giá" @@ -9379,13 +9735,18 @@ msgstr "Bảng liệt kê mở rộng" #: report/templates/report/inventree_purchase_order_report.html:72 #: report/templates/report/inventree_sales_order_report.html:72 -#: templates/js/translated/purchase_order.js:2087 -#: templates/js/translated/sales_order.js:1842 +#: templates/js/translated/purchase_order.js:2071 +#: templates/js/translated/sales_order.js:1823 #: templates/test_statistics_table.html:8 #: templates/test_statistics_table.html:19 msgid "Total" msgstr "Tổng cộng" +#: report/templates/report/inventree_sales_order_shipment_report.html:23 +#: stock/templates/stock/stock_sidebar.html:8 +msgid "Allocations" +msgstr "Phân bổ" + #: report/templates/report/inventree_stock_location_report.html:97 msgid "Stock location items" msgstr "Mục vị trí kho hàng" @@ -9403,15 +9764,13 @@ msgstr "Kết quả kiểm tra" msgid "Test" msgstr "Thử nghiệm" -#: report/templates/report/inventree_test_report.html:103 stock/models.py:2544 -msgid "Result" -msgstr "Kết quả" - #: report/templates/report/inventree_test_report.html:129 +#: templates/js/translated/stock.js:1448 msgid "Pass" msgstr "Đạt" #: report/templates/report/inventree_test_report.html:131 +#: templates/js/translated/stock.js:1450 msgid "Fail" msgstr "Không đạt" @@ -9420,17 +9779,18 @@ msgid "No result (required)" msgstr "Không có kết quả (bắt buộc)" #: report/templates/report/inventree_test_report.html:140 +#: templates/js/translated/stock.js:1455 msgid "No result" msgstr "Không có kết quả" #: report/templates/report/inventree_test_report.html:153 -#: stock/serializers.py:599 stock/templates/stock/stock_sidebar.html:16 +#: stock/serializers.py:626 stock/templates/stock/stock_sidebar.html:16 msgid "Installed Items" msgstr "Mục đã cài đặt" -#: report/templates/report/inventree_test_report.html:167 stock/admin.py:161 +#: report/templates/report/inventree_test_report.html:167 stock/admin.py:162 #: templates/js/translated/stock.js:706 templates/js/translated/stock.js:877 -#: templates/js/translated/stock.js:3194 +#: templates/js/translated/stock.js:3195 msgid "Serial" msgstr "Sê-ri" @@ -9450,67 +9810,67 @@ msgstr "thẻ part_image yêu cầu 1 thực thể sản phẩm" msgid "company_image tag requires a Company instance" msgstr "thẻ company_image yêu cầu một thực thể doanh nghiệp" -#: stock/admin.py:51 stock/admin.py:171 +#: stock/admin.py:51 stock/admin.py:172 msgid "Location ID" msgstr "ID địa điểm" -#: stock/admin.py:63 stock/templates/stock/location.html:128 -#: stock/templates/stock/location.html:134 +#: stock/admin.py:63 stock/templates/stock/location.html:129 +#: stock/templates/stock/location.html:135 msgid "Location Path" msgstr "Đường dẫn địa điểm" -#: stock/admin.py:148 +#: stock/admin.py:149 msgid "Stock Item ID" msgstr "ID mặt hàng" -#: stock/admin.py:167 +#: stock/admin.py:168 msgid "Status Code" msgstr "Mã trạng thái" -#: stock/admin.py:179 +#: stock/admin.py:180 msgid "Supplier Part ID" msgstr "Sản phẩm nhà cung cấp" -#: stock/admin.py:184 +#: stock/admin.py:185 msgid "Supplier Part SKU" msgstr "" -#: stock/admin.py:189 +#: stock/admin.py:190 msgid "Supplier ID" msgstr "Tên nhà cung cấp" -#: stock/admin.py:200 +#: stock/admin.py:201 msgid "Customer ID" msgstr "ID Khách hàng" -#: stock/admin.py:205 stock/models.py:825 -#: stock/templates/stock/item_base.html:354 +#: stock/admin.py:206 stock/models.py:902 +#: stock/templates/stock/item_base.html:351 msgid "Installed In" msgstr "Đã cài đặt trong" -#: stock/admin.py:210 +#: stock/admin.py:211 msgid "Build ID" msgstr "ID bản dựng" -#: stock/admin.py:220 +#: stock/admin.py:221 msgid "Sales Order ID" msgstr "ID đơn hàng bán" -#: stock/admin.py:225 +#: stock/admin.py:226 msgid "Purchase Order ID" msgstr "ID đơn đặt mua" -#: stock/admin.py:240 +#: stock/admin.py:241 msgid "Review Needed" msgstr "Cần xem xét" -#: stock/admin.py:245 +#: stock/admin.py:246 msgid "Delete on Deplete" msgstr "Xóa khi thiếu hụt" -#: stock/admin.py:260 stock/models.py:919 -#: stock/templates/stock/item_base.html:433 -#: templates/js/translated/stock.js:2315 users/models.py:124 +#: stock/admin.py:261 stock/models.py:996 +#: stock/templates/stock/item_base.html:430 +#: templates/js/translated/stock.js:2316 users/models.py:124 msgid "Expiry Date" msgstr "Ngày hết hạn" @@ -9526,11 +9886,11 @@ msgstr "" msgid "Include sub-locations in filtered results" msgstr "" -#: stock/api.py:367 stock/serializers.py:1186 +#: stock/api.py:366 stock/serializers.py:1217 msgid "Parent Location" msgstr "" -#: stock/api.py:368 +#: stock/api.py:367 msgid "Filter by parent location" msgstr "" @@ -9550,8 +9910,8 @@ msgstr "Ngày hết hạn trước đó" msgid "Expiry date after" msgstr "Ngày hết hạn sau đó" -#: stock/api.py:840 stock/serializers.py:604 -#: stock/templates/stock/item_base.html:439 +#: stock/api.py:840 stock/serializers.py:631 +#: stock/templates/stock/item_base.html:436 #: templates/js/translated/table_filters.js:448 msgid "Stale" msgstr "Ế" @@ -9560,594 +9920,598 @@ msgstr "Ế" msgid "Quantity is required" msgstr "Bắt buộc nhập số lượng" -#: stock/api.py:933 +#: stock/api.py:932 msgid "Valid part must be supplied" msgstr "Phải cung cấp sản phẩm hợp lệ" -#: stock/api.py:964 +#: stock/api.py:959 msgid "The given supplier part does not exist" msgstr "Sản phẩm nhà cung cấp đã đưa không tồn tại" -#: stock/api.py:974 +#: stock/api.py:969 msgid "The supplier part has a pack size defined, but flag use_pack_size not set" msgstr "Sản phẩm nhà cung cấp có kích thước đóng gói được định nghĩa nhưng cờ use_pack_size chưa được thiết lập" -#: stock/api.py:1005 +#: stock/api.py:996 msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "Số sê-ri không thê được cung cấp cho sản phẩm không thể theo dõi" -#: stock/models.py:64 +#: stock/models.py:70 msgid "Stock Location type" msgstr "Loại vị trí kho hàng" -#: stock/models.py:65 +#: stock/models.py:71 msgid "Stock Location types" msgstr "Loại vị trí kho hàng" -#: stock/models.py:91 +#: stock/models.py:97 msgid "Default icon for all locations that have no icon set (optional)" msgstr "Biểu tượng mặc định cho vị trí không được đặt biểu tượng (tùy chọn)" -#: stock/models.py:131 stock/models.py:807 -#: stock/templates/stock/location.html:17 +#: stock/models.py:137 stock/models.py:884 +#: stock/templates/stock/location.html:18 #: stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "Kho hàng" -#: stock/models.py:132 stock/templates/stock/location.html:183 +#: stock/models.py:138 stock/templates/stock/location.html:184 #: templates/InvenTree/search.html:166 templates/js/translated/search.js:178 #: users/models.py:205 msgid "Stock Locations" msgstr "Vị trí kho hàng" -#: stock/models.py:180 stock/models.py:968 -#: stock/templates/stock/item_base.html:247 +#: stock/models.py:186 stock/models.py:1045 +#: stock/templates/stock/item_base.html:244 msgid "Owner" msgstr "Chủ sở hữu" -#: stock/models.py:181 stock/models.py:969 +#: stock/models.py:187 stock/models.py:1046 msgid "Select Owner" msgstr "Chọn chủ sở hữu" -#: stock/models.py:189 +#: stock/models.py:195 msgid "Stock items may not be directly located into a structural stock locations, but may be located to child locations." msgstr "Không thể đưa trực tiếp hàng trong kho vào bên trong vị trí kho hàng có cấu trúc, nhưng có thể đặt vào kho con." -#: stock/models.py:196 templates/js/translated/stock.js:2865 +#: stock/models.py:202 templates/js/translated/stock.js:2866 #: templates/js/translated/table_filters.js:250 msgid "External" msgstr "Bên ngoài" -#: stock/models.py:197 +#: stock/models.py:203 msgid "This is an external stock location" msgstr "Đây là vị trí kho bên ngoài" -#: stock/models.py:203 templates/js/translated/stock.js:2874 +#: stock/models.py:209 templates/js/translated/stock.js:2875 #: templates/js/translated/table_filters.js:253 msgid "Location type" msgstr "Loại vị trí" -#: stock/models.py:207 +#: stock/models.py:213 msgid "Stock location type of this location" msgstr "Loại vị trí kho hàng của địa điểm này" -#: stock/models.py:279 +#: stock/models.py:285 msgid "You cannot make this stock location structural because some stock items are already located into it!" msgstr "Bạn không thể chuyển đổi vị trí kho hàng này thành cấu trúc vì đã có hàng hóa trong kho được đặt vào bên trong nó!" -#: stock/models.py:664 +#: stock/models.py:492 +msgid "Part must be specified" +msgstr "" + +#: stock/models.py:741 msgid "Stock items cannot be located into structural stock locations!" msgstr "Không thể đặt hàng trong kho vào trong địa điểm kho có cấu trúc!" -#: stock/models.py:691 stock/serializers.py:480 +#: stock/models.py:768 stock/serializers.py:492 msgid "Stock item cannot be created for virtual parts" msgstr "Không thể tạo hàng hóa trong kho cho sản phẩm ảo" -#: stock/models.py:708 +#: stock/models.py:785 #, python-brace-format msgid "Part type ('{self.supplier_part.part}') must be {self.part}" msgstr "Loại sản phẩm ('{self.supplier_part.part}') phải là {self.part}" -#: stock/models.py:718 stock/models.py:731 +#: stock/models.py:795 stock/models.py:808 msgid "Quantity must be 1 for item with a serial number" msgstr "Số lượng phải là 1 cho hàng hóa với số sê ri" -#: stock/models.py:721 +#: stock/models.py:798 msgid "Serial number cannot be set if quantity greater than 1" msgstr "Số sê ri không thể đặt được nếu số lượng lớn hơn 1" -#: stock/models.py:743 +#: stock/models.py:820 msgid "Item cannot belong to itself" msgstr "Hàng hóa không thể thuộc về chính nó" -#: stock/models.py:748 +#: stock/models.py:825 msgid "Item must have a build reference if is_building=True" msgstr "Hàng hóa phải có 1 tham chiếu bản dựng nếu is_building=True" -#: stock/models.py:761 +#: stock/models.py:838 msgid "Build reference does not point to the same part object" msgstr "Tham chiếu bản dựng không thể trỏ vào cùng một đối tượng sản phẩm" -#: stock/models.py:777 +#: stock/models.py:854 msgid "Parent Stock Item" msgstr "Hàng trong kho cha" -#: stock/models.py:789 +#: stock/models.py:866 msgid "Base part" msgstr "Sản phẩm cơ bản" -#: stock/models.py:799 +#: stock/models.py:876 msgid "Select a matching supplier part for this stock item" msgstr "Chọn sản phẩm nhà cung cấp khớp với hàng hóa trong kho này" -#: stock/models.py:811 +#: stock/models.py:888 msgid "Where is this stock item located?" msgstr "Hàng trong kho này được đặt ở đâu?" -#: stock/models.py:819 stock/serializers.py:1580 +#: stock/models.py:896 stock/serializers.py:1611 msgid "Packaging this stock item is stored in" msgstr "Đóng gói hàng hóa này được lưu trữ lại" -#: stock/models.py:830 +#: stock/models.py:907 msgid "Is this item installed in another item?" msgstr "Mục này đã được cài đặt trong mục khác?" -#: stock/models.py:849 +#: stock/models.py:926 msgid "Serial number for this item" msgstr "Số sê ri cho mục này" -#: stock/models.py:863 stock/serializers.py:1563 +#: stock/models.py:940 stock/serializers.py:1594 msgid "Batch code for this stock item" msgstr "Mã lô cho hàng trong kho này" -#: stock/models.py:868 +#: stock/models.py:945 msgid "Stock Quantity" msgstr "Số lượng tồn kho" -#: stock/models.py:878 +#: stock/models.py:955 msgid "Source Build" msgstr "Bản dựng nguồn" -#: stock/models.py:881 +#: stock/models.py:958 msgid "Build for this stock item" msgstr "Bản dựng cho hàng hóa này" -#: stock/models.py:888 stock/templates/stock/item_base.html:363 +#: stock/models.py:965 stock/templates/stock/item_base.html:360 msgid "Consumed By" msgstr "Tiêu thụ bởi" -#: stock/models.py:891 +#: stock/models.py:968 msgid "Build order which consumed this stock item" msgstr "Đơn đặt bản dựng đã dùng hàng hóa này" -#: stock/models.py:900 +#: stock/models.py:977 msgid "Source Purchase Order" msgstr "Đơn đặt mua nguồn" -#: stock/models.py:904 +#: stock/models.py:981 msgid "Purchase order for this stock item" msgstr "Đơn đặt mua cho hàng hóa này" -#: stock/models.py:910 +#: stock/models.py:987 msgid "Destination Sales Order" msgstr "Đơn hàng bán đích" -#: stock/models.py:921 +#: stock/models.py:998 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "Ngày hết hạn của hàng hóa này. Kho sẽ được nhắc tình trạng hết hạn sau ngày này" -#: stock/models.py:939 +#: stock/models.py:1016 msgid "Delete on deplete" msgstr "Xóa khi thiếu hụt" -#: stock/models.py:940 +#: stock/models.py:1017 msgid "Delete this Stock Item when stock is depleted" msgstr "Xóa hàng trong kho này khi kho hàng bị thiếu hụt" -#: stock/models.py:960 +#: stock/models.py:1037 msgid "Single unit purchase price at time of purchase" msgstr "Giá mua riêng lẻ tại thời điểm mua" -#: stock/models.py:991 +#: stock/models.py:1068 msgid "Converted to part" msgstr "Đã chuyển đổi sang sản phẩm" -#: stock/models.py:1511 +#: stock/models.py:1600 msgid "Part is not set as trackable" msgstr "Chưa đặt sản phẩm thành có thể theo dõi" -#: stock/models.py:1517 +#: stock/models.py:1606 msgid "Quantity must be integer" msgstr "Số lượng phải là số nguyên" -#: stock/models.py:1525 +#: stock/models.py:1614 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({self.quantity})" msgstr "Số lượng không thể vượt quá số lượng trong kho đang có ({self.quantity})" -#: stock/models.py:1531 -msgid "Serial numbers must be a list of integers" -msgstr "Số sêri phải là một danh sách dãy số nguyên" +#: stock/models.py:1620 +msgid "Serial numbers must be provided as a list" +msgstr "" -#: stock/models.py:1536 +#: stock/models.py:1625 msgid "Quantity does not match serial numbers" msgstr "Số lượng không khớp với số sêri" -#: stock/models.py:1544 stock/serializers.py:726 -msgid "Serial numbers already exist" -msgstr "Số sêri đã tồn tại" - -#: stock/models.py:1641 +#: stock/models.py:1747 stock/models.py:2563 msgid "Test template does not exist" msgstr "" -#: stock/models.py:1659 +#: stock/models.py:1765 msgid "Stock item has been assigned to a sales order" msgstr "Hàng trong kho đã được gán vào đơn hàng bán" -#: stock/models.py:1663 +#: stock/models.py:1769 msgid "Stock item is installed in another item" msgstr "Hàng trong kho đã được cài đặt vào hàng hóa khác" -#: stock/models.py:1666 +#: stock/models.py:1772 msgid "Stock item contains other items" msgstr "Hàng trong kho chứa hàng hóa khác" -#: stock/models.py:1669 +#: stock/models.py:1775 msgid "Stock item has been assigned to a customer" msgstr "Hàng trong kho đã được gắn với một khách hàng" -#: stock/models.py:1672 +#: stock/models.py:1778 msgid "Stock item is currently in production" msgstr "Hàng trong kho hiện đang sản xuất" -#: stock/models.py:1675 +#: stock/models.py:1781 msgid "Serialized stock cannot be merged" msgstr "Không thể hợp nhất kho nối tiếp" -#: stock/models.py:1682 stock/serializers.py:1469 +#: stock/models.py:1788 stock/serializers.py:1500 msgid "Duplicate stock items" msgstr "Mặt hàng trùng lặp" -#: stock/models.py:1686 +#: stock/models.py:1792 msgid "Stock items must refer to the same part" msgstr "Mặt hàng phải tham chiếu đến sản phẩm tương tự" -#: stock/models.py:1694 +#: stock/models.py:1800 msgid "Stock items must refer to the same supplier part" msgstr "Mặt hàng phải tham chiếu đến sản phẩm nhà cung cấp tương tự" -#: stock/models.py:1699 +#: stock/models.py:1805 msgid "Stock status codes must match" msgstr "Mã trạng thái kho phải phù hợp" -#: stock/models.py:1960 +#: stock/models.py:2066 msgid "StockItem cannot be moved as it is not in stock" msgstr "Không thể xóa mặt hàng không ở trong kho" -#: stock/models.py:2343 +#: stock/models.py:2462 msgid "Stock Item Tracking" msgstr "" -#: stock/models.py:2376 +#: stock/models.py:2495 msgid "Entry notes" msgstr "Ghi chú đầu vào" -#: stock/models.py:2416 +#: stock/models.py:2535 msgid "Stock Item Test Result" msgstr "" -#: stock/models.py:2449 +#: stock/models.py:2566 msgid "Value must be provided for this test" msgstr "Phải cung cấp giá trị cho kiểm thử này" -#: stock/models.py:2454 +#: stock/models.py:2570 msgid "Attachment must be uploaded for this test" msgstr "Phải tải liên đính kèm cho kiểm thử này" -#: stock/models.py:2459 +#: stock/models.py:2575 msgid "Invalid value for this test" msgstr "" -#: stock/models.py:2544 +#: stock/models.py:2660 msgid "Test result" msgstr "Kết quả kiểm thử" -#: stock/models.py:2551 +#: stock/models.py:2667 msgid "Test output value" msgstr "Giá trị đầu ra kiểm thử" -#: stock/models.py:2559 +#: stock/models.py:2675 stock/serializers.py:245 msgid "Test result attachment" msgstr "Đính kèm kết quả kiểm thử" -#: stock/models.py:2563 +#: stock/models.py:2679 msgid "Test notes" msgstr "Ghi chú kiểm thử" -#: stock/models.py:2571 templates/js/translated/stock.js:1633 +#: stock/models.py:2687 templates/js/translated/stock.js:1633 msgid "Test station" msgstr "" -#: stock/models.py:2572 +#: stock/models.py:2688 msgid "The identifier of the test station where the test was performed" msgstr "" -#: stock/models.py:2578 +#: stock/models.py:2694 msgid "Started" msgstr "" -#: stock/models.py:2579 +#: stock/models.py:2695 msgid "The timestamp of the test start" msgstr "" -#: stock/models.py:2585 +#: stock/models.py:2701 msgid "Finished" msgstr "" -#: stock/models.py:2586 +#: stock/models.py:2702 msgid "The timestamp of the test finish" msgstr "" -#: stock/serializers.py:76 +#: stock/serializers.py:77 msgid "Generated batch code" msgstr "" -#: stock/serializers.py:85 +#: stock/serializers.py:86 msgid "Select build order" msgstr "" -#: stock/serializers.py:94 +#: stock/serializers.py:95 msgid "Select stock item to generate batch code for" msgstr "" -#: stock/serializers.py:103 +#: stock/serializers.py:104 msgid "Select location to generate batch code for" msgstr "" -#: stock/serializers.py:112 +#: stock/serializers.py:113 msgid "Select part to generate batch code for" msgstr "" -#: stock/serializers.py:121 +#: stock/serializers.py:122 msgid "Select purchase order" msgstr "" -#: stock/serializers.py:128 +#: stock/serializers.py:129 msgid "Enter quantity for batch code" msgstr "" -#: stock/serializers.py:151 +#: stock/serializers.py:152 msgid "Generated serial number" msgstr "" -#: stock/serializers.py:160 +#: stock/serializers.py:161 msgid "Select part to generate serial number for" msgstr "" -#: stock/serializers.py:168 +#: stock/serializers.py:169 msgid "Quantity of serial numbers to generate" msgstr "" -#: stock/serializers.py:233 +#: stock/serializers.py:234 msgid "Test template for this result" msgstr "" -#: stock/serializers.py:254 +#: stock/serializers.py:258 msgid "Template ID or test name must be provided" msgstr "" -#: stock/serializers.py:286 +#: stock/serializers.py:290 msgid "The test finished time cannot be earlier than the test started time" msgstr "" -#: stock/serializers.py:323 +#: stock/serializers.py:327 msgid "Serial number is too large" msgstr "Số sêri quá lớn" -#: stock/serializers.py:452 stock/templates/stock/item_base.html:193 +#: stock/serializers.py:462 stock/templates/stock/item_base.html:190 msgid "Parent Item" msgstr "Mục cha" -#: stock/serializers.py:453 +#: stock/serializers.py:463 msgid "Parent stock item" msgstr "" -#: stock/serializers.py:472 +#: stock/serializers.py:484 msgid "Use pack size when adding: the quantity defined is the number of packs" msgstr "Sử dụng kích thước đóng gói khi thêm: Số lượng được định nghĩa là số của gói" -#: stock/serializers.py:596 stock/templates/stock/item_base.html:437 +#: stock/serializers.py:623 stock/templates/stock/item_base.html:434 #: templates/js/translated/table_filters.js:442 users/models.py:174 msgid "Expired" msgstr "Đã hết hạn" -#: stock/serializers.py:602 stock/templates/stock/stock_sidebar.html:20 +#: stock/serializers.py:629 stock/templates/stock/stock_sidebar.html:20 msgid "Child Items" msgstr "Mục con" -#: stock/serializers.py:606 +#: stock/serializers.py:633 msgid "Tracking Items" msgstr "" -#: stock/serializers.py:612 +#: stock/serializers.py:639 msgid "Purchase price of this stock item, per unit or pack" msgstr "Giá mua của mặt hàng, theo đơn vị hoặc gói" -#: stock/serializers.py:631 +#: stock/serializers.py:658 msgid "Minimum Pricing" msgstr "" -#: stock/serializers.py:637 +#: stock/serializers.py:664 msgid "Maximum Pricing" msgstr "" -#: stock/serializers.py:661 +#: stock/serializers.py:688 msgid "Enter number of stock items to serialize" msgstr "Nhập số của mặt hàng cần tạo số nối tiếp" -#: stock/serializers.py:674 +#: stock/serializers.py:701 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({q})" msgstr "Số lượng phải không vượt quá số lượng trong kho đang có ({q})" -#: stock/serializers.py:681 +#: stock/serializers.py:708 msgid "Enter serial numbers for new items" msgstr "Điền số sêri cho hàng hóa mới" -#: stock/serializers.py:692 stock/serializers.py:1426 stock/serializers.py:1682 +#: stock/serializers.py:719 stock/serializers.py:1457 stock/serializers.py:1713 msgid "Destination stock location" msgstr "Vị trí kho đích" -#: stock/serializers.py:699 +#: stock/serializers.py:726 msgid "Optional note field" msgstr "Trường ghi chú tùy chọn" -#: stock/serializers.py:709 +#: stock/serializers.py:736 msgid "Serial numbers cannot be assigned to this part" msgstr "Không thể gán số sêri cho sản phẩm này" -#: stock/serializers.py:764 +#: stock/serializers.py:756 +msgid "Serial numbers already exist" +msgstr "Số sêri đã tồn tại" + +#: stock/serializers.py:795 msgid "Select stock item to install" msgstr "Chọn mặt hàng để lắp đặt" -#: stock/serializers.py:771 +#: stock/serializers.py:802 msgid "Quantity to Install" msgstr "Số lượng để cài đặt" -#: stock/serializers.py:772 +#: stock/serializers.py:803 msgid "Enter the quantity of items to install" msgstr "Nhập số lượng hàng hóa để cài đặt" -#: stock/serializers.py:777 stock/serializers.py:857 stock/serializers.py:983 -#: stock/serializers.py:1033 +#: stock/serializers.py:808 stock/serializers.py:888 stock/serializers.py:1014 +#: stock/serializers.py:1064 msgid "Add transaction note (optional)" msgstr "Thêm ghi chú giao dịch (tùy chọn)" -#: stock/serializers.py:785 +#: stock/serializers.py:816 msgid "Quantity to install must be at least 1" msgstr "Số lượng cần cài đặt phải ít nhất là 1" -#: stock/serializers.py:793 +#: stock/serializers.py:824 msgid "Stock item is unavailable" msgstr "Mặt hàng không khả dụng" -#: stock/serializers.py:804 +#: stock/serializers.py:835 msgid "Selected part is not in the Bill of Materials" msgstr "Sản phẩm đã chọn không có trong hóa đơn vật liệu" -#: stock/serializers.py:817 +#: stock/serializers.py:848 msgid "Quantity to install must not exceed available quantity" msgstr "Số lượng cần lắp đặt phải không vượt quá số lượng đang có" -#: stock/serializers.py:852 +#: stock/serializers.py:883 msgid "Destination location for uninstalled item" msgstr "Vị trí đích cho hàng hóa bị gỡ bỏ" -#: stock/serializers.py:903 +#: stock/serializers.py:934 msgid "Unsupported statistic type: " msgstr "" -#: stock/serializers.py:917 +#: stock/serializers.py:948 msgid "Select part to convert stock item into" msgstr "Chọn sản phẩm để chuyển đổi mặt hàng vào bên trong" -#: stock/serializers.py:930 +#: stock/serializers.py:961 msgid "Selected part is not a valid option for conversion" msgstr "Sản phẩm đã chọn không phải là tùy chọn hợp lệ để chuyển đổi" -#: stock/serializers.py:947 +#: stock/serializers.py:978 msgid "Cannot convert stock item with assigned SupplierPart" msgstr "Không thể chuyển đổi hàng hóa với sản phẩm nhà cung cấp đã gán" -#: stock/serializers.py:978 +#: stock/serializers.py:1009 msgid "Destination location for returned item" msgstr "Vị trí đích dành cho hàng hóa trả lại" -#: stock/serializers.py:1015 +#: stock/serializers.py:1046 msgid "Select stock items to change status" msgstr "Chọn mặt hàng để đổi trạng thái" -#: stock/serializers.py:1021 +#: stock/serializers.py:1052 msgid "No stock items selected" msgstr "Không có mặt hàng nào được chọn" -#: stock/serializers.py:1117 stock/serializers.py:1194 -#: stock/templates/stock/location.html:162 -#: stock/templates/stock/location.html:219 +#: stock/serializers.py:1148 stock/serializers.py:1225 +#: stock/templates/stock/location.html:163 +#: stock/templates/stock/location.html:220 #: stock/templates/stock/location_sidebar.html:5 msgid "Sublocations" msgstr "Kho phụ" -#: stock/serializers.py:1187 templates/js/translated/stock.js:160 +#: stock/serializers.py:1218 templates/js/translated/stock.js:160 msgid "Parent stock location" msgstr "" -#: stock/serializers.py:1298 +#: stock/serializers.py:1329 msgid "Part must be salable" msgstr "Sản phẩm phải có thể bán được" -#: stock/serializers.py:1302 +#: stock/serializers.py:1333 msgid "Item is allocated to a sales order" msgstr "Hàng hóa được phân bổ đến một đơn hàng bán" -#: stock/serializers.py:1306 +#: stock/serializers.py:1337 msgid "Item is allocated to a build order" msgstr "Hàng hóa được phân bổ đến một đơn đặt bản dựng" -#: stock/serializers.py:1330 +#: stock/serializers.py:1361 msgid "Customer to assign stock items" msgstr "Khách hàng được gán vào các mặt hàng" -#: stock/serializers.py:1336 +#: stock/serializers.py:1367 msgid "Selected company is not a customer" msgstr "Công ty đã chọn không phải là khách hàng" -#: stock/serializers.py:1344 +#: stock/serializers.py:1375 msgid "Stock assignment notes" msgstr "Ghi chú phân bổ kho" -#: stock/serializers.py:1354 stock/serializers.py:1608 +#: stock/serializers.py:1385 stock/serializers.py:1639 msgid "A list of stock items must be provided" msgstr "Phải cung cấp danh sách mặt hàng" -#: stock/serializers.py:1433 +#: stock/serializers.py:1464 msgid "Stock merging notes" msgstr "Ghi chú gộp kho" -#: stock/serializers.py:1438 +#: stock/serializers.py:1469 msgid "Allow mismatched suppliers" msgstr "Cho phép nhiều nhà cung không khớp" -#: stock/serializers.py:1439 +#: stock/serializers.py:1470 msgid "Allow stock items with different supplier parts to be merged" msgstr "Cho phép mặt hàng cùng sản phẩm nhà cung cấp khác phải được gộp" -#: stock/serializers.py:1444 +#: stock/serializers.py:1475 msgid "Allow mismatched status" msgstr "Cho phép trạng thái không khớp" -#: stock/serializers.py:1445 +#: stock/serializers.py:1476 msgid "Allow stock items with different status codes to be merged" msgstr "Cho phép mặt hàng với mã trạng thái khác nhau để gộp lại" -#: stock/serializers.py:1455 +#: stock/serializers.py:1486 msgid "At least two stock items must be provided" msgstr "Cần cung cấp ít nhất hai mặt hàng" -#: stock/serializers.py:1522 +#: stock/serializers.py:1553 msgid "No Change" msgstr "" -#: stock/serializers.py:1551 +#: stock/serializers.py:1582 msgid "StockItem primary key value" msgstr "Giá trị khóa chính mặt hàng" -#: stock/serializers.py:1570 +#: stock/serializers.py:1601 msgid "Stock item status code" msgstr "Mã trạng thái mặt hàng" -#: stock/serializers.py:1598 +#: stock/serializers.py:1629 msgid "Stock transaction notes" msgstr "Ghi chú giao dịch kho" @@ -10175,107 +10539,107 @@ msgstr "Đã từ chối" msgid "Quarantined" msgstr "Đã cách ly" -#: stock/status_codes.py:40 +#: stock/status_codes.py:44 msgid "Legacy stock tracking entry" msgstr "Mục theo dõi kho cổ điển" -#: stock/status_codes.py:42 templates/js/translated/stock.js:550 +#: stock/status_codes.py:46 templates/js/translated/stock.js:550 msgid "Stock item created" msgstr "Kho hàng đã được khởi tạo" -#: stock/status_codes.py:45 +#: stock/status_codes.py:49 msgid "Edited stock item" msgstr "Sửa kho hàng" -#: stock/status_codes.py:46 +#: stock/status_codes.py:50 msgid "Assigned serial number" msgstr "Số sê ri đã được gán" -#: stock/status_codes.py:49 +#: stock/status_codes.py:53 msgid "Stock counted" msgstr "Kho đã đếm" -#: stock/status_codes.py:50 +#: stock/status_codes.py:54 msgid "Stock manually added" msgstr "Kho được thêm thủ công" -#: stock/status_codes.py:51 +#: stock/status_codes.py:55 msgid "Stock manually removed" msgstr "Kho được xóa thủ công" -#: stock/status_codes.py:54 +#: stock/status_codes.py:58 msgid "Location changed" msgstr "Vị trí đã thay đổi" -#: stock/status_codes.py:55 +#: stock/status_codes.py:59 msgid "Stock updated" msgstr "Kho hàng đã được cập nhật" -#: stock/status_codes.py:58 +#: stock/status_codes.py:62 msgid "Installed into assembly" msgstr "Đã cài đặt vào bộ phận lắp ráp" -#: stock/status_codes.py:59 +#: stock/status_codes.py:63 msgid "Removed from assembly" msgstr "Di rời khỏi bộ phận lắp ráp" -#: stock/status_codes.py:61 +#: stock/status_codes.py:65 msgid "Installed component item" msgstr "Mục thành phần đã cài đặt" -#: stock/status_codes.py:62 +#: stock/status_codes.py:66 msgid "Removed component item" msgstr "Mục thành phần đã di rời" -#: stock/status_codes.py:65 +#: stock/status_codes.py:69 msgid "Split from parent item" msgstr "Tách từ mục cha" -#: stock/status_codes.py:66 +#: stock/status_codes.py:70 msgid "Split child item" msgstr "Tách mục con" -#: stock/status_codes.py:69 templates/js/translated/stock.js:1943 +#: stock/status_codes.py:73 templates/js/translated/stock.js:1944 msgid "Merged stock items" msgstr "Kho hàng đã được gộp" -#: stock/status_codes.py:72 +#: stock/status_codes.py:76 msgid "Converted to variant" msgstr "Đã chuyển đổi sang biến thể" -#: stock/status_codes.py:75 +#: stock/status_codes.py:79 msgid "Build order output created" msgstr "Đầu ra đơn đặt bản dựng đã được tạo" -#: stock/status_codes.py:76 +#: stock/status_codes.py:80 msgid "Build order output completed" msgstr "Đầu ra đơn đặt bản dựng đã hoàn thành" -#: stock/status_codes.py:77 +#: stock/status_codes.py:81 msgid "Build order output rejected" msgstr "Đầu ra đơn đặt bản dựng bị từ chối" -#: stock/status_codes.py:78 templates/js/translated/stock.js:1849 +#: stock/status_codes.py:82 templates/js/translated/stock.js:1849 msgid "Consumed by build order" msgstr "Tiêu hao bởi đơn đặt bản dựng" -#: stock/status_codes.py:81 +#: stock/status_codes.py:85 msgid "Shipped against Sales Order" msgstr "Vận chyển dựa vào đơn đặt bản dựng" -#: stock/status_codes.py:84 +#: stock/status_codes.py:88 msgid "Received against Purchase Order" msgstr "Đã nhận dựa vào đơn đặt hàng mua" -#: stock/status_codes.py:87 +#: stock/status_codes.py:91 msgid "Returned against Return Order" msgstr "Trả hành dựa vào đơn hàng trả lại" -#: stock/status_codes.py:90 templates/js/translated/table_filters.js:382 +#: stock/status_codes.py:94 templates/js/translated/table_filters.js:382 msgid "Sent to customer" msgstr "Gửi đến khách hàng" -#: stock/status_codes.py:91 +#: stock/status_codes.py:95 msgid "Returned from customer" msgstr "Bị trả lại từ khách hàng" @@ -10296,7 +10660,7 @@ msgstr "Hàng trong kho này không có bất kỳ hàng hóa con nào" msgid "Test Data" msgstr "Thông tin kiểm thử" -#: stock/templates/stock/item.html:85 stock/templates/stock/item_base.html:65 +#: stock/templates/stock/item.html:85 msgid "Test Report" msgstr "Báo cáo kiểm thử" @@ -10316,7 +10680,7 @@ msgstr "Ghi chú tại kho hàng" msgid "Installed Stock Items" msgstr "Hàng hóa đã lắp đặt" -#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3354 +#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3355 msgid "Install Stock Item" msgstr "Lắp đặt hàng hóa trong kho" @@ -10328,208 +10692,212 @@ msgstr "Xóa toàn bộ kết quả kiểm thử cho kho hàng này" msgid "Add Test Result" msgstr "" -#: stock/templates/stock/item_base.html:33 +#: stock/templates/stock/item_base.html:34 msgid "Locate stock item" msgstr "Xác định vị trí hàng tồn kho" -#: stock/templates/stock/item_base.html:51 +#: stock/templates/stock/item_base.html:52 msgid "Scan to Location" msgstr "Quét vào điểm bán" #: stock/templates/stock/item_base.html:59 -#: stock/templates/stock/location.html:67 +#: stock/templates/stock/location.html:68 #: templates/js/translated/filters.js:434 msgid "Printing actions" msgstr "Chức năng in" -#: stock/templates/stock/item_base.html:75 +#: stock/templates/stock/item_base.html:64 templates/js/translated/report.js:49 +msgid "Print Report" +msgstr "" + +#: stock/templates/stock/item_base.html:72 msgid "Stock adjustment actions" msgstr "Chức năng điều chỉnh kho" -#: stock/templates/stock/item_base.html:79 -#: stock/templates/stock/location.html:87 templates/js/translated/stock.js:1909 +#: stock/templates/stock/item_base.html:76 +#: stock/templates/stock/location.html:88 templates/js/translated/stock.js:1909 msgid "Count stock" msgstr "Đếm hàng" -#: stock/templates/stock/item_base.html:81 +#: stock/templates/stock/item_base.html:78 #: templates/js/translated/stock.js:1891 msgid "Add stock" msgstr "Thêm hàng" -#: stock/templates/stock/item_base.html:82 +#: stock/templates/stock/item_base.html:79 #: templates/js/translated/stock.js:1900 msgid "Remove stock" msgstr "Xóa hàng hóa" -#: stock/templates/stock/item_base.html:85 +#: stock/templates/stock/item_base.html:82 msgid "Serialize stock" msgstr "Sắp xếp hàng hóa" -#: stock/templates/stock/item_base.html:88 -#: stock/templates/stock/location.html:93 templates/js/translated/stock.js:1918 +#: stock/templates/stock/item_base.html:85 +#: stock/templates/stock/location.html:94 templates/js/translated/stock.js:1918 msgid "Transfer stock" msgstr "Chuyển giao hàng" -#: stock/templates/stock/item_base.html:91 -#: templates/js/translated/stock.js:1972 +#: stock/templates/stock/item_base.html:88 +#: templates/js/translated/stock.js:1973 msgid "Assign to customer" msgstr "Chỉ định cho khách hàng" -#: stock/templates/stock/item_base.html:94 +#: stock/templates/stock/item_base.html:91 msgid "Return to stock" msgstr "Trả lại kho" -#: stock/templates/stock/item_base.html:97 +#: stock/templates/stock/item_base.html:94 msgid "Uninstall stock item" msgstr "Gỡ cài đặt hàng trong kho" -#: stock/templates/stock/item_base.html:97 +#: stock/templates/stock/item_base.html:94 msgid "Uninstall" msgstr "Gỡ cài đặt" -#: stock/templates/stock/item_base.html:101 +#: stock/templates/stock/item_base.html:98 msgid "Install stock item" msgstr "Lắp đặt hàng hóa trong kho" -#: stock/templates/stock/item_base.html:101 +#: stock/templates/stock/item_base.html:98 msgid "Install" msgstr "Cài đặt" -#: stock/templates/stock/item_base.html:115 +#: stock/templates/stock/item_base.html:112 msgid "Convert to variant" msgstr "Chuyển đổi thành biến thể" -#: stock/templates/stock/item_base.html:118 +#: stock/templates/stock/item_base.html:115 msgid "Duplicate stock item" msgstr "Mặt hàng trùng lặp" -#: stock/templates/stock/item_base.html:120 +#: stock/templates/stock/item_base.html:117 msgid "Edit stock item" msgstr "Sửa mặt hàng" -#: stock/templates/stock/item_base.html:123 +#: stock/templates/stock/item_base.html:120 msgid "Delete stock item" msgstr "Xóa mặt hàng" -#: stock/templates/stock/item_base.html:169 templates/InvenTree/search.html:139 -#: templates/js/translated/build.js:2295 templates/navbar.html:38 +#: stock/templates/stock/item_base.html:166 templates/InvenTree/search.html:139 +#: templates/js/translated/build.js:2298 templates/navbar.html:38 msgid "Build" msgstr "Dựng" -#: stock/templates/stock/item_base.html:211 +#: stock/templates/stock/item_base.html:208 msgid "No manufacturer set" msgstr "Chưa đặt nhà sản xuất" -#: stock/templates/stock/item_base.html:251 +#: stock/templates/stock/item_base.html:248 msgid "You are not in the list of owners of this item. This stock item cannot be edited." msgstr "Bạn không thuộc danh sách chủ sở hữu hàng hóa này. Mặt hàng này không thể sửa đổi." -#: stock/templates/stock/item_base.html:252 -#: stock/templates/stock/location.html:146 +#: stock/templates/stock/item_base.html:249 +#: stock/templates/stock/location.html:147 msgid "Read only" msgstr "Chỉ đọc" -#: stock/templates/stock/item_base.html:265 +#: stock/templates/stock/item_base.html:262 msgid "This stock item is unavailable" msgstr "Mặt hàng này không khả dụng" -#: stock/templates/stock/item_base.html:271 +#: stock/templates/stock/item_base.html:268 msgid "This stock item is in production and cannot be edited." msgstr "Mặt hàng này đang được sản xuất và không thể sửa được." -#: stock/templates/stock/item_base.html:272 +#: stock/templates/stock/item_base.html:269 msgid "Edit the stock item from the build view." msgstr "Sửa mặt hàng này từ khung nhìn bản dựng." -#: stock/templates/stock/item_base.html:287 +#: stock/templates/stock/item_base.html:284 msgid "This stock item is allocated to Sales Order" msgstr "Mặt hàng này đã được phân bổ về đơn hàng bán" -#: stock/templates/stock/item_base.html:295 +#: stock/templates/stock/item_base.html:292 msgid "This stock item is allocated to Build Order" msgstr "Mặt hàng này đã được phân bổ về đơn đặt bản dựng" -#: stock/templates/stock/item_base.html:311 +#: stock/templates/stock/item_base.html:308 msgid "This stock item is serialized. It has a unique serial number and the quantity cannot be adjusted" msgstr "Mặt hàng này là tuần tự. Nó có một số sêri duy nhất và số lượng không thể điều chỉnh được" -#: stock/templates/stock/item_base.html:317 +#: stock/templates/stock/item_base.html:314 msgid "previous page" msgstr "trang trước" -#: stock/templates/stock/item_base.html:317 +#: stock/templates/stock/item_base.html:314 msgid "Navigate to previous serial number" msgstr "Điều hướng đến số sêri trước" -#: stock/templates/stock/item_base.html:326 +#: stock/templates/stock/item_base.html:323 msgid "next page" msgstr "trang tiếp theo" -#: stock/templates/stock/item_base.html:326 +#: stock/templates/stock/item_base.html:323 msgid "Navigate to next serial number" msgstr "Điều hướng đến số sêri tiếp" -#: stock/templates/stock/item_base.html:398 -#: templates/js/translated/build.js:2552 +#: stock/templates/stock/item_base.html:395 +#: templates/js/translated/build.js:2559 msgid "No location set" msgstr "Không có vị trí nào được đặt" -#: stock/templates/stock/item_base.html:413 +#: stock/templates/stock/item_base.html:410 msgid "Tests" msgstr "Thử nghiệm" -#: stock/templates/stock/item_base.html:419 +#: stock/templates/stock/item_base.html:416 msgid "This stock item has not passed all required tests" msgstr "Mặt hàng không đạt toàn bộ yêu cầu thử nghiệm" -#: stock/templates/stock/item_base.html:437 +#: stock/templates/stock/item_base.html:434 #, python-format msgid "This StockItem expired on %(item.expiry_date)s" msgstr "Mặt hàng này hết hạn vào %(item.expiry_date)s" -#: stock/templates/stock/item_base.html:439 +#: stock/templates/stock/item_base.html:436 #, python-format msgid "This StockItem expires on %(item.expiry_date)s" msgstr "Mặt hàng này hết hạn vào %(item.expiry_date)s" -#: stock/templates/stock/item_base.html:455 +#: stock/templates/stock/item_base.html:452 msgid "No stocktake performed" msgstr "Chưa thực hiện kiểm kê" -#: stock/templates/stock/item_base.html:504 -#: templates/js/translated/stock.js:2037 +#: stock/templates/stock/item_base.html:501 +#: templates/js/translated/stock.js:2038 msgid "stock item" msgstr "" -#: stock/templates/stock/item_base.html:527 +#: stock/templates/stock/item_base.html:524 msgid "Edit Stock Status" msgstr "" -#: stock/templates/stock/item_base.html:536 +#: stock/templates/stock/item_base.html:533 msgid "Stock Item QR Code" msgstr "" -#: stock/templates/stock/item_base.html:547 +#: stock/templates/stock/item_base.html:544 msgid "Link Barcode to Stock Item" msgstr "" -#: stock/templates/stock/item_base.html:611 +#: stock/templates/stock/item_base.html:608 msgid "Select one of the part variants listed below." msgstr "Chọn một trong những biến thể sản phẩm được liệt kê bên dưới." -#: stock/templates/stock/item_base.html:614 +#: stock/templates/stock/item_base.html:611 msgid "Warning" msgstr "Cánh báo" -#: stock/templates/stock/item_base.html:615 +#: stock/templates/stock/item_base.html:612 msgid "This action cannot be easily undone" msgstr "Thao tác này không thể khôi phục lại một cách dễ dàng" -#: stock/templates/stock/item_base.html:623 +#: stock/templates/stock/item_base.html:620 msgid "Convert Stock Item" msgstr "" -#: stock/templates/stock/item_base.html:656 +#: stock/templates/stock/item_base.html:653 msgid "Return to Stock" msgstr "" @@ -10541,84 +10909,84 @@ msgstr "Tạo hàng hóa tuần tự từ mặt hàng này." msgid "Select quantity to serialize, and unique serial numbers." msgstr "Chọn số lượng cần tuần tự hóa và số sêri duy nhất." -#: stock/templates/stock/location.html:35 +#: stock/templates/stock/location.html:36 msgid "Perform stocktake for this stock location" msgstr "Thực hiện kiểm kê cho vị trí kho này" -#: stock/templates/stock/location.html:42 +#: stock/templates/stock/location.html:43 msgid "Locate stock location" msgstr "Xác định vị trí kho" -#: stock/templates/stock/location.html:60 +#: stock/templates/stock/location.html:61 msgid "Scan stock items into this location" msgstr "Quét các mặt hàng vào vị trí kho này" -#: stock/templates/stock/location.html:60 +#: stock/templates/stock/location.html:61 msgid "Scan In Stock Items" msgstr "Quét vào trong mặt hàng" -#: stock/templates/stock/location.html:61 +#: stock/templates/stock/location.html:62 msgid "Scan stock container into this location" msgstr "Quét kho chứa vào trong vị trí kho này" -#: stock/templates/stock/location.html:61 +#: stock/templates/stock/location.html:62 msgid "Scan In Container" msgstr "Quét vào trong bộ chứa" -#: stock/templates/stock/location.html:72 +#: stock/templates/stock/location.html:73 msgid "Print Location Report" msgstr "In báo cáo vị trí" -#: stock/templates/stock/location.html:101 +#: stock/templates/stock/location.html:102 msgid "Location actions" msgstr "Chức năng vị trí" -#: stock/templates/stock/location.html:103 +#: stock/templates/stock/location.html:104 msgid "Edit location" msgstr "Sửa vị trí" -#: stock/templates/stock/location.html:105 +#: stock/templates/stock/location.html:106 msgid "Delete location" msgstr "Xóa vị trí" -#: stock/templates/stock/location.html:135 +#: stock/templates/stock/location.html:136 msgid "Top level stock location" msgstr "Vị trí kho cấp đầu" -#: stock/templates/stock/location.html:141 +#: stock/templates/stock/location.html:142 msgid "Location Owner" msgstr "Chủ sở hữu vị trí" -#: stock/templates/stock/location.html:145 +#: stock/templates/stock/location.html:146 msgid "You are not in the list of owners of this location. This stock location cannot be edited." msgstr "Bạn không thuộc danh sách chủ sở hữu của vị trí này. Vị trí kho này không thể sửa được." -#: stock/templates/stock/location.html:173 +#: stock/templates/stock/location.html:174 msgid "Location Type" msgstr "" -#: stock/templates/stock/location.html:223 +#: stock/templates/stock/location.html:224 msgid "Create new stock location" msgstr "Tạo mới vị trí kho" -#: stock/templates/stock/location.html:224 +#: stock/templates/stock/location.html:225 msgid "New Location" msgstr "Vị trí mới" -#: stock/templates/stock/location.html:298 -#: templates/js/translated/stock.js:2657 +#: stock/templates/stock/location.html:299 +#: templates/js/translated/stock.js:2658 msgid "stock location" msgstr "" -#: stock/templates/stock/location.html:320 +#: stock/templates/stock/location.html:321 msgid "Scanned stock container into this location" msgstr "" -#: stock/templates/stock/location.html:393 +#: stock/templates/stock/location.html:394 msgid "Stock Location QR Code" msgstr "" -#: stock/templates/stock/location.html:404 +#: stock/templates/stock/location.html:405 msgid "Link Barcode to Stock Location" msgstr "" @@ -10630,10 +10998,6 @@ msgstr "Đang tải..." msgid "Stock Tracking" msgstr "Theo dõi tồn kho" -#: stock/templates/stock/stock_sidebar.html:8 -msgid "Allocations" -msgstr "Phân bổ" - #: templates/403.html:6 templates/403.html:12 templates/403_csrf.html:7 msgid "Permission Denied" msgstr "Quyền truy cập bị từ chối" @@ -11107,9 +11471,9 @@ msgid "Rate" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:81 -#: templates/js/translated/forms.js:548 templates/js/translated/helpers.js:108 +#: templates/js/translated/forms.js:548 templates/js/translated/helpers.js:109 #: templates/js/translated/part.js:395 templates/js/translated/pricing.js:629 -#: templates/js/translated/stock.js:252 users/models.py:406 +#: templates/js/translated/stock.js:252 users/models.py:408 msgid "Delete" msgstr "Xóa" @@ -11130,7 +11494,7 @@ msgid "No project codes found" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:158 -#: templates/js/translated/build.js:2400 +#: templates/js/translated/build.js:2403 msgid "group" msgstr "" @@ -11196,7 +11560,7 @@ msgid "Delete Location Type" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:503 -#: templates/InvenTree/settings/stock.html:38 +#: templates/InvenTree/settings/stock.html:39 msgid "New Location Type" msgstr "Loại vị trí mới" @@ -11253,7 +11617,7 @@ msgstr "Thiết lập đơn hàng bán" msgid "Stock Settings" msgstr "Cài đặt kho hàng" -#: templates/InvenTree/settings/stock.html:34 +#: templates/InvenTree/settings/stock.html:35 msgid "Stock Location Types" msgstr "Loại ví trí kho" @@ -11280,7 +11644,7 @@ msgid "Unverified" msgstr "Chưa xác minh" #: templates/InvenTree/settings/user.html:80 -#: templates/js/translated/company.js:957 +#: templates/js/translated/company.js:958 msgid "Primary" msgstr "Chính" @@ -11532,7 +11896,7 @@ msgid "Submit Bug Report" msgstr "Gửi báo cáo lỗi" #: templates/about.html:91 templates/clip.html:4 -#: templates/js/translated/helpers.js:592 +#: templates/js/translated/helpers.js:598 msgid "copy to clipboard" msgstr "sao chép đến bảng tạm" @@ -11738,23 +12102,24 @@ msgstr "Thêm đính kèm" msgid "Barcode Identifier" msgstr "Nhận dạng mã vạch" -#: templates/base.html:103 +#: templates/base.html:102 msgid "Server Restart Required" msgstr "Yêu cầu khởi động máy chủ" -#: templates/base.html:106 +#: templates/base.html:105 msgid "A configuration option has been changed which requires a server restart" msgstr "Đã thay đổi tùy chọn cấu hình nên cần phải khởi động lại máy chủ" -#: templates/base.html:106 templates/base.html:116 +#: templates/base.html:105 templates/base.html:115 +#: templates/socialaccount/authentication_error.html:13 msgid "Contact your system administrator for further information" msgstr "Liên lạc với quản trị hệ thống của bạn để biết thêm thông tin" -#: templates/base.html:113 +#: templates/base.html:112 msgid "Pending Database Migrations" msgstr "Di trú cơ sở dữ liệu đang chờ xử lý" -#: templates/base.html:116 +#: templates/base.html:115 msgid "There are pending database migrations which require attention" msgstr "Có di trú cơ sở dữ liệu đang chờ xử lý cần bạn lưu ý" @@ -11787,7 +12152,7 @@ msgid "The following parts are low on required stock" msgstr "Sản phẩm sau còn ít hàng trong kho yêu cầu" #: templates/email/build_order_required_stock.html:18 -#: templates/js/translated/bom.js:1674 templates/js/translated/build.js:2747 +#: templates/js/translated/bom.js:1674 templates/js/translated/build.js:2765 msgid "Required Quantity" msgstr "Số lượng bắt buộc" @@ -11801,7 +12166,7 @@ msgid "Click on the following link to view this part" msgstr "Nhấp chuột vào liên kết dưới đây để xem sản phẩm này" #: templates/email/low_stock_notification.html:18 -#: templates/js/translated/part.js:3237 +#: templates/js/translated/part.js:3253 msgid "Minimum Quantity" msgstr "Số lượng tối thiểu" @@ -12039,7 +12404,7 @@ msgstr "" #: templates/js/translated/bom.js:189 templates/js/translated/bom.js:700 #: templates/js/translated/modals.js:75 templates/js/translated/modals.js:629 #: templates/js/translated/modals.js:757 templates/js/translated/modals.js:1065 -#: templates/js/translated/purchase_order.js:797 templates/modals.html:15 +#: templates/js/translated/purchase_order.js:780 templates/modals.html:15 #: templates/modals.html:27 templates/modals.html:39 templates/modals.html:50 msgid "Close" msgstr "Đóng" @@ -12156,7 +12521,7 @@ msgstr "" msgid "Substitutes Available" msgstr "" -#: templates/js/translated/bom.js:950 templates/js/translated/build.js:2673 +#: templates/js/translated/bom.js:950 templates/js/translated/build.js:2682 msgid "Variant stock allowed" msgstr "" @@ -12176,30 +12541,30 @@ msgstr "" msgid "No pricing available" msgstr "" -#: templates/js/translated/bom.js:1184 templates/js/translated/build.js:2812 +#: templates/js/translated/bom.js:1184 templates/js/translated/build.js:2830 msgid "External stock" msgstr "" -#: templates/js/translated/bom.js:1188 templates/js/translated/build.js:2786 -#: templates/js/translated/sales_order.js:1946 +#: templates/js/translated/bom.js:1188 templates/js/translated/build.js:2804 +#: templates/js/translated/sales_order.js:1927 msgid "No Stock Available" msgstr "" -#: templates/js/translated/bom.js:1193 templates/js/translated/build.js:2790 +#: templates/js/translated/bom.js:1193 templates/js/translated/build.js:2808 msgid "Includes variant and substitute stock" msgstr "" -#: templates/js/translated/bom.js:1195 templates/js/translated/build.js:2792 +#: templates/js/translated/bom.js:1195 templates/js/translated/build.js:2810 #: templates/js/translated/part.js:1263 -#: templates/js/translated/sales_order.js:1943 +#: templates/js/translated/sales_order.js:1924 msgid "Includes variant stock" msgstr "" -#: templates/js/translated/bom.js:1197 templates/js/translated/build.js:2794 +#: templates/js/translated/bom.js:1197 templates/js/translated/build.js:2812 msgid "Includes substitute stock" msgstr "" -#: templates/js/translated/bom.js:1225 templates/js/translated/build.js:2777 +#: templates/js/translated/bom.js:1225 templates/js/translated/build.js:2795 msgid "Consumable item" msgstr "" @@ -12231,7 +12596,7 @@ msgstr "" msgid "No BOM items found" msgstr "" -#: templates/js/translated/bom.js:1657 templates/js/translated/build.js:2658 +#: templates/js/translated/bom.js:1657 templates/js/translated/build.js:2667 msgid "Required Part" msgstr "" @@ -12243,396 +12608,396 @@ msgstr "" msgid "Edit Build Order" msgstr "" -#: templates/js/translated/build.js:191 +#: templates/js/translated/build.js:194 msgid "Create Build Order" msgstr "" -#: templates/js/translated/build.js:223 +#: templates/js/translated/build.js:226 msgid "Cancel Build Order" msgstr "" -#: templates/js/translated/build.js:232 +#: templates/js/translated/build.js:235 msgid "Are you sure you wish to cancel this build?" msgstr "" -#: templates/js/translated/build.js:238 +#: templates/js/translated/build.js:241 msgid "Stock items have been allocated to this build order" msgstr "" -#: templates/js/translated/build.js:245 +#: templates/js/translated/build.js:248 msgid "There are incomplete outputs remaining for this build order" msgstr "" -#: templates/js/translated/build.js:297 +#: templates/js/translated/build.js:300 msgid "Build order is ready to be completed" msgstr "" -#: templates/js/translated/build.js:305 +#: templates/js/translated/build.js:308 msgid "This build order cannot be completed as there are incomplete outputs" msgstr "" -#: templates/js/translated/build.js:310 +#: templates/js/translated/build.js:313 msgid "Build Order is incomplete" msgstr "" -#: templates/js/translated/build.js:328 +#: templates/js/translated/build.js:331 msgid "Complete Build Order" msgstr "" -#: templates/js/translated/build.js:369 templates/js/translated/stock.js:127 +#: templates/js/translated/build.js:372 templates/js/translated/stock.js:127 #: templates/js/translated/stock.js:301 msgid "Next available serial number" msgstr "" -#: templates/js/translated/build.js:371 templates/js/translated/stock.js:129 +#: templates/js/translated/build.js:374 templates/js/translated/stock.js:129 #: templates/js/translated/stock.js:303 msgid "Latest serial number" msgstr "" -#: templates/js/translated/build.js:380 +#: templates/js/translated/build.js:383 msgid "The Bill of Materials contains trackable parts" msgstr "" -#: templates/js/translated/build.js:381 +#: templates/js/translated/build.js:384 msgid "Build outputs must be generated individually" msgstr "" -#: templates/js/translated/build.js:389 +#: templates/js/translated/build.js:392 msgid "Trackable parts can have serial numbers specified" msgstr "" -#: templates/js/translated/build.js:390 +#: templates/js/translated/build.js:393 msgid "Enter serial numbers to generate multiple single build outputs" msgstr "" -#: templates/js/translated/build.js:397 +#: templates/js/translated/build.js:400 msgid "Create Build Output" msgstr "" -#: templates/js/translated/build.js:428 +#: templates/js/translated/build.js:431 msgid "Allocate stock items to this build output" msgstr "" -#: templates/js/translated/build.js:436 +#: templates/js/translated/build.js:439 msgid "Deallocate stock from build output" msgstr "" -#: templates/js/translated/build.js:445 +#: templates/js/translated/build.js:448 msgid "Complete build output" msgstr "" -#: templates/js/translated/build.js:453 +#: templates/js/translated/build.js:456 msgid "Scrap build output" msgstr "" -#: templates/js/translated/build.js:460 +#: templates/js/translated/build.js:463 msgid "Delete build output" msgstr "" -#: templates/js/translated/build.js:480 +#: templates/js/translated/build.js:483 msgid "Are you sure you wish to deallocate the selected stock items from this build?" msgstr "" -#: templates/js/translated/build.js:498 +#: templates/js/translated/build.js:501 msgid "Deallocate Stock Items" msgstr "" -#: templates/js/translated/build.js:584 templates/js/translated/build.js:711 -#: templates/js/translated/build.js:836 +#: templates/js/translated/build.js:587 templates/js/translated/build.js:714 +#: templates/js/translated/build.js:839 msgid "Select Build Outputs" msgstr "" -#: templates/js/translated/build.js:585 templates/js/translated/build.js:712 -#: templates/js/translated/build.js:837 +#: templates/js/translated/build.js:588 templates/js/translated/build.js:715 +#: templates/js/translated/build.js:840 msgid "At least one build output must be selected" msgstr "" -#: templates/js/translated/build.js:599 +#: templates/js/translated/build.js:602 msgid "Selected build outputs will be marked as complete" msgstr "" -#: templates/js/translated/build.js:603 templates/js/translated/build.js:736 -#: templates/js/translated/build.js:859 +#: templates/js/translated/build.js:606 templates/js/translated/build.js:739 +#: templates/js/translated/build.js:862 msgid "Output" msgstr "" -#: templates/js/translated/build.js:630 +#: templates/js/translated/build.js:633 msgid "Complete Build Outputs" msgstr "" -#: templates/js/translated/build.js:727 +#: templates/js/translated/build.js:730 msgid "Selected build outputs will be marked as scrapped" msgstr "" -#: templates/js/translated/build.js:729 +#: templates/js/translated/build.js:732 msgid "Scrapped output are marked as rejected" msgstr "" -#: templates/js/translated/build.js:730 +#: templates/js/translated/build.js:733 msgid "Allocated stock items will no longer be available" msgstr "" -#: templates/js/translated/build.js:731 +#: templates/js/translated/build.js:734 msgid "The completion status of the build order will not be adjusted" msgstr "" -#: templates/js/translated/build.js:761 +#: templates/js/translated/build.js:764 msgid "Scrap Build Outputs" msgstr "" -#: templates/js/translated/build.js:851 +#: templates/js/translated/build.js:854 msgid "Selected build outputs will be deleted" msgstr "" -#: templates/js/translated/build.js:853 +#: templates/js/translated/build.js:856 msgid "Build output data will be permanently deleted" msgstr "" -#: templates/js/translated/build.js:854 +#: templates/js/translated/build.js:857 msgid "Allocated stock items will be returned to stock" msgstr "" -#: templates/js/translated/build.js:872 +#: templates/js/translated/build.js:875 msgid "Delete Build Outputs" msgstr "" -#: templates/js/translated/build.js:959 +#: templates/js/translated/build.js:962 msgid "Delete allocations" msgstr "" -#: templates/js/translated/build.js:966 +#: templates/js/translated/build.js:969 msgid "Delete Stock Allocations" msgstr "" -#: templates/js/translated/build.js:989 +#: templates/js/translated/build.js:992 msgid "No allocated stock" msgstr "" -#: templates/js/translated/build.js:1045 +#: templates/js/translated/build.js:1048 msgid "Stock item" msgstr "" -#: templates/js/translated/build.js:1070 +#: templates/js/translated/build.js:1073 msgid "Edit build allocation" msgstr "" -#: templates/js/translated/build.js:1071 +#: templates/js/translated/build.js:1074 msgid "Delete build allocation" msgstr "" -#: templates/js/translated/build.js:1089 +#: templates/js/translated/build.js:1092 msgid "Edit Build Allocation" msgstr "" -#: templates/js/translated/build.js:1102 +#: templates/js/translated/build.js:1105 msgid "Delete Build Allocation" msgstr "" -#: templates/js/translated/build.js:1133 +#: templates/js/translated/build.js:1136 msgid "No build order allocations found" msgstr "" -#: templates/js/translated/build.js:1178 +#: templates/js/translated/build.js:1181 msgid "Location not specified" msgstr "" -#: templates/js/translated/build.js:1200 +#: templates/js/translated/build.js:1203 msgid "Complete outputs" msgstr "" -#: templates/js/translated/build.js:1218 +#: templates/js/translated/build.js:1221 msgid "Scrap outputs" msgstr "" -#: templates/js/translated/build.js:1236 +#: templates/js/translated/build.js:1239 msgid "Delete outputs" msgstr "" -#: templates/js/translated/build.js:1289 +#: templates/js/translated/build.js:1292 msgid "build output" msgstr "" -#: templates/js/translated/build.js:1290 +#: templates/js/translated/build.js:1293 msgid "build outputs" msgstr "" -#: templates/js/translated/build.js:1294 +#: templates/js/translated/build.js:1297 msgid "Build output actions" msgstr "" -#: templates/js/translated/build.js:1470 +#: templates/js/translated/build.js:1473 msgid "No active build outputs found" msgstr "" -#: templates/js/translated/build.js:1563 +#: templates/js/translated/build.js:1566 msgid "Allocated Lines" msgstr "" -#: templates/js/translated/build.js:1577 +#: templates/js/translated/build.js:1580 msgid "Required Tests" msgstr "" -#: templates/js/translated/build.js:1749 -#: templates/js/translated/purchase_order.js:611 -#: templates/js/translated/sales_order.js:1207 +#: templates/js/translated/build.js:1752 +#: templates/js/translated/purchase_order.js:594 +#: templates/js/translated/sales_order.js:1173 msgid "Select Parts" msgstr "" -#: templates/js/translated/build.js:1750 -#: templates/js/translated/sales_order.js:1208 +#: templates/js/translated/build.js:1753 +#: templates/js/translated/sales_order.js:1174 msgid "You must select at least one part to allocate" msgstr "" -#: templates/js/translated/build.js:1813 -#: templates/js/translated/sales_order.js:1157 +#: templates/js/translated/build.js:1816 +#: templates/js/translated/sales_order.js:1123 msgid "Specify stock allocation quantity" msgstr "" -#: templates/js/translated/build.js:1890 +#: templates/js/translated/build.js:1893 msgid "All Parts Allocated" msgstr "" -#: templates/js/translated/build.js:1891 +#: templates/js/translated/build.js:1894 msgid "All selected parts have been fully allocated" msgstr "" -#: templates/js/translated/build.js:1905 -#: templates/js/translated/sales_order.js:1222 +#: templates/js/translated/build.js:1908 +#: templates/js/translated/sales_order.js:1188 msgid "Select source location (leave blank to take from all locations)" msgstr "" -#: templates/js/translated/build.js:1933 +#: templates/js/translated/build.js:1936 msgid "Allocate Stock Items to Build Order" msgstr "" -#: templates/js/translated/build.js:1944 -#: templates/js/translated/sales_order.js:1319 +#: templates/js/translated/build.js:1947 +#: templates/js/translated/sales_order.js:1285 msgid "No matching stock locations" msgstr "" -#: templates/js/translated/build.js:2017 -#: templates/js/translated/sales_order.js:1398 +#: templates/js/translated/build.js:2020 +#: templates/js/translated/sales_order.js:1364 msgid "No matching stock items" msgstr "" -#: templates/js/translated/build.js:2114 +#: templates/js/translated/build.js:2117 msgid "Automatic Stock Allocation" msgstr "" -#: templates/js/translated/build.js:2115 +#: templates/js/translated/build.js:2118 msgid "Stock items will be automatically allocated to this build order, according to the provided guidelines" msgstr "" -#: templates/js/translated/build.js:2117 +#: templates/js/translated/build.js:2120 msgid "If a location is specified, stock will only be allocated from that location" msgstr "" -#: templates/js/translated/build.js:2118 +#: templates/js/translated/build.js:2121 msgid "If stock is considered interchangeable, it will be allocated from the first location it is found" msgstr "" -#: templates/js/translated/build.js:2119 +#: templates/js/translated/build.js:2122 msgid "If substitute stock is allowed, it will be used where stock of the primary part cannot be found" msgstr "" -#: templates/js/translated/build.js:2149 +#: templates/js/translated/build.js:2152 msgid "Allocate Stock Items" msgstr "" -#: templates/js/translated/build.js:2254 +#: templates/js/translated/build.js:2257 msgid "No builds matching query" msgstr "" -#: templates/js/translated/build.js:2289 templates/js/translated/build.js:2652 +#: templates/js/translated/build.js:2292 templates/js/translated/build.js:2661 #: templates/js/translated/forms.js:2196 templates/js/translated/forms.js:2212 #: templates/js/translated/part.js:2322 templates/js/translated/part.js:2761 -#: templates/js/translated/stock.js:2068 templates/js/translated/stock.js:2795 +#: templates/js/translated/stock.js:2069 templates/js/translated/stock.js:2796 msgid "Select" msgstr "" -#: templates/js/translated/build.js:2303 +#: templates/js/translated/build.js:2306 msgid "Build order is overdue" msgstr "" -#: templates/js/translated/build.js:2385 templates/js/translated/stock.js:3126 +#: templates/js/translated/build.js:2388 templates/js/translated/stock.js:3127 msgid "No user information" msgstr "" -#: templates/js/translated/build.js:2561 -#: templates/js/translated/sales_order.js:1682 +#: templates/js/translated/build.js:2568 +#: templates/js/translated/sales_order.js:1663 msgid "Edit stock allocation" msgstr "" -#: templates/js/translated/build.js:2562 -#: templates/js/translated/sales_order.js:1683 +#: templates/js/translated/build.js:2569 +#: templates/js/translated/sales_order.js:1664 msgid "Delete stock allocation" msgstr "" -#: templates/js/translated/build.js:2577 +#: templates/js/translated/build.js:2584 msgid "Edit Allocation" msgstr "" -#: templates/js/translated/build.js:2589 +#: templates/js/translated/build.js:2596 msgid "Remove Allocation" msgstr "" -#: templates/js/translated/build.js:2628 +#: templates/js/translated/build.js:2636 msgid "build line" msgstr "" -#: templates/js/translated/build.js:2629 +#: templates/js/translated/build.js:2637 msgid "build lines" msgstr "" -#: templates/js/translated/build.js:2647 +#: templates/js/translated/build.js:2656 msgid "No build lines found" msgstr "" -#: templates/js/translated/build.js:2677 templates/js/translated/part.js:793 +#: templates/js/translated/build.js:2686 templates/js/translated/part.js:793 #: templates/js/translated/part.js:1209 msgid "Trackable part" msgstr "" -#: templates/js/translated/build.js:2720 +#: templates/js/translated/build.js:2729 msgid "Gets Inherited" msgstr "" -#: templates/js/translated/build.js:2730 +#: templates/js/translated/build.js:2748 msgid "Unit Quantity" msgstr "" -#: templates/js/translated/build.js:2782 -#: templates/js/translated/sales_order.js:1951 +#: templates/js/translated/build.js:2800 +#: templates/js/translated/sales_order.js:1932 msgid "Sufficient stock available" msgstr "" -#: templates/js/translated/build.js:2837 +#: templates/js/translated/build.js:2855 msgid "Consumable Item" msgstr "" -#: templates/js/translated/build.js:2844 +#: templates/js/translated/build.js:2862 msgid "Tracked item" msgstr "" -#: templates/js/translated/build.js:2845 +#: templates/js/translated/build.js:2863 msgid "Allocate tracked items against individual build outputs" msgstr "" -#: templates/js/translated/build.js:2853 -#: templates/js/translated/sales_order.js:2052 +#: templates/js/translated/build.js:2871 +#: templates/js/translated/sales_order.js:2033 msgid "Build stock" msgstr "" -#: templates/js/translated/build.js:2858 templates/js/translated/stock.js:1953 +#: templates/js/translated/build.js:2876 templates/js/translated/stock.js:1954 msgid "Order stock" msgstr "" -#: templates/js/translated/build.js:2862 -#: templates/js/translated/sales_order.js:2046 +#: templates/js/translated/build.js:2880 +#: templates/js/translated/sales_order.js:2027 msgid "Allocate stock" msgstr "" -#: templates/js/translated/build.js:2866 +#: templates/js/translated/build.js:2884 msgid "Remove stock allocation" msgstr "" @@ -12641,7 +13006,7 @@ msgid "Add Manufacturer" msgstr "" #: templates/js/translated/company.js:111 -#: templates/js/translated/company.js:213 +#: templates/js/translated/company.js:214 msgid "Add Manufacturer Part" msgstr "" @@ -12649,231 +13014,231 @@ msgstr "" msgid "Edit Manufacturer Part" msgstr "" -#: templates/js/translated/company.js:201 +#: templates/js/translated/company.js:202 #: templates/js/translated/purchase_order.js:93 msgid "Add Supplier" msgstr "" -#: templates/js/translated/company.js:243 -#: templates/js/translated/purchase_order.js:318 +#: templates/js/translated/company.js:244 +#: templates/js/translated/purchase_order.js:301 msgid "Add Supplier Part" msgstr "" -#: templates/js/translated/company.js:344 +#: templates/js/translated/company.js:345 msgid "All selected supplier parts will be deleted" msgstr "" -#: templates/js/translated/company.js:360 +#: templates/js/translated/company.js:361 msgid "Delete Supplier Parts" msgstr "" -#: templates/js/translated/company.js:466 +#: templates/js/translated/company.js:467 msgid "Add new Company" msgstr "" -#: templates/js/translated/company.js:546 +#: templates/js/translated/company.js:547 msgid "Parts Supplied" msgstr "" -#: templates/js/translated/company.js:555 +#: templates/js/translated/company.js:556 msgid "Parts Manufactured" msgstr "" -#: templates/js/translated/company.js:570 +#: templates/js/translated/company.js:571 msgid "No company information found" msgstr "" -#: templates/js/translated/company.js:619 +#: templates/js/translated/company.js:620 msgid "Create New Contact" msgstr "" -#: templates/js/translated/company.js:635 -#: templates/js/translated/company.js:758 +#: templates/js/translated/company.js:636 +#: templates/js/translated/company.js:759 msgid "Edit Contact" msgstr "" -#: templates/js/translated/company.js:672 +#: templates/js/translated/company.js:673 msgid "All selected contacts will be deleted" msgstr "" -#: templates/js/translated/company.js:678 -#: templates/js/translated/company.js:742 +#: templates/js/translated/company.js:679 +#: templates/js/translated/company.js:743 msgid "Role" msgstr "" -#: templates/js/translated/company.js:686 +#: templates/js/translated/company.js:687 msgid "Delete Contacts" msgstr "" -#: templates/js/translated/company.js:717 +#: templates/js/translated/company.js:718 msgid "No contacts found" msgstr "" -#: templates/js/translated/company.js:730 +#: templates/js/translated/company.js:731 msgid "Phone Number" msgstr "" -#: templates/js/translated/company.js:736 +#: templates/js/translated/company.js:737 msgid "Email Address" msgstr "" -#: templates/js/translated/company.js:762 +#: templates/js/translated/company.js:763 msgid "Delete Contact" msgstr "" -#: templates/js/translated/company.js:859 +#: templates/js/translated/company.js:860 msgid "Create New Address" msgstr "" -#: templates/js/translated/company.js:874 -#: templates/js/translated/company.js:1035 +#: templates/js/translated/company.js:875 +#: templates/js/translated/company.js:1036 msgid "Edit Address" msgstr "" -#: templates/js/translated/company.js:909 +#: templates/js/translated/company.js:910 msgid "All selected addresses will be deleted" msgstr "" -#: templates/js/translated/company.js:923 +#: templates/js/translated/company.js:924 msgid "Delete Addresses" msgstr "" -#: templates/js/translated/company.js:950 +#: templates/js/translated/company.js:951 msgid "No addresses found" msgstr "" -#: templates/js/translated/company.js:989 +#: templates/js/translated/company.js:990 msgid "Postal city" msgstr "" -#: templates/js/translated/company.js:995 +#: templates/js/translated/company.js:996 msgid "State/province" msgstr "" -#: templates/js/translated/company.js:1007 +#: templates/js/translated/company.js:1008 msgid "Courier notes" msgstr "" -#: templates/js/translated/company.js:1013 +#: templates/js/translated/company.js:1014 msgid "Internal notes" msgstr "" -#: templates/js/translated/company.js:1039 +#: templates/js/translated/company.js:1040 msgid "Delete Address" msgstr "" -#: templates/js/translated/company.js:1112 +#: templates/js/translated/company.js:1113 msgid "All selected manufacturer parts will be deleted" msgstr "" -#: templates/js/translated/company.js:1127 +#: templates/js/translated/company.js:1128 msgid "Delete Manufacturer Parts" msgstr "" -#: templates/js/translated/company.js:1161 +#: templates/js/translated/company.js:1162 msgid "All selected parameters will be deleted" msgstr "" -#: templates/js/translated/company.js:1175 +#: templates/js/translated/company.js:1176 msgid "Delete Parameters" msgstr "" -#: templates/js/translated/company.js:1191 -#: templates/js/translated/company.js:1479 templates/js/translated/part.js:2250 +#: templates/js/translated/company.js:1192 +#: templates/js/translated/company.js:1480 templates/js/translated/part.js:2250 msgid "Order parts" msgstr "" -#: templates/js/translated/company.js:1208 +#: templates/js/translated/company.js:1209 msgid "Delete manufacturer parts" msgstr "" -#: templates/js/translated/company.js:1240 +#: templates/js/translated/company.js:1241 msgid "Manufacturer part actions" msgstr "" -#: templates/js/translated/company.js:1259 +#: templates/js/translated/company.js:1260 msgid "No manufacturer parts found" msgstr "" -#: templates/js/translated/company.js:1279 -#: templates/js/translated/company.js:1567 templates/js/translated/part.js:801 +#: templates/js/translated/company.js:1280 +#: templates/js/translated/company.js:1568 templates/js/translated/part.js:801 #: templates/js/translated/part.js:1217 msgid "Template part" msgstr "" -#: templates/js/translated/company.js:1283 -#: templates/js/translated/company.js:1571 templates/js/translated/part.js:805 +#: templates/js/translated/company.js:1284 +#: templates/js/translated/company.js:1572 templates/js/translated/part.js:805 #: templates/js/translated/part.js:1221 msgid "Assembled part" msgstr "" -#: templates/js/translated/company.js:1403 templates/js/translated/part.js:1471 +#: templates/js/translated/company.js:1404 templates/js/translated/part.js:1471 msgid "No parameters found" msgstr "" -#: templates/js/translated/company.js:1438 templates/js/translated/part.js:1534 +#: templates/js/translated/company.js:1439 templates/js/translated/part.js:1534 msgid "Edit parameter" msgstr "" -#: templates/js/translated/company.js:1439 templates/js/translated/part.js:1535 +#: templates/js/translated/company.js:1440 templates/js/translated/part.js:1535 msgid "Delete parameter" msgstr "" -#: templates/js/translated/company.js:1456 templates/js/translated/part.js:1440 +#: templates/js/translated/company.js:1457 templates/js/translated/part.js:1440 msgid "Edit Parameter" msgstr "" -#: templates/js/translated/company.js:1465 templates/js/translated/part.js:1556 +#: templates/js/translated/company.js:1466 templates/js/translated/part.js:1556 msgid "Delete Parameter" msgstr "" -#: templates/js/translated/company.js:1496 +#: templates/js/translated/company.js:1497 msgid "Delete supplier parts" msgstr "" -#: templates/js/translated/company.js:1546 +#: templates/js/translated/company.js:1547 msgid "No supplier parts found" msgstr "" -#: templates/js/translated/company.js:1664 +#: templates/js/translated/company.js:1665 msgid "Base Units" msgstr "" -#: templates/js/translated/company.js:1694 +#: templates/js/translated/company.js:1695 msgid "Availability" msgstr "" -#: templates/js/translated/company.js:1725 +#: templates/js/translated/company.js:1726 msgid "Edit supplier part" msgstr "" -#: templates/js/translated/company.js:1726 +#: templates/js/translated/company.js:1727 msgid "Delete supplier part" msgstr "" -#: templates/js/translated/company.js:1779 +#: templates/js/translated/company.js:1780 #: templates/js/translated/pricing.js:694 msgid "Delete Price Break" msgstr "" -#: templates/js/translated/company.js:1789 +#: templates/js/translated/company.js:1790 #: templates/js/translated/pricing.js:712 msgid "Edit Price Break" msgstr "" -#: templates/js/translated/company.js:1804 +#: templates/js/translated/company.js:1805 msgid "No price break information found" msgstr "" -#: templates/js/translated/company.js:1833 +#: templates/js/translated/company.js:1834 msgid "Last updated" msgstr "" -#: templates/js/translated/company.js:1840 +#: templates/js/translated/company.js:1841 msgid "Edit price break" msgstr "" -#: templates/js/translated/company.js:1841 +#: templates/js/translated/company.js:1842 msgid "Delete price break" msgstr "" @@ -12977,19 +13342,19 @@ msgstr "" msgid "Select Columns" msgstr "" -#: templates/js/translated/helpers.js:80 +#: templates/js/translated/helpers.js:81 msgid "YES" msgstr "" -#: templates/js/translated/helpers.js:83 +#: templates/js/translated/helpers.js:84 msgid "NO" msgstr "" -#: templates/js/translated/helpers.js:96 +#: templates/js/translated/helpers.js:97 msgid "True" msgstr "" -#: templates/js/translated/helpers.js:97 +#: templates/js/translated/helpers.js:98 msgid "False" msgstr "" @@ -13131,7 +13496,7 @@ msgid "Delete Line" msgstr "" #: templates/js/translated/order.js:306 -#: templates/js/translated/purchase_order.js:2060 +#: templates/js/translated/purchase_order.js:2044 msgid "No line items found" msgstr "" @@ -13366,19 +13731,19 @@ msgid "Delete Part Parameter Template" msgstr "" #: templates/js/translated/part.js:1723 -#: templates/js/translated/purchase_order.js:1724 +#: templates/js/translated/purchase_order.js:1708 msgid "No purchase orders found" msgstr "" #: templates/js/translated/part.js:1867 -#: templates/js/translated/purchase_order.js:2223 +#: templates/js/translated/purchase_order.js:2207 #: templates/js/translated/return_order.js:754 -#: templates/js/translated/sales_order.js:1911 +#: templates/js/translated/sales_order.js:1892 msgid "This line item is overdue" msgstr "" #: templates/js/translated/part.js:1913 -#: templates/js/translated/purchase_order.js:2290 +#: templates/js/translated/purchase_order.js:2274 msgid "Receive line item" msgstr "" @@ -13419,7 +13784,7 @@ msgid "No category" msgstr "" #: templates/js/translated/part.js:2550 templates/js/translated/part.js:2680 -#: templates/js/translated/stock.js:2754 +#: templates/js/translated/stock.js:2755 msgid "Display as list" msgstr "" @@ -13431,7 +13796,7 @@ msgstr "" msgid "No subcategories found" msgstr "" -#: templates/js/translated/part.js:2700 templates/js/translated/stock.js:2774 +#: templates/js/translated/part.js:2700 templates/js/translated/stock.js:2775 msgid "Display as tree" msgstr "" @@ -13483,23 +13848,23 @@ msgstr "" msgid "Speculative" msgstr "" -#: templates/js/translated/part.js:3128 +#: templates/js/translated/part.js:3144 msgid "No scheduling information available for this part" msgstr "" -#: templates/js/translated/part.js:3134 +#: templates/js/translated/part.js:3150 msgid "Error fetching scheduling information for this part" msgstr "" -#: templates/js/translated/part.js:3230 +#: templates/js/translated/part.js:3246 msgid "Scheduled Stock Quantities" msgstr "" -#: templates/js/translated/part.js:3246 +#: templates/js/translated/part.js:3262 msgid "Maximum Quantity" msgstr "" -#: templates/js/translated/part.js:3291 +#: templates/js/translated/part.js:3307 msgid "Minimum Stock Level" msgstr "" @@ -13575,267 +13940,243 @@ msgstr "" msgid "Purchase Price History" msgstr "" -#: templates/js/translated/pricing.js:894 +#: templates/js/translated/pricing.js:892 msgid "No sales history data available" msgstr "" -#: templates/js/translated/pricing.js:916 +#: templates/js/translated/pricing.js:914 msgid "Sale Price History" msgstr "" -#: templates/js/translated/pricing.js:1005 +#: templates/js/translated/pricing.js:1003 msgid "No variant data available" msgstr "" -#: templates/js/translated/pricing.js:1045 +#: templates/js/translated/pricing.js:1043 msgid "Variant Part" msgstr "" -#: templates/js/translated/purchase_order.js:169 -msgid "Select purchase order to duplicate" -msgstr "" - -#: templates/js/translated/purchase_order.js:176 -msgid "Duplicate Line Items" -msgstr "" - -#: templates/js/translated/purchase_order.js:177 -msgid "Duplicate all line items from the selected order" -msgstr "" - -#: templates/js/translated/purchase_order.js:184 -msgid "Duplicate Extra Lines" -msgstr "" - -#: templates/js/translated/purchase_order.js:185 -msgid "Duplicate extra line items from the selected order" -msgstr "" - -#: templates/js/translated/purchase_order.js:206 +#: templates/js/translated/purchase_order.js:188 msgid "Edit Purchase Order" msgstr "" -#: templates/js/translated/purchase_order.js:223 +#: templates/js/translated/purchase_order.js:205 msgid "Duplication Options" msgstr "" -#: templates/js/translated/purchase_order.js:431 +#: templates/js/translated/purchase_order.js:414 msgid "Complete Purchase Order" msgstr "" -#: templates/js/translated/purchase_order.js:448 +#: templates/js/translated/purchase_order.js:431 #: templates/js/translated/return_order.js:210 -#: templates/js/translated/sales_order.js:552 +#: templates/js/translated/sales_order.js:511 msgid "Mark this order as complete?" msgstr "" -#: templates/js/translated/purchase_order.js:454 +#: templates/js/translated/purchase_order.js:437 msgid "All line items have been received" msgstr "" -#: templates/js/translated/purchase_order.js:459 +#: templates/js/translated/purchase_order.js:442 msgid "This order has line items which have not been marked as received." msgstr "" -#: templates/js/translated/purchase_order.js:460 +#: templates/js/translated/purchase_order.js:443 msgid "Completing this order means that the order and line items will no longer be editable." msgstr "" -#: templates/js/translated/purchase_order.js:483 +#: templates/js/translated/purchase_order.js:466 msgid "Cancel Purchase Order" msgstr "" -#: templates/js/translated/purchase_order.js:488 +#: templates/js/translated/purchase_order.js:471 msgid "Are you sure you wish to cancel this purchase order?" msgstr "" -#: templates/js/translated/purchase_order.js:494 +#: templates/js/translated/purchase_order.js:477 msgid "This purchase order can not be cancelled" msgstr "" -#: templates/js/translated/purchase_order.js:515 +#: templates/js/translated/purchase_order.js:498 #: templates/js/translated/return_order.js:164 msgid "After placing this order, line items will no longer be editable." msgstr "" -#: templates/js/translated/purchase_order.js:520 +#: templates/js/translated/purchase_order.js:503 msgid "Issue Purchase Order" msgstr "" -#: templates/js/translated/purchase_order.js:612 +#: templates/js/translated/purchase_order.js:595 msgid "At least one purchaseable part must be selected" msgstr "" -#: templates/js/translated/purchase_order.js:637 +#: templates/js/translated/purchase_order.js:620 msgid "Quantity to order" msgstr "" -#: templates/js/translated/purchase_order.js:646 +#: templates/js/translated/purchase_order.js:629 msgid "New supplier part" msgstr "" -#: templates/js/translated/purchase_order.js:664 +#: templates/js/translated/purchase_order.js:647 msgid "New purchase order" msgstr "" -#: templates/js/translated/purchase_order.js:705 +#: templates/js/translated/purchase_order.js:688 msgid "Add to purchase order" msgstr "" -#: templates/js/translated/purchase_order.js:755 +#: templates/js/translated/purchase_order.js:738 msgid "Merge" msgstr "" -#: templates/js/translated/purchase_order.js:859 +#: templates/js/translated/purchase_order.js:842 msgid "No matching supplier parts" msgstr "" -#: templates/js/translated/purchase_order.js:878 +#: templates/js/translated/purchase_order.js:861 msgid "No matching purchase orders" msgstr "" -#: templates/js/translated/purchase_order.js:1073 +#: templates/js/translated/purchase_order.js:1056 #: templates/js/translated/return_order.js:490 msgid "Select Line Items" msgstr "" -#: templates/js/translated/purchase_order.js:1074 +#: templates/js/translated/purchase_order.js:1057 #: templates/js/translated/return_order.js:491 msgid "At least one line item must be selected" msgstr "" -#: templates/js/translated/purchase_order.js:1104 +#: templates/js/translated/purchase_order.js:1087 msgid "Received Quantity" msgstr "" -#: templates/js/translated/purchase_order.js:1115 +#: templates/js/translated/purchase_order.js:1098 msgid "Quantity to receive" msgstr "" -#: templates/js/translated/purchase_order.js:1170 +#: templates/js/translated/purchase_order.js:1153 #: templates/js/translated/stock.js:1215 msgid "Specify packaging for incoming stock items" msgstr "" -#: templates/js/translated/purchase_order.js:1223 +#: templates/js/translated/purchase_order.js:1206 msgid "Stock Status" msgstr "" -#: templates/js/translated/purchase_order.js:1237 +#: templates/js/translated/purchase_order.js:1220 msgid "Add barcode" msgstr "" -#: templates/js/translated/purchase_order.js:1238 +#: templates/js/translated/purchase_order.js:1221 msgid "Remove barcode" msgstr "" -#: templates/js/translated/purchase_order.js:1241 +#: templates/js/translated/purchase_order.js:1224 msgid "Specify location" msgstr "" -#: templates/js/translated/purchase_order.js:1249 +#: templates/js/translated/purchase_order.js:1232 msgid "Add batch code" msgstr "" -#: templates/js/translated/purchase_order.js:1259 +#: templates/js/translated/purchase_order.js:1242 msgid "Specify packaging" msgstr "" -#: templates/js/translated/purchase_order.js:1270 +#: templates/js/translated/purchase_order.js:1253 msgid "Add serial numbers" msgstr "" -#: templates/js/translated/purchase_order.js:1281 +#: templates/js/translated/purchase_order.js:1264 msgid "Add note" msgstr "" -#: templates/js/translated/purchase_order.js:1338 +#: templates/js/translated/purchase_order.js:1321 msgid "Serials" msgstr "" -#: templates/js/translated/purchase_order.js:1368 +#: templates/js/translated/purchase_order.js:1351 msgid "Order Code" msgstr "" -#: templates/js/translated/purchase_order.js:1370 +#: templates/js/translated/purchase_order.js:1353 msgid "Quantity to Receive" msgstr "" -#: templates/js/translated/purchase_order.js:1395 +#: templates/js/translated/purchase_order.js:1379 #: templates/js/translated/return_order.js:559 msgid "Confirm receipt of items" msgstr "" -#: templates/js/translated/purchase_order.js:1396 +#: templates/js/translated/purchase_order.js:1380 msgid "Receive Purchase Order Items" msgstr "" -#: templates/js/translated/purchase_order.js:1464 +#: templates/js/translated/purchase_order.js:1448 msgid "Scan Item Barcode" msgstr "" -#: templates/js/translated/purchase_order.js:1465 +#: templates/js/translated/purchase_order.js:1449 msgid "Scan barcode on incoming item (must not match any existing stock items)" msgstr "" -#: templates/js/translated/purchase_order.js:1479 +#: templates/js/translated/purchase_order.js:1463 msgid "Invalid barcode data" msgstr "" -#: templates/js/translated/purchase_order.js:1751 +#: templates/js/translated/purchase_order.js:1735 #: templates/js/translated/return_order.js:285 -#: templates/js/translated/sales_order.js:810 -#: templates/js/translated/sales_order.js:1034 +#: templates/js/translated/sales_order.js:769 +#: templates/js/translated/sales_order.js:1007 msgid "Order is overdue" msgstr "" -#: templates/js/translated/purchase_order.js:1913 +#: templates/js/translated/purchase_order.js:1897 msgid "All selected Line items will be deleted" msgstr "" -#: templates/js/translated/purchase_order.js:1931 +#: templates/js/translated/purchase_order.js:1915 msgid "Delete selected Line items?" msgstr "" -#: templates/js/translated/purchase_order.js:1986 -#: templates/js/translated/sales_order.js:2106 +#: templates/js/translated/purchase_order.js:1970 +#: templates/js/translated/sales_order.js:2087 msgid "Duplicate Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2001 +#: templates/js/translated/purchase_order.js:1985 #: templates/js/translated/return_order.js:475 #: templates/js/translated/return_order.js:667 -#: templates/js/translated/sales_order.js:2119 +#: templates/js/translated/sales_order.js:2100 msgid "Edit Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2012 +#: templates/js/translated/purchase_order.js:1996 #: templates/js/translated/return_order.js:680 -#: templates/js/translated/sales_order.js:2130 +#: templates/js/translated/sales_order.js:2111 msgid "Delete Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2294 -#: templates/js/translated/sales_order.js:2060 +#: templates/js/translated/purchase_order.js:2278 +#: templates/js/translated/sales_order.js:2041 msgid "Duplicate line item" msgstr "" -#: templates/js/translated/purchase_order.js:2295 +#: templates/js/translated/purchase_order.js:2279 #: templates/js/translated/return_order.js:799 -#: templates/js/translated/sales_order.js:2061 +#: templates/js/translated/sales_order.js:2042 msgid "Edit line item" msgstr "" -#: templates/js/translated/purchase_order.js:2296 +#: templates/js/translated/purchase_order.js:2280 #: templates/js/translated/return_order.js:803 -#: templates/js/translated/sales_order.js:2067 +#: templates/js/translated/sales_order.js:2048 msgid "Delete line item" msgstr "" -#: templates/js/translated/report.js:49 -msgid "Print Report" -msgstr "" - #: templates/js/translated/report.js:68 msgid "Report print successful" msgstr "" @@ -13878,7 +14219,7 @@ msgid "No return orders found" msgstr "" #: templates/js/translated/return_order.js:299 -#: templates/js/translated/sales_order.js:824 +#: templates/js/translated/sales_order.js:783 msgid "Invalid Customer" msgstr "" @@ -13887,7 +14228,7 @@ msgid "Receive Return Order Items" msgstr "" #: templates/js/translated/return_order.js:691 -#: templates/js/translated/sales_order.js:2267 +#: templates/js/translated/sales_order.js:2248 msgid "No matching line items" msgstr "" @@ -13903,188 +14244,181 @@ msgstr "" msgid "Edit Sales Order" msgstr "" -#: templates/js/translated/sales_order.js:291 +#: templates/js/translated/sales_order.js:288 msgid "No stock items have been allocated to this shipment" msgstr "" -#: templates/js/translated/sales_order.js:296 -msgid "The following stock items will be shipped" -msgstr "" - -#: templates/js/translated/sales_order.js:336 +#: templates/js/translated/sales_order.js:294 msgid "Complete Shipment" msgstr "" -#: templates/js/translated/sales_order.js:360 +#: templates/js/translated/sales_order.js:318 msgid "Confirm Shipment" msgstr "" -#: templates/js/translated/sales_order.js:416 +#: templates/js/translated/sales_order.js:375 msgid "No pending shipments found" msgstr "" -#: templates/js/translated/sales_order.js:420 +#: templates/js/translated/sales_order.js:379 msgid "No stock items have been allocated to pending shipments" msgstr "" -#: templates/js/translated/sales_order.js:430 +#: templates/js/translated/sales_order.js:389 msgid "Complete Shipments" msgstr "" -#: templates/js/translated/sales_order.js:452 +#: templates/js/translated/sales_order.js:411 msgid "Skip" msgstr "" -#: templates/js/translated/sales_order.js:484 +#: templates/js/translated/sales_order.js:443 msgid "Ship Sales Order" msgstr "" -#: templates/js/translated/sales_order.js:500 +#: templates/js/translated/sales_order.js:459 msgid "Ship this order?" msgstr "" -#: templates/js/translated/sales_order.js:506 +#: templates/js/translated/sales_order.js:465 msgid "Order cannot be shipped as there are incomplete shipments" msgstr "" -#: templates/js/translated/sales_order.js:513 +#: templates/js/translated/sales_order.js:472 msgid "This order has line items which have not been completed." msgstr "" -#: templates/js/translated/sales_order.js:514 +#: templates/js/translated/sales_order.js:473 msgid "Shipping this order means that the order and line items will no longer be editable." msgstr "" -#: templates/js/translated/sales_order.js:572 +#: templates/js/translated/sales_order.js:531 msgid "Issue this Sales Order?" msgstr "" -#: templates/js/translated/sales_order.js:577 +#: templates/js/translated/sales_order.js:536 msgid "Issue Sales Order" msgstr "" -#: templates/js/translated/sales_order.js:596 +#: templates/js/translated/sales_order.js:555 msgid "Cancel Sales Order" msgstr "" -#: templates/js/translated/sales_order.js:601 +#: templates/js/translated/sales_order.js:560 msgid "Cancelling this order means that the order will no longer be editable." msgstr "" -#: templates/js/translated/sales_order.js:655 +#: templates/js/translated/sales_order.js:614 msgid "Create New Shipment" msgstr "" -#: templates/js/translated/sales_order.js:764 +#: templates/js/translated/sales_order.js:723 msgid "No sales orders found" msgstr "" -#: templates/js/translated/sales_order.js:944 +#: templates/js/translated/sales_order.js:907 msgid "Edit shipment" msgstr "" -#: templates/js/translated/sales_order.js:947 +#: templates/js/translated/sales_order.js:910 msgid "Complete shipment" msgstr "" -#: templates/js/translated/sales_order.js:952 +#: templates/js/translated/sales_order.js:915 msgid "Delete shipment" msgstr "" -#: templates/js/translated/sales_order.js:969 +#: templates/js/translated/sales_order.js:932 msgid "Edit Shipment" msgstr "" -#: templates/js/translated/sales_order.js:984 +#: templates/js/translated/sales_order.js:947 msgid "Delete Shipment" msgstr "" -#: templates/js/translated/sales_order.js:1017 +#: templates/js/translated/sales_order.js:989 msgid "No matching shipments found" msgstr "" -#: templates/js/translated/sales_order.js:1042 +#: templates/js/translated/sales_order.js:1015 msgid "Shipment Reference" msgstr "" -#: templates/js/translated/sales_order.js:1066 -#: templates/js/translated/sales_order.js:1565 +#: templates/js/translated/sales_order.js:1032 +#: templates/js/translated/sales_order.js:1531 msgid "Not shipped" msgstr "" -#: templates/js/translated/sales_order.js:1084 +#: templates/js/translated/sales_order.js:1050 msgid "Tracking" msgstr "" -#: templates/js/translated/sales_order.js:1088 +#: templates/js/translated/sales_order.js:1054 msgid "Invoice" msgstr "" -#: templates/js/translated/sales_order.js:1255 +#: templates/js/translated/sales_order.js:1221 msgid "Add Shipment" msgstr "" -#: templates/js/translated/sales_order.js:1306 +#: templates/js/translated/sales_order.js:1272 msgid "Confirm stock allocation" msgstr "" -#: templates/js/translated/sales_order.js:1307 +#: templates/js/translated/sales_order.js:1273 msgid "Allocate Stock Items to Sales Order" msgstr "" -#: templates/js/translated/sales_order.js:1513 +#: templates/js/translated/sales_order.js:1479 msgid "No sales order allocations found" msgstr "" -#: templates/js/translated/sales_order.js:1605 +#: templates/js/translated/sales_order.js:1571 msgid "Edit Stock Allocation" msgstr "" -#: templates/js/translated/sales_order.js:1619 +#: templates/js/translated/sales_order.js:1585 msgid "Confirm Delete Operation" msgstr "" -#: templates/js/translated/sales_order.js:1620 +#: templates/js/translated/sales_order.js:1586 msgid "Delete Stock Allocation" msgstr "" -#: templates/js/translated/sales_order.js:1659 -#: templates/js/translated/sales_order.js:1746 +#: templates/js/translated/sales_order.js:1640 +#: templates/js/translated/sales_order.js:1727 #: templates/js/translated/stock.js:1861 msgid "Shipped to customer" msgstr "" -#: templates/js/translated/sales_order.js:1667 -#: templates/js/translated/sales_order.js:1755 +#: templates/js/translated/sales_order.js:1648 +#: templates/js/translated/sales_order.js:1736 msgid "Stock location not specified" msgstr "" -#: templates/js/translated/sales_order.js:2044 -msgid "Allocate serial numbers" -msgstr "" - -#: templates/js/translated/sales_order.js:2048 -msgid "Purchase stock" -msgstr "" - -#: templates/js/translated/sales_order.js:2057 -#: templates/js/translated/sales_order.js:2245 -msgid "Calculate price" -msgstr "" - -#: templates/js/translated/sales_order.js:2071 -msgid "Cannot be deleted as items have been shipped" -msgstr "" - -#: templates/js/translated/sales_order.js:2074 -msgid "Cannot be deleted as items have been allocated" -msgstr "" - -#: templates/js/translated/sales_order.js:2145 +#: templates/js/translated/sales_order.js:2025 +#: templates/js/translated/sales_order.js:2126 msgid "Allocate Serial Numbers" msgstr "" -#: templates/js/translated/sales_order.js:2253 +#: templates/js/translated/sales_order.js:2029 +msgid "Purchase stock" +msgstr "" + +#: templates/js/translated/sales_order.js:2038 +#: templates/js/translated/sales_order.js:2226 +msgid "Calculate price" +msgstr "" + +#: templates/js/translated/sales_order.js:2052 +msgid "Cannot be deleted as items have been shipped" +msgstr "" + +#: templates/js/translated/sales_order.js:2055 +msgid "Cannot be deleted as items have been allocated" +msgstr "" + +#: templates/js/translated/sales_order.js:2234 msgid "Update Unit Price" msgstr "" @@ -14209,11 +14543,8 @@ msgid "Find Serial Number" msgstr "" #: templates/js/translated/stock.js:603 templates/js/translated/stock.js:604 -msgid "Enter serial number" -msgstr "" - #: templates/js/translated/stock.js:620 -msgid "Enter a serial number" +msgid "Enter serial number" msgstr "" #: templates/js/translated/stock.js:640 @@ -14284,7 +14615,7 @@ msgstr "" msgid "Add Stock" msgstr "" -#: templates/js/translated/stock.js:1049 users/models.py:396 +#: templates/js/translated/stock.js:1049 users/models.py:398 msgid "Add" msgstr "Thêm" @@ -14308,7 +14639,7 @@ msgstr "" msgid "Adjust packaging" msgstr "" -#: templates/js/translated/stock.js:1256 templates/js/translated/stock.js:3382 +#: templates/js/translated/stock.js:1256 templates/js/translated/stock.js:3383 msgid "Select Stock Items" msgstr "" @@ -14320,18 +14651,6 @@ msgstr "" msgid "Confirm stock adjustment" msgstr "" -#: templates/js/translated/stock.js:1448 -msgid "PASS" -msgstr "" - -#: templates/js/translated/stock.js:1450 -msgid "FAIL" -msgstr "" - -#: templates/js/translated/stock.js:1455 -msgid "NO RESULT" -msgstr "" - #: templates/js/translated/stock.js:1535 msgid "Pass test" msgstr "" @@ -14388,216 +14707,216 @@ msgstr "" msgid "No stock location set" msgstr "" -#: templates/js/translated/stock.js:1927 +#: templates/js/translated/stock.js:1928 msgid "Change stock status" msgstr "" -#: templates/js/translated/stock.js:1936 +#: templates/js/translated/stock.js:1937 msgid "Merge stock" msgstr "" -#: templates/js/translated/stock.js:1985 +#: templates/js/translated/stock.js:1986 msgid "Delete stock" msgstr "" -#: templates/js/translated/stock.js:2038 +#: templates/js/translated/stock.js:2039 msgid "stock items" msgstr "" -#: templates/js/translated/stock.js:2043 +#: templates/js/translated/stock.js:2044 msgid "Scan to location" msgstr "" -#: templates/js/translated/stock.js:2054 +#: templates/js/translated/stock.js:2055 msgid "Stock Actions" msgstr "" -#: templates/js/translated/stock.js:2098 +#: templates/js/translated/stock.js:2099 msgid "Load installed items" msgstr "" -#: templates/js/translated/stock.js:2176 +#: templates/js/translated/stock.js:2177 msgid "Stock item is in production" msgstr "" -#: templates/js/translated/stock.js:2181 +#: templates/js/translated/stock.js:2182 msgid "Stock item assigned to sales order" msgstr "" -#: templates/js/translated/stock.js:2184 +#: templates/js/translated/stock.js:2185 msgid "Stock item assigned to customer" msgstr "" -#: templates/js/translated/stock.js:2187 +#: templates/js/translated/stock.js:2188 msgid "Serialized stock item has been allocated" msgstr "" -#: templates/js/translated/stock.js:2189 +#: templates/js/translated/stock.js:2190 msgid "Stock item has been fully allocated" msgstr "" -#: templates/js/translated/stock.js:2191 +#: templates/js/translated/stock.js:2192 msgid "Stock item has been partially allocated" msgstr "" -#: templates/js/translated/stock.js:2194 +#: templates/js/translated/stock.js:2195 msgid "Stock item has been installed in another item" msgstr "" -#: templates/js/translated/stock.js:2196 +#: templates/js/translated/stock.js:2197 msgid "Stock item has been consumed by a build order" msgstr "" -#: templates/js/translated/stock.js:2200 +#: templates/js/translated/stock.js:2201 msgid "Stock item has expired" msgstr "" -#: templates/js/translated/stock.js:2202 +#: templates/js/translated/stock.js:2203 msgid "Stock item will expire soon" msgstr "" -#: templates/js/translated/stock.js:2207 +#: templates/js/translated/stock.js:2208 msgid "Stock item has been rejected" msgstr "" -#: templates/js/translated/stock.js:2209 +#: templates/js/translated/stock.js:2210 msgid "Stock item is lost" msgstr "" -#: templates/js/translated/stock.js:2211 +#: templates/js/translated/stock.js:2212 msgid "Stock item is destroyed" msgstr "" -#: templates/js/translated/stock.js:2215 +#: templates/js/translated/stock.js:2216 #: templates/js/translated/table_filters.js:357 msgid "Depleted" msgstr "" -#: templates/js/translated/stock.js:2380 +#: templates/js/translated/stock.js:2381 msgid "Supplier part not specified" msgstr "" -#: templates/js/translated/stock.js:2427 +#: templates/js/translated/stock.js:2428 msgid "Stock Value" msgstr "" -#: templates/js/translated/stock.js:2555 +#: templates/js/translated/stock.js:2556 msgid "No stock items matching query" msgstr "" -#: templates/js/translated/stock.js:2658 +#: templates/js/translated/stock.js:2659 msgid "stock locations" msgstr "" -#: templates/js/translated/stock.js:2813 +#: templates/js/translated/stock.js:2814 msgid "Load Sublocations" msgstr "" -#: templates/js/translated/stock.js:2930 +#: templates/js/translated/stock.js:2931 msgid "Details" msgstr "" -#: templates/js/translated/stock.js:2934 +#: templates/js/translated/stock.js:2935 msgid "No changes" msgstr "" -#: templates/js/translated/stock.js:2946 +#: templates/js/translated/stock.js:2947 msgid "Part information unavailable" msgstr "" -#: templates/js/translated/stock.js:2968 +#: templates/js/translated/stock.js:2969 msgid "Location no longer exists" msgstr "" -#: templates/js/translated/stock.js:2985 +#: templates/js/translated/stock.js:2986 msgid "Build order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3000 +#: templates/js/translated/stock.js:3001 msgid "Purchase order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3017 +#: templates/js/translated/stock.js:3018 msgid "Sales Order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3034 +#: templates/js/translated/stock.js:3035 msgid "Return Order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3053 +#: templates/js/translated/stock.js:3054 msgid "Customer no longer exists" msgstr "" -#: templates/js/translated/stock.js:3071 +#: templates/js/translated/stock.js:3072 msgid "Stock item no longer exists" msgstr "" -#: templates/js/translated/stock.js:3089 +#: templates/js/translated/stock.js:3090 msgid "Added" msgstr "" -#: templates/js/translated/stock.js:3097 +#: templates/js/translated/stock.js:3098 msgid "Removed" msgstr "" -#: templates/js/translated/stock.js:3169 +#: templates/js/translated/stock.js:3170 msgid "No installed items" msgstr "" -#: templates/js/translated/stock.js:3223 templates/js/translated/stock.js:3259 +#: templates/js/translated/stock.js:3224 templates/js/translated/stock.js:3260 msgid "Uninstall Stock Item" msgstr "" -#: templates/js/translated/stock.js:3280 +#: templates/js/translated/stock.js:3281 msgid "Select stock item to uninstall" msgstr "" -#: templates/js/translated/stock.js:3301 +#: templates/js/translated/stock.js:3302 msgid "Install another stock item into this item" msgstr "" -#: templates/js/translated/stock.js:3302 +#: templates/js/translated/stock.js:3303 msgid "Stock items can only be installed if they meet the following criteria" msgstr "" -#: templates/js/translated/stock.js:3304 +#: templates/js/translated/stock.js:3305 msgid "The Stock Item links to a Part which is the BOM for this Stock Item" msgstr "" -#: templates/js/translated/stock.js:3305 +#: templates/js/translated/stock.js:3306 msgid "The Stock Item is currently available in stock" msgstr "" -#: templates/js/translated/stock.js:3306 +#: templates/js/translated/stock.js:3307 msgid "The Stock Item is not already installed in another item" msgstr "" -#: templates/js/translated/stock.js:3307 +#: templates/js/translated/stock.js:3308 msgid "The Stock Item is tracked by either a batch code or serial number" msgstr "" -#: templates/js/translated/stock.js:3320 +#: templates/js/translated/stock.js:3321 msgid "Select part to install" msgstr "" -#: templates/js/translated/stock.js:3383 +#: templates/js/translated/stock.js:3384 msgid "Select one or more stock items" msgstr "" -#: templates/js/translated/stock.js:3396 +#: templates/js/translated/stock.js:3397 msgid "Selected stock items" msgstr "" -#: templates/js/translated/stock.js:3400 +#: templates/js/translated/stock.js:3401 msgid "Change Stock Status" msgstr "" -#: templates/js/translated/stock.js:3477 +#: templates/js/translated/stock.js:3478 msgid "This week" msgstr "" -#: templates/js/translated/stock.js:3485 +#: templates/js/translated/stock.js:3486 msgid "This month" msgstr "" @@ -14734,10 +15053,6 @@ msgstr "" msgid "Show items which are in production" msgstr "" -#: templates/js/translated/table_filters.js:372 -msgid "Include Variants" -msgstr "" - #: templates/js/translated/table_filters.js:373 msgid "Include stock items for variant parts" msgstr "" @@ -15012,10 +15327,6 @@ msgstr "Đăng nhập tài khoản thất bại" msgid "An error occurred while attempting to login via your social network account." msgstr "Có lỗi trong khi cố gắng đăng nhập thông qua tài khoản mạng xã hội của bạn." -#: templates/socialaccount/authentication_error.html:13 -msgid "Contact your system administrator for further information." -msgstr "Liên lạc với quản trị hệ thống của bạn để biết thêm thông tin." - #: templates/socialaccount/login.html:13 #, python-format msgid "Connect %(provider)s" @@ -15141,27 +15452,27 @@ msgstr "Có" msgid "No" msgstr "Không" -#: users/admin.py:104 +#: users/admin.py:101 msgid "Users" msgstr "Người dùng" -#: users/admin.py:105 +#: users/admin.py:102 msgid "Select which users are assigned to this group" msgstr "Chọn người dùng được chỉ định cho nhóm này" -#: users/admin.py:249 +#: users/admin.py:246 msgid "The following users are members of multiple groups" msgstr "Người dùng sau là thành viên của nhiều nhóm" -#: users/admin.py:283 +#: users/admin.py:280 msgid "Personal info" msgstr "Thông tin cá nhân" -#: users/admin.py:285 +#: users/admin.py:282 msgid "Permissions" msgstr "Quyền" -#: users/admin.py:288 +#: users/admin.py:285 msgid "Important dates" msgstr "Ngày quan trọng" @@ -15205,35 +15516,35 @@ msgstr "Lần cuối mã thông báo được sử dụng" msgid "Revoked" msgstr "Đã thu hồi" -#: users/models.py:379 +#: users/models.py:381 msgid "Permission set" msgstr "Quyền hạn đã đặt" -#: users/models.py:388 +#: users/models.py:390 msgid "Group" msgstr "Nhóm" -#: users/models.py:392 +#: users/models.py:394 msgid "View" msgstr "Xem" -#: users/models.py:392 +#: users/models.py:394 msgid "Permission to view items" msgstr "Quyền để xem mục" -#: users/models.py:396 +#: users/models.py:398 msgid "Permission to add items" msgstr "Quyền để thêm mục" -#: users/models.py:400 +#: users/models.py:402 msgid "Change" msgstr "Đổi" -#: users/models.py:402 +#: users/models.py:404 msgid "Permissions to edit items" msgstr "Quyển để sửa mục" -#: users/models.py:408 +#: users/models.py:410 msgid "Permission to delete items" msgstr "Quyền để xóa mục" diff --git a/src/backend/InvenTree/locale/zh_Hans/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/zh_Hans/LC_MESSAGES/django.po index c838076993..80270478b3 100644 --- a/src/backend/InvenTree/locale/zh_Hans/LC_MESSAGES/django.po +++ b/src/backend/InvenTree/locale/zh_Hans/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-08-20 01:22+0000\n" -"PO-Revision-Date: 2024-08-20 19:51\n" +"POT-Creation-Date: 2024-11-04 03:11+0000\n" +"PO-Revision-Date: 2024-11-04 10:27\n" "Last-Translator: \n" "Language-Team: Chinese Simplified\n" "Language: zh_CN\n" @@ -14,81 +14,89 @@ msgstr "" "X-Crowdin-Project: inventree\n" "X-Crowdin-Project-ID: 452300\n" "X-Crowdin-Language: zh-CN\n" -"X-Crowdin-File: /[inventree.InvenTree] l10/src/backend/InvenTree/locale/en/LC_MESSAGES/django.po\n" -"X-Crowdin-File-ID: 216\n" +"X-Crowdin-File: /src/backend/InvenTree/locale/en/LC_MESSAGES/django.po\n" +"X-Crowdin-File-ID: 250\n" -#: InvenTree/api.py:269 +#: InvenTree/api.py:270 msgid "API endpoint not found" msgstr "未找到 API 端点" -#: InvenTree/api.py:502 +#: InvenTree/api.py:387 +msgid "Invalid items list provided" +msgstr "提供了无效的单位" + +#: InvenTree/api.py:396 +msgid "Invalid filters provided" +msgstr "提供了无效的过滤器" + +#: InvenTree/api.py:401 +msgid "No items found to delete" +msgstr "未找到要删除的项目" + +#: InvenTree/api.py:515 msgid "User does not have permission to view this model" msgstr "用户没有权限查阅当前模型。" -#: InvenTree/conversion.py:160 +#: InvenTree/conversion.py:161 #, python-brace-format msgid "Invalid unit provided ({unit})" msgstr "提供了无效的单位 ({unit})" -#: InvenTree/conversion.py:177 +#: InvenTree/conversion.py:178 msgid "No value provided" msgstr "没有提供数值" -#: InvenTree/conversion.py:204 +#: InvenTree/conversion.py:205 #, python-brace-format msgid "Could not convert {original} to {unit}" msgstr "不能将 {original} 转换到 {unit}" -#: InvenTree/conversion.py:206 -msgid "Invalid quantity supplied" +#: InvenTree/conversion.py:207 InvenTree/conversion.py:221 +#: InvenTree/helpers.py:505 order/models.py:589 order/models.py:832 +msgid "Invalid quantity provided" msgstr "提供的数量无效" -#: InvenTree/conversion.py:220 -#, python-brace-format -msgid "Invalid quantity supplied ({exc})" -msgstr "提供的数量无效 ({exc})" - -#: InvenTree/exceptions.py:108 +#: InvenTree/exceptions.py:104 msgid "Error details can be found in the admin panel" msgstr "在管理面板中可以找到错误详细信息" -#: InvenTree/fields.py:136 +#: InvenTree/fields.py:135 msgid "Enter date" msgstr "输入日期" -#: InvenTree/fields.py:205 InvenTree/models.py:929 build/serializers.py:468 -#: build/serializers.py:546 build/templates/build/sidebar.html:29 -#: company/models.py:836 +#: InvenTree/fields.py:204 InvenTree/models.py:928 build/serializers.py:512 +#: build/serializers.py:590 build/templates/build/sidebar.html:29 +#: company/models.py:833 #: company/templates/company/manufacturer_part_sidebar.html:11 #: company/templates/company/sidebar.html:37 -#: company/templates/company/supplier_part_sidebar.html:11 order/models.py:1380 +#: company/templates/company/supplier_part_sidebar.html:11 order/models.py:1397 #: order/templates/order/po_sidebar.html:11 #: order/templates/order/return_order_sidebar.html:9 #: order/templates/order/so_sidebar.html:17 part/admin.py:59 -#: part/models.py:3297 part/templates/part/part_sidebar.html:65 +#: part/models.py:3348 part/templates/part/part_sidebar.html:65 #: report/templates/report/inventree_build_order_report.html:172 -#: stock/admin.py:230 stock/models.py:2375 stock/models.py:2563 -#: stock/serializers.py:698 stock/serializers.py:856 stock/serializers.py:982 -#: stock/serializers.py:1032 stock/serializers.py:1343 -#: stock/serializers.py:1432 stock/serializers.py:1597 +#: stock/admin.py:231 stock/models.py:2494 stock/models.py:2679 +#: stock/serializers.py:725 stock/serializers.py:887 stock/serializers.py:1013 +#: stock/serializers.py:1063 stock/serializers.py:1374 +#: stock/serializers.py:1463 stock/serializers.py:1628 #: stock/templates/stock/stock_sidebar.html:25 #: templates/js/translated/barcode.js:143 templates/js/translated/bom.js:1265 -#: templates/js/translated/company.js:1684 templates/js/translated/order.js:372 +#: templates/js/translated/company.js:1685 templates/js/translated/order.js:372 #: templates/js/translated/part.js:1087 -#: templates/js/translated/purchase_order.js:2270 +#: templates/js/translated/purchase_order.js:2254 #: templates/js/translated/return_order.js:774 -#: templates/js/translated/sales_order.js:1103 -#: templates/js/translated/sales_order.js:2018 -#: templates/js/translated/stock.js:1621 templates/js/translated/stock.js:2513 +#: templates/js/translated/sales_order.js:1069 +#: templates/js/translated/sales_order.js:1999 +#: templates/js/translated/stock.js:1621 templates/js/translated/stock.js:2514 msgid "Notes" msgstr "备注" -#: InvenTree/format.py:164 +#: InvenTree/format.py:162 #, python-brace-format msgid "Value '{name}' does not appear in pattern format" msgstr "值' {name}' 未出现在模式格式中" -#: InvenTree/format.py:175 +#: InvenTree/format.py:173 msgid "Provided value does not match required pattern: " msgstr "提供的值与所需模式不匹配:" @@ -132,397 +140,409 @@ msgstr "MFA注册已禁用。" msgid "The provided primary email address is not valid." msgstr "提供的主电子邮件地址无效。" -#: InvenTree/forms.py:274 +#: InvenTree/forms.py:273 msgid "The provided email domain is not approved." msgstr "提供的邮箱域名未被批准。" -#: InvenTree/forms.py:403 +#: InvenTree/forms.py:402 msgid "Registration is disabled." msgstr "注册已禁用。" -#: InvenTree/helpers.py:491 order/models.py:567 order/models.py:810 -msgid "Invalid quantity provided" -msgstr "提供的数量无效" +#: InvenTree/helpers.py:509 +msgid "Cannot serialize more than 1000 items at once" +msgstr "无法一次序列化超过 1000 个项目" -#: InvenTree/helpers.py:499 +#: InvenTree/helpers.py:515 msgid "Empty serial number string" msgstr "序號為空白" -#: InvenTree/helpers.py:528 +#: InvenTree/helpers.py:544 msgid "Duplicate serial" msgstr "复制序列号" -#: InvenTree/helpers.py:560 InvenTree/helpers.py:603 +#: InvenTree/helpers.py:576 InvenTree/helpers.py:619 InvenTree/helpers.py:637 +#: InvenTree/helpers.py:644 InvenTree/helpers.py:663 #, python-brace-format -msgid "Invalid group range: {group}" -msgstr "无效的组范围: {group}" +msgid "Invalid group: {group}" +msgstr "无效群组: {group}" -#: InvenTree/helpers.py:591 +#: InvenTree/helpers.py:607 #, python-brace-format msgid "Group range {group} exceeds allowed quantity ({expected_quantity})" msgstr "组范围 {group} 超出了允许的数量 ({expected_quantity})" -#: InvenTree/helpers.py:621 InvenTree/helpers.py:628 InvenTree/helpers.py:647 -#, python-brace-format -msgid "Invalid group sequence: {group}" -msgstr "无效的组序列: {group}" - -#: InvenTree/helpers.py:657 +#: InvenTree/helpers.py:673 msgid "No serial numbers found" msgstr "未找到序列号" -#: InvenTree/helpers.py:662 +#: InvenTree/helpers.py:678 msgid "Number of unique serial numbers ({len(serials)}) must match quantity ({expected_quantity})" msgstr "唯一序列号的数量 ({len(serials)}) 必须与数量匹配 ({expected_quantity})" -#: InvenTree/helpers.py:780 +#: InvenTree/helpers.py:796 msgid "Remove HTML tags from this value" msgstr "从这个值中删除 HTML 标签" -#: InvenTree/helpers_model.py:133 +#: InvenTree/helpers.py:881 +msgid "Data contains prohibited markdown content" +msgstr "数据包含禁止的 markdown 内容" + +#: InvenTree/helpers_model.py:130 msgid "Connection error" msgstr "连接错误" -#: InvenTree/helpers_model.py:138 InvenTree/helpers_model.py:145 +#: InvenTree/helpers_model.py:135 InvenTree/helpers_model.py:142 msgid "Server responded with invalid status code" msgstr "服务器响应状态码无效" -#: InvenTree/helpers_model.py:141 +#: InvenTree/helpers_model.py:138 msgid "Exception occurred" msgstr "发生异常" -#: InvenTree/helpers_model.py:151 +#: InvenTree/helpers_model.py:148 msgid "Server responded with invalid Content-Length value" msgstr "服务器响应的内容长度值无效" -#: InvenTree/helpers_model.py:154 +#: InvenTree/helpers_model.py:151 msgid "Image size is too large" msgstr "图片尺寸过大" -#: InvenTree/helpers_model.py:166 +#: InvenTree/helpers_model.py:163 msgid "Image download exceeded maximum size" msgstr "图片下载超出最大尺寸" -#: InvenTree/helpers_model.py:171 +#: InvenTree/helpers_model.py:168 msgid "Remote server returned empty response" msgstr "远程服务器返回了空响应" -#: InvenTree/helpers_model.py:179 +#: InvenTree/helpers_model.py:176 msgid "Supplied URL is not a valid image file" msgstr "提供的 URL 不是一个有效的图片文件" -#: InvenTree/locales.py:18 +#: InvenTree/locales.py:20 msgid "Arabic" msgstr "阿拉伯语" -#: InvenTree/locales.py:19 +#: InvenTree/locales.py:21 msgid "Bulgarian" msgstr "Bulgarian" -#: InvenTree/locales.py:20 +#: InvenTree/locales.py:22 msgid "Czech" msgstr "Czech" -#: InvenTree/locales.py:21 +#: InvenTree/locales.py:23 msgid "Danish" msgstr "Danish" -#: InvenTree/locales.py:22 +#: InvenTree/locales.py:24 msgid "German" msgstr "German" -#: InvenTree/locales.py:23 +#: InvenTree/locales.py:25 msgid "Greek" msgstr "Greek" -#: InvenTree/locales.py:24 +#: InvenTree/locales.py:26 msgid "English" msgstr "English" -#: InvenTree/locales.py:25 +#: InvenTree/locales.py:27 msgid "Spanish" msgstr "Spanish" -#: InvenTree/locales.py:26 +#: InvenTree/locales.py:28 msgid "Spanish (Mexican)" msgstr "Spanish (Mexican)" -#: InvenTree/locales.py:27 +#: InvenTree/locales.py:29 msgid "Estonian" msgstr "爱沙尼亚语" -#: InvenTree/locales.py:28 +#: InvenTree/locales.py:30 msgid "Farsi / Persian" msgstr "Farsi / Persian" -#: InvenTree/locales.py:29 +#: InvenTree/locales.py:31 msgid "Finnish" msgstr "Finnish" -#: InvenTree/locales.py:30 +#: InvenTree/locales.py:32 msgid "French" msgstr "French" -#: InvenTree/locales.py:31 +#: InvenTree/locales.py:33 msgid "Hebrew" msgstr "Hebrew" -#: InvenTree/locales.py:32 +#: InvenTree/locales.py:34 msgid "Hindi" msgstr "Hindi" -#: InvenTree/locales.py:33 +#: InvenTree/locales.py:35 msgid "Hungarian" msgstr "Hungarian" -#: InvenTree/locales.py:34 +#: InvenTree/locales.py:36 msgid "Italian" msgstr "Italian" -#: InvenTree/locales.py:35 +#: InvenTree/locales.py:37 msgid "Japanese" msgstr "Japanese" -#: InvenTree/locales.py:36 +#: InvenTree/locales.py:38 msgid "Korean" msgstr "Korean" -#: InvenTree/locales.py:37 +#: InvenTree/locales.py:39 +msgid "Lithuanian" +msgstr "立陶宛语" + +#: InvenTree/locales.py:40 msgid "Latvian" msgstr "Latvian" -#: InvenTree/locales.py:38 +#: InvenTree/locales.py:41 msgid "Dutch" msgstr "Dutch" -#: InvenTree/locales.py:39 +#: InvenTree/locales.py:42 msgid "Norwegian" msgstr "Norwegian" -#: InvenTree/locales.py:40 +#: InvenTree/locales.py:43 msgid "Polish" msgstr "Polish" -#: InvenTree/locales.py:41 +#: InvenTree/locales.py:44 msgid "Portuguese" msgstr "Portuguese" -#: InvenTree/locales.py:42 +#: InvenTree/locales.py:45 msgid "Portuguese (Brazilian)" msgstr "Portuguese (Brazilian)" -#: InvenTree/locales.py:43 +#: InvenTree/locales.py:46 msgid "Romanian" msgstr "罗马尼亚语" -#: InvenTree/locales.py:44 +#: InvenTree/locales.py:47 msgid "Russian" msgstr "Russian" -#: InvenTree/locales.py:45 +#: InvenTree/locales.py:48 msgid "Slovak" msgstr "Slovak" -#: InvenTree/locales.py:46 +#: InvenTree/locales.py:49 msgid "Slovenian" msgstr "Slovenian" -#: InvenTree/locales.py:47 +#: InvenTree/locales.py:50 msgid "Serbian" msgstr "Serbian" -#: InvenTree/locales.py:48 +#: InvenTree/locales.py:51 msgid "Swedish" msgstr "Swedish" -#: InvenTree/locales.py:49 +#: InvenTree/locales.py:52 msgid "Thai" msgstr "Thai" -#: InvenTree/locales.py:50 +#: InvenTree/locales.py:53 msgid "Turkish" msgstr "Turkish" -#: InvenTree/locales.py:51 +#: InvenTree/locales.py:54 msgid "Ukrainian" msgstr "乌克兰语" -#: InvenTree/locales.py:52 +#: InvenTree/locales.py:55 msgid "Vietnamese" msgstr "Vietnamese" -#: InvenTree/locales.py:53 +#: InvenTree/locales.py:56 msgid "Chinese (Simplified)" msgstr "中文 (简体)" -#: InvenTree/locales.py:54 +#: InvenTree/locales.py:57 msgid "Chinese (Traditional)" msgstr "中文 (繁体)" #: InvenTree/magic_login.py:28 -#, python-brace-format -msgid "[{site_name}] Log in to the app" -msgstr "[{site_name}] 登录到应用程序" +msgid "Log in to the app" +msgstr "登录应用程序" -#: InvenTree/magic_login.py:38 InvenTree/serializers.py:415 -#: company/models.py:136 company/templates/company/company_base.html:138 +#: InvenTree/magic_login.py:38 InvenTree/serializers.py:416 +#: company/models.py:133 company/templates/company/company_base.html:138 #: templates/InvenTree/settings/user.html:49 -#: templates/js/translated/company.js:677 +#: templates/js/translated/company.js:678 msgid "Email" msgstr "电子邮件" -#: InvenTree/models.py:103 +#: InvenTree/models.py:105 msgid "Error running plugin validation" msgstr "驗證外掛程式時發生錯誤" -#: InvenTree/models.py:172 +#: InvenTree/models.py:174 msgid "Metadata must be a python dict object" msgstr "Metadata必須是一個Python Dictionary物件" -#: InvenTree/models.py:178 +#: InvenTree/models.py:180 msgid "Plugin Metadata" msgstr "外掛程式Metadata" -#: InvenTree/models.py:179 +#: InvenTree/models.py:181 msgid "JSON metadata field, for use by external plugins" msgstr "外掛程式使用的JSON Metadata欄位" -#: InvenTree/models.py:409 +#: InvenTree/models.py:408 msgid "Improperly formatted pattern" msgstr "格式錯誤" -#: InvenTree/models.py:416 +#: InvenTree/models.py:415 msgid "Unknown format key specified" msgstr "指定了不明的格式鍵值" -#: InvenTree/models.py:422 +#: InvenTree/models.py:421 msgid "Missing required format key" msgstr "缺少必須的格式鍵值" -#: InvenTree/models.py:433 +#: InvenTree/models.py:432 msgid "Reference field cannot be empty" msgstr "參考欄位不能空白" -#: InvenTree/models.py:441 +#: InvenTree/models.py:440 msgid "Reference must match required pattern" msgstr "參考欄位並須符合格式" -#: InvenTree/models.py:472 +#: InvenTree/models.py:471 msgid "Reference number is too large" msgstr "參考編號過大" -#: InvenTree/models.py:723 +#: InvenTree/models.py:722 msgid "Duplicate names cannot exist under the same parent" msgstr "同一個上層元件下不能有重複的名字" -#: InvenTree/models.py:740 +#: InvenTree/models.py:739 msgid "Invalid choice" msgstr "無效的選項" -#: InvenTree/models.py:770 common/models.py:2702 common/models.py:3132 -#: common/serializers.py:412 company/models.py:593 machine/models.py:24 -#: part/models.py:983 part/models.py:3764 plugin/models.py:51 -#: report/models.py:149 stock/models.py:77 +#: InvenTree/models.py:769 common/models.py:2766 common/models.py:3193 +#: common/models.py:3413 common/serializers.py:460 company/models.py:590 +#: machine/models.py:24 part/models.py:1044 part/models.py:3815 +#: plugin/models.py:51 report/models.py:149 stock/models.py:83 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/notifications.html:17 #: templates/InvenTree/settings/plugin.html:83 #: templates/InvenTree/settings/plugin_settings.html:22 #: templates/InvenTree/settings/settings_staff_js.html:67 #: templates/InvenTree/settings/settings_staff_js.html:454 -#: templates/js/translated/company.js:676 -#: templates/js/translated/company.js:724 -#: templates/js/translated/company.js:913 -#: templates/js/translated/company.js:1165 -#: templates/js/translated/company.js:1413 templates/js/translated/part.js:1193 +#: templates/js/translated/company.js:677 +#: templates/js/translated/company.js:725 +#: templates/js/translated/company.js:914 +#: templates/js/translated/company.js:1166 +#: templates/js/translated/company.js:1414 templates/js/translated/part.js:1193 #: templates/js/translated/part.js:1481 templates/js/translated/part.js:1617 -#: templates/js/translated/part.js:2768 templates/js/translated/stock.js:2801 +#: templates/js/translated/part.js:2768 templates/js/translated/stock.js:2802 msgid "Name" msgstr "名稱" -#: InvenTree/models.py:776 build/models.py:250 -#: build/templates/build/detail.html:24 common/models.py:156 -#: company/models.py:521 company/models.py:827 +#: InvenTree/models.py:775 build/models.py:251 +#: build/templates/build/detail.html:24 common/models.py:159 +#: company/models.py:518 company/models.py:824 #: company/templates/company/company_base.html:77 #: company/templates/company/manufacturer_part.html:75 -#: company/templates/company/supplier_part.html:107 order/models.py:288 -#: order/models.py:1413 part/admin.py:305 part/admin.py:411 part/models.py:1006 -#: part/models.py:3779 part/templates/part/category.html:79 -#: part/templates/part/part_base.html:170 +#: company/templates/company/supplier_part.html:108 order/models.py:295 +#: order/models.py:1430 part/admin.py:305 part/admin.py:411 part/models.py:1067 +#: part/models.py:3830 part/templates/part/category.html:79 +#: part/templates/part/part_base.html:171 #: part/templates/part/part_scheduling.html:12 report/models.py:155 -#: report/models.py:509 report/models.py:535 +#: report/models.py:517 report/models.py:543 #: report/templates/report/inventree_build_order_report.html:117 -#: stock/admin.py:54 stock/models.py:83 stock/templates/stock/location.html:122 +#: stock/admin.py:54 stock/models.py:89 stock/templates/stock/location.html:123 #: templates/InvenTree/settings/notifications.html:19 #: templates/InvenTree/settings/plugin_settings.html:27 #: templates/InvenTree/settings/settings_staff_js.html:170 #: templates/InvenTree/settings/settings_staff_js.html:459 #: templates/js/translated/bom.js:633 templates/js/translated/bom.js:963 -#: templates/js/translated/build.js:2311 templates/js/translated/company.js:519 -#: templates/js/translated/company.js:1330 -#: templates/js/translated/company.js:1641 templates/js/translated/index.js:119 +#: templates/js/translated/build.js:2314 templates/js/translated/company.js:520 +#: templates/js/translated/company.js:1331 +#: templates/js/translated/company.js:1642 templates/js/translated/index.js:119 #: templates/js/translated/order.js:323 templates/js/translated/part.js:1245 #: templates/js/translated/part.js:1490 templates/js/translated/part.js:1628 #: templates/js/translated/part.js:1965 templates/js/translated/part.js:2361 #: templates/js/translated/part.js:2803 templates/js/translated/part.js:2915 #: templates/js/translated/plugin.js:80 -#: templates/js/translated/purchase_order.js:1776 -#: templates/js/translated/purchase_order.js:1919 -#: templates/js/translated/purchase_order.js:2092 +#: templates/js/translated/purchase_order.js:1760 +#: templates/js/translated/purchase_order.js:1903 +#: templates/js/translated/purchase_order.js:2076 #: templates/js/translated/return_order.js:313 -#: templates/js/translated/sales_order.js:838 -#: templates/js/translated/sales_order.js:1848 -#: templates/js/translated/stock.js:1600 templates/js/translated/stock.js:2143 -#: templates/js/translated/stock.js:2832 templates/js/translated/stock.js:2915 +#: templates/js/translated/sales_order.js:797 +#: templates/js/translated/sales_order.js:1829 +#: templates/js/translated/stock.js:1600 templates/js/translated/stock.js:2144 +#: templates/js/translated/stock.js:2833 templates/js/translated/stock.js:2916 msgid "Description" msgstr "描述" -#: InvenTree/models.py:777 stock/models.py:84 +#: InvenTree/models.py:776 stock/models.py:90 msgid "Description (optional)" msgstr "描述(選填)" -#: InvenTree/models.py:792 templates/js/translated/part.js:2812 -#: templates/js/translated/stock.js:2841 +#: InvenTree/models.py:791 common/models.py:3546 +#: templates/js/translated/part.js:2812 templates/js/translated/stock.js:2842 msgid "Path" -msgstr "路徑" +msgstr "路径" -#: InvenTree/models.py:929 +#: InvenTree/models.py:928 msgid "Markdown notes (optional)" msgstr "Markdown 註記(選填)" -#: InvenTree/models.py:960 +#: InvenTree/models.py:959 msgid "Barcode Data" msgstr "條碼資料" -#: InvenTree/models.py:961 +#: InvenTree/models.py:960 msgid "Third party barcode data" msgstr "第三方條碼資料" -#: InvenTree/models.py:967 +#: InvenTree/models.py:966 msgid "Barcode Hash" msgstr "條碼雜湊值" -#: InvenTree/models.py:968 +#: InvenTree/models.py:967 msgid "Unique hash of barcode data" msgstr "條碼資料的唯一雜湊值" -#: InvenTree/models.py:1035 +#: InvenTree/models.py:1034 msgid "Existing barcode found" msgstr "發現現有條碼" -#: InvenTree/models.py:1078 +#: InvenTree/models.py:1112 +msgid "Task Failure" +msgstr "任务失败" + +#: InvenTree/models.py:1114 +#, python-brace-format +msgid "Background worker task '{instance.func}' failed after {n} attempts" +msgstr "后台工作程序任务“{instance.func}”在 {n} 次尝试后失败" + +#: InvenTree/models.py:1142 msgid "Server Error" msgstr "伺服器錯誤" -#: InvenTree/models.py:1079 +#: InvenTree/models.py:1143 msgid "An error has been logged by the server." msgstr "伺服器紀錄了一個錯誤。" -#: InvenTree/serializers.py:63 part/models.py:4387 +#: InvenTree/serializers.py:63 part/models.py:4444 msgid "Must be a valid number" msgstr "必須是有效的數字" -#: InvenTree/serializers.py:100 company/models.py:186 -#: company/templates/company/company_base.html:112 part/models.py:3115 +#: InvenTree/serializers.py:100 company/models.py:183 +#: company/templates/company/company_base.html:112 part/models.py:3166 #: templates/InvenTree/settings/settings_staff_js.html:44 #: templates/currency_data.html:5 msgid "Currency" @@ -532,15 +552,15 @@ msgstr "貨幣" msgid "Select currency from available options" msgstr "從可用選項中選擇貨幣" -#: InvenTree/serializers.py:407 templates/InvenTree/settings/user.html:33 +#: InvenTree/serializers.py:405 templates/InvenTree/settings/user.html:33 msgid "Username" msgstr "用户名" -#: InvenTree/serializers.py:409 templates/InvenTree/settings/user.html:37 +#: InvenTree/serializers.py:408 templates/InvenTree/settings/user.html:37 msgid "First Name" msgstr "名" -#: InvenTree/serializers.py:409 +#: InvenTree/serializers.py:408 msgid "First name of the user" msgstr "用户的名字(不包括姓氏)" @@ -552,30 +572,30 @@ msgstr "姓" msgid "Last name of the user" msgstr "用户的姓氏" -#: InvenTree/serializers.py:415 +#: InvenTree/serializers.py:416 msgid "Email address of the user" msgstr "用户的电子邮件地址" -#: InvenTree/serializers.py:439 +#: InvenTree/serializers.py:441 msgid "Staff" msgstr "职员" -#: InvenTree/serializers.py:439 +#: InvenTree/serializers.py:441 msgid "Does this user have staff permissions" msgstr "此用户是否拥有员工权限" -#: InvenTree/serializers.py:442 +#: InvenTree/serializers.py:445 msgid "Superuser" msgstr "超级用户" -#: InvenTree/serializers.py:442 +#: InvenTree/serializers.py:445 msgid "Is this user a superuser" msgstr "此用户是否为超级用户" -#: InvenTree/serializers.py:445 common/models.py:2707 company/models.py:163 -#: company/models.py:801 machine/models.py:39 part/admin.py:88 -#: part/models.py:1189 plugin/models.py:66 -#: templates/js/translated/company.js:523 +#: InvenTree/serializers.py:449 common/models.py:2771 company/models.py:160 +#: company/models.py:798 machine/models.py:39 part/admin.py:88 +#: part/models.py:1250 plugin/models.py:66 +#: templates/js/translated/company.js:524 #: templates/js/translated/table_filters.js:134 #: templates/js/translated/table_filters.js:226 #: templates/js/translated/table_filters.js:513 @@ -585,247 +605,298 @@ msgstr "此用户是否为超级用户" msgid "Active" msgstr "激活" -#: InvenTree/serializers.py:445 +#: InvenTree/serializers.py:449 msgid "Is this user account active" msgstr "此用户帐户是否已激活" -#: InvenTree/serializers.py:463 +#: InvenTree/serializers.py:467 msgid "You do not have permission to change this user role." msgstr "您沒有更改這個使用者角色的權限" -#: InvenTree/serializers.py:475 +#: InvenTree/serializers.py:503 msgid "Only superusers can create new users" msgstr "只有管理員帳戶可以建立新的使用者" -#: InvenTree/serializers.py:494 +#: InvenTree/serializers.py:523 msgid "Your account has been created." msgstr "您的帳號已經建立完成。" -#: InvenTree/serializers.py:496 +#: InvenTree/serializers.py:525 msgid "Please use the password reset function to login" msgstr "請使用重設密碼功能來登入" -#: InvenTree/serializers.py:503 +#: InvenTree/serializers.py:531 msgid "Welcome to InvenTree" msgstr "歡迎使用 InvenTree" -#: InvenTree/serializers.py:561 +#: InvenTree/serializers.py:594 msgid "Invalid value" msgstr "无效值" -#: InvenTree/serializers.py:581 importer/models.py:63 +#: InvenTree/serializers.py:614 importer/models.py:64 msgid "Data File" msgstr "数据文件" -#: InvenTree/serializers.py:582 +#: InvenTree/serializers.py:615 msgid "Select data file for upload" msgstr "选择要上传的数据文件" -#: InvenTree/serializers.py:599 -msgid "Unsupported file type" -msgstr "不支持的文件类型" +#: InvenTree/serializers.py:632 common/files.py:63 +msgid "Unsupported file format" +msgstr "不支持的文件格式" -#: InvenTree/serializers.py:605 +#: InvenTree/serializers.py:638 msgid "File is too large" msgstr "文件过大" -#: InvenTree/serializers.py:626 +#: InvenTree/serializers.py:659 msgid "No columns found in file" msgstr "在文件中没有找到列" -#: InvenTree/serializers.py:629 +#: InvenTree/serializers.py:662 msgid "No data rows found in file" msgstr "在文件中没有找到数据行" -#: InvenTree/serializers.py:742 +#: InvenTree/serializers.py:774 msgid "No data rows provided" msgstr "没有提供数据行" -#: InvenTree/serializers.py:745 +#: InvenTree/serializers.py:777 msgid "No data columns supplied" msgstr "没有提供数据列" -#: InvenTree/serializers.py:812 +#: InvenTree/serializers.py:843 #, python-brace-format msgid "Missing required column: '{name}'" msgstr "缺少必需的列:'{name}'" -#: InvenTree/serializers.py:821 +#: InvenTree/serializers.py:852 #, python-brace-format msgid "Duplicate column: '{col}'" msgstr "重复列: '{col}'" -#: InvenTree/serializers.py:861 +#: InvenTree/serializers.py:891 msgid "Remote Image" msgstr "远程图片" -#: InvenTree/serializers.py:862 +#: InvenTree/serializers.py:892 msgid "URL of remote image file" msgstr "远程图片文件的 URL" -#: InvenTree/serializers.py:880 +#: InvenTree/serializers.py:910 msgid "Downloading images from remote URL is not enabled" msgstr "未启用从远程 URL下载图片" -#: InvenTree/status.py:66 part/serializers.py:1246 -msgid "Background worker check failed" -msgstr "后台执行器检查失败" - -#: InvenTree/status.py:70 -msgid "Email backend not configured" -msgstr "未配置电子邮件后端" - -#: InvenTree/status.py:73 -msgid "InvenTree system health checks failed" -msgstr "InvenTree 系统健康检查失败" +#: InvenTree/serializers.py:917 +msgid "Failed to download image from remote URL" +msgstr "从远程URL下载图像失败" #: InvenTree/templatetags/inventree_extras.py:184 msgid "Unknown database" msgstr "未知的資料庫" -#: InvenTree/validators.py:32 InvenTree/validators.py:34 +#: InvenTree/validators.py:32 msgid "Invalid physical unit" msgstr "無效的物理單位" -#: InvenTree/validators.py:40 +#: InvenTree/validators.py:38 msgid "Not a valid currency code" msgstr "無效的貨幣代碼" -#: InvenTree/validators.py:118 InvenTree/validators.py:134 +#: InvenTree/validators.py:115 InvenTree/validators.py:131 msgid "Overage value must not be negative" msgstr "損失值不能為負" -#: InvenTree/validators.py:136 +#: InvenTree/validators.py:133 msgid "Overage must not exceed 100%" msgstr "損失率不能超過100%" -#: InvenTree/validators.py:142 +#: InvenTree/validators.py:139 msgid "Invalid value for overage" msgstr "無效的損失值" -#: InvenTree/views.py:400 templates/InvenTree/settings/user.html:23 +#: InvenTree/views.py:399 templates/InvenTree/settings/user.html:23 msgid "Edit User Information" msgstr "編輯使用者資訊" -#: InvenTree/views.py:412 templates/InvenTree/settings/user.html:20 +#: InvenTree/views.py:411 templates/InvenTree/settings/user.html:20 msgid "Set Password" msgstr "設定密碼" -#: InvenTree/views.py:434 +#: InvenTree/views.py:433 msgid "Password fields must match" msgstr "密碼必須相符" -#: InvenTree/views.py:442 +#: InvenTree/views.py:441 msgid "Wrong password provided" msgstr "密碼錯誤" -#: InvenTree/views.py:650 templates/navbar.html:160 +#: InvenTree/views.py:645 templates/navbar.html:160 msgid "System Information" msgstr "系統資訊" -#: InvenTree/views.py:657 templates/navbar.html:171 +#: InvenTree/views.py:652 templates/navbar.html:171 msgid "About InvenTree" msgstr "關於InvenTree" -#: build/api.py:51 part/api.py:156 stock/api.py:343 -msgid "Cascade" -msgstr "级联" - -#: build/api.py:64 build/models.py:261 -#: build/templates/build/build_base.html:191 +#: build/api.py:54 build/models.py:262 +#: build/templates/build/build_base.html:192 #: build/templates/build/detail.html:87 msgid "Parent Build" msgstr "上層生產工單" -#: build/api.py:89 order/api.py:92 templates/js/translated/table_filters.js:101 +#: build/api.py:58 build/api.py:625 order/api.py:396 order/api.py:611 +#: order/api.py:990 order/api.py:1187 +#: templates/js/translated/table_filters.js:372 +msgid "Include Variants" +msgstr "包含变体" + +#: build/api.py:93 +msgid "Ancestor Build" +msgstr "可测试部分" + +#: build/api.py:112 order/api.py:90 +#: templates/js/translated/table_filters.js:101 #: templates/js/translated/table_filters.js:549 #: templates/js/translated/table_filters.js:633 #: templates/js/translated/table_filters.js:674 msgid "Assigned to me" msgstr "分配给我" -#: build/api.py:106 build/templates/build/build_base.html:205 +#: build/api.py:129 build/templates/build/build_base.html:206 #: build/templates/build/detail.html:115 #: report/templates/report/inventree_build_order_report.html:152 #: templates/js/translated/table_filters.js:552 msgid "Issued By" msgstr "发布者" -#: build/api.py:125 +#: build/api.py:148 msgid "Assigned To" -msgstr "" +msgstr "负责人" -#: build/api.py:301 +#: build/api.py:310 msgid "Build must be cancelled before it can be deleted" msgstr "工單必須被取消才能被刪除" -#: build/api.py:345 build/serializers.py:1288 part/models.py:4265 +#: build/api.py:354 build/serializers.py:1342 part/models.py:4322 #: templates/js/translated/bom.js:997 templates/js/translated/bom.js:1037 -#: templates/js/translated/build.js:2702 +#: templates/js/translated/build.js:2711 #: templates/js/translated/table_filters.js:197 #: templates/js/translated/table_filters.js:586 msgid "Consumable" msgstr "耗材" -#: build/api.py:346 build/serializers.py:1289 part/models.py:4259 +#: build/api.py:355 build/serializers.py:1343 part/models.py:4316 #: part/templates/part/upload_bom.html:58 templates/js/translated/bom.js:1001 -#: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2693 +#: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2702 #: templates/js/translated/table_filters.js:193 #: templates/js/translated/table_filters.js:222 #: templates/js/translated/table_filters.js:590 msgid "Optional" msgstr "非必須項目" -#: build/api.py:347 common/models.py:1489 part/admin.py:91 part/admin.py:428 -#: part/models.py:1154 part/serializers.py:1575 +#: build/api.py:356 common/models.py:1558 part/admin.py:91 part/admin.py:428 +#: part/models.py:1215 part/serializers.py:1633 #: templates/js/translated/bom.js:1639 #: templates/js/translated/table_filters.js:337 #: templates/js/translated/table_filters.js:729 msgid "Assembly" msgstr "装配" -#: build/api.py:348 templates/js/translated/table_filters.js:415 +#: build/api.py:357 templates/js/translated/table_filters.js:415 #: templates/js/translated/table_filters.js:582 msgid "Tracked" msgstr "追蹤中" -#: build/api.py:349 build/serializers.py:1290 part/models.py:1172 +#: build/api.py:358 build/serializers.py:1344 part/models.py:1233 #: templates/js/translated/table_filters.js:146 #: templates/js/translated/table_filters.js:779 msgid "Testable" -msgstr "" +msgstr "可测试" -#: build/api.py:351 part/admin.py:144 templates/js/translated/build.js:1917 -#: templates/js/translated/build.js:2820 -#: templates/js/translated/sales_order.js:1965 +#: build/api.py:360 order/api.py:779 part/admin.py:144 +#: templates/js/translated/build.js:1920 templates/js/translated/build.js:2838 +#: templates/js/translated/sales_order.js:1946 #: templates/js/translated/table_filters.js:574 msgid "Allocated" msgstr "已分配" -#: build/api.py:359 company/models.py:891 company/serializers.py:395 -#: company/templates/company/supplier_part.html:114 +#: build/api.py:368 company/models.py:888 company/serializers.py:399 +#: company/templates/company/supplier_part.html:115 #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:17 -#: templates/js/translated/bom.js:1162 templates/js/translated/build.js:2752 +#: templates/js/translated/bom.js:1162 templates/js/translated/build.js:2770 #: templates/js/translated/index.js:123 -#: templates/js/translated/model_renderers.js:235 +#: templates/js/translated/model_renderers.js:238 #: templates/js/translated/part.js:695 templates/js/translated/part.js:697 #: templates/js/translated/part.js:702 #: templates/js/translated/table_filters.js:347 #: templates/js/translated/table_filters.js:578 msgid "Available" -msgstr "可用數量" +msgstr "可用数量" -#: build/models.py:86 build/templates/build/build_base.html:9 -#: build/templates/build/build_base.html:27 +#: build/api.py:640 build/models.py:268 build/serializers.py:1330 +#: build/templates/build/build_base.html:106 +#: build/templates/build/detail.html:29 company/models.py:1043 order/api.py:775 +#: order/api.py:1003 order/models.py:1519 order/models.py:1674 +#: order/models.py:1675 part/api.py:1495 part/api.py:1802 part/models.py:419 +#: part/models.py:3177 part/models.py:3321 part/models.py:3469 +#: part/models.py:3490 part/models.py:3512 part/models.py:3648 +#: part/models.py:3995 part/models.py:4158 part/models.py:4288 +#: part/models.py:4654 part/serializers.py:1245 part/serializers.py:1898 +#: part/templates/part/part_app_base.html:8 +#: part/templates/part/part_pricing.html:12 +#: part/templates/part/upload_bom.html:52 +#: report/templates/report/inventree_bill_of_materials_report.html:110 +#: report/templates/report/inventree_bill_of_materials_report.html:137 +#: report/templates/report/inventree_build_order_report.html:109 +#: report/templates/report/inventree_purchase_order_report.html:27 +#: report/templates/report/inventree_return_order_report.html:24 +#: report/templates/report/inventree_sales_order_report.html:27 +#: report/templates/report/inventree_sales_order_shipment_report.html:28 +#: report/templates/report/inventree_stock_location_report.html:102 +#: stock/serializers.py:112 stock/serializers.py:160 stock/serializers.py:456 +#: stock/serializers.py:947 templates/InvenTree/search.html:82 +#: templates/email/build_order_completed.html:17 +#: templates/email/build_order_required_stock.html:17 +#: templates/email/low_stock_notification.html:15 +#: templates/email/overdue_build_order.html:16 +#: templates/js/translated/barcode.js:577 templates/js/translated/bom.js:632 +#: templates/js/translated/bom.js:769 templates/js/translated/bom.js:905 +#: templates/js/translated/build.js:1005 templates/js/translated/build.js:1488 +#: templates/js/translated/build.js:1919 templates/js/translated/build.js:2337 +#: templates/js/translated/build.js:2514 templates/js/translated/company.js:349 +#: templates/js/translated/company.js:1117 +#: templates/js/translated/company.js:1272 +#: templates/js/translated/company.js:1560 templates/js/translated/index.js:109 +#: templates/js/translated/part.js:1950 templates/js/translated/part.js:2022 +#: templates/js/translated/part.js:2330 templates/js/translated/pricing.js:369 +#: templates/js/translated/purchase_order.js:734 +#: templates/js/translated/purchase_order.js:1350 +#: templates/js/translated/purchase_order.js:1902 +#: templates/js/translated/purchase_order.js:2061 +#: templates/js/translated/return_order.js:538 +#: templates/js/translated/return_order.js:708 +#: templates/js/translated/sales_order.js:1199 +#: templates/js/translated/sales_order.js:1608 +#: templates/js/translated/sales_order.js:1813 +#: templates/js/translated/stock.js:682 templates/js/translated/stock.js:848 +#: templates/js/translated/stock.js:1065 templates/js/translated/stock.js:2083 +#: templates/js/translated/stock.js:2942 templates/js/translated/stock.js:3175 +#: templates/js/translated/stock.js:3320 +msgid "Part" +msgstr "零件" + +#: build/api.py:662 build/models.py:88 build/templates/build/build_base.html:10 +#: build/templates/build/build_base.html:28 #: report/templates/report/inventree_build_order_report.html:105 -#: stock/serializers.py:84 templates/email/build_order_completed.html:16 +#: stock/serializers.py:85 templates/email/build_order_completed.html:16 #: templates/email/overdue_build_order.html:15 -#: templates/js/translated/build.js:1145 templates/js/translated/stock.js:2976 +#: templates/js/translated/build.js:1148 templates/js/translated/stock.js:2977 msgid "Build Order" -msgstr "生產工單" +msgstr "生产订单" -#: build/models.py:87 build/templates/build/build_base.html:13 +#: build/models.py:89 build/templates/build/build_base.html:14 #: build/templates/build/index.html:8 build/templates/build/index.html:12 #: order/templates/order/sales_order_detail.html:111 #: order/templates/order/so_sidebar.html:13 @@ -836,268 +907,216 @@ msgstr "生產工單" msgid "Build Orders" msgstr "生產工單" -#: build/models.py:135 +#: build/models.py:136 msgid "Assembly BOM has not been validated" msgstr "装配物料清单尚未验证" -#: build/models.py:142 +#: build/models.py:143 msgid "Build order cannot be created for an inactive part" msgstr "无法为未激活的零件创建生产订单" -#: build/models.py:149 +#: build/models.py:150 msgid "Build order cannot be created for an unlocked part" msgstr "无法为已解锁的零件创建生产订单" -#: build/models.py:163 +#: build/models.py:164 msgid "Invalid choice for parent build" msgstr "無效的上層生產工單選擇" -#: build/models.py:174 order/models.py:239 +#: build/models.py:175 order/models.py:236 msgid "Responsible user or group must be specified" msgstr "必须指定负责的用户或组" -#: build/models.py:180 +#: build/models.py:181 msgid "Build order part cannot be changed" msgstr "無法更改生產工單" -#: build/models.py:241 +#: build/models.py:242 msgid "Build Order Reference" msgstr "生產工單代號" -#: build/models.py:242 build/serializers.py:1287 order/models.py:467 -#: order/models.py:978 order/models.py:1373 order/models.py:2135 -#: part/admin.py:414 part/models.py:4280 part/templates/part/upload_bom.html:54 +#: build/models.py:243 build/serializers.py:1341 order/models.py:479 +#: order/models.py:1005 order/models.py:1390 order/models.py:2174 +#: part/admin.py:414 part/models.py:4337 part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_bill_of_materials_report.html:139 #: report/templates/report/inventree_purchase_order_report.html:28 #: report/templates/report/inventree_return_order_report.html:26 #: report/templates/report/inventree_sales_order_report.html:28 #: templates/js/translated/bom.js:770 templates/js/translated/bom.js:973 -#: templates/js/translated/build.js:1011 templates/js/translated/build.js:2685 +#: templates/js/translated/build.js:1014 templates/js/translated/build.js:2694 #: templates/js/translated/order.js:316 templates/js/translated/pricing.js:386 -#: templates/js/translated/purchase_order.js:2135 +#: templates/js/translated/purchase_order.js:2119 #: templates/js/translated/return_order.js:727 -#: templates/js/translated/sales_order.js:1854 +#: templates/js/translated/sales_order.js:1835 msgid "Reference" msgstr "參考代號" -#: build/models.py:253 +#: build/models.py:254 msgid "Brief description of the build (optional)" msgstr "關於生產工單的簡單說明(選填)" -#: build/models.py:262 +#: build/models.py:263 msgid "BuildOrder to which this build is allocated" msgstr "這張生產工單對應的上層生產工單" -#: build/models.py:267 build/serializers.py:1278 -#: build/templates/build/build_base.html:105 -#: build/templates/build/detail.html:29 company/models.py:1046 order/api.py:767 -#: order/models.py:1503 order/models.py:1658 order/models.py:1659 -#: part/api.py:1509 part/api.py:1813 part/models.py:424 part/models.py:3126 -#: part/models.py:3270 part/models.py:3418 part/models.py:3439 -#: part/models.py:3461 part/models.py:3597 part/models.py:3937 -#: part/models.py:4100 part/models.py:4231 part/models.py:4592 -#: part/serializers.py:1192 part/serializers.py:1836 -#: part/templates/part/part_app_base.html:8 -#: part/templates/part/part_pricing.html:12 -#: part/templates/part/upload_bom.html:52 -#: report/templates/report/inventree_bill_of_materials_report.html:110 -#: report/templates/report/inventree_bill_of_materials_report.html:137 -#: report/templates/report/inventree_build_order_report.html:109 -#: report/templates/report/inventree_purchase_order_report.html:27 -#: report/templates/report/inventree_return_order_report.html:24 -#: report/templates/report/inventree_sales_order_report.html:27 -#: report/templates/report/inventree_stock_location_report.html:102 -#: stock/serializers.py:111 stock/serializers.py:159 stock/serializers.py:446 -#: stock/serializers.py:916 templates/InvenTree/search.html:82 -#: templates/email/build_order_completed.html:17 -#: templates/email/build_order_required_stock.html:17 -#: templates/email/low_stock_notification.html:15 -#: templates/email/overdue_build_order.html:16 -#: templates/js/translated/barcode.js:577 templates/js/translated/bom.js:632 -#: templates/js/translated/bom.js:769 templates/js/translated/bom.js:905 -#: templates/js/translated/build.js:1002 templates/js/translated/build.js:1485 -#: templates/js/translated/build.js:1916 templates/js/translated/build.js:2334 -#: templates/js/translated/build.js:2507 templates/js/translated/company.js:348 -#: templates/js/translated/company.js:1116 -#: templates/js/translated/company.js:1271 -#: templates/js/translated/company.js:1559 templates/js/translated/index.js:109 -#: templates/js/translated/part.js:1950 templates/js/translated/part.js:2022 -#: templates/js/translated/part.js:2330 templates/js/translated/pricing.js:369 -#: templates/js/translated/purchase_order.js:751 -#: templates/js/translated/purchase_order.js:1367 -#: templates/js/translated/purchase_order.js:1918 -#: templates/js/translated/purchase_order.js:2077 -#: templates/js/translated/return_order.js:538 -#: templates/js/translated/return_order.js:708 -#: templates/js/translated/sales_order.js:300 -#: templates/js/translated/sales_order.js:1233 -#: templates/js/translated/sales_order.js:1634 -#: templates/js/translated/sales_order.js:1832 -#: templates/js/translated/stock.js:682 templates/js/translated/stock.js:848 -#: templates/js/translated/stock.js:1065 templates/js/translated/stock.js:2082 -#: templates/js/translated/stock.js:2941 templates/js/translated/stock.js:3174 -#: templates/js/translated/stock.js:3319 -msgid "Part" -msgstr "零件" - -#: build/models.py:275 +#: build/models.py:274 msgid "Select part to build" msgstr "選擇要生產的零件" -#: build/models.py:280 +#: build/models.py:279 msgid "Sales Order Reference" msgstr "銷售訂單代號" -#: build/models.py:284 +#: build/models.py:283 msgid "SalesOrder to which this build is allocated" msgstr "這張生產工單對應的銷售訂單" -#: build/models.py:289 build/serializers.py:1048 -#: templates/js/translated/build.js:1904 -#: templates/js/translated/sales_order.js:1221 +#: build/models.py:288 build/serializers.py:1092 +#: templates/js/translated/build.js:1907 +#: templates/js/translated/sales_order.js:1187 msgid "Source Location" msgstr "來源倉儲地點" -#: build/models.py:293 +#: build/models.py:292 msgid "Select location to take stock from for this build (leave blank to take from any stock location)" msgstr "選擇領取料件的倉儲地點(留白表示可以從任何地點領取)" -#: build/models.py:298 +#: build/models.py:297 msgid "Destination Location" msgstr "目標倉儲地點" -#: build/models.py:302 +#: build/models.py:301 msgid "Select location where the completed items will be stored" msgstr "选择已完成项目库存地点" -#: build/models.py:306 +#: build/models.py:305 msgid "Build Quantity" msgstr "生产数量" -#: build/models.py:309 +#: build/models.py:308 msgid "Number of stock items to build" msgstr "要生产的项目数量" -#: build/models.py:313 +#: build/models.py:312 msgid "Completed items" msgstr "已完成项目" -#: build/models.py:315 +#: build/models.py:314 msgid "Number of stock items which have been completed" msgstr "已經完成的庫存品數量" -#: build/models.py:319 +#: build/models.py:318 msgid "Build Status" msgstr "生產狀態" -#: build/models.py:323 +#: build/models.py:322 msgid "Build status code" msgstr "生產狀態代碼" -#: build/models.py:332 build/serializers.py:302 build/serializers.py:1198 -#: order/serializers.py:670 stock/models.py:859 stock/serializers.py:76 -#: stock/serializers.py:1562 templates/js/translated/purchase_order.js:1129 +#: build/models.py:331 build/serializers.py:349 build/serializers.py:1243 +#: order/serializers.py:755 stock/models.py:936 stock/serializers.py:77 +#: stock/serializers.py:1593 templates/js/translated/purchase_order.js:1112 #: templates/js/translated/stock.js:1199 msgid "Batch Code" msgstr "批号" -#: build/models.py:336 build/serializers.py:303 +#: build/models.py:335 build/serializers.py:350 msgid "Batch code for this build output" msgstr "此产出的批号" -#: build/models.py:339 order/models.py:315 order/serializers.py:126 -#: part/models.py:1229 part/templates/part/part_base.html:319 +#: build/models.py:338 order/models.py:322 order/serializers.py:157 +#: part/models.py:1290 part/templates/part/part_base.html:327 #: templates/js/translated/return_order.js:338 -#: templates/js/translated/sales_order.js:863 +#: templates/js/translated/sales_order.js:822 msgid "Creation Date" msgstr "建立日期" -#: build/models.py:343 +#: build/models.py:342 msgid "Target completion date" msgstr "目標完成日期" -#: build/models.py:344 +#: build/models.py:343 msgid "Target date for build completion. Build will be overdue after this date." msgstr "生產的預計完成日期。若超過此日期則工單會逾期。" -#: build/models.py:347 order/models.py:526 order/models.py:2180 -#: templates/js/translated/build.js:2419 +#: build/models.py:346 order/models.py:538 order/models.py:2219 +#: templates/js/translated/build.js:2422 msgid "Completion Date" msgstr "完成日期" -#: build/models.py:353 +#: build/models.py:352 msgid "completed by" msgstr "完成者" -#: build/models.py:361 templates/js/translated/build.js:2379 +#: build/models.py:360 templates/js/translated/build.js:2382 msgid "Issued by" msgstr "發布者" -#: build/models.py:362 +#: build/models.py:361 msgid "User who issued this build order" msgstr "發布此生產工單的使用者" -#: build/models.py:370 build/templates/build/build_base.html:212 -#: build/templates/build/detail.html:122 common/models.py:165 order/api.py:142 -#: order/models.py:333 order/templates/order/order_base.html:222 -#: order/templates/order/return_order_base.html:191 -#: order/templates/order/sales_order_base.html:235 part/models.py:1246 -#: part/templates/part/part_base.html:399 +#: build/models.py:369 build/templates/build/build_base.html:213 +#: build/templates/build/detail.html:122 common/models.py:168 order/api.py:140 +#: order/models.py:340 order/templates/order/order_base.html:231 +#: order/templates/order/return_order_base.html:192 +#: order/templates/order/sales_order_base.html:236 part/models.py:1307 +#: part/templates/part/part_base.html:407 #: report/templates/report/inventree_build_order_report.html:158 #: templates/InvenTree/settings/settings_staff_js.html:150 -#: templates/js/translated/build.js:2391 -#: templates/js/translated/purchase_order.js:1833 +#: templates/js/translated/build.js:2394 +#: templates/js/translated/purchase_order.js:1817 #: templates/js/translated/return_order.js:358 #: templates/js/translated/table_filters.js:551 msgid "Responsible" msgstr "負責人" -#: build/models.py:371 +#: build/models.py:370 msgid "User or group responsible for this build order" msgstr "負責此生產工單的使用者或群組" -#: build/models.py:376 build/templates/build/detail.html:108 +#: build/models.py:375 build/templates/build/detail.html:108 #: company/templates/company/manufacturer_part.html:107 -#: company/templates/company/supplier_part.html:194 -#: order/templates/order/order_base.html:172 -#: order/templates/order/return_order_base.html:148 -#: order/templates/order/sales_order_base.html:187 -#: part/templates/part/part_base.html:392 stock/models.py:855 -#: stock/templates/stock/item_base.html:200 -#: templates/js/translated/company.js:1019 +#: company/templates/company/supplier_part.html:195 +#: order/templates/order/order_base.html:181 +#: order/templates/order/return_order_base.html:149 +#: order/templates/order/sales_order_base.html:188 +#: part/templates/part/part_base.html:400 stock/models.py:932 +#: stock/templates/stock/item_base.html:197 +#: templates/js/translated/company.js:1020 msgid "External Link" msgstr "外部連結" -#: build/models.py:377 common/models.py:3273 part/models.py:1058 -#: stock/models.py:855 +#: build/models.py:376 common/models.py:3334 part/models.py:1119 +#: stock/models.py:932 msgid "Link to external URL" msgstr "外部URL連結" -#: build/models.py:381 +#: build/models.py:380 msgid "Build Priority" msgstr "製造優先度" -#: build/models.py:384 +#: build/models.py:383 msgid "Priority of this build order" msgstr "此生產工單的優先程度" -#: build/models.py:391 common/models.py:135 common/models.py:149 -#: order/admin.py:18 order/api.py:128 order/models.py:297 +#: build/models.py:390 common/models.py:138 common/models.py:152 +#: order/admin.py:18 order/api.py:126 order/models.py:304 #: templates/InvenTree/settings/settings_staff_js.html:146 -#: templates/js/translated/build.js:2316 -#: templates/js/translated/purchase_order.js:1780 +#: templates/js/translated/build.js:2319 +#: templates/js/translated/purchase_order.js:1764 #: templates/js/translated/return_order.js:317 -#: templates/js/translated/sales_order.js:842 +#: templates/js/translated/sales_order.js:801 #: templates/js/translated/table_filters.js:47 #: templates/project_code_data.html:6 msgid "Project Code" msgstr "專案代碼" -#: build/models.py:392 +#: build/models.py:391 msgid "Project code for this build order" msgstr "此生產工單隸屬的專案代碼" -#: build/models.py:651 build/models.py:778 +#: build/models.py:651 build/models.py:779 msgid "Failed to offload task to complete build allocations" msgstr "未能卸载任务以完成生产分配" @@ -1110,610 +1129,619 @@ msgstr "生產工單 {build} 已經完成" msgid "A build order has been completed" msgstr "一張生產工單已經完成" -#: build/models.py:967 build/models.py:1055 +#: build/models.py:858 build/serializers.py:393 +msgid "Serial numbers must be provided for trackable parts" +msgstr "对于可跟踪的零件,必须提供序列号" + +#: build/models.py:969 build/models.py:1058 msgid "No build output specified" msgstr "未指定产出" -#: build/models.py:970 +#: build/models.py:972 msgid "Build output is already completed" msgstr "产出已完成" -#: build/models.py:973 +#: build/models.py:975 msgid "Build output does not match Build Order" msgstr "产出与生产订单不匹配" -#: build/models.py:1059 build/serializers.py:235 build/serializers.py:284 -#: build/serializers.py:915 order/models.py:564 order/serializers.py:499 -#: order/serializers.py:665 part/serializers.py:1569 part/serializers.py:1999 -#: stock/models.py:700 stock/models.py:1520 stock/serializers.py:669 +#: build/models.py:1062 build/serializers.py:282 build/serializers.py:331 +#: build/serializers.py:959 order/models.py:586 order/serializers.py:584 +#: order/serializers.py:750 part/serializers.py:1627 part/serializers.py:2060 +#: stock/models.py:777 stock/models.py:1609 stock/serializers.py:696 msgid "Quantity must be greater than zero" msgstr "數量必須大於零" -#: build/models.py:1064 build/serializers.py:240 +#: build/models.py:1067 build/serializers.py:287 msgid "Quantity cannot be greater than the output quantity" msgstr "数量不能大于输出数量" -#: build/models.py:1124 build/serializers.py:563 +#: build/models.py:1127 build/serializers.py:607 #, python-brace-format msgid "Build output {serial} has not passed all required tests" msgstr "产出 {serial} 未通过所有必要测试" -#: build/models.py:1465 +#: build/models.py:1482 msgid "Build Order Line Item" msgstr "生产订单行项目" -#: build/models.py:1490 +#: build/models.py:1507 msgid "Build object" msgstr "生产对象" -#: build/models.py:1504 build/models.py:1760 build/serializers.py:222 -#: build/serializers.py:269 build/serializers.py:1295 -#: build/templates/build/build_base.html:110 -#: build/templates/build/detail.html:34 common/models.py:2579 -#: order/models.py:1356 order/models.py:2041 order/serializers.py:1460 +#: build/models.py:1521 build/models.py:1787 build/serializers.py:269 +#: build/serializers.py:316 build/serializers.py:1349 +#: build/templates/build/build_base.html:111 +#: build/templates/build/detail.html:34 common/models.py:2643 +#: order/models.py:1373 order/models.py:2074 order/serializers.py:1586 #: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:413 -#: part/forms.py:48 part/models.py:3284 part/models.py:4253 -#: part/templates/part/part_pricing.html:16 +#: part/forms.py:48 part/models.py:3335 part/models.py:4310 +#: part/serializers.py:265 part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_bill_of_materials_report.html:138 #: report/templates/report/inventree_build_order_report.html:113 #: report/templates/report/inventree_purchase_order_report.html:29 #: report/templates/report/inventree_sales_order_report.html:29 +#: report/templates/report/inventree_sales_order_shipment_report.html:47 +#: report/templates/report/inventree_sales_order_shipment_report.html:49 #: report/templates/report/inventree_stock_location_report.html:104 #: report/templates/report/inventree_test_report.html:90 -#: report/templates/report/inventree_test_report.html:169 stock/admin.py:159 -#: stock/serializers.py:127 stock/serializers.py:167 stock/serializers.py:660 -#: stock/templates/stock/item_base.html:287 -#: stock/templates/stock/item_base.html:295 -#: stock/templates/stock/item_base.html:342 +#: report/templates/report/inventree_test_report.html:169 stock/admin.py:160 +#: stock/serializers.py:128 stock/serializers.py:168 stock/serializers.py:687 +#: stock/templates/stock/item_base.html:284 +#: stock/templates/stock/item_base.html:292 +#: stock/templates/stock/item_base.html:339 #: templates/email/build_order_completed.html:18 #: templates/js/translated/barcode.js:579 templates/js/translated/bom.js:771 -#: templates/js/translated/bom.js:981 templates/js/translated/build.js:522 -#: templates/js/translated/build.js:737 templates/js/translated/build.js:1542 -#: templates/js/translated/build.js:1919 templates/js/translated/build.js:2529 -#: templates/js/translated/company.js:1818 -#: templates/js/translated/model_renderers.js:237 +#: templates/js/translated/bom.js:981 templates/js/translated/build.js:525 +#: templates/js/translated/build.js:740 templates/js/translated/build.js:1545 +#: templates/js/translated/build.js:1922 templates/js/translated/build.js:2536 +#: templates/js/translated/company.js:1819 +#: templates/js/translated/model_renderers.js:240 #: templates/js/translated/order.js:329 templates/js/translated/part.js:968 -#: templates/js/translated/part.js:1818 templates/js/translated/part.js:3360 +#: templates/js/translated/part.js:1818 templates/js/translated/part.js:3376 #: templates/js/translated/pricing.js:381 #: templates/js/translated/pricing.js:474 #: templates/js/translated/pricing.js:522 #: templates/js/translated/pricing.js:616 -#: templates/js/translated/purchase_order.js:754 -#: templates/js/translated/purchase_order.js:1922 -#: templates/js/translated/purchase_order.js:2141 -#: templates/js/translated/sales_order.js:317 -#: templates/js/translated/sales_order.js:1235 -#: templates/js/translated/sales_order.js:1554 -#: templates/js/translated/sales_order.js:1644 -#: templates/js/translated/sales_order.js:1734 -#: templates/js/translated/sales_order.js:1860 +#: templates/js/translated/purchase_order.js:737 +#: templates/js/translated/purchase_order.js:1906 +#: templates/js/translated/purchase_order.js:2125 +#: templates/js/translated/sales_order.js:1201 +#: templates/js/translated/sales_order.js:1520 +#: templates/js/translated/sales_order.js:1625 +#: templates/js/translated/sales_order.js:1715 +#: templates/js/translated/sales_order.js:1841 #: templates/js/translated/stock.js:570 templates/js/translated/stock.js:708 -#: templates/js/translated/stock.js:879 templates/js/translated/stock.js:3105 -#: templates/js/translated/stock.js:3188 +#: templates/js/translated/stock.js:879 templates/js/translated/stock.js:3106 +#: templates/js/translated/stock.js:3189 msgid "Quantity" msgstr "數量" -#: build/models.py:1505 +#: build/models.py:1522 msgid "Required quantity for build order" msgstr "生產工單所需數量" -#: build/models.py:1585 +#: build/models.py:1602 msgid "Build item must specify a build output, as master part is marked as trackable" msgstr "生产项必须指定产出,因为主零件已经被标记为可追踪的" -#: build/models.py:1594 +#: build/models.py:1611 #, python-brace-format msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgstr "分配的數量({q})不能超過可用的庫存數量({a})" -#: build/models.py:1604 order/models.py:1992 +#: build/models.py:1628 order/models.py:2025 msgid "Stock item is over-allocated" msgstr "庫存品項超額分配" -#: build/models.py:1610 order/models.py:1995 +#: build/models.py:1634 order/models.py:2028 msgid "Allocation quantity must be greater than zero" msgstr "分配的數量必須大於零" -#: build/models.py:1616 +#: build/models.py:1640 msgid "Quantity must be 1 for serialized stock" msgstr "有序號的品項數量必須為1" -#: build/models.py:1675 +#: build/models.py:1699 msgid "Selected stock item does not match BOM line" msgstr "選擇的庫存品項和BOM的項目不符" -#: build/models.py:1747 build/serializers.py:895 order/serializers.py:1297 -#: order/serializers.py:1318 stock/models.py:376 stock/serializers.py:93 -#: stock/serializers.py:763 stock/serializers.py:1281 stock/serializers.py:1393 -#: stock/templates/stock/item_base.html:10 -#: stock/templates/stock/item_base.html:23 -#: stock/templates/stock/item_base.html:194 -#: templates/js/translated/build.js:1918 -#: templates/js/translated/sales_order.js:301 -#: templates/js/translated/sales_order.js:1234 -#: templates/js/translated/sales_order.js:1535 -#: templates/js/translated/sales_order.js:1540 -#: templates/js/translated/sales_order.js:1641 -#: templates/js/translated/sales_order.js:1728 +#: build/models.py:1774 build/serializers.py:939 order/serializers.py:1423 +#: order/serializers.py:1444 +#: report/templates/report/inventree_sales_order_shipment_report.html:29 +#: stock/models.py:382 stock/serializers.py:94 stock/serializers.py:794 +#: stock/serializers.py:1312 stock/serializers.py:1424 +#: stock/templates/stock/item_base.html:11 +#: stock/templates/stock/item_base.html:24 +#: stock/templates/stock/item_base.html:191 +#: templates/js/translated/build.js:1921 +#: templates/js/translated/sales_order.js:1200 +#: templates/js/translated/sales_order.js:1501 +#: templates/js/translated/sales_order.js:1506 +#: templates/js/translated/sales_order.js:1622 +#: templates/js/translated/sales_order.js:1709 #: templates/js/translated/stock.js:683 templates/js/translated/stock.js:849 -#: templates/js/translated/stock.js:3061 +#: templates/js/translated/stock.js:3062 msgid "Stock Item" msgstr "庫存品項" -#: build/models.py:1748 +#: build/models.py:1775 msgid "Source stock item" msgstr "來源庫存項目" -#: build/models.py:1761 +#: build/models.py:1788 msgid "Stock quantity to allocate to build" msgstr "要分配的庫存數量" -#: build/models.py:1769 +#: build/models.py:1796 msgid "Install into" msgstr "安裝到" -#: build/models.py:1770 +#: build/models.py:1797 msgid "Destination stock item" msgstr "目的庫存品項" -#: build/serializers.py:91 +#: build/serializers.py:108 msgid "Build Level" -msgstr "" +msgstr "生产等级" -#: build/serializers.py:99 build/serializers.py:1190 build/serializers.py:1279 -#: part/admin.py:41 part/admin.py:408 part/models.py:4102 part/stocktake.py:219 -#: stock/admin.py:156 +#: build/serializers.py:116 build/serializers.py:1235 build/serializers.py:1331 +#: part/admin.py:41 part/admin.py:408 part/models.py:4160 part/stocktake.py:219 +#: stock/admin.py:157 msgid "Part Name" msgstr "零件名称" -#: build/serializers.py:111 +#: build/serializers.py:128 msgid "Project Code Label" msgstr "项目编码标签" -#: build/serializers.py:172 build/serializers.py:924 -#: templates/js/translated/build.js:1042 templates/js/translated/build.js:1495 +#: build/serializers.py:134 +msgid "Create Child Builds" +msgstr "新建子生产项目" + +#: build/serializers.py:135 +msgid "Automatically generate child build orders" +msgstr "自动生成子生成工单" + +#: build/serializers.py:219 build/serializers.py:968 +#: templates/js/translated/build.js:1045 templates/js/translated/build.js:1498 msgid "Build Output" msgstr "产出" -#: build/serializers.py:184 +#: build/serializers.py:231 msgid "Build output does not match the parent build" msgstr "产出与之前的生产不匹配" -#: build/serializers.py:188 +#: build/serializers.py:235 msgid "Output part does not match BuildOrder part" msgstr "产出零件与生产订单零件不匹配" -#: build/serializers.py:192 +#: build/serializers.py:239 msgid "This build output has already been completed" msgstr "此产出已经完成" -#: build/serializers.py:203 +#: build/serializers.py:250 msgid "This build output is not fully allocated" msgstr "此产出尚未完全分配" -#: build/serializers.py:223 build/serializers.py:270 +#: build/serializers.py:270 build/serializers.py:317 msgid "Enter quantity for build output" msgstr "输入产出数量" -#: build/serializers.py:291 +#: build/serializers.py:338 msgid "Integer quantity required for trackable parts" msgstr "可追蹤的零件數量必須為整數" -#: build/serializers.py:294 +#: build/serializers.py:341 msgid "Integer quantity required, as the bill of materials contains trackable parts" msgstr "因為BOM包含可追蹤的零件,所以數量必須為整數" -#: build/serializers.py:309 order/serializers.py:678 order/serializers.py:1464 -#: stock/serializers.py:680 templates/js/translated/purchase_order.js:1154 +#: build/serializers.py:356 order/serializers.py:763 order/serializers.py:1590 +#: stock/serializers.py:707 templates/js/translated/purchase_order.js:1137 #: templates/js/translated/stock.js:373 templates/js/translated/stock.js:571 msgid "Serial Numbers" msgstr "序號" -#: build/serializers.py:310 +#: build/serializers.py:357 msgid "Enter serial numbers for build outputs" msgstr "输出产出的序列号" -#: build/serializers.py:315 build/serializers.py:456 build/serializers.py:528 -#: order/serializers.py:654 order/serializers.py:778 order/serializers.py:1781 -#: part/serializers.py:1212 stock/serializers.py:102 stock/serializers.py:691 -#: stock/serializers.py:851 stock/serializers.py:977 stock/serializers.py:1425 -#: stock/serializers.py:1681 stock/templates/stock/item_base.html:394 +#: build/serializers.py:362 build/serializers.py:500 build/serializers.py:572 +#: order/serializers.py:739 order/serializers.py:880 order/serializers.py:1933 +#: part/serializers.py:1265 stock/serializers.py:103 stock/serializers.py:718 +#: stock/serializers.py:882 stock/serializers.py:1008 stock/serializers.py:1456 +#: stock/serializers.py:1712 stock/templates/stock/item_base.html:391 #: templates/js/translated/barcode.js:578 -#: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1032 -#: templates/js/translated/build.js:1174 templates/js/translated/build.js:2544 -#: templates/js/translated/purchase_order.js:1210 -#: templates/js/translated/purchase_order.js:1320 -#: templates/js/translated/sales_order.js:1547 -#: templates/js/translated/sales_order.js:1655 -#: templates/js/translated/sales_order.js:1663 -#: templates/js/translated/sales_order.js:1742 +#: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1035 +#: templates/js/translated/build.js:1177 templates/js/translated/build.js:2551 +#: templates/js/translated/purchase_order.js:1193 +#: templates/js/translated/purchase_order.js:1303 +#: templates/js/translated/sales_order.js:1513 +#: templates/js/translated/sales_order.js:1636 +#: templates/js/translated/sales_order.js:1644 +#: templates/js/translated/sales_order.js:1723 #: templates/js/translated/stock.js:684 templates/js/translated/stock.js:850 -#: templates/js/translated/stock.js:1067 templates/js/translated/stock.js:2286 -#: templates/js/translated/stock.js:2955 +#: templates/js/translated/stock.js:1067 templates/js/translated/stock.js:2287 +#: templates/js/translated/stock.js:2956 msgid "Location" msgstr "地點" -#: build/serializers.py:316 +#: build/serializers.py:363 msgid "Stock location for build output" msgstr "生产输出的库存地点" -#: build/serializers.py:330 +#: build/serializers.py:377 msgid "Auto Allocate Serial Numbers" msgstr "自動分配序號" -#: build/serializers.py:331 +#: build/serializers.py:378 msgid "Automatically allocate required items with matching serial numbers" msgstr "自動為需要項目分配對應的序號" -#: build/serializers.py:346 -msgid "Serial numbers must be provided for trackable parts" -msgstr "对于可跟踪的零件,必须提供序列号" - -#: build/serializers.py:371 stock/api.py:1031 +#: build/serializers.py:415 order/serializers.py:858 stock/api.py:1017 +#: stock/models.py:1632 msgid "The following serial numbers already exist or are invalid" msgstr "序號已存在或無效" -#: build/serializers.py:418 build/serializers.py:480 build/serializers.py:569 +#: build/serializers.py:462 build/serializers.py:524 build/serializers.py:613 msgid "A list of build outputs must be provided" msgstr "必须提供产出清单" -#: build/serializers.py:457 +#: build/serializers.py:501 msgid "Stock location for scrapped outputs" msgstr "废品产出的库存位置" -#: build/serializers.py:463 +#: build/serializers.py:507 msgid "Discard Allocations" msgstr "放棄分配" -#: build/serializers.py:464 +#: build/serializers.py:508 msgid "Discard any stock allocations for scrapped outputs" msgstr "取消对废品产出的任何库存分配" -#: build/serializers.py:469 +#: build/serializers.py:513 msgid "Reason for scrapping build output(s)" msgstr "废品产出的原因" -#: build/serializers.py:529 +#: build/serializers.py:573 msgid "Location for completed build outputs" msgstr "已完成删除的库存地点" -#: build/serializers.py:535 build/templates/build/build_base.html:159 -#: build/templates/build/detail.html:62 order/models.py:476 -#: order/models.py:1002 order/models.py:2159 order/serializers.py:686 -#: stock/admin.py:164 stock/serializers.py:1028 stock/serializers.py:1569 -#: stock/templates/stock/item_base.html:427 -#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2363 -#: templates/js/translated/purchase_order.js:1371 -#: templates/js/translated/purchase_order.js:1792 +#: build/serializers.py:579 build/templates/build/build_base.html:160 +#: build/templates/build/detail.html:62 order/models.py:488 +#: order/models.py:1029 order/models.py:2198 order/serializers.py:771 +#: stock/admin.py:165 stock/serializers.py:581 stock/serializers.py:1059 +#: stock/serializers.py:1600 stock/templates/stock/item_base.html:424 +#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2366 +#: templates/js/translated/purchase_order.js:1354 +#: templates/js/translated/purchase_order.js:1776 #: templates/js/translated/return_order.js:330 -#: templates/js/translated/sales_order.js:855 -#: templates/js/translated/stock.js:2261 templates/js/translated/stock.js:3079 -#: templates/js/translated/stock.js:3204 +#: templates/js/translated/sales_order.js:814 +#: templates/js/translated/stock.js:2262 templates/js/translated/stock.js:3080 +#: templates/js/translated/stock.js:3205 msgid "Status" msgstr "狀態" -#: build/serializers.py:541 +#: build/serializers.py:585 msgid "Accept Incomplete Allocation" msgstr "接受不完整的分配" -#: build/serializers.py:542 +#: build/serializers.py:586 msgid "Complete outputs if stock has not been fully allocated" msgstr "如果库存尚未全部分配,则完成产出" -#: build/serializers.py:654 +#: build/serializers.py:698 msgid "Consume Allocated Stock" msgstr "消费已分配的库存" -#: build/serializers.py:655 +#: build/serializers.py:699 msgid "Consume any stock which has already been allocated to this build" msgstr "消耗已分配给此生产的任何库存" -#: build/serializers.py:661 +#: build/serializers.py:705 msgid "Remove Incomplete Outputs" msgstr "移除未完成的产出" -#: build/serializers.py:662 +#: build/serializers.py:706 msgid "Delete any build outputs which have not been completed" msgstr "删除所有未完成的产出" -#: build/serializers.py:689 +#: build/serializers.py:733 msgid "Not permitted" msgstr "不允许" -#: build/serializers.py:690 +#: build/serializers.py:734 msgid "Accept as consumed by this build order" msgstr "接受作为此生产订单的消费" -#: build/serializers.py:691 +#: build/serializers.py:735 msgid "Deallocate before completing this build order" msgstr "完成此生产订单前取消分配" -#: build/serializers.py:721 +#: build/serializers.py:765 msgid "Overallocated Stock" msgstr "超出分配的库存" -#: build/serializers.py:723 +#: build/serializers.py:767 msgid "How do you want to handle extra stock items assigned to the build order" msgstr "如何处理分配给生产订单的额外库存项" -#: build/serializers.py:733 +#: build/serializers.py:777 msgid "Some stock items have been overallocated" msgstr "有库存项目已被过度分配" -#: build/serializers.py:738 +#: build/serializers.py:782 msgid "Accept Unallocated" msgstr "接受未分配" -#: build/serializers.py:739 +#: build/serializers.py:783 msgid "Accept that stock items have not been fully allocated to this build order" msgstr "接受库存项未被完全分配至生产订单" -#: build/serializers.py:749 templates/js/translated/build.js:316 +#: build/serializers.py:793 templates/js/translated/build.js:319 msgid "Required stock has not been fully allocated" msgstr "所需库存尚未完全分配" -#: build/serializers.py:754 order/serializers.py:345 order/serializers.py:1365 +#: build/serializers.py:798 order/serializers.py:430 order/serializers.py:1491 msgid "Accept Incomplete" msgstr "接受不完整" -#: build/serializers.py:755 +#: build/serializers.py:799 msgid "Accept that the required number of build outputs have not been completed" msgstr "允许所需数量的产出未完成" -#: build/serializers.py:765 templates/js/translated/build.js:320 +#: build/serializers.py:809 templates/js/translated/build.js:323 msgid "Required build quantity has not been completed" msgstr "未完成所需生产数量" -#: build/serializers.py:774 +#: build/serializers.py:818 msgid "Build order has open child build orders" msgstr "生产订单有打开的子生产订单" -#: build/serializers.py:777 +#: build/serializers.py:821 msgid "Build order must be in production state" msgstr "生产订单必须处于生产状态" -#: build/serializers.py:780 templates/js/translated/build.js:304 +#: build/serializers.py:824 templates/js/translated/build.js:307 msgid "Build order has incomplete outputs" msgstr "生产订单有未完成的产出" -#: build/serializers.py:818 +#: build/serializers.py:862 msgid "Build Line" msgstr "生产行" -#: build/serializers.py:828 +#: build/serializers.py:872 msgid "Build output" msgstr "产出" -#: build/serializers.py:836 +#: build/serializers.py:880 msgid "Build output must point to the same build" msgstr "生产产出必须指向相同的生产" -#: build/serializers.py:872 +#: build/serializers.py:916 msgid "Build Line Item" msgstr "生产行项目" -#: build/serializers.py:886 +#: build/serializers.py:930 msgid "bom_item.part must point to the same part as the build order" msgstr "bom_item.part 必须与生产订单零件相同" -#: build/serializers.py:901 stock/serializers.py:1294 +#: build/serializers.py:945 stock/serializers.py:1325 msgid "Item must be in stock" -msgstr "商品必須有庫存" +msgstr "项目必须在库存中" -#: build/serializers.py:949 order/serializers.py:1351 +#: build/serializers.py:993 order/serializers.py:1477 #, python-brace-format msgid "Available quantity ({q}) exceeded" msgstr "可用量 ({q}) 超出限制" -#: build/serializers.py:955 +#: build/serializers.py:999 msgid "Build output must be specified for allocation of tracked parts" msgstr "对于被追踪的零件的分配,必须指定生产产出" -#: build/serializers.py:962 +#: build/serializers.py:1006 msgid "Build output cannot be specified for allocation of untracked parts" msgstr "对于未被追踪的零件,无法指定生产产出" -#: build/serializers.py:986 order/serializers.py:1610 +#: build/serializers.py:1030 order/serializers.py:1750 msgid "Allocation items must be provided" msgstr "必须提供分配项目" -#: build/serializers.py:1049 +#: build/serializers.py:1093 msgid "Stock location where parts are to be sourced (leave blank to take from any location)" msgstr "零件来源的库存地点(留空则可来源于任何库存地点)" -#: build/serializers.py:1057 +#: build/serializers.py:1101 msgid "Exclude Location" msgstr "排除位置" -#: build/serializers.py:1058 +#: build/serializers.py:1102 msgid "Exclude stock items from this selected location" msgstr "从该选定的库存地点排除库存项" -#: build/serializers.py:1063 +#: build/serializers.py:1107 msgid "Interchangeable Stock" msgstr "可互換庫存" -#: build/serializers.py:1064 +#: build/serializers.py:1108 msgid "Stock items in multiple locations can be used interchangeably" msgstr "在多个位置的库存项目可以互换使用" -#: build/serializers.py:1069 +#: build/serializers.py:1113 msgid "Substitute Stock" msgstr "替代品库存" -#: build/serializers.py:1070 +#: build/serializers.py:1114 msgid "Allow allocation of substitute parts" msgstr "允许分配可替换的零件" -#: build/serializers.py:1075 +#: build/serializers.py:1119 msgid "Optional Items" msgstr "可选项目" -#: build/serializers.py:1076 +#: build/serializers.py:1120 msgid "Allocate optional BOM items to build order" msgstr "分配可选的物料清单给生产订单" -#: build/serializers.py:1098 +#: build/serializers.py:1143 msgid "Failed to start auto-allocation task" msgstr "启动自动分配任务失败" -#: build/serializers.py:1181 +#: build/serializers.py:1226 stock/serializers.py:585 msgid "Supplier Part Number" msgstr "供应商零件编号" -#: build/serializers.py:1182 company/models.py:506 +#: build/serializers.py:1227 company/models.py:503 stock/serializers.py:591 msgid "Manufacturer Part Number" msgstr "制造商零件编号" -#: build/serializers.py:1183 stock/admin.py:53 stock/admin.py:175 -#: stock/serializers.py:457 +#: build/serializers.py:1228 stock/admin.py:53 stock/admin.py:176 +#: stock/serializers.py:467 msgid "Location Name" msgstr "位置名称" -#: build/serializers.py:1184 +#: build/serializers.py:1229 build/serializers.py:1327 msgid "Build Reference" msgstr "构建参考" -#: build/serializers.py:1185 +#: build/serializers.py:1230 msgid "BOM Reference" msgstr "物料清单参考" -#: build/serializers.py:1186 company/models.py:852 -#: company/templates/company/supplier_part.html:160 order/serializers.py:690 -#: stock/admin.py:228 stock/models.py:818 stock/serializers.py:1579 -#: stock/templates/stock/item_base.html:240 -#: templates/js/translated/company.js:1646 -#: templates/js/translated/purchase_order.js:1169 -#: templates/js/translated/purchase_order.js:1332 +#: build/serializers.py:1231 company/models.py:849 +#: company/templates/company/supplier_part.html:161 order/serializers.py:775 +#: stock/admin.py:229 stock/models.py:895 stock/serializers.py:1610 +#: stock/templates/stock/item_base.html:237 +#: templates/js/translated/company.js:1647 +#: templates/js/translated/purchase_order.js:1152 +#: templates/js/translated/purchase_order.js:1315 #: templates/js/translated/stock.js:1214 templates/js/translated/stock.js:1246 -#: templates/js/translated/stock.js:2509 +#: templates/js/translated/stock.js:2510 msgid "Packaging" msgstr "打包" -#: build/serializers.py:1189 part/admin.py:39 part/admin.py:398 -#: part/models.py:4101 part/stocktake.py:218 stock/admin.py:152 +#: build/serializers.py:1234 part/admin.py:39 part/admin.py:398 +#: part/models.py:4159 part/stocktake.py:218 stock/admin.py:153 msgid "Part ID" msgstr "零件编号" -#: build/serializers.py:1191 build/serializers.py:1280 part/admin.py:402 -#: part/models.py:4103 +#: build/serializers.py:1236 build/serializers.py:1332 part/admin.py:402 +#: part/models.py:4161 msgid "Part IPN" msgstr "零件的内部零件号" -#: build/serializers.py:1192 build/serializers.py:1282 part/admin.py:45 +#: build/serializers.py:1237 build/serializers.py:1334 part/admin.py:45 #: part/stocktake.py:220 msgid "Part Description" msgstr "零件描述" -#: build/serializers.py:1195 +#: build/serializers.py:1240 msgid "BOM Part ID" msgstr "物料清单零件识别号码" -#: build/serializers.py:1196 +#: build/serializers.py:1241 msgid "BOM Part Name" msgstr "物料清单零件名称" -#: build/serializers.py:1199 +#: build/serializers.py:1244 #: report/templates/report/inventree_return_order_report.html:25 -#: report/templates/report/inventree_test_report.html:88 stock/models.py:845 -#: stock/serializers.py:151 stock/templates/stock/item_base.html:311 -#: templates/js/translated/build.js:520 templates/js/translated/build.js:1540 -#: templates/js/translated/build.js:2527 -#: templates/js/translated/model_renderers.js:231 +#: report/templates/report/inventree_sales_order_shipment_report.html:45 +#: report/templates/report/inventree_test_report.html:88 stock/models.py:922 +#: stock/serializers.py:152 stock/templates/stock/item_base.html:308 +#: templates/js/translated/build.js:523 templates/js/translated/build.js:1543 +#: templates/js/translated/build.js:2534 +#: templates/js/translated/model_renderers.js:234 #: templates/js/translated/return_order.js:539 #: templates/js/translated/return_order.js:722 -#: templates/js/translated/sales_order.js:315 -#: templates/js/translated/sales_order.js:1647 -#: templates/js/translated/sales_order.js:1732 +#: templates/js/translated/sales_order.js:1628 +#: templates/js/translated/sales_order.js:1713 #: templates/js/translated/stock.js:602 msgid "Serial Number" msgstr "序列号" -#: build/serializers.py:1212 stock/serializers.py:593 -#: templates/js/translated/build.js:1017 templates/js/translated/build.js:1164 -#: templates/js/translated/build.js:2516 +#: build/serializers.py:1257 stock/serializers.py:620 +#: templates/js/translated/build.js:1020 templates/js/translated/build.js:1167 +#: templates/js/translated/build.js:2523 msgid "Allocated Quantity" msgstr "已分配数量" -#: build/serializers.py:1213 stock/templates/stock/item_base.html:340 +#: build/serializers.py:1258 stock/templates/stock/item_base.html:337 msgid "Available Quantity" msgstr "可用数量" -#: build/serializers.py:1283 +#: build/serializers.py:1335 msgid "Part Category ID" msgstr "零件类别编号" -#: build/serializers.py:1284 +#: build/serializers.py:1336 msgid "Part Category Name" msgstr "零件类别名称" -#: build/serializers.py:1291 common/models.py:1513 part/admin.py:113 -#: part/models.py:1166 templates/js/translated/table_filters.js:150 +#: build/serializers.py:1345 common/models.py:1582 part/admin.py:113 +#: part/models.py:1227 templates/js/translated/build.js:2738 +#: templates/js/translated/table_filters.js:150 #: templates/js/translated/table_filters.js:230 #: templates/js/translated/table_filters.js:783 msgid "Trackable" msgstr "可追踪" -#: build/serializers.py:1292 +#: build/serializers.py:1346 msgid "Inherited" msgstr "已继承的" -#: build/serializers.py:1293 part/models.py:4313 +#: build/serializers.py:1347 part/models.py:4370 #: part/templates/part/upload_bom.html:56 templates/js/translated/bom.js:1046 -#: templates/js/translated/build.js:2711 +#: templates/js/translated/build.js:2720 msgid "Allow Variants" msgstr "允许变体" -#: build/serializers.py:1297 part/models.py:4110 part/models.py:4584 +#: build/serializers.py:1351 part/models.py:4168 part/models.py:4646 #: stock/api.py:794 msgid "BOM Item" msgstr "物料清单项" -#: build/serializers.py:1306 build/templates/build/detail.html:236 +#: build/serializers.py:1370 build/templates/build/detail.html:236 #: build/templates/build/sidebar.html:16 templates/js/translated/index.js:130 msgid "Allocated Stock" msgstr "分配库存" -#: build/serializers.py:1311 order/serializers.py:1175 part/admin.py:132 -#: part/bom.py:181 part/serializers.py:899 part/serializers.py:1602 -#: part/templates/part/part_base.html:210 templates/js/translated/bom.js:1208 -#: templates/js/translated/build.js:2804 templates/js/translated/part.js:712 +#: build/serializers.py:1375 order/serializers.py:1209 part/admin.py:132 +#: part/bom.py:186 part/serializers.py:951 part/serializers.py:1660 +#: part/templates/part/part_base.html:211 templates/js/translated/bom.js:1208 +#: templates/js/translated/build.js:2822 templates/js/translated/part.js:712 #: templates/js/translated/part.js:2155 #: templates/js/translated/table_filters.js:177 msgid "On Order" msgstr "已订购" -#: build/serializers.py:1316 order/serializers.py:1176 part/serializers.py:1604 -#: templates/js/translated/build.js:2808 +#: build/serializers.py:1380 order/serializers.py:1210 part/serializers.py:1662 +#: templates/js/translated/build.js:2826 #: templates/js/translated/table_filters.js:367 msgid "In Production" msgstr "生产中" -#: build/serializers.py:1321 part/bom.py:180 part/serializers.py:1629 -#: part/templates/part/part_base.html:192 -#: templates/js/translated/sales_order.js:1929 -msgid "Available Stock" -msgstr "可用库存" - -#: build/serializers.py:1325 -msgid "Available Substitute Stock" -msgstr "可用的替代品库存" - -#: build/serializers.py:1326 -msgid "Available Variant Stock" -msgstr "可用的变体库存" - -#: build/serializers.py:1327 -msgid "Total Available Stock" -msgstr "全部可用库存" - -#: build/serializers.py:1328 part/serializers.py:906 +#: build/serializers.py:1384 part/serializers.py:958 msgid "External Stock" msgstr "外部库存" -#: build/status_codes.py:11 generic/states/tests.py:17 order/status_codes.py:12 -#: order/status_codes.py:42 order/status_codes.py:74 order/status_codes.py:98 +#: build/serializers.py:1385 part/bom.py:185 part/serializers.py:1687 +#: part/templates/part/part_base.html:193 +#: templates/js/translated/sales_order.js:1910 +msgid "Available Stock" +msgstr "可用库存" + +#: build/serializers.py:1386 +msgid "Available Substitute Stock" +msgstr "可用的替代品库存" + +#: build/serializers.py:1387 +msgid "Available Variant Stock" +msgstr "可用的变体库存" + +#: build/status_codes.py:11 generic/states/tests.py:21 +#: generic/states/tests.py:131 order/status_codes.py:12 +#: order/status_codes.py:44 order/status_codes.py:76 order/status_codes.py:102 #: templates/js/translated/table_filters.js:601 msgid "Pending" msgstr "待定" @@ -1722,21 +1750,21 @@ msgstr "待定" msgid "Production" msgstr "生產" -#: build/status_codes.py:13 order/status_codes.py:14 order/status_codes.py:49 -#: order/status_codes.py:79 +#: build/status_codes.py:13 order/status_codes.py:14 order/status_codes.py:51 +#: order/status_codes.py:81 msgid "On Hold" msgstr "被挂起" -#: build/status_codes.py:14 order/status_codes.py:16 order/status_codes.py:51 -#: order/status_codes.py:82 +#: build/status_codes.py:14 order/status_codes.py:16 order/status_codes.py:53 +#: order/status_codes.py:84 msgid "Cancelled" msgstr "已取消" -#: build/status_codes.py:15 generic/states/tests.py:19 importer/models.py:509 -#: importer/status_codes.py:19 order/status_codes.py:15 -#: order/status_codes.py:50 order/status_codes.py:81 -#: order/templates/order/order_base.html:163 -#: order/templates/order/sales_order_base.html:168 report/models.py:443 +#: build/status_codes.py:15 generic/states/tests.py:23 importer/models.py:518 +#: importer/status_codes.py:27 order/status_codes.py:15 +#: order/status_codes.py:52 order/status_codes.py:83 +#: order/templates/order/order_base.html:172 +#: order/templates/order/sales_order_base.html:169 report/models.py:451 msgid "Complete" msgstr "完成" @@ -1744,165 +1772,162 @@ msgstr "完成" msgid "Stock required for build order" msgstr "生产订单所需库存" -#: build/tasks.py:201 +#: build/tasks.py:260 msgid "Overdue Build Order" msgstr "逾期的生产订单" -#: build/tasks.py:206 +#: build/tasks.py:265 #, python-brace-format msgid "Build order {bo} is now overdue" msgstr "生产订单 {bo} 现已逾期" -#: build/templates/build/build_base.html:18 +#: build/templates/build/build_base.html:19 msgid "Part thumbnail" msgstr "零件缩略图" -#: build/templates/build/build_base.html:38 -#: company/templates/company/supplier_part.html:35 -#: order/templates/order/order_base.html:29 -#: order/templates/order/return_order_base.html:38 -#: order/templates/order/sales_order_base.html:38 -#: part/templates/part/part_base.html:41 -#: stock/templates/stock/item_base.html:40 -#: stock/templates/stock/location.html:52 +#: build/templates/build/build_base.html:39 +#: company/templates/company/supplier_part.html:36 +#: order/templates/order/order_base.html:30 +#: order/templates/order/return_order_base.html:39 +#: order/templates/order/sales_order_base.html:39 +#: part/templates/part/part_base.html:42 +#: stock/templates/stock/item_base.html:41 +#: stock/templates/stock/location.html:53 #: templates/js/translated/filters.js:338 msgid "Barcode actions" msgstr "条形码操作" -#: build/templates/build/build_base.html:42 -#: company/templates/company/supplier_part.html:39 -#: order/templates/order/order_base.html:33 -#: order/templates/order/return_order_base.html:42 -#: order/templates/order/sales_order_base.html:42 -#: part/templates/part/part_base.html:44 -#: stock/templates/stock/item_base.html:44 -#: stock/templates/stock/location.html:54 templates/qr_button.html:1 +#: build/templates/build/build_base.html:43 +#: company/templates/company/supplier_part.html:40 +#: order/templates/order/order_base.html:34 +#: order/templates/order/return_order_base.html:43 +#: order/templates/order/sales_order_base.html:43 +#: part/templates/part/part_base.html:45 +#: stock/templates/stock/item_base.html:45 +#: stock/templates/stock/location.html:55 templates/qr_button.html:1 msgid "Show QR Code" msgstr "显示二维码" -#: build/templates/build/build_base.html:45 -#: company/templates/company/supplier_part.html:41 -#: order/templates/order/order_base.html:36 -#: order/templates/order/return_order_base.html:45 -#: order/templates/order/sales_order_base.html:45 -#: part/templates/part/part_base.html:47 -#: stock/templates/stock/item_base.html:47 -#: stock/templates/stock/location.html:56 +#: build/templates/build/build_base.html:46 +#: company/templates/company/supplier_part.html:42 +#: order/templates/order/order_base.html:37 +#: order/templates/order/return_order_base.html:46 +#: order/templates/order/sales_order_base.html:46 +#: part/templates/part/part_base.html:48 +#: stock/templates/stock/item_base.html:48 +#: stock/templates/stock/location.html:57 #: templates/js/translated/barcode.js:527 #: templates/js/translated/barcode.js:532 msgid "Unlink Barcode" msgstr "取消关联条形码" -#: build/templates/build/build_base.html:47 -#: company/templates/company/supplier_part.html:43 -#: order/templates/order/order_base.html:38 -#: order/templates/order/return_order_base.html:47 -#: order/templates/order/sales_order_base.html:47 -#: part/templates/part/part_base.html:49 -#: stock/templates/stock/item_base.html:49 -#: stock/templates/stock/location.html:58 +#: build/templates/build/build_base.html:48 +#: company/templates/company/supplier_part.html:44 +#: order/templates/order/order_base.html:39 +#: order/templates/order/return_order_base.html:48 +#: order/templates/order/sales_order_base.html:48 +#: part/templates/part/part_base.html:50 +#: stock/templates/stock/item_base.html:50 +#: stock/templates/stock/location.html:59 msgid "Link Barcode" msgstr "关联条形码" -#: build/templates/build/build_base.html:56 -#: order/templates/order/order_base.html:46 -#: order/templates/order/return_order_base.html:55 -#: order/templates/order/sales_order_base.html:55 +#: build/templates/build/build_base.html:57 +#: order/templates/order/order_base.html:47 +#: order/templates/order/return_order_base.html:56 +#: order/templates/order/sales_order_base.html:56 msgid "Print actions" msgstr "打印操作" -#: build/templates/build/build_base.html:60 +#: build/templates/build/build_base.html:61 msgid "Print build order report" msgstr "打印生产订单报告" -#: build/templates/build/build_base.html:67 +#: build/templates/build/build_base.html:68 msgid "Build actions" msgstr "生产操作" -#: build/templates/build/build_base.html:71 +#: build/templates/build/build_base.html:72 msgid "Edit Build" msgstr "编辑生产操作" -#: build/templates/build/build_base.html:73 +#: build/templates/build/build_base.html:74 msgid "Duplicate Build" msgstr "复制生产操作" -#: build/templates/build/build_base.html:76 +#: build/templates/build/build_base.html:77 msgid "Hold Build" msgstr "挂起生产" -#: build/templates/build/build_base.html:79 +#: build/templates/build/build_base.html:80 msgid "Cancel Build" msgstr "取消生产操作" -#: build/templates/build/build_base.html:82 +#: build/templates/build/build_base.html:83 msgid "Delete Build" msgstr "删除生产操作" -#: build/templates/build/build_base.html:87 -msgid "Isueue Build" -msgstr "" - #: build/templates/build/build_base.html:88 +#: build/templates/build/build_base.html:89 msgid "Issue Build" msgstr "发布生产" -#: build/templates/build/build_base.html:91 #: build/templates/build/build_base.html:92 +#: build/templates/build/build_base.html:93 msgid "Complete Build" msgstr "生产操作完成" -#: build/templates/build/build_base.html:115 +#: build/templates/build/build_base.html:116 msgid "Build Description" msgstr "生产操作描述" -#: build/templates/build/build_base.html:125 +#: build/templates/build/build_base.html:126 msgid "No build outputs have been created for this build order" msgstr "没有为此生产订单创建生产产出" -#: build/templates/build/build_base.html:132 +#: build/templates/build/build_base.html:133 msgid "Build Order is ready to mark as completed" msgstr "生产订单已准备好标记为已完成" -#: build/templates/build/build_base.html:137 +#: build/templates/build/build_base.html:138 msgid "Build Order cannot be completed as outstanding outputs remain" msgstr "由于仍有未完成的产出,生产订单无法完成" -#: build/templates/build/build_base.html:142 +#: build/templates/build/build_base.html:143 msgid "Required build quantity has not yet been completed" msgstr "未完成所需生产数量" -#: build/templates/build/build_base.html:147 +#: build/templates/build/build_base.html:148 msgid "Stock has not been fully allocated to this Build Order" msgstr "库存尚未被完全分配到此生产订单" -#: build/templates/build/build_base.html:168 -#: build/templates/build/detail.html:138 order/models.py:308 -#: order/models.py:1391 order/serializers.py:174 -#: order/templates/order/order_base.html:191 -#: order/templates/order/return_order_base.html:167 -#: order/templates/order/sales_order_base.html:199 +#: build/templates/build/build_base.html:169 +#: build/templates/build/detail.html:138 order/models.py:315 +#: order/models.py:1408 order/serializers.py:254 +#: order/templates/order/order_base.html:200 +#: order/templates/order/return_order_base.html:168 +#: order/templates/order/sales_order_base.html:200 #: report/templates/report/inventree_build_order_report.html:125 -#: templates/js/translated/build.js:2411 templates/js/translated/part.js:1837 -#: templates/js/translated/purchase_order.js:1809 -#: templates/js/translated/purchase_order.js:2217 +#: templates/js/translated/build.js:2414 templates/js/translated/part.js:1837 +#: templates/js/translated/purchase_order.js:1793 +#: templates/js/translated/purchase_order.js:2201 #: templates/js/translated/return_order.js:346 #: templates/js/translated/return_order.js:749 -#: templates/js/translated/sales_order.js:871 -#: templates/js/translated/sales_order.js:1903 +#: templates/js/translated/sales_order.js:830 +#: templates/js/translated/sales_order.js:1884 msgid "Target Date" msgstr "预计日期" -#: build/templates/build/build_base.html:173 +#: build/templates/build/build_base.html:174 #, python-format msgid "This build was due on %(target)s" msgstr "此次生产的截止日期为 %(target)s" -#: build/templates/build/build_base.html:173 -#: build/templates/build/build_base.html:230 -#: order/templates/order/order_base.html:127 -#: order/templates/order/return_order_base.html:120 -#: order/templates/order/sales_order_base.html:129 +#: build/templates/build/build_base.html:174 +#: build/templates/build/build_base.html:231 +#: order/templates/order/order_base.html:128 +#: order/templates/order/return_order_base.html:121 +#: order/templates/order/sales_order_base.html:130 #: templates/js/translated/table_filters.js:97 #: templates/js/translated/table_filters.js:545 #: templates/js/translated/table_filters.js:629 @@ -1910,49 +1935,50 @@ msgstr "此次生产的截止日期为 %(target)s" msgid "Overdue" msgstr "逾期" -#: build/templates/build/build_base.html:185 +#: build/templates/build/build_base.html:186 #: build/templates/build/detail.html:67 build/templates/build/sidebar.html:13 msgid "Completed Outputs" msgstr "产出已完成" -#: build/templates/build/build_base.html:198 -#: build/templates/build/detail.html:101 order/api.py:1406 order/models.py:892 -#: order/models.py:1650 order/models.py:1765 order/models.py:1924 -#: order/templates/order/sales_order_base.html:9 -#: order/templates/order/sales_order_base.html:28 +#: build/templates/build/build_base.html:199 +#: build/templates/build/detail.html:101 order/api.py:1528 order/models.py:914 +#: order/models.py:1666 order/models.py:1794 order/models.py:1957 +#: order/templates/order/sales_order_base.html:10 +#: order/templates/order/sales_order_base.html:29 #: report/templates/report/inventree_build_order_report.html:135 #: report/templates/report/inventree_sales_order_report.html:14 -#: stock/templates/stock/item_base.html:369 +#: report/templates/report/inventree_sales_order_shipment_report.html:15 +#: stock/templates/stock/item_base.html:366 #: templates/email/overdue_sales_order.html:15 -#: templates/js/translated/pricing.js:929 -#: templates/js/translated/sales_order.js:805 -#: templates/js/translated/sales_order.js:1028 -#: templates/js/translated/stock.js:3008 +#: templates/js/translated/pricing.js:927 +#: templates/js/translated/sales_order.js:764 +#: templates/js/translated/sales_order.js:1001 +#: templates/js/translated/stock.js:3009 msgid "Sales Order" msgstr "销售订单" -#: build/templates/build/build_base.html:219 -#: build/templates/build/detail.html:94 templates/js/translated/build.js:2328 +#: build/templates/build/build_base.html:220 +#: build/templates/build/detail.html:94 templates/js/translated/build.js:2331 msgid "Priority" msgstr "優先等級" -#: build/templates/build/build_base.html:267 +#: build/templates/build/build_base.html:268 msgid "Issue Build Order" msgstr "发布生产订单" -#: build/templates/build/build_base.html:271 +#: build/templates/build/build_base.html:272 msgid "Issue this Build Order?" msgstr "发布此生产订单?" -#: build/templates/build/build_base.html:302 +#: build/templates/build/build_base.html:303 msgid "Delete Build Order" msgstr "删除生产订单" -#: build/templates/build/build_base.html:312 +#: build/templates/build/build_base.html:313 msgid "Build Order QR Code" msgstr "生产订单二维码" -#: build/templates/build/build_base.html:324 +#: build/templates/build/build_base.html:325 msgid "Link Barcode to Build Order" msgstr "将条形码链接到生产订单" @@ -1968,8 +1994,9 @@ msgstr "库存来源" msgid "Stock can be taken from any available location." msgstr "库存可以从任何可用地点获得。" -#: build/templates/build/detail.html:49 order/models.py:1532 -#: templates/js/translated/purchase_order.js:2259 +#: build/templates/build/detail.html:49 order/models.py:548 +#: order/models.py:1548 order/templates/order/order_base.html:135 +#: templates/js/translated/purchase_order.js:2243 msgid "Destination" msgstr "目的地" @@ -1981,23 +2008,24 @@ msgstr "未指定目的地" msgid "Allocated Parts" msgstr "已分配的零件" -#: build/templates/build/detail.html:80 stock/admin.py:162 -#: stock/templates/stock/item_base.html:162 -#: templates/js/translated/build.js:1553 -#: templates/js/translated/model_renderers.js:242 -#: templates/js/translated/purchase_order.js:1326 +#: build/templates/build/detail.html:80 +#: report/templates/report/inventree_sales_order_shipment_report.html:47 +#: stock/admin.py:163 stock/templates/stock/item_base.html:159 +#: templates/js/translated/build.js:1556 +#: templates/js/translated/model_renderers.js:245 +#: templates/js/translated/purchase_order.js:1309 #: templates/js/translated/stock.js:1139 templates/js/translated/stock.js:1240 -#: templates/js/translated/stock.js:2275 templates/js/translated/stock.js:3211 +#: templates/js/translated/stock.js:2276 templates/js/translated/stock.js:3212 #: templates/js/translated/table_filters.js:320 #: templates/js/translated/table_filters.js:411 msgid "Batch" msgstr "队列" #: build/templates/build/detail.html:133 -#: order/templates/order/order_base.html:178 -#: order/templates/order/return_order_base.html:154 -#: order/templates/order/sales_order_base.html:193 -#: templates/js/translated/build.js:2371 +#: order/templates/order/order_base.html:187 +#: order/templates/order/return_order_base.html:155 +#: order/templates/order/sales_order_base.html:194 +#: templates/js/translated/build.js:2374 msgid "Created" msgstr "已创建" @@ -2005,8 +2033,8 @@ msgstr "已创建" msgid "No target date set" msgstr "未设置目标日期" -#: build/templates/build/detail.html:149 -#: order/templates/order/sales_order_base.html:209 +#: build/templates/build/detail.html:149 order/api.py:794 +#: order/templates/order/sales_order_base.html:210 #: templates/js/translated/table_filters.js:692 msgid "Completed" msgstr "已完成" @@ -2052,7 +2080,7 @@ msgid "Order required parts" msgstr "订单所需零件" #: build/templates/build/detail.html:192 -#: templates/js/translated/purchase_order.js:795 +#: templates/js/translated/purchase_order.js:778 msgid "Order Parts" msgstr "订购零件" @@ -2120,7 +2148,7 @@ msgstr "新建生产订单" msgid "Build Order Details" msgstr "生产订单详情" -#: build/templates/build/sidebar.html:8 order/serializers.py:82 +#: build/templates/build/sidebar.html:8 order/serializers.py:113 #: order/templates/order/po_sidebar.html:5 #: order/templates/order/return_order_detail.html:18 #: order/templates/order/so_sidebar.html:5 @@ -2139,43 +2167,38 @@ msgstr "未完成的产出" msgid "Test Statistics" msgstr "测试统计" -#: common/api.py:693 +#: common/api.py:725 msgid "Is Link" msgstr "是否链接" -#: common/api.py:701 +#: common/api.py:733 msgid "Is File" msgstr "是否为文件" -#: common/api.py:744 +#: common/api.py:776 msgid "User does not have permission to delete these attachments" msgstr "用户没有权限删除此附件" -#: common/api.py:761 +#: common/api.py:793 msgid "User does not have permission to delete this attachment" msgstr "用户没有权限删除此附件" -#: common/currency.py:132 +#: common/currency.py:134 msgid "Invalid currency code" msgstr "无效的货币代码" -#: common/currency.py:134 +#: common/currency.py:136 msgid "Duplicate currency code" msgstr "重复的货币代码" -#: common/currency.py:139 +#: common/currency.py:141 msgid "No valid currency codes provided" msgstr "未提供有效的货币代码" -#: common/currency.py:156 +#: common/currency.py:158 msgid "No plugin" msgstr "暂无插件" -#: common/files.py:63 -#, python-brace-format -msgid "Unsupported file format: {fmt}" -msgstr "不支持的文件格式: {fmt}" - #: common/files.py:65 msgid "Error reading file (invalid encoding)" msgstr "读取文件时发生错误 (无效编码)" @@ -2192,1883 +2215,2039 @@ msgstr "读取文件时发生错误 (尺寸错误)" msgid "Error reading file (data could be corrupted)" msgstr "读取文件时发生错误 (数据可能已损坏)" -#: common/forms.py:12 +#: common/forms.py:12 common/forms.py:25 msgid "File" msgstr "檔案" -#: common/forms.py:12 +#: common/forms.py:12 common/forms.py:26 msgid "Select file to upload" msgstr "選擇要上傳的檔案" -#: common/forms.py:25 -msgid "{name.title()} File" -msgstr "{name.title()} 文件" - -#: common/forms.py:26 -#, python-brace-format -msgid "Select {name} file to upload" -msgstr "选择 {name} 文件上传" - -#: common/models.py:86 +#: common/models.py:89 msgid "Updated" msgstr "已是最新" -#: common/models.py:87 +#: common/models.py:90 msgid "Timestamp of last update" msgstr "最后更新时间戳" -#: common/models.py:120 +#: common/models.py:123 msgid "Site URL is locked by configuration" msgstr "网站 URL 已配置为锁定" -#: common/models.py:150 +#: common/models.py:153 msgid "Unique project code" msgstr "唯一项目编码" -#: common/models.py:157 +#: common/models.py:160 msgid "Project description" msgstr "项目描述" -#: common/models.py:166 +#: common/models.py:169 msgid "User or group responsible for this project" msgstr "负责此项目的用户或群组" -#: common/models.py:783 -msgid "Settings key (must be unique - case insensitive)" -msgstr "设置键(必须是独特的 - 不区分大小写)" +#: common/models.py:783 common/models.py:2236 common/models.py:2613 +msgid "Settings key" +msgstr "设置密钥" #: common/models.py:787 msgid "Settings value" msgstr "设定值" -#: common/models.py:839 +#: common/models.py:842 msgid "Chosen value is not a valid option" msgstr "所选值不是一个有效的选项" -#: common/models.py:855 +#: common/models.py:858 msgid "Value must be a boolean value" msgstr "该值必须是布尔值" -#: common/models.py:863 +#: common/models.py:866 msgid "Value must be an integer value" msgstr "该值必须为整数" -#: common/models.py:900 +#: common/models.py:874 +msgid "Value must be a valid number" +msgstr "必须是有效数字" + +#: common/models.py:899 +msgid "Value does not pass validation checks" +msgstr "值未通过验证检查" + +#: common/models.py:921 msgid "Key string must be unique" msgstr "键字符串必须是唯一的" -#: common/models.py:1132 +#: common/models.py:1189 msgid "No group" msgstr "无分组" -#: common/models.py:1231 +#: common/models.py:1288 msgid "Restart required" msgstr "需要重启" -#: common/models.py:1233 +#: common/models.py:1290 msgid "A setting has been changed which requires a server restart" msgstr "设置已更改,需要服务器重启" -#: common/models.py:1240 +#: common/models.py:1297 msgid "Pending migrations" msgstr "等待迁移" -#: common/models.py:1241 +#: common/models.py:1298 msgid "Number of pending database migrations" msgstr "待处理的数据库迁移数" -#: common/models.py:1246 +#: common/models.py:1303 msgid "Server Instance Name" msgstr "服务器实例名称" -#: common/models.py:1248 +#: common/models.py:1305 msgid "String descriptor for the server instance" msgstr "服务器实例的字符串描述符" -#: common/models.py:1252 +#: common/models.py:1309 msgid "Use instance name" msgstr "使用实例名称" -#: common/models.py:1253 +#: common/models.py:1310 msgid "Use the instance name in the title-bar" msgstr "在标题栏中使用实例名称" -#: common/models.py:1258 +#: common/models.py:1315 msgid "Restrict showing `about`" msgstr "限制显示 `关于` 信息" -#: common/models.py:1259 +#: common/models.py:1316 msgid "Show the `about` modal only to superusers" msgstr "只向超级管理员显示关于信息" -#: common/models.py:1264 company/models.py:111 company/models.py:112 +#: common/models.py:1321 company/models.py:108 company/models.py:109 msgid "Company name" msgstr "公司名称" -#: common/models.py:1265 +#: common/models.py:1322 msgid "Internal company name" msgstr "内部公司名称" -#: common/models.py:1269 +#: common/models.py:1326 msgid "Base URL" msgstr "基本 URL" -#: common/models.py:1270 +#: common/models.py:1327 msgid "Base URL for server instance" msgstr "服务器实例的基准 URL" -#: common/models.py:1276 +#: common/models.py:1333 msgid "Default Currency" msgstr "默认货币单位" -#: common/models.py:1277 +#: common/models.py:1334 msgid "Select base currency for pricing calculations" msgstr "选择价格计算的默认货币" -#: common/models.py:1283 +#: common/models.py:1340 msgid "Supported Currencies" msgstr "支持币种" -#: common/models.py:1284 +#: common/models.py:1341 msgid "List of supported currency codes" msgstr "支持的货币代码列表" -#: common/models.py:1290 +#: common/models.py:1347 msgid "Currency Update Interval" msgstr "货币更新间隔时间" -#: common/models.py:1292 +#: common/models.py:1349 msgid "How often to update exchange rates (set to zero to disable)" msgstr "检查更新的频率(设置为零以禁用)" -#: common/models.py:1295 common/models.py:1351 common/models.py:1364 -#: common/models.py:1372 common/models.py:1381 common/models.py:1390 -#: common/models.py:1627 common/models.py:1649 common/models.py:1764 -#: common/models.py:2146 +#: common/models.py:1352 common/models.py:1408 common/models.py:1421 +#: common/models.py:1429 common/models.py:1438 common/models.py:1447 +#: common/models.py:1696 common/models.py:1718 common/models.py:1819 +#: common/models.py:2208 msgid "days" msgstr "天" -#: common/models.py:1299 +#: common/models.py:1356 msgid "Currency Update Plugin" msgstr "币种更新插件" -#: common/models.py:1300 +#: common/models.py:1357 msgid "Currency update plugin to use" msgstr "使用货币更新插件" -#: common/models.py:1305 +#: common/models.py:1362 msgid "Download from URL" msgstr "从URL下载" -#: common/models.py:1307 +#: common/models.py:1364 msgid "Allow download of remote images and files from external URL" msgstr "允许从外部 URL 下载远程图片和文件" -#: common/models.py:1313 +#: common/models.py:1370 msgid "Download Size Limit" msgstr "下载大小限制" -#: common/models.py:1314 +#: common/models.py:1371 msgid "Maximum allowable download size for remote image" msgstr "远程图片的最大允许下载大小" -#: common/models.py:1320 +#: common/models.py:1377 msgid "User-agent used to download from URL" msgstr "用于从 URL 下载的 User-agent" -#: common/models.py:1322 +#: common/models.py:1379 msgid "Allow to override the user-agent used to download images and files from external URL (leave blank for the default)" msgstr "允许覆盖用于从外部 URL 下载图片和文件的 user-agent(留空为默认值)" -#: common/models.py:1327 +#: common/models.py:1384 msgid "Strict URL Validation" msgstr "严格的 URL 验证" -#: common/models.py:1328 +#: common/models.py:1385 msgid "Require schema specification when validating URLs" msgstr "验证 URL 时需要 schema 规范" -#: common/models.py:1333 +#: common/models.py:1390 msgid "Require confirm" msgstr "需要确认" -#: common/models.py:1334 +#: common/models.py:1391 msgid "Require explicit user confirmation for certain action." msgstr "对某些操作需要用户明确确认。" -#: common/models.py:1339 +#: common/models.py:1396 msgid "Tree Depth" msgstr "树深度" -#: common/models.py:1341 +#: common/models.py:1398 msgid "Default tree depth for treeview. Deeper levels can be lazy loaded as they are needed." msgstr "树视图的默认树深度。更深的层级可以在需要时延迟加载。" -#: common/models.py:1347 +#: common/models.py:1404 msgid "Update Check Interval" msgstr "更新检查间隔" -#: common/models.py:1348 +#: common/models.py:1405 msgid "How often to check for updates (set to zero to disable)" msgstr "检查更新的频率(设置为零以禁用)" -#: common/models.py:1354 +#: common/models.py:1411 msgid "Automatic Backup" msgstr "自動備份" -#: common/models.py:1355 +#: common/models.py:1412 msgid "Enable automatic backup of database and media files" msgstr "啟動資料庫和媒體文件自動備份" -#: common/models.py:1360 +#: common/models.py:1417 msgid "Auto Backup Interval" msgstr "自動備份間隔" -#: common/models.py:1361 +#: common/models.py:1418 msgid "Specify number of days between automated backup events" msgstr "指定自动备份之间的间隔天数" -#: common/models.py:1367 +#: common/models.py:1424 msgid "Task Deletion Interval" msgstr "任务删除间隔" -#: common/models.py:1369 +#: common/models.py:1426 msgid "Background task results will be deleted after specified number of days" msgstr "后台任务结果将在指定天数后删除" -#: common/models.py:1376 +#: common/models.py:1433 msgid "Error Log Deletion Interval" msgstr "错误日志删除间隔" -#: common/models.py:1378 +#: common/models.py:1435 msgid "Error logs will be deleted after specified number of days" msgstr "错误日志将在指定天数后被删除" -#: common/models.py:1385 +#: common/models.py:1442 msgid "Notification Deletion Interval" msgstr "通知删除间隔" -#: common/models.py:1387 +#: common/models.py:1444 msgid "User notifications will be deleted after specified number of days" msgstr "用户通知将在指定天数后被删除" -#: common/models.py:1394 templates/InvenTree/settings/sidebar.html:31 +#: common/models.py:1451 templates/InvenTree/settings/sidebar.html:31 msgid "Barcode Support" msgstr "条形码支持" -#: common/models.py:1395 +#: common/models.py:1452 msgid "Enable barcode scanner support in the web interface" msgstr "在网页界面启用条形码扫描器支持" -#: common/models.py:1400 +#: common/models.py:1457 +msgid "Store Barcode Results" +msgstr "存储条码结果" + +#: common/models.py:1458 +msgid "Store barcode scan results in the database" +msgstr "存储条形码扫描结果" + +#: common/models.py:1463 +msgid "Barcode Scans Maximum Count" +msgstr "条码扫描最大计数" + +#: common/models.py:1464 +msgid "Maximum number of barcode scan results to store" +msgstr "存储条码扫描结果的最大数量" + +#: common/models.py:1469 msgid "Barcode Input Delay" msgstr "条形码扫描延迟设置" -#: common/models.py:1401 +#: common/models.py:1470 msgid "Barcode input processing delay time" msgstr "条形码输入处理延迟时间" -#: common/models.py:1407 +#: common/models.py:1476 msgid "Barcode Webcam Support" msgstr "条码摄像头支持" -#: common/models.py:1408 +#: common/models.py:1477 msgid "Allow barcode scanning via webcam in browser" msgstr "允许通过网络摄像头扫描条形码" -#: common/models.py:1413 +#: common/models.py:1482 msgid "Barcode Show Data" msgstr "条形码显示数据" -#: common/models.py:1414 +#: common/models.py:1483 msgid "Display barcode data in browser as text" msgstr "在浏览器中将条形码数据显示为文本" -#: common/models.py:1419 +#: common/models.py:1488 msgid "Barcode Generation Plugin" msgstr "条形码生成插件" -#: common/models.py:1420 +#: common/models.py:1489 msgid "Plugin to use for internal barcode data generation" msgstr "用于内部条形码数据生成的插件" -#: common/models.py:1425 +#: common/models.py:1494 msgid "Part Revisions" msgstr "零件修订" -#: common/models.py:1426 +#: common/models.py:1495 msgid "Enable revision field for Part" msgstr "启用零件修订字段" -#: common/models.py:1431 +#: common/models.py:1500 msgid "Assembly Revision Only" msgstr "仅限装配修订版本" -#: common/models.py:1432 +#: common/models.py:1501 msgid "Only allow revisions for assembly parts" msgstr "仅允许对装配零件进行修订" -#: common/models.py:1437 +#: common/models.py:1506 msgid "Allow Deletion from Assembly" msgstr "允许从装配中删除" -#: common/models.py:1438 +#: common/models.py:1507 msgid "Allow deletion of parts which are used in an assembly" msgstr "允许删除已在装配中使用的零件" -#: common/models.py:1443 +#: common/models.py:1512 msgid "IPN Regex" msgstr "IPN 内部零件号" -#: common/models.py:1444 +#: common/models.py:1513 msgid "Regular expression pattern for matching Part IPN" msgstr "匹配零件 IPN(内部零件号)的正则表达式模式" -#: common/models.py:1447 +#: common/models.py:1516 msgid "Allow Duplicate IPN" msgstr "允许重复的 IPN(内部零件号)" -#: common/models.py:1448 +#: common/models.py:1517 msgid "Allow multiple parts to share the same IPN" msgstr "允许多个零件共享相同的 IPN(内部零件号)" -#: common/models.py:1453 +#: common/models.py:1522 msgid "Allow Editing IPN" msgstr "允许编辑 IPN(内部零件号)" -#: common/models.py:1454 +#: common/models.py:1523 msgid "Allow changing the IPN value while editing a part" msgstr "允许编辑零件时更改内部零件号" -#: common/models.py:1459 +#: common/models.py:1528 msgid "Copy Part BOM Data" msgstr "复制零件物料清单数据" -#: common/models.py:1460 +#: common/models.py:1529 msgid "Copy BOM data by default when duplicating a part" msgstr "复制零件时默认复制物料清单数据" -#: common/models.py:1465 +#: common/models.py:1534 msgid "Copy Part Parameter Data" msgstr "复制零件参数数据" -#: common/models.py:1466 +#: common/models.py:1535 msgid "Copy parameter data by default when duplicating a part" msgstr "复制零件时默认复制参数数据" -#: common/models.py:1471 +#: common/models.py:1540 msgid "Copy Part Test Data" msgstr "复制零件测试数据" -#: common/models.py:1472 +#: common/models.py:1541 msgid "Copy test data by default when duplicating a part" msgstr "复制零件时默认复制测试数据" -#: common/models.py:1477 +#: common/models.py:1546 msgid "Copy Category Parameter Templates" msgstr "复制类别参数模板" -#: common/models.py:1478 +#: common/models.py:1547 msgid "Copy category parameter templates when creating a part" msgstr "创建零件时复制类别参数模板" -#: common/models.py:1483 part/admin.py:108 part/models.py:3945 -#: report/models.py:293 report/models.py:360 report/serializers.py:90 -#: report/serializers.py:131 stock/serializers.py:232 +#: common/models.py:1552 part/admin.py:108 part/models.py:4003 +#: report/models.py:301 report/models.py:368 report/serializers.py:91 +#: report/serializers.py:132 stock/serializers.py:233 #: templates/js/translated/table_filters.js:138 #: templates/js/translated/table_filters.js:775 msgid "Template" msgstr "模板" -#: common/models.py:1484 +#: common/models.py:1553 msgid "Parts are templates by default" msgstr "零件默认为模板" -#: common/models.py:1490 +#: common/models.py:1559 msgid "Parts can be assembled from other components by default" msgstr "默认情况下,元件可由其他零件组装而成" -#: common/models.py:1495 part/admin.py:95 part/models.py:1160 -#: part/serializers.py:1596 templates/js/translated/table_filters.js:737 +#: common/models.py:1564 part/admin.py:95 part/models.py:1221 +#: part/serializers.py:1654 templates/js/translated/table_filters.js:737 msgid "Component" msgstr "组件" -#: common/models.py:1496 +#: common/models.py:1565 msgid "Parts can be used as sub-components by default" msgstr "默认情况下,零件可用作子部件" -#: common/models.py:1501 part/admin.py:100 part/models.py:1178 +#: common/models.py:1570 part/admin.py:100 part/models.py:1239 msgid "Purchaseable" msgstr "可购买" -#: common/models.py:1502 +#: common/models.py:1571 msgid "Parts are purchaseable by default" msgstr "默认情况下可购买零件" -#: common/models.py:1507 part/admin.py:104 part/models.py:1184 +#: common/models.py:1576 part/admin.py:104 part/models.py:1245 #: templates/js/translated/table_filters.js:763 msgid "Salable" msgstr "可销售" -#: common/models.py:1508 +#: common/models.py:1577 msgid "Parts are salable by default" msgstr "零件默认为可销售" -#: common/models.py:1514 +#: common/models.py:1583 msgid "Parts are trackable by default" msgstr "默认情况下可跟踪零件" -#: common/models.py:1519 part/admin.py:117 part/models.py:1200 -#: part/templates/part/part_base.html:154 +#: common/models.py:1588 part/admin.py:117 part/models.py:1261 +#: part/templates/part/part_base.html:155 #: templates/js/translated/table_filters.js:142 #: templates/js/translated/table_filters.js:787 msgid "Virtual" msgstr "虚拟的" -#: common/models.py:1520 +#: common/models.py:1589 msgid "Parts are virtual by default" msgstr "默认情况下,零件是虚拟的" -#: common/models.py:1525 +#: common/models.py:1594 msgid "Show Import in Views" msgstr "在视图中显示导入" -#: common/models.py:1526 +#: common/models.py:1595 msgid "Display the import wizard in some part views" msgstr "在某些零件视图中显示导入向导" -#: common/models.py:1531 +#: common/models.py:1600 msgid "Show related parts" msgstr "显示相关零件" -#: common/models.py:1532 +#: common/models.py:1601 msgid "Display related parts for a part" msgstr "显示零件的相关零件" -#: common/models.py:1537 +#: common/models.py:1606 msgid "Initial Stock Data" msgstr "初始库存数据" -#: common/models.py:1538 +#: common/models.py:1607 msgid "Allow creation of initial stock when adding a new part" msgstr "允许在添加新零件时创建初始库存" -#: common/models.py:1543 templates/js/translated/part.js:108 +#: common/models.py:1612 templates/js/translated/part.js:108 msgid "Initial Supplier Data" msgstr "初始供应商数据" -#: common/models.py:1545 +#: common/models.py:1614 msgid "Allow creation of initial supplier data when adding a new part" msgstr "允许在添加新零件时创建初始供应商数据" -#: common/models.py:1551 +#: common/models.py:1620 msgid "Part Name Display Format" msgstr "零件名称显示格式" -#: common/models.py:1552 +#: common/models.py:1621 msgid "Format to display the part name" msgstr "显示零件名称的格式" -#: common/models.py:1558 +#: common/models.py:1627 msgid "Part Category Default Icon" msgstr "零件类别默认图标" -#: common/models.py:1559 +#: common/models.py:1628 msgid "Part category default icon (empty means no icon)" msgstr "零件类别默认图标 (空表示没有图标)" -#: common/models.py:1564 +#: common/models.py:1633 msgid "Enforce Parameter Units" msgstr "强制参数单位" -#: common/models.py:1566 +#: common/models.py:1635 msgid "If units are provided, parameter values must match the specified units" msgstr "如果提供了单位,参数值必须与指定的单位匹配" -#: common/models.py:1572 +#: common/models.py:1641 msgid "Minimum Pricing Decimal Places" msgstr "最小定价小数位数" -#: common/models.py:1574 +#: common/models.py:1643 msgid "Minimum number of decimal places to display when rendering pricing data" msgstr "呈现定价数据时显示的最小小数位数" -#: common/models.py:1585 +#: common/models.py:1654 msgid "Maximum Pricing Decimal Places" msgstr "最大定价小数位数" -#: common/models.py:1587 +#: common/models.py:1656 msgid "Maximum number of decimal places to display when rendering pricing data" msgstr "呈现定价数据时显示的最大小数位数" -#: common/models.py:1598 +#: common/models.py:1667 msgid "Use Supplier Pricing" msgstr "使用供应商定价" -#: common/models.py:1600 +#: common/models.py:1669 msgid "Include supplier price breaks in overall pricing calculations" msgstr "将供应商的价批发价纳入总体定价计算中" -#: common/models.py:1606 +#: common/models.py:1675 msgid "Purchase History Override" msgstr "购买历史记录覆盖" -#: common/models.py:1608 +#: common/models.py:1677 msgid "Historical purchase order pricing overrides supplier price breaks" msgstr "历史采购订单定价优先于供应商批发价" -#: common/models.py:1614 +#: common/models.py:1683 msgid "Use Stock Item Pricing" msgstr "使用库存项定价" -#: common/models.py:1616 +#: common/models.py:1685 msgid "Use pricing from manually entered stock data for pricing calculations" msgstr "使用手动输入的库存数据进行定价计算" -#: common/models.py:1622 +#: common/models.py:1691 msgid "Stock Item Pricing Age" msgstr "库存项目定价时间" -#: common/models.py:1624 +#: common/models.py:1693 msgid "Exclude stock items older than this number of days from pricing calculations" msgstr "从定价计算中排除超过此天数的库存项目" -#: common/models.py:1631 +#: common/models.py:1700 msgid "Use Variant Pricing" msgstr "使用变体定价" -#: common/models.py:1632 +#: common/models.py:1701 msgid "Include variant pricing in overall pricing calculations" msgstr "在整体定价计算中包括变体定价" -#: common/models.py:1637 +#: common/models.py:1706 msgid "Active Variants Only" msgstr "仅限活跃变体" -#: common/models.py:1639 +#: common/models.py:1708 msgid "Only use active variant parts for calculating variant pricing" msgstr "仅使用活跃变体零件计算变体价格" -#: common/models.py:1645 +#: common/models.py:1714 msgid "Pricing Rebuild Interval" msgstr "价格重建间隔" -#: common/models.py:1647 +#: common/models.py:1716 msgid "Number of days before part pricing is automatically updated" msgstr "零件价格自动更新前的天数" -#: common/models.py:1654 +#: common/models.py:1723 msgid "Internal Prices" msgstr "内部价格" -#: common/models.py:1655 +#: common/models.py:1724 msgid "Enable internal prices for parts" msgstr "启用内部零件价格" -#: common/models.py:1660 +#: common/models.py:1729 msgid "Internal Price Override" msgstr "覆盖内部价格" -#: common/models.py:1662 +#: common/models.py:1731 msgid "If available, internal prices override price range calculations" msgstr "如果有内部价格,内部价格将覆盖价格范围计算" -#: common/models.py:1668 +#: common/models.py:1737 msgid "Enable label printing" msgstr "启用标签打印功能" -#: common/models.py:1669 +#: common/models.py:1738 msgid "Enable label printing from the web interface" msgstr "启用从网络界面打印标签" -#: common/models.py:1674 +#: common/models.py:1743 msgid "Label Image DPI" msgstr "标签图片 DPI" -#: common/models.py:1676 +#: common/models.py:1745 msgid "DPI resolution when generating image files to supply to label printing plugins" msgstr "生成图像文件以供标签打印插件使用时的 DPI 分辨率" -#: common/models.py:1682 +#: common/models.py:1751 msgid "Enable Reports" msgstr "启用报告" -#: common/models.py:1683 +#: common/models.py:1752 msgid "Enable generation of reports" msgstr "启用报告生成" -#: common/models.py:1688 templates/stats.html:25 +#: common/models.py:1757 templates/stats.html:25 msgid "Debug Mode" msgstr "调试模式" -#: common/models.py:1689 +#: common/models.py:1758 msgid "Generate reports in debug mode (HTML output)" msgstr "以调试模式生成报告(HTML 输出)" -#: common/models.py:1694 +#: common/models.py:1763 msgid "Log Report Errors" msgstr "日志错误报告" -#: common/models.py:1695 +#: common/models.py:1764 msgid "Log errors which occur when generating reports" msgstr "记录生成报告时出现的错误" -#: common/models.py:1700 plugin/builtin/labels/label_sheet.py:28 -#: report/models.py:301 +#: common/models.py:1769 plugin/builtin/labels/label_sheet.py:28 +#: report/models.py:309 msgid "Page Size" msgstr "页面大小" -#: common/models.py:1701 +#: common/models.py:1770 msgid "Default page size for PDF reports" msgstr "PDF 报告默认页面大小" -#: common/models.py:1706 -msgid "Enable Test Reports" -msgstr "启用测试报告" - -#: common/models.py:1707 -msgid "Enable generation of test reports" -msgstr "启用生成测试报表" - -#: common/models.py:1712 -msgid "Attach Test Reports" -msgstr "添加测试报告" - -#: common/models.py:1714 -msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item" -msgstr "在打印测试报告时,将测试报告副本附加到相关的库存项" - -#: common/models.py:1720 +#: common/models.py:1775 msgid "Globally Unique Serials" msgstr "全局唯一序列号" -#: common/models.py:1721 +#: common/models.py:1776 msgid "Serial numbers for stock items must be globally unique" msgstr "库存项的序列号必须全局唯一" -#: common/models.py:1726 +#: common/models.py:1781 msgid "Autofill Serial Numbers" msgstr "自动填充序列号" -#: common/models.py:1727 +#: common/models.py:1782 msgid "Autofill serial numbers in forms" msgstr "在表格中自动填充序列号" -#: common/models.py:1732 +#: common/models.py:1787 msgid "Delete Depleted Stock" msgstr "删除已耗尽的库存" -#: common/models.py:1734 +#: common/models.py:1789 msgid "Determines default behavior when a stock item is depleted" msgstr "设置库存耗尽时的默认行为" -#: common/models.py:1740 +#: common/models.py:1795 msgid "Batch Code Template" msgstr "批号模板" -#: common/models.py:1742 +#: common/models.py:1797 msgid "Template for generating default batch codes for stock items" msgstr "为库存项生成默认批号的模板" -#: common/models.py:1747 +#: common/models.py:1802 msgid "Stock Expiry" msgstr "库存过期" -#: common/models.py:1748 +#: common/models.py:1803 msgid "Enable stock expiry functionality" msgstr "启用库存过期功能" -#: common/models.py:1753 +#: common/models.py:1808 msgid "Sell Expired Stock" msgstr "销售过期库存" -#: common/models.py:1754 +#: common/models.py:1809 msgid "Allow sale of expired stock" msgstr "允许销售过期库存" -#: common/models.py:1759 +#: common/models.py:1814 msgid "Stock Stale Time" msgstr "库存过期时间" -#: common/models.py:1761 +#: common/models.py:1816 msgid "Number of days stock items are considered stale before expiring" msgstr "库存项在到期前被视为过期的天数" -#: common/models.py:1768 +#: common/models.py:1823 msgid "Build Expired Stock" msgstr "生产过期库存" -#: common/models.py:1769 +#: common/models.py:1824 msgid "Allow building with expired stock" msgstr "允许用过期的库存生产" -#: common/models.py:1774 +#: common/models.py:1829 msgid "Stock Ownership Control" msgstr "库存所有权控制" -#: common/models.py:1775 +#: common/models.py:1830 msgid "Enable ownership control over stock locations and items" msgstr "启用库存地点和项目的所有权控制" -#: common/models.py:1780 +#: common/models.py:1835 msgid "Stock Location Default Icon" msgstr "库存地点默认图标" -#: common/models.py:1781 +#: common/models.py:1836 msgid "Stock location default icon (empty means no icon)" msgstr "库存地点默认图标 (空表示没有图标)" -#: common/models.py:1786 +#: common/models.py:1841 msgid "Show Installed Stock Items" msgstr "显示已安装的库存项" -#: common/models.py:1787 +#: common/models.py:1842 msgid "Display installed stock items in stock tables" msgstr "在库存表中显示已安装的库存项" -#: common/models.py:1792 +#: common/models.py:1847 msgid "Check BOM when installing items" msgstr "在安装项目时检查物料清单" -#: common/models.py:1794 +#: common/models.py:1849 msgid "Installed stock items must exist in the BOM for the parent part" msgstr "已安装的库存项目必须存在于上级零件的物料清单中" -#: common/models.py:1800 +#: common/models.py:1855 msgid "Allow Out of Stock Transfer" msgstr "允许超出库存转移" -#: common/models.py:1802 +#: common/models.py:1857 msgid "Allow stock items which are not in stock to be transferred between stock locations" msgstr "允许非库存的库存项目在库存位置之间转移" -#: common/models.py:1808 +#: common/models.py:1863 msgid "Build Order Reference Pattern" msgstr "生产订单参考模式" -#: common/models.py:1810 +#: common/models.py:1865 msgid "Required pattern for generating Build Order reference field" msgstr "生成生产订单参考字段所需的模式" -#: common/models.py:1816 common/models.py:1872 common/models.py:1894 -#: common/models.py:1930 +#: common/models.py:1871 common/models.py:1927 common/models.py:1949 +#: common/models.py:1985 msgid "Require Responsible Owner" msgstr "要求负责人" -#: common/models.py:1817 common/models.py:1873 common/models.py:1895 -#: common/models.py:1931 +#: common/models.py:1872 common/models.py:1928 common/models.py:1950 +#: common/models.py:1986 msgid "A responsible owner must be assigned to each order" msgstr "必须为每个订单分配一个负责人" -#: common/models.py:1822 +#: common/models.py:1877 msgid "Require Active Part" msgstr "需要活动零件" -#: common/models.py:1823 +#: common/models.py:1878 msgid "Prevent build order creation for inactive parts" msgstr "防止为非活动零件创建生产订单" -#: common/models.py:1828 +#: common/models.py:1883 msgid "Require Locked Part" msgstr "需要锁定零件" -#: common/models.py:1829 +#: common/models.py:1884 msgid "Prevent build order creation for unlocked parts" msgstr "防止为未锁定的零件创建生产订单" -#: common/models.py:1834 +#: common/models.py:1889 msgid "Require Valid BOM" msgstr "需要有效的物料清单" -#: common/models.py:1836 +#: common/models.py:1891 msgid "Prevent build order creation unless BOM has been validated" msgstr "除非物料清单已验证,否则禁止创建生产订单" -#: common/models.py:1842 +#: common/models.py:1897 msgid "Require Closed Child Orders" msgstr "需要关闭子订单" -#: common/models.py:1844 +#: common/models.py:1899 msgid "Prevent build order completion until all child orders are closed" msgstr "在所有子订单关闭之前,阻止生产订单的完成" -#: common/models.py:1850 +#: common/models.py:1905 msgid "Block Until Tests Pass" msgstr "阻止直到测试通过" -#: common/models.py:1852 +#: common/models.py:1907 msgid "Prevent build outputs from being completed until all required tests pass" msgstr "在所有必要的测试通过之前,阻止产出完成" -#: common/models.py:1858 +#: common/models.py:1913 msgid "Enable Return Orders" msgstr "启用订单退货" -#: common/models.py:1859 +#: common/models.py:1914 msgid "Enable return order functionality in the user interface" msgstr "在用户界面中启用订单退货功能" -#: common/models.py:1864 +#: common/models.py:1919 msgid "Return Order Reference Pattern" msgstr "退货订单参考模式" -#: common/models.py:1866 +#: common/models.py:1921 msgid "Required pattern for generating Return Order reference field" msgstr "生成退货订单参考字段所需的模式" -#: common/models.py:1878 +#: common/models.py:1933 msgid "Edit Completed Return Orders" msgstr "编辑已完成的退货订单" -#: common/models.py:1880 +#: common/models.py:1935 msgid "Allow editing of return orders after they have been completed" msgstr "允许编辑已完成的退货订单" -#: common/models.py:1886 +#: common/models.py:1941 msgid "Sales Order Reference Pattern" msgstr "销售订单参考模式" -#: common/models.py:1888 +#: common/models.py:1943 msgid "Required pattern for generating Sales Order reference field" msgstr "生成销售订单参考字段所需参照模式" -#: common/models.py:1900 +#: common/models.py:1955 msgid "Sales Order Default Shipment" msgstr "销售订单默认配送方式" -#: common/models.py:1901 +#: common/models.py:1956 msgid "Enable creation of default shipment with sales orders" msgstr "启用创建销售订单的默认配送功能" -#: common/models.py:1906 +#: common/models.py:1961 msgid "Edit Completed Sales Orders" msgstr "编辑已完成的销售订单" -#: common/models.py:1908 +#: common/models.py:1963 msgid "Allow editing of sales orders after they have been shipped or completed" msgstr "允许在订单配送或完成后编辑销售订单" -#: common/models.py:1914 +#: common/models.py:1969 msgid "Mark Shipped Orders as Complete" msgstr "标记该订单为已完成?" -#: common/models.py:1916 +#: common/models.py:1971 msgid "Sales orders marked as shipped will automatically be completed, bypassing the \"shipped\" status" msgstr "标记为已发货的销售订单将自动完成,绕过“已发货”状态" -#: common/models.py:1922 +#: common/models.py:1977 msgid "Purchase Order Reference Pattern" msgstr "采购订单参考模式" -#: common/models.py:1924 +#: common/models.py:1979 msgid "Required pattern for generating Purchase Order reference field" msgstr "生成采购订单参考字段所需的模式" -#: common/models.py:1936 +#: common/models.py:1991 msgid "Edit Completed Purchase Orders" msgstr "编辑已完成的采购订单" -#: common/models.py:1938 +#: common/models.py:1993 msgid "Allow editing of purchase orders after they have been shipped or completed" msgstr "允许在采购订单已配送或完成后编辑订单" -#: common/models.py:1944 +#: common/models.py:1999 msgid "Auto Complete Purchase Orders" msgstr "自动完成采购订单" -#: common/models.py:1946 +#: common/models.py:2001 msgid "Automatically mark purchase orders as complete when all line items are received" msgstr "当收到所有行项目时,自动将采购订单标记为完成" -#: common/models.py:1953 +#: common/models.py:2008 msgid "Enable password forgot" msgstr "忘记启用密码" -#: common/models.py:1954 +#: common/models.py:2009 msgid "Enable password forgot function on the login pages" msgstr "在登录页面上启用忘记密码功能" -#: common/models.py:1959 +#: common/models.py:2014 msgid "Enable registration" msgstr "启用注册" -#: common/models.py:1960 +#: common/models.py:2015 msgid "Enable self-registration for users on the login pages" msgstr "在登录页面为用户启用自行注册功能" -#: common/models.py:1965 +#: common/models.py:2020 msgid "Enable SSO" msgstr "启用单点登录" -#: common/models.py:1966 +#: common/models.py:2021 msgid "Enable SSO on the login pages" msgstr "在登录界面启用单点登录" -#: common/models.py:1971 +#: common/models.py:2026 msgid "Enable SSO registration" msgstr "启用单点登录注册" -#: common/models.py:1973 +#: common/models.py:2028 msgid "Enable self-registration via SSO for users on the login pages" msgstr "允许登录页面上的用户通过 SSO 进行自我注册" -#: common/models.py:1979 +#: common/models.py:2034 msgid "Enable SSO group sync" msgstr "启用单点登录群组同步" -#: common/models.py:1981 +#: common/models.py:2036 msgid "Enable synchronizing InvenTree groups with groups provided by the IdP" msgstr "启用库存管理系统组和由身份提供者提供的组的同步功能" -#: common/models.py:1987 +#: common/models.py:2042 msgid "SSO group key" msgstr "单点登录系统组密钥" -#: common/models.py:1989 +#: common/models.py:2044 msgid "The name of the groups claim attribute provided by the IdP" msgstr "由身份提供者提供的组声明属性名称" -#: common/models.py:1995 +#: common/models.py:2050 msgid "SSO group map" msgstr "单点登录系统组地图" -#: common/models.py:1997 +#: common/models.py:2052 msgid "A mapping from SSO groups to local InvenTree groups. If the local group does not exist, it will be created." msgstr "从单点登录系统组组到本地库存管理系统组的映射。如果本地组不存在,它将被创建。" -#: common/models.py:2003 +#: common/models.py:2058 msgid "Remove groups outside of SSO" msgstr "移除单点登录系统以外的群组" -#: common/models.py:2005 +#: common/models.py:2060 msgid "Whether groups assigned to the user should be removed if they are not backend by the IdP. Disabling this setting might cause security issues" msgstr "如果分配给用户的组不是身份提供者的后端,是否应该删除它们。禁用此设置可能会造成安全问题" -#: common/models.py:2011 +#: common/models.py:2066 msgid "Email required" msgstr "需要邮箱地址" -#: common/models.py:2012 +#: common/models.py:2067 msgid "Require user to supply mail on signup" msgstr "要求用户在注册时提供邮件" -#: common/models.py:2017 +#: common/models.py:2072 msgid "Auto-fill SSO users" msgstr "自动填充单点登录系统用户" -#: common/models.py:2019 +#: common/models.py:2074 msgid "Automatically fill out user-details from SSO account-data" msgstr "自动使用单点登录系统账户的数据填写用户详细信息" -#: common/models.py:2025 +#: common/models.py:2080 msgid "Mail twice" msgstr "发两次邮件" -#: common/models.py:2026 +#: common/models.py:2081 msgid "On signup ask users twice for their mail" msgstr "注册时询问用户他们的电子邮件两次" -#: common/models.py:2031 +#: common/models.py:2086 msgid "Password twice" msgstr "两次输入密码" -#: common/models.py:2032 +#: common/models.py:2087 msgid "On signup ask users twice for their password" msgstr "当注册时请用户输入密码两次" -#: common/models.py:2037 +#: common/models.py:2092 msgid "Allowed domains" msgstr "域名白名单" -#: common/models.py:2039 +#: common/models.py:2094 msgid "Restrict signup to certain domains (comma-separated, starting with @)" msgstr "限制注册到某些域名 (逗号分隔,以 @ 开头)" -#: common/models.py:2045 +#: common/models.py:2100 msgid "Group on signup" msgstr "注册群组" -#: common/models.py:2047 +#: common/models.py:2102 msgid "Group to which new users are assigned on registration. If SSO group sync is enabled, this group is only set if no group can be assigned from the IdP." msgstr "注册时分配给新用户的组。 如果启用了单点登录系统群组同步,此群组仅在无法从 IdP 分配任何群组的情况下才被设置。" -#: common/models.py:2053 +#: common/models.py:2108 msgid "Enforce MFA" msgstr "强制启用多因素安全认证" -#: common/models.py:2054 +#: common/models.py:2109 msgid "Users must use multifactor security." msgstr "用户必须使用多因素安全认证。" -#: common/models.py:2059 +#: common/models.py:2114 msgid "Check plugins on startup" msgstr "启动时检查插件" -#: common/models.py:2061 +#: common/models.py:2116 msgid "Check that all plugins are installed on startup - enable in container environments" msgstr "启动时检查全部插件是否已安装 - 在容器环境中启用" -#: common/models.py:2069 +#: common/models.py:2124 msgid "Check for plugin updates" msgstr "检查插件更新" -#: common/models.py:2070 +#: common/models.py:2125 msgid "Enable periodic checks for updates to installed plugins" msgstr "启用定期检查已安装插件的更新" -#: common/models.py:2076 +#: common/models.py:2131 msgid "Enable URL integration" msgstr "启用统一资源定位符集成" -#: common/models.py:2077 +#: common/models.py:2132 msgid "Enable plugins to add URL routes" msgstr "启用插件以添加统一资源定位符路由" -#: common/models.py:2083 +#: common/models.py:2138 msgid "Enable navigation integration" msgstr "启用导航集成" -#: common/models.py:2084 +#: common/models.py:2139 msgid "Enable plugins to integrate into navigation" msgstr "启用插件以集成到导航中" -#: common/models.py:2090 +#: common/models.py:2145 msgid "Enable app integration" msgstr "启用应用集成" -#: common/models.py:2091 +#: common/models.py:2146 msgid "Enable plugins to add apps" msgstr "启用插件添加应用" -#: common/models.py:2097 +#: common/models.py:2152 msgid "Enable schedule integration" msgstr "启用调度集成" -#: common/models.py:2098 +#: common/models.py:2153 msgid "Enable plugins to run scheduled tasks" msgstr "启用插件来运行预定任务" -#: common/models.py:2104 +#: common/models.py:2159 msgid "Enable event integration" msgstr "启用事件集成" -#: common/models.py:2105 +#: common/models.py:2160 msgid "Enable plugins to respond to internal events" msgstr "启用插件响应内部事件" -#: common/models.py:2111 +#: common/models.py:2166 +msgid "Enable interface integration" +msgstr "启用界面集成" + +#: common/models.py:2167 +msgid "Enable plugins to integrate into the user interface" +msgstr "启用插件集成到用户界面" + +#: common/models.py:2173 msgid "Enable project codes" msgstr "启用项目编码" -#: common/models.py:2112 +#: common/models.py:2174 msgid "Enable project codes for tracking projects" msgstr "启用项目编码来跟踪项目" -#: common/models.py:2117 +#: common/models.py:2179 msgid "Stocktake Functionality" msgstr "盘点功能" -#: common/models.py:2119 +#: common/models.py:2181 msgid "Enable stocktake functionality for recording stock levels and calculating stock value" msgstr "启用盘点功能以记录库存水平和计算库存值" -#: common/models.py:2125 +#: common/models.py:2187 msgid "Exclude External Locations" msgstr "排除外部地点" -#: common/models.py:2127 +#: common/models.py:2189 msgid "Exclude stock items in external locations from stocktake calculations" msgstr "从盘点计算中排除外部地点的库存项" -#: common/models.py:2133 +#: common/models.py:2195 msgid "Automatic Stocktake Period" msgstr "自动盘点周期" -#: common/models.py:2135 +#: common/models.py:2197 msgid "Number of days between automatic stocktake recording (set to zero to disable)" msgstr "自动盘点记录之间的天数 (设置为零以禁用)" -#: common/models.py:2141 +#: common/models.py:2203 msgid "Report Deletion Interval" msgstr "报告删除间隔" -#: common/models.py:2143 +#: common/models.py:2205 msgid "Stocktake reports will be deleted after specified number of days" msgstr "盘点报告将在指定天数后删除" -#: common/models.py:2150 +#: common/models.py:2212 msgid "Display Users full names" msgstr "显示用户全名" -#: common/models.py:2151 +#: common/models.py:2213 msgid "Display Users full names instead of usernames" msgstr "显示用户全名而不是用户名" -#: common/models.py:2156 +#: common/models.py:2218 msgid "Enable Test Station Data" msgstr "启用测试站数据" -#: common/models.py:2157 +#: common/models.py:2219 msgid "Enable test station data collection for test results" msgstr "启用测试站数据收集以获取测试结果" -#: common/models.py:2169 common/models.py:2549 -msgid "Settings key (must be unique - case insensitive" -msgstr "设置键 (必须是唯一的,不区分大小写" +#: common/models.py:2224 +msgid "Create Template on Upload" +msgstr "上传时创建模板" -#: common/models.py:2212 +#: common/models.py:2226 +msgid "Create a new test template when uploading test data which does not match an existing template" +msgstr "上传测试数据与现有模板不匹配时创建一个新的测试模板" + +#: common/models.py:2279 msgid "Hide inactive parts" msgstr "隐藏非活动零件" -#: common/models.py:2214 +#: common/models.py:2281 msgid "Hide inactive parts in results displayed on the homepage" msgstr "隐藏主页上显示的结果中的非活动零件" -#: common/models.py:2220 +#: common/models.py:2287 msgid "Show subscribed parts" msgstr "显示已订阅的零件" -#: common/models.py:2221 +#: common/models.py:2288 msgid "Show subscribed parts on the homepage" msgstr "在主页上显示已订阅的零件" -#: common/models.py:2226 +#: common/models.py:2293 msgid "Show subscribed categories" msgstr "显示已订阅的类别" -#: common/models.py:2227 +#: common/models.py:2294 msgid "Show subscribed part categories on the homepage" msgstr "在主页上显示已订阅的零件类别" -#: common/models.py:2232 +#: common/models.py:2299 msgid "Show latest parts" msgstr "显示最新零件" -#: common/models.py:2233 +#: common/models.py:2300 msgid "Show latest parts on the homepage" msgstr "在主页上显示最新零件" -#: common/models.py:2238 +#: common/models.py:2305 msgid "Show invalid BOMs" msgstr "显示无效的物料清单" -#: common/models.py:2239 +#: common/models.py:2306 msgid "Show BOMs that await validation on the homepage" msgstr "在主页上显示等待验证的物料清单" -#: common/models.py:2244 +#: common/models.py:2311 msgid "Show recent stock changes" msgstr "显示最近的库存变动" -#: common/models.py:2245 +#: common/models.py:2312 msgid "Show recently changed stock items on the homepage" msgstr "在主页上显示最近更改的库存项目" -#: common/models.py:2250 +#: common/models.py:2317 msgid "Show low stock" msgstr "显示低库存" -#: common/models.py:2251 +#: common/models.py:2318 msgid "Show low stock items on the homepage" msgstr "在主页上显示低库存商品" -#: common/models.py:2256 +#: common/models.py:2323 msgid "Show depleted stock" msgstr "显示已耗尽的库存" -#: common/models.py:2257 +#: common/models.py:2324 msgid "Show depleted stock items on the homepage" msgstr "在主页上显示已耗尽的库存项目" -#: common/models.py:2262 +#: common/models.py:2329 msgid "Show needed stock" msgstr "显示所需库存" -#: common/models.py:2263 +#: common/models.py:2330 msgid "Show stock items needed for builds on the homepage" msgstr "在主页上显示构建所需的库存项目" -#: common/models.py:2268 +#: common/models.py:2335 msgid "Show expired stock" msgstr "显示过期库存" -#: common/models.py:2269 +#: common/models.py:2336 msgid "Show expired stock items on the homepage" msgstr "在主页上显示过期的库存项目" -#: common/models.py:2274 +#: common/models.py:2341 msgid "Show stale stock" msgstr "显示过期库存" -#: common/models.py:2275 +#: common/models.py:2342 msgid "Show stale stock items on the homepage" msgstr "在主页上显示过期库存商品" -#: common/models.py:2280 +#: common/models.py:2347 msgid "Show pending builds" msgstr "显示待处理的构建" -#: common/models.py:2281 +#: common/models.py:2348 msgid "Show pending builds on the homepage" msgstr "在主页上显示待处理的构建" -#: common/models.py:2286 +#: common/models.py:2353 msgid "Show overdue builds" msgstr "显示过期的构建" -#: common/models.py:2287 +#: common/models.py:2354 msgid "Show overdue builds on the homepage" msgstr "在主页上显示过期的构建" -#: common/models.py:2292 +#: common/models.py:2359 msgid "Show outstanding POs" msgstr "显示出色的PO" -#: common/models.py:2293 +#: common/models.py:2360 msgid "Show outstanding POs on the homepage" msgstr "在主页上显示优秀的PO" -#: common/models.py:2298 +#: common/models.py:2365 msgid "Show overdue POs" msgstr "显示过期订单" -#: common/models.py:2299 +#: common/models.py:2366 msgid "Show overdue POs on the homepage" msgstr "在主页上显示逾期订单" -#: common/models.py:2304 +#: common/models.py:2371 msgid "Show outstanding SOs" msgstr "展示杰出的SO" -#: common/models.py:2305 +#: common/models.py:2372 msgid "Show outstanding SOs on the homepage" msgstr "在主页上显示优秀的SO" -#: common/models.py:2310 +#: common/models.py:2377 msgid "Show overdue SOs" msgstr "显示过期的SO" -#: common/models.py:2311 +#: common/models.py:2378 msgid "Show overdue SOs on the homepage" msgstr "在主页上显示过期的SO" -#: common/models.py:2316 +#: common/models.py:2383 msgid "Show pending SO shipments" msgstr "显示待处理的SO发货" -#: common/models.py:2317 +#: common/models.py:2384 msgid "Show pending SO shipments on the homepage" msgstr "在主页上显示待处理的SO发货" -#: common/models.py:2322 +#: common/models.py:2389 msgid "Show News" msgstr "显示新闻" -#: common/models.py:2323 +#: common/models.py:2390 msgid "Show news on the homepage" msgstr "在主页上显示新闻" -#: common/models.py:2328 +#: common/models.py:2395 msgid "Inline label display" msgstr "内联标签显示" -#: common/models.py:2330 +#: common/models.py:2397 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "在浏览器中显示PDF标签,而不是作为文件下载" -#: common/models.py:2336 +#: common/models.py:2403 msgid "Default label printer" msgstr "默认标签打印机" -#: common/models.py:2338 +#: common/models.py:2405 msgid "Configure which label printer should be selected by default" msgstr "配置默认情况下应选择哪个标签打印机" -#: common/models.py:2344 +#: common/models.py:2411 msgid "Inline report display" msgstr "内联报告显示" -#: common/models.py:2346 +#: common/models.py:2413 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "在浏览器中显示PDF报告,而不是作为文件下载" -#: common/models.py:2352 +#: common/models.py:2419 msgid "Search Parts" msgstr "搜索零件" -#: common/models.py:2353 +#: common/models.py:2420 msgid "Display parts in search preview window" msgstr "在搜索预览窗口中显示零件" -#: common/models.py:2358 +#: common/models.py:2425 msgid "Search Supplier Parts" msgstr "搜索供应商零件" -#: common/models.py:2359 +#: common/models.py:2426 msgid "Display supplier parts in search preview window" msgstr "在搜索预览窗口中显示供应商零件" -#: common/models.py:2364 +#: common/models.py:2431 msgid "Search Manufacturer Parts" msgstr "搜索制造商零件" -#: common/models.py:2365 +#: common/models.py:2432 msgid "Display manufacturer parts in search preview window" msgstr "在搜索预览窗口中显示制造商零件" -#: common/models.py:2370 +#: common/models.py:2437 msgid "Hide Inactive Parts" msgstr "隐藏非活动零件" -#: common/models.py:2371 +#: common/models.py:2438 msgid "Excluded inactive parts from search preview window" msgstr "从搜索预览窗口中排除非活动零件" -#: common/models.py:2376 +#: common/models.py:2443 msgid "Search Categories" msgstr "搜索分类" -#: common/models.py:2377 +#: common/models.py:2444 msgid "Display part categories in search preview window" msgstr "在搜索预览窗口中显示零件类别" -#: common/models.py:2382 +#: common/models.py:2449 msgid "Search Stock" msgstr "搜索库存" -#: common/models.py:2383 +#: common/models.py:2450 msgid "Display stock items in search preview window" msgstr "在搜索预览窗口中显示库存项目" -#: common/models.py:2388 +#: common/models.py:2455 msgid "Hide Unavailable Stock Items" msgstr "隐藏不可用的库存项目" -#: common/models.py:2390 +#: common/models.py:2457 msgid "Exclude stock items which are not available from the search preview window" msgstr "排除搜索预览窗口中不可用的库存项目" -#: common/models.py:2396 +#: common/models.py:2463 msgid "Search Locations" msgstr "搜索地点" -#: common/models.py:2397 +#: common/models.py:2464 msgid "Display stock locations in search preview window" msgstr "在搜索预览窗口中显示库存位置" -#: common/models.py:2402 +#: common/models.py:2469 msgid "Search Companies" msgstr "搜索公司" -#: common/models.py:2403 +#: common/models.py:2470 msgid "Display companies in search preview window" msgstr "在搜索预览窗口中显示公司" -#: common/models.py:2408 +#: common/models.py:2475 msgid "Search Build Orders" msgstr "搜索生产订单" -#: common/models.py:2409 +#: common/models.py:2476 msgid "Display build orders in search preview window" msgstr "在搜索预览窗口中显示生产订单" -#: common/models.py:2414 +#: common/models.py:2481 msgid "Search Purchase Orders" msgstr "搜索采购订单" -#: common/models.py:2415 +#: common/models.py:2482 msgid "Display purchase orders in search preview window" msgstr "在搜索预览窗口中显示采购订单" -#: common/models.py:2420 +#: common/models.py:2487 msgid "Exclude Inactive Purchase Orders" msgstr "排除未激活的采购订单" -#: common/models.py:2422 +#: common/models.py:2489 msgid "Exclude inactive purchase orders from search preview window" msgstr "从搜索预览窗口中排除不活动的采购订单" -#: common/models.py:2428 +#: common/models.py:2495 msgid "Search Sales Orders" msgstr "搜索销售订单" -#: common/models.py:2429 +#: common/models.py:2496 msgid "Display sales orders in search preview window" msgstr "在搜索预览窗口中显示销售订单" -#: common/models.py:2434 +#: common/models.py:2501 msgid "Exclude Inactive Sales Orders" msgstr "排除未激活的销售订单" -#: common/models.py:2436 +#: common/models.py:2503 msgid "Exclude inactive sales orders from search preview window" msgstr "从搜索预览窗口中排除不活动的销售订单" -#: common/models.py:2442 +#: common/models.py:2509 msgid "Search Return Orders" msgstr "搜索退货订单" -#: common/models.py:2443 +#: common/models.py:2510 msgid "Display return orders in search preview window" msgstr "在搜索预览窗口中显示退货订单" -#: common/models.py:2448 +#: common/models.py:2515 msgid "Exclude Inactive Return Orders" msgstr "排除未激活的退货订单" -#: common/models.py:2450 +#: common/models.py:2517 msgid "Exclude inactive return orders from search preview window" msgstr "从搜索预览窗口中排除不活动的退货订单" -#: common/models.py:2456 +#: common/models.py:2523 msgid "Search Preview Results" msgstr "搜索预览结果" -#: common/models.py:2458 +#: common/models.py:2525 msgid "Number of results to show in each section of the search preview window" msgstr "在搜索预览窗口的每个部分中显示的结果数" -#: common/models.py:2464 +#: common/models.py:2531 msgid "Regex Search" msgstr "正则表达式搜索" -#: common/models.py:2465 +#: common/models.py:2532 msgid "Enable regular expressions in search queries" msgstr "在搜索查询中启用正则表达式" -#: common/models.py:2470 +#: common/models.py:2537 msgid "Whole Word Search" msgstr "整词搜索" -#: common/models.py:2471 +#: common/models.py:2538 msgid "Search queries return results for whole word matches" msgstr "搜索查询返回整词匹配的结果" -#: common/models.py:2476 +#: common/models.py:2543 msgid "Show Quantity in Forms" msgstr "在表格中显示数量" -#: common/models.py:2477 +#: common/models.py:2544 msgid "Display available part quantity in some forms" msgstr "以某些形式显示可用零件数量" -#: common/models.py:2482 +#: common/models.py:2549 msgid "Escape Key Closes Forms" msgstr "Esc键关闭窗体" -#: common/models.py:2483 +#: common/models.py:2550 msgid "Use the escape key to close modal forms" msgstr "使用ESC键关闭模态窗体" -#: common/models.py:2488 +#: common/models.py:2555 msgid "Fixed Navbar" msgstr "固定导航栏" -#: common/models.py:2489 +#: common/models.py:2556 msgid "The navbar position is fixed to the top of the screen" msgstr "导航栏位置固定在屏幕顶部" -#: common/models.py:2494 +#: common/models.py:2561 msgid "Date Format" msgstr "时间格式" -#: common/models.py:2495 +#: common/models.py:2562 msgid "Preferred format for displaying dates" msgstr "显示时间的首选格式" -#: common/models.py:2508 part/templates/part/detail.html:41 +#: common/models.py:2575 part/templates/part/detail.html:41 msgid "Part Scheduling" msgstr "零件调度" -#: common/models.py:2509 +#: common/models.py:2576 msgid "Display part scheduling information" msgstr "显示零件排程信息" -#: common/models.py:2514 part/templates/part/detail.html:62 +#: common/models.py:2581 part/templates/part/detail.html:62 msgid "Part Stocktake" msgstr "零件盘点" -#: common/models.py:2516 +#: common/models.py:2583 msgid "Display part stocktake information (if stocktake functionality is enabled)" msgstr "显示零件盘点信息 (如果启用了盘点功能)" -#: common/models.py:2522 +#: common/models.py:2589 msgid "Table String Length" msgstr "表字符串长度" -#: common/models.py:2524 +#: common/models.py:2591 msgid "Maximum length limit for strings displayed in table views" msgstr "表视图中显示的字符串的最大长度限制" -#: common/models.py:2530 +#: common/models.py:2597 msgid "Receive error reports" msgstr "接收错误报告" -#: common/models.py:2531 +#: common/models.py:2598 msgid "Receive notifications for system errors" msgstr "接收系统错误通知" -#: common/models.py:2536 +#: common/models.py:2603 msgid "Last used printing machines" msgstr "上次使用的打印设备" -#: common/models.py:2537 +#: common/models.py:2604 msgid "Save the last used printing machines for a user" msgstr "为用户保存上次使用的打印设备" -#: common/models.py:2557 common/models.py:2558 common/models.py:2715 -#: common/models.py:2716 common/models.py:2961 common/models.py:2962 -#: common/models.py:3288 common/models.py:3289 importer/models.py:88 -#: part/models.py:3307 part/models.py:3394 part/models.py:3468 -#: part/models.py:3496 plugin/models.py:274 plugin/models.py:275 -#: report/templates/report/inventree_test_report.html:105 -#: templates/js/translated/stock.js:3120 users/models.py:111 +#: common/models.py:2621 common/models.py:2622 common/models.py:2779 +#: common/models.py:2780 common/models.py:3025 common/models.py:3026 +#: common/models.py:3349 common/models.py:3350 common/models.py:3534 +#: importer/models.py:89 part/models.py:3358 part/models.py:3445 +#: part/models.py:3519 part/models.py:3547 plugin/models.py:313 +#: plugin/models.py:314 report/templates/report/inventree_test_report.html:105 +#: templates/js/translated/stock.js:3121 users/models.py:111 msgid "User" msgstr "使用者" -#: common/models.py:2580 +#: common/models.py:2644 msgid "Price break quantity" msgstr "批发价数量" -#: common/models.py:2587 company/serializers.py:513 order/admin.py:42 -#: order/models.py:1430 order/models.py:2417 -#: templates/js/translated/company.js:1823 templates/js/translated/part.js:1892 +#: common/models.py:2651 company/serializers.py:524 order/admin.py:42 +#: order/models.py:1447 order/models.py:2456 +#: templates/js/translated/company.js:1824 templates/js/translated/part.js:1892 #: templates/js/translated/pricing.js:621 #: templates/js/translated/return_order.js:739 msgid "Price" msgstr "价格" -#: common/models.py:2588 +#: common/models.py:2652 msgid "Unit price at specified quantity" msgstr "指定数量的单位价格" -#: common/models.py:2692 common/models.py:2877 +#: common/models.py:2756 common/models.py:2941 msgid "Endpoint" msgstr "端点" -#: common/models.py:2693 +#: common/models.py:2757 msgid "Endpoint at which this webhook is received" msgstr "接收此网络钩子的端点" -#: common/models.py:2703 +#: common/models.py:2767 msgid "Name for this webhook" msgstr "此网络钩子的名称" -#: common/models.py:2707 +#: common/models.py:2771 msgid "Is this webhook active" msgstr "网络钩子是否已启用" -#: common/models.py:2723 users/models.py:159 +#: common/models.py:2787 users/models.py:159 msgid "Token" msgstr "令牌" -#: common/models.py:2724 +#: common/models.py:2788 msgid "Token for access" msgstr "访问令牌" -#: common/models.py:2732 +#: common/models.py:2796 msgid "Secret" msgstr "密钥" -#: common/models.py:2733 +#: common/models.py:2797 msgid "Shared secret for HMAC" msgstr "HMAC共享密钥" -#: common/models.py:2841 +#: common/models.py:2905 msgid "Message ID" msgstr "消息ID" -#: common/models.py:2842 +#: common/models.py:2906 msgid "Unique identifier for this message" msgstr "此邮件的唯一标识符" -#: common/models.py:2850 +#: common/models.py:2914 msgid "Host" msgstr "主机" -#: common/models.py:2851 +#: common/models.py:2915 msgid "Host from which this message was received" msgstr "接收此消息的主机" -#: common/models.py:2859 +#: common/models.py:2923 msgid "Header" msgstr "标题" -#: common/models.py:2860 +#: common/models.py:2924 msgid "Header of this message" msgstr "此消息的标题" -#: common/models.py:2867 +#: common/models.py:2931 msgid "Body" msgstr "正文" -#: common/models.py:2868 +#: common/models.py:2932 msgid "Body of this message" msgstr "此消息的正文" -#: common/models.py:2878 +#: common/models.py:2942 msgid "Endpoint on which this message was received" msgstr "接收此消息的终点" -#: common/models.py:2883 +#: common/models.py:2947 msgid "Worked on" msgstr "工作于" -#: common/models.py:2884 +#: common/models.py:2948 msgid "Was the work on this message finished?" msgstr "这条消息的工作完成了吗?" -#: common/models.py:3010 +#: common/models.py:3074 msgid "Id" msgstr "标识" -#: common/models.py:3012 templates/js/translated/company.js:965 -#: templates/js/translated/news.js:44 +#: common/models.py:3076 part/serializers.py:271 +#: templates/js/translated/company.js:966 templates/js/translated/news.js:44 msgid "Title" msgstr "标题" -#: common/models.py:3014 common/models.py:3272 company/models.py:149 -#: company/models.py:446 company/models.py:512 company/models.py:818 -#: order/models.py:302 order/models.py:1385 order/models.py:1817 -#: part/admin.py:55 part/models.py:1057 +#: common/models.py:3078 common/models.py:3333 company/models.py:146 +#: company/models.py:443 company/models.py:509 company/models.py:815 +#: order/models.py:309 order/models.py:1402 order/models.py:1846 +#: part/admin.py:55 part/models.py:1118 #: part/templates/part/part_scheduling.html:11 #: report/templates/report/inventree_build_order_report.html:164 -#: stock/admin.py:229 templates/js/translated/company.js:1319 -#: templates/js/translated/company.js:1673 templates/js/translated/order.js:376 +#: stock/admin.py:230 templates/js/translated/company.js:1320 +#: templates/js/translated/company.js:1674 templates/js/translated/order.js:376 #: templates/js/translated/part.js:2475 -#: templates/js/translated/purchase_order.js:2110 -#: templates/js/translated/purchase_order.js:2274 +#: templates/js/translated/purchase_order.js:2094 +#: templates/js/translated/purchase_order.js:2258 #: templates/js/translated/return_order.js:778 -#: templates/js/translated/sales_order.js:1092 -#: templates/js/translated/sales_order.js:2023 +#: templates/js/translated/sales_order.js:1058 +#: templates/js/translated/sales_order.js:2004 msgid "Link" msgstr "連結" -#: common/models.py:3016 templates/js/translated/news.js:60 +#: common/models.py:3080 templates/js/translated/news.js:60 msgid "Published" msgstr "已发布" -#: common/models.py:3018 templates/InvenTree/settings/plugin_settings.html:32 +#: common/models.py:3082 templates/InvenTree/settings/plugin_settings.html:32 #: templates/js/translated/news.js:56 templates/js/translated/plugin.js:103 msgid "Author" msgstr "作者" -#: common/models.py:3020 templates/js/translated/news.js:52 +#: common/models.py:3084 templates/js/translated/news.js:52 msgid "Summary" msgstr "摘要" -#: common/models.py:3023 +#: common/models.py:3087 msgid "Read" msgstr "阅读" -#: common/models.py:3023 +#: common/models.py:3087 msgid "Was this news item read?" msgstr "这条新闻被阅读了吗?" -#: common/models.py:3040 company/models.py:159 part/models.py:1067 +#: common/models.py:3104 company/models.py:156 part/models.py:1128 #: report/templates/report/inventree_bill_of_materials_report.html:126 #: report/templates/report/inventree_bill_of_materials_report.html:148 #: report/templates/report/inventree_return_order_report.html:35 -#: stock/templates/stock/item_base.html:133 templates/503.html:31 +#: stock/templates/stock/item_base.html:130 templates/503.html:31 #: templates/hover_image.html:7 templates/hover_image.html:9 #: templates/modals.html:6 msgid "Image" msgstr "图像" -#: common/models.py:3040 +#: common/models.py:3104 msgid "Image file" msgstr "图像文件" -#: common/models.py:3052 common/models.py:3256 +#: common/models.py:3116 common/models.py:3317 msgid "Target model type for this image" msgstr "此图像的目标模型类型" -#: common/models.py:3056 +#: common/models.py:3120 msgid "Target model ID for this image" msgstr "此图像的目标型号ID" -#: common/models.py:3078 +#: common/models.py:3142 msgid "Custom Unit" msgstr "自定义单位" -#: common/models.py:3099 +#: common/models.py:3160 msgid "Unit symbol must be unique" msgstr "单位符号必须唯一" -#: common/models.py:3114 +#: common/models.py:3175 msgid "Unit name must be a valid identifier" msgstr "单位名称必须是有效的标识符" -#: common/models.py:3133 +#: common/models.py:3194 msgid "Unit name" msgstr "单位名称" -#: common/models.py:3140 templates/InvenTree/settings/settings_staff_js.html:75 +#: common/models.py:3201 templates/InvenTree/settings/settings_staff_js.html:75 msgid "Symbol" msgstr "符号" -#: common/models.py:3141 +#: common/models.py:3202 msgid "Optional unit symbol" msgstr "可选单位符号" -#: common/models.py:3147 templates/InvenTree/settings/settings_staff_js.html:71 +#: common/models.py:3208 templates/InvenTree/settings/settings_staff_js.html:71 msgid "Definition" msgstr "定义" -#: common/models.py:3148 +#: common/models.py:3209 msgid "Unit definition" msgstr "单位定义" -#: common/models.py:3206 common/models.py:3263 stock/models.py:2558 -#: templates/js/translated/attachment.js:119 +#: common/models.py:3267 common/models.py:3324 stock/models.py:2674 +#: stock/serializers.py:244 templates/js/translated/attachment.js:119 #: templates/js/translated/attachment.js:345 msgid "Attachment" msgstr "附件" -#: common/models.py:3218 +#: common/models.py:3279 msgid "Missing file" msgstr "缺少檔案" -#: common/models.py:3219 +#: common/models.py:3280 msgid "Missing external link" msgstr "缺少外部連結" -#: common/models.py:3264 +#: common/models.py:3325 msgid "Select file to attach" msgstr "選擇附件" -#: common/models.py:3279 templates/js/translated/attachment.js:120 +#: common/models.py:3340 templates/js/translated/attachment.js:120 #: templates/js/translated/attachment.js:360 msgid "Comment" msgstr "註解" -#: common/models.py:3280 +#: common/models.py:3341 msgid "Attachment comment" msgstr "附件评论" -#: common/models.py:3296 +#: common/models.py:3357 msgid "Upload date" msgstr "上传日期" -#: common/models.py:3297 +#: common/models.py:3358 msgid "Date the file was uploaded" msgstr "上传文件的日期" -#: common/models.py:3301 +#: common/models.py:3362 msgid "File size" msgstr "文件大小" -#: common/models.py:3301 +#: common/models.py:3362 msgid "File size in bytes" msgstr "文件大小,以字节为单位" -#: common/models.py:3339 common/serializers.py:562 +#: common/models.py:3400 common/serializers.py:609 msgid "Invalid model type specified for attachment" msgstr "为附件指定的模型类型无效" -#: common/notifications.py:314 +#: common/models.py:3409 plugin/models.py:43 users/models.py:100 +msgid "Key" +msgstr "键" + +#: common/models.py:3410 +msgid "Value that will be saved in the models database" +msgstr "将保存到型号数据库中的值" + +#: common/models.py:3413 +msgid "Name of the state" +msgstr "状态名" + +#: common/models.py:3417 part/serializers.py:273 +msgid "Label" +msgstr "标签" + +#: common/models.py:3418 +msgid "Label that will be displayed in the frontend" +msgstr "将在前端显示的标签" + +#: common/models.py:3424 +msgid "Color" +msgstr "颜色" + +#: common/models.py:3425 +msgid "Color that will be displayed in the frontend" +msgstr "将在前端显示颜色" + +#: common/models.py:3428 +msgid "Logical Key" +msgstr "逻辑密钥" + +#: common/models.py:3430 +msgid "State logical key that is equal to this custom state in business logic" +msgstr "等同于商业逻辑中自定义状态的状态逻辑键" + +#: common/models.py:3438 part/serializers.py:275 +msgid "Model" +msgstr "型号" + +#: common/models.py:3439 +msgid "Model this state is associated with" +msgstr "该状态关联的模型" + +#: common/models.py:3443 +msgid "Reference Status Set" +msgstr "参考状态设置" + +#: common/models.py:3444 +msgid "Status set that is extended with this custom state" +msgstr "使用此自定义状态扩展状态的状态集" + +#: common/models.py:3450 +msgid "Custom State" +msgstr "自定状态" + +#: common/models.py:3451 +msgid "Custom States" +msgstr "定制状态" + +#: common/models.py:3466 +msgid "Model must be selected" +msgstr "必须选定模型" + +#: common/models.py:3469 +msgid "Key must be selected" +msgstr "必须选取密钥" + +#: common/models.py:3472 +msgid "Logical key must be selected" +msgstr "必须选中逻辑密钥" + +#: common/models.py:3476 +msgid "Key must be different from logical key" +msgstr "密钥必须不同于逻辑密钥" + +#: common/models.py:3480 +msgid "Reference status must be selected" +msgstr "必须选中参考状态" + +#: common/models.py:3492 +msgid "Reference status set not found" +msgstr "未找到参考状态集" + +#: common/models.py:3498 +msgid "Key must be different from the logical keys of the reference status" +msgstr "密钥必须不同于参考状态的逻辑密钥" + +#: common/models.py:3504 +msgid "Logical key must be in the logical keys of the reference status" +msgstr "逻辑密钥必须在参考状态的逻辑键中" + +#: common/models.py:3519 +msgid "Barcode Scan" +msgstr "扫描条码" + +#: common/models.py:3523 importer/models.py:512 part/models.py:4009 +msgid "Data" +msgstr "数据" + +#: common/models.py:3524 +msgid "Barcode data" +msgstr "条码数据" + +#: common/models.py:3535 +msgid "User who scanned the barcode" +msgstr "扫描条形码" + +#: common/models.py:3540 importer/models.py:60 +msgid "Timestamp" +msgstr "时间戳" + +#: common/models.py:3541 +msgid "Date and time of the barcode scan" +msgstr "扫描条形码的日期和时间" + +#: common/models.py:3547 +msgid "URL endpoint which processed the barcode" +msgstr "处理条形码的 URL 终点" + +#: common/models.py:3554 order/models.py:1437 plugin/serializers.py:89 +msgid "Context" +msgstr "上下文" + +#: common/models.py:3555 +msgid "Context data for the barcode scan" +msgstr "扫描条形码的上下文数据" + +#: common/models.py:3562 +msgid "Response" +msgstr "响应" + +#: common/models.py:3563 +msgid "Response data from the barcode scan" +msgstr "扫描条形码的响应数据" + +#: common/models.py:3569 report/templates/report/inventree_test_report.html:103 +#: stock/models.py:2660 +msgid "Result" +msgstr "结果" + +#: common/models.py:3570 +msgid "Was the barcode scan successful?" +msgstr "条码扫描成功吗?" + +#: common/notifications.py:328 #, python-brace-format msgid "New {verbose_name}" msgstr "新建{verbose_name}" -#: common/notifications.py:316 +#: common/notifications.py:330 msgid "A new order has been created and assigned to you" msgstr "新订单已创建并分配给您" -#: common/notifications.py:322 +#: common/notifications.py:336 #, python-brace-format msgid "{verbose_name} canceled" msgstr "{verbose_name} 已取消" -#: common/notifications.py:324 +#: common/notifications.py:338 msgid "A order that is assigned to you was canceled" msgstr "分配给您的订单已取消" -#: common/notifications.py:330 common/notifications.py:337 order/api.py:462 +#: common/notifications.py:344 common/notifications.py:351 order/api.py:440 msgid "Items Received" msgstr "收到的物品" -#: common/notifications.py:332 +#: common/notifications.py:346 msgid "Items have been received against a purchase order" msgstr "已根据采购订单收到物品" -#: common/notifications.py:339 +#: common/notifications.py:353 msgid "Items have been received against a return order" msgstr "已收到退货订单中的物品" -#: common/notifications.py:457 +#: common/notifications.py:475 msgid "Error raised by plugin" msgstr "插件引发的错误" -#: common/serializers.py:375 +#: common/serializers.py:423 msgid "Is Running" msgstr "正在运行" -#: common/serializers.py:381 +#: common/serializers.py:429 msgid "Pending Tasks" msgstr "等待完成的任务" -#: common/serializers.py:387 +#: common/serializers.py:435 msgid "Scheduled Tasks" msgstr "预定的任务" -#: common/serializers.py:393 +#: common/serializers.py:441 msgid "Failed Tasks" msgstr "失败的任务" -#: common/serializers.py:408 +#: common/serializers.py:456 msgid "Task ID" msgstr "任务ID" -#: common/serializers.py:408 +#: common/serializers.py:456 msgid "Unique task ID" msgstr "唯一任务ID" -#: common/serializers.py:410 +#: common/serializers.py:458 msgid "Lock" msgstr "锁定" -#: common/serializers.py:410 +#: common/serializers.py:458 msgid "Lock time" msgstr "锁定时间" -#: common/serializers.py:412 +#: common/serializers.py:460 msgid "Task name" msgstr "任务名称" -#: common/serializers.py:414 +#: common/serializers.py:462 msgid "Function" msgstr "功能" -#: common/serializers.py:414 +#: common/serializers.py:462 msgid "Function name" msgstr "功能名称" -#: common/serializers.py:416 +#: common/serializers.py:464 msgid "Arguments" msgstr "参数" -#: common/serializers.py:416 +#: common/serializers.py:464 msgid "Task arguments" msgstr "任务参数" -#: common/serializers.py:419 +#: common/serializers.py:467 msgid "Keyword Arguments" msgstr "关键字参数" -#: common/serializers.py:419 +#: common/serializers.py:467 msgid "Task keyword arguments" msgstr "任务关键词参数" -#: common/serializers.py:529 +#: common/serializers.py:577 msgid "Filename" msgstr "檔案名稱" -#: common/serializers.py:536 report/api.py:100 report/serializers.py:53 +#: common/serializers.py:584 report/api.py:100 report/serializers.py:54 msgid "Model Type" msgstr "模型类型" -#: common/serializers.py:565 +#: common/serializers.py:612 msgid "User does not have permission to create or edit attachments for this model" msgstr "用户无权为此模式创建或编辑附件" @@ -4116,15 +4295,15 @@ msgstr "匹配字段" msgid "Match Items" msgstr "匹配项目" -#: common/views.py:401 +#: common/views.py:397 msgid "Fields matching failed" msgstr "字段匹配失败" -#: common/views.py:464 +#: common/views.py:460 msgid "Parts imported" msgstr "已导入零件" -#: common/views.py:494 order/templates/order/order_wizard/match_fields.html:27 +#: common/views.py:490 order/templates/order/order_wizard/match_fields.html:27 #: order/templates/order/order_wizard/match_parts.html:19 #: order/templates/order/order_wizard/po_upload.html:49 #: part/templates/part/import_wizard/match_fields.html:27 @@ -4155,429 +4334,429 @@ msgstr "内部零件已激活" msgid "Supplier is Active" msgstr "供应商已激活" -#: company/models.py:100 company/models.py:371 +#: company/models.py:97 company/models.py:368 #: company/templates/company/company_base.html:8 #: company/templates/company/company_base.html:12 stock/api.py:812 -#: templates/InvenTree/search.html:178 templates/js/translated/company.js:496 +#: templates/InvenTree/search.html:178 templates/js/translated/company.js:497 msgid "Company" msgstr "公司" -#: company/models.py:101 company/views.py:51 +#: company/models.py:98 company/views.py:51 #: templates/js/translated/search.js:192 msgid "Companies" msgstr "公司" -#: company/models.py:117 +#: company/models.py:114 msgid "Company description" msgstr "公司简介" -#: company/models.py:118 +#: company/models.py:115 msgid "Description of the company" msgstr "公司简介" -#: company/models.py:123 company/templates/company/company_base.html:106 +#: company/models.py:120 company/templates/company/company_base.html:106 #: templates/InvenTree/settings/plugin_settings.html:54 -#: templates/js/translated/company.js:532 +#: templates/js/translated/company.js:533 msgid "Website" msgstr "网站" -#: company/models.py:123 +#: company/models.py:120 msgid "Company website URL" msgstr "公司网站" -#: company/models.py:128 +#: company/models.py:125 msgid "Phone number" msgstr "电话号码" -#: company/models.py:130 +#: company/models.py:127 msgid "Contact phone number" msgstr "联系电话" -#: company/models.py:137 +#: company/models.py:134 msgid "Contact email address" msgstr "联系人电子邮箱地址" -#: company/models.py:142 company/models.py:275 -#: company/templates/company/company_base.html:145 order/models.py:342 -#: order/templates/order/order_base.html:208 -#: order/templates/order/return_order_base.html:177 -#: order/templates/order/sales_order_base.html:221 +#: company/models.py:139 company/models.py:272 +#: company/templates/company/company_base.html:145 order/models.py:349 +#: order/templates/order/order_base.html:217 +#: order/templates/order/return_order_base.html:178 +#: order/templates/order/sales_order_base.html:222 msgid "Contact" msgstr "联系人" -#: company/models.py:144 +#: company/models.py:141 msgid "Point of contact" msgstr "联络点" -#: company/models.py:150 +#: company/models.py:147 msgid "Link to external company information" msgstr "外部公司信息链接" -#: company/models.py:163 +#: company/models.py:160 msgid "Is this company active?" msgstr "这家公司是否激活?" -#: company/models.py:168 +#: company/models.py:165 msgid "Is customer" msgstr "是客户" -#: company/models.py:169 +#: company/models.py:166 msgid "Do you sell items to this company?" msgstr "你是否向该公司出售商品?" -#: company/models.py:174 +#: company/models.py:171 msgid "Is supplier" msgstr "是否为供应商" -#: company/models.py:175 +#: company/models.py:172 msgid "Do you purchase items from this company?" msgstr "你从这家公司买东西吗?" -#: company/models.py:180 +#: company/models.py:177 msgid "Is manufacturer" msgstr "是制造商吗" -#: company/models.py:181 +#: company/models.py:178 msgid "Does this company manufacture parts?" msgstr "这家公司生产零件吗?" -#: company/models.py:189 +#: company/models.py:186 msgid "Default currency used for this company" msgstr "此公司使用的默认货币" -#: company/models.py:314 company/templates/company/company_base.html:124 -#: order/models.py:352 order/templates/order/order_base.html:215 -#: order/templates/order/return_order_base.html:184 -#: order/templates/order/sales_order_base.html:228 +#: company/models.py:311 company/templates/company/company_base.html:124 +#: order/models.py:359 order/templates/order/order_base.html:224 +#: order/templates/order/return_order_base.html:185 +#: order/templates/order/sales_order_base.html:229 msgid "Address" msgstr "地址" -#: company/models.py:315 company/templates/company/sidebar.html:35 +#: company/models.py:312 company/templates/company/sidebar.html:35 msgid "Addresses" msgstr "地址" -#: company/models.py:372 +#: company/models.py:369 msgid "Select company" msgstr "选择公司" -#: company/models.py:377 +#: company/models.py:374 msgid "Address title" msgstr "地址标题" -#: company/models.py:378 +#: company/models.py:375 msgid "Title describing the address entry" msgstr "描述地址条目的标题" -#: company/models.py:384 +#: company/models.py:381 msgid "Primary address" msgstr "主要地址" -#: company/models.py:385 +#: company/models.py:382 msgid "Set as primary address" msgstr "设置主要地址" -#: company/models.py:390 templates/js/translated/company.js:914 -#: templates/js/translated/company.js:971 +#: company/models.py:387 templates/js/translated/company.js:915 +#: templates/js/translated/company.js:972 msgid "Line 1" msgstr "第1行" -#: company/models.py:391 +#: company/models.py:388 msgid "Address line 1" msgstr "地址行1" -#: company/models.py:397 templates/js/translated/company.js:915 -#: templates/js/translated/company.js:977 +#: company/models.py:394 templates/js/translated/company.js:916 +#: templates/js/translated/company.js:978 msgid "Line 2" msgstr "第2行" -#: company/models.py:398 +#: company/models.py:395 msgid "Address line 2" msgstr "地址行2" -#: company/models.py:404 company/models.py:405 -#: templates/js/translated/company.js:983 +#: company/models.py:401 company/models.py:402 +#: templates/js/translated/company.js:984 msgid "Postal code" msgstr "邮政编码" -#: company/models.py:411 +#: company/models.py:408 msgid "City/Region" msgstr "城市/地区" -#: company/models.py:412 +#: company/models.py:409 msgid "Postal code city/region" msgstr "邮政编码城市/地区" -#: company/models.py:418 +#: company/models.py:415 msgid "State/Province" msgstr "省/市/自治区" -#: company/models.py:419 +#: company/models.py:416 msgid "State or province" msgstr "省、自治区或直辖市" -#: company/models.py:425 templates/js/translated/company.js:1001 +#: company/models.py:422 templates/js/translated/company.js:1002 msgid "Country" msgstr "国家/地区" -#: company/models.py:426 +#: company/models.py:423 msgid "Address country" msgstr "地址所在国家" -#: company/models.py:432 +#: company/models.py:429 msgid "Courier shipping notes" msgstr "快递运单" -#: company/models.py:433 +#: company/models.py:430 msgid "Notes for shipping courier" msgstr "运输快递注意事项" -#: company/models.py:439 +#: company/models.py:436 msgid "Internal shipping notes" msgstr "内部装运通知单" -#: company/models.py:440 +#: company/models.py:437 msgid "Shipping notes for internal use" msgstr "内部使用的装运通知单" -#: company/models.py:447 +#: company/models.py:444 msgid "Link to address information (external)" msgstr "链接地址信息 (外部)" -#: company/models.py:470 company/models.py:587 company/models.py:811 +#: company/models.py:467 company/models.py:584 company/models.py:808 #: company/templates/company/manufacturer_part.html:7 #: company/templates/company/manufacturer_part.html:24 -#: stock/templates/stock/item_base.html:217 +#: stock/templates/stock/item_base.html:214 msgid "Manufacturer Part" msgstr "制造商零件" -#: company/models.py:487 company/models.py:779 stock/models.py:787 -#: stock/serializers.py:445 stock/templates/stock/item_base.html:142 +#: company/models.py:484 company/models.py:776 stock/models.py:864 +#: stock/serializers.py:455 stock/templates/stock/item_base.html:139 #: templates/js/translated/bom.js:622 msgid "Base Part" msgstr "基础零件" -#: company/models.py:489 company/models.py:781 +#: company/models.py:486 company/models.py:778 msgid "Select part" msgstr "选择零件" -#: company/models.py:498 company/templates/company/company_base.html:82 +#: company/models.py:495 company/templates/company/company_base.html:82 #: company/templates/company/manufacturer_part.html:90 -#: company/templates/company/supplier_part.html:145 part/serializers.py:554 -#: stock/templates/stock/item_base.html:207 -#: templates/js/translated/company.js:507 -#: templates/js/translated/company.js:1118 -#: templates/js/translated/company.js:1296 -#: templates/js/translated/company.js:1611 +#: company/templates/company/supplier_part.html:146 part/serializers.py:598 +#: stock/templates/stock/item_base.html:204 +#: templates/js/translated/company.js:508 +#: templates/js/translated/company.js:1119 +#: templates/js/translated/company.js:1297 +#: templates/js/translated/company.js:1612 #: templates/js/translated/table_filters.js:812 msgid "Manufacturer" msgstr "制造商" -#: company/models.py:499 +#: company/models.py:496 msgid "Select manufacturer" msgstr "选择制造商" -#: company/models.py:505 company/templates/company/manufacturer_part.html:101 -#: company/templates/company/supplier_part.html:153 order/serializers.py:556 -#: part/serializers.py:564 templates/js/translated/company.js:351 -#: templates/js/translated/company.js:1117 -#: templates/js/translated/company.js:1312 -#: templates/js/translated/company.js:1630 templates/js/translated/part.js:1807 -#: templates/js/translated/purchase_order.js:1921 -#: templates/js/translated/purchase_order.js:2123 +#: company/models.py:502 company/templates/company/manufacturer_part.html:101 +#: company/templates/company/supplier_part.html:154 order/serializers.py:641 +#: part/serializers.py:608 templates/js/translated/company.js:352 +#: templates/js/translated/company.js:1118 +#: templates/js/translated/company.js:1313 +#: templates/js/translated/company.js:1631 templates/js/translated/part.js:1807 +#: templates/js/translated/purchase_order.js:1905 +#: templates/js/translated/purchase_order.js:2107 msgid "MPN" msgstr "制造商零件编号" -#: company/models.py:513 +#: company/models.py:510 msgid "URL for external manufacturer part link" msgstr "外部制造商零件链接的URL" -#: company/models.py:522 +#: company/models.py:519 msgid "Manufacturer part description" msgstr "制造商零件说明" -#: company/models.py:575 +#: company/models.py:572 msgid "Manufacturer Part Parameter" msgstr "制造商零件参数" -#: company/models.py:594 +#: company/models.py:591 msgid "Parameter name" msgstr "参数名称" -#: company/models.py:600 report/templates/report/inventree_test_report.html:104 -#: stock/models.py:2550 templates/js/translated/company.js:1166 -#: templates/js/translated/company.js:1419 templates/js/translated/part.js:1499 +#: company/models.py:597 report/templates/report/inventree_test_report.html:104 +#: stock/models.py:2666 templates/js/translated/company.js:1167 +#: templates/js/translated/company.js:1420 templates/js/translated/part.js:1499 #: templates/js/translated/stock.js:1607 msgid "Value" msgstr "值" -#: company/models.py:601 +#: company/models.py:598 msgid "Parameter value" msgstr "参数值" -#: company/models.py:608 company/templates/company/supplier_part.html:168 -#: part/admin.py:57 part/models.py:1147 part/models.py:3771 -#: part/templates/part/part_base.html:293 -#: templates/js/translated/company.js:1425 templates/js/translated/part.js:1518 +#: company/models.py:605 company/templates/company/supplier_part.html:169 +#: part/admin.py:57 part/models.py:1208 part/models.py:3822 +#: part/templates/part/part_base.html:301 +#: templates/js/translated/company.js:1426 templates/js/translated/part.js:1518 #: templates/js/translated/part.js:1622 templates/js/translated/part.js:2376 msgid "Units" msgstr "单位" -#: company/models.py:609 +#: company/models.py:606 msgid "Parameter units" msgstr "参数单位" -#: company/models.py:662 company/templates/company/supplier_part.html:7 -#: company/templates/company/supplier_part.html:24 order/api.py:442 -#: order/serializers.py:491 stock/models.py:798 -#: stock/templates/stock/item_base.html:233 -#: templates/js/translated/build.js:1052 -#: templates/js/translated/company.js:1600 -#: templates/js/translated/purchase_order.js:752 -#: templates/js/translated/stock.js:2365 +#: company/models.py:659 company/templates/company/supplier_part.html:8 +#: company/templates/company/supplier_part.html:25 order/api.py:392 +#: order/serializers.py:576 stock/models.py:875 +#: stock/templates/stock/item_base.html:230 +#: templates/js/translated/build.js:1055 +#: templates/js/translated/company.js:1601 +#: templates/js/translated/purchase_order.js:735 +#: templates/js/translated/stock.js:2366 msgid "Supplier Part" msgstr "供应商零件" -#: company/models.py:719 +#: company/models.py:716 msgid "Pack units must be compatible with the base part units" msgstr "包装单位必须与基础零件单位兼容" -#: company/models.py:726 +#: company/models.py:723 msgid "Pack units must be greater than zero" msgstr "包装单位必须大于零" -#: company/models.py:740 +#: company/models.py:737 msgid "Linked manufacturer part must reference the same base part" msgstr "链接的制造商零件必须引用相同的基础零件" -#: company/models.py:789 company/templates/company/company_base.html:87 -#: company/templates/company/supplier_part.html:129 order/models.py:491 -#: order/templates/order/order_base.html:141 part/bom.py:280 part/bom.py:318 -#: part/serializers.py:538 plugin/builtin/suppliers/digikey.py:25 +#: company/models.py:786 company/templates/company/company_base.html:87 +#: company/templates/company/supplier_part.html:130 order/models.py:503 +#: order/templates/order/order_base.html:150 part/bom.py:279 part/bom.py:314 +#: part/serializers.py:582 plugin/builtin/suppliers/digikey.py:25 #: plugin/builtin/suppliers/lcsc.py:26 plugin/builtin/suppliers/mouser.py:24 -#: plugin/builtin/suppliers/tme.py:26 stock/templates/stock/item_base.html:224 +#: plugin/builtin/suppliers/tme.py:26 stock/templates/stock/item_base.html:221 #: templates/email/overdue_purchase_order.html:16 -#: templates/js/translated/company.js:350 -#: templates/js/translated/company.js:511 -#: templates/js/translated/company.js:1584 templates/js/translated/part.js:1775 +#: templates/js/translated/company.js:351 +#: templates/js/translated/company.js:512 +#: templates/js/translated/company.js:1585 templates/js/translated/part.js:1775 #: templates/js/translated/pricing.js:498 -#: templates/js/translated/purchase_order.js:1759 +#: templates/js/translated/purchase_order.js:1743 #: templates/js/translated/table_filters.js:816 msgid "Supplier" msgstr "供应商" -#: company/models.py:790 +#: company/models.py:787 msgid "Select supplier" msgstr "选择供应商" -#: company/models.py:796 part/serializers.py:549 +#: company/models.py:793 part/serializers.py:593 msgid "Supplier stock keeping unit" msgstr "供应商库存管理单位" -#: company/models.py:802 +#: company/models.py:799 msgid "Is this supplier part active?" msgstr "此供应商零件是否处于活动状态?" -#: company/models.py:812 +#: company/models.py:809 msgid "Select manufacturer part" msgstr "选择制造商零件" -#: company/models.py:819 +#: company/models.py:816 msgid "URL for external supplier part link" msgstr "外部供应商零件链接的URL" -#: company/models.py:828 +#: company/models.py:825 msgid "Supplier part description" msgstr "供应商零件说明" -#: company/models.py:835 company/templates/company/supplier_part.html:187 -#: order/serializers.py:698 part/admin.py:415 part/models.py:4288 +#: company/models.py:832 company/templates/company/supplier_part.html:188 +#: order/serializers.py:783 part/admin.py:415 part/models.py:4345 #: part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_bill_of_materials_report.html:140 #: report/templates/report/inventree_purchase_order_report.html:32 #: report/templates/report/inventree_return_order_report.html:27 #: report/templates/report/inventree_sales_order_report.html:32 #: report/templates/report/inventree_stock_location_report.html:105 -#: stock/serializers.py:776 templates/js/translated/purchase_order.js:1185 -#: templates/js/translated/purchase_order.js:1344 +#: stock/serializers.py:807 templates/js/translated/purchase_order.js:1168 +#: templates/js/translated/purchase_order.js:1327 msgid "Note" msgstr "备注" -#: company/models.py:844 part/models.py:2117 +#: company/models.py:841 part/models.py:2177 msgid "base cost" msgstr "基本费用" -#: company/models.py:845 part/models.py:2118 +#: company/models.py:842 part/models.py:2178 msgid "Minimum charge (e.g. stocking fee)" msgstr "最低费用(例如库存费)" -#: company/models.py:853 +#: company/models.py:850 msgid "Part packaging" msgstr "零件打包" -#: company/models.py:858 templates/js/translated/company.js:1651 +#: company/models.py:855 templates/js/translated/company.js:1652 #: templates/js/translated/part.js:1828 templates/js/translated/part.js:1884 -#: templates/js/translated/purchase_order.js:311 -#: templates/js/translated/purchase_order.js:841 -#: templates/js/translated/purchase_order.js:1103 -#: templates/js/translated/purchase_order.js:2154 -#: templates/js/translated/purchase_order.js:2171 +#: templates/js/translated/purchase_order.js:294 +#: templates/js/translated/purchase_order.js:824 +#: templates/js/translated/purchase_order.js:1086 +#: templates/js/translated/purchase_order.js:2138 +#: templates/js/translated/purchase_order.js:2155 msgid "Pack Quantity" msgstr "包装数量" -#: company/models.py:860 +#: company/models.py:857 msgid "Total quantity supplied in a single pack. Leave empty for single items." msgstr "单包供应的总数量。为单个项目留空。" -#: company/models.py:879 part/models.py:2124 +#: company/models.py:876 part/models.py:2184 msgid "multiple" msgstr "多个" -#: company/models.py:880 +#: company/models.py:877 msgid "Order multiple" msgstr "订购多个" -#: company/models.py:892 +#: company/models.py:889 msgid "Quantity available from supplier" msgstr "供应商提供的数量" -#: company/models.py:898 +#: company/models.py:895 msgid "Availability Updated" msgstr "可用性已更新" -#: company/models.py:899 +#: company/models.py:896 msgid "Date of last update of availability data" msgstr "上次更新可用性数据的日期" -#: company/models.py:1027 +#: company/models.py:1024 msgid "Supplier Price Break" msgstr "供应商批发价" -#: company/serializers.py:174 +#: company/serializers.py:178 msgid "Default currency used for this supplier" msgstr "此供应商使用的默认货币" -#: company/serializers.py:210 +#: company/serializers.py:214 msgid "Company Name" msgstr "公司名称" -#: company/serializers.py:393 part/admin.py:126 part/serializers.py:898 -#: part/templates/part/part_base.html:197 -#: templates/js/translated/company.js:1689 +#: company/serializers.py:397 part/admin.py:126 part/serializers.py:950 +#: part/templates/part/part_base.html:198 stock/serializers.py:474 +#: templates/js/translated/company.js:1690 #: templates/js/translated/table_filters.js:362 msgid "In Stock" msgstr "有库存" #: company/templates/company/company_base.html:16 -#: part/templates/part/part_base.html:146 -#: templates/js/translated/company.js:1287 -#: templates/js/translated/company.js:1575 -#: templates/js/translated/model_renderers.js:313 +#: part/templates/part/part_base.html:147 +#: templates/js/translated/company.js:1288 +#: templates/js/translated/company.js:1576 +#: templates/js/translated/model_renderers.js:316 #: templates/js/translated/part.js:817 templates/js/translated/part.js:1225 msgid "Inactive" msgstr "未激活" #: company/templates/company/company_base.html:27 -#: templates/js/translated/purchase_order.js:242 +#: templates/js/translated/purchase_order.js:224 msgid "Create Purchase Order" msgstr "创建采购订单" @@ -4590,7 +4769,7 @@ msgid "Edit company information" msgstr "编辑公司信息" #: company/templates/company/company_base.html:39 -#: templates/js/translated/company.js:445 +#: templates/js/translated/company.js:446 msgid "Edit Company" msgstr "编辑公司" @@ -4605,11 +4784,12 @@ msgstr "删除公司" #: company/templates/company/company_base.html:53 #: company/templates/company/manufacturer_part.html:51 -#: company/templates/company/supplier_part.html:83 +#: company/templates/company/supplier_part.html:84 #: part/templates/part/part_thumb.html:20 #: report/templates/report/inventree_build_order_report.html:98 #: report/templates/report/inventree_purchase_order_report.html:40 #: report/templates/report/inventree_sales_order_report.html:40 +#: report/templates/report/inventree_sales_order_shipment_report.html:37 #: report/templates/report/inventree_test_report.html:84 #: report/templates/report/inventree_test_report.html:162 msgid "Part image" @@ -4630,16 +4810,16 @@ msgstr "从 URL 下载图像" msgid "Delete image" msgstr "删除图像" -#: company/templates/company/company_base.html:92 order/models.py:990 -#: order/models.py:2147 order/templates/order/return_order_base.html:134 -#: order/templates/order/sales_order_base.html:151 stock/models.py:840 -#: stock/models.py:841 stock/serializers.py:1329 -#: stock/templates/stock/item_base.html:405 +#: company/templates/company/company_base.html:92 order/models.py:1017 +#: order/models.py:2186 order/templates/order/return_order_base.html:135 +#: order/templates/order/sales_order_base.html:152 stock/models.py:917 +#: stock/models.py:918 stock/serializers.py:1360 +#: stock/templates/stock/item_base.html:402 #: templates/email/overdue_sales_order.html:16 -#: templates/js/translated/company.js:503 +#: templates/js/translated/company.js:504 #: templates/js/translated/return_order.js:295 -#: templates/js/translated/sales_order.js:820 -#: templates/js/translated/stock.js:3043 +#: templates/js/translated/sales_order.js:779 +#: templates/js/translated/stock.js:3044 #: templates/js/translated/table_filters.js:820 msgid "Customer" msgstr "客户" @@ -4653,7 +4833,7 @@ msgid "Phone" msgstr "电话" #: company/templates/company/company_base.html:211 -#: part/templates/part/part_base.html:536 +#: part/templates/part/part_base.html:544 msgid "Remove Image" msgstr "移除图像" @@ -4662,19 +4842,19 @@ msgid "Remove associated image from this company" msgstr "从此公司中删除关联的图像" #: company/templates/company/company_base.html:214 -#: part/templates/part/part_base.html:539 +#: part/templates/part/part_base.html:547 #: templates/InvenTree/settings/user.html:88 #: templates/InvenTree/settings/user_sso.html:43 msgid "Remove" msgstr "移除" #: company/templates/company/company_base.html:243 -#: part/templates/part/part_base.html:568 +#: part/templates/part/part_base.html:576 msgid "Upload Image" msgstr "上传图像" #: company/templates/company/company_base.html:258 -#: part/templates/part/part_base.html:622 +#: part/templates/part/part_base.html:630 msgid "Download Image" msgstr "下载图像" @@ -4714,7 +4894,7 @@ msgstr "供应商库存" #: company/templates/company/detail.html:75 #: company/templates/company/sidebar.html:12 #: company/templates/company/supplier_part_sidebar.html:7 -#: order/templates/order/order_base.html:13 +#: order/templates/order/order_base.html:14 #: order/templates/order/purchase_orders.html:8 #: order/templates/order/purchase_orders.html:12 #: part/templates/part/detail.html:122 part/templates/part/part_sidebar.html:35 @@ -4737,7 +4917,7 @@ msgstr "新建采购订单" #: company/templates/company/detail.html:101 #: company/templates/company/sidebar.html:21 -#: order/templates/order/sales_order_base.html:13 +#: order/templates/order/sales_order_base.html:14 #: order/templates/order/sales_orders.html:8 #: order/templates/order/sales_orders.html:15 #: part/templates/part/detail.html:143 part/templates/part/part_sidebar.html:39 @@ -4764,7 +4944,7 @@ msgstr "已分配库存" #: company/templates/company/detail.html:142 #: company/templates/company/sidebar.html:29 -#: order/templates/order/return_order_base.html:13 +#: order/templates/order/return_order_base.html:14 #: order/templates/order/return_orders.html:8 #: order/templates/order/return_orders.html:15 #: templates/InvenTree/settings/sidebar.html:61 @@ -4811,24 +4991,24 @@ msgid "Manufacturers" msgstr "制造商" #: company/templates/company/manufacturer_part.html:35 -#: company/templates/company/supplier_part.html:227 -#: part/templates/part/detail.html:125 part/templates/part/part_base.html:83 +#: company/templates/company/supplier_part.html:228 +#: part/templates/part/detail.html:125 part/templates/part/part_base.html:84 msgid "Order part" msgstr "订购零件" #: company/templates/company/manufacturer_part.html:39 -#: templates/js/translated/company.js:1343 +#: templates/js/translated/company.js:1344 msgid "Edit manufacturer part" msgstr "编辑制造商零件" #: company/templates/company/manufacturer_part.html:43 -#: templates/js/translated/company.js:1344 +#: templates/js/translated/company.js:1345 msgid "Delete manufacturer part" msgstr "删除制造商零件" #: company/templates/company/manufacturer_part.html:65 -#: company/templates/company/supplier_part.html:97 order/api.py:448 -#: order/serializers.py:564 +#: company/templates/company/supplier_part.html:98 order/api.py:411 +#: order/serializers.py:649 msgid "Internal Part" msgstr "内部零件" @@ -4837,8 +5017,8 @@ msgid "No manufacturer information available" msgstr "没有可用的制造商信息" #: company/templates/company/manufacturer_part.html:119 -#: company/templates/company/supplier_part.html:15 company/views.py:31 -#: part/admin.py:122 part/serializers.py:904 +#: company/templates/company/supplier_part.html:16 company/views.py:31 +#: part/admin.py:122 part/serializers.py:956 #: part/templates/part/part_sidebar.html:33 templates/InvenTree/search.html:190 #: templates/navbar.html:48 msgid "Suppliers" @@ -4887,112 +5067,113 @@ msgstr "已分配库存项目" msgid "Contacts" msgstr "联系人" -#: company/templates/company/supplier_part.html:50 -#: templates/js/translated/company.js:1526 +#: company/templates/company/supplier_part.html:51 +#: templates/js/translated/company.js:1527 msgid "Supplier part actions" msgstr "供应商零件操作" -#: company/templates/company/supplier_part.html:55 #: company/templates/company/supplier_part.html:56 -#: company/templates/company/supplier_part.html:228 +#: company/templates/company/supplier_part.html:57 +#: company/templates/company/supplier_part.html:229 #: part/templates/part/detail.html:126 msgid "Order Part" msgstr "订购零件" -#: company/templates/company/supplier_part.html:60 #: company/templates/company/supplier_part.html:61 +#: company/templates/company/supplier_part.html:62 msgid "Update Availability" msgstr "更新可用性" -#: company/templates/company/supplier_part.html:63 #: company/templates/company/supplier_part.html:64 -#: templates/js/translated/company.js:294 +#: company/templates/company/supplier_part.html:65 +#: templates/js/translated/company.js:295 msgid "Edit Supplier Part" msgstr "编辑供应商零件" -#: company/templates/company/supplier_part.html:68 #: company/templates/company/supplier_part.html:69 -#: templates/js/translated/company.js:269 +#: company/templates/company/supplier_part.html:70 +#: templates/js/translated/company.js:270 msgid "Duplicate Supplier Part" msgstr "重复供应商零件" -#: company/templates/company/supplier_part.html:73 +#: company/templates/company/supplier_part.html:74 msgid "Delete Supplier Part" msgstr "删除供应商零件" -#: company/templates/company/supplier_part.html:74 +#: company/templates/company/supplier_part.html:75 msgid "Delete Supplier Part" msgstr "删除供应商零件" -#: company/templates/company/supplier_part.html:133 +#: company/templates/company/supplier_part.html:134 +#: order/templates/order/order_base.html:155 msgid "No supplier information available" msgstr "没有可用的供应商信息" -#: company/templates/company/supplier_part.html:139 order/serializers.py:553 -#: part/bom.py:287 part/bom.py:319 part/serializers.py:548 -#: templates/js/translated/company.js:349 templates/js/translated/part.js:1793 +#: company/templates/company/supplier_part.html:140 order/serializers.py:638 +#: part/bom.py:286 part/bom.py:315 part/serializers.py:592 +#: templates/js/translated/company.js:350 templates/js/translated/part.js:1793 #: templates/js/translated/pricing.js:510 -#: templates/js/translated/purchase_order.js:1920 -#: templates/js/translated/purchase_order.js:2098 +#: templates/js/translated/purchase_order.js:1904 +#: templates/js/translated/purchase_order.js:2082 msgid "SKU" msgstr "库存量单位" -#: company/templates/company/supplier_part.html:206 +#: company/templates/company/supplier_part.html:207 msgid "Supplier Part Stock" msgstr "供应商零件库存" -#: company/templates/company/supplier_part.html:209 -#: part/templates/part/detail.html:24 stock/templates/stock/location.html:204 +#: company/templates/company/supplier_part.html:210 +#: part/templates/part/detail.html:24 stock/templates/stock/location.html:205 msgid "Create new stock item" msgstr "创建新库存项目" -#: company/templates/company/supplier_part.html:210 -#: part/templates/part/detail.html:25 stock/templates/stock/location.html:205 +#: company/templates/company/supplier_part.html:211 +#: part/templates/part/detail.html:25 stock/templates/stock/location.html:206 #: templates/js/translated/stock.js:543 msgid "New Stock Item" msgstr "新库存项目" -#: company/templates/company/supplier_part.html:223 +#: company/templates/company/supplier_part.html:224 msgid "Supplier Part Orders" msgstr "供应商零件订单" -#: company/templates/company/supplier_part.html:246 +#: company/templates/company/supplier_part.html:247 msgid "Pricing Information" msgstr "定价信息" -#: company/templates/company/supplier_part.html:251 -#: templates/js/translated/company.js:398 +#: company/templates/company/supplier_part.html:252 +#: templates/js/translated/company.js:399 #: templates/js/translated/pricing.js:684 msgid "Add Price Break" msgstr "添加批发价折扣" -#: company/templates/company/supplier_part.html:270 +#: company/templates/company/supplier_part.html:271 msgid "Supplier Part Notes" msgstr "供应商零件注释" -#: company/templates/company/supplier_part.html:305 +#: company/templates/company/supplier_part.html:306 msgid "Supplier Part QR Code" msgstr "供应商零件二维码" -#: company/templates/company/supplier_part.html:316 +#: company/templates/company/supplier_part.html:317 msgid "Link Barcode to Supplier Part" msgstr "将条形码链接到供应商零件" -#: company/templates/company/supplier_part.html:388 +#: company/templates/company/supplier_part.html:389 msgid "Update Part Availability" msgstr "更新零件可用性" #: company/templates/company/supplier_part_sidebar.html:5 -#: part/serializers.py:902 part/stocktake.py:223 +#: part/serializers.py:954 part/stocktake.py:223 #: part/templates/part/category.html:180 #: part/templates/part/category_sidebar.html:17 stock/admin.py:68 -#: stock/serializers.py:1014 stock/serializers.py:1192 -#: stock/templates/stock/location.html:167 -#: stock/templates/stock/location.html:188 -#: stock/templates/stock/location.html:200 +#: stock/serializers.py:1045 stock/serializers.py:1223 +#: stock/templates/stock/location.html:168 +#: stock/templates/stock/location.html:189 +#: stock/templates/stock/location.html:201 #: stock/templates/stock/location_sidebar.html:7 #: templates/InvenTree/search.html:155 templates/js/translated/part.js:1067 -#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2850 +#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2851 #: users/models.py:206 msgid "Stock Items" msgstr "库存项" @@ -5022,99 +5203,99 @@ msgstr "新建客户" msgid "New Company" msgstr "新建公司信息" -#: generic/states/tests.py:18 order/status_codes.py:13 +#: generic/states/fields.py:118 +msgid "Custom status key" +msgstr "自定义状态密钥" + +#: generic/states/fields.py:119 +msgid "Additional status information for this item" +msgstr "此项目的附加状态信息" + +#: generic/states/tests.py:22 order/status_codes.py:13 msgid "Placed" msgstr "放置" -#: importer/mixins.py:263 +#: importer/mixins.py:261 msgid "Invalid export format" msgstr "导出格式无效" -#: importer/models.py:59 -msgid "Timestamp" -msgstr "时间戳" - -#: importer/models.py:64 +#: importer/models.py:65 msgid "Data file to import" msgstr "要导入的数据文件" -#: importer/models.py:73 templates/js/translated/tables.js:558 +#: importer/models.py:74 templates/js/translated/tables.js:558 msgid "Columns" msgstr "列" -#: importer/models.py:84 +#: importer/models.py:85 msgid "Import status" msgstr "导入状态" -#: importer/models.py:94 +#: importer/models.py:95 msgid "Field Defaults" msgstr "字段默认值" -#: importer/models.py:101 +#: importer/models.py:102 msgid "Field Overrides" msgstr "字段覆盖" -#: importer/models.py:108 +#: importer/models.py:109 msgid "Field Filters" msgstr "字段筛选器" -#: importer/models.py:230 +#: importer/models.py:239 msgid "Some required fields have not been mapped" msgstr "某些必填字段尚未映射" -#: importer/models.py:387 +#: importer/models.py:396 msgid "Column is already mapped to a database field" msgstr "列已映射到数据库字段" -#: importer/models.py:392 +#: importer/models.py:401 msgid "Field is already mapped to a data column" msgstr "字段已映射到数据列" -#: importer/models.py:401 +#: importer/models.py:410 msgid "Column mapping must be linked to a valid import session" msgstr "列映射必须链接到有效的导入会话" -#: importer/models.py:406 +#: importer/models.py:415 msgid "Column does not exist in the data file" msgstr "数据文件中不存在列" -#: importer/models.py:413 +#: importer/models.py:422 msgid "Field does not exist in the target model" msgstr "目标模型中不存在字段" -#: importer/models.py:417 +#: importer/models.py:426 msgid "Selected field is read-only" msgstr "所选字段为只读" -#: importer/models.py:422 importer/models.py:493 +#: importer/models.py:431 importer/models.py:502 msgid "Import Session" msgstr "导入会话" -#: importer/models.py:426 +#: importer/models.py:435 msgid "Field" msgstr "字段" -#: importer/models.py:428 +#: importer/models.py:437 msgid "Column" msgstr "列" -#: importer/models.py:497 +#: importer/models.py:506 msgid "Row Index" msgstr "行索引" -#: importer/models.py:500 +#: importer/models.py:509 msgid "Original row data" msgstr "原始行数据" -#: importer/models.py:503 part/models.py:3951 -msgid "Data" -msgstr "数据" - -#: importer/models.py:505 machine/models.py:110 +#: importer/models.py:514 machine/models.py:110 msgid "Errors" msgstr "错误" -#: importer/models.py:507 part/api.py:873 +#: importer/models.py:516 part/api.py:857 msgid "Valid" msgstr "有效" @@ -5166,19 +5347,19 @@ msgstr "行包含无效数据" msgid "Row has already been completed" msgstr "行已完成" -#: importer/status_codes.py:11 +#: importer/status_codes.py:13 msgid "Initializing" msgstr "正在初始化" -#: importer/status_codes.py:12 +#: importer/status_codes.py:18 msgid "Mapping Columns" msgstr "映射列" -#: importer/status_codes.py:13 +#: importer/status_codes.py:21 msgid "Importing Data" msgstr "导入数据" -#: importer/status_codes.py:16 +#: importer/status_codes.py:24 msgid "Processing Data" msgstr "处理数据中" @@ -5202,52 +5383,52 @@ msgstr "数据文件包含的行太多" msgid "Value must be a valid dictionary object" msgstr "值必须是有效的字典对象" -#: machine/machine_types/label_printer.py:215 +#: machine/machine_types/label_printer.py:216 msgid "Copies" msgstr "拷贝" -#: machine/machine_types/label_printer.py:216 +#: machine/machine_types/label_printer.py:217 msgid "Number of copies to print for each label" msgstr "每个标签要打印的份数" -#: machine/machine_types/label_printer.py:231 +#: machine/machine_types/label_printer.py:232 msgid "Connected" msgstr "已连接" -#: machine/machine_types/label_printer.py:232 order/api.py:1410 -#: templates/js/translated/sales_order.js:1078 +#: machine/machine_types/label_printer.py:233 order/api.py:1532 +#: templates/js/translated/sales_order.js:1044 msgid "Unknown" msgstr "未知" -#: machine/machine_types/label_printer.py:233 +#: machine/machine_types/label_printer.py:234 msgid "Printing" msgstr "正在打印" -#: machine/machine_types/label_printer.py:234 +#: machine/machine_types/label_printer.py:235 msgid "No media" msgstr "无媒体" -#: machine/machine_types/label_printer.py:235 +#: machine/machine_types/label_printer.py:236 msgid "Paper jam" msgstr "卡纸" -#: machine/machine_types/label_printer.py:236 +#: machine/machine_types/label_printer.py:237 msgid "Disconnected" msgstr "已断开连接" -#: machine/machine_types/label_printer.py:243 +#: machine/machine_types/label_printer.py:244 msgid "Label Printer" msgstr "标签打印机" -#: machine/machine_types/label_printer.py:244 +#: machine/machine_types/label_printer.py:245 msgid "Directly print labels for various items." msgstr "直接打印各种物品的标签。" -#: machine/machine_types/label_printer.py:250 +#: machine/machine_types/label_printer.py:251 msgid "Printer Location" msgstr "打印机位置" -#: machine/machine_types/label_printer.py:251 +#: machine/machine_types/label_printer.py:252 msgid "Scope the printer to a specific location" msgstr "将打印机定位到特定位置" @@ -5307,79 +5488,75 @@ msgstr "配置类型" #: report/templates/report/inventree_purchase_order_report.html:31 #: report/templates/report/inventree_sales_order_report.html:31 #: templates/js/translated/order.js:352 -#: templates/js/translated/purchase_order.js:2195 -#: templates/js/translated/sales_order.js:1883 +#: templates/js/translated/purchase_order.js:2179 +#: templates/js/translated/sales_order.js:1864 msgid "Total Price" msgstr "总价格" -#: order/api.py:80 order/api.py:151 order/serializers.py:93 -#: order/templates/order/order_base.html:123 -#: order/templates/order/return_order_base.html:116 -#: order/templates/order/sales_order_base.html:125 +#: order/api.py:78 order/api.py:149 order/serializers.py:124 +#: order/templates/order/order_base.html:124 +#: order/templates/order/return_order_base.html:117 +#: order/templates/order/sales_order_base.html:126 msgid "Order Status" msgstr "订单状态" -#: order/api.py:88 order/templates/order/order_base.html:111 -#: order/templates/order/return_order_base.html:104 -#: order/templates/order/sales_order_base.html:113 +#: order/api.py:86 order/templates/order/order_base.html:112 +#: order/templates/order/return_order_base.html:105 +#: order/templates/order/sales_order_base.html:114 msgid "Order Reference" msgstr "订单参考" -#: order/api.py:116 templates/js/translated/table_filters.js:93 +#: order/api.py:114 order/api.py:1022 +#: templates/js/translated/table_filters.js:93 #: templates/js/translated/table_filters.js:625 #: templates/js/translated/table_filters.js:651 #: templates/js/translated/table_filters.js:666 msgid "Outstanding" msgstr "未完成" -#: order/api.py:132 +#: order/api.py:130 msgid "Has Project Code" -msgstr "" +msgstr "有项目编码" -#: order/api.py:155 templates/js/translated/table_filters.js:201 +#: order/api.py:153 templates/js/translated/table_filters.js:201 #: templates/js/translated/table_filters.js:791 msgid "Has Pricing" msgstr "有定价" -#: order/api.py:230 -msgid "No matching purchase order found" -msgstr "未找到匹配的采购订单" - -#: order/api.py:425 order/api.py:763 order/models.py:1484 order/models.py:1598 -#: order/models.py:1649 order/models.py:1764 order/models.py:1923 -#: order/models.py:2383 order/models.py:2439 -#: templates/js/translated/sales_order.js:1524 +#: order/api.py:375 order/api.py:771 order/api.py:986 order/models.py:1500 +#: order/models.py:1614 order/models.py:1665 order/models.py:1793 +#: order/models.py:1956 order/models.py:2422 order/models.py:2478 +#: templates/js/translated/sales_order.js:1490 msgid "Order" msgstr "订单" -#: order/api.py:429 order/api.py:784 +#: order/api.py:379 order/api.py:809 msgid "Order Complete" msgstr "订单完成" -#: order/api.py:452 +#: order/api.py:430 msgid "Order Pending" msgstr "订单待定" -#: order/api.py:1404 order/models.py:379 order/models.py:1485 -#: order/models.py:1599 order/templates/order/order_base.html:9 -#: order/templates/order/order_base.html:18 +#: order/api.py:1526 order/models.py:386 order/models.py:1501 +#: order/models.py:1615 order/templates/order/order_base.html:10 +#: order/templates/order/order_base.html:19 #: report/templates/report/inventree_purchase_order_report.html:14 -#: stock/serializers.py:120 stock/templates/stock/item_base.html:176 +#: stock/serializers.py:121 stock/templates/stock/item_base.html:173 #: templates/email/overdue_purchase_order.html:15 #: templates/js/translated/part.js:1752 templates/js/translated/pricing.js:804 -#: templates/js/translated/purchase_order.js:168 -#: templates/js/translated/purchase_order.js:753 -#: templates/js/translated/purchase_order.js:1743 -#: templates/js/translated/stock.js:2345 templates/js/translated/stock.js:2991 +#: templates/js/translated/purchase_order.js:736 +#: templates/js/translated/purchase_order.js:1727 +#: templates/js/translated/stock.js:2346 templates/js/translated/stock.js:2992 msgid "Purchase Order" msgstr "采购订单" -#: order/api.py:1408 order/models.py:2091 order/models.py:2384 -#: order/models.py:2440 order/templates/order/return_order_base.html:9 -#: order/templates/order/return_order_base.html:28 +#: order/api.py:1530 order/models.py:2124 order/models.py:2423 +#: order/models.py:2479 order/templates/order/return_order_base.html:10 +#: order/templates/order/return_order_base.html:29 #: report/templates/report/inventree_return_order_report.html:13 #: templates/js/translated/return_order.js:280 -#: templates/js/translated/stock.js:3025 +#: templates/js/translated/stock.js:3026 msgid "Return Order" msgstr "退货订单" @@ -5387,751 +5564,782 @@ msgstr "退货订单" msgid "Total price for this order" msgstr "此订单的总价" -#: order/models.py:95 order/serializers.py:71 +#: order/models.py:95 order/serializers.py:73 msgid "Order Currency" msgstr "订单货币" -#: order/models.py:98 order/serializers.py:72 +#: order/models.py:98 order/serializers.py:74 msgid "Currency for this order (leave blank to use company default)" msgstr "此订单的货币 (留空以使用公司默认值)" -#: order/models.py:246 +#: order/models.py:243 msgid "Contact does not match selected company" msgstr "联系人与所选公司不匹配" -#: order/models.py:289 +#: order/models.py:296 msgid "Order description (optional)" msgstr "订单描述 (可选)" -#: order/models.py:298 +#: order/models.py:305 msgid "Select project code for this order" msgstr "为此订单选择项目编码" -#: order/models.py:302 order/models.py:1385 order/models.py:1817 +#: order/models.py:309 order/models.py:1402 order/models.py:1846 msgid "Link to external page" msgstr "链接到外部页面" -#: order/models.py:310 +#: order/models.py:317 msgid "Expected date for order delivery. Order will be overdue after this date." msgstr "订单交付的预期日期。订单将在此日期后过期。" -#: order/models.py:324 +#: order/models.py:331 msgid "Created By" msgstr "创建人" -#: order/models.py:332 +#: order/models.py:339 msgid "User or group responsible for this order" msgstr "负责此订单的用户或组" -#: order/models.py:343 +#: order/models.py:350 msgid "Point of contact for this order" msgstr "此订单的联系人" -#: order/models.py:353 +#: order/models.py:360 msgid "Company address for this order" msgstr "此订单的公司地址" -#: order/models.py:468 order/models.py:979 +#: order/models.py:480 order/models.py:1006 msgid "Order reference" msgstr "订单参考" -#: order/models.py:477 +#: order/models.py:489 msgid "Purchase order status" msgstr "采购订单状态" -#: order/models.py:492 +#: order/models.py:504 msgid "Company from which the items are being ordered" msgstr "订购物品的公司" -#: order/models.py:503 order/templates/order/order_base.html:153 -#: templates/js/translated/purchase_order.js:1772 +#: order/models.py:515 order/templates/order/order_base.html:162 +#: templates/js/translated/purchase_order.js:1756 msgid "Supplier Reference" msgstr "供应商参考" -#: order/models.py:504 +#: order/models.py:516 msgid "Supplier order reference code" msgstr "供应商订单参考代码" -#: order/models.py:513 +#: order/models.py:525 msgid "received by" msgstr "接收人" -#: order/models.py:519 order/models.py:2173 +#: order/models.py:531 order/models.py:2212 msgid "Issue Date" msgstr "签发日期" -#: order/models.py:520 order/models.py:2174 +#: order/models.py:532 order/models.py:2213 msgid "Date order was issued" msgstr "订单发出日期" -#: order/models.py:527 order/models.py:2181 +#: order/models.py:539 order/models.py:2220 msgid "Date order was completed" msgstr "订单完成日期" -#: order/models.py:571 +#: order/models.py:549 order/models.py:1552 +msgid "Destination for received items" +msgstr "接收物品的目标" + +#: order/models.py:593 msgid "Part supplier must match PO supplier" msgstr "零件供应商必须与采购订单供应商匹配" -#: order/models.py:806 +#: order/models.py:828 msgid "Quantity must be a positive number" msgstr "数量必须是正数" -#: order/models.py:991 +#: order/models.py:1018 msgid "Company to which the items are being sold" msgstr "出售物品的公司" -#: order/models.py:1003 +#: order/models.py:1030 msgid "Sales order status" msgstr "销售订单状态" -#: order/models.py:1014 order/models.py:2166 +#: order/models.py:1041 order/models.py:2205 msgid "Customer Reference " msgstr "客户参考 " -#: order/models.py:1015 order/models.py:2167 +#: order/models.py:1042 order/models.py:2206 msgid "Customer order reference code" msgstr "客户订单参考代码" -#: order/models.py:1019 order/models.py:1771 -#: templates/js/translated/sales_order.js:879 -#: templates/js/translated/sales_order.js:1060 +#: order/models.py:1046 order/models.py:1800 +#: templates/js/translated/sales_order.js:838 +#: templates/js/translated/sales_order.js:1026 msgid "Shipment Date" msgstr "发货日期" -#: order/models.py:1028 +#: order/models.py:1055 msgid "shipped by" msgstr "发货人" -#: order/models.py:1077 +#: order/models.py:1094 msgid "Order is already complete" msgstr "订单已完成" -#: order/models.py:1080 +#: order/models.py:1097 msgid "Order is already cancelled" msgstr "订单已取消" -#: order/models.py:1084 +#: order/models.py:1101 msgid "Only an open order can be marked as complete" msgstr "只有未结订单才能标记为已完成" -#: order/models.py:1088 +#: order/models.py:1105 msgid "Order cannot be completed as there are incomplete shipments" msgstr "由于发货不完整,订单无法完成" -#: order/models.py:1093 +#: order/models.py:1110 msgid "Order cannot be completed as there are incomplete line items" msgstr "订单无法完成,因为行项目不完整" -#: order/models.py:1357 +#: order/models.py:1374 msgid "Item quantity" msgstr "项目数量" -#: order/models.py:1374 +#: order/models.py:1391 msgid "Line item reference" msgstr "行项目参考" -#: order/models.py:1381 +#: order/models.py:1398 msgid "Line item notes" msgstr "行项目注释" -#: order/models.py:1393 +#: order/models.py:1410 msgid "Target date for this line item (leave blank to use the target date from the order)" msgstr "此行项目的目标日期 (留空以使用订单中的目标日期)" -#: order/models.py:1414 +#: order/models.py:1431 msgid "Line item description (optional)" msgstr "行项目描述 (可选)" -#: order/models.py:1420 -msgid "Context" -msgstr "上下文" - -#: order/models.py:1421 +#: order/models.py:1438 msgid "Additional context for this line" msgstr "此行的附加上下文" -#: order/models.py:1431 +#: order/models.py:1448 msgid "Unit price" msgstr "单位价格" -#: order/models.py:1445 +#: order/models.py:1462 msgid "Purchase Order Line Item" msgstr "采购订单行项目" -#: order/models.py:1469 +#: order/models.py:1486 msgid "Supplier part must match supplier" msgstr "供应商零件必须与供应商匹配" -#: order/models.py:1476 -msgid "deleted" -msgstr "已删除" - -#: order/models.py:1504 +#: order/models.py:1520 msgid "Supplier part" msgstr "供应商零件" -#: order/models.py:1511 order/templates/order/order_base.html:201 +#: order/models.py:1527 order/templates/order/order_base.html:210 #: templates/js/translated/part.js:1876 templates/js/translated/part.js:1908 -#: templates/js/translated/purchase_order.js:1369 -#: templates/js/translated/purchase_order.js:2239 +#: templates/js/translated/purchase_order.js:1352 +#: templates/js/translated/purchase_order.js:2223 #: templates/js/translated/return_order.js:762 #: templates/js/translated/table_filters.js:119 #: templates/js/translated/table_filters.js:605 msgid "Received" msgstr "已接收" -#: order/models.py:1512 +#: order/models.py:1528 msgid "Number of items received" msgstr "收到的物品数量" -#: order/models.py:1520 stock/models.py:959 stock/serializers.py:610 -#: stock/templates/stock/item_base.html:183 -#: templates/js/translated/stock.js:2396 +#: order/models.py:1536 stock/models.py:1036 stock/serializers.py:637 +#: stock/templates/stock/item_base.html:180 +#: templates/js/translated/stock.js:2397 msgid "Purchase Price" msgstr "采购价格" -#: order/models.py:1521 +#: order/models.py:1537 msgid "Unit purchase price" msgstr "每单位的采购价格" -#: order/models.py:1536 -msgid "Where does the Purchaser want this item to be stored?" -msgstr "买方希望将此物品存放在哪里?" - -#: order/models.py:1587 +#: order/models.py:1603 msgid "Purchase Order Extra Line" msgstr "采购订单附加行" -#: order/models.py:1616 +#: order/models.py:1632 msgid "Sales Order Line Item" msgstr "销售订单行项目" -#: order/models.py:1637 +#: order/models.py:1653 msgid "Virtual part cannot be assigned to a sales order" msgstr "虚拟零件不能分配给销售订单" -#: order/models.py:1642 +#: order/models.py:1658 msgid "Only salable parts can be assigned to a sales order" msgstr "只有可销售的零件才能分配给销售订单" -#: order/models.py:1668 part/templates/part/part_pricing.html:107 -#: part/templates/part/prices.html:139 templates/js/translated/pricing.js:957 +#: order/models.py:1684 part/templates/part/part_pricing.html:107 +#: part/templates/part/prices.html:139 templates/js/translated/pricing.js:955 msgid "Sale Price" msgstr "售出价格" -#: order/models.py:1669 +#: order/models.py:1685 msgid "Unit sale price" msgstr "单位售出价格" -#: order/models.py:1678 order/status_codes.py:48 -#: templates/js/translated/sales_order.js:1559 -#: templates/js/translated/sales_order.js:1680 -#: templates/js/translated/sales_order.js:1993 +#: order/models.py:1694 order/status_codes.py:50 +#: templates/js/translated/sales_order.js:1525 +#: templates/js/translated/sales_order.js:1661 +#: templates/js/translated/sales_order.js:1974 msgid "Shipped" msgstr "已配送" -#: order/models.py:1679 +#: order/models.py:1695 msgid "Shipped quantity" msgstr "发货数量" -#: order/models.py:1751 +#: order/models.py:1769 msgid "Sales Order Shipment" msgstr "销售订单发货" -#: order/models.py:1772 +#: order/models.py:1801 msgid "Date of shipment" msgstr "发货日期" -#: order/models.py:1778 templates/js/translated/sales_order.js:1072 +#: order/models.py:1807 templates/js/translated/sales_order.js:1038 msgid "Delivery Date" msgstr "送达日期" -#: order/models.py:1779 +#: order/models.py:1808 msgid "Date of delivery of shipment" msgstr "装运交货日期" -#: order/models.py:1787 +#: order/models.py:1816 msgid "Checked By" msgstr "审核人" -#: order/models.py:1788 +#: order/models.py:1817 msgid "User who checked this shipment" msgstr "检查此装运的用户" -#: order/models.py:1795 order/models.py:2018 order/serializers.py:1475 -#: order/serializers.py:1585 templates/js/translated/model_renderers.js:455 +#: order/models.py:1824 order/models.py:2051 order/serializers.py:1601 +#: order/serializers.py:1725 +#: report/templates/report/inventree_sales_order_shipment_report.html:14 +#: templates/js/translated/model_renderers.js:458 +#: templates/js/translated/sales_order.js:1615 msgid "Shipment" msgstr "配送" -#: order/models.py:1796 +#: order/models.py:1825 msgid "Shipment number" msgstr "配送单号" -#: order/models.py:1804 +#: order/models.py:1833 msgid "Tracking Number" msgstr "跟踪单号" -#: order/models.py:1805 +#: order/models.py:1834 msgid "Shipment tracking information" msgstr "配送跟踪信息" -#: order/models.py:1812 +#: order/models.py:1841 msgid "Invoice Number" msgstr "发票编号" -#: order/models.py:1813 +#: order/models.py:1842 msgid "Reference number for associated invoice" msgstr "相关发票的参考号" -#: order/models.py:1833 +#: order/models.py:1862 msgid "Shipment has already been sent" msgstr "货物已发出" -#: order/models.py:1836 +#: order/models.py:1865 msgid "Shipment has no allocated stock items" msgstr "发货没有分配库存项目" -#: order/models.py:1912 +#: order/models.py:1945 msgid "Sales Order Extra Line" msgstr "销售订单加行" -#: order/models.py:1941 +#: order/models.py:1974 msgid "Sales Order Allocation" msgstr "销售订单分配" -#: order/models.py:1964 order/models.py:1966 +#: order/models.py:1997 order/models.py:1999 msgid "Stock item has not been assigned" msgstr "库存项目尚未分配" -#: order/models.py:1973 +#: order/models.py:2006 msgid "Cannot allocate stock item to a line with a different part" msgstr "无法将库存项目分配给具有不同零件的行" -#: order/models.py:1976 +#: order/models.py:2009 msgid "Cannot allocate stock to a line without a part" msgstr "无法将库存分配给没有零件的生产线" -#: order/models.py:1979 +#: order/models.py:2012 msgid "Allocation quantity cannot exceed stock quantity" msgstr "分配数量不能超过库存数量" -#: order/models.py:1998 order/serializers.py:1345 +#: order/models.py:2031 order/serializers.py:1471 msgid "Quantity must be 1 for serialized stock item" msgstr "序列化库存项目的数量必须为1" -#: order/models.py:2001 +#: order/models.py:2034 msgid "Sales order does not match shipment" msgstr "销售订单与发货不匹配" -#: order/models.py:2002 plugin/base/barcodes/api.py:524 +#: order/models.py:2035 plugin/base/barcodes/api.py:629 msgid "Shipment does not match sales order" msgstr "发货与销售订单不匹配" -#: order/models.py:2010 +#: order/models.py:2043 msgid "Line" msgstr "行" -#: order/models.py:2019 +#: order/models.py:2052 msgid "Sales order shipment reference" msgstr "销售订单发货参考" -#: order/models.py:2032 order/models.py:2391 +#: order/models.py:2065 order/models.py:2430 #: templates/js/translated/return_order.js:720 msgid "Item" msgstr "项目" -#: order/models.py:2033 +#: order/models.py:2066 msgid "Select stock item to allocate" msgstr "选择要分配的库存项目" -#: order/models.py:2042 +#: order/models.py:2075 msgid "Enter stock allocation quantity" msgstr "输入库存分配数量" -#: order/models.py:2136 +#: order/models.py:2175 msgid "Return Order reference" msgstr "退货订单参考" -#: order/models.py:2148 +#: order/models.py:2187 msgid "Company from which items are being returned" msgstr "退回物品的公司" -#: order/models.py:2160 +#: order/models.py:2199 msgid "Return order status" msgstr "退货订单状态" -#: order/models.py:2362 +#: order/models.py:2401 msgid "Return Order Line Item" msgstr "退货订单行项目" -#: order/models.py:2376 +#: order/models.py:2415 msgid "Only serialized items can be assigned to a Return Order" msgstr "只有序列化的项目才能分配给退货订单" -#: order/models.py:2392 +#: order/models.py:2431 msgid "Select item to return from customer" msgstr "选择要从客户处退回的商品" -#: order/models.py:2398 +#: order/models.py:2437 msgid "Received Date" msgstr "接收日期" -#: order/models.py:2399 +#: order/models.py:2438 msgid "The date this this return item was received" msgstr "收到此退货的日期" -#: order/models.py:2410 templates/js/translated/return_order.js:731 +#: order/models.py:2449 templates/js/translated/return_order.js:731 #: templates/js/translated/table_filters.js:122 msgid "Outcome" msgstr "结果" -#: order/models.py:2411 +#: order/models.py:2450 msgid "Outcome for this line item" msgstr "该行项目的结果" -#: order/models.py:2418 +#: order/models.py:2457 msgid "Cost associated with return or repair for this line item" msgstr "与此行项目的退货或维修相关的成本" -#: order/models.py:2428 +#: order/models.py:2467 msgid "Return Order Extra Line" msgstr "退货订单附加行" -#: order/serializers.py:86 +#: order/serializers.py:87 +msgid "Order ID" +msgstr "订单ID" + +#: order/serializers.py:87 +msgid "ID of the order to duplicate" +msgstr "要复制的订单ID" + +#: order/serializers.py:93 +msgid "Copy Lines" +msgstr "复制行" + +#: order/serializers.py:94 +msgid "Copy line items from the original order" +msgstr "从原始订单复制行项目" + +#: order/serializers.py:100 +msgid "Copy Extra Lines" +msgstr "复制额外行" + +#: order/serializers.py:101 +msgid "Copy extra line items from the original order" +msgstr "从原始订单复制额外的行项目" + +#: order/serializers.py:117 msgid "Completed Lines" msgstr "已完成行项目" -#: order/serializers.py:283 stock/admin.py:195 +#: order/serializers.py:161 +msgid "Duplicate Order" +msgstr "复制订单" + +#: order/serializers.py:162 +msgid "Specify options for duplicating this order" +msgstr "指定复制此订单的选项" + +#: order/serializers.py:234 +msgid "Invalid order ID" +msgstr "订单ID不正确" + +#: order/serializers.py:374 stock/admin.py:196 msgid "Supplier Name" msgstr "供应商名称" -#: order/serializers.py:331 +#: order/serializers.py:416 msgid "Order cannot be cancelled" msgstr "订单不能取消" -#: order/serializers.py:346 order/serializers.py:1366 +#: order/serializers.py:431 order/serializers.py:1492 msgid "Allow order to be closed with incomplete line items" msgstr "允许关闭行项目不完整的订单" -#: order/serializers.py:356 order/serializers.py:1376 +#: order/serializers.py:441 order/serializers.py:1502 msgid "Order has incomplete line items" msgstr "订单中的行项目不完整" -#: order/serializers.py:506 +#: order/serializers.py:591 msgid "Order is not open" msgstr "订单未打开" -#: order/serializers.py:527 +#: order/serializers.py:612 msgid "Auto Pricing" msgstr "自动定价" -#: order/serializers.py:529 +#: order/serializers.py:614 msgid "Automatically calculate purchase price based on supplier part data" msgstr "根据供应商零件数据自动计算采购价格" -#: order/serializers.py:539 +#: order/serializers.py:624 msgid "Purchase price currency" msgstr "购买价格货币" -#: order/serializers.py:545 +#: order/serializers.py:630 msgid "Merge Items" msgstr "合并项目" -#: order/serializers.py:547 +#: order/serializers.py:632 msgid "Merge items with the same part, destination and target date into one line item" msgstr "将具有相同零件、目的地和目标日期的项目合并到一个行项目中" -#: order/serializers.py:560 part/models.py:1033 +#: order/serializers.py:645 part/models.py:1094 part/serializers.py:387 msgid "Internal Part Number" msgstr "内部零件编号" -#: order/serializers.py:568 +#: order/serializers.py:653 msgid "Internal Part Name" msgstr "内部零件名称" -#: order/serializers.py:584 +#: order/serializers.py:669 msgid "Supplier part must be specified" msgstr "必须指定供应商零件" -#: order/serializers.py:587 +#: order/serializers.py:672 msgid "Purchase order must be specified" msgstr "必须指定采购订单" -#: order/serializers.py:595 +#: order/serializers.py:680 msgid "Supplier must match purchase order" msgstr "供应商必须匹配采购订单" -#: order/serializers.py:596 +#: order/serializers.py:681 msgid "Purchase order must match supplier" msgstr "采购订单必须与供应商匹配" -#: order/serializers.py:639 order/serializers.py:1446 +#: order/serializers.py:724 order/serializers.py:1572 msgid "Line Item" msgstr "行项目" -#: order/serializers.py:645 +#: order/serializers.py:730 msgid "Line item does not match purchase order" msgstr "行项目与采购订单不匹配" -#: order/serializers.py:655 order/serializers.py:779 order/serializers.py:1782 +#: order/serializers.py:740 order/serializers.py:881 order/serializers.py:1934 msgid "Select destination location for received items" msgstr "为收到的物品选择目的地位置" -#: order/serializers.py:671 templates/js/translated/purchase_order.js:1130 +#: order/serializers.py:756 templates/js/translated/purchase_order.js:1113 #: templates/js/translated/stock.js:1200 msgid "Enter batch code for incoming stock items" msgstr "输入入库项目的批号" -#: order/serializers.py:679 templates/js/translated/purchase_order.js:1155 +#: order/serializers.py:764 templates/js/translated/purchase_order.js:1138 msgid "Enter serial numbers for incoming stock items" msgstr "输入入库库存项目的序列号" -#: order/serializers.py:691 +#: order/serializers.py:776 msgid "Override packaging information for incoming stock items" msgstr "覆盖传入库存项目的包装资料" -#: order/serializers.py:699 +#: order/serializers.py:784 msgid "Additional note for incoming stock items" msgstr "传入库存项目的附加说明" -#: order/serializers.py:706 templates/js/translated/barcode.js:52 +#: order/serializers.py:791 templates/js/translated/barcode.js:52 msgid "Barcode" msgstr "条形码" -#: order/serializers.py:707 +#: order/serializers.py:792 msgid "Scanned barcode" msgstr "扫描条形码" -#: order/serializers.py:723 +#: order/serializers.py:808 msgid "Barcode is already in use" msgstr "条形码已被使用" -#: order/serializers.py:747 +#: order/serializers.py:831 msgid "An integer quantity must be provided for trackable parts" msgstr "必须为可跟踪零件提供整数数量" -#: order/serializers.py:795 order/serializers.py:1798 +#: order/serializers.py:898 order/serializers.py:1950 msgid "Line items must be provided" msgstr "必须提供行项目" -#: order/serializers.py:811 +#: order/serializers.py:914 msgid "Destination location must be specified" msgstr "必须指定目标位置" -#: order/serializers.py:822 +#: order/serializers.py:925 msgid "Supplied barcode values must be unique" msgstr "提供的条形码值必须是唯一的" -#: order/serializers.py:1187 +#: order/serializers.py:1221 msgid "Sale price currency" msgstr "售出价格货币" -#: order/serializers.py:1248 +#: order/serializers.py:1260 +msgid "Allocated Items" +msgstr "已分配的项目" + +#: order/serializers.py:1374 msgid "No shipment details provided" msgstr "未提供装运详细信息" -#: order/serializers.py:1309 order/serializers.py:1455 +#: order/serializers.py:1435 order/serializers.py:1581 msgid "Line item is not associated with this order" msgstr "行项目与此订单不关联" -#: order/serializers.py:1328 +#: order/serializers.py:1454 msgid "Quantity must be positive" msgstr "数量必须为正" -#: order/serializers.py:1465 +#: order/serializers.py:1591 msgid "Enter serial numbers to allocate" msgstr "输入要分配的序列号" -#: order/serializers.py:1487 order/serializers.py:1593 +#: order/serializers.py:1613 order/serializers.py:1733 msgid "Shipment has already been shipped" msgstr "货物已发出" -#: order/serializers.py:1490 order/serializers.py:1596 +#: order/serializers.py:1616 order/serializers.py:1736 msgid "Shipment is not associated with this order" msgstr "发货与此订单无关" -#: order/serializers.py:1537 +#: order/serializers.py:1671 msgid "No match found for the following serial numbers" msgstr "未找到以下序列号的匹配项" -#: order/serializers.py:1544 -msgid "The following serial numbers are already allocated" -msgstr "以下序列号已分配" +#: order/serializers.py:1678 +msgid "The following serial numbers are unavailable" +msgstr "以下序列号不可用" -#: order/serializers.py:1752 +#: order/serializers.py:1904 msgid "Return order line item" msgstr "退货订单行项目" -#: order/serializers.py:1758 +#: order/serializers.py:1910 msgid "Line item does not match return order" msgstr "行项目与退货订单不匹配" -#: order/serializers.py:1761 +#: order/serializers.py:1913 msgid "Line item has already been received" msgstr "行项目已收到" -#: order/serializers.py:1790 +#: order/serializers.py:1942 msgid "Items can only be received against orders which are in progress" msgstr "只能根据正在进行的订单接收物品" -#: order/serializers.py:1873 +#: order/serializers.py:2025 msgid "Line price currency" msgstr "行价格货币" -#: order/status_codes.py:17 order/status_codes.py:52 stock/status_codes.py:16 +#: order/status_codes.py:17 order/status_codes.py:54 stock/status_codes.py:16 msgid "Lost" msgstr "丢失" -#: order/status_codes.py:18 order/status_codes.py:53 stock/status_codes.py:22 +#: order/status_codes.py:18 order/status_codes.py:55 stock/status_codes.py:24 msgid "Returned" msgstr "已退回" -#: order/status_codes.py:45 order/status_codes.py:77 +#: order/status_codes.py:47 order/status_codes.py:79 msgid "In Progress" msgstr "正在进行" -#: order/status_codes.py:101 +#: order/status_codes.py:105 msgid "Return" msgstr "退回" -#: order/status_codes.py:104 +#: order/status_codes.py:108 msgid "Repair" msgstr "維修" -#: order/status_codes.py:107 +#: order/status_codes.py:111 msgid "Replace" msgstr "替換" -#: order/status_codes.py:110 +#: order/status_codes.py:114 msgid "Refund" msgstr "退款" -#: order/status_codes.py:113 +#: order/status_codes.py:117 msgid "Reject" msgstr "拒絕" -#: order/tasks.py:25 +#: order/tasks.py:30 msgid "Overdue Purchase Order" msgstr "逾期采购订单" -#: order/tasks.py:30 +#: order/tasks.py:35 #, python-brace-format msgid "Purchase order {po} is now overdue" msgstr "采购订单 {po} 已逾期" -#: order/tasks.py:75 +#: order/tasks.py:80 msgid "Overdue Sales Order" msgstr "逾期销售订单" -#: order/tasks.py:80 +#: order/tasks.py:85 #, python-brace-format msgid "Sales order {so} is now overdue" msgstr "销售订单 {so} 已逾期" -#: order/templates/order/order_base.html:51 +#: order/templates/order/order_base.html:52 msgid "Print purchase order report" msgstr "打印采购订单报告" -#: order/templates/order/order_base.html:53 -#: order/templates/order/return_order_base.html:62 -#: order/templates/order/sales_order_base.html:62 +#: order/templates/order/order_base.html:54 +#: order/templates/order/return_order_base.html:63 +#: order/templates/order/sales_order_base.html:63 msgid "Export order to file" msgstr "将订单导出到文件" -#: order/templates/order/order_base.html:59 -#: order/templates/order/return_order_base.html:72 -#: order/templates/order/sales_order_base.html:71 +#: order/templates/order/order_base.html:60 +#: order/templates/order/return_order_base.html:73 +#: order/templates/order/sales_order_base.html:72 msgid "Order actions" msgstr "订购操作" -#: order/templates/order/order_base.html:64 -#: order/templates/order/return_order_base.html:76 -#: order/templates/order/sales_order_base.html:75 +#: order/templates/order/order_base.html:65 +#: order/templates/order/return_order_base.html:77 +#: order/templates/order/sales_order_base.html:76 msgid "Edit order" msgstr "编辑订单" -#: order/templates/order/order_base.html:68 +#: order/templates/order/order_base.html:69 msgid "Duplicate order" msgstr "再次订购" -#: order/templates/order/order_base.html:73 -#: order/templates/order/return_order_base.html:78 -#: order/templates/order/sales_order_base.html:77 +#: order/templates/order/order_base.html:74 +#: order/templates/order/return_order_base.html:79 +#: order/templates/order/sales_order_base.html:78 msgid "Hold order" msgstr "挂起订单" -#: order/templates/order/order_base.html:78 -#: order/templates/order/return_order_base.html:81 -#: order/templates/order/sales_order_base.html:80 +#: order/templates/order/order_base.html:79 +#: order/templates/order/return_order_base.html:82 +#: order/templates/order/sales_order_base.html:81 msgid "Cancel order" msgstr "取消订单" -#: order/templates/order/order_base.html:84 #: order/templates/order/order_base.html:85 -#: order/templates/order/return_order_base.html:85 +#: order/templates/order/order_base.html:86 #: order/templates/order/return_order_base.html:86 -#: order/templates/order/sales_order_base.html:86 +#: order/templates/order/return_order_base.html:87 #: order/templates/order/sales_order_base.html:87 +#: order/templates/order/sales_order_base.html:88 msgid "Issue Order" msgstr "发布订单" -#: order/templates/order/order_base.html:88 -#: order/templates/order/return_order_base.html:89 +#: order/templates/order/order_base.html:89 +#: order/templates/order/return_order_base.html:90 msgid "Mark order as complete" msgstr "标记订单为已完成" -#: order/templates/order/order_base.html:89 -#: order/templates/order/return_order_base.html:90 -#: order/templates/order/sales_order_base.html:100 +#: order/templates/order/order_base.html:90 +#: order/templates/order/return_order_base.html:91 +#: order/templates/order/sales_order_base.html:101 msgid "Complete Order" msgstr "完成订单" -#: order/templates/order/order_base.html:96 +#: order/templates/order/order_base.html:97 msgid "Supplier part thumbnail" msgstr "供应商零件缩略图" -#: order/templates/order/order_base.html:116 -#: order/templates/order/return_order_base.html:109 -#: order/templates/order/sales_order_base.html:118 +#: order/templates/order/order_base.html:117 +#: order/templates/order/return_order_base.html:110 +#: order/templates/order/sales_order_base.html:119 msgid "Order Description" msgstr "订单描述" -#: order/templates/order/order_base.html:146 -msgid "No suppplier information available" -msgstr "没有可用的供应商信息" - -#: order/templates/order/order_base.html:159 -#: order/templates/order/sales_order_base.html:164 +#: order/templates/order/order_base.html:168 +#: order/templates/order/sales_order_base.html:165 msgid "Completed Line Items" msgstr "已完成项" -#: order/templates/order/order_base.html:165 -#: order/templates/order/sales_order_base.html:170 -#: order/templates/order/sales_order_base.html:180 +#: order/templates/order/order_base.html:174 +#: order/templates/order/sales_order_base.html:171 +#: order/templates/order/sales_order_base.html:181 msgid "Incomplete" msgstr "未完成" -#: order/templates/order/order_base.html:184 -#: order/templates/order/return_order_base.html:160 +#: order/templates/order/order_base.html:193 +#: order/templates/order/return_order_base.html:161 #: report/templates/report/inventree_build_order_report.html:121 msgid "Issued" msgstr "已派发" -#: order/templates/order/order_base.html:229 +#: order/templates/order/order_base.html:238 msgid "Total cost" msgstr "总计" -#: order/templates/order/order_base.html:233 -#: order/templates/order/return_order_base.html:202 -#: order/templates/order/sales_order_base.html:246 +#: order/templates/order/order_base.html:242 +#: order/templates/order/return_order_base.html:203 +#: order/templates/order/sales_order_base.html:247 msgid "Total cost could not be calculated" msgstr "无法计算总成本" -#: order/templates/order/order_base.html:335 +#: order/templates/order/order_base.html:344 msgid "Purchase Order QR Code" msgstr "采购订单二维码" -#: order/templates/order/order_base.html:347 +#: order/templates/order/order_base.html:356 msgid "Link Barcode to Purchase Order" msgstr "将条形码链接到采购订单" @@ -6184,12 +6392,12 @@ msgstr "重复选项" #: part/templates/part/import_wizard/ajax_match_references.html:42 #: part/templates/part/import_wizard/match_fields.html:71 #: part/templates/part/import_wizard/match_references.html:49 -#: templates/js/translated/bom.js:133 templates/js/translated/build.js:530 -#: templates/js/translated/build.js:1802 -#: templates/js/translated/purchase_order.js:696 -#: templates/js/translated/purchase_order.js:1288 +#: templates/js/translated/bom.js:133 templates/js/translated/build.js:533 +#: templates/js/translated/build.js:1805 +#: templates/js/translated/purchase_order.js:679 +#: templates/js/translated/purchase_order.js:1271 #: templates/js/translated/return_order.js:505 -#: templates/js/translated/sales_order.js:1145 +#: templates/js/translated/sales_order.js:1111 #: templates/js/translated/stock.js:720 templates/js/translated/stock.js:889 #: templates/patterns/wizard/match_fields.html:70 msgid "Remove row" @@ -6242,7 +6450,7 @@ msgstr "采购订单项目" #: order/templates/order/purchase_order_detail.html:27 #: order/templates/order/return_order_detail.html:24 #: order/templates/order/sales_order_detail.html:24 -#: templates/js/translated/purchase_order.js:414 +#: templates/js/translated/purchase_order.js:397 #: templates/js/translated/return_order.js:458 #: templates/js/translated/sales_order.js:237 msgid "Add Line Item" @@ -6277,45 +6485,45 @@ msgstr "已收到的项目" msgid "Order Notes" msgstr "订单备注" -#: order/templates/order/return_order_base.html:18 -#: order/templates/order/sales_order_base.html:18 +#: order/templates/order/return_order_base.html:19 +#: order/templates/order/sales_order_base.html:19 msgid "Customer logo thumbnail" msgstr "客户 logo 缩略图" -#: order/templates/order/return_order_base.html:60 +#: order/templates/order/return_order_base.html:61 msgid "Print return order report" msgstr "打印退货订单报告" -#: order/templates/order/return_order_base.html:64 -#: order/templates/order/sales_order_base.html:64 +#: order/templates/order/return_order_base.html:65 +#: order/templates/order/sales_order_base.html:65 msgid "Print packing list" msgstr "打印包装列表" -#: order/templates/order/return_order_base.html:141 -#: order/templates/order/sales_order_base.html:158 +#: order/templates/order/return_order_base.html:142 +#: order/templates/order/sales_order_base.html:159 #: templates/js/translated/return_order.js:308 -#: templates/js/translated/sales_order.js:833 +#: templates/js/translated/sales_order.js:792 msgid "Customer Reference" msgstr "客户参考" -#: order/templates/order/return_order_base.html:198 -#: order/templates/order/sales_order_base.html:242 +#: order/templates/order/return_order_base.html:199 +#: order/templates/order/sales_order_base.html:243 #: part/templates/part/part_pricing.html:32 #: part/templates/part/part_pricing.html:58 #: part/templates/part/part_pricing.html:99 #: part/templates/part/part_pricing.html:114 #: templates/js/translated/part.js:1079 -#: templates/js/translated/purchase_order.js:1822 +#: templates/js/translated/purchase_order.js:1806 #: templates/js/translated/return_order.js:380 -#: templates/js/translated/sales_order.js:891 +#: templates/js/translated/sales_order.js:850 msgid "Total Cost" msgstr "总成本" -#: order/templates/order/return_order_base.html:273 +#: order/templates/order/return_order_base.html:274 msgid "Return Order QR Code" msgstr "退货订单二维码" -#: order/templates/order/return_order_base.html:285 +#: order/templates/order/return_order_base.html:286 msgid "Link Barcode to Return Order" msgstr "将条形码链接到退货订单" @@ -6323,40 +6531,40 @@ msgstr "将条形码链接到退货订单" msgid "Order Details" msgstr "订单详情" -#: order/templates/order/sales_order_base.html:60 +#: order/templates/order/sales_order_base.html:61 msgid "Print sales order report" msgstr "打印销售订单报告" -#: order/templates/order/sales_order_base.html:91 #: order/templates/order/sales_order_base.html:92 +#: order/templates/order/sales_order_base.html:93 msgid "Ship Items" msgstr "运送项目" -#: order/templates/order/sales_order_base.html:95 #: order/templates/order/sales_order_base.html:96 +#: order/templates/order/sales_order_base.html:97 msgid "Mark As Shipped" msgstr "标记为已发货" -#: order/templates/order/sales_order_base.html:99 -#: templates/js/translated/sales_order.js:536 +#: order/templates/order/sales_order_base.html:100 +#: templates/js/translated/sales_order.js:495 msgid "Complete Sales Order" msgstr "完成销售订单" -#: order/templates/order/sales_order_base.html:138 +#: order/templates/order/sales_order_base.html:139 msgid "This Sales Order has not been fully allocated" msgstr "销售订单没有完全分配" -#: order/templates/order/sales_order_base.html:176 +#: order/templates/order/sales_order_base.html:177 #: order/templates/order/sales_order_detail.html:99 #: order/templates/order/so_sidebar.html:11 msgid "Completed Shipments" msgstr "完成配送" -#: order/templates/order/sales_order_base.html:339 +#: order/templates/order/sales_order_base.html:340 msgid "Sales Order QR Code" msgstr "销售订单二维码" -#: order/templates/order/sales_order_base.html:351 +#: order/templates/order/sales_order_base.html:352 msgid "Link Barcode to Sales Order" msgstr "将条形码链接到销售订单" @@ -6370,7 +6578,7 @@ msgid "Pending Shipments" msgstr "待发货" #: order/templates/order/sales_order_detail.html:71 -#: templates/js/translated/bom.js:1277 templates/js/translated/build.js:1063 +#: templates/js/translated/bom.js:1277 templates/js/translated/build.js:1066 #: templates/js/translated/filters.js:299 msgid "Actions" msgstr "动作" @@ -6383,39 +6591,40 @@ msgstr "新建配送" msgid "Match Supplier Parts" msgstr "匹配供应商零件" -#: order/views.py:406 +#: order/views.py:407 msgid "Sales order not found" msgstr "未找到销售订单" -#: order/views.py:412 +#: order/views.py:413 msgid "Price not found" msgstr "未找到价格" -#: order/views.py:415 +#: order/views.py:416 #, python-brace-format msgid "Updated {part} unit-price to {price}" msgstr "更新零件{part} 单价到{price}" -#: order/views.py:421 +#: order/views.py:422 #, python-brace-format msgid "Updated {part} unit-price to {price} and quantity to {qty}" msgstr "更新零件 {part} 单价到 {price} 且更新数量到 {qty}" -#: part/admin.py:48 part/models.py:1032 part/templates/part/part_base.html:269 +#: part/admin.py:48 part/models.py:1093 part/serializers.py:939 +#: part/templates/part/part_base.html:277 #: report/templates/report/inventree_stock_location_report.html:103 #: templates/js/translated/part.js:1233 templates/js/translated/part.js:2347 -#: templates/js/translated/stock.js:2121 +#: templates/js/translated/stock.js:2122 msgid "IPN" msgstr "内部零件号 IPN" -#: part/admin.py:50 part/models.py:1041 part/templates/part/part_base.html:286 +#: part/admin.py:50 part/models.py:1102 part/templates/part/part_base.html:294 #: report/models.py:161 templates/js/translated/part.js:1238 #: templates/js/translated/part.js:2353 msgid "Revision" msgstr "版本" -#: part/admin.py:53 part/admin.py:319 part/models.py:1014 -#: part/templates/part/category.html:91 part/templates/part/part_base.html:307 +#: part/admin.py:53 part/admin.py:319 part/models.py:1075 +#: part/templates/part/category.html:91 part/templates/part/part_base.html:315 msgid "Keywords" msgstr "关键词" @@ -6427,7 +6636,7 @@ msgstr "零件图像" msgid "Category ID" msgstr "类别 ID" -#: part/admin.py:67 part/admin.py:304 part/serializers.py:880 +#: part/admin.py:67 part/admin.py:304 part/serializers.py:924 #: part/stocktake.py:222 msgid "Category Name" msgstr "类别名称" @@ -6440,11 +6649,11 @@ msgstr "默认位置ID" msgid "Default Supplier ID" msgstr "默认供应商ID" -#: part/admin.py:81 part/models.py:1000 part/templates/part/part_base.html:177 +#: part/admin.py:81 part/models.py:1061 part/templates/part/part_base.html:178 msgid "Variant Of" msgstr "变体" -#: part/admin.py:84 part/models.py:1138 part/templates/part/part_base.html:203 +#: part/admin.py:84 part/models.py:1199 part/templates/part/part_base.html:204 msgid "Minimum Stock" msgstr "最低库存" @@ -6452,23 +6661,23 @@ msgstr "最低库存" msgid "Used In" msgstr "用于" -#: part/admin.py:150 part/serializers.py:897 -#: part/templates/part/part_base.html:241 stock/admin.py:235 +#: part/admin.py:150 part/serializers.py:949 +#: part/templates/part/part_base.html:249 stock/admin.py:236 #: templates/js/translated/part.js:717 templates/js/translated/part.js:2159 msgid "Building" msgstr "正在生产" -#: part/admin.py:155 part/models.py:3202 part/models.py:3216 +#: part/admin.py:155 part/models.py:3253 part/models.py:3267 #: templates/js/translated/part.js:976 msgid "Minimum Cost" msgstr "最低成本" -#: part/admin.py:158 part/models.py:3209 part/models.py:3223 +#: part/admin.py:158 part/models.py:3260 part/models.py:3274 #: templates/js/translated/part.js:986 msgid "Maximum Cost" msgstr "最高成本" -#: part/admin.py:308 part/admin.py:387 stock/admin.py:57 stock/admin.py:215 +#: part/admin.py:308 part/admin.py:387 stock/admin.py:57 stock/admin.py:216 msgid "Parent ID" msgstr "父类编号" @@ -6481,8 +6690,8 @@ msgstr "父类名称" msgid "Category Path" msgstr "类别路径" -#: part/admin.py:325 part/models.py:425 part/serializers.py:130 -#: part/serializers.py:290 part/serializers.py:415 +#: part/admin.py:325 part/models.py:420 part/serializers.py:130 +#: part/serializers.py:323 part/serializers.py:459 #: part/templates/part/cat_link.html:3 part/templates/part/category.html:20 #: part/templates/part/category.html:138 part/templates/part/category.html:158 #: part/templates/part/category_sidebar.html:9 @@ -6509,15 +6718,15 @@ msgstr "父类内部零件号" msgid "Part Revision" msgstr "零件修订版本" -#: part/admin.py:418 part/serializers.py:1346 +#: part/admin.py:418 part/serializers.py:1400 #: templates/js/translated/pricing.js:358 -#: templates/js/translated/pricing.js:1024 +#: templates/js/translated/pricing.js:1022 msgid "Minimum Price" msgstr "最低价格" -#: part/admin.py:423 part/serializers.py:1361 +#: part/admin.py:423 part/serializers.py:1415 #: templates/js/translated/pricing.js:353 -#: templates/js/translated/pricing.js:1032 +#: templates/js/translated/pricing.js:1030 msgid "Maximum Price" msgstr "最高价格" @@ -6545,94 +6754,98 @@ msgstr "顶级" msgid "Filter by top-level categories" msgstr "按顶级类别筛选" +#: part/api.py:156 stock/api.py:343 +msgid "Cascade" +msgstr "级联" + #: part/api.py:158 msgid "Include sub-categories in filtered results" msgstr "在筛选结果中包含子类别" -#: part/api.py:179 templates/js/translated/part.js:311 +#: part/api.py:178 templates/js/translated/part.js:311 msgid "Parent" msgstr "父类" -#: part/api.py:181 +#: part/api.py:180 msgid "Filter by parent category" msgstr "按父类别筛选" -#: part/api.py:214 +#: part/api.py:213 msgid "Exclude Tree" msgstr "排除树" -#: part/api.py:216 +#: part/api.py:215 msgid "Exclude sub-categories under the specified category" msgstr "排除指定类别下的子类别" -#: part/api.py:441 +#: part/api.py:440 msgid "Has Results" msgstr "有结果" -#: part/api.py:608 +#: part/api.py:604 msgid "Incoming Purchase Order" msgstr "收到的采购订单" -#: part/api.py:626 +#: part/api.py:618 msgid "Outgoing Sales Order" msgstr "外发销售订单" -#: part/api.py:642 +#: part/api.py:630 msgid "Stock produced by Build Order" msgstr "建造生产订单产生的库存" -#: part/api.py:726 +#: part/api.py:712 msgid "Stock required for Build Order" msgstr "生产订单所需的库存" -#: part/api.py:874 +#: part/api.py:858 msgid "Validate entire Bill of Materials" msgstr "验证整个物料清单" -#: part/api.py:880 +#: part/api.py:864 msgid "This option must be selected" msgstr "必须选择此项" -#: part/api.py:916 +#: part/api.py:900 msgid "Is Revision" msgstr "是修订版本" -#: part/api.py:926 +#: part/api.py:910 msgid "Has Revisions" msgstr "有修订版本" -#: part/api.py:1117 +#: part/api.py:1101 msgid "BOM Valid" msgstr "物料清单合规" -#: part/api.py:1523 part/models.py:1024 part/models.py:3489 part/models.py:4046 -#: part/serializers.py:430 part/serializers.py:1202 -#: part/templates/part/part_base.html:260 stock/api.py:781 +#: part/api.py:1509 part/models.py:1085 part/models.py:3540 part/models.py:4104 +#: part/serializers.py:474 part/serializers.py:1255 +#: part/templates/part/part_base.html:268 stock/api.py:781 #: templates/InvenTree/settings/settings_staff_js.html:300 #: templates/js/translated/notification.js:60 #: templates/js/translated/part.js:2383 msgid "Category" msgstr "类别" -#: part/api.py:1761 +#: part/api.py:1750 msgid "Assembly part is testable" -msgstr "" +msgstr "装配部份是可测试的" -#: part/api.py:1770 +#: part/api.py:1759 msgid "Component part is testable" -msgstr "" +msgstr "组件部份是可测试的" -#: part/api.py:1821 +#: part/api.py:1810 msgid "Uses" msgstr "使用" -#: part/bom.py:178 part/models.py:107 part/models.py:1077 -#: part/templates/part/category.html:113 part/templates/part/part_base.html:376 +#: part/bom.py:183 part/models.py:109 part/models.py:1138 +#: part/templates/part/category.html:113 part/templates/part/part_base.html:384 #: templates/js/translated/part.js:2397 msgid "Default Location" msgstr "默认位置" -#: part/bom.py:179 part/serializers.py:905 +#: part/bom.py:184 part/serializers.py:957 #: templates/email/low_stock_notification.html:16 msgid "Total Stock" msgstr "库存总量" @@ -6641,789 +6854,789 @@ msgstr "库存总量" msgid "Input quantity for price calculation" msgstr "输入用于价格计算的数量" -#: part/models.py:88 part/models.py:4047 part/templates/part/category.html:16 +#: part/models.py:90 part/models.py:4105 part/templates/part/category.html:16 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "零件类别" -#: part/models.py:89 part/templates/part/category.html:133 +#: part/models.py:91 part/templates/part/category.html:133 #: templates/InvenTree/search.html:97 templates/js/translated/search.js:158 #: users/models.py:202 msgid "Part Categories" msgstr "零件类别" -#: part/models.py:108 +#: part/models.py:110 msgid "Default location for parts in this category" msgstr "此类别零件的默认库存地点" -#: part/models.py:113 stock/models.py:187 templates/js/translated/part.js:2828 -#: templates/js/translated/stock.js:2856 +#: part/models.py:115 stock/models.py:193 templates/js/translated/part.js:2828 +#: templates/js/translated/stock.js:2857 #: templates/js/translated/table_filters.js:246 #: templates/js/translated/table_filters.js:290 msgid "Structural" msgstr "结构性" -#: part/models.py:115 +#: part/models.py:117 msgid "Parts may not be directly assigned to a structural category, but may be assigned to child categories." msgstr "零件可能无法直接分配到结构类别,但可以分配到子类别。" -#: part/models.py:124 +#: part/models.py:126 msgid "Default keywords" msgstr "默认关键字" -#: part/models.py:125 +#: part/models.py:127 msgid "Default keywords for parts in this category" msgstr "此类别零件的默认关键字" -#: part/models.py:131 stock/models.py:90 stock/models.py:169 +#: part/models.py:133 stock/models.py:96 stock/models.py:175 #: templates/InvenTree/settings/settings_staff_js.html:445 msgid "Icon" msgstr "图标" -#: part/models.py:132 part/serializers.py:143 part/serializers.py:161 -#: stock/models.py:170 +#: part/models.py:134 part/serializers.py:143 part/serializers.py:161 +#: stock/models.py:176 msgid "Icon (optional)" msgstr "图标(可选)" -#: part/models.py:178 +#: part/models.py:180 msgid "You cannot make this part category structural because some parts are already assigned to it!" msgstr "您不能使这个零件类别结构化,因为有些零件已经分配给了它!" -#: part/models.py:519 +#: part/models.py:514 msgid "Cannot delete this part as it is locked" msgstr "无法删除这个零件,因为它已被锁定" -#: part/models.py:522 +#: part/models.py:517 msgid "Cannot delete this part as it is still active" msgstr "无法删除这个零件,因为它仍然处于活动状态" -#: part/models.py:527 +#: part/models.py:522 msgid "Cannot delete this part as it is used in an assembly" msgstr "无法删除这个零件,因为它被使用在了装配中" -#: part/models.py:565 +#: part/models.py:560 msgid "Invalid choice for parent part" msgstr "无效的上级零件选择" -#: part/models.py:613 part/models.py:620 +#: part/models.py:608 part/models.py:615 #, python-brace-format msgid "Part '{self}' cannot be used in BOM for '{parent}' (recursive)" msgstr "零件 \"{self}\" 不能用在 \"{parent}\" 的物料清单 (递归)" -#: part/models.py:632 +#: part/models.py:627 #, python-brace-format msgid "Part '{parent}' is used in BOM for '{self}' (recursive)" msgstr "零件 \"{parent}\" 被使用在了 \"{self}\" 的物料清单 (递归)" -#: part/models.py:695 +#: part/models.py:694 #, python-brace-format msgid "IPN must match regex pattern {pattern}" msgstr "内部零件号必须匹配正则表达式 {pattern}" -#: part/models.py:703 +#: part/models.py:702 msgid "Part cannot be a revision of itself" msgstr "零件不能是对自身的修订" -#: part/models.py:710 +#: part/models.py:709 msgid "Cannot make a revision of a part which is already a revision" msgstr "无法对已经是修订版本的零件进行修订" -#: part/models.py:717 +#: part/models.py:716 msgid "Revision code must be specified" msgstr "必须指定修订代码" -#: part/models.py:724 +#: part/models.py:723 msgid "Revisions are only allowed for assembly parts" msgstr "修订仅对装配零件允许" -#: part/models.py:731 +#: part/models.py:730 msgid "Cannot make a revision of a template part" msgstr "无法对模版零件进行修订" -#: part/models.py:737 +#: part/models.py:736 msgid "Parent part must point to the same template" msgstr "上级零件必须指向相同的模版" -#: part/models.py:816 +#: part/models.py:832 msgid "Stock item with this serial number already exists" msgstr "该序列号库存项己存在" -#: part/models.py:917 +#: part/models.py:976 msgid "Duplicate IPN not allowed in part settings" msgstr "在零件设置中不允许重复的内部零件号" -#: part/models.py:926 +#: part/models.py:988 msgid "Duplicate part revision already exists." msgstr "重复的零件修订版本已经存在。" -#: part/models.py:936 +#: part/models.py:997 msgid "Part with this Name, IPN and Revision already exists." msgstr "有这个名字,内部零件号,和修订版本的零件已经存在" -#: part/models.py:951 +#: part/models.py:1012 msgid "Parts cannot be assigned to structural part categories!" msgstr "零件不能分配到结构性零件类别!" -#: part/models.py:983 part/models.py:4102 +#: part/models.py:1044 part/models.py:4160 msgid "Part name" msgstr "零件名称" -#: part/models.py:988 +#: part/models.py:1049 msgid "Is Template" msgstr "是模板" -#: part/models.py:989 +#: part/models.py:1050 msgid "Is this part a template part?" msgstr "这个零件是一个模版零件吗?" -#: part/models.py:999 +#: part/models.py:1060 msgid "Is this part a variant of another part?" msgstr "这个零件是另一零件的变体吗?" -#: part/models.py:1007 +#: part/models.py:1068 msgid "Part description (optional)" msgstr "零件描述(可选)" -#: part/models.py:1015 +#: part/models.py:1076 msgid "Part keywords to improve visibility in search results" msgstr "提高搜索结果可见性的零件关键字" -#: part/models.py:1025 +#: part/models.py:1086 msgid "Part category" msgstr "零件类别" -#: part/models.py:1040 +#: part/models.py:1101 msgid "Part revision or version number" msgstr "零件修订版本或版本号" -#: part/models.py:1050 +#: part/models.py:1111 msgid "Is this part a revision of another part?" msgstr "这零件是另一零件的修订版本吗?" -#: part/models.py:1051 part/templates/part/part_base.html:277 +#: part/models.py:1112 part/templates/part/part_base.html:285 msgid "Revision Of" msgstr "修订版本" -#: part/models.py:1075 +#: part/models.py:1136 msgid "Where is this item normally stored?" msgstr "该物品通常存放在哪里?" -#: part/models.py:1121 part/templates/part/part_base.html:385 +#: part/models.py:1182 part/templates/part/part_base.html:393 msgid "Default Supplier" msgstr "默认供应商" -#: part/models.py:1122 +#: part/models.py:1183 msgid "Default supplier part" msgstr "默认供应商零件" -#: part/models.py:1129 +#: part/models.py:1190 msgid "Default Expiry" msgstr "默认到期" -#: part/models.py:1130 +#: part/models.py:1191 msgid "Expiry time (in days) for stock items of this part" msgstr "此零件库存项的过期时间 (天)" -#: part/models.py:1139 +#: part/models.py:1200 msgid "Minimum allowed stock level" msgstr "允许的最小库存量" -#: part/models.py:1148 +#: part/models.py:1209 msgid "Units of measure for this part" msgstr "此零件的计量单位" -#: part/models.py:1155 +#: part/models.py:1216 msgid "Can this part be built from other parts?" msgstr "这个零件可由其他零件加工而成吗?" -#: part/models.py:1161 +#: part/models.py:1222 msgid "Can this part be used to build other parts?" msgstr "这个零件可用于创建其他零件吗?" -#: part/models.py:1167 +#: part/models.py:1228 msgid "Does this part have tracking for unique items?" msgstr "此零件是否有唯一物品的追踪功能" -#: part/models.py:1173 +#: part/models.py:1234 msgid "Can this part have test results recorded against it?" -msgstr "" +msgstr "这一部件能否记录到测试结果?" -#: part/models.py:1179 +#: part/models.py:1240 msgid "Can this part be purchased from external suppliers?" msgstr "这个零件可从外部供应商购买吗?" -#: part/models.py:1185 +#: part/models.py:1246 msgid "Can this part be sold to customers?" msgstr "此零件可以销售给客户吗?" -#: part/models.py:1189 +#: part/models.py:1250 msgid "Is this part active?" msgstr "这个零件是否已激活?" -#: part/models.py:1194 templates/js/translated/part.js:821 +#: part/models.py:1255 templates/js/translated/part.js:821 #: templates/js/translated/table_filters.js:724 msgid "Locked" msgstr "已锁定" -#: part/models.py:1195 +#: part/models.py:1256 msgid "Locked parts cannot be edited" msgstr "无法编辑锁定的零件" -#: part/models.py:1201 +#: part/models.py:1262 msgid "Is this a virtual part, such as a software product or license?" msgstr "这是一个虚拟零件,例如一个软件产品或许可证吗?" -#: part/models.py:1207 +#: part/models.py:1268 msgid "BOM checksum" msgstr "物料清单校验和" -#: part/models.py:1208 +#: part/models.py:1269 msgid "Stored BOM checksum" msgstr "保存的物料清单校验和" -#: part/models.py:1216 +#: part/models.py:1277 msgid "BOM checked by" msgstr "物料清单检查人" -#: part/models.py:1221 +#: part/models.py:1282 msgid "BOM checked date" msgstr "物料清单检查日期" -#: part/models.py:1237 +#: part/models.py:1298 msgid "Creation User" msgstr "新建用户" -#: part/models.py:1247 +#: part/models.py:1308 msgid "Owner responsible for this part" msgstr "此零件的负责人" -#: part/models.py:1252 part/templates/part/part_base.html:348 -#: stock/templates/stock/item_base.html:451 +#: part/models.py:1313 part/templates/part/part_base.html:356 +#: stock/templates/stock/item_base.html:448 #: templates/js/translated/part.js:2490 msgid "Last Stocktake" msgstr "最近库存盘点" -#: part/models.py:2125 +#: part/models.py:2185 msgid "Sell multiple" msgstr "出售多个" -#: part/models.py:3116 +#: part/models.py:3167 msgid "Currency used to cache pricing calculations" msgstr "用于缓存定价计算的货币" -#: part/models.py:3132 +#: part/models.py:3183 msgid "Minimum BOM Cost" msgstr "最低物料清单成本" -#: part/models.py:3133 +#: part/models.py:3184 msgid "Minimum cost of component parts" msgstr "元件的最低成本" -#: part/models.py:3139 +#: part/models.py:3190 msgid "Maximum BOM Cost" msgstr "物料清单的最高成本" -#: part/models.py:3140 +#: part/models.py:3191 msgid "Maximum cost of component parts" msgstr "元件的最高成本" -#: part/models.py:3146 +#: part/models.py:3197 msgid "Minimum Purchase Cost" msgstr "最低购买成本" -#: part/models.py:3147 +#: part/models.py:3198 msgid "Minimum historical purchase cost" msgstr "最高历史购买成本" -#: part/models.py:3153 +#: part/models.py:3204 msgid "Maximum Purchase Cost" msgstr "最大购买成本" -#: part/models.py:3154 +#: part/models.py:3205 msgid "Maximum historical purchase cost" msgstr "最高历史购买成本" -#: part/models.py:3160 +#: part/models.py:3211 msgid "Minimum Internal Price" msgstr "最低内部价格" -#: part/models.py:3161 +#: part/models.py:3212 msgid "Minimum cost based on internal price breaks" msgstr "基于内部批发价的最低成本" -#: part/models.py:3167 +#: part/models.py:3218 msgid "Maximum Internal Price" msgstr "最大内部价格" -#: part/models.py:3168 +#: part/models.py:3219 msgid "Maximum cost based on internal price breaks" msgstr "基于内部批发价的最高成本" -#: part/models.py:3174 +#: part/models.py:3225 msgid "Minimum Supplier Price" msgstr "供应商最低价格" -#: part/models.py:3175 +#: part/models.py:3226 msgid "Minimum price of part from external suppliers" msgstr "外部供应商零件的最低价格" -#: part/models.py:3181 +#: part/models.py:3232 msgid "Maximum Supplier Price" msgstr "供应商最高价格" -#: part/models.py:3182 +#: part/models.py:3233 msgid "Maximum price of part from external suppliers" msgstr "来自外部供应商的商零件的最高价格" -#: part/models.py:3188 +#: part/models.py:3239 msgid "Minimum Variant Cost" msgstr "最小变体成本" -#: part/models.py:3189 +#: part/models.py:3240 msgid "Calculated minimum cost of variant parts" msgstr "计算出的变体零件的最低成本" -#: part/models.py:3195 +#: part/models.py:3246 msgid "Maximum Variant Cost" msgstr "最大变体成本" -#: part/models.py:3196 +#: part/models.py:3247 msgid "Calculated maximum cost of variant parts" msgstr "计算出的变体零件的最大成本" -#: part/models.py:3203 +#: part/models.py:3254 msgid "Override minimum cost" msgstr "覆盖最低成本" -#: part/models.py:3210 +#: part/models.py:3261 msgid "Override maximum cost" msgstr "覆盖最大成本" -#: part/models.py:3217 +#: part/models.py:3268 msgid "Calculated overall minimum cost" msgstr "计算总最低成本" -#: part/models.py:3224 +#: part/models.py:3275 msgid "Calculated overall maximum cost" msgstr "计算总最大成本" -#: part/models.py:3230 +#: part/models.py:3281 msgid "Minimum Sale Price" msgstr "最低售出价格" -#: part/models.py:3231 +#: part/models.py:3282 msgid "Minimum sale price based on price breaks" msgstr "基于批发价的最低售出价格" -#: part/models.py:3237 +#: part/models.py:3288 msgid "Maximum Sale Price" msgstr "最高售出价格" -#: part/models.py:3238 +#: part/models.py:3289 msgid "Maximum sale price based on price breaks" msgstr "基于批发价的最大售出价格" -#: part/models.py:3244 +#: part/models.py:3295 msgid "Minimum Sale Cost" msgstr "最低销售成本" -#: part/models.py:3245 +#: part/models.py:3296 msgid "Minimum historical sale price" msgstr "历史最低售出价格" -#: part/models.py:3251 +#: part/models.py:3302 msgid "Maximum Sale Cost" msgstr "最高销售成本" -#: part/models.py:3252 +#: part/models.py:3303 msgid "Maximum historical sale price" msgstr "历史最高售出价格" -#: part/models.py:3271 +#: part/models.py:3322 msgid "Part for stocktake" msgstr "用于盘点的零件" -#: part/models.py:3276 +#: part/models.py:3327 msgid "Item Count" msgstr "物品数量" -#: part/models.py:3277 +#: part/models.py:3328 msgid "Number of individual stock entries at time of stocktake" msgstr "盘点时的个别库存条目数" -#: part/models.py:3285 +#: part/models.py:3336 msgid "Total available stock at time of stocktake" msgstr "盘点时可用库存总额" -#: part/models.py:3289 part/models.py:3372 +#: part/models.py:3340 part/models.py:3423 part/serializers.py:263 #: part/templates/part/part_scheduling.html:13 #: report/templates/report/inventree_test_report.html:106 #: templates/InvenTree/settings/plugin_settings.html:37 #: templates/InvenTree/settings/settings_staff_js.html:543 -#: templates/js/translated/part.js:1092 templates/js/translated/pricing.js:826 -#: templates/js/translated/pricing.js:950 -#: templates/js/translated/purchase_order.js:1801 -#: templates/js/translated/stock.js:2905 +#: templates/js/translated/part.js:1092 templates/js/translated/pricing.js:824 +#: templates/js/translated/pricing.js:948 +#: templates/js/translated/purchase_order.js:1785 +#: templates/js/translated/stock.js:2906 msgid "Date" msgstr "日期" -#: part/models.py:3290 +#: part/models.py:3341 msgid "Date stocktake was performed" msgstr "进行盘点的日期" -#: part/models.py:3298 +#: part/models.py:3349 msgid "Additional notes" msgstr "附加注释" -#: part/models.py:3308 +#: part/models.py:3359 msgid "User who performed this stocktake" msgstr "进行此盘点的用户" -#: part/models.py:3314 +#: part/models.py:3365 msgid "Minimum Stock Cost" msgstr "最低库存成本" -#: part/models.py:3315 +#: part/models.py:3366 msgid "Estimated minimum cost of stock on hand" msgstr "现有存库存最低成本估算" -#: part/models.py:3321 +#: part/models.py:3372 msgid "Maximum Stock Cost" msgstr "最高库存成本" -#: part/models.py:3322 +#: part/models.py:3373 msgid "Estimated maximum cost of stock on hand" msgstr "目前库存最高成本估算" -#: part/models.py:3378 templates/InvenTree/settings/settings_staff_js.html:532 +#: part/models.py:3429 templates/InvenTree/settings/settings_staff_js.html:532 msgid "Report" msgstr "报告" -#: part/models.py:3379 +#: part/models.py:3430 msgid "Stocktake report file (generated internally)" msgstr "盘点报告文件(内部生成)" -#: part/models.py:3384 templates/InvenTree/settings/settings_staff_js.html:539 +#: part/models.py:3435 templates/InvenTree/settings/settings_staff_js.html:539 msgid "Part Count" msgstr "零件计数" -#: part/models.py:3385 +#: part/models.py:3436 msgid "Number of parts covered by stocktake" msgstr "盘点涵盖的零件数量" -#: part/models.py:3395 +#: part/models.py:3446 msgid "User who requested this stocktake report" msgstr "请求此盘点报告的用户" -#: part/models.py:3405 +#: part/models.py:3456 msgid "Part Sale Price Break" msgstr "零件售出价格折扣" -#: part/models.py:3517 +#: part/models.py:3568 msgid "Part Test Template" msgstr "零件测试模板" -#: part/models.py:3543 +#: part/models.py:3594 msgid "Invalid template name - must include at least one alphanumeric character" msgstr "模板名称无效 - 必须包含至少一个字母或者数字" -#: part/models.py:3564 part/models.py:3733 +#: part/models.py:3615 part/models.py:3784 msgid "Choices must be unique" msgstr "选择必须是唯一的" -#: part/models.py:3575 -msgid "Test templates can only be created for trackable parts" -msgstr "只能为可跟踪的零件创建测试模板" +#: part/models.py:3626 +msgid "Test templates can only be created for testable parts" +msgstr "测试模板只能为可拆分的部件创建" -#: part/models.py:3586 +#: part/models.py:3637 msgid "Test template with the same key already exists for part" msgstr "零件已存在具有相同主键的测试模板" -#: part/models.py:3603 templates/js/translated/part.js:2898 +#: part/models.py:3654 templates/js/translated/part.js:2898 msgid "Test Name" msgstr "测试名" -#: part/models.py:3604 +#: part/models.py:3655 msgid "Enter a name for the test" msgstr "输入测试的名称" -#: part/models.py:3610 +#: part/models.py:3661 msgid "Test Key" msgstr "测试主键" -#: part/models.py:3611 +#: part/models.py:3662 msgid "Simplified key for the test" msgstr "简化测试主键" -#: part/models.py:3618 +#: part/models.py:3669 msgid "Test Description" msgstr "测试说明" -#: part/models.py:3619 +#: part/models.py:3670 msgid "Enter description for this test" msgstr "输入测试的描述" -#: part/models.py:3623 report/models.py:208 +#: part/models.py:3674 report/models.py:216 #: templates/js/translated/part.js:2919 #: templates/js/translated/table_filters.js:502 msgid "Enabled" msgstr "已启用" -#: part/models.py:3623 +#: part/models.py:3674 msgid "Is this test enabled?" msgstr "此测试是否已启用?" -#: part/models.py:3628 templates/js/translated/part.js:2927 +#: part/models.py:3679 templates/js/translated/part.js:2927 #: templates/js/translated/table_filters.js:498 msgid "Required" msgstr "必须的" -#: part/models.py:3629 +#: part/models.py:3680 msgid "Is this test required to pass?" msgstr "需要此测试才能通过吗?" -#: part/models.py:3634 templates/js/translated/part.js:2935 +#: part/models.py:3685 templates/js/translated/part.js:2935 msgid "Requires Value" msgstr "需要值" -#: part/models.py:3635 +#: part/models.py:3686 msgid "Does this test require a value when adding a test result?" msgstr "添加测试结果时是否需要一个值?" -#: part/models.py:3640 templates/js/translated/part.js:2942 +#: part/models.py:3691 templates/js/translated/part.js:2942 msgid "Requires Attachment" msgstr "需要附件" -#: part/models.py:3642 +#: part/models.py:3693 msgid "Does this test require a file attachment when adding a test result?" msgstr "添加测试结果时是否需要文件附件?" -#: part/models.py:3648 part/models.py:3792 templates/js/translated/part.js:1643 +#: part/models.py:3699 part/models.py:3843 templates/js/translated/part.js:1643 msgid "Choices" msgstr "选项" -#: part/models.py:3649 +#: part/models.py:3700 msgid "Valid choices for this test (comma-separated)" msgstr "此测试的有效选择 (逗号分隔)" -#: part/models.py:3681 +#: part/models.py:3732 msgid "Part Parameter Template" msgstr "零件参数模板" -#: part/models.py:3708 +#: part/models.py:3759 msgid "Checkbox parameters cannot have units" msgstr "勾选框参数不能有单位" -#: part/models.py:3713 +#: part/models.py:3764 msgid "Checkbox parameters cannot have choices" msgstr "复选框参数不能有选项" -#: part/models.py:3750 +#: part/models.py:3801 msgid "Parameter template name must be unique" msgstr "参数模板名称必须是唯一的" -#: part/models.py:3765 +#: part/models.py:3816 msgid "Parameter Name" msgstr "参数名称" -#: part/models.py:3772 +#: part/models.py:3823 msgid "Physical units for this parameter" msgstr "此参数的物理单位" -#: part/models.py:3780 +#: part/models.py:3831 msgid "Parameter description" msgstr "参数说明" -#: part/models.py:3786 templates/js/translated/part.js:1634 +#: part/models.py:3837 templates/js/translated/part.js:1634 #: templates/js/translated/table_filters.js:837 msgid "Checkbox" msgstr "勾选框" -#: part/models.py:3787 +#: part/models.py:3838 msgid "Is this parameter a checkbox?" msgstr "此参数是否为勾选框?" -#: part/models.py:3793 +#: part/models.py:3844 msgid "Valid choices for this parameter (comma-separated)" msgstr "此参数的有效选择 (逗号分隔)" -#: part/models.py:3827 +#: part/models.py:3881 msgid "Part Parameter" msgstr "零件参数" -#: part/models.py:3853 +#: part/models.py:3907 msgid "Parameter cannot be modified - part is locked" msgstr "参数不能被修改 - 零件被锁定" -#: part/models.py:3889 +#: part/models.py:3945 msgid "Invalid choice for parameter value" msgstr "无效的参数值选择" -#: part/models.py:3938 +#: part/models.py:3996 msgid "Parent Part" msgstr "父零件" -#: part/models.py:3946 part/models.py:4054 part/models.py:4055 +#: part/models.py:4004 part/models.py:4112 part/models.py:4113 #: templates/InvenTree/settings/settings_staff_js.html:295 msgid "Parameter Template" msgstr "参数模板" -#: part/models.py:3952 +#: part/models.py:4010 msgid "Parameter Value" msgstr "参数值" -#: part/models.py:4002 +#: part/models.py:4060 msgid "Part Category Parameter Template" msgstr "零件类别参数模板" -#: part/models.py:4061 templates/InvenTree/settings/settings_staff_js.html:304 +#: part/models.py:4119 templates/InvenTree/settings/settings_staff_js.html:304 msgid "Default Value" msgstr "默认值" -#: part/models.py:4062 +#: part/models.py:4120 msgid "Default Parameter Value" msgstr "默认参数值" -#: part/models.py:4100 +#: part/models.py:4158 msgid "Part ID or part name" msgstr "零件ID或零件名称" -#: part/models.py:4101 +#: part/models.py:4159 msgid "Unique part ID value" msgstr "唯一零件ID值" -#: part/models.py:4103 +#: part/models.py:4161 msgid "Part IPN value" msgstr "零件内部零件号" -#: part/models.py:4104 +#: part/models.py:4162 msgid "Level" msgstr "级" -#: part/models.py:4104 +#: part/models.py:4162 msgid "BOM level" msgstr "物料清单级别" -#: part/models.py:4215 +#: part/models.py:4272 msgid "BOM item cannot be modified - assembly is locked" msgstr "物料清单项目不能被修改 - 装配已锁定" -#: part/models.py:4222 +#: part/models.py:4279 msgid "BOM item cannot be modified - variant assembly is locked" msgstr "物料清单项目不能修改 - 变体装配已锁定" -#: part/models.py:4232 +#: part/models.py:4289 msgid "Select parent part" msgstr "选择父零件" -#: part/models.py:4242 +#: part/models.py:4299 msgid "Sub part" msgstr "子零件" -#: part/models.py:4243 +#: part/models.py:4300 msgid "Select part to be used in BOM" msgstr "选择要用于物料清单的零件" -#: part/models.py:4254 +#: part/models.py:4311 msgid "BOM quantity for this BOM item" msgstr "此物料清单项目的数量" -#: part/models.py:4260 +#: part/models.py:4317 msgid "This BOM item is optional" msgstr "此物料清单项目是可选的" -#: part/models.py:4266 +#: part/models.py:4323 msgid "This BOM item is consumable (it is not tracked in build orders)" msgstr "这个物料清单项目是耗材 (它没有在生产订单中被追踪)" -#: part/models.py:4273 part/templates/part/upload_bom.html:55 +#: part/models.py:4330 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "超量" -#: part/models.py:4274 +#: part/models.py:4331 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "估计生产物浪费量(绝对值或百分比)" -#: part/models.py:4281 +#: part/models.py:4338 msgid "BOM item reference" msgstr "物料清单项目引用" -#: part/models.py:4289 +#: part/models.py:4346 msgid "BOM item notes" msgstr "物料清单项目注释" -#: part/models.py:4295 +#: part/models.py:4352 msgid "Checksum" msgstr "校验和" -#: part/models.py:4296 +#: part/models.py:4353 msgid "BOM line checksum" msgstr "物料清单行校验和" -#: part/models.py:4301 templates/js/translated/table_filters.js:181 +#: part/models.py:4358 templates/js/translated/table_filters.js:181 msgid "Validated" msgstr "已验证" -#: part/models.py:4302 +#: part/models.py:4359 msgid "This BOM item has been validated" msgstr "此物料清单项目已验证" -#: part/models.py:4307 part/templates/part/upload_bom.html:57 +#: part/models.py:4364 part/templates/part/upload_bom.html:57 #: templates/js/translated/bom.js:1054 #: templates/js/translated/table_filters.js:185 #: templates/js/translated/table_filters.js:218 msgid "Gets inherited" msgstr "获取继承的" -#: part/models.py:4308 +#: part/models.py:4365 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "此物料清单项目是由物料清单继承的变体零件" -#: part/models.py:4314 +#: part/models.py:4371 msgid "Stock items for variant parts can be used for this BOM item" msgstr "变体零件的库存项可以用于此物料清单项目" -#: part/models.py:4399 stock/models.py:685 +#: part/models.py:4456 stock/models.py:762 msgid "Quantity must be integer value for trackable parts" msgstr "可追踪零件的数量必须是整数" -#: part/models.py:4409 part/models.py:4411 +#: part/models.py:4466 part/models.py:4468 msgid "Sub part must be specified" msgstr "必须指定子零件" -#: part/models.py:4551 +#: part/models.py:4613 msgid "BOM Item Substitute" msgstr "物料清单项目替代品" -#: part/models.py:4572 +#: part/models.py:4634 msgid "Substitute part cannot be the same as the master part" msgstr "替代品零件不能与主零件相同" -#: part/models.py:4585 +#: part/models.py:4647 msgid "Parent BOM item" msgstr "上级物料清单项目" -#: part/models.py:4593 +#: part/models.py:4655 msgid "Substitute part" msgstr "替代品零件" -#: part/models.py:4609 +#: part/models.py:4671 msgid "Part 1" msgstr "零件 1" -#: part/models.py:4617 +#: part/models.py:4679 msgid "Part 2" msgstr "零件2" -#: part/models.py:4618 +#: part/models.py:4680 msgid "Select Related Part" msgstr "选择相关的零件" -#: part/models.py:4637 +#: part/models.py:4699 msgid "Part relationship cannot be created between a part and itself" msgstr "零件关系不能在零件和自身之间创建" -#: part/models.py:4642 +#: part/models.py:4704 msgid "Duplicate relationship already exists" msgstr "复制关系已经存在" @@ -7449,340 +7662,352 @@ msgstr "结果" msgid "Number of results recorded against this template" msgstr "根据该模板记录的结果数量" -#: part/serializers.py:225 part/serializers.py:243 stock/serializers.py:616 +#: part/serializers.py:225 part/serializers.py:243 stock/serializers.py:643 msgid "Purchase currency of this stock item" msgstr "购买此库存项的货币" -#: part/serializers.py:291 +#: part/serializers.py:268 +msgid "Speculative Quantity" +msgstr "投机数量" + +#: part/serializers.py:277 +msgid "Model ID" +msgstr "型号ID" + +#: part/serializers.py:324 msgid "Number of parts using this template" msgstr "使用此模板的零件数" -#: part/serializers.py:421 +#: part/serializers.py:465 msgid "No parts selected" msgstr "没有选定零件" -#: part/serializers.py:431 +#: part/serializers.py:475 msgid "Select category" msgstr "选择类别" -#: part/serializers.py:466 +#: part/serializers.py:510 msgid "Original Part" msgstr "原始零件" -#: part/serializers.py:467 +#: part/serializers.py:511 msgid "Select original part to duplicate" msgstr "选择要复制的原始零件" -#: part/serializers.py:472 +#: part/serializers.py:516 msgid "Copy Image" msgstr "复制图片" -#: part/serializers.py:473 +#: part/serializers.py:517 msgid "Copy image from original part" msgstr "从原零件复制图片" -#: part/serializers.py:479 part/templates/part/detail.html:293 +#: part/serializers.py:523 part/templates/part/detail.html:293 msgid "Copy BOM" msgstr "复制物料清单" -#: part/serializers.py:480 +#: part/serializers.py:524 msgid "Copy bill of materials from original part" msgstr "从原始零件复制材料清单" -#: part/serializers.py:486 +#: part/serializers.py:530 msgid "Copy Parameters" msgstr "复制参数" -#: part/serializers.py:487 +#: part/serializers.py:531 msgid "Copy parameter data from original part" msgstr "从原始零件复制参数数据" -#: part/serializers.py:493 +#: part/serializers.py:537 msgid "Copy Notes" msgstr "复制备注" -#: part/serializers.py:494 +#: part/serializers.py:538 msgid "Copy notes from original part" msgstr "从原始零件复制备注" -#: part/serializers.py:512 +#: part/serializers.py:556 msgid "Initial Stock Quantity" msgstr "初始化库存数量" -#: part/serializers.py:514 +#: part/serializers.py:558 msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added." msgstr "指定此零件的初始库存数量。如果数量为零,则不添加任何库存。" -#: part/serializers.py:521 +#: part/serializers.py:565 msgid "Initial Stock Location" msgstr "初始化库存地点" -#: part/serializers.py:522 +#: part/serializers.py:566 msgid "Specify initial stock location for this Part" msgstr "初始化指定此零件的库存地点" -#: part/serializers.py:539 +#: part/serializers.py:583 msgid "Select supplier (or leave blank to skip)" msgstr "选择供应商(或为空以跳过)" -#: part/serializers.py:555 +#: part/serializers.py:599 msgid "Select manufacturer (or leave blank to skip)" msgstr "选择制造商(或为空)" -#: part/serializers.py:565 +#: part/serializers.py:609 msgid "Manufacturer part number" msgstr "制造商零件号" -#: part/serializers.py:572 +#: part/serializers.py:616 msgid "Selected company is not a valid supplier" msgstr "所选公司不是一个有效的供应商" -#: part/serializers.py:581 +#: part/serializers.py:625 msgid "Selected company is not a valid manufacturer" msgstr "所选公司不是一个有效的制造商" -#: part/serializers.py:592 +#: part/serializers.py:636 msgid "Manufacturer part matching this MPN already exists" msgstr "与此制造商零件编号 (MPN) 的相匹配的制造商零件已存在" -#: part/serializers.py:599 +#: part/serializers.py:643 msgid "Supplier part matching this SKU already exists" msgstr "匹配此库存单位 (SKU) 的供应商零件已存在" -#: part/serializers.py:903 +#: part/serializers.py:955 msgid "Revisions" msgstr "修订" -#: part/serializers.py:908 +#: part/serializers.py:960 msgid "Unallocated Stock" msgstr "未分配的库存" -#: part/serializers.py:911 +#: part/serializers.py:963 msgid "Variant Stock" msgstr "变体库存" -#: part/serializers.py:941 part/templates/part/copy_part.html:9 +#: part/serializers.py:993 part/templates/part/copy_part.html:9 #: templates/js/translated/part.js:474 msgid "Duplicate Part" msgstr "重复零件" -#: part/serializers.py:942 +#: part/serializers.py:994 msgid "Copy initial data from another Part" msgstr "从另一个零件复制初始数据" -#: part/serializers.py:948 templates/js/translated/part.js:103 +#: part/serializers.py:1000 templates/js/translated/part.js:103 msgid "Initial Stock" msgstr "初始库存" -#: part/serializers.py:949 +#: part/serializers.py:1001 msgid "Create Part with initial stock quantity" msgstr "创建具有初始库存数量的零件" -#: part/serializers.py:955 +#: part/serializers.py:1007 msgid "Supplier Information" msgstr "供应商信息" -#: part/serializers.py:956 +#: part/serializers.py:1008 msgid "Add initial supplier information for this part" msgstr "添加此零件的初始供应商信息" -#: part/serializers.py:964 +#: part/serializers.py:1016 msgid "Copy Category Parameters" msgstr "复制类别参数" -#: part/serializers.py:965 +#: part/serializers.py:1017 msgid "Copy parameter templates from selected part category" msgstr "从选择的零件复制参数模版" -#: part/serializers.py:970 +#: part/serializers.py:1022 msgid "Existing Image" msgstr "现有的图片" -#: part/serializers.py:971 +#: part/serializers.py:1023 msgid "Filename of an existing part image" msgstr "现有零件图片的文件名" -#: part/serializers.py:988 +#: part/serializers.py:1040 msgid "Image file does not exist" msgstr "图片不存在" -#: part/serializers.py:1194 +#: part/serializers.py:1247 msgid "Limit stocktake report to a particular part, and any variant parts" msgstr "限制盘点报告到某个特定零件以及任何变体零件" -#: part/serializers.py:1204 +#: part/serializers.py:1257 msgid "Limit stocktake report to a particular part category, and any child categories" msgstr "限制盘点报告到某个特定零件类别以及任何子类别" -#: part/serializers.py:1214 +#: part/serializers.py:1267 msgid "Limit stocktake report to a particular stock location, and any child locations" msgstr "限制盘点报告到某个特定零件库存地点以及任何子位置" -#: part/serializers.py:1220 +#: part/serializers.py:1273 msgid "Exclude External Stock" msgstr "排除外部库存" -#: part/serializers.py:1221 +#: part/serializers.py:1274 msgid "Exclude stock items in external locations" msgstr "排除外部位置的库存项" -#: part/serializers.py:1226 +#: part/serializers.py:1279 msgid "Generate Report" msgstr "生成报告" -#: part/serializers.py:1227 +#: part/serializers.py:1280 msgid "Generate report file containing calculated stocktake data" msgstr "生成包含计算出来的盘点数据的报告文件" -#: part/serializers.py:1232 +#: part/serializers.py:1285 msgid "Update Parts" msgstr "更新零件" -#: part/serializers.py:1233 +#: part/serializers.py:1286 msgid "Update specified parts with calculated stocktake data" msgstr "使用计算出的盘点数据更新指定零件" -#: part/serializers.py:1241 +#: part/serializers.py:1294 msgid "Stocktake functionality is not enabled" msgstr "盘点功能未启用" -#: part/serializers.py:1347 +#: part/serializers.py:1299 +msgid "Background worker check failed" +msgstr "后台执行器检查失败" + +#: part/serializers.py:1401 msgid "Override calculated value for minimum price" msgstr "覆盖已计算的最低价格值" -#: part/serializers.py:1354 +#: part/serializers.py:1408 msgid "Minimum price currency" msgstr "最低价格货币" -#: part/serializers.py:1362 +#: part/serializers.py:1416 msgid "Override calculated value for maximum price" msgstr "覆盖已计算的最高价格值" -#: part/serializers.py:1369 +#: part/serializers.py:1423 msgid "Maximum price currency" msgstr "最高价格货币" -#: part/serializers.py:1398 +#: part/serializers.py:1452 msgid "Update" msgstr "更新" -#: part/serializers.py:1399 +#: part/serializers.py:1453 msgid "Update pricing for this part" msgstr "更新这个零件的价格" -#: part/serializers.py:1422 +#: part/serializers.py:1476 #, python-brace-format msgid "Could not convert from provided currencies to {default_currency}" msgstr "无法将所提供的货币转换为 {default_currency}" -#: part/serializers.py:1429 +#: part/serializers.py:1483 msgid "Minimum price must not be greater than maximum price" msgstr "最低价格不能高于最高价格。" -#: part/serializers.py:1432 +#: part/serializers.py:1486 msgid "Maximum price must not be less than minimum price" msgstr "最高价格不能低于最低价格" -#: part/serializers.py:1576 +#: part/serializers.py:1634 msgid "Select the parent assembly" msgstr "选择父装配" -#: part/serializers.py:1585 +#: part/serializers.py:1643 msgid "Component Name" msgstr "元件名称" -#: part/serializers.py:1588 +#: part/serializers.py:1646 msgid "Component IPN" msgstr "元件内部零件号" -#: part/serializers.py:1591 +#: part/serializers.py:1649 msgid "Component Description" msgstr "元件描述" -#: part/serializers.py:1597 +#: part/serializers.py:1655 msgid "Select the component part" msgstr "选择零部件" -#: part/serializers.py:1606 part/templates/part/part_base.html:235 +#: part/serializers.py:1664 part/templates/part/part_base.html:243 #: templates/js/translated/bom.js:1219 msgid "Can Build" msgstr "可以创建" -#: part/serializers.py:1837 +#: part/serializers.py:1899 msgid "Select part to copy BOM from" msgstr "选择要复制物料清单的零件" -#: part/serializers.py:1845 +#: part/serializers.py:1907 msgid "Remove Existing Data" msgstr "移除现有数据" -#: part/serializers.py:1846 +#: part/serializers.py:1908 msgid "Remove existing BOM items before copying" msgstr "复制前删除现有的物料清单项目" -#: part/serializers.py:1851 +#: part/serializers.py:1913 msgid "Include Inherited" msgstr "包含继承的" -#: part/serializers.py:1852 +#: part/serializers.py:1914 msgid "Include BOM items which are inherited from templated parts" msgstr "包含从模板零件继承的物料清单项目" -#: part/serializers.py:1857 +#: part/serializers.py:1919 msgid "Skip Invalid Rows" msgstr "跳过无效行" -#: part/serializers.py:1858 +#: part/serializers.py:1920 msgid "Enable this option to skip invalid rows" msgstr "启用此选项以跳过无效行" -#: part/serializers.py:1863 +#: part/serializers.py:1925 msgid "Copy Substitute Parts" msgstr "复制替代品零件" -#: part/serializers.py:1864 +#: part/serializers.py:1926 msgid "Copy substitute parts when duplicate BOM items" msgstr "复制物料清单项目时复制替代品零件" -#: part/serializers.py:1901 +#: part/serializers.py:1963 msgid "Clear Existing BOM" msgstr "清除现有的物料清单" -#: part/serializers.py:1902 +#: part/serializers.py:1964 msgid "Delete existing BOM items before uploading" msgstr "上传前删除现有的物料清单项目" -#: part/serializers.py:1934 +#: part/serializers.py:1996 msgid "No part column specified" msgstr "未指定零件列" -#: part/serializers.py:1978 +#: part/serializers.py:2040 msgid "Multiple matching parts found" msgstr "找到多个匹配的零件。" -#: part/serializers.py:1981 +#: part/serializers.py:2043 msgid "No matching part found" msgstr "没有找到匹配的零件" -#: part/serializers.py:1984 +#: part/serializers.py:2045 msgid "Part is not designated as a component" msgstr "零件未指定为元件" -#: part/serializers.py:1993 +#: part/serializers.py:2054 msgid "Quantity not provided" msgstr "未提供数量" -#: part/serializers.py:2001 +#: part/serializers.py:2062 msgid "Invalid quantity" msgstr "无效的数量" -#: part/serializers.py:2024 +#: part/serializers.py:2085 msgid "At least one BOM item is required" msgstr "至少需要一个物料清单项目" #: part/stocktake.py:224 templates/js/translated/part.js:1073 #: templates/js/translated/part.js:1828 templates/js/translated/part.js:1884 -#: templates/js/translated/purchase_order.js:2154 +#: templates/js/translated/purchase_order.js:2138 msgid "Total Quantity" msgstr "总数量" @@ -7932,9 +8157,9 @@ msgid "Add stocktake information" msgstr "添加盘点信息" #: part/templates/part/detail.html:67 part/templates/part/part_sidebar.html:50 -#: stock/admin.py:255 templates/InvenTree/settings/part_stocktake.html:30 +#: stock/admin.py:256 templates/InvenTree/settings/part_stocktake.html:30 #: templates/InvenTree/settings/sidebar.html:53 -#: templates/js/translated/stock.js:2301 users/models.py:204 +#: templates/js/translated/stock.js:2302 users/models.py:204 msgid "Stocktake" msgstr "库存盘点" @@ -8093,142 +8318,146 @@ msgstr "选择文件格式" msgid "Part List" msgstr "零件列表" -#: part/templates/part/part_base.html:25 part/templates/part/part_base.html:29 +#: part/templates/part/part_base.html:26 part/templates/part/part_base.html:30 msgid "You are subscribed to notifications for this part" msgstr "您已订阅此零件的通知" -#: part/templates/part/part_base.html:33 +#: part/templates/part/part_base.html:34 msgid "Subscribe to notifications for this part" msgstr "订阅此零件的通知" -#: part/templates/part/part_base.html:52 +#: part/templates/part/part_base.html:53 #: stock/templates/stock/item_base.html:62 -#: stock/templates/stock/location.html:71 templates/js/translated/label.js:136 +#: stock/templates/stock/location.html:72 templates/js/translated/label.js:136 msgid "Print Label" msgstr "打印标签" -#: part/templates/part/part_base.html:58 +#: part/templates/part/part_base.html:59 msgid "Show pricing information" msgstr "显示定价信息" -#: part/templates/part/part_base.html:63 -#: stock/templates/stock/item_base.html:110 -#: stock/templates/stock/location.html:80 +#: part/templates/part/part_base.html:64 +#: stock/templates/stock/item_base.html:107 +#: stock/templates/stock/location.html:81 msgid "Stock actions" msgstr "库存操作" -#: part/templates/part/part_base.html:70 +#: part/templates/part/part_base.html:71 msgid "Count part stock" msgstr "清点零件库存" -#: part/templates/part/part_base.html:76 +#: part/templates/part/part_base.html:77 msgid "Transfer part stock" msgstr "转移零件库存" -#: part/templates/part/part_base.html:91 templates/js/translated/part.js:2299 +#: part/templates/part/part_base.html:92 templates/js/translated/part.js:2299 msgid "Part actions" msgstr "零件操作" -#: part/templates/part/part_base.html:94 +#: part/templates/part/part_base.html:95 msgid "Duplicate part" msgstr "重复的零件" -#: part/templates/part/part_base.html:97 +#: part/templates/part/part_base.html:98 msgid "Edit part" msgstr "编辑零件" -#: part/templates/part/part_base.html:100 +#: part/templates/part/part_base.html:101 msgid "Delete part" msgstr "删除零件" -#: part/templates/part/part_base.html:119 +#: part/templates/part/part_base.html:120 msgid "Part is a template part (variants can be made from this part)" msgstr "这个零件是一个模板零件 (变体可以从中生成)" -#: part/templates/part/part_base.html:123 +#: part/templates/part/part_base.html:124 msgid "Part can be assembled from other parts" msgstr "零件可以由其他零件装配" -#: part/templates/part/part_base.html:127 +#: part/templates/part/part_base.html:128 msgid "Part can be used in assemblies" msgstr "零件可以用于装配" -#: part/templates/part/part_base.html:131 +#: part/templates/part/part_base.html:132 msgid "Part stock is tracked by serial number" msgstr "零件库存是通过序列号追踪的" -#: part/templates/part/part_base.html:135 +#: part/templates/part/part_base.html:136 msgid "Part can be purchased from external suppliers" msgstr "零件可以从外部供应商处购买" -#: part/templates/part/part_base.html:139 +#: part/templates/part/part_base.html:140 msgid "Part can be sold to customers" msgstr "零件可以销售给客户" -#: part/templates/part/part_base.html:145 +#: part/templates/part/part_base.html:146 msgid "Part is not active" msgstr "零件未激活" -#: part/templates/part/part_base.html:153 +#: part/templates/part/part_base.html:154 msgid "Part is virtual (not a physical part)" msgstr "零件是虚拟的(不是实体零件)" -#: part/templates/part/part_base.html:163 -#: part/templates/part/part_base.html:690 +#: part/templates/part/part_base.html:164 +#: part/templates/part/part_base.html:698 msgid "Show Part Details" msgstr "显示零件详情" #: part/templates/part/part_base.html:218 -#: stock/templates/stock/item_base.html:388 +msgid "Required for Orders" +msgstr "订单所需的" + +#: part/templates/part/part_base.html:226 +#: stock/templates/stock/item_base.html:385 msgid "Allocated to Build Orders" msgstr "分配到生产订单" -#: part/templates/part/part_base.html:227 -#: stock/templates/stock/item_base.html:381 +#: part/templates/part/part_base.html:235 +#: stock/templates/stock/item_base.html:378 msgid "Allocated to Sales Orders" msgstr "分配到销售订单" -#: part/templates/part/part_base.html:300 +#: part/templates/part/part_base.html:308 msgid "Minimum stock level" msgstr "最低库存水平" -#: part/templates/part/part_base.html:331 templates/js/translated/bom.js:1071 +#: part/templates/part/part_base.html:339 templates/js/translated/bom.js:1071 #: templates/js/translated/part.js:1271 templates/js/translated/part.js:2463 #: templates/js/translated/pricing.js:391 -#: templates/js/translated/pricing.js:1054 +#: templates/js/translated/pricing.js:1052 msgid "Price Range" msgstr "价格范围" -#: part/templates/part/part_base.html:361 +#: part/templates/part/part_base.html:369 msgid "Latest Serial Number" msgstr "最新序列号" -#: part/templates/part/part_base.html:365 -#: stock/templates/stock/item_base.html:322 +#: part/templates/part/part_base.html:373 +#: stock/templates/stock/item_base.html:319 msgid "Search for serial number" msgstr "搜索序列号" -#: part/templates/part/part_base.html:453 +#: part/templates/part/part_base.html:461 msgid "Part QR Code" msgstr "零件二维码" -#: part/templates/part/part_base.html:470 +#: part/templates/part/part_base.html:478 msgid "Link Barcode to Part" msgstr "关联条形码到零件" -#: part/templates/part/part_base.html:520 +#: part/templates/part/part_base.html:528 msgid "Calculate" msgstr "计算" -#: part/templates/part/part_base.html:537 +#: part/templates/part/part_base.html:545 msgid "Remove associated image from this part" msgstr "删除与零件关联的图片" -#: part/templates/part/part_base.html:588 +#: part/templates/part/part_base.html:596 msgid "No matching images found" msgstr "没有找到匹配的图片" -#: part/templates/part/part_base.html:684 +#: part/templates/part/part_base.html:692 msgid "Hide Part Details" msgstr "隐藏零件详细信息" @@ -8282,13 +8511,13 @@ msgid "Variants" msgstr "变体" #: part/templates/part/part_sidebar.html:14 -#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:21 +#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:22 #: stock/templates/stock/stock_app_base.html:10 #: templates/InvenTree/search.html:153 #: templates/InvenTree/settings/sidebar.html:51 #: templates/js/translated/part.js:1249 templates/js/translated/part.js:2152 #: templates/js/translated/part.js:2411 templates/js/translated/stock.js:1066 -#: templates/js/translated/stock.js:2155 templates/navbar.html:31 +#: templates/js/translated/stock.js:2156 templates/navbar.html:31 msgid "Stock" msgstr "庫存" @@ -8324,17 +8553,17 @@ msgstr "覆盖零件价格" #: part/templates/part/prices.html:18 #: templates/InvenTree/settings/settings_staff_js.html:80 #: templates/InvenTree/settings/user.html:24 -#: templates/js/translated/helpers.js:103 +#: templates/js/translated/helpers.js:104 #: templates/js/translated/pricing.js:628 templates/notes_buttons.html:3 #: templates/notes_buttons.html:4 msgid "Edit" msgstr "编辑" -#: part/templates/part/prices.html:28 stock/admin.py:251 -#: stock/templates/stock/item_base.html:446 -#: templates/js/translated/company.js:1703 -#: templates/js/translated/company.js:1713 -#: templates/js/translated/stock.js:2331 +#: part/templates/part/prices.html:28 stock/admin.py:252 +#: stock/templates/stock/item_base.html:443 +#: templates/js/translated/company.js:1704 +#: templates/js/translated/company.js:1714 +#: templates/js/translated/stock.js:2332 msgid "Last Updated" msgstr "最近更新" @@ -8406,7 +8635,7 @@ msgid "Update Pricing" msgstr "更新价格" #: part/templates/part/stock_count.html:7 -#: templates/js/translated/model_renderers.js:228 +#: templates/js/translated/model_renderers.js:231 #: templates/js/translated/part.js:707 templates/js/translated/part.js:2147 #: templates/js/translated/part.js:2149 msgid "No Stock" @@ -8486,7 +8715,7 @@ msgstr "未找到零件图片" msgid "Part Pricing" msgstr "零件价格" -#: plugin/api.py:172 +#: plugin/api.py:175 msgid "Plugin cannot be deleted as it is currently active" msgstr "插件不能被删除,因为它当前处于激活状态" @@ -8498,78 +8727,85 @@ msgstr "未指定操作" msgid "No matching action found" msgstr "未找到指定操作" -#: plugin/base/barcodes/api.py:125 plugin/base/barcodes/api.py:371 -#: plugin/base/barcodes/api.py:546 +#: plugin/base/barcodes/api.py:203 msgid "No match found for barcode data" msgstr "未找到匹配条形码数据" -#: plugin/base/barcodes/api.py:129 +#: plugin/base/barcodes/api.py:207 msgid "Match found for barcode data" msgstr "找到匹配条形码数据" -#: plugin/base/barcodes/api.py:163 plugin/base/barcodes/serializers.py:45 +#: plugin/base/barcodes/api.py:245 plugin/base/barcodes/serializers.py:72 msgid "Model is not supported" msgstr "不支持模型" -#: plugin/base/barcodes/api.py:168 +#: plugin/base/barcodes/api.py:250 msgid "Model instance not found" msgstr "找不到模型实例" -#: plugin/base/barcodes/api.py:197 -#: templates/js/translated/purchase_order.js:1468 +#: plugin/base/barcodes/api.py:279 +#: templates/js/translated/purchase_order.js:1452 msgid "Barcode matches existing item" msgstr "条形码匹配现有项目" -#: plugin/base/barcodes/api.py:336 +#: plugin/base/barcodes/api.py:418 msgid "No matching part data found" msgstr "没有找到匹配的零件数据" -#: plugin/base/barcodes/api.py:353 +#: plugin/base/barcodes/api.py:434 msgid "No matching supplier parts found" msgstr "没有找到匹配的供应商零件" -#: plugin/base/barcodes/api.py:357 +#: plugin/base/barcodes/api.py:437 msgid "Multiple matching supplier parts found" msgstr "找到多个匹配的供应商零件" -#: plugin/base/barcodes/api.py:381 +#: plugin/base/barcodes/api.py:450 plugin/base/barcodes/api.py:664 +msgid "No matching plugin found for barcode data" +msgstr "没有找到匹配条形码数据的插件" + +#: plugin/base/barcodes/api.py:460 msgid "Matched supplier part" msgstr "匹配的供应商零件" -#: plugin/base/barcodes/api.py:430 +#: plugin/base/barcodes/api.py:525 msgid "Item has already been received" msgstr "项目已被接收" -#: plugin/base/barcodes/api.py:467 +#: plugin/base/barcodes/api.py:563 msgid "No match for supplier barcode" msgstr "供应商条形码没有匹配" -#: plugin/base/barcodes/api.py:510 +#: plugin/base/barcodes/api.py:612 msgid "Multiple matching line items found" msgstr "找到多个匹配的行项目" -#: plugin/base/barcodes/api.py:513 +#: plugin/base/barcodes/api.py:615 msgid "No matching line item found" msgstr "未找到匹配的行项目" -#: plugin/base/barcodes/api.py:551 plugin/base/barcodes/api.py:558 +#: plugin/base/barcodes/api.py:661 +msgid "No sales order provided" +msgstr "未提供销售订单" + +#: plugin/base/barcodes/api.py:670 msgid "Barcode does not match an existing stock item" msgstr "条形码与现有的库存项不匹配" -#: plugin/base/barcodes/api.py:569 +#: plugin/base/barcodes/api.py:686 msgid "Stock item does not match line item" msgstr "库存项与行项目不匹配" -#: plugin/base/barcodes/api.py:593 templates/js/translated/build.js:2780 -#: templates/js/translated/sales_order.js:1953 +#: plugin/base/barcodes/api.py:716 templates/js/translated/build.js:2798 +#: templates/js/translated/sales_order.js:1934 msgid "Insufficient stock available" msgstr "可用库存不足" -#: plugin/base/barcodes/api.py:602 +#: plugin/base/barcodes/api.py:729 msgid "Stock item allocated to sales order" msgstr "库存项已分配到销售订单" -#: plugin/base/barcodes/api.py:606 +#: plugin/base/barcodes/api.py:732 msgid "Not enough information" msgstr "没有足够的信息" @@ -8591,75 +8827,75 @@ msgstr "没有找到匹配的采购订单 '{order}'" msgid "Purchase order does not match supplier" msgstr "采购订单不匹配供应商" -#: plugin/base/barcodes/mixins.py:465 +#: plugin/base/barcodes/mixins.py:467 msgid "Failed to find pending line item for supplier part" msgstr "未找到供应商零件待处理行项目" -#: plugin/base/barcodes/mixins.py:496 +#: plugin/base/barcodes/mixins.py:498 msgid "Further information required to receive line item" msgstr "需要更多信息以接收行项目" -#: plugin/base/barcodes/mixins.py:504 +#: plugin/base/barcodes/mixins.py:506 msgid "Received purchase order line item" msgstr "已收到采购订单行项目" -#: plugin/base/barcodes/serializers.py:21 +#: plugin/base/barcodes/serializers.py:48 msgid "Scanned barcode data" msgstr "已扫描的条形码数据" -#: plugin/base/barcodes/serializers.py:30 +#: plugin/base/barcodes/serializers.py:57 msgid "Model name to generate barcode for" msgstr "要生成条形码的模型名称" -#: plugin/base/barcodes/serializers.py:35 +#: plugin/base/barcodes/serializers.py:62 msgid "Primary key of model object to generate barcode for" msgstr "要生成条形码的模型对象的主键" -#: plugin/base/barcodes/serializers.py:105 +#: plugin/base/barcodes/serializers.py:132 msgid "Purchase Order to allocate items against" msgstr "根据采购订单以分配项目" -#: plugin/base/barcodes/serializers.py:111 +#: plugin/base/barcodes/serializers.py:138 msgid "Purchase order is not pending" msgstr "采购订单未处理" -#: plugin/base/barcodes/serializers.py:129 +#: plugin/base/barcodes/serializers.py:156 msgid "PurchaseOrder to receive items against" msgstr "根据采购订单以接收项目" -#: plugin/base/barcodes/serializers.py:135 +#: plugin/base/barcodes/serializers.py:162 msgid "Purchase order has not been placed" msgstr "采购订单尚未提交" -#: plugin/base/barcodes/serializers.py:143 +#: plugin/base/barcodes/serializers.py:170 msgid "Location to receive items into" msgstr "项目接收地点" -#: plugin/base/barcodes/serializers.py:149 +#: plugin/base/barcodes/serializers.py:176 msgid "Cannot select a structural location" msgstr "无法选择一个结构性位置" -#: plugin/base/barcodes/serializers.py:163 +#: plugin/base/barcodes/serializers.py:190 msgid "Sales Order to allocate items against" msgstr "根据销售订单以分配项目" -#: plugin/base/barcodes/serializers.py:169 +#: plugin/base/barcodes/serializers.py:196 msgid "Sales order is not pending" msgstr "销售订单未挂起" -#: plugin/base/barcodes/serializers.py:177 +#: plugin/base/barcodes/serializers.py:204 msgid "Sales order line item to allocate items against" msgstr "根据销售订单行项目分配项目" -#: plugin/base/barcodes/serializers.py:184 +#: plugin/base/barcodes/serializers.py:211 msgid "Sales order shipment to allocate items against" msgstr "根据销售订单配送分配项目" -#: plugin/base/barcodes/serializers.py:190 +#: plugin/base/barcodes/serializers.py:217 msgid "Shipment has already been delivered" msgstr "已交付" -#: plugin/base/barcodes/serializers.py:195 +#: plugin/base/barcodes/serializers.py:222 msgid "Quantity to allocate" msgstr "待分配数" @@ -8679,6 +8915,42 @@ msgstr "渲染标签到 HTML 时出错" msgid "No items provided to print" msgstr "没有要打印的项目" +#: plugin/base/ui/serializers.py:30 +msgid "Plugin Name" +msgstr "插件名称" + +#: plugin/base/ui/serializers.py:34 +msgid "Feature Type" +msgstr "功能类别" + +#: plugin/base/ui/serializers.py:39 +msgid "Feature Label" +msgstr "特征标签" + +#: plugin/base/ui/serializers.py:44 +msgid "Feature Title" +msgstr "功能标题" + +#: plugin/base/ui/serializers.py:49 +msgid "Feature Description" +msgstr "功能描述" + +#: plugin/base/ui/serializers.py:54 +msgid "Feature Icon" +msgstr "功能图标" + +#: plugin/base/ui/serializers.py:58 +msgid "Feature Options" +msgstr "特色选项" + +#: plugin/base/ui/serializers.py:61 +msgid "Feature Context" +msgstr "功能背景" + +#: plugin/base/ui/serializers.py:64 +msgid "Feature Source (javascript)" +msgstr "功能源 (javascript)" + #: plugin/builtin/barcodes/inventree_barcode.py:27 msgid "InvenTree Barcodes" msgstr "InvenTree 条形码" @@ -8756,7 +9028,7 @@ msgstr "Slack传入Webhook url" msgid "URL that is used to send messages to a slack channel" msgstr "用于发送消息到slack频道的 URL" -#: plugin/builtin/integration/core_notifications.py:164 +#: plugin/builtin/integration/core_notifications.py:166 msgid "Open link" msgstr "打开链接" @@ -8794,11 +9066,11 @@ msgstr "InvenTree 设备标签打印机" msgid "Provides support for printing using a machine" msgstr "提供使用设备打印的支持" -#: plugin/builtin/labels/inventree_machine.py:149 +#: plugin/builtin/labels/inventree_machine.py:151 msgid "last used" msgstr "最近使用" -#: plugin/builtin/labels/inventree_machine.py:166 +#: plugin/builtin/labels/inventree_machine.py:168 msgid "Options" msgstr "选项" @@ -8822,7 +9094,7 @@ msgstr "边框" msgid "Print a border around each label" msgstr "打印每个标签的边框" -#: plugin/builtin/labels/label_sheet.py:47 report/models.py:307 +#: plugin/builtin/labels/label_sheet.py:47 report/models.py:315 msgid "Landscape" msgstr "横屏模式" @@ -8894,19 +9166,19 @@ msgstr "为扫描 TME 条形码提供支持" msgid "The Supplier which acts as 'TME'" msgstr "作为‘TME’的供应商" -#: plugin/installer.py:194 plugin/installer.py:282 +#: plugin/installer.py:199 plugin/installer.py:282 msgid "Only staff users can administer plugins" msgstr "只有员工用户可以管理插件" -#: plugin/installer.py:197 +#: plugin/installer.py:202 msgid "Plugin installation is disabled" msgstr "插件安装已禁用" -#: plugin/installer.py:248 +#: plugin/installer.py:246 msgid "Installed plugin successfully" msgstr "插件安装成功" -#: plugin/installer.py:254 +#: plugin/installer.py:251 #, python-brace-format msgid "Installed plugin into {path}" msgstr "插件安装到 {path}" @@ -8943,10 +9215,6 @@ msgstr "插件配置" msgid "Plugin Configurations" msgstr "插件配置" -#: plugin/models.py:43 users/models.py:100 -msgid "Key" -msgstr "键" - #: plugin/models.py:44 msgid "Key of plugin" msgstr "插件的键" @@ -8955,7 +9223,7 @@ msgstr "插件的键" msgid "PluginName of the plugin" msgstr "插件名称" -#: plugin/models.py:59 plugin/serializers.py:90 +#: plugin/models.py:59 plugin/serializers.py:115 msgid "Package Name" msgstr "软件包名" @@ -8984,17 +9252,17 @@ msgstr "内置插件" msgid "Package Plugin" msgstr "软件包插件" -#: plugin/models.py:220 report/models.py:474 +#: plugin/models.py:259 report/models.py:482 #: templates/InvenTree/settings/plugin_settings.html:9 #: templates/js/translated/plugin.js:51 msgid "Plugin" msgstr "插件" -#: plugin/models.py:267 +#: plugin/models.py:306 msgid "Method" msgstr "方法" -#: plugin/plugin.py:270 +#: plugin/plugin.py:275 msgid "No author found" msgstr "未找到作者" @@ -9053,81 +9321,157 @@ msgstr "货币兑换插件示例" msgid "InvenTree Contributors" msgstr "InvenTree 贡献者" -#: plugin/serializers.py:81 +#: plugin/samples/integration/user_interface_sample.py:27 +msgid "Enable Part Panels" +msgstr "启用零件面板" + +#: plugin/samples/integration/user_interface_sample.py:28 +msgid "Enable custom panels for Part views" +msgstr "启用自定义面板来查看部件" + +#: plugin/samples/integration/user_interface_sample.py:33 +msgid "Enable Purchase Order Panels" +msgstr "启用采购订单面板" + +#: plugin/samples/integration/user_interface_sample.py:34 +msgid "Enable custom panels for Purchase Order views" +msgstr "启用自定义面板以查看购买订单" + +#: plugin/samples/integration/user_interface_sample.py:39 +msgid "Enable Broken Panels" +msgstr "启用破损面板" + +#: plugin/samples/integration/user_interface_sample.py:40 +msgid "Enable broken panels for testing" +msgstr "启用损坏的面板来测试" + +#: plugin/samples/integration/user_interface_sample.py:45 +msgid "Enable Dynamic Panel" +msgstr "启用动态面板" + +#: plugin/samples/integration/user_interface_sample.py:46 +msgid "Enable dynamic panels for testing" +msgstr "启用动态面板来测试" + +#: plugin/samples/integration/user_interface_sample.py:98 +msgid "Part Panel" +msgstr "部件面板" + +#: plugin/samples/integration/user_interface_sample.py:131 +msgid "Broken Dashboard Item" +msgstr "损坏的仪表板项目" + +#: plugin/samples/integration/user_interface_sample.py:133 +msgid "This is a broken dashboard item - it will not render!" +msgstr "这是一个损坏的仪表板项 - 它不会呈现!" + +#: plugin/samples/integration/user_interface_sample.py:139 +msgid "Sample Dashboard Item" +msgstr "仪表盘项目示例" + +#: plugin/samples/integration/user_interface_sample.py:141 +msgid "This is a sample dashboard item. It renders a simple string of HTML content." +msgstr "这是一个示例仪表板项目。它提供了一个简单的HTML内容字符串。" + +#: plugin/samples/integration/user_interface_sample.py:147 +msgid "Context Dashboard Item" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:161 +msgid "Admin Dashboard Item" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:162 +msgid "This is an admin-only dashboard item." +msgstr "" + +#: plugin/serializers.py:82 +msgid "Source File" +msgstr "源文件" + +#: plugin/serializers.py:83 +msgid "Path to the source file for admin integration" +msgstr "管理员集成的源文件路径" + +#: plugin/serializers.py:90 +msgid "Optional context data for the admin integration" +msgstr "管理员集成的可选上下文数据" + +#: plugin/serializers.py:106 msgid "Source URL" msgstr "源URL" -#: plugin/serializers.py:83 +#: plugin/serializers.py:108 msgid "Source for the package - this can be a custom registry or a VCS path" msgstr "软件包的来源 - 这可以是自定义注册表或 VCS 路径" -#: plugin/serializers.py:92 +#: plugin/serializers.py:117 msgid "Name for the Plugin Package - can also contain a version indicator" msgstr "插件包名称 - 也可以包含版本指示器" -#: plugin/serializers.py:99 +#: plugin/serializers.py:124 #: templates/InvenTree/settings/plugin_settings.html:42 #: templates/js/translated/plugin.js:86 msgid "Version" msgstr "版本" -#: plugin/serializers.py:101 +#: plugin/serializers.py:126 msgid "Version specifier for the plugin. Leave blank for latest version." msgstr "插件版本说明。新版请留白。" -#: plugin/serializers.py:106 +#: plugin/serializers.py:131 msgid "Confirm plugin installation" msgstr "确认插件安装" -#: plugin/serializers.py:108 +#: plugin/serializers.py:133 msgid "This will install this plugin now into the current instance. The instance will go into maintenance." msgstr "这将把这个插件安装到当前实例中。这个实例将进行维护。" -#: plugin/serializers.py:121 +#: plugin/serializers.py:146 msgid "Installation not confirmed" msgstr "安装尚未确认" -#: plugin/serializers.py:123 +#: plugin/serializers.py:148 msgid "Either packagename of URL must be provided" msgstr "必须提供软件包名称或者URL" -#: plugin/serializers.py:161 +#: plugin/serializers.py:184 msgid "Full reload" msgstr "完全重载" -#: plugin/serializers.py:162 +#: plugin/serializers.py:185 msgid "Perform a full reload of the plugin registry" msgstr "执行插件库的完整重载" -#: plugin/serializers.py:168 +#: plugin/serializers.py:191 msgid "Force reload" msgstr "强制重载" -#: plugin/serializers.py:170 +#: plugin/serializers.py:193 msgid "Force a reload of the plugin registry, even if it is already loaded" msgstr "强制重载插件库,即使已经加载" -#: plugin/serializers.py:177 +#: plugin/serializers.py:200 msgid "Collect plugins" msgstr "收集插件" -#: plugin/serializers.py:178 +#: plugin/serializers.py:201 msgid "Collect plugins and add them to the registry" msgstr "收集插件并添加到注册表中" -#: plugin/serializers.py:205 +#: plugin/serializers.py:228 msgid "Activate Plugin" msgstr "激活插件" -#: plugin/serializers.py:206 +#: plugin/serializers.py:229 msgid "Activate this plugin" msgstr "激活此插件" -#: plugin/serializers.py:226 +#: plugin/serializers.py:249 msgid "Delete configuration" msgstr "删除配置" -#: plugin/serializers.py:227 +#: plugin/serializers.py:250 msgid "Delete the plugin configuration from the database" msgstr "从数据库中删除插件配置" @@ -9135,11 +9479,11 @@ msgstr "从数据库中删除插件配置" msgid "No valid objects provided to template" msgstr "没有为模板提供有效对象" -#: report/api.py:103 report/models.py:438 report/serializers.py:98 -#: report/serializers.py:148 templates/js/translated/purchase_order.js:1817 +#: report/api.py:103 report/models.py:446 report/serializers.py:99 +#: report/serializers.py:149 templates/js/translated/purchase_order.js:1801 #: templates/js/translated/return_order.js:353 -#: templates/js/translated/sales_order.js:887 -#: templates/js/translated/sales_order.js:1047 +#: templates/js/translated/sales_order.js:846 +#: templates/js/translated/sales_order.js:1020 msgid "Items" msgstr "项目" @@ -9167,7 +9511,11 @@ msgstr "没有有效的项目提供到模板" msgid "Error printing label" msgstr "打印标签出错" -#: report/api.py:375 report/api.py:411 +#: report/api.py:358 +msgid "Report saved at time of printing" +msgstr "在打印时保存报告" + +#: report/api.py:384 report/api.py:420 #, python-brace-format msgid "Template file '{template}' is missing or does not exist" msgstr "模板文件'{template}' 丢失或不存在" @@ -9204,135 +9552,143 @@ msgstr "模板说明" msgid "Revision number (auto-increments)" msgstr "修订编号 (自动增量)" -#: report/models.py:202 +#: report/models.py:168 +msgid "Attach to Model on Print" +msgstr "打印时附加到模型" + +#: report/models.py:170 +msgid "Save report output as an attachment against linked model instance when printing" +msgstr "打印时将报告输出保存为附件与链接模型实例" + +#: report/models.py:210 msgid "Filename Pattern" msgstr "文件名样式" -#: report/models.py:203 +#: report/models.py:211 msgid "Pattern for generating filenames" msgstr "生成文件名模式" -#: report/models.py:208 +#: report/models.py:216 msgid "Template is enabled" msgstr "模板已启用" -#: report/models.py:214 +#: report/models.py:222 msgid "Target model type for template" msgstr "模版的目标模型类型" -#: report/models.py:234 +#: report/models.py:242 msgid "Filters" msgstr "筛选器" -#: report/models.py:235 +#: report/models.py:243 msgid "Template query filters (comma-separated list of key=value pairs)" msgstr "模版查询筛选器 (逗号分隔的键值对列表)" -#: report/models.py:294 report/models.py:361 +#: report/models.py:302 report/models.py:369 msgid "Template file" msgstr "模板包文件" -#: report/models.py:302 +#: report/models.py:310 msgid "Page size for PDF reports" msgstr "PDF 报告的页面大小" -#: report/models.py:308 +#: report/models.py:316 msgid "Render report in landscape orientation" msgstr "横向渲染报告" -#: report/models.py:367 +#: report/models.py:375 msgid "Width [mm]" msgstr "宽度 [mm]" -#: report/models.py:368 +#: report/models.py:376 msgid "Label width, specified in mm" msgstr "标签宽度,以毫米为单位。" -#: report/models.py:374 +#: report/models.py:382 msgid "Height [mm]" msgstr "高度 [mm]" -#: report/models.py:375 +#: report/models.py:383 msgid "Label height, specified in mm" msgstr "标签高度,以毫米为单位。" -#: report/models.py:438 +#: report/models.py:446 msgid "Number of items to process" msgstr "要处理的项目数量" -#: report/models.py:444 +#: report/models.py:452 msgid "Report generation is complete" msgstr "报告生成完成" -#: report/models.py:448 templates/js/translated/build.js:2349 +#: report/models.py:456 templates/js/translated/build.js:2352 msgid "Progress" msgstr "进度" -#: report/models.py:448 +#: report/models.py:456 msgid "Report generation progress" msgstr "报告生成进度" -#: report/models.py:456 +#: report/models.py:464 msgid "Report Template" msgstr "报告模板" -#: report/models.py:463 report/models.py:486 +#: report/models.py:471 report/models.py:494 msgid "Output File" msgstr "输出文件" -#: report/models.py:464 report/models.py:487 +#: report/models.py:472 report/models.py:495 msgid "Generated output file" msgstr "生成输出文件" -#: report/models.py:475 +#: report/models.py:483 msgid "Label output plugin" msgstr "标签输出插件" -#: report/models.py:479 +#: report/models.py:487 msgid "Label Template" msgstr "标签模板" -#: report/models.py:502 +#: report/models.py:510 msgid "Snippet" msgstr "代码片段" -#: report/models.py:503 +#: report/models.py:511 msgid "Report snippet file" msgstr "报告代码片段文件" -#: report/models.py:510 +#: report/models.py:518 msgid "Snippet file description" msgstr "代码片段文件描述" -#: report/models.py:528 +#: report/models.py:536 msgid "Asset" msgstr "资产" -#: report/models.py:529 +#: report/models.py:537 msgid "Report asset file" msgstr "报告资产文件" -#: report/models.py:536 +#: report/models.py:544 msgid "Asset file description" msgstr "资产文件描述" -#: report/serializers.py:91 +#: report/serializers.py:92 msgid "Select report template" msgstr "选择报表模板" -#: report/serializers.py:99 report/serializers.py:149 +#: report/serializers.py:100 report/serializers.py:150 msgid "List of item primary keys to include in the report" msgstr "要包含在报告中的项目主键列表" -#: report/serializers.py:132 +#: report/serializers.py:133 msgid "Select label template" msgstr "选择标签模板" -#: report/serializers.py:140 +#: report/serializers.py:141 msgid "Printing Plugin" msgstr "打印插件" -#: report/serializers.py:141 +#: report/serializers.py:142 msgid "Select plugin to use for label printing" msgstr "选择用于标签打印的插件" @@ -9365,9 +9721,9 @@ msgstr "供应商已删除" #: report/templates/report/inventree_sales_order_report.html:30 #: templates/js/translated/order.js:341 templates/js/translated/pricing.js:527 #: templates/js/translated/pricing.js:596 -#: templates/js/translated/pricing.js:834 -#: templates/js/translated/purchase_order.js:2185 -#: templates/js/translated/sales_order.js:1873 +#: templates/js/translated/pricing.js:832 +#: templates/js/translated/purchase_order.js:2169 +#: templates/js/translated/sales_order.js:1854 msgid "Unit Price" msgstr "单位价格" @@ -9379,13 +9735,18 @@ msgstr "额外行项目" #: report/templates/report/inventree_purchase_order_report.html:72 #: report/templates/report/inventree_sales_order_report.html:72 -#: templates/js/translated/purchase_order.js:2087 -#: templates/js/translated/sales_order.js:1842 +#: templates/js/translated/purchase_order.js:2071 +#: templates/js/translated/sales_order.js:1823 #: templates/test_statistics_table.html:8 #: templates/test_statistics_table.html:19 msgid "Total" msgstr "总计" +#: report/templates/report/inventree_sales_order_shipment_report.html:23 +#: stock/templates/stock/stock_sidebar.html:8 +msgid "Allocations" +msgstr "分配" + #: report/templates/report/inventree_stock_location_report.html:97 msgid "Stock location items" msgstr "库存地点项目" @@ -9403,15 +9764,13 @@ msgstr "测试结果" msgid "Test" msgstr "测试" -#: report/templates/report/inventree_test_report.html:103 stock/models.py:2544 -msgid "Result" -msgstr "结果" - #: report/templates/report/inventree_test_report.html:129 +#: templates/js/translated/stock.js:1448 msgid "Pass" msgstr "通过" #: report/templates/report/inventree_test_report.html:131 +#: templates/js/translated/stock.js:1450 msgid "Fail" msgstr "失败" @@ -9420,17 +9779,18 @@ msgid "No result (required)" msgstr "无结果 (必填)" #: report/templates/report/inventree_test_report.html:140 +#: templates/js/translated/stock.js:1455 msgid "No result" msgstr "没有结果" #: report/templates/report/inventree_test_report.html:153 -#: stock/serializers.py:599 stock/templates/stock/stock_sidebar.html:16 +#: stock/serializers.py:626 stock/templates/stock/stock_sidebar.html:16 msgid "Installed Items" msgstr "已安装的项目" -#: report/templates/report/inventree_test_report.html:167 stock/admin.py:161 +#: report/templates/report/inventree_test_report.html:167 stock/admin.py:162 #: templates/js/translated/stock.js:706 templates/js/translated/stock.js:877 -#: templates/js/translated/stock.js:3194 +#: templates/js/translated/stock.js:3195 msgid "Serial" msgstr "系列" @@ -9450,67 +9810,67 @@ msgstr "parpart_image 标签需要一个零件实例" msgid "company_image tag requires a Company instance" msgstr "公司_图片标签需要一个公司实例" -#: stock/admin.py:51 stock/admin.py:171 +#: stock/admin.py:51 stock/admin.py:172 msgid "Location ID" msgstr "位置 ID" -#: stock/admin.py:63 stock/templates/stock/location.html:128 -#: stock/templates/stock/location.html:134 +#: stock/admin.py:63 stock/templates/stock/location.html:129 +#: stock/templates/stock/location.html:135 msgid "Location Path" msgstr "地点路径" -#: stock/admin.py:148 +#: stock/admin.py:149 msgid "Stock Item ID" msgstr "库存项 ID" -#: stock/admin.py:167 +#: stock/admin.py:168 msgid "Status Code" msgstr "状态代码" -#: stock/admin.py:179 +#: stock/admin.py:180 msgid "Supplier Part ID" msgstr "供应商零件 ID" -#: stock/admin.py:184 +#: stock/admin.py:185 msgid "Supplier Part SKU" msgstr "供应商零件库存保管单元" -#: stock/admin.py:189 +#: stock/admin.py:190 msgid "Supplier ID" msgstr "供应商 ID" -#: stock/admin.py:200 +#: stock/admin.py:201 msgid "Customer ID" msgstr "客户 ID" -#: stock/admin.py:205 stock/models.py:825 -#: stock/templates/stock/item_base.html:354 +#: stock/admin.py:206 stock/models.py:902 +#: stock/templates/stock/item_base.html:351 msgid "Installed In" msgstr "安装于" -#: stock/admin.py:210 +#: stock/admin.py:211 msgid "Build ID" msgstr "生产 ID" -#: stock/admin.py:220 +#: stock/admin.py:221 msgid "Sales Order ID" msgstr "销售订单 ID" -#: stock/admin.py:225 +#: stock/admin.py:226 msgid "Purchase Order ID" msgstr "采购订单 ID" -#: stock/admin.py:240 +#: stock/admin.py:241 msgid "Review Needed" msgstr "需要审核" -#: stock/admin.py:245 +#: stock/admin.py:246 msgid "Delete on Deplete" msgstr "在消耗品上删除" -#: stock/admin.py:260 stock/models.py:919 -#: stock/templates/stock/item_base.html:433 -#: templates/js/translated/stock.js:2315 users/models.py:124 +#: stock/admin.py:261 stock/models.py:996 +#: stock/templates/stock/item_base.html:430 +#: templates/js/translated/stock.js:2316 users/models.py:124 msgid "Expiry Date" msgstr "有效期至" @@ -9526,11 +9886,11 @@ msgstr "按顶级位置筛选" msgid "Include sub-locations in filtered results" msgstr "在筛选结果中包含子地点" -#: stock/api.py:367 stock/serializers.py:1186 +#: stock/api.py:366 stock/serializers.py:1217 msgid "Parent Location" msgstr "上级地点" -#: stock/api.py:368 +#: stock/api.py:367 msgid "Filter by parent location" msgstr "按上级位置筛选" @@ -9550,8 +9910,8 @@ msgstr "过期日期前" msgid "Expiry date after" msgstr "过期日期后" -#: stock/api.py:840 stock/serializers.py:604 -#: stock/templates/stock/item_base.html:439 +#: stock/api.py:840 stock/serializers.py:631 +#: stock/templates/stock/item_base.html:436 #: templates/js/translated/table_filters.js:448 msgid "Stale" msgstr "过期" @@ -9560,594 +9920,598 @@ msgstr "过期" msgid "Quantity is required" msgstr "请先输入数量" -#: stock/api.py:933 +#: stock/api.py:932 msgid "Valid part must be supplied" msgstr "必须提供有效的零件" -#: stock/api.py:964 +#: stock/api.py:959 msgid "The given supplier part does not exist" msgstr "给定的供应商零件不存在" -#: stock/api.py:974 +#: stock/api.py:969 msgid "The supplier part has a pack size defined, but flag use_pack_size not set" msgstr "供应商零件有定义的包装大小,但 use_pack_size 标志未设置" -#: stock/api.py:1005 +#: stock/api.py:996 msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "不能为不可跟踪的零件提供序列号" -#: stock/models.py:64 +#: stock/models.py:70 msgid "Stock Location type" msgstr "库存地点类型" -#: stock/models.py:65 +#: stock/models.py:71 msgid "Stock Location types" msgstr "库存地点类型" -#: stock/models.py:91 +#: stock/models.py:97 msgid "Default icon for all locations that have no icon set (optional)" msgstr "为所有没有图标的位置设置默认图标(可选)" -#: stock/models.py:131 stock/models.py:807 -#: stock/templates/stock/location.html:17 +#: stock/models.py:137 stock/models.py:884 +#: stock/templates/stock/location.html:18 #: stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "库存地点" -#: stock/models.py:132 stock/templates/stock/location.html:183 +#: stock/models.py:138 stock/templates/stock/location.html:184 #: templates/InvenTree/search.html:166 templates/js/translated/search.js:178 #: users/models.py:205 msgid "Stock Locations" msgstr "库存地点" -#: stock/models.py:180 stock/models.py:968 -#: stock/templates/stock/item_base.html:247 +#: stock/models.py:186 stock/models.py:1045 +#: stock/templates/stock/item_base.html:244 msgid "Owner" msgstr "所有者" -#: stock/models.py:181 stock/models.py:969 +#: stock/models.py:187 stock/models.py:1046 msgid "Select Owner" msgstr "选择所有者" -#: stock/models.py:189 +#: stock/models.py:195 msgid "Stock items may not be directly located into a structural stock locations, but may be located to child locations." msgstr "库存项可能不直接位于结构库存地点,但可能位于其子地点。" -#: stock/models.py:196 templates/js/translated/stock.js:2865 +#: stock/models.py:202 templates/js/translated/stock.js:2866 #: templates/js/translated/table_filters.js:250 msgid "External" msgstr "外部" -#: stock/models.py:197 +#: stock/models.py:203 msgid "This is an external stock location" msgstr "这是一个外部库存地点" -#: stock/models.py:203 templates/js/translated/stock.js:2874 +#: stock/models.py:209 templates/js/translated/stock.js:2875 #: templates/js/translated/table_filters.js:253 msgid "Location type" msgstr "位置类型" -#: stock/models.py:207 +#: stock/models.py:213 msgid "Stock location type of this location" msgstr "该位置的库存地点类型" -#: stock/models.py:279 +#: stock/models.py:285 msgid "You cannot make this stock location structural because some stock items are already located into it!" msgstr "您不能将此库存地点设置为结构性,因为某些库存项已经位于它!" -#: stock/models.py:664 +#: stock/models.py:492 +msgid "Part must be specified" +msgstr "必须指定零件" + +#: stock/models.py:741 msgid "Stock items cannot be located into structural stock locations!" msgstr "库存项不能存放在结构性库存地点!" -#: stock/models.py:691 stock/serializers.py:480 +#: stock/models.py:768 stock/serializers.py:492 msgid "Stock item cannot be created for virtual parts" msgstr "无法为虚拟零件创建库存项" -#: stock/models.py:708 +#: stock/models.py:785 #, python-brace-format msgid "Part type ('{self.supplier_part.part}') must be {self.part}" msgstr "零件类型 ('{self.supplier_part.part}') 必须为 {self.part}" -#: stock/models.py:718 stock/models.py:731 +#: stock/models.py:795 stock/models.py:808 msgid "Quantity must be 1 for item with a serial number" msgstr "有序列号的项目的数量必须是1" -#: stock/models.py:721 +#: stock/models.py:798 msgid "Serial number cannot be set if quantity greater than 1" msgstr "如果数量大于1,则不能设置序列号" -#: stock/models.py:743 +#: stock/models.py:820 msgid "Item cannot belong to itself" msgstr "项目不能属于其自身" -#: stock/models.py:748 +#: stock/models.py:825 msgid "Item must have a build reference if is_building=True" msgstr "如果is_building=True,则项必须具有构建引用" -#: stock/models.py:761 +#: stock/models.py:838 msgid "Build reference does not point to the same part object" msgstr "构建引用未指向同一零件对象" -#: stock/models.py:777 +#: stock/models.py:854 msgid "Parent Stock Item" msgstr "母库存项目" -#: stock/models.py:789 +#: stock/models.py:866 msgid "Base part" msgstr "基础零件" -#: stock/models.py:799 +#: stock/models.py:876 msgid "Select a matching supplier part for this stock item" msgstr "为此库存项目选择匹配的供应商零件" -#: stock/models.py:811 +#: stock/models.py:888 msgid "Where is this stock item located?" msgstr "这个库存物品在哪里?" -#: stock/models.py:819 stock/serializers.py:1580 +#: stock/models.py:896 stock/serializers.py:1611 msgid "Packaging this stock item is stored in" msgstr "包装此库存物品存储在" -#: stock/models.py:830 +#: stock/models.py:907 msgid "Is this item installed in another item?" msgstr "此项目是否安装在另一个项目中?" -#: stock/models.py:849 +#: stock/models.py:926 msgid "Serial number for this item" msgstr "此项目的序列号" -#: stock/models.py:863 stock/serializers.py:1563 +#: stock/models.py:940 stock/serializers.py:1594 msgid "Batch code for this stock item" msgstr "此库存项的批号" -#: stock/models.py:868 +#: stock/models.py:945 msgid "Stock Quantity" msgstr "库存数量" -#: stock/models.py:878 +#: stock/models.py:955 msgid "Source Build" msgstr "源代码构建" -#: stock/models.py:881 +#: stock/models.py:958 msgid "Build for this stock item" msgstr "为此库存项目构建" -#: stock/models.py:888 stock/templates/stock/item_base.html:363 +#: stock/models.py:965 stock/templates/stock/item_base.html:360 msgid "Consumed By" msgstr "消费者" -#: stock/models.py:891 +#: stock/models.py:968 msgid "Build order which consumed this stock item" msgstr "构建消耗此库存项的生产订单" -#: stock/models.py:900 +#: stock/models.py:977 msgid "Source Purchase Order" msgstr "采购订单来源" -#: stock/models.py:904 +#: stock/models.py:981 msgid "Purchase order for this stock item" msgstr "此库存商品的采购订单" -#: stock/models.py:910 +#: stock/models.py:987 msgid "Destination Sales Order" msgstr "目的地销售订单" -#: stock/models.py:921 +#: stock/models.py:998 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "库存物品的到期日。在此日期之后,库存将被视为过期" -#: stock/models.py:939 +#: stock/models.py:1016 msgid "Delete on deplete" msgstr "耗尽时删除" -#: stock/models.py:940 +#: stock/models.py:1017 msgid "Delete this Stock Item when stock is depleted" msgstr "当库存耗尽时删除此库存项" -#: stock/models.py:960 +#: stock/models.py:1037 msgid "Single unit purchase price at time of purchase" msgstr "购买时一个单位的价格" -#: stock/models.py:991 +#: stock/models.py:1068 msgid "Converted to part" msgstr "转换为零件" -#: stock/models.py:1511 +#: stock/models.py:1600 msgid "Part is not set as trackable" msgstr "零件未设置为可跟踪" -#: stock/models.py:1517 +#: stock/models.py:1606 msgid "Quantity must be integer" msgstr "数量必须是整数" -#: stock/models.py:1525 +#: stock/models.py:1614 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({self.quantity})" msgstr "数量不得超过现有库存量 ({self.quantity})" -#: stock/models.py:1531 -msgid "Serial numbers must be a list of integers" -msgstr "序列号必须是整数列表" +#: stock/models.py:1620 +msgid "Serial numbers must be provided as a list" +msgstr "必须以列表形式提供序列号" -#: stock/models.py:1536 +#: stock/models.py:1625 msgid "Quantity does not match serial numbers" msgstr "数量不匹配序列号" -#: stock/models.py:1544 stock/serializers.py:726 -msgid "Serial numbers already exist" -msgstr "序列号已存在" - -#: stock/models.py:1641 +#: stock/models.py:1747 stock/models.py:2563 msgid "Test template does not exist" msgstr "测试模板不存在" -#: stock/models.py:1659 +#: stock/models.py:1765 msgid "Stock item has been assigned to a sales order" msgstr "库存项已分配到销售订单" -#: stock/models.py:1663 +#: stock/models.py:1769 msgid "Stock item is installed in another item" msgstr "库存项已安装在另一个项目中" -#: stock/models.py:1666 +#: stock/models.py:1772 msgid "Stock item contains other items" msgstr "库存项包含其他项目" -#: stock/models.py:1669 +#: stock/models.py:1775 msgid "Stock item has been assigned to a customer" msgstr "库存项已分配给客户" -#: stock/models.py:1672 +#: stock/models.py:1778 msgid "Stock item is currently in production" msgstr "库存项目前正在生产" -#: stock/models.py:1675 +#: stock/models.py:1781 msgid "Serialized stock cannot be merged" msgstr "序列化的库存不能合并" -#: stock/models.py:1682 stock/serializers.py:1469 +#: stock/models.py:1788 stock/serializers.py:1500 msgid "Duplicate stock items" msgstr "复制库存项" -#: stock/models.py:1686 +#: stock/models.py:1792 msgid "Stock items must refer to the same part" msgstr "库存项必须指相同零件" -#: stock/models.py:1694 +#: stock/models.py:1800 msgid "Stock items must refer to the same supplier part" msgstr "库存项必须是同一供应商的零件" -#: stock/models.py:1699 +#: stock/models.py:1805 msgid "Stock status codes must match" msgstr "库存状态码必须匹配" -#: stock/models.py:1960 +#: stock/models.py:2066 msgid "StockItem cannot be moved as it is not in stock" msgstr "库存项不能移动,因为它没有库存" -#: stock/models.py:2343 +#: stock/models.py:2462 msgid "Stock Item Tracking" msgstr "库存项跟踪" -#: stock/models.py:2376 +#: stock/models.py:2495 msgid "Entry notes" msgstr "条目注释" -#: stock/models.py:2416 +#: stock/models.py:2535 msgid "Stock Item Test Result" msgstr "库存项测试结果" -#: stock/models.py:2449 +#: stock/models.py:2566 msgid "Value must be provided for this test" msgstr "必须为此测试提供值" -#: stock/models.py:2454 +#: stock/models.py:2570 msgid "Attachment must be uploaded for this test" msgstr "测试附件必须上传" -#: stock/models.py:2459 +#: stock/models.py:2575 msgid "Invalid value for this test" msgstr "此测试的值无效" -#: stock/models.py:2544 +#: stock/models.py:2660 msgid "Test result" msgstr "测试结果" -#: stock/models.py:2551 +#: stock/models.py:2667 msgid "Test output value" msgstr "测试输出值" -#: stock/models.py:2559 +#: stock/models.py:2675 stock/serializers.py:245 msgid "Test result attachment" msgstr "测验结果附件" -#: stock/models.py:2563 +#: stock/models.py:2679 msgid "Test notes" msgstr "测试备注" -#: stock/models.py:2571 templates/js/translated/stock.js:1633 +#: stock/models.py:2687 templates/js/translated/stock.js:1633 msgid "Test station" msgstr "测试站" -#: stock/models.py:2572 +#: stock/models.py:2688 msgid "The identifier of the test station where the test was performed" msgstr "进行测试的测试站的标识符" -#: stock/models.py:2578 +#: stock/models.py:2694 msgid "Started" msgstr "已开始" -#: stock/models.py:2579 +#: stock/models.py:2695 msgid "The timestamp of the test start" msgstr "测试开始的时间戳" -#: stock/models.py:2585 +#: stock/models.py:2701 msgid "Finished" msgstr "已完成" -#: stock/models.py:2586 +#: stock/models.py:2702 msgid "The timestamp of the test finish" msgstr "测试结束的时间戳" -#: stock/serializers.py:76 +#: stock/serializers.py:77 msgid "Generated batch code" msgstr "生成批量代码" -#: stock/serializers.py:85 +#: stock/serializers.py:86 msgid "Select build order" msgstr "选择生产订单" -#: stock/serializers.py:94 +#: stock/serializers.py:95 msgid "Select stock item to generate batch code for" msgstr "选择要生成批量代码的库存项" -#: stock/serializers.py:103 +#: stock/serializers.py:104 msgid "Select location to generate batch code for" msgstr "选择要生成批量代码的位置" -#: stock/serializers.py:112 +#: stock/serializers.py:113 msgid "Select part to generate batch code for" msgstr "选择要生成批量代码的零件" -#: stock/serializers.py:121 +#: stock/serializers.py:122 msgid "Select purchase order" msgstr "选择采购订单" -#: stock/serializers.py:128 +#: stock/serializers.py:129 msgid "Enter quantity for batch code" msgstr "输入批量代码的数量" -#: stock/serializers.py:151 +#: stock/serializers.py:152 msgid "Generated serial number" msgstr "生成的序列号" -#: stock/serializers.py:160 +#: stock/serializers.py:161 msgid "Select part to generate serial number for" msgstr "选择要生成序列号的零件" -#: stock/serializers.py:168 +#: stock/serializers.py:169 msgid "Quantity of serial numbers to generate" msgstr "要生成的序列号的数量" -#: stock/serializers.py:233 +#: stock/serializers.py:234 msgid "Test template for this result" msgstr "此结果的测试模板" -#: stock/serializers.py:254 +#: stock/serializers.py:258 msgid "Template ID or test name must be provided" msgstr "必须提供模板 ID 或测试名称" -#: stock/serializers.py:286 +#: stock/serializers.py:290 msgid "The test finished time cannot be earlier than the test started time" msgstr "测试完成时间不能早于测试开始时间" -#: stock/serializers.py:323 +#: stock/serializers.py:327 msgid "Serial number is too large" msgstr "序列号太大" -#: stock/serializers.py:452 stock/templates/stock/item_base.html:193 +#: stock/serializers.py:462 stock/templates/stock/item_base.html:190 msgid "Parent Item" msgstr "父项" -#: stock/serializers.py:453 +#: stock/serializers.py:463 msgid "Parent stock item" msgstr "父库存项" -#: stock/serializers.py:472 +#: stock/serializers.py:484 msgid "Use pack size when adding: the quantity defined is the number of packs" msgstr "添加时使用包装尺寸:定义的数量是包装的数量" -#: stock/serializers.py:596 stock/templates/stock/item_base.html:437 +#: stock/serializers.py:623 stock/templates/stock/item_base.html:434 #: templates/js/translated/table_filters.js:442 users/models.py:174 msgid "Expired" msgstr "已过期" -#: stock/serializers.py:602 stock/templates/stock/stock_sidebar.html:20 +#: stock/serializers.py:629 stock/templates/stock/stock_sidebar.html:20 msgid "Child Items" msgstr "子项目" -#: stock/serializers.py:606 +#: stock/serializers.py:633 msgid "Tracking Items" msgstr "跟踪项目" -#: stock/serializers.py:612 +#: stock/serializers.py:639 msgid "Purchase price of this stock item, per unit or pack" msgstr "此库存商品的购买价格,单位或包装" -#: stock/serializers.py:631 +#: stock/serializers.py:658 msgid "Minimum Pricing" msgstr "最低价格" -#: stock/serializers.py:637 +#: stock/serializers.py:664 msgid "Maximum Pricing" msgstr "最高价格" -#: stock/serializers.py:661 +#: stock/serializers.py:688 msgid "Enter number of stock items to serialize" msgstr "输入要序列化的库存项目数量" -#: stock/serializers.py:674 +#: stock/serializers.py:701 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({q})" msgstr "数量不得超过现有库存量 ({q})" -#: stock/serializers.py:681 +#: stock/serializers.py:708 msgid "Enter serial numbers for new items" msgstr "输入新项目的序列号" -#: stock/serializers.py:692 stock/serializers.py:1426 stock/serializers.py:1682 +#: stock/serializers.py:719 stock/serializers.py:1457 stock/serializers.py:1713 msgid "Destination stock location" msgstr "目标库存位置" -#: stock/serializers.py:699 +#: stock/serializers.py:726 msgid "Optional note field" msgstr "可选注释字段" -#: stock/serializers.py:709 +#: stock/serializers.py:736 msgid "Serial numbers cannot be assigned to this part" msgstr "此零件不能分配序列号" -#: stock/serializers.py:764 +#: stock/serializers.py:756 +msgid "Serial numbers already exist" +msgstr "序列号已存在" + +#: stock/serializers.py:795 msgid "Select stock item to install" msgstr "选择要安装的库存项目" -#: stock/serializers.py:771 +#: stock/serializers.py:802 msgid "Quantity to Install" msgstr "安装数量" -#: stock/serializers.py:772 +#: stock/serializers.py:803 msgid "Enter the quantity of items to install" msgstr "输入要安装的项目数量" -#: stock/serializers.py:777 stock/serializers.py:857 stock/serializers.py:983 -#: stock/serializers.py:1033 +#: stock/serializers.py:808 stock/serializers.py:888 stock/serializers.py:1014 +#: stock/serializers.py:1064 msgid "Add transaction note (optional)" msgstr "添加交易记录 (可选)" -#: stock/serializers.py:785 +#: stock/serializers.py:816 msgid "Quantity to install must be at least 1" msgstr "安装数量必须至少为1" -#: stock/serializers.py:793 +#: stock/serializers.py:824 msgid "Stock item is unavailable" msgstr "库存项不可用" -#: stock/serializers.py:804 +#: stock/serializers.py:835 msgid "Selected part is not in the Bill of Materials" msgstr "所选零件不在物料清单中" -#: stock/serializers.py:817 +#: stock/serializers.py:848 msgid "Quantity to install must not exceed available quantity" msgstr "安装数量不得超过可用数量" -#: stock/serializers.py:852 +#: stock/serializers.py:883 msgid "Destination location for uninstalled item" msgstr "已卸载项目的目标位置" -#: stock/serializers.py:903 +#: stock/serializers.py:934 msgid "Unsupported statistic type: " msgstr "不支持的统计类型: " -#: stock/serializers.py:917 +#: stock/serializers.py:948 msgid "Select part to convert stock item into" msgstr "选择要将库存项目转换为的零件" -#: stock/serializers.py:930 +#: stock/serializers.py:961 msgid "Selected part is not a valid option for conversion" msgstr "所选零件不是有效的转换选项" -#: stock/serializers.py:947 +#: stock/serializers.py:978 msgid "Cannot convert stock item with assigned SupplierPart" msgstr "无法转换已分配供应商零件的库存项" -#: stock/serializers.py:978 +#: stock/serializers.py:1009 msgid "Destination location for returned item" msgstr "退回物品的目的地位置" -#: stock/serializers.py:1015 +#: stock/serializers.py:1046 msgid "Select stock items to change status" msgstr "选择要更改状态的库存项目" -#: stock/serializers.py:1021 +#: stock/serializers.py:1052 msgid "No stock items selected" msgstr "未选择库存商品" -#: stock/serializers.py:1117 stock/serializers.py:1194 -#: stock/templates/stock/location.html:162 -#: stock/templates/stock/location.html:219 +#: stock/serializers.py:1148 stock/serializers.py:1225 +#: stock/templates/stock/location.html:163 +#: stock/templates/stock/location.html:220 #: stock/templates/stock/location_sidebar.html:5 msgid "Sublocations" -msgstr "转租" +msgstr "子位置" -#: stock/serializers.py:1187 templates/js/translated/stock.js:160 +#: stock/serializers.py:1218 templates/js/translated/stock.js:160 msgid "Parent stock location" msgstr "上级库存地点" -#: stock/serializers.py:1298 +#: stock/serializers.py:1329 msgid "Part must be salable" msgstr "零件必须可销售" -#: stock/serializers.py:1302 +#: stock/serializers.py:1333 msgid "Item is allocated to a sales order" msgstr "物料已分配到销售订单" -#: stock/serializers.py:1306 +#: stock/serializers.py:1337 msgid "Item is allocated to a build order" msgstr "项目被分配到生产订单中" -#: stock/serializers.py:1330 +#: stock/serializers.py:1361 msgid "Customer to assign stock items" msgstr "客户分配库存项目" -#: stock/serializers.py:1336 +#: stock/serializers.py:1367 msgid "Selected company is not a customer" msgstr "所选公司不是客户" -#: stock/serializers.py:1344 +#: stock/serializers.py:1375 msgid "Stock assignment notes" msgstr "库存分配说明" -#: stock/serializers.py:1354 stock/serializers.py:1608 +#: stock/serializers.py:1385 stock/serializers.py:1639 msgid "A list of stock items must be provided" msgstr "必须提供库存物品清单" -#: stock/serializers.py:1433 +#: stock/serializers.py:1464 msgid "Stock merging notes" msgstr "库存合并说明" -#: stock/serializers.py:1438 +#: stock/serializers.py:1469 msgid "Allow mismatched suppliers" msgstr "允许不匹配的供应商" -#: stock/serializers.py:1439 +#: stock/serializers.py:1470 msgid "Allow stock items with different supplier parts to be merged" msgstr "允许合并具有不同供应商零件的库存项目" -#: stock/serializers.py:1444 +#: stock/serializers.py:1475 msgid "Allow mismatched status" msgstr "允许不匹配的状态" -#: stock/serializers.py:1445 +#: stock/serializers.py:1476 msgid "Allow stock items with different status codes to be merged" msgstr "允许合并具有不同状态代码的库存项目" -#: stock/serializers.py:1455 +#: stock/serializers.py:1486 msgid "At least two stock items must be provided" msgstr "必须提供至少两件库存物品" -#: stock/serializers.py:1522 +#: stock/serializers.py:1553 msgid "No Change" msgstr "无更改" -#: stock/serializers.py:1551 +#: stock/serializers.py:1582 msgid "StockItem primary key value" msgstr "库存项主键值" -#: stock/serializers.py:1570 +#: stock/serializers.py:1601 msgid "Stock item status code" msgstr "库存项状态代码" -#: stock/serializers.py:1598 +#: stock/serializers.py:1629 msgid "Stock transaction notes" msgstr "库存交易记录" @@ -10175,107 +10539,107 @@ msgstr "拒绝" msgid "Quarantined" msgstr "隔离" -#: stock/status_codes.py:40 +#: stock/status_codes.py:44 msgid "Legacy stock tracking entry" msgstr "旧库存跟踪条目" -#: stock/status_codes.py:42 templates/js/translated/stock.js:550 +#: stock/status_codes.py:46 templates/js/translated/stock.js:550 msgid "Stock item created" msgstr "库存项已创建" -#: stock/status_codes.py:45 +#: stock/status_codes.py:49 msgid "Edited stock item" msgstr "已编辑库存项" -#: stock/status_codes.py:46 +#: stock/status_codes.py:50 msgid "Assigned serial number" msgstr "已分配序列号" -#: stock/status_codes.py:49 +#: stock/status_codes.py:53 msgid "Stock counted" msgstr "库存计数" -#: stock/status_codes.py:50 +#: stock/status_codes.py:54 msgid "Stock manually added" msgstr "已手动添加库存" -#: stock/status_codes.py:51 +#: stock/status_codes.py:55 msgid "Stock manually removed" msgstr "已手动删除库存" -#: stock/status_codes.py:54 +#: stock/status_codes.py:58 msgid "Location changed" msgstr "地点已更改" -#: stock/status_codes.py:55 +#: stock/status_codes.py:59 msgid "Stock updated" msgstr "库存已更新" -#: stock/status_codes.py:58 +#: stock/status_codes.py:62 msgid "Installed into assembly" msgstr "已安装到装配中" -#: stock/status_codes.py:59 +#: stock/status_codes.py:63 msgid "Removed from assembly" msgstr "已从装配中删除" -#: stock/status_codes.py:61 +#: stock/status_codes.py:65 msgid "Installed component item" msgstr "已安装组件项" -#: stock/status_codes.py:62 +#: stock/status_codes.py:66 msgid "Removed component item" msgstr "已删除组件项" -#: stock/status_codes.py:65 +#: stock/status_codes.py:69 msgid "Split from parent item" msgstr "从上级项拆分" -#: stock/status_codes.py:66 +#: stock/status_codes.py:70 msgid "Split child item" msgstr "拆分子项" -#: stock/status_codes.py:69 templates/js/translated/stock.js:1943 +#: stock/status_codes.py:73 templates/js/translated/stock.js:1944 msgid "Merged stock items" msgstr "合并的库存项" -#: stock/status_codes.py:72 +#: stock/status_codes.py:76 msgid "Converted to variant" msgstr "转换为变体" -#: stock/status_codes.py:75 +#: stock/status_codes.py:79 msgid "Build order output created" msgstr "已创建生产订单产出" -#: stock/status_codes.py:76 +#: stock/status_codes.py:80 msgid "Build order output completed" msgstr "生产订单已出产" -#: stock/status_codes.py:77 +#: stock/status_codes.py:81 msgid "Build order output rejected" msgstr "生产订单产出被拒绝" -#: stock/status_codes.py:78 templates/js/translated/stock.js:1849 +#: stock/status_codes.py:82 templates/js/translated/stock.js:1849 msgid "Consumed by build order" msgstr "被工單消耗的" -#: stock/status_codes.py:81 +#: stock/status_codes.py:85 msgid "Shipped against Sales Order" msgstr "按銷售訂單出貨" -#: stock/status_codes.py:84 +#: stock/status_codes.py:88 msgid "Received against Purchase Order" msgstr "按採購訂單接收" -#: stock/status_codes.py:87 +#: stock/status_codes.py:91 msgid "Returned against Return Order" msgstr "按退貨訂單退回" -#: stock/status_codes.py:90 templates/js/translated/table_filters.js:382 +#: stock/status_codes.py:94 templates/js/translated/table_filters.js:382 msgid "Sent to customer" msgstr "寄送給客戶" -#: stock/status_codes.py:91 +#: stock/status_codes.py:95 msgid "Returned from customer" msgstr "從客戶端退回" @@ -10296,7 +10660,7 @@ msgstr "此库存商品没有任何子商品" msgid "Test Data" msgstr "测试数据" -#: stock/templates/stock/item.html:85 stock/templates/stock/item_base.html:65 +#: stock/templates/stock/item.html:85 msgid "Test Report" msgstr "测试报告" @@ -10316,7 +10680,7 @@ msgstr "库存项目备注" msgid "Installed Stock Items" msgstr "已安装的库存项" -#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3354 +#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3355 msgid "Install Stock Item" msgstr "安装库存项" @@ -10328,208 +10692,212 @@ msgstr "删除此库存项目的所有测试结果" msgid "Add Test Result" msgstr "添加测试结果" -#: stock/templates/stock/item_base.html:33 +#: stock/templates/stock/item_base.html:34 msgid "Locate stock item" msgstr "查找库存项目" -#: stock/templates/stock/item_base.html:51 +#: stock/templates/stock/item_base.html:52 msgid "Scan to Location" msgstr "扫描到位置" #: stock/templates/stock/item_base.html:59 -#: stock/templates/stock/location.html:67 +#: stock/templates/stock/location.html:68 #: templates/js/translated/filters.js:434 msgid "Printing actions" msgstr "打印操作" -#: stock/templates/stock/item_base.html:75 +#: stock/templates/stock/item_base.html:64 templates/js/translated/report.js:49 +msgid "Print Report" +msgstr "打印报告" + +#: stock/templates/stock/item_base.html:72 msgid "Stock adjustment actions" msgstr "库存调整操作" -#: stock/templates/stock/item_base.html:79 -#: stock/templates/stock/location.html:87 templates/js/translated/stock.js:1909 +#: stock/templates/stock/item_base.html:76 +#: stock/templates/stock/location.html:88 templates/js/translated/stock.js:1909 msgid "Count stock" msgstr "清点库存" -#: stock/templates/stock/item_base.html:81 +#: stock/templates/stock/item_base.html:78 #: templates/js/translated/stock.js:1891 msgid "Add stock" msgstr "增加库存" -#: stock/templates/stock/item_base.html:82 +#: stock/templates/stock/item_base.html:79 #: templates/js/translated/stock.js:1900 msgid "Remove stock" msgstr "移除库存" -#: stock/templates/stock/item_base.html:85 +#: stock/templates/stock/item_base.html:82 msgid "Serialize stock" msgstr "序列化库存" -#: stock/templates/stock/item_base.html:88 -#: stock/templates/stock/location.html:93 templates/js/translated/stock.js:1918 +#: stock/templates/stock/item_base.html:85 +#: stock/templates/stock/location.html:94 templates/js/translated/stock.js:1918 msgid "Transfer stock" msgstr "转移库存" -#: stock/templates/stock/item_base.html:91 -#: templates/js/translated/stock.js:1972 +#: stock/templates/stock/item_base.html:88 +#: templates/js/translated/stock.js:1973 msgid "Assign to customer" msgstr "分配给客户" -#: stock/templates/stock/item_base.html:94 +#: stock/templates/stock/item_base.html:91 msgid "Return to stock" msgstr "返回库存" -#: stock/templates/stock/item_base.html:97 +#: stock/templates/stock/item_base.html:94 msgid "Uninstall stock item" msgstr "卸载库存项目" -#: stock/templates/stock/item_base.html:97 +#: stock/templates/stock/item_base.html:94 msgid "Uninstall" msgstr "卸载" -#: stock/templates/stock/item_base.html:101 +#: stock/templates/stock/item_base.html:98 msgid "Install stock item" msgstr "安装库存项" -#: stock/templates/stock/item_base.html:101 +#: stock/templates/stock/item_base.html:98 msgid "Install" msgstr "安装" -#: stock/templates/stock/item_base.html:115 +#: stock/templates/stock/item_base.html:112 msgid "Convert to variant" msgstr "转换为变体" -#: stock/templates/stock/item_base.html:118 +#: stock/templates/stock/item_base.html:115 msgid "Duplicate stock item" msgstr "复制库存项目" -#: stock/templates/stock/item_base.html:120 +#: stock/templates/stock/item_base.html:117 msgid "Edit stock item" msgstr "编辑库存项" -#: stock/templates/stock/item_base.html:123 +#: stock/templates/stock/item_base.html:120 msgid "Delete stock item" msgstr "删除库存项" -#: stock/templates/stock/item_base.html:169 templates/InvenTree/search.html:139 -#: templates/js/translated/build.js:2295 templates/navbar.html:38 +#: stock/templates/stock/item_base.html:166 templates/InvenTree/search.html:139 +#: templates/js/translated/build.js:2298 templates/navbar.html:38 msgid "Build" msgstr "生产" -#: stock/templates/stock/item_base.html:211 +#: stock/templates/stock/item_base.html:208 msgid "No manufacturer set" msgstr "未设置制造商" -#: stock/templates/stock/item_base.html:251 +#: stock/templates/stock/item_base.html:248 msgid "You are not in the list of owners of this item. This stock item cannot be edited." msgstr "您不在此项目的所有者列表中。此库存项目不可编辑。" -#: stock/templates/stock/item_base.html:252 -#: stock/templates/stock/location.html:146 +#: stock/templates/stock/item_base.html:249 +#: stock/templates/stock/location.html:147 msgid "Read only" msgstr "只读" -#: stock/templates/stock/item_base.html:265 +#: stock/templates/stock/item_base.html:262 msgid "This stock item is unavailable" msgstr "此库存项不可用" -#: stock/templates/stock/item_base.html:271 +#: stock/templates/stock/item_base.html:268 msgid "This stock item is in production and cannot be edited." msgstr "此库存项目正在生产中,无法编辑。" -#: stock/templates/stock/item_base.html:272 +#: stock/templates/stock/item_base.html:269 msgid "Edit the stock item from the build view." msgstr "从构建视图中编辑库存项目。" -#: stock/templates/stock/item_base.html:287 +#: stock/templates/stock/item_base.html:284 msgid "This stock item is allocated to Sales Order" msgstr "此库存项目已分配给销售订单" -#: stock/templates/stock/item_base.html:295 +#: stock/templates/stock/item_base.html:292 msgid "This stock item is allocated to Build Order" msgstr "此库存项目已分配给生产订单" -#: stock/templates/stock/item_base.html:311 +#: stock/templates/stock/item_base.html:308 msgid "This stock item is serialized. It has a unique serial number and the quantity cannot be adjusted" msgstr "此库存商品已序列化。它有一个唯一的序列号,数量无法调整" -#: stock/templates/stock/item_base.html:317 +#: stock/templates/stock/item_base.html:314 msgid "previous page" msgstr "上一页" -#: stock/templates/stock/item_base.html:317 +#: stock/templates/stock/item_base.html:314 msgid "Navigate to previous serial number" msgstr "导航到上一个序列号" -#: stock/templates/stock/item_base.html:326 +#: stock/templates/stock/item_base.html:323 msgid "next page" msgstr "下一页" -#: stock/templates/stock/item_base.html:326 +#: stock/templates/stock/item_base.html:323 msgid "Navigate to next serial number" msgstr "导航到下一个序列号" -#: stock/templates/stock/item_base.html:398 -#: templates/js/translated/build.js:2552 +#: stock/templates/stock/item_base.html:395 +#: templates/js/translated/build.js:2559 msgid "No location set" msgstr "未设置位置" -#: stock/templates/stock/item_base.html:413 +#: stock/templates/stock/item_base.html:410 msgid "Tests" msgstr "测试" -#: stock/templates/stock/item_base.html:419 +#: stock/templates/stock/item_base.html:416 msgid "This stock item has not passed all required tests" msgstr "此库存项目未通过所有要求的测试" -#: stock/templates/stock/item_base.html:437 +#: stock/templates/stock/item_base.html:434 #, python-format msgid "This StockItem expired on %(item.expiry_date)s" msgstr "此库存项在 %(item.expiry_date)s 过期" -#: stock/templates/stock/item_base.html:439 +#: stock/templates/stock/item_base.html:436 #, python-format msgid "This StockItem expires on %(item.expiry_date)s" msgstr "此库存项在 %(item.expiry_date)s 过期" -#: stock/templates/stock/item_base.html:455 +#: stock/templates/stock/item_base.html:452 msgid "No stocktake performed" msgstr "未进行盘点" -#: stock/templates/stock/item_base.html:504 -#: templates/js/translated/stock.js:2037 +#: stock/templates/stock/item_base.html:501 +#: templates/js/translated/stock.js:2038 msgid "stock item" msgstr "库存项" -#: stock/templates/stock/item_base.html:527 +#: stock/templates/stock/item_base.html:524 msgid "Edit Stock Status" msgstr "编辑库存状态" -#: stock/templates/stock/item_base.html:536 +#: stock/templates/stock/item_base.html:533 msgid "Stock Item QR Code" msgstr "库存项二维码" -#: stock/templates/stock/item_base.html:547 +#: stock/templates/stock/item_base.html:544 msgid "Link Barcode to Stock Item" msgstr "将条形码链接到库存项" -#: stock/templates/stock/item_base.html:611 +#: stock/templates/stock/item_base.html:608 msgid "Select one of the part variants listed below." msgstr "选择下面列出的零件变体之一。" -#: stock/templates/stock/item_base.html:614 +#: stock/templates/stock/item_base.html:611 msgid "Warning" msgstr "警告" -#: stock/templates/stock/item_base.html:615 +#: stock/templates/stock/item_base.html:612 msgid "This action cannot be easily undone" msgstr "此操作不易撤消" -#: stock/templates/stock/item_base.html:623 +#: stock/templates/stock/item_base.html:620 msgid "Convert Stock Item" msgstr "转换库存项目" -#: stock/templates/stock/item_base.html:656 +#: stock/templates/stock/item_base.html:653 msgid "Return to Stock" msgstr "返回到库存" @@ -10541,84 +10909,84 @@ msgstr "从该库存项目创建序列化项目。" msgid "Select quantity to serialize, and unique serial numbers." msgstr "选择要序列化的数量和唯一的序列号。" -#: stock/templates/stock/location.html:35 +#: stock/templates/stock/location.html:36 msgid "Perform stocktake for this stock location" msgstr "对该库存位置进行盘点" -#: stock/templates/stock/location.html:42 +#: stock/templates/stock/location.html:43 msgid "Locate stock location" msgstr "定位库存位置" -#: stock/templates/stock/location.html:60 +#: stock/templates/stock/location.html:61 msgid "Scan stock items into this location" msgstr "将库存商品扫描到此位置" -#: stock/templates/stock/location.html:60 +#: stock/templates/stock/location.html:61 msgid "Scan In Stock Items" msgstr "扫描库存商品" -#: stock/templates/stock/location.html:61 +#: stock/templates/stock/location.html:62 msgid "Scan stock container into this location" msgstr "将库存集装箱扫描到此位置" -#: stock/templates/stock/location.html:61 +#: stock/templates/stock/location.html:62 msgid "Scan In Container" msgstr "扫描集装箱" -#: stock/templates/stock/location.html:72 +#: stock/templates/stock/location.html:73 msgid "Print Location Report" msgstr "打印位置报告" -#: stock/templates/stock/location.html:101 +#: stock/templates/stock/location.html:102 msgid "Location actions" msgstr "位置操作" -#: stock/templates/stock/location.html:103 +#: stock/templates/stock/location.html:104 msgid "Edit location" msgstr "编辑位置" -#: stock/templates/stock/location.html:105 +#: stock/templates/stock/location.html:106 msgid "Delete location" msgstr "删除位置" -#: stock/templates/stock/location.html:135 +#: stock/templates/stock/location.html:136 msgid "Top level stock location" msgstr "顶级库存位置" -#: stock/templates/stock/location.html:141 +#: stock/templates/stock/location.html:142 msgid "Location Owner" msgstr "位置所有者" -#: stock/templates/stock/location.html:145 +#: stock/templates/stock/location.html:146 msgid "You are not in the list of owners of this location. This stock location cannot be edited." msgstr "您不在此位置的所有者列表中。此库存位置不可编辑。" -#: stock/templates/stock/location.html:173 +#: stock/templates/stock/location.html:174 msgid "Location Type" msgstr "位置类型" -#: stock/templates/stock/location.html:223 +#: stock/templates/stock/location.html:224 msgid "Create new stock location" msgstr "创建新的库存位置" -#: stock/templates/stock/location.html:224 +#: stock/templates/stock/location.html:225 msgid "New Location" msgstr "新建库存地点" -#: stock/templates/stock/location.html:298 -#: templates/js/translated/stock.js:2657 +#: stock/templates/stock/location.html:299 +#: templates/js/translated/stock.js:2658 msgid "stock location" msgstr "库存位置" -#: stock/templates/stock/location.html:320 +#: stock/templates/stock/location.html:321 msgid "Scanned stock container into this location" msgstr "将扫描的库存集装箱放入此位置" -#: stock/templates/stock/location.html:393 +#: stock/templates/stock/location.html:394 msgid "Stock Location QR Code" msgstr "库存地点二维码" -#: stock/templates/stock/location.html:404 +#: stock/templates/stock/location.html:405 msgid "Link Barcode to Stock Location" msgstr "将条形码链接到库存地点" @@ -10630,10 +10998,6 @@ msgstr "加载中…" msgid "Stock Tracking" msgstr "库存跟踪" -#: stock/templates/stock/stock_sidebar.html:8 -msgid "Allocations" -msgstr "分配" - #: templates/403.html:6 templates/403.html:12 templates/403_csrf.html:7 msgid "Permission Denied" msgstr "权限受限" @@ -11107,9 +11471,9 @@ msgid "Rate" msgstr "汇率" #: templates/InvenTree/settings/settings_staff_js.html:81 -#: templates/js/translated/forms.js:548 templates/js/translated/helpers.js:108 +#: templates/js/translated/forms.js:548 templates/js/translated/helpers.js:109 #: templates/js/translated/part.js:395 templates/js/translated/pricing.js:629 -#: templates/js/translated/stock.js:252 users/models.py:406 +#: templates/js/translated/stock.js:252 users/models.py:408 msgid "Delete" msgstr "删除" @@ -11130,7 +11494,7 @@ msgid "No project codes found" msgstr "未找到项目编码" #: templates/InvenTree/settings/settings_staff_js.html:158 -#: templates/js/translated/build.js:2400 +#: templates/js/translated/build.js:2403 msgid "group" msgstr "组" @@ -11196,7 +11560,7 @@ msgid "Delete Location Type" msgstr "删除地点类型" #: templates/InvenTree/settings/settings_staff_js.html:503 -#: templates/InvenTree/settings/stock.html:38 +#: templates/InvenTree/settings/stock.html:39 msgid "New Location Type" msgstr "新建位置类型" @@ -11253,7 +11617,7 @@ msgstr "销售订单设置" msgid "Stock Settings" msgstr "库存设置" -#: templates/InvenTree/settings/stock.html:34 +#: templates/InvenTree/settings/stock.html:35 msgid "Stock Location Types" msgstr "库存地点类型" @@ -11280,7 +11644,7 @@ msgid "Unverified" msgstr "未验证" #: templates/InvenTree/settings/user.html:80 -#: templates/js/translated/company.js:957 +#: templates/js/translated/company.js:958 msgid "Primary" msgstr "主要的" @@ -11532,7 +11896,7 @@ msgid "Submit Bug Report" msgstr "提交Bug报告" #: templates/about.html:91 templates/clip.html:4 -#: templates/js/translated/helpers.js:592 +#: templates/js/translated/helpers.js:598 msgid "copy to clipboard" msgstr "复制到剪贴板" @@ -11738,23 +12102,24 @@ msgstr "添加附件" msgid "Barcode Identifier" msgstr "条形码验证器" -#: templates/base.html:103 +#: templates/base.html:102 msgid "Server Restart Required" msgstr "需要重新启动服务器" -#: templates/base.html:106 +#: templates/base.html:105 msgid "A configuration option has been changed which requires a server restart" msgstr "配置选项已更改,需要重新启动服务器" -#: templates/base.html:106 templates/base.html:116 +#: templates/base.html:105 templates/base.html:115 +#: templates/socialaccount/authentication_error.html:13 msgid "Contact your system administrator for further information" msgstr "有关详细信息,请与系统管理员联系" -#: templates/base.html:113 +#: templates/base.html:112 msgid "Pending Database Migrations" msgstr "待处理的数据库迁移" -#: templates/base.html:116 +#: templates/base.html:115 msgid "There are pending database migrations which require attention" msgstr "有一些待处理的数据库迁移需要注意" @@ -11787,7 +12152,7 @@ msgid "The following parts are low on required stock" msgstr "以下零件所需库存不足" #: templates/email/build_order_required_stock.html:18 -#: templates/js/translated/bom.js:1674 templates/js/translated/build.js:2747 +#: templates/js/translated/bom.js:1674 templates/js/translated/build.js:2765 msgid "Required Quantity" msgstr "所需数量" @@ -11801,7 +12166,7 @@ msgid "Click on the following link to view this part" msgstr "点击以下链接查看此零件" #: templates/email/low_stock_notification.html:18 -#: templates/js/translated/part.js:3237 +#: templates/js/translated/part.js:3253 msgid "Minimum Quantity" msgstr "最小数量" @@ -12039,7 +12404,7 @@ msgstr "行数据" #: templates/js/translated/bom.js:189 templates/js/translated/bom.js:700 #: templates/js/translated/modals.js:75 templates/js/translated/modals.js:629 #: templates/js/translated/modals.js:757 templates/js/translated/modals.js:1065 -#: templates/js/translated/purchase_order.js:797 templates/modals.html:15 +#: templates/js/translated/purchase_order.js:780 templates/modals.html:15 #: templates/modals.html:27 templates/modals.html:39 templates/modals.html:50 msgid "Close" msgstr "关闭" @@ -12156,7 +12521,7 @@ msgstr "为子组件加载物料清单" msgid "Substitutes Available" msgstr "替代品可用" -#: templates/js/translated/bom.js:950 templates/js/translated/build.js:2673 +#: templates/js/translated/bom.js:950 templates/js/translated/build.js:2682 msgid "Variant stock allowed" msgstr "已允许变体库存" @@ -12176,30 +12541,30 @@ msgstr "物料清单定价未完成" msgid "No pricing available" msgstr "无可用价格" -#: templates/js/translated/bom.js:1184 templates/js/translated/build.js:2812 +#: templates/js/translated/bom.js:1184 templates/js/translated/build.js:2830 msgid "External stock" msgstr "外部库存" -#: templates/js/translated/bom.js:1188 templates/js/translated/build.js:2786 -#: templates/js/translated/sales_order.js:1946 +#: templates/js/translated/bom.js:1188 templates/js/translated/build.js:2804 +#: templates/js/translated/sales_order.js:1927 msgid "No Stock Available" msgstr "无可用库存" -#: templates/js/translated/bom.js:1193 templates/js/translated/build.js:2790 +#: templates/js/translated/bom.js:1193 templates/js/translated/build.js:2808 msgid "Includes variant and substitute stock" msgstr "包括变体和替代品库存" -#: templates/js/translated/bom.js:1195 templates/js/translated/build.js:2792 +#: templates/js/translated/bom.js:1195 templates/js/translated/build.js:2810 #: templates/js/translated/part.js:1263 -#: templates/js/translated/sales_order.js:1943 +#: templates/js/translated/sales_order.js:1924 msgid "Includes variant stock" msgstr "包括变体库存" -#: templates/js/translated/bom.js:1197 templates/js/translated/build.js:2794 +#: templates/js/translated/bom.js:1197 templates/js/translated/build.js:2812 msgid "Includes substitute stock" msgstr "包括替代品库存" -#: templates/js/translated/bom.js:1225 templates/js/translated/build.js:2777 +#: templates/js/translated/bom.js:1225 templates/js/translated/build.js:2795 msgid "Consumable item" msgstr "消耗品" @@ -12231,7 +12596,7 @@ msgstr "查看物料清单" msgid "No BOM items found" msgstr "未找到物料清单项目" -#: templates/js/translated/bom.js:1657 templates/js/translated/build.js:2658 +#: templates/js/translated/bom.js:1657 templates/js/translated/build.js:2667 msgid "Required Part" msgstr "必须零件" @@ -12243,396 +12608,396 @@ msgstr "从上级物料清单继承" msgid "Edit Build Order" msgstr "编辑生产订单" -#: templates/js/translated/build.js:191 +#: templates/js/translated/build.js:194 msgid "Create Build Order" msgstr "创建生产订单" -#: templates/js/translated/build.js:223 +#: templates/js/translated/build.js:226 msgid "Cancel Build Order" msgstr "取消生产订单" -#: templates/js/translated/build.js:232 +#: templates/js/translated/build.js:235 msgid "Are you sure you wish to cancel this build?" msgstr "您确定要取消此生成吗?" -#: templates/js/translated/build.js:238 +#: templates/js/translated/build.js:241 msgid "Stock items have been allocated to this build order" msgstr "库存项目已分配到此生产订单" -#: templates/js/translated/build.js:245 +#: templates/js/translated/build.js:248 msgid "There are incomplete outputs remaining for this build order" msgstr "此生产订单还有未完成的产出" -#: templates/js/translated/build.js:297 +#: templates/js/translated/build.js:300 msgid "Build order is ready to be completed" msgstr "生产订单已准备好标记为已完成" -#: templates/js/translated/build.js:305 +#: templates/js/translated/build.js:308 msgid "This build order cannot be completed as there are incomplete outputs" msgstr "由于产出不完整,无法完成此生产订单" -#: templates/js/translated/build.js:310 +#: templates/js/translated/build.js:313 msgid "Build Order is incomplete" msgstr "生产订单未完成" -#: templates/js/translated/build.js:328 +#: templates/js/translated/build.js:331 msgid "Complete Build Order" msgstr "完成生产订单" -#: templates/js/translated/build.js:369 templates/js/translated/stock.js:127 +#: templates/js/translated/build.js:372 templates/js/translated/stock.js:127 #: templates/js/translated/stock.js:301 msgid "Next available serial number" msgstr "下一个可用序列号" -#: templates/js/translated/build.js:371 templates/js/translated/stock.js:129 +#: templates/js/translated/build.js:374 templates/js/translated/stock.js:129 #: templates/js/translated/stock.js:303 msgid "Latest serial number" msgstr "最新序列号" -#: templates/js/translated/build.js:380 +#: templates/js/translated/build.js:383 msgid "The Bill of Materials contains trackable parts" msgstr "物料清单包含可跟踪的零件" -#: templates/js/translated/build.js:381 +#: templates/js/translated/build.js:384 msgid "Build outputs must be generated individually" msgstr "必须单独生成生产输出" -#: templates/js/translated/build.js:389 +#: templates/js/translated/build.js:392 msgid "Trackable parts can have serial numbers specified" msgstr "可跟踪零件可以指定序列号" -#: templates/js/translated/build.js:390 +#: templates/js/translated/build.js:393 msgid "Enter serial numbers to generate multiple single build outputs" msgstr "输入序列号来生成多个单一生产输出" -#: templates/js/translated/build.js:397 +#: templates/js/translated/build.js:400 msgid "Create Build Output" msgstr "创建生产输出" -#: templates/js/translated/build.js:428 +#: templates/js/translated/build.js:431 msgid "Allocate stock items to this build output" msgstr "分配库存项到此生产输出" -#: templates/js/translated/build.js:436 +#: templates/js/translated/build.js:439 msgid "Deallocate stock from build output" msgstr "从生产输出中取消分配库存" -#: templates/js/translated/build.js:445 +#: templates/js/translated/build.js:448 msgid "Complete build output" msgstr "完成生产输出" -#: templates/js/translated/build.js:453 +#: templates/js/translated/build.js:456 msgid "Scrap build output" msgstr "报废生产输出" -#: templates/js/translated/build.js:460 +#: templates/js/translated/build.js:463 msgid "Delete build output" msgstr "删除生产输出" -#: templates/js/translated/build.js:480 +#: templates/js/translated/build.js:483 msgid "Are you sure you wish to deallocate the selected stock items from this build?" msgstr "您确定要取消分配此版本中选定的库存项目吗?" -#: templates/js/translated/build.js:498 +#: templates/js/translated/build.js:501 msgid "Deallocate Stock Items" msgstr "取消分配库存项目" -#: templates/js/translated/build.js:584 templates/js/translated/build.js:711 -#: templates/js/translated/build.js:836 +#: templates/js/translated/build.js:587 templates/js/translated/build.js:714 +#: templates/js/translated/build.js:839 msgid "Select Build Outputs" msgstr "选择生产输出" -#: templates/js/translated/build.js:585 templates/js/translated/build.js:712 -#: templates/js/translated/build.js:837 +#: templates/js/translated/build.js:588 templates/js/translated/build.js:715 +#: templates/js/translated/build.js:840 msgid "At least one build output must be selected" msgstr "必须选择至少一个生产输出" -#: templates/js/translated/build.js:599 +#: templates/js/translated/build.js:602 msgid "Selected build outputs will be marked as complete" msgstr "选择的生产输出将被标记为完成" -#: templates/js/translated/build.js:603 templates/js/translated/build.js:736 -#: templates/js/translated/build.js:859 +#: templates/js/translated/build.js:606 templates/js/translated/build.js:739 +#: templates/js/translated/build.js:862 msgid "Output" msgstr "输出" -#: templates/js/translated/build.js:630 +#: templates/js/translated/build.js:633 msgid "Complete Build Outputs" msgstr "完成生产输出" -#: templates/js/translated/build.js:727 +#: templates/js/translated/build.js:730 msgid "Selected build outputs will be marked as scrapped" msgstr "选择的生产输出将被标记为已报废" -#: templates/js/translated/build.js:729 +#: templates/js/translated/build.js:732 msgid "Scrapped output are marked as rejected" msgstr "报废的输出被标记为拒收" -#: templates/js/translated/build.js:730 +#: templates/js/translated/build.js:733 msgid "Allocated stock items will no longer be available" msgstr "已分配的库存物品将不再可用" -#: templates/js/translated/build.js:731 +#: templates/js/translated/build.js:734 msgid "The completion status of the build order will not be adjusted" msgstr "生产订单的完成状态将不会调整" -#: templates/js/translated/build.js:761 +#: templates/js/translated/build.js:764 msgid "Scrap Build Outputs" msgstr "报废生产输出" -#: templates/js/translated/build.js:851 +#: templates/js/translated/build.js:854 msgid "Selected build outputs will be deleted" msgstr "选定的生产输出将被删除" -#: templates/js/translated/build.js:853 +#: templates/js/translated/build.js:856 msgid "Build output data will be permanently deleted" msgstr "生产输出数据将被永久删除" -#: templates/js/translated/build.js:854 +#: templates/js/translated/build.js:857 msgid "Allocated stock items will be returned to stock" msgstr "已分配的库存物品将退回库存" -#: templates/js/translated/build.js:872 +#: templates/js/translated/build.js:875 msgid "Delete Build Outputs" msgstr "删除生产输出" -#: templates/js/translated/build.js:959 +#: templates/js/translated/build.js:962 msgid "Delete allocations" msgstr "删除分配" -#: templates/js/translated/build.js:966 +#: templates/js/translated/build.js:969 msgid "Delete Stock Allocations" msgstr "删除库存分配" -#: templates/js/translated/build.js:989 +#: templates/js/translated/build.js:992 msgid "No allocated stock" msgstr "未分配库存" -#: templates/js/translated/build.js:1045 +#: templates/js/translated/build.js:1048 msgid "Stock item" msgstr "库存项" -#: templates/js/translated/build.js:1070 +#: templates/js/translated/build.js:1073 msgid "Edit build allocation" msgstr "编辑库存分配" -#: templates/js/translated/build.js:1071 +#: templates/js/translated/build.js:1074 msgid "Delete build allocation" msgstr "删除构建分配" -#: templates/js/translated/build.js:1089 +#: templates/js/translated/build.js:1092 msgid "Edit Build Allocation" msgstr "编辑构建分配" -#: templates/js/translated/build.js:1102 +#: templates/js/translated/build.js:1105 msgid "Delete Build Allocation" msgstr "删除构建分配" -#: templates/js/translated/build.js:1133 +#: templates/js/translated/build.js:1136 msgid "No build order allocations found" msgstr "未找到生产订单分配" -#: templates/js/translated/build.js:1178 +#: templates/js/translated/build.js:1181 msgid "Location not specified" msgstr "未指定位置" -#: templates/js/translated/build.js:1200 +#: templates/js/translated/build.js:1203 msgid "Complete outputs" msgstr "已完成输出" -#: templates/js/translated/build.js:1218 +#: templates/js/translated/build.js:1221 msgid "Scrap outputs" msgstr "报废输出" -#: templates/js/translated/build.js:1236 +#: templates/js/translated/build.js:1239 msgid "Delete outputs" msgstr "删除输出" -#: templates/js/translated/build.js:1289 +#: templates/js/translated/build.js:1292 msgid "build output" msgstr "生产输出" -#: templates/js/translated/build.js:1290 +#: templates/js/translated/build.js:1293 msgid "build outputs" msgstr "生产输出" -#: templates/js/translated/build.js:1294 +#: templates/js/translated/build.js:1297 msgid "Build output actions" msgstr "生产输出操作" -#: templates/js/translated/build.js:1470 +#: templates/js/translated/build.js:1473 msgid "No active build outputs found" msgstr "未找到激活的生产输出" -#: templates/js/translated/build.js:1563 +#: templates/js/translated/build.js:1566 msgid "Allocated Lines" msgstr "已分配行" -#: templates/js/translated/build.js:1577 +#: templates/js/translated/build.js:1580 msgid "Required Tests" msgstr "需要的测试" -#: templates/js/translated/build.js:1749 -#: templates/js/translated/purchase_order.js:611 -#: templates/js/translated/sales_order.js:1207 +#: templates/js/translated/build.js:1752 +#: templates/js/translated/purchase_order.js:594 +#: templates/js/translated/sales_order.js:1173 msgid "Select Parts" msgstr "选择零件" -#: templates/js/translated/build.js:1750 -#: templates/js/translated/sales_order.js:1208 +#: templates/js/translated/build.js:1753 +#: templates/js/translated/sales_order.js:1174 msgid "You must select at least one part to allocate" msgstr "您必须选择至少一个要分配的零件" -#: templates/js/translated/build.js:1813 -#: templates/js/translated/sales_order.js:1157 +#: templates/js/translated/build.js:1816 +#: templates/js/translated/sales_order.js:1123 msgid "Specify stock allocation quantity" msgstr "指定库存分配数量" -#: templates/js/translated/build.js:1890 +#: templates/js/translated/build.js:1893 msgid "All Parts Allocated" msgstr "所有零件已分配" -#: templates/js/translated/build.js:1891 +#: templates/js/translated/build.js:1894 msgid "All selected parts have been fully allocated" msgstr "所有选定的零件均已完全分配" -#: templates/js/translated/build.js:1905 -#: templates/js/translated/sales_order.js:1222 +#: templates/js/translated/build.js:1908 +#: templates/js/translated/sales_order.js:1188 msgid "Select source location (leave blank to take from all locations)" msgstr "选择源位置 (留空以从所有位置取出)" -#: templates/js/translated/build.js:1933 +#: templates/js/translated/build.js:1936 msgid "Allocate Stock Items to Build Order" msgstr "分配库存项目给生产订单" -#: templates/js/translated/build.js:1944 -#: templates/js/translated/sales_order.js:1319 +#: templates/js/translated/build.js:1947 +#: templates/js/translated/sales_order.js:1285 msgid "No matching stock locations" msgstr "没有匹配的库存位置" -#: templates/js/translated/build.js:2017 -#: templates/js/translated/sales_order.js:1398 +#: templates/js/translated/build.js:2020 +#: templates/js/translated/sales_order.js:1364 msgid "No matching stock items" msgstr "没有匹配的库存项" -#: templates/js/translated/build.js:2114 +#: templates/js/translated/build.js:2117 msgid "Automatic Stock Allocation" msgstr "自动库存分配" -#: templates/js/translated/build.js:2115 +#: templates/js/translated/build.js:2118 msgid "Stock items will be automatically allocated to this build order, according to the provided guidelines" msgstr "根据提供的指导方针,库存物品将自动分配给此生产订单" -#: templates/js/translated/build.js:2117 +#: templates/js/translated/build.js:2120 msgid "If a location is specified, stock will only be allocated from that location" msgstr "如果指定了位置,则仅从该位置分配库存" -#: templates/js/translated/build.js:2118 +#: templates/js/translated/build.js:2121 msgid "If stock is considered interchangeable, it will be allocated from the first location it is found" msgstr "如果认为库存可以互换,则将从找到的第一个位置进行分配" -#: templates/js/translated/build.js:2119 +#: templates/js/translated/build.js:2122 msgid "If substitute stock is allowed, it will be used where stock of the primary part cannot be found" msgstr "如果允许使用替代品,则将在找不到主要零件库存的情况下使用" -#: templates/js/translated/build.js:2149 +#: templates/js/translated/build.js:2152 msgid "Allocate Stock Items" msgstr "分配库存物品" -#: templates/js/translated/build.js:2254 +#: templates/js/translated/build.js:2257 msgid "No builds matching query" msgstr "没有与查询匹配的构建" -#: templates/js/translated/build.js:2289 templates/js/translated/build.js:2652 +#: templates/js/translated/build.js:2292 templates/js/translated/build.js:2661 #: templates/js/translated/forms.js:2196 templates/js/translated/forms.js:2212 #: templates/js/translated/part.js:2322 templates/js/translated/part.js:2761 -#: templates/js/translated/stock.js:2068 templates/js/translated/stock.js:2795 +#: templates/js/translated/stock.js:2069 templates/js/translated/stock.js:2796 msgid "Select" msgstr "选择" -#: templates/js/translated/build.js:2303 +#: templates/js/translated/build.js:2306 msgid "Build order is overdue" msgstr "生产订单已逾期" -#: templates/js/translated/build.js:2385 templates/js/translated/stock.js:3126 +#: templates/js/translated/build.js:2388 templates/js/translated/stock.js:3127 msgid "No user information" msgstr "没有用户信息" -#: templates/js/translated/build.js:2561 -#: templates/js/translated/sales_order.js:1682 +#: templates/js/translated/build.js:2568 +#: templates/js/translated/sales_order.js:1663 msgid "Edit stock allocation" msgstr "编辑库存分配" -#: templates/js/translated/build.js:2562 -#: templates/js/translated/sales_order.js:1683 +#: templates/js/translated/build.js:2569 +#: templates/js/translated/sales_order.js:1664 msgid "Delete stock allocation" msgstr "删除库存分配" -#: templates/js/translated/build.js:2577 +#: templates/js/translated/build.js:2584 msgid "Edit Allocation" msgstr "编辑分配" -#: templates/js/translated/build.js:2589 +#: templates/js/translated/build.js:2596 msgid "Remove Allocation" msgstr "删除分配" -#: templates/js/translated/build.js:2628 +#: templates/js/translated/build.js:2636 msgid "build line" msgstr "生产行" -#: templates/js/translated/build.js:2629 +#: templates/js/translated/build.js:2637 msgid "build lines" msgstr "生产行" -#: templates/js/translated/build.js:2647 +#: templates/js/translated/build.js:2656 msgid "No build lines found" msgstr "未找到生产行" -#: templates/js/translated/build.js:2677 templates/js/translated/part.js:793 +#: templates/js/translated/build.js:2686 templates/js/translated/part.js:793 #: templates/js/translated/part.js:1209 msgid "Trackable part" msgstr "可追踪零件" -#: templates/js/translated/build.js:2720 +#: templates/js/translated/build.js:2729 msgid "Gets Inherited" msgstr "获取已继承的" -#: templates/js/translated/build.js:2730 +#: templates/js/translated/build.js:2748 msgid "Unit Quantity" msgstr "单位数量" -#: templates/js/translated/build.js:2782 -#: templates/js/translated/sales_order.js:1951 +#: templates/js/translated/build.js:2800 +#: templates/js/translated/sales_order.js:1932 msgid "Sufficient stock available" msgstr "充足的库存" -#: templates/js/translated/build.js:2837 +#: templates/js/translated/build.js:2855 msgid "Consumable Item" msgstr "消耗品" -#: templates/js/translated/build.js:2844 +#: templates/js/translated/build.js:2862 msgid "Tracked item" msgstr "跟踪项目" -#: templates/js/translated/build.js:2845 +#: templates/js/translated/build.js:2863 msgid "Allocate tracked items against individual build outputs" msgstr "根据单个构建输出分配跟踪项目" -#: templates/js/translated/build.js:2853 -#: templates/js/translated/sales_order.js:2052 +#: templates/js/translated/build.js:2871 +#: templates/js/translated/sales_order.js:2033 msgid "Build stock" msgstr "生产库存" -#: templates/js/translated/build.js:2858 templates/js/translated/stock.js:1953 +#: templates/js/translated/build.js:2876 templates/js/translated/stock.js:1954 msgid "Order stock" msgstr "订单库存" -#: templates/js/translated/build.js:2862 -#: templates/js/translated/sales_order.js:2046 +#: templates/js/translated/build.js:2880 +#: templates/js/translated/sales_order.js:2027 msgid "Allocate stock" msgstr "分配库存" -#: templates/js/translated/build.js:2866 +#: templates/js/translated/build.js:2884 msgid "Remove stock allocation" msgstr "移除库存分配" @@ -12641,7 +13006,7 @@ msgid "Add Manufacturer" msgstr "添加制造商" #: templates/js/translated/company.js:111 -#: templates/js/translated/company.js:213 +#: templates/js/translated/company.js:214 msgid "Add Manufacturer Part" msgstr "添加制造商零件" @@ -12649,231 +13014,231 @@ msgstr "添加制造商零件" msgid "Edit Manufacturer Part" msgstr "编辑制造商零件" -#: templates/js/translated/company.js:201 +#: templates/js/translated/company.js:202 #: templates/js/translated/purchase_order.js:93 msgid "Add Supplier" msgstr "添加供应商" -#: templates/js/translated/company.js:243 -#: templates/js/translated/purchase_order.js:318 +#: templates/js/translated/company.js:244 +#: templates/js/translated/purchase_order.js:301 msgid "Add Supplier Part" msgstr "添加供应商零件" -#: templates/js/translated/company.js:344 +#: templates/js/translated/company.js:345 msgid "All selected supplier parts will be deleted" msgstr "所有选中的供应商零件将被删除" -#: templates/js/translated/company.js:360 +#: templates/js/translated/company.js:361 msgid "Delete Supplier Parts" msgstr "删除供应商零件" -#: templates/js/translated/company.js:466 +#: templates/js/translated/company.js:467 msgid "Add new Company" msgstr "添加新公司" -#: templates/js/translated/company.js:546 +#: templates/js/translated/company.js:547 msgid "Parts Supplied" msgstr "零件已提供" -#: templates/js/translated/company.js:555 +#: templates/js/translated/company.js:556 msgid "Parts Manufactured" msgstr "零件已制造" -#: templates/js/translated/company.js:570 +#: templates/js/translated/company.js:571 msgid "No company information found" msgstr "未找到该公司信息" -#: templates/js/translated/company.js:619 +#: templates/js/translated/company.js:620 msgid "Create New Contact" msgstr "创建新的联系人" -#: templates/js/translated/company.js:635 -#: templates/js/translated/company.js:758 +#: templates/js/translated/company.js:636 +#: templates/js/translated/company.js:759 msgid "Edit Contact" msgstr "编辑联系人" -#: templates/js/translated/company.js:672 +#: templates/js/translated/company.js:673 msgid "All selected contacts will be deleted" msgstr "所有选定的联系人都将被删除" -#: templates/js/translated/company.js:678 -#: templates/js/translated/company.js:742 +#: templates/js/translated/company.js:679 +#: templates/js/translated/company.js:743 msgid "Role" msgstr "职位" -#: templates/js/translated/company.js:686 +#: templates/js/translated/company.js:687 msgid "Delete Contacts" msgstr "删除联系人" -#: templates/js/translated/company.js:717 +#: templates/js/translated/company.js:718 msgid "No contacts found" msgstr "未找到联系人" -#: templates/js/translated/company.js:730 +#: templates/js/translated/company.js:731 msgid "Phone Number" msgstr "电话号码" -#: templates/js/translated/company.js:736 +#: templates/js/translated/company.js:737 msgid "Email Address" msgstr "电子邮件地址" -#: templates/js/translated/company.js:762 +#: templates/js/translated/company.js:763 msgid "Delete Contact" msgstr "删除联系人" -#: templates/js/translated/company.js:859 +#: templates/js/translated/company.js:860 msgid "Create New Address" msgstr "创建新地址" -#: templates/js/translated/company.js:874 -#: templates/js/translated/company.js:1035 +#: templates/js/translated/company.js:875 +#: templates/js/translated/company.js:1036 msgid "Edit Address" msgstr "编辑地址" -#: templates/js/translated/company.js:909 +#: templates/js/translated/company.js:910 msgid "All selected addresses will be deleted" msgstr "所有选中的地址将被删除" -#: templates/js/translated/company.js:923 +#: templates/js/translated/company.js:924 msgid "Delete Addresses" msgstr "删除地址" -#: templates/js/translated/company.js:950 +#: templates/js/translated/company.js:951 msgid "No addresses found" msgstr "未找到地址" -#: templates/js/translated/company.js:989 +#: templates/js/translated/company.js:990 msgid "Postal city" msgstr "邮政编码" -#: templates/js/translated/company.js:995 +#: templates/js/translated/company.js:996 msgid "State/province" msgstr "省/市/自治区" -#: templates/js/translated/company.js:1007 +#: templates/js/translated/company.js:1008 msgid "Courier notes" msgstr "快递单" -#: templates/js/translated/company.js:1013 +#: templates/js/translated/company.js:1014 msgid "Internal notes" msgstr "内部备注" -#: templates/js/translated/company.js:1039 +#: templates/js/translated/company.js:1040 msgid "Delete Address" msgstr "删除地址" -#: templates/js/translated/company.js:1112 +#: templates/js/translated/company.js:1113 msgid "All selected manufacturer parts will be deleted" msgstr "所有选定的制造商零件都将被删除" -#: templates/js/translated/company.js:1127 +#: templates/js/translated/company.js:1128 msgid "Delete Manufacturer Parts" msgstr "删除制造商零件" -#: templates/js/translated/company.js:1161 +#: templates/js/translated/company.js:1162 msgid "All selected parameters will be deleted" msgstr "所有选定的参数都将被删除" -#: templates/js/translated/company.js:1175 +#: templates/js/translated/company.js:1176 msgid "Delete Parameters" msgstr "删除参数" -#: templates/js/translated/company.js:1191 -#: templates/js/translated/company.js:1479 templates/js/translated/part.js:2250 +#: templates/js/translated/company.js:1192 +#: templates/js/translated/company.js:1480 templates/js/translated/part.js:2250 msgid "Order parts" msgstr "订购零件" -#: templates/js/translated/company.js:1208 +#: templates/js/translated/company.js:1209 msgid "Delete manufacturer parts" msgstr "删除制造商零件" -#: templates/js/translated/company.js:1240 +#: templates/js/translated/company.js:1241 msgid "Manufacturer part actions" msgstr "制造商零件操作" -#: templates/js/translated/company.js:1259 +#: templates/js/translated/company.js:1260 msgid "No manufacturer parts found" msgstr "未找到制造商零件" -#: templates/js/translated/company.js:1279 -#: templates/js/translated/company.js:1567 templates/js/translated/part.js:801 +#: templates/js/translated/company.js:1280 +#: templates/js/translated/company.js:1568 templates/js/translated/part.js:801 #: templates/js/translated/part.js:1217 msgid "Template part" msgstr "模板零件" -#: templates/js/translated/company.js:1283 -#: templates/js/translated/company.js:1571 templates/js/translated/part.js:805 +#: templates/js/translated/company.js:1284 +#: templates/js/translated/company.js:1572 templates/js/translated/part.js:805 #: templates/js/translated/part.js:1221 msgid "Assembled part" msgstr "装配零件" -#: templates/js/translated/company.js:1403 templates/js/translated/part.js:1471 +#: templates/js/translated/company.js:1404 templates/js/translated/part.js:1471 msgid "No parameters found" msgstr "未找到参数" -#: templates/js/translated/company.js:1438 templates/js/translated/part.js:1534 +#: templates/js/translated/company.js:1439 templates/js/translated/part.js:1534 msgid "Edit parameter" msgstr "编辑参数" -#: templates/js/translated/company.js:1439 templates/js/translated/part.js:1535 +#: templates/js/translated/company.js:1440 templates/js/translated/part.js:1535 msgid "Delete parameter" msgstr "删除参数" -#: templates/js/translated/company.js:1456 templates/js/translated/part.js:1440 +#: templates/js/translated/company.js:1457 templates/js/translated/part.js:1440 msgid "Edit Parameter" msgstr "编辑参数" -#: templates/js/translated/company.js:1465 templates/js/translated/part.js:1556 +#: templates/js/translated/company.js:1466 templates/js/translated/part.js:1556 msgid "Delete Parameter" msgstr "删除参数" -#: templates/js/translated/company.js:1496 +#: templates/js/translated/company.js:1497 msgid "Delete supplier parts" msgstr "删除供应商零件" -#: templates/js/translated/company.js:1546 +#: templates/js/translated/company.js:1547 msgid "No supplier parts found" msgstr "未找到供应商零件" -#: templates/js/translated/company.js:1664 +#: templates/js/translated/company.js:1665 msgid "Base Units" msgstr "基础单位" -#: templates/js/translated/company.js:1694 +#: templates/js/translated/company.js:1695 msgid "Availability" msgstr "可用性" -#: templates/js/translated/company.js:1725 +#: templates/js/translated/company.js:1726 msgid "Edit supplier part" msgstr "编辑供应商零件" -#: templates/js/translated/company.js:1726 +#: templates/js/translated/company.js:1727 msgid "Delete supplier part" msgstr "删除供应商零件" -#: templates/js/translated/company.js:1779 +#: templates/js/translated/company.js:1780 #: templates/js/translated/pricing.js:694 msgid "Delete Price Break" msgstr "删除批发价" -#: templates/js/translated/company.js:1789 +#: templates/js/translated/company.js:1790 #: templates/js/translated/pricing.js:712 msgid "Edit Price Break" msgstr "编辑批发价" -#: templates/js/translated/company.js:1804 +#: templates/js/translated/company.js:1805 msgid "No price break information found" msgstr "找不到批发价信息" -#: templates/js/translated/company.js:1833 +#: templates/js/translated/company.js:1834 msgid "Last updated" msgstr "最近更新" -#: templates/js/translated/company.js:1840 +#: templates/js/translated/company.js:1841 msgid "Edit price break" msgstr "编辑批发价" -#: templates/js/translated/company.js:1841 +#: templates/js/translated/company.js:1842 msgid "Delete price break" msgstr "删除批发价" @@ -12977,19 +13342,19 @@ msgstr "字段名称" msgid "Select Columns" msgstr "选择列" -#: templates/js/translated/helpers.js:80 +#: templates/js/translated/helpers.js:81 msgid "YES" msgstr "是" -#: templates/js/translated/helpers.js:83 +#: templates/js/translated/helpers.js:84 msgid "NO" msgstr "否" -#: templates/js/translated/helpers.js:96 +#: templates/js/translated/helpers.js:97 msgid "True" msgstr "真" -#: templates/js/translated/helpers.js:97 +#: templates/js/translated/helpers.js:98 msgid "False" msgstr "假" @@ -13131,7 +13496,7 @@ msgid "Delete Line" msgstr "删除行" #: templates/js/translated/order.js:306 -#: templates/js/translated/purchase_order.js:2060 +#: templates/js/translated/purchase_order.js:2044 msgid "No line items found" msgstr "没有找到行项目" @@ -13366,19 +13731,19 @@ msgid "Delete Part Parameter Template" msgstr "删除零件参数模板" #: templates/js/translated/part.js:1723 -#: templates/js/translated/purchase_order.js:1724 +#: templates/js/translated/purchase_order.js:1708 msgid "No purchase orders found" msgstr "未发现采购订单" #: templates/js/translated/part.js:1867 -#: templates/js/translated/purchase_order.js:2223 +#: templates/js/translated/purchase_order.js:2207 #: templates/js/translated/return_order.js:754 -#: templates/js/translated/sales_order.js:1911 +#: templates/js/translated/sales_order.js:1892 msgid "This line item is overdue" msgstr "此行项目已逾期" #: templates/js/translated/part.js:1913 -#: templates/js/translated/purchase_order.js:2290 +#: templates/js/translated/purchase_order.js:2274 msgid "Receive line item" msgstr "收到行项目" @@ -13419,7 +13784,7 @@ msgid "No category" msgstr "无类别" #: templates/js/translated/part.js:2550 templates/js/translated/part.js:2680 -#: templates/js/translated/stock.js:2754 +#: templates/js/translated/stock.js:2755 msgid "Display as list" msgstr "按列表显示" @@ -13431,7 +13796,7 @@ msgstr "按网格显示" msgid "No subcategories found" msgstr "未找到子类别" -#: templates/js/translated/part.js:2700 templates/js/translated/stock.js:2774 +#: templates/js/translated/part.js:2700 templates/js/translated/stock.js:2775 msgid "Display as tree" msgstr "树状显示" @@ -13483,23 +13848,23 @@ msgstr "指定日期已过" msgid "Speculative" msgstr "可指定的" -#: templates/js/translated/part.js:3128 +#: templates/js/translated/part.js:3144 msgid "No scheduling information available for this part" msgstr "此零件没有可用的计划信息" -#: templates/js/translated/part.js:3134 +#: templates/js/translated/part.js:3150 msgid "Error fetching scheduling information for this part" msgstr "获取此零件的计划信息时出错" -#: templates/js/translated/part.js:3230 +#: templates/js/translated/part.js:3246 msgid "Scheduled Stock Quantities" msgstr "计划库存量" -#: templates/js/translated/part.js:3246 +#: templates/js/translated/part.js:3262 msgid "Maximum Quantity" msgstr "最大数量" -#: templates/js/translated/part.js:3291 +#: templates/js/translated/part.js:3307 msgid "Minimum Stock Level" msgstr "最低库存水平" @@ -13575,267 +13940,243 @@ msgstr "没有可用的购买历史数据" msgid "Purchase Price History" msgstr "购买价格历史记录" -#: templates/js/translated/pricing.js:894 +#: templates/js/translated/pricing.js:892 msgid "No sales history data available" msgstr "无可用销售历史数据" -#: templates/js/translated/pricing.js:916 +#: templates/js/translated/pricing.js:914 msgid "Sale Price History" msgstr "售出价格历史记录" -#: templates/js/translated/pricing.js:1005 +#: templates/js/translated/pricing.js:1003 msgid "No variant data available" msgstr "无可用的变体数据" -#: templates/js/translated/pricing.js:1045 +#: templates/js/translated/pricing.js:1043 msgid "Variant Part" msgstr "变体零件" -#: templates/js/translated/purchase_order.js:169 -msgid "Select purchase order to duplicate" -msgstr "选择要复制的采购订单" - -#: templates/js/translated/purchase_order.js:176 -msgid "Duplicate Line Items" -msgstr "复制行项目" - -#: templates/js/translated/purchase_order.js:177 -msgid "Duplicate all line items from the selected order" -msgstr "复制所选订单中的所有行项目" - -#: templates/js/translated/purchase_order.js:184 -msgid "Duplicate Extra Lines" -msgstr "复制额外行" - -#: templates/js/translated/purchase_order.js:185 -msgid "Duplicate extra line items from the selected order" -msgstr "从所选订单中复制额外的行项目" - -#: templates/js/translated/purchase_order.js:206 +#: templates/js/translated/purchase_order.js:188 msgid "Edit Purchase Order" msgstr "编辑采购订单" -#: templates/js/translated/purchase_order.js:223 +#: templates/js/translated/purchase_order.js:205 msgid "Duplication Options" msgstr "复制选项" -#: templates/js/translated/purchase_order.js:431 +#: templates/js/translated/purchase_order.js:414 msgid "Complete Purchase Order" msgstr "完成采购订单" -#: templates/js/translated/purchase_order.js:448 +#: templates/js/translated/purchase_order.js:431 #: templates/js/translated/return_order.js:210 -#: templates/js/translated/sales_order.js:552 +#: templates/js/translated/sales_order.js:511 msgid "Mark this order as complete?" msgstr "标记该订单为已完成?" -#: templates/js/translated/purchase_order.js:454 +#: templates/js/translated/purchase_order.js:437 msgid "All line items have been received" msgstr "已收到所有行项目" -#: templates/js/translated/purchase_order.js:459 +#: templates/js/translated/purchase_order.js:442 msgid "This order has line items which have not been marked as received." msgstr "此订单中有未标记为已收到的行项目。" -#: templates/js/translated/purchase_order.js:460 +#: templates/js/translated/purchase_order.js:443 msgid "Completing this order means that the order and line items will no longer be editable." msgstr "完成此订单意味着订单和行项目将不再可编辑。" -#: templates/js/translated/purchase_order.js:483 +#: templates/js/translated/purchase_order.js:466 msgid "Cancel Purchase Order" msgstr "取消采购订单" -#: templates/js/translated/purchase_order.js:488 +#: templates/js/translated/purchase_order.js:471 msgid "Are you sure you wish to cancel this purchase order?" msgstr "您确定要取消此采购订单吗?" -#: templates/js/translated/purchase_order.js:494 +#: templates/js/translated/purchase_order.js:477 msgid "This purchase order can not be cancelled" msgstr "此采购订单不能取消" -#: templates/js/translated/purchase_order.js:515 +#: templates/js/translated/purchase_order.js:498 #: templates/js/translated/return_order.js:164 msgid "After placing this order, line items will no longer be editable." msgstr "下此订单后,行项目将不再可编辑。" -#: templates/js/translated/purchase_order.js:520 +#: templates/js/translated/purchase_order.js:503 msgid "Issue Purchase Order" msgstr "发布采购订单" -#: templates/js/translated/purchase_order.js:612 +#: templates/js/translated/purchase_order.js:595 msgid "At least one purchaseable part must be selected" msgstr "必须至少选择一个可购买的零件" -#: templates/js/translated/purchase_order.js:637 +#: templates/js/translated/purchase_order.js:620 msgid "Quantity to order" msgstr "订购数量" -#: templates/js/translated/purchase_order.js:646 +#: templates/js/translated/purchase_order.js:629 msgid "New supplier part" msgstr "新建供应商零件" -#: templates/js/translated/purchase_order.js:664 +#: templates/js/translated/purchase_order.js:647 msgid "New purchase order" msgstr "新建采购订单" -#: templates/js/translated/purchase_order.js:705 +#: templates/js/translated/purchase_order.js:688 msgid "Add to purchase order" msgstr "添加到采购订单中" -#: templates/js/translated/purchase_order.js:755 +#: templates/js/translated/purchase_order.js:738 msgid "Merge" msgstr "合并" -#: templates/js/translated/purchase_order.js:859 +#: templates/js/translated/purchase_order.js:842 msgid "No matching supplier parts" msgstr "没有匹配的供应商零件" -#: templates/js/translated/purchase_order.js:878 +#: templates/js/translated/purchase_order.js:861 msgid "No matching purchase orders" msgstr "没有匹配的采购订单" -#: templates/js/translated/purchase_order.js:1073 +#: templates/js/translated/purchase_order.js:1056 #: templates/js/translated/return_order.js:490 msgid "Select Line Items" msgstr "选择行项目" -#: templates/js/translated/purchase_order.js:1074 +#: templates/js/translated/purchase_order.js:1057 #: templates/js/translated/return_order.js:491 msgid "At least one line item must be selected" msgstr "必须至少选择一行项目" -#: templates/js/translated/purchase_order.js:1104 +#: templates/js/translated/purchase_order.js:1087 msgid "Received Quantity" msgstr "接收数量" -#: templates/js/translated/purchase_order.js:1115 +#: templates/js/translated/purchase_order.js:1098 msgid "Quantity to receive" msgstr "待接收数量" -#: templates/js/translated/purchase_order.js:1170 +#: templates/js/translated/purchase_order.js:1153 #: templates/js/translated/stock.js:1215 msgid "Specify packaging for incoming stock items" msgstr "指定进货库存项的包装" -#: templates/js/translated/purchase_order.js:1223 +#: templates/js/translated/purchase_order.js:1206 msgid "Stock Status" msgstr "库存状态" -#: templates/js/translated/purchase_order.js:1237 +#: templates/js/translated/purchase_order.js:1220 msgid "Add barcode" msgstr "添加条形码" -#: templates/js/translated/purchase_order.js:1238 +#: templates/js/translated/purchase_order.js:1221 msgid "Remove barcode" msgstr "移除条形码" -#: templates/js/translated/purchase_order.js:1241 +#: templates/js/translated/purchase_order.js:1224 msgid "Specify location" msgstr "指定位置" -#: templates/js/translated/purchase_order.js:1249 +#: templates/js/translated/purchase_order.js:1232 msgid "Add batch code" msgstr "添加批号" -#: templates/js/translated/purchase_order.js:1259 +#: templates/js/translated/purchase_order.js:1242 msgid "Specify packaging" msgstr "指定包装" -#: templates/js/translated/purchase_order.js:1270 +#: templates/js/translated/purchase_order.js:1253 msgid "Add serial numbers" msgstr "添加序列号" -#: templates/js/translated/purchase_order.js:1281 +#: templates/js/translated/purchase_order.js:1264 msgid "Add note" msgstr "添加备注" -#: templates/js/translated/purchase_order.js:1338 +#: templates/js/translated/purchase_order.js:1321 msgid "Serials" msgstr "序列号" -#: templates/js/translated/purchase_order.js:1368 +#: templates/js/translated/purchase_order.js:1351 msgid "Order Code" msgstr "订单编码" -#: templates/js/translated/purchase_order.js:1370 +#: templates/js/translated/purchase_order.js:1353 msgid "Quantity to Receive" msgstr "接收数量" -#: templates/js/translated/purchase_order.js:1395 +#: templates/js/translated/purchase_order.js:1379 #: templates/js/translated/return_order.js:559 msgid "Confirm receipt of items" msgstr "确认收到物品" -#: templates/js/translated/purchase_order.js:1396 +#: templates/js/translated/purchase_order.js:1380 msgid "Receive Purchase Order Items" msgstr "接收采购订单项目" -#: templates/js/translated/purchase_order.js:1464 +#: templates/js/translated/purchase_order.js:1448 msgid "Scan Item Barcode" msgstr "扫描商品条形码" -#: templates/js/translated/purchase_order.js:1465 +#: templates/js/translated/purchase_order.js:1449 msgid "Scan barcode on incoming item (must not match any existing stock items)" msgstr "扫描进货条形码 (必须与任何现有的库存条目不匹配)" -#: templates/js/translated/purchase_order.js:1479 +#: templates/js/translated/purchase_order.js:1463 msgid "Invalid barcode data" msgstr "条形码数据无效" -#: templates/js/translated/purchase_order.js:1751 +#: templates/js/translated/purchase_order.js:1735 #: templates/js/translated/return_order.js:285 -#: templates/js/translated/sales_order.js:810 -#: templates/js/translated/sales_order.js:1034 +#: templates/js/translated/sales_order.js:769 +#: templates/js/translated/sales_order.js:1007 msgid "Order is overdue" msgstr "订单已逾期" -#: templates/js/translated/purchase_order.js:1913 +#: templates/js/translated/purchase_order.js:1897 msgid "All selected Line items will be deleted" msgstr "所有选定的行项目都将被删除" -#: templates/js/translated/purchase_order.js:1931 +#: templates/js/translated/purchase_order.js:1915 msgid "Delete selected Line items?" msgstr "是否删除所选行项目?" -#: templates/js/translated/purchase_order.js:1986 -#: templates/js/translated/sales_order.js:2106 +#: templates/js/translated/purchase_order.js:1970 +#: templates/js/translated/sales_order.js:2087 msgid "Duplicate Line Item" msgstr "复制行项目" -#: templates/js/translated/purchase_order.js:2001 +#: templates/js/translated/purchase_order.js:1985 #: templates/js/translated/return_order.js:475 #: templates/js/translated/return_order.js:667 -#: templates/js/translated/sales_order.js:2119 +#: templates/js/translated/sales_order.js:2100 msgid "Edit Line Item" msgstr "编辑行项目" -#: templates/js/translated/purchase_order.js:2012 +#: templates/js/translated/purchase_order.js:1996 #: templates/js/translated/return_order.js:680 -#: templates/js/translated/sales_order.js:2130 +#: templates/js/translated/sales_order.js:2111 msgid "Delete Line Item" msgstr "删除行项目" -#: templates/js/translated/purchase_order.js:2294 -#: templates/js/translated/sales_order.js:2060 +#: templates/js/translated/purchase_order.js:2278 +#: templates/js/translated/sales_order.js:2041 msgid "Duplicate line item" msgstr "复制行项目" -#: templates/js/translated/purchase_order.js:2295 +#: templates/js/translated/purchase_order.js:2279 #: templates/js/translated/return_order.js:799 -#: templates/js/translated/sales_order.js:2061 +#: templates/js/translated/sales_order.js:2042 msgid "Edit line item" msgstr "编辑行项目" -#: templates/js/translated/purchase_order.js:2296 +#: templates/js/translated/purchase_order.js:2280 #: templates/js/translated/return_order.js:803 -#: templates/js/translated/sales_order.js:2067 +#: templates/js/translated/sales_order.js:2048 msgid "Delete line item" msgstr "删除行项目" -#: templates/js/translated/report.js:49 -msgid "Print Report" -msgstr "打印报告" - #: templates/js/translated/report.js:68 msgid "Report print successful" msgstr "报告打印成功" @@ -13878,7 +14219,7 @@ msgid "No return orders found" msgstr "未找到退货订单" #: templates/js/translated/return_order.js:299 -#: templates/js/translated/sales_order.js:824 +#: templates/js/translated/sales_order.js:783 msgid "Invalid Customer" msgstr "无效的客户" @@ -13887,7 +14228,7 @@ msgid "Receive Return Order Items" msgstr "接收退货订单项目" #: templates/js/translated/return_order.js:691 -#: templates/js/translated/sales_order.js:2267 +#: templates/js/translated/sales_order.js:2248 msgid "No matching line items" msgstr "未找到匹配的行项目" @@ -13903,188 +14244,181 @@ msgstr "创建销售订单" msgid "Edit Sales Order" msgstr "编辑销售订单" -#: templates/js/translated/sales_order.js:291 +#: templates/js/translated/sales_order.js:288 msgid "No stock items have been allocated to this shipment" msgstr "此装运未分配任何库存物品" -#: templates/js/translated/sales_order.js:296 -msgid "The following stock items will be shipped" -msgstr "以下库存商品将发货" - -#: templates/js/translated/sales_order.js:336 +#: templates/js/translated/sales_order.js:294 msgid "Complete Shipment" msgstr "完成配送" -#: templates/js/translated/sales_order.js:360 +#: templates/js/translated/sales_order.js:318 msgid "Confirm Shipment" msgstr "确认配送" -#: templates/js/translated/sales_order.js:416 +#: templates/js/translated/sales_order.js:375 msgid "No pending shipments found" msgstr "未找到待处理的货物" -#: templates/js/translated/sales_order.js:420 +#: templates/js/translated/sales_order.js:379 msgid "No stock items have been allocated to pending shipments" msgstr "未将库存项目分配给待处理的发货" -#: templates/js/translated/sales_order.js:430 +#: templates/js/translated/sales_order.js:389 msgid "Complete Shipments" msgstr "完成配送" -#: templates/js/translated/sales_order.js:452 +#: templates/js/translated/sales_order.js:411 msgid "Skip" msgstr "跳过" -#: templates/js/translated/sales_order.js:484 +#: templates/js/translated/sales_order.js:443 msgid "Ship Sales Order" msgstr "发货销售订单" -#: templates/js/translated/sales_order.js:500 +#: templates/js/translated/sales_order.js:459 msgid "Ship this order?" msgstr "发送此订单?" -#: templates/js/translated/sales_order.js:506 +#: templates/js/translated/sales_order.js:465 msgid "Order cannot be shipped as there are incomplete shipments" msgstr "订单无法发货,因为发货不完整" -#: templates/js/translated/sales_order.js:513 +#: templates/js/translated/sales_order.js:472 msgid "This order has line items which have not been completed." msgstr "此订单有未完成的行项目。" -#: templates/js/translated/sales_order.js:514 +#: templates/js/translated/sales_order.js:473 msgid "Shipping this order means that the order and line items will no longer be editable." msgstr "运送此订单意味着订单和行项目将不再可编辑。" -#: templates/js/translated/sales_order.js:572 +#: templates/js/translated/sales_order.js:531 msgid "Issue this Sales Order?" msgstr "发出此销售订单?" -#: templates/js/translated/sales_order.js:577 +#: templates/js/translated/sales_order.js:536 msgid "Issue Sales Order" msgstr "发出销售订单" -#: templates/js/translated/sales_order.js:596 +#: templates/js/translated/sales_order.js:555 msgid "Cancel Sales Order" msgstr "取消销售订单" -#: templates/js/translated/sales_order.js:601 +#: templates/js/translated/sales_order.js:560 msgid "Cancelling this order means that the order will no longer be editable." msgstr "取消此订单意味着订单将不再可编辑。" -#: templates/js/translated/sales_order.js:655 +#: templates/js/translated/sales_order.js:614 msgid "Create New Shipment" msgstr "创建新的配送" -#: templates/js/translated/sales_order.js:764 +#: templates/js/translated/sales_order.js:723 msgid "No sales orders found" msgstr "未找到销售订单" -#: templates/js/translated/sales_order.js:944 +#: templates/js/translated/sales_order.js:907 msgid "Edit shipment" msgstr "编辑配送" -#: templates/js/translated/sales_order.js:947 +#: templates/js/translated/sales_order.js:910 msgid "Complete shipment" msgstr "完成配送" -#: templates/js/translated/sales_order.js:952 +#: templates/js/translated/sales_order.js:915 msgid "Delete shipment" msgstr "删除配送" -#: templates/js/translated/sales_order.js:969 +#: templates/js/translated/sales_order.js:932 msgid "Edit Shipment" msgstr "编辑配送" -#: templates/js/translated/sales_order.js:984 +#: templates/js/translated/sales_order.js:947 msgid "Delete Shipment" msgstr "删除配送" -#: templates/js/translated/sales_order.js:1017 +#: templates/js/translated/sales_order.js:989 msgid "No matching shipments found" msgstr "未找到匹配的货物" -#: templates/js/translated/sales_order.js:1042 +#: templates/js/translated/sales_order.js:1015 msgid "Shipment Reference" msgstr "配送参考" -#: templates/js/translated/sales_order.js:1066 -#: templates/js/translated/sales_order.js:1565 +#: templates/js/translated/sales_order.js:1032 +#: templates/js/translated/sales_order.js:1531 msgid "Not shipped" msgstr "未配送" -#: templates/js/translated/sales_order.js:1084 +#: templates/js/translated/sales_order.js:1050 msgid "Tracking" msgstr "追踪" -#: templates/js/translated/sales_order.js:1088 +#: templates/js/translated/sales_order.js:1054 msgid "Invoice" msgstr "发票" -#: templates/js/translated/sales_order.js:1255 +#: templates/js/translated/sales_order.js:1221 msgid "Add Shipment" msgstr "添加配送" -#: templates/js/translated/sales_order.js:1306 +#: templates/js/translated/sales_order.js:1272 msgid "Confirm stock allocation" msgstr "确认库存分配" -#: templates/js/translated/sales_order.js:1307 +#: templates/js/translated/sales_order.js:1273 msgid "Allocate Stock Items to Sales Order" msgstr "分配库存项到销售订单" -#: templates/js/translated/sales_order.js:1513 +#: templates/js/translated/sales_order.js:1479 msgid "No sales order allocations found" msgstr "未找到销售订单分配" -#: templates/js/translated/sales_order.js:1605 +#: templates/js/translated/sales_order.js:1571 msgid "Edit Stock Allocation" msgstr "编辑库存分配" -#: templates/js/translated/sales_order.js:1619 +#: templates/js/translated/sales_order.js:1585 msgid "Confirm Delete Operation" msgstr "确认删除操作" -#: templates/js/translated/sales_order.js:1620 +#: templates/js/translated/sales_order.js:1586 msgid "Delete Stock Allocation" msgstr "删除库存分配" -#: templates/js/translated/sales_order.js:1659 -#: templates/js/translated/sales_order.js:1746 +#: templates/js/translated/sales_order.js:1640 +#: templates/js/translated/sales_order.js:1727 #: templates/js/translated/stock.js:1861 msgid "Shipped to customer" msgstr "已配送到客户" -#: templates/js/translated/sales_order.js:1667 -#: templates/js/translated/sales_order.js:1755 +#: templates/js/translated/sales_order.js:1648 +#: templates/js/translated/sales_order.js:1736 msgid "Stock location not specified" msgstr "未指定库存地点" -#: templates/js/translated/sales_order.js:2044 -msgid "Allocate serial numbers" -msgstr "分配序列号" - -#: templates/js/translated/sales_order.js:2048 -msgid "Purchase stock" -msgstr "采购库存" - -#: templates/js/translated/sales_order.js:2057 -#: templates/js/translated/sales_order.js:2245 -msgid "Calculate price" -msgstr "计算价格" - -#: templates/js/translated/sales_order.js:2071 -msgid "Cannot be deleted as items have been shipped" -msgstr "无法删除,因为物品已发货" - -#: templates/js/translated/sales_order.js:2074 -msgid "Cannot be deleted as items have been allocated" -msgstr "无法删除,因为项目已分配" - -#: templates/js/translated/sales_order.js:2145 +#: templates/js/translated/sales_order.js:2025 +#: templates/js/translated/sales_order.js:2126 msgid "Allocate Serial Numbers" msgstr "分配序列号" -#: templates/js/translated/sales_order.js:2253 +#: templates/js/translated/sales_order.js:2029 +msgid "Purchase stock" +msgstr "采购库存" + +#: templates/js/translated/sales_order.js:2038 +#: templates/js/translated/sales_order.js:2226 +msgid "Calculate price" +msgstr "计算价格" + +#: templates/js/translated/sales_order.js:2052 +msgid "Cannot be deleted as items have been shipped" +msgstr "无法删除,因为物品已发货" + +#: templates/js/translated/sales_order.js:2055 +msgid "Cannot be deleted as items have been allocated" +msgstr "无法删除,因为项目已分配" + +#: templates/js/translated/sales_order.js:2234 msgid "Update Unit Price" msgstr "更新单位价格" @@ -14209,11 +14543,8 @@ msgid "Find Serial Number" msgstr "查找序列号" #: templates/js/translated/stock.js:603 templates/js/translated/stock.js:604 -msgid "Enter serial number" -msgstr "输入序列号" - #: templates/js/translated/stock.js:620 -msgid "Enter a serial number" +msgid "Enter serial number" msgstr "输入序列号" #: templates/js/translated/stock.js:640 @@ -14284,7 +14615,7 @@ msgstr "拿出" msgid "Add Stock" msgstr "添加库存" -#: templates/js/translated/stock.js:1049 users/models.py:396 +#: templates/js/translated/stock.js:1049 users/models.py:398 msgid "Add" msgstr "添加" @@ -14308,7 +14639,7 @@ msgstr "调整批次代码" msgid "Adjust packaging" msgstr "调整包装" -#: templates/js/translated/stock.js:1256 templates/js/translated/stock.js:3382 +#: templates/js/translated/stock.js:1256 templates/js/translated/stock.js:3383 msgid "Select Stock Items" msgstr "选择库存项" @@ -14320,18 +14651,6 @@ msgstr "至少选择一个可用库存项目" msgid "Confirm stock adjustment" msgstr "确认库存调整" -#: templates/js/translated/stock.js:1448 -msgid "PASS" -msgstr "合格" - -#: templates/js/translated/stock.js:1450 -msgid "FAIL" -msgstr "不合格" - -#: templates/js/translated/stock.js:1455 -msgid "NO RESULT" -msgstr "无结果" - #: templates/js/translated/stock.js:1535 msgid "Pass test" msgstr "通过测试" @@ -14388,216 +14707,216 @@ msgstr "分配给销售订单" msgid "No stock location set" msgstr "未设置库存位置" -#: templates/js/translated/stock.js:1927 +#: templates/js/translated/stock.js:1928 msgid "Change stock status" msgstr "更改库存状态" -#: templates/js/translated/stock.js:1936 +#: templates/js/translated/stock.js:1937 msgid "Merge stock" msgstr "合并库存" -#: templates/js/translated/stock.js:1985 +#: templates/js/translated/stock.js:1986 msgid "Delete stock" msgstr "删除库存" -#: templates/js/translated/stock.js:2038 +#: templates/js/translated/stock.js:2039 msgid "stock items" msgstr "库存项" -#: templates/js/translated/stock.js:2043 +#: templates/js/translated/stock.js:2044 msgid "Scan to location" msgstr "扫描到位置" -#: templates/js/translated/stock.js:2054 +#: templates/js/translated/stock.js:2055 msgid "Stock Actions" msgstr "库存操作" -#: templates/js/translated/stock.js:2098 +#: templates/js/translated/stock.js:2099 msgid "Load installed items" msgstr "加载已安装的项目" -#: templates/js/translated/stock.js:2176 +#: templates/js/translated/stock.js:2177 msgid "Stock item is in production" msgstr "库存项正在生产" -#: templates/js/translated/stock.js:2181 +#: templates/js/translated/stock.js:2182 msgid "Stock item assigned to sales order" msgstr "分配给销售订单的库存项目" -#: templates/js/translated/stock.js:2184 +#: templates/js/translated/stock.js:2185 msgid "Stock item assigned to customer" msgstr "分配给客户的库存项" -#: templates/js/translated/stock.js:2187 +#: templates/js/translated/stock.js:2188 msgid "Serialized stock item has been allocated" msgstr "已分配序列化库存项" -#: templates/js/translated/stock.js:2189 +#: templates/js/translated/stock.js:2190 msgid "Stock item has been fully allocated" msgstr "库存项目已完全分配" -#: templates/js/translated/stock.js:2191 +#: templates/js/translated/stock.js:2192 msgid "Stock item has been partially allocated" msgstr "库存项目已部分分配" -#: templates/js/translated/stock.js:2194 +#: templates/js/translated/stock.js:2195 msgid "Stock item has been installed in another item" msgstr "库存项目已安装在另一个项目中" -#: templates/js/translated/stock.js:2196 +#: templates/js/translated/stock.js:2197 msgid "Stock item has been consumed by a build order" msgstr "库存项已被生产订单消耗" -#: templates/js/translated/stock.js:2200 +#: templates/js/translated/stock.js:2201 msgid "Stock item has expired" msgstr "库存项已过期" -#: templates/js/translated/stock.js:2202 +#: templates/js/translated/stock.js:2203 msgid "Stock item will expire soon" msgstr "库存项即将过期" -#: templates/js/translated/stock.js:2207 +#: templates/js/translated/stock.js:2208 msgid "Stock item has been rejected" msgstr "库存项已被拒绝" -#: templates/js/translated/stock.js:2209 +#: templates/js/translated/stock.js:2210 msgid "Stock item is lost" msgstr "库存项丢失了" -#: templates/js/translated/stock.js:2211 +#: templates/js/translated/stock.js:2212 msgid "Stock item is destroyed" msgstr "库存项已销毁" -#: templates/js/translated/stock.js:2215 +#: templates/js/translated/stock.js:2216 #: templates/js/translated/table_filters.js:357 msgid "Depleted" msgstr "已用完" -#: templates/js/translated/stock.js:2380 +#: templates/js/translated/stock.js:2381 msgid "Supplier part not specified" msgstr "未指定供应商零件" -#: templates/js/translated/stock.js:2427 +#: templates/js/translated/stock.js:2428 msgid "Stock Value" msgstr "库存值" -#: templates/js/translated/stock.js:2555 +#: templates/js/translated/stock.js:2556 msgid "No stock items matching query" msgstr "没有符合查询的库存项目" -#: templates/js/translated/stock.js:2658 +#: templates/js/translated/stock.js:2659 msgid "stock locations" msgstr "库存地点" -#: templates/js/translated/stock.js:2813 +#: templates/js/translated/stock.js:2814 msgid "Load Sublocations" msgstr "加载次级地点" -#: templates/js/translated/stock.js:2930 +#: templates/js/translated/stock.js:2931 msgid "Details" msgstr "详情" -#: templates/js/translated/stock.js:2934 +#: templates/js/translated/stock.js:2935 msgid "No changes" msgstr "无更改" -#: templates/js/translated/stock.js:2946 +#: templates/js/translated/stock.js:2947 msgid "Part information unavailable" msgstr "零件信息不可用" -#: templates/js/translated/stock.js:2968 +#: templates/js/translated/stock.js:2969 msgid "Location no longer exists" msgstr "位置不再存在" -#: templates/js/translated/stock.js:2985 +#: templates/js/translated/stock.js:2986 msgid "Build order no longer exists" msgstr "生产订单不再存在" -#: templates/js/translated/stock.js:3000 +#: templates/js/translated/stock.js:3001 msgid "Purchase order no longer exists" msgstr "采购订单不再存在" -#: templates/js/translated/stock.js:3017 +#: templates/js/translated/stock.js:3018 msgid "Sales Order no longer exists" msgstr "销售订单不再存在" -#: templates/js/translated/stock.js:3034 +#: templates/js/translated/stock.js:3035 msgid "Return Order no longer exists" msgstr "退货订单已不存在" -#: templates/js/translated/stock.js:3053 +#: templates/js/translated/stock.js:3054 msgid "Customer no longer exists" msgstr "客户已不存在" -#: templates/js/translated/stock.js:3071 +#: templates/js/translated/stock.js:3072 msgid "Stock item no longer exists" msgstr "库存项已不存在" -#: templates/js/translated/stock.js:3089 +#: templates/js/translated/stock.js:3090 msgid "Added" msgstr "已添加" -#: templates/js/translated/stock.js:3097 +#: templates/js/translated/stock.js:3098 msgid "Removed" msgstr "已删除" -#: templates/js/translated/stock.js:3169 +#: templates/js/translated/stock.js:3170 msgid "No installed items" msgstr "没有已安装的项目" -#: templates/js/translated/stock.js:3223 templates/js/translated/stock.js:3259 +#: templates/js/translated/stock.js:3224 templates/js/translated/stock.js:3260 msgid "Uninstall Stock Item" msgstr "卸载库存项" -#: templates/js/translated/stock.js:3280 +#: templates/js/translated/stock.js:3281 msgid "Select stock item to uninstall" msgstr "选择要卸载的库存项" -#: templates/js/translated/stock.js:3301 +#: templates/js/translated/stock.js:3302 msgid "Install another stock item into this item" msgstr "在此项中安装另一个库存项" -#: templates/js/translated/stock.js:3302 +#: templates/js/translated/stock.js:3303 msgid "Stock items can only be installed if they meet the following criteria" msgstr "只有满足以下条件,才能安装库存项目" -#: templates/js/translated/stock.js:3304 +#: templates/js/translated/stock.js:3305 msgid "The Stock Item links to a Part which is the BOM for this Stock Item" msgstr "库存项链接到一个零件,该零件是此库存项的物料清单" -#: templates/js/translated/stock.js:3305 +#: templates/js/translated/stock.js:3306 msgid "The Stock Item is currently available in stock" msgstr "该库存项目前有库存" -#: templates/js/translated/stock.js:3306 +#: templates/js/translated/stock.js:3307 msgid "The Stock Item is not already installed in another item" msgstr "库存项目尚未安装在其他项目中" -#: templates/js/translated/stock.js:3307 +#: templates/js/translated/stock.js:3308 msgid "The Stock Item is tracked by either a batch code or serial number" msgstr "库存项被批号或序列号跟踪" -#: templates/js/translated/stock.js:3320 +#: templates/js/translated/stock.js:3321 msgid "Select part to install" msgstr "选择要安装的零件" -#: templates/js/translated/stock.js:3383 +#: templates/js/translated/stock.js:3384 msgid "Select one or more stock items" msgstr "选择一个或多个库存项目" -#: templates/js/translated/stock.js:3396 +#: templates/js/translated/stock.js:3397 msgid "Selected stock items" msgstr "选定的库存项" -#: templates/js/translated/stock.js:3400 +#: templates/js/translated/stock.js:3401 msgid "Change Stock Status" msgstr "更改库存状态" -#: templates/js/translated/stock.js:3477 +#: templates/js/translated/stock.js:3478 msgid "This week" msgstr "本周" -#: templates/js/translated/stock.js:3485 +#: templates/js/translated/stock.js:3486 msgid "This month" msgstr "本月" @@ -14614,7 +14933,7 @@ msgstr "订单状态" #: templates/js/translated/table_filters.js:161 msgid "Testable Part" -msgstr "" +msgstr "可测试零件" #: templates/js/translated/table_filters.js:165 msgid "Trackable Part" @@ -14734,10 +15053,6 @@ msgstr "显示有库存的商品" msgid "Show items which are in production" msgstr "显示正在生产的项目" -#: templates/js/translated/table_filters.js:372 -msgid "Include Variants" -msgstr "包含变体" - #: templates/js/translated/table_filters.js:373 msgid "Include stock items for variant parts" msgstr "包括变体零件的库存项" @@ -14934,7 +15249,7 @@ msgstr "採購" #: templates/navbar.html:57 msgid "Sell" -msgstr "銷售" +msgstr "销售" #: templates/navbar.html:121 msgid "Show Notifications" @@ -15012,10 +15327,6 @@ msgstr "账户登录失败" msgid "An error occurred while attempting to login via your social network account." msgstr "尝试通过您的社交网络帐户登录时出错。" -#: templates/socialaccount/authentication_error.html:13 -msgid "Contact your system administrator for further information." -msgstr "有关详细信息,请与系统管理员联系。" - #: templates/socialaccount/login.html:13 #, python-format msgid "Connect %(provider)s" @@ -15141,27 +15452,27 @@ msgstr "是" msgid "No" msgstr "否" -#: users/admin.py:104 +#: users/admin.py:101 msgid "Users" msgstr "用户" -#: users/admin.py:105 +#: users/admin.py:102 msgid "Select which users are assigned to this group" msgstr "选择分配给此组的用户" -#: users/admin.py:249 +#: users/admin.py:246 msgid "The following users are members of multiple groups" msgstr "以下用户是多个组的成员" -#: users/admin.py:283 +#: users/admin.py:280 msgid "Personal info" msgstr "个人信息" -#: users/admin.py:285 +#: users/admin.py:282 msgid "Permissions" msgstr "权限" -#: users/admin.py:288 +#: users/admin.py:285 msgid "Important dates" msgstr "重要日期" @@ -15205,35 +15516,35 @@ msgstr "最近使用令牌的时间" msgid "Revoked" msgstr "撤销" -#: users/models.py:379 +#: users/models.py:381 msgid "Permission set" msgstr "权限设置" -#: users/models.py:388 +#: users/models.py:390 msgid "Group" msgstr "组" -#: users/models.py:392 +#: users/models.py:394 msgid "View" msgstr "查看" -#: users/models.py:392 +#: users/models.py:394 msgid "Permission to view items" msgstr "查看项目的权限" -#: users/models.py:396 +#: users/models.py:398 msgid "Permission to add items" msgstr "添加项目的权限" -#: users/models.py:400 +#: users/models.py:402 msgid "Change" msgstr "更改" -#: users/models.py:402 +#: users/models.py:404 msgid "Permissions to edit items" msgstr "编辑项目的权限" -#: users/models.py:408 +#: users/models.py:410 msgid "Permission to delete items" msgstr "删除项目的权限" diff --git a/src/backend/InvenTree/locale/zh_Hant/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/zh_Hant/LC_MESSAGES/django.po index c005383153..69b6c8774d 100644 --- a/src/backend/InvenTree/locale/zh_Hant/LC_MESSAGES/django.po +++ b/src/backend/InvenTree/locale/zh_Hant/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-08-20 01:22+0000\n" -"PO-Revision-Date: 2024-08-20 19:51\n" +"POT-Creation-Date: 2024-11-04 03:11+0000\n" +"PO-Revision-Date: 2024-11-04 03:14\n" "Last-Translator: \n" "Language-Team: Chinese Traditional\n" "Language: zh_TW\n" @@ -14,568 +14,588 @@ msgstr "" "X-Crowdin-Project: inventree\n" "X-Crowdin-Project-ID: 452300\n" "X-Crowdin-Language: zh-TW\n" -"X-Crowdin-File: /[inventree.InvenTree] l10/src/backend/InvenTree/locale/en/LC_MESSAGES/django.po\n" -"X-Crowdin-File-ID: 216\n" +"X-Crowdin-File: /src/backend/InvenTree/locale/en/LC_MESSAGES/django.po\n" +"X-Crowdin-File-ID: 250\n" -#: InvenTree/api.py:269 +#: InvenTree/api.py:270 msgid "API endpoint not found" -msgstr "" +msgstr "未找到 API 端點" -#: InvenTree/api.py:502 +#: InvenTree/api.py:387 +msgid "Invalid items list provided" +msgstr "提供了無效的單位" + +#: InvenTree/api.py:396 +msgid "Invalid filters provided" +msgstr "提供了無效的過濾器" + +#: InvenTree/api.py:401 +msgid "No items found to delete" +msgstr "未找到要刪除的項目" + +#: InvenTree/api.py:515 msgid "User does not have permission to view this model" -msgstr "" +msgstr "用户沒有權限查閲當前模型。" -#: InvenTree/conversion.py:160 +#: InvenTree/conversion.py:161 #, python-brace-format msgid "Invalid unit provided ({unit})" -msgstr "" +msgstr "提供了無效的單位 ({unit})" -#: InvenTree/conversion.py:177 +#: InvenTree/conversion.py:178 msgid "No value provided" -msgstr "" +msgstr "沒有提供數值" -#: InvenTree/conversion.py:204 +#: InvenTree/conversion.py:205 #, python-brace-format msgid "Could not convert {original} to {unit}" -msgstr "" +msgstr "不能將 {original} 轉換到 {unit}" -#: InvenTree/conversion.py:206 -msgid "Invalid quantity supplied" -msgstr "" +#: InvenTree/conversion.py:207 InvenTree/conversion.py:221 +#: InvenTree/helpers.py:505 order/models.py:589 order/models.py:832 +msgid "Invalid quantity provided" +msgstr "提供的數量無效" -#: InvenTree/conversion.py:220 -#, python-brace-format -msgid "Invalid quantity supplied ({exc})" -msgstr "" - -#: InvenTree/exceptions.py:108 +#: InvenTree/exceptions.py:104 msgid "Error details can be found in the admin panel" -msgstr "" +msgstr "在管理面板中可以找到錯誤詳細信息" -#: InvenTree/fields.py:136 +#: InvenTree/fields.py:135 msgid "Enter date" -msgstr "" +msgstr "輸入日期" -#: InvenTree/fields.py:205 InvenTree/models.py:929 build/serializers.py:468 -#: build/serializers.py:546 build/templates/build/sidebar.html:29 -#: company/models.py:836 +#: InvenTree/fields.py:204 InvenTree/models.py:928 build/serializers.py:512 +#: build/serializers.py:590 build/templates/build/sidebar.html:29 +#: company/models.py:833 #: company/templates/company/manufacturer_part_sidebar.html:11 #: company/templates/company/sidebar.html:37 -#: company/templates/company/supplier_part_sidebar.html:11 order/models.py:1380 +#: company/templates/company/supplier_part_sidebar.html:11 order/models.py:1397 #: order/templates/order/po_sidebar.html:11 #: order/templates/order/return_order_sidebar.html:9 #: order/templates/order/so_sidebar.html:17 part/admin.py:59 -#: part/models.py:3297 part/templates/part/part_sidebar.html:65 +#: part/models.py:3348 part/templates/part/part_sidebar.html:65 #: report/templates/report/inventree_build_order_report.html:172 -#: stock/admin.py:230 stock/models.py:2375 stock/models.py:2563 -#: stock/serializers.py:698 stock/serializers.py:856 stock/serializers.py:982 -#: stock/serializers.py:1032 stock/serializers.py:1343 -#: stock/serializers.py:1432 stock/serializers.py:1597 +#: stock/admin.py:231 stock/models.py:2494 stock/models.py:2679 +#: stock/serializers.py:725 stock/serializers.py:887 stock/serializers.py:1013 +#: stock/serializers.py:1063 stock/serializers.py:1374 +#: stock/serializers.py:1463 stock/serializers.py:1628 #: stock/templates/stock/stock_sidebar.html:25 #: templates/js/translated/barcode.js:143 templates/js/translated/bom.js:1265 -#: templates/js/translated/company.js:1684 templates/js/translated/order.js:372 +#: templates/js/translated/company.js:1685 templates/js/translated/order.js:372 #: templates/js/translated/part.js:1087 -#: templates/js/translated/purchase_order.js:2270 +#: templates/js/translated/purchase_order.js:2254 #: templates/js/translated/return_order.js:774 -#: templates/js/translated/sales_order.js:1103 -#: templates/js/translated/sales_order.js:2018 -#: templates/js/translated/stock.js:1621 templates/js/translated/stock.js:2513 +#: templates/js/translated/sales_order.js:1069 +#: templates/js/translated/sales_order.js:1999 +#: templates/js/translated/stock.js:1621 templates/js/translated/stock.js:2514 msgid "Notes" -msgstr "" +msgstr "備註" -#: InvenTree/format.py:164 +#: InvenTree/format.py:162 #, python-brace-format msgid "Value '{name}' does not appear in pattern format" -msgstr "" +msgstr "值' {name}' 未出現在模式格式中" -#: InvenTree/format.py:175 +#: InvenTree/format.py:173 msgid "Provided value does not match required pattern: " -msgstr "" +msgstr "提供的值與所需模式不匹配:" #: InvenTree/forms.py:129 msgid "Enter password" -msgstr "" +msgstr "輸入密碼" #: InvenTree/forms.py:130 msgid "Enter new password" -msgstr "" +msgstr "輸入新密碼" #: InvenTree/forms.py:139 msgid "Confirm password" -msgstr "" +msgstr "確認密碼" #: InvenTree/forms.py:140 msgid "Confirm new password" -msgstr "" +msgstr "確認新密碼" #: InvenTree/forms.py:144 msgid "Old password" -msgstr "" +msgstr "舊密碼" #: InvenTree/forms.py:183 msgid "Email (again)" -msgstr "" +msgstr "電子郵件 (重複)" #: InvenTree/forms.py:187 msgid "Email address confirmation" -msgstr "" +msgstr "郵箱地址已確認" #: InvenTree/forms.py:210 msgid "You must type the same email each time." -msgstr "" +msgstr "您必須每次輸入相同的電子郵件。" #: InvenTree/forms.py:221 msgid "MFA Registration is disabled." -msgstr "" +msgstr "MFA註冊已禁用。" #: InvenTree/forms.py:259 InvenTree/forms.py:267 msgid "The provided primary email address is not valid." -msgstr "" +msgstr "提供的主電子郵件地址無效。" -#: InvenTree/forms.py:274 +#: InvenTree/forms.py:273 msgid "The provided email domain is not approved." -msgstr "" +msgstr "提供的郵箱域名未被批准。" -#: InvenTree/forms.py:403 +#: InvenTree/forms.py:402 msgid "Registration is disabled." +msgstr "註冊已禁用。" + +#: InvenTree/helpers.py:509 +msgid "Cannot serialize more than 1000 items at once" msgstr "" -#: InvenTree/helpers.py:491 order/models.py:567 order/models.py:810 -msgid "Invalid quantity provided" -msgstr "" - -#: InvenTree/helpers.py:499 +#: InvenTree/helpers.py:515 msgid "Empty serial number string" -msgstr "" +msgstr "序號為空白" -#: InvenTree/helpers.py:528 +#: InvenTree/helpers.py:544 msgid "Duplicate serial" -msgstr "" +msgstr "複製序列號" -#: InvenTree/helpers.py:560 InvenTree/helpers.py:603 +#: InvenTree/helpers.py:576 InvenTree/helpers.py:619 InvenTree/helpers.py:637 +#: InvenTree/helpers.py:644 InvenTree/helpers.py:663 #, python-brace-format -msgid "Invalid group range: {group}" +msgid "Invalid group: {group}" msgstr "" -#: InvenTree/helpers.py:591 +#: InvenTree/helpers.py:607 #, python-brace-format msgid "Group range {group} exceeds allowed quantity ({expected_quantity})" -msgstr "" +msgstr "組範圍 {group} 超出了允許的數量 ({expected_quantity})" -#: InvenTree/helpers.py:621 InvenTree/helpers.py:628 InvenTree/helpers.py:647 -#, python-brace-format -msgid "Invalid group sequence: {group}" -msgstr "" - -#: InvenTree/helpers.py:657 +#: InvenTree/helpers.py:673 msgid "No serial numbers found" -msgstr "" +msgstr "未找到序列號" -#: InvenTree/helpers.py:662 +#: InvenTree/helpers.py:678 msgid "Number of unique serial numbers ({len(serials)}) must match quantity ({expected_quantity})" -msgstr "" +msgstr "唯一序列號的數量 ({len(serials)}) 必須與數量匹配 ({expected_quantity})" -#: InvenTree/helpers.py:780 +#: InvenTree/helpers.py:796 msgid "Remove HTML tags from this value" +msgstr "從這個值中刪除 HTML 標籤" + +#: InvenTree/helpers.py:881 +msgid "Data contains prohibited markdown content" msgstr "" -#: InvenTree/helpers_model.py:133 +#: InvenTree/helpers_model.py:130 msgid "Connection error" -msgstr "" +msgstr "連接錯誤" -#: InvenTree/helpers_model.py:138 InvenTree/helpers_model.py:145 +#: InvenTree/helpers_model.py:135 InvenTree/helpers_model.py:142 msgid "Server responded with invalid status code" -msgstr "" +msgstr "服務器響應狀態碼無效" -#: InvenTree/helpers_model.py:141 +#: InvenTree/helpers_model.py:138 msgid "Exception occurred" -msgstr "" +msgstr "發生異常" + +#: InvenTree/helpers_model.py:148 +msgid "Server responded with invalid Content-Length value" +msgstr "服務器響應的內容長度值無效" #: InvenTree/helpers_model.py:151 -msgid "Server responded with invalid Content-Length value" -msgstr "" - -#: InvenTree/helpers_model.py:154 msgid "Image size is too large" -msgstr "" +msgstr "圖片尺寸過大" -#: InvenTree/helpers_model.py:166 +#: InvenTree/helpers_model.py:163 msgid "Image download exceeded maximum size" -msgstr "" +msgstr "圖片下載超出最大尺寸" -#: InvenTree/helpers_model.py:171 +#: InvenTree/helpers_model.py:168 msgid "Remote server returned empty response" -msgstr "" +msgstr "遠程服務器返回了空響應" -#: InvenTree/helpers_model.py:179 +#: InvenTree/helpers_model.py:176 msgid "Supplied URL is not a valid image file" -msgstr "" - -#: InvenTree/locales.py:18 -msgid "Arabic" -msgstr "" - -#: InvenTree/locales.py:19 -msgid "Bulgarian" -msgstr "" +msgstr "提供的 URL 不是一個有效的圖片文件" #: InvenTree/locales.py:20 -msgid "Czech" -msgstr "" +msgid "Arabic" +msgstr "阿拉伯語" #: InvenTree/locales.py:21 -msgid "Danish" -msgstr "" +msgid "Bulgarian" +msgstr "Bulgarian" #: InvenTree/locales.py:22 -msgid "German" -msgstr "" +msgid "Czech" +msgstr "Czech" #: InvenTree/locales.py:23 -msgid "Greek" -msgstr "" +msgid "Danish" +msgstr "Danish" #: InvenTree/locales.py:24 -msgid "English" -msgstr "" +msgid "German" +msgstr "German" #: InvenTree/locales.py:25 -msgid "Spanish" -msgstr "" +msgid "Greek" +msgstr "Greek" #: InvenTree/locales.py:26 -msgid "Spanish (Mexican)" -msgstr "" +msgid "English" +msgstr "English" #: InvenTree/locales.py:27 -msgid "Estonian" -msgstr "" +msgid "Spanish" +msgstr "Spanish" #: InvenTree/locales.py:28 -msgid "Farsi / Persian" -msgstr "" +msgid "Spanish (Mexican)" +msgstr "Spanish (Mexican)" #: InvenTree/locales.py:29 -msgid "Finnish" -msgstr "" +msgid "Estonian" +msgstr "愛沙尼亞語" #: InvenTree/locales.py:30 -msgid "French" -msgstr "" +msgid "Farsi / Persian" +msgstr "Farsi / Persian" #: InvenTree/locales.py:31 -msgid "Hebrew" -msgstr "" +msgid "Finnish" +msgstr "Finnish" #: InvenTree/locales.py:32 -msgid "Hindi" -msgstr "" +msgid "French" +msgstr "French" #: InvenTree/locales.py:33 -msgid "Hungarian" -msgstr "" +msgid "Hebrew" +msgstr "Hebrew" #: InvenTree/locales.py:34 -msgid "Italian" -msgstr "" +msgid "Hindi" +msgstr "Hindi" #: InvenTree/locales.py:35 -msgid "Japanese" -msgstr "" +msgid "Hungarian" +msgstr "Hungarian" #: InvenTree/locales.py:36 -msgid "Korean" -msgstr "" +msgid "Italian" +msgstr "Italian" #: InvenTree/locales.py:37 -msgid "Latvian" -msgstr "" +msgid "Japanese" +msgstr "Japanese" #: InvenTree/locales.py:38 -msgid "Dutch" -msgstr "" +msgid "Korean" +msgstr "Korean" #: InvenTree/locales.py:39 -msgid "Norwegian" -msgstr "" +msgid "Lithuanian" +msgstr "立陶宛語" #: InvenTree/locales.py:40 -msgid "Polish" -msgstr "" +msgid "Latvian" +msgstr "Latvian" #: InvenTree/locales.py:41 -msgid "Portuguese" -msgstr "" +msgid "Dutch" +msgstr "Dutch" #: InvenTree/locales.py:42 -msgid "Portuguese (Brazilian)" -msgstr "" +msgid "Norwegian" +msgstr "Norwegian" #: InvenTree/locales.py:43 -msgid "Romanian" -msgstr "" +msgid "Polish" +msgstr "Polish" #: InvenTree/locales.py:44 -msgid "Russian" -msgstr "" +msgid "Portuguese" +msgstr "Portuguese" #: InvenTree/locales.py:45 -msgid "Slovak" -msgstr "" +msgid "Portuguese (Brazilian)" +msgstr "Portuguese (Brazilian)" #: InvenTree/locales.py:46 -msgid "Slovenian" -msgstr "" +msgid "Romanian" +msgstr "羅馬尼亞語" #: InvenTree/locales.py:47 -msgid "Serbian" -msgstr "" +msgid "Russian" +msgstr "Russian" #: InvenTree/locales.py:48 -msgid "Swedish" -msgstr "" +msgid "Slovak" +msgstr "Slovak" #: InvenTree/locales.py:49 -msgid "Thai" -msgstr "" +msgid "Slovenian" +msgstr "Slovenian" #: InvenTree/locales.py:50 -msgid "Turkish" -msgstr "" +msgid "Serbian" +msgstr "Serbian" #: InvenTree/locales.py:51 -msgid "Ukrainian" -msgstr "" +msgid "Swedish" +msgstr "Swedish" #: InvenTree/locales.py:52 -msgid "Vietnamese" -msgstr "" +msgid "Thai" +msgstr "Thai" #: InvenTree/locales.py:53 -msgid "Chinese (Simplified)" -msgstr "" +msgid "Turkish" +msgstr "Turkish" #: InvenTree/locales.py:54 +msgid "Ukrainian" +msgstr "烏克蘭語" + +#: InvenTree/locales.py:55 +msgid "Vietnamese" +msgstr "Vietnamese" + +#: InvenTree/locales.py:56 +msgid "Chinese (Simplified)" +msgstr "中文 (簡體)" + +#: InvenTree/locales.py:57 msgid "Chinese (Traditional)" -msgstr "" +msgstr "中文 (繁體)" #: InvenTree/magic_login.py:28 -#, python-brace-format -msgid "[{site_name}] Log in to the app" +msgid "Log in to the app" msgstr "" -#: InvenTree/magic_login.py:38 InvenTree/serializers.py:415 -#: company/models.py:136 company/templates/company/company_base.html:138 +#: InvenTree/magic_login.py:38 InvenTree/serializers.py:416 +#: company/models.py:133 company/templates/company/company_base.html:138 #: templates/InvenTree/settings/user.html:49 -#: templates/js/translated/company.js:677 +#: templates/js/translated/company.js:678 msgid "Email" -msgstr "" +msgstr "電子郵件" -#: InvenTree/models.py:103 +#: InvenTree/models.py:105 msgid "Error running plugin validation" -msgstr "" +msgstr "驗證外掛程式時發生錯誤" -#: InvenTree/models.py:172 +#: InvenTree/models.py:174 msgid "Metadata must be a python dict object" -msgstr "" +msgstr "Metadata必須是一個Python Dictionary物件" -#: InvenTree/models.py:178 +#: InvenTree/models.py:180 msgid "Plugin Metadata" -msgstr "" +msgstr "外掛程式Metadata" -#: InvenTree/models.py:179 +#: InvenTree/models.py:181 msgid "JSON metadata field, for use by external plugins" -msgstr "" +msgstr "外掛程式使用的JSON Metadata欄位" -#: InvenTree/models.py:409 +#: InvenTree/models.py:408 msgid "Improperly formatted pattern" -msgstr "" +msgstr "格式錯誤" -#: InvenTree/models.py:416 +#: InvenTree/models.py:415 msgid "Unknown format key specified" -msgstr "" +msgstr "指定了不明的格式鍵值" -#: InvenTree/models.py:422 +#: InvenTree/models.py:421 msgid "Missing required format key" -msgstr "" +msgstr "缺少必須的格式鍵值" -#: InvenTree/models.py:433 +#: InvenTree/models.py:432 msgid "Reference field cannot be empty" -msgstr "" +msgstr "參考欄位不能空白" -#: InvenTree/models.py:441 +#: InvenTree/models.py:440 msgid "Reference must match required pattern" -msgstr "" +msgstr "參考欄位並須符合格式" -#: InvenTree/models.py:472 +#: InvenTree/models.py:471 msgid "Reference number is too large" -msgstr "" +msgstr "參考編號過大" -#: InvenTree/models.py:723 +#: InvenTree/models.py:722 msgid "Duplicate names cannot exist under the same parent" -msgstr "" +msgstr "同一個上層元件下不能有重複的名字" -#: InvenTree/models.py:740 +#: InvenTree/models.py:739 msgid "Invalid choice" -msgstr "" +msgstr "無效的選項" -#: InvenTree/models.py:770 common/models.py:2702 common/models.py:3132 -#: common/serializers.py:412 company/models.py:593 machine/models.py:24 -#: part/models.py:983 part/models.py:3764 plugin/models.py:51 -#: report/models.py:149 stock/models.py:77 +#: InvenTree/models.py:769 common/models.py:2766 common/models.py:3193 +#: common/models.py:3413 common/serializers.py:460 company/models.py:590 +#: machine/models.py:24 part/models.py:1044 part/models.py:3815 +#: plugin/models.py:51 report/models.py:149 stock/models.py:83 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/notifications.html:17 #: templates/InvenTree/settings/plugin.html:83 #: templates/InvenTree/settings/plugin_settings.html:22 #: templates/InvenTree/settings/settings_staff_js.html:67 #: templates/InvenTree/settings/settings_staff_js.html:454 -#: templates/js/translated/company.js:676 -#: templates/js/translated/company.js:724 -#: templates/js/translated/company.js:913 -#: templates/js/translated/company.js:1165 -#: templates/js/translated/company.js:1413 templates/js/translated/part.js:1193 +#: templates/js/translated/company.js:677 +#: templates/js/translated/company.js:725 +#: templates/js/translated/company.js:914 +#: templates/js/translated/company.js:1166 +#: templates/js/translated/company.js:1414 templates/js/translated/part.js:1193 #: templates/js/translated/part.js:1481 templates/js/translated/part.js:1617 -#: templates/js/translated/part.js:2768 templates/js/translated/stock.js:2801 +#: templates/js/translated/part.js:2768 templates/js/translated/stock.js:2802 msgid "Name" -msgstr "" +msgstr "名稱" -#: InvenTree/models.py:776 build/models.py:250 -#: build/templates/build/detail.html:24 common/models.py:156 -#: company/models.py:521 company/models.py:827 +#: InvenTree/models.py:775 build/models.py:251 +#: build/templates/build/detail.html:24 common/models.py:159 +#: company/models.py:518 company/models.py:824 #: company/templates/company/company_base.html:77 #: company/templates/company/manufacturer_part.html:75 -#: company/templates/company/supplier_part.html:107 order/models.py:288 -#: order/models.py:1413 part/admin.py:305 part/admin.py:411 part/models.py:1006 -#: part/models.py:3779 part/templates/part/category.html:79 -#: part/templates/part/part_base.html:170 +#: company/templates/company/supplier_part.html:108 order/models.py:295 +#: order/models.py:1430 part/admin.py:305 part/admin.py:411 part/models.py:1067 +#: part/models.py:3830 part/templates/part/category.html:79 +#: part/templates/part/part_base.html:171 #: part/templates/part/part_scheduling.html:12 report/models.py:155 -#: report/models.py:509 report/models.py:535 +#: report/models.py:517 report/models.py:543 #: report/templates/report/inventree_build_order_report.html:117 -#: stock/admin.py:54 stock/models.py:83 stock/templates/stock/location.html:122 +#: stock/admin.py:54 stock/models.py:89 stock/templates/stock/location.html:123 #: templates/InvenTree/settings/notifications.html:19 #: templates/InvenTree/settings/plugin_settings.html:27 #: templates/InvenTree/settings/settings_staff_js.html:170 #: templates/InvenTree/settings/settings_staff_js.html:459 #: templates/js/translated/bom.js:633 templates/js/translated/bom.js:963 -#: templates/js/translated/build.js:2311 templates/js/translated/company.js:519 -#: templates/js/translated/company.js:1330 -#: templates/js/translated/company.js:1641 templates/js/translated/index.js:119 +#: templates/js/translated/build.js:2314 templates/js/translated/company.js:520 +#: templates/js/translated/company.js:1331 +#: templates/js/translated/company.js:1642 templates/js/translated/index.js:119 #: templates/js/translated/order.js:323 templates/js/translated/part.js:1245 #: templates/js/translated/part.js:1490 templates/js/translated/part.js:1628 #: templates/js/translated/part.js:1965 templates/js/translated/part.js:2361 #: templates/js/translated/part.js:2803 templates/js/translated/part.js:2915 #: templates/js/translated/plugin.js:80 -#: templates/js/translated/purchase_order.js:1776 -#: templates/js/translated/purchase_order.js:1919 -#: templates/js/translated/purchase_order.js:2092 +#: templates/js/translated/purchase_order.js:1760 +#: templates/js/translated/purchase_order.js:1903 +#: templates/js/translated/purchase_order.js:2076 #: templates/js/translated/return_order.js:313 -#: templates/js/translated/sales_order.js:838 -#: templates/js/translated/sales_order.js:1848 -#: templates/js/translated/stock.js:1600 templates/js/translated/stock.js:2143 -#: templates/js/translated/stock.js:2832 templates/js/translated/stock.js:2915 +#: templates/js/translated/sales_order.js:797 +#: templates/js/translated/sales_order.js:1829 +#: templates/js/translated/stock.js:1600 templates/js/translated/stock.js:2144 +#: templates/js/translated/stock.js:2833 templates/js/translated/stock.js:2916 msgid "Description" -msgstr "" +msgstr "描述" -#: InvenTree/models.py:777 stock/models.py:84 +#: InvenTree/models.py:776 stock/models.py:90 msgid "Description (optional)" -msgstr "" +msgstr "描述(選填)" -#: InvenTree/models.py:792 templates/js/translated/part.js:2812 -#: templates/js/translated/stock.js:2841 +#: InvenTree/models.py:791 common/models.py:3546 +#: templates/js/translated/part.js:2812 templates/js/translated/stock.js:2842 msgid "Path" -msgstr "" +msgstr "路徑" -#: InvenTree/models.py:929 +#: InvenTree/models.py:928 msgid "Markdown notes (optional)" -msgstr "" +msgstr "Markdown 註記(選填)" + +#: InvenTree/models.py:959 +msgid "Barcode Data" +msgstr "條碼資料" #: InvenTree/models.py:960 -msgid "Barcode Data" -msgstr "" - -#: InvenTree/models.py:961 msgid "Third party barcode data" -msgstr "" +msgstr "第三方條碼資料" + +#: InvenTree/models.py:966 +msgid "Barcode Hash" +msgstr "條碼雜湊值" #: InvenTree/models.py:967 -msgid "Barcode Hash" -msgstr "" - -#: InvenTree/models.py:968 msgid "Unique hash of barcode data" -msgstr "" +msgstr "條碼資料的唯一雜湊值" -#: InvenTree/models.py:1035 +#: InvenTree/models.py:1034 msgid "Existing barcode found" +msgstr "發現現有條碼" + +#: InvenTree/models.py:1112 +msgid "Task Failure" msgstr "" -#: InvenTree/models.py:1078 +#: InvenTree/models.py:1114 +#, python-brace-format +msgid "Background worker task '{instance.func}' failed after {n} attempts" +msgstr "" + +#: InvenTree/models.py:1142 msgid "Server Error" -msgstr "" +msgstr "伺服器錯誤" -#: InvenTree/models.py:1079 +#: InvenTree/models.py:1143 msgid "An error has been logged by the server." -msgstr "" +msgstr "伺服器紀錄了一個錯誤。" -#: InvenTree/serializers.py:63 part/models.py:4387 +#: InvenTree/serializers.py:63 part/models.py:4444 msgid "Must be a valid number" -msgstr "" +msgstr "必須是有效的數字" -#: InvenTree/serializers.py:100 company/models.py:186 -#: company/templates/company/company_base.html:112 part/models.py:3115 +#: InvenTree/serializers.py:100 company/models.py:183 +#: company/templates/company/company_base.html:112 part/models.py:3166 #: templates/InvenTree/settings/settings_staff_js.html:44 #: templates/currency_data.html:5 msgid "Currency" -msgstr "" +msgstr "貨幣" #: InvenTree/serializers.py:103 msgid "Select currency from available options" -msgstr "" +msgstr "從可用選項中選擇貨幣" -#: InvenTree/serializers.py:407 templates/InvenTree/settings/user.html:33 +#: InvenTree/serializers.py:405 templates/InvenTree/settings/user.html:33 msgid "Username" -msgstr "" +msgstr "用户名" -#: InvenTree/serializers.py:409 templates/InvenTree/settings/user.html:37 +#: InvenTree/serializers.py:408 templates/InvenTree/settings/user.html:37 msgid "First Name" -msgstr "" +msgstr "名" -#: InvenTree/serializers.py:409 +#: InvenTree/serializers.py:408 msgid "First name of the user" -msgstr "" +msgstr "用户的名字(不包括姓氏)" #: InvenTree/serializers.py:412 templates/InvenTree/settings/user.html:41 msgid "Last Name" -msgstr "" +msgstr "姓" #: InvenTree/serializers.py:412 msgid "Last name of the user" -msgstr "" +msgstr "用户的姓氏" -#: InvenTree/serializers.py:415 +#: InvenTree/serializers.py:416 msgid "Email address of the user" -msgstr "" +msgstr "用户的電子郵件地址" -#: InvenTree/serializers.py:439 +#: InvenTree/serializers.py:441 msgid "Staff" -msgstr "" +msgstr "職員" -#: InvenTree/serializers.py:439 +#: InvenTree/serializers.py:441 msgid "Does this user have staff permissions" -msgstr "" +msgstr "此用户是否擁有員工權限" -#: InvenTree/serializers.py:442 +#: InvenTree/serializers.py:445 msgid "Superuser" -msgstr "" +msgstr "超級用户" -#: InvenTree/serializers.py:442 +#: InvenTree/serializers.py:445 msgid "Is this user a superuser" -msgstr "" +msgstr "此用户是否為超級用户" -#: InvenTree/serializers.py:445 common/models.py:2707 company/models.py:163 -#: company/models.py:801 machine/models.py:39 part/admin.py:88 -#: part/models.py:1189 plugin/models.py:66 -#: templates/js/translated/company.js:523 +#: InvenTree/serializers.py:449 common/models.py:2771 company/models.py:160 +#: company/models.py:798 machine/models.py:39 part/admin.py:88 +#: part/models.py:1250 plugin/models.py:66 +#: templates/js/translated/company.js:524 #: templates/js/translated/table_filters.js:134 #: templates/js/translated/table_filters.js:226 #: templates/js/translated/table_filters.js:513 @@ -583,320 +603,247 @@ msgstr "" #: templates/js/translated/table_filters.js:719 #: templates/js/translated/table_filters.js:808 users/models.py:182 msgid "Active" -msgstr "" +msgstr "激活" -#: InvenTree/serializers.py:445 +#: InvenTree/serializers.py:449 msgid "Is this user account active" -msgstr "" +msgstr "此用户帳户是否已激活" -#: InvenTree/serializers.py:463 +#: InvenTree/serializers.py:467 msgid "You do not have permission to change this user role." -msgstr "" - -#: InvenTree/serializers.py:475 -msgid "Only superusers can create new users" -msgstr "" - -#: InvenTree/serializers.py:494 -msgid "Your account has been created." -msgstr "" - -#: InvenTree/serializers.py:496 -msgid "Please use the password reset function to login" -msgstr "" +msgstr "您沒有更改這個使用者角色的權限" #: InvenTree/serializers.py:503 +msgid "Only superusers can create new users" +msgstr "只有管理員帳户可以建立新的使用者" + +#: InvenTree/serializers.py:523 +msgid "Your account has been created." +msgstr "您的帳號已經建立完成。" + +#: InvenTree/serializers.py:525 +msgid "Please use the password reset function to login" +msgstr "請使用重設密碼功能來登入" + +#: InvenTree/serializers.py:531 msgid "Welcome to InvenTree" -msgstr "" +msgstr "歡迎使用 InvenTree" -#: InvenTree/serializers.py:561 +#: InvenTree/serializers.py:594 msgid "Invalid value" -msgstr "" +msgstr "無效值" -#: InvenTree/serializers.py:581 importer/models.py:63 +#: InvenTree/serializers.py:614 importer/models.py:64 msgid "Data File" -msgstr "" +msgstr "數據文件" -#: InvenTree/serializers.py:582 +#: InvenTree/serializers.py:615 msgid "Select data file for upload" +msgstr "選擇要上傳的數據文件" + +#: InvenTree/serializers.py:632 common/files.py:63 +msgid "Unsupported file format" msgstr "" -#: InvenTree/serializers.py:599 -msgid "Unsupported file type" -msgstr "" - -#: InvenTree/serializers.py:605 +#: InvenTree/serializers.py:638 msgid "File is too large" -msgstr "" +msgstr "文件過大" -#: InvenTree/serializers.py:626 +#: InvenTree/serializers.py:659 msgid "No columns found in file" -msgstr "" +msgstr "在文件中沒有找到列" -#: InvenTree/serializers.py:629 +#: InvenTree/serializers.py:662 msgid "No data rows found in file" -msgstr "" +msgstr "在文件中沒有找到數據行" -#: InvenTree/serializers.py:742 +#: InvenTree/serializers.py:774 msgid "No data rows provided" -msgstr "" +msgstr "沒有提供數據行" -#: InvenTree/serializers.py:745 +#: InvenTree/serializers.py:777 msgid "No data columns supplied" -msgstr "" +msgstr "沒有提供數據列" -#: InvenTree/serializers.py:812 +#: InvenTree/serializers.py:843 #, python-brace-format msgid "Missing required column: '{name}'" -msgstr "" +msgstr "缺少必需的列:'{name}'" -#: InvenTree/serializers.py:821 +#: InvenTree/serializers.py:852 #, python-brace-format msgid "Duplicate column: '{col}'" -msgstr "" +msgstr "重複列: '{col}'" -#: InvenTree/serializers.py:861 +#: InvenTree/serializers.py:891 msgid "Remote Image" -msgstr "" +msgstr "遠程圖片" -#: InvenTree/serializers.py:862 +#: InvenTree/serializers.py:892 msgid "URL of remote image file" -msgstr "" +msgstr "遠程圖片文件的 URL" -#: InvenTree/serializers.py:880 +#: InvenTree/serializers.py:910 msgid "Downloading images from remote URL is not enabled" -msgstr "" +msgstr "未啓用從遠程 URL下載圖片" -#: InvenTree/status.py:66 part/serializers.py:1246 -msgid "Background worker check failed" -msgstr "" - -#: InvenTree/status.py:70 -msgid "Email backend not configured" -msgstr "" - -#: InvenTree/status.py:73 -msgid "InvenTree system health checks failed" -msgstr "" +#: InvenTree/serializers.py:917 +msgid "Failed to download image from remote URL" +msgstr "從遠程URL下載圖像失敗" #: InvenTree/templatetags/inventree_extras.py:184 msgid "Unknown database" -msgstr "" +msgstr "未知的資料庫" -#: InvenTree/validators.py:32 InvenTree/validators.py:34 +#: InvenTree/validators.py:32 msgid "Invalid physical unit" -msgstr "" +msgstr "無效的物理單位" -#: InvenTree/validators.py:40 +#: InvenTree/validators.py:38 msgid "Not a valid currency code" -msgstr "" +msgstr "無效的貨幣代碼" -#: InvenTree/validators.py:118 InvenTree/validators.py:134 +#: InvenTree/validators.py:115 InvenTree/validators.py:131 msgid "Overage value must not be negative" -msgstr "" +msgstr "損失值不能為負" -#: InvenTree/validators.py:136 +#: InvenTree/validators.py:133 msgid "Overage must not exceed 100%" -msgstr "" +msgstr "損失率不能超過100%" -#: InvenTree/validators.py:142 +#: InvenTree/validators.py:139 msgid "Invalid value for overage" -msgstr "" +msgstr "無效的損失值" -#: InvenTree/views.py:400 templates/InvenTree/settings/user.html:23 +#: InvenTree/views.py:399 templates/InvenTree/settings/user.html:23 msgid "Edit User Information" -msgstr "" +msgstr "編輯使用者資訊" -#: InvenTree/views.py:412 templates/InvenTree/settings/user.html:20 +#: InvenTree/views.py:411 templates/InvenTree/settings/user.html:20 msgid "Set Password" -msgstr "" +msgstr "設定密碼" -#: InvenTree/views.py:434 +#: InvenTree/views.py:433 msgid "Password fields must match" -msgstr "" +msgstr "密碼必須相符" -#: InvenTree/views.py:442 +#: InvenTree/views.py:441 msgid "Wrong password provided" -msgstr "" +msgstr "密碼錯誤" -#: InvenTree/views.py:650 templates/navbar.html:160 +#: InvenTree/views.py:645 templates/navbar.html:160 msgid "System Information" -msgstr "" +msgstr "系統資訊" -#: InvenTree/views.py:657 templates/navbar.html:171 +#: InvenTree/views.py:652 templates/navbar.html:171 msgid "About InvenTree" -msgstr "" +msgstr "關於InvenTree" -#: build/api.py:51 part/api.py:156 stock/api.py:343 -msgid "Cascade" -msgstr "" - -#: build/api.py:64 build/models.py:261 -#: build/templates/build/build_base.html:191 +#: build/api.py:54 build/models.py:262 +#: build/templates/build/build_base.html:192 #: build/templates/build/detail.html:87 msgid "Parent Build" -msgstr "" +msgstr "上層生產工單" -#: build/api.py:89 order/api.py:92 templates/js/translated/table_filters.js:101 +#: build/api.py:58 build/api.py:625 order/api.py:396 order/api.py:611 +#: order/api.py:990 order/api.py:1187 +#: templates/js/translated/table_filters.js:372 +msgid "Include Variants" +msgstr "包含變體" + +#: build/api.py:93 +msgid "Ancestor Build" +msgstr "可測試部分" + +#: build/api.py:112 order/api.py:90 +#: templates/js/translated/table_filters.js:101 #: templates/js/translated/table_filters.js:549 #: templates/js/translated/table_filters.js:633 #: templates/js/translated/table_filters.js:674 msgid "Assigned to me" -msgstr "" +msgstr "分配給我" -#: build/api.py:106 build/templates/build/build_base.html:205 +#: build/api.py:129 build/templates/build/build_base.html:206 #: build/templates/build/detail.html:115 #: report/templates/report/inventree_build_order_report.html:152 #: templates/js/translated/table_filters.js:552 msgid "Issued By" -msgstr "" +msgstr "發佈者" -#: build/api.py:125 +#: build/api.py:148 msgid "Assigned To" -msgstr "" +msgstr "負責人" -#: build/api.py:301 +#: build/api.py:310 msgid "Build must be cancelled before it can be deleted" -msgstr "" +msgstr "工單必須被取消才能被刪除" -#: build/api.py:345 build/serializers.py:1288 part/models.py:4265 +#: build/api.py:354 build/serializers.py:1342 part/models.py:4322 #: templates/js/translated/bom.js:997 templates/js/translated/bom.js:1037 -#: templates/js/translated/build.js:2702 +#: templates/js/translated/build.js:2711 #: templates/js/translated/table_filters.js:197 #: templates/js/translated/table_filters.js:586 msgid "Consumable" -msgstr "" +msgstr "耗材" -#: build/api.py:346 build/serializers.py:1289 part/models.py:4259 +#: build/api.py:355 build/serializers.py:1343 part/models.py:4316 #: part/templates/part/upload_bom.html:58 templates/js/translated/bom.js:1001 -#: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2693 +#: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2702 #: templates/js/translated/table_filters.js:193 #: templates/js/translated/table_filters.js:222 #: templates/js/translated/table_filters.js:590 msgid "Optional" -msgstr "" +msgstr "非必須項目" -#: build/api.py:347 common/models.py:1489 part/admin.py:91 part/admin.py:428 -#: part/models.py:1154 part/serializers.py:1575 +#: build/api.py:356 common/models.py:1558 part/admin.py:91 part/admin.py:428 +#: part/models.py:1215 part/serializers.py:1633 #: templates/js/translated/bom.js:1639 #: templates/js/translated/table_filters.js:337 #: templates/js/translated/table_filters.js:729 msgid "Assembly" -msgstr "" +msgstr "裝配" -#: build/api.py:348 templates/js/translated/table_filters.js:415 +#: build/api.py:357 templates/js/translated/table_filters.js:415 #: templates/js/translated/table_filters.js:582 msgid "Tracked" -msgstr "" +msgstr "追蹤中" -#: build/api.py:349 build/serializers.py:1290 part/models.py:1172 +#: build/api.py:358 build/serializers.py:1344 part/models.py:1233 #: templates/js/translated/table_filters.js:146 #: templates/js/translated/table_filters.js:779 msgid "Testable" -msgstr "" +msgstr "可測試" -#: build/api.py:351 part/admin.py:144 templates/js/translated/build.js:1917 -#: templates/js/translated/build.js:2820 -#: templates/js/translated/sales_order.js:1965 +#: build/api.py:360 order/api.py:779 part/admin.py:144 +#: templates/js/translated/build.js:1920 templates/js/translated/build.js:2838 +#: templates/js/translated/sales_order.js:1946 #: templates/js/translated/table_filters.js:574 msgid "Allocated" -msgstr "" +msgstr "已分配" -#: build/api.py:359 company/models.py:891 company/serializers.py:395 -#: company/templates/company/supplier_part.html:114 +#: build/api.py:368 company/models.py:888 company/serializers.py:399 +#: company/templates/company/supplier_part.html:115 #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:17 -#: templates/js/translated/bom.js:1162 templates/js/translated/build.js:2752 +#: templates/js/translated/bom.js:1162 templates/js/translated/build.js:2770 #: templates/js/translated/index.js:123 -#: templates/js/translated/model_renderers.js:235 +#: templates/js/translated/model_renderers.js:238 #: templates/js/translated/part.js:695 templates/js/translated/part.js:697 #: templates/js/translated/part.js:702 #: templates/js/translated/table_filters.js:347 #: templates/js/translated/table_filters.js:578 msgid "Available" -msgstr "" +msgstr "可用數量" -#: build/models.py:86 build/templates/build/build_base.html:9 -#: build/templates/build/build_base.html:27 -#: report/templates/report/inventree_build_order_report.html:105 -#: stock/serializers.py:84 templates/email/build_order_completed.html:16 -#: templates/email/overdue_build_order.html:15 -#: templates/js/translated/build.js:1145 templates/js/translated/stock.js:2976 -msgid "Build Order" -msgstr "" - -#: build/models.py:87 build/templates/build/build_base.html:13 -#: build/templates/build/index.html:8 build/templates/build/index.html:12 -#: order/templates/order/sales_order_detail.html:111 -#: order/templates/order/so_sidebar.html:13 -#: part/templates/part/part_sidebar.html:22 templates/InvenTree/index.html:196 -#: templates/InvenTree/search.html:141 -#: templates/InvenTree/settings/sidebar.html:55 -#: templates/js/translated/search.js:186 users/models.py:207 -msgid "Build Orders" -msgstr "" - -#: build/models.py:135 -msgid "Assembly BOM has not been validated" -msgstr "" - -#: build/models.py:142 -msgid "Build order cannot be created for an inactive part" -msgstr "" - -#: build/models.py:149 -msgid "Build order cannot be created for an unlocked part" -msgstr "" - -#: build/models.py:163 -msgid "Invalid choice for parent build" -msgstr "" - -#: build/models.py:174 order/models.py:239 -msgid "Responsible user or group must be specified" -msgstr "" - -#: build/models.py:180 -msgid "Build order part cannot be changed" -msgstr "" - -#: build/models.py:241 -msgid "Build Order Reference" -msgstr "" - -#: build/models.py:242 build/serializers.py:1287 order/models.py:467 -#: order/models.py:978 order/models.py:1373 order/models.py:2135 -#: part/admin.py:414 part/models.py:4280 part/templates/part/upload_bom.html:54 -#: report/templates/report/inventree_bill_of_materials_report.html:139 -#: report/templates/report/inventree_purchase_order_report.html:28 -#: report/templates/report/inventree_return_order_report.html:26 -#: report/templates/report/inventree_sales_order_report.html:28 -#: templates/js/translated/bom.js:770 templates/js/translated/bom.js:973 -#: templates/js/translated/build.js:1011 templates/js/translated/build.js:2685 -#: templates/js/translated/order.js:316 templates/js/translated/pricing.js:386 -#: templates/js/translated/purchase_order.js:2135 -#: templates/js/translated/return_order.js:727 -#: templates/js/translated/sales_order.js:1854 -msgid "Reference" -msgstr "" - -#: build/models.py:253 -msgid "Brief description of the build (optional)" -msgstr "" - -#: build/models.py:262 -msgid "BuildOrder to which this build is allocated" -msgstr "" - -#: build/models.py:267 build/serializers.py:1278 -#: build/templates/build/build_base.html:105 -#: build/templates/build/detail.html:29 company/models.py:1046 order/api.py:767 -#: order/models.py:1503 order/models.py:1658 order/models.py:1659 -#: part/api.py:1509 part/api.py:1813 part/models.py:424 part/models.py:3126 -#: part/models.py:3270 part/models.py:3418 part/models.py:3439 -#: part/models.py:3461 part/models.py:3597 part/models.py:3937 -#: part/models.py:4100 part/models.py:4231 part/models.py:4592 -#: part/serializers.py:1192 part/serializers.py:1836 +#: build/api.py:640 build/models.py:268 build/serializers.py:1330 +#: build/templates/build/build_base.html:106 +#: build/templates/build/detail.html:29 company/models.py:1043 order/api.py:775 +#: order/api.py:1003 order/models.py:1519 order/models.py:1674 +#: order/models.py:1675 part/api.py:1495 part/api.py:1802 part/models.py:419 +#: part/models.py:3177 part/models.py:3321 part/models.py:3469 +#: part/models.py:3490 part/models.py:3512 part/models.py:3648 +#: part/models.py:3995 part/models.py:4158 part/models.py:4288 +#: part/models.py:4654 part/serializers.py:1245 part/serializers.py:1898 #: part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 #: part/templates/part/upload_bom.html:52 @@ -906,1183 +853,1264 @@ msgstr "" #: report/templates/report/inventree_purchase_order_report.html:27 #: report/templates/report/inventree_return_order_report.html:24 #: report/templates/report/inventree_sales_order_report.html:27 +#: report/templates/report/inventree_sales_order_shipment_report.html:28 #: report/templates/report/inventree_stock_location_report.html:102 -#: stock/serializers.py:111 stock/serializers.py:159 stock/serializers.py:446 -#: stock/serializers.py:916 templates/InvenTree/search.html:82 +#: stock/serializers.py:112 stock/serializers.py:160 stock/serializers.py:456 +#: stock/serializers.py:947 templates/InvenTree/search.html:82 #: templates/email/build_order_completed.html:17 #: templates/email/build_order_required_stock.html:17 #: templates/email/low_stock_notification.html:15 #: templates/email/overdue_build_order.html:16 #: templates/js/translated/barcode.js:577 templates/js/translated/bom.js:632 #: templates/js/translated/bom.js:769 templates/js/translated/bom.js:905 -#: templates/js/translated/build.js:1002 templates/js/translated/build.js:1485 -#: templates/js/translated/build.js:1916 templates/js/translated/build.js:2334 -#: templates/js/translated/build.js:2507 templates/js/translated/company.js:348 -#: templates/js/translated/company.js:1116 -#: templates/js/translated/company.js:1271 -#: templates/js/translated/company.js:1559 templates/js/translated/index.js:109 +#: templates/js/translated/build.js:1005 templates/js/translated/build.js:1488 +#: templates/js/translated/build.js:1919 templates/js/translated/build.js:2337 +#: templates/js/translated/build.js:2514 templates/js/translated/company.js:349 +#: templates/js/translated/company.js:1117 +#: templates/js/translated/company.js:1272 +#: templates/js/translated/company.js:1560 templates/js/translated/index.js:109 #: templates/js/translated/part.js:1950 templates/js/translated/part.js:2022 #: templates/js/translated/part.js:2330 templates/js/translated/pricing.js:369 -#: templates/js/translated/purchase_order.js:751 -#: templates/js/translated/purchase_order.js:1367 -#: templates/js/translated/purchase_order.js:1918 -#: templates/js/translated/purchase_order.js:2077 +#: templates/js/translated/purchase_order.js:734 +#: templates/js/translated/purchase_order.js:1350 +#: templates/js/translated/purchase_order.js:1902 +#: templates/js/translated/purchase_order.js:2061 #: templates/js/translated/return_order.js:538 #: templates/js/translated/return_order.js:708 -#: templates/js/translated/sales_order.js:300 -#: templates/js/translated/sales_order.js:1233 -#: templates/js/translated/sales_order.js:1634 -#: templates/js/translated/sales_order.js:1832 +#: templates/js/translated/sales_order.js:1199 +#: templates/js/translated/sales_order.js:1608 +#: templates/js/translated/sales_order.js:1813 #: templates/js/translated/stock.js:682 templates/js/translated/stock.js:848 -#: templates/js/translated/stock.js:1065 templates/js/translated/stock.js:2082 -#: templates/js/translated/stock.js:2941 templates/js/translated/stock.js:3174 -#: templates/js/translated/stock.js:3319 +#: templates/js/translated/stock.js:1065 templates/js/translated/stock.js:2083 +#: templates/js/translated/stock.js:2942 templates/js/translated/stock.js:3175 +#: templates/js/translated/stock.js:3320 msgid "Part" -msgstr "" +msgstr "零件" -#: build/models.py:275 +#: build/api.py:662 build/models.py:88 build/templates/build/build_base.html:10 +#: build/templates/build/build_base.html:28 +#: report/templates/report/inventree_build_order_report.html:105 +#: stock/serializers.py:85 templates/email/build_order_completed.html:16 +#: templates/email/overdue_build_order.html:15 +#: templates/js/translated/build.js:1148 templates/js/translated/stock.js:2977 +msgid "Build Order" +msgstr "生產工單" + +#: build/models.py:89 build/templates/build/build_base.html:14 +#: build/templates/build/index.html:8 build/templates/build/index.html:12 +#: order/templates/order/sales_order_detail.html:111 +#: order/templates/order/so_sidebar.html:13 +#: part/templates/part/part_sidebar.html:22 templates/InvenTree/index.html:196 +#: templates/InvenTree/search.html:141 +#: templates/InvenTree/settings/sidebar.html:55 +#: templates/js/translated/search.js:186 users/models.py:207 +msgid "Build Orders" +msgstr "生產工單" + +#: build/models.py:136 +msgid "Assembly BOM has not been validated" +msgstr "裝配物料清單尚未驗證" + +#: build/models.py:143 +msgid "Build order cannot be created for an inactive part" +msgstr "無法為未激活的零件創建生產訂單" + +#: build/models.py:150 +msgid "Build order cannot be created for an unlocked part" +msgstr "無法為已解鎖的零件創建生產訂單" + +#: build/models.py:164 +msgid "Invalid choice for parent build" +msgstr "無效的上層生產工單選擇" + +#: build/models.py:175 order/models.py:236 +msgid "Responsible user or group must be specified" +msgstr "必須指定負責的用户或組" + +#: build/models.py:181 +msgid "Build order part cannot be changed" +msgstr "無法更改生產工單" + +#: build/models.py:242 +msgid "Build Order Reference" +msgstr "生產工單代號" + +#: build/models.py:243 build/serializers.py:1341 order/models.py:479 +#: order/models.py:1005 order/models.py:1390 order/models.py:2174 +#: part/admin.py:414 part/models.py:4337 part/templates/part/upload_bom.html:54 +#: report/templates/report/inventree_bill_of_materials_report.html:139 +#: report/templates/report/inventree_purchase_order_report.html:28 +#: report/templates/report/inventree_return_order_report.html:26 +#: report/templates/report/inventree_sales_order_report.html:28 +#: templates/js/translated/bom.js:770 templates/js/translated/bom.js:973 +#: templates/js/translated/build.js:1014 templates/js/translated/build.js:2694 +#: templates/js/translated/order.js:316 templates/js/translated/pricing.js:386 +#: templates/js/translated/purchase_order.js:2119 +#: templates/js/translated/return_order.js:727 +#: templates/js/translated/sales_order.js:1835 +msgid "Reference" +msgstr "參考代號" + +#: build/models.py:254 +msgid "Brief description of the build (optional)" +msgstr "關於生產工單的簡單説明(選填)" + +#: build/models.py:263 +msgid "BuildOrder to which this build is allocated" +msgstr "這張生產工單對應的上層生產工單" + +#: build/models.py:274 msgid "Select part to build" -msgstr "" +msgstr "選擇要生產的零件" -#: build/models.py:280 +#: build/models.py:279 msgid "Sales Order Reference" -msgstr "" +msgstr "銷售訂單代號" -#: build/models.py:284 +#: build/models.py:283 msgid "SalesOrder to which this build is allocated" -msgstr "" +msgstr "這張生產工單對應的銷售訂單" -#: build/models.py:289 build/serializers.py:1048 -#: templates/js/translated/build.js:1904 -#: templates/js/translated/sales_order.js:1221 +#: build/models.py:288 build/serializers.py:1092 +#: templates/js/translated/build.js:1907 +#: templates/js/translated/sales_order.js:1187 msgid "Source Location" -msgstr "" +msgstr "來源倉儲地點" -#: build/models.py:293 +#: build/models.py:292 msgid "Select location to take stock from for this build (leave blank to take from any stock location)" -msgstr "" +msgstr "選擇領取料件的倉儲地點(留白表示可以從任何地點領取)" -#: build/models.py:298 +#: build/models.py:297 msgid "Destination Location" -msgstr "" +msgstr "目標倉儲地點" -#: build/models.py:302 +#: build/models.py:301 msgid "Select location where the completed items will be stored" -msgstr "" +msgstr "選擇已完成項目庫存地點" -#: build/models.py:306 +#: build/models.py:305 msgid "Build Quantity" -msgstr "" +msgstr "生產數量" -#: build/models.py:309 +#: build/models.py:308 msgid "Number of stock items to build" -msgstr "" +msgstr "要生產的項目數量" -#: build/models.py:313 +#: build/models.py:312 msgid "Completed items" -msgstr "" +msgstr "已完成項目" -#: build/models.py:315 +#: build/models.py:314 msgid "Number of stock items which have been completed" -msgstr "" +msgstr "已經完成的庫存品數量" -#: build/models.py:319 +#: build/models.py:318 msgid "Build Status" -msgstr "" +msgstr "生產狀態" -#: build/models.py:323 +#: build/models.py:322 msgid "Build status code" -msgstr "" +msgstr "生產狀態代碼" -#: build/models.py:332 build/serializers.py:302 build/serializers.py:1198 -#: order/serializers.py:670 stock/models.py:859 stock/serializers.py:76 -#: stock/serializers.py:1562 templates/js/translated/purchase_order.js:1129 +#: build/models.py:331 build/serializers.py:349 build/serializers.py:1243 +#: order/serializers.py:755 stock/models.py:936 stock/serializers.py:77 +#: stock/serializers.py:1593 templates/js/translated/purchase_order.js:1112 #: templates/js/translated/stock.js:1199 msgid "Batch Code" -msgstr "" +msgstr "批號" -#: build/models.py:336 build/serializers.py:303 +#: build/models.py:335 build/serializers.py:350 msgid "Batch code for this build output" -msgstr "" +msgstr "此產出的批號" -#: build/models.py:339 order/models.py:315 order/serializers.py:126 -#: part/models.py:1229 part/templates/part/part_base.html:319 +#: build/models.py:338 order/models.py:322 order/serializers.py:157 +#: part/models.py:1290 part/templates/part/part_base.html:327 #: templates/js/translated/return_order.js:338 -#: templates/js/translated/sales_order.js:863 +#: templates/js/translated/sales_order.js:822 msgid "Creation Date" -msgstr "" +msgstr "建立日期" + +#: build/models.py:342 +msgid "Target completion date" +msgstr "目標完成日期" #: build/models.py:343 -msgid "Target completion date" -msgstr "" - -#: build/models.py:344 msgid "Target date for build completion. Build will be overdue after this date." -msgstr "" +msgstr "生產的預計完成日期。若超過此日期則工單會逾期。" -#: build/models.py:347 order/models.py:526 order/models.py:2180 -#: templates/js/translated/build.js:2419 +#: build/models.py:346 order/models.py:538 order/models.py:2219 +#: templates/js/translated/build.js:2422 msgid "Completion Date" -msgstr "" +msgstr "完成日期" -#: build/models.py:353 +#: build/models.py:352 msgid "completed by" -msgstr "" +msgstr "完成者" -#: build/models.py:361 templates/js/translated/build.js:2379 +#: build/models.py:360 templates/js/translated/build.js:2382 msgid "Issued by" -msgstr "" +msgstr "發布者" -#: build/models.py:362 +#: build/models.py:361 msgid "User who issued this build order" -msgstr "" +msgstr "發布此生產工單的使用者" -#: build/models.py:370 build/templates/build/build_base.html:212 -#: build/templates/build/detail.html:122 common/models.py:165 order/api.py:142 -#: order/models.py:333 order/templates/order/order_base.html:222 -#: order/templates/order/return_order_base.html:191 -#: order/templates/order/sales_order_base.html:235 part/models.py:1246 -#: part/templates/part/part_base.html:399 +#: build/models.py:369 build/templates/build/build_base.html:213 +#: build/templates/build/detail.html:122 common/models.py:168 order/api.py:140 +#: order/models.py:340 order/templates/order/order_base.html:231 +#: order/templates/order/return_order_base.html:192 +#: order/templates/order/sales_order_base.html:236 part/models.py:1307 +#: part/templates/part/part_base.html:407 #: report/templates/report/inventree_build_order_report.html:158 #: templates/InvenTree/settings/settings_staff_js.html:150 -#: templates/js/translated/build.js:2391 -#: templates/js/translated/purchase_order.js:1833 +#: templates/js/translated/build.js:2394 +#: templates/js/translated/purchase_order.js:1817 #: templates/js/translated/return_order.js:358 #: templates/js/translated/table_filters.js:551 msgid "Responsible" -msgstr "" +msgstr "負責人" -#: build/models.py:371 +#: build/models.py:370 msgid "User or group responsible for this build order" -msgstr "" +msgstr "負責此生產工單的使用者或羣組" -#: build/models.py:376 build/templates/build/detail.html:108 +#: build/models.py:375 build/templates/build/detail.html:108 #: company/templates/company/manufacturer_part.html:107 -#: company/templates/company/supplier_part.html:194 -#: order/templates/order/order_base.html:172 -#: order/templates/order/return_order_base.html:148 -#: order/templates/order/sales_order_base.html:187 -#: part/templates/part/part_base.html:392 stock/models.py:855 -#: stock/templates/stock/item_base.html:200 -#: templates/js/translated/company.js:1019 +#: company/templates/company/supplier_part.html:195 +#: order/templates/order/order_base.html:181 +#: order/templates/order/return_order_base.html:149 +#: order/templates/order/sales_order_base.html:188 +#: part/templates/part/part_base.html:400 stock/models.py:932 +#: stock/templates/stock/item_base.html:197 +#: templates/js/translated/company.js:1020 msgid "External Link" -msgstr "" +msgstr "外部連結" -#: build/models.py:377 common/models.py:3273 part/models.py:1058 -#: stock/models.py:855 +#: build/models.py:376 common/models.py:3334 part/models.py:1119 +#: stock/models.py:932 msgid "Link to external URL" -msgstr "" +msgstr "外部URL連結" -#: build/models.py:381 +#: build/models.py:380 msgid "Build Priority" -msgstr "" +msgstr "製造優先度" -#: build/models.py:384 +#: build/models.py:383 msgid "Priority of this build order" -msgstr "" +msgstr "此生產工單的優先程度" -#: build/models.py:391 common/models.py:135 common/models.py:149 -#: order/admin.py:18 order/api.py:128 order/models.py:297 +#: build/models.py:390 common/models.py:138 common/models.py:152 +#: order/admin.py:18 order/api.py:126 order/models.py:304 #: templates/InvenTree/settings/settings_staff_js.html:146 -#: templates/js/translated/build.js:2316 -#: templates/js/translated/purchase_order.js:1780 +#: templates/js/translated/build.js:2319 +#: templates/js/translated/purchase_order.js:1764 #: templates/js/translated/return_order.js:317 -#: templates/js/translated/sales_order.js:842 +#: templates/js/translated/sales_order.js:801 #: templates/js/translated/table_filters.js:47 #: templates/project_code_data.html:6 msgid "Project Code" -msgstr "" +msgstr "專案代碼" -#: build/models.py:392 +#: build/models.py:391 msgid "Project code for this build order" -msgstr "" +msgstr "此生產工單隸屬的專案代碼" -#: build/models.py:651 build/models.py:778 +#: build/models.py:651 build/models.py:779 msgid "Failed to offload task to complete build allocations" -msgstr "" +msgstr "未能卸載任務以完成生產分配" #: build/models.py:673 #, python-brace-format msgid "Build order {build} has been completed" -msgstr "" +msgstr "生產工單 {build} 已經完成" #: build/models.py:679 msgid "A build order has been completed" -msgstr "" +msgstr "一張生產工單已經完成" -#: build/models.py:967 build/models.py:1055 +#: build/models.py:858 build/serializers.py:393 +msgid "Serial numbers must be provided for trackable parts" +msgstr "對於可跟蹤的零件,必須提供序列號" + +#: build/models.py:969 build/models.py:1058 msgid "No build output specified" -msgstr "" +msgstr "未指定產出" -#: build/models.py:970 +#: build/models.py:972 msgid "Build output is already completed" -msgstr "" +msgstr "產出已完成" -#: build/models.py:973 +#: build/models.py:975 msgid "Build output does not match Build Order" -msgstr "" +msgstr "產出與生產訂單不匹配" -#: build/models.py:1059 build/serializers.py:235 build/serializers.py:284 -#: build/serializers.py:915 order/models.py:564 order/serializers.py:499 -#: order/serializers.py:665 part/serializers.py:1569 part/serializers.py:1999 -#: stock/models.py:700 stock/models.py:1520 stock/serializers.py:669 +#: build/models.py:1062 build/serializers.py:282 build/serializers.py:331 +#: build/serializers.py:959 order/models.py:586 order/serializers.py:584 +#: order/serializers.py:750 part/serializers.py:1627 part/serializers.py:2060 +#: stock/models.py:777 stock/models.py:1609 stock/serializers.py:696 msgid "Quantity must be greater than zero" -msgstr "" +msgstr "數量必須大於零" -#: build/models.py:1064 build/serializers.py:240 +#: build/models.py:1067 build/serializers.py:287 msgid "Quantity cannot be greater than the output quantity" -msgstr "" +msgstr "數量不能大於輸出數量" -#: build/models.py:1124 build/serializers.py:563 +#: build/models.py:1127 build/serializers.py:607 #, python-brace-format msgid "Build output {serial} has not passed all required tests" -msgstr "" +msgstr "產出 {serial} 未通過所有必要測試" -#: build/models.py:1465 +#: build/models.py:1482 msgid "Build Order Line Item" -msgstr "" +msgstr "生產訂單行項目" -#: build/models.py:1490 +#: build/models.py:1507 msgid "Build object" -msgstr "" +msgstr "生產對象" -#: build/models.py:1504 build/models.py:1760 build/serializers.py:222 -#: build/serializers.py:269 build/serializers.py:1295 -#: build/templates/build/build_base.html:110 -#: build/templates/build/detail.html:34 common/models.py:2579 -#: order/models.py:1356 order/models.py:2041 order/serializers.py:1460 +#: build/models.py:1521 build/models.py:1787 build/serializers.py:269 +#: build/serializers.py:316 build/serializers.py:1349 +#: build/templates/build/build_base.html:111 +#: build/templates/build/detail.html:34 common/models.py:2643 +#: order/models.py:1373 order/models.py:2074 order/serializers.py:1586 #: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:413 -#: part/forms.py:48 part/models.py:3284 part/models.py:4253 -#: part/templates/part/part_pricing.html:16 +#: part/forms.py:48 part/models.py:3335 part/models.py:4310 +#: part/serializers.py:265 part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_bill_of_materials_report.html:138 #: report/templates/report/inventree_build_order_report.html:113 #: report/templates/report/inventree_purchase_order_report.html:29 #: report/templates/report/inventree_sales_order_report.html:29 +#: report/templates/report/inventree_sales_order_shipment_report.html:47 +#: report/templates/report/inventree_sales_order_shipment_report.html:49 #: report/templates/report/inventree_stock_location_report.html:104 #: report/templates/report/inventree_test_report.html:90 -#: report/templates/report/inventree_test_report.html:169 stock/admin.py:159 -#: stock/serializers.py:127 stock/serializers.py:167 stock/serializers.py:660 -#: stock/templates/stock/item_base.html:287 -#: stock/templates/stock/item_base.html:295 -#: stock/templates/stock/item_base.html:342 +#: report/templates/report/inventree_test_report.html:169 stock/admin.py:160 +#: stock/serializers.py:128 stock/serializers.py:168 stock/serializers.py:687 +#: stock/templates/stock/item_base.html:284 +#: stock/templates/stock/item_base.html:292 +#: stock/templates/stock/item_base.html:339 #: templates/email/build_order_completed.html:18 #: templates/js/translated/barcode.js:579 templates/js/translated/bom.js:771 -#: templates/js/translated/bom.js:981 templates/js/translated/build.js:522 -#: templates/js/translated/build.js:737 templates/js/translated/build.js:1542 -#: templates/js/translated/build.js:1919 templates/js/translated/build.js:2529 -#: templates/js/translated/company.js:1818 -#: templates/js/translated/model_renderers.js:237 +#: templates/js/translated/bom.js:981 templates/js/translated/build.js:525 +#: templates/js/translated/build.js:740 templates/js/translated/build.js:1545 +#: templates/js/translated/build.js:1922 templates/js/translated/build.js:2536 +#: templates/js/translated/company.js:1819 +#: templates/js/translated/model_renderers.js:240 #: templates/js/translated/order.js:329 templates/js/translated/part.js:968 -#: templates/js/translated/part.js:1818 templates/js/translated/part.js:3360 +#: templates/js/translated/part.js:1818 templates/js/translated/part.js:3376 #: templates/js/translated/pricing.js:381 #: templates/js/translated/pricing.js:474 #: templates/js/translated/pricing.js:522 #: templates/js/translated/pricing.js:616 -#: templates/js/translated/purchase_order.js:754 -#: templates/js/translated/purchase_order.js:1922 -#: templates/js/translated/purchase_order.js:2141 -#: templates/js/translated/sales_order.js:317 -#: templates/js/translated/sales_order.js:1235 -#: templates/js/translated/sales_order.js:1554 -#: templates/js/translated/sales_order.js:1644 -#: templates/js/translated/sales_order.js:1734 -#: templates/js/translated/sales_order.js:1860 +#: templates/js/translated/purchase_order.js:737 +#: templates/js/translated/purchase_order.js:1906 +#: templates/js/translated/purchase_order.js:2125 +#: templates/js/translated/sales_order.js:1201 +#: templates/js/translated/sales_order.js:1520 +#: templates/js/translated/sales_order.js:1625 +#: templates/js/translated/sales_order.js:1715 +#: templates/js/translated/sales_order.js:1841 #: templates/js/translated/stock.js:570 templates/js/translated/stock.js:708 -#: templates/js/translated/stock.js:879 templates/js/translated/stock.js:3105 -#: templates/js/translated/stock.js:3188 +#: templates/js/translated/stock.js:879 templates/js/translated/stock.js:3106 +#: templates/js/translated/stock.js:3189 msgid "Quantity" -msgstr "" +msgstr "數量" -#: build/models.py:1505 +#: build/models.py:1522 msgid "Required quantity for build order" -msgstr "" +msgstr "生產工單所需數量" -#: build/models.py:1585 +#: build/models.py:1602 msgid "Build item must specify a build output, as master part is marked as trackable" -msgstr "" +msgstr "生產項必須指定產出,因為主零件已經被標記為可追蹤的" -#: build/models.py:1594 +#: build/models.py:1611 #, python-brace-format msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" -msgstr "" +msgstr "分配的數量({q})不能超過可用的庫存數量({a})" -#: build/models.py:1604 order/models.py:1992 +#: build/models.py:1628 order/models.py:2025 msgid "Stock item is over-allocated" -msgstr "" +msgstr "庫存品項超額分配" -#: build/models.py:1610 order/models.py:1995 +#: build/models.py:1634 order/models.py:2028 msgid "Allocation quantity must be greater than zero" -msgstr "" +msgstr "分配的數量必須大於零" -#: build/models.py:1616 +#: build/models.py:1640 msgid "Quantity must be 1 for serialized stock" -msgstr "" +msgstr "有序號的品項數量必須為1" -#: build/models.py:1675 +#: build/models.py:1699 msgid "Selected stock item does not match BOM line" -msgstr "" +msgstr "選擇的庫存品項和BOM的項目不符" -#: build/models.py:1747 build/serializers.py:895 order/serializers.py:1297 -#: order/serializers.py:1318 stock/models.py:376 stock/serializers.py:93 -#: stock/serializers.py:763 stock/serializers.py:1281 stock/serializers.py:1393 -#: stock/templates/stock/item_base.html:10 -#: stock/templates/stock/item_base.html:23 -#: stock/templates/stock/item_base.html:194 -#: templates/js/translated/build.js:1918 -#: templates/js/translated/sales_order.js:301 -#: templates/js/translated/sales_order.js:1234 -#: templates/js/translated/sales_order.js:1535 -#: templates/js/translated/sales_order.js:1540 -#: templates/js/translated/sales_order.js:1641 -#: templates/js/translated/sales_order.js:1728 +#: build/models.py:1774 build/serializers.py:939 order/serializers.py:1423 +#: order/serializers.py:1444 +#: report/templates/report/inventree_sales_order_shipment_report.html:29 +#: stock/models.py:382 stock/serializers.py:94 stock/serializers.py:794 +#: stock/serializers.py:1312 stock/serializers.py:1424 +#: stock/templates/stock/item_base.html:11 +#: stock/templates/stock/item_base.html:24 +#: stock/templates/stock/item_base.html:191 +#: templates/js/translated/build.js:1921 +#: templates/js/translated/sales_order.js:1200 +#: templates/js/translated/sales_order.js:1501 +#: templates/js/translated/sales_order.js:1506 +#: templates/js/translated/sales_order.js:1622 +#: templates/js/translated/sales_order.js:1709 #: templates/js/translated/stock.js:683 templates/js/translated/stock.js:849 -#: templates/js/translated/stock.js:3061 +#: templates/js/translated/stock.js:3062 msgid "Stock Item" -msgstr "" +msgstr "庫存品項" -#: build/models.py:1748 +#: build/models.py:1775 msgid "Source stock item" -msgstr "" +msgstr "來源庫存項目" -#: build/models.py:1761 +#: build/models.py:1788 msgid "Stock quantity to allocate to build" -msgstr "" +msgstr "要分配的庫存數量" -#: build/models.py:1769 +#: build/models.py:1796 msgid "Install into" -msgstr "" +msgstr "安裝到" -#: build/models.py:1770 +#: build/models.py:1797 msgid "Destination stock item" -msgstr "" +msgstr "目的庫存品項" -#: build/serializers.py:91 +#: build/serializers.py:108 msgid "Build Level" -msgstr "" +msgstr "構建等級" -#: build/serializers.py:99 build/serializers.py:1190 build/serializers.py:1279 -#: part/admin.py:41 part/admin.py:408 part/models.py:4102 part/stocktake.py:219 -#: stock/admin.py:156 +#: build/serializers.py:116 build/serializers.py:1235 build/serializers.py:1331 +#: part/admin.py:41 part/admin.py:408 part/models.py:4160 part/stocktake.py:219 +#: stock/admin.py:157 msgid "Part Name" -msgstr "" +msgstr "零件名稱" -#: build/serializers.py:111 +#: build/serializers.py:128 msgid "Project Code Label" -msgstr "" +msgstr "項目編碼標籤" -#: build/serializers.py:172 build/serializers.py:924 -#: templates/js/translated/build.js:1042 templates/js/translated/build.js:1495 +#: build/serializers.py:134 +msgid "Create Child Builds" +msgstr "新建子生產項目" + +#: build/serializers.py:135 +msgid "Automatically generate child build orders" +msgstr "自動生成子生成工單" + +#: build/serializers.py:219 build/serializers.py:968 +#: templates/js/translated/build.js:1045 templates/js/translated/build.js:1498 msgid "Build Output" -msgstr "" +msgstr "產出" -#: build/serializers.py:184 +#: build/serializers.py:231 msgid "Build output does not match the parent build" -msgstr "" +msgstr "產出與之前的生產不匹配" -#: build/serializers.py:188 +#: build/serializers.py:235 msgid "Output part does not match BuildOrder part" -msgstr "" +msgstr "產出零件與生產訂單零件不匹配" -#: build/serializers.py:192 +#: build/serializers.py:239 msgid "This build output has already been completed" -msgstr "" +msgstr "此產出已經完成" -#: build/serializers.py:203 +#: build/serializers.py:250 msgid "This build output is not fully allocated" -msgstr "" +msgstr "此產出尚未完全分配" -#: build/serializers.py:223 build/serializers.py:270 +#: build/serializers.py:270 build/serializers.py:317 msgid "Enter quantity for build output" -msgstr "" +msgstr "輸入產出數量" -#: build/serializers.py:291 +#: build/serializers.py:338 msgid "Integer quantity required for trackable parts" -msgstr "" +msgstr "可追蹤的零件數量必須為整數" -#: build/serializers.py:294 +#: build/serializers.py:341 msgid "Integer quantity required, as the bill of materials contains trackable parts" -msgstr "" +msgstr "因為BOM包含可追蹤的零件,所以數量必須為整數" -#: build/serializers.py:309 order/serializers.py:678 order/serializers.py:1464 -#: stock/serializers.py:680 templates/js/translated/purchase_order.js:1154 +#: build/serializers.py:356 order/serializers.py:763 order/serializers.py:1590 +#: stock/serializers.py:707 templates/js/translated/purchase_order.js:1137 #: templates/js/translated/stock.js:373 templates/js/translated/stock.js:571 msgid "Serial Numbers" -msgstr "" +msgstr "序號" -#: build/serializers.py:310 +#: build/serializers.py:357 msgid "Enter serial numbers for build outputs" -msgstr "" +msgstr "輸出產出的序列號" -#: build/serializers.py:315 build/serializers.py:456 build/serializers.py:528 -#: order/serializers.py:654 order/serializers.py:778 order/serializers.py:1781 -#: part/serializers.py:1212 stock/serializers.py:102 stock/serializers.py:691 -#: stock/serializers.py:851 stock/serializers.py:977 stock/serializers.py:1425 -#: stock/serializers.py:1681 stock/templates/stock/item_base.html:394 +#: build/serializers.py:362 build/serializers.py:500 build/serializers.py:572 +#: order/serializers.py:739 order/serializers.py:880 order/serializers.py:1933 +#: part/serializers.py:1265 stock/serializers.py:103 stock/serializers.py:718 +#: stock/serializers.py:882 stock/serializers.py:1008 stock/serializers.py:1456 +#: stock/serializers.py:1712 stock/templates/stock/item_base.html:391 #: templates/js/translated/barcode.js:578 -#: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1032 -#: templates/js/translated/build.js:1174 templates/js/translated/build.js:2544 -#: templates/js/translated/purchase_order.js:1210 -#: templates/js/translated/purchase_order.js:1320 -#: templates/js/translated/sales_order.js:1547 -#: templates/js/translated/sales_order.js:1655 -#: templates/js/translated/sales_order.js:1663 -#: templates/js/translated/sales_order.js:1742 +#: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1035 +#: templates/js/translated/build.js:1177 templates/js/translated/build.js:2551 +#: templates/js/translated/purchase_order.js:1193 +#: templates/js/translated/purchase_order.js:1303 +#: templates/js/translated/sales_order.js:1513 +#: templates/js/translated/sales_order.js:1636 +#: templates/js/translated/sales_order.js:1644 +#: templates/js/translated/sales_order.js:1723 #: templates/js/translated/stock.js:684 templates/js/translated/stock.js:850 -#: templates/js/translated/stock.js:1067 templates/js/translated/stock.js:2286 -#: templates/js/translated/stock.js:2955 +#: templates/js/translated/stock.js:1067 templates/js/translated/stock.js:2287 +#: templates/js/translated/stock.js:2956 msgid "Location" -msgstr "" +msgstr "地點" -#: build/serializers.py:316 +#: build/serializers.py:363 msgid "Stock location for build output" -msgstr "" +msgstr "生產輸出的庫存地點" -#: build/serializers.py:330 +#: build/serializers.py:377 msgid "Auto Allocate Serial Numbers" -msgstr "" +msgstr "自動分配序號" -#: build/serializers.py:331 +#: build/serializers.py:378 msgid "Automatically allocate required items with matching serial numbers" -msgstr "" +msgstr "自動為需要項目分配對應的序號" -#: build/serializers.py:346 -msgid "Serial numbers must be provided for trackable parts" -msgstr "" - -#: build/serializers.py:371 stock/api.py:1031 +#: build/serializers.py:415 order/serializers.py:858 stock/api.py:1017 +#: stock/models.py:1632 msgid "The following serial numbers already exist or are invalid" -msgstr "" +msgstr "序號已存在或無效" -#: build/serializers.py:418 build/serializers.py:480 build/serializers.py:569 +#: build/serializers.py:462 build/serializers.py:524 build/serializers.py:613 msgid "A list of build outputs must be provided" -msgstr "" +msgstr "必須提供產出清單" -#: build/serializers.py:457 +#: build/serializers.py:501 msgid "Stock location for scrapped outputs" -msgstr "" +msgstr "廢品產出的庫存位置" -#: build/serializers.py:463 +#: build/serializers.py:507 msgid "Discard Allocations" -msgstr "" +msgstr "放棄分配" -#: build/serializers.py:464 +#: build/serializers.py:508 msgid "Discard any stock allocations for scrapped outputs" -msgstr "" +msgstr "取消對廢品產出的任何庫存分配" -#: build/serializers.py:469 +#: build/serializers.py:513 msgid "Reason for scrapping build output(s)" -msgstr "" +msgstr "廢品產出的原因" -#: build/serializers.py:529 +#: build/serializers.py:573 msgid "Location for completed build outputs" -msgstr "" +msgstr "已完成刪除的庫存地點" -#: build/serializers.py:535 build/templates/build/build_base.html:159 -#: build/templates/build/detail.html:62 order/models.py:476 -#: order/models.py:1002 order/models.py:2159 order/serializers.py:686 -#: stock/admin.py:164 stock/serializers.py:1028 stock/serializers.py:1569 -#: stock/templates/stock/item_base.html:427 -#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2363 -#: templates/js/translated/purchase_order.js:1371 -#: templates/js/translated/purchase_order.js:1792 +#: build/serializers.py:579 build/templates/build/build_base.html:160 +#: build/templates/build/detail.html:62 order/models.py:488 +#: order/models.py:1029 order/models.py:2198 order/serializers.py:771 +#: stock/admin.py:165 stock/serializers.py:581 stock/serializers.py:1059 +#: stock/serializers.py:1600 stock/templates/stock/item_base.html:424 +#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2366 +#: templates/js/translated/purchase_order.js:1354 +#: templates/js/translated/purchase_order.js:1776 #: templates/js/translated/return_order.js:330 -#: templates/js/translated/sales_order.js:855 -#: templates/js/translated/stock.js:2261 templates/js/translated/stock.js:3079 -#: templates/js/translated/stock.js:3204 +#: templates/js/translated/sales_order.js:814 +#: templates/js/translated/stock.js:2262 templates/js/translated/stock.js:3080 +#: templates/js/translated/stock.js:3205 msgid "Status" -msgstr "" +msgstr "狀態" -#: build/serializers.py:541 +#: build/serializers.py:585 msgid "Accept Incomplete Allocation" -msgstr "" +msgstr "接受不完整的分配" -#: build/serializers.py:542 +#: build/serializers.py:586 msgid "Complete outputs if stock has not been fully allocated" -msgstr "" +msgstr "如果庫存尚未全部分配,則完成產出" -#: build/serializers.py:654 +#: build/serializers.py:698 msgid "Consume Allocated Stock" -msgstr "" +msgstr "消費已分配的庫存" -#: build/serializers.py:655 +#: build/serializers.py:699 msgid "Consume any stock which has already been allocated to this build" -msgstr "" +msgstr "消耗已分配給此生產的任何庫存" -#: build/serializers.py:661 +#: build/serializers.py:705 msgid "Remove Incomplete Outputs" -msgstr "" +msgstr "移除未完成的產出" -#: build/serializers.py:662 +#: build/serializers.py:706 msgid "Delete any build outputs which have not been completed" -msgstr "" - -#: build/serializers.py:689 -msgid "Not permitted" -msgstr "" - -#: build/serializers.py:690 -msgid "Accept as consumed by this build order" -msgstr "" - -#: build/serializers.py:691 -msgid "Deallocate before completing this build order" -msgstr "" - -#: build/serializers.py:721 -msgid "Overallocated Stock" -msgstr "" - -#: build/serializers.py:723 -msgid "How do you want to handle extra stock items assigned to the build order" -msgstr "" +msgstr "刪除所有未完成的產出" #: build/serializers.py:733 -msgid "Some stock items have been overallocated" -msgstr "" +msgid "Not permitted" +msgstr "不允許" -#: build/serializers.py:738 -msgid "Accept Unallocated" -msgstr "" +#: build/serializers.py:734 +msgid "Accept as consumed by this build order" +msgstr "接受作為此生產訂單的消費" -#: build/serializers.py:739 -msgid "Accept that stock items have not been fully allocated to this build order" -msgstr "" +#: build/serializers.py:735 +msgid "Deallocate before completing this build order" +msgstr "完成此生產訂單前取消分配" -#: build/serializers.py:749 templates/js/translated/build.js:316 -msgid "Required stock has not been fully allocated" -msgstr "" +#: build/serializers.py:765 +msgid "Overallocated Stock" +msgstr "超出分配的庫存" -#: build/serializers.py:754 order/serializers.py:345 order/serializers.py:1365 -msgid "Accept Incomplete" -msgstr "" - -#: build/serializers.py:755 -msgid "Accept that the required number of build outputs have not been completed" -msgstr "" - -#: build/serializers.py:765 templates/js/translated/build.js:320 -msgid "Required build quantity has not been completed" -msgstr "" - -#: build/serializers.py:774 -msgid "Build order has open child build orders" -msgstr "" +#: build/serializers.py:767 +msgid "How do you want to handle extra stock items assigned to the build order" +msgstr "如何處理分配給生產訂單的額外庫存項" #: build/serializers.py:777 -msgid "Build order must be in production state" -msgstr "" +msgid "Some stock items have been overallocated" +msgstr "有庫存項目已被過度分配" -#: build/serializers.py:780 templates/js/translated/build.js:304 -msgid "Build order has incomplete outputs" -msgstr "" +#: build/serializers.py:782 +msgid "Accept Unallocated" +msgstr "接受未分配" + +#: build/serializers.py:783 +msgid "Accept that stock items have not been fully allocated to this build order" +msgstr "接受庫存項未被完全分配至生產訂單" + +#: build/serializers.py:793 templates/js/translated/build.js:319 +msgid "Required stock has not been fully allocated" +msgstr "所需庫存尚未完全分配" + +#: build/serializers.py:798 order/serializers.py:430 order/serializers.py:1491 +msgid "Accept Incomplete" +msgstr "接受不完整" + +#: build/serializers.py:799 +msgid "Accept that the required number of build outputs have not been completed" +msgstr "允許所需數量的產出未完成" + +#: build/serializers.py:809 templates/js/translated/build.js:323 +msgid "Required build quantity has not been completed" +msgstr "未完成所需生產數量" #: build/serializers.py:818 +msgid "Build order has open child build orders" +msgstr "生產訂單有打開的子生產訂單" + +#: build/serializers.py:821 +msgid "Build order must be in production state" +msgstr "生產訂單必須處於生產狀態" + +#: build/serializers.py:824 templates/js/translated/build.js:307 +msgid "Build order has incomplete outputs" +msgstr "生產訂單有未完成的產出" + +#: build/serializers.py:862 msgid "Build Line" -msgstr "" - -#: build/serializers.py:828 -msgid "Build output" -msgstr "" - -#: build/serializers.py:836 -msgid "Build output must point to the same build" -msgstr "" +msgstr "生產行" #: build/serializers.py:872 +msgid "Build output" +msgstr "產出" + +#: build/serializers.py:880 +msgid "Build output must point to the same build" +msgstr "生產產出必須指向相同的生產" + +#: build/serializers.py:916 msgid "Build Line Item" -msgstr "" +msgstr "生產行項目" -#: build/serializers.py:886 +#: build/serializers.py:930 msgid "bom_item.part must point to the same part as the build order" -msgstr "" +msgstr "bom_item.part 必須與生產訂單零件相同" -#: build/serializers.py:901 stock/serializers.py:1294 +#: build/serializers.py:945 stock/serializers.py:1325 msgid "Item must be in stock" -msgstr "" +msgstr "商品必須有庫存" -#: build/serializers.py:949 order/serializers.py:1351 +#: build/serializers.py:993 order/serializers.py:1477 #, python-brace-format msgid "Available quantity ({q}) exceeded" -msgstr "" +msgstr "可用量 ({q}) 超出限制" -#: build/serializers.py:955 +#: build/serializers.py:999 msgid "Build output must be specified for allocation of tracked parts" -msgstr "" +msgstr "對於被追蹤的零件的分配,必須指定生產產出" -#: build/serializers.py:962 +#: build/serializers.py:1006 msgid "Build output cannot be specified for allocation of untracked parts" -msgstr "" +msgstr "對於未被追蹤的零件,無法指定生產產出" -#: build/serializers.py:986 order/serializers.py:1610 +#: build/serializers.py:1030 order/serializers.py:1750 msgid "Allocation items must be provided" -msgstr "" +msgstr "必須提供分配項目" -#: build/serializers.py:1049 +#: build/serializers.py:1093 msgid "Stock location where parts are to be sourced (leave blank to take from any location)" -msgstr "" +msgstr "零件來源的庫存地點(留空則可來源於任何庫存地點)" -#: build/serializers.py:1057 +#: build/serializers.py:1101 msgid "Exclude Location" -msgstr "" +msgstr "排除位置" -#: build/serializers.py:1058 +#: build/serializers.py:1102 msgid "Exclude stock items from this selected location" -msgstr "" +msgstr "從該選定的庫存地點排除庫存項" -#: build/serializers.py:1063 +#: build/serializers.py:1107 msgid "Interchangeable Stock" -msgstr "" +msgstr "可互換庫存" -#: build/serializers.py:1064 +#: build/serializers.py:1108 msgid "Stock items in multiple locations can be used interchangeably" -msgstr "" +msgstr "在多個位置的庫存項目可以互換使用" -#: build/serializers.py:1069 +#: build/serializers.py:1113 msgid "Substitute Stock" -msgstr "" +msgstr "替代品庫存" -#: build/serializers.py:1070 +#: build/serializers.py:1114 msgid "Allow allocation of substitute parts" -msgstr "" +msgstr "允許分配可替換的零件" -#: build/serializers.py:1075 +#: build/serializers.py:1119 msgid "Optional Items" -msgstr "" +msgstr "可選項目" -#: build/serializers.py:1076 +#: build/serializers.py:1120 msgid "Allocate optional BOM items to build order" -msgstr "" +msgstr "分配可選的物料清單給生產訂單" -#: build/serializers.py:1098 +#: build/serializers.py:1143 msgid "Failed to start auto-allocation task" -msgstr "" +msgstr "啓動自動分配任務失敗" -#: build/serializers.py:1181 +#: build/serializers.py:1226 stock/serializers.py:585 msgid "Supplier Part Number" -msgstr "" +msgstr "供應商零件編號" -#: build/serializers.py:1182 company/models.py:506 +#: build/serializers.py:1227 company/models.py:503 stock/serializers.py:591 msgid "Manufacturer Part Number" -msgstr "" +msgstr "製造商零件編號" -#: build/serializers.py:1183 stock/admin.py:53 stock/admin.py:175 -#: stock/serializers.py:457 +#: build/serializers.py:1228 stock/admin.py:53 stock/admin.py:176 +#: stock/serializers.py:467 msgid "Location Name" -msgstr "" +msgstr "位置名稱" -#: build/serializers.py:1184 +#: build/serializers.py:1229 build/serializers.py:1327 msgid "Build Reference" -msgstr "" +msgstr "構建參考" -#: build/serializers.py:1185 +#: build/serializers.py:1230 msgid "BOM Reference" -msgstr "" +msgstr "物料清單參考" -#: build/serializers.py:1186 company/models.py:852 -#: company/templates/company/supplier_part.html:160 order/serializers.py:690 -#: stock/admin.py:228 stock/models.py:818 stock/serializers.py:1579 -#: stock/templates/stock/item_base.html:240 -#: templates/js/translated/company.js:1646 -#: templates/js/translated/purchase_order.js:1169 -#: templates/js/translated/purchase_order.js:1332 +#: build/serializers.py:1231 company/models.py:849 +#: company/templates/company/supplier_part.html:161 order/serializers.py:775 +#: stock/admin.py:229 stock/models.py:895 stock/serializers.py:1610 +#: stock/templates/stock/item_base.html:237 +#: templates/js/translated/company.js:1647 +#: templates/js/translated/purchase_order.js:1152 +#: templates/js/translated/purchase_order.js:1315 #: templates/js/translated/stock.js:1214 templates/js/translated/stock.js:1246 -#: templates/js/translated/stock.js:2509 +#: templates/js/translated/stock.js:2510 msgid "Packaging" -msgstr "" +msgstr "打包" -#: build/serializers.py:1189 part/admin.py:39 part/admin.py:398 -#: part/models.py:4101 part/stocktake.py:218 stock/admin.py:152 +#: build/serializers.py:1234 part/admin.py:39 part/admin.py:398 +#: part/models.py:4159 part/stocktake.py:218 stock/admin.py:153 msgid "Part ID" -msgstr "" +msgstr "零件編號" -#: build/serializers.py:1191 build/serializers.py:1280 part/admin.py:402 -#: part/models.py:4103 +#: build/serializers.py:1236 build/serializers.py:1332 part/admin.py:402 +#: part/models.py:4161 msgid "Part IPN" -msgstr "" +msgstr "零件的內部零件號" -#: build/serializers.py:1192 build/serializers.py:1282 part/admin.py:45 +#: build/serializers.py:1237 build/serializers.py:1334 part/admin.py:45 #: part/stocktake.py:220 msgid "Part Description" -msgstr "" +msgstr "零件描述" -#: build/serializers.py:1195 +#: build/serializers.py:1240 msgid "BOM Part ID" -msgstr "" +msgstr "物料清單零件識別號碼" -#: build/serializers.py:1196 +#: build/serializers.py:1241 msgid "BOM Part Name" -msgstr "" +msgstr "物料清單零件名稱" -#: build/serializers.py:1199 +#: build/serializers.py:1244 #: report/templates/report/inventree_return_order_report.html:25 -#: report/templates/report/inventree_test_report.html:88 stock/models.py:845 -#: stock/serializers.py:151 stock/templates/stock/item_base.html:311 -#: templates/js/translated/build.js:520 templates/js/translated/build.js:1540 -#: templates/js/translated/build.js:2527 -#: templates/js/translated/model_renderers.js:231 +#: report/templates/report/inventree_sales_order_shipment_report.html:45 +#: report/templates/report/inventree_test_report.html:88 stock/models.py:922 +#: stock/serializers.py:152 stock/templates/stock/item_base.html:308 +#: templates/js/translated/build.js:523 templates/js/translated/build.js:1543 +#: templates/js/translated/build.js:2534 +#: templates/js/translated/model_renderers.js:234 #: templates/js/translated/return_order.js:539 #: templates/js/translated/return_order.js:722 -#: templates/js/translated/sales_order.js:315 -#: templates/js/translated/sales_order.js:1647 -#: templates/js/translated/sales_order.js:1732 +#: templates/js/translated/sales_order.js:1628 +#: templates/js/translated/sales_order.js:1713 #: templates/js/translated/stock.js:602 msgid "Serial Number" -msgstr "" +msgstr "序列號" -#: build/serializers.py:1212 stock/serializers.py:593 -#: templates/js/translated/build.js:1017 templates/js/translated/build.js:1164 -#: templates/js/translated/build.js:2516 +#: build/serializers.py:1257 stock/serializers.py:620 +#: templates/js/translated/build.js:1020 templates/js/translated/build.js:1167 +#: templates/js/translated/build.js:2523 msgid "Allocated Quantity" -msgstr "" +msgstr "已分配數量" -#: build/serializers.py:1213 stock/templates/stock/item_base.html:340 +#: build/serializers.py:1258 stock/templates/stock/item_base.html:337 msgid "Available Quantity" -msgstr "" +msgstr "可用數量" -#: build/serializers.py:1283 +#: build/serializers.py:1335 msgid "Part Category ID" -msgstr "" +msgstr "零件類別編號" -#: build/serializers.py:1284 +#: build/serializers.py:1336 msgid "Part Category Name" -msgstr "" +msgstr "零件類別名稱" -#: build/serializers.py:1291 common/models.py:1513 part/admin.py:113 -#: part/models.py:1166 templates/js/translated/table_filters.js:150 +#: build/serializers.py:1345 common/models.py:1582 part/admin.py:113 +#: part/models.py:1227 templates/js/translated/build.js:2738 +#: templates/js/translated/table_filters.js:150 #: templates/js/translated/table_filters.js:230 #: templates/js/translated/table_filters.js:783 msgid "Trackable" -msgstr "" +msgstr "可追蹤" -#: build/serializers.py:1292 +#: build/serializers.py:1346 msgid "Inherited" -msgstr "" +msgstr "已繼承的" -#: build/serializers.py:1293 part/models.py:4313 +#: build/serializers.py:1347 part/models.py:4370 #: part/templates/part/upload_bom.html:56 templates/js/translated/bom.js:1046 -#: templates/js/translated/build.js:2711 +#: templates/js/translated/build.js:2720 msgid "Allow Variants" -msgstr "" +msgstr "允許變體" -#: build/serializers.py:1297 part/models.py:4110 part/models.py:4584 +#: build/serializers.py:1351 part/models.py:4168 part/models.py:4646 #: stock/api.py:794 msgid "BOM Item" -msgstr "" +msgstr "物料清單項" -#: build/serializers.py:1306 build/templates/build/detail.html:236 +#: build/serializers.py:1370 build/templates/build/detail.html:236 #: build/templates/build/sidebar.html:16 templates/js/translated/index.js:130 msgid "Allocated Stock" -msgstr "" +msgstr "分配庫存" -#: build/serializers.py:1311 order/serializers.py:1175 part/admin.py:132 -#: part/bom.py:181 part/serializers.py:899 part/serializers.py:1602 -#: part/templates/part/part_base.html:210 templates/js/translated/bom.js:1208 -#: templates/js/translated/build.js:2804 templates/js/translated/part.js:712 +#: build/serializers.py:1375 order/serializers.py:1209 part/admin.py:132 +#: part/bom.py:186 part/serializers.py:951 part/serializers.py:1660 +#: part/templates/part/part_base.html:211 templates/js/translated/bom.js:1208 +#: templates/js/translated/build.js:2822 templates/js/translated/part.js:712 #: templates/js/translated/part.js:2155 #: templates/js/translated/table_filters.js:177 msgid "On Order" -msgstr "" +msgstr "已訂購" -#: build/serializers.py:1316 order/serializers.py:1176 part/serializers.py:1604 -#: templates/js/translated/build.js:2808 +#: build/serializers.py:1380 order/serializers.py:1210 part/serializers.py:1662 +#: templates/js/translated/build.js:2826 #: templates/js/translated/table_filters.js:367 msgid "In Production" -msgstr "" +msgstr "生產中" -#: build/serializers.py:1321 part/bom.py:180 part/serializers.py:1629 -#: part/templates/part/part_base.html:192 -#: templates/js/translated/sales_order.js:1929 -msgid "Available Stock" -msgstr "" - -#: build/serializers.py:1325 -msgid "Available Substitute Stock" -msgstr "" - -#: build/serializers.py:1326 -msgid "Available Variant Stock" -msgstr "" - -#: build/serializers.py:1327 -msgid "Total Available Stock" -msgstr "" - -#: build/serializers.py:1328 part/serializers.py:906 +#: build/serializers.py:1384 part/serializers.py:958 msgid "External Stock" -msgstr "" +msgstr "外部庫存" -#: build/status_codes.py:11 generic/states/tests.py:17 order/status_codes.py:12 -#: order/status_codes.py:42 order/status_codes.py:74 order/status_codes.py:98 +#: build/serializers.py:1385 part/bom.py:185 part/serializers.py:1687 +#: part/templates/part/part_base.html:193 +#: templates/js/translated/sales_order.js:1910 +msgid "Available Stock" +msgstr "可用庫存" + +#: build/serializers.py:1386 +msgid "Available Substitute Stock" +msgstr "可用的替代品庫存" + +#: build/serializers.py:1387 +msgid "Available Variant Stock" +msgstr "可用的變體庫存" + +#: build/status_codes.py:11 generic/states/tests.py:21 +#: generic/states/tests.py:131 order/status_codes.py:12 +#: order/status_codes.py:44 order/status_codes.py:76 order/status_codes.py:102 #: templates/js/translated/table_filters.js:601 msgid "Pending" -msgstr "" +msgstr "待定" #: build/status_codes.py:12 msgid "Production" -msgstr "" +msgstr "生產" -#: build/status_codes.py:13 order/status_codes.py:14 order/status_codes.py:49 -#: order/status_codes.py:79 +#: build/status_codes.py:13 order/status_codes.py:14 order/status_codes.py:51 +#: order/status_codes.py:81 msgid "On Hold" -msgstr "" +msgstr "被掛起" -#: build/status_codes.py:14 order/status_codes.py:16 order/status_codes.py:51 -#: order/status_codes.py:82 +#: build/status_codes.py:14 order/status_codes.py:16 order/status_codes.py:53 +#: order/status_codes.py:84 msgid "Cancelled" -msgstr "" +msgstr "已取消" -#: build/status_codes.py:15 generic/states/tests.py:19 importer/models.py:509 -#: importer/status_codes.py:19 order/status_codes.py:15 -#: order/status_codes.py:50 order/status_codes.py:81 -#: order/templates/order/order_base.html:163 -#: order/templates/order/sales_order_base.html:168 report/models.py:443 +#: build/status_codes.py:15 generic/states/tests.py:23 importer/models.py:518 +#: importer/status_codes.py:27 order/status_codes.py:15 +#: order/status_codes.py:52 order/status_codes.py:83 +#: order/templates/order/order_base.html:172 +#: order/templates/order/sales_order_base.html:169 report/models.py:451 msgid "Complete" -msgstr "" +msgstr "完成" #: build/tasks.py:184 msgid "Stock required for build order" -msgstr "" +msgstr "生產訂單所需庫存" -#: build/tasks.py:201 +#: build/tasks.py:260 msgid "Overdue Build Order" -msgstr "" +msgstr "逾期的生產訂單" -#: build/tasks.py:206 +#: build/tasks.py:265 #, python-brace-format msgid "Build order {bo} is now overdue" -msgstr "" +msgstr "生產訂單 {bo} 現已逾期" -#: build/templates/build/build_base.html:18 +#: build/templates/build/build_base.html:19 msgid "Part thumbnail" -msgstr "" +msgstr "零件縮略圖" -#: build/templates/build/build_base.html:38 -#: company/templates/company/supplier_part.html:35 -#: order/templates/order/order_base.html:29 -#: order/templates/order/return_order_base.html:38 -#: order/templates/order/sales_order_base.html:38 -#: part/templates/part/part_base.html:41 -#: stock/templates/stock/item_base.html:40 -#: stock/templates/stock/location.html:52 +#: build/templates/build/build_base.html:39 +#: company/templates/company/supplier_part.html:36 +#: order/templates/order/order_base.html:30 +#: order/templates/order/return_order_base.html:39 +#: order/templates/order/sales_order_base.html:39 +#: part/templates/part/part_base.html:42 +#: stock/templates/stock/item_base.html:41 +#: stock/templates/stock/location.html:53 #: templates/js/translated/filters.js:338 msgid "Barcode actions" -msgstr "" +msgstr "條形碼操作" -#: build/templates/build/build_base.html:42 -#: company/templates/company/supplier_part.html:39 -#: order/templates/order/order_base.html:33 -#: order/templates/order/return_order_base.html:42 -#: order/templates/order/sales_order_base.html:42 -#: part/templates/part/part_base.html:44 -#: stock/templates/stock/item_base.html:44 -#: stock/templates/stock/location.html:54 templates/qr_button.html:1 +#: build/templates/build/build_base.html:43 +#: company/templates/company/supplier_part.html:40 +#: order/templates/order/order_base.html:34 +#: order/templates/order/return_order_base.html:43 +#: order/templates/order/sales_order_base.html:43 +#: part/templates/part/part_base.html:45 +#: stock/templates/stock/item_base.html:45 +#: stock/templates/stock/location.html:55 templates/qr_button.html:1 msgid "Show QR Code" -msgstr "" +msgstr "顯示二維碼" -#: build/templates/build/build_base.html:45 -#: company/templates/company/supplier_part.html:41 -#: order/templates/order/order_base.html:36 -#: order/templates/order/return_order_base.html:45 -#: order/templates/order/sales_order_base.html:45 -#: part/templates/part/part_base.html:47 -#: stock/templates/stock/item_base.html:47 -#: stock/templates/stock/location.html:56 +#: build/templates/build/build_base.html:46 +#: company/templates/company/supplier_part.html:42 +#: order/templates/order/order_base.html:37 +#: order/templates/order/return_order_base.html:46 +#: order/templates/order/sales_order_base.html:46 +#: part/templates/part/part_base.html:48 +#: stock/templates/stock/item_base.html:48 +#: stock/templates/stock/location.html:57 #: templates/js/translated/barcode.js:527 #: templates/js/translated/barcode.js:532 msgid "Unlink Barcode" -msgstr "" +msgstr "取消關聯條形碼" -#: build/templates/build/build_base.html:47 -#: company/templates/company/supplier_part.html:43 -#: order/templates/order/order_base.html:38 -#: order/templates/order/return_order_base.html:47 -#: order/templates/order/sales_order_base.html:47 -#: part/templates/part/part_base.html:49 -#: stock/templates/stock/item_base.html:49 -#: stock/templates/stock/location.html:58 +#: build/templates/build/build_base.html:48 +#: company/templates/company/supplier_part.html:44 +#: order/templates/order/order_base.html:39 +#: order/templates/order/return_order_base.html:48 +#: order/templates/order/sales_order_base.html:48 +#: part/templates/part/part_base.html:50 +#: stock/templates/stock/item_base.html:50 +#: stock/templates/stock/location.html:59 msgid "Link Barcode" -msgstr "" +msgstr "關聯條形碼" -#: build/templates/build/build_base.html:56 -#: order/templates/order/order_base.html:46 -#: order/templates/order/return_order_base.html:55 -#: order/templates/order/sales_order_base.html:55 +#: build/templates/build/build_base.html:57 +#: order/templates/order/order_base.html:47 +#: order/templates/order/return_order_base.html:56 +#: order/templates/order/sales_order_base.html:56 msgid "Print actions" -msgstr "" +msgstr "打印操作" -#: build/templates/build/build_base.html:60 +#: build/templates/build/build_base.html:61 msgid "Print build order report" -msgstr "" +msgstr "打印生產訂單報告" -#: build/templates/build/build_base.html:67 +#: build/templates/build/build_base.html:68 msgid "Build actions" -msgstr "" +msgstr "生產操作" -#: build/templates/build/build_base.html:71 +#: build/templates/build/build_base.html:72 msgid "Edit Build" -msgstr "" +msgstr "編輯生產操作" -#: build/templates/build/build_base.html:73 +#: build/templates/build/build_base.html:74 msgid "Duplicate Build" -msgstr "" +msgstr "複製生產操作" -#: build/templates/build/build_base.html:76 +#: build/templates/build/build_base.html:77 msgid "Hold Build" -msgstr "" +msgstr "掛起生產" -#: build/templates/build/build_base.html:79 +#: build/templates/build/build_base.html:80 msgid "Cancel Build" -msgstr "" +msgstr "取消生產操作" -#: build/templates/build/build_base.html:82 +#: build/templates/build/build_base.html:83 msgid "Delete Build" -msgstr "" - -#: build/templates/build/build_base.html:87 -msgid "Isueue Build" -msgstr "" +msgstr "刪除生產操作" #: build/templates/build/build_base.html:88 +#: build/templates/build/build_base.html:89 msgid "Issue Build" -msgstr "" +msgstr "發佈生產" -#: build/templates/build/build_base.html:91 #: build/templates/build/build_base.html:92 +#: build/templates/build/build_base.html:93 msgid "Complete Build" -msgstr "" +msgstr "生產操作完成" -#: build/templates/build/build_base.html:115 +#: build/templates/build/build_base.html:116 msgid "Build Description" -msgstr "" +msgstr "生產操作描述" -#: build/templates/build/build_base.html:125 +#: build/templates/build/build_base.html:126 msgid "No build outputs have been created for this build order" -msgstr "" +msgstr "沒有為此生產訂單創建生產產出" -#: build/templates/build/build_base.html:132 +#: build/templates/build/build_base.html:133 msgid "Build Order is ready to mark as completed" -msgstr "" +msgstr "生產訂單已準備好標記為已完成" -#: build/templates/build/build_base.html:137 +#: build/templates/build/build_base.html:138 msgid "Build Order cannot be completed as outstanding outputs remain" -msgstr "" +msgstr "由於仍有未完成的產出,生產訂單無法完成" -#: build/templates/build/build_base.html:142 +#: build/templates/build/build_base.html:143 msgid "Required build quantity has not yet been completed" -msgstr "" +msgstr "未完成所需生產數量" -#: build/templates/build/build_base.html:147 +#: build/templates/build/build_base.html:148 msgid "Stock has not been fully allocated to this Build Order" -msgstr "" +msgstr "庫存尚未被完全分配到此生產訂單" -#: build/templates/build/build_base.html:168 -#: build/templates/build/detail.html:138 order/models.py:308 -#: order/models.py:1391 order/serializers.py:174 -#: order/templates/order/order_base.html:191 -#: order/templates/order/return_order_base.html:167 -#: order/templates/order/sales_order_base.html:199 +#: build/templates/build/build_base.html:169 +#: build/templates/build/detail.html:138 order/models.py:315 +#: order/models.py:1408 order/serializers.py:254 +#: order/templates/order/order_base.html:200 +#: order/templates/order/return_order_base.html:168 +#: order/templates/order/sales_order_base.html:200 #: report/templates/report/inventree_build_order_report.html:125 -#: templates/js/translated/build.js:2411 templates/js/translated/part.js:1837 -#: templates/js/translated/purchase_order.js:1809 -#: templates/js/translated/purchase_order.js:2217 +#: templates/js/translated/build.js:2414 templates/js/translated/part.js:1837 +#: templates/js/translated/purchase_order.js:1793 +#: templates/js/translated/purchase_order.js:2201 #: templates/js/translated/return_order.js:346 #: templates/js/translated/return_order.js:749 -#: templates/js/translated/sales_order.js:871 -#: templates/js/translated/sales_order.js:1903 +#: templates/js/translated/sales_order.js:830 +#: templates/js/translated/sales_order.js:1884 msgid "Target Date" -msgstr "" +msgstr "預計日期" -#: build/templates/build/build_base.html:173 +#: build/templates/build/build_base.html:174 #, python-format msgid "This build was due on %(target)s" -msgstr "" +msgstr "此次生產的截止日期為 %(target)s" -#: build/templates/build/build_base.html:173 -#: build/templates/build/build_base.html:230 -#: order/templates/order/order_base.html:127 -#: order/templates/order/return_order_base.html:120 -#: order/templates/order/sales_order_base.html:129 +#: build/templates/build/build_base.html:174 +#: build/templates/build/build_base.html:231 +#: order/templates/order/order_base.html:128 +#: order/templates/order/return_order_base.html:121 +#: order/templates/order/sales_order_base.html:130 #: templates/js/translated/table_filters.js:97 #: templates/js/translated/table_filters.js:545 #: templates/js/translated/table_filters.js:629 #: templates/js/translated/table_filters.js:670 msgid "Overdue" -msgstr "" +msgstr "逾期" -#: build/templates/build/build_base.html:185 +#: build/templates/build/build_base.html:186 #: build/templates/build/detail.html:67 build/templates/build/sidebar.html:13 msgid "Completed Outputs" -msgstr "" +msgstr "產出已完成" -#: build/templates/build/build_base.html:198 -#: build/templates/build/detail.html:101 order/api.py:1406 order/models.py:892 -#: order/models.py:1650 order/models.py:1765 order/models.py:1924 -#: order/templates/order/sales_order_base.html:9 -#: order/templates/order/sales_order_base.html:28 +#: build/templates/build/build_base.html:199 +#: build/templates/build/detail.html:101 order/api.py:1528 order/models.py:914 +#: order/models.py:1666 order/models.py:1794 order/models.py:1957 +#: order/templates/order/sales_order_base.html:10 +#: order/templates/order/sales_order_base.html:29 #: report/templates/report/inventree_build_order_report.html:135 #: report/templates/report/inventree_sales_order_report.html:14 -#: stock/templates/stock/item_base.html:369 +#: report/templates/report/inventree_sales_order_shipment_report.html:15 +#: stock/templates/stock/item_base.html:366 #: templates/email/overdue_sales_order.html:15 -#: templates/js/translated/pricing.js:929 -#: templates/js/translated/sales_order.js:805 -#: templates/js/translated/sales_order.js:1028 -#: templates/js/translated/stock.js:3008 +#: templates/js/translated/pricing.js:927 +#: templates/js/translated/sales_order.js:764 +#: templates/js/translated/sales_order.js:1001 +#: templates/js/translated/stock.js:3009 msgid "Sales Order" -msgstr "" +msgstr "銷售訂單" -#: build/templates/build/build_base.html:219 -#: build/templates/build/detail.html:94 templates/js/translated/build.js:2328 +#: build/templates/build/build_base.html:220 +#: build/templates/build/detail.html:94 templates/js/translated/build.js:2331 msgid "Priority" -msgstr "" +msgstr "優先等級" -#: build/templates/build/build_base.html:267 +#: build/templates/build/build_base.html:268 msgid "Issue Build Order" -msgstr "" +msgstr "發佈生產訂單" -#: build/templates/build/build_base.html:271 +#: build/templates/build/build_base.html:272 msgid "Issue this Build Order?" -msgstr "" +msgstr "發佈此生產訂單?" -#: build/templates/build/build_base.html:302 +#: build/templates/build/build_base.html:303 msgid "Delete Build Order" -msgstr "" +msgstr "刪除生產訂單" -#: build/templates/build/build_base.html:312 +#: build/templates/build/build_base.html:313 msgid "Build Order QR Code" -msgstr "" +msgstr "生產訂單二維碼" -#: build/templates/build/build_base.html:324 +#: build/templates/build/build_base.html:325 msgid "Link Barcode to Build Order" -msgstr "" +msgstr "將條形碼鏈接到生產訂單" #: build/templates/build/detail.html:15 msgid "Build Details" -msgstr "" +msgstr "生產詳情" #: build/templates/build/detail.html:38 msgid "Stock Source" -msgstr "" +msgstr "庫存來源" #: build/templates/build/detail.html:43 msgid "Stock can be taken from any available location." -msgstr "" +msgstr "庫存可以從任何可用地點獲得。" -#: build/templates/build/detail.html:49 order/models.py:1532 -#: templates/js/translated/purchase_order.js:2259 +#: build/templates/build/detail.html:49 order/models.py:548 +#: order/models.py:1548 order/templates/order/order_base.html:135 +#: templates/js/translated/purchase_order.js:2243 msgid "Destination" -msgstr "" +msgstr "目的地" #: build/templates/build/detail.html:56 msgid "Destination location not specified" -msgstr "" +msgstr "未指定目的地" #: build/templates/build/detail.html:73 msgid "Allocated Parts" -msgstr "" +msgstr "已分配的零件" -#: build/templates/build/detail.html:80 stock/admin.py:162 -#: stock/templates/stock/item_base.html:162 -#: templates/js/translated/build.js:1553 -#: templates/js/translated/model_renderers.js:242 -#: templates/js/translated/purchase_order.js:1326 +#: build/templates/build/detail.html:80 +#: report/templates/report/inventree_sales_order_shipment_report.html:47 +#: stock/admin.py:163 stock/templates/stock/item_base.html:159 +#: templates/js/translated/build.js:1556 +#: templates/js/translated/model_renderers.js:245 +#: templates/js/translated/purchase_order.js:1309 #: templates/js/translated/stock.js:1139 templates/js/translated/stock.js:1240 -#: templates/js/translated/stock.js:2275 templates/js/translated/stock.js:3211 +#: templates/js/translated/stock.js:2276 templates/js/translated/stock.js:3212 #: templates/js/translated/table_filters.js:320 #: templates/js/translated/table_filters.js:411 msgid "Batch" -msgstr "" +msgstr "隊列" #: build/templates/build/detail.html:133 -#: order/templates/order/order_base.html:178 -#: order/templates/order/return_order_base.html:154 -#: order/templates/order/sales_order_base.html:193 -#: templates/js/translated/build.js:2371 +#: order/templates/order/order_base.html:187 +#: order/templates/order/return_order_base.html:155 +#: order/templates/order/sales_order_base.html:194 +#: templates/js/translated/build.js:2374 msgid "Created" -msgstr "" +msgstr "已創建" #: build/templates/build/detail.html:144 msgid "No target date set" -msgstr "" +msgstr "未設置目標日期" -#: build/templates/build/detail.html:149 -#: order/templates/order/sales_order_base.html:209 +#: build/templates/build/detail.html:149 order/api.py:794 +#: order/templates/order/sales_order_base.html:210 #: templates/js/translated/table_filters.js:692 msgid "Completed" -msgstr "" +msgstr "已完成" #: build/templates/build/detail.html:153 msgid "Build not complete" -msgstr "" +msgstr "生產未完成" #: build/templates/build/detail.html:164 build/templates/build/sidebar.html:21 msgid "Child Build Orders" -msgstr "" +msgstr "子生產訂單" #: build/templates/build/detail.html:177 msgid "Build Order Line Items" -msgstr "" +msgstr "生產訂單行項目" #: build/templates/build/detail.html:181 msgid "Deallocate stock" -msgstr "" +msgstr "取消庫存分配" #: build/templates/build/detail.html:182 msgid "Deallocate Stock" -msgstr "" +msgstr "取消庫存分配" #: build/templates/build/detail.html:184 msgid "Automatically allocate stock to build" -msgstr "" +msgstr "自動分配庫存以生產" #: build/templates/build/detail.html:185 msgid "Auto Allocate" -msgstr "" +msgstr "自動分配" #: build/templates/build/detail.html:187 msgid "Manually allocate stock to build" -msgstr "" +msgstr "手動分配庫存進行生產" #: build/templates/build/detail.html:188 msgid "Allocate Stock" -msgstr "" +msgstr "分配庫存" #: build/templates/build/detail.html:191 msgid "Order required parts" -msgstr "" +msgstr "訂單所需零件" #: build/templates/build/detail.html:192 -#: templates/js/translated/purchase_order.js:795 +#: templates/js/translated/purchase_order.js:778 msgid "Order Parts" -msgstr "" +msgstr "訂購零件" #: build/templates/build/detail.html:205 msgid "Available stock has been filtered based on specified source location for this build order" -msgstr "" +msgstr "可用庫存已根據此生產訂單指定的來源位置進行篩選" #: build/templates/build/detail.html:215 msgid "Incomplete Build Outputs" -msgstr "" +msgstr "未完成產出" #: build/templates/build/detail.html:219 msgid "Create new build output" -msgstr "" +msgstr "創建新的生產產出" #: build/templates/build/detail.html:220 msgid "New Build Output" -msgstr "" +msgstr "新建生產產出" #: build/templates/build/detail.html:249 build/templates/build/sidebar.html:19 msgid "Consumed Stock" -msgstr "" +msgstr "已消耗的庫存" #: build/templates/build/detail.html:261 msgid "Completed Build Outputs" -msgstr "" +msgstr "已完成的產出" #: build/templates/build/detail.html:273 msgid "Build test statistics" -msgstr "" +msgstr "構建測試統計數據" #: build/templates/build/detail.html:288 build/templates/build/sidebar.html:27 #: company/templates/company/detail.html:229 @@ -2098,29 +2126,29 @@ msgstr "" #: part/templates/part/part_sidebar.html:63 stock/templates/stock/item.html:110 #: stock/templates/stock/stock_sidebar.html:23 msgid "Attachments" -msgstr "" +msgstr "附件" #: build/templates/build/detail.html:303 msgid "Build Notes" -msgstr "" +msgstr "生產備註" #: build/templates/build/detail.html:458 msgid "Allocation Complete" -msgstr "" +msgstr "分配完成" #: build/templates/build/detail.html:459 msgid "All lines have been fully allocated" -msgstr "" +msgstr "所有行項目已全部分配" #: build/templates/build/index.html:18 part/templates/part/detail.html:335 msgid "New Build Order" -msgstr "" +msgstr "新建生產訂單" #: build/templates/build/sidebar.html:5 msgid "Build Order Details" -msgstr "" +msgstr "生產訂單詳情" -#: build/templates/build/sidebar.html:8 order/serializers.py:82 +#: build/templates/build/sidebar.html:8 order/serializers.py:113 #: order/templates/order/po_sidebar.html:5 #: order/templates/order/return_order_detail.html:18 #: order/templates/order/so_sidebar.html:5 @@ -2128,1981 +2156,2132 @@ msgstr "" #: report/templates/report/inventree_return_order_report.html:19 #: report/templates/report/inventree_sales_order_report.html:22 msgid "Line Items" -msgstr "" +msgstr "行項目" #: build/templates/build/sidebar.html:10 msgid "Incomplete Outputs" -msgstr "" +msgstr "未完成的產出" #: build/templates/build/sidebar.html:24 #: part/templates/part/part_sidebar.html:56 msgid "Test Statistics" -msgstr "" +msgstr "測試統計" -#: common/api.py:693 +#: common/api.py:725 msgid "Is Link" -msgstr "" +msgstr "是否鏈接" -#: common/api.py:701 +#: common/api.py:733 msgid "Is File" -msgstr "" +msgstr "是否為文件" -#: common/api.py:744 +#: common/api.py:776 msgid "User does not have permission to delete these attachments" -msgstr "" +msgstr "用户沒有權限刪除此附件" -#: common/api.py:761 +#: common/api.py:793 msgid "User does not have permission to delete this attachment" -msgstr "" - -#: common/currency.py:132 -msgid "Invalid currency code" -msgstr "" +msgstr "用户沒有權限刪除此附件" #: common/currency.py:134 +msgid "Invalid currency code" +msgstr "無效的貨幣代碼" + +#: common/currency.py:136 msgid "Duplicate currency code" -msgstr "" +msgstr "重複的貨幣代碼" -#: common/currency.py:139 +#: common/currency.py:141 msgid "No valid currency codes provided" -msgstr "" +msgstr "未提供有效的貨幣代碼" -#: common/currency.py:156 +#: common/currency.py:158 msgid "No plugin" -msgstr "" - -#: common/files.py:63 -#, python-brace-format -msgid "Unsupported file format: {fmt}" -msgstr "" +msgstr "暫無插件" #: common/files.py:65 msgid "Error reading file (invalid encoding)" -msgstr "" +msgstr "讀取文件時發生錯誤 (無效編碼)" #: common/files.py:70 msgid "Error reading file (invalid format)" -msgstr "" +msgstr "讀取文件時發生錯誤 (無效格式)" #: common/files.py:72 msgid "Error reading file (incorrect dimension)" -msgstr "" +msgstr "讀取文件時發生錯誤 (尺寸錯誤)" #: common/files.py:74 msgid "Error reading file (data could be corrupted)" -msgstr "" +msgstr "讀取文件時發生錯誤 (數據可能已損壞)" -#: common/forms.py:12 +#: common/forms.py:12 common/forms.py:25 msgid "File" -msgstr "" +msgstr "檔案" -#: common/forms.py:12 +#: common/forms.py:12 common/forms.py:26 msgid "Select file to upload" -msgstr "" +msgstr "選擇要上傳的檔案" -#: common/forms.py:25 -msgid "{name.title()} File" -msgstr "" - -#: common/forms.py:26 -#, python-brace-format -msgid "Select {name} file to upload" -msgstr "" - -#: common/models.py:86 +#: common/models.py:89 msgid "Updated" -msgstr "" +msgstr "已是最新" -#: common/models.py:87 +#: common/models.py:90 msgid "Timestamp of last update" -msgstr "" +msgstr "最後更新時間戳" -#: common/models.py:120 +#: common/models.py:123 msgid "Site URL is locked by configuration" -msgstr "" +msgstr "網站 URL 已配置為鎖定" -#: common/models.py:150 +#: common/models.py:153 msgid "Unique project code" -msgstr "" +msgstr "唯一項目編碼" -#: common/models.py:157 +#: common/models.py:160 msgid "Project description" -msgstr "" +msgstr "項目描述" -#: common/models.py:166 +#: common/models.py:169 msgid "User or group responsible for this project" -msgstr "" +msgstr "負責此項目的用户或羣組" -#: common/models.py:783 -msgid "Settings key (must be unique - case insensitive)" +#: common/models.py:783 common/models.py:2236 common/models.py:2613 +msgid "Settings key" msgstr "" #: common/models.py:787 msgid "Settings value" -msgstr "" +msgstr "設定值" -#: common/models.py:839 +#: common/models.py:842 msgid "Chosen value is not a valid option" -msgstr "" +msgstr "所選值不是一個有效的選項" -#: common/models.py:855 +#: common/models.py:858 msgid "Value must be a boolean value" -msgstr "" +msgstr "該值必須是布爾值" -#: common/models.py:863 +#: common/models.py:866 msgid "Value must be an integer value" +msgstr "該值必須為整數" + +#: common/models.py:874 +msgid "Value must be a valid number" msgstr "" -#: common/models.py:900 +#: common/models.py:899 +msgid "Value does not pass validation checks" +msgstr "" + +#: common/models.py:921 msgid "Key string must be unique" -msgstr "" +msgstr "鍵字符串必須是唯一的" -#: common/models.py:1132 +#: common/models.py:1189 msgid "No group" -msgstr "" +msgstr "無分組" -#: common/models.py:1231 +#: common/models.py:1288 msgid "Restart required" -msgstr "" - -#: common/models.py:1233 -msgid "A setting has been changed which requires a server restart" -msgstr "" - -#: common/models.py:1240 -msgid "Pending migrations" -msgstr "" - -#: common/models.py:1241 -msgid "Number of pending database migrations" -msgstr "" - -#: common/models.py:1246 -msgid "Server Instance Name" -msgstr "" - -#: common/models.py:1248 -msgid "String descriptor for the server instance" -msgstr "" - -#: common/models.py:1252 -msgid "Use instance name" -msgstr "" - -#: common/models.py:1253 -msgid "Use the instance name in the title-bar" -msgstr "" - -#: common/models.py:1258 -msgid "Restrict showing `about`" -msgstr "" - -#: common/models.py:1259 -msgid "Show the `about` modal only to superusers" -msgstr "" - -#: common/models.py:1264 company/models.py:111 company/models.py:112 -msgid "Company name" -msgstr "" - -#: common/models.py:1265 -msgid "Internal company name" -msgstr "" - -#: common/models.py:1269 -msgid "Base URL" -msgstr "" - -#: common/models.py:1270 -msgid "Base URL for server instance" -msgstr "" - -#: common/models.py:1276 -msgid "Default Currency" -msgstr "" - -#: common/models.py:1277 -msgid "Select base currency for pricing calculations" -msgstr "" - -#: common/models.py:1283 -msgid "Supported Currencies" -msgstr "" - -#: common/models.py:1284 -msgid "List of supported currency codes" -msgstr "" +msgstr "需要重啓" #: common/models.py:1290 -msgid "Currency Update Interval" -msgstr "" +msgid "A setting has been changed which requires a server restart" +msgstr "設置已更改,需要服務器重啓" -#: common/models.py:1292 -msgid "How often to update exchange rates (set to zero to disable)" -msgstr "" +#: common/models.py:1297 +msgid "Pending migrations" +msgstr "等待遷移" -#: common/models.py:1295 common/models.py:1351 common/models.py:1364 -#: common/models.py:1372 common/models.py:1381 common/models.py:1390 -#: common/models.py:1627 common/models.py:1649 common/models.py:1764 -#: common/models.py:2146 -msgid "days" -msgstr "" +#: common/models.py:1298 +msgid "Number of pending database migrations" +msgstr "待處理的數據庫遷移數" -#: common/models.py:1299 -msgid "Currency Update Plugin" -msgstr "" - -#: common/models.py:1300 -msgid "Currency update plugin to use" -msgstr "" +#: common/models.py:1303 +msgid "Server Instance Name" +msgstr "服務器實例名稱" #: common/models.py:1305 -msgid "Download from URL" -msgstr "" +msgid "String descriptor for the server instance" +msgstr "服務器實例的字符串描述符" -#: common/models.py:1307 -msgid "Allow download of remote images and files from external URL" -msgstr "" +#: common/models.py:1309 +msgid "Use instance name" +msgstr "使用實例名稱" -#: common/models.py:1313 -msgid "Download Size Limit" -msgstr "" +#: common/models.py:1310 +msgid "Use the instance name in the title-bar" +msgstr "在標題欄中使用實例名稱" -#: common/models.py:1314 -msgid "Maximum allowable download size for remote image" -msgstr "" +#: common/models.py:1315 +msgid "Restrict showing `about`" +msgstr "限制顯示 `關於` 信息" -#: common/models.py:1320 -msgid "User-agent used to download from URL" -msgstr "" +#: common/models.py:1316 +msgid "Show the `about` modal only to superusers" +msgstr "只向超級管理員顯示關於信息" + +#: common/models.py:1321 company/models.py:108 company/models.py:109 +msgid "Company name" +msgstr "公司名稱" #: common/models.py:1322 -msgid "Allow to override the user-agent used to download images and files from external URL (leave blank for the default)" -msgstr "" +msgid "Internal company name" +msgstr "內部公司名稱" + +#: common/models.py:1326 +msgid "Base URL" +msgstr "基本 URL" #: common/models.py:1327 -msgid "Strict URL Validation" -msgstr "" - -#: common/models.py:1328 -msgid "Require schema specification when validating URLs" -msgstr "" +msgid "Base URL for server instance" +msgstr "服務器實例的基準 URL" #: common/models.py:1333 -msgid "Require confirm" -msgstr "" +msgid "Default Currency" +msgstr "默認貨幣單位" #: common/models.py:1334 -msgid "Require explicit user confirmation for certain action." -msgstr "" +msgid "Select base currency for pricing calculations" +msgstr "選擇價格計算的默認貨幣" -#: common/models.py:1339 -msgid "Tree Depth" -msgstr "" +#: common/models.py:1340 +msgid "Supported Currencies" +msgstr "支持幣種" #: common/models.py:1341 -msgid "Default tree depth for treeview. Deeper levels can be lazy loaded as they are needed." -msgstr "" +msgid "List of supported currency codes" +msgstr "支持的貨幣代碼列表" #: common/models.py:1347 -msgid "Update Check Interval" -msgstr "" +msgid "Currency Update Interval" +msgstr "貨幣更新間隔時間" -#: common/models.py:1348 -msgid "How often to check for updates (set to zero to disable)" -msgstr "" +#: common/models.py:1349 +msgid "How often to update exchange rates (set to zero to disable)" +msgstr "檢查更新的頻率(設置為零以禁用)" -#: common/models.py:1354 -msgid "Automatic Backup" -msgstr "" +#: common/models.py:1352 common/models.py:1408 common/models.py:1421 +#: common/models.py:1429 common/models.py:1438 common/models.py:1447 +#: common/models.py:1696 common/models.py:1718 common/models.py:1819 +#: common/models.py:2208 +msgid "days" +msgstr "天" -#: common/models.py:1355 -msgid "Enable automatic backup of database and media files" -msgstr "" +#: common/models.py:1356 +msgid "Currency Update Plugin" +msgstr "幣種更新插件" -#: common/models.py:1360 -msgid "Auto Backup Interval" -msgstr "" +#: common/models.py:1357 +msgid "Currency update plugin to use" +msgstr "使用貨幣更新插件" -#: common/models.py:1361 -msgid "Specify number of days between automated backup events" -msgstr "" +#: common/models.py:1362 +msgid "Download from URL" +msgstr "從URL下載" -#: common/models.py:1367 -msgid "Task Deletion Interval" -msgstr "" +#: common/models.py:1364 +msgid "Allow download of remote images and files from external URL" +msgstr "允許從外部 URL 下載遠程圖片和文件" -#: common/models.py:1369 -msgid "Background task results will be deleted after specified number of days" -msgstr "" +#: common/models.py:1370 +msgid "Download Size Limit" +msgstr "下載大小限制" -#: common/models.py:1376 -msgid "Error Log Deletion Interval" -msgstr "" +#: common/models.py:1371 +msgid "Maximum allowable download size for remote image" +msgstr "遠程圖片的最大允許下載大小" -#: common/models.py:1378 -msgid "Error logs will be deleted after specified number of days" -msgstr "" +#: common/models.py:1377 +msgid "User-agent used to download from URL" +msgstr "用於從 URL 下載的 User-agent" + +#: common/models.py:1379 +msgid "Allow to override the user-agent used to download images and files from external URL (leave blank for the default)" +msgstr "允許覆蓋用於從外部 URL 下載圖片和文件的 user-agent(留空為默認值)" + +#: common/models.py:1384 +msgid "Strict URL Validation" +msgstr "嚴格的 URL 驗證" #: common/models.py:1385 -msgid "Notification Deletion Interval" -msgstr "" +msgid "Require schema specification when validating URLs" +msgstr "驗證 URL 時需要 schema 規範" -#: common/models.py:1387 -msgid "User notifications will be deleted after specified number of days" -msgstr "" +#: common/models.py:1390 +msgid "Require confirm" +msgstr "需要確認" -#: common/models.py:1394 templates/InvenTree/settings/sidebar.html:31 -msgid "Barcode Support" -msgstr "" +#: common/models.py:1391 +msgid "Require explicit user confirmation for certain action." +msgstr "對某些操作需要用户明確確認。" -#: common/models.py:1395 -msgid "Enable barcode scanner support in the web interface" -msgstr "" +#: common/models.py:1396 +msgid "Tree Depth" +msgstr "樹深度" -#: common/models.py:1400 -msgid "Barcode Input Delay" -msgstr "" +#: common/models.py:1398 +msgid "Default tree depth for treeview. Deeper levels can be lazy loaded as they are needed." +msgstr "樹視圖的默認樹深度。更深的層級可以在需要時延遲加載。" -#: common/models.py:1401 -msgid "Barcode input processing delay time" -msgstr "" +#: common/models.py:1404 +msgid "Update Check Interval" +msgstr "更新檢查間隔" -#: common/models.py:1407 -msgid "Barcode Webcam Support" -msgstr "" +#: common/models.py:1405 +msgid "How often to check for updates (set to zero to disable)" +msgstr "檢查更新的頻率(設置為零以禁用)" -#: common/models.py:1408 -msgid "Allow barcode scanning via webcam in browser" -msgstr "" +#: common/models.py:1411 +msgid "Automatic Backup" +msgstr "自動備份" -#: common/models.py:1413 -msgid "Barcode Show Data" -msgstr "" +#: common/models.py:1412 +msgid "Enable automatic backup of database and media files" +msgstr "啟動資料庫和媒體文件自動備份" -#: common/models.py:1414 -msgid "Display barcode data in browser as text" -msgstr "" +#: common/models.py:1417 +msgid "Auto Backup Interval" +msgstr "自動備份間隔" -#: common/models.py:1419 -msgid "Barcode Generation Plugin" -msgstr "" +#: common/models.py:1418 +msgid "Specify number of days between automated backup events" +msgstr "指定自動備份之間的間隔天數" -#: common/models.py:1420 -msgid "Plugin to use for internal barcode data generation" -msgstr "" - -#: common/models.py:1425 -msgid "Part Revisions" -msgstr "" +#: common/models.py:1424 +msgid "Task Deletion Interval" +msgstr "任務刪除間隔" #: common/models.py:1426 -msgid "Enable revision field for Part" -msgstr "" +msgid "Background task results will be deleted after specified number of days" +msgstr "後台任務結果將在指定天數後刪除" -#: common/models.py:1431 -msgid "Assembly Revision Only" -msgstr "" +#: common/models.py:1433 +msgid "Error Log Deletion Interval" +msgstr "錯誤日誌刪除間隔" -#: common/models.py:1432 -msgid "Only allow revisions for assembly parts" -msgstr "" +#: common/models.py:1435 +msgid "Error logs will be deleted after specified number of days" +msgstr "錯誤日誌將在指定天數後被刪除" -#: common/models.py:1437 -msgid "Allow Deletion from Assembly" -msgstr "" - -#: common/models.py:1438 -msgid "Allow deletion of parts which are used in an assembly" -msgstr "" - -#: common/models.py:1443 -msgid "IPN Regex" -msgstr "" +#: common/models.py:1442 +msgid "Notification Deletion Interval" +msgstr "通知刪除間隔" #: common/models.py:1444 -msgid "Regular expression pattern for matching Part IPN" -msgstr "" +msgid "User notifications will be deleted after specified number of days" +msgstr "用户通知將在指定天數後被刪除" -#: common/models.py:1447 -msgid "Allow Duplicate IPN" -msgstr "" +#: common/models.py:1451 templates/InvenTree/settings/sidebar.html:31 +msgid "Barcode Support" +msgstr "條形碼支持" -#: common/models.py:1448 -msgid "Allow multiple parts to share the same IPN" -msgstr "" +#: common/models.py:1452 +msgid "Enable barcode scanner support in the web interface" +msgstr "在網頁界面啓用條形碼掃描器支持" -#: common/models.py:1453 -msgid "Allow Editing IPN" -msgstr "" +#: common/models.py:1457 +msgid "Store Barcode Results" +msgstr "存儲條碼結果" -#: common/models.py:1454 -msgid "Allow changing the IPN value while editing a part" -msgstr "" +#: common/models.py:1458 +msgid "Store barcode scan results in the database" +msgstr "存儲條碼掃描結果" -#: common/models.py:1459 -msgid "Copy Part BOM Data" -msgstr "" +#: common/models.py:1463 +msgid "Barcode Scans Maximum Count" +msgstr "條碼掃描最大計數" -#: common/models.py:1460 -msgid "Copy BOM data by default when duplicating a part" -msgstr "" +#: common/models.py:1464 +msgid "Maximum number of barcode scan results to store" +msgstr "存儲條碼掃描結果的最大數量" -#: common/models.py:1465 -msgid "Copy Part Parameter Data" -msgstr "" +#: common/models.py:1469 +msgid "Barcode Input Delay" +msgstr "條形碼掃描延遲設置" -#: common/models.py:1466 -msgid "Copy parameter data by default when duplicating a part" -msgstr "" +#: common/models.py:1470 +msgid "Barcode input processing delay time" +msgstr "條形碼輸入處理延遲時間" -#: common/models.py:1471 -msgid "Copy Part Test Data" -msgstr "" - -#: common/models.py:1472 -msgid "Copy test data by default when duplicating a part" -msgstr "" +#: common/models.py:1476 +msgid "Barcode Webcam Support" +msgstr "條碼攝像頭支持" #: common/models.py:1477 +msgid "Allow barcode scanning via webcam in browser" +msgstr "允許通過網絡攝像頭掃描條形碼" + +#: common/models.py:1482 +msgid "Barcode Show Data" +msgstr "條形碼顯示數據" + +#: common/models.py:1483 +msgid "Display barcode data in browser as text" +msgstr "在瀏覽器中將條形碼數據顯示為文本" + +#: common/models.py:1488 +msgid "Barcode Generation Plugin" +msgstr "條形碼生成插件" + +#: common/models.py:1489 +msgid "Plugin to use for internal barcode data generation" +msgstr "用於內部條形碼數據生成的插件" + +#: common/models.py:1494 +msgid "Part Revisions" +msgstr "零件修訂" + +#: common/models.py:1495 +msgid "Enable revision field for Part" +msgstr "啓用零件修訂字段" + +#: common/models.py:1500 +msgid "Assembly Revision Only" +msgstr "僅限裝配修訂版本" + +#: common/models.py:1501 +msgid "Only allow revisions for assembly parts" +msgstr "僅允許對裝配零件進行修訂" + +#: common/models.py:1506 +msgid "Allow Deletion from Assembly" +msgstr "允許從裝配中刪除" + +#: common/models.py:1507 +msgid "Allow deletion of parts which are used in an assembly" +msgstr "允許刪除已在裝配中使用的零件" + +#: common/models.py:1512 +msgid "IPN Regex" +msgstr "IPN 內部零件號" + +#: common/models.py:1513 +msgid "Regular expression pattern for matching Part IPN" +msgstr "匹配零件 IPN(內部零件號)的正則表達式模式" + +#: common/models.py:1516 +msgid "Allow Duplicate IPN" +msgstr "允許重複的 IPN(內部零件號)" + +#: common/models.py:1517 +msgid "Allow multiple parts to share the same IPN" +msgstr "允許多個零件共享相同的 IPN(內部零件號)" + +#: common/models.py:1522 +msgid "Allow Editing IPN" +msgstr "允許編輯 IPN(內部零件號)" + +#: common/models.py:1523 +msgid "Allow changing the IPN value while editing a part" +msgstr "允許編輯零件時更改內部零件號" + +#: common/models.py:1528 +msgid "Copy Part BOM Data" +msgstr "複製零件物料清單數據" + +#: common/models.py:1529 +msgid "Copy BOM data by default when duplicating a part" +msgstr "複製零件時默認複製物料清單數據" + +#: common/models.py:1534 +msgid "Copy Part Parameter Data" +msgstr "複製零件參數數據" + +#: common/models.py:1535 +msgid "Copy parameter data by default when duplicating a part" +msgstr "複製零件時默認複製參數數據" + +#: common/models.py:1540 +msgid "Copy Part Test Data" +msgstr "複製零件測試數據" + +#: common/models.py:1541 +msgid "Copy test data by default when duplicating a part" +msgstr "複製零件時默認複製測試數據" + +#: common/models.py:1546 msgid "Copy Category Parameter Templates" -msgstr "" +msgstr "複製類別參數模板" -#: common/models.py:1478 +#: common/models.py:1547 msgid "Copy category parameter templates when creating a part" -msgstr "" +msgstr "創建零件時複製類別參數模板" -#: common/models.py:1483 part/admin.py:108 part/models.py:3945 -#: report/models.py:293 report/models.py:360 report/serializers.py:90 -#: report/serializers.py:131 stock/serializers.py:232 +#: common/models.py:1552 part/admin.py:108 part/models.py:4003 +#: report/models.py:301 report/models.py:368 report/serializers.py:91 +#: report/serializers.py:132 stock/serializers.py:233 #: templates/js/translated/table_filters.js:138 #: templates/js/translated/table_filters.js:775 msgid "Template" -msgstr "" +msgstr "模板" -#: common/models.py:1484 +#: common/models.py:1553 msgid "Parts are templates by default" -msgstr "" +msgstr "零件默認為模板" -#: common/models.py:1490 +#: common/models.py:1559 msgid "Parts can be assembled from other components by default" -msgstr "" +msgstr "默認情況下,元件可由其他零件組裝而成" -#: common/models.py:1495 part/admin.py:95 part/models.py:1160 -#: part/serializers.py:1596 templates/js/translated/table_filters.js:737 +#: common/models.py:1564 part/admin.py:95 part/models.py:1221 +#: part/serializers.py:1654 templates/js/translated/table_filters.js:737 msgid "Component" -msgstr "" +msgstr "組件" -#: common/models.py:1496 +#: common/models.py:1565 msgid "Parts can be used as sub-components by default" -msgstr "" +msgstr "默認情況下,零件可用作子部件" -#: common/models.py:1501 part/admin.py:100 part/models.py:1178 +#: common/models.py:1570 part/admin.py:100 part/models.py:1239 msgid "Purchaseable" -msgstr "" +msgstr "可購買" -#: common/models.py:1502 +#: common/models.py:1571 msgid "Parts are purchaseable by default" -msgstr "" +msgstr "默認情況下可購買零件" -#: common/models.py:1507 part/admin.py:104 part/models.py:1184 +#: common/models.py:1576 part/admin.py:104 part/models.py:1245 #: templates/js/translated/table_filters.js:763 msgid "Salable" -msgstr "" +msgstr "可銷售" -#: common/models.py:1508 +#: common/models.py:1577 msgid "Parts are salable by default" -msgstr "" +msgstr "零件默認為可銷售" -#: common/models.py:1514 +#: common/models.py:1583 msgid "Parts are trackable by default" -msgstr "" +msgstr "默認情況下可跟蹤零件" -#: common/models.py:1519 part/admin.py:117 part/models.py:1200 -#: part/templates/part/part_base.html:154 +#: common/models.py:1588 part/admin.py:117 part/models.py:1261 +#: part/templates/part/part_base.html:155 #: templates/js/translated/table_filters.js:142 #: templates/js/translated/table_filters.js:787 msgid "Virtual" -msgstr "" +msgstr "虛擬的" -#: common/models.py:1520 +#: common/models.py:1589 msgid "Parts are virtual by default" -msgstr "" +msgstr "默認情況下,零件是虛擬的" -#: common/models.py:1525 +#: common/models.py:1594 msgid "Show Import in Views" -msgstr "" +msgstr "在視圖中顯示導入" -#: common/models.py:1526 +#: common/models.py:1595 msgid "Display the import wizard in some part views" -msgstr "" - -#: common/models.py:1531 -msgid "Show related parts" -msgstr "" - -#: common/models.py:1532 -msgid "Display related parts for a part" -msgstr "" - -#: common/models.py:1537 -msgid "Initial Stock Data" -msgstr "" - -#: common/models.py:1538 -msgid "Allow creation of initial stock when adding a new part" -msgstr "" - -#: common/models.py:1543 templates/js/translated/part.js:108 -msgid "Initial Supplier Data" -msgstr "" - -#: common/models.py:1545 -msgid "Allow creation of initial supplier data when adding a new part" -msgstr "" - -#: common/models.py:1551 -msgid "Part Name Display Format" -msgstr "" - -#: common/models.py:1552 -msgid "Format to display the part name" -msgstr "" - -#: common/models.py:1558 -msgid "Part Category Default Icon" -msgstr "" - -#: common/models.py:1559 -msgid "Part category default icon (empty means no icon)" -msgstr "" - -#: common/models.py:1564 -msgid "Enforce Parameter Units" -msgstr "" - -#: common/models.py:1566 -msgid "If units are provided, parameter values must match the specified units" -msgstr "" - -#: common/models.py:1572 -msgid "Minimum Pricing Decimal Places" -msgstr "" - -#: common/models.py:1574 -msgid "Minimum number of decimal places to display when rendering pricing data" -msgstr "" - -#: common/models.py:1585 -msgid "Maximum Pricing Decimal Places" -msgstr "" - -#: common/models.py:1587 -msgid "Maximum number of decimal places to display when rendering pricing data" -msgstr "" - -#: common/models.py:1598 -msgid "Use Supplier Pricing" -msgstr "" +msgstr "在某些零件視圖中顯示導入嚮導" #: common/models.py:1600 -msgid "Include supplier price breaks in overall pricing calculations" -msgstr "" +msgid "Show related parts" +msgstr "顯示相關零件" + +#: common/models.py:1601 +msgid "Display related parts for a part" +msgstr "顯示零件的相關零件" #: common/models.py:1606 -msgid "Purchase History Override" -msgstr "" +msgid "Initial Stock Data" +msgstr "初始庫存數據" -#: common/models.py:1608 -msgid "Historical purchase order pricing overrides supplier price breaks" -msgstr "" +#: common/models.py:1607 +msgid "Allow creation of initial stock when adding a new part" +msgstr "允許在添加新零件時創建初始庫存" + +#: common/models.py:1612 templates/js/translated/part.js:108 +msgid "Initial Supplier Data" +msgstr "初始供應商數據" #: common/models.py:1614 -msgid "Use Stock Item Pricing" -msgstr "" +msgid "Allow creation of initial supplier data when adding a new part" +msgstr "允許在添加新零件時創建初始供應商數據" -#: common/models.py:1616 -msgid "Use pricing from manually entered stock data for pricing calculations" -msgstr "" +#: common/models.py:1620 +msgid "Part Name Display Format" +msgstr "零件名稱顯示格式" -#: common/models.py:1622 -msgid "Stock Item Pricing Age" -msgstr "" +#: common/models.py:1621 +msgid "Format to display the part name" +msgstr "顯示零件名稱的格式" -#: common/models.py:1624 -msgid "Exclude stock items older than this number of days from pricing calculations" -msgstr "" +#: common/models.py:1627 +msgid "Part Category Default Icon" +msgstr "零件類別默認圖標" -#: common/models.py:1631 -msgid "Use Variant Pricing" -msgstr "" +#: common/models.py:1628 +msgid "Part category default icon (empty means no icon)" +msgstr "零件類別默認圖標 (空表示沒有圖標)" -#: common/models.py:1632 -msgid "Include variant pricing in overall pricing calculations" -msgstr "" +#: common/models.py:1633 +msgid "Enforce Parameter Units" +msgstr "強制參數單位" -#: common/models.py:1637 -msgid "Active Variants Only" -msgstr "" +#: common/models.py:1635 +msgid "If units are provided, parameter values must match the specified units" +msgstr "如果提供了單位,參數值必須與指定的單位匹配" -#: common/models.py:1639 -msgid "Only use active variant parts for calculating variant pricing" -msgstr "" +#: common/models.py:1641 +msgid "Minimum Pricing Decimal Places" +msgstr "最小定價小數位數" -#: common/models.py:1645 -msgid "Pricing Rebuild Interval" -msgstr "" - -#: common/models.py:1647 -msgid "Number of days before part pricing is automatically updated" -msgstr "" +#: common/models.py:1643 +msgid "Minimum number of decimal places to display when rendering pricing data" +msgstr "呈現定價數據時顯示的最小小數位數" #: common/models.py:1654 -msgid "Internal Prices" -msgstr "" +msgid "Maximum Pricing Decimal Places" +msgstr "最大定價小數位數" -#: common/models.py:1655 -msgid "Enable internal prices for parts" -msgstr "" +#: common/models.py:1656 +msgid "Maximum number of decimal places to display when rendering pricing data" +msgstr "呈現定價數據時顯示的最大小數位數" -#: common/models.py:1660 -msgid "Internal Price Override" -msgstr "" - -#: common/models.py:1662 -msgid "If available, internal prices override price range calculations" -msgstr "" - -#: common/models.py:1668 -msgid "Enable label printing" -msgstr "" +#: common/models.py:1667 +msgid "Use Supplier Pricing" +msgstr "使用供應商定價" #: common/models.py:1669 -msgid "Enable label printing from the web interface" -msgstr "" +msgid "Include supplier price breaks in overall pricing calculations" +msgstr "將供應商的價批發價納入總體定價計算中" -#: common/models.py:1674 -msgid "Label Image DPI" -msgstr "" +#: common/models.py:1675 +msgid "Purchase History Override" +msgstr "購買歷史記錄覆蓋" -#: common/models.py:1676 -msgid "DPI resolution when generating image files to supply to label printing plugins" -msgstr "" - -#: common/models.py:1682 -msgid "Enable Reports" -msgstr "" +#: common/models.py:1677 +msgid "Historical purchase order pricing overrides supplier price breaks" +msgstr "歷史採購訂單定價優先於供應商批發價" #: common/models.py:1683 -msgid "Enable generation of reports" -msgstr "" +msgid "Use Stock Item Pricing" +msgstr "使用庫存項定價" -#: common/models.py:1688 templates/stats.html:25 -msgid "Debug Mode" -msgstr "" +#: common/models.py:1685 +msgid "Use pricing from manually entered stock data for pricing calculations" +msgstr "使用手動輸入的庫存數據進行定價計算" -#: common/models.py:1689 -msgid "Generate reports in debug mode (HTML output)" -msgstr "" +#: common/models.py:1691 +msgid "Stock Item Pricing Age" +msgstr "庫存項目定價時間" -#: common/models.py:1694 -msgid "Log Report Errors" -msgstr "" +#: common/models.py:1693 +msgid "Exclude stock items older than this number of days from pricing calculations" +msgstr "從定價計算中排除超過此天數的庫存項目" -#: common/models.py:1695 -msgid "Log errors which occur when generating reports" -msgstr "" - -#: common/models.py:1700 plugin/builtin/labels/label_sheet.py:28 -#: report/models.py:301 -msgid "Page Size" -msgstr "" +#: common/models.py:1700 +msgid "Use Variant Pricing" +msgstr "使用變體定價" #: common/models.py:1701 -msgid "Default page size for PDF reports" -msgstr "" +msgid "Include variant pricing in overall pricing calculations" +msgstr "在整體定價計算中包括變體定價" #: common/models.py:1706 -msgid "Enable Test Reports" -msgstr "" +msgid "Active Variants Only" +msgstr "僅限活躍變體" -#: common/models.py:1707 -msgid "Enable generation of test reports" -msgstr "" - -#: common/models.py:1712 -msgid "Attach Test Reports" -msgstr "" +#: common/models.py:1708 +msgid "Only use active variant parts for calculating variant pricing" +msgstr "僅使用活躍變體零件計算變體價格" #: common/models.py:1714 -msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item" -msgstr "" +msgid "Pricing Rebuild Interval" +msgstr "價格重建間隔" -#: common/models.py:1720 -msgid "Globally Unique Serials" -msgstr "" +#: common/models.py:1716 +msgid "Number of days before part pricing is automatically updated" +msgstr "零件價格自動更新前的天數" -#: common/models.py:1721 -msgid "Serial numbers for stock items must be globally unique" -msgstr "" +#: common/models.py:1723 +msgid "Internal Prices" +msgstr "內部價格" -#: common/models.py:1726 -msgid "Autofill Serial Numbers" -msgstr "" +#: common/models.py:1724 +msgid "Enable internal prices for parts" +msgstr "啓用內部零件價格" -#: common/models.py:1727 -msgid "Autofill serial numbers in forms" -msgstr "" +#: common/models.py:1729 +msgid "Internal Price Override" +msgstr "覆蓋內部價格" -#: common/models.py:1732 -msgid "Delete Depleted Stock" -msgstr "" +#: common/models.py:1731 +msgid "If available, internal prices override price range calculations" +msgstr "如果有內部價格,內部價格將覆蓋價格範圍計算" -#: common/models.py:1734 -msgid "Determines default behavior when a stock item is depleted" -msgstr "" +#: common/models.py:1737 +msgid "Enable label printing" +msgstr "啓用標籤打印功能" -#: common/models.py:1740 -msgid "Batch Code Template" -msgstr "" +#: common/models.py:1738 +msgid "Enable label printing from the web interface" +msgstr "啓用從網絡界面打印標籤" -#: common/models.py:1742 -msgid "Template for generating default batch codes for stock items" -msgstr "" +#: common/models.py:1743 +msgid "Label Image DPI" +msgstr "標籤圖片 DPI" -#: common/models.py:1747 -msgid "Stock Expiry" -msgstr "" +#: common/models.py:1745 +msgid "DPI resolution when generating image files to supply to label printing plugins" +msgstr "生成圖像文件以供標籤打印插件使用時的 DPI 分辨率" -#: common/models.py:1748 -msgid "Enable stock expiry functionality" -msgstr "" +#: common/models.py:1751 +msgid "Enable Reports" +msgstr "啓用報告" -#: common/models.py:1753 -msgid "Sell Expired Stock" -msgstr "" +#: common/models.py:1752 +msgid "Enable generation of reports" +msgstr "啓用報告生成" -#: common/models.py:1754 -msgid "Allow sale of expired stock" -msgstr "" +#: common/models.py:1757 templates/stats.html:25 +msgid "Debug Mode" +msgstr "調試模式" -#: common/models.py:1759 -msgid "Stock Stale Time" -msgstr "" +#: common/models.py:1758 +msgid "Generate reports in debug mode (HTML output)" +msgstr "以調試模式生成報告(HTML 輸出)" -#: common/models.py:1761 -msgid "Number of days stock items are considered stale before expiring" -msgstr "" +#: common/models.py:1763 +msgid "Log Report Errors" +msgstr "日誌錯誤報告" -#: common/models.py:1768 -msgid "Build Expired Stock" -msgstr "" +#: common/models.py:1764 +msgid "Log errors which occur when generating reports" +msgstr "記錄生成報告時出現的錯誤" -#: common/models.py:1769 -msgid "Allow building with expired stock" -msgstr "" +#: common/models.py:1769 plugin/builtin/labels/label_sheet.py:28 +#: report/models.py:309 +msgid "Page Size" +msgstr "頁面大小" -#: common/models.py:1774 -msgid "Stock Ownership Control" -msgstr "" +#: common/models.py:1770 +msgid "Default page size for PDF reports" +msgstr "PDF 報告默認頁面大小" #: common/models.py:1775 -msgid "Enable ownership control over stock locations and items" -msgstr "" +msgid "Globally Unique Serials" +msgstr "全局唯一序列號" -#: common/models.py:1780 -msgid "Stock Location Default Icon" -msgstr "" +#: common/models.py:1776 +msgid "Serial numbers for stock items must be globally unique" +msgstr "庫存項的序列號必須全局唯一" #: common/models.py:1781 -msgid "Stock location default icon (empty means no icon)" -msgstr "" +msgid "Autofill Serial Numbers" +msgstr "自動填充序列號" -#: common/models.py:1786 -msgid "Show Installed Stock Items" -msgstr "" +#: common/models.py:1782 +msgid "Autofill serial numbers in forms" +msgstr "在表格中自動填充序列號" #: common/models.py:1787 -msgid "Display installed stock items in stock tables" -msgstr "" +msgid "Delete Depleted Stock" +msgstr "刪除已耗盡的庫存" -#: common/models.py:1792 -msgid "Check BOM when installing items" -msgstr "" +#: common/models.py:1789 +msgid "Determines default behavior when a stock item is depleted" +msgstr "設置庫存耗盡時的默認行為" -#: common/models.py:1794 -msgid "Installed stock items must exist in the BOM for the parent part" -msgstr "" +#: common/models.py:1795 +msgid "Batch Code Template" +msgstr "批號模板" -#: common/models.py:1800 -msgid "Allow Out of Stock Transfer" -msgstr "" +#: common/models.py:1797 +msgid "Template for generating default batch codes for stock items" +msgstr "為庫存項生成默認批號的模板" #: common/models.py:1802 -msgid "Allow stock items which are not in stock to be transferred between stock locations" -msgstr "" +msgid "Stock Expiry" +msgstr "庫存過期" + +#: common/models.py:1803 +msgid "Enable stock expiry functionality" +msgstr "啓用庫存過期功能" #: common/models.py:1808 -msgid "Build Order Reference Pattern" -msgstr "" +msgid "Sell Expired Stock" +msgstr "銷售過期庫存" -#: common/models.py:1810 -msgid "Required pattern for generating Build Order reference field" -msgstr "" +#: common/models.py:1809 +msgid "Allow sale of expired stock" +msgstr "允許銷售過期庫存" -#: common/models.py:1816 common/models.py:1872 common/models.py:1894 -#: common/models.py:1930 -msgid "Require Responsible Owner" -msgstr "" +#: common/models.py:1814 +msgid "Stock Stale Time" +msgstr "庫存過期時間" -#: common/models.py:1817 common/models.py:1873 common/models.py:1895 -#: common/models.py:1931 -msgid "A responsible owner must be assigned to each order" -msgstr "" - -#: common/models.py:1822 -msgid "Require Active Part" -msgstr "" +#: common/models.py:1816 +msgid "Number of days stock items are considered stale before expiring" +msgstr "庫存項在到期前被視為過期的天數" #: common/models.py:1823 -msgid "Prevent build order creation for inactive parts" -msgstr "" +msgid "Build Expired Stock" +msgstr "生產過期庫存" -#: common/models.py:1828 -msgid "Require Locked Part" -msgstr "" +#: common/models.py:1824 +msgid "Allow building with expired stock" +msgstr "允許用過期的庫存生產" #: common/models.py:1829 -msgid "Prevent build order creation for unlocked parts" -msgstr "" +msgid "Stock Ownership Control" +msgstr "庫存所有權控制" -#: common/models.py:1834 -msgid "Require Valid BOM" -msgstr "" +#: common/models.py:1830 +msgid "Enable ownership control over stock locations and items" +msgstr "啓用庫存地點和項目的所有權控制" + +#: common/models.py:1835 +msgid "Stock Location Default Icon" +msgstr "庫存地點默認圖標" #: common/models.py:1836 -msgid "Prevent build order creation unless BOM has been validated" -msgstr "" +msgid "Stock location default icon (empty means no icon)" +msgstr "庫存地點默認圖標 (空表示沒有圖標)" + +#: common/models.py:1841 +msgid "Show Installed Stock Items" +msgstr "顯示已安裝的庫存項" #: common/models.py:1842 -msgid "Require Closed Child Orders" -msgstr "" +msgid "Display installed stock items in stock tables" +msgstr "在庫存表中顯示已安裝的庫存項" -#: common/models.py:1844 -msgid "Prevent build order completion until all child orders are closed" -msgstr "" +#: common/models.py:1847 +msgid "Check BOM when installing items" +msgstr "在安裝項目時檢查物料清單" -#: common/models.py:1850 -msgid "Block Until Tests Pass" -msgstr "" +#: common/models.py:1849 +msgid "Installed stock items must exist in the BOM for the parent part" +msgstr "已安裝的庫存項目必須存在於上級零件的物料清單中" -#: common/models.py:1852 -msgid "Prevent build outputs from being completed until all required tests pass" -msgstr "" +#: common/models.py:1855 +msgid "Allow Out of Stock Transfer" +msgstr "允許超出庫存轉移" -#: common/models.py:1858 -msgid "Enable Return Orders" -msgstr "" +#: common/models.py:1857 +msgid "Allow stock items which are not in stock to be transferred between stock locations" +msgstr "允許非庫存的庫存項目在庫存位置之間轉移" -#: common/models.py:1859 -msgid "Enable return order functionality in the user interface" -msgstr "" +#: common/models.py:1863 +msgid "Build Order Reference Pattern" +msgstr "生產訂單參考模式" -#: common/models.py:1864 -msgid "Return Order Reference Pattern" -msgstr "" +#: common/models.py:1865 +msgid "Required pattern for generating Build Order reference field" +msgstr "生成生產訂單參考字段所需的模式" -#: common/models.py:1866 -msgid "Required pattern for generating Return Order reference field" -msgstr "" +#: common/models.py:1871 common/models.py:1927 common/models.py:1949 +#: common/models.py:1985 +msgid "Require Responsible Owner" +msgstr "要求負責人" + +#: common/models.py:1872 common/models.py:1928 common/models.py:1950 +#: common/models.py:1986 +msgid "A responsible owner must be assigned to each order" +msgstr "必須為每個訂單分配一個負責人" + +#: common/models.py:1877 +msgid "Require Active Part" +msgstr "需要活動零件" #: common/models.py:1878 -msgid "Edit Completed Return Orders" -msgstr "" +msgid "Prevent build order creation for inactive parts" +msgstr "防止為非活動零件創建生產訂單" -#: common/models.py:1880 -msgid "Allow editing of return orders after they have been completed" -msgstr "" +#: common/models.py:1883 +msgid "Require Locked Part" +msgstr "需要鎖定零件" -#: common/models.py:1886 -msgid "Sales Order Reference Pattern" -msgstr "" +#: common/models.py:1884 +msgid "Prevent build order creation for unlocked parts" +msgstr "防止為未鎖定的零件創建生產訂單" -#: common/models.py:1888 -msgid "Required pattern for generating Sales Order reference field" -msgstr "" +#: common/models.py:1889 +msgid "Require Valid BOM" +msgstr "需要有效的物料清單" -#: common/models.py:1900 -msgid "Sales Order Default Shipment" -msgstr "" +#: common/models.py:1891 +msgid "Prevent build order creation unless BOM has been validated" +msgstr "除非物料清單已驗證,否則禁止創建生產訂單" -#: common/models.py:1901 -msgid "Enable creation of default shipment with sales orders" -msgstr "" +#: common/models.py:1897 +msgid "Require Closed Child Orders" +msgstr "需要關閉子訂單" -#: common/models.py:1906 -msgid "Edit Completed Sales Orders" -msgstr "" +#: common/models.py:1899 +msgid "Prevent build order completion until all child orders are closed" +msgstr "在所有子訂單關閉之前,阻止生產訂單的完成" -#: common/models.py:1908 -msgid "Allow editing of sales orders after they have been shipped or completed" -msgstr "" +#: common/models.py:1905 +msgid "Block Until Tests Pass" +msgstr "阻止直到測試通過" + +#: common/models.py:1907 +msgid "Prevent build outputs from being completed until all required tests pass" +msgstr "在所有必要的測試通過之前,阻止產出完成" + +#: common/models.py:1913 +msgid "Enable Return Orders" +msgstr "啓用訂單退貨" #: common/models.py:1914 +msgid "Enable return order functionality in the user interface" +msgstr "在用户界面中啓用訂單退貨功能" + +#: common/models.py:1919 +msgid "Return Order Reference Pattern" +msgstr "退貨訂單參考模式" + +#: common/models.py:1921 +msgid "Required pattern for generating Return Order reference field" +msgstr "生成退貨訂單參考字段所需的模式" + +#: common/models.py:1933 +msgid "Edit Completed Return Orders" +msgstr "編輯已完成的退貨訂單" + +#: common/models.py:1935 +msgid "Allow editing of return orders after they have been completed" +msgstr "允許編輯已完成的退貨訂單" + +#: common/models.py:1941 +msgid "Sales Order Reference Pattern" +msgstr "銷售訂單參考模式" + +#: common/models.py:1943 +msgid "Required pattern for generating Sales Order reference field" +msgstr "生成銷售訂單參考字段所需參照模式" + +#: common/models.py:1955 +msgid "Sales Order Default Shipment" +msgstr "銷售訂單默認配送方式" + +#: common/models.py:1956 +msgid "Enable creation of default shipment with sales orders" +msgstr "啓用創建銷售訂單的默認配送功能" + +#: common/models.py:1961 +msgid "Edit Completed Sales Orders" +msgstr "編輯已完成的銷售訂單" + +#: common/models.py:1963 +msgid "Allow editing of sales orders after they have been shipped or completed" +msgstr "允許在訂單配送或完成後編輯銷售訂單" + +#: common/models.py:1969 msgid "Mark Shipped Orders as Complete" -msgstr "" - -#: common/models.py:1916 -msgid "Sales orders marked as shipped will automatically be completed, bypassing the \"shipped\" status" -msgstr "" - -#: common/models.py:1922 -msgid "Purchase Order Reference Pattern" -msgstr "" - -#: common/models.py:1924 -msgid "Required pattern for generating Purchase Order reference field" -msgstr "" - -#: common/models.py:1936 -msgid "Edit Completed Purchase Orders" -msgstr "" - -#: common/models.py:1938 -msgid "Allow editing of purchase orders after they have been shipped or completed" -msgstr "" - -#: common/models.py:1944 -msgid "Auto Complete Purchase Orders" -msgstr "" - -#: common/models.py:1946 -msgid "Automatically mark purchase orders as complete when all line items are received" -msgstr "" - -#: common/models.py:1953 -msgid "Enable password forgot" -msgstr "" - -#: common/models.py:1954 -msgid "Enable password forgot function on the login pages" -msgstr "" - -#: common/models.py:1959 -msgid "Enable registration" -msgstr "" - -#: common/models.py:1960 -msgid "Enable self-registration for users on the login pages" -msgstr "" - -#: common/models.py:1965 -msgid "Enable SSO" -msgstr "" - -#: common/models.py:1966 -msgid "Enable SSO on the login pages" -msgstr "" +msgstr "標記該訂單為已完成?" #: common/models.py:1971 -msgid "Enable SSO registration" -msgstr "" +msgid "Sales orders marked as shipped will automatically be completed, bypassing the \"shipped\" status" +msgstr "標記為已發貨的銷售訂單將自動完成,繞過“已發貨”狀態" -#: common/models.py:1973 -msgid "Enable self-registration via SSO for users on the login pages" -msgstr "" +#: common/models.py:1977 +msgid "Purchase Order Reference Pattern" +msgstr "採購訂單參考模式" #: common/models.py:1979 -msgid "Enable SSO group sync" -msgstr "" +msgid "Required pattern for generating Purchase Order reference field" +msgstr "生成採購訂單參考字段所需的模式" -#: common/models.py:1981 -msgid "Enable synchronizing InvenTree groups with groups provided by the IdP" -msgstr "" +#: common/models.py:1991 +msgid "Edit Completed Purchase Orders" +msgstr "編輯已完成的採購訂單" -#: common/models.py:1987 -msgid "SSO group key" -msgstr "" +#: common/models.py:1993 +msgid "Allow editing of purchase orders after they have been shipped or completed" +msgstr "允許在採購訂單已配送或完成後編輯訂單" -#: common/models.py:1989 -msgid "The name of the groups claim attribute provided by the IdP" -msgstr "" +#: common/models.py:1999 +msgid "Auto Complete Purchase Orders" +msgstr "自動完成採購訂單" -#: common/models.py:1995 -msgid "SSO group map" -msgstr "" +#: common/models.py:2001 +msgid "Automatically mark purchase orders as complete when all line items are received" +msgstr "當收到所有行項目時,自動將採購訂單標記為完成" -#: common/models.py:1997 -msgid "A mapping from SSO groups to local InvenTree groups. If the local group does not exist, it will be created." -msgstr "" +#: common/models.py:2008 +msgid "Enable password forgot" +msgstr "忘記啓用密碼" -#: common/models.py:2003 -msgid "Remove groups outside of SSO" -msgstr "" +#: common/models.py:2009 +msgid "Enable password forgot function on the login pages" +msgstr "在登錄頁面上啓用忘記密碼功能" -#: common/models.py:2005 -msgid "Whether groups assigned to the user should be removed if they are not backend by the IdP. Disabling this setting might cause security issues" -msgstr "" +#: common/models.py:2014 +msgid "Enable registration" +msgstr "啓用註冊" -#: common/models.py:2011 -msgid "Email required" -msgstr "" +#: common/models.py:2015 +msgid "Enable self-registration for users on the login pages" +msgstr "在登錄頁面為用户啓用自行註冊功能" -#: common/models.py:2012 -msgid "Require user to supply mail on signup" -msgstr "" +#: common/models.py:2020 +msgid "Enable SSO" +msgstr "啓用單點登錄" -#: common/models.py:2017 -msgid "Auto-fill SSO users" -msgstr "" - -#: common/models.py:2019 -msgid "Automatically fill out user-details from SSO account-data" -msgstr "" - -#: common/models.py:2025 -msgid "Mail twice" -msgstr "" +#: common/models.py:2021 +msgid "Enable SSO on the login pages" +msgstr "在登錄界面啓用單點登錄" #: common/models.py:2026 +msgid "Enable SSO registration" +msgstr "啓用單點登錄註冊" + +#: common/models.py:2028 +msgid "Enable self-registration via SSO for users on the login pages" +msgstr "允許登錄頁面上的用户通過 SSO 進行自我註冊" + +#: common/models.py:2034 +msgid "Enable SSO group sync" +msgstr "啓用單點登錄羣組同步" + +#: common/models.py:2036 +msgid "Enable synchronizing InvenTree groups with groups provided by the IdP" +msgstr "啓用庫存管理系統組和由身份提供者提供的組的同步功能" + +#: common/models.py:2042 +msgid "SSO group key" +msgstr "單點登錄系統組密鑰" + +#: common/models.py:2044 +msgid "The name of the groups claim attribute provided by the IdP" +msgstr "由身份提供者提供的組聲明屬性名稱" + +#: common/models.py:2050 +msgid "SSO group map" +msgstr "單點登錄系統組地圖" + +#: common/models.py:2052 +msgid "A mapping from SSO groups to local InvenTree groups. If the local group does not exist, it will be created." +msgstr "從單點登錄系統組組到本地庫存管理系統組的映射。如果本地組不存在,它將被創建。" + +#: common/models.py:2058 +msgid "Remove groups outside of SSO" +msgstr "移除單點登錄系統以外的羣組" + +#: common/models.py:2060 +msgid "Whether groups assigned to the user should be removed if they are not backend by the IdP. Disabling this setting might cause security issues" +msgstr "如果分配給用户的組不是身份提供者的後端,是否應該刪除它們。禁用此設置可能會造成安全問題" + +#: common/models.py:2066 +msgid "Email required" +msgstr "需要郵箱地址" + +#: common/models.py:2067 +msgid "Require user to supply mail on signup" +msgstr "要求用户在註冊時提供郵件" + +#: common/models.py:2072 +msgid "Auto-fill SSO users" +msgstr "自動填充單點登錄系統用户" + +#: common/models.py:2074 +msgid "Automatically fill out user-details from SSO account-data" +msgstr "自動使用單點登錄系統賬户的數據填寫用户詳細信息" + +#: common/models.py:2080 +msgid "Mail twice" +msgstr "發兩次郵件" + +#: common/models.py:2081 msgid "On signup ask users twice for their mail" -msgstr "" +msgstr "註冊時詢問用户他們的電子郵件兩次" -#: common/models.py:2031 +#: common/models.py:2086 msgid "Password twice" -msgstr "" +msgstr "兩次輸入密碼" -#: common/models.py:2032 +#: common/models.py:2087 msgid "On signup ask users twice for their password" -msgstr "" +msgstr "當註冊時請用户輸入密碼兩次" -#: common/models.py:2037 +#: common/models.py:2092 msgid "Allowed domains" -msgstr "" +msgstr "域名白名單" -#: common/models.py:2039 +#: common/models.py:2094 msgid "Restrict signup to certain domains (comma-separated, starting with @)" -msgstr "" +msgstr "限制註冊到某些域名 (逗號分隔,以 @ 開頭)" -#: common/models.py:2045 +#: common/models.py:2100 msgid "Group on signup" -msgstr "" +msgstr "註冊羣組" -#: common/models.py:2047 +#: common/models.py:2102 msgid "Group to which new users are assigned on registration. If SSO group sync is enabled, this group is only set if no group can be assigned from the IdP." -msgstr "" +msgstr "註冊時分配給新用户的組。 如果啓用了單點登錄系統羣組同步,此羣組僅在無法從 IdP 分配任何羣組的情況下才被設置。" -#: common/models.py:2053 +#: common/models.py:2108 msgid "Enforce MFA" -msgstr "" +msgstr "強制啓用多因素安全認證" -#: common/models.py:2054 +#: common/models.py:2109 msgid "Users must use multifactor security." -msgstr "" +msgstr "用户必須使用多因素安全認證。" -#: common/models.py:2059 +#: common/models.py:2114 msgid "Check plugins on startup" -msgstr "" +msgstr "啓動時檢查插件" -#: common/models.py:2061 +#: common/models.py:2116 msgid "Check that all plugins are installed on startup - enable in container environments" -msgstr "" +msgstr "啓動時檢查全部插件是否已安裝 - 在容器環境中啓用" -#: common/models.py:2069 +#: common/models.py:2124 msgid "Check for plugin updates" -msgstr "" - -#: common/models.py:2070 -msgid "Enable periodic checks for updates to installed plugins" -msgstr "" - -#: common/models.py:2076 -msgid "Enable URL integration" -msgstr "" - -#: common/models.py:2077 -msgid "Enable plugins to add URL routes" -msgstr "" - -#: common/models.py:2083 -msgid "Enable navigation integration" -msgstr "" - -#: common/models.py:2084 -msgid "Enable plugins to integrate into navigation" -msgstr "" - -#: common/models.py:2090 -msgid "Enable app integration" -msgstr "" - -#: common/models.py:2091 -msgid "Enable plugins to add apps" -msgstr "" - -#: common/models.py:2097 -msgid "Enable schedule integration" -msgstr "" - -#: common/models.py:2098 -msgid "Enable plugins to run scheduled tasks" -msgstr "" - -#: common/models.py:2104 -msgid "Enable event integration" -msgstr "" - -#: common/models.py:2105 -msgid "Enable plugins to respond to internal events" -msgstr "" - -#: common/models.py:2111 -msgid "Enable project codes" -msgstr "" - -#: common/models.py:2112 -msgid "Enable project codes for tracking projects" -msgstr "" - -#: common/models.py:2117 -msgid "Stocktake Functionality" -msgstr "" - -#: common/models.py:2119 -msgid "Enable stocktake functionality for recording stock levels and calculating stock value" -msgstr "" +msgstr "檢查插件更新" #: common/models.py:2125 +msgid "Enable periodic checks for updates to installed plugins" +msgstr "啓用定期檢查已安裝插件的更新" + +#: common/models.py:2131 +msgid "Enable URL integration" +msgstr "啓用統一資源定位符集成" + +#: common/models.py:2132 +msgid "Enable plugins to add URL routes" +msgstr "啓用插件以添加統一資源定位符路由" + +#: common/models.py:2138 +msgid "Enable navigation integration" +msgstr "啓用導航集成" + +#: common/models.py:2139 +msgid "Enable plugins to integrate into navigation" +msgstr "啓用插件以集成到導航中" + +#: common/models.py:2145 +msgid "Enable app integration" +msgstr "啓用應用集成" + +#: common/models.py:2146 +msgid "Enable plugins to add apps" +msgstr "啓用插件添加應用" + +#: common/models.py:2152 +msgid "Enable schedule integration" +msgstr "啓用調度集成" + +#: common/models.py:2153 +msgid "Enable plugins to run scheduled tasks" +msgstr "啓用插件來運行預定任務" + +#: common/models.py:2159 +msgid "Enable event integration" +msgstr "啓用事件集成" + +#: common/models.py:2160 +msgid "Enable plugins to respond to internal events" +msgstr "啓用插件響應內部事件" + +#: common/models.py:2166 +msgid "Enable interface integration" +msgstr "啓用界面集成" + +#: common/models.py:2167 +msgid "Enable plugins to integrate into the user interface" +msgstr "啓用插件集成到用户界面" + +#: common/models.py:2173 +msgid "Enable project codes" +msgstr "啓用項目編碼" + +#: common/models.py:2174 +msgid "Enable project codes for tracking projects" +msgstr "啓用項目編碼來跟蹤項目" + +#: common/models.py:2179 +msgid "Stocktake Functionality" +msgstr "盤點功能" + +#: common/models.py:2181 +msgid "Enable stocktake functionality for recording stock levels and calculating stock value" +msgstr "啓用盤點功能以記錄庫存水平和計算庫存值" + +#: common/models.py:2187 msgid "Exclude External Locations" -msgstr "" +msgstr "排除外部地點" -#: common/models.py:2127 +#: common/models.py:2189 msgid "Exclude stock items in external locations from stocktake calculations" -msgstr "" +msgstr "從盤點計算中排除外部地點的庫存項" -#: common/models.py:2133 +#: common/models.py:2195 msgid "Automatic Stocktake Period" -msgstr "" +msgstr "自動盤點週期" -#: common/models.py:2135 +#: common/models.py:2197 msgid "Number of days between automatic stocktake recording (set to zero to disable)" -msgstr "" +msgstr "自動盤點記錄之間的天數 (設置為零以禁用)" -#: common/models.py:2141 +#: common/models.py:2203 msgid "Report Deletion Interval" -msgstr "" +msgstr "報告刪除間隔" -#: common/models.py:2143 +#: common/models.py:2205 msgid "Stocktake reports will be deleted after specified number of days" -msgstr "" - -#: common/models.py:2150 -msgid "Display Users full names" -msgstr "" - -#: common/models.py:2151 -msgid "Display Users full names instead of usernames" -msgstr "" - -#: common/models.py:2156 -msgid "Enable Test Station Data" -msgstr "" - -#: common/models.py:2157 -msgid "Enable test station data collection for test results" -msgstr "" - -#: common/models.py:2169 common/models.py:2549 -msgid "Settings key (must be unique - case insensitive" -msgstr "" +msgstr "盤點報告將在指定天數後刪除" #: common/models.py:2212 -msgid "Hide inactive parts" -msgstr "" +msgid "Display Users full names" +msgstr "顯示用户全名" -#: common/models.py:2214 -msgid "Hide inactive parts in results displayed on the homepage" -msgstr "" +#: common/models.py:2213 +msgid "Display Users full names instead of usernames" +msgstr "顯示用户全名而不是用户名" -#: common/models.py:2220 -msgid "Show subscribed parts" -msgstr "" +#: common/models.py:2218 +msgid "Enable Test Station Data" +msgstr "啓用測試站數據" -#: common/models.py:2221 -msgid "Show subscribed parts on the homepage" -msgstr "" +#: common/models.py:2219 +msgid "Enable test station data collection for test results" +msgstr "啓用測試站數據收集以獲取測試結果" + +#: common/models.py:2224 +msgid "Create Template on Upload" +msgstr "上傳時創建模板" #: common/models.py:2226 -msgid "Show subscribed categories" -msgstr "" +msgid "Create a new test template when uploading test data which does not match an existing template" +msgstr "上傳測試數據與現有模板不匹配時創建一個新的測試模板" -#: common/models.py:2227 -msgid "Show subscribed part categories on the homepage" -msgstr "" - -#: common/models.py:2232 -msgid "Show latest parts" -msgstr "" - -#: common/models.py:2233 -msgid "Show latest parts on the homepage" -msgstr "" - -#: common/models.py:2238 -msgid "Show invalid BOMs" -msgstr "" - -#: common/models.py:2239 -msgid "Show BOMs that await validation on the homepage" -msgstr "" - -#: common/models.py:2244 -msgid "Show recent stock changes" -msgstr "" - -#: common/models.py:2245 -msgid "Show recently changed stock items on the homepage" -msgstr "" - -#: common/models.py:2250 -msgid "Show low stock" -msgstr "" - -#: common/models.py:2251 -msgid "Show low stock items on the homepage" -msgstr "" - -#: common/models.py:2256 -msgid "Show depleted stock" -msgstr "" - -#: common/models.py:2257 -msgid "Show depleted stock items on the homepage" -msgstr "" - -#: common/models.py:2262 -msgid "Show needed stock" -msgstr "" - -#: common/models.py:2263 -msgid "Show stock items needed for builds on the homepage" -msgstr "" - -#: common/models.py:2268 -msgid "Show expired stock" -msgstr "" - -#: common/models.py:2269 -msgid "Show expired stock items on the homepage" -msgstr "" - -#: common/models.py:2274 -msgid "Show stale stock" -msgstr "" - -#: common/models.py:2275 -msgid "Show stale stock items on the homepage" -msgstr "" - -#: common/models.py:2280 -msgid "Show pending builds" -msgstr "" +#: common/models.py:2279 +msgid "Hide inactive parts" +msgstr "隱藏非活動零件" #: common/models.py:2281 -msgid "Show pending builds on the homepage" -msgstr "" - -#: common/models.py:2286 -msgid "Show overdue builds" -msgstr "" +msgid "Hide inactive parts in results displayed on the homepage" +msgstr "隱藏主頁上顯示的結果中的非活動零件" #: common/models.py:2287 -msgid "Show overdue builds on the homepage" -msgstr "" +msgid "Show subscribed parts" +msgstr "顯示已訂閲的零件" -#: common/models.py:2292 -msgid "Show outstanding POs" -msgstr "" +#: common/models.py:2288 +msgid "Show subscribed parts on the homepage" +msgstr "在主頁上顯示已訂閲的零件" #: common/models.py:2293 -msgid "Show outstanding POs on the homepage" -msgstr "" +msgid "Show subscribed categories" +msgstr "顯示已訂閲的類別" -#: common/models.py:2298 -msgid "Show overdue POs" -msgstr "" +#: common/models.py:2294 +msgid "Show subscribed part categories on the homepage" +msgstr "在主頁上顯示已訂閲的零件類別" #: common/models.py:2299 -msgid "Show overdue POs on the homepage" -msgstr "" +msgid "Show latest parts" +msgstr "顯示最新零件" -#: common/models.py:2304 -msgid "Show outstanding SOs" -msgstr "" +#: common/models.py:2300 +msgid "Show latest parts on the homepage" +msgstr "在主頁上顯示最新零件" #: common/models.py:2305 -msgid "Show outstanding SOs on the homepage" -msgstr "" +msgid "Show invalid BOMs" +msgstr "顯示無效的物料清單" -#: common/models.py:2310 -msgid "Show overdue SOs" -msgstr "" +#: common/models.py:2306 +msgid "Show BOMs that await validation on the homepage" +msgstr "在主頁上顯示等待驗證的物料清單" #: common/models.py:2311 -msgid "Show overdue SOs on the homepage" -msgstr "" +msgid "Show recent stock changes" +msgstr "顯示最近的庫存變動" -#: common/models.py:2316 -msgid "Show pending SO shipments" -msgstr "" +#: common/models.py:2312 +msgid "Show recently changed stock items on the homepage" +msgstr "在主頁上顯示最近更改的庫存項目" #: common/models.py:2317 -msgid "Show pending SO shipments on the homepage" -msgstr "" +msgid "Show low stock" +msgstr "顯示低庫存" -#: common/models.py:2322 -msgid "Show News" -msgstr "" +#: common/models.py:2318 +msgid "Show low stock items on the homepage" +msgstr "在主頁上顯示低庫存商品" #: common/models.py:2323 -msgid "Show news on the homepage" -msgstr "" +msgid "Show depleted stock" +msgstr "顯示已耗盡的庫存" -#: common/models.py:2328 -msgid "Inline label display" -msgstr "" +#: common/models.py:2324 +msgid "Show depleted stock items on the homepage" +msgstr "在主頁上顯示已耗盡的庫存項目" + +#: common/models.py:2329 +msgid "Show needed stock" +msgstr "顯示所需庫存" #: common/models.py:2330 -msgid "Display PDF labels in the browser, instead of downloading as a file" -msgstr "" +msgid "Show stock items needed for builds on the homepage" +msgstr "在主頁上顯示構建所需的庫存項目" + +#: common/models.py:2335 +msgid "Show expired stock" +msgstr "顯示過期庫存" #: common/models.py:2336 -msgid "Default label printer" -msgstr "" +msgid "Show expired stock items on the homepage" +msgstr "在主頁上顯示過期的庫存項目" -#: common/models.py:2338 -msgid "Configure which label printer should be selected by default" -msgstr "" +#: common/models.py:2341 +msgid "Show stale stock" +msgstr "顯示過期庫存" -#: common/models.py:2344 -msgid "Inline report display" -msgstr "" +#: common/models.py:2342 +msgid "Show stale stock items on the homepage" +msgstr "在主頁上顯示過期庫存商品" -#: common/models.py:2346 -msgid "Display PDF reports in the browser, instead of downloading as a file" -msgstr "" +#: common/models.py:2347 +msgid "Show pending builds" +msgstr "顯示待處理的構建" -#: common/models.py:2352 -msgid "Search Parts" -msgstr "" +#: common/models.py:2348 +msgid "Show pending builds on the homepage" +msgstr "在主頁上顯示待處理的構建" #: common/models.py:2353 -msgid "Display parts in search preview window" -msgstr "" +msgid "Show overdue builds" +msgstr "顯示過期的構建" -#: common/models.py:2358 -msgid "Search Supplier Parts" -msgstr "" +#: common/models.py:2354 +msgid "Show overdue builds on the homepage" +msgstr "在主頁上顯示過期的構建" #: common/models.py:2359 -msgid "Display supplier parts in search preview window" -msgstr "" +msgid "Show outstanding POs" +msgstr "顯示出色的PO" -#: common/models.py:2364 -msgid "Search Manufacturer Parts" -msgstr "" +#: common/models.py:2360 +msgid "Show outstanding POs on the homepage" +msgstr "在主頁上顯示優秀的PO" #: common/models.py:2365 -msgid "Display manufacturer parts in search preview window" -msgstr "" +msgid "Show overdue POs" +msgstr "顯示過期訂單" -#: common/models.py:2370 -msgid "Hide Inactive Parts" -msgstr "" +#: common/models.py:2366 +msgid "Show overdue POs on the homepage" +msgstr "在主頁上顯示逾期訂單" #: common/models.py:2371 -msgid "Excluded inactive parts from search preview window" -msgstr "" +msgid "Show outstanding SOs" +msgstr "展示傑出的SO" -#: common/models.py:2376 -msgid "Search Categories" -msgstr "" +#: common/models.py:2372 +msgid "Show outstanding SOs on the homepage" +msgstr "在主頁上顯示優秀的SO" #: common/models.py:2377 -msgid "Display part categories in search preview window" -msgstr "" +msgid "Show overdue SOs" +msgstr "顯示過期的SO" -#: common/models.py:2382 -msgid "Search Stock" -msgstr "" +#: common/models.py:2378 +msgid "Show overdue SOs on the homepage" +msgstr "在主頁上顯示過期的SO" #: common/models.py:2383 -msgid "Display stock items in search preview window" -msgstr "" +msgid "Show pending SO shipments" +msgstr "顯示待處理的SO發貨" -#: common/models.py:2388 -msgid "Hide Unavailable Stock Items" -msgstr "" +#: common/models.py:2384 +msgid "Show pending SO shipments on the homepage" +msgstr "在主頁上顯示待處理的SO發貨" + +#: common/models.py:2389 +msgid "Show News" +msgstr "顯示新聞" #: common/models.py:2390 -msgid "Exclude stock items which are not available from the search preview window" -msgstr "" +msgid "Show news on the homepage" +msgstr "在主頁上顯示新聞" -#: common/models.py:2396 -msgid "Search Locations" -msgstr "" +#: common/models.py:2395 +msgid "Inline label display" +msgstr "內聯標籤顯示" #: common/models.py:2397 -msgid "Display stock locations in search preview window" -msgstr "" - -#: common/models.py:2402 -msgid "Search Companies" -msgstr "" +msgid "Display PDF labels in the browser, instead of downloading as a file" +msgstr "在瀏覽器中顯示PDF標籤,而不是作為文件下載" #: common/models.py:2403 -msgid "Display companies in search preview window" -msgstr "" +msgid "Default label printer" +msgstr "默認標籤打印機" -#: common/models.py:2408 -msgid "Search Build Orders" -msgstr "" +#: common/models.py:2405 +msgid "Configure which label printer should be selected by default" +msgstr "配置默認情況下應選擇哪個標籤打印機" -#: common/models.py:2409 -msgid "Display build orders in search preview window" -msgstr "" +#: common/models.py:2411 +msgid "Inline report display" +msgstr "內聯報告顯示" -#: common/models.py:2414 -msgid "Search Purchase Orders" -msgstr "" +#: common/models.py:2413 +msgid "Display PDF reports in the browser, instead of downloading as a file" +msgstr "在瀏覽器中顯示PDF報告,而不是作為文件下載" -#: common/models.py:2415 -msgid "Display purchase orders in search preview window" -msgstr "" +#: common/models.py:2419 +msgid "Search Parts" +msgstr "搜索零件" #: common/models.py:2420 -msgid "Exclude Inactive Purchase Orders" -msgstr "" +msgid "Display parts in search preview window" +msgstr "在搜索預覽窗口中顯示零件" -#: common/models.py:2422 -msgid "Exclude inactive purchase orders from search preview window" -msgstr "" +#: common/models.py:2425 +msgid "Search Supplier Parts" +msgstr "搜索供應商零件" -#: common/models.py:2428 -msgid "Search Sales Orders" -msgstr "" +#: common/models.py:2426 +msgid "Display supplier parts in search preview window" +msgstr "在搜索預覽窗口中顯示供應商零件" -#: common/models.py:2429 -msgid "Display sales orders in search preview window" -msgstr "" +#: common/models.py:2431 +msgid "Search Manufacturer Parts" +msgstr "搜索製造商零件" -#: common/models.py:2434 -msgid "Exclude Inactive Sales Orders" -msgstr "" +#: common/models.py:2432 +msgid "Display manufacturer parts in search preview window" +msgstr "在搜索預覽窗口中顯示製造商零件" -#: common/models.py:2436 -msgid "Exclude inactive sales orders from search preview window" -msgstr "" +#: common/models.py:2437 +msgid "Hide Inactive Parts" +msgstr "隱藏非活動零件" -#: common/models.py:2442 -msgid "Search Return Orders" -msgstr "" +#: common/models.py:2438 +msgid "Excluded inactive parts from search preview window" +msgstr "從搜索預覽窗口中排除非活動零件" #: common/models.py:2443 -msgid "Display return orders in search preview window" -msgstr "" +msgid "Search Categories" +msgstr "搜索分類" -#: common/models.py:2448 -msgid "Exclude Inactive Return Orders" -msgstr "" +#: common/models.py:2444 +msgid "Display part categories in search preview window" +msgstr "在搜索預覽窗口中顯示零件類別" + +#: common/models.py:2449 +msgid "Search Stock" +msgstr "搜索庫存" #: common/models.py:2450 -msgid "Exclude inactive return orders from search preview window" -msgstr "" +msgid "Display stock items in search preview window" +msgstr "在搜索預覽窗口中顯示庫存項目" -#: common/models.py:2456 -msgid "Search Preview Results" -msgstr "" +#: common/models.py:2455 +msgid "Hide Unavailable Stock Items" +msgstr "隱藏不可用的庫存項目" -#: common/models.py:2458 -msgid "Number of results to show in each section of the search preview window" -msgstr "" +#: common/models.py:2457 +msgid "Exclude stock items which are not available from the search preview window" +msgstr "排除搜索預覽窗口中不可用的庫存項目" + +#: common/models.py:2463 +msgid "Search Locations" +msgstr "搜索地點" #: common/models.py:2464 -msgid "Regex Search" -msgstr "" +msgid "Display stock locations in search preview window" +msgstr "在搜索預覽窗口中顯示庫存位置" -#: common/models.py:2465 -msgid "Enable regular expressions in search queries" -msgstr "" +#: common/models.py:2469 +msgid "Search Companies" +msgstr "搜索公司" #: common/models.py:2470 -msgid "Whole Word Search" -msgstr "" +msgid "Display companies in search preview window" +msgstr "在搜索預覽窗口中顯示公司" -#: common/models.py:2471 -msgid "Search queries return results for whole word matches" -msgstr "" +#: common/models.py:2475 +msgid "Search Build Orders" +msgstr "搜索生產訂單" #: common/models.py:2476 -msgid "Show Quantity in Forms" -msgstr "" +msgid "Display build orders in search preview window" +msgstr "在搜索預覽窗口中顯示生產訂單" -#: common/models.py:2477 -msgid "Display available part quantity in some forms" -msgstr "" +#: common/models.py:2481 +msgid "Search Purchase Orders" +msgstr "搜索採購訂單" #: common/models.py:2482 -msgid "Escape Key Closes Forms" -msgstr "" +msgid "Display purchase orders in search preview window" +msgstr "在搜索預覽窗口中顯示採購訂單" -#: common/models.py:2483 -msgid "Use the escape key to close modal forms" -msgstr "" - -#: common/models.py:2488 -msgid "Fixed Navbar" -msgstr "" +#: common/models.py:2487 +msgid "Exclude Inactive Purchase Orders" +msgstr "排除未激活的採購訂單" #: common/models.py:2489 -msgid "The navbar position is fixed to the top of the screen" -msgstr "" - -#: common/models.py:2494 -msgid "Date Format" -msgstr "" +msgid "Exclude inactive purchase orders from search preview window" +msgstr "從搜索預覽窗口中排除不活動的採購訂單" #: common/models.py:2495 -msgid "Preferred format for displaying dates" -msgstr "" +msgid "Search Sales Orders" +msgstr "搜索銷售訂單" -#: common/models.py:2508 part/templates/part/detail.html:41 -msgid "Part Scheduling" -msgstr "" +#: common/models.py:2496 +msgid "Display sales orders in search preview window" +msgstr "在搜索預覽窗口中顯示銷售訂單" + +#: common/models.py:2501 +msgid "Exclude Inactive Sales Orders" +msgstr "排除未激活的銷售訂單" + +#: common/models.py:2503 +msgid "Exclude inactive sales orders from search preview window" +msgstr "從搜索預覽窗口中排除不活動的銷售訂單" #: common/models.py:2509 -msgid "Display part scheduling information" -msgstr "" +msgid "Search Return Orders" +msgstr "搜索退貨訂單" -#: common/models.py:2514 part/templates/part/detail.html:62 -msgid "Part Stocktake" -msgstr "" +#: common/models.py:2510 +msgid "Display return orders in search preview window" +msgstr "在搜索預覽窗口中顯示退貨訂單" -#: common/models.py:2516 -msgid "Display part stocktake information (if stocktake functionality is enabled)" -msgstr "" +#: common/models.py:2515 +msgid "Exclude Inactive Return Orders" +msgstr "排除未激活的退貨訂單" -#: common/models.py:2522 -msgid "Table String Length" -msgstr "" +#: common/models.py:2517 +msgid "Exclude inactive return orders from search preview window" +msgstr "從搜索預覽窗口中排除不活動的退貨訂單" -#: common/models.py:2524 -msgid "Maximum length limit for strings displayed in table views" -msgstr "" +#: common/models.py:2523 +msgid "Search Preview Results" +msgstr "搜索預覽結果" -#: common/models.py:2530 -msgid "Receive error reports" -msgstr "" +#: common/models.py:2525 +msgid "Number of results to show in each section of the search preview window" +msgstr "在搜索預覽窗口的每個部分中顯示的結果數" #: common/models.py:2531 -msgid "Receive notifications for system errors" -msgstr "" +msgid "Regex Search" +msgstr "正則表達式搜索" -#: common/models.py:2536 -msgid "Last used printing machines" -msgstr "" +#: common/models.py:2532 +msgid "Enable regular expressions in search queries" +msgstr "在搜索查詢中啓用正則表達式" #: common/models.py:2537 +msgid "Whole Word Search" +msgstr "整詞搜索" + +#: common/models.py:2538 +msgid "Search queries return results for whole word matches" +msgstr "搜索查詢返回整詞匹配的結果" + +#: common/models.py:2543 +msgid "Show Quantity in Forms" +msgstr "在表格中顯示數量" + +#: common/models.py:2544 +msgid "Display available part quantity in some forms" +msgstr "以某些形式顯示可用零件數量" + +#: common/models.py:2549 +msgid "Escape Key Closes Forms" +msgstr "Esc鍵關閉窗體" + +#: common/models.py:2550 +msgid "Use the escape key to close modal forms" +msgstr "使用ESC鍵關閉模態窗體" + +#: common/models.py:2555 +msgid "Fixed Navbar" +msgstr "固定導航欄" + +#: common/models.py:2556 +msgid "The navbar position is fixed to the top of the screen" +msgstr "導航欄位置固定在屏幕頂部" + +#: common/models.py:2561 +msgid "Date Format" +msgstr "時間格式" + +#: common/models.py:2562 +msgid "Preferred format for displaying dates" +msgstr "顯示時間的首選格式" + +#: common/models.py:2575 part/templates/part/detail.html:41 +msgid "Part Scheduling" +msgstr "零件調度" + +#: common/models.py:2576 +msgid "Display part scheduling information" +msgstr "顯示零件排程信息" + +#: common/models.py:2581 part/templates/part/detail.html:62 +msgid "Part Stocktake" +msgstr "零件盤點" + +#: common/models.py:2583 +msgid "Display part stocktake information (if stocktake functionality is enabled)" +msgstr "顯示零件盤點信息 (如果啓用了盤點功能)" + +#: common/models.py:2589 +msgid "Table String Length" +msgstr "表字符串長度" + +#: common/models.py:2591 +msgid "Maximum length limit for strings displayed in table views" +msgstr "表視圖中顯示的字符串的最大長度限制" + +#: common/models.py:2597 +msgid "Receive error reports" +msgstr "接收錯誤報告" + +#: common/models.py:2598 +msgid "Receive notifications for system errors" +msgstr "接收系統錯誤通知" + +#: common/models.py:2603 +msgid "Last used printing machines" +msgstr "上次使用的打印設備" + +#: common/models.py:2604 msgid "Save the last used printing machines for a user" -msgstr "" +msgstr "為用户保存上次使用的打印設備" -#: common/models.py:2557 common/models.py:2558 common/models.py:2715 -#: common/models.py:2716 common/models.py:2961 common/models.py:2962 -#: common/models.py:3288 common/models.py:3289 importer/models.py:88 -#: part/models.py:3307 part/models.py:3394 part/models.py:3468 -#: part/models.py:3496 plugin/models.py:274 plugin/models.py:275 -#: report/templates/report/inventree_test_report.html:105 -#: templates/js/translated/stock.js:3120 users/models.py:111 +#: common/models.py:2621 common/models.py:2622 common/models.py:2779 +#: common/models.py:2780 common/models.py:3025 common/models.py:3026 +#: common/models.py:3349 common/models.py:3350 common/models.py:3534 +#: importer/models.py:89 part/models.py:3358 part/models.py:3445 +#: part/models.py:3519 part/models.py:3547 plugin/models.py:313 +#: plugin/models.py:314 report/templates/report/inventree_test_report.html:105 +#: templates/js/translated/stock.js:3121 users/models.py:111 msgid "User" -msgstr "" +msgstr "使用者" -#: common/models.py:2580 +#: common/models.py:2644 msgid "Price break quantity" -msgstr "" +msgstr "批發價數量" -#: common/models.py:2587 company/serializers.py:513 order/admin.py:42 -#: order/models.py:1430 order/models.py:2417 -#: templates/js/translated/company.js:1823 templates/js/translated/part.js:1892 +#: common/models.py:2651 company/serializers.py:524 order/admin.py:42 +#: order/models.py:1447 order/models.py:2456 +#: templates/js/translated/company.js:1824 templates/js/translated/part.js:1892 #: templates/js/translated/pricing.js:621 #: templates/js/translated/return_order.js:739 msgid "Price" -msgstr "" +msgstr "價格" -#: common/models.py:2588 +#: common/models.py:2652 msgid "Unit price at specified quantity" -msgstr "" +msgstr "指定數量的單位價格" -#: common/models.py:2692 common/models.py:2877 +#: common/models.py:2756 common/models.py:2941 msgid "Endpoint" -msgstr "" +msgstr "端點" -#: common/models.py:2693 +#: common/models.py:2757 msgid "Endpoint at which this webhook is received" -msgstr "" +msgstr "接收此網絡鈎子的端點" -#: common/models.py:2703 +#: common/models.py:2767 msgid "Name for this webhook" -msgstr "" +msgstr "此網絡鈎子的名稱" -#: common/models.py:2707 +#: common/models.py:2771 msgid "Is this webhook active" -msgstr "" +msgstr "網絡鈎子是否已啓用" -#: common/models.py:2723 users/models.py:159 +#: common/models.py:2787 users/models.py:159 msgid "Token" -msgstr "" +msgstr "令牌" -#: common/models.py:2724 +#: common/models.py:2788 msgid "Token for access" -msgstr "" +msgstr "訪問令牌" -#: common/models.py:2732 +#: common/models.py:2796 msgid "Secret" -msgstr "" +msgstr "密鑰" -#: common/models.py:2733 +#: common/models.py:2797 msgid "Shared secret for HMAC" -msgstr "" +msgstr "HMAC共享密鑰" -#: common/models.py:2841 +#: common/models.py:2905 msgid "Message ID" -msgstr "" +msgstr "消息ID" -#: common/models.py:2842 +#: common/models.py:2906 msgid "Unique identifier for this message" -msgstr "" +msgstr "此郵件的唯一標識符" -#: common/models.py:2850 +#: common/models.py:2914 msgid "Host" -msgstr "" +msgstr "主機" -#: common/models.py:2851 +#: common/models.py:2915 msgid "Host from which this message was received" -msgstr "" +msgstr "接收此消息的主機" -#: common/models.py:2859 +#: common/models.py:2923 msgid "Header" -msgstr "" +msgstr "標題" -#: common/models.py:2860 +#: common/models.py:2924 msgid "Header of this message" -msgstr "" +msgstr "此消息的標題" -#: common/models.py:2867 +#: common/models.py:2931 msgid "Body" -msgstr "" +msgstr "正文" -#: common/models.py:2868 +#: common/models.py:2932 msgid "Body of this message" -msgstr "" +msgstr "此消息的正文" -#: common/models.py:2878 +#: common/models.py:2942 msgid "Endpoint on which this message was received" -msgstr "" +msgstr "接收此消息的終點" -#: common/models.py:2883 +#: common/models.py:2947 msgid "Worked on" -msgstr "" +msgstr "工作於" -#: common/models.py:2884 +#: common/models.py:2948 msgid "Was the work on this message finished?" -msgstr "" +msgstr "這條消息的工作完成了嗎?" -#: common/models.py:3010 +#: common/models.py:3074 msgid "Id" -msgstr "" +msgstr "標識" -#: common/models.py:3012 templates/js/translated/company.js:965 -#: templates/js/translated/news.js:44 +#: common/models.py:3076 part/serializers.py:271 +#: templates/js/translated/company.js:966 templates/js/translated/news.js:44 msgid "Title" -msgstr "" +msgstr "標題" -#: common/models.py:3014 common/models.py:3272 company/models.py:149 -#: company/models.py:446 company/models.py:512 company/models.py:818 -#: order/models.py:302 order/models.py:1385 order/models.py:1817 -#: part/admin.py:55 part/models.py:1057 +#: common/models.py:3078 common/models.py:3333 company/models.py:146 +#: company/models.py:443 company/models.py:509 company/models.py:815 +#: order/models.py:309 order/models.py:1402 order/models.py:1846 +#: part/admin.py:55 part/models.py:1118 #: part/templates/part/part_scheduling.html:11 #: report/templates/report/inventree_build_order_report.html:164 -#: stock/admin.py:229 templates/js/translated/company.js:1319 -#: templates/js/translated/company.js:1673 templates/js/translated/order.js:376 +#: stock/admin.py:230 templates/js/translated/company.js:1320 +#: templates/js/translated/company.js:1674 templates/js/translated/order.js:376 #: templates/js/translated/part.js:2475 -#: templates/js/translated/purchase_order.js:2110 -#: templates/js/translated/purchase_order.js:2274 +#: templates/js/translated/purchase_order.js:2094 +#: templates/js/translated/purchase_order.js:2258 #: templates/js/translated/return_order.js:778 -#: templates/js/translated/sales_order.js:1092 -#: templates/js/translated/sales_order.js:2023 +#: templates/js/translated/sales_order.js:1058 +#: templates/js/translated/sales_order.js:2004 msgid "Link" -msgstr "" +msgstr "連結" -#: common/models.py:3016 templates/js/translated/news.js:60 +#: common/models.py:3080 templates/js/translated/news.js:60 msgid "Published" -msgstr "" +msgstr "已發佈" -#: common/models.py:3018 templates/InvenTree/settings/plugin_settings.html:32 +#: common/models.py:3082 templates/InvenTree/settings/plugin_settings.html:32 #: templates/js/translated/news.js:56 templates/js/translated/plugin.js:103 msgid "Author" -msgstr "" +msgstr "作者" -#: common/models.py:3020 templates/js/translated/news.js:52 +#: common/models.py:3084 templates/js/translated/news.js:52 msgid "Summary" -msgstr "" +msgstr "摘要" -#: common/models.py:3023 +#: common/models.py:3087 msgid "Read" -msgstr "" +msgstr "閲讀" -#: common/models.py:3023 +#: common/models.py:3087 msgid "Was this news item read?" -msgstr "" +msgstr "這條新聞被閲讀了嗎?" -#: common/models.py:3040 company/models.py:159 part/models.py:1067 +#: common/models.py:3104 company/models.py:156 part/models.py:1128 #: report/templates/report/inventree_bill_of_materials_report.html:126 #: report/templates/report/inventree_bill_of_materials_report.html:148 #: report/templates/report/inventree_return_order_report.html:35 -#: stock/templates/stock/item_base.html:133 templates/503.html:31 +#: stock/templates/stock/item_base.html:130 templates/503.html:31 #: templates/hover_image.html:7 templates/hover_image.html:9 #: templates/modals.html:6 msgid "Image" -msgstr "" +msgstr "圖像" -#: common/models.py:3040 +#: common/models.py:3104 msgid "Image file" -msgstr "" +msgstr "圖像文件" -#: common/models.py:3052 common/models.py:3256 +#: common/models.py:3116 common/models.py:3317 msgid "Target model type for this image" -msgstr "" +msgstr "此圖像的目標模型類型" -#: common/models.py:3056 +#: common/models.py:3120 msgid "Target model ID for this image" -msgstr "" +msgstr "此圖像的目標型號ID" -#: common/models.py:3078 +#: common/models.py:3142 msgid "Custom Unit" -msgstr "" +msgstr "自定義單位" -#: common/models.py:3099 +#: common/models.py:3160 msgid "Unit symbol must be unique" -msgstr "" +msgstr "單位符號必須唯一" -#: common/models.py:3114 +#: common/models.py:3175 msgid "Unit name must be a valid identifier" -msgstr "" +msgstr "單位名稱必須是有效的標識符" -#: common/models.py:3133 +#: common/models.py:3194 msgid "Unit name" -msgstr "" +msgstr "單位名稱" -#: common/models.py:3140 templates/InvenTree/settings/settings_staff_js.html:75 +#: common/models.py:3201 templates/InvenTree/settings/settings_staff_js.html:75 msgid "Symbol" -msgstr "" +msgstr "符號" -#: common/models.py:3141 +#: common/models.py:3202 msgid "Optional unit symbol" -msgstr "" +msgstr "可選單位符號" -#: common/models.py:3147 templates/InvenTree/settings/settings_staff_js.html:71 +#: common/models.py:3208 templates/InvenTree/settings/settings_staff_js.html:71 msgid "Definition" -msgstr "" +msgstr "定義" -#: common/models.py:3148 +#: common/models.py:3209 msgid "Unit definition" -msgstr "" +msgstr "單位定義" -#: common/models.py:3206 common/models.py:3263 stock/models.py:2558 -#: templates/js/translated/attachment.js:119 +#: common/models.py:3267 common/models.py:3324 stock/models.py:2674 +#: stock/serializers.py:244 templates/js/translated/attachment.js:119 #: templates/js/translated/attachment.js:345 msgid "Attachment" -msgstr "" +msgstr "附件" -#: common/models.py:3218 +#: common/models.py:3279 msgid "Missing file" -msgstr "" - -#: common/models.py:3219 -msgid "Missing external link" -msgstr "" - -#: common/models.py:3264 -msgid "Select file to attach" -msgstr "" - -#: common/models.py:3279 templates/js/translated/attachment.js:120 -#: templates/js/translated/attachment.js:360 -msgid "Comment" -msgstr "" +msgstr "缺少檔案" #: common/models.py:3280 +msgid "Missing external link" +msgstr "缺少外部連結" + +#: common/models.py:3325 +msgid "Select file to attach" +msgstr "選擇附件" + +#: common/models.py:3340 templates/js/translated/attachment.js:120 +#: templates/js/translated/attachment.js:360 +msgid "Comment" +msgstr "註解" + +#: common/models.py:3341 msgid "Attachment comment" -msgstr "" +msgstr "附件評論" -#: common/models.py:3296 +#: common/models.py:3357 msgid "Upload date" -msgstr "" +msgstr "上傳日期" -#: common/models.py:3297 +#: common/models.py:3358 msgid "Date the file was uploaded" -msgstr "" +msgstr "上傳文件的日期" -#: common/models.py:3301 +#: common/models.py:3362 msgid "File size" -msgstr "" +msgstr "文件大小" -#: common/models.py:3301 +#: common/models.py:3362 msgid "File size in bytes" -msgstr "" +msgstr "文件大小,以字節為單位" -#: common/models.py:3339 common/serializers.py:562 +#: common/models.py:3400 common/serializers.py:609 msgid "Invalid model type specified for attachment" -msgstr "" +msgstr "為附件指定的模型類型無效" -#: common/notifications.py:314 +#: common/models.py:3409 plugin/models.py:43 users/models.py:100 +msgid "Key" +msgstr "鍵" + +#: common/models.py:3410 +msgid "Value that will be saved in the models database" +msgstr "將保存到模型數據庫中的值" + +#: common/models.py:3413 +msgid "Name of the state" +msgstr "狀態名" + +#: common/models.py:3417 part/serializers.py:273 +msgid "Label" +msgstr "標籤" + +#: common/models.py:3418 +msgid "Label that will be displayed in the frontend" +msgstr "在前端顯示的標籤" + +#: common/models.py:3424 +msgid "Color" +msgstr "顏色" + +#: common/models.py:3425 +msgid "Color that will be displayed in the frontend" +msgstr "將在前端顯示顏色" + +#: common/models.py:3428 +msgid "Logical Key" +msgstr "邏輯密鑰" + +#: common/models.py:3430 +msgid "State logical key that is equal to this custom state in business logic" +msgstr "等同於商業邏輯中自定義狀態的狀態邏輯鍵" + +#: common/models.py:3438 part/serializers.py:275 +msgid "Model" +msgstr "模式" + +#: common/models.py:3439 +msgid "Model this state is associated with" +msgstr "該狀態關聯的模型" + +#: common/models.py:3443 +msgid "Reference Status Set" +msgstr "參考狀態設定" + +#: common/models.py:3444 +msgid "Status set that is extended with this custom state" +msgstr "使用此自定義狀態擴展狀態的狀態集" + +#: common/models.py:3450 +msgid "Custom State" +msgstr "自定狀態" + +#: common/models.py:3451 +msgid "Custom States" +msgstr "定製狀態" + +#: common/models.py:3466 +msgid "Model must be selected" +msgstr "必須選定模型" + +#: common/models.py:3469 +msgid "Key must be selected" +msgstr "必須選取密鑰" + +#: common/models.py:3472 +msgid "Logical key must be selected" +msgstr "必須選中邏輯密鑰" + +#: common/models.py:3476 +msgid "Key must be different from logical key" +msgstr "密鑰必須不同於邏輯密鑰" + +#: common/models.py:3480 +msgid "Reference status must be selected" +msgstr "必須選中參考狀態" + +#: common/models.py:3492 +msgid "Reference status set not found" +msgstr "未找到參考狀態集" + +#: common/models.py:3498 +msgid "Key must be different from the logical keys of the reference status" +msgstr "密鑰必須不同於參考狀態的邏輯密鑰" + +#: common/models.py:3504 +msgid "Logical key must be in the logical keys of the reference status" +msgstr "邏輯密鑰必須在參考狀態的邏輯鍵中" + +#: common/models.py:3519 +msgid "Barcode Scan" +msgstr "掃描條碼" + +#: common/models.py:3523 importer/models.py:512 part/models.py:4009 +msgid "Data" +msgstr "數據" + +#: common/models.py:3524 +msgid "Barcode data" +msgstr "條碼數據" + +#: common/models.py:3535 +msgid "User who scanned the barcode" +msgstr "掃描條碼" + +#: common/models.py:3540 importer/models.py:60 +msgid "Timestamp" +msgstr "時間戳" + +#: common/models.py:3541 +msgid "Date and time of the barcode scan" +msgstr "掃描條碼的日期和時間" + +#: common/models.py:3547 +msgid "URL endpoint which processed the barcode" +msgstr "處理條碼的 URL 終點" + +#: common/models.py:3554 order/models.py:1437 plugin/serializers.py:89 +msgid "Context" +msgstr "上下文" + +#: common/models.py:3555 +msgid "Context data for the barcode scan" +msgstr "掃描條碼的上下文數據" + +#: common/models.py:3562 +msgid "Response" +msgstr "響應" + +#: common/models.py:3563 +msgid "Response data from the barcode scan" +msgstr "掃描條碼的響應數據" + +#: common/models.py:3569 report/templates/report/inventree_test_report.html:103 +#: stock/models.py:2660 +msgid "Result" +msgstr "結果" + +#: common/models.py:3570 +msgid "Was the barcode scan successful?" +msgstr "條碼掃描成功嗎?" + +#: common/notifications.py:328 #, python-brace-format msgid "New {verbose_name}" -msgstr "" +msgstr "新建{verbose_name}" -#: common/notifications.py:316 +#: common/notifications.py:330 msgid "A new order has been created and assigned to you" -msgstr "" +msgstr "新訂單已創建並分配給您" -#: common/notifications.py:322 +#: common/notifications.py:336 #, python-brace-format msgid "{verbose_name} canceled" -msgstr "" +msgstr "{verbose_name} 已取消" -#: common/notifications.py:324 +#: common/notifications.py:338 msgid "A order that is assigned to you was canceled" -msgstr "" +msgstr "分配給您的訂單已取消" -#: common/notifications.py:330 common/notifications.py:337 order/api.py:462 +#: common/notifications.py:344 common/notifications.py:351 order/api.py:440 msgid "Items Received" -msgstr "" +msgstr "收到的物品" -#: common/notifications.py:332 +#: common/notifications.py:346 msgid "Items have been received against a purchase order" -msgstr "" +msgstr "已根據採購訂單收到物品" -#: common/notifications.py:339 +#: common/notifications.py:353 msgid "Items have been received against a return order" -msgstr "" +msgstr "已收到退貨訂單中的物品" -#: common/notifications.py:457 +#: common/notifications.py:475 msgid "Error raised by plugin" -msgstr "" +msgstr "插件引發的錯誤" -#: common/serializers.py:375 +#: common/serializers.py:423 msgid "Is Running" -msgstr "" +msgstr "正在運行" -#: common/serializers.py:381 +#: common/serializers.py:429 msgid "Pending Tasks" -msgstr "" +msgstr "等待完成的任務" -#: common/serializers.py:387 +#: common/serializers.py:435 msgid "Scheduled Tasks" -msgstr "" +msgstr "預定的任務" -#: common/serializers.py:393 +#: common/serializers.py:441 msgid "Failed Tasks" -msgstr "" +msgstr "失敗的任務" -#: common/serializers.py:408 +#: common/serializers.py:456 msgid "Task ID" -msgstr "" +msgstr "任務ID" -#: common/serializers.py:408 +#: common/serializers.py:456 msgid "Unique task ID" -msgstr "" +msgstr "唯一任務ID" -#: common/serializers.py:410 +#: common/serializers.py:458 msgid "Lock" -msgstr "" +msgstr "鎖定" -#: common/serializers.py:410 +#: common/serializers.py:458 msgid "Lock time" -msgstr "" +msgstr "鎖定時間" -#: common/serializers.py:412 +#: common/serializers.py:460 msgid "Task name" -msgstr "" +msgstr "任務名稱" -#: common/serializers.py:414 +#: common/serializers.py:462 msgid "Function" -msgstr "" +msgstr "功能" -#: common/serializers.py:414 +#: common/serializers.py:462 msgid "Function name" -msgstr "" +msgstr "功能名稱" -#: common/serializers.py:416 +#: common/serializers.py:464 msgid "Arguments" -msgstr "" +msgstr "參數" -#: common/serializers.py:416 +#: common/serializers.py:464 msgid "Task arguments" -msgstr "" +msgstr "任務參數" -#: common/serializers.py:419 +#: common/serializers.py:467 msgid "Keyword Arguments" -msgstr "" +msgstr "關鍵字參數" -#: common/serializers.py:419 +#: common/serializers.py:467 msgid "Task keyword arguments" -msgstr "" +msgstr "任務關鍵詞參數" -#: common/serializers.py:529 +#: common/serializers.py:577 msgid "Filename" -msgstr "" +msgstr "檔案名稱" -#: common/serializers.py:536 report/api.py:100 report/serializers.py:53 +#: common/serializers.py:584 report/api.py:100 report/serializers.py:54 msgid "Model Type" -msgstr "" +msgstr "模型類型" -#: common/serializers.py:565 +#: common/serializers.py:612 msgid "User does not have permission to create or edit attachments for this model" -msgstr "" +msgstr "用户無權為此模式創建或編輯附件" #: common/validators.py:35 msgid "No attachment model type provided" -msgstr "" +msgstr "未提供附件型號" #: common/validators.py:41 msgid "Invalid attachment model type" -msgstr "" +msgstr "附件模型類型無效" #: common/validators.py:82 msgid "Minimum places cannot be greater than maximum places" -msgstr "" +msgstr "最小位置不能大於最大位置" #: common/validators.py:94 msgid "Maximum places cannot be less than minimum places" -msgstr "" +msgstr "最大名額不能小於最小名額" #: common/validators.py:105 msgid "An empty domain is not allowed." -msgstr "" +msgstr "不允許空域。" #: common/validators.py:107 #, python-brace-format msgid "Invalid domain name: {domain}" -msgstr "" +msgstr "無效的域名: {domain}" #: common/views.py:84 order/templates/order/order_wizard/po_upload.html:51 #: order/templates/order/purchase_order_detail.html:24 order/views.py:118 #: part/templates/part/import_wizard/part_upload.html:58 part/views.py:109 #: templates/patterns/wizard/upload.html:37 msgid "Upload File" -msgstr "" +msgstr "上傳文件" #: common/views.py:84 order/templates/order/order_wizard/match_fields.html:52 #: order/views.py:119 @@ -4110,21 +4289,21 @@ msgstr "" #: part/templates/part/import_wizard/match_fields.html:52 part/views.py:110 #: templates/patterns/wizard/match_fields.html:51 msgid "Match Fields" -msgstr "" +msgstr "匹配字段" #: common/views.py:84 msgid "Match Items" -msgstr "" +msgstr "匹配項目" -#: common/views.py:401 +#: common/views.py:397 msgid "Fields matching failed" -msgstr "" +msgstr "字段匹配失敗" -#: common/views.py:464 +#: common/views.py:460 msgid "Parts imported" -msgstr "" +msgstr "已導入零件" -#: common/views.py:494 order/templates/order/order_wizard/match_fields.html:27 +#: common/views.py:490 order/templates/order/order_wizard/match_fields.html:27 #: order/templates/order/order_wizard/match_parts.html:19 #: order/templates/order/order_wizard/po_upload.html:49 #: part/templates/part/import_wizard/match_fields.html:27 @@ -4133,588 +4312,589 @@ msgstr "" #: templates/patterns/wizard/match_fields.html:26 #: templates/patterns/wizard/upload.html:35 msgid "Previous Step" -msgstr "" +msgstr "上一步" #: company/api.py:141 msgid "Part is Active" -msgstr "" +msgstr "零件已激活" #: company/api.py:145 msgid "Manufacturer is Active" -msgstr "" +msgstr "製造商處於活動狀態" #: company/api.py:278 msgid "Supplier Part is Active" -msgstr "" +msgstr "供應商零件處於激活狀態" #: company/api.py:282 msgid "Internal Part is Active" -msgstr "" +msgstr "內部零件已激活" #: company/api.py:286 msgid "Supplier is Active" -msgstr "" +msgstr "供應商已激活" -#: company/models.py:100 company/models.py:371 +#: company/models.py:97 company/models.py:368 #: company/templates/company/company_base.html:8 #: company/templates/company/company_base.html:12 stock/api.py:812 -#: templates/InvenTree/search.html:178 templates/js/translated/company.js:496 +#: templates/InvenTree/search.html:178 templates/js/translated/company.js:497 msgid "Company" -msgstr "" +msgstr "公司" -#: company/models.py:101 company/views.py:51 +#: company/models.py:98 company/views.py:51 #: templates/js/translated/search.js:192 msgid "Companies" -msgstr "" +msgstr "公司" -#: company/models.py:117 +#: company/models.py:114 msgid "Company description" -msgstr "" +msgstr "公司簡介" -#: company/models.py:118 +#: company/models.py:115 msgid "Description of the company" -msgstr "" +msgstr "公司簡介" -#: company/models.py:123 company/templates/company/company_base.html:106 +#: company/models.py:120 company/templates/company/company_base.html:106 #: templates/InvenTree/settings/plugin_settings.html:54 -#: templates/js/translated/company.js:532 +#: templates/js/translated/company.js:533 msgid "Website" -msgstr "" +msgstr "網站" -#: company/models.py:123 +#: company/models.py:120 msgid "Company website URL" -msgstr "" +msgstr "公司網站" -#: company/models.py:128 +#: company/models.py:125 msgid "Phone number" -msgstr "" +msgstr "電話號碼" -#: company/models.py:130 +#: company/models.py:127 msgid "Contact phone number" -msgstr "" +msgstr "聯繫電話" -#: company/models.py:137 +#: company/models.py:134 msgid "Contact email address" -msgstr "" +msgstr "聯繫人電子郵箱地址" -#: company/models.py:142 company/models.py:275 -#: company/templates/company/company_base.html:145 order/models.py:342 -#: order/templates/order/order_base.html:208 -#: order/templates/order/return_order_base.html:177 -#: order/templates/order/sales_order_base.html:221 +#: company/models.py:139 company/models.py:272 +#: company/templates/company/company_base.html:145 order/models.py:349 +#: order/templates/order/order_base.html:217 +#: order/templates/order/return_order_base.html:178 +#: order/templates/order/sales_order_base.html:222 msgid "Contact" -msgstr "" +msgstr "聯繫人" -#: company/models.py:144 +#: company/models.py:141 msgid "Point of contact" -msgstr "" +msgstr "聯絡點" -#: company/models.py:150 +#: company/models.py:147 msgid "Link to external company information" -msgstr "" +msgstr "外部公司信息鏈接" -#: company/models.py:163 +#: company/models.py:160 msgid "Is this company active?" -msgstr "" +msgstr "這家公司是否激活?" -#: company/models.py:168 +#: company/models.py:165 msgid "Is customer" -msgstr "" +msgstr "是客户" -#: company/models.py:169 +#: company/models.py:166 msgid "Do you sell items to this company?" -msgstr "" +msgstr "你是否向該公司出售商品?" -#: company/models.py:174 +#: company/models.py:171 msgid "Is supplier" -msgstr "" +msgstr "是否為供應商" -#: company/models.py:175 +#: company/models.py:172 msgid "Do you purchase items from this company?" -msgstr "" +msgstr "你從這家公司買東西嗎?" -#: company/models.py:180 +#: company/models.py:177 msgid "Is manufacturer" -msgstr "" +msgstr "是製造商嗎" -#: company/models.py:181 +#: company/models.py:178 msgid "Does this company manufacture parts?" -msgstr "" +msgstr "這家公司生產零件嗎?" -#: company/models.py:189 +#: company/models.py:186 msgid "Default currency used for this company" -msgstr "" +msgstr "此公司使用的默認貨幣" -#: company/models.py:314 company/templates/company/company_base.html:124 -#: order/models.py:352 order/templates/order/order_base.html:215 -#: order/templates/order/return_order_base.html:184 -#: order/templates/order/sales_order_base.html:228 +#: company/models.py:311 company/templates/company/company_base.html:124 +#: order/models.py:359 order/templates/order/order_base.html:224 +#: order/templates/order/return_order_base.html:185 +#: order/templates/order/sales_order_base.html:229 msgid "Address" -msgstr "" +msgstr "地址" -#: company/models.py:315 company/templates/company/sidebar.html:35 +#: company/models.py:312 company/templates/company/sidebar.html:35 msgid "Addresses" -msgstr "" +msgstr "地址" -#: company/models.py:372 +#: company/models.py:369 msgid "Select company" -msgstr "" +msgstr "選擇公司" -#: company/models.py:377 +#: company/models.py:374 msgid "Address title" -msgstr "" +msgstr "地址標題" -#: company/models.py:378 +#: company/models.py:375 msgid "Title describing the address entry" -msgstr "" +msgstr "描述地址條目的標題" -#: company/models.py:384 +#: company/models.py:381 msgid "Primary address" -msgstr "" +msgstr "主要地址" -#: company/models.py:385 +#: company/models.py:382 msgid "Set as primary address" -msgstr "" +msgstr "設置主要地址" -#: company/models.py:390 templates/js/translated/company.js:914 -#: templates/js/translated/company.js:971 +#: company/models.py:387 templates/js/translated/company.js:915 +#: templates/js/translated/company.js:972 msgid "Line 1" -msgstr "" +msgstr "第1行" -#: company/models.py:391 +#: company/models.py:388 msgid "Address line 1" -msgstr "" +msgstr "地址行1" -#: company/models.py:397 templates/js/translated/company.js:915 -#: templates/js/translated/company.js:977 +#: company/models.py:394 templates/js/translated/company.js:916 +#: templates/js/translated/company.js:978 msgid "Line 2" -msgstr "" +msgstr "第2行" -#: company/models.py:398 +#: company/models.py:395 msgid "Address line 2" -msgstr "" +msgstr "地址行2" -#: company/models.py:404 company/models.py:405 -#: templates/js/translated/company.js:983 +#: company/models.py:401 company/models.py:402 +#: templates/js/translated/company.js:984 msgid "Postal code" -msgstr "" +msgstr "郵政編碼" -#: company/models.py:411 +#: company/models.py:408 msgid "City/Region" -msgstr "" +msgstr "城市/地區" -#: company/models.py:412 +#: company/models.py:409 msgid "Postal code city/region" -msgstr "" +msgstr "郵政編碼城市/地區" -#: company/models.py:418 +#: company/models.py:415 msgid "State/Province" -msgstr "" +msgstr "省/市/自治區" -#: company/models.py:419 +#: company/models.py:416 msgid "State or province" -msgstr "" +msgstr "省、自治區或直轄市" -#: company/models.py:425 templates/js/translated/company.js:1001 +#: company/models.py:422 templates/js/translated/company.js:1002 msgid "Country" -msgstr "" +msgstr "國家/地區" -#: company/models.py:426 +#: company/models.py:423 msgid "Address country" -msgstr "" +msgstr "地址所在國家" -#: company/models.py:432 +#: company/models.py:429 msgid "Courier shipping notes" -msgstr "" +msgstr "快遞運單" -#: company/models.py:433 +#: company/models.py:430 msgid "Notes for shipping courier" -msgstr "" +msgstr "運輸快遞注意事項" -#: company/models.py:439 +#: company/models.py:436 msgid "Internal shipping notes" -msgstr "" +msgstr "內部裝運通知單" -#: company/models.py:440 +#: company/models.py:437 msgid "Shipping notes for internal use" -msgstr "" +msgstr "內部使用的裝運通知單" -#: company/models.py:447 +#: company/models.py:444 msgid "Link to address information (external)" -msgstr "" +msgstr "鏈接地址信息 (外部)" -#: company/models.py:470 company/models.py:587 company/models.py:811 +#: company/models.py:467 company/models.py:584 company/models.py:808 #: company/templates/company/manufacturer_part.html:7 #: company/templates/company/manufacturer_part.html:24 -#: stock/templates/stock/item_base.html:217 +#: stock/templates/stock/item_base.html:214 msgid "Manufacturer Part" -msgstr "" +msgstr "製造商零件" -#: company/models.py:487 company/models.py:779 stock/models.py:787 -#: stock/serializers.py:445 stock/templates/stock/item_base.html:142 +#: company/models.py:484 company/models.py:776 stock/models.py:864 +#: stock/serializers.py:455 stock/templates/stock/item_base.html:139 #: templates/js/translated/bom.js:622 msgid "Base Part" -msgstr "" +msgstr "基礎零件" -#: company/models.py:489 company/models.py:781 +#: company/models.py:486 company/models.py:778 msgid "Select part" -msgstr "" +msgstr "選擇零件" -#: company/models.py:498 company/templates/company/company_base.html:82 +#: company/models.py:495 company/templates/company/company_base.html:82 #: company/templates/company/manufacturer_part.html:90 -#: company/templates/company/supplier_part.html:145 part/serializers.py:554 -#: stock/templates/stock/item_base.html:207 -#: templates/js/translated/company.js:507 -#: templates/js/translated/company.js:1118 -#: templates/js/translated/company.js:1296 -#: templates/js/translated/company.js:1611 +#: company/templates/company/supplier_part.html:146 part/serializers.py:598 +#: stock/templates/stock/item_base.html:204 +#: templates/js/translated/company.js:508 +#: templates/js/translated/company.js:1119 +#: templates/js/translated/company.js:1297 +#: templates/js/translated/company.js:1612 #: templates/js/translated/table_filters.js:812 msgid "Manufacturer" -msgstr "" +msgstr "製造商" -#: company/models.py:499 +#: company/models.py:496 msgid "Select manufacturer" -msgstr "" +msgstr "選擇製造商" -#: company/models.py:505 company/templates/company/manufacturer_part.html:101 -#: company/templates/company/supplier_part.html:153 order/serializers.py:556 -#: part/serializers.py:564 templates/js/translated/company.js:351 -#: templates/js/translated/company.js:1117 -#: templates/js/translated/company.js:1312 -#: templates/js/translated/company.js:1630 templates/js/translated/part.js:1807 -#: templates/js/translated/purchase_order.js:1921 -#: templates/js/translated/purchase_order.js:2123 +#: company/models.py:502 company/templates/company/manufacturer_part.html:101 +#: company/templates/company/supplier_part.html:154 order/serializers.py:641 +#: part/serializers.py:608 templates/js/translated/company.js:352 +#: templates/js/translated/company.js:1118 +#: templates/js/translated/company.js:1313 +#: templates/js/translated/company.js:1631 templates/js/translated/part.js:1807 +#: templates/js/translated/purchase_order.js:1905 +#: templates/js/translated/purchase_order.js:2107 msgid "MPN" -msgstr "" +msgstr "製造商零件編號" -#: company/models.py:513 +#: company/models.py:510 msgid "URL for external manufacturer part link" -msgstr "" +msgstr "外部製造商零件鏈接的URL" -#: company/models.py:522 +#: company/models.py:519 msgid "Manufacturer part description" -msgstr "" +msgstr "製造商零件説明" -#: company/models.py:575 +#: company/models.py:572 msgid "Manufacturer Part Parameter" -msgstr "" +msgstr "製造商零件參數" -#: company/models.py:594 +#: company/models.py:591 msgid "Parameter name" -msgstr "" +msgstr "參數名稱" -#: company/models.py:600 report/templates/report/inventree_test_report.html:104 -#: stock/models.py:2550 templates/js/translated/company.js:1166 -#: templates/js/translated/company.js:1419 templates/js/translated/part.js:1499 +#: company/models.py:597 report/templates/report/inventree_test_report.html:104 +#: stock/models.py:2666 templates/js/translated/company.js:1167 +#: templates/js/translated/company.js:1420 templates/js/translated/part.js:1499 #: templates/js/translated/stock.js:1607 msgid "Value" -msgstr "" +msgstr "值" -#: company/models.py:601 +#: company/models.py:598 msgid "Parameter value" -msgstr "" +msgstr "參數值" -#: company/models.py:608 company/templates/company/supplier_part.html:168 -#: part/admin.py:57 part/models.py:1147 part/models.py:3771 -#: part/templates/part/part_base.html:293 -#: templates/js/translated/company.js:1425 templates/js/translated/part.js:1518 +#: company/models.py:605 company/templates/company/supplier_part.html:169 +#: part/admin.py:57 part/models.py:1208 part/models.py:3822 +#: part/templates/part/part_base.html:301 +#: templates/js/translated/company.js:1426 templates/js/translated/part.js:1518 #: templates/js/translated/part.js:1622 templates/js/translated/part.js:2376 msgid "Units" -msgstr "" +msgstr "單位" -#: company/models.py:609 +#: company/models.py:606 msgid "Parameter units" -msgstr "" +msgstr "參數單位" -#: company/models.py:662 company/templates/company/supplier_part.html:7 -#: company/templates/company/supplier_part.html:24 order/api.py:442 -#: order/serializers.py:491 stock/models.py:798 -#: stock/templates/stock/item_base.html:233 -#: templates/js/translated/build.js:1052 -#: templates/js/translated/company.js:1600 -#: templates/js/translated/purchase_order.js:752 -#: templates/js/translated/stock.js:2365 +#: company/models.py:659 company/templates/company/supplier_part.html:8 +#: company/templates/company/supplier_part.html:25 order/api.py:392 +#: order/serializers.py:576 stock/models.py:875 +#: stock/templates/stock/item_base.html:230 +#: templates/js/translated/build.js:1055 +#: templates/js/translated/company.js:1601 +#: templates/js/translated/purchase_order.js:735 +#: templates/js/translated/stock.js:2366 msgid "Supplier Part" -msgstr "" +msgstr "供應商零件" -#: company/models.py:719 +#: company/models.py:716 msgid "Pack units must be compatible with the base part units" -msgstr "" +msgstr "包裝單位必須與基礎零件單位兼容" -#: company/models.py:726 +#: company/models.py:723 msgid "Pack units must be greater than zero" -msgstr "" +msgstr "包裝單位必須大於零" -#: company/models.py:740 +#: company/models.py:737 msgid "Linked manufacturer part must reference the same base part" -msgstr "" +msgstr "鏈接的製造商零件必須引用相同的基礎零件" -#: company/models.py:789 company/templates/company/company_base.html:87 -#: company/templates/company/supplier_part.html:129 order/models.py:491 -#: order/templates/order/order_base.html:141 part/bom.py:280 part/bom.py:318 -#: part/serializers.py:538 plugin/builtin/suppliers/digikey.py:25 +#: company/models.py:786 company/templates/company/company_base.html:87 +#: company/templates/company/supplier_part.html:130 order/models.py:503 +#: order/templates/order/order_base.html:150 part/bom.py:279 part/bom.py:314 +#: part/serializers.py:582 plugin/builtin/suppliers/digikey.py:25 #: plugin/builtin/suppliers/lcsc.py:26 plugin/builtin/suppliers/mouser.py:24 -#: plugin/builtin/suppliers/tme.py:26 stock/templates/stock/item_base.html:224 +#: plugin/builtin/suppliers/tme.py:26 stock/templates/stock/item_base.html:221 #: templates/email/overdue_purchase_order.html:16 -#: templates/js/translated/company.js:350 -#: templates/js/translated/company.js:511 -#: templates/js/translated/company.js:1584 templates/js/translated/part.js:1775 +#: templates/js/translated/company.js:351 +#: templates/js/translated/company.js:512 +#: templates/js/translated/company.js:1585 templates/js/translated/part.js:1775 #: templates/js/translated/pricing.js:498 -#: templates/js/translated/purchase_order.js:1759 +#: templates/js/translated/purchase_order.js:1743 #: templates/js/translated/table_filters.js:816 msgid "Supplier" -msgstr "" +msgstr "供應商" -#: company/models.py:790 +#: company/models.py:787 msgid "Select supplier" -msgstr "" +msgstr "選擇供應商" -#: company/models.py:796 part/serializers.py:549 +#: company/models.py:793 part/serializers.py:593 msgid "Supplier stock keeping unit" -msgstr "" +msgstr "供應商庫存管理單位" -#: company/models.py:802 +#: company/models.py:799 msgid "Is this supplier part active?" -msgstr "" +msgstr "此供應商零件是否處於活動狀態?" -#: company/models.py:812 +#: company/models.py:809 msgid "Select manufacturer part" -msgstr "" +msgstr "選擇製造商零件" -#: company/models.py:819 +#: company/models.py:816 msgid "URL for external supplier part link" -msgstr "" +msgstr "外部供應商零件鏈接的URL" -#: company/models.py:828 +#: company/models.py:825 msgid "Supplier part description" -msgstr "" +msgstr "供應商零件説明" -#: company/models.py:835 company/templates/company/supplier_part.html:187 -#: order/serializers.py:698 part/admin.py:415 part/models.py:4288 +#: company/models.py:832 company/templates/company/supplier_part.html:188 +#: order/serializers.py:783 part/admin.py:415 part/models.py:4345 #: part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_bill_of_materials_report.html:140 #: report/templates/report/inventree_purchase_order_report.html:32 #: report/templates/report/inventree_return_order_report.html:27 #: report/templates/report/inventree_sales_order_report.html:32 #: report/templates/report/inventree_stock_location_report.html:105 -#: stock/serializers.py:776 templates/js/translated/purchase_order.js:1185 -#: templates/js/translated/purchase_order.js:1344 +#: stock/serializers.py:807 templates/js/translated/purchase_order.js:1168 +#: templates/js/translated/purchase_order.js:1327 msgid "Note" -msgstr "" +msgstr "備註" -#: company/models.py:844 part/models.py:2117 +#: company/models.py:841 part/models.py:2177 msgid "base cost" -msgstr "" +msgstr "基本費用" -#: company/models.py:845 part/models.py:2118 +#: company/models.py:842 part/models.py:2178 msgid "Minimum charge (e.g. stocking fee)" -msgstr "" +msgstr "最低費用(例如庫存費)" -#: company/models.py:853 +#: company/models.py:850 msgid "Part packaging" -msgstr "" +msgstr "零件打包" -#: company/models.py:858 templates/js/translated/company.js:1651 +#: company/models.py:855 templates/js/translated/company.js:1652 #: templates/js/translated/part.js:1828 templates/js/translated/part.js:1884 -#: templates/js/translated/purchase_order.js:311 -#: templates/js/translated/purchase_order.js:841 -#: templates/js/translated/purchase_order.js:1103 -#: templates/js/translated/purchase_order.js:2154 -#: templates/js/translated/purchase_order.js:2171 +#: templates/js/translated/purchase_order.js:294 +#: templates/js/translated/purchase_order.js:824 +#: templates/js/translated/purchase_order.js:1086 +#: templates/js/translated/purchase_order.js:2138 +#: templates/js/translated/purchase_order.js:2155 msgid "Pack Quantity" -msgstr "" +msgstr "包裝數量" -#: company/models.py:860 +#: company/models.py:857 msgid "Total quantity supplied in a single pack. Leave empty for single items." -msgstr "" +msgstr "單包供應的總數量。為單個項目留空。" -#: company/models.py:879 part/models.py:2124 +#: company/models.py:876 part/models.py:2184 msgid "multiple" -msgstr "" +msgstr "多個" -#: company/models.py:880 +#: company/models.py:877 msgid "Order multiple" -msgstr "" +msgstr "訂購多個" -#: company/models.py:892 +#: company/models.py:889 msgid "Quantity available from supplier" -msgstr "" +msgstr "供應商提供的數量" -#: company/models.py:898 +#: company/models.py:895 msgid "Availability Updated" -msgstr "" +msgstr "可用性已更新" -#: company/models.py:899 +#: company/models.py:896 msgid "Date of last update of availability data" -msgstr "" +msgstr "上次更新可用性數據的日期" -#: company/models.py:1027 +#: company/models.py:1024 msgid "Supplier Price Break" -msgstr "" +msgstr "供應商批發價" -#: company/serializers.py:174 +#: company/serializers.py:178 msgid "Default currency used for this supplier" -msgstr "" +msgstr "此供應商使用的默認貨幣" -#: company/serializers.py:210 +#: company/serializers.py:214 msgid "Company Name" -msgstr "" +msgstr "公司名稱" -#: company/serializers.py:393 part/admin.py:126 part/serializers.py:898 -#: part/templates/part/part_base.html:197 -#: templates/js/translated/company.js:1689 +#: company/serializers.py:397 part/admin.py:126 part/serializers.py:950 +#: part/templates/part/part_base.html:198 stock/serializers.py:474 +#: templates/js/translated/company.js:1690 #: templates/js/translated/table_filters.js:362 msgid "In Stock" -msgstr "" +msgstr "有庫存" #: company/templates/company/company_base.html:16 -#: part/templates/part/part_base.html:146 -#: templates/js/translated/company.js:1287 -#: templates/js/translated/company.js:1575 -#: templates/js/translated/model_renderers.js:313 +#: part/templates/part/part_base.html:147 +#: templates/js/translated/company.js:1288 +#: templates/js/translated/company.js:1576 +#: templates/js/translated/model_renderers.js:316 #: templates/js/translated/part.js:817 templates/js/translated/part.js:1225 msgid "Inactive" -msgstr "" +msgstr "未激活" #: company/templates/company/company_base.html:27 -#: templates/js/translated/purchase_order.js:242 +#: templates/js/translated/purchase_order.js:224 msgid "Create Purchase Order" -msgstr "" +msgstr "創建採購訂單" #: company/templates/company/company_base.html:33 msgid "Company actions" -msgstr "" +msgstr "公司行為" #: company/templates/company/company_base.html:38 msgid "Edit company information" -msgstr "" +msgstr "編輯公司信息" #: company/templates/company/company_base.html:39 -#: templates/js/translated/company.js:445 +#: templates/js/translated/company.js:446 msgid "Edit Company" -msgstr "" +msgstr "編輯公司" #: company/templates/company/company_base.html:43 msgid "Delete company" -msgstr "" +msgstr "刪除公司" #: company/templates/company/company_base.html:44 #: company/templates/company/company_base.html:168 msgid "Delete Company" -msgstr "" +msgstr "刪除公司" #: company/templates/company/company_base.html:53 #: company/templates/company/manufacturer_part.html:51 -#: company/templates/company/supplier_part.html:83 +#: company/templates/company/supplier_part.html:84 #: part/templates/part/part_thumb.html:20 #: report/templates/report/inventree_build_order_report.html:98 #: report/templates/report/inventree_purchase_order_report.html:40 #: report/templates/report/inventree_sales_order_report.html:40 +#: report/templates/report/inventree_sales_order_shipment_report.html:37 #: report/templates/report/inventree_test_report.html:84 #: report/templates/report/inventree_test_report.html:162 msgid "Part image" -msgstr "" +msgstr "零件圖像" #: company/templates/company/company_base.html:61 #: part/templates/part/part_thumb.html:12 msgid "Upload new image" -msgstr "" +msgstr "上傳新圖像" #: company/templates/company/company_base.html:64 #: part/templates/part/part_thumb.html:14 msgid "Download image from URL" -msgstr "" +msgstr "從 URL 下載圖像" #: company/templates/company/company_base.html:66 #: part/templates/part/part_thumb.html:16 msgid "Delete image" -msgstr "" +msgstr "刪除圖像" -#: company/templates/company/company_base.html:92 order/models.py:990 -#: order/models.py:2147 order/templates/order/return_order_base.html:134 -#: order/templates/order/sales_order_base.html:151 stock/models.py:840 -#: stock/models.py:841 stock/serializers.py:1329 -#: stock/templates/stock/item_base.html:405 +#: company/templates/company/company_base.html:92 order/models.py:1017 +#: order/models.py:2186 order/templates/order/return_order_base.html:135 +#: order/templates/order/sales_order_base.html:152 stock/models.py:917 +#: stock/models.py:918 stock/serializers.py:1360 +#: stock/templates/stock/item_base.html:402 #: templates/email/overdue_sales_order.html:16 -#: templates/js/translated/company.js:503 +#: templates/js/translated/company.js:504 #: templates/js/translated/return_order.js:295 -#: templates/js/translated/sales_order.js:820 -#: templates/js/translated/stock.js:3043 +#: templates/js/translated/sales_order.js:779 +#: templates/js/translated/stock.js:3044 #: templates/js/translated/table_filters.js:820 msgid "Customer" -msgstr "" +msgstr "客户" #: company/templates/company/company_base.html:117 msgid "Uses default currency" -msgstr "" +msgstr "使用默認貨幣" #: company/templates/company/company_base.html:131 msgid "Phone" -msgstr "" +msgstr "電話" #: company/templates/company/company_base.html:211 -#: part/templates/part/part_base.html:536 +#: part/templates/part/part_base.html:544 msgid "Remove Image" -msgstr "" +msgstr "移除圖像" #: company/templates/company/company_base.html:212 msgid "Remove associated image from this company" -msgstr "" +msgstr "從此公司中刪除關聯的圖像" #: company/templates/company/company_base.html:214 -#: part/templates/part/part_base.html:539 +#: part/templates/part/part_base.html:547 #: templates/InvenTree/settings/user.html:88 #: templates/InvenTree/settings/user_sso.html:43 msgid "Remove" -msgstr "" +msgstr "移除" #: company/templates/company/company_base.html:243 -#: part/templates/part/part_base.html:568 +#: part/templates/part/part_base.html:576 msgid "Upload Image" -msgstr "" +msgstr "上傳圖像" #: company/templates/company/company_base.html:258 -#: part/templates/part/part_base.html:622 +#: part/templates/part/part_base.html:630 msgid "Download Image" -msgstr "" +msgstr "下載圖像" #: company/templates/company/detail.html:15 #: company/templates/company/manufacturer_part_sidebar.html:7 #: templates/InvenTree/search.html:120 templates/js/translated/search.js:147 msgid "Supplier Parts" -msgstr "" +msgstr "供應商零件" #: company/templates/company/detail.html:19 msgid "Create new supplier part" -msgstr "" +msgstr "創建新的供應商零件" #: company/templates/company/detail.html:20 #: company/templates/company/manufacturer_part.html:123 #: part/templates/part/detail.html:372 msgid "New Supplier Part" -msgstr "" +msgstr "新建供應商零件" #: company/templates/company/detail.html:41 templates/InvenTree/search.html:105 #: templates/js/translated/search.js:151 msgid "Manufacturer Parts" -msgstr "" +msgstr "製造商零件" #: company/templates/company/detail.html:45 msgid "Create new manufacturer part" -msgstr "" +msgstr "創建新的製造商零件" #: company/templates/company/detail.html:46 part/templates/part/detail.html:392 msgid "New Manufacturer Part" -msgstr "" +msgstr "新建制造商零件" #: company/templates/company/detail.html:65 msgid "Supplier Stock" -msgstr "" +msgstr "供應商庫存" #: company/templates/company/detail.html:75 #: company/templates/company/sidebar.html:12 #: company/templates/company/supplier_part_sidebar.html:7 -#: order/templates/order/order_base.html:13 +#: order/templates/order/order_base.html:14 #: order/templates/order/purchase_orders.html:8 #: order/templates/order/purchase_orders.html:12 #: part/templates/part/detail.html:122 part/templates/part/part_sidebar.html:35 @@ -4723,21 +4903,21 @@ msgstr "" #: templates/js/translated/search.js:205 templates/navbar.html:50 #: users/models.py:208 msgid "Purchase Orders" -msgstr "" +msgstr "採購訂單" #: company/templates/company/detail.html:79 #: order/templates/order/purchase_orders.html:17 msgid "Create new purchase order" -msgstr "" +msgstr "創建採購訂單" #: company/templates/company/detail.html:80 #: order/templates/order/purchase_orders.html:18 msgid "New Purchase Order" -msgstr "" +msgstr "新建採購訂單" #: company/templates/company/detail.html:101 #: company/templates/company/sidebar.html:21 -#: order/templates/order/sales_order_base.html:13 +#: order/templates/order/sales_order_base.html:14 #: order/templates/order/sales_orders.html:8 #: order/templates/order/sales_orders.html:15 #: part/templates/part/detail.html:143 part/templates/part/part_sidebar.html:39 @@ -4746,1408 +4926,1436 @@ msgstr "" #: templates/js/translated/search.js:219 templates/navbar.html:62 #: users/models.py:209 msgid "Sales Orders" -msgstr "" +msgstr "銷售訂單" #: company/templates/company/detail.html:105 #: order/templates/order/sales_orders.html:20 msgid "Create new sales order" -msgstr "" +msgstr "創建新的銷售訂單" #: company/templates/company/detail.html:106 #: order/templates/order/sales_orders.html:21 msgid "New Sales Order" -msgstr "" +msgstr "新建銷售訂單" #: company/templates/company/detail.html:126 msgid "Assigned Stock" -msgstr "" +msgstr "已分配庫存" #: company/templates/company/detail.html:142 #: company/templates/company/sidebar.html:29 -#: order/templates/order/return_order_base.html:13 +#: order/templates/order/return_order_base.html:14 #: order/templates/order/return_orders.html:8 #: order/templates/order/return_orders.html:15 #: templates/InvenTree/settings/sidebar.html:61 #: templates/js/translated/search.js:232 templates/navbar.html:65 #: users/models.py:210 msgid "Return Orders" -msgstr "" +msgstr "退貨訂單" #: company/templates/company/detail.html:146 #: order/templates/order/return_orders.html:20 msgid "Create new return order" -msgstr "" +msgstr "創建新的退貨訂單" #: company/templates/company/detail.html:147 #: order/templates/order/return_orders.html:21 msgid "New Return Order" -msgstr "" +msgstr "新建退貨訂單" #: company/templates/company/detail.html:168 msgid "Company Notes" -msgstr "" +msgstr "公司説明" #: company/templates/company/detail.html:183 msgid "Company Contacts" -msgstr "" +msgstr "公司聯繫人" #: company/templates/company/detail.html:187 #: company/templates/company/detail.html:188 msgid "Add Contact" -msgstr "" +msgstr "添加聯繫人" #: company/templates/company/detail.html:206 msgid "Company addresses" -msgstr "" +msgstr "公司地址" #: company/templates/company/detail.html:210 #: company/templates/company/detail.html:211 msgid "Add Address" -msgstr "" +msgstr "新增地址" #: company/templates/company/manufacturer_part.html:15 company/views.py:37 #: templates/InvenTree/search.html:180 templates/navbar.html:49 msgid "Manufacturers" -msgstr "" +msgstr "製造商" #: company/templates/company/manufacturer_part.html:35 -#: company/templates/company/supplier_part.html:227 -#: part/templates/part/detail.html:125 part/templates/part/part_base.html:83 +#: company/templates/company/supplier_part.html:228 +#: part/templates/part/detail.html:125 part/templates/part/part_base.html:84 msgid "Order part" -msgstr "" +msgstr "訂購零件" #: company/templates/company/manufacturer_part.html:39 -#: templates/js/translated/company.js:1343 +#: templates/js/translated/company.js:1344 msgid "Edit manufacturer part" -msgstr "" +msgstr "編輯製造商零件" #: company/templates/company/manufacturer_part.html:43 -#: templates/js/translated/company.js:1344 +#: templates/js/translated/company.js:1345 msgid "Delete manufacturer part" -msgstr "" +msgstr "刪除製造商零件" #: company/templates/company/manufacturer_part.html:65 -#: company/templates/company/supplier_part.html:97 order/api.py:448 -#: order/serializers.py:564 +#: company/templates/company/supplier_part.html:98 order/api.py:411 +#: order/serializers.py:649 msgid "Internal Part" -msgstr "" +msgstr "內部零件" #: company/templates/company/manufacturer_part.html:95 msgid "No manufacturer information available" -msgstr "" +msgstr "沒有可用的製造商信息" #: company/templates/company/manufacturer_part.html:119 -#: company/templates/company/supplier_part.html:15 company/views.py:31 -#: part/admin.py:122 part/serializers.py:904 +#: company/templates/company/supplier_part.html:16 company/views.py:31 +#: part/admin.py:122 part/serializers.py:956 #: part/templates/part/part_sidebar.html:33 templates/InvenTree/search.html:190 #: templates/navbar.html:48 msgid "Suppliers" -msgstr "" +msgstr "供應商" #: company/templates/company/manufacturer_part.html:156 #: company/templates/company/manufacturer_part_sidebar.html:5 #: part/templates/part/category_sidebar.html:20 #: part/templates/part/detail.html:211 part/templates/part/part_sidebar.html:8 msgid "Parameters" -msgstr "" +msgstr "參數" #: company/templates/company/manufacturer_part.html:160 #: part/templates/part/detail.html:216 #: templates/InvenTree/settings/category.html:12 #: templates/InvenTree/settings/part_parameters.html:24 msgid "New Parameter" -msgstr "" +msgstr "新建參數" #: company/templates/company/manufacturer_part.html:177 msgid "Manufacturer Part Notes" -msgstr "" +msgstr "製造商零件註釋" #: company/templates/company/manufacturer_part.html:225 #: templates/js/translated/part.js:1429 msgid "Add Parameter" -msgstr "" +msgstr "添加參數" #: company/templates/company/sidebar.html:6 msgid "Manufactured Parts" -msgstr "" +msgstr "製造的零件" #: company/templates/company/sidebar.html:10 msgid "Supplied Parts" -msgstr "" +msgstr "已供應零件" #: company/templates/company/sidebar.html:16 msgid "Supplied Stock Items" -msgstr "" +msgstr "供應庫存物品" #: company/templates/company/sidebar.html:25 msgid "Assigned Stock Items" -msgstr "" +msgstr "已分配庫存項目" #: company/templates/company/sidebar.html:33 msgid "Contacts" -msgstr "" +msgstr "聯繫人" -#: company/templates/company/supplier_part.html:50 -#: templates/js/translated/company.js:1526 +#: company/templates/company/supplier_part.html:51 +#: templates/js/translated/company.js:1527 msgid "Supplier part actions" -msgstr "" +msgstr "供應商零件操作" -#: company/templates/company/supplier_part.html:55 #: company/templates/company/supplier_part.html:56 -#: company/templates/company/supplier_part.html:228 +#: company/templates/company/supplier_part.html:57 +#: company/templates/company/supplier_part.html:229 #: part/templates/part/detail.html:126 msgid "Order Part" -msgstr "" +msgstr "訂購零件" -#: company/templates/company/supplier_part.html:60 #: company/templates/company/supplier_part.html:61 +#: company/templates/company/supplier_part.html:62 msgid "Update Availability" -msgstr "" +msgstr "更新可用性" -#: company/templates/company/supplier_part.html:63 #: company/templates/company/supplier_part.html:64 -#: templates/js/translated/company.js:294 +#: company/templates/company/supplier_part.html:65 +#: templates/js/translated/company.js:295 msgid "Edit Supplier Part" -msgstr "" +msgstr "編輯供應商零件" -#: company/templates/company/supplier_part.html:68 #: company/templates/company/supplier_part.html:69 -#: templates/js/translated/company.js:269 +#: company/templates/company/supplier_part.html:70 +#: templates/js/translated/company.js:270 msgid "Duplicate Supplier Part" -msgstr "" - -#: company/templates/company/supplier_part.html:73 -msgid "Delete Supplier Part" -msgstr "" +msgstr "重複供應商零件" #: company/templates/company/supplier_part.html:74 +msgid "Delete Supplier Part" +msgstr "刪除供應商零件" + +#: company/templates/company/supplier_part.html:75 msgid "Delete Supplier Part" -msgstr "" +msgstr "刪除供應商零件" -#: company/templates/company/supplier_part.html:133 +#: company/templates/company/supplier_part.html:134 +#: order/templates/order/order_base.html:155 msgid "No supplier information available" -msgstr "" +msgstr "沒有可用的供應商信息" -#: company/templates/company/supplier_part.html:139 order/serializers.py:553 -#: part/bom.py:287 part/bom.py:319 part/serializers.py:548 -#: templates/js/translated/company.js:349 templates/js/translated/part.js:1793 +#: company/templates/company/supplier_part.html:140 order/serializers.py:638 +#: part/bom.py:286 part/bom.py:315 part/serializers.py:592 +#: templates/js/translated/company.js:350 templates/js/translated/part.js:1793 #: templates/js/translated/pricing.js:510 -#: templates/js/translated/purchase_order.js:1920 -#: templates/js/translated/purchase_order.js:2098 +#: templates/js/translated/purchase_order.js:1904 +#: templates/js/translated/purchase_order.js:2082 msgid "SKU" -msgstr "" +msgstr "庫存量單位" -#: company/templates/company/supplier_part.html:206 +#: company/templates/company/supplier_part.html:207 msgid "Supplier Part Stock" -msgstr "" - -#: company/templates/company/supplier_part.html:209 -#: part/templates/part/detail.html:24 stock/templates/stock/location.html:204 -msgid "Create new stock item" -msgstr "" +msgstr "供應商零件庫存" #: company/templates/company/supplier_part.html:210 -#: part/templates/part/detail.html:25 stock/templates/stock/location.html:205 +#: part/templates/part/detail.html:24 stock/templates/stock/location.html:205 +msgid "Create new stock item" +msgstr "創建新庫存項目" + +#: company/templates/company/supplier_part.html:211 +#: part/templates/part/detail.html:25 stock/templates/stock/location.html:206 #: templates/js/translated/stock.js:543 msgid "New Stock Item" -msgstr "" +msgstr "新庫存項目" -#: company/templates/company/supplier_part.html:223 +#: company/templates/company/supplier_part.html:224 msgid "Supplier Part Orders" -msgstr "" +msgstr "供應商零件訂單" -#: company/templates/company/supplier_part.html:246 +#: company/templates/company/supplier_part.html:247 msgid "Pricing Information" -msgstr "" +msgstr "定價信息" -#: company/templates/company/supplier_part.html:251 -#: templates/js/translated/company.js:398 +#: company/templates/company/supplier_part.html:252 +#: templates/js/translated/company.js:399 #: templates/js/translated/pricing.js:684 msgid "Add Price Break" -msgstr "" +msgstr "添加批發價折扣" -#: company/templates/company/supplier_part.html:270 +#: company/templates/company/supplier_part.html:271 msgid "Supplier Part Notes" -msgstr "" +msgstr "供應商零件註釋" -#: company/templates/company/supplier_part.html:305 +#: company/templates/company/supplier_part.html:306 msgid "Supplier Part QR Code" -msgstr "" +msgstr "供應商零件二維碼" -#: company/templates/company/supplier_part.html:316 +#: company/templates/company/supplier_part.html:317 msgid "Link Barcode to Supplier Part" -msgstr "" +msgstr "將條形碼鏈接到供應商零件" -#: company/templates/company/supplier_part.html:388 +#: company/templates/company/supplier_part.html:389 msgid "Update Part Availability" -msgstr "" +msgstr "更新零件可用性" #: company/templates/company/supplier_part_sidebar.html:5 -#: part/serializers.py:902 part/stocktake.py:223 +#: part/serializers.py:954 part/stocktake.py:223 #: part/templates/part/category.html:180 #: part/templates/part/category_sidebar.html:17 stock/admin.py:68 -#: stock/serializers.py:1014 stock/serializers.py:1192 -#: stock/templates/stock/location.html:167 -#: stock/templates/stock/location.html:188 -#: stock/templates/stock/location.html:200 +#: stock/serializers.py:1045 stock/serializers.py:1223 +#: stock/templates/stock/location.html:168 +#: stock/templates/stock/location.html:189 +#: stock/templates/stock/location.html:201 #: stock/templates/stock/location_sidebar.html:7 #: templates/InvenTree/search.html:155 templates/js/translated/part.js:1067 -#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2850 +#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2851 #: users/models.py:206 msgid "Stock Items" -msgstr "" +msgstr "庫存項" #: company/templates/company/supplier_part_sidebar.html:9 msgid "Supplier Part Pricing" -msgstr "" +msgstr "供應商零件定價" #: company/views.py:32 msgid "New Supplier" -msgstr "" +msgstr "新建供應商" #: company/views.py:38 msgid "New Manufacturer" -msgstr "" +msgstr "新建制造商" #: company/views.py:43 templates/InvenTree/search.html:210 #: templates/navbar.html:60 msgid "Customers" -msgstr "" +msgstr "客户" #: company/views.py:44 msgid "New Customer" -msgstr "" +msgstr "新建客户" #: company/views.py:52 msgid "New Company" -msgstr "" +msgstr "新建公司信息" -#: generic/states/tests.py:18 order/status_codes.py:13 +#: generic/states/fields.py:118 +msgid "Custom status key" +msgstr "自定義狀態密鑰" + +#: generic/states/fields.py:119 +msgid "Additional status information for this item" +msgstr "此項目的附加狀態信息" + +#: generic/states/tests.py:22 order/status_codes.py:13 msgid "Placed" -msgstr "" +msgstr "放置" -#: importer/mixins.py:263 +#: importer/mixins.py:261 msgid "Invalid export format" -msgstr "" +msgstr "導出格式無效" -#: importer/models.py:59 -msgid "Timestamp" -msgstr "" - -#: importer/models.py:64 +#: importer/models.py:65 msgid "Data file to import" -msgstr "" +msgstr "要導入的數據文件" -#: importer/models.py:73 templates/js/translated/tables.js:558 +#: importer/models.py:74 templates/js/translated/tables.js:558 msgid "Columns" -msgstr "" +msgstr "列" -#: importer/models.py:84 +#: importer/models.py:85 msgid "Import status" -msgstr "" +msgstr "導入狀態" -#: importer/models.py:94 +#: importer/models.py:95 msgid "Field Defaults" -msgstr "" +msgstr "字段默認值" -#: importer/models.py:101 +#: importer/models.py:102 msgid "Field Overrides" -msgstr "" +msgstr "字段覆蓋" -#: importer/models.py:108 +#: importer/models.py:109 msgid "Field Filters" -msgstr "" +msgstr "字段篩選器" -#: importer/models.py:230 +#: importer/models.py:239 msgid "Some required fields have not been mapped" -msgstr "" +msgstr "某些必填字段尚未映射" -#: importer/models.py:387 +#: importer/models.py:396 msgid "Column is already mapped to a database field" -msgstr "" - -#: importer/models.py:392 -msgid "Field is already mapped to a data column" -msgstr "" +msgstr "列已映射到數據庫字段" #: importer/models.py:401 +msgid "Field is already mapped to a data column" +msgstr "字段已映射到數據列" + +#: importer/models.py:410 msgid "Column mapping must be linked to a valid import session" -msgstr "" +msgstr "列映射必須鏈接到有效的導入會話" -#: importer/models.py:406 +#: importer/models.py:415 msgid "Column does not exist in the data file" -msgstr "" +msgstr "數據文件中不存在列" -#: importer/models.py:413 +#: importer/models.py:422 msgid "Field does not exist in the target model" -msgstr "" - -#: importer/models.py:417 -msgid "Selected field is read-only" -msgstr "" - -#: importer/models.py:422 importer/models.py:493 -msgid "Import Session" -msgstr "" +msgstr "目標模型中不存在字段" #: importer/models.py:426 +msgid "Selected field is read-only" +msgstr "所選字段為只讀" + +#: importer/models.py:431 importer/models.py:502 +msgid "Import Session" +msgstr "導入會話" + +#: importer/models.py:435 msgid "Field" -msgstr "" +msgstr "字段" -#: importer/models.py:428 +#: importer/models.py:437 msgid "Column" -msgstr "" +msgstr "列" -#: importer/models.py:497 +#: importer/models.py:506 msgid "Row Index" -msgstr "" +msgstr "行索引" -#: importer/models.py:500 +#: importer/models.py:509 msgid "Original row data" -msgstr "" +msgstr "原始行數據" -#: importer/models.py:503 part/models.py:3951 -msgid "Data" -msgstr "" - -#: importer/models.py:505 machine/models.py:110 +#: importer/models.py:514 machine/models.py:110 msgid "Errors" -msgstr "" +msgstr "錯誤" -#: importer/models.py:507 part/api.py:873 +#: importer/models.py:516 part/api.py:857 msgid "Valid" -msgstr "" +msgstr "有效" #: importer/operations.py:28 importer/operations.py:49 msgid "Unsupported data file format" -msgstr "" +msgstr "不支持的數據文件格式" #: importer/operations.py:40 msgid "Failed to open data file" -msgstr "" +msgstr "打開數據文件失敗" #: importer/operations.py:51 msgid "Invalid data file dimensions" -msgstr "" +msgstr "數據文件維度無效" #: importer/serializers.py:91 msgid "Invalid field defaults" -msgstr "" +msgstr "字段默認值無效" #: importer/serializers.py:104 msgid "Invalid field overrides" -msgstr "" +msgstr "無效的字段覆蓋" #: importer/serializers.py:117 msgid "Invalid field filters" -msgstr "" +msgstr "字段篩選器無效" #: importer/serializers.py:178 msgid "Rows" -msgstr "" +msgstr "行" #: importer/serializers.py:179 msgid "List of row IDs to accept" -msgstr "" +msgstr "要接受的行ID列表" #: importer/serializers.py:192 msgid "No rows provided" -msgstr "" +msgstr "未提供行" #: importer/serializers.py:196 msgid "Row does not belong to this session" -msgstr "" +msgstr "行不屬於此會話" #: importer/serializers.py:199 msgid "Row contains invalid data" -msgstr "" +msgstr "行包含無效數據" #: importer/serializers.py:202 msgid "Row has already been completed" -msgstr "" - -#: importer/status_codes.py:11 -msgid "Initializing" -msgstr "" - -#: importer/status_codes.py:12 -msgid "Mapping Columns" -msgstr "" +msgstr "行已完成" #: importer/status_codes.py:13 -msgid "Importing Data" -msgstr "" +msgid "Initializing" +msgstr "正在初始化" -#: importer/status_codes.py:16 +#: importer/status_codes.py:18 +msgid "Mapping Columns" +msgstr "映射列" + +#: importer/status_codes.py:21 +msgid "Importing Data" +msgstr "導入數據" + +#: importer/status_codes.py:24 msgid "Processing Data" -msgstr "" +msgstr "處理數據中" #: importer/validators.py:21 msgid "Data file exceeds maximum size limit" -msgstr "" +msgstr "數據文件超出最大大小限制" #: importer/validators.py:26 msgid "Data file contains no headers" -msgstr "" +msgstr "數據文件不包含標頭" #: importer/validators.py:29 msgid "Data file contains too many columns" -msgstr "" +msgstr "數據文件包含的列太多" #: importer/validators.py:32 msgid "Data file contains too many rows" -msgstr "" +msgstr "數據文件包含的行太多" #: importer/validators.py:53 msgid "Value must be a valid dictionary object" -msgstr "" - -#: machine/machine_types/label_printer.py:215 -msgid "Copies" -msgstr "" +msgstr "值必須是有效的字典對象" #: machine/machine_types/label_printer.py:216 +msgid "Copies" +msgstr "拷貝" + +#: machine/machine_types/label_printer.py:217 msgid "Number of copies to print for each label" -msgstr "" +msgstr "每個標籤要打印的份數" -#: machine/machine_types/label_printer.py:231 +#: machine/machine_types/label_printer.py:232 msgid "Connected" -msgstr "" +msgstr "已連接" -#: machine/machine_types/label_printer.py:232 order/api.py:1410 -#: templates/js/translated/sales_order.js:1078 +#: machine/machine_types/label_printer.py:233 order/api.py:1532 +#: templates/js/translated/sales_order.js:1044 msgid "Unknown" -msgstr "" - -#: machine/machine_types/label_printer.py:233 -msgid "Printing" -msgstr "" +msgstr "未知" #: machine/machine_types/label_printer.py:234 -msgid "No media" -msgstr "" +msgid "Printing" +msgstr "正在打印" #: machine/machine_types/label_printer.py:235 -msgid "Paper jam" -msgstr "" +msgid "No media" +msgstr "無媒體" #: machine/machine_types/label_printer.py:236 -msgid "Disconnected" -msgstr "" +msgid "Paper jam" +msgstr "卡紙" -#: machine/machine_types/label_printer.py:243 -msgid "Label Printer" -msgstr "" +#: machine/machine_types/label_printer.py:237 +msgid "Disconnected" +msgstr "已斷開連接" #: machine/machine_types/label_printer.py:244 -msgid "Directly print labels for various items." -msgstr "" +msgid "Label Printer" +msgstr "標籤打印機" -#: machine/machine_types/label_printer.py:250 -msgid "Printer Location" -msgstr "" +#: machine/machine_types/label_printer.py:245 +msgid "Directly print labels for various items." +msgstr "直接打印各種物品的標籤。" #: machine/machine_types/label_printer.py:251 +msgid "Printer Location" +msgstr "打印機位置" + +#: machine/machine_types/label_printer.py:252 msgid "Scope the printer to a specific location" -msgstr "" +msgstr "將打印機定位到特定位置" #: machine/models.py:25 msgid "Name of machine" -msgstr "" +msgstr "設備名稱" #: machine/models.py:29 msgid "Machine Type" -msgstr "" +msgstr "設備類型" #: machine/models.py:29 msgid "Type of machine" -msgstr "" +msgstr "設備類型" #: machine/models.py:34 machine/models.py:146 msgid "Driver" -msgstr "" +msgstr "驅動" #: machine/models.py:35 msgid "Driver used for the machine" -msgstr "" +msgstr "設備使用的驅動器" #: machine/models.py:39 msgid "Machines can be disabled" -msgstr "" +msgstr "可以禁用設備" #: machine/models.py:95 msgid "Driver available" -msgstr "" +msgstr "可用驅動" #: machine/models.py:100 msgid "No errors" -msgstr "" +msgstr "無錯誤" #: machine/models.py:105 msgid "Initialized" -msgstr "" +msgstr "已初始化" #: machine/models.py:117 msgid "Machine status" -msgstr "" +msgstr "設備狀態" #: machine/models.py:145 msgid "Machine" -msgstr "" +msgstr "設備" #: machine/models.py:151 msgid "Machine Config" -msgstr "" +msgstr "設備配置" #: machine/models.py:156 msgid "Config type" -msgstr "" +msgstr "配置類型" #: order/admin.py:30 order/models.py:89 #: report/templates/report/inventree_purchase_order_report.html:31 #: report/templates/report/inventree_sales_order_report.html:31 #: templates/js/translated/order.js:352 -#: templates/js/translated/purchase_order.js:2195 -#: templates/js/translated/sales_order.js:1883 +#: templates/js/translated/purchase_order.js:2179 +#: templates/js/translated/sales_order.js:1864 msgid "Total Price" -msgstr "" +msgstr "總價格" -#: order/api.py:80 order/api.py:151 order/serializers.py:93 -#: order/templates/order/order_base.html:123 -#: order/templates/order/return_order_base.html:116 -#: order/templates/order/sales_order_base.html:125 +#: order/api.py:78 order/api.py:149 order/serializers.py:124 +#: order/templates/order/order_base.html:124 +#: order/templates/order/return_order_base.html:117 +#: order/templates/order/sales_order_base.html:126 msgid "Order Status" -msgstr "" +msgstr "訂單狀態" -#: order/api.py:88 order/templates/order/order_base.html:111 -#: order/templates/order/return_order_base.html:104 -#: order/templates/order/sales_order_base.html:113 +#: order/api.py:86 order/templates/order/order_base.html:112 +#: order/templates/order/return_order_base.html:105 +#: order/templates/order/sales_order_base.html:114 msgid "Order Reference" -msgstr "" +msgstr "訂單參考" -#: order/api.py:116 templates/js/translated/table_filters.js:93 +#: order/api.py:114 order/api.py:1022 +#: templates/js/translated/table_filters.js:93 #: templates/js/translated/table_filters.js:625 #: templates/js/translated/table_filters.js:651 #: templates/js/translated/table_filters.js:666 msgid "Outstanding" -msgstr "" +msgstr "未完成" -#: order/api.py:132 +#: order/api.py:130 msgid "Has Project Code" -msgstr "" +msgstr "有項目編碼" -#: order/api.py:155 templates/js/translated/table_filters.js:201 +#: order/api.py:153 templates/js/translated/table_filters.js:201 #: templates/js/translated/table_filters.js:791 msgid "Has Pricing" -msgstr "" +msgstr "有定價" -#: order/api.py:230 -msgid "No matching purchase order found" -msgstr "" - -#: order/api.py:425 order/api.py:763 order/models.py:1484 order/models.py:1598 -#: order/models.py:1649 order/models.py:1764 order/models.py:1923 -#: order/models.py:2383 order/models.py:2439 -#: templates/js/translated/sales_order.js:1524 +#: order/api.py:375 order/api.py:771 order/api.py:986 order/models.py:1500 +#: order/models.py:1614 order/models.py:1665 order/models.py:1793 +#: order/models.py:1956 order/models.py:2422 order/models.py:2478 +#: templates/js/translated/sales_order.js:1490 msgid "Order" -msgstr "" +msgstr "訂單" -#: order/api.py:429 order/api.py:784 +#: order/api.py:379 order/api.py:809 msgid "Order Complete" -msgstr "" +msgstr "訂單完成" -#: order/api.py:452 +#: order/api.py:430 msgid "Order Pending" -msgstr "" +msgstr "訂單待定" -#: order/api.py:1404 order/models.py:379 order/models.py:1485 -#: order/models.py:1599 order/templates/order/order_base.html:9 -#: order/templates/order/order_base.html:18 +#: order/api.py:1526 order/models.py:386 order/models.py:1501 +#: order/models.py:1615 order/templates/order/order_base.html:10 +#: order/templates/order/order_base.html:19 #: report/templates/report/inventree_purchase_order_report.html:14 -#: stock/serializers.py:120 stock/templates/stock/item_base.html:176 +#: stock/serializers.py:121 stock/templates/stock/item_base.html:173 #: templates/email/overdue_purchase_order.html:15 #: templates/js/translated/part.js:1752 templates/js/translated/pricing.js:804 -#: templates/js/translated/purchase_order.js:168 -#: templates/js/translated/purchase_order.js:753 -#: templates/js/translated/purchase_order.js:1743 -#: templates/js/translated/stock.js:2345 templates/js/translated/stock.js:2991 +#: templates/js/translated/purchase_order.js:736 +#: templates/js/translated/purchase_order.js:1727 +#: templates/js/translated/stock.js:2346 templates/js/translated/stock.js:2992 msgid "Purchase Order" -msgstr "" +msgstr "採購訂單" -#: order/api.py:1408 order/models.py:2091 order/models.py:2384 -#: order/models.py:2440 order/templates/order/return_order_base.html:9 -#: order/templates/order/return_order_base.html:28 +#: order/api.py:1530 order/models.py:2124 order/models.py:2423 +#: order/models.py:2479 order/templates/order/return_order_base.html:10 +#: order/templates/order/return_order_base.html:29 #: report/templates/report/inventree_return_order_report.html:13 #: templates/js/translated/return_order.js:280 -#: templates/js/translated/stock.js:3025 +#: templates/js/translated/stock.js:3026 msgid "Return Order" -msgstr "" +msgstr "退貨訂單" #: order/models.py:90 msgid "Total price for this order" -msgstr "" +msgstr "此訂單的總價" -#: order/models.py:95 order/serializers.py:71 +#: order/models.py:95 order/serializers.py:73 msgid "Order Currency" -msgstr "" +msgstr "訂單貨幣" -#: order/models.py:98 order/serializers.py:72 +#: order/models.py:98 order/serializers.py:74 msgid "Currency for this order (leave blank to use company default)" -msgstr "" +msgstr "此訂單的貨幣 (留空以使用公司默認值)" -#: order/models.py:246 +#: order/models.py:243 msgid "Contact does not match selected company" -msgstr "" +msgstr "聯繫人與所選公司不匹配" -#: order/models.py:289 +#: order/models.py:296 msgid "Order description (optional)" -msgstr "" +msgstr "訂單描述 (可選)" -#: order/models.py:298 +#: order/models.py:305 msgid "Select project code for this order" -msgstr "" +msgstr "為此訂單選擇項目編碼" -#: order/models.py:302 order/models.py:1385 order/models.py:1817 +#: order/models.py:309 order/models.py:1402 order/models.py:1846 msgid "Link to external page" -msgstr "" +msgstr "鏈接到外部頁面" -#: order/models.py:310 +#: order/models.py:317 msgid "Expected date for order delivery. Order will be overdue after this date." -msgstr "" +msgstr "訂單交付的預期日期。訂單將在此日期後過期。" -#: order/models.py:324 +#: order/models.py:331 msgid "Created By" -msgstr "" +msgstr "創建人" -#: order/models.py:332 +#: order/models.py:339 msgid "User or group responsible for this order" -msgstr "" +msgstr "負責此訂單的用户或組" -#: order/models.py:343 +#: order/models.py:350 msgid "Point of contact for this order" -msgstr "" +msgstr "此訂單的聯繫人" -#: order/models.py:353 +#: order/models.py:360 msgid "Company address for this order" -msgstr "" +msgstr "此訂單的公司地址" -#: order/models.py:468 order/models.py:979 +#: order/models.py:480 order/models.py:1006 msgid "Order reference" -msgstr "" +msgstr "訂單參考" -#: order/models.py:477 +#: order/models.py:489 msgid "Purchase order status" -msgstr "" - -#: order/models.py:492 -msgid "Company from which the items are being ordered" -msgstr "" - -#: order/models.py:503 order/templates/order/order_base.html:153 -#: templates/js/translated/purchase_order.js:1772 -msgid "Supplier Reference" -msgstr "" +msgstr "採購訂單狀態" #: order/models.py:504 +msgid "Company from which the items are being ordered" +msgstr "訂購物品的公司" + +#: order/models.py:515 order/templates/order/order_base.html:162 +#: templates/js/translated/purchase_order.js:1756 +msgid "Supplier Reference" +msgstr "供應商參考" + +#: order/models.py:516 msgid "Supplier order reference code" -msgstr "" +msgstr "供應商訂單參考代碼" -#: order/models.py:513 +#: order/models.py:525 msgid "received by" -msgstr "" +msgstr "接收人" -#: order/models.py:519 order/models.py:2173 +#: order/models.py:531 order/models.py:2212 msgid "Issue Date" -msgstr "" +msgstr "簽發日期" -#: order/models.py:520 order/models.py:2174 +#: order/models.py:532 order/models.py:2213 msgid "Date order was issued" -msgstr "" +msgstr "訂單發出日期" -#: order/models.py:527 order/models.py:2181 +#: order/models.py:539 order/models.py:2220 msgid "Date order was completed" +msgstr "訂單完成日期" + +#: order/models.py:549 order/models.py:1552 +msgid "Destination for received items" msgstr "" -#: order/models.py:571 +#: order/models.py:593 msgid "Part supplier must match PO supplier" -msgstr "" +msgstr "零件供應商必須與採購訂單供應商匹配" -#: order/models.py:806 +#: order/models.py:828 msgid "Quantity must be a positive number" -msgstr "" +msgstr "數量必須是正數" -#: order/models.py:991 +#: order/models.py:1018 msgid "Company to which the items are being sold" -msgstr "" +msgstr "出售物品的公司" -#: order/models.py:1003 +#: order/models.py:1030 msgid "Sales order status" -msgstr "" +msgstr "銷售訂單狀態" -#: order/models.py:1014 order/models.py:2166 +#: order/models.py:1041 order/models.py:2205 msgid "Customer Reference " -msgstr "" +msgstr "客户參考 " -#: order/models.py:1015 order/models.py:2167 +#: order/models.py:1042 order/models.py:2206 msgid "Customer order reference code" -msgstr "" +msgstr "客户訂單參考代碼" -#: order/models.py:1019 order/models.py:1771 -#: templates/js/translated/sales_order.js:879 -#: templates/js/translated/sales_order.js:1060 +#: order/models.py:1046 order/models.py:1800 +#: templates/js/translated/sales_order.js:838 +#: templates/js/translated/sales_order.js:1026 msgid "Shipment Date" -msgstr "" +msgstr "發貨日期" -#: order/models.py:1028 +#: order/models.py:1055 msgid "shipped by" -msgstr "" +msgstr "發貨人" -#: order/models.py:1077 +#: order/models.py:1094 msgid "Order is already complete" -msgstr "" +msgstr "訂單已完成" -#: order/models.py:1080 +#: order/models.py:1097 msgid "Order is already cancelled" -msgstr "" +msgstr "訂單已取消" -#: order/models.py:1084 +#: order/models.py:1101 msgid "Only an open order can be marked as complete" -msgstr "" +msgstr "只有未結訂單才能標記為已完成" -#: order/models.py:1088 +#: order/models.py:1105 msgid "Order cannot be completed as there are incomplete shipments" -msgstr "" +msgstr "由於發貨不完整,訂單無法完成" -#: order/models.py:1093 +#: order/models.py:1110 msgid "Order cannot be completed as there are incomplete line items" -msgstr "" - -#: order/models.py:1357 -msgid "Item quantity" -msgstr "" +msgstr "訂單無法完成,因為行項目不完整" #: order/models.py:1374 +msgid "Item quantity" +msgstr "項目數量" + +#: order/models.py:1391 msgid "Line item reference" -msgstr "" +msgstr "行項目參考" -#: order/models.py:1381 +#: order/models.py:1398 msgid "Line item notes" -msgstr "" +msgstr "行項目註釋" -#: order/models.py:1393 +#: order/models.py:1410 msgid "Target date for this line item (leave blank to use the target date from the order)" -msgstr "" - -#: order/models.py:1414 -msgid "Line item description (optional)" -msgstr "" - -#: order/models.py:1420 -msgid "Context" -msgstr "" - -#: order/models.py:1421 -msgid "Additional context for this line" -msgstr "" +msgstr "此行項目的目標日期 (留空以使用訂單中的目標日期)" #: order/models.py:1431 +msgid "Line item description (optional)" +msgstr "行項目描述 (可選)" + +#: order/models.py:1438 +msgid "Additional context for this line" +msgstr "此行的附加上下文" + +#: order/models.py:1448 msgid "Unit price" -msgstr "" +msgstr "單位價格" -#: order/models.py:1445 +#: order/models.py:1462 msgid "Purchase Order Line Item" -msgstr "" +msgstr "採購訂單行項目" -#: order/models.py:1469 +#: order/models.py:1486 msgid "Supplier part must match supplier" -msgstr "" +msgstr "供應商零件必須與供應商匹配" -#: order/models.py:1476 -msgid "deleted" -msgstr "" - -#: order/models.py:1504 +#: order/models.py:1520 msgid "Supplier part" -msgstr "" +msgstr "供應商零件" -#: order/models.py:1511 order/templates/order/order_base.html:201 +#: order/models.py:1527 order/templates/order/order_base.html:210 #: templates/js/translated/part.js:1876 templates/js/translated/part.js:1908 -#: templates/js/translated/purchase_order.js:1369 -#: templates/js/translated/purchase_order.js:2239 +#: templates/js/translated/purchase_order.js:1352 +#: templates/js/translated/purchase_order.js:2223 #: templates/js/translated/return_order.js:762 #: templates/js/translated/table_filters.js:119 #: templates/js/translated/table_filters.js:605 msgid "Received" -msgstr "" +msgstr "已接收" -#: order/models.py:1512 +#: order/models.py:1528 msgid "Number of items received" -msgstr "" +msgstr "收到的物品數量" -#: order/models.py:1520 stock/models.py:959 stock/serializers.py:610 -#: stock/templates/stock/item_base.html:183 -#: templates/js/translated/stock.js:2396 +#: order/models.py:1536 stock/models.py:1036 stock/serializers.py:637 +#: stock/templates/stock/item_base.html:180 +#: templates/js/translated/stock.js:2397 msgid "Purchase Price" -msgstr "" +msgstr "採購價格" -#: order/models.py:1521 +#: order/models.py:1537 msgid "Unit purchase price" -msgstr "" +msgstr "每單位的採購價格" -#: order/models.py:1536 -msgid "Where does the Purchaser want this item to be stored?" -msgstr "" - -#: order/models.py:1587 +#: order/models.py:1603 msgid "Purchase Order Extra Line" -msgstr "" +msgstr "採購訂單附加行" -#: order/models.py:1616 +#: order/models.py:1632 msgid "Sales Order Line Item" -msgstr "" +msgstr "銷售訂單行項目" -#: order/models.py:1637 +#: order/models.py:1653 msgid "Virtual part cannot be assigned to a sales order" -msgstr "" +msgstr "虛擬零件不能分配給銷售訂單" -#: order/models.py:1642 +#: order/models.py:1658 msgid "Only salable parts can be assigned to a sales order" -msgstr "" +msgstr "只有可銷售的零件才能分配給銷售訂單" -#: order/models.py:1668 part/templates/part/part_pricing.html:107 -#: part/templates/part/prices.html:139 templates/js/translated/pricing.js:957 +#: order/models.py:1684 part/templates/part/part_pricing.html:107 +#: part/templates/part/prices.html:139 templates/js/translated/pricing.js:955 msgid "Sale Price" -msgstr "" +msgstr "售出價格" -#: order/models.py:1669 +#: order/models.py:1685 msgid "Unit sale price" -msgstr "" +msgstr "單位售出價格" -#: order/models.py:1678 order/status_codes.py:48 -#: templates/js/translated/sales_order.js:1559 -#: templates/js/translated/sales_order.js:1680 -#: templates/js/translated/sales_order.js:1993 +#: order/models.py:1694 order/status_codes.py:50 +#: templates/js/translated/sales_order.js:1525 +#: templates/js/translated/sales_order.js:1661 +#: templates/js/translated/sales_order.js:1974 msgid "Shipped" -msgstr "" +msgstr "已配送" -#: order/models.py:1679 +#: order/models.py:1695 msgid "Shipped quantity" -msgstr "" +msgstr "發貨數量" -#: order/models.py:1751 +#: order/models.py:1769 msgid "Sales Order Shipment" -msgstr "" +msgstr "銷售訂單發貨" -#: order/models.py:1772 +#: order/models.py:1801 msgid "Date of shipment" -msgstr "" +msgstr "發貨日期" -#: order/models.py:1778 templates/js/translated/sales_order.js:1072 +#: order/models.py:1807 templates/js/translated/sales_order.js:1038 msgid "Delivery Date" -msgstr "" +msgstr "送達日期" -#: order/models.py:1779 +#: order/models.py:1808 msgid "Date of delivery of shipment" -msgstr "" +msgstr "裝運交貨日期" -#: order/models.py:1787 +#: order/models.py:1816 msgid "Checked By" -msgstr "" +msgstr "審核人" -#: order/models.py:1788 +#: order/models.py:1817 msgid "User who checked this shipment" -msgstr "" +msgstr "檢查此裝運的用户" -#: order/models.py:1795 order/models.py:2018 order/serializers.py:1475 -#: order/serializers.py:1585 templates/js/translated/model_renderers.js:455 +#: order/models.py:1824 order/models.py:2051 order/serializers.py:1601 +#: order/serializers.py:1725 +#: report/templates/report/inventree_sales_order_shipment_report.html:14 +#: templates/js/translated/model_renderers.js:458 +#: templates/js/translated/sales_order.js:1615 msgid "Shipment" -msgstr "" +msgstr "配送" -#: order/models.py:1796 +#: order/models.py:1825 msgid "Shipment number" -msgstr "" - -#: order/models.py:1804 -msgid "Tracking Number" -msgstr "" - -#: order/models.py:1805 -msgid "Shipment tracking information" -msgstr "" - -#: order/models.py:1812 -msgid "Invoice Number" -msgstr "" - -#: order/models.py:1813 -msgid "Reference number for associated invoice" -msgstr "" +msgstr "配送單號" #: order/models.py:1833 +msgid "Tracking Number" +msgstr "跟蹤單號" + +#: order/models.py:1834 +msgid "Shipment tracking information" +msgstr "配送跟蹤信息" + +#: order/models.py:1841 +msgid "Invoice Number" +msgstr "發票編號" + +#: order/models.py:1842 +msgid "Reference number for associated invoice" +msgstr "相關發票的參考號" + +#: order/models.py:1862 msgid "Shipment has already been sent" -msgstr "" +msgstr "貨物已發出" -#: order/models.py:1836 +#: order/models.py:1865 msgid "Shipment has no allocated stock items" -msgstr "" +msgstr "發貨沒有分配庫存項目" -#: order/models.py:1912 +#: order/models.py:1945 msgid "Sales Order Extra Line" -msgstr "" +msgstr "銷售訂單加行" -#: order/models.py:1941 +#: order/models.py:1974 msgid "Sales Order Allocation" -msgstr "" +msgstr "銷售訂單分配" -#: order/models.py:1964 order/models.py:1966 +#: order/models.py:1997 order/models.py:1999 msgid "Stock item has not been assigned" -msgstr "" +msgstr "庫存項目尚未分配" -#: order/models.py:1973 +#: order/models.py:2006 msgid "Cannot allocate stock item to a line with a different part" -msgstr "" +msgstr "無法將庫存項目分配給具有不同零件的行" -#: order/models.py:1976 +#: order/models.py:2009 msgid "Cannot allocate stock to a line without a part" -msgstr "" +msgstr "無法將庫存分配給沒有零件的生產線" -#: order/models.py:1979 +#: order/models.py:2012 msgid "Allocation quantity cannot exceed stock quantity" -msgstr "" +msgstr "分配數量不能超過庫存數量" -#: order/models.py:1998 order/serializers.py:1345 +#: order/models.py:2031 order/serializers.py:1471 msgid "Quantity must be 1 for serialized stock item" -msgstr "" +msgstr "序列化庫存項目的數量必須為1" -#: order/models.py:2001 +#: order/models.py:2034 msgid "Sales order does not match shipment" -msgstr "" +msgstr "銷售訂單與發貨不匹配" -#: order/models.py:2002 plugin/base/barcodes/api.py:524 +#: order/models.py:2035 plugin/base/barcodes/api.py:629 msgid "Shipment does not match sales order" -msgstr "" +msgstr "發貨與銷售訂單不匹配" -#: order/models.py:2010 +#: order/models.py:2043 msgid "Line" -msgstr "" +msgstr "行" -#: order/models.py:2019 +#: order/models.py:2052 msgid "Sales order shipment reference" -msgstr "" +msgstr "銷售訂單發貨參考" -#: order/models.py:2032 order/models.py:2391 +#: order/models.py:2065 order/models.py:2430 #: templates/js/translated/return_order.js:720 msgid "Item" -msgstr "" +msgstr "項目" -#: order/models.py:2033 +#: order/models.py:2066 msgid "Select stock item to allocate" -msgstr "" +msgstr "選擇要分配的庫存項目" -#: order/models.py:2042 +#: order/models.py:2075 msgid "Enter stock allocation quantity" -msgstr "" +msgstr "輸入庫存分配數量" -#: order/models.py:2136 +#: order/models.py:2175 msgid "Return Order reference" -msgstr "" +msgstr "退貨訂單參考" -#: order/models.py:2148 +#: order/models.py:2187 msgid "Company from which items are being returned" -msgstr "" +msgstr "退回物品的公司" -#: order/models.py:2160 +#: order/models.py:2199 msgid "Return order status" -msgstr "" +msgstr "退貨訂單狀態" -#: order/models.py:2362 +#: order/models.py:2401 msgid "Return Order Line Item" -msgstr "" +msgstr "退貨訂單行項目" -#: order/models.py:2376 +#: order/models.py:2415 msgid "Only serialized items can be assigned to a Return Order" -msgstr "" +msgstr "只有序列化的項目才能分配給退貨訂單" -#: order/models.py:2392 +#: order/models.py:2431 msgid "Select item to return from customer" -msgstr "" +msgstr "選擇要從客户處退回的商品" -#: order/models.py:2398 +#: order/models.py:2437 msgid "Received Date" -msgstr "" +msgstr "接收日期" -#: order/models.py:2399 +#: order/models.py:2438 msgid "The date this this return item was received" -msgstr "" +msgstr "收到此退貨的日期" -#: order/models.py:2410 templates/js/translated/return_order.js:731 +#: order/models.py:2449 templates/js/translated/return_order.js:731 #: templates/js/translated/table_filters.js:122 msgid "Outcome" -msgstr "" +msgstr "結果" -#: order/models.py:2411 +#: order/models.py:2450 msgid "Outcome for this line item" -msgstr "" +msgstr "該行項目的結果" -#: order/models.py:2418 +#: order/models.py:2457 msgid "Cost associated with return or repair for this line item" -msgstr "" +msgstr "與此行項目的退貨或維修相關的成本" -#: order/models.py:2428 +#: order/models.py:2467 msgid "Return Order Extra Line" -msgstr "" +msgstr "退貨訂單附加行" -#: order/serializers.py:86 +#: order/serializers.py:87 +msgid "Order ID" +msgstr "訂單ID" + +#: order/serializers.py:87 +msgid "ID of the order to duplicate" +msgstr "要複製的訂單ID" + +#: order/serializers.py:93 +msgid "Copy Lines" +msgstr "複製行" + +#: order/serializers.py:94 +msgid "Copy line items from the original order" +msgstr "從原始訂單複製行項目" + +#: order/serializers.py:100 +msgid "Copy Extra Lines" +msgstr "複製額外行" + +#: order/serializers.py:101 +msgid "Copy extra line items from the original order" +msgstr "從原始訂單複製額外的行項目" + +#: order/serializers.py:117 msgid "Completed Lines" -msgstr "" +msgstr "已完成行項目" -#: order/serializers.py:283 stock/admin.py:195 +#: order/serializers.py:161 +msgid "Duplicate Order" +msgstr "複製訂單" + +#: order/serializers.py:162 +msgid "Specify options for duplicating this order" +msgstr "指定複製此訂單的選項" + +#: order/serializers.py:234 +msgid "Invalid order ID" +msgstr "訂單ID不正確" + +#: order/serializers.py:374 stock/admin.py:196 msgid "Supplier Name" -msgstr "" +msgstr "供應商名稱" -#: order/serializers.py:331 +#: order/serializers.py:416 msgid "Order cannot be cancelled" -msgstr "" +msgstr "訂單不能取消" -#: order/serializers.py:346 order/serializers.py:1366 +#: order/serializers.py:431 order/serializers.py:1492 msgid "Allow order to be closed with incomplete line items" -msgstr "" +msgstr "允許關閉行項目不完整的訂單" -#: order/serializers.py:356 order/serializers.py:1376 +#: order/serializers.py:441 order/serializers.py:1502 msgid "Order has incomplete line items" -msgstr "" +msgstr "訂單中的行項目不完整" -#: order/serializers.py:506 +#: order/serializers.py:591 msgid "Order is not open" -msgstr "" +msgstr "訂單未打開" -#: order/serializers.py:527 +#: order/serializers.py:612 msgid "Auto Pricing" -msgstr "" +msgstr "自動定價" -#: order/serializers.py:529 +#: order/serializers.py:614 msgid "Automatically calculate purchase price based on supplier part data" -msgstr "" +msgstr "根據供應商零件數據自動計算採購價格" -#: order/serializers.py:539 +#: order/serializers.py:624 msgid "Purchase price currency" -msgstr "" +msgstr "購買價格貨幣" -#: order/serializers.py:545 +#: order/serializers.py:630 msgid "Merge Items" -msgstr "" +msgstr "合併項目" -#: order/serializers.py:547 +#: order/serializers.py:632 msgid "Merge items with the same part, destination and target date into one line item" -msgstr "" +msgstr "將具有相同零件、目的地和目標日期的項目合併到一個行項目中" -#: order/serializers.py:560 part/models.py:1033 +#: order/serializers.py:645 part/models.py:1094 part/serializers.py:387 msgid "Internal Part Number" -msgstr "" +msgstr "內部零件編號" -#: order/serializers.py:568 +#: order/serializers.py:653 msgid "Internal Part Name" -msgstr "" +msgstr "內部零件名稱" -#: order/serializers.py:584 +#: order/serializers.py:669 msgid "Supplier part must be specified" -msgstr "" +msgstr "必須指定供應商零件" -#: order/serializers.py:587 +#: order/serializers.py:672 msgid "Purchase order must be specified" -msgstr "" +msgstr "必須指定採購訂單" -#: order/serializers.py:595 +#: order/serializers.py:680 msgid "Supplier must match purchase order" -msgstr "" +msgstr "供應商必須匹配採購訂單" -#: order/serializers.py:596 +#: order/serializers.py:681 msgid "Purchase order must match supplier" -msgstr "" +msgstr "採購訂單必須與供應商匹配" -#: order/serializers.py:639 order/serializers.py:1446 +#: order/serializers.py:724 order/serializers.py:1572 msgid "Line Item" -msgstr "" +msgstr "行項目" -#: order/serializers.py:645 +#: order/serializers.py:730 msgid "Line item does not match purchase order" -msgstr "" +msgstr "行項目與採購訂單不匹配" -#: order/serializers.py:655 order/serializers.py:779 order/serializers.py:1782 +#: order/serializers.py:740 order/serializers.py:881 order/serializers.py:1934 msgid "Select destination location for received items" -msgstr "" +msgstr "為收到的物品選擇目的地位置" -#: order/serializers.py:671 templates/js/translated/purchase_order.js:1130 +#: order/serializers.py:756 templates/js/translated/purchase_order.js:1113 #: templates/js/translated/stock.js:1200 msgid "Enter batch code for incoming stock items" -msgstr "" +msgstr "輸入入庫項目的批號" -#: order/serializers.py:679 templates/js/translated/purchase_order.js:1155 +#: order/serializers.py:764 templates/js/translated/purchase_order.js:1138 msgid "Enter serial numbers for incoming stock items" -msgstr "" +msgstr "輸入入庫庫存項目的序列號" -#: order/serializers.py:691 +#: order/serializers.py:776 msgid "Override packaging information for incoming stock items" -msgstr "" +msgstr "覆蓋傳入庫存項目的包裝資料" -#: order/serializers.py:699 +#: order/serializers.py:784 msgid "Additional note for incoming stock items" -msgstr "" +msgstr "傳入庫存項目的附加説明" -#: order/serializers.py:706 templates/js/translated/barcode.js:52 +#: order/serializers.py:791 templates/js/translated/barcode.js:52 msgid "Barcode" -msgstr "" +msgstr "條形碼" -#: order/serializers.py:707 +#: order/serializers.py:792 msgid "Scanned barcode" -msgstr "" +msgstr "掃描條形碼" -#: order/serializers.py:723 +#: order/serializers.py:808 msgid "Barcode is already in use" -msgstr "" +msgstr "條形碼已被使用" -#: order/serializers.py:747 +#: order/serializers.py:831 msgid "An integer quantity must be provided for trackable parts" -msgstr "" +msgstr "必須為可跟蹤零件提供整數數量" -#: order/serializers.py:795 order/serializers.py:1798 +#: order/serializers.py:898 order/serializers.py:1950 msgid "Line items must be provided" -msgstr "" +msgstr "必須提供行項目" -#: order/serializers.py:811 +#: order/serializers.py:914 msgid "Destination location must be specified" -msgstr "" +msgstr "必須指定目標位置" -#: order/serializers.py:822 +#: order/serializers.py:925 msgid "Supplied barcode values must be unique" -msgstr "" +msgstr "提供的條形碼值必須是唯一的" -#: order/serializers.py:1187 +#: order/serializers.py:1221 msgid "Sale price currency" +msgstr "售出價格貨幣" + +#: order/serializers.py:1260 +msgid "Allocated Items" msgstr "" -#: order/serializers.py:1248 +#: order/serializers.py:1374 msgid "No shipment details provided" -msgstr "" +msgstr "未提供裝運詳細信息" -#: order/serializers.py:1309 order/serializers.py:1455 +#: order/serializers.py:1435 order/serializers.py:1581 msgid "Line item is not associated with this order" -msgstr "" +msgstr "行項目與此訂單不關聯" -#: order/serializers.py:1328 +#: order/serializers.py:1454 msgid "Quantity must be positive" -msgstr "" +msgstr "數量必須為正" -#: order/serializers.py:1465 +#: order/serializers.py:1591 msgid "Enter serial numbers to allocate" -msgstr "" +msgstr "輸入要分配的序列號" -#: order/serializers.py:1487 order/serializers.py:1593 +#: order/serializers.py:1613 order/serializers.py:1733 msgid "Shipment has already been shipped" -msgstr "" +msgstr "貨物已發出" -#: order/serializers.py:1490 order/serializers.py:1596 +#: order/serializers.py:1616 order/serializers.py:1736 msgid "Shipment is not associated with this order" -msgstr "" +msgstr "發貨與此訂單無關" -#: order/serializers.py:1537 +#: order/serializers.py:1671 msgid "No match found for the following serial numbers" -msgstr "" +msgstr "未找到以下序列號的匹配項" -#: order/serializers.py:1544 -msgid "The following serial numbers are already allocated" -msgstr "" +#: order/serializers.py:1678 +msgid "The following serial numbers are unavailable" +msgstr "以下序列號不可用" -#: order/serializers.py:1752 +#: order/serializers.py:1904 msgid "Return order line item" -msgstr "" +msgstr "退貨訂單行項目" -#: order/serializers.py:1758 +#: order/serializers.py:1910 msgid "Line item does not match return order" -msgstr "" +msgstr "行項目與退貨訂單不匹配" -#: order/serializers.py:1761 +#: order/serializers.py:1913 msgid "Line item has already been received" -msgstr "" +msgstr "行項目已收到" -#: order/serializers.py:1790 +#: order/serializers.py:1942 msgid "Items can only be received against orders which are in progress" -msgstr "" +msgstr "只能根據正在進行的訂單接收物品" -#: order/serializers.py:1873 +#: order/serializers.py:2025 msgid "Line price currency" -msgstr "" +msgstr "行價格貨幣" -#: order/status_codes.py:17 order/status_codes.py:52 stock/status_codes.py:16 +#: order/status_codes.py:17 order/status_codes.py:54 stock/status_codes.py:16 msgid "Lost" -msgstr "" +msgstr "丟失" -#: order/status_codes.py:18 order/status_codes.py:53 stock/status_codes.py:22 +#: order/status_codes.py:18 order/status_codes.py:55 stock/status_codes.py:24 msgid "Returned" -msgstr "" +msgstr "已退回" -#: order/status_codes.py:45 order/status_codes.py:77 +#: order/status_codes.py:47 order/status_codes.py:79 msgid "In Progress" -msgstr "" +msgstr "正在進行" -#: order/status_codes.py:101 +#: order/status_codes.py:105 msgid "Return" -msgstr "" +msgstr "退回" -#: order/status_codes.py:104 +#: order/status_codes.py:108 msgid "Repair" -msgstr "" +msgstr "維修" -#: order/status_codes.py:107 +#: order/status_codes.py:111 msgid "Replace" -msgstr "" +msgstr "替換" -#: order/status_codes.py:110 +#: order/status_codes.py:114 msgid "Refund" -msgstr "" +msgstr "退款" -#: order/status_codes.py:113 +#: order/status_codes.py:117 msgid "Reject" -msgstr "" - -#: order/tasks.py:25 -msgid "Overdue Purchase Order" -msgstr "" +msgstr "拒絕" #: order/tasks.py:30 +msgid "Overdue Purchase Order" +msgstr "逾期採購訂單" + +#: order/tasks.py:35 #, python-brace-format msgid "Purchase order {po} is now overdue" -msgstr "" - -#: order/tasks.py:75 -msgid "Overdue Sales Order" -msgstr "" +msgstr "採購訂單 {po} 已逾期" #: order/tasks.py:80 +msgid "Overdue Sales Order" +msgstr "逾期銷售訂單" + +#: order/tasks.py:85 #, python-brace-format msgid "Sales order {so} is now overdue" -msgstr "" +msgstr "銷售訂單 {so} 已逾期" -#: order/templates/order/order_base.html:51 +#: order/templates/order/order_base.html:52 msgid "Print purchase order report" -msgstr "" +msgstr "打印採購訂單報告" -#: order/templates/order/order_base.html:53 -#: order/templates/order/return_order_base.html:62 -#: order/templates/order/sales_order_base.html:62 +#: order/templates/order/order_base.html:54 +#: order/templates/order/return_order_base.html:63 +#: order/templates/order/sales_order_base.html:63 msgid "Export order to file" -msgstr "" +msgstr "將訂單導出到文件" -#: order/templates/order/order_base.html:59 -#: order/templates/order/return_order_base.html:72 -#: order/templates/order/sales_order_base.html:71 +#: order/templates/order/order_base.html:60 +#: order/templates/order/return_order_base.html:73 +#: order/templates/order/sales_order_base.html:72 msgid "Order actions" -msgstr "" +msgstr "訂購操作" -#: order/templates/order/order_base.html:64 -#: order/templates/order/return_order_base.html:76 -#: order/templates/order/sales_order_base.html:75 +#: order/templates/order/order_base.html:65 +#: order/templates/order/return_order_base.html:77 +#: order/templates/order/sales_order_base.html:76 msgid "Edit order" -msgstr "" +msgstr "編輯訂單" -#: order/templates/order/order_base.html:68 +#: order/templates/order/order_base.html:69 msgid "Duplicate order" -msgstr "" +msgstr "再次訂購" -#: order/templates/order/order_base.html:73 -#: order/templates/order/return_order_base.html:78 -#: order/templates/order/sales_order_base.html:77 +#: order/templates/order/order_base.html:74 +#: order/templates/order/return_order_base.html:79 +#: order/templates/order/sales_order_base.html:78 msgid "Hold order" -msgstr "" +msgstr "掛起訂單" -#: order/templates/order/order_base.html:78 -#: order/templates/order/return_order_base.html:81 -#: order/templates/order/sales_order_base.html:80 +#: order/templates/order/order_base.html:79 +#: order/templates/order/return_order_base.html:82 +#: order/templates/order/sales_order_base.html:81 msgid "Cancel order" -msgstr "" +msgstr "取消訂單" -#: order/templates/order/order_base.html:84 #: order/templates/order/order_base.html:85 -#: order/templates/order/return_order_base.html:85 +#: order/templates/order/order_base.html:86 #: order/templates/order/return_order_base.html:86 -#: order/templates/order/sales_order_base.html:86 +#: order/templates/order/return_order_base.html:87 #: order/templates/order/sales_order_base.html:87 +#: order/templates/order/sales_order_base.html:88 msgid "Issue Order" -msgstr "" - -#: order/templates/order/order_base.html:88 -#: order/templates/order/return_order_base.html:89 -msgid "Mark order as complete" -msgstr "" +msgstr "發佈訂單" #: order/templates/order/order_base.html:89 #: order/templates/order/return_order_base.html:90 -#: order/templates/order/sales_order_base.html:100 +msgid "Mark order as complete" +msgstr "標記訂單為已完成" + +#: order/templates/order/order_base.html:90 +#: order/templates/order/return_order_base.html:91 +#: order/templates/order/sales_order_base.html:101 msgid "Complete Order" -msgstr "" +msgstr "完成訂單" -#: order/templates/order/order_base.html:96 +#: order/templates/order/order_base.html:97 msgid "Supplier part thumbnail" -msgstr "" +msgstr "供應商零件縮略圖" -#: order/templates/order/order_base.html:116 -#: order/templates/order/return_order_base.html:109 -#: order/templates/order/sales_order_base.html:118 +#: order/templates/order/order_base.html:117 +#: order/templates/order/return_order_base.html:110 +#: order/templates/order/sales_order_base.html:119 msgid "Order Description" -msgstr "" +msgstr "訂單描述" -#: order/templates/order/order_base.html:146 -msgid "No suppplier information available" -msgstr "" - -#: order/templates/order/order_base.html:159 -#: order/templates/order/sales_order_base.html:164 +#: order/templates/order/order_base.html:168 +#: order/templates/order/sales_order_base.html:165 msgid "Completed Line Items" -msgstr "" +msgstr "已完成項" -#: order/templates/order/order_base.html:165 -#: order/templates/order/sales_order_base.html:170 -#: order/templates/order/sales_order_base.html:180 +#: order/templates/order/order_base.html:174 +#: order/templates/order/sales_order_base.html:171 +#: order/templates/order/sales_order_base.html:181 msgid "Incomplete" -msgstr "" +msgstr "未完成" -#: order/templates/order/order_base.html:184 -#: order/templates/order/return_order_base.html:160 +#: order/templates/order/order_base.html:193 +#: order/templates/order/return_order_base.html:161 #: report/templates/report/inventree_build_order_report.html:121 msgid "Issued" -msgstr "" +msgstr "已派發" -#: order/templates/order/order_base.html:229 +#: order/templates/order/order_base.html:238 msgid "Total cost" -msgstr "" +msgstr "總計" -#: order/templates/order/order_base.html:233 -#: order/templates/order/return_order_base.html:202 -#: order/templates/order/sales_order_base.html:246 +#: order/templates/order/order_base.html:242 +#: order/templates/order/return_order_base.html:203 +#: order/templates/order/sales_order_base.html:247 msgid "Total cost could not be calculated" -msgstr "" +msgstr "無法計算總成本" -#: order/templates/order/order_base.html:335 +#: order/templates/order/order_base.html:344 msgid "Purchase Order QR Code" -msgstr "" +msgstr "採購訂單二維碼" -#: order/templates/order/order_base.html:347 +#: order/templates/order/order_base.html:356 msgid "Link Barcode to Purchase Order" -msgstr "" +msgstr "將條形碼鏈接到採購訂單" #: order/templates/order/order_wizard/match_fields.html:9 #: part/templates/part/import_wizard/ajax_match_fields.html:9 #: part/templates/part/import_wizard/match_fields.html:9 #: templates/patterns/wizard/match_fields.html:8 msgid "Missing selections for the following required columns" -msgstr "" +msgstr "缺少以下所需列的選擇" #: order/templates/order/order_wizard/match_fields.html:20 #: part/templates/part/import_wizard/ajax_match_fields.html:20 #: part/templates/part/import_wizard/match_fields.html:20 #: templates/patterns/wizard/match_fields.html:19 msgid "Duplicate selections found, see below. Fix them then retry submitting." -msgstr "" +msgstr "發現重複選項,請參閲下面。修復它們後重新嘗試提交" #: order/templates/order/order_wizard/match_fields.html:29 #: order/templates/order/order_wizard/match_parts.html:21 @@ -6155,28 +6363,28 @@ msgstr "" #: part/templates/part/import_wizard/match_references.html:21 #: templates/patterns/wizard/match_fields.html:28 msgid "Submit Selections" -msgstr "" +msgstr "提交選項" #: order/templates/order/order_wizard/match_fields.html:35 #: part/templates/part/import_wizard/ajax_match_fields.html:28 #: part/templates/part/import_wizard/match_fields.html:35 #: templates/patterns/wizard/match_fields.html:34 msgid "File Fields" -msgstr "" +msgstr "文件字段" #: order/templates/order/order_wizard/match_fields.html:42 #: part/templates/part/import_wizard/ajax_match_fields.html:35 #: part/templates/part/import_wizard/match_fields.html:42 #: templates/patterns/wizard/match_fields.html:41 msgid "Remove column" -msgstr "" +msgstr "刪除列" #: order/templates/order/order_wizard/match_fields.html:60 #: part/templates/part/import_wizard/ajax_match_fields.html:53 #: part/templates/part/import_wizard/match_fields.html:60 #: templates/patterns/wizard/match_fields.html:59 msgid "Duplicate selection" -msgstr "" +msgstr "重複選項" #: order/templates/order/order_wizard/match_fields.html:71 #: order/templates/order/order_wizard/match_parts.html:52 @@ -6184,44 +6392,44 @@ msgstr "" #: part/templates/part/import_wizard/ajax_match_references.html:42 #: part/templates/part/import_wizard/match_fields.html:71 #: part/templates/part/import_wizard/match_references.html:49 -#: templates/js/translated/bom.js:133 templates/js/translated/build.js:530 -#: templates/js/translated/build.js:1802 -#: templates/js/translated/purchase_order.js:696 -#: templates/js/translated/purchase_order.js:1288 +#: templates/js/translated/bom.js:133 templates/js/translated/build.js:533 +#: templates/js/translated/build.js:1805 +#: templates/js/translated/purchase_order.js:679 +#: templates/js/translated/purchase_order.js:1271 #: templates/js/translated/return_order.js:505 -#: templates/js/translated/sales_order.js:1145 +#: templates/js/translated/sales_order.js:1111 #: templates/js/translated/stock.js:720 templates/js/translated/stock.js:889 #: templates/patterns/wizard/match_fields.html:70 msgid "Remove row" -msgstr "" +msgstr "移除行" #: order/templates/order/order_wizard/match_parts.html:12 #: part/templates/part/import_wizard/ajax_match_references.html:12 #: part/templates/part/import_wizard/match_references.html:12 msgid "Errors exist in the submitted data" -msgstr "" +msgstr "提交的數據中存在錯誤" #: order/templates/order/order_wizard/match_parts.html:28 #: part/templates/part/import_wizard/ajax_match_references.html:21 #: part/templates/part/import_wizard/match_references.html:28 msgid "Row" -msgstr "" +msgstr "行" #: order/templates/order/order_wizard/match_parts.html:29 msgid "Select Supplier Part" -msgstr "" +msgstr "選擇供應商零件" #: order/templates/order/order_wizard/po_upload.html:8 msgid "Return to Orders" -msgstr "" +msgstr "返回至訂單" #: order/templates/order/order_wizard/po_upload.html:13 msgid "Upload File for Purchase Order" -msgstr "" +msgstr "上傳採購訂單文件" #: order/templates/order/order_wizard/po_upload.html:14 msgid "Order is already processed. Files cannot be uploaded." -msgstr "" +msgstr "訂單已經處理。無法上傳文件。" #: order/templates/order/order_wizard/po_upload.html:27 #: part/templates/part/import_wizard/ajax_part_upload.html:10 @@ -6229,260 +6437,261 @@ msgstr "" #: templates/patterns/wizard/upload.html:13 #, python-format msgid "Step %(step)s of %(count)s" -msgstr "" +msgstr "共%(count)s個步驟中的第 %(step)s 步" #: order/templates/order/po_sidebar.html:7 msgid "Received Stock" -msgstr "" +msgstr "收到的庫存" #: order/templates/order/purchase_order_detail.html:18 msgid "Purchase Order Items" -msgstr "" +msgstr "採購訂單項目" #: order/templates/order/purchase_order_detail.html:27 #: order/templates/order/return_order_detail.html:24 #: order/templates/order/sales_order_detail.html:24 -#: templates/js/translated/purchase_order.js:414 +#: templates/js/translated/purchase_order.js:397 #: templates/js/translated/return_order.js:458 #: templates/js/translated/sales_order.js:237 msgid "Add Line Item" -msgstr "" +msgstr "添加行項目" #: order/templates/order/purchase_order_detail.html:31 #: order/templates/order/purchase_order_detail.html:32 #: order/templates/order/return_order_detail.html:28 #: order/templates/order/return_order_detail.html:29 msgid "Receive Line Items" -msgstr "" +msgstr "收到行項目" #: order/templates/order/purchase_order_detail.html:50 #: order/templates/order/return_order_detail.html:45 #: order/templates/order/sales_order_detail.html:41 msgid "Extra Lines" -msgstr "" +msgstr "附加項" #: order/templates/order/purchase_order_detail.html:56 #: order/templates/order/return_order_detail.html:51 #: order/templates/order/sales_order_detail.html:47 msgid "Add Extra Line" -msgstr "" +msgstr "添加附加項" #: order/templates/order/purchase_order_detail.html:74 msgid "Received Items" -msgstr "" +msgstr "已收到的項目" #: order/templates/order/purchase_order_detail.html:99 #: order/templates/order/return_order_detail.html:85 #: order/templates/order/sales_order_detail.html:139 msgid "Order Notes" -msgstr "" +msgstr "訂單備註" -#: order/templates/order/return_order_base.html:18 -#: order/templates/order/sales_order_base.html:18 +#: order/templates/order/return_order_base.html:19 +#: order/templates/order/sales_order_base.html:19 msgid "Customer logo thumbnail" -msgstr "" +msgstr "客户 logo 縮略圖" -#: order/templates/order/return_order_base.html:60 +#: order/templates/order/return_order_base.html:61 msgid "Print return order report" -msgstr "" +msgstr "打印退貨訂單報告" -#: order/templates/order/return_order_base.html:64 -#: order/templates/order/sales_order_base.html:64 +#: order/templates/order/return_order_base.html:65 +#: order/templates/order/sales_order_base.html:65 msgid "Print packing list" -msgstr "" +msgstr "打印包裝列表" -#: order/templates/order/return_order_base.html:141 -#: order/templates/order/sales_order_base.html:158 +#: order/templates/order/return_order_base.html:142 +#: order/templates/order/sales_order_base.html:159 #: templates/js/translated/return_order.js:308 -#: templates/js/translated/sales_order.js:833 +#: templates/js/translated/sales_order.js:792 msgid "Customer Reference" -msgstr "" +msgstr "客户參考" -#: order/templates/order/return_order_base.html:198 -#: order/templates/order/sales_order_base.html:242 +#: order/templates/order/return_order_base.html:199 +#: order/templates/order/sales_order_base.html:243 #: part/templates/part/part_pricing.html:32 #: part/templates/part/part_pricing.html:58 #: part/templates/part/part_pricing.html:99 #: part/templates/part/part_pricing.html:114 #: templates/js/translated/part.js:1079 -#: templates/js/translated/purchase_order.js:1822 +#: templates/js/translated/purchase_order.js:1806 #: templates/js/translated/return_order.js:380 -#: templates/js/translated/sales_order.js:891 +#: templates/js/translated/sales_order.js:850 msgid "Total Cost" -msgstr "" +msgstr "總成本" -#: order/templates/order/return_order_base.html:273 +#: order/templates/order/return_order_base.html:274 msgid "Return Order QR Code" -msgstr "" +msgstr "退貨訂單二維碼" -#: order/templates/order/return_order_base.html:285 +#: order/templates/order/return_order_base.html:286 msgid "Link Barcode to Return Order" -msgstr "" +msgstr "將條形碼鏈接到退貨訂單" #: order/templates/order/return_order_sidebar.html:5 msgid "Order Details" -msgstr "" +msgstr "訂單詳情" -#: order/templates/order/sales_order_base.html:60 +#: order/templates/order/sales_order_base.html:61 msgid "Print sales order report" -msgstr "" +msgstr "打印銷售訂單報告" -#: order/templates/order/sales_order_base.html:91 #: order/templates/order/sales_order_base.html:92 +#: order/templates/order/sales_order_base.html:93 msgid "Ship Items" -msgstr "" +msgstr "運送項目" -#: order/templates/order/sales_order_base.html:95 #: order/templates/order/sales_order_base.html:96 +#: order/templates/order/sales_order_base.html:97 msgid "Mark As Shipped" -msgstr "" +msgstr "標記為已發貨" -#: order/templates/order/sales_order_base.html:99 -#: templates/js/translated/sales_order.js:536 +#: order/templates/order/sales_order_base.html:100 +#: templates/js/translated/sales_order.js:495 msgid "Complete Sales Order" -msgstr "" +msgstr "完成銷售訂單" -#: order/templates/order/sales_order_base.html:138 +#: order/templates/order/sales_order_base.html:139 msgid "This Sales Order has not been fully allocated" -msgstr "" +msgstr "銷售訂單沒有完全分配" -#: order/templates/order/sales_order_base.html:176 +#: order/templates/order/sales_order_base.html:177 #: order/templates/order/sales_order_detail.html:99 #: order/templates/order/so_sidebar.html:11 msgid "Completed Shipments" -msgstr "" +msgstr "完成配送" -#: order/templates/order/sales_order_base.html:339 +#: order/templates/order/sales_order_base.html:340 msgid "Sales Order QR Code" -msgstr "" +msgstr "銷售訂單二維碼" -#: order/templates/order/sales_order_base.html:351 +#: order/templates/order/sales_order_base.html:352 msgid "Link Barcode to Sales Order" -msgstr "" +msgstr "將條形碼鏈接到銷售訂單" #: order/templates/order/sales_order_detail.html:18 msgid "Sales Order Items" -msgstr "" +msgstr "銷售訂單項目" #: order/templates/order/sales_order_detail.html:67 #: order/templates/order/so_sidebar.html:8 templates/InvenTree/index.html:284 msgid "Pending Shipments" -msgstr "" +msgstr "待發貨" #: order/templates/order/sales_order_detail.html:71 -#: templates/js/translated/bom.js:1277 templates/js/translated/build.js:1063 +#: templates/js/translated/bom.js:1277 templates/js/translated/build.js:1066 #: templates/js/translated/filters.js:299 msgid "Actions" -msgstr "" +msgstr "動作" #: order/templates/order/sales_order_detail.html:80 msgid "New Shipment" -msgstr "" +msgstr "新建配送" #: order/views.py:120 msgid "Match Supplier Parts" -msgstr "" +msgstr "匹配供應商零件" -#: order/views.py:406 +#: order/views.py:407 msgid "Sales order not found" -msgstr "" +msgstr "未找到銷售訂單" -#: order/views.py:412 +#: order/views.py:413 msgid "Price not found" -msgstr "" +msgstr "未找到價格" -#: order/views.py:415 +#: order/views.py:416 #, python-brace-format msgid "Updated {part} unit-price to {price}" -msgstr "" +msgstr "更新零件{part} 單價到{price}" -#: order/views.py:421 +#: order/views.py:422 #, python-brace-format msgid "Updated {part} unit-price to {price} and quantity to {qty}" -msgstr "" +msgstr "更新零件 {part} 單價到 {price} 且更新數量到 {qty}" -#: part/admin.py:48 part/models.py:1032 part/templates/part/part_base.html:269 +#: part/admin.py:48 part/models.py:1093 part/serializers.py:939 +#: part/templates/part/part_base.html:277 #: report/templates/report/inventree_stock_location_report.html:103 #: templates/js/translated/part.js:1233 templates/js/translated/part.js:2347 -#: templates/js/translated/stock.js:2121 +#: templates/js/translated/stock.js:2122 msgid "IPN" -msgstr "" +msgstr "內部零件號 IPN" -#: part/admin.py:50 part/models.py:1041 part/templates/part/part_base.html:286 +#: part/admin.py:50 part/models.py:1102 part/templates/part/part_base.html:294 #: report/models.py:161 templates/js/translated/part.js:1238 #: templates/js/translated/part.js:2353 msgid "Revision" -msgstr "" +msgstr "版本" -#: part/admin.py:53 part/admin.py:319 part/models.py:1014 -#: part/templates/part/category.html:91 part/templates/part/part_base.html:307 +#: part/admin.py:53 part/admin.py:319 part/models.py:1075 +#: part/templates/part/category.html:91 part/templates/part/part_base.html:315 msgid "Keywords" -msgstr "" +msgstr "關鍵詞" #: part/admin.py:60 msgid "Part Image" -msgstr "" +msgstr "零件圖像" #: part/admin.py:63 part/admin.py:302 part/stocktake.py:221 msgid "Category ID" -msgstr "" +msgstr "類別 ID" -#: part/admin.py:67 part/admin.py:304 part/serializers.py:880 +#: part/admin.py:67 part/admin.py:304 part/serializers.py:924 #: part/stocktake.py:222 msgid "Category Name" -msgstr "" +msgstr "類別名稱" #: part/admin.py:71 part/admin.py:316 msgid "Default Location ID" -msgstr "" +msgstr "默認位置ID" #: part/admin.py:76 msgid "Default Supplier ID" -msgstr "" +msgstr "默認供應商ID" -#: part/admin.py:81 part/models.py:1000 part/templates/part/part_base.html:177 +#: part/admin.py:81 part/models.py:1061 part/templates/part/part_base.html:178 msgid "Variant Of" -msgstr "" +msgstr "變體" -#: part/admin.py:84 part/models.py:1138 part/templates/part/part_base.html:203 +#: part/admin.py:84 part/models.py:1199 part/templates/part/part_base.html:204 msgid "Minimum Stock" -msgstr "" +msgstr "最低庫存" #: part/admin.py:138 part/templates/part/part_sidebar.html:27 msgid "Used In" -msgstr "" +msgstr "用於" -#: part/admin.py:150 part/serializers.py:897 -#: part/templates/part/part_base.html:241 stock/admin.py:235 +#: part/admin.py:150 part/serializers.py:949 +#: part/templates/part/part_base.html:249 stock/admin.py:236 #: templates/js/translated/part.js:717 templates/js/translated/part.js:2159 msgid "Building" -msgstr "" +msgstr "正在生產" -#: part/admin.py:155 part/models.py:3202 part/models.py:3216 +#: part/admin.py:155 part/models.py:3253 part/models.py:3267 #: templates/js/translated/part.js:976 msgid "Minimum Cost" -msgstr "" +msgstr "最低成本" -#: part/admin.py:158 part/models.py:3209 part/models.py:3223 +#: part/admin.py:158 part/models.py:3260 part/models.py:3274 #: templates/js/translated/part.js:986 msgid "Maximum Cost" -msgstr "" +msgstr "最高成本" -#: part/admin.py:308 part/admin.py:387 stock/admin.py:57 stock/admin.py:215 +#: part/admin.py:308 part/admin.py:387 stock/admin.py:57 stock/admin.py:216 msgid "Parent ID" -msgstr "" +msgstr "父類編號" #: part/admin.py:312 part/admin.py:394 stock/admin.py:61 msgid "Parent Name" -msgstr "" +msgstr "父類名稱" #: part/admin.py:320 part/templates/part/category.html:85 #: part/templates/part/category.html:98 msgid "Category Path" -msgstr "" +msgstr "類別路徑" -#: part/admin.py:325 part/models.py:425 part/serializers.py:130 -#: part/serializers.py:290 part/serializers.py:415 +#: part/admin.py:325 part/models.py:420 part/serializers.py:130 +#: part/serializers.py:323 part/serializers.py:459 #: part/templates/part/cat_link.html:3 part/templates/part/category.html:20 #: part/templates/part/category.html:138 part/templates/part/category.html:158 #: part/templates/part/category_sidebar.html:9 @@ -6491,2201 +6700,2264 @@ msgstr "" #: templates/js/translated/part.js:2822 templates/js/translated/search.js:130 #: templates/navbar.html:24 users/models.py:203 msgid "Parts" -msgstr "" +msgstr "零件" #: part/admin.py:378 msgid "BOM Level" -msgstr "" +msgstr "物料清單級別" #: part/admin.py:381 msgid "BOM Item ID" -msgstr "" +msgstr "物料清單項目 lD" #: part/admin.py:391 msgid "Parent IPN" -msgstr "" +msgstr "父類內部零件號" #: part/admin.py:405 msgid "Part Revision" -msgstr "" +msgstr "零件修訂版本" -#: part/admin.py:418 part/serializers.py:1346 +#: part/admin.py:418 part/serializers.py:1400 #: templates/js/translated/pricing.js:358 -#: templates/js/translated/pricing.js:1024 +#: templates/js/translated/pricing.js:1022 msgid "Minimum Price" -msgstr "" +msgstr "最低價格" -#: part/admin.py:423 part/serializers.py:1361 +#: part/admin.py:423 part/serializers.py:1415 #: templates/js/translated/pricing.js:353 -#: templates/js/translated/pricing.js:1032 +#: templates/js/translated/pricing.js:1030 msgid "Maximum Price" -msgstr "" +msgstr "最高價格" #: part/api.py:104 msgid "Starred" -msgstr "" +msgstr "已加星標" #: part/api.py:106 msgid "Filter by starred categories" -msgstr "" +msgstr "按星標類別篩選" #: part/api.py:123 stock/api.py:310 msgid "Depth" -msgstr "" +msgstr "深度" #: part/api.py:123 msgid "Filter by category depth" -msgstr "" +msgstr "按類別深度篩選" #: part/api.py:141 stock/api.py:328 msgid "Top Level" -msgstr "" +msgstr "頂級" #: part/api.py:143 msgid "Filter by top-level categories" -msgstr "" +msgstr "按頂級類別篩選" + +#: part/api.py:156 stock/api.py:343 +msgid "Cascade" +msgstr "級聯" #: part/api.py:158 msgid "Include sub-categories in filtered results" -msgstr "" +msgstr "在篩選結果中包含子類別" -#: part/api.py:179 templates/js/translated/part.js:311 +#: part/api.py:178 templates/js/translated/part.js:311 msgid "Parent" -msgstr "" +msgstr "父類" -#: part/api.py:181 +#: part/api.py:180 msgid "Filter by parent category" -msgstr "" +msgstr "按父類別篩選" -#: part/api.py:214 +#: part/api.py:213 msgid "Exclude Tree" -msgstr "" +msgstr "排除樹" -#: part/api.py:216 +#: part/api.py:215 msgid "Exclude sub-categories under the specified category" -msgstr "" +msgstr "排除指定類別下的子類別" -#: part/api.py:441 +#: part/api.py:440 msgid "Has Results" -msgstr "" +msgstr "有結果" -#: part/api.py:608 +#: part/api.py:604 msgid "Incoming Purchase Order" -msgstr "" +msgstr "收到的採購訂單" -#: part/api.py:626 +#: part/api.py:618 msgid "Outgoing Sales Order" -msgstr "" +msgstr "外發銷售訂單" -#: part/api.py:642 +#: part/api.py:630 msgid "Stock produced by Build Order" -msgstr "" +msgstr "建造生產訂單產生的庫存" -#: part/api.py:726 +#: part/api.py:712 msgid "Stock required for Build Order" -msgstr "" +msgstr "生產訂單所需的庫存" -#: part/api.py:874 +#: part/api.py:858 msgid "Validate entire Bill of Materials" -msgstr "" +msgstr "驗證整個物料清單" -#: part/api.py:880 +#: part/api.py:864 msgid "This option must be selected" -msgstr "" +msgstr "必須選擇此項" -#: part/api.py:916 +#: part/api.py:900 msgid "Is Revision" -msgstr "" +msgstr "是修訂版本" -#: part/api.py:926 +#: part/api.py:910 msgid "Has Revisions" -msgstr "" +msgstr "有修訂版本" -#: part/api.py:1117 +#: part/api.py:1101 msgid "BOM Valid" -msgstr "" +msgstr "物料清單合規" -#: part/api.py:1523 part/models.py:1024 part/models.py:3489 part/models.py:4046 -#: part/serializers.py:430 part/serializers.py:1202 -#: part/templates/part/part_base.html:260 stock/api.py:781 +#: part/api.py:1509 part/models.py:1085 part/models.py:3540 part/models.py:4104 +#: part/serializers.py:474 part/serializers.py:1255 +#: part/templates/part/part_base.html:268 stock/api.py:781 #: templates/InvenTree/settings/settings_staff_js.html:300 #: templates/js/translated/notification.js:60 #: templates/js/translated/part.js:2383 msgid "Category" -msgstr "" +msgstr "類別" -#: part/api.py:1761 +#: part/api.py:1750 msgid "Assembly part is testable" -msgstr "" +msgstr "裝配部份是可測試的" -#: part/api.py:1770 +#: part/api.py:1759 msgid "Component part is testable" -msgstr "" +msgstr "組件部份是可測試的" -#: part/api.py:1821 +#: part/api.py:1810 msgid "Uses" -msgstr "" +msgstr "使用" -#: part/bom.py:178 part/models.py:107 part/models.py:1077 -#: part/templates/part/category.html:113 part/templates/part/part_base.html:376 +#: part/bom.py:183 part/models.py:109 part/models.py:1138 +#: part/templates/part/category.html:113 part/templates/part/part_base.html:384 #: templates/js/translated/part.js:2397 msgid "Default Location" -msgstr "" +msgstr "默認位置" -#: part/bom.py:179 part/serializers.py:905 +#: part/bom.py:184 part/serializers.py:957 #: templates/email/low_stock_notification.html:16 msgid "Total Stock" -msgstr "" +msgstr "庫存總量" #: part/forms.py:49 msgid "Input quantity for price calculation" -msgstr "" +msgstr "輸入用於價格計算的數量" -#: part/models.py:88 part/models.py:4047 part/templates/part/category.html:16 +#: part/models.py:90 part/models.py:4105 part/templates/part/category.html:16 #: part/templates/part/part_app_base.html:10 msgid "Part Category" -msgstr "" +msgstr "零件類別" -#: part/models.py:89 part/templates/part/category.html:133 +#: part/models.py:91 part/templates/part/category.html:133 #: templates/InvenTree/search.html:97 templates/js/translated/search.js:158 #: users/models.py:202 msgid "Part Categories" -msgstr "" +msgstr "零件類別" -#: part/models.py:108 +#: part/models.py:110 msgid "Default location for parts in this category" -msgstr "" +msgstr "此類別零件的默認庫存地點" -#: part/models.py:113 stock/models.py:187 templates/js/translated/part.js:2828 -#: templates/js/translated/stock.js:2856 +#: part/models.py:115 stock/models.py:193 templates/js/translated/part.js:2828 +#: templates/js/translated/stock.js:2857 #: templates/js/translated/table_filters.js:246 #: templates/js/translated/table_filters.js:290 msgid "Structural" -msgstr "" +msgstr "結構性" -#: part/models.py:115 +#: part/models.py:117 msgid "Parts may not be directly assigned to a structural category, but may be assigned to child categories." -msgstr "" +msgstr "零件可能無法直接分配到結構類別,但可以分配到子類別。" -#: part/models.py:124 +#: part/models.py:126 msgid "Default keywords" -msgstr "" +msgstr "默認關鍵字" -#: part/models.py:125 +#: part/models.py:127 msgid "Default keywords for parts in this category" -msgstr "" +msgstr "此類別零件的默認關鍵字" -#: part/models.py:131 stock/models.py:90 stock/models.py:169 +#: part/models.py:133 stock/models.py:96 stock/models.py:175 #: templates/InvenTree/settings/settings_staff_js.html:445 msgid "Icon" -msgstr "" +msgstr "圖標" -#: part/models.py:132 part/serializers.py:143 part/serializers.py:161 -#: stock/models.py:170 +#: part/models.py:134 part/serializers.py:143 part/serializers.py:161 +#: stock/models.py:176 msgid "Icon (optional)" -msgstr "" +msgstr "圖標(可選)" -#: part/models.py:178 +#: part/models.py:180 msgid "You cannot make this part category structural because some parts are already assigned to it!" -msgstr "" +msgstr "您不能使這個零件類別結構化,因為有些零件已經分配給了它!" -#: part/models.py:519 +#: part/models.py:514 msgid "Cannot delete this part as it is locked" -msgstr "" +msgstr "無法刪除這個零件,因為它已被鎖定" + +#: part/models.py:517 +msgid "Cannot delete this part as it is still active" +msgstr "無法刪除這個零件,因為它仍然處於活動狀態" #: part/models.py:522 -msgid "Cannot delete this part as it is still active" -msgstr "" - -#: part/models.py:527 msgid "Cannot delete this part as it is used in an assembly" -msgstr "" +msgstr "無法刪除這個零件,因為它被使用在了裝配中" -#: part/models.py:565 +#: part/models.py:560 msgid "Invalid choice for parent part" -msgstr "" +msgstr "無效的上級零件選擇" -#: part/models.py:613 part/models.py:620 +#: part/models.py:608 part/models.py:615 #, python-brace-format msgid "Part '{self}' cannot be used in BOM for '{parent}' (recursive)" -msgstr "" +msgstr "零件 \"{self}\" 不能用在 \"{parent}\" 的物料清單 (遞歸)" -#: part/models.py:632 +#: part/models.py:627 #, python-brace-format msgid "Part '{parent}' is used in BOM for '{self}' (recursive)" -msgstr "" +msgstr "零件 \"{parent}\" 被使用在了 \"{self}\" 的物料清單 (遞歸)" -#: part/models.py:695 +#: part/models.py:694 #, python-brace-format msgid "IPN must match regex pattern {pattern}" -msgstr "" +msgstr "內部零件號必須匹配正則表達式 {pattern}" -#: part/models.py:703 +#: part/models.py:702 msgid "Part cannot be a revision of itself" -msgstr "" +msgstr "零件不能是對自身的修訂" -#: part/models.py:710 +#: part/models.py:709 msgid "Cannot make a revision of a part which is already a revision" -msgstr "" +msgstr "無法對已經是修訂版本的零件進行修訂" -#: part/models.py:717 +#: part/models.py:716 msgid "Revision code must be specified" -msgstr "" +msgstr "必須指定修訂代碼" -#: part/models.py:724 +#: part/models.py:723 msgid "Revisions are only allowed for assembly parts" -msgstr "" +msgstr "修訂僅對裝配零件允許" -#: part/models.py:731 +#: part/models.py:730 msgid "Cannot make a revision of a template part" -msgstr "" +msgstr "無法對模版零件進行修訂" -#: part/models.py:737 +#: part/models.py:736 msgid "Parent part must point to the same template" -msgstr "" +msgstr "上級零件必須指向相同的模版" -#: part/models.py:816 +#: part/models.py:832 msgid "Stock item with this serial number already exists" -msgstr "" +msgstr "該序列號庫存項己存在" -#: part/models.py:917 +#: part/models.py:976 msgid "Duplicate IPN not allowed in part settings" -msgstr "" - -#: part/models.py:926 -msgid "Duplicate part revision already exists." -msgstr "" - -#: part/models.py:936 -msgid "Part with this Name, IPN and Revision already exists." -msgstr "" - -#: part/models.py:951 -msgid "Parts cannot be assigned to structural part categories!" -msgstr "" - -#: part/models.py:983 part/models.py:4102 -msgid "Part name" -msgstr "" +msgstr "在零件設置中不允許重複的內部零件號" #: part/models.py:988 +msgid "Duplicate part revision already exists." +msgstr "重複的零件修訂版本已經存在。" + +#: part/models.py:997 +msgid "Part with this Name, IPN and Revision already exists." +msgstr "有這個名字,內部零件號,和修訂版本的零件已經存在" + +#: part/models.py:1012 +msgid "Parts cannot be assigned to structural part categories!" +msgstr "零件不能分配到結構性零件類別!" + +#: part/models.py:1044 part/models.py:4160 +msgid "Part name" +msgstr "零件名稱" + +#: part/models.py:1049 msgid "Is Template" -msgstr "" - -#: part/models.py:989 -msgid "Is this part a template part?" -msgstr "" - -#: part/models.py:999 -msgid "Is this part a variant of another part?" -msgstr "" - -#: part/models.py:1007 -msgid "Part description (optional)" -msgstr "" - -#: part/models.py:1015 -msgid "Part keywords to improve visibility in search results" -msgstr "" - -#: part/models.py:1025 -msgid "Part category" -msgstr "" - -#: part/models.py:1040 -msgid "Part revision or version number" -msgstr "" +msgstr "是模板" #: part/models.py:1050 +msgid "Is this part a template part?" +msgstr "這個零件是一個模版零件嗎?" + +#: part/models.py:1060 +msgid "Is this part a variant of another part?" +msgstr "這個零件是另一零件的變體嗎?" + +#: part/models.py:1068 +msgid "Part description (optional)" +msgstr "零件描述(可選)" + +#: part/models.py:1076 +msgid "Part keywords to improve visibility in search results" +msgstr "提高搜索結果可見性的零件關鍵字" + +#: part/models.py:1086 +msgid "Part category" +msgstr "零件類別" + +#: part/models.py:1101 +msgid "Part revision or version number" +msgstr "零件修訂版本或版本號" + +#: part/models.py:1111 msgid "Is this part a revision of another part?" -msgstr "" +msgstr "這零件是另一零件的修訂版本嗎?" -#: part/models.py:1051 part/templates/part/part_base.html:277 +#: part/models.py:1112 part/templates/part/part_base.html:285 msgid "Revision Of" -msgstr "" +msgstr "修訂版本" -#: part/models.py:1075 +#: part/models.py:1136 msgid "Where is this item normally stored?" -msgstr "" +msgstr "該物品通常存放在哪裏?" -#: part/models.py:1121 part/templates/part/part_base.html:385 +#: part/models.py:1182 part/templates/part/part_base.html:393 msgid "Default Supplier" -msgstr "" +msgstr "默認供應商" -#: part/models.py:1122 +#: part/models.py:1183 msgid "Default supplier part" -msgstr "" +msgstr "默認供應商零件" -#: part/models.py:1129 +#: part/models.py:1190 msgid "Default Expiry" -msgstr "" +msgstr "默認到期" -#: part/models.py:1130 +#: part/models.py:1191 msgid "Expiry time (in days) for stock items of this part" -msgstr "" +msgstr "此零件庫存項的過期時間 (天)" -#: part/models.py:1139 +#: part/models.py:1200 msgid "Minimum allowed stock level" -msgstr "" +msgstr "允許的最小庫存量" -#: part/models.py:1148 +#: part/models.py:1209 msgid "Units of measure for this part" -msgstr "" - -#: part/models.py:1155 -msgid "Can this part be built from other parts?" -msgstr "" - -#: part/models.py:1161 -msgid "Can this part be used to build other parts?" -msgstr "" - -#: part/models.py:1167 -msgid "Does this part have tracking for unique items?" -msgstr "" - -#: part/models.py:1173 -msgid "Can this part have test results recorded against it?" -msgstr "" - -#: part/models.py:1179 -msgid "Can this part be purchased from external suppliers?" -msgstr "" - -#: part/models.py:1185 -msgid "Can this part be sold to customers?" -msgstr "" - -#: part/models.py:1189 -msgid "Is this part active?" -msgstr "" - -#: part/models.py:1194 templates/js/translated/part.js:821 -#: templates/js/translated/table_filters.js:724 -msgid "Locked" -msgstr "" - -#: part/models.py:1195 -msgid "Locked parts cannot be edited" -msgstr "" - -#: part/models.py:1201 -msgid "Is this a virtual part, such as a software product or license?" -msgstr "" - -#: part/models.py:1207 -msgid "BOM checksum" -msgstr "" - -#: part/models.py:1208 -msgid "Stored BOM checksum" -msgstr "" +msgstr "此零件的計量單位" #: part/models.py:1216 +msgid "Can this part be built from other parts?" +msgstr "這個零件可由其他零件加工而成嗎?" + +#: part/models.py:1222 +msgid "Can this part be used to build other parts?" +msgstr "這個零件可用於創建其他零件嗎?" + +#: part/models.py:1228 +msgid "Does this part have tracking for unique items?" +msgstr "此零件是否有唯一物品的追蹤功能" + +#: part/models.py:1234 +msgid "Can this part have test results recorded against it?" +msgstr "這一部分能否記錄到測試結果?" + +#: part/models.py:1240 +msgid "Can this part be purchased from external suppliers?" +msgstr "這個零件可從外部供應商購買嗎?" + +#: part/models.py:1246 +msgid "Can this part be sold to customers?" +msgstr "此零件可以銷售給客户嗎?" + +#: part/models.py:1250 +msgid "Is this part active?" +msgstr "這個零件是否已激活?" + +#: part/models.py:1255 templates/js/translated/part.js:821 +#: templates/js/translated/table_filters.js:724 +msgid "Locked" +msgstr "已鎖定" + +#: part/models.py:1256 +msgid "Locked parts cannot be edited" +msgstr "無法編輯鎖定的零件" + +#: part/models.py:1262 +msgid "Is this a virtual part, such as a software product or license?" +msgstr "這是一個虛擬零件,例如一個軟件產品或許可證嗎?" + +#: part/models.py:1268 +msgid "BOM checksum" +msgstr "物料清單校驗和" + +#: part/models.py:1269 +msgid "Stored BOM checksum" +msgstr "保存的物料清單校驗和" + +#: part/models.py:1277 msgid "BOM checked by" -msgstr "" +msgstr "物料清單檢查人" -#: part/models.py:1221 +#: part/models.py:1282 msgid "BOM checked date" -msgstr "" +msgstr "物料清單檢查日期" -#: part/models.py:1237 +#: part/models.py:1298 msgid "Creation User" -msgstr "" +msgstr "新建用户" -#: part/models.py:1247 +#: part/models.py:1308 msgid "Owner responsible for this part" -msgstr "" +msgstr "此零件的負責人" -#: part/models.py:1252 part/templates/part/part_base.html:348 -#: stock/templates/stock/item_base.html:451 +#: part/models.py:1313 part/templates/part/part_base.html:356 +#: stock/templates/stock/item_base.html:448 #: templates/js/translated/part.js:2490 msgid "Last Stocktake" -msgstr "" +msgstr "最近庫存盤點" -#: part/models.py:2125 +#: part/models.py:2185 msgid "Sell multiple" -msgstr "" - -#: part/models.py:3116 -msgid "Currency used to cache pricing calculations" -msgstr "" - -#: part/models.py:3132 -msgid "Minimum BOM Cost" -msgstr "" - -#: part/models.py:3133 -msgid "Minimum cost of component parts" -msgstr "" - -#: part/models.py:3139 -msgid "Maximum BOM Cost" -msgstr "" - -#: part/models.py:3140 -msgid "Maximum cost of component parts" -msgstr "" - -#: part/models.py:3146 -msgid "Minimum Purchase Cost" -msgstr "" - -#: part/models.py:3147 -msgid "Minimum historical purchase cost" -msgstr "" - -#: part/models.py:3153 -msgid "Maximum Purchase Cost" -msgstr "" - -#: part/models.py:3154 -msgid "Maximum historical purchase cost" -msgstr "" - -#: part/models.py:3160 -msgid "Minimum Internal Price" -msgstr "" - -#: part/models.py:3161 -msgid "Minimum cost based on internal price breaks" -msgstr "" +msgstr "出售多個" #: part/models.py:3167 +msgid "Currency used to cache pricing calculations" +msgstr "用於緩存定價計算的貨幣" + +#: part/models.py:3183 +msgid "Minimum BOM Cost" +msgstr "最低物料清單成本" + +#: part/models.py:3184 +msgid "Minimum cost of component parts" +msgstr "元件的最低成本" + +#: part/models.py:3190 +msgid "Maximum BOM Cost" +msgstr "物料清單的最高成本" + +#: part/models.py:3191 +msgid "Maximum cost of component parts" +msgstr "元件的最高成本" + +#: part/models.py:3197 +msgid "Minimum Purchase Cost" +msgstr "最低購買成本" + +#: part/models.py:3198 +msgid "Minimum historical purchase cost" +msgstr "最高歷史購買成本" + +#: part/models.py:3204 +msgid "Maximum Purchase Cost" +msgstr "最大購買成本" + +#: part/models.py:3205 +msgid "Maximum historical purchase cost" +msgstr "最高歷史購買成本" + +#: part/models.py:3211 +msgid "Minimum Internal Price" +msgstr "最低內部價格" + +#: part/models.py:3212 +msgid "Minimum cost based on internal price breaks" +msgstr "基於內部批發價的最低成本" + +#: part/models.py:3218 msgid "Maximum Internal Price" -msgstr "" +msgstr "最大內部價格" -#: part/models.py:3168 +#: part/models.py:3219 msgid "Maximum cost based on internal price breaks" -msgstr "" +msgstr "基於內部批發價的最高成本" -#: part/models.py:3174 +#: part/models.py:3225 msgid "Minimum Supplier Price" -msgstr "" +msgstr "供應商最低價格" -#: part/models.py:3175 +#: part/models.py:3226 msgid "Minimum price of part from external suppliers" -msgstr "" +msgstr "外部供應商零件的最低價格" -#: part/models.py:3181 +#: part/models.py:3232 msgid "Maximum Supplier Price" -msgstr "" +msgstr "供應商最高價格" -#: part/models.py:3182 +#: part/models.py:3233 msgid "Maximum price of part from external suppliers" -msgstr "" +msgstr "來自外部供應商的商零件的最高價格" -#: part/models.py:3188 +#: part/models.py:3239 msgid "Minimum Variant Cost" -msgstr "" +msgstr "最小變體成本" -#: part/models.py:3189 +#: part/models.py:3240 msgid "Calculated minimum cost of variant parts" -msgstr "" +msgstr "計算出的變體零件的最低成本" -#: part/models.py:3195 +#: part/models.py:3246 msgid "Maximum Variant Cost" -msgstr "" +msgstr "最大變體成本" -#: part/models.py:3196 +#: part/models.py:3247 msgid "Calculated maximum cost of variant parts" -msgstr "" +msgstr "計算出的變體零件的最大成本" -#: part/models.py:3203 +#: part/models.py:3254 msgid "Override minimum cost" -msgstr "" +msgstr "覆蓋最低成本" -#: part/models.py:3210 +#: part/models.py:3261 msgid "Override maximum cost" -msgstr "" +msgstr "覆蓋最大成本" -#: part/models.py:3217 +#: part/models.py:3268 msgid "Calculated overall minimum cost" -msgstr "" +msgstr "計算總最低成本" -#: part/models.py:3224 +#: part/models.py:3275 msgid "Calculated overall maximum cost" -msgstr "" +msgstr "計算總最大成本" -#: part/models.py:3230 +#: part/models.py:3281 msgid "Minimum Sale Price" -msgstr "" +msgstr "最低售出價格" -#: part/models.py:3231 +#: part/models.py:3282 msgid "Minimum sale price based on price breaks" -msgstr "" +msgstr "基於批發價的最低售出價格" -#: part/models.py:3237 +#: part/models.py:3288 msgid "Maximum Sale Price" -msgstr "" +msgstr "最高售出價格" -#: part/models.py:3238 +#: part/models.py:3289 msgid "Maximum sale price based on price breaks" -msgstr "" +msgstr "基於批發價的最大售出價格" -#: part/models.py:3244 +#: part/models.py:3295 msgid "Minimum Sale Cost" -msgstr "" +msgstr "最低銷售成本" -#: part/models.py:3245 +#: part/models.py:3296 msgid "Minimum historical sale price" -msgstr "" +msgstr "歷史最低售出價格" -#: part/models.py:3251 +#: part/models.py:3302 msgid "Maximum Sale Cost" -msgstr "" +msgstr "最高銷售成本" -#: part/models.py:3252 +#: part/models.py:3303 msgid "Maximum historical sale price" -msgstr "" +msgstr "歷史最高售出價格" -#: part/models.py:3271 +#: part/models.py:3322 msgid "Part for stocktake" -msgstr "" +msgstr "用於盤點的零件" -#: part/models.py:3276 +#: part/models.py:3327 msgid "Item Count" -msgstr "" +msgstr "物品數量" -#: part/models.py:3277 +#: part/models.py:3328 msgid "Number of individual stock entries at time of stocktake" -msgstr "" +msgstr "盤點時的個別庫存條目數" -#: part/models.py:3285 +#: part/models.py:3336 msgid "Total available stock at time of stocktake" -msgstr "" +msgstr "盤點時可用庫存總額" -#: part/models.py:3289 part/models.py:3372 +#: part/models.py:3340 part/models.py:3423 part/serializers.py:263 #: part/templates/part/part_scheduling.html:13 #: report/templates/report/inventree_test_report.html:106 #: templates/InvenTree/settings/plugin_settings.html:37 #: templates/InvenTree/settings/settings_staff_js.html:543 -#: templates/js/translated/part.js:1092 templates/js/translated/pricing.js:826 -#: templates/js/translated/pricing.js:950 -#: templates/js/translated/purchase_order.js:1801 -#: templates/js/translated/stock.js:2905 +#: templates/js/translated/part.js:1092 templates/js/translated/pricing.js:824 +#: templates/js/translated/pricing.js:948 +#: templates/js/translated/purchase_order.js:1785 +#: templates/js/translated/stock.js:2906 msgid "Date" -msgstr "" +msgstr "日期" -#: part/models.py:3290 +#: part/models.py:3341 msgid "Date stocktake was performed" -msgstr "" +msgstr "進行盤點的日期" -#: part/models.py:3298 +#: part/models.py:3349 msgid "Additional notes" -msgstr "" +msgstr "附加註釋" -#: part/models.py:3308 +#: part/models.py:3359 msgid "User who performed this stocktake" -msgstr "" +msgstr "進行此盤點的用户" -#: part/models.py:3314 +#: part/models.py:3365 msgid "Minimum Stock Cost" -msgstr "" +msgstr "最低庫存成本" -#: part/models.py:3315 +#: part/models.py:3366 msgid "Estimated minimum cost of stock on hand" -msgstr "" +msgstr "現有存庫存最低成本估算" -#: part/models.py:3321 +#: part/models.py:3372 msgid "Maximum Stock Cost" -msgstr "" +msgstr "最高庫存成本" -#: part/models.py:3322 +#: part/models.py:3373 msgid "Estimated maximum cost of stock on hand" -msgstr "" +msgstr "目前庫存最高成本估算" -#: part/models.py:3378 templates/InvenTree/settings/settings_staff_js.html:532 +#: part/models.py:3429 templates/InvenTree/settings/settings_staff_js.html:532 msgid "Report" -msgstr "" +msgstr "報告" -#: part/models.py:3379 +#: part/models.py:3430 msgid "Stocktake report file (generated internally)" -msgstr "" +msgstr "盤點報告文件(內部生成)" -#: part/models.py:3384 templates/InvenTree/settings/settings_staff_js.html:539 +#: part/models.py:3435 templates/InvenTree/settings/settings_staff_js.html:539 msgid "Part Count" -msgstr "" +msgstr "零件計數" -#: part/models.py:3385 +#: part/models.py:3436 msgid "Number of parts covered by stocktake" -msgstr "" +msgstr "盤點涵蓋的零件數量" -#: part/models.py:3395 +#: part/models.py:3446 msgid "User who requested this stocktake report" -msgstr "" +msgstr "請求此盤點報告的用户" -#: part/models.py:3405 +#: part/models.py:3456 msgid "Part Sale Price Break" -msgstr "" +msgstr "零件售出價格折扣" -#: part/models.py:3517 +#: part/models.py:3568 msgid "Part Test Template" -msgstr "" +msgstr "零件測試模板" -#: part/models.py:3543 +#: part/models.py:3594 msgid "Invalid template name - must include at least one alphanumeric character" -msgstr "" +msgstr "模板名稱無效 - 必須包含至少一個字母或者數字" -#: part/models.py:3564 part/models.py:3733 +#: part/models.py:3615 part/models.py:3784 msgid "Choices must be unique" -msgstr "" +msgstr "選擇必須是唯一的" -#: part/models.py:3575 -msgid "Test templates can only be created for trackable parts" -msgstr "" +#: part/models.py:3626 +msgid "Test templates can only be created for testable parts" +msgstr "測試模板只能為可拆分的部件創建" -#: part/models.py:3586 +#: part/models.py:3637 msgid "Test template with the same key already exists for part" -msgstr "" +msgstr "零件已存在具有相同主鍵的測試模板" -#: part/models.py:3603 templates/js/translated/part.js:2898 +#: part/models.py:3654 templates/js/translated/part.js:2898 msgid "Test Name" -msgstr "" +msgstr "測試名" -#: part/models.py:3604 +#: part/models.py:3655 msgid "Enter a name for the test" -msgstr "" +msgstr "輸入測試的名稱" -#: part/models.py:3610 +#: part/models.py:3661 msgid "Test Key" -msgstr "" +msgstr "測試主鍵" -#: part/models.py:3611 +#: part/models.py:3662 msgid "Simplified key for the test" -msgstr "" +msgstr "簡化測試主鍵" -#: part/models.py:3618 +#: part/models.py:3669 msgid "Test Description" -msgstr "" +msgstr "測試説明" -#: part/models.py:3619 +#: part/models.py:3670 msgid "Enter description for this test" -msgstr "" +msgstr "輸入測試的描述" -#: part/models.py:3623 report/models.py:208 +#: part/models.py:3674 report/models.py:216 #: templates/js/translated/part.js:2919 #: templates/js/translated/table_filters.js:502 msgid "Enabled" -msgstr "" +msgstr "已啓用" -#: part/models.py:3623 +#: part/models.py:3674 msgid "Is this test enabled?" -msgstr "" +msgstr "此測試是否已啓用?" -#: part/models.py:3628 templates/js/translated/part.js:2927 +#: part/models.py:3679 templates/js/translated/part.js:2927 #: templates/js/translated/table_filters.js:498 msgid "Required" -msgstr "" +msgstr "必須的" -#: part/models.py:3629 +#: part/models.py:3680 msgid "Is this test required to pass?" -msgstr "" +msgstr "需要此測試才能通過嗎?" -#: part/models.py:3634 templates/js/translated/part.js:2935 +#: part/models.py:3685 templates/js/translated/part.js:2935 msgid "Requires Value" -msgstr "" +msgstr "需要值" -#: part/models.py:3635 +#: part/models.py:3686 msgid "Does this test require a value when adding a test result?" -msgstr "" +msgstr "添加測試結果時是否需要一個值?" -#: part/models.py:3640 templates/js/translated/part.js:2942 +#: part/models.py:3691 templates/js/translated/part.js:2942 msgid "Requires Attachment" -msgstr "" +msgstr "需要附件" -#: part/models.py:3642 +#: part/models.py:3693 msgid "Does this test require a file attachment when adding a test result?" -msgstr "" +msgstr "添加測試結果時是否需要文件附件?" -#: part/models.py:3648 part/models.py:3792 templates/js/translated/part.js:1643 +#: part/models.py:3699 part/models.py:3843 templates/js/translated/part.js:1643 msgid "Choices" -msgstr "" +msgstr "選項" -#: part/models.py:3649 +#: part/models.py:3700 msgid "Valid choices for this test (comma-separated)" -msgstr "" +msgstr "此測試的有效選擇 (逗號分隔)" -#: part/models.py:3681 +#: part/models.py:3732 msgid "Part Parameter Template" -msgstr "" +msgstr "零件參數模板" -#: part/models.py:3708 +#: part/models.py:3759 msgid "Checkbox parameters cannot have units" -msgstr "" +msgstr "勾選框參數不能有單位" -#: part/models.py:3713 +#: part/models.py:3764 msgid "Checkbox parameters cannot have choices" -msgstr "" +msgstr "複選框參數不能有選項" -#: part/models.py:3750 +#: part/models.py:3801 msgid "Parameter template name must be unique" -msgstr "" +msgstr "參數模板名稱必須是唯一的" -#: part/models.py:3765 +#: part/models.py:3816 msgid "Parameter Name" -msgstr "" +msgstr "參數名稱" -#: part/models.py:3772 +#: part/models.py:3823 msgid "Physical units for this parameter" -msgstr "" +msgstr "此參數的物理單位" -#: part/models.py:3780 +#: part/models.py:3831 msgid "Parameter description" -msgstr "" +msgstr "參數説明" -#: part/models.py:3786 templates/js/translated/part.js:1634 +#: part/models.py:3837 templates/js/translated/part.js:1634 #: templates/js/translated/table_filters.js:837 msgid "Checkbox" -msgstr "" +msgstr "勾選框" -#: part/models.py:3787 +#: part/models.py:3838 msgid "Is this parameter a checkbox?" -msgstr "" +msgstr "此參數是否為勾選框?" -#: part/models.py:3793 +#: part/models.py:3844 msgid "Valid choices for this parameter (comma-separated)" -msgstr "" +msgstr "此參數的有效選擇 (逗號分隔)" -#: part/models.py:3827 +#: part/models.py:3881 msgid "Part Parameter" -msgstr "" +msgstr "零件參數" -#: part/models.py:3853 +#: part/models.py:3907 msgid "Parameter cannot be modified - part is locked" -msgstr "" +msgstr "參數不能被修改 - 零件被鎖定" -#: part/models.py:3889 +#: part/models.py:3945 msgid "Invalid choice for parameter value" -msgstr "" +msgstr "無效的參數值選擇" -#: part/models.py:3938 +#: part/models.py:3996 msgid "Parent Part" -msgstr "" +msgstr "父零件" -#: part/models.py:3946 part/models.py:4054 part/models.py:4055 +#: part/models.py:4004 part/models.py:4112 part/models.py:4113 #: templates/InvenTree/settings/settings_staff_js.html:295 msgid "Parameter Template" -msgstr "" +msgstr "參數模板" -#: part/models.py:3952 +#: part/models.py:4010 msgid "Parameter Value" -msgstr "" +msgstr "參數值" -#: part/models.py:4002 +#: part/models.py:4060 msgid "Part Category Parameter Template" -msgstr "" +msgstr "零件類別參數模板" -#: part/models.py:4061 templates/InvenTree/settings/settings_staff_js.html:304 +#: part/models.py:4119 templates/InvenTree/settings/settings_staff_js.html:304 msgid "Default Value" -msgstr "" +msgstr "默認值" -#: part/models.py:4062 +#: part/models.py:4120 msgid "Default Parameter Value" -msgstr "" +msgstr "默認參數值" -#: part/models.py:4100 +#: part/models.py:4158 msgid "Part ID or part name" -msgstr "" +msgstr "零件ID或零件名稱" -#: part/models.py:4101 +#: part/models.py:4159 msgid "Unique part ID value" -msgstr "" +msgstr "唯一零件ID值" -#: part/models.py:4103 +#: part/models.py:4161 msgid "Part IPN value" -msgstr "" +msgstr "零件內部零件號" -#: part/models.py:4104 +#: part/models.py:4162 msgid "Level" -msgstr "" +msgstr "級" -#: part/models.py:4104 +#: part/models.py:4162 msgid "BOM level" -msgstr "" +msgstr "物料清單級別" -#: part/models.py:4215 +#: part/models.py:4272 msgid "BOM item cannot be modified - assembly is locked" -msgstr "" +msgstr "物料清單項目不能被修改 - 裝配已鎖定" -#: part/models.py:4222 +#: part/models.py:4279 msgid "BOM item cannot be modified - variant assembly is locked" -msgstr "" - -#: part/models.py:4232 -msgid "Select parent part" -msgstr "" - -#: part/models.py:4242 -msgid "Sub part" -msgstr "" - -#: part/models.py:4243 -msgid "Select part to be used in BOM" -msgstr "" - -#: part/models.py:4254 -msgid "BOM quantity for this BOM item" -msgstr "" - -#: part/models.py:4260 -msgid "This BOM item is optional" -msgstr "" - -#: part/models.py:4266 -msgid "This BOM item is consumable (it is not tracked in build orders)" -msgstr "" - -#: part/models.py:4273 part/templates/part/upload_bom.html:55 -msgid "Overage" -msgstr "" - -#: part/models.py:4274 -msgid "Estimated build wastage quantity (absolute or percentage)" -msgstr "" - -#: part/models.py:4281 -msgid "BOM item reference" -msgstr "" +msgstr "物料清單項目不能修改 - 變體裝配已鎖定" #: part/models.py:4289 +msgid "Select parent part" +msgstr "選擇父零件" + +#: part/models.py:4299 +msgid "Sub part" +msgstr "子零件" + +#: part/models.py:4300 +msgid "Select part to be used in BOM" +msgstr "選擇要用於物料清單的零件" + +#: part/models.py:4311 +msgid "BOM quantity for this BOM item" +msgstr "此物料清單項目的數量" + +#: part/models.py:4317 +msgid "This BOM item is optional" +msgstr "此物料清單項目是可選的" + +#: part/models.py:4323 +msgid "This BOM item is consumable (it is not tracked in build orders)" +msgstr "這個物料清單項目是耗材 (它沒有在生產訂單中被追蹤)" + +#: part/models.py:4330 part/templates/part/upload_bom.html:55 +msgid "Overage" +msgstr "超量" + +#: part/models.py:4331 +msgid "Estimated build wastage quantity (absolute or percentage)" +msgstr "估計生產物浪費量(絕對值或百分比)" + +#: part/models.py:4338 +msgid "BOM item reference" +msgstr "物料清單項目引用" + +#: part/models.py:4346 msgid "BOM item notes" -msgstr "" +msgstr "物料清單項目註釋" -#: part/models.py:4295 +#: part/models.py:4352 msgid "Checksum" -msgstr "" +msgstr "校驗和" -#: part/models.py:4296 +#: part/models.py:4353 msgid "BOM line checksum" -msgstr "" +msgstr "物料清單行校驗和" -#: part/models.py:4301 templates/js/translated/table_filters.js:181 +#: part/models.py:4358 templates/js/translated/table_filters.js:181 msgid "Validated" -msgstr "" +msgstr "已驗證" -#: part/models.py:4302 +#: part/models.py:4359 msgid "This BOM item has been validated" -msgstr "" +msgstr "此物料清單項目已驗證" -#: part/models.py:4307 part/templates/part/upload_bom.html:57 +#: part/models.py:4364 part/templates/part/upload_bom.html:57 #: templates/js/translated/bom.js:1054 #: templates/js/translated/table_filters.js:185 #: templates/js/translated/table_filters.js:218 msgid "Gets inherited" -msgstr "" +msgstr "獲取繼承的" -#: part/models.py:4308 +#: part/models.py:4365 msgid "This BOM item is inherited by BOMs for variant parts" -msgstr "" +msgstr "此物料清單項目是由物料清單繼承的變體零件" -#: part/models.py:4314 +#: part/models.py:4371 msgid "Stock items for variant parts can be used for this BOM item" -msgstr "" +msgstr "變體零件的庫存項可以用於此物料清單項目" -#: part/models.py:4399 stock/models.py:685 +#: part/models.py:4456 stock/models.py:762 msgid "Quantity must be integer value for trackable parts" -msgstr "" +msgstr "可追蹤零件的數量必須是整數" -#: part/models.py:4409 part/models.py:4411 +#: part/models.py:4466 part/models.py:4468 msgid "Sub part must be specified" -msgstr "" +msgstr "必須指定子零件" -#: part/models.py:4551 +#: part/models.py:4613 msgid "BOM Item Substitute" -msgstr "" +msgstr "物料清單項目替代品" -#: part/models.py:4572 +#: part/models.py:4634 msgid "Substitute part cannot be the same as the master part" -msgstr "" +msgstr "替代品零件不能與主零件相同" -#: part/models.py:4585 +#: part/models.py:4647 msgid "Parent BOM item" -msgstr "" +msgstr "上級物料清單項目" -#: part/models.py:4593 +#: part/models.py:4655 msgid "Substitute part" -msgstr "" +msgstr "替代品零件" -#: part/models.py:4609 +#: part/models.py:4671 msgid "Part 1" -msgstr "" +msgstr "零件 1" -#: part/models.py:4617 +#: part/models.py:4679 msgid "Part 2" -msgstr "" +msgstr "零件2" -#: part/models.py:4618 +#: part/models.py:4680 msgid "Select Related Part" -msgstr "" +msgstr "選擇相關的零件" -#: part/models.py:4637 +#: part/models.py:4699 msgid "Part relationship cannot be created between a part and itself" -msgstr "" +msgstr "零件關係不能在零件和自身之間創建" -#: part/models.py:4642 +#: part/models.py:4704 msgid "Duplicate relationship already exists" -msgstr "" +msgstr "複製關係已經存在" #: part/serializers.py:124 msgid "Parent Category" -msgstr "" +msgstr "上級類別" #: part/serializers.py:125 templates/js/translated/part.js:312 msgid "Parent part category" -msgstr "" +msgstr "上級零件類別" #: part/serializers.py:132 part/serializers.py:158 #: part/templates/part/category.html:119 part/templates/part/category.html:204 #: part/templates/part/category_sidebar.html:7 msgid "Subcategories" -msgstr "" +msgstr "子類別" #: part/serializers.py:197 msgid "Results" -msgstr "" +msgstr "結果" #: part/serializers.py:198 msgid "Number of results recorded against this template" -msgstr "" +msgstr "根據該模板記錄的結果數量" -#: part/serializers.py:225 part/serializers.py:243 stock/serializers.py:616 +#: part/serializers.py:225 part/serializers.py:243 stock/serializers.py:643 msgid "Purchase currency of this stock item" -msgstr "" +msgstr "購買此庫存項的貨幣" -#: part/serializers.py:291 +#: part/serializers.py:268 +msgid "Speculative Quantity" +msgstr "投機數量" + +#: part/serializers.py:277 +msgid "Model ID" +msgstr "型號ID" + +#: part/serializers.py:324 msgid "Number of parts using this template" -msgstr "" +msgstr "使用此模板的零件數" -#: part/serializers.py:421 +#: part/serializers.py:465 msgid "No parts selected" -msgstr "" +msgstr "沒有選定零件" -#: part/serializers.py:431 +#: part/serializers.py:475 msgid "Select category" -msgstr "" +msgstr "選擇類別" -#: part/serializers.py:466 +#: part/serializers.py:510 msgid "Original Part" -msgstr "" +msgstr "原始零件" -#: part/serializers.py:467 +#: part/serializers.py:511 msgid "Select original part to duplicate" -msgstr "" +msgstr "選擇要複製的原始零件" -#: part/serializers.py:472 +#: part/serializers.py:516 msgid "Copy Image" -msgstr "" +msgstr "複製圖片" -#: part/serializers.py:473 +#: part/serializers.py:517 msgid "Copy image from original part" -msgstr "" +msgstr "從原零件複製圖片" -#: part/serializers.py:479 part/templates/part/detail.html:293 +#: part/serializers.py:523 part/templates/part/detail.html:293 msgid "Copy BOM" -msgstr "" +msgstr "複製物料清單" -#: part/serializers.py:480 +#: part/serializers.py:524 msgid "Copy bill of materials from original part" -msgstr "" +msgstr "從原始零件複製材料清單" -#: part/serializers.py:486 +#: part/serializers.py:530 msgid "Copy Parameters" -msgstr "" +msgstr "複製參數" -#: part/serializers.py:487 +#: part/serializers.py:531 msgid "Copy parameter data from original part" -msgstr "" +msgstr "從原始零件複製參數數據" -#: part/serializers.py:493 +#: part/serializers.py:537 msgid "Copy Notes" -msgstr "" +msgstr "複製備註" -#: part/serializers.py:494 +#: part/serializers.py:538 msgid "Copy notes from original part" -msgstr "" +msgstr "從原始零件複製備註" -#: part/serializers.py:512 +#: part/serializers.py:556 msgid "Initial Stock Quantity" -msgstr "" +msgstr "初始化庫存數量" -#: part/serializers.py:514 +#: part/serializers.py:558 msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added." -msgstr "" - -#: part/serializers.py:521 -msgid "Initial Stock Location" -msgstr "" - -#: part/serializers.py:522 -msgid "Specify initial stock location for this Part" -msgstr "" - -#: part/serializers.py:539 -msgid "Select supplier (or leave blank to skip)" -msgstr "" - -#: part/serializers.py:555 -msgid "Select manufacturer (or leave blank to skip)" -msgstr "" +msgstr "指定此零件的初始庫存數量。如果數量為零,則不添加任何庫存。" #: part/serializers.py:565 -msgid "Manufacturer part number" -msgstr "" +msgid "Initial Stock Location" +msgstr "初始化庫存地點" -#: part/serializers.py:572 -msgid "Selected company is not a valid supplier" -msgstr "" +#: part/serializers.py:566 +msgid "Specify initial stock location for this Part" +msgstr "初始化指定此零件的庫存地點" -#: part/serializers.py:581 -msgid "Selected company is not a valid manufacturer" -msgstr "" - -#: part/serializers.py:592 -msgid "Manufacturer part matching this MPN already exists" -msgstr "" +#: part/serializers.py:583 +msgid "Select supplier (or leave blank to skip)" +msgstr "選擇供應商(或為空以跳過)" #: part/serializers.py:599 +msgid "Select manufacturer (or leave blank to skip)" +msgstr "選擇製造商(或為空)" + +#: part/serializers.py:609 +msgid "Manufacturer part number" +msgstr "製造商零件號" + +#: part/serializers.py:616 +msgid "Selected company is not a valid supplier" +msgstr "所選公司不是一個有效的供應商" + +#: part/serializers.py:625 +msgid "Selected company is not a valid manufacturer" +msgstr "所選公司不是一個有效的製造商" + +#: part/serializers.py:636 +msgid "Manufacturer part matching this MPN already exists" +msgstr "與此製造商零件編號 (MPN) 的相匹配的製造商零件已存在" + +#: part/serializers.py:643 msgid "Supplier part matching this SKU already exists" -msgstr "" - -#: part/serializers.py:903 -msgid "Revisions" -msgstr "" - -#: part/serializers.py:908 -msgid "Unallocated Stock" -msgstr "" - -#: part/serializers.py:911 -msgid "Variant Stock" -msgstr "" - -#: part/serializers.py:941 part/templates/part/copy_part.html:9 -#: templates/js/translated/part.js:474 -msgid "Duplicate Part" -msgstr "" - -#: part/serializers.py:942 -msgid "Copy initial data from another Part" -msgstr "" - -#: part/serializers.py:948 templates/js/translated/part.js:103 -msgid "Initial Stock" -msgstr "" - -#: part/serializers.py:949 -msgid "Create Part with initial stock quantity" -msgstr "" +msgstr "匹配此庫存單位 (SKU) 的供應商零件已存在" #: part/serializers.py:955 +msgid "Revisions" +msgstr "修訂" + +#: part/serializers.py:960 +msgid "Unallocated Stock" +msgstr "未分配的庫存" + +#: part/serializers.py:963 +msgid "Variant Stock" +msgstr "變體庫存" + +#: part/serializers.py:993 part/templates/part/copy_part.html:9 +#: templates/js/translated/part.js:474 +msgid "Duplicate Part" +msgstr "重複零件" + +#: part/serializers.py:994 +msgid "Copy initial data from another Part" +msgstr "從另一個零件複製初始數據" + +#: part/serializers.py:1000 templates/js/translated/part.js:103 +msgid "Initial Stock" +msgstr "初始庫存" + +#: part/serializers.py:1001 +msgid "Create Part with initial stock quantity" +msgstr "創建具有初始庫存數量的零件" + +#: part/serializers.py:1007 msgid "Supplier Information" -msgstr "" +msgstr "供應商信息" -#: part/serializers.py:956 +#: part/serializers.py:1008 msgid "Add initial supplier information for this part" -msgstr "" +msgstr "添加此零件的初始供應商信息" -#: part/serializers.py:964 +#: part/serializers.py:1016 msgid "Copy Category Parameters" -msgstr "" +msgstr "複製類別參數" -#: part/serializers.py:965 +#: part/serializers.py:1017 msgid "Copy parameter templates from selected part category" -msgstr "" +msgstr "從選擇的零件複製參數模版" -#: part/serializers.py:970 +#: part/serializers.py:1022 msgid "Existing Image" -msgstr "" +msgstr "現有的圖片" -#: part/serializers.py:971 +#: part/serializers.py:1023 msgid "Filename of an existing part image" -msgstr "" +msgstr "現有零件圖片的文件名" -#: part/serializers.py:988 +#: part/serializers.py:1040 msgid "Image file does not exist" -msgstr "" +msgstr "圖片不存在" -#: part/serializers.py:1194 +#: part/serializers.py:1247 msgid "Limit stocktake report to a particular part, and any variant parts" -msgstr "" +msgstr "限制盤點報告到某個特定零件以及任何變體零件" -#: part/serializers.py:1204 +#: part/serializers.py:1257 msgid "Limit stocktake report to a particular part category, and any child categories" -msgstr "" +msgstr "限制盤點報告到某個特定零件類別以及任何子類別" -#: part/serializers.py:1214 +#: part/serializers.py:1267 msgid "Limit stocktake report to a particular stock location, and any child locations" -msgstr "" +msgstr "限制盤點報告到某個特定零件庫存地點以及任何子位置" -#: part/serializers.py:1220 +#: part/serializers.py:1273 msgid "Exclude External Stock" -msgstr "" +msgstr "排除外部庫存" -#: part/serializers.py:1221 +#: part/serializers.py:1274 msgid "Exclude stock items in external locations" -msgstr "" +msgstr "排除外部位置的庫存項" -#: part/serializers.py:1226 +#: part/serializers.py:1279 msgid "Generate Report" -msgstr "" +msgstr "生成報告" -#: part/serializers.py:1227 +#: part/serializers.py:1280 msgid "Generate report file containing calculated stocktake data" -msgstr "" +msgstr "生成包含計算出來的盤點數據的報告文件" -#: part/serializers.py:1232 +#: part/serializers.py:1285 msgid "Update Parts" -msgstr "" +msgstr "更新零件" -#: part/serializers.py:1233 +#: part/serializers.py:1286 msgid "Update specified parts with calculated stocktake data" -msgstr "" +msgstr "使用計算出的盤點數據更新指定零件" -#: part/serializers.py:1241 +#: part/serializers.py:1294 msgid "Stocktake functionality is not enabled" -msgstr "" +msgstr "盤點功能未啓用" -#: part/serializers.py:1347 +#: part/serializers.py:1299 +msgid "Background worker check failed" +msgstr "後台執行器檢查失敗" + +#: part/serializers.py:1401 msgid "Override calculated value for minimum price" -msgstr "" +msgstr "覆蓋已計算的最低價格值" -#: part/serializers.py:1354 +#: part/serializers.py:1408 msgid "Minimum price currency" -msgstr "" +msgstr "最低價格貨幣" -#: part/serializers.py:1362 +#: part/serializers.py:1416 msgid "Override calculated value for maximum price" -msgstr "" +msgstr "覆蓋已計算的最高價格值" -#: part/serializers.py:1369 +#: part/serializers.py:1423 msgid "Maximum price currency" -msgstr "" +msgstr "最高價格貨幣" -#: part/serializers.py:1398 +#: part/serializers.py:1452 msgid "Update" -msgstr "" +msgstr "更新" -#: part/serializers.py:1399 +#: part/serializers.py:1453 msgid "Update pricing for this part" -msgstr "" +msgstr "更新這個零件的價格" -#: part/serializers.py:1422 +#: part/serializers.py:1476 #, python-brace-format msgid "Could not convert from provided currencies to {default_currency}" -msgstr "" +msgstr "無法將所提供的貨幣轉換為 {default_currency}" -#: part/serializers.py:1429 +#: part/serializers.py:1483 msgid "Minimum price must not be greater than maximum price" -msgstr "" +msgstr "最低價格不能高於最高價格。" -#: part/serializers.py:1432 +#: part/serializers.py:1486 msgid "Maximum price must not be less than minimum price" -msgstr "" +msgstr "最高價格不能低於最低價格" -#: part/serializers.py:1576 +#: part/serializers.py:1634 msgid "Select the parent assembly" -msgstr "" +msgstr "選擇父裝配" -#: part/serializers.py:1585 +#: part/serializers.py:1643 msgid "Component Name" -msgstr "" +msgstr "元件名稱" -#: part/serializers.py:1588 +#: part/serializers.py:1646 msgid "Component IPN" -msgstr "" +msgstr "元件內部零件號" -#: part/serializers.py:1591 +#: part/serializers.py:1649 msgid "Component Description" -msgstr "" +msgstr "元件描述" -#: part/serializers.py:1597 +#: part/serializers.py:1655 msgid "Select the component part" -msgstr "" +msgstr "選擇零部件" -#: part/serializers.py:1606 part/templates/part/part_base.html:235 +#: part/serializers.py:1664 part/templates/part/part_base.html:243 #: templates/js/translated/bom.js:1219 msgid "Can Build" -msgstr "" +msgstr "可以創建" -#: part/serializers.py:1837 +#: part/serializers.py:1899 msgid "Select part to copy BOM from" -msgstr "" +msgstr "選擇要複製物料清單的零件" -#: part/serializers.py:1845 +#: part/serializers.py:1907 msgid "Remove Existing Data" -msgstr "" +msgstr "移除現有數據" -#: part/serializers.py:1846 +#: part/serializers.py:1908 msgid "Remove existing BOM items before copying" -msgstr "" +msgstr "複製前刪除現有的物料清單項目" -#: part/serializers.py:1851 +#: part/serializers.py:1913 msgid "Include Inherited" -msgstr "" +msgstr "包含繼承的" -#: part/serializers.py:1852 +#: part/serializers.py:1914 msgid "Include BOM items which are inherited from templated parts" -msgstr "" +msgstr "包含從模板零件繼承的物料清單項目" -#: part/serializers.py:1857 +#: part/serializers.py:1919 msgid "Skip Invalid Rows" -msgstr "" +msgstr "跳過無效行" -#: part/serializers.py:1858 +#: part/serializers.py:1920 msgid "Enable this option to skip invalid rows" -msgstr "" +msgstr "啓用此選項以跳過無效行" -#: part/serializers.py:1863 +#: part/serializers.py:1925 msgid "Copy Substitute Parts" -msgstr "" +msgstr "複製替代品零件" -#: part/serializers.py:1864 +#: part/serializers.py:1926 msgid "Copy substitute parts when duplicate BOM items" -msgstr "" +msgstr "複製物料清單項目時複製替代品零件" -#: part/serializers.py:1901 +#: part/serializers.py:1963 msgid "Clear Existing BOM" -msgstr "" +msgstr "清除現有的物料清單" -#: part/serializers.py:1902 +#: part/serializers.py:1964 msgid "Delete existing BOM items before uploading" -msgstr "" +msgstr "上傳前刪除現有的物料清單項目" -#: part/serializers.py:1934 +#: part/serializers.py:1996 msgid "No part column specified" -msgstr "" +msgstr "未指定零件列" -#: part/serializers.py:1978 +#: part/serializers.py:2040 msgid "Multiple matching parts found" -msgstr "" +msgstr "找到多個匹配的零件。" -#: part/serializers.py:1981 +#: part/serializers.py:2043 msgid "No matching part found" -msgstr "" +msgstr "沒有找到匹配的零件" -#: part/serializers.py:1984 +#: part/serializers.py:2045 msgid "Part is not designated as a component" -msgstr "" +msgstr "零件未指定為元件" -#: part/serializers.py:1993 +#: part/serializers.py:2054 msgid "Quantity not provided" -msgstr "" +msgstr "未提供數量" -#: part/serializers.py:2001 +#: part/serializers.py:2062 msgid "Invalid quantity" -msgstr "" +msgstr "無效的數量" -#: part/serializers.py:2024 +#: part/serializers.py:2085 msgid "At least one BOM item is required" -msgstr "" +msgstr "至少需要一個物料清單項目" #: part/stocktake.py:224 templates/js/translated/part.js:1073 #: templates/js/translated/part.js:1828 templates/js/translated/part.js:1884 -#: templates/js/translated/purchase_order.js:2154 +#: templates/js/translated/purchase_order.js:2138 msgid "Total Quantity" -msgstr "" +msgstr "總數量" #: part/stocktake.py:225 msgid "Total Cost Min" -msgstr "" +msgstr "總費用最小值" #: part/stocktake.py:226 msgid "Total Cost Max" -msgstr "" +msgstr "總費用最大值" #: part/stocktake.py:284 msgid "Stocktake Report Available" -msgstr "" +msgstr "庫存盤點報告可用" #: part/stocktake.py:285 msgid "A new stocktake report is available for download" -msgstr "" +msgstr "有新的庫存盤點報告可供下載" #: part/tasks.py:37 msgid "Low stock notification" -msgstr "" +msgstr "低庫存通知" #: part/tasks.py:39 #, python-brace-format msgid "The available stock for {part.name} has fallen below the configured minimum level" -msgstr "" +msgstr "可用的 {part.name}庫存已經跌到設置的最低值" #: part/templates/part/bom.html:6 msgid "You do not have permission to edit the BOM." -msgstr "" +msgstr "沒有權限編輯物料清單" #: part/templates/part/bom.html:15 msgid "The BOM this part has been changed, and must be validated" -msgstr "" +msgstr "此物料清單中的零件已被更改,必須驗證" #: part/templates/part/bom.html:17 #, python-format msgid "This BOM was last checked by %(checker)s on %(check_date)s" -msgstr "" +msgstr "物料清單最近被%(checker)s於%(check_date)s 修改" #: part/templates/part/bom.html:21 msgid "This BOM has not been validated." -msgstr "" +msgstr "物料清單己失效" #: part/templates/part/category.html:32 msgid "Perform stocktake for this part category" -msgstr "" +msgstr "對此類零件做庫存盤點" #: part/templates/part/category.html:38 part/templates/part/category.html:42 msgid "You are subscribed to notifications for this category" -msgstr "" +msgstr "您已訂閲此類別的通知" #: part/templates/part/category.html:46 msgid "Subscribe to notifications for this category" -msgstr "" +msgstr "訂閲此類別的通知" #: part/templates/part/category.html:52 msgid "Category Actions" -msgstr "" +msgstr "類別操作" #: part/templates/part/category.html:57 msgid "Edit category" -msgstr "" +msgstr "編輯類別" #: part/templates/part/category.html:58 msgid "Edit Category" -msgstr "" +msgstr "編輯類別" #: part/templates/part/category.html:62 msgid "Delete category" -msgstr "" +msgstr "刪除類別" #: part/templates/part/category.html:63 msgid "Delete Category" -msgstr "" +msgstr "刪除類別" #: part/templates/part/category.html:99 msgid "Top level part category" -msgstr "" +msgstr "最高級零件類別" #: part/templates/part/category.html:124 msgid "Parts (Including subcategories)" -msgstr "" +msgstr "零件 (包括子類別)" #: part/templates/part/category.html:162 msgid "Create new part" -msgstr "" +msgstr "新建零件" #: part/templates/part/category.html:163 templates/js/translated/bom.js:444 msgid "New Part" -msgstr "" +msgstr "新零件" #: part/templates/part/category.html:189 #: templates/InvenTree/settings/part_parameters.html:7 #: templates/InvenTree/settings/sidebar.html:49 msgid "Part Parameters" -msgstr "" +msgstr "零件參數" #: part/templates/part/category.html:208 msgid "Create new part category" -msgstr "" +msgstr "新建零件類別" #: part/templates/part/category.html:209 msgid "New Category" -msgstr "" +msgstr "新建類別" #: part/templates/part/category_sidebar.html:13 msgid "Import Parts" -msgstr "" +msgstr "導入零件" #: part/templates/part/copy_part.html:10 #, python-format msgid "Make a copy of part '%(full_name)s'." -msgstr "" +msgstr "製作一個 '%(full_name)s'零件的副本." #: part/templates/part/copy_part.html:14 #: part/templates/part/create_part.html:11 msgid "Possible Matching Parts" -msgstr "" +msgstr "可能的匹配零件" #: part/templates/part/copy_part.html:15 #: part/templates/part/create_part.html:12 msgid "The new part may be a duplicate of these existing parts" -msgstr "" +msgstr "新零件可能與這些現有零件重複。" #: part/templates/part/create_part.html:17 #, python-format msgid "%(full_name)s - %(desc)s (%(match_per)s%% match)" -msgstr "" +msgstr "%(full_name)s - %(desc)s (%(match_per)s%% 匹配)" #: part/templates/part/detail.html:20 msgid "Part Stock" -msgstr "" +msgstr "零件庫存" #: part/templates/part/detail.html:44 msgid "Refresh scheduling data" -msgstr "" +msgstr "刷新排產數據" #: part/templates/part/detail.html:45 part/templates/part/prices.html:15 #: templates/js/translated/tables.js:552 msgid "Refresh" -msgstr "" +msgstr "刷新" #: part/templates/part/detail.html:66 msgid "Add stocktake information" -msgstr "" +msgstr "添加盤點信息" #: part/templates/part/detail.html:67 part/templates/part/part_sidebar.html:50 -#: stock/admin.py:255 templates/InvenTree/settings/part_stocktake.html:30 +#: stock/admin.py:256 templates/InvenTree/settings/part_stocktake.html:30 #: templates/InvenTree/settings/sidebar.html:53 -#: templates/js/translated/stock.js:2301 users/models.py:204 +#: templates/js/translated/stock.js:2302 users/models.py:204 msgid "Stocktake" -msgstr "" +msgstr "庫存盤點" #: part/templates/part/detail.html:83 msgid "Part Test Templates" -msgstr "" +msgstr "零件測試模板" #: part/templates/part/detail.html:88 msgid "Add Test Template" -msgstr "" +msgstr "添加測試模板" #: part/templates/part/detail.html:106 msgid "Part Test Statistics" -msgstr "" +msgstr "零件測試統計" #: part/templates/part/detail.html:155 stock/templates/stock/item.html:49 msgid "Sales Order Allocations" -msgstr "" +msgstr "分配銷售訂單" #: part/templates/part/detail.html:172 msgid "Part Notes" -msgstr "" +msgstr "零件備註" #: part/templates/part/detail.html:187 msgid "Part Variants" -msgstr "" +msgstr "零件變體" #: part/templates/part/detail.html:191 msgid "Create new variant" -msgstr "" +msgstr "創建零件變體" #: part/templates/part/detail.html:192 msgid "New Variant" -msgstr "" +msgstr "新建零件變體" #: part/templates/part/detail.html:215 msgid "Add new parameter" -msgstr "" +msgstr "添加參數" #: part/templates/part/detail.html:248 part/templates/part/part_sidebar.html:60 msgid "Related Parts" -msgstr "" +msgstr "關聯零件" #: part/templates/part/detail.html:252 part/templates/part/detail.html:253 msgid "Add Related" -msgstr "" +msgstr "添加關聯" #: part/templates/part/detail.html:271 part/templates/part/part_sidebar.html:17 #: report/templates/report/inventree_bill_of_materials_report.html:100 msgid "Bill of Materials" -msgstr "" +msgstr "物料清單" #: part/templates/part/detail.html:276 msgid "Export actions" -msgstr "" +msgstr "輸出操作" #: part/templates/part/detail.html:280 templates/js/translated/bom.js:340 msgid "Export BOM" -msgstr "" +msgstr "輸出物料清單" #: part/templates/part/detail.html:282 msgid "Print BOM Report" -msgstr "" +msgstr "打印物料清單" #: part/templates/part/detail.html:288 msgid "BOM actions" -msgstr "" +msgstr "物料清單操作" #: part/templates/part/detail.html:292 msgid "Upload BOM" -msgstr "" +msgstr "上傳物料清單" #: part/templates/part/detail.html:294 msgid "Validate BOM" -msgstr "" +msgstr "驗證物料清單" #: part/templates/part/detail.html:299 part/templates/part/detail.html:300 #: templates/js/translated/bom.js:1320 templates/js/translated/bom.js:1321 msgid "Add BOM Item" -msgstr "" +msgstr "添加物料清單項" #: part/templates/part/detail.html:313 msgid "Assemblies" -msgstr "" +msgstr "裝配" #: part/templates/part/detail.html:329 msgid "Part Builds" -msgstr "" +msgstr "零件組裝" #: part/templates/part/detail.html:354 stock/templates/stock/item.html:36 msgid "Build Order Allocations" -msgstr "" +msgstr "分配生產訂單" #: part/templates/part/detail.html:368 msgid "Part Suppliers" -msgstr "" +msgstr "零件供應商" #: part/templates/part/detail.html:388 msgid "Part Manufacturers" -msgstr "" +msgstr "零件製造商" #: part/templates/part/detail.html:672 msgid "Related Part" -msgstr "" +msgstr "關聯零件" #: part/templates/part/detail.html:680 msgid "Add Related Part" -msgstr "" +msgstr "添加關聯零件" #: part/templates/part/detail.html:765 msgid "Add Test Result Template" -msgstr "" +msgstr "添加測試結果模板" #: part/templates/part/import_wizard/ajax_part_upload.html:29 #: part/templates/part/import_wizard/part_upload.html:14 msgid "Insufficient privileges." -msgstr "" +msgstr "權限不足" #: part/templates/part/import_wizard/part_upload.html:8 msgid "Return to Parts" -msgstr "" +msgstr "返回零件" #: part/templates/part/import_wizard/part_upload.html:13 msgid "Import Parts from File" -msgstr "" +msgstr "從文件導入零件" #: part/templates/part/import_wizard/part_upload.html:31 msgid "Requirements for part import" -msgstr "" +msgstr "零件導入要求" #: part/templates/part/import_wizard/part_upload.html:33 msgid "The part import file must contain the required named columns as provided in the " -msgstr "" +msgstr "零件導入文件必須包含中提供的所需命名列 " #: part/templates/part/import_wizard/part_upload.html:33 msgid "Part Import Template" -msgstr "" +msgstr "零件導入模板" #: part/templates/part/import_wizard/part_upload.html:89 msgid "Download Part Import Template" -msgstr "" +msgstr "下載零件導入模板" #: part/templates/part/import_wizard/part_upload.html:92 #: templates/js/translated/bom.js:309 templates/js/translated/bom.js:343 #: templates/js/translated/order.js:154 templates/js/translated/tables.js:189 msgid "Format" -msgstr "" +msgstr "格式" #: part/templates/part/import_wizard/part_upload.html:93 #: templates/js/translated/bom.js:310 templates/js/translated/bom.js:344 #: templates/js/translated/order.js:155 msgid "Select file format" -msgstr "" +msgstr "選擇文件格式" #: part/templates/part/part_app_base.html:12 msgid "Part List" -msgstr "" +msgstr "零件列表" -#: part/templates/part/part_base.html:25 part/templates/part/part_base.html:29 +#: part/templates/part/part_base.html:26 part/templates/part/part_base.html:30 msgid "You are subscribed to notifications for this part" -msgstr "" +msgstr "您已訂閲此零件的通知" -#: part/templates/part/part_base.html:33 +#: part/templates/part/part_base.html:34 msgid "Subscribe to notifications for this part" -msgstr "" +msgstr "訂閲此零件的通知" -#: part/templates/part/part_base.html:52 +#: part/templates/part/part_base.html:53 #: stock/templates/stock/item_base.html:62 -#: stock/templates/stock/location.html:71 templates/js/translated/label.js:136 +#: stock/templates/stock/location.html:72 templates/js/translated/label.js:136 msgid "Print Label" -msgstr "" +msgstr "打印標籤" -#: part/templates/part/part_base.html:58 +#: part/templates/part/part_base.html:59 msgid "Show pricing information" -msgstr "" +msgstr "顯示定價信息" -#: part/templates/part/part_base.html:63 -#: stock/templates/stock/item_base.html:110 -#: stock/templates/stock/location.html:80 +#: part/templates/part/part_base.html:64 +#: stock/templates/stock/item_base.html:107 +#: stock/templates/stock/location.html:81 msgid "Stock actions" -msgstr "" +msgstr "庫存操作" -#: part/templates/part/part_base.html:70 +#: part/templates/part/part_base.html:71 msgid "Count part stock" -msgstr "" +msgstr "清點零件庫存" -#: part/templates/part/part_base.html:76 +#: part/templates/part/part_base.html:77 msgid "Transfer part stock" -msgstr "" +msgstr "轉移零件庫存" -#: part/templates/part/part_base.html:91 templates/js/translated/part.js:2299 +#: part/templates/part/part_base.html:92 templates/js/translated/part.js:2299 msgid "Part actions" -msgstr "" +msgstr "零件操作" -#: part/templates/part/part_base.html:94 +#: part/templates/part/part_base.html:95 msgid "Duplicate part" -msgstr "" +msgstr "重複的零件" -#: part/templates/part/part_base.html:97 +#: part/templates/part/part_base.html:98 msgid "Edit part" -msgstr "" +msgstr "編輯零件" -#: part/templates/part/part_base.html:100 +#: part/templates/part/part_base.html:101 msgid "Delete part" -msgstr "" +msgstr "刪除零件" -#: part/templates/part/part_base.html:119 +#: part/templates/part/part_base.html:120 msgid "Part is a template part (variants can be made from this part)" -msgstr "" +msgstr "這個零件是一個模板零件 (變體可以從中生成)" -#: part/templates/part/part_base.html:123 +#: part/templates/part/part_base.html:124 msgid "Part can be assembled from other parts" -msgstr "" +msgstr "零件可以由其他零件裝配" -#: part/templates/part/part_base.html:127 +#: part/templates/part/part_base.html:128 msgid "Part can be used in assemblies" -msgstr "" +msgstr "零件可以用於裝配" -#: part/templates/part/part_base.html:131 +#: part/templates/part/part_base.html:132 msgid "Part stock is tracked by serial number" -msgstr "" +msgstr "零件庫存是通過序列號追蹤的" -#: part/templates/part/part_base.html:135 +#: part/templates/part/part_base.html:136 msgid "Part can be purchased from external suppliers" -msgstr "" +msgstr "零件可以從外部供應商處購買" -#: part/templates/part/part_base.html:139 +#: part/templates/part/part_base.html:140 msgid "Part can be sold to customers" -msgstr "" +msgstr "零件可以銷售給客户" -#: part/templates/part/part_base.html:145 +#: part/templates/part/part_base.html:146 msgid "Part is not active" -msgstr "" +msgstr "零件未激活" -#: part/templates/part/part_base.html:153 +#: part/templates/part/part_base.html:154 msgid "Part is virtual (not a physical part)" -msgstr "" +msgstr "零件是虛擬的(不是實體零件)" -#: part/templates/part/part_base.html:163 -#: part/templates/part/part_base.html:690 +#: part/templates/part/part_base.html:164 +#: part/templates/part/part_base.html:698 msgid "Show Part Details" -msgstr "" +msgstr "顯示零件詳情" #: part/templates/part/part_base.html:218 -#: stock/templates/stock/item_base.html:388 +msgid "Required for Orders" +msgstr "訂單所需的" + +#: part/templates/part/part_base.html:226 +#: stock/templates/stock/item_base.html:385 msgid "Allocated to Build Orders" -msgstr "" +msgstr "分配到生產訂單" -#: part/templates/part/part_base.html:227 -#: stock/templates/stock/item_base.html:381 +#: part/templates/part/part_base.html:235 +#: stock/templates/stock/item_base.html:378 msgid "Allocated to Sales Orders" -msgstr "" +msgstr "分配到銷售訂單" -#: part/templates/part/part_base.html:300 +#: part/templates/part/part_base.html:308 msgid "Minimum stock level" -msgstr "" +msgstr "最低庫存水平" -#: part/templates/part/part_base.html:331 templates/js/translated/bom.js:1071 +#: part/templates/part/part_base.html:339 templates/js/translated/bom.js:1071 #: templates/js/translated/part.js:1271 templates/js/translated/part.js:2463 #: templates/js/translated/pricing.js:391 -#: templates/js/translated/pricing.js:1054 +#: templates/js/translated/pricing.js:1052 msgid "Price Range" -msgstr "" +msgstr "價格範圍" -#: part/templates/part/part_base.html:361 +#: part/templates/part/part_base.html:369 msgid "Latest Serial Number" -msgstr "" +msgstr "最新序列號" -#: part/templates/part/part_base.html:365 -#: stock/templates/stock/item_base.html:322 +#: part/templates/part/part_base.html:373 +#: stock/templates/stock/item_base.html:319 msgid "Search for serial number" -msgstr "" +msgstr "搜索序列號" -#: part/templates/part/part_base.html:453 +#: part/templates/part/part_base.html:461 msgid "Part QR Code" -msgstr "" +msgstr "零件二維碼" -#: part/templates/part/part_base.html:470 +#: part/templates/part/part_base.html:478 msgid "Link Barcode to Part" -msgstr "" +msgstr "關聯條形碼到零件" -#: part/templates/part/part_base.html:520 +#: part/templates/part/part_base.html:528 msgid "Calculate" -msgstr "" +msgstr "計算" -#: part/templates/part/part_base.html:537 +#: part/templates/part/part_base.html:545 msgid "Remove associated image from this part" -msgstr "" +msgstr "刪除與零件關聯的圖片" -#: part/templates/part/part_base.html:588 +#: part/templates/part/part_base.html:596 msgid "No matching images found" -msgstr "" +msgstr "沒有找到匹配的圖片" -#: part/templates/part/part_base.html:684 +#: part/templates/part/part_base.html:692 msgid "Hide Part Details" -msgstr "" +msgstr "隱藏零件詳細信息" #: part/templates/part/part_pricing.html:22 part/templates/part/prices.html:76 #: part/templates/part/prices.html:227 templates/js/translated/pricing.js:485 msgid "Supplier Pricing" -msgstr "" +msgstr "供應商價格" #: part/templates/part/part_pricing.html:26 #: part/templates/part/part_pricing.html:52 #: part/templates/part/part_pricing.html:95 #: part/templates/part/part_pricing.html:110 msgid "Unit Cost" -msgstr "" +msgstr "單位成本" #: part/templates/part/part_pricing.html:40 msgid "No supplier pricing available" -msgstr "" +msgstr "沒有可用的供應商價格" #: part/templates/part/part_pricing.html:48 part/templates/part/prices.html:90 #: part/templates/part/prices.html:250 msgid "BOM Pricing" -msgstr "" +msgstr "物料清單價格" #: part/templates/part/part_pricing.html:66 msgid "Unit Purchase Price" -msgstr "" +msgstr "單位採購價" #: part/templates/part/part_pricing.html:72 msgid "Total Purchase Price" -msgstr "" +msgstr "採購總價" #: part/templates/part/part_pricing.html:83 msgid "No BOM pricing available" -msgstr "" +msgstr "沒有可用的物料清單價格" #: part/templates/part/part_pricing.html:92 msgid "Internal Price" -msgstr "" +msgstr "內部價格" #: part/templates/part/part_pricing.html:123 msgid "No pricing information is available for this part." -msgstr "" +msgstr "此零件無價格信息可用。" #: part/templates/part/part_scheduling.html:14 msgid "Scheduled Quantity" -msgstr "" +msgstr "排產數量" #: part/templates/part/part_sidebar.html:11 msgid "Variants" -msgstr "" +msgstr "變體" #: part/templates/part/part_sidebar.html:14 -#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:21 +#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:22 #: stock/templates/stock/stock_app_base.html:10 #: templates/InvenTree/search.html:153 #: templates/InvenTree/settings/sidebar.html:51 #: templates/js/translated/part.js:1249 templates/js/translated/part.js:2152 #: templates/js/translated/part.js:2411 templates/js/translated/stock.js:1066 -#: templates/js/translated/stock.js:2155 templates/navbar.html:31 +#: templates/js/translated/stock.js:2156 templates/navbar.html:31 msgid "Stock" -msgstr "" +msgstr "庫存" #: part/templates/part/part_sidebar.html:30 #: templates/InvenTree/settings/sidebar.html:39 msgid "Pricing" -msgstr "" +msgstr "定價" #: part/templates/part/part_sidebar.html:44 msgid "Scheduling" -msgstr "" +msgstr "排產" #: part/templates/part/part_sidebar.html:54 msgid "Test Templates" -msgstr "" +msgstr "測試模板" #: part/templates/part/part_thumb.html:11 msgid "Select from existing images" -msgstr "" +msgstr "從現存圖片選擇" #: part/templates/part/prices.html:11 msgid "Pricing Overview" -msgstr "" +msgstr "價格概覽" #: part/templates/part/prices.html:14 msgid "Refresh Part Pricing" -msgstr "" +msgstr "更新零件價格" #: part/templates/part/prices.html:17 msgid "Override Part Pricing" -msgstr "" +msgstr "覆蓋零件價格" #: part/templates/part/prices.html:18 #: templates/InvenTree/settings/settings_staff_js.html:80 #: templates/InvenTree/settings/user.html:24 -#: templates/js/translated/helpers.js:103 +#: templates/js/translated/helpers.js:104 #: templates/js/translated/pricing.js:628 templates/notes_buttons.html:3 #: templates/notes_buttons.html:4 msgid "Edit" -msgstr "" +msgstr "編輯" -#: part/templates/part/prices.html:28 stock/admin.py:251 -#: stock/templates/stock/item_base.html:446 -#: templates/js/translated/company.js:1703 -#: templates/js/translated/company.js:1713 -#: templates/js/translated/stock.js:2331 +#: part/templates/part/prices.html:28 stock/admin.py:252 +#: stock/templates/stock/item_base.html:443 +#: templates/js/translated/company.js:1704 +#: templates/js/translated/company.js:1714 +#: templates/js/translated/stock.js:2332 msgid "Last Updated" -msgstr "" +msgstr "最近更新" #: part/templates/part/prices.html:37 part/templates/part/prices.html:127 msgid "Price Category" -msgstr "" +msgstr "價格類別" #: part/templates/part/prices.html:38 part/templates/part/prices.html:128 msgid "Minimum" -msgstr "" +msgstr "最小值" #: part/templates/part/prices.html:39 part/templates/part/prices.html:129 msgid "Maximum" -msgstr "" +msgstr "最大值" #: part/templates/part/prices.html:51 part/templates/part/prices.html:174 msgid "Internal Pricing" -msgstr "" +msgstr "內部價格" #: part/templates/part/prices.html:64 part/templates/part/prices.html:206 msgid "Purchase History" -msgstr "" +msgstr "購買歷史" #: part/templates/part/prices.html:98 part/templates/part/prices.html:274 msgid "Variant Pricing" -msgstr "" +msgstr "變體價格" #: part/templates/part/prices.html:106 msgid "Pricing Overrides" -msgstr "" +msgstr "定價覆蓋" #: part/templates/part/prices.html:113 msgid "Overall Pricing" -msgstr "" +msgstr "總價" #: part/templates/part/prices.html:149 part/templates/part/prices.html:326 msgid "Sale History" -msgstr "" +msgstr "銷售歷史" #: part/templates/part/prices.html:157 msgid "Sale price data is not available for this part" -msgstr "" +msgstr "該零件的售出價格數據不可用" #: part/templates/part/prices.html:164 msgid "Price range data is not available for this part." -msgstr "" +msgstr "此零件價格範圍數據不可用" #: part/templates/part/prices.html:175 part/templates/part/prices.html:207 #: part/templates/part/prices.html:228 part/templates/part/prices.html:251 #: part/templates/part/prices.html:275 part/templates/part/prices.html:298 #: part/templates/part/prices.html:327 msgid "Jump to overview" -msgstr "" +msgstr "跳轉到總覽圖" #: part/templates/part/prices.html:180 msgid "Add Internal Price Break" -msgstr "" +msgstr "添加內部批發價" #: part/templates/part/prices.html:297 msgid "Sale Pricing" -msgstr "" +msgstr "售出價格" #: part/templates/part/prices.html:303 msgid "Add Sell Price Break" -msgstr "" +msgstr "添加售出批發價" #: part/templates/part/pricing_javascript.html:24 msgid "Update Pricing" -msgstr "" +msgstr "更新價格" #: part/templates/part/stock_count.html:7 -#: templates/js/translated/model_renderers.js:228 +#: templates/js/translated/model_renderers.js:231 #: templates/js/translated/part.js:707 templates/js/translated/part.js:2147 #: templates/js/translated/part.js:2149 msgid "No Stock" -msgstr "" +msgstr "無庫存" #: part/templates/part/stock_count.html:9 templates/InvenTree/index.html:120 msgid "Low Stock" -msgstr "" +msgstr "低庫存" #: part/templates/part/upload_bom.html:8 msgid "Return to BOM" -msgstr "" +msgstr "返回物料清單" #: part/templates/part/upload_bom.html:13 msgid "Upload Bill of Materials" -msgstr "" +msgstr "上傳材料單" #: part/templates/part/upload_bom.html:19 msgid "BOM upload requirements" -msgstr "" +msgstr "物料清單上傳要求" #: part/templates/part/upload_bom.html:23 #: part/templates/part/upload_bom.html:90 msgid "Upload BOM File" -msgstr "" +msgstr "上傳 物料清單 文件" #: part/templates/part/upload_bom.html:29 msgid "Submit BOM Data" -msgstr "" +msgstr "提交 物料清單 數據" #: part/templates/part/upload_bom.html:37 msgid "Requirements for BOM upload" -msgstr "" +msgstr "物料清單 上傳要求" #: part/templates/part/upload_bom.html:39 msgid "The BOM file must contain the required named columns as provided in the " -msgstr "" +msgstr "物料清單表文件必須包含中提供的所需命名列 " #: part/templates/part/upload_bom.html:39 msgid "BOM Upload Template" -msgstr "" +msgstr "物料清單 上傳模板" #: part/templates/part/upload_bom.html:40 msgid "Each part must already exist in the database" -msgstr "" +msgstr "每個零件必須已經存在於數據庫中" #: part/templates/part/variant_part.html:9 msgid "Create new part variant" -msgstr "" +msgstr "創建新的零件變體" #: part/templates/part/variant_part.html:10 msgid "Create a new variant part from this template" -msgstr "" +msgstr "從此模板創建一個新的變體零件" #: part/views.py:111 msgid "Match References" -msgstr "" +msgstr "匹配參考" #: part/views.py:275 #, python-brace-format msgid "Can't import part {new_part.name} because there is no category assigned" -msgstr "" +msgstr "無法導入零件 {new_part.name} ,因為沒有指定類別" #: part/views.py:425 msgid "Select Part Image" -msgstr "" +msgstr "選擇零件圖片" #: part/views.py:448 msgid "Updated part image" -msgstr "" +msgstr "更新零件圖片" #: part/views.py:451 msgid "Part image not found" -msgstr "" +msgstr "未找到零件圖片" #: part/views.py:545 msgid "Part Pricing" -msgstr "" +msgstr "零件價格" -#: plugin/api.py:172 +#: plugin/api.py:175 msgid "Plugin cannot be deleted as it is currently active" -msgstr "" +msgstr "插件不能被刪除,因為它當前處於激活狀態" #: plugin/base/action/api.py:32 msgid "No action specified" -msgstr "" +msgstr "未指定操作" #: plugin/base/action/api.py:41 msgid "No matching action found" -msgstr "" +msgstr "未找到指定操作" -#: plugin/base/barcodes/api.py:125 plugin/base/barcodes/api.py:371 -#: plugin/base/barcodes/api.py:546 +#: plugin/base/barcodes/api.py:203 msgid "No match found for barcode data" -msgstr "" +msgstr "未找到匹配條形碼數據" -#: plugin/base/barcodes/api.py:129 +#: plugin/base/barcodes/api.py:207 msgid "Match found for barcode data" -msgstr "" +msgstr "找到匹配條形碼數據" -#: plugin/base/barcodes/api.py:163 plugin/base/barcodes/serializers.py:45 +#: plugin/base/barcodes/api.py:245 plugin/base/barcodes/serializers.py:72 msgid "Model is not supported" -msgstr "" +msgstr "不支持模型" -#: plugin/base/barcodes/api.py:168 +#: plugin/base/barcodes/api.py:250 msgid "Model instance not found" -msgstr "" +msgstr "找不到模型實例" -#: plugin/base/barcodes/api.py:197 -#: templates/js/translated/purchase_order.js:1468 +#: plugin/base/barcodes/api.py:279 +#: templates/js/translated/purchase_order.js:1452 msgid "Barcode matches existing item" -msgstr "" +msgstr "條形碼匹配現有項目" -#: plugin/base/barcodes/api.py:336 +#: plugin/base/barcodes/api.py:418 msgid "No matching part data found" -msgstr "" +msgstr "沒有找到匹配的零件數據" -#: plugin/base/barcodes/api.py:353 +#: plugin/base/barcodes/api.py:434 msgid "No matching supplier parts found" -msgstr "" +msgstr "沒有找到匹配的供應商零件" -#: plugin/base/barcodes/api.py:357 +#: plugin/base/barcodes/api.py:437 msgid "Multiple matching supplier parts found" -msgstr "" +msgstr "找到多個匹配的供應商零件" -#: plugin/base/barcodes/api.py:381 +#: plugin/base/barcodes/api.py:450 plugin/base/barcodes/api.py:664 +msgid "No matching plugin found for barcode data" +msgstr "沒有找到匹配條碼數據的插件" + +#: plugin/base/barcodes/api.py:460 msgid "Matched supplier part" -msgstr "" +msgstr "匹配的供應商零件" -#: plugin/base/barcodes/api.py:430 +#: plugin/base/barcodes/api.py:525 msgid "Item has already been received" -msgstr "" +msgstr "項目已被接收" -#: plugin/base/barcodes/api.py:467 +#: plugin/base/barcodes/api.py:563 msgid "No match for supplier barcode" -msgstr "" +msgstr "供應商條形碼沒有匹配" -#: plugin/base/barcodes/api.py:510 +#: plugin/base/barcodes/api.py:612 msgid "Multiple matching line items found" -msgstr "" +msgstr "找到多個匹配的行項目" -#: plugin/base/barcodes/api.py:513 +#: plugin/base/barcodes/api.py:615 msgid "No matching line item found" -msgstr "" +msgstr "未找到匹配的行項目" -#: plugin/base/barcodes/api.py:551 plugin/base/barcodes/api.py:558 +#: plugin/base/barcodes/api.py:661 +msgid "No sales order provided" +msgstr "未提供銷售訂單" + +#: plugin/base/barcodes/api.py:670 msgid "Barcode does not match an existing stock item" -msgstr "" +msgstr "條形碼與現有的庫存項不匹配" -#: plugin/base/barcodes/api.py:569 +#: plugin/base/barcodes/api.py:686 msgid "Stock item does not match line item" -msgstr "" +msgstr "庫存項與行項目不匹配" -#: plugin/base/barcodes/api.py:593 templates/js/translated/build.js:2780 -#: templates/js/translated/sales_order.js:1953 +#: plugin/base/barcodes/api.py:716 templates/js/translated/build.js:2798 +#: templates/js/translated/sales_order.js:1934 msgid "Insufficient stock available" -msgstr "" +msgstr "可用庫存不足" -#: plugin/base/barcodes/api.py:602 +#: plugin/base/barcodes/api.py:729 msgid "Stock item allocated to sales order" -msgstr "" +msgstr "庫存項已分配到銷售訂單" -#: plugin/base/barcodes/api.py:606 +#: plugin/base/barcodes/api.py:732 msgid "Not enough information" -msgstr "" +msgstr "沒有足夠的信息" #: plugin/base/barcodes/mixins.py:172 plugin/base/barcodes/mixins.py:204 msgid "Found multiple matching supplier parts for barcode" -msgstr "" +msgstr "發現多個與條形碼匹配的供應商零件" #: plugin/base/barcodes/mixins.py:222 #, python-brace-format msgid "Found multiple purchase orders matching '{order}'" -msgstr "" +msgstr "找到多個匹配的採購訂單 '{order}'" #: plugin/base/barcodes/mixins.py:226 #, python-brace-format msgid "No matching purchase order for '{order}'" -msgstr "" +msgstr "沒有找到匹配的採購訂單 '{order}'" #: plugin/base/barcodes/mixins.py:231 msgid "Purchase order does not match supplier" -msgstr "" +msgstr "採購訂單不匹配供應商" -#: plugin/base/barcodes/mixins.py:465 +#: plugin/base/barcodes/mixins.py:467 msgid "Failed to find pending line item for supplier part" -msgstr "" +msgstr "未找到供應商零件待處理行項目" -#: plugin/base/barcodes/mixins.py:496 +#: plugin/base/barcodes/mixins.py:498 msgid "Further information required to receive line item" -msgstr "" +msgstr "需要更多信息以接收行項目" -#: plugin/base/barcodes/mixins.py:504 +#: plugin/base/barcodes/mixins.py:506 msgid "Received purchase order line item" -msgstr "" +msgstr "已收到採購訂單行項目" -#: plugin/base/barcodes/serializers.py:21 +#: plugin/base/barcodes/serializers.py:48 msgid "Scanned barcode data" -msgstr "" +msgstr "已掃描的條形碼數據" -#: plugin/base/barcodes/serializers.py:30 +#: plugin/base/barcodes/serializers.py:57 msgid "Model name to generate barcode for" -msgstr "" +msgstr "要生成條形碼的模型名稱" -#: plugin/base/barcodes/serializers.py:35 +#: plugin/base/barcodes/serializers.py:62 msgid "Primary key of model object to generate barcode for" -msgstr "" +msgstr "要生成條形碼的模型對象的主鍵" -#: plugin/base/barcodes/serializers.py:105 +#: plugin/base/barcodes/serializers.py:132 msgid "Purchase Order to allocate items against" -msgstr "" +msgstr "根據採購訂單以分配項目" -#: plugin/base/barcodes/serializers.py:111 +#: plugin/base/barcodes/serializers.py:138 msgid "Purchase order is not pending" -msgstr "" +msgstr "採購訂單未處理" -#: plugin/base/barcodes/serializers.py:129 +#: plugin/base/barcodes/serializers.py:156 msgid "PurchaseOrder to receive items against" -msgstr "" +msgstr "根據採購訂單以接收項目" -#: plugin/base/barcodes/serializers.py:135 +#: plugin/base/barcodes/serializers.py:162 msgid "Purchase order has not been placed" -msgstr "" +msgstr "採購訂單尚未提交" -#: plugin/base/barcodes/serializers.py:143 +#: plugin/base/barcodes/serializers.py:170 msgid "Location to receive items into" -msgstr "" +msgstr "項目接收地點" -#: plugin/base/barcodes/serializers.py:149 +#: plugin/base/barcodes/serializers.py:176 msgid "Cannot select a structural location" -msgstr "" - -#: plugin/base/barcodes/serializers.py:163 -msgid "Sales Order to allocate items against" -msgstr "" - -#: plugin/base/barcodes/serializers.py:169 -msgid "Sales order is not pending" -msgstr "" - -#: plugin/base/barcodes/serializers.py:177 -msgid "Sales order line item to allocate items against" -msgstr "" - -#: plugin/base/barcodes/serializers.py:184 -msgid "Sales order shipment to allocate items against" -msgstr "" +msgstr "無法選擇一個結構性位置" #: plugin/base/barcodes/serializers.py:190 -msgid "Shipment has already been delivered" -msgstr "" +msgid "Sales Order to allocate items against" +msgstr "根據銷售訂單以分配項目" -#: plugin/base/barcodes/serializers.py:195 +#: plugin/base/barcodes/serializers.py:196 +msgid "Sales order is not pending" +msgstr "銷售訂單未掛起" + +#: plugin/base/barcodes/serializers.py:204 +msgid "Sales order line item to allocate items against" +msgstr "根據銷售訂單行項目分配項目" + +#: plugin/base/barcodes/serializers.py:211 +msgid "Sales order shipment to allocate items against" +msgstr "根據銷售訂單配送分配項目" + +#: plugin/base/barcodes/serializers.py:217 +msgid "Shipment has already been delivered" +msgstr "已交付" + +#: plugin/base/barcodes/serializers.py:222 msgid "Quantity to allocate" -msgstr "" +msgstr "待分配數" #: plugin/base/label/label.py:39 templates/js/translated/label.js:148 msgid "Label printing failed" -msgstr "" +msgstr "標籤打印失敗" #: plugin/base/label/mixins.py:54 msgid "Error rendering label to PDF" -msgstr "" +msgstr "渲染標籤到 PDF 時出錯" #: plugin/base/label/mixins.py:68 msgid "Error rendering label to HTML" -msgstr "" +msgstr "渲染標籤到 HTML 時出錯" #: plugin/base/label/mixins.py:149 msgid "No items provided to print" +msgstr "沒有要打印的項目" + +#: plugin/base/ui/serializers.py:30 +msgid "Plugin Name" msgstr "" +#: plugin/base/ui/serializers.py:34 +msgid "Feature Type" +msgstr "功能類別" + +#: plugin/base/ui/serializers.py:39 +msgid "Feature Label" +msgstr "" + +#: plugin/base/ui/serializers.py:44 +msgid "Feature Title" +msgstr "" + +#: plugin/base/ui/serializers.py:49 +msgid "Feature Description" +msgstr "" + +#: plugin/base/ui/serializers.py:54 +msgid "Feature Icon" +msgstr "" + +#: plugin/base/ui/serializers.py:58 +msgid "Feature Options" +msgstr "特色選項" + +#: plugin/base/ui/serializers.py:61 +msgid "Feature Context" +msgstr "" + +#: plugin/base/ui/serializers.py:64 +msgid "Feature Source (javascript)" +msgstr "功能源 (javascript)" + #: plugin/builtin/barcodes/inventree_barcode.py:27 msgid "InvenTree Barcodes" -msgstr "" +msgstr "InvenTree 條形碼" #: plugin/builtin/barcodes/inventree_barcode.py:28 msgid "Provides native support for barcodes" -msgstr "" +msgstr "提供條形碼本地支持" #: plugin/builtin/barcodes/inventree_barcode.py:30 #: plugin/builtin/integration/core_notifications.py:35 @@ -8696,3067 +8968,3160 @@ msgstr "" #: plugin/builtin/suppliers/digikey.py:19 plugin/builtin/suppliers/lcsc.py:21 #: plugin/builtin/suppliers/mouser.py:19 plugin/builtin/suppliers/tme.py:21 msgid "InvenTree contributors" -msgstr "" +msgstr "InvenTree 貢獻者" #: plugin/builtin/barcodes/inventree_barcode.py:34 msgid "Internal Barcode Format" -msgstr "" +msgstr "條形碼內部格式" #: plugin/builtin/barcodes/inventree_barcode.py:35 msgid "Select an internal barcode format" -msgstr "" +msgstr "選擇內部條形碼格式" #: plugin/builtin/barcodes/inventree_barcode.py:37 msgid "JSON barcodes (human readable)" -msgstr "" +msgstr "JSON 條形碼 (人類可讀)" #: plugin/builtin/barcodes/inventree_barcode.py:38 msgid "Short barcodes (space optimized)" -msgstr "" +msgstr "短條形碼 (空間優化)" #: plugin/builtin/barcodes/inventree_barcode.py:43 msgid "Short Barcode Prefix" -msgstr "" +msgstr "短條形碼前綴" #: plugin/builtin/barcodes/inventree_barcode.py:45 msgid "Customize the prefix used for short barcodes, may be useful for environments with multiple InvenTree instances" -msgstr "" +msgstr "自定義用於短條形碼的前綴,可能對有多個InvenTree實例的環境有用。" #: plugin/builtin/integration/core_notifications.py:34 msgid "InvenTree Notifications" -msgstr "" +msgstr "Inventree 通知" #: plugin/builtin/integration/core_notifications.py:36 msgid "Integrated outgoing notification methods" -msgstr "" +msgstr "集成的輸出通知方法" #: plugin/builtin/integration/core_notifications.py:41 #: plugin/builtin/integration/core_notifications.py:80 msgid "Enable email notifications" -msgstr "" +msgstr "啓用電子郵件通知" #: plugin/builtin/integration/core_notifications.py:42 #: plugin/builtin/integration/core_notifications.py:81 msgid "Allow sending of emails for event notifications" -msgstr "" +msgstr "允許發送事件通知郵件" #: plugin/builtin/integration/core_notifications.py:47 msgid "Enable slack notifications" -msgstr "" +msgstr "啓用slack通知" #: plugin/builtin/integration/core_notifications.py:49 msgid "Allow sending of slack channel messages for event notifications" -msgstr "" +msgstr "允許發送事件通知的 slack 頻道消息" #: plugin/builtin/integration/core_notifications.py:55 msgid "Slack incoming webhook url" -msgstr "" +msgstr "Slack傳入Webhook url" #: plugin/builtin/integration/core_notifications.py:56 msgid "URL that is used to send messages to a slack channel" -msgstr "" +msgstr "用於發送消息到slack頻道的 URL" -#: plugin/builtin/integration/core_notifications.py:164 +#: plugin/builtin/integration/core_notifications.py:166 msgid "Open link" -msgstr "" +msgstr "打開鏈接" #: plugin/builtin/integration/currency_exchange.py:22 msgid "InvenTree Currency Exchange" -msgstr "" +msgstr "InvenTree 貨幣兑換" #: plugin/builtin/integration/currency_exchange.py:23 msgid "Default currency exchange integration" -msgstr "" +msgstr "默認貨幣兑換集成" #: plugin/builtin/labels/inventree_label.py:19 msgid "InvenTree PDF label printer" -msgstr "" +msgstr "InvenTree PDF 標籤打印機" #: plugin/builtin/labels/inventree_label.py:20 msgid "Provides native support for printing PDF labels" -msgstr "" +msgstr "為打印 PDF 標籤提供本機支持" #: plugin/builtin/labels/inventree_label.py:28 #: plugin/builtin/labels/label_sheet.py:69 msgid "Debug mode" -msgstr "" +msgstr "Debug模式" #: plugin/builtin/labels/inventree_label.py:29 #: plugin/builtin/labels/label_sheet.py:70 msgid "Enable debug mode - returns raw HTML instead of PDF" -msgstr "" +msgstr "啓用Debug模式 - 返回原始的 HTML 而不是 PDF" #: plugin/builtin/labels/inventree_machine.py:61 msgid "InvenTree machine label printer" -msgstr "" +msgstr "InvenTree 設備標籤打印機" #: plugin/builtin/labels/inventree_machine.py:62 msgid "Provides support for printing using a machine" -msgstr "" +msgstr "提供使用設備打印的支持" -#: plugin/builtin/labels/inventree_machine.py:149 +#: plugin/builtin/labels/inventree_machine.py:151 msgid "last used" -msgstr "" +msgstr "最近使用" -#: plugin/builtin/labels/inventree_machine.py:166 +#: plugin/builtin/labels/inventree_machine.py:168 msgid "Options" -msgstr "" +msgstr "選項" #: plugin/builtin/labels/label_sheet.py:29 msgid "Page size for the label sheet" -msgstr "" +msgstr "標籤頁大小" #: plugin/builtin/labels/label_sheet.py:34 msgid "Skip Labels" -msgstr "" +msgstr "跳過標籤" #: plugin/builtin/labels/label_sheet.py:35 msgid "Skip this number of labels when printing label sheets" -msgstr "" +msgstr "打印標籤頁時跳過標籤的數量" #: plugin/builtin/labels/label_sheet.py:41 msgid "Border" -msgstr "" +msgstr "邊框" #: plugin/builtin/labels/label_sheet.py:42 msgid "Print a border around each label" -msgstr "" +msgstr "打印每個標籤的邊框" -#: plugin/builtin/labels/label_sheet.py:47 report/models.py:307 +#: plugin/builtin/labels/label_sheet.py:47 report/models.py:315 msgid "Landscape" -msgstr "" +msgstr "橫屏模式" #: plugin/builtin/labels/label_sheet.py:48 msgid "Print the label sheet in landscape mode" -msgstr "" +msgstr "在橫屏模式下打印標籤表" #: plugin/builtin/labels/label_sheet.py:60 msgid "InvenTree Label Sheet Printer" -msgstr "" +msgstr "庫存樹標籤工作表" #: plugin/builtin/labels/label_sheet.py:61 msgid "Arrays multiple labels onto a single sheet" -msgstr "" +msgstr "單張紙上的組合多個標籤" #: plugin/builtin/labels/label_sheet.py:106 msgid "Label is too large for page size" -msgstr "" +msgstr "標籤大過頁面" #: plugin/builtin/labels/label_sheet.py:140 msgid "No labels were generated" -msgstr "" +msgstr "沒有生成標籤" #: plugin/builtin/suppliers/digikey.py:16 msgid "Supplier Integration - DigiKey" -msgstr "" +msgstr "供應商集成 - DigiKey" #: plugin/builtin/suppliers/digikey.py:17 msgid "Provides support for scanning DigiKey barcodes" -msgstr "" +msgstr "為掃描 DigiKey 條形碼提供支持" #: plugin/builtin/suppliers/digikey.py:26 msgid "The Supplier which acts as 'DigiKey'" -msgstr "" +msgstr "作為“DigiKey”的供應商。" #: plugin/builtin/suppliers/lcsc.py:18 msgid "Supplier Integration - LCSC" -msgstr "" +msgstr "供應商集成 - LCSC" #: plugin/builtin/suppliers/lcsc.py:19 msgid "Provides support for scanning LCSC barcodes" -msgstr "" +msgstr "為掃描 LCSC 條形碼提供支持" #: plugin/builtin/suppliers/lcsc.py:27 msgid "The Supplier which acts as 'LCSC'" -msgstr "" +msgstr "作為“LCSC”的供應商。" #: plugin/builtin/suppliers/mouser.py:16 msgid "Supplier Integration - Mouser" -msgstr "" +msgstr "供應商集成 - Mouser" #: plugin/builtin/suppliers/mouser.py:17 msgid "Provides support for scanning Mouser barcodes" -msgstr "" +msgstr "為掃描 Mouser條形碼提供支持" #: plugin/builtin/suppliers/mouser.py:25 msgid "The Supplier which acts as 'Mouser'" -msgstr "" +msgstr "作為“Mouser”的供應商。" #: plugin/builtin/suppliers/tme.py:18 msgid "Supplier Integration - TME" -msgstr "" +msgstr "供應商集成 - TME" #: plugin/builtin/suppliers/tme.py:19 msgid "Provides support for scanning TME barcodes" -msgstr "" +msgstr "為掃描 TME 條形碼提供支持" #: plugin/builtin/suppliers/tme.py:27 msgid "The Supplier which acts as 'TME'" -msgstr "" +msgstr "作為‘TME’的供應商" -#: plugin/installer.py:194 plugin/installer.py:282 +#: plugin/installer.py:199 plugin/installer.py:282 msgid "Only staff users can administer plugins" -msgstr "" +msgstr "只有員工用户可以管理插件" -#: plugin/installer.py:197 +#: plugin/installer.py:202 msgid "Plugin installation is disabled" -msgstr "" +msgstr "插件安裝已禁用" -#: plugin/installer.py:248 +#: plugin/installer.py:246 msgid "Installed plugin successfully" -msgstr "" +msgstr "插件安裝成功" -#: plugin/installer.py:254 +#: plugin/installer.py:251 #, python-brace-format msgid "Installed plugin into {path}" -msgstr "" +msgstr "插件安裝到 {path}" #: plugin/installer.py:273 msgid "Plugin was not found in registry" -msgstr "" +msgstr "在插件倉庫中找不到插件" #: plugin/installer.py:276 msgid "Plugin is not a packaged plugin" -msgstr "" +msgstr "插件不是一個打包的插件" #: plugin/installer.py:279 msgid "Plugin package name not found" -msgstr "" +msgstr "找不到插件包名稱" #: plugin/installer.py:299 msgid "Plugin uninstalling is disabled" -msgstr "" +msgstr "插件卸載已禁用" #: plugin/installer.py:303 msgid "Plugin cannot be uninstalled as it is currently active" -msgstr "" +msgstr "插件無法卸載,因為它目前處於激活狀態" #: plugin/installer.py:316 msgid "Uninstalled plugin successfully" -msgstr "" +msgstr "插件卸載成功" #: plugin/models.py:36 msgid "Plugin Configuration" -msgstr "" +msgstr "插件配置" #: plugin/models.py:37 msgid "Plugin Configurations" -msgstr "" - -#: plugin/models.py:43 users/models.py:100 -msgid "Key" -msgstr "" +msgstr "插件配置" #: plugin/models.py:44 msgid "Key of plugin" -msgstr "" +msgstr "插件的鍵" #: plugin/models.py:52 msgid "PluginName of the plugin" -msgstr "" +msgstr "插件名稱" -#: plugin/models.py:59 plugin/serializers.py:90 +#: plugin/models.py:59 plugin/serializers.py:115 msgid "Package Name" -msgstr "" +msgstr "軟件包名" #: plugin/models.py:61 msgid "Name of the installed package, if the plugin was installed via PIP" -msgstr "" +msgstr "已安裝的軟件包名字,如果插件是通過 PIP 安裝的" #: plugin/models.py:66 msgid "Is the plugin active" -msgstr "" +msgstr "插件是否激活" #: plugin/models.py:157 templates/js/translated/table_filters.js:377 #: templates/js/translated/table_filters.js:525 msgid "Installed" -msgstr "" +msgstr "已安裝" #: plugin/models.py:166 msgid "Sample plugin" -msgstr "" +msgstr "示例插件" #: plugin/models.py:174 msgid "Builtin Plugin" -msgstr "" +msgstr "內置插件" #: plugin/models.py:182 msgid "Package Plugin" -msgstr "" +msgstr "軟件包插件" -#: plugin/models.py:220 report/models.py:474 +#: plugin/models.py:259 report/models.py:482 #: templates/InvenTree/settings/plugin_settings.html:9 #: templates/js/translated/plugin.js:51 msgid "Plugin" -msgstr "" +msgstr "插件" -#: plugin/models.py:267 +#: plugin/models.py:306 msgid "Method" -msgstr "" +msgstr "方法" -#: plugin/plugin.py:270 +#: plugin/plugin.py:275 msgid "No author found" -msgstr "" +msgstr "未找到作者" #: plugin/registry.py:534 #, python-brace-format msgid "Plugin '{p}' is not compatible with the current InvenTree version {v}" -msgstr "" +msgstr "插件 '{p}' 與當前 InvenTree 版本{v} 不兼容" #: plugin/registry.py:537 #, python-brace-format msgid "Plugin requires at least version {v}" -msgstr "" +msgstr "插件所需最低版本 {v}" #: plugin/registry.py:539 #, python-brace-format msgid "Plugin requires at most version {v}" -msgstr "" +msgstr "插件所需最高版本 {v}" #: plugin/samples/integration/sample.py:52 msgid "Enable PO" -msgstr "" +msgstr "啓用 採購功能" #: plugin/samples/integration/sample.py:53 msgid "Enable PO functionality in InvenTree interface" -msgstr "" +msgstr "在 InvenTree 界面中啓用採購功能" #: plugin/samples/integration/sample.py:58 msgid "API Key" -msgstr "" +msgstr "API密鑰" #: plugin/samples/integration/sample.py:59 msgid "Key required for accessing external API" -msgstr "" +msgstr "訪問外部 API 所需的密鑰" #: plugin/samples/integration/sample.py:63 msgid "Numerical" -msgstr "" +msgstr "數字化" #: plugin/samples/integration/sample.py:64 msgid "A numerical setting" -msgstr "" +msgstr "數值設置" #: plugin/samples/integration/sample.py:69 msgid "Choice Setting" -msgstr "" +msgstr "選擇設置" #: plugin/samples/integration/sample.py:70 msgid "A setting with multiple choices" -msgstr "" +msgstr "帶有多個選項的設置" #: plugin/samples/integration/sample_currency_exchange.py:15 msgid "Sample currency exchange plugin" -msgstr "" +msgstr "貨幣兑換插件示例" #: plugin/samples/integration/sample_currency_exchange.py:18 msgid "InvenTree Contributors" +msgstr "InvenTree 貢獻者" + +#: plugin/samples/integration/user_interface_sample.py:27 +msgid "Enable Part Panels" +msgstr "啓用零件面板" + +#: plugin/samples/integration/user_interface_sample.py:28 +msgid "Enable custom panels for Part views" +msgstr "啓用自定義面板來查看部件" + +#: plugin/samples/integration/user_interface_sample.py:33 +msgid "Enable Purchase Order Panels" +msgstr "啓用採購訂單面板" + +#: plugin/samples/integration/user_interface_sample.py:34 +msgid "Enable custom panels for Purchase Order views" +msgstr "啓用自定義面板以查看購買訂單" + +#: plugin/samples/integration/user_interface_sample.py:39 +msgid "Enable Broken Panels" +msgstr "啓用破損面板" + +#: plugin/samples/integration/user_interface_sample.py:40 +msgid "Enable broken panels for testing" +msgstr "啓用損壞的面板來測試" + +#: plugin/samples/integration/user_interface_sample.py:45 +msgid "Enable Dynamic Panel" +msgstr "啓用動態面板" + +#: plugin/samples/integration/user_interface_sample.py:46 +msgid "Enable dynamic panels for testing" +msgstr "啓用動態面板來測試" + +#: plugin/samples/integration/user_interface_sample.py:98 +msgid "Part Panel" msgstr "" -#: plugin/serializers.py:81 -msgid "Source URL" +#: plugin/samples/integration/user_interface_sample.py:131 +msgid "Broken Dashboard Item" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:133 +msgid "This is a broken dashboard item - it will not render!" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:139 +msgid "Sample Dashboard Item" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:141 +msgid "This is a sample dashboard item. It renders a simple string of HTML content." +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:147 +msgid "Context Dashboard Item" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:161 +msgid "Admin Dashboard Item" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:162 +msgid "This is an admin-only dashboard item." +msgstr "" + +#: plugin/serializers.py:82 +msgid "Source File" msgstr "" #: plugin/serializers.py:83 -msgid "Source for the package - this can be a custom registry or a VCS path" +msgid "Path to the source file for admin integration" msgstr "" -#: plugin/serializers.py:92 -msgid "Name for the Plugin Package - can also contain a version indicator" -msgstr "" - -#: plugin/serializers.py:99 -#: templates/InvenTree/settings/plugin_settings.html:42 -#: templates/js/translated/plugin.js:86 -msgid "Version" -msgstr "" - -#: plugin/serializers.py:101 -msgid "Version specifier for the plugin. Leave blank for latest version." +#: plugin/serializers.py:90 +msgid "Optional context data for the admin integration" msgstr "" #: plugin/serializers.py:106 -msgid "Confirm plugin installation" -msgstr "" +msgid "Source URL" +msgstr "源URL" #: plugin/serializers.py:108 +msgid "Source for the package - this can be a custom registry or a VCS path" +msgstr "軟件包的來源 - 這可以是自定義註冊表或 VCS 路徑" + +#: plugin/serializers.py:117 +msgid "Name for the Plugin Package - can also contain a version indicator" +msgstr "插件包名稱 - 也可以包含版本指示器" + +#: plugin/serializers.py:124 +#: templates/InvenTree/settings/plugin_settings.html:42 +#: templates/js/translated/plugin.js:86 +msgid "Version" +msgstr "版本" + +#: plugin/serializers.py:126 +msgid "Version specifier for the plugin. Leave blank for latest version." +msgstr "插件版本説明。新版請留白。" + +#: plugin/serializers.py:131 +msgid "Confirm plugin installation" +msgstr "確認插件安裝" + +#: plugin/serializers.py:133 msgid "This will install this plugin now into the current instance. The instance will go into maintenance." -msgstr "" +msgstr "這將把這個插件安裝到當前實例中。這個實例將進行維護。" -#: plugin/serializers.py:121 +#: plugin/serializers.py:146 msgid "Installation not confirmed" -msgstr "" +msgstr "安裝尚未確認" -#: plugin/serializers.py:123 +#: plugin/serializers.py:148 msgid "Either packagename of URL must be provided" -msgstr "" +msgstr "必須提供軟件包名稱或者URL" -#: plugin/serializers.py:161 +#: plugin/serializers.py:184 msgid "Full reload" -msgstr "" +msgstr "完全重載" -#: plugin/serializers.py:162 +#: plugin/serializers.py:185 msgid "Perform a full reload of the plugin registry" -msgstr "" +msgstr "執行插件庫的完整重載" -#: plugin/serializers.py:168 +#: plugin/serializers.py:191 msgid "Force reload" -msgstr "" +msgstr "強制重載" -#: plugin/serializers.py:170 +#: plugin/serializers.py:193 msgid "Force a reload of the plugin registry, even if it is already loaded" -msgstr "" +msgstr "強制重載插件庫,即使已經加載" -#: plugin/serializers.py:177 +#: plugin/serializers.py:200 msgid "Collect plugins" -msgstr "" +msgstr "收集插件" -#: plugin/serializers.py:178 +#: plugin/serializers.py:201 msgid "Collect plugins and add them to the registry" -msgstr "" +msgstr "收集插件並添加到註冊表中" -#: plugin/serializers.py:205 +#: plugin/serializers.py:228 msgid "Activate Plugin" -msgstr "" +msgstr "激活插件" -#: plugin/serializers.py:206 +#: plugin/serializers.py:229 msgid "Activate this plugin" -msgstr "" +msgstr "激活此插件" -#: plugin/serializers.py:226 +#: plugin/serializers.py:249 msgid "Delete configuration" -msgstr "" +msgstr "刪除配置" -#: plugin/serializers.py:227 +#: plugin/serializers.py:250 msgid "Delete the plugin configuration from the database" -msgstr "" +msgstr "從數據庫中刪除插件配置" #: report/api.py:88 msgid "No valid objects provided to template" -msgstr "" +msgstr "沒有為模板提供有效對象" -#: report/api.py:103 report/models.py:438 report/serializers.py:98 -#: report/serializers.py:148 templates/js/translated/purchase_order.js:1817 +#: report/api.py:103 report/models.py:446 report/serializers.py:99 +#: report/serializers.py:149 templates/js/translated/purchase_order.js:1801 #: templates/js/translated/return_order.js:353 -#: templates/js/translated/sales_order.js:887 -#: templates/js/translated/sales_order.js:1047 +#: templates/js/translated/sales_order.js:846 +#: templates/js/translated/sales_order.js:1020 msgid "Items" -msgstr "" +msgstr "項目" #: report/api.py:180 msgid "Plugin not found" -msgstr "" +msgstr "插件未找到" #: report/api.py:182 msgid "Plugin is not active" -msgstr "" +msgstr "插件未激活" #: report/api.py:184 msgid "Plugin does not support label printing" -msgstr "" +msgstr "插件不支持標籤打印" #: report/api.py:233 msgid "Invalid label dimensions" -msgstr "" +msgstr "無效的標籤尺寸" #: report/api.py:248 report/api.py:329 msgid "No valid items provided to template" -msgstr "" +msgstr "沒有有效的項目提供到模板" #: report/api.py:283 msgid "Error printing label" -msgstr "" +msgstr "打印標籤出錯" -#: report/api.py:375 report/api.py:411 +#: report/api.py:358 +msgid "Report saved at time of printing" +msgstr "在打印時保存報告" + +#: report/api.py:384 report/api.py:420 #, python-brace-format msgid "Template file '{template}' is missing or does not exist" -msgstr "" +msgstr "模板文件'{template}' 丟失或不存在" #: report/helpers.py:43 msgid "A4" -msgstr "" +msgstr "A4" #: report/helpers.py:44 msgid "A3" -msgstr "" +msgstr "A3" #: report/helpers.py:45 msgid "Legal" -msgstr "" +msgstr "法律" #: report/helpers.py:46 msgid "Letter" -msgstr "" +msgstr "字母" #: report/models.py:118 msgid "Template file with this name already exists" -msgstr "" +msgstr "已存在具有此名稱的模板" #: report/models.py:150 msgid "Template name" -msgstr "" +msgstr "模版名稱" #: report/models.py:156 msgid "Template description" -msgstr "" +msgstr "模板説明" #: report/models.py:162 msgid "Revision number (auto-increments)" -msgstr "" +msgstr "修訂編號 (自動增量)" -#: report/models.py:202 +#: report/models.py:168 +msgid "Attach to Model on Print" +msgstr "打印時附加到模型" + +#: report/models.py:170 +msgid "Save report output as an attachment against linked model instance when printing" +msgstr "打印時將報告輸出保存為附件與鏈接模型實例" + +#: report/models.py:210 msgid "Filename Pattern" -msgstr "" +msgstr "文件名樣式" -#: report/models.py:203 +#: report/models.py:211 msgid "Pattern for generating filenames" -msgstr "" +msgstr "生成文件名模式" -#: report/models.py:208 +#: report/models.py:216 msgid "Template is enabled" -msgstr "" +msgstr "模板已啓用" -#: report/models.py:214 +#: report/models.py:222 msgid "Target model type for template" -msgstr "" +msgstr "模版的目標模型類型" -#: report/models.py:234 +#: report/models.py:242 msgid "Filters" -msgstr "" +msgstr "篩選器" -#: report/models.py:235 +#: report/models.py:243 msgid "Template query filters (comma-separated list of key=value pairs)" -msgstr "" +msgstr "模版查詢篩選器 (逗號分隔的鍵值對列表)" -#: report/models.py:294 report/models.py:361 +#: report/models.py:302 report/models.py:369 msgid "Template file" -msgstr "" +msgstr "模板包文件" -#: report/models.py:302 +#: report/models.py:310 msgid "Page size for PDF reports" -msgstr "" +msgstr "PDF 報告的頁面大小" -#: report/models.py:308 +#: report/models.py:316 msgid "Render report in landscape orientation" -msgstr "" - -#: report/models.py:367 -msgid "Width [mm]" -msgstr "" - -#: report/models.py:368 -msgid "Label width, specified in mm" -msgstr "" - -#: report/models.py:374 -msgid "Height [mm]" -msgstr "" +msgstr "橫向渲染報告" #: report/models.py:375 +msgid "Width [mm]" +msgstr "寬度 [mm]" + +#: report/models.py:376 +msgid "Label width, specified in mm" +msgstr "標籤寬度,以毫米為單位。" + +#: report/models.py:382 +msgid "Height [mm]" +msgstr "高度 [mm]" + +#: report/models.py:383 msgid "Label height, specified in mm" -msgstr "" +msgstr "標籤高度,以毫米為單位。" -#: report/models.py:438 +#: report/models.py:446 msgid "Number of items to process" -msgstr "" +msgstr "要處理的項目數量" -#: report/models.py:444 +#: report/models.py:452 msgid "Report generation is complete" -msgstr "" +msgstr "報告生成完成" -#: report/models.py:448 templates/js/translated/build.js:2349 +#: report/models.py:456 templates/js/translated/build.js:2352 msgid "Progress" -msgstr "" - -#: report/models.py:448 -msgid "Report generation progress" -msgstr "" +msgstr "進度" #: report/models.py:456 +msgid "Report generation progress" +msgstr "報告生成進度" + +#: report/models.py:464 msgid "Report Template" -msgstr "" +msgstr "報告模板" -#: report/models.py:463 report/models.py:486 +#: report/models.py:471 report/models.py:494 msgid "Output File" -msgstr "" +msgstr "輸出文件" -#: report/models.py:464 report/models.py:487 +#: report/models.py:472 report/models.py:495 msgid "Generated output file" -msgstr "" +msgstr "生成輸出文件" -#: report/models.py:475 +#: report/models.py:483 msgid "Label output plugin" -msgstr "" +msgstr "標籤輸出插件" -#: report/models.py:479 +#: report/models.py:487 msgid "Label Template" -msgstr "" - -#: report/models.py:502 -msgid "Snippet" -msgstr "" - -#: report/models.py:503 -msgid "Report snippet file" -msgstr "" +msgstr "標籤模板" #: report/models.py:510 +msgid "Snippet" +msgstr "代碼片段" + +#: report/models.py:511 +msgid "Report snippet file" +msgstr "報告代碼片段文件" + +#: report/models.py:518 msgid "Snippet file description" -msgstr "" - -#: report/models.py:528 -msgid "Asset" -msgstr "" - -#: report/models.py:529 -msgid "Report asset file" -msgstr "" +msgstr "代碼片段文件描述" #: report/models.py:536 +msgid "Asset" +msgstr "資產" + +#: report/models.py:537 +msgid "Report asset file" +msgstr "報告資產文件" + +#: report/models.py:544 msgid "Asset file description" -msgstr "" +msgstr "資產文件描述" -#: report/serializers.py:91 +#: report/serializers.py:92 msgid "Select report template" -msgstr "" +msgstr "選擇報表模板" -#: report/serializers.py:99 report/serializers.py:149 +#: report/serializers.py:100 report/serializers.py:150 msgid "List of item primary keys to include in the report" -msgstr "" +msgstr "要包含在報告中的項目主鍵列表" -#: report/serializers.py:132 +#: report/serializers.py:133 msgid "Select label template" -msgstr "" - -#: report/serializers.py:140 -msgid "Printing Plugin" -msgstr "" +msgstr "選擇標籤模板" #: report/serializers.py:141 +msgid "Printing Plugin" +msgstr "打印插件" + +#: report/serializers.py:142 msgid "Select plugin to use for label printing" -msgstr "" +msgstr "選擇用於標籤打印的插件" #: report/templates/label/part_label.html:31 #: report/templates/label/stockitem_qr.html:21 #: report/templates/label/stocklocation_qr.html:20 #: templates/allauth_2fa/setup.html:18 msgid "QR Code" -msgstr "" +msgstr "二維碼" #: report/templates/label/part_label_code128.html:31 #: report/templates/label/stocklocation_qr_and_text.html:31 #: templates/qr_code.html:7 msgid "QR code" -msgstr "" +msgstr "二維碼" #: report/templates/report/inventree_bill_of_materials_report.html:133 msgid "Materials needed" -msgstr "" +msgstr "所需材料" #: report/templates/report/inventree_build_order_report.html:146 msgid "Required For" -msgstr "" +msgstr "需要給" #: report/templates/report/inventree_purchase_order_report.html:15 msgid "Supplier was deleted" -msgstr "" +msgstr "供應商已刪除" #: report/templates/report/inventree_purchase_order_report.html:30 #: report/templates/report/inventree_sales_order_report.html:30 #: templates/js/translated/order.js:341 templates/js/translated/pricing.js:527 #: templates/js/translated/pricing.js:596 -#: templates/js/translated/pricing.js:834 -#: templates/js/translated/purchase_order.js:2185 -#: templates/js/translated/sales_order.js:1873 +#: templates/js/translated/pricing.js:832 +#: templates/js/translated/purchase_order.js:2169 +#: templates/js/translated/sales_order.js:1854 msgid "Unit Price" -msgstr "" +msgstr "單位價格" #: report/templates/report/inventree_purchase_order_report.html:55 #: report/templates/report/inventree_return_order_report.html:48 #: report/templates/report/inventree_sales_order_report.html:55 msgid "Extra Line Items" -msgstr "" +msgstr "額外行項目" #: report/templates/report/inventree_purchase_order_report.html:72 #: report/templates/report/inventree_sales_order_report.html:72 -#: templates/js/translated/purchase_order.js:2087 -#: templates/js/translated/sales_order.js:1842 +#: templates/js/translated/purchase_order.js:2071 +#: templates/js/translated/sales_order.js:1823 #: templates/test_statistics_table.html:8 #: templates/test_statistics_table.html:19 msgid "Total" -msgstr "" +msgstr "總計" + +#: report/templates/report/inventree_sales_order_shipment_report.html:23 +#: stock/templates/stock/stock_sidebar.html:8 +msgid "Allocations" +msgstr "分配" #: report/templates/report/inventree_stock_location_report.html:97 msgid "Stock location items" -msgstr "" +msgstr "庫存地點項目" #: report/templates/report/inventree_test_report.html:21 msgid "Stock Item Test Report" -msgstr "" +msgstr "庫存項測試報告" #: report/templates/report/inventree_test_report.html:97 msgid "Test Results" -msgstr "" +msgstr "測試結果" #: report/templates/report/inventree_test_report.html:102 #: templates/js/translated/stock.js:1580 msgid "Test" -msgstr "" - -#: report/templates/report/inventree_test_report.html:103 stock/models.py:2544 -msgid "Result" -msgstr "" +msgstr "測試" #: report/templates/report/inventree_test_report.html:129 +#: templates/js/translated/stock.js:1448 msgid "Pass" -msgstr "" +msgstr "通過" #: report/templates/report/inventree_test_report.html:131 +#: templates/js/translated/stock.js:1450 msgid "Fail" -msgstr "" +msgstr "失敗" #: report/templates/report/inventree_test_report.html:138 msgid "No result (required)" -msgstr "" +msgstr "無結果 (必填)" #: report/templates/report/inventree_test_report.html:140 +#: templates/js/translated/stock.js:1455 msgid "No result" -msgstr "" +msgstr "沒有結果" #: report/templates/report/inventree_test_report.html:153 -#: stock/serializers.py:599 stock/templates/stock/stock_sidebar.html:16 +#: stock/serializers.py:626 stock/templates/stock/stock_sidebar.html:16 msgid "Installed Items" -msgstr "" +msgstr "已安裝的項目" -#: report/templates/report/inventree_test_report.html:167 stock/admin.py:161 +#: report/templates/report/inventree_test_report.html:167 stock/admin.py:162 #: templates/js/translated/stock.js:706 templates/js/translated/stock.js:877 -#: templates/js/translated/stock.js:3194 +#: templates/js/translated/stock.js:3195 msgid "Serial" -msgstr "" +msgstr "系列" #: report/templatetags/report.py:98 msgid "Asset file does not exist" -msgstr "" +msgstr "資產文件不存在" #: report/templatetags/report.py:154 report/templatetags/report.py:233 msgid "Image file not found" -msgstr "" +msgstr "找不到圖片文件" #: report/templatetags/report.py:258 msgid "part_image tag requires a Part instance" -msgstr "" +msgstr "parpart_image 標籤需要一個零件實例" #: report/templatetags/report.py:299 msgid "company_image tag requires a Company instance" -msgstr "" +msgstr "公司_圖片標籤需要一個公司實例" -#: stock/admin.py:51 stock/admin.py:171 +#: stock/admin.py:51 stock/admin.py:172 msgid "Location ID" -msgstr "" +msgstr "位置 ID" -#: stock/admin.py:63 stock/templates/stock/location.html:128 -#: stock/templates/stock/location.html:134 +#: stock/admin.py:63 stock/templates/stock/location.html:129 +#: stock/templates/stock/location.html:135 msgid "Location Path" -msgstr "" +msgstr "地點路徑" -#: stock/admin.py:148 +#: stock/admin.py:149 msgid "Stock Item ID" -msgstr "" +msgstr "庫存項 ID" -#: stock/admin.py:167 +#: stock/admin.py:168 msgid "Status Code" -msgstr "" +msgstr "狀態代碼" -#: stock/admin.py:179 +#: stock/admin.py:180 msgid "Supplier Part ID" -msgstr "" +msgstr "供應商零件 ID" -#: stock/admin.py:184 +#: stock/admin.py:185 msgid "Supplier Part SKU" -msgstr "" +msgstr "供應商零件庫存保管單元" -#: stock/admin.py:189 +#: stock/admin.py:190 msgid "Supplier ID" -msgstr "" +msgstr "供應商 ID" -#: stock/admin.py:200 +#: stock/admin.py:201 msgid "Customer ID" -msgstr "" +msgstr "客户 ID" -#: stock/admin.py:205 stock/models.py:825 -#: stock/templates/stock/item_base.html:354 +#: stock/admin.py:206 stock/models.py:902 +#: stock/templates/stock/item_base.html:351 msgid "Installed In" -msgstr "" +msgstr "安裝於" -#: stock/admin.py:210 +#: stock/admin.py:211 msgid "Build ID" -msgstr "" +msgstr "生產 ID" -#: stock/admin.py:220 +#: stock/admin.py:221 msgid "Sales Order ID" -msgstr "" +msgstr "銷售訂單 ID" -#: stock/admin.py:225 +#: stock/admin.py:226 msgid "Purchase Order ID" -msgstr "" +msgstr "採購訂單 ID" -#: stock/admin.py:240 +#: stock/admin.py:241 msgid "Review Needed" -msgstr "" +msgstr "需要審核" -#: stock/admin.py:245 +#: stock/admin.py:246 msgid "Delete on Deplete" -msgstr "" +msgstr "在消耗品上刪除" -#: stock/admin.py:260 stock/models.py:919 -#: stock/templates/stock/item_base.html:433 -#: templates/js/translated/stock.js:2315 users/models.py:124 +#: stock/admin.py:261 stock/models.py:996 +#: stock/templates/stock/item_base.html:430 +#: templates/js/translated/stock.js:2316 users/models.py:124 msgid "Expiry Date" -msgstr "" +msgstr "有效期至" #: stock/api.py:310 msgid "Filter by location depth" -msgstr "" +msgstr "按位置深度篩選" #: stock/api.py:330 msgid "Filter by top-level locations" -msgstr "" +msgstr "按頂級位置篩選" #: stock/api.py:345 msgid "Include sub-locations in filtered results" -msgstr "" +msgstr "在篩選結果中包含子地點" -#: stock/api.py:367 stock/serializers.py:1186 +#: stock/api.py:366 stock/serializers.py:1217 msgid "Parent Location" -msgstr "" +msgstr "上級地點" -#: stock/api.py:368 +#: stock/api.py:367 msgid "Filter by parent location" -msgstr "" +msgstr "按上級位置篩選" #: stock/api.py:615 templates/js/translated/table_filters.js:434 msgid "External Location" -msgstr "" +msgstr "外部地點" #: stock/api.py:803 msgid "Part Tree" -msgstr "" +msgstr "零件樹" #: stock/api.py:833 msgid "Expiry date before" -msgstr "" +msgstr "過期日期前" #: stock/api.py:837 msgid "Expiry date after" -msgstr "" +msgstr "過期日期後" -#: stock/api.py:840 stock/serializers.py:604 -#: stock/templates/stock/item_base.html:439 +#: stock/api.py:840 stock/serializers.py:631 +#: stock/templates/stock/item_base.html:436 #: templates/js/translated/table_filters.js:448 msgid "Stale" -msgstr "" +msgstr "過期" #: stock/api.py:927 msgid "Quantity is required" -msgstr "" +msgstr "請先輸入數量" -#: stock/api.py:933 +#: stock/api.py:932 msgid "Valid part must be supplied" -msgstr "" +msgstr "必須提供有效的零件" -#: stock/api.py:964 +#: stock/api.py:959 msgid "The given supplier part does not exist" -msgstr "" +msgstr "給定的供應商零件不存在" -#: stock/api.py:974 +#: stock/api.py:969 msgid "The supplier part has a pack size defined, but flag use_pack_size not set" -msgstr "" +msgstr "供應商零件有定義的包裝大小,但 use_pack_size 標誌未設置" -#: stock/api.py:1005 +#: stock/api.py:996 msgid "Serial numbers cannot be supplied for a non-trackable part" -msgstr "" +msgstr "不能為不可跟蹤的零件提供序列號" -#: stock/models.py:64 +#: stock/models.py:70 msgid "Stock Location type" -msgstr "" +msgstr "庫存地點類型" -#: stock/models.py:65 +#: stock/models.py:71 msgid "Stock Location types" -msgstr "" +msgstr "庫存地點類型" -#: stock/models.py:91 +#: stock/models.py:97 msgid "Default icon for all locations that have no icon set (optional)" -msgstr "" +msgstr "為所有沒有圖標的位置設置默認圖標(可選)" -#: stock/models.py:131 stock/models.py:807 -#: stock/templates/stock/location.html:17 +#: stock/models.py:137 stock/models.py:884 +#: stock/templates/stock/location.html:18 #: stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" -msgstr "" +msgstr "庫存地點" -#: stock/models.py:132 stock/templates/stock/location.html:183 +#: stock/models.py:138 stock/templates/stock/location.html:184 #: templates/InvenTree/search.html:166 templates/js/translated/search.js:178 #: users/models.py:205 msgid "Stock Locations" -msgstr "" +msgstr "庫存地點" -#: stock/models.py:180 stock/models.py:968 -#: stock/templates/stock/item_base.html:247 +#: stock/models.py:186 stock/models.py:1045 +#: stock/templates/stock/item_base.html:244 msgid "Owner" -msgstr "" +msgstr "所有者" -#: stock/models.py:181 stock/models.py:969 +#: stock/models.py:187 stock/models.py:1046 msgid "Select Owner" -msgstr "" +msgstr "選擇所有者" -#: stock/models.py:189 +#: stock/models.py:195 msgid "Stock items may not be directly located into a structural stock locations, but may be located to child locations." -msgstr "" +msgstr "庫存項可能不直接位於結構庫存地點,但可能位於其子地點。" -#: stock/models.py:196 templates/js/translated/stock.js:2865 +#: stock/models.py:202 templates/js/translated/stock.js:2866 #: templates/js/translated/table_filters.js:250 msgid "External" -msgstr "" +msgstr "外部" -#: stock/models.py:197 +#: stock/models.py:203 msgid "This is an external stock location" -msgstr "" +msgstr "這是一個外部庫存地點" -#: stock/models.py:203 templates/js/translated/stock.js:2874 +#: stock/models.py:209 templates/js/translated/stock.js:2875 #: templates/js/translated/table_filters.js:253 msgid "Location type" -msgstr "" +msgstr "位置類型" -#: stock/models.py:207 +#: stock/models.py:213 msgid "Stock location type of this location" -msgstr "" +msgstr "該位置的庫存地點類型" -#: stock/models.py:279 +#: stock/models.py:285 msgid "You cannot make this stock location structural because some stock items are already located into it!" +msgstr "您不能將此庫存地點設置為結構性,因為某些庫存項已經位於它!" + +#: stock/models.py:492 +msgid "Part must be specified" msgstr "" -#: stock/models.py:664 +#: stock/models.py:741 msgid "Stock items cannot be located into structural stock locations!" -msgstr "" +msgstr "庫存項不能存放在結構性庫存地點!" -#: stock/models.py:691 stock/serializers.py:480 +#: stock/models.py:768 stock/serializers.py:492 msgid "Stock item cannot be created for virtual parts" -msgstr "" +msgstr "無法為虛擬零件創建庫存項" -#: stock/models.py:708 +#: stock/models.py:785 #, python-brace-format msgid "Part type ('{self.supplier_part.part}') must be {self.part}" -msgstr "" +msgstr "零件類型 ('{self.supplier_part.part}') 必須為 {self.part}" -#: stock/models.py:718 stock/models.py:731 +#: stock/models.py:795 stock/models.py:808 msgid "Quantity must be 1 for item with a serial number" -msgstr "" +msgstr "有序列號的項目的數量必須是1" -#: stock/models.py:721 +#: stock/models.py:798 msgid "Serial number cannot be set if quantity greater than 1" -msgstr "" +msgstr "如果數量大於1,則不能設置序列號" -#: stock/models.py:743 +#: stock/models.py:820 msgid "Item cannot belong to itself" -msgstr "" +msgstr "項目不能屬於其自身" -#: stock/models.py:748 +#: stock/models.py:825 msgid "Item must have a build reference if is_building=True" -msgstr "" +msgstr "如果is_building=True,則項必須具有構建引用" -#: stock/models.py:761 +#: stock/models.py:838 msgid "Build reference does not point to the same part object" -msgstr "" +msgstr "構建引用未指向同一零件對象" -#: stock/models.py:777 +#: stock/models.py:854 msgid "Parent Stock Item" -msgstr "" +msgstr "母庫存項目" -#: stock/models.py:789 +#: stock/models.py:866 msgid "Base part" -msgstr "" +msgstr "基礎零件" -#: stock/models.py:799 +#: stock/models.py:876 msgid "Select a matching supplier part for this stock item" -msgstr "" +msgstr "為此庫存項目選擇匹配的供應商零件" -#: stock/models.py:811 +#: stock/models.py:888 msgid "Where is this stock item located?" -msgstr "" +msgstr "這個庫存物品在哪裏?" -#: stock/models.py:819 stock/serializers.py:1580 +#: stock/models.py:896 stock/serializers.py:1611 msgid "Packaging this stock item is stored in" -msgstr "" +msgstr "包裝此庫存物品存儲在" -#: stock/models.py:830 +#: stock/models.py:907 msgid "Is this item installed in another item?" -msgstr "" +msgstr "此項目是否安裝在另一個項目中?" -#: stock/models.py:849 +#: stock/models.py:926 msgid "Serial number for this item" -msgstr "" +msgstr "此項目的序列號" -#: stock/models.py:863 stock/serializers.py:1563 +#: stock/models.py:940 stock/serializers.py:1594 msgid "Batch code for this stock item" -msgstr "" +msgstr "此庫存項的批號" -#: stock/models.py:868 +#: stock/models.py:945 msgid "Stock Quantity" -msgstr "" +msgstr "庫存數量" -#: stock/models.py:878 +#: stock/models.py:955 msgid "Source Build" -msgstr "" +msgstr "源代碼構建" -#: stock/models.py:881 +#: stock/models.py:958 msgid "Build for this stock item" -msgstr "" +msgstr "為此庫存項目構建" -#: stock/models.py:888 stock/templates/stock/item_base.html:363 +#: stock/models.py:965 stock/templates/stock/item_base.html:360 msgid "Consumed By" -msgstr "" +msgstr "消費者" -#: stock/models.py:891 +#: stock/models.py:968 msgid "Build order which consumed this stock item" -msgstr "" +msgstr "構建消耗此庫存項的生產訂單" -#: stock/models.py:900 +#: stock/models.py:977 msgid "Source Purchase Order" -msgstr "" +msgstr "採購訂單來源" -#: stock/models.py:904 +#: stock/models.py:981 msgid "Purchase order for this stock item" -msgstr "" +msgstr "此庫存商品的採購訂單" -#: stock/models.py:910 +#: stock/models.py:987 msgid "Destination Sales Order" -msgstr "" +msgstr "目的地銷售訂單" -#: stock/models.py:921 +#: stock/models.py:998 msgid "Expiry date for stock item. Stock will be considered expired after this date" -msgstr "" +msgstr "庫存物品的到期日。在此日期之後,庫存將被視為過期" -#: stock/models.py:939 +#: stock/models.py:1016 msgid "Delete on deplete" -msgstr "" +msgstr "耗盡時刪除" -#: stock/models.py:940 +#: stock/models.py:1017 msgid "Delete this Stock Item when stock is depleted" -msgstr "" +msgstr "當庫存耗盡時刪除此庫存項" -#: stock/models.py:960 +#: stock/models.py:1037 msgid "Single unit purchase price at time of purchase" -msgstr "" +msgstr "購買時一個單位的價格" -#: stock/models.py:991 +#: stock/models.py:1068 msgid "Converted to part" -msgstr "" +msgstr "轉換為零件" -#: stock/models.py:1511 +#: stock/models.py:1600 msgid "Part is not set as trackable" -msgstr "" +msgstr "零件未設置為可跟蹤" -#: stock/models.py:1517 +#: stock/models.py:1606 msgid "Quantity must be integer" -msgstr "" +msgstr "數量必須是整數" -#: stock/models.py:1525 +#: stock/models.py:1614 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({self.quantity})" +msgstr "數量不得超過現有庫存量 ({self.quantity})" + +#: stock/models.py:1620 +msgid "Serial numbers must be provided as a list" msgstr "" -#: stock/models.py:1531 -msgid "Serial numbers must be a list of integers" -msgstr "" - -#: stock/models.py:1536 +#: stock/models.py:1625 msgid "Quantity does not match serial numbers" -msgstr "" +msgstr "數量不匹配序列號" -#: stock/models.py:1544 stock/serializers.py:726 -msgid "Serial numbers already exist" -msgstr "" - -#: stock/models.py:1641 +#: stock/models.py:1747 stock/models.py:2563 msgid "Test template does not exist" -msgstr "" +msgstr "測試模板不存在" -#: stock/models.py:1659 +#: stock/models.py:1765 msgid "Stock item has been assigned to a sales order" -msgstr "" +msgstr "庫存項已分配到銷售訂單" -#: stock/models.py:1663 +#: stock/models.py:1769 msgid "Stock item is installed in another item" -msgstr "" +msgstr "庫存項已安裝在另一個項目中" -#: stock/models.py:1666 +#: stock/models.py:1772 msgid "Stock item contains other items" -msgstr "" +msgstr "庫存項包含其他項目" -#: stock/models.py:1669 +#: stock/models.py:1775 msgid "Stock item has been assigned to a customer" -msgstr "" +msgstr "庫存項已分配給客户" -#: stock/models.py:1672 +#: stock/models.py:1778 msgid "Stock item is currently in production" -msgstr "" +msgstr "庫存項目前正在生產" -#: stock/models.py:1675 +#: stock/models.py:1781 msgid "Serialized stock cannot be merged" -msgstr "" +msgstr "序列化的庫存不能合併" -#: stock/models.py:1682 stock/serializers.py:1469 +#: stock/models.py:1788 stock/serializers.py:1500 msgid "Duplicate stock items" -msgstr "" +msgstr "複製庫存項" -#: stock/models.py:1686 +#: stock/models.py:1792 msgid "Stock items must refer to the same part" -msgstr "" +msgstr "庫存項必須指相同零件" -#: stock/models.py:1694 +#: stock/models.py:1800 msgid "Stock items must refer to the same supplier part" -msgstr "" +msgstr "庫存項必須是同一供應商的零件" -#: stock/models.py:1699 +#: stock/models.py:1805 msgid "Stock status codes must match" -msgstr "" +msgstr "庫存狀態碼必須匹配" -#: stock/models.py:1960 +#: stock/models.py:2066 msgid "StockItem cannot be moved as it is not in stock" -msgstr "" +msgstr "庫存項不能移動,因為它沒有庫存" -#: stock/models.py:2343 +#: stock/models.py:2462 msgid "Stock Item Tracking" -msgstr "" +msgstr "庫存項跟蹤" -#: stock/models.py:2376 +#: stock/models.py:2495 msgid "Entry notes" -msgstr "" +msgstr "條目註釋" -#: stock/models.py:2416 +#: stock/models.py:2535 msgid "Stock Item Test Result" -msgstr "" +msgstr "庫存項測試結果" -#: stock/models.py:2449 +#: stock/models.py:2566 msgid "Value must be provided for this test" -msgstr "" +msgstr "必須為此測試提供值" -#: stock/models.py:2454 +#: stock/models.py:2570 msgid "Attachment must be uploaded for this test" -msgstr "" +msgstr "測試附件必須上傳" -#: stock/models.py:2459 +#: stock/models.py:2575 msgid "Invalid value for this test" -msgstr "" +msgstr "此測試的值無效" -#: stock/models.py:2544 +#: stock/models.py:2660 msgid "Test result" -msgstr "" +msgstr "測試結果" -#: stock/models.py:2551 +#: stock/models.py:2667 msgid "Test output value" -msgstr "" +msgstr "測試輸出值" -#: stock/models.py:2559 +#: stock/models.py:2675 stock/serializers.py:245 msgid "Test result attachment" -msgstr "" +msgstr "測驗結果附件" -#: stock/models.py:2563 +#: stock/models.py:2679 msgid "Test notes" -msgstr "" +msgstr "測試備註" -#: stock/models.py:2571 templates/js/translated/stock.js:1633 +#: stock/models.py:2687 templates/js/translated/stock.js:1633 msgid "Test station" -msgstr "" +msgstr "測試站" -#: stock/models.py:2572 +#: stock/models.py:2688 msgid "The identifier of the test station where the test was performed" -msgstr "" +msgstr "進行測試的測試站的標識符" -#: stock/models.py:2578 +#: stock/models.py:2694 msgid "Started" -msgstr "" +msgstr "已開始" -#: stock/models.py:2579 +#: stock/models.py:2695 msgid "The timestamp of the test start" -msgstr "" +msgstr "測試開始的時間戳" -#: stock/models.py:2585 +#: stock/models.py:2701 msgid "Finished" -msgstr "" +msgstr "已完成" -#: stock/models.py:2586 +#: stock/models.py:2702 msgid "The timestamp of the test finish" -msgstr "" +msgstr "測試結束的時間戳" -#: stock/serializers.py:76 +#: stock/serializers.py:77 msgid "Generated batch code" -msgstr "" +msgstr "生成批量代碼" -#: stock/serializers.py:85 +#: stock/serializers.py:86 msgid "Select build order" -msgstr "" +msgstr "選擇生產訂單" -#: stock/serializers.py:94 +#: stock/serializers.py:95 msgid "Select stock item to generate batch code for" -msgstr "" +msgstr "選擇要生成批量代碼的庫存項" -#: stock/serializers.py:103 +#: stock/serializers.py:104 msgid "Select location to generate batch code for" -msgstr "" +msgstr "選擇要生成批量代碼的位置" -#: stock/serializers.py:112 +#: stock/serializers.py:113 msgid "Select part to generate batch code for" -msgstr "" +msgstr "選擇要生成批量代碼的零件" -#: stock/serializers.py:121 +#: stock/serializers.py:122 msgid "Select purchase order" -msgstr "" +msgstr "選擇採購訂單" -#: stock/serializers.py:128 +#: stock/serializers.py:129 msgid "Enter quantity for batch code" -msgstr "" +msgstr "輸入批量代碼的數量" -#: stock/serializers.py:151 +#: stock/serializers.py:152 msgid "Generated serial number" -msgstr "" +msgstr "生成的序列號" -#: stock/serializers.py:160 +#: stock/serializers.py:161 msgid "Select part to generate serial number for" -msgstr "" +msgstr "選擇要生成序列號的零件" -#: stock/serializers.py:168 +#: stock/serializers.py:169 msgid "Quantity of serial numbers to generate" -msgstr "" +msgstr "要生成的序列號的數量" -#: stock/serializers.py:233 +#: stock/serializers.py:234 msgid "Test template for this result" -msgstr "" +msgstr "此結果的測試模板" -#: stock/serializers.py:254 +#: stock/serializers.py:258 msgid "Template ID or test name must be provided" -msgstr "" +msgstr "必須提供模板 ID 或測試名稱" -#: stock/serializers.py:286 +#: stock/serializers.py:290 msgid "The test finished time cannot be earlier than the test started time" -msgstr "" +msgstr "測試完成時間不能早於測試開始時間" -#: stock/serializers.py:323 +#: stock/serializers.py:327 msgid "Serial number is too large" -msgstr "" +msgstr "序列號太大" -#: stock/serializers.py:452 stock/templates/stock/item_base.html:193 +#: stock/serializers.py:462 stock/templates/stock/item_base.html:190 msgid "Parent Item" -msgstr "" +msgstr "父項" -#: stock/serializers.py:453 +#: stock/serializers.py:463 msgid "Parent stock item" -msgstr "" +msgstr "父庫存項" -#: stock/serializers.py:472 +#: stock/serializers.py:484 msgid "Use pack size when adding: the quantity defined is the number of packs" -msgstr "" +msgstr "添加時使用包裝尺寸:定義的數量是包裝的數量" -#: stock/serializers.py:596 stock/templates/stock/item_base.html:437 +#: stock/serializers.py:623 stock/templates/stock/item_base.html:434 #: templates/js/translated/table_filters.js:442 users/models.py:174 msgid "Expired" -msgstr "" +msgstr "已過期" -#: stock/serializers.py:602 stock/templates/stock/stock_sidebar.html:20 +#: stock/serializers.py:629 stock/templates/stock/stock_sidebar.html:20 msgid "Child Items" -msgstr "" +msgstr "子項目" -#: stock/serializers.py:606 +#: stock/serializers.py:633 msgid "Tracking Items" -msgstr "" +msgstr "跟蹤項目" -#: stock/serializers.py:612 +#: stock/serializers.py:639 msgid "Purchase price of this stock item, per unit or pack" -msgstr "" +msgstr "此庫存商品的購買價格,單位或包裝" -#: stock/serializers.py:631 +#: stock/serializers.py:658 msgid "Minimum Pricing" -msgstr "" +msgstr "最低價格" -#: stock/serializers.py:637 +#: stock/serializers.py:664 msgid "Maximum Pricing" -msgstr "" +msgstr "最高價格" -#: stock/serializers.py:661 +#: stock/serializers.py:688 msgid "Enter number of stock items to serialize" -msgstr "" +msgstr "輸入要序列化的庫存項目數量" -#: stock/serializers.py:674 +#: stock/serializers.py:701 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({q})" -msgstr "" +msgstr "數量不得超過現有庫存量 ({q})" -#: stock/serializers.py:681 +#: stock/serializers.py:708 msgid "Enter serial numbers for new items" -msgstr "" +msgstr "輸入新項目的序列號" -#: stock/serializers.py:692 stock/serializers.py:1426 stock/serializers.py:1682 +#: stock/serializers.py:719 stock/serializers.py:1457 stock/serializers.py:1713 msgid "Destination stock location" -msgstr "" +msgstr "目標庫存位置" -#: stock/serializers.py:699 +#: stock/serializers.py:726 msgid "Optional note field" -msgstr "" +msgstr "可選註釋字段" -#: stock/serializers.py:709 +#: stock/serializers.py:736 msgid "Serial numbers cannot be assigned to this part" -msgstr "" +msgstr "此零件不能分配序列號" -#: stock/serializers.py:764 +#: stock/serializers.py:756 +msgid "Serial numbers already exist" +msgstr "序列號已存在" + +#: stock/serializers.py:795 msgid "Select stock item to install" -msgstr "" +msgstr "選擇要安裝的庫存項目" -#: stock/serializers.py:771 +#: stock/serializers.py:802 msgid "Quantity to Install" -msgstr "" +msgstr "安裝數量" -#: stock/serializers.py:772 +#: stock/serializers.py:803 msgid "Enter the quantity of items to install" -msgstr "" +msgstr "輸入要安裝的項目數量" -#: stock/serializers.py:777 stock/serializers.py:857 stock/serializers.py:983 -#: stock/serializers.py:1033 +#: stock/serializers.py:808 stock/serializers.py:888 stock/serializers.py:1014 +#: stock/serializers.py:1064 msgid "Add transaction note (optional)" -msgstr "" +msgstr "添加交易記錄 (可選)" -#: stock/serializers.py:785 +#: stock/serializers.py:816 msgid "Quantity to install must be at least 1" -msgstr "" +msgstr "安裝數量必須至少為1" -#: stock/serializers.py:793 +#: stock/serializers.py:824 msgid "Stock item is unavailable" -msgstr "" +msgstr "庫存項不可用" -#: stock/serializers.py:804 +#: stock/serializers.py:835 msgid "Selected part is not in the Bill of Materials" -msgstr "" +msgstr "所選零件不在物料清單中" -#: stock/serializers.py:817 +#: stock/serializers.py:848 msgid "Quantity to install must not exceed available quantity" -msgstr "" +msgstr "安裝數量不得超過可用數量" -#: stock/serializers.py:852 +#: stock/serializers.py:883 msgid "Destination location for uninstalled item" -msgstr "" +msgstr "已卸載項目的目標位置" -#: stock/serializers.py:903 +#: stock/serializers.py:934 msgid "Unsupported statistic type: " -msgstr "" +msgstr "不支持的統計類型: " -#: stock/serializers.py:917 +#: stock/serializers.py:948 msgid "Select part to convert stock item into" -msgstr "" +msgstr "選擇要將庫存項目轉換為的零件" -#: stock/serializers.py:930 +#: stock/serializers.py:961 msgid "Selected part is not a valid option for conversion" -msgstr "" - -#: stock/serializers.py:947 -msgid "Cannot convert stock item with assigned SupplierPart" -msgstr "" +msgstr "所選零件不是有效的轉換選項" #: stock/serializers.py:978 +msgid "Cannot convert stock item with assigned SupplierPart" +msgstr "無法轉換已分配供應商零件的庫存項" + +#: stock/serializers.py:1009 msgid "Destination location for returned item" -msgstr "" +msgstr "退回物品的目的地位置" -#: stock/serializers.py:1015 +#: stock/serializers.py:1046 msgid "Select stock items to change status" -msgstr "" +msgstr "選擇要更改狀態的庫存項目" -#: stock/serializers.py:1021 +#: stock/serializers.py:1052 msgid "No stock items selected" -msgstr "" +msgstr "未選擇庫存商品" -#: stock/serializers.py:1117 stock/serializers.py:1194 -#: stock/templates/stock/location.html:162 -#: stock/templates/stock/location.html:219 +#: stock/serializers.py:1148 stock/serializers.py:1225 +#: stock/templates/stock/location.html:163 +#: stock/templates/stock/location.html:220 #: stock/templates/stock/location_sidebar.html:5 msgid "Sublocations" -msgstr "" +msgstr "轉租" -#: stock/serializers.py:1187 templates/js/translated/stock.js:160 +#: stock/serializers.py:1218 templates/js/translated/stock.js:160 msgid "Parent stock location" -msgstr "" +msgstr "上級庫存地點" -#: stock/serializers.py:1298 +#: stock/serializers.py:1329 msgid "Part must be salable" -msgstr "" +msgstr "零件必須可銷售" -#: stock/serializers.py:1302 +#: stock/serializers.py:1333 msgid "Item is allocated to a sales order" -msgstr "" +msgstr "物料已分配到銷售訂單" -#: stock/serializers.py:1306 +#: stock/serializers.py:1337 msgid "Item is allocated to a build order" -msgstr "" +msgstr "項目被分配到生產訂單中" -#: stock/serializers.py:1330 +#: stock/serializers.py:1361 msgid "Customer to assign stock items" -msgstr "" +msgstr "客户分配庫存項目" -#: stock/serializers.py:1336 +#: stock/serializers.py:1367 msgid "Selected company is not a customer" -msgstr "" +msgstr "所選公司不是客户" -#: stock/serializers.py:1344 +#: stock/serializers.py:1375 msgid "Stock assignment notes" -msgstr "" +msgstr "庫存分配説明" -#: stock/serializers.py:1354 stock/serializers.py:1608 +#: stock/serializers.py:1385 stock/serializers.py:1639 msgid "A list of stock items must be provided" -msgstr "" +msgstr "必須提供庫存物品清單" -#: stock/serializers.py:1433 +#: stock/serializers.py:1464 msgid "Stock merging notes" -msgstr "" +msgstr "庫存合併説明" -#: stock/serializers.py:1438 +#: stock/serializers.py:1469 msgid "Allow mismatched suppliers" -msgstr "" +msgstr "允許不匹配的供應商" -#: stock/serializers.py:1439 +#: stock/serializers.py:1470 msgid "Allow stock items with different supplier parts to be merged" -msgstr "" +msgstr "允許合併具有不同供應商零件的庫存項目" -#: stock/serializers.py:1444 +#: stock/serializers.py:1475 msgid "Allow mismatched status" -msgstr "" +msgstr "允許不匹配的狀態" -#: stock/serializers.py:1445 +#: stock/serializers.py:1476 msgid "Allow stock items with different status codes to be merged" -msgstr "" +msgstr "允許合併具有不同狀態代碼的庫存項目" -#: stock/serializers.py:1455 +#: stock/serializers.py:1486 msgid "At least two stock items must be provided" -msgstr "" +msgstr "必須提供至少兩件庫存物品" -#: stock/serializers.py:1522 +#: stock/serializers.py:1553 msgid "No Change" -msgstr "" +msgstr "無更改" -#: stock/serializers.py:1551 +#: stock/serializers.py:1582 msgid "StockItem primary key value" -msgstr "" +msgstr "庫存項主鍵值" -#: stock/serializers.py:1570 +#: stock/serializers.py:1601 msgid "Stock item status code" -msgstr "" +msgstr "庫存項狀態代碼" -#: stock/serializers.py:1598 +#: stock/serializers.py:1629 msgid "Stock transaction notes" -msgstr "" +msgstr "庫存交易記錄" #: stock/status_codes.py:11 msgid "OK" -msgstr "" +msgstr "OK" #: stock/status_codes.py:12 msgid "Attention needed" -msgstr "" +msgstr "需要關注" #: stock/status_codes.py:13 msgid "Damaged" -msgstr "" +msgstr "破損" #: stock/status_codes.py:14 msgid "Destroyed" -msgstr "" +msgstr "銷燬" #: stock/status_codes.py:15 msgid "Rejected" -msgstr "" +msgstr "拒絕" #: stock/status_codes.py:19 msgid "Quarantined" -msgstr "" +msgstr "隔離" -#: stock/status_codes.py:40 +#: stock/status_codes.py:44 msgid "Legacy stock tracking entry" -msgstr "" +msgstr "舊庫存跟蹤條目" -#: stock/status_codes.py:42 templates/js/translated/stock.js:550 +#: stock/status_codes.py:46 templates/js/translated/stock.js:550 msgid "Stock item created" -msgstr "" - -#: stock/status_codes.py:45 -msgid "Edited stock item" -msgstr "" - -#: stock/status_codes.py:46 -msgid "Assigned serial number" -msgstr "" +msgstr "庫存項已創建" #: stock/status_codes.py:49 -msgid "Stock counted" -msgstr "" +msgid "Edited stock item" +msgstr "已編輯庫存項" #: stock/status_codes.py:50 -msgid "Stock manually added" -msgstr "" +msgid "Assigned serial number" +msgstr "已分配序列號" -#: stock/status_codes.py:51 -msgid "Stock manually removed" -msgstr "" +#: stock/status_codes.py:53 +msgid "Stock counted" +msgstr "庫存計數" #: stock/status_codes.py:54 -msgid "Location changed" -msgstr "" +msgid "Stock manually added" +msgstr "已手動添加庫存" #: stock/status_codes.py:55 -msgid "Stock updated" -msgstr "" +msgid "Stock manually removed" +msgstr "已手動刪除庫存" #: stock/status_codes.py:58 -msgid "Installed into assembly" -msgstr "" +msgid "Location changed" +msgstr "地點已更改" #: stock/status_codes.py:59 -msgid "Removed from assembly" -msgstr "" - -#: stock/status_codes.py:61 -msgid "Installed component item" -msgstr "" +msgid "Stock updated" +msgstr "庫存已更新" #: stock/status_codes.py:62 -msgid "Removed component item" -msgstr "" +msgid "Installed into assembly" +msgstr "已安裝到裝配中" + +#: stock/status_codes.py:63 +msgid "Removed from assembly" +msgstr "已從裝配中刪除" #: stock/status_codes.py:65 -msgid "Split from parent item" -msgstr "" +msgid "Installed component item" +msgstr "已安裝組件項" #: stock/status_codes.py:66 +msgid "Removed component item" +msgstr "已刪除組件項" + +#: stock/status_codes.py:69 +msgid "Split from parent item" +msgstr "從上級項拆分" + +#: stock/status_codes.py:70 msgid "Split child item" -msgstr "" +msgstr "拆分子項" -#: stock/status_codes.py:69 templates/js/translated/stock.js:1943 +#: stock/status_codes.py:73 templates/js/translated/stock.js:1944 msgid "Merged stock items" -msgstr "" - -#: stock/status_codes.py:72 -msgid "Converted to variant" -msgstr "" - -#: stock/status_codes.py:75 -msgid "Build order output created" -msgstr "" +msgstr "合併的庫存項" #: stock/status_codes.py:76 +msgid "Converted to variant" +msgstr "轉換為變體" + +#: stock/status_codes.py:79 +msgid "Build order output created" +msgstr "已創建生產訂單產出" + +#: stock/status_codes.py:80 msgid "Build order output completed" -msgstr "" - -#: stock/status_codes.py:77 -msgid "Build order output rejected" -msgstr "" - -#: stock/status_codes.py:78 templates/js/translated/stock.js:1849 -msgid "Consumed by build order" -msgstr "" +msgstr "生產訂單已出產" #: stock/status_codes.py:81 +msgid "Build order output rejected" +msgstr "生產訂單產出被拒絕" + +#: stock/status_codes.py:82 templates/js/translated/stock.js:1849 +msgid "Consumed by build order" +msgstr "被工單消耗的" + +#: stock/status_codes.py:85 msgid "Shipped against Sales Order" -msgstr "" +msgstr "按銷售訂單出貨" -#: stock/status_codes.py:84 +#: stock/status_codes.py:88 msgid "Received against Purchase Order" -msgstr "" - -#: stock/status_codes.py:87 -msgid "Returned against Return Order" -msgstr "" - -#: stock/status_codes.py:90 templates/js/translated/table_filters.js:382 -msgid "Sent to customer" -msgstr "" +msgstr "按採購訂單接收" #: stock/status_codes.py:91 +msgid "Returned against Return Order" +msgstr "按退貨訂單退回" + +#: stock/status_codes.py:94 templates/js/translated/table_filters.js:382 +msgid "Sent to customer" +msgstr "寄送給客户" + +#: stock/status_codes.py:95 msgid "Returned from customer" -msgstr "" +msgstr "從客户端退回" #: stock/templates/stock/item.html:17 msgid "Stock Tracking Information" -msgstr "" +msgstr "庫存跟蹤信息" #: stock/templates/stock/item.html:63 msgid "Child Stock Items" -msgstr "" +msgstr "子庫存項" #: stock/templates/stock/item.html:72 msgid "This stock item does not have any child items" -msgstr "" +msgstr "此庫存商品沒有任何子商品" #: stock/templates/stock/item.html:81 #: stock/templates/stock/stock_sidebar.html:12 msgid "Test Data" -msgstr "" +msgstr "測試數據" -#: stock/templates/stock/item.html:85 stock/templates/stock/item_base.html:65 +#: stock/templates/stock/item.html:85 msgid "Test Report" -msgstr "" +msgstr "測試報告" #: stock/templates/stock/item.html:89 stock/templates/stock/item.html:276 msgid "Delete Test Data" -msgstr "" +msgstr "刪除測試數據" #: stock/templates/stock/item.html:93 msgid "Add Test Data" -msgstr "" +msgstr "添加測試數據" #: stock/templates/stock/item.html:125 msgid "Stock Item Notes" -msgstr "" +msgstr "庫存項目備註" #: stock/templates/stock/item.html:140 msgid "Installed Stock Items" -msgstr "" +msgstr "已安裝的庫存項" -#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3354 +#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3355 msgid "Install Stock Item" -msgstr "" +msgstr "安裝庫存項" #: stock/templates/stock/item.html:264 msgid "Delete all test results for this stock item" -msgstr "" +msgstr "刪除此庫存項目的所有測試結果" #: stock/templates/stock/item.html:294 templates/js/translated/stock.js:1786 msgid "Add Test Result" -msgstr "" +msgstr "添加測試結果" -#: stock/templates/stock/item_base.html:33 +#: stock/templates/stock/item_base.html:34 msgid "Locate stock item" -msgstr "" +msgstr "查找庫存項目" -#: stock/templates/stock/item_base.html:51 +#: stock/templates/stock/item_base.html:52 msgid "Scan to Location" -msgstr "" +msgstr "掃描到位置" #: stock/templates/stock/item_base.html:59 -#: stock/templates/stock/location.html:67 +#: stock/templates/stock/location.html:68 #: templates/js/translated/filters.js:434 msgid "Printing actions" -msgstr "" +msgstr "打印操作" -#: stock/templates/stock/item_base.html:75 +#: stock/templates/stock/item_base.html:64 templates/js/translated/report.js:49 +msgid "Print Report" +msgstr "打印報告" + +#: stock/templates/stock/item_base.html:72 msgid "Stock adjustment actions" -msgstr "" +msgstr "庫存調整操作" -#: stock/templates/stock/item_base.html:79 -#: stock/templates/stock/location.html:87 templates/js/translated/stock.js:1909 +#: stock/templates/stock/item_base.html:76 +#: stock/templates/stock/location.html:88 templates/js/translated/stock.js:1909 msgid "Count stock" -msgstr "" +msgstr "清點庫存" -#: stock/templates/stock/item_base.html:81 +#: stock/templates/stock/item_base.html:78 #: templates/js/translated/stock.js:1891 msgid "Add stock" -msgstr "" +msgstr "增加庫存" -#: stock/templates/stock/item_base.html:82 +#: stock/templates/stock/item_base.html:79 #: templates/js/translated/stock.js:1900 msgid "Remove stock" -msgstr "" +msgstr "移除庫存" + +#: stock/templates/stock/item_base.html:82 +msgid "Serialize stock" +msgstr "序列化庫存" #: stock/templates/stock/item_base.html:85 -msgid "Serialize stock" -msgstr "" +#: stock/templates/stock/location.html:94 templates/js/translated/stock.js:1918 +msgid "Transfer stock" +msgstr "轉移庫存" #: stock/templates/stock/item_base.html:88 -#: stock/templates/stock/location.html:93 templates/js/translated/stock.js:1918 -msgid "Transfer stock" -msgstr "" +#: templates/js/translated/stock.js:1973 +msgid "Assign to customer" +msgstr "分配給客户" #: stock/templates/stock/item_base.html:91 -#: templates/js/translated/stock.js:1972 -msgid "Assign to customer" -msgstr "" +msgid "Return to stock" +msgstr "返回庫存" #: stock/templates/stock/item_base.html:94 -msgid "Return to stock" -msgstr "" - -#: stock/templates/stock/item_base.html:97 msgid "Uninstall stock item" -msgstr "" +msgstr "卸載庫存項目" -#: stock/templates/stock/item_base.html:97 +#: stock/templates/stock/item_base.html:94 msgid "Uninstall" -msgstr "" +msgstr "卸載" -#: stock/templates/stock/item_base.html:101 +#: stock/templates/stock/item_base.html:98 msgid "Install stock item" -msgstr "" +msgstr "安裝庫存項" -#: stock/templates/stock/item_base.html:101 +#: stock/templates/stock/item_base.html:98 msgid "Install" -msgstr "" +msgstr "安裝" + +#: stock/templates/stock/item_base.html:112 +msgid "Convert to variant" +msgstr "轉換為變體" #: stock/templates/stock/item_base.html:115 -msgid "Convert to variant" -msgstr "" - -#: stock/templates/stock/item_base.html:118 msgid "Duplicate stock item" -msgstr "" +msgstr "複製庫存項目" + +#: stock/templates/stock/item_base.html:117 +msgid "Edit stock item" +msgstr "編輯庫存項" #: stock/templates/stock/item_base.html:120 -msgid "Edit stock item" -msgstr "" - -#: stock/templates/stock/item_base.html:123 msgid "Delete stock item" -msgstr "" +msgstr "刪除庫存項" -#: stock/templates/stock/item_base.html:169 templates/InvenTree/search.html:139 -#: templates/js/translated/build.js:2295 templates/navbar.html:38 +#: stock/templates/stock/item_base.html:166 templates/InvenTree/search.html:139 +#: templates/js/translated/build.js:2298 templates/navbar.html:38 msgid "Build" -msgstr "" +msgstr "生產" -#: stock/templates/stock/item_base.html:211 +#: stock/templates/stock/item_base.html:208 msgid "No manufacturer set" -msgstr "" +msgstr "未設置製造商" -#: stock/templates/stock/item_base.html:251 +#: stock/templates/stock/item_base.html:248 msgid "You are not in the list of owners of this item. This stock item cannot be edited." -msgstr "" +msgstr "您不在此項目的所有者列表中。此庫存項目不可編輯。" -#: stock/templates/stock/item_base.html:252 -#: stock/templates/stock/location.html:146 +#: stock/templates/stock/item_base.html:249 +#: stock/templates/stock/location.html:147 msgid "Read only" -msgstr "" +msgstr "只讀" -#: stock/templates/stock/item_base.html:265 +#: stock/templates/stock/item_base.html:262 msgid "This stock item is unavailable" -msgstr "" +msgstr "此庫存項不可用" -#: stock/templates/stock/item_base.html:271 +#: stock/templates/stock/item_base.html:268 msgid "This stock item is in production and cannot be edited." -msgstr "" +msgstr "此庫存項目正在生產中,無法編輯。" -#: stock/templates/stock/item_base.html:272 +#: stock/templates/stock/item_base.html:269 msgid "Edit the stock item from the build view." -msgstr "" +msgstr "從構建視圖中編輯庫存項目。" -#: stock/templates/stock/item_base.html:287 +#: stock/templates/stock/item_base.html:284 msgid "This stock item is allocated to Sales Order" -msgstr "" +msgstr "此庫存項目已分配給銷售訂單" -#: stock/templates/stock/item_base.html:295 +#: stock/templates/stock/item_base.html:292 msgid "This stock item is allocated to Build Order" -msgstr "" +msgstr "此庫存項目已分配給生產訂單" -#: stock/templates/stock/item_base.html:311 +#: stock/templates/stock/item_base.html:308 msgid "This stock item is serialized. It has a unique serial number and the quantity cannot be adjusted" -msgstr "" +msgstr "此庫存商品已序列化。它有一個唯一的序列號,數量無法調整" -#: stock/templates/stock/item_base.html:317 +#: stock/templates/stock/item_base.html:314 msgid "previous page" -msgstr "" +msgstr "上一頁" -#: stock/templates/stock/item_base.html:317 +#: stock/templates/stock/item_base.html:314 msgid "Navigate to previous serial number" -msgstr "" +msgstr "導航到上一個序列號" -#: stock/templates/stock/item_base.html:326 +#: stock/templates/stock/item_base.html:323 msgid "next page" -msgstr "" +msgstr "下一頁" -#: stock/templates/stock/item_base.html:326 +#: stock/templates/stock/item_base.html:323 msgid "Navigate to next serial number" -msgstr "" +msgstr "導航到下一個序列號" -#: stock/templates/stock/item_base.html:398 -#: templates/js/translated/build.js:2552 +#: stock/templates/stock/item_base.html:395 +#: templates/js/translated/build.js:2559 msgid "No location set" -msgstr "" +msgstr "未設置位置" -#: stock/templates/stock/item_base.html:413 +#: stock/templates/stock/item_base.html:410 msgid "Tests" -msgstr "" +msgstr "測試" -#: stock/templates/stock/item_base.html:419 +#: stock/templates/stock/item_base.html:416 msgid "This stock item has not passed all required tests" -msgstr "" +msgstr "此庫存項目未通過所有要求的測試" -#: stock/templates/stock/item_base.html:437 +#: stock/templates/stock/item_base.html:434 #, python-format msgid "This StockItem expired on %(item.expiry_date)s" -msgstr "" +msgstr "此庫存項在 %(item.expiry_date)s 過期" -#: stock/templates/stock/item_base.html:439 +#: stock/templates/stock/item_base.html:436 #, python-format msgid "This StockItem expires on %(item.expiry_date)s" -msgstr "" +msgstr "此庫存項在 %(item.expiry_date)s 過期" -#: stock/templates/stock/item_base.html:455 +#: stock/templates/stock/item_base.html:452 msgid "No stocktake performed" -msgstr "" +msgstr "未進行盤點" -#: stock/templates/stock/item_base.html:504 -#: templates/js/translated/stock.js:2037 +#: stock/templates/stock/item_base.html:501 +#: templates/js/translated/stock.js:2038 msgid "stock item" -msgstr "" +msgstr "庫存項" -#: stock/templates/stock/item_base.html:527 +#: stock/templates/stock/item_base.html:524 msgid "Edit Stock Status" -msgstr "" +msgstr "編輯庫存狀態" -#: stock/templates/stock/item_base.html:536 +#: stock/templates/stock/item_base.html:533 msgid "Stock Item QR Code" -msgstr "" +msgstr "庫存項二維碼" -#: stock/templates/stock/item_base.html:547 +#: stock/templates/stock/item_base.html:544 msgid "Link Barcode to Stock Item" -msgstr "" +msgstr "將條形碼鏈接到庫存項" + +#: stock/templates/stock/item_base.html:608 +msgid "Select one of the part variants listed below." +msgstr "選擇下面列出的零件變體之一。" #: stock/templates/stock/item_base.html:611 -msgid "Select one of the part variants listed below." -msgstr "" - -#: stock/templates/stock/item_base.html:614 msgid "Warning" -msgstr "" +msgstr "警告" -#: stock/templates/stock/item_base.html:615 +#: stock/templates/stock/item_base.html:612 msgid "This action cannot be easily undone" -msgstr "" +msgstr "此操作不易撤消" -#: stock/templates/stock/item_base.html:623 +#: stock/templates/stock/item_base.html:620 msgid "Convert Stock Item" -msgstr "" +msgstr "轉換庫存項目" -#: stock/templates/stock/item_base.html:656 +#: stock/templates/stock/item_base.html:653 msgid "Return to Stock" -msgstr "" +msgstr "返回到庫存" #: stock/templates/stock/item_serialize.html:5 msgid "Create serialized items from this stock item." -msgstr "" +msgstr "從該庫存項目創建序列化項目。" #: stock/templates/stock/item_serialize.html:7 msgid "Select quantity to serialize, and unique serial numbers." -msgstr "" +msgstr "選擇要序列化的數量和唯一的序列號。" -#: stock/templates/stock/location.html:35 +#: stock/templates/stock/location.html:36 msgid "Perform stocktake for this stock location" -msgstr "" +msgstr "對該庫存位置進行盤點" -#: stock/templates/stock/location.html:42 +#: stock/templates/stock/location.html:43 msgid "Locate stock location" -msgstr "" +msgstr "定位庫存位置" -#: stock/templates/stock/location.html:60 +#: stock/templates/stock/location.html:61 msgid "Scan stock items into this location" -msgstr "" +msgstr "將庫存商品掃描到此位置" -#: stock/templates/stock/location.html:60 +#: stock/templates/stock/location.html:61 msgid "Scan In Stock Items" -msgstr "" +msgstr "掃描庫存商品" -#: stock/templates/stock/location.html:61 +#: stock/templates/stock/location.html:62 msgid "Scan stock container into this location" -msgstr "" +msgstr "將庫存集裝箱掃描到此位置" -#: stock/templates/stock/location.html:61 +#: stock/templates/stock/location.html:62 msgid "Scan In Container" -msgstr "" +msgstr "掃描集裝箱" -#: stock/templates/stock/location.html:72 +#: stock/templates/stock/location.html:73 msgid "Print Location Report" -msgstr "" +msgstr "打印位置報告" -#: stock/templates/stock/location.html:101 +#: stock/templates/stock/location.html:102 msgid "Location actions" -msgstr "" +msgstr "位置操作" -#: stock/templates/stock/location.html:103 +#: stock/templates/stock/location.html:104 msgid "Edit location" -msgstr "" +msgstr "編輯位置" -#: stock/templates/stock/location.html:105 +#: stock/templates/stock/location.html:106 msgid "Delete location" -msgstr "" +msgstr "刪除位置" -#: stock/templates/stock/location.html:135 +#: stock/templates/stock/location.html:136 msgid "Top level stock location" -msgstr "" +msgstr "頂級庫存位置" -#: stock/templates/stock/location.html:141 +#: stock/templates/stock/location.html:142 msgid "Location Owner" -msgstr "" +msgstr "位置所有者" -#: stock/templates/stock/location.html:145 +#: stock/templates/stock/location.html:146 msgid "You are not in the list of owners of this location. This stock location cannot be edited." -msgstr "" +msgstr "您不在此位置的所有者列表中。此庫存位置不可編輯。" -#: stock/templates/stock/location.html:173 +#: stock/templates/stock/location.html:174 msgid "Location Type" -msgstr "" - -#: stock/templates/stock/location.html:223 -msgid "Create new stock location" -msgstr "" +msgstr "位置類型" #: stock/templates/stock/location.html:224 +msgid "Create new stock location" +msgstr "創建新的庫存位置" + +#: stock/templates/stock/location.html:225 msgid "New Location" -msgstr "" +msgstr "新建庫存地點" -#: stock/templates/stock/location.html:298 -#: templates/js/translated/stock.js:2657 +#: stock/templates/stock/location.html:299 +#: templates/js/translated/stock.js:2658 msgid "stock location" -msgstr "" +msgstr "庫存位置" -#: stock/templates/stock/location.html:320 +#: stock/templates/stock/location.html:321 msgid "Scanned stock container into this location" -msgstr "" +msgstr "將掃描的庫存集裝箱放入此位置" -#: stock/templates/stock/location.html:393 +#: stock/templates/stock/location.html:394 msgid "Stock Location QR Code" -msgstr "" +msgstr "庫存地點二維碼" -#: stock/templates/stock/location.html:404 +#: stock/templates/stock/location.html:405 msgid "Link Barcode to Stock Location" -msgstr "" +msgstr "將條形碼鏈接到庫存地點" #: stock/templates/stock/stock_app_base.html:16 msgid "Loading..." -msgstr "" +msgstr "加載中…" #: stock/templates/stock/stock_sidebar.html:5 msgid "Stock Tracking" -msgstr "" - -#: stock/templates/stock/stock_sidebar.html:8 -msgid "Allocations" -msgstr "" +msgstr "庫存跟蹤" #: templates/403.html:6 templates/403.html:12 templates/403_csrf.html:7 msgid "Permission Denied" -msgstr "" +msgstr "權限受限" #: templates/403.html:15 msgid "You do not have permission to view this page." -msgstr "" +msgstr "您沒有查看此頁面的權限。" #: templates/403_csrf.html:11 msgid "Authentication Failure" -msgstr "" +msgstr "認證失敗" #: templates/403_csrf.html:14 msgid "You have been logged out from InvenTree." -msgstr "" +msgstr "您已從InvenTree註銷。" #: templates/403_csrf.html:19 templates/InvenTree/settings/sidebar.html:29 #: templates/navbar.html:150 msgid "Login" -msgstr "" +msgstr "登錄" #: templates/404.html:6 templates/404.html:12 msgid "Page Not Found" -msgstr "" +msgstr "找不到頁面" #: templates/404.html:15 msgid "The requested page does not exist" -msgstr "" +msgstr "請求的頁面不存在" #: templates/500.html:6 templates/500.html:12 msgid "Internal Server Error" -msgstr "" +msgstr "服務器內部錯誤" #: templates/500.html:15 #, python-format msgid "The %(inventree_title)s server raised an internal error" -msgstr "" +msgstr "%(inventree_title)s 服務器引起一個內部錯誤" #: templates/500.html:16 msgid "Refer to the error log in the admin interface for further details" -msgstr "" +msgstr "有關更多詳細信息,請參閲管理界面中的錯誤日誌" #: templates/503.html:11 templates/503.html:33 msgid "Site is in Maintenance" -msgstr "" +msgstr "網站正在維護中" #: templates/503.html:39 msgid "The site is currently in maintenance and should be up again soon!" -msgstr "" +msgstr "該網站目前正在維護中,應該很快就會重新上線!" #: templates/InvenTree/index.html:7 msgid "Index" -msgstr "" +msgstr "索引" #: templates/InvenTree/index.html:39 msgid "Subscribed Parts" -msgstr "" +msgstr "訂購零件" #: templates/InvenTree/index.html:52 msgid "Subscribed Categories" -msgstr "" +msgstr "已訂閲類別" #: templates/InvenTree/index.html:62 msgid "Latest Parts" -msgstr "" +msgstr "最新零件" #: templates/InvenTree/index.html:77 msgid "BOM Waiting Validation" -msgstr "" +msgstr "等待驗證的物料清單" #: templates/InvenTree/index.html:106 msgid "Recently Updated" -msgstr "" +msgstr "最近更新" #: templates/InvenTree/index.html:134 msgid "Depleted Stock" -msgstr "" +msgstr "庫存已耗盡" #: templates/InvenTree/index.html:148 msgid "Required for Build Orders" -msgstr "" +msgstr "生產訂單所需" #: templates/InvenTree/index.html:156 msgid "Expired Stock" -msgstr "" +msgstr "過期庫存" #: templates/InvenTree/index.html:172 msgid "Stale Stock" -msgstr "" +msgstr "過期庫存" #: templates/InvenTree/index.html:199 msgid "Build Orders In Progress" -msgstr "" +msgstr "進行中的生產訂單" #: templates/InvenTree/index.html:210 msgid "Overdue Build Orders" -msgstr "" +msgstr "逾期的生產訂單" #: templates/InvenTree/index.html:230 msgid "Outstanding Purchase Orders" -msgstr "" +msgstr "未完成的採購訂單" #: templates/InvenTree/index.html:241 msgid "Overdue Purchase Orders" -msgstr "" +msgstr "逾期採購訂單" #: templates/InvenTree/index.html:262 msgid "Outstanding Sales Orders" -msgstr "" +msgstr "未完成的銷售訂單" #: templates/InvenTree/index.html:273 msgid "Overdue Sales Orders" -msgstr "" +msgstr "逾期銷售訂單" #: templates/InvenTree/index.html:299 msgid "InvenTree News" -msgstr "" +msgstr "InvenTree 新聞" #: templates/InvenTree/index.html:301 msgid "Current News" -msgstr "" +msgstr "當前新聞" #: templates/InvenTree/notifications/history.html:9 msgid "Notification History" -msgstr "" +msgstr "通知歷史記錄" #: templates/InvenTree/notifications/history.html:13 #: templates/InvenTree/notifications/history.html:14 #: templates/InvenTree/notifications/notifications.html:75 msgid "Delete Notifications" -msgstr "" +msgstr "刪除通知" #: templates/InvenTree/notifications/inbox.html:9 msgid "Pending Notifications" -msgstr "" +msgstr "待定通知" #: templates/InvenTree/notifications/inbox.html:13 #: templates/InvenTree/notifications/inbox.html:14 msgid "Mark all as read" -msgstr "" +msgstr "全部標記為已讀" #: templates/InvenTree/notifications/notifications.html:10 #: templates/InvenTree/notifications/sidebar.html:5 #: templates/InvenTree/settings/sidebar.html:17 #: templates/InvenTree/settings/sidebar.html:37 templates/notifications.html:5 msgid "Notifications" -msgstr "" +msgstr "通知" #: templates/InvenTree/notifications/notifications.html:38 msgid "No unread notifications found" -msgstr "" +msgstr "未找到未讀通知" #: templates/InvenTree/notifications/notifications.html:58 msgid "No notification history found" -msgstr "" +msgstr "未找到通知歷史記錄" #: templates/InvenTree/notifications/notifications.html:65 msgid "Delete all read notifications" -msgstr "" +msgstr "刪除所有已讀通知" #: templates/InvenTree/notifications/notifications.html:89 #: templates/js/translated/notification.js:85 msgid "Delete Notification" -msgstr "" +msgstr "刪除通知" #: templates/InvenTree/notifications/sidebar.html:8 msgid "Inbox" -msgstr "" +msgstr "收件箱" #: templates/InvenTree/notifications/sidebar.html:10 msgid "History" -msgstr "" +msgstr "歷史" #: templates/InvenTree/search.html:8 msgid "Search Results" -msgstr "" +msgstr "搜索結果" #: templates/InvenTree/settings/barcode.html:8 msgid "Barcode Settings" -msgstr "" +msgstr "條形碼設置" #: templates/InvenTree/settings/build.html:8 msgid "Build Order Settings" -msgstr "" +msgstr "生產訂單設置" #: templates/InvenTree/settings/category.html:7 msgid "Category Settings" -msgstr "" +msgstr "類別設置" #: templates/InvenTree/settings/global.html:8 msgid "Server Settings" -msgstr "" +msgstr "服務器設置" #: templates/InvenTree/settings/label.html:8 #: templates/InvenTree/settings/user_labels.html:9 msgid "Label Settings" -msgstr "" +msgstr "標籤設置" #: templates/InvenTree/settings/login.html:8 msgid "Login Settings" -msgstr "" +msgstr "登錄設置" #: templates/InvenTree/settings/login.html:15 msgid "Outgoing email has not been configured. Some login and sign-up features may not work correctly!" -msgstr "" +msgstr "尚未配置發送電子郵件。某些登錄和註冊功能可能無法正常工作!" #: templates/InvenTree/settings/login.html:27 templates/account/signup.html:5 #: templates/socialaccount/signup.html:5 msgid "Signup" -msgstr "" +msgstr "註冊" #: templates/InvenTree/settings/login.html:36 msgid "Single Sign On" -msgstr "" +msgstr "單點登錄" #: templates/InvenTree/settings/mixins/settings.html:5 #: templates/InvenTree/settings/settings.html:12 templates/navbar.html:147 msgid "Settings" -msgstr "" +msgstr "設置" #: templates/InvenTree/settings/mixins/urls.html:5 msgid "URLs" -msgstr "" +msgstr "網址" #: templates/InvenTree/settings/mixins/urls.html:8 #, python-format msgid "The Base-URL for this plugin is %(base)s." -msgstr "" +msgstr "此插件的基本網址是 %(base)s。" #: templates/InvenTree/settings/mixins/urls.html:14 msgid "URL" -msgstr "" +msgstr "網址" #: templates/InvenTree/settings/mixins/urls.html:23 msgid "Open in new tab" -msgstr "" +msgstr "在新標籤頁中打開" #: templates/InvenTree/settings/notifications.html:9 #: templates/InvenTree/settings/user_notifications.html:9 msgid "Notification Settings" -msgstr "" +msgstr "通知設置" #: templates/InvenTree/settings/notifications.html:18 msgid "Slug" -msgstr "" +msgstr "別名" #: templates/InvenTree/settings/part.html:7 msgid "Part Settings" -msgstr "" +msgstr "零件設置" #: templates/InvenTree/settings/part.html:44 msgid "Part Import" -msgstr "" +msgstr "零件導入" #: templates/InvenTree/settings/part.html:48 msgid "Import Part" -msgstr "" +msgstr "導入零件" #: templates/InvenTree/settings/part_parameters.html:20 msgid "Part Parameter Templates" -msgstr "" +msgstr "零件參數模板" #: templates/InvenTree/settings/part_stocktake.html:7 msgid "Stocktake Settings" -msgstr "" +msgstr "盤點設置" #: templates/InvenTree/settings/part_stocktake.html:25 msgid "Stocktake Reports" -msgstr "" +msgstr "盤點報告" #: templates/InvenTree/settings/physical_units.html:8 #: templates/InvenTree/settings/sidebar.html:35 msgid "Physical Units" -msgstr "" +msgstr "物理單位" #: templates/InvenTree/settings/physical_units.html:12 msgid "Add Unit" -msgstr "" +msgstr "添加單位" #: templates/InvenTree/settings/plugin.html:9 #: templates/InvenTree/settings/sidebar.html:64 msgid "Plugin Settings" -msgstr "" +msgstr "插件設置" #: templates/InvenTree/settings/plugin.html:15 msgid "Changing the settings below require you to immediately restart the server. Do not change this while under active usage." -msgstr "" +msgstr "更改以下設置需要您立即重新啓動服務器。在使用過程中不要更改此設置。" #: templates/InvenTree/settings/plugin.html:38 #: templates/InvenTree/settings/sidebar.html:66 msgid "Plugins" -msgstr "" +msgstr "插件" #: templates/InvenTree/settings/plugin.html:44 #: templates/InvenTree/settings/plugin.html:45 #: templates/js/translated/plugin.js:151 msgid "Install Plugin" -msgstr "" +msgstr "安裝插件" #: templates/InvenTree/settings/plugin.html:47 #: templates/InvenTree/settings/plugin.html:48 #: templates/js/translated/plugin.js:224 msgid "Reload Plugins" -msgstr "" +msgstr "重載插件" #: templates/InvenTree/settings/plugin.html:58 msgid "External plugins are not enabled for this InvenTree installation" -msgstr "" +msgstr "此InvenTree安裝未啓用外部插件" #: templates/InvenTree/settings/plugin.html:73 msgid "Plugin Error Stack" -msgstr "" +msgstr "插件錯誤堆棧" #: templates/InvenTree/settings/plugin.html:82 msgid "Stage" -msgstr "" +msgstr "階段" #: templates/InvenTree/settings/plugin.html:84 #: templates/js/translated/notification.js:76 msgid "Message" -msgstr "" +msgstr "信息" #: templates/InvenTree/settings/plugin_settings.html:16 msgid "Plugin information" -msgstr "" +msgstr "插件信息" #: templates/InvenTree/settings/plugin_settings.html:47 msgid "no version information supplied" -msgstr "" +msgstr "未提供版本信息" #: templates/InvenTree/settings/plugin_settings.html:61 msgid "License" -msgstr "" +msgstr "許可證" #: templates/InvenTree/settings/plugin_settings.html:70 msgid "The code information is pulled from the latest git commit for this plugin. It might not reflect official version numbers or information but the actual code running." -msgstr "" +msgstr "代碼信息是從該插件的最新git commit中提取的。它可能不會反映官方版本號或信息,而是反映實際運行的代碼。" #: templates/InvenTree/settings/plugin_settings.html:76 msgid "Package information" -msgstr "" +msgstr "包裝信息" #: templates/InvenTree/settings/plugin_settings.html:82 msgid "Installation method" -msgstr "" +msgstr "安裝方法" #: templates/InvenTree/settings/plugin_settings.html:85 msgid "This plugin was installed as a package" -msgstr "" +msgstr "此插件已作為軟件包安裝" #: templates/InvenTree/settings/plugin_settings.html:87 msgid "This plugin was found in a local server path" -msgstr "" +msgstr "在本地服務器路徑中找到此插件" #: templates/InvenTree/settings/plugin_settings.html:93 msgid "Installation path" -msgstr "" +msgstr "安裝路徑" #: templates/InvenTree/settings/plugin_settings.html:100 #: templates/js/translated/plugin.js:68 #: templates/js/translated/table_filters.js:517 msgid "Builtin" -msgstr "" +msgstr "內置" #: templates/InvenTree/settings/plugin_settings.html:101 msgid "This is a builtin plugin which cannot be disabled" -msgstr "" +msgstr "這是一個無法禁用的內置插件" #: templates/InvenTree/settings/plugin_settings.html:107 #: templates/js/translated/plugin.js:72 #: templates/js/translated/table_filters.js:521 msgid "Sample" -msgstr "" +msgstr "樣本" #: templates/InvenTree/settings/plugin_settings.html:108 msgid "This is a sample plugin" -msgstr "" +msgstr "這是一個示例插件" #: templates/InvenTree/settings/plugin_settings.html:113 msgid "Commit Author" -msgstr "" +msgstr "提交的人" #: templates/InvenTree/settings/plugin_settings.html:117 #: templates/about.html:36 msgid "Commit Date" -msgstr "" +msgstr "提交日期" #: templates/InvenTree/settings/plugin_settings.html:121 #: templates/about.html:29 msgid "Commit Hash" -msgstr "" +msgstr "提交哈希值" #: templates/InvenTree/settings/plugin_settings.html:125 msgid "Commit Message" -msgstr "" +msgstr "提交信息" #: templates/InvenTree/settings/po.html:7 msgid "Purchase Order Settings" -msgstr "" +msgstr "採購訂單設置" #: templates/InvenTree/settings/pricing.html:7 msgid "Pricing Settings" -msgstr "" +msgstr "定價設置" #: templates/InvenTree/settings/pricing.html:35 msgid "Exchange Rates" -msgstr "" +msgstr "匯率" #: templates/InvenTree/settings/pricing.html:39 msgid "Update Now" -msgstr "" +msgstr "立即更新" #: templates/InvenTree/settings/pricing.html:47 #: templates/InvenTree/settings/pricing.html:51 msgid "Last Update" -msgstr "" +msgstr "上次更新" #: templates/InvenTree/settings/pricing.html:51 msgid "Never" -msgstr "" +msgstr "從不" #: templates/InvenTree/settings/project_codes.html:8 msgid "Project Code Settings" -msgstr "" +msgstr "項目編碼設置" #: templates/InvenTree/settings/project_codes.html:21 #: templates/InvenTree/settings/sidebar.html:33 msgid "Project Codes" -msgstr "" +msgstr "項目編碼" #: templates/InvenTree/settings/project_codes.html:25 #: templates/InvenTree/settings/settings_staff_js.html:216 msgid "New Project Code" -msgstr "" +msgstr "新項目編碼" #: templates/InvenTree/settings/report.html:8 #: templates/InvenTree/settings/user_reporting.html:9 msgid "Report Settings" -msgstr "" +msgstr "報表設置" #: templates/InvenTree/settings/returns.html:7 msgid "Return Order Settings" -msgstr "" +msgstr "退貨訂單設置" #: templates/InvenTree/settings/setting.html:31 msgid "No value set" -msgstr "" +msgstr "未設置值" #: templates/InvenTree/settings/setting.html:46 msgid "Edit setting" -msgstr "" +msgstr "編輯設置" #: templates/InvenTree/settings/settings_js.html:58 msgid "Edit Plugin Setting" -msgstr "" +msgstr "編輯插件設置" #: templates/InvenTree/settings/settings_js.html:60 msgid "Edit Notification Setting" -msgstr "" +msgstr "編輯通知設置" #: templates/InvenTree/settings/settings_js.html:63 msgid "Edit Global Setting" -msgstr "" +msgstr "編輯全局設置" #: templates/InvenTree/settings/settings_js.html:65 msgid "Edit User Setting" -msgstr "" +msgstr "編輯用户設置" #: templates/InvenTree/settings/settings_staff_js.html:49 msgid "Rate" -msgstr "" +msgstr "匯率" #: templates/InvenTree/settings/settings_staff_js.html:81 -#: templates/js/translated/forms.js:548 templates/js/translated/helpers.js:108 +#: templates/js/translated/forms.js:548 templates/js/translated/helpers.js:109 #: templates/js/translated/part.js:395 templates/js/translated/pricing.js:629 -#: templates/js/translated/stock.js:252 users/models.py:406 +#: templates/js/translated/stock.js:252 users/models.py:408 msgid "Delete" -msgstr "" +msgstr "刪除" #: templates/InvenTree/settings/settings_staff_js.html:95 msgid "Edit Custom Unit" -msgstr "" +msgstr "編輯自定義單位" #: templates/InvenTree/settings/settings_staff_js.html:110 msgid "Delete Custom Unit" -msgstr "" +msgstr "刪除自定義單位" #: templates/InvenTree/settings/settings_staff_js.html:124 msgid "New Custom Unit" -msgstr "" +msgstr "新建自定義單位" #: templates/InvenTree/settings/settings_staff_js.html:140 msgid "No project codes found" -msgstr "" +msgstr "未找到項目編碼" #: templates/InvenTree/settings/settings_staff_js.html:158 -#: templates/js/translated/build.js:2400 +#: templates/js/translated/build.js:2403 msgid "group" -msgstr "" +msgstr "組" #: templates/InvenTree/settings/settings_staff_js.html:175 #: templates/InvenTree/settings/settings_staff_js.html:189 msgid "Edit Project Code" -msgstr "" +msgstr "編輯項目編碼" #: templates/InvenTree/settings/settings_staff_js.html:176 #: templates/InvenTree/settings/settings_staff_js.html:203 msgid "Delete Project Code" -msgstr "" +msgstr "刪除項目編碼" #: templates/InvenTree/settings/settings_staff_js.html:285 msgid "No category parameter templates found" -msgstr "" +msgstr "未找到類別參數模板" #: templates/InvenTree/settings/settings_staff_js.html:308 #: templates/js/translated/part.js:1652 msgid "Edit Template" -msgstr "" +msgstr "編輯模板" #: templates/InvenTree/settings/settings_staff_js.html:309 #: templates/js/translated/part.js:1653 msgid "Delete Template" -msgstr "" +msgstr "刪除模板" #: templates/InvenTree/settings/settings_staff_js.html:326 msgid "Edit Category Parameter Template" -msgstr "" +msgstr "編輯類別參數模板" #: templates/InvenTree/settings/settings_staff_js.html:352 msgid "Delete Category Parameter Template" -msgstr "" +msgstr "刪除類別參數模板" #: templates/InvenTree/settings/settings_staff_js.html:387 msgid "Create Category Parameter Template" -msgstr "" +msgstr "創建類別參數模板" #: templates/InvenTree/settings/settings_staff_js.html:416 msgid "Create Part Parameter Template" -msgstr "" +msgstr "創建零件參數模板" #: templates/InvenTree/settings/settings_staff_js.html:439 msgid "No stock location types found" -msgstr "" +msgstr "未找到庫存位置類型" #: templates/InvenTree/settings/settings_staff_js.html:464 msgid "Location count" -msgstr "" +msgstr "位置計數" #: templates/InvenTree/settings/settings_staff_js.html:469 #: templates/InvenTree/settings/settings_staff_js.html:483 msgid "Edit Location Type" -msgstr "" +msgstr "編輯位置類型" #: templates/InvenTree/settings/settings_staff_js.html:470 msgid "Delete Location type" -msgstr "" +msgstr "刪除地點類型" #: templates/InvenTree/settings/settings_staff_js.html:493 msgid "Delete Location Type" -msgstr "" +msgstr "刪除地點類型" #: templates/InvenTree/settings/settings_staff_js.html:503 -#: templates/InvenTree/settings/stock.html:38 +#: templates/InvenTree/settings/stock.html:39 msgid "New Location Type" -msgstr "" +msgstr "新建位置類型" #: templates/InvenTree/settings/sidebar.html:6 #: templates/InvenTree/settings/user_settings.html:9 msgid "User Settings" -msgstr "" +msgstr "用户設置" #: templates/InvenTree/settings/sidebar.html:9 msgid "Account" -msgstr "" +msgstr "賬户" #: templates/InvenTree/settings/sidebar.html:11 msgid "Display" -msgstr "" +msgstr "顯示" #: templates/InvenTree/settings/sidebar.html:13 msgid "Home Page" -msgstr "" +msgstr "主頁" #: templates/InvenTree/settings/sidebar.html:15 #: templates/js/translated/forms.js:2200 templates/js/translated/tables.js:543 #: templates/navbar.html:107 templates/search.html:8 #: templates/search_form.html:6 templates/search_form.html:7 msgid "Search" -msgstr "" +msgstr "搜索" #: templates/InvenTree/settings/sidebar.html:19 #: templates/InvenTree/settings/sidebar.html:43 msgid "Reporting" -msgstr "" +msgstr "報告" #: templates/InvenTree/settings/sidebar.html:24 msgid "Global Settings" -msgstr "" +msgstr "全局設置" #: templates/InvenTree/settings/sidebar.html:27 templates/stats.html:9 msgid "Server" -msgstr "" +msgstr "服務器" #: templates/InvenTree/settings/sidebar.html:41 msgid "Labels" -msgstr "" +msgstr "標籤" #: templates/InvenTree/settings/sidebar.html:45 msgid "Categories" -msgstr "" +msgstr "類別" #: templates/InvenTree/settings/so.html:7 msgid "Sales Order Settings" -msgstr "" +msgstr "銷售訂單設置" #: templates/InvenTree/settings/stock.html:7 msgid "Stock Settings" -msgstr "" +msgstr "庫存設置" -#: templates/InvenTree/settings/stock.html:34 +#: templates/InvenTree/settings/stock.html:35 msgid "Stock Location Types" -msgstr "" +msgstr "庫存地點類型" #: templates/InvenTree/settings/user.html:13 msgid "Account Settings" -msgstr "" +msgstr "賬户設置" #: templates/InvenTree/settings/user.html:19 #: templates/account/password_reset_from_key.html:4 #: templates/account/password_reset_from_key.html:7 msgid "Change Password" -msgstr "" +msgstr "更改密碼" #: templates/InvenTree/settings/user.html:55 msgid "The following email addresses are associated with your account:" -msgstr "" +msgstr "以下電子郵件地址與您的帳户相關聯:" #: templates/InvenTree/settings/user.html:76 msgid "Verified" -msgstr "" +msgstr "已驗證" #: templates/InvenTree/settings/user.html:78 msgid "Unverified" -msgstr "" +msgstr "未驗證" #: templates/InvenTree/settings/user.html:80 -#: templates/js/translated/company.js:957 +#: templates/js/translated/company.js:958 msgid "Primary" -msgstr "" +msgstr "主要的" #: templates/InvenTree/settings/user.html:86 msgid "Make Primary" -msgstr "" +msgstr "設為首選" #: templates/InvenTree/settings/user.html:87 msgid "Re-send Verification" -msgstr "" +msgstr "重新發送驗證" #: templates/InvenTree/settings/user.html:96 msgid "Warning:" -msgstr "" +msgstr "警告:" #: templates/InvenTree/settings/user.html:97 msgid "You currently do not have any email address set up. You should really add an email address so you can receive notifications, reset your password, etc." -msgstr "" +msgstr "您當前沒有設置任何電子郵件地址。你真的應該添加一個電子郵件地址,這樣你就可以接收通知、重置密碼等。" #: templates/InvenTree/settings/user.html:105 msgid "Add Email Address" -msgstr "" +msgstr "添加電子郵件地址" #: templates/InvenTree/settings/user.html:110 msgid "Add Email" -msgstr "" +msgstr "添加電子郵件" #: templates/InvenTree/settings/user.html:120 msgid "Multifactor" -msgstr "" +msgstr "多因素身份驗證" #: templates/InvenTree/settings/user.html:125 msgid "You have these factors available:" -msgstr "" +msgstr "您有以下可用因素:" #: templates/InvenTree/settings/user.html:135 msgid "TOTP" -msgstr "" +msgstr "TOTP" #: templates/InvenTree/settings/user.html:141 msgid "Static" -msgstr "" +msgstr "靜態的" #: templates/InvenTree/settings/user.html:150 msgid "Multifactor authentication is not configured for your account" -msgstr "" +msgstr "您的帳户未配置多因素身份驗證" #: templates/InvenTree/settings/user.html:157 msgid "Change factors" -msgstr "" +msgstr "更改因素" #: templates/InvenTree/settings/user.html:158 msgid "Setup multifactor" -msgstr "" +msgstr "設置多因素" #: templates/InvenTree/settings/user.html:160 msgid "Remove multifactor" -msgstr "" +msgstr "刪除多因素" #: templates/InvenTree/settings/user.html:171 msgid "Active Sessions" -msgstr "" +msgstr "活躍的會話" #: templates/InvenTree/settings/user.html:177 msgid "Log out active sessions (except this one)" -msgstr "" +msgstr "註銷活動會話(除了這個會話)" #: templates/InvenTree/settings/user.html:178 msgid "Log Out Active Sessions" -msgstr "" +msgstr "註銷活動會話" #: templates/InvenTree/settings/user.html:187 msgid "unknown on unknown" -msgstr "" +msgstr "未知" #: templates/InvenTree/settings/user.html:188 msgid "unknown" -msgstr "" +msgstr "未知" #: templates/InvenTree/settings/user.html:192 msgid "IP Address" -msgstr "" +msgstr "IP 地址" #: templates/InvenTree/settings/user.html:193 msgid "Device" -msgstr "" +msgstr "設備" #: templates/InvenTree/settings/user.html:194 msgid "Last Activity" -msgstr "" +msgstr "最後一次活動" #: templates/InvenTree/settings/user.html:207 #, python-format msgid "%(time)s ago (this session)" -msgstr "" +msgstr "%(time)s 之前 (本會話)" #: templates/InvenTree/settings/user.html:209 #, python-format msgid "%(time)s ago" -msgstr "" +msgstr "%(time)s 之前" #: templates/InvenTree/settings/user.html:223 msgid "Do you really want to remove the selected email address?" -msgstr "" +msgstr "您真的要刪除所選的電子郵件地址嗎?" #: templates/InvenTree/settings/user_display.html:9 msgid "Display Settings" -msgstr "" +msgstr "顯示設置" #: templates/InvenTree/settings/user_display.html:29 msgid "Theme Settings" -msgstr "" +msgstr "主題設置" #: templates/InvenTree/settings/user_display.html:39 msgid "Select theme" -msgstr "" +msgstr "選擇主題" #: templates/InvenTree/settings/user_display.html:50 msgid "Set Theme" -msgstr "" +msgstr "設置主題" #: templates/InvenTree/settings/user_display.html:58 msgid "Language Settings" -msgstr "" +msgstr "語言設置" #: templates/InvenTree/settings/user_display.html:67 msgid "Select language" -msgstr "" +msgstr "選擇語言" #: templates/InvenTree/settings/user_display.html:83 #, python-format msgid "%(lang_translated)s%% translated" -msgstr "" +msgstr "%(lang_translated)s%% 已翻譯" #: templates/InvenTree/settings/user_display.html:85 msgid "No translations available" -msgstr "" +msgstr "無可用翻譯" #: templates/InvenTree/settings/user_display.html:92 msgid "Set Language" -msgstr "" +msgstr "設置語言" #: templates/InvenTree/settings/user_display.html:95 msgid "Some languages are not complete" -msgstr "" +msgstr "部分語言尚未翻譯完成" #: templates/InvenTree/settings/user_display.html:97 msgid "Show only sufficient" -msgstr "" +msgstr "只顯示足夠的" #: templates/InvenTree/settings/user_display.html:99 msgid "and hidden." -msgstr "" +msgstr "並隱藏。" #: templates/InvenTree/settings/user_display.html:99 msgid "Show them too" -msgstr "" +msgstr "同時顯示" #: templates/InvenTree/settings/user_display.html:106 msgid "Help the translation efforts!" -msgstr "" +msgstr "幫助翻譯工作!" #: templates/InvenTree/settings/user_display.html:107 msgid "Native language translation of the web application is community contributed via crowdin. Contributions are welcomed and encouraged." -msgstr "" +msgstr "Web應用程序的母語翻譯是由社區通過crowdin提供的。歡迎並鼓勵捐款。" #: templates/InvenTree/settings/user_display.html:108 msgid "InvenTree Translation Project" -msgstr "" +msgstr "InvenTree 翻譯項目" #: templates/InvenTree/settings/user_homepage.html:9 msgid "Home Page Settings" -msgstr "" +msgstr "主頁設置" #: templates/InvenTree/settings/user_search.html:9 msgid "Search Settings" -msgstr "" +msgstr "搜索設置" #: templates/InvenTree/settings/user_sso.html:9 msgid "Single Sign On Accounts" -msgstr "" +msgstr "單點登錄帳户" #: templates/InvenTree/settings/user_sso.html:16 msgid "You can sign in to your account using any of the following third party accounts:" -msgstr "" +msgstr "您可以使用以下任何第三方帳户登錄您的帳户:" #: templates/InvenTree/settings/user_sso.html:52 msgid "There are no social network accounts connected to this account." -msgstr "" +msgstr "沒有社交網絡帳户連接到此帳户。" #: templates/InvenTree/settings/user_sso.html:58 msgid "Add SSO Account" -msgstr "" +msgstr "添加 SSO 賬户" #: templates/InvenTree/settings/user_sso.html:67 msgid "Single Sign On is not enabled for this server" -msgstr "" +msgstr "此服務器未啓用單點登錄" #: templates/about.html:9 msgid "InvenTree Version" -msgstr "" +msgstr "InvenTree 版本" #: templates/about.html:14 msgid "Development Version" -msgstr "" +msgstr "開發版本" #: templates/about.html:17 msgid "Up to Date" -msgstr "" +msgstr "已是最新版本" #: templates/about.html:19 msgid "Update Available" -msgstr "" +msgstr "有可用更新" #: templates/about.html:43 msgid "Commit Branch" -msgstr "" +msgstr "提交分支" #: templates/about.html:49 msgid "InvenTree Documentation" -msgstr "" +msgstr "InvenTree 文檔" #: templates/about.html:54 msgid "API Version" -msgstr "" +msgstr "API 版本" #: templates/about.html:59 msgid "Python Version" -msgstr "" +msgstr "Python 版本" #: templates/about.html:64 msgid "Django Version" -msgstr "" +msgstr "Django 版本" #: templates/about.html:69 msgid "View Code on GitHub" -msgstr "" +msgstr "在 GitHub 上查看代碼" #: templates/about.html:74 msgid "Credits" -msgstr "" +msgstr "致謝" #: templates/about.html:79 msgid "Mobile App" -msgstr "" +msgstr "手機 App" #: templates/about.html:84 msgid "Submit Bug Report" -msgstr "" +msgstr "提交Bug報告" #: templates/about.html:91 templates/clip.html:4 -#: templates/js/translated/helpers.js:592 +#: templates/js/translated/helpers.js:598 msgid "copy to clipboard" -msgstr "" +msgstr "複製到剪貼板" #: templates/about.html:91 msgid "copy version information" -msgstr "" +msgstr "複製版本信息" #: templates/account/base.html:66 templates/navbar.html:17 msgid "InvenTree logo" -msgstr "" +msgstr "InvenTree 徽標" #: templates/account/email_confirm.html:6 #: templates/account/email_confirm.html:9 msgid "Confirm Email Address" -msgstr "" +msgstr "確認郵件地址" #: templates/account/email_confirm.html:15 #, python-format msgid "Please confirm that %(email)s is an email address for user %(user_display)s." -msgstr "" +msgstr "請確認%(email)s 是用户 %(user_display)s 的電子郵件地址。" #: templates/account/email_confirm.html:21 templates/js/translated/forms.js:775 msgid "Confirm" -msgstr "" +msgstr "確認" #: templates/account/email_confirm.html:29 #, python-format msgid "This email confirmation link expired or is invalid. Please issue a new email confirmation request." -msgstr "" +msgstr "此電子郵件確認鏈接已過期或無效。請 發佈一個新的電子郵件確認請求 request。" #: templates/account/login.html:6 templates/account/login.html:19 #: templates/account/login.html:40 templates/socialaccount/login.html:5 msgid "Sign In" -msgstr "" +msgstr "登錄" #: templates/account/login.html:23 msgid "Not a member?" -msgstr "" +msgstr "還不是用户?" #: templates/account/login.html:25 templates/account/signup.html:11 #: templates/account/signup.html:22 templates/socialaccount/signup.html:8 #: templates/socialaccount/signup.html:23 msgid "Sign Up" -msgstr "" +msgstr "註冊" #: templates/account/login.html:47 msgid "Forgot Password?" -msgstr "" +msgstr "忘記密碼?" #: templates/account/login.html:55 msgid "or log in with" -msgstr "" +msgstr "或用以下方式登錄" #: templates/account/logout.html:5 templates/account/logout.html:8 #: templates/account/logout.html:20 msgid "Sign Out" -msgstr "" +msgstr "註銷" #: templates/account/logout.html:10 msgid "Are you sure you want to sign out?" -msgstr "" +msgstr "確定要退出賬户嗎?" #: templates/account/logout.html:27 templates/allauth_2fa/backup_tokens.html:35 #: templates/allauth_2fa/remove.html:24 templates/allauth_2fa/setup.html:45 msgid "Return to Site" -msgstr "" +msgstr "返回網站" #: templates/account/password_reset.html:5 #: templates/account/password_reset.html:12 msgid "Password Reset" -msgstr "" +msgstr "密碼重置" #: templates/account/password_reset.html:18 msgid "Forgotten your password? Enter your email address below, and we'll send you an email allowing you to reset it." -msgstr "" +msgstr "忘記了密碼?請在下面輸入您的電子郵件地址, 我們將向您發送一封電子郵件, 允許您重置密碼。" #: templates/account/password_reset.html:23 msgid "Reset My Password" -msgstr "" +msgstr "重置我的密碼" #: templates/account/password_reset.html:27 templates/account/signup.html:37 msgid "This function is currently disabled. Please contact an administrator." -msgstr "" +msgstr "此功能當前已禁用。請聯繫管理員。" #: templates/account/password_reset_from_key.html:7 msgid "Bad Token" -msgstr "" +msgstr "錯誤的令牌" #: templates/account/password_reset_from_key.html:11 #, python-format msgid "The password reset link was invalid, possibly because it has already been used. Please request a new password reset." -msgstr "" +msgstr "密碼重置鏈接無效, 可能是因為它已被使用。 請發送一個密碼重置reset的請求。" #: templates/account/password_reset_from_key.html:18 msgid "Change password" -msgstr "" +msgstr "更改密碼" #: templates/account/password_reset_from_key.html:22 msgid "Your password is now changed." -msgstr "" +msgstr "您的密碼現在已更改。" #: templates/account/signup.html:13 #, python-format msgid "Already have an account? Then please sign in." -msgstr "" +msgstr "已經有賬户了?那麼請 登陸。" #: templates/account/signup.html:28 msgid "Use a SSO-provider for signup" -msgstr "" +msgstr "使用SSO提供商註冊" #: templates/account/signup_closed.html:5 #: templates/account/signup_closed.html:8 msgid "Sign Up Closed" -msgstr "" +msgstr "註冊關閉" #: templates/account/signup_closed.html:10 msgid "Sign up is currently closed." -msgstr "" +msgstr "註冊功能目前已禁用。" #: templates/account/signup_closed.html:15 #: templates/socialaccount/authentication_error.html:19 #: templates/socialaccount/login.html:38 templates/socialaccount/signup.html:30 msgid "Return to login page" -msgstr "" +msgstr "返回登錄頁面" #: templates/admin_button.html:8 msgid "View in administration panel" -msgstr "" +msgstr "在管理面板中查看" #: templates/allauth_2fa/authenticate.html:5 msgid "Two-Factor Authentication" -msgstr "" +msgstr "雙因素身份驗證" #: templates/allauth_2fa/authenticate.html:13 msgid "Authenticate" -msgstr "" +msgstr "驗證賬户" #: templates/allauth_2fa/backup_tokens.html:6 msgid "Two-Factor Authentication Backup Tokens" -msgstr "" +msgstr "雙因素身份驗證備份令牌" #: templates/allauth_2fa/backup_tokens.html:17 msgid "Backup tokens have been generated, but are not revealed here for security reasons. Press the button below to generate new ones." -msgstr "" +msgstr "已生成備份令牌,但出於安全原因,此處未顯示。按下面的按鈕生成新的。" #: templates/allauth_2fa/backup_tokens.html:20 msgid "No backup tokens are available. Press the button below to generate some." -msgstr "" +msgstr "沒有可用的備份令牌。按下面的按鈕生成一些。" #: templates/allauth_2fa/backup_tokens.html:28 msgid "Generate Tokens" -msgstr "" +msgstr "生成令牌" #: templates/allauth_2fa/remove.html:6 msgid "Disable Two-Factor Authentication" -msgstr "" +msgstr "禁用雙因素身份驗證" #: templates/allauth_2fa/remove.html:9 msgid "Are you sure?" -msgstr "" +msgstr "您確定嗎?" #: templates/allauth_2fa/remove.html:17 msgid "Disable 2FA" -msgstr "" +msgstr "禁用二元身份驗證" #: templates/allauth_2fa/setup.html:6 msgid "Setup Two-Factor Authentication" -msgstr "" +msgstr "設置雙因素身份驗證" #: templates/allauth_2fa/setup.html:10 msgid "Step 1" -msgstr "" +msgstr "第一步" #: templates/allauth_2fa/setup.html:14 msgid "Scan the QR code below with a token generator of your choice (for instance Google Authenticator)." -msgstr "" +msgstr "用您選擇的令牌生成器掃描下面的二維碼(例如Google Authenticator)。" #: templates/allauth_2fa/setup.html:20 msgid "Secret: " -msgstr "" +msgstr "密鑰: " #: templates/allauth_2fa/setup.html:24 msgid "Step 2" -msgstr "" +msgstr "第二步" #: templates/allauth_2fa/setup.html:28 msgid "Input a token generated by the app:" -msgstr "" +msgstr "輸入應用程序生成的令牌:" #: templates/allauth_2fa/setup.html:38 msgid "Verify" -msgstr "" +msgstr "驗證" #: templates/attachment_button.html:4 templates/js/translated/attachment.js:70 msgid "Add Link" -msgstr "" +msgstr "添加鏈接" #: templates/attachment_button.html:7 templates/js/translated/attachment.js:48 msgid "Add Attachment" -msgstr "" +msgstr "添加附件" #: templates/barcode_data.html:5 msgid "Barcode Identifier" -msgstr "" +msgstr "條形碼驗證器" -#: templates/base.html:103 +#: templates/base.html:102 msgid "Server Restart Required" -msgstr "" +msgstr "需要重新啓動服務器" -#: templates/base.html:106 +#: templates/base.html:105 msgid "A configuration option has been changed which requires a server restart" -msgstr "" +msgstr "配置選項已更改,需要重新啓動服務器" -#: templates/base.html:106 templates/base.html:116 +#: templates/base.html:105 templates/base.html:115 +#: templates/socialaccount/authentication_error.html:13 msgid "Contact your system administrator for further information" -msgstr "" +msgstr "有關詳細信息,請與系統管理員聯繫" -#: templates/base.html:113 +#: templates/base.html:112 msgid "Pending Database Migrations" -msgstr "" +msgstr "待處理的數據庫遷移" -#: templates/base.html:116 +#: templates/base.html:115 msgid "There are pending database migrations which require attention" -msgstr "" +msgstr "有一些待處理的數據庫遷移需要注意" #: templates/email/build_order_completed.html:9 #: templates/email/canceled_order_assigned.html:9 @@ -11767,3473 +12132,3419 @@ msgstr "" #: templates/email/purchase_order_received.html:9 #: templates/email/return_order_received.html:9 msgid "Click on the following link to view this order" -msgstr "" +msgstr "點擊以下鏈接查看此訂單" #: templates/email/build_order_required_stock.html:7 msgid "Stock is required for the following build order" -msgstr "" +msgstr "以下生產訂單需要庫存" #: templates/email/build_order_required_stock.html:8 #, python-format msgid "Build order %(build)s - building %(quantity)s x %(part)s" -msgstr "" +msgstr "生產訂單 %(build)s - 生產… %(quantity)s x %(part)s" #: templates/email/build_order_required_stock.html:10 msgid "Click on the following link to view this build order" -msgstr "" +msgstr "點擊以下鏈接查看此生產訂單" #: templates/email/build_order_required_stock.html:14 msgid "The following parts are low on required stock" -msgstr "" +msgstr "以下零件所需庫存不足" #: templates/email/build_order_required_stock.html:18 -#: templates/js/translated/bom.js:1674 templates/js/translated/build.js:2747 +#: templates/js/translated/bom.js:1674 templates/js/translated/build.js:2765 msgid "Required Quantity" -msgstr "" +msgstr "所需數量" #: templates/email/build_order_required_stock.html:38 #: templates/email/low_stock_notification.html:30 msgid "You are receiving this email because you are subscribed to notifications for this part " -msgstr "" +msgstr "您收到此郵件是因為您訂閲了此零件的通知 " #: templates/email/low_stock_notification.html:9 msgid "Click on the following link to view this part" -msgstr "" +msgstr "點擊以下鏈接查看此零件" #: templates/email/low_stock_notification.html:18 -#: templates/js/translated/part.js:3237 +#: templates/js/translated/part.js:3253 msgid "Minimum Quantity" -msgstr "" +msgstr "最小數量" #: templates/js/translated/api.js:225 templates/js/translated/modals.js:1135 msgid "No Response" -msgstr "" +msgstr "無響應" #: templates/js/translated/api.js:226 templates/js/translated/modals.js:1136 msgid "No response from the InvenTree server" -msgstr "" +msgstr "InvenTree服務器沒有響應" #: templates/js/translated/api.js:232 msgid "Error 400: Bad request" -msgstr "" +msgstr "錯誤 400: 無效請求" #: templates/js/translated/api.js:233 msgid "API request returned error code 400" -msgstr "" +msgstr "API請求返回錯誤代碼400" #: templates/js/translated/api.js:237 templates/js/translated/modals.js:1145 msgid "Error 401: Not Authenticated" -msgstr "" +msgstr "錯誤401:未通過身份驗證" #: templates/js/translated/api.js:238 templates/js/translated/modals.js:1146 msgid "Authentication credentials not supplied" -msgstr "" +msgstr "未提供身份驗證憑據" #: templates/js/translated/api.js:242 templates/js/translated/modals.js:1150 msgid "Error 403: Permission Denied" -msgstr "" +msgstr "錯誤403:權限被拒絕" #: templates/js/translated/api.js:243 templates/js/translated/modals.js:1151 msgid "You do not have the required permissions to access this function" -msgstr "" +msgstr "您沒有訪問此功能所需的權限" #: templates/js/translated/api.js:247 templates/js/translated/modals.js:1155 msgid "Error 404: Resource Not Found" -msgstr "" +msgstr "錯誤404:找不到資源" #: templates/js/translated/api.js:248 templates/js/translated/modals.js:1156 msgid "The requested resource could not be located on the server" -msgstr "" +msgstr "在服務器上找不到請求的資源" #: templates/js/translated/api.js:252 msgid "Error 405: Method Not Allowed" -msgstr "" +msgstr "錯誤405:不允許使用該方法" #: templates/js/translated/api.js:253 msgid "HTTP method not allowed at URL" -msgstr "" +msgstr "URL處不允許使用HTTP方法" #: templates/js/translated/api.js:257 templates/js/translated/modals.js:1160 msgid "Error 408: Timeout" -msgstr "" +msgstr "錯誤408:超時" #: templates/js/translated/api.js:258 templates/js/translated/modals.js:1161 msgid "Connection timeout while requesting data from server" -msgstr "" +msgstr "向服務器請求數據時連接超時" #: templates/js/translated/api.js:261 msgid "Error 503: Service Unavailable" -msgstr "" +msgstr "錯誤503:服務不可用" #: templates/js/translated/api.js:262 msgid "The server is currently unavailable" -msgstr "" +msgstr "服務器當前不可用" #: templates/js/translated/api.js:265 msgid "Unhandled Error Code" -msgstr "" +msgstr "未處理的錯誤代碼" #: templates/js/translated/api.js:266 msgid "Error code" -msgstr "" +msgstr "錯誤代碼" #: templates/js/translated/attachment.js:114 msgid "All selected attachments will be deleted" -msgstr "" +msgstr "所有選定的附件都將被刪除" #: templates/js/translated/attachment.js:129 msgid "Delete Attachments" -msgstr "" +msgstr "刪除附件" #: templates/js/translated/attachment.js:205 msgid "Delete attachments" -msgstr "" +msgstr "刪除附件" #: templates/js/translated/attachment.js:260 msgid "Attachment actions" -msgstr "" +msgstr "附件操作" #: templates/js/translated/attachment.js:294 msgid "No attachments found" -msgstr "" +msgstr "未找到附件" #: templates/js/translated/attachment.js:334 msgid "Edit Attachment" -msgstr "" +msgstr "編輯附件" #: templates/js/translated/attachment.js:365 msgid "Upload Date" -msgstr "" +msgstr "上傳日期" #: templates/js/translated/attachment.js:385 msgid "Edit attachment" -msgstr "" +msgstr "編輯附件" #: templates/js/translated/attachment.js:393 msgid "Delete attachment" -msgstr "" +msgstr "刪除附件" #: templates/js/translated/barcode.js:43 msgid "Scan barcode data here using barcode scanner" -msgstr "" +msgstr "使用條形碼掃描儀在此處掃描條形碼數據" #: templates/js/translated/barcode.js:45 msgid "Enter barcode data" -msgstr "" +msgstr "輸入條形碼數據" #: templates/js/translated/barcode.js:59 msgid "Scan barcode using connected webcam" -msgstr "" +msgstr "使用連接的網絡攝像頭掃描條形碼" #: templates/js/translated/barcode.js:138 msgid "Enter optional notes for stock transfer" -msgstr "" +msgstr "輸入庫存轉移的可選註釋" #: templates/js/translated/barcode.js:139 msgid "Enter notes" -msgstr "" +msgstr "添加備註" #: templates/js/translated/barcode.js:188 msgid "Server error" -msgstr "" +msgstr "服務器錯誤" #: templates/js/translated/barcode.js:217 msgid "Unknown response from server" -msgstr "" +msgstr "來自服務器的未知響應" #: templates/js/translated/barcode.js:252 #: templates/js/translated/modals.js:1125 msgid "Invalid server response" -msgstr "" +msgstr "服務器響應無效" #: templates/js/translated/barcode.js:403 msgid "Scan barcode data" -msgstr "" +msgstr "掃描條形碼數據" #: templates/js/translated/barcode.js:451 templates/navbar.html:114 msgid "Scan Barcode" -msgstr "" +msgstr "掃描條形碼" #: templates/js/translated/barcode.js:489 msgid "No URL in response" -msgstr "" +msgstr "響應中沒有網址" #: templates/js/translated/barcode.js:529 msgid "This will remove the link to the associated barcode" -msgstr "" +msgstr "這將刪除關聯條形碼的鏈接" #: templates/js/translated/barcode.js:535 msgid "Unlink" -msgstr "" +msgstr "取消鏈接" #: templates/js/translated/barcode.js:598 templates/js/translated/stock.js:1188 msgid "Remove stock item" -msgstr "" +msgstr "移除庫存項" #: templates/js/translated/barcode.js:641 msgid "Scan Stock Items Into Location" -msgstr "" +msgstr "將庫存商品掃描到位置" #: templates/js/translated/barcode.js:643 msgid "Scan stock item barcode to check in to this location" -msgstr "" +msgstr "掃描庫存商品條形碼以登記到此位置" #: templates/js/translated/barcode.js:646 #: templates/js/translated/barcode.js:843 msgid "Check In" -msgstr "" +msgstr "登記" #: templates/js/translated/barcode.js:678 msgid "No barcode provided" -msgstr "" +msgstr "未提供條形碼" #: templates/js/translated/barcode.js:718 msgid "Stock Item already scanned" -msgstr "" +msgstr "庫存項已掃描" #: templates/js/translated/barcode.js:722 msgid "Stock Item already in this location" -msgstr "" +msgstr "庫存項已在此位置" #: templates/js/translated/barcode.js:729 msgid "Added stock item" -msgstr "" +msgstr "已添加庫存項" #: templates/js/translated/barcode.js:738 msgid "Barcode does not match valid stock item" -msgstr "" +msgstr "條形碼與有效庫存項目不匹配" #: templates/js/translated/barcode.js:757 msgid "Scan Stock Container Into Location" -msgstr "" +msgstr "將庫存集裝箱掃描到指定位置" #: templates/js/translated/barcode.js:759 msgid "Scan stock container barcode to check in to this location" -msgstr "" +msgstr "掃描庫存集裝箱條形碼以登記到此位置" #: templates/js/translated/barcode.js:793 msgid "Barcode does not match valid stock location" -msgstr "" +msgstr "條形碼與有效庫存位置不匹配" #: templates/js/translated/barcode.js:837 msgid "Check Into Location" -msgstr "" +msgstr "檢查到位置" #: templates/js/translated/barcode.js:906 #: templates/js/translated/barcode.js:915 msgid "Barcode does not match a valid location" -msgstr "" +msgstr "條形碼與有效位置不匹配" #: templates/js/translated/bom.js:78 msgid "Create BOM Item" -msgstr "" +msgstr "創建物料清單項目" #: templates/js/translated/bom.js:132 msgid "Display row data" -msgstr "" +msgstr "顯示行數據" #: templates/js/translated/bom.js:188 msgid "Row Data" -msgstr "" +msgstr "行數據" #: templates/js/translated/bom.js:189 templates/js/translated/bom.js:700 #: templates/js/translated/modals.js:75 templates/js/translated/modals.js:629 #: templates/js/translated/modals.js:757 templates/js/translated/modals.js:1065 -#: templates/js/translated/purchase_order.js:797 templates/modals.html:15 +#: templates/js/translated/purchase_order.js:780 templates/modals.html:15 #: templates/modals.html:27 templates/modals.html:39 templates/modals.html:50 msgid "Close" -msgstr "" +msgstr "關閉" #: templates/js/translated/bom.js:306 msgid "Download BOM Template" -msgstr "" +msgstr "下載物料清單模板" #: templates/js/translated/bom.js:351 msgid "Multi Level BOM" -msgstr "" +msgstr "多級物料清單" #: templates/js/translated/bom.js:352 msgid "Include BOM data for subassemblies" -msgstr "" +msgstr "包括子裝配體物料清單數據" #: templates/js/translated/bom.js:357 msgid "Levels" -msgstr "" +msgstr "等級" #: templates/js/translated/bom.js:358 msgid "Select maximum number of BOM levels to export (0 = all levels)" -msgstr "" +msgstr "選擇要導出的物料清單的最大級別 (0 = 所有級別)" #: templates/js/translated/bom.js:365 msgid "Include Alternative Parts" -msgstr "" +msgstr "包含替代零件" #: templates/js/translated/bom.js:366 msgid "Include alternative parts in exported BOM" -msgstr "" +msgstr "在導出的物料清單中包含替代零件" #: templates/js/translated/bom.js:371 msgid "Include Parameter Data" -msgstr "" +msgstr "包含參數數據" #: templates/js/translated/bom.js:372 msgid "Include part parameter data in exported BOM" -msgstr "" +msgstr "在導出的物料清單中包含零件參數" #: templates/js/translated/bom.js:377 msgid "Include Stock Data" -msgstr "" +msgstr "包括庫存數據" #: templates/js/translated/bom.js:378 msgid "Include part stock data in exported BOM" -msgstr "" +msgstr "在導出的物料清單中包含零件庫存數據" #: templates/js/translated/bom.js:383 msgid "Include Manufacturer Data" -msgstr "" +msgstr "包括製造商數據" #: templates/js/translated/bom.js:384 msgid "Include part manufacturer data in exported BOM" -msgstr "" +msgstr "在導出的物料清單中包含零件製造商數據" #: templates/js/translated/bom.js:389 msgid "Include Supplier Data" -msgstr "" +msgstr "包含供應商數據" #: templates/js/translated/bom.js:390 msgid "Include part supplier data in exported BOM" -msgstr "" +msgstr "在導出的物料清單中包含零件供應商數據" #: templates/js/translated/bom.js:395 msgid "Include Pricing Data" -msgstr "" +msgstr "包含價格數據" #: templates/js/translated/bom.js:396 msgid "Include part pricing data in exported BOM" -msgstr "" +msgstr "在導出的物料清單中包含零件價格數據" #: templates/js/translated/bom.js:591 msgid "Remove substitute part" -msgstr "" +msgstr "移除替代品零件" #: templates/js/translated/bom.js:645 msgid "Select and add a new substitute part using the input below" -msgstr "" +msgstr "使用下面的輸入選擇並添加新的替代品零件" #: templates/js/translated/bom.js:656 msgid "Are you sure you wish to remove this substitute part link?" -msgstr "" +msgstr "您確定要刪除此替代品零件鏈接嗎?" #: templates/js/translated/bom.js:662 msgid "Remove Substitute Part" -msgstr "" +msgstr "移除替代品零件" #: templates/js/translated/bom.js:701 msgid "Add Substitute" -msgstr "" +msgstr "添加替代品" #: templates/js/translated/bom.js:702 msgid "Edit BOM Item Substitutes" -msgstr "" +msgstr "編輯物料清單項替代品" #: templates/js/translated/bom.js:764 msgid "All selected BOM items will be deleted" -msgstr "" +msgstr "所有選定的物料清單項目都將被刪除" #: templates/js/translated/bom.js:780 msgid "Delete selected BOM items?" -msgstr "" +msgstr "刪除選中的物料清單項目嗎?" #: templates/js/translated/bom.js:826 msgid "Delete items" -msgstr "" +msgstr "刪除項目" #: templates/js/translated/bom.js:936 msgid "Load BOM for subassembly" -msgstr "" +msgstr "為子組件加載物料清單" #: templates/js/translated/bom.js:946 msgid "Substitutes Available" -msgstr "" +msgstr "替代品可用" -#: templates/js/translated/bom.js:950 templates/js/translated/build.js:2673 +#: templates/js/translated/bom.js:950 templates/js/translated/build.js:2682 msgid "Variant stock allowed" -msgstr "" +msgstr "已允許變體庫存" #: templates/js/translated/bom.js:1014 msgid "Substitutes" -msgstr "" +msgstr "替代品" #: templates/js/translated/bom.js:1139 msgid "BOM pricing is complete" -msgstr "" +msgstr "物料清單定價已完成" #: templates/js/translated/bom.js:1144 msgid "BOM pricing is incomplete" -msgstr "" +msgstr "物料清單定價未完成" #: templates/js/translated/bom.js:1151 msgid "No pricing available" -msgstr "" +msgstr "無可用價格" -#: templates/js/translated/bom.js:1184 templates/js/translated/build.js:2812 +#: templates/js/translated/bom.js:1184 templates/js/translated/build.js:2830 msgid "External stock" -msgstr "" +msgstr "外部庫存" -#: templates/js/translated/bom.js:1188 templates/js/translated/build.js:2786 -#: templates/js/translated/sales_order.js:1946 +#: templates/js/translated/bom.js:1188 templates/js/translated/build.js:2804 +#: templates/js/translated/sales_order.js:1927 msgid "No Stock Available" -msgstr "" +msgstr "無可用庫存" -#: templates/js/translated/bom.js:1193 templates/js/translated/build.js:2790 +#: templates/js/translated/bom.js:1193 templates/js/translated/build.js:2808 msgid "Includes variant and substitute stock" -msgstr "" +msgstr "包括變體和替代品庫存" -#: templates/js/translated/bom.js:1195 templates/js/translated/build.js:2792 +#: templates/js/translated/bom.js:1195 templates/js/translated/build.js:2810 #: templates/js/translated/part.js:1263 -#: templates/js/translated/sales_order.js:1943 +#: templates/js/translated/sales_order.js:1924 msgid "Includes variant stock" -msgstr "" +msgstr "包括變體庫存" -#: templates/js/translated/bom.js:1197 templates/js/translated/build.js:2794 +#: templates/js/translated/bom.js:1197 templates/js/translated/build.js:2812 msgid "Includes substitute stock" -msgstr "" +msgstr "包括替代品庫存" -#: templates/js/translated/bom.js:1225 templates/js/translated/build.js:2777 +#: templates/js/translated/bom.js:1225 templates/js/translated/build.js:2795 msgid "Consumable item" -msgstr "" +msgstr "消耗品" #: templates/js/translated/bom.js:1285 msgid "Validate BOM Item" -msgstr "" +msgstr "驗證物料清單項目" #: templates/js/translated/bom.js:1287 msgid "This line has been validated" -msgstr "" +msgstr "此行已驗證" #: templates/js/translated/bom.js:1289 msgid "Edit substitute parts" -msgstr "" +msgstr "編輯替代品零件" #: templates/js/translated/bom.js:1291 templates/js/translated/bom.js:1486 msgid "Edit BOM Item" -msgstr "" +msgstr "編輯物料清單項目" #: templates/js/translated/bom.js:1293 msgid "Delete BOM Item" -msgstr "" +msgstr "刪除物料清單項目" #: templates/js/translated/bom.js:1313 msgid "View BOM" -msgstr "" +msgstr "查看物料清單" #: templates/js/translated/bom.js:1397 msgid "No BOM items found" -msgstr "" +msgstr "未找到物料清單項目" -#: templates/js/translated/bom.js:1657 templates/js/translated/build.js:2658 +#: templates/js/translated/bom.js:1657 templates/js/translated/build.js:2667 msgid "Required Part" -msgstr "" +msgstr "必須零件" #: templates/js/translated/bom.js:1683 msgid "Inherited from parent BOM" -msgstr "" +msgstr "從上級物料清單繼承" #: templates/js/translated/build.js:143 msgid "Edit Build Order" -msgstr "" +msgstr "編輯生產訂單" -#: templates/js/translated/build.js:191 +#: templates/js/translated/build.js:194 msgid "Create Build Order" -msgstr "" +msgstr "創建生產訂單" -#: templates/js/translated/build.js:223 +#: templates/js/translated/build.js:226 msgid "Cancel Build Order" -msgstr "" +msgstr "取消生產訂單" -#: templates/js/translated/build.js:232 +#: templates/js/translated/build.js:235 msgid "Are you sure you wish to cancel this build?" -msgstr "" +msgstr "您確定要取消此生成嗎?" -#: templates/js/translated/build.js:238 +#: templates/js/translated/build.js:241 msgid "Stock items have been allocated to this build order" -msgstr "" +msgstr "庫存項目已分配到此生產訂單" -#: templates/js/translated/build.js:245 +#: templates/js/translated/build.js:248 msgid "There are incomplete outputs remaining for this build order" -msgstr "" +msgstr "此生產訂單還有未完成的產出" -#: templates/js/translated/build.js:297 +#: templates/js/translated/build.js:300 msgid "Build order is ready to be completed" -msgstr "" +msgstr "生產訂單已準備好標記為已完成" -#: templates/js/translated/build.js:305 +#: templates/js/translated/build.js:308 msgid "This build order cannot be completed as there are incomplete outputs" -msgstr "" +msgstr "由於產出不完整,無法完成此生產訂單" -#: templates/js/translated/build.js:310 +#: templates/js/translated/build.js:313 msgid "Build Order is incomplete" -msgstr "" +msgstr "生產訂單未完成" -#: templates/js/translated/build.js:328 +#: templates/js/translated/build.js:331 msgid "Complete Build Order" -msgstr "" +msgstr "完成生產訂單" -#: templates/js/translated/build.js:369 templates/js/translated/stock.js:127 +#: templates/js/translated/build.js:372 templates/js/translated/stock.js:127 #: templates/js/translated/stock.js:301 msgid "Next available serial number" -msgstr "" +msgstr "下一個可用序列號" -#: templates/js/translated/build.js:371 templates/js/translated/stock.js:129 +#: templates/js/translated/build.js:374 templates/js/translated/stock.js:129 #: templates/js/translated/stock.js:303 msgid "Latest serial number" -msgstr "" +msgstr "最新序列號" -#: templates/js/translated/build.js:380 +#: templates/js/translated/build.js:383 msgid "The Bill of Materials contains trackable parts" -msgstr "" +msgstr "物料清單包含可跟蹤的零件" -#: templates/js/translated/build.js:381 +#: templates/js/translated/build.js:384 msgid "Build outputs must be generated individually" -msgstr "" +msgstr "必須單獨生成生產輸出" -#: templates/js/translated/build.js:389 +#: templates/js/translated/build.js:392 msgid "Trackable parts can have serial numbers specified" -msgstr "" +msgstr "可跟蹤零件可以指定序列號" -#: templates/js/translated/build.js:390 +#: templates/js/translated/build.js:393 msgid "Enter serial numbers to generate multiple single build outputs" -msgstr "" +msgstr "輸入序列號來生成多個單一生產輸出" -#: templates/js/translated/build.js:397 +#: templates/js/translated/build.js:400 msgid "Create Build Output" -msgstr "" +msgstr "創建生產輸出" -#: templates/js/translated/build.js:428 +#: templates/js/translated/build.js:431 msgid "Allocate stock items to this build output" -msgstr "" +msgstr "分配庫存項到此生產輸出" -#: templates/js/translated/build.js:436 +#: templates/js/translated/build.js:439 msgid "Deallocate stock from build output" -msgstr "" +msgstr "從生產輸出中取消分配庫存" -#: templates/js/translated/build.js:445 +#: templates/js/translated/build.js:448 msgid "Complete build output" -msgstr "" +msgstr "完成生產輸出" -#: templates/js/translated/build.js:453 +#: templates/js/translated/build.js:456 msgid "Scrap build output" -msgstr "" +msgstr "報廢生產輸出" -#: templates/js/translated/build.js:460 +#: templates/js/translated/build.js:463 msgid "Delete build output" -msgstr "" +msgstr "刪除生產輸出" -#: templates/js/translated/build.js:480 +#: templates/js/translated/build.js:483 msgid "Are you sure you wish to deallocate the selected stock items from this build?" -msgstr "" +msgstr "您確定要取消分配此版本中選定的庫存項目嗎?" -#: templates/js/translated/build.js:498 +#: templates/js/translated/build.js:501 msgid "Deallocate Stock Items" -msgstr "" +msgstr "取消分配庫存項目" -#: templates/js/translated/build.js:584 templates/js/translated/build.js:711 -#: templates/js/translated/build.js:836 +#: templates/js/translated/build.js:587 templates/js/translated/build.js:714 +#: templates/js/translated/build.js:839 msgid "Select Build Outputs" -msgstr "" +msgstr "選擇生產輸出" -#: templates/js/translated/build.js:585 templates/js/translated/build.js:712 -#: templates/js/translated/build.js:837 +#: templates/js/translated/build.js:588 templates/js/translated/build.js:715 +#: templates/js/translated/build.js:840 msgid "At least one build output must be selected" -msgstr "" +msgstr "必須選擇至少一個生產輸出" -#: templates/js/translated/build.js:599 +#: templates/js/translated/build.js:602 msgid "Selected build outputs will be marked as complete" -msgstr "" +msgstr "選擇的生產輸出將被標記為完成" -#: templates/js/translated/build.js:603 templates/js/translated/build.js:736 -#: templates/js/translated/build.js:859 +#: templates/js/translated/build.js:606 templates/js/translated/build.js:739 +#: templates/js/translated/build.js:862 msgid "Output" -msgstr "" +msgstr "輸出" -#: templates/js/translated/build.js:630 +#: templates/js/translated/build.js:633 msgid "Complete Build Outputs" -msgstr "" - -#: templates/js/translated/build.js:727 -msgid "Selected build outputs will be marked as scrapped" -msgstr "" - -#: templates/js/translated/build.js:729 -msgid "Scrapped output are marked as rejected" -msgstr "" +msgstr "完成生產輸出" #: templates/js/translated/build.js:730 +msgid "Selected build outputs will be marked as scrapped" +msgstr "選擇的生產輸出將被標記為已報廢" + +#: templates/js/translated/build.js:732 +msgid "Scrapped output are marked as rejected" +msgstr "報廢的輸出被標記為拒收" + +#: templates/js/translated/build.js:733 msgid "Allocated stock items will no longer be available" -msgstr "" +msgstr "已分配的庫存物品將不再可用" -#: templates/js/translated/build.js:731 +#: templates/js/translated/build.js:734 msgid "The completion status of the build order will not be adjusted" -msgstr "" +msgstr "生產訂單的完成狀態將不會調整" -#: templates/js/translated/build.js:761 +#: templates/js/translated/build.js:764 msgid "Scrap Build Outputs" -msgstr "" - -#: templates/js/translated/build.js:851 -msgid "Selected build outputs will be deleted" -msgstr "" - -#: templates/js/translated/build.js:853 -msgid "Build output data will be permanently deleted" -msgstr "" +msgstr "報廢生產輸出" #: templates/js/translated/build.js:854 +msgid "Selected build outputs will be deleted" +msgstr "選定的生產輸出將被刪除" + +#: templates/js/translated/build.js:856 +msgid "Build output data will be permanently deleted" +msgstr "生產輸出數據將被永久刪除" + +#: templates/js/translated/build.js:857 msgid "Allocated stock items will be returned to stock" -msgstr "" +msgstr "已分配的庫存物品將退回庫存" -#: templates/js/translated/build.js:872 +#: templates/js/translated/build.js:875 msgid "Delete Build Outputs" -msgstr "" +msgstr "刪除生產輸出" -#: templates/js/translated/build.js:959 +#: templates/js/translated/build.js:962 msgid "Delete allocations" -msgstr "" +msgstr "刪除分配" -#: templates/js/translated/build.js:966 +#: templates/js/translated/build.js:969 msgid "Delete Stock Allocations" -msgstr "" +msgstr "刪除庫存分配" -#: templates/js/translated/build.js:989 +#: templates/js/translated/build.js:992 msgid "No allocated stock" -msgstr "" +msgstr "未分配庫存" -#: templates/js/translated/build.js:1045 +#: templates/js/translated/build.js:1048 msgid "Stock item" -msgstr "" +msgstr "庫存項" -#: templates/js/translated/build.js:1070 +#: templates/js/translated/build.js:1073 msgid "Edit build allocation" -msgstr "" +msgstr "編輯庫存分配" -#: templates/js/translated/build.js:1071 +#: templates/js/translated/build.js:1074 msgid "Delete build allocation" -msgstr "" +msgstr "刪除構建分配" -#: templates/js/translated/build.js:1089 +#: templates/js/translated/build.js:1092 msgid "Edit Build Allocation" -msgstr "" +msgstr "編輯構建分配" -#: templates/js/translated/build.js:1102 +#: templates/js/translated/build.js:1105 msgid "Delete Build Allocation" -msgstr "" +msgstr "刪除構建分配" -#: templates/js/translated/build.js:1133 +#: templates/js/translated/build.js:1136 msgid "No build order allocations found" -msgstr "" +msgstr "未找到生產訂單分配" -#: templates/js/translated/build.js:1178 +#: templates/js/translated/build.js:1181 msgid "Location not specified" -msgstr "" +msgstr "未指定位置" -#: templates/js/translated/build.js:1200 +#: templates/js/translated/build.js:1203 msgid "Complete outputs" -msgstr "" +msgstr "已完成輸出" -#: templates/js/translated/build.js:1218 +#: templates/js/translated/build.js:1221 msgid "Scrap outputs" -msgstr "" +msgstr "報廢輸出" -#: templates/js/translated/build.js:1236 +#: templates/js/translated/build.js:1239 msgid "Delete outputs" -msgstr "" +msgstr "刪除輸出" -#: templates/js/translated/build.js:1289 +#: templates/js/translated/build.js:1292 msgid "build output" -msgstr "" +msgstr "生產輸出" -#: templates/js/translated/build.js:1290 +#: templates/js/translated/build.js:1293 msgid "build outputs" -msgstr "" +msgstr "生產輸出" -#: templates/js/translated/build.js:1294 +#: templates/js/translated/build.js:1297 msgid "Build output actions" -msgstr "" +msgstr "生產輸出操作" -#: templates/js/translated/build.js:1470 +#: templates/js/translated/build.js:1473 msgid "No active build outputs found" -msgstr "" +msgstr "未找到激活的生產輸出" -#: templates/js/translated/build.js:1563 +#: templates/js/translated/build.js:1566 msgid "Allocated Lines" -msgstr "" +msgstr "已分配行" -#: templates/js/translated/build.js:1577 +#: templates/js/translated/build.js:1580 msgid "Required Tests" -msgstr "" +msgstr "需要的測試" -#: templates/js/translated/build.js:1749 -#: templates/js/translated/purchase_order.js:611 -#: templates/js/translated/sales_order.js:1207 +#: templates/js/translated/build.js:1752 +#: templates/js/translated/purchase_order.js:594 +#: templates/js/translated/sales_order.js:1173 msgid "Select Parts" -msgstr "" +msgstr "選擇零件" -#: templates/js/translated/build.js:1750 -#: templates/js/translated/sales_order.js:1208 +#: templates/js/translated/build.js:1753 +#: templates/js/translated/sales_order.js:1174 msgid "You must select at least one part to allocate" -msgstr "" +msgstr "您必須選擇至少一個要分配的零件" -#: templates/js/translated/build.js:1813 -#: templates/js/translated/sales_order.js:1157 +#: templates/js/translated/build.js:1816 +#: templates/js/translated/sales_order.js:1123 msgid "Specify stock allocation quantity" -msgstr "" +msgstr "指定庫存分配數量" -#: templates/js/translated/build.js:1890 +#: templates/js/translated/build.js:1893 msgid "All Parts Allocated" -msgstr "" +msgstr "所有零件已分配" -#: templates/js/translated/build.js:1891 +#: templates/js/translated/build.js:1894 msgid "All selected parts have been fully allocated" -msgstr "" +msgstr "所有選定的零件均已完全分配" -#: templates/js/translated/build.js:1905 -#: templates/js/translated/sales_order.js:1222 +#: templates/js/translated/build.js:1908 +#: templates/js/translated/sales_order.js:1188 msgid "Select source location (leave blank to take from all locations)" -msgstr "" +msgstr "選擇源位置 (留空以從所有位置取出)" -#: templates/js/translated/build.js:1933 +#: templates/js/translated/build.js:1936 msgid "Allocate Stock Items to Build Order" -msgstr "" +msgstr "分配庫存項目給生產訂單" -#: templates/js/translated/build.js:1944 -#: templates/js/translated/sales_order.js:1319 +#: templates/js/translated/build.js:1947 +#: templates/js/translated/sales_order.js:1285 msgid "No matching stock locations" -msgstr "" +msgstr "沒有匹配的庫存位置" -#: templates/js/translated/build.js:2017 -#: templates/js/translated/sales_order.js:1398 +#: templates/js/translated/build.js:2020 +#: templates/js/translated/sales_order.js:1364 msgid "No matching stock items" -msgstr "" - -#: templates/js/translated/build.js:2114 -msgid "Automatic Stock Allocation" -msgstr "" - -#: templates/js/translated/build.js:2115 -msgid "Stock items will be automatically allocated to this build order, according to the provided guidelines" -msgstr "" +msgstr "沒有匹配的庫存項" #: templates/js/translated/build.js:2117 -msgid "If a location is specified, stock will only be allocated from that location" -msgstr "" +msgid "Automatic Stock Allocation" +msgstr "自動庫存分配" #: templates/js/translated/build.js:2118 +msgid "Stock items will be automatically allocated to this build order, according to the provided guidelines" +msgstr "根據提供的指導方針,庫存物品將自動分配給此生產訂單" + +#: templates/js/translated/build.js:2120 +msgid "If a location is specified, stock will only be allocated from that location" +msgstr "如果指定了位置,則僅從該位置分配庫存" + +#: templates/js/translated/build.js:2121 msgid "If stock is considered interchangeable, it will be allocated from the first location it is found" -msgstr "" +msgstr "如果認為庫存可以互換,則將從找到的第一個位置進行分配" -#: templates/js/translated/build.js:2119 +#: templates/js/translated/build.js:2122 msgid "If substitute stock is allowed, it will be used where stock of the primary part cannot be found" -msgstr "" +msgstr "如果允許使用替代品,則將在找不到主要零件庫存的情況下使用" -#: templates/js/translated/build.js:2149 +#: templates/js/translated/build.js:2152 msgid "Allocate Stock Items" -msgstr "" +msgstr "分配庫存物品" -#: templates/js/translated/build.js:2254 +#: templates/js/translated/build.js:2257 msgid "No builds matching query" -msgstr "" +msgstr "沒有與查詢匹配的構建" -#: templates/js/translated/build.js:2289 templates/js/translated/build.js:2652 +#: templates/js/translated/build.js:2292 templates/js/translated/build.js:2661 #: templates/js/translated/forms.js:2196 templates/js/translated/forms.js:2212 #: templates/js/translated/part.js:2322 templates/js/translated/part.js:2761 -#: templates/js/translated/stock.js:2068 templates/js/translated/stock.js:2795 +#: templates/js/translated/stock.js:2069 templates/js/translated/stock.js:2796 msgid "Select" -msgstr "" +msgstr "選擇" -#: templates/js/translated/build.js:2303 +#: templates/js/translated/build.js:2306 msgid "Build order is overdue" -msgstr "" +msgstr "生產訂單已逾期" -#: templates/js/translated/build.js:2385 templates/js/translated/stock.js:3126 +#: templates/js/translated/build.js:2388 templates/js/translated/stock.js:3127 msgid "No user information" -msgstr "" +msgstr "沒有用户信息" -#: templates/js/translated/build.js:2561 -#: templates/js/translated/sales_order.js:1682 +#: templates/js/translated/build.js:2568 +#: templates/js/translated/sales_order.js:1663 msgid "Edit stock allocation" -msgstr "" +msgstr "編輯庫存分配" -#: templates/js/translated/build.js:2562 -#: templates/js/translated/sales_order.js:1683 +#: templates/js/translated/build.js:2569 +#: templates/js/translated/sales_order.js:1664 msgid "Delete stock allocation" -msgstr "" +msgstr "刪除庫存分配" -#: templates/js/translated/build.js:2577 +#: templates/js/translated/build.js:2584 msgid "Edit Allocation" -msgstr "" +msgstr "編輯分配" -#: templates/js/translated/build.js:2589 +#: templates/js/translated/build.js:2596 msgid "Remove Allocation" -msgstr "" +msgstr "刪除分配" -#: templates/js/translated/build.js:2628 +#: templates/js/translated/build.js:2636 msgid "build line" -msgstr "" +msgstr "生產行" -#: templates/js/translated/build.js:2629 +#: templates/js/translated/build.js:2637 msgid "build lines" -msgstr "" +msgstr "生產行" -#: templates/js/translated/build.js:2647 +#: templates/js/translated/build.js:2656 msgid "No build lines found" -msgstr "" +msgstr "未找到生產行" -#: templates/js/translated/build.js:2677 templates/js/translated/part.js:793 +#: templates/js/translated/build.js:2686 templates/js/translated/part.js:793 #: templates/js/translated/part.js:1209 msgid "Trackable part" -msgstr "" +msgstr "可追蹤零件" -#: templates/js/translated/build.js:2720 +#: templates/js/translated/build.js:2729 msgid "Gets Inherited" -msgstr "" +msgstr "獲取已繼承的" -#: templates/js/translated/build.js:2730 +#: templates/js/translated/build.js:2748 msgid "Unit Quantity" -msgstr "" +msgstr "單位數量" -#: templates/js/translated/build.js:2782 -#: templates/js/translated/sales_order.js:1951 +#: templates/js/translated/build.js:2800 +#: templates/js/translated/sales_order.js:1932 msgid "Sufficient stock available" -msgstr "" +msgstr "充足的庫存" -#: templates/js/translated/build.js:2837 +#: templates/js/translated/build.js:2855 msgid "Consumable Item" -msgstr "" - -#: templates/js/translated/build.js:2844 -msgid "Tracked item" -msgstr "" - -#: templates/js/translated/build.js:2845 -msgid "Allocate tracked items against individual build outputs" -msgstr "" - -#: templates/js/translated/build.js:2853 -#: templates/js/translated/sales_order.js:2052 -msgid "Build stock" -msgstr "" - -#: templates/js/translated/build.js:2858 templates/js/translated/stock.js:1953 -msgid "Order stock" -msgstr "" +msgstr "消耗品" #: templates/js/translated/build.js:2862 -#: templates/js/translated/sales_order.js:2046 -msgid "Allocate stock" -msgstr "" +msgid "Tracked item" +msgstr "跟蹤項目" -#: templates/js/translated/build.js:2866 +#: templates/js/translated/build.js:2863 +msgid "Allocate tracked items against individual build outputs" +msgstr "根據單個構建輸出分配跟蹤項目" + +#: templates/js/translated/build.js:2871 +#: templates/js/translated/sales_order.js:2033 +msgid "Build stock" +msgstr "生產庫存" + +#: templates/js/translated/build.js:2876 templates/js/translated/stock.js:1954 +msgid "Order stock" +msgstr "訂單庫存" + +#: templates/js/translated/build.js:2880 +#: templates/js/translated/sales_order.js:2027 +msgid "Allocate stock" +msgstr "分配庫存" + +#: templates/js/translated/build.js:2884 msgid "Remove stock allocation" -msgstr "" +msgstr "移除庫存分配" #: templates/js/translated/company.js:98 msgid "Add Manufacturer" -msgstr "" +msgstr "添加製造商" #: templates/js/translated/company.js:111 -#: templates/js/translated/company.js:213 +#: templates/js/translated/company.js:214 msgid "Add Manufacturer Part" -msgstr "" +msgstr "添加製造商零件" #: templates/js/translated/company.js:132 msgid "Edit Manufacturer Part" -msgstr "" +msgstr "編輯製造商零件" -#: templates/js/translated/company.js:201 +#: templates/js/translated/company.js:202 #: templates/js/translated/purchase_order.js:93 msgid "Add Supplier" -msgstr "" +msgstr "添加供應商" -#: templates/js/translated/company.js:243 -#: templates/js/translated/purchase_order.js:318 +#: templates/js/translated/company.js:244 +#: templates/js/translated/purchase_order.js:301 msgid "Add Supplier Part" -msgstr "" +msgstr "添加供應商零件" -#: templates/js/translated/company.js:344 +#: templates/js/translated/company.js:345 msgid "All selected supplier parts will be deleted" -msgstr "" +msgstr "所有選中的供應商零件將被刪除" -#: templates/js/translated/company.js:360 +#: templates/js/translated/company.js:361 msgid "Delete Supplier Parts" -msgstr "" +msgstr "刪除供應商零件" -#: templates/js/translated/company.js:466 +#: templates/js/translated/company.js:467 msgid "Add new Company" -msgstr "" +msgstr "添加新公司" -#: templates/js/translated/company.js:546 +#: templates/js/translated/company.js:547 msgid "Parts Supplied" -msgstr "" +msgstr "零件已提供" -#: templates/js/translated/company.js:555 +#: templates/js/translated/company.js:556 msgid "Parts Manufactured" -msgstr "" +msgstr "零件已製造" -#: templates/js/translated/company.js:570 +#: templates/js/translated/company.js:571 msgid "No company information found" -msgstr "" +msgstr "未找到該公司信息" -#: templates/js/translated/company.js:619 +#: templates/js/translated/company.js:620 msgid "Create New Contact" -msgstr "" +msgstr "創建新的聯繫人" -#: templates/js/translated/company.js:635 -#: templates/js/translated/company.js:758 +#: templates/js/translated/company.js:636 +#: templates/js/translated/company.js:759 msgid "Edit Contact" -msgstr "" +msgstr "編輯聯繫人" -#: templates/js/translated/company.js:672 +#: templates/js/translated/company.js:673 msgid "All selected contacts will be deleted" -msgstr "" +msgstr "所有選定的聯繫人都將被刪除" -#: templates/js/translated/company.js:678 -#: templates/js/translated/company.js:742 +#: templates/js/translated/company.js:679 +#: templates/js/translated/company.js:743 msgid "Role" -msgstr "" +msgstr "職位" -#: templates/js/translated/company.js:686 +#: templates/js/translated/company.js:687 msgid "Delete Contacts" -msgstr "" +msgstr "刪除聯繫人" -#: templates/js/translated/company.js:717 +#: templates/js/translated/company.js:718 msgid "No contacts found" -msgstr "" +msgstr "未找到聯繫人" -#: templates/js/translated/company.js:730 +#: templates/js/translated/company.js:731 msgid "Phone Number" -msgstr "" +msgstr "電話號碼" -#: templates/js/translated/company.js:736 +#: templates/js/translated/company.js:737 msgid "Email Address" -msgstr "" +msgstr "電子郵件地址" -#: templates/js/translated/company.js:762 +#: templates/js/translated/company.js:763 msgid "Delete Contact" -msgstr "" +msgstr "刪除聯繫人" -#: templates/js/translated/company.js:859 +#: templates/js/translated/company.js:860 msgid "Create New Address" -msgstr "" +msgstr "創建新地址" -#: templates/js/translated/company.js:874 -#: templates/js/translated/company.js:1035 +#: templates/js/translated/company.js:875 +#: templates/js/translated/company.js:1036 msgid "Edit Address" -msgstr "" +msgstr "編輯地址" -#: templates/js/translated/company.js:909 +#: templates/js/translated/company.js:910 msgid "All selected addresses will be deleted" -msgstr "" +msgstr "所有選中的地址將被刪除" -#: templates/js/translated/company.js:923 +#: templates/js/translated/company.js:924 msgid "Delete Addresses" -msgstr "" +msgstr "刪除地址" -#: templates/js/translated/company.js:950 +#: templates/js/translated/company.js:951 msgid "No addresses found" -msgstr "" +msgstr "未找到地址" -#: templates/js/translated/company.js:989 +#: templates/js/translated/company.js:990 msgid "Postal city" -msgstr "" +msgstr "郵政編碼" -#: templates/js/translated/company.js:995 +#: templates/js/translated/company.js:996 msgid "State/province" -msgstr "" +msgstr "省/市/自治區" -#: templates/js/translated/company.js:1007 +#: templates/js/translated/company.js:1008 msgid "Courier notes" -msgstr "" +msgstr "快遞單" -#: templates/js/translated/company.js:1013 +#: templates/js/translated/company.js:1014 msgid "Internal notes" -msgstr "" +msgstr "內部備註" -#: templates/js/translated/company.js:1039 +#: templates/js/translated/company.js:1040 msgid "Delete Address" -msgstr "" +msgstr "刪除地址" -#: templates/js/translated/company.js:1112 +#: templates/js/translated/company.js:1113 msgid "All selected manufacturer parts will be deleted" -msgstr "" +msgstr "所有選定的製造商零件都將被刪除" -#: templates/js/translated/company.js:1127 +#: templates/js/translated/company.js:1128 msgid "Delete Manufacturer Parts" -msgstr "" +msgstr "刪除製造商零件" -#: templates/js/translated/company.js:1161 +#: templates/js/translated/company.js:1162 msgid "All selected parameters will be deleted" -msgstr "" +msgstr "所有選定的參數都將被刪除" -#: templates/js/translated/company.js:1175 +#: templates/js/translated/company.js:1176 msgid "Delete Parameters" -msgstr "" +msgstr "刪除參數" -#: templates/js/translated/company.js:1191 -#: templates/js/translated/company.js:1479 templates/js/translated/part.js:2250 +#: templates/js/translated/company.js:1192 +#: templates/js/translated/company.js:1480 templates/js/translated/part.js:2250 msgid "Order parts" -msgstr "" +msgstr "訂購零件" -#: templates/js/translated/company.js:1208 +#: templates/js/translated/company.js:1209 msgid "Delete manufacturer parts" -msgstr "" +msgstr "刪除製造商零件" -#: templates/js/translated/company.js:1240 +#: templates/js/translated/company.js:1241 msgid "Manufacturer part actions" -msgstr "" +msgstr "製造商零件操作" -#: templates/js/translated/company.js:1259 +#: templates/js/translated/company.js:1260 msgid "No manufacturer parts found" -msgstr "" +msgstr "未找到製造商零件" -#: templates/js/translated/company.js:1279 -#: templates/js/translated/company.js:1567 templates/js/translated/part.js:801 +#: templates/js/translated/company.js:1280 +#: templates/js/translated/company.js:1568 templates/js/translated/part.js:801 #: templates/js/translated/part.js:1217 msgid "Template part" -msgstr "" +msgstr "模板零件" -#: templates/js/translated/company.js:1283 -#: templates/js/translated/company.js:1571 templates/js/translated/part.js:805 +#: templates/js/translated/company.js:1284 +#: templates/js/translated/company.js:1572 templates/js/translated/part.js:805 #: templates/js/translated/part.js:1221 msgid "Assembled part" -msgstr "" +msgstr "裝配零件" -#: templates/js/translated/company.js:1403 templates/js/translated/part.js:1471 +#: templates/js/translated/company.js:1404 templates/js/translated/part.js:1471 msgid "No parameters found" -msgstr "" +msgstr "未找到參數" -#: templates/js/translated/company.js:1438 templates/js/translated/part.js:1534 +#: templates/js/translated/company.js:1439 templates/js/translated/part.js:1534 msgid "Edit parameter" -msgstr "" +msgstr "編輯參數" -#: templates/js/translated/company.js:1439 templates/js/translated/part.js:1535 +#: templates/js/translated/company.js:1440 templates/js/translated/part.js:1535 msgid "Delete parameter" -msgstr "" +msgstr "刪除參數" -#: templates/js/translated/company.js:1456 templates/js/translated/part.js:1440 +#: templates/js/translated/company.js:1457 templates/js/translated/part.js:1440 msgid "Edit Parameter" -msgstr "" +msgstr "編輯參數" -#: templates/js/translated/company.js:1465 templates/js/translated/part.js:1556 +#: templates/js/translated/company.js:1466 templates/js/translated/part.js:1556 msgid "Delete Parameter" -msgstr "" +msgstr "刪除參數" -#: templates/js/translated/company.js:1496 +#: templates/js/translated/company.js:1497 msgid "Delete supplier parts" -msgstr "" +msgstr "刪除供應商零件" -#: templates/js/translated/company.js:1546 +#: templates/js/translated/company.js:1547 msgid "No supplier parts found" -msgstr "" +msgstr "未找到供應商零件" -#: templates/js/translated/company.js:1664 +#: templates/js/translated/company.js:1665 msgid "Base Units" -msgstr "" +msgstr "基礎單位" -#: templates/js/translated/company.js:1694 +#: templates/js/translated/company.js:1695 msgid "Availability" -msgstr "" - -#: templates/js/translated/company.js:1725 -msgid "Edit supplier part" -msgstr "" +msgstr "可用性" #: templates/js/translated/company.js:1726 -msgid "Delete supplier part" -msgstr "" +msgid "Edit supplier part" +msgstr "編輯供應商零件" -#: templates/js/translated/company.js:1779 +#: templates/js/translated/company.js:1727 +msgid "Delete supplier part" +msgstr "刪除供應商零件" + +#: templates/js/translated/company.js:1780 #: templates/js/translated/pricing.js:694 msgid "Delete Price Break" -msgstr "" +msgstr "刪除批發價" -#: templates/js/translated/company.js:1789 +#: templates/js/translated/company.js:1790 #: templates/js/translated/pricing.js:712 msgid "Edit Price Break" -msgstr "" +msgstr "編輯批發價" -#: templates/js/translated/company.js:1804 +#: templates/js/translated/company.js:1805 msgid "No price break information found" -msgstr "" +msgstr "找不到批發價信息" -#: templates/js/translated/company.js:1833 +#: templates/js/translated/company.js:1834 msgid "Last updated" -msgstr "" - -#: templates/js/translated/company.js:1840 -msgid "Edit price break" -msgstr "" +msgstr "最近更新" #: templates/js/translated/company.js:1841 +msgid "Edit price break" +msgstr "編輯批發價" + +#: templates/js/translated/company.js:1842 msgid "Delete price break" -msgstr "" +msgstr "刪除批發價" #: templates/js/translated/filters.js:189 #: templates/js/translated/filters.js:670 msgid "true" -msgstr "" +msgstr "真" #: templates/js/translated/filters.js:193 #: templates/js/translated/filters.js:671 msgid "false" -msgstr "" +msgstr "假" #: templates/js/translated/filters.js:217 msgid "Select filter" -msgstr "" +msgstr "選擇篩選器" #: templates/js/translated/filters.js:440 msgid "Print Labels" -msgstr "" +msgstr "打印標籤" #: templates/js/translated/filters.js:444 msgid "Print Reports" -msgstr "" +msgstr "打印報告" #: templates/js/translated/filters.js:456 msgid "Download table data" -msgstr "" +msgstr "下載表格數據" #: templates/js/translated/filters.js:463 msgid "Reload table data" -msgstr "" +msgstr "重新加載表格數據" #: templates/js/translated/filters.js:472 msgid "Add new filter" -msgstr "" +msgstr "添加新篩選器" #: templates/js/translated/filters.js:480 msgid "Clear all filters" -msgstr "" +msgstr "清除所有篩選條件" #: templates/js/translated/filters.js:580 msgid "Create filter" -msgstr "" +msgstr "創建篩選條件" #: templates/js/translated/forms.js:379 templates/js/translated/forms.js:394 #: templates/js/translated/forms.js:408 templates/js/translated/forms.js:422 msgid "Action Prohibited" -msgstr "" +msgstr "禁止操作" #: templates/js/translated/forms.js:381 msgid "Create operation not allowed" -msgstr "" +msgstr "不允許創建操作" #: templates/js/translated/forms.js:396 msgid "Update operation not allowed" -msgstr "" +msgstr "不允許更新操作" #: templates/js/translated/forms.js:410 msgid "Delete operation not allowed" -msgstr "" +msgstr "不允許刪除操作" #: templates/js/translated/forms.js:424 msgid "View operation not allowed" -msgstr "" +msgstr "不允許查看操作" #: templates/js/translated/forms.js:801 msgid "Keep this form open" -msgstr "" +msgstr "保持此表單打開" #: templates/js/translated/forms.js:904 msgid "Enter a valid number" -msgstr "" +msgstr "輸入有效數字" #: templates/js/translated/forms.js:1478 templates/modals.html:19 #: templates/modals.html:43 msgid "Form errors exist" -msgstr "" +msgstr "存在表單錯誤" #: templates/js/translated/forms.js:2008 msgid "No results found" -msgstr "" +msgstr "未找到結果" #: templates/js/translated/forms.js:2318 templates/js/translated/search.js:239 msgid "Searching" -msgstr "" +msgstr "搜索中" #: templates/js/translated/forms.js:2532 msgid "Clear input" -msgstr "" +msgstr "清空輸入" #: templates/js/translated/forms.js:3134 msgid "File Column" -msgstr "" +msgstr "文件列" #: templates/js/translated/forms.js:3134 msgid "Field Name" -msgstr "" +msgstr "字段名稱" #: templates/js/translated/forms.js:3146 msgid "Select Columns" -msgstr "" +msgstr "選擇列" -#: templates/js/translated/helpers.js:80 +#: templates/js/translated/helpers.js:81 msgid "YES" -msgstr "" +msgstr "是" -#: templates/js/translated/helpers.js:83 +#: templates/js/translated/helpers.js:84 msgid "NO" -msgstr "" - -#: templates/js/translated/helpers.js:96 -msgid "True" -msgstr "" +msgstr "否" #: templates/js/translated/helpers.js:97 +msgid "True" +msgstr "真" + +#: templates/js/translated/helpers.js:98 msgid "False" -msgstr "" +msgstr "假" #: templates/js/translated/index.js:104 msgid "No parts required for builds" -msgstr "" +msgstr "生產時無需零件" #: templates/js/translated/label.js:48 templates/js/translated/report.js:38 msgid "Select Items" -msgstr "" +msgstr "選擇項目" #: templates/js/translated/label.js:49 templates/js/translated/report.js:39 msgid "No items selected for printing" -msgstr "" +msgstr "未選擇要打印的項目" #: templates/js/translated/label.js:143 msgid "Labels sent to printer" -msgstr "" +msgstr "標籤已發送到打印機" #: templates/js/translated/modals.js:59 templates/js/translated/modals.js:159 #: templates/js/translated/modals.js:688 msgid "Cancel" -msgstr "" +msgstr "取消" #: templates/js/translated/modals.js:64 templates/js/translated/modals.js:158 #: templates/js/translated/modals.js:756 templates/js/translated/modals.js:1064 #: templates/modals.html:28 templates/modals.html:51 msgid "Submit" -msgstr "" +msgstr "提交" #: templates/js/translated/modals.js:157 msgid "Form Title" -msgstr "" +msgstr "表單標題" #: templates/js/translated/modals.js:446 msgid "Waiting for server..." -msgstr "" +msgstr "等待服務器..." #: templates/js/translated/modals.js:597 msgid "Show Error Information" -msgstr "" +msgstr "顯示錯誤信息" #: templates/js/translated/modals.js:687 msgid "Accept" -msgstr "" +msgstr "接受" #: templates/js/translated/modals.js:745 msgid "Loading Data" -msgstr "" +msgstr "正在加載數據" #: templates/js/translated/modals.js:1016 msgid "Invalid response from server" -msgstr "" +msgstr "來自服務器的響應無效" #: templates/js/translated/modals.js:1016 msgid "Form data missing from server response" -msgstr "" +msgstr "服務器響應中缺少表單數據" #: templates/js/translated/modals.js:1028 msgid "Error posting form data" -msgstr "" +msgstr "發佈表單數據時出錯" #: templates/js/translated/modals.js:1125 msgid "JSON response missing form data" -msgstr "" +msgstr "JSON 響應缺少表單數據" #: templates/js/translated/modals.js:1140 msgid "Error 400: Bad Request" -msgstr "" +msgstr "錯誤 400: 無效請求" #: templates/js/translated/modals.js:1141 msgid "Server returned error code 400" -msgstr "" +msgstr "服務器返回錯誤代碼 400" #: templates/js/translated/modals.js:1164 msgid "Error requesting form data" -msgstr "" +msgstr "請求表單數據時出錯" #: templates/js/translated/news.js:33 msgid "No news found" -msgstr "" +msgstr "未找到新聞" #: templates/js/translated/news.js:38 #: templates/js/translated/notification.js:46 #: templates/js/translated/part.js:1611 msgid "ID" -msgstr "" +msgstr "ID" #: templates/js/translated/notification.js:52 msgid "Age" -msgstr "" +msgstr "年齡" #: templates/js/translated/notification.js:65 msgid "Notification" -msgstr "" +msgstr "通知" #: templates/js/translated/notification.js:224 msgid "Mark as unread" -msgstr "" +msgstr "標記為未讀" #: templates/js/translated/notification.js:228 msgid "Mark as read" -msgstr "" +msgstr "標記為已讀" #: templates/js/translated/notification.js:254 msgid "No unread notifications" -msgstr "" +msgstr "無未讀通知" #: templates/js/translated/notification.js:296 templates/notifications.html:12 msgid "Notifications will load here" -msgstr "" +msgstr "通知將在此處加載" #: templates/js/translated/order.js:48 msgid "Hold Order" -msgstr "" +msgstr "掛起訂單" #: templates/js/translated/order.js:53 msgid "Are you sure you wish to place this order on hold?" -msgstr "" +msgstr "您確定要掛起此訂單嗎?" #: templates/js/translated/order.js:114 msgid "Add Extra Line Item" -msgstr "" +msgstr "添加額外行項目" #: templates/js/translated/order.js:151 msgid "Export Order" -msgstr "" +msgstr "導出訂單" #: templates/js/translated/order.js:266 msgid "Duplicate Line" -msgstr "" +msgstr "複製行" #: templates/js/translated/order.js:280 msgid "Edit Line" -msgstr "" +msgstr "編輯行" #: templates/js/translated/order.js:293 msgid "Delete Line" -msgstr "" +msgstr "刪除行" #: templates/js/translated/order.js:306 -#: templates/js/translated/purchase_order.js:2060 +#: templates/js/translated/purchase_order.js:2044 msgid "No line items found" -msgstr "" +msgstr "沒有找到行項目" #: templates/js/translated/order.js:394 msgid "Duplicate line" -msgstr "" +msgstr "複製行" #: templates/js/translated/order.js:395 msgid "Edit line" -msgstr "" +msgstr "編輯行" #: templates/js/translated/order.js:399 msgid "Delete line" -msgstr "" +msgstr "刪除行" #: templates/js/translated/part.js:91 msgid "Part Attributes" -msgstr "" +msgstr "零件屬性" #: templates/js/translated/part.js:95 msgid "Part Creation Options" -msgstr "" +msgstr "零件創建選項" #: templates/js/translated/part.js:99 msgid "Part Duplication Options" -msgstr "" +msgstr "零件複製選項" #: templates/js/translated/part.js:122 msgid "Add Part Category" -msgstr "" +msgstr "增加零件類別" #: templates/js/translated/part.js:334 templates/js/translated/stock.js:147 #: templates/js/translated/stock.js:182 msgid "Icon (optional) - Explore all available icons on" -msgstr "" +msgstr "圖標(可選) - 瀏覽所有可用圖標" #: templates/js/translated/part.js:355 msgid "Create Part Category" -msgstr "" +msgstr "創建零件類別" #: templates/js/translated/part.js:358 msgid "Create new category after this one" -msgstr "" +msgstr "在此類別之後創建新類別" #: templates/js/translated/part.js:359 msgid "Part category created" -msgstr "" +msgstr "零件類別已創建" #: templates/js/translated/part.js:373 msgid "Edit Part Category" -msgstr "" +msgstr "編輯零件類別" #: templates/js/translated/part.js:386 msgid "Are you sure you want to delete this part category?" -msgstr "" +msgstr "您確定要刪除此零件類別嗎?" #: templates/js/translated/part.js:391 msgid "Move to parent category" -msgstr "" +msgstr "移動到父類別" #: templates/js/translated/part.js:400 msgid "Delete Part Category" -msgstr "" +msgstr "刪除零件類別" #: templates/js/translated/part.js:404 msgid "Action for parts in this category" -msgstr "" +msgstr "對此類別中零件的操作" #: templates/js/translated/part.js:409 msgid "Action for child categories" -msgstr "" +msgstr "針對子類別採取的操作" #: templates/js/translated/part.js:433 msgid "Create Part" -msgstr "" +msgstr "創建零件" #: templates/js/translated/part.js:435 msgid "Create another part after this one" -msgstr "" +msgstr "在此零件之後創建另一個零件" #: templates/js/translated/part.js:436 msgid "Part created successfully" -msgstr "" +msgstr "零件創建成功" #: templates/js/translated/part.js:464 msgid "Edit Part" -msgstr "" +msgstr "編輯零件" #: templates/js/translated/part.js:466 msgid "Part edited" -msgstr "" +msgstr "已編輯零件" #: templates/js/translated/part.js:477 msgid "Create Part Variant" -msgstr "" +msgstr "創建零件變體" #: templates/js/translated/part.js:534 msgid "Active Part" -msgstr "" +msgstr "激活的零件" #: templates/js/translated/part.js:535 msgid "Part cannot be deleted as it is currently active" -msgstr "" +msgstr "無法刪除零件,因為它當前處於活動狀態" #: templates/js/translated/part.js:549 msgid "Deleting this part cannot be reversed" -msgstr "" +msgstr "刪除此零件無法撤銷" #: templates/js/translated/part.js:551 msgid "Any stock items for this part will be deleted" -msgstr "" +msgstr "此零件的任何庫存項目都將被刪除" #: templates/js/translated/part.js:552 msgid "This part will be removed from any Bills of Material" -msgstr "" +msgstr "此零件將從任何物料清單中刪除" #: templates/js/translated/part.js:553 msgid "All manufacturer and supplier information for this part will be deleted" -msgstr "" +msgstr "此零件的所有制造商和供應商信息都將被刪除" #: templates/js/translated/part.js:560 msgid "Delete Part" -msgstr "" +msgstr "刪除零件" #: templates/js/translated/part.js:596 msgid "You are subscribed to notifications for this item" -msgstr "" +msgstr "您已訂閲此項目的通知" #: templates/js/translated/part.js:598 msgid "You have subscribed to notifications for this item" -msgstr "" +msgstr "您已訂閲此項目的通知" #: templates/js/translated/part.js:603 msgid "Subscribe to notifications for this item" -msgstr "" +msgstr "訂閲此項目的通知" #: templates/js/translated/part.js:605 msgid "You have unsubscribed to notifications for this item" -msgstr "" +msgstr "您已取消訂閲此項目的通知" #: templates/js/translated/part.js:622 msgid "Validating the BOM will mark each line item as valid" -msgstr "" +msgstr "驗證物料清單將標記每個行項目為有效" #: templates/js/translated/part.js:632 msgid "Validate Bill of Materials" -msgstr "" +msgstr "驗證物料清單" #: templates/js/translated/part.js:635 msgid "Validated Bill of Materials" -msgstr "" +msgstr "已驗證物料清單" #: templates/js/translated/part.js:660 msgid "Copy Bill of Materials" -msgstr "" +msgstr "複製物料清單" #: templates/js/translated/part.js:688 #: templates/js/translated/table_filters.js:755 msgid "Low stock" -msgstr "" +msgstr "低庫存" #: templates/js/translated/part.js:691 msgid "No stock available" -msgstr "" +msgstr "無可用庫存" #: templates/js/translated/part.js:751 msgid "Demand" -msgstr "" +msgstr "需求" #: templates/js/translated/part.js:774 msgid "Unit" -msgstr "" +msgstr "單位" #: templates/js/translated/part.js:797 templates/js/translated/part.js:1213 msgid "Virtual part" -msgstr "" +msgstr "虛擬零件" #: templates/js/translated/part.js:809 msgid "Subscribed part" -msgstr "" +msgstr "訂閲的零件" #: templates/js/translated/part.js:813 msgid "Salable part" -msgstr "" +msgstr "可銷售的零件" #: templates/js/translated/part.js:896 msgid "Schedule generation of a new stocktake report." -msgstr "" +msgstr "計劃生成新的盤點報告。" #: templates/js/translated/part.js:896 msgid "Once complete, the stocktake report will be available for download." -msgstr "" +msgstr "一旦完成,盤點報告將可供下載。" #: templates/js/translated/part.js:904 msgid "Generate Stocktake Report" -msgstr "" +msgstr "生成盤點報告" #: templates/js/translated/part.js:908 msgid "Stocktake report scheduled" -msgstr "" +msgstr "計劃盤點報告" #: templates/js/translated/part.js:1057 msgid "No stocktake information available" -msgstr "" +msgstr "沒有可用的盤點信息" #: templates/js/translated/part.js:1115 templates/js/translated/part.js:1151 msgid "Edit Stocktake Entry" -msgstr "" +msgstr "編輯盤點條目" #: templates/js/translated/part.js:1119 templates/js/translated/part.js:1161 msgid "Delete Stocktake Entry" -msgstr "" +msgstr "刪除盤點條目" #: templates/js/translated/part.js:1288 msgid "No variants found" -msgstr "" +msgstr "未找到變體" #: templates/js/translated/part.js:1606 msgid "No part parameter templates found" -msgstr "" +msgstr "未找到零件參數模板" #: templates/js/translated/part.js:1669 msgid "Edit Part Parameter Template" -msgstr "" +msgstr "編輯零件參數模板" #: templates/js/translated/part.js:1681 msgid "Any parameters which reference this template will also be deleted" -msgstr "" +msgstr "引用此模板的任何參數也將被刪除" #: templates/js/translated/part.js:1689 msgid "Delete Part Parameter Template" -msgstr "" +msgstr "刪除零件參數模板" #: templates/js/translated/part.js:1723 -#: templates/js/translated/purchase_order.js:1724 +#: templates/js/translated/purchase_order.js:1708 msgid "No purchase orders found" -msgstr "" +msgstr "未發現採購訂單" #: templates/js/translated/part.js:1867 -#: templates/js/translated/purchase_order.js:2223 +#: templates/js/translated/purchase_order.js:2207 #: templates/js/translated/return_order.js:754 -#: templates/js/translated/sales_order.js:1911 +#: templates/js/translated/sales_order.js:1892 msgid "This line item is overdue" -msgstr "" +msgstr "此行項目已逾期" #: templates/js/translated/part.js:1913 -#: templates/js/translated/purchase_order.js:2290 +#: templates/js/translated/purchase_order.js:2274 msgid "Receive line item" -msgstr "" +msgstr "收到行項目" #: templates/js/translated/part.js:1976 msgid "Delete part relationship" -msgstr "" +msgstr "刪除零件關係" #: templates/js/translated/part.js:1998 msgid "Delete Part Relationship" -msgstr "" +msgstr "刪除零件關係" #: templates/js/translated/part.js:2086 templates/js/translated/part.js:2525 msgid "No parts found" -msgstr "" +msgstr "找不到零件" #: templates/js/translated/part.js:2207 msgid "Set the part category for the selected parts" -msgstr "" +msgstr "為所選零件設置零件類別" #: templates/js/translated/part.js:2212 msgid "Set Part Category" -msgstr "" +msgstr "設置零件類別" #: templates/js/translated/part.js:2241 msgid "Set category" -msgstr "" +msgstr "設置類別" #: templates/js/translated/part.js:2293 msgid "part" -msgstr "" +msgstr "零件" #: templates/js/translated/part.js:2294 msgid "parts" -msgstr "" +msgstr "零件" #: templates/js/translated/part.js:2390 msgid "No category" -msgstr "" +msgstr "無類別" #: templates/js/translated/part.js:2550 templates/js/translated/part.js:2680 -#: templates/js/translated/stock.js:2754 +#: templates/js/translated/stock.js:2755 msgid "Display as list" -msgstr "" +msgstr "按列表顯示" #: templates/js/translated/part.js:2566 msgid "Display as grid" -msgstr "" +msgstr "按網格顯示" #: templates/js/translated/part.js:2664 msgid "No subcategories found" -msgstr "" +msgstr "未找到子類別" -#: templates/js/translated/part.js:2700 templates/js/translated/stock.js:2774 +#: templates/js/translated/part.js:2700 templates/js/translated/stock.js:2775 msgid "Display as tree" -msgstr "" +msgstr "樹狀顯示" #: templates/js/translated/part.js:2780 msgid "Load Subcategories" -msgstr "" +msgstr "加載子類別" #: templates/js/translated/part.js:2795 msgid "Subscribed category" -msgstr "" +msgstr "已訂閲類別" #: templates/js/translated/part.js:2883 msgid "No test templates matching query" -msgstr "" +msgstr "沒有與查詢匹配的測試模板" #: templates/js/translated/part.js:2905 templates/js/translated/search.js:342 msgid "results" -msgstr "" +msgstr "結果" #: templates/js/translated/part.js:2955 msgid "Edit test template" -msgstr "" +msgstr "編輯測試模板" #: templates/js/translated/part.js:2956 msgid "Delete test template" -msgstr "" +msgstr "刪除測試模板" #: templates/js/translated/part.js:2960 msgid "This test is defined for a parent part" -msgstr "" +msgstr "此測試是為父零件定義的" #: templates/js/translated/part.js:2976 msgid "Edit Test Result Template" -msgstr "" +msgstr "編輯測試結果模板" #: templates/js/translated/part.js:2990 msgid "Delete Test Result Template" -msgstr "" +msgstr "刪除測試結果模板" #: templates/js/translated/part.js:3069 templates/js/translated/part.js:3070 msgid "No date specified" -msgstr "" +msgstr "無指定日期" #: templates/js/translated/part.js:3072 msgid "Specified date is in the past" -msgstr "" +msgstr "指定日期已過" #: templates/js/translated/part.js:3078 msgid "Speculative" -msgstr "" +msgstr "可指定的" -#: templates/js/translated/part.js:3128 +#: templates/js/translated/part.js:3144 msgid "No scheduling information available for this part" -msgstr "" +msgstr "此零件沒有可用的計劃信息" -#: templates/js/translated/part.js:3134 +#: templates/js/translated/part.js:3150 msgid "Error fetching scheduling information for this part" -msgstr "" - -#: templates/js/translated/part.js:3230 -msgid "Scheduled Stock Quantities" -msgstr "" +msgstr "獲取此零件的計劃信息時出錯" #: templates/js/translated/part.js:3246 -msgid "Maximum Quantity" -msgstr "" +msgid "Scheduled Stock Quantities" +msgstr "計劃庫存量" -#: templates/js/translated/part.js:3291 +#: templates/js/translated/part.js:3262 +msgid "Maximum Quantity" +msgstr "最大數量" + +#: templates/js/translated/part.js:3307 msgid "Minimum Stock Level" -msgstr "" +msgstr "最低庫存水平" #: templates/js/translated/plugin.js:46 msgid "No plugins found" -msgstr "" +msgstr "未發現插件" #: templates/js/translated/plugin.js:58 msgid "This plugin is no longer installed" -msgstr "" +msgstr "此插件已不再安裝" #: templates/js/translated/plugin.js:60 msgid "This plugin is active" -msgstr "" +msgstr "此插件處於活動狀態" #: templates/js/translated/plugin.js:62 msgid "This plugin is installed but not active" -msgstr "" +msgstr "此插件已安裝但未處於活動狀態" #: templates/js/translated/plugin.js:117 templates/js/translated/plugin.js:186 msgid "Disable Plugin" -msgstr "" +msgstr "禁用插件" #: templates/js/translated/plugin.js:119 templates/js/translated/plugin.js:186 msgid "Enable Plugin" -msgstr "" +msgstr "啓用插件" #: templates/js/translated/plugin.js:158 msgid "The Plugin was installed" -msgstr "" +msgstr "插件已安裝" #: templates/js/translated/plugin.js:177 msgid "Are you sure you want to enable this plugin?" -msgstr "" +msgstr "您確定要啓用此插件嗎?" #: templates/js/translated/plugin.js:181 msgid "Are you sure you want to disable this plugin?" -msgstr "" +msgstr "您確定要禁用此插件嗎?" #: templates/js/translated/plugin.js:189 msgid "Enable" -msgstr "" +msgstr "啓用" #: templates/js/translated/plugin.js:189 msgid "Disable" -msgstr "" +msgstr "禁用" #: templates/js/translated/plugin.js:203 msgid "Plugin updated" -msgstr "" +msgstr "插件已更新" #: templates/js/translated/pricing.js:159 msgid "Error fetching currency data" -msgstr "" +msgstr "獲取貨幣數據出錯" #: templates/js/translated/pricing.js:321 msgid "No BOM data available" -msgstr "" +msgstr "沒有可用的物料清單數據" #: templates/js/translated/pricing.js:463 msgid "No supplier pricing data available" -msgstr "" +msgstr "沒有可用的供應商價格" #: templates/js/translated/pricing.js:572 msgid "No price break data available" -msgstr "" +msgstr "沒有可用的批發價數據" #: templates/js/translated/pricing.js:755 msgid "No purchase history data available" -msgstr "" +msgstr "沒有可用的購買歷史數據" #: templates/js/translated/pricing.js:791 msgid "Purchase Price History" -msgstr "" +msgstr "購買價格歷史記錄" -#: templates/js/translated/pricing.js:894 +#: templates/js/translated/pricing.js:892 msgid "No sales history data available" -msgstr "" +msgstr "無可用銷售歷史數據" -#: templates/js/translated/pricing.js:916 +#: templates/js/translated/pricing.js:914 msgid "Sale Price History" -msgstr "" +msgstr "售出價格歷史記錄" -#: templates/js/translated/pricing.js:1005 +#: templates/js/translated/pricing.js:1003 msgid "No variant data available" -msgstr "" +msgstr "無可用的變體數據" -#: templates/js/translated/pricing.js:1045 +#: templates/js/translated/pricing.js:1043 msgid "Variant Part" -msgstr "" +msgstr "變體零件" -#: templates/js/translated/purchase_order.js:169 -msgid "Select purchase order to duplicate" -msgstr "" - -#: templates/js/translated/purchase_order.js:176 -msgid "Duplicate Line Items" -msgstr "" - -#: templates/js/translated/purchase_order.js:177 -msgid "Duplicate all line items from the selected order" -msgstr "" - -#: templates/js/translated/purchase_order.js:184 -msgid "Duplicate Extra Lines" -msgstr "" - -#: templates/js/translated/purchase_order.js:185 -msgid "Duplicate extra line items from the selected order" -msgstr "" - -#: templates/js/translated/purchase_order.js:206 +#: templates/js/translated/purchase_order.js:188 msgid "Edit Purchase Order" -msgstr "" +msgstr "編輯採購訂單" -#: templates/js/translated/purchase_order.js:223 +#: templates/js/translated/purchase_order.js:205 msgid "Duplication Options" -msgstr "" +msgstr "複製選項" + +#: templates/js/translated/purchase_order.js:414 +msgid "Complete Purchase Order" +msgstr "完成採購訂單" #: templates/js/translated/purchase_order.js:431 -msgid "Complete Purchase Order" -msgstr "" - -#: templates/js/translated/purchase_order.js:448 #: templates/js/translated/return_order.js:210 -#: templates/js/translated/sales_order.js:552 +#: templates/js/translated/sales_order.js:511 msgid "Mark this order as complete?" -msgstr "" +msgstr "標記該訂單為已完成?" -#: templates/js/translated/purchase_order.js:454 +#: templates/js/translated/purchase_order.js:437 msgid "All line items have been received" -msgstr "" +msgstr "已收到所有行項目" -#: templates/js/translated/purchase_order.js:459 +#: templates/js/translated/purchase_order.js:442 msgid "This order has line items which have not been marked as received." -msgstr "" +msgstr "此訂單中有未標記為已收到的行項目。" -#: templates/js/translated/purchase_order.js:460 +#: templates/js/translated/purchase_order.js:443 msgid "Completing this order means that the order and line items will no longer be editable." -msgstr "" +msgstr "完成此訂單意味着訂單和行項目將不再可編輯。" -#: templates/js/translated/purchase_order.js:483 +#: templates/js/translated/purchase_order.js:466 msgid "Cancel Purchase Order" -msgstr "" +msgstr "取消採購訂單" -#: templates/js/translated/purchase_order.js:488 +#: templates/js/translated/purchase_order.js:471 msgid "Are you sure you wish to cancel this purchase order?" -msgstr "" +msgstr "您確定要取消此採購訂單嗎?" -#: templates/js/translated/purchase_order.js:494 +#: templates/js/translated/purchase_order.js:477 msgid "This purchase order can not be cancelled" -msgstr "" +msgstr "此採購訂單不能取消" -#: templates/js/translated/purchase_order.js:515 +#: templates/js/translated/purchase_order.js:498 #: templates/js/translated/return_order.js:164 msgid "After placing this order, line items will no longer be editable." -msgstr "" +msgstr "下此訂單後,行項目將不再可編輯。" -#: templates/js/translated/purchase_order.js:520 +#: templates/js/translated/purchase_order.js:503 msgid "Issue Purchase Order" -msgstr "" +msgstr "發佈採購訂單" -#: templates/js/translated/purchase_order.js:612 +#: templates/js/translated/purchase_order.js:595 msgid "At least one purchaseable part must be selected" -msgstr "" +msgstr "必須至少選擇一個可購買的零件" -#: templates/js/translated/purchase_order.js:637 +#: templates/js/translated/purchase_order.js:620 msgid "Quantity to order" -msgstr "" +msgstr "訂購數量" -#: templates/js/translated/purchase_order.js:646 +#: templates/js/translated/purchase_order.js:629 msgid "New supplier part" -msgstr "" +msgstr "新建供應商零件" -#: templates/js/translated/purchase_order.js:664 +#: templates/js/translated/purchase_order.js:647 msgid "New purchase order" -msgstr "" +msgstr "新建採購訂單" -#: templates/js/translated/purchase_order.js:705 +#: templates/js/translated/purchase_order.js:688 msgid "Add to purchase order" -msgstr "" +msgstr "添加到採購訂單中" -#: templates/js/translated/purchase_order.js:755 +#: templates/js/translated/purchase_order.js:738 msgid "Merge" -msgstr "" +msgstr "合併" -#: templates/js/translated/purchase_order.js:859 +#: templates/js/translated/purchase_order.js:842 msgid "No matching supplier parts" -msgstr "" +msgstr "沒有匹配的供應商零件" -#: templates/js/translated/purchase_order.js:878 +#: templates/js/translated/purchase_order.js:861 msgid "No matching purchase orders" -msgstr "" +msgstr "沒有匹配的採購訂單" -#: templates/js/translated/purchase_order.js:1073 +#: templates/js/translated/purchase_order.js:1056 #: templates/js/translated/return_order.js:490 msgid "Select Line Items" -msgstr "" +msgstr "選擇行項目" -#: templates/js/translated/purchase_order.js:1074 +#: templates/js/translated/purchase_order.js:1057 #: templates/js/translated/return_order.js:491 msgid "At least one line item must be selected" -msgstr "" +msgstr "必須至少選擇一行項目" -#: templates/js/translated/purchase_order.js:1104 +#: templates/js/translated/purchase_order.js:1087 msgid "Received Quantity" -msgstr "" +msgstr "接收數量" -#: templates/js/translated/purchase_order.js:1115 +#: templates/js/translated/purchase_order.js:1098 msgid "Quantity to receive" -msgstr "" +msgstr "待接收數量" -#: templates/js/translated/purchase_order.js:1170 +#: templates/js/translated/purchase_order.js:1153 #: templates/js/translated/stock.js:1215 msgid "Specify packaging for incoming stock items" -msgstr "" +msgstr "指定進貨庫存項的包裝" -#: templates/js/translated/purchase_order.js:1223 +#: templates/js/translated/purchase_order.js:1206 msgid "Stock Status" -msgstr "" +msgstr "庫存狀態" -#: templates/js/translated/purchase_order.js:1237 +#: templates/js/translated/purchase_order.js:1220 msgid "Add barcode" -msgstr "" +msgstr "添加條形碼" -#: templates/js/translated/purchase_order.js:1238 +#: templates/js/translated/purchase_order.js:1221 msgid "Remove barcode" -msgstr "" +msgstr "移除條形碼" -#: templates/js/translated/purchase_order.js:1241 +#: templates/js/translated/purchase_order.js:1224 msgid "Specify location" -msgstr "" +msgstr "指定位置" -#: templates/js/translated/purchase_order.js:1249 +#: templates/js/translated/purchase_order.js:1232 msgid "Add batch code" -msgstr "" +msgstr "添加批號" -#: templates/js/translated/purchase_order.js:1259 +#: templates/js/translated/purchase_order.js:1242 msgid "Specify packaging" -msgstr "" +msgstr "指定包裝" -#: templates/js/translated/purchase_order.js:1270 +#: templates/js/translated/purchase_order.js:1253 msgid "Add serial numbers" -msgstr "" +msgstr "添加序列號" -#: templates/js/translated/purchase_order.js:1281 +#: templates/js/translated/purchase_order.js:1264 msgid "Add note" -msgstr "" +msgstr "添加備註" -#: templates/js/translated/purchase_order.js:1338 +#: templates/js/translated/purchase_order.js:1321 msgid "Serials" -msgstr "" +msgstr "序列號" -#: templates/js/translated/purchase_order.js:1368 +#: templates/js/translated/purchase_order.js:1351 msgid "Order Code" -msgstr "" +msgstr "訂單編碼" -#: templates/js/translated/purchase_order.js:1370 +#: templates/js/translated/purchase_order.js:1353 msgid "Quantity to Receive" -msgstr "" +msgstr "接收數量" -#: templates/js/translated/purchase_order.js:1395 +#: templates/js/translated/purchase_order.js:1379 #: templates/js/translated/return_order.js:559 msgid "Confirm receipt of items" -msgstr "" +msgstr "確認收到物品" -#: templates/js/translated/purchase_order.js:1396 +#: templates/js/translated/purchase_order.js:1380 msgid "Receive Purchase Order Items" -msgstr "" +msgstr "接收採購訂單項目" -#: templates/js/translated/purchase_order.js:1464 +#: templates/js/translated/purchase_order.js:1448 msgid "Scan Item Barcode" -msgstr "" +msgstr "掃描商品條形碼" -#: templates/js/translated/purchase_order.js:1465 +#: templates/js/translated/purchase_order.js:1449 msgid "Scan barcode on incoming item (must not match any existing stock items)" -msgstr "" +msgstr "掃描進貨條形碼 (必須與任何現有的庫存條目不匹配)" -#: templates/js/translated/purchase_order.js:1479 +#: templates/js/translated/purchase_order.js:1463 msgid "Invalid barcode data" -msgstr "" +msgstr "條形碼數據無效" -#: templates/js/translated/purchase_order.js:1751 +#: templates/js/translated/purchase_order.js:1735 #: templates/js/translated/return_order.js:285 -#: templates/js/translated/sales_order.js:810 -#: templates/js/translated/sales_order.js:1034 +#: templates/js/translated/sales_order.js:769 +#: templates/js/translated/sales_order.js:1007 msgid "Order is overdue" -msgstr "" +msgstr "訂單已逾期" -#: templates/js/translated/purchase_order.js:1913 +#: templates/js/translated/purchase_order.js:1897 msgid "All selected Line items will be deleted" -msgstr "" +msgstr "所有選定的行項目都將被刪除" -#: templates/js/translated/purchase_order.js:1931 +#: templates/js/translated/purchase_order.js:1915 msgid "Delete selected Line items?" -msgstr "" +msgstr "是否刪除所選行項目?" -#: templates/js/translated/purchase_order.js:1986 -#: templates/js/translated/sales_order.js:2106 +#: templates/js/translated/purchase_order.js:1970 +#: templates/js/translated/sales_order.js:2087 msgid "Duplicate Line Item" -msgstr "" +msgstr "複製行項目" -#: templates/js/translated/purchase_order.js:2001 +#: templates/js/translated/purchase_order.js:1985 #: templates/js/translated/return_order.js:475 #: templates/js/translated/return_order.js:667 -#: templates/js/translated/sales_order.js:2119 +#: templates/js/translated/sales_order.js:2100 msgid "Edit Line Item" -msgstr "" +msgstr "編輯行項目" -#: templates/js/translated/purchase_order.js:2012 +#: templates/js/translated/purchase_order.js:1996 #: templates/js/translated/return_order.js:680 -#: templates/js/translated/sales_order.js:2130 +#: templates/js/translated/sales_order.js:2111 msgid "Delete Line Item" -msgstr "" +msgstr "刪除行項目" -#: templates/js/translated/purchase_order.js:2294 -#: templates/js/translated/sales_order.js:2060 +#: templates/js/translated/purchase_order.js:2278 +#: templates/js/translated/sales_order.js:2041 msgid "Duplicate line item" -msgstr "" +msgstr "複製行項目" -#: templates/js/translated/purchase_order.js:2295 +#: templates/js/translated/purchase_order.js:2279 #: templates/js/translated/return_order.js:799 -#: templates/js/translated/sales_order.js:2061 +#: templates/js/translated/sales_order.js:2042 msgid "Edit line item" -msgstr "" +msgstr "編輯行項目" -#: templates/js/translated/purchase_order.js:2296 +#: templates/js/translated/purchase_order.js:2280 #: templates/js/translated/return_order.js:803 -#: templates/js/translated/sales_order.js:2067 +#: templates/js/translated/sales_order.js:2048 msgid "Delete line item" -msgstr "" - -#: templates/js/translated/report.js:49 -msgid "Print Report" -msgstr "" +msgstr "刪除行項目" #: templates/js/translated/report.js:68 msgid "Report print successful" -msgstr "" +msgstr "報告打印成功" #: templates/js/translated/report.js:73 msgid "Report printing failed" -msgstr "" +msgstr "報告打印失敗" #: templates/js/translated/return_order.js:60 #: templates/js/translated/sales_order.js:86 msgid "Add Customer" -msgstr "" +msgstr "添加客户" #: templates/js/translated/return_order.js:134 msgid "Create Return Order" -msgstr "" +msgstr "新建退貨訂單" #: templates/js/translated/return_order.js:149 msgid "Edit Return Order" -msgstr "" +msgstr "編輯退貨訂單" #: templates/js/translated/return_order.js:169 msgid "Issue Return Order" -msgstr "" +msgstr "發佈退貨訂單" #: templates/js/translated/return_order.js:186 msgid "Are you sure you wish to cancel this Return Order?" -msgstr "" +msgstr "您確定要取消此退貨訂單嗎?" #: templates/js/translated/return_order.js:193 msgid "Cancel Return Order" -msgstr "" +msgstr "取消退貨訂單" #: templates/js/translated/return_order.js:218 msgid "Complete Return Order" -msgstr "" +msgstr "完成退貨訂單" #: templates/js/translated/return_order.js:265 msgid "No return orders found" -msgstr "" +msgstr "未找到退貨訂單" #: templates/js/translated/return_order.js:299 -#: templates/js/translated/sales_order.js:824 +#: templates/js/translated/sales_order.js:783 msgid "Invalid Customer" -msgstr "" +msgstr "無效的客户" #: templates/js/translated/return_order.js:560 msgid "Receive Return Order Items" -msgstr "" +msgstr "接收退貨訂單項目" #: templates/js/translated/return_order.js:691 -#: templates/js/translated/sales_order.js:2267 +#: templates/js/translated/sales_order.js:2248 msgid "No matching line items" -msgstr "" +msgstr "未找到匹配的行項目" #: templates/js/translated/return_order.js:796 msgid "Mark item as received" -msgstr "" +msgstr "標記項目為已接收" #: templates/js/translated/sales_order.js:161 msgid "Create Sales Order" -msgstr "" +msgstr "創建銷售訂單" #: templates/js/translated/sales_order.js:176 msgid "Edit Sales Order" -msgstr "" +msgstr "編輯銷售訂單" -#: templates/js/translated/sales_order.js:291 +#: templates/js/translated/sales_order.js:288 msgid "No stock items have been allocated to this shipment" -msgstr "" +msgstr "此裝運未分配任何庫存物品" -#: templates/js/translated/sales_order.js:296 -msgid "The following stock items will be shipped" -msgstr "" - -#: templates/js/translated/sales_order.js:336 +#: templates/js/translated/sales_order.js:294 msgid "Complete Shipment" -msgstr "" +msgstr "完成配送" -#: templates/js/translated/sales_order.js:360 +#: templates/js/translated/sales_order.js:318 msgid "Confirm Shipment" -msgstr "" +msgstr "確認配送" -#: templates/js/translated/sales_order.js:416 +#: templates/js/translated/sales_order.js:375 msgid "No pending shipments found" -msgstr "" +msgstr "未找到待處理的貨物" -#: templates/js/translated/sales_order.js:420 +#: templates/js/translated/sales_order.js:379 msgid "No stock items have been allocated to pending shipments" -msgstr "" +msgstr "未將庫存項目分配給待處理的發貨" -#: templates/js/translated/sales_order.js:430 +#: templates/js/translated/sales_order.js:389 msgid "Complete Shipments" -msgstr "" +msgstr "完成配送" -#: templates/js/translated/sales_order.js:452 +#: templates/js/translated/sales_order.js:411 msgid "Skip" -msgstr "" +msgstr "跳過" -#: templates/js/translated/sales_order.js:484 +#: templates/js/translated/sales_order.js:443 msgid "Ship Sales Order" -msgstr "" +msgstr "發貨銷售訂單" -#: templates/js/translated/sales_order.js:500 +#: templates/js/translated/sales_order.js:459 msgid "Ship this order?" -msgstr "" +msgstr "發送此訂單?" -#: templates/js/translated/sales_order.js:506 +#: templates/js/translated/sales_order.js:465 msgid "Order cannot be shipped as there are incomplete shipments" -msgstr "" +msgstr "訂單無法發貨,因為發貨不完整" -#: templates/js/translated/sales_order.js:513 +#: templates/js/translated/sales_order.js:472 msgid "This order has line items which have not been completed." -msgstr "" +msgstr "此訂單有未完成的行項目。" -#: templates/js/translated/sales_order.js:514 +#: templates/js/translated/sales_order.js:473 msgid "Shipping this order means that the order and line items will no longer be editable." -msgstr "" +msgstr "運送此訂單意味着訂單和行項目將不再可編輯。" -#: templates/js/translated/sales_order.js:572 +#: templates/js/translated/sales_order.js:531 msgid "Issue this Sales Order?" -msgstr "" +msgstr "發出此銷售訂單?" -#: templates/js/translated/sales_order.js:577 +#: templates/js/translated/sales_order.js:536 msgid "Issue Sales Order" -msgstr "" +msgstr "發出銷售訂單" -#: templates/js/translated/sales_order.js:596 +#: templates/js/translated/sales_order.js:555 msgid "Cancel Sales Order" -msgstr "" +msgstr "取消銷售訂單" -#: templates/js/translated/sales_order.js:601 +#: templates/js/translated/sales_order.js:560 msgid "Cancelling this order means that the order will no longer be editable." -msgstr "" +msgstr "取消此訂單意味着訂單將不再可編輯。" -#: templates/js/translated/sales_order.js:655 +#: templates/js/translated/sales_order.js:614 msgid "Create New Shipment" -msgstr "" +msgstr "創建新的配送" -#: templates/js/translated/sales_order.js:764 +#: templates/js/translated/sales_order.js:723 msgid "No sales orders found" -msgstr "" +msgstr "未找到銷售訂單" -#: templates/js/translated/sales_order.js:944 +#: templates/js/translated/sales_order.js:907 msgid "Edit shipment" -msgstr "" +msgstr "編輯配送" + +#: templates/js/translated/sales_order.js:910 +msgid "Complete shipment" +msgstr "完成配送" + +#: templates/js/translated/sales_order.js:915 +msgid "Delete shipment" +msgstr "刪除配送" + +#: templates/js/translated/sales_order.js:932 +msgid "Edit Shipment" +msgstr "編輯配送" #: templates/js/translated/sales_order.js:947 -msgid "Complete shipment" -msgstr "" - -#: templates/js/translated/sales_order.js:952 -msgid "Delete shipment" -msgstr "" - -#: templates/js/translated/sales_order.js:969 -msgid "Edit Shipment" -msgstr "" - -#: templates/js/translated/sales_order.js:984 msgid "Delete Shipment" -msgstr "" +msgstr "刪除配送" -#: templates/js/translated/sales_order.js:1017 +#: templates/js/translated/sales_order.js:989 msgid "No matching shipments found" -msgstr "" +msgstr "未找到匹配的貨物" -#: templates/js/translated/sales_order.js:1042 +#: templates/js/translated/sales_order.js:1015 msgid "Shipment Reference" -msgstr "" +msgstr "配送參考" -#: templates/js/translated/sales_order.js:1066 -#: templates/js/translated/sales_order.js:1565 +#: templates/js/translated/sales_order.js:1032 +#: templates/js/translated/sales_order.js:1531 msgid "Not shipped" -msgstr "" +msgstr "未配送" -#: templates/js/translated/sales_order.js:1084 +#: templates/js/translated/sales_order.js:1050 msgid "Tracking" -msgstr "" +msgstr "追蹤" -#: templates/js/translated/sales_order.js:1088 +#: templates/js/translated/sales_order.js:1054 msgid "Invoice" -msgstr "" +msgstr "發票" -#: templates/js/translated/sales_order.js:1255 +#: templates/js/translated/sales_order.js:1221 msgid "Add Shipment" -msgstr "" +msgstr "添加配送" -#: templates/js/translated/sales_order.js:1306 +#: templates/js/translated/sales_order.js:1272 msgid "Confirm stock allocation" -msgstr "" +msgstr "確認庫存分配" -#: templates/js/translated/sales_order.js:1307 +#: templates/js/translated/sales_order.js:1273 msgid "Allocate Stock Items to Sales Order" -msgstr "" +msgstr "分配庫存項到銷售訂單" -#: templates/js/translated/sales_order.js:1513 +#: templates/js/translated/sales_order.js:1479 msgid "No sales order allocations found" -msgstr "" +msgstr "未找到銷售訂單分配" -#: templates/js/translated/sales_order.js:1605 +#: templates/js/translated/sales_order.js:1571 msgid "Edit Stock Allocation" -msgstr "" +msgstr "編輯庫存分配" -#: templates/js/translated/sales_order.js:1619 +#: templates/js/translated/sales_order.js:1585 msgid "Confirm Delete Operation" -msgstr "" +msgstr "確認刪除操作" -#: templates/js/translated/sales_order.js:1620 +#: templates/js/translated/sales_order.js:1586 msgid "Delete Stock Allocation" -msgstr "" +msgstr "刪除庫存分配" -#: templates/js/translated/sales_order.js:1659 -#: templates/js/translated/sales_order.js:1746 +#: templates/js/translated/sales_order.js:1640 +#: templates/js/translated/sales_order.js:1727 #: templates/js/translated/stock.js:1861 msgid "Shipped to customer" -msgstr "" +msgstr "已配送到客户" -#: templates/js/translated/sales_order.js:1667 -#: templates/js/translated/sales_order.js:1755 +#: templates/js/translated/sales_order.js:1648 +#: templates/js/translated/sales_order.js:1736 msgid "Stock location not specified" -msgstr "" +msgstr "未指定庫存地點" -#: templates/js/translated/sales_order.js:2044 -msgid "Allocate serial numbers" -msgstr "" - -#: templates/js/translated/sales_order.js:2048 -msgid "Purchase stock" -msgstr "" - -#: templates/js/translated/sales_order.js:2057 -#: templates/js/translated/sales_order.js:2245 -msgid "Calculate price" -msgstr "" - -#: templates/js/translated/sales_order.js:2071 -msgid "Cannot be deleted as items have been shipped" -msgstr "" - -#: templates/js/translated/sales_order.js:2074 -msgid "Cannot be deleted as items have been allocated" -msgstr "" - -#: templates/js/translated/sales_order.js:2145 +#: templates/js/translated/sales_order.js:2025 +#: templates/js/translated/sales_order.js:2126 msgid "Allocate Serial Numbers" -msgstr "" +msgstr "分配序列號" -#: templates/js/translated/sales_order.js:2253 +#: templates/js/translated/sales_order.js:2029 +msgid "Purchase stock" +msgstr "採購庫存" + +#: templates/js/translated/sales_order.js:2038 +#: templates/js/translated/sales_order.js:2226 +msgid "Calculate price" +msgstr "計算價格" + +#: templates/js/translated/sales_order.js:2052 +msgid "Cannot be deleted as items have been shipped" +msgstr "無法刪除,因為物品已發貨" + +#: templates/js/translated/sales_order.js:2055 +msgid "Cannot be deleted as items have been allocated" +msgstr "無法刪除,因為項目已分配" + +#: templates/js/translated/sales_order.js:2234 msgid "Update Unit Price" -msgstr "" +msgstr "更新單位價格" #: templates/js/translated/search.js:270 msgid "No results" -msgstr "" +msgstr "無結果" #: templates/js/translated/search.js:292 templates/search.html:25 msgid "Enter search query" -msgstr "" +msgstr "輸入搜索查詢" #: templates/js/translated/search.js:342 msgid "result" -msgstr "" +msgstr "結果" #: templates/js/translated/search.js:352 msgid "Minimize results" -msgstr "" +msgstr "最小化結果" #: templates/js/translated/search.js:355 msgid "Remove results" -msgstr "" +msgstr "刪除結果" #: templates/js/translated/stock.js:106 msgid "Serialize Stock Item" -msgstr "" +msgstr "序列化庫存項目" #: templates/js/translated/stock.js:137 msgid "Confirm Stock Serialization" -msgstr "" +msgstr "確認庫存序列化" #: templates/js/translated/stock.js:173 msgid "Add Location type" -msgstr "" +msgstr "添加位置類型" #: templates/js/translated/stock.js:209 msgid "Edit Stock Location" -msgstr "" +msgstr "編輯庫存地點" #: templates/js/translated/stock.js:224 msgid "New Stock Location" -msgstr "" +msgstr "添加庫存地點" #: templates/js/translated/stock.js:226 msgid "Create another location after this one" -msgstr "" +msgstr "在此位置之後創建另一個位置" #: templates/js/translated/stock.js:227 msgid "Stock location created" -msgstr "" +msgstr "庫存地點已創建" #: templates/js/translated/stock.js:241 msgid "Are you sure you want to delete this stock location?" -msgstr "" +msgstr "您確定要刪除此庫存位置嗎?" #: templates/js/translated/stock.js:248 msgid "Move to parent stock location" -msgstr "" +msgstr "移動到母庫存位置" #: templates/js/translated/stock.js:257 msgid "Delete Stock Location" -msgstr "" +msgstr "刪除庫存地點" #: templates/js/translated/stock.js:261 msgid "Action for stock items in this stock location" -msgstr "" +msgstr "此庫存位置的庫存物品操作" #: templates/js/translated/stock.js:266 msgid "Action for sub-locations" -msgstr "" +msgstr "針對子地點的行動" #: templates/js/translated/stock.js:320 msgid "This part cannot be serialized" -msgstr "" +msgstr "此零件無法序列化" #: templates/js/translated/stock.js:356 msgid "Add given quantity as packs instead of individual items" -msgstr "" +msgstr "將給定數量添加為包,而不是單個項目" #: templates/js/translated/stock.js:368 msgid "Enter initial quantity for this stock item" -msgstr "" +msgstr "輸入此庫存項目的初始數量" #: templates/js/translated/stock.js:374 msgid "Enter serial numbers for new stock (or leave blank)" -msgstr "" +msgstr "輸入新庫存的序列號(或留空)" #: templates/js/translated/stock.js:445 msgid "Stock item duplicated" -msgstr "" +msgstr "庫存項重複" #: templates/js/translated/stock.js:465 msgid "Duplicate Stock Item" -msgstr "" +msgstr "複製庫存項" #: templates/js/translated/stock.js:481 msgid "Are you sure you want to delete this stock item?" -msgstr "" +msgstr "確定要刪除此庫存項嗎?" #: templates/js/translated/stock.js:486 msgid "Delete Stock Item" -msgstr "" +msgstr "刪除庫存項" #: templates/js/translated/stock.js:507 msgid "Edit Stock Item" -msgstr "" +msgstr "編輯庫存項" #: templates/js/translated/stock.js:549 msgid "Create another item after this one" -msgstr "" +msgstr "在此之後創建另一個項目" #: templates/js/translated/stock.js:561 msgid "Created new stock item" -msgstr "" +msgstr "新建庫存項" #: templates/js/translated/stock.js:574 msgid "Created multiple stock items" -msgstr "" +msgstr "創建了多個庫存項目" #: templates/js/translated/stock.js:599 msgid "Find Serial Number" -msgstr "" +msgstr "查找序列號" #: templates/js/translated/stock.js:603 templates/js/translated/stock.js:604 -msgid "Enter serial number" -msgstr "" - #: templates/js/translated/stock.js:620 -msgid "Enter a serial number" -msgstr "" +msgid "Enter serial number" +msgstr "輸入序列號" #: templates/js/translated/stock.js:640 msgid "No matching serial number" -msgstr "" +msgstr "沒有匹配的序列號" #: templates/js/translated/stock.js:649 msgid "More than one matching result found" -msgstr "" +msgstr "找到多個匹配結果" #: templates/js/translated/stock.js:757 msgid "Confirm stock assignment" -msgstr "" +msgstr "確認庫存分配" #: templates/js/translated/stock.js:758 msgid "Assign Stock to Customer" -msgstr "" +msgstr "將庫存分配給客户" #: templates/js/translated/stock.js:835 msgid "Warning: Merge operation cannot be reversed" -msgstr "" +msgstr "警告:合併操作無法撤銷" #: templates/js/translated/stock.js:836 msgid "Some information will be lost when merging stock items" -msgstr "" +msgstr "合併庫存項目時會丟失一些信息" #: templates/js/translated/stock.js:838 msgid "Stock transaction history will be deleted for merged items" -msgstr "" +msgstr "合併項目的庫存交易歷史記錄將被刪除" #: templates/js/translated/stock.js:839 msgid "Supplier part information will be deleted for merged items" -msgstr "" +msgstr "合併項目的供應商零件信息將被刪除" #: templates/js/translated/stock.js:933 msgid "Confirm stock item merge" -msgstr "" +msgstr "確認合併庫存項" #: templates/js/translated/stock.js:934 msgid "Merge Stock Items" -msgstr "" +msgstr "合併庫存項目" #: templates/js/translated/stock.js:1031 msgid "Transfer Stock" -msgstr "" +msgstr "轉移庫存" #: templates/js/translated/stock.js:1032 msgid "Move" -msgstr "" +msgstr "移動" #: templates/js/translated/stock.js:1038 msgid "Count Stock" -msgstr "" +msgstr "庫存計數" #: templates/js/translated/stock.js:1039 msgid "Count" -msgstr "" +msgstr "計數" #: templates/js/translated/stock.js:1043 msgid "Remove Stock" -msgstr "" +msgstr "移除庫存" #: templates/js/translated/stock.js:1044 msgid "Take" -msgstr "" +msgstr "拿出" #: templates/js/translated/stock.js:1048 msgid "Add Stock" -msgstr "" +msgstr "添加庫存" -#: templates/js/translated/stock.js:1049 users/models.py:396 +#: templates/js/translated/stock.js:1049 users/models.py:398 msgid "Add" -msgstr "" +msgstr "添加" #: templates/js/translated/stock.js:1053 msgid "Delete Stock" -msgstr "" +msgstr "刪除庫存" #: templates/js/translated/stock.js:1152 msgid "Quantity cannot be adjusted for serialized stock" -msgstr "" +msgstr "序列化庫存的數量不能調整" #: templates/js/translated/stock.js:1152 msgid "Specify stock quantity" -msgstr "" +msgstr "指定庫存數量" #: templates/js/translated/stock.js:1168 msgid "Adjust batch code" -msgstr "" +msgstr "調整批次代碼" #: templates/js/translated/stock.js:1178 msgid "Adjust packaging" -msgstr "" +msgstr "調整包裝" -#: templates/js/translated/stock.js:1256 templates/js/translated/stock.js:3382 +#: templates/js/translated/stock.js:1256 templates/js/translated/stock.js:3383 msgid "Select Stock Items" -msgstr "" +msgstr "選擇庫存項" #: templates/js/translated/stock.js:1257 msgid "Select at least one available stock item" -msgstr "" +msgstr "至少選擇一個可用庫存項目" #: templates/js/translated/stock.js:1303 msgid "Confirm stock adjustment" -msgstr "" - -#: templates/js/translated/stock.js:1448 -msgid "PASS" -msgstr "" - -#: templates/js/translated/stock.js:1450 -msgid "FAIL" -msgstr "" - -#: templates/js/translated/stock.js:1455 -msgid "NO RESULT" -msgstr "" +msgstr "確認庫存調整" #: templates/js/translated/stock.js:1535 msgid "Pass test" -msgstr "" +msgstr "通過測試" #: templates/js/translated/stock.js:1538 msgid "Add test result" -msgstr "" +msgstr "新增測試結果" #: templates/js/translated/stock.js:1541 msgid "Edit test result" -msgstr "" +msgstr "編輯測試結果" #: templates/js/translated/stock.js:1542 templates/js/translated/stock.js:1816 msgid "Delete test result" -msgstr "" +msgstr "刪除測試結果" #: templates/js/translated/stock.js:1561 msgid "No test results found" -msgstr "" +msgstr "未找到測試結果" #: templates/js/translated/stock.js:1625 msgid "Test Date" -msgstr "" +msgstr "測試日期" #: templates/js/translated/stock.js:1638 msgid "Test started" -msgstr "" +msgstr "測試已開始" #: templates/js/translated/stock.js:1647 msgid "Test finished" -msgstr "" +msgstr "測試已完成" #: templates/js/translated/stock.js:1801 msgid "Edit Test Result" -msgstr "" +msgstr "編輯測試結果" #: templates/js/translated/stock.js:1821 msgid "Delete Test Result" -msgstr "" +msgstr "刪除測試結果" #: templates/js/translated/stock.js:1853 msgid "In production" -msgstr "" +msgstr "生產中" #: templates/js/translated/stock.js:1857 msgid "Installed in Stock Item" -msgstr "" +msgstr "已安裝庫存項目" #: templates/js/translated/stock.js:1865 msgid "Assigned to Sales Order" -msgstr "" +msgstr "分配給銷售訂單" #: templates/js/translated/stock.js:1871 msgid "No stock location set" -msgstr "" +msgstr "未設置庫存位置" -#: templates/js/translated/stock.js:1927 +#: templates/js/translated/stock.js:1928 msgid "Change stock status" -msgstr "" +msgstr "更改庫存狀態" -#: templates/js/translated/stock.js:1936 +#: templates/js/translated/stock.js:1937 msgid "Merge stock" -msgstr "" +msgstr "合併庫存" -#: templates/js/translated/stock.js:1985 +#: templates/js/translated/stock.js:1986 msgid "Delete stock" -msgstr "" +msgstr "刪除庫存" -#: templates/js/translated/stock.js:2038 +#: templates/js/translated/stock.js:2039 msgid "stock items" -msgstr "" +msgstr "庫存項" -#: templates/js/translated/stock.js:2043 +#: templates/js/translated/stock.js:2044 msgid "Scan to location" -msgstr "" +msgstr "掃描到位置" -#: templates/js/translated/stock.js:2054 +#: templates/js/translated/stock.js:2055 msgid "Stock Actions" -msgstr "" +msgstr "庫存操作" -#: templates/js/translated/stock.js:2098 +#: templates/js/translated/stock.js:2099 msgid "Load installed items" -msgstr "" +msgstr "加載已安裝的項目" -#: templates/js/translated/stock.js:2176 +#: templates/js/translated/stock.js:2177 msgid "Stock item is in production" -msgstr "" +msgstr "庫存項正在生產" -#: templates/js/translated/stock.js:2181 +#: templates/js/translated/stock.js:2182 msgid "Stock item assigned to sales order" -msgstr "" +msgstr "分配給銷售訂單的庫存項目" -#: templates/js/translated/stock.js:2184 +#: templates/js/translated/stock.js:2185 msgid "Stock item assigned to customer" -msgstr "" +msgstr "分配給客户的庫存項" -#: templates/js/translated/stock.js:2187 +#: templates/js/translated/stock.js:2188 msgid "Serialized stock item has been allocated" -msgstr "" +msgstr "已分配序列化庫存項" -#: templates/js/translated/stock.js:2189 +#: templates/js/translated/stock.js:2190 msgid "Stock item has been fully allocated" -msgstr "" +msgstr "庫存項目已完全分配" -#: templates/js/translated/stock.js:2191 +#: templates/js/translated/stock.js:2192 msgid "Stock item has been partially allocated" -msgstr "" +msgstr "庫存項目已部分分配" -#: templates/js/translated/stock.js:2194 +#: templates/js/translated/stock.js:2195 msgid "Stock item has been installed in another item" -msgstr "" +msgstr "庫存項目已安裝在另一個項目中" -#: templates/js/translated/stock.js:2196 +#: templates/js/translated/stock.js:2197 msgid "Stock item has been consumed by a build order" -msgstr "" +msgstr "庫存項已被生產訂單消耗" -#: templates/js/translated/stock.js:2200 +#: templates/js/translated/stock.js:2201 msgid "Stock item has expired" -msgstr "" +msgstr "庫存項已過期" -#: templates/js/translated/stock.js:2202 +#: templates/js/translated/stock.js:2203 msgid "Stock item will expire soon" -msgstr "" +msgstr "庫存項即將過期" -#: templates/js/translated/stock.js:2207 +#: templates/js/translated/stock.js:2208 msgid "Stock item has been rejected" -msgstr "" +msgstr "庫存項已被拒絕" -#: templates/js/translated/stock.js:2209 +#: templates/js/translated/stock.js:2210 msgid "Stock item is lost" -msgstr "" +msgstr "庫存項丟失了" -#: templates/js/translated/stock.js:2211 +#: templates/js/translated/stock.js:2212 msgid "Stock item is destroyed" -msgstr "" +msgstr "庫存項已銷燬" -#: templates/js/translated/stock.js:2215 +#: templates/js/translated/stock.js:2216 #: templates/js/translated/table_filters.js:357 msgid "Depleted" -msgstr "" +msgstr "已用完" -#: templates/js/translated/stock.js:2380 +#: templates/js/translated/stock.js:2381 msgid "Supplier part not specified" -msgstr "" +msgstr "未指定供應商零件" -#: templates/js/translated/stock.js:2427 +#: templates/js/translated/stock.js:2428 msgid "Stock Value" -msgstr "" +msgstr "庫存值" -#: templates/js/translated/stock.js:2555 +#: templates/js/translated/stock.js:2556 msgid "No stock items matching query" -msgstr "" +msgstr "沒有符合查詢的庫存項目" -#: templates/js/translated/stock.js:2658 +#: templates/js/translated/stock.js:2659 msgid "stock locations" -msgstr "" +msgstr "庫存地點" -#: templates/js/translated/stock.js:2813 +#: templates/js/translated/stock.js:2814 msgid "Load Sublocations" -msgstr "" +msgstr "加載次級地點" -#: templates/js/translated/stock.js:2930 +#: templates/js/translated/stock.js:2931 msgid "Details" -msgstr "" +msgstr "詳情" -#: templates/js/translated/stock.js:2934 +#: templates/js/translated/stock.js:2935 msgid "No changes" -msgstr "" +msgstr "無更改" -#: templates/js/translated/stock.js:2946 +#: templates/js/translated/stock.js:2947 msgid "Part information unavailable" -msgstr "" +msgstr "零件信息不可用" -#: templates/js/translated/stock.js:2968 +#: templates/js/translated/stock.js:2969 msgid "Location no longer exists" -msgstr "" +msgstr "位置不再存在" -#: templates/js/translated/stock.js:2985 +#: templates/js/translated/stock.js:2986 msgid "Build order no longer exists" -msgstr "" +msgstr "生產訂單不再存在" -#: templates/js/translated/stock.js:3000 +#: templates/js/translated/stock.js:3001 msgid "Purchase order no longer exists" -msgstr "" +msgstr "採購訂單不再存在" -#: templates/js/translated/stock.js:3017 +#: templates/js/translated/stock.js:3018 msgid "Sales Order no longer exists" -msgstr "" +msgstr "銷售訂單不再存在" -#: templates/js/translated/stock.js:3034 +#: templates/js/translated/stock.js:3035 msgid "Return Order no longer exists" -msgstr "" +msgstr "退貨訂單已不存在" -#: templates/js/translated/stock.js:3053 +#: templates/js/translated/stock.js:3054 msgid "Customer no longer exists" -msgstr "" +msgstr "客户已不存在" -#: templates/js/translated/stock.js:3071 +#: templates/js/translated/stock.js:3072 msgid "Stock item no longer exists" -msgstr "" +msgstr "庫存項已不存在" -#: templates/js/translated/stock.js:3089 +#: templates/js/translated/stock.js:3090 msgid "Added" -msgstr "" +msgstr "已添加" -#: templates/js/translated/stock.js:3097 +#: templates/js/translated/stock.js:3098 msgid "Removed" -msgstr "" +msgstr "已刪除" -#: templates/js/translated/stock.js:3169 +#: templates/js/translated/stock.js:3170 msgid "No installed items" -msgstr "" +msgstr "沒有已安裝的項目" -#: templates/js/translated/stock.js:3223 templates/js/translated/stock.js:3259 +#: templates/js/translated/stock.js:3224 templates/js/translated/stock.js:3260 msgid "Uninstall Stock Item" -msgstr "" +msgstr "卸載庫存項" -#: templates/js/translated/stock.js:3280 +#: templates/js/translated/stock.js:3281 msgid "Select stock item to uninstall" -msgstr "" - -#: templates/js/translated/stock.js:3301 -msgid "Install another stock item into this item" -msgstr "" +msgstr "選擇要卸載的庫存項" #: templates/js/translated/stock.js:3302 -msgid "Stock items can only be installed if they meet the following criteria" -msgstr "" +msgid "Install another stock item into this item" +msgstr "在此項中安裝另一個庫存項" -#: templates/js/translated/stock.js:3304 -msgid "The Stock Item links to a Part which is the BOM for this Stock Item" -msgstr "" +#: templates/js/translated/stock.js:3303 +msgid "Stock items can only be installed if they meet the following criteria" +msgstr "只有滿足以下條件,才能安裝庫存項目" #: templates/js/translated/stock.js:3305 -msgid "The Stock Item is currently available in stock" -msgstr "" +msgid "The Stock Item links to a Part which is the BOM for this Stock Item" +msgstr "庫存項鍊接到一個零件,該零件是此庫存項的物料清單" #: templates/js/translated/stock.js:3306 -msgid "The Stock Item is not already installed in another item" -msgstr "" +msgid "The Stock Item is currently available in stock" +msgstr "該庫存項目前有庫存" #: templates/js/translated/stock.js:3307 +msgid "The Stock Item is not already installed in another item" +msgstr "庫存項目尚未安裝在其他項目中" + +#: templates/js/translated/stock.js:3308 msgid "The Stock Item is tracked by either a batch code or serial number" -msgstr "" +msgstr "庫存項被批號或序列號跟蹤" -#: templates/js/translated/stock.js:3320 +#: templates/js/translated/stock.js:3321 msgid "Select part to install" -msgstr "" +msgstr "選擇要安裝的零件" -#: templates/js/translated/stock.js:3383 +#: templates/js/translated/stock.js:3384 msgid "Select one or more stock items" -msgstr "" +msgstr "選擇一個或多個庫存項目" -#: templates/js/translated/stock.js:3396 +#: templates/js/translated/stock.js:3397 msgid "Selected stock items" -msgstr "" +msgstr "選定的庫存項" -#: templates/js/translated/stock.js:3400 +#: templates/js/translated/stock.js:3401 msgid "Change Stock Status" -msgstr "" +msgstr "更改庫存狀態" -#: templates/js/translated/stock.js:3477 +#: templates/js/translated/stock.js:3478 msgid "This week" -msgstr "" +msgstr "本週" -#: templates/js/translated/stock.js:3485 +#: templates/js/translated/stock.js:3486 msgid "This month" -msgstr "" +msgstr "本月" #: templates/js/translated/table_filters.js:73 msgid "Has project code" -msgstr "" +msgstr "有項目編碼" #: templates/js/translated/table_filters.js:88 #: templates/js/translated/table_filters.js:608 #: templates/js/translated/table_filters.js:620 #: templates/js/translated/table_filters.js:661 msgid "Order status" -msgstr "" +msgstr "訂單狀態" #: templates/js/translated/table_filters.js:161 msgid "Testable Part" -msgstr "" +msgstr "可測試部分" #: templates/js/translated/table_filters.js:165 msgid "Trackable Part" -msgstr "" +msgstr "可跟蹤零件" #: templates/js/translated/table_filters.js:169 msgid "Assembled Part" -msgstr "" +msgstr "裝配零件" #: templates/js/translated/table_filters.js:173 msgid "Has Available Stock" -msgstr "" +msgstr "有可用庫存" #: templates/js/translated/table_filters.js:189 msgid "Allow Variant Stock" -msgstr "" +msgstr "允許變體庫存" #: templates/js/translated/table_filters.js:241 #: templates/js/translated/table_filters.js:352 msgid "Include sublocations" -msgstr "" +msgstr "包括子位置" #: templates/js/translated/table_filters.js:242 msgid "Include locations" -msgstr "" +msgstr "包括地點" #: templates/js/translated/table_filters.js:274 msgid "Has location type" -msgstr "" +msgstr "具有位置類型" #: templates/js/translated/table_filters.js:285 #: templates/js/translated/table_filters.js:286 #: templates/js/translated/table_filters.js:714 msgid "Include subcategories" -msgstr "" +msgstr "包括子類別" #: templates/js/translated/table_filters.js:294 #: templates/js/translated/table_filters.js:767 msgid "Subscribed" -msgstr "" +msgstr "已訂閲" #: templates/js/translated/table_filters.js:305 #: templates/js/translated/table_filters.js:387 msgid "Is Serialized" -msgstr "" +msgstr "已序列化" #: templates/js/translated/table_filters.js:308 #: templates/js/translated/table_filters.js:394 msgid "Serial number GTE" -msgstr "" +msgstr "GTE序列號" #: templates/js/translated/table_filters.js:309 #: templates/js/translated/table_filters.js:395 msgid "Serial number greater than or equal to" -msgstr "" +msgstr "序列號大於或等於" #: templates/js/translated/table_filters.js:312 #: templates/js/translated/table_filters.js:398 msgid "Serial number LTE" -msgstr "" +msgstr "LTE序列號" #: templates/js/translated/table_filters.js:313 #: templates/js/translated/table_filters.js:399 msgid "Serial number less than or equal to" -msgstr "" +msgstr "序列號小於或等於" #: templates/js/translated/table_filters.js:316 #: templates/js/translated/table_filters.js:317 #: templates/js/translated/table_filters.js:390 #: templates/js/translated/table_filters.js:391 msgid "Serial number" -msgstr "" +msgstr "序列號" #: templates/js/translated/table_filters.js:321 #: templates/js/translated/table_filters.js:412 msgid "Batch code" -msgstr "" +msgstr "批號" #: templates/js/translated/table_filters.js:332 #: templates/js/translated/table_filters.js:703 msgid "Active parts" -msgstr "" +msgstr "激活的零件" #: templates/js/translated/table_filters.js:333 msgid "Show stock for active parts" -msgstr "" +msgstr "顯示活動零件的庫存" #: templates/js/translated/table_filters.js:338 msgid "Part is an assembly" -msgstr "" +msgstr "零件是一個裝配體" #: templates/js/translated/table_filters.js:342 msgid "Is allocated" -msgstr "" +msgstr "已分配" #: templates/js/translated/table_filters.js:343 msgid "Item has been allocated" -msgstr "" +msgstr "項目已分配" #: templates/js/translated/table_filters.js:348 msgid "Stock is available for use" -msgstr "" +msgstr "庫存可供使用" #: templates/js/translated/table_filters.js:353 msgid "Include stock in sublocations" -msgstr "" +msgstr "將庫存納入子位置" #: templates/js/translated/table_filters.js:358 msgid "Show stock items which are depleted" -msgstr "" +msgstr "顯示已耗盡的庫存項目" #: templates/js/translated/table_filters.js:363 msgid "Show items which are in stock" -msgstr "" +msgstr "顯示有庫存的商品" #: templates/js/translated/table_filters.js:368 msgid "Show items which are in production" -msgstr "" - -#: templates/js/translated/table_filters.js:372 -msgid "Include Variants" -msgstr "" +msgstr "顯示正在生產的項目" #: templates/js/translated/table_filters.js:373 msgid "Include stock items for variant parts" -msgstr "" +msgstr "包括變體零件的庫存項" #: templates/js/translated/table_filters.js:378 msgid "Show stock items which are installed in another item" -msgstr "" +msgstr "顯示安裝在另一個項目中的庫存項目" #: templates/js/translated/table_filters.js:383 msgid "Show items which have been assigned to a customer" -msgstr "" +msgstr "顯示已分配給客户的項目" #: templates/js/translated/table_filters.js:403 #: templates/js/translated/table_filters.js:404 msgid "Stock status" -msgstr "" +msgstr "庫存狀態" #: templates/js/translated/table_filters.js:407 msgid "Has batch code" -msgstr "" +msgstr "有批號" #: templates/js/translated/table_filters.js:416 msgid "Stock item is tracked by either batch code or serial number" -msgstr "" +msgstr "庫存項被批號或序列號追蹤" #: templates/js/translated/table_filters.js:421 msgid "Has purchase price" -msgstr "" +msgstr "有購買價格" #: templates/js/translated/table_filters.js:422 msgid "Show stock items which have a purchase price set" -msgstr "" +msgstr "顯示已設置採購價格的庫存項" #: templates/js/translated/table_filters.js:426 msgid "Expiry Date before" -msgstr "" +msgstr "過期日期前" #: templates/js/translated/table_filters.js:430 msgid "Expiry Date after" -msgstr "" +msgstr "過期日期後" #: templates/js/translated/table_filters.js:443 msgid "Show stock items which have expired" -msgstr "" +msgstr "顯示已過期的庫存商品" #: templates/js/translated/table_filters.js:449 msgid "Show stock which is close to expiring" -msgstr "" +msgstr "顯示即將到期的庫存" #: templates/js/translated/table_filters.js:463 msgid "Test Passed" -msgstr "" +msgstr "測試通過" #: templates/js/translated/table_filters.js:467 msgid "Include Installed Items" -msgstr "" +msgstr "包括已安裝的項目" #: templates/js/translated/table_filters.js:478 msgid "Interval start" -msgstr "" +msgstr "間隔開始" #: templates/js/translated/table_filters.js:482 msgid "Interval end" -msgstr "" +msgstr "間隔結束" #: templates/js/translated/table_filters.js:536 msgid "Build status" -msgstr "" +msgstr "生產狀態" #: templates/js/translated/table_filters.js:715 msgid "Include parts in subcategories" -msgstr "" +msgstr "在子類別中包含零件" #: templates/js/translated/table_filters.js:720 msgid "Show active parts" -msgstr "" +msgstr "顯示活動零件" #: templates/js/translated/table_filters.js:725 msgid "Show locked parts" -msgstr "" +msgstr "顯示鎖定的零件" #: templates/js/translated/table_filters.js:733 msgid "Available stock" -msgstr "" +msgstr "可用庫存" #: templates/js/translated/table_filters.js:741 #: templates/js/translated/table_filters.js:845 msgid "Has Units" -msgstr "" +msgstr "有單位" #: templates/js/translated/table_filters.js:742 msgid "Part has defined units" -msgstr "" +msgstr "零件已定義單位" #: templates/js/translated/table_filters.js:746 msgid "Has IPN" -msgstr "" +msgstr "有內部零件號" #: templates/js/translated/table_filters.js:747 msgid "Part has internal part number" -msgstr "" +msgstr "零件有內部零件號" #: templates/js/translated/table_filters.js:751 msgid "In stock" -msgstr "" +msgstr "有庫存" #: templates/js/translated/table_filters.js:759 msgid "Purchasable" -msgstr "" +msgstr "可購買的" #: templates/js/translated/table_filters.js:771 msgid "Has stocktake entries" -msgstr "" +msgstr "有盤點記錄" #: templates/js/translated/table_filters.js:841 msgid "Has Choices" -msgstr "" +msgstr "有選項" #: templates/js/translated/tables.js:92 msgid "Display calendar view" -msgstr "" +msgstr "顯示日曆視圖" #: templates/js/translated/tables.js:102 msgid "Display list view" -msgstr "" +msgstr "顯示列表視圖" #: templates/js/translated/tables.js:112 msgid "Display tree view" -msgstr "" +msgstr "顯示樹狀視圖" #: templates/js/translated/tables.js:130 msgid "Expand all rows" -msgstr "" +msgstr "展開所有行" #: templates/js/translated/tables.js:136 msgid "Collapse all rows" -msgstr "" +msgstr "摺疊所有行" #: templates/js/translated/tables.js:186 msgid "Export Table Data" -msgstr "" +msgstr "導出表的數據" #: templates/js/translated/tables.js:190 msgid "Select File Format" -msgstr "" +msgstr "選擇文件格式" #: templates/js/translated/tables.js:529 msgid "Loading data" -msgstr "" +msgstr "正在加載數據" #: templates/js/translated/tables.js:532 msgid "rows per page" -msgstr "" +msgstr "每頁行數" #: templates/js/translated/tables.js:537 msgid "Showing all rows" -msgstr "" +msgstr "顯示所有行" #: templates/js/translated/tables.js:539 msgid "Showing" -msgstr "" +msgstr "顯示" #: templates/js/translated/tables.js:539 msgid "to" -msgstr "" +msgstr "至" #: templates/js/translated/tables.js:539 msgid "of" -msgstr "" +msgstr "的" #: templates/js/translated/tables.js:539 msgid "rows" -msgstr "" +msgstr "行" #: templates/js/translated/tables.js:546 msgid "No matching results" -msgstr "" +msgstr "沒有匹配結果" #: templates/js/translated/tables.js:549 msgid "Hide/Show pagination" -msgstr "" +msgstr "隱藏/顯示分頁" #: templates/js/translated/tables.js:555 msgid "Toggle" -msgstr "" +msgstr "切換" #: templates/js/translated/tables.js:561 msgid "All" -msgstr "" +msgstr "所有" #: templates/navbar.html:45 msgid "Buy" -msgstr "" +msgstr "採購" #: templates/navbar.html:57 msgid "Sell" -msgstr "" +msgstr "銷售" #: templates/navbar.html:121 msgid "Show Notifications" -msgstr "" +msgstr "顯示通知" #: templates/navbar.html:124 msgid "New Notifications" -msgstr "" +msgstr "新通知" #: templates/navbar.html:144 users/models.py:201 msgid "Admin" -msgstr "" +msgstr "管理員" #: templates/navbar.html:148 msgid "Logout" -msgstr "" +msgstr "登出" #: templates/notes_buttons.html:6 templates/notes_buttons.html:7 msgid "Save" -msgstr "" +msgstr "儲存" #: templates/notifications.html:9 msgid "Show all notifications and history" -msgstr "" +msgstr "顯示所有通知和歷史記錄" #: templates/pui_banner.html:9 msgid "Platform UI - the new UI for InvenTree - provides more modern administration options." -msgstr "" +msgstr "平台 UI - 新的 UI for InvenTree 提供了更現代化的管理選項。" #: templates/pui_banner.html:12 msgid "Platform UI - the new UI for InvenTree - is ready to be tested." -msgstr "" +msgstr "平台界面-InvenTree的新界面-已準備就緒可供測試。" #: templates/pui_banner.html:15 msgid "Try it out now" -msgstr "" +msgstr "現在試試" #: templates/pui_banner.html:15 msgid "here" -msgstr "" +msgstr "這裏" #: templates/qr_code.html:11 msgid "QR data not provided" -msgstr "" +msgstr "未提供二維碼數據" #: templates/registration/logged_out.html:7 msgid "You were logged out successfully." -msgstr "" +msgstr "您已成功登出。" #: templates/registration/logged_out.html:9 msgid "Log in again" -msgstr "" +msgstr "重新登錄" #: templates/search.html:9 msgid "Show full search results" -msgstr "" +msgstr "顯示全部搜索結果" #: templates/search.html:12 msgid "Clear search" -msgstr "" +msgstr "清除搜索" #: templates/search.html:15 msgid "Close search menu" -msgstr "" +msgstr "關閉搜索菜單" #: templates/socialaccount/authentication_error.html:5 msgid "Social Network Login Failure" -msgstr "" +msgstr "社交網絡登錄失敗" #: templates/socialaccount/authentication_error.html:8 msgid "Account Login Failure" -msgstr "" +msgstr "賬户登錄失敗" #: templates/socialaccount/authentication_error.html:11 msgid "An error occurred while attempting to login via your social network account." -msgstr "" - -#: templates/socialaccount/authentication_error.html:13 -msgid "Contact your system administrator for further information." -msgstr "" +msgstr "嘗試通過您的社交網絡帳户登錄時出錯。" #: templates/socialaccount/login.html:13 #, python-format msgid "Connect %(provider)s" -msgstr "" +msgstr "聯繫 %(provider)s" #: templates/socialaccount/login.html:15 #, python-format msgid "You are about to connect a new third party account from %(provider)s." -msgstr "" +msgstr "您即將連接 %(provider)s 的新第三方帳户。" #: templates/socialaccount/login.html:17 #, python-format msgid "Sign In Via %(provider)s" -msgstr "" +msgstr "通過%(provider)s登入" #: templates/socialaccount/login.html:19 #, python-format msgid "You are about to sign in using a third party account from %(provider)s." -msgstr "" +msgstr "您將使用 %(provider)s 的第三方帳户登錄。" #: templates/socialaccount/login.html:24 msgid "Continue" -msgstr "" +msgstr "繼續" #: templates/socialaccount/login.html:29 msgid "Invalid SSO Provider" -msgstr "" +msgstr "無效的 SSO 提供商" #: templates/socialaccount/login.html:31 msgid "The selected SSO provider is invalid, or has not been correctly configured" -msgstr "" +msgstr "所選SSO提供程序無效,或配置不正確" #: templates/socialaccount/signup.html:11 #, python-format msgid "You are about to use your %(provider_name)s account to login to %(site_name)s." -msgstr "" +msgstr "你即將使用你的 %(provider_name)s 賬號來登錄 %(site_name)s。" #: templates/socialaccount/signup.html:13 msgid "As a final step, please complete the following form" -msgstr "" +msgstr "作為最後一步,請填寫以下表格" #: templates/socialaccount/snippets/provider_list.html:26 msgid "Provider has not been configured" -msgstr "" +msgstr "提供程序尚未配置" #: templates/socialaccount/snippets/provider_list.html:35 msgid "No SSO providers have been configured" -msgstr "" +msgstr "尚未配置SSO提供程序" #: templates/stats.html:13 msgid "Instance Name" -msgstr "" +msgstr "實例名稱" #: templates/stats.html:18 msgid "Database" -msgstr "" +msgstr "數據庫" #: templates/stats.html:26 msgid "Server is running in debug mode" -msgstr "" +msgstr "服務器運行在調試模式" #: templates/stats.html:33 msgid "Docker Mode" -msgstr "" +msgstr "Docker 模式" #: templates/stats.html:34 msgid "Server is deployed using docker" -msgstr "" +msgstr "使用docker部署服務器" #: templates/stats.html:39 msgid "Plugin Support" -msgstr "" +msgstr "插件支持" #: templates/stats.html:43 msgid "Plugin support enabled" -msgstr "" +msgstr "插件支持已啓用" #: templates/stats.html:45 msgid "Plugin support disabled" -msgstr "" +msgstr "插件支持已禁用" #: templates/stats.html:52 msgid "Server status" -msgstr "" +msgstr "服務器狀態" #: templates/stats.html:55 msgid "Healthy" -msgstr "" +msgstr "健康的" #: templates/stats.html:57 msgid "Issues detected" -msgstr "" +msgstr "檢測到的問題" #: templates/stats.html:64 msgid "Background Worker" -msgstr "" +msgstr "後台工作人員" #: templates/stats.html:67 msgid "Background worker not running" -msgstr "" +msgstr "後台工作程序未運行" #: templates/stats.html:75 msgid "Email Settings" -msgstr "" +msgstr "電子郵件設置" #: templates/stats.html:78 msgid "Email settings not configured" -msgstr "" +msgstr "電子郵件設置未配置" #: templates/test_statistics_table.html:13 msgid "Passed" -msgstr "" +msgstr "已通過" #: templates/test_statistics_table.html:16 msgid "Failed" -msgstr "" +msgstr "已失敗" #: templates/yesnolabel.html:4 msgid "Yes" -msgstr "" +msgstr "是" #: templates/yesnolabel.html:6 msgid "No" -msgstr "" +msgstr "否" -#: users/admin.py:104 +#: users/admin.py:101 msgid "Users" -msgstr "" +msgstr "用户" -#: users/admin.py:105 +#: users/admin.py:102 msgid "Select which users are assigned to this group" -msgstr "" +msgstr "選擇分配給此組的用户" -#: users/admin.py:249 +#: users/admin.py:246 msgid "The following users are members of multiple groups" -msgstr "" +msgstr "以下用户是多個組的成員" -#: users/admin.py:283 +#: users/admin.py:280 msgid "Personal info" -msgstr "" +msgstr "個人信息" + +#: users/admin.py:282 +msgid "Permissions" +msgstr "權限" #: users/admin.py:285 -msgid "Permissions" -msgstr "" - -#: users/admin.py:288 msgid "Important dates" -msgstr "" +msgstr "重要日期" #: users/authentication.py:29 users/models.py:138 msgid "Token has been revoked" -msgstr "" +msgstr "令牌已被撤銷" #: users/authentication.py:32 msgid "Token has expired" -msgstr "" +msgstr "令牌已過期" #: users/models.py:81 msgid "API Token" -msgstr "" +msgstr "API 令牌" #: users/models.py:82 msgid "API Tokens" -msgstr "" +msgstr "API 令牌" #: users/models.py:118 msgid "Token Name" -msgstr "" +msgstr "令牌名稱" #: users/models.py:119 msgid "Custom token name" -msgstr "" +msgstr "自定義令牌名稱" #: users/models.py:125 msgid "Token expiry date" -msgstr "" +msgstr "令牌過期日期" #: users/models.py:133 msgid "Last Seen" -msgstr "" +msgstr "最近一次在線" #: users/models.py:134 msgid "Last time the token was used" -msgstr "" +msgstr "最近使用令牌的時間" #: users/models.py:138 msgid "Revoked" -msgstr "" +msgstr "撤銷" -#: users/models.py:379 +#: users/models.py:381 msgid "Permission set" -msgstr "" +msgstr "權限設置" -#: users/models.py:388 +#: users/models.py:390 msgid "Group" -msgstr "" +msgstr "組" -#: users/models.py:392 +#: users/models.py:394 msgid "View" -msgstr "" +msgstr "查看" -#: users/models.py:392 +#: users/models.py:394 msgid "Permission to view items" -msgstr "" +msgstr "查看項目的權限" -#: users/models.py:396 +#: users/models.py:398 msgid "Permission to add items" -msgstr "" - -#: users/models.py:400 -msgid "Change" -msgstr "" +msgstr "添加項目的權限" #: users/models.py:402 +msgid "Change" +msgstr "更改" + +#: users/models.py:404 msgid "Permissions to edit items" -msgstr "" +msgstr "編輯項目的權限" -#: users/models.py:408 +#: users/models.py:410 msgid "Permission to delete items" -msgstr "" +msgstr "刪除項目的權限" diff --git a/src/backend/InvenTree/machine/__init__.py b/src/backend/InvenTree/machine/__init__.py index 719efa14e9..0085d9b4c3 100755 --- a/src/backend/InvenTree/machine/__init__.py +++ b/src/backend/InvenTree/machine/__init__.py @@ -1,4 +1,4 @@ from machine.machine_type import BaseDriver, BaseMachineType, MachineStatus from machine.registry import registry -__all__ = ['registry', 'BaseMachineType', 'BaseDriver', 'MachineStatus'] +__all__ = ['BaseDriver', 'BaseMachineType', 'MachineStatus', 'registry'] diff --git a/src/backend/InvenTree/machine/machine_type.py b/src/backend/InvenTree/machine/machine_type.py index 9d9a456e81..3239f5a149 100644 --- a/src/backend/InvenTree/machine/machine_type.py +++ b/src/backend/InvenTree/machine/machine_type.py @@ -139,7 +139,7 @@ class BaseDriver( Arguments: error: Exception or string """ - self.set_shared_state('errors', self.errors + [error]) + self.set_shared_state('errors', [*self.errors, error]) # --- state getters/setters @property @@ -317,7 +317,7 @@ class BaseMachineType( Arguments: error: Exception or string """ - self.set_shared_state('errors', self.errors + [error]) + self.set_shared_state('errors', [*self.errors, error]) def reset_errors(self): """Helper function for resetting the error list for a machine.""" diff --git a/src/backend/InvenTree/machine/machine_types/__init__.py b/src/backend/InvenTree/machine/machine_types/__init__.py index 6fe810f21a..127b995fae 100644 --- a/src/backend/InvenTree/machine/machine_types/__init__.py +++ b/src/backend/InvenTree/machine/machine_types/__init__.py @@ -4,8 +4,8 @@ from machine.machine_types.label_printer import ( ) __all__ = [ - # machine types - 'LabelPrinterMachine', # base drivers 'LabelPrinterBaseDriver', + # machine types + 'LabelPrinterMachine', ] diff --git a/src/backend/InvenTree/machine/migrations/0001_initial.py b/src/backend/InvenTree/machine/migrations/0001_initial.py index cebcd8365d..74cf0c9a38 100644 --- a/src/backend/InvenTree/machine/migrations/0001_initial.py +++ b/src/backend/InvenTree/machine/migrations/0001_initial.py @@ -27,7 +27,7 @@ class Migration(migrations.Migration): name='MachineSetting', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('key', models.CharField(help_text='Settings key (must be unique - case insensitive)', max_length=50)), + ('key', models.CharField(help_text='Settings key', max_length=50)), ('value', models.CharField(blank=True, help_text='Settings value', max_length=2000)), ('config_type', models.CharField(choices=[('M', 'Machine'), ('D', 'Driver')], max_length=1, verbose_name='Config type')), ('machine_config', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='settings', to='machine.machineconfig', verbose_name='Machine Config')), diff --git a/src/backend/InvenTree/machine/models.py b/src/backend/InvenTree/machine/models.py index d8f570d2fb..c951adb59d 100755 --- a/src/backend/InvenTree/machine/models.py +++ b/src/backend/InvenTree/machine/models.py @@ -188,7 +188,7 @@ class MachineSetting(common.models.BaseInvenTreeSetting): if 'settings' not in kwargs: machine_config: MachineConfig = kwargs.pop('machine_config', None) if machine_config and machine_config.machine: - config_type = kwargs.get('config_type', None) + config_type = kwargs.get('config_type') if config_type == cls.ConfigType.DRIVER: kwargs['settings'] = machine_config.machine.driver_settings elif config_type == cls.ConfigType.MACHINE: diff --git a/src/backend/InvenTree/machine/registry.py b/src/backend/InvenTree/machine/registry.py index b9cdf1e0c9..be8aeb677a 100644 --- a/src/backend/InvenTree/machine/registry.py +++ b/src/backend/InvenTree/machine/registry.py @@ -38,7 +38,7 @@ class MachineRegistry( def handle_error(self, error: Union[Exception, str]): """Helper function for capturing errors with the machine registry.""" - self.set_shared_state('errors', self.errors + [error]) + self.set_shared_state('errors', [*self.errors, error]) def initialize(self, main: bool = False): """Initialize the machine registry.""" diff --git a/src/backend/InvenTree/machine/test_api.py b/src/backend/InvenTree/machine/test_api.py index 1a2e40a517..74dda3641a 100644 --- a/src/backend/InvenTree/machine/test_api.py +++ b/src/backend/InvenTree/machine/test_api.py @@ -84,13 +84,11 @@ class MachineAPITest(TestMachineRegistryMixin, InvenTreeAPITestCase): machine_type, { **machine_type, - **{ - 'slug': 'label-printer', - 'name': 'Label Printer', - 'description': 'Directly print labels for various items.', - 'provider_plugin': None, - 'is_builtin': True, - }, + 'slug': 'label-printer', + 'name': 'Label Printer', + 'description': 'Directly print labels for various items.', + 'provider_plugin': None, + 'is_builtin': True, }, ) self.assertTrue( @@ -109,15 +107,13 @@ class MachineAPITest(TestMachineRegistryMixin, InvenTreeAPITestCase): driver, { **driver, - **{ - 'slug': 'test-label-printer-api', - 'name': 'Test label printer', - 'description': 'This is a test label printer driver for testing.', - 'provider_plugin': None, - 'is_builtin': True, - 'machine_type': 'label-printer', - 'driver_errors': [], - }, + 'slug': 'test-label-printer-api', + 'name': 'Test label printer', + 'description': 'This is a test label printer driver for testing.', + 'provider_plugin': None, + 'is_builtin': True, + 'machine_type': 'label-printer', + 'driver_errors': [], }, ) self.assertEqual(driver['provider_file'], __file__) @@ -173,17 +169,15 @@ class MachineAPITest(TestMachineRegistryMixin, InvenTreeAPITestCase): response.data[0], { **response.data[0], - **{ - 'name': 'Test Machine', - 'machine_type': 'label-printer', - 'driver': 'test-label-printer-api', - 'initialized': True, - 'active': True, - 'status': 101, - 'status_model': 'LabelPrinterStatus', - 'status_text': '', - 'is_driver_available': True, - }, + 'name': 'Test Machine', + 'machine_type': 'label-printer', + 'driver': 'test-label-printer-api', + 'initialized': True, + 'active': True, + 'status': 101, + 'status_model': 'LabelPrinterStatus', + 'status_text': '', + 'is_driver_available': True, }, ) @@ -216,9 +210,7 @@ class MachineAPITest(TestMachineRegistryMixin, InvenTreeAPITestCase): reverse('api-machine-detail', kwargs={'pk': pk}), {'name': 'Updated Machine'}, ) - self.assertEqual( - response.data, {**response.data, **{'name': 'Updated Machine'}} - ) + self.assertEqual(response.data, {**response.data, 'name': 'Updated Machine'}) self.assertEqual(MachineConfig.objects.get(pk=pk).name, 'Updated Machine') # Delete the machine diff --git a/src/backend/InvenTree/machine/tests.py b/src/backend/InvenTree/machine/tests.py index 6075ee7118..16e6bee638 100755 --- a/src/backend/InvenTree/machine/tests.py +++ b/src/backend/InvenTree/machine/tests.py @@ -9,7 +9,7 @@ from django.urls import reverse from rest_framework import serializers -from InvenTree.unit_test import InvenTreeAPITestCase +from InvenTree.unit_test import AdminTestCase, InvenTreeAPITestCase from machine.machine_type import BaseDriver, BaseMachineType, MachineStatus from machine.machine_types.label_printer import LabelPrinterBaseDriver from machine.models import MachineConfig @@ -309,3 +309,11 @@ class TestLabelPrinterMachineType(TestMachineRegistryMixin, InvenTreeAPITestCase }, expected_code=400, ) + + +class AdminTest(AdminTestCase): + """Tests for the admin interface integration.""" + + def test_admin(self): + """Test the admin URL.""" + self.helper(model=MachineConfig) diff --git a/src/backend/InvenTree/order/api.py b/src/backend/InvenTree/order/api.py index 7e08d72e73..bf35232746 100644 --- a/src/backend/InvenTree/order/api.py +++ b/src/backend/InvenTree/order/api.py @@ -5,7 +5,6 @@ from typing import cast from django.conf import settings from django.contrib.auth import authenticate, login -from django.db import transaction from django.db.models import F, Q from django.http.response import JsonResponse from django.urls import include, path, re_path @@ -14,7 +13,6 @@ from django.utils.translation import gettext_lazy as _ from django_filters import rest_framework as rest_filters from django_ical.views import ICalFeed from rest_framework import status -from rest_framework.exceptions import ValidationError from rest_framework.response import Response import common.models @@ -198,7 +196,9 @@ class PurchaseOrderMixin: """Return the annotated queryset for this endpoint.""" queryset = super().get_queryset(*args, **kwargs) - queryset = queryset.prefetch_related('supplier', 'lines') + queryset = queryset.prefetch_related( + 'supplier', 'project_code', 'lines', 'responsible' + ) queryset = serializers.PurchaseOrderSerializer.annotate_queryset(queryset) @@ -214,54 +214,6 @@ class PurchaseOrderList(PurchaseOrderMixin, DataExportViewMixin, ListCreateAPI): filterset_class = PurchaseOrderFilter - def create(self, request, *args, **kwargs): - """Save user information on create.""" - data = self.clean_data(request.data) - - duplicate_order = data.pop('duplicate_order', None) - duplicate_line_items = str2bool(data.pop('duplicate_line_items', False)) - duplicate_extra_lines = str2bool(data.pop('duplicate_extra_lines', False)) - - if duplicate_order is not None: - try: - duplicate_order = models.PurchaseOrder.objects.get(pk=duplicate_order) - except (ValueError, models.PurchaseOrder.DoesNotExist): - raise ValidationError({ - 'duplicate_order': [_('No matching purchase order found')] - }) - - serializer = self.get_serializer(data=data) - serializer.is_valid(raise_exception=True) - - with transaction.atomic(): - order = serializer.save() - order.created_by = request.user - order.save() - - # Duplicate line items from other order if required - if duplicate_order is not None: - if duplicate_line_items: - for line in duplicate_order.lines.all(): - # Copy the line across to the new order - line.pk = None - line.order = order - line.received = 0 - - line.save() - - if duplicate_extra_lines: - for line in duplicate_order.extra_lines.all(): - # Copy the line across to the new order - line.pk = None - line.order = order - - line.save() - - headers = self.get_success_headers(serializer.data) - return Response( - serializer.data, status=status.HTTP_201_CREATED, headers=headers - ) - def filter_queryset(self, queryset): """Custom queryset filtering.""" # Perform basic filtering @@ -337,8 +289,6 @@ class PurchaseOrderList(PurchaseOrderMixin, DataExportViewMixin, ListCreateAPI): class PurchaseOrderDetail(PurchaseOrderMixin, RetrieveUpdateDestroyAPI): """API endpoint for detail view of a PurchaseOrder object.""" - pass - class PurchaseOrderContextMixin: """Mixin to add purchase order object as serializer context variable.""" @@ -442,12 +392,40 @@ class PurchaseOrderLineItemFilter(LineItemFilter): label=_('Supplier Part'), ) + include_variants = rest_filters.BooleanFilter( + label=_('Include Variants'), method='filter_include_variants' + ) + + def filter_include_variants(self, queryset, name, value): + """Filter by whether or not to include variants of the selected part. + + Note: + - This filter does nothing by itself, and requires the 'base_part' filter to be set. + - Refer to the 'filter_base_part' method for more information. + """ + return queryset + base_part = rest_filters.ModelChoiceFilter( queryset=Part.objects.filter(purchaseable=True), - field_name='part__part', + method='filter_base_part', label=_('Internal Part'), ) + def filter_base_part(self, queryset, name, base_part): + """Filter by the 'base_part' attribute. + + Note: + - If "include_variants" is True, include all variants of the selected part + - Otherwise, just filter by the selected part + """ + include_variants = str2bool(self.data.get('include_variants', False)) + + if include_variants: + parts = base_part.get_descendants(include_self=True) + return queryset.filter(part__part__in=parts) + else: + return queryset.filter(part__part=base_part) + pending = rest_filters.BooleanFilter( method='filter_pending', label=_('Order Pending') ) @@ -574,6 +552,7 @@ class PurchaseOrderLineItemList( 'SKU': 'part__SKU', 'part_name': 'part__part__name', 'order': 'order__reference', + 'status': 'order__status', 'complete_date': 'order__complete_date', } @@ -588,6 +567,7 @@ class PurchaseOrderLineItemList( 'total_price', 'target_date', 'order', + 'status', 'complete_date', ] @@ -603,8 +583,6 @@ class PurchaseOrderLineItemList( class PurchaseOrderLineItemDetail(PurchaseOrderLineItemMixin, RetrieveUpdateDestroyAPI): """Detail API endpoint for PurchaseOrderLineItem object.""" - pass - class PurchaseOrderExtraLineList(GeneralExtraLineList, ListCreateAPI): """API endpoint for accessing a list of PurchaseOrderExtraLine objects.""" @@ -629,6 +607,47 @@ class SalesOrderFilter(OrderFilter): model = models.SalesOrder fields = ['customer'] + include_variants = rest_filters.BooleanFilter( + label=_('Include Variants'), method='filter_include_variants' + ) + + def filter_include_variants(self, queryset, name, value): + """Filter by whether or not to include variants of the selected part. + + Note: + - This filter does nothing by itself, and requires the 'part' filter to be set. + - Refer to the 'filter_part' method for more information. + """ + return queryset + + part = rest_filters.ModelChoiceFilter( + queryset=Part.objects.all(), field_name='part', method='filter_part' + ) + + def filter_part(self, queryset, name, part): + """Filter SalesOrder by selected 'part'. + + Note: + - If 'include_variants' is set to True, then all variants of the selected part will be included. + - Otherwise, just filter by the selected part. + """ + include_variants = str2bool(self.data.get('include_variants', False)) + + # Construct a queryset of parts to filter by + if include_variants: + parts = part.get_descendants(include_self=True) + else: + parts = Part.objects.filter(pk=part.pk) + + # Now that we have a queryset of parts, find all the matching sales orders + line_items = models.SalesOrderLineItem.objects.filter(part__in=parts) + + # Generate a list of ID values for the matching sales orders + sales_orders = line_items.values_list('order', flat=True).distinct() + + # Now we have a list of matching IDs, filter the queryset + return queryset.filter(pk__in=sales_orders) + class SalesOrderMixin: """Mixin class for SalesOrder endpoints.""" @@ -654,7 +673,9 @@ class SalesOrderMixin: """Return annotated queryset for this endpoint.""" queryset = super().get_queryset(*args, **kwargs) - queryset = queryset.prefetch_related('customer', 'lines') + queryset = queryset.prefetch_related( + 'customer', 'responsible', 'project_code', 'lines' + ) queryset = serializers.SalesOrderSerializer.annotate_queryset(queryset) @@ -690,17 +711,6 @@ class SalesOrderList(SalesOrderMixin, DataExportViewMixin, ListCreateAPI): params = self.request.query_params - # Filter by "Part" - # Only return SalesOrder which have LineItem referencing the part - part = params.get('part', None) - - if part is not None: - try: - part = Part.objects.get(pk=part) - queryset = queryset.filter(id__in=[so.id for so in part.sales_orders()]) - except (Part.DoesNotExist, ValueError): - pass - # Filter by 'date range' min_date = params.get('min_date', None) max_date = params.get('max_date', None) @@ -746,8 +756,6 @@ class SalesOrderList(SalesOrderMixin, DataExportViewMixin, ListCreateAPI): class SalesOrderDetail(SalesOrderMixin, RetrieveUpdateDestroyAPI): """API endpoint for detail view of a SalesOrder object.""" - pass - class SalesOrderLineItemFilter(LineItemFilter): """Custom filters for SalesOrderLineItemList endpoint.""" @@ -767,12 +775,29 @@ class SalesOrderLineItemFilter(LineItemFilter): queryset=Part.objects.all(), field_name='part', label=_('Part') ) - completed = rest_filters.BooleanFilter(label='completed', method='filter_completed') + allocated = rest_filters.BooleanFilter( + label=_('Allocated'), method='filter_allocated' + ) + + def filter_allocated(self, queryset, name, value): + """Filter by lines which are 'allocated'. + + A line is 'allocated' when allocated >= quantity + """ + q = Q(allocated__gte=F('quantity')) + + if str2bool(value): + return queryset.filter(q) + return queryset.exclude(q) + + completed = rest_filters.BooleanFilter( + label=_('Completed'), method='filter_completed' + ) def filter_completed(self, queryset, name, value): """Filter by lines which are "completed". - A line is completed when shipped >= quantity + A line is 'completed' when shipped >= quantity """ q = Q(shipped__gte=F('quantity')) @@ -805,7 +830,6 @@ class SalesOrderLineItemMixin: kwargs['part_detail'] = str2bool(params.get('part_detail', False)) kwargs['order_detail'] = str2bool(params.get('order_detail', False)) - kwargs['allocations'] = str2bool(params.get('allocations', False)) kwargs['customer_detail'] = str2bool(params.get('customer_detail', False)) except AttributeError: @@ -823,11 +847,15 @@ class SalesOrderLineItemMixin: 'part', 'part__stock_items', 'allocations', + 'allocations__shipment', + 'allocations__item__part', 'allocations__item__location', 'order', 'order__stock_items', ) + queryset = queryset.select_related('part__pricing_data') + queryset = serializers.SalesOrderLineItemSerializer.annotate_queryset(queryset) return queryset @@ -848,6 +876,8 @@ class SalesOrderLineItemList( 'part', 'part__name', 'quantity', + 'allocated', + 'shipped', 'reference', 'sale_price', 'target_date', @@ -865,8 +895,6 @@ class SalesOrderLineItemList( class SalesOrderLineItemDetail(SalesOrderLineItemMixin, RetrieveUpdateDestroyAPI): """API endpoint for detail view of a SalesOrderLineItem object.""" - pass - class SalesOrderExtraLineList(GeneralExtraLineList, ListCreateAPI): """API endpoint for accessing a list of SalesOrderExtraLine objects.""" @@ -943,18 +971,111 @@ class SalesOrderAllocate(SalesOrderContextMixin, CreateAPI): serializer_class = serializers.SalesOrderShipmentAllocationSerializer -class SalesOrderAllocationDetail(RetrieveUpdateDestroyAPI): - """API endpoint for detali view of a SalesOrderAllocation object.""" +class SalesOrderAllocationFilter(rest_filters.FilterSet): + """Custom filterset for the SalesOrderAllocationList endpoint.""" + + class Meta: + """Metaclass options.""" + + model = models.SalesOrderAllocation + fields = ['shipment', 'item'] + + order = rest_filters.ModelChoiceFilter( + queryset=models.SalesOrder.objects.all(), + field_name='line__order', + label=_('Order'), + ) + + include_variants = rest_filters.BooleanFilter( + label=_('Include Variants'), method='filter_include_variants' + ) + + def filter_include_variants(self, queryset, name, value): + """Filter by whether or not to include variants of the selected part. + + Note: + - This filter does nothing by itself, and requires the 'part' filter to be set. + - Refer to the 'filter_part' method for more information. + """ + return queryset + + part = rest_filters.ModelChoiceFilter( + queryset=Part.objects.all(), method='filter_part', label=_('Part') + ) + + def filter_part(self, queryset, name, part): + """Filter by the 'part' attribute. + + Note: + - If "include_variants" is True, include all variants of the selected part + - Otherwise, just filter by the selected part + """ + include_variants = str2bool(self.data.get('include_variants', False)) + + if include_variants: + parts = part.get_descendants(include_self=True) + return queryset.filter(item__part__in=parts) + else: + return queryset.filter(item__part=part) + + outstanding = rest_filters.BooleanFilter( + label=_('Outstanding'), method='filter_outstanding' + ) + + def filter_outstanding(self, queryset, name, value): + """Filter by "outstanding" status (boolean).""" + if str2bool(value): + return queryset.filter( + line__order__status__in=SalesOrderStatusGroups.OPEN, + shipment__shipment_date=None, + ) + return queryset.exclude( + shipment__shipment_date=None, + line__order__status__in=SalesOrderStatusGroups.OPEN, + ) + + +class SalesOrderAllocationMixin: + """Mixin class for SalesOrderAllocation endpoints.""" queryset = models.SalesOrderAllocation.objects.all() serializer_class = serializers.SalesOrderAllocationSerializer + def get_queryset(self, *args, **kwargs): + """Annotate the queryset for this endpoint.""" + queryset = super().get_queryset(*args, **kwargs) -class SalesOrderAllocationList(ListAPI): + queryset = queryset.prefetch_related( + 'item', + 'item__sales_order', + 'item__part', + 'item__location', + 'line__order', + 'line__part', + 'shipment', + 'shipment__order', + ) + + return queryset + + +class SalesOrderAllocationList(SalesOrderAllocationMixin, ListAPI): """API endpoint for listing SalesOrderAllocation objects.""" - queryset = models.SalesOrderAllocation.objects.all() - serializer_class = serializers.SalesOrderAllocationSerializer + filterset_class = SalesOrderAllocationFilter + filter_backends = SEARCH_ORDER_FILTER_ALIAS + + ordering_fields = ['quantity', 'part', 'serial', 'batch', 'location', 'order'] + + ordering_field_aliases = { + 'part': 'item__part__name', + 'serial': ['item__serial_int', 'item__serial'], + 'batch': 'item__batch', + 'location': 'item__location__name', + 'order': 'line__order__reference', + } + + search_fields = {'item__part__name', 'item__serial', 'item__batch'} def get_serializer(self, *args, **kwargs): """Return the serializer instance for this endpoint. @@ -974,53 +1095,9 @@ class SalesOrderAllocationList(ListAPI): return self.serializer_class(*args, **kwargs) - def filter_queryset(self, queryset): - """Custom queryset filtering.""" - queryset = super().filter_queryset(queryset) - # Filter by order - params = self.request.query_params - - # Filter by "part" reference - part = params.get('part', None) - - if part is not None: - queryset = queryset.filter(item__part=part) - - # Filter by "order" reference - order = params.get('order', None) - - if order is not None: - queryset = queryset.filter(line__order=order) - - # Filter by "stock item" - item = params.get('item', params.get('stock_item', None)) - - if item is not None: - queryset = queryset.filter(item=item) - - # Filter by "outstanding" order status - outstanding = params.get('outstanding', None) - - if outstanding is not None: - outstanding = str2bool(outstanding) - - if outstanding: - # Filter only "open" orders - # Filter only allocations which have *not* shipped - queryset = queryset.filter( - line__order__status__in=SalesOrderStatusGroups.OPEN, - shipment__shipment_date=None, - ) - else: - queryset = queryset.exclude( - line__order__status__in=SalesOrderStatusGroups.OPEN, - shipment__shipment_date=None, - ) - - return queryset - - filter_backends = [rest_filters.DjangoFilterBackend] +class SalesOrderAllocationDetail(SalesOrderAllocationMixin, RetrieveUpdateDestroyAPI): + """API endpoint for detali view of a SalesOrderAllocation object.""" class SalesOrderShipmentFilter(rest_filters.FilterSet): @@ -1049,24 +1126,32 @@ class SalesOrderShipmentFilter(rest_filters.FilterSet): return queryset.filter(delivery_date=None) -class SalesOrderShipmentList(ListCreateAPI): +class SalesOrderShipmentMixin: + """Mixin class for SalesOrderShipment endpoints.""" + + queryset = models.SalesOrderShipment.objects.all() + serializer_class = serializers.SalesOrderShipmentSerializer + + def get_queryset(self, *args, **kwargs): + """Return annotated queryset for this endpoint.""" + queryset = super().get_queryset(*args, **kwargs) + + queryset = serializers.SalesOrderShipmentSerializer.annotate_queryset(queryset) + + return queryset + + +class SalesOrderShipmentList(SalesOrderShipmentMixin, ListCreateAPI): """API list endpoint for SalesOrderShipment model.""" - queryset = models.SalesOrderShipment.objects.all() - serializer_class = serializers.SalesOrderShipmentSerializer filterset_class = SalesOrderShipmentFilter - filter_backends = SEARCH_ORDER_FILTER_ALIAS - - ordering_fields = ['delivery_date', 'shipment_date'] + ordering_fields = ['reference', 'delivery_date', 'shipment_date', 'allocated_items'] -class SalesOrderShipmentDetail(RetrieveUpdateDestroyAPI): +class SalesOrderShipmentDetail(SalesOrderShipmentMixin, RetrieveUpdateDestroyAPI): """API detail endpooint for SalesOrderShipment model.""" - queryset = models.SalesOrderShipment.objects.all() - serializer_class = serializers.SalesOrderShipmentSerializer - class SalesOrderShipmentComplete(CreateAPI): """API endpoint for completing (shipping) a SalesOrderShipment.""" @@ -1098,6 +1183,46 @@ class ReturnOrderFilter(OrderFilter): model = models.ReturnOrder fields = ['customer'] + include_variants = rest_filters.BooleanFilter( + label=_('Include Variants'), method='filter_include_variants' + ) + + def filter_include_variants(self, queryset, name, value): + """Filter by whether or not to include variants of the selected part. + + Note: + - This filter does nothing by itself, and requires the 'part' filter to be set. + - Refer to the 'filter_part' method for more information. + """ + return queryset + + part = rest_filters.ModelChoiceFilter( + queryset=Part.objects.all(), field_name='part', method='filter_part' + ) + + def filter_part(self, queryset, name, part): + """Filter by selected 'part'. + + Note: + - If 'include_variants' is set to True, then all variants of the selected part will be included. + - Otherwise, just filter by the selected part. + """ + include_variants = str2bool(self.data.get('include_variants', False)) + + if include_variants: + parts = part.get_descendants(include_self=True) + else: + parts = Part.objects.filter(pk=part.pk) + + # Now that we have a queryset of parts, find all the matching return orders + line_items = models.ReturnOrderLineItem.objects.filter(item__part__in=parts) + + # Generate a list of ID values for the matching return orders + return_orders = line_items.values_list('order', flat=True).distinct() + + # Now we have a list of matching IDs, filter the queryset + return queryset.filter(pk__in=return_orders) + class ReturnOrderMixin: """Mixin class for ReturnOrder endpoints.""" @@ -1123,7 +1248,9 @@ class ReturnOrderMixin: """Return annotated queryset for this endpoint.""" queryset = super().get_queryset(*args, **kwargs) - queryset = queryset.prefetch_related('customer') + queryset = queryset.prefetch_related( + 'customer', 'lines', 'project_code', 'responsible' + ) queryset = serializers.ReturnOrderSerializer.annotate_queryset(queryset) @@ -1181,8 +1308,6 @@ class ReturnOrderList(ReturnOrderMixin, DataExportViewMixin, ListCreateAPI): class ReturnOrderDetail(ReturnOrderMixin, RetrieveUpdateDestroyAPI): """API endpoint for detail view of a single ReturnOrder object.""" - pass - class ReturnOrderContextMixin: """Simple mixin class to add a ReturnOrder to the serializer context.""" @@ -1310,8 +1435,6 @@ class ReturnOrderLineItemList( class ReturnOrderLineItemDetail(ReturnOrderLineItemMixin, RetrieveUpdateDestroyAPI): """API endpoint for detail view of a ReturnOrderLineItem object.""" - pass - class ReturnOrderExtraLineList(GeneralExtraLineList, ListCreateAPI): """API endpoint for accessing a list of ReturnOrderExtraLine objects.""" @@ -1368,10 +1491,9 @@ class OrderCalendarExport(ICalFeed): if auth[0].lower() == 'basic': uname, passwd = base64.b64decode(auth[1]).decode('ascii').split(':') user = authenticate(username=uname, password=passwd) - if user is not None: - if user.is_active: - login(request, user) - request.user = user + if user is not None and user.is_active: + login(request, user) + request.user = user # Check again if request.user.is_authenticated: diff --git a/src/backend/InvenTree/order/migrations/0102_purchaseorder_destination_and_more.py b/src/backend/InvenTree/order/migrations/0102_purchaseorder_destination_and_more.py new file mode 100644 index 0000000000..9a9ae71d72 --- /dev/null +++ b/src/backend/InvenTree/order/migrations/0102_purchaseorder_destination_and_more.py @@ -0,0 +1,26 @@ +# Generated by Django 4.2.16 on 2024-10-31 02:52 + +from django.db import migrations +import django.db.models.deletion +import mptt.fields + + +class Migration(migrations.Migration): + + dependencies = [ + ('stock', '0113_stockitem_status_custom_key_and_more'), + ('order', '0101_purchaseorder_status_custom_key_and_more'), + ] + + operations = [ + migrations.AddField( + model_name='purchaseorder', + name='destination', + field=mptt.fields.TreeForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='purchase_orders', to='stock.stocklocation', verbose_name='Destination', help_text='Destination for received items'), + ), + migrations.AlterField( + model_name='purchaseorderlineitem', + name='destination', + field=mptt.fields.TreeForeignKey(blank=True, help_text='Destination for received items', null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='po_lines', to='stock.stocklocation', verbose_name='Destination'), + ), + ] diff --git a/src/backend/InvenTree/order/models.py b/src/backend/InvenTree/order/models.py index 88b3325da6..fbb16d3deb 100644 --- a/src/backend/InvenTree/order/models.py +++ b/src/backend/InvenTree/order/models.py @@ -1,7 +1,6 @@ """Order model definitions.""" import logging -import sys from datetime import datetime from decimal import Decimal @@ -151,9 +150,6 @@ class TotalPriceMixin(models.Model): try: total += line.quantity * convert_money(line.price, target_currency) except MissingRate: - # Record the error, try to press on - _1, _2, _3 = sys.exc_info() - log_error('order.calculate_total_price') logger.exception("Missing exchange rate for '%s'", target_currency) @@ -247,6 +243,16 @@ class Order( 'contact': _('Contact does not match selected company') }) + def clean_line_item(self, line): + """Clean a line item for this order. + + Used when duplicating an existing line item, + to ensure it is 'fresh'. + """ + line.pk = None + line.target_date = None + line.order = self + def report_context(self): """Generate context data for the reporting interface.""" return { @@ -379,6 +385,11 @@ class PurchaseOrder(TotalPriceMixin, Order): verbose_name = _('Purchase Order') + def clean_line_item(self, line): + """Clean a line item for this PurchaseOrder.""" + super().clean_line_item(line) + line.received = 0 + def report_context(self): """Return report context data for this PurchaseOrder.""" return {**super().report_context(), 'supplier': self.supplier} @@ -528,6 +539,16 @@ class PurchaseOrder(TotalPriceMixin, Order): help_text=_('Date order was completed'), ) + destination = TreeForeignKey( + 'stock.StockLocation', + on_delete=models.SET_NULL, + related_name='purchase_orders', + blank=True, + null=True, + verbose_name=_('Destination'), + help_text=_('Destination for received items'), + ) + @transaction.atomic def add_line_item( self, @@ -765,7 +786,7 @@ class PurchaseOrder(TotalPriceMixin, Order): @property def is_complete(self): """Return True if all line items have been received.""" - return self.lines.count() > 0 and self.pending_line_items().count() == 0 + return self.pending_line_items().count() == 0 @transaction.atomic def receive_line_item( @@ -776,13 +797,13 @@ class PurchaseOrder(TotalPriceMixin, Order): batch_code = kwargs.get('batch_code', '') # Extract optional list of serial numbers - serials = kwargs.get('serials', None) + serials = kwargs.get('serials') # Extract optional notes field notes = kwargs.get('notes', '') # Extract optional packaging field - packaging = kwargs.get('packaging', None) + packaging = kwargs.get('packaging') if not packaging: # Default to the packaging field for the linked supplier part @@ -790,7 +811,7 @@ class PurchaseOrder(TotalPriceMixin, Order): packaging = line.part.packaging # Extract optional barcode field - barcode = kwargs.get('barcode', None) + barcode = kwargs.get('barcode') # Prevent null values for barcode if barcode is None: @@ -858,7 +879,7 @@ class PurchaseOrder(TotalPriceMixin, Order): deltas=tracking_info, location=location, purchaseorder=self, - quantity=quantity, + quantity=float(quantity), ) # Update the number of parts received against the particular line item @@ -892,6 +913,11 @@ class SalesOrder(TotalPriceMixin, Order): verbose_name = _('Sales Order') + def clean_line_item(self, line): + """Clean a line item for this SalesOrder.""" + super().clean_line_item(line) + line.shipped = 0 + def report_context(self): """Generate report context data for this SalesOrder.""" return {**super().report_context(), 'customer': self.customer} @@ -1048,25 +1074,15 @@ class SalesOrder(TotalPriceMixin, Order): def is_fully_allocated(self): """Return True if all line items are fully allocated.""" - for line in self.lines.all(): - if not line.is_fully_allocated(): - return False - - return True + return all(line.is_fully_allocated() for line in self.lines.all()) def is_overallocated(self): """Return true if any lines in the order are over-allocated.""" - for line in self.lines.all(): - if line.is_overallocated(): - return True - - return False + return any(line.is_overallocated() for line in self.lines.all()) def is_completed(self): """Check if this order is "shipped" (all line items delivered).""" - return self.lines.count() > 0 and all( - line.is_completed() for line in self.lines.all() - ) + return all(line.is_completed() for line in self.lines.all()) def can_complete(self, raise_error=False, allow_incomplete_lines=False): """Test if this SalesOrder can be completed. @@ -1471,10 +1487,9 @@ class PurchaseOrderLineItem(OrderLineItem): def __str__(self): """Render a string representation of a PurchaseOrderLineItem instance.""" - return '{n} x {part} from {supplier} (for {po})'.format( + return '{n} x {part} - {po}'.format( n=decimal2string(self.quantity), part=self.part.SKU if self.part else 'unknown part', - supplier=self.order.supplier.name if self.order.supplier else _('deleted'), po=self.order, ) @@ -1534,7 +1549,7 @@ class PurchaseOrderLineItem(OrderLineItem): related_name='po_lines', blank=True, null=True, - help_text=_('Where does the Purchaser want this item to be stored?'), + help_text=_('Destination for received items'), ) def get_destination(self): @@ -1726,7 +1741,9 @@ class SalesOrderLineItem(OrderLineItem): class SalesOrderShipment( + InvenTree.models.InvenTreeAttachmentMixin, InvenTree.models.InvenTreeNotesMixin, + report.mixins.InvenTreeReportMixin, InvenTree.models.MetadataMixin, InvenTree.models.InvenTreeModel, ): @@ -1756,6 +1773,17 @@ class SalesOrderShipment( """Return the API URL associated with the SalesOrderShipment model.""" return reverse('api-so-shipment-list') + def report_context(self): + """Generate context data for the reporting interface.""" + return { + 'allocations': self.allocations, + 'order': self.order, + 'reference': self.reference, + 'shipment': self, + 'tracking_number': self.tracking_number, + 'title': str(self), + } + order = models.ForeignKey( SalesOrder, on_delete=models.CASCADE, @@ -1853,16 +1881,11 @@ class SalesOrderShipment( 2. Update the "shipped" quantity of all associated line items 3. Set the "shipment_date" to now """ + import order.tasks + # Check if the shipment can be completed (throw error if not) self.check_can_complete() - allocations = self.allocations.all() - - # Iterate through each stock item assigned to this shipment - for allocation in allocations: - # Mark the allocation as "complete" - allocation.complete_allocation(user) - # Update the "shipment" date self.shipment_date = kwargs.get( 'shipment_date', InvenTree.helpers.current_date() @@ -1870,31 +1893,40 @@ class SalesOrderShipment( self.shipped_by = user # Was a tracking number provided? - tracking_number = kwargs.get('tracking_number', None) + tracking_number = kwargs.get('tracking_number') if tracking_number is not None: self.tracking_number = tracking_number # Was an invoice number provided? - invoice_number = kwargs.get('invoice_number', None) + invoice_number = kwargs.get('invoice_number') if invoice_number is not None: self.invoice_number = invoice_number # Was a link provided? - link = kwargs.get('link', None) + link = kwargs.get('link') if link is not None: self.link = link # Was a delivery date provided? - delivery_date = kwargs.get('delivery_date', None) + delivery_date = kwargs.get('delivery_date') if delivery_date is not None: self.delivery_date = delivery_date self.save() + # Offload the "completion" of each line item to the background worker + # This may take some time, and we don't want to block the main thread + InvenTree.tasks.offload_task( + order.tasks.complete_sales_order_shipment, + shipment_id=self.pk, + user_id=user.pk if user else None, + group='sales_order', + ) + trigger_event('salesordershipment.completed', id=self.pk) @@ -2091,6 +2123,12 @@ class ReturnOrder(TotalPriceMixin, Order): verbose_name = _('Return Order') + def clean_line_item(self, line): + """Clean a line item for this ReturnOrder.""" + super().clean_line_item(line) + line.received_date = None + line.outcome = ReturnOrderLineStatus.PENDING.value + def report_context(self): """Generate report context data for this ReturnOrder.""" return {**super().report_context(), 'customer': self.customer} @@ -2296,7 +2334,7 @@ class ReturnOrder(TotalPriceMixin, Order): # endregion @transaction.atomic - def receive_line_item(self, line, location, user, note=''): + def receive_line_item(self, line, location, user, note='', **kwargs): """Receive a line item against this ReturnOrder. Rules: @@ -2322,7 +2360,7 @@ class ReturnOrder(TotalPriceMixin, Order): deltas['customer'] = stock_item.customer.pk # Update the StockItem - stock_item.status = StockStatus.QUARANTINED.value + stock_item.status = kwargs.get('status', StockStatus.QUARANTINED.value) stock_item.location = location stock_item.customer = None stock_item.sales_order = None diff --git a/src/backend/InvenTree/order/serializers.py b/src/backend/InvenTree/order/serializers.py index d0d07c14d8..feeb649d53 100644 --- a/src/backend/InvenTree/order/serializers.py +++ b/src/backend/InvenTree/order/serializers.py @@ -14,11 +14,12 @@ from django.db.models import ( Value, When, ) +from django.db.models.functions import Coalesce from django.utils.translation import gettext_lazy as _ from rest_framework import serializers from rest_framework.serializers import ValidationError -from sql_util.utils import SubqueryCount +from sql_util.utils import SubqueryCount, SubquerySum import order.models import part.filters as part_filters @@ -74,10 +75,39 @@ class TotalPriceMixin(serializers.Serializer): ) +class DuplicateOrderSerializer(serializers.Serializer): + """Serializer for specifying options when duplicating an order.""" + + class Meta: + """Metaclass options.""" + + fields = ['order_id', 'copy_lines', 'copy_extra_lines'] + + order_id = serializers.IntegerField( + required=True, label=_('Order ID'), help_text=_('ID of the order to duplicate') + ) + + copy_lines = serializers.BooleanField( + required=False, + default=True, + label=_('Copy Lines'), + help_text=_('Copy line items from the original order'), + ) + + copy_extra_lines = serializers.BooleanField( + required=False, + default=True, + label=_('Copy Extra Lines'), + help_text=_('Copy extra line items from the original order'), + ) + + class AbstractOrderSerializer(DataImportExportSerializerMixin, serializers.Serializer): """Abstract serializer class which provides fields common to all order types.""" - export_exclude_fields = ['notes'] + export_exclude_fields = ['notes', 'duplicate'] + + import_exclude_fields = ['notes', 'duplicate'] # Number of line items in this order line_items = serializers.IntegerField(read_only=True, label=_('Line Items')) @@ -127,6 +157,13 @@ class AbstractOrderSerializer(DataImportExportSerializerMixin, serializers.Seria required=False, allow_null=True, label=_('Creation Date') ) + duplicate = DuplicateOrderSerializer( + label=_('Duplicate Order'), + help_text=_('Specify options for duplicating this order'), + required=False, + write_only=True, + ) + def validate_reference(self, reference): """Custom validation for the reference field.""" self.Meta.model.validate_reference_field(reference) @@ -166,7 +203,48 @@ class AbstractOrderSerializer(DataImportExportSerializerMixin, serializers.Seria 'notes', 'barcode_hash', 'overdue', - ] + extra_fields + 'duplicate', + *extra_fields, + ] + + def clean_line_item(self, line): + """Clean a line item object (when duplicating).""" + line.pk = None + line.order = self + + @transaction.atomic + def create(self, validated_data): + """Create a new order object. + + Optionally, copy line items from an existing order. + """ + duplicate = validated_data.pop('duplicate', None) + + instance = super().create(validated_data) + + if duplicate: + order_id = duplicate.get('order_id', None) + copy_lines = duplicate.get('copy_lines', True) + copy_extra_lines = duplicate.get('copy_extra_lines', True) + + try: + copy_from = instance.__class__.objects.get(pk=order_id) + except Exception: + # If the order ID is invalid, raise a validation error + raise ValidationError(_('Invalid order ID')) + + if copy_lines: + for line in copy_from.lines.all(): + instance.clean_line_item(line) + line.save() + + if copy_extra_lines: + for line in copy_from.extra_lines.all(): + line.pk = None + line.order = instance + line.save() + + return instance class AbstractLineItemSerializer: @@ -240,6 +318,7 @@ class PurchaseOrderSerializer( 'supplier_name', 'total_price', 'order_currency', + 'destination', ]) read_only_fields = ['issue_date', 'complete_date', 'creation_date'] @@ -258,6 +337,12 @@ class PurchaseOrderSerializer( if supplier_detail is not True: self.fields.pop('supplier_detail', None) + def skip_create_fields(self): + """Skip these fields when instantiating a new object.""" + fields = super().skip_create_fields() + + return [*fields, 'duplicate'] + @staticmethod def annotate_queryset(queryset): """Add extra information to the queryset. @@ -433,7 +518,7 @@ class PurchaseOrderLineItemSerializer( def skip_create_fields(self): """Return a list of fields to skip when creating a new object.""" - return ['auto_pricing', 'merge_items'] + super().skip_create_fields() + return ['auto_pricing', 'merge_items', *super().skip_create_fields()] @staticmethod def annotate_queryset(queryset): @@ -740,24 +825,40 @@ class PurchaseOrderLineItemReceiveSerializer(serializers.Serializer): base_quantity = line_item.part.base_quantity(quantity) # Does the quantity need to be "integer" (for trackable parts?) - if base_part.trackable: - if Decimal(base_quantity) != int(base_quantity): - raise ValidationError({ - 'quantity': _( - 'An integer quantity must be provided for trackable parts' - ) - }) + if base_part.trackable and Decimal(base_quantity) != int(base_quantity): + raise ValidationError({ + 'quantity': _( + 'An integer quantity must be provided for trackable parts' + ) + }) # If serial numbers are provided if serial_numbers: try: # Pass the serial numbers through to the parent serializer once validated data['serials'] = extract_serial_numbers( - serial_numbers, base_quantity, base_part.get_latest_serial_number() + serial_numbers, + base_quantity, + base_part.get_latest_serial_number(), + part=base_part, ) except DjangoValidationError as e: raise ValidationError({'serial_numbers': e.messages}) + invalid_serials = [] + + # Check the serial numbers are valid + for serial in data['serials']: + try: + base_part.validate_serial_number(serial, raise_error=True) + except (ValidationError, DjangoValidationError): + invalid_serials.append(serial) + + if len(invalid_serials) > 0: + msg = _('The following serial numbers already exist or are invalid') + msg += ': ' + ', '.join(invalid_serials) + raise ValidationError({'serial_numbers': msg}) + return data @@ -774,6 +875,7 @@ class PurchaseOrderReceiveSerializer(serializers.Serializer): location = serializers.PrimaryKeyRelatedField( queryset=stock.models.StockLocation.objects.all(), many=False, + required=False, allow_null=True, label=_('Location'), help_text=_('Select destination location for received items'), @@ -787,9 +889,10 @@ class PurchaseOrderReceiveSerializer(serializers.Serializer): """ super().validate(data) + order = self.context['order'] items = data.get('items', []) - location = data.get('location', None) + location = data.get('location', order.destination) if len(items) == 0: raise ValidationError(_('Line items must be provided')) @@ -833,15 +936,17 @@ class PurchaseOrderReceiveSerializer(serializers.Serializer): order = self.context['order'] items = data['items'] - location = data.get('location', None) + + # Location can be provided, or default to the order destination + location = data.get('location', order.destination) # Now we can actually receive the items into stock with transaction.atomic(): for item in items: # Select location (in descending order of priority) loc = ( - location - or item.get('location', None) + item.get('location', None) + or location or item['line_item'].get_destination() ) @@ -900,6 +1005,12 @@ class SalesOrderSerializer( if customer_detail is not True: self.fields.pop('customer_detail', None) + def skip_create_fields(self): + """Skip these fields when instantiating a new object.""" + fields = super().skip_create_fields() + + return [*fields, 'duplicate'] + @staticmethod def annotate_queryset(queryset): """Add extra information to the queryset. @@ -939,88 +1050,6 @@ class SalesOrderIssueSerializer(OrderAdjustSerializer): self.order.issue_order() -class SalesOrderAllocationSerializer(InvenTreeModelSerializer): - """Serializer for the SalesOrderAllocation model. - - This includes some fields from the related model objects. - """ - - class Meta: - """Metaclass options.""" - - model = order.models.SalesOrderAllocation - - fields = [ - 'pk', - 'line', - 'customer_detail', - 'serial', - 'quantity', - 'location', - 'location_detail', - 'item', - 'item_detail', - 'order', - 'order_detail', - 'part', - 'part_detail', - 'shipment', - 'shipment_date', - ] - - def __init__(self, *args, **kwargs): - """Initialization routine for the serializer.""" - order_detail = kwargs.pop('order_detail', False) - part_detail = kwargs.pop('part_detail', True) - item_detail = kwargs.pop('item_detail', True) - location_detail = kwargs.pop('location_detail', False) - customer_detail = kwargs.pop('customer_detail', False) - - super().__init__(*args, **kwargs) - - if not order_detail: - self.fields.pop('order_detail', None) - - if not part_detail: - self.fields.pop('part_detail', None) - - if not item_detail: - self.fields.pop('item_detail', None) - - if not location_detail: - self.fields.pop('location_detail', None) - - if not customer_detail: - self.fields.pop('customer_detail', None) - - part = serializers.PrimaryKeyRelatedField(source='item.part', read_only=True) - order = serializers.PrimaryKeyRelatedField( - source='line.order', many=False, read_only=True - ) - serial = serializers.CharField(source='get_serial', read_only=True) - quantity = serializers.FloatField(read_only=False) - location = serializers.PrimaryKeyRelatedField( - source='item.location', many=False, read_only=True - ) - - # Extra detail fields - order_detail = SalesOrderSerializer(source='line.order', many=False, read_only=True) - part_detail = PartBriefSerializer(source='item.part', many=False, read_only=True) - item_detail = stock.serializers.StockItemSerializer( - source='item', many=False, read_only=True - ) - location_detail = stock.serializers.LocationSerializer( - source='item.location', many=False, read_only=True - ) - customer_detail = CompanyBriefSerializer( - source='line.order.customer', many=False, read_only=True - ) - - shipment_date = serializers.DateField( - source='shipment.shipment_date', read_only=True - ) - - @register_importer() class SalesOrderLineItemSerializer( DataImportExportSerializerMixin, @@ -1037,7 +1066,6 @@ class SalesOrderLineItemSerializer( fields = [ 'pk', 'allocated', - 'allocations', 'customer_detail', 'quantity', 'reference', @@ -1066,7 +1094,6 @@ class SalesOrderLineItemSerializer( """ part_detail = kwargs.pop('part_detail', False) order_detail = kwargs.pop('order_detail', False) - allocations = kwargs.pop('allocations', False) customer_detail = kwargs.pop('customer_detail', False) super().__init__(*args, **kwargs) @@ -1077,9 +1104,6 @@ class SalesOrderLineItemSerializer( if order_detail is not True: self.fields.pop('order_detail', None) - if allocations is not True: - self.fields.pop('allocations', None) - if customer_detail is not True: self.fields.pop('customer_detail', None) @@ -1161,15 +1185,21 @@ class SalesOrderLineItemSerializer( building=part_filters.annotate_in_production_quantity(reference='part__') ) + # Annotate total 'allocated' stock quantity + queryset = queryset.annotate( + allocated=Coalesce( + SubquerySum('allocations__quantity'), + Decimal(0), + output_field=models.DecimalField(), + ) + ) + return queryset - customer_detail = CompanyBriefSerializer( - source='order.customer', many=False, read_only=True - ) order_detail = SalesOrderSerializer(source='order', many=False, read_only=True) part_detail = PartBriefSerializer(source='part', many=False, read_only=True) - allocations = SalesOrderAllocationSerializer( - many=True, read_only=True, location_detail=True + customer_detail = CompanyBriefSerializer( + source='order.customer', many=False, read_only=True ) # Annotated fields @@ -1181,7 +1211,7 @@ class SalesOrderLineItemSerializer( quantity = InvenTreeDecimalField() - allocated = serializers.FloatField(source='allocated_quantity', read_only=True) + allocated = serializers.FloatField(read_only=True) shipped = InvenTreeDecimalField(read_only=True) @@ -1205,7 +1235,7 @@ class SalesOrderShipmentSerializer(NotesFieldMixin, InvenTreeModelSerializer): 'pk', 'order', 'order_detail', - 'allocations', + 'allocated_items', 'shipment_date', 'delivery_date', 'checked_by', @@ -1216,13 +1246,105 @@ class SalesOrderShipmentSerializer(NotesFieldMixin, InvenTreeModelSerializer): 'notes', ] - allocations = SalesOrderAllocationSerializer( - many=True, read_only=True, location_detail=True + @staticmethod + def annotate_queryset(queryset): + """Annotate the queryset with extra information.""" + # Prefetch related objects + queryset = queryset.prefetch_related('order', 'order__customer', 'allocations') + + queryset = queryset.annotate(allocated_items=SubqueryCount('allocations')) + + return queryset + + allocated_items = serializers.IntegerField( + read_only=True, label=_('Allocated Items') ) order_detail = SalesOrderSerializer(source='order', read_only=True, many=False) +class SalesOrderAllocationSerializer(InvenTreeModelSerializer): + """Serializer for the SalesOrderAllocation model. + + This includes some fields from the related model objects. + """ + + class Meta: + """Metaclass options.""" + + model = order.models.SalesOrderAllocation + + fields = [ + 'pk', + 'line', + 'customer_detail', + 'serial', + 'quantity', + 'location', + 'location_detail', + 'item', + 'item_detail', + 'order', + 'order_detail', + 'part', + 'part_detail', + 'shipment', + 'shipment_detail', + ] + + def __init__(self, *args, **kwargs): + """Initialization routine for the serializer.""" + order_detail = kwargs.pop('order_detail', False) + part_detail = kwargs.pop('part_detail', True) + item_detail = kwargs.pop('item_detail', True) + location_detail = kwargs.pop('location_detail', False) + customer_detail = kwargs.pop('customer_detail', False) + + super().__init__(*args, **kwargs) + + if not order_detail: + self.fields.pop('order_detail', None) + + if not part_detail: + self.fields.pop('part_detail', None) + + if not item_detail: + self.fields.pop('item_detail', None) + + if not location_detail: + self.fields.pop('location_detail', None) + + if not customer_detail: + self.fields.pop('customer_detail', None) + + part = serializers.PrimaryKeyRelatedField(source='item.part', read_only=True) + order = serializers.PrimaryKeyRelatedField( + source='line.order', many=False, read_only=True + ) + serial = serializers.CharField(source='get_serial', read_only=True) + quantity = serializers.FloatField(read_only=False) + location = serializers.PrimaryKeyRelatedField( + source='item.location', many=False, read_only=True + ) + + # Extra detail fields + order_detail = SalesOrderSerializer(source='line.order', many=False, read_only=True) + part_detail = PartBriefSerializer(source='item.part', many=False, read_only=True) + item_detail = stock.serializers.StockItemSerializerBrief( + source='item', many=False, read_only=True + ) + location_detail = stock.serializers.LocationBriefSerializer( + source='item.location', many=False, read_only=True + ) + customer_detail = CompanyBriefSerializer( + source='line.order.customer', many=False, read_only=True + ) + + shipment_detail = SalesOrderShipmentSerializer( + source='shipment', many=False, read_only=True + ) + + class SalesOrderShipmentCompleteSerializer(serializers.ModelSerializer): """Serializer for completing (shipping) a SalesOrderShipment.""" @@ -1512,42 +1634,50 @@ class SalesOrderSerialAllocationSerializer(serializers.Serializer): try: data['serials'] = extract_serial_numbers( - serial_numbers, quantity, part.get_latest_serial_number() + serial_numbers, quantity, part.get_latest_serial_number(), part=part ) except DjangoValidationError as e: raise ValidationError({'serial_numbers': e.messages}) - serials_not_exist = [] - serials_allocated = [] + serials_not_exist = set() + serials_unavailable = set() stock_items_to_allocate = [] for serial in data['serials']: + serial = str(serial).strip() + items = stock.models.StockItem.objects.filter( part=part, serial=serial, quantity=1 ) if not items.exists(): - serials_not_exist.append(str(serial)) + serials_not_exist.add(str(serial)) continue stock_item = items[0] - if stock_item.unallocated_quantity() == 1: - stock_items_to_allocate.append(stock_item) - else: - serials_allocated.append(str(serial)) + if not stock_item.in_stock: + serials_unavailable.add(str(serial)) + continue + + if stock_item.unallocated_quantity() < 1: + serials_unavailable.add(str(serial)) + continue + + # At this point, the serial number is valid, and can be added to the list + stock_items_to_allocate.append(stock_item) if len(serials_not_exist) > 0: error_msg = _('No match found for the following serial numbers') error_msg += ': ' - error_msg += ','.join(serials_not_exist) + error_msg += ','.join(sorted(serials_not_exist)) raise ValidationError({'serial_numbers': error_msg}) - if len(serials_allocated) > 0: - error_msg = _('The following serial numbers are already allocated') + if len(serials_unavailable) > 0: + error_msg = _('The following serial numbers are unavailable') error_msg += ': ' - error_msg += ','.join(serials_allocated) + error_msg += ','.join(sorted(serials_unavailable)) raise ValidationError({'serial_numbers': error_msg}) @@ -1563,12 +1693,18 @@ class SalesOrderSerialAllocationSerializer(serializers.Serializer): stock_items = data['stock_items'] shipment = data['shipment'] - with transaction.atomic(): - for stock_item in stock_items: - # Create a new SalesOrderAllocation - order.models.SalesOrderAllocation.objects.create( + allocations = [] + + for stock_item in stock_items: + # Create a new SalesOrderAllocation + allocations.append( + order.models.SalesOrderAllocation( line=line_item, item=stock_item, quantity=1, shipment=shipment ) + ) + + with transaction.atomic(): + order.models.SalesOrderAllocation.objects.bulk_create(allocations) class SalesOrderShipmentAllocationSerializer(serializers.Serializer): @@ -1666,6 +1802,8 @@ class ReturnOrderSerializer( model = order.models.ReturnOrder fields = AbstractOrderSerializer.order_fields([ + 'issue_date', + 'complete_date', 'customer', 'customer_detail', 'customer_reference', @@ -1684,6 +1822,12 @@ class ReturnOrderSerializer( if customer_detail is not True: self.fields.pop('customer_detail', None) + def skip_create_fields(self): + """Skip these fields when instantiating a new object.""" + fields = super().skip_create_fields() + + return [*fields, 'duplicate'] + @staticmethod def annotate_queryset(queryset): """Custom annotation for the serializer queryset.""" diff --git a/src/backend/InvenTree/order/status_codes.py b/src/backend/InvenTree/order/status_codes.py index 3dcbee01f5..fa0d4594b7 100644 --- a/src/backend/InvenTree/order/status_codes.py +++ b/src/backend/InvenTree/order/status_codes.py @@ -35,6 +35,8 @@ class PurchaseOrderStatusGroups: PurchaseOrderStatus.RETURNED.value, ] + COMPLETE = [PurchaseOrderStatus.COMPLETE.value] + class SalesOrderStatus(StatusCode): """Defines a set of status codes for a SalesOrder.""" @@ -91,6 +93,8 @@ class ReturnOrderStatusGroups: ReturnOrderStatus.IN_PROGRESS.value, ] + COMPLETE = [ReturnOrderStatus.COMPLETE.value] + class ReturnOrderLineStatus(StatusCode): """Defines a set of status codes for a ReturnOrderLineItem.""" diff --git a/src/backend/InvenTree/order/tasks.py b/src/backend/InvenTree/order/tasks.py index 1e1231a810..f2f37327da 100644 --- a/src/backend/InvenTree/order/tasks.py +++ b/src/backend/InvenTree/order/tasks.py @@ -1,7 +1,10 @@ """Background tasks for the 'order' app.""" +import logging from datetime import datetime, timedelta +from django.contrib.auth.models import User +from django.db import transaction from django.utils.translation import gettext_lazy as _ import common.notifications @@ -11,6 +14,8 @@ from InvenTree.tasks import ScheduledTask, scheduled_task from order.status_codes import PurchaseOrderStatusGroups, SalesOrderStatusGroups from plugin.events import trigger_event +logger = logging.getLogger('inventree') + def notify_overdue_purchase_order(po: order.models.PurchaseOrder): """Notify users that a PurchaseOrder has just become 'overdue'.""" @@ -109,3 +114,31 @@ def check_overdue_sales_orders(): for po in overdue_orders: notify_overdue_sales_order(po) + + +def complete_sales_order_shipment(shipment_id: int, user_id: int) -> None: + """Complete allocations for a pending shipment against a SalesOrder. + + At this stage, the shipment is assumed to be complete, + and we need to perform the required "processing" tasks. + """ + try: + shipment = order.models.SalesOrderShipment.objects.get(pk=shipment_id) + except Exception: + # Shipping object does not exist + logger.warning( + 'Failed to complete shipment - no matching SalesOrderShipment for ID <%s>', + shipment_id, + ) + return + + try: + user = User.objects.get(pk=user_id) + except Exception: + user = None + + logger.info('Completing SalesOrderShipment <%s>', shipment) + + with transaction.atomic(): + for allocation in shipment.allocations.all(): + allocation.complete_allocation(user=user) diff --git a/src/backend/InvenTree/order/templates/order/order_base.html b/src/backend/InvenTree/order/templates/order/order_base.html index 77e044120b..9576abb2c1 100644 --- a/src/backend/InvenTree/order/templates/order/order_base.html +++ b/src/backend/InvenTree/order/templates/order/order_base.html @@ -2,6 +2,7 @@ {% load i18n %} {% load static %} +{% load barcode %} {% load inventree_extras %} {% load generic %} @@ -128,7 +129,15 @@ src="{% static 'img/blank_image.png' %}" {% endif %} - + {% if order.destination %} + + + {% trans "Destination" %} + + {{ order.destination.name }} + + + {% endif %} {% endblock details %} @@ -143,7 +152,7 @@ src="{% static 'img/blank_image.png' %}" {% if order.supplier %} {{ order.supplier.name }}{% include "clip.html" %} {% else %} - {% trans "No suppplier information available" %} + {% trans "No supplier information available" %} {% endif %} @@ -333,7 +342,7 @@ $("#export-order").click(function() { $('#show-qr-code').click(function() { showQRDialog( '{% trans "Purchase Order QR Code" escape %}', - '{{ order.barcode }}' + `{% clean_barcode order.barcode %}` ); }); diff --git a/src/backend/InvenTree/order/templates/order/purchase_order_detail.html b/src/backend/InvenTree/order/templates/order/purchase_order_detail.html index 78da5925ac..97e6829d1d 100644 --- a/src/backend/InvenTree/order/templates/order/purchase_order_detail.html +++ b/src/backend/InvenTree/order/templates/order/purchase_order_detail.html @@ -169,6 +169,9 @@ $('#new-po-line').click(function() { {{ order.id }}, items, { + {% if order.destination %} + destination: {{ order.destination.pk }}, + {% endif %} success: function() { $("#po-line-table").bootstrapTable('refresh'); } diff --git a/src/backend/InvenTree/order/templates/order/return_order_base.html b/src/backend/InvenTree/order/templates/order/return_order_base.html index 15755c4199..849a718ab3 100644 --- a/src/backend/InvenTree/order/templates/order/return_order_base.html +++ b/src/backend/InvenTree/order/templates/order/return_order_base.html @@ -2,6 +2,7 @@ {% load i18n %} {% load static %} +{% load barcode %} {% load inventree_extras %} {% load generic %} @@ -271,7 +272,7 @@ $('#print-order-report').click(function() { $('#show-qr-code').click(function() { showQRDialog( '{% trans "Return Order QR Code" escape %}', - '{{ order.barcode }}' + `{% clean_barcode order.barcode %}` ); }); diff --git a/src/backend/InvenTree/order/templates/order/sales_order_base.html b/src/backend/InvenTree/order/templates/order/sales_order_base.html index 987b2e49d2..cda2a5c659 100644 --- a/src/backend/InvenTree/order/templates/order/sales_order_base.html +++ b/src/backend/InvenTree/order/templates/order/sales_order_base.html @@ -2,6 +2,7 @@ {% load i18n %} {% load static %} +{% load barcode %} {% load inventree_extras %} {% load generic %} @@ -337,7 +338,7 @@ $('#print-order-report').click(function() { $('#show-qr-code').click(function() { showQRDialog( '{% trans "Sales Order QR Code" escape %}', - '{{ order.barcode }}' + `{% clean_barcode order.barcode %}` ); }); diff --git a/src/backend/InvenTree/order/test_api.py b/src/backend/InvenTree/order/test_api.py index 4d8a78de8a..e82fd01501 100644 --- a/src/backend/InvenTree/order/test_api.py +++ b/src/backend/InvenTree/order/test_api.py @@ -439,18 +439,22 @@ class PurchaseOrderTest(OrderTest): del data['reference'] # Duplicate with non-existent PK to provoke error - data['duplicate_order'] = 10000001 - data['duplicate_line_items'] = True - data['duplicate_extra_lines'] = False + data['duplicate'] = { + 'order_id': 10000001, + 'copy_lines': True, + 'copy_extra_lines': False, + } data['reference'] = 'PO-9999' # Duplicate via the API response = self.post(reverse('api-po-list'), data, expected_code=400) - data['duplicate_order'] = 1 - data['duplicate_line_items'] = True - data['duplicate_extra_lines'] = False + data['duplicate'] = { + 'order_id': 1, + 'copy_lines': True, + 'copy_extra_lines': False, + } data['reference'] = 'PO-9999' @@ -466,8 +470,12 @@ class PurchaseOrderTest(OrderTest): self.assertEqual(po_dup.lines.count(), po.lines.count()) data['reference'] = 'PO-9998' - data['duplicate_line_items'] = False - data['duplicate_extra_lines'] = True + + data['duplicate'] = { + 'order_id': 1, + 'copy_lines': False, + 'copy_extra_lines': True, + } response = self.post(reverse('api-po-list'), data, expected_code=201) @@ -514,6 +522,11 @@ class PurchaseOrderTest(OrderTest): self.assignRole('purchase_order.add') + # Add a line item + sp = SupplierPart.objects.filter(supplier=po.supplier).first() + + models.PurchaseOrderLineItem.objects.create(part=sp, order=po, quantity=100) + # Should fail due to incomplete lines response = self.post(url, {}, expected_code=400) @@ -869,7 +882,6 @@ class PurchaseOrderReceiveTest(OrderTest): data = self.post(self.url, {}, expected_code=400).data self.assertIn('This field is required', str(data['items'])) - self.assertIn('This field is required', str(data['location'])) # No new stock items have been created self.assertEqual(self.n, StockItem.objects.count()) @@ -1047,9 +1059,9 @@ class PurchaseOrderReceiveTest(OrderTest): self.assertEqual(stock_1.count(), 1) self.assertEqual(stock_2.count(), 1) - # Same location for each received item, as overall 'location' field is provided + # Check received locations self.assertEqual(stock_1.last().location.pk, 1) - self.assertEqual(stock_2.last().location.pk, 1) + self.assertEqual(stock_2.last().location.pk, 2) # Barcodes should have been assigned to the stock items self.assertTrue( @@ -1527,7 +1539,7 @@ class SalesOrderTest(OrderTest): self.download_file( reverse('api-so-list'), {'export': fmt}, - decode=True if fmt == 'csv' else False, + decode=fmt == 'csv', expected_code=200, expected_fn=r'InvenTree_SalesOrder_.+', ) @@ -1670,10 +1682,96 @@ class SalesOrderLineItemTest(OrderTest): self.filter({'has_pricing': 1}, 0) self.filter({'has_pricing': 0}, n) - # Filter by has_pricing status + # Filter by 'completed' status self.filter({'completed': 1}, 0) self.filter({'completed': 0}, n) + # Filter by 'allocated' status + self.filter({'allocated': 'true'}, 0) + self.filter({'allocated': 'false'}, n) + + def test_so_line_allocated_filters(self): + """Test filtering by allocation status for a SalesOrderLineItem.""" + self.assignRole('sales_order.add') + + # Crete a new SalesOrder via the API + response = self.post( + reverse('api-so-list'), + { + 'customer': Company.objects.filter(is_customer=True).first().pk, + 'reference': 'SO-12345', + 'description': 'Test Sales Order', + }, + ) + + order_id = response.data['pk'] + order = models.SalesOrder.objects.get(pk=order_id) + + so_line_url = reverse('api-so-line-list') + + # Initially, there should be no line items against this order + response = self.get(so_line_url, {'order': order_id}) + + self.assertEqual(len(response.data), 0) + + parts = [25, 50, 100] + + # Let's create some new line items + for part_id in parts: + self.post(so_line_url, {'order': order_id, 'part': part_id, 'quantity': 10}) + + # Should be three items now + response = self.get(so_line_url, {'order': order_id}) + + self.assertEqual(len(response.data), 3) + + for item in response.data: + # Check that the line item has been created + self.assertEqual(item['order'], order_id) + + # Check that the line quantities are correct + self.assertEqual(item['quantity'], 10) + self.assertEqual(item['allocated'], 0) + self.assertEqual(item['shipped'], 0) + + # Initial API filters should return no results + self.filter({'order': order_id, 'allocated': 1}, 0) + self.filter({'order': order_id, 'completed': 1}, 0) + + # Create a new shipment against this SalesOrder + shipment = models.SalesOrderShipment.objects.create( + order=order, reference='SHIP-12345' + ) + + # Next, allocate stock against 2 line items + for item in parts[:2]: + p = Part.objects.get(pk=item) + s = StockItem.objects.create(part=p, quantity=100) + l = models.SalesOrderLineItem.objects.filter(order=order, part=p).first() + + # Allocate against the API + self.post( + reverse('api-so-allocate', kwargs={'pk': order.pk}), + { + 'items': [{'line_item': l.pk, 'stock_item': s.pk, 'quantity': 10}], + 'shipment': shipment.pk, + }, + ) + + # Filter by 'fully allocated' status + self.filter({'order': order_id, 'allocated': 1}, 2) + self.filter({'order': order_id, 'allocated': 0}, 1) + + self.filter({'order': order_id, 'completed': 1}, 0) + self.filter({'order': order_id, 'completed': 0}, 3) + + # Finally, mark this shipment as 'shipped' + self.post(reverse('api-so-shipment-ship', kwargs={'pk': shipment.pk}), {}) + + # Filter by 'completed' status + self.filter({'order': order_id, 'completed': 1}, 2) + self.filter({'order': order_id, 'completed': 0}, 1) + class SalesOrderDownloadTest(OrderTest): """Unit tests for downloading SalesOrder data via the API endpoint.""" diff --git a/src/backend/InvenTree/order/tests.py b/src/backend/InvenTree/order/tests.py index c797149ae5..1963b586c9 100644 --- a/src/backend/InvenTree/order/tests.py +++ b/src/backend/InvenTree/order/tests.py @@ -50,7 +50,7 @@ class OrderTest(TestCase): self.assertEqual(order.reference, f'PO-{pk:04d}') line = PurchaseOrderLineItem.objects.get(pk=1) - self.assertEqual(str(line), '100 x ACME0001 from ACME (for PO-0001 - ACME)') + self.assertEqual(str(line), '100 x ACME0001 - PO-0001 - ACME') def test_rebuild_reference(self): """Test that the reference_int field is correctly updated when the model is saved.""" diff --git a/src/backend/InvenTree/order/views.py b/src/backend/InvenTree/order/views.py index 09276d0b46..d3f6b9a4b8 100644 --- a/src/backend/InvenTree/order/views.py +++ b/src/backend/InvenTree/order/views.py @@ -294,7 +294,7 @@ class SalesOrderExport(AjaxView): export_format = request.GET.get('format', 'csv') - filename = f'{str(order)} - {order.customer.name}.{export_format}' + filename = f'{order!s} - {order.customer.name}.{export_format}' dataset = SalesOrderLineItemResource().export(queryset=order.lines.all()) @@ -321,7 +321,7 @@ class PurchaseOrderExport(AjaxView): export_format = request.GET.get('format', 'csv') - filename = f'{str(order)} - {order.supplier.name}.{export_format}' + filename = f'{order!s} - {order.supplier.name}.{export_format}' dataset = PurchaseOrderLineItemResource().export(queryset=order.lines.all()) @@ -353,7 +353,8 @@ class LineItemPricing(PartPricing): try: part_id = self.request.POST.get('pk') part = Part.objects.get(id=part_id) - except Part.DoesNotExist: + except Exception: + # Part not found, or invalid ID return None else: return None diff --git a/src/backend/InvenTree/part/api.py b/src/backend/InvenTree/part/api.py index 1c7fe79d4a..f9e52c3f9e 100644 --- a/src/backend/InvenTree/part/api.py +++ b/src/backend/InvenTree/part/api.py @@ -29,7 +29,7 @@ from InvenTree.filters import ( InvenTreeDateFilter, InvenTreeSearchFilter, ) -from InvenTree.helpers import increment_serial_number, isNull, str2bool +from InvenTree.helpers import isNull, str2bool from InvenTree.mixins import ( CreateAPI, CustomRetrieveUpdateDestroyAPI, @@ -167,10 +167,9 @@ class CategoryFilter(rest_filters.FilterSet): top_level = str2bool(self.data.get('top_level', None)) # If the parent is *not* provided, update the results based on the "cascade" value - if not parent or top_level: - if not value: - # If "cascade" is False, only return top-level categories - queryset = queryset.filter(parent=None) + if (not parent or top_level) and not value: + # If "cascade" is False, only return top-level categories + queryset = queryset.filter(parent=None) return queryset @@ -271,7 +270,7 @@ class CategoryDetail(CategoryMixin, CustomRetrieveUpdateDestroyAPI): if 'starred' in data: starred = str2bool(data.get('starred', False)) - self.get_object().set_starred(request.user, starred) + self.get_object().set_starred(request.user, starred, include_parents=False) response = super().update(request, *args, **kwargs) @@ -416,7 +415,7 @@ class PartTestTemplateFilter(rest_filters.FilterSet): fields = ['enabled', 'key', 'required', 'requires_attachment', 'requires_value'] part = rest_filters.ModelChoiceFilter( - queryset=Part.objects.filter(trackable=True), + queryset=Part.objects.filter(testable=True), label='Part', field_name='part', method='filter_part', @@ -466,8 +465,6 @@ class PartTestTemplateMixin: class PartTestTemplateDetail(PartTestTemplateMixin, RetrieveUpdateDestroyAPI): """Detail endpoint for PartTestTemplate model.""" - pass - class PartTestTemplateList(PartTestTemplateMixin, DataExportViewMixin, ListCreateAPI): """API endpoint for listing (and creating) a PartTestTemplate.""" @@ -562,7 +559,7 @@ class PartScheduling(RetrieveAPI): """ queryset = Part.objects.all() - serializer_class = EmptySerializer + serializer_class = part_serializers.PartSchedulingSerializer def retrieve(self, request, *args, **kwargs): """Return scheduling information for the referenced Part instance.""" @@ -570,23 +567,24 @@ class PartScheduling(RetrieveAPI): schedule = [] - def add_schedule_entry( - date, quantity, title, label, url, speculative_quantity=0 - ): - """Check if a scheduled entry should be added. + def add_schedule_entry(date, quantity, title, instance, speculative_quantity=0): + """Add a new entry to the schedule list. - Rules: - - date must be non-null - - date cannot be in the "past" - - quantity must not be zero + Arguments: + - date: The date of the scheduled event + - quantity: The quantity of stock to be added or removed + - title: The title of the scheduled event + - instance: The associated model instance (e.g. SalesOrder object) + - speculative_quantity: A speculative quantity to be added or removed """ schedule.append({ 'date': date, 'quantity': quantity, 'speculative_quantity': speculative_quantity, 'title': title, - 'label': label, - 'url': url, + 'label': str(instance.reference), + 'model': instance.__class__.__name__.lower(), + 'model_id': instance.pk, }) # Add purchase order (incoming stock) information @@ -603,11 +601,7 @@ class PartScheduling(RetrieveAPI): quantity = line.part.base_quantity(line_quantity) add_schedule_entry( - target_date, - quantity, - _('Incoming Purchase Order'), - str(line.order), - line.order.get_absolute_url(), + target_date, quantity, _('Incoming Purchase Order'), line.order ) # Add sales order (outgoing stock) information @@ -621,11 +615,7 @@ class PartScheduling(RetrieveAPI): quantity = max(line.quantity - line.shipped, 0) add_schedule_entry( - target_date, - -quantity, - _('Outgoing Sales Order'), - str(line.order), - line.order.get_absolute_url(), + target_date, -quantity, _('Outgoing Sales Order'), line.order ) # Add build orders (incoming stock) information @@ -637,11 +627,7 @@ class PartScheduling(RetrieveAPI): quantity = max(build.quantity - build.completed, 0) add_schedule_entry( - build.target_date, - quantity, - _('Stock produced by Build Order'), - str(build), - build.get_absolute_url(), + build.target_date, quantity, _('Stock produced by Build Order'), build ) """ @@ -724,8 +710,7 @@ class PartScheduling(RetrieveAPI): build.target_date, -part_allocated_quantity, _('Stock required for Build Order'), - str(build), - build.get_absolute_url(), + build, speculative_quantity=speculative_quantity, ) @@ -745,9 +730,13 @@ class PartScheduling(RetrieveAPI): return -1 if date_1 < date_2 else 1 # Sort by incrementing date values - schedule = sorted(schedule, key=functools.cmp_to_key(compare)) + schedules = sorted(schedule, key=functools.cmp_to_key(compare)) - return Response(schedule) + serializers = part_serializers.PartSchedulingSerializer( + schedules, many=True, context={'request': request} + ) + + return Response(serializers.data) class PartRequirements(RetrieveAPI): @@ -822,15 +811,10 @@ class PartSerialNumberDetail(RetrieveAPI): part = self.get_object() # Calculate the "latest" serial number - latest = part.get_latest_serial_number() + latest_serial = part.get_latest_serial_number() + next_serial = part.get_next_serial_number() - data = {'latest': latest} - - if latest is not None: - next_serial = increment_serial_number(latest) - - if next_serial != latest: - data['next'] = next_serial + data = {'latest': latest_serial, 'next': next_serial} return Response(data) @@ -1434,7 +1418,9 @@ class PartDetail(PartMixin, RetrieveUpdateDestroyAPI): if 'starred' in data: starred = str2bool(data.get('starred', False)) - self.get_object().set_starred(request.user, starred) + self.get_object().set_starred( + request.user, starred, include_variants=False, include_categories=False + ) response = super().update(request, *args, **kwargs) @@ -1570,8 +1556,6 @@ class PartParameterTemplateList( class PartParameterTemplateDetail(PartParameterTemplateMixin, RetrieveUpdateDestroyAPI): """API endpoint for accessing the detail view for a PartParameterTemplate object.""" - pass - class PartParameterAPIMixin: """Mixin class for PartParameter API endpoints.""" @@ -1663,8 +1647,6 @@ class PartParameterList(PartParameterAPIMixin, DataExportViewMixin, ListCreateAP class PartParameterDetail(PartParameterAPIMixin, RetrieveUpdateDestroyAPI): """API endpoint for detail view of a single PartParameter object.""" - pass - class PartStocktakeFilter(rest_filters.FilterSet): """Custom filter for the PartStocktakeList endpoint.""" @@ -1722,6 +1704,13 @@ class PartStocktakeReportList(ListAPI): ordering = '-pk' +class PartStocktakeReportDetail(RetrieveUpdateDestroyAPI): + """API endpoint for detail view of a single PartStocktakeReport object.""" + + queryset = PartStocktakeReport.objects.all() + serializer_class = part_serializers.PartStocktakeReportSerializer + + class PartStocktakeReportGenerate(CreateAPI): """API endpoint for manually generating a new PartStocktakeReport.""" @@ -1922,8 +1911,6 @@ class BomList(BomMixin, DataExportViewMixin, ListCreateDestroyAPIView): class BomDetail(BomMixin, RetrieveUpdateDestroyAPI): """API endpoint for detail view of a single BomItem object.""" - pass - class BomImportUpload(CreateAPI): """API endpoint for uploading a complete Bill of Materials. @@ -2193,6 +2180,11 @@ part_api_urls = [ PartStocktakeReportGenerate.as_view(), name='api-part-stocktake-report-generate', ), + path( + '/', + PartStocktakeReportDetail.as_view(), + name='api-part-stocktake-report-detail', + ), path( '', PartStocktakeReportList.as_view(), diff --git a/src/backend/InvenTree/part/bom.py b/src/backend/InvenTree/part/bom.py index d692b66ad9..58359e89df 100644 --- a/src/backend/InvenTree/part/bom.py +++ b/src/backend/InvenTree/part/bom.py @@ -4,6 +4,7 @@ Primarily BOM upload tools. """ from collections import OrderedDict +from typing import Optional from django.utils.translation import gettext as _ @@ -40,7 +41,11 @@ def MakeBomTemplate(fmt): def ExportBom( - part: Part, fmt='csv', cascade: bool = False, max_levels: int = None, **kwargs + part: Part, + fmt='csv', + cascade: bool = False, + max_levels: Optional[int] = None, + **kwargs, ): """Export a BOM (Bill of Materials) for a given part. @@ -244,10 +249,7 @@ def ExportBom( manufacturer_name = '' # Extract the "MPN" field from the Manufacturer Part - if mp_part: - manufacturer_mpn = mp_part.MPN - else: - manufacturer_mpn = '' + manufacturer_mpn = mp_part.MPN if mp_part else '' # Generate a column name for this manufacturer k_man = f'{_("Manufacturer")}_{mp_idx}' @@ -270,10 +272,7 @@ def ExportBom( else: supplier_name = '' - if sp_part: - supplier_sku = sp_part.SKU - else: - supplier_sku = '' + supplier_sku = sp_part.SKU if sp_part else '' # Generate column names for this supplier k_sup = ( @@ -307,10 +306,7 @@ def ExportBom( supplier_parts_used.add(sp_part) - if sp_part.supplier: - supplier_name = sp_part.supplier.name - else: - supplier_name = '' + supplier_name = sp_part.supplier.name if sp_part.supplier else '' supplier_sku = sp_part.SKU diff --git a/src/backend/InvenTree/part/fixtures/part.yaml b/src/backend/InvenTree/part/fixtures/part.yaml index 5acba3e4c5..232faeb015 100644 --- a/src/backend/InvenTree/part/fixtures/part.yaml +++ b/src/backend/InvenTree/part/fixtures/part.yaml @@ -10,6 +10,7 @@ creation_date: '2018-01-01' tree_id: 0 purchaseable: True + testable: False level: 0 lft: 0 rght: 0 @@ -78,6 +79,7 @@ salable: true assembly: true trackable: true + testable: true tree_id: 0 level: 0 lft: 0 @@ -136,7 +138,8 @@ name: 'Chair Template' description: 'A chair, which is actually just a template part' is_template: True - trackable: true + trackable: false + testable: true creation_date: '2027-10-10' salable: true category: 7 @@ -151,7 +154,8 @@ name: 'Blue Chair' description: 'A variant chair part which is blue' variant_of: 10000 - trackable: true + trackable: false + testable: true creation_date: '2028-11-11' category: 7 tree_id: 1 @@ -166,7 +170,8 @@ description: 'A variant chair part which is red' variant_of: 10000 IPN: "R.CH" - trackable: true + trackable: false + testable: true salable: true creation_date: '2029-12-12' category: 7 @@ -183,7 +188,8 @@ variant_of: 10000 is_template: true category: 7 - trackable: true + trackable: false + testable: true creation_date: '2030-01-01' tree_id: 1 level: 0 @@ -200,6 +206,7 @@ category: 7 creation_date: '2031-02-02' trackable: true + testable: true tree_id: 1 level: 0 lft: 0 diff --git a/src/backend/InvenTree/part/migrations/0130_alter_parttesttemplate_part.py b/src/backend/InvenTree/part/migrations/0130_alter_parttesttemplate_part.py new file mode 100644 index 0000000000..449baff6fe --- /dev/null +++ b/src/backend/InvenTree/part/migrations/0130_alter_parttesttemplate_part.py @@ -0,0 +1,19 @@ +# Generated by Django 4.2.15 on 2024-08-29 03:24 + +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + dependencies = [ + ('part', '0129_auto_20240815_0214'), + ] + + operations = [ + migrations.AlterField( + model_name='parttesttemplate', + name='part', + field=models.ForeignKey(limit_choices_to={'testable': True}, on_delete=django.db.models.deletion.CASCADE, related_name='test_templates', to='part.part', verbose_name='Part'), + ), + ] diff --git a/src/backend/InvenTree/part/models.py b/src/backend/InvenTree/part/models.py index ccda586f23..20758957ff 100644 --- a/src/backend/InvenTree/part/models.py +++ b/src/backend/InvenTree/part/models.py @@ -55,6 +55,7 @@ from common.icons import validate_icon from common.settings import get_global_setting from company.models import SupplierPart from InvenTree import helpers, validators +from InvenTree.exceptions import log_error from InvenTree.fields import InvenTreeURLField from InvenTree.helpers import decimal2money, decimal2string, normalize, str2bool from order import models as OrderModels @@ -231,10 +232,7 @@ class PartCategory(InvenTree.models.InvenTreeTree): """Get all unique parameter names for all parts from this category.""" unique_parameters_names = [] - if prefetch: - parts = prefetch - else: - parts = self.prefetch_parts_parameters(cascade=cascade) + parts = prefetch or self.prefetch_parts_parameters(cascade=cascade) for part in parts: for parameter in part.parameters.all(): @@ -248,10 +246,7 @@ class PartCategory(InvenTree.models.InvenTreeTree): """Get all parameter names and values for all parts from this category.""" category_parameters = [] - if prefetch: - parts = prefetch - else: - parts = self.prefetch_parts_parameters(cascade=cascade) + parts = prefetch or self.prefetch_parts_parameters(cascade=cascade) for part in parts: part_parameters = { @@ -294,11 +289,10 @@ class PartCategory(InvenTree.models.InvenTreeTree): def get_subscribers(self, include_parents=True): """Return a list of users who subscribe to this PartCategory.""" - cats = self.get_ancestors(include_self=True) - subscribers = set() if include_parents: + cats = self.get_ancestors(include_self=True) queryset = PartCategoryStar.objects.filter(category__in=cats) else: queryset = PartCategoryStar.objects.filter(category=self) @@ -312,12 +306,12 @@ class PartCategory(InvenTree.models.InvenTreeTree): """Returns True if the specified user subscribes to this category.""" return user in self.get_subscribers(**kwargs) - def set_starred(self, user, status: bool) -> None: + def set_starred(self, user, status: bool, **kwargs) -> None: """Set the "subscription" status of this PartCategory against the specified user.""" if not user: return - if self.is_starred_by(user) == status: + if self.is_starred_by(user, **kwargs) == status: return if status: @@ -666,6 +660,8 @@ class Part( except ValidationError as exc: if raise_error: raise ValidationError({'name': exc.message}) + except Exception: + log_error(f'{plugin.slug}.validate_part_name') def validate_ipn(self, raise_error=True): """Ensure that the IPN (internal part number) is valid for this Part". @@ -685,6 +681,8 @@ class Part( except ValidationError as exc: if raise_error: raise ValidationError({'IPN': exc.message}) + except Exception: + log_error(f'{plugin.slug}.validate_part_ipn') # If we get to here, none of the plugins have raised an error pattern = get_global_setting('PART_IPN_REGEX', '', create=False).strip() @@ -799,6 +797,8 @@ class Part( raise exc else: return False + except Exception: + log_error('part.validate_serial_number') """ If we are here, none of the loaded plugins (if any) threw an error or exited early @@ -839,17 +839,43 @@ class Part( # This serial number is perfectly valid return True - def find_conflicting_serial_numbers(self, serials: list): + def find_conflicting_serial_numbers(self, serials: list) -> list: """For a provided list of serials, return a list of those which are conflicting.""" + from part.models import Part + from stock.models import StockItem + conflicts = [] + # First, check for raw conflicts based on efficient database queries + if get_global_setting('SERIAL_NUMBER_GLOBALLY_UNIQUE', False): + # Serial number must be unique across *all* parts + parts = Part.objects.all() + else: + # Serial number must only be unique across this part "tree" + parts = Part.objects.filter(tree_id=self.tree_id) + + items = StockItem.objects.filter(part__in=parts, serial__in=serials) + items = items.order_by('serial_int', 'serial') + + for item in items: + conflicts.append(item.serial) + for serial in serials: - if not self.validate_serial_number(serial, part=self): + if serial in conflicts: + # Already found a conflict, no need to check further + continue + + try: + self.validate_serial_number( + serial, raise_error=True, check_duplicates=False + ) + except ValidationError: + # Serial number is invalid (as determined by plugin) conflicts.append(serial) return conflicts - def get_latest_serial_number(self): + def get_latest_serial_number(self, allow_plugins=True): """Find the 'latest' serial number for this Part. Here we attempt to find the "highest" serial number which exists for this Part. @@ -862,15 +888,26 @@ class Part( Returns: The latest serial number specified for this part, or None """ + from plugin.registry import registry + + if allow_plugins: + # Check with plugin system + # If any plugin returns a non-null result, that takes priority + for plugin in registry.with_mixin('validation'): + try: + result = plugin.get_latest_serial_number(self) + if result is not None: + return str(result) + except Exception: + log_error(f'{plugin.slug}.get_latest_serial_number') + + # No plugin returned a result, so we will run the default query stock = ( StockModels.StockItem.objects.all().exclude(serial=None).exclude(serial='') ) # Generate a query for any stock items for this part variant tree with non-empty serial numbers - if get_global_setting('SERIAL_NUMBER_GLOBALLY_UNIQUE', False): - # Serial numbers are unique across all parts - pass - else: + if not get_global_setting('SERIAL_NUMBER_GLOBALLY_UNIQUE', False): # Serial numbers are unique acros part trees stock = stock.filter(part__tree_id=self.tree_id) @@ -884,6 +921,12 @@ class Part( # Return the first serial value return stock[0].serial + def get_next_serial_number(self): + """Return the 'next' serial number in sequence.""" + sn = self.get_latest_serial_number() + + return InvenTree.helpers.increment_serial_number(sn, self) + @property def full_name(self) -> str: """Format a 'full name' for this Part based on the format PART_NAME_FORMAT defined in InvenTree settings.""" @@ -933,24 +976,26 @@ class Part( 'IPN': _('Duplicate IPN not allowed in part settings') }) - if self.revision_of and self.revision: - if ( + if ( + self.revision_of + and self.revision + and ( Part.objects.exclude(pk=self.pk) .filter(revision_of=self.revision_of, revision=self.revision) .exists() - ): - raise ValidationError(_('Duplicate part revision already exists.')) + ) + ): + raise ValidationError(_('Duplicate part revision already exists.')) # Ensure unique across (Name, revision, IPN) (as specified) - if self.revision or self.IPN: - if ( - Part.objects.exclude(pk=self.pk) - .filter(name=self.name, revision=self.revision, IPN=self.IPN) - .exists() - ): - raise ValidationError( - _('Part with this Name, IPN and Revision already exists.') - ) + if (self.revision or self.IPN) and ( + Part.objects.exclude(pk=self.pk) + .filter(name=self.name, revision=self.revision, IPN=self.IPN) + .exists() + ): + raise ValidationError( + _('Part with this Name, IPN and Revision already exists.') + ) def clean(self): """Perform cleaning operations for the Part model. @@ -1429,13 +1474,13 @@ class Part( """Return True if the specified user subscribes to this part.""" return user in self.get_subscribers(**kwargs) - def set_starred(self, user, status): + def set_starred(self, user, status, **kwargs): """Set the "subscription" status of this Part against the specified user.""" if not user: return # Already subscribed? - if self.is_starred_by(user) == status: + if self.is_starred_by(user, **kwargs) == status: return if status: @@ -1953,7 +1998,7 @@ class Part( return pricing - def schedule_pricing_update(self, create: bool = False, test: bool = False): + def schedule_pricing_update(self, create: bool = False): """Helper function to schedule a pricing update. Importantly, catches any errors which may occur during deletion of related objects, @@ -1963,7 +2008,6 @@ class Part( Arguments: create: Whether or not a new PartPricing object should be created if it does not already exist - test: Whether or not the pricing update is allowed during unit tests """ try: self.refresh_from_db() @@ -1974,7 +2018,7 @@ class Part( pricing = self.pricing if create or pricing.pk: - pricing.schedule_for_update(test=test) + pricing.schedule_for_update() except IntegrityError: # If this part instance has been deleted, # some post-delete or post-save signals may still be fired @@ -2506,7 +2550,7 @@ class Part( @receiver(post_save, sender=Part, dispatch_uid='part_post_save_log') def after_save_part(sender, instance: Part, created, **kwargs): """Function to be executed after a Part is saved.""" - from pickle import PicklingError + from django.conf import settings from part import tasks as part_tasks @@ -2514,17 +2558,19 @@ def after_save_part(sender, instance: Part, created, **kwargs): # Check part stock only if we are *updating* the part (not creating it) # Run this check in the background - try: - InvenTree.tasks.offload_task( - part_tasks.notify_low_stock_if_required, instance - ) - except PicklingError: - # Can sometimes occur if the referenced Part has issues - pass + InvenTree.tasks.offload_task( + part_tasks.notify_low_stock_if_required, + instance.pk, + group='notification', + force_async=not settings.TESTING, # Force async unless in testing mode + ) # Schedule a background task to rebuild any supplier parts InvenTree.tasks.offload_task( - part_tasks.rebuild_supplier_parts, instance.pk, force_async=True + part_tasks.rebuild_supplier_parts, + instance.pk, + force_async=True, + group='part', ) @@ -2554,7 +2600,8 @@ class PartPricing(common.models.MetaMixin): - Detailed pricing information is very context specific in any case """ - price_modified = False + # When calculating assembly pricing, we limit the depth of the calculation + MAX_PRICING_DEPTH = 50 @property def is_valid(self): @@ -2583,14 +2630,10 @@ class PartPricing(common.models.MetaMixin): return result - def schedule_for_update(self, counter: int = 0, test: bool = False): + def schedule_for_update(self, counter: int = 0): """Schedule this pricing to be updated.""" import InvenTree.ready - # If we are running within CI, only schedule the update if the test flag is set - if settings.TESTING and not test: - return - # If importing data, skip pricing update if InvenTree.ready.isImportingData(): return @@ -2634,7 +2677,7 @@ class PartPricing(common.models.MetaMixin): logger.debug('Pricing for %s already scheduled for update - skipping', p) return - if counter > 25: + if counter > self.MAX_PRICING_DEPTH: # Prevent infinite recursion / stack depth issues logger.debug( counter, f'Skipping pricing update for {p} - maximum depth exceeded' @@ -2653,16 +2696,37 @@ class PartPricing(common.models.MetaMixin): import part.tasks as part_tasks + # Pricing calculations are performed in the background, + # unless the TESTING_PRICING flag is set + background = not settings.TESTING or not settings.TESTING_PRICING + # Offload task to update the pricing - # Force async, to prevent running in the foreground + # Force async, to prevent running in the foreground (unless in testing mode) InvenTree.tasks.offload_task( - part_tasks.update_part_pricing, self, counter=counter, force_async=True + part_tasks.update_part_pricing, + self, + counter=counter, + force_async=background, + group='pricing', ) - def update_pricing(self, counter: int = 0, cascade: bool = True): - """Recalculate all cost data for the referenced Part instance.""" - # If importing data, skip pricing update + def update_pricing( + self, + counter: int = 0, + cascade: bool = True, + previous_min=None, + previous_max=None, + ): + """Recalculate all cost data for the referenced Part instance. + Arguments: + counter: Recursion counter (used to prevent infinite recursion) + cascade: If True, update pricing for all assemblies and templates which use this part + previous_min: Previous minimum price (used to prevent further updates if unchanged) + previous_max: Previous maximum price (used to prevent further updates if unchanged) + + """ + # If importing data, skip pricing update if InvenTree.ready.isImportingData(): return @@ -2693,18 +2757,25 @@ class PartPricing(common.models.MetaMixin): # Background worker processes may try to concurrently update pass + pricing_changed = False + + # Without previous pricing data, we assume that the pricing has changed + if previous_min != self.overall_min or previous_max != self.overall_max: + pricing_changed = True + # Update parent assemblies and templates - if cascade and self.price_modified: + if pricing_changed and cascade: self.update_assemblies(counter) self.update_templates(counter) def update_assemblies(self, counter: int = 0): """Schedule updates for any assemblies which use this part.""" # If the linked Part is used in any assemblies, schedule a pricing update for those assemblies + used_in_parts = self.part.get_used_in() for p in used_in_parts: - p.pricing.schedule_for_update(counter + 1) + p.pricing.schedule_for_update(counter=counter + 1) def update_templates(self, counter: int = 0): """Schedule updates for any template parts above this part.""" @@ -2720,13 +2791,13 @@ class PartPricing(common.models.MetaMixin): try: self.update_overall_cost() - except IntegrityError: + except Exception: # If something has happened to the Part model, might throw an error pass try: super().save(*args, **kwargs) - except IntegrityError: + except Exception: # This error may be thrown if there is already duplicate pricing data pass @@ -2794,9 +2865,6 @@ class PartPricing(common.models.MetaMixin): any_max_elements = True - old_bom_cost_min = self.bom_cost_min - old_bom_cost_max = self.bom_cost_max - if any_min_elements: self.bom_cost_min = cumulative_min else: @@ -2807,12 +2875,6 @@ class PartPricing(common.models.MetaMixin): else: self.bom_cost_max = None - if ( - old_bom_cost_min != self.bom_cost_min - or old_bom_cost_max != self.bom_cost_max - ): - self.price_modified = True - if save: self.save() @@ -2876,12 +2938,6 @@ class PartPricing(common.models.MetaMixin): if purchase_max is None or cost > purchase_max: purchase_max = cost - if ( - self.purchase_cost_min != purchase_min - or self.purchase_cost_max != purchase_max - ): - self.price_modified = True - self.purchase_cost_min = purchase_min self.purchase_cost_max = purchase_max @@ -2908,12 +2964,6 @@ class PartPricing(common.models.MetaMixin): if max_int_cost is None or cost > max_int_cost: max_int_cost = cost - if ( - self.internal_cost_min != min_int_cost - or self.internal_cost_max != max_int_cost - ): - self.price_modified = True - self.internal_cost_min = min_int_cost self.internal_cost_max = max_int_cost @@ -2949,12 +2999,6 @@ class PartPricing(common.models.MetaMixin): if max_sup_cost is None or cost > max_sup_cost: max_sup_cost = cost - if ( - self.supplier_price_min != min_sup_cost - or self.supplier_price_max != max_sup_cost - ): - self.price_modified = True - self.supplier_price_min = min_sup_cost self.supplier_price_max = max_sup_cost @@ -2990,9 +3034,6 @@ class PartPricing(common.models.MetaMixin): if variant_max is None or v_max > variant_max: variant_max = v_max - if self.variant_cost_min != variant_min or self.variant_cost_max != variant_max: - self.price_modified = True - self.variant_cost_min = variant_min self.variant_cost_max = variant_max @@ -3113,12 +3154,6 @@ class PartPricing(common.models.MetaMixin): if max_sell_history is None or cost > max_sell_history: max_sell_history = cost - if ( - self.sale_history_min != min_sell_history - or self.sale_history_max != max_sell_history - ): - self.price_modified = True - self.sale_history_min = min_sell_history self.sale_history_max = max_sell_history @@ -3586,9 +3621,9 @@ class PartTestTemplate(InvenTree.models.InvenTreeMetadataModel): def validate_unique(self, exclude=None): """Test that this test template is 'unique' within this part tree.""" - if not self.part.trackable: + if not self.part.testable: raise ValidationError({ - 'part': _('Test templates can only be created for trackable parts') + 'part': _('Test templates can only be created for testable parts') }) # Check that this test is unique within the part tree @@ -3609,7 +3644,7 @@ class PartTestTemplate(InvenTree.models.InvenTreeMetadataModel): Part, on_delete=models.CASCADE, related_name='test_templates', - limit_choices_to={'trackable': True}, + limit_choices_to={'testable': True}, verbose_name=_('Part'), ) @@ -3824,7 +3859,10 @@ def post_save_part_parameter_template(sender, instance, created, **kwargs): if not created: # Schedule a background task to rebuild the parameters against this template InvenTree.tasks.offload_task( - part_tasks.rebuild_parameters, instance.pk, force_async=True + part_tasks.rebuild_parameters, + instance.pk, + force_async=True, + group='part', ) @@ -3888,16 +3926,18 @@ class PartParameter(InvenTree.models.InvenTreeMetadataModel): super().clean() # Validate the parameter data against the template units - if get_global_setting( - 'PART_PARAMETER_ENFORCE_UNITS', True, cache=False, create=False + if ( + get_global_setting( + 'PART_PARAMETER_ENFORCE_UNITS', True, cache=False, create=False + ) + and self.template.units ): - if self.template.units: - try: - InvenTree.conversion.convert_physical_value( - self.data, self.template.units - ) - except ValidationError as e: - raise ValidationError({'data': e.message}) + try: + InvenTree.conversion.convert_physical_value( + self.data, self.template.units + ) + except ValidationError as e: + raise ValidationError({'data': e.message}) # Validate the parameter data against the template choices if choices := self.template.get_choices(): @@ -3918,6 +3958,8 @@ class PartParameter(InvenTree.models.InvenTreeMetadataModel): except ValidationError as exc: # Re-throw the ValidationError against the 'data' field raise ValidationError({'data': exc.message}) + except Exception: + log_error(f'{plugin.slug}.validate_part_parameter') def calculate_numeric_value(self): """Calculate a numeric value for the parameter data. @@ -4205,9 +4247,8 @@ class BomItem( # Check if the part was changed deltas = self.get_field_deltas() - if 'part' in deltas: - if old_part := deltas['part'].get('old', None): - self.check_part_lock(old_part) + if 'part' in deltas and (old_part := deltas['part'].get('old', None)): + self.check_part_lock(old_part) # Update the 'validated' field based on checksum calculation self.validated = self.is_line_valid @@ -4344,7 +4385,7 @@ class BomItem( - allow_variants """ # Seed the hash with the ID of this BOM item - result_hash = hashlib.md5(''.encode()) + result_hash = hashlib.md5(b'') # The following components are used to calculate the checksum components = [ @@ -4438,8 +4479,7 @@ class BomItem( try: ovg = float(overage) - if ovg < 0: - ovg = 0 + ovg = max(ovg, 0) return ovg except ValueError: @@ -4451,10 +4491,8 @@ class BomItem( try: percent = float(overage) / 100.0 - if percent > 1: - percent = 1 - if percent < 0: - percent = 0 + percent = min(percent, 1) + percent = max(percent, 0) # Must be represented as a decimal percent = Decimal(percent) @@ -4516,7 +4554,9 @@ def update_bom_build_lines(sender, instance, created, **kwargs): if InvenTree.ready.canAppAccessDatabase() and not InvenTree.ready.isImportingData(): import build.tasks - InvenTree.tasks.offload_task(build.tasks.update_build_order_lines, instance.pk) + InvenTree.tasks.offload_task( + build.tasks.update_build_order_lines, instance.pk, group='build' + ) @receiver(post_save, sender=BomItem, dispatch_uid='post_save_bom_item') @@ -4531,7 +4571,10 @@ def update_bom_build_lines(sender, instance, created, **kwargs): def update_pricing_after_edit(sender, instance, created, **kwargs): """Callback function when a part price break is created or updated.""" # Update part pricing *unless* we are importing data - if InvenTree.ready.canAppAccessDatabase() and not InvenTree.ready.isImportingData(): + if ( + InvenTree.ready.canAppAccessDatabase(allow_test=settings.TESTING_PRICING) + and not InvenTree.ready.isImportingData() + ): if instance.part: instance.part.schedule_pricing_update(create=True) @@ -4548,7 +4591,10 @@ def update_pricing_after_edit(sender, instance, created, **kwargs): def update_pricing_after_delete(sender, instance, **kwargs): """Callback function when a part price break is deleted.""" # Update part pricing *unless* we are importing data - if InvenTree.ready.canAppAccessDatabase() and not InvenTree.ready.isImportingData(): + if ( + InvenTree.ready.canAppAccessDatabase(allow_test=settings.TESTING_PRICING) + and not InvenTree.ready.isImportingData() + ): if instance.part: instance.part.schedule_pricing_update(create=False) diff --git a/src/backend/InvenTree/part/serializers.py b/src/backend/InvenTree/part/serializers.py index fac5f7cc14..5ac3d2c54e 100644 --- a/src/backend/InvenTree/part/serializers.py +++ b/src/backend/InvenTree/part/serializers.py @@ -244,6 +244,39 @@ class PartInternalPriceSerializer(InvenTree.serializers.InvenTreeModelSerializer ) +class PartSchedulingSerializer(serializers.Serializer): + """Serializer class for a PartScheduling entry.""" + + class Meta: + """Metaclass options for this serializer.""" + + fields = [ + 'date', + 'quantity', + 'speculative_quantity', + 'title', + 'label', + 'model', + 'model_id', + ] + + date = serializers.DateField(label=_('Date'), required=True, allow_null=True) + + quantity = serializers.FloatField(label=_('Quantity'), required=True) + + speculative_quantity = serializers.FloatField( + label=_('Speculative Quantity'), required=False + ) + + title = serializers.CharField(label=_('Title'), required=True) + + label = serializers.CharField(label=_('Label'), required=True) + + model = serializers.CharField(label=_('Model'), required=True) + + model_id = serializers.IntegerField(label=_('Model ID'), required=True) + + class PartThumbSerializer(serializers.Serializer): """Serializer for the 'image' field of the Part model. @@ -354,11 +387,9 @@ class PartBriefSerializer(InvenTree.serializers.InvenTreeModelSerializer): help_text=_('Internal Part Number'), max_length=100, ) + revision = serializers.CharField( - required=False, - allow_null=True, - help_text=_('Part revision or version number'), - max_length=100, + required=False, default='', allow_blank=True, allow_null=True, max_length=100 ) # Pricing fields @@ -909,7 +940,7 @@ class PartSerializer( ) revision = serializers.CharField( - required=False, default='', allow_blank=True, max_length=100 + required=False, default='', allow_blank=True, allow_null=True, max_length=100 ) # Annotated fields @@ -1195,6 +1226,7 @@ class PartStocktakeReportSerializer(InvenTree.serializers.InvenTreeModelSerializ model = PartStocktakeReport fields = ['pk', 'date', 'report', 'part_count', 'user', 'user_detail'] + read_only_fields = ['date', 'report', 'part_count', 'user'] user_detail = InvenTree.serializers.UserSerializer( source='user', read_only=True, many=False @@ -1284,6 +1316,7 @@ class PartStocktakeReportGenerateSerializer(serializers.Serializer): exclude_external=data.get('exclude_external', True), generate_report=data.get('generate_report', True), update_parts=data.get('update_parts', True), + group='report', ) @@ -1566,6 +1599,7 @@ class BomItemSerializer( part_detail = kwargs.pop('part_detail', False) sub_part_detail = kwargs.pop('sub_part_detail', True) pricing = kwargs.pop('pricing', True) + substitutes = kwargs.pop('substitutes', True) super().__init__(*args, **kwargs) @@ -1575,6 +1609,9 @@ class BomItemSerializer( if not sub_part_detail: self.fields.pop('sub_part_detail', None) + if not substitutes: + self.fields.pop('substitutes', None) + if not pricing: self.fields.pop('pricing_min', None) self.fields.pop('pricing_max', None) @@ -1671,6 +1708,10 @@ class BomItemSerializer( 'sub_part__stock_items__sales_order_allocations', ) + queryset = queryset.select_related( + 'part__pricing_data', 'sub_part__pricing_data' + ) + queryset = queryset.prefetch_related( 'substitutes', 'substitutes__part__stock_items' ) @@ -2000,9 +2041,8 @@ class BomImportExtractSerializer(InvenTree.serializers.DataFileExtractSerializer if part is None: row['errors']['part'] = _('No matching part found') - else: - if not part.component: - row['errors']['part'] = _('Part is not designated as a component') + elif not part.component: + row['errors']['part'] = _('Part is not designated as a component') # Update the 'part' value in the row row['part'] = part.pk if part is not None else None diff --git a/src/backend/InvenTree/part/stocktake.py b/src/backend/InvenTree/part/stocktake.py index b26c9a62cb..23c7bb00a7 100644 --- a/src/backend/InvenTree/part/stocktake.py +++ b/src/backend/InvenTree/part/stocktake.py @@ -45,7 +45,7 @@ def perform_stocktake( In this case, the stocktake *report* will be limited to the specified location. """ # Determine which locations are "valid" for the generated report - location = kwargs.get('location', None) + location = kwargs.get('location') locations = location.get_descendants(include_self=True) if location else [] # Grab all "available" stock items for the Part @@ -169,24 +169,24 @@ def generate_stocktake_report(**kwargs): ) parts = part.models.Part.objects.all() - user = kwargs.get('user', None) + user = kwargs.get('user') generate_report = kwargs.get('generate_report', True) update_parts = kwargs.get('update_parts', True) # Filter by 'Part' instance - if p := kwargs.get('part', None): + if p := kwargs.get('part'): variants = p.get_descendants(include_self=True) parts = parts.filter(pk__in=[v.pk for v in variants]) # Filter by 'Category' instance (cascading) - if category := kwargs.get('category', None): + if category := kwargs.get('category'): categories = category.get_descendants(include_self=True) parts = parts.filter(category__in=categories) # Filter by 'Location' instance (cascading) # Stocktake report will be limited to parts which have stock items within this location - if location := kwargs.get('location', None): + if location := kwargs.get('location'): # Extract flat list of all sublocations locations = list(location.get_descendants(include_self=True)) diff --git a/src/backend/InvenTree/part/tasks.py b/src/backend/InvenTree/part/tasks.py index ec30fdfdb0..a7e569960e 100644 --- a/src/backend/InvenTree/part/tasks.py +++ b/src/backend/InvenTree/part/tasks.py @@ -14,7 +14,7 @@ import company.models import InvenTree.helpers import InvenTree.helpers_model import InvenTree.tasks -import part.models +import part.models as part_models import part.stocktake from common.settings import get_global_setting from InvenTree.tasks import ( @@ -27,7 +27,7 @@ from InvenTree.tasks import ( logger = logging.getLogger('inventree') -def notify_low_stock(part: part.models.Part): +def notify_low_stock(part: part_models.Part): """Notify interested users that a part is 'low stock'. Rules: @@ -51,20 +51,28 @@ def notify_low_stock(part: part.models.Part): ) -def notify_low_stock_if_required(part: part.models.Part): +def notify_low_stock_if_required(part_id: int): """Check if the stock quantity has fallen below the minimum threshold of part. If true, notify the users who have subscribed to the part """ + try: + part = part_models.Part.objects.get(pk=part_id) + except part_models.Part.DoesNotExist: + logger.warning( + 'notify_low_stock_if_required: Part with ID %s does not exist', part_id + ) + return + # Run "up" the tree, to allow notification for "parent" parts parts = part.get_ancestors(include_self=True, ascending=True) for p in parts: if p.is_part_low_on_stock(): - InvenTree.tasks.offload_task(notify_low_stock, p) + InvenTree.tasks.offload_task(notify_low_stock, p, group='notification') -def update_part_pricing(pricing: part.models.PartPricing, counter: int = 0): +def update_part_pricing(pricing: part_models.PartPricing, counter: int = 0): """Update cached pricing data for the specified PartPricing instance. Arguments: @@ -73,7 +81,11 @@ def update_part_pricing(pricing: part.models.PartPricing, counter: int = 0): """ logger.info('Updating part pricing for %s', pricing.part) - pricing.update_pricing(counter=counter) + pricing.update_pricing( + counter=counter, + previous_min=pricing.overall_min, + previous_max=pricing.overall_max, + ) @scheduled_task(ScheduledTask.DAILY) @@ -89,7 +101,7 @@ def check_missing_pricing(limit=250): limit: Maximum number of parts to process at once """ # Find parts for which pricing information has never been updated - results = part.models.PartPricing.objects.filter(updated=None)[:limit] + results = part_models.PartPricing.objects.filter(updated=None)[:limit] if results.count() > 0: logger.info('Found %s parts with empty pricing', results.count()) @@ -101,7 +113,7 @@ def check_missing_pricing(limit=250): days = int(get_global_setting('PRICING_UPDATE_DAYS', 30)) stale_date = datetime.now().date() - timedelta(days=days) - results = part.models.PartPricing.objects.filter(updated__lte=stale_date)[:limit] + results = part_models.PartPricing.objects.filter(updated__lte=stale_date)[:limit] if results.count() > 0: logger.info('Found %s stale pricing entries', results.count()) @@ -111,7 +123,7 @@ def check_missing_pricing(limit=250): # Find any pricing data which is in the wrong currency currency = common.currency.currency_code_default() - results = part.models.PartPricing.objects.exclude(currency=currency) + results = part_models.PartPricing.objects.exclude(currency=currency) if results.count() > 0: logger.info('Found %s pricing entries in the wrong currency', results.count()) @@ -120,7 +132,7 @@ def check_missing_pricing(limit=250): pp.schedule_for_update() # Find any parts which do not have pricing information - results = part.models.Part.objects.filter(pricing_data=None)[:limit] + results = part_models.Part.objects.filter(pricing_data=None)[:limit] if results.count() > 0: logger.info('Found %s parts without pricing', results.count()) @@ -148,7 +160,7 @@ def scheduled_stocktake_reports(): get_global_setting('STOCKTAKE_DELETE_REPORT_DAYS', 30, cache=False) ) threshold = datetime.now() - timedelta(days=delete_n_days) - old_reports = part.models.PartStocktakeReport.objects.filter(date__lt=threshold) + old_reports = part_models.PartStocktakeReport.objects.filter(date__lt=threshold) if old_reports.count() > 0: logger.info('Deleting %s stale stocktake reports', old_reports.count()) @@ -183,11 +195,11 @@ def rebuild_parameters(template_id): which may cause the base unit to be adjusted. """ try: - template = part.models.PartParameterTemplate.objects.get(pk=template_id) - except part.models.PartParameterTemplate.DoesNotExist: + template = part_models.PartParameterTemplate.objects.get(pk=template_id) + except part_models.PartParameterTemplate.DoesNotExist: return - parameters = part.models.PartParameter.objects.filter(template=template) + parameters = part_models.PartParameter.objects.filter(template=template) n = 0 @@ -212,8 +224,8 @@ def rebuild_supplier_parts(part_id): which may cause the native units of any supplier parts to be updated """ try: - prt = part.models.Part.objects.get(pk=part_id) - except part.models.Part.DoesNotExist: + prt = part_models.Part.objects.get(pk=part_id) + except part_models.Part.DoesNotExist: return supplier_parts = company.models.SupplierPart.objects.filter(part=prt) diff --git a/src/backend/InvenTree/part/templates/part/part_base.html b/src/backend/InvenTree/part/templates/part/part_base.html index 0123fa6586..010683cc79 100644 --- a/src/backend/InvenTree/part/templates/part/part_base.html +++ b/src/backend/InvenTree/part/templates/part/part_base.html @@ -2,6 +2,7 @@ {% load static %} {% load i18n %} +{% load barcode %} {% load inventree_extras %} {% block sidebar %} @@ -458,7 +459,7 @@ $("#show-qr-code").click(function() { showQRDialog( '{% trans "Part QR Code" escape %}', - '{{ part.barcode }}', + `{% clean_barcode part.barcode %}` ); }); diff --git a/src/backend/InvenTree/part/test_api.py b/src/backend/InvenTree/part/test_api.py index 038dc9baf6..5c74ba7674 100644 --- a/src/backend/InvenTree/part/test_api.py +++ b/src/backend/InvenTree/part/test_api.py @@ -1618,7 +1618,7 @@ class PartDetailTests(PartAPITestBase): # Try to upload a non-image file test_path = BASE_DIR / '_testfolder' / 'dummy_image' - with open(f'{test_path}.txt', 'w') as dummy_image: + with open(f'{test_path}.txt', 'w', encoding='utf-8') as dummy_image: dummy_image.write('hello world') with open(f'{test_path}.txt', 'rb') as dummy_image: @@ -2996,7 +2996,7 @@ class PartTestTemplateTest(PartAPITestBase): expected_code=400, ) - # Try to post a new test against a non-trackable part (should fail) + # Try to post a new test against a non-testable part (should fail) response = self.post( url, data={'part': 1, 'test_name': 'A simple test'}, expected_code=400 ) diff --git a/src/backend/InvenTree/part/test_bom_export.py b/src/backend/InvenTree/part/test_bom_export.py index fc2e2ca3cf..69d9bdee24 100644 --- a/src/backend/InvenTree/part/test_bom_export.py +++ b/src/backend/InvenTree/part/test_bom_export.py @@ -49,7 +49,7 @@ class BomExportTest(InvenTreeTestCase): with open(filename, 'wb') as f: f.write(response.getvalue()) - with open(filename, 'r') as f: + with open(filename, encoding='utf-8') as f: reader = csv.reader(f, delimiter=',') for line in reader: @@ -96,7 +96,7 @@ class BomExportTest(InvenTreeTestCase): f.write(response.getvalue()) # Read the file - with open(filename, 'r') as f: + with open(filename, encoding='utf-8') as f: reader = csv.reader(f, delimiter=',') for line in reader: diff --git a/src/backend/InvenTree/part/test_bom_import.py b/src/backend/InvenTree/part/test_bom_import.py index ec317198ff..5b214aa81c 100644 --- a/src/backend/InvenTree/part/test_bom_import.py +++ b/src/backend/InvenTree/part/test_bom_import.py @@ -82,7 +82,7 @@ class BomUploadTest(InvenTreeAPITestCase): """POST with an unsupported file type.""" response = self.post_bom('sample.txt', b'hello world', expected_code=400) - self.assertIn('Unsupported file type', str(response.data['data_file'])) + self.assertIn('Unsupported file format', str(response.data['data_file'])) def test_broken_file(self): """Test upload with broken (corrupted) files.""" diff --git a/src/backend/InvenTree/part/test_param.py b/src/backend/InvenTree/part/test_param.py index 54a8d7edfe..aa5e0f8344 100644 --- a/src/backend/InvenTree/part/test_param.py +++ b/src/backend/InvenTree/part/test_param.py @@ -419,7 +419,7 @@ class PartParameterTest(InvenTreeAPITestCase): response = self.get( url, - {'ordering': 'parameter_{pk}'.format(pk=template.pk), 'parameters': 'true'}, + {'ordering': f'parameter_{template.pk}', 'parameters': 'true'}, expected_code=200, ) @@ -436,10 +436,7 @@ class PartParameterTest(InvenTreeAPITestCase): # Next, check reverse ordering response = self.get( url, - { - 'ordering': '-parameter_{pk}'.format(pk=template.pk), - 'parameters': 'true', - }, + {'ordering': f'-parameter_{template.pk}', 'parameters': 'true'}, expected_code=200, ) diff --git a/src/backend/InvenTree/part/test_pricing.py b/src/backend/InvenTree/part/test_pricing.py index 212d086c5a..c7dca0f169 100644 --- a/src/backend/InvenTree/part/test_pricing.py +++ b/src/backend/InvenTree/part/test_pricing.py @@ -1,6 +1,7 @@ """Unit tests for Part pricing calculations.""" from django.core.exceptions import ObjectDoesNotExist +from django.test.utils import override_settings from djmoney.contrib.exchange.models import convert_money from djmoney.money import Money @@ -88,6 +89,7 @@ class PartPricingTests(InvenTreeTestCase): part=self.sp_2, quantity=10, price=4.55, price_currency='GBP' ) + @override_settings(TESTING_PRICING=True) def test_pricing_data(self): """Test link between Part and PartPricing model.""" # Initially there is no associated Pricing data @@ -111,8 +113,8 @@ class PartPricingTests(InvenTreeTestCase): def test_invalid_rate(self): """Ensure that conversion behaves properly with missing rates.""" - ... + @override_settings(TESTING_PRICING=True) def test_simple(self): """Tests for hard-coded values.""" pricing = self.part.pricing @@ -144,6 +146,7 @@ class PartPricingTests(InvenTreeTestCase): self.assertEqual(pricing.overall_min, Money('0.111111', 'USD')) self.assertEqual(pricing.overall_max, Money('25', 'USD')) + @override_settings(TESTING_PRICING=True) def test_supplier_part_pricing(self): """Test for supplier part pricing.""" pricing = self.part.pricing @@ -157,19 +160,22 @@ class PartPricingTests(InvenTreeTestCase): # Creating price breaks will cause the pricing to be updated self.create_price_breaks() - pricing.update_pricing() + pricing = self.part.pricing + pricing.refresh_from_db() self.assertAlmostEqual(float(pricing.overall_min.amount), 2.015, places=2) self.assertAlmostEqual(float(pricing.overall_max.amount), 3.06, places=2) # Delete all supplier parts and re-calculate self.part.supplier_parts.all().delete() - pricing.update_pricing() + + pricing = self.part.pricing pricing.refresh_from_db() self.assertIsNone(pricing.supplier_price_min) self.assertIsNone(pricing.supplier_price_max) + @override_settings(TESTING_PRICING=True) def test_internal_pricing(self): """Tests for internal price breaks.""" # Ensure internal pricing is enabled @@ -189,7 +195,8 @@ class PartPricingTests(InvenTreeTestCase): part=self.part, quantity=ii + 1, price=10 - ii, price_currency=currency ) - pricing.update_internal_cost() + pricing = self.part.pricing + pricing.refresh_from_db() # Expected money value m_expected = Money(10 - ii, currency) @@ -202,6 +209,7 @@ class PartPricingTests(InvenTreeTestCase): self.assertEqual(pricing.internal_cost_max, Money(10, currency)) self.assertEqual(pricing.overall_max, Money(10, currency)) + @override_settings(TESTING_PRICING=True) def test_stock_item_pricing(self): """Test for stock item pricing data.""" # Create a part @@ -244,6 +252,7 @@ class PartPricingTests(InvenTreeTestCase): self.assertEqual(pricing.overall_min, Money(1.176471, 'USD')) self.assertEqual(pricing.overall_max, Money(6.666667, 'USD')) + @override_settings(TESTING_PRICING=True) def test_bom_pricing(self): """Unit test for BOM pricing calculations.""" pricing = self.part.pricing @@ -253,7 +262,8 @@ class PartPricingTests(InvenTreeTestCase): currency = 'AUD' - for ii in range(10): + # Create pricing out of order, to ensure min/max values are calculated correctly + for ii in range(5): # Create a new part for the BOM sub_part = part.models.Part.objects.create( name=f'Sub Part {ii}', @@ -274,15 +284,21 @@ class PartPricingTests(InvenTreeTestCase): part=self.part, sub_part=sub_part, quantity=5 ) - pricing.update_bom_cost() - # Check that the values have been updated correctly self.assertEqual(pricing.currency, 'USD') - # Final overall pricing checks - self.assertEqual(pricing.overall_min, Money('366.666665', 'USD')) - self.assertEqual(pricing.overall_max, Money('550', 'USD')) + # Price range should have been automatically updated + self.part.refresh_from_db() + pricing = self.part.pricing + expected_min = 100 + expected_max = 150 + + # Final overall pricing checks + self.assertEqual(pricing.overall_min, Money(expected_min, 'USD')) + self.assertEqual(pricing.overall_max, Money(expected_max, 'USD')) + + @override_settings(TESTING_PRICING=True) def test_purchase_pricing(self): """Unit tests for historical purchase pricing.""" self.create_price_breaks() @@ -350,6 +366,7 @@ class PartPricingTests(InvenTreeTestCase): # Max cost in USD self.assertAlmostEqual(float(pricing.purchase_cost_max.amount), 6.95, places=2) + @override_settings(TESTING_PRICING=True) def test_delete_with_pricing(self): """Test for deleting a part which has pricing information.""" # Create some pricing data @@ -374,6 +391,7 @@ class PartPricingTests(InvenTreeTestCase): with self.assertRaises(part.models.PartPricing.DoesNotExist): pricing.refresh_from_db() + @override_settings(TESTING_PRICING=True) def test_delete_without_pricing(self): """Test that we can delete a part which does not have pricing information.""" pricing = self.part.pricing @@ -389,6 +407,7 @@ class PartPricingTests(InvenTreeTestCase): with self.assertRaises(part.models.Part.DoesNotExist): self.part.refresh_from_db() + @override_settings(TESTING_PRICING=True) def test_check_missing_pricing(self): """Tests for check_missing_pricing background task. @@ -412,6 +431,7 @@ class PartPricingTests(InvenTreeTestCase): # Check that PartPricing objects have been created self.assertEqual(part.models.PartPricing.objects.count(), 101) + @override_settings(TESTING_PRICING=True) def test_delete_part_with_stock_items(self): """Test deleting a part instance with stock items. @@ -432,7 +452,7 @@ class PartPricingTests(InvenTreeTestCase): ) # Manually schedule a pricing update (does not happen automatically in testing) - p.schedule_pricing_update(create=True, test=True) + p.schedule_pricing_update(create=True) # Check that a PartPricing object exists self.assertTrue(part.models.PartPricing.objects.filter(part=p).exists()) @@ -444,5 +464,84 @@ class PartPricingTests(InvenTreeTestCase): self.assertFalse(part.models.PartPricing.objects.filter(part=p).exists()) # Try to update pricing (should fail gracefully as the Part has been deleted) - p.schedule_pricing_update(create=False, test=True) + p.schedule_pricing_update(create=False) self.assertFalse(part.models.PartPricing.objects.filter(part=p).exists()) + + @override_settings(TESTING_PRICING=True) + def test_multi_level_bom(self): + """Test that pricing for multi-level BOMs is calculated correctly.""" + # Create some parts + A1 = part.models.Part.objects.create( + name='A1', description='A1', assembly=True, component=True + ) + B1 = part.models.Part.objects.create( + name='B1', description='B1', assembly=True, component=True + ) + C1 = part.models.Part.objects.create( + name='C1', description='C1', assembly=True, component=True + ) + D1 = part.models.Part.objects.create( + name='D1', description='D1', assembly=True, component=True + ) + D2 = part.models.Part.objects.create( + name='D2', description='D2', assembly=True, component=True + ) + D3 = part.models.Part.objects.create( + name='D3', description='D3', assembly=True, component=True + ) + + # BOM Items + part.models.BomItem.objects.create(part=A1, sub_part=B1, quantity=10) + part.models.BomItem.objects.create(part=B1, sub_part=C1, quantity=2) + part.models.BomItem.objects.create(part=C1, sub_part=D1, quantity=3) + part.models.BomItem.objects.create(part=C1, sub_part=D2, quantity=4) + part.models.BomItem.objects.create(part=C1, sub_part=D3, quantity=5) + + # Pricing data (only for low-level D parts) + P1 = D1.pricing + P1.override_min = 4.50 + P1.override_max = 5.50 + P1.save() + P1.update_pricing() + + P2 = D2.pricing + P2.override_min = 6.50 + P2.override_max = 7.50 + P2.save() + P2.update_pricing() + + P3 = D3.pricing + P3.override_min = 8.50 + P3.override_max = 9.50 + P3.save() + P3.update_pricing() + + # Simple checks for low-level BOM items + self.assertEqual(D1.pricing.overall_min, Money(4.50, 'USD')) + self.assertEqual(D1.pricing.overall_max, Money(5.50, 'USD')) + + self.assertEqual(D2.pricing.overall_min, Money(6.50, 'USD')) + self.assertEqual(D2.pricing.overall_max, Money(7.50, 'USD')) + + self.assertEqual(D3.pricing.overall_min, Money(8.50, 'USD')) + self.assertEqual(D3.pricing.overall_max, Money(9.50, 'USD')) + + # Calculate pricing for "C" level part + c_min = 3 * 4.50 + 4 * 6.50 + 5 * 8.50 + c_max = 3 * 5.50 + 4 * 7.50 + 5 * 9.50 + + self.assertEqual(C1.pricing.overall_min, Money(c_min, 'USD')) + self.assertEqual(C1.pricing.overall_max, Money(c_max, 'USD')) + + # Calculate pricing for "A" and "B" level parts + b_min = 2 * c_min + b_max = 2 * c_max + + a_min = 10 * b_min + a_max = 10 * b_max + + self.assertEqual(B1.pricing.overall_min, Money(b_min, 'USD')) + self.assertEqual(B1.pricing.overall_max, Money(b_max, 'USD')) + + self.assertEqual(A1.pricing.overall_min, Money(a_min, 'USD')) + self.assertEqual(A1.pricing.overall_max, Money(a_max, 'USD')) diff --git a/src/backend/InvenTree/part/views.py b/src/backend/InvenTree/part/views.py index 7acb92886b..1ad7c2f31d 100644 --- a/src/backend/InvenTree/part/views.py +++ b/src/backend/InvenTree/part/views.py @@ -180,9 +180,9 @@ class PartImport(FileManagementFormView): 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] - }) + exact_match = self.allowed_items[idx].get( + **dict.fromkeys(self.matches[idx], data) + ) except ( ValueError, self.allowed_items[idx].model.DoesNotExist, @@ -414,7 +414,7 @@ class PartDetailFromIPN(PartDetail): if not self.object: return HttpResponseRedirect(reverse('part-index')) - return super(PartDetailFromIPN, self).get(request, *args, **kwargs) + return super().get(request, *args, **kwargs) class PartImageSelect(AjaxUpdateView): @@ -720,7 +720,7 @@ class CategoryDetail(InvenTreeRoleMixin, InvenTreePluginViewMixin, DetailView): context['part_count'] = 0 # Get current category - category = kwargs.get('object', None) + category = kwargs.get('object') if category: # Insert "starred" information diff --git a/src/backend/InvenTree/plugin/__init__.py b/src/backend/InvenTree/plugin/__init__.py index 63a634fe20..01dff2124f 100644 --- a/src/backend/InvenTree/plugin/__init__.py +++ b/src/backend/InvenTree/plugin/__init__.py @@ -5,8 +5,8 @@ from .plugin import InvenTreePlugin from .registry import registry __all__ = [ - 'registry', 'InvenTreePlugin', - 'MixinNotImplementedError', 'MixinImplementationError', + 'MixinNotImplementedError', + 'registry', ] diff --git a/src/backend/InvenTree/plugin/api.py b/src/backend/InvenTree/plugin/api.py index 061c35bb55..c20fd9d0ee 100644 --- a/src/backend/InvenTree/plugin/api.py +++ b/src/backend/InvenTree/plugin/api.py @@ -21,15 +21,17 @@ from InvenTree.filters import SEARCH_ORDER_FILTER from InvenTree.mixins import ( CreateAPI, ListAPI, + RetrieveAPI, + RetrieveDestroyAPI, RetrieveUpdateAPI, - RetrieveUpdateDestroyAPI, UpdateAPI, ) -from InvenTree.permissions import IsSuperuser +from InvenTree.permissions import IsSuperuser, IsSuperuserOrReadOnly from plugin import registry from plugin.base.action.api import ActionPluginView from plugin.base.barcodes.api import barcode_api_urls from plugin.base.locate.api import LocatePluginView +from plugin.base.ui.api import ui_plugins_api_urls from plugin.models import PluginConfig, PluginSetting from plugin.plugin import InvenTreePlugin @@ -63,7 +65,7 @@ class PluginFilter(rest_filters.FilterSet): match = True for mixin in mixins: - if mixin not in result.mixins().keys(): + if mixin not in result.mixins(): match = False break @@ -142,7 +144,7 @@ class PluginList(ListAPI): search_fields = ['key', 'name'] -class PluginDetail(RetrieveUpdateDestroyAPI): +class PluginDetail(RetrieveDestroyAPI): """API detail endpoint for PluginConfig object. get: @@ -157,6 +159,7 @@ class PluginDetail(RetrieveUpdateDestroyAPI): queryset = PluginConfig.objects.all() serializer_class = PluginSerializers.PluginConfigSerializer + permission_classes = [IsSuperuserOrReadOnly] lookup_field = 'key' lookup_url_kwarg = 'plugin' @@ -175,6 +178,18 @@ class PluginDetail(RetrieveUpdateDestroyAPI): return super().delete(request, *args, **kwargs) +class PluginAdminDetail(RetrieveAPI): + """Endpoint for viewing admin integration plugin details. + + This endpoint is used to view the available admin integration options for a plugin. + """ + + queryset = PluginConfig.objects.all() + serializer_class = PluginSerializers.PluginAdminDetailSerializer + lookup_field = 'key' + lookup_url_kwarg = 'plugin' + + class PluginInstall(CreateAPI): """Endpoint for installing a new plugin.""" @@ -428,6 +443,8 @@ plugin_api_urls = [ path( 'plugins/', include([ + # UI plugins + path('ui/', include(ui_plugins_api_urls)), # Plugin management path('reload/', PluginReload.as_view(), name='api-plugin-reload'), path('install/', PluginInstall.as_view(), name='api-plugin-install'), @@ -480,6 +497,9 @@ plugin_api_urls = [ PluginUninstall.as_view(), name='api-plugin-uninstall', ), + path( + 'admin/', PluginAdminDetail.as_view(), name='api-plugin-admin' + ), path('', PluginDetail.as_view(), name='api-plugin-detail'), ]), ), diff --git a/src/backend/InvenTree/plugin/base/barcodes/api.py b/src/backend/InvenTree/plugin/base/barcodes/api.py index 01b2f6ae9b..13d0baaf83 100644 --- a/src/backend/InvenTree/plugin/base/barcodes/api.py +++ b/src/backend/InvenTree/plugin/base/barcodes/api.py @@ -3,19 +3,27 @@ import logging from django.db.models import F -from django.urls import path +from django.urls import include, path from django.utils.translation import gettext_lazy as _ +from django_filters import rest_framework as rest_filters from drf_spectacular.utils import extend_schema, extend_schema_view from rest_framework import permissions, status from rest_framework.exceptions import PermissionDenied, ValidationError from rest_framework.generics import CreateAPIView from rest_framework.response import Response +import common.models import order.models import plugin.base.barcodes.helper import stock.models +from common.settings import get_global_setting +from InvenTree.api import BulkDeleteMixin +from InvenTree.exceptions import log_error +from InvenTree.filters import SEARCH_ORDER_FILTER from InvenTree.helpers import hash_barcode +from InvenTree.mixins import ListAPI, RetrieveDestroyAPI +from InvenTree.permissions import IsStaffOrReadOnly from plugin import registry from users.models import RuleSet @@ -30,6 +38,70 @@ class BarcodeView(CreateAPIView): # Default serializer class (can be overridden) serializer_class = barcode_serializers.BarcodeSerializer + def log_scan(self, request, response=None, result=False): + """Log a barcode scan to the database. + + Arguments: + request: HTTP request object + response: Optional response data + """ + from common.models import BarcodeScanResult + + # Extract context data from the request + context = {**request.GET.dict(), **request.POST.dict(), **request.data} + + barcode = context.pop('barcode', '') + + # Exit if storing barcode scans is disabled + if not get_global_setting('BARCODE_STORE_RESULTS', backup=False, create=False): + return + + # Ensure that the response data is stringified first, otherwise cannot be JSON encoded + if type(response) is dict: + response = {key: str(value) for key, value in response.items()} + elif response is None: + pass + else: + response = str(response) + + # Ensure that the context data is stringified first, otherwise cannot be JSON encoded + if type(context) is dict: + context = {key: str(value) for key, value in context.items()} + elif context is None: + pass + else: + context = str(context) + + # Ensure data is not too long + if len(barcode) > BarcodeScanResult.BARCODE_SCAN_MAX_LEN: + barcode = barcode[: BarcodeScanResult.BARCODE_SCAN_MAX_LEN] + + try: + BarcodeScanResult.objects.create( + data=barcode, + user=request.user, + endpoint=request.path, + response=response, + result=result, + context=context, + ) + + # Ensure that we do not store too many scans + max_scans = int(get_global_setting('BARCODE_RESULTS_MAX_NUM', create=False)) + num_scans = BarcodeScanResult.objects.count() + + if num_scans > max_scans: + n = num_scans - max_scans + old_scan_ids = ( + BarcodeScanResult.objects.all() + .order_by('timestamp') + .values_list('pk', flat=True)[:n] + ) + BarcodeScanResult.objects.filter(pk__in=old_scan_ids).delete() + except Exception: + # Gracefully log error to database + log_error(f'{self.__class__.__name__}.log_scan') + def queryset(self): """This API view does not have a queryset.""" return None @@ -40,7 +112,13 @@ class BarcodeView(CreateAPIView): def create(self, request, *args, **kwargs): """Handle create method - override default create.""" serializer = self.get_serializer(data=request.data) - serializer.is_valid(raise_exception=True) + + try: + serializer.is_valid(raise_exception=True) + except Exception as exc: + self.log_scan(request, response={'error': str(exc)}, result=False) + raise exc + data = serializer.validated_data barcode = str(data.pop('barcode')).strip() @@ -119,15 +197,19 @@ class BarcodeScan(BarcodeView): kwargs: Any custom fields passed by the specific serializer """ - result = self.scan_barcode(barcode, request, **kwargs) + response = self.scan_barcode(barcode, request, **kwargs) - if result['plugin'] is None: - result['error'] = _('No match found for barcode data') + if response['plugin'] is None: + response['error'] = _('No match found for barcode data') + self.log_scan(request, response, False) + raise ValidationError(response) - raise ValidationError(result) + response['success'] = _('Match found for barcode data') - result['success'] = _('Match found for barcode data') - return Response(result) + # Log the scan result + self.log_scan(request, response, True) + + return Response(response) @extend_schema_view( @@ -208,7 +290,7 @@ class BarcodeAssign(BarcodeView): label = model.barcode_model_type() valid_labels.append(label) - if instance := kwargs.get(label, None): + if instance := kwargs.get(label): # Check that the user has the required permission app_label = model._meta.app_label model_name = model._meta.model_name @@ -333,11 +415,10 @@ class BarcodePOAllocate(BarcodeView): supplier_parts = company.models.SupplierPart.objects.filter(supplier=supplier) if not part and not supplier_part and not manufacturer_part: - raise ValidationError({'error': _('No matching part data found')}) + raise ValidationError(_('No matching part data found')) - if part: - if part_id := part.get('pk', None): - supplier_parts = supplier_parts.filter(part__pk=part_id) + if part and (part_id := part.get('pk', None)): + supplier_parts = supplier_parts.filter(part__pk=part_id) if supplier_part: if supplier_part_id := supplier_part.get('pk', None): @@ -350,12 +431,10 @@ class BarcodePOAllocate(BarcodeView): ) if supplier_parts.count() == 0: - raise ValidationError({'error': _('No matching supplier parts found')}) + raise ValidationError(_('No matching supplier parts found')) if supplier_parts.count() > 1: - raise ValidationError({ - 'error': _('Multiple matching supplier parts found') - }) + raise ValidationError(_('Multiple matching supplier parts found')) # At this stage, we have a single matching supplier part return supplier_parts.first() @@ -365,25 +444,32 @@ class BarcodePOAllocate(BarcodeView): # The purchase order is provided as part of the request purchase_order = kwargs.get('purchase_order') - result = self.scan_barcode(barcode, request, **kwargs) + response = self.scan_barcode(barcode, request, **kwargs) - if result['plugin'] is None: - result['error'] = _('No match found for barcode data') - raise ValidationError(result) + if response['plugin'] is None: + response['error'] = _('No matching plugin found for barcode data') - supplier_part = self.get_supplier_part( - purchase_order, - part=result.get('part', None), - supplier_part=result.get('supplierpart', None), - manufacturer_part=result.get('manufacturerpart', None), - ) - - result['success'] = _('Matched supplier part') - result['supplierpart'] = supplier_part.format_matched_response() + else: + try: + supplier_part = self.get_supplier_part( + purchase_order, + part=response.get('part', None), + supplier_part=response.get('supplierpart', None), + manufacturer_part=response.get('manufacturerpart', None), + ) + response['success'] = _('Matched supplier part') + response['supplierpart'] = supplier_part.format_matched_response() + except ValidationError as e: + response['error'] = str(e) # TODO: Determine the 'quantity to order' for the supplier part - return Response(result) + self.log_scan(request, response, 'success' in response) + + if 'error' in response: + raise ValidationError + + return Response(response) class BarcodePOReceive(BarcodeView): @@ -411,8 +497,17 @@ class BarcodePOReceive(BarcodeView): logger.debug("BarcodePOReceive: scanned barcode - '%s'", barcode) # Extract optional fields from the dataset - purchase_order = kwargs.get('purchase_order', None) - location = kwargs.get('location', None) + purchase_order = kwargs.get('purchase_order') + location = kwargs.get('location') + + # Extract location from PurchaseOrder, if available + if not location and purchase_order: + try: + po = order.models.PurchaseOrder.objects.get(pk=purchase_order) + if po.destination: + location = po.destination.pk + except Exception: + pass plugins = registry.with_mixin('barcode') @@ -428,6 +523,7 @@ class BarcodePOReceive(BarcodeView): if result := internal_barcode_plugin.scan(barcode): if 'stockitem' in result: response['error'] = _('Item has already been received') + self.log_scan(request, response, False) raise ValidationError(response) # Now, look just for "supplier-barcode" plugins @@ -465,11 +561,13 @@ class BarcodePOReceive(BarcodeView): # A plugin has not been found! if plugin is None: response['error'] = _('No match for supplier barcode') + + self.log_scan(request, response, 'success' in response) + + if 'error' in response: raise ValidationError(response) - elif 'error' in response: - raise ValidationError(response) - else: - return Response(response) + + return Response(response) class BarcodeSOAllocate(BarcodeView): @@ -490,12 +588,16 @@ class BarcodeSOAllocate(BarcodeView): serializer_class = barcode_serializers.BarcodeSOAllocateSerializer def get_line_item(self, stock_item, **kwargs): - """Return the matching line item for the provided stock item.""" + """Return the matching line item for the provided stock item. + + Raises: + ValidationError: If no single matching line item is found + """ # Extract sales order object (required field) sales_order = kwargs['sales_order'] # Next, check if a line-item is provided (optional field) - if line_item := kwargs.get('line', None): + if line_item := kwargs.get('line'): return line_item # If not provided, we need to find the correct line item @@ -507,22 +609,24 @@ class BarcodeSOAllocate(BarcodeView): ) if lines.count() > 1: - raise ValidationError({'error': _('Multiple matching line items found')}) + raise ValidationError(_('Multiple matching line items found')) if lines.count() == 0: - raise ValidationError({'error': _('No matching line item found')}) + raise ValidationError(_('No matching line item found')) return lines.first() def get_shipment(self, **kwargs): - """Extract the shipment from the provided kwargs, or guess.""" + """Extract the shipment from the provided kwargs, or guess. + + Raises: + ValidationError: If the shipment does not match the sales order + """ sales_order = kwargs['sales_order'] - if shipment := kwargs.get('shipment', None): + if shipment := kwargs.get('shipment'): if shipment.order != sales_order: - raise ValidationError({ - 'error': _('Shipment does not match sales order') - }) + raise ValidationError(_('Shipment does not match sales order')) return shipment @@ -537,49 +641,68 @@ class BarcodeSOAllocate(BarcodeView): return None def handle_barcode(self, barcode: str, request, **kwargs): - """Handle barcode scan for sales order allocation.""" + """Handle barcode scan for sales order allocation. + + Arguments: + barcode: Raw barcode data + request: HTTP request object + + kwargs: + sales_order: SalesOrder ID value (required) + line: SalesOrderLineItem ID value (optional) + shipment: SalesOrderShipment ID value (optional) + """ logger.debug("BarcodeSOAllocate: scanned barcode - '%s'", barcode) - result = self.scan_barcode(barcode, request, **kwargs) + response = self.scan_barcode(barcode, request, **kwargs) - if result['plugin'] is None: - result['error'] = _('No match found for barcode data') - raise ValidationError(result) + if 'sales_order' not in kwargs: + # SalesOrder ID *must* be provided + response['error'] = _('No sales order provided') + elif response['plugin'] is None: + # Check that the barcode at least matches a plugin + response['error'] = _('No matching plugin found for barcode data') + else: + try: + stock_item_id = response['stockitem'].get('pk', None) + stock_item = stock.models.StockItem.objects.get(pk=stock_item_id) + except Exception: + response['error'] = _('Barcode does not match an existing stock item') - # Check that the scanned barcode was a StockItem - if 'stockitem' not in result: - result['error'] = _('Barcode does not match an existing stock item') - raise ValidationError(result) - - try: - stock_item_id = result['stockitem'].get('pk', None) - stock_item = stock.models.StockItem.objects.get(pk=stock_item_id) - except (ValueError, stock.models.StockItem.DoesNotExist): - result['error'] = _('Barcode does not match an existing stock item') - raise ValidationError(result) + if 'error' in response: + self.log_scan(request, response, False) + raise ValidationError(response) # At this stage, we have a valid StockItem object - # Extract any other data from the kwargs - line_item = self.get_line_item(stock_item, **kwargs) - sales_order = kwargs['sales_order'] - shipment = self.get_shipment(**kwargs) - if stock_item is not None and line_item is not None: - if stock_item.part != line_item.part: - result['error'] = _('Stock item does not match line item') - raise ValidationError(result) + try: + # Extract any other data from the kwargs + # Note: This may raise a ValidationError at some point - we break on the first error + sales_order = kwargs['sales_order'] + line_item = self.get_line_item(stock_item, **kwargs) + shipment = self.get_shipment(**kwargs) + if stock_item is not None and line_item is not None: + if stock_item.part != line_item.part: + response['error'] = _('Stock item does not match line item') + except ValidationError as e: + response['error'] = str(e) - quantity = kwargs.get('quantity', None) + if 'error' in response: + self.log_scan(request, response, False) + raise ValidationError(response) + + quantity = kwargs.get('quantity') # Override quantity for serialized items if stock_item.serialized: quantity = 1 - if quantity is None: + elif quantity is None: quantity = line_item.quantity - line_item.shipped quantity = min(quantity, stock_item.unallocated_quantity()) response = { + **response, 'stock_item': stock_item.pk if stock_item else None, 'part': stock_item.part.pk if stock_item else None, 'sales_order': sales_order.pk if sales_order else None, @@ -591,25 +714,91 @@ class BarcodeSOAllocate(BarcodeView): if stock_item is not None and quantity is not None: if stock_item.unallocated_quantity() < quantity: response['error'] = _('Insufficient stock available') - raise ValidationError(response) - # If we have sufficient information, we can allocate the stock item - if all((x is not None for x in [line_item, sales_order, shipment, quantity])): - order.models.SalesOrderAllocation.objects.create( - line=line_item, shipment=shipment, item=stock_item, quantity=quantity - ) + # If we have sufficient information, we can allocate the stock item + elif all( + x is not None for x in [line_item, sales_order, shipment, quantity] + ): + order.models.SalesOrderAllocation.objects.create( + line=line_item, + shipment=shipment, + item=stock_item, + quantity=quantity, + ) - response['success'] = _('Stock item allocated to sales order') + response['success'] = _('Stock item allocated to sales order') + else: + response['error'] = _('Not enough information') + response['action_required'] = True + + self.log_scan(request, response, 'success' in response) + + if 'error' in response: + raise ValidationError(response) + else: return Response(response) - response['error'] = _('Not enough information') - response['action_required'] = True - raise ValidationError(response) +class BarcodeScanResultMixin: + """Mixin class for BarcodeScan API endpoints.""" + + queryset = common.models.BarcodeScanResult.objects.all() + serializer_class = barcode_serializers.BarcodeScanResultSerializer + permission_classes = [permissions.IsAuthenticated, IsStaffOrReadOnly] + + def get_queryset(self): + """Return the queryset for the BarcodeScan API.""" + queryset = super().get_queryset() + + # Pre-fetch user data + queryset = queryset.prefetch_related('user') + + return queryset + + +class BarcodeScanResultFilter(rest_filters.FilterSet): + """Custom filterset for the BarcodeScanResult API.""" + + class Meta: + """Meta class for the BarcodeScanResultFilter.""" + + model = common.models.BarcodeScanResult + fields = ['user', 'result'] + + +class BarcodeScanResultList(BarcodeScanResultMixin, BulkDeleteMixin, ListAPI): + """List API endpoint for BarcodeScan objects.""" + + filterset_class = BarcodeScanResultFilter + filter_backends = SEARCH_ORDER_FILTER + + ordering_fields = ['user', 'plugin', 'timestamp', 'endpoint', 'result'] + + ordering = '-timestamp' + + search_fields = ['plugin'] + + +class BarcodeScanResultDetail(BarcodeScanResultMixin, RetrieveDestroyAPI): + """Detail endpoint for a BarcodeScan object.""" barcode_api_urls = [ + # Barcode scan history + path( + 'history/', + include([ + path( + '/', + BarcodeScanResultDetail.as_view(), + name='api-barcode-scan-result-detail', + ), + path( + '', BarcodeScanResultList.as_view(), name='api-barcode-scan-result-list' + ), + ]), + ), # Generate a barcode for a database object path('generate/', BarcodeGenerate.as_view(), name='api-barcode-generate'), # Link a third-party barcode to an item (e.g. Part / StockItem / etc) diff --git a/src/backend/InvenTree/plugin/base/barcodes/mixins.py b/src/backend/InvenTree/plugin/base/barcodes/mixins.py index 28fb1c49a8..1d53a027e6 100644 --- a/src/backend/InvenTree/plugin/base/barcodes/mixins.py +++ b/src/backend/InvenTree/plugin/base/barcodes/mixins.py @@ -384,7 +384,9 @@ class SupplierBarcodeMixin(BarcodeMixin): return orders_intersection if orders_intersection else orders_union @staticmethod - def get_supplier_parts(sku: str = None, supplier: Company = None, mpn: str = None): + def get_supplier_parts( + sku: str | None = None, supplier: Company = None, mpn: str | None = None + ): """Get a supplier part from SKU or by supplier and MPN.""" if not (sku or supplier or mpn): return SupplierPart.objects.none() @@ -420,10 +422,10 @@ class SupplierBarcodeMixin(BarcodeMixin): def receive_purchase_order_item( supplier_part: SupplierPart, user: User, - quantity: Decimal | str = None, + quantity: Decimal | str | None = None, purchase_order: PurchaseOrder = None, location: StockLocation = None, - barcode: str = None, + barcode: str | None = None, ) -> dict: """Try to receive a purchase order item. @@ -471,9 +473,9 @@ class SupplierBarcodeMixin(BarcodeMixin): # 2. check if it's defined on the part # 3. check if there's 1 or 0 stock locations defined in InvenTree # -> assume all stock is going into that location (or no location) - if location := line_item.destination: - pass - elif location := supplier_part.part.get_default_location(): + if (location := line_item.destination) or ( + location := supplier_part.part.get_default_location() + ): pass elif StockLocation.objects.count() <= 1: if not (location := StockLocation.objects.first()): diff --git a/src/backend/InvenTree/plugin/base/barcodes/serializers.py b/src/backend/InvenTree/plugin/base/barcodes/serializers.py index b31ab1818a..a94d7b5bc0 100644 --- a/src/backend/InvenTree/plugin/base/barcodes/serializers.py +++ b/src/backend/InvenTree/plugin/base/barcodes/serializers.py @@ -5,12 +5,39 @@ from django.utils.translation import gettext_lazy as _ from rest_framework import serializers +import common.models import order.models import plugin.base.barcodes.helper import stock.models +from InvenTree.serializers import UserSerializer from order.status_codes import PurchaseOrderStatus, SalesOrderStatus +class BarcodeScanResultSerializer(serializers.ModelSerializer): + """Serializer for barcode scan results.""" + + class Meta: + """Meta class for BarcodeScanResultSerializer.""" + + model = common.models.BarcodeScanResult + + fields = [ + 'pk', + 'data', + 'timestamp', + 'endpoint', + 'context', + 'response', + 'result', + 'user', + 'user_detail', + ] + + read_only_fields = fields + + user_detail = UserSerializer(source='user', read_only=True) + + class BarcodeSerializer(serializers.Serializer): """Generic serializer for receiving barcode data.""" @@ -41,7 +68,7 @@ class BarcodeGenerateSerializer(serializers.Serializer): plugin.base.barcodes.helper.get_supported_barcode_models_map() ) - if model not in supported_models.keys(): + if model not in supported_models: raise ValidationError(_('Model is not supported')) return model diff --git a/src/backend/InvenTree/plugin/base/barcodes/test_barcode.py b/src/backend/InvenTree/plugin/base/barcodes/test_barcode.py index 9512a31fa5..5048af66c0 100644 --- a/src/backend/InvenTree/plugin/base/barcodes/test_barcode.py +++ b/src/backend/InvenTree/plugin/base/barcodes/test_barcode.py @@ -4,6 +4,8 @@ from django.urls import reverse import company.models import order.models +from common.models import BarcodeScanResult +from common.settings import set_global_setting from InvenTree.unit_test import InvenTreeAPITestCase from part.models import Part from stock.models import StockItem @@ -89,6 +91,11 @@ class BarcodeAPITest(InvenTreeAPITestCase): """Test that we can lookup a stock item based on ID.""" item = StockItem.objects.first() + # Save barcode scan results to database + set_global_setting('BARCODE_STORE_RESULTS', True) + + n = BarcodeScanResult.objects.count() + response = self.post( self.scan_url, {'barcode': item.format_barcode()}, expected_code=200 ) @@ -97,6 +104,20 @@ class BarcodeAPITest(InvenTreeAPITestCase): self.assertIn('barcode_data', response.data) self.assertEqual(response.data['stockitem']['pk'], item.pk) + self.assertEqual(BarcodeScanResult.objects.count(), n + 1) + + result = BarcodeScanResult.objects.last() + + self.assertTrue(result.result) + self.assertEqual(result.data, item.format_barcode()) + + response = result.response + + self.assertEqual(response['plugin'], 'InvenTreeBarcode') + + for k in ['barcode_data', 'stockitem', 'success']: + self.assertIn(k, response) + def test_invalid_item(self): """Test response for invalid stock item.""" response = self.post( @@ -309,7 +330,7 @@ class SOAllocateTest(InvenTreeAPITestCase): '123456789', sales_order=self.sales_order.pk, expected_code=400 ) - self.assertIn('No match found for barcode', str(result['error'])) + self.assertIn('No matching plugin found for barcode data', str(result['error'])) # Test with a barcode that matches a *different* stock item item = StockItem.objects.exclude(pk=self.stock_item.pk).first() diff --git a/src/backend/InvenTree/plugin/base/event/events.py b/src/backend/InvenTree/plugin/base/event/events.py index 6aa341f3e3..992a0a50e2 100644 --- a/src/backend/InvenTree/plugin/base/event/events.py +++ b/src/backend/InvenTree/plugin/base/event/events.py @@ -40,7 +40,7 @@ def trigger_event(event, *args, **kwargs): if 'force_async' not in kwargs and not settings.PLUGIN_TESTING_EVENTS: kwargs['force_async'] = True - offload_task(register_event, event, *args, **kwargs) + offload_task(register_event, event, *args, group='plugin', **kwargs) def register_event(event, *args, **kwargs): @@ -77,7 +77,9 @@ def register_event(event, *args, **kwargs): kwargs['force_async'] = True # Offload a separate task for each plugin - offload_task(process_event, slug, event, *args, **kwargs) + offload_task( + process_event, slug, event, *args, group='plugin', **kwargs + ) def process_event(plugin_slug, event, *args, **kwargs): @@ -147,10 +149,7 @@ def allow_table_event(table_name): 'part_partstocktakereport', ] - if table_name in ignore_tables: - return False - - return True + return not table_name in ignore_tables @receiver(post_save) diff --git a/src/backend/InvenTree/plugin/base/integration/APICallMixin.py b/src/backend/InvenTree/plugin/base/integration/APICallMixin.py index 77131f2491..bb9ac1538f 100644 --- a/src/backend/InvenTree/plugin/base/integration/APICallMixin.py +++ b/src/backend/InvenTree/plugin/base/integration/APICallMixin.py @@ -3,6 +3,7 @@ import json as json_pkg import logging from collections.abc import Iterable +from typing import Optional import requests @@ -117,10 +118,10 @@ class APICallMixin: self, endpoint: str, method: str = 'GET', - url_args: dict = None, + url_args: Optional[dict] = None, data=None, json=None, - headers: dict = None, + headers: Optional[dict] = None, simple_response: bool = True, endpoint_is_url: bool = False, ): diff --git a/src/backend/InvenTree/plugin/base/integration/ReportMixin.py b/src/backend/InvenTree/plugin/base/integration/ReportMixin.py index 1c81df722f..738b74d3c5 100644 --- a/src/backend/InvenTree/plugin/base/integration/ReportMixin.py +++ b/src/backend/InvenTree/plugin/base/integration/ReportMixin.py @@ -33,7 +33,6 @@ class ReportMixin: request: The request object which initiated the report generation context: The context dictionary to add to """ - pass def add_label_context(self, label_instance, model_instance, request, context): """Add extra context to the provided label instance. @@ -46,7 +45,6 @@ class ReportMixin: request: The request object which initiated the label generation context: The context dictionary to add to """ - pass def report_callback(self, template, instance, report, request): """Callback function called after a report is generated. @@ -59,4 +57,3 @@ class ReportMixin: The default implementation does nothing. """ - pass diff --git a/src/backend/InvenTree/plugin/base/integration/ScheduleMixin.py b/src/backend/InvenTree/plugin/base/integration/ScheduleMixin.py index 8b350a7ed1..c61e907e9c 100644 --- a/src/backend/InvenTree/plugin/base/integration/ScheduleMixin.py +++ b/src/backend/InvenTree/plugin/base/integration/ScheduleMixin.py @@ -148,7 +148,7 @@ class ScheduleMixin: def get_task_names(self): """All defined task names.""" # Returns a list of all task names associated with this plugin instance - return [self.get_task_name(key) for key in self.scheduled_tasks.keys()] + return [self.get_task_name(key) for key in self.scheduled_tasks] def register_tasks(self): """Register the tasks with the database.""" @@ -200,7 +200,7 @@ class ScheduleMixin: try: from django_q.models import Schedule - for key, _ in self.scheduled_tasks.items(): + for key in self.scheduled_tasks: task_name = self.get_task_name(key) try: diff --git a/src/backend/InvenTree/plugin/base/integration/SettingsMixin.py b/src/backend/InvenTree/plugin/base/integration/SettingsMixin.py index 92f77182fc..7d5b04a41f 100644 --- a/src/backend/InvenTree/plugin/base/integration/SettingsMixin.py +++ b/src/backend/InvenTree/plugin/base/integration/SettingsMixin.py @@ -15,8 +15,6 @@ else: class SettingsKeyType: """Dummy class, so that python throws no error.""" - pass - class SettingsMixin: """Mixin that enables global settings for the plugin.""" @@ -107,3 +105,32 @@ class SettingsMixin: return PluginSetting.check_all_settings( settings_definition=self.settings, plugin=self.plugin_config() ) + + def get_settings_dict(self) -> dict: + """Return a dictionary of all settings for this plugin. + + - For each setting, return : pair. + - If the setting is not defined, return the default value (if defined). + + Returns: + dict: Dictionary of all settings for this plugin + """ + from plugin.models import PluginSetting + + keys = self.settings.keys() + + settings = PluginSetting.objects.filter( + plugin=self.plugin_config(), key__in=keys + ) + + settings_dict = {} + + for setting in settings: + settings_dict[setting.key] = setting.value + + # Add any missing settings + for key in keys: + if key not in settings_dict: + settings_dict[key] = self.settings[key].get('default') + + return settings_dict diff --git a/src/backend/InvenTree/plugin/base/integration/ValidationMixin.py b/src/backend/InvenTree/plugin/base/integration/ValidationMixin.py index 3f60b44753..6aee6c19ce 100644 --- a/src/backend/InvenTree/plugin/base/integration/ValidationMixin.py +++ b/src/backend/InvenTree/plugin/base/integration/ValidationMixin.py @@ -1,5 +1,7 @@ """Validation mixin class definition.""" +from typing import Optional + from django.core.exceptions import ValidationError from django.db.models import Model @@ -67,7 +69,9 @@ class ValidationMixin: """ return None - def validate_model_instance(self, instance: Model, deltas: dict = None) -> None: + def validate_model_instance( + self, instance: Model, deltas: Optional[dict] = None + ) -> None: """Run custom validation on a database model instance. This method is called when a model instance is being validated. @@ -187,7 +191,25 @@ class ValidationMixin: """ return None - def increment_serial_number(self, serial: str) -> str: + def get_latest_serial_number(self, part, **kwargs): + """Return the 'latest' serial number for a given Part instance. + + A plugin which implements this method can either return: + - A string which represents the "latest" serial number + - None (null value) if the latest value could not be determined + + Arguments: + part: The Part instance for which the latest serial number is being requested + + Returns: + The latest serial number (string), or None + """ + # Default implementation returns None + return None + + def increment_serial_number( + self, serial: str, part: part.models.Part = None, **kwargs + ) -> str: """Return the next sequential serial based on the provided value. A plugin which implements this method can either return: @@ -197,6 +219,7 @@ class ValidationMixin: Arguments: serial: Current serial value (string) + part: The Part instance for which this serial number is being incremented Returns: The next serial number in the sequence (string), or None @@ -218,4 +241,3 @@ class ValidationMixin: Raises: ValidationError: If the proposed parameter value is objectionable """ - pass diff --git a/src/backend/InvenTree/plugin/base/integration/test_mixins.py b/src/backend/InvenTree/plugin/base/integration/test_mixins.py index 43bd7b9d1f..c5cf6aa195 100644 --- a/src/backend/InvenTree/plugin/base/integration/test_mixins.py +++ b/src/backend/InvenTree/plugin/base/integration/test_mixins.py @@ -341,7 +341,10 @@ class APICallMixinTest(BaseMixinDefinition, TestCase): class PanelMixinTests(InvenTreeTestCase): - """Test that the PanelMixin plugin operates correctly.""" + """Test that the PanelMixin plugin operates correctly. + + TODO: This class will be removed in the future, as the PanelMixin is deprecated. + """ fixtures = ['category', 'part', 'location', 'stock'] diff --git a/src/backend/InvenTree/plugin/base/label/label.py b/src/backend/InvenTree/plugin/base/label/label.py index aadd4be209..425cf0da9d 100644 --- a/src/backend/InvenTree/plugin/base/label/label.py +++ b/src/backend/InvenTree/plugin/base/label/label.py @@ -38,7 +38,7 @@ def print_label(plugin_slug: str, **kwargs): # Plugin threw an error - notify the user who attempted to print ctx = {'name': _('Label printing failed'), 'message': str(e)} - user = kwargs.get('user', None) + user = kwargs.get('user') if user: # Log an error message to the database diff --git a/src/backend/InvenTree/plugin/base/label/mixins.py b/src/backend/InvenTree/plugin/base/label/mixins.py index 16660dc6c3..e6ef8ab5e7 100644 --- a/src/backend/InvenTree/plugin/base/label/mixins.py +++ b/src/backend/InvenTree/plugin/base/label/mixins.py @@ -83,7 +83,7 @@ class LabelPrintingMixin: [`pdf2image.convert_from_bytes`](https://pdf2image.readthedocs.io/en/latest/reference.html#pdf2image.pdf2image.convert_from_bytes) method (optional) """ # Check if pdf data is provided - pdf_data = kwargs.get('pdf_data', None) + pdf_data = kwargs.get('pdf_data') if not pdf_data: pdf_data = ( @@ -185,7 +185,12 @@ class LabelPrintingMixin: # Exclude the 'context' object - cannot be pickled print_args.pop('context', None) - offload_task(plugin_label.print_label, self.plugin_slug(), **print_args) + offload_task( + plugin_label.print_label, + self.plugin_slug(), + group='plugin', + **print_args, + ) # Update the progress of the print job output.progress += int(100 / N) @@ -251,8 +256,6 @@ class LabelPrintingMixin: def before_printing(self): """Hook method called before printing labels.""" - pass def after_printing(self): """Hook method called after printing labels.""" - pass diff --git a/src/backend/InvenTree/plugin/base/locate/api.py b/src/backend/InvenTree/plugin/base/locate/api.py index 948d67bb61..86962d543d 100644 --- a/src/backend/InvenTree/plugin/base/locate/api.py +++ b/src/backend/InvenTree/plugin/base/locate/api.py @@ -59,7 +59,11 @@ class LocatePluginView(GenericAPIView): StockItem.objects.get(pk=item_pk) offload_task( - registry.call_plugin_function, plugin, 'locate_stock_item', item_pk + registry.call_plugin_function, + plugin, + 'locate_stock_item', + item_pk, + group='plugin', ) data['item'] = item_pk @@ -78,6 +82,7 @@ class LocatePluginView(GenericAPIView): plugin, 'locate_stock_location', location_pk, + group='plugin', ) data['location'] = location_pk diff --git a/src/backend/InvenTree/plugin/base/ui/__init__.py b/src/backend/InvenTree/plugin/base/ui/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/backend/InvenTree/plugin/base/ui/api.py b/src/backend/InvenTree/plugin/base/ui/api.py new file mode 100644 index 0000000000..63916e0d89 --- /dev/null +++ b/src/backend/InvenTree/plugin/base/ui/api.py @@ -0,0 +1,78 @@ +"""API for UI plugins.""" + +from django.urls import path + +from drf_spectacular.utils import extend_schema +from rest_framework.permissions import IsAuthenticated +from rest_framework.response import Response +from rest_framework.views import APIView + +import plugin.base.ui.serializers as UIPluginSerializers +from common.settings import get_global_setting +from InvenTree.exceptions import log_error +from plugin import registry + + +class PluginUIFeatureList(APIView): + """API endpoint for listing all available plugin ui features.""" + + permission_classes = [IsAuthenticated] + serializer_class = UIPluginSerializers.PluginUIFeatureSerializer + + @extend_schema( + responses={200: UIPluginSerializers.PluginUIFeatureSerializer(many=True)} + ) + def get(self, request, feature): + """Show available plugin ui features.""" + features = [] + + if get_global_setting('ENABLE_PLUGINS_INTERFACE'): + # Extract all plugins from the registry which provide custom ui features + for _plugin in registry.with_mixin('ui', active=True): + # Allow plugins to fill this data out + + try: + plugin_features = _plugin.get_ui_features( + feature, request.query_params, request + ) + except Exception: + # Custom features could not load for this plugin + # Log the error and continue + log_error(f'{_plugin.slug}.get_ui_features') + continue + + if plugin_features and type(plugin_features) is list: + for _feature in plugin_features: + try: + # Ensure that the required fields are present + _feature['plugin_name'] = _plugin.slug + _feature['feature_type'] = str(feature) + + # Ensure base fields are strings + for field in ['key', 'title', 'description', 'source']: + if field in _feature: + _feature[field] = str(_feature[field]) + + # Add the feature to the list (serialize) + features.append( + UIPluginSerializers.PluginUIFeatureSerializer( + _feature, many=False + ).data + ) + + except Exception: + # Custom features could not load + # Log the error and continue + log_error(f'{_plugin.slug}.get_ui_features') + continue + + return Response(features) + + +ui_plugins_api_urls = [ + path( + 'features//', + PluginUIFeatureList.as_view(), + name='api-plugin-ui-feature-list', + ) +] diff --git a/src/backend/InvenTree/plugin/base/ui/mixins.py b/src/backend/InvenTree/plugin/base/ui/mixins.py new file mode 100644 index 0000000000..2713a03875 --- /dev/null +++ b/src/backend/InvenTree/plugin/base/ui/mixins.py @@ -0,0 +1,165 @@ +"""UserInterfaceMixin class definition. + +Allows integration of custom UI elements into the React user interface. +""" + +import logging +from typing import Literal, TypedDict + +from rest_framework.request import Request + +logger = logging.getLogger('inventree') + + +# List of supported feature types +FeatureType = Literal[ + 'dashboard', # Custom dashboard items + 'panel', # Custom panels + 'template_editor', # Custom template editor + 'template_preview', # Custom template preview +] + + +class UIFeature(TypedDict): + """Base type definition for a ui feature. + + Attributes: + key: The key of the feature (required, must be a unique identifier) + title: The title of the feature (required, human readable) + description: The long-form description of the feature (optional, human readable) + icon: The icon of the feature (optional, must be a valid icon identifier) + feature_type: The feature type (required, see documentation for all available types) + options: Feature options (required, see documentation for all available options for each type) + context: Additional context data to be passed to the rendering function (optional, dict) + source: The source of the feature (required, path to a JavaScript file, with optional function name). + """ + + key: str + title: str + description: str + icon: str + feature_type: FeatureType + options: dict + context: dict + source: str + + +class CustomPanelOptions(TypedDict): + """Options type definition for a custom panel. + + Attributes: + icon: The icon of the panel (optional, must be a valid icon identifier). + """ + + +class CustomDashboardItemOptions(TypedDict): + """Options type definition for a custom dashboard item. + + Attributes: + width: The minimum width of the dashboard item (integer, defaults to 2) + height: The minimum height of the dashboard item (integer, defaults to 2) + """ + + width: int + height: int + + +class UserInterfaceMixin: + """Plugin mixin class which handles injection of custom elements into the front-end interface. + + - All content is accessed via the API, as requested by the user interface. + - This means that content can be dynamically generated, based on the current state of the system. + """ + + class MixinMeta: + """Metaclass for this plugin mixin.""" + + MIXIN_NAME = 'ui' + + def __init__(self): + """Register mixin.""" + super().__init__() + self.add_mixin('ui', True, __class__) # type: ignore + + def get_ui_features( + self, feature_type: FeatureType, context: dict, request: Request, **kwargs + ) -> list[UIFeature]: + """Return a list of custom features to be injected into the UI. + + Arguments: + feature_type: The type of feature being requested + context: Additional context data provided by the UI (query parameters) + request: HTTPRequest object (including user information) + + Returns: + list: A list of custom UIFeature dicts to be injected into the UI + + """ + feature_map = { + 'dashboard': self.get_ui_dashboard_items, + 'panel': self.get_ui_panels, + 'template_editor': self.get_ui_template_editors, + 'template_preview': self.get_ui_template_previews, + } + + if feature_type in feature_map: + return feature_map[feature_type](request, context, **kwargs) + else: + logger.warning(f'Invalid feature type: {feature_type}') + return [] + + def get_ui_panels( + self, request: Request, context: dict, **kwargs + ) -> list[UIFeature]: + """Return a list of custom panels to be injected into the UI. + + Args: + request: HTTPRequest object (including user information) + + Returns: + list: A list of custom panels to be injected into the UI + """ + # Default implementation returns an empty list + return [] + + def get_ui_dashboard_items( + self, request: Request, context: dict, **kwargs + ) -> list[UIFeature]: + """Return a list of custom dashboard items to be injected into the UI. + + Args: + request: HTTPRequest object (including user information) + + Returns: + list: A list of custom dashboard items to be injected into the UI + """ + # Default implementation returns an empty list + return [] + + def get_ui_template_editors( + self, request: Request, context: dict, **kwargs + ) -> list[UIFeature]: + """Return a list of custom template editors to be injected into the UI. + + Args: + request: HTTPRequest object (including user information) + + Returns: + list: A list of custom template editors to be injected into the UI + """ + # Default implementation returns an empty list + return [] + + def get_ui_template_previews( + self, request: Request, context: dict, **kwargs + ) -> list[UIFeature]: + """Return a list of custom template previews to be injected into the UI. + + Args: + request: HTTPRequest object (including user information) + + Returns: + list: A list of custom template previews to be injected into the UI + """ + # Default implementation returns an empty list + return [] diff --git a/src/backend/InvenTree/plugin/base/ui/serializers.py b/src/backend/InvenTree/plugin/base/ui/serializers.py new file mode 100644 index 0000000000..99a3126399 --- /dev/null +++ b/src/backend/InvenTree/plugin/base/ui/serializers.py @@ -0,0 +1,65 @@ +"""Serializers for UI plugin api.""" + +from django.utils.translation import gettext_lazy as _ + +from rest_framework import serializers + + +class PluginUIFeatureSerializer(serializers.Serializer): + """Serializer for a plugin ui feature.""" + + class Meta: + """Meta for serializer.""" + + fields = [ + 'plugin_name', + 'feature_type', + 'key', + 'title', + 'description', + 'icon', + 'options', + 'context', + 'source', + ] + + # Required fields + + # The name of the plugin that provides this feature + plugin_name = serializers.CharField( + label=_('Plugin Name'), required=True, allow_blank=False + ) + + feature_type = serializers.CharField( + label=_('Feature Type'), required=True, allow_blank=False + ) + + # Item key to be used in the UI - this should be a DOM identifier and is not user facing + key = serializers.CharField( + label=_('Feature Label'), required=True, allow_blank=False + ) + + # Title to be used in the UI - this is user facing (and should be human readable) + title = serializers.CharField( + label=_('Feature Title'), required=False, allow_blank=True + ) + + # Long-form description of the feature (optional) + description = serializers.CharField( + label=_('Feature Description'), required=False, allow_blank=True + ) + + # Optional icon + icon = serializers.CharField( + label=_('Feature Icon'), required=False, allow_blank=True + ) + + # Additional options, specific to the particular UI feature + options = serializers.DictField(label=_('Feature Options'), default=None) + + # Server side context, supplied to the client side for rendering + context = serializers.DictField(label=_('Feature Context'), default=None) + + source = serializers.CharField( + label=_('Feature Source (javascript)'), required=True, allow_blank=False + ) diff --git a/src/backend/InvenTree/plugin/base/ui/tests.py b/src/backend/InvenTree/plugin/base/ui/tests.py new file mode 100644 index 0000000000..feda515928 --- /dev/null +++ b/src/backend/InvenTree/plugin/base/ui/tests.py @@ -0,0 +1,225 @@ +"""Unit tests for base mixins for plugins.""" + +from django.urls import reverse + +from common.models import InvenTreeSetting +from InvenTree.unit_test import InvenTreeAPITestCase +from plugin.registry import registry + + +class UserInterfaceMixinTests(InvenTreeAPITestCase): + """Test the UserInterfaceMixin plugin mixin class.""" + + roles = 'all' + + fixtures = ['part', 'category', 'location', 'stock'] + + @classmethod + def setUpTestData(cls): + """Set up the test case.""" + super().setUpTestData() + + # Ensure that the 'sampleui' plugin is installed and active + registry.set_plugin_state('sampleui', True) + + # Ensure that UI plugins are enabled + InvenTreeSetting.set_setting('ENABLE_PLUGINS_INTERFACE', True, change_user=None) + + def test_installed(self): + """Test that the sample UI plugin is installed and active.""" + plugin = registry.get_plugin('sampleui') + self.assertTrue(plugin.is_active()) + + plugins = registry.with_mixin('ui') + self.assertGreater(len(plugins), 0) + + def test_ui_dashboard_items(self): + """Test that the sample UI plugin provides custom dashboard items.""" + # Ensure the user has superuser status + self.user.is_superuser = True + self.user.save() + + url = reverse('api-plugin-ui-feature-list', kwargs={'feature': 'dashboard'}) + + response = self.get(url) + self.assertEqual(len(response.data), 4) + + for item in response.data: + self.assertEqual(item['plugin_name'], 'sampleui') + + self.assertEqual(response.data[0]['key'], 'broken-dashboard-item') + self.assertEqual(response.data[0]['title'], 'Broken Dashboard Item') + self.assertEqual(response.data[0]['source'], '/this/does/not/exist.js') + + self.assertEqual(response.data[1]['key'], 'sample-dashboard-item') + self.assertEqual(response.data[1]['title'], 'Sample Dashboard Item') + self.assertEqual( + response.data[1]['source'], + '/static/plugins/sampleui/sample_dashboard_item.js', + ) + + self.assertEqual(response.data[2]['key'], 'dynamic-dashboard-item') + self.assertEqual(response.data[2]['title'], 'Context Dashboard Item') + self.assertEqual( + response.data[2]['source'], + '/static/plugins/sampleui/sample_dashboard_item.js:renderContextItem', + ) + + self.assertEqual(response.data[3]['key'], 'admin-dashboard-item') + self.assertEqual(response.data[3]['title'], 'Admin Dashboard Item') + self.assertEqual( + response.data[3]['source'], + '/static/plugins/sampleui/admin_dashboard_item.js', + ) + + # Additional options and context data should be passed through to the client + self.assertDictEqual(response.data[3]['options'], {'width': 4, 'height': 2}) + + self.assertDictEqual( + response.data[3]['context'], {'secret-key': 'this-is-a-secret'} + ) + + # Remove superuser status - the 'admin-dashboard-item' should disappear + self.user.is_superuser = False + self.user.save() + + response = self.get(url) + self.assertEqual(len(response.data), 3) + + def test_ui_panels(self): + """Test that the sample UI plugin provides custom panels.""" + from part.models import Part + + plugin = registry.get_plugin('sampleui') + + _part = Part.objects.first() + + # Ensure that the part is active + _part.active = True + _part.save() + + url = reverse('api-plugin-ui-feature-list', kwargs={'feature': 'panel'}) + + query_data = {'target_model': 'part', 'target_id': _part.pk} + + # Enable *all* plugin settings + plugin.set_setting('ENABLE_PART_PANELS', True) + plugin.set_setting('ENABLE_PURCHASE_ORDER_PANELS', True) + plugin.set_setting('ENABLE_BROKEN_PANELS', True) + plugin.set_setting('ENABLE_DYNAMIC_PANEL', True) + + # Request custom panel information for a part instance + response = self.get(url, data=query_data) + + # There should be 4 active panels for the part by default + self.assertEqual(3, len(response.data)) + + _part.active = False + _part.save() + + response = self.get(url, data=query_data) + + # As the part is not active, only 3 panels left + self.assertEqual(3, len(response.data)) + + # Disable the "ENABLE_PART_PANELS" setting, and try again + plugin.set_setting('ENABLE_PART_PANELS', False) + + response = self.get(url, data=query_data) + + # There should still be 2 panels + self.assertEqual(2, len(response.data)) + + for panel in response.data: + self.assertEqual(panel['plugin_name'], 'sampleui') + self.assertEqual(panel['feature_type'], 'panel') + + self.assertEqual(response.data[0]['key'], 'broken-panel') + self.assertEqual(response.data[0]['title'], 'Broken Panel') + self.assertEqual(response.data[0]['source'], '/this/does/not/exist.js') + + self.assertEqual(response.data[1]['key'], 'dynamic-panel') + self.assertEqual(response.data[1]['title'], 'Dynamic Panel') + self.assertEqual( + response.data[1]['source'], '/static/plugins/sampleui/sample_panel.js' + ) + + ctx = response.data[1]['context'] + + for k in ['version', 'plugin_version', 'random', 'time']: + self.assertIn(k, ctx) + + # Next, disable the global setting for UI integration + InvenTreeSetting.set_setting( + 'ENABLE_PLUGINS_INTERFACE', False, change_user=None + ) + + response = self.get(url, data=query_data) + + # There should be no panels available + self.assertEqual(0, len(response.data)) + + # Set the setting back to True for subsequent tests + InvenTreeSetting.set_setting('ENABLE_PLUGINS_INTERFACE', True, change_user=None) + + def test_ui_template_editors(self): + """Test that the sample UI plugin provides template editor features.""" + template_editor_url = reverse( + 'api-plugin-ui-feature-list', kwargs={'feature': 'template_editor'} + ) + template_preview_url = reverse( + 'api-plugin-ui-feature-list', kwargs={'feature': 'template_preview'} + ) + + query_data_label = {'template_type': 'labeltemplate', 'template_model': 'part'} + query_data_report = { + 'template_type': 'reporttemplate', + 'template_model': 'part', + } + + # Request custom label template editor information + response = self.get(template_editor_url, data=query_data_label) + self.assertEqual(1, len(response.data)) + + data = response.data[0] + + for k, v in { + 'plugin_name': 'sampleui', + 'key': 'sample-template-editor', + 'title': 'Sample Template Editor', + 'source': '/static/plugins/sampleui/sample_template.js:getTemplateEditor', + }.items(): + self.assertEqual(data[k], v) + + # Request custom report template editor information + response = self.get(template_editor_url, data=query_data_report) + self.assertEqual(0, len(response.data)) + + # Request custom report template preview information + response = self.get(template_preview_url, data=query_data_report) + self.assertEqual(1, len(response.data)) + + data = response.data[0] + + for k, v in { + 'plugin_name': 'sampleui', + 'feature_type': 'template_preview', + 'key': 'sample-template-preview', + 'title': 'Sample Template Preview', + 'context': None, + 'source': '/static/plugins/sampleui/sample_preview.js:getTemplatePreview', + }.items(): + self.assertEqual(data[k], v) + + # Next, disable the global setting for UI integration + InvenTreeSetting.set_setting( + 'ENABLE_PLUGINS_INTERFACE', False, change_user=None + ) + + response = self.get(template_editor_url, data=query_data_label) + + # There should be no features available + self.assertEqual(0, len(response.data)) + + # Set the setting back to True for subsequent tests + InvenTreeSetting.set_setting('ENABLE_PLUGINS_INTERFACE', True, change_user=None) diff --git a/src/backend/InvenTree/plugin/builtin/integration/core_notifications.py b/src/backend/InvenTree/plugin/builtin/integration/core_notifications.py index 298677c4ec..d0ac96a08d 100644 --- a/src/backend/InvenTree/plugin/builtin/integration/core_notifications.py +++ b/src/backend/InvenTree/plugin/builtin/integration/core_notifications.py @@ -7,8 +7,8 @@ import requests from allauth.account.models import EmailAddress import common.models -import InvenTree.email import InvenTree.helpers +import InvenTree.helpers_email import InvenTree.tasks from plugin import InvenTreePlugin, registry from plugin.mixins import BulkNotificationMethod, SettingsContentMixin, SettingsMixin @@ -116,7 +116,9 @@ class InvenTreeCoreNotificationsPlugin( if instance_title: subject = f'[{instance_title}] {subject}' - InvenTree.email.send_email(subject, '', targets, html_message=html_message) + InvenTree.helpers_email.send_email( + subject, '', targets, html_message=html_message + ) return True diff --git a/src/backend/InvenTree/plugin/builtin/labels/inventree_machine.py b/src/backend/InvenTree/plugin/builtin/labels/inventree_machine.py index f147edad3c..86ebcd71ec 100644 --- a/src/backend/InvenTree/plugin/builtin/labels/inventree_machine.py +++ b/src/backend/InvenTree/plugin/builtin/labels/inventree_machine.py @@ -95,7 +95,9 @@ class InvenTreeLabelPlugin(LabelPrintingMixin, InvenTreePlugin): if driver.USE_BACKGROUND_WORKER is False: return driver.print_labels(machine, label, items, **print_kwargs) - offload_task(driver.print_labels, machine, label, items, **print_kwargs) + offload_task( + driver.print_labels, machine, label, items, group='plugin', **print_kwargs + ) return JsonResponse({ 'success': True, diff --git a/src/backend/InvenTree/plugin/helpers.py b/src/backend/InvenTree/plugin/helpers.py index 6e8425ad5a..9fa392a6d2 100644 --- a/src/backend/InvenTree/plugin/helpers.py +++ b/src/backend/InvenTree/plugin/helpers.py @@ -44,14 +44,10 @@ class MixinImplementationError(ValueError): Mostly raised if constant is missing """ - pass - class MixinNotImplementedError(NotImplementedError): """Error if necessary mixin function was not overwritten.""" - pass - def log_error(error, reference: str = 'general'): """Log an plugin error.""" diff --git a/src/backend/InvenTree/plugin/installer.py b/src/backend/InvenTree/plugin/installer.py index 8edcfd7159..4d706aaad2 100644 --- a/src/backend/InvenTree/plugin/installer.py +++ b/src/backend/InvenTree/plugin/installer.py @@ -10,6 +10,7 @@ from django.core.exceptions import ValidationError from django.utils.translation import gettext_lazy as _ import plugin.models +import plugin.staticfiles from InvenTree.exceptions import log_error logger = logging.getLogger('inventree') @@ -119,6 +120,10 @@ def install_plugins_file(): log_error('pip') return False + # Update static files + plugin.staticfiles.collect_plugins_static_files() + plugin.staticfiles.clear_plugins_static_files() + # At this point, the plugins file has been installed return True @@ -216,19 +221,12 @@ def install_plugin(url=None, packagename=None, user=None, version=None): identifier in url for identifier in ['git+https', 'hg+https', 'svn+svn'] ]: # using a VCS provider - if packagename: - full_pkg = f'{packagename}@{url}' - else: - full_pkg = url - else: # pragma: no cover - # using a custom package repositories - # This is only for pypa compliant directory services (all current are tested above) - # and not covered by tests. - if url: - install_name.append('-i') - full_pkg = url - elif packagename: - full_pkg = packagename + full_pkg = f'{packagename}@{url}' if packagename else url + elif url: + install_name.append('-i') + full_pkg = url + elif packagename: + full_pkg = packagename elif packagename: # use pypi @@ -248,10 +246,9 @@ def install_plugin(url=None, packagename=None, user=None, version=None): ret['result'] = ret['success'] = _('Installed plugin successfully') ret['output'] = str(result, 'utf-8') - if packagename: - if path := check_package_path(packagename): - # Override result information - ret['result'] = _(f'Installed plugin into {path}') + if packagename and (path := check_package_path(packagename)): + # Override result information + ret['result'] = _(f'Installed plugin into {path}') except subprocess.CalledProcessError as error: handle_pip_error(error, 'plugin_install') @@ -264,6 +261,9 @@ def install_plugin(url=None, packagename=None, user=None, version=None): registry.reload_plugins(full_reload=True, force_reload=True, collect=True) + # Update static files + plugin.staticfiles.collect_plugins_static_files() + return ret @@ -328,6 +328,9 @@ def uninstall_plugin(cfg: plugin.models.PluginConfig, user=None, delete_config=T # Remove the plugin configuration from the database cfg.delete() + # Remove static files associated with this plugin + plugin.staticfiles.clear_plugin_static_files(cfg.key) + # Reload the plugin registry registry.reload_plugins(full_reload=True, force_reload=True, collect=True) diff --git a/src/backend/InvenTree/plugin/machine/__init__.py b/src/backend/InvenTree/plugin/machine/__init__.py index 617df0762b..3b11727bea 100644 --- a/src/backend/InvenTree/plugin/machine/__init__.py +++ b/src/backend/InvenTree/plugin/machine/__init__.py @@ -1,3 +1,3 @@ from machine import BaseDriver, BaseMachineType, MachineStatus, registry -__all__ = ['registry', 'BaseDriver', 'BaseMachineType', 'MachineStatus'] +__all__ = ['BaseDriver', 'BaseMachineType', 'MachineStatus', 'registry'] diff --git a/src/backend/InvenTree/plugin/machine/machine_types.py b/src/backend/InvenTree/plugin/machine/machine_types.py index f83dea2470..bd94ed7537 100644 --- a/src/backend/InvenTree/plugin/machine/machine_types.py +++ b/src/backend/InvenTree/plugin/machine/machine_types.py @@ -1,3 +1,3 @@ """just re-export the machine types from the plugin InvenTree app.""" -from machine.machine_types import * # noqa: F403, F401 +from machine.machine_types import * # noqa: F403 diff --git a/src/backend/InvenTree/plugin/migrations/0003_pluginsetting.py b/src/backend/InvenTree/plugin/migrations/0003_pluginsetting.py index 83e744fa6b..f2066ef068 100644 --- a/src/backend/InvenTree/plugin/migrations/0003_pluginsetting.py +++ b/src/backend/InvenTree/plugin/migrations/0003_pluginsetting.py @@ -15,7 +15,7 @@ class Migration(migrations.Migration): name='PluginSetting', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('key', models.CharField(help_text='Settings key (must be unique - case insensitive', max_length=50)), + ('key', models.CharField(help_text='Settings key', max_length=50)), ('value', models.CharField(blank=True, help_text='Settings value', max_length=200)), ('plugin', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='settings', to='plugin.pluginconfig', verbose_name='Plugin')), ], diff --git a/src/backend/InvenTree/plugin/migrations/0004_alter_pluginsetting_key.py b/src/backend/InvenTree/plugin/migrations/0004_alter_pluginsetting_key.py index 193da8c340..930b8515d8 100644 --- a/src/backend/InvenTree/plugin/migrations/0004_alter_pluginsetting_key.py +++ b/src/backend/InvenTree/plugin/migrations/0004_alter_pluginsetting_key.py @@ -13,6 +13,6 @@ class Migration(migrations.Migration): migrations.AlterField( model_name='pluginsetting', name='key', - field=models.CharField(help_text='Settings key (must be unique - case insensitive)', max_length=50), + field=models.CharField(help_text='Settings key', max_length=50), ), ] diff --git a/src/backend/InvenTree/plugin/migrations/0005_notificationusersetting.py b/src/backend/InvenTree/plugin/migrations/0005_notificationusersetting.py index 4ea1959f90..d2ef14b6e9 100644 --- a/src/backend/InvenTree/plugin/migrations/0005_notificationusersetting.py +++ b/src/backend/InvenTree/plugin/migrations/0005_notificationusersetting.py @@ -17,7 +17,7 @@ class Migration(migrations.Migration): name='NotificationUserSetting', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('key', models.CharField(help_text='Settings key (must be unique - case insensitive)', max_length=50)), + ('key', models.CharField(help_text='Settings key', max_length=50)), ('value', models.CharField(blank=True, help_text='Settings value', max_length=200)), ('method', models.CharField(max_length=255, verbose_name='Method')), ('user', models.ForeignKey(blank=True, help_text='User', null=True, on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL, verbose_name='User')), diff --git a/src/backend/InvenTree/plugin/mixins/__init__.py b/src/backend/InvenTree/plugin/mixins/__init__.py index dff24a216d..3b0ea7557f 100644 --- a/src/backend/InvenTree/plugin/mixins/__init__.py +++ b/src/backend/InvenTree/plugin/mixins/__init__.py @@ -17,26 +17,28 @@ from plugin.base.integration.UrlsMixin import UrlsMixin from plugin.base.integration.ValidationMixin import ValidationMixin from plugin.base.label.mixins import LabelPrintingMixin from plugin.base.locate.mixins import LocateMixin +from plugin.base.ui.mixins import UserInterfaceMixin __all__ = [ 'APICallMixin', + 'ActionMixin', 'AppMixin', + 'BarcodeMixin', + 'BulkNotificationMethod', 'CurrencyExchangeMixin', 'EventMixin', 'IconPackMixin', 'LabelPrintingMixin', + 'LocateMixin', 'NavigationMixin', + 'PanelMixin', 'ReportMixin', 'ScheduleMixin', 'SettingsContentMixin', 'SettingsMixin', - 'UrlsMixin', - 'PanelMixin', - 'ActionMixin', - 'BarcodeMixin', - 'SupplierBarcodeMixin', - 'LocateMixin', - 'ValidationMixin', 'SingleNotificationMethod', - 'BulkNotificationMethod', + 'SupplierBarcodeMixin', + 'UrlsMixin', + 'UserInterfaceMixin', + 'ValidationMixin', ] diff --git a/src/backend/InvenTree/plugin/models.py b/src/backend/InvenTree/plugin/models.py index 4989f56af2..58c08101fd 100644 --- a/src/backend/InvenTree/plugin/models.py +++ b/src/backend/InvenTree/plugin/models.py @@ -187,6 +187,43 @@ class PluginConfig(InvenTree.models.MetadataMixin, models.Model): return getattr(self.plugin, 'is_package', False) + @property + def admin_source(self) -> str: + """Return the path to the javascript file which renders custom admin content for this plugin. + + - It is required that the file provides a 'renderPluginSettings' function! + """ + if not self.plugin: + return None + + if not self.is_installed() or not self.active: + return None + + if hasattr(self.plugin, 'get_admin_source'): + try: + return self.plugin.get_admin_source() + except Exception: + pass + + return None + + @property + def admin_context(self) -> dict: + """Return the context data for the admin integration.""" + if not self.plugin: + return None + + if not self.is_installed() or not self.active: + return None + + if hasattr(self.plugin, 'get_admin_context'): + try: + return self.plugin.get_admin_context() + except Exception: + pass + + return {} + def activate(self, active: bool) -> None: """Set the 'active' status of this plugin instance.""" from InvenTree.tasks import check_for_migrations, offload_task @@ -199,7 +236,9 @@ class PluginConfig(InvenTree.models.MetadataMixin, models.Model): if active: offload_task(check_for_migrations) - offload_task(plugin.staticfiles.copy_plugin_static_files, self.key) + offload_task( + plugin.staticfiles.copy_plugin_static_files, self.key, group='plugin' + ) class PluginSetting(common.models.BaseInvenTreeSetting): diff --git a/src/backend/InvenTree/plugin/plugin.py b/src/backend/InvenTree/plugin/plugin.py index 6cafd510c0..7ed154cf76 100644 --- a/src/backend/InvenTree/plugin/plugin.py +++ b/src/backend/InvenTree/plugin/plugin.py @@ -7,13 +7,14 @@ from datetime import datetime from distutils.sysconfig import get_python_lib from importlib.metadata import PackageNotFoundError, metadata from pathlib import Path +from typing import Optional from django.conf import settings from django.urls.base import reverse from django.utils.text import slugify from django.utils.translation import gettext_lazy as _ -from InvenTree.helpers import pui_url +import InvenTree.helpers from plugin.helpers import get_git_log logger = logging.getLogger('inventree') @@ -27,7 +28,7 @@ class MetaBase: SLUG = None TITLE = None - def get_meta_value(self, key: str, old_key: str = None, __default=None): + def get_meta_value(self, key: str, old_key: Optional[str] = None, __default=None): """Reference a meta item with a key. Args: @@ -219,6 +220,10 @@ class InvenTreePlugin(VersionMixin, MixinBase, MetaBase): WEBSITE = None LICENSE = None + # Optional path to a JavaScript file which will be loaded in the admin panel + # This file must provide a function called renderPluginSettings + ADMIN_SOURCE = None + def __init__(self): """Init a plugin. @@ -375,9 +380,9 @@ class InvenTreePlugin(VersionMixin, MixinBase, MetaBase): return f'{reverse("settings")}#select-plugin-{self.slug}' config = self.plugin_config() if config: - return pui_url(f'/settings/admin/plugin/{config.pk}/') + return InvenTree.helpers.pui_url(f'/settings/admin/plugin/{config.pk}/') else: - return pui_url('/settings/admin/plugin/') + return InvenTree.helpers.pui_url('/settings/admin/plugin/') # region package info def _get_package_commit(self): @@ -437,3 +442,33 @@ class InvenTreePlugin(VersionMixin, MixinBase, MetaBase): self.package = package # endregion + + def plugin_static_file(self, *args): + """Construct a path to a static file within the plugin directory.""" + import os + + from django.conf import settings + + url = os.path.join(settings.STATIC_URL, 'plugins', self.SLUG, *args) + + if not url.startswith('/'): + url = '/' + url + + return url + + def get_admin_source(self) -> str: + """Return a path to a JavaScript file which contains custom UI settings. + + The frontend code expects that this file provides a function named 'renderPluginSettings'. + """ + if not self.ADMIN_SOURCE: + return None + + return self.plugin_static_file(self.ADMIN_SOURCE) + + def get_admin_context(self) -> dict: + """Return a context dictionary for the admin panel settings. + + This is an optional method which can be overridden by the plugin. + """ + return None diff --git a/src/backend/InvenTree/plugin/registry.py b/src/backend/InvenTree/plugin/registry.py index 4b49eb5433..0cfc287d0f 100644 --- a/src/backend/InvenTree/plugin/registry.py +++ b/src/backend/InvenTree/plugin/registry.py @@ -572,16 +572,13 @@ class PluginsRegistry: try: self._init_plugin(plg, plugin_configs) break - except IntegrationPluginError: - # Error has been handled downstream - pass except Exception as error: # Handle the error, log it and try again - handle_error( - error, log_name='init', do_raise=settings.PLUGIN_TESTING - ) - if attempts == 0: + handle_error( + error, log_name='init', do_raise=settings.PLUGIN_TESTING + ) + logger.exception( '[PLUGIN] Encountered an error with %s:\n%s', error.path, @@ -742,11 +739,12 @@ class PluginsRegistry: def plugin_settings_keys(self): """A list of keys which are used to store plugin settings.""" return [ - 'ENABLE_PLUGINS_URL', - 'ENABLE_PLUGINS_NAVIGATION', 'ENABLE_PLUGINS_APP', - 'ENABLE_PLUGINS_SCHEDULE', 'ENABLE_PLUGINS_EVENTS', + 'ENABLE_PLUGINS_INTERFACE', + 'ENABLE_PLUGINS_NAVIGATION', + 'ENABLE_PLUGINS_SCHEDULE', + 'ENABLE_PLUGINS_URL', ] def calculate_plugin_hash(self): @@ -768,7 +766,7 @@ class PluginsRegistry: for k in self.plugin_settings_keys(): try: - val = get_global_setting(k) + val = get_global_setting(k, create=False) msg = f'{k}-{val}' data.update(msg.encode()) diff --git a/src/backend/InvenTree/plugin/samples/integration/test_scheduled_task.py b/src/backend/InvenTree/plugin/samples/integration/test_scheduled_task.py index 548c7c4ddc..ae2b173424 100644 --- a/src/backend/InvenTree/plugin/samples/integration/test_scheduled_task.py +++ b/src/backend/InvenTree/plugin/samples/integration/test_scheduled_task.py @@ -85,8 +85,6 @@ class ScheduledTaskPluginTests(TestCase): class NoSchedules(Base): """Plugin without schedules.""" - pass - with self.assertRaises(MixinImplementationError): NoSchedules().register_tasks() diff --git a/src/backend/InvenTree/plugin/samples/integration/test_validation_sample.py b/src/backend/InvenTree/plugin/samples/integration/test_validation_sample.py index 6acff5cac9..010692cb8b 100644 --- a/src/backend/InvenTree/plugin/samples/integration/test_validation_sample.py +++ b/src/backend/InvenTree/plugin/samples/integration/test_validation_sample.py @@ -1,16 +1,18 @@ """Unit tests for the SampleValidatorPlugin class.""" from django.core.exceptions import ValidationError +from django.urls import reverse +import build.models import part.models -from InvenTree.unit_test import InvenTreeTestCase +from InvenTree.unit_test import InvenTreeAPITestCase, InvenTreeTestCase from plugin.registry import registry -class SampleValidatorPluginTest(InvenTreeTestCase): +class SampleValidatorPluginTest(InvenTreeAPITestCase, InvenTreeTestCase): """Tests for the SampleValidatonPlugin class.""" - fixtures = ['category', 'location'] + fixtures = ['part', 'category', 'location', 'build'] def setUp(self): """Set up the test environment.""" @@ -28,6 +30,7 @@ class SampleValidatorPluginTest(InvenTreeTestCase): self.bom_item = part.models.BomItem.objects.create( part=self.assembly, sub_part=self.part, quantity=1 ) + super().setUp() def get_plugin(self): """Return the SampleValidatorPlugin instance.""" @@ -113,3 +116,40 @@ class SampleValidatorPluginTest(InvenTreeTestCase): self.part.IPN = 'LMNOPQ' self.part.save() + + def test_validate_generate_batch_code(self): + """Test the generate_batch_code function.""" + self.enable_plugin(True) + plg = self.get_plugin() + self.assertIsNotNone(plg) + + code = plg.generate_batch_code() + self.assertIsInstance(code, str) + self.assertTrue(code.startswith('SAMPLE-BATCH')) + + def test_api_batch(self): + """Test the batch code validation API.""" + self.enable_plugin(True) + url = reverse('api-generate-batch-code') + + response = self.post(url) + self.assertIn('batch_code', response.data) + self.assertTrue(response.data['batch_code'].startswith('SAMPLE-BATCH')) + + # Use part code + part_itm = part.models.Part.objects.first() + response = self.post(url, {'part': part_itm.pk}) + self.assertIn('batch_code', response.data) + self.assertTrue( + response.data['batch_code'].startswith(part_itm.name + '-SAMPLE-BATCH') + ) + + # Use build_order + build_itm = build.models.Build.objects.first() + response = self.post(url, {'build_order': build_itm.pk}) + self.assertIn('batch_code', response.data) + self.assertTrue( + response.data['batch_code'].startswith( + build_itm.reference + '-SAMPLE-BATCH' + ) + ) diff --git a/src/backend/InvenTree/plugin/samples/integration/transition.py b/src/backend/InvenTree/plugin/samples/integration/transition.py index b0a6ff1826..2057933dc7 100644 --- a/src/backend/InvenTree/plugin/samples/integration/transition.py +++ b/src/backend/InvenTree/plugin/samples/integration/transition.py @@ -18,8 +18,9 @@ class SampleTransitionPlugin(InvenTreePlugin): def transition(current_state, target_state, instance, default_action, **kwargs): # noqa: N805 """Example override function for state transition.""" # Only act on ReturnOrders that should be completed - if not isinstance(instance, ReturnOrder) or not ( - target_state == ReturnOrderStatus.COMPLETE.value + if ( + not isinstance(instance, ReturnOrder) + or target_state != ReturnOrderStatus.COMPLETE.value ): return False diff --git a/src/backend/InvenTree/plugin/samples/integration/user_interface_sample.py b/src/backend/InvenTree/plugin/samples/integration/user_interface_sample.py new file mode 100644 index 0000000000..04d757c790 --- /dev/null +++ b/src/backend/InvenTree/plugin/samples/integration/user_interface_sample.py @@ -0,0 +1,202 @@ +"""Sample plugin which demonstrates user interface integrations.""" + +import random +import time + +from django.utils.translation import gettext_lazy as _ + +from InvenTree.version import INVENTREE_SW_VERSION +from part.models import Part +from plugin import InvenTreePlugin +from plugin.mixins import SettingsMixin, UserInterfaceMixin + + +class SampleUserInterfacePlugin(SettingsMixin, UserInterfaceMixin, InvenTreePlugin): + """A sample plugin which demonstrates user interface integrations.""" + + NAME = 'SampleUI' + SLUG = 'sampleui' + TITLE = 'Sample User Interface Plugin' + DESCRIPTION = 'A sample plugin which demonstrates user interface integrations' + VERSION = '2.0' + + ADMIN_SOURCE = 'ui_settings.js' + + SETTINGS = { + 'ENABLE_PART_PANELS': { + 'name': _('Enable Part Panels'), + 'description': _('Enable custom panels for Part views'), + 'default': True, + 'validator': bool, + }, + 'ENABLE_PURCHASE_ORDER_PANELS': { + 'name': _('Enable Purchase Order Panels'), + 'description': _('Enable custom panels for Purchase Order views'), + 'default': False, + 'validator': bool, + }, + 'ENABLE_BROKEN_PANELS': { + 'name': _('Enable Broken Panels'), + 'description': _('Enable broken panels for testing'), + 'default': True, + 'validator': bool, + }, + 'ENABLE_DYNAMIC_PANEL': { + 'name': _('Enable Dynamic Panel'), + 'description': _('Enable dynamic panels for testing'), + 'default': True, + 'validator': bool, + }, + } + + def get_ui_panels(self, request, context, **kwargs): + """Return a list of custom panels to be injected into the UI.""" + panels = [] + context = context or {} + + # First, add a custom panel which will appear on every type of page + # This panel will contain a simple message + + target_model = context.get('target_model', None) + target_id = context.get('target_id', None) + + # A broken panel which tries to load a non-existent JS file + if target_id is not None and self.get_setting('ENABLE_BROKEN_PANElS'): + panels.append({ + 'key': 'broken-panel', + 'title': 'Broken Panel', + 'source': '/this/does/not/exist.js', + }) + + # A dynamic panel which will be injected into the UI (loaded from external file) + # Note that we additionally provide some "context" data to the front-end render function + if self.get_setting('ENABLE_DYNAMIC_PANEL'): + panels.append({ + 'key': 'dynamic-panel', + 'title': 'Dynamic Panel', + 'source': self.plugin_static_file('sample_panel.js'), + 'icon': 'part', + 'context': { + 'version': INVENTREE_SW_VERSION, + 'plugin_version': self.VERSION, + 'random': random.randint(1, 100), + 'time': time.time(), + }, + }) + + # Next, add a custom panel which will appear on the 'part' page + # Note that this content is rendered from a template file, + # using the django templating system + if self.get_setting('ENABLE_PART_PANELS') and target_model == 'part': + try: + part = Part.objects.get(pk=target_id) + except (Part.DoesNotExist, ValueError): + part = None + + panels.append({ + 'key': 'part-panel', + 'title': _('Part Panel'), + 'source': self.plugin_static_file('sample_panel.js:renderPartPanel'), + 'icon': 'part', + 'context': {'part_name': part.name if part else ''}, + }) + + # Next, add a custom panel which will appear on the 'purchaseorder' page + if target_model == 'purchaseorder' and self.get_setting( + 'ENABLE_PURCHASE_ORDER_PANELS' + ): + panels.append({ + 'key': 'purchase_order_panel', + 'title': 'Purchase Order Panel', + 'source': self.plugin_static_file('sample_panel.js:renderPoPanel'), + }) + + # Admin panel - only visible to admin users + if request.user.is_superuser: + panels.append({ + 'key': 'admin-panel', + 'title': 'Admin Panel', + 'source': self.plugin_static_file( + 'sample_panel.js:renderAdminOnlyPanel' + ), + }) + + return panels + + def get_ui_dashboard_items(self, request, context, **kwargs): + """Return a list of custom dashboard items.""" + items = [ + { + 'key': 'broken-dashboard-item', + 'title': _('Broken Dashboard Item'), + 'description': _( + 'This is a broken dashboard item - it will not render!' + ), + 'source': '/this/does/not/exist.js', + }, + { + 'key': 'sample-dashboard-item', + 'title': _('Sample Dashboard Item'), + 'description': _( + 'This is a sample dashboard item. It renders a simple string of HTML content.' + ), + 'source': self.plugin_static_file('sample_dashboard_item.js'), + }, + { + 'key': 'dynamic-dashboard-item', + 'title': _('Context Dashboard Item'), + 'description': 'A dashboard item which passes context data from the server', + 'source': self.plugin_static_file( + 'sample_dashboard_item.js:renderContextItem' + ), + 'context': {'foo': 'bar', 'hello': 'world'}, + 'options': {'width': 3, 'height': 2}, + }, + ] + + # Admin item - only visible to users with superuser access + if request.user.is_superuser: + items.append({ + 'key': 'admin-dashboard-item', + 'title': _('Admin Dashboard Item'), + 'description': _('This is an admin-only dashboard item.'), + 'source': self.plugin_static_file('admin_dashboard_item.js'), + 'options': {'width': 4, 'height': 2}, + 'context': {'secret-key': 'this-is-a-secret'}, + }) + + return items + + def get_ui_template_editors(self, request, context, **kwargs): + """Return a list of custom template editors.""" + # If the context is a label template, return a custom template editor + if context.get('template_type') == 'labeltemplate': + return [ + { + 'key': 'sample-template-editor', + 'title': 'Sample Template Editor', + 'icon': 'keywords', + 'source': self.plugin_static_file( + 'sample_template.js:getTemplateEditor' + ), + } + ] + + return [] + + def get_ui_template_previews(self, request, context, **kwargs): + """Return a list of custom template previews.""" + return [ + { + 'key': 'sample-template-preview', + 'title': 'Sample Template Preview', + 'icon': 'category', + 'source': self.plugin_static_file( + 'sample_preview.js:getTemplatePreview' + ), + } + ] + + def get_admin_context(self) -> dict: + """Return custom context data which can be rendered in the admin panel.""" + return {'apple': 'banana', 'foo': 'bar', 'hello': 'world'} diff --git a/src/backend/InvenTree/plugin/samples/integration/validation_sample.py b/src/backend/InvenTree/plugin/samples/integration/validation_sample.py index 3541d12240..903cc59b34 100644 --- a/src/backend/InvenTree/plugin/samples/integration/validation_sample.py +++ b/src/backend/InvenTree/plugin/samples/integration/validation_sample.py @@ -135,6 +135,34 @@ class SampleValidatorPlugin(SettingsMixin, ValidationMixin, InvenTreePlugin): if serial[0] != part.name[0]: self.raise_error('Serial number must start with same letter as part') + # Prevent serial numbers which are a multiple of 5 + try: + sn = int(serial) + if sn % 5 == 0: + self.raise_error('Serial number cannot be a multiple of 5') + except ValueError: + pass + + def increment_serial_number(self, serial: str, part=None, **kwargs): + """Increment a serial number. + + These examples are silly, but serve to demonstrate how the feature could be used + """ + try: + sn = int(serial) + sn += 1 + + # Skip any serial number which is a multiple of 5 + if sn % 5 == 0: + sn += 1 + + return str(sn) + except ValueError: + pass + + # Return "None" to defer to the next plugin or builtin functionality + return None + def validate_batch_code(self, batch_code: str, item): """Ensure that a particular batch code meets specification. @@ -151,11 +179,11 @@ class SampleValidatorPlugin(SettingsMixin, ValidationMixin, InvenTreePlugin): batch = f'SAMPLE-BATCH-{now.year}:{now.month}:{now.day}' # If a Part instance is provided, prepend the part name to the batch code - if part := kwargs.get('part', None): + if part := kwargs.get('part'): batch = f'{part.name}-{batch}' # If a Build instance is provided, prepend the build number to the batch code - if build := kwargs.get('build_order', None): + if build := kwargs.get('build_order'): batch = f'{build.reference}-{batch}' return batch diff --git a/src/backend/InvenTree/plugin/samples/static/plugins/sampleui/admin_dashboard_item.js b/src/backend/InvenTree/plugin/samples/static/plugins/sampleui/admin_dashboard_item.js new file mode 100644 index 0000000000..8ec84f7ddb --- /dev/null +++ b/src/backend/InvenTree/plugin/samples/static/plugins/sampleui/admin_dashboard_item.js @@ -0,0 +1,20 @@ +/** + * A sample dashboard item plugin for InvenTree. + * + * - This is a *very basic* example. + * - In practice, you would want to use React / Mantine / etc to render more complex UI elements. + */ + +export function renderDashboardItem(target, data) { + + if (!target) { + console.error("No target provided to renderDashboardItem"); + return; + } + + target.innerHTML = ` +

Admin Item

+
+

Hello there, admin user!

+ `; +} diff --git a/src/backend/InvenTree/plugin/samples/static/plugins/sampleui/sample_dashboard_item.js b/src/backend/InvenTree/plugin/samples/static/plugins/sampleui/sample_dashboard_item.js new file mode 100644 index 0000000000..3c59b111e9 --- /dev/null +++ b/src/backend/InvenTree/plugin/samples/static/plugins/sampleui/sample_dashboard_item.js @@ -0,0 +1,49 @@ +/** + * A sample dashboard item plugin for InvenTree. + * + * - This is a *very basic* example. + * - In practice, you would want to use React / Mantine / etc to render more complex UI elements. + */ + +export function renderDashboardItem(target, data) { + + if (!target) { + console.error("No target provided to renderDashboardItem"); + return; + } + + target.innerHTML = ` +

Sample Dashboard Item

+
+

Hello world! This is a sample dashboard item loaded by the plugin system.

+ `; +} + + +export function renderContextItem(target, data) { + + if (!target) { + console.error("No target provided to renderContextItem"); + return; + } + + let context = data?.context ?? {}; + + let ctxString = ''; + + for (let key in context) { + ctxString += `${key}${context[key]}`; + } + + target.innerHTML = ` +

Sample Context Item

+
+

Hello world! This is a sample context item loaded by the plugin system.

+ + + + ${ctxString} + +
ItemValue
+ `; +} diff --git a/src/backend/InvenTree/plugin/samples/static/plugins/sampleui/sample_panel.js b/src/backend/InvenTree/plugin/samples/static/plugins/sampleui/sample_panel.js new file mode 100644 index 0000000000..eaee2d6a37 --- /dev/null +++ b/src/backend/InvenTree/plugin/samples/static/plugins/sampleui/sample_panel.js @@ -0,0 +1,105 @@ +/** + * A sample panel plugin for InvenTree. + * + * This plugin file is dynamically loaded, + * as specified in the plugin/samples/integration/user_interface_sample.py + * + * It provides a simple example of how panels can be dynamically rendered, + * as well as dynamically hidden, based on the provided context. + */ + +export function renderPanel(target, data) { + + if (!target) { + console.error("No target provided to renderPanel"); + return; + } + + target.innerHTML = ` +

Dynamic Panel Content

+ +

This panel has been dynamically rendered by the plugin system.

+

It can be hidden or displayed based on the provided context.

+ +
+
Client Context:
+ +
    +
  • Username: ${data.user.username()}
  • +
  • Is Staff: ${data.user.isStaff() ? "YES": "NO"}
  • +
  • Model Type: ${data.model}
  • +
  • Instance ID: ${data.id}
  • +
+
+
Server Context:
+
    +
  • Server Version: ${data.context.version}
  • +
  • Plugin Version: ${data.context.plugin_version}
  • +
  • Random Number: ${data.context.random}
  • +
  • Time: ${data.context.time}
  • +
+ `; + +} + + +/** + * Render a panel on a Part detail page + */ +export function renderPartPanel(target, data) { + + if (!target) { + console.error("No target provided to renderPartPanel"); + return; + } + + target.innerHTML = ` +

Part Detail Panel

+
+

This is a custom panel for a Part detail page

+ `; +} + + + +/** + * Render a panel on a PurchaseOrder detail page + */ +export function renderPoPanel(target, data) { + if (!target) { + console.error("No target provided to renderPoPanel"); + return; + } + + target.innerHTML = ` +

Order Reference: ${data.instance?.reference}

+
+

This is a custom panel for a PurchaseOrder detail page

+ `; +} + + +/** + * Render a panel that is only visible to admin users + */ +export function renderAdminOnlyPanel(target, data) { + if (!target) { + console.error("No target provided to renderAdminOnlyPanel"); + return; + } + + target.innerHTML = `Hello Admin user! This panel is only visible to admin users.`; +} + + +// Dynamically hide the panel based on the provided context +export function isPanelHidden(context) { + + // Hide the panel if the user is not staff + if (!context?.user?.isStaff()) { + return true; + } + + // Only display for active parts + return context.model != 'part' || !context.instance || !context.instance.active; +} diff --git a/src/backend/InvenTree/plugin/samples/static/plugins/sampleui/sample_preview.js b/src/backend/InvenTree/plugin/samples/static/plugins/sampleui/sample_preview.js new file mode 100644 index 0000000000..1cf763f38f --- /dev/null +++ b/src/backend/InvenTree/plugin/samples/static/plugins/sampleui/sample_preview.js @@ -0,0 +1,12 @@ +export function getTemplatePreview({ featureContext, pluginContext }) { + const { ref } = featureContext; + console.log("Template preview feature was called with", featureContext, pluginContext); + + featureContext.registerHandlers({ + updatePreview: (...args) => { + console.log("updatePreview", args); + } + }); + + ref.innerHTML = "

Hello world

"; + } diff --git a/src/backend/InvenTree/plugin/samples/static/plugins/sampleui/sample_template.js b/src/backend/InvenTree/plugin/samples/static/plugins/sampleui/sample_template.js new file mode 100644 index 0000000000..d43fbc4267 --- /dev/null +++ b/src/backend/InvenTree/plugin/samples/static/plugins/sampleui/sample_template.js @@ -0,0 +1,20 @@ +export function getTemplateEditor({ featureContext, pluginContext }) { + const { ref } = featureContext; + console.log("Template editor feature was called with", featureContext, pluginContext); + const t = document.createElement("textarea"); + t.id = 'sample-template-editor-textarea'; + t.rows = 25; + t.cols = 60; + + featureContext.registerHandlers({ + setCode: (code) => { + t.value = code; + }, + getCode: () => { + return t.value; + } + }); + + ref.innerHTML = ""; + ref.appendChild(t); +} diff --git a/src/backend/InvenTree/plugin/samples/static/plugins/sampleui/ui_settings.js b/src/backend/InvenTree/plugin/samples/static/plugins/sampleui/ui_settings.js new file mode 100644 index 0000000000..85364ec8ed --- /dev/null +++ b/src/backend/InvenTree/plugin/samples/static/plugins/sampleui/ui_settings.js @@ -0,0 +1,16 @@ + + +export function renderPluginSettings(target, data) { + + console.log("renderPluginSettings:", data); + + target.innerHTML = ` +

Custom Plugin Configuration Content

+

Custom plugin configuration UI elements can be rendered here.

+ +

The following context data was provided by the server:

+
    + ${Object.entries(data.context).map(([key, value]) => `
  • ${key}: ${value}
  • `).join('')} +
+ `; +} diff --git a/src/backend/InvenTree/plugin/serializers.py b/src/backend/InvenTree/plugin/serializers.py index 30fd5325ee..f0b12d6b06 100644 --- a/src/backend/InvenTree/plugin/serializers.py +++ b/src/backend/InvenTree/plugin/serializers.py @@ -67,6 +67,31 @@ class PluginConfigSerializer(serializers.ModelSerializer): mixins = serializers.DictField(read_only=True) +class PluginAdminDetailSerializer(serializers.ModelSerializer): + """Serializer for a PluginConfig with admin details.""" + + class Meta: + """Metaclass options for serializer.""" + + model = PluginConfig + + fields = ['source', 'context'] + + source = serializers.CharField( + allow_null=True, + label=_('Source File'), + help_text=_('Path to the source file for admin integration'), + source='admin_source', + ) + + context = serializers.JSONField( + allow_null=True, + label=_('Context'), + help_text=_('Optional context data for the admin integration'), + source='admin_context', + ) + + class PluginConfigInstallSerializer(serializers.Serializer): """Serializer for installing a new plugin.""" @@ -144,8 +169,6 @@ class PluginConfigInstallSerializer(serializers.Serializer): class PluginConfigEmptySerializer(serializers.Serializer): """Serializer for a PluginConfig.""" - ... - class PluginReloadSerializer(serializers.Serializer): """Serializer for remotely forcing plugin registry reload.""" diff --git a/src/backend/InvenTree/plugin/staticfiles.py b/src/backend/InvenTree/plugin/staticfiles.py index 0ece4bcc7e..2d4821f662 100644 --- a/src/backend/InvenTree/plugin/staticfiles.py +++ b/src/backend/InvenTree/plugin/staticfiles.py @@ -32,6 +32,8 @@ def clear_static_dir(path, recursive=True): # Finally, delete the directory itself to remove orphan folders when uninstalling a plugin staticfiles_storage.delete(path) + logger.info('Cleared static directory: %s', path) + def collect_plugins_static_files(): """Copy static files from all installed plugins into the static directory.""" @@ -39,10 +41,30 @@ def collect_plugins_static_files(): logger.info('Collecting static files for all installed plugins.') - for slug in registry.plugins.keys(): + for slug in registry.plugins: copy_plugin_static_files(slug, check_reload=False) +def clear_plugins_static_files(): + """Clear out static files for plugins which are no longer active.""" + installed_plugins = set(registry.plugins.keys()) + + path = 'plugins/' + + # Check that the directory actually exists + if not staticfiles_storage.exists(path): + return + + # Get all static files in the 'plugins' static directory + dirs, _files = staticfiles_storage.listdir('plugins/') + + for d in dirs: + # Check if the directory is a plugin directory + if d not in installed_plugins: + # Clear out the static files for this plugin + clear_static_dir(f'plugins/{d}/', recursive=True) + + def copy_plugin_static_files(slug, check_reload=True): """Copy static files for the specified plugin.""" if check_reload: @@ -93,3 +115,8 @@ def copy_plugin_static_files(slug, check_reload=True): copied += 1 logger.info("Copied %s static files for plugin '%s'.", copied, slug) + + +def clear_plugin_static_files(slug: str, recursive: bool = True): + """Clear static files for the specified plugin.""" + clear_static_dir(f'plugins/{slug}/', recursive=recursive) diff --git a/src/backend/InvenTree/plugin/templatetags/plugin_extras.py b/src/backend/InvenTree/plugin/templatetags/plugin_extras.py index c7d15e95a8..3b3cd7b6c4 100644 --- a/src/backend/InvenTree/plugin/templatetags/plugin_extras.py +++ b/src/backend/InvenTree/plugin/templatetags/plugin_extras.py @@ -95,7 +95,7 @@ def notification_list(context, *args, **kwargs): 'description': a.__doc__, 'name': a.__name__, } - for a in storage.liste + for a in storage.methods ] @@ -112,10 +112,7 @@ def plugin_static(context, file: str, **kwargs): """ plugin = context.get('plugin', None) - if plugin: - plugin = plugin.slug - else: - plugin = kwargs.get('plugin', None) + plugin = plugin.slug if plugin else kwargs.get('plugin') if not plugin: return file diff --git a/src/backend/InvenTree/plugin/test_api.py b/src/backend/InvenTree/plugin/test_api.py index d5cd8a1a4a..2b73bea416 100644 --- a/src/backend/InvenTree/plugin/test_api.py +++ b/src/backend/InvenTree/plugin/test_api.py @@ -35,7 +35,7 @@ class PluginDetailAPITest(PluginMixin, InvenTreeAPITestCase): 'packagename': 'invalid_package_name-asdads-asfd-asdf-asdf-asdf', }, expected_code=400, - max_query_time=30, + max_query_time=60, ) # valid - Pypi @@ -195,8 +195,7 @@ class PluginDetailAPITest(PluginMixin, InvenTreeAPITestCase): mixin_dict = plg.mixins() self.assertIn('base', mixin_dict) self.assertEqual( - mixin_dict, - {**mixin_dict, **{'base': {'key': 'base', 'human_name': 'base'}}}, + mixin_dict, {**mixin_dict, 'base': {'key': 'base', 'human_name': 'base'}} ) # check reload on save diff --git a/src/backend/InvenTree/report/api.py b/src/backend/InvenTree/report/api.py index 75959557f7..f32e7f7d8b 100644 --- a/src/backend/InvenTree/report/api.py +++ b/src/backend/InvenTree/report/api.py @@ -350,6 +350,15 @@ class ReportPrint(GenericAPIView): output = template.render(instance, request) + if template.attach_to_model: + # Attach the generated report to the model instance + data = output.get_document().write_pdf() + instance.create_attachment( + attachment=ContentFile(data, report_name), + comment=_('Report saved at time of printing'), + upload_user=request.user, + ) + # Provide generated report to any interested plugins for plugin in registry.with_mixin('report'): try: diff --git a/src/backend/InvenTree/report/apps.py b/src/backend/InvenTree/report/apps.py index c5c874f79e..1018a28835 100644 --- a/src/backend/InvenTree/report/apps.py +++ b/src/backend/InvenTree/report/apps.py @@ -125,12 +125,14 @@ class ReportConfig(AppConfig): # Read the existing template file data = template_file.open('r').read() - logger.info("Creating new label template: '%s'", template['name']) - - # Create a new entry - report.models.LabelTemplate.objects.create( - **template, template=ContentFile(data, os.path.basename(filename)) - ) + try: + # Create a new entry + report.models.LabelTemplate.objects.create( + **template, template=ContentFile(data, os.path.basename(filename)) + ) + logger.info("Creating new label template: '%s'", template['name']) + except Exception: + pass def create_default_reports(self): """Create default report templates.""" @@ -171,6 +173,13 @@ class ReportConfig(AppConfig): 'model_type': 'salesorder', 'filename_pattern': 'SalesOrder-{{ reference }}.pdf', }, + { + 'file': 'inventree_sales_order_shipment_report.html', + 'name': 'InvenTree Sales Order Shipment', + 'description': 'Sample sales order shipment report', + 'model_type': 'salesordershipment', + 'filename_pattern': 'SalesOrderShipment-{{ reference }}.pdf', + }, { 'file': 'inventree_return_order_report.html', 'name': 'InvenTree Return Order', @@ -212,9 +221,11 @@ class ReportConfig(AppConfig): # Read the existing template file data = template_file.open('r').read() - logger.info("Creating new report template: '%s'", template['name']) - # Create a new entry - report.models.ReportTemplate.objects.create( - **template, template=ContentFile(data, os.path.basename(filename)) - ) + try: + report.models.ReportTemplate.objects.create( + **template, template=ContentFile(data, os.path.basename(filename)) + ) + logger.info("Created new report template: '%s'", template['name']) + except Exception: + pass diff --git a/src/backend/InvenTree/report/migrations/0026_auto_20240422_1301.py b/src/backend/InvenTree/report/migrations/0026_auto_20240422_1301.py index 0e04b915db..5a37adf331 100644 --- a/src/backend/InvenTree/report/migrations/0026_auto_20240422_1301.py +++ b/src/backend/InvenTree/report/migrations/0026_auto_20240422_1301.py @@ -2,9 +2,9 @@ import os -from django.db import connection, migrations from django.core.files.base import ContentFile from django.core.files.storage import default_storage +from django.db import connection, migrations import InvenTree.ready @@ -48,7 +48,7 @@ def convert_legacy_labels(table_name, model_name, template_model): except Exception: # Table likely does not exist if not InvenTree.ready.isInTestMode(): - print(f"Legacy label table {table_name} not found - skipping migration") + print(f"\nLegacy label table {table_name} not found - skipping migration") return 0 rows = cursor.fetchall() diff --git a/src/backend/InvenTree/report/migrations/0028_labeltemplate_attach_to_model_and_more.py b/src/backend/InvenTree/report/migrations/0028_labeltemplate_attach_to_model_and_more.py new file mode 100644 index 0000000000..01fa44c8df --- /dev/null +++ b/src/backend/InvenTree/report/migrations/0028_labeltemplate_attach_to_model_and_more.py @@ -0,0 +1,23 @@ +# Generated by Django 4.2.15 on 2024-09-05 23:18 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('report', '0027_alter_labeltemplate_model_type_and_more'), + ] + + operations = [ + migrations.AddField( + model_name='labeltemplate', + name='attach_to_model', + field=models.BooleanField(default=False, help_text='Save report output as an attachment against linked model instance when printing', verbose_name='Attach to Model on Print'), + ), + migrations.AddField( + model_name='reporttemplate', + name='attach_to_model', + field=models.BooleanField(default=False, help_text='Save report output as an attachment against linked model instance when printing', verbose_name='Attach to Model on Print'), + ), + ] diff --git a/src/backend/InvenTree/report/models.py b/src/backend/InvenTree/report/models.py index 58cb2a0998..0972eb8703 100644 --- a/src/backend/InvenTree/report/models.py +++ b/src/backend/InvenTree/report/models.py @@ -163,6 +163,14 @@ class ReportTemplateBase(MetadataMixin, InvenTree.models.InvenTreeModel): editable=False, ) + attach_to_model = models.BooleanField( + default=False, + verbose_name=_('Attach to Model on Print'), + help_text=_( + 'Save report output as an attachment against linked model instance when printing' + ), + ) + def generate_filename(self, context, **kwargs): """Generate a filename for this report.""" template_string = Template(self.filename_pattern) diff --git a/src/backend/InvenTree/report/serializers.py b/src/backend/InvenTree/report/serializers.py index 1dadc7114f..1bf2986db6 100644 --- a/src/backend/InvenTree/report/serializers.py +++ b/src/backend/InvenTree/report/serializers.py @@ -42,6 +42,7 @@ class ReportSerializerBase(InvenTreeModelSerializer): 'filename_pattern', 'enabled', 'revision', + 'attach_to_model', ] template = InvenTreeAttachmentSerializerField(required=True) diff --git a/src/backend/InvenTree/report/templates/report/inventree_sales_order_shipment_report.html b/src/backend/InvenTree/report/templates/report/inventree_sales_order_shipment_report.html new file mode 100644 index 0000000000..98aab3e4ed --- /dev/null +++ b/src/backend/InvenTree/report/templates/report/inventree_sales_order_shipment_report.html @@ -0,0 +1,56 @@ +{% extends "report/inventree_order_report_base.html" %} + +{% load i18n %} +{% load report %} +{% load barcode %} +{% load inventree_extras %} +{% load markdownify %} + +{% block header_content %} + + + +
+

{% trans "Shipment" %} {{ prefix }}{{ reference }}

+ {% trans "Sales Order" %} {{ order.reference }}
+ {{ order.customer.name }} +
+ +{% endblock header_content %} + +{% block page_content %} + +

{% trans "Allocations" %}

+ + + + + + + + + + {% for allocation in allocations.all %} + + + + {% if allocation.item and allocation.item.serial and allocation.quantity == 1 %} + + {% elif allocation.item and allocation.item.batch %} + + {% else %} + + {% endif %} + + {% endfor %} + +
{% trans "Part" %}{% trans "Stock Item" %}
+
+ {% trans "Part image" %} +
+
+ {{ allocation.line.part.full_name }} +
+
{% trans "Serial Number" %}: {{ allocation.item.serial }}{% trans "Quantity" %}: {% decimal allocation.quantity %} - {% trans "Batch" %}: {{ allocation.item.batch }}{% trans "Quantity" %}: {% decimal allocation.quantity %}
+ +{% endblock page_content %} diff --git a/src/backend/InvenTree/report/templatetags/barcode.py b/src/backend/InvenTree/report/templatetags/barcode.py index 85aeed953f..8b32576f5e 100644 --- a/src/backend/InvenTree/report/templatetags/barcode.py +++ b/src/backend/InvenTree/report/templatetags/barcode.py @@ -1,6 +1,7 @@ """Template tags for rendering various barcodes.""" from django import template +from django.utils.safestring import mark_safe import barcode as python_barcode import qrcode.constants as ECL @@ -26,6 +27,23 @@ def image_data(img, fmt='PNG'): return report.helpers.encode_image_base64(img, fmt) +@register.simple_tag() +def clean_barcode(data): + """Return a 'cleaned' string for encoding into a barcode / qrcode. + + - This function runs the data through bleach, and removes any malicious HTML content. + - Used to render raw barcode data into the rendered HTML templates + """ + from InvenTree.helpers import strip_html_tags + + cleaned_date = strip_html_tags(data) + + # Remove back-tick character (prevent injection) + cleaned_date = cleaned_date.replace('`', '') + + return mark_safe(cleaned_date) + + @register.simple_tag() def qrcode(data, **kwargs): """Return a byte-encoded QR code image. diff --git a/src/backend/InvenTree/report/templatetags/report.py b/src/backend/InvenTree/report/templatetags/report.py index 39f664b870..3f27e27881 100644 --- a/src/backend/InvenTree/report/templatetags/report.py +++ b/src/backend/InvenTree/report/templatetags/report.py @@ -110,7 +110,7 @@ def uploaded_image( validate=True, **kwargs, ): - """Return a fully-qualified path for an 'uploaded' image. + """Return raw image data from an 'uploaded' image. Arguments: filename: The filename of the image relative to the MEDIA_ROOT directory @@ -124,7 +124,7 @@ def uploaded_image( rotate: Optional rotation to apply to the image Returns: - A fully qualified path to the image + Binary image data to be rendered directly in a tag Raises: FileNotFoundError if the file does not exist @@ -169,8 +169,8 @@ def uploaded_image( # A placeholder image showing that the image is missing img = Image.new('RGB', (64, 64), color='red') - width = kwargs.get('width', None) - height = kwargs.get('height', None) + width = kwargs.get('width') + height = kwargs.get('height') if width is not None: try: @@ -190,16 +190,16 @@ def uploaded_image( elif width is not None: # Resize the image, width only wpercent = width / float(img.size[0]) - hsize = int((float(img.size[1]) * float(wpercent))) + hsize = int(float(img.size[1]) * float(wpercent)) img = img.resize((width, hsize)) elif height is not None: # Resize the image, height only hpercent = height / float(img.size[1]) - wsize = int((float(img.size[0]) * float(hpercent))) + wsize = int(float(img.size[0]) * float(hpercent)) img = img.resize((wsize, height)) # Optionally rotate the image - if rotate := kwargs.get('rotate', None): + if rotate := kwargs.get('rotate'): try: rotate = int(rotate) img = img.rotate(rotate) @@ -417,7 +417,7 @@ def format_number(number, **kwargs): # Normalize the number (remove trailing zeroes) number = number.normalize() - decimals = kwargs.get('decimal_places', None) + decimals = kwargs.get('decimal_places') if decimals is not None: try: @@ -431,7 +431,7 @@ def format_number(number, **kwargs): value = format(value, 'f') value = str(value) - leading = kwargs.get('leading', None) + leading = kwargs.get('leading') if leading is not None: try: @@ -444,35 +444,35 @@ def format_number(number, **kwargs): @register.simple_tag -def format_datetime(datetime, timezone=None, format=None): +def format_datetime(datetime, timezone=None, fmt=None): """Format a datetime object for display. Arguments: datetime: The datetime object to format timezone: The timezone to use for the date (defaults to the server timezone) - format: The format string to use (defaults to ISO formatting) + fmt: The format string to use (defaults to ISO formatting) """ datetime = InvenTree.helpers.to_local_time(datetime, timezone) - if format: - return datetime.strftime(format) + if fmt: + return datetime.strftime(fmt) else: return datetime.isoformat() @register.simple_tag -def format_date(date, timezone=None, format=None): +def format_date(date, timezone=None, fmt=None): """Format a date object for display. Arguments: date: The date to format timezone: The timezone to use for the date (defaults to the server timezone) - format: The format string to use (defaults to ISO formatting) + fmt: The format string to use (defaults to ISO formatting) """ date = InvenTree.helpers.to_local_time(date, timezone).date() - if format: - return date.strftime(format) + if fmt: + return date.strftime(fmt) else: return date.isoformat() diff --git a/src/backend/InvenTree/report/tests.py b/src/backend/InvenTree/report/tests.py index e534a3ab39..ce3ea556fc 100644 --- a/src/backend/InvenTree/report/tests.py +++ b/src/backend/InvenTree/report/tests.py @@ -16,8 +16,9 @@ from PIL import Image import report.models as report_models from build.models import Build from common.models import Attachment, InvenTreeSetting -from InvenTree.unit_test import InvenTreeAPITestCase +from InvenTree.unit_test import AdminTestCase, InvenTreeAPITestCase from order.models import ReturnOrder, SalesOrder +from part.models import Part from plugin.registry import registry from report.models import LabelTemplate, ReportTemplate from report.templatetags import barcode as barcode_tags @@ -305,6 +306,16 @@ class ReportTest(InvenTreeAPITestCase): response = self.get(url, {'enabled': False}) self.assertEqual(len(response.data), n) + # Filter by items + part_pk = Part.objects.first().pk + report = ReportTemplate.objects.filter(model_type='part').first() + return + # TODO @matmair re-enable this (in GitHub Actions) flaky test + response = self.get(url, {'model_type': 'part', 'items': part_pk}) + self.assertEqual(len(response.data), 1) + self.assertEqual(response.data[0]['pk'], report.pk) + self.assertEqual(response.data[0]['name'], report.name) + def test_create_endpoint(self): """Test that creating a new report works for each report.""" url = reverse('api-report-template-list') @@ -533,6 +544,22 @@ class PrintTestMixins: max_query_count=500 * len(qs), ) + # Test with wrong dimensions + if not hasattr(template, 'width'): + return + + org_width = template.width + template.width = 0 + template.save() + response = self.post( + url, + {'template': template.pk, 'plugin': plugin.pk, 'items': [qs[0].pk]}, + expected_code=400, + ) + self.assertEqual(str(response.data['template'][0]), 'Invalid label dimensions') + template.width = org_width + template.save() + class TestReportTest(PrintTestMixins, ReportTest): """Unit testing class for the stock item TestReport model.""" @@ -555,8 +582,16 @@ class TestReportTest(PrintTestMixins, ReportTest): template = ReportTemplate.objects.filter( enabled=True, model_type='stockitem' ).first() + self.assertIsNotNone(template) + # Ensure that the 'attach_to_model' attribute is initially False + template.attach_to_model = False + template.save() + template.refresh_from_db() + + self.assertFalse(template.attach_to_model) + url = reverse(self.print_url) # Try to print without providing a valid StockItem @@ -568,35 +603,36 @@ class TestReportTest(PrintTestMixins, ReportTest): # Now print with a valid StockItem item = StockItem.objects.first() + n = item.attachments.count() + response = self.post( url, {'template': template.pk, 'items': [item.pk]}, expected_code=201 ) # There should be a link to the generated PDF - self.assertEqual(response.data['output'].startswith('/media/report/'), True) + self.assertTrue(response.data['output'].startswith('/media/report/')) + self.assertTrue(response.data['output'].endswith('.pdf')) # By default, this should *not* have created an attachment against this stockitem + self.assertEqual(n, item.attachments.count()) self.assertFalse( Attachment.objects.filter(model_id=item.pk, model_type='stockitem').exists() ) - return - # TODO @matmair - Re-add this test after https://github.com/inventree/InvenTree/pull/7074/files#r1600694356 is resolved - # Change the setting, now the test report should be attached automatically - InvenTreeSetting.set_setting('REPORT_ATTACH_TEST_REPORT', True, None) + # Now try again, but attach the generated PDF to the StockItem + template.attach_to_model = True + template.save() response = self.post( url, {'template': template.pk, 'items': [item.pk]}, expected_code=201 ) - # There should be a link to the generated PDF - self.assertEqual(response.data['output'].startswith('/media/report/'), True) + # A new attachment should have been created + self.assertEqual(n + 1, item.attachments.count()) + attachment = item.attachments.order_by('-pk').first() - # Check that a report has been uploaded - attachment = Attachment.objects.filter( - model_id=item.pk, model_type='stockitem' - ).first() - self.assertIsNotNone(attachment) + # The attachment should be a PDF + self.assertTrue(attachment.attachment.name.endswith('.pdf')) def test_mdl_build(self): """Test the Build model.""" @@ -609,3 +645,11 @@ class TestReportTest(PrintTestMixins, ReportTest): def test_mdl_salesorder(self): """Test the SalesOrder model.""" self.run_print_test(SalesOrder, 'salesorder', label=False) + + +class AdminTest(AdminTestCase): + """Tests for the admin interface integration.""" + + def test_admin(self): + """Test the admin URL.""" + self.helper(model=ReportTemplate) diff --git a/src/backend/InvenTree/script/translation_stats.py b/src/backend/InvenTree/script/translation_stats.py index f7a848f042..c459b1eaf1 100644 --- a/src/backend/InvenTree/script/translation_stats.py +++ b/src/backend/InvenTree/script/translation_stats.py @@ -7,7 +7,7 @@ import sys def calculate_coverage(filename): """Calculate translation coverage for a .po file.""" - with open(filename, 'r') as f: + with open(filename, encoding='utf-8') as f: lines = f.readlines() lines_count = 0 @@ -19,7 +19,7 @@ def calculate_coverage(filename): lines_count += 1 elif line.startswith('msgstr'): - if line.startswith('msgstr ""') or line.startswith("msgstr ''"): + if line.startswith(('msgstr ""', "msgstr ''")): lines_uncovered += 1 else: lines_covered += 1 @@ -53,16 +53,13 @@ if __name__ == '__main__': percentages = [] - for locale in locales.keys(): + for locale in locales: locale_file = locales[locale] stats = calculate_coverage(locale_file) (total, covered, uncovered) = stats - if total > 0: - percentage = int(covered / total * 100) - else: - percentage = 0 + percentage = int(covered / total * 100) if total > 0 else 0 if verbose: print(f"| {locale.ljust(4, ' ')} : {str(percentage).rjust(4, ' ')}% |") @@ -75,12 +72,9 @@ if __name__ == '__main__': print('-' * 16) # write locale stats - with open(STAT_FILE, 'w') as target: + with open(STAT_FILE, 'w', encoding='utf-8') as target: json.dump(locales_perc, target) - if len(percentages) > 0: - avg = int(sum(percentages) / len(percentages)) - else: - avg = 0 + avg = int(sum(percentages) / len(percentages)) if len(percentages) > 0 else 0 print(f'InvenTree translation coverage: {avg}%') diff --git a/src/backend/InvenTree/script/update_icons.py b/src/backend/InvenTree/script/update_icons.py index 1d0dfb2a57..ea24479456 100644 --- a/src/backend/InvenTree/script/update_icons.py +++ b/src/backend/InvenTree/script/update_icons.py @@ -45,7 +45,8 @@ if __name__ == '__main__': print('Generating icon list...') with open( - os.path.join(TMP_FOLDER, 'node_modules', '@tabler', 'icons', 'icons.json'), 'r' + os.path.join(TMP_FOLDER, 'node_modules', '@tabler', 'icons', 'icons.json'), + encoding='utf-8', ) as f: icons = json.load(f) @@ -60,7 +61,7 @@ if __name__ == '__main__': }, } - with open(os.path.join(STATIC_FOLDER, 'icons.json'), 'w') as f: + with open(os.path.join(STATIC_FOLDER, 'icons.json'), 'w', encoding='utf-8') as f: json.dump(res, f, separators=(',', ':')) print('Cleaning up...') diff --git a/src/backend/InvenTree/stock/api.py b/src/backend/InvenTree/stock/api.py index 9fbf257b71..5d75de9f8c 100644 --- a/src/backend/InvenTree/stock/api.py +++ b/src/backend/InvenTree/stock/api.py @@ -144,7 +144,7 @@ class StockDetail(RetrieveUpdateDestroyAPI): params.get('supplier_part_detail', True) ) kwargs['path_detail'] = str2bool(params.get('path_detail', False)) - except AttributeError: + except AttributeError: # pragma: no cover pass return self.serializer_class(*args, **kwargs) @@ -164,7 +164,7 @@ class StockItemContextMixin: try: context['item'] = StockItem.objects.get(pk=self.kwargs.get('pk', None)) - except Exception: + except Exception: # pragma: no cover pass return context @@ -354,10 +354,9 @@ class StockLocationFilter(rest_filters.FilterSet): top_level = str2bool(self.data.get('top_level', None)) # If the parent is *not* provided, update the results based on the "cascade" value - if not parent or top_level: - if not value: - # If "cascade" is False, only return top-level location - queryset = queryset.filter(parent=None) + if (not parent or top_level) and not value: + # If "cascade" is False, only return top-level location + queryset = queryset.filter(parent=None) return queryset @@ -527,7 +526,8 @@ class StockFilter(rest_filters.FilterSet): def filter_manufacturer(self, queryset, name, company): """Filter by manufacturer.""" return queryset.filter( - Q(is_manufacturer=True) & Q(manufacturer_part__manufacturer=company) + Q(supplier_part__manufacturer_part__manufacturer__is_manufacturer=True) + & Q(supplier_part__manufacturer_part__manufacturer=company) ) supplier = rest_filters.ModelChoiceFilter( @@ -892,7 +892,7 @@ class StockList(DataExportViewMixin, ListCreateDestroyAPIView): 'tests', ]: kwargs[key] = str2bool(params.get(key, False)) - except AttributeError: + except AttributeError: # pragma: no cover pass kwargs['context'] = self.get_serializer_context() @@ -927,17 +927,14 @@ class StockList(DataExportViewMixin, ListCreateDestroyAPIView): raise ValidationError({'quantity': _('Quantity is required')}) try: - Part.objects.prefetch_related(None) part = Part.objects.get(pk=data.get('part', None)) except (ValueError, Part.DoesNotExist): raise ValidationError({'part': _('Valid part must be supplied')}) - # Set default location (if not provided) - if 'location' not in data: - location = part.get_default_location() - - if location: - data['location'] = location.pk + location = data.get('location', None) + # Override location if not specified + if location is None and part.default_location: + data['location'] = part.default_location.pk expiry_date = data.get('expiry_date', None) @@ -951,15 +948,13 @@ class StockList(DataExportViewMixin, ListCreateDestroyAPIView): serials = None # Check if a set of serial numbers was provided - serial_numbers = data.get('serial_numbers', '') + serial_numbers = data.pop('serial_numbers', '') # Check if the supplier_part has a package size defined, which is not 1 - if 'supplier_part' in data and data['supplier_part'] is not None: + if supplier_part_id := data.get('supplier_part', None): try: - supplier_part = SupplierPart.objects.get( - pk=data.get('supplier_part', None) - ) - except (ValueError, SupplierPart.DoesNotExist): + supplier_part = SupplierPart.objects.get(pk=supplier_part_id) + except Exception: raise ValidationError({ 'supplier_part': _('The given supplier part does not exist') }) @@ -974,28 +969,24 @@ class StockList(DataExportViewMixin, ListCreateDestroyAPIView): 'The supplier part has a pack size defined, but flag use_pack_size not set' ) }) - else: - if bool(data.get('use_pack_size')): - quantity = data['quantity'] = supplier_part.base_quantity( - quantity - ) + elif bool(data.get('use_pack_size')): + quantity = data['quantity'] = supplier_part.base_quantity(quantity) - # Divide purchase price by pack size, to save correct price per stock item - if ( - data['purchase_price'] - and supplier_part.pack_quantity_native - ): - try: - data['purchase_price'] = float( - data['purchase_price'] - ) / float(supplier_part.pack_quantity_native) - except ValueError: - pass + # Divide purchase price by pack size, to save correct price per stock item + if ( + data.get('purchase_price') + and supplier_part.pack_quantity_native + ): + try: + data['purchase_price'] = float( + data['purchase_price'] + ) / float(supplier_part.pack_quantity_native) + except ValueError: # pragma: no cover + pass # Now remove the flag from data, so that it doesn't interfere with saving # Do this regardless of results above - if 'use_pack_size' in data: - data.pop('use_pack_size') + data.pop('use_pack_size', None) # Assign serial numbers for a trackable part if serial_numbers: @@ -1009,7 +1000,7 @@ class StockList(DataExportViewMixin, ListCreateDestroyAPIView): # If serial numbers are specified, check that they match! try: serials = extract_serial_numbers( - serial_numbers, quantity, part.get_latest_serial_number() + serial_numbers, quantity, part.get_latest_serial_number(), part=part ) # Determine if any of the specified serial numbers are invalid @@ -1017,22 +1008,20 @@ class StockList(DataExportViewMixin, ListCreateDestroyAPIView): invalid = [] errors = [] - for serial in serials: - try: - part.validate_serial_number(serial, raise_error=True) - except DjangoValidationError as exc: - # Catch raised error to extract specific error information - invalid.append(serial) + try: + invalid = part.find_conflicting_serial_numbers(serials) + except DjangoValidationError as exc: + errors.append(exc.message) - if exc.message not in errors: - errors.append(exc.message) - - if len(errors) > 0: + if len(invalid) > 0: msg = _('The following serial numbers already exist or are invalid') msg += ' : ' msg += ','.join([str(e) for e in invalid]) - raise ValidationError({'serial_numbers': errors + [msg]}) + errors.append(msg) + + if len(errors) > 0: + raise ValidationError({'serial_numbers': errors}) except DjangoValidationError as e: raise ValidationError({ @@ -1048,35 +1037,47 @@ class StockList(DataExportViewMixin, ListCreateDestroyAPIView): serializer = self.get_serializer(data=data) serializer.is_valid(raise_exception=True) + # Extract location information + location = serializer.validated_data.get('location', None) + with transaction.atomic(): - # Create an initial StockItem object - item = serializer.save() - if serials: - # Assign the first serial number to the "master" item - item.serial = serials[0] + # Create multiple serialized StockItem objects + items = StockItem._create_serial_numbers( + serials, **serializer.validated_data + ) - # Save the item (with user information) - item.save(user=user) + # Next, bulk-create stock tracking entries for the newly created items + tracking = [] - if serials: - for serial in serials[1:]: - # Create a duplicate stock item with the next serial number - item.pk = None - item.serial = serial + for item in items: + if entry := item.add_tracking_entry( + StockHistoryCode.CREATED, + user, + deltas={'status': item.status}, + location=location, + quantity=float(item.quantity), + commit=False, + ): + tracking.append(entry) - item.save(user=user) + StockItemTracking.objects.bulk_create(tracking) response_data = {'quantity': quantity, 'serial_numbers': serials} else: + # Create a single StockItem object + # Note: This automatically creates a tracking entry + item = serializer.save() + item.save(user=user) + response_data = serializer.data - return Response( - response_data, - status=status.HTTP_201_CREATED, - headers=self.get_success_headers(serializer.data), - ) + return Response( + response_data, + status=status.HTTP_201_CREATED, + headers=self.get_success_headers(serializer.data), + ) def get_queryset(self, *args, **kwargs): """Annotate queryset before returning.""" @@ -1103,7 +1104,7 @@ class StockList(DataExportViewMixin, ListCreateDestroyAPIView): pk__in=[it.pk for it in item.get_descendants(include_self=True)] ) - except (ValueError, StockItem.DoesNotExist): + except (ValueError, StockItem.DoesNotExist): # pragma: no cover pass # Exclude StockItems which are already allocated to a particular SalesOrder @@ -1121,7 +1122,7 @@ class StockList(DataExportViewMixin, ListCreateDestroyAPIView): # Exclude any stock item which is already allocated to the sales order queryset = queryset.exclude(pk__in=[a.item.pk for a in allocations]) - except (ValueError, SalesOrder.DoesNotExist): + except (ValueError, SalesOrder.DoesNotExist): # pragma: no cover pass # Does the client wish to filter by the Part ID? @@ -1167,7 +1168,7 @@ class StockList(DataExportViewMixin, ListCreateDestroyAPIView): else: queryset = queryset.filter(location=loc_id) - except (ValueError, StockLocation.DoesNotExist): + except (ValueError, StockLocation.DoesNotExist): # pragma: no cover pass return queryset @@ -1177,6 +1178,7 @@ class StockList(DataExportViewMixin, ListCreateDestroyAPIView): ordering_field_aliases = { 'location': 'location__pathstring', 'SKU': 'supplier_part__SKU', + 'MPN': 'supplier_part__manufacturer_part__MPN', 'stock': ['quantity', 'serial_int', 'serial'], } @@ -1193,6 +1195,7 @@ class StockList(DataExportViewMixin, ListCreateDestroyAPIView): 'stock', 'status', 'SKU', + 'MPN', ] ordering = ['part__name', 'quantity', 'location'] @@ -1230,7 +1233,7 @@ class StockItemTestResultMixin: kwargs['template_detail'] = str2bool( self.request.query_params.get('template_detail', False) ) - except Exception: + except Exception: # pragma: no cover pass kwargs['context'] = self.get_serializer_context() @@ -1241,8 +1244,6 @@ class StockItemTestResultMixin: class StockItemTestResultDetail(StockItemTestResultMixin, RetrieveUpdateDestroyAPI): """Detail endpoint for StockItemTestResult.""" - pass - class StockItemTestResultFilter(rest_filters.FilterSet): """API filter for the StockItemTestResult list.""" @@ -1372,7 +1373,7 @@ class StockItemTestResultList(StockItemTestResultMixin, ListCreateDestroyAPIView queryset = queryset.filter(stock_item__in=items) - except (ValueError, StockItem.DoesNotExist): + except (ValueError, StockItem.DoesNotExist): # pragma: no cover pass return queryset @@ -1414,14 +1415,14 @@ class StockTrackingList(DataExportViewMixin, ListAPI): kwargs['item_detail'] = str2bool( self.request.query_params.get('item_detail', False) ) - except Exception: + except Exception: # pragma: no cover pass try: kwargs['user_detail'] = str2bool( self.request.query_params.get('user_detail', False) ) - except Exception: + except Exception: # pragma: no cover pass kwargs['context'] = self.get_serializer_context() @@ -1460,17 +1461,17 @@ class StockTrackingList(DataExportViewMixin, ListAPI): delta_models = self.get_delta_model_map() # Construct a set of related models we need to lookup for later - related_model_lookups = {key: set() for key in delta_models.keys()} + related_model_lookups = {key: set() for key in delta_models} # Run a first pass through the data to determine which related models we need to lookup for item in data: deltas = item['deltas'] or {} - for key in delta_models.keys(): + for key in delta_models: if key in deltas: related_model_lookups[key].add(deltas[key]) - for key in delta_models.keys(): + for key in delta_models: model, serializer = delta_models[key] # Fetch all related models in one go diff --git a/src/backend/InvenTree/stock/fixtures/location.yaml b/src/backend/InvenTree/stock/fixtures/location.yaml index 0cbcead07e..9269fe91b4 100644 --- a/src/backend/InvenTree/stock/fixtures/location.yaml +++ b/src/backend/InvenTree/stock/fixtures/location.yaml @@ -41,6 +41,7 @@ tree_id: 2 lft: 1 rght: 8 + external: True - model: stock.stocklocation pk: 5 diff --git a/src/backend/InvenTree/stock/generators.py b/src/backend/InvenTree/stock/generators.py index 37accce6e7..f8487a0db6 100644 --- a/src/backend/InvenTree/stock/generators.py +++ b/src/backend/InvenTree/stock/generators.py @@ -99,7 +99,7 @@ def generate_serial_number(part=None, quantity=1, **kwargs) -> str: # Generate the required quantity of serial numbers # Note that this call gets passed through to the plugin system while quantity > 0: - sn = InvenTree.helpers.increment_serial_number(sn) + sn = InvenTree.helpers.increment_serial_number(sn, part=part) # Exit if an empty or duplicated serial is generated if not sn or sn in serials: diff --git a/src/backend/InvenTree/stock/migrations/0065_auto_20210701_0509.py b/src/backend/InvenTree/stock/migrations/0065_auto_20210701_0509.py index 5aedb7c6da..f8718ac885 100644 --- a/src/backend/InvenTree/stock/migrations/0065_auto_20210701_0509.py +++ b/src/backend/InvenTree/stock/migrations/0065_auto_20210701_0509.py @@ -4,22 +4,6 @@ import InvenTree.fields from django.db import migrations import djmoney.models.fields -from django.db.migrations.recorder import MigrationRecorder - - -def show_migrations(apps, schema_editor): - """Show the latest migrations from each app""" - - for app in apps.get_app_configs(): - - label = app.label - - migrations = MigrationRecorder.Migration.objects.filter(app=app).order_by('-applied')[:5] - - print(f"{label} migrations:") - for m in migrations: - print(f" - {m.name}") - class Migration(migrations.Migration): @@ -30,10 +14,6 @@ class Migration(migrations.Migration): operations = [] xoperations = [ - migrations.RunPython( - code=show_migrations, - reverse_code=migrations.RunPython.noop - ), migrations.AlterField( model_name='stockitem', name='purchase_price', diff --git a/src/backend/InvenTree/stock/migrations/0108_auto_20240219_0252.py b/src/backend/InvenTree/stock/migrations/0108_auto_20240219_0252.py index 60217577c0..185eeb0f2a 100644 --- a/src/backend/InvenTree/stock/migrations/0108_auto_20240219_0252.py +++ b/src/backend/InvenTree/stock/migrations/0108_auto_20240219_0252.py @@ -43,7 +43,7 @@ def update_templates(apps, schema_editor): # For each bad result, attempt to find a matching template # Here, a matching template must point to a part *above* the part in the tree - # Annotate the queryset with a "mathching template" + # Annotate the queryset with a "matching template" template_query = PartTestTemplate.objects.filter( part__tree_id=OuterRef('stock_item__part__tree_id'), diff --git a/src/backend/InvenTree/stock/models.py b/src/backend/InvenTree/stock/models.py index e0482795d5..148c86057f 100644 --- a/src/backend/InvenTree/stock/models.py +++ b/src/backend/InvenTree/stock/models.py @@ -12,7 +12,7 @@ from django.contrib.auth.models import User from django.core.exceptions import ValidationError from django.core.validators import MinValueValidator from django.db import models, transaction -from django.db.models import Q, Sum +from django.db.models import Q, QuerySet, Sum from django.db.models.functions import Coalesce from django.db.models.signals import post_delete, post_save, pre_delete from django.db.utils import IntegrityError, OperationalError @@ -33,6 +33,7 @@ import InvenTree.ready import InvenTree.tasks import report.mixins import report.models +import stock.tasks from build import models as BuildModels from common.icons import validate_icon from common.settings import get_global_setting @@ -47,7 +48,7 @@ from InvenTree.status_codes import ( ) from part import models as PartModels from plugin.events import trigger_event -from stock import models as StockModels +from stock import models as StockModels # noqa: PLW0406 from stock.generators import generate_batch_code from users.models import Owner @@ -441,6 +442,7 @@ class StockItem( tags = TaggableManager(blank=True) # A Query filter which will be re-used in multiple places to determine if a StockItem is actually "in stock" + # See also: StockItem.in_stock() method IN_STOCK_FILTER = Q( quantity__gt=0, sales_order=None, @@ -458,6 +460,97 @@ class StockItem( & Q(expiry_date__lt=InvenTree.helpers.current_date()) ) + @classmethod + def _create_serial_numbers(cls, serials: list, **kwargs) -> QuerySet: + """Create multiple stock items with the provided serial numbers. + + Arguments: + serials: List of serial numbers to create + **kwargs: Additional keyword arguments to pass to the StockItem creation function + + Returns: + QuerySet: The created StockItem objects + + raises: + ValidationError: If any of the provided serial numbers are invalid + + This method uses bulk_create to create multiple StockItem objects in a single query, + which is much more efficient than creating them one-by-one. + + However, it does not perform any validation checks on the provided serial numbers, + and also does not generate any "stock tracking entries". + + Note: This is an 'internal' function and should not be used by external code / plugins. + """ + # Ensure the primary-key field is not provided + kwargs.pop('id', None) + kwargs.pop('pk', None) + + part = kwargs.get('part') + + if not part: + raise ValidationError({'part': _('Part must be specified')}) + + # Create a list of StockItem objects + items = [] + + # Provide some default field values + data = {**kwargs} + + # Remove some extraneous keys which cause issues + for key in ['parent_id', 'part_id', 'build_id']: + data.pop(key, None) + + data['parent'] = kwargs.pop('parent', None) + data['tree_id'] = kwargs.pop('tree_id', 0) + data['level'] = kwargs.pop('level', 0) + data['rght'] = kwargs.pop('rght', 0) + data['lft'] = kwargs.pop('lft', 0) + + # Force single quantity for each item + data['quantity'] = 1 + + for serial in serials: + data['serial'] = serial + data['serial_int'] = StockItem.convert_serial_to_int(serial) + + items.append(StockItem(**data)) + + # Create the StockItem objects in bulk + StockItem.objects.bulk_create(items) + + # Return the newly created StockItem objects + return StockItem.objects.filter(part=part, serial__in=serials) + + @staticmethod + def convert_serial_to_int(serial: str) -> int: + """Convert the provided serial number to an integer value. + + This function hooks into the plugin system to allow for custom serial number conversion. + """ + from plugin.registry import registry + + # First, let any plugins convert this serial number to an integer value + # If a non-null value is returned (by any plugin) we will use that + + for plugin in registry.with_mixin('validation'): + serial_int = plugin.convert_serial_to_int(serial) + + # Save the first returned result + if serial_int is not None: + # Ensure that it is clipped within a range allowed in the database schema + clip = 0x7FFFFFFF + serial_int = abs(serial_int) + serial_int = min(serial_int, clip) + # Return the first non-null value + return serial_int + + # None of the plugins provided a valid integer value + if serial not in [None, '']: + return InvenTree.helpers.extract_int(serial) + else: + return None + def update_serial_number(self): """Update the 'serial_int' field, to be an integer representation of the serial number. @@ -465,36 +558,15 @@ class StockItem( """ serial = str(getattr(self, 'serial', '')).strip() - from plugin.registry import registry + serial_int = self.convert_serial_to_int(serial) - # First, let any plugins convert this serial number to an integer value - # If a non-null value is returned (by any plugin) we will use that + try: + serial_int = int(serial_int) - serial_int = None - - for plugin in registry.with_mixin('validation'): - serial_int = plugin.convert_serial_to_int(serial) - - if serial_int is not None: - # Save the first returned result - # Ensure that it is clipped within a range allowed in the database schema - clip = 0x7FFFFFFF - - serial_int = abs(serial_int) - - if serial_int > clip: - serial_int = clip - - self.serial_int = serial_int - return - - # If we get to this point, none of the available plugins provided an integer value - - # Default value if we cannot convert to an integer - serial_int = 0 - - if serial not in [None, '']: - serial_int = InvenTree.helpers.extract_int(serial) + if serial_int <= 0: + serial_int = 0 + except (ValueError, TypeError): + serial_int = 0 self.serial_int = serial_int @@ -589,7 +661,7 @@ class StockItem( except (ValueError, StockItem.DoesNotExist): pass - super(StockItem, self).save(*args, **kwargs) + super().save(*args, **kwargs) # If user information is provided, and no existing note exists, create one! if user and self.tracking_info.count() == 0: @@ -624,7 +696,7 @@ class StockItem( If the StockItem is serialized, the same serial number. cannot exist for the same part (or part tree). """ - super(StockItem, self).validate_unique(exclude) + super().validate_unique(exclude) # If the serial number is set, make sure it is not a duplicate if self.serial: @@ -1166,10 +1238,12 @@ class StockItem( location=location, ) + # Clear out allocation information for the stock item self.customer = None self.belongs_to = None self.sales_order = None self.location = location + self.clearAllocations() trigger_event('stockitem.returnedfromcustomer', id=self.id) @@ -1189,14 +1263,19 @@ class StockItem( if self.allocations.count() > 0: return True - if self.sales_order_allocations.count() > 0: - return True + return self.sales_order_allocations.count() > 0 - return False + def build_allocation_count(self, **kwargs): + """Return the total quantity allocated to builds, with optional filters.""" + query = self.allocations.all() - def build_allocation_count(self): - """Return the total quantity allocated to builds.""" - query = self.allocations.aggregate(q=Coalesce(Sum('quantity'), Decimal(0))) + if filter_allocations := kwargs.get('filter_allocations'): + query = query.filter(**filter_allocations) + + if exclude_allocations := kwargs.get('exclude_allocations'): + query = query.exclude(**exclude_allocations) + + query = query.aggregate(q=Coalesce(Sum('quantity'), Decimal(0))) total = query['q'] @@ -1213,10 +1292,10 @@ class StockItem( """ query = self.sales_order_allocations.all() - if filter_allocations := kwargs.get('filter_allocations', None): + if filter_allocations := kwargs.get('filter_allocations'): query = query.filter(**filter_allocations) - if exclude_allocations := kwargs.get('exclude_allocations', None): + if exclude_allocations := kwargs.get('exclude_allocations'): query = query.exclude(**exclude_allocations) if active is True: @@ -1266,10 +1345,7 @@ class StockItem( if self.installed_item_count() > 0: return False - if self.sales_order is not None: - return False - - return True + return not self.sales_order is not None def get_installed_items(self, cascade: bool = False) -> set[StockItem]: """Return all stock items which are *installed* in this one! @@ -1403,16 +1479,20 @@ class StockItem( return self.children.count() @property - def in_stock(self): + def in_stock(self) -> bool: """Returns True if this item is in stock. - See also: IN_STOCK_FILTER + See also: StockItem.IN_STOCK_FILTER for the db optimized version of this check. """ - query = StockItem.objects.filter(pk=self.pk) - - query = query.filter(StockItem.IN_STOCK_FILTER) - - return query.exists() + return all([ + self.quantity > 0, # Quantity must be greater than zero + self.sales_order is None, # Not assigned to a SalesOrder + self.belongs_to is None, # Not installed inside another StockItem + self.customer is None, # Not assigned to a customer + self.consumed_by is None, # Not consumed by a build + not self.is_building, # Not part of an active build + self.status in StockStatusGroups.AVAILABLE_CODES, # Status is "available" + ]) @property def can_adjust_location(self): @@ -1428,10 +1508,7 @@ class StockItem( if self.belongs_to is not None: return False - if self.sales_order is not None: - return False - - return True + return not self.sales_order is not None @property def tracking_info_count(self): @@ -1447,8 +1524,9 @@ class StockItem( self, entry_type: int, user: User, - deltas: dict = None, + deltas: dict | None = None, notes: str = '', + commit: bool = True, **kwargs, ): """Add a history tracking entry for this StockItem. @@ -1458,6 +1536,9 @@ class StockItem( user (User): The user performing this action deltas (dict, optional): A map of the changes made to the model. Defaults to None. notes (str, optional): URL associated with this tracking entry. Defaults to ''. + + Returns: + StockItemTracking: The created tracking entry """ if deltas is None: deltas = {} @@ -1468,21 +1549,21 @@ class StockItem( and len(deltas) == 0 and not notes ): - return + return None # Has a location been specified? - location = kwargs.get('location', None) + location = kwargs.get('location') if location: deltas['location'] = location.id # Quantity specified? - quantity = kwargs.get('quantity', None) + quantity = kwargs.get('quantity') if quantity: deltas['quantity'] = float(quantity) - entry = StockItemTracking.objects.create( + entry = StockItemTracking( item=self, tracking_type=entry_type.value, user=user, @@ -1491,7 +1572,10 @@ class StockItem( deltas=deltas, ) - entry.save() + if commit: + entry.save() + + return entry @transaction.atomic def serializeStock(self, quantity, serials, user, notes='', location=None): @@ -1533,7 +1617,7 @@ class StockItem( if type(serials) not in [list, tuple]: raise ValidationError({ - 'serial_numbers': _('Serial numbers must be a list of integers') + 'serial_numbers': _('Serial numbers must be provided as a list') }) if quantity != len(serials): @@ -1545,43 +1629,60 @@ class StockItem( existing = self.part.find_conflicting_serial_numbers(serials) if len(existing) > 0: - exists = ','.join([str(x) for x in existing]) - msg = _('Serial numbers already exist') + f': {exists}' + msg = _('The following serial numbers already exist or are invalid') + msg += ' : ' + msg += ','.join([str(x) for x in existing]) raise ValidationError({'serial_numbers': msg}) - # Create a new stock item for each unique serial number - for serial in serials: - # Create a copy of this StockItem - new_item = StockItem.objects.get(pk=self.pk) - new_item.quantity = 1 - new_item.serial = serial - new_item.pk = None - new_item.parent = self + # Serialize this StockItem + data = dict(StockItem.objects.filter(pk=self.pk).values()[0]) - if location: - new_item.location = location + if location: + data['location'] = location - # The item already has a transaction history, don't create a new note - new_item.save(user=user, notes=notes) + data['part'] = self.part + data['parent'] = self + data['tree_id'] = self.tree_id - # Copy entire transaction history - new_item.copyHistoryFrom(self) + # Generate a new serial number for each item + items = StockItem._create_serial_numbers(serials, **data) - # Copy test result history - new_item.copyTestResultsFrom(self) + # Create a new tracking entry for each item + history_items = [] - # Create a new stock tracking item - new_item.add_tracking_entry( + for item in items: + if entry := item.add_tracking_entry( StockHistoryCode.ASSIGNED_SERIAL, user, notes=notes, - deltas={'serial': serial}, + deltas={'serial': item.serial}, location=location, - ) + commit=False, + ): + history_items.append(entry) + + StockItemTracking.objects.bulk_create(history_items) + + # Duplicate test results + test_results = [] + + for test_result in self.test_results.all(): + for item in items: + test_result.pk = None + test_result.stock_item = item + + test_results.append(test_result) + + StockItemTestResult.objects.bulk_create(test_results) # Remove the equivalent number of items self.take_stock(quantity, user, notes=notes) + # Rebuild the stock tree + InvenTree.tasks.offload_task( + stock.tasks.rebuild_stock_item_tree, tree_id=self.tree_id, group='part' + ) + @transaction.atomic def copyHistoryFrom(self, other): """Copy stock history from another StockItem.""" @@ -1622,7 +1723,7 @@ class StockItem( user: The user who performed the test notes: Any notes associated with the test """ - template = kwargs.get('template', None) + template = kwargs.get('template') test_name = kwargs.pop('test_name', None) test_key = InvenTree.helpers.generateTestKey(test_name) @@ -1730,9 +1831,9 @@ class StockItem( # Keep track of the tree IDs that are being merged tree_ids = {self.tree_id} - user = kwargs.get('user', None) + user = kwargs.get('user') location = kwargs.get('location', self.location) - notes = kwargs.get('notes', None) + notes = kwargs.get('notes') parent_id = self.parent.pk if self.parent else None @@ -1766,7 +1867,7 @@ class StockItem( # Any "sales order allocations" for the other item must be assigned to this one for allocation in other.sales_order_allocations.all(): - allocation.stock_item = self() + allocation.stock_item = self allocation.save() # Prevent atomicity issues when we are merging our own "parent" part in @@ -1812,12 +1913,10 @@ class StockItem( self.save() # Rebuild stock trees as required - try: - for tree_id in tree_ids: - StockItem.objects.partial_rebuild(tree_id=tree_id) - except Exception: - logger.warning('Rebuilding entire StockItem tree') - StockItem.objects.rebuild() + for tree_id in tree_ids: + InvenTree.tasks.offload_task( + stock.tasks.rebuild_stock_item_tree, tree_id=tree_id, group='stock' + ) @transaction.atomic def splitStock(self, quantity, location=None, user=None, **kwargs): @@ -1912,11 +2011,9 @@ class StockItem( ) # Rebuild the tree for this parent item - try: - StockItem.objects.partial_rebuild(tree_id=self.tree_id) - except Exception: - logger.warning('Rebuilding entire StockItem tree') - StockItem.objects.rebuild() + InvenTree.tasks.offload_task( + stock.tasks.rebuild_stock_item_tree, tree_id=self.tree_id, group='stock' + ) # Attempt to reload the new item from the database try: @@ -1924,6 +2021,8 @@ class StockItem( except Exception: pass + trigger_event('stockitem.split', id=new_stock.id, parent=self.id) + # Return a copy of the "new" stock item return new_stock @@ -1952,6 +2051,8 @@ class StockItem( status: If provided, override the status (default = existing status) packaging: If provided, override the packaging (default = existing packaging) """ + current_location = self.location + try: quantity = Decimal(kwargs.pop('quantity', self.quantity)) except InvalidOperation: @@ -2006,6 +2107,15 @@ class StockItem( self.save() + # Trigger event for the plugin system + trigger_event( + 'stockitem.moved', + id=self.id, + old_location=current_location.id if current_location else None, + new_location=location.id if location else None, + quantity=quantity, + ) + return True @transaction.atomic @@ -2027,8 +2137,7 @@ class StockItem( except (InvalidOperation, ValueError): return - if quantity < 0: - quantity = 0 + quantity = max(quantity, 0) self.quantity = quantity @@ -2036,6 +2145,7 @@ class StockItem( self.delete() return False + self.save() return True @@ -2117,10 +2227,10 @@ class StockItem( if self.updateQuantity(self.quantity - quantity): deltas = {'removed': float(quantity), 'quantity': float(self.quantity)} - if location := kwargs.get('location', None): + if location := kwargs.get('location'): deltas['location'] = location.pk - if stockitem := kwargs.get('stockitem', None): + if stockitem := kwargs.get('stockitem'): deltas['stockitem'] = stockitem.pk self.add_tracking_entry(code, user, notes=notes, deltas=deltas) @@ -2211,9 +2321,9 @@ class StockItem( for item in installed_items: item_results = item.testResultMap() - for key in item_results.keys(): + for key in item_results: # Results from sub items should not override master ones - if key not in result_map.keys(): + if key not in result_map: result_map[key] = item_results[key] return result_map @@ -2289,14 +2399,19 @@ def after_delete_stock_item(sender, instance: StockItem, **kwargs): """Function to be executed after a StockItem object is deleted.""" from part import tasks as part_tasks - if not InvenTree.ready.isImportingData() and InvenTree.ready.canAppAccessDatabase( - allow_test=True - ): + if InvenTree.ready.isImportingData(): + return + + if InvenTree.ready.canAppAccessDatabase(allow_test=True): # Run this check in the background InvenTree.tasks.offload_task( - part_tasks.notify_low_stock_if_required, instance.part + part_tasks.notify_low_stock_if_required, + instance.part.pk, + group='notification', + force_async=True, ) + if InvenTree.ready.canAppAccessDatabase(allow_test=settings.TESTING_PRICING): # Schedule an update on parent part pricing if instance.part: instance.part.schedule_pricing_update(create=False) @@ -2307,19 +2422,18 @@ def after_save_stock_item(sender, instance: StockItem, created, **kwargs): """Hook function to be executed after StockItem object is saved/updated.""" from part import tasks as part_tasks - if ( - created - and not InvenTree.ready.isImportingData() - and InvenTree.ready.canAppAccessDatabase(allow_test=True) - ): - # Run this check in the background - InvenTree.tasks.offload_task( - part_tasks.notify_low_stock_if_required, instance.part - ) + if created and not InvenTree.ready.isImportingData(): + if InvenTree.ready.canAppAccessDatabase(allow_test=True): + InvenTree.tasks.offload_task( + part_tasks.notify_low_stock_if_required, + instance.part.pk, + group='notification', + force_async=True, + ) - # Schedule an update on parent part pricing - if instance.part: - instance.part.schedule_pricing_update(create=True) + if InvenTree.ready.canAppAccessDatabase(allow_test=settings.TESTING_PRICING): + if instance.part: + instance.part.schedule_pricing_update(create=True) class StockItemTracking(InvenTree.models.InvenTreeModel): @@ -2360,7 +2474,7 @@ class StockItemTracking(InvenTree.models.InvenTreeModel): def label(self): """Return label.""" - if self.tracking_type in StockHistoryCode.keys(): + if self.tracking_type in StockHistoryCode.keys(): # noqa: SIM118 return StockHistoryCode.label(self.tracking_type) return getattr(self, 'title', '') @@ -2440,28 +2554,25 @@ class StockItemTestResult(InvenTree.models.InvenTreeMetadataModel): super().clean() # If this test result corresponds to a template, check the requirements of the template - template = self.template + try: + template = self.template + except PartModels.PartTestTemplate.DoesNotExist: + template = None - if template is None: - # Fallback if there is no matching template - for template in self.stock_item.part.getTestTemplates(): - if self.key == template.key: - break + if not template: + raise ValidationError({'template': _('Test template does not exist')}) - if template: - if template.requires_value and not self.value: - raise ValidationError({ - 'value': _('Value must be provided for this test') - }) + if template.requires_value and not self.value: + raise ValidationError({'value': _('Value must be provided for this test')}) - if template.requires_attachment and not self.attachment: - raise ValidationError({ - 'attachment': _('Attachment must be uploaded for this test') - }) + if template.requires_attachment and not self.attachment: + raise ValidationError({ + 'attachment': _('Attachment must be uploaded for this test') + }) - if choices := template.get_choices(): - if self.value not in choices: - raise ValidationError({'value': _('Invalid value for this test')}) + if choices := template.get_choices(): + if self.value not in choices: + raise ValidationError({'value': _('Invalid value for this test')}) @property def key(self): @@ -2591,6 +2702,4 @@ class StockItemTestResult(InvenTree.models.InvenTreeMetadataModel): help_text=_('The timestamp of the test finish'), ) - user = models.ForeignKey(User, on_delete=models.SET_NULL, blank=True, null=True) - date = models.DateTimeField(auto_now_add=True, editable=False) diff --git a/src/backend/InvenTree/stock/serializers.py b/src/backend/InvenTree/stock/serializers.py index 7c80285f6f..f00192c0f3 100644 --- a/src/backend/InvenTree/stock/serializers.py +++ b/src/backend/InvenTree/stock/serializers.py @@ -268,13 +268,13 @@ class StockItemTestResultSerializer( ).first(): data['template'] = template - else: + elif get_global_setting('TEST_UPLOAD_CREATE_TEMPLATE', False): logger.debug( "No matching test template found for '%s' - creating a new template", test_name, ) - # Create a new test template based on the provided dasta + # Create a new test template based on the provided data data['template'] = part_models.PartTestTemplate.objects.create( part=stock_item.part, test_name=test_name ) @@ -340,7 +340,7 @@ class StockItemSerializer( - Includes serialization for the item location """ - export_exclude_fields = ['tracking_items'] + export_exclude_fields = ['tags', 'tracking_items'] export_only_fields = ['part_pricing_min', 'part_pricing_max'] @@ -351,41 +351,40 @@ class StockItemSerializer( model = StockItem fields = [ + 'pk', + 'part', + 'quantity', + 'serial', 'batch', + 'location', + 'location_name', + 'location_path', 'belongs_to', 'build', 'consumed_by', 'customer', 'delete_on_deplete', 'expiry_date', + 'in_stock', 'is_building', 'link', - 'location', - 'location_name', - 'location_detail', - 'location_path', 'notes', 'owner', 'packaging', 'parent', - 'part', - 'part_detail', 'purchase_order', 'purchase_order_reference', - 'pk', - 'quantity', 'sales_order', 'sales_order_reference', - 'serial', 'status', 'status_text', 'status_custom_key', - 'stocktake_date', 'supplier_part', - 'sku', - 'supplier_part_detail', + 'SKU', + 'MPN', 'barcode_hash', 'updated', + 'stocktake_date', 'purchase_price', 'purchase_price_currency', 'use_pack_size', @@ -398,6 +397,10 @@ class StockItemSerializer( 'stale', 'tracking_items', 'tags', + # Detail fields (FK relationships) + 'supplier_part_detail', + 'part_detail', + 'location_detail', # Export only fields 'part_pricing_min', 'part_pricing_max', @@ -428,7 +431,7 @@ class StockItemSerializer( tests = kwargs.pop('tests', False) path_detail = kwargs.pop('path_detail', False) - super(StockItemSerializer, self).__init__(*args, **kwargs) + super().__init__(*args, **kwargs) if not part_detail: self.fields.pop('part_detail', None) @@ -468,6 +471,8 @@ class StockItemSerializer( child=serializers.DictField(), source='location.get_path', read_only=True ) + in_stock = serializers.BooleanField(read_only=True, label=_('In Stock')) + """ Field used when creating a stock item """ @@ -519,6 +524,10 @@ class StockItemSerializer( 'supplier_part__manufacturer_part__manufacturer', 'supplier_part__tags', 'test_results', + 'customer', + 'belongs_to', + 'sales_order', + 'consumed_by', 'tags', ) @@ -568,9 +577,19 @@ class StockItemSerializer( return queryset - status_text = serializers.CharField(source='get_status_display', read_only=True) + status_text = serializers.CharField( + source='get_status_display', read_only=True, label=_('Status') + ) - sku = serializers.CharField(source='supplier_part.SKU', read_only=True) + SKU = serializers.CharField( + source='supplier_part.SKU', read_only=True, label=_('Supplier Part Number') + ) + + MPN = serializers.CharField( + source='supplier_part.manufacturer_part.MPN', + read_only=True, + label=_('Manufacturer Part Number'), + ) # Optional detail fields, which can be appended via query parameters supplier_part_detail = company_serializers.SupplierPartSerializer( @@ -581,6 +600,7 @@ class StockItemSerializer( many=False, read_only=True, ) + part_detail = part_serializers.PartBriefSerializer( source='part', many=False, read_only=True ) @@ -721,7 +741,10 @@ class SerializeStockItemSerializer(serializers.Serializer): try: serials = InvenTree.helpers.extract_serial_numbers( - serial_numbers, quantity, item.part.get_latest_serial_number() + serial_numbers, + quantity, + item.part.get_latest_serial_number(), + part=item.part, ) except DjangoValidationError as e: raise ValidationError({'serial_numbers': e.messages}) @@ -748,6 +771,7 @@ class SerializeStockItemSerializer(serializers.Serializer): data['serial_numbers'], data['quantity'], item.part.get_latest_serial_number(), + part=item.part, ) item.serializeStock( @@ -820,9 +844,9 @@ class InstallStockItemSerializer(serializers.Serializer): quantity = data.get('quantity', stock_item.quantity) if quantity > stock_item.quantity: - raise ValidationError( - _('Quantity to install must not exceed available quantity') - ) + raise ValidationError({ + 'quantity': _('Quantity to install must not exceed available quantity') + }) return data @@ -1526,7 +1550,7 @@ def stock_item_adjust_status_options(): In particular, include a Null option for the status field. """ - return [(None, _('No Change'))] + stock.status_codes.StockStatus.items() + return [(None, _('No Change')), *stock.status_codes.StockStatus.items()] class StockAdjustmentItemSerializer(serializers.Serializer): diff --git a/src/backend/InvenTree/stock/tasks.py b/src/backend/InvenTree/stock/tasks.py new file mode 100644 index 0000000000..a3791649b7 --- /dev/null +++ b/src/backend/InvenTree/stock/tasks.py @@ -0,0 +1,24 @@ +"""Background tasks for the stock app.""" + +import logging + +logger = logging.getLogger('inventree') + + +def rebuild_stock_item_tree(tree_id=None): + """Rebuild the stock tree structure. + + The StockItem tree uses the MPTT library to manage the tree structure. + """ + from stock.models import StockItem + + if tree_id: + try: + StockItem.objects.partial_rebuild(tree_id) + except Exception: + logger.warning('Failed to rebuild StockItem tree') + # If the partial rebuild fails, rebuild the entire tree + StockItem.objects.rebuild() + else: + # No tree_id provided, so rebuild the entire tree + StockItem.objects.rebuild() diff --git a/src/backend/InvenTree/stock/templates/stock/item_base.html b/src/backend/InvenTree/stock/templates/stock/item_base.html index 8550bc9419..4179bed59f 100644 --- a/src/backend/InvenTree/stock/templates/stock/item_base.html +++ b/src/backend/InvenTree/stock/templates/stock/item_base.html @@ -3,6 +3,7 @@ {% load plugin_extras %} {% load inventree_extras %} {% load generic %} +{% load barcode %} {% load i18n %} {% load l10n %} @@ -54,19 +55,15 @@ {% endif %} -{% if test_report_enabled or labels_enabled %}
-{% endif %} {% if user_owns_item %} @@ -534,7 +531,7 @@ $('#stock-edit-status').click(function () { $("#show-qr-code").click(function() { showQRDialog( '{% trans "Stock Item QR Code" escape %}', - '{{ item.barcode }}', + `{% clean_barcode item.barcode %}` ); }); diff --git a/src/backend/InvenTree/stock/templates/stock/location.html b/src/backend/InvenTree/stock/templates/stock/location.html index a2e34576ee..76b254f4d6 100644 --- a/src/backend/InvenTree/stock/templates/stock/location.html +++ b/src/backend/InvenTree/stock/templates/stock/location.html @@ -1,5 +1,6 @@ {% extends "stock/stock_app_base.html" %} {% load static %} +{% load barcode %} {% load inventree_extras %} {% load plugin_extras %} {% load i18n %} @@ -391,7 +392,7 @@ $('#show-qr-code').click(function() { showQRDialog( '{% trans "Stock Location QR Code" escape %}', - '{{ location.barcode }}' + `{% clean_barcode location.barcode %}` ); }); diff --git a/src/backend/InvenTree/stock/test_api.py b/src/backend/InvenTree/stock/test_api.py index af73fa1b73..397a559b3b 100644 --- a/src/backend/InvenTree/stock/test_api.py +++ b/src/backend/InvenTree/stock/test_api.py @@ -19,6 +19,7 @@ import build.models import company.models import part.models from common.models import InvenTreeCustomUserStateModel, InvenTreeSetting +from common.settings import set_global_setting from InvenTree.unit_test import InvenTreeAPITestCase from part.models import Part, PartTestTemplate from stock.models import ( @@ -437,6 +438,12 @@ class StockLocationTest(StockAPITestCase): self.assertEqual(len(res), 1) + # top_level + res = self.get( + self.list_url, {'top_level': True, 'cascade': False}, expected_code=200 + ).json() + self.assertEqual(len(res), 4) + def test_stock_location_tree(self): """Test the StockLocationTree API endpoint.""" # Create a number of new locations @@ -586,6 +593,11 @@ class StockItemListTest(StockAPITestCase): self.assertEqual(len(response), 29) + def test_filter_manufacturer(self): + """Filter StockItem by manufacturer.""" + response = self.get_stock(manufacturer='6') + self.assertEqual(len(response), 0) + def test_filter_by_part(self): """Filter StockItem by Part reference.""" response = self.get_stock(part=25) @@ -641,7 +653,7 @@ class StockItemListTest(StockAPITestCase): StockStatus.REJECTED.value: 0, } - for code in codes.keys(): + for code in codes: num = codes[code] response = self.get_stock(status=code) @@ -745,6 +757,79 @@ class StockItemListTest(StockAPITestCase): response = self.get_stock(expired=0) self.assertEqual(len(response), 25) + def test_filter_external(self): + """Filter StockItem by external.""" + response = self.get_stock(external=True) + self.assertEqual(len(response), 1) + + response = self.get_stock(external=False) + self.assertEqual(len(response), 28) + + def test_filter_available(self): + """Filter StockItem by available.""" + response = self.get_stock(available=True) + self.assertEqual(len(response), 26) + + response = self.get_stock(available=False) + self.assertEqual(len(response), 1) + + def test_filter_installed(self): + """Filter StockItem by installed.""" + response = self.get_stock(installed=True) + self.assertEqual(len(response), 0) + + response = self.get_stock(installed=False) + self.assertEqual(len(response), 29) # TODO: adjust test dataset (belongs_to) + + def test_filter_has_installed(self): + """Filter StockItem by has_installed.""" + response = self.get_stock(has_installed_items=True) + self.assertEqual(len(response), 0) + + response = self.get_stock(has_installed_items=False) + self.assertEqual(len(response), 29) # TODO: adjust test dataset (belongs_to) + + def test_filter_has_child_items(self): + """Filter StockItem by has_child_items.""" + response = self.get_stock(has_child_items=True) + self.assertEqual(len(response), 0) + + response = self.get_stock(has_child_items=False) + self.assertEqual(len(response), 29) # TODO: adjust test dataset (belongs_to) + + def test_filter_sent_to_customer(self): + """Filter StockItem by sent_to_customer.""" + response = self.get_stock(sent_to_customer=True) + self.assertEqual(len(response), 0) + + response = self.get_stock(sent_to_customer=False) + self.assertEqual(len(response), 29) # TODO: adjust test dataset + + def test_filter_has_purchase_price(self): + """Filter StockItem by has_purchase_price.""" + response = self.get_stock(has_purchase_price=True) + self.assertEqual(len(response), 1) + + response = self.get_stock(has_purchase_price=False) + self.assertEqual(len(response), 28) + + def test_filter_stale(self): + """Filter StockItem by stale.""" + response = self.get_stock(stale=True) + self.assertEqual(len(response), 29) + + response = self.get_stock(stale=False) + self.assertEqual(len(response), 29) + + # Enable the 'stale' feature + set_global_setting('STOCK_STALE_DAYS', '10') + response = self.get_stock(stale=True) + self.assertEqual(len(response), 1) + + response = self.get_stock(stale=False) + self.assertEqual(len(response), 28) + set_global_setting('STOCK_STALE_DAYS', '0') + def test_paginate(self): """Test that we can paginate results correctly.""" for n in [1, 5, 10]: @@ -925,6 +1010,89 @@ class StockItemListTest(StockAPITestCase): self.list_url, {'location_detail': True, 'tests': True}, max_query_count=35 ) + def test_batch_generate_api(self): + """Test helper API for batch management.""" + set_global_setting( + 'STOCK_BATCH_CODE_TEMPLATE', '{% if item %}{{ item.pk }}{% endif %}' + ) + url = reverse('api-generate-batch-code') + + response = self.post(url) + self.assertEqual(response.status_code, 201) + self.assertIn('batch_code', response.data) + self.assertEqual(len(response.data['batch_code']), 0) + + # With data + response = self.post(url, {'item': 1}) + self.assertEqual(response.data['batch_code'], '1') + + # With full data + response = self.post(url, {'item': 1, 'quantity': 2}) + self.assertEqual(response.data['batch_code'], '1') + + def test_serial_generate_api(self): + """Test helper API for serial management.""" + url = reverse('api-generate-serial-number') + + # Generate serial number + response = self.post(url) + self.assertIn('serial_number', response.data) + + # With full data + response = self.post(url, {'part': 1, 'quantity': 1}) + self.assertEqual(response.data['serial_number'], '1001') + response = self.post(url, {'part': 1, 'quantity': 3}) + self.assertEqual(response.data['serial_number'], '1001,1002,1003') + + # Wrong quantities + response = self.post(url, {'part': 1, 'quantity': 'abc'}, expected_code=400) + self.assertEqual(response.data['quantity'], ['A valid integer is required.']) + + response = self.post(url, {'part': 1, 'quantity': -2}, expected_code=400) + self.assertEqual( + response.data['quantity'], ['Quantity must be greater than zero'] + ) + + def test_child_items(self): + """Test that the 'child_items' annotation works as expected.""" + # Create a trackable part + my_part = Part.objects.create( + name='Test Part', description='Test Part Description', trackable=True + ) + + # Create an initial stock item + parent_item = StockItem.objects.create( + part=my_part, quantity=10, location=StockLocation.objects.first() + ) + + # Serialize this stock item + parent_item.serializeStock( + 5, [1, 2, 3, 4, 5], user=self.user, notes='Some notes' + ) + + parent_item.refresh_from_db() + + # Check that the parent item has 5 child items + self.assertEqual(parent_item.get_descendants(include_self=False).count(), 5) + self.assertEqual(my_part.stock_items.count(), 6) + + # Fetch stock list via API + response = self.get(reverse('api-stock-list'), {'part': my_part.pk}) + + self.assertEqual(len(response.data), 6) + + # Fetch stock detail + response = self.get(reverse('api-stock-detail', kwargs={'pk': parent_item.pk})) + + self.assertEqual(response.data['child_items'], 5) + + for child in parent_item.get_children(): + response = self.get(reverse('api-stock-detail', kwargs={'pk': child.pk})) + + self.assertEqual(response.data['parent'], parent_item.pk) + self.assertEqual(response.data['quantity'], 1) + self.assertEqual(response.data['child_items'], 0) + class CustomStockItemStatusTest(StockAPITestCase): """Tests for custom stock item statuses.""" @@ -1004,6 +1172,14 @@ class CustomStockItemStatusTest(StockAPITestCase): self.assertEqual(response.data['status'], self.status.logical_key) self.assertEqual(response.data['status_custom_key'], self.status.logical_key) + # Test case with wrong key + response = self.patch( + reverse('api-stock-detail', kwargs={'pk': pk}), + {'status_custom_key': 23456789}, + expected_code=400, + ) + self.assertIn('Invalid choice', str(response.data)) + def test_options(self): """Test the StockItem OPTIONS endpoint to contain custom StockStatuses.""" response = self.options(self.list_url) @@ -1250,6 +1426,18 @@ class StockItemTest(StockAPITestCase): self.assertEqual(trackable_part.stock_entries().count(), 10) self.assertEqual(trackable_part.get_stock_count(), 10) + # This should fail - wrong serial + response = self.post( + self.list_url, + data={'part': trackable_part.pk, 'quantity': 1, 'serial_numbers': '1'}, + expected_code=400, + ) + self.assertIn( + 'The following serial numbers already exist or are invalid : 1', + str(response.data), + ) + self.assertEqual(trackable_part.get_stock_count(), 10) + def test_default_expiry(self): """Test that the "default_expiry" functionality works via the API. @@ -1519,6 +1707,11 @@ class StocktakeTest(StockAPITestCase): def test_action(self): """Test each stocktake action endpoint, for validation.""" + target = { + 'api-stock-count': '10.00000', + 'api-stock-add': '10.00000', + 'api-stock-remove': '10.00000', + } for endpoint in ['api-stock-count', 'api-stock-add', 'api-stock-remove']: url = reverse(endpoint) @@ -1577,6 +1770,12 @@ class StocktakeTest(StockAPITestCase): status_code=status.HTTP_400_BAD_REQUEST, ) + # Valid POST + data = {'items': [{'pk': 1234, 'quantity': 10}]} + response = self.post(url, data, expected_code=201) + self.assertEqual(response.data['items'][0]['pk'], 1234) + self.assertEqual(response.data['items'][0]['quantity'], target[endpoint]) + def test_transfer(self): """Test stock transfers.""" stock_item = StockItem.objects.get(pk=1234) @@ -1697,6 +1896,14 @@ class StockTestResultTest(StockAPITestCase): 'notes': 'I guess there was just too much pressure?', } + # First, test with TEST_UPLOAD_CREATE_TEMPLATE set to False + InvenTreeSetting.set_setting('TEST_UPLOAD_CREATE_TEMPLATE', False, self.user) + + response = self.post(url, data, expected_code=400) + + # Again, with the setting enabled + InvenTreeSetting.set_setting('TEST_UPLOAD_CREATE_TEMPLATE', True, self.user) + response = self.post(url, data, expected_code=201) # Check that a new test template has been created @@ -1776,9 +1983,9 @@ class StockTestResultTest(StockAPITestCase): stock_item = StockItem.objects.get(pk=1) - # Ensure the part is marked as "trackable" + # Ensure the part is marked as "testable" p = stock_item.part - p.trackable = True + p.testable = True p.save() # Create some objects (via the API) @@ -1791,7 +1998,6 @@ class StockTestResultTest(StockAPITestCase): 'result': True, 'value': 'Test result value', }, - # expected_code=201, ) tests.append(response.data['pk']) @@ -1808,7 +2014,7 @@ class StockTestResultTest(StockAPITestCase): # Now, let's delete all the newly created items with a single API request # However, we will provide incorrect filters response = self.delete( - url, {'items': tests, 'filters': {'stock_item': 10}}, expected_code=204 + url, {'items': tests, 'filters': {'stock_item': 10}}, expected_code=400 ) self.assertEqual(StockItemTestResult.objects.count(), n + 50) @@ -2193,3 +2399,38 @@ class StockMetadataAPITest(InvenTreeAPITestCase): 'api-stock-item-metadata': StockItem, }.items(): self.metatester(apikey, model) + + +class StockStatisticsTest(StockAPITestCase): + """Tests for the StockStatistics API endpoints.""" + + fixtures = [*StockAPITestCase.fixtures, 'build'] + + def test_test_statistics(self): + """Test the test statistics API endpoints.""" + part = Part.objects.first() + response = self.get( + reverse('api-test-statistics-by-part', kwargs={'pk': part.pk}), + {}, + expected_code=200, + ) + self.assertEqual(response.data, [{}]) + + # Now trackable part + part1 = Part.objects.filter(trackable=True).first() + response = self.get( + reverse( + 'api-test-statistics-by-part', + kwargs={'pk': part1.stock_items.first().pk}, + ), + {}, + expected_code=404, + ) + self.assertIn('detail', response.data) + + # 105 + + bld = build.models.Build.objects.first() + url = reverse('api-test-statistics-by-build', kwargs={'pk': bld.pk}) + response = self.get(url, {}, expected_code=200) + self.assertEqual(response.data, [{}]) diff --git a/src/backend/InvenTree/stock/test_migrations.py b/src/backend/InvenTree/stock/test_migrations.py index c052325f17..6407f5ea29 100644 --- a/src/backend/InvenTree/stock/test_migrations.py +++ b/src/backend/InvenTree/stock/test_migrations.py @@ -200,7 +200,7 @@ class TestTestResultMigration(MigratorTestCase): ) # Create some test results - for _k, v in self.test_keys.items(): + for v in self.test_keys.values(): StockItemTestResult.objects.create( stock_item=si, test=v, result=True, value=f'Result: {ii} : {jj}' ) @@ -226,8 +226,194 @@ class TestTestResultMigration(MigratorTestCase): # Two more test templates should have been created self.assertEqual(PartTestTemplate.objects.count(), 3) - for k in self.test_keys.keys(): + for k in self.test_keys: self.assertTrue(PartTestTemplate.objects.filter(key=k).exists()) for result in StockItemTestResult.objects.all(): self.assertIsNotNone(result.template) + + +class TestPathstringMigration(MigratorTestCase): + """Unit tests for StockLocation.Pathstring data migrations.""" + + migrate_from = ('stock', '0080_stocklocation_pathstring') + migrate_to = ('stock', '0081_auto_20220801_0044') + + def prepare(self): + """Create initial data.""" + StockLocation = self.old_state.apps.get_model('stock', 'stocklocation') + + # Create a test StockLocation + loc1 = StockLocation.objects.create( + name='Loc 1', level=0, lft=0, rght=0, tree_id=0 + ) + loc2 = StockLocation.objects.create( + name='Loc 2', parent=loc1, level=1, lft=0, rght=0, tree_id=0 + ) + StockLocation.objects.create( + name='Loc 3', parent=loc2, level=2, lft=0, rght=0, tree_id=0 + ) + StockLocation.objects.create(name='Loc 4', level=0, lft=0, rght=0, tree_id=0) + + # Check initial record counts + self.assertEqual(StockLocation.objects.count(), 4) + + def test_migration(self): + """Test that the migrations were applied as expected.""" + StockLocation = self.old_state.apps.get_model('stock', 'stocklocation') + + self.assertEqual(StockLocation.objects.count(), 4) + test_data = { + 'Loc 1': 'Loc 1', + 'Loc 2': 'Loc 1/Loc 2', + 'Loc 3': 'Loc 1/Loc 2/Loc 3', + 'Loc 4': 'Loc 4', + } + for loc_name, pathstring in test_data.items(): + loc = StockLocation.objects.get(name=loc_name) + self.assertEqual(loc.pathstring, pathstring) + + +class TestBarcodeToUidMigration(MigratorTestCase): + """Unit tests for barcode to uid data migrations.""" + + migrate_from = ('stock', '0084_auto_20220903_0154') + migrate_to = ('stock', '0085_auto_20220903_0225') + + def prepare(self): + """Create initial data.""" + Part = self.old_state.apps.get_model('part', 'part') + StockItem = self.old_state.apps.get_model('stock', 'stockitem') + + # Create a test StockItem + part = Part.objects.create(name='test', level=0, lft=0, rght=0, tree_id=0) + StockItem.objects.create( + part_id=part.id, uid='12345', level=0, lft=0, rght=0, tree_id=0 + ) + self.assertEqual(StockItem.objects.count(), 1) + + def test_migration(self): + """Test that the migrations were applied as expected.""" + StockItem = self.new_state.apps.get_model('stock', 'StockItem') + + self.assertEqual(StockItem.objects.count(), 1) + item = StockItem.objects.first() + self.assertEqual(item.barcode_hash, '12345') + self.assertEqual(item.uid, '12345') + + +class TestBarcodeToUiReversedMigration(MigratorTestCase): + """Unit tests for barcode to uid data migrations.""" + + migrate_to = ('stock', '0084_auto_20220903_0154') + migrate_from = ('stock', '0085_auto_20220903_0225') + + def prepare(self): + """Create initial data.""" + Part = self.old_state.apps.get_model('part', 'part') + StockItem = self.old_state.apps.get_model('stock', 'stockitem') + + # Create a test StockItem + part = Part.objects.create(name='test', level=0, lft=0, rght=0, tree_id=0) + StockItem.objects.create( + part_id=part.id, barcode_hash='54321', level=0, lft=0, rght=0, tree_id=0 + ) + self.assertEqual(StockItem.objects.count(), 1) + + def test_migration(self): + """Test that the migrations were applied as expected.""" + StockItem = self.new_state.apps.get_model('stock', 'StockItem') + + self.assertEqual(StockItem.objects.count(), 1) + item = StockItem.objects.first() + self.assertEqual(item.barcode_hash, '54321') + self.assertEqual(item.uid, '54321') + + +class TestPartTestTemplateTreeFixMigration(MigratorTestCase): + """Unit tests for fixing issues with PartTestTemplate tree branch confusion migrations.""" + + migrate_from = ('stock', '0107_remove_stockitemtestresult_test_and_more') + migrate_to = ('stock', '0108_auto_20240219_0252') + + def prepare(self): + """Create initial data.""" + Part = self.old_state.apps.get_model('part', 'part') + PartTestTemplate = self.old_state.apps.get_model('part', 'PartTestTemplate') + StockItem = self.old_state.apps.get_model('stock', 'StockItem') + StockItemTestResult = self.old_state.apps.get_model( + 'stock', 'StockItemTestResult' + ) + + p = Part.objects.create(name='test', level=0, lft=0, rght=0, tree_id=0) + p2 = Part.objects.create(name='test 2', level=0, lft=0, rght=0, tree_id=4) + tmpl = PartTestTemplate.objects.create(part=p2, key='test_key') + stock = StockItem.objects.create(part=p, level=0, lft=3, rght=0, tree_id=0) + StockItemTestResult.objects.create(template=tmpl, stock_item=stock) + self.assertEqual(StockItemTestResult.objects.count(), 1) + self.assertEqual(PartTestTemplate.objects.count(), 1) + + def test_migration(self): + """Test that the migrations were applied as expected.""" + PartTestTemplate = self.old_state.apps.get_model('part', 'PartTestTemplate') + StockItemTestResult = self.old_state.apps.get_model( + 'stock', 'StockItemTestResult' + ) + + self.assertEqual(StockItemTestResult.objects.count(), 1) + self.assertEqual(PartTestTemplate.objects.count(), 2) + + +class TestStockItemTrackingMigration(MigratorTestCase): + """Unit tests for StockItemTracking code migrations.""" + + migrate_from = ('stock', '0095_stocklocation_external') + migrate_to = ('stock', '0096_auto_20230330_1121') + + def prepare(self): + """Create initial data.""" + from stock.status_codes import StockHistoryCode + + Part = self.old_state.apps.get_model('part', 'part') + SalesOrder = self.old_state.apps.get_model('order', 'salesorder') + StockItem = self.old_state.apps.get_model('stock', 'stockitem') + StockItemTracking = self.old_state.apps.get_model('stock', 'stockitemtracking') + + # Create a test StockItem + part = Part.objects.create(name='test', level=0, lft=0, rght=0, tree_id=0) + so = SalesOrder.objects.create(reference='123') + si = StockItem.objects.create( + part_id=part.id, sales_order=so, level=0, lft=0, rght=0, tree_id=0 + ) + si2 = StockItem.objects.create( + part_id=part.id, sales_order=so, level=0, lft=0, rght=0, tree_id=0 + ) + StockItem.objects.create( + part_id=part.id, sales_order=so, level=0, lft=0, rght=0, tree_id=0 + ) + + StockItemTracking.objects.create( + item_id=si.pk, + tracking_type=StockHistoryCode.SENT_TO_CUSTOMER.value, + deltas={'foo': 'bar'}, + ) + StockItemTracking.objects.create( + item_id=si2.pk, + tracking_type=StockHistoryCode.SHIPPED_AGAINST_SALES_ORDER.value, + deltas={'foo': 'bar'}, + ) + self.assertEqual(StockItemTracking.objects.count(), 2) + + def test_migration(self): + """Test that the migrations were applied as expected.""" + from stock.status_codes import StockHistoryCode + + StockItemTracking = self.old_state.apps.get_model('stock', 'stockitemtracking') + + self.assertEqual(StockItemTracking.objects.count(), 2) + item = StockItemTracking.objects.first() + self.assertEqual( + item.tracking_type, StockHistoryCode.SHIPPED_AGAINST_SALES_ORDER + ) + self.assertIn('salesorder', item.deltas) + self.assertEqual(item.deltas['salesorder'], 1) diff --git a/src/backend/InvenTree/stock/test_views.py b/src/backend/InvenTree/stock/test_views.py index 0552a5af7a..9f7d4e84ba 100644 --- a/src/backend/InvenTree/stock/test_views.py +++ b/src/backend/InvenTree/stock/test_views.py @@ -79,6 +79,11 @@ class StockDetailTest(StockViewTestCase): for act in actions: self.assertIn(act, html) + # Check with a wrong pk + response = self.client.get(reverse('stock-item-detail', kwargs={'pk': 99})) + self.assertEqual(response.status_code, 302) + self.assertEqual(response.url, reverse('stock-index')) + class StockOwnershipTest(StockViewTestCase): """Tests for stock ownership views.""" diff --git a/src/backend/InvenTree/stock/tests.py b/src/backend/InvenTree/stock/tests.py index dcbf2cf3d3..a7d065930e 100644 --- a/src/backend/InvenTree/stock/tests.py +++ b/src/backend/InvenTree/stock/tests.py @@ -10,7 +10,7 @@ from django.test import override_settings from build.models import Build from common.models import InvenTreeSetting from company.models import Company -from InvenTree.unit_test import InvenTreeTestCase +from InvenTree.unit_test import AdminTestCase, InvenTreeTestCase from order.models import SalesOrder from part.models import Part, PartTestTemplate from stock.status_codes import StockHistoryCode @@ -1229,14 +1229,20 @@ class TestResultTest(StockTestBase): self.assertEqual(item2.test_results.count(), 4) # Test StockItem serialization - item2.serializeStock(1, [100], self.user) + # Note: This will create a new StockItem with a new serial number + + with self.assertRaises(ValidationError): + # Serial number #100 will be rejected by the sample plugin + item2.serializeStock(1, [100], self.user) + + item2.serializeStock(1, [101], self.user) # Add a test result to the parent *after* serialization item2.add_test_result(test_name='abcde') self.assertEqual(item2.test_results.count(), 5) - item3 = StockItem.objects.get(serial=100, part=item2.part) + item3 = StockItem.objects.get(serial=101, part=item2.part) self.assertEqual(item3.test_results.count(), 4) @@ -1347,3 +1353,11 @@ class StockLocationTest(InvenTreeTestCase): loc.location_type = None loc.save() self.assertEqual(loc.icon, '') + + +class AdminTest(AdminTestCase): + """Tests for the admin interface integration.""" + + def test_admin(self): + """Test the admin URL.""" + self.helper(model=StockLocationType) diff --git a/src/backend/InvenTree/stock/views.py b/src/backend/InvenTree/stock/views.py index 57140a9952..5193a44a6c 100644 --- a/src/backend/InvenTree/stock/views.py +++ b/src/backend/InvenTree/stock/views.py @@ -92,7 +92,7 @@ class StockItemDetail(InvenTreeRoleMixin, InvenTreePluginViewMixin, DetailView): def get(self, request, *args, **kwargs): """Check if item exists else return to stock index.""" - stock_pk = kwargs.get('pk', None) + stock_pk = kwargs.get('pk') if stock_pk: try: diff --git a/src/backend/InvenTree/templates/InvenTree/settings/barcode.html b/src/backend/InvenTree/templates/InvenTree/settings/barcode.html index 8da99c0a9a..e8b24065ad 100644 --- a/src/backend/InvenTree/templates/InvenTree/settings/barcode.html +++ b/src/backend/InvenTree/templates/InvenTree/settings/barcode.html @@ -17,6 +17,8 @@ {% include "InvenTree/settings/setting.html" with key="BARCODE_WEBCAM_SUPPORT" icon="fa-video" %} {% include "InvenTree/settings/setting.html" with key="BARCODE_SHOW_TEXT" icon="fa-closed-captioning" %} {% include "InvenTree/settings/setting.html" with key="BARCODE_GENERATION_PLUGIN" icon="fa-qrcode" %} + {% include "InvenTree/settings/setting.html" with key="BARCODE_STORE_RESULTS" icon="fa-qrcode" %} + {% include "InvenTree/settings/setting.html" with key="BARCODE_RESULTS_MAX_NUM" icon="fa-qrcode" %} diff --git a/src/backend/InvenTree/templates/InvenTree/settings/report.html b/src/backend/InvenTree/templates/InvenTree/settings/report.html index 6622befc36..daaf66bdd0 100644 --- a/src/backend/InvenTree/templates/InvenTree/settings/report.html +++ b/src/backend/InvenTree/templates/InvenTree/settings/report.html @@ -18,8 +18,6 @@ {% include "InvenTree/settings/setting.html" with key="REPORT_DEFAULT_PAGE_SIZE" icon="fa-print" %} {% include "InvenTree/settings/setting.html" with key="REPORT_DEBUG_MODE" icon="fa-laptop-code" %} {% include "InvenTree/settings/setting.html" with key="REPORT_LOG_ERRORS" icon="fa-exclamation-circle" %} - {% include "InvenTree/settings/setting.html" with key="REPORT_ENABLE_TEST_REPORT" icon="fa-vial" %} - {% include "InvenTree/settings/setting.html" with key="REPORT_ATTACH_TEST_REPORT" icon="fa-file-upload" %} diff --git a/src/backend/InvenTree/templates/InvenTree/settings/stock.html b/src/backend/InvenTree/templates/InvenTree/settings/stock.html index 89dd5e95b9..fbc51ffe60 100644 --- a/src/backend/InvenTree/templates/InvenTree/settings/stock.html +++ b/src/backend/InvenTree/templates/InvenTree/settings/stock.html @@ -25,6 +25,7 @@ {% include "InvenTree/settings/setting.html" with key="STOCK_ENFORCE_BOM_INSTALLATION" icon="fa-check-circle" %} {% include "InvenTree/settings/setting.html" with key="STOCK_ALLOW_OUT_OF_STOCK_TRANSFER" icon="fa-dolly" %} {% include "InvenTree/settings/setting.html" with key="TEST_STATION_DATA" icon="fa-network-wired" %} + {% include "InvenTree/settings/setting.html" with key="TEST_UPLOAD_CREATE_TEMPLATE" %} diff --git a/src/backend/InvenTree/templates/base.html b/src/backend/InvenTree/templates/base.html index 5cb34fca5f..9d199ae551 100644 --- a/src/backend/InvenTree/templates/base.html +++ b/src/backend/InvenTree/templates/base.html @@ -4,7 +4,6 @@ {% plugins_enabled as plugins_enabled %} {% settings_value 'BARCODE_ENABLE' as barcodes %} -{% settings_value 'REPORT_ENABLE_TEST_REPORT' as test_report_enabled %} {% settings_value 'RETURNORDER_ENABLED' as return_order_enabled %} {% settings_value "REPORT_ENABLE" as report_enabled %} {% settings_value "SERVER_RESTART_REQUIRED" as server_restart_required %} diff --git a/src/backend/InvenTree/templates/js/translated/build.js b/src/backend/InvenTree/templates/js/translated/build.js index 58792bd479..4e6ec08c62 100644 --- a/src/backend/InvenTree/templates/js/translated/build.js +++ b/src/backend/InvenTree/templates/js/translated/build.js @@ -2502,7 +2502,11 @@ function renderBuildLineAllocationTable(element, build_line, options={}) { // Load the allocation items into the table sub_table.bootstrapTable({ - data: build_line.allocations, + url: '{% url "api-build-item-list" %}', + queryParams: { + build_line: build_line.pk, + output: options.output ?? undefined, + }, showHeader: false, columns: [ { @@ -2606,9 +2610,10 @@ function renderBuildLineAllocationTable(element, build_line, options={}) { */ function loadBuildLineTable(table, build_id, options={}) { + const params = options.params || {}; + const output = options.output; + let name = 'build-lines'; - let params = options.params || {}; - let output = options.output; params.build = build_id; @@ -2644,6 +2649,7 @@ function loadBuildLineTable(table, build_id, options={}) { detailFormatter: function(_index, row, element) { renderBuildLineAllocationTable(element, row, { parent_table: table, + output: output, }); }, formatNoMatches: function() { @@ -2727,6 +2733,15 @@ function loadBuildLineTable(table, build_id, options={}) { return yesNoLabel(row.bom_item_detail.inherited); } }, + { + field: 'trackable', + title: '{% trans "Trackable" %}', + sortable: true, + switchable: true, + formatter: function(value, row) { + return yesNoLabel(row.part_detail.trackable); + } + }, { field: 'unit_quantity', sortable: true, diff --git a/src/backend/InvenTree/templates/js/translated/company.js b/src/backend/InvenTree/templates/js/translated/company.js index a008da2041..ac822b0436 100644 --- a/src/backend/InvenTree/templates/js/translated/company.js +++ b/src/backend/InvenTree/templates/js/translated/company.js @@ -165,6 +165,7 @@ function supplierPartFields(options={}) { icon: 'fa-box', }, pack_quantity: {}, + active: {}, }; if (options.part) { diff --git a/src/backend/InvenTree/templates/js/translated/helpers.js b/src/backend/InvenTree/templates/js/translated/helpers.js index 156a697f5d..93cfb06962 100644 --- a/src/backend/InvenTree/templates/js/translated/helpers.js +++ b/src/backend/InvenTree/templates/js/translated/helpers.js @@ -1,6 +1,7 @@ {% load i18n %} /* globals + DOMPurify, EasyMDE, inventreeFormDataUpload, inventreeGet, @@ -498,6 +499,11 @@ function setupNotesField(element, url, options={}) { } }); }, + renderingConfig: { + sanitizerFunction: function (html) { + return DOMPurify.sanitize(html); + } + }, shortcuts: [], }); diff --git a/src/backend/InvenTree/templates/js/translated/model_renderers.js b/src/backend/InvenTree/templates/js/translated/model_renderers.js index 67eb4186e7..0b96c9a1ec 100644 --- a/src/backend/InvenTree/templates/js/translated/model_renderers.js +++ b/src/backend/InvenTree/templates/js/translated/model_renderers.js @@ -49,6 +49,9 @@ */ function getModelRenderer(model) { + // Ensure correct formatting of provided model name + model = model.toString().toLowerCase(); + // Find a custom renderer switch (model) { case 'company': diff --git a/src/backend/InvenTree/templates/js/translated/part.js b/src/backend/InvenTree/templates/js/translated/part.js index 9080b6b27d..a065aad924 100644 --- a/src/backend/InvenTree/templates/js/translated/part.js +++ b/src/backend/InvenTree/templates/js/translated/part.js @@ -3078,10 +3078,26 @@ function loadPartSchedulingChart(canvas_id, part_id) { quantity_string += makeIconBadge('fa-question-circle icon-blue', '{% trans "Speculative" %}'); } + let url = '#'; + + switch (entry.model) { + case 'salesorder': + url = `/order/sales-order/${entry.model_id}/`; + break; + case 'purchaseorder': + url = `/order/purchase-order/${entry.model_id}/`; + break; + case 'build': + url = `/build/${entry.model_id}/`; + break; + default: + break; + } + // Add an entry to the scheduling table table_html += ` - ${entry.label} + ${entry.label} ${entry.title} ${date_string} ${quantity_string} diff --git a/src/backend/InvenTree/templates/js/translated/pricing.js b/src/backend/InvenTree/templates/js/translated/pricing.js index 7b2c8eee63..169fc13f9b 100644 --- a/src/backend/InvenTree/templates/js/translated/pricing.js +++ b/src/backend/InvenTree/templates/js/translated/pricing.js @@ -811,12 +811,10 @@ function loadPurchasePriceHistoryTable(options={}) { } var html = ''; - var supplier = row.supplier_part_detail.supplier_detail; - html += imageHoverIcon(supplier.thumbnail || supplier.image); html += renderLink(order.reference, `/order/purchase-order/${order.pk}/`); html += ' - '; - html += renderLink(supplier.name, `/company/${supplier.pk}/`); + html += renderLink(order.supplier_name, `/company/${order.supplier}/`); return html; } diff --git a/src/backend/InvenTree/templates/js/translated/purchase_order.js b/src/backend/InvenTree/templates/js/translated/purchase_order.js index d99223256c..2ddfc71359 100644 --- a/src/backend/InvenTree/templates/js/translated/purchase_order.js +++ b/src/backend/InvenTree/templates/js/translated/purchase_order.js @@ -98,7 +98,8 @@ function purchaseOrderFields(options={}) { return fields; } - } + }, + disabled: !!options.duplicate_order, }, supplier_reference: {}, project_code: { @@ -110,6 +111,9 @@ function purchaseOrderFields(options={}) { target_date: { icon: 'fa-calendar-alt', }, + destination: { + icon: 'fa-sitemap' + }, link: { icon: 'fa-link', }, @@ -155,35 +159,13 @@ function purchaseOrderFields(options={}) { // Add fields for order duplication (only if required) if (options.duplicate_order) { - fields.duplicate_order = { + fields.duplicate__order_id = { value: options.duplicate_order, - group: 'duplicate', - required: 'true', - type: 'related field', - model: 'purchaseorder', - filters: { - supplier_detail: true, - }, - api_url: '{% url "api-po-list" %}', - label: '{% trans "Purchase Order" %}', - help_text: '{% trans "Select purchase order to duplicate" %}', + hidden: true, }; - fields.duplicate_line_items = { - value: true, - group: 'duplicate', - type: 'boolean', - label: '{% trans "Duplicate Line Items" %}', - help_text: '{% trans "Duplicate all line items from the selected order" %}', - }; - - fields.duplicate_extra_lines = { - value: true, - group: 'duplicate', - type: 'boolean', - label: '{% trans "Duplicate Extra Lines" %}', - help_text: '{% trans "Duplicate extra line items from the selected order" %}', - }; + fields.duplicate__copy_lines = {}; + fields.duplicate__copy_extra_lines = {}; } if (!global_settings.PROJECT_CODES_ENABLED) { @@ -277,6 +259,7 @@ function poLineItemFields(options={}) { part: { icon: 'fa-shapes', filters: { + active: true, part_detail: true, supplier_detail: true, supplier: options.supplier, @@ -1382,6 +1365,7 @@ function receivePurchaseOrderItems(order_id, line_items, options={}) { method: 'POST', fields: { location: { + value: options.destination, filters: { structural: false, }, @@ -2119,7 +2103,7 @@ function loadPurchaseOrderLineItemTable(table, options={}) { { sortable: true, sortName: 'MPN', - field: 'supplier_part_detail.manufacturer_part_detail.MPN', + field: 'mpn', title: '{% trans "MPN" %}', formatter: function(value, row, index, field) { if (row.supplier_part_detail && row.supplier_part_detail.manufacturer_part) { diff --git a/src/backend/InvenTree/templates/js/translated/sales_order.js b/src/backend/InvenTree/templates/js/translated/sales_order.js index 542330156d..395789d400 100644 --- a/src/backend/InvenTree/templates/js/translated/sales_order.js +++ b/src/backend/InvenTree/templates/js/translated/sales_order.js @@ -281,55 +281,13 @@ function completeSalesOrderShipment(shipment_id, options={}) { // Request the list of stock items which will be shipped inventreeGet(`{% url "api-so-shipment-list" %}${shipment_id}/`, {}, { success: function(shipment) { - var allocations = shipment.allocations; + let allocations = shipment.allocated_items ?? 0; - var html = ''; - - if (!allocations || allocations.length == 0) { - html = ` -
- {% trans "No stock items have been allocated to this shipment" %} -
- `; - } else { - html = ` - {% trans "The following stock items will be shipped" %} - - - - - - - - - `; - - allocations.forEach(function(allocation) { - - var part = allocation.part_detail; - var thumb = thumbnailImage(part.thumbnail || part.image); - - var stock = ''; - - if (allocation.serial) { - stock = `{% trans "Serial Number" %}: ${allocation.serial}`; - } else { - stock = `{% trans "Quantity" %}: ${allocation.quantity}`; - } - - html += ` - - - - - `; - }); - - html += ` - -
{% trans "Part" %}{% trans "Stock Item" %}
${thumb} ${part.full_name}${stock}
- `; - } + var html = allocations == 0 ? ( + `
+ {% trans "No stock items have been allocated to this shipment" %} +
` + ) : ''; constructForm(`{% url "api-so-shipment-list" %}${shipment_id}/ship/`, { method: 'POST', @@ -398,7 +356,8 @@ function completePendingShipments(order_id, options={}) { var allocated_shipments = []; for (var idx = 0; idx < pending_shipments.length; idx++) { - if (pending_shipments[idx].allocations.length > 0) { + + if (pending_shipments[idx].allocated_items > 0) { allocated_shipments.push(pending_shipments[idx]); } } @@ -919,7 +878,11 @@ function loadSalesOrderShipmentTable(table, options={}) { var filters = loadTableFilters('salesordershipment', options.params); - setupFilterList('salesordershipment', $(table), options.filter_target); + setupFilterList('salesordershipment', $(table), options.filter_target, { + report: { + key: 'salesordershipment', + } + }); // Add callbacks for expand / collapse buttons var prefix = options.shipped ? 'completed' : 'pending'; @@ -947,7 +910,7 @@ function loadSalesOrderShipmentTable(table, options={}) { html += makeIconButton('fa-truck icon-green', 'button-shipment-ship', pk, '{% trans "Complete shipment" %}'); } - var enable_delete = row.allocations && row.allocations.length == 0; + var enable_delete = row.allocated_items == 0; html += makeDeleteButton('button-shipment-delete', pk, '{% trans "Delete shipment" %}', {disabled: !enable_delete}); @@ -1000,10 +963,19 @@ function loadSalesOrderShipmentTable(table, options={}) { detailViewByClick: false, buttons: constructExpandCollapseButtons(table), detailFilter: function(index, row) { - return row.allocations.length > 0; + return row.allocated_items > 0; }, detailFormatter: function(index, row, element) { - return showAllocationSubTable(index, row, element, options); + return showAllocationSubTable( + index, row, element, + { + ...options, + queryParams: { + shipment: row.pk, + order: row.order, + } + } + ); }, onPostBody: function() { setupShipmentCallbacks(); @@ -1018,8 +990,9 @@ function loadSalesOrderShipmentTable(table, options={}) { }, columns: [ { - visible: false, + title: '', checkbox: true, + visible: true, switchable: false, }, { @@ -1043,17 +1016,10 @@ function loadSalesOrderShipmentTable(table, options={}) { switchable: false, }, { - field: 'allocations', + field: 'allocated_items', title: '{% trans "Items" %}', switchable: false, sortable: true, - formatter: function(value, row) { - if (row && row.allocations) { - return row.allocations.length; - } else { - return '-'; - } - } }, { field: 'shipment_date', @@ -1625,7 +1591,15 @@ function showAllocationSubTable(index, row, element, options) { } table.bootstrapTable({ + url: '{% url "api-so-allocation-list" %}', onPostBody: setupCallbacks, + queryParams: { + ...options.queryParams, + part_detail: true, + location_detail: true, + item_detail: true, + order_detail: true, + }, data: row.allocations, showHeader: true, columns: [ @@ -1636,6 +1610,13 @@ function showAllocationSubTable(index, row, element, options) { return imageHoverIcon(part.thumbnail) + renderLink(part.full_name, `/part/${part.pk}/`); } }, + { + field: 'shipment', + title: '{% trans "Shipment" %}', + formatter: function(value, row) { + return row.shipment_detail.reference; + } + }, { field: 'allocated', title: '{% trans "Stock Item" %}', @@ -2041,7 +2022,7 @@ function loadSalesOrderLineItemTable(table, options={}) { if (options.allow_edit && (row.shipped < row.quantity)) { if (part.trackable) { - buttons += makeIconButton('fa-hashtag icon-green', 'button-add-by-sn', pk, '{% trans "Allocate serial numbers" %}'); + buttons += makeIconButton('fa-hashtag icon-green', 'button-add-by-sn', pk, '{% trans "Allocate Serial Numbers" %}'); } buttons += makeIconButton('fa-sign-in-alt icon-green', 'button-add', pk, '{% trans "Allocate stock" %}'); if (part.purchaseable) { @@ -2284,7 +2265,16 @@ function loadSalesOrderLineItemTable(table, options={}) { }, detailFormatter: function(index, row, element) { if (options.open) { - return showAllocationSubTable(index, row, element, options); + return showAllocationSubTable( + index, row, element, + { + ...options, + queryParams: { + part: row.part, + order: row.order, + } + } + ); } else { return showFulfilledSubTable(index, row, element, options); } diff --git a/src/backend/InvenTree/templates/js/translated/stock.js b/src/backend/InvenTree/templates/js/translated/stock.js index 2e65072853..8347a69e18 100644 --- a/src/backend/InvenTree/templates/js/translated/stock.js +++ b/src/backend/InvenTree/templates/js/translated/stock.js @@ -380,7 +380,7 @@ function stockItemFields(options={}) { batch: { icon: 'fa-layer-group', }, - status: {}, + status_custom_key: {}, expiry_date: { icon: 'fa-calendar-alt', }, @@ -617,7 +617,7 @@ function findStockItemBySerialNumber(part_id) { handleFormErrors( { 'serial': [ - '{% trans "Enter a serial number" %}', + '{% trans "Enter serial number" %}', ] }, fields, opts ); @@ -1445,14 +1445,14 @@ function removeStockRow(e) { function passFailBadge(result) { if (result) { - return `{% trans "PASS" %}`; + return `{% trans "Pass" %}`; } else { - return `{% trans "FAIL" %}`; + return `{% trans "Fail" %}`; } } function noResultBadge() { - return `{% trans "NO RESULT" %}`; + return `{% trans "No result" %}`; } function formatDate(row, date, options={}) { diff --git a/src/backend/InvenTree/templates/socialaccount/authentication_error.html b/src/backend/InvenTree/templates/socialaccount/authentication_error.html index 9cc638f1d4..abf5b03cd1 100644 --- a/src/backend/InvenTree/templates/socialaccount/authentication_error.html +++ b/src/backend/InvenTree/templates/socialaccount/authentication_error.html @@ -10,7 +10,7 @@

{% trans "An error occurred while attempting to login via your social network account." %}
- {% trans "Contact your system administrator for further information." %} + {% trans "Contact your system administrator for further information" %}


diff --git a/src/backend/InvenTree/templates/third_party_js.html b/src/backend/InvenTree/templates/third_party_js.html index 8f6c5eccc3..b4d52b7481 100644 --- a/src/backend/InvenTree/templates/third_party_js.html +++ b/src/backend/InvenTree/templates/third_party_js.html @@ -36,3 +36,4 @@ + diff --git a/src/backend/InvenTree/users/admin.py b/src/backend/InvenTree/users/admin.py index 3916cfb382..9a15b1e4c3 100644 --- a/src/backend/InvenTree/users/admin.py +++ b/src/backend/InvenTree/users/admin.py @@ -32,10 +32,7 @@ class ApiTokenAdmin(admin.ModelAdmin): def get_fields(self, request, obj=None): """Return list of fields to display.""" - if obj: - fields = ['token'] - else: - fields = ['key'] + fields = ['token'] if obj else ['key'] fields += [ 'user', @@ -66,7 +63,7 @@ class RuleSetInline(admin.TabularInline): can_delete = False verbose_name = 'Ruleset' verbose_plural_name = 'Rulesets' - fields = ['name'] + list(RuleSet.RULE_OPTIONS) + fields = ['name', *list(RuleSet.RULE_OPTIONS)] readonly_fields = ['name'] max_num = len(RuleSet.RULESET_CHOICES) min_num = 1 @@ -293,8 +290,6 @@ class InvenTreeUserAdmin(UserAdmin): class OwnerAdmin(admin.ModelAdmin): """Custom admin interface for the Owner model.""" - pass - admin.site.unregister(Group) admin.site.register(Group, RoleGroupAdmin) diff --git a/src/backend/InvenTree/users/api.py b/src/backend/InvenTree/users/api.py index c8cfb12807..b3a3b19015 100644 --- a/src/backend/InvenTree/users/api.py +++ b/src/backend/InvenTree/users/api.py @@ -24,6 +24,7 @@ from rest_framework.response import Response from rest_framework.views import APIView import InvenTree.helpers +import InvenTree.permissions from common.models import InvenTreeSetting from InvenTree.filters import SEARCH_ORDER_FILTER from InvenTree.mixins import ( @@ -33,7 +34,11 @@ from InvenTree.mixins import ( RetrieveUpdateAPI, RetrieveUpdateDestroyAPI, ) -from InvenTree.serializers import ExendedUserSerializer, UserCreateSerializer +from InvenTree.serializers import ( + ExtendedUserSerializer, + MeUserSerializer, + UserCreateSerializer, +) from InvenTree.settings import FRONTEND_URL_BASE from users.models import ApiToken, Owner from users.serializers import ( @@ -134,24 +139,38 @@ class UserDetail(RetrieveUpdateDestroyAPI): """Detail endpoint for a single user.""" queryset = User.objects.all() - serializer_class = ExendedUserSerializer + serializer_class = ExtendedUserSerializer permission_classes = [permissions.IsAuthenticated] class MeUserDetail(RetrieveUpdateAPI, UserDetail): """Detail endpoint for current user.""" + serializer_class = MeUserSerializer + + rolemap = {'POST': 'view', 'PUT': 'view', 'PATCH': 'view'} + def get_object(self): """Always return the current user object.""" return self.request.user + def get_permission_model(self): + """Return the model for the permission check. + + Note that for this endpoint, the current user can *always* edit their own details. + """ + return None + class UserList(ListCreateAPI): """List endpoint for detail on all users.""" queryset = User.objects.all() serializer_class = UserCreateSerializer - permission_classes = [permissions.IsAuthenticated] + permission_classes = [ + permissions.IsAuthenticated, + InvenTree.permissions.IsSuperuserOrReadOnly, + ] filter_backends = SEARCH_ORDER_FILTER search_fields = ['first_name', 'last_name', 'username'] @@ -175,13 +194,10 @@ class GroupMixin: def get_serializer(self, *args, **kwargs): """Return serializer instance for this endpoint.""" # Do we wish to include extra detail? - try: - params = self.request.query_params - kwargs['permission_detail'] = InvenTree.helpers.str2bool( - params.get('permission_detail', None) - ) - except AttributeError: - pass + params = self.request.query_params + kwargs['permission_detail'] = InvenTree.helpers.str2bool( + params.get('permission_detail', None) + ) kwargs['context'] = self.get_serializer_context() return self.serializer_class(*args, **kwargs) @@ -346,7 +362,7 @@ class GetAuthToken(APIView): return Response(data) else: - raise exceptions.NotAuthenticated() + raise exceptions.NotAuthenticated() # pragma: no cover class TokenListView(DestroyAPIView, ListAPI): diff --git a/src/backend/InvenTree/users/migrations/0011_auto_20240523_1640.py b/src/backend/InvenTree/users/migrations/0011_auto_20240523_1640.py index 31d606fab2..6dd75904a9 100644 --- a/src/backend/InvenTree/users/migrations/0011_auto_20240523_1640.py +++ b/src/backend/InvenTree/users/migrations/0011_auto_20240523_1640.py @@ -16,7 +16,7 @@ def clear_sessions(apps, schema_editor): # pragma: no cover try: engine = import_module(settings.SESSION_ENGINE) engine.SessionStore.clear_expired() - print('Cleared all user sessions to deal with GHSA-2crp-q9pc-457j') + print('\nCleared all user sessions to deal with GHSA-2crp-q9pc-457j') except Exception: # Database may not be ready yet, so this does not matter anyhow pass diff --git a/src/backend/InvenTree/users/models.py b/src/backend/InvenTree/users/models.py index cb4af4c592..c755702a72 100644 --- a/src/backend/InvenTree/users/models.py +++ b/src/backend/InvenTree/users/models.py @@ -164,7 +164,7 @@ class ApiToken(AuthToken, InvenTree.models.MetadataMixin): """ # If the token has not yet been saved, return the raw key if self.pk is None: - return self.key + return self.key # pragma: no cover M = len(self.key) - 20 @@ -241,6 +241,7 @@ class RuleSet(models.Model): 'plugin_pluginconfig', 'plugin_pluginsetting', 'plugin_notificationusersetting', + 'common_barcodescanresult', 'common_newsfeedentry', 'taggit_tag', 'taggit_taggeditem', @@ -490,10 +491,7 @@ def split_model(model): *app, model = model.split('_') # handle models that have - if len(app) > 1: - app = '_'.join(app) - else: - app = app[0] + app = '_'.join(app) if len(app) > 1 else app[0] return model, app @@ -558,10 +556,8 @@ def update_group_roles(group, debug=False): permissions_to_add.add(permission_string) - else: - # A forbidden action will be ignored if we have already allowed it - if permission_string not in permissions_to_add: - permissions_to_delete.add(permission_string) + elif permission_string not in permissions_to_add: + permissions_to_delete.add(permission_string) # Pre-fetch all the RuleSet objects rulesets = { @@ -677,7 +673,7 @@ def clear_user_role_cache(user: User): Args: user: The User object to be expunged from the cache """ - for role in RuleSet.get_ruleset_models().keys(): + for role in RuleSet.get_ruleset_models(): for perm in ['add', 'change', 'view', 'delete']: key = f'role_{user.pk}_{role}_{perm}' cache.delete(key) @@ -691,6 +687,9 @@ def check_user_permission(user: User, model, permission): model: The model class to check (e.g. Part) permission: The permission to check (e.g. 'view' / 'delete') """ + if user.is_superuser: + return True + permission_name = f'{model._meta.app_label}.{permission}_{model._meta.model_name}' return user.has_perm(permission_name) diff --git a/src/backend/InvenTree/users/test_api.py b/src/backend/InvenTree/users/test_api.py index ea271f7e19..c61f6556aa 100644 --- a/src/backend/InvenTree/users/test_api.py +++ b/src/backend/InvenTree/users/test_api.py @@ -17,7 +17,10 @@ class UserAPITests(InvenTreeAPITestCase): self.assignRole('admin.add') response = self.options(reverse('api-user-list'), expected_code=200) - fields = response.data['actions']['POST'] + # User is *not* a superuser, so user account API is read-only + self.assertNotIn('POST', response.data['actions']) + + fields = response.data['actions']['GET'] # Check some of the field values self.assertEqual(fields['username']['label'], 'Username') @@ -64,12 +67,21 @@ class UserAPITests(InvenTreeAPITestCase): self.assertEqual(len(response.data), Group.objects.count()) # Check detail URL + pk = response.data[0]['pk'] response = self.get( - reverse('api-group-detail', kwargs={'pk': response.data[0]['pk']}), + reverse('api-group-detail', kwargs={'pk': pk}), expected_code=200 + ) + self.assertIn('name', response.data) + self.assertNotIn('permissions', response.data) + + # Check more detailed URL + response = self.get( + reverse('api-group-detail', kwargs={'pk': pk}), + data={'permission_detail': True}, expected_code=200, ) - self.assertIn('name', response.data) + self.assertIn('permissions', response.data) def test_logout(self): """Test api logout endpoint.""" @@ -208,3 +220,34 @@ class UserTokenTests(InvenTreeAPITestCase): ) self.assertIn('key', response.data) self.assertTrue(response.data['key'].startswith('inv-')) + + def test_token_api(self): + """Test the token API.""" + url = reverse('api-token-list') + response = self.get(url, expected_code=200) + self.assertEqual(response.data, []) + + # Get token + response = self.get(reverse('api-token'), expected_code=200) + self.assertIn('token', response.data) + + # Now there should be one token + response = self.get(url, expected_code=200) + self.assertEqual(len(response.data), 1) + self.assertEqual(response.data[0]['active'], True) + self.assertEqual(response.data[0]['revoked'], False) + self.assertEqual(response.data[0]['in_use'], False) + expected_day = str( + datetime.datetime.now().date() + datetime.timedelta(days=365) + ) + self.assertEqual(response.data[0]['expiry'], expected_day) + + # Destroy token + self.delete( + reverse('api-token-detail', kwargs={'pk': response.data[0]['id']}), + expected_code=204, + ) + + # Get token without auth (should fail) + self.client.logout() + self.get(reverse('api-token'), expected_code=401) diff --git a/src/backend/InvenTree/users/tests.py b/src/backend/InvenTree/users/tests.py index 1d5d9686c0..9e123bb181 100644 --- a/src/backend/InvenTree/users/tests.py +++ b/src/backend/InvenTree/users/tests.py @@ -5,7 +5,8 @@ from django.contrib.auth.models import Group from django.test import TestCase, tag from django.urls import reverse -from InvenTree.unit_test import InvenTreeAPITestCase, InvenTreeTestCase +from common.settings import set_global_setting +from InvenTree.unit_test import AdminTestCase, InvenTreeAPITestCase, InvenTreeTestCase from users.models import ApiToken, Owner, RuleSet @@ -62,7 +63,7 @@ class RuleSetModelTest(TestCase): assigned_models = set() # Now check that each defined model is a valid table name - for key in RuleSet.get_ruleset_models().keys(): + for key in RuleSet.get_ruleset_models(): models = RuleSet.get_ruleset_models()[key] for m in models: @@ -270,6 +271,29 @@ class OwnerModelTest(InvenTreeTestCase): ) self.assertEqual(response['username'], self.username) + def test_display_name(self): + """Test the display name for the owner.""" + owner = Owner.get_owner(self.user) + self.assertEqual(owner.name(), 'testuser') + self.assertEqual(str(owner), 'testuser (user)') + + # Change setting + set_global_setting('DISPLAY_FULL_NAMES', True) + self.user.first_name = 'first' + self.user.last_name = 'last' + self.user.save() + owner = Owner.get_owner(self.user) + + # Now first / last should be used + self.assertEqual(owner.name(), 'first last') + self.assertEqual(str(owner), 'first last (user)') + + # Reset + set_global_setting('DISPLAY_FULL_NAMES', False) + self.user.first_name = '' + self.user.last_name = '' + self.user.save() + class MFALoginTest(InvenTreeAPITestCase): """Some simplistic tests to ensure that MFA is working.""" @@ -313,3 +337,15 @@ class MFALoginTest(InvenTreeAPITestCase): # Wrong login should not work auth_data['password'] = 'wrong' self.post(login_url, auth_data, expected_code=401) + + +class AdminTest(AdminTestCase): + """Tests for the admin interface integration.""" + + def test_admin(self): + """Test the admin URL.""" + my_token = self.helper( + model=ApiToken, model_kwargs={'user': self.user, 'name': 'test-token'} + ) + # Additionally test str fnc + self.assertEqual(str(my_token), my_token.token) diff --git a/src/backend/InvenTree/web/tests.py b/src/backend/InvenTree/web/tests.py index d63fe112d0..4603f25ded 100644 --- a/src/backend/InvenTree/web/tests.py +++ b/src/backend/InvenTree/web/tests.py @@ -37,12 +37,22 @@ class TemplateTagTest(InvenTreeTestCase): manifest_file = Path(__file__).parent.joinpath('static/web/.vite/manifest.json') # Try with removed manifest file - manifest_file.rename(manifest_file.with_suffix('.json.bak')) # Rename - resp = resp = spa_helper.spa_bundle() + new_name = manifest_file.rename( + manifest_file.with_suffix('.json.bak') + ) # Rename + resp = spa_helper.spa_bundle() self.assertIsNone(resp) - manifest_file.with_suffix('.json.bak').rename( - manifest_file.with_suffix('.json') - ) # Name back + + # Try with differing name + resp = spa_helper.spa_bundle(new_name) + self.assertIsNotNone(resp) + + # Broken manifest file + manifest_file.write_text('broken') + resp = spa_helper.spa_bundle(manifest_file) + self.assertIsNone(resp) + + new_name.rename(manifest_file.with_suffix('.json')) # Name back def test_spa_settings(self): """Test the 'spa_settings' template tag.""" @@ -78,6 +88,11 @@ class TemplateTagTest(InvenTreeTestCase): self.assertNotIn('show_server_selector', rsp) self.assertEqual(rsp['server_list'], ['aa', 'bb']) + def test_redirects(self): + """Test the redirect helper.""" + response = self.client.get('/assets/testpath') + self.assertEqual(response.url, '/static/web/assets/testpath') + class TestWebHelpers(InvenTreeAPITestCase): """Tests for the web helpers.""" diff --git a/src/backend/package-lock.json b/src/backend/package-lock.json index 41278700c9..e7d3870275 100644 --- a/src/backend/package-lock.json +++ b/src/backend/package-lock.json @@ -5,7 +5,7 @@ "packages": { "": { "dependencies": { - "eslint": "^9.9.0", + "eslint": "^9.11.0", "eslint-config-google": "^0.14.0" } }, @@ -51,9 +51,9 @@ } }, "node_modules/@eslint/config-array": { - "version": "0.17.1", - "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.17.1.tgz", - "integrity": "sha512-BlYOpej8AQ8Ev9xVqroV7a02JK3SkBAaN9GfMMH9W6Ch8FlQlkjGw4Ir7+FgYwfirivAf4t+GtzuAxqfukmISA==", + "version": "0.18.0", + "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.18.0.tgz", + "integrity": "sha512-fTxvnS1sRMu3+JjXwJG0j/i4RT9u4qJ+lqS/yCGap4lH4zZGzQ7tu+xZqQmcMZq5OBZDL4QRxQzRjkWcGt8IVw==", "dependencies": { "@eslint/object-schema": "^2.1.4", "debug": "^4.3.1", @@ -86,9 +86,9 @@ } }, "node_modules/@eslint/js": { - "version": "9.9.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.9.0.tgz", - "integrity": "sha512-hhetes6ZHP3BlXLxmd8K2SNgkhNSi+UcecbnwWKwpP7kyi/uC75DJ1lOOBO3xrC4jyojtGE3YxKZPHfk4yrgug==", + "version": "9.11.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.11.0.tgz", + "integrity": "sha512-LPkkenkDqyzTFauZLLAPhIb48fj6drrfMvRGSL9tS3AcZBSVTllemLSNyCvHNNL2t797S/6DJNSIwRwXgMO/eQ==", "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" } @@ -101,6 +101,17 @@ "node": "^18.18.0 || ^20.9.0 || >=21.1.0" } }, + "node_modules/@eslint/plugin-kit": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.2.0.tgz", + "integrity": "sha512-vH9PiIMMwvhCx31Af3HiGzsVNULDbyVkHXwlemn/B0TFj/00ho3y55efXrUZTfQipxoHC5u4xq6zblww1zm1Ig==", + "dependencies": { + "levn": "^0.4.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, "node_modules/@humanwhocodes/module-importer": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", @@ -322,15 +333,16 @@ } }, "node_modules/eslint": { - "version": "9.9.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.9.0.tgz", - "integrity": "sha512-JfiKJrbx0506OEerjK2Y1QlldtBxkAlLxT5OEcRF8uaQ86noDe2k31Vw9rnSWv+MXZHj7OOUV/dA0AhdLFcyvA==", + "version": "9.11.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.11.0.tgz", + "integrity": "sha512-yVS6XODx+tMFMDFcG4+Hlh+qG7RM6cCJXtQhCKLSsr3XkLvWggHjCqjfh0XsPPnt1c56oaT6PMgW9XWQQjdHXA==", "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", "@eslint-community/regexpp": "^4.11.0", - "@eslint/config-array": "^0.17.1", + "@eslint/config-array": "^0.18.0", "@eslint/eslintrc": "^3.1.0", - "@eslint/js": "9.9.0", + "@eslint/js": "9.11.0", + "@eslint/plugin-kit": "^0.2.0", "@humanwhocodes/module-importer": "^1.0.1", "@humanwhocodes/retry": "^0.3.0", "@nodelib/fs.walk": "^1.2.8", @@ -353,7 +365,6 @@ "is-glob": "^4.0.0", "is-path-inside": "^3.0.3", "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.4.1", "lodash.merge": "^4.6.2", "minimatch": "^3.1.2", "natural-compare": "^1.4.0", diff --git a/src/backend/package.json b/src/backend/package.json index bb932734b6..7884e20401 100644 --- a/src/backend/package.json +++ b/src/backend/package.json @@ -1,6 +1,6 @@ { "dependencies": { - "eslint": "^9.9.0", + "eslint": "^9.11.0", "eslint-config-google": "^0.14.0" }, "type": "module" diff --git a/src/backend/requirements-dev.txt b/src/backend/requirements-dev.txt index 72b7aba4b5..eb26cd6100 100644 --- a/src/backend/requirements-dev.txt +++ b/src/backend/requirements-dev.txt @@ -6,63 +6,78 @@ asgiref==3.8.1 \ # via # -c src/backend/requirements.txt # django -build==1.2.1 \ - --hash=sha256:526263f4870c26f26c433545579475377b2b7588b6f1eac76a001e873ae3e19d \ - --hash=sha256:75e10f767a433d9a86e50d83f418e83efc18ede923ee5ff7df93b6cb0306c5d4 +build==1.2.2.post1 \ + --hash=sha256:1d61c0887fa860c01971625baae8bdd338e517b836a2f70dd1f7aa3a6b2fc5b5 \ + --hash=sha256:b36993e92ca9375a219c99e606a122ff365a760a2d4bba0caa09bd5278b608b7 # via pip-tools -cffi==1.16.0 \ - --hash=sha256:0c9ef6ff37e974b73c25eecc13952c55bceed9112be2d9d938ded8e856138bcc \ - --hash=sha256:131fd094d1065b19540c3d72594260f118b231090295d8c34e19a7bbcf2e860a \ - --hash=sha256:1b8ebc27c014c59692bb2664c7d13ce7a6e9a629be20e54e7271fa696ff2b417 \ - --hash=sha256:2c56b361916f390cd758a57f2e16233eb4f64bcbeee88a4881ea90fca14dc6ab \ - --hash=sha256:2d92b25dbf6cae33f65005baf472d2c245c050b1ce709cc4588cdcdd5495b520 \ - --hash=sha256:31d13b0f99e0836b7ff893d37af07366ebc90b678b6664c955b54561fc36ef36 \ - --hash=sha256:32c68ef735dbe5857c810328cb2481e24722a59a2003018885514d4c09af9743 \ - --hash=sha256:3686dffb02459559c74dd3d81748269ffb0eb027c39a6fc99502de37d501faa8 \ - --hash=sha256:582215a0e9adbe0e379761260553ba11c58943e4bbe9c36430c4ca6ac74b15ed \ - --hash=sha256:5b50bf3f55561dac5438f8e70bfcdfd74543fd60df5fa5f62d94e5867deca684 \ - --hash=sha256:5bf44d66cdf9e893637896c7faa22298baebcd18d1ddb6d2626a6e39793a1d56 \ - --hash=sha256:6602bc8dc6f3a9e02b6c22c4fc1e47aa50f8f8e6d3f78a5e16ac33ef5fefa324 \ - --hash=sha256:673739cb539f8cdaa07d92d02efa93c9ccf87e345b9a0b556e3ecc666718468d \ - --hash=sha256:68678abf380b42ce21a5f2abde8efee05c114c2fdb2e9eef2efdb0257fba1235 \ - --hash=sha256:68e7c44931cc171c54ccb702482e9fc723192e88d25a0e133edd7aff8fcd1f6e \ - --hash=sha256:6b3d6606d369fc1da4fd8c357d026317fbb9c9b75d36dc16e90e84c26854b088 \ - --hash=sha256:748dcd1e3d3d7cd5443ef03ce8685043294ad6bd7c02a38d1bd367cfd968e000 \ - --hash=sha256:7651c50c8c5ef7bdb41108b7b8c5a83013bfaa8a935590c5d74627c047a583c7 \ - --hash=sha256:7b78010e7b97fef4bee1e896df8a4bbb6712b7f05b7ef630f9d1da00f6444d2e \ - --hash=sha256:7e61e3e4fa664a8588aa25c883eab612a188c725755afff6289454d6362b9673 \ - --hash=sha256:80876338e19c951fdfed6198e70bc88f1c9758b94578d5a7c4c91a87af3cf31c \ - --hash=sha256:8895613bcc094d4a1b2dbe179d88d7fb4a15cee43c052e8885783fac397d91fe \ - --hash=sha256:88e2b3c14bdb32e440be531ade29d3c50a1a59cd4e51b1dd8b0865c54ea5d2e2 \ - --hash=sha256:8f8e709127c6c77446a8c0a8c8bf3c8ee706a06cd44b1e827c3e6a2ee6b8c098 \ - --hash=sha256:9cb4a35b3642fc5c005a6755a5d17c6c8b6bcb6981baf81cea8bfbc8903e8ba8 \ - --hash=sha256:9f90389693731ff1f659e55c7d1640e2ec43ff725cc61b04b2f9c6d8d017df6a \ - --hash=sha256:a09582f178759ee8128d9270cd1344154fd473bb77d94ce0aeb2a93ebf0feaf0 \ - --hash=sha256:a6a14b17d7e17fa0d207ac08642c8820f84f25ce17a442fd15e27ea18d67c59b \ - --hash=sha256:a72e8961a86d19bdb45851d8f1f08b041ea37d2bd8d4fd19903bc3083d80c896 \ - --hash=sha256:abd808f9c129ba2beda4cfc53bde801e5bcf9d6e0f22f095e45327c038bfe68e \ - --hash=sha256:ac0f5edd2360eea2f1daa9e26a41db02dd4b0451b48f7c318e217ee092a213e9 \ - --hash=sha256:b29ebffcf550f9da55bec9e02ad430c992a87e5f512cd63388abb76f1036d8d2 \ - --hash=sha256:b2ca4e77f9f47c55c194982e10f058db063937845bb2b7a86c84a6cfe0aefa8b \ - --hash=sha256:b7be2d771cdba2942e13215c4e340bfd76398e9227ad10402a8767ab1865d2e6 \ - --hash=sha256:b84834d0cf97e7d27dd5b7f3aca7b6e9263c56308ab9dc8aae9784abb774d404 \ - --hash=sha256:b86851a328eedc692acf81fb05444bdf1891747c25af7529e39ddafaf68a4f3f \ - --hash=sha256:bcb3ef43e58665bbda2fb198698fcae6776483e0c4a631aa5647806c25e02cc0 \ - --hash=sha256:c0f31130ebc2d37cdd8e44605fb5fa7ad59049298b3f745c74fa74c62fbfcfc4 \ - --hash=sha256:c6a164aa47843fb1b01e941d385aab7215563bb8816d80ff3a363a9f8448a8dc \ - --hash=sha256:d8a9d3ebe49f084ad71f9269834ceccbf398253c9fac910c4fd7053ff1386936 \ - --hash=sha256:db8e577c19c0fda0beb7e0d4e09e0ba74b1e4c092e0e40bfa12fe05b6f6d75ba \ - --hash=sha256:dc9b18bf40cc75f66f40a7379f6a9513244fe33c0e8aa72e2d56b0196a7ef872 \ - --hash=sha256:e09f3ff613345df5e8c3667da1d918f9149bd623cd9070c983c013792a9a62eb \ - --hash=sha256:e4108df7fe9b707191e55f33efbcb2d81928e10cea45527879a4749cbe472614 \ - --hash=sha256:e6024675e67af929088fda399b2094574609396b1decb609c55fa58b028a32a1 \ - --hash=sha256:e70f54f1796669ef691ca07d046cd81a29cb4deb1e5f942003f401c0c4a2695d \ - --hash=sha256:e715596e683d2ce000574bae5d07bd522c781a822866c20495e52520564f0969 \ - --hash=sha256:e760191dd42581e023a68b758769e2da259b5d52e3103c6060ddc02c9edb8d7b \ - --hash=sha256:ed86a35631f7bfbb28e108dd96773b9d5a6ce4811cf6ea468bb6a359b256b1e4 \ - --hash=sha256:ee07e47c12890ef248766a6e55bd38ebfb2bb8edd4142d56db91b21ea68b7627 \ - --hash=sha256:fa3a0128b152627161ce47201262d3140edb5a5c3da88d73a1b790a959126956 \ - --hash=sha256:fcc8eb6d5902bb1cf6dc4f187ee3ea80a1eba0a89aba40a5cb20a5087d961357 +cffi==1.17.1 \ + --hash=sha256:045d61c734659cc045141be4bae381a41d89b741f795af1dd018bfb532fd0df8 \ + --hash=sha256:0984a4925a435b1da406122d4d7968dd861c1385afe3b45ba82b750f229811e2 \ + --hash=sha256:0e2b1fac190ae3ebfe37b979cc1ce69c81f4e4fe5746bb401dca63a9062cdaf1 \ + --hash=sha256:0f048dcf80db46f0098ccac01132761580d28e28bc0f78ae0d58048063317e15 \ + --hash=sha256:1257bdabf294dceb59f5e70c64a3e2f462c30c7ad68092d01bbbfb1c16b1ba36 \ + --hash=sha256:1c39c6016c32bc48dd54561950ebd6836e1670f2ae46128f67cf49e789c52824 \ + --hash=sha256:1d599671f396c4723d016dbddb72fe8e0397082b0a77a4fab8028923bec050e8 \ + --hash=sha256:28b16024becceed8c6dfbc75629e27788d8a3f9030691a1dbf9821a128b22c36 \ + --hash=sha256:2bb1a08b8008b281856e5971307cc386a8e9c5b625ac297e853d36da6efe9c17 \ + --hash=sha256:30c5e0cb5ae493c04c8b42916e52ca38079f1b235c2f8ae5f4527b963c401caf \ + --hash=sha256:31000ec67d4221a71bd3f67df918b1f88f676f1c3b535a7eb473255fdc0b83fc \ + --hash=sha256:386c8bf53c502fff58903061338ce4f4950cbdcb23e2902d86c0f722b786bbe3 \ + --hash=sha256:3edc8d958eb099c634dace3c7e16560ae474aa3803a5df240542b305d14e14ed \ + --hash=sha256:45398b671ac6d70e67da8e4224a065cec6a93541bb7aebe1b198a61b58c7b702 \ + --hash=sha256:46bf43160c1a35f7ec506d254e5c890f3c03648a4dbac12d624e4490a7046cd1 \ + --hash=sha256:4ceb10419a9adf4460ea14cfd6bc43d08701f0835e979bf821052f1805850fe8 \ + --hash=sha256:51392eae71afec0d0c8fb1a53b204dbb3bcabcb3c9b807eedf3e1e6ccf2de903 \ + --hash=sha256:5da5719280082ac6bd9aa7becb3938dc9f9cbd57fac7d2871717b1feb0902ab6 \ + --hash=sha256:610faea79c43e44c71e1ec53a554553fa22321b65fae24889706c0a84d4ad86d \ + --hash=sha256:636062ea65bd0195bc012fea9321aca499c0504409f413dc88af450b57ffd03b \ + --hash=sha256:6883e737d7d9e4899a8a695e00ec36bd4e5e4f18fabe0aca0efe0a4b44cdb13e \ + --hash=sha256:6b8b4a92e1c65048ff98cfe1f735ef8f1ceb72e3d5f0c25fdb12087a23da22be \ + --hash=sha256:6f17be4345073b0a7b8ea599688f692ac3ef23ce28e5df79c04de519dbc4912c \ + --hash=sha256:706510fe141c86a69c8ddc029c7910003a17353970cff3b904ff0686a5927683 \ + --hash=sha256:72e72408cad3d5419375fc87d289076ee319835bdfa2caad331e377589aebba9 \ + --hash=sha256:733e99bc2df47476e3848417c5a4540522f234dfd4ef3ab7fafdf555b082ec0c \ + --hash=sha256:7596d6620d3fa590f677e9ee430df2958d2d6d6de2feeae5b20e82c00b76fbf8 \ + --hash=sha256:78122be759c3f8a014ce010908ae03364d00a1f81ab5c7f4a7a5120607ea56e1 \ + --hash=sha256:805b4371bf7197c329fcb3ead37e710d1bca9da5d583f5073b799d5c5bd1eee4 \ + --hash=sha256:85a950a4ac9c359340d5963966e3e0a94a676bd6245a4b55bc43949eee26a655 \ + --hash=sha256:8f2cdc858323644ab277e9bb925ad72ae0e67f69e804f4898c070998d50b1a67 \ + --hash=sha256:9755e4345d1ec879e3849e62222a18c7174d65a6a92d5b346b1863912168b595 \ + --hash=sha256:98e3969bcff97cae1b2def8ba499ea3d6f31ddfdb7635374834cf89a1a08ecf0 \ + --hash=sha256:a08d7e755f8ed21095a310a693525137cfe756ce62d066e53f502a83dc550f65 \ + --hash=sha256:a1ed2dd2972641495a3ec98445e09766f077aee98a1c896dcb4ad0d303628e41 \ + --hash=sha256:a24ed04c8ffd54b0729c07cee15a81d964e6fee0e3d4d342a27b020d22959dc6 \ + --hash=sha256:a45e3c6913c5b87b3ff120dcdc03f6131fa0065027d0ed7ee6190736a74cd401 \ + --hash=sha256:a9b15d491f3ad5d692e11f6b71f7857e7835eb677955c00cc0aefcd0669adaf6 \ + --hash=sha256:ad9413ccdeda48c5afdae7e4fa2192157e991ff761e7ab8fdd8926f40b160cc3 \ + --hash=sha256:b2ab587605f4ba0bf81dc0cb08a41bd1c0a5906bd59243d56bad7668a6fc6c16 \ + --hash=sha256:b62ce867176a75d03a665bad002af8e6d54644fad99a3c70905c543130e39d93 \ + --hash=sha256:c03e868a0b3bc35839ba98e74211ed2b05d2119be4e8a0f224fba9384f1fe02e \ + --hash=sha256:c59d6e989d07460165cc5ad3c61f9fd8f1b4796eacbd81cee78957842b834af4 \ + --hash=sha256:c7eac2ef9b63c79431bc4b25f1cd649d7f061a28808cbc6c47b534bd789ef964 \ + --hash=sha256:c9c3d058ebabb74db66e431095118094d06abf53284d9c81f27300d0e0d8bc7c \ + --hash=sha256:ca74b8dbe6e8e8263c0ffd60277de77dcee6c837a3d0881d8c1ead7268c9e576 \ + --hash=sha256:caaf0640ef5f5517f49bc275eca1406b0ffa6aa184892812030f04c2abf589a0 \ + --hash=sha256:cdf5ce3acdfd1661132f2a9c19cac174758dc2352bfe37d98aa7512c6b7178b3 \ + --hash=sha256:d016c76bdd850f3c626af19b0542c9677ba156e4ee4fccfdd7848803533ef662 \ + --hash=sha256:d01b12eeeb4427d3110de311e1774046ad344f5b1a7403101878976ecd7a10f3 \ + --hash=sha256:d63afe322132c194cf832bfec0dc69a99fb9bb6bbd550f161a49e9e855cc78ff \ + --hash=sha256:da95af8214998d77a98cc14e3a3bd00aa191526343078b530ceb0bd710fb48a5 \ + --hash=sha256:dd398dbc6773384a17fe0d3e7eeb8d1a21c2200473ee6806bb5e6a8e62bb73dd \ + --hash=sha256:de2ea4b5833625383e464549fec1bc395c1bdeeb5f25c4a3a82b5a8c756ec22f \ + --hash=sha256:de55b766c7aa2e2a3092c51e0483d700341182f08e67c63630d5b6f200bb28e5 \ + --hash=sha256:df8b1c11f177bc2313ec4b2d46baec87a5f3e71fc8b45dab2ee7cae86d9aba14 \ + --hash=sha256:e03eab0a8677fa80d646b5ddece1cbeaf556c313dcfac435ba11f107ba117b5d \ + --hash=sha256:e221cf152cff04059d011ee126477f0d9588303eb57e88923578ace7baad17f9 \ + --hash=sha256:e31ae45bc2e29f6b2abd0de1cc3b9d5205aa847cafaecb8af1476a609a2f6eb7 \ + --hash=sha256:edae79245293e15384b51f88b00613ba9f7198016a5948b5dddf4917d4d26382 \ + --hash=sha256:f1e22e8c4419538cb197e4dd60acc919d7696e5ef98ee4da4e01d3f8cfa4cc5a \ + --hash=sha256:f3a2b4222ce6b60e2e8b337bb9596923045681d71e5a082783484d845390938e \ + --hash=sha256:f6a16c31041f09ead72d69f583767292f750d24913dadacf5756b966aacb3f1a \ + --hash=sha256:f75c7ab1f9e4aca5414ed4d8e5c0e303a34f4421f8a0d47a4d019ceff0ab6af4 \ + --hash=sha256:f79fc4fc25f1c8698ff97788206bb3c2598949bfe0fef03d299eb1b5356ada99 \ + --hash=sha256:f7f5baafcc48261359e14bcd6d9bff6d4b28d9103847c9e136694cb0501aef87 \ + --hash=sha256:fc48c783f9c87e60831201f2cce7f3b2e4846bf4d8728eabe54d60700b318a0b # via # -c src/backend/requirements.txt # cryptography @@ -70,97 +85,112 @@ cfgv==3.4.0 \ --hash=sha256:b7265b1f29fd3316bfcd2b330d63d024f2bfd8bcb8b0272f8e19a504856c48f9 \ --hash=sha256:e52591d4c5f5dead8e0f673fb16db7949d2cfb3f7da4582893288f0ded8fe560 # via pre-commit -charset-normalizer==3.3.2 \ - --hash=sha256:06435b539f889b1f6f4ac1758871aae42dc3a8c0e24ac9e60c2384973ad73027 \ - --hash=sha256:06a81e93cd441c56a9b65d8e1d043daeb97a3d0856d177d5c90ba85acb3db087 \ - --hash=sha256:0a55554a2fa0d408816b3b5cedf0045f4b8e1a6065aec45849de2d6f3f8e9786 \ - --hash=sha256:0b2b64d2bb6d3fb9112bafa732def486049e63de9618b5843bcdd081d8144cd8 \ - --hash=sha256:10955842570876604d404661fbccbc9c7e684caf432c09c715ec38fbae45ae09 \ - --hash=sha256:122c7fa62b130ed55f8f285bfd56d5f4b4a5b503609d181f9ad85e55c89f4185 \ - --hash=sha256:1ceae2f17a9c33cb48e3263960dc5fc8005351ee19db217e9b1bb15d28c02574 \ - --hash=sha256:1d3193f4a680c64b4b6a9115943538edb896edc190f0b222e73761716519268e \ - --hash=sha256:1f79682fbe303db92bc2b1136016a38a42e835d932bab5b3b1bfcfbf0640e519 \ - --hash=sha256:2127566c664442652f024c837091890cb1942c30937add288223dc895793f898 \ - --hash=sha256:22afcb9f253dac0696b5a4be4a1c0f8762f8239e21b99680099abd9b2b1b2269 \ - --hash=sha256:25baf083bf6f6b341f4121c2f3c548875ee6f5339300e08be3f2b2ba1721cdd3 \ - --hash=sha256:2e81c7b9c8979ce92ed306c249d46894776a909505d8f5a4ba55b14206e3222f \ - --hash=sha256:3287761bc4ee9e33561a7e058c72ac0938c4f57fe49a09eae428fd88aafe7bb6 \ - --hash=sha256:34d1c8da1e78d2e001f363791c98a272bb734000fcef47a491c1e3b0505657a8 \ - --hash=sha256:37e55c8e51c236f95b033f6fb391d7d7970ba5fe7ff453dad675e88cf303377a \ - --hash=sha256:3d47fa203a7bd9c5b6cee4736ee84ca03b8ef23193c0d1ca99b5089f72645c73 \ - --hash=sha256:3e4d1f6587322d2788836a99c69062fbb091331ec940e02d12d179c1d53e25fc \ - --hash=sha256:42cb296636fcc8b0644486d15c12376cb9fa75443e00fb25de0b8602e64c1714 \ - --hash=sha256:45485e01ff4d3630ec0d9617310448a8702f70e9c01906b0d0118bdf9d124cf2 \ - --hash=sha256:4a78b2b446bd7c934f5dcedc588903fb2f5eec172f3d29e52a9096a43722adfc \ - --hash=sha256:4ab2fe47fae9e0f9dee8c04187ce5d09f48eabe611be8259444906793ab7cbce \ - --hash=sha256:4d0d1650369165a14e14e1e47b372cfcb31d6ab44e6e33cb2d4e57265290044d \ - --hash=sha256:549a3a73da901d5bc3ce8d24e0600d1fa85524c10287f6004fbab87672bf3e1e \ - --hash=sha256:55086ee1064215781fff39a1af09518bc9255b50d6333f2e4c74ca09fac6a8f6 \ - --hash=sha256:572c3763a264ba47b3cf708a44ce965d98555f618ca42c926a9c1616d8f34269 \ - --hash=sha256:573f6eac48f4769d667c4442081b1794f52919e7edada77495aaed9236d13a96 \ - --hash=sha256:5b4c145409bef602a690e7cfad0a15a55c13320ff7a3ad7ca59c13bb8ba4d45d \ - --hash=sha256:6463effa3186ea09411d50efc7d85360b38d5f09b870c48e4600f63af490e56a \ - --hash=sha256:65f6f63034100ead094b8744b3b97965785388f308a64cf8d7c34f2f2e5be0c4 \ - --hash=sha256:663946639d296df6a2bb2aa51b60a2454ca1cb29835324c640dafb5ff2131a77 \ - --hash=sha256:6897af51655e3691ff853668779c7bad41579facacf5fd7253b0133308cf000d \ - --hash=sha256:68d1f8a9e9e37c1223b656399be5d6b448dea850bed7d0f87a8311f1ff3dabb0 \ - --hash=sha256:6ac7ffc7ad6d040517be39eb591cac5ff87416c2537df6ba3cba3bae290c0fed \ - --hash=sha256:6b3251890fff30ee142c44144871185dbe13b11bab478a88887a639655be1068 \ - --hash=sha256:6c4caeef8fa63d06bd437cd4bdcf3ffefe6738fb1b25951440d80dc7df8c03ac \ - --hash=sha256:6ef1d82a3af9d3eecdba2321dc1b3c238245d890843e040e41e470ffa64c3e25 \ - --hash=sha256:753f10e867343b4511128c6ed8c82f7bec3bd026875576dfd88483c5c73b2fd8 \ - --hash=sha256:7cd13a2e3ddeed6913a65e66e94b51d80a041145a026c27e6bb76c31a853c6ab \ - --hash=sha256:7ed9e526742851e8d5cc9e6cf41427dfc6068d4f5a3bb03659444b4cabf6bc26 \ - --hash=sha256:7f04c839ed0b6b98b1a7501a002144b76c18fb1c1850c8b98d458ac269e26ed2 \ - --hash=sha256:802fe99cca7457642125a8a88a084cef28ff0cf9407060f7b93dca5aa25480db \ - --hash=sha256:80402cd6ee291dcb72644d6eac93785fe2c8b9cb30893c1af5b8fdd753b9d40f \ - --hash=sha256:8465322196c8b4d7ab6d1e049e4c5cb460d0394da4a27d23cc242fbf0034b6b5 \ - --hash=sha256:86216b5cee4b06df986d214f664305142d9c76df9b6512be2738aa72a2048f99 \ - --hash=sha256:87d1351268731db79e0f8e745d92493ee2841c974128ef629dc518b937d9194c \ - --hash=sha256:8bdb58ff7ba23002a4c5808d608e4e6c687175724f54a5dade5fa8c67b604e4d \ - --hash=sha256:8c622a5fe39a48f78944a87d4fb8a53ee07344641b0562c540d840748571b811 \ - --hash=sha256:8d756e44e94489e49571086ef83b2bb8ce311e730092d2c34ca8f7d925cb20aa \ - --hash=sha256:8f4a014bc36d3c57402e2977dada34f9c12300af536839dc38c0beab8878f38a \ - --hash=sha256:9063e24fdb1e498ab71cb7419e24622516c4a04476b17a2dab57e8baa30d6e03 \ - --hash=sha256:90d558489962fd4918143277a773316e56c72da56ec7aa3dc3dbbe20fdfed15b \ - --hash=sha256:923c0c831b7cfcb071580d3f46c4baf50f174be571576556269530f4bbd79d04 \ - --hash=sha256:95f2a5796329323b8f0512e09dbb7a1860c46a39da62ecb2324f116fa8fdc85c \ - --hash=sha256:96b02a3dc4381e5494fad39be677abcb5e6634bf7b4fa83a6dd3112607547001 \ - --hash=sha256:9f96df6923e21816da7e0ad3fd47dd8f94b2a5ce594e00677c0013018b813458 \ - --hash=sha256:a10af20b82360ab00827f916a6058451b723b4e65030c5a18577c8b2de5b3389 \ - --hash=sha256:a50aebfa173e157099939b17f18600f72f84eed3049e743b68ad15bd69b6bf99 \ - --hash=sha256:a981a536974bbc7a512cf44ed14938cf01030a99e9b3a06dd59578882f06f985 \ - --hash=sha256:a9a8e9031d613fd2009c182b69c7b2c1ef8239a0efb1df3f7c8da66d5dd3d537 \ - --hash=sha256:ae5f4161f18c61806f411a13b0310bea87f987c7d2ecdbdaad0e94eb2e404238 \ - --hash=sha256:aed38f6e4fb3f5d6bf81bfa990a07806be9d83cf7bacef998ab1a9bd660a581f \ - --hash=sha256:b01b88d45a6fcb69667cd6d2f7a9aeb4bf53760d7fc536bf679ec94fe9f3ff3d \ - --hash=sha256:b261ccdec7821281dade748d088bb6e9b69e6d15b30652b74cbbac25e280b796 \ - --hash=sha256:b2b0a0c0517616b6869869f8c581d4eb2dd83a4d79e0ebcb7d373ef9956aeb0a \ - --hash=sha256:b4a23f61ce87adf89be746c8a8974fe1c823c891d8f86eb218bb957c924bb143 \ - --hash=sha256:bd8f7df7d12c2db9fab40bdd87a7c09b1530128315d047a086fa3ae3435cb3a8 \ - --hash=sha256:beb58fe5cdb101e3a055192ac291b7a21e3b7ef4f67fa1d74e331a7f2124341c \ - --hash=sha256:c002b4ffc0be611f0d9da932eb0f704fe2602a9a949d1f738e4c34c75b0863d5 \ - --hash=sha256:c083af607d2515612056a31f0a8d9e0fcb5876b7bfc0abad3ecd275bc4ebc2d5 \ - --hash=sha256:c180f51afb394e165eafe4ac2936a14bee3eb10debc9d9e4db8958fe36afe711 \ - --hash=sha256:c235ebd9baae02f1b77bcea61bce332cb4331dc3617d254df3323aa01ab47bd4 \ - --hash=sha256:cd70574b12bb8a4d2aaa0094515df2463cb429d8536cfb6c7ce983246983e5a6 \ - --hash=sha256:d0eccceffcb53201b5bfebb52600a5fb483a20b61da9dbc885f8b103cbe7598c \ - --hash=sha256:d965bba47ddeec8cd560687584e88cf699fd28f192ceb452d1d7ee807c5597b7 \ - --hash=sha256:db364eca23f876da6f9e16c9da0df51aa4f104a972735574842618b8c6d999d4 \ - --hash=sha256:ddbb2551d7e0102e7252db79ba445cdab71b26640817ab1e3e3648dad515003b \ - --hash=sha256:deb6be0ac38ece9ba87dea880e438f25ca3eddfac8b002a2ec3d9183a454e8ae \ - --hash=sha256:e06ed3eb3218bc64786f7db41917d4e686cc4856944f53d5bdf83a6884432e12 \ - --hash=sha256:e27ad930a842b4c5eb8ac0016b0a54f5aebbe679340c26101df33424142c143c \ - --hash=sha256:e537484df0d8f426ce2afb2d0f8e1c3d0b114b83f8850e5f2fbea0e797bd82ae \ - --hash=sha256:eb00ed941194665c332bf8e078baf037d6c35d7c4f3102ea2d4f16ca94a26dc8 \ - --hash=sha256:eb6904c354526e758fda7167b33005998fb68c46fbc10e013ca97f21ca5c8887 \ - --hash=sha256:eb8821e09e916165e160797a6c17edda0679379a4be5c716c260e836e122f54b \ - --hash=sha256:efcb3f6676480691518c177e3b465bcddf57cea040302f9f4e6e191af91174d4 \ - --hash=sha256:f27273b60488abe721a075bcca6d7f3964f9f6f067c8c4c605743023d7d3944f \ - --hash=sha256:f30c3cb33b24454a82faecaf01b19c18562b1e89558fb6c56de4d9118a032fd5 \ - --hash=sha256:fb69256e180cb6c8a894fee62b3afebae785babc1ee98b81cdf68bbca1987f33 \ - --hash=sha256:fd1abc0d89e30cc4e02e4064dc67fcc51bd941eb395c502aac3ec19fab46b519 \ - --hash=sha256:ff8fa367d09b717b2a17a052544193ad76cd49979c805768879cb63d9ca50561 +charset-normalizer==3.4.0 \ + --hash=sha256:0099d79bdfcf5c1f0c2c72f91516702ebf8b0b8ddd8905f97a8aecf49712c621 \ + --hash=sha256:0713f3adb9d03d49d365b70b84775d0a0d18e4ab08d12bc46baa6132ba78aaf6 \ + --hash=sha256:07afec21bbbbf8a5cc3651aa96b980afe2526e7f048fdfb7f1014d84acc8b6d8 \ + --hash=sha256:0b309d1747110feb25d7ed6b01afdec269c647d382c857ef4663bbe6ad95a912 \ + --hash=sha256:0d99dd8ff461990f12d6e42c7347fd9ab2532fb70e9621ba520f9e8637161d7c \ + --hash=sha256:0de7b687289d3c1b3e8660d0741874abe7888100efe14bd0f9fd7141bcbda92b \ + --hash=sha256:1110e22af8ca26b90bd6364fe4c763329b0ebf1ee213ba32b68c73de5752323d \ + --hash=sha256:130272c698667a982a5d0e626851ceff662565379baf0ff2cc58067b81d4f11d \ + --hash=sha256:136815f06a3ae311fae551c3df1f998a1ebd01ddd424aa5603a4336997629e95 \ + --hash=sha256:14215b71a762336254351b00ec720a8e85cada43b987da5a042e4ce3e82bd68e \ + --hash=sha256:1db4e7fefefd0f548d73e2e2e041f9df5c59e178b4c72fbac4cc6f535cfb1565 \ + --hash=sha256:1ffd9493de4c922f2a38c2bf62b831dcec90ac673ed1ca182fe11b4d8e9f2a64 \ + --hash=sha256:2006769bd1640bdf4d5641c69a3d63b71b81445473cac5ded39740a226fa88ab \ + --hash=sha256:20587d20f557fe189b7947d8e7ec5afa110ccf72a3128d61a2a387c3313f46be \ + --hash=sha256:223217c3d4f82c3ac5e29032b3f1c2eb0fb591b72161f86d93f5719079dae93e \ + --hash=sha256:27623ba66c183eca01bf9ff833875b459cad267aeeb044477fedac35e19ba907 \ + --hash=sha256:285e96d9d53422efc0d7a17c60e59f37fbf3dfa942073f666db4ac71e8d726d0 \ + --hash=sha256:2de62e8801ddfff069cd5c504ce3bc9672b23266597d4e4f50eda28846c322f2 \ + --hash=sha256:2f6c34da58ea9c1a9515621f4d9ac379871a8f21168ba1b5e09d74250de5ad62 \ + --hash=sha256:309a7de0a0ff3040acaebb35ec45d18db4b28232f21998851cfa709eeff49d62 \ + --hash=sha256:35c404d74c2926d0287fbd63ed5d27eb911eb9e4a3bb2c6d294f3cfd4a9e0c23 \ + --hash=sha256:3710a9751938947e6327ea9f3ea6332a09bf0ba0c09cae9cb1f250bd1f1549bc \ + --hash=sha256:3d59d125ffbd6d552765510e3f31ed75ebac2c7470c7274195b9161a32350284 \ + --hash=sha256:40d3ff7fc90b98c637bda91c89d51264a3dcf210cade3a2c6f838c7268d7a4ca \ + --hash=sha256:425c5f215d0eecee9a56cdb703203dda90423247421bf0d67125add85d0c4455 \ + --hash=sha256:43193c5cda5d612f247172016c4bb71251c784d7a4d9314677186a838ad34858 \ + --hash=sha256:44aeb140295a2f0659e113b31cfe92c9061622cadbc9e2a2f7b8ef6b1e29ef4b \ + --hash=sha256:47334db71978b23ebcf3c0f9f5ee98b8d65992b65c9c4f2d34c2eaf5bcaf0594 \ + --hash=sha256:4796efc4faf6b53a18e3d46343535caed491776a22af773f366534056c4e1fbc \ + --hash=sha256:4a51b48f42d9358460b78725283f04bddaf44a9358197b889657deba38f329db \ + --hash=sha256:4b67fdab07fdd3c10bb21edab3cbfe8cf5696f453afce75d815d9d7223fbe88b \ + --hash=sha256:4ec9dd88a5b71abfc74e9df5ebe7921c35cbb3b641181a531ca65cdb5e8e4dea \ + --hash=sha256:4f9fc98dad6c2eaa32fc3af1417d95b5e3d08aff968df0cd320066def971f9a6 \ + --hash=sha256:54b6a92d009cbe2fb11054ba694bc9e284dad30a26757b1e372a1fdddaf21920 \ + --hash=sha256:55f56e2ebd4e3bc50442fbc0888c9d8c94e4e06a933804e2af3e89e2f9c1c749 \ + --hash=sha256:5726cf76c982532c1863fb64d8c6dd0e4c90b6ece9feb06c9f202417a31f7dd7 \ + --hash=sha256:5d447056e2ca60382d460a604b6302d8db69476fd2015c81e7c35417cfabe4cd \ + --hash=sha256:5ed2e36c3e9b4f21dd9422f6893dec0abf2cca553af509b10cd630f878d3eb99 \ + --hash=sha256:5ff2ed8194587faf56555927b3aa10e6fb69d931e33953943bc4f837dfee2242 \ + --hash=sha256:62f60aebecfc7f4b82e3f639a7d1433a20ec32824db2199a11ad4f5e146ef5ee \ + --hash=sha256:63bc5c4ae26e4bc6be6469943b8253c0fd4e4186c43ad46e713ea61a0ba49129 \ + --hash=sha256:6b40e8d38afe634559e398cc32b1472f376a4099c75fe6299ae607e404c033b2 \ + --hash=sha256:6b493a043635eb376e50eedf7818f2f322eabbaa974e948bd8bdd29eb7ef2a51 \ + --hash=sha256:6dba5d19c4dfab08e58d5b36304b3f92f3bd5d42c1a3fa37b5ba5cdf6dfcbcee \ + --hash=sha256:6fd30dc99682dc2c603c2b315bded2799019cea829f8bf57dc6b61efde6611c8 \ + --hash=sha256:707b82d19e65c9bd28b81dde95249b07bf9f5b90ebe1ef17d9b57473f8a64b7b \ + --hash=sha256:7706f5850360ac01d80c89bcef1640683cc12ed87f42579dab6c5d3ed6888613 \ + --hash=sha256:7782afc9b6b42200f7362858f9e73b1f8316afb276d316336c0ec3bd73312742 \ + --hash=sha256:79983512b108e4a164b9c8d34de3992f76d48cadc9554c9e60b43f308988aabe \ + --hash=sha256:7f683ddc7eedd742e2889d2bfb96d69573fde1d92fcb811979cdb7165bb9c7d3 \ + --hash=sha256:82357d85de703176b5587dbe6ade8ff67f9f69a41c0733cf2425378b49954de5 \ + --hash=sha256:84450ba661fb96e9fd67629b93d2941c871ca86fc38d835d19d4225ff946a631 \ + --hash=sha256:86f4e8cca779080f66ff4f191a685ced73d2f72d50216f7112185dc02b90b9b7 \ + --hash=sha256:8cda06946eac330cbe6598f77bb54e690b4ca93f593dee1568ad22b04f347c15 \ + --hash=sha256:8ce7fd6767a1cc5a92a639b391891bf1c268b03ec7e021c7d6d902285259685c \ + --hash=sha256:8ff4e7cdfdb1ab5698e675ca622e72d58a6fa2a8aa58195de0c0061288e6e3ea \ + --hash=sha256:9289fd5dddcf57bab41d044f1756550f9e7cf0c8e373b8cdf0ce8773dc4bd417 \ + --hash=sha256:92a7e36b000bf022ef3dbb9c46bfe2d52c047d5e3f3343f43204263c5addc250 \ + --hash=sha256:92db3c28b5b2a273346bebb24857fda45601aef6ae1c011c0a997106581e8a88 \ + --hash=sha256:95c3c157765b031331dd4db3c775e58deaee050a3042fcad72cbc4189d7c8dca \ + --hash=sha256:980b4f289d1d90ca5efcf07958d3eb38ed9c0b7676bf2831a54d4f66f9c27dfa \ + --hash=sha256:9ae4ef0b3f6b41bad6366fb0ea4fc1d7ed051528e113a60fa2a65a9abb5b1d99 \ + --hash=sha256:9c98230f5042f4945f957d006edccc2af1e03ed5e37ce7c373f00a5a4daa6149 \ + --hash=sha256:9fa2566ca27d67c86569e8c85297aaf413ffab85a8960500f12ea34ff98e4c41 \ + --hash=sha256:a14969b8691f7998e74663b77b4c36c0337cb1df552da83d5c9004a93afdb574 \ + --hash=sha256:a8aacce6e2e1edcb6ac625fb0f8c3a9570ccc7bfba1f63419b3769ccf6a00ed0 \ + --hash=sha256:a8e538f46104c815be19c975572d74afb53f29650ea2025bbfaef359d2de2f7f \ + --hash=sha256:aa41e526a5d4a9dfcfbab0716c7e8a1b215abd3f3df5a45cf18a12721d31cb5d \ + --hash=sha256:aa693779a8b50cd97570e5a0f343538a8dbd3e496fa5dcb87e29406ad0299654 \ + --hash=sha256:ab22fbd9765e6954bc0bcff24c25ff71dcbfdb185fcdaca49e81bac68fe724d3 \ + --hash=sha256:ab2e5bef076f5a235c3774b4f4028a680432cded7cad37bba0fd90d64b187d19 \ + --hash=sha256:ab973df98fc99ab39080bfb0eb3a925181454d7c3ac8a1e695fddfae696d9e90 \ + --hash=sha256:af73657b7a68211996527dbfeffbb0864e043d270580c5aef06dc4b659a4b578 \ + --hash=sha256:b197e7094f232959f8f20541ead1d9862ac5ebea1d58e9849c1bf979255dfac9 \ + --hash=sha256:b295729485b06c1a0683af02a9e42d2caa9db04a373dc38a6a58cdd1e8abddf1 \ + --hash=sha256:b8831399554b92b72af5932cdbbd4ddc55c55f631bb13ff8fe4e6536a06c5c51 \ + --hash=sha256:b8dcd239c743aa2f9c22ce674a145e0a25cb1566c495928440a181ca1ccf6719 \ + --hash=sha256:bcb4f8ea87d03bc51ad04add8ceaf9b0f085ac045ab4d74e73bbc2dc033f0236 \ + --hash=sha256:bd7af3717683bea4c87acd8c0d3d5b44d56120b26fd3f8a692bdd2d5260c620a \ + --hash=sha256:bf4475b82be41b07cc5e5ff94810e6a01f276e37c2d55571e3fe175e467a1a1c \ + --hash=sha256:c3e446d253bd88f6377260d07c895816ebf33ffffd56c1c792b13bff9c3e1ade \ + --hash=sha256:c57516e58fd17d03ebe67e181a4e4e2ccab1168f8c2976c6a334d4f819fe5944 \ + --hash=sha256:c94057af19bc953643a33581844649a7fdab902624d2eb739738a30e2b3e60fc \ + --hash=sha256:cab5d0b79d987c67f3b9e9c53f54a61360422a5a0bc075f43cab5621d530c3b6 \ + --hash=sha256:ce031db0408e487fd2775d745ce30a7cd2923667cf3b69d48d219f1d8f5ddeb6 \ + --hash=sha256:cee4373f4d3ad28f1ab6290684d8e2ebdb9e7a1b74fdc39e4c211995f77bec27 \ + --hash=sha256:d5b054862739d276e09928de37c79ddeec42a6e1bfc55863be96a36ba22926f6 \ + --hash=sha256:dbe03226baf438ac4fda9e2d0715022fd579cb641c4cf639fa40d53b2fe6f3e2 \ + --hash=sha256:dc15e99b2d8a656f8e666854404f1ba54765871104e50c8e9813af8a7db07f12 \ + --hash=sha256:dcaf7c1524c0542ee2fc82cc8ec337f7a9f7edee2532421ab200d2b920fc97cf \ + --hash=sha256:dd4eda173a9fcccb5f2e2bd2a9f423d180194b1bf17cf59e3269899235b2a114 \ + --hash=sha256:dd9a8bd8900e65504a305bf8ae6fa9fbc66de94178c420791d0293702fce2df7 \ + --hash=sha256:de7376c29d95d6719048c194a9cf1a1b0393fbe8488a22008610b0361d834ecf \ + --hash=sha256:e7fdd52961feb4c96507aa649550ec2a0d527c086d284749b2f582f2d40a2e0d \ + --hash=sha256:e91f541a85298cf35433bf66f3fab2a4a2cff05c127eeca4af174f6d497f0d4b \ + --hash=sha256:e9e3c4c9e1ed40ea53acf11e2a386383c3304212c965773704e4603d589343ed \ + --hash=sha256:ee803480535c44e7f5ad00788526da7d85525cfefaf8acf8ab9a310000be4b03 \ + --hash=sha256:f09cb5a7bbe1ecae6e87901a2eb23e0256bb524a79ccc53eb0b7629fbe7677c4 \ + --hash=sha256:f19c1585933c82098c2a520f8ec1227f20e339e33aca8fa6f956f6691b784e67 \ + --hash=sha256:f1a2f519ae173b5b6a2c9d5fa3116ce16e48b3462c8b96dfdded11055e3d6365 \ + --hash=sha256:f28f891ccd15c514a0981f3b9db9aa23d62fe1a99997512b0491d2ed323d229a \ + --hash=sha256:f3e73a4255342d4eb26ef6df01e3962e73aa29baa3124a8e824c5d3364a65748 \ + --hash=sha256:f606a1881d2663630ea5b8ce2efe2111740df4b687bd78b34a8131baa007f79b \ + --hash=sha256:fe9f97feb71aa9896b81973a7bbada8c49501dc73e58a10fcef6663af95e5079 \ + --hash=sha256:ffc519621dce0c767e96b9c53f09c5d215578e10b02c285809f76509a3931482 # via # -c src/backend/requirements.txt # pdfminer-six @@ -168,103 +198,108 @@ click==8.1.7 \ --hash=sha256:ae74fb96c20a0277a1d615f1e4d73c8414f5a98db8b799a7931d1582f3390c28 \ --hash=sha256:ca9853ad459e787e2192211578cc907e7594e294c7ccc834310722b41b9ca6de # via pip-tools -coverage[toml]==7.5.4 \ - --hash=sha256:018a12985185038a5b2bcafab04ab833a9a0f2c59995b3cec07e10074c78635f \ - --hash=sha256:02ff6e898197cc1e9fa375581382b72498eb2e6d5fc0b53f03e496cfee3fac6d \ - --hash=sha256:042183de01f8b6d531e10c197f7f0315a61e8d805ab29c5f7b51a01d62782747 \ - --hash=sha256:1014fbf665fef86cdfd6cb5b7371496ce35e4d2a00cda501cf9f5b9e6fced69f \ - --hash=sha256:1137f46adb28e3813dec8c01fefadcb8c614f33576f672962e323b5128d9a68d \ - --hash=sha256:16852febd96acd953b0d55fc842ce2dac1710f26729b31c80b940b9afcd9896f \ - --hash=sha256:2174e7c23e0a454ffe12267a10732c273243b4f2d50d07544a91198f05c48f47 \ - --hash=sha256:2214ee920787d85db1b6a0bd9da5f8503ccc8fcd5814d90796c2f2493a2f4d2e \ - --hash=sha256:3257fdd8e574805f27bb5342b77bc65578e98cbc004a92232106344053f319ba \ - --hash=sha256:3684bc2ff328f935981847082ba4fdc950d58906a40eafa93510d1b54c08a66c \ - --hash=sha256:3a6612c99081d8d6134005b1354191e103ec9705d7ba2754e848211ac8cacc6b \ - --hash=sha256:3d7564cc09dd91b5a6001754a5b3c6ecc4aba6323baf33a12bd751036c998be4 \ - --hash=sha256:44da56a2589b684813f86d07597fdf8a9c6ce77f58976727329272f5a01f99f7 \ - --hash=sha256:5013ed890dc917cef2c9f765c4c6a8ae9df983cd60dbb635df8ed9f4ebc9f555 \ - --hash=sha256:54317c2b806354cbb2dc7ac27e2b93f97096912cc16b18289c5d4e44fc663233 \ - --hash=sha256:56b4eafa21c6c175b3ede004ca12c653a88b6f922494b023aeb1e836df953ace \ - --hash=sha256:581ea96f92bf71a5ec0974001f900db495488434a6928a2ca7f01eee20c23805 \ - --hash=sha256:5cd64adedf3be66f8ccee418473c2916492d53cbafbfcff851cbec5a8454b136 \ - --hash=sha256:5df54843b88901fdc2f598ac06737f03d71168fd1175728054c8f5a2739ac3e4 \ - --hash=sha256:65e528e2e921ba8fd67d9055e6b9f9e34b21ebd6768ae1c1723f4ea6ace1234d \ - --hash=sha256:6aae5cce399a0f065da65c7bb1e8abd5c7a3043da9dceb429ebe1b289bc07806 \ - --hash=sha256:6cfb5a4f556bb51aba274588200a46e4dd6b505fb1a5f8c5ae408222eb416f99 \ - --hash=sha256:7076b4b3a5f6d2b5d7f1185fde25b1e54eb66e647a1dfef0e2c2bfaf9b4c88c8 \ - --hash=sha256:73ca8fbc5bc622e54627314c1a6f1dfdd8db69788f3443e752c215f29fa87a0b \ - --hash=sha256:79b356f3dd5b26f3ad23b35c75dbdaf1f9e2450b6bcefc6d0825ea0aa3f86ca5 \ - --hash=sha256:7a892be37ca35eb5019ec85402c3371b0f7cda5ab5056023a7f13da0961e60da \ - --hash=sha256:8192794d120167e2a64721d88dbd688584675e86e15d0569599257566dec9bf0 \ - --hash=sha256:820bc841faa502e727a48311948e0461132a9c8baa42f6b2b84a29ced24cc078 \ - --hash=sha256:8f894208794b164e6bd4bba61fc98bf6b06be4d390cf2daacfa6eca0a6d2bb4f \ - --hash=sha256:a04e990a2a41740b02d6182b498ee9796cf60eefe40cf859b016650147908029 \ - --hash=sha256:a44963520b069e12789d0faea4e9fdb1e410cdc4aab89d94f7f55cbb7fef0353 \ - --hash=sha256:a6bb74ed465d5fb204b2ec41d79bcd28afccf817de721e8a807d5141c3426638 \ - --hash=sha256:ab73b35e8d109bffbda9a3e91c64e29fe26e03e49addf5b43d85fc426dde11f9 \ - --hash=sha256:aea072a941b033813f5e4814541fc265a5c12ed9720daef11ca516aeacd3bd7f \ - --hash=sha256:b1ccf5e728ccf83acd313c89f07c22d70d6c375a9c6f339233dcf792094bcbf7 \ - --hash=sha256:b385d49609f8e9efc885790a5a0e89f2e3ae042cdf12958b6034cc442de428d3 \ - --hash=sha256:b3d45ff86efb129c599a3b287ae2e44c1e281ae0f9a9bad0edc202179bcc3a2e \ - --hash=sha256:b4a474f799456e0eb46d78ab07303286a84a3140e9700b9e154cfebc8f527016 \ - --hash=sha256:b95c3a8cb0463ba9f77383d0fa8c9194cf91f64445a63fc26fb2327e1e1eb088 \ - --hash=sha256:c5986ee7ea0795a4095ac4d113cbb3448601efca7f158ec7f7087a6c705304e4 \ - --hash=sha256:cdd31315fc20868c194130de9ee6bfd99755cc9565edff98ecc12585b90be882 \ - --hash=sha256:cef4649ec906ea7ea5e9e796e68b987f83fa9a718514fe147f538cfeda76d7a7 \ - --hash=sha256:d05c16cf4b4c2fc880cb12ba4c9b526e9e5d5bb1d81313d4d732a5b9fe2b9d53 \ - --hash=sha256:d2e344d6adc8ef81c5a233d3a57b3c7d5181f40e79e05e1c143da143ccb6377d \ - --hash=sha256:d45d3cbd94159c468b9b8c5a556e3f6b81a8d1af2a92b77320e887c3e7a5d080 \ - --hash=sha256:db14f552ac38f10758ad14dd7b983dbab424e731588d300c7db25b6f89e335b5 \ - --hash=sha256:dbc5958cb471e5a5af41b0ddaea96a37e74ed289535e8deca404811f6cb0bc3d \ - --hash=sha256:ddbd2f9713a79e8e7242d7c51f1929611e991d855f414ca9996c20e44a895f7c \ - --hash=sha256:e16f3d6b491c48c5ae726308e6ab1e18ee830b4cdd6913f2d7f77354b33f91c8 \ - --hash=sha256:e2afe743289273209c992075a5a4913e8d007d569a406ffed0bd080ea02b0633 \ - --hash=sha256:e564c2cf45d2f44a9da56f4e3a26b2236504a496eb4cb0ca7221cd4cc7a9aca9 \ - --hash=sha256:ed550e7442f278af76d9d65af48069f1fb84c9f745ae249c1a183c1e9d1b025c +coverage[toml]==7.6.4 \ + --hash=sha256:00a1d69c112ff5149cabe60d2e2ee948752c975d95f1e1096742e6077affd376 \ + --hash=sha256:023bf8ee3ec6d35af9c1c6ccc1d18fa69afa1cb29eaac57cb064dbb262a517f9 \ + --hash=sha256:0294ca37f1ba500667b1aef631e48d875ced93ad5e06fa665a3295bdd1d95111 \ + --hash=sha256:06babbb8f4e74b063dbaeb74ad68dfce9186c595a15f11f5d5683f748fa1d172 \ + --hash=sha256:0809082ee480bb8f7416507538243c8863ac74fd8a5d2485c46f0f7499f2b491 \ + --hash=sha256:0b3fb02fe73bed561fa12d279a417b432e5b50fe03e8d663d61b3d5990f29546 \ + --hash=sha256:0b58c672d14f16ed92a48db984612f5ce3836ae7d72cdd161001cc54512571f2 \ + --hash=sha256:0bcd1069e710600e8e4cf27f65c90c7843fa8edfb4520fb0ccb88894cad08b11 \ + --hash=sha256:1032e178b76a4e2b5b32e19d0fd0abbce4b58e77a1ca695820d10e491fa32b08 \ + --hash=sha256:11a223a14e91a4693d2d0755c7a043db43d96a7450b4f356d506c2562c48642c \ + --hash=sha256:12394842a3a8affa3ba62b0d4ab7e9e210c5e366fbac3e8b2a68636fb19892c2 \ + --hash=sha256:182e6cd5c040cec0a1c8d415a87b67ed01193ed9ad458ee427741c7d8513d963 \ + --hash=sha256:1d5b8007f81b88696d06f7df0cb9af0d3b835fe0c8dbf489bad70b45f0e45613 \ + --hash=sha256:1f76846299ba5c54d12c91d776d9605ae33f8ae2b9d1d3c3703cf2db1a67f2c0 \ + --hash=sha256:27fb4a050aaf18772db513091c9c13f6cb94ed40eacdef8dad8411d92d9992db \ + --hash=sha256:29155cd511ee058e260db648b6182c419422a0d2e9a4fa44501898cf918866cf \ + --hash=sha256:29fc0f17b1d3fea332f8001d4558f8214af7f1d87a345f3a133c901d60347c73 \ + --hash=sha256:2b6b4c83d8e8ea79f27ab80778c19bc037759aea298da4b56621f4474ffeb117 \ + --hash=sha256:2fdef0d83a2d08d69b1f2210a93c416d54e14d9eb398f6ab2f0a209433db19e1 \ + --hash=sha256:3c65d37f3a9ebb703e710befdc489a38683a5b152242664b973a7b7b22348a4e \ + --hash=sha256:4f704f0998911abf728a7783799444fcbbe8261c4a6c166f667937ae6a8aa522 \ + --hash=sha256:51b44306032045b383a7a8a2c13878de375117946d68dcb54308111f39775a25 \ + --hash=sha256:53d202fd109416ce011578f321460795abfe10bb901b883cafd9b3ef851bacfc \ + --hash=sha256:58809e238a8a12a625c70450b48e8767cff9eb67c62e6154a642b21ddf79baea \ + --hash=sha256:5915fcdec0e54ee229926868e9b08586376cae1f5faa9bbaf8faf3561b393d52 \ + --hash=sha256:5beb1ee382ad32afe424097de57134175fea3faf847b9af002cc7895be4e2a5a \ + --hash=sha256:5f8ae553cba74085db385d489c7a792ad66f7f9ba2ee85bfa508aeb84cf0ba07 \ + --hash=sha256:5fbd612f8a091954a0c8dd4c0b571b973487277d26476f8480bfa4b2a65b5d06 \ + --hash=sha256:6bd818b7ea14bc6e1f06e241e8234508b21edf1b242d49831831a9450e2f35fa \ + --hash=sha256:6f01ba56b1c0e9d149f9ac85a2f999724895229eb36bd997b61e62999e9b0901 \ + --hash=sha256:73d2b73584446e66ee633eaad1a56aad577c077f46c35ca3283cd687b7715b0b \ + --hash=sha256:7bb92c539a624cf86296dd0c68cd5cc286c9eef2d0c3b8b192b604ce9de20a17 \ + --hash=sha256:8165b796df0bd42e10527a3f493c592ba494f16ef3c8b531288e3d0d72c1f6f0 \ + --hash=sha256:862264b12ebb65ad8d863d51f17758b1684560b66ab02770d4f0baf2ff75da21 \ + --hash=sha256:8902dd6a30173d4ef09954bfcb24b5d7b5190cf14a43170e386979651e09ba19 \ + --hash=sha256:8cf717ee42012be8c0cb205dbbf18ffa9003c4cbf4ad078db47b95e10748eec5 \ + --hash=sha256:8ed9281d1b52628e81393f5eaee24a45cbd64965f41857559c2b7ff19385df51 \ + --hash=sha256:99b41d18e6b2a48ba949418db48159d7a2e81c5cc290fc934b7d2380515bd0e3 \ + --hash=sha256:9cb7fa111d21a6b55cbf633039f7bc2749e74932e3aa7cb7333f675a58a58bf3 \ + --hash=sha256:a181e99301a0ae128493a24cfe5cfb5b488c4e0bf2f8702091473d033494d04f \ + --hash=sha256:a413a096c4cbac202433c850ee43fa326d2e871b24554da8327b01632673a076 \ + --hash=sha256:a6b1e54712ba3474f34b7ef7a41e65bd9037ad47916ccb1cc78769bae324c01a \ + --hash=sha256:ade3ca1e5f0ff46b678b66201f7ff477e8fa11fb537f3b55c3f0568fbfe6e718 \ + --hash=sha256:b0ac3d42cb51c4b12df9c5f0dd2f13a4f24f01943627120ec4d293c9181219ba \ + --hash=sha256:b369ead6527d025a0fe7bd3864e46dbee3aa8f652d48df6174f8d0bac9e26e0e \ + --hash=sha256:b57b768feb866f44eeed9f46975f3d6406380275c5ddfe22f531a2bf187eda27 \ + --hash=sha256:b8d3a03d9bfcaf5b0141d07a88456bb6a4c3ce55c080712fec8418ef3610230e \ + --hash=sha256:bc66f0bf1d7730a17430a50163bb264ba9ded56739112368ba985ddaa9c3bd09 \ + --hash=sha256:bf20494da9653f6410213424f5f8ad0ed885e01f7e8e59811f572bdb20b8972e \ + --hash=sha256:c48167910a8f644671de9f2083a23630fbf7a1cb70ce939440cd3328e0919f70 \ + --hash=sha256:c481b47f6b5845064c65a7bc78bc0860e635a9b055af0df46fdf1c58cebf8e8f \ + --hash=sha256:c7c8b95bf47db6d19096a5e052ffca0a05f335bc63cef281a6e8fe864d450a72 \ + --hash=sha256:c9b8e184898ed014884ca84c70562b4a82cbc63b044d366fedc68bc2b2f3394a \ + --hash=sha256:cc8ff50b50ce532de2fa7a7daae9dd12f0a699bfcd47f20945364e5c31799fef \ + --hash=sha256:d541423cdd416b78626b55f123412fcf979d22a2c39fce251b350de38c15c15b \ + --hash=sha256:dab4d16dfef34b185032580e2f2f89253d302facba093d5fa9dbe04f569c4f4b \ + --hash=sha256:dacbc52de979f2823a819571f2e3a350a7e36b8cb7484cdb1e289bceaf35305f \ + --hash=sha256:df57bdbeffe694e7842092c5e2e0bc80fff7f43379d465f932ef36f027179806 \ + --hash=sha256:ed8fe9189d2beb6edc14d3ad19800626e1d9f2d975e436f84e19efb7fa19469b \ + --hash=sha256:f3ddf056d3ebcf6ce47bdaf56142af51bb7fad09e4af310241e9db7a3a8022e1 \ + --hash=sha256:f8fe4984b431f8621ca53d9380901f62bfb54ff759a1348cd140490ada7b693c \ + --hash=sha256:fe439416eb6380de434886b00c859304338f8b19f6f54811984f3420a2e03858 # via -r src/backend/requirements-dev.in -cryptography==42.0.8 \ - --hash=sha256:013629ae70b40af70c9a7a5db40abe5d9054e6f4380e50ce769947b73bf3caad \ - --hash=sha256:2346b911eb349ab547076f47f2e035fc8ff2c02380a7cbbf8d87114fa0f1c583 \ - --hash=sha256:2f66d9cd9147ee495a8374a45ca445819f8929a3efcd2e3df6428e46c3cbb10b \ - --hash=sha256:2f88d197e66c65be5e42cd72e5c18afbfae3f741742070e3019ac8f4ac57262c \ - --hash=sha256:31f721658a29331f895a5a54e7e82075554ccfb8b163a18719d342f5ffe5ecb1 \ - --hash=sha256:343728aac38decfdeecf55ecab3264b015be68fc2816ca800db649607aeee648 \ - --hash=sha256:5226d5d21ab681f432a9c1cf8b658c0cb02533eece706b155e5fbd8a0cdd3949 \ - --hash=sha256:57080dee41209e556a9a4ce60d229244f7a66ef52750f813bfbe18959770cfba \ - --hash=sha256:5a94eccb2a81a309806027e1670a358b99b8fe8bfe9f8d329f27d72c094dde8c \ - --hash=sha256:6b7c4f03ce01afd3b76cf69a5455caa9cfa3de8c8f493e0d3ab7d20611c8dae9 \ - --hash=sha256:7016f837e15b0a1c119d27ecd89b3515f01f90a8615ed5e9427e30d9cdbfed3d \ - --hash=sha256:81884c4d096c272f00aeb1f11cf62ccd39763581645b0812e99a91505fa48e0c \ - --hash=sha256:81d8a521705787afe7a18d5bfb47ea9d9cc068206270aad0b96a725022e18d2e \ - --hash=sha256:8d09d05439ce7baa8e9e95b07ec5b6c886f548deb7e0f69ef25f64b3bce842f2 \ - --hash=sha256:961e61cefdcb06e0c6d7e3a1b22ebe8b996eb2bf50614e89384be54c48c6b63d \ - --hash=sha256:9c0c1716c8447ee7dbf08d6db2e5c41c688544c61074b54fc4564196f55c25a7 \ - --hash=sha256:a0608251135d0e03111152e41f0cc2392d1e74e35703960d4190b2e0f4ca9c70 \ - --hash=sha256:a0c5b2b0585b6af82d7e385f55a8bc568abff8923af147ee3c07bd8b42cda8b2 \ - --hash=sha256:ad803773e9df0b92e0a817d22fd8a3675493f690b96130a5e24f1b8fabbea9c7 \ - --hash=sha256:b297f90c5723d04bcc8265fc2a0f86d4ea2e0f7ab4b6994459548d3a6b992a14 \ - --hash=sha256:ba4f0a211697362e89ad822e667d8d340b4d8d55fae72cdd619389fb5912eefe \ - --hash=sha256:c4783183f7cb757b73b2ae9aed6599b96338eb957233c58ca8f49a49cc32fd5e \ - --hash=sha256:c9bb2ae11bfbab395bdd072985abde58ea9860ed84e59dbc0463a5d0159f5b71 \ - --hash=sha256:cafb92b2bc622cd1aa6a1dce4b93307792633f4c5fe1f46c6b97cf67073ec961 \ - --hash=sha256:d45b940883a03e19e944456a558b67a41160e367a719833c53de6911cabba2b7 \ - --hash=sha256:dc0fdf6787f37b1c6b08e6dfc892d9d068b5bdb671198c72072828b80bd5fe4c \ - --hash=sha256:dea567d1b0e8bc5764b9443858b673b734100c2871dc93163f58c46a97a83d28 \ - --hash=sha256:dec9b018df185f08483f294cae6ccac29e7a6e0678996587363dc352dc65c842 \ - --hash=sha256:e3ec3672626e1b9e55afd0df6d774ff0e953452886e06e0f1eb7eb0c832e8902 \ - --hash=sha256:e599b53fd95357d92304510fb7bda8523ed1f79ca98dce2f43c115950aa78801 \ - --hash=sha256:fa76fbb7596cc5839320000cdd5d0955313696d9511debab7ee7278fc8b5c84a \ - --hash=sha256:fff12c88a672ab9c9c1cf7b0c80e3ad9e2ebd9d828d955c126be4fd3e5578c9e +cryptography==43.0.1 \ + --hash=sha256:014f58110f53237ace6a408b5beb6c427b64e084eb451ef25a28308270086494 \ + --hash=sha256:1bbcce1a551e262dfbafb6e6252f1ae36a248e615ca44ba302df077a846a8806 \ + --hash=sha256:203e92a75716d8cfb491dc47c79e17d0d9207ccffcbcb35f598fbe463ae3444d \ + --hash=sha256:27e613d7077ac613e399270253259d9d53872aaf657471473ebfc9a52935c062 \ + --hash=sha256:2bd51274dcd59f09dd952afb696bf9c61a7a49dfc764c04dd33ef7a6b502a1e2 \ + --hash=sha256:38926c50cff6f533f8a2dae3d7f19541432610d114a70808f0926d5aaa7121e4 \ + --hash=sha256:511f4273808ab590912a93ddb4e3914dfd8a388fed883361b02dea3791f292e1 \ + --hash=sha256:58d4e9129985185a06d849aa6df265bdd5a74ca6e1b736a77959b498e0505b85 \ + --hash=sha256:5b43d1ea6b378b54a1dc99dd8a2b5be47658fe9a7ce0a58ff0b55f4b43ef2b84 \ + --hash=sha256:61ec41068b7b74268fa86e3e9e12b9f0c21fcf65434571dbb13d954bceb08042 \ + --hash=sha256:666ae11966643886c2987b3b721899d250855718d6d9ce41b521252a17985f4d \ + --hash=sha256:68aaecc4178e90719e95298515979814bda0cbada1256a4485414860bd7ab962 \ + --hash=sha256:7c05650fe8023c5ed0d46793d4b7d7e6cd9c04e68eabe5b0aeea836e37bdcec2 \ + --hash=sha256:80eda8b3e173f0f247f711eef62be51b599b5d425c429b5d4ca6a05e9e856baa \ + --hash=sha256:8385d98f6a3bf8bb2d65a73e17ed87a3ba84f6991c155691c51112075f9ffc5d \ + --hash=sha256:88cce104c36870d70c49c7c8fd22885875d950d9ee6ab54df2745f83ba0dc365 \ + --hash=sha256:9d3cdb25fa98afdd3d0892d132b8d7139e2c087da1712041f6b762e4f807cc96 \ + --hash=sha256:a575913fb06e05e6b4b814d7f7468c2c660e8bb16d8d5a1faf9b33ccc569dd47 \ + --hash=sha256:ac119bb76b9faa00f48128b7f5679e1d8d437365c5d26f1c2c3f0da4ce1b553d \ + --hash=sha256:c1332724be35d23a854994ff0b66530119500b6053d0bd3363265f7e5e77288d \ + --hash=sha256:d03a475165f3134f773d1388aeb19c2d25ba88b6a9733c5c590b9ff7bbfa2e0c \ + --hash=sha256:d75601ad10b059ec832e78823b348bfa1a59f6b8d545db3a24fd44362a1564cb \ + --hash=sha256:de41fd81a41e53267cb020bb3a7212861da53a7d39f863585d13ea11049cf277 \ + --hash=sha256:e710bf40870f4db63c3d7d929aa9e09e4e7ee219e703f949ec4073b4294f6172 \ + --hash=sha256:ea25acb556320250756e53f9e20a4177515f012c9eaea17eb7587a8c4d8ae034 \ + --hash=sha256:f98bf604c82c416bc829e490c700ca1553eafdf2912a91e23a79d97d9801372a \ + --hash=sha256:fba1007b3ef89946dbbb515aeeb41e30203b004f0b4b00e5e16078b518563289 # via # -c src/backend/requirements.txt # pdfminer-six -distlib==0.3.8 \ - --hash=sha256:034db59a0b96f8ca18035f36290806a9a6e6bd9d1ff91e45a7f172eb17e51784 \ - --hash=sha256:1530ea13e350031b6312d8580ddb6b27a104275a31106523b8f123787f494f64 +distlib==0.3.9 \ + --hash=sha256:47f8c22fd27c27e25a65601af709b38e4f0a45ea4fc2e710f65755fa8caaaf87 \ + --hash=sha256:a60f20dea646b8a33f3e7772f74dc0b2d0772d2837ee1342a00645c81edf9403 # via virtualenv -django==4.2.15 \ - --hash=sha256:61ee4a130efb8c451ef3467c67ca99fdce400fedd768634efc86a68c18d80d30 \ - --hash=sha256:c77f926b81129493961e19c0e02188f8d07c112a1162df69bfab178ae447f94a +django==4.2.16 \ + --hash=sha256:1ddc333a16fc139fd253035a1606bb24261951bbc3a6ca256717fa06cc41a898 \ + --hash=sha256:6f1616c2786c408ce86ab7e10f792b8f15742f7b7b7460243929cb371e7f1dad # via # -c src/backend/requirements.txt # django-admin-shell @@ -283,17 +318,17 @@ django-test-migrations==1.4.0 \ --hash=sha256:294dff98f6d43d020d4046b971bac5339e7c71458a35e9ad6450c388fe16ed6b \ --hash=sha256:f0c9c92864ed27d0c9a582e92056637e91227f54bd868a50cb9a1726668c563e # via -r src/backend/requirements-dev.in -filelock==3.15.4 \ - --hash=sha256:2207938cbc1844345cb01a5a95524dae30f0ce089eba5b00378295a17e3e90cb \ - --hash=sha256:6ca1fffae96225dab4c6eaf1c4f4f28cd2568d3ec2a44e15a08520504de468e7 +filelock==3.16.1 \ + --hash=sha256:2082e5703d51fbf98ea75855d9d5527e33d8ff23099bec374a134febee6946b0 \ + --hash=sha256:c249fbfcd5db47e5e2d6d62198e565475ee65e4831e2561c8e313fa7eb961435 # via virtualenv -identify==2.5.36 \ - --hash=sha256:37d93f380f4de590500d9dba7db359d0d3da95ffe7f9de1753faa159e71e7dfa \ - --hash=sha256:e5e00f54165f9047fbebeb4a560f9acfb8af4c88232be60a488e9b68d122745d +identify==2.6.1 \ + --hash=sha256:53863bcac7caf8d2ed85bd20312ea5dcfc22226800f6d6881f232d861db5a8f0 \ + --hash=sha256:91478c5fb7c3aac5ff7bf9b4344f803843dc586832d5f110d672b19aa1984c98 # via pre-commit -importlib-metadata==7.1.0 \ - --hash=sha256:30962b96c0c223483ed6cc7280e7f0199feb01a0e40cfae4d4450fc6fab1f570 \ - --hash=sha256:b78938b926ee8d5f020fc4772d487045805a55ddbad2ecf21c6d60938dc7fcd2 +importlib-metadata==8.4.0 \ + --hash=sha256:66f342cc6ac9818fc6ff340576acd24d65ba0b3efabb2b4ac08b598965a4a2f1 \ + --hash=sha256:9a547d3bc3608b025f93d403fdd1aae741c24fbb8314df4b155675742ce303c5 # via # -c src/backend/requirements.txt # build @@ -311,9 +346,9 @@ packaging==24.1 \ # via # -c src/backend/requirements.txt # build -pdfminer-six==20231228 \ - --hash=sha256:6004da3ad1a7a4d45930cb950393df89b068e73be365a6ff64a838d37bcb08c4 \ - --hash=sha256:e8d3c3310e6fbc1fe414090123ab01351634b4ecb021232206c4c9a8ca3e3b8f +pdfminer-six==20240706 \ + --hash=sha256:c631a46d5da957a9ffe4460c5dce21e8431dabb615fee5f9f4400603a58d95a6 \ + --hash=sha256:f4f70e74174b4b3542fcb8406a210b6e2e27cd0f0b5fd04534a8cc0d8951e38c # via -r src/backend/requirements-dev.in pip==24.2 \ --hash=sha256:2cd581cf58ab7fcfca4ce8efa6dcacd0de5bf8d0a3eb9ec927e07405f4d9e2a2 \ @@ -323,13 +358,13 @@ pip-tools==7.4.1 \ --hash=sha256:4c690e5fbae2f21e87843e89c26191f0d9454f362d8acdbd695716493ec8b3a9 \ --hash=sha256:864826f5073864450e24dbeeb85ce3920cdfb09848a3d69ebf537b521f14bcc9 # via -r src/backend/requirements-dev.in -platformdirs==4.2.2 \ - --hash=sha256:2d7a1657e36a80ea911db832a8a6ece5ee53d8de21edd5cc5879af6530b1bfee \ - --hash=sha256:38b7b51f512eed9e84a22788b4bce1de17c0adb134d6becb09836e37d8654cd3 +platformdirs==4.3.6 \ + --hash=sha256:357fb2acbc885b0419afd3ce3ed34564c13c9b95c89360cd9563f73aa5e2b907 \ + --hash=sha256:73e575e1408ab8103900836b97580d5307456908a03e92031bab39e4554cc3fb # via virtualenv -pre-commit==3.7.1 \ - --hash=sha256:8ca3ad567bc78a4972a3f1a477e94a79d4597e8140a6e0b651c5e33899c3654a \ - --hash=sha256:fae36fd1d7ad7d6a5a1c0b0d5adb2ed1a3bda5a21bf6c3e5372073d7a11cd4c5 +pre-commit==4.0.1 \ + --hash=sha256:80905ac375958c0444c65e9cebebd948b3cdb518f335a091a670a89d652139d2 \ + --hash=sha256:efde913840816312445dc98787724647c65473daefe420785f885e8ed9a06878 # via -r src/backend/requirements-dev.in pycparser==2.22 \ --hash=sha256:491c8be9c040f5390f5bf44a5b07752bd07f56edf992381b05c701439eec10f6 \ @@ -337,84 +372,87 @@ pycparser==2.22 \ # via # -c src/backend/requirements.txt # cffi -pyproject-hooks==1.1.0 \ - --hash=sha256:4b37730834edbd6bd37f26ece6b44802fb1c1ee2ece0e54ddff8bfc06db86965 \ - --hash=sha256:7ceeefe9aec63a1064c18d939bdc3adf2d8aa1988a510afec15151578b232aa2 +pyproject-hooks==1.2.0 \ + --hash=sha256:1e859bd5c40fae9448642dd871adf459e5e2084186e8d2c2a79a824c970da1f8 \ + --hash=sha256:9e5c6bfa8dcc30091c74b0cf803c81fdd29d94f01992a7707bc97babb1141913 # via # build # pip-tools -pyyaml==6.0.1 \ - --hash=sha256:04ac92ad1925b2cff1db0cfebffb6ffc43457495c9b3c39d3fcae417d7125dc5 \ - --hash=sha256:062582fca9fabdd2c8b54a3ef1c978d786e0f6b3a1510e0ac93ef59e0ddae2bc \ - --hash=sha256:0d3304d8c0adc42be59c5f8a4d9e3d7379e6955ad754aa9d6ab7a398b59dd1df \ - --hash=sha256:1635fd110e8d85d55237ab316b5b011de701ea0f29d07611174a1b42f1444741 \ - --hash=sha256:184c5108a2aca3c5b3d3bf9395d50893a7ab82a38004c8f61c258d4428e80206 \ - --hash=sha256:18aeb1bf9a78867dc38b259769503436b7c72f7a1f1f4c93ff9a17de54319b27 \ - --hash=sha256:1d4c7e777c441b20e32f52bd377e0c409713e8bb1386e1099c2415f26e479595 \ - --hash=sha256:1e2722cc9fbb45d9b87631ac70924c11d3a401b2d7f410cc0e3bbf249f2dca62 \ - --hash=sha256:1fe35611261b29bd1de0070f0b2f47cb6ff71fa6595c077e42bd0c419fa27b98 \ - --hash=sha256:28c119d996beec18c05208a8bd78cbe4007878c6dd15091efb73a30e90539696 \ - --hash=sha256:326c013efe8048858a6d312ddd31d56e468118ad4cdeda36c719bf5bb6192290 \ - --hash=sha256:40df9b996c2b73138957fe23a16a4f0ba614f4c0efce1e9406a184b6d07fa3a9 \ - --hash=sha256:42f8152b8dbc4fe7d96729ec2b99c7097d656dc1213a3229ca5383f973a5ed6d \ - --hash=sha256:49a183be227561de579b4a36efbb21b3eab9651dd81b1858589f796549873dd6 \ - --hash=sha256:4fb147e7a67ef577a588a0e2c17b6db51dda102c71de36f8549b6816a96e1867 \ - --hash=sha256:50550eb667afee136e9a77d6dc71ae76a44df8b3e51e41b77f6de2932bfe0f47 \ - --hash=sha256:510c9deebc5c0225e8c96813043e62b680ba2f9c50a08d3724c7f28a747d1486 \ - --hash=sha256:5773183b6446b2c99bb77e77595dd486303b4faab2b086e7b17bc6bef28865f6 \ - --hash=sha256:596106435fa6ad000c2991a98fa58eeb8656ef2325d7e158344fb33864ed87e3 \ - --hash=sha256:6965a7bc3cf88e5a1c3bd2e0b5c22f8d677dc88a455344035f03399034eb3007 \ - --hash=sha256:69b023b2b4daa7548bcfbd4aa3da05b3a74b772db9e23b982788168117739938 \ - --hash=sha256:6c22bec3fbe2524cde73d7ada88f6566758a8f7227bfbf93a408a9d86bcc12a0 \ - --hash=sha256:704219a11b772aea0d8ecd7058d0082713c3562b4e271b849ad7dc4a5c90c13c \ - --hash=sha256:7e07cbde391ba96ab58e532ff4803f79c4129397514e1413a7dc761ccd755735 \ - --hash=sha256:81e0b275a9ecc9c0c0c07b4b90ba548307583c125f54d5b6946cfee6360c733d \ - --hash=sha256:855fb52b0dc35af121542a76b9a84f8d1cd886ea97c84703eaa6d88e37a2ad28 \ - --hash=sha256:8d4e9c88387b0f5c7d5f281e55304de64cf7f9c0021a3525bd3b1c542da3b0e4 \ - --hash=sha256:9046c58c4395dff28dd494285c82ba00b546adfc7ef001486fbf0324bc174fba \ - --hash=sha256:9eb6caa9a297fc2c2fb8862bc5370d0303ddba53ba97e71f08023b6cd73d16a8 \ - --hash=sha256:a08c6f0fe150303c1c6b71ebcd7213c2858041a7e01975da3a99aed1e7a378ef \ - --hash=sha256:a0cd17c15d3bb3fa06978b4e8958dcdc6e0174ccea823003a106c7d4d7899ac5 \ - --hash=sha256:afd7e57eddb1a54f0f1a974bc4391af8bcce0b444685d936840f125cf046d5bd \ - --hash=sha256:b1275ad35a5d18c62a7220633c913e1b42d44b46ee12554e5fd39c70a243d6a3 \ - --hash=sha256:b786eecbdf8499b9ca1d697215862083bd6d2a99965554781d0d8d1ad31e13a0 \ - --hash=sha256:ba336e390cd8e4d1739f42dfe9bb83a3cc2e80f567d8805e11b46f4a943f5515 \ - --hash=sha256:baa90d3f661d43131ca170712d903e6295d1f7a0f595074f151c0aed377c9b9c \ - --hash=sha256:bc1bf2925a1ecd43da378f4db9e4f799775d6367bdb94671027b73b393a7c42c \ - --hash=sha256:bd4af7373a854424dabd882decdc5579653d7868b8fb26dc7d0e99f823aa5924 \ - --hash=sha256:bf07ee2fef7014951eeb99f56f39c9bb4af143d8aa3c21b1677805985307da34 \ - --hash=sha256:bfdf460b1736c775f2ba9f6a92bca30bc2095067b8a9d77876d1fad6cc3b4a43 \ - --hash=sha256:c8098ddcc2a85b61647b2590f825f3db38891662cfc2fc776415143f599bb859 \ - --hash=sha256:d2b04aac4d386b172d5b9692e2d2da8de7bfb6c387fa4f801fbf6fb2e6ba4673 \ - --hash=sha256:d483d2cdf104e7c9fa60c544d92981f12ad66a457afae824d146093b8c294c54 \ - --hash=sha256:d858aa552c999bc8a8d57426ed01e40bef403cd8ccdd0fc5f6f04a00414cac2a \ - --hash=sha256:e7d73685e87afe9f3b36c799222440d6cf362062f78be1013661b00c5c6f678b \ - --hash=sha256:f003ed9ad21d6a4713f0a9b5a7a0a79e08dd0f221aff4525a2be4c346ee60aab \ - --hash=sha256:f22ac1c3cac4dbc50079e965eba2c1058622631e526bd9afd45fedd49ba781fa \ - --hash=sha256:faca3bdcf85b2fc05d06ff3fbc1f83e1391b3e724afa3feba7d13eeab355484c \ - --hash=sha256:fca0e3a251908a499833aa292323f32437106001d436eca0e6e7833256674585 \ - --hash=sha256:fd1592b3fdf65fff2ad0004b5e363300ef59ced41c2e6b3a99d4089fa8c5435d \ - --hash=sha256:fd66fc5d0da6d9815ba2cebeb4205f95818ff4b79c3ebe268e75d961704af52f +pyyaml==6.0.2 \ + --hash=sha256:01179a4a8559ab5de078078f37e5c1a30d76bb88519906844fd7bdea1b7729ff \ + --hash=sha256:0833f8694549e586547b576dcfaba4a6b55b9e96098b36cdc7ebefe667dfed48 \ + --hash=sha256:0a9a2848a5b7feac301353437eb7d5957887edbf81d56e903999a75a3d743086 \ + --hash=sha256:0b69e4ce7a131fe56b7e4d770c67429700908fc0752af059838b1cfb41960e4e \ + --hash=sha256:0ffe8360bab4910ef1b9e87fb812d8bc0a308b0d0eef8c8f44e0254ab3b07133 \ + --hash=sha256:11d8f3dd2b9c1207dcaf2ee0bbbfd5991f571186ec9cc78427ba5bd32afae4b5 \ + --hash=sha256:17e311b6c678207928d649faa7cb0d7b4c26a0ba73d41e99c4fff6b6c3276484 \ + --hash=sha256:1e2120ef853f59c7419231f3bf4e7021f1b936f6ebd222406c3b60212205d2ee \ + --hash=sha256:1f71ea527786de97d1a0cc0eacd1defc0985dcf6b3f17bb77dcfc8c34bec4dc5 \ + --hash=sha256:23502f431948090f597378482b4812b0caae32c22213aecf3b55325e049a6c68 \ + --hash=sha256:24471b829b3bf607e04e88d79542a9d48bb037c2267d7927a874e6c205ca7e9a \ + --hash=sha256:29717114e51c84ddfba879543fb232a6ed60086602313ca38cce623c1d62cfbf \ + --hash=sha256:2e99c6826ffa974fe6e27cdb5ed0021786b03fc98e5ee3c5bfe1fd5015f42b99 \ + --hash=sha256:39693e1f8320ae4f43943590b49779ffb98acb81f788220ea932a6b6c51004d8 \ + --hash=sha256:3ad2a3decf9aaba3d29c8f537ac4b243e36bef957511b4766cb0057d32b0be85 \ + --hash=sha256:3b1fdb9dc17f5a7677423d508ab4f243a726dea51fa5e70992e59a7411c89d19 \ + --hash=sha256:41e4e3953a79407c794916fa277a82531dd93aad34e29c2a514c2c0c5fe971cc \ + --hash=sha256:43fa96a3ca0d6b1812e01ced1044a003533c47f6ee8aca31724f78e93ccc089a \ + --hash=sha256:50187695423ffe49e2deacb8cd10510bc361faac997de9efef88badc3bb9e2d1 \ + --hash=sha256:5ac9328ec4831237bec75defaf839f7d4564be1e6b25ac710bd1a96321cc8317 \ + --hash=sha256:5d225db5a45f21e78dd9358e58a98702a0302f2659a3c6cd320564b75b86f47c \ + --hash=sha256:6395c297d42274772abc367baaa79683958044e5d3835486c16da75d2a694631 \ + --hash=sha256:688ba32a1cffef67fd2e9398a2efebaea461578b0923624778664cc1c914db5d \ + --hash=sha256:68ccc6023a3400877818152ad9a1033e3db8625d899c72eacb5a668902e4d652 \ + --hash=sha256:70b189594dbe54f75ab3a1acec5f1e3faa7e8cf2f1e08d9b561cb41b845f69d5 \ + --hash=sha256:797b4f722ffa07cc8d62053e4cff1486fa6dc094105d13fea7b1de7d8bf71c9e \ + --hash=sha256:7c36280e6fb8385e520936c3cb3b8042851904eba0e58d277dca80a5cfed590b \ + --hash=sha256:7e7401d0de89a9a855c839bc697c079a4af81cf878373abd7dc625847d25cbd8 \ + --hash=sha256:80bab7bfc629882493af4aa31a4cfa43a4c57c83813253626916b8c7ada83476 \ + --hash=sha256:82d09873e40955485746739bcb8b4586983670466c23382c19cffecbf1fd8706 \ + --hash=sha256:8388ee1976c416731879ac16da0aff3f63b286ffdd57cdeb95f3f2e085687563 \ + --hash=sha256:8824b5a04a04a047e72eea5cec3bc266db09e35de6bdfe34c9436ac5ee27d237 \ + --hash=sha256:8b9c7197f7cb2738065c481a0461e50ad02f18c78cd75775628afb4d7137fb3b \ + --hash=sha256:9056c1ecd25795207ad294bcf39f2db3d845767be0ea6e6a34d856f006006083 \ + --hash=sha256:936d68689298c36b53b29f23c6dbb74de12b4ac12ca6cfe0e047bedceea56180 \ + --hash=sha256:9b22676e8097e9e22e36d6b7bda33190d0d400f345f23d4065d48f4ca7ae0425 \ + --hash=sha256:a4d3091415f010369ae4ed1fc6b79def9416358877534caf6a0fdd2146c87a3e \ + --hash=sha256:a8786accb172bd8afb8be14490a16625cbc387036876ab6ba70912730faf8e1f \ + --hash=sha256:a9f8c2e67970f13b16084e04f134610fd1d374bf477b17ec1599185cf611d725 \ + --hash=sha256:bc2fa7c6b47d6bc618dd7fb02ef6fdedb1090ec036abab80d4681424b84c1183 \ + --hash=sha256:c70c95198c015b85feafc136515252a261a84561b7b1d51e3384e0655ddf25ab \ + --hash=sha256:cc1c1159b3d456576af7a3e4d1ba7e6924cb39de8f67111c735f6fc832082774 \ + --hash=sha256:ce826d6ef20b1bc864f0a68340c8b3287705cae2f8b4b1d932177dcc76721725 \ + --hash=sha256:d584d9ec91ad65861cc08d42e834324ef890a082e591037abe114850ff7bbc3e \ + --hash=sha256:d7fded462629cfa4b685c5416b949ebad6cec74af5e2d42905d41e257e0869f5 \ + --hash=sha256:d84a1718ee396f54f3a086ea0a66d8e552b2ab2017ef8b420e92edbc841c352d \ + --hash=sha256:d8e03406cac8513435335dbab54c0d385e4a49e4945d2909a581c83647ca0290 \ + --hash=sha256:e10ce637b18caea04431ce14fabcf5c64a1c61ec9c56b071a4b7ca131ca52d44 \ + --hash=sha256:ec031d5d2feb36d1d1a24380e4db6d43695f3748343d99434e6f5f9156aaa2ed \ + --hash=sha256:ef6107725bd54b262d6dedcc2af448a266975032bc85ef0172c5f059da6325b4 \ + --hash=sha256:efdca5630322a10774e8e98e1af481aad470dd62c3170801852d752aa7a783ba \ + --hash=sha256:f753120cb8181e736c57ef7636e83f31b9c0d1722c516f7e86cf15b7aa57ff12 \ + --hash=sha256:ff3824dc5261f50c9b0dfb3be22b4567a6f938ccce4587b38952d85fd9e9afe4 # via # -c src/backend/requirements.txt # pre-commit -setuptools==72.1.0 \ - --hash=sha256:5a03e1860cf56bb6ef48ce186b0e557fdba433237481a9a625176c2831be15d1 \ - --hash=sha256:8d243eff56d095e5817f796ede6ae32941278f542e0f941867cc05ae52b162ec +setuptools==75.1.0 \ + --hash=sha256:35ab7fd3bcd95e6b7fd704e4a1539513edad446c097797f2985e0e4b960772f2 \ + --hash=sha256:d59a21b17a275fb872a9c3dae73963160ae079f1049ed956880cd7c09b120538 # via # -c src/backend/requirements.txt # -r src/backend/requirements-dev.in # pip-tools -sqlparse==0.5.0 \ - --hash=sha256:714d0a4932c059d16189f58ef5411ec2287a4360f17cdd0edd2d09d4c5087c93 \ - --hash=sha256:c204494cd97479d0e39f28c93d46c0b2d5959c7b9ab904762ea6c7af211c8663 +sqlparse==0.5.1 \ + --hash=sha256:773dcbf9a5ab44a090f3441e2180efe2560220203dc2f8c0b0fa141e18b505e4 \ + --hash=sha256:bb6b4df465655ef332548e24f08e205afc81b9ab86cb1c45657a7ff173a3a00e # via # -c src/backend/requirements.txt # django -tomli==2.0.1 \ - --hash=sha256:939de3e7a6161af0c887ef91b7d41a53e7c5a1ca976325f429cb46ea9bc30ecc \ - --hash=sha256:de526c12914f0c550d15924c62d72abc48d6fe7364aa87328337a31007fe8a4f +tomli==2.0.2 \ + --hash=sha256:2ebe24485c53d303f690b0ec092806a085f07af5a5aa1464f3931eec36caaa38 \ + --hash=sha256:d46d457a85337051c36524bc5349dd91b1877838e2979ac5ced3e710ed8a60ed # via + # -c src/backend/requirements.txt # build # coverage # pip-tools @@ -425,17 +463,17 @@ typing-extensions==4.12.2 \ # -c src/backend/requirements.txt # asgiref # django-test-migrations -virtualenv==20.26.3 \ - --hash=sha256:4c43a2a236279d9ea36a0d76f98d84bd6ca94ac4e0f4a3b9d46d05e10fea542a \ - --hash=sha256:8cc4a31139e796e9a7de2cd5cf2489de1217193116a8fd42328f1bd65f434589 +virtualenv==20.27.0 \ + --hash=sha256:2ca56a68ed615b8fe4326d11a0dca5dfbe8fd68510fb6c6349163bed3c15f2b2 \ + --hash=sha256:44a72c29cceb0ee08f300b314848c86e57bf8d1f13107a5e671fb9274138d655 # via pre-commit -wheel==0.43.0 \ - --hash=sha256:465ef92c69fa5c5da2d1cf8ac40559a8c940886afcef87dcf14b9470862f1d85 \ - --hash=sha256:55c570405f142630c6b9f72fe09d9b67cf1477fcf543ae5b8dcb1f5b7377da81 +wheel==0.44.0 \ + --hash=sha256:2376a90c98cc337d18623527a97c31797bd02bad0033d41547043a1cbfbe448f \ + --hash=sha256:a29c3f2817e95ab89aa4660681ad547c0e9547f20e75b0562fe7723c9a2a9d49 # via pip-tools -zipp==3.19.2 \ - --hash=sha256:bf1dcf6450f873a13e952a29504887c89e6de7506209e5b1bcc3460135d4de19 \ - --hash=sha256:f091755f667055f2d02b32c53771a7a6c8b47e1fdbc4b72a8b9072b3eef8015c +zipp==3.20.2 \ + --hash=sha256:a817ac80d6cf4b23bf7f2828b7cabf326f15a001bea8b1f9b49631780ba28350 \ + --hash=sha256:bc9eb26f4506fda01b81bcde0ca78103b6e62f991b381fec825435c836edbc29 # via # -c src/backend/requirements.txt # importlib-metadata diff --git a/src/backend/requirements.in b/src/backend/requirements.in index 327047bb49..82bf2194f6 100644 --- a/src/backend/requirements.in +++ b/src/backend/requirements.in @@ -40,7 +40,7 @@ feedparser # RSS newsfeed parser gunicorn # Gunicorn web server pdf2image # PDF to image conversion pillow # Image manipulation -pint==0.21 # Unit conversion # FIXED 2023-05-30 breaks tests https://github.com/matmair/InvenTree/actions/runs/5095665936/jobs/9160852560 +pint # Unit conversion pip-licenses # License information for installed packages python-barcode[images] # Barcode generator python-dotenv # Environment variable management @@ -62,3 +62,6 @@ opentelemetry-exporter-otlp opentelemetry-instrumentation-django opentelemetry-instrumentation-requests opentelemetry-instrumentation-redis + +# pinned sub-deps +pydyf==0.10.0 # Fixed 2024-08-22 see https://github.com/inventree/InvenTree/pull/7961/files diff --git a/src/backend/requirements.txt b/src/backend/requirements.txt index 9ddd6e42e0..1494205cff 100644 --- a/src/backend/requirements.txt +++ b/src/backend/requirements.txt @@ -1,5 +1,9 @@ # This file was autogenerated by uv via the following command: # uv pip compile src/backend/requirements.in -o src/backend/requirements.txt --no-strip-extras --generate-hashes +appdirs==1.4.4 \ + --hash=sha256:7d5d0167b2b1ba821647616af46a749d1c653740dd0d2415100fe26e27afdf41 \ + --hash=sha256:a841dacd6b99318a741b166adb07e19ee71a274450e68237b4650ca1055ab128 + # via pint asgiref==3.8.1 \ --hash=sha256:3e1e3ecc849832fe52ccf2cb6686b7a55f82bb1d6aee72a58826471390335e47 \ --hash=sha256:c343bd80a0bec947a9860adb4c432ffa7db769836c64238fc34bdc3fec84d590 @@ -10,15 +14,15 @@ async-timeout==4.0.3 \ --hash=sha256:4640d96be84d82d02ed59ea2b7105a0f7b33abe8703703cd0ab0bf87c427522f \ --hash=sha256:7405140ff1230c310e51dc27b3145b9092d659ce68ff733fb0cefe3ee42be028 # via redis -attrs==23.2.0 \ - --hash=sha256:935dc3b529c262f6cf76e50877d35a4bd3c1de194fd41f47a2b7ae8f19971f30 \ - --hash=sha256:99b87a485a5820b23b879f04c2305b44b951b502fd64be915879d77a7e8fc6f1 +attrs==24.2.0 \ + --hash=sha256:5cfb1b9148b5b086569baec03f20d7b6bf3bcacc9a42bebf87ffaaca362f6346 \ + --hash=sha256:81921eb96de3191c8258c199618104dd27ac608d9366f5e35d011eae1867ede2 # via # jsonschema # referencing -babel==2.15.0 \ - --hash=sha256:08706bdad8d0a3413266ab61bd6c34d0c28d6e1e7badf40a2cebe67644e2e1fb \ - --hash=sha256:8daf0e265d05768bc6c7a314cf1321e9a123afc328cc635c18622a2f30a04413 +babel==2.16.0 \ + --hash=sha256:368b5b98b37c06b7daf6696391c3240c938b37767d4584413e8438c5c435fa8b \ + --hash=sha256:d1f3554ca26605fe173f3de0c65f750f5a42f924499bf134de6423582298e316 # via py-moneyed bleach[css]==6.1.0 \ --hash=sha256:0a31f1837963c41d46bbf1331b8778e1308ea0791db03cc4e7357b97cf42a8fe \ @@ -109,159 +113,189 @@ brotli==1.1.0 \ --hash=sha256:fd5f17ff8f14003595ab414e45fce13d073e0762394f957182e69035c9f3d7c2 \ --hash=sha256:fdc3ff3bfccdc6b9cc7c342c03aa2400683f0cb891d46e94b64a197910dc4064 # via fonttools -certifi==2024.7.4 \ - --hash=sha256:5a1e7645bc0ec61a09e26c36f6106dd4cf40c6db3a1fb6352b0244e7fb057c7b \ - --hash=sha256:c198e21b1289c2ab85ee4e67bb4b4ef3ead0892059901a8d5b622f24a1101e90 +certifi==2024.8.30 \ + --hash=sha256:922820b53db7a7257ffbda3f597266d435245903d80737e34f8a45ff3e3230d8 \ + --hash=sha256:bec941d2aa8195e248a60b31ff9f0558284cf01a52591ceda73ea9afffd69fd9 # via # requests # sentry-sdk -cffi==1.16.0 \ - --hash=sha256:0c9ef6ff37e974b73c25eecc13952c55bceed9112be2d9d938ded8e856138bcc \ - --hash=sha256:131fd094d1065b19540c3d72594260f118b231090295d8c34e19a7bbcf2e860a \ - --hash=sha256:1b8ebc27c014c59692bb2664c7d13ce7a6e9a629be20e54e7271fa696ff2b417 \ - --hash=sha256:2c56b361916f390cd758a57f2e16233eb4f64bcbeee88a4881ea90fca14dc6ab \ - --hash=sha256:2d92b25dbf6cae33f65005baf472d2c245c050b1ce709cc4588cdcdd5495b520 \ - --hash=sha256:31d13b0f99e0836b7ff893d37af07366ebc90b678b6664c955b54561fc36ef36 \ - --hash=sha256:32c68ef735dbe5857c810328cb2481e24722a59a2003018885514d4c09af9743 \ - --hash=sha256:3686dffb02459559c74dd3d81748269ffb0eb027c39a6fc99502de37d501faa8 \ - --hash=sha256:582215a0e9adbe0e379761260553ba11c58943e4bbe9c36430c4ca6ac74b15ed \ - --hash=sha256:5b50bf3f55561dac5438f8e70bfcdfd74543fd60df5fa5f62d94e5867deca684 \ - --hash=sha256:5bf44d66cdf9e893637896c7faa22298baebcd18d1ddb6d2626a6e39793a1d56 \ - --hash=sha256:6602bc8dc6f3a9e02b6c22c4fc1e47aa50f8f8e6d3f78a5e16ac33ef5fefa324 \ - --hash=sha256:673739cb539f8cdaa07d92d02efa93c9ccf87e345b9a0b556e3ecc666718468d \ - --hash=sha256:68678abf380b42ce21a5f2abde8efee05c114c2fdb2e9eef2efdb0257fba1235 \ - --hash=sha256:68e7c44931cc171c54ccb702482e9fc723192e88d25a0e133edd7aff8fcd1f6e \ - --hash=sha256:6b3d6606d369fc1da4fd8c357d026317fbb9c9b75d36dc16e90e84c26854b088 \ - --hash=sha256:748dcd1e3d3d7cd5443ef03ce8685043294ad6bd7c02a38d1bd367cfd968e000 \ - --hash=sha256:7651c50c8c5ef7bdb41108b7b8c5a83013bfaa8a935590c5d74627c047a583c7 \ - --hash=sha256:7b78010e7b97fef4bee1e896df8a4bbb6712b7f05b7ef630f9d1da00f6444d2e \ - --hash=sha256:7e61e3e4fa664a8588aa25c883eab612a188c725755afff6289454d6362b9673 \ - --hash=sha256:80876338e19c951fdfed6198e70bc88f1c9758b94578d5a7c4c91a87af3cf31c \ - --hash=sha256:8895613bcc094d4a1b2dbe179d88d7fb4a15cee43c052e8885783fac397d91fe \ - --hash=sha256:88e2b3c14bdb32e440be531ade29d3c50a1a59cd4e51b1dd8b0865c54ea5d2e2 \ - --hash=sha256:8f8e709127c6c77446a8c0a8c8bf3c8ee706a06cd44b1e827c3e6a2ee6b8c098 \ - --hash=sha256:9cb4a35b3642fc5c005a6755a5d17c6c8b6bcb6981baf81cea8bfbc8903e8ba8 \ - --hash=sha256:9f90389693731ff1f659e55c7d1640e2ec43ff725cc61b04b2f9c6d8d017df6a \ - --hash=sha256:a09582f178759ee8128d9270cd1344154fd473bb77d94ce0aeb2a93ebf0feaf0 \ - --hash=sha256:a6a14b17d7e17fa0d207ac08642c8820f84f25ce17a442fd15e27ea18d67c59b \ - --hash=sha256:a72e8961a86d19bdb45851d8f1f08b041ea37d2bd8d4fd19903bc3083d80c896 \ - --hash=sha256:abd808f9c129ba2beda4cfc53bde801e5bcf9d6e0f22f095e45327c038bfe68e \ - --hash=sha256:ac0f5edd2360eea2f1daa9e26a41db02dd4b0451b48f7c318e217ee092a213e9 \ - --hash=sha256:b29ebffcf550f9da55bec9e02ad430c992a87e5f512cd63388abb76f1036d8d2 \ - --hash=sha256:b2ca4e77f9f47c55c194982e10f058db063937845bb2b7a86c84a6cfe0aefa8b \ - --hash=sha256:b7be2d771cdba2942e13215c4e340bfd76398e9227ad10402a8767ab1865d2e6 \ - --hash=sha256:b84834d0cf97e7d27dd5b7f3aca7b6e9263c56308ab9dc8aae9784abb774d404 \ - --hash=sha256:b86851a328eedc692acf81fb05444bdf1891747c25af7529e39ddafaf68a4f3f \ - --hash=sha256:bcb3ef43e58665bbda2fb198698fcae6776483e0c4a631aa5647806c25e02cc0 \ - --hash=sha256:c0f31130ebc2d37cdd8e44605fb5fa7ad59049298b3f745c74fa74c62fbfcfc4 \ - --hash=sha256:c6a164aa47843fb1b01e941d385aab7215563bb8816d80ff3a363a9f8448a8dc \ - --hash=sha256:d8a9d3ebe49f084ad71f9269834ceccbf398253c9fac910c4fd7053ff1386936 \ - --hash=sha256:db8e577c19c0fda0beb7e0d4e09e0ba74b1e4c092e0e40bfa12fe05b6f6d75ba \ - --hash=sha256:dc9b18bf40cc75f66f40a7379f6a9513244fe33c0e8aa72e2d56b0196a7ef872 \ - --hash=sha256:e09f3ff613345df5e8c3667da1d918f9149bd623cd9070c983c013792a9a62eb \ - --hash=sha256:e4108df7fe9b707191e55f33efbcb2d81928e10cea45527879a4749cbe472614 \ - --hash=sha256:e6024675e67af929088fda399b2094574609396b1decb609c55fa58b028a32a1 \ - --hash=sha256:e70f54f1796669ef691ca07d046cd81a29cb4deb1e5f942003f401c0c4a2695d \ - --hash=sha256:e715596e683d2ce000574bae5d07bd522c781a822866c20495e52520564f0969 \ - --hash=sha256:e760191dd42581e023a68b758769e2da259b5d52e3103c6060ddc02c9edb8d7b \ - --hash=sha256:ed86a35631f7bfbb28e108dd96773b9d5a6ce4811cf6ea468bb6a359b256b1e4 \ - --hash=sha256:ee07e47c12890ef248766a6e55bd38ebfb2bb8edd4142d56db91b21ea68b7627 \ - --hash=sha256:fa3a0128b152627161ce47201262d3140edb5a5c3da88d73a1b790a959126956 \ - --hash=sha256:fcc8eb6d5902bb1cf6dc4f187ee3ea80a1eba0a89aba40a5cb20a5087d961357 +cffi==1.17.1 \ + --hash=sha256:045d61c734659cc045141be4bae381a41d89b741f795af1dd018bfb532fd0df8 \ + --hash=sha256:0984a4925a435b1da406122d4d7968dd861c1385afe3b45ba82b750f229811e2 \ + --hash=sha256:0e2b1fac190ae3ebfe37b979cc1ce69c81f4e4fe5746bb401dca63a9062cdaf1 \ + --hash=sha256:0f048dcf80db46f0098ccac01132761580d28e28bc0f78ae0d58048063317e15 \ + --hash=sha256:1257bdabf294dceb59f5e70c64a3e2f462c30c7ad68092d01bbbfb1c16b1ba36 \ + --hash=sha256:1c39c6016c32bc48dd54561950ebd6836e1670f2ae46128f67cf49e789c52824 \ + --hash=sha256:1d599671f396c4723d016dbddb72fe8e0397082b0a77a4fab8028923bec050e8 \ + --hash=sha256:28b16024becceed8c6dfbc75629e27788d8a3f9030691a1dbf9821a128b22c36 \ + --hash=sha256:2bb1a08b8008b281856e5971307cc386a8e9c5b625ac297e853d36da6efe9c17 \ + --hash=sha256:30c5e0cb5ae493c04c8b42916e52ca38079f1b235c2f8ae5f4527b963c401caf \ + --hash=sha256:31000ec67d4221a71bd3f67df918b1f88f676f1c3b535a7eb473255fdc0b83fc \ + --hash=sha256:386c8bf53c502fff58903061338ce4f4950cbdcb23e2902d86c0f722b786bbe3 \ + --hash=sha256:3edc8d958eb099c634dace3c7e16560ae474aa3803a5df240542b305d14e14ed \ + --hash=sha256:45398b671ac6d70e67da8e4224a065cec6a93541bb7aebe1b198a61b58c7b702 \ + --hash=sha256:46bf43160c1a35f7ec506d254e5c890f3c03648a4dbac12d624e4490a7046cd1 \ + --hash=sha256:4ceb10419a9adf4460ea14cfd6bc43d08701f0835e979bf821052f1805850fe8 \ + --hash=sha256:51392eae71afec0d0c8fb1a53b204dbb3bcabcb3c9b807eedf3e1e6ccf2de903 \ + --hash=sha256:5da5719280082ac6bd9aa7becb3938dc9f9cbd57fac7d2871717b1feb0902ab6 \ + --hash=sha256:610faea79c43e44c71e1ec53a554553fa22321b65fae24889706c0a84d4ad86d \ + --hash=sha256:636062ea65bd0195bc012fea9321aca499c0504409f413dc88af450b57ffd03b \ + --hash=sha256:6883e737d7d9e4899a8a695e00ec36bd4e5e4f18fabe0aca0efe0a4b44cdb13e \ + --hash=sha256:6b8b4a92e1c65048ff98cfe1f735ef8f1ceb72e3d5f0c25fdb12087a23da22be \ + --hash=sha256:6f17be4345073b0a7b8ea599688f692ac3ef23ce28e5df79c04de519dbc4912c \ + --hash=sha256:706510fe141c86a69c8ddc029c7910003a17353970cff3b904ff0686a5927683 \ + --hash=sha256:72e72408cad3d5419375fc87d289076ee319835bdfa2caad331e377589aebba9 \ + --hash=sha256:733e99bc2df47476e3848417c5a4540522f234dfd4ef3ab7fafdf555b082ec0c \ + --hash=sha256:7596d6620d3fa590f677e9ee430df2958d2d6d6de2feeae5b20e82c00b76fbf8 \ + --hash=sha256:78122be759c3f8a014ce010908ae03364d00a1f81ab5c7f4a7a5120607ea56e1 \ + --hash=sha256:805b4371bf7197c329fcb3ead37e710d1bca9da5d583f5073b799d5c5bd1eee4 \ + --hash=sha256:85a950a4ac9c359340d5963966e3e0a94a676bd6245a4b55bc43949eee26a655 \ + --hash=sha256:8f2cdc858323644ab277e9bb925ad72ae0e67f69e804f4898c070998d50b1a67 \ + --hash=sha256:9755e4345d1ec879e3849e62222a18c7174d65a6a92d5b346b1863912168b595 \ + --hash=sha256:98e3969bcff97cae1b2def8ba499ea3d6f31ddfdb7635374834cf89a1a08ecf0 \ + --hash=sha256:a08d7e755f8ed21095a310a693525137cfe756ce62d066e53f502a83dc550f65 \ + --hash=sha256:a1ed2dd2972641495a3ec98445e09766f077aee98a1c896dcb4ad0d303628e41 \ + --hash=sha256:a24ed04c8ffd54b0729c07cee15a81d964e6fee0e3d4d342a27b020d22959dc6 \ + --hash=sha256:a45e3c6913c5b87b3ff120dcdc03f6131fa0065027d0ed7ee6190736a74cd401 \ + --hash=sha256:a9b15d491f3ad5d692e11f6b71f7857e7835eb677955c00cc0aefcd0669adaf6 \ + --hash=sha256:ad9413ccdeda48c5afdae7e4fa2192157e991ff761e7ab8fdd8926f40b160cc3 \ + --hash=sha256:b2ab587605f4ba0bf81dc0cb08a41bd1c0a5906bd59243d56bad7668a6fc6c16 \ + --hash=sha256:b62ce867176a75d03a665bad002af8e6d54644fad99a3c70905c543130e39d93 \ + --hash=sha256:c03e868a0b3bc35839ba98e74211ed2b05d2119be4e8a0f224fba9384f1fe02e \ + --hash=sha256:c59d6e989d07460165cc5ad3c61f9fd8f1b4796eacbd81cee78957842b834af4 \ + --hash=sha256:c7eac2ef9b63c79431bc4b25f1cd649d7f061a28808cbc6c47b534bd789ef964 \ + --hash=sha256:c9c3d058ebabb74db66e431095118094d06abf53284d9c81f27300d0e0d8bc7c \ + --hash=sha256:ca74b8dbe6e8e8263c0ffd60277de77dcee6c837a3d0881d8c1ead7268c9e576 \ + --hash=sha256:caaf0640ef5f5517f49bc275eca1406b0ffa6aa184892812030f04c2abf589a0 \ + --hash=sha256:cdf5ce3acdfd1661132f2a9c19cac174758dc2352bfe37d98aa7512c6b7178b3 \ + --hash=sha256:d016c76bdd850f3c626af19b0542c9677ba156e4ee4fccfdd7848803533ef662 \ + --hash=sha256:d01b12eeeb4427d3110de311e1774046ad344f5b1a7403101878976ecd7a10f3 \ + --hash=sha256:d63afe322132c194cf832bfec0dc69a99fb9bb6bbd550f161a49e9e855cc78ff \ + --hash=sha256:da95af8214998d77a98cc14e3a3bd00aa191526343078b530ceb0bd710fb48a5 \ + --hash=sha256:dd398dbc6773384a17fe0d3e7eeb8d1a21c2200473ee6806bb5e6a8e62bb73dd \ + --hash=sha256:de2ea4b5833625383e464549fec1bc395c1bdeeb5f25c4a3a82b5a8c756ec22f \ + --hash=sha256:de55b766c7aa2e2a3092c51e0483d700341182f08e67c63630d5b6f200bb28e5 \ + --hash=sha256:df8b1c11f177bc2313ec4b2d46baec87a5f3e71fc8b45dab2ee7cae86d9aba14 \ + --hash=sha256:e03eab0a8677fa80d646b5ddece1cbeaf556c313dcfac435ba11f107ba117b5d \ + --hash=sha256:e221cf152cff04059d011ee126477f0d9588303eb57e88923578ace7baad17f9 \ + --hash=sha256:e31ae45bc2e29f6b2abd0de1cc3b9d5205aa847cafaecb8af1476a609a2f6eb7 \ + --hash=sha256:edae79245293e15384b51f88b00613ba9f7198016a5948b5dddf4917d4d26382 \ + --hash=sha256:f1e22e8c4419538cb197e4dd60acc919d7696e5ef98ee4da4e01d3f8cfa4cc5a \ + --hash=sha256:f3a2b4222ce6b60e2e8b337bb9596923045681d71e5a082783484d845390938e \ + --hash=sha256:f6a16c31041f09ead72d69f583767292f750d24913dadacf5756b966aacb3f1a \ + --hash=sha256:f75c7ab1f9e4aca5414ed4d8e5c0e303a34f4421f8a0d47a4d019ceff0ab6af4 \ + --hash=sha256:f79fc4fc25f1c8698ff97788206bb3c2598949bfe0fef03d299eb1b5356ada99 \ + --hash=sha256:f7f5baafcc48261359e14bcd6d9bff6d4b28d9103847c9e136694cb0501aef87 \ + --hash=sha256:fc48c783f9c87e60831201f2cce7f3b2e4846bf4d8728eabe54d60700b318a0b # via # cryptography # weasyprint -charset-normalizer==3.3.2 \ - --hash=sha256:06435b539f889b1f6f4ac1758871aae42dc3a8c0e24ac9e60c2384973ad73027 \ - --hash=sha256:06a81e93cd441c56a9b65d8e1d043daeb97a3d0856d177d5c90ba85acb3db087 \ - --hash=sha256:0a55554a2fa0d408816b3b5cedf0045f4b8e1a6065aec45849de2d6f3f8e9786 \ - --hash=sha256:0b2b64d2bb6d3fb9112bafa732def486049e63de9618b5843bcdd081d8144cd8 \ - --hash=sha256:10955842570876604d404661fbccbc9c7e684caf432c09c715ec38fbae45ae09 \ - --hash=sha256:122c7fa62b130ed55f8f285bfd56d5f4b4a5b503609d181f9ad85e55c89f4185 \ - --hash=sha256:1ceae2f17a9c33cb48e3263960dc5fc8005351ee19db217e9b1bb15d28c02574 \ - --hash=sha256:1d3193f4a680c64b4b6a9115943538edb896edc190f0b222e73761716519268e \ - --hash=sha256:1f79682fbe303db92bc2b1136016a38a42e835d932bab5b3b1bfcfbf0640e519 \ - --hash=sha256:2127566c664442652f024c837091890cb1942c30937add288223dc895793f898 \ - --hash=sha256:22afcb9f253dac0696b5a4be4a1c0f8762f8239e21b99680099abd9b2b1b2269 \ - --hash=sha256:25baf083bf6f6b341f4121c2f3c548875ee6f5339300e08be3f2b2ba1721cdd3 \ - --hash=sha256:2e81c7b9c8979ce92ed306c249d46894776a909505d8f5a4ba55b14206e3222f \ - --hash=sha256:3287761bc4ee9e33561a7e058c72ac0938c4f57fe49a09eae428fd88aafe7bb6 \ - --hash=sha256:34d1c8da1e78d2e001f363791c98a272bb734000fcef47a491c1e3b0505657a8 \ - --hash=sha256:37e55c8e51c236f95b033f6fb391d7d7970ba5fe7ff453dad675e88cf303377a \ - --hash=sha256:3d47fa203a7bd9c5b6cee4736ee84ca03b8ef23193c0d1ca99b5089f72645c73 \ - --hash=sha256:3e4d1f6587322d2788836a99c69062fbb091331ec940e02d12d179c1d53e25fc \ - --hash=sha256:42cb296636fcc8b0644486d15c12376cb9fa75443e00fb25de0b8602e64c1714 \ - --hash=sha256:45485e01ff4d3630ec0d9617310448a8702f70e9c01906b0d0118bdf9d124cf2 \ - --hash=sha256:4a78b2b446bd7c934f5dcedc588903fb2f5eec172f3d29e52a9096a43722adfc \ - --hash=sha256:4ab2fe47fae9e0f9dee8c04187ce5d09f48eabe611be8259444906793ab7cbce \ - --hash=sha256:4d0d1650369165a14e14e1e47b372cfcb31d6ab44e6e33cb2d4e57265290044d \ - --hash=sha256:549a3a73da901d5bc3ce8d24e0600d1fa85524c10287f6004fbab87672bf3e1e \ - --hash=sha256:55086ee1064215781fff39a1af09518bc9255b50d6333f2e4c74ca09fac6a8f6 \ - --hash=sha256:572c3763a264ba47b3cf708a44ce965d98555f618ca42c926a9c1616d8f34269 \ - --hash=sha256:573f6eac48f4769d667c4442081b1794f52919e7edada77495aaed9236d13a96 \ - --hash=sha256:5b4c145409bef602a690e7cfad0a15a55c13320ff7a3ad7ca59c13bb8ba4d45d \ - --hash=sha256:6463effa3186ea09411d50efc7d85360b38d5f09b870c48e4600f63af490e56a \ - --hash=sha256:65f6f63034100ead094b8744b3b97965785388f308a64cf8d7c34f2f2e5be0c4 \ - --hash=sha256:663946639d296df6a2bb2aa51b60a2454ca1cb29835324c640dafb5ff2131a77 \ - --hash=sha256:6897af51655e3691ff853668779c7bad41579facacf5fd7253b0133308cf000d \ - --hash=sha256:68d1f8a9e9e37c1223b656399be5d6b448dea850bed7d0f87a8311f1ff3dabb0 \ - --hash=sha256:6ac7ffc7ad6d040517be39eb591cac5ff87416c2537df6ba3cba3bae290c0fed \ - --hash=sha256:6b3251890fff30ee142c44144871185dbe13b11bab478a88887a639655be1068 \ - --hash=sha256:6c4caeef8fa63d06bd437cd4bdcf3ffefe6738fb1b25951440d80dc7df8c03ac \ - --hash=sha256:6ef1d82a3af9d3eecdba2321dc1b3c238245d890843e040e41e470ffa64c3e25 \ - --hash=sha256:753f10e867343b4511128c6ed8c82f7bec3bd026875576dfd88483c5c73b2fd8 \ - --hash=sha256:7cd13a2e3ddeed6913a65e66e94b51d80a041145a026c27e6bb76c31a853c6ab \ - --hash=sha256:7ed9e526742851e8d5cc9e6cf41427dfc6068d4f5a3bb03659444b4cabf6bc26 \ - --hash=sha256:7f04c839ed0b6b98b1a7501a002144b76c18fb1c1850c8b98d458ac269e26ed2 \ - --hash=sha256:802fe99cca7457642125a8a88a084cef28ff0cf9407060f7b93dca5aa25480db \ - --hash=sha256:80402cd6ee291dcb72644d6eac93785fe2c8b9cb30893c1af5b8fdd753b9d40f \ - --hash=sha256:8465322196c8b4d7ab6d1e049e4c5cb460d0394da4a27d23cc242fbf0034b6b5 \ - --hash=sha256:86216b5cee4b06df986d214f664305142d9c76df9b6512be2738aa72a2048f99 \ - --hash=sha256:87d1351268731db79e0f8e745d92493ee2841c974128ef629dc518b937d9194c \ - --hash=sha256:8bdb58ff7ba23002a4c5808d608e4e6c687175724f54a5dade5fa8c67b604e4d \ - --hash=sha256:8c622a5fe39a48f78944a87d4fb8a53ee07344641b0562c540d840748571b811 \ - --hash=sha256:8d756e44e94489e49571086ef83b2bb8ce311e730092d2c34ca8f7d925cb20aa \ - --hash=sha256:8f4a014bc36d3c57402e2977dada34f9c12300af536839dc38c0beab8878f38a \ - --hash=sha256:9063e24fdb1e498ab71cb7419e24622516c4a04476b17a2dab57e8baa30d6e03 \ - --hash=sha256:90d558489962fd4918143277a773316e56c72da56ec7aa3dc3dbbe20fdfed15b \ - --hash=sha256:923c0c831b7cfcb071580d3f46c4baf50f174be571576556269530f4bbd79d04 \ - --hash=sha256:95f2a5796329323b8f0512e09dbb7a1860c46a39da62ecb2324f116fa8fdc85c \ - --hash=sha256:96b02a3dc4381e5494fad39be677abcb5e6634bf7b4fa83a6dd3112607547001 \ - --hash=sha256:9f96df6923e21816da7e0ad3fd47dd8f94b2a5ce594e00677c0013018b813458 \ - --hash=sha256:a10af20b82360ab00827f916a6058451b723b4e65030c5a18577c8b2de5b3389 \ - --hash=sha256:a50aebfa173e157099939b17f18600f72f84eed3049e743b68ad15bd69b6bf99 \ - --hash=sha256:a981a536974bbc7a512cf44ed14938cf01030a99e9b3a06dd59578882f06f985 \ - --hash=sha256:a9a8e9031d613fd2009c182b69c7b2c1ef8239a0efb1df3f7c8da66d5dd3d537 \ - --hash=sha256:ae5f4161f18c61806f411a13b0310bea87f987c7d2ecdbdaad0e94eb2e404238 \ - --hash=sha256:aed38f6e4fb3f5d6bf81bfa990a07806be9d83cf7bacef998ab1a9bd660a581f \ - --hash=sha256:b01b88d45a6fcb69667cd6d2f7a9aeb4bf53760d7fc536bf679ec94fe9f3ff3d \ - --hash=sha256:b261ccdec7821281dade748d088bb6e9b69e6d15b30652b74cbbac25e280b796 \ - --hash=sha256:b2b0a0c0517616b6869869f8c581d4eb2dd83a4d79e0ebcb7d373ef9956aeb0a \ - --hash=sha256:b4a23f61ce87adf89be746c8a8974fe1c823c891d8f86eb218bb957c924bb143 \ - --hash=sha256:bd8f7df7d12c2db9fab40bdd87a7c09b1530128315d047a086fa3ae3435cb3a8 \ - --hash=sha256:beb58fe5cdb101e3a055192ac291b7a21e3b7ef4f67fa1d74e331a7f2124341c \ - --hash=sha256:c002b4ffc0be611f0d9da932eb0f704fe2602a9a949d1f738e4c34c75b0863d5 \ - --hash=sha256:c083af607d2515612056a31f0a8d9e0fcb5876b7bfc0abad3ecd275bc4ebc2d5 \ - --hash=sha256:c180f51afb394e165eafe4ac2936a14bee3eb10debc9d9e4db8958fe36afe711 \ - --hash=sha256:c235ebd9baae02f1b77bcea61bce332cb4331dc3617d254df3323aa01ab47bd4 \ - --hash=sha256:cd70574b12bb8a4d2aaa0094515df2463cb429d8536cfb6c7ce983246983e5a6 \ - --hash=sha256:d0eccceffcb53201b5bfebb52600a5fb483a20b61da9dbc885f8b103cbe7598c \ - --hash=sha256:d965bba47ddeec8cd560687584e88cf699fd28f192ceb452d1d7ee807c5597b7 \ - --hash=sha256:db364eca23f876da6f9e16c9da0df51aa4f104a972735574842618b8c6d999d4 \ - --hash=sha256:ddbb2551d7e0102e7252db79ba445cdab71b26640817ab1e3e3648dad515003b \ - --hash=sha256:deb6be0ac38ece9ba87dea880e438f25ca3eddfac8b002a2ec3d9183a454e8ae \ - --hash=sha256:e06ed3eb3218bc64786f7db41917d4e686cc4856944f53d5bdf83a6884432e12 \ - --hash=sha256:e27ad930a842b4c5eb8ac0016b0a54f5aebbe679340c26101df33424142c143c \ - --hash=sha256:e537484df0d8f426ce2afb2d0f8e1c3d0b114b83f8850e5f2fbea0e797bd82ae \ - --hash=sha256:eb00ed941194665c332bf8e078baf037d6c35d7c4f3102ea2d4f16ca94a26dc8 \ - --hash=sha256:eb6904c354526e758fda7167b33005998fb68c46fbc10e013ca97f21ca5c8887 \ - --hash=sha256:eb8821e09e916165e160797a6c17edda0679379a4be5c716c260e836e122f54b \ - --hash=sha256:efcb3f6676480691518c177e3b465bcddf57cea040302f9f4e6e191af91174d4 \ - --hash=sha256:f27273b60488abe721a075bcca6d7f3964f9f6f067c8c4c605743023d7d3944f \ - --hash=sha256:f30c3cb33b24454a82faecaf01b19c18562b1e89558fb6c56de4d9118a032fd5 \ - --hash=sha256:fb69256e180cb6c8a894fee62b3afebae785babc1ee98b81cdf68bbca1987f33 \ - --hash=sha256:fd1abc0d89e30cc4e02e4064dc67fcc51bd941eb395c502aac3ec19fab46b519 \ - --hash=sha256:ff8fa367d09b717b2a17a052544193ad76cd49979c805768879cb63d9ca50561 +charset-normalizer==3.4.0 \ + --hash=sha256:0099d79bdfcf5c1f0c2c72f91516702ebf8b0b8ddd8905f97a8aecf49712c621 \ + --hash=sha256:0713f3adb9d03d49d365b70b84775d0a0d18e4ab08d12bc46baa6132ba78aaf6 \ + --hash=sha256:07afec21bbbbf8a5cc3651aa96b980afe2526e7f048fdfb7f1014d84acc8b6d8 \ + --hash=sha256:0b309d1747110feb25d7ed6b01afdec269c647d382c857ef4663bbe6ad95a912 \ + --hash=sha256:0d99dd8ff461990f12d6e42c7347fd9ab2532fb70e9621ba520f9e8637161d7c \ + --hash=sha256:0de7b687289d3c1b3e8660d0741874abe7888100efe14bd0f9fd7141bcbda92b \ + --hash=sha256:1110e22af8ca26b90bd6364fe4c763329b0ebf1ee213ba32b68c73de5752323d \ + --hash=sha256:130272c698667a982a5d0e626851ceff662565379baf0ff2cc58067b81d4f11d \ + --hash=sha256:136815f06a3ae311fae551c3df1f998a1ebd01ddd424aa5603a4336997629e95 \ + --hash=sha256:14215b71a762336254351b00ec720a8e85cada43b987da5a042e4ce3e82bd68e \ + --hash=sha256:1db4e7fefefd0f548d73e2e2e041f9df5c59e178b4c72fbac4cc6f535cfb1565 \ + --hash=sha256:1ffd9493de4c922f2a38c2bf62b831dcec90ac673ed1ca182fe11b4d8e9f2a64 \ + --hash=sha256:2006769bd1640bdf4d5641c69a3d63b71b81445473cac5ded39740a226fa88ab \ + --hash=sha256:20587d20f557fe189b7947d8e7ec5afa110ccf72a3128d61a2a387c3313f46be \ + --hash=sha256:223217c3d4f82c3ac5e29032b3f1c2eb0fb591b72161f86d93f5719079dae93e \ + --hash=sha256:27623ba66c183eca01bf9ff833875b459cad267aeeb044477fedac35e19ba907 \ + --hash=sha256:285e96d9d53422efc0d7a17c60e59f37fbf3dfa942073f666db4ac71e8d726d0 \ + --hash=sha256:2de62e8801ddfff069cd5c504ce3bc9672b23266597d4e4f50eda28846c322f2 \ + --hash=sha256:2f6c34da58ea9c1a9515621f4d9ac379871a8f21168ba1b5e09d74250de5ad62 \ + --hash=sha256:309a7de0a0ff3040acaebb35ec45d18db4b28232f21998851cfa709eeff49d62 \ + --hash=sha256:35c404d74c2926d0287fbd63ed5d27eb911eb9e4a3bb2c6d294f3cfd4a9e0c23 \ + --hash=sha256:3710a9751938947e6327ea9f3ea6332a09bf0ba0c09cae9cb1f250bd1f1549bc \ + --hash=sha256:3d59d125ffbd6d552765510e3f31ed75ebac2c7470c7274195b9161a32350284 \ + --hash=sha256:40d3ff7fc90b98c637bda91c89d51264a3dcf210cade3a2c6f838c7268d7a4ca \ + --hash=sha256:425c5f215d0eecee9a56cdb703203dda90423247421bf0d67125add85d0c4455 \ + --hash=sha256:43193c5cda5d612f247172016c4bb71251c784d7a4d9314677186a838ad34858 \ + --hash=sha256:44aeb140295a2f0659e113b31cfe92c9061622cadbc9e2a2f7b8ef6b1e29ef4b \ + --hash=sha256:47334db71978b23ebcf3c0f9f5ee98b8d65992b65c9c4f2d34c2eaf5bcaf0594 \ + --hash=sha256:4796efc4faf6b53a18e3d46343535caed491776a22af773f366534056c4e1fbc \ + --hash=sha256:4a51b48f42d9358460b78725283f04bddaf44a9358197b889657deba38f329db \ + --hash=sha256:4b67fdab07fdd3c10bb21edab3cbfe8cf5696f453afce75d815d9d7223fbe88b \ + --hash=sha256:4ec9dd88a5b71abfc74e9df5ebe7921c35cbb3b641181a531ca65cdb5e8e4dea \ + --hash=sha256:4f9fc98dad6c2eaa32fc3af1417d95b5e3d08aff968df0cd320066def971f9a6 \ + --hash=sha256:54b6a92d009cbe2fb11054ba694bc9e284dad30a26757b1e372a1fdddaf21920 \ + --hash=sha256:55f56e2ebd4e3bc50442fbc0888c9d8c94e4e06a933804e2af3e89e2f9c1c749 \ + --hash=sha256:5726cf76c982532c1863fb64d8c6dd0e4c90b6ece9feb06c9f202417a31f7dd7 \ + --hash=sha256:5d447056e2ca60382d460a604b6302d8db69476fd2015c81e7c35417cfabe4cd \ + --hash=sha256:5ed2e36c3e9b4f21dd9422f6893dec0abf2cca553af509b10cd630f878d3eb99 \ + --hash=sha256:5ff2ed8194587faf56555927b3aa10e6fb69d931e33953943bc4f837dfee2242 \ + --hash=sha256:62f60aebecfc7f4b82e3f639a7d1433a20ec32824db2199a11ad4f5e146ef5ee \ + --hash=sha256:63bc5c4ae26e4bc6be6469943b8253c0fd4e4186c43ad46e713ea61a0ba49129 \ + --hash=sha256:6b40e8d38afe634559e398cc32b1472f376a4099c75fe6299ae607e404c033b2 \ + --hash=sha256:6b493a043635eb376e50eedf7818f2f322eabbaa974e948bd8bdd29eb7ef2a51 \ + --hash=sha256:6dba5d19c4dfab08e58d5b36304b3f92f3bd5d42c1a3fa37b5ba5cdf6dfcbcee \ + --hash=sha256:6fd30dc99682dc2c603c2b315bded2799019cea829f8bf57dc6b61efde6611c8 \ + --hash=sha256:707b82d19e65c9bd28b81dde95249b07bf9f5b90ebe1ef17d9b57473f8a64b7b \ + --hash=sha256:7706f5850360ac01d80c89bcef1640683cc12ed87f42579dab6c5d3ed6888613 \ + --hash=sha256:7782afc9b6b42200f7362858f9e73b1f8316afb276d316336c0ec3bd73312742 \ + --hash=sha256:79983512b108e4a164b9c8d34de3992f76d48cadc9554c9e60b43f308988aabe \ + --hash=sha256:7f683ddc7eedd742e2889d2bfb96d69573fde1d92fcb811979cdb7165bb9c7d3 \ + --hash=sha256:82357d85de703176b5587dbe6ade8ff67f9f69a41c0733cf2425378b49954de5 \ + --hash=sha256:84450ba661fb96e9fd67629b93d2941c871ca86fc38d835d19d4225ff946a631 \ + --hash=sha256:86f4e8cca779080f66ff4f191a685ced73d2f72d50216f7112185dc02b90b9b7 \ + --hash=sha256:8cda06946eac330cbe6598f77bb54e690b4ca93f593dee1568ad22b04f347c15 \ + --hash=sha256:8ce7fd6767a1cc5a92a639b391891bf1c268b03ec7e021c7d6d902285259685c \ + --hash=sha256:8ff4e7cdfdb1ab5698e675ca622e72d58a6fa2a8aa58195de0c0061288e6e3ea \ + --hash=sha256:9289fd5dddcf57bab41d044f1756550f9e7cf0c8e373b8cdf0ce8773dc4bd417 \ + --hash=sha256:92a7e36b000bf022ef3dbb9c46bfe2d52c047d5e3f3343f43204263c5addc250 \ + --hash=sha256:92db3c28b5b2a273346bebb24857fda45601aef6ae1c011c0a997106581e8a88 \ + --hash=sha256:95c3c157765b031331dd4db3c775e58deaee050a3042fcad72cbc4189d7c8dca \ + --hash=sha256:980b4f289d1d90ca5efcf07958d3eb38ed9c0b7676bf2831a54d4f66f9c27dfa \ + --hash=sha256:9ae4ef0b3f6b41bad6366fb0ea4fc1d7ed051528e113a60fa2a65a9abb5b1d99 \ + --hash=sha256:9c98230f5042f4945f957d006edccc2af1e03ed5e37ce7c373f00a5a4daa6149 \ + --hash=sha256:9fa2566ca27d67c86569e8c85297aaf413ffab85a8960500f12ea34ff98e4c41 \ + --hash=sha256:a14969b8691f7998e74663b77b4c36c0337cb1df552da83d5c9004a93afdb574 \ + --hash=sha256:a8aacce6e2e1edcb6ac625fb0f8c3a9570ccc7bfba1f63419b3769ccf6a00ed0 \ + --hash=sha256:a8e538f46104c815be19c975572d74afb53f29650ea2025bbfaef359d2de2f7f \ + --hash=sha256:aa41e526a5d4a9dfcfbab0716c7e8a1b215abd3f3df5a45cf18a12721d31cb5d \ + --hash=sha256:aa693779a8b50cd97570e5a0f343538a8dbd3e496fa5dcb87e29406ad0299654 \ + --hash=sha256:ab22fbd9765e6954bc0bcff24c25ff71dcbfdb185fcdaca49e81bac68fe724d3 \ + --hash=sha256:ab2e5bef076f5a235c3774b4f4028a680432cded7cad37bba0fd90d64b187d19 \ + --hash=sha256:ab973df98fc99ab39080bfb0eb3a925181454d7c3ac8a1e695fddfae696d9e90 \ + --hash=sha256:af73657b7a68211996527dbfeffbb0864e043d270580c5aef06dc4b659a4b578 \ + --hash=sha256:b197e7094f232959f8f20541ead1d9862ac5ebea1d58e9849c1bf979255dfac9 \ + --hash=sha256:b295729485b06c1a0683af02a9e42d2caa9db04a373dc38a6a58cdd1e8abddf1 \ + --hash=sha256:b8831399554b92b72af5932cdbbd4ddc55c55f631bb13ff8fe4e6536a06c5c51 \ + --hash=sha256:b8dcd239c743aa2f9c22ce674a145e0a25cb1566c495928440a181ca1ccf6719 \ + --hash=sha256:bcb4f8ea87d03bc51ad04add8ceaf9b0f085ac045ab4d74e73bbc2dc033f0236 \ + --hash=sha256:bd7af3717683bea4c87acd8c0d3d5b44d56120b26fd3f8a692bdd2d5260c620a \ + --hash=sha256:bf4475b82be41b07cc5e5ff94810e6a01f276e37c2d55571e3fe175e467a1a1c \ + --hash=sha256:c3e446d253bd88f6377260d07c895816ebf33ffffd56c1c792b13bff9c3e1ade \ + --hash=sha256:c57516e58fd17d03ebe67e181a4e4e2ccab1168f8c2976c6a334d4f819fe5944 \ + --hash=sha256:c94057af19bc953643a33581844649a7fdab902624d2eb739738a30e2b3e60fc \ + --hash=sha256:cab5d0b79d987c67f3b9e9c53f54a61360422a5a0bc075f43cab5621d530c3b6 \ + --hash=sha256:ce031db0408e487fd2775d745ce30a7cd2923667cf3b69d48d219f1d8f5ddeb6 \ + --hash=sha256:cee4373f4d3ad28f1ab6290684d8e2ebdb9e7a1b74fdc39e4c211995f77bec27 \ + --hash=sha256:d5b054862739d276e09928de37c79ddeec42a6e1bfc55863be96a36ba22926f6 \ + --hash=sha256:dbe03226baf438ac4fda9e2d0715022fd579cb641c4cf639fa40d53b2fe6f3e2 \ + --hash=sha256:dc15e99b2d8a656f8e666854404f1ba54765871104e50c8e9813af8a7db07f12 \ + --hash=sha256:dcaf7c1524c0542ee2fc82cc8ec337f7a9f7edee2532421ab200d2b920fc97cf \ + --hash=sha256:dd4eda173a9fcccb5f2e2bd2a9f423d180194b1bf17cf59e3269899235b2a114 \ + --hash=sha256:dd9a8bd8900e65504a305bf8ae6fa9fbc66de94178c420791d0293702fce2df7 \ + --hash=sha256:de7376c29d95d6719048c194a9cf1a1b0393fbe8488a22008610b0361d834ecf \ + --hash=sha256:e7fdd52961feb4c96507aa649550ec2a0d527c086d284749b2f582f2d40a2e0d \ + --hash=sha256:e91f541a85298cf35433bf66f3fab2a4a2cff05c127eeca4af174f6d497f0d4b \ + --hash=sha256:e9e3c4c9e1ed40ea53acf11e2a386383c3304212c965773704e4603d589343ed \ + --hash=sha256:ee803480535c44e7f5ad00788526da7d85525cfefaf8acf8ab9a310000be4b03 \ + --hash=sha256:f09cb5a7bbe1ecae6e87901a2eb23e0256bb524a79ccc53eb0b7629fbe7677c4 \ + --hash=sha256:f19c1585933c82098c2a520f8ec1227f20e339e33aca8fa6f956f6691b784e67 \ + --hash=sha256:f1a2f519ae173b5b6a2c9d5fa3116ce16e48b3462c8b96dfdded11055e3d6365 \ + --hash=sha256:f28f891ccd15c514a0981f3b9db9aa23d62fe1a99997512b0491d2ed323d229a \ + --hash=sha256:f3e73a4255342d4eb26ef6df01e3962e73aa29baa3124a8e824c5d3364a65748 \ + --hash=sha256:f606a1881d2663630ea5b8ce2efe2111740df4b687bd78b34a8131baa007f79b \ + --hash=sha256:fe9f97feb71aa9896b81973a7bbada8c49501dc73e58a10fcef6663af95e5079 \ + --hash=sha256:ffc519621dce0c767e96b9c53f09c5d215578e10b02c285809f76509a3931482 # via requests coreapi==2.3.3 \ --hash=sha256:46145fcc1f7017c076a2ef684969b641d18a2991051fddec9458ad3f78ffc1cb \ @@ -271,39 +305,34 @@ coreschema==0.0.4 \ --hash=sha256:5e6ef7bf38c1525d5e55a895934ab4273548629f16aed5c0a6caa74ebf45551f \ --hash=sha256:9503506007d482ab0867ba14724b93c18a33b22b6d19fb419ef2d239dd4a1607 # via coreapi -cryptography==42.0.8 \ - --hash=sha256:013629ae70b40af70c9a7a5db40abe5d9054e6f4380e50ce769947b73bf3caad \ - --hash=sha256:2346b911eb349ab547076f47f2e035fc8ff2c02380a7cbbf8d87114fa0f1c583 \ - --hash=sha256:2f66d9cd9147ee495a8374a45ca445819f8929a3efcd2e3df6428e46c3cbb10b \ - --hash=sha256:2f88d197e66c65be5e42cd72e5c18afbfae3f741742070e3019ac8f4ac57262c \ - --hash=sha256:31f721658a29331f895a5a54e7e82075554ccfb8b163a18719d342f5ffe5ecb1 \ - --hash=sha256:343728aac38decfdeecf55ecab3264b015be68fc2816ca800db649607aeee648 \ - --hash=sha256:5226d5d21ab681f432a9c1cf8b658c0cb02533eece706b155e5fbd8a0cdd3949 \ - --hash=sha256:57080dee41209e556a9a4ce60d229244f7a66ef52750f813bfbe18959770cfba \ - --hash=sha256:5a94eccb2a81a309806027e1670a358b99b8fe8bfe9f8d329f27d72c094dde8c \ - --hash=sha256:6b7c4f03ce01afd3b76cf69a5455caa9cfa3de8c8f493e0d3ab7d20611c8dae9 \ - --hash=sha256:7016f837e15b0a1c119d27ecd89b3515f01f90a8615ed5e9427e30d9cdbfed3d \ - --hash=sha256:81884c4d096c272f00aeb1f11cf62ccd39763581645b0812e99a91505fa48e0c \ - --hash=sha256:81d8a521705787afe7a18d5bfb47ea9d9cc068206270aad0b96a725022e18d2e \ - --hash=sha256:8d09d05439ce7baa8e9e95b07ec5b6c886f548deb7e0f69ef25f64b3bce842f2 \ - --hash=sha256:961e61cefdcb06e0c6d7e3a1b22ebe8b996eb2bf50614e89384be54c48c6b63d \ - --hash=sha256:9c0c1716c8447ee7dbf08d6db2e5c41c688544c61074b54fc4564196f55c25a7 \ - --hash=sha256:a0608251135d0e03111152e41f0cc2392d1e74e35703960d4190b2e0f4ca9c70 \ - --hash=sha256:a0c5b2b0585b6af82d7e385f55a8bc568abff8923af147ee3c07bd8b42cda8b2 \ - --hash=sha256:ad803773e9df0b92e0a817d22fd8a3675493f690b96130a5e24f1b8fabbea9c7 \ - --hash=sha256:b297f90c5723d04bcc8265fc2a0f86d4ea2e0f7ab4b6994459548d3a6b992a14 \ - --hash=sha256:ba4f0a211697362e89ad822e667d8d340b4d8d55fae72cdd619389fb5912eefe \ - --hash=sha256:c4783183f7cb757b73b2ae9aed6599b96338eb957233c58ca8f49a49cc32fd5e \ - --hash=sha256:c9bb2ae11bfbab395bdd072985abde58ea9860ed84e59dbc0463a5d0159f5b71 \ - --hash=sha256:cafb92b2bc622cd1aa6a1dce4b93307792633f4c5fe1f46c6b97cf67073ec961 \ - --hash=sha256:d45b940883a03e19e944456a558b67a41160e367a719833c53de6911cabba2b7 \ - --hash=sha256:dc0fdf6787f37b1c6b08e6dfc892d9d068b5bdb671198c72072828b80bd5fe4c \ - --hash=sha256:dea567d1b0e8bc5764b9443858b673b734100c2871dc93163f58c46a97a83d28 \ - --hash=sha256:dec9b018df185f08483f294cae6ccac29e7a6e0678996587363dc352dc65c842 \ - --hash=sha256:e3ec3672626e1b9e55afd0df6d774ff0e953452886e06e0f1eb7eb0c832e8902 \ - --hash=sha256:e599b53fd95357d92304510fb7bda8523ed1f79ca98dce2f43c115950aa78801 \ - --hash=sha256:fa76fbb7596cc5839320000cdd5d0955313696d9511debab7ee7278fc8b5c84a \ - --hash=sha256:fff12c88a672ab9c9c1cf7b0c80e3ad9e2ebd9d828d955c126be4fd3e5578c9e +cryptography==43.0.1 \ + --hash=sha256:014f58110f53237ace6a408b5beb6c427b64e084eb451ef25a28308270086494 \ + --hash=sha256:1bbcce1a551e262dfbafb6e6252f1ae36a248e615ca44ba302df077a846a8806 \ + --hash=sha256:203e92a75716d8cfb491dc47c79e17d0d9207ccffcbcb35f598fbe463ae3444d \ + --hash=sha256:27e613d7077ac613e399270253259d9d53872aaf657471473ebfc9a52935c062 \ + --hash=sha256:2bd51274dcd59f09dd952afb696bf9c61a7a49dfc764c04dd33ef7a6b502a1e2 \ + --hash=sha256:38926c50cff6f533f8a2dae3d7f19541432610d114a70808f0926d5aaa7121e4 \ + --hash=sha256:511f4273808ab590912a93ddb4e3914dfd8a388fed883361b02dea3791f292e1 \ + --hash=sha256:58d4e9129985185a06d849aa6df265bdd5a74ca6e1b736a77959b498e0505b85 \ + --hash=sha256:5b43d1ea6b378b54a1dc99dd8a2b5be47658fe9a7ce0a58ff0b55f4b43ef2b84 \ + --hash=sha256:61ec41068b7b74268fa86e3e9e12b9f0c21fcf65434571dbb13d954bceb08042 \ + --hash=sha256:666ae11966643886c2987b3b721899d250855718d6d9ce41b521252a17985f4d \ + --hash=sha256:68aaecc4178e90719e95298515979814bda0cbada1256a4485414860bd7ab962 \ + --hash=sha256:7c05650fe8023c5ed0d46793d4b7d7e6cd9c04e68eabe5b0aeea836e37bdcec2 \ + --hash=sha256:80eda8b3e173f0f247f711eef62be51b599b5d425c429b5d4ca6a05e9e856baa \ + --hash=sha256:8385d98f6a3bf8bb2d65a73e17ed87a3ba84f6991c155691c51112075f9ffc5d \ + --hash=sha256:88cce104c36870d70c49c7c8fd22885875d950d9ee6ab54df2745f83ba0dc365 \ + --hash=sha256:9d3cdb25fa98afdd3d0892d132b8d7139e2c087da1712041f6b762e4f807cc96 \ + --hash=sha256:a575913fb06e05e6b4b814d7f7468c2c660e8bb16d8d5a1faf9b33ccc569dd47 \ + --hash=sha256:ac119bb76b9faa00f48128b7f5679e1d8d437365c5d26f1c2c3f0da4ce1b553d \ + --hash=sha256:c1332724be35d23a854994ff0b66530119500b6053d0bd3363265f7e5e77288d \ + --hash=sha256:d03a475165f3134f773d1388aeb19c2d25ba88b6a9733c5c590b9ff7bbfa2e0c \ + --hash=sha256:d75601ad10b059ec832e78823b348bfa1a59f6b8d545db3a24fd44362a1564cb \ + --hash=sha256:de41fd81a41e53267cb020bb3a7212861da53a7d39f863585d13ea11049cf277 \ + --hash=sha256:e710bf40870f4db63c3d7d929aa9e09e4e7ee219e703f949ec4073b4294f6172 \ + --hash=sha256:ea25acb556320250756e53f9e20a4177515f012c9eaea17eb7587a8c4d8ae034 \ + --hash=sha256:f98bf604c82c416bc829e490c700ca1553eafdf2912a91e23a79d97d9801372a \ + --hash=sha256:fba1007b3ef89946dbbb515aeeb41e30203b004f0b4b00e5e16078b518563289 # via # -r src/backend/requirements.in # djangorestframework-simplejwt @@ -324,6 +353,7 @@ deprecated==1.2.14 \ # opentelemetry-api # opentelemetry-exporter-otlp-proto-grpc # opentelemetry-exporter-otlp-proto-http + # opentelemetry-semantic-conventions diff-match-patch==20230430 \ --hash=sha256:953019cdb9c9d2c9e47b5b12bcff3cf4746fc4598eb406076fa1fc27e6a1f15c \ --hash=sha256:dce43505fb7b1b317de7195579388df0746d90db07015ed47a85e5e44930ef93 @@ -331,9 +361,9 @@ diff-match-patch==20230430 \ dj-rest-auth==6.0.0 \ --hash=sha256:760b45f3a07cd6182e6a20fe07d0c55230c5f950167df724d7914d0dd8c50133 # via -r src/backend/requirements.in -django==4.2.15 \ - --hash=sha256:61ee4a130efb8c451ef3467c67ca99fdce400fedd768634efc86a68c18d80d30 \ - --hash=sha256:c77f926b81129493961e19c0e02188f8d07c112a1162df69bfab178ae447f94a +django==4.2.16 \ + --hash=sha256:1ddc333a16fc139fd253035a1606bb24261951bbc3a6ca256717fa06cc41a898 \ + --hash=sha256:6f1616c2786c408ce86ab7e10f792b8f15742f7b7b7460243929cb371e7f1dad # via # -r src/backend/requirements.in # dj-rest-auth @@ -366,8 +396,8 @@ django==4.2.15 \ # djangorestframework # djangorestframework-simplejwt # drf-spectacular -django-allauth[openid, saml]==0.63.3 \ - --hash=sha256:2374164c468a309e6badf70bc3405136df6036f24a20a13387f2a063066bdaa9 +django-allauth[openid, saml]==64.1.0 \ + --hash=sha256:713bfc410021140aefae0f04eeaac5d50ebedad7abaf43174670a9ec002c595c # via # -r src/backend/requirements.in # django-allauth-2fa @@ -375,29 +405,29 @@ django-allauth-2fa==0.11.1 \ --hash=sha256:02ffdf1025836f072c2f6ec0964494589cf1d52362f663f9ff6d9ca61a7b6962 \ --hash=sha256:2f2d61dd488f66ad45e59780b061f5abe96caea9c3466e3ee4ea50ea1faebef6 # via -r src/backend/requirements.in -django-cleanup==8.1.0 \ - --hash=sha256:70df905076a44e7a111b31198199af633dee08876e199e6dce36ca8dd6b8b10f \ - --hash=sha256:7903873ea73b3f7e61e055340d27dba49b70634f60c87a573ad748e172836458 +django-cleanup==9.0.0 \ + --hash=sha256:19f8b0e830233f9f0f683b17181f414672a0f48afe3ea3cc80ba47ae40ad880c \ + --hash=sha256:bb9fb560aaf62959c81e31fa40885c36bbd5854d5aa21b90df2c7e4ba633531e # via -r src/backend/requirements.in -django-cors-headers==4.4.0 \ - --hash=sha256:5c6e3b7fe870876a1efdfeb4f433782c3524078fa0dc9e0195f6706ce7a242f6 \ - --hash=sha256:92cf4633e22af67a230a1456cb1b7a02bb213d6536d2dcb2a4a24092ea9cebc2 +django-cors-headers==4.5.0 \ + --hash=sha256:28c1ded847aa70208798de3e42422a782f427b8b720e8d7319d34b654b5978e6 \ + --hash=sha256:6c01a85cf1ec779a7bde621db853aa3ce5c065a5ba8e27df7a9f9e8dac310f4f # via -r src/backend/requirements.in django-crispy-forms==1.14.0 \ --hash=sha256:35887b8851a931374dd697207a8f56c57a9c5cb9dbf0b9fa54314da5666cea5b \ --hash=sha256:bc4d2037f6de602d39c0bc452ac3029d1f5d65e88458872cc4dbc01c3a400604 # via -r src/backend/requirements.in -django-dbbackup==4.1.0 \ - --hash=sha256:c411d38d0f8e60ab3254017278c14ebd75d4001b5634fc73be7fbe8a5260583b \ - --hash=sha256:c539b5246b429a22a8efadbab3719ee6b8eda45c66c4ff6592056c590d51c782 +django-dbbackup==4.2.1 \ + --hash=sha256:157a2ec10d482345cd75092e510ac40d6e2ee6084604a1d17abe178c2f06bc69 \ + --hash=sha256:b23265600ead0780ca781b1b4b594949aaa8a20d74f08701f91ee9d7eb1f08cd # via -r src/backend/requirements.in django-error-report-2==0.4.2 \ --hash=sha256:1dd99c497af09b7ea99f5fbaf910501838150a9d5390796ea00e187bc62f6c1b \ --hash=sha256:603e1e3b24d01bbfeab6379af948893b2b034031c80fa8b45cf1c4735341c04b # via -r src/backend/requirements.in -django-filter==24.2 \ - --hash=sha256:48e5fc1da3ccd6ca0d5f9bb550973518ce977a4edde9d2a8a154a7f4f0b9f96e \ - --hash=sha256:df2ee9857e18d38bed203c8745f62a803fa0f31688c9fe6f8e868120b1848e48 +django-filter==24.3 \ + --hash=sha256:c4852822928ce17fb699bcfccd644b3574f1a2d80aeb2b4ff4f16b02dd49dc64 \ + --hash=sha256:d8ccaf6732afd21ca0542f6733b11591030fa98669f8d15599b358e24a2cd9c3 # via -r src/backend/requirements.in django-flags==5.0.13 \ --hash=sha256:52df74b86d93f5cb402190ad26b68a5ba0f127e9e016189f1a6f2e8ba3c06a42 \ @@ -435,9 +465,9 @@ django-mptt==0.16.0 \ --hash=sha256:56c9606bf0b329b5f5afd55dd8bfd073612ea1d5999b10903b09de62bee84c8e \ --hash=sha256:8716849ba3318d94e2e100ed0923a05c1ffdf8195f8472b690dbaf737d2af3b5 # via -r src/backend/requirements.in -django-otp==1.5.0 \ - --hash=sha256:e7142139f1e9686be5f396669a3d3d61178cd9b3e9de9de5933888668908b46b \ - --hash=sha256:e88871d2d3b333a86c2cd0cb721be8098d4d6344cb220315a500e5a5c8254295 +django-otp==1.5.4 \ + --hash=sha256:0d9497ea4fb13fc04d50b49aa53dd1c740fe4bc5dde0ca27fb394f84e5da7bac \ + --hash=sha256:783dea669ac0eaf5cd336f73839443584ee665af427a84175cca5a9d620366db # via django-allauth-2fa django-picklefield==3.2 \ --hash=sha256:aa463f5d79d497dbe789f14b45180f00a51d0d670067d0729f352a3941cdfa4d \ @@ -446,9 +476,9 @@ django-picklefield==3.2 \ django-q-sentry==0.1.6 \ --hash=sha256:9b8b4d7fad253a7d9a47f2c2ab0d9dea83078b7ef45c8849dbb1e4176ef8d050 # via -r src/backend/requirements.in -django-q2==1.6.2 \ - --hash=sha256:c2d75552c80b83ca0d8c0b0db7db4f17e9f43ee131a46d0ddd514c5f5fc603cb \ - --hash=sha256:cd83c16b5791cd99f83a8d106d2447305d73c6c8ed8ec22c7cb954fe0e814284 +django-q2==1.7.3 \ + --hash=sha256:949e85fdc0aae9820bf9c10dc31e31cb05b21e8b919bf294221aa41c37030e25 \ + --hash=sha256:96bacc384683617823077e20c9007ad7cdc35a6d4c1671b9589e6e28cf93ff4c # via -r src/backend/requirements.in django-recurrence==1.11.1 \ --hash=sha256:0c65f30872599b5813a9bab6952dada23c55894f28674490a753ada559f14bc5 \ @@ -473,9 +503,9 @@ django-stdimage==6.0.2 \ --hash=sha256:880ab14828be56b53f711c3afae83c219ddd5d9af00850626736feb48382bf7f \ --hash=sha256:9a73f7da48c48074580e2b032d5bdb7164935dbe4b9dc4fb88a7e112f3d521c8 # via -r src/backend/requirements.in -django-taggit==5.0.1 \ - --hash=sha256:a0ca8a28b03c4b26c2630fd762cb76ec39b5e41abf727a7b66f897a625c5e647 \ - --hash=sha256:edcd7db1e0f35c304e082a2f631ddac2e16ef5296029524eb792af7430cab4cc +django-taggit==6.1.0 \ + --hash=sha256:ab776264bbc76cb3d7e49e1bf9054962457831bd21c3a42db9138b41956e4cf0 \ + --hash=sha256:c4d1199e6df34125dd36db5eb0efe545b254dec3980ce5dd80e6bab3e78757c3 # via -r src/backend/requirements.in django-user-sessions==2.0.0 \ --hash=sha256:0965554279f556b47062965609fa08b3ae45bbc581001dbe84b2ea599cc67748 \ @@ -561,125 +591,148 @@ feedparser==6.0.11 \ --hash=sha256:0be7ee7b395572b19ebeb1d6aafb0028dee11169f1c934e0ed67d54992f4ad45 \ --hash=sha256:c9d0407b64c6f2a065d0ebb292c2b35c01050cc0dc33757461aaabdc4c4184d5 # via -r src/backend/requirements.in -fonttools[woff]==4.53.0 \ - --hash=sha256:099634631b9dd271d4a835d2b2a9e042ccc94ecdf7e2dd9f7f34f7daf333358d \ - --hash=sha256:0c555e039d268445172b909b1b6bdcba42ada1cf4a60e367d68702e3f87e5f64 \ - --hash=sha256:1e677bfb2b4bd0e5e99e0f7283e65e47a9814b0486cb64a41adf9ef110e078f2 \ - --hash=sha256:2367d47816cc9783a28645bc1dac07f8ffc93e0f015e8c9fc674a5b76a6da6e4 \ - --hash=sha256:28d072169fe8275fb1a0d35e3233f6df36a7e8474e56cb790a7258ad822b6fd6 \ - --hash=sha256:31f0e3147375002aae30696dd1dc596636abbd22fca09d2e730ecde0baad1d6b \ - --hash=sha256:3e0ad3c6ea4bd6a289d958a1eb922767233f00982cf0fe42b177657c86c80a8f \ - --hash=sha256:45b4afb069039f0366a43a5d454bc54eea942bfb66b3fc3e9a2c07ef4d617380 \ - --hash=sha256:4a2a6ba400d386e904fd05db81f73bee0008af37799a7586deaa4aef8cd5971e \ - --hash=sha256:4f520d9ac5b938e6494f58a25c77564beca7d0199ecf726e1bd3d56872c59749 \ - --hash=sha256:52a6e0a7a0bf611c19bc8ec8f7592bdae79c8296c70eb05917fd831354699b20 \ - --hash=sha256:5a4788036201c908079e89ae3f5399b33bf45b9ea4514913f4dbbe4fac08efe0 \ - --hash=sha256:6b4f04b1fbc01a3569d63359f2227c89ab294550de277fd09d8fca6185669fa4 \ - --hash=sha256:715b41c3e231f7334cbe79dfc698213dcb7211520ec7a3bc2ba20c8515e8a3b5 \ - --hash=sha256:73121a9b7ff93ada888aaee3985a88495489cc027894458cb1a736660bdfb206 \ - --hash=sha256:74ae2441731a05b44d5988d3ac2cf784d3ee0a535dbed257cbfff4be8bb49eb9 \ - --hash=sha256:7d6166192dcd925c78a91d599b48960e0a46fe565391c79fe6de481ac44d20ac \ - --hash=sha256:7f193f060391a455920d61684a70017ef5284ccbe6023bb056e15e5ac3de11d1 \ - --hash=sha256:907fa0b662dd8fc1d7c661b90782ce81afb510fc4b7aa6ae7304d6c094b27bce \ - --hash=sha256:93156dd7f90ae0a1b0e8871032a07ef3178f553f0c70c386025a808f3a63b1f4 \ - --hash=sha256:93bc9e5aaa06ff928d751dc6be889ff3e7d2aa393ab873bc7f6396a99f6fbb12 \ - --hash=sha256:95db0c6581a54b47c30860d013977b8a14febc206c8b5ff562f9fe32738a8aca \ - --hash=sha256:973d030180eca8255b1bce6ffc09ef38a05dcec0e8320cc9b7bcaa65346f341d \ - --hash=sha256:9cd7a6beec6495d1dffb1033d50a3f82dfece23e9eb3c20cd3c2444d27514068 \ - --hash=sha256:9fe9096a60113e1d755e9e6bda15ef7e03391ee0554d22829aa506cdf946f796 \ - --hash=sha256:a209d2e624ba492df4f3bfad5996d1f76f03069c6133c60cd04f9a9e715595ec \ - --hash=sha256:a239afa1126b6a619130909c8404070e2b473dd2b7fc4aacacd2e763f8597fea \ - --hash=sha256:ba9f09ff17f947392a855e3455a846f9855f6cf6bec33e9a427d3c1d254c712f \ - --hash=sha256:bb7273789f69b565d88e97e9e1da602b4ee7ba733caf35a6c2affd4334d4f005 \ - --hash=sha256:bd5bc124fae781a4422f61b98d1d7faa47985f663a64770b78f13d2c072410c2 \ - --hash=sha256:bff98816cb144fb7b85e4b5ba3888a33b56ecef075b0e95b95bcd0a5fbf20f06 \ - --hash=sha256:c4ee5a24e281fbd8261c6ab29faa7fd9a87a12e8c0eed485b705236c65999109 \ - --hash=sha256:c93ed66d32de1559b6fc348838c7572d5c0ac1e4a258e76763a5caddd8944002 \ - --hash=sha256:d1a24f51a3305362b94681120c508758a88f207fa0a681c16b5a4172e9e6c7a9 \ - --hash=sha256:d8f191a17369bd53a5557a5ee4bab91d5330ca3aefcdf17fab9a497b0e7cff7a \ - --hash=sha256:daaef7390e632283051e3cf3e16aff2b68b247e99aea916f64e578c0449c9c68 \ - --hash=sha256:e40013572bfb843d6794a3ce076c29ef4efd15937ab833f520117f8eccc84fd6 \ - --hash=sha256:eceef49f457253000e6a2d0f7bd08ff4e9fe96ec4ffce2dbcb32e34d9c1b8161 \ - --hash=sha256:ee595d7ba9bba130b2bec555a40aafa60c26ce68ed0cf509983e0f12d88674fd \ - --hash=sha256:ef50ec31649fbc3acf6afd261ed89d09eb909b97cc289d80476166df8438524d \ - --hash=sha256:fa1f3e34373aa16045484b4d9d352d4c6b5f9f77ac77a178252ccbc851e8b2ee \ - --hash=sha256:fca66d9ff2ac89b03f5aa17e0b21a97c21f3491c46b583bb131eb32c7bab33af +flexcache==0.3 \ + --hash=sha256:18743bd5a0621bfe2cf8d519e4c3bfdf57a269c15d1ced3fb4b64e0ff4600656 \ + --hash=sha256:d43c9fea82336af6e0115e308d9d33a185390b8346a017564611f1466dcd2e32 + # via pint +flexparser==0.3.1 \ + --hash=sha256:2e3e2936bec1f9277f777ef77297522087d96adb09624d4fe4240fd56885c013 \ + --hash=sha256:36f795d82e50f5c9ae2fde1c33f21f88922fdd67b7629550a3cc4d0b40a66856 + # via pint +fonttools[woff]==4.54.1 \ + --hash=sha256:07e005dc454eee1cc60105d6a29593459a06321c21897f769a281ff2d08939f6 \ + --hash=sha256:0a911591200114969befa7f2cb74ac148bce5a91df5645443371aba6d222e263 \ + --hash=sha256:0d1d353ef198c422515a3e974a1e8d5b304cd54a4c2eebcae708e37cd9eeffb1 \ + --hash=sha256:0e88e3018ac809b9662615072dcd6b84dca4c2d991c6d66e1970a112503bba7e \ + --hash=sha256:1d152d1be65652fc65e695e5619e0aa0982295a95a9b29b52b85775243c06556 \ + --hash=sha256:262705b1663f18c04250bd1242b0515d3bbae177bee7752be67c979b7d47f43d \ + --hash=sha256:278913a168f90d53378c20c23b80f4e599dca62fbffae4cc620c8eed476b723e \ + --hash=sha256:301540e89cf4ce89d462eb23a89464fef50915255ece765d10eee8b2bf9d75b2 \ + --hash=sha256:31c32d7d4b0958600eac75eaf524b7b7cb68d3a8c196635252b7a2c30d80e986 \ + --hash=sha256:357cacb988a18aace66e5e55fe1247f2ee706e01debc4b1a20d77400354cddeb \ + --hash=sha256:37cddd62d83dc4f72f7c3f3c2bcf2697e89a30efb152079896544a93907733bd \ + --hash=sha256:41bb0b250c8132b2fcac148e2e9198e62ff06f3cc472065dff839327945c5882 \ + --hash=sha256:4aa4817f0031206e637d1e685251ac61be64d1adef111060df84fdcbc6ab6c44 \ + --hash=sha256:4e10d2e0a12e18f4e2dd031e1bf7c3d7017be5c8dbe524d07706179f355c5dac \ + --hash=sha256:5419771b64248484299fa77689d4f3aeed643ea6630b2ea750eeab219588ba20 \ + --hash=sha256:54471032f7cb5fca694b5f1a0aaeba4af6e10ae989df408e0216f7fd6cdc405d \ + --hash=sha256:58974b4987b2a71ee08ade1e7f47f410c367cdfc5a94fabd599c88165f56213a \ + --hash=sha256:58d29b9a294573d8319f16f2f79e42428ba9b6480442fa1836e4eb89c4d9d61c \ + --hash=sha256:5eb2474a7c5be8a5331146758debb2669bf5635c021aee00fd7c353558fc659d \ + --hash=sha256:6e37561751b017cf5c40fce0d90fd9e8274716de327ec4ffb0df957160be3bff \ + --hash=sha256:76ae5091547e74e7efecc3cbf8e75200bc92daaeb88e5433c5e3e95ea8ce5aa7 \ + --hash=sha256:7965af9b67dd546e52afcf2e38641b5be956d68c425bef2158e95af11d229f10 \ + --hash=sha256:7e3b7d44e18c085fd8c16dcc6f1ad6c61b71ff463636fcb13df7b1b818bd0c02 \ + --hash=sha256:7ed7ee041ff7b34cc62f07545e55e1468808691dddfd315d51dd82a6b37ddef2 \ + --hash=sha256:82834962b3d7c5ca98cb56001c33cf20eb110ecf442725dc5fdf36d16ed1ab07 \ + --hash=sha256:8583e563df41fdecef31b793b4dd3af8a9caa03397be648945ad32717a92885b \ + --hash=sha256:8fa92cb248e573daab8d032919623cc309c005086d743afb014c836636166f08 \ + --hash=sha256:93d458c8a6a354dc8b48fc78d66d2a8a90b941f7fec30e94c7ad9982b1fa6bab \ + --hash=sha256:957f669d4922f92c171ba01bef7f29410668db09f6c02111e22b2bce446f3285 \ + --hash=sha256:9dc080e5a1c3b2656caff2ac2633d009b3a9ff7b5e93d0452f40cd76d3da3b3c \ + --hash=sha256:9ef1b167e22709b46bf8168368b7b5d3efeaaa746c6d39661c1b4405b6352e58 \ + --hash=sha256:a7a310c6e0471602fe3bf8efaf193d396ea561486aeaa7adc1f132e02d30c4b9 \ + --hash=sha256:ab774fa225238986218a463f3fe151e04d8c25d7de09df7f0f5fce27b1243dbc \ + --hash=sha256:ada215fd079e23e060157aab12eba0d66704316547f334eee9ff26f8c0d7b8ab \ + --hash=sha256:c39287f5c8f4a0c5a55daf9eaf9ccd223ea59eed3f6d467133cc727d7b943a55 \ + --hash=sha256:c9c563351ddc230725c4bdf7d9e1e92cbe6ae8553942bd1fb2b2ff0884e8b714 \ + --hash=sha256:d26732ae002cc3d2ecab04897bb02ae3f11f06dd7575d1df46acd2f7c012a8d8 \ + --hash=sha256:d3b659d1029946f4ff9b6183984578041b520ce0f8fb7078bb37ec7445806b33 \ + --hash=sha256:dd9cc95b8d6e27d01e1e1f1fae8559ef3c02c76317da650a19047f249acd519d \ + --hash=sha256:e4564cf40cebcb53f3dc825e85910bf54835e8a8b6880d59e5159f0f325e637e \ + --hash=sha256:e7d82b9e56716ed32574ee106cabca80992e6bbdcf25a88d97d21f73a0aae664 \ + --hash=sha256:e8a4b261c1ef91e7188a30571be6ad98d1c6d9fa2427244c545e2fa0a2494dd7 \ + --hash=sha256:e96bc94c8cda58f577277d4a71f51c8e2129b8b36fd05adece6320dd3d57de8a \ + --hash=sha256:ed2f80ca07025551636c555dec2b755dd005e2ea8fbeb99fc5cdff319b70b23b \ + --hash=sha256:f5b8a096e649768c2f4233f947cf9737f8dbf8728b90e2771e2497c6e3d21d13 \ + --hash=sha256:f8e953cc0bddc2beaf3a3c3b5dd9ab7554677da72dfaf46951e193c9653e515a \ + --hash=sha256:fda582236fee135d4daeca056c8c88ec5f6f6d88a004a79b84a02547c8f57386 \ + --hash=sha256:fdb062893fd6d47b527d39346e0c5578b7957dcea6d6a3b6794569370013d9ac # via weasyprint -googleapis-common-protos==1.63.2 \ - --hash=sha256:27a2499c7e8aff199665b22741997e485eccc8645aa9176c7c988e6fae507945 \ - --hash=sha256:27c5abdffc4911f28101e635de1533fb4cfd2c37fbaa9174587c799fac90aa87 +googleapis-common-protos==1.65.0 \ + --hash=sha256:2972e6c496f435b92590fd54045060867f3fe9be2c82ab148fc8885035479a63 \ + --hash=sha256:334a29d07cddc3aa01dee4988f9afd9b2916ee2ff49d6b757155dc0d197852c0 # via # opentelemetry-exporter-otlp-proto-grpc # opentelemetry-exporter-otlp-proto-http -grpcio==1.64.1 \ - --hash=sha256:03b43d0ccf99c557ec671c7dede64f023c7da9bb632ac65dbc57f166e4970040 \ - --hash=sha256:0a12ddb1678ebc6a84ec6b0487feac020ee2b1659cbe69b80f06dbffdb249122 \ - --hash=sha256:0a2813093ddb27418a4c99f9b1c223fab0b053157176a64cc9db0f4557b69bd9 \ - --hash=sha256:0cc79c982ccb2feec8aad0e8fb0d168bcbca85bc77b080d0d3c5f2f15c24ea8f \ - --hash=sha256:1257b76748612aca0f89beec7fa0615727fd6f2a1ad580a9638816a4b2eb18fd \ - --hash=sha256:1262402af5a511c245c3ae918167eca57342c72320dffae5d9b51840c4b2f86d \ - --hash=sha256:19264fc964576ddb065368cae953f8d0514ecc6cb3da8903766d9fb9d4554c33 \ - --hash=sha256:198908f9b22e2672a998870355e226a725aeab327ac4e6ff3a1399792ece4762 \ - --hash=sha256:1de403fc1305fd96cfa75e83be3dee8538f2413a6b1685b8452301c7ba33c294 \ - --hash=sha256:20405cb8b13fd779135df23fabadc53b86522d0f1cba8cca0e87968587f50650 \ - --hash=sha256:2981c7365a9353f9b5c864595c510c983251b1ab403e05b1ccc70a3d9541a73b \ - --hash=sha256:2c3c1b90ab93fed424e454e93c0ed0b9d552bdf1b0929712b094f5ecfe7a23ad \ - --hash=sha256:39b9d0acaa8d835a6566c640f48b50054f422d03e77e49716d4c4e8e279665a1 \ - --hash=sha256:3b64ae304c175671efdaa7ec9ae2cc36996b681eb63ca39c464958396697daff \ - --hash=sha256:4657d24c8063e6095f850b68f2d1ba3b39f2b287a38242dcabc166453e950c59 \ - --hash=sha256:4d6dab6124225496010bd22690f2d9bd35c7cbb267b3f14e7a3eb05c911325d4 \ - --hash=sha256:55260032b95c49bee69a423c2f5365baa9369d2f7d233e933564d8a47b893027 \ - --hash=sha256:55697ecec192bc3f2f3cc13a295ab670f51de29884ca9ae6cd6247df55df2502 \ - --hash=sha256:5841dd1f284bd1b3d8a6eca3a7f062b06f1eec09b184397e1d1d43447e89a7ae \ - --hash=sha256:58b1041e7c870bb30ee41d3090cbd6f0851f30ae4eb68228955d973d3efa2e61 \ - --hash=sha256:5e42634a989c3aa6049f132266faf6b949ec2a6f7d302dbb5c15395b77d757eb \ - --hash=sha256:5e56462b05a6f860b72f0fa50dca06d5b26543a4e88d0396259a07dc30f4e5aa \ - --hash=sha256:5f8b75f64d5d324c565b263c67dbe4f0af595635bbdd93bb1a88189fc62ed2e5 \ - --hash=sha256:62b4e6eb7bf901719fce0ca83e3ed474ae5022bb3827b0a501e056458c51c0a1 \ - --hash=sha256:6503b64c8b2dfad299749cad1b595c650c91e5b2c8a1b775380fcf8d2cbba1e9 \ - --hash=sha256:6c024ffc22d6dc59000faf8ad781696d81e8e38f4078cb0f2630b4a3cf231a90 \ - --hash=sha256:73819689c169417a4f978e562d24f2def2be75739c4bed1992435d007819da1b \ - --hash=sha256:75dbbf415026d2862192fe1b28d71f209e2fd87079d98470db90bebe57b33179 \ - --hash=sha256:8caee47e970b92b3dd948371230fcceb80d3f2277b3bf7fbd7c0564e7d39068e \ - --hash=sha256:8d51dd1c59d5fa0f34266b80a3805ec29a1f26425c2a54736133f6d87fc4968a \ - --hash=sha256:940e3ec884520155f68a3b712d045e077d61c520a195d1a5932c531f11883489 \ - --hash=sha256:a011ac6c03cfe162ff2b727bcb530567826cec85eb8d4ad2bfb4bd023287a52d \ - --hash=sha256:a3a035c37ce7565b8f4f35ff683a4db34d24e53dc487e47438e434eb3f701b2a \ - --hash=sha256:a5e771d0252e871ce194d0fdcafd13971f1aae0ddacc5f25615030d5df55c3a2 \ - --hash=sha256:ac15b6c2c80a4d1338b04d42a02d376a53395ddf0ec9ab157cbaf44191f3ffdd \ - --hash=sha256:b1a82e0b9b3022799c336e1fc0f6210adc019ae84efb7321d668129d28ee1efb \ - --hash=sha256:bac71b4b28bc9af61efcdc7630b166440bbfbaa80940c9a697271b5e1dabbc61 \ - --hash=sha256:bbc5b1d78a7822b0a84c6f8917faa986c1a744e65d762ef6d8be9d75677af2ca \ - --hash=sha256:c1a786ac592b47573a5bb7e35665c08064a5d77ab88a076eec11f8ae86b3e3f6 \ - --hash=sha256:c84ad903d0d94311a2b7eea608da163dace97c5fe9412ea311e72c3684925602 \ - --hash=sha256:d4d29cc612e1332237877dfa7fe687157973aab1d63bd0f84cf06692f04c0367 \ - --hash=sha256:e3d9f8d1221baa0ced7ec7322a981e28deb23749c76eeeb3d33e18b72935ab62 \ - --hash=sha256:e7cd5c1325f6808b8ae31657d281aadb2a51ac11ab081ae335f4f7fc44c1721d \ - --hash=sha256:ed6091fa0adcc7e4ff944090cf203a52da35c37a130efa564ded02b7aff63bcd \ - --hash=sha256:ee73a2f5ca4ba44fa33b4d7d2c71e2c8a9e9f78d53f6507ad68e7d2ad5f64a22 \ - --hash=sha256:f10193c69fc9d3d726e83bbf0f3d316f1847c3071c8c93d8090cf5f326b14309 +grpcio==1.66.2 \ + --hash=sha256:02697eb4a5cbe5a9639f57323b4c37bcb3ab2d48cec5da3dc2f13334d72790dd \ + --hash=sha256:03b0b307ba26fae695e067b94cbb014e27390f8bc5ac7a3a39b7723fed085604 \ + --hash=sha256:05bc2ceadc2529ab0b227b1310d249d95d9001cd106aa4d31e8871ad3c428d73 \ + --hash=sha256:06de8ec0bd71be123eec15b0e0d457474931c2c407869b6c349bd9bed4adbac3 \ + --hash=sha256:0be4e0490c28da5377283861bed2941d1d20ec017ca397a5df4394d1c31a9b50 \ + --hash=sha256:12fda97ffae55e6526825daf25ad0fa37483685952b5d0f910d6405c87e3adb6 \ + --hash=sha256:1caa38fb22a8578ab8393da99d4b8641e3a80abc8fd52646f1ecc92bcb8dee34 \ + --hash=sha256:2018b053aa15782db2541ca01a7edb56a0bf18c77efed975392583725974b249 \ + --hash=sha256:20657d6b8cfed7db5e11b62ff7dfe2e12064ea78e93f1434d61888834bc86d75 \ + --hash=sha256:2335c58560a9e92ac58ff2bc5649952f9b37d0735608242973c7a8b94a6437d8 \ + --hash=sha256:31fd163105464797a72d901a06472860845ac157389e10f12631025b3e4d0453 \ + --hash=sha256:38b68498ff579a3b1ee8f93a05eb48dc2595795f2f62716e797dc24774c1aaa8 \ + --hash=sha256:3b00efc473b20d8bf83e0e1ae661b98951ca56111feb9b9611df8efc4fe5d55d \ + --hash=sha256:3ed71e81782966ffead60268bbda31ea3f725ebf8aa73634d5dda44f2cf3fb9c \ + --hash=sha256:45a3d462826f4868b442a6b8fdbe8b87b45eb4f5b5308168c156b21eca43f61c \ + --hash=sha256:49f0ca7ae850f59f828a723a9064cadbed90f1ece179d375966546499b8a2c9c \ + --hash=sha256:4e504572433f4e72b12394977679161d495c4c9581ba34a88d843eaf0f2fbd39 \ + --hash=sha256:4ea1d062c9230278793820146c95d038dc0f468cbdd172eec3363e42ff1c7d01 \ + --hash=sha256:563588c587b75c34b928bc428548e5b00ea38c46972181a4d8b75ba7e3f24231 \ + --hash=sha256:6001e575b8bbd89eee11960bb640b6da6ae110cf08113a075f1e2051cc596cae \ + --hash=sha256:66a0cd8ba6512b401d7ed46bb03f4ee455839957f28b8d61e7708056a806ba6a \ + --hash=sha256:6851de821249340bdb100df5eacfecfc4e6075fa85c6df7ee0eb213170ec8e5d \ + --hash=sha256:728bdf36a186e7f51da73be7f8d09457a03061be848718d0edf000e709418987 \ + --hash=sha256:73e3b425c1e155730273f73e419de3074aa5c5e936771ee0e4af0814631fb30a \ + --hash=sha256:73fc8f8b9b5c4a03e802b3cd0c18b2b06b410d3c1dcbef989fdeb943bd44aff7 \ + --hash=sha256:78fa51ebc2d9242c0fc5db0feecc57a9943303b46664ad89921f5079e2e4ada7 \ + --hash=sha256:7b2c86457145ce14c38e5bf6bdc19ef88e66c5fee2c3d83285c5aef026ba93b3 \ + --hash=sha256:7d69ce1f324dc2d71e40c9261d3fdbe7d4c9d60f332069ff9b2a4d8a257c7b2b \ + --hash=sha256:802d84fd3d50614170649853d121baaaa305de7b65b3e01759247e768d691ddf \ + --hash=sha256:80fd702ba7e432994df208f27514280b4b5c6843e12a48759c9255679ad38db8 \ + --hash=sha256:8ac475e8da31484efa25abb774674d837b343afb78bb3bcdef10f81a93e3d6bf \ + --hash=sha256:950da58d7d80abd0ea68757769c9db0a95b31163e53e5bb60438d263f4bed7b7 \ + --hash=sha256:99a641995a6bc4287a6315989ee591ff58507aa1cbe4c2e70d88411c4dcc0839 \ + --hash=sha256:9c3a99c519f4638e700e9e3f83952e27e2ea10873eecd7935823dab0c1c9250e \ + --hash=sha256:9c509a4f78114cbc5f0740eb3d7a74985fd2eff022971bc9bc31f8bc93e66a3b \ + --hash=sha256:a18e20d8321c6400185b4263e27982488cb5cdd62da69147087a76a24ef4e7e3 \ + --hash=sha256:a917d26e0fe980b0ac7bfcc1a3c4ad6a9a4612c911d33efb55ed7833c749b0ee \ + --hash=sha256:a9539f01cb04950fd4b5ab458e64a15f84c2acc273670072abe49a3f29bbad54 \ + --hash=sha256:ad2efdbe90c73b0434cbe64ed372e12414ad03c06262279b104a029d1889d13e \ + --hash=sha256:b672abf90a964bfde2d0ecbce30f2329a47498ba75ce6f4da35a2f4532b7acbc \ + --hash=sha256:bbd27c24a4cc5e195a7f56cfd9312e366d5d61b86e36d46bbe538457ea6eb8dd \ + --hash=sha256:c400ba5675b67025c8a9f48aa846f12a39cf0c44df5cd060e23fda5b30e9359d \ + --hash=sha256:c408f5ef75cfffa113cacd8b0c0e3611cbfd47701ca3cdc090594109b9fcbaed \ + --hash=sha256:c806852deaedee9ce8280fe98955c9103f62912a5b2d5ee7e3eaa284a6d8d8e7 \ + --hash=sha256:ce89f5876662f146d4c1f695dda29d4433a5d01c8681fbd2539afff535da14d4 \ + --hash=sha256:d25a14af966438cddf498b2e338f88d1c9706f3493b1d73b93f695c99c5f0e2a \ + --hash=sha256:d8d4732cc5052e92cea2f78b233c2e2a52998ac40cd651f40e398893ad0d06ec \ + --hash=sha256:d9a9724a156c8ec6a379869b23ba3323b7ea3600851c91489b871e375f710bc8 \ + --hash=sha256:e636ce23273683b00410f1971d209bf3689238cf5538d960adc3cdfe80dd0dbd \ + --hash=sha256:e88264caad6d8d00e7913996030bac8ad5f26b7411495848cc218bd3a9040b6c \ + --hash=sha256:f145cc21836c332c67baa6fc81099d1d27e266401565bf481948010d6ea32d46 \ + --hash=sha256:fb57870449dfcfac428afbb5a877829fcb0d6db9d9baa1148705739e9083880e \ + --hash=sha256:fb70487c95786e345af5e854ffec8cb8cc781bcc5df7930c4fbb7feaa72e1cdf \ + --hash=sha256:fe96281713168a3270878255983d2cb1a97e034325c8c2c25169a69289d3ecfa \ + --hash=sha256:ff1f7882e56c40b0d33c4922c15dfa30612f05fb785074a012f7cda74d1c3679 # via # -r src/backend/requirements.in # opentelemetry-exporter-otlp-proto-grpc -gunicorn==22.0.0 \ - --hash=sha256:350679f91b24062c86e386e198a15438d53a7a8207235a78ba1b53df4c4378d9 \ - --hash=sha256:4a0b436239ff76fb33f11c07a16482c521a7e09c1ce3cc293c2330afe01bec63 +gunicorn==23.0.0 \ + --hash=sha256:ec400d38950de4dfd418cff8328b2c8faed0edb0d517d3394e457c317908ca4d \ + --hash=sha256:f014447a0101dc57e294f6c18ca6b40227a4c90e9bdb586042628030cba004ec # via -r src/backend/requirements.in html5lib==1.1 \ --hash=sha256:0d78f8fde1c230e99fe37986a60526d7049ed4bf8a9fadbad5f00e22e58e041d \ --hash=sha256:b2e5b40261e20f354d198eae92afc10d750afb487ed5e50f9c4eaf07c184146f # via weasyprint -icalendar==5.0.13 \ - --hash=sha256:5ded5415e2e1edef5ab230024a75878a7a81d518a3b1ae4f34bf20b173c84dc2 \ - --hash=sha256:92799fde8cce0b61daa8383593836d1e19136e504fa1671f471f98be9b029706 +icalendar==6.0.1 \ + --hash=sha256:1ff44825d7b41c3f77eac9e09cc67a770dd3c2377430c23b0eb7d91603088892 \ + --hash=sha256:9bf3d69203bd0366a9a29a8b0e220574580b86d7918afcb628fc6920287922f3 # via django-ical -idna==3.7 \ - --hash=sha256:028ff3aadf0609c1fd278d8ea3089299412a7a8b9bd005dd08b9f8285bcb5cfc \ - --hash=sha256:82fee1fc78add43492d3a1898bfa6d8a904cc97d8427f683ed8e798d07761aa0 +idna==3.10 \ + --hash=sha256:12f65c9b470abda6dc35cf8e63cc574b1c52b11df2c86030af0ac09b01b13ea9 \ + --hash=sha256:946d195a0d259cbba61165e88e65941f16e9b36ea6ddb97f00452bae8b1287d3 # via requests -importlib-metadata==7.1.0 \ - --hash=sha256:30962b96c0c223483ed6cc7280e7f0199feb01a0e40cfae4d4450fc6fab1f570 \ - --hash=sha256:b78938b926ee8d5f020fc4772d487045805a55ddbad2ecf21c6d60938dc7fcd2 +importlib-metadata==8.4.0 \ + --hash=sha256:66f342cc6ac9818fc6ff340576acd24d65ba0b3efabb2b4ac08b598965a4a2f1 \ + --hash=sha256:9a547d3bc3608b025f93d403fdd1aae741c24fbb8314df4b155675742ce303c5 # via # django-q2 # markdown @@ -688,9 +741,9 @@ inflection==0.5.1 \ --hash=sha256:1a29730d366e996aaacffb2f1f1cb9593dc38e2ddd30c91250c6dde09ea9b417 \ --hash=sha256:f38b2b640938a4f35ade69ac3d053042959b62a0f1076a5bbaa1b9526605a8a2 # via drf-spectacular -isodate==0.6.1 \ - --hash=sha256:0751eece944162659049d35f4f549ed815792b38793f07cf73381c1c87cbed96 \ - --hash=sha256:48c5881de7e8b0a0d648cb024c8062dc84e7b840ed81e864c7614fd3c127bde9 +isodate==0.7.2 \ + --hash=sha256:28009937d8031054830160fce6d409ed342816b543597cece116d966c6d99e15 \ + --hash=sha256:4cd1aa0f43ca76f4a6c6c0292a85f40b35ec2e43e315b59f06e6d32171a953e6 # via python3-saml itypes==1.2.0 \ --hash=sha256:03da6872ca89d29aef62773672b2d408f490f80db48b23079a4b194c86dd04c6 \ @@ -700,239 +753,236 @@ jinja2==3.1.4 \ --hash=sha256:4a3aee7acbbe7303aede8e9648d13b8bf88a429282aa6122a993f0ac800cb369 \ --hash=sha256:bc5dd2abb727a5319567b7a813e6a2e7318c39f4f487cfe6c89c6f9c7d25197d # via coreschema -jsonschema==4.22.0 \ - --hash=sha256:5b22d434a45935119af990552c862e5d6d564e8f6601206b305a61fdf661a2b7 \ - --hash=sha256:ff4cfd6b1367a40e7bc6411caec72effadd3db0bbe5017de188f2d6108335802 +jsonschema==4.23.0 \ + --hash=sha256:d71497fef26351a33265337fa77ffeb82423f3ea21283cd9467bb03999266bc4 \ + --hash=sha256:fbadb6f8b144a8f8cf9f0b89ba94501d143e50411a1278633f56a7acf7fd5566 # via drf-spectacular -jsonschema-specifications==2023.12.1 \ - --hash=sha256:48a76787b3e70f5ed53f1160d2b81f586e4ca6d1548c5de7085d1682674764cc \ - --hash=sha256:87e4fdf3a94858b8a2ba2778d9ba57d8a9cafca7c7489c46ba0d30a8bc6a9c3c +jsonschema-specifications==2024.10.1 \ + --hash=sha256:0f38b83639958ce1152d02a7f062902c41c8fd20d558b0c34344292d417ae272 \ + --hash=sha256:a09a0680616357d9a0ecf05c12ad234479f549239d0f5b55f3deea67475da9bf # via jsonschema -lxml==5.2.2 \ - --hash=sha256:02437fb7308386867c8b7b0e5bc4cd4b04548b1c5d089ffb8e7b31009b961dc3 \ - --hash=sha256:02f6a8eb6512fdc2fd4ca10a49c341c4e109aa6e9448cc4859af5b949622715a \ - --hash=sha256:05f8757b03208c3f50097761be2dea0aba02e94f0dc7023ed73a7bb14ff11eb0 \ - --hash=sha256:06668e39e1f3c065349c51ac27ae430719d7806c026fec462e5693b08b95696b \ - --hash=sha256:07542787f86112d46d07d4f3c4e7c760282011b354d012dc4141cc12a68cef5f \ - --hash=sha256:08ea0f606808354eb8f2dfaac095963cb25d9d28e27edcc375d7b30ab01abbf6 \ - --hash=sha256:0969e92af09c5687d769731e3f39ed62427cc72176cebb54b7a9d52cc4fa3b73 \ - --hash=sha256:0a028b61a2e357ace98b1615fc03f76eb517cc028993964fe08ad514b1e8892d \ - --hash=sha256:0b3f5016e00ae7630a4b83d0868fca1e3d494c78a75b1c7252606a3a1c5fc2ad \ - --hash=sha256:13e69be35391ce72712184f69000cda04fc89689429179bc4c0ae5f0b7a8c21b \ - --hash=sha256:16a8326e51fcdffc886294c1e70b11ddccec836516a343f9ed0f82aac043c24a \ - --hash=sha256:19b4e485cd07b7d83e3fe3b72132e7df70bfac22b14fe4bf7a23822c3a35bff5 \ - --hash=sha256:1a2569a1f15ae6c8c64108a2cd2b4a858fc1e13d25846be0666fc144715e32ab \ - --hash=sha256:1a7aca7964ac4bb07680d5c9d63b9d7028cace3e2d43175cb50bba8c5ad33316 \ - --hash=sha256:1b590b39ef90c6b22ec0be925b211298e810b4856909c8ca60d27ffbca6c12e6 \ - --hash=sha256:1d8a701774dfc42a2f0b8ccdfe7dbc140500d1049e0632a611985d943fcf12df \ - --hash=sha256:1e275ea572389e41e8b039ac076a46cb87ee6b8542df3fff26f5baab43713bca \ - --hash=sha256:2304d3c93f2258ccf2cf7a6ba8c761d76ef84948d87bf9664e14d203da2cd264 \ - --hash=sha256:23441e2b5339bc54dc949e9e675fa35efe858108404ef9aa92f0456929ef6fe8 \ - --hash=sha256:23cfafd56887eaed93d07bc4547abd5e09d837a002b791e9767765492a75883f \ - --hash=sha256:28bf95177400066596cdbcfc933312493799382879da504633d16cf60bba735b \ - --hash=sha256:2eb2227ce1ff998faf0cd7fe85bbf086aa41dfc5af3b1d80867ecfe75fb68df3 \ - --hash=sha256:2fb0ba3e8566548d6c8e7dd82a8229ff47bd8fb8c2da237607ac8e5a1b8312e5 \ - --hash=sha256:303f540ad2dddd35b92415b74b900c749ec2010e703ab3bfd6660979d01fd4ed \ - --hash=sha256:339ee4a4704bc724757cd5dd9dc8cf4d00980f5d3e6e06d5847c1b594ace68ab \ - --hash=sha256:33ce9e786753743159799fdf8e92a5da351158c4bfb6f2db0bf31e7892a1feb5 \ - --hash=sha256:343ab62e9ca78094f2306aefed67dcfad61c4683f87eee48ff2fd74902447726 \ - --hash=sha256:34e17913c431f5ae01d8658dbf792fdc457073dcdfbb31dc0cc6ab256e664a8d \ - --hash=sha256:364d03207f3e603922d0d3932ef363d55bbf48e3647395765f9bfcbdf6d23632 \ - --hash=sha256:38b67afb0a06b8575948641c1d6d68e41b83a3abeae2ca9eed2ac59892b36706 \ - --hash=sha256:3a745cc98d504d5bd2c19b10c79c61c7c3df9222629f1b6210c0368177589fb8 \ - --hash=sha256:3b019d4ee84b683342af793b56bb35034bd749e4cbdd3d33f7d1107790f8c472 \ - --hash=sha256:3b6a30a9ab040b3f545b697cb3adbf3696c05a3a68aad172e3fd7ca73ab3c835 \ - --hash=sha256:3d1e35572a56941b32c239774d7e9ad724074d37f90c7a7d499ab98761bd80cf \ - --hash=sha256:3d98de734abee23e61f6b8c2e08a88453ada7d6486dc7cdc82922a03968928db \ - --hash=sha256:453d037e09a5176d92ec0fd282e934ed26d806331a8b70ab431a81e2fbabf56d \ - --hash=sha256:45f9494613160d0405682f9eee781c7e6d1bf45f819654eb249f8f46a2c22545 \ - --hash=sha256:4820c02195d6dfb7b8508ff276752f6b2ff8b64ae5d13ebe02e7667e035000b9 \ - --hash=sha256:49095a38eb333aaf44c06052fd2ec3b8f23e19747ca7ec6f6c954ffea6dbf7be \ - --hash=sha256:4aefd911793b5d2d7a921233a54c90329bf3d4a6817dc465f12ffdfe4fc7b8fe \ - --hash=sha256:4bc6cb140a7a0ad1f7bc37e018d0ed690b7b6520ade518285dc3171f7a117905 \ - --hash=sha256:4c30a2f83677876465f44c018830f608fa3c6a8a466eb223535035fbc16f3438 \ - --hash=sha256:50127c186f191b8917ea2fb8b206fbebe87fd414a6084d15568c27d0a21d60db \ - --hash=sha256:50ccb5d355961c0f12f6cf24b7187dbabd5433f29e15147a67995474f27d1776 \ - --hash=sha256:519895c99c815a1a24a926d5b60627ce5ea48e9f639a5cd328bda0515ea0f10c \ - --hash=sha256:54401c77a63cc7d6dc4b4e173bb484f28a5607f3df71484709fe037c92d4f0ed \ - --hash=sha256:546cf886f6242dff9ec206331209db9c8e1643ae642dea5fdbecae2453cb50fd \ - --hash=sha256:55ce6b6d803890bd3cc89975fca9de1dff39729b43b73cb15ddd933b8bc20484 \ - --hash=sha256:56793b7a1a091a7c286b5f4aa1fe4ae5d1446fe742d00cdf2ffb1077865db10d \ - --hash=sha256:57f0a0bbc9868e10ebe874e9f129d2917750adf008fe7b9c1598c0fbbfdde6a6 \ - --hash=sha256:5b8c041b6265e08eac8a724b74b655404070b636a8dd6d7a13c3adc07882ef30 \ - --hash=sha256:5e097646944b66207023bc3c634827de858aebc226d5d4d6d16f0b77566ea182 \ - --hash=sha256:60499fe961b21264e17a471ec296dcbf4365fbea611bf9e303ab69db7159ce61 \ - --hash=sha256:610b5c77428a50269f38a534057444c249976433f40f53e3b47e68349cca1425 \ - --hash=sha256:625e3ef310e7fa3a761d48ca7ea1f9d8718a32b1542e727d584d82f4453d5eeb \ - --hash=sha256:657a972f46bbefdbba2d4f14413c0d079f9ae243bd68193cb5061b9732fa54c1 \ - --hash=sha256:69ab77a1373f1e7563e0fb5a29a8440367dec051da6c7405333699d07444f511 \ - --hash=sha256:6a520b4f9974b0a0a6ed73c2154de57cdfd0c8800f4f15ab2b73238ffed0b36e \ - --hash=sha256:6d68ce8e7b2075390e8ac1e1d3a99e8b6372c694bbe612632606d1d546794207 \ - --hash=sha256:6dcc3d17eac1df7859ae01202e9bb11ffa8c98949dcbeb1069c8b9a75917e01b \ - --hash=sha256:6dfdc2bfe69e9adf0df4915949c22a25b39d175d599bf98e7ddf620a13678585 \ - --hash=sha256:739e36ef7412b2bd940f75b278749106e6d025e40027c0b94a17ef7968d55d56 \ - --hash=sha256:7429e7faa1a60cad26ae4227f4dd0459efde239e494c7312624ce228e04f6391 \ - --hash=sha256:74da9f97daec6928567b48c90ea2c82a106b2d500f397eeb8941e47d30b1ca85 \ - --hash=sha256:74e4f025ef3db1c6da4460dd27c118d8cd136d0391da4e387a15e48e5c975147 \ - --hash=sha256:75a9632f1d4f698b2e6e2e1ada40e71f369b15d69baddb8968dcc8e683839b18 \ - --hash=sha256:76acba4c66c47d27c8365e7c10b3d8016a7da83d3191d053a58382311a8bf4e1 \ - --hash=sha256:79d1fb9252e7e2cfe4de6e9a6610c7cbb99b9708e2c3e29057f487de5a9eaefa \ - --hash=sha256:7ce7ad8abebe737ad6143d9d3bf94b88b93365ea30a5b81f6877ec9c0dee0a48 \ - --hash=sha256:7ed07b3062b055d7a7f9d6557a251cc655eed0b3152b76de619516621c56f5d3 \ - --hash=sha256:7ff762670cada8e05b32bf1e4dc50b140790909caa8303cfddc4d702b71ea184 \ - --hash=sha256:8268cbcd48c5375f46e000adb1390572c98879eb4f77910c6053d25cc3ac2c67 \ - --hash=sha256:875a3f90d7eb5c5d77e529080d95140eacb3c6d13ad5b616ee8095447b1d22e7 \ - --hash=sha256:89feb82ca055af0fe797a2323ec9043b26bc371365847dbe83c7fd2e2f181c34 \ - --hash=sha256:8a7e24cb69ee5f32e003f50e016d5fde438010c1022c96738b04fc2423e61706 \ - --hash=sha256:8ab6a358d1286498d80fe67bd3d69fcbc7d1359b45b41e74c4a26964ca99c3f8 \ - --hash=sha256:8b8df03a9e995b6211dafa63b32f9d405881518ff1ddd775db4e7b98fb545e1c \ - --hash=sha256:8cf85a6e40ff1f37fe0f25719aadf443686b1ac7652593dc53c7ef9b8492b115 \ - --hash=sha256:8e8d351ff44c1638cb6e980623d517abd9f580d2e53bfcd18d8941c052a5a009 \ - --hash=sha256:9164361769b6ca7769079f4d426a41df6164879f7f3568be9086e15baca61466 \ - --hash=sha256:96e85aa09274955bb6bd483eaf5b12abadade01010478154b0ec70284c1b1526 \ - --hash=sha256:981a06a3076997adf7c743dcd0d7a0415582661e2517c7d961493572e909aa1d \ - --hash=sha256:9cd5323344d8ebb9fb5e96da5de5ad4ebab993bbf51674259dbe9d7a18049525 \ - --hash=sha256:9d6c6ea6a11ca0ff9cd0390b885984ed31157c168565702959c25e2191674a14 \ - --hash=sha256:a02d3c48f9bb1e10c7788d92c0c7db6f2002d024ab6e74d6f45ae33e3d0288a3 \ - --hash=sha256:a233bb68625a85126ac9f1fc66d24337d6e8a0f9207b688eec2e7c880f012ec0 \ - --hash=sha256:a2f6a1bc2460e643785a2cde17293bd7a8f990884b822f7bca47bee0a82fc66b \ - --hash=sha256:a6d17e0370d2516d5bb9062c7b4cb731cff921fc875644c3d751ad857ba9c5b1 \ - --hash=sha256:a6d2092797b388342c1bc932077ad232f914351932353e2e8706851c870bca1f \ - --hash=sha256:ab67ed772c584b7ef2379797bf14b82df9aa5f7438c5b9a09624dd834c1c1aaf \ - --hash=sha256:ac6540c9fff6e3813d29d0403ee7a81897f1d8ecc09a8ff84d2eea70ede1cdbf \ - --hash=sha256:ae4073a60ab98529ab8a72ebf429f2a8cc612619a8c04e08bed27450d52103c0 \ - --hash=sha256:ae791f6bd43305aade8c0e22f816b34f3b72b6c820477aab4d18473a37e8090b \ - --hash=sha256:aef5474d913d3b05e613906ba4090433c515e13ea49c837aca18bde190853dff \ - --hash=sha256:b0b3f2df149efb242cee2ffdeb6674b7f30d23c9a7af26595099afaf46ef4e88 \ - --hash=sha256:b128092c927eaf485928cec0c28f6b8bead277e28acf56800e972aa2c2abd7a2 \ - --hash=sha256:b16db2770517b8799c79aa80f4053cd6f8b716f21f8aca962725a9565ce3ee40 \ - --hash=sha256:b336b0416828022bfd5a2e3083e7f5ba54b96242159f83c7e3eebaec752f1716 \ - --hash=sha256:b47633251727c8fe279f34025844b3b3a3e40cd1b198356d003aa146258d13a2 \ - --hash=sha256:b537bd04d7ccd7c6350cdaaaad911f6312cbd61e6e6045542f781c7f8b2e99d2 \ - --hash=sha256:b5e4ef22ff25bfd4ede5f8fb30f7b24446345f3e79d9b7455aef2836437bc38a \ - --hash=sha256:b74b9ea10063efb77a965a8d5f4182806fbf59ed068b3c3fd6f30d2ac7bee734 \ - --hash=sha256:bb2dc4898180bea79863d5487e5f9c7c34297414bad54bcd0f0852aee9cfdb87 \ - --hash=sha256:bbc4b80af581e18568ff07f6395c02114d05f4865c2812a1f02f2eaecf0bfd48 \ - --hash=sha256:bcc98f911f10278d1daf14b87d65325851a1d29153caaf146877ec37031d5f36 \ - --hash=sha256:be49ad33819d7dcc28a309b86d4ed98e1a65f3075c6acd3cd4fe32103235222b \ - --hash=sha256:bec4bd9133420c5c52d562469c754f27c5c9e36ee06abc169612c959bd7dbb07 \ - --hash=sha256:c2faf60c583af0d135e853c86ac2735ce178f0e338a3c7f9ae8f622fd2eb788c \ - --hash=sha256:c689d0d5381f56de7bd6966a4541bff6e08bf8d3871bbd89a0c6ab18aa699573 \ - --hash=sha256:c7079d5eb1c1315a858bbf180000757db8ad904a89476653232db835c3114001 \ - --hash=sha256:cb3942960f0beb9f46e2a71a3aca220d1ca32feb5a398656be934320804c0df9 \ - --hash=sha256:cd9e78285da6c9ba2d5c769628f43ef66d96ac3085e59b10ad4f3707980710d3 \ - --hash=sha256:cf2a978c795b54c539f47964ec05e35c05bd045db5ca1e8366988c7f2fe6b3ce \ - --hash=sha256:d14a0d029a4e176795cef99c056d58067c06195e0c7e2dbb293bf95c08f772a3 \ - --hash=sha256:d237ba6664b8e60fd90b8549a149a74fcc675272e0e95539a00522e4ca688b04 \ - --hash=sha256:d26a618ae1766279f2660aca0081b2220aca6bd1aa06b2cf73f07383faf48927 \ - --hash=sha256:d28cb356f119a437cc58a13f8135ab8a4c8ece18159eb9194b0d269ec4e28083 \ - --hash=sha256:d4ed0c7cbecde7194cd3228c044e86bf73e30a23505af852857c09c24e77ec5d \ - --hash=sha256:d83e2d94b69bf31ead2fa45f0acdef0757fa0458a129734f59f67f3d2eb7ef32 \ - --hash=sha256:d8bbcd21769594dbba9c37d3c819e2d5847656ca99c747ddb31ac1701d0c0ed9 \ - --hash=sha256:d9b342c76003c6b9336a80efcc766748a333573abf9350f4094ee46b006ec18f \ - --hash=sha256:dc911208b18842a3a57266d8e51fc3cfaccee90a5351b92079beed912a7914c2 \ - --hash=sha256:dfa7c241073d8f2b8e8dbc7803c434f57dbb83ae2a3d7892dd068d99e96efe2c \ - --hash=sha256:e282aedd63c639c07c3857097fc0e236f984ceb4089a8b284da1c526491e3f3d \ - --hash=sha256:e290d79a4107d7d794634ce3e985b9ae4f920380a813717adf61804904dc4393 \ - --hash=sha256:e3d9d13603410b72787579769469af730c38f2f25505573a5888a94b62b920f8 \ - --hash=sha256:e481bba1e11ba585fb06db666bfc23dbe181dbafc7b25776156120bf12e0d5a6 \ - --hash=sha256:e49b052b768bb74f58c7dda4e0bdf7b79d43a9204ca584ffe1fb48a6f3c84c66 \ - --hash=sha256:eb00b549b13bd6d884c863554566095bf6fa9c3cecb2e7b399c4bc7904cb33b5 \ - --hash=sha256:ec87c44f619380878bd49ca109669c9f221d9ae6883a5bcb3616785fa8f94c97 \ - --hash=sha256:edcfa83e03370032a489430215c1e7783128808fd3e2e0a3225deee278585196 \ - --hash=sha256:f11ae142f3a322d44513de1018b50f474f8f736bc3cd91d969f464b5bfef8836 \ - --hash=sha256:f2a09f6184f17a80897172863a655467da2b11151ec98ba8d7af89f17bf63dae \ - --hash=sha256:f5b65529bb2f21ac7861a0e94fdbf5dc0daab41497d18223b46ee8515e5ad297 \ - --hash=sha256:f60fdd125d85bf9c279ffb8e94c78c51b3b6a37711464e1f5f31078b45002421 \ - --hash=sha256:f61efaf4bed1cc0860e567d2ecb2363974d414f7f1f124b1df368bbf183453a6 \ - --hash=sha256:f90e552ecbad426eab352e7b2933091f2be77115bb16f09f78404861c8322981 \ - --hash=sha256:f956196ef61369f1685d14dad80611488d8dc1ef00be57c0c5a03064005b0f30 \ - --hash=sha256:fb91819461b1b56d06fa4bcf86617fac795f6a99d12239fb0c68dbeba41a0a30 \ - --hash=sha256:fbc9d316552f9ef7bba39f4edfad4a734d3d6f93341232a9dddadec4f15d425f \ - --hash=sha256:ff69a9a0b4b17d78170c73abe2ab12084bdf1691550c5629ad1fe7849433f324 \ - --hash=sha256:ffb2be176fed4457e445fe540617f0252a72a8bc56208fd65a690fdb1f57660b +lxml==5.3.0 \ + --hash=sha256:01220dca0d066d1349bd6a1726856a78f7929f3878f7e2ee83c296c69495309e \ + --hash=sha256:02ced472497b8362c8e902ade23e3300479f4f43e45f4105c85ef43b8db85229 \ + --hash=sha256:052d99051e77a4f3e8482c65014cf6372e61b0a6f4fe9edb98503bb5364cfee3 \ + --hash=sha256:07da23d7ee08577760f0a71d67a861019103e4812c87e2fab26b039054594cc5 \ + --hash=sha256:094cb601ba9f55296774c2d57ad68730daa0b13dc260e1f941b4d13678239e70 \ + --hash=sha256:0a7056921edbdd7560746f4221dca89bb7a3fe457d3d74267995253f46343f15 \ + --hash=sha256:0c120f43553ec759f8de1fee2f4794452b0946773299d44c36bfe18e83caf002 \ + --hash=sha256:0d7b36afa46c97875303a94e8f3ad932bf78bace9e18e603f2085b652422edcd \ + --hash=sha256:0fdf3a3059611f7585a78ee10399a15566356116a4288380921a4b598d807a22 \ + --hash=sha256:109fa6fede314cc50eed29e6e56c540075e63d922455346f11e4d7a036d2b8cf \ + --hash=sha256:146173654d79eb1fc97498b4280c1d3e1e5d58c398fa530905c9ea50ea849b22 \ + --hash=sha256:1473427aff3d66a3fa2199004c3e601e6c4500ab86696edffdbc84954c72d832 \ + --hash=sha256:1483fd3358963cc5c1c9b122c80606a3a79ee0875bcac0204149fa09d6ff2727 \ + --hash=sha256:168f2dfcfdedf611eb285efac1516c8454c8c99caf271dccda8943576b67552e \ + --hash=sha256:17e8d968d04a37c50ad9c456a286b525d78c4a1c15dd53aa46c1d8e06bf6fa30 \ + --hash=sha256:18feb4b93302091b1541221196a2155aa296c363fd233814fa11e181adebc52f \ + --hash=sha256:1afe0a8c353746e610bd9031a630a95bcfb1a720684c3f2b36c4710a0a96528f \ + --hash=sha256:1d04f064bebdfef9240478f7a779e8c5dc32b8b7b0b2fc6a62e39b928d428e51 \ + --hash=sha256:1fdc9fae8dd4c763e8a31e7630afef517eab9f5d5d31a278df087f307bf601f4 \ + --hash=sha256:1ffc23010330c2ab67fac02781df60998ca8fe759e8efde6f8b756a20599c5de \ + --hash=sha256:20094fc3f21ea0a8669dc4c61ed7fa8263bd37d97d93b90f28fc613371e7a875 \ + --hash=sha256:213261f168c5e1d9b7535a67e68b1f59f92398dd17a56d934550837143f79c42 \ + --hash=sha256:218c1b2e17a710e363855594230f44060e2025b05c80d1f0661258142b2add2e \ + --hash=sha256:23e0553b8055600b3bf4a00b255ec5c92e1e4aebf8c2c09334f8368e8bd174d6 \ + --hash=sha256:25f1b69d41656b05885aa185f5fdf822cb01a586d1b32739633679699f220391 \ + --hash=sha256:2b3778cb38212f52fac9fe913017deea2fdf4eb1a4f8e4cfc6b009a13a6d3fcc \ + --hash=sha256:2bc9fd5ca4729af796f9f59cd8ff160fe06a474da40aca03fcc79655ddee1a8b \ + --hash=sha256:2c226a06ecb8cdef28845ae976da407917542c5e6e75dcac7cc33eb04aaeb237 \ + --hash=sha256:2c3406b63232fc7e9b8783ab0b765d7c59e7c59ff96759d8ef9632fca27c7ee4 \ + --hash=sha256:2c86bf781b12ba417f64f3422cfc302523ac9cd1d8ae8c0f92a1c66e56ef2e86 \ + --hash=sha256:2d9b8d9177afaef80c53c0a9e30fa252ff3036fb1c6494d427c066a4ce6a282f \ + --hash=sha256:2dec2d1130a9cda5b904696cec33b2cfb451304ba9081eeda7f90f724097300a \ + --hash=sha256:2dfab5fa6a28a0b60a20638dc48e6343c02ea9933e3279ccb132f555a62323d8 \ + --hash=sha256:2ecdd78ab768f844c7a1d4a03595038c166b609f6395e25af9b0f3f26ae1230f \ + --hash=sha256:315f9542011b2c4e1d280e4a20ddcca1761993dda3afc7a73b01235f8641e903 \ + --hash=sha256:36aef61a1678cb778097b4a6eeae96a69875d51d1e8f4d4b491ab3cfb54b5a03 \ + --hash=sha256:384aacddf2e5813a36495233b64cb96b1949da72bef933918ba5c84e06af8f0e \ + --hash=sha256:3879cc6ce938ff4eb4900d901ed63555c778731a96365e53fadb36437a131a99 \ + --hash=sha256:3c174dc350d3ec52deb77f2faf05c439331d6ed5e702fc247ccb4e6b62d884b7 \ + --hash=sha256:3eb44520c4724c2e1a57c0af33a379eee41792595023f367ba3952a2d96c2aab \ + --hash=sha256:406246b96d552e0503e17a1006fd27edac678b3fcc9f1be71a2f94b4ff61528d \ + --hash=sha256:41ce1f1e2c7755abfc7e759dc34d7d05fd221723ff822947132dc934d122fe22 \ + --hash=sha256:423b121f7e6fa514ba0c7918e56955a1d4470ed35faa03e3d9f0e3baa4c7e492 \ + --hash=sha256:44264ecae91b30e5633013fb66f6ddd05c006d3e0e884f75ce0b4755b3e3847b \ + --hash=sha256:482c2f67761868f0108b1743098640fbb2a28a8e15bf3f47ada9fa59d9fe08c3 \ + --hash=sha256:4b0c7a688944891086ba192e21c5229dea54382f4836a209ff8d0a660fac06be \ + --hash=sha256:4c1fefd7e3d00921c44dc9ca80a775af49698bbfd92ea84498e56acffd4c5469 \ + --hash=sha256:4e109ca30d1edec1ac60cdbe341905dc3b8f55b16855e03a54aaf59e51ec8c6f \ + --hash=sha256:501d0d7e26b4d261fca8132854d845e4988097611ba2531408ec91cf3fd9d20a \ + --hash=sha256:516f491c834eb320d6c843156440fe7fc0d50b33e44387fcec5b02f0bc118a4c \ + --hash=sha256:51806cfe0279e06ed8500ce19479d757db42a30fd509940b1701be9c86a5ff9a \ + --hash=sha256:562e7494778a69086f0312ec9689f6b6ac1c6b65670ed7d0267e49f57ffa08c4 \ + --hash=sha256:56b9861a71575f5795bde89256e7467ece3d339c9b43141dbdd54544566b3b94 \ + --hash=sha256:5b8f5db71b28b8c404956ddf79575ea77aa8b1538e8b2ef9ec877945b3f46442 \ + --hash=sha256:5c2fb570d7823c2bbaf8b419ba6e5662137f8166e364a8b2b91051a1fb40ab8b \ + --hash=sha256:5c54afdcbb0182d06836cc3d1be921e540be3ebdf8b8a51ee3ef987537455f84 \ + --hash=sha256:5d6a6972b93c426ace71e0be9a6f4b2cfae9b1baed2eed2006076a746692288c \ + --hash=sha256:609251a0ca4770e5a8768ff902aa02bf636339c5a93f9349b48eb1f606f7f3e9 \ + --hash=sha256:62d172f358f33a26d6b41b28c170c63886742f5b6772a42b59b4f0fa10526cb1 \ + --hash=sha256:62f7fdb0d1ed2065451f086519865b4c90aa19aed51081979ecd05a21eb4d1be \ + --hash=sha256:658f2aa69d31e09699705949b5fc4719cbecbd4a97f9656a232e7d6c7be1a367 \ + --hash=sha256:65ab5685d56914b9a2a34d67dd5488b83213d680b0c5d10b47f81da5a16b0b0e \ + --hash=sha256:68934b242c51eb02907c5b81d138cb977b2129a0a75a8f8b60b01cb8586c7b21 \ + --hash=sha256:68b87753c784d6acb8a25b05cb526c3406913c9d988d51f80adecc2b0775d6aa \ + --hash=sha256:69959bd3167b993e6e710b99051265654133a98f20cec1d9b493b931942e9c16 \ + --hash=sha256:6a7095eeec6f89111d03dabfe5883a1fd54da319c94e0fb104ee8f23616b572d \ + --hash=sha256:6b038cc86b285e4f9fea2ba5ee76e89f21ed1ea898e287dc277a25884f3a7dfe \ + --hash=sha256:6ba0d3dcac281aad8a0e5b14c7ed6f9fa89c8612b47939fc94f80b16e2e9bc83 \ + --hash=sha256:6e91cf736959057f7aac7adfc83481e03615a8e8dd5758aa1d95ea69e8931dba \ + --hash=sha256:6ee8c39582d2652dcd516d1b879451500f8db3fe3607ce45d7c5957ab2596040 \ + --hash=sha256:6f651ebd0b21ec65dfca93aa629610a0dbc13dbc13554f19b0113da2e61a4763 \ + --hash=sha256:71a8dd38fbd2f2319136d4ae855a7078c69c9a38ae06e0c17c73fd70fc6caad8 \ + --hash=sha256:74068c601baff6ff021c70f0935b0c7bc528baa8ea210c202e03757c68c5a4ff \ + --hash=sha256:7437237c6a66b7ca341e868cda48be24b8701862757426852c9b3186de1da8a2 \ + --hash=sha256:747a3d3e98e24597981ca0be0fd922aebd471fa99d0043a3842d00cdcad7ad6a \ + --hash=sha256:74bcb423462233bc5d6066e4e98b0264e7c1bed7541fff2f4e34fe6b21563c8b \ + --hash=sha256:78d9b952e07aed35fe2e1a7ad26e929595412db48535921c5013edc8aa4a35ce \ + --hash=sha256:7b1cd427cb0d5f7393c31b7496419da594fe600e6fdc4b105a54f82405e6626c \ + --hash=sha256:7d3d1ca42870cdb6d0d29939630dbe48fa511c203724820fc0fd507b2fb46577 \ + --hash=sha256:7e2f58095acc211eb9d8b5771bf04df9ff37d6b87618d1cbf85f92399c98dae8 \ + --hash=sha256:7f41026c1d64043a36fda21d64c5026762d53a77043e73e94b71f0521939cc71 \ + --hash=sha256:81b4e48da4c69313192d8c8d4311e5d818b8be1afe68ee20f6385d0e96fc9512 \ + --hash=sha256:86a6b24b19eaebc448dc56b87c4865527855145d851f9fc3891673ff97950540 \ + --hash=sha256:874a216bf6afaf97c263b56371434e47e2c652d215788396f60477540298218f \ + --hash=sha256:89e043f1d9d341c52bf2af6d02e6adde62e0a46e6755d5eb60dc6e4f0b8aeca2 \ + --hash=sha256:8c72e9563347c7395910de6a3100a4840a75a6f60e05af5e58566868d5eb2d6a \ + --hash=sha256:8dc2c0395bea8254d8daebc76dcf8eb3a95ec2a46fa6fae5eaccee366bfe02ce \ + --hash=sha256:8f0de2d390af441fe8b2c12626d103540b5d850d585b18fcada58d972b74a74e \ + --hash=sha256:92e67a0be1639c251d21e35fe74df6bcc40cba445c2cda7c4a967656733249e2 \ + --hash=sha256:94d6c3782907b5e40e21cadf94b13b0842ac421192f26b84c45f13f3c9d5dc27 \ + --hash=sha256:97acf1e1fd66ab53dacd2c35b319d7e548380c2e9e8c54525c6e76d21b1ae3b1 \ + --hash=sha256:9ada35dd21dc6c039259596b358caab6b13f4db4d4a7f8665764d616daf9cc1d \ + --hash=sha256:9c52100e2c2dbb0649b90467935c4b0de5528833c76a35ea1a2691ec9f1ee7a1 \ + --hash=sha256:9e41506fec7a7f9405b14aa2d5c8abbb4dbbd09d88f9496958b6d00cb4d45330 \ + --hash=sha256:9e4b47ac0f5e749cfc618efdf4726269441014ae1d5583e047b452a32e221920 \ + --hash=sha256:9fb81d2824dff4f2e297a276297e9031f46d2682cafc484f49de182aa5e5df99 \ + --hash=sha256:a0eabd0a81625049c5df745209dc7fcef6e2aea7793e5f003ba363610aa0a3ff \ + --hash=sha256:a3d819eb6f9b8677f57f9664265d0a10dd6551d227afb4af2b9cd7bdc2ccbf18 \ + --hash=sha256:a87de7dd873bf9a792bf1e58b1c3887b9264036629a5bf2d2e6579fe8e73edff \ + --hash=sha256:aa617107a410245b8660028a7483b68e7914304a6d4882b5ff3d2d3eb5948d8c \ + --hash=sha256:aac0bbd3e8dd2d9c45ceb82249e8bdd3ac99131a32b4d35c8af3cc9db1657179 \ + --hash=sha256:ab6dd83b970dc97c2d10bc71aa925b84788c7c05de30241b9e96f9b6d9ea3080 \ + --hash=sha256:ace2c2326a319a0bb8a8b0e5b570c764962e95818de9f259ce814ee666603f19 \ + --hash=sha256:ae5fe5c4b525aa82b8076c1a59d642c17b6e8739ecf852522c6321852178119d \ + --hash=sha256:b11a5d918a6216e521c715b02749240fb07ae5a1fefd4b7bf12f833bc8b4fe70 \ + --hash=sha256:b1c8c20847b9f34e98080da785bb2336ea982e7f913eed5809e5a3c872900f32 \ + --hash=sha256:b369d3db3c22ed14c75ccd5af429086f166a19627e84a8fdade3f8f31426e52a \ + --hash=sha256:b710bc2b8292966b23a6a0121f7a6c51d45d2347edcc75f016ac123b8054d3f2 \ + --hash=sha256:bd96517ef76c8654446fc3db9242d019a1bb5fe8b751ba414765d59f99210b79 \ + --hash=sha256:c00f323cc00576df6165cc9d21a4c21285fa6b9989c5c39830c3903dc4303ef3 \ + --hash=sha256:c162b216070f280fa7da844531169be0baf9ccb17263cf5a8bf876fcd3117fa5 \ + --hash=sha256:c1a69e58a6bb2de65902051d57fde951febad631a20a64572677a1052690482f \ + --hash=sha256:c1f794c02903c2824fccce5b20c339a1a14b114e83b306ff11b597c5f71a1c8d \ + --hash=sha256:c24037349665434f375645fa9d1f5304800cec574d0310f618490c871fd902b3 \ + --hash=sha256:c300306673aa0f3ed5ed9372b21867690a17dba38c68c44b287437c362ce486b \ + --hash=sha256:c56a1d43b2f9ee4786e4658c7903f05da35b923fb53c11025712562d5cc02753 \ + --hash=sha256:c6379f35350b655fd817cd0d6cbeef7f265f3ae5fedb1caae2eb442bbeae9ab9 \ + --hash=sha256:c802e1c2ed9f0c06a65bc4ed0189d000ada8049312cfeab6ca635e39c9608957 \ + --hash=sha256:cb83f8a875b3d9b458cada4f880fa498646874ba4011dc974e071a0a84a1b033 \ + --hash=sha256:cf120cce539453ae086eacc0130a324e7026113510efa83ab42ef3fcfccac7fb \ + --hash=sha256:dd36439be765e2dde7660212b5275641edbc813e7b24668831a5c8ac91180656 \ + --hash=sha256:dd5350b55f9fecddc51385463a4f67a5da829bc741e38cf689f38ec9023f54ab \ + --hash=sha256:df5c7333167b9674aa8ae1d4008fa4bc17a313cc490b2cca27838bbdcc6bb15b \ + --hash=sha256:e63601ad5cd8f860aa99d109889b5ac34de571c7ee902d6812d5d9ddcc77fa7d \ + --hash=sha256:e92ce66cd919d18d14b3856906a61d3f6b6a8500e0794142338da644260595cd \ + --hash=sha256:e99f5507401436fdcc85036a2e7dc2e28d962550afe1cbfc07c40e454256a859 \ + --hash=sha256:ea2e2f6f801696ad7de8aec061044d6c8c0dd4037608c7cab38a9a4d316bfb11 \ + --hash=sha256:eafa2c8658f4e560b098fe9fc54539f86528651f61849b22111a9b107d18910c \ + --hash=sha256:ecd4ad8453ac17bc7ba3868371bffb46f628161ad0eefbd0a855d2c8c32dd81a \ + --hash=sha256:ee70d08fd60c9565ba8190f41a46a54096afa0eeb8f76bd66f2c25d3b1b83005 \ + --hash=sha256:eec1bb8cdbba2925bedc887bc0609a80e599c75b12d87ae42ac23fd199445654 \ + --hash=sha256:ef0c1fe22171dd7c7c27147f2e9c3e86f8bdf473fed75f16b0c2e84a5030ce80 \ + --hash=sha256:f2901429da1e645ce548bf9171784c0f74f0718c3f6150ce166be39e4dd66c3e \ + --hash=sha256:f422a209d2455c56849442ae42f25dbaaba1c6c3f501d58761c619c7836642ec \ + --hash=sha256:f65e5120863c2b266dbcc927b306c5b78e502c71edf3295dfcb9501ec96e5fc7 \ + --hash=sha256:f7d4a670107d75dfe5ad080bed6c341d18c4442f9378c9f58e5851e86eb79965 \ + --hash=sha256:f914c03e6a31deb632e2daa881fe198461f4d06e57ac3d0e05bbcab8eae01945 \ + --hash=sha256:fb66442c2546446944437df74379e9cf9e9db353e61301d1a0e26482f43f0dd8 # via # python3-saml # xmlsec -markdown==3.6 \ - --hash=sha256:48f276f4d8cfb8ce6527c8f79e2ee29708508bf4d40aa410fbc3b4ee832c850f \ - --hash=sha256:ed4f41f6daecbeeb96e576ce414c41d2d876daa9a16cb35fa8ed8c2ddfad0224 +markdown==3.7 \ + --hash=sha256:2ae2471477cfd02dbbf038d5d9bc226d40def84b4fe2986e49b59b6b472bbed2 \ + --hash=sha256:7eb6df5690b81a1d7942992c97fad2938e956e79df20cbc6186e9c3a77b1c803 # via django-markdownify markuppy==1.14 \ --hash=sha256:1adee2c0a542af378fe84548ff6f6b0168f3cb7f426b46961038a2bcfaad0d5f # via tablib -markupsafe==2.1.5 \ - --hash=sha256:00e046b6dd71aa03a41079792f8473dc494d564611a8f89bbbd7cb93295ebdcf \ - --hash=sha256:075202fa5b72c86ad32dc7d0b56024ebdbcf2048c0ba09f1cde31bfdd57bcfff \ - --hash=sha256:0e397ac966fdf721b2c528cf028494e86172b4feba51d65f81ffd65c63798f3f \ - --hash=sha256:17b950fccb810b3293638215058e432159d2b71005c74371d784862b7e4683f3 \ - --hash=sha256:1f3fbcb7ef1f16e48246f704ab79d79da8a46891e2da03f8783a5b6fa41a9532 \ - --hash=sha256:2174c595a0d73a3080ca3257b40096db99799265e1c27cc5a610743acd86d62f \ - --hash=sha256:2b7c57a4dfc4f16f7142221afe5ba4e093e09e728ca65c51f5620c9aaeb9a617 \ - --hash=sha256:2d2d793e36e230fd32babe143b04cec8a8b3eb8a3122d2aceb4a371e6b09b8df \ - --hash=sha256:30b600cf0a7ac9234b2638fbc0fb6158ba5bdcdf46aeb631ead21248b9affbc4 \ - --hash=sha256:397081c1a0bfb5124355710fe79478cdbeb39626492b15d399526ae53422b906 \ - --hash=sha256:3a57fdd7ce31c7ff06cdfbf31dafa96cc533c21e443d57f5b1ecc6cdc668ec7f \ - --hash=sha256:3c6b973f22eb18a789b1460b4b91bf04ae3f0c4234a0a6aa6b0a92f6f7b951d4 \ - --hash=sha256:3e53af139f8579a6d5f7b76549125f0d94d7e630761a2111bc431fd820e163b8 \ - --hash=sha256:4096e9de5c6fdf43fb4f04c26fb114f61ef0bf2e5604b6ee3019d51b69e8c371 \ - --hash=sha256:4275d846e41ecefa46e2015117a9f491e57a71ddd59bbead77e904dc02b1bed2 \ - --hash=sha256:4c31f53cdae6ecfa91a77820e8b151dba54ab528ba65dfd235c80b086d68a465 \ - --hash=sha256:4f11aa001c540f62c6166c7726f71f7573b52c68c31f014c25cc7901deea0b52 \ - --hash=sha256:5049256f536511ee3f7e1b3f87d1d1209d327e818e6ae1365e8653d7e3abb6a6 \ - --hash=sha256:58c98fee265677f63a4385256a6d7683ab1832f3ddd1e66fe948d5880c21a169 \ - --hash=sha256:598e3276b64aff0e7b3451b72e94fa3c238d452e7ddcd893c3ab324717456bad \ - --hash=sha256:5b7b716f97b52c5a14bffdf688f971b2d5ef4029127f1ad7a513973cfd818df2 \ - --hash=sha256:5dedb4db619ba5a2787a94d877bc8ffc0566f92a01c0ef214865e54ecc9ee5e0 \ - --hash=sha256:619bc166c4f2de5caa5a633b8b7326fbe98e0ccbfacabd87268a2b15ff73a029 \ - --hash=sha256:629ddd2ca402ae6dbedfceeba9c46d5f7b2a61d9749597d4307f943ef198fc1f \ - --hash=sha256:656f7526c69fac7f600bd1f400991cc282b417d17539a1b228617081106feb4a \ - --hash=sha256:6ec585f69cec0aa07d945b20805be741395e28ac1627333b1c5b0105962ffced \ - --hash=sha256:72b6be590cc35924b02c78ef34b467da4ba07e4e0f0454a2c5907f473fc50ce5 \ - --hash=sha256:7502934a33b54030eaf1194c21c692a534196063db72176b0c4028e140f8f32c \ - --hash=sha256:7a68b554d356a91cce1236aa7682dc01df0edba8d043fd1ce607c49dd3c1edcf \ - --hash=sha256:7b2e5a267c855eea6b4283940daa6e88a285f5f2a67f2220203786dfa59b37e9 \ - --hash=sha256:823b65d8706e32ad2df51ed89496147a42a2a6e01c13cfb6ffb8b1e92bc910bb \ - --hash=sha256:8590b4ae07a35970728874632fed7bd57b26b0102df2d2b233b6d9d82f6c62ad \ - --hash=sha256:8dd717634f5a044f860435c1d8c16a270ddf0ef8588d4887037c5028b859b0c3 \ - --hash=sha256:8dec4936e9c3100156f8a2dc89c4b88d5c435175ff03413b443469c7c8c5f4d1 \ - --hash=sha256:97cafb1f3cbcd3fd2b6fbfb99ae11cdb14deea0736fc2b0952ee177f2b813a46 \ - --hash=sha256:a17a92de5231666cfbe003f0e4b9b3a7ae3afb1ec2845aadc2bacc93ff85febc \ - --hash=sha256:a549b9c31bec33820e885335b451286e2969a2d9e24879f83fe904a5ce59d70a \ - --hash=sha256:ac07bad82163452a6884fe8fa0963fb98c2346ba78d779ec06bd7a6262132aee \ - --hash=sha256:ae2ad8ae6ebee9d2d94b17fb62763125f3f374c25618198f40cbb8b525411900 \ - --hash=sha256:b91c037585eba9095565a3556f611e3cbfaa42ca1e865f7b8015fe5c7336d5a5 \ - --hash=sha256:bc1667f8b83f48511b94671e0e441401371dfd0f0a795c7daa4a3cd1dde55bea \ - --hash=sha256:bec0a414d016ac1a18862a519e54b2fd0fc8bbfd6890376898a6c0891dd82e9f \ - --hash=sha256:bf50cd79a75d181c9181df03572cdce0fbb75cc353bc350712073108cba98de5 \ - --hash=sha256:bff1b4290a66b490a2f4719358c0cdcd9bafb6b8f061e45c7a2460866bf50c2e \ - --hash=sha256:c061bb86a71b42465156a3ee7bd58c8c2ceacdbeb95d05a99893e08b8467359a \ - --hash=sha256:c8b29db45f8fe46ad280a7294f5c3ec36dbac9491f2d1c17345be8e69cc5928f \ - --hash=sha256:ce409136744f6521e39fd8e2a24c53fa18ad67aa5bc7c2cf83645cce5b5c4e50 \ - --hash=sha256:d050b3361367a06d752db6ead6e7edeb0009be66bc3bae0ee9d97fb326badc2a \ - --hash=sha256:d283d37a890ba4c1ae73ffadf8046435c76e7bc2247bbb63c00bd1a709c6544b \ - --hash=sha256:d9fad5155d72433c921b782e58892377c44bd6252b5af2f67f16b194987338a4 \ - --hash=sha256:daa4ee5a243f0f20d528d939d06670a298dd39b1ad5f8a72a4275124a7819eff \ - --hash=sha256:db0b55e0f3cc0be60c1f19efdde9a637c32740486004f20d1cff53c3c0ece4d2 \ - --hash=sha256:e61659ba32cf2cf1481e575d0462554625196a1f2fc06a1c777d3f48e8865d46 \ - --hash=sha256:ea3d8a3d18833cf4304cd2fc9cbb1efe188ca9b5efef2bdac7adc20594a0e46b \ - --hash=sha256:ec6a563cff360b50eed26f13adc43e61bc0c04d94b8be985e6fb24b81f6dcfdf \ - --hash=sha256:f5dfb42c4604dddc8e4305050aa6deb084540643ed5804d7455b5df8fe16f5e5 \ - --hash=sha256:fa173ec60341d6bb97a89f5ea19c85c5643c1e7dedebc22f5181eb73573142c5 \ - --hash=sha256:fa9db3f79de01457b03d4f01b34cf91bc0048eb2c3846ff26f66687c2f6d16ab \ - --hash=sha256:fce659a462a1be54d2ffcacea5e3ba2d74daa74f30f5f143fe0c58636e355fdd \ - --hash=sha256:ffee1f21e5ef0d712f9033568f8344d5da8cc2869dbd08d87c84656e6a2d2f68 +markupsafe==3.0.1 \ + --hash=sha256:0778de17cff1acaeccc3ff30cd99a3fd5c50fc58ad3d6c0e0c4c58092b859396 \ + --hash=sha256:0f84af7e813784feb4d5e4ff7db633aba6c8ca64a833f61d8e4eade234ef0c38 \ + --hash=sha256:17b2aea42a7280db02ac644db1d634ad47dcc96faf38ab304fe26ba2680d359a \ + --hash=sha256:242d6860f1fd9191aef5fae22b51c5c19767f93fb9ead4d21924e0bcb17619d8 \ + --hash=sha256:244dbe463d5fb6d7ce161301a03a6fe744dac9072328ba9fc82289238582697b \ + --hash=sha256:26627785a54a947f6d7336ce5963569b5d75614619e75193bdb4e06e21d447ad \ + --hash=sha256:2a4b34a8d14649315c4bc26bbfa352663eb51d146e35eef231dd739d54a5430a \ + --hash=sha256:2ae99f31f47d849758a687102afdd05bd3d3ff7dbab0a8f1587981b58a76152a \ + --hash=sha256:312387403cd40699ab91d50735ea7a507b788091c416dd007eac54434aee51da \ + --hash=sha256:3341c043c37d78cc5ae6e3e305e988532b072329639007fd408a476642a89fd6 \ + --hash=sha256:33d1c36b90e570ba7785dacd1faaf091203d9942bc036118fab8110a401eb1a8 \ + --hash=sha256:3e683ee4f5d0fa2dde4db77ed8dd8a876686e3fc417655c2ece9a90576905344 \ + --hash=sha256:3ffb4a8e7d46ed96ae48805746755fadd0909fea2306f93d5d8233ba23dda12a \ + --hash=sha256:40621d60d0e58aa573b68ac5e2d6b20d44392878e0bfc159012a5787c4e35bc8 \ + --hash=sha256:40f1e10d51c92859765522cbd79c5c8989f40f0419614bcdc5015e7b6bf97fc5 \ + --hash=sha256:45d42d132cff577c92bfba536aefcfea7e26efb975bd455db4e6602f5c9f45e7 \ + --hash=sha256:48488d999ed50ba8d38c581d67e496f955821dc183883550a6fbc7f1aefdc170 \ + --hash=sha256:4935dd7883f1d50e2ffecca0aa33dc1946a94c8f3fdafb8df5c330e48f71b132 \ + --hash=sha256:4c2d64fdba74ad16138300815cfdc6ab2f4647e23ced81f59e940d7d4a1469d9 \ + --hash=sha256:4c8817557d0de9349109acb38b9dd570b03cc5014e8aabf1cbddc6e81005becd \ + --hash=sha256:4ffaaac913c3f7345579db4f33b0020db693f302ca5137f106060316761beea9 \ + --hash=sha256:5a4cb365cb49b750bdb60b846b0c0bc49ed62e59a76635095a179d440540c346 \ + --hash=sha256:62fada2c942702ef8952754abfc1a9f7658a4d5460fabe95ac7ec2cbe0d02abc \ + --hash=sha256:67c519635a4f64e495c50e3107d9b4075aec33634272b5db1cde839e07367589 \ + --hash=sha256:6a54c43d3ec4cf2a39f4387ad044221c66a376e58c0d0e971d47c475ba79c6b5 \ + --hash=sha256:7044312a928a66a4c2a22644147bc61a199c1709712069a344a3fb5cfcf16915 \ + --hash=sha256:730d86af59e0e43ce277bb83970530dd223bf7f2a838e086b50affa6ec5f9295 \ + --hash=sha256:800100d45176652ded796134277ecb13640c1a537cad3b8b53da45aa96330453 \ + --hash=sha256:80fcbf3add8790caddfab6764bde258b5d09aefbe9169c183f88a7410f0f6dea \ + --hash=sha256:82b5dba6eb1bcc29cc305a18a3c5365d2af06ee71b123216416f7e20d2a84e5b \ + --hash=sha256:852dc840f6d7c985603e60b5deaae1d89c56cb038b577f6b5b8c808c97580f1d \ + --hash=sha256:8ad4ad1429cd4f315f32ef263c1342166695fad76c100c5d979c45d5570ed58b \ + --hash=sha256:8ae369e84466aa70f3154ee23c1451fda10a8ee1b63923ce76667e3077f2b0c4 \ + --hash=sha256:93e8248d650e7e9d49e8251f883eed60ecbc0e8ffd6349e18550925e31bd029b \ + --hash=sha256:973a371a55ce9ed333a3a0f8e0bcfae9e0d637711534bcb11e130af2ab9334e7 \ + --hash=sha256:9ba25a71ebf05b9bb0e2ae99f8bc08a07ee8e98c612175087112656ca0f5c8bf \ + --hash=sha256:a10860e00ded1dd0a65b83e717af28845bb7bd16d8ace40fe5531491de76b79f \ + --hash=sha256:a4792d3b3a6dfafefdf8e937f14906a51bd27025a36f4b188728a73382231d91 \ + --hash=sha256:a7420ceda262dbb4b8d839a4ec63d61c261e4e77677ed7c66c99f4e7cb5030dd \ + --hash=sha256:ad91738f14eb8da0ff82f2acd0098b6257621410dcbd4df20aaa5b4233d75a50 \ + --hash=sha256:b6a387d61fe41cdf7ea95b38e9af11cfb1a63499af2759444b99185c4ab33f5b \ + --hash=sha256:b954093679d5750495725ea6f88409946d69cfb25ea7b4c846eef5044194f583 \ + --hash=sha256:bbde71a705f8e9e4c3e9e33db69341d040c827c7afa6789b14c6e16776074f5a \ + --hash=sha256:beeebf760a9c1f4c07ef6a53465e8cfa776ea6a2021eda0d0417ec41043fe984 \ + --hash=sha256:c91b394f7601438ff79a4b93d16be92f216adb57d813a78be4446fe0f6bc2d8c \ + --hash=sha256:c97ff7fedf56d86bae92fa0a646ce1a0ec7509a7578e1ed238731ba13aabcd1c \ + --hash=sha256:cb53e2a99df28eee3b5f4fea166020d3ef9116fdc5764bc5117486e6d1211b25 \ + --hash=sha256:cbf445eb5628981a80f54087f9acdbf84f9b7d862756110d172993b9a5ae81aa \ + --hash=sha256:d06b24c686a34c86c8c1fba923181eae6b10565e4d80bdd7bc1c8e2f11247aa4 \ + --hash=sha256:d98e66a24497637dd31ccab090b34392dddb1f2f811c4b4cd80c230205c074a3 \ + --hash=sha256:db15ce28e1e127a0013dfb8ac243a8e392db8c61eae113337536edb28bdc1f97 \ + --hash=sha256:db842712984e91707437461930e6011e60b39136c7331e971952bb30465bc1a1 \ + --hash=sha256:e24bfe89c6ac4c31792793ad9f861b8f6dc4546ac6dc8f1c9083c7c4f2b335cd \ + --hash=sha256:e81c52638315ff4ac1b533d427f50bc0afc746deb949210bc85f05d4f15fd772 \ + --hash=sha256:e9393357f19954248b00bed7c56f29a25c930593a77630c719653d51e7669c2a \ + --hash=sha256:ee3941769bd2522fe39222206f6dd97ae83c442a94c90f2b7a25d847d40f4729 \ + --hash=sha256:f31ae06f1328595d762c9a2bf29dafd8621c7d3adc130cbb46278079758779ca \ + --hash=sha256:f94190df587738280d544971500b9cafc9b950d32efcb1fba9ac10d84e6aa4e6 \ + --hash=sha256:fa7d686ed9883f3d664d39d5a8e74d3c5f63e603c2e3ff0abcba23eac6542635 \ + --hash=sha256:fb532dd9900381d2e8f48172ddc5a59db4c445a11b9fab40b3b786da40d3b56b \ + --hash=sha256:fe32482b37b4b00c7a52a07211b479653b7fe4f22b2e481b9a9b099d8a430f2f # via jinja2 odfpy==1.4.1 \ --hash=sha256:db766a6e59c5103212f3cc92ec8dd50a0f3a02790233ed0b52148b70d3c438ec # via tablib -openpyxl==3.1.4 \ - --hash=sha256:8d2c8adf5d20d6ce8f9bca381df86b534835e974ed0156dacefa76f68c1d69fb \ - --hash=sha256:ec17f6483f2b8f7c88c57e5e5d3b0de0e3fb9ac70edc084d28e864f5b33bbefd +openpyxl==3.1.5 \ + --hash=sha256:5282c12b107bffeef825f4617dc029afaf41d0ea60823bbb665ef3079dc79de2 \ + --hash=sha256:cf0e3cf56142039133628b5acffe8ef0c12bc902d2aadd3e0fe5878dc08d1050 # via tablib -opentelemetry-api==1.25.0 \ - --hash=sha256:757fa1aa020a0f8fa139f8959e53dec2051cc26b832e76fa839a6d76ecefd737 \ - --hash=sha256:77c4985f62f2614e42ce77ee4c9da5fa5f0bc1e1821085e9a47533a9323ae869 +opentelemetry-api==1.27.0 \ + --hash=sha256:953d5871815e7c30c81b56d910c707588000fff7a3ca1c73e6531911d53065e7 \ + --hash=sha256:ed673583eaa5f81b5ce5e86ef7cdaf622f88ef65f0b9aab40b843dcae5bef342 # via # -r src/backend/requirements.in # opentelemetry-exporter-otlp-proto-grpc @@ -944,74 +994,74 @@ opentelemetry-api==1.25.0 \ # opentelemetry-instrumentation-wsgi # opentelemetry-sdk # opentelemetry-semantic-conventions -opentelemetry-exporter-otlp==1.25.0 \ - --hash=sha256:ce03199c1680a845f82e12c0a6a8f61036048c07ec7a0bd943142aca8fa6ced0 \ - --hash=sha256:d67a831757014a3bc3174e4cd629ae1493b7ba8d189e8a007003cacb9f1a6b60 +opentelemetry-exporter-otlp==1.27.0 \ + --hash=sha256:4a599459e623868cc95d933c301199c2367e530f089750e115599fccd67cb2a1 \ + --hash=sha256:7688791cbdd951d71eb6445951d1cfbb7b6b2d7ee5948fac805d404802931145 # via -r src/backend/requirements.in -opentelemetry-exporter-otlp-proto-common==1.25.0 \ - --hash=sha256:15637b7d580c2675f70246563363775b4e6de947871e01d0f4e3881d1848d693 \ - --hash=sha256:c93f4e30da4eee02bacd1e004eb82ce4da143a2f8e15b987a9f603e0a85407d3 +opentelemetry-exporter-otlp-proto-common==1.27.0 \ + --hash=sha256:159d27cf49f359e3798c4c3eb8da6ef4020e292571bd8c5604a2a573231dd5c8 \ + --hash=sha256:675db7fffcb60946f3a5c43e17d1168a3307a94a930ecf8d2ea1f286f3d4f79a # via # opentelemetry-exporter-otlp-proto-grpc # opentelemetry-exporter-otlp-proto-http -opentelemetry-exporter-otlp-proto-grpc==1.25.0 \ - --hash=sha256:3131028f0c0a155a64c430ca600fd658e8e37043cb13209f0109db5c1a3e4eb4 \ - --hash=sha256:c0b1661415acec5af87625587efa1ccab68b873745ca0ee96b69bb1042087eac +opentelemetry-exporter-otlp-proto-grpc==1.27.0 \ + --hash=sha256:56b5bbd5d61aab05e300d9d62a6b3c134827bbd28d0b12f2649c2da368006c9e \ + --hash=sha256:af6f72f76bcf425dfb5ad11c1a6d6eca2863b91e63575f89bb7b4b55099d968f # via opentelemetry-exporter-otlp -opentelemetry-exporter-otlp-proto-http==1.25.0 \ - --hash=sha256:2eca686ee11b27acd28198b3ea5e5863a53d1266b91cda47c839d95d5e0541a6 \ - --hash=sha256:9f8723859e37c75183ea7afa73a3542f01d0fd274a5b97487ea24cb683d7d684 +opentelemetry-exporter-otlp-proto-http==1.27.0 \ + --hash=sha256:2103479092d8eb18f61f3fbff084f67cc7f2d4a7d37e75304b8b56c1d09ebef5 \ + --hash=sha256:688027575c9da42e179a69fe17e2d1eba9b14d81de8d13553a21d3114f3b4d75 # via opentelemetry-exporter-otlp -opentelemetry-instrumentation==0.46b0 \ - --hash=sha256:89cd721b9c18c014ca848ccd11181e6b3fd3f6c7669e35d59c48dc527408c18b \ - --hash=sha256:974e0888fb2a1e01c38fbacc9483d024bb1132aad92d6d24e2e5543887a7adda +opentelemetry-instrumentation==0.48b0 \ + --hash=sha256:94929685d906380743a71c3970f76b5f07476eea1834abd5dd9d17abfe23cc35 \ + --hash=sha256:a69750dc4ba6a5c3eb67986a337185a25b739966d80479befe37b546fc870b44 # via # opentelemetry-instrumentation-django # opentelemetry-instrumentation-redis # opentelemetry-instrumentation-requests # opentelemetry-instrumentation-wsgi -opentelemetry-instrumentation-django==0.46b0 \ - --hash=sha256:cc11b2e24f9bdd20759570390ed8619d9c5acbf788b4a5401e36e280dfc20feb \ - --hash=sha256:ecc85941263122f99dbd96463a981b2d1eeea618ca287a58abe0af9fd67631ee +opentelemetry-instrumentation-django==0.48b0 \ + --hash=sha256:d31fca8bdf5a75e004a459f2eb3fcba707fbb0a39fc3d3c520c38265775cb9df \ + --hash=sha256:e6742744ee1cfbfee8a6b57182a2071475531b79863411e1eb5f0d5b5322b7b4 # via -r src/backend/requirements.in -opentelemetry-instrumentation-redis==0.46b0 \ - --hash=sha256:8b4639fe52edb6ccdc633c54c01630005ab63faeffd97754cddbf6bdc1f04c5e \ - --hash=sha256:e796530808829a9c32f19eaf470f0b01caef13bd89f1d964f536198de881e460 +opentelemetry-instrumentation-redis==0.48b0 \ + --hash=sha256:48c7f2e25cbb30bde749dc0d8b9c74c404c851f554af832956b9630b27f5bcb7 \ + --hash=sha256:61e33e984b4120e1b980d9fba6e9f7ca0c8d972f9970654d8f6e9f27fa115a8c # via -r src/backend/requirements.in -opentelemetry-instrumentation-requests==0.46b0 \ - --hash=sha256:a8c2472800d8686f3f286cd524b8746b386154092e85a791ba14110d1acc9b81 \ - --hash=sha256:ef0ad63bfd0d52631daaf7d687e763dbd89b465f5cb052f12a4e67e5e3d181e4 +opentelemetry-instrumentation-requests==0.48b0 \ + --hash=sha256:67ab9bd877a0352ee0db4616c8b4ae59736ddd700c598ed907482d44f4c9a2b3 \ + --hash=sha256:d4f01852121d0bd4c22f14f429654a735611d4f7bf3cf93f244bdf1489b2233d # via -r src/backend/requirements.in -opentelemetry-instrumentation-wsgi==0.46b0 \ - --hash=sha256:2386014b026f5307c802417eeab74265785ae3dd6eee8c5581a830e3b2d3435b \ - --hash=sha256:f4e1001e8477eb546cac7c13cff0b0cf127812b1188a37bcaa3e43eb741451e2 +opentelemetry-instrumentation-wsgi==0.48b0 \ + --hash=sha256:1a1e752367b0df4397e0b835839225ef5c2c3c053743a261551af13434fc4d51 \ + --hash=sha256:c6051124d741972090fe94b2fa302555e1e2a22e9cdda32dd39ed49a5b34e0c6 # via opentelemetry-instrumentation-django -opentelemetry-proto==1.25.0 \ - --hash=sha256:35b6ef9dc4a9f7853ecc5006738ad40443701e52c26099e197895cbda8b815a3 \ - --hash=sha256:f07e3341c78d835d9b86665903b199893befa5e98866f63d22b00d0b7ca4972f +opentelemetry-proto==1.27.0 \ + --hash=sha256:33c9345d91dafd8a74fc3d7576c5a38f18b7fdf8d02983ac67485386132aedd6 \ + --hash=sha256:b133873de5581a50063e1e4b29cdcf0c5e253a8c2d8dc1229add20a4c3830ace # via # opentelemetry-exporter-otlp-proto-common # opentelemetry-exporter-otlp-proto-grpc # opentelemetry-exporter-otlp-proto-http -opentelemetry-sdk==1.25.0 \ - --hash=sha256:ce7fc319c57707ef5bf8b74fb9f8ebdb8bfafbe11898410e0d2a761d08a98ec7 \ - --hash=sha256:d97ff7ec4b351692e9d5a15af570c693b8715ad78b8aafbec5c7100fe966b4c9 +opentelemetry-sdk==1.27.0 \ + --hash=sha256:365f5e32f920faf0fd9e14fdfd92c086e317eaa5f860edba9cdc17a380d9197d \ + --hash=sha256:d525017dea0ccce9ba4e0245100ec46ecdc043f2d7b8315d56b19aff0904fa6f # via # -r src/backend/requirements.in # opentelemetry-exporter-otlp-proto-grpc # opentelemetry-exporter-otlp-proto-http -opentelemetry-semantic-conventions==0.46b0 \ - --hash=sha256:6daef4ef9fa51d51855d9f8e0ccd3a1bd59e0e545abe99ac6203804e36ab3e07 \ - --hash=sha256:fbc982ecbb6a6e90869b15c1673be90bd18c8a56ff1cffc0864e38e2edffaefa +opentelemetry-semantic-conventions==0.48b0 \ + --hash=sha256:12d74983783b6878162208be57c9effcb89dc88691c64992d70bb89dc00daa1a \ + --hash=sha256:a0de9f45c413a8669788a38569c7e0a11ce6ce97861a628cca785deecdc32a1f # via # opentelemetry-instrumentation-django # opentelemetry-instrumentation-redis # opentelemetry-instrumentation-requests # opentelemetry-instrumentation-wsgi # opentelemetry-sdk -opentelemetry-util-http==0.46b0 \ - --hash=sha256:03b6e222642f9c7eae58d9132343e045b50aca9761fcb53709bd2b663571fdf6 \ - --hash=sha256:8dc1949ce63caef08db84ae977fdc1848fe6dc38e6bbaad0ae3e6ecd0d451629 +opentelemetry-util-http==0.48b0 \ + --hash=sha256:60312015153580cc20f322e5cdc3d3ecad80a71743235bdb77716e742814623c \ + --hash=sha256:76f598af93aab50328d2a69c786beaedc8b6a7770f7a818cc307eb353debfffb # via # opentelemetry-instrumentation-django # opentelemetry-instrumentation-requests @@ -1024,76 +1074,87 @@ pdf2image==1.17.0 \ --hash=sha256:eaa959bc116b420dd7ec415fcae49b98100dda3dd18cd2fdfa86d09f112f6d57 \ --hash=sha256:ecdd58d7afb810dffe21ef2b1bbc057ef434dabbac6c33778a38a3f7744a27e2 # via -r src/backend/requirements.in -pillow==10.3.0 \ - --hash=sha256:048ad577748b9fa4a99a0548c64f2cb8d672d5bf2e643a739ac8faff1164238c \ - --hash=sha256:048eeade4c33fdf7e08da40ef402e748df113fd0b4584e32c4af74fe78baaeb2 \ - --hash=sha256:0ba26351b137ca4e0db0342d5d00d2e355eb29372c05afd544ebf47c0956ffeb \ - --hash=sha256:0ea2a783a2bdf2a561808fe4a7a12e9aa3799b701ba305de596bc48b8bdfce9d \ - --hash=sha256:1530e8f3a4b965eb6a7785cf17a426c779333eb62c9a7d1bbcf3ffd5bf77a4aa \ - --hash=sha256:16563993329b79513f59142a6b02055e10514c1a8e86dca8b48a893e33cf91e3 \ - --hash=sha256:19aeb96d43902f0a783946a0a87dbdad5c84c936025b8419da0a0cd7724356b1 \ - --hash=sha256:1a1d1915db1a4fdb2754b9de292642a39a7fb28f1736699527bb649484fb966a \ - --hash=sha256:1b87bd9d81d179bd8ab871603bd80d8645729939f90b71e62914e816a76fc6bd \ - --hash=sha256:1dfc94946bc60ea375cc39cff0b8da6c7e5f8fcdc1d946beb8da5c216156ddd8 \ - --hash=sha256:2034f6759a722da3a3dbd91a81148cf884e91d1b747992ca288ab88c1de15999 \ - --hash=sha256:261ddb7ca91fcf71757979534fb4c128448b5b4c55cb6152d280312062f69599 \ - --hash=sha256:2ed854e716a89b1afcedea551cd85f2eb2a807613752ab997b9974aaa0d56936 \ - --hash=sha256:3102045a10945173d38336f6e71a8dc71bcaeed55c3123ad4af82c52807b9375 \ - --hash=sha256:339894035d0ede518b16073bdc2feef4c991ee991a29774b33e515f1d308e08d \ - --hash=sha256:412444afb8c4c7a6cc11a47dade32982439925537e483be7c0ae0cf96c4f6a0b \ - --hash=sha256:4203efca580f0dd6f882ca211f923168548f7ba334c189e9eab1178ab840bf60 \ - --hash=sha256:45ebc7b45406febf07fef35d856f0293a92e7417ae7933207e90bf9090b70572 \ - --hash=sha256:4b5ec25d8b17217d635f8935dbc1b9aa5907962fae29dff220f2659487891cd3 \ - --hash=sha256:4c8e73e99da7db1b4cad7f8d682cf6abad7844da39834c288fbfa394a47bbced \ - --hash=sha256:4e6f7d1c414191c1199f8996d3f2282b9ebea0945693fb67392c75a3a320941f \ - --hash=sha256:4eaa22f0d22b1a7e93ff0a596d57fdede2e550aecffb5a1ef1106aaece48e96b \ - --hash=sha256:50b8eae8f7334ec826d6eeffaeeb00e36b5e24aa0b9df322c247539714c6df19 \ - --hash=sha256:50fd3f6b26e3441ae07b7c979309638b72abc1a25da31a81a7fbd9495713ef4f \ - --hash=sha256:51243f1ed5161b9945011a7360e997729776f6e5d7005ba0c6879267d4c5139d \ - --hash=sha256:5d512aafa1d32efa014fa041d38868fda85028e3f930a96f85d49c7d8ddc0383 \ - --hash=sha256:5f77cf66e96ae734717d341c145c5949c63180842a545c47a0ce7ae52ca83795 \ - --hash=sha256:6b02471b72526ab8a18c39cb7967b72d194ec53c1fd0a70b050565a0f366d355 \ - --hash=sha256:6fb1b30043271ec92dc65f6d9f0b7a830c210b8a96423074b15c7bc999975f57 \ - --hash=sha256:7161ec49ef0800947dc5570f86568a7bb36fa97dd09e9827dc02b718c5643f09 \ - --hash=sha256:72d622d262e463dfb7595202d229f5f3ab4b852289a1cd09650362db23b9eb0b \ - --hash=sha256:74d28c17412d9caa1066f7a31df8403ec23d5268ba46cd0ad2c50fb82ae40462 \ - --hash=sha256:78618cdbccaa74d3f88d0ad6cb8ac3007f1a6fa5c6f19af64b55ca170bfa1edf \ - --hash=sha256:793b4e24db2e8742ca6423d3fde8396db336698c55cd34b660663ee9e45ed37f \ - --hash=sha256:798232c92e7665fe82ac085f9d8e8ca98826f8e27859d9a96b41d519ecd2e49a \ - --hash=sha256:81d09caa7b27ef4e61cb7d8fbf1714f5aec1c6b6c5270ee53504981e6e9121ad \ - --hash=sha256:8ab74c06ffdab957d7670c2a5a6e1a70181cd10b727cd788c4dd9005b6a8acd9 \ - --hash=sha256:8eb0908e954d093b02a543dc963984d6e99ad2b5e36503d8a0aaf040505f747d \ - --hash=sha256:90b9e29824800e90c84e4022dd5cc16eb2d9605ee13f05d47641eb183cd73d45 \ - --hash=sha256:9797a6c8fe16f25749b371c02e2ade0efb51155e767a971c61734b1bf6293994 \ - --hash=sha256:9d2455fbf44c914840c793e89aa82d0e1763a14253a000743719ae5946814b2d \ - --hash=sha256:9d3bea1c75f8c53ee4d505c3e67d8c158ad4df0d83170605b50b64025917f338 \ - --hash=sha256:9e2ec1e921fd07c7cda7962bad283acc2f2a9ccc1b971ee4b216b75fad6f0463 \ - --hash=sha256:9e91179a242bbc99be65e139e30690e081fe6cb91a8e77faf4c409653de39451 \ - --hash=sha256:a0eaa93d054751ee9964afa21c06247779b90440ca41d184aeb5d410f20ff591 \ - --hash=sha256:a2c405445c79c3f5a124573a051062300936b0281fee57637e706453e452746c \ - --hash=sha256:aa7e402ce11f0885305bfb6afb3434b3cd8f53b563ac065452d9d5654c7b86fd \ - --hash=sha256:aff76a55a8aa8364d25400a210a65ff59d0168e0b4285ba6bf2bd83cf675ba32 \ - --hash=sha256:b09b86b27a064c9624d0a6c54da01c1beaf5b6cadfa609cf63789b1d08a797b9 \ - --hash=sha256:b14f16f94cbc61215115b9b1236f9c18403c15dd3c52cf629072afa9d54c1cbf \ - --hash=sha256:b50811d664d392f02f7761621303eba9d1b056fb1868c8cdf4231279645c25f5 \ - --hash=sha256:b7bc2176354defba3edc2b9a777744462da2f8e921fbaf61e52acb95bafa9828 \ - --hash=sha256:c78e1b00a87ce43bb37642c0812315b411e856a905d58d597750eb79802aaaa3 \ - --hash=sha256:c83341b89884e2b2e55886e8fbbf37c3fa5efd6c8907124aeb72f285ae5696e5 \ - --hash=sha256:ca2870d5d10d8726a27396d3ca4cf7976cec0f3cb706debe88e3a5bd4610f7d2 \ - --hash=sha256:ccce24b7ad89adb5a1e34a6ba96ac2530046763912806ad4c247356a8f33a67b \ - --hash=sha256:cd5e14fbf22a87321b24c88669aad3a51ec052eb145315b3da3b7e3cc105b9a2 \ - --hash=sha256:ce49c67f4ea0609933d01c0731b34b8695a7a748d6c8d186f95e7d085d2fe475 \ - --hash=sha256:d33891be6df59d93df4d846640f0e46f1a807339f09e79a8040bc887bdcd7ed3 \ - --hash=sha256:d3b2348a78bc939b4fed6552abfd2e7988e0f81443ef3911a4b8498ca084f6eb \ - --hash=sha256:d886f5d353333b4771d21267c7ecc75b710f1a73d72d03ca06df49b09015a9ef \ - --hash=sha256:d93480005693d247f8346bc8ee28c72a2191bdf1f6b5db469c096c0c867ac015 \ - --hash=sha256:dc1a390a82755a8c26c9964d457d4c9cbec5405896cba94cf51f36ea0d855002 \ - --hash=sha256:dd78700f5788ae180b5ee8902c6aea5a5726bac7c364b202b4b3e3ba2d293170 \ - --hash=sha256:e46f38133e5a060d46bd630faa4d9fa0202377495df1f068a8299fd78c84de84 \ - --hash=sha256:e4b878386c4bf293578b48fc570b84ecfe477d3b77ba39a6e87150af77f40c57 \ - --hash=sha256:f0d0591a0aeaefdaf9a5e545e7485f89910c977087e7de2b6c388aec32011e9f \ - --hash=sha256:fdcbb4068117dfd9ce0138d068ac512843c52295ed996ae6dd1faf537b6dbc27 \ - --hash=sha256:ff61bfd9253c3915e6d41c651d5f962da23eda633cf02262990094a18a55371a +pillow==10.4.0 \ + --hash=sha256:02a2be69f9c9b8c1e97cf2713e789d4e398c751ecfd9967c18d0ce304efbf885 \ + --hash=sha256:030abdbe43ee02e0de642aee345efa443740aa4d828bfe8e2eb11922ea6a21ea \ + --hash=sha256:06b2f7898047ae93fad74467ec3d28fe84f7831370e3c258afa533f81ef7f3df \ + --hash=sha256:0755ffd4a0c6f267cccbae2e9903d95477ca2f77c4fcf3a3a09570001856c8a5 \ + --hash=sha256:0a9ec697746f268507404647e531e92889890a087e03681a3606d9b920fbee3c \ + --hash=sha256:0ae24a547e8b711ccaaf99c9ae3cd975470e1a30caa80a6aaee9a2f19c05701d \ + --hash=sha256:134ace6dc392116566980ee7436477d844520a26a4b1bd4053f6f47d096997fd \ + --hash=sha256:166c1cd4d24309b30d61f79f4a9114b7b2313d7450912277855ff5dfd7cd4a06 \ + --hash=sha256:1b5dea9831a90e9d0721ec417a80d4cbd7022093ac38a568db2dd78363b00908 \ + --hash=sha256:1d846aea995ad352d4bdcc847535bd56e0fd88d36829d2c90be880ef1ee4668a \ + --hash=sha256:1ef61f5dd14c300786318482456481463b9d6b91ebe5ef12f405afbba77ed0be \ + --hash=sha256:297e388da6e248c98bc4a02e018966af0c5f92dfacf5a5ca22fa01cb3179bca0 \ + --hash=sha256:298478fe4f77a4408895605f3482b6cc6222c018b2ce565c2b6b9c354ac3229b \ + --hash=sha256:29dbdc4207642ea6aad70fbde1a9338753d33fb23ed6956e706936706f52dd80 \ + --hash=sha256:2db98790afc70118bd0255c2eeb465e9767ecf1f3c25f9a1abb8ffc8cfd1fe0a \ + --hash=sha256:32cda9e3d601a52baccb2856b8ea1fc213c90b340c542dcef77140dfa3278a9e \ + --hash=sha256:37fb69d905be665f68f28a8bba3c6d3223c8efe1edf14cc4cfa06c241f8c81d9 \ + --hash=sha256:416d3a5d0e8cfe4f27f574362435bc9bae57f679a7158e0096ad2beb427b8696 \ + --hash=sha256:43efea75eb06b95d1631cb784aa40156177bf9dd5b4b03ff38979e048258bc6b \ + --hash=sha256:4b35b21b819ac1dbd1233317adeecd63495f6babf21b7b2512d244ff6c6ce309 \ + --hash=sha256:4d9667937cfa347525b319ae34375c37b9ee6b525440f3ef48542fcf66f2731e \ + --hash=sha256:5161eef006d335e46895297f642341111945e2c1c899eb406882a6c61a4357ab \ + --hash=sha256:543f3dc61c18dafb755773efc89aae60d06b6596a63914107f75459cf984164d \ + --hash=sha256:551d3fd6e9dc15e4c1eb6fc4ba2b39c0c7933fa113b220057a34f4bb3268a060 \ + --hash=sha256:59291fb29317122398786c2d44427bbd1a6d7ff54017075b22be9d21aa59bd8d \ + --hash=sha256:5b001114dd152cfd6b23befeb28d7aee43553e2402c9f159807bf55f33af8a8d \ + --hash=sha256:5b4815f2e65b30f5fbae9dfffa8636d992d49705723fe86a3661806e069352d4 \ + --hash=sha256:5dc6761a6efc781e6a1544206f22c80c3af4c8cf461206d46a1e6006e4429ff3 \ + --hash=sha256:5e84b6cc6a4a3d76c153a6b19270b3526a5a8ed6b09501d3af891daa2a9de7d6 \ + --hash=sha256:6209bb41dc692ddfee4942517c19ee81b86c864b626dbfca272ec0f7cff5d9fb \ + --hash=sha256:673655af3eadf4df6b5457033f086e90299fdd7a47983a13827acf7459c15d94 \ + --hash=sha256:6c762a5b0997f5659a5ef2266abc1d8851ad7749ad9a6a5506eb23d314e4f46b \ + --hash=sha256:7086cc1d5eebb91ad24ded9f58bec6c688e9f0ed7eb3dbbf1e4800280a896496 \ + --hash=sha256:73664fe514b34c8f02452ffb73b7a92c6774e39a647087f83d67f010eb9a0cf0 \ + --hash=sha256:76a911dfe51a36041f2e756b00f96ed84677cdeb75d25c767f296c1c1eda1319 \ + --hash=sha256:780c072c2e11c9b2c7ca37f9a2ee8ba66f44367ac3e5c7832afcfe5104fd6d1b \ + --hash=sha256:7928ecbf1ece13956b95d9cbcfc77137652b02763ba384d9ab508099a2eca856 \ + --hash=sha256:7970285ab628a3779aecc35823296a7869f889b8329c16ad5a71e4901a3dc4ef \ + --hash=sha256:7a8d4bade9952ea9a77d0c3e49cbd8b2890a399422258a77f357b9cc9be8d680 \ + --hash=sha256:7c1ee6f42250df403c5f103cbd2768a28fe1a0ea1f0f03fe151c8741e1469c8b \ + --hash=sha256:7dfecdbad5c301d7b5bde160150b4db4c659cee2b69589705b6f8a0c509d9f42 \ + --hash=sha256:812f7342b0eee081eaec84d91423d1b4650bb9828eb53d8511bcef8ce5aecf1e \ + --hash=sha256:866b6942a92f56300012f5fbac71f2d610312ee65e22f1aa2609e491284e5597 \ + --hash=sha256:86dcb5a1eb778d8b25659d5e4341269e8590ad6b4e8b44d9f4b07f8d136c414a \ + --hash=sha256:87dd88ded2e6d74d31e1e0a99a726a6765cda32d00ba72dc37f0651f306daaa8 \ + --hash=sha256:8bc1a764ed8c957a2e9cacf97c8b2b053b70307cf2996aafd70e91a082e70df3 \ + --hash=sha256:8d4d5063501b6dd4024b8ac2f04962d661222d120381272deea52e3fc52d3736 \ + --hash=sha256:8f0aef4ef59694b12cadee839e2ba6afeab89c0f39a3adc02ed51d109117b8da \ + --hash=sha256:930044bb7679ab003b14023138b50181899da3f25de50e9dbee23b61b4de2126 \ + --hash=sha256:950be4d8ba92aca4b2bb0741285a46bfae3ca699ef913ec8416c1b78eadd64cd \ + --hash=sha256:961a7293b2457b405967af9c77dcaa43cc1a8cd50d23c532e62d48ab6cdd56f5 \ + --hash=sha256:9b885f89040bb8c4a1573566bbb2f44f5c505ef6e74cec7ab9068c900047f04b \ + --hash=sha256:9f4727572e2918acaa9077c919cbbeb73bd2b3ebcfe033b72f858fc9fbef0026 \ + --hash=sha256:a02364621fe369e06200d4a16558e056fe2805d3468350df3aef21e00d26214b \ + --hash=sha256:a985e028fc183bf12a77a8bbf36318db4238a3ded7fa9df1b9a133f1cb79f8fc \ + --hash=sha256:ac1452d2fbe4978c2eec89fb5a23b8387aba707ac72810d9490118817d9c0b46 \ + --hash=sha256:b15e02e9bb4c21e39876698abf233c8c579127986f8207200bc8a8f6bb27acf2 \ + --hash=sha256:b2724fdb354a868ddf9a880cb84d102da914e99119211ef7ecbdc613b8c96b3c \ + --hash=sha256:bbc527b519bd3aa9d7f429d152fea69f9ad37c95f0b02aebddff592688998abe \ + --hash=sha256:bcd5e41a859bf2e84fdc42f4edb7d9aba0a13d29a2abadccafad99de3feff984 \ + --hash=sha256:bd2880a07482090a3bcb01f4265f1936a903d70bc740bfcb1fd4e8a2ffe5cf5a \ + --hash=sha256:bee197b30783295d2eb680b311af15a20a8b24024a19c3a26431ff83eb8d1f70 \ + --hash=sha256:bf2342ac639c4cf38799a44950bbc2dfcb685f052b9e262f446482afaf4bffca \ + --hash=sha256:c76e5786951e72ed3686e122d14c5d7012f16c8303a674d18cdcd6d89557fc5b \ + --hash=sha256:cbed61494057c0f83b83eb3a310f0bf774b09513307c434d4366ed64f4128a91 \ + --hash=sha256:cfdd747216947628af7b259d274771d84db2268ca062dd5faf373639d00113a3 \ + --hash=sha256:d7480af14364494365e89d6fddc510a13e5a2c3584cb19ef65415ca57252fb84 \ + --hash=sha256:dbc6ae66518ab3c5847659e9988c3b60dc94ffb48ef9168656e0019a93dbf8a1 \ + --hash=sha256:dc3e2db6ba09ffd7d02ae9141cfa0ae23393ee7687248d46a7507b75d610f4f5 \ + --hash=sha256:dfe91cb65544a1321e631e696759491ae04a2ea11d36715eca01ce07284738be \ + --hash=sha256:e4d49b85c4348ea0b31ea63bc75a9f3857869174e2bf17e7aba02945cd218e6f \ + --hash=sha256:e4db64794ccdf6cb83a59d73405f63adbe2a1887012e308828596100a0b2f6cc \ + --hash=sha256:e553cad5179a66ba15bb18b353a19020e73a7921296a7979c4a2b7f6a5cd57f9 \ + --hash=sha256:e88d5e6ad0d026fba7bdab8c3f225a69f063f116462c49892b0149e21b6c0a0e \ + --hash=sha256:ecd85a8d3e79cd7158dec1c9e5808e821feea088e2f69a974db5edf84dc53141 \ + --hash=sha256:f5b92f4d70791b4a67157321c4e8225d60b119c5cc9aee8ecf153aace4aad4ef \ + --hash=sha256:f5f0c3e969c8f12dd2bb7e0b15d5c468b51e5017e01e2e867335c81903046a22 \ + --hash=sha256:f7baece4ce06bade126fb84b8af1c33439a76d8a6fd818970215e0560ca28c27 \ + --hash=sha256:ff25afb18123cea58a591ea0244b92eb1e61a1fd497bf6d6384f09bc3262ec3e \ + --hash=sha256:ff337c552345e95702c5fde3158acb0625111017d0e5f24bf3acdb9cc16b90d1 # via # -r src/backend/requirements.in # django-stdimage @@ -1101,30 +1162,30 @@ pillow==10.3.0 \ # python-barcode # qrcode # weasyprint -pint==0.21 \ - --hash=sha256:3e98bdf01f4dcf840cc0207c0b6f7510d4e0c6288efc1bf470626e875c831172 \ - --hash=sha256:998b695e84a34d11702da4a8b9457a39bb5c7ab5ec68db90e948e30878e421f1 +pint==0.24.3 \ + --hash=sha256:d54771093e8b94c4e0a35ac638c2444ddf3ef685652bab7675ffecfa0c5c5cdf \ + --hash=sha256:d98667e46fd03a1b94694fbfa104ec30858684d8ab26952e2a348b48059089bb # via -r src/backend/requirements.in -pip-licenses==4.4.0 \ - --hash=sha256:996817118375445243a34faafe23c06f6b2d250247c4046571b5a6722d45be69 \ - --hash=sha256:dbad2ac5a25f574cabe2716f2f031a0c5fa359bed9b3ef615301f4e546893b46 +pip-licenses==5.0.0 \ + --hash=sha256:0633a1f9aab58e5a6216931b0e1d5cdded8bcc2709ff563674eb0e2ff9e77e8e \ + --hash=sha256:82c83666753efb86d1af1c405c8ab273413eb10d6689c218df2f09acf40e477d # via -r src/backend/requirements.in -prettytable==3.10.0 \ - --hash=sha256:6536efaf0757fdaa7d22e78b3aac3b69ea1b7200538c2c6995d649365bddab92 \ - --hash=sha256:9665594d137fb08a1117518c25551e0ede1687197cf353a4fdc78d27e1073568 +prettytable==3.11.0 \ + --hash=sha256:7e23ca1e68bbfd06ba8de98bf553bf3493264c96d5e8a615c0471025deeba722 \ + --hash=sha256:aa17083feb6c71da11a68b2c213b04675c4af4ce9c541762632ca3f2cb3546dd # via pip-licenses -protobuf==4.25.3 \ - --hash=sha256:19b270aeaa0099f16d3ca02628546b8baefe2955bbe23224aaf856134eccf1e4 \ - --hash=sha256:209ba4cc916bab46f64e56b85b090607a676f66b473e6b762e6f1d9d591eb2e8 \ - --hash=sha256:25b5d0b42fd000320bd7830b349e3b696435f3b329810427a6bcce6a5492cc5c \ - --hash=sha256:7c8daa26095f82482307bc717364e7c13f4f1c99659be82890dcfc215194554d \ - --hash=sha256:c053062984e61144385022e53678fbded7aea14ebb3e0305ae3592fb219ccfa4 \ - --hash=sha256:d4198877797a83cbfe9bffa3803602bbe1625dc30d8a097365dbc762e5790faa \ - --hash=sha256:e3c97a1555fd6388f857770ff8b9703083de6bf1f9274a002a332d65fbb56c8c \ - --hash=sha256:e7cb0ae90dd83727f0c0718634ed56837bfeeee29a5f82a7514c03ee1364c019 \ - --hash=sha256:f0700d54bcf45424477e46a9f0944155b46fb0639d69728739c0e47bab83f2b9 \ - --hash=sha256:f1279ab38ecbfae7e456a108c5c0681e4956d5b1090027c1de0f934dfdb4b35c \ - --hash=sha256:f4f118245c4a087776e0a8408be33cf09f6c547442c00395fbfb116fac2f8ac2 +protobuf==4.25.5 \ + --hash=sha256:0aebecb809cae990f8129ada5ca273d9d670b76d9bfc9b1809f0a9c02b7dbf41 \ + --hash=sha256:4be0571adcbe712b282a330c6e89eae24281344429ae95c6d85e79e84780f5ea \ + --hash=sha256:5e61fd921603f58d2f5acb2806a929b4675f8874ff5f330b7d6f7e2e784bbcd8 \ + --hash=sha256:7a183f592dc80aa7c8da7ad9e55091c4ffc9497b3054452d629bb85fa27c2a45 \ + --hash=sha256:7f8249476b4a9473645db7f8ab42b02fe1488cbe5fb72fddd445e0665afd8584 \ + --hash=sha256:919ad92d9b0310070f8356c24b855c98df2b8bd207ebc1c0c6fcc9ab1e007f3d \ + --hash=sha256:98d8d8aa50de6a2747efd9cceba361c9034050ecce3e09136f90de37ddba66e1 \ + --hash=sha256:abe32aad8561aa7cc94fc7ba4fdef646e576983edb94a73381b03c53728a626f \ + --hash=sha256:b0234dd5a03049e4ddd94b93400b67803c823cfc405689688f59b34e0742381a \ + --hash=sha256:b2fde3d805354df675ea4c7c6338c1aecd254dfc9925e88c6d31a2bcb97eb173 \ + --hash=sha256:fe14e16c22be926d3abfcb500e60cab068baf10b542b8c858fa27e098123e331 # via # googleapis-common-protos # opentelemetry-proto @@ -1139,19 +1200,17 @@ pycparser==2.22 \ pydyf==0.10.0 \ --hash=sha256:357194593efaf61d7b48ab97c3d59722114934967c3df3d7878ca6dd25b04c30 \ --hash=sha256:ef76b6c0976a091a9e15827fb5800e5e37e7cd1a3ca4d4bd19d10a14ea8c0ae3 - # via weasyprint -pyjwt==2.8.0 \ - --hash=sha256:57e28d156e3d5c10088e0c68abb90bfac3df82b40a71bd0daa20c65ccd5c23de \ - --hash=sha256:59127c392cc44c2da5bb3192169a91f429924e17aff6534d70fdc02ab3e04320 + # via + # -r src/backend/requirements.in + # weasyprint +pyjwt==2.9.0 \ + --hash=sha256:3b02fb0f44517787776cf48f2ae25d8e14f300e6d7545a4315cee571a415e850 \ + --hash=sha256:7e1e5b56cc735432a7369cbfa0efe50fa113ebecdc04ae6922deba8b84582d0c # via djangorestframework-simplejwt -pyphen==0.15.0 \ - --hash=sha256:999b430916ab42ae9912537cd95c074e0c6691e89a9d05999f9b610a68f34858 \ - --hash=sha256:a430623decac53dc3691241253263cba36b9dd7a44ffd2680b706af368cda2f2 +pyphen==0.16.0 \ + --hash=sha256:2c006b3ddf072c9571ab97606d9ab3c26a92eaced4c0d59fd1d26988f308f413 \ + --hash=sha256:b4a4c6d7d5654b698b5fc68123148bb799b3debe0175d1d5dc3edfe93066fc4c # via weasyprint -pypng==0.20220715.0 \ - --hash=sha256:4a43e969b8f5aaafb2a415536c1a8ec7e341cd6a3f957fd5b5f32a4cfeed902c \ - --hash=sha256:739c433ba96f078315de54c0db975aee537cbc3e1d0ae4ed9aab0ca1e427e2c1 - # via qrcode python-barcode[images]==0.15.1 \ --hash=sha256:057636fba37369c22852410c8535b36adfbeb965ddfd4e5b6924455d692e0886 \ --hash=sha256:3b1825fbdb11e597466dff4286b4ea9b1e86a57717b59e563ae679726fc854de @@ -1179,173 +1238,169 @@ python3-saml==1.16.0 \ --hash=sha256:97c9669aecabc283c6e5fb4eb264f446b6e006f5267d01c9734f9d8bffdac133 \ --hash=sha256:c49097863c278ff669a337a96c46dc1f25d16307b4bb2679d2d1733cc4f5176a # via django-allauth -pytz==2024.1 \ - --hash=sha256:2a29735ea9c18baf14b448846bde5a48030ed267578472d8955cd0e7443a9812 \ - --hash=sha256:328171f4e3623139da4983451950b28e95ac706e13f3f2630a879749e7a8b319 +pytz==2024.2 \ + --hash=sha256:2aa355083c50a0f93fa581709deac0c9ad65cca8a9e9beac660adcbd493c798a \ + --hash=sha256:31c7c1817eb7fae7ca4b8c7ee50c72f93aa2dd863de768e1ef4245d426aa0725 # via # django-dbbackup # djangorestframework - # icalendar -pyyaml==6.0.1 \ - --hash=sha256:04ac92ad1925b2cff1db0cfebffb6ffc43457495c9b3c39d3fcae417d7125dc5 \ - --hash=sha256:062582fca9fabdd2c8b54a3ef1c978d786e0f6b3a1510e0ac93ef59e0ddae2bc \ - --hash=sha256:0d3304d8c0adc42be59c5f8a4d9e3d7379e6955ad754aa9d6ab7a398b59dd1df \ - --hash=sha256:1635fd110e8d85d55237ab316b5b011de701ea0f29d07611174a1b42f1444741 \ - --hash=sha256:184c5108a2aca3c5b3d3bf9395d50893a7ab82a38004c8f61c258d4428e80206 \ - --hash=sha256:18aeb1bf9a78867dc38b259769503436b7c72f7a1f1f4c93ff9a17de54319b27 \ - --hash=sha256:1d4c7e777c441b20e32f52bd377e0c409713e8bb1386e1099c2415f26e479595 \ - --hash=sha256:1e2722cc9fbb45d9b87631ac70924c11d3a401b2d7f410cc0e3bbf249f2dca62 \ - --hash=sha256:1fe35611261b29bd1de0070f0b2f47cb6ff71fa6595c077e42bd0c419fa27b98 \ - --hash=sha256:28c119d996beec18c05208a8bd78cbe4007878c6dd15091efb73a30e90539696 \ - --hash=sha256:326c013efe8048858a6d312ddd31d56e468118ad4cdeda36c719bf5bb6192290 \ - --hash=sha256:40df9b996c2b73138957fe23a16a4f0ba614f4c0efce1e9406a184b6d07fa3a9 \ - --hash=sha256:42f8152b8dbc4fe7d96729ec2b99c7097d656dc1213a3229ca5383f973a5ed6d \ - --hash=sha256:49a183be227561de579b4a36efbb21b3eab9651dd81b1858589f796549873dd6 \ - --hash=sha256:4fb147e7a67ef577a588a0e2c17b6db51dda102c71de36f8549b6816a96e1867 \ - --hash=sha256:50550eb667afee136e9a77d6dc71ae76a44df8b3e51e41b77f6de2932bfe0f47 \ - --hash=sha256:510c9deebc5c0225e8c96813043e62b680ba2f9c50a08d3724c7f28a747d1486 \ - --hash=sha256:5773183b6446b2c99bb77e77595dd486303b4faab2b086e7b17bc6bef28865f6 \ - --hash=sha256:596106435fa6ad000c2991a98fa58eeb8656ef2325d7e158344fb33864ed87e3 \ - --hash=sha256:6965a7bc3cf88e5a1c3bd2e0b5c22f8d677dc88a455344035f03399034eb3007 \ - --hash=sha256:69b023b2b4daa7548bcfbd4aa3da05b3a74b772db9e23b982788168117739938 \ - --hash=sha256:6c22bec3fbe2524cde73d7ada88f6566758a8f7227bfbf93a408a9d86bcc12a0 \ - --hash=sha256:704219a11b772aea0d8ecd7058d0082713c3562b4e271b849ad7dc4a5c90c13c \ - --hash=sha256:7e07cbde391ba96ab58e532ff4803f79c4129397514e1413a7dc761ccd755735 \ - --hash=sha256:81e0b275a9ecc9c0c0c07b4b90ba548307583c125f54d5b6946cfee6360c733d \ - --hash=sha256:855fb52b0dc35af121542a76b9a84f8d1cd886ea97c84703eaa6d88e37a2ad28 \ - --hash=sha256:8d4e9c88387b0f5c7d5f281e55304de64cf7f9c0021a3525bd3b1c542da3b0e4 \ - --hash=sha256:9046c58c4395dff28dd494285c82ba00b546adfc7ef001486fbf0324bc174fba \ - --hash=sha256:9eb6caa9a297fc2c2fb8862bc5370d0303ddba53ba97e71f08023b6cd73d16a8 \ - --hash=sha256:a08c6f0fe150303c1c6b71ebcd7213c2858041a7e01975da3a99aed1e7a378ef \ - --hash=sha256:a0cd17c15d3bb3fa06978b4e8958dcdc6e0174ccea823003a106c7d4d7899ac5 \ - --hash=sha256:afd7e57eddb1a54f0f1a974bc4391af8bcce0b444685d936840f125cf046d5bd \ - --hash=sha256:b1275ad35a5d18c62a7220633c913e1b42d44b46ee12554e5fd39c70a243d6a3 \ - --hash=sha256:b786eecbdf8499b9ca1d697215862083bd6d2a99965554781d0d8d1ad31e13a0 \ - --hash=sha256:ba336e390cd8e4d1739f42dfe9bb83a3cc2e80f567d8805e11b46f4a943f5515 \ - --hash=sha256:baa90d3f661d43131ca170712d903e6295d1f7a0f595074f151c0aed377c9b9c \ - --hash=sha256:bc1bf2925a1ecd43da378f4db9e4f799775d6367bdb94671027b73b393a7c42c \ - --hash=sha256:bd4af7373a854424dabd882decdc5579653d7868b8fb26dc7d0e99f823aa5924 \ - --hash=sha256:bf07ee2fef7014951eeb99f56f39c9bb4af143d8aa3c21b1677805985307da34 \ - --hash=sha256:bfdf460b1736c775f2ba9f6a92bca30bc2095067b8a9d77876d1fad6cc3b4a43 \ - --hash=sha256:c8098ddcc2a85b61647b2590f825f3db38891662cfc2fc776415143f599bb859 \ - --hash=sha256:d2b04aac4d386b172d5b9692e2d2da8de7bfb6c387fa4f801fbf6fb2e6ba4673 \ - --hash=sha256:d483d2cdf104e7c9fa60c544d92981f12ad66a457afae824d146093b8c294c54 \ - --hash=sha256:d858aa552c999bc8a8d57426ed01e40bef403cd8ccdd0fc5f6f04a00414cac2a \ - --hash=sha256:e7d73685e87afe9f3b36c799222440d6cf362062f78be1013661b00c5c6f678b \ - --hash=sha256:f003ed9ad21d6a4713f0a9b5a7a0a79e08dd0f221aff4525a2be4c346ee60aab \ - --hash=sha256:f22ac1c3cac4dbc50079e965eba2c1058622631e526bd9afd45fedd49ba781fa \ - --hash=sha256:faca3bdcf85b2fc05d06ff3fbc1f83e1391b3e724afa3feba7d13eeab355484c \ - --hash=sha256:fca0e3a251908a499833aa292323f32437106001d436eca0e6e7833256674585 \ - --hash=sha256:fd1592b3fdf65fff2ad0004b5e363300ef59ced41c2e6b3a99d4089fa8c5435d \ - --hash=sha256:fd66fc5d0da6d9815ba2cebeb4205f95818ff4b79c3ebe268e75d961704af52f +pyyaml==6.0.2 \ + --hash=sha256:01179a4a8559ab5de078078f37e5c1a30d76bb88519906844fd7bdea1b7729ff \ + --hash=sha256:0833f8694549e586547b576dcfaba4a6b55b9e96098b36cdc7ebefe667dfed48 \ + --hash=sha256:0a9a2848a5b7feac301353437eb7d5957887edbf81d56e903999a75a3d743086 \ + --hash=sha256:0b69e4ce7a131fe56b7e4d770c67429700908fc0752af059838b1cfb41960e4e \ + --hash=sha256:0ffe8360bab4910ef1b9e87fb812d8bc0a308b0d0eef8c8f44e0254ab3b07133 \ + --hash=sha256:11d8f3dd2b9c1207dcaf2ee0bbbfd5991f571186ec9cc78427ba5bd32afae4b5 \ + --hash=sha256:17e311b6c678207928d649faa7cb0d7b4c26a0ba73d41e99c4fff6b6c3276484 \ + --hash=sha256:1e2120ef853f59c7419231f3bf4e7021f1b936f6ebd222406c3b60212205d2ee \ + --hash=sha256:1f71ea527786de97d1a0cc0eacd1defc0985dcf6b3f17bb77dcfc8c34bec4dc5 \ + --hash=sha256:23502f431948090f597378482b4812b0caae32c22213aecf3b55325e049a6c68 \ + --hash=sha256:24471b829b3bf607e04e88d79542a9d48bb037c2267d7927a874e6c205ca7e9a \ + --hash=sha256:29717114e51c84ddfba879543fb232a6ed60086602313ca38cce623c1d62cfbf \ + --hash=sha256:2e99c6826ffa974fe6e27cdb5ed0021786b03fc98e5ee3c5bfe1fd5015f42b99 \ + --hash=sha256:39693e1f8320ae4f43943590b49779ffb98acb81f788220ea932a6b6c51004d8 \ + --hash=sha256:3ad2a3decf9aaba3d29c8f537ac4b243e36bef957511b4766cb0057d32b0be85 \ + --hash=sha256:3b1fdb9dc17f5a7677423d508ab4f243a726dea51fa5e70992e59a7411c89d19 \ + --hash=sha256:41e4e3953a79407c794916fa277a82531dd93aad34e29c2a514c2c0c5fe971cc \ + --hash=sha256:43fa96a3ca0d6b1812e01ced1044a003533c47f6ee8aca31724f78e93ccc089a \ + --hash=sha256:50187695423ffe49e2deacb8cd10510bc361faac997de9efef88badc3bb9e2d1 \ + --hash=sha256:5ac9328ec4831237bec75defaf839f7d4564be1e6b25ac710bd1a96321cc8317 \ + --hash=sha256:5d225db5a45f21e78dd9358e58a98702a0302f2659a3c6cd320564b75b86f47c \ + --hash=sha256:6395c297d42274772abc367baaa79683958044e5d3835486c16da75d2a694631 \ + --hash=sha256:688ba32a1cffef67fd2e9398a2efebaea461578b0923624778664cc1c914db5d \ + --hash=sha256:68ccc6023a3400877818152ad9a1033e3db8625d899c72eacb5a668902e4d652 \ + --hash=sha256:70b189594dbe54f75ab3a1acec5f1e3faa7e8cf2f1e08d9b561cb41b845f69d5 \ + --hash=sha256:797b4f722ffa07cc8d62053e4cff1486fa6dc094105d13fea7b1de7d8bf71c9e \ + --hash=sha256:7c36280e6fb8385e520936c3cb3b8042851904eba0e58d277dca80a5cfed590b \ + --hash=sha256:7e7401d0de89a9a855c839bc697c079a4af81cf878373abd7dc625847d25cbd8 \ + --hash=sha256:80bab7bfc629882493af4aa31a4cfa43a4c57c83813253626916b8c7ada83476 \ + --hash=sha256:82d09873e40955485746739bcb8b4586983670466c23382c19cffecbf1fd8706 \ + --hash=sha256:8388ee1976c416731879ac16da0aff3f63b286ffdd57cdeb95f3f2e085687563 \ + --hash=sha256:8824b5a04a04a047e72eea5cec3bc266db09e35de6bdfe34c9436ac5ee27d237 \ + --hash=sha256:8b9c7197f7cb2738065c481a0461e50ad02f18c78cd75775628afb4d7137fb3b \ + --hash=sha256:9056c1ecd25795207ad294bcf39f2db3d845767be0ea6e6a34d856f006006083 \ + --hash=sha256:936d68689298c36b53b29f23c6dbb74de12b4ac12ca6cfe0e047bedceea56180 \ + --hash=sha256:9b22676e8097e9e22e36d6b7bda33190d0d400f345f23d4065d48f4ca7ae0425 \ + --hash=sha256:a4d3091415f010369ae4ed1fc6b79def9416358877534caf6a0fdd2146c87a3e \ + --hash=sha256:a8786accb172bd8afb8be14490a16625cbc387036876ab6ba70912730faf8e1f \ + --hash=sha256:a9f8c2e67970f13b16084e04f134610fd1d374bf477b17ec1599185cf611d725 \ + --hash=sha256:bc2fa7c6b47d6bc618dd7fb02ef6fdedb1090ec036abab80d4681424b84c1183 \ + --hash=sha256:c70c95198c015b85feafc136515252a261a84561b7b1d51e3384e0655ddf25ab \ + --hash=sha256:cc1c1159b3d456576af7a3e4d1ba7e6924cb39de8f67111c735f6fc832082774 \ + --hash=sha256:ce826d6ef20b1bc864f0a68340c8b3287705cae2f8b4b1d932177dcc76721725 \ + --hash=sha256:d584d9ec91ad65861cc08d42e834324ef890a082e591037abe114850ff7bbc3e \ + --hash=sha256:d7fded462629cfa4b685c5416b949ebad6cec74af5e2d42905d41e257e0869f5 \ + --hash=sha256:d84a1718ee396f54f3a086ea0a66d8e552b2ab2017ef8b420e92edbc841c352d \ + --hash=sha256:d8e03406cac8513435335dbab54c0d385e4a49e4945d2909a581c83647ca0290 \ + --hash=sha256:e10ce637b18caea04431ce14fabcf5c64a1c61ec9c56b071a4b7ca131ca52d44 \ + --hash=sha256:ec031d5d2feb36d1d1a24380e4db6d43695f3748343d99434e6f5f9156aaa2ed \ + --hash=sha256:ef6107725bd54b262d6dedcc2af448a266975032bc85ef0172c5f059da6325b4 \ + --hash=sha256:efdca5630322a10774e8e98e1af481aad470dd62c3170801852d752aa7a783ba \ + --hash=sha256:f753120cb8181e736c57ef7636e83f31b9c0d1722c516f7e86cf15b7aa57ff12 \ + --hash=sha256:ff3824dc5261f50c9b0dfb3be22b4567a6f938ccce4587b38952d85fd9e9afe4 # via # -r src/backend/requirements.in # drf-spectacular # tablib -qrcode[pil]==7.4.2 \ - --hash=sha256:581dca7a029bcb2deef5d01068e39093e80ef00b4a61098a2182eac59d01643a \ - --hash=sha256:9dd969454827e127dbd93696b20747239e6d540e082937c90f14ac95b30f5845 +qrcode[pil]==8.0 \ + --hash=sha256:025ce2b150f7fe4296d116ee9bad455a6643ab4f6e7dce541613a4758cbce347 \ + --hash=sha256:9fc05f03305ad27a709eb742cf3097fa19e6f6f93bb9e2f039c0979190f6f1b1 # via # -r src/backend/requirements.in # django-allauth-2fa -rapidfuzz==3.9.3 \ - --hash=sha256:05ee0696ebf0dfe8f7c17f364d70617616afc7dafe366532730ca34056065b8a \ - --hash=sha256:0c34139df09a61b1b557ab65782ada971b4a3bce7081d1b2bee45b0a52231adb \ - --hash=sha256:0d055da0e801c71dd74ba81d72d41b2fa32afa182b9fea6b4b199d2ce937450d \ - --hash=sha256:119c010e20e561249b99ca2627f769fdc8305b07193f63dbc07bca0a6c27e892 \ - --hash=sha256:143caf7247449055ecc3c1e874b69e42f403dfc049fc2f3d5f70e1daf21c1318 \ - --hash=sha256:14c9f268ade4c88cf77ab007ad0fdf63699af071ee69378de89fff7aa3cae134 \ - --hash=sha256:153f23c03d4917f6a1fc2fb56d279cc6537d1929237ff08ee7429d0e40464a18 \ - --hash=sha256:15e4158ac4b3fb58108072ec35b8a69165f651ba1c8f43559a36d518dbf9fb3f \ - --hash=sha256:17ff7f7eecdb169f9236e3b872c96dbbaf116f7787f4d490abd34b0116e3e9c8 \ - --hash=sha256:21047f55d674614eb4b0ab34e35c3dc66f36403b9fbfae645199c4a19d4ed447 \ - --hash=sha256:256e07d3465173b2a91c35715a2277b1ee3ae0b9bbab4e519df6af78570741d0 \ - --hash=sha256:282d55700a1a3d3a7980746eb2fcd48c9bbc1572ebe0840d0340d548a54d01fe \ - --hash=sha256:2bc8391749e5022cd9e514ede5316f86e332ffd3cfceeabdc0b17b7e45198a8c \ - --hash=sha256:2c1d3ef3878f871abe6826e386c3d61b5292ef5f7946fe646f4206b85836b5da \ - --hash=sha256:35b7286f177e4d8ba1e48b03612f928a3c4bdac78e5651379cec59f95d8651e6 \ - --hash=sha256:3617d1aa7716c57d120b6adc8f7c989f2d65bc2b0cbd5f9288f1fc7bf469da11 \ - --hash=sha256:378d1744828e27490a823fc6fe6ebfb98c15228d54826bf4e49e4b76eb5f5579 \ - --hash=sha256:3bb6546e7b6bed1aefbe24f68a5fb9b891cc5aef61bca6c1a7b1054b7f0359bb \ - --hash=sha256:3d8a57261ef7996d5ced7c8cba9189ada3fbeffd1815f70f635e4558d93766cb \ - --hash=sha256:3e6d27dad8c990218b8cd4a5c99cbc8834f82bb46ab965a7265d5aa69fc7ced7 \ - --hash=sha256:41a81a9f311dc83d22661f9b1a1de983b201322df0c4554042ffffd0f2040c37 \ - --hash=sha256:505d99131afd21529293a9a7b91dfc661b7e889680b95534756134dc1cc2cd86 \ - --hash=sha256:51fa1ba84653ab480a2e2044e2277bd7f0123d6693051729755addc0d015c44f \ - --hash=sha256:5276df395bd8497397197fca2b5c85f052d2e6a66ffc3eb0544dd9664d661f95 \ - --hash=sha256:53c7f27cdf899e94712972237bda48cfd427646aa6f5d939bf45d084780e4c16 \ - --hash=sha256:53e06e4b81f552da04940aa41fc556ba39dee5513d1861144300c36c33265b76 \ - --hash=sha256:5410dc848c947a603792f4f51b904a3331cf1dc60621586bfbe7a6de72da1091 \ - --hash=sha256:57e7c5bf7b61c7320cfa5dde1e60e678d954ede9bb7da8e763959b2138391401 \ - --hash=sha256:58c6a4936190c558d5626b79fc9e16497e5df7098589a7e80d8bff68148ff096 \ - --hash=sha256:5b422c0a6fe139d5447a0766268e68e6a2a8c2611519f894b1f31f0a392b9167 \ - --hash=sha256:5c7ca5b6050f18fdcacdada2dc5fb7619ff998cd9aba82aed2414eee74ebe6cd \ - --hash=sha256:5d0abbacdb06e27ff803d7ae0bd0624020096802758068ebdcab9bd49cf53115 \ - --hash=sha256:5d0cb272d43e6d3c0dedefdcd9d00007471f77b52d2787a4695e9dd319bb39d2 \ - --hash=sha256:5d6a210347d6e71234af5c76d55eeb0348b026c9bb98fe7c1cca89bac50fb734 \ - --hash=sha256:5e2b827258beefbe5d3f958243caa5a44cf46187eff0c20e0b2ab62d1550327a \ - --hash=sha256:5e33f779391caedcba2ba3089fb6e8e557feab540e9149a5c3f7fea7a3a7df37 \ - --hash=sha256:604e0502a39cf8e67fa9ad239394dddad4cdef6d7008fdb037553817d420e108 \ - --hash=sha256:6073a46f61479a89802e3f04655267caa6c14eb8ac9d81a635a13805f735ebc1 \ - --hash=sha256:6175682a829c6dea4d35ed707f1dadc16513270ef64436568d03b81ccb6bdb74 \ - --hash=sha256:65f45be77ec82da32ce5709a362e236ccf801615cc7163b136d1778cf9e31b14 \ - --hash=sha256:67201c02efc596923ad950519e0b75ceb78d524177ea557134d6567b9ac2c283 \ - --hash=sha256:754b719a4990735f66653c9e9261dcf52fd4d925597e43d6b9069afcae700d21 \ - --hash=sha256:77b5c4f3e72924d7845f0e189c304270066d0f49635cf8a3938e122c437e58de \ - --hash=sha256:790b0b244f3213581d42baa2fed8875f9ee2b2f9b91f94f100ec80d15b140ba9 \ - --hash=sha256:802ca2cc8aa6b8b34c6fdafb9e32540c1ba05fca7ad60b3bbd7ec89ed1797a87 \ - --hash=sha256:8319838fb5b7b5f088d12187d91d152b9386ce3979ed7660daa0ed1bff953791 \ - --hash=sha256:83ea7ca577d76778250421de61fb55a719e45b841deb769351fc2b1740763050 \ - --hash=sha256:858ba57c05afd720db8088a8707079e8d024afe4644001fe0dbd26ef7ca74a65 \ - --hash=sha256:8709918da8a88ad73c9d4dd0ecf24179a4f0ceba0bee21efc6ea21a8b5290349 \ - --hash=sha256:875b581afb29a7213cf9d98cb0f98df862f1020bce9d9b2e6199b60e78a41d14 \ - --hash=sha256:87bb8d84cb41446a808c4b5f746e29d8a53499381ed72f6c4e456fe0f81c80a8 \ - --hash=sha256:8add34061e5cd561c72ed4febb5c15969e7b25bda2bb5102d02afc3abc1f52d0 \ - --hash=sha256:8f917eaadf5388466a95f6a236f678a1588d231e52eda85374077101842e794e \ - --hash=sha256:930b4e6fdb4d914390141a2b99a6f77a52beacf1d06aa4e170cba3a98e24c1bc \ - --hash=sha256:93981895602cf5944d89d317ae3b1b4cc684d175a8ae2a80ce5b65615e72ddd0 \ - --hash=sha256:959a15186d18425d19811bea86a8ffbe19fd48644004d29008e636631420a9b7 \ - --hash=sha256:964c08481aec2fe574f0062e342924db2c6b321391aeb73d68853ed42420fd6d \ - --hash=sha256:a24603dd05fb4e3c09d636b881ce347e5f55f925a6b1b4115527308a323b9f8e \ - --hash=sha256:a39890013f6d5b056cc4bfdedc093e322462ece1027a57ef0c636537bdde7531 \ - --hash=sha256:a4fc7b784cf987dbddc300cef70e09a92ed1bce136f7bb723ea79d7e297fe76d \ - --hash=sha256:a56da3aff97cb56fe85d9ca957d1f55dbac7c27da927a86a2a86d8a7e17f80aa \ - --hash=sha256:a93250bd8fae996350c251e1752f2c03335bb8a0a5b0c7e910a593849121a435 \ - --hash=sha256:a96c5225e840f1587f1bac8fa6f67562b38e095341576e82b728a82021f26d62 \ - --hash=sha256:aca21c0a34adee582775da997a600283e012a608a107398d80a42f9a57ad323d \ - --hash=sha256:acbe4b6f1ccd5b90c29d428e849aa4242e51bb6cab0448d5f3c022eb9a25f7b1 \ - --hash=sha256:ad04a3f5384b82933213bba2459f6424decc2823df40098920856bdee5fd6e88 \ - --hash=sha256:afe7c72d3f917b066257f7ff48562e5d462d865a25fbcabf40fca303a9fa8d35 \ - --hash=sha256:b300708c917ce52f6075bdc6e05b07c51a085733650f14b732c087dc26e0aaad \ - --hash=sha256:b398ea66e8ed50451bce5997c430197d5e4b06ac4aa74602717f792d8d8d06e2 \ - --hash=sha256:b3bd0d9632088c63a241f217742b1cf86e2e8ae573e01354775bd5016d12138c \ - --hash=sha256:b5bc0fdbf419493163c5c9cb147c5fbe95b8e25844a74a8807dcb1a125e630cf \ - --hash=sha256:b770f85eab24034e6ef7df04b2bfd9a45048e24f8a808e903441aa5abde8ecdd \ - --hash=sha256:b777cd910ceecd738adc58593d6ed42e73f60ad04ecdb4a841ae410b51c92e0e \ - --hash=sha256:b80eb7cbe62348c61d3e67e17057cddfd6defab168863028146e07d5a8b24a89 \ - --hash=sha256:b8ab0fa653d9225195a8ff924f992f4249c1e6fa0aea563f685e71b81b9fcccf \ - --hash=sha256:bc1991b4cde6c9d3c0bbcb83d5581dc7621bec8c666c095c65b4277233265a82 \ - --hash=sha256:bdb8c5b8e29238ec80727c2ba3b301efd45aa30c6a7001123a6647b8e6f77ea4 \ - --hash=sha256:c52970f7784518d7c82b07a62a26e345d2de8c2bd8ed4774e13342e4b3ff4200 \ - --hash=sha256:c6e65a301fcd19fbfbee3a514cc0014ff3f3b254b9fd65886e8a9d6957fb7bca \ - --hash=sha256:c8444e921bfc3757c475c4f4d7416a7aa69b2d992d5114fe55af21411187ab0d \ - --hash=sha256:cbe93ba1725a8d47d2b9dca6c1f435174859427fbc054d83de52aea5adc65729 \ - --hash=sha256:cde6b9d9ba5007077ee321ec722fa714ebc0cbd9a32ccf0f4dd3cc3f20952d71 \ - --hash=sha256:d36447d21b05f90282a6f98c5a33771805f9222e5d0441d03eb8824e33e5bbb4 \ - --hash=sha256:d861bf326ee7dabc35c532a40384541578cd1ec1e1b7db9f9ecbba56eb76ca22 \ - --hash=sha256:dc1037507810833646481f5729901a154523f98cbebb1157ba3a821012e16402 \ - --hash=sha256:dd789100fc852cffac1449f82af0da139d36d84fd9faa4f79fc4140a88778343 \ - --hash=sha256:de077c468c225d4c18f7188c47d955a16d65f21aab121cbdd98e3e2011002c37 \ - --hash=sha256:e53ed2e9b32674ce96eed80b3b572db9fd87aae6742941fb8e4705e541d861ce \ - --hash=sha256:e6e4b9380ed4758d0cb578b0d1970c3f32dd9e87119378729a5340cb3169f879 \ - --hash=sha256:efe6e200a75a792d37b960457904c4fce7c928a96ae9e5d21d2bd382fe39066e \ - --hash=sha256:f50fed4a9b0c9825ff37cf0bccafd51ff5792090618f7846a7650f21f85579c9 \ - --hash=sha256:f57e8305c281e8c8bc720515540e0580355100c0a7a541105c6cafc5de71daae \ - --hash=sha256:fd84b7f652a5610733400307dc732f57c4a907080bef9520412e6d9b55bc9adc +rapidfuzz==3.10.0 \ + --hash=sha256:094c26116d55bf9c53abd840d08422f20da78ec4c4723e5024322321caedca48 \ + --hash=sha256:0ec338d5f4ad8d9339a88a08db5c23e7f7a52c2b2a10510c48a0cef1fb3f0ddc \ + --hash=sha256:10fdad800441b9c97d471a937ba7d42625f1b530db05e572f1cb7d401d95c893 \ + --hash=sha256:116c71a81e046ba56551d8ab68067ca7034d94b617545316d460a452c5c3c289 \ + --hash=sha256:1af60988d47534246d9525f77288fdd9de652608a4842815d9018570b959acc6 \ + --hash=sha256:2026651761bf83a0f31495cc0f70840d5c0d54388f41316e3f9cb51bd85e49a5 \ + --hash=sha256:20bd153aacc244e4c907d772c703fea82754c4db14f8aa64d75ff81b7b8ab92d \ + --hash=sha256:26de93e6495078b6af4c4d93a42ca067b16cc0e95699526c82ab7d1025b4d3bf \ + --hash=sha256:288f6f6e7410cacb115fb851f3f18bf0e4231eb3f6cb5bd1cec0e7b25c4d039d \ + --hash=sha256:2db9187f3acf3cd33424ecdbaad75414c298ecd1513470df7bda885dcb68cc15 \ + --hash=sha256:2e9be5d05cd960914024412b5406fb75a82f8562f45912ff86255acbfdbfb78e \ + --hash=sha256:2fe5783676f0afba4a522c80b15e99dbf4e393c149ab610308a8ef1f04c6bcc8 \ + --hash=sha256:3084161fc3e963056232ef8d937449a2943852e07101f5a136c8f3cfa4119217 \ + --hash=sha256:34f213d59219a9c3ca14e94a825f585811a68ac56b4118b4dc388b5b14afc108 \ + --hash=sha256:399b9b79ccfcf50ca3bad7692bc098bb8eade88d7d5e15773b7f866c91156d0c \ + --hash=sha256:43dfc5e733808962a822ff6d9c29f3039a3cfb3620706f5953e17cfe4496724c \ + --hash=sha256:457827ba82261aa2ae6ac06a46d0043ab12ba7216b82d87ae1434ec0f29736d6 \ + --hash=sha256:47aca565a39c9a6067927871973ca827023e8b65ba6c5747f4c228c8d7ddc04f \ + --hash=sha256:4bd1a7676ee2a4c8e2f7f2550bece994f9f89e58afb96088964145a83af7408b \ + --hash=sha256:4dd3d8443970eaa02ab5ae45ce584b061f2799cd9f7e875190e2617440c1f9d4 \ + --hash=sha256:4df75b3ebbb8cfdb9bf8b213b168620b88fd92d0c16a8bc9f9234630b282db59 \ + --hash=sha256:50484d563f8bfa723c74c944b0bb15b9e054db9c889348c8c307abcbee75ab92 \ + --hash=sha256:50e3d0c72ea15391ba9531ead7f2068a67c5b18a6a365fef3127583aaadd1725 \ + --hash=sha256:545fc04f2d592e4350f59deb0818886c1b444ffba3bec535b4fbb97191aaf769 \ + --hash=sha256:56fd15ea8f4c948864fa5ebd9261c67cf7b89a1c517a0caef4df75446a7af18c \ + --hash=sha256:5897242d455461f2c5b82d7397b29341fd11e85bf3608a522177071044784ee8 \ + --hash=sha256:5d350864269d56f51ab81ab750c9259ae5cad3152c0680baef143dcec92206a1 \ + --hash=sha256:5dd6eec15b13329abe66cc241b484002ecb0e17d694491c944a22410a6a9e5e2 \ + --hash=sha256:63e4c175cbce8c3adc22dca5e6154588ae673f6c55374d156f3dac732c88d7de \ + --hash=sha256:69ef5b363afff7150a1fbe788007e307b9802a2eb6ad92ed51ab94e6ad2674c6 \ + --hash=sha256:6b62af27e65bb39276a66533655a2fa3c60a487b03935721c45b7809527979be \ + --hash=sha256:6cd67d3d017296d98ff505529104299f78433e4b8af31b55003d901a62bbebe9 \ + --hash=sha256:718c9bd369288aca5fa929df6dbf66fdbe9768d90940a940c0b5cdc96ade4309 \ + --hash=sha256:76a35e9e19a7c883c422ffa378e9a04bc98cb3b29648c5831596401298ee51e6 \ + --hash=sha256:7947a425d1be3e744707ee58c6cb318b93a56e08f080722dcc0347e0b7a1bb9a \ + --hash=sha256:79e7f98525b60b3c14524e0a4e1fedf7654657b6e02eb25f1be897ab097706f3 \ + --hash=sha256:7c4c82b1689b23b1b5e6a603164ed2be41b6f6de292a698b98ba2381e889eb9d \ + --hash=sha256:7dc87073ba3a40dd65591a2100aa71602107443bf10770579ff9c8a3242edb94 \ + --hash=sha256:7f3a6aa6e70fc27e4ff5c479f13cc9fc26a56347610f5f8b50396a0d344c5f55 \ + --hash=sha256:803f255f10d63420979b1909ef976e7d30dec42025c9b067fc1d2040cc365a7e \ + --hash=sha256:884453860de029380dded8f3c1918af2d8eb5adf8010261645c7e5c88c2b5428 \ + --hash=sha256:886882367dbc985f5736356105798f2ae6e794e671fc605476cbe2e73838a9bb \ + --hash=sha256:8a6405d34c394c65e4f73a1d300c001f304f08e529d2ed6413b46ee3037956eb \ + --hash=sha256:916a6abf3632e592b937c3d04c00a6efadd8fd30539cdcd4e6e4d92be7ca5d90 \ + --hash=sha256:9178277f72d144a6c7704d7ae7fa15b7b86f0f0796f0e1049c7b4ef748a662ef \ + --hash=sha256:949b5e9eeaa4ecb4c7e9c2a4689dddce60929dd1ff9c76a889cdbabe8bbf2171 \ + --hash=sha256:94c48b4a2a4b1d22246f48e2b11cae01ec7d23f0c9123f8bb822839ad79d0a88 \ + --hash=sha256:96ad46f5f56f70fab2be9e5f3165a21be58d633b90bf6e67fc52a856695e4bcf \ + --hash=sha256:98f6ebe28831a482981ecfeedc8237047878424ad0c1add2c7f366ba44a20452 \ + --hash=sha256:9eac95b4278bd53115903d89118a2c908398ee8bdfd977ae844f1bd2b02b917c \ + --hash=sha256:a425a0a868cf8e9c6e93e1cda4b758cdfd314bb9a4fc916c5742c934e3613480 \ + --hash=sha256:a68e3724b7dab761c01816aaa64b0903734d999d5589daf97c14ef5cc0629a8e \ + --hash=sha256:a86d5d1d75e61df060c1e56596b6b0a4422a929dff19cc3dbfd5eee762c86b61 \ + --hash=sha256:a9b8f51e08c3f983d857c3889930af9ddecc768453822076683664772d87e374 \ + --hash=sha256:aadce42147fc09dcef1afa892485311e824c050352e1aa6e47f56b9b27af4cf0 \ + --hash=sha256:ae7966f205b5a7fde93b44ca8fed37c1c8539328d7f179b1197de34eceaceb5f \ + --hash=sha256:b0445fa9880ead81f5a7d0efc0b9c977a947d8052c43519aceeaf56eabaf6843 \ + --hash=sha256:b0732343cdc4273b5921268026dd7266f75466eb21873cb7635a200d9d9c3fac \ + --hash=sha256:b11a127ac590fc991e8a02c2d7e1ac86e8141c92f78546f18b5c904064a0552c \ + --hash=sha256:b33e13e537e3afd1627d421a142a12bbbe601543558a391a6fae593356842f6e \ + --hash=sha256:b5363932a5aab67010ae1a6205c567d1ef256fb333bc23c27582481606be480c \ + --hash=sha256:b54853c2371bf0e38d67da379519deb6fbe70055efb32f6607081641af3dc752 \ + --hash=sha256:b67cc21a14327a0eb0f47bc3d7e59ec08031c7c55220ece672f9476e7a8068d3 \ + --hash=sha256:bb0013795b40db5cf361e6f21ee7cda09627cf294977149b50e217d7fe9a2f03 \ + --hash=sha256:bd393683129f446a75d8634306aed7e377627098a1286ff3af2a4f1736742820 \ + --hash=sha256:c038b9939da3035afb6cb2f465f18163e8f070aba0482923ecff9443def67178 \ + --hash=sha256:c50bc308fa29767ed8f53a8d33b7633a9e14718ced038ed89d41b886e301da32 \ + --hash=sha256:c582c46b1bb0b19f1a5f4c1312f1b640c21d78c371a6615c34025b16ee56369b \ + --hash=sha256:c77a7330dd15c7eb5fd3631dc646fc96327f98db8181138766bd14d3e905f0ba \ + --hash=sha256:c9e29a13d2fd9be3e7d8c26c7ef4ba60b5bc7efbc9dbdf24454c7e9ebba31768 \ + --hash=sha256:ca366c2e2a54e2f663f4529b189fdeb6e14d419b1c78b754ec1744f3c01070d4 \ + --hash=sha256:ce19887268e90ee81a3957eef5e46a70ecc000713796639f83828b950343f49e \ + --hash=sha256:cffbc50e0767396ed483900900dd58ce4351bc0d40e64bced8694bd41864cc71 \ + --hash=sha256:d29d1b9857c65f8cb3a29270732e1591b9bacf89de9d13fa764f79f07d8f1fd2 \ + --hash=sha256:d4688862f957c8629d557d084f20b2d803f8738b6c4066802a0b1cc472e088d9 \ + --hash=sha256:e5ddb2388610799fc46abe389600625058f2a73867e63e20107c5ad5ffa57c47 \ + --hash=sha256:e89605afebbd2d4b045bccfdc12a14b16fe8ccbae05f64b4b4c64a97dad1c891 \ + --hash=sha256:ea2da0459b951ee461bd4e02b8904890bd1c4263999d291c5cd01e6620177ad4 \ + --hash=sha256:ec9139baa3f85b65adc700eafa03ed04995ca8533dd56c924f0e458ffec044ab \ + --hash=sha256:eda4c661e68dddd56c8fbfe1ca35e40dd2afd973f7ebb1605f4d151edc63dff8 \ + --hash=sha256:f0a547e4350d1fa32624d3eab51eff8cf329f4cae110b4ea0402486b1da8be40 \ + --hash=sha256:f39a2a5ded23b9b9194ec45740dce57177b80f86c6d8eba953d3ff1a25c97766 \ + --hash=sha256:f3a0bda83c18195c361b5500377d0767749f128564ca95b42c8849fd475bb327 \ + --hash=sha256:f744b5eb1469bf92dd143d36570d2bdbbdc88fe5cb0b5405e53dd34f479cbd8a \ + --hash=sha256:f9f0bbfb6787b97c51516f3ccf97737d504db5d239ad44527673b81f598b84ab \ + --hash=sha256:fa9720e56663cc3649d62b4b5f3145e94b8f5611e8a8e1b46507777249d46aad \ + --hash=sha256:fb6ec40cef63b1922083d33bfef2f91fc0b0bc07b5b09bfee0b0f1717d558292 \ + --hash=sha256:fe5231e8afd069c742ac5b4f96344a0fe4aff52df8e53ef87faebf77f827822c # via -r src/backend/requirements.in -redis==5.0.7 \ - --hash=sha256:0e479e24da960c690be5d9b96d21f7b918a98c0cf49af3b6fafaa0753f93a0db \ - --hash=sha256:8f611490b93c8109b50adc317b31bfd84fff31def3475b92e7e80bf39f48175b +redis==5.1.1 \ + --hash=sha256:f6c997521fedbae53387307c5d0bf784d9acc28d9f1d058abeac566ec4dbed72 \ + --hash=sha256:f8ea06b7482a668c6475ae202ed8d9bcaa409f6e87fb77ed1043d912afd62e24 # via django-redis referencing==0.35.1 \ --hash=sha256:25b42124a6c8b632a425174f24087783efb348a6f1e0008e63cd4466fedf703c \ @@ -1353,86 +1408,101 @@ referencing==0.35.1 \ # via # jsonschema # jsonschema-specifications -regex==2024.4.28 \ - --hash=sha256:05d9b6578a22db7dedb4df81451f360395828b04f4513980b6bd7a1412c679cc \ - --hash=sha256:08a1749f04fee2811c7617fdd46d2e46d09106fa8f475c884b65c01326eb15c5 \ - --hash=sha256:0940038bec2fe9e26b203d636c44d31dd8766abc1fe66262da6484bd82461ccf \ - --hash=sha256:0a2a512d623f1f2d01d881513af9fc6a7c46e5cfffb7dc50c38ce959f9246c94 \ - --hash=sha256:0a54a047b607fd2d2d52a05e6ad294602f1e0dec2291152b745870afc47c1397 \ - --hash=sha256:0dd3f69098511e71880fb00f5815db9ed0ef62c05775395968299cb400aeab82 \ - --hash=sha256:1031a5e7b048ee371ab3653aad3030ecfad6ee9ecdc85f0242c57751a05b0ac4 \ - --hash=sha256:108e2dcf0b53a7c4ab8986842a8edcb8ab2e59919a74ff51c296772e8e74d0ae \ - --hash=sha256:144a1fc54765f5c5c36d6d4b073299832aa1ec6a746a6452c3ee7b46b3d3b11d \ - --hash=sha256:19d6c11bf35a6ad077eb23852827f91c804eeb71ecb85db4ee1386825b9dc4db \ - --hash=sha256:1f687a28640f763f23f8a9801fe9e1b37338bb1ca5d564ddd41619458f1f22d1 \ - --hash=sha256:224803b74aab56aa7be313f92a8d9911dcade37e5f167db62a738d0c85fdac4b \ - --hash=sha256:23a412b7b1a7063f81a742463f38821097b6a37ce1e5b89dd8e871d14dbfd86b \ - --hash=sha256:25f87ae6b96374db20f180eab083aafe419b194e96e4f282c40191e71980c666 \ - --hash=sha256:2630ca4e152c221072fd4a56d4622b5ada876f668ecd24d5ab62544ae6793ed6 \ - --hash=sha256:28e1f28d07220c0f3da0e8fcd5a115bbb53f8b55cecf9bec0c946eb9a059a94c \ - --hash=sha256:2b51739ddfd013c6f657b55a508de8b9ea78b56d22b236052c3a85a675102dc6 \ - --hash=sha256:2cc1b87bba1dd1a898e664a31012725e48af826bf3971e786c53e32e02adae6c \ - --hash=sha256:2fef0b38c34ae675fcbb1b5db760d40c3fc3612cfa186e9e50df5782cac02bcd \ - --hash=sha256:36f392dc7763fe7924575475736bddf9ab9f7a66b920932d0ea50c2ded2f5636 \ - --hash=sha256:374f690e1dd0dbdcddea4a5c9bdd97632cf656c69113f7cd6a361f2a67221cb6 \ - --hash=sha256:3986217ec830c2109875be740531feb8ddafe0dfa49767cdcd072ed7e8927962 \ - --hash=sha256:39fb166d2196413bead229cd64a2ffd6ec78ebab83fff7d2701103cf9f4dfd26 \ - --hash=sha256:4290035b169578ffbbfa50d904d26bec16a94526071ebec3dadbebf67a26b25e \ - --hash=sha256:43548ad74ea50456e1c68d3c67fff3de64c6edb85bcd511d1136f9b5376fc9d1 \ - --hash=sha256:44a22ae1cfd82e4ffa2066eb3390777dc79468f866f0625261a93e44cdf6482b \ - --hash=sha256:457c2cd5a646dd4ed536c92b535d73548fb8e216ebee602aa9f48e068fc393f3 \ - --hash=sha256:459226445c7d7454981c4c0ce0ad1a72e1e751c3e417f305722bbcee6697e06a \ - --hash=sha256:47af45b6153522733aa6e92543938e97a70ce0900649ba626cf5aad290b737b6 \ - --hash=sha256:499334ad139557de97cbc4347ee921c0e2b5e9c0f009859e74f3f77918339257 \ - --hash=sha256:57ba112e5530530fd175ed550373eb263db4ca98b5f00694d73b18b9a02e7185 \ - --hash=sha256:5ce479ecc068bc2a74cb98dd8dba99e070d1b2f4a8371a7dfe631f85db70fe6e \ - --hash=sha256:5dbc1bcc7413eebe5f18196e22804a3be1bfdfc7e2afd415e12c068624d48247 \ - --hash=sha256:6277d426e2f31bdbacb377d17a7475e32b2d7d1f02faaecc48d8e370c6a3ff31 \ - --hash=sha256:66372c2a01782c5fe8e04bff4a2a0121a9897e19223d9eab30c54c50b2ebeb7f \ - --hash=sha256:670fa596984b08a4a769491cbdf22350431970d0112e03d7e4eeaecaafcd0fec \ - --hash=sha256:6f435946b7bf7a1b438b4e6b149b947c837cb23c704e780c19ba3e6855dbbdd3 \ - --hash=sha256:7413167c507a768eafb5424413c5b2f515c606be5bb4ef8c5dee43925aa5718b \ - --hash=sha256:7c3d389e8d76a49923683123730c33e9553063d9041658f23897f0b396b2386f \ - --hash=sha256:7d77b6f63f806578c604dca209280e4c54f0fa9a8128bb8d2cc5fb6f99da4150 \ - --hash=sha256:7e76b9cfbf5ced1aca15a0e5b6f229344d9b3123439ffce552b11faab0114a02 \ - --hash=sha256:7f3502f03b4da52bbe8ba962621daa846f38489cae5c4a7b5d738f15f6443d17 \ - --hash=sha256:7fe9739a686dc44733d52d6e4f7b9c77b285e49edf8570754b322bca6b85b4cc \ - --hash=sha256:83ab366777ea45d58f72593adf35d36ca911ea8bd838483c1823b883a121b0e4 \ - --hash=sha256:84077821c85f222362b72fdc44f7a3a13587a013a45cf14534df1cbbdc9a6796 \ - --hash=sha256:8bb381f777351bd534462f63e1c6afb10a7caa9fa2a421ae22c26e796fe31b1f \ - --hash=sha256:92da587eee39a52c91aebea8b850e4e4f095fe5928d415cb7ed656b3460ae79a \ - --hash=sha256:9301cc6db4d83d2c0719f7fcda37229691745168bf6ae849bea2e85fc769175d \ - --hash=sha256:965fd0cf4694d76f6564896b422724ec7b959ef927a7cb187fc6b3f4e4f59833 \ - --hash=sha256:99d6a550425cc51c656331af0e2b1651e90eaaa23fb4acde577cf15068e2e20f \ - --hash=sha256:99ef6289b62042500d581170d06e17f5353b111a15aa6b25b05b91c6886df8fc \ - --hash=sha256:a1409c4eccb6981c7baabc8888d3550df518add6e06fe74fa1d9312c1838652d \ - --hash=sha256:a74fcf77d979364f9b69fcf8200849ca29a374973dc193a7317698aa37d8b01c \ - --hash=sha256:aaa179975a64790c1f2701ac562b5eeb733946eeb036b5bcca05c8d928a62f10 \ - --hash=sha256:ac69b394764bb857429b031d29d9604842bc4cbfd964d764b1af1868eeebc4f0 \ - --hash=sha256:b45d4503de8f4f3dc02f1d28a9b039e5504a02cc18906cfe744c11def942e9eb \ - --hash=sha256:b7d893c8cf0e2429b823ef1a1d360a25950ed11f0e2a9df2b5198821832e1947 \ - --hash=sha256:b8eb28995771c087a73338f695a08c9abfdf723d185e57b97f6175c5051ff1ae \ - --hash=sha256:b91d529b47798c016d4b4c1d06cc826ac40d196da54f0de3c519f5a297c5076a \ - --hash=sha256:bc365ce25f6c7c5ed70e4bc674f9137f52b7dd6a125037f9132a7be52b8a252f \ - --hash=sha256:bf29304a8011feb58913c382902fde3395957a47645bf848eea695839aa101b7 \ - --hash=sha256:c06bf3f38f0707592898428636cbb75d0a846651b053a1cf748763e3063a6925 \ - --hash=sha256:c77d10ec3c1cf328b2f501ca32583625987ea0f23a0c2a49b37a39ee5c4c4630 \ - --hash=sha256:cd196d056b40af073d95a2879678585f0b74ad35190fac04ca67954c582c6b61 \ - --hash=sha256:d7a353ebfa7154c871a35caca7bfd8f9e18666829a1dc187115b80e35a29393e \ - --hash=sha256:d84308f097d7a513359757c69707ad339da799e53b7393819ec2ea36bc4beb58 \ - --hash=sha256:dd7ef715ccb8040954d44cfeff17e6b8e9f79c8019daae2fd30a8806ef5435c0 \ - --hash=sha256:e672cf9caaf669053121f1766d659a8813bd547edef6e009205378faf45c67b8 \ - --hash=sha256:ecc6148228c9ae25ce403eade13a0961de1cb016bdb35c6eafd8e7b87ad028b1 \ - --hash=sha256:f1c5742c31ba7d72f2dedf7968998730664b45e38827637e0f04a2ac7de2f5f1 \ - --hash=sha256:f1d6e4b7b2ae3a6a9df53efbf199e4bfcff0959dbdb5fd9ced34d4407348e39a \ - --hash=sha256:f2fc053228a6bd3a17a9b0a3f15c3ab3cf95727b00557e92e1cfe094b88cc662 \ - --hash=sha256:f57515750d07e14743db55d59759893fdb21d2668f39e549a7d6cad5d70f9fea \ - --hash=sha256:f85151ec5a232335f1be022b09fbbe459042ea1951d8a48fef251223fc67eee1 \ - --hash=sha256:fb0315a2b26fde4005a7c401707c5352df274460f2f85b209cf6024271373013 \ - --hash=sha256:fc0916c4295c64d6890a46e02d4482bb5ccf33bf1a824c0eaa9e83b148291f90 \ - --hash=sha256:fd24fd140b69f0b0bcc9165c397e9b2e89ecbeda83303abf2a072609f60239e2 \ - --hash=sha256:fdae0120cddc839eb8e3c15faa8ad541cc6d906d3eb24d82fb041cfe2807bc1e \ - --hash=sha256:fe00f4fe11c8a521b173e6324d862ee7ee3412bf7107570c9b564fe1119b56fb +regex==2024.9.11 \ + --hash=sha256:01c2acb51f8a7d6494c8c5eafe3d8e06d76563d8a8a4643b37e9b2dd8a2ff623 \ + --hash=sha256:02087ea0a03b4af1ed6ebab2c54d7118127fee8d71b26398e8e4b05b78963199 \ + --hash=sha256:040562757795eeea356394a7fb13076ad4f99d3c62ab0f8bdfb21f99a1f85664 \ + --hash=sha256:042c55879cfeb21a8adacc84ea347721d3d83a159da6acdf1116859e2427c43f \ + --hash=sha256:079400a8269544b955ffa9e31f186f01d96829110a3bf79dc338e9910f794fca \ + --hash=sha256:07f45f287469039ffc2c53caf6803cd506eb5f5f637f1d4acb37a738f71dd066 \ + --hash=sha256:09d77559e80dcc9d24570da3745ab859a9cf91953062e4ab126ba9d5993688ca \ + --hash=sha256:0cbff728659ce4bbf4c30b2a1be040faafaa9eca6ecde40aaff86f7889f4ab39 \ + --hash=sha256:0e12c481ad92d129c78f13a2a3662317e46ee7ef96c94fd332e1c29131875b7d \ + --hash=sha256:0ea51dcc0835eea2ea31d66456210a4e01a076d820e9039b04ae8d17ac11dee6 \ + --hash=sha256:0ffbcf9221e04502fc35e54d1ce9567541979c3fdfb93d2c554f0ca583a19b35 \ + --hash=sha256:1494fa8725c285a81d01dc8c06b55287a1ee5e0e382d8413adc0a9197aac6408 \ + --hash=sha256:16e13a7929791ac1216afde26f712802e3df7bf0360b32e4914dca3ab8baeea5 \ + --hash=sha256:18406efb2f5a0e57e3a5881cd9354c1512d3bb4f5c45d96d110a66114d84d23a \ + --hash=sha256:18e707ce6c92d7282dfce370cd205098384b8ee21544e7cb29b8aab955b66fa9 \ + --hash=sha256:220e92a30b426daf23bb67a7962900ed4613589bab80382be09b48896d211e92 \ + --hash=sha256:23b30c62d0f16827f2ae9f2bb87619bc4fba2044911e2e6c2eb1af0161cdb766 \ + --hash=sha256:23f9985c8784e544d53fc2930fc1ac1a7319f5d5332d228437acc9f418f2f168 \ + --hash=sha256:297f54910247508e6e5cae669f2bc308985c60540a4edd1c77203ef19bfa63ca \ + --hash=sha256:2b08fce89fbd45664d3df6ad93e554b6c16933ffa9d55cb7e01182baaf971508 \ + --hash=sha256:2cce2449e5927a0bf084d346da6cd5eb016b2beca10d0013ab50e3c226ffc0df \ + --hash=sha256:313ea15e5ff2a8cbbad96ccef6be638393041b0a7863183c2d31e0c6116688cf \ + --hash=sha256:323c1f04be6b2968944d730e5c2091c8c89767903ecaa135203eec4565ed2b2b \ + --hash=sha256:35f4a6f96aa6cb3f2f7247027b07b15a374f0d5b912c0001418d1d55024d5cb4 \ + --hash=sha256:3b37fa423beefa44919e009745ccbf353d8c981516e807995b2bd11c2c77d268 \ + --hash=sha256:3ce4f1185db3fbde8ed8aa223fc9620f276c58de8b0d4f8cc86fd1360829edb6 \ + --hash=sha256:46989629904bad940bbec2106528140a218b4a36bb3042d8406980be1941429c \ + --hash=sha256:4838e24ee015101d9f901988001038f7f0d90dc0c3b115541a1365fb439add62 \ + --hash=sha256:49b0e06786ea663f933f3710a51e9385ce0cba0ea56b67107fd841a55d56a231 \ + --hash=sha256:4db21ece84dfeefc5d8a3863f101995de646c6cb0536952c321a2650aa202c36 \ + --hash=sha256:54c4a097b8bc5bb0dfc83ae498061d53ad7b5762e00f4adaa23bee22b012e6ba \ + --hash=sha256:54d9ff35d4515debf14bc27f1e3b38bfc453eff3220f5bce159642fa762fe5d4 \ + --hash=sha256:55b96e7ce3a69a8449a66984c268062fbaa0d8ae437b285428e12797baefce7e \ + --hash=sha256:57fdd2e0b2694ce6fc2e5ccf189789c3e2962916fb38779d3e3521ff8fe7a822 \ + --hash=sha256:587d4af3979376652010e400accc30404e6c16b7df574048ab1f581af82065e4 \ + --hash=sha256:5b513b6997a0b2f10e4fd3a1313568e373926e8c252bd76c960f96fd039cd28d \ + --hash=sha256:5ddcd9a179c0a6fa8add279a4444015acddcd7f232a49071ae57fa6e278f1f71 \ + --hash=sha256:6113c008a7780792efc80f9dfe10ba0cd043cbf8dc9a76ef757850f51b4edc50 \ + --hash=sha256:635a1d96665f84b292e401c3d62775851aedc31d4f8784117b3c68c4fcd4118d \ + --hash=sha256:64ce2799bd75039b480cc0360907c4fb2f50022f030bf9e7a8705b636e408fad \ + --hash=sha256:69dee6a020693d12a3cf892aba4808fe168d2a4cef368eb9bf74f5398bfd4ee8 \ + --hash=sha256:6a2644a93da36c784e546de579ec1806bfd2763ef47babc1b03d765fe560c9f8 \ + --hash=sha256:6b41e1adc61fa347662b09398e31ad446afadff932a24807d3ceb955ed865cc8 \ + --hash=sha256:6c188c307e8433bcb63dc1915022deb553b4203a70722fc542c363bf120a01fd \ + --hash=sha256:6edd623bae6a737f10ce853ea076f56f507fd7726bee96a41ee3d68d347e4d16 \ + --hash=sha256:73d6d2f64f4d894c96626a75578b0bf7d9e56dcda8c3d037a2118fdfe9b1c664 \ + --hash=sha256:7a22ccefd4db3f12b526eccb129390942fe874a3a9fdbdd24cf55773a1faab1a \ + --hash=sha256:7fb89ee5d106e4a7a51bce305ac4efb981536301895f7bdcf93ec92ae0d91c7f \ + --hash=sha256:846bc79ee753acf93aef4184c040d709940c9d001029ceb7b7a52747b80ed2dd \ + --hash=sha256:85ab7824093d8f10d44330fe1e6493f756f252d145323dd17ab6b48733ff6c0a \ + --hash=sha256:8dee5b4810a89447151999428fe096977346cf2f29f4d5e29609d2e19e0199c9 \ + --hash=sha256:8e5fb5f77c8745a60105403a774fe2c1759b71d3e7b4ca237a5e67ad066c7199 \ + --hash=sha256:98eeee2f2e63edae2181c886d7911ce502e1292794f4c5ee71e60e23e8d26b5d \ + --hash=sha256:9d4a76b96f398697fe01117093613166e6aa8195d63f1b4ec3f21ab637632963 \ + --hash=sha256:9e8719792ca63c6b8340380352c24dcb8cd7ec49dae36e963742a275dfae6009 \ + --hash=sha256:a0b2b80321c2ed3fcf0385ec9e51a12253c50f146fddb2abbb10f033fe3d049a \ + --hash=sha256:a4cc92bb6db56ab0c1cbd17294e14f5e9224f0cc6521167ef388332604e92679 \ + --hash=sha256:a738b937d512b30bf75995c0159c0ddf9eec0775c9d72ac0202076c72f24aa96 \ + --hash=sha256:a8f877c89719d759e52783f7fe6e1c67121076b87b40542966c02de5503ace42 \ + --hash=sha256:a906ed5e47a0ce5f04b2c981af1c9acf9e8696066900bf03b9d7879a6f679fc8 \ + --hash=sha256:ae2941333154baff9838e88aa71c1d84f4438189ecc6021a12c7573728b5838e \ + --hash=sha256:b0d0a6c64fcc4ef9c69bd5b3b3626cc3776520a1637d8abaa62b9edc147a58f7 \ + --hash=sha256:b5b029322e6e7b94fff16cd120ab35a253236a5f99a79fb04fda7ae71ca20ae8 \ + --hash=sha256:b7aaa315101c6567a9a45d2839322c51c8d6e81f67683d529512f5bcfb99c802 \ + --hash=sha256:be1c8ed48c4c4065ecb19d882a0ce1afe0745dfad8ce48c49586b90a55f02366 \ + --hash=sha256:c0256beda696edcf7d97ef16b2a33a8e5a875affd6fa6567b54f7c577b30a137 \ + --hash=sha256:c157bb447303070f256e084668b702073db99bbb61d44f85d811025fcf38f784 \ + --hash=sha256:c57d08ad67aba97af57a7263c2d9006d5c404d721c5f7542f077f109ec2a4a29 \ + --hash=sha256:c69ada171c2d0e97a4b5aa78fbb835e0ffbb6b13fc5da968c09811346564f0d3 \ + --hash=sha256:c94bb0a9f1db10a1d16c00880bdebd5f9faf267273b8f5bd1878126e0fbde771 \ + --hash=sha256:cb130fccd1a37ed894824b8c046321540263013da72745d755f2d35114b81a60 \ + --hash=sha256:ced479f601cd2f8ca1fd7b23925a7e0ad512a56d6e9476f79b8f381d9d37090a \ + --hash=sha256:d05ac6fa06959c4172eccd99a222e1fbf17b5670c4d596cb1e5cde99600674c4 \ + --hash=sha256:d552c78411f60b1fdaafd117a1fca2f02e562e309223b9d44b7de8be451ec5e0 \ + --hash=sha256:dd4490a33eb909ef5078ab20f5f000087afa2a4daa27b4c072ccb3cb3050ad84 \ + --hash=sha256:df5cbb1fbc74a8305b6065d4ade43b993be03dbe0f8b30032cced0d7740994bd \ + --hash=sha256:e28f9faeb14b6f23ac55bfbbfd3643f5c7c18ede093977f1df249f73fd22c7b1 \ + --hash=sha256:e464b467f1588e2c42d26814231edecbcfe77f5ac414d92cbf4e7b55b2c2a776 \ + --hash=sha256:e4c22e1ac1f1ec1e09f72e6c44d8f2244173db7eb9629cc3a346a8d7ccc31142 \ + --hash=sha256:e53b5fbab5d675aec9f0c501274c467c0f9a5d23696cfc94247e1fb56501ed89 \ + --hash=sha256:e93f1c331ca8e86fe877a48ad64e77882c0c4da0097f2212873a69bbfea95d0c \ + --hash=sha256:e997fd30430c57138adc06bba4c7c2968fb13d101e57dd5bb9355bf8ce3fa7e8 \ + --hash=sha256:e9a091b0550b3b0207784a7d6d0f1a00d1d1c8a11699c1a4d93db3fbefc3ad35 \ + --hash=sha256:eab4bb380f15e189d1313195b062a6aa908f5bd687a0ceccd47c8211e9cf0d4a \ + --hash=sha256:eb1ae19e64c14c7ec1995f40bd932448713d3c73509e82d8cd7744dc00e29e86 \ + --hash=sha256:ecea58b43a67b1b79805f1a0255730edaf5191ecef84dbc4cc85eb30bc8b63b9 \ + --hash=sha256:ee439691d8c23e76f9802c42a95cfeebf9d47cf4ffd06f18489122dbb0a7ad64 \ + --hash=sha256:eee9130eaad130649fd73e5cd92f60e55708952260ede70da64de420cdcad554 \ + --hash=sha256:f47cd43a5bfa48f86925fe26fbdd0a488ff15b62468abb5d2a1e092a4fb10e85 \ + --hash=sha256:f6fff13ef6b5f29221d6904aa816c34701462956aa72a77f1f151a8ec4f56aeb \ + --hash=sha256:f745ec09bc1b0bd15cfc73df6fa4f726dcc26bb16c23a03f9e3367d357eeedd0 \ + --hash=sha256:f8404bf61298bb6f8224bb9176c1424548ee1181130818fcd2cbffddc768bed8 \ + --hash=sha256:f9268774428ec173654985ce55fc6caf4c6d11ade0f6f914d48ef4719eb05ebb \ + --hash=sha256:faa3c142464efec496967359ca99696c896c591c56c53506bac1ad465f66e919 # via -r src/backend/requirements.in requests==2.32.3 \ --hash=sha256:55365417734eb18255590a9ff9eb97e9e1da868d4ccd6402399eaf68af20a760 \ @@ -1440,118 +1510,122 @@ requests==2.32.3 \ # via # coreapi # opentelemetry-exporter-otlp-proto-http -rpds-py==0.18.1 \ - --hash=sha256:05f3d615099bd9b13ecf2fc9cf2d839ad3f20239c678f461c753e93755d629ee \ - --hash=sha256:06d218939e1bf2ca50e6b0ec700ffe755e5216a8230ab3e87c059ebb4ea06afc \ - --hash=sha256:07f2139741e5deb2c5154a7b9629bc5aa48c766b643c1a6750d16f865a82c5fc \ - --hash=sha256:08d74b184f9ab6289b87b19fe6a6d1a97fbfea84b8a3e745e87a5de3029bf944 \ - --hash=sha256:0abeee75434e2ee2d142d650d1e54ac1f8b01e6e6abdde8ffd6eeac6e9c38e20 \ - --hash=sha256:154bf5c93d79558b44e5b50cc354aa0459e518e83677791e6adb0b039b7aa6a7 \ - --hash=sha256:17c6d2155e2423f7e79e3bb18151c686d40db42d8645e7977442170c360194d4 \ - --hash=sha256:1805d5901779662d599d0e2e4159d8a82c0b05faa86ef9222bf974572286b2b6 \ - --hash=sha256:19ba472b9606c36716062c023afa2484d1e4220548751bda14f725a7de17b4f6 \ - --hash=sha256:19e515b78c3fc1039dd7da0a33c28c3154458f947f4dc198d3c72db2b6b5dc93 \ - --hash=sha256:1d54f74f40b1f7aaa595a02ff42ef38ca654b1469bef7d52867da474243cc633 \ - --hash=sha256:207c82978115baa1fd8d706d720b4a4d2b0913df1c78c85ba73fe6c5804505f0 \ - --hash=sha256:2625f03b105328729f9450c8badda34d5243231eef6535f80064d57035738360 \ - --hash=sha256:27bba383e8c5231cd559affe169ca0b96ec78d39909ffd817f28b166d7ddd4d8 \ - --hash=sha256:2c3caec4ec5cd1d18e5dd6ae5194d24ed12785212a90b37f5f7f06b8bedd7139 \ - --hash=sha256:2cc7c1a47f3a63282ab0f422d90ddac4aa3034e39fc66a559ab93041e6505da7 \ - --hash=sha256:2fc24a329a717f9e2448f8cd1f960f9dac4e45b6224d60734edeb67499bab03a \ - --hash=sha256:312fe69b4fe1ffbe76520a7676b1e5ac06ddf7826d764cc10265c3b53f96dbe9 \ - --hash=sha256:32b7daaa3e9389db3695964ce8e566e3413b0c43e3394c05e4b243a4cd7bef26 \ - --hash=sha256:338dee44b0cef8b70fd2ef54b4e09bb1b97fc6c3a58fea5db6cc083fd9fc2724 \ - --hash=sha256:352a88dc7892f1da66b6027af06a2e7e5d53fe05924cc2cfc56495b586a10b72 \ - --hash=sha256:35b2b771b13eee8729a5049c976197ff58a27a3829c018a04341bcf1ae409b2b \ - --hash=sha256:38e14fb4e370885c4ecd734f093a2225ee52dc384b86fa55fe3f74638b2cfb09 \ - --hash=sha256:3c20f05e8e3d4fc76875fc9cb8cf24b90a63f5a1b4c5b9273f0e8225e169b100 \ - --hash=sha256:3dd3cd86e1db5aadd334e011eba4e29d37a104b403e8ca24dcd6703c68ca55b3 \ - --hash=sha256:489bdfe1abd0406eba6b3bb4fdc87c7fa40f1031de073d0cfb744634cc8fa261 \ - --hash=sha256:48c2faaa8adfacefcbfdb5f2e2e7bdad081e5ace8d182e5f4ade971f128e6bb3 \ - --hash=sha256:4a98a1f0552b5f227a3d6422dbd61bc6f30db170939bd87ed14f3c339aa6c7c9 \ - --hash=sha256:4adec039b8e2928983f885c53b7cc4cda8965b62b6596501a0308d2703f8af1b \ - --hash=sha256:4e0ee01ad8260184db21468a6e1c37afa0529acc12c3a697ee498d3c2c4dcaf3 \ - --hash=sha256:51584acc5916212e1bf45edd17f3a6b05fe0cbb40482d25e619f824dccb679de \ - --hash=sha256:531796fb842b53f2695e94dc338929e9f9dbf473b64710c28af5a160b2a8927d \ - --hash=sha256:5463c47c08630007dc0fe99fb480ea4f34a89712410592380425a9b4e1611d8e \ - --hash=sha256:5c45a639e93a0c5d4b788b2613bd637468edd62f8f95ebc6fcc303d58ab3f0a8 \ - --hash=sha256:6031b25fb1b06327b43d841f33842b383beba399884f8228a6bb3df3088485ff \ - --hash=sha256:607345bd5912aacc0c5a63d45a1f73fef29e697884f7e861094e443187c02be5 \ - --hash=sha256:618916f5535784960f3ecf8111581f4ad31d347c3de66d02e728de460a46303c \ - --hash=sha256:636a15acc588f70fda1661234761f9ed9ad79ebed3f2125d44be0862708b666e \ - --hash=sha256:673fdbbf668dd958eff750e500495ef3f611e2ecc209464f661bc82e9838991e \ - --hash=sha256:6afd80f6c79893cfc0574956f78a0add8c76e3696f2d6a15bca2c66c415cf2d4 \ - --hash=sha256:6b5ff7e1d63a8281654b5e2896d7f08799378e594f09cf3674e832ecaf396ce8 \ - --hash=sha256:6c4c4c3f878df21faf5fac86eda32671c27889e13570645a9eea0a1abdd50922 \ - --hash=sha256:6cd8098517c64a85e790657e7b1e509b9fe07487fd358e19431cb120f7d96338 \ - --hash=sha256:6d1e42d2735d437e7e80bab4d78eb2e459af48c0a46e686ea35f690b93db792d \ - --hash=sha256:6e30ac5e329098903262dc5bdd7e2086e0256aa762cc8b744f9e7bf2a427d3f8 \ - --hash=sha256:70a838f7754483bcdc830444952fd89645569e7452e3226de4a613a4c1793fb2 \ - --hash=sha256:720edcb916df872d80f80a1cc5ea9058300b97721efda8651efcd938a9c70a72 \ - --hash=sha256:732672fbc449bab754e0b15356c077cc31566df874964d4801ab14f71951ea80 \ - --hash=sha256:740884bc62a5e2bbb31e584f5d23b32320fd75d79f916f15a788d527a5e83644 \ - --hash=sha256:7700936ef9d006b7ef605dc53aa364da2de5a3aa65516a1f3ce73bf82ecfc7ae \ - --hash=sha256:7732770412bab81c5a9f6d20aeb60ae943a9b36dcd990d876a773526468e7163 \ - --hash=sha256:7750569d9526199c5b97e5a9f8d96a13300950d910cf04a861d96f4273d5b104 \ - --hash=sha256:7f1944ce16401aad1e3f7d312247b3d5de7981f634dc9dfe90da72b87d37887d \ - --hash=sha256:81c5196a790032e0fc2464c0b4ab95f8610f96f1f2fa3d4deacce6a79852da60 \ - --hash=sha256:8352f48d511de5f973e4f2f9412736d7dea76c69faa6d36bcf885b50c758ab9a \ - --hash=sha256:8927638a4d4137a289e41d0fd631551e89fa346d6dbcfc31ad627557d03ceb6d \ - --hash=sha256:8c7672e9fba7425f79019db9945b16e308ed8bc89348c23d955c8c0540da0a07 \ - --hash=sha256:8d2e182c9ee01135e11e9676e9a62dfad791a7a467738f06726872374a83db49 \ - --hash=sha256:910e71711d1055b2768181efa0a17537b2622afeb0424116619817007f8a2b10 \ - --hash=sha256:942695a206a58d2575033ff1e42b12b2aece98d6003c6bc739fbf33d1773b12f \ - --hash=sha256:9437ca26784120a279f3137ee080b0e717012c42921eb07861b412340f85bae2 \ - --hash=sha256:967342e045564cef76dfcf1edb700b1e20838d83b1aa02ab313e6a497cf923b8 \ - --hash=sha256:998125738de0158f088aef3cb264a34251908dd2e5d9966774fdab7402edfab7 \ - --hash=sha256:9e6934d70dc50f9f8ea47081ceafdec09245fd9f6032669c3b45705dea096b88 \ - --hash=sha256:a3d456ff2a6a4d2adcdf3c1c960a36f4fd2fec6e3b4902a42a384d17cf4e7a65 \ - --hash=sha256:a7b28c5b066bca9a4eb4e2f2663012debe680f097979d880657f00e1c30875a0 \ - --hash=sha256:a888e8bdb45916234b99da2d859566f1e8a1d2275a801bb8e4a9644e3c7e7909 \ - --hash=sha256:aa3679e751408d75a0b4d8d26d6647b6d9326f5e35c00a7ccd82b78ef64f65f8 \ - --hash=sha256:aaa71ee43a703c321906813bb252f69524f02aa05bf4eec85f0c41d5d62d0f4c \ - --hash=sha256:b646bf655b135ccf4522ed43d6902af37d3f5dbcf0da66c769a2b3938b9d8184 \ - --hash=sha256:b906b5f58892813e5ba5c6056d6a5ad08f358ba49f046d910ad992196ea61397 \ - --hash=sha256:b9bb1f182a97880f6078283b3505a707057c42bf55d8fca604f70dedfdc0772a \ - --hash=sha256:bd1105b50ede37461c1d51b9698c4f4be6e13e69a908ab7751e3807985fc0346 \ - --hash=sha256:bf18932d0003c8c4d51a39f244231986ab23ee057d235a12b2684ea26a353590 \ - --hash=sha256:c273e795e7a0f1fddd46e1e3cb8be15634c29ae8ff31c196debb620e1edb9333 \ - --hash=sha256:c69882964516dc143083d3795cb508e806b09fc3800fd0d4cddc1df6c36e76bb \ - --hash=sha256:c827576e2fa017a081346dce87d532a5310241648eb3700af9a571a6e9fc7e74 \ - --hash=sha256:cbfbea39ba64f5e53ae2915de36f130588bba71245b418060ec3330ebf85678e \ - --hash=sha256:ce0bb20e3a11bd04461324a6a798af34d503f8d6f1aa3d2aa8901ceaf039176d \ - --hash=sha256:d0cee71bc618cd93716f3c1bf56653740d2d13ddbd47673efa8bf41435a60daa \ - --hash=sha256:d21be4770ff4e08698e1e8e0bce06edb6ea0626e7c8f560bc08222880aca6a6f \ - --hash=sha256:d31dea506d718693b6b2cffc0648a8929bdc51c70a311b2770f09611caa10d53 \ - --hash=sha256:d44607f98caa2961bab4fa3c4309724b185b464cdc3ba6f3d7340bac3ec97cc1 \ - --hash=sha256:d58ad6317d188c43750cb76e9deacf6051d0f884d87dc6518e0280438648a9ac \ - --hash=sha256:d70129cef4a8d979caa37e7fe957202e7eee8ea02c5e16455bc9808a59c6b2f0 \ - --hash=sha256:d85164315bd68c0806768dc6bb0429c6f95c354f87485ee3593c4f6b14def2bd \ - --hash=sha256:d960de62227635d2e61068f42a6cb6aae91a7fe00fca0e3aeed17667c8a34611 \ - --hash=sha256:dc48b479d540770c811fbd1eb9ba2bb66951863e448efec2e2c102625328e92f \ - --hash=sha256:e1735502458621921cee039c47318cb90b51d532c2766593be6207eec53e5c4c \ - --hash=sha256:e2be6e9dd4111d5b31ba3b74d17da54a8319d8168890fbaea4b9e5c3de630ae5 \ - --hash=sha256:e4c39ad2f512b4041343ea3c7894339e4ca7839ac38ca83d68a832fc8b3748ab \ - --hash=sha256:ed402d6153c5d519a0faf1bb69898e97fb31613b49da27a84a13935ea9164dfc \ - --hash=sha256:ee17cd26b97d537af8f33635ef38be873073d516fd425e80559f4585a7b90c43 \ - --hash=sha256:f3027be483868c99b4985fda802a57a67fdf30c5d9a50338d9db646d590198da \ - --hash=sha256:f5bab211605d91db0e2995a17b5c6ee5edec1270e46223e513eaa20da20076ac \ - --hash=sha256:f6f8e3fecca256fefc91bb6765a693d96692459d7d4c644660a9fff32e517843 \ - --hash=sha256:f7afbfee1157e0f9376c00bb232e80a60e59ed716e3211a80cb8506550671e6e \ - --hash=sha256:fa242ac1ff583e4ec7771141606aafc92b361cd90a05c30d93e343a0c2d82a89 \ - --hash=sha256:fab6ce90574645a0d6c58890e9bcaac8d94dff54fb51c69e5522a7358b80ab64 +rpds-py==0.20.0 \ + --hash=sha256:06db23d43f26478303e954c34c75182356ca9aa7797d22c5345b16871ab9c45c \ + --hash=sha256:0e13e6952ef264c40587d510ad676a988df19adea20444c2b295e536457bc585 \ + --hash=sha256:11ef6ce74616342888b69878d45e9f779b95d4bd48b382a229fe624a409b72c5 \ + --hash=sha256:1259c7b3705ac0a0bd38197565a5d603218591d3f6cee6e614e380b6ba61c6f6 \ + --hash=sha256:18d7585c463087bddcfa74c2ba267339f14f2515158ac4db30b1f9cbdb62c8ef \ + --hash=sha256:1e0f80b739e5a8f54837be5d5c924483996b603d5502bfff79bf33da06164ee2 \ + --hash=sha256:1e5f3cd7397c8f86c8cc72d5a791071431c108edd79872cdd96e00abd8497d29 \ + --hash=sha256:220002c1b846db9afd83371d08d239fdc865e8f8c5795bbaec20916a76db3318 \ + --hash=sha256:22e6c9976e38f4d8c4a63bd8a8edac5307dffd3ee7e6026d97f3cc3a2dc02a0b \ + --hash=sha256:238a2d5b1cad28cdc6ed15faf93a998336eb041c4e440dd7f902528b8891b399 \ + --hash=sha256:2580b0c34583b85efec8c5c5ec9edf2dfe817330cc882ee972ae650e7b5ef739 \ + --hash=sha256:28527c685f237c05445efec62426d285e47a58fb05ba0090a4340b73ecda6dee \ + --hash=sha256:2cf126d33a91ee6eedc7f3197b53e87a2acdac63602c0f03a02dd69e4b138174 \ + --hash=sha256:338ca4539aad4ce70a656e5187a3a31c5204f261aef9f6ab50e50bcdffaf050a \ + --hash=sha256:39ed0d010457a78f54090fafb5d108501b5aa5604cc22408fc1c0c77eac14344 \ + --hash=sha256:3ad0fda1635f8439cde85c700f964b23ed5fc2d28016b32b9ee5fe30da5c84e2 \ + --hash=sha256:3d2b1ad682a3dfda2a4e8ad8572f3100f95fad98cb99faf37ff0ddfe9cbf9d03 \ + --hash=sha256:3d61339e9f84a3f0767b1995adfb171a0d00a1185192718a17af6e124728e0f5 \ + --hash=sha256:3fde368e9140312b6e8b6c09fb9f8c8c2f00999d1823403ae90cc00480221b22 \ + --hash=sha256:40ce74fc86ee4645d0a225498d091d8bc61f39b709ebef8204cb8b5a464d3c0e \ + --hash=sha256:49a8063ea4296b3a7e81a5dfb8f7b2d73f0b1c20c2af401fb0cdf22e14711a96 \ + --hash=sha256:4a1f1d51eccb7e6c32ae89243cb352389228ea62f89cd80823ea7dd1b98e0b91 \ + --hash=sha256:4b16aa0107ecb512b568244ef461f27697164d9a68d8b35090e9b0c1c8b27752 \ + --hash=sha256:4f1ed4749a08379555cebf4650453f14452eaa9c43d0a95c49db50c18b7da075 \ + --hash=sha256:4fe84294c7019456e56d93e8ababdad5a329cd25975be749c3f5f558abb48253 \ + --hash=sha256:50eccbf054e62a7b2209b28dc7a22d6254860209d6753e6b78cfaeb0075d7bee \ + --hash=sha256:514b3293b64187172bc77c8fb0cdae26981618021053b30d8371c3a902d4d5ad \ + --hash=sha256:54b43a2b07db18314669092bb2de584524d1ef414588780261e31e85846c26a5 \ + --hash=sha256:55fea87029cded5df854ca7e192ec7bdb7ecd1d9a3f63d5c4eb09148acf4a7ce \ + --hash=sha256:569b3ea770c2717b730b61998b6c54996adee3cef69fc28d444f3e7920313cf7 \ + --hash=sha256:56e27147a5a4c2c21633ff8475d185734c0e4befd1c989b5b95a5d0db699b21b \ + --hash=sha256:57eb94a8c16ab08fef6404301c38318e2c5a32216bf5de453e2714c964c125c8 \ + --hash=sha256:5a35df9f5548fd79cb2f52d27182108c3e6641a4feb0f39067911bf2adaa3e57 \ + --hash=sha256:5a8c94dad2e45324fc74dce25e1645d4d14df9a4e54a30fa0ae8bad9a63928e3 \ + --hash=sha256:5b4f105deeffa28bbcdff6c49b34e74903139afa690e35d2d9e3c2c2fba18cec \ + --hash=sha256:5c1dc0f53856b9cc9a0ccca0a7cc61d3d20a7088201c0937f3f4048c1718a209 \ + --hash=sha256:614fdafe9f5f19c63ea02817fa4861c606a59a604a77c8cdef5aa01d28b97921 \ + --hash=sha256:617c7357272c67696fd052811e352ac54ed1d9b49ab370261a80d3b6ce385045 \ + --hash=sha256:65794e4048ee837494aea3c21a28ad5fc080994dfba5b036cf84de37f7ad5074 \ + --hash=sha256:6632f2d04f15d1bd6fe0eedd3b86d9061b836ddca4c03d5cf5c7e9e6b7c14580 \ + --hash=sha256:6c8ef2ebf76df43f5750b46851ed1cdf8f109d7787ca40035fe19fbdc1acc5a7 \ + --hash=sha256:758406267907b3781beee0f0edfe4a179fbd97c0be2e9b1154d7f0a1279cf8e5 \ + --hash=sha256:7e60cb630f674a31f0368ed32b2a6b4331b8350d67de53c0359992444b116dd3 \ + --hash=sha256:89c19a494bf3ad08c1da49445cc5d13d8fefc265f48ee7e7556839acdacf69d0 \ + --hash=sha256:8a86a9b96070674fc88b6f9f71a97d2c1d3e5165574615d1f9168ecba4cecb24 \ + --hash=sha256:8bc7690f7caee50b04a79bf017a8d020c1f48c2a1077ffe172abec59870f1139 \ + --hash=sha256:8d7919548df3f25374a1f5d01fbcd38dacab338ef5f33e044744b5c36729c8db \ + --hash=sha256:9426133526f69fcaba6e42146b4e12d6bc6c839b8b555097020e2b78ce908dcc \ + --hash=sha256:9824fb430c9cf9af743cf7aaf6707bf14323fb51ee74425c380f4c846ea70789 \ + --hash=sha256:9bb4a0d90fdb03437c109a17eade42dfbf6190408f29b2744114d11586611d6f \ + --hash=sha256:9bc2d153989e3216b0559251b0c260cfd168ec78b1fac33dd485750a228db5a2 \ + --hash=sha256:9d35cef91e59ebbeaa45214861874bc6f19eb35de96db73e467a8358d701a96c \ + --hash=sha256:a1862d2d7ce1674cffa6d186d53ca95c6e17ed2b06b3f4c476173565c862d232 \ + --hash=sha256:a84ab91cbe7aab97f7446652d0ed37d35b68a465aeef8fc41932a9d7eee2c1a6 \ + --hash=sha256:aa7f429242aae2947246587d2964fad750b79e8c233a2367f71b554e9447949c \ + --hash=sha256:aa9a0521aeca7d4941499a73ad7d4f8ffa3d1affc50b9ea11d992cd7eff18a29 \ + --hash=sha256:ac2f4f7a98934c2ed6505aead07b979e6f999389f16b714448fb39bbaa86a489 \ + --hash=sha256:ae94bd0b2f02c28e199e9bc51485d0c5601f58780636185660f86bf80c89af94 \ + --hash=sha256:af0fc424a5842a11e28956e69395fbbeab2c97c42253169d87e90aac2886d751 \ + --hash=sha256:b2a5db5397d82fa847e4c624b0c98fe59d2d9b7cf0ce6de09e4d2e80f8f5b3f2 \ + --hash=sha256:b4c29cbbba378759ac5786730d1c3cb4ec6f8ababf5c42a9ce303dc4b3d08cda \ + --hash=sha256:b74b25f024b421d5859d156750ea9a65651793d51b76a2e9238c05c9d5f203a9 \ + --hash=sha256:b7f19250ceef892adf27f0399b9e5afad019288e9be756d6919cb58892129f51 \ + --hash=sha256:b80d4a7900cf6b66bb9cee5c352b2d708e29e5a37fe9bf784fa97fc11504bf6c \ + --hash=sha256:b8c00a3b1e70c1d3891f0db1b05292747f0dbcfb49c43f9244d04c70fbc40eb8 \ + --hash=sha256:bb273176be34a746bdac0b0d7e4e2c467323d13640b736c4c477881a3220a989 \ + --hash=sha256:c3c20f0ddeb6e29126d45f89206b8291352b8c5b44384e78a6499d68b52ae511 \ + --hash=sha256:c3e130fd0ec56cb76eb49ef52faead8ff09d13f4527e9b0c400307ff72b408e1 \ + --hash=sha256:c52d3f2f82b763a24ef52f5d24358553e8403ce05f893b5347098014f2d9eff2 \ + --hash=sha256:c6377e647bbfd0a0b159fe557f2c6c602c159fc752fa316572f012fc0bf67150 \ + --hash=sha256:c638144ce971df84650d3ed0096e2ae7af8e62ecbbb7b201c8935c370df00a2c \ + --hash=sha256:ce9845054c13696f7af7f2b353e6b4f676dab1b4b215d7fe5e05c6f8bb06f965 \ + --hash=sha256:cf258ede5bc22a45c8e726b29835b9303c285ab46fc7c3a4cc770736b5304c9f \ + --hash=sha256:d0a26ffe9d4dd35e4dfdd1e71f46401cff0181c75ac174711ccff0459135fa58 \ + --hash=sha256:d0b67d87bb45ed1cd020e8fbf2307d449b68abc45402fe1a4ac9e46c3c8b192b \ + --hash=sha256:d20277fd62e1b992a50c43f13fbe13277a31f8c9f70d59759c88f644d66c619f \ + --hash=sha256:d454b8749b4bd70dd0a79f428731ee263fa6995f83ccb8bada706e8d1d3ff89d \ + --hash=sha256:d4c7d1a051eeb39f5c9547e82ea27cbcc28338482242e3e0b7768033cb083821 \ + --hash=sha256:d72278a30111e5b5525c1dd96120d9e958464316f55adb030433ea905866f4de \ + --hash=sha256:d72a210824facfdaf8768cf2d7ca25a042c30320b3020de2fa04640920d4e121 \ + --hash=sha256:d807dc2051abe041b6649681dce568f8e10668e3c1c6543ebae58f2d7e617855 \ + --hash=sha256:dbe982f38565bb50cb7fb061ebf762c2f254ca3d8c20d4006878766e84266272 \ + --hash=sha256:dcedf0b42bcb4cfff4101d7771a10532415a6106062f005ab97d1d0ab5681c60 \ + --hash=sha256:deb62214c42a261cb3eb04d474f7155279c1a8a8c30ac89b7dcb1721d92c3c02 \ + --hash=sha256:def7400461c3a3f26e49078302e1c1b38f6752342c77e3cf72ce91ca69fb1bc1 \ + --hash=sha256:df3de6b7726b52966edf29663e57306b23ef775faf0ac01a3e9f4012a24a4140 \ + --hash=sha256:e1940dae14e715e2e02dfd5b0f64a52e8374a517a1e531ad9412319dc3ac7879 \ + --hash=sha256:e4df1e3b3bec320790f699890d41c59d250f6beda159ea3c44c3f5bac1976940 \ + --hash=sha256:e6900ecdd50ce0facf703f7a00df12374b74bbc8ad9fe0f6559947fb20f82364 \ + --hash=sha256:ea438162a9fcbee3ecf36c23e6c68237479f89f962f82dae83dc15feeceb37e4 \ + --hash=sha256:eb851b7df9dda52dc1415ebee12362047ce771fc36914586b2e9fcbd7d293b3e \ + --hash=sha256:ec31a99ca63bf3cd7f1a5ac9fe95c5e2d060d3c768a09bc1d16e235840861420 \ + --hash=sha256:f0475242f447cc6cb8a9dd486d68b2ef7fbee84427124c232bff5f63b1fe11e5 \ + --hash=sha256:f2fbf7db2012d4876fb0d66b5b9ba6591197b0f165db8d99371d976546472a24 \ + --hash=sha256:f60012a73aa396be721558caa3a6fd49b3dd0033d1675c6d59c4502e870fcf0c \ + --hash=sha256:f8e604fe73ba048c06085beaf51147eaec7df856824bfe7b98657cf436623daf \ + --hash=sha256:f90a4cd061914a60bd51c68bcb4357086991bd0bb93d8aa66a6da7701370708f \ + --hash=sha256:f918a1a130a6dfe1d7fe0f105064141342e7dd1611f2e6a21cd2f5c8cb1cfb3e \ + --hash=sha256:fa518bcd7600c584bf42e6617ee8132869e877db2f76bcdc281ec6a4113a53ab \ + --hash=sha256:faefcc78f53a88f3076b7f8be0a8f8d35133a3ecf7f3770895c25f8813460f08 \ + --hash=sha256:fcaeb7b57f1a1e071ebd748984359fef83ecb026325b9d4ca847c95bc7311c92 \ + --hash=sha256:fd2d84f40633bc475ef2d5490b9c19543fbf18596dcb1b291e3a12ea5d722f7a \ + --hash=sha256:fdfc3a892927458d98f3d55428ae46b921d1f7543b89382fdb483f5640daaec8 # via # jsonschema # referencing -sentry-sdk==2.8.0 \ - --hash=sha256:6051562d2cfa8087bb8b4b8b79dc44690f8a054762a29c07e22588b1f619bfb5 \ - --hash=sha256:aa4314f877d9cd9add5a0c9ba18e3f27f99f7de835ce36bd150e48a41c7c646f +sentry-sdk==2.16.0 \ + --hash=sha256:49139c31ebcd398f4f6396b18910610a0c1602f6e67083240c33019d1f6aa30c \ + --hash=sha256:90f733b32e15dfc1999e6b7aca67a38688a567329de4d6e184154a73f96c6892 # via # -r src/backend/requirements.in # django-q-sentry -setuptools==72.1.0 \ - --hash=sha256:5a03e1860cf56bb6ef48ce186b0e557fdba433237481a9a625176c2831be15d1 \ - --hash=sha256:8d243eff56d095e5817f796ede6ae32941278f542e0f941867cc05ae52b162ec +setuptools==75.1.0 \ + --hash=sha256:35ab7fd3bcd95e6b7fd704e4a1539513edad446c097797f2985e0e4b960772f2 \ + --hash=sha256:d59a21b17a275fb872a9c3dae73963160ae079f1049ed956880cd7c09b120538 # via # -r src/backend/requirements.in # django-money @@ -1565,11 +1639,10 @@ six==1.16.0 \ # via # bleach # html5lib - # isodate # python-dateutil -sqlparse==0.5.0 \ - --hash=sha256:714d0a4932c059d16189f58ef5411ec2287a4360f17cdd0edd2d09d4c5087c93 \ - --hash=sha256:c204494cd97479d0e39f28c93d46c0b2d5959c7b9ab904762ea6c7af211c8663 +sqlparse==0.5.1 \ + --hash=sha256:773dcbf9a5ab44a090f3441e2180efe2560220203dc2f8c0b0fa141e18b505e4 \ + --hash=sha256:bb6b4df465655ef332548e24f08e205afc81b9ab86cb1c45657a7ff173a3a00e # via # django # django-sql-utils @@ -1586,24 +1659,34 @@ tinycss2==1.2.1 \ # bleach # cssselect2 # weasyprint +tomli==2.0.2 \ + --hash=sha256:2ebe24485c53d303f690b0ec092806a085f07af5a5aa1464f3931eec36caaa38 \ + --hash=sha256:d46d457a85337051c36524bc5349dd91b1877838e2979ac5ced3e710ed8a60ed + # via pip-licenses typing-extensions==4.12.2 \ --hash=sha256:04e5ca0351e0f3f85c6853954072df659d0d13fac324d0072316b67d7794700d \ --hash=sha256:1a7ead55c7e559dd4dee8856e3a88b41225abfe1ce8df57b7c13915fe121ffb8 # via # asgiref # drf-spectacular + # flexcache + # flexparser # opentelemetry-sdk + # pint # py-moneyed - # qrcode +tzdata==2024.2 \ + --hash=sha256:7d85cc416e9382e69095b7bdf4afd9e3880418a2413feec7069d533d6b4e31cc \ + --hash=sha256:a48093786cdcde33cad18c2555e8532f34422074448fbc874186f0abd79565cd + # via icalendar uritemplate==4.1.1 \ --hash=sha256:4346edfc5c3b79f694bccd6d6099a322bbeb628dbf2cd86eea55a456ce5124f0 \ --hash=sha256:830c08b8d99bdd312ea4ead05994a38e8936266f84b9a7878232db50b044e02e # via # coreapi # drf-spectacular -urllib3==2.2.2 \ - --hash=sha256:a448b2f64d686155468037e1ace9f2d2199776e17f0a46610480d311f73e3472 \ - --hash=sha256:dd505485549a7a552833da5e6063639d0d177c04f23bc3864e41e5dc5f612168 +urllib3==2.2.3 \ + --hash=sha256:ca899ca043dcb1bafa3e262d73aa25c465bfb49e0bd9dd5d59f1d0acba2f8fac \ + --hash=sha256:e7d814a81dad81e6caf2ec9fdedb284ecc9c73076b62654547cc64ccdcae26e9 # via # dulwich # requests @@ -1773,9 +1856,9 @@ xmlsec==1.3.14 \ --hash=sha256:e732a75fcb6b84872b168f972fbbf3749baf76308635f14015d1d35ed0c5719c \ --hash=sha256:ed4034939d8566ccdcd3b4e4f23c63fd807fb8763ae5668d59a19e11640a8242 # via python3-saml -zipp==3.19.2 \ - --hash=sha256:bf1dcf6450f873a13e952a29504887c89e6de7506209e5b1bcc3460135d4de19 \ - --hash=sha256:f091755f667055f2d02b32c53771a7a6c8b47e1fdbc4b72a8b9072b3eef8015c +zipp==3.20.2 \ + --hash=sha256:a817ac80d6cf4b23bf7f2828b7cabf326f15a001bea8b1f9b49631780ba28350 \ + --hash=sha256:bc9eb26f4506fda01b81bcde0ca78103b6e62f991b381fec825435c836edbc29 # via importlib-metadata zopfli==0.2.3 \ --hash=sha256:0574372283befa5af98fb31407e1fe6822f2f9c437ef69e7fa260e49022d8a65 \ diff --git a/src/frontend/.linguirc b/src/frontend/.linguirc index f767f22641..edc5a37fd4 100644 --- a/src/frontend/.linguirc +++ b/src/frontend/.linguirc @@ -19,6 +19,7 @@ "it", "ja", "ko", + "lt", "lv", "nl", "no", diff --git a/src/frontend/package.json b/src/frontend/package.json index e3e4b7f41d..8502fd209f 100644 --- a/src/frontend/package.json +++ b/src/frontend/package.json @@ -11,82 +11,86 @@ "compile": "lingui compile --typescript" }, "dependencies": { - "@codemirror/autocomplete": ">=6.18.0", + "@codemirror/autocomplete": "^6.18.1", "@codemirror/lang-liquid": "^6.2.1", - "@codemirror/language": ">=6.10.2", - "@codemirror/lint": ">=6.8.1", - "@codemirror/search": ">=6.0.0", - "@codemirror/state": "^6.0.0", - "@codemirror/theme-one-dark": ">=6.0.0", - "@codemirror/view": ">=6.32.0", - "@emotion/react": "^11.13.0", + "@codemirror/language": "^6.10.3", + "@codemirror/lint": "^6.8.1", + "@codemirror/search": "^6.5.6", + "@codemirror/state": "^6.4.1", + "@codemirror/theme-one-dark": "^6.1.2", + "@codemirror/view": "^6.33.0", + "@emotion/react": "^11.13.3", "@fortawesome/fontawesome-svg-core": "^6.6.0", "@fortawesome/free-regular-svg-icons": "^6.6.0", "@fortawesome/free-solid-svg-icons": "^6.6.0", "@fortawesome/react-fontawesome": "^0.2.2", - "@lingui/core": "^4.11.3", - "@lingui/react": "^4.11.3", - "@mantine/carousel": "^7.12.1", - "@mantine/charts": "^7.12.1", - "@mantine/core": "^7.12.1", - "@mantine/dates": "^7.12.1", - "@mantine/dropzone": "^7.12.1", - "@mantine/form": "^7.12.1", - "@mantine/hooks": "^7.12.1", - "@mantine/modals": "^7.12.1", - "@mantine/notifications": "^7.12.1", - "@mantine/spotlight": "^7.12.1", - "@mantine/vanilla-extract": "^7.12.1", - "@mdxeditor/editor": "^3.11.0", - "@sentry/react": "^8.26.0", - "@tabler/icons-react": "^3.12.0", - "@tanstack/react-query": "^5.51.24", - "@uiw/codemirror-theme-vscode": "^4.23.0", - "@uiw/react-codemirror": "^4.23.0", + "@lingui/core": "^4.11.4", + "@lingui/react": "^4.11.4", + "@mantine/carousel": "^7.12.2", + "@mantine/charts": "^7.12.2", + "@mantine/core": "^7.12.2", + "@mantine/dates": "^7.12.2", + "@mantine/dropzone": "^7.12.2", + "@mantine/form": "^7.12.2", + "@mantine/hooks": "^7.12.2", + "@mantine/modals": "^7.12.2", + "@mantine/notifications": "^7.12.2", + "@mantine/spotlight": "^7.12.2", + "@mantine/vanilla-extract": "^7.12.2", + "@sentry/react": "^8.31.0", + "@tabler/icons-react": "^3.17.0", + "@tanstack/react-query": "^5.56.2", + "@types/dompurify": "^3.0.5", + "@uiw/codemirror-theme-vscode": "^4.23.3", + "@uiw/react-codemirror": "^4.23.3", "@uiw/react-split": "^5.9.3", - "@vanilla-extract/css": "^1.15.4", - "axios": "^1.7.4", - "clsx": "^2.1.0", - "codemirror": ">=6.0.0", - "dayjs": "^1.11.12", - "embla-carousel-react": "^8.1.8", + "@vanilla-extract/css": "^1.15.5", + "axios": "^1.7.7", + "clsx": "^2.1.1", + "codemirror": "^6.0.1", + "dayjs": "^1.11.13", + "dompurify": "^3.1.7", + "easymde": "^2.18.0", + "embla-carousel-react": "^8.3.0", "fuse.js": "^7.0.0", "html5-qrcode": "^2.3.8", - "mantine-datatable": "^7.11.3", + "mantine-datatable": "^7.12.4", "qrcode": "^1.5.4", "react": "^18.3.1", "react-dom": "^18.3.1", "react-grid-layout": "^1.4.4", - "react-hook-form": "^7.52.2", + "react-hook-form": "^7.53.0", "react-is": "^18.3.1", - "react-router-dom": "^6.26.1", - "react-select": "^5.8.0", + "react-router-dom": "^6.26.2", + "react-select": "^5.8.1", + "react-simplemde-editor": "^5.2.0", "react-window": "^1.8.10", - "recharts": "^2.12.4", - "styled-components": "^6.1.12", + "recharts": "^2.12.7", + "styled-components": "^6.1.13", "zustand": "^4.5.5" }, "devDependencies": { "@babel/core": "^7.25.2", "@babel/preset-react": "^7.24.7", "@babel/preset-typescript": "^7.24.7", - "@lingui/cli": "^4.11.3", - "@lingui/macro": "^4.11.3", - "@playwright/test": "^1.46.1", - "@types/node": "^22.4.1", + "@codecov/vite-plugin": "^1.2.0", + "@lingui/cli": "^4.11.4", + "@lingui/macro": "^4.11.4", + "@playwright/test": "^1.47.2", + "@types/node": "^22.6.0", "@types/qrcode": "^1.5.5", - "@types/react": "^18.3.3", + "@types/react": "^18.3.8", "@types/react-dom": "^18.3.0", "@types/react-grid-layout": "^1.3.5", "@types/react-router-dom": "^5.3.3", "@types/react-window": "^1.8.8", - "@vanilla-extract/vite-plugin": "^4.0.14", + "@vanilla-extract/vite-plugin": "^4.0.15", "@vitejs/plugin-react": "^4.3.1", "babel-plugin-macros": "^3.1.0", - "nyc": "^17.0.0", - "rollup-plugin-license": "^3.5.2", - "typescript": "^5.5.4", - "vite": "^5.4.1", + "nyc": "^17.1.0", + "rollup-plugin-license": "^3.5.3", + "typescript": "^5.6.2", + "vite": "^5.4.7", "vite-plugin-babel-macros": "^1.0.6", "vite-plugin-istanbul": "^6.0.2" } diff --git a/src/frontend/playwright.config.ts b/src/frontend/playwright.config.ts index 2914f54f5a..f42af97995 100644 --- a/src/frontend/playwright.config.ts +++ b/src/frontend/playwright.config.ts @@ -36,9 +36,10 @@ export default defineConfig({ timeout: 120 * 1000 }, { - command: 'invoke server -a 127.0.0.1:8000', + command: 'invoke dev.server -a 127.0.0.1:8000', env: { - INVENTREE_DEBUG: 'True' + INVENTREE_DEBUG: 'True', + INVENTREE_PLUGINS_ENABLED: 'True' }, url: 'http://127.0.0.1:8000/api/', reuseExistingServer: !process.env.CI, diff --git a/src/frontend/src/components/Boundary.tsx b/src/frontend/src/components/Boundary.tsx index 1ad6529883..126b9b76fb 100644 --- a/src/frontend/src/components/Boundary.tsx +++ b/src/frontend/src/components/Boundary.tsx @@ -4,7 +4,7 @@ import { ErrorBoundary, FallbackRender } from '@sentry/react'; import { IconExclamationCircle } from '@tabler/icons-react'; import { ReactNode, useCallback } from 'react'; -function DefaultFallback({ title }: { title: String }): ReactNode { +function DefaultFallback({ title }: Readonly<{ title: string }>): ReactNode { return ( ): ReactNode { const onError = useCallback( (error: unknown, componentStack: string | undefined, eventId: string) => { console.error(`Error rendering component: ${label}`); diff --git a/src/frontend/src/components/DashboardItemProxy.tsx b/src/frontend/src/components/DashboardItemProxy.tsx deleted file mode 100644 index d0ed0015c8..0000000000 --- a/src/frontend/src/components/DashboardItemProxy.tsx +++ /dev/null @@ -1,52 +0,0 @@ -import { t } from '@lingui/macro'; -import { useQuery } from '@tanstack/react-query'; -import { useEffect, useState } from 'react'; - -import { api } from '../App'; -import { ApiEndpoints } from '../enums/ApiEndpoints'; -import { apiUrl } from '../states/ApiState'; -import { StatisticItem } from './items/DashboardItem'; -import { ErrorItem } from './items/ErrorItem'; - -export function DashboardItemProxy({ - id, - text, - url, - params, - autoupdate = true -}: { - id: string; - text: string; - url: ApiEndpoints; - params: any; - autoupdate: boolean; -}) { - function fetchData() { - return api - .get(`${apiUrl(url)}?search=&offset=0&limit=25`, { params: params }) - .then((res) => res.data); - } - const { isLoading, error, data, isFetching } = useQuery({ - queryKey: [`dash_${id}`], - queryFn: fetchData, - refetchOnWindowFocus: autoupdate - }); - const [dashData, setDashData] = useState({ title: t`Title`, value: '000' }); - - useEffect(() => { - if (data) { - setDashData({ title: text, value: data.count }); - } - }, [data]); - - if (error != null) return ; - return ( -
- -
- ); -} diff --git a/src/frontend/src/components/buttons/ActionButton.tsx b/src/frontend/src/components/buttons/ActionButton.tsx index 9acc6c66ad..4b8d6265b3 100644 --- a/src/frontend/src/components/buttons/ActionButton.tsx +++ b/src/frontend/src/components/buttons/ActionButton.tsx @@ -41,8 +41,8 @@ export function ActionButton(props: ActionButtonProps) { aria-label={`action-button-${identifierString( props.tooltip ?? props.text ?? '' )}`} - onClick={() => { - props.onClick(); + onClick={(event: any) => { + props.onClick(event); }} variant={props.variant ?? 'transparent'} > diff --git a/src/frontend/src/components/buttons/AdminButton.tsx b/src/frontend/src/components/buttons/AdminButton.tsx index 7adfe73f72..cccf7c6c48 100644 --- a/src/frontend/src/components/buttons/AdminButton.tsx +++ b/src/frontend/src/components/buttons/AdminButton.tsx @@ -22,7 +22,7 @@ export type AdminButtonProps = { * - The user has "superuser" role * - The user has at least read rights for the selected item */ -export default function AdminButton(props: AdminButtonProps) { +export default function AdminButton(props: Readonly) { const user = useUserState(); const enabled: boolean = useMemo(() => { @@ -80,6 +80,7 @@ export default function AdminButton(props: AdminButtonProps) { tooltip={t`Open in admin interface`} hidden={!enabled} onClick={openAdmin} + tooltipAlignment="bottom" /> ); } diff --git a/src/frontend/src/components/buttons/ButtonMenu.tsx b/src/frontend/src/components/buttons/ButtonMenu.tsx index 0bf2a36df7..be9bef9904 100644 --- a/src/frontend/src/components/buttons/ButtonMenu.tsx +++ b/src/frontend/src/components/buttons/ButtonMenu.tsx @@ -9,12 +9,12 @@ export function ButtonMenu({ actions, tooltip = '', label = '' -}: { +}: Readonly<{ icon: any; actions: React.ReactNode[]; label?: string; tooltip?: string; -}) { +}>) { return ( diff --git a/src/frontend/src/components/buttons/CopyButton.tsx b/src/frontend/src/components/buttons/CopyButton.tsx index c63ec29630..6f2c733ec9 100644 --- a/src/frontend/src/components/buttons/CopyButton.tsx +++ b/src/frontend/src/components/buttons/CopyButton.tsx @@ -3,6 +3,7 @@ import { ActionIcon, Button, CopyButton as MantineCopyButton, + MantineSize, Text, Tooltip } from '@mantine/core'; @@ -11,11 +12,15 @@ import { InvenTreeIcon } from '../../functions/icons'; export function CopyButton({ value, - label -}: { + label, + content, + size +}: Readonly<{ value: any; - label?: JSX.Element; -}) { + label?: string; + content?: JSX.Element; + size?: MantineSize; +}>) { const ButtonComponent = label ? Button : ActionIcon; return ( @@ -26,15 +31,19 @@ export function CopyButton({ color={copied ? 'teal' : 'gray'} onClick={copy} variant="transparent" - size="sm" + size={size ?? 'sm'} > {copied ? ( ) : ( )} - - {label && {label}} + {content} + {label && ( + + {label} + + )} )} diff --git a/src/frontend/src/components/buttons/EditButton.tsx b/src/frontend/src/components/buttons/EditButton.tsx index a64aa41cc9..39c7211405 100644 --- a/src/frontend/src/components/buttons/EditButton.tsx +++ b/src/frontend/src/components/buttons/EditButton.tsx @@ -6,12 +6,12 @@ export function EditButton({ editing, disabled, saveIcon -}: { +}: Readonly<{ setEditing: (value?: React.SetStateAction | undefined) => void; editing: boolean; disabled?: boolean; saveIcon?: JSX.Element; -}) { +}>) { saveIcon = saveIcon || ; return ( void; -}) { +}>) { if (hidden) { return null; } diff --git a/src/frontend/src/components/buttons/PrintingActions.tsx b/src/frontend/src/components/buttons/PrintingActions.tsx index 43dce5b3bd..694c378c8c 100644 --- a/src/frontend/src/components/buttons/PrintingActions.tsx +++ b/src/frontend/src/components/buttons/PrintingActions.tsx @@ -11,6 +11,7 @@ import { extractAvailableFields } from '../../functions/forms'; import { useCreateApiFormModal } from '../../hooks/UseForm'; import { apiUrl } from '../../states/ApiState'; import { useLocalState } from '../../states/LocalState'; +import { useUserSettingsState } from '../../states/SettingsState'; import { ApiFormFieldSet } from '../forms/fields/ApiFormField'; import { ActionDropdown } from '../items/ActionDropdown'; @@ -29,6 +30,8 @@ export function PrintingActions({ }) { const { host } = useLocalState.getState(); + const userSettings = useUserSettingsState(); + const enabled = useMemo(() => items.length > 0, [items]); const [pluginKey, setPluginKey] = useState(''); @@ -74,6 +77,7 @@ export function PrintingActions({ fields['plugin'] = { ...fields['plugin'], + value: userSettings.getSetting('LABEL_DEFAULT_PRINTER'), filters: { active: true, mixin: 'labels' diff --git a/src/frontend/src/components/buttons/RemoveRowButton.tsx b/src/frontend/src/components/buttons/RemoveRowButton.tsx new file mode 100644 index 0000000000..ebdcca60c1 --- /dev/null +++ b/src/frontend/src/components/buttons/RemoveRowButton.tsx @@ -0,0 +1,22 @@ +import { t } from '@lingui/macro'; + +import { InvenTreeIcon } from '../../functions/icons'; +import { ActionButton } from './ActionButton'; + +export default function RemoveRowButton({ + onClick, + tooltip = t`Remove this row` +}: Readonly<{ + onClick: () => void; + tooltip?: string; +}>) { + return ( + } + tooltip={tooltip} + tooltipAlignment="top" + color="red" + /> + ); +} diff --git a/src/frontend/src/components/buttons/SSOButton.tsx b/src/frontend/src/components/buttons/SSOButton.tsx index 08f9fd44da..24b6e2661a 100644 --- a/src/frontend/src/components/buttons/SSOButton.tsx +++ b/src/frontend/src/components/buttons/SSOButton.tsx @@ -33,7 +33,7 @@ const brandIcons: { [key: string]: JSX.Element } = { microsoft: }; -export function SsoButton({ provider }: { provider: Provider }) { +export function SsoButton({ provider }: Readonly<{ provider: Provider }>) { function login() { // set preferred provider api diff --git a/src/frontend/src/components/buttons/ScanButton.tsx b/src/frontend/src/components/buttons/ScanButton.tsx index 915167767c..2d716b722f 100644 --- a/src/frontend/src/components/buttons/ScanButton.tsx +++ b/src/frontend/src/components/buttons/ScanButton.tsx @@ -12,12 +12,12 @@ export function ScanButton() { onClick={() => openContextModal({ modal: 'qr', - title: t`Scan QR code`, + title: t`Scan Barcode`, innerProps: {} }) } variant="transparent" - title={t`Open QR code scanner`} + title={t`Open Barcode Scanner`} > diff --git a/src/frontend/src/components/buttons/SpotlightButton.tsx b/src/frontend/src/components/buttons/SpotlightButton.tsx index 8631178c31..7ca95d78bf 100644 --- a/src/frontend/src/components/buttons/SpotlightButton.tsx +++ b/src/frontend/src/components/buttons/SpotlightButton.tsx @@ -13,6 +13,7 @@ export function SpotlightButton() { onClick={() => firstSpotlight.open()} title={t`Open spotlight`} variant="transparent" + aria-label="open-spotlight" > diff --git a/src/frontend/src/components/buttons/YesNoButton.tsx b/src/frontend/src/components/buttons/YesNoButton.tsx index d18b492857..2678607470 100644 --- a/src/frontend/src/components/buttons/YesNoButton.tsx +++ b/src/frontend/src/components/buttons/YesNoButton.tsx @@ -1,5 +1,5 @@ import { t } from '@lingui/macro'; -import { Badge } from '@mantine/core'; +import { Badge, Skeleton } from '@mantine/core'; import { isTrue } from '../../functions/conversion'; @@ -7,14 +7,14 @@ export function PassFailButton({ value, passText, failText -}: { +}: Readonly<{ value: any; passText?: string; failText?: string; -}) { +}>) { const v = isTrue(value); - const pass = passText || t`Pass`; - const fail = failText || t`Fail`; + const pass = passText ?? t`Pass`; + const fail = failText ?? t`Fail`; return ( ) { return ; } + +export function YesNoUndefinedButton({ value }: Readonly<{ value?: boolean }>) { + if (value === undefined) { + return ; + } else { + return ; + } +} diff --git a/src/frontend/src/components/dashboard/DashboardLayout.tsx b/src/frontend/src/components/dashboard/DashboardLayout.tsx new file mode 100644 index 0000000000..3917e4e6fa --- /dev/null +++ b/src/frontend/src/components/dashboard/DashboardLayout.tsx @@ -0,0 +1,328 @@ +import { t } from '@lingui/macro'; +import { Alert, Card, Center, Divider, Loader, Text } from '@mantine/core'; +import { useDisclosure, useHotkeys } from '@mantine/hooks'; +import { IconInfoCircle } from '@tabler/icons-react'; +import { useCallback, useEffect, useMemo, useState } from 'react'; +import { Layout, Responsive, WidthProvider } from 'react-grid-layout'; + +import { useDashboardItems } from '../../hooks/UseDashboardItems'; +import { useUserState } from '../../states/UserState'; +import DashboardMenu from './DashboardMenu'; +import DashboardWidget, { DashboardWidgetProps } from './DashboardWidget'; +import DashboardWidgetDrawer from './DashboardWidgetDrawer'; + +const ReactGridLayout = WidthProvider(Responsive); + +/** + * Save the dashboard layout to local storage + */ +function saveDashboardLayout(layouts: any, userId: number | undefined): void { + let reducedLayouts: any = {}; + + // Reduce the layouts to exclude default attributes from the dataset + Object.keys(layouts).forEach((key) => { + reducedLayouts[key] = layouts[key].map((item: Layout) => { + return { + ...item, + moved: item.moved ? true : undefined, + static: item.static ? true : undefined + }; + }); + }); + + const data = JSON.stringify(reducedLayouts); + + if (userId) { + localStorage?.setItem(`dashboard-layout-${userId}`, data); + } + + localStorage?.setItem('dashboard-layout', data); +} + +/** + * Load the dashboard layout from local storage + */ +function loadDashboardLayout( + userId: number | undefined +): Record { + let layout = userId && localStorage?.getItem(`dashboard-layout-${userId}`); + + if (!layout) { + // Fallback to global layout + layout = localStorage?.getItem('dashboard-layout'); + } + + if (layout) { + return JSON.parse(layout); + } else { + return {}; + } +} + +/** + * Save the list of selected widgets to local storage + */ +function saveDashboardWidgets( + widgets: string[], + userId: number | undefined +): void { + const data = JSON.stringify(widgets); + + if (userId) { + localStorage?.setItem(`dashboard-widgets-${userId}`, data); + } + + localStorage?.setItem('dashboard-widgets', data); +} + +/** + * Load the list of selected widgets from local storage + */ +function loadDashboardWidgets(userId: number | undefined): string[] { + let widgets = userId && localStorage?.getItem(`dashboard-widgets-${userId}`); + + if (!widgets) { + // Fallback to global widget list + widgets = localStorage?.getItem('dashboard-widgets'); + } + + if (widgets) { + return JSON.parse(widgets); + } else { + return []; + } +} + +export default function DashboardLayout({}: {}) { + const user = useUserState(); + + // Dashboard layout definition + const [layouts, setLayouts] = useState({}); + + // Dashboard widget selection + const [widgets, setWidgets] = useState([]); + + const [editing, setEditing] = useDisclosure(false); + const [removing, setRemoving] = useDisclosure(false); + + const [ + widgetDrawerOpened, + { open: openWidgetDrawer, close: closeWidgetDrawer } + ] = useDisclosure(false); + + const [loaded, setLoaded] = useState(false); + + // Keyboard shortcut for editing the dashboard layout + useHotkeys([ + [ + 'mod+E', + () => { + setEditing.toggle(); + } + ] + ]); + + // Load available widgets + const availableWidgets = useDashboardItems(); + + const widgetLabels = useMemo(() => { + return widgets.map((widget: DashboardWidgetProps) => widget.label); + }, [widgets]); + + // Save the selected widgets to local storage when the selection changes + useEffect(() => { + if (loaded) { + saveDashboardWidgets(widgetLabels, user.userId()); + } + }, [widgetLabels]); + + /** + * Callback function to add a new widget to the dashboard + */ + const addWidget = useCallback( + (widget: string) => { + let newWidget = availableWidgets.items.find( + (wid) => wid.label === widget + ); + + if (newWidget) { + setWidgets([...widgets, newWidget]); + } + + // Update the layouts to include the new widget (and enforce initial size) + let _layouts: any = { ...layouts }; + + Object.keys(_layouts).forEach((key) => { + _layouts[key] = updateLayoutForWidget(_layouts[key], widgets, true); + }); + + setLayouts(_layouts); + }, + [availableWidgets.items, widgets, layouts] + ); + + /** + * Callback function to remove a widget from the dashboard + */ + const removeWidget = useCallback( + (widget: string) => { + // Remove the widget from the list + setWidgets(widgets.filter((item) => item.label !== widget)); + + // Remove the widget from the layout + let _layouts: any = { ...layouts }; + + Object.keys(_layouts).forEach((key) => { + _layouts[key] = _layouts[key].filter( + (item: Layout) => item.i !== widget + ); + }); + + setLayouts(_layouts); + }, + [widgets, layouts] + ); + + // When the layout is rendered, ensure that the widget attributes are observed + const updateLayoutForWidget = useCallback( + (layout: any[], widgets: any[], overrideSize: boolean) => { + return layout.map((item: Layout): Layout => { + // Find the matching widget + let widget = widgets.find( + (widget: DashboardWidgetProps) => widget.label === item.i + ); + + const minH = widget?.minHeight ?? 2; + const minW = widget?.minWidth ?? 1; + + let w = Math.max(item.w ?? 1, minW); + let h = Math.max(item.h ?? 1, minH); + + if (overrideSize) { + w = minW; + h = minH; + } + + return { + ...item, + w: w, + h: h, + minH: minH, + minW: minW + }; + }); + }, + [] + ); + + // Rebuild layout when the widget list changes + useEffect(() => { + onLayoutChange({}, layouts); + }, [widgets]); + + const onLayoutChange = useCallback( + (layout: any, newLayouts: any) => { + // Reconstruct layouts based on the widget requirements + Object.keys(newLayouts).forEach((key) => { + newLayouts[key] = updateLayoutForWidget( + newLayouts[key], + widgets, + false + ); + }); + + if (layouts && loaded && availableWidgets.loaded) { + saveDashboardLayout(newLayouts, user.userId()); + setLayouts(newLayouts); + } + }, + [loaded, widgets, availableWidgets.loaded] + ); + + // Load the dashboard layout from local storage + useEffect(() => { + if (availableWidgets.loaded) { + const initialLayouts = loadDashboardLayout(user.userId()); + const initialWidgetLabels = loadDashboardWidgets(user.userId()); + + setLayouts(initialLayouts); + setWidgets( + availableWidgets.items.filter((widget) => + initialWidgetLabels.includes(widget.label) + ) + ); + + setLoaded(true); + } + }, [availableWidgets.loaded]); + + return ( + <> + + { + setEditing.close(); + setRemoving.close(); + }} + editing={editing} + removing={removing} + /> + + {layouts && loaded && availableWidgets.loaded ? ( + <> + {widgetLabels.length == 0 ? ( +
+ + } + > + {t`Use the menu to add widgets to the dashboard`} + + +
+ ) : ( + + {widgets.map((item: DashboardWidgetProps) => { + return DashboardWidget({ + item: item, + editing: editing, + removing: removing, + onRemove: () => { + removeWidget(item.label); + } + }); + })} + + )} + + ) : ( +
+ +
+ )} + + ); +} diff --git a/src/frontend/src/components/dashboard/DashboardMenu.tsx b/src/frontend/src/components/dashboard/DashboardMenu.tsx new file mode 100644 index 0000000000..1303375cda --- /dev/null +++ b/src/frontend/src/components/dashboard/DashboardMenu.tsx @@ -0,0 +1,135 @@ +import { Trans, t } from '@lingui/macro'; +import { + ActionIcon, + Group, + Indicator, + Menu, + Paper, + Tooltip +} from '@mantine/core'; +import { + IconCircleCheck, + IconDotsVertical, + IconLayout2, + IconLayoutGridAdd, + IconLayoutGridRemove +} from '@tabler/icons-react'; +import { useMemo } from 'react'; + +import useInstanceName from '../../hooks/UseInstanceName'; +import { useUserState } from '../../states/UserState'; +import { StylishText } from '../items/StylishText'; + +/** + * A menu for editing the dashboard layout + */ +export default function DashboardMenu({ + editing, + removing, + onAddWidget, + onStartEdit, + onStartRemove, + onAcceptLayout +}: { + editing: boolean; + removing: boolean; + onAddWidget: () => void; + onStartEdit: () => void; + onStartRemove: () => void; + onAcceptLayout: () => void; +}) { + const user = useUserState(); + const instanceName = useInstanceName(); + + const title = useMemo(() => { + const username = user.username(); + + return ( + {`${instanceName} - ${username}`} + ); + }, [user, instanceName]); + + return ( + + + {title} + + + {(editing || removing) && ( + + + + + + )} + + + + + + + + + + + + Dashboard + + + {!editing && !removing && ( + } + onClick={onStartEdit} + > + Edit Layout + + )} + + {!editing && !removing && ( + } + onClick={onAddWidget} + > + Add Widget + + )} + + {!editing && !removing && ( + } + onClick={onStartRemove} + > + Remove Widgets + + )} + + {(editing || removing) && ( + } + onClick={onAcceptLayout} + > + Accept Layout + + )} + + + + + + ); +} diff --git a/src/frontend/src/components/dashboard/DashboardWidget.tsx b/src/frontend/src/components/dashboard/DashboardWidget.tsx new file mode 100644 index 0000000000..479b7567c1 --- /dev/null +++ b/src/frontend/src/components/dashboard/DashboardWidget.tsx @@ -0,0 +1,84 @@ +import { t } from '@lingui/macro'; +import { ActionIcon, Box, Group, Overlay, Paper, Tooltip } from '@mantine/core'; +import { IconX } from '@tabler/icons-react'; + +import { Boundary } from '../Boundary'; + +/** + * Dashboard widget properties. + * + * @param title The title of the widget + * @param visible A function that returns whether the widget should be visible + * @param render A function that renders the widget + */ +export interface DashboardWidgetProps { + label: string; + title: string; + description: string; + minWidth?: number; + minHeight?: number; + render: () => JSX.Element; + visible?: () => boolean; +} + +/** + * Wrapper for a dashboard widget. + */ +export default function DashboardWidget({ + item, + editing, + removing, + onRemove +}: { + item: DashboardWidgetProps; + editing: boolean; + removing: boolean; + onRemove: () => void; +}) { + // TODO: Implement visibility check + // if (!props?.visible?.() == false) { + // return null; + // } + + // TODO: Add button to remove widget (if "editing") + + return ( + + + + {item.render()} + + {removing && ( + + {removing && ( + + + + + + + + )} + + )} + + + ); +} diff --git a/src/frontend/src/components/dashboard/DashboardWidgetDrawer.tsx b/src/frontend/src/components/dashboard/DashboardWidgetDrawer.tsx new file mode 100644 index 0000000000..81e7103c29 --- /dev/null +++ b/src/frontend/src/components/dashboard/DashboardWidgetDrawer.tsx @@ -0,0 +1,130 @@ +import { t } from '@lingui/macro'; +import { + ActionIcon, + Alert, + Divider, + Drawer, + Group, + Stack, + Table, + Text, + TextInput, + Tooltip +} from '@mantine/core'; +import { useDebouncedValue } from '@mantine/hooks'; +import { IconBackspace, IconLayoutGridAdd } from '@tabler/icons-react'; +import { useMemo, useState } from 'react'; + +import { useDashboardItems } from '../../hooks/UseDashboardItems'; +import { StylishText } from '../items/StylishText'; + +/** + * Drawer allowing the user to add new widgets to the dashboard. + */ +export default function DashboardWidgetDrawer({ + opened, + onClose, + onAddWidget, + currentWidgets +}: { + opened: boolean; + onClose: () => void; + onAddWidget: (widget: string) => void; + currentWidgets: string[]; +}) { + // Load available widgets + const availableWidgets = useDashboardItems(); + + const [filter, setFilter] = useState(''); + const [filterText] = useDebouncedValue(filter, 500); + + // Memoize available (not currently used) widgets + const unusedWidgets = useMemo(() => { + return ( + availableWidgets.items.filter( + (widget) => !currentWidgets.includes(widget.label) + ) ?? [] + ); + }, [availableWidgets.items, currentWidgets]); + + // Filter widgets based on search text + const filteredWidgets = useMemo(() => { + let words = filterText.trim().toLowerCase().split(' '); + + return unusedWidgets.filter((widget) => { + return words.every((word) => + widget.title.toLowerCase().includes(word.trim()) + ); + }); + }, [unusedWidgets, filterText]); + + return ( + + Add Dashboard Widgets + + } + > + + + setFilter(event.currentTarget.value)} + rightSection={ + filter && ( + setFilter('')} + /> + ) + } + styles={{ root: { width: '100%' } }} + /> + + + {filteredWidgets.map((widget) => ( + + + + { + onAddWidget(widget.label); + }} + > + + + + + + {widget.title} + + + {widget.description} + + + ))} + +
+ {unusedWidgets.length === 0 && ( + + {t`There are no more widgets available for the dashboard`} + + )} +
+
+ ); +} diff --git a/src/frontend/src/components/dashboard/DashboardWidgetLibrary.tsx b/src/frontend/src/components/dashboard/DashboardWidgetLibrary.tsx new file mode 100644 index 0000000000..a13372bdd6 --- /dev/null +++ b/src/frontend/src/components/dashboard/DashboardWidgetLibrary.tsx @@ -0,0 +1,180 @@ +import { t } from '@lingui/macro'; + +import { ModelType } from '../../enums/ModelType'; +import { DashboardWidgetProps } from './DashboardWidget'; +import ColorToggleDashboardWidget from './widgets/ColorToggleWidget'; +import GetStartedWidget from './widgets/GetStartedWidget'; +import LanguageSelectDashboardWidget from './widgets/LanguageSelectWidget'; +import NewsWidget from './widgets/NewsWidget'; +import QueryCountDashboardWidget from './widgets/QueryCountDashboardWidget'; + +/** + * + * @returns A list of built-in dashboard widgets which display the number of results for a particular query + */ +export function BuiltinQueryCountWidgets(): DashboardWidgetProps[] { + return [ + QueryCountDashboardWidget({ + label: 'sub-prt', + title: t`Subscribed Parts`, + description: t`Show the number of parts which you have subscribed to`, + modelType: ModelType.part, + params: { starred: true } + }), + QueryCountDashboardWidget({ + label: 'sub-cat', + title: t`Subscribed Categories`, + description: t`Show the number of part categories which you have subscribed to`, + modelType: ModelType.partcategory, + params: { starred: true } + }), + // TODO: 'latest parts' + // TODO: 'BOM waiting validation' + // TODO: 'recently updated stock' + QueryCountDashboardWidget({ + title: t`Low Stock`, + label: 'low-stk', + description: t`Show the number of parts which are low on stock`, + modelType: ModelType.part, + params: { low_stock: true, active: true } + }), + // TODO: Required for build orders + QueryCountDashboardWidget({ + title: t`Expired Stock Items`, + label: 'exp-stk', + description: t`Show the number of stock items which have expired`, + modelType: ModelType.stockitem, + params: { expired: true } + // TODO: Hide if expiry is disabled + }), + QueryCountDashboardWidget({ + title: t`Stale Stock Items`, + label: 'stl-stk', + description: t`Show the number of stock items which are stale`, + modelType: ModelType.stockitem, + params: { stale: true } + // TODO: Hide if expiry is disabled + }), + QueryCountDashboardWidget({ + title: t`Active Build Orders`, + label: 'act-bo', + description: t`Show the number of build orders which are currently active`, + modelType: ModelType.build, + params: { outstanding: true } + }), + QueryCountDashboardWidget({ + title: t`Overdue Build Orders`, + label: 'ovr-bo', + description: t`Show the number of build orders which are overdue`, + modelType: ModelType.build, + params: { overdue: true } + }), + QueryCountDashboardWidget({ + title: t`Assigned Build Orders`, + label: 'asn-bo', + description: t`Show the number of build orders which are assigned to you`, + modelType: ModelType.build, + params: { assigned_to_me: true, outstanding: true } + }), + QueryCountDashboardWidget({ + title: t`Active Sales Orders`, + label: 'act-so', + description: t`Show the number of sales orders which are currently active`, + modelType: ModelType.salesorder, + params: { outstanding: true } + }), + QueryCountDashboardWidget({ + title: t`Overdue Sales Orders`, + label: 'ovr-so', + description: t`Show the number of sales orders which are overdue`, + modelType: ModelType.salesorder, + params: { overdue: true } + }), + QueryCountDashboardWidget({ + title: t`Assigned Sales Orders`, + label: 'asn-so', + description: t`Show the number of sales orders which are assigned to you`, + modelType: ModelType.salesorder, + params: { assigned_to_me: true, outstanding: true } + }), + QueryCountDashboardWidget({ + title: t`Active Purchase Orders`, + label: 'act-po', + description: t`Show the number of purchase orders which are currently active`, + modelType: ModelType.purchaseorder, + params: { outstanding: true } + }), + QueryCountDashboardWidget({ + title: t`Overdue Purchase Orders`, + label: 'ovr-po', + description: t`Show the number of purchase orders which are overdue`, + modelType: ModelType.purchaseorder, + params: { overdue: true } + }), + QueryCountDashboardWidget({ + title: t`Assigned Purchase Orders`, + label: 'asn-po', + description: t`Show the number of purchase orders which are assigned to you`, + modelType: ModelType.purchaseorder, + params: { assigned_to_me: true, outstanding: true } + }), + QueryCountDashboardWidget({ + title: t`Active Return Orders`, + label: 'act-ro', + description: t`Show the number of return orders which are currently active`, + modelType: ModelType.returnorder, + params: { outstanding: true } + }), + QueryCountDashboardWidget({ + title: t`Overdue Return Orders`, + label: 'ovr-ro', + description: t`Show the number of return orders which are overdue`, + modelType: ModelType.returnorder, + params: { overdue: true } + }), + QueryCountDashboardWidget({ + title: t`Assigned Return Orders`, + label: 'asn-ro', + description: t`Show the number of return orders which are assigned to you`, + modelType: ModelType.returnorder, + params: { assigned_to_me: true, outstanding: true } + }) + ]; +} + +export function BuiltinGettingStartedWidgets(): DashboardWidgetProps[] { + return [ + { + label: 'gstart', + title: t`Getting Started`, + description: t`Getting started with InvenTree`, + minWidth: 5, + minHeight: 4, + render: () => + }, + { + label: 'news', + title: t`News Updates`, + description: t`The latest news from InvenTree`, + minWidth: 5, + minHeight: 4, + render: () => + } + ]; +} + +export function BuiltinSettingsWidgets(): DashboardWidgetProps[] { + return [ColorToggleDashboardWidget(), LanguageSelectDashboardWidget()]; +} + +/** + * + * @returns A list of built-in dashboard widgets + */ +export default function DashboardWidgetLibrary(): DashboardWidgetProps[] { + return [ + ...BuiltinQueryCountWidgets(), + ...BuiltinGettingStartedWidgets(), + ...BuiltinSettingsWidgets() + ]; +} diff --git a/src/frontend/src/components/dashboard/widgets/ColorToggleWidget.tsx b/src/frontend/src/components/dashboard/widgets/ColorToggleWidget.tsx new file mode 100644 index 0000000000..fdd73b197f --- /dev/null +++ b/src/frontend/src/components/dashboard/widgets/ColorToggleWidget.tsx @@ -0,0 +1,28 @@ +import { t } from '@lingui/macro'; +import { Group } from '@mantine/core'; + +import { ColorToggle } from '../../items/ColorToggle'; +import { StylishText } from '../../items/StylishText'; +import { DashboardWidgetProps } from '../DashboardWidget'; + +function ColorToggleWidget(title: string) { + return ( + + {title} + + + ); +} + +export default function ColorToggleDashboardWidget(): DashboardWidgetProps { + const title = t`Change Color Mode`; + + return { + label: 'clr', + title: title, + description: t`Change the color mode of the user interface`, + minHeight: 1, + minWidth: 2, + render: () => ColorToggleWidget(title) + }; +} diff --git a/src/frontend/src/components/dashboard/widgets/GetStartedWidget.tsx b/src/frontend/src/components/dashboard/widgets/GetStartedWidget.tsx new file mode 100644 index 0000000000..3a9b5a82ee --- /dev/null +++ b/src/frontend/src/components/dashboard/widgets/GetStartedWidget.tsx @@ -0,0 +1,19 @@ +import { t } from '@lingui/macro'; +import { Stack } from '@mantine/core'; +import { useMemo } from 'react'; + +import { DocumentationLinks } from '../../../defaults/links'; +import { GettingStartedCarousel } from '../../items/GettingStartedCarousel'; +import { MenuLinkItem } from '../../items/MenuLinks'; +import { StylishText } from '../../items/StylishText'; + +export default function GetStartedWidget() { + const docLinks: MenuLinkItem[] = useMemo(() => DocumentationLinks(), []); + + return ( + + {t`Getting Started`} + + + ); +} diff --git a/src/frontend/src/components/dashboard/widgets/LanguageSelectWidget.tsx b/src/frontend/src/components/dashboard/widgets/LanguageSelectWidget.tsx new file mode 100644 index 0000000000..8ede090d47 --- /dev/null +++ b/src/frontend/src/components/dashboard/widgets/LanguageSelectWidget.tsx @@ -0,0 +1,28 @@ +import { t } from '@lingui/macro'; +import { Stack } from '@mantine/core'; + +import { LanguageSelect } from '../../items/LanguageSelect'; +import { StylishText } from '../../items/StylishText'; +import { DashboardWidgetProps } from '../DashboardWidget'; + +function LanguageSelectWidget(title: string) { + return ( + + {title} + + + ); +} + +export default function LanguageSelectDashboardWidget(): DashboardWidgetProps { + const title = t`Change Language`; + + return { + label: 'lngsel', + title: title, + description: t`Change the language of the user interface`, + minHeight: 1, + minWidth: 2, + render: () => LanguageSelectWidget(title) + }; +} diff --git a/src/frontend/src/components/dashboard/widgets/NewsWidget.tsx b/src/frontend/src/components/dashboard/widgets/NewsWidget.tsx new file mode 100644 index 0000000000..ee704ae939 --- /dev/null +++ b/src/frontend/src/components/dashboard/widgets/NewsWidget.tsx @@ -0,0 +1,143 @@ +import { t } from '@lingui/macro'; +import { + ActionIcon, + Alert, + Anchor, + Container, + Group, + ScrollArea, + Stack, + Table, + Text, + Tooltip +} from '@mantine/core'; +import { IconMailCheck } from '@tabler/icons-react'; +import { useQuery } from '@tanstack/react-query'; +import { useCallback, useMemo } from 'react'; + +import { api } from '../../../App'; +import { formatDate } from '../../../defaults/formatters'; +import { ApiEndpoints } from '../../../enums/ApiEndpoints'; +import { apiUrl } from '../../../states/ApiState'; +import { useUserState } from '../../../states/UserState'; +import { StylishText } from '../../items/StylishText'; + +/** + * Render a link to an external news item + */ +function NewsLink({ item }: { item: any }) { + let link: string = item.link; + + if (link && link.startsWith('/')) { + link = 'https://inventree.org' + link; + } + + if (link) { + return ( + + {item.title} + + ); + } else { + return {item.title}; + } +} + +function NewsItem({ + item, + onMarkRead +}: { + item: any; + onMarkRead: (id: number) => void; +}) { + const date: string = item.published?.split(' ')[0] ?? ''; + return ( + + {formatDate(date)} + + + + + + onMarkRead(item.pk)} + > + + + + + + ); +} + +/** + * A widget which displays a list of news items on the dashboard + */ +export default function NewsWidget() { + const user = useUserState(); + + const newsItems = useQuery({ + queryKey: ['news-items'], + queryFn: () => + api + .get(apiUrl(ApiEndpoints.news), { + params: { + read: false + } + }) + .then((response: any) => response.data) + .catch(() => []) + }); + + const markRead = useCallback( + (id: number) => { + api + .patch(apiUrl(ApiEndpoints.news, id), { + read: true + }) + .then(() => { + newsItems.refetch(); + }); + }, + [newsItems] + ); + + const hasNews = useMemo( + () => (newsItems.data?.length ?? 0) > 0, + [newsItems.data] + ); + + if (!user.isSuperuser()) { + return ( + + {t`This widget requires superuser permissions`} + + ); + } + + return ( + + {t`News Updates`} + + + + + {hasNews ? ( + newsItems.data?.map((item: any) => ( + + )) + ) : ( + + {t`There are no unread news items`} + + )} + +
+
+
+
+ ); +} diff --git a/src/frontend/src/components/dashboard/widgets/QueryCountDashboardWidget.tsx b/src/frontend/src/components/dashboard/widgets/QueryCountDashboardWidget.tsx new file mode 100644 index 0000000000..452e99acb3 --- /dev/null +++ b/src/frontend/src/components/dashboard/widgets/QueryCountDashboardWidget.tsx @@ -0,0 +1,131 @@ +import { + ActionIcon, + Card, + Group, + Loader, + Skeleton, + Space, + Stack, + Text +} from '@mantine/core'; +import { IconExternalLink } from '@tabler/icons-react'; +import { useQuery } from '@tanstack/react-query'; +import { on } from 'events'; +import { ReactNode, useCallback } from 'react'; +import { useNavigate } from 'react-router-dom'; + +import { api } from '../../../App'; +import { ModelType } from '../../../enums/ModelType'; +import { identifierString } from '../../../functions/conversion'; +import { InvenTreeIcon, InvenTreeIconType } from '../../../functions/icons'; +import { navigateToLink } from '../../../functions/navigation'; +import { apiUrl } from '../../../states/ApiState'; +import { useUserState } from '../../../states/UserState'; +import { StylishText } from '../../items/StylishText'; +import { ModelInformationDict } from '../../render/ModelType'; +import { DashboardWidgetProps } from '../DashboardWidget'; + +/** + * A simple dashboard widget for displaying the number of results for a particular query + */ +function QueryCountWidget({ + modelType, + title, + icon, + params +}: { + modelType: ModelType; + title: string; + icon?: InvenTreeIconType; + params: any; +}): ReactNode { + const user = useUserState(); + const navigate = useNavigate(); + + const modelProperties = ModelInformationDict[modelType]; + + const query = useQuery({ + queryKey: ['dashboard-query-count', modelType, params], + enabled: user.hasViewPermission(modelType), + refetchOnMount: true, + queryFn: () => { + return api + .get(apiUrl(modelProperties.api_endpoint), { + params: { + ...params, + limit: 1 + } + }) + .then((res) => res.data); + } + }); + + const onFollowLink = useCallback( + (event: any) => { + if (modelProperties.url_overview) { + let url = modelProperties.url_overview; + + if (params) { + url += '?'; + for (const key in params) { + url += `${key}=${params[key]}&`; + } + } + + navigateToLink(url, navigate, event); + } + }, + [modelProperties, params] + ); + + // TODO: Improve visual styling + + return ( + + + + {title} + + {query.isFetching ? ( + + ) : ( + {query.data?.count ?? '-'} + )} + {modelProperties?.url_overview && ( + + + + )} + + + + ); +} + +/** + * Construct a dashboard widget descriptor, which displays the number of results for a particular query + */ +export default function QueryCountDashboardWidget({ + label, + title, + description, + modelType, + params +}: { + label: string; + title: string; + description: string; + modelType: ModelType; + params: any; +}): DashboardWidgetProps { + return { + label: label, + title: title, + description: description, + minWidth: 2, + minHeight: 1, + render: () => ( + + ) + }; +} diff --git a/src/frontend/src/components/details/Details.tsx b/src/frontend/src/components/details/Details.tsx index b266bd47e1..4b72f69600 100644 --- a/src/frontend/src/components/details/Details.tsx +++ b/src/frontend/src/components/details/Details.tsx @@ -11,10 +11,11 @@ import { } from '@mantine/core'; import { useQuery } from '@tanstack/react-query'; import { getValueAtPath } from 'mantine-datatable'; -import { useCallback, useMemo } from 'react'; +import { ReactNode, useCallback, useMemo } from 'react'; import { useNavigate } from 'react-router-dom'; import { api } from '../../App'; +import { formatDate } from '../../defaults/formatters'; import { ApiEndpoints } from '../../enums/ApiEndpoints'; import { ModelType } from '../../enums/ModelType'; import { InvenTreeIcon, InvenTreeIconType } from '../../functions/icons'; @@ -50,7 +51,7 @@ type BadgeType = 'owner' | 'user' | 'group'; type ValueFormatterReturn = string | number | null | React.ReactNode; type StringDetailField = { - type: 'string' | 'text'; + type: 'string' | 'text' | 'date'; unit?: boolean; }; @@ -96,7 +97,10 @@ type FieldProps = { * Badge shows username, full name, or group name depending on server settings. * Badge appends icon to describe type of Owner */ -function NameBadge({ pk, type }: { pk: string | number; type: BadgeType }) { +function NameBadge({ + pk, + type +}: Readonly<{ pk: string | number; type: BadgeType }>) { const { data } = useQuery({ queryKey: ['badge', type, pk], queryFn: async () => { @@ -171,6 +175,10 @@ function NameBadge({ pk, type }: { pk: string | number; type: BadgeType }) { ); } +function DateValue(props: Readonly) { + return {formatDate(props.field_value?.toString())}; +} + /** * Renders the value of a 'string' or 'text' field. * If owner is defined, only renders a badge @@ -179,37 +187,28 @@ function NameBadge({ pk, type }: { pk: string | number; type: BadgeType }) { function TableStringValue(props: Readonly) { let value = props?.field_value; - if (props?.field_data?.value_formatter) { - value = props.field_data.value_formatter(); - } - - if (value === undefined) { - return '---'; - } + let renderedValue = null; if (props.field_data?.badge) { return ; + } else if (props?.field_data?.value_formatter) { + renderedValue = props.field_data.value_formatter(); + } else if (value === null || value === undefined) { + renderedValue = '---'; + } else { + renderedValue = {value.toString()}; } return ( -
- - - {value ? value : props.field_data?.unit && '0'}{' '} - {props.field_data.unit == true && props.unit} - - {props.field_data.user && ( - - )} + + + {renderedValue} + {props.field_data.unit == true && {props.unit}} -
+ {props.field_data.user && ( + + )} + ); } @@ -303,7 +302,7 @@ function TableAnchorValue(props: Readonly) { } return ( -
+ <> {make_link ? ( {value} @@ -311,11 +310,15 @@ function TableAnchorValue(props: Readonly) { ) : ( {value} )} -
+ ); } function ProgressBarValue(props: Readonly) { + if (props.field_data.total <= 0) { + return {props.field_data.progress}; + } + return ( ) { ); } -function CopyField({ value }: { value: string }) { +function CopyField({ value }: Readonly<{ value: string }>) { return ; } export function DetailsTableField({ item, field -}: { +}: Readonly<{ item: any; field: DetailsField; -}) { +}>) { function getFieldType(type: string) { switch (type) { - case 'text': - case 'string': - return TableStringValue; case 'boolean': return BooleanValue; case 'link': @@ -355,6 +355,10 @@ export function DetailsTableField({ return ProgressBarValue; case 'status': return StatusValue; + case 'date': + return DateValue; + case 'text': + case 'string': default: return TableStringValue; } @@ -394,11 +398,11 @@ export function DetailsTable({ item, fields, title -}: { +}: Readonly<{ item: any; fields: DetailsField[]; title?: string; -}) { +}>) { return ( diff --git a/src/frontend/src/components/details/DetailsImage.tsx b/src/frontend/src/components/details/DetailsImage.tsx index f380997b9e..c4d3ccc630 100644 --- a/src/frontend/src/components/details/DetailsImage.tsx +++ b/src/frontend/src/components/details/DetailsImage.tsx @@ -19,6 +19,8 @@ import { api } from '../../App'; import { UserRoles } from '../../enums/Roles'; import { cancelEvent } from '../../functions/events'; import { InvenTreeIcon } from '../../functions/icons'; +import { useEditApiFormModal } from '../../hooks/UseForm'; +import { useGlobalSettingsState } from '../../states/SettingsState'; import { useUserState } from '../../states/UserState'; import { PartThumbTable } from '../../tables/part/PartThumbTable'; import { vars } from '../../theme'; @@ -42,11 +44,13 @@ export type DetailImageProps = { * Actions for Detail Images. * If true, the button type will be visible * @param {boolean} selectExisting - PART ONLY. Allows selecting existing images as part image + * @param {boolean} downloadImage - Allows downloading image from a remote URL * @param {boolean} uploadFile - Allows uploading a new image * @param {boolean} deleteFile - Allows deleting the current image */ export type DetailImageButtonProps = { selectExisting?: boolean; + downloadImage?: boolean; uploadFile?: boolean; deleteFile?: boolean; }; @@ -81,10 +85,10 @@ const removeModal = (apiPath: string, setImage: (image: string) => void) => function UploadModal({ apiPath, setImage -}: { +}: Readonly<{ apiPath: string; setImage: (image: string) => void; -}) { +}>) { const [currentFile, setCurrentFile] = useState(null); let uploading = false; @@ -96,7 +100,7 @@ function UploadModal({ Drag and drop to upload - + Click to select file(s) @@ -131,7 +135,7 @@ function UploadModal({ {file.name} - + {size.toFixed(2)} MB @@ -245,15 +249,19 @@ function ImageActionButtons({ apiPath, hasImage, pk, - setImage -}: { + setImage, + downloadImage +}: Readonly<{ actions?: DetailImageButtonProps; visible: boolean; apiPath: string; hasImage: boolean; pk: string; setImage: (image: string) => void; -}) { + downloadImage: () => void; +}>) { + const globalSettings = useGlobalSettingsState(); + return ( <> {visible && ( @@ -284,6 +292,25 @@ function ImageActionButtons({ }} /> )} + {actions.downloadImage && + globalSettings.isSet('INVENTREE_DOWNLOAD_FROM_URL') && ( + + } + tooltip={t`Download remote image`} + variant="outline" + size="lg" + tooltipAlignment="top" + onClick={(event: any) => { + cancelEvent(event); + downloadImage(); + }} + /> + )} {actions.uploadFile && ( ) { const permissions = useUserState(); + const downloadImage = useEditApiFormModal({ + url: props.apiPath, + title: t`Download Image`, + fields: { + remote_image: {} + }, + timeout: 10000, + successMessage: t`Image downloaded successfully`, + onFormSuccess: (response: any) => { + if (response.image) { + setAndRefresh(response.image); + } + } + }); + const hasOverlay: boolean = useMemo(() => { return ( props.imageActions?.selectExisting || @@ -359,27 +401,33 @@ export function DetailsImage(props: Readonly) { }; return ( - - <> - - {permissions.hasChangeRole(props.appRole) && hasOverlay && hovered && ( - - - - )} - - + <> + {downloadImage.modal} + + <> + + {permissions.hasChangeRole(props.appRole) && + hasOverlay && + hovered && ( + + + + )} + + + ); } diff --git a/src/frontend/src/components/editors/NotesEditor.tsx b/src/frontend/src/components/editors/NotesEditor.tsx index 30343af5fa..e576512f15 100644 --- a/src/frontend/src/components/editors/NotesEditor.tsx +++ b/src/frontend/src/components/editors/NotesEditor.tsx @@ -1,80 +1,21 @@ import { t } from '@lingui/macro'; import { notifications } from '@mantine/notifications'; -import { - AdmonitionDirectiveDescriptor, - BlockTypeSelect, - BoldItalicUnderlineToggles, - ButtonWithTooltip, - CodeToggle, - CreateLink, - InsertAdmonition, - InsertImage, - InsertTable, - ListsToggle, - MDXEditor, - type MDXEditorMethods, - Separator, - UndoRedo, - directivesPlugin, - headingsPlugin, - imagePlugin, - linkDialogPlugin, - linkPlugin, - listsPlugin, - markdownShortcutPlugin, - quotePlugin, - tablePlugin, - toolbarPlugin -} from '@mdxeditor/editor'; -import '@mdxeditor/editor/style.css'; -import { IconDeviceFloppy, IconEdit, IconEye } from '@tabler/icons-react'; import { useQuery } from '@tanstack/react-query'; -import { ReactNode, useCallback, useEffect, useMemo, useState } from 'react'; -import React from 'react'; +import DOMPurify from 'dompurify'; +import EasyMDE, { default as SimpleMde } from 'easymde'; +import 'easymde/dist/easymde.min.css'; +import { useCallback, useEffect, useMemo, useState } from 'react'; +import SimpleMDE from 'react-simplemde-editor'; import { api } from '../../App'; import { ApiEndpoints } from '../../enums/ApiEndpoints'; import { ModelType } from '../../enums/ModelType'; import { apiUrl } from '../../states/ApiState'; -import { useLocalState } from '../../states/LocalState'; import { ModelInformationDict } from '../render/ModelType'; -/* - * Upload an drag-n-dropped image to the server against a model type and instance. - */ -async function uploadNotesImage( - image: File, - modelType: ModelType, - modelId: number -): Promise { - const formData = new FormData(); - formData.append('image', image); - - formData.append('model_type', modelType); - formData.append('model_id', modelId.toString()); - - const response = await api - .post(apiUrl(ApiEndpoints.notes_image_upload), formData, { - headers: { - 'Content-Type': 'multipart/form-data' - } - }) - .catch(() => { - notifications.hide('notes'); - notifications.show({ - title: t`Error`, - message: t`Image upload failed`, - color: 'red', - id: 'notes' - }); - }); - - return response?.data?.image ?? ''; -} - /* * A text editor component for editing notes against a model type and instance. - * Uses the MDXEditor component - https://mdxeditor.dev/ + * Uses the react-simple-mde editor: https://github.com/RIP21/react-simplemde-editor * * TODO: * - Disable editing by default when the component is launched - user can click an "edit" button to enable @@ -85,18 +26,16 @@ export default function NotesEditor({ modelType, modelId, editable -}: { +}: Readonly<{ modelType: ModelType; modelId: number; editable?: boolean; -}) { - const ref = React.useRef(null); - - const { host } = useLocalState(); - +}>) { // In addition to the editable prop, we also need to check if the user has "enabled" editing const [editing, setEditing] = useState(false); + const [markdown, setMarkdown] = useState(''); + useEffect(() => { // Initially disable editing mode on load setEditing(false); @@ -107,27 +46,51 @@ export default function NotesEditor({ return apiUrl(modelInfo.api_endpoint, modelId); }, [modelType, modelId]); + // Image upload handler const imageUploadHandler = useCallback( - (image: File): Promise => { - return uploadNotesImage(image, modelType, modelId); + ( + file: File, + onSuccess: (url: string) => void, + onError: (error: string) => void + ) => { + const formData = new FormData(); + formData.append('image', file); + + formData.append('model_type', modelType); + formData.append('model_id', modelId.toString()); + + api + .post(apiUrl(ApiEndpoints.notes_image_upload), formData, { + headers: { + 'Content-Type': 'multipart/form-data' + } + }) + .catch((error) => { + onError(error.message); + notifications.hide('notes'); + notifications.show({ + id: 'notes', + title: t`Error`, + message: t`Image upload failed`, + color: 'red' + }); + }) + .then((response: any) => { + onSuccess(response.data.image); + notifications.hide('notes'); + notifications.show({ + id: 'notes', + title: t`Success`, + message: t`Image uploaded successfully`, + color: 'green' + }); + }); }, [modelType, modelId] ); - const imagePreviewHandler = useCallback( - async (image: string): Promise => { - // If the image is a relative URL, then we need to prepend the base URL - if (image.startsWith('/media/')) { - image = host + image; - } - - return image; - }, - [host] - ); - const dataQuery = useQuery({ - queryKey: [noteUrl], + queryKey: ['notes-editor', noteUrl, modelType, modelId], queryFn: () => api .get(noteUrl) @@ -136,125 +99,132 @@ export default function NotesEditor({ enabled: true }); + // Update internal markdown data when the query data changes useEffect(() => { - ref.current?.setMarkdown(dataQuery.data ?? ''); - }, [dataQuery.data, ref.current]); + setMarkdown(dataQuery.data ?? ''); + }, [dataQuery.data]); // Callback to save notes to the server - const saveNotes = useCallback(() => { - const markdown = ref.current?.getMarkdown(); + const saveNotes = useCallback( + (markdown: string) => { + if (!noteUrl) { + return; + } - if (!noteUrl || markdown === undefined) { - return; + api + .patch(noteUrl, { notes: markdown }) + .then(() => { + notifications.hide('notes'); + notifications.show({ + title: t`Success`, + message: t`Notes saved successfully`, + color: 'green', + id: 'notes', + autoClose: 2000 + }); + }) + .catch((error) => { + notifications.hide('notes'); + + let msg = + error?.response?.data?.non_field_errors[0] ?? + t`Failed to save notes`; + + notifications.show({ + title: t`Error Saving Notes`, + message: msg, + color: 'red', + id: 'notes' + }); + }); + }, + [api, noteUrl] + ); + + const editorOptions: SimpleMde.Options = useMemo(() => { + let icons: any[] = []; + + if (editing) { + icons.push({ + name: 'save-notes', + action: (editor: SimpleMde) => { + saveNotes(editor.value()); + }, + className: 'fa fa-save', + title: t`Save Notes` + }); + + icons.push('|'); + + icons.push('heading-1', 'heading-2', 'heading-3', '|'); // Headings + icons.push('bold', 'italic', 'strikethrough', '|'); // Text styles + icons.push('unordered-list', 'ordered-list', 'code', 'quote', '|'); // Text formatting + icons.push('table', 'link', 'image', '|'); + icons.push('horizontal-rule', '|', 'guide'); // Misc + + icons.push('|', 'undo', 'redo'); // Undo/Redo + + icons.push('|'); + + icons.push({ + name: 'edit-disabled', + action: () => setEditing(false), + className: 'fa fa-times', + title: t`Close Editor` + }); + } else if (editable) { + icons.push({ + name: 'edit-enabled', + action: () => setEditing(true), + className: 'fa fa-edit', + title: t`Enable Editing` + }); } - api - .patch(noteUrl, { notes: markdown }) - .then(() => { - notifications.hide('notes'); - notifications.show({ - title: t`Success`, - message: t`Notes saved successfully`, - color: 'green', - id: 'notes' - }); - }) - .catch(() => { - notifications.hide('notes'); - notifications.show({ - title: t`Error`, - message: t`Failed to save notes`, - color: 'red', - id: 'notes' - }); - }); - }, [api, noteUrl, ref.current]); + return { + toolbar: icons, + uploadImage: true, + imagePathAbsolute: true, + imageUploadFunction: imageUploadHandler, + renderingConfig: { + sanitizerFunction: (html: string) => { + return DOMPurify.sanitize(html); + } + }, + sideBySideFullscreen: false, + shortcuts: {}, + spellChecker: false + }; + }, [editable, editing]); - const plugins: any[] = useMemo(() => { - let plg = [ - directivesPlugin({ - directiveDescriptors: [AdmonitionDirectiveDescriptor] - }), - headingsPlugin(), - imagePlugin({ - imageUploadHandler: imageUploadHandler, - imagePreviewHandler: imagePreviewHandler, - disableImageResize: true // Note: To enable image resize, we must allow HTML tags in the server - }), - linkPlugin(), - linkDialogPlugin(), - listsPlugin(), - markdownShortcutPlugin(), - quotePlugin(), - tablePlugin() - ]; + const [mdeInstance, setMdeInstance] = useState(null); - let toolbar: ReactNode[] = []; - if (editable) { - toolbar = [ - setEditing(!editing)} - > - {editing ? : } - - ]; + useEffect(() => { + if (mdeInstance) { + let previewMode = !(editable && editing); - if (editing) { - toolbar = [ - ...toolbar, - saveNotes()} - title={t`Save Notes`} - disabled={false} - > - - , - , - , - , - , - , - , - , - , - , - , - , - - ]; + mdeInstance.codemirror?.setOption('readOnly', previewMode); + + // Ensure the preview mode is toggled if required + if (mdeInstance.isPreviewActive() != previewMode) { + let sibling = mdeInstance?.codemirror.getWrapperElement()?.nextSibling; + + if (sibling != null) { + EasyMDE.togglePreview(mdeInstance); + } } } - - // If the user is allowed to edit, then add the toolbar - if (editable) { - plg.push( - toolbarPlugin({ - toolbarContents: () => ( - <> - {toolbar.map((item, index) => item)} - {editing && } - - ) - }) - ); - } - - return plg; - }, [ - dataQuery.data, - editable, - editing, - imageUploadHandler, - imagePreviewHandler, - saveNotes - ]); + }, [mdeInstance, editable, editing]); return ( - + setMdeInstance(instance)} + onChange={(value: string) => { + setMarkdown(value); + }} + options={editorOptions} + value={markdown} + /> ); } diff --git a/src/frontend/src/components/editors/TemplateEditor/TemplateEditor.tsx b/src/frontend/src/components/editors/TemplateEditor/TemplateEditor.tsx index 1f03f3ce71..6e8290458c 100644 --- a/src/frontend/src/components/editors/TemplateEditor/TemplateEditor.tsx +++ b/src/frontend/src/components/editors/TemplateEditor/TemplateEditor.tsx @@ -9,7 +9,11 @@ import { Tabs } from '@mantine/core'; import { openConfirmModal } from '@mantine/modals'; -import { notifications, showNotification } from '@mantine/notifications'; +import { + hideNotification, + notifications, + showNotification +} from '@mantine/notifications'; import { IconAlertTriangle, IconDeviceFloppy, @@ -30,6 +34,7 @@ import { ModelType } from '../../../enums/ModelType'; import { TablerIconType } from '../../../functions/icons'; import { apiUrl } from '../../../states/ApiState'; import { TemplateI } from '../../../tables/settings/TemplateTable'; +import { Boundary } from '../../Boundary'; import { SplitButton } from '../../buttons/SplitButton'; import { StandaloneField } from '../../forms/StandaloneField'; import { ModelInformationDict } from '../../render/ModelType'; @@ -37,22 +42,26 @@ import { ModelInformationDict } from '../../render/ModelType'; type EditorProps = { template: TemplateI; }; + type EditorRef = { setCode: (code: string) => void | Promise; getCode: () => (string | undefined) | Promise; }; + export type EditorComponent = React.ForwardRefExoticComponent< EditorProps & React.RefAttributes >; + export type Editor = { key: string; name: string; - icon: TablerIconType; + icon?: TablerIconType; component: EditorComponent; }; type PreviewAreaProps = {}; -type PreviewAreaRef = { + +export type PreviewAreaRef = { updatePreview: ( code: string, previewItem: string, @@ -60,9 +69,11 @@ type PreviewAreaRef = { templateEditorProps: TemplateEditorProps ) => void | Promise; }; + export type PreviewAreaComponent = React.ForwardRefExoticComponent< PreviewAreaProps & React.RefAttributes >; + export type PreviewArea = { key: string; name: string; @@ -126,10 +137,25 @@ export function TemplateEditor(props: Readonly) { api.get(templateUrl).then((response: any) => { if (response.data?.template) { - api.get(response.data.template).then((res) => { - codeRef.current = res.data; - loadCodeToEditor(res.data); - }); + api + .get(response.data.template) + .then((res) => { + codeRef.current = res.data; + loadCodeToEditor(res.data); + }) + .catch(() => { + console.error( + `ERR: Could not load template from ${response.data.template}` + ); + codeRef.current = undefined; + hideNotification('template-load-error'); + showNotification({ + id: 'template-load-error', + title: t`Error`, + message: t`Could not load the template from the server.`, + color: 'red' + }); + }); } }); }, [templateUrl]); @@ -228,164 +254,171 @@ export function TemplateEditor(props: Readonly) { }, [previewApiUrl, templateFilters]); return ( - - - { - codeRef.current = await getCodeFromEditor(); - setEditorValue(v); - }} - keepMounted={false} - style={{ - minWidth: '300px', - flex: '1', - display: 'flex', - flexDirection: 'column' - }} - > - - {editors.map((Editor) => ( - } - > - {Editor.name} - - ))} - - - updatePreview(true, false), - disabled: !previewItem || isPreviewLoading - }, - { - key: 'preview_save', - name: t`Save & Reload Preview`, - tooltip: t`Save the current template and reload the preview`, - icon: IconDeviceFloppy, - onClick: () => updatePreview(hasSaveConfirmed), - disabled: !previewItem || isPreviewLoading - } - ]} - /> - - - - {editors.map((Editor) => ( - - {/* @ts-ignore-next-line */} - - - ))} - - - - - {previewAreas.map((PreviewArea) => ( - } - > - {PreviewArea.name} - - ))} - - -
+ + + { + codeRef.current = await getCodeFromEditor(); + setEditorValue(v); + }} + keepMounted={false} style={{ - minWidth: '100%', - paddingBottom: '10px', - paddingTop: '10px' + minWidth: '300px', + flex: '1', + display: 'flex', + flexDirection: 'column' }} > - setPreviewItem(value) - }} - /> -
+ + {editors.map((Editor, index) => { + return ( + } + > + {Editor.name} + + ); + })} - {previewAreas.map((PreviewArea) => ( - -
+ updatePreview(true, false), + disabled: !previewItem || isPreviewLoading + }, + { + key: 'preview_save', + name: t`Save & Reload Preview`, + tooltip: t`Save the current template and reload the preview`, + icon: IconDeviceFloppy, + onClick: () => updatePreview(hasSaveConfirmed), + disabled: !previewItem || isPreviewLoading + } + ]} + /> + + + + {editors.map((Editor) => ( + {/* @ts-ignore-next-line */} - + + + ))} + - {errorOverlay && ( - - setErrorOverlay(null)} - style={{ - position: 'absolute', - top: '10px', - right: '10px', - color: '#fff' - }} - variant="filled" - /> - } - title={t`Error rendering template`} - mx="10px" - > - {errorOverlay} - - - )} -
-
- ))} -
-
-
+ + + {previewAreas.map((PreviewArea) => ( + + } + > + {PreviewArea.name} + + ))} + + +
+ setPreviewItem(value) + }} + /> +
+ + {previewAreas.map((PreviewArea) => ( + +
+ {/* @ts-ignore-next-line */} + + + {errorOverlay && ( + + setErrorOverlay(null)} + style={{ + position: 'absolute', + top: '10px', + right: '10px', + color: '#fff' + }} + variant="filled" + /> + } + title={t`Error rendering template`} + mx="10px" + > + {errorOverlay} + + + )} +
+
+ ))} +
+ +
+ ); } diff --git a/src/frontend/src/components/errors/ClientError.tsx b/src/frontend/src/components/errors/ClientError.tsx index 85811ac736..67869b7231 100644 --- a/src/frontend/src/components/errors/ClientError.tsx +++ b/src/frontend/src/components/errors/ClientError.tsx @@ -5,7 +5,7 @@ import NotAuthenticated from './NotAuthenticated'; import NotFound from './NotFound'; import PermissionDenied from './PermissionDenied'; -export default function ClientError({ status }: { status?: number }) { +export default function ClientError({ status }: Readonly<{ status?: number }>) { switch (status) { case 401: return ; diff --git a/src/frontend/src/components/errors/GenericErrorPage.tsx b/src/frontend/src/components/errors/GenericErrorPage.tsx index 0e712e0bb0..128f487955 100644 --- a/src/frontend/src/components/errors/GenericErrorPage.tsx +++ b/src/frontend/src/components/errors/GenericErrorPage.tsx @@ -19,13 +19,13 @@ export default function ErrorPage({ title, message, status -}: { +}: Readonly<{ title: string; message: string; status?: number; redirectMessage?: string; redirectTarget?: string; -}) { +}>) { const navigate = useNavigate(); return ( diff --git a/src/frontend/src/components/errors/ServerError.tsx b/src/frontend/src/components/errors/ServerError.tsx index 4539645563..4d0aa0b39b 100644 --- a/src/frontend/src/components/errors/ServerError.tsx +++ b/src/frontend/src/components/errors/ServerError.tsx @@ -2,7 +2,7 @@ import { t } from '@lingui/macro'; import GenericErrorPage from './GenericErrorPage'; -export default function ServerError({ status }: { status?: number }) { +export default function ServerError({ status }: Readonly<{ status?: number }>) { return ( ) { const props = useMemo( () => ({ ..._props, @@ -197,11 +200,11 @@ export function ApiForm({ id, props, optionsLoading -}: { +}: Readonly<{ id: string; props: ApiFormProps; optionsLoading: boolean; -}) { +}>) { const navigate = useNavigate(); const [fields, setFields] = useState( @@ -397,11 +400,13 @@ export function ApiForm({ data = props.processFormData(data); } - let dataForm = new FormData(); + let jsonData = { ...data }; + let formData = new FormData(); Object.keys(data).forEach((key: string) => { let value: any = data[key]; let field_type = fields[key]?.field_type; + let exclude = fields[key]?.exclude; if (field_type == 'file upload' && !!value) { hasFiles = true; @@ -418,15 +423,18 @@ export function ApiForm({ } } - if (value != undefined) { - dataForm.append(key, value); + if (exclude) { + // Remove the field from the data + delete jsonData[key]; + } else if (value != undefined) { + formData.append(key, value); } }); return api({ method: method, url: url, - data: hasFiles ? dataForm : data, + data: hasFiles ? formData : jsonData, timeout: props.timeout, headers: { 'Content-Type': hasFiles ? 'multipart/form-data' : 'application/json' @@ -502,7 +510,22 @@ export function ApiForm({ } if (typeof v === 'object' && Array.isArray(v)) { - form.setError(path, { message: v.join(', ') }); + if (field?.field_type == 'table') { + // Special handling for "table" fields - they have nested errors + v.forEach((item: any, idx: number) => { + for (const [key, value] of Object.entries(item)) { + const path: string = `${k}.${idx}.${key}`; + if (Array.isArray(value)) { + form.setError(path, { message: value.join(', ') }); + } + } + }); + } else { + // Standard error handling for other fields + form.setError(path, { message: v.join(', ') }); + } + } else if (typeof v === 'string') { + form.setError(path, { message: v }); } else { processErrors(v, path); } @@ -511,6 +534,7 @@ export function ApiForm({ processErrors(error.response.data); setNonFieldErrors(_nonFieldErrors); + break; default: // Unexpected state on form error @@ -519,7 +543,7 @@ export function ApiForm({ break; } } else { - invalidResponse(0); + showTimeoutNotification(); props.onFormError?.(); } @@ -589,6 +613,15 @@ export function ApiForm({ control={form.control} url={url} setFields={setFields} + onKeyDown={(value) => { + if ( + value == 'Enter' && + !isLoading && + (!props.fetchInitialData || isDirty) + ) { + form.handleSubmit(submitForm, onFormError)(); + } + }} /> ); })} @@ -636,10 +669,10 @@ export function ApiForm({ export function CreateApiForm({ id, props -}: { +}: Readonly<{ id?: string; props: ApiFormProps; -}) { +}>) { const createProps = useMemo( () => ({ ...props, @@ -654,15 +687,15 @@ export function CreateApiForm({ export function EditApiForm({ id, props -}: { +}: Readonly<{ id?: string; props: ApiFormProps; -}) { +}>) { const editProps = useMemo( () => ({ ...props, fetchInitialData: props.fetchInitialData ?? true, - submitText: t`Update` ?? props.submitText, + submitText: props.submitText ?? t`Update`, method: 'PUT' }), [props] @@ -674,10 +707,10 @@ export function EditApiForm({ export function DeleteApiForm({ id, props -}: { +}: Readonly<{ id?: string; props: ApiFormProps; -}) { +}>) { const deleteProps = useMemo( () => ({ ...props, diff --git a/src/frontend/src/components/forms/AuthenticationForm.tsx b/src/frontend/src/components/forms/AuthenticationForm.tsx index b469ea8e27..37f7e8b5ae 100644 --- a/src/frontend/src/components/forms/AuthenticationForm.tsx +++ b/src/frontend/src/components/forms/AuthenticationForm.tsx @@ -17,7 +17,11 @@ import { useLocation, useNavigate } from 'react-router-dom'; import { api } from '../../App'; import { ApiEndpoints } from '../../enums/ApiEndpoints'; -import { doBasicLogin, doSimpleLogin } from '../../functions/auth'; +import { + doBasicLogin, + doSimpleLogin, + followRedirect +} from '../../functions/auth'; import { showLoginNotification } from '../../functions/notifications'; import { apiUrl, useServerApiState } from '../../states/ApiState'; import { useUserState } from '../../states/UserState'; @@ -51,8 +55,7 @@ export function AuthenticationForm() { title: t`Login successful`, message: t`Logged in successfully` }); - - navigate(location?.state?.redirectFrom ?? '/home'); + followRedirect(navigate, location?.state); } else { showLoginNotification({ title: t`Login failed`, @@ -118,7 +121,7 @@ export function AuthenticationForm() { navigate('/reset-password')} > @@ -143,7 +146,7 @@ export function AuthenticationForm() { setMode.toggle()} > @@ -278,10 +281,10 @@ export function RegistrationForm() { export function ModeSelector({ loginMode, setMode -}: { +}: Readonly<{ loginMode: boolean; setMode: any; -}) { +}>) { const [auth_settings] = useServerApiState((state) => [state.auth_settings]); const registration_enabled = auth_settings?.registration_enabled || @@ -297,7 +300,7 @@ export function ModeSelector({ setMode.close()} > @@ -308,7 +311,7 @@ export function ModeSelector({ setMode.open()} > diff --git a/src/frontend/src/components/forms/HostOptionsForm.tsx b/src/frontend/src/components/forms/HostOptionsForm.tsx index 15f8368256..dddb592b83 100644 --- a/src/frontend/src/components/forms/HostOptionsForm.tsx +++ b/src/frontend/src/components/forms/HostOptionsForm.tsx @@ -17,10 +17,10 @@ import { HostList } from '../../states/states'; export function HostOptionsForm({ data, saveOptions -}: { +}: Readonly<{ data: HostList; saveOptions: (newData: HostList) => void; -}) { +}>) { const form = useForm({ initialValues: data }); function deleteItem(key: string) { const newData = form.values; diff --git a/src/frontend/src/components/forms/InstanceOptions.tsx b/src/frontend/src/components/forms/InstanceOptions.tsx index 475cc30fd4..65616aa1c8 100644 --- a/src/frontend/src/components/forms/InstanceOptions.tsx +++ b/src/frontend/src/components/forms/InstanceOptions.tsx @@ -13,11 +13,11 @@ export function InstanceOptions({ hostKey, ChangeHost, setHostEdit -}: { +}: Readonly<{ hostKey: string; ChangeHost: (newHost: string | null) => void; setHostEdit: () => void; -}) { +}>) { const [HostListEdit, setHostListEdit] = useToggle([false, true] as const); const [setHost, setHostList, hostList] = useLocalState((state) => [ state.setHost, @@ -85,10 +85,10 @@ export function InstanceOptions({ function ServerInfo({ hostList, hostKey -}: { +}: Readonly<{ hostList: HostList; hostKey: string; -}) { +}>) { const [server] = useServerApiState((state) => [state.server]); return ( diff --git a/src/frontend/src/components/forms/StandaloneField.tsx b/src/frontend/src/components/forms/StandaloneField.tsx index ea1c7c751e..73f6299ed1 100644 --- a/src/frontend/src/components/forms/StandaloneField.tsx +++ b/src/frontend/src/components/forms/StandaloneField.tsx @@ -1,37 +1,53 @@ -import { useMemo } from 'react'; +import { useEffect, useMemo } from 'react'; import { FormProvider, useForm } from 'react-hook-form'; import { ApiFormField, ApiFormFieldType } from './fields/ApiFormField'; export function StandaloneField({ fieldDefinition, + fieldName = 'field', defaultValue, - hideLabels -}: { + hideLabels, + error +}: Readonly<{ fieldDefinition: ApiFormFieldType; + fieldName?: string; defaultValue?: any; hideLabels?: boolean; -}) { + error?: string; +}>) { + // Field must have a defined name + const name = useMemo(() => fieldName ?? 'field', [fieldName]); + const defaultValues = useMemo(() => { if (defaultValue) return { - field: defaultValue + [name]: defaultValue }; return {}; }, [defaultValue]); - const form = useForm<{}>({ + const form = useForm({ criteriaMode: 'all', defaultValues }); + useEffect(() => { + form.clearErrors(); + + if (!!error) { + form.setError(name, { message: error }); + } + }, [form, error]); + return ( ); diff --git a/src/frontend/src/components/forms/fields/ApiFormField.tsx b/src/frontend/src/components/forms/fields/ApiFormField.tsx index 3e0147bd45..30a42061aa 100644 --- a/src/frontend/src/components/forms/fields/ApiFormField.tsx +++ b/src/frontend/src/components/forms/fields/ApiFormField.tsx @@ -41,6 +41,7 @@ export type ApiFormAdjustFilterType = { * @param required : Whether the field is required * @param hidden : Whether the field is hidden * @param disabled : Whether the field is disabled + * @param exclude : Whether to exclude the field from the submitted data * @param placeholder : The placeholder text to display * @param description : The description to display for the field * @param preFieldContent : Content to render before the field @@ -48,6 +49,7 @@ export type ApiFormAdjustFilterType = { * @param onValueChange : Callback function to call when the field value changes * @param adjustFilters : Callback function to adjust the filters for a related field before a query is made * @param adjustValue : Callback function to adjust the value of the field before it is sent to the API + * @param onKeyDown : Callback function to get which key was pressed in the form to handle submission on enter */ export type ApiFormFieldType = { label?: string; @@ -83,6 +85,7 @@ export type ApiFormFieldType = { choices?: any[]; hidden?: boolean; disabled?: boolean; + exclude?: boolean; read_only?: boolean; placeholder?: string; description?: string; @@ -104,15 +107,17 @@ export function ApiFormField({ control, hideLabels, url, - setFields -}: { + setFields, + onKeyDown +}: Readonly<{ fieldName: string; definition: ApiFormFieldType; control: Control; hideLabels?: boolean; url?: string; setFields?: React.Dispatch>; -}) { + onKeyDown?: (value: any) => void; +}>) { const fieldId = useId(); const controller = useController({ name: fieldName, @@ -154,7 +159,8 @@ export function ApiFormField({ adjustFilters: undefined, adjustValue: undefined, read_only: undefined, - children: undefined + children: undefined, + exclude: undefined }; }, [fieldDefinition]); @@ -204,8 +210,8 @@ export function ApiFormField({ }, [value]); // Construct the individual field - function buildField() { - switch (definition.field_type) { + const fieldInstance = useMemo(() => { + switch (fieldDefinition.field_type) { case 'related field': return ( { + onKeyDown?.(value); + }} /> ); case 'icon': @@ -236,7 +245,7 @@ export function ApiFormField({ checked={booleanValue} ref={ref} id={fieldId} - aria-label={`boolean-field-${field.name}`} + aria-label={`boolean-field-${fieldName}`} radius="lg" size="sm" error={error?.message} @@ -322,16 +331,31 @@ export function ApiFormField({ ); } - } + }, [ + booleanValue, + control, + controller, + field, + fieldId, + fieldName, + fieldDefinition, + numericalValue, + onChange, + onKeyDown, + reducedDefinition, + ref, + setFields, + value + ]); - if (definition.hidden) { + if (fieldDefinition.hidden) { return null; } return ( {definition.preFieldContent} - {buildField()} + {fieldInstance} {definition.postFieldContent} ); diff --git a/src/frontend/src/components/forms/fields/ChoiceField.tsx b/src/frontend/src/components/forms/fields/ChoiceField.tsx index 10e860aedd..fcf6f21917 100644 --- a/src/frontend/src/components/forms/fields/ChoiceField.tsx +++ b/src/frontend/src/components/forms/fields/ChoiceField.tsx @@ -1,6 +1,6 @@ import { Select } from '@mantine/core'; import { useId } from '@mantine/hooks'; -import { useCallback, useEffect, useMemo } from 'react'; +import { useCallback, useMemo } from 'react'; import { FieldValues, UseControllerReturn } from 'react-hook-form'; import { ApiFormFieldType } from './ApiFormField'; @@ -12,11 +12,11 @@ export function ChoiceField({ controller, definition, fieldName -}: { +}: Readonly<{ controller: UseControllerReturn; definition: ApiFormFieldType; fieldName: string; -}) { +}>) { const fieldId = useId(); const { diff --git a/src/frontend/src/components/forms/fields/DateField.tsx b/src/frontend/src/components/forms/fields/DateField.tsx index 47e0ce2072..d80fbaf4d4 100644 --- a/src/frontend/src/components/forms/fields/DateField.tsx +++ b/src/frontend/src/components/forms/fields/DateField.tsx @@ -11,10 +11,10 @@ dayjs.extend(customParseFormat); export default function DateField({ controller, definition -}: { +}: Readonly<{ controller: UseControllerReturn; definition: ApiFormFieldType; -}) { +}>) { const fieldId = useId(); const { @@ -39,11 +39,18 @@ export default function DateField({ [field.onChange, definition] ); - const dateValue = useMemo(() => { + const dateValue: Date | null = useMemo(() => { + let dv: Date | null = null; + if (field.value) { - return new Date(field.value); + dv = new Date(field.value) ?? null; + } + + // Ensure that the date is valid + if (dv instanceof Date && !isNaN(dv.getTime())) { + return dv; } else { - return undefined; + return null; } }, [field.value]); @@ -55,7 +62,7 @@ export default function DateField({ ref={field.ref} type={undefined} error={error?.message} - value={dateValue} + value={dateValue ?? null} clearable={!definition.required} onChange={onChange} valueFormat={valueFormat} diff --git a/src/frontend/src/components/forms/fields/DependentField.tsx b/src/frontend/src/components/forms/fields/DependentField.tsx index 216275d6b7..0b44ba7ccd 100644 --- a/src/frontend/src/components/forms/fields/DependentField.tsx +++ b/src/frontend/src/components/forms/fields/DependentField.tsx @@ -18,13 +18,13 @@ export function DependentField({ definition, url, setFields -}: { +}: Readonly<{ control: Control; definition: ApiFormFieldType; fieldName: string; url?: string; setFields?: React.Dispatch>; -}) { +}>) { const { watch, resetField } = useFormContext(); const mappedFieldNames = useMemo( diff --git a/src/frontend/src/components/forms/fields/NestedObjectField.tsx b/src/frontend/src/components/forms/fields/NestedObjectField.tsx index 77a8693c69..bbecd056aa 100644 --- a/src/frontend/src/components/forms/fields/NestedObjectField.tsx +++ b/src/frontend/src/components/forms/fields/NestedObjectField.tsx @@ -13,13 +13,13 @@ export function NestedObjectField({ definition, url, setFields -}: { +}: Readonly<{ control: Control; definition: ApiFormFieldType; fieldName: string; url?: string; setFields?: React.Dispatch>; -}) { +}>) { return ( diff --git a/src/frontend/src/components/forms/fields/RelatedModelField.tsx b/src/frontend/src/components/forms/fields/RelatedModelField.tsx index 728a32f35e..3886c943d4 100644 --- a/src/frontend/src/components/forms/fields/RelatedModelField.tsx +++ b/src/frontend/src/components/forms/fields/RelatedModelField.tsx @@ -28,12 +28,12 @@ export function RelatedModelField({ fieldName, definition, limit = 10 -}: { +}: Readonly<{ controller: UseControllerReturn; definition: ApiFormFieldType; fieldName: string; limit?: number; -}) { +}>) { const fieldId = useId(); const { field, @@ -207,7 +207,7 @@ export function RelatedModelField({ setPk(_pk); // Run custom callback for this field (if provided) - definition.onValueChange?.(_pk, value.data ?? {}); + definition.onValueChange?.(_pk, value?.data ?? {}); }, [field.onChange, definition] ); @@ -220,6 +220,7 @@ export function RelatedModelField({ ...definition, onValueChange: undefined, adjustFilters: undefined, + exclude: undefined, read_only: undefined }; }, [definition]); diff --git a/src/frontend/src/components/forms/fields/TableField.tsx b/src/frontend/src/components/forms/fields/TableField.tsx index c4eadc915b..bb0da08540 100644 --- a/src/frontend/src/components/forms/fields/TableField.tsx +++ b/src/frontend/src/components/forms/fields/TableField.tsx @@ -1,30 +1,105 @@ import { Trans, t } from '@lingui/macro'; -import { Container, Group, Table } from '@mantine/core'; -import { useEffect, useMemo } from 'react'; +import { Alert, Container, Group, Stack, Table, Text } from '@mantine/core'; +import { IconExclamationCircle } from '@tabler/icons-react'; +import { ReactNode, useCallback, useEffect, useMemo } from 'react'; import { FieldValues, UseControllerReturn } from 'react-hook-form'; +import { identifierString } from '../../../functions/conversion'; import { InvenTreeIcon } from '../../../functions/icons'; import { StandaloneField } from '../StandaloneField'; import { ApiFormFieldType } from './ApiFormField'; +export interface TableFieldRowProps { + item: any; + idx: number; + rowErrors: any; + control: UseControllerReturn; + changeFn: (idx: number, key: string, value: any) => void; + removeFn: (idx: number) => void; +} + +function TableFieldRow({ + item, + idx, + errors, + definition, + control, + changeFn, + removeFn +}: { + item: any; + idx: number; + errors: any; + definition: ApiFormFieldType; + control: UseControllerReturn; + changeFn: (idx: number, key: string, value: any) => void; + removeFn: (idx: number) => void; +}) { + // Table fields require render function + if (!definition.modelRenderer) { + return ( + + + }> + {`modelRenderer entry required for tables`} + + + + ); + } + + return definition.modelRenderer({ + item: item, + idx: idx, + rowErrors: errors, + control: control, + changeFn: changeFn, + removeFn: removeFn + }); +} + +export function TableFieldErrorWrapper({ + props, + errorKey, + children +}: { + props: TableFieldRowProps; + errorKey: string; + children: ReactNode; +}) { + const msg = props?.rowErrors && props.rowErrors[errorKey]; + + return ( + + {children} + {msg && ( + + {msg.message} + + )} + + ); +} + export function TableField({ definition, fieldName, control -}: { +}: Readonly<{ definition: ApiFormFieldType; fieldName: string; control: UseControllerReturn; -}) { +}>) { const { field, fieldState: { error } } = control; - const { value, ref } = field; + const { value } = field; const onRowFieldChange = (idx: number, key: string, value: any) => { const val = field.value; val[idx][key] = value; + field.onChange(val); }; @@ -34,33 +109,49 @@ export function TableField({ field.onChange(val); }; + // Extract errors associated with the current row + const rowErrors: any = useCallback( + (idx: number) => { + if (Array.isArray(error)) { + return error[idx]; + } + }, + [error] + ); + return ( - {definition.headers?.map((header) => { - return {header}; + {definition.headers?.map((header, index) => { + return ( + + {header} + + ); })} {value.length > 0 ? ( value.map((item: any, idx: number) => { - // Table fields require render function - if (!definition.modelRenderer) { - return ( - {t`modelRenderer entry required for tables`} - ); - } - return definition.modelRenderer({ - item: item, - idx: idx, - changeFn: onRowFieldChange, - removeFn: removeRow - }); + return ( + + ); }) ) : ( - + void; }) { @@ -129,6 +222,7 @@ export function TableFieldExtraRow({ diff --git a/src/frontend/src/components/forms/fields/TextField.tsx b/src/frontend/src/components/forms/fields/TextField.tsx index 513f71e63f..a3fe160c09 100644 --- a/src/frontend/src/components/forms/fields/TextField.tsx +++ b/src/frontend/src/components/forms/fields/TextField.tsx @@ -13,13 +13,15 @@ export default function TextField({ controller, fieldName, definition, - onChange -}: { + onChange, + onKeyDown +}: Readonly<{ controller: UseControllerReturn; definition: any; fieldName: string; onChange: (value: any) => void; -}) { + onKeyDown: (value: any) => void; +}>) { const fieldId = useId(); const { field, @@ -28,11 +30,12 @@ export default function TextField({ const { value } = field; - const [rawText, setRawText] = useState(value); - const [debouncedText] = useDebouncedValue(rawText, 250); + const [rawText, setRawText] = useState(value || ''); + + const [debouncedText] = useDebouncedValue(rawText, 100); useEffect(() => { - setRawText(value); + setRawText(value || ''); }, [value]); const onTextChange = useCallback((value: any) => { @@ -57,8 +60,11 @@ export default function TextField({ radius="sm" onChange={(event) => onTextChange(event.currentTarget.value)} onBlur={(event) => { - onChange(event.currentTarget.value); + if (event.currentTarget.value != value) { + onChange(event.currentTarget.value); + } }} + onKeyDown={(event) => onKeyDown(event.code)} rightSection={ value && !definition.required ? ( onTextChange('')} /> diff --git a/src/frontend/src/components/images/Thumbnail.tsx b/src/frontend/src/components/images/Thumbnail.tsx index 63e2414122..148fcc09f9 100644 --- a/src/frontend/src/components/images/Thumbnail.tsx +++ b/src/frontend/src/components/images/Thumbnail.tsx @@ -1,5 +1,5 @@ import { t } from '@lingui/macro'; -import { Anchor, Group, Skeleton, Text } from '@mantine/core'; +import { Anchor, Group } from '@mantine/core'; import { ReactNode, useMemo } from 'react'; import { ApiImage } from './ApiImage'; @@ -14,14 +14,14 @@ export function Thumbnail({ link, text, align -}: { - src?: string | undefined; +}: Readonly<{ + src?: string; alt?: string; size?: number; text?: ReactNode; align?: string; link?: string; -}) { +}>) { const backup_image = '/static/img/blank_image.png'; const inner = useMemo(() => { diff --git a/src/frontend/src/components/importer/ImportDataSelector.tsx b/src/frontend/src/components/importer/ImportDataSelector.tsx index 83c210e3f3..072122dc31 100644 --- a/src/frontend/src/components/importer/ImportDataSelector.tsx +++ b/src/frontend/src/components/importer/ImportDataSelector.tsx @@ -38,12 +38,12 @@ function ImporterDataCell({ column, row, onEdit -}: { +}: Readonly<{ session: ImportSessionState; column: any; row: any; onEdit?: () => void; -}) { +}>) { const onRowEdit = useCallback( (event: any) => { cancelEvent(event); @@ -128,9 +128,9 @@ function ImporterDataCell({ export default function ImporterDataSelector({ session -}: { +}: Readonly<{ session: ImportSessionState; -}) { +}>) { const table = useTable('dataimporter'); const [selectedFieldNames, setSelectedFieldNames] = useState([]); @@ -299,7 +299,7 @@ export default function ImporterDataSelector({ ...session.mappedFields.map((column: any) => { return { accessor: column.field, - title: column.column ?? column.title, + title: column.label ?? column.column, sortable: false, switchable: true, render: (row: any) => { @@ -377,6 +377,7 @@ export default function ImporterDataSelector({ return [ } color="green" diff --git a/src/frontend/src/components/importer/ImporterColumnSelector.tsx b/src/frontend/src/components/importer/ImporterColumnSelector.tsx index 0fe47653db..1e903009f0 100644 --- a/src/frontend/src/components/importer/ImporterColumnSelector.tsx +++ b/src/frontend/src/components/importer/ImporterColumnSelector.tsx @@ -20,7 +20,10 @@ import { apiUrl } from '../../states/ApiState'; import { StandaloneField } from '../forms/StandaloneField'; import { ApiFormFieldType } from '../forms/fields/ApiFormField'; -function ImporterColumn({ column, options }: { column: any; options: any[] }) { +function ImporterColumn({ + column, + options +}: Readonly<{ column: any; options: any[] }>) { const [errorMessage, setErrorMessage] = useState(''); const [selectedColumn, setSelectedColumn] = useState( @@ -122,11 +125,11 @@ function ImporterColumnTableRow({ session, column, options -}: { +}: Readonly<{ session: ImportSessionState; column: any; options: any; -}) { +}>) { return ( @@ -156,9 +159,9 @@ function ImporterColumnTableRow({ export default function ImporterColumnSelector({ session -}: { +}: Readonly<{ session: ImportSessionState; -}) { +}>) { const [errorMessage, setErrorMessage] = useState(''); const acceptMapping = useCallback(() => { @@ -221,6 +224,7 @@ export default function ImporterColumnSelector({ {session.columnMappings.map((column: any) => { return ( ) { /* TODO: Enhance this with: * - Custom icons * - Loading indicators for "background" states @@ -54,11 +56,11 @@ export default function ImporterDrawer({ sessionId, opened, onClose -}: { +}: Readonly<{ sessionId: number; opened: boolean; onClose: () => void; -}) { +}>) { const session = useImportSession({ sessionId: sessionId }); const importSessionStatus = useStatusCodes({ diff --git a/src/frontend/src/components/importer/ImporterImportProgress.tsx b/src/frontend/src/components/importer/ImporterImportProgress.tsx index 34231e9d9f..c4d9400162 100644 --- a/src/frontend/src/components/importer/ImporterImportProgress.tsx +++ b/src/frontend/src/components/importer/ImporterImportProgress.tsx @@ -10,9 +10,9 @@ import { StylishText } from '../items/StylishText'; export default function ImporterImportProgress({ session -}: { +}: Readonly<{ session: ImportSessionState; -}) { +}>) { const importSessionStatus = useStatusCodes({ modelType: ModelType.importsession }); @@ -36,7 +36,7 @@ export default function ImporterImportProgress({ {t`Importing Records`} - {t`Imported rows`}: {session.sessionData.row_count} + {t`Imported Rows`}: {session.sessionData.row_count} diff --git a/src/frontend/src/components/items/ActionDropdown.tsx b/src/frontend/src/components/items/ActionDropdown.tsx index 48603c880c..9ead93213b 100644 --- a/src/frontend/src/components/items/ActionDropdown.tsx +++ b/src/frontend/src/components/items/ActionDropdown.tsx @@ -1,6 +1,6 @@ import { t } from '@lingui/macro'; import { - ActionIcon, + Button, Indicator, IndicatorProps, Menu, @@ -8,7 +8,9 @@ import { } from '@mantine/core'; import { modals } from '@mantine/modals'; import { + IconChevronDown, IconCopy, + IconDotsVertical, IconEdit, IconLink, IconQrcode, @@ -42,13 +44,15 @@ export function ActionDropdown({ tooltip, actions, disabled = false, - hidden = false + hidden = false, + noindicator = false }: { icon: ReactNode; tooltip: string; actions: ActionDropdownItem[]; disabled?: boolean; hidden?: boolean; + noindicator?: boolean; }) { const hasActions = useMemo(() => { return actions.some((action) => !action.hidden); @@ -66,16 +70,23 @@ export function ActionDropdown({ - @@ -110,6 +121,26 @@ export function ActionDropdown({ ) : null; } +export function OptionsActionDropdown({ + actions = [], + tooltip = t`Options`, + hidden = false +}: Readonly<{ + actions: ActionDropdownItem[]; + tooltip?: string; + hidden?: boolean; +}>) { + return ( + } + tooltip={tooltip} + actions={actions} + hidden={hidden} + noindicator + /> + ); +} + // Dropdown menu for barcode actions export function BarcodeActionDropdown({ model, diff --git a/src/frontend/src/components/items/AttachmentLink.tsx b/src/frontend/src/components/items/AttachmentLink.tsx index 1561e3d788..b76e610b75 100644 --- a/src/frontend/src/components/items/AttachmentLink.tsx +++ b/src/frontend/src/components/items/AttachmentLink.tsx @@ -55,10 +55,10 @@ export function attachmentIcon(attachment: string): ReactNode { export function AttachmentLink({ attachment, external -}: { +}: Readonly<{ attachment: string; external?: boolean; -}): ReactNode { +}>): ReactNode { let text = external ? attachment : attachment.split('/').pop(); const host = useLocalState((s) => s.host); diff --git a/src/frontend/src/components/items/BarcodeInput.tsx b/src/frontend/src/components/items/BarcodeInput.tsx new file mode 100644 index 0000000000..2ae2200cf3 --- /dev/null +++ b/src/frontend/src/components/items/BarcodeInput.tsx @@ -0,0 +1,59 @@ +import { t } from '@lingui/macro'; +import { ActionIcon, Box, Button, Divider, TextInput } from '@mantine/core'; +import { IconQrcode } from '@tabler/icons-react'; +import React, { useState } from 'react'; + +import { InputImageBarcode } from '../../pages/Index/Scan'; + +type BarcodeInputProps = { + onScan: (decodedText: string) => void; + value?: string; + onChange?: (event: React.ChangeEvent) => void; + onAction?: () => void; + placeholder?: string; + label?: string; + actionText?: string; +}; + +export function BarcodeInput({ + onScan, + value, + onChange, + onAction, + placeholder = t`Scan barcode data here using barcode scanner`, + label = t`Barcode`, + actionText = t`Scan` +}: Readonly) { + const [isScanning, setIsScanning] = useState(false); + + return ( + + {isScanning && ( + <> + + + + )} + setIsScanning(!isScanning)} + > + + + } + w="100%" + /> + {onAction ? ( + + ) : null} + + ); +} diff --git a/src/frontend/src/components/items/DashboardItem.tsx b/src/frontend/src/components/items/DashboardItem.tsx index a9fb2a5d3c..e1a3225da4 100644 --- a/src/frontend/src/components/items/DashboardItem.tsx +++ b/src/frontend/src/components/items/DashboardItem.tsx @@ -11,16 +11,16 @@ export function StatisticItem({ id, data, isLoading -}: { +}: Readonly<{ id: string; data: StatisticItemProps; isLoading: boolean; -}) { +}>) { return ( - + {data.title} diff --git a/src/frontend/src/components/items/DocTooltip.tsx b/src/frontend/src/components/items/DocTooltip.tsx index 113ca234d6..99558659b1 100644 --- a/src/frontend/src/components/items/DocTooltip.tsx +++ b/src/frontend/src/components/items/DocTooltip.tsx @@ -50,12 +50,12 @@ function ConstBody({ detail, docchildren, link -}: { +}: Readonly<{ text: string | JSX.Element; detail?: string | JSX.Element; docchildren?: React.ReactNode; link?: string; -}) { +}>) { const [height, setHeight] = useState(0); const ref = useRef(null); @@ -78,7 +78,7 @@ function ConstBody({
{detail && ( - + {detail} )} diff --git a/src/frontend/src/components/items/DocumentationLinks.tsx b/src/frontend/src/components/items/DocumentationLinks.tsx deleted file mode 100644 index 5d652db40a..0000000000 --- a/src/frontend/src/components/items/DocumentationLinks.tsx +++ /dev/null @@ -1,85 +0,0 @@ -import { Anchor, Group, SimpleGrid, Text } from '@mantine/core'; - -import { DocTooltip } from './DocTooltip'; -import { PlaceholderPill } from './Placeholder'; - -interface DocumentationLinkBase { - id: string; - title: string | JSX.Element; - description: string | JSX.Element; - placeholder?: boolean; -} - -interface DocumentationLinkItemLink extends DocumentationLinkBase { - link: string; - action?: never; -} - -interface DocumentationLinkItemAction extends DocumentationLinkBase { - link?: never; - action: () => void; -} - -export type DocumentationLinkItem = - | DocumentationLinkItemLink - | DocumentationLinkItemAction; - -export function DocumentationLinks({ - links -}: { - links: DocumentationLinkItem[]; -}) { - const DocumentationLinkRenderer = ({ - link - }: { - link: DocumentationLinkItem; - }) => { - const content = ( - - {link.title} - - ); - - const Linker = ({ children }: { children: any }) => { - if (link.link) - return ( - - {children} - - ); - - if (link.action) - return ( - - {children} - - ); - - console.log('Neither link nor action found for link:', link); - return children; - }; - - return ( - - {link.placeholder ? ( - - {content} - - - ) : ( - content - )} - - ); - }; - - return ( - - {links.map((link) => ( - - - - ))} - - ); -} diff --git a/src/frontend/src/components/items/ErrorItem.tsx b/src/frontend/src/components/items/ErrorItem.tsx index fb82b1b342..e25e650655 100644 --- a/src/frontend/src/components/items/ErrorItem.tsx +++ b/src/frontend/src/components/items/ErrorItem.tsx @@ -1,15 +1,17 @@ -import { Trans } from '@lingui/macro'; +import { t } from '@lingui/macro'; +import { Alert, Text } from '@mantine/core'; + +export function ErrorItem({ + id, + error +}: Readonly<{ id: string; error?: any }>) { + const error_message = error?.message || error?.toString() || t`Unknown error`; -export function ErrorItem({ id, error }: { id: string; error?: any }) { - const error_message = error?.message || error?.toString() || ( - Unknown error - ); return ( <> -

- An error occurred: -

- {error_message} + + {error_message} + ); } diff --git a/src/frontend/src/components/items/GettingStartedCarousel.tsx b/src/frontend/src/components/items/GettingStartedCarousel.tsx index b34e6093b4..f119c10ced 100644 --- a/src/frontend/src/components/items/GettingStartedCarousel.tsx +++ b/src/frontend/src/components/items/GettingStartedCarousel.tsx @@ -1,30 +1,23 @@ import { Trans } from '@lingui/macro'; import { Carousel } from '@mantine/carousel'; -import { Anchor, Button, Paper, Text, Title } from '@mantine/core'; +import { Anchor, Button, Paper, Text } from '@mantine/core'; -import { DocumentationLinkItem } from './DocumentationLinks'; import * as classes from './GettingStartedCarousel.css'; -import { PlaceholderPill } from './Placeholder'; +import { MenuLinkItem } from './MenuLinks'; +import { StylishText } from './StylishText'; -function StartedCard({ - title, - description, - link, - placeholder -}: DocumentationLinkItem) { +function StartedCard({ title, description, link }: MenuLinkItem) { return (
- - {title} {placeholder && <PlaceholderPill />} - + {title} {description}
@@ -33,9 +26,9 @@ function StartedCard({ export function GettingStartedCarousel({ items -}: { - items: DocumentationLinkItem[]; -}) { +}: Readonly<{ + items: MenuLinkItem[]; +}>) { const slides = items.map((item) => ( diff --git a/src/frontend/src/components/items/InfoItem.tsx b/src/frontend/src/components/items/InfoItem.tsx index e3c06789e7..85621c42f4 100644 --- a/src/frontend/src/components/items/InfoItem.tsx +++ b/src/frontend/src/components/items/InfoItem.tsx @@ -12,14 +12,14 @@ export function InfoItem({ value, link, detailDrawerLink -}: { +}: Readonly<{ name: string; children?: React.ReactNode; type?: 'text' | 'boolean' | 'code'; value?: any; link?: To; detailDrawerLink?: boolean; -}) { +}>) { function renderComponent() { if (value === undefined) return null; diff --git a/src/frontend/src/components/items/LanguageSelect.tsx b/src/frontend/src/components/items/LanguageSelect.tsx index 9c38ec9484..55b2d613c3 100644 --- a/src/frontend/src/components/items/LanguageSelect.tsx +++ b/src/frontend/src/components/items/LanguageSelect.tsx @@ -4,7 +4,7 @@ import { useEffect, useState } from 'react'; import { getSupportedLanguages } from '../../contexts/LanguageContext'; import { useLocalState } from '../../states/LocalState'; -export function LanguageSelect({ width = 80 }: { width?: number }) { +export function LanguageSelect({ width = 80 }: Readonly<{ width?: number }>) { const [value, setValue] = useState(null); const [locale, setLanguage] = useLocalState((state) => [ state.language, diff --git a/src/frontend/src/components/items/MenuLinks.tsx b/src/frontend/src/components/items/MenuLinks.tsx index ad50300869..1f509d10bf 100644 --- a/src/frontend/src/components/items/MenuLinks.tsx +++ b/src/frontend/src/components/items/MenuLinks.tsx @@ -1,75 +1,109 @@ -import { SimpleGrid, Text, UnstyledButton } from '@mantine/core'; -import React from 'react'; -import { Link } from 'react-router-dom'; +import { + Anchor, + Divider, + Group, + SimpleGrid, + Stack, + Text, + Tooltip, + UnstyledButton +} from '@mantine/core'; +import { IconLink } from '@tabler/icons-react'; +import { useMemo } from 'react'; +import { useNavigate } from 'react-router-dom'; -import * as classes from '../../main.css'; -import { DocTooltip } from './DocTooltip'; +import { InvenTreeIcon, InvenTreeIconType } from '../../functions/icons'; +import { navigateToLink } from '../../functions/navigation'; +import { StylishText } from './StylishText'; export interface MenuLinkItem { id: string; - text: string | JSX.Element; - link: string; - highlight?: boolean; - doctext?: string | JSX.Element; - docdetail?: string | JSX.Element; - doclink?: string; - docchildren?: React.ReactNode; -} - -export type menuItemsCollection = { - [key: string]: MenuLinkItem; -}; - -function ConditionalDocTooltip({ - item, - children -}: { - item: MenuLinkItem; - children: React.ReactNode; -}) { - if (item.doctext !== undefined) { - return ( - - {children} - - ); - } - return <>{children}; + title: string | JSX.Element; + description?: string; + icon?: InvenTreeIconType; + action?: () => void; + link?: string; + external?: boolean; + hidden?: boolean; } export function MenuLinks({ + title, links, - highlighted = false -}: { + beforeClick +}: Readonly<{ + title: string; links: MenuLinkItem[]; - highlighted?: boolean; -}) { - const filteredLinks = links.filter( - (item) => !highlighted || item.highlight === true + beforeClick?: () => void; +}>) { + const navigate = useNavigate(); + + // Filter out any hidden links + const visibleLinks = useMemo( + () => links.filter((item) => !item.hidden), + [links] ); + if (visibleLinks.length == 0) { + return null; + } + return ( - - {filteredLinks.map((item) => ( - - - - {item.text} - - - - ))} - + <> + + + {title} + + + {visibleLinks.map((item) => ( + + ))} + + + ); } diff --git a/src/frontend/src/components/items/ProgressBar.tsx b/src/frontend/src/components/items/ProgressBar.tsx index 755f96cac2..d0d199fe9f 100644 --- a/src/frontend/src/components/items/ProgressBar.tsx +++ b/src/frontend/src/components/items/ProgressBar.tsx @@ -18,8 +18,11 @@ export function ProgressBar(props: Readonly) { let maximum = props.maximum ?? 100; let value = Math.max(props.value, 0); - // Calculate progress as a percentage of the maximum value - return Math.min(100, (value / maximum) * 100); + if (maximum == 0) { + return 0; + } + + return (value / maximum) * 100; }, [props]); return ( diff --git a/src/frontend/src/components/items/QRCode.tsx b/src/frontend/src/components/items/QRCode.tsx index 8038ff8c23..ade6ebac89 100644 --- a/src/frontend/src/components/items/QRCode.tsx +++ b/src/frontend/src/components/items/QRCode.tsx @@ -9,8 +9,7 @@ import { Select, Skeleton, Stack, - Text, - TextInput + Text } from '@mantine/core'; import { modals } from '@mantine/modals'; import { useQuery } from '@tanstack/react-query'; @@ -23,6 +22,7 @@ import { apiUrl } from '../../states/ApiState'; import { useGlobalSettingsState } from '../../states/SettingsState'; import { CopyButton } from '../buttons/CopyButton'; import { QrCodeType } from './ActionDropdown'; +import { BarcodeInput } from './BarcodeInput'; type QRCodeProps = { ecl?: 'L' | 'M' | 'Q' | 'H'; @@ -75,7 +75,7 @@ export const InvenTreeQRCode = ({ const { data } = useQuery({ queryKey: ['qr-code', mdl_prop.model, mdl_prop.pk], queryFn: async () => { - const res = await api.post(apiUrl(ApiEndpoints.generate_barcode), { + const res = await api.post(apiUrl(ApiEndpoints.barcode_generate), { model: mdl_prop.model, pk: mdl_prop.pk }); @@ -97,7 +97,7 @@ export const InvenTreeQRCode = ({ return ( {mdl_prop.hash ? ( - + A custom barcode is registered for this item. The shown code is not that custom barcode. @@ -143,29 +143,33 @@ export const InvenTreeQRCode = ({ export const QRCodeLink = ({ mdl_prop }: { mdl_prop: QrCodeType }) => { const [barcode, setBarcode] = useState(''); - function linkBarcode() { + function linkBarcode(value?: string) { api .post(apiUrl(ApiEndpoints.barcode_link), { [mdl_prop.model]: mdl_prop.pk, - barcode: barcode + barcode: value || barcode }) .then((response) => { modals.closeAll(); location.reload(); }); } + const actionSubmit = (decodedText: string) => { + linkBarcode(decodedText); + }; + + const handleLinkBarcode = () => { + linkBarcode(barcode); + }; + return ( - - setBarcode(event.currentTarget.value)} - placeholder={t`Scan barcode data here using barcode scanner`} - /> - - + setBarcode(event.currentTarget.value)} + onScan={actionSubmit} + onAction={handleLinkBarcode} + actionText={t`Link`} + /> ); }; diff --git a/src/frontend/src/components/items/StylishText.tsx b/src/frontend/src/components/items/StylishText.tsx index 774a6fdde9..cae6245c8a 100644 --- a/src/frontend/src/components/items/StylishText.tsx +++ b/src/frontend/src/components/items/StylishText.tsx @@ -5,10 +5,10 @@ import * as classes from '../../main.css'; export function StylishText({ children, size = 'md' -}: { +}: Readonly<{ children: JSX.Element | string; size?: string; -}) { +}>) { return ( {children} diff --git a/src/frontend/src/components/modals/AboutInvenTreeModal.tsx b/src/frontend/src/components/modals/AboutInvenTreeModal.tsx index aecbcb60ad..8581506fac 100644 --- a/src/frontend/src/components/modals/AboutInvenTreeModal.tsx +++ b/src/frontend/src/components/modals/AboutInvenTreeModal.tsx @@ -1,4 +1,4 @@ -import { Trans } from '@lingui/macro'; +import { Trans, t } from '@lingui/macro'; import { Anchor, Badge, @@ -178,10 +178,7 @@ export function AboutInvenTreeModal({
- Copy version information} - /> + + + + {values.length == 0 ? ( + + No scans yet! + ) : ( - <> - - - - - {values.length == 0 ? ( - - No scans yet! - - ) : ( - - {values.map((value, index) => ( -
{value}
- ))} -
- )} - + + {values.map((value, index) => ( +
{value}
+ ))} +
)} -
- - - + openDrawer()} aria-label="navigation-menu"> + + ); } diff --git a/src/frontend/src/components/nav/NavigationDrawer.tsx b/src/frontend/src/components/nav/NavigationDrawer.tsx index 92504c39c4..c77872f9c3 100644 --- a/src/frontend/src/components/nav/NavigationDrawer.tsx +++ b/src/frontend/src/components/nav/NavigationDrawer.tsx @@ -3,67 +3,195 @@ import { Container, Drawer, Flex, + Group, ScrollArea, - Space, - Title + Space } from '@mantine/core'; import { useViewportSize } from '@mantine/hooks'; -import { useEffect, useRef, useState } from 'react'; +import { useEffect, useMemo, useRef, useState } from 'react'; -import { aboutLinks, navDocLinks } from '../../defaults/links'; -import { menuItems } from '../../defaults/menuItems'; +import { AboutLinks, DocumentationLinks } from '../../defaults/links'; +import { ModelType } from '../../enums/ModelType'; +import { UserRoles } from '../../enums/Roles'; +import useInstanceName from '../../hooks/UseInstanceName'; import * as classes from '../../main.css'; -import { DocumentationLinks } from '../items/DocumentationLinks'; +import { useGlobalSettingsState } from '../../states/SettingsState'; +import { useUserState } from '../../states/UserState'; +import { InvenTreeLogo } from '../items/InvenTreeLogo'; import { MenuLinkItem, MenuLinks } from '../items/MenuLinks'; +import { StylishText } from '../items/StylishText'; // TODO @matmair #1: implement plugin loading and menu item generation see #5269 const plugins: MenuLinkItem[] = []; -const onlyItems = Object.values(menuItems); export function NavigationDrawer({ opened, close -}: { +}: Readonly<{ opened: boolean; close: () => void; -}) { +}>) { return ( - + ); } -function DrawerContent() { + +function DrawerContent({ closeFunc }: { closeFunc?: () => void }) { + const user = useUserState(); + + const globalSettings = useGlobalSettingsState(); + const [scrollHeight, setScrollHeight] = useState(0); const ref = useRef(null); const { height } = useViewportSize(); + const title = useInstanceName(); + // update scroll height when viewport size changes useEffect(() => { if (ref.current == null) return; setScrollHeight(height - ref.current['clientHeight'] - 65); }); + // Construct menu items + const menuItemsNavigate: MenuLinkItem[] = useMemo(() => { + return [ + { + id: 'home', + title: t`Dashboard`, + link: '/', + icon: 'dashboard' + }, + { + id: 'parts', + title: t`Parts`, + hidden: !user.hasViewPermission(ModelType.part), + link: '/part', + icon: 'part' + }, + { + id: 'stock', + title: t`Stock`, + link: '/stock', + hidden: !user.hasViewPermission(ModelType.stockitem), + icon: 'stock' + }, + { + id: 'build', + title: t`Manufacturing`, + link: '/manufacturing/', + hidden: !user.hasViewRole(UserRoles.build), + icon: 'build' + }, + { + id: 'purchasing', + title: t`Purchasing`, + link: '/purchasing/', + hidden: !user.hasViewRole(UserRoles.purchase_order), + icon: 'purchase_orders' + }, + { + id: 'sales', + title: t`Sales`, + link: '/sales/', + hidden: !user.hasViewRole(UserRoles.sales_order), + icon: 'sales_orders' + } + ]; + }, [user]); + + const menuItemsAction: MenuLinkItem[] = useMemo(() => { + return [ + { + id: 'barcode', + title: t`Scan Barcode`, + link: '/scan', + icon: 'barcode', + hidden: !globalSettings.isSet('BARCODE_ENABLE') + } + ]; + }, [user, globalSettings]); + + const menuItemsSettings: MenuLinkItem[] = useMemo(() => { + return [ + { + id: 'notifications', + title: t`Notifications`, + link: '/notifications', + icon: 'notification' + }, + { + id: 'user-settings', + title: t`User Settings`, + link: '/settings/user', + icon: 'user' + }, + { + id: 'system-settings', + title: t`System Settings`, + link: '/settings/system', + icon: 'system', + hidden: !user.isStaff() + }, + { + id: 'admin-center', + title: t`Admin Center`, + link: '/settings/admin', + icon: 'admin', + hidden: !user.isStaff() + } + ]; + }, [user]); + + const menuItemsDocumentation: MenuLinkItem[] = useMemo( + () => DocumentationLinks(), + [] + ); + + const menuItemsAbout: MenuLinkItem[] = useMemo(() => AboutLinks(), []); + return ( - {t`Navigation`} + + + {title} + + - {t`Pages`} - + + + {plugins.length > 0 ? ( <> - {t`Plugins`} - + ) : ( <> @@ -72,11 +200,17 @@ function DrawerContent() {
- {t`Documentation`} - + - {t`About`} - +
); diff --git a/src/frontend/src/components/nav/NavigationTree.tsx b/src/frontend/src/components/nav/NavigationTree.tsx index ceb166cf0c..ec2773f92e 100644 --- a/src/frontend/src/components/nav/NavigationTree.tsx +++ b/src/frontend/src/components/nav/NavigationTree.tsx @@ -40,14 +40,14 @@ export default function NavigationTree({ selectedId, modelType, endpoint -}: { +}: Readonly<{ title: string; opened: boolean; onClose: () => void; selectedId?: number | null; modelType: ModelType; endpoint: ApiEndpoints; -}) { +}>) { const navigate = useNavigate(); const treeState = useTree(); diff --git a/src/frontend/src/components/nav/NotificationDrawer.tsx b/src/frontend/src/components/nav/NotificationDrawer.tsx index 7481319117..2fa64791ee 100644 --- a/src/frontend/src/components/nav/NotificationDrawer.tsx +++ b/src/frontend/src/components/nav/NotificationDrawer.tsx @@ -2,12 +2,13 @@ import { t } from '@lingui/macro'; import { ActionIcon, Alert, + Anchor, Center, Divider, Drawer, Group, Loader, - Space, + Paper, Stack, Text, Tooltip @@ -15,13 +16,84 @@ import { import { IconArrowRight, IconBellCheck } from '@tabler/icons-react'; import { useQuery } from '@tanstack/react-query'; import { useCallback, useMemo } from 'react'; -import { Link, useNavigate } from 'react-router-dom'; +import { useNavigate } from 'react-router-dom'; import { api } from '../../App'; import { ApiEndpoints } from '../../enums/ApiEndpoints'; +import { ModelType } from '../../enums/ModelType'; +import { navigateToLink } from '../../functions/navigation'; +import { getDetailUrl } from '../../functions/urls'; import { apiUrl } from '../../states/ApiState'; import { useUserState } from '../../states/UserState'; +import { Boundary } from '../Boundary'; import { StylishText } from '../items/StylishText'; +import { ModelInformationDict } from '../render/ModelType'; + +/** + * Render a single notification entry in the drawer + */ +function NotificationEntry({ + notification, + onRead +}: { + notification: any; + onRead: () => void; +}) { + const navigate = useNavigate(); + + let link = notification.target?.link; + + let model_type = notification.target?.model_type; + let model_id = notification.target?.model_id; + + // If a valid model type is provided, that overrides the specified link + if (model_type as ModelType) { + let model_info = ModelInformationDict[model_type as ModelType]; + if (model_info?.url_detail && model_id) { + link = getDetailUrl(model_type as ModelType, model_id); + } else if (model_info?.url_overview) { + link = model_info.url_overview; + } + } + + return ( + + + + + + + + + + + ); +} /** * Construct a notification drawer. @@ -29,10 +101,10 @@ import { StylishText } from '../items/StylishText'; export function NotificationDrawer({ opened, onClose -}: { +}: Readonly<{ opened: boolean; onClose: () => void; -}) { +}>) { const { isLoggedIn } = useUserState(); const navigate = useNavigate(); @@ -45,7 +117,8 @@ export function NotificationDrawer({ .get(apiUrl(ApiEndpoints.notifications_list), { params: { read: false, - limit: 10 + limit: 10, + ordering: '-creation' } }) .then((response) => response.data) @@ -72,6 +145,19 @@ export function NotificationDrawer({ }); }, []); + const markAsRead = useCallback((notification: any) => { + api + .patch(apiUrl(ApiEndpoints.notifications_list, notification.pk), { + read: true + }) + .then(() => { + notificationQuery.refetch(); + }) + .catch(() => { + notificationQuery.refetch(); + }); + }, []); + return ( { + onClick={(event: any) => { onClose(); - navigate('/notifications/unread'); + navigateToLink('/notifications/unread', navigate, event); }} variant="transparent" > @@ -116,67 +202,29 @@ export function NotificationDrawer({ } > - - - {!hasNotifications && ( - - {t`You have no unread notifications.`} - - )} - {hasNotifications && - notificationQuery.data?.results?.map((notification: any) => ( - - - {notification?.target?.link ? ( - - {notification.target?.name ?? - notification.name ?? - t`Notification`} - - ) : ( - - {notification.target?.name ?? - notification.name ?? - t`Notification`} - - )} - {notification.age_human ?? ''} - - - { - let url = apiUrl( - ApiEndpoints.notifications_list, - notification.pk - ); - api - .patch(url, { - read: true - }) - .then((response) => { - notificationQuery.refetch(); - }); - }} - > - - - - - - ))} - {notificationQuery.isFetching && ( -
- -
- )} -
+ + + + {!hasNotifications && ( + + {t`You have no unread notifications.`} + + )} + {hasNotifications && + notificationQuery.data?.results?.map((notification: any) => ( + markAsRead(notification)} + /> + ))} + {notificationQuery.isFetching && ( +
+ +
+ )} +
+
); } diff --git a/src/frontend/src/components/nav/PageDetail.tsx b/src/frontend/src/components/nav/PageDetail.tsx index de7a36556a..a407fded3f 100644 --- a/src/frontend/src/components/nav/PageDetail.tsx +++ b/src/frontend/src/components/nav/PageDetail.tsx @@ -63,7 +63,7 @@ export function PageDetail({ {imageUrl && ( - + )} {title && {title}} diff --git a/src/frontend/src/components/nav/SearchDrawer.tsx b/src/frontend/src/components/nav/SearchDrawer.tsx index f21cf55a52..15180edf50 100644 --- a/src/frontend/src/components/nav/SearchDrawer.tsx +++ b/src/frontend/src/components/nav/SearchDrawer.tsx @@ -14,7 +14,8 @@ import { Space, Stack, Text, - TextInput + TextInput, + Tooltip } from '@mantine/core'; import { useDebouncedValue } from '@mantine/hooks'; import { @@ -39,7 +40,7 @@ import { useUserSettingsState } from '../../states/SettingsState'; import { useUserState } from '../../states/UserState'; import { Boundary } from '../Boundary'; import { RenderInstance } from '../render/Instance'; -import { ModelInformationDict } from '../render/ModelType'; +import { ModelInformationDict, getModelInfo } from '../render/ModelType'; // Define type for handling individual search queries type SearchQuery = { @@ -56,19 +57,25 @@ function QueryResultGroup({ query, onRemove, onResultClick -}: { +}: Readonly<{ query: SearchQuery; onRemove: (query: ModelType) => void; onResultClick: (query: ModelType, pk: number, event: any) => void; -}) { +}>) { if (query.results.count == 0) { return null; } - const model = ModelInformationDict[query.model]; + const model = getModelInfo(query.model); return ( - + @@ -84,19 +91,21 @@ function QueryResultGroup({ color="red" variant="transparent" radius="xs" + aria-label={`remove-search-group-${query.model}`} onClick={() => onRemove(query.model)} > - + {query.results.results.map((result: any) => ( onResultClick(query.model, result.pk, event) } - key={result.pk} + key={`result-${query.model}-${result.pk}`} > @@ -115,10 +124,10 @@ function QueryResultGroup({ export function SearchDrawer({ opened, onClose -}: { +}: Readonly<{ opened: boolean; onClose: () => void; -}) { +}>) { const [value, setValue] = useState(''); const [searchText] = useDebouncedValue(value, 500); @@ -367,8 +376,8 @@ export function SearchDrawer({ title={ setValue(event.currentTarget.value)} leftSection={} @@ -379,19 +388,22 @@ export function SearchDrawer({ } styles={{ root: { width: '100%' } }} /> - searchQuery.refetch()} - > - - + + searchQuery.refetch()} + > + + + - - - + + + + + {t`Search Options`} @@ -402,7 +414,6 @@ export function SearchDrawer({ onChange={(event) => setSearchRegex(event.currentTarget.checked) } - radius="sm" /> @@ -412,7 +423,6 @@ export function SearchDrawer({ onChange={(event) => setSearchWhole(event.currentTarget.checked) } - radius="sm" /> @@ -459,7 +469,7 @@ export function SearchDrawer({ color="blue" radius="sm" variant="light" - title={t`No results`} + title={t`No Results`} icon={} > No results available for search query diff --git a/src/frontend/src/components/nav/SettingsHeader.tsx b/src/frontend/src/components/nav/SettingsHeader.tsx index e5f776bd70..6d2bf95e5c 100644 --- a/src/frontend/src/components/nav/SettingsHeader.tsx +++ b/src/frontend/src/components/nav/SettingsHeader.tsx @@ -1,43 +1,58 @@ -import { Anchor, Group, Stack, Text, Title } from '@mantine/core'; +import { t } from '@lingui/macro'; +import { + Anchor, + Group, + SegmentedControl, + Stack, + Text, + Title +} from '@mantine/core'; import { IconSwitch } from '@tabler/icons-react'; import { ReactNode } from 'react'; -import { Link } from 'react-router-dom'; +import { Link, useNavigate } from 'react-router-dom'; + +import { useUserState } from '../../states/UserState'; +import { StylishText } from '../items/StylishText'; interface SettingsHeaderInterface { - title: string | ReactNode; + label: string; + title: string; shorthand?: string; subtitle?: string | ReactNode; - switch_condition?: boolean; - switch_text?: string | ReactNode; - switch_link?: string; } /** * Construct a settings page header with interlinks to one other settings page */ export function SettingsHeader({ + label, title, shorthand, - subtitle, - switch_condition = true, - switch_text, - switch_link + subtitle }: Readonly) { + const user = useUserState(); + const navigate = useNavigate(); + return ( - - - {title} - {shorthand && ({shorthand})} - - - {subtitle ? {subtitle} : null} - {switch_text && switch_link && switch_condition && ( - - - {switch_text} - - )} - - + + + + {title} + {shorthand && ({shorthand})} + + {subtitle ? {subtitle} : null} + + {user.isStaff() && ( + navigate(`/settings/${value}`)} + value={label} + /> + )} + ); } diff --git a/src/frontend/src/components/panels/AttachmentPanel.tsx b/src/frontend/src/components/panels/AttachmentPanel.tsx new file mode 100644 index 0000000000..253b51dea7 --- /dev/null +++ b/src/frontend/src/components/panels/AttachmentPanel.tsx @@ -0,0 +1,27 @@ +import { t } from '@lingui/macro'; +import { Skeleton } from '@mantine/core'; +import { IconPaperclip } from '@tabler/icons-react'; + +import { ModelType } from '../../enums/ModelType'; +import { AttachmentTable } from '../../tables/general/AttachmentTable'; +import { PanelType } from './Panel'; + +export default function AttachmentPanel({ + model_type, + model_id +}: { + model_type: ModelType; + model_id: number | undefined; +}): PanelType { + return { + name: 'attachments', + label: t`Attachments`, + icon: , + content: + model_type && model_id ? ( + + ) : ( + + ) + }; +} diff --git a/src/frontend/src/components/panels/NotesPanel.tsx b/src/frontend/src/components/panels/NotesPanel.tsx new file mode 100644 index 0000000000..0aee7ec4bb --- /dev/null +++ b/src/frontend/src/components/panels/NotesPanel.tsx @@ -0,0 +1,37 @@ +import { t } from '@lingui/macro'; +import { Skeleton } from '@mantine/core'; +import { IconNotes } from '@tabler/icons-react'; +import { useMemo } from 'react'; + +import { ModelType } from '../../enums/ModelType'; +import { useUserState } from '../../states/UserState'; +import NotesEditor from '../editors/NotesEditor'; +import { PanelType } from './Panel'; + +export default function NotesPanel({ + model_type, + model_id, + editable +}: { + model_type: ModelType; + model_id: number | undefined; + editable?: boolean; +}): PanelType { + const user = useUserState.getState(); + + return { + name: 'notes', + label: t`Notes`, + icon: , + content: + model_type && model_id ? ( + + ) : ( + + ) + }; +} diff --git a/src/frontend/src/components/panels/Panel.tsx b/src/frontend/src/components/panels/Panel.tsx new file mode 100644 index 0000000000..d03602e2f7 --- /dev/null +++ b/src/frontend/src/components/panels/Panel.tsx @@ -0,0 +1,14 @@ +import { ReactNode } from 'react'; + +/** + * Type used to specify a single panel in a panel group + */ +export type PanelType = { + name: string; + label: string; + icon?: ReactNode; + content: ReactNode; + hidden?: boolean; + disabled?: boolean; + showHeadline?: boolean; +}; diff --git a/src/frontend/src/components/nav/PanelGroup.tsx b/src/frontend/src/components/panels/PanelGroup.tsx similarity index 72% rename from src/frontend/src/components/nav/PanelGroup.tsx rename to src/frontend/src/components/panels/PanelGroup.tsx index bdc36bff03..35c6d3f5fb 100644 --- a/src/frontend/src/components/nav/PanelGroup.tsx +++ b/src/frontend/src/components/panels/PanelGroup.tsx @@ -20,29 +20,34 @@ import { useParams } from 'react-router-dom'; +import { ModelType } from '../../enums/ModelType'; import { identifierString } from '../../functions/conversion'; import { cancelEvent } from '../../functions/events'; import { navigateToLink } from '../../functions/navigation'; +import { usePluginPanels } from '../../hooks/UsePluginPanels'; import { useLocalState } from '../../states/LocalState'; import { Boundary } from '../Boundary'; import { StylishText } from '../items/StylishText'; +import { PanelType } from '../panels/Panel'; /** - * Type used to specify a single panel in a panel group + * Set of properties which define a panel group: + * + * @param pageKey - Unique key for this panel group + * @param panels - List of panels to display + * @param model - The target model for this panel group (e.g. 'part' / 'salesorder') + * @param id - The target ID for this panel group (set to *null* for groups which do not target a specific model instance) + * @param instance - The target model instance for this panel group + * @param selectedPanel - The currently selected panel + * @param onPanelChange - Callback when the active panel changes + * @param collapsible - If true, the panel group can be collapsed (defaults to true) */ -export type PanelType = { - name: string; - label: string; - icon?: ReactNode; - content: ReactNode; - hidden?: boolean; - disabled?: boolean; - showHeadline?: boolean; -}; - export type PanelProps = { pageKey: string; panels: PanelType[]; + instance?: any; + model?: ModelType | string; + id?: number | null; selectedPanel?: string; onPanelChange?: (panel: string) => void; collapsible?: boolean; @@ -53,35 +58,39 @@ function BasePanelGroup({ panels, onPanelChange, selectedPanel, + instance, + model, + id, collapsible = true }: Readonly): ReactNode { + const localState = useLocalState(); const location = useLocation(); const navigate = useNavigate(); + const { panel } = useParams(); + const [expanded, setExpanded] = useState(true); + + // Hook to load plugins for this panel + const pluginPanels = usePluginPanels({ + model: model, + instance: instance, + id: id + }); + + const allPanels = useMemo( + () => [...panels, ...pluginPanels], + [panels, pluginPanels] + ); + const activePanels = useMemo( - () => panels.filter((panel) => !panel.hidden && !panel.disabled), - [panels] + () => allPanels.filter((panel) => !panel.hidden && !panel.disabled), + [allPanels] ); - const setLastUsedPanel = useLocalState((state) => - state.setLastUsedPanel(pageKey) - ); - - useEffect(() => { - if (panel) { - setLastUsedPanel(panel); - } - // panel is intentionally no dependency as this should only run on initial render - }, [setLastUsedPanel]); - // Callback when the active panel changes const handlePanelChange = useCallback( - (panel: string | null, event?: any) => { - if (activePanels.findIndex((p) => p.name === panel) === -1) { - panel = ''; - } - + (panel: string, event?: any) => { if (event && (event?.ctrlKey || event?.shiftKey)) { const url = `${location.pathname}/../${panel}`; cancelEvent(event); @@ -90,12 +99,14 @@ function BasePanelGroup({ navigate(`../${panel}`); } + localState.setLastUsedPanel(pageKey)(panel); + // Optionally call external callback hook if (panel && onPanelChange) { onPanelChange(panel); } }, - [activePanels, setLastUsedPanel, navigate, location, onPanelChange] + [activePanels, navigate, location, onPanelChange] ); // if the selected panel state changes update the current panel @@ -105,32 +116,37 @@ function BasePanelGroup({ } }, [selectedPanel, panel]); - // Update the active panel when panels changes and the active is no longer available - useEffect(() => { + // Determine the current panels selection (must be a valid panel) + const currentPanel: string = useMemo(() => { if (activePanels.findIndex((p) => p.name === panel) === -1) { - setLastUsedPanel(''); - return navigate('../'); + return activePanels[0]?.name ?? ''; + } else { + return panel ?? ''; } }, [activePanels, panel]); - const [expanded, setExpanded] = useState(true); - return ( - - - - {panels.map( + + + + {allPanels.map( (panel) => !panel.hidden && ( - {panels.map( + {allPanels.map( (panel) => !panel.hidden && ( { + const host = useLocalState((s) => s.host); + const navigate = useNavigate(); + const user = useUserState(); + const { colorScheme } = useMantineColorScheme(); + const theme = useMantineTheme(); + const globalSettings = useGlobalSettingsState(); + const userSettings = useUserSettingsState(); + + const contextData = useMemo(() => { + return { + user: user, + host: host, + api: api, + navigate: navigate, + globalSettings: globalSettings, + userSettings: userSettings, + theme: theme, + colorScheme: colorScheme + }; + }, [ + user, + host, + api, + navigate, + globalSettings, + userSettings, + theme, + colorScheme + ]); + + return contextData; +}; diff --git a/src/frontend/src/components/plugins/PluginDrawer.tsx b/src/frontend/src/components/plugins/PluginDrawer.tsx new file mode 100644 index 0000000000..02154c6225 --- /dev/null +++ b/src/frontend/src/components/plugins/PluginDrawer.tsx @@ -0,0 +1,158 @@ +import { t } from '@lingui/macro'; +import { Accordion, Alert, Card, Stack, Text } from '@mantine/core'; +import { IconExclamationCircle } from '@tabler/icons-react'; +import { useMemo } from 'react'; +import { useParams } from 'react-router-dom'; + +import { ApiEndpoints } from '../../enums/ApiEndpoints'; +import { useInstance } from '../../hooks/UseInstance'; +import { InfoItem } from '../items/InfoItem'; +import { StylishText } from '../items/StylishText'; +import { PluginSettingList } from '../settings/SettingList'; +import { PluginInterface } from './PluginInterface'; +import PluginSettingsPanel from './PluginSettingsPanel'; + +/** + * Displays a drawer with detailed information on a specific plugin + */ +export default function PluginDrawer({ + pluginKey, + pluginInstance +}: { + pluginKey?: string; + pluginInstance: PluginInterface; +}) { + const { id } = useParams(); + + const pluginPrimaryKey: string = useMemo(() => { + return pluginKey || id || ''; + }, [pluginKey, id]); + + const { instance: pluginAdmin } = useInstance({ + endpoint: ApiEndpoints.plugin_admin, + pathParams: { key: pluginPrimaryKey }, + defaultValue: {}, + hasPrimaryKey: false, + refetchOnMount: true + }); + + const hasSettings: boolean = useMemo(() => { + return !!pluginInstance?.mixins?.settings; + }, [pluginInstance]); + + if (!pluginInstance.active) { + return ( + } + > + {t`Plugin is not active`} + + ); + } + + return ( + <> + + + + {t`Plugin Information`} + + + + + + + + + + + + + + + + + + + {pluginInstance?.is_package && ( + + )} + + + + + + + + + + {hasSettings && ( + + + {t`Plugin Settings`} + + + + + + + + )} + {pluginAdmin?.source && ( + + + {t`Plugin Configuration`} + + + + + + + + )} + + + ); +} diff --git a/src/frontend/src/components/plugins/PluginInterface.tsx b/src/frontend/src/components/plugins/PluginInterface.tsx new file mode 100644 index 0000000000..36d9455bb8 --- /dev/null +++ b/src/frontend/src/components/plugins/PluginInterface.tsx @@ -0,0 +1,34 @@ +/** + * Interface which defines a single plugin object + */ +export interface PluginInterface { + pk: number; + key: string; + name: string; + active: boolean; + is_builtin: boolean; + is_sample: boolean; + is_installed: boolean; + is_package: boolean; + package_name: string | null; + admin_js_file: string | null; + meta: { + author: string | null; + description: string | null; + human_name: string | null; + license: string | null; + package_path: string | null; + pub_date: string | null; + settings_url: string | null; + slug: string | null; + version: string | null; + website: string | null; + }; + mixins: Record< + string, + { + key: string; + human_name: string; + } + >; +} diff --git a/src/frontend/src/components/plugins/PluginPanel.tsx b/src/frontend/src/components/plugins/PluginPanel.tsx new file mode 100644 index 0000000000..848cbcfd47 --- /dev/null +++ b/src/frontend/src/components/plugins/PluginPanel.tsx @@ -0,0 +1,37 @@ +import { Stack } from '@mantine/core'; +import { ReactNode } from 'react'; + +import { InvenTreeContext } from './PluginContext'; +import { PluginUIFeature } from './PluginUIFeature'; +import RemoteComponent from './RemoteComponent'; + +/** + * A custom panel which can be used to display plugin content. + * + * - Content is loaded dynamically (via the API) when a page is first loaded + * - Content can be provided from an external javascript module, or with raw HTML + * + * If content is provided from an external source, it is expected to define a function `render_panel` which will render the content. + * const render_panel = (element: HTMLElement, params: any) => {...} + * + * Where: + * - `element` is the HTML element to render the content into + * - `params` is the set of run-time parameters to pass to the content rendering function + */ +export default function PluginPanelContent({ + pluginFeature, + pluginContext +}: Readonly<{ + pluginFeature: PluginUIFeature; + pluginContext: InvenTreeContext; +}>): ReactNode { + return ( + + + + ); +} diff --git a/src/frontend/src/components/plugins/PluginSettingsPanel.tsx b/src/frontend/src/components/plugins/PluginSettingsPanel.tsx new file mode 100644 index 0000000000..ca6f971473 --- /dev/null +++ b/src/frontend/src/components/plugins/PluginSettingsPanel.tsx @@ -0,0 +1,33 @@ +import { useInvenTreeContext } from './PluginContext'; +import RemoteComponent from './RemoteComponent'; + +/** + * Interface for the plugin admin data + */ +export interface PluginAdminInterface { + source: string; + context: any; +} + +/** + * A panel which is used to display custom settings UI for a plugin. + * + * This settings panel is loaded dynamically, + * and requires that the plugin provides a javascript module, + * which exports a function `renderPluginSettings` + */ +export default function PluginSettingsPanel({ + pluginAdmin +}: { + pluginAdmin: PluginAdminInterface; +}) { + const pluginContext = useInvenTreeContext(); + + return ( + + ); +} diff --git a/src/frontend/src/components/plugins/PluginSource.tsx b/src/frontend/src/components/plugins/PluginSource.tsx new file mode 100644 index 0000000000..580496fbf6 --- /dev/null +++ b/src/frontend/src/components/plugins/PluginSource.tsx @@ -0,0 +1,53 @@ +import { useLocalState } from '../../states/LocalState'; + +/* + * Load an external plugin source from a URL. + */ +export async function loadExternalPluginSource(source: string) { + const host = useLocalState.getState().host; + + source = source.trim(); + + // If no source is provided, clear the plugin content + if (!source) { + return null; + } + + // If the source is a relative URL, prefix it with the host URL + if (source.startsWith('/')) { + source = `${host}${source}`; + } + + const module = await import(/* @vite-ignore */ source) + .catch((error) => { + console.error(`ERR: Failed to load plugin from ${source}:`, error); + return null; + }) + .then((module) => { + return module; + }); + + return module; +} + +/* + * Find a named function in an external plugin source. + */ +export async function findExternalPluginFunction( + source: string, + functionName: string +): Promise { + // The source URL may also include the function name divided by a colon + // otherwise the provided function name will be used + if (source.includes(':')) { + [source, functionName] = source.split(':'); + } + + const module = await loadExternalPluginSource(source); + + if (module && module[functionName]) { + return module[functionName]; + } + + return null; +} diff --git a/src/frontend/src/components/plugins/PluginUIFeature.tsx b/src/frontend/src/components/plugins/PluginUIFeature.tsx new file mode 100644 index 0000000000..929e09c42a --- /dev/null +++ b/src/frontend/src/components/plugins/PluginUIFeature.tsx @@ -0,0 +1,167 @@ +import { t } from '@lingui/macro'; +import { Alert, Stack, Text } from '@mantine/core'; +import { IconExclamationCircle } from '@tabler/icons-react'; +import { + forwardRef, + useEffect, + useImperativeHandle, + useRef, + useState +} from 'react'; + +import { TemplateI } from '../../tables/settings/TemplateTable'; +import { + EditorComponent, + PreviewAreaComponent, + PreviewAreaRef +} from '../editors/TemplateEditor/TemplateEditor'; +import { + PluginUIFuncWithoutInvenTreeContextType, + TemplateEditorUIFeature, + TemplatePreviewUIFeature +} from './PluginUIFeatureTypes'; + +/** + * Enumeration for available plugin UI feature types. + */ +export enum PluginUIFeatureType { + dashboard = 'dashboard', + panel = 'panel', + template_editor = 'template_editor', + template_preview = 'template_preview' +} + +/** + * Type definition for a UI component which can be loaded via plugin. + * Ref: src/backend/InvenTree/plugin/base/ui/serializers.py:PluginUIFeatureSerializer + * + * @param plugin_name: The name of the plugin + * @param feature_type: The type of the UI feature (see PluginUIFeatureType) + * @param key: The unique key for the feature (used to identify the feature in the DOM) + * @param title: The title of the feature (human readable) + * @param description: A description of the feature (human readable, optional) + * @param options: Additional options for the feature (optional, depends on the feature type) + * @param context: Additional context data passed to the rendering function (optional) + * @param source: The source of the feature (must point to an accessible javascript module) + * + */ +export interface PluginUIFeature { + plugin_name: string; + feature_type: PluginUIFeatureType; + key: string; + title: string; + description?: string; + icon?: string; + options?: any; + context?: any; + source: string; +} + +export const getPluginTemplateEditor = ( + func: PluginUIFuncWithoutInvenTreeContextType, + template: TemplateI +) => + forwardRef((props, ref) => { + const elRef = useRef(); + const [error, setError] = useState(undefined); + + const initialCodeRef = useRef(); + const setCodeRef = useRef<(code: string) => void>(); + const getCodeRef = useRef<() => string>(); + + useImperativeHandle(ref, () => ({ + setCode: (code) => { + // if the editor is not yet initialized, store the initial code in a ref to set it later + if (setCodeRef.current) { + setCodeRef.current(code); + } else { + initialCodeRef.current = code; + } + }, + getCode: () => getCodeRef.current?.() + })); + + useEffect(() => { + (async () => { + try { + await func({ + ref: elRef.current!, + registerHandlers: ({ getCode, setCode }) => { + setCodeRef.current = setCode; + getCodeRef.current = getCode; + + if (initialCodeRef.current) { + setCode(initialCodeRef.current); + } + }, + template + }); + } catch (error) { + setError(t`Error occurred while rendering the template editor.`); + console.error(error); + } + })(); + }, []); + + return ( + + {error && ( + } + > + {error} + + )} +
+
+ ); + }) as EditorComponent; + +export const getPluginTemplatePreview = ( + func: PluginUIFuncWithoutInvenTreeContextType, + template: TemplateI +) => + forwardRef((props, ref) => { + const elRef = useRef(); + const [error, setError] = useState(undefined); + + const updatePreviewRef = useRef(); + + useImperativeHandle(ref, () => ({ + updatePreview: (...args) => updatePreviewRef.current?.(...args) + })); + + useEffect(() => { + (async () => { + try { + await func({ + ref: elRef.current!, + registerHandlers: ({ updatePreview }) => { + updatePreviewRef.current = updatePreview; + }, + template + }); + } catch (error) { + setError(t`Error occurred while rendering the template preview.`); + console.error(error); + } + })(); + }, []); + + return ( + + {error && ( + } + > + {error} + + )} +
+
+ ); + }) as PreviewAreaComponent; diff --git a/src/frontend/src/components/plugins/PluginUIFeatureTypes.ts b/src/frontend/src/components/plugins/PluginUIFeatureTypes.ts new file mode 100644 index 0000000000..45818228a6 --- /dev/null +++ b/src/frontend/src/components/plugins/PluginUIFeatureTypes.ts @@ -0,0 +1,75 @@ +import { ModelType } from '../../enums/ModelType'; +import { InvenTreeIconType } from '../../functions/icons'; +import { TemplateI } from '../../tables/settings/TemplateTable'; +import { TemplateEditorProps } from '../editors/TemplateEditor/TemplateEditor'; +import { InvenTreeContext } from './PluginContext'; +import { PluginUIFeature } from './PluginUIFeature'; + +// #region Type Helpers +export type BaseUIFeature = { + featureType: string; + requestContext: Record; + responseOptions: Record; + featureContext: Record; + featureReturnType: any; +}; + +export type PluginUIGetFeatureType = (params: { + featureContext: T['featureContext']; + inventreeContext: InvenTreeContext; +}) => T['featureReturnType']; + +export type PluginUIFuncWithoutInvenTreeContextType = ( + featureContext: T['featureContext'] +) => T['featureReturnType']; + +export type PluginUIFeatureAPIResponse = { + feature_type: T['featureType']; + options: T['responseOptions']; + source: string; +}; + +// #region Types +export type TemplateEditorUIFeature = { + featureType: 'template_editor'; + requestContext: { + template_type: ModelType.labeltemplate | ModelType.reporttemplate; + template_model: ModelType; + }; + responseOptions: PluginUIFeature; + featureContext: { + ref: HTMLDivElement; + registerHandlers: (handlers: { + setCode: (code: string) => void; + getCode: () => string; + }) => void; + template: TemplateI; + }; + featureReturnType: void; +}; + +export type TemplatePreviewUIFeature = { + featureType: 'template_preview'; + requestContext: { + template_type: ModelType.labeltemplate | ModelType.reporttemplate; + template_model: ModelType; + }; + responseOptions: { + key: string; + title: string; + icon: InvenTreeIconType; + }; + featureContext: { + ref: HTMLDivElement; + template: TemplateI; + registerHandlers: (handlers: { + updatePreview: ( + code: string, + previewItem: string, + saveTemplate: boolean, + templateEditorProps: TemplateEditorProps + ) => void | Promise; + }) => void; + }; + featureReturnType: void; +}; diff --git a/src/frontend/src/components/plugins/RemoteComponent.tsx b/src/frontend/src/components/plugins/RemoteComponent.tsx new file mode 100644 index 0000000000..338110eb5b --- /dev/null +++ b/src/frontend/src/components/plugins/RemoteComponent.tsx @@ -0,0 +1,105 @@ +import { t } from '@lingui/macro'; +import { Alert, Stack, Text } from '@mantine/core'; +import { IconExclamationCircle } from '@tabler/icons-react'; +import { useEffect, useMemo, useRef, useState } from 'react'; + +import { identifierString } from '../../functions/conversion'; +import { Boundary } from '../Boundary'; +import { InvenTreeContext } from './PluginContext'; +import { findExternalPluginFunction } from './PluginSource'; + +/** + * A remote component which can be used to display plugin content. + * Content is loaded dynamically (from an external source). + * + * @param pluginFeature: The plugin feature to render + * @param defaultFunctionName: The default function name to call (if not overridden by pluginFeature.source) + * @param pluginContext: The context to pass to the plugin function + * + */ +export default function RemoteComponent({ + source, + defaultFunctionName, + context +}: { + source: string; + defaultFunctionName: string; + context: InvenTreeContext; +}) { + const componentRef = useRef(); + + const [renderingError, setRenderingError] = useState( + undefined + ); + + const sourceFile = useMemo(() => { + return source.split(':')[0]; + }, [source]); + + // Determine the function to call in the external plugin source + const functionName = useMemo(() => { + // The "source" string may contain a function name, e.g. "source.js:myFunction" + if (source.includes(':')) { + return source.split(':')[1]; + } + + // By default, return the default function name + return defaultFunctionName; + }, [source, defaultFunctionName]); + + const reloadPluginContent = async () => { + if (!componentRef.current) { + return; + } + + if (sourceFile && functionName) { + findExternalPluginFunction(sourceFile, functionName).then((func) => { + if (func) { + try { + func(componentRef.current, context); + setRenderingError(''); + } catch (error) { + setRenderingError(`${error}`); + } + } else { + setRenderingError(`${sourceFile}:${functionName}`); + } + }); + } else { + setRenderingError( + t`Invalid source or function name` + ` - ${sourceFile}:${functionName}` + ); + } + }; + + // Reload the plugin content dynamically + useEffect(() => { + reloadPluginContent(); + }, [sourceFile, functionName, context]); + + return ( + <> + + + {renderingError && ( + } + > + + {t`Error occurred while loading plugin content`}:{' '} + {renderingError} + + + )} +
+
+
+ + ); +} diff --git a/src/frontend/src/components/render/Company.tsx b/src/frontend/src/components/render/Company.tsx index 524d140851..9b472bac2f 100644 --- a/src/frontend/src/components/render/Company.tsx +++ b/src/frontend/src/components/render/Company.tsx @@ -1,3 +1,4 @@ +import { Text } from '@mantine/core'; import { ReactNode } from 'react'; import { ModelType } from '../../enums/ModelType'; @@ -70,7 +71,9 @@ export function RenderSupplierPart( primary={supplier?.name} secondary={instance.SKU} image={part?.thumbnail ?? part?.image} - suffix={part.full_name} + suffix={ + part.full_name ? {part.full_name} : undefined + } url={ props.link ? getDetailUrl(ModelType.supplierpart, instance.pk) @@ -95,7 +98,9 @@ export function RenderManufacturerPart( {...props} primary={manufacturer.name} secondary={instance.MPN} - suffix={part.full_name} + suffix={ + part.full_name ? {part.full_name} : undefined + } image={manufacturer?.thumnbnail ?? manufacturer.image} url={ props.link diff --git a/src/frontend/src/components/render/Generic.tsx b/src/frontend/src/components/render/Generic.tsx index 3d04f990df..59a64236f1 100644 --- a/src/frontend/src/components/render/Generic.tsx +++ b/src/frontend/src/components/render/Generic.tsx @@ -21,6 +21,12 @@ export function RenderContentType({ return instance && ; } +export function RenderError({ + instance +}: Readonly): ReactNode { + return instance && ; +} + export function RenderImportSession({ instance }: { diff --git a/src/frontend/src/components/render/Instance.tsx b/src/frontend/src/components/render/Instance.tsx index c2df42a7d3..95672057d8 100644 --- a/src/frontend/src/components/render/Instance.tsx +++ b/src/frontend/src/components/render/Instance.tsx @@ -18,6 +18,7 @@ import { } from './Company'; import { RenderContentType, + RenderError, RenderImportSession, RenderProjectCode } from './Generic'; @@ -92,7 +93,8 @@ const RendererLookup: EnumDictionary< [ModelType.reporttemplate]: RenderReportTemplate, [ModelType.labeltemplate]: RenderLabelTemplate, [ModelType.pluginconfig]: RenderPlugin, - [ModelType.contenttype]: RenderContentType + [ModelType.contenttype]: RenderContentType, + [ModelType.error]: RenderError }; export type RenderInstanceProps = { @@ -104,14 +106,14 @@ export type RenderInstanceProps = { */ export function RenderInstance(props: RenderInstanceProps): ReactNode { if (props.model === undefined) { - console.error('RenderInstance: No model provided'); return ; } - const RenderComponent = RendererLookup[props.model]; + const model_name = props.model.toString().toLowerCase() as ModelType; + + const RenderComponent = RendererLookup[model_name]; if (!RenderComponent) { - console.error(`RenderInstance: No renderer for model ${props.model}`); return ; } @@ -121,10 +123,10 @@ export function RenderInstance(props: RenderInstanceProps): ReactNode { export function RenderRemoteInstance({ model, pk -}: { +}: Readonly<{ model: ModelType; pk: number; -}): ReactNode { +}>): ReactNode { const { data, isLoading, isFetching } = useQuery({ queryKey: ['model', model, pk], queryFn: async () => { @@ -166,7 +168,7 @@ export function RenderInlineModel({ navigate, showSecondary = true, tooltip -}: { +}: Readonly<{ primary: string; secondary?: string; showSecondary?: boolean; @@ -177,7 +179,7 @@ export function RenderInlineModel({ url?: string; navigate?: any; tooltip?: string; -}): ReactNode { +}>): ReactNode { // TODO: Handle labels const onClick = useCallback( @@ -215,9 +217,9 @@ export function RenderInlineModel({ export function UnknownRenderer({ model -}: { +}: Readonly<{ model: ModelType | undefined; -}): ReactNode { +}>): ReactNode { return ( <> diff --git a/src/frontend/src/components/render/InstanceFromUrl.tsx b/src/frontend/src/components/render/InstanceFromUrl.tsx index 2e0d7877f0..845e494145 100644 --- a/src/frontend/src/components/render/InstanceFromUrl.tsx +++ b/src/frontend/src/components/render/InstanceFromUrl.tsx @@ -14,10 +14,10 @@ import { RenderInstance } from './Instance'; export function InstanceFromUrl({ model, url -}: { +}: Readonly<{ model: ModelType; url: string; -}) { +}>) { const [data, setData] = useState(null); useMemo( () => diff --git a/src/frontend/src/components/render/ModelType.tsx b/src/frontend/src/components/render/ModelType.tsx index 20b5fa1bb7..149e4d58ff 100644 --- a/src/frontend/src/components/render/ModelType.tsx +++ b/src/frontend/src/components/render/ModelType.tsx @@ -2,6 +2,7 @@ import { t } from '@lingui/macro'; import { ApiEndpoints } from '../../enums/ApiEndpoints'; import { ModelType } from '../../enums/ModelType'; +import { InvenTreeIconType } from '../../functions/icons'; export interface ModelInformationInterface { label: string; @@ -11,249 +12,299 @@ export interface ModelInformationInterface { api_endpoint: ApiEndpoints; cui_detail?: string; admin_url?: string; + icon: InvenTreeIconType; +} + +export interface TranslatableModelInformationInterface + extends Omit { + label: () => string; + label_multiple: () => string; } export type ModelDict = { - [key in keyof typeof ModelType]: ModelInformationInterface; + [key in keyof typeof ModelType]: TranslatableModelInformationInterface; }; export const ModelInformationDict: ModelDict = { part: { - label: t`Part`, - label_multiple: t`Parts`, - url_overview: '/part', + label: () => t`Part`, + label_multiple: () => t`Parts`, + url_overview: '/part/category/index/parts', url_detail: '/part/:pk/', cui_detail: '/part/:pk/', api_endpoint: ApiEndpoints.part_list, - admin_url: '/part/part/' + admin_url: '/part/part/', + icon: 'part' }, partparametertemplate: { - label: t`Part Parameter Template`, - label_multiple: t`Part Parameter Templates`, + label: () => t`Part Parameter Template`, + label_multiple: () => t`Part Parameter Templates`, url_overview: '/partparametertemplate', url_detail: '/partparametertemplate/:pk/', - api_endpoint: ApiEndpoints.part_parameter_template_list + api_endpoint: ApiEndpoints.part_parameter_template_list, + icon: 'test_templates' }, parttesttemplate: { - label: t`Part Test Template`, - label_multiple: t`Part Test Templates`, + label: () => t`Part Test Template`, + label_multiple: () => t`Part Test Templates`, url_overview: '/parttesttemplate', url_detail: '/parttesttemplate/:pk/', - api_endpoint: ApiEndpoints.part_test_template_list + api_endpoint: ApiEndpoints.part_test_template_list, + icon: 'test' }, supplierpart: { - label: t`Supplier Part`, - label_multiple: t`Supplier Parts`, + label: () => t`Supplier Part`, + label_multiple: () => t`Supplier Parts`, url_overview: '/supplierpart', url_detail: '/purchasing/supplier-part/:pk/', cui_detail: '/supplier-part/:pk/', api_endpoint: ApiEndpoints.supplier_part_list, - admin_url: '/company/supplierpart/' + admin_url: '/company/supplierpart/', + icon: 'supplier_part' }, manufacturerpart: { - label: t`Manufacturer Part`, - label_multiple: t`Manufacturer Parts`, + label: () => t`Manufacturer Part`, + label_multiple: () => t`Manufacturer Parts`, url_overview: '/manufacturerpart', url_detail: '/purchasing/manufacturer-part/:pk/', cui_detail: '/manufacturer-part/:pk/', api_endpoint: ApiEndpoints.manufacturer_part_list, - admin_url: '/company/manufacturerpart/' + admin_url: '/company/manufacturerpart/', + icon: 'manufacturers' }, partcategory: { - label: t`Part Category`, - label_multiple: t`Part Categories`, - url_overview: '/part/category', + label: () => t`Part Category`, + label_multiple: () => t`Part Categories`, + url_overview: '/part/category/parts/subcategories', url_detail: '/part/category/:pk/', cui_detail: '/part/category/:pk/', api_endpoint: ApiEndpoints.category_list, - admin_url: '/part/partcategory/' + admin_url: '/part/partcategory/', + icon: 'category' }, stockitem: { - label: t`Stock Item`, - label_multiple: t`Stock Items`, - url_overview: '/stock/item', + label: () => t`Stock Item`, + label_multiple: () => t`Stock Items`, + url_overview: '/stock/location/index/stock-items', url_detail: '/stock/item/:pk/', cui_detail: '/stock/item/:pk/', api_endpoint: ApiEndpoints.stock_item_list, - admin_url: '/stock/stockitem/' + admin_url: '/stock/stockitem/', + icon: 'stock' }, stocklocation: { - label: t`Stock Location`, - label_multiple: t`Stock Locations`, + label: () => t`Stock Location`, + label_multiple: () => t`Stock Locations`, url_overview: '/stock/location', url_detail: '/stock/location/:pk/', cui_detail: '/stock/location/:pk/', api_endpoint: ApiEndpoints.stock_location_list, - admin_url: '/stock/stocklocation/' + admin_url: '/stock/stocklocation/', + icon: 'location' }, stocklocationtype: { - label: t`Stock Location Type`, - label_multiple: t`Stock Location Types`, - api_endpoint: ApiEndpoints.stock_location_type_list + label: () => t`Stock Location Type`, + label_multiple: () => t`Stock Location Types`, + api_endpoint: ApiEndpoints.stock_location_type_list, + icon: 'location' }, stockhistory: { - label: t`Stock History`, - label_multiple: t`Stock Histories`, - api_endpoint: ApiEndpoints.stock_tracking_list + label: () => t`Stock History`, + label_multiple: () => t`Stock Histories`, + api_endpoint: ApiEndpoints.stock_tracking_list, + icon: 'history' }, build: { - label: t`Build`, - label_multiple: t`Builds`, - url_overview: '/build', - url_detail: '/build/:pk/', + label: () => t`Build`, + label_multiple: () => t`Builds`, + url_overview: '/manufacturing/index/buildorders/', + url_detail: '/manufacturing/build-order/:pk/', cui_detail: '/build/:pk/', api_endpoint: ApiEndpoints.build_order_list, - admin_url: '/build/build/' + admin_url: '/build/build/', + icon: 'build_order' }, buildline: { - label: t`Build Line`, - label_multiple: t`Build Lines`, + label: () => t`Build Line`, + label_multiple: () => t`Build Lines`, url_overview: '/build/line', url_detail: '/build/line/:pk/', cui_detail: '/build/line/:pk/', - api_endpoint: ApiEndpoints.build_line_list + api_endpoint: ApiEndpoints.build_line_list, + icon: 'build_order' }, builditem: { - label: t`Build Item`, - label_multiple: t`Build Items`, - api_endpoint: ApiEndpoints.build_item_list + label: () => t`Build Item`, + label_multiple: () => t`Build Items`, + api_endpoint: ApiEndpoints.build_item_list, + icon: 'build_order' }, company: { - label: t`Company`, - label_multiple: t`Companies`, + label: () => t`Company`, + label_multiple: () => t`Companies`, url_overview: '/company', url_detail: '/company/:pk/', cui_detail: '/company/:pk/', api_endpoint: ApiEndpoints.company_list, - admin_url: '/company/company/' + admin_url: '/company/company/', + icon: 'building' }, projectcode: { - label: t`Project Code`, - label_multiple: t`Project Codes`, + label: () => t`Project Code`, + label_multiple: () => t`Project Codes`, url_overview: '/project-code', url_detail: '/project-code/:pk/', - api_endpoint: ApiEndpoints.project_code_list + api_endpoint: ApiEndpoints.project_code_list, + icon: 'list_details' }, purchaseorder: { - label: t`Purchase Order`, - label_multiple: t`Purchase Orders`, - url_overview: '/purchasing/purchase-order', + label: () => t`Purchase Order`, + label_multiple: () => t`Purchase Orders`, + url_overview: '/purchasing/index/purchaseorders', url_detail: '/purchasing/purchase-order/:pk/', cui_detail: '/order/purchase-order/:pk/', api_endpoint: ApiEndpoints.purchase_order_list, - admin_url: '/order/purchaseorder/' + admin_url: '/order/purchaseorder/', + icon: 'purchase_orders' }, purchaseorderlineitem: { - label: t`Purchase Order Line`, - label_multiple: t`Purchase Order Lines`, - api_endpoint: ApiEndpoints.purchase_order_line_list + label: () => t`Purchase Order Line`, + label_multiple: () => t`Purchase Order Lines`, + api_endpoint: ApiEndpoints.purchase_order_line_list, + icon: 'purchase_orders' }, salesorder: { - label: t`Sales Order`, - label_multiple: t`Sales Orders`, - url_overview: '/sales/sales-order', + label: () => t`Sales Order`, + label_multiple: () => t`Sales Orders`, + url_overview: '/sales/index/salesorders', url_detail: '/sales/sales-order/:pk/', cui_detail: '/order/sales-order/:pk/', api_endpoint: ApiEndpoints.sales_order_list, - admin_url: '/order/salesorder/' + admin_url: '/order/salesorder/', + icon: 'sales_orders' }, salesordershipment: { - label: t`Sales Order Shipment`, - label_multiple: t`Sales Order Shipments`, - url_overview: '/salesordershipment', - url_detail: '/salesordershipment/:pk/', - api_endpoint: ApiEndpoints.sales_order_shipment_list + label: () => t`Sales Order Shipment`, + label_multiple: () => t`Sales Order Shipments`, + url_overview: '/sales/shipment/', + url_detail: '/sales/shipment/:pk/', + api_endpoint: ApiEndpoints.sales_order_shipment_list, + icon: 'sales_orders' }, returnorder: { - label: t`Return Order`, - label_multiple: t`Return Orders`, - url_overview: '/sales/return-order', + label: () => t`Return Order`, + label_multiple: () => t`Return Orders`, + url_overview: '/sales/index/returnorders', url_detail: '/sales/return-order/:pk/', cui_detail: '/order/return-order/:pk/', api_endpoint: ApiEndpoints.return_order_list, - admin_url: '/order/returnorder/' + admin_url: '/order/returnorder/', + icon: 'return_orders' }, returnorderlineitem: { - label: t`Return Order Line Item`, - label_multiple: t`Return Order Line Items`, - api_endpoint: ApiEndpoints.return_order_line_list + label: () => t`Return Order Line Item`, + label_multiple: () => t`Return Order Line Items`, + api_endpoint: ApiEndpoints.return_order_line_list, + icon: 'return_orders' }, address: { - label: t`Address`, - label_multiple: t`Addresses`, + label: () => t`Address`, + label_multiple: () => t`Addresses`, url_overview: '/address', url_detail: '/address/:pk/', - api_endpoint: ApiEndpoints.address_list + api_endpoint: ApiEndpoints.address_list, + icon: 'address' }, contact: { - label: t`Contact`, - label_multiple: t`Contacts`, + label: () => t`Contact`, + label_multiple: () => t`Contacts`, url_overview: '/contact', url_detail: '/contact/:pk/', - api_endpoint: ApiEndpoints.contact_list + api_endpoint: ApiEndpoints.contact_list, + icon: 'group' }, owner: { - label: t`Owner`, - label_multiple: t`Owners`, + label: () => t`Owner`, + label_multiple: () => t`Owners`, url_overview: '/owner', url_detail: '/owner/:pk/', - api_endpoint: ApiEndpoints.owner_list + api_endpoint: ApiEndpoints.owner_list, + icon: 'group' }, user: { - label: t`User`, - label_multiple: t`Users`, + label: () => t`User`, + label_multiple: () => t`Users`, url_overview: '/user', url_detail: '/user/:pk/', - api_endpoint: ApiEndpoints.user_list + api_endpoint: ApiEndpoints.user_list, + icon: 'user' }, group: { - label: t`Group`, - label_multiple: t`Groups`, + label: () => t`Group`, + label_multiple: () => t`Groups`, url_overview: '/user/group', url_detail: '/user/group-:pk', api_endpoint: ApiEndpoints.group_list, - admin_url: '/auth/group/' + admin_url: '/auth/group/', + icon: 'group' }, importsession: { - label: t`Import Session`, - label_multiple: t`Import Sessions`, + label: () => t`Import Session`, + label_multiple: () => t`Import Sessions`, url_overview: '/import', url_detail: '/import/:pk/', - api_endpoint: ApiEndpoints.import_session_list + api_endpoint: ApiEndpoints.import_session_list, + icon: 'import' }, labeltemplate: { - label: t`Label Template`, - label_multiple: t`Label Templates`, + label: () => t`Label Template`, + label_multiple: () => t`Label Templates`, url_overview: '/labeltemplate', url_detail: '/labeltemplate/:pk/', - api_endpoint: ApiEndpoints.label_list + api_endpoint: ApiEndpoints.label_list, + icon: 'labels' }, reporttemplate: { - label: t`Report Template`, - label_multiple: t`Report Templates`, + label: () => t`Report Template`, + label_multiple: () => t`Report Templates`, url_overview: '/reporttemplate', url_detail: '/reporttemplate/:pk/', - api_endpoint: ApiEndpoints.report_list + api_endpoint: ApiEndpoints.report_list, + icon: 'reports' }, pluginconfig: { - label: t`Plugin Configuration`, - label_multiple: t`Plugin Configurations`, + label: () => t`Plugin Configuration`, + label_multiple: () => t`Plugin Configurations`, url_overview: '/pluginconfig', url_detail: '/pluginconfig/:pk/', - api_endpoint: ApiEndpoints.plugin_list + api_endpoint: ApiEndpoints.plugin_list, + icon: 'plugin' }, contenttype: { - label: t`Content Type`, - label_multiple: t`Content Types`, - api_endpoint: ApiEndpoints.content_type_list + label: () => t`Content Type`, + label_multiple: () => t`Content Types`, + api_endpoint: ApiEndpoints.content_type_list, + icon: 'list_details' + }, + error: { + label: () => t`Error`, + label_multiple: () => t`Errors`, + api_endpoint: ApiEndpoints.error_report_list, + url_overview: '/settings/admin/errors', + url_detail: '/settings/admin/errors/:pk/', + icon: 'exclamation' } }; /* - * Extract model definition given the provided type + * Extract model definition given the provided type - returns translatable strings for labels as string, not functions * @param type - ModelType to extract information from * @returns ModelInformationInterface */ export function getModelInfo(type: ModelType): ModelInformationInterface { - return ModelInformationDict[type]; + return { + ...ModelInformationDict[type], + label: ModelInformationDict[type].label(), + label_multiple: ModelInformationDict[type].label_multiple() + }; } diff --git a/src/frontend/src/components/render/Order.tsx b/src/frontend/src/components/render/Order.tsx index 72f5544f4f..61fcf53edc 100644 --- a/src/frontend/src/components/render/Order.tsx +++ b/src/frontend/src/components/render/Order.tsx @@ -110,15 +110,15 @@ export function RenderSalesOrder( */ export function RenderSalesOrderShipment({ instance -}: { +}: Readonly<{ instance: any; -}): ReactNode { - let order = instance.sales_order_detail || {}; +}>): ReactNode { + let order = instance.order_detail || {}; return ( ); } diff --git a/src/frontend/src/components/render/Part.tsx b/src/frontend/src/components/render/Part.tsx index 24ca8ea1ad..de0635541c 100644 --- a/src/frontend/src/components/render/Part.tsx +++ b/src/frontend/src/components/render/Part.tsx @@ -83,9 +83,9 @@ export function RenderPartCategory( */ export function RenderPartParameterTemplate({ instance -}: { +}: Readonly<{ instance: any; -}): ReactNode { +}>): ReactNode { return ( ): ReactNode { return ( ; -}): ReactNode { +}>): ReactNode { return ( ): ReactNode { return ( ): ReactNode { return ( { const statusCodes = getStatusCodes(type); + if (options?.hidden) { + return null; + } + if (statusCodes === undefined || statusCodes === null) { console.warn('StatusRenderer: statusCodes is undefined'); return null; diff --git a/src/frontend/src/components/render/Stock.tsx b/src/frontend/src/components/render/Stock.tsx index d42c52f58b..6d0854f05c 100644 --- a/src/frontend/src/components/render/Stock.tsx +++ b/src/frontend/src/components/render/Stock.tsx @@ -1,4 +1,5 @@ import { t } from '@lingui/macro'; +import { Text } from '@mantine/core'; import { ReactNode } from 'react'; import { ModelType } from '../../enums/ModelType'; @@ -66,7 +67,7 @@ export function RenderStockItem( {quantity_string}} image={instance.part_detail?.thumbnail || instance.part_detail?.image} url={ props.link ? getDetailUrl(ModelType.stockitem, instance.pk) : undefined diff --git a/src/frontend/src/components/settings/FactCollection.tsx b/src/frontend/src/components/settings/FactCollection.tsx new file mode 100644 index 0000000000..5ba9dbc39c --- /dev/null +++ b/src/frontend/src/components/settings/FactCollection.tsx @@ -0,0 +1,23 @@ +import { SimpleGrid } from '@mantine/core'; + +import { FactItem } from './FactItem'; + +export function FactCollection({ + items, + minItems = 3 +}: Readonly<{ + items: { title: string; value: any }[]; + minItems?: number; +}>) { + return ( + + {items.map((item, index) => ( + + ))} + + ); +} diff --git a/src/frontend/src/components/settings/FactItem.tsx b/src/frontend/src/components/settings/FactItem.tsx new file mode 100644 index 0000000000..a4a69cf926 --- /dev/null +++ b/src/frontend/src/components/settings/FactItem.tsx @@ -0,0 +1,17 @@ +import { Paper, Stack, Text } from '@mantine/core'; + +import { StylishText } from '../items/StylishText'; + +export function FactItem({ + title, + value +}: Readonly<{ title: string; value: number }>) { + return ( + + + {title} + {value} + + + ); +} diff --git a/src/frontend/src/components/settings/SettingItem.tsx b/src/frontend/src/components/settings/SettingItem.tsx index 292f5a1c19..b6aba71b4c 100644 --- a/src/frontend/src/components/settings/SettingItem.tsx +++ b/src/frontend/src/components/settings/SettingItem.tsx @@ -22,11 +22,11 @@ function SettingValue({ setting, onEdit, onToggle -}: { +}: Readonly<{ setting: Setting; onEdit: (setting: Setting) => void; onToggle: (setting: Setting, value: boolean) => void; -}) { +}>) { // Determine the text to display for the setting value const valueText: string = useMemo(() => { let value = setting.value; @@ -81,12 +81,12 @@ export function SettingItem({ shaded, onEdit, onToggle -}: { +}: Readonly<{ setting: Setting; shaded: boolean; onEdit: (setting: Setting) => void; onToggle: (setting: Setting, value: boolean) => void; -}) { +}>) { const { colorScheme } = useMantineColorScheme(); const style: Record = { paddingLeft: '8px' }; diff --git a/src/frontend/src/components/settings/SettingList.tsx b/src/frontend/src/components/settings/SettingList.tsx index b5d2090bfb..08492d9142 100644 --- a/src/frontend/src/components/settings/SettingList.tsx +++ b/src/frontend/src/components/settings/SettingList.tsx @@ -31,11 +31,11 @@ export function SettingList({ settingsState, keys, onChange -}: { +}: Readonly<{ settingsState: SettingsStateProps; keys?: string[]; onChange?: () => void; -}) { +}>) { useEffect(() => { settingsState.fetchSettings(); }, []); @@ -150,7 +150,7 @@ export function SettingList({ onToggle={onValueToggle} /> ) : ( - + Setting {key} not found )} @@ -167,19 +167,21 @@ export function SettingList({ ); } -export function UserSettingList({ keys }: { keys: string[] }) { +export function UserSettingList({ keys }: Readonly<{ keys: string[] }>) { const userSettings = useUserSettingsState(); return ; } -export function GlobalSettingList({ keys }: { keys: string[] }) { +export function GlobalSettingList({ keys }: Readonly<{ keys: string[] }>) { const globalSettings = useGlobalSettingsState(); return ; } -export function PluginSettingList({ pluginKey }: { pluginKey: string }) { +export function PluginSettingList({ + pluginKey +}: Readonly<{ pluginKey: string }>) { const pluginSettingsStore = useRef( createPluginSettingsState({ plugin: pluginKey }) ).current; @@ -192,11 +194,11 @@ export function MachineSettingList({ machinePk, configType, onChange -}: { +}: Readonly<{ machinePk: string; configType: 'M' | 'D'; onChange?: () => void; -}) { +}>) { const machineSettingsStore = useRef( createMachineSettingsState({ machine: machinePk, diff --git a/src/frontend/src/components/widgets/DisplayWidget.tsx b/src/frontend/src/components/widgets/DisplayWidget.tsx deleted file mode 100644 index c247d16653..0000000000 --- a/src/frontend/src/components/widgets/DisplayWidget.tsx +++ /dev/null @@ -1,29 +0,0 @@ -import { Trans } from '@lingui/macro'; -import { SimpleGrid, Title } from '@mantine/core'; - -import { ColorToggle } from '../items/ColorToggle'; -import { LanguageSelect } from '../items/LanguageSelect'; - -export default function DisplayWidget() { - return ( - - - <Trans>Display Settings</Trans> - - -
- Color Mode -
-
- -
-
- Language -
-
- -
-
-
- ); -} diff --git a/src/frontend/src/components/widgets/FeedbackWidget.tsx b/src/frontend/src/components/widgets/FeedbackWidget.tsx deleted file mode 100644 index e716d2298b..0000000000 --- a/src/frontend/src/components/widgets/FeedbackWidget.tsx +++ /dev/null @@ -1,36 +0,0 @@ -import { Trans } from '@lingui/macro'; -import { Button, Stack, Title, useMantineColorScheme } from '@mantine/core'; -import { IconExternalLink } from '@tabler/icons-react'; - -import { vars } from '../../theme'; - -export default function FeedbackWidget() { - const { colorScheme } = useMantineColorScheme(); - return ( - - - <Trans>Something is new: Platform UI</Trans> - - - We are building a new UI with a modern stack. What you currently see is - not fixed and will be redesigned but demonstrates the UI/UX - possibilities we will have going forward. - - - - ); -} diff --git a/src/frontend/src/components/widgets/GetStartedWidget.tsx b/src/frontend/src/components/widgets/GetStartedWidget.tsx deleted file mode 100644 index cd36190046..0000000000 --- a/src/frontend/src/components/widgets/GetStartedWidget.tsx +++ /dev/null @@ -1,16 +0,0 @@ -import { Trans } from '@lingui/macro'; -import { Title } from '@mantine/core'; - -import { navDocLinks } from '../../defaults/links'; -import { GettingStartedCarousel } from '../items/GettingStartedCarousel'; - -export default function GetStartedWidget() { - return ( - - - <Trans>Getting started</Trans> - - - - ); -} diff --git a/src/frontend/src/components/widgets/WidgetLayout.css.ts b/src/frontend/src/components/widgets/WidgetLayout.css.ts deleted file mode 100644 index 467dd24b60..0000000000 --- a/src/frontend/src/components/widgets/WidgetLayout.css.ts +++ /dev/null @@ -1,16 +0,0 @@ -import { style } from '@vanilla-extract/css'; - -import { vars } from '../../theme'; - -export const backgroundItem = style({ - maxWidth: '100%', - padding: '8px', - boxShadow: vars.shadows.md, - [vars.lightSelector]: { backgroundColor: vars.colors.white }, - [vars.darkSelector]: { backgroundColor: vars.colors.dark[5] } -}); - -export const baseItem = style({ - maxWidth: '100%', - padding: '8px' -}); diff --git a/src/frontend/src/components/widgets/WidgetLayout.tsx b/src/frontend/src/components/widgets/WidgetLayout.tsx deleted file mode 100644 index 603ed19daf..0000000000 --- a/src/frontend/src/components/widgets/WidgetLayout.tsx +++ /dev/null @@ -1,232 +0,0 @@ -import { Trans } from '@lingui/macro'; -import { - ActionIcon, - Container, - Group, - Indicator, - Menu, - Text -} from '@mantine/core'; -import { useDisclosure, useHotkeys } from '@mantine/hooks'; -import { - IconArrowBackUpDouble, - IconDotsVertical, - IconLayout2, - IconSquare, - IconSquareCheck -} from '@tabler/icons-react'; -import { useEffect, useState } from 'react'; -import { Responsive, WidthProvider } from 'react-grid-layout'; - -import * as classes from './WidgetLayout.css'; - -const ReactGridLayout = WidthProvider(Responsive); - -interface LayoutStorage { - [key: string]: {}; -} - -const compactType = 'vertical'; - -export interface LayoutItemType { - i: number; - val: string | JSX.Element | JSX.Element[] | (() => JSX.Element); - w?: number; - h?: number; - x?: number; - y?: number; - minH?: number; -} - -export function WidgetLayout({ - items = [], - className = 'layout', - localstorageName = 'argl', - rowHeight = 30 -}: { - items: LayoutItemType[]; - className?: string; - localstorageName?: string; - rowHeight?: number; -}) { - const [layouts, setLayouts] = useState({}); - const [editable, setEditable] = useDisclosure(false); - const [boxShown, setBoxShown] = useDisclosure(true); - - useEffect(() => { - let layout = getFromLS('layouts') || []; - const new_layout = JSON.parse(JSON.stringify(layout)); - setLayouts(new_layout); - }, []); - - function getFromLS(key: string) { - let ls: LayoutStorage = {}; - if (localStorage) { - try { - ls = JSON.parse(localStorage.getItem(localstorageName) || '') || {}; - } catch (e) { - /*Ignore*/ - } - } - return ls[key]; - } - - function saveToLS(key: string, value: any) { - if (localStorage) { - localStorage.setItem( - localstorageName, - JSON.stringify({ - [key]: value - }) - ); - } - } - - function resetLayout() { - setLayouts({}); - } - - function onLayoutChange(layout: any, layouts: any) { - saveToLS('layouts', layouts); - setLayouts(layouts); - } - - return ( -
- - {layouts ? ( - onLayoutChange(layout, layouts)} - compactType={compactType} - isDraggable={editable} - isResizable={editable} - > - {items.map((item) => { - return LayoutItem(item, boxShown, classes); - })} - - ) : ( -
- Loading -
- )} -
- ); -} - -function WidgetControlBar({ - editable, - editFnc, - resetLayout, - boxShown, - boxFnc -}: { - editable: boolean; - editFnc: () => void; - resetLayout: () => void; - boxShown: boolean; - boxFnc: () => void; -}) { - useHotkeys([['mod+E', () => editFnc()]]); - - return ( - - - - - - - - - - - - - Layout - - } - onClick={resetLayout} - > - Reset Layout - - - } - onClick={editFnc} - rightSection={ - - ⌘E - - } - > - {editable ? Stop Edit : Edit Layout} - - - - - - Appearance - - - ) : ( - - ) - } - onClick={boxFnc} - > - Show Boxes - - - - - ); -} - -function LayoutItem( - item: any, - backgroundColor: boolean, - classes: { backgroundItem: string; baseItem: string } -) { - return ( - - {item.val} - - ); -} diff --git a/src/frontend/src/contexts/LanguageContext.tsx b/src/frontend/src/contexts/LanguageContext.tsx index 509928c553..0ccf1b815a 100644 --- a/src/frontend/src/contexts/LanguageContext.tsx +++ b/src/frontend/src/contexts/LanguageContext.tsx @@ -36,6 +36,7 @@ export const getSupportedLanguages = (): Record => { it: t`Italian`, ja: t`Japanese`, ko: t`Korean`, + lt: t`Lithuanian`, lv: t`Latvian`, nl: t`Dutch`, no: t`Norwegian`, @@ -56,7 +57,9 @@ export const getSupportedLanguages = (): Record => { }; }; -export function LanguageContext({ children }: { children: JSX.Element }) { +export function LanguageContext({ + children +}: Readonly<{ children: JSX.Element }>) { const [language] = useLocalState((state) => [state.language]); const [server] = useServerApiState((state) => [state.server]); diff --git a/src/frontend/src/contexts/ThemeContext.tsx b/src/frontend/src/contexts/ThemeContext.tsx index e5562c58fa..39fcfecd1d 100644 --- a/src/frontend/src/contexts/ThemeContext.tsx +++ b/src/frontend/src/contexts/ThemeContext.tsx @@ -11,7 +11,9 @@ import { useLocalState } from '../states/LocalState'; import { LanguageContext } from './LanguageContext'; import { colorSchema } from './colorSchema'; -export function ThemeContext({ children }: { children: JSX.Element }) { +export function ThemeContext({ + children +}: Readonly<{ children: JSX.Element }>) { const [primaryColor, whiteColor, blackColor, radius] = useLocalState( (state) => [ state.primaryColor, diff --git a/src/frontend/src/defaults/actions.tsx b/src/frontend/src/defaults/actions.tsx index 8f7241aec8..68997f0e1a 100644 --- a/src/frontend/src/defaults/actions.tsx +++ b/src/frontend/src/defaults/actions.tsx @@ -6,25 +6,17 @@ import { NavigateFunction } from 'react-router-dom'; import { useLocalState } from '../states/LocalState'; import { useUserState } from '../states/UserState'; import { aboutInvenTree, docLinks, licenseInfo, serverInfo } from './links'; -import { menuItems } from './menuItems'; export function getActions(navigate: NavigateFunction) { const setNavigationOpen = useLocalState((state) => state.setNavigationOpen); const { user } = useUserState(); const actions: SpotlightActionData[] = [ - { - id: 'home', - label: t`Home`, - description: `Go to the home page`, - onClick: () => navigate(menuItems.home.link), - leftSection: - }, { id: 'dashboard', label: t`Dashboard`, description: t`Go to the InvenTree dashboard`, - onClick: () => navigate(menuItems.dashboard.link), + onClick: () => {}, // navigate(menuItems.dashboard.link), leftSection: }, { @@ -70,7 +62,7 @@ export function getActions(navigate: NavigateFunction) { id: 'admin-center', label: t`Admin Center`, description: t`Go to the Admin Center`, - onClick: () => navigate(menuItems['settings-admin'].link), + onClick: () => {}, /// navigate(menuItems['settings-admin'].link),} leftSection: }); diff --git a/src/frontend/src/defaults/dashboardItems.tsx b/src/frontend/src/defaults/dashboardItems.tsx deleted file mode 100644 index 22ec6eb6f5..0000000000 --- a/src/frontend/src/defaults/dashboardItems.tsx +++ /dev/null @@ -1,132 +0,0 @@ -import { t } from '@lingui/macro'; - -import { ApiEndpoints } from '../enums/ApiEndpoints'; - -interface DashboardItems { - id: string; - text: string; - icon: string; - url: ApiEndpoints; - params: any; -} -export const dashboardItems: DashboardItems[] = [ - { - id: 'starred-parts', - text: t`Subscribed Parts`, - icon: 'fa-bell', - url: ApiEndpoints.part_list, - params: { starred: true } - }, - { - id: 'starred-categories', - text: t`Subscribed Categories`, - icon: 'fa-bell', - url: ApiEndpoints.category_list, - params: { starred: true } - }, - { - id: 'latest-parts', - text: t`Latest Parts`, - icon: 'fa-newspaper', - url: ApiEndpoints.part_list, - params: { ordering: '-creation_date', limit: 10 } - }, - { - id: 'bom-validation', - text: t`BOM Waiting Validation`, - icon: 'fa-times-circle', - url: ApiEndpoints.part_list, - params: { bom_valid: false } - }, - { - id: 'recently-updated-stock', - text: t`Recently Updated`, - icon: 'fa-clock', - url: ApiEndpoints.stock_item_list, - params: { part_detail: true, ordering: '-updated', limit: 10 } - }, - { - id: 'low-stock', - text: t`Low Stock`, - icon: 'fa-flag', - url: ApiEndpoints.part_list, - params: { low_stock: true } - }, - { - id: 'depleted-stock', - text: t`Depleted Stock`, - icon: 'fa-times', - url: ApiEndpoints.part_list, - params: { depleted_stock: true } - }, - { - id: 'stock-to-build', - text: t`Required for Build Orders`, - icon: 'fa-bullhorn', - url: ApiEndpoints.part_list, - params: { stock_to_build: true } - }, - { - id: 'expired-stock', - text: t`Expired Stock`, - icon: 'fa-calendar-times', - url: ApiEndpoints.stock_item_list, - params: { expired: true } - }, - { - id: 'stale-stock', - text: t`Stale Stock`, - icon: 'fa-stopwatch', - url: ApiEndpoints.stock_item_list, - params: { stale: true, expired: true } - }, - { - id: 'build-pending', - text: t`Build Orders In Progress`, - icon: 'fa-cogs', - url: ApiEndpoints.build_order_list, - params: { active: true } - }, - { - id: 'build-overdue', - text: t`Overdue Build Orders`, - icon: 'fa-calendar-times', - url: ApiEndpoints.build_order_list, - params: { overdue: true } - }, - { - id: 'po-outstanding', - text: t`Outstanding Purchase Orders`, - icon: 'fa-sign-in-alt', - url: ApiEndpoints.purchase_order_list, - params: { supplier_detail: true, outstanding: true } - }, - { - id: 'po-overdue', - text: t`Overdue Purchase Orders`, - icon: 'fa-calendar-times', - url: ApiEndpoints.purchase_order_list, - params: { supplier_detail: true, overdue: true } - }, - { - id: 'so-outstanding', - text: t`Outstanding Sales Orders`, - icon: 'fa-sign-out-alt', - url: ApiEndpoints.sales_order_list, - params: { customer_detail: true, outstanding: true } - }, - { - id: 'so-overdue', - text: t`Overdue Sales Orders`, - icon: 'fa-calendar-times', - url: ApiEndpoints.sales_order_list, - params: { customer_detail: true, overdue: true } - }, - { - id: 'news', - text: t`Current News`, - icon: 'fa-newspaper', - url: ApiEndpoints.news, - params: {} - } -]; diff --git a/src/frontend/src/defaults/links.tsx b/src/frontend/src/defaults/links.tsx index 1646bab73e..932c1d7f2d 100644 --- a/src/frontend/src/defaults/links.tsx +++ b/src/frontend/src/defaults/links.tsx @@ -1,34 +1,19 @@ -import { Trans } from '@lingui/macro'; +import { Trans, t } from '@lingui/macro'; import { openContextModal } from '@mantine/modals'; -import { DocumentationLinkItem } from '../components/items/DocumentationLinks'; +import { MenuLinkItem } from '../components/items/MenuLinks'; import { StylishText } from '../components/items/StylishText'; import { UserRoles } from '../enums/Roles'; -import { IS_DEV_OR_DEMO } from '../main'; -export const footerLinks = [ - { - link: 'https://inventree.org/', - label: Website, - key: 'website' - }, - { - link: 'https://github.com/invenhost/InvenTree', - label: GitHub, - key: 'github' - }, - { - link: 'https://demo.inventree.org/', - label: Demo, - key: 'demo' - } -]; export const navTabs = [ - { text: Home, name: 'home' }, - { text: Dashboard, name: 'dashboard' }, + { text: Dashboard, name: 'home' }, { text: Parts, name: 'part', role: UserRoles.part }, { text: Stock, name: 'stock', role: UserRoles.stock }, - { text: Build, name: 'build', role: UserRoles.build }, + { + text: Manufacturing, + name: 'manufacturing', + role: UserRoles.build + }, { text: Purchasing, name: 'purchasing', @@ -37,45 +22,54 @@ export const navTabs = [ { text: Sales, name: 'sales', role: UserRoles.sales_order } ]; -if (IS_DEV_OR_DEMO) { - navTabs.push({ text: Playground, name: 'playground' }); -} - export const docLinks = { app: 'https://docs.inventree.org/app/', - getting_started: 'https://docs.inventree.org/en/latest/getting_started/', + getting_started: 'https://docs.inventree.org/en/latest/start/intro/', api: 'https://docs.inventree.org/en/latest/api/api/', - developer: 'https://docs.inventree.org/en/latest/develop/starting/', - faq: 'https://docs.inventree.org/en/latest/faq/' + developer: 'https://docs.inventree.org/en/latest/develop/contributing/', + faq: 'https://docs.inventree.org/en/latest/faq/', + github: 'https://github.com/inventree/inventree' }; -export const navDocLinks: DocumentationLinkItem[] = [ - { - id: 'getting_started', - title: Getting Started, - description: Getting started with InvenTree, - link: docLinks.getting_started, - placeholder: true - }, - { - id: 'api', - title: API, - description: InvenTree API documentation, - link: docLinks.api - }, - { - id: 'developer', - title: Developer Manual, - description: InvenTree developer manual, - link: docLinks.developer - }, - { - id: 'faq', - title: FAQ, - description: Frequently asked questions, - link: docLinks.faq - } -]; +export function DocumentationLinks(): MenuLinkItem[] { + return [ + { + id: 'gettin-started', + title: t`Getting Started`, + link: docLinks.getting_started, + external: true, + description: t`Getting started with InvenTree` + }, + { + id: 'api', + title: t`API`, + link: docLinks.api, + external: true, + description: t`InvenTree API documentation` + }, + { + id: 'developer', + title: t`Developer Manual`, + link: docLinks.developer, + external: true, + description: t`InvenTree developer manual` + }, + { + id: 'faq', + title: t`FAQ`, + link: docLinks.faq, + external: true, + description: t`Frequently asked questions` + }, + { + id: 'github', + title: t`GitHub Repository`, + link: docLinks.github, + external: true, + description: t`InvenTree source code on GitHub` + } + ]; +} export function serverInfo() { return openContextModal({ @@ -116,23 +110,28 @@ export function licenseInfo() { }); } -export const aboutLinks: DocumentationLinkItem[] = [ - { - id: 'instance', - title: System Information, - description: About this Inventree instance, - action: serverInfo - }, - { - id: 'about', - title: About InvenTree, - description: About the InvenTree org, - action: aboutInvenTree - }, - { - id: 'licenses', - title: Licenses, - description: Licenses for dependencies of the service, - action: licenseInfo - } -]; +export function AboutLinks(): MenuLinkItem[] { + return [ + { + id: 'instance', + title: t`System Information`, + description: t`About this Inventree instance`, + icon: 'info', + action: serverInfo + }, + { + id: 'about', + title: t`About InvenTree`, + description: t`About the InvenTree Project`, + icon: 'info', + action: aboutInvenTree + }, + { + id: 'licenses', + title: t`License Information`, + description: t`Licenses for dependencies of the InvenTree software`, + icon: 'license', + action: licenseInfo + } + ]; +} diff --git a/src/frontend/src/defaults/menuItems.tsx b/src/frontend/src/defaults/menuItems.tsx deleted file mode 100644 index e713553217..0000000000 --- a/src/frontend/src/defaults/menuItems.tsx +++ /dev/null @@ -1,75 +0,0 @@ -import { Trans } from '@lingui/macro'; - -import { menuItemsCollection } from '../components/items/MenuLinks'; -import { IS_DEV_OR_DEMO } from '../main'; - -export const menuItems: menuItemsCollection = { - home: { - id: 'home', - text: Home, - link: '/', - highlight: true - }, - profile: { - id: 'profile', - text: Account settings, - link: '/settings/user', - doctext: User attributes and design settings. - }, - scan: { - id: 'scan', - text: Scanning, - link: '/scan', - doctext: View for interactive scanning and multiple actions., - highlight: true - }, - dashboard: { - id: 'dashboard', - text: Dashboard, - link: '/dashboard' - }, - parts: { - id: 'parts', - text: Parts, - link: '/part/' - }, - stock: { - id: 'stock', - text: Stock, - link: '/stock' - }, - build: { - id: 'build', - text: Build, - link: '/build/' - }, - purchasing: { - id: 'purchasing', - text: Purchasing, - link: '/purchasing/' - }, - sales: { - id: 'sales', - text: Sales, - link: '/sales/' - }, - 'settings-system': { - id: 'settings-system', - text: System Settings, - link: '/settings/system' - }, - 'settings-admin': { - id: 'settings-admin', - text: Admin Center, - link: '/settings/admin' - } -}; - -if (IS_DEV_OR_DEMO) { - menuItems['playground'] = { - id: 'playground', - text: Playground, - link: '/playground', - highlight: true - }; -} diff --git a/src/frontend/src/enums/ApiEndpoints.tsx b/src/frontend/src/enums/ApiEndpoints.tsx index 1908a59577..b9cba5e779 100644 --- a/src/frontend/src/enums/ApiEndpoints.tsx +++ b/src/frontend/src/enums/ApiEndpoints.tsx @@ -31,6 +31,7 @@ export enum ApiEndpoints { // Generic API endpoints currency_list = 'currency/exchange/', currency_refresh = 'currency/refresh/', + all_units = 'units/all/', task_overview = 'background-task/', task_pending_list = 'background-task/pending/', task_scheduled_list = 'background-task/scheduled/', @@ -38,10 +39,6 @@ export enum ApiEndpoints { api_search = 'search/', settings_global_list = 'settings/global/', settings_user_list = 'settings/user/', - barcode = 'barcode/', - barcode_link = 'barcode/link/', - barcode_unlink = 'barcode/unlink/', - generate_barcode = 'barcode/generate/', news = 'news/', global_status = 'generic/status/', custom_state_list = 'generic/status/custom/', @@ -53,6 +50,13 @@ export enum ApiEndpoints { content_type_list = 'contenttype/', icons = 'icons/', + // Barcode API endpoints + barcode = 'barcode/', + barcode_history = 'barcode/history/', + barcode_link = 'barcode/link/', + barcode_unlink = 'barcode/unlink/', + barcode_generate = 'barcode/generate/', + // Data import endpoints import_session_list = 'importer/session/', import_session_accept_fields = 'importer/session/:id/accept_fields/', @@ -74,6 +78,10 @@ export enum ApiEndpoints { build_output_create = 'build/:id/create-output/', build_output_scrap = 'build/:id/scrap-outputs/', build_output_delete = 'build/:id/delete-outputs/', + build_order_auto_allocate = 'build/:id/auto-allocate/', + build_order_allocate = 'build/:id/allocate/', + build_order_deallocate = 'build/:id/unallocate/', + build_line_list = 'build/line/', build_item_list = 'build/item/', @@ -86,11 +94,14 @@ export enum ApiEndpoints { part_parameter_list = 'part/parameter/', part_parameter_template_list = 'part/parameter/template/', part_thumbs_list = 'part/thumbs/', - part_pricing_get = 'part/:id/pricing/', + part_pricing = 'part/:id/pricing/', part_serial_numbers = 'part/:id/serial-numbers/', + part_scheduling = 'part/:id/scheduling/', part_pricing_internal = 'part/internal-price/', part_pricing_sale = 'part/sale-price/', part_stocktake_list = 'part/stocktake/', + part_stocktake_report_list = 'part/stocktake/report/', + part_stocktake_report_generate = 'part/stocktake/report/generate/', category_list = 'part/category/', category_tree = 'part/category/tree/', category_parameter_list = 'part/category/parameters/', @@ -106,12 +117,14 @@ export enum ApiEndpoints { manufacturer_part_list = 'company/part/manufacturer/', manufacturer_part_parameter_list = 'company/part/manufacturer/parameter/', - // Stock API endpoints - stock_item_list = 'stock/', - stock_tracking_list = 'stock/track/', + // Stock location endpoints stock_location_list = 'stock/location/', stock_location_type_list = 'stock/location-type/', stock_location_tree = 'stock/location/tree/', + + // Stock item API endpoints + stock_item_list = 'stock/', + stock_tracking_list = 'stock/track/', stock_test_result_list = 'stock/test/', stock_transfer = 'stock/transfer/', stock_remove = 'stock/remove/', @@ -121,9 +134,12 @@ export enum ApiEndpoints { stock_merge = 'stock/merge/', stock_assign = 'stock/assign/', stock_status = 'stock/status/', - stock_install = 'stock/:id/install', - build_test_statistics = 'test-statistics/by-build/:id', - part_test_statistics = 'test-statistics/by-part/:id', + stock_install = 'stock/:id/install/', + stock_uninstall = 'stock/:id/uninstall/', + stock_serialize = 'stock/:id/serialize/', + stock_return = 'stock/:id/return/', + build_test_statistics = 'test-statistics/by-build/:id/', + part_test_statistics = 'test-statistics/by-part/:id/', // Generator API endpoints generate_batch_code = 'generate/batch-code/', @@ -145,16 +161,22 @@ export enum ApiEndpoints { sales_order_cancel = 'order/so/:id/cancel/', sales_order_ship = 'order/so/:id/ship/', sales_order_complete = 'order/so/:id/complete/', + sales_order_allocate = 'order/so/:id/allocate/', + sales_order_allocate_serials = 'order/so/:id/allocate-serials/', + sales_order_line_list = 'order/so-line/', sales_order_extra_line_list = 'order/so-extra-line/', sales_order_allocation_list = 'order/so-allocation/', + sales_order_shipment_list = 'order/so/shipment/', + sales_order_shipment_complete = 'order/so/shipment/:id/ship/', return_order_list = 'order/ro/', return_order_issue = 'order/ro/:id/issue/', return_order_hold = 'order/ro/:id/hold/', return_order_cancel = 'order/ro/:id/cancel/', return_order_complete = 'order/ro/:id/complete/', + return_order_receive = 'order/ro/:id/receive/', return_order_line_list = 'order/ro-line/', return_order_extra_line_list = 'order/ro-extra-line/', @@ -176,6 +198,10 @@ export enum ApiEndpoints { plugin_reload = 'plugins/reload/', plugin_activate = 'plugins/:key/activate/', plugin_uninstall = 'plugins/:key/uninstall/', + plugin_admin = 'plugins/:key/admin/', + + // User interface plugin endpoints + plugin_ui_features_list = 'plugins/ui/features/:feature_type/', // Machine API endpoints machine_types_list = 'machine/types/', diff --git a/src/frontend/src/enums/ModelType.tsx b/src/frontend/src/enums/ModelType.tsx index 15d36d2d36..1c78bd3e33 100644 --- a/src/frontend/src/enums/ModelType.tsx +++ b/src/frontend/src/enums/ModelType.tsx @@ -32,5 +32,6 @@ export enum ModelType { reporttemplate = 'reporttemplate', labeltemplate = 'labeltemplate', pluginconfig = 'pluginconfig', - contenttype = 'contenttype' + contenttype = 'contenttype', + error = 'error' } diff --git a/src/frontend/src/forms/BuildForms.tsx b/src/frontend/src/forms/BuildForms.tsx index 1b6a730191..60a24d6290 100644 --- a/src/frontend/src/forms/BuildForms.tsx +++ b/src/frontend/src/forms/BuildForms.tsx @@ -1,5 +1,5 @@ import { t } from '@lingui/macro'; -import { Alert, Stack, Text } from '@mantine/core'; +import { Stack, Table } from '@mantine/core'; import { IconCalendar, IconLink, @@ -9,20 +9,28 @@ import { IconUser, IconUsersGroup } from '@tabler/icons-react'; -import { DataTable } from 'mantine-datatable'; -import { useCallback, useEffect, useMemo, useState } from 'react'; +import { useEffect, useMemo, useState } from 'react'; -import { api } from '../App'; -import { ActionButton } from '../components/buttons/ActionButton'; -import { ApiFormFieldSet } from '../components/forms/fields/ApiFormField'; +import RemoveRowButton from '../components/buttons/RemoveRowButton'; +import { StandaloneField } from '../components/forms/StandaloneField'; +import { + ApiFormFieldSet, + ApiFormFieldType +} from '../components/forms/fields/ApiFormField'; +import { + TableFieldErrorWrapper, + TableFieldRowProps +} from '../components/forms/fields/TableField'; +import { ProgressBar } from '../components/items/ProgressBar'; +import { StatusRenderer } from '../components/render/StatusRenderer'; import { ApiEndpoints } from '../enums/ApiEndpoints'; import { ModelType } from '../enums/ModelType'; -import { InvenTreeIcon } from '../functions/icons'; import { useCreateApiFormModal } from '../hooks/UseForm'; import { useBatchCodeGenerator } from '../hooks/UseGenerator'; +import { useSerialNumberPlaceholder } from '../hooks/UsePlaceholder'; import { apiUrl } from '../states/ApiState'; import { useGlobalSettingsState } from '../states/SettingsState'; -import { PartColumn, StatusColumn } from '../tables/ColumnRenderers'; +import { PartColumn } from '../tables/ColumnRenderers'; /** * Field set for BuildOrder forms @@ -152,32 +160,11 @@ export function useBuildOrderOutputFields({ setQuantity(Math.max(0, build_quantity - build_complete)); }, [build]); - const [serialPlaceholder, setSerialPlaceholder] = useState(''); - - useEffect(() => { - if (trackable) { - api - .get(apiUrl(ApiEndpoints.part_serial_numbers, build.part_detail.pk)) - .then((response: any) => { - if (response.data?.next) { - setSerialPlaceholder( - t`Next serial number` + ' - ' + response.data.next - ); - } else if (response.data?.latest) { - setSerialPlaceholder( - t`Latest serial number` + ' - ' + response.data.latest - ); - } else { - setSerialPlaceholder(''); - } - }) - .catch(() => { - setSerialPlaceholder(''); - }); - } else { - setSerialPlaceholder(''); - } - }, [build, trackable]); + const serialPlaceholder = useSerialNumberPlaceholder({ + partId: build.part_detail?.pk, + key: 'build-output', + enabled: build.part_detail?.trackable + }); return useMemo(() => { return { @@ -205,48 +192,41 @@ export function useBuildOrderOutputFields({ }, [quantity, serialPlaceholder, trackable]); } -/* - * Construct a table of build outputs, for displaying at the top of a form - */ -function buildOutputFormTable(outputs: any[], onRemove: (output: any) => void) { +function BuildOutputFormRow({ + props, + record +}: Readonly<{ + props: TableFieldRowProps; + record: any; +}>) { + const serial = useMemo(() => { + if (record.serial) { + return `# ${record.serial}`; + } else { + return t`Quantity` + `: ${record.quantity}`; + } + }, [record]); + return ( - PartColumn(record.part_detail) - }, - { - accessor: 'quantity', - title: t`Quantity`, - render: (record: any) => { - if (record.serial) { - return `# ${record.serial}`; - } else { - return record.quantity; - } - } - }, - StatusColumn({ model: ModelType.stockitem, sortable: false }), - { - accessor: 'actions', - title: '', - render: (record: any) => ( - } - color="red" - onClick={() => onRemove(record)} - disabled={outputs.length <= 1} - /> - ) - } - ]} - /> + <> + + + + + + + {serial} + + + {record.batch} + + {' '} + + + props.removeFn(props.idx)} /> + + + ); } @@ -259,14 +239,8 @@ export function useCompleteBuildOutputsForm({ outputs: any[]; onFormSuccess: (response: any) => void; }) { - const [selectedOutputs, setSelectedOutputs] = useState([]); - const [location, setLocation] = useState(null); - useEffect(() => { - setSelectedOutputs(outputs); - }, [outputs]); - useEffect(() => { if (location) { return; @@ -277,29 +251,22 @@ export function useCompleteBuildOutputsForm({ ); }, [location, build.destination, build.part_detail]); - // Remove a selected output from the list - const removeOutput = useCallback( - (output: any) => { - setSelectedOutputs( - selectedOutputs.filter((item) => item.pk != output.pk) - ); - }, - [selectedOutputs] - ); - - const preFormContent = useMemo(() => { - return buildOutputFormTable(selectedOutputs, removeOutput); - }, [selectedOutputs, removeOutput]); - const buildOutputCompleteFields: ApiFormFieldSet = useMemo(() => { return { outputs: { - hidden: true, - value: selectedOutputs.map((output) => { + field_type: 'table', + value: outputs.map((output: any) => { return { output: output.pk }; - }) + }), + modelRenderer: (row: TableFieldRowProps) => { + const record = outputs.find((output) => output.pk == row.item.output); + return ( + + ); + }, + headers: [t`Part`, t`Build Output`, t`Batch`, t`Status`] }, status_custom_key: {}, location: { @@ -307,14 +274,14 @@ export function useCompleteBuildOutputsForm({ structural: false }, value: location, - onValueChange: (value) => { + onValueChange: (value: any) => { setLocation(value); } }, notes: {}, accept_incomplete_allocation: {} }; - }, [selectedOutputs, location]); + }, [location, outputs]); return useCreateApiFormModal({ url: apiUrl(ApiEndpoints.build_output_complete, build.pk), @@ -322,11 +289,14 @@ export function useCompleteBuildOutputsForm({ title: t`Complete Build Outputs`, fields: buildOutputCompleteFields, onFormSuccess: onFormSuccess, - preFormContent: preFormContent, - successMessage: t`Build outputs have been completed` + successMessage: t`Build outputs have been completed`, + size: '80%' }); } +/* + * Dynamic form for scraping multiple build outputs + */ export function useScrapBuildOutputsForm({ build, outputs, @@ -337,21 +307,6 @@ export function useScrapBuildOutputsForm({ onFormSuccess: (response: any) => void; }) { const [location, setLocation] = useState(null); - const [selectedOutputs, setSelectedOutputs] = useState([]); - - useEffect(() => { - setSelectedOutputs(outputs); - }, [outputs]); - - // Remove a selected output from the list - const removeOutput = useCallback( - (output: any) => { - setSelectedOutputs( - selectedOutputs.filter((item) => item.pk != output.pk) - ); - }, - [selectedOutputs] - ); useEffect(() => { if (location) { @@ -363,20 +318,23 @@ export function useScrapBuildOutputsForm({ ); }, [location, build.destination, build.part_detail]); - const preFormContent = useMemo(() => { - return buildOutputFormTable(selectedOutputs, removeOutput); - }, [selectedOutputs, removeOutput]); - const buildOutputScrapFields: ApiFormFieldSet = useMemo(() => { return { outputs: { - hidden: true, - value: selectedOutputs.map((output) => { + field_type: 'table', + value: outputs.map((output: any) => { return { output: output.pk, quantity: output.quantity }; - }) + }), + modelRenderer: (row: TableFieldRowProps) => { + const record = outputs.find((output) => output.pk == row.item.output); + return ( + + ); + }, + headers: [t`Part`, t`Stock Item`, t`Batch`, t`Status`] }, location: { value: location, @@ -387,7 +345,7 @@ export function useScrapBuildOutputsForm({ notes: {}, discard_allocations: {} }; - }, [location, selectedOutputs]); + }, [location, outputs]); return useCreateApiFormModal({ url: apiUrl(ApiEndpoints.build_output_scrap, build.pk), @@ -395,8 +353,8 @@ export function useScrapBuildOutputsForm({ title: t`Scrap Build Outputs`, fields: buildOutputScrapFields, onFormSuccess: onFormSuccess, - preFormContent: preFormContent, - successMessage: t`Build outputs have been scrapped` + successMessage: t`Build outputs have been scrapped`, + size: '80%' }); } @@ -409,53 +367,217 @@ export function useCancelBuildOutputsForm({ outputs: any[]; onFormSuccess: (response: any) => void; }) { - const [selectedOutputs, setSelectedOutputs] = useState([]); - - useEffect(() => { - setSelectedOutputs(outputs); - }, [outputs]); - - // Remove a selected output from the list - const removeOutput = useCallback( - (output: any) => { - setSelectedOutputs( - selectedOutputs.filter((item) => item.pk != output.pk) - ); - }, - [selectedOutputs] - ); - - const preFormContent = useMemo(() => { - return ( - - - {t`Selected build outputs will be deleted`} - - {buildOutputFormTable(selectedOutputs, removeOutput)} - - ); - }, [selectedOutputs, removeOutput]); - const buildOutputCancelFields: ApiFormFieldSet = useMemo(() => { return { outputs: { - hidden: true, - value: selectedOutputs.map((output) => { + field_type: 'table', + value: outputs.map((output: any) => { return { output: output.pk }; - }) + }), + modelRenderer: (row: TableFieldRowProps) => { + const record = outputs.find((output) => output.pk == row.item.output); + return ( + + ); + }, + headers: [t`Part`, t`Stock Item`, t`Batch`, t`Status`] } }; - }, [selectedOutputs]); + }, [outputs]); return useCreateApiFormModal({ url: apiUrl(ApiEndpoints.build_output_delete, build.pk), method: 'POST', title: t`Cancel Build Outputs`, fields: buildOutputCancelFields, - preFormContent: preFormContent, onFormSuccess: onFormSuccess, - successMessage: t`Build outputs have been cancelled` + successMessage: t`Build outputs have been cancelled`, + size: '80%' + }); +} + +// Construct a single row in the 'allocate stock to build' table +function BuildAllocateLineRow({ + props, + record, + sourceLocation +}: Readonly<{ + props: TableFieldRowProps; + record: any; + sourceLocation: number | undefined; +}>) { + const stockField: ApiFormFieldType = useMemo(() => { + return { + field_type: 'related field', + api_url: apiUrl(ApiEndpoints.stock_item_list), + model: ModelType.stockitem, + filters: { + available: true, + part_detail: true, + location_detail: true, + bom_item: record.bom_item, + location: sourceLocation, + cascade: sourceLocation ? true : undefined + }, + value: props.item.stock_item, + name: 'stock_item', + onValueChange: (value: any, instance: any) => { + props.changeFn(props.idx, 'stock_item', value); + + // Update the allocated quantity based on the selected stock item + if (instance) { + let available = instance.quantity - instance.allocated; + + if (available < props.item.quantity) { + props.changeFn( + props.idx, + 'quantity', + Math.min(props.item.quantity, available) + ); + } + } + } + }; + }, [record, props]); + + const quantityField: ApiFormFieldType = useMemo(() => { + return { + field_type: 'number', + name: 'quantity', + required: true, + value: props.item.quantity, + onValueChange: (value: any) => { + props.changeFn(props.idx, 'quantity', value); + } + }; + }, [props]); + + return ( + + + + + + + + + + + + + + + props.removeFn(props.idx)} /> + + + ); +} + +/* + * Dynamic form for allocating stock against multiple build order line items + */ +export function useAllocateStockToBuildForm({ + buildId, + outputId, + build, + lineItems, + onFormSuccess +}: { + buildId: number; + outputId?: number | null; + build: any; + lineItems: any[]; + onFormSuccess: (response: any) => void; +}) { + const [sourceLocation, setSourceLocation] = useState( + undefined + ); + + const buildAllocateFields: ApiFormFieldSet = useMemo(() => { + const fields: ApiFormFieldSet = { + items: { + field_type: 'table', + value: [], + headers: [t`Part`, t`Allocated`, t`Stock Item`, t`Quantity`], + modelRenderer: (row: TableFieldRowProps) => { + // Find the matching record from the passed 'lineItems' + const record = + lineItems.find((item) => item.pk == row.item.build_line) ?? {}; + return ( + + ); + } + } + }; + + return fields; + }, [lineItems, sourceLocation]); + + useEffect(() => { + setSourceLocation(build.take_from); + }, [build.take_from]); + + const sourceLocationField: ApiFormFieldType = useMemo(() => { + return { + field_type: 'related field', + api_url: apiUrl(ApiEndpoints.stock_location_list), + model: ModelType.stocklocation, + required: false, + label: t`Source Location`, + description: t`Select the source location for the stock allocation`, + name: 'source_location', + value: build.take_from, + onValueChange: (value: any) => { + setSourceLocation(value); + } + }; + }, [build?.take_from]); + + const preFormContent = useMemo(() => { + return ( + + + + ); + }, [sourceLocationField]); + + return useCreateApiFormModal({ + url: ApiEndpoints.build_order_allocate, + pk: buildId, + title: t`Allocate Stock`, + fields: buildAllocateFields, + preFormContent: preFormContent, + successMessage: t`Stock items allocated`, + onFormSuccess: onFormSuccess, + initialData: { + items: lineItems.map((item) => { + return { + build_line: item.pk, + stock_item: undefined, + quantity: Math.max(0, item.requiredQuantity - item.allocatedQuantity), + output: outputId + }; + }) + }, + size: '80%' }); } diff --git a/src/frontend/src/forms/PartForms.tsx b/src/frontend/src/forms/PartForms.tsx index 0241f12078..54a30cf3f9 100644 --- a/src/frontend/src/forms/PartForms.tsx +++ b/src/frontend/src/forms/PartForms.tsx @@ -61,7 +61,14 @@ export function usePartFields({ salable: {}, virtual: {}, locked: {}, - active: {} + active: {}, + starred: { + field_type: 'boolean', + label: t`Subscribed`, + description: t`Subscribe to notifications for this part`, + disabled: false, + required: false + } }; // Additional fields for creation @@ -111,6 +118,10 @@ export function usePartFields({ delete fields['default_expiry']; } + if (create) { + delete fields['starred']; + } + return fields; }, [create, settings]); } @@ -118,25 +129,44 @@ export function usePartFields({ /** * Construct a set of fields for creating / editing a PartCategory instance */ -export function partCategoryFields(): ApiFormFieldSet { - let fields: ApiFormFieldSet = { - parent: { - description: t`Parent part category`, - required: false - }, - name: {}, - description: {}, - default_location: { - filters: { - structural: false +export function partCategoryFields({ + create +}: { + create?: boolean; +}): ApiFormFieldSet { + let fields: ApiFormFieldSet = useMemo(() => { + let fields: ApiFormFieldSet = { + parent: { + description: t`Parent part category`, + required: false + }, + name: {}, + description: {}, + default_location: { + filters: { + structural: false + } + }, + default_keywords: {}, + structural: {}, + starred: { + field_type: 'boolean', + label: t`Subscribed`, + description: t`Subscribe to notifications for this category`, + disabled: false, + required: false + }, + icon: { + field_type: 'icon' } - }, - default_keywords: {}, - structural: {}, - icon: { - field_type: 'icon' + }; + + if (create) { + delete fields['starred']; } - }; + + return fields; + }, [create]); return fields; } @@ -202,3 +232,29 @@ export function usePartParameterFields({ }; }, [editTemplate, fieldType, choices]); } + +export function partStocktakeFields(): ApiFormFieldSet { + return { + part: { + hidden: true + }, + quantity: {}, + item_count: {}, + cost_min: {}, + cost_min_currency: {}, + cost_max: {}, + cost_max_currency: {}, + note: {} + }; +} + +export function generateStocktakeReportFields(): ApiFormFieldSet { + return { + part: {}, + category: {}, + location: {}, + exclude_external: {}, + generate_report: {}, + update_parts: {} + }; +} diff --git a/src/frontend/src/forms/PurchaseOrderForms.tsx b/src/frontend/src/forms/PurchaseOrderForms.tsx index 28feda1a41..add7d92414 100644 --- a/src/frontend/src/forms/PurchaseOrderForms.tsx +++ b/src/frontend/src/forms/PurchaseOrderForms.tsx @@ -5,7 +5,6 @@ import { FocusTrap, Group, Modal, - NumberInput, Table, TextInput } from '@mantine/core'; @@ -28,12 +27,16 @@ import { useEffect, useMemo, useState } from 'react'; import { api } from '../App'; import { ActionButton } from '../components/buttons/ActionButton'; +import RemoveRowButton from '../components/buttons/RemoveRowButton'; import { StandaloneField } from '../components/forms/StandaloneField'; import { ApiFormAdjustFilterType, ApiFormFieldSet } from '../components/forms/fields/ApiFormField'; -import { TableFieldExtraRow } from '../components/forms/fields/TableField'; +import { + TableFieldExtraRow, + TableFieldRowProps +} from '../components/forms/fields/TableField'; import { Thumbnail } from '../components/images/Thumbnail'; import { ProgressBar } from '../components/items/ProgressBar'; import { StylishText } from '../components/items/StylishText'; @@ -135,14 +138,19 @@ export function usePurchaseOrderLineItemFields({ /** * Construct a set of fields for creating / editing a PurchaseOrder instance */ -export function usePurchaseOrderFields(): ApiFormFieldSet { +export function usePurchaseOrderFields({ + duplicateOrderId +}: { + duplicateOrderId?: number; +}): ApiFormFieldSet { return useMemo(() => { - return { + let fields: ApiFormFieldSet = { reference: { icon: }, description: {}, supplier: { + disabled: duplicateOrderId !== undefined, filters: { is_supplier: true, active: true @@ -158,6 +166,11 @@ export function usePurchaseOrderFields(): ApiFormFieldSet { target_date: { icon: }, + destination: { + filters: { + structural: false + } + }, link: {}, contact: { icon: , @@ -184,74 +197,89 @@ export function usePurchaseOrderFields(): ApiFormFieldSet { icon: } }; - }, []); + + // Order duplication fields + if (!!duplicateOrderId) { + fields.duplicate = { + children: { + order_id: { + hidden: true, + value: duplicateOrderId + }, + copy_lines: {}, + copy_extra_lines: {} + } + }; + } + + return fields; + }, [duplicateOrderId]); } /** * Render a table row for a single TableField entry */ function LineItemFormRow({ - input, + props, record, statuses -}: { - input: any; +}: Readonly<{ + props: TableFieldRowProps; record: any; statuses: any; -}) { +}>) { // Barcode Modal state - const [opened, { open, close }] = useDisclosure(false); + const [opened, { open, close }] = useDisclosure(false, { + onClose: () => props.changeFn(props.idx, 'barcode', undefined) + }); - // Location value - const [location, setLocation] = useState( - input.item.location ?? - record.part_detail.default_location ?? - record.part_detail.category_default_location - ); - const [locationOpen, locationHandlers] = useDisclosure( - location ? true : false, - { - onClose: () => input.changeFn(input.idx, 'location', null), - onOpen: () => input.changeFn(input.idx, 'location', location) - } + const [locationOpen, locationHandlers] = useDisclosure(false, { + onClose: () => props.changeFn(props.idx, 'location', undefined) + }); + + // Is this a trackable part? + const trackable: boolean = useMemo( + () => record.part_detail?.trackable ?? false, + [record] ); - // Change form value when state is altered useEffect(() => { - input.changeFn(input.idx, 'location', location); - }, [location]); + if (!!record.destination) { + props.changeFn(props.idx, 'location', record.destination); + locationHandlers.open(); + } + }, [record.destination]); + // Batch code generator const batchCodeGenerator = useBatchCodeGenerator((value: any) => { - if (!batchCode) { - setBatchCode(value); + if (value) { + props.changeFn(props.idx, 'batch_code', value); } }); + // Serial number generator const serialNumberGenerator = useSerialNumberGenerator((value: any) => { - if (!serials) { - setSerials(value); + if (value) { + props.changeFn(props.idx, 'serial_numbers', value); } }); const [packagingOpen, packagingHandlers] = useDisclosure(false, { onClose: () => { - input.changeFn(input.idx, 'packaging', undefined); + props.changeFn(props.idx, 'packaging', undefined); } }); const [noteOpen, noteHandlers] = useDisclosure(false, { onClose: () => { - input.changeFn(input.idx, 'note', undefined); + props.changeFn(props.idx, 'note', undefined); } }); - // State for serializing - const [batchCode, setBatchCode] = useState(''); - const [serials, setSerials] = useState(''); const [batchOpen, batchHandlers] = useDisclosure(false, { onClose: () => { - input.changeFn(input.idx, 'batch_code', undefined); - input.changeFn(input.idx, 'serial_numbers', ''); + props.changeFn(props.idx, 'batch_code', undefined); + props.changeFn(props.idx, 'serial_numbers', undefined); }, onOpen: () => { // Generate a new batch code @@ -262,25 +290,33 @@ function LineItemFormRow({ // Generate new serial numbers serialNumberGenerator.update({ part: record?.supplier_part_detail?.part, - quantity: input.item.quantity + quantity: props.item.quantity }); } }); // Status value const [statusOpen, statusHandlers] = useDisclosure(false, { - onClose: () => input.changeFn(input.idx, 'status', 10) + onClose: () => props.changeFn(props.idx, 'status', undefined) }); // Barcode value const [barcodeInput, setBarcodeInput] = useState(''); - const [barcode, setBarcode] = useState(null); + const [barcode, setBarcode] = useState(undefined); // Change form value when state is altered useEffect(() => { - input.changeFn(input.idx, 'barcode', barcode); + props.changeFn(props.idx, 'barcode', barcode); }, [barcode]); + const batchToolTip: string = useMemo(() => { + if (trackable) { + return t`Assign Batch Code and Serial Numbers`; + } else { + return t`Assign Batch Code`; + } + }, [trackable]); + // Update location field description on state change useEffect(() => { if (!opened) { @@ -370,13 +406,16 @@ function LineItemFormRow({ progressLabel /> - - input.changeFn(input.idx, 'quantity', value)} + + + props.changeFn(props.idx, 'quantity', value) + }} + error={props.rowErrors?.quantity?.message} /> @@ -393,9 +432,7 @@ function LineItemFormRow({ size="sm" onClick={() => batchHandlers.toggle()} icon={} - tooltip={t`Assign Batch Code${ - record.trackable && ' and Serial Numbers' - }`} + tooltip={batchToolTip} tooltipAlignment="top" variant={batchOpen ? 'filled' : 'transparent'} /> @@ -403,6 +440,7 @@ function LineItemFormRow({ size="sm" icon={} tooltip={t`Adjust Packaging`} + tooltipAlignment="top" onClick={() => packagingHandlers.toggle()} variant={packagingOpen ? 'filled' : 'transparent'} /> @@ -427,7 +465,7 @@ function LineItemFormRow({ tooltipAlignment="top" variant="filled" color="red" - onClick={() => setBarcode(null)} + onClick={() => setBarcode(undefined)} /> ) : ( open()} /> )} - input.removeFn(input.idx)} - icon={} - tooltip={t`Remove item from list`} - tooltipAlignment="top" - color="red" - /> + props.removeFn(props.idx)} /> @@ -464,10 +496,10 @@ function LineItemFormRow({ structural: false }, onValueChange: (value) => { - setLocation(value); + props.changeFn(props.idx, 'location', value); }, description: locationDescription, - value: location, + value: props.item.location, label: t`Location`, icon: }} @@ -485,7 +517,9 @@ function LineItemFormRow({ icon={} tooltip={t`Store at default location`} onClick={() => - setLocation( + props.changeFn( + props.idx, + 'location', record.part_detail.default_location ?? record.part_detail.category_default_location ) @@ -497,7 +531,9 @@ function LineItemFormRow({ } tooltip={t`Store at line item destination `} - onClick={() => setLocation(record.destination)} + onClick={() => + props.changeFn(props.idx, 'location', record.destination) + } tooltipAlignment="top" /> )} @@ -507,7 +543,13 @@ function LineItemFormRow({ } tooltip={t`Store with already received stock`} - onClick={() => setLocation(record.destination_detail.pk)} + onClick={() => + props.changeFn( + props.idx, + 'location', + record.destination_detail.pk + ) + } tooltipAlignment="top" /> )} @@ -518,51 +560,58 @@ function LineItemFormRow({ )} input.changeFn(input.idx, 'batch', value)} + onValueChange={(value) => props.changeFn(props.idx, 'batch', value)} fieldDefinition={{ field_type: 'string', label: t`Batch Code`, - value: batchCode + description: t`Enter batch code for received items`, + value: props.item.batch_code }} + error={props.rowErrors?.batch_code?.message} /> - input.changeFn(input.idx, 'serial_numbers', value) + props.changeFn(props.idx, 'serial_numbers', value) } fieldDefinition={{ field_type: 'string', - label: t`Serial numbers`, - value: serials + label: t`Serial Numbers`, + description: t`Enter serial numbers for received items`, + value: props.item.serial_numbers }} + error={props.rowErrors?.serial_numbers?.message} /> input.changeFn(input.idx, 'packaging', value)} + onValueChange={(value) => props.changeFn(props.idx, 'packaging', value)} fieldDefinition={{ field_type: 'string', label: t`Packaging` }} defaultValue={record?.supplier_part_detail?.packaging} + error={props.rowErrors?.packaging?.message} /> input.changeFn(input.idx, 'status', value)} + onValueChange={(value) => props.changeFn(props.idx, 'status', value)} fieldDefinition={{ field_type: 'choice', api_url: apiUrl(ApiEndpoints.stock_status), choices: statuses, label: t`Status` }} + error={props.rowErrors?.status?.message} /> input.changeFn(input.idx, 'note', value)} + onValueChange={(value) => props.changeFn(props.idx, 'note', value)} fieldDefinition={{ field_type: 'string', label: t`Note` }} + error={props.rowErrors?.note?.message} /> ); @@ -576,6 +625,7 @@ type LineFormHandlers = { type LineItemsForm = { items: any[]; orderPk: number; + destinationPk?: number; formProps?: LineFormHandlers; }; @@ -624,12 +674,12 @@ export function useReceiveLineItems(props: LineItemsForm) { barcode: null }; }), - modelRenderer: (instance) => { - const record = records[instance.item.line_item]; + modelRenderer: (row: TableFieldRowProps) => { + const record = records[row.item.line_item]; return ( { + let fields: ApiFormFieldSet = { + reference: {}, + description: {}, + customer: { + disabled: duplicateOrderId != undefined, + filters: { + is_customer: true, + active: true + } + }, + customer_reference: {}, + project_code: {}, + order_currency: {}, + target_date: {}, + link: {}, + contact: { + icon: , + adjustFilters: (value: ApiFormAdjustFilterType) => { + return { + ...value.filters, + company: value.data.customer + }; + } + }, + address: { + icon: , + adjustFilters: (value: ApiFormAdjustFilterType) => { + return { + ...value.filters, + company: value.data.customer + }; + } + }, + responsible: { + filters: { + is_active: true + }, + icon: + } + }; + + // Order duplication fields + if (!!duplicateOrderId) { + fields.duplicate = { + children: { + order_id: { + hidden: true, + value: duplicateOrderId + }, + copy_lines: { + // Cannot duplicate lines from a return order! + value: false, + hidden: true + }, + copy_extra_lines: {} + } + }; + } + + return fields; + }, [duplicateOrderId]); +} + export function useReturnOrderLineItemFields({ orderId, customerId, @@ -43,3 +125,86 @@ export function useReturnOrderLineItemFields({ }; }, [create, orderId, customerId]); } + +type ReturnOrderLineItemsProps = { + items: any[]; + orderId: number; + onFormSuccess: (data: any) => void; +}; + +function ReturnOrderLineItemFormRow({ + props, + record +}: Readonly<{ + props: TableFieldRowProps; + record: any; +}>) { + return ( + <> + + + + +
{record.part_detail.name}
+
+
+ {record.item_detail.serial} + + props.removeFn(props.idx)} /> + +
+ + ); +} + +export function useReceiveReturnOrderLineItems( + props: ReturnOrderLineItemsProps +) { + const fields: ApiFormFieldSet = { + id: { + value: props.orderId, + hidden: true + }, + items: { + field_type: 'table', + value: props.items.map((item: any) => { + return { + item: item.pk + }; + }), + modelRenderer: (row: TableFieldRowProps) => { + const record = props.items.find((item) => item.pk == row?.item?.item); + + return ( + + ); + }, + headers: [t`Part`, t`Serial Number`] + }, + location: { + filters: { + structural: false + } + } + }; + + return useCreateApiFormModal({ + url: apiUrl(ApiEndpoints.return_order_receive, props.orderId), + title: t`Receive Items`, + fields: fields, + initialData: { + location: null + }, + size: '80%', + onFormSuccess: props.onFormSuccess, + successMessage: t`Item received into stock` + }); +} diff --git a/src/frontend/src/forms/SalesOrderForms.tsx b/src/frontend/src/forms/SalesOrderForms.tsx index 02f5a976d5..bce7bf6005 100644 --- a/src/frontend/src/forms/SalesOrderForms.tsx +++ b/src/frontend/src/forms/SalesOrderForms.tsx @@ -1,17 +1,34 @@ +import { t } from '@lingui/macro'; +import { Table } from '@mantine/core'; import { IconAddressBook, IconUser, IconUsers } from '@tabler/icons-react'; -import { useMemo } from 'react'; +import { useEffect, useMemo, useState } from 'react'; +import RemoveRowButton from '../components/buttons/RemoveRowButton'; +import { StandaloneField } from '../components/forms/StandaloneField'; import { ApiFormAdjustFilterType, - ApiFormFieldSet + ApiFormFieldSet, + ApiFormFieldType } from '../components/forms/fields/ApiFormField'; +import { TableFieldRowProps } from '../components/forms/fields/TableField'; +import { ProgressBar } from '../components/items/ProgressBar'; +import { ApiEndpoints } from '../enums/ApiEndpoints'; +import { ModelType } from '../enums/ModelType'; +import { useCreateApiFormModal } from '../hooks/UseForm'; +import { apiUrl } from '../states/ApiState'; +import { PartColumn } from '../tables/ColumnRenderers'; -export function useSalesOrderFields(): ApiFormFieldSet { +export function useSalesOrderFields({ + duplicateOrderId +}: { + duplicateOrderId?: number; +}): ApiFormFieldSet { return useMemo(() => { - return { + let fields: ApiFormFieldSet = { reference: {}, description: {}, customer: { + disabled: duplicateOrderId != undefined, filters: { is_customer: true, active: true @@ -44,7 +61,23 @@ export function useSalesOrderFields(): ApiFormFieldSet { icon: } }; - }, []); + + // Order duplication fields + if (!!duplicateOrderId) { + fields.duplicate = { + children: { + order_id: { + hidden: true, + value: duplicateOrderId + }, + copy_lines: {}, + copy_extra_lines: {} + } + }; + } + + return fields; + }, [duplicateOrderId]); } export function useSalesOrderLineItemFields({ @@ -84,63 +117,252 @@ export function useSalesOrderLineItemFields({ return fields; } -export function useSalesOrderShipmentFields(): ApiFormFieldSet { +function SalesOrderAllocateLineRow({ + props, + record, + sourceLocation +}: { + props: TableFieldRowProps; + record: any; + sourceLocation?: number | null; +}) { + // Statically defined field for selecting the stock item + const stockItemField: ApiFormFieldType = useMemo(() => { + return { + field_type: 'related field', + api_url: apiUrl(ApiEndpoints.stock_item_list), + model: ModelType.stockitem, + filters: { + available: true, + part_detail: true, + location_detail: true, + location: sourceLocation, + cascade: sourceLocation ? true : undefined, + part: record.part + }, + value: props.item.stock_item, + name: 'stock_item', + onValueChange: (value: any, instance: any) => { + props.changeFn(props.idx, 'stock_item', value); + + // Update the allocated quantity based on the selected stock item + if (instance) { + let available = instance.quantity - instance.allocated; + let required = record.quantity - record.allocated; + + let quantity = props.item?.quantity ?? 0; + + quantity = Math.max(quantity, required); + quantity = Math.min(quantity, available); + + if (quantity != props.item.quantity) { + props.changeFn(props.idx, 'quantity', quantity); + } + } + } + }; + }, [sourceLocation, record, props]); + + // Statically defined field for selecting the allocation quantity + const quantityField: ApiFormFieldType = useMemo(() => { + return { + field_type: 'number', + name: 'quantity', + required: true, + value: props.item.quantity, + onValueChange: (value: any) => { + props.changeFn(props.idx, 'quantity', value); + } + }; + }, [props]); + + return ( + + + + + + + + + + + + + + + props.removeFn(props.idx)} /> + + + ); +} + +export function useAllocateToSalesOrderForm({ + orderId, + shipmentId, + lineItems, + onFormSuccess +}: { + orderId: number; + shipmentId?: number; + lineItems: any[]; + onFormSuccess: (response: any) => void; +}) { + const [sourceLocation, setSourceLocation] = useState(null); + + // Reset source location to known state + useEffect(() => { + setSourceLocation(null); + }, [orderId, shipmentId, lineItems]); + + const fields: ApiFormFieldSet = useMemo(() => { + return { + // Non-submitted field to select the source location + source_location: { + exclude: true, + required: false, + field_type: 'related field', + api_url: apiUrl(ApiEndpoints.stock_location_list), + model: ModelType.stocklocation, + label: t`Source Location`, + description: t`Select the source location for the stock allocation`, + onValueChange: (value: any) => { + setSourceLocation(value); + } + }, + items: { + field_type: 'table', + value: [], + headers: [t`Part`, t`Allocated`, t`Stock Item`, t`Quantity`], + modelRenderer: (row: TableFieldRowProps) => { + const record = + lineItems.find((item) => item.pk == row.item.line_item) ?? {}; + + return ( + + ); + } + }, + shipment: { + filters: { + shipped: false, + order_detail: true, + order: orderId + } + } + }; + }, [orderId, shipmentId, lineItems, sourceLocation]); + + return useCreateApiFormModal({ + title: t`Allocate Stock`, + url: ApiEndpoints.sales_order_allocate, + pk: orderId, + fields: fields, + onFormSuccess: onFormSuccess, + successMessage: t`Stock items allocated`, + size: '80%', + initialData: { + items: lineItems.map((item) => { + return { + line_item: item.pk, + quantity: 0, + stock_item: null + }; + }) + } + }); +} + +export function useSalesOrderAllocateSerialsFields({ + itemId, + orderId +}: { + itemId: number; + orderId: number; +}): ApiFormFieldSet { + return useMemo(() => { + return { + line_item: { + value: itemId, + hidden: true + }, + quantity: {}, + serial_numbers: {}, + shipment: { + filters: { + order_detail: true, + order: orderId, + shipped: false + } + } + }; + }, [itemId, orderId]); +} + +export function useSalesOrderShipmentFields({ + pending +}: { + pending?: boolean; +}): ApiFormFieldSet { return useMemo(() => { return { order: { disabled: true }, reference: {}, - shipment_date: {}, - delivery_date: {}, + shipment_date: { + hidden: pending ?? true + }, + delivery_date: { + hidden: pending ?? true + }, tracking_number: {}, invoice_number: {}, - link: {}, - notes: {} + link: {} }; - }, []); + }, [pending]); } -export function useReturnOrderFields(): ApiFormFieldSet { +export function useSalesOrderShipmentCompleteFields({ + shipmentId +}: { + shipmentId?: number; +}): ApiFormFieldSet { return useMemo(() => { return { - reference: {}, - description: {}, - customer: { - filters: { - is_customer: true, - active: true - } - }, - customer_reference: {}, - project_code: {}, - order_currency: {}, - target_date: {}, - link: {}, - contact: { - icon: , - adjustFilters: (value: ApiFormAdjustFilterType) => { - return { - ...value.filters, - company: value.data.customer - }; - } - }, - address: { - icon: , - adjustFilters: (value: ApiFormAdjustFilterType) => { - return { - ...value.filters, - company: value.data.customer - }; - } - }, - responsible: { - filters: { - is_active: true - }, - icon: - } + shipment_date: {}, + tracking_number: {}, + invoice_number: {}, + link: {} }; - }, []); + }, [shipmentId]); +} + +export function useSalesOrderAllocationFields({ + shipmentId +}: { + shipmentId?: number; +}): ApiFormFieldSet { + return useMemo(() => { + return { + quantity: {} + }; + }, [shipmentId]); } diff --git a/src/frontend/src/forms/StockForms.tsx b/src/frontend/src/forms/StockForms.tsx index 3ed19c8938..3bb9cf91cb 100644 --- a/src/frontend/src/forms/StockForms.tsx +++ b/src/frontend/src/forms/StockForms.tsx @@ -1,17 +1,30 @@ import { t } from '@lingui/macro'; -import { Flex, Group, NumberInput, Skeleton, Table, Text } from '@mantine/core'; +import { Flex, Group, Skeleton, Table, Text } from '@mantine/core'; import { useDisclosure } from '@mantine/hooks'; import { modals } from '@mantine/modals'; +import { + IconCalendarExclamation, + IconCoins, + IconCurrencyDollar, + IconLink, + IconPackage, + IconUsersGroup +} from '@tabler/icons-react'; import { useQuery, useSuspenseQuery } from '@tanstack/react-query'; -import { Suspense, useCallback, useMemo, useState } from 'react'; +import { Suspense, useEffect, useMemo, useState } from 'react'; import { api } from '../App'; import { ActionButton } from '../components/buttons/ActionButton'; +import RemoveRowButton from '../components/buttons/RemoveRowButton'; +import { StandaloneField } from '../components/forms/StandaloneField'; import { ApiFormAdjustFilterType, ApiFormFieldSet } from '../components/forms/fields/ApiFormField'; -import { TableFieldExtraRow } from '../components/forms/fields/TableField'; +import { + TableFieldExtraRow, + TableFieldRowProps +} from '../components/forms/fields/TableField'; import { Thumbnail } from '../components/images/Thumbnail'; import { StylishText } from '../components/items/StylishText'; import { StatusRenderer } from '../components/render/StatusRenderer'; @@ -27,6 +40,8 @@ import { useBatchCodeGenerator, useSerialNumberGenerator } from '../hooks/UseGenerator'; +import { useInstance } from '../hooks/UseInstance'; +import { useSerialNumberPlaceholder } from '../hooks/UsePlaceholder'; import { apiUrl } from '../states/ApiState'; import { useGlobalSettingsState } from '../states/SettingsState'; @@ -34,54 +49,66 @@ import { useGlobalSettingsState } from '../states/SettingsState'; * Construct a set of fields for creating / editing a StockItem instance */ export function useStockFields({ + partId, + stockItem, create = false }: { + partId?: number; + stockItem?: any; create: boolean; }): ApiFormFieldSet { - const [part, setPart] = useState(null); + const globalSettings = useGlobalSettingsState(); + + // Keep track of the "part" instance + const [partInstance, setPartInstance] = useState({}); + const [supplierPart, setSupplierPart] = useState(null); - const [batchCode, setBatchCode] = useState(''); - const [serialNumbers, setSerialNumbers] = useState(''); - - const [trackable, setTrackable] = useState(false); + const [nextBatchCode, setNextBatchCode] = useState(''); + const [nextSerialNumber, setNextSerialNumber] = useState(''); const batchGenerator = useBatchCodeGenerator((value: any) => { - if (!batchCode) { - setBatchCode(value); + if (value) { + setNextBatchCode(`Next batch code` + `: ${value}`); + } else { + setNextBatchCode(''); } }); const serialGenerator = useSerialNumberGenerator((value: any) => { - if (!serialNumbers && create && trackable) { - setSerialNumbers(value); + if (value) { + setNextSerialNumber(t`Next serial number` + `: ${value}`); + } else { + setNextSerialNumber(''); } }); + useEffect(() => { + if (partInstance?.pk) { + // Update the generators whenever the part ID changes + batchGenerator.update({ part: partInstance.pk }); + serialGenerator.update({ part: partInstance.pk }); + } + }, [partInstance.pk]); + return useMemo(() => { const fields: ApiFormFieldSet = { part: { - value: part, + value: partInstance.pk, disabled: !create, + filters: { + active: create ? true : undefined + }, onValueChange: (value, record) => { - setPart(value); - // TODO: implement remaining functionality from old stock.py - - setTrackable(record.trackable ?? false); - - batchGenerator.update({ part: value }); - serialGenerator.update({ part: value }); - - if (!record.trackable) { - setSerialNumbers(''); - } + // Update the tracked part instance + setPartInstance(record); // Clear the 'supplier_part' field if the part is changed setSupplierPart(null); } }, supplier_part: { - // TODO: icon + hidden: partInstance?.purchaseable == false, value: supplierPart, onValueChange: (value) => { setSupplierPart(value); @@ -89,7 +116,7 @@ export function useStockFields({ filters: { part_detail: true, supplier_detail: true, - ...(part ? { part } : {}) + part: partId }, adjustFilters: (adjust: ApiFormAdjustFilterType) => { if (adjust.data.part) { @@ -104,6 +131,7 @@ export function useStockFields({ description: t`Add given quantity as packs instead of individual items` }, location: { + // Cannot adjust location for existing stock items hidden: !create, onValueChange: (value) => { batchGenerator.update({ location: value }); @@ -122,40 +150,42 @@ export function useStockFields({ serial_numbers: { field_type: 'string', label: t`Serial Numbers`, + disabled: partInstance?.trackable == false, description: t`Enter serial numbers for new stock (or leave blank)`, required: false, - disabled: !trackable, hidden: !create, - value: serialNumbers, - onValueChange: (value) => setSerialNumbers(value) + placeholder: nextSerialNumber }, serial: { - hidden: create - // TODO: icon + hidden: + create || + partInstance.trackable == false || + (!stockItem?.quantity != undefined && stockItem?.quantity != 1) }, batch: { - // TODO: icon - value: batchCode, - onValueChange: (value) => setBatchCode(value) + placeholder: nextBatchCode + }, + status_custom_key: { + label: t`Stock Status` }, - status: {}, expiry_date: { - // TODO: icon + icon: , + hidden: !globalSettings.isSet('STOCK_ENABLE_EXPIRY') }, purchase_price: { - // TODO: icon + icon: }, purchase_price_currency: { - // TODO: icon + icon: }, packaging: { - // TODO: icon, + icon: }, link: { - // TODO: icon + icon: }, owner: { - // TODO: icon + icon: }, delete_on_deplete: {} }; @@ -164,7 +194,16 @@ export function useStockFields({ // TODO: refer to stock.py in original codebase return fields; - }, [part, supplierPart, batchCode, serialNumbers, trackable, create]); + }, [ + stockItem, + partInstance, + partId, + globalSettings, + supplierPart, + nextSerialNumber, + nextBatchCode, + create + ]); } /** @@ -180,13 +219,109 @@ export function useCreateStockItem() { }); } +/** + * Form set for manually removing (uninstalling) a StockItem from an existing StockItem + */ +export function useStockItemUninstallFields(): ApiFormFieldSet { + return useMemo(() => { + return { + location: { + filters: { + structural: false + } + }, + note: {} + }; + }, []); +} + +/** + * Form set for manually installing a StockItem into an existing StockItem + */ +export function useStockItemInstallFields({ + stockItem +}: { + stockItem: any; +}): ApiFormFieldSet { + const globalSettings = useGlobalSettingsState(); + + const [selectedPart, setSelectedPart] = useState(null); + + useEffect(() => { + setSelectedPart(null); + }, [stockItem]); + + return useMemo(() => { + // Note: The 'part' field is not a part of the API endpoint, so we construct it manually + return { + part: { + field_type: 'related field', + required: true, + exclude: true, + label: t`Part`, + description: t`Select the part to install`, + model: ModelType.part, + api_url: apiUrl(ApiEndpoints.part_list), + onValueChange: (value) => { + setSelectedPart(value); + }, + filters: { + trackable: true, + in_bom_for: globalSettings.isSet('STOCK_ENFORCE_BOM_INSTALLATION') + ? stockItem.part + : undefined + } + }, + stock_item: { + disabled: !selectedPart, + filters: { + part_detail: true, + in_stock: true, + available: true, + tracked: true, + part: selectedPart ? selectedPart : undefined + } + }, + quantity: {}, + note: {} + }; + }, [globalSettings, selectedPart, stockItem]); +} + +/** + * Form set for serializing an existing StockItem + */ +export function useStockItemSerializeFields({ + partId, + trackable +}: { + partId: number; + trackable: boolean; +}) { + const snPlaceholder = useSerialNumberPlaceholder({ + partId: partId, + key: 'stock-item-serialize', + enabled: trackable + }); + + return useMemo(() => { + return { + quantity: {}, + serial_numbers: { + placeholder: snPlaceholder + }, + destination: {} + }; + }, [snPlaceholder]); +} + function StockItemDefaultMove({ stockItem, value -}: { +}: Readonly<{ stockItem: any; value: any; -}) { +}>) { const { data } = useSuspenseQuery({ queryKey: [ 'location', @@ -294,54 +429,37 @@ type StockRow = { }; function StockOperationsRow({ - input, + props, transfer = false, add = false, setMax = false, merge = false, record }: { - input: StockRow; + props: TableFieldRowProps; transfer?: boolean; add?: boolean; setMax?: boolean; merge?: boolean; record?: any; }) { - const item = input.item; - - const [value, setValue] = useState( - add ? 0 : item.quantity ?? 0 - ); - - const onChange = useCallback( - (value: any) => { - setValue(value); - input.changeFn(input.idx, 'quantity', value); - }, - [item] - ); - - const changeSubItem = useCallback( - (key: string, value: any) => { - input.changeFn(input.idx, key, value); - }, - [input] + const [quantity, setQuantity] = useState( + add ? 0 : props.item?.quantity ?? 0 ); const removeAndRefresh = () => { - input.removeFn(input.idx); + props.removeFn(props.idx); }; const [packagingOpen, packagingHandlers] = useDisclosure(false, { onOpen: () => { if (transfer) { - input.changeFn(input.idx, 'packaging', record?.packaging || undefined); + props.changeFn(props.idx, 'packaging', record?.packaging || undefined); } }, onClose: () => { if (transfer) { - input.changeFn(input.idx, 'packaging', undefined); + props.changeFn(props.idx, 'packaging', undefined); } } }); @@ -377,25 +495,24 @@ function StockOperationsRow({ {record.location ? record.location_detail?.pathstring : '-'}
- - - {stockString} - - - + + {stockString} + + {!merge && ( - { + setQuantity(value); + props.changeFn(props.idx, 'quantity', value); + } + }} + error={props.rowErrors?.quantity?.message} /> )} @@ -403,7 +520,9 @@ function StockOperationsRow({ {transfer && ( moveToDefault(record, value, removeAndRefresh)} + onClick={() => + moveToDefault(record, props.item.quantity, removeAndRefresh) + } icon={} tooltip={t`Move to default location`} tooltipAlignment="top" @@ -422,13 +541,7 @@ function StockOperationsRow({ variant={packagingOpen ? 'filled' : 'transparent'} /> )} - input.removeFn(input.idx)} - icon={} - tooltip={t`Remove item from list`} - tooltipAlignment="top" - color="red" - /> + props.removeFn(props.idx)} /> @@ -436,7 +549,7 @@ function StockOperationsRow({ { - input.changeFn(input.idx, 'packaging', value || undefined); + props.changeFn(props.idx, 'packaging', value || undefined); }} fieldDefinition={{ field_type: 'string', @@ -464,9 +577,9 @@ function mapAdjustmentItems(items: any[]) { return { pk: elem.pk, quantity: elem.quantity, - batch: elem.batch, - status: elem.status, - packaging: elem.packaging, + batch: elem.batch || undefined, + status: elem.status || undefined, + packaging: elem.packaging || undefined, obj: elem }; }); @@ -485,14 +598,16 @@ function stockTransferFields(items: any[]): ApiFormFieldSet { items: { field_type: 'table', value: mapAdjustmentItems(items), - modelRenderer: (val) => { + modelRenderer: (row: TableFieldRowProps) => { + const record = records[row.item.pk]; + return ( ); }, @@ -520,13 +635,16 @@ function stockRemoveFields(items: any[]): ApiFormFieldSet { items: { field_type: 'table', value: mapAdjustmentItems(items), - modelRenderer: (val) => { + modelRenderer: (row: TableFieldRowProps) => { + const record = records[row.item.pk]; + return ( ); }, @@ -549,14 +667,11 @@ function stockAddFields(items: any[]): ApiFormFieldSet { items: { field_type: 'table', value: mapAdjustmentItems(items), - modelRenderer: (val) => { + modelRenderer: (row: TableFieldRowProps) => { + const record = records[row.item.pk]; + return ( - + ); }, headers: [t`Part`, t`Location`, t`In Stock`, t`Add`, t`Actions`] @@ -578,12 +693,12 @@ function stockCountFields(items: any[]): ApiFormFieldSet { items: { field_type: 'table', value: mapAdjustmentItems(items), - modelRenderer: (val) => { + modelRenderer: (row: TableFieldRowProps) => { return ( ); }, @@ -608,19 +723,19 @@ function stockChangeStatusFields(items: any[]): ApiFormFieldSet { value: items.map((elem) => { return elem.pk; }), - modelRenderer: (val) => { + modelRenderer: (row: TableFieldRowProps) => { return ( ); }, headers: [t`Part`, t`Location`, t`In Stock`, t`Actions`] }, - status_custom_key: {}, + status: {}, note: {} }; @@ -643,13 +758,13 @@ function stockMergeFields(items: any[]): ApiFormFieldSet { obj: elem }; }), - modelRenderer: (val) => { + modelRenderer: (row: TableFieldRowProps) => { return ( ); }, @@ -685,13 +800,13 @@ function stockAssignFields(items: any[]): ApiFormFieldSet { obj: elem }; }), - modelRenderer: (val) => { + modelRenderer: (row: TableFieldRowProps) => { return ( ); }, @@ -721,13 +836,15 @@ function stockDeleteFields(items: any[]): ApiFormFieldSet { value: items.map((elem) => { return elem.pk; }), - modelRenderer: (val) => { + modelRenderer: (row: TableFieldRowProps) => { + const record = records[row.item]; + return ( ); }, @@ -815,6 +932,7 @@ function stockOperationModal({ url: endpoint, fields: fields, title: title, + size: '80%', onFormSuccess: () => refresh() }); } @@ -924,11 +1042,13 @@ export function useTestResultFields({ partId, itemId, templateId, + editing = false, editTemplate = false }: { partId: number; itemId: number; templateId: number | undefined; + editing?: boolean; editTemplate?: boolean; }): ApiFormFieldSet { // Valid field choices @@ -937,7 +1057,7 @@ export function useTestResultFields({ // Field type for the "value" input const [fieldType, setFieldType] = useState<'string' | 'choice'>('string'); - const settings = useGlobalSettingsState.getState(); + const settings = useGlobalSettingsState(); const includeTestStation = useMemo( () => settings.isSet('TEST_STATION_DATA'), @@ -945,7 +1065,7 @@ export function useTestResultFields({ ); return useMemo(() => { - return { + let fields: ApiFormFieldSet = { stock_item: { value: itemId, hidden: true @@ -995,8 +1115,16 @@ export function useTestResultFields({ hidden: !includeTestStation } }; + + if (editing) { + // Prevent changing uploaded attachments + delete fields.attachment; + } + + return fields; }, [ choices, + editing, editTemplate, fieldType, partId, diff --git a/src/frontend/src/functions/auth.tsx b/src/frontend/src/functions/auth.tsx index 8325bfc8b2..a05b043755 100644 --- a/src/frontend/src/functions/auth.tsx +++ b/src/frontend/src/functions/auth.tsx @@ -1,7 +1,7 @@ import { t } from '@lingui/macro'; import { notifications } from '@mantine/notifications'; import axios from 'axios'; -import { NavigateFunction } from 'react-router-dom'; +import { Navigate, NavigateFunction } from 'react-router-dom'; import { api, setApiDefaults } from '../App'; import { ApiEndpoints } from '../enums/ApiEndpoints'; @@ -11,6 +11,17 @@ import { useUserState } from '../states/UserState'; import { fetchGlobalStates } from '../states/states'; import { showLoginNotification } from './notifications'; +export function followRedirect(navigate: NavigateFunction, redirect: any) { + let url = redirect?.redirectUrl ?? '/home'; + + if (redirect?.queryParams) { + // Construct and appand query parameters + url = url + '?' + new URLSearchParams(redirect.queryParams).toString(); + } + + navigate(url); +} + /** * sends a request to the specified url from a form. this will change the window location. * @param {string} path the path to send the post request to @@ -177,7 +188,7 @@ export function handleReset(navigate: any, values: { email: string }) { */ export const checkLoginState = async ( navigate: any, - redirect?: string, + redirect?: any, no_redirect?: boolean ) => { setApiDefaults(); @@ -197,13 +208,13 @@ export const checkLoginState = async ( fetchGlobalStates(); - navigate(redirect ?? '/home'); + followRedirect(navigate, redirect); }; // Callback function when login fails const loginFailure = () => { if (!no_redirect) { - navigate('/login', { state: { redirectFrom: redirect } }); + navigate('/login', { state: redirect }); } }; diff --git a/src/frontend/src/functions/icons.tsx b/src/frontend/src/functions/icons.tsx index 31c5617b00..38b313cb36 100644 --- a/src/frontend/src/functions/icons.tsx +++ b/src/frontend/src/functions/icons.tsx @@ -3,6 +3,7 @@ import { Icon123, IconArrowBigDownLineFilled, IconArrowMerge, + IconBell, IconBinaryTree2, IconBookmarks, IconBox, @@ -12,8 +13,11 @@ import { IconBuildingStore, IconBusinessplan, IconCalendar, + IconCalendarCheck, + IconCalendarDot, IconCalendarStats, IconCalendarTime, + IconCalendarX, IconCheck, IconCircleCheck, IconCircleMinus, @@ -31,6 +35,8 @@ import { IconEdit, IconExclamationCircle, IconExternalLink, + IconFileArrowLeft, + IconFileDownload, IconFileUpload, IconFlag, IconFlagShare, @@ -39,13 +45,18 @@ import { IconHandStop, IconHash, IconHierarchy, + IconHistory, IconInfoCircle, IconLayersLinked, + IconLayoutDashboard, + IconLicense, IconLink, IconList, + IconListDetails, IconListTree, IconLock, IconMail, + IconMap2, IconMapPin, IconMapPinHeart, IconMinusVertical, @@ -57,13 +68,16 @@ import { IconPaperclip, IconPhone, IconPhoto, + IconPlug, IconPoint, IconPrinter, IconProgressCheck, IconProps, IconQrcode, IconQuestionMark, + IconRefresh, IconRulerMeasure, + IconSettings, IconShoppingCart, IconShoppingCartHeart, IconShoppingCartPlus, @@ -83,6 +97,7 @@ import { IconTruckReturn, IconUnlink, IconUser, + IconUserBolt, IconUserStar, IconUsersGroup, IconVersions, @@ -117,6 +132,7 @@ const icons = { details: IconInfoCircle, parameters: IconList, list: IconList, + list_details: IconListDetails, stock: IconPackages, variants: IconVersions, allocations: IconBookmarks, @@ -141,7 +157,9 @@ const icons = { notes: IconNotes, photo: IconPhoto, upload: IconFileUpload, + download: IconFileDownload, reject: IconX, + refresh: IconRefresh, select_image: IconGridDots, delete: IconTrash, packaging: IconPackage, @@ -154,6 +172,13 @@ const icons = { issue: IconBrandTelegram, complete: IconCircleCheck, deliver: IconTruckDelivery, + address: IconMap2, + import: IconFileArrowLeft, + bell: IconBell, + notification: IconBell, + admin: IconUserBolt, + system: IconSettings, + license: IconLicense, // Part Icons active: IconCheck, @@ -171,8 +196,15 @@ const icons = { locked: IconLock, calendar: IconCalendar, + calendar_target: IconCalendarDot, + calendar_cross: IconCalendarX, + calendar_check: IconCalendarCheck, external: IconExternalLink, creation_date: IconCalendarTime, + target_date: IconCalendarDot, + date: IconCalendar, + shipment_date: IconCalendarCheck, + complete_date: IconCalendarCheck, location: IconMapPin, default_location: IconMapPinHeart, category_default_location: IconMapPinHeart, @@ -192,6 +224,7 @@ const icons = { arrow_down: IconArrowBigDownLineFilled, transfer: IconTransfer, actions: IconDots, + labels: IconTag, reports: IconPrinter, buy: IconShoppingCartPlus, add: IconCirclePlus, @@ -217,7 +250,10 @@ const icons = { destination: IconFlag, repeat_destination: IconFlagShare, unlink: IconUnlink, - success: IconCircleCheck + success: IconCircleCheck, + plugin: IconPlug, + history: IconHistory, + dashboard: IconLayoutDashboard }; export type InvenTreeIconType = keyof typeof icons; @@ -229,8 +265,8 @@ export type TablerIconType = React.ForwardRefExoticComponent< * Returns a Tabler Icon for the model field name supplied * @param field string defining field name */ -export function GetIcon(field: InvenTreeIconType) { - return icons[field]; +export function GetIcon(field: string): TablerIconType { + return icons[field as InvenTreeIconType]; } // Aliasing the new type name to make it distinct diff --git a/src/frontend/src/functions/loading.tsx b/src/frontend/src/functions/loading.tsx index 52be4a5e67..5238ee8dd4 100644 --- a/src/frontend/src/functions/loading.tsx +++ b/src/frontend/src/functions/loading.tsx @@ -23,7 +23,7 @@ export const Loadable = (Component: any) => (props: JSX.IntrinsicAttributes) => ); -export function LoadingItem({ item }: { item: any }): JSX.Element { +export function LoadingItem({ item }: Readonly<{ item: any }>): JSX.Element { const Itm = Loadable(item); return ; } diff --git a/src/frontend/src/functions/notifications.tsx b/src/frontend/src/functions/notifications.tsx index 0306d1d92c..c0f4c47e9a 100644 --- a/src/frontend/src/functions/notifications.tsx +++ b/src/frontend/src/functions/notifications.tsx @@ -6,10 +6,13 @@ import { IconCircleCheck, IconExclamationCircle } from '@tabler/icons-react'; * Show a notification that the feature is not yet implemented */ export function notYetImplemented() { + notifications.hide('not-implemented'); + notifications.show({ title: t`Not implemented`, message: t`This feature is not yet implemented`, - color: 'red' + color: 'red', + id: 'not-implemented' }); } @@ -18,7 +21,7 @@ export function notYetImplemented() { */ export function permissionDenied() { notifications.show({ - title: t`Permission denied`, + title: t`Permission Denied`, message: t`You do not have permission to perform this action`, color: 'red' }); @@ -36,6 +39,17 @@ export function invalidResponse(returnCode: number) { }); } +/** + * Display a notification on timeout + */ +export function showTimeoutNotification() { + notifications.show({ + title: t`Timeout`, + message: t`The request timed out`, + color: 'red' + }); +} + /* * Display a login / logout notification message. * Any existing login notification(s) will be hidden. @@ -57,6 +71,6 @@ export function showLoginNotification({ color: success ? 'green' : 'red', icon: success ? : , id: 'login', - autoClose: 5000 + autoClose: 2500 }); } diff --git a/src/frontend/src/functions/tables.tsx b/src/frontend/src/functions/tables.tsx index 73873a7bfa..6b3b9a4946 100644 --- a/src/frontend/src/functions/tables.tsx +++ b/src/frontend/src/functions/tables.tsx @@ -22,5 +22,5 @@ export function shortenString({ // Otherwise, shorten it let N = Math.floor(len / 2 - 1); - return str.slice(0, N) + '...' + str.slice(-N); + return str.slice(0, N) + ' ... ' + str.slice(-N); } diff --git a/src/frontend/src/hooks/UseDashboardItems.tsx b/src/frontend/src/hooks/UseDashboardItems.tsx new file mode 100644 index 0000000000..910eb37fe2 --- /dev/null +++ b/src/frontend/src/hooks/UseDashboardItems.tsx @@ -0,0 +1,116 @@ +import { useQuery } from '@tanstack/react-query'; +import { useMemo } from 'react'; + +import { api } from '../App'; +import { DashboardWidgetProps } from '../components/dashboard/DashboardWidget'; +import DashboardWidgetLibrary from '../components/dashboard/DashboardWidgetLibrary'; +import { useInvenTreeContext } from '../components/plugins/PluginContext'; +import { + PluginUIFeature, + PluginUIFeatureType +} from '../components/plugins/PluginUIFeature'; +import RemoteComponent from '../components/plugins/RemoteComponent'; +import { ApiEndpoints } from '../enums/ApiEndpoints'; +import { identifierString } from '../functions/conversion'; +import { apiUrl } from '../states/ApiState'; +import { useGlobalSettingsState } from '../states/SettingsState'; +import { useUserState } from '../states/UserState'; + +interface DashboardLibraryProps { + items: DashboardWidgetProps[]; + loaded: boolean; +} + +/** + * Custom hook to load available dashboard items. + * + * - Loads from library of "builtin" dashboard items + * - Loads plugin-defined dashboard items (via the API) + */ +export function useDashboardItems(): DashboardLibraryProps { + const user = useUserState(); + const globalSettings = useGlobalSettingsState(); + + const pluginsEnabled: boolean = useMemo( + () => globalSettings.isSet('ENABLE_PLUGINS_INTERFACE'), + [globalSettings] + ); + + const builtin = DashboardWidgetLibrary(); + + const pluginQuery = useQuery({ + enabled: pluginsEnabled, + queryKey: ['plugin-dashboard-items', user], + refetchOnMount: true, + queryFn: async () => { + if (!pluginsEnabled) { + return Promise.resolve([]); + } + + const url = apiUrl(ApiEndpoints.plugin_ui_features_list, undefined, { + feature_type: PluginUIFeatureType.dashboard + }); + + return api + .get(url) + .then((response: any) => response.data) + .catch((_error: any) => { + console.error('ERR: Failed to fetch plugin dashboard items'); + return []; + }); + } + }); + + // Cache the context data which is delivered to the plugins + const inventreeContext = useInvenTreeContext(); + + const pluginDashboardItems: DashboardWidgetProps[] = useMemo(() => { + return ( + pluginQuery?.data?.map((item: PluginUIFeature) => { + const pluginContext = { + ...inventreeContext, + context: item.context + }; + + return { + label: identifierString(`p-${item.plugin_name}-${item.key}`), + title: item.title, + description: item.description, + minWidth: item.options?.width ?? 2, + minHeight: item.options?.height ?? 1, + render: () => { + return ( + + ); + } + }; + }) ?? [] + ); + }, [pluginQuery, inventreeContext]); + + const items: DashboardWidgetProps[] = useMemo(() => { + return [...builtin, ...pluginDashboardItems]; + }, [builtin, pluginDashboardItems]); + + const loaded: boolean = useMemo(() => { + if (pluginsEnabled) { + return ( + !pluginQuery.isFetching && + !pluginQuery.isLoading && + pluginQuery.isFetched && + pluginQuery.isSuccess + ); + } else { + return true; + } + }, [pluginsEnabled, pluginQuery]); + + return { + items: items, + loaded: loaded + }; +} diff --git a/src/frontend/src/hooks/UseInstance.tsx b/src/frontend/src/hooks/UseInstance.tsx index 29713bd8e4..1f52325ed0 100644 --- a/src/frontend/src/hooks/UseInstance.tsx +++ b/src/frontend/src/hooks/UseInstance.tsx @@ -1,10 +1,19 @@ -import { useQuery } from '@tanstack/react-query'; -import { useCallback, useState } from 'react'; +import { QueryObserverResult, useQuery } from '@tanstack/react-query'; +import { useCallback, useMemo, useState } from 'react'; import { api } from '../App'; import { ApiEndpoints } from '../enums/ApiEndpoints'; import { PathParams, apiUrl } from '../states/ApiState'; +export interface UseInstanceResult { + instance: any; + setInstance: (instance: any) => void; + refreshInstance: () => Promise>; + instanceQuery: any; + requestStatus: number; + isLoaded: boolean; +} + /** * Custom hook for loading a single instance of an instance from the API * @@ -36,13 +45,19 @@ export function useInstance({ refetchOnWindowFocus?: boolean; throwError?: boolean; updateInterval?: number; -}) { +}): UseInstanceResult { const [instance, setInstance] = useState(defaultValue); const [requestStatus, setRequestStatus] = useState(0); const instanceQuery = useQuery({ - queryKey: ['instance', endpoint, pk, params, pathParams], + queryKey: [ + 'instance', + endpoint, + pk, + JSON.stringify(params), + JSON.stringify(pathParams) + ], queryFn: async () => { if (hasPrimaryKey) { if ( @@ -89,8 +104,16 @@ export function useInstance({ refetchInterval: updateInterval }); + const isLoaded = useMemo(() => { + return ( + instanceQuery.isFetched && + instanceQuery.isSuccess && + !instanceQuery.isError + ); + }, [instanceQuery]); + const refreshInstance = useCallback(function () { - instanceQuery.refetch(); + return instanceQuery.refetch(); }, []); return { @@ -98,6 +121,7 @@ export function useInstance({ setInstance, refreshInstance, instanceQuery, - requestStatus + requestStatus, + isLoaded }; } diff --git a/src/frontend/src/hooks/UseInstanceName.tsx b/src/frontend/src/hooks/UseInstanceName.tsx new file mode 100644 index 0000000000..71af926c5b --- /dev/null +++ b/src/frontend/src/hooks/UseInstanceName.tsx @@ -0,0 +1,14 @@ +import { useMemo } from 'react'; + +import { useGlobalSettingsState } from '../states/SettingsState'; + +/** + * Simple hook for returning the "instance name" of the Server + */ +export default function useInstanceName(): string { + const globalSettings = useGlobalSettingsState(); + + return useMemo(() => { + return globalSettings.getSetting('INVENTREE_INSTANCE', 'InvenTree'); + }, [globalSettings]); +} diff --git a/src/frontend/src/hooks/UsePlaceholder.tsx b/src/frontend/src/hooks/UsePlaceholder.tsx new file mode 100644 index 0000000000..d67839e240 --- /dev/null +++ b/src/frontend/src/hooks/UsePlaceholder.tsx @@ -0,0 +1,66 @@ +import { t } from '@lingui/macro'; +import { useQuery } from '@tanstack/react-query'; +import { useMemo } from 'react'; + +import { api } from '../App'; +import { ApiEndpoints } from '../enums/ApiEndpoints'; +import { apiUrl } from '../states/ApiState'; + +/** + * Hook for generating a placeholder text for a serial number input + * + * This hook fetches the latest serial number information for a given part and generates a placeholder string. + * + * @param partId The ID of the part to fetch serial number information for + * @param key A unique key to identify the query + * @param enabled Whether the query should be enabled + */ +export function useSerialNumberPlaceholder({ + partId, + key, + enabled = true +}: { + partId: number; + key: string; + enabled?: boolean; +}): string | undefined { + // Fetch serial number information (if available) + const snQuery = useQuery({ + queryKey: ['serial-placeholder', key, partId], + enabled: enabled ?? true, + queryFn: async () => { + if (!partId) { + return null; + } + + const url = apiUrl(ApiEndpoints.part_serial_numbers, partId); + + return api + .get(url) + .then((response) => { + if (response.status === 200) { + return response.data; + } else { + return null; + } + }) + .catch(() => { + return null; + }); + } + }); + + const placeholder = useMemo(() => { + if (!enabled) { + return undefined; + } else if (snQuery.data?.next) { + return t`Next serial number` + `: ${snQuery.data.next}`; + } else if (snQuery.data?.latest) { + return t`Latest serial number` + `: ${snQuery.data.latest}`; + } else { + return undefined; + } + }, [enabled, snQuery.data]); + + return placeholder; +} diff --git a/src/frontend/src/hooks/UsePluginPanels.tsx b/src/frontend/src/hooks/UsePluginPanels.tsx new file mode 100644 index 0000000000..d8352c666e --- /dev/null +++ b/src/frontend/src/hooks/UsePluginPanels.tsx @@ -0,0 +1,118 @@ +import { useQuery } from '@tanstack/react-query'; +import { useMemo } from 'react'; + +import { api } from '../App'; +import { PanelType } from '../components/panels/Panel'; +import { + InvenTreeContext, + useInvenTreeContext +} from '../components/plugins/PluginContext'; +import PluginPanelContent from '../components/plugins/PluginPanel'; +import { + PluginUIFeature, + PluginUIFeatureType +} from '../components/plugins/PluginUIFeature'; +import { ApiEndpoints } from '../enums/ApiEndpoints'; +import { ModelType } from '../enums/ModelType'; +import { identifierString } from '../functions/conversion'; +import { InvenTreeIcon, InvenTreeIconType } from '../functions/icons'; +import { apiUrl } from '../states/ApiState'; +import { useGlobalSettingsState } from '../states/SettingsState'; + +/** + * @param model - The model type for the plugin (e.g. 'part' / 'purchaseorder') + * @param id - The ID (primary key) of the model instance for the plugin + * @param instance - The model instance data (if available) + */ +export type PluginPanelContext = InvenTreeContext & { + model?: ModelType | string; + id?: string | number | null; + instance?: any; +}; + +export function usePluginPanels({ + instance, + model, + id +}: { + instance?: any; + model?: ModelType | string; + id?: string | number | null; +}): PanelType[] { + const globalSettings = useGlobalSettingsState(); + + const pluginPanelsEnabled: boolean = useMemo( + () => globalSettings.isSet('ENABLE_PLUGINS_INTERFACE'), + [globalSettings] + ); + + // API query to fetch initial information on available plugin panels + const { data: pluginData } = useQuery({ + enabled: pluginPanelsEnabled && !!model && id !== undefined, + queryKey: ['custom-plugin-panels', model, id], + queryFn: async () => { + if (!pluginPanelsEnabled || !model) { + return Promise.resolve([]); + } + + const url = apiUrl(ApiEndpoints.plugin_ui_features_list, undefined, { + feature_type: PluginUIFeatureType.panel + }); + + return api + .get(url, { + params: { + target_model: model, + target_id: id + } + }) + .then((response: any) => response.data) + .catch((_error: any) => { + console.error(`ERR: Failed to fetch plugin panels`); + return []; + }); + } + }); + + // Cache the context data which is delivered to the plugins + const inventreeContext = useInvenTreeContext(); + + const contextData = useMemo(() => { + return { + model: model, + id: id, + instance: instance, + ...inventreeContext + }; + }, [model, id, instance, inventreeContext]); + + const pluginPanels: PanelType[] = useMemo(() => { + return ( + pluginData?.map((props: PluginUIFeature) => { + const iconName: string = props?.icon || 'plugin'; + const identifier = identifierString( + `${props.plugin_name}-${props.key}` + ); + + const pluginContext: any = { + ...contextData, + context: props.context + }; + + return { + name: identifier, + label: props.title, + icon: , + content: ( + + ) + }; + }) ?? [] + ); + }, [pluginData, contextData]); + + return pluginPanels; +} diff --git a/src/frontend/src/hooks/UsePluginUIFeature.tsx b/src/frontend/src/hooks/UsePluginUIFeature.tsx new file mode 100644 index 0000000000..df630cd3ae --- /dev/null +++ b/src/frontend/src/hooks/UsePluginUIFeature.tsx @@ -0,0 +1,94 @@ +import { useQuery } from '@tanstack/react-query'; +import { useMemo } from 'react'; + +import { api } from '../App'; +import { useInvenTreeContext } from '../components/plugins/PluginContext'; +import { findExternalPluginFunction } from '../components/plugins/PluginSource'; +import { + BaseUIFeature, + PluginUIFeatureAPIResponse, + PluginUIFuncWithoutInvenTreeContextType +} from '../components/plugins/PluginUIFeatureTypes'; +import { ApiEndpoints } from '../enums/ApiEndpoints'; +import { apiUrl } from '../states/ApiState'; +import { useGlobalSettingsState } from '../states/SettingsState'; + +export function usePluginUIFeature({ + enabled = true, + featureType, + context +}: { + enabled?: boolean; + featureType: UIFeatureT['featureType']; + context: UIFeatureT['requestContext']; +}) { + const globalSettings = useGlobalSettingsState(); + + const pluginUiFeaturesEnabled: boolean = useMemo( + () => globalSettings.isSet('ENABLE_PLUGINS_INTERFACE'), + [globalSettings] + ); + + // API query to fetch initial information on available plugin panels + const { data: pluginData } = useQuery< + PluginUIFeatureAPIResponse[] + >({ + enabled: pluginUiFeaturesEnabled && !!featureType && enabled, + queryKey: ['custom-ui-features', featureType, JSON.stringify(context)], + queryFn: async () => { + if (!pluginUiFeaturesEnabled || !featureType) { + return Promise.resolve([]); + } + + return api + .get( + apiUrl(ApiEndpoints.plugin_ui_features_list, undefined, { + feature_type: featureType + }), + { + params: context + } + ) + .then((response: any) => response.data) + .catch((error: any) => { + console.error( + `ERR: Failed to fetch plugin ui features for feature "${featureType}":`, + error + ); + return []; + }); + } + }); + + // Cache the context data which is delivered to the plugins + const inventreeContext = useInvenTreeContext(); + + return useMemo< + { + options: UIFeatureT['responseOptions']; + func: PluginUIFuncWithoutInvenTreeContextType; + }[] + >(() => { + return ( + pluginData?.map((feature) => { + return { + options: { + ...feature + }, + func: (async (featureContext) => { + const func = await findExternalPluginFunction( + feature.source, + 'getFeature' + ); + if (!func) return; + + return func({ + featureContext, + inventreeContext + }); + }) as PluginUIFuncWithoutInvenTreeContextType + }; + }) || [] + ); + }, [pluginData, inventreeContext]); +} diff --git a/src/frontend/src/hooks/UseSelectedRows.tsx b/src/frontend/src/hooks/UseSelectedRows.tsx new file mode 100644 index 0000000000..8a089eec12 --- /dev/null +++ b/src/frontend/src/hooks/UseSelectedRows.tsx @@ -0,0 +1,37 @@ +import { useCallback, useEffect, useState } from 'react'; + +/** + * Hook to manage multiple selected rows in a multi-action modal. + * + * - The hook is initially provided with a list of rows + * - A callback is provided to remove a row, based on the provided ID value + */ +export function useSelectedRows({ + rows, + pkField = 'pk' +}: { + rows: T[]; + pkField?: string; +}) { + const [selectedRows, setSelectedRows] = useState(rows); + + // Update selection whenever input rows are updated + useEffect(() => { + setSelectedRows(rows); + }, [rows]); + + // Callback to remove the selected row + const removeRow = useCallback( + (pk: any) => { + setSelectedRows((rows) => + rows.filter((row: any) => row[pkField ?? 'pk'] !== pk) + ); + }, + [pkField] + ); + + return { + selectedRows, + removeRow + }; +} diff --git a/src/frontend/src/hooks/UseTable.tsx b/src/frontend/src/hooks/UseTable.tsx index c44cc11d9e..62b012d6cc 100644 --- a/src/frontend/src/hooks/UseTable.tsx +++ b/src/frontend/src/hooks/UseTable.tsx @@ -1,5 +1,6 @@ import { randomId, useLocalStorage } from '@mantine/hooks'; import { useCallback, useMemo, useState } from 'react'; +import { SetURLSearchParams, useSearchParams } from 'react-router-dom'; import { TableFilter } from '../tables/Filter'; @@ -8,21 +9,50 @@ import { TableFilter } from '../tables/Filter'; * * tableKey: A unique key for the table. When this key changes, the table will be refreshed. * refreshTable: A callback function to externally refresh the table. + * isLoading: A boolean flag to indicate if the table is currently loading data + * setIsLoading: A function to set the isLoading flag * activeFilters: An array of active filters (saved to local storage) + * setActiveFilters: A function to set the active filters + * clearActiveFilters: A function to clear all active filters + * queryFilters: A map of query filters (e.g. ?active=true&overdue=false) passed in the URL + * setQueryFilters: A function to set the query filters + * clearQueryFilters: A function to clear all query filters + * expandedRecords: An array of expanded records (rows) in the table + * setExpandedRecords: A function to set the expanded records + * isRowExpanded: A function to determine if a record is expanded * selectedRecords: An array of selected records (rows) in the table + * selectedIds: An array of primary key values for selected records + * hasSelectedRecords: A boolean flag to indicate if any records are selected + * setSelectedRecords: A function to set the selected records + * clearSelectedRecords: A function to clear all selected records * hiddenColumns: An array of hidden column names + * setHiddenColumns: A function to set the hidden columns * searchTerm: The current search term for the table + * setSearchTerm: A function to set the search term + * recordCount: The total number of records in the table + * setRecordCount: A function to set the record count + * page: The current page number + * setPage: A function to set the current page number + * pageSize: The number of records per page + * setPageSize: A function to set the number of records per page + * records: An array of records (rows) in the table + * setRecords: A function to set the records + * updateRecord: A function to update a single record in the table */ export type TableState = { tableKey: string; refreshTable: () => void; - activeFilters: TableFilter[]; isLoading: boolean; setIsLoading: (value: boolean) => void; + activeFilters: TableFilter[]; setActiveFilters: (filters: TableFilter[]) => void; clearActiveFilters: () => void; + queryFilters: URLSearchParams; + setQueryFilters: SetURLSearchParams; + clearQueryFilters: () => void; expandedRecords: any[]; setExpandedRecords: (records: any[]) => void; + isRowExpanded: (pk: number) => boolean; selectedRecords: any[]; selectedIds: number[]; hasSelectedRecords: boolean; @@ -41,8 +71,6 @@ export type TableState = { records: any[]; setRecords: (records: any[]) => void; updateRecord: (record: any) => void; - editable: boolean; - setEditable: (value: boolean) => void; }; /** @@ -54,9 +82,16 @@ export type TableState = { export function useTable(tableName: string): TableState { // Function to generate a new ID (to refresh the table) function generateTableName() { - return `${tableName}-${randomId()}`; + return `${tableName.replaceAll('-', '')}-${randomId()}`; } + // Extract URL query parameters (e.g. ?active=true&overdue=false) + const [queryFilters, setQueryFilters] = useSearchParams(); + + const clearQueryFilters = useCallback(() => { + setQueryFilters({}); + }, []); + const [tableKey, setTableKey] = useState(generateTableName()); // Callback used to refresh (reload) the table @@ -79,6 +114,14 @@ export function useTable(tableName: string): TableState { // Array of expanded records const [expandedRecords, setExpandedRecords] = useState([]); + // Function to determine if a record is expanded + const isRowExpanded = useCallback( + (pk: number) => { + return expandedRecords.includes(pk); + }, + [expandedRecords] + ); + // Array of selected records const [selectedRecords, setSelectedRecords] = useState([]); @@ -136,8 +179,6 @@ export function useTable(tableName: string): TableState { const [isLoading, setIsLoading] = useState(false); - const [editable, setEditable] = useState(false); - return { tableKey, refreshTable, @@ -146,8 +187,12 @@ export function useTable(tableName: string): TableState { activeFilters, setActiveFilters, clearActiveFilters, + queryFilters, + setQueryFilters, + clearQueryFilters, expandedRecords, setExpandedRecords, + isRowExpanded, selectedRecords, selectedIds, setSelectedRecords, @@ -165,8 +210,6 @@ export function useTable(tableName: string): TableState { setPageSize, records, setRecords, - updateRecord, - editable, - setEditable + updateRecord }; } diff --git a/src/frontend/src/locales/ar/messages.po b/src/frontend/src/locales/ar/messages.po index 4dc3d0f514..487414ce9f 100644 --- a/src/frontend/src/locales/ar/messages.po +++ b/src/frontend/src/locales/ar/messages.po @@ -8,15 +8,15 @@ msgstr "" "Language: ar\n" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"PO-Revision-Date: 2024-08-20 19:49\n" +"PO-Revision-Date: 2024-11-04 03:14\n" "Last-Translator: \n" "Language-Team: Arabic\n" "Plural-Forms: nplurals=6; plural=(n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5);\n" "X-Crowdin-Project: inventree\n" "X-Crowdin-Project-ID: 452300\n" "X-Crowdin-Language: ar\n" -"X-Crowdin-File: /[inventree.InvenTree] l10/src/frontend/src/locales/en/messages.po\n" -"X-Crowdin-File-ID: 205\n" +"X-Crowdin-File: /src/frontend/src/locales/en/messages.po\n" +"X-Crowdin-File-ID: 252\n" #: src/components/Boundary.tsx:12 msgid "Error rendering component" @@ -27,8 +27,8 @@ msgid "An error occurred while rendering this component. Refer to the console fo msgstr "" #: src/components/DashboardItemProxy.tsx:34 -msgid "Title" -msgstr "" +#~ msgid "Title" +#~ msgstr "Title" #: src/components/buttons/AdminButton.tsx:80 msgid "Open in admin interface" @@ -38,82 +38,99 @@ msgstr "" #~ msgid "Copy to clipboard" #~ msgstr "Copy to clipboard" -#: src/components/buttons/CopyButton.tsx:24 +#: src/components/buttons/CopyButton.tsx:29 msgid "Copied" msgstr "" -#: src/components/buttons/CopyButton.tsx:24 +#: src/components/buttons/CopyButton.tsx:29 msgid "Copy" msgstr "" -#: src/components/buttons/PrintingActions.tsx:93 +#: src/components/buttons/PrintingActions.tsx:97 msgid "Print Label" msgstr "" -#: src/components/buttons/PrintingActions.tsx:99 +#: src/components/buttons/PrintingActions.tsx:103 msgid "Print" msgstr "" -#: src/components/buttons/PrintingActions.tsx:100 +#: src/components/buttons/PrintingActions.tsx:104 msgid "Label printing completed successfully" msgstr "" -#: src/components/buttons/PrintingActions.tsx:106 -#: src/components/buttons/PrintingActions.tsx:144 -#: src/components/editors/NotesEditor.tsx:65 -#: src/components/editors/NotesEditor.tsx:165 -#: src/components/forms/fields/ApiFormField.tsx:319 +#: src/components/buttons/PrintingActions.tsx:110 +#: src/components/buttons/PrintingActions.tsx:148 +#: src/components/editors/NotesEditor.tsx:73 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:154 +#: src/components/forms/fields/ApiFormField.tsx:328 +#: src/components/forms/fields/TableField.tsx:43 #: src/components/importer/ImportDataSelector.tsx:187 -#: src/components/importer/ImporterColumnSelector.tsx:207 +#: src/components/importer/ImporterColumnSelector.tsx:210 #: src/components/modals/LicenseModal.tsx:75 -#: src/components/nav/SearchDrawer.tsx:448 +#: src/components/nav/SearchDrawer.tsx:458 +#: src/components/render/ModelType.tsx:290 #: src/pages/ErrorPage.tsx:11 -#: src/pages/part/PartPricingPanel.tsx:67 -#: src/tables/InvenTreeTable.tsx:495 +#: src/pages/part/PartPricingPanel.tsx:71 +#: src/tables/InvenTreeTable.tsx:481 #: src/tables/bom/BomTable.tsx:450 -#: src/tables/stock/StockItemTestResultTable.tsx:299 +#: src/tables/stock/StockItemTestResultTable.tsx:317 msgid "Error" msgstr "" -#: src/components/buttons/PrintingActions.tsx:107 +#: src/components/buttons/PrintingActions.tsx:111 msgid "The label could not be generated" msgstr "" -#: src/components/buttons/PrintingActions.tsx:122 +#: src/components/buttons/PrintingActions.tsx:126 msgid "Print Report" msgstr "" -#: src/components/buttons/PrintingActions.tsx:138 +#: src/components/buttons/PrintingActions.tsx:142 msgid "Generate" msgstr "" -#: src/components/buttons/PrintingActions.tsx:139 +#: src/components/buttons/PrintingActions.tsx:143 msgid "Report printing completed successfully" msgstr "" -#: src/components/buttons/PrintingActions.tsx:145 +#: src/components/buttons/PrintingActions.tsx:149 msgid "The report could not be generated" msgstr "" -#: src/components/buttons/PrintingActions.tsx:173 +#: src/components/buttons/PrintingActions.tsx:177 msgid "Printing Actions" msgstr "" -#: src/components/buttons/PrintingActions.tsx:178 +#: src/components/buttons/PrintingActions.tsx:182 msgid "Print Labels" msgstr "" -#: src/components/buttons/PrintingActions.tsx:184 +#: src/components/buttons/PrintingActions.tsx:188 msgid "Print Reports" msgstr "" +#: src/components/buttons/RemoveRowButton.tsx:8 +msgid "Remove this row" +msgstr "حذف هذا الصف" + #: src/components/buttons/ScanButton.tsx:15 -msgid "Scan QR code" +#: src/components/nav/NavigationDrawer.tsx:117 +#: src/forms/PurchaseOrderForms.tsx:379 +#: src/forms/PurchaseOrderForms.tsx:473 +msgid "Scan Barcode" +msgstr "" + +#: src/components/buttons/ScanButton.tsx:15 +#~ msgid "Scan QR code" +#~ msgstr "Scan QR code" + +#: src/components/buttons/ScanButton.tsx:20 +msgid "Open Barcode Scanner" msgstr "" #: src/components/buttons/ScanButton.tsx:20 -msgid "Open QR code scanner" -msgstr "" +#~ msgid "Open QR code scanner" +#~ msgstr "Open QR code scanner" #: src/components/buttons/SpotlightButton.tsx:14 msgid "Open spotlight" @@ -128,85 +145,347 @@ msgid "Fail" msgstr "" #: src/components/buttons/YesNoButton.tsx:33 -#: src/tables/Filter.tsx:52 +#: src/tables/Filter.tsx:61 msgid "Yes" msgstr "" #: src/components/buttons/YesNoButton.tsx:33 -#: src/tables/Filter.tsx:53 +#: src/tables/Filter.tsx:62 msgid "No" msgstr "" -#: src/components/details/Details.tsx:301 +#: src/components/dashboard/DashboardLayout.tsx:286 +msgid "No Widgets Selected" +msgstr "" + +#: src/components/dashboard/DashboardLayout.tsx:289 +msgid "Use the menu to add widgets to the dashboard" +msgstr "" + +#: src/components/dashboard/DashboardMenu.tsx:59 +#: src/components/dashboard/DashboardMenu.tsx:126 +msgid "Accept Layout" +msgstr "" + +#: src/components/dashboard/DashboardMenu.tsx:91 +#: src/components/nav/NavigationDrawer.tsx:71 +#: src/defaults/actions.tsx:17 +#: src/defaults/links.tsx:9 +#: src/pages/Index/Settings/UserSettings.tsx:47 +msgid "Dashboard" +msgstr "" + +#: src/components/dashboard/DashboardMenu.tsx:99 +msgid "Edit Layout" +msgstr "" + +#: src/components/dashboard/DashboardMenu.tsx:108 +msgid "Add Widget" +msgstr "" + +#: src/components/dashboard/DashboardMenu.tsx:117 +msgid "Remove Widgets" +msgstr "" + +#: src/components/dashboard/DashboardWidget.tsx:65 +msgid "Remove this widget from the dashboard" +msgstr "" + +#: src/components/dashboard/DashboardWidgetDrawer.tsx:77 +msgid "Filter dashboard widgets" +msgstr "" + +#: src/components/dashboard/DashboardWidgetDrawer.tsx:98 +msgid "Add this widget to the dashboard" +msgstr "" + +#: src/components/dashboard/DashboardWidgetDrawer.tsx:123 +msgid "No Widgets Available" +msgstr "" + +#: src/components/dashboard/DashboardWidgetDrawer.tsx:124 +msgid "There are no more widgets available for the dashboard" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:19 +msgid "Subscribed Parts" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:20 +msgid "Show the number of parts which you have subscribed to" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:26 +msgid "Subscribed Categories" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:27 +msgid "Show the number of part categories which you have subscribed to" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:35 +#: src/pages/part/PartSchedulingDetail.tsx:304 +#: src/tables/part/PartTable.tsx:238 +msgid "Low Stock" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:37 +msgid "Show the number of parts which are low on stock" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:43 +msgid "Expired Stock Items" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:45 +msgid "Show the number of stock items which have expired" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:51 +msgid "Stale Stock Items" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:53 +msgid "Show the number of stock items which are stale" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:59 +msgid "Active Build Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:61 +msgid "Show the number of build orders which are currently active" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:66 +msgid "Overdue Build Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:68 +msgid "Show the number of build orders which are overdue" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:73 +msgid "Assigned Build Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:75 +msgid "Show the number of build orders which are assigned to you" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:80 +msgid "Active Sales Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:82 +msgid "Show the number of sales orders which are currently active" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:87 +msgid "Overdue Sales Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:89 +msgid "Show the number of sales orders which are overdue" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:94 +msgid "Assigned Sales Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:96 +msgid "Show the number of sales orders which are assigned to you" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:101 +msgid "Active Purchase Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:103 +msgid "Show the number of purchase orders which are currently active" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:108 +msgid "Overdue Purchase Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:110 +msgid "Show the number of purchase orders which are overdue" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:115 +msgid "Assigned Purchase Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:117 +msgid "Show the number of purchase orders which are assigned to you" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:122 +msgid "Active Return Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:124 +msgid "Show the number of return orders which are currently active" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:129 +msgid "Overdue Return Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:131 +msgid "Show the number of return orders which are overdue" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:136 +msgid "Assigned Return Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:138 +msgid "Show the number of return orders which are assigned to you" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:149 +#: src/components/dashboard/widgets/GetStartedWidget.tsx:15 +#: src/defaults/links.tsx:38 +msgid "Getting Started" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:150 +#: src/defaults/links.tsx:41 +msgid "Getting started with InvenTree" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:157 +#: src/components/dashboard/widgets/NewsWidget.tsx:123 +msgid "News Updates" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:158 +msgid "The latest news from InvenTree" +msgstr "" + +#: src/components/dashboard/widgets/ColorToggleWidget.tsx:18 +#: src/components/nav/MainMenu.tsx:77 +msgid "Change Color Mode" +msgstr "" + +#: src/components/dashboard/widgets/ColorToggleWidget.tsx:23 +msgid "Change the color mode of the user interface" +msgstr "" + +#: src/components/dashboard/widgets/LanguageSelectWidget.tsx:18 +msgid "Change Language" +msgstr "" + +#: src/components/dashboard/widgets/LanguageSelectWidget.tsx:23 +msgid "Change the language of the user interface" +msgstr "" + +#: src/components/dashboard/widgets/NewsWidget.tsx:61 +#: src/components/nav/NotificationDrawer.tsx:88 +#: src/pages/Notifications.tsx:73 +msgid "Mark as read" +msgstr "" + +#: src/components/dashboard/widgets/NewsWidget.tsx:115 +msgid "Requires Superuser" +msgstr "" + +#: src/components/dashboard/widgets/NewsWidget.tsx:116 +msgid "This widget requires superuser permissions" +msgstr "" + +#: src/components/dashboard/widgets/NewsWidget.tsx:133 +msgid "No News" +msgstr "" + +#: src/components/dashboard/widgets/NewsWidget.tsx:134 +msgid "There are no unread news items" +msgstr "" + +#: src/components/details/Details.tsx:300 msgid "No name defined" msgstr "" -#: src/components/details/DetailsImage.tsx:65 +#: src/components/details/DetailsImage.tsx:69 msgid "Remove Image" msgstr "" -#: src/components/details/DetailsImage.tsx:68 +#: src/components/details/DetailsImage.tsx:72 msgid "Remove the associated image from this item?" msgstr "" -#: src/components/details/DetailsImage.tsx:71 -#: src/forms/StockForms.tsx:533 +#: src/components/details/DetailsImage.tsx:75 +#: src/forms/StockForms.tsx:651 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:199 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:306 -#: src/pages/stock/StockDetail.tsx:526 +#: src/pages/stock/StockDetail.tsx:690 msgid "Remove" msgstr "" -#: src/components/details/DetailsImage.tsx:71 -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:158 -#: src/components/items/ActionDropdown.tsx:215 -#: src/components/items/ActionDropdown.tsx:216 -#: src/contexts/ThemeContext.tsx:43 +#: src/components/details/DetailsImage.tsx:75 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:184 +#: src/components/items/ActionDropdown.tsx:268 +#: src/components/items/ActionDropdown.tsx:269 +#: src/contexts/ThemeContext.tsx:45 #: src/hooks/UseForm.tsx:40 -#: src/tables/FilterSelectDrawer.tsx:205 -#: src/tables/build/BuildOutputTable.tsx:286 +#: src/tables/FilterSelectDrawer.tsx:241 +#: src/tables/RowActions.tsx:59 +#: src/tables/build/BuildOutputTable.tsx:434 msgid "Cancel" msgstr "" -#: src/components/details/DetailsImage.tsx:97 +#: src/components/details/DetailsImage.tsx:101 msgid "Drag and drop to upload" msgstr "" -#: src/components/details/DetailsImage.tsx:100 +#: src/components/details/DetailsImage.tsx:104 msgid "Click to select file(s)" msgstr "" -#: src/components/details/DetailsImage.tsx:226 +#: src/components/details/DetailsImage.tsx:230 msgid "Clear" msgstr "" -#: src/components/details/DetailsImage.tsx:232 -#: src/components/forms/ApiForm.tsx:627 -#: src/contexts/ThemeContext.tsx:43 -#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:60 +#: src/components/details/DetailsImage.tsx:236 +#: src/components/forms/ApiForm.tsx:660 +#: src/contexts/ThemeContext.tsx:45 msgid "Submit" msgstr "" -#: src/components/details/DetailsImage.tsx:272 +#: src/components/details/DetailsImage.tsx:280 msgid "Select from existing images" msgstr "" -#: src/components/details/DetailsImage.tsx:280 +#: src/components/details/DetailsImage.tsx:288 msgid "Select Image" msgstr "" -#: src/components/details/DetailsImage.tsx:292 +#: src/components/details/DetailsImage.tsx:304 +msgid "Download remote image" +msgstr "" + +#: src/components/details/DetailsImage.tsx:319 msgid "Upload new image" msgstr "" -#: src/components/details/DetailsImage.tsx:299 +#: src/components/details/DetailsImage.tsx:326 msgid "Upload Image" msgstr "" -#: src/components/details/DetailsImage.tsx:312 +#: src/components/details/DetailsImage.tsx:339 msgid "Delete image" msgstr "" +#: src/components/details/DetailsImage.tsx:373 +msgid "Download Image" +msgstr "" + +#: src/components/details/DetailsImage.tsx:378 +msgid "Image downloaded successfully" +msgstr "" + #: src/components/details/PartIcons.tsx:43 #~ msgid "Part is a template part (variants can be made from this part)" #~ msgstr "Part is a template part (variants can be made from this part)" @@ -235,36 +514,57 @@ msgstr "" #~ msgid "Part is virtual (not a physical part)" #~ msgstr "Part is virtual (not a physical part)" -#: src/components/editors/NotesEditor.tsx:66 +#: src/components/editors/NotesEditor.tsx:74 msgid "Image upload failed" msgstr "" -#: src/components/editors/NotesEditor.tsx:156 -#: src/components/forms/ApiForm.tsx:467 +#: src/components/editors/NotesEditor.tsx:83 +#: src/components/editors/NotesEditor.tsx:119 +#: src/components/forms/ApiForm.tsx:475 #: src/tables/bom/BomTable.tsx:441 msgid "Success" msgstr "" -#: src/components/editors/NotesEditor.tsx:157 +#: src/components/editors/NotesEditor.tsx:84 +msgid "Image uploaded successfully" +msgstr "تم رفع الصورة بنجاح" + +#: src/components/editors/NotesEditor.tsx:120 msgid "Notes saved successfully" msgstr "" -#: src/components/editors/NotesEditor.tsx:166 +#: src/components/editors/NotesEditor.tsx:131 msgid "Failed to save notes" msgstr "" -#: src/components/editors/NotesEditor.tsx:198 -msgid "Preview Notes" +#: src/components/editors/NotesEditor.tsx:134 +msgid "Error Saving Notes" msgstr "" -#: src/components/editors/NotesEditor.tsx:198 -msgid "Edit Notes" -msgstr "" +#: src/components/editors/NotesEditor.tsx:151 +#~ msgid "Disable Editing" +#~ msgstr "Disable Editing" -#: src/components/editors/NotesEditor.tsx:212 +#: src/components/editors/NotesEditor.tsx:154 msgid "Save Notes" msgstr "" +#: src/components/editors/NotesEditor.tsx:173 +msgid "Close Editor" +msgstr "" + +#: src/components/editors/NotesEditor.tsx:180 +msgid "Enable Editing" +msgstr "تمكين التعديل" + +#: src/components/editors/NotesEditor.tsx:198 +#~ msgid "Preview Notes" +#~ msgstr "Preview Notes" + +#: src/components/editors/NotesEditor.tsx:198 +#~ msgid "Edit Notes" +#~ msgstr "Edit Notes" + #: src/components/editors/TemplateEditor/CodeEditor/index.tsx:9 msgid "Code" msgstr "" @@ -281,40 +581,44 @@ msgstr "" msgid "PDF Preview" msgstr "" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:104 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:115 msgid "Error loading template" msgstr "" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:116 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:127 msgid "Error saving template" msgstr "" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:146 -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:274 -msgid "Save & Reload Preview" -msgstr "" - -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:151 -msgid "Are you sure you want to Save & Reload the preview?" -msgstr "" - #: src/components/editors/TemplateEditor/TemplateEditor.tsx:151 #~ msgid "Save & Reload preview?" #~ msgstr "Save & Reload preview?" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:153 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:155 +msgid "Could not load the template from the server." +msgstr "" + +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:172 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:303 +msgid "Save & Reload Preview" +msgstr "" + +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:177 +msgid "Are you sure you want to Save & Reload the preview?" +msgstr "" + +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:179 msgid "To render the preview the current template needs to be replaced on the server with your modifications which may break the label if it is under active use. Do you want to proceed?" msgstr "" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:157 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:183 msgid "Save & Reload" msgstr "" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:189 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:215 msgid "Preview updated" msgstr "" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:190 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:216 msgid "The preview has been updated successfully." msgstr "" @@ -322,15 +626,15 @@ msgstr "" #~ msgid "Save & Reload preview" #~ msgstr "Save & Reload preview" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:266 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:295 msgid "Reload preview" msgstr "" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:267 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:296 msgid "Use the currently stored template from the server" msgstr "" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:275 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:304 msgid "Save the current template and reload the preview" msgstr "" @@ -338,11 +642,11 @@ msgstr "" #~ msgid "to preview" #~ msgstr "to preview" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:333 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:365 msgid "Select instance to preview" msgstr "" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:377 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:409 msgid "Error rendering template" msgstr "" @@ -379,6 +683,7 @@ msgid "This page does not exist" msgstr "" #: src/components/errors/PermissionDenied.tsx:8 +#: src/functions/notifications.tsx:24 msgid "Permission Denied" msgstr "" @@ -394,8 +699,8 @@ msgstr "" msgid "A server error occurred" msgstr "" -#: src/components/forms/ApiForm.tsx:151 -#: src/components/forms/ApiForm.tsx:555 +#: src/components/forms/ApiForm.tsx:154 +#: src/components/forms/ApiForm.tsx:579 msgid "Form Error" msgstr "" @@ -403,22 +708,22 @@ msgstr "" #~ msgid "Form Errors Exist" #~ msgstr "Form Errors Exist" -#: src/components/forms/ApiForm.tsx:563 +#: src/components/forms/ApiForm.tsx:587 msgid "Errors exist for one or more form fields" msgstr "" -#: src/components/forms/ApiForm.tsx:665 -#: src/tables/plugin/PluginListTable.tsx:388 +#: src/components/forms/ApiForm.tsx:698 +#: src/tables/plugin/PluginListTable.tsx:195 msgid "Update" msgstr "" -#: src/components/forms/ApiForm.tsx:685 -#: src/components/items/ActionDropdown.tsx:195 +#: src/components/forms/ApiForm.tsx:718 +#: src/components/items/ActionDropdown.tsx:248 #: src/hooks/UseForm.tsx:122 -#: src/pages/Index/Scan.tsx:343 +#: src/pages/Index/Scan.tsx:357 #: src/pages/Notifications.tsx:123 -#: src/tables/RowActions.tsx:43 -#: src/tables/plugin/PluginListTable.tsx:420 +#: src/tables/RowActions.tsx:49 +#: src/tables/plugin/PluginListTable.tsx:232 msgid "Delete" msgstr "" @@ -428,14 +733,6 @@ msgstr "" #~ msgid "Check your your input and try again." #~ msgstr "Check your your input and try again." -#: src/components/forms/AuthenticationForm.tsx:51 -msgid "Login successful" -msgstr "" - -#: src/components/forms/AuthenticationForm.tsx:52 -msgid "Logged in successfully" -msgstr "" - #: src/components/forms/AuthenticationForm.tsx:52 #~ msgid "Welcome back!" #~ msgstr "Welcome back!" @@ -444,14 +741,22 @@ msgstr "" #~ msgid "Login successfull" #~ msgstr "Login successfull" -#: src/components/forms/AuthenticationForm.tsx:58 +#: src/components/forms/AuthenticationForm.tsx:55 +msgid "Login successful" +msgstr "" + +#: src/components/forms/AuthenticationForm.tsx:56 +msgid "Logged in successfully" +msgstr "" + +#: src/components/forms/AuthenticationForm.tsx:61 msgid "Login failed" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:59 -#: src/components/forms/AuthenticationForm.tsx:76 -#: src/components/forms/AuthenticationForm.tsx:211 -#: src/functions/auth.tsx:164 +#: src/components/forms/AuthenticationForm.tsx:62 +#: src/components/forms/AuthenticationForm.tsx:79 +#: src/components/forms/AuthenticationForm.tsx:214 +#: src/functions/auth.tsx:175 msgid "Check your input and try again." msgstr "" @@ -460,45 +765,46 @@ msgstr "" #~ msgid "Mail delivery successfull" #~ msgstr "Mail delivery successfull" -#: src/components/forms/AuthenticationForm.tsx:70 -#: src/functions/auth.tsx:155 +#: src/components/forms/AuthenticationForm.tsx:73 +#: src/functions/auth.tsx:166 msgid "Mail delivery successful" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:71 +#: src/components/forms/AuthenticationForm.tsx:74 msgid "Check your inbox for the login link. If you have an account, you will receive a login link. Check in spam too." msgstr "" -#: src/components/forms/AuthenticationForm.tsx:75 +#: src/components/forms/AuthenticationForm.tsx:78 msgid "Mail delivery failed" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:95 +#: src/components/forms/AuthenticationForm.tsx:98 msgid "Or continue with other methods" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:106 -#: src/components/forms/AuthenticationForm.tsx:227 +#: src/components/forms/AuthenticationForm.tsx:109 +#: src/components/forms/AuthenticationForm.tsx:230 +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:67 msgid "Username" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:107 -#: src/components/forms/AuthenticationForm.tsx:228 +#: src/components/forms/AuthenticationForm.tsx:110 +#: src/components/forms/AuthenticationForm.tsx:231 msgid "Your username" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:112 -#: src/components/forms/AuthenticationForm.tsx:240 -#: src/pages/Auth/Set-Password.tsx:106 +#: src/components/forms/AuthenticationForm.tsx:115 +#: src/components/forms/AuthenticationForm.tsx:243 +#: src/pages/Auth/Set-Password.tsx:101 msgid "Password" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:113 -#: src/components/forms/AuthenticationForm.tsx:241 +#: src/components/forms/AuthenticationForm.tsx:116 +#: src/components/forms/AuthenticationForm.tsx:244 msgid "Your password" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:125 +#: src/components/forms/AuthenticationForm.tsx:128 #: src/pages/Auth/Reset.tsx:26 msgid "Reset password" msgstr "" @@ -507,77 +813,79 @@ msgstr "" #~ msgid "Log in" #~ msgstr "Log in" -#: src/components/forms/AuthenticationForm.tsx:134 -#: src/components/forms/AuthenticationForm.tsx:233 +#: src/components/forms/AuthenticationForm.tsx:136 +#~ msgid "I will use username and password" +#~ msgstr "I will use username and password" + +#: src/components/forms/AuthenticationForm.tsx:137 +#: src/components/forms/AuthenticationForm.tsx:236 #: src/pages/Auth/Reset.tsx:31 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:51 msgid "Email" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:135 +#: src/components/forms/AuthenticationForm.tsx:138 #: src/pages/Auth/Reset.tsx:32 -#: src/pages/Auth/Set-Password.tsx:107 +#: src/pages/Auth/Set-Password.tsx:102 msgid "We will send you a link to login - if you are registered" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:136 -#~ msgid "I will use username and password" -#~ msgstr "I will use username and password" - -#: src/components/forms/AuthenticationForm.tsx:151 +#: src/components/forms/AuthenticationForm.tsx:154 msgid "Send me an email" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:153 +#: src/components/forms/AuthenticationForm.tsx:156 msgid "Use username and password" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:162 +#: src/components/forms/AuthenticationForm.tsx:165 msgid "Log In" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:164 +#: src/components/forms/AuthenticationForm.tsx:167 +#: src/pages/Auth/Reset.tsx:41 +#: src/pages/Auth/Set-Password.tsx:107 msgid "Send Email" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:193 +#: src/components/forms/AuthenticationForm.tsx:196 msgid "Registration successful" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:194 +#: src/components/forms/AuthenticationForm.tsx:197 msgid "Please confirm your email address to complete the registration" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:210 +#: src/components/forms/AuthenticationForm.tsx:213 msgid "Input error" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:234 +#: src/components/forms/AuthenticationForm.tsx:237 msgid "This will be used for a confirmation" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:246 +#: src/components/forms/AuthenticationForm.tsx:249 msgid "Password repeat" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:247 +#: src/components/forms/AuthenticationForm.tsx:250 msgid "Repeat password" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:259 -#: src/components/forms/AuthenticationForm.tsx:304 +#: src/components/forms/AuthenticationForm.tsx:262 +#: src/components/forms/AuthenticationForm.tsx:307 msgid "Register" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:265 +#: src/components/forms/AuthenticationForm.tsx:268 msgid "Or use SSO" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:296 +#: src/components/forms/AuthenticationForm.tsx:299 msgid "Don't have an account?" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:315 +#: src/components/forms/AuthenticationForm.tsx:318 msgid "Go back to login" msgstr "" @@ -588,19 +896,20 @@ msgstr "" #: src/components/forms/HostOptionsForm.tsx:42 #: src/components/forms/HostOptionsForm.tsx:70 +#: src/components/plugins/PluginDrawer.tsx:69 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:410 +#: src/pages/Index/Settings/AdminCenter/UnitManagmentPanel.tsx:19 #: src/pages/part/CategoryDetail.tsx:81 -#: src/pages/part/PartDetail.tsx:143 -#: src/pages/stock/LocationDetail.tsx:89 -#: src/tables/machine/MachineTypeTable.tsx:65 -#: src/tables/machine/MachineTypeTable.tsx:109 -#: src/tables/machine/MachineTypeTable.tsx:216 -#: src/tables/machine/MachineTypeTable.tsx:319 +#: src/pages/part/PartDetail.tsx:164 +#: src/pages/stock/LocationDetail.tsx:83 +#: src/tables/machine/MachineTypeTable.tsx:70 +#: src/tables/machine/MachineTypeTable.tsx:119 +#: src/tables/machine/MachineTypeTable.tsx:237 +#: src/tables/machine/MachineTypeTable.tsx:340 #: src/tables/plugin/PluginErrorTable.tsx:33 -#: src/tables/plugin/PluginListTable.tsx:126 #: src/tables/purchasing/ManufacturerPartParameterTable.tsx:32 #: src/tables/settings/GroupTable.tsx:147 -#: src/tables/settings/PendingTasksTable.tsx:28 +#: src/tables/settings/PendingTasksTable.tsx:32 #: src/tables/stock/LocationTypesTable.tsx:69 msgid "Name" msgstr "" @@ -650,7 +959,7 @@ msgid "Uncategorized" msgstr "" #: src/components/forms/fields/IconField.tsx:209 -#: src/components/nav/Layout.tsx:70 +#: src/components/nav/Layout.tsx:77 #: src/tables/part/PartThumbTable.tsx:192 msgid "Search..." msgstr "" @@ -667,28 +976,27 @@ msgstr "" msgid "{0} icons" msgstr "" -#: src/components/forms/fields/RelatedModelField.tsx:318 -#: src/pages/Index/Settings/UserSettings.tsx:96 +#: src/components/forms/fields/RelatedModelField.tsx:319 +#: src/pages/Index/Settings/UserSettings.tsx:97 #: src/tables/Search.tsx:23 msgid "Search" msgstr "" -#: src/components/forms/fields/RelatedModelField.tsx:319 +#: src/components/forms/fields/RelatedModelField.tsx:320 #: src/components/modals/AboutInvenTreeModal.tsx:81 -#: src/components/widgets/WidgetLayout.tsx:120 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:316 msgid "Loading" msgstr "" -#: src/components/forms/fields/RelatedModelField.tsx:321 +#: src/components/forms/fields/RelatedModelField.tsx:322 msgid "No results found" msgstr "" -#: src/components/forms/fields/TableField.tsx:52 -msgid "modelRenderer entry required for tables" -msgstr "" +#: src/components/forms/fields/TableField.tsx:72 +#~ msgid "modelRenderer entry required for tables" +#~ msgstr "modelRenderer entry required for tables" -#: src/components/forms/fields/TableField.tsx:76 +#: src/components/forms/fields/TableField.tsx:167 msgid "No entries available" msgstr "" @@ -741,7 +1049,7 @@ msgid "Filter by row validation status" msgstr "" #: src/components/importer/ImportDataSelector.tsx:365 -#: src/tables/build/BuildOutputTable.tsx:266 +#: src/tables/build/BuildOutputTable.tsx:407 msgid "Complete" msgstr "" @@ -749,20 +1057,21 @@ msgstr "" msgid "Filter by row completion status" msgstr "" -#: src/components/importer/ImportDataSelector.tsx:383 +#: src/components/importer/ImportDataSelector.tsx:384 msgid "Import selected rows" msgstr "" -#: src/components/importer/ImportDataSelector.tsx:398 +#: src/components/importer/ImportDataSelector.tsx:399 msgid "Processing Data" msgstr "" -#: src/components/importer/ImporterColumnSelector.tsx:50 -#: src/components/importer/ImporterColumnSelector.tsx:176 +#: src/components/importer/ImporterColumnSelector.tsx:53 +#: src/components/importer/ImporterColumnSelector.tsx:179 +#: src/components/items/ErrorItem.tsx:12 msgid "An error occurred" msgstr "" -#: src/components/importer/ImporterColumnSelector.tsx:62 +#: src/components/importer/ImporterColumnSelector.tsx:65 msgid "Select column, or leave blank to ignore this field." msgstr "" @@ -778,51 +1087,51 @@ msgstr "" #~ msgid "Imported Column Name" #~ msgstr "Imported Column Name" -#: src/components/importer/ImporterColumnSelector.tsx:182 +#: src/components/importer/ImporterColumnSelector.tsx:185 msgid "Ignore this field" msgstr "" -#: src/components/importer/ImporterColumnSelector.tsx:196 +#: src/components/importer/ImporterColumnSelector.tsx:199 msgid "Mapping data columns to database fields" msgstr "" -#: src/components/importer/ImporterColumnSelector.tsx:201 +#: src/components/importer/ImporterColumnSelector.tsx:204 msgid "Accept Column Mapping" msgstr "" -#: src/components/importer/ImporterColumnSelector.tsx:214 +#: src/components/importer/ImporterColumnSelector.tsx:217 msgid "Database Field" msgstr "" -#: src/components/importer/ImporterColumnSelector.tsx:215 +#: src/components/importer/ImporterColumnSelector.tsx:218 msgid "Field Description" msgstr "" -#: src/components/importer/ImporterColumnSelector.tsx:216 +#: src/components/importer/ImporterColumnSelector.tsx:219 msgid "Imported Column" msgstr "" -#: src/components/importer/ImporterColumnSelector.tsx:217 +#: src/components/importer/ImporterColumnSelector.tsx:220 msgid "Default Value" msgstr "" -#: src/components/importer/ImporterDrawer.tsx:44 +#: src/components/importer/ImporterDrawer.tsx:46 msgid "Upload File" msgstr "" -#: src/components/importer/ImporterDrawer.tsx:45 +#: src/components/importer/ImporterDrawer.tsx:47 msgid "Map Columns" msgstr "" -#: src/components/importer/ImporterDrawer.tsx:46 +#: src/components/importer/ImporterDrawer.tsx:48 msgid "Import Data" msgstr "" -#: src/components/importer/ImporterDrawer.tsx:47 +#: src/components/importer/ImporterDrawer.tsx:49 msgid "Process Data" msgstr "" -#: src/components/importer/ImporterDrawer.tsx:48 +#: src/components/importer/ImporterDrawer.tsx:50 msgid "Complete Import" msgstr "" @@ -830,28 +1139,28 @@ msgstr "" #~ msgid "Cancel import session" #~ msgstr "Cancel import session" -#: src/components/importer/ImporterDrawer.tsx:104 +#: src/components/importer/ImporterDrawer.tsx:106 msgid "Import Complete" msgstr "" -#: src/components/importer/ImporterDrawer.tsx:107 +#: src/components/importer/ImporterDrawer.tsx:109 msgid "Data has been imported successfully" msgstr "" -#: src/components/importer/ImporterDrawer.tsx:109 -#: src/components/importer/ImporterDrawer.tsx:118 +#: src/components/importer/ImporterDrawer.tsx:111 +#: src/components/importer/ImporterDrawer.tsx:120 msgid "Close" msgstr "" -#: src/components/importer/ImporterDrawer.tsx:115 +#: src/components/importer/ImporterDrawer.tsx:117 msgid "Unknown Status" msgstr "" -#: src/components/importer/ImporterDrawer.tsx:116 +#: src/components/importer/ImporterDrawer.tsx:118 msgid "Import session has unknown status" msgstr "" -#: src/components/importer/ImporterDrawer.tsx:135 +#: src/components/importer/ImporterDrawer.tsx:137 msgid "Importing Data" msgstr "" @@ -860,85 +1169,115 @@ msgid "Importing Records" msgstr "" #: src/components/importer/ImporterImportProgress.tsx:39 -msgid "Imported rows" +#: src/tables/settings/ImportSessionTable.tsx:78 +msgid "Imported Rows" msgstr "" -#: src/components/items/ActionDropdown.tsx:121 +#: src/components/importer/ImporterImportProgress.tsx:39 +#~ msgid "Imported rows" +#~ msgstr "Imported rows" + +#: src/components/items/ActionDropdown.tsx:126 +msgid "Options" +msgstr "الخيارات" + +#: src/components/items/ActionDropdown.tsx:140 +#~ msgid "View Barcode" +#~ msgstr "View Barcode" + +#: src/components/items/ActionDropdown.tsx:162 +#: src/tables/InvenTreeTableHeader.tsx:159 +#: src/tables/InvenTreeTableHeader.tsx:160 msgid "Barcode Actions" msgstr "" -#: src/components/items/ActionDropdown.tsx:140 -msgid "View Barcode" -msgstr "" +#: src/components/items/ActionDropdown.tsx:162 +#~ msgid "Link custom barcode" +#~ msgstr "Link custom barcode" -#: src/components/items/ActionDropdown.tsx:147 +#: src/components/items/ActionDropdown.tsx:167 msgid "View" msgstr "" -#: src/components/items/ActionDropdown.tsx:148 +#: src/components/items/ActionDropdown.tsx:169 msgid "View barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:161 +#: src/components/items/ActionDropdown.tsx:175 msgid "Link Barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:162 -msgid "Link custom barcode" -msgstr "" - -#: src/components/items/ActionDropdown.tsx:173 -#: src/forms/PurchaseOrderForms.tsx:426 -msgid "Unlink Barcode" -msgstr "" - -#: src/components/items/ActionDropdown.tsx:174 -msgid "Unlink custom barcode" +#: src/components/items/ActionDropdown.tsx:177 +msgid "Link a custom barcode to this item" msgstr "" #: src/components/items/ActionDropdown.tsx:183 -#: src/tables/RowActions.tsx:33 +#: src/components/items/QRCode.tsx:193 +#: src/forms/PurchaseOrderForms.tsx:464 +msgid "Unlink Barcode" +msgstr "" + +#: src/components/items/ActionDropdown.tsx:185 +msgid "Unlink custom barcode" +msgstr "" + +#: src/components/items/ActionDropdown.tsx:236 +#: src/tables/RowActions.tsx:39 msgid "Edit" msgstr "" -#: src/components/items/ActionDropdown.tsx:184 +#: src/components/items/ActionDropdown.tsx:237 msgid "Edit item" msgstr "" -#: src/components/items/ActionDropdown.tsx:196 +#: src/components/items/ActionDropdown.tsx:249 msgid "Delete item" msgstr "" -#: src/components/items/ActionDropdown.tsx:204 -#: src/components/items/ActionDropdown.tsx:205 +#: src/components/items/ActionDropdown.tsx:257 +#: src/components/items/ActionDropdown.tsx:258 msgid "Hold" msgstr "" -#: src/components/items/ActionDropdown.tsx:227 -#: src/tables/RowActions.tsx:23 +#: src/components/items/ActionDropdown.tsx:280 +#: src/tables/RowActions.tsx:29 msgid "Duplicate" msgstr "" -#: src/components/items/ActionDropdown.tsx:228 +#: src/components/items/ActionDropdown.tsx:281 msgid "Duplicate item" msgstr "" +#: src/components/items/BarcodeInput.tsx:23 +msgid "Scan barcode data here using barcode scanner" +msgstr "" + +#: src/components/items/BarcodeInput.tsx:24 +#: src/tables/settings/BarcodeScanHistoryTable.tsx:65 +msgid "Barcode" +msgstr "" + +#: src/components/items/BarcodeInput.tsx:25 +msgid "Scan" +msgstr "مسح" + #: src/components/items/DocTooltip.tsx:92 +#: src/components/items/GettingStartedCarousel.tsx:20 msgid "Read More" msgstr "" -#: src/components/items/ErrorItem.tsx:5 -#: src/tables/InvenTreeTable.tsx:487 +#: src/components/items/ErrorItem.tsx:8 +#: src/tables/InvenTreeTable.tsx:473 msgid "Unknown error" msgstr "" -#: src/components/items/ErrorItem.tsx:10 -msgid "An error occurred:" -msgstr "" +#: src/components/items/ErrorItem.tsx:13 +#~ msgid "An error occurred:" +#~ msgstr "An error occurred:" #: src/components/items/GettingStartedCarousel.tsx:27 -msgid "Read more" -msgstr "" +#~ msgid "Read more" +#~ msgstr "Read more" #: src/components/items/InfoItem.tsx:27 msgid "None" @@ -965,30 +1304,51 @@ msgstr "" msgid "This panel is a placeholder." msgstr "" -#: src/components/items/QRCode.tsx:87 +#: src/components/items/QRCode.tsx:89 msgid "Low (7%)" msgstr "" -#: src/components/items/QRCode.tsx:88 +#: src/components/items/QRCode.tsx:90 msgid "Medium (15%)" msgstr "" -#: src/components/items/QRCode.tsx:89 +#: src/components/items/QRCode.tsx:91 msgid "Quartile (25%)" msgstr "" -#: src/components/items/QRCode.tsx:90 +#: src/components/items/QRCode.tsx:92 msgid "High (30%)" msgstr "" -#: src/components/items/QRCode.tsx:107 -msgid "Barcode Data:" +#: src/components/items/QRCode.tsx:100 +msgid "Custom barcode" +msgstr "البار كود المخصص" + +#: src/components/items/QRCode.tsx:101 +msgid "A custom barcode is registered for this item. The shown code is not that custom barcode." msgstr "" #: src/components/items/QRCode.tsx:118 +msgid "Barcode Data:" +msgstr "" + +#: src/components/items/QRCode.tsx:129 msgid "Select Error Correction Level" msgstr "" +#: src/components/items/QRCode.tsx:171 +#: src/pages/part/PartDetail.tsx:239 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:187 +#: src/pages/sales/ReturnOrderDetail.tsx:157 +#: src/pages/sales/SalesOrderDetail.tsx:169 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:166 +msgid "Link" +msgstr "" + +#: src/components/items/QRCode.tsx:190 +msgid "This will remove the link to the associated barcode" +msgstr "" + #: src/components/modals/AboutInvenTreeModal.tsx:99 msgid "Version Information" msgstr "" @@ -1062,11 +1422,11 @@ msgstr "" msgid "Submit Bug Report" msgstr "" -#: src/components/modals/AboutInvenTreeModal.tsx:183 +#: src/components/modals/AboutInvenTreeModal.tsx:181 msgid "Copy version information" msgstr "" -#: src/components/modals/AboutInvenTreeModal.tsx:192 +#: src/components/modals/AboutInvenTreeModal.tsx:189 #: src/components/modals/ServerInfoModal.tsx:147 msgid "Dismiss" msgstr "" @@ -1091,61 +1451,20 @@ msgstr "" msgid "{key} Packages" msgstr "" -#: src/components/modals/QrCodeModal.tsx:72 +#: src/components/modals/QrCodeModal.tsx:24 msgid "Unknown response" msgstr "" -#: src/components/modals/QrCodeModal.tsx:102 -#: src/pages/Index/Scan.tsx:636 -msgid "Error while getting camera" -msgstr "" - -#: src/components/modals/QrCodeModal.tsx:125 -#: src/pages/Index/Scan.tsx:659 -msgid "Error while scanning" -msgstr "" - -#: src/components/modals/QrCodeModal.tsx:139 -#: src/pages/Index/Scan.tsx:673 -msgid "Error while stopping" -msgstr "" - -#: src/components/modals/QrCodeModal.tsx:154 -#: src/defaults/menuItems.tsx:21 -#: src/pages/Index/Scan.tsx:746 -msgid "Scanning" -msgstr "" - -#: src/components/modals/QrCodeModal.tsx:154 -#: src/pages/Index/Scan.tsx:746 -msgid "Not scanning" -msgstr "" - -#: src/components/modals/QrCodeModal.tsx:159 -#: src/pages/Index/Scan.tsx:752 -msgid "Select Camera" -msgstr "" - -#: src/components/modals/QrCodeModal.tsx:169 -#: src/pages/Index/Scan.tsx:737 -msgid "Start scanning" -msgstr "" - -#: src/components/modals/QrCodeModal.tsx:176 -#: src/pages/Index/Scan.tsx:729 -msgid "Stop scanning" -msgstr "" - -#: src/components/modals/QrCodeModal.tsx:181 +#: src/components/modals/QrCodeModal.tsx:39 msgid "No scans yet!" msgstr "" -#: src/components/modals/QrCodeModal.tsx:201 +#: src/components/modals/QrCodeModal.tsx:57 msgid "Close modal" msgstr "" #: src/components/modals/ServerInfoModal.tsx:26 -#: src/pages/Index/Settings/SystemSettings.tsx:38 +#: src/pages/Index/Settings/SystemSettings.tsx:37 msgid "Server" msgstr "" @@ -1206,6 +1525,7 @@ msgid "Background Worker" msgstr "" #: src/components/modals/ServerInfoModal.tsx:101 +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:29 msgid "Background worker not running" msgstr "" @@ -1218,8 +1538,8 @@ msgid "Email settings not configured" msgstr "" #: src/components/modals/ServerInfoModal.tsx:121 -#: src/tables/plugin/PluginListTable.tsx:144 -#: src/tables/plugin/PluginListTable.tsx:294 +#: src/components/plugins/PluginDrawer.tsx:89 +#: src/tables/plugin/PluginListTable.tsx:116 msgid "Version" msgstr "" @@ -1227,7 +1547,7 @@ msgstr "" msgid "Server Version" msgstr "" -#: src/components/nav/Layout.tsx:73 +#: src/components/nav/Layout.tsx:80 msgid "Nothing found..." msgstr "" @@ -1237,18 +1557,26 @@ msgstr "" #~ msgstr "Profile" #: src/components/nav/MainMenu.tsx:52 +#: src/components/nav/NavigationDrawer.tsx:178 #: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:28 msgid "Settings" msgstr "" #: src/components/nav/MainMenu.tsx:59 -#: src/defaults/menuItems.tsx:15 -msgid "Account settings" +#: src/pages/Index/Settings/UserSettings.tsx:152 +msgid "Account Settings" msgstr "" +#: src/components/nav/MainMenu.tsx:59 +#: src/defaults/menuItems.tsx:15 +#~ msgid "Account settings" +#~ msgstr "Account settings" + #: src/components/nav/MainMenu.tsx:67 -#: src/defaults/menuItems.tsx:58 -#: src/pages/Index/Settings/SystemSettings.tsx:315 +#: src/components/nav/NavigationDrawer.tsx:141 +#: src/components/nav/SettingsHeader.tsx:49 +#: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:37 +#: src/pages/Index/Settings/SystemSettings.tsx:310 msgid "System Settings" msgstr "" @@ -1260,14 +1588,11 @@ msgstr "" #~ msgid "Switch to pseudo language" #~ msgstr "Switch to pseudo language" -#: src/components/nav/MainMenu.tsx:77 -msgid "Change Color Mode" -msgstr "" - #: src/components/nav/MainMenu.tsx:86 -#: src/defaults/actions.tsx:71 -#: src/defaults/menuItems.tsx:63 -#: src/pages/Index/Settings/AdminCenter/Index.tsx:221 +#: src/components/nav/NavigationDrawer.tsx:148 +#: src/components/nav/SettingsHeader.tsx:50 +#: src/defaults/actions.tsx:63 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:251 msgid "Admin Center" msgstr "" @@ -1275,458 +1600,732 @@ msgstr "" msgid "Logout" msgstr "" -#: src/components/nav/NavHoverMenu.tsx:65 -#: src/defaults/actions.tsx:60 -msgid "Open Navigation" -msgstr "" - #: src/components/nav/NavHoverMenu.tsx:84 -msgid "View all" -msgstr "" +#~ msgid "View all" +#~ msgstr "View all" #: src/components/nav/NavHoverMenu.tsx:100 #: src/components/nav/NavHoverMenu.tsx:110 -msgid "Get started" -msgstr "" +#~ msgid "Get started" +#~ msgstr "Get started" #: src/components/nav/NavHoverMenu.tsx:103 -msgid "Overview over high-level objects, functions and possible usecases." -msgstr "" - -#: src/components/nav/NavigationDrawer.tsx:57 -msgid "Navigation" -msgstr "" +#~ msgid "Overview over high-level objects, functions and possible usecases." +#~ msgstr "Overview over high-level objects, functions and possible usecases." #: src/components/nav/NavigationDrawer.tsx:60 -msgid "Pages" +#~ msgid "Pages" +#~ msgstr "Pages" + +#: src/components/nav/NavigationDrawer.tsx:77 +#: src/components/render/ModelType.tsx:31 +#: src/defaults/links.tsx:10 +#: src/pages/Index/Settings/SystemSettings.tsx:172 +#: src/pages/part/CategoryDetail.tsx:125 +#: src/pages/part/CategoryDetail.tsx:249 +#: src/pages/part/CategoryDetail.tsx:279 +#: src/pages/part/PartDetail.tsx:856 +msgid "Parts" msgstr "" -#: src/components/nav/NavigationDrawer.tsx:65 -#: src/pages/Index/Settings/AdminCenter/Index.tsx:176 -#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:41 -msgid "Plugins" +#: src/components/nav/NavigationDrawer.tsx:84 +#: src/components/render/Part.tsx:30 +#: src/defaults/links.tsx:11 +#: src/pages/Index/Settings/SystemSettings.tsx:205 +#: src/pages/part/PartDetail.tsx:593 +#: src/pages/stock/LocationDetail.tsx:352 +#: src/pages/stock/StockDetail.tsx:528 +#: src/tables/stock/StockItemTable.tsx:69 +msgid "Stock" msgstr "" -#: src/components/nav/NavigationDrawer.tsx:75 -#: src/defaults/actions.tsx:32 -msgid "Documentation" +#: src/components/nav/NavigationDrawer.tsx:91 +#: src/defaults/links.tsx:13 +#: src/pages/build/BuildDetail.tsx:530 +#: src/pages/build/BuildIndex.tsx:36 +msgid "Manufacturing" msgstr "" -#: src/components/nav/NavigationDrawer.tsx:78 -msgid "About" +#: src/components/nav/NavigationDrawer.tsx:98 +#: src/defaults/links.tsx:18 +#: src/pages/company/ManufacturerDetail.tsx:9 +#: src/pages/company/ManufacturerPartDetail.tsx:258 +#: src/pages/company/SupplierDetail.tsx:9 +#: src/pages/company/SupplierPartDetail.tsx:336 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:480 +#: src/pages/purchasing/PurchasingIndex.tsx:60 +msgid "Purchasing" msgstr "" -#: src/components/nav/NotificationDrawer.tsx:92 -#: src/pages/Index/Settings/SystemSettings.tsx:109 -#: src/pages/Index/Settings/UserSettings.tsx:126 +#: src/components/nav/NavigationDrawer.tsx:105 +#: src/defaults/links.tsx:22 +#: src/pages/company/CustomerDetail.tsx:9 +#: src/pages/sales/ReturnOrderDetail.tsx:469 +#: src/pages/sales/SalesIndex.tsx:53 +#: src/pages/sales/SalesOrderDetail.tsx:520 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:343 +msgid "Sales" +msgstr "" + +#: src/components/nav/NavigationDrawer.tsx:129 +#: src/components/nav/NotificationDrawer.tsx:178 +#: src/pages/Index/Settings/SystemSettings.tsx:110 +#: src/pages/Index/Settings/UserSettings.tsx:127 #: src/pages/Notifications.tsx:65 #: src/pages/Notifications.tsx:151 msgid "Notifications" msgstr "" -#: src/components/nav/NotificationDrawer.tsx:94 +#: src/components/nav/NavigationDrawer.tsx:135 +#: src/components/nav/SettingsHeader.tsx:48 +msgid "User Settings" +msgstr "" + +#: src/components/nav/NavigationDrawer.tsx:173 +msgid "Navigation" +msgstr "" + +#: src/components/nav/NavigationDrawer.tsx:183 +#: src/forms/PurchaseOrderForms.tsx:689 +#: src/forms/StockForms.tsx:614 +#: src/forms/StockForms.tsx:651 +#: src/forms/StockForms.tsx:677 +#: src/forms/StockForms.tsx:705 +#: src/forms/StockForms.tsx:736 +#: src/forms/StockForms.tsx:771 +#: src/forms/StockForms.tsx:813 +#: src/forms/StockForms.tsx:851 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:413 +#: src/tables/RowActions.tsx:129 +#: src/tables/build/BuildLineTable.tsx:101 +msgid "Actions" +msgstr "" + +#: src/components/nav/NavigationDrawer.tsx:191 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:205 +#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:44 +msgid "Plugins" +msgstr "" + +#: src/components/nav/NavigationDrawer.tsx:204 +#: src/defaults/actions.tsx:24 +msgid "Documentation" +msgstr "" + +#: src/components/nav/NavigationDrawer.tsx:210 +msgid "About" +msgstr "" + +#: src/components/nav/NotificationDrawer.tsx:180 msgid "Mark all as read" msgstr "" -#: src/components/nav/NotificationDrawer.tsx:104 +#: src/components/nav/NotificationDrawer.tsx:190 msgid "View all notifications" msgstr "" -#: src/components/nav/NotificationDrawer.tsx:123 +#: src/components/nav/NotificationDrawer.tsx:210 msgid "You have no unread notifications." msgstr "" -#: src/components/nav/NotificationDrawer.tsx:139 -#: src/components/nav/NotificationDrawer.tsx:145 -#: src/tables/notifications/NotificationsTable.tsx:36 -msgid "Notification" -msgstr "" - -#: src/components/nav/NotificationDrawer.tsx:168 -#: src/pages/Notifications.tsx:73 -msgid "Mark as read" -msgstr "" - -#: src/components/nav/SearchDrawer.tsx:78 +#: src/components/nav/SearchDrawer.tsx:85 msgid "results" msgstr "" -#: src/components/nav/SearchDrawer.tsx:370 +#: src/components/nav/SearchDrawer.tsx:380 msgid "Enter search text" msgstr "" -#: src/components/nav/SearchDrawer.tsx:397 +#: src/components/nav/SearchDrawer.tsx:391 +msgid "Refresh search results" +msgstr "" + +#: src/components/nav/SearchDrawer.tsx:402 +#: src/components/nav/SearchDrawer.tsx:409 msgid "Search Options" msgstr "" -#: src/components/nav/SearchDrawer.tsx:400 +#: src/components/nav/SearchDrawer.tsx:412 msgid "Regex search" msgstr "" -#: src/components/nav/SearchDrawer.tsx:410 +#: src/components/nav/SearchDrawer.tsx:421 msgid "Whole word search" msgstr "" -#: src/components/nav/SearchDrawer.tsx:451 +#: src/components/nav/SearchDrawer.tsx:461 msgid "An error occurred during search query" msgstr "" #: src/components/nav/SearchDrawer.tsx:462 -msgid "No results" +#~ msgid "No results" +#~ msgstr "No results" + +#: src/components/nav/SearchDrawer.tsx:472 +#: src/tables/part/PartTestTemplateTable.tsx:76 +msgid "No Results" msgstr "" -#: src/components/nav/SearchDrawer.tsx:465 +#: src/components/nav/SearchDrawer.tsx:475 msgid "No results available for search query" msgstr "" -#: src/components/render/Instance.tsx:217 +#: src/components/panels/AttachmentPanel.tsx:18 +msgid "Attachments" +msgstr "" + +#: src/components/panels/NotesPanel.tsx:24 +#: src/tables/build/BuildOrderTestTable.tsx:143 +#: src/tables/stock/StockTrackingTable.tsx:204 +msgid "Notes" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:47 +msgid "Plugin Inactive" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:50 +msgid "Plugin is not active" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:60 +msgid "Plugin Information" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:74 +#: src/pages/build/BuildDetail.tsx:116 +#: src/pages/company/CompanyDetail.tsx:89 +#: src/pages/company/ManufacturerPartDetail.tsx:89 +#: src/pages/company/ManufacturerPartDetail.tsx:116 +#: src/pages/company/SupplierPartDetail.tsx:140 +#: src/pages/part/CategoryDetail.tsx:101 +#: src/pages/part/PartDetail.tsx:178 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:136 +#: src/pages/sales/ReturnOrderDetail.tsx:107 +#: src/pages/sales/SalesOrderDetail.tsx:116 +#: src/pages/stock/LocationDetail.tsx:103 +#: src/tables/ColumnRenderers.tsx:92 +#: src/tables/bom/UsedInTable.tsx:44 +#: src/tables/build/BuildAllocatedStockTable.tsx:83 +#: src/tables/build/BuildLineTable.tsx:329 +#: src/tables/machine/MachineTypeTable.tsx:74 +#: src/tables/machine/MachineTypeTable.tsx:129 +#: src/tables/machine/MachineTypeTable.tsx:240 +#: src/tables/machine/MachineTypeTable.tsx:344 +#: src/tables/part/RelatedPartTable.tsx:66 +#: src/tables/plugin/PluginListTable.tsx:99 +#: src/tables/sales/SalesOrderAllocationTable.tsx:87 +#: src/tables/sales/SalesOrderLineItemTable.tsx:75 +#: src/tables/stock/LocationTypesTable.tsx:74 +msgid "Description" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:79 +msgid "Author" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:84 +#: src/pages/part/PartSchedulingDetail.tsx:277 +#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:40 +#: src/pages/part/pricing/SaleHistoryPanel.tsx:38 +#: src/tables/ColumnRenderers.tsx:215 +#: src/tables/build/BuildOrderTestTable.tsx:151 +#: src/tables/settings/StocktakeReportTable.tsx:40 +msgid "Date" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:94 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:398 +#: src/pages/part/PartDetail.tsx:331 +#: src/tables/bom/UsedInTable.tsx:84 +#: src/tables/company/CompanyTable.tsx:62 +#: src/tables/company/CompanyTable.tsx:96 +#: src/tables/machine/MachineListTable.tsx:333 +#: src/tables/machine/MachineListTable.tsx:605 +#: src/tables/part/ParametricPartTable.tsx:223 +#: src/tables/part/PartTable.tsx:178 +#: src/tables/part/PartVariantTable.tsx:15 +#: src/tables/plugin/PluginListTable.tsx:94 +#: src/tables/plugin/PluginListTable.tsx:401 +#: src/tables/purchasing/SupplierPartTable.tsx:100 +#: src/tables/purchasing/SupplierPartTable.tsx:190 +#: src/tables/settings/UserTable.tsx:283 +#: src/tables/stock/StockItemTable.tsx:293 +msgid "Active" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:106 +msgid "Package Name" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:112 +msgid "Installation Path" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:117 +#: src/tables/machine/MachineTypeTable.tsx:152 +#: src/tables/machine/MachineTypeTable.tsx:276 +#: src/tables/plugin/PluginListTable.tsx:406 +msgid "Builtin" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:122 +msgid "Package" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:134 +#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:53 +msgid "Plugin Settings" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:146 +#: src/components/render/ModelType.tsx:276 +msgid "Plugin Configuration" +msgstr "" + +#: src/components/plugins/PluginPanel.tsx:87 +#~ msgid "Error occurred while rendering plugin content" +#~ msgstr "Error occurred while rendering plugin content" + +#: src/components/plugins/PluginPanel.tsx:91 +#~ msgid "Plugin did not provide panel rendering function" +#~ msgstr "Plugin did not provide panel rendering function" + +#: src/components/plugins/PluginPanel.tsx:103 +#~ msgid "No content provided for this plugin" +#~ msgstr "No content provided for this plugin" + +#: src/components/plugins/PluginPanel.tsx:116 +#: src/components/plugins/PluginSettingsPanel.tsx:76 +#~ msgid "Error Loading Plugin" +#~ msgstr "Error Loading Plugin" + +#: src/components/plugins/PluginSettingsPanel.tsx:51 +#~ msgid "Error occurred while rendering plugin settings" +#~ msgstr "Error occurred while rendering plugin settings" + +#: src/components/plugins/PluginSettingsPanel.tsx:55 +#~ msgid "Plugin did not provide settings rendering function" +#~ msgstr "Plugin did not provide settings rendering function" + +#: src/components/plugins/PluginUIFeature.tsx:100 +msgid "Error occurred while rendering the template editor." +msgstr "" + +#: src/components/plugins/PluginUIFeature.tsx:111 +msgid "Error Loading Plugin Editor" +msgstr "" + +#: src/components/plugins/PluginUIFeature.tsx:147 +msgid "Error occurred while rendering the template preview." +msgstr "" + +#: src/components/plugins/PluginUIFeature.tsx:158 +msgid "Error Loading Plugin Preview" +msgstr "" + +#: src/components/plugins/RemoteComponent.tsx:70 +msgid "Invalid source or function name" +msgstr "" + +#: src/components/plugins/RemoteComponent.tsx:91 +msgid "Error Loading Content" +msgstr "" + +#: src/components/plugins/RemoteComponent.tsx:95 +msgid "Error occurred while loading plugin content" +msgstr "" + +#: src/components/render/Instance.tsx:224 msgid "Unknown model: {model}" msgstr "" -#: src/components/render/ModelType.tsx:22 -#: src/forms/BuildForms.tsx:213 -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/forms/StockForms.tsx:499 -#: src/forms/StockForms.tsx:533 -#: src/forms/StockForms.tsx:562 -#: src/forms/StockForms.tsx:590 -#: src/forms/StockForms.tsx:621 -#: src/forms/StockForms.tsx:656 -#: src/forms/StockForms.tsx:698 -#: src/forms/StockForms.tsx:734 -#: src/pages/build/BuildDetail.tsx:95 -#: src/pages/part/PartDetail.tsx:1073 -#: src/tables/build/BuildAllocatedStockTable.tsx:82 +#: src/components/render/ModelType.tsx:30 +#: src/forms/BuildForms.tsx:269 +#: src/forms/BuildForms.tsx:337 +#: src/forms/BuildForms.tsx:385 +#: src/forms/BuildForms.tsx:515 +#: src/forms/PurchaseOrderForms.tsx:689 +#: src/forms/ReturnOrderForms.tsx:190 +#: src/forms/SalesOrderForms.tsx:248 +#: src/forms/StockForms.tsx:261 +#: src/forms/StockForms.tsx:614 +#: src/forms/StockForms.tsx:651 +#: src/forms/StockForms.tsx:677 +#: src/forms/StockForms.tsx:705 +#: src/forms/StockForms.tsx:736 +#: src/forms/StockForms.tsx:771 +#: src/forms/StockForms.tsx:813 +#: src/forms/StockForms.tsx:851 +#: src/pages/build/BuildDetail.tsx:90 +#: src/pages/part/PartDetail.tsx:1094 +#: src/tables/build/BuildAllocatedStockTable.tsx:95 +#: src/tables/build/BuildLineTable.tsx:72 #: src/tables/part/PartTable.tsx:28 -#: src/tables/part/RelatedPartTable.tsx:45 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:88 -#: src/tables/sales/SalesOrderAllocationTable.tsx:68 -#: src/tables/stock/StockTrackingTable.tsx:74 +#: src/tables/part/RelatedPartTable.tsx:47 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:130 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:100 +#: src/tables/sales/SalesOrderAllocationTable.tsx:99 +#: src/tables/stock/StockTrackingTable.tsx:78 msgid "Part" msgstr "" -#: src/components/render/ModelType.tsx:23 -#: src/defaults/links.tsx:29 -#: src/defaults/menuItems.tsx:33 -#: src/pages/Index/Settings/SystemSettings.tsx:173 -#: src/pages/part/CategoryDetail.tsx:119 -#: src/pages/part/CategoryDetail.tsx:244 -#: src/pages/part/CategoryDetail.tsx:274 -#: src/pages/part/PartDetail.tsx:827 -msgid "Parts" -msgstr "" - -#: src/components/render/ModelType.tsx:31 +#: src/components/render/ModelType.tsx:40 msgid "Part Parameter Template" msgstr "" -#: src/components/render/ModelType.tsx:32 +#: src/components/render/ModelType.tsx:41 msgid "Part Parameter Templates" msgstr "" -#: src/components/render/ModelType.tsx:38 +#: src/components/render/ModelType.tsx:48 msgid "Part Test Template" msgstr "" -#: src/components/render/ModelType.tsx:39 +#: src/components/render/ModelType.tsx:49 msgid "Part Test Templates" msgstr "" -#: src/components/render/ModelType.tsx:45 -#: src/pages/company/SupplierPartDetail.tsx:203 -#: src/pages/company/SupplierPartDetail.tsx:375 -#: src/pages/stock/StockDetail.tsx:173 -#: src/tables/build/BuildAllocatedStockTable.tsx:131 +#: src/components/render/ModelType.tsx:56 +#: src/pages/company/SupplierPartDetail.tsx:364 +#: src/pages/stock/StockDetail.tsx:194 +#: src/tables/build/BuildAllocatedStockTable.tsx:152 #: src/tables/part/PartPurchaseOrdersTable.tsx:49 -#: src/tables/purchasing/SupplierPartTable.tsx:68 +#: src/tables/purchasing/SupplierPartTable.tsx:70 +#: src/tables/stock/StockItemTable.tsx:229 msgid "Supplier Part" msgstr "" -#: src/components/render/ModelType.tsx:46 +#: src/components/render/ModelType.tsx:57 msgid "Supplier Parts" msgstr "" -#: src/components/render/ModelType.tsx:54 -#: src/pages/company/ManufacturerPartDetail.tsx:132 +#: src/components/render/ModelType.tsx:66 #: src/tables/part/PartPurchaseOrdersTable.tsx:55 +#: src/tables/stock/StockItemTable.tsx:234 msgid "Manufacturer Part" msgstr "" -#: src/components/render/ModelType.tsx:55 +#: src/components/render/ModelType.tsx:67 msgid "Manufacturer Parts" msgstr "" -#: src/components/render/ModelType.tsx:63 -#: src/pages/part/CategoryDetail.tsx:305 +#: src/components/render/ModelType.tsx:76 +#: src/pages/part/CategoryDetail.tsx:310 msgid "Part Category" msgstr "" -#: src/components/render/ModelType.tsx:64 -#: src/pages/part/CategoryDetail.tsx:258 -#: src/pages/part/CategoryDetail.tsx:296 -#: src/pages/part/PartDetail.tsx:1063 +#: src/components/render/ModelType.tsx:77 +#: src/pages/part/CategoryDetail.tsx:263 +#: src/pages/part/CategoryDetail.tsx:301 +#: src/pages/part/PartDetail.tsx:1084 msgid "Part Categories" msgstr "" -#: src/components/render/ModelType.tsx:72 -#: src/pages/stock/StockDetail.tsx:624 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:94 -#: src/tables/stock/StockTrackingTable.tsx:45 +#: src/components/render/ModelType.tsx:86 +#: src/forms/BuildForms.tsx:337 +#: src/forms/BuildForms.tsx:385 +#: src/forms/BuildForms.tsx:515 +#: src/forms/SalesOrderForms.tsx:248 +#: src/pages/stock/StockDetail.tsx:839 +#: src/tables/stock/StockTrackingTable.tsx:49 msgid "Stock Item" msgstr "" -#: src/components/render/ModelType.tsx:73 +#: src/components/render/ModelType.tsx:87 #: src/pages/company/CompanyDetail.tsx:203 -#: src/pages/stock/LocationDetail.tsx:128 -#: src/pages/stock/LocationDetail.tsx:181 -#: src/pages/stock/LocationDetail.tsx:395 +#: src/pages/part/PartStocktakeDetail.tsx:113 +#: src/pages/stock/LocationDetail.tsx:122 +#: src/pages/stock/LocationDetail.tsx:175 +#: src/pages/stock/LocationDetail.tsx:380 msgid "Stock Items" msgstr "" -#: src/components/render/ModelType.tsx:81 +#: src/components/render/ModelType.tsx:96 msgid "Stock Location" msgstr "" -#: src/components/render/ModelType.tsx:82 -#: src/pages/stock/LocationDetail.tsx:195 -#: src/pages/stock/LocationDetail.tsx:387 -#: src/pages/stock/StockDetail.tsx:616 +#: src/components/render/ModelType.tsx:97 +#: src/pages/stock/LocationDetail.tsx:189 +#: src/pages/stock/LocationDetail.tsx:372 +#: src/pages/stock/StockDetail.tsx:831 msgid "Stock Locations" msgstr "" -#: src/components/render/ModelType.tsx:90 +#: src/components/render/ModelType.tsx:106 msgid "Stock Location Type" msgstr "" -#: src/components/render/ModelType.tsx:91 +#: src/components/render/ModelType.tsx:107 msgid "Stock Location Types" msgstr "" -#: src/components/render/ModelType.tsx:95 +#: src/components/render/ModelType.tsx:112 +#: src/pages/part/PartDetail.tsx:712 msgid "Stock History" msgstr "" -#: src/components/render/ModelType.tsx:96 +#: src/components/render/ModelType.tsx:113 msgid "Stock Histories" msgstr "" -#: src/components/render/ModelType.tsx:100 -#: src/defaults/links.tsx:31 -#: src/defaults/menuItems.tsx:43 +#: src/components/render/ModelType.tsx:118 msgid "Build" msgstr "" -#: src/components/render/ModelType.tsx:101 +#: src/components/render/ModelType.tsx:119 msgid "Builds" msgstr "" -#: src/components/render/ModelType.tsx:109 +#: src/components/render/ModelType.tsx:128 msgid "Build Line" msgstr "" -#: src/components/render/ModelType.tsx:110 +#: src/components/render/ModelType.tsx:129 msgid "Build Lines" msgstr "" -#: src/components/render/ModelType.tsx:117 +#: src/components/render/ModelType.tsx:137 msgid "Build Item" msgstr "" -#: src/components/render/ModelType.tsx:118 +#: src/components/render/ModelType.tsx:138 msgid "Build Items" msgstr "" -#: src/components/render/ModelType.tsx:122 -#: src/pages/company/CompanyDetail.tsx:339 +#: src/components/render/ModelType.tsx:143 +#: src/pages/company/CompanyDetail.tsx:321 msgid "Company" msgstr "" -#: src/components/render/ModelType.tsx:123 +#: src/components/render/ModelType.tsx:144 msgid "Companies" msgstr "" -#: src/components/render/ModelType.tsx:131 +#: src/components/render/ModelType.tsx:153 +#: src/pages/build/BuildDetail.tsx:195 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:204 +#: src/pages/sales/ReturnOrderDetail.tsx:174 +#: src/pages/sales/SalesOrderDetail.tsx:186 #: src/tables/TableHoverCard.tsx:81 -#: src/tables/build/BuildOrderTable.tsx:140 -#: src/tables/purchasing/PurchaseOrderTable.tsx:64 -#: src/tables/sales/ReturnOrderTable.tsx:55 -#: src/tables/sales/SalesOrderTable.tsx:62 +#: src/tables/build/BuildOrderTable.tsx:135 +#: src/tables/purchasing/PurchaseOrderTable.tsx:69 +#: src/tables/sales/ReturnOrderTable.tsx:67 +#: src/tables/sales/SalesOrderTable.tsx:67 msgid "Project Code" msgstr "" -#: src/components/render/ModelType.tsx:132 -#: src/pages/Index/Settings/AdminCenter/Index.tsx:128 +#: src/components/render/ModelType.tsx:154 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:145 msgid "Project Codes" msgstr "" -#: src/components/render/ModelType.tsx:138 +#: src/components/render/ModelType.tsx:161 #: src/pages/part/pricing/PurchaseHistoryPanel.tsx:32 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:480 -#: src/tables/part/PartPurchaseOrdersTable.tsx:32 -#: src/tables/stock/StockTrackingTable.tsx:107 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:477 +#: src/pages/stock/StockDetail.tsx:253 +#: src/tables/part/PartPurchaseOrdersTable.tsx:31 +#: src/tables/stock/StockItemTable.tsx:222 +#: src/tables/stock/StockTrackingTable.tsx:111 msgid "Purchase Order" msgstr "" -#: src/components/render/ModelType.tsx:139 -#: src/pages/Index/Settings/SystemSettings.tsx:255 +#: src/components/render/ModelType.tsx:162 +#: src/pages/Index/Settings/SystemSettings.tsx:249 #: src/pages/company/CompanyDetail.tsx:196 -#: src/pages/company/SupplierPartDetail.tsx:237 -#: src/pages/part/PartDetail.tsx:662 +#: src/pages/company/SupplierPartDetail.tsx:249 +#: src/pages/part/PartDetail.tsx:683 #: src/pages/purchasing/PurchasingIndex.tsx:25 msgid "Purchase Orders" msgstr "" -#: src/components/render/ModelType.tsx:147 +#: src/components/render/ModelType.tsx:171 msgid "Purchase Order Line" msgstr "" -#: src/components/render/ModelType.tsx:148 +#: src/components/render/ModelType.tsx:172 msgid "Purchase Order Lines" msgstr "" -#: src/components/render/ModelType.tsx:152 -#: src/pages/build/BuildDetail.tsx:153 -#: src/pages/sales/SalesOrderDetail.tsx:520 -#: src/pages/stock/StockDetail.tsx:221 -#: src/tables/sales/SalesOrderAllocationTable.tsx:50 -#: src/tables/stock/StockTrackingTable.tsx:118 +#: src/components/render/ModelType.tsx:177 +#: src/pages/build/BuildDetail.tsx:148 +#: src/pages/part/pricing/SaleHistoryPanel.tsx:24 +#: src/pages/sales/SalesOrderDetail.tsx:515 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:92 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:341 +#: src/pages/stock/StockDetail.tsx:262 +#: src/tables/sales/SalesOrderAllocationTable.tsx:80 +#: src/tables/stock/StockTrackingTable.tsx:122 msgid "Sales Order" msgstr "" -#: src/components/render/ModelType.tsx:153 -#: src/pages/Index/Settings/SystemSettings.tsx:270 +#: src/components/render/ModelType.tsx:178 +#: src/pages/Index/Settings/SystemSettings.tsx:264 #: src/pages/company/CompanyDetail.tsx:216 -#: src/pages/part/PartDetail.tsx:669 +#: src/pages/part/PartDetail.tsx:695 #: src/pages/sales/SalesIndex.tsx:26 msgid "Sales Orders" msgstr "" -#: src/components/render/ModelType.tsx:161 +#: src/components/render/ModelType.tsx:187 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:340 msgid "Sales Order Shipment" msgstr "" -#: src/components/render/ModelType.tsx:162 +#: src/components/render/ModelType.tsx:188 msgid "Sales Order Shipments" msgstr "" -#: src/components/render/ModelType.tsx:168 -#: src/pages/sales/ReturnOrderDetail.tsx:469 -#: src/tables/stock/StockTrackingTable.tsx:129 +#: src/components/render/ModelType.tsx:195 +#: src/pages/sales/ReturnOrderDetail.tsx:464 +#: src/tables/stock/StockTrackingTable.tsx:133 msgid "Return Order" msgstr "" -#: src/components/render/ModelType.tsx:169 -#: src/pages/Index/Settings/SystemSettings.tsx:286 +#: src/components/render/ModelType.tsx:196 +#: src/pages/Index/Settings/SystemSettings.tsx:280 #: src/pages/company/CompanyDetail.tsx:223 +#: src/pages/part/PartDetail.tsx:702 #: src/pages/sales/SalesIndex.tsx:32 msgid "Return Orders" msgstr "" -#: src/components/render/ModelType.tsx:177 +#: src/components/render/ModelType.tsx:205 msgid "Return Order Line Item" msgstr "" -#: src/components/render/ModelType.tsx:178 +#: src/components/render/ModelType.tsx:206 msgid "Return Order Line Items" msgstr "" -#: src/components/render/ModelType.tsx:182 -#: src/tables/company/AddressTable.tsx:47 +#: src/components/render/ModelType.tsx:211 +#: src/tables/company/AddressTable.tsx:48 msgid "Address" msgstr "" -#: src/components/render/ModelType.tsx:183 -#: src/pages/company/CompanyDetail.tsx:253 +#: src/components/render/ModelType.tsx:212 +#: src/pages/company/CompanyDetail.tsx:255 msgid "Addresses" msgstr "" -#: src/components/render/ModelType.tsx:189 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:195 -#: src/pages/sales/ReturnOrderDetail.tsx:174 -#: src/pages/sales/SalesOrderDetail.tsx:183 +#: src/components/render/ModelType.tsx:219 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:196 +#: src/pages/sales/ReturnOrderDetail.tsx:166 +#: src/pages/sales/SalesOrderDetail.tsx:178 msgid "Contact" msgstr "" -#: src/components/render/ModelType.tsx:190 -#: src/pages/company/CompanyDetail.tsx:247 +#: src/components/render/ModelType.tsx:220 +#: src/pages/company/CompanyDetail.tsx:249 msgid "Contacts" msgstr "" -#: src/components/render/ModelType.tsx:196 +#: src/components/render/ModelType.tsx:227 msgid "Owner" msgstr "" -#: src/components/render/ModelType.tsx:197 +#: src/components/render/ModelType.tsx:228 msgid "Owners" msgstr "" -#: src/components/render/ModelType.tsx:203 -#: src/tables/settings/ImportSessionTable.tsx:121 -#: src/tables/stock/StockItemTestResultTable.tsx:198 -#: src/tables/stock/StockTrackingTable.tsx:195 +#: src/components/render/ModelType.tsx:234 +#~ msgid "Purchase Order Line Item" +#~ msgstr "Purchase Order Line Item" + +#: src/components/render/ModelType.tsx:235 +#: src/tables/settings/BarcodeScanHistoryTable.tsx:80 +#: src/tables/settings/BarcodeScanHistoryTable.tsx:211 +#: src/tables/settings/ImportSessionTable.tsx:120 +#: src/tables/settings/StocktakeReportTable.tsx:44 +#: src/tables/stock/StockItemTestResultTable.tsx:204 +#: src/tables/stock/StockTrackingTable.tsx:181 +#: src/tables/stock/StockTrackingTable.tsx:210 msgid "User" msgstr "" -#: src/components/render/ModelType.tsx:204 -#: src/pages/Index/Settings/AdminCenter/Index.tsx:98 +#: src/components/render/ModelType.tsx:236 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:109 #: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:13 msgid "Users" msgstr "" -#: src/components/render/ModelType.tsx:210 +#: src/components/render/ModelType.tsx:243 msgid "Group" msgstr "" -#: src/components/render/ModelType.tsx:211 +#: src/components/render/ModelType.tsx:244 #: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:20 -#: src/tables/settings/UserTable.tsx:138 -#: src/tables/settings/UserTable.tsx:201 +#: src/tables/settings/UserTable.tsx:137 +#: src/tables/settings/UserTable.tsx:200 msgid "Groups" msgstr "" -#: src/components/render/ModelType.tsx:218 +#: src/components/render/ModelType.tsx:252 msgid "Import Session" msgstr "" -#: src/components/render/ModelType.tsx:219 +#: src/components/render/ModelType.tsx:253 msgid "Import Sessions" msgstr "" -#: src/components/render/ModelType.tsx:225 +#: src/components/render/ModelType.tsx:260 msgid "Label Template" msgstr "" -#: src/components/render/ModelType.tsx:226 -#: src/pages/Index/Settings/AdminCenter/Index.tsx:158 +#: src/components/render/ModelType.tsx:261 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:187 msgid "Label Templates" msgstr "" -#: src/components/render/ModelType.tsx:232 +#: src/components/render/ModelType.tsx:264 +#~ msgid "Unknown Model" +#~ msgstr "Unknown Model" + +#: src/components/render/ModelType.tsx:268 msgid "Report Template" msgstr "" -#: src/components/render/ModelType.tsx:233 -#: src/pages/Index/Settings/AdminCenter/Index.tsx:164 +#: src/components/render/ModelType.tsx:269 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:193 msgid "Report Templates" msgstr "" -#: src/components/render/ModelType.tsx:239 -msgid "Plugin Configuration" -msgstr "" - -#: src/components/render/ModelType.tsx:240 +#: src/components/render/ModelType.tsx:277 msgid "Plugin Configurations" msgstr "" +#: src/components/render/ModelType.tsx:284 +msgid "Content Type" +msgstr "" + +#: src/components/render/ModelType.tsx:285 +msgid "Content Types" +msgstr "" + +#: src/components/render/ModelType.tsx:291 +#: src/tables/machine/MachineListTable.tsx:351 +#: src/tables/machine/MachineTypeTable.tsx:282 +msgid "Errors" +msgstr "" + +#: src/components/render/ModelType.tsx:307 +#~ msgid "Purchase Order Line Items" +#~ msgstr "Purchase Order Line Items" + +#: src/components/render/ModelType.tsx:337 +#~ msgid "Unknown Models" +#~ msgstr "Unknown Models" + #: src/components/render/Order.tsx:121 +#: src/tables/sales/SalesOrderAllocationTable.tsx:136 msgid "Shipment" msgstr "" #: src/components/render/Part.tsx:25 #: src/components/render/Plugin.tsx:17 -#: src/pages/company/CompanyDetail.tsx:325 -#: src/pages/company/SupplierPartDetail.tsx:360 -#: src/pages/part/PartDetail.tsx:879 +#: src/pages/company/CompanyDetail.tsx:307 +#: src/pages/company/SupplierPartDetail.tsx:349 +#: src/pages/part/PartDetail.tsx:911 msgid "Inactive" msgstr "" @@ -1736,39 +2335,38 @@ msgstr "" msgid "No stock" msgstr "" -#: src/components/render/Part.tsx:30 -#: src/defaults/links.tsx:30 -#: src/defaults/menuItems.tsx:38 -#: src/pages/Index/Settings/SystemSettings.tsx:206 -#: src/pages/part/PartDetail.tsx:543 -#: src/pages/stock/LocationDetail.tsx:367 -#: src/pages/stock/StockDetail.tsx:411 -#: src/tables/stock/StockItemTable.tsx:68 -msgid "Stock" -msgstr "" - -#: src/components/render/Stock.tsx:60 -#: src/pages/stock/StockDetail.tsx:150 -#: src/pages/stock/StockDetail.tsx:581 -#: src/tables/build/BuildAllocatedStockTable.tsx:102 -#: src/tables/sales/SalesOrderAllocationTable.tsx:80 +#: src/components/render/Stock.tsx:61 +#: src/forms/ReturnOrderForms.tsx:190 +#: src/pages/stock/StockDetail.tsx:166 +#: src/pages/stock/StockDetail.tsx:771 +#: src/tables/build/BuildAllocatedStockTable.tsx:123 +#: src/tables/build/BuildOutputTable.tsx:81 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:114 +#: src/tables/sales/SalesOrderAllocationTable.tsx:106 msgid "Serial Number" msgstr "" -#: src/components/render/Stock.tsx:62 -#: src/forms/BuildForms.tsx:218 -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/pages/part/pricing/BomPricingPanel.tsx:109 +#: src/components/render/Stock.tsx:63 +#: src/forms/BuildForms.tsx:206 +#: src/forms/BuildForms.tsx:515 +#: src/forms/PurchaseOrderForms.tsx:689 +#: src/forms/SalesOrderForms.tsx:248 +#: src/pages/part/PartSchedulingDetail.tsx:80 +#: src/pages/part/PartStocktakeDetail.tsx:60 +#: src/pages/part/PartStocktakeDetail.tsx:234 +#: src/pages/part/PartStocktakeDetail.tsx:252 +#: src/pages/part/pricing/BomPricingPanel.tsx:148 #: src/pages/part/pricing/PriceBreakPanel.tsx:89 -#: src/pages/part/pricing/PriceBreakPanel.tsx:171 -#: src/pages/stock/StockDetail.tsx:145 -#: src/pages/stock/StockDetail.tsx:587 -#: src/tables/build/BuildOrderTestTable.tsx:197 -#: src/tables/part/PartPurchaseOrdersTable.tsx:92 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:143 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:171 +#: src/pages/part/pricing/PriceBreakPanel.tsx:172 +#: src/pages/stock/StockDetail.tsx:161 +#: src/pages/stock/StockDetail.tsx:777 +#: src/tables/build/BuildLineTable.tsx:79 +#: src/tables/build/BuildOrderTestTable.tsx:198 +#: src/tables/part/PartPurchaseOrdersTable.tsx:93 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:146 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:177 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:77 -#: src/tables/stock/StockTrackingTable.tsx:59 +#: src/tables/stock/StockTrackingTable.tsx:63 msgid "Quantity" msgstr "" @@ -1842,10 +2440,6 @@ msgstr "" #~ msgid "Required Part" #~ msgstr "Required Part" -#: src/components/tables/build/BuildLineTable.tsx:152 -#~ msgid "Required Quantity" -#~ msgstr "Required Quantity" - #: src/components/tables/build/BuildOrderTable.tsx:52 #~ msgid "Progress" #~ msgstr "Progress" @@ -2126,14 +2720,6 @@ msgstr "" #~ msgid "user deleted" #~ msgstr "user deleted" -#: src/components/tables/settings/UserTable.tsx:168 -#~ msgid "First Name" -#~ msgstr "First Name" - -#: src/components/tables/settings/UserTable.tsx:173 -#~ msgid "Last Name" -#~ msgstr "Last Name" - #: src/components/tables/stock/StockItemTable.tsx:247 #~ msgid "Test Filter" #~ msgstr "Test Filter" @@ -2146,36 +2732,21 @@ msgstr "" #~ msgid "Stock location updated" #~ msgstr "Stock location updated" -#: src/components/widgets/DisplayWidget.tsx:11 -#: src/pages/Index/Settings/AccountSettings/DisplaySettingsPanel.tsx:17 -msgid "Display Settings" -msgstr "" - -#: src/components/widgets/DisplayWidget.tsx:15 -#: src/pages/Index/Settings/AccountSettings/DisplaySettingsPanel.tsx:23 -msgid "Color Mode" -msgstr "" - -#: src/components/widgets/DisplayWidget.tsx:21 -#: src/pages/Index/Settings/AccountSettings/DisplaySettingsPanel.tsx:33 -msgid "Language" -msgstr "" - #: src/components/widgets/FeedbackWidget.tsx:19 -msgid "Something is new: Platform UI" -msgstr "" +#~ msgid "Something is new: Platform UI" +#~ msgstr "Something is new: Platform UI" #: src/components/widgets/FeedbackWidget.tsx:21 -msgid "We are building a new UI with a modern stack. What you currently see is not fixed and will be redesigned but demonstrates the UI/UX possibilities we will have going forward." -msgstr "" +#~ msgid "We are building a new UI with a modern stack. What you currently see is not fixed and will be redesigned but demonstrates the UI/UX possibilities we will have going forward." +#~ msgstr "We are building a new UI with a modern stack. What you currently see is not fixed and will be redesigned but demonstrates the UI/UX possibilities we will have going forward." #: src/components/widgets/FeedbackWidget.tsx:32 -msgid "Provide Feedback" -msgstr "" +#~ msgid "Provide Feedback" +#~ msgstr "Provide Feedback" #: src/components/widgets/GetStartedWidget.tsx:11 -msgid "Getting started" -msgstr "" +#~ msgid "Getting started" +#~ msgstr "Getting started" #: src/components/widgets/MarkdownEditor.tsx:108 #~ msgid "Failed to upload image" @@ -2186,28 +2757,24 @@ msgstr "" #~ msgstr "Notes saved" #: src/components/widgets/WidgetLayout.tsx:166 -msgid "Layout" -msgstr "" +#~ msgid "Layout" +#~ msgstr "Layout" #: src/components/widgets/WidgetLayout.tsx:172 -msgid "Reset Layout" -msgstr "" +#~ msgid "Reset Layout" +#~ msgstr "Reset Layout" #: src/components/widgets/WidgetLayout.tsx:185 -msgid "Stop Edit" -msgstr "" - -#: src/components/widgets/WidgetLayout.tsx:185 -msgid "Edit Layout" -msgstr "" +#~ msgid "Stop Edit" +#~ msgstr "Stop Edit" #: src/components/widgets/WidgetLayout.tsx:191 -msgid "Appearance" -msgstr "" +#~ msgid "Appearance" +#~ msgstr "Appearance" #: src/components/widgets/WidgetLayout.tsx:203 -msgid "Show Boxes" -msgstr "" +#~ msgid "Show Boxes" +#~ msgstr "Show Boxes" #: src/contexts/LanguageContext.tsx:20 msgid "Arabic" @@ -2286,201 +2853,175 @@ msgid "Korean" msgstr "" #: src/contexts/LanguageContext.tsx:39 -msgid "Latvian" +msgid "Lithuanian" msgstr "" #: src/contexts/LanguageContext.tsx:40 -msgid "Dutch" +msgid "Latvian" msgstr "" #: src/contexts/LanguageContext.tsx:41 -msgid "Norwegian" +msgid "Dutch" msgstr "" #: src/contexts/LanguageContext.tsx:42 -msgid "Polish" +msgid "Norwegian" msgstr "" #: src/contexts/LanguageContext.tsx:43 -msgid "Portuguese" +msgid "Polish" msgstr "" #: src/contexts/LanguageContext.tsx:44 -msgid "Portuguese (Brazilian)" +msgid "Portuguese" msgstr "" #: src/contexts/LanguageContext.tsx:45 -msgid "Romanian" +msgid "Portuguese (Brazilian)" msgstr "" #: src/contexts/LanguageContext.tsx:46 -msgid "Russian" +msgid "Romanian" msgstr "" #: src/contexts/LanguageContext.tsx:47 -msgid "Slovak" +msgid "Russian" msgstr "" #: src/contexts/LanguageContext.tsx:48 -msgid "Slovenian" +msgid "Slovak" msgstr "" #: src/contexts/LanguageContext.tsx:49 -msgid "Swedish" +msgid "Slovenian" msgstr "" #: src/contexts/LanguageContext.tsx:50 -msgid "Thai" +msgid "Swedish" msgstr "" #: src/contexts/LanguageContext.tsx:51 -msgid "Turkish" +msgid "Thai" msgstr "" #: src/contexts/LanguageContext.tsx:52 -msgid "Ukrainian" +msgid "Turkish" msgstr "" #: src/contexts/LanguageContext.tsx:53 -msgid "Vietnamese" +msgid "Ukrainian" msgstr "" #: src/contexts/LanguageContext.tsx:54 -msgid "Chinese (Simplified)" +msgid "Vietnamese" msgstr "" #: src/contexts/LanguageContext.tsx:55 +msgid "Chinese (Simplified)" +msgstr "" + +#: src/contexts/LanguageContext.tsx:56 msgid "Chinese (Traditional)" msgstr "" +#: src/defaults/actions.tsx:18 +msgid "Go to the InvenTree dashboard" +msgstr "" + #: src/defaults/actions.tsx:18 #: src/defaults/links.tsx:27 #: src/defaults/menuItems.tsx:9 -msgid "Home" -msgstr "" +#~ msgid "Home" +#~ msgstr "Home" #: src/defaults/actions.tsx:25 -#: src/defaults/links.tsx:28 -#: src/defaults/menuItems.tsx:28 -#: src/pages/Index/Dashboard.tsx:19 -#: src/pages/Index/Settings/UserSettings.tsx:46 -msgid "Dashboard" -msgstr "" - -#: src/defaults/actions.tsx:26 -msgid "Go to the InvenTree dashboard" -msgstr "" - -#: src/defaults/actions.tsx:33 msgid "Visit the documentation to learn more about InvenTree" msgstr "" -#: src/defaults/actions.tsx:39 -#: src/defaults/links.tsx:98 -#: src/defaults/links.tsx:128 +#: src/defaults/actions.tsx:31 +#: src/defaults/links.tsx:92 +#: src/defaults/links.tsx:124 msgid "About InvenTree" msgstr "" -#: src/defaults/actions.tsx:40 -#: src/defaults/links.tsx:129 +#: src/defaults/actions.tsx:32 msgid "About the InvenTree org" msgstr "" -#: src/defaults/actions.tsx:46 +#: src/defaults/actions.tsx:38 msgid "Server Information" msgstr "" -#: src/defaults/actions.tsx:47 -#: src/defaults/links.tsx:123 +#: src/defaults/actions.tsx:39 +#: src/defaults/links.tsx:118 msgid "About this Inventree instance" msgstr "" -#: src/defaults/actions.tsx:53 -#: src/defaults/links.tsx:111 +#: src/defaults/actions.tsx:45 +#: src/defaults/links.tsx:105 +#: src/defaults/links.tsx:131 msgid "License Information" msgstr "" -#: src/defaults/actions.tsx:54 -#: src/defaults/links.tsx:135 +#: src/defaults/actions.tsx:46 msgid "Licenses for dependencies of the service" msgstr "" -#: src/defaults/actions.tsx:61 +#: src/defaults/actions.tsx:52 +msgid "Open Navigation" +msgstr "" + +#: src/defaults/actions.tsx:53 msgid "Open the main navigation menu" msgstr "" -#: src/defaults/actions.tsx:72 +#: src/defaults/actions.tsx:64 msgid "Go to the Admin Center" msgstr "" -#: src/defaults/dashboardItems.tsx:15 -msgid "Subscribed Parts" -msgstr "" - -#: src/defaults/dashboardItems.tsx:22 -msgid "Subscribed Categories" -msgstr "" - #: src/defaults/dashboardItems.tsx:29 -msgid "Latest Parts" -msgstr "" +#~ msgid "Latest Parts" +#~ msgstr "Latest Parts" #: src/defaults/dashboardItems.tsx:36 -msgid "BOM Waiting Validation" -msgstr "" +#~ msgid "BOM Waiting Validation" +#~ msgstr "BOM Waiting Validation" #: src/defaults/dashboardItems.tsx:43 -msgid "Recently Updated" -msgstr "" - -#: src/defaults/dashboardItems.tsx:50 -#: src/tables/part/PartTable.tsx:238 -msgid "Low Stock" -msgstr "" +#~ msgid "Recently Updated" +#~ msgstr "Recently Updated" #: src/defaults/dashboardItems.tsx:57 -msgid "Depleted Stock" -msgstr "" +#~ msgid "Depleted Stock" +#~ msgstr "Depleted Stock" #: src/defaults/dashboardItems.tsx:64 -msgid "Required for Build Orders" -msgstr "" +#~ msgid "Required for Build Orders" +#~ msgstr "Required for Build Orders" #: src/defaults/dashboardItems.tsx:71 -msgid "Expired Stock" -msgstr "" +#~ msgid "Expired Stock" +#~ msgstr "Expired Stock" #: src/defaults/dashboardItems.tsx:78 -msgid "Stale Stock" -msgstr "" +#~ msgid "Stale Stock" +#~ msgstr "Stale Stock" #: src/defaults/dashboardItems.tsx:85 -msgid "Build Orders In Progress" -msgstr "" - -#: src/defaults/dashboardItems.tsx:92 -msgid "Overdue Build Orders" -msgstr "" +#~ msgid "Build Orders In Progress" +#~ msgstr "Build Orders In Progress" #: src/defaults/dashboardItems.tsx:99 -msgid "Outstanding Purchase Orders" -msgstr "" - -#: src/defaults/dashboardItems.tsx:106 -msgid "Overdue Purchase Orders" -msgstr "" +#~ msgid "Outstanding Purchase Orders" +#~ msgstr "Outstanding Purchase Orders" #: src/defaults/dashboardItems.tsx:113 -msgid "Outstanding Sales Orders" -msgstr "" - -#: src/defaults/dashboardItems.tsx:120 -msgid "Overdue Sales Orders" -msgstr "" +#~ msgid "Outstanding Sales Orders" +#~ msgstr "Outstanding Sales Orders" #: src/defaults/dashboardItems.tsx:127 -msgid "Current News" -msgstr "" +#~ msgid "Current News" +#~ msgstr "Current News" #: src/defaults/defaultHostList.tsx:8 #~ msgid "InvenTree Demo" @@ -2490,98 +3031,81 @@ msgstr "" #~ msgid "Local Server" #~ msgstr "Local Server" -#: src/defaults/links.tsx:12 -#: src/pages/company/CompanyDetail.tsx:96 -msgid "Website" -msgstr "" - #: src/defaults/links.tsx:17 -msgid "GitHub" -msgstr "" +#~ msgid "GitHub" +#~ msgstr "GitHub" #: src/defaults/links.tsx:22 -msgid "Demo" -msgstr "" - -#: src/defaults/links.tsx:33 -#: src/defaults/menuItems.tsx:48 -#: src/pages/company/ManufacturerDetail.tsx:9 -#: src/pages/company/ManufacturerPartDetail.tsx:263 -#: src/pages/company/SupplierDetail.tsx:9 -#: src/pages/company/SupplierPartDetail.tsx:347 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:483 -#: src/pages/purchasing/PurchasingIndex.tsx:60 -msgid "Purchasing" -msgstr "" - -#: src/defaults/links.tsx:37 -#: src/defaults/menuItems.tsx:53 -#: src/pages/company/CustomerDetail.tsx:9 -#: src/pages/sales/ReturnOrderDetail.tsx:474 -#: src/pages/sales/SalesIndex.tsx:53 -#: src/pages/sales/SalesOrderDetail.tsx:525 -msgid "Sales" -msgstr "" +#~ msgid "Demo" +#~ msgstr "Demo" #: src/defaults/links.tsx:41 #: src/defaults/menuItems.tsx:71 #: src/pages/Index/Playground.tsx:217 -msgid "Playground" -msgstr "" +#~ msgid "Playground" +#~ msgstr "Playground" -#: src/defaults/links.tsx:55 -msgid "Getting Started" -msgstr "" - -#: src/defaults/links.tsx:56 -msgid "Getting started with InvenTree" -msgstr "" - -#: src/defaults/links.tsx:62 +#: src/defaults/links.tsx:45 msgid "API" msgstr "" -#: src/defaults/links.tsx:63 +#: src/defaults/links.tsx:48 msgid "InvenTree API documentation" msgstr "" -#: src/defaults/links.tsx:68 +#: src/defaults/links.tsx:52 msgid "Developer Manual" msgstr "" -#: src/defaults/links.tsx:69 +#: src/defaults/links.tsx:55 msgid "InvenTree developer manual" msgstr "" -#: src/defaults/links.tsx:74 +#: src/defaults/links.tsx:59 msgid "FAQ" msgstr "" -#: src/defaults/links.tsx:75 +#: src/defaults/links.tsx:62 msgid "Frequently asked questions" msgstr "" +#: src/defaults/links.tsx:66 +msgid "GitHub Repository" +msgstr "" + +#: src/defaults/links.tsx:69 +msgid "InvenTree source code on GitHub" +msgstr "" + #: src/defaults/links.tsx:76 #~ msgid "Instance" #~ msgstr "Instance" +#: src/defaults/links.tsx:79 +#: src/defaults/links.tsx:117 +msgid "System Information" +msgstr "" + #: src/defaults/links.tsx:83 #~ msgid "InvenTree" #~ msgstr "InvenTree" -#: src/defaults/links.tsx:85 -#: src/defaults/links.tsx:122 -msgid "System Information" -msgstr "" - #: src/defaults/links.tsx:117 #~ msgid "Licenses for packages used by InvenTree" #~ msgstr "Licenses for packages used by InvenTree" -#: src/defaults/links.tsx:134 -msgid "Licenses" +#: src/defaults/links.tsx:125 +msgid "About the InvenTree Project" msgstr "" +#: src/defaults/links.tsx:132 +msgid "Licenses for dependencies of the InvenTree software" +msgstr "" + +#: src/defaults/links.tsx:134 +#~ msgid "Licenses" +#~ msgstr "Licenses" + #: src/defaults/menuItems.tsx:7 #~ msgid "Open sourcea" #~ msgstr "Open sourcea" @@ -2607,8 +3131,8 @@ msgstr "" #~ msgstr "Profile page" #: src/defaults/menuItems.tsx:17 -msgid "User attributes and design settings." -msgstr "" +#~ msgid "User attributes and design settings." +#~ msgstr "User attributes and design settings." #: src/defaults/menuItems.tsx:21 #~ msgid "Free for everyone" @@ -2619,8 +3143,8 @@ msgstr "" #~ msgstr "The fluid of Smeargle’s tail secretions changes" #: src/defaults/menuItems.tsx:23 -msgid "View for interactive scanning and multiple actions." -msgstr "" +#~ msgid "View for interactive scanning and multiple actions." +#~ msgstr "View for interactive scanning and multiple actions." #: src/defaults/menuItems.tsx:24 #~ msgid "The fluid of Smeargle’s tail secretions changes in the intensity" @@ -2698,51 +3222,130 @@ msgstr "" #~ msgid "Are you sure you want to delete this attachment?" #~ msgstr "Are you sure you want to delete this attachment?" -#: src/forms/BuildForms.tsx:158 -msgid "Next serial number" +#: src/forms/BuildForms.tsx:248 +#~ msgid "Remove output" +#~ msgstr "Remove output" + +#: src/forms/BuildForms.tsx:269 +#: src/tables/build/BuildAllocatedStockTable.tsx:147 +#: src/tables/build/BuildOrderTestTable.tsx:177 +#: src/tables/build/BuildOrderTestTable.tsx:201 +#: src/tables/build/BuildOutputTable.tsx:460 +msgid "Build Output" msgstr "" -#: src/forms/BuildForms.tsx:162 -msgid "Latest serial number" +#: src/forms/BuildForms.tsx:269 +#: src/forms/BuildForms.tsx:337 +#: src/forms/BuildForms.tsx:385 +#: src/tables/build/BuildLineTable.tsx:89 +msgid "Batch" msgstr "" -#: src/forms/BuildForms.tsx:234 -msgid "Remove output" +#: src/forms/BuildForms.tsx:269 +#: src/forms/BuildForms.tsx:337 +#: src/forms/BuildForms.tsx:385 +#: src/forms/PurchaseOrderForms.tsx:603 +#: src/pages/build/BuildDetail.tsx:104 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:142 +#: src/pages/sales/ReturnOrderDetail.tsx:113 +#: src/pages/sales/SalesOrderDetail.tsx:122 +#: src/tables/build/BuildOrderTable.tsx:125 +#: src/tables/machine/MachineListTable.tsx:336 +#: src/tables/part/PartPurchaseOrdersTable.tsx:37 +#: src/tables/purchasing/PurchaseOrderTable.tsx:58 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:157 +#: src/tables/sales/ReturnOrderTable.tsx:56 +#: src/tables/sales/SalesOrderTable.tsx:56 +#: src/tables/settings/CustomStateTable.tsx:57 +#: src/tables/settings/ImportSessionTable.tsx:114 +#: src/tables/stock/StockItemTable.tsx:298 +#: src/tables/stock/StockTrackingTable.tsx:56 +msgid "Status" msgstr "" -#: src/forms/BuildForms.tsx:316 +#: src/forms/BuildForms.tsx:289 msgid "Complete Build Outputs" msgstr "" -#: src/forms/BuildForms.tsx:320 +#: src/forms/BuildForms.tsx:292 msgid "Build outputs have been completed" msgstr "" -#: src/forms/BuildForms.tsx:389 +#: src/forms/BuildForms.tsx:353 msgid "Scrap Build Outputs" msgstr "" -#: src/forms/BuildForms.tsx:393 +#: src/forms/BuildForms.tsx:356 msgid "Build outputs have been scrapped" msgstr "" -#: src/forms/BuildForms.tsx:425 -#: src/forms/BuildForms.tsx:449 +#: src/forms/BuildForms.tsx:393 msgid "Cancel Build Outputs" msgstr "" -#: src/forms/BuildForms.tsx:426 -msgid "Selected build outputs will be deleted" -msgstr "" - -#: src/forms/BuildForms.tsx:453 +#: src/forms/BuildForms.tsx:396 msgid "Build outputs have been cancelled" msgstr "" +#: src/forms/BuildForms.tsx:408 +#~ msgid "Selected build outputs will be deleted" +#~ msgstr "Selected build outputs will be deleted" + +#: src/forms/BuildForms.tsx:470 +#~ msgid "Remove line" +#~ msgstr "Remove line" + +#: src/forms/BuildForms.tsx:515 +#: src/forms/SalesOrderForms.tsx:248 +#: src/tables/build/BuildLineTable.tsx:174 +#: src/tables/sales/SalesOrderLineItemTable.tsx:276 +#: src/tables/stock/StockItemTable.tsx:309 +msgid "Allocated" +msgstr "" + +#: src/forms/BuildForms.tsx:545 +#: src/forms/SalesOrderForms.tsx:239 +#: src/pages/build/BuildDetail.tsx:208 +msgid "Source Location" +msgstr "" + +#: src/forms/BuildForms.tsx:546 +#: src/forms/SalesOrderForms.tsx:240 +msgid "Select the source location for the stock allocation" +msgstr "اختر موقع المصدر لتخصيص المخزون" + +#: src/forms/BuildForms.tsx:566 +#: src/forms/SalesOrderForms.tsx:274 +#: src/tables/build/BuildLineTable.tsx:442 +#: src/tables/build/BuildLineTable.tsx:569 +#: src/tables/build/BuildLineTable.tsx:642 +#: src/tables/sales/SalesOrderLineItemTable.tsx:302 +#: src/tables/sales/SalesOrderLineItemTable.tsx:326 +msgid "Allocate Stock" +msgstr "" + +#: src/forms/BuildForms.tsx:569 +#: src/forms/SalesOrderForms.tsx:279 +msgid "Stock items allocated" +msgstr "تم تخصيص عناصر المخزون" + #: src/forms/CompanyForms.tsx:150 #~ msgid "Company updated" #~ msgstr "Company updated" +#: src/forms/PartForms.tsx:67 +#: src/forms/PartForms.tsx:154 +#: src/pages/part/CategoryDetail.tsx:117 +#: src/pages/part/PartDetail.tsx:384 +#: src/tables/part/PartCategoryTable.tsx:90 +#: src/tables/part/PartTable.tsx:294 +msgid "Subscribed" +msgstr "" + +#: src/forms/PartForms.tsx:68 +msgid "Subscribe to notifications for this part" +msgstr "" + #: src/forms/PartForms.tsx:106 #~ msgid "Create Part" #~ msgstr "Create Part" @@ -2751,191 +3354,190 @@ msgstr "" #~ msgid "Part created" #~ msgstr "Part created" -#: src/forms/PartForms.tsx:124 -msgid "Parent part category" -msgstr "" - #: src/forms/PartForms.tsx:129 #~ msgid "Part updated" #~ msgstr "Part updated" -#: src/forms/PurchaseOrderForms.tsx:300 +#: src/forms/PartForms.tsx:140 +msgid "Parent part category" +msgstr "" + +#: src/forms/PartForms.tsx:155 +msgid "Subscribe to notifications for this category" +msgstr "" + +#: src/forms/PurchaseOrderForms.tsx:314 +msgid "Assign Batch Code and Serial Numbers" +msgstr "" + +#: src/forms/PurchaseOrderForms.tsx:316 +msgid "Assign Batch Code" +msgstr "" + +#: src/forms/PurchaseOrderForms.tsx:336 msgid "Choose Location" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:308 +#: src/forms/PurchaseOrderForms.tsx:344 msgid "Item Destination selected" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:317 +#: src/forms/PurchaseOrderForms.tsx:353 msgid "Part category default location selected" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:327 +#: src/forms/PurchaseOrderForms.tsx:363 msgid "Received stock location selected" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:332 +#: src/forms/PurchaseOrderForms.tsx:368 msgid "Default location selected" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:343 -#: src/forms/PurchaseOrderForms.tsx:435 -msgid "Scan Barcode" -msgstr "" +#: src/forms/PurchaseOrderForms.tsx:421 +#~ msgid "Assign Batch Code{0}" +#~ msgstr "Assign Batch Code{0}" -#: src/forms/PurchaseOrderForms.tsx:388 +#: src/forms/PurchaseOrderForms.tsx:427 msgid "Set Location" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:396 -msgid "Assign Batch Code{0}" -msgstr "" - -#: src/forms/PurchaseOrderForms.tsx:405 -#: src/forms/StockForms.tsx:420 +#: src/forms/PurchaseOrderForms.tsx:442 +#: src/forms/StockForms.tsx:539 msgid "Adjust Packaging" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:412 -msgid "Change Status" -msgstr "" - -#: src/forms/PurchaseOrderForms.tsx:418 -msgid "Add Note" -msgstr "" - #: src/forms/PurchaseOrderForms.tsx:444 #: src/forms/StockForms.tsx:428 -msgid "Remove item from list" +#~ msgid "Remove item from list" +#~ msgstr "Remove item from list" + +#: src/forms/PurchaseOrderForms.tsx:450 +msgid "Change Status" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:471 -#: src/forms/StockForms.tsx:499 -#: src/forms/StockForms.tsx:533 -#: src/forms/StockForms.tsx:562 -#: src/forms/StockForms.tsx:590 -#: src/forms/StockForms.tsx:621 -#: src/forms/StockForms.tsx:656 -#: src/forms/StockForms.tsx:698 -#: src/forms/StockForms.tsx:734 -#: src/pages/stock/StockDetail.tsx:181 -#: src/tables/ColumnRenderers.tsx:49 -#: src/tables/stock/StockTrackingTable.tsx:85 +#: src/forms/PurchaseOrderForms.tsx:456 +msgid "Add Note" +msgstr "" + +#: src/forms/PurchaseOrderForms.tsx:503 +#: src/forms/StockForms.tsx:614 +#: src/forms/StockForms.tsx:651 +#: src/forms/StockForms.tsx:677 +#: src/forms/StockForms.tsx:705 +#: src/forms/StockForms.tsx:736 +#: src/forms/StockForms.tsx:771 +#: src/forms/StockForms.tsx:813 +#: src/forms/StockForms.tsx:851 +#: src/pages/stock/StockDetail.tsx:202 +#: src/tables/ColumnRenderers.tsx:60 +#: src/tables/stock/StockTrackingTable.tsx:89 msgid "Location" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:486 +#: src/forms/PurchaseOrderForms.tsx:518 msgid "Store at default location" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:499 +#: src/forms/PurchaseOrderForms.tsx:533 msgid "Store at line item destination" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:509 +#: src/forms/PurchaseOrderForms.tsx:545 msgid "Store with already received stock" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:524 -#: src/pages/build/BuildDetail.tsx:219 -#: src/pages/stock/StockDetail.tsx:162 -#: src/pages/stock/StockDetail.tsx:599 -#: src/tables/build/BuildAllocatedStockTable.tsx:109 -#: src/tables/build/BuildOrderTestTable.tsx:188 -#: src/tables/sales/SalesOrderAllocationTable.tsx:87 +#: src/forms/PurchaseOrderForms.tsx:566 +#: src/pages/build/BuildDetail.tsx:222 +#: src/pages/stock/StockDetail.tsx:185 +#: src/pages/stock/StockDetail.tsx:793 +#: src/tables/build/BuildAllocatedStockTable.tsx:130 +#: src/tables/build/BuildOrderTestTable.tsx:189 +#: src/tables/build/BuildOutputTable.tsx:86 +#: src/tables/sales/SalesOrderAllocationTable.tsx:113 msgid "Batch Code" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:535 -msgid "Serial numbers" +#: src/forms/PurchaseOrderForms.tsx:566 +#~ msgid "Serial numbers" +#~ msgstr "Serial numbers" + +#: src/forms/PurchaseOrderForms.tsx:567 +msgid "Enter batch code for received items" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:544 -#: src/forms/StockForms.tsx:443 -#: src/pages/company/SupplierPartDetail.tsx:156 -#: src/pages/company/SupplierPartDetail.tsx:207 -#: src/pages/stock/StockDetail.tsx:244 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:192 +#: src/forms/PurchaseOrderForms.tsx:579 +#: src/forms/StockForms.tsx:152 +msgid "Serial Numbers" +msgstr "" + +#: src/forms/PurchaseOrderForms.tsx:580 +msgid "Enter serial numbers for received items" +msgstr "" + +#: src/forms/PurchaseOrderForms.tsx:590 +#: src/forms/StockForms.tsx:556 +#: src/pages/company/SupplierPartDetail.tsx:168 +#: src/pages/company/SupplierPartDetail.tsx:219 +#: src/pages/stock/StockDetail.tsx:320 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:198 msgid "Packaging" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:556 -#: src/pages/build/BuildDetail.tsx:109 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:148 -#: src/pages/sales/ReturnOrderDetail.tsx:121 -#: src/pages/sales/SalesOrderDetail.tsx:127 -#: src/tables/build/BuildOrderTable.tsx:122 -#: src/tables/machine/MachineListTable.tsx:335 -#: src/tables/part/PartPurchaseOrdersTable.tsx:37 -#: src/tables/purchasing/PurchaseOrderTable.tsx:55 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:132 -#: src/tables/sales/ReturnOrderTable.tsx:46 -#: src/tables/sales/SalesOrderTable.tsx:53 -#: src/tables/settings/ImportSessionTable.tsx:115 -#: src/tables/stock/StockItemTable.tsx:294 -#: src/tables/stock/StockTrackingTable.tsx:52 -msgid "Status" -msgstr "" - -#: src/forms/PurchaseOrderForms.tsx:564 -#: src/pages/company/SupplierPartDetail.tsx:110 -#: src/tables/ColumnRenderers.tsx:132 +#: src/forms/PurchaseOrderForms.tsx:612 +#: src/pages/company/SupplierPartDetail.tsx:115 +#: src/tables/ColumnRenderers.tsx:143 msgid "Note" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/pages/company/SupplierPartDetail.tsx:128 -#: src/tables/purchasing/SupplierPriceBreakTable.tsx:57 -msgid "SKU" -msgstr "" - -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/tables/part/PartPurchaseOrdersTable.tsx:120 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:178 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:127 -msgid "Received" -msgstr "" - -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/forms/StockForms.tsx:499 -#: src/forms/StockForms.tsx:533 -#: src/forms/StockForms.tsx:562 -#: src/forms/StockForms.tsx:590 -#: src/forms/StockForms.tsx:621 -#: src/forms/StockForms.tsx:656 -#: src/forms/StockForms.tsx:698 -#: src/forms/StockForms.tsx:734 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:413 -#: src/tables/RowActions.tsx:113 -msgid "Actions" -msgstr "" - -#: src/forms/PurchaseOrderForms.tsx:655 -msgid "Receive Line Items" -msgstr "" - #: src/forms/PurchaseOrderForms.tsx:658 #~ msgid "Receive line items" #~ msgstr "Receive line items" -#: src/forms/StockForms.tsx:104 -msgid "Add given quantity as packs instead of individual items" +#: src/forms/PurchaseOrderForms.tsx:689 +#: src/pages/company/SupplierPartDetail.tsx:133 +#: src/tables/purchasing/SupplierPriceBreakTable.tsx:57 +msgid "SKU" +msgstr "" + +#: src/forms/PurchaseOrderForms.tsx:689 +#: src/tables/part/PartPurchaseOrdersTable.tsx:126 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:184 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:247 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:152 +msgid "Received" +msgstr "" + +#: src/forms/PurchaseOrderForms.tsx:701 +msgid "Receive Line Items" +msgstr "" + +#: src/forms/ReturnOrderForms.tsx:201 +msgid "Receive Items" +msgstr "" + +#: src/forms/ReturnOrderForms.tsx:208 +msgid "Item received into stock" +msgstr "" + +#: src/forms/StockForms.tsx:80 +#: src/hooks/UsePlaceholder.tsx:57 +msgid "Next serial number" msgstr "" #: src/forms/StockForms.tsx:110 #~ msgid "Create Stock Item" #~ msgstr "Create Stock Item" -#: src/forms/StockForms.tsx:117 +#: src/forms/StockForms.tsx:131 +msgid "Add given quantity as packs instead of individual items" +msgstr "" + +#: src/forms/StockForms.tsx:145 msgid "Enter initial quantity for this stock item" msgstr "" -#: src/forms/StockForms.tsx:124 -msgid "Serial Numbers" -msgstr "" - -#: src/forms/StockForms.tsx:125 +#: src/forms/StockForms.tsx:154 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" @@ -2943,82 +3545,102 @@ msgstr "" #~ msgid "Stock item updated" #~ msgstr "Stock item updated" -#: src/forms/StockForms.tsx:179 -#: src/pages/stock/StockDetail.tsx:434 -#: src/tables/stock/StockItemTable.tsx:417 -#: src/tables/stock/StockItemTable.tsx:535 +#: src/forms/StockForms.tsx:169 +#: src/pages/stock/StockDetail.tsx:131 +msgid "Stock Status" +msgstr "" + +#: src/forms/StockForms.tsx:218 +#: src/pages/stock/StockDetail.tsx:554 +#: src/tables/stock/StockItemTable.tsx:421 +#: src/tables/stock/StockItemTable.tsx:541 msgid "Add Stock Item" msgstr "" -#: src/forms/StockForms.tsx:362 +#: src/forms/StockForms.tsx:262 +msgid "Select the part to install" +msgstr "" + +#: src/forms/StockForms.tsx:480 msgid "Loading..." msgstr "" -#: src/forms/StockForms.tsx:408 +#: src/forms/StockForms.tsx:527 msgid "Move to default location" msgstr "" -#: src/forms/StockForms.tsx:499 -#: src/forms/StockForms.tsx:533 -#: src/forms/StockForms.tsx:562 -#: src/forms/StockForms.tsx:590 -#: src/forms/StockForms.tsx:621 -#: src/forms/StockForms.tsx:656 -#: src/forms/StockForms.tsx:698 -#: src/forms/StockForms.tsx:734 -#: src/pages/part/PartDetail.tsx:230 -#: src/pages/part/PartDetail.tsx:843 -#: src/tables/stock/StockItemTable.tsx:325 +#: src/forms/StockForms.tsx:614 +#: src/forms/StockForms.tsx:651 +#: src/forms/StockForms.tsx:677 +#: src/forms/StockForms.tsx:705 +#: src/forms/StockForms.tsx:736 +#: src/forms/StockForms.tsx:771 +#: src/forms/StockForms.tsx:813 +#: src/forms/StockForms.tsx:851 +#: src/pages/part/PartDetail.tsx:251 +#: src/pages/part/PartDetail.tsx:875 +#: src/tables/stock/StockItemTable.tsx:329 msgid "In Stock" msgstr "" -#: src/forms/StockForms.tsx:499 +#: src/forms/StockForms.tsx:614 msgid "Move" msgstr "" -#: src/forms/StockForms.tsx:562 -#: src/pages/stock/StockDetail.tsx:518 -#: src/tables/stock/StockItemTestResultTable.tsx:328 +#: src/forms/StockForms.tsx:677 +#: src/pages/stock/StockDetail.tsx:681 +#: src/tables/stock/StockItemTestResultTable.tsx:346 msgid "Add" msgstr "" -#: src/forms/StockForms.tsx:590 -#: src/pages/Index/Scan.tsx:266 -#: src/pages/stock/StockDetail.tsx:508 +#: src/forms/StockForms.tsx:705 +#: src/pages/Index/Scan.tsx:280 +#: src/pages/stock/StockDetail.tsx:670 msgid "Count" msgstr "" -#: src/forms/StockForms.tsx:835 +#: src/forms/StockForms.tsx:953 +#: src/pages/stock/StockDetail.tsx:682 +#: src/tables/stock/StockItemTable.tsx:454 msgid "Add Stock" msgstr "" -#: src/forms/StockForms.tsx:844 +#: src/forms/StockForms.tsx:962 +#: src/pages/stock/StockDetail.tsx:691 +#: src/tables/stock/StockItemTable.tsx:463 msgid "Remove Stock" msgstr "" -#: src/forms/StockForms.tsx:853 -#: src/pages/part/PartDetail.tsx:1017 +#: src/forms/StockForms.tsx:971 +#: src/pages/part/PartDetail.tsx:1039 +#: src/pages/stock/StockDetail.tsx:712 +#: src/tables/stock/StockItemTable.tsx:483 msgid "Transfer Stock" msgstr "" -#: src/forms/StockForms.tsx:862 -#: src/pages/part/PartDetail.tsx:1006 +#: src/forms/StockForms.tsx:980 +#: src/pages/part/PartDetail.tsx:1028 +#: src/pages/stock/LocationDetail.tsx:314 +#: src/pages/stock/LocationDetail.tsx:318 +#: src/tables/stock/StockItemTable.tsx:472 +#: src/tables/stock/StockItemTable.tsx:476 msgid "Count Stock" msgstr "" -#: src/forms/StockForms.tsx:871 +#: src/forms/StockForms.tsx:989 msgid "Change Stock Status" msgstr "" -#: src/forms/StockForms.tsx:880 +#: src/forms/StockForms.tsx:998 msgid "Merge Stock" msgstr "" -#: src/forms/StockForms.tsx:899 +#: src/forms/StockForms.tsx:1017 +#: src/tables/stock/StockItemTable.tsx:530 msgid "Delete Stock Items" msgstr "" -#: src/forms/StockForms.tsx:906 +#: src/forms/StockForms.tsx:1024 msgid "Parent stock location" msgstr "" @@ -3042,11 +3664,11 @@ msgstr "" #~ msgid "You have been logged out" #~ msgstr "You have been logged out" -#: src/functions/auth.tsx:117 +#: src/functions/auth.tsx:128 msgid "Logged Out" msgstr "" -#: src/functions/auth.tsx:118 +#: src/functions/auth.tsx:129 msgid "Successfully logged out" msgstr "" @@ -3062,20 +3684,20 @@ msgstr "" #~ msgid "Found an existing login - welcome back!" #~ msgstr "Found an existing login - welcome back!" -#: src/functions/auth.tsx:156 +#: src/functions/auth.tsx:167 msgid "Check your inbox for a reset link. This only works if you have an account. Check in spam too." msgstr "" -#: src/functions/auth.tsx:163 +#: src/functions/auth.tsx:174 #: src/pages/Auth/Set-Password.tsx:39 msgid "Reset failed" msgstr "" -#: src/functions/auth.tsx:194 +#: src/functions/auth.tsx:205 msgid "Logged In" msgstr "" -#: src/functions/auth.tsx:195 +#: src/functions/auth.tsx:206 msgid "Successfully logged in" msgstr "" @@ -3095,30 +3717,38 @@ msgstr "" #~ msgid "method parameter not supplied" #~ msgstr "method parameter not supplied" -#: src/functions/notifications.tsx:10 +#: src/functions/notifications.tsx:12 msgid "Not implemented" msgstr "" -#: src/functions/notifications.tsx:11 +#: src/functions/notifications.tsx:13 msgid "This feature is not yet implemented" msgstr "" -#: src/functions/notifications.tsx:21 -msgid "Permission denied" -msgstr "" +#: src/functions/notifications.tsx:24 +#~ msgid "Permission denied" +#~ msgstr "Permission denied" -#: src/functions/notifications.tsx:22 +#: src/functions/notifications.tsx:25 msgid "You do not have permission to perform this action" msgstr "" -#: src/functions/notifications.tsx:33 +#: src/functions/notifications.tsx:36 msgid "Invalid Return Code" msgstr "" -#: src/functions/notifications.tsx:34 +#: src/functions/notifications.tsx:37 msgid "Server returned status {returnCode}" msgstr "" +#: src/functions/notifications.tsx:47 +msgid "Timeout" +msgstr "" + +#: src/functions/notifications.tsx:48 +msgid "The request timed out" +msgstr "" + #: src/hooks/UseForm.tsx:88 msgid "Item Created" msgstr "" @@ -3135,20 +3765,24 @@ msgstr "" msgid "Are you sure you want to delete this item?" msgstr "" +#: src/hooks/UsePlaceholder.tsx:59 +msgid "Latest serial number" +msgstr "" + #: src/pages/Auth/Logged-In.tsx:22 msgid "Checking if you are already logged in" msgstr "" -#: src/pages/Auth/Login.tsx:31 -#: src/pages/Index/Scan.tsx:329 +#: src/pages/Auth/Login.tsx:35 +#: src/pages/Index/Scan.tsx:343 msgid "No selection" msgstr "" -#: src/pages/Auth/Login.tsx:87 +#: src/pages/Auth/Login.tsx:91 msgid "Welcome, log in below" msgstr "" -#: src/pages/Auth/Login.tsx:89 +#: src/pages/Auth/Login.tsx:93 msgid "Register below" msgstr "" @@ -3162,8 +3796,8 @@ msgstr "" #: src/pages/Auth/Reset.tsx:41 #: src/pages/Auth/Set-Password.tsx:112 -msgid "Send mail" -msgstr "" +#~ msgid "Send mail" +#~ msgstr "Send mail" #: src/pages/Auth/Set-Password.tsx:30 msgid "Token invalid" @@ -3174,22 +3808,22 @@ msgid "You need to provide a valid token to set a new password. Check your inbox msgstr "" #: src/pages/Auth/Set-Password.tsx:49 -msgid "No token provided" -msgstr "" +#~ msgid "No token provided" +#~ msgstr "No token provided" #: src/pages/Auth/Set-Password.tsx:50 -msgid "You need to provide a token to set a new password. Check your inbox for a reset link." -msgstr "" +#~ msgid "You need to provide a token to set a new password. Check your inbox for a reset link." +#~ msgstr "You need to provide a token to set a new password. Check your inbox for a reset link." -#: src/pages/Auth/Set-Password.tsx:73 +#: src/pages/Auth/Set-Password.tsx:68 msgid "Password set" msgstr "" -#: src/pages/Auth/Set-Password.tsx:74 +#: src/pages/Auth/Set-Password.tsx:69 msgid "The password was set successfully. You can now login with your new password" msgstr "" -#: src/pages/Auth/Set-Password.tsx:101 +#: src/pages/Auth/Set-Password.tsx:96 msgid "Set new password" msgstr "" @@ -3206,20 +3840,20 @@ msgstr "" #~ msgstr "Sorry, an unexpected error has occurred." #: src/pages/Index/Dashboard.tsx:22 -msgid "Autoupdate" -msgstr "" +#~ msgid "Autoupdate" +#~ msgstr "Autoupdate" #: src/pages/Index/Dashboard.tsx:26 -msgid "This page is a replacement for the old start page with the same information. This page will be deprecated and replaced by the home page." -msgstr "" +#~ msgid "This page is a replacement for the old start page with the same information. This page will be deprecated and replaced by the home page." +#~ msgstr "This page is a replacement for the old start page with the same information. This page will be deprecated and replaced by the home page." #: src/pages/Index/Home.tsx:58 -msgid "Welcome to your Dashboard{0}" -msgstr "" +#~ msgid "Welcome to your Dashboard{0}" +#~ msgstr "Welcome to your Dashboard{0}" #: src/pages/Index/Playground.tsx:222 -msgid "This page is a showcase for the possibilities of Platform UI." -msgstr "" +#~ msgid "This page is a showcase for the possibilities of Platform UI." +#~ msgstr "This page is a showcase for the possibilities of Platform UI." #: src/pages/Index/Profile/Profile.tsx:30 #: src/pages/Index/Profile/Profile.tsx:141 @@ -3365,125 +3999,190 @@ msgstr "" msgid "Image Barcode" msgstr "" -#: src/pages/Index/Scan.tsx:247 +#: src/pages/Index/Scan.tsx:261 msgid "Selected elements are not known" msgstr "" -#: src/pages/Index/Scan.tsx:254 +#: src/pages/Index/Scan.tsx:268 msgid "Multiple object types selected" msgstr "" -#: src/pages/Index/Scan.tsx:261 +#: src/pages/Index/Scan.tsx:275 msgid "Actions for {0}" msgstr "" -#: src/pages/Index/Scan.tsx:282 +#: src/pages/Index/Scan.tsx:296 msgid "Scan Page" msgstr "" -#: src/pages/Index/Scan.tsx:285 +#: src/pages/Index/Scan.tsx:299 msgid "This page can be used for continuously scanning items and taking actions on them." msgstr "" -#: src/pages/Index/Scan.tsx:292 +#: src/pages/Index/Scan.tsx:306 msgid "Toggle Fullscreen" msgstr "" -#: src/pages/Index/Scan.tsx:305 +#: src/pages/Index/Scan.tsx:319 msgid "Select the input method you want to use to scan items." msgstr "" -#: src/pages/Index/Scan.tsx:307 +#: src/pages/Index/Scan.tsx:321 msgid "Input" msgstr "" -#: src/pages/Index/Scan.tsx:314 +#: src/pages/Index/Scan.tsx:328 msgid "Select input method" msgstr "" -#: src/pages/Index/Scan.tsx:315 +#: src/pages/Index/Scan.tsx:329 msgid "Nothing found" msgstr "" -#: src/pages/Index/Scan.tsx:323 +#: src/pages/Index/Scan.tsx:337 msgid "Depending on the selected parts actions will be shown here. Not all barcode types are supported currently." msgstr "" -#: src/pages/Index/Scan.tsx:325 +#: src/pages/Index/Scan.tsx:339 msgid "Action" msgstr "" -#: src/pages/Index/Scan.tsx:334 +#: src/pages/Index/Scan.tsx:348 msgid "{0} items selected" msgstr "" -#: src/pages/Index/Scan.tsx:337 +#: src/pages/Index/Scan.tsx:351 msgid "General Actions" msgstr "" -#: src/pages/Index/Scan.tsx:351 +#: src/pages/Index/Scan.tsx:365 msgid "Lookup part" msgstr "" -#: src/pages/Index/Scan.tsx:359 +#: src/pages/Index/Scan.tsx:373 msgid "Open Link" msgstr "" -#: src/pages/Index/Scan.tsx:375 +#: src/pages/Index/Scan.tsx:389 msgid "History is locally kept in this browser." msgstr "" -#: src/pages/Index/Scan.tsx:376 +#: src/pages/Index/Scan.tsx:390 msgid "The history is kept in this browser's local storage. So it won't be shared with other users or other devices but is persistent through reloads. You can select items in the history to perform actions on them. To add items, scan/enter them in the Input area." msgstr "" -#: src/pages/Index/Scan.tsx:378 +#: src/pages/Index/Scan.tsx:392 #: src/pages/Notifications.tsx:100 msgid "History" msgstr "" -#: src/pages/Index/Scan.tsx:384 +#: src/pages/Index/Scan.tsx:398 msgid "Delete History" msgstr "" -#: src/pages/Index/Scan.tsx:449 +#: src/pages/Index/Scan.tsx:463 msgid "No history" msgstr "" -#: src/pages/Index/Scan.tsx:467 +#: src/pages/Index/Scan.tsx:481 msgid "Item" msgstr "" -#: src/pages/Index/Scan.tsx:470 +#: src/pages/Index/Scan.tsx:484 msgid "Type" msgstr "" -#: src/pages/Index/Scan.tsx:473 +#: src/pages/Index/Scan.tsx:487 msgid "Source" msgstr "" -#: src/pages/Index/Scan.tsx:476 +#: src/pages/Index/Scan.tsx:490 msgid "Scanned at" msgstr "" -#: src/pages/Index/Scan.tsx:528 +#: src/pages/Index/Scan.tsx:547 msgid "Enter item serial or data" msgstr "" -#: src/pages/Index/Scan.tsx:540 +#: src/pages/Index/Scan.tsx:559 msgid "Add dummy item" msgstr "" +#: src/pages/Index/Scan.tsx:569 +msgid "Start scanning by selecting a camera and pressing the play button." +msgstr "ابدأ المسح عن طريق اختيار الكاميرا و الضغط على زر التشغيل." + +#: src/pages/Index/Scan.tsx:650 +msgid "Error while getting camera" +msgstr "" + +#: src/pages/Index/Scan.tsx:673 +msgid "Error while scanning" +msgstr "" + +#: src/pages/Index/Scan.tsx:687 +msgid "Error while stopping" +msgstr "" + +#: src/pages/Index/Scan.tsx:745 +msgid "Stop scanning" +msgstr "" + +#: src/pages/Index/Scan.tsx:754 +msgid "Start scanning" +msgstr "" + +#: src/pages/Index/Scan.tsx:763 +msgid "Scanning" +msgstr "" + +#: src/pages/Index/Scan.tsx:763 +msgid "Not scanning" +msgstr "" + +#: src/pages/Index/Scan.tsx:775 +msgid "Select Camera" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:28 +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:50 +msgid "Edit User Information" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:32 +msgid "User details updated" +msgstr "" + #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:41 -msgid "Account Details" +msgid "User Details" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:41 +#~ msgid "Account Details" +#~ msgstr "Account Details" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:44 +msgid "User Actions" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:48 +msgid "Edit User" msgstr "" #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:50 -msgid "First name" +#~ msgid "First name" +#~ msgstr "First name" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:54 +msgid "Set Password" msgstr "" #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:55 -msgid "Last name" +#~ msgid "Last name" +#~ msgstr "Last name" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:56 +msgid "Set User Password" msgstr "" #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:58 @@ -3495,15 +4194,28 @@ msgstr "" #~ msgstr "Last name: {0}" #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:67 -msgid "First name:" -msgstr "" +#~ msgid "First name:" +#~ msgstr "First name:" #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:71 -msgid "Last name:" +#~ msgid "Last name:" +#~ msgstr "Last name:" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:73 +msgid "First Name" msgstr "" -#: src/pages/Index/Settings/AccountSettings/DisplaySettingsPanel.tsx:41 -msgid "Use pseudo language" +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:79 +msgid "Last Name" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:85 +msgid "Staff Access" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:93 +#: src/tables/settings/UserTable.tsx:293 +msgid "Superuser" msgstr "" #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:55 @@ -3600,27 +4312,6 @@ msgstr "" msgid "No tokens configured" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:398 -#: src/pages/part/PartDetail.tsx:297 -#: src/tables/bom/UsedInTable.tsx:84 -#: src/tables/build/BuildOrderTable.tsx:110 -#: src/tables/company/CompanyTable.tsx:61 -#: src/tables/company/CompanyTable.tsx:95 -#: src/tables/machine/MachineListTable.tsx:332 -#: src/tables/machine/MachineListTable.tsx:594 -#: src/tables/part/ParametricPartTable.tsx:223 -#: src/tables/part/PartTable.tsx:178 -#: src/tables/part/PartVariantTable.tsx:15 -#: src/tables/plugin/PluginListTable.tsx:149 -#: src/tables/plugin/PluginListTable.tsx:271 -#: src/tables/plugin/PluginListTable.tsx:563 -#: src/tables/purchasing/SupplierPartTable.tsx:98 -#: src/tables/purchasing/SupplierPartTable.tsx:187 -#: src/tables/settings/UserTable.tsx:284 -#: src/tables/stock/StockItemTable.tsx:289 -msgid "Active" -msgstr "" - #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:401 msgid "Expiry" msgstr "" @@ -3630,38 +4321,74 @@ msgid "Last Seen" msgstr "" #: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:65 -msgid "bars" -msgstr "" +#~ msgid "bars" +#~ msgstr "bars" #: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:66 -msgid "oval" -msgstr "" +#~ msgid "oval" +#~ msgstr "oval" #: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:67 -msgid "dots" -msgstr "" +#~ msgid "dots" +#~ msgstr "dots" #: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:81 -msgid "Theme" -msgstr "" +#~ msgid "Theme" +#~ msgstr "Theme" #: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:87 -msgid "Primary color" +#~ msgid "Primary color" +#~ msgstr "Primary color" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:88 +msgid "Bars" msgstr "" -#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:100 +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:89 +msgid "Oval" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:90 +msgid "Dots" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:101 +msgid "Display Settings" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:107 +msgid "Language" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:115 +msgid "Use pseudo language" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:122 +msgid "Color Mode" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:133 +msgid "Highlight color" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:145 +msgid "Example" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:151 msgid "White color" msgstr "" -#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:108 +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:167 msgid "Black color" msgstr "" -#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:116 +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:183 msgid "Border Radius" msgstr "" -#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:132 +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:199 msgid "Loader" msgstr "" @@ -3673,89 +4400,156 @@ msgstr "" #~ msgid "Advanced Amininistrative Options for InvenTree" #~ msgstr "Advanced Amininistrative Options for InvenTree" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:104 +#: src/pages/Index/Settings/AdminCenter/CurrencyManagmentPanel.tsx:27 +#: src/tables/ColumnRenderers.tsx:262 +msgid "Currency" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/CurrencyManagmentPanel.tsx:32 +msgid "Rate" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/CurrencyManagmentPanel.tsx:44 +msgid "Exchange rates updated" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/CurrencyManagmentPanel.tsx:50 +msgid "Exchange rate update error" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/CurrencyManagmentPanel.tsx:62 +msgid "Refresh currency exchange rates" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/CurrencyManagmentPanel.tsx:99 +msgid "Last fetched" +msgstr "آخر جلب" + +#: src/pages/Index/Settings/AdminCenter/CurrencyManagmentPanel.tsx:100 +msgid "Base currency" +msgstr "العملة الأساسية" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:115 msgid "Data Import" msgstr "" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:110 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:121 +msgid "Barcode Scans" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:127 msgid "Background Tasks" msgstr "" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:116 -msgid "Error Reports" -msgstr "" - -#: src/pages/Index/Settings/AdminCenter/Index.tsx:122 -msgid "Currencies" -msgstr "" - #: src/pages/Index/Settings/AdminCenter/Index.tsx:127 #~ msgid "Templates" #~ msgstr "Templates" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:140 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:133 +msgid "Error Reports" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:139 +msgid "Currencies" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:157 +msgid "Custom States" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:163 +#: src/pages/Index/Settings/AdminCenter/UnitManagmentPanel.tsx:58 msgid "Custom Units" msgstr "" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:146 -#: src/pages/part/CategoryDetail.tsx:264 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:169 +#: src/pages/part/CategoryDetail.tsx:269 msgid "Part Parameters" msgstr "" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:152 -msgid "Category Parameters" -msgstr "" - -#: src/pages/Index/Settings/AdminCenter/Index.tsx:170 -msgid "Location Types" -msgstr "" - #: src/pages/Index/Settings/AdminCenter/Index.tsx:170 #~ msgid "Location types" #~ msgstr "Location types" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:182 -#: src/tables/machine/MachineTypeTable.tsx:287 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:175 +msgid "Category Parameters" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:181 +msgid "Stocktake" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:199 +msgid "Location Types" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:211 +#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:48 +#: src/tables/machine/MachineTypeTable.tsx:308 msgid "Machines" msgstr "" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:192 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:221 msgid "Quick Actions" msgstr "" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:197 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:226 msgid "Add a new user" msgstr "" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:222 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:252 msgid "Advanced Options" msgstr "" #: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:43 -msgid "Machine types" -msgstr "" +#~ msgid "Machine types" +#~ msgstr "Machine types" #: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:53 -msgid "Machine Error Stack" +#~ msgid "Machine Error Stack" +#~ msgstr "Machine Error Stack" + +#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:56 +msgid "Machine Types" msgstr "" #: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:62 -msgid "There are no machine registry errors." +#~ msgid "There are no machine registry errors." +#~ msgstr "There are no machine registry errors." + +#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:64 +msgid "Machine Errors" msgstr "" -#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:28 -#: src/tables/settings/UserTable.tsx:119 +#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:77 +msgid "Registry Registry Errors" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:80 +msgid "There are machine registry errors" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:86 +msgid "Machine Registry Errors" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:89 +msgid "There are no machine registry errors" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:31 +#: src/tables/settings/UserTable.tsx:118 msgid "Info" msgstr "" -#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:32 -msgid "External plugins are not enabled for this InvenTree installation." -msgstr "" - #: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:33 #~ msgid "Plugin Error Stack" #~ msgstr "Plugin Error Stack" +#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:35 +msgid "External plugins are not enabled for this InvenTree installation." +msgstr "" + #: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:45 #~ msgid "Warning" #~ msgstr "Warning" @@ -3764,34 +4558,46 @@ msgstr "" #~ msgid "Changing the settings below require you to immediately restart the server. Do not change this while under active usage." #~ msgstr "Changing the settings below require you to immediately restart the server. Do not change this while under active usage." -#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:50 +#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:73 msgid "Plugin Errors" msgstr "" -#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:59 -msgid "Plugin Settings" +#: src/pages/Index/Settings/AdminCenter/ReportTemplatePanel.tsx:17 +msgid "Page Size" +msgstr "حجم الصفحة" + +#: src/pages/Index/Settings/AdminCenter/ReportTemplatePanel.tsx:20 +msgid "Landscape" +msgstr "أفقي" + +#: src/pages/Index/Settings/AdminCenter/ReportTemplatePanel.tsx:26 +msgid "Attach to Model" msgstr "" -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:53 -msgid "Background Worker Not Running" +#: src/pages/Index/Settings/AdminCenter/StocktakePanel.tsx:25 +msgid "Stocktake Reports" msgstr "" -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:54 +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:30 msgid "The background task manager service is not running. Contact your system administrator." msgstr "" -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:60 -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:76 +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:35 +#~ msgid "Background Worker Not Running" +#~ msgstr "Background Worker Not Running" + +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:36 +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:45 msgid "Pending Tasks" msgstr "" -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:64 -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:84 +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:37 +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:53 msgid "Scheduled Tasks" msgstr "" -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:68 -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:92 +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:38 +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:61 msgid "Failed Tasks" msgstr "" @@ -3811,11 +4617,6 @@ msgstr "" #~ msgid "Reports" #~ msgstr "Reports" -#: src/pages/Index/Settings/AdminCenter/TemplateManagementPanel.tsx:89 -#: src/pages/build/BuildDetail.tsx:373 -#~ msgid "Report" -#~ msgstr "Report" - #: src/pages/Index/Settings/AdminCenter/TemplateManagementPanel.tsx:99 #~ msgid "Purchase order" #~ msgstr "Purchase order" @@ -3836,23 +4637,35 @@ msgstr "" #~ msgid "Stock location" #~ msgstr "Stock location" +#: src/pages/Index/Settings/AdminCenter/UnitManagmentPanel.tsx:21 +msgid "Alias" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/UnitManagmentPanel.tsx:22 +msgid "Dimensionless" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/UnitManagmentPanel.tsx:66 +msgid "All units" +msgstr "" + #: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:32 msgid "Select settings relevant for user lifecycle. More available in" msgstr "" #: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:37 -msgid "System settings" -msgstr "" +#~ msgid "System settings" +#~ msgstr "System settings" -#: src/pages/Index/Settings/SystemSettings.tsx:67 +#: src/pages/Index/Settings/SystemSettings.tsx:66 msgid "Login" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:93 +#: src/pages/Index/Settings/SystemSettings.tsx:92 msgid "Barcodes" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:115 +#: src/pages/Index/Settings/SystemSettings.tsx:116 msgid "Pricing" msgstr "" @@ -3864,64 +4677,46 @@ msgstr "" #~ msgid "Exchange Rates" #~ msgstr "Exchange Rates" -#: src/pages/Index/Settings/SystemSettings.tsx:150 +#: src/pages/Index/Settings/SystemSettings.tsx:151 msgid "Labels" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:156 -#: src/pages/Index/Settings/UserSettings.tsx:132 +#: src/pages/Index/Settings/SystemSettings.tsx:157 +#: src/pages/Index/Settings/UserSettings.tsx:133 msgid "Reporting" msgstr "" #: src/pages/Index/Settings/SystemSettings.tsx:231 -#: src/pages/part/PartDetail.tsx:682 -msgid "Stocktake" -msgstr "" - -#: src/pages/Index/Settings/SystemSettings.tsx:237 -#: src/pages/build/BuildDetail.tsx:554 -#: src/pages/build/BuildIndex.tsx:22 -#: src/pages/part/PartDetail.tsx:616 -#: src/pages/sales/SalesOrderDetail.tsx:333 +#: src/pages/build/BuildIndex.tsx:27 +#: src/pages/part/PartDetail.tsx:636 +#: src/pages/sales/SalesOrderDetail.tsx:355 msgid "Build Orders" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:318 -msgid "Switch to User Setting" -msgstr "" +#: src/pages/Index/Settings/SystemSettings.tsx:317 +#~ msgid "Switch to User Setting" +#~ msgstr "Switch to User Setting" -#: src/pages/Index/Settings/UserSettings.tsx:34 +#: src/pages/Index/Settings/UserSettings.tsx:35 msgid "Account" msgstr "" -#: src/pages/Index/Settings/UserSettings.tsx:40 +#: src/pages/Index/Settings/UserSettings.tsx:41 msgid "Security" msgstr "" -#: src/pages/Index/Settings/UserSettings.tsx:78 +#: src/pages/Index/Settings/UserSettings.tsx:79 msgid "Display Options" msgstr "" -#: src/pages/Index/Settings/UserSettings.tsx:150 -msgid "Account Settings" -msgstr "" - -#: src/pages/Index/Settings/UserSettings.tsx:158 -msgid "Switch to System Setting" -msgstr "" - -#: src/pages/Index/UserSettings.tsx:103 -#~ msgid "User Settings" -#~ msgstr "User Settings" +#: src/pages/Index/Settings/UserSettings.tsx:159 +#~ msgid "Switch to System Setting" +#~ msgstr "Switch to System Setting" #: src/pages/Logged-In.tsx:24 #~ msgid "Found an exsisting login - using it to log you in." #~ msgstr "Found an exsisting login - using it to log you in." -#: src/pages/NotFound.tsx:17 -#~ msgid "Not Found" -#~ msgstr "Not Found" - #: src/pages/NotFound.tsx:20 #~ msgid "Sorry, this page is not known or was moved." #~ msgstr "Sorry, this page is not known or was moved." @@ -3942,104 +4737,86 @@ msgstr "" #~ msgid "Build Status" #~ msgstr "Build Status" -#: src/pages/build/BuildDetail.tsx:102 -#: src/pages/part/PartDetail.tsx:150 +#: src/pages/build/BuildDetail.tsx:97 +#: src/pages/company/ManufacturerPartDetail.tsx:81 +#: src/pages/company/SupplierPartDetail.tsx:91 +#: src/pages/part/PartDetail.tsx:171 +#: src/pages/stock/StockDetail.tsx:122 #: src/tables/bom/BomTable.tsx:118 #: src/tables/bom/UsedInTable.tsx:39 -#: src/tables/build/BuildLineTable.tsx:173 -#: src/tables/build/BuildOrderTable.tsx:55 -#: src/tables/sales/SalesOrderLineItemTable.tsx:62 -#: src/tables/stock/StockItemTable.tsx:53 +#: src/tables/build/BuildAllocatedStockTable.tsx:104 +#: src/tables/build/BuildLineTable.tsx:324 +#: src/tables/build/BuildOrderTable.tsx:64 +#: src/tables/sales/SalesOrderLineItemTable.tsx:70 +#: src/tables/stock/StockItemTable.tsx:54 msgid "IPN" msgstr "" -#: src/pages/build/BuildDetail.tsx:115 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:121 -#: src/pages/sales/ReturnOrderDetail.tsx:95 -#: src/pages/sales/SalesOrderDetail.tsx:101 -#: src/tables/ColumnRenderers.tsx:121 -#: src/tables/build/BuildAllocatedStockTable.tsx:90 -#: src/tables/build/BuildLineTable.tsx:184 +#: src/pages/build/BuildDetail.tsx:110 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:115 +#: src/pages/sales/ReturnOrderDetail.tsx:86 +#: src/pages/sales/SalesOrderDetail.tsx:95 +#: src/tables/ColumnRenderers.tsx:132 +#: src/tables/build/BuildAllocatedStockTable.tsx:111 +#: src/tables/build/BuildLineTable.tsx:335 msgid "Reference" msgstr "" -#: src/pages/build/BuildDetail.tsx:121 -#: src/pages/company/CompanyDetail.tsx:90 -#: src/pages/company/ManufacturerPartDetail.tsx:83 -#: src/pages/company/SupplierPartDetail.tsx:96 -#: src/pages/part/CategoryDetail.tsx:101 -#: src/pages/part/PartDetail.tsx:157 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:142 -#: src/pages/sales/ReturnOrderDetail.tsx:115 -#: src/pages/sales/SalesOrderDetail.tsx:121 -#: src/pages/stock/LocationDetail.tsx:109 -#: src/tables/ColumnRenderers.tsx:81 -#: src/tables/bom/UsedInTable.tsx:44 -#: src/tables/build/BuildAllocatedStockTable.tsx:70 -#: src/tables/build/BuildLineTable.tsx:178 -#: src/tables/machine/MachineTypeTable.tsx:69 -#: src/tables/machine/MachineTypeTable.tsx:112 -#: src/tables/machine/MachineTypeTable.tsx:219 -#: src/tables/machine/MachineTypeTable.tsx:323 -#: src/tables/part/RelatedPartTable.tsx:64 -#: src/tables/plugin/PluginListTable.tsx:129 -#: src/tables/plugin/PluginListTable.tsx:276 -#: src/tables/sales/SalesOrderAllocationTable.tsx:56 -#: src/tables/sales/SalesOrderLineItemTable.tsx:67 -#: src/tables/stock/LocationTypesTable.tsx:74 -msgid "Description" -msgstr "" - -#: src/pages/build/BuildDetail.tsx:129 +#: src/pages/build/BuildDetail.tsx:124 msgid "Parent Build" msgstr "" -#: src/pages/build/BuildDetail.tsx:140 +#: src/pages/build/BuildDetail.tsx:135 msgid "Build Quantity" msgstr "" -#: src/pages/build/BuildDetail.tsx:148 -#: src/pages/build/BuildDetail.tsx:274 +#: src/pages/build/BuildDetail.tsx:143 +#: src/pages/build/BuildDetail.tsx:277 msgid "Completed Outputs" msgstr "" -#: src/pages/build/BuildDetail.tsx:165 -#: src/tables/build/BuildOrderTable.tsx:151 +#: src/pages/build/BuildDetail.tsx:160 +#: src/tables/build/BuildOrderTable.tsx:142 msgid "Issued By" msgstr "" -#: src/pages/build/BuildDetail.tsx:172 -#: src/pages/part/PartDetail.tsx:365 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:220 -#: src/pages/sales/ReturnOrderDetail.tsx:199 -#: src/pages/sales/SalesOrderDetail.tsx:208 -#: src/tables/build/BuildOrderTable.tsx:157 -#: src/tables/purchasing/PurchaseOrderTable.tsx:75 -#: src/tables/sales/ReturnOrderTable.tsx:66 -#: src/tables/sales/SalesOrderTable.tsx:73 +#: src/pages/build/BuildDetail.tsx:167 +#: src/pages/part/PartDetail.tsx:406 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:244 +#: src/pages/sales/ReturnOrderDetail.tsx:216 +#: src/pages/sales/SalesOrderDetail.tsx:226 +#: src/tables/build/BuildOrderTable.tsx:148 +#: src/tables/purchasing/PurchaseOrderTable.tsx:76 +#: src/tables/sales/ReturnOrderTable.tsx:74 +#: src/tables/sales/SalesOrderTable.tsx:74 msgid "Responsible" msgstr "" -#: src/pages/build/BuildDetail.tsx:179 -#: src/tables/settings/PendingTasksTable.tsx:32 +#: src/pages/build/BuildDetail.tsx:174 +#: src/tables/settings/PendingTasksTable.tsx:36 msgid "Created" msgstr "" +#: src/pages/build/BuildDetail.tsx:181 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:229 +#: src/pages/sales/ReturnOrderDetail.tsx:201 +#: src/pages/sales/SalesOrderDetail.tsx:212 +#: src/tables/ColumnRenderers.tsx:226 +#: src/tables/part/PartPurchaseOrdersTable.tsx:100 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:135 +#: src/tables/sales/SalesOrderLineItemTable.tsx:107 +msgid "Target Date" +msgstr "" + #: src/pages/build/BuildDetail.tsx:185 #: src/pages/part/PartDetail.tsx:269 #: src/pages/stock/StockDetail.tsx:150 #~ msgid "View part barcode" #~ msgstr "View part barcode" -#: src/pages/build/BuildDetail.tsx:186 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:213 -#: src/pages/sales/ReturnOrderDetail.tsx:192 -#: src/pages/sales/SalesOrderDetail.tsx:201 -#: src/tables/ColumnRenderers.tsx:212 -#: src/tables/part/PartPurchaseOrdersTable.tsx:99 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:110 -#: src/tables/sales/SalesOrderLineItemTable.tsx:99 -msgid "Target Date" +#: src/pages/build/BuildDetail.tsx:188 +#: src/tables/sales/SalesOrderLineItemTable.tsx:281 +msgid "Completed" msgstr "" #: src/pages/build/BuildDetail.tsx:190 @@ -4047,10 +4824,6 @@ msgstr "" #~ msgid "Link custom barcode to part" #~ msgstr "Link custom barcode to part" -#: src/pages/build/BuildDetail.tsx:193 -msgid "Completed" -msgstr "" - #: src/pages/build/BuildDetail.tsx:196 #: src/pages/part/PartDetail.tsx:280 #~ msgid "Unlink custom barcode from part" @@ -4060,15 +4833,11 @@ msgstr "" #~ msgid "Build Order updated" #~ msgstr "Build Order updated" -#: src/pages/build/BuildDetail.tsx:205 -msgid "Source Location" -msgstr "" - -#: src/pages/build/BuildDetail.tsx:206 +#: src/pages/build/BuildDetail.tsx:209 msgid "Any location" msgstr "" -#: src/pages/build/BuildDetail.tsx:213 +#: src/pages/build/BuildDetail.tsx:216 msgid "Destination Location" msgstr "" @@ -4084,206 +4853,182 @@ msgstr "" #~ msgid "Delete build order" #~ msgstr "Delete build order" -#: src/pages/build/BuildDetail.tsx:251 +#: src/pages/build/BuildDetail.tsx:254 msgid "Build Details" msgstr "" -#: src/pages/build/BuildDetail.tsx:257 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:258 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:267 -#: src/pages/sales/ReturnOrderDetail.tsx:130 -#: src/pages/sales/ReturnOrderDetail.tsx:237 -#: src/pages/sales/ReturnOrderDetail.tsx:246 -#: src/pages/sales/SalesOrderDetail.tsx:272 -#: src/pages/sales/SalesOrderDetail.tsx:281 +#: src/pages/build/BuildDetail.tsx:260 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:282 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:291 +#: src/pages/sales/ReturnOrderDetail.tsx:122 +#: src/pages/sales/ReturnOrderDetail.tsx:254 +#: src/pages/sales/ReturnOrderDetail.tsx:263 +#: src/pages/sales/SalesOrderDetail.tsx:294 +#: src/pages/sales/SalesOrderDetail.tsx:303 msgid "Line Items" msgstr "" -#: src/pages/build/BuildDetail.tsx:267 +#: src/pages/build/BuildDetail.tsx:266 msgid "Incomplete Outputs" msgstr "" -#: src/pages/build/BuildDetail.tsx:289 -#: src/pages/sales/SalesOrderDetail.tsx:319 +#: src/pages/build/BuildDetail.tsx:292 +#: src/pages/sales/SalesOrderDetail.tsx:341 msgid "Allocated Stock" msgstr "" -#: src/pages/build/BuildDetail.tsx:299 +#: src/pages/build/BuildDetail.tsx:302 msgid "Consumed Stock" msgstr "" -#: src/pages/build/BuildDetail.tsx:313 +#: src/pages/build/BuildDetail.tsx:316 msgid "Child Build Orders" msgstr "" #: src/pages/build/BuildDetail.tsx:326 -#: src/tables/build/BuildOutputTable.tsx:384 -#: src/tables/stock/StockItemTestResultTable.tsx:150 +#: src/tables/build/BuildOutputTable.tsx:532 +#: src/tables/stock/StockItemTestResultTable.tsx:156 msgid "Test Results" msgstr "" #: src/pages/build/BuildDetail.tsx:337 -#: src/pages/part/PartDetail.tsx:699 +#: src/pages/part/PartDetail.tsx:740 msgid "Test Statistics" msgstr "" -#: src/pages/build/BuildDetail.tsx:351 -#: src/pages/company/CompanyDetail.tsx:259 -#: src/pages/company/ManufacturerPartDetail.tsx:179 -#: src/pages/part/PartDetail.tsx:721 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:309 -#: src/pages/sales/ReturnOrderDetail.tsx:274 -#: src/pages/sales/SalesOrderDetail.tsx:343 -#: src/pages/stock/StockDetail.tsx:385 -msgid "Attachments" -msgstr "" - -#: src/pages/build/BuildDetail.tsx:359 -#: src/pages/company/CompanyDetail.tsx:270 -#: src/pages/company/ManufacturerPartDetail.tsx:190 -#: src/pages/company/SupplierPartDetail.tsx:257 -#: src/pages/part/PartDetail.tsx:729 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:320 -#: src/pages/sales/ReturnOrderDetail.tsx:285 -#: src/pages/sales/SalesOrderDetail.tsx:354 -#: src/pages/stock/StockDetail.tsx:396 -#: src/tables/build/BuildOrderTestTable.tsx:142 -#: src/tables/stock/StockTrackingTable.tsx:189 -msgid "Notes" +#: src/pages/build/BuildDetail.tsx:365 +msgid "Edit Build Order" msgstr "" #: src/pages/build/BuildDetail.tsx:368 #~ msgid "Reporting Actions" #~ msgstr "Reporting Actions" +#: src/pages/build/BuildDetail.tsx:372 +#: src/tables/build/BuildOrderTable.tsx:173 +#: src/tables/build/BuildOrderTable.tsx:188 +msgid "Add Build Order" +msgstr "" + #: src/pages/build/BuildDetail.tsx:374 #~ msgid "Print build report" #~ msgstr "Print build report" -#: src/pages/build/BuildDetail.tsx:377 -msgid "Edit Build Order" -msgstr "" - -#: src/pages/build/BuildDetail.tsx:384 -#: src/tables/build/BuildOrderTable.tsx:172 -#: src/tables/build/BuildOrderTable.tsx:187 -msgid "Add Build Order" -msgstr "" - -#: src/pages/build/BuildDetail.tsx:398 +#: src/pages/build/BuildDetail.tsx:386 msgid "Cancel Build Order" msgstr "" -#: src/pages/build/BuildDetail.tsx:400 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:348 -#: src/pages/sales/SalesOrderDetail.tsx:380 +#: src/pages/build/BuildDetail.tsx:388 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:357 +#: src/pages/sales/ReturnOrderDetail.tsx:354 +#: src/pages/sales/SalesOrderDetail.tsx:387 msgid "Order cancelled" msgstr "" -#: src/pages/build/BuildDetail.tsx:401 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:347 -#: src/pages/sales/ReturnOrderDetail.tsx:346 -#: src/pages/sales/SalesOrderDetail.tsx:379 +#: src/pages/build/BuildDetail.tsx:389 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:356 +#: src/pages/sales/ReturnOrderDetail.tsx:353 +#: src/pages/sales/SalesOrderDetail.tsx:386 msgid "Cancel this order" msgstr "" -#: src/pages/build/BuildDetail.tsx:410 +#: src/pages/build/BuildDetail.tsx:398 msgid "Hold Build Order" msgstr "" -#: src/pages/build/BuildDetail.tsx:412 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:355 -#: src/pages/sales/ReturnOrderDetail.tsx:354 -#: src/pages/sales/SalesOrderDetail.tsx:387 +#: src/pages/build/BuildDetail.tsx:400 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:364 +#: src/pages/sales/ReturnOrderDetail.tsx:361 +#: src/pages/sales/SalesOrderDetail.tsx:394 msgid "Place this order on hold" msgstr "" -#: src/pages/build/BuildDetail.tsx:413 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:356 -#: src/pages/sales/ReturnOrderDetail.tsx:355 -#: src/pages/sales/SalesOrderDetail.tsx:388 +#: src/pages/build/BuildDetail.tsx:401 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:365 +#: src/pages/sales/ReturnOrderDetail.tsx:362 +#: src/pages/sales/SalesOrderDetail.tsx:395 msgid "Order placed on hold" msgstr "" -#: src/pages/build/BuildDetail.tsx:418 +#: src/pages/build/BuildDetail.tsx:406 msgid "Issue Build Order" msgstr "" -#: src/pages/build/BuildDetail.tsx:420 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:339 -#: src/pages/sales/ReturnOrderDetail.tsx:338 -#: src/pages/sales/SalesOrderDetail.tsx:371 +#: src/pages/build/BuildDetail.tsx:408 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:348 +#: src/pages/sales/ReturnOrderDetail.tsx:345 +#: src/pages/sales/SalesOrderDetail.tsx:378 msgid "Issue this order" msgstr "" -#: src/pages/build/BuildDetail.tsx:421 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:340 -#: src/pages/sales/ReturnOrderDetail.tsx:339 -#: src/pages/sales/SalesOrderDetail.tsx:372 +#: src/pages/build/BuildDetail.tsx:409 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:349 +#: src/pages/sales/ReturnOrderDetail.tsx:346 +#: src/pages/sales/SalesOrderDetail.tsx:379 msgid "Order issued" msgstr "" -#: src/pages/build/BuildDetail.tsx:426 +#: src/pages/build/BuildDetail.tsx:414 msgid "Complete Build Order" msgstr "" -#: src/pages/build/BuildDetail.tsx:428 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:368 -#: src/pages/sales/ReturnOrderDetail.tsx:362 -#: src/pages/sales/SalesOrderDetail.tsx:395 +#: src/pages/build/BuildDetail.tsx:416 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:377 +#: src/pages/sales/ReturnOrderDetail.tsx:369 +#: src/pages/sales/SalesOrderDetail.tsx:402 msgid "Mark this order as complete" msgstr "" -#: src/pages/build/BuildDetail.tsx:429 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:362 -#: src/pages/sales/ReturnOrderDetail.tsx:363 -#: src/pages/sales/SalesOrderDetail.tsx:396 +#: src/pages/build/BuildDetail.tsx:417 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:371 +#: src/pages/sales/ReturnOrderDetail.tsx:370 +#: src/pages/sales/SalesOrderDetail.tsx:403 msgid "Order completed" msgstr "" -#: src/pages/build/BuildDetail.tsx:460 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:391 -#: src/pages/sales/ReturnOrderDetail.tsx:392 -#: src/pages/sales/SalesOrderDetail.tsx:425 +#: src/pages/build/BuildDetail.tsx:448 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:400 +#: src/pages/sales/ReturnOrderDetail.tsx:399 +#: src/pages/sales/SalesOrderDetail.tsx:432 msgid "Issue Order" msgstr "" -#: src/pages/build/BuildDetail.tsx:467 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:398 -#: src/pages/sales/ReturnOrderDetail.tsx:399 -#: src/pages/sales/SalesOrderDetail.tsx:439 +#: src/pages/build/BuildDetail.tsx:455 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:407 +#: src/pages/sales/ReturnOrderDetail.tsx:406 +#: src/pages/sales/SalesOrderDetail.tsx:446 msgid "Complete Order" msgstr "" -#: src/pages/build/BuildDetail.tsx:496 +#: src/pages/build/BuildDetail.tsx:473 msgid "Build Order Actions" msgstr "" -#: src/pages/build/BuildDetail.tsx:502 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:432 -#: src/pages/sales/ReturnOrderDetail.tsx:433 -#: src/pages/sales/SalesOrderDetail.tsx:474 +#: src/pages/build/BuildDetail.tsx:478 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:429 +#: src/pages/sales/ReturnOrderDetail.tsx:428 +#: src/pages/sales/SalesOrderDetail.tsx:469 msgid "Edit order" msgstr "" -#: src/pages/build/BuildDetail.tsx:506 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:440 -#: src/pages/sales/ReturnOrderDetail.tsx:439 -#: src/pages/sales/SalesOrderDetail.tsx:479 +#: src/pages/build/BuildDetail.tsx:482 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:437 +#: src/pages/sales/ReturnOrderDetail.tsx:434 +#: src/pages/sales/SalesOrderDetail.tsx:474 msgid "Duplicate order" msgstr "" -#: src/pages/build/BuildDetail.tsx:510 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:443 -#: src/pages/sales/ReturnOrderDetail.tsx:444 -#: src/pages/sales/SalesOrderDetail.tsx:482 +#: src/pages/build/BuildDetail.tsx:486 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:440 +#: src/pages/sales/ReturnOrderDetail.tsx:439 +#: src/pages/sales/SalesOrderDetail.tsx:477 msgid "Hold order" msgstr "" -#: src/pages/build/BuildDetail.tsx:515 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:448 -#: src/pages/sales/ReturnOrderDetail.tsx:449 -#: src/pages/sales/SalesOrderDetail.tsx:487 +#: src/pages/build/BuildDetail.tsx:491 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:445 +#: src/pages/sales/ReturnOrderDetail.tsx:444 +#: src/pages/sales/SalesOrderDetail.tsx:482 msgid "Cancel order" msgstr "" @@ -4295,56 +5040,60 @@ msgstr "" #~ msgid "New Build Order" #~ msgstr "New Build Order" -#: src/pages/company/CompanyDetail.tsx:104 +#: src/pages/company/CompanyDetail.tsx:95 +msgid "Website" +msgstr "" + +#: src/pages/company/CompanyDetail.tsx:103 msgid "Phone Number" msgstr "" -#: src/pages/company/CompanyDetail.tsx:111 +#: src/pages/company/CompanyDetail.tsx:110 msgid "Email Address" msgstr "" -#: src/pages/company/CompanyDetail.tsx:121 +#: src/pages/company/CompanyDetail.tsx:120 msgid "Default Currency" msgstr "" -#: src/pages/company/CompanyDetail.tsx:126 +#: src/pages/company/CompanyDetail.tsx:125 #: src/pages/company/SupplierDetail.tsx:8 -#: src/pages/company/SupplierPartDetail.tsx:120 -#: src/pages/company/SupplierPartDetail.tsx:206 -#: src/pages/company/SupplierPartDetail.tsx:351 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:136 -#: src/tables/company/CompanyTable.tsx:100 +#: src/pages/company/SupplierPartDetail.tsx:125 +#: src/pages/company/SupplierPartDetail.tsx:218 +#: src/pages/company/SupplierPartDetail.tsx:340 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:130 +#: src/tables/company/CompanyTable.tsx:101 #: src/tables/part/PartPurchaseOrdersTable.tsx:42 -#: src/tables/purchasing/PurchaseOrderTable.tsx:88 +#: src/tables/purchasing/PurchaseOrderTable.tsx:89 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:36 msgid "Supplier" msgstr "" -#: src/pages/company/CompanyDetail.tsx:132 +#: src/pages/company/CompanyDetail.tsx:131 #: src/pages/company/ManufacturerDetail.tsx:8 -#: src/pages/company/ManufacturerPartDetail.tsx:101 -#: src/pages/company/ManufacturerPartDetail.tsx:267 -#: src/pages/company/SupplierPartDetail.tsx:135 -#: src/tables/company/CompanyTable.tsx:105 +#: src/pages/company/ManufacturerPartDetail.tsx:100 +#: src/pages/company/ManufacturerPartDetail.tsx:262 +#: src/pages/company/SupplierPartDetail.tsx:147 +#: src/tables/company/CompanyTable.tsx:106 msgid "Manufacturer" msgstr "" -#: src/pages/company/CompanyDetail.tsx:138 +#: src/pages/company/CompanyDetail.tsx:137 #: src/pages/company/CustomerDetail.tsx:8 -#: src/pages/part/pricing/SaleHistoryPanel.tsx:29 -#: src/pages/sales/ReturnOrderDetail.tsx:109 -#: src/pages/sales/SalesOrderDetail.tsx:115 -#: src/pages/stock/StockDetail.tsx:230 -#: src/tables/company/CompanyTable.tsx:110 -#: src/tables/sales/ReturnOrderTable.tsx:78 -#: src/tables/sales/SalesOrderTable.tsx:108 -#: src/tables/stock/StockTrackingTable.tsx:140 +#: src/pages/part/pricing/SaleHistoryPanel.tsx:31 +#: src/pages/sales/ReturnOrderDetail.tsx:101 +#: src/pages/sales/SalesOrderDetail.tsx:110 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:100 +#: src/pages/stock/StockDetail.tsx:271 +#: src/tables/company/CompanyTable.tsx:111 +#: src/tables/sales/ReturnOrderTable.tsx:97 +#: src/tables/sales/SalesOrderTable.tsx:121 +#: src/tables/stock/StockTrackingTable.tsx:144 msgid "Customer" msgstr "" #: src/pages/company/CompanyDetail.tsx:172 -#: src/tables/stock/StockTrackingTable.tsx:183 -msgid "Details" +msgid "Company Details" msgstr "" #: src/pages/company/CompanyDetail.tsx:175 @@ -4363,140 +5112,150 @@ msgstr "" #~ msgid "Delete company" #~ msgstr "Delete company" -#: src/pages/company/CompanyDetail.tsx:232 +#: src/pages/company/CompanyDetail.tsx:234 msgid "Assigned Stock" msgstr "" -#: src/pages/company/CompanyDetail.tsx:290 -#: src/tables/company/CompanyTable.tsx:86 +#: src/pages/company/CompanyDetail.tsx:273 +#: src/tables/company/CompanyTable.tsx:87 msgid "Edit Company" msgstr "" -#: src/pages/company/CompanyDetail.tsx:298 +#: src/pages/company/CompanyDetail.tsx:281 msgid "Delete Company" msgstr "" -#: src/pages/company/CompanyDetail.tsx:306 +#: src/pages/company/CompanyDetail.tsx:289 msgid "Company Actions" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:76 -#: src/pages/company/SupplierPartDetail.tsx:89 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:128 +#: src/pages/company/ManufacturerPartDetail.tsx:74 +#: src/pages/company/SupplierPartDetail.tsx:84 msgid "Internal Part" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:91 -#: src/pages/company/SupplierPartDetail.tsx:103 -msgid "External Link" -msgstr "" - -#: src/pages/company/ManufacturerPartDetail.tsx:109 -#: src/pages/company/SupplierPartDetail.tsx:144 -#: src/tables/purchasing/ManufacturerPartTable.tsx:56 +#: src/pages/company/ManufacturerPartDetail.tsx:108 +#: src/pages/company/SupplierPartDetail.tsx:156 +#: src/tables/purchasing/ManufacturerPartTable.tsx:58 msgid "Manufacturer Part Number" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:138 +#: src/pages/company/ManufacturerPartDetail.tsx:125 +#: src/pages/company/SupplierPartDetail.tsx:108 +msgid "External Link" +msgstr "" + +#: src/pages/company/ManufacturerPartDetail.tsx:146 +#: src/pages/company/SupplierPartDetail.tsx:215 +#: src/pages/part/PartDetail.tsx:576 +msgid "Part Details" +msgstr "" + +#: src/pages/company/ManufacturerPartDetail.tsx:149 msgid "Manufacturer Details" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:147 +#: src/pages/company/ManufacturerPartDetail.tsx:158 msgid "Manufacturer Part Details" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:153 -#: src/pages/part/PartDetail.tsx:532 +#: src/pages/company/ManufacturerPartDetail.tsx:164 +#: src/pages/part/PartDetail.tsx:582 msgid "Parameters" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:165 -#: src/pages/part/PartDetail.tsx:649 +#: src/pages/company/ManufacturerPartDetail.tsx:176 +#: src/pages/part/PartDetail.tsx:669 #: src/pages/purchasing/PurchasingIndex.tsx:31 msgid "Suppliers" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:208 -#: src/tables/purchasing/ManufacturerPartTable.tsx:84 +#: src/pages/company/ManufacturerPartDetail.tsx:204 +#: src/tables/purchasing/ManufacturerPartTable.tsx:86 msgid "Edit Manufacturer Part" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:215 -#: src/tables/purchasing/ManufacturerPartTable.tsx:72 -#: src/tables/purchasing/ManufacturerPartTable.tsx:103 +#: src/pages/company/ManufacturerPartDetail.tsx:211 +#: src/tables/purchasing/ManufacturerPartTable.tsx:74 +#: src/tables/purchasing/ManufacturerPartTable.tsx:106 msgid "Add Manufacturer Part" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:227 -#: src/tables/purchasing/ManufacturerPartTable.tsx:92 +#: src/pages/company/ManufacturerPartDetail.tsx:223 +#: src/tables/purchasing/ManufacturerPartTable.tsx:94 msgid "Delete Manufacturer Part" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:240 +#: src/pages/company/ManufacturerPartDetail.tsx:236 msgid "Manufacturer Part Actions" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:281 +#: src/pages/company/ManufacturerPartDetail.tsx:276 msgid "ManufacturerPart" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:163 -#: src/tables/part/PartPurchaseOrdersTable.tsx:71 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:156 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:197 -#: src/tables/purchasing/SupplierPartTable.tsx:131 +#: src/pages/company/SupplierPartDetail.tsx:99 +msgid "Part Description" +msgstr "" + +#: src/pages/company/SupplierPartDetail.tsx:175 +#: src/tables/part/PartPurchaseOrdersTable.tsx:72 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:162 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:203 +#: src/tables/purchasing/SupplierPartTable.tsx:133 msgid "Pack Quantity" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:174 +#: src/pages/company/SupplierPartDetail.tsx:186 msgid "Supplier Availability" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:181 +#: src/pages/company/SupplierPartDetail.tsx:193 msgid "Availability Updated" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:208 +#: src/pages/company/SupplierPartDetail.tsx:220 msgid "Availability" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:217 +#: src/pages/company/SupplierPartDetail.tsx:229 msgid "Supplier Part Details" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:223 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:296 +#: src/pages/company/SupplierPartDetail.tsx:235 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:320 msgid "Received Stock" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:247 -#: src/pages/part/PartPricingPanel.tsx:111 -#: src/pages/part/pricing/PricingOverviewPanel.tsx:121 +#: src/pages/company/SupplierPartDetail.tsx:259 +#: src/pages/part/PartPricingPanel.tsx:116 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:195 msgid "Supplier Pricing" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:294 +#: src/pages/company/SupplierPartDetail.tsx:284 msgid "Supplier Part Actions" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:319 -#: src/tables/purchasing/SupplierPartTable.tsx:210 +#: src/pages/company/SupplierPartDetail.tsx:308 +#: src/tables/purchasing/SupplierPartTable.tsx:213 msgid "Edit Supplier Part" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:327 -#: src/tables/purchasing/SupplierPartTable.tsx:218 +#: src/pages/company/SupplierPartDetail.tsx:316 +#: src/tables/purchasing/SupplierPartTable.tsx:221 msgid "Delete Supplier Part" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:335 -#: src/tables/purchasing/SupplierPartTable.tsx:163 +#: src/pages/company/SupplierPartDetail.tsx:324 +#: src/tables/purchasing/SupplierPartTable.tsx:165 msgid "Add Supplier Part" msgstr "" #: src/pages/part/CategoryDetail.tsx:93 -#: src/pages/stock/LocationDetail.tsx:101 -#: src/tables/settings/ErrorTable.tsx:36 +#: src/pages/stock/LocationDetail.tsx:95 +#: src/tables/settings/ErrorTable.tsx:63 +#: src/tables/settings/ErrorTable.tsx:108 msgid "Path" msgstr "" @@ -4504,357 +5263,357 @@ msgstr "" msgid "Parent Category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:126 +#: src/pages/part/CategoryDetail.tsx:132 msgid "Subcategories" msgstr "" -#: src/pages/part/CategoryDetail.tsx:133 -#: src/pages/stock/LocationDetail.tsx:141 -#: src/tables/part/PartCategoryTable.tsx:73 +#: src/pages/part/CategoryDetail.tsx:139 +#: src/pages/stock/LocationDetail.tsx:135 +#: src/tables/part/PartCategoryTable.tsx:85 #: src/tables/stock/StockLocationTable.tsx:49 msgid "Structural" msgstr "" -#: src/pages/part/CategoryDetail.tsx:139 +#: src/pages/part/CategoryDetail.tsx:145 msgid "Parent default location" msgstr "" -#: src/pages/part/CategoryDetail.tsx:146 +#: src/pages/part/CategoryDetail.tsx:152 msgid "Default location" msgstr "" -#: src/pages/part/CategoryDetail.tsx:157 +#: src/pages/part/CategoryDetail.tsx:163 msgid "Top level part category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:167 -#: src/pages/part/CategoryDetail.tsx:221 -#: src/tables/part/PartCategoryTable.tsx:102 +#: src/pages/part/CategoryDetail.tsx:173 +#: src/pages/part/CategoryDetail.tsx:226 +#: src/tables/part/PartCategoryTable.tsx:118 msgid "Edit Part Category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:180 -#: src/pages/stock/LocationDetail.tsx:233 +#: src/pages/part/CategoryDetail.tsx:186 +#: src/pages/stock/LocationDetail.tsx:227 msgid "Delete items" msgstr "" -#: src/pages/part/CategoryDetail.tsx:188 -#: src/pages/part/CategoryDetail.tsx:226 +#: src/pages/part/CategoryDetail.tsx:194 +#: src/pages/part/CategoryDetail.tsx:231 msgid "Delete Part Category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:191 +#: src/pages/part/CategoryDetail.tsx:197 msgid "Parts Action" msgstr "" -#: src/pages/part/CategoryDetail.tsx:192 +#: src/pages/part/CategoryDetail.tsx:198 msgid "Action for parts in this category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:197 +#: src/pages/part/CategoryDetail.tsx:203 msgid "Child Categories Action" msgstr "" -#: src/pages/part/CategoryDetail.tsx:198 +#: src/pages/part/CategoryDetail.tsx:204 msgid "Action for child categories in this category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:216 +#: src/pages/part/CategoryDetail.tsx:222 msgid "Category Actions" msgstr "" -#: src/pages/part/CategoryDetail.tsx:238 +#: src/pages/part/CategoryDetail.tsx:243 msgid "Category Details" msgstr "" -#: src/pages/part/PartDetail.tsx:163 -msgid "Variant of" +#: src/pages/part/PartAllocationPanel.tsx:23 +#: src/pages/stock/StockDetail.tsx:443 +#: src/tables/part/PartTable.tsx:99 +msgid "Build Order Allocations" msgstr "" -#: src/pages/part/PartDetail.tsx:170 -msgid "Revision of" -msgstr "" - -#: src/pages/part/PartDetail.tsx:177 -#: src/tables/stock/StockItemTable.tsx:58 -msgid "Revision" +#: src/pages/part/PartAllocationPanel.tsx:40 +#: src/pages/stock/StockDetail.tsx:458 +#: src/tables/part/PartTable.tsx:108 +msgid "Sales Order Allocations" msgstr "" #: src/pages/part/PartDetail.tsx:184 +msgid "Variant of" +msgstr "" + +#: src/pages/part/PartDetail.tsx:191 +msgid "Revision of" +msgstr "" + +#: src/pages/part/PartDetail.tsx:198 +#: src/tables/stock/StockItemTable.tsx:59 +msgid "Revision" +msgstr "" + +#: src/pages/part/PartDetail.tsx:205 #: src/tables/notifications/NotificationsTable.tsx:31 #: src/tables/part/PartCategoryTemplateTable.tsx:67 msgid "Category" msgstr "" -#: src/pages/part/PartDetail.tsx:190 +#: src/pages/part/PartDetail.tsx:211 msgid "Default Location" msgstr "" -#: src/pages/part/PartDetail.tsx:197 +#: src/pages/part/PartDetail.tsx:218 msgid "Category Default Location" msgstr "" -#: src/pages/part/PartDetail.tsx:204 +#: src/pages/part/PartDetail.tsx:225 #: src/tables/purchasing/ManufacturerPartParameterTable.tsx:44 msgid "Units" msgstr "" -#: src/pages/part/PartDetail.tsx:211 -#: src/tables/settings/PendingTasksTable.tsx:42 +#: src/pages/part/PartDetail.tsx:232 +#: src/tables/settings/PendingTasksTable.tsx:46 msgid "Keywords" msgstr "" -#: src/pages/part/PartDetail.tsx:218 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:186 -#: src/pages/sales/ReturnOrderDetail.tsx:165 -#: src/pages/sales/SalesOrderDetail.tsx:174 -msgid "Link" -msgstr "" - -#: src/pages/part/PartDetail.tsx:236 +#: src/pages/part/PartDetail.tsx:257 #: src/tables/bom/BomTable.tsx:320 -#: src/tables/build/BuildLineTable.tsx:155 +#: src/tables/build/BuildLineTable.tsx:286 #: src/tables/part/PartTable.tsx:288 -#: src/tables/sales/SalesOrderLineItemTable.tsx:103 +#: src/tables/sales/SalesOrderLineItemTable.tsx:111 msgid "Available Stock" msgstr "" -#: src/pages/part/PartDetail.tsx:243 +#: src/pages/part/PartDetail.tsx:264 msgid "Variant Stock" msgstr "" -#: src/pages/part/PartDetail.tsx:251 +#: src/pages/part/PartDetail.tsx:272 msgid "Minimum Stock" msgstr "" -#: src/pages/part/PartDetail.tsx:257 +#: src/pages/part/PartDetail.tsx:278 #: src/tables/bom/BomTable.tsx:237 -#: src/tables/build/BuildLineTable.tsx:117 -#: src/tables/sales/SalesOrderLineItemTable.tsx:141 +#: src/tables/build/BuildLineTable.tsx:248 +#: src/tables/sales/SalesOrderLineItemTable.tsx:149 msgid "On order" msgstr "" -#: src/pages/part/PartDetail.tsx:266 +#: src/pages/part/PartDetail.tsx:285 +msgid "Required for Orders" +msgstr "" + +#: src/pages/part/PartDetail.tsx:294 msgid "Allocated to Build Orders" msgstr "" -#: src/pages/part/PartDetail.tsx:274 +#: src/pages/part/PartDetail.tsx:305 msgid "Allocated to Sales Orders" msgstr "" -#: src/pages/part/PartDetail.tsx:281 -#: src/tables/bom/BomTable.tsx:261 -#: src/tables/bom/BomTable.tsx:293 -msgid "Can Build" -msgstr "" - -#: src/pages/part/PartDetail.tsx:288 -#: src/tables/bom/BomTable.tsx:245 -#: src/tables/part/PartTable.tsx:92 -msgid "Building" -msgstr "" - -#: src/pages/part/PartDetail.tsx:302 -#: src/pages/part/PartDetail.tsx:873 -#: src/tables/part/ParametricPartTable.tsx:228 -#: src/tables/part/PartTable.tsx:184 -msgid "Locked" -msgstr "" - -#: src/pages/part/PartDetail.tsx:308 -msgid "Template Part" -msgstr "" - #: src/pages/part/PartDetail.tsx:310 #~ msgid "Edit part" #~ msgstr "Edit part" -#: src/pages/part/PartDetail.tsx:313 -#: src/tables/bom/BomTable.tsx:315 -msgid "Assembled Part" +#: src/pages/part/PartDetail.tsx:315 +#: src/tables/bom/BomTable.tsx:261 +#: src/tables/bom/BomTable.tsx:293 +msgid "Can Build" msgstr "" -#: src/pages/part/PartDetail.tsx:318 -msgid "Component Part" +#: src/pages/part/PartDetail.tsx:322 +#: src/pages/part/PartDetail.tsx:905 +#: src/pages/stock/StockDetail.tsx:766 +#: src/tables/build/BuildOrderTestTable.tsx:220 +#: src/tables/stock/StockItemTable.tsx:334 +msgid "In Production" msgstr "" #: src/pages/part/PartDetail.tsx:322 #~ msgid "Duplicate part" #~ msgstr "Duplicate part" -#: src/pages/part/PartDetail.tsx:323 -#: src/tables/bom/BomTable.tsx:305 -msgid "Testable Part" -msgstr "" - #: src/pages/part/PartDetail.tsx:327 #~ msgid "Delete part" #~ msgstr "Delete part" -#: src/pages/part/PartDetail.tsx:329 +#: src/pages/part/PartDetail.tsx:336 +#: src/tables/part/ParametricPartTable.tsx:228 +#: src/tables/part/PartTable.tsx:184 +msgid "Locked" +msgstr "" + +#: src/pages/part/PartDetail.tsx:342 +msgid "Template Part" +msgstr "" + +#: src/pages/part/PartDetail.tsx:347 +#: src/tables/bom/BomTable.tsx:315 +msgid "Assembled Part" +msgstr "" + +#: src/pages/part/PartDetail.tsx:352 +msgid "Component Part" +msgstr "" + +#: src/pages/part/PartDetail.tsx:357 +#: src/tables/bom/BomTable.tsx:305 +msgid "Testable Part" +msgstr "" + +#: src/pages/part/PartDetail.tsx:363 #: src/tables/bom/BomTable.tsx:310 msgid "Trackable Part" msgstr "" -#: src/pages/part/PartDetail.tsx:334 +#: src/pages/part/PartDetail.tsx:368 msgid "Purchaseable Part" msgstr "" -#: src/pages/part/PartDetail.tsx:339 +#: src/pages/part/PartDetail.tsx:374 msgid "Saleable Part" msgstr "" -#: src/pages/part/PartDetail.tsx:344 +#: src/pages/part/PartDetail.tsx:379 msgid "Virtual Part" msgstr "" -#: src/pages/part/PartDetail.tsx:352 -#: src/tables/ColumnRenderers.tsx:220 +#: src/pages/part/PartDetail.tsx:393 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:215 +#: src/pages/sales/ReturnOrderDetail.tsx:185 +#: src/pages/sales/SalesOrderDetail.tsx:197 +#: src/tables/ColumnRenderers.tsx:234 msgid "Creation Date" msgstr "" -#: src/pages/part/PartDetail.tsx:357 +#: src/pages/part/PartDetail.tsx:398 msgid "Created By" msgstr "" -#: src/pages/part/PartDetail.tsx:372 +#: src/pages/part/PartDetail.tsx:413 msgid "Default Supplier" msgstr "" -#: src/pages/part/PartDetail.tsx:383 -#: src/pages/part/pricing/BomPricingPanel.tsx:79 +#: src/pages/part/PartDetail.tsx:424 +#: src/pages/part/pricing/BomPricingPanel.tsx:113 #: src/pages/part/pricing/VariantPricingPanel.tsx:95 #: src/tables/part/PartTable.tsx:161 msgid "Price Range" msgstr "" -#: src/pages/part/PartDetail.tsx:423 -#: src/pages/stock/StockDetail.tsx:135 +#: src/pages/part/PartDetail.tsx:462 +msgid "Latest Serial Number" +msgstr "" + +#: src/pages/part/PartDetail.tsx:472 +#: src/pages/stock/StockDetail.tsx:151 msgid "Last Stocktake" msgstr "" -#: src/pages/part/PartDetail.tsx:462 +#: src/pages/part/PartDetail.tsx:511 msgid "Stocktake By" msgstr "" -#: src/pages/part/PartDetail.tsx:526 -msgid "Part Details" -msgstr "" - -#: src/pages/part/PartDetail.tsx:557 +#: src/pages/part/PartDetail.tsx:611 msgid "Variants" msgstr "" -#: src/pages/part/PartDetail.tsx:564 -#: src/pages/stock/StockDetail.tsx:307 +#: src/pages/part/PartDetail.tsx:618 +#: src/pages/stock/StockDetail.tsx:430 msgid "Allocations" msgstr "" -#: src/pages/part/PartDetail.tsx:575 -#: src/pages/stock/StockDetail.tsx:318 -#: src/tables/part/PartTable.tsx:99 -msgid "Build Order Allocations" -msgstr "" - -#: src/pages/part/PartDetail.tsx:590 -#: src/pages/stock/StockDetail.tsx:333 -#: src/tables/part/PartTable.tsx:108 -msgid "Sales Order Allocations" -msgstr "" - -#: src/pages/part/PartDetail.tsx:607 +#: src/pages/part/PartDetail.tsx:625 msgid "Bill of Materials" msgstr "" -#: src/pages/part/PartDetail.tsx:623 +#: src/pages/part/PartDetail.tsx:643 msgid "Used In" msgstr "" -#: src/pages/part/PartDetail.tsx:630 +#: src/pages/part/PartDetail.tsx:650 msgid "Part Pricing" msgstr "" -#: src/pages/part/PartDetail.tsx:636 +#: src/pages/part/PartDetail.tsx:656 #: src/pages/purchasing/PurchasingIndex.tsx:42 msgid "Manufacturers" msgstr "" -#: src/pages/part/PartDetail.tsx:676 +#: src/pages/part/PartDetail.tsx:722 msgid "Scheduling" msgstr "" -#: src/pages/part/PartDetail.tsx:688 +#: src/pages/part/PartDetail.tsx:729 msgid "Test Templates" msgstr "" -#: src/pages/part/PartDetail.tsx:715 +#: src/pages/part/PartDetail.tsx:756 msgid "Related Parts" msgstr "" -#: src/pages/part/PartDetail.tsx:849 -#: src/pages/stock/StockDetail.tsx:156 -#: src/pages/stock/StockDetail.tsx:593 -#: src/tables/build/BuildLineTable.tsx:48 +#: src/pages/part/PartDetail.tsx:881 +#: src/pages/stock/StockDetail.tsx:172 +#: src/pages/stock/StockDetail.tsx:783 +#: src/tables/build/BuildLineTable.tsx:179 #: src/tables/part/PartTable.tsx:117 -#: src/tables/stock/StockItemTable.tsx:177 -#: src/tables/stock/StockItemTable.tsx:310 +#: src/tables/stock/StockItemTable.tsx:166 +#: src/tables/stock/StockItemTable.tsx:314 msgid "Available" msgstr "" -#: src/pages/part/PartDetail.tsx:855 +#: src/pages/part/PartDetail.tsx:887 msgid "No Stock" msgstr "" -#: src/pages/part/PartDetail.tsx:861 +#: src/pages/part/PartDetail.tsx:893 +#: src/tables/part/PartTestTemplateTable.tsx:106 +#: src/tables/stock/StockItemTestResultTable.tsx:383 +msgid "Required" +msgstr "" + +#: src/pages/part/PartDetail.tsx:899 #: src/tables/bom/BomTable.tsx:325 #: src/tables/part/PartTable.tsx:86 msgid "On Order" msgstr "" -#: src/pages/part/PartDetail.tsx:867 -#: src/pages/stock/StockDetail.tsx:576 -#: src/tables/build/BuildOrderTestTable.tsx:219 -#: src/tables/stock/StockItemTable.tsx:330 -msgid "In Production" -msgstr "" - -#: src/pages/part/PartDetail.tsx:892 +#: src/pages/part/PartDetail.tsx:924 msgid "Edit Part" msgstr "" -#: src/pages/part/PartDetail.tsx:927 +#: src/pages/part/PartDetail.tsx:959 #: src/tables/part/PartTable.tsx:331 -#: src/tables/part/PartTable.tsx:342 +#: src/tables/part/PartTable.tsx:343 msgid "Add Part" msgstr "" -#: src/pages/part/PartDetail.tsx:941 +#: src/pages/part/PartDetail.tsx:973 msgid "Delete Part" msgstr "" -#: src/pages/part/PartDetail.tsx:950 +#: src/pages/part/PartDetail.tsx:982 msgid "Deleting this part cannot be reversed" msgstr "" -#: src/pages/part/PartDetail.tsx:999 -#: src/pages/stock/LocationDetail.tsx:324 -#: src/tables/stock/StockItemTable.tsx:444 +#: src/pages/part/PartDetail.tsx:1021 +#: src/pages/stock/LocationDetail.tsx:310 +#: src/tables/stock/StockItemTable.tsx:449 msgid "Stock Actions" msgstr "" -#: src/pages/part/PartDetail.tsx:1007 +#: src/pages/part/PartDetail.tsx:1029 msgid "Count part stock" msgstr "" -#: src/pages/part/PartDetail.tsx:1018 +#: src/pages/part/PartDetail.tsx:1040 msgid "Transfer part stock" msgstr "" -#: src/pages/part/PartDetail.tsx:1027 +#: src/pages/part/PartDetail.tsx:1049 msgid "Part Actions" msgstr "" -#: src/pages/part/PartDetail.tsx:1087 +#: src/pages/part/PartDetail.tsx:1113 msgid "Select Part Revision" msgstr "" @@ -4862,113 +5621,214 @@ msgstr "" #~ msgid "Categories" #~ msgstr "Categories" -#: src/pages/part/PartPricingPanel.tsx:68 +#: src/pages/part/PartPricingPanel.tsx:72 msgid "No pricing data found for this part." msgstr "" -#: src/pages/part/PartPricingPanel.tsx:82 -#: src/pages/part/pricing/PricingOverviewPanel.tsx:190 +#: src/pages/part/PartPricingPanel.tsx:87 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:293 msgid "Pricing Overview" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:88 +#: src/pages/part/PartPricingPanel.tsx:93 msgid "Purchase History" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:102 -#: src/pages/part/pricing/PricingOverviewPanel.tsx:100 +#: src/pages/part/PartPricingPanel.tsx:107 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:174 msgid "Internal Pricing" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:120 -#: src/pages/part/pricing/PricingOverviewPanel.tsx:107 +#: src/pages/part/PartPricingPanel.tsx:125 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:181 msgid "BOM Pricing" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:127 -#: src/pages/part/pricing/PricingOverviewPanel.tsx:128 +#: src/pages/part/PartPricingPanel.tsx:132 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:202 msgid "Variant Pricing" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:139 -#: src/pages/part/pricing/PricingOverviewPanel.tsx:135 +#: src/pages/part/PartPricingPanel.tsx:144 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:209 msgid "Sale Pricing" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:146 -#: src/pages/part/pricing/PricingOverviewPanel.tsx:142 +#: src/pages/part/PartPricingPanel.tsx:151 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:216 msgid "Sale History" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:58 -#: src/pages/part/pricing/BomPricingPanel.tsx:138 -#: src/tables/ColumnRenderers.tsx:262 +#: src/pages/part/PartSchedulingDetail.tsx:47 +#: src/pages/part/PartSchedulingDetail.tsx:299 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:156 +msgid "Maximum" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:50 +#: src/pages/part/PartSchedulingDetail.tsx:289 +msgid "Scheduled" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:53 +#: src/pages/part/PartSchedulingDetail.tsx:294 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:144 +msgid "Minimum" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:68 +msgid "Order" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:92 +msgid "Quantity is speculative" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:101 +msgid "No date available for provided quantity" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:105 +msgid "Date is in the past" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:112 +msgid "Scheduled Quantity" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:240 +msgid "No information available" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:241 +msgid "There is no scheduling information available for the selected part" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:276 +msgid "Expected Quantity" +msgstr "" + +#: src/pages/part/PartStocktakeDetail.tsx:63 +#: src/tables/FilterSelectDrawer.tsx:167 +#: src/tables/FilterSelectDrawer.tsx:174 +#: src/tables/build/BuildOrderTestTable.tsx:135 +#: src/tables/purchasing/ManufacturerPartParameterTable.tsx:38 +#: src/tables/stock/StockItemTestResultTable.tsx:192 +msgid "Value" +msgstr "" + +#: src/pages/part/PartStocktakeDetail.tsx:82 +msgid "Edit Stocktake Entry" +msgstr "" + +#: src/pages/part/PartStocktakeDetail.tsx:90 +msgid "Delete Stocktake Entry" +msgstr "" + +#: src/pages/part/PartStocktakeDetail.tsx:96 +#: src/tables/settings/StocktakeReportTable.tsx:69 +msgid "Generate Stocktake Report" +msgstr "" + +#: src/pages/part/PartStocktakeDetail.tsx:101 +#: src/tables/settings/StocktakeReportTable.tsx:71 +msgid "Stocktake report scheduled" +msgstr "" + +#: src/pages/part/PartStocktakeDetail.tsx:119 +#: src/pages/part/PartStocktakeDetail.tsx:235 +#: src/pages/stock/StockDetail.tsx:303 +#: src/tables/stock/StockItemTable.tsx:249 +msgid "Stock Value" +msgstr "" + +#: src/pages/part/PartStocktakeDetail.tsx:139 +#: src/tables/settings/StocktakeReportTable.tsx:77 +msgid "New Stocktake Report" +msgstr "" + +#: src/pages/part/PartStocktakeDetail.tsx:258 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:295 +msgid "Minimum Value" +msgstr "" + +#: src/pages/part/PartStocktakeDetail.tsx:264 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:296 +msgid "Maximum Value" +msgstr "" + +#: src/pages/part/pricing/BomPricingPanel.tsx:87 +#: src/pages/part/pricing/BomPricingPanel.tsx:177 +#: src/tables/ColumnRenderers.tsx:276 #: src/tables/bom/BomTable.tsx:185 #: src/tables/general/ExtraLineItemTable.tsx:64 -#: src/tables/purchasing/PurchaseOrderTable.tsx:112 -#: src/tables/sales/ReturnOrderTable.tsx:104 -#: src/tables/sales/SalesOrderLineItemTable.tsx:89 -#: src/tables/sales/SalesOrderTable.tsx:136 +#: src/tables/purchasing/PurchaseOrderTable.tsx:113 +#: src/tables/sales/ReturnOrderTable.tsx:127 +#: src/tables/sales/SalesOrderLineItemTable.tsx:97 +#: src/tables/sales/SalesOrderTable.tsx:149 msgid "Total Price" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:78 -#: src/pages/part/pricing/BomPricingPanel.tsx:102 +#: src/pages/part/pricing/BomPricingPanel.tsx:112 +#: src/pages/part/pricing/BomPricingPanel.tsx:141 #: src/tables/bom/UsedInTable.tsx:49 +#: src/tables/build/BuildLineTable.tsx:296 #: src/tables/part/PartTable.tsx:202 msgid "Component" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:81 -#: src/pages/part/pricing/VariantPricingPanel.tsx:37 -#: src/pages/part/pricing/VariantPricingPanel.tsx:97 -msgid "Minimum Price" -msgstr "" - -#: src/pages/part/pricing/BomPricingPanel.tsx:82 -#: src/pages/part/pricing/VariantPricingPanel.tsx:45 -#: src/pages/part/pricing/VariantPricingPanel.tsx:98 -msgid "Maximum Price" -msgstr "" - #: src/pages/part/pricing/BomPricingPanel.tsx:112 #~ msgid "Minimum Total Price" #~ msgstr "Minimum Total Price" +#: src/pages/part/pricing/BomPricingPanel.tsx:115 +#: src/pages/part/pricing/VariantPricingPanel.tsx:37 +#: src/pages/part/pricing/VariantPricingPanel.tsx:97 +msgid "Minimum Price" +msgstr "" + +#: src/pages/part/pricing/BomPricingPanel.tsx:116 +#: src/pages/part/pricing/VariantPricingPanel.tsx:45 +#: src/pages/part/pricing/VariantPricingPanel.tsx:98 +msgid "Maximum Price" +msgstr "" + #: src/pages/part/pricing/BomPricingPanel.tsx:117 #~ msgid "Maximum Total Price" #~ msgstr "Maximum Total Price" -#: src/pages/part/pricing/BomPricingPanel.tsx:129 -#: src/pages/part/pricing/PriceBreakPanel.tsx:172 -#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:67 -#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:128 -#: src/pages/part/pricing/SupplierPricingPanel.tsx:62 +#: src/pages/part/pricing/BomPricingPanel.tsx:168 +#: src/pages/part/pricing/PriceBreakPanel.tsx:173 +#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:70 +#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:125 +#: src/pages/part/pricing/SupplierPricingPanel.tsx:66 +#: src/pages/stock/StockDetail.tsx:291 #: src/tables/bom/BomTable.tsx:176 #: src/tables/general/ExtraLineItemTable.tsx:56 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:223 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:225 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:92 +#: src/tables/stock/StockItemTable.tsx:239 msgid "Unit Price" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:154 +#: src/pages/part/pricing/BomPricingPanel.tsx:193 #: src/pages/part/pricing/VariantPricingPanel.tsx:53 -#: src/tables/purchasing/SupplierPartTable.tsx:148 +#: src/tables/purchasing/SupplierPartTable.tsx:150 msgid "Updated" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:219 +#: src/pages/part/pricing/BomPricingPanel.tsx:258 msgid "Pie Chart" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:220 +#: src/pages/part/pricing/BomPricingPanel.tsx:259 msgid "Bar Chart" msgstr "" #: src/pages/part/pricing/PriceBreakPanel.tsx:58 -#: src/pages/part/pricing/PriceBreakPanel.tsx:110 +#: src/pages/part/pricing/PriceBreakPanel.tsx:111 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:142 -#: src/tables/purchasing/SupplierPriceBreakTable.tsx:168 +#: src/tables/purchasing/SupplierPriceBreakTable.tsx:169 msgid "Add Price Break" msgstr "" @@ -4986,46 +5846,70 @@ msgstr "" msgid "Price Break" msgstr "" -#: src/pages/part/pricing/PriceBreakPanel.tsx:170 +#: src/pages/part/pricing/PriceBreakPanel.tsx:171 msgid "Price" msgstr "" -#: src/pages/part/pricing/PricingOverviewPanel.tsx:51 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:68 +msgid "Refreshing pricing data" +msgstr "" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:88 +msgid "Pricing data updated" +msgstr "" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:95 +msgid "Failed to update pricing data" +msgstr "" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:104 +msgid "Edit Pricing" +msgstr "" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:125 msgid "Pricing Category" msgstr "" -#: src/pages/part/pricing/PricingOverviewPanel.tsx:70 -msgid "Minimum" -msgstr "" - -#: src/pages/part/pricing/PricingOverviewPanel.tsx:82 -msgid "Maximum" -msgstr "" - -#: src/pages/part/pricing/PricingOverviewPanel.tsx:114 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:188 msgid "Purchase Pricing" msgstr "" -#: src/pages/part/pricing/PricingOverviewPanel.tsx:149 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:223 msgid "Override Pricing" msgstr "" -#: src/pages/part/pricing/PricingOverviewPanel.tsx:156 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:230 msgid "Overall Pricing" msgstr "" -#: src/pages/part/pricing/PricingOverviewPanel.tsx:175 -#: src/pages/stock/StockDetail.tsx:129 -#: src/tables/stock/StockItemTable.tsx:240 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:249 +#: src/pages/stock/StockDetail.tsx:145 +#: src/tables/stock/StockItemTable.tsx:275 msgid "Last Updated" msgstr "" -#: src/pages/part/pricing/PricingOverviewPanel.tsx:192 -msgid "Minimum Value" +#: src/pages/part/pricing/PricingOverviewPanel.tsx:253 +msgid "Pricing Not Set" msgstr "" -#: src/pages/part/pricing/PricingOverviewPanel.tsx:193 -msgid "Maximum Value" +#: src/pages/part/pricing/PricingOverviewPanel.tsx:254 +msgid "Pricing data has not been calculated for this part" +msgstr "" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:258 +msgid "Pricing Actions" +msgstr "" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:261 +msgid "Refresh" +msgstr "" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:262 +msgid "Refresh pricing data" +msgstr "" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:277 +msgid "Edit pricing data" msgstr "" #: src/pages/part/pricing/PricingPanel.tsx:24 @@ -5044,28 +5928,20 @@ msgstr "" msgid "Loading pricing data" msgstr "" -#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:40 -#: src/pages/part/pricing/SaleHistoryPanel.tsx:36 -#: src/tables/ColumnRenderers.tsx:201 -#: src/tables/build/BuildOrderTestTable.tsx:150 -#: src/tables/plugin/PluginListTable.tsx:139 -msgid "Date" -msgstr "" - #: src/pages/part/pricing/PurchaseHistoryPanel.tsx:47 msgid "Purchase Price" msgstr "" -#: src/pages/part/pricing/SaleHistoryPanel.tsx:22 -msgid "Sale Order" -msgstr "" +#: src/pages/part/pricing/SaleHistoryPanel.tsx:24 +#~ msgid "Sale Order" +#~ msgstr "Sale Order" -#: src/pages/part/pricing/SaleHistoryPanel.tsx:42 -#: src/pages/part/pricing/SaleHistoryPanel.tsx:92 +#: src/pages/part/pricing/SaleHistoryPanel.tsx:44 +#: src/pages/part/pricing/SaleHistoryPanel.tsx:87 msgid "Sale Price" msgstr "" -#: src/pages/part/pricing/SupplierPricingPanel.tsx:65 +#: src/pages/part/pricing/SupplierPricingPanel.tsx:69 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:83 msgid "Supplier Price" msgstr "" @@ -5075,23 +5951,23 @@ msgstr "" msgid "Variant Part" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:93 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:87 msgid "Edit Purchase Order" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:102 -#: src/tables/purchasing/PurchaseOrderTable.tsx:128 -#: src/tables/purchasing/PurchaseOrderTable.tsx:140 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:96 +#: src/tables/purchasing/PurchaseOrderTable.tsx:129 +#: src/tables/purchasing/PurchaseOrderTable.tsx:142 msgid "Add Purchase Order" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:127 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:121 msgid "Supplier Reference" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:158 -#: src/pages/sales/ReturnOrderDetail.tsx:137 -#: src/pages/sales/SalesOrderDetail.tsx:137 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:152 +#: src/pages/sales/ReturnOrderDetail.tsx:129 +#: src/pages/sales/SalesOrderDetail.tsx:132 msgid "Completed Line Items" msgstr "" @@ -5101,91 +5977,112 @@ msgstr "" #~ msgid "Order Currency," #~ msgstr "Order Currency," -#: src/pages/purchasing/PurchaseOrderDetail.tsx:165 -#: src/pages/sales/ReturnOrderDetail.tsx:144 -#: src/pages/sales/SalesOrderDetail.tsx:153 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:161 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:231 +msgid "Destination" +msgstr "" + +#: src/pages/purchasing/PurchaseOrderDetail.tsx:167 +#: src/pages/sales/ReturnOrderDetail.tsx:136 +#: src/pages/sales/SalesOrderDetail.tsx:148 msgid "Order Currency" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:172 -#: src/pages/sales/ReturnOrderDetail.tsx:151 -#: src/pages/sales/SalesOrderDetail.tsx:160 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:173 +#: src/pages/sales/ReturnOrderDetail.tsx:143 +#: src/pages/sales/SalesOrderDetail.tsx:155 msgid "Total Cost" msgstr "" #: src/pages/purchasing/PurchaseOrderDetail.tsx:207 -#: src/pages/sales/ReturnOrderDetail.tsx:186 -#: src/pages/sales/SalesOrderDetail.tsx:195 -msgid "Created On" +#: src/pages/sales/ReturnOrderDetail.tsx:183 +#: src/pages/sales/SalesOrderDetail.tsx:191 +#~ msgid "Created On" +#~ msgstr "Created On" + +#: src/pages/purchasing/PurchaseOrderDetail.tsx:221 +#: src/pages/sales/ReturnOrderDetail.tsx:193 +#: src/pages/sales/SalesOrderDetail.tsx:204 +msgid "Issue Date" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:252 -#: src/pages/sales/ReturnOrderDetail.tsx:231 -#: src/pages/sales/SalesOrderDetail.tsx:266 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:237 +#: src/pages/sales/ReturnOrderDetail.tsx:209 +#: src/pages/sales/SalesOrderDetail.tsx:219 +#: src/tables/build/BuildOrderTable.tsx:98 +#: src/tables/part/PartPurchaseOrdersTable.tsx:105 +#: src/tables/sales/ReturnOrderTable.tsx:122 +msgid "Completion Date" +msgstr "" + +#: src/pages/purchasing/PurchaseOrderDetail.tsx:276 +#: src/pages/sales/ReturnOrderDetail.tsx:248 +#: src/pages/sales/SalesOrderDetail.tsx:288 msgid "Order Details" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:280 -#: src/pages/sales/ReturnOrderDetail.tsx:258 -#: src/pages/sales/SalesOrderDetail.tsx:297 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:304 +#: src/pages/sales/ReturnOrderDetail.tsx:276 +#: src/pages/sales/SalesOrderDetail.tsx:319 msgid "Extra Line Items" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:337 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:346 msgid "Issue Purchase Order" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:345 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:354 msgid "Cancel Purchase Order" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:353 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:362 msgid "Hold Purchase Order" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:361 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:370 msgid "Complete Purchase Order" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:427 -#: src/pages/sales/ReturnOrderDetail.tsx:428 -#: src/pages/sales/SalesOrderDetail.tsx:468 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:425 +#: src/pages/sales/ReturnOrderDetail.tsx:424 +#: src/pages/sales/SalesOrderDetail.tsx:464 msgid "Order Actions" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:101 -#: src/pages/sales/SalesOrderDetail.tsx:107 -#: src/tables/sales/SalesOrderTable.tsx:124 +#: src/pages/sales/ReturnOrderDetail.tsx:92 +#: src/pages/sales/SalesOrderDetail.tsx:101 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:109 +#: src/tables/sales/SalesOrderTable.tsx:137 msgid "Customer Reference" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:315 +#: src/pages/sales/ReturnOrderDetail.tsx:322 msgid "Edit Return Order" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:324 -#: src/tables/sales/ReturnOrderTable.tsx:119 -#: src/tables/sales/ReturnOrderTable.tsx:128 +#: src/pages/sales/ReturnOrderDetail.tsx:331 +#: src/tables/sales/ReturnOrderTable.tsx:142 +#: src/tables/sales/ReturnOrderTable.tsx:152 msgid "Add Return Order" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:336 +#: src/pages/sales/ReturnOrderDetail.tsx:343 msgid "Issue Return Order" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:344 +#: src/pages/sales/ReturnOrderDetail.tsx:349 +#~ msgid "Order canceled" +#~ msgstr "Order canceled" + +#: src/pages/sales/ReturnOrderDetail.tsx:351 msgid "Cancel Return Order" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:347 -msgid "Order canceled" -msgstr "" - -#: src/pages/sales/ReturnOrderDetail.tsx:352 +#: src/pages/sales/ReturnOrderDetail.tsx:359 msgid "Hold Return Order" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:360 +#: src/pages/sales/ReturnOrderDetail.tsx:367 msgid "Complete Return Order" msgstr "" @@ -5193,117 +6090,193 @@ msgstr "" msgid "Customers" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:145 +#: src/pages/sales/SalesOrderDetail.tsx:140 msgid "Completed Shipments" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:243 -msgid "Edit Sales Order" -msgstr "" - -#: src/pages/sales/SalesOrderDetail.tsx:252 -#: src/tables/sales/SalesOrderTable.tsx:84 -#: src/tables/sales/SalesOrderTable.tsx:96 -msgid "Add Sales Order" -msgstr "" - #: src/pages/sales/SalesOrderDetail.tsx:256 #~ msgid "Pending Shipments" #~ msgstr "Pending Shipments" -#: src/pages/sales/SalesOrderDetail.tsx:313 +#: src/pages/sales/SalesOrderDetail.tsx:261 +msgid "Edit Sales Order" +msgstr "" + +#: src/pages/sales/SalesOrderDetail.tsx:274 +#: src/tables/sales/SalesOrderTable.tsx:96 +#: src/tables/sales/SalesOrderTable.tsx:109 +msgid "Add Sales Order" +msgstr "" + +#: src/pages/sales/SalesOrderDetail.tsx:335 msgid "Shipments" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:369 +#: src/pages/sales/SalesOrderDetail.tsx:376 msgid "Issue Sales Order" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:377 +#: src/pages/sales/SalesOrderDetail.tsx:384 msgid "Cancel Sales Order" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:385 +#: src/pages/sales/SalesOrderDetail.tsx:392 msgid "Hold Sales Order" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:393 +#: src/pages/sales/SalesOrderDetail.tsx:400 msgid "Complete Sales Order" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:432 +#: src/pages/sales/SalesOrderDetail.tsx:439 msgid "Ship Order" msgstr "" -#: src/pages/stock/LocationDetail.tsx:117 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:117 +#: src/tables/sales/SalesOrderShipmentTable.tsx:96 +msgid "Shipment Reference" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:124 +msgid "Allocated Items" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:133 +msgid "Tracking Number" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:141 +msgid "Invoice Number" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:149 +#: src/tables/ColumnRenderers.tsx:242 +#: src/tables/sales/SalesOrderAllocationTable.tsx:142 +#: src/tables/sales/SalesOrderShipmentTable.tsx:115 +msgid "Shipment Date" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:157 +#: src/tables/sales/SalesOrderShipmentTable.tsx:119 +msgid "Delivery Date" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:204 +msgid "Shipment Details" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:210 +msgid "Assigned Items" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:241 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:317 +#: src/tables/sales/SalesOrderShipmentTable.tsx:75 +msgid "Edit Shipment" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:248 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:322 +#: src/tables/sales/SalesOrderShipmentTable.tsx:67 +msgid "Cancel Shipment" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:261 +#: src/tables/sales/SalesOrderShipmentTable.tsx:83 +#: src/tables/sales/SalesOrderShipmentTable.tsx:151 +msgid "Complete Shipment" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:276 +#: src/tables/part/PartPurchaseOrdersTable.tsx:121 +msgid "Pending" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:277 +#: src/tables/sales/SalesOrderAllocationTable.tsx:148 +#: src/tables/sales/SalesOrderShipmentTable.tsx:108 +#: src/tables/sales/SalesOrderShipmentTable.tsx:197 +msgid "Shipped" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:279 +#: src/tables/sales/SalesOrderShipmentTable.tsx:202 +msgid "Delivered" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:293 +msgid "Send Shipment" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:312 +msgid "Shipment Actions" +msgstr "" + +#: src/pages/stock/LocationDetail.tsx:111 msgid "Parent Location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:135 +#: src/pages/stock/LocationDetail.tsx:129 msgid "Sublocations" msgstr "" -#: src/pages/stock/LocationDetail.tsx:147 +#: src/pages/stock/LocationDetail.tsx:141 #: src/tables/stock/StockLocationTable.tsx:54 msgid "External" msgstr "" -#: src/pages/stock/LocationDetail.tsx:153 +#: src/pages/stock/LocationDetail.tsx:147 #: src/tables/stock/StockLocationTable.tsx:63 msgid "Location Type" msgstr "" -#: src/pages/stock/LocationDetail.tsx:164 +#: src/pages/stock/LocationDetail.tsx:158 msgid "Top level stock location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:175 +#: src/pages/stock/LocationDetail.tsx:169 msgid "Location Details" msgstr "" -#: src/pages/stock/LocationDetail.tsx:201 +#: src/pages/stock/LocationDetail.tsx:195 msgid "Default Parts" msgstr "" -#: src/pages/stock/LocationDetail.tsx:220 -#: src/pages/stock/LocationDetail.tsx:351 +#: src/pages/stock/LocationDetail.tsx:214 +#: src/pages/stock/LocationDetail.tsx:336 #: src/tables/stock/StockLocationTable.tsx:123 msgid "Edit Stock Location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:241 -#: src/pages/stock/LocationDetail.tsx:356 +#: src/pages/stock/LocationDetail.tsx:235 +#: src/pages/stock/LocationDetail.tsx:341 msgid "Delete Stock Location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:244 +#: src/pages/stock/LocationDetail.tsx:238 msgid "Items Action" msgstr "" -#: src/pages/stock/LocationDetail.tsx:245 +#: src/pages/stock/LocationDetail.tsx:239 msgid "Action for stock items in this location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:250 +#: src/pages/stock/LocationDetail.tsx:244 msgid "Child Locations Action" msgstr "" -#: src/pages/stock/LocationDetail.tsx:251 +#: src/pages/stock/LocationDetail.tsx:245 msgid "Action for child locations in this location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:346 +#: src/pages/stock/LocationDetail.tsx:332 msgid "Location Actions" msgstr "" -#: src/pages/stock/StockDetail.tsx:108 +#: src/pages/stock/StockDetail.tsx:116 msgid "Base Part" msgstr "" -#: src/pages/stock/StockDetail.tsx:115 -msgid "Stock Status" -msgstr "" - #: src/pages/stock/StockDetail.tsx:155 #~ msgid "Link custom barcode to stock item" #~ msgstr "Link custom barcode to stock item" @@ -5312,113 +6285,179 @@ msgstr "" #~ msgid "Unlink custom barcode from stock item" #~ msgstr "Unlink custom barcode from stock item" -#: src/pages/stock/StockDetail.tsx:188 -msgid "Installed In" -msgstr "" - -#: src/pages/stock/StockDetail.tsx:204 -msgid "Consumed By" +#: src/pages/stock/StockDetail.tsx:178 +msgid "Allocated to Orders" msgstr "" #: src/pages/stock/StockDetail.tsx:205 #~ msgid "Edit stock item" #~ msgstr "Edit stock item" -#: src/pages/stock/StockDetail.tsx:213 -#: src/tables/build/BuildAllocatedStockTable.tsx:64 -#: src/tables/stock/StockTrackingTable.tsx:96 -msgid "Build Order" +#: src/pages/stock/StockDetail.tsx:209 +msgid "Installed In" msgstr "" #: src/pages/stock/StockDetail.tsx:217 #~ msgid "Delete stock item" #~ msgstr "Delete stock item" -#: src/pages/stock/StockDetail.tsx:291 +#: src/pages/stock/StockDetail.tsx:226 +msgid "Parent Item" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:230 +msgid "Parent stock item" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:236 +msgid "Consumed By" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:245 +#: src/tables/build/BuildAllocatedStockTable.tsx:77 +#: src/tables/stock/StockTrackingTable.tsx:100 +msgid "Build Order" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:283 +#: src/tables/stock/StockItemTable.tsx:270 +msgid "Expiry Date" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:414 msgid "Stock Details" msgstr "" -#: src/pages/stock/StockDetail.tsx:297 +#: src/pages/stock/StockDetail.tsx:420 msgid "Stock Tracking" msgstr "" -#: src/pages/stock/StockDetail.tsx:350 -msgid "Test Data" -msgstr "" - -#: src/pages/stock/StockDetail.tsx:364 -msgid "Installed Items" -msgstr "" - -#: src/pages/stock/StockDetail.tsx:371 -msgid "Child Items" -msgstr "" - -#: src/pages/stock/StockDetail.tsx:425 -msgid "Edit Stock Item" -msgstr "" - #: src/pages/stock/StockDetail.tsx:433 #~ msgid "Duplicate stock item" #~ msgstr "Duplicate stock item" -#: src/pages/stock/StockDetail.tsx:452 +#: src/pages/stock/StockDetail.tsx:475 +msgid "Test Data" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:489 +msgid "Installed Items" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:496 +msgid "Child Items" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:545 +msgid "Edit Stock Item" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:572 msgid "Delete Stock Item" msgstr "" -#: src/pages/stock/StockDetail.tsx:504 +#: src/pages/stock/StockDetail.tsx:604 +msgid "Serialize Stock Item" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:617 +msgid "Stock item serialized" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:623 +msgid "Return Stock Item" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:626 +msgid "Return this item into stock. This will remove the customer assignment." +msgstr "" + +#: src/pages/stock/StockDetail.tsx:636 +msgid "Item returned to stock" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:666 msgid "Stock Operations" msgstr "" -#: src/pages/stock/StockDetail.tsx:509 +#: src/pages/stock/StockDetail.tsx:671 msgid "Count stock" msgstr "" -#: src/pages/stock/StockDetail.tsx:519 -#: src/tables/stock/StockItemTable.tsx:449 -msgid "Add stock" +#: src/pages/stock/StockDetail.tsx:671 +#: src/tables/stock/StockItemTable.tsx:452 +#~ msgid "Add stock" +#~ msgstr "Add stock" + +#: src/pages/stock/StockDetail.tsx:680 +#: src/tables/stock/StockItemTable.tsx:461 +#~ msgid "Remove stock" +#~ msgstr "Remove stock" + +#: src/pages/stock/StockDetail.tsx:698 +#: src/tables/stock/StockItemTable.tsx:481 +#~ msgid "Transfer stock" +#~ msgstr "Transfer stock" + +#: src/pages/stock/StockDetail.tsx:699 +msgid "Serialize" msgstr "" -#: src/pages/stock/StockDetail.tsx:527 -#: src/tables/stock/StockItemTable.tsx:458 -msgid "Remove stock" +#: src/pages/stock/StockDetail.tsx:700 +msgid "Serialize stock" msgstr "" -#: src/pages/stock/StockDetail.tsx:534 +#: src/pages/stock/StockDetail.tsx:711 msgid "Transfer" msgstr "" -#: src/pages/stock/StockDetail.tsx:535 -#: src/tables/stock/StockItemTable.tsx:478 -msgid "Transfer stock" +#: src/pages/stock/StockDetail.tsx:722 +msgid "Return" msgstr "" -#: src/pages/stock/StockDetail.tsx:546 +#: src/pages/stock/StockDetail.tsx:723 +msgid "Return from customer" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:738 msgid "Stock Item Actions" msgstr "" -#: src/tables/ColumnRenderers.tsx:30 +#: src/pages/stock/StockDetail.tsx:808 +msgid "Stale" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:814 +msgid "Expired" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:820 +msgid "Unavailable" +msgstr "" + +#: src/tables/ColumnRenderers.tsx:36 msgid "Part is not active" msgstr "" -#: src/tables/ColumnRenderers.tsx:35 -msgid "Part is locked" +#: src/tables/ColumnRenderers.tsx:41 +#: src/tables/bom/BomTable.tsx:542 +#: src/tables/part/PartParameterTable.tsx:193 +#: src/tables/part/PartTestTemplateTable.tsx:253 +msgid "Part is Locked" msgstr "" -#: src/tables/ColumnRenderers.tsx:57 +#: src/tables/ColumnRenderers.tsx:41 +#~ msgid "Part is locked" +#~ msgstr "Part is locked" + +#: src/tables/ColumnRenderers.tsx:46 +msgid "You are subscribed to notifications for this part" +msgstr "" + +#: src/tables/ColumnRenderers.tsx:68 msgid "No location set" msgstr "" -#: src/tables/ColumnRenderers.tsx:228 -#: src/tables/sales/SalesOrderShipmentTable.tsx:79 -msgid "Shipment Date" -msgstr "" - -#: src/tables/ColumnRenderers.tsx:248 -#: src/tables/settings/CurrencyTable.tsx:23 -msgid "Currency" -msgstr "" - #: src/tables/ColumnSelect.tsx:16 #: src/tables/ColumnSelect.tsx:23 msgid "Select Columns" @@ -5452,91 +6491,116 @@ msgstr "" msgid "Download Data" msgstr "" -#: src/tables/Filter.tsx:89 -#: src/tables/build/BuildOrderTable.tsx:135 +#: src/tables/Filter.tsx:101 msgid "Assigned to me" msgstr "" -#: src/tables/Filter.tsx:90 -#: src/tables/build/BuildOrderTable.tsx:136 +#: src/tables/Filter.tsx:102 msgid "Show orders assigned to me" msgstr "" -#: src/tables/Filter.tsx:97 +#: src/tables/Filter.tsx:106 +#~ msgid "Show overdue orders" +#~ msgstr "Show overdue orders" + +#: src/tables/Filter.tsx:109 +#: src/tables/build/BuildOrderTable.tsx:120 +#: src/tables/sales/SalesOrderAllocationTable.tsx:59 msgid "Outstanding" msgstr "" -#: src/tables/Filter.tsx:98 -msgid "Show outstanding orders" +#: src/tables/Filter.tsx:110 +msgid "Show outstanding items" msgstr "" -#: src/tables/Filter.tsx:105 -#: src/tables/build/BuildOrderTable.tsx:128 +#: src/tables/Filter.tsx:117 msgid "Overdue" msgstr "" -#: src/tables/Filter.tsx:106 -msgid "Show overdue orders" +#: src/tables/Filter.tsx:118 +msgid "Show overdue items" msgstr "" -#: src/tables/FilterSelectDrawer.tsx:51 +#: src/tables/Filter.tsx:125 +msgid "Minimum Date" +msgstr "" + +#: src/tables/Filter.tsx:126 +msgid "Show items after this date" +msgstr "" + +#: src/tables/Filter.tsx:134 +msgid "Maximum Date" +msgstr "" + +#: src/tables/Filter.tsx:135 +msgid "Show items before this date" +msgstr "" + +#: src/tables/Filter.tsx:144 +msgid "Has Project Code" +msgstr "" + +#: src/tables/Filter.tsx:145 +msgid "Show orders with an assigned project code" +msgstr "" + +#: src/tables/FilterSelectDrawer.tsx:55 msgid "Remove filter" msgstr "" -#: src/tables/FilterSelectDrawer.tsx:130 +#: src/tables/FilterSelectDrawer.tsx:159 msgid "Select filter" msgstr "" -#: src/tables/FilterSelectDrawer.tsx:131 +#: src/tables/FilterSelectDrawer.tsx:160 msgid "Filter" msgstr "" -#: src/tables/FilterSelectDrawer.tsx:138 -#: src/tables/build/BuildOrderTestTable.tsx:134 -#: src/tables/purchasing/ManufacturerPartParameterTable.tsx:38 -#: src/tables/stock/StockItemTestResultTable.tsx:186 -msgid "Value" +#: src/tables/FilterSelectDrawer.tsx:168 +msgid "Select date value" msgstr "" -#: src/tables/FilterSelectDrawer.tsx:140 +#: src/tables/FilterSelectDrawer.tsx:176 msgid "Select filter value" msgstr "" -#: src/tables/FilterSelectDrawer.tsx:183 +#: src/tables/FilterSelectDrawer.tsx:219 +#: src/tables/InvenTreeTableHeader.tsx:214 msgid "Table Filters" msgstr "" -#: src/tables/FilterSelectDrawer.tsx:215 +#: src/tables/FilterSelectDrawer.tsx:251 msgid "Add Filter" msgstr "" -#: src/tables/FilterSelectDrawer.tsx:224 +#: src/tables/FilterSelectDrawer.tsx:260 msgid "Clear Filters" msgstr "" -#: src/tables/InvenTreeTable.tsx:123 -#: src/tables/InvenTreeTable.tsx:431 -#: src/tables/InvenTreeTable.tsx:455 +#: src/tables/InvenTreeTable.tsx:96 +#: src/tables/InvenTreeTable.tsx:417 +#: src/tables/InvenTreeTable.tsx:441 msgid "No records found" msgstr "" -#: src/tables/InvenTreeTable.tsx:466 +#: src/tables/InvenTreeTable.tsx:452 msgid "Server returned incorrect data type" msgstr "" -#: src/tables/InvenTreeTable.tsx:474 +#: src/tables/InvenTreeTable.tsx:460 msgid "Bad request" msgstr "" -#: src/tables/InvenTreeTable.tsx:477 +#: src/tables/InvenTreeTable.tsx:463 msgid "Unauthorized" msgstr "" -#: src/tables/InvenTreeTable.tsx:480 +#: src/tables/InvenTreeTable.tsx:466 msgid "Forbidden" msgstr "" -#: src/tables/InvenTreeTable.tsx:483 +#: src/tables/InvenTreeTable.tsx:469 msgid "Not found" msgstr "" @@ -5544,18 +6608,6 @@ msgstr "" #~ msgid "Are you sure you want to delete the selected records?" #~ msgstr "Are you sure you want to delete the selected records?" -#: src/tables/InvenTreeTable.tsx:525 -msgid "Delete Selected Items" -msgstr "" - -#: src/tables/InvenTreeTable.tsx:529 -msgid "Are you sure you want to delete the selected items?" -msgstr "" - -#: src/tables/InvenTreeTable.tsx:531 -msgid "This action cannot be undone!" -msgstr "" - #: src/tables/InvenTreeTable.tsx:535 #~ msgid "Deleted records" #~ msgstr "Deleted records" @@ -5568,31 +6620,56 @@ msgstr "" #~ msgid "Failed to delete records" #~ msgstr "Failed to delete records" +#: src/tables/InvenTreeTable.tsx:552 +#~ msgid "This action cannot be undone!" +#~ msgstr "This action cannot be undone!" + #: src/tables/InvenTreeTable.tsx:594 #: src/tables/InvenTreeTable.tsx:595 #~ msgid "Print actions" #~ msgstr "Print actions" -#: src/tables/InvenTreeTable.tsx:618 -#: src/tables/InvenTreeTable.tsx:619 -msgid "Barcode actions" +#: src/tables/InvenTreeTable.tsx:655 +#: src/tables/InvenTreeTable.tsx:656 +#~ msgid "Barcode actions" +#~ msgstr "Barcode actions" + +#: src/tables/InvenTreeTable.tsx:712 +#~ msgid "Table filters" +#~ msgstr "Table filters" + +#: src/tables/InvenTreeTable.tsx:725 +#~ msgid "Clear custom query filters" +#~ msgstr "Clear custom query filters" + +#: src/tables/InvenTreeTableHeader.tsx:98 +msgid "Delete Selected Items" msgstr "" -#: src/tables/InvenTreeTable.tsx:628 +#: src/tables/InvenTreeTableHeader.tsx:102 +msgid "Are you sure you want to delete the selected items?" +msgstr "" + +#: src/tables/InvenTreeTableHeader.tsx:104 +#: src/tables/plugin/PluginListTable.tsx:305 +msgid "This action cannot be undone" +msgstr "" + +#: src/tables/InvenTreeTableHeader.tsx:142 +msgid "Custom table filters are active" +msgstr "" + +#: src/tables/InvenTreeTableHeader.tsx:169 msgid "Delete selected records" msgstr "" -#: src/tables/InvenTreeTable.tsx:649 +#: src/tables/InvenTreeTableHeader.tsx:188 msgid "Refresh data" msgstr "" -#: src/tables/InvenTreeTable.tsx:675 -msgid "Table filters" -msgstr "" - #: src/tables/TableHoverCard.tsx:35 -msgid "item-{idx}" -msgstr "" +#~ msgid "item-{idx}" +#~ msgstr "item-{idx}" #: src/tables/UploadAction.tsx:7 #~ msgid "Upload Data" @@ -5607,31 +6684,36 @@ msgid "Part Information" msgstr "" #: src/tables/bom/BomTable.tsx:212 -#: src/tables/build/BuildLineTable.tsx:126 +#: src/tables/build/BuildLineTable.tsx:257 #: src/tables/part/PartTable.tsx:125 msgid "External stock" msgstr "" #: src/tables/bom/BomTable.tsx:220 -#: src/tables/build/BuildLineTable.tsx:89 +#: src/tables/build/BuildLineTable.tsx:220 msgid "Includes substitute stock" msgstr "" #: src/tables/bom/BomTable.tsx:229 -#: src/tables/build/BuildLineTable.tsx:99 -#: src/tables/sales/SalesOrderLineItemTable.tsx:127 +#: src/tables/build/BuildLineTable.tsx:230 +#: src/tables/sales/SalesOrderLineItemTable.tsx:135 msgid "Includes variant stock" msgstr "" +#: src/tables/bom/BomTable.tsx:245 +#: src/tables/part/PartTable.tsx:92 +msgid "Building" +msgstr "" + #: src/tables/bom/BomTable.tsx:254 #: src/tables/part/PartTable.tsx:153 -#: src/tables/sales/SalesOrderLineItemTable.tsx:150 -#: src/tables/stock/StockItemTable.tsx:216 +#: src/tables/sales/SalesOrderLineItemTable.tsx:158 +#: src/tables/stock/StockItemTable.tsx:206 msgid "Stock Information" msgstr "" #: src/tables/bom/BomTable.tsx:285 -#: src/tables/build/BuildLineTable.tsx:248 +#: src/tables/build/BuildLineTable.tsx:409 msgid "Consumable item" msgstr "" @@ -5644,7 +6726,7 @@ msgstr "" #~ msgstr "Create BOM Item" #: src/tables/bom/BomTable.tsx:306 -#: src/tables/build/BuildLineTable.tsx:69 +#: src/tables/build/BuildLineTable.tsx:200 msgid "Show testable items" msgstr "" @@ -5657,11 +6739,12 @@ msgid "Show trackable items" msgstr "" #: src/tables/bom/BomTable.tsx:316 -#: src/tables/build/BuildLineTable.tsx:64 +#: src/tables/build/BuildLineTable.tsx:195 msgid "Show assembled items" msgstr "" #: src/tables/bom/BomTable.tsx:321 +#: src/tables/build/BuildLineTable.tsx:180 msgid "Show items with available stock" msgstr "" @@ -5705,7 +6788,7 @@ msgstr "" #: src/tables/bom/BomTable.tsx:345 #: src/tables/bom/UsedInTable.tsx:79 -#: src/tables/build/BuildLineTable.tsx:58 +#: src/tables/build/BuildLineTable.tsx:189 msgid "Optional" msgstr "" @@ -5723,7 +6806,7 @@ msgstr "" #~ msgstr "Bom item deleted" #: src/tables/bom/BomTable.tsx:350 -#: src/tables/build/BuildLineTable.tsx:53 +#: src/tables/build/BuildLineTable.tsx:184 msgid "Consumable" msgstr "" @@ -5749,12 +6832,12 @@ msgid "Show items with pricing" msgstr "" #: src/tables/bom/BomTable.tsx:378 -#: src/tables/bom/BomTable.tsx:511 +#: src/tables/bom/BomTable.tsx:512 msgid "Import BOM Data" msgstr "" #: src/tables/bom/BomTable.tsx:388 -#: src/tables/bom/BomTable.tsx:523 +#: src/tables/bom/BomTable.tsx:526 msgid "Add BOM Item" msgstr "" @@ -5780,7 +6863,7 @@ msgstr "" #: src/tables/bom/BomTable.tsx:423 #: src/tables/bom/BomTable.tsx:426 -#: src/tables/bom/BomTable.tsx:517 +#: src/tables/bom/BomTable.tsx:519 msgid "Validate BOM" msgstr "" @@ -5812,21 +6895,15 @@ msgstr "" msgid "Edit Substitutes" msgstr "" -#: src/tables/bom/BomTable.tsx:539 -#: src/tables/part/PartParameterTable.tsx:193 -#: src/tables/part/PartTestTemplateTable.tsx:252 -msgid "Part is Locked" -msgstr "" - -#: src/tables/bom/BomTable.tsx:544 +#: src/tables/bom/BomTable.tsx:547 msgid "Bill of materials cannot be edited, as the part is locked" msgstr "" #: src/tables/bom/UsedInTable.tsx:33 -#: src/tables/build/BuildLineTable.tsx:63 +#: src/tables/build/BuildLineTable.tsx:194 #: src/tables/part/ParametricPartTable.tsx:233 #: src/tables/part/PartTable.tsx:190 -#: src/tables/stock/StockItemTable.tsx:300 +#: src/tables/stock/StockItemTable.tsx:304 msgid "Assembly" msgstr "" @@ -5844,285 +6921,347 @@ msgstr "" msgid "Show trackable assemblies" msgstr "" -#: src/tables/build/BuildAllocatedStockTable.tsx:54 +#: src/tables/build/BuildAllocatedStockTable.tsx:56 msgid "Allocated to Output" msgstr "" -#: src/tables/build/BuildAllocatedStockTable.tsx:55 +#: src/tables/build/BuildAllocatedStockTable.tsx:57 msgid "Show items allocated to a build output" msgstr "" -#: src/tables/build/BuildAllocatedStockTable.tsx:76 -#: src/tables/part/PartPurchaseOrdersTable.tsx:125 -#: src/tables/sales/SalesOrderAllocationTable.tsx:62 +#: src/tables/build/BuildAllocatedStockTable.tsx:65 +#: src/tables/build/BuildOrderTable.tsx:159 +#: src/tables/part/PartParameterTable.tsx:212 +#: src/tables/part/PartPurchaseOrdersTable.tsx:138 +#: src/tables/sales/ReturnOrderTable.tsx:84 +#: src/tables/sales/SalesOrderAllocationTable.tsx:68 +#: src/tables/sales/SalesOrderTable.tsx:84 +#: src/tables/stock/StockItemTable.tsx:339 +msgid "Include Variants" +msgstr "" + +#: src/tables/build/BuildAllocatedStockTable.tsx:66 +#: src/tables/build/BuildOrderTable.tsx:160 +#: src/tables/part/PartPurchaseOrdersTable.tsx:139 +#: src/tables/sales/ReturnOrderTable.tsx:85 +#: src/tables/sales/SalesOrderAllocationTable.tsx:69 +#: src/tables/sales/SalesOrderTable.tsx:85 +msgid "Include orders for part variants" +msgstr "" + +#: src/tables/build/BuildAllocatedStockTable.tsx:89 +#: src/tables/part/PartPurchaseOrdersTable.tsx:131 +#: src/tables/sales/SalesOrderAllocationTable.tsx:93 msgid "Order Status" msgstr "" -#: src/tables/build/BuildAllocatedStockTable.tsx:96 -#: src/tables/sales/SalesOrderAllocationTable.tsx:75 +#: src/tables/build/BuildAllocatedStockTable.tsx:117 +#: src/tables/sales/SalesOrderAllocationTable.tsx:126 msgid "Allocated Quantity" msgstr "" -#: src/tables/build/BuildAllocatedStockTable.tsx:116 -#: src/tables/sales/SalesOrderAllocationTable.tsx:94 +#: src/tables/build/BuildAllocatedStockTable.tsx:137 +#: src/tables/sales/SalesOrderAllocationTable.tsx:120 msgid "Available Quantity" msgstr "" -#: src/tables/build/BuildAllocatedStockTable.tsx:126 -#: src/tables/build/BuildOrderTestTable.tsx:176 -#: src/tables/build/BuildOrderTestTable.tsx:200 -#: src/tables/build/BuildOutputTable.tsx:312 -msgid "Build Output" +#: src/tables/build/BuildAllocatedStockTable.tsx:164 +#: src/tables/build/BuildLineTable.tsx:513 +msgid "Edit Stock Allocation" msgstr "" -#: src/tables/build/BuildAllocatedStockTable.tsx:143 -msgid "Edit Build Item" -msgstr "" +#: src/tables/build/BuildAllocatedStockTable.tsx:164 +#~ msgid "Edit Build Item" +#~ msgstr "Edit Build Item" -#: src/tables/build/BuildAllocatedStockTable.tsx:153 -msgid "Delete Build Item" -msgstr "" +#: src/tables/build/BuildAllocatedStockTable.tsx:174 +#~ msgid "Delete Build Item" +#~ msgstr "Delete Build Item" -#: src/tables/build/BuildLineTable.tsx:43 -#: src/tables/stock/StockItemTable.tsx:305 -msgid "Allocated" -msgstr "" - -#: src/tables/build/BuildLineTable.tsx:44 -msgid "Show allocated lines" -msgstr "" - -#: src/tables/build/BuildLineTable.tsx:49 -msgid "Show lines with available stock" -msgstr "" - -#: src/tables/build/BuildLineTable.tsx:54 -msgid "Show consumable lines" +#: src/tables/build/BuildAllocatedStockTable.tsx:177 +#: src/tables/build/BuildLineTable.tsx:526 +msgid "Delete Stock Allocation" msgstr "" #: src/tables/build/BuildLineTable.tsx:59 +#~ msgid "Show lines with available stock" +#~ msgstr "Show lines with available stock" + +#: src/tables/build/BuildLineTable.tsx:175 +msgid "Show allocated lines" +msgstr "" + +#: src/tables/build/BuildLineTable.tsx:185 +msgid "Show consumable lines" +msgstr "" + +#: src/tables/build/BuildLineTable.tsx:190 msgid "Show optional lines" msgstr "" -#: src/tables/build/BuildLineTable.tsx:68 +#: src/tables/build/BuildLineTable.tsx:199 #: src/tables/part/PartTable.tsx:208 msgid "Testable" msgstr "" -#: src/tables/build/BuildLineTable.tsx:73 -#: src/tables/stock/StockItemTable.tsx:364 +#: src/tables/build/BuildLineTable.tsx:204 +#: src/tables/stock/StockItemTable.tsx:368 msgid "Tracked" msgstr "" -#: src/tables/build/BuildLineTable.tsx:74 +#: src/tables/build/BuildLineTable.tsx:205 msgid "Show tracked lines" msgstr "" -#: src/tables/build/BuildLineTable.tsx:108 -#: src/tables/sales/SalesOrderLineItemTable.tsx:133 +#: src/tables/build/BuildLineTable.tsx:239 +#: src/tables/sales/SalesOrderLineItemTable.tsx:141 msgid "In production" msgstr "" -#: src/tables/build/BuildLineTable.tsx:136 +#: src/tables/build/BuildLineTable.tsx:267 msgid "Insufficient stock" msgstr "" -#: src/tables/build/BuildLineTable.tsx:152 -#: src/tables/sales/SalesOrderLineItemTable.tsx:121 -#: src/tables/stock/StockItemTable.tsx:186 +#: src/tables/build/BuildLineTable.tsx:283 +#: src/tables/sales/SalesOrderLineItemTable.tsx:129 +#: src/tables/stock/StockItemTable.tsx:175 msgid "No stock available" msgstr "" -#: src/tables/build/BuildLineTable.tsx:201 +#: src/tables/build/BuildLineTable.tsx:355 msgid "Gets Inherited" msgstr "" -#: src/tables/build/BuildLineTable.tsx:210 +#: src/tables/build/BuildLineTable.tsx:366 msgid "Unit Quantity" msgstr "" -#: src/tables/build/BuildLineTable.tsx:267 -#: src/tables/sales/SalesOrderLineItemTable.tsx:230 +#: src/tables/build/BuildLineTable.tsx:381 +msgid "Required Quantity" +msgstr "" + +#: src/tables/build/BuildLineTable.tsx:432 +#: src/tables/sales/SalesOrderLineItemTable.tsx:254 msgid "Create Build Order" msgstr "" -#: src/tables/build/BuildLineTable.tsx:298 -msgid "Allocate Stock" -msgstr "" +#: src/tables/build/BuildLineTable.tsx:460 +msgid "Auto allocation in progress" +msgstr "التخصيص التلقائي قيد التنفيذ" -#: src/tables/build/BuildLineTable.tsx:305 +#: src/tables/build/BuildLineTable.tsx:463 +#: src/tables/build/BuildLineTable.tsx:632 +msgid "Auto Allocate Stock" +msgstr "تخصيص تلقائي للمخزون" + +#: src/tables/build/BuildLineTable.tsx:464 +msgid "Automatically allocate stock to this build according to the selected options" +msgstr "تخصيص المخزون تِلْقائيًا لهذا البناء وفقا للخيارات المحددة" + +#: src/tables/build/BuildLineTable.tsx:482 +#: src/tables/build/BuildLineTable.tsx:496 +#: src/tables/build/BuildLineTable.tsx:579 +#: src/tables/build/BuildLineTable.tsx:664 +#: src/tables/build/BuildOutputTable.tsx:314 +#: src/tables/build/BuildOutputTable.tsx:319 +msgid "Deallocate Stock" +msgstr "إلغاء تخصيص المخزون" + +#: src/tables/build/BuildLineTable.tsx:498 +msgid "Deallocate all untracked stock for this build order" +msgstr "إلغاء تخصيص جميع المخزون الغير متابع لطلب البناء هذا" + +#: src/tables/build/BuildLineTable.tsx:500 +msgid "Deallocate stock from the selected line item" +msgstr "إلغاء تخصيص المخزون من العنصر المحدد" + +#: src/tables/build/BuildLineTable.tsx:504 +msgid "Stock has been deallocated" +msgstr "تم إلغاء تخصيص المخزون" + +#: src/tables/build/BuildLineTable.tsx:589 msgid "Order Stock" msgstr "" -#: src/tables/build/BuildLineTable.tsx:312 +#: src/tables/build/BuildLineTable.tsx:596 msgid "Build Stock" msgstr "" -#: src/tables/build/BuildOrderTable.tsx:111 -msgid "Show active orders" +#: src/tables/build/BuildLineTable.tsx:610 +msgid "View Part" msgstr "" #: src/tables/build/BuildOrderTable.tsx:116 -msgid "Cascade" -msgstr "" +#~ msgid "Cascade" +#~ msgstr "Cascade" #: src/tables/build/BuildOrderTable.tsx:117 -msgid "Display recursive child orders" +#~ msgid "Display recursive child orders" +#~ msgstr "Display recursive child orders" + +#: src/tables/build/BuildOrderTable.tsx:121 +msgid "Show outstanding orders" msgstr "" -#: src/tables/build/BuildOrderTable.tsx:123 -#: src/tables/part/PartPurchaseOrdersTable.tsx:126 -#: src/tables/purchasing/PurchaseOrderTable.tsx:56 -#: src/tables/sales/ReturnOrderTable.tsx:47 -#: src/tables/sales/SalesOrderTable.tsx:54 +#: src/tables/build/BuildOrderTable.tsx:121 +#~ msgid "Show active orders" +#~ msgstr "Show active orders" + +#: src/tables/build/BuildOrderTable.tsx:122 +#~ msgid "Show overdue status" +#~ msgstr "Show overdue status" + +#: src/tables/build/BuildOrderTable.tsx:126 +#: src/tables/part/PartPurchaseOrdersTable.tsx:132 +#: src/tables/purchasing/PurchaseOrderTable.tsx:59 +#: src/tables/sales/ReturnOrderTable.tsx:57 +#: src/tables/sales/SalesOrderTable.tsx:57 msgid "Filter by order status" msgstr "" -#: src/tables/build/BuildOrderTable.tsx:130 -msgid "Show overdue status" -msgstr "" - -#: src/tables/build/BuildOrderTable.tsx:141 -#: src/tables/purchasing/PurchaseOrderTable.tsx:65 -#: src/tables/sales/ReturnOrderTable.tsx:56 -#: src/tables/sales/SalesOrderTable.tsx:63 +#: src/tables/build/BuildOrderTable.tsx:136 +#: src/tables/purchasing/PurchaseOrderTable.tsx:70 +#: src/tables/sales/ReturnOrderTable.tsx:68 +#: src/tables/sales/SalesOrderTable.tsx:68 msgid "Filter by project code" msgstr "" -#: src/tables/build/BuildOrderTable.tsx:146 -#: src/tables/purchasing/PurchaseOrderTable.tsx:70 -#: src/tables/sales/ReturnOrderTable.tsx:61 -#: src/tables/sales/SalesOrderTable.tsx:68 -msgid "Has Project Code" -msgstr "" - -#: src/tables/build/BuildOrderTable.tsx:147 +#: src/tables/build/BuildOrderTable.tsx:139 #: src/tables/purchasing/PurchaseOrderTable.tsx:71 #: src/tables/sales/ReturnOrderTable.tsx:62 #: src/tables/sales/SalesOrderTable.tsx:69 -msgid "Filter by whether the purchase order has a project code" -msgstr "" +#~ msgid "Filter by whether the purchase order has a project code" +#~ msgstr "Filter by whether the purchase order has a project code" -#: src/tables/build/BuildOrderTable.tsx:152 +#: src/tables/build/BuildOrderTable.tsx:143 msgid "Filter by user who issued this order" msgstr "" -#: src/tables/build/BuildOrderTable.tsx:158 -#: src/tables/purchasing/PurchaseOrderTable.tsx:76 -#: src/tables/sales/ReturnOrderTable.tsx:67 -#: src/tables/sales/SalesOrderTable.tsx:74 +#: src/tables/build/BuildOrderTable.tsx:149 +#: src/tables/purchasing/PurchaseOrderTable.tsx:77 +#: src/tables/sales/ReturnOrderTable.tsx:75 +#: src/tables/sales/SalesOrderTable.tsx:75 msgid "Filter by responsible owner" msgstr "" -#: src/tables/build/BuildOrderTestTable.tsx:75 -#: src/tables/build/BuildOrderTestTable.tsx:111 -#: src/tables/stock/StockItemTestResultTable.tsx:257 -#: src/tables/stock/StockItemTestResultTable.tsx:329 -#: src/tables/stock/StockItemTestResultTable.tsx:384 +#: src/tables/build/BuildOrderTestTable.tsx:76 +#: src/tables/build/BuildOrderTestTable.tsx:112 +#: src/tables/stock/StockItemTestResultTable.tsx:275 +#: src/tables/stock/StockItemTestResultTable.tsx:347 +#: src/tables/stock/StockItemTestResultTable.tsx:403 msgid "Add Test Result" msgstr "" -#: src/tables/build/BuildOrderTestTable.tsx:82 -#: src/tables/stock/StockItemTestResultTable.tsx:259 +#: src/tables/build/BuildOrderTestTable.tsx:83 +#: src/tables/stock/StockItemTestResultTable.tsx:277 msgid "Test result added" msgstr "" -#: src/tables/build/BuildOrderTestTable.tsx:110 -#: src/tables/stock/StockItemTestResultTable.tsx:174 +#: src/tables/build/BuildOrderTestTable.tsx:111 +#: src/tables/stock/StockItemTestResultTable.tsx:180 msgid "No Result" msgstr "" -#: src/tables/build/BuildOrderTestTable.tsx:220 +#: src/tables/build/BuildOrderTestTable.tsx:221 msgid "Show build outputs currently in production" msgstr "" +#: src/tables/build/BuildOutputTable.tsx:76 +msgid "Build Output Stock Allocation" +msgstr "" + #: src/tables/build/BuildOutputTable.tsx:161 #~ msgid "Delete build output" #~ msgstr "Delete build output" -#: src/tables/build/BuildOutputTable.tsx:173 -#: src/tables/build/BuildOutputTable.tsx:211 +#: src/tables/build/BuildOutputTable.tsx:258 +#: src/tables/build/BuildOutputTable.tsx:374 msgid "Add Build Output" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:216 +#: src/tables/build/BuildOutputTable.tsx:304 +#~ msgid "Edit build output" +#~ msgstr "Edit build output" + +#: src/tables/build/BuildOutputTable.tsx:306 +#: src/tables/build/BuildOutputTable.tsx:417 +msgid "Edit Build Output" +msgstr "" + +#: src/tables/build/BuildOutputTable.tsx:321 +msgid "This action will deallocate all stock from the selected build output" +msgstr "" + +#: src/tables/build/BuildOutputTable.tsx:341 msgid "Complete selected outputs" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:226 +#: src/tables/build/BuildOutputTable.tsx:352 msgid "Scrap selected outputs" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:236 +#: src/tables/build/BuildOutputTable.tsx:363 msgid "Cancel selected outputs" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:252 +#: src/tables/build/BuildOutputTable.tsx:385 msgid "Allocate" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:253 +#: src/tables/build/BuildOutputTable.tsx:386 msgid "Allocate stock to build output" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:259 +#: src/tables/build/BuildOutputTable.tsx:396 msgid "Deallocate" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:260 +#: src/tables/build/BuildOutputTable.tsx:397 msgid "Deallocate stock from build output" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:267 +#: src/tables/build/BuildOutputTable.tsx:408 msgid "Complete build output" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:276 +#: src/tables/build/BuildOutputTable.tsx:424 msgid "Scrap" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:277 +#: src/tables/build/BuildOutputTable.tsx:425 msgid "Scrap build output" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:280 -#~ msgid "Allocated Items" -#~ msgstr "Allocated Items" - -#: src/tables/build/BuildOutputTable.tsx:287 +#: src/tables/build/BuildOutputTable.tsx:435 msgid "Cancel build output" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:325 -msgid "Batch" -msgstr "" - -#: src/tables/build/BuildOutputTable.tsx:340 +#: src/tables/build/BuildOutputTable.tsx:488 msgid "Allocated Lines" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:355 +#: src/tables/build/BuildOutputTable.tsx:503 msgid "Required Tests" msgstr "" -#: src/tables/company/AddressTable.tsx:121 -#: src/tables/company/AddressTable.tsx:185 +#: src/tables/company/AddressTable.tsx:118 +#: src/tables/company/AddressTable.tsx:183 msgid "Add Address" msgstr "" -#: src/tables/company/AddressTable.tsx:126 +#: src/tables/company/AddressTable.tsx:123 msgid "Address created" msgstr "" -#: src/tables/company/AddressTable.tsx:135 +#: src/tables/company/AddressTable.tsx:132 msgid "Edit Address" msgstr "" -#: src/tables/company/AddressTable.tsx:143 +#: src/tables/company/AddressTable.tsx:140 msgid "Delete Address" msgstr "" -#: src/tables/company/AddressTable.tsx:144 +#: src/tables/company/AddressTable.tsx:141 msgid "Are you sure you want to delete this address?" msgstr "" @@ -6130,24 +7269,24 @@ msgstr "" #~ msgid "New Company" #~ msgstr "New Company" -#: src/tables/company/CompanyTable.tsx:74 -#: src/tables/company/CompanyTable.tsx:123 +#: src/tables/company/CompanyTable.tsx:75 +#: src/tables/company/CompanyTable.tsx:125 msgid "Add Company" msgstr "" -#: src/tables/company/CompanyTable.tsx:96 +#: src/tables/company/CompanyTable.tsx:97 msgid "Show active companies" msgstr "" -#: src/tables/company/CompanyTable.tsx:101 +#: src/tables/company/CompanyTable.tsx:102 msgid "Show companies which are suppliers" msgstr "" -#: src/tables/company/CompanyTable.tsx:106 +#: src/tables/company/CompanyTable.tsx:107 msgid "Show companies which are manufacturers" msgstr "" -#: src/tables/company/CompanyTable.tsx:111 +#: src/tables/company/CompanyTable.tsx:112 msgid "Show companies which are customers" msgstr "" @@ -6163,96 +7302,99 @@ msgstr "" msgid "Delete Contact" msgstr "" -#: src/tables/company/ContactTable.tsx:129 +#: src/tables/company/ContactTable.tsx:130 msgid "Add contact" msgstr "" -#: src/tables/general/AttachmentTable.tsx:130 +#: src/tables/general/AttachmentTable.tsx:135 msgid "File uploaded" msgstr "" -#: src/tables/general/AttachmentTable.tsx:131 +#: src/tables/general/AttachmentTable.tsx:136 msgid "File {0} uploaded successfully" msgstr "" -#: src/tables/general/AttachmentTable.tsx:142 +#: src/tables/general/AttachmentTable.tsx:147 msgid "Upload Error" msgstr "" -#: src/tables/general/AttachmentTable.tsx:143 +#: src/tables/general/AttachmentTable.tsx:148 msgid "File could not be uploaded" msgstr "" -#: src/tables/general/AttachmentTable.tsx:191 +#: src/tables/general/AttachmentTable.tsx:196 msgid "Upload Attachment" msgstr "" -#: src/tables/general/AttachmentTable.tsx:201 +#: src/tables/general/AttachmentTable.tsx:206 msgid "Edit Attachment" msgstr "" -#: src/tables/general/AttachmentTable.tsx:215 +#: src/tables/general/AttachmentTable.tsx:220 msgid "Delete Attachment" msgstr "" -#: src/tables/general/AttachmentTable.tsx:225 +#: src/tables/general/AttachmentTable.tsx:230 msgid "Is Link" msgstr "" -#: src/tables/general/AttachmentTable.tsx:226 +#: src/tables/general/AttachmentTable.tsx:231 msgid "Show link attachments" msgstr "" -#: src/tables/general/AttachmentTable.tsx:230 +#: src/tables/general/AttachmentTable.tsx:235 msgid "Is File" msgstr "" -#: src/tables/general/AttachmentTable.tsx:231 +#: src/tables/general/AttachmentTable.tsx:236 msgid "Show file attachments" msgstr "" -#: src/tables/general/AttachmentTable.tsx:240 +#: src/tables/general/AttachmentTable.tsx:245 msgid "Add attachment" msgstr "" -#: src/tables/general/AttachmentTable.tsx:251 -msgid "Add external link" -msgstr "" - #: src/tables/general/AttachmentTable.tsx:254 #~ msgid "Upload attachment" #~ msgstr "Upload attachment" -#: src/tables/general/AttachmentTable.tsx:299 +#: src/tables/general/AttachmentTable.tsx:256 +msgid "Add external link" +msgstr "" + +#: src/tables/general/AttachmentTable.tsx:304 msgid "No attachments found" msgstr "" -#: src/tables/general/AttachmentTable.tsx:337 +#: src/tables/general/AttachmentTable.tsx:343 msgid "Drag attachment file here to upload" msgstr "" #: src/tables/general/ExtraLineItemTable.tsx:86 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:251 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:60 -#: src/tables/sales/SalesOrderLineItemTable.tsx:196 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:263 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:362 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:72 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:168 +#: src/tables/sales/SalesOrderLineItemTable.tsx:206 +#: src/tables/sales/SalesOrderLineItemTable.tsx:291 msgid "Add Line Item" msgstr "" #: src/tables/general/ExtraLineItemTable.tsx:98 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:271 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:72 -#: src/tables/sales/SalesOrderLineItemTable.tsx:214 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:283 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:84 +#: src/tables/sales/SalesOrderLineItemTable.tsx:224 msgid "Edit Line Item" msgstr "" #: src/tables/general/ExtraLineItemTable.tsx:106 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:279 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:80 -#: src/tables/sales/SalesOrderLineItemTable.tsx:222 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:291 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:92 +#: src/tables/sales/SalesOrderLineItemTable.tsx:232 msgid "Delete Line Item" msgstr "" -#: src/tables/general/ExtraLineItemTable.tsx:142 +#: src/tables/general/ExtraLineItemTable.tsx:143 msgid "Add Extra Line Item" msgstr "" @@ -6261,12 +7403,12 @@ msgid "Machine restarted" msgstr "" #: src/tables/machine/MachineListTable.tsx:212 -#: src/tables/machine/MachineListTable.tsx:263 +#: src/tables/machine/MachineListTable.tsx:261 msgid "Edit machine" msgstr "" #: src/tables/machine/MachineListTable.tsx:226 -#: src/tables/machine/MachineListTable.tsx:267 +#: src/tables/machine/MachineListTable.tsx:265 msgid "Delete machine" msgstr "" @@ -6278,51 +7420,50 @@ msgstr "" msgid "Are you sure you want to remove the machine \"{0}\"?" msgstr "" -#: src/tables/machine/MachineListTable.tsx:255 -#: src/tables/machine/MachineListTable.tsx:432 +#: src/tables/machine/MachineListTable.tsx:254 +#: src/tables/machine/MachineListTable.tsx:442 msgid "Restart required" msgstr "" -#: src/tables/machine/MachineListTable.tsx:259 +#: src/tables/machine/MachineListTable.tsx:258 msgid "Machine Actions" msgstr "" -#: src/tables/machine/MachineListTable.tsx:272 +#: src/tables/machine/MachineListTable.tsx:270 msgid "Restart" msgstr "" -#: src/tables/machine/MachineListTable.tsx:274 +#: src/tables/machine/MachineListTable.tsx:272 msgid "Restart machine" msgstr "" -#: src/tables/machine/MachineListTable.tsx:276 +#: src/tables/machine/MachineListTable.tsx:274 msgid "manual restart required" msgstr "" +#: src/tables/machine/MachineListTable.tsx:291 +#~ msgid "Machine information" +#~ msgstr "Machine information" + #: src/tables/machine/MachineListTable.tsx:292 -msgid "Machine information" +msgid "Machine Information" msgstr "" -#: src/tables/machine/MachineListTable.tsx:303 -#: src/tables/machine/MachineListTable.tsx:599 +#: src/tables/machine/MachineListTable.tsx:302 +#: src/tables/machine/MachineListTable.tsx:610 msgid "Machine Type" msgstr "" -#: src/tables/machine/MachineListTable.tsx:316 +#: src/tables/machine/MachineListTable.tsx:315 msgid "Machine Driver" msgstr "" -#: src/tables/machine/MachineListTable.tsx:329 +#: src/tables/machine/MachineListTable.tsx:330 msgid "Initialized" msgstr "" -#: src/tables/machine/MachineListTable.tsx:350 -#: src/tables/machine/MachineTypeTable.tsx:261 -msgid "Errors" -msgstr "" - -#: src/tables/machine/MachineListTable.tsx:358 -#: src/tables/machine/MachineTypeTable.tsx:269 +#: src/tables/machine/MachineListTable.tsx:359 +#: src/tables/machine/MachineTypeTable.tsx:290 msgid "No errors reported" msgstr "" @@ -6330,7 +7471,7 @@ msgstr "" msgid "Machine Settings" msgstr "" -#: src/tables/machine/MachineListTable.tsx:389 +#: src/tables/machine/MachineListTable.tsx:394 msgid "Driver Settings" msgstr "" @@ -6338,86 +7479,109 @@ msgstr "" #~ msgid "Create machine" #~ msgstr "Create machine" -#: src/tables/machine/MachineListTable.tsx:506 +#: src/tables/machine/MachineListTable.tsx:516 +#: src/tables/machine/MachineListTable.tsx:558 msgid "Add machine" msgstr "" #: src/tables/machine/MachineListTable.tsx:561 -msgid "Machine detail" +#~ msgid "Machine detail" +#~ msgstr "Machine detail" + +#: src/tables/machine/MachineListTable.tsx:572 +msgid "Machine Detail" msgstr "" -#: src/tables/machine/MachineListTable.tsx:608 +#: src/tables/machine/MachineListTable.tsx:619 msgid "Driver" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:73 +#: src/tables/machine/MachineTypeTable.tsx:78 msgid "Builtin driver" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:89 +#: src/tables/machine/MachineTypeTable.tsx:96 +msgid "Not Found" +msgstr "" + +#: src/tables/machine/MachineTypeTable.tsx:99 msgid "Machine type not found." msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:97 -msgid "Machine type information" +#: src/tables/machine/MachineTypeTable.tsx:99 +#~ msgid "Machine type information" +#~ msgstr "Machine type information" + +#: src/tables/machine/MachineTypeTable.tsx:109 +msgid "Machine Type Information" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:110 -#: src/tables/machine/MachineTypeTable.tsx:217 +#: src/tables/machine/MachineTypeTable.tsx:124 +#: src/tables/machine/MachineTypeTable.tsx:238 msgid "Slug" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:118 -#: src/tables/machine/MachineTypeTable.tsx:238 +#: src/tables/machine/MachineTypeTable.tsx:135 +#: src/tables/machine/MachineTypeTable.tsx:259 msgid "Provider plugin" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:130 -#: src/tables/machine/MachineTypeTable.tsx:250 +#: src/tables/machine/MachineTypeTable.tsx:147 +#: src/tables/machine/MachineTypeTable.tsx:271 msgid "Provider file" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:135 -#: src/tables/machine/MachineTypeTable.tsx:255 -#: src/tables/plugin/PluginListTable.tsx:180 -#: src/tables/plugin/PluginListTable.tsx:568 -msgid "Builtin" +#: src/tables/machine/MachineTypeTable.tsx:148 +#~ msgid "Available drivers" +#~ msgstr "Available drivers" + +#: src/tables/machine/MachineTypeTable.tsx:162 +msgid "Available Drivers" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:146 -msgid "Available drivers" -msgstr "" - -#: src/tables/machine/MachineTypeTable.tsx:196 +#: src/tables/machine/MachineTypeTable.tsx:217 msgid "Machine driver not found." msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:204 +#: src/tables/machine/MachineTypeTable.tsx:225 msgid "Machine driver information" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:224 +#: src/tables/machine/MachineTypeTable.tsx:245 msgid "Machine type" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:327 +#: src/tables/machine/MachineTypeTable.tsx:338 +#~ msgid "Machine type detail" +#~ msgstr "Machine type detail" + +#: src/tables/machine/MachineTypeTable.tsx:348 msgid "Builtin type" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:336 -msgid "Machine type detail" +#: src/tables/machine/MachineTypeTable.tsx:348 +#~ msgid "Machine driver detail" +#~ msgstr "Machine driver detail" + +#: src/tables/machine/MachineTypeTable.tsx:357 +msgid "Machine Type Detail" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:346 -msgid "Machine driver detail" +#: src/tables/machine/MachineTypeTable.tsx:367 +msgid "Machine Driver Detail" msgstr "" #: src/tables/notifications/NotificationsTable.tsx:26 msgid "Age" msgstr "" +#: src/tables/notifications/NotificationsTable.tsx:36 +msgid "Notification" +msgstr "" + #: src/tables/notifications/NotificationsTable.tsx:40 #: src/tables/plugin/PluginErrorTable.tsx:37 +#: src/tables/settings/ErrorTable.tsx:50 msgid "Message" msgstr "" @@ -6451,33 +7615,32 @@ msgstr "" msgid "Show assembly parts" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:68 +#: src/tables/part/PartCategoryTable.tsx:48 +msgid "You are subscribed to notifications for this category" +msgstr "" + +#: src/tables/part/PartCategoryTable.tsx:80 #: src/tables/part/PartTable.tsx:196 msgid "Include Subcategories" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:69 +#: src/tables/part/PartCategoryTable.tsx:81 msgid "Include subcategories in results" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:74 +#: src/tables/part/PartCategoryTable.tsx:86 msgid "Show structural categories" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:78 -#: src/tables/part/PartTable.tsx:294 -msgid "Subscribed" -msgstr "" - -#: src/tables/part/PartCategoryTable.tsx:79 +#: src/tables/part/PartCategoryTable.tsx:91 msgid "Show categories to which the user is subscribed" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:86 +#: src/tables/part/PartCategoryTable.tsx:100 msgid "New Part Category" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:112 +#: src/tables/part/PartCategoryTable.tsx:129 msgid "Add Part Category" msgstr "" @@ -6523,11 +7686,6 @@ msgstr "" msgid "Part parameters cannot be edited, as the part is locked" msgstr "" -#: src/tables/part/PartParameterTable.tsx:212 -#: src/tables/stock/StockItemTable.tsx:335 -msgid "Include Variants" -msgstr "" - #: src/tables/part/PartParameterTemplateTable.tsx:31 msgid "Checkbox" msgstr "" @@ -6554,6 +7712,7 @@ msgid "Show templates with units" msgstr "" #: src/tables/part/PartParameterTemplateTable.tsx:85 +#: src/tables/part/PartParameterTemplateTable.tsx:141 msgid "Add Parameter Template" msgstr "" @@ -6566,23 +7725,19 @@ msgid "Delete Parameter Template" msgstr "" #: src/tables/part/PartParameterTemplateTable.tsx:141 -msgid "Add parameter template" -msgstr "" +#~ msgid "Add parameter template" +#~ msgstr "Add parameter template" -#: src/tables/part/PartPurchaseOrdersTable.tsx:77 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:162 +#: src/tables/part/PartPurchaseOrdersTable.tsx:78 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:168 msgid "Total Quantity" msgstr "" -#: src/tables/part/PartPurchaseOrdersTable.tsx:115 -msgid "Pending" -msgstr "" - -#: src/tables/part/PartPurchaseOrdersTable.tsx:116 +#: src/tables/part/PartPurchaseOrdersTable.tsx:122 msgid "Show pending orders" msgstr "" -#: src/tables/part/PartPurchaseOrdersTable.tsx:121 +#: src/tables/part/PartPurchaseOrdersTable.tsx:127 msgid "Show received items" msgstr "" @@ -6728,22 +7883,13 @@ msgstr "" msgid "Results" msgstr "" -#: src/tables/part/PartTestTemplateTable.tsx:76 -msgid "No Results" -msgstr "" - -#: src/tables/part/PartTestTemplateTable.tsx:106 -#: src/tables/stock/StockItemTestResultTable.tsx:365 -msgid "Required" -msgstr "" - #: src/tables/part/PartTestTemplateTable.tsx:107 msgid "Show required tests" msgstr "" #: src/tables/part/PartTestTemplateTable.tsx:111 -#: src/tables/settings/TemplateTable.tsx:167 -#: src/tables/settings/TemplateTable.tsx:283 +#: src/tables/settings/TemplateTable.tsx:247 +#: src/tables/settings/TemplateTable.tsx:363 msgid "Enabled" msgstr "" @@ -6784,7 +7930,7 @@ msgid "Show tests which have recorded results" msgstr "" #: src/tables/part/PartTestTemplateTable.tsx:154 -#: src/tables/part/PartTestTemplateTable.tsx:237 +#: src/tables/part/PartTestTemplateTable.tsx:238 msgid "Add Test Template" msgstr "" @@ -6808,7 +7954,7 @@ msgstr "" msgid "View Parent Part" msgstr "" -#: src/tables/part/PartTestTemplateTable.tsx:257 +#: src/tables/part/PartTestTemplateTable.tsx:258 msgid "Part templates cannot be edited, as the part is locked" msgstr "" @@ -6836,28 +7982,49 @@ msgstr "" msgid "Show trackable variants" msgstr "" -#: src/tables/part/RelatedPartTable.tsx:84 +#: src/tables/part/RelatedPartTable.tsx:86 +#: src/tables/part/RelatedPartTable.tsx:109 msgid "Add Related Part" msgstr "" -#: src/tables/part/RelatedPartTable.tsx:99 +#: src/tables/part/RelatedPartTable.tsx:101 msgid "Delete Related Part" msgstr "" -#: src/tables/part/RelatedPartTable.tsx:106 -msgid "Add related part" -msgstr "" +#: src/tables/part/RelatedPartTable.tsx:109 +#~ msgid "Add related part" +#~ msgstr "Add related part" #: src/tables/plugin/PluginErrorTable.tsx:29 msgid "Stage" msgstr "" -#: src/tables/plugin/PluginListTable.tsx:95 -msgid "Plugin with key {pluginKey} not found" +#: src/tables/plugin/PluginListTable.tsx:42 +msgid "Plugin is active" msgstr "" +#: src/tables/plugin/PluginListTable.tsx:48 +msgid "Plugin is inactive" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:55 +msgid "Plugin is not installed" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:76 +msgid "Plugin" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:95 +#~ msgid "Plugin with key {pluginKey} not found" +#~ msgstr "Plugin with key {pluginKey} not found" + #: src/tables/plugin/PluginListTable.tsx:97 -msgid "An error occurred while fetching plugin details" +#~ msgid "An error occurred while fetching plugin details" +#~ msgstr "An error occurred while fetching plugin details" + +#: src/tables/plugin/PluginListTable.tsx:109 +msgid "Description not available" msgstr "" #: src/tables/plugin/PluginListTable.tsx:113 @@ -6865,12 +8032,8 @@ msgstr "" #~ msgstr "Plugin with id {id} not found" #: src/tables/plugin/PluginListTable.tsx:122 -msgid "Plugin information" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:134 -msgid "Author" -msgstr "" +#~ msgid "Plugin information" +#~ msgstr "Plugin information" #: src/tables/plugin/PluginListTable.tsx:134 #~ msgid "Plugin Actions" @@ -6881,79 +8044,124 @@ msgstr "" #~ msgid "Edit plugin" #~ msgstr "Edit plugin" +#: src/tables/plugin/PluginListTable.tsx:144 +msgid "Confirm plugin activation" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:145 +msgid "Confirm plugin deactivation" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:150 +msgid "The selected plugin will be activated" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:151 +msgid "The selected plugin will be deactivated" +msgstr "" + #: src/tables/plugin/PluginListTable.tsx:152 #: src/tables/plugin/PluginListTable.tsx:153 #~ msgid "Reload" #~ msgstr "Reload" -#: src/tables/plugin/PluginListTable.tsx:154 -msgid "Plugin is not active" -msgstr "" - #: src/tables/plugin/PluginListTable.tsx:163 -msgid "Package information" -msgstr "" +#~ msgid "Package information" +#~ msgstr "Package information" #: src/tables/plugin/PluginListTable.tsx:169 -msgid "Package Name" +msgid "Deactivate" msgstr "" -#: src/tables/plugin/PluginListTable.tsx:175 -msgid "Installation Path" +#: src/tables/plugin/PluginListTable.tsx:183 +msgid "Activate" msgstr "" -#: src/tables/plugin/PluginListTable.tsx:185 -msgid "Package" +#: src/tables/plugin/PluginListTable.tsx:184 +msgid "Activate selected plugin" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:196 +msgid "Update selected plugin" msgstr "" #: src/tables/plugin/PluginListTable.tsx:197 -msgid "Plugin settings" -msgstr "" +#~ msgid "Plugin settings" +#~ msgstr "Plugin settings" #: src/tables/plugin/PluginListTable.tsx:214 -msgid "Plugin is active" +#: src/tables/stock/InstalledItemsTable.tsx:107 +msgid "Uninstall" msgstr "" -#: src/tables/plugin/PluginListTable.tsx:220 -msgid "Plugin is inactive" +#: src/tables/plugin/PluginListTable.tsx:215 +msgid "Uninstall selected plugin" msgstr "" -#: src/tables/plugin/PluginListTable.tsx:227 -msgid "Plugin is not installed" +#: src/tables/plugin/PluginListTable.tsx:233 +msgid "Delete selected plugin configuration" msgstr "" -#: src/tables/plugin/PluginListTable.tsx:253 -msgid "Plugin" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:287 -msgid "Description not available" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:319 -msgid "Confirm plugin activation" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:320 -msgid "Confirm plugin deactivation" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:325 -msgid "The selected plugin will be activated" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:326 -msgid "The selected plugin will be deactivated" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:334 +#: src/tables/plugin/PluginListTable.tsx:249 msgid "Activate Plugin" msgstr "" +#: src/tables/plugin/PluginListTable.tsx:270 +msgid "Install plugin" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:283 +msgid "Install" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:284 +msgid "Plugin installed successfully" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:289 +msgid "Uninstall Plugin" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:301 +msgid "Confirm plugin uninstall" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:304 +msgid "The selected plugin will be uninstalled." +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:308 +#~ msgid "This action cannot be undone." +#~ msgstr "This action cannot be undone." + +#: src/tables/plugin/PluginListTable.tsx:309 +msgid "Plugin uninstalled successfully" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:317 +msgid "Delete Plugin" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:318 +msgid "Deleting this plugin configuration will remove all associated settings and data. Are you sure you want to delete this plugin?" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:331 +msgid "Plugins reloaded" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:332 +msgid "Plugins were reloaded successfully" +msgstr "" + #: src/tables/plugin/PluginListTable.tsx:338 #~ msgid "Deactivate Plugin" #~ msgstr "Deactivate Plugin" +#: src/tables/plugin/PluginListTable.tsx:350 +msgid "Reload Plugins" +msgstr "" + #: src/tables/plugin/PluginListTable.tsx:354 #~ msgid "The following plugin will be activated" #~ msgstr "The following plugin will be activated" @@ -6962,16 +8170,16 @@ msgstr "" #~ msgid "The following plugin will be deactivated" #~ msgstr "The following plugin will be deactivated" -#: src/tables/plugin/PluginListTable.tsx:362 -msgid "Deactivate" +#: src/tables/plugin/PluginListTable.tsx:357 +msgid "Install Plugin" msgstr "" #: src/tables/plugin/PluginListTable.tsx:366 #~ msgid "Confirm" #~ msgstr "Confirm" -#: src/tables/plugin/PluginListTable.tsx:373 -msgid "Activate" +#: src/tables/plugin/PluginListTable.tsx:374 +msgid "Plugin Detail" msgstr "" #: src/tables/plugin/PluginListTable.tsx:376 @@ -6998,76 +8206,12 @@ msgstr "" #~ msgid "Error updating plugin" #~ msgstr "Error updating plugin" -#: src/tables/plugin/PluginListTable.tsx:406 -msgid "Uninstall" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:438 -msgid "Install plugin" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:451 -msgid "Install" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:452 -msgid "Plugin installed successfully" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:457 -msgid "Uninstall Plugin" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:469 -msgid "Confirm plugin uninstall" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:472 -msgid "The selected plugin will be uninstalled." -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:473 -msgid "This action cannot be undone." -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:477 -msgid "Plugin uninstalled successfully" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:484 -msgid "Delete Plugin" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:485 -msgid "Deleting this plugin configuration will remove all associated settings and data. Are you sure you want to delete this plugin?" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:498 -msgid "Plugins reloaded" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:499 -msgid "Plugins were reloaded successfully" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:515 -msgid "Reload Plugins" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:524 -msgid "Install Plugin" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:544 -msgid "Plugin Detail" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:573 +#: src/tables/plugin/PluginListTable.tsx:411 msgid "Sample" msgstr "" -#: src/tables/plugin/PluginListTable.tsx:578 -#: src/tables/stock/StockItemTable.tsx:340 +#: src/tables/plugin/PluginListTable.tsx:416 +#: src/tables/stock/StockItemTable.tsx:344 msgid "Installed" msgstr "" @@ -7116,82 +8260,78 @@ msgstr "" #~ msgid "Are you sure you want to remove this manufacturer part?" #~ msgstr "Are you sure you want to remove this manufacturer part?" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:102 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:339 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:103 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:356 msgid "Import Line Items" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:135 -msgid "Part Description" -msgstr "" - -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:201 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:207 msgid "Supplier Code" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:208 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:214 msgid "Supplier Link" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:215 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:220 msgid "Manufacturer Code" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:229 -msgid "Destination" +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:248 +msgid "Show line items which have been received" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:300 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:316 msgid "Receive line item" msgstr "" #: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:344 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:142 -#: src/tables/sales/SalesOrderLineItemTable.tsx:240 -msgid "Add line item" -msgstr "" +#: src/tables/sales/ReturnOrderLineItemTable.tsx:160 +#: src/tables/sales/SalesOrderLineItemTable.tsx:258 +#~ msgid "Add line item" +#~ msgstr "Add line item" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:354 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:373 msgid "Receive items" msgstr "" -#: src/tables/purchasing/SupplierPartTable.tsx:93 +#: src/tables/purchasing/SupplierPartTable.tsx:95 msgid "MPN" msgstr "" -#: src/tables/purchasing/SupplierPartTable.tsx:122 +#: src/tables/purchasing/SupplierPartTable.tsx:124 msgid "Base units" msgstr "" -#: src/tables/purchasing/SupplierPartTable.tsx:170 +#: src/tables/purchasing/SupplierPartTable.tsx:172 msgid "Supplier part created" msgstr "" -#: src/tables/purchasing/SupplierPartTable.tsx:176 +#: src/tables/purchasing/SupplierPartTable.tsx:179 msgid "Add supplier part" msgstr "" -#: src/tables/purchasing/SupplierPartTable.tsx:188 +#: src/tables/purchasing/SupplierPartTable.tsx:191 msgid "Show active supplier parts" msgstr "" -#: src/tables/purchasing/SupplierPartTable.tsx:192 -msgid "Active Part" -msgstr "" - -#: src/tables/purchasing/SupplierPartTable.tsx:193 -msgid "Show active internal parts" -msgstr "" - #: src/tables/purchasing/SupplierPartTable.tsx:193 #~ msgid "Supplier part updated" #~ msgstr "Supplier part updated" -#: src/tables/purchasing/SupplierPartTable.tsx:197 +#: src/tables/purchasing/SupplierPartTable.tsx:195 +msgid "Active Part" +msgstr "" + +#: src/tables/purchasing/SupplierPartTable.tsx:196 +msgid "Show active internal parts" +msgstr "" + +#: src/tables/purchasing/SupplierPartTable.tsx:200 msgid "Active Supplier" msgstr "" -#: src/tables/purchasing/SupplierPartTable.tsx:198 +#: src/tables/purchasing/SupplierPartTable.tsx:201 msgid "Show active suppliers" msgstr "" @@ -7203,99 +8343,187 @@ msgstr "" #~ msgid "Are you sure you want to remove this supplier part?" #~ msgstr "Are you sure you want to remove this supplier part?" -#: src/tables/sales/ReturnOrderLineItemTable.tsx:114 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:139 msgid "Received Date" msgstr "" -#: src/tables/sales/ReturnOrderLineItemTable.tsx:128 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:153 msgid "Show items which have been received" msgstr "" -#: src/tables/sales/ReturnOrderLineItemTable.tsx:133 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:158 msgid "Filter by line item status" msgstr "" -#: src/tables/sales/ReturnOrderLineItemTable.tsx:158 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:176 +msgid "Receive selected items" +msgstr "" + +#: src/tables/sales/ReturnOrderLineItemTable.tsx:205 msgid "Receive Item" msgstr "" -#: src/tables/sales/SalesOrderLineItemTable.tsx:262 -msgid "Allocate stock" +#: src/tables/sales/SalesOrderAllocationTable.tsx:60 +msgid "Show outstanding allocations" msgstr "" -#: src/tables/sales/SalesOrderLineItemTable.tsx:272 +#: src/tables/sales/SalesOrderAllocationTable.tsx:168 +#: src/tables/sales/SalesOrderAllocationTable.tsx:190 +msgid "Edit Allocation" +msgstr "" + +#: src/tables/sales/SalesOrderAllocationTable.tsx:175 +#: src/tables/sales/SalesOrderAllocationTable.tsx:197 +msgid "Delete Allocation" +msgstr "" + +#: src/tables/sales/SalesOrderLineItemTable.tsx:244 +msgid "Allocate Serial Numbers" +msgstr "" + +#: src/tables/sales/SalesOrderLineItemTable.tsx:277 +msgid "Show lines which are fully allocated" +msgstr "" + +#: src/tables/sales/SalesOrderLineItemTable.tsx:280 +#~ msgid "Allocate stock" +#~ msgstr "Allocate stock" + +#: src/tables/sales/SalesOrderLineItemTable.tsx:282 +msgid "Show lines which are completed" +msgstr "" + +#: src/tables/sales/SalesOrderLineItemTable.tsx:291 +#~ msgid "Allocate Serials" +#~ msgstr "Allocate Serials" + +#: src/tables/sales/SalesOrderLineItemTable.tsx:340 +msgid "Allocate serials" +msgstr "" + +#: src/tables/sales/SalesOrderLineItemTable.tsx:356 msgid "Build stock" msgstr "" -#: src/tables/sales/SalesOrderLineItemTable.tsx:289 -#: src/tables/stock/StockItemTable.tsx:507 +#: src/tables/sales/SalesOrderLineItemTable.tsx:373 +#: src/tables/stock/StockItemTable.tsx:512 msgid "Order stock" msgstr "" -#: src/tables/sales/SalesOrderShipmentTable.tsx:40 +#: src/tables/sales/SalesOrderShipmentTable.tsx:51 +#~ msgid "Delete Shipment" +#~ msgstr "Delete Shipment" + +#: src/tables/sales/SalesOrderShipmentTable.tsx:57 msgid "Create Shipment" msgstr "" -#: src/tables/sales/SalesOrderShipmentTable.tsx:50 -msgid "Delete Shipment" -msgstr "" - -#: src/tables/sales/SalesOrderShipmentTable.tsx:58 -msgid "Edit Shipment" -msgstr "" - -#: src/tables/sales/SalesOrderShipmentTable.tsx:66 -msgid "Shipment Reference" -msgstr "" - -#: src/tables/sales/SalesOrderShipmentTable.tsx:71 +#: src/tables/sales/SalesOrderShipmentTable.tsx:104 msgid "Items" msgstr "" -#: src/tables/sales/SalesOrderShipmentTable.tsx:83 -msgid "Delivery Date" +#: src/tables/sales/SalesOrderShipmentTable.tsx:139 +msgid "View Shipment" msgstr "" -#: src/tables/sales/SalesOrderShipmentTable.tsx:107 -msgid "Complete Shipment" +#: src/tables/sales/SalesOrderShipmentTable.tsx:161 +msgid "Edit shipment" msgstr "" -#: src/tables/sales/SalesOrderShipmentTable.tsx:133 +#: src/tables/sales/SalesOrderShipmentTable.tsx:169 +msgid "Cancel shipment" +msgstr "" + +#: src/tables/sales/SalesOrderShipmentTable.tsx:184 msgid "Add shipment" msgstr "" -#: src/tables/sales/SalesOrderShipmentTable.tsx:146 -msgid "Shipped" -msgstr "" - -#: src/tables/sales/SalesOrderShipmentTable.tsx:147 +#: src/tables/sales/SalesOrderShipmentTable.tsx:198 msgid "Show shipments which have been shipped" msgstr "" -#: src/tables/sales/SalesOrderShipmentTable.tsx:151 -msgid "Delivered" -msgstr "" - -#: src/tables/sales/SalesOrderShipmentTable.tsx:152 +#: src/tables/sales/SalesOrderShipmentTable.tsx:203 msgid "Show shipments which have been delivered" msgstr "" -#: src/tables/settings/CurrencyTable.tsx:28 -msgid "Rate" +#: src/tables/settings/BarcodeScanHistoryTable.tsx:61 +msgid "Barcode Information" msgstr "" -#: src/tables/settings/CurrencyTable.tsx:40 -msgid "Exchange rates updated" +#: src/tables/settings/BarcodeScanHistoryTable.tsx:76 +#: src/tables/settings/ErrorTable.tsx:59 +msgid "Timestamp" msgstr "" -#: src/tables/settings/CurrencyTable.tsx:46 -msgid "Exchange rate update error" +#: src/tables/settings/BarcodeScanHistoryTable.tsx:86 +msgid "Endpoint" msgstr "" -#: src/tables/settings/CurrencyTable.tsx:57 -msgid "Refresh currency exchange rates" +#: src/tables/settings/BarcodeScanHistoryTable.tsx:90 +#: src/tables/settings/BarcodeScanHistoryTable.tsx:217 +#: src/tables/stock/StockItemTestResultTable.tsx:174 +msgid "Result" msgstr "" +#: src/tables/settings/BarcodeScanHistoryTable.tsx:98 +msgid "Context" +msgstr "" + +#: src/tables/settings/BarcodeScanHistoryTable.tsx:119 +msgid "Response" +msgstr "" + +#: src/tables/settings/BarcodeScanHistoryTable.tsx:213 +#: src/tables/settings/ImportSessionTable.tsx:121 +#: src/tables/stock/StockTrackingTable.tsx:183 +msgid "Filter by user" +msgstr "" + +#: src/tables/settings/BarcodeScanHistoryTable.tsx:218 +msgid "Filter by result" +msgstr "" + +#: src/tables/settings/BarcodeScanHistoryTable.tsx:232 +msgid "Delete Barcode Scan Record" +msgstr "" + +#: src/tables/settings/BarcodeScanHistoryTable.tsx:258 +msgid "Barcode Scan Details" +msgstr "" + +#: src/tables/settings/BarcodeScanHistoryTable.tsx:268 +msgid "Logging Disabled" +msgstr "" + +#: src/tables/settings/BarcodeScanHistoryTable.tsx:270 +msgid "Barcode logging is not enabled" +msgstr "" + +#: src/tables/settings/CustomStateTable.tsx:36 +msgid "Display Name" +msgstr "" + +#: src/tables/settings/CustomStateTable.tsx:52 +msgid "Model" +msgstr "" + +#: src/tables/settings/CustomStateTable.tsx:65 +#: src/tables/settings/CustomStateTable.tsx:115 +msgid "Add State" +msgstr "" + +#: src/tables/settings/CustomStateTable.tsx:77 +msgid "Edit State" +msgstr "" + +#: src/tables/settings/CustomStateTable.tsx:85 +msgid "Delete State" +msgstr "" + +#: src/tables/settings/CustomStateTable.tsx:115 +#~ msgid "Add state" +#~ msgstr "Add state" + #: src/tables/settings/CustomUnitsTable.tsx:50 msgid "Add Custom Unit" msgstr "" @@ -7312,59 +8540,71 @@ msgstr "" msgid "Add custom unit" msgstr "" -#: src/tables/settings/ErrorTable.tsx:31 -msgid "When" -msgstr "" - -#: src/tables/settings/ErrorTable.tsx:41 -msgid "Error Information" -msgstr "" - #: src/tables/settings/ErrorTable.tsx:51 #~ msgid "Delete error report" #~ msgstr "Delete error report" -#: src/tables/settings/ErrorTable.tsx:53 +#: src/tables/settings/ErrorTable.tsx:67 +msgid "Traceback" +msgstr "" + +#: src/tables/settings/ErrorTable.tsx:103 +msgid "When" +msgstr "" + +#: src/tables/settings/ErrorTable.tsx:113 +msgid "Error Information" +msgstr "" + +#: src/tables/settings/ErrorTable.tsx:123 msgid "Delete Error Report" msgstr "" -#: src/tables/settings/ErrorTable.tsx:55 +#: src/tables/settings/ErrorTable.tsx:125 msgid "Are you sure you want to delete this error report?" msgstr "" -#: src/tables/settings/ErrorTable.tsx:57 +#: src/tables/settings/ErrorTable.tsx:127 msgid "Error report deleted" msgstr "" -#: src/tables/settings/ErrorTable.tsx:79 -#: src/tables/settings/FailedTasksTable.tsx:59 +#: src/tables/settings/ErrorTable.tsx:146 +#: src/tables/settings/FailedTasksTable.tsx:65 msgid "Error Details" msgstr "" -#: src/tables/settings/FailedTasksTable.tsx:26 -#: src/tables/settings/PendingTasksTable.tsx:19 +#: src/tables/settings/FailedTasksTable.tsx:32 +#: src/tables/settings/PendingTasksTable.tsx:23 #: src/tables/settings/ScheduledTasksTable.tsx:19 msgid "Task" msgstr "" -#: src/tables/settings/FailedTasksTable.tsx:32 -#: src/tables/settings/PendingTasksTable.tsx:24 +#: src/tables/settings/FailedTasksTable.tsx:38 +#: src/tables/settings/PendingTasksTable.tsx:28 msgid "Task ID" msgstr "" -#: src/tables/settings/FailedTasksTable.tsx:36 -#: src/tables/stock/StockItemTestResultTable.tsx:211 +#: src/tables/settings/FailedTasksTable.tsx:42 +#: src/tables/stock/StockItemTestResultTable.tsx:218 msgid "Started" msgstr "" -#: src/tables/settings/FailedTasksTable.tsx:42 +#: src/tables/settings/FailedTasksTable.tsx:48 msgid "Stopped" msgstr "" -#: src/tables/settings/FailedTasksTable.tsx:48 +#: src/tables/settings/FailedTasksTable.tsx:54 msgid "Attempts" msgstr "" +#: src/tables/settings/FailedTasksTable.tsx:92 +msgid "No Information" +msgstr "" + +#: src/tables/settings/FailedTasksTable.tsx:93 +msgid "No error details are available for this task" +msgstr "" + #: src/tables/settings/GroupTable.tsx:90 msgid "Group with id {id} not found" msgstr "" @@ -7398,42 +8638,34 @@ msgstr "" msgid "Edit group" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:38 +#: src/tables/settings/ImportSessionTable.tsx:37 msgid "Delete Import Session" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:44 +#: src/tables/settings/ImportSessionTable.tsx:43 #: src/tables/settings/ImportSessionTable.tsx:131 msgid "Create Import Session" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:69 +#: src/tables/settings/ImportSessionTable.tsx:68 msgid "Uploaded" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:79 -msgid "Imported Rows" -msgstr "" - -#: src/tables/settings/ImportSessionTable.tsx:109 -#: src/tables/settings/TemplateTable.tsx:289 +#: src/tables/settings/ImportSessionTable.tsx:108 +#: src/tables/settings/TemplateTable.tsx:369 msgid "Model Type" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:110 -#: src/tables/settings/TemplateTable.tsx:290 +#: src/tables/settings/ImportSessionTable.tsx:109 +#: src/tables/settings/TemplateTable.tsx:370 msgid "Filter by target model type" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:116 +#: src/tables/settings/ImportSessionTable.tsx:115 msgid "Filter by import session status" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:122 -msgid "Filter by user" -msgstr "" - -#: src/tables/settings/PendingTasksTable.tsx:38 +#: src/tables/settings/PendingTasksTable.tsx:42 msgid "Arguments" msgstr "" @@ -7461,12 +8693,16 @@ msgstr "" msgid "Next Run" msgstr "" -#: src/tables/settings/TemplateTable.tsx:85 -msgid "Template not found" +#: src/tables/settings/StocktakeReportTable.tsx:28 +msgid "Report" msgstr "" -#: src/tables/settings/TemplateTable.tsx:87 -msgid "An error occurred while fetching template details" +#: src/tables/settings/StocktakeReportTable.tsx:35 +msgid "Part Count" +msgstr "" + +#: src/tables/settings/StocktakeReportTable.tsx:58 +msgid "Delete Report" msgstr "" #: src/tables/settings/TemplateTable.tsx:120 @@ -7481,21 +8717,12 @@ msgstr "" #~ msgid "actions" #~ msgstr "actions" -#: src/tables/settings/TemplateTable.tsx:177 -msgid "Modify" +#: src/tables/settings/TemplateTable.tsx:162 +msgid "Template not found" msgstr "" -#: src/tables/settings/TemplateTable.tsx:178 -msgid "Modify template file" -msgstr "" - -#: src/tables/settings/TemplateTable.tsx:234 -#: src/tables/settings/TemplateTable.tsx:302 -msgid "Edit Template" -msgstr "" - -#: src/tables/settings/TemplateTable.tsx:242 -msgid "Delete template" +#: src/tables/settings/TemplateTable.tsx:164 +msgid "An error occurred while fetching template details" msgstr "" #: src/tables/settings/TemplateTable.tsx:243 @@ -7506,103 +8733,137 @@ msgstr "" #~ msgid "Create new" #~ msgstr "Create new" -#: src/tables/settings/TemplateTable.tsx:248 +#: src/tables/settings/TemplateTable.tsx:257 +msgid "Modify" +msgstr "" + +#: src/tables/settings/TemplateTable.tsx:258 +msgid "Modify template file" +msgstr "" + +#: src/tables/settings/TemplateTable.tsx:314 +#: src/tables/settings/TemplateTable.tsx:382 +msgid "Edit Template" +msgstr "" + +#: src/tables/settings/TemplateTable.tsx:322 +msgid "Delete template" +msgstr "" + +#: src/tables/settings/TemplateTable.tsx:328 msgid "Add Template" msgstr "" -#: src/tables/settings/TemplateTable.tsx:261 +#: src/tables/settings/TemplateTable.tsx:341 msgid "Add template" msgstr "" -#: src/tables/settings/TemplateTable.tsx:284 +#: src/tables/settings/TemplateTable.tsx:364 msgid "Filter by enabled status" msgstr "" -#: src/tables/settings/UserTable.tsx:82 +#: src/tables/settings/UserTable.tsx:81 msgid "User with id {id} not found" msgstr "" -#: src/tables/settings/UserTable.tsx:84 +#: src/tables/settings/UserTable.tsx:83 msgid "An error occurred while fetching user details" msgstr "" -#: src/tables/settings/UserTable.tsx:102 +#: src/tables/settings/UserTable.tsx:101 msgid "Is Active" msgstr "" -#: src/tables/settings/UserTable.tsx:103 +#: src/tables/settings/UserTable.tsx:102 msgid "Designates whether this user should be treated as active. Unselect this instead of deleting accounts." msgstr "" -#: src/tables/settings/UserTable.tsx:107 +#: src/tables/settings/UserTable.tsx:106 msgid "Is Staff" msgstr "" -#: src/tables/settings/UserTable.tsx:108 +#: src/tables/settings/UserTable.tsx:107 msgid "Designates whether the user can log into the django admin site." msgstr "" -#: src/tables/settings/UserTable.tsx:112 +#: src/tables/settings/UserTable.tsx:111 msgid "Is Superuser" msgstr "" -#: src/tables/settings/UserTable.tsx:113 +#: src/tables/settings/UserTable.tsx:112 msgid "Designates that this user has all permissions without explicitly assigning them." msgstr "" -#: src/tables/settings/UserTable.tsx:123 +#: src/tables/settings/UserTable.tsx:122 msgid "You cannot edit the rights for the currently logged-in user." msgstr "" -#: src/tables/settings/UserTable.tsx:154 +#: src/tables/settings/UserTable.tsx:153 msgid "No groups" msgstr "" -#: src/tables/settings/UserTable.tsx:245 +#: src/tables/settings/UserTable.tsx:244 msgid "Delete user" msgstr "" -#: src/tables/settings/UserTable.tsx:246 +#: src/tables/settings/UserTable.tsx:245 msgid "User deleted" msgstr "" -#: src/tables/settings/UserTable.tsx:248 +#: src/tables/settings/UserTable.tsx:247 msgid "Are you sure you want to delete this user?" msgstr "" -#: src/tables/settings/UserTable.tsx:254 -#: src/tables/settings/UserTable.tsx:272 +#: src/tables/settings/UserTable.tsx:253 +#: src/tables/settings/UserTable.tsx:271 msgid "Add user" msgstr "" -#: src/tables/settings/UserTable.tsx:262 +#: src/tables/settings/UserTable.tsx:261 msgid "Added user" msgstr "" -#: src/tables/settings/UserTable.tsx:285 +#: src/tables/settings/UserTable.tsx:284 msgid "Show active users" msgstr "" -#: src/tables/settings/UserTable.tsx:289 +#: src/tables/settings/UserTable.tsx:288 msgid "Staff" msgstr "" -#: src/tables/settings/UserTable.tsx:290 +#: src/tables/settings/UserTable.tsx:289 msgid "Show staff users" msgstr "" #: src/tables/settings/UserTable.tsx:294 -msgid "Superuser" -msgstr "" - -#: src/tables/settings/UserTable.tsx:295 msgid "Show superusers" msgstr "" -#: src/tables/settings/UserTable.tsx:305 +#: src/tables/settings/UserTable.tsx:304 msgid "Edit user" msgstr "" +#: src/tables/stock/InstalledItemsTable.tsx:37 +#: src/tables/stock/InstalledItemsTable.tsx:90 +msgid "Install Item" +msgstr "" + +#: src/tables/stock/InstalledItemsTable.tsx:39 +msgid "Item installed" +msgstr "" + +#: src/tables/stock/InstalledItemsTable.tsx:50 +msgid "Uninstall Item" +msgstr "" + +#: src/tables/stock/InstalledItemsTable.tsx:52 +msgid "Item uninstalled" +msgstr "" + +#: src/tables/stock/InstalledItemsTable.tsx:108 +msgid "Uninstall stock item" +msgstr "" + #: src/tables/stock/LocationTypesTable.tsx:39 #: src/tables/stock/LocationTypesTable.tsx:109 msgid "Add Location Type" @@ -7620,276 +8881,272 @@ msgstr "" msgid "Icon" msgstr "" -#: src/tables/stock/StockItemTable.tsx:101 +#: src/tables/stock/StockItemTable.tsx:90 msgid "This stock item is in production" msgstr "" -#: src/tables/stock/StockItemTable.tsx:110 +#: src/tables/stock/StockItemTable.tsx:97 msgid "This stock item has been assigned to a sales order" msgstr "" -#: src/tables/stock/StockItemTable.tsx:119 +#: src/tables/stock/StockItemTable.tsx:104 msgid "This stock item has been assigned to a customer" msgstr "" -#: src/tables/stock/StockItemTable.tsx:128 +#: src/tables/stock/StockItemTable.tsx:111 msgid "This stock item is installed in another stock item" msgstr "" -#: src/tables/stock/StockItemTable.tsx:137 +#: src/tables/stock/StockItemTable.tsx:118 msgid "This stock item has been consumed by a build order" msgstr "" -#: src/tables/stock/StockItemTable.tsx:146 +#: src/tables/stock/StockItemTable.tsx:125 +msgid "This stock item is unavailable" +msgstr "" + +#: src/tables/stock/StockItemTable.tsx:134 msgid "This stock item has expired" msgstr "" -#: src/tables/stock/StockItemTable.tsx:150 +#: src/tables/stock/StockItemTable.tsx:138 msgid "This stock item is stale" msgstr "" -#: src/tables/stock/StockItemTable.tsx:161 +#: src/tables/stock/StockItemTable.tsx:150 msgid "This stock item is fully allocated" msgstr "" -#: src/tables/stock/StockItemTable.tsx:168 +#: src/tables/stock/StockItemTable.tsx:157 msgid "This stock item is partially allocated" msgstr "" -#: src/tables/stock/StockItemTable.tsx:196 +#: src/tables/stock/StockItemTable.tsx:185 msgid "This stock item has been depleted" msgstr "" -#: src/tables/stock/StockItemTable.tsx:232 +#: src/tables/stock/StockItemTable.tsx:280 msgid "Stocktake Date" msgstr "" -#: src/tables/stock/StockItemTable.tsx:236 -msgid "Expiry Date" -msgstr "" - -#: src/tables/stock/StockItemTable.tsx:260 -msgid "Stock Value" -msgstr "" - -#: src/tables/stock/StockItemTable.tsx:290 +#: src/tables/stock/StockItemTable.tsx:294 msgid "Show stock for active parts" msgstr "" -#: src/tables/stock/StockItemTable.tsx:295 +#: src/tables/stock/StockItemTable.tsx:299 msgid "Filter by stock status" msgstr "" #: src/tables/stock/StockItemTable.tsx:301 -msgid "Show stock for assmebled parts" +#~ msgid "Show stock for assmebled parts" +#~ msgstr "Show stock for assmebled parts" + +#: src/tables/stock/StockItemTable.tsx:305 +msgid "Show stock for assembled parts" msgstr "" -#: src/tables/stock/StockItemTable.tsx:306 +#: src/tables/stock/StockItemTable.tsx:310 msgid "Show items which have been allocated" msgstr "" -#: src/tables/stock/StockItemTable.tsx:311 +#: src/tables/stock/StockItemTable.tsx:315 msgid "Show items which are available" msgstr "" -#: src/tables/stock/StockItemTable.tsx:315 +#: src/tables/stock/StockItemTable.tsx:319 #: src/tables/stock/StockLocationTable.tsx:44 msgid "Include Sublocations" msgstr "" -#: src/tables/stock/StockItemTable.tsx:316 +#: src/tables/stock/StockItemTable.tsx:320 msgid "Include stock in sublocations" msgstr "" -#: src/tables/stock/StockItemTable.tsx:320 +#: src/tables/stock/StockItemTable.tsx:324 msgid "Depleted" msgstr "" -#: src/tables/stock/StockItemTable.tsx:321 +#: src/tables/stock/StockItemTable.tsx:325 msgid "Show depleted stock items" msgstr "" -#: src/tables/stock/StockItemTable.tsx:326 +#: src/tables/stock/StockItemTable.tsx:330 msgid "Show items which are in stock" msgstr "" -#: src/tables/stock/StockItemTable.tsx:331 +#: src/tables/stock/StockItemTable.tsx:335 msgid "Show items which are in production" msgstr "" -#: src/tables/stock/StockItemTable.tsx:336 +#: src/tables/stock/StockItemTable.tsx:340 msgid "Include stock items for variant parts" msgstr "" -#: src/tables/stock/StockItemTable.tsx:341 +#: src/tables/stock/StockItemTable.tsx:345 msgid "Show stock items which are installed in other items" msgstr "" -#: src/tables/stock/StockItemTable.tsx:345 +#: src/tables/stock/StockItemTable.tsx:349 msgid "Sent to Customer" msgstr "" -#: src/tables/stock/StockItemTable.tsx:346 +#: src/tables/stock/StockItemTable.tsx:350 msgid "Show items which have been sent to a customer" msgstr "" -#: src/tables/stock/StockItemTable.tsx:350 +#: src/tables/stock/StockItemTable.tsx:354 msgid "Is Serialized" msgstr "" -#: src/tables/stock/StockItemTable.tsx:351 +#: src/tables/stock/StockItemTable.tsx:355 msgid "Show items which have a serial number" msgstr "" -#: src/tables/stock/StockItemTable.tsx:358 +#: src/tables/stock/StockItemTable.tsx:362 msgid "Has Batch Code" msgstr "" -#: src/tables/stock/StockItemTable.tsx:359 +#: src/tables/stock/StockItemTable.tsx:363 msgid "Show items which have a batch code" msgstr "" -#: src/tables/stock/StockItemTable.tsx:365 +#: src/tables/stock/StockItemTable.tsx:369 msgid "Show tracked items" msgstr "" -#: src/tables/stock/StockItemTable.tsx:369 +#: src/tables/stock/StockItemTable.tsx:373 msgid "Has Purchase Price" msgstr "" -#: src/tables/stock/StockItemTable.tsx:370 +#: src/tables/stock/StockItemTable.tsx:374 msgid "Show items which have a purchase price" msgstr "" -#: src/tables/stock/StockItemTable.tsx:378 +#: src/tables/stock/StockItemTable.tsx:382 msgid "External Location" msgstr "" -#: src/tables/stock/StockItemTable.tsx:379 +#: src/tables/stock/StockItemTable.tsx:383 msgid "Show items in an external location" msgstr "" -#: src/tables/stock/StockItemTable.tsx:451 +#: src/tables/stock/StockItemTable.tsx:456 msgid "Add a new stock item" msgstr "" -#: src/tables/stock/StockItemTable.tsx:460 +#: src/tables/stock/StockItemTable.tsx:465 msgid "Remove some quantity from a stock item" msgstr "" -#: src/tables/stock/StockItemTable.tsx:482 +#: src/tables/stock/StockItemTable.tsx:487 msgid "Move Stock items to new locations" msgstr "" -#: src/tables/stock/StockItemTable.tsx:489 +#: src/tables/stock/StockItemTable.tsx:494 msgid "Change stock status" msgstr "" -#: src/tables/stock/StockItemTable.tsx:491 +#: src/tables/stock/StockItemTable.tsx:496 msgid "Change the status of stock items" msgstr "" -#: src/tables/stock/StockItemTable.tsx:498 +#: src/tables/stock/StockItemTable.tsx:503 msgid "Merge stock" msgstr "" -#: src/tables/stock/StockItemTable.tsx:500 +#: src/tables/stock/StockItemTable.tsx:505 msgid "Merge stock items" msgstr "" -#: src/tables/stock/StockItemTable.tsx:509 -#: src/tables/stock/StockItemTable.tsx:516 +#: src/tables/stock/StockItemTable.tsx:514 +#: src/tables/stock/StockItemTable.tsx:521 msgid "Order new stock" msgstr "" -#: src/tables/stock/StockItemTable.tsx:514 +#: src/tables/stock/StockItemTable.tsx:519 msgid "Assign to customer" msgstr "" -#: src/tables/stock/StockItemTable.tsx:523 +#: src/tables/stock/StockItemTable.tsx:528 msgid "Delete stock" msgstr "" -#: src/tables/stock/StockItemTable.tsx:525 -msgid "Delete stock items" -msgstr "" +#: src/tables/stock/StockItemTable.tsx:528 +#~ msgid "Delete stock items" +#~ msgstr "Delete stock items" -#: src/tables/stock/StockItemTestResultTable.tsx:131 +#: src/tables/stock/StockItemTestResultTable.tsx:137 msgid "Test" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:157 +#: src/tables/stock/StockItemTestResultTable.tsx:163 msgid "Test result for installed stock item" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:168 -msgid "Result" -msgstr "" - -#: src/tables/stock/StockItemTestResultTable.tsx:190 +#: src/tables/stock/StockItemTestResultTable.tsx:196 msgid "Attachment" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:206 +#: src/tables/stock/StockItemTestResultTable.tsx:212 msgid "Test station" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:226 +#: src/tables/stock/StockItemTestResultTable.tsx:234 msgid "Finished" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:268 -#: src/tables/stock/StockItemTestResultTable.tsx:339 +#: src/tables/stock/StockItemTestResultTable.tsx:286 +#: src/tables/stock/StockItemTestResultTable.tsx:357 msgid "Edit Test Result" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:270 +#: src/tables/stock/StockItemTestResultTable.tsx:288 msgid "Test result updated" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:276 -#: src/tables/stock/StockItemTestResultTable.tsx:348 +#: src/tables/stock/StockItemTestResultTable.tsx:294 +#: src/tables/stock/StockItemTestResultTable.tsx:366 msgid "Delete Test Result" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:278 +#: src/tables/stock/StockItemTestResultTable.tsx:296 msgid "Test result deleted" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:292 +#: src/tables/stock/StockItemTestResultTable.tsx:310 msgid "Test Passed" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:293 +#: src/tables/stock/StockItemTestResultTable.tsx:311 msgid "Test result has been recorded" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:300 +#: src/tables/stock/StockItemTestResultTable.tsx:318 msgid "Failed to record test result" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:317 +#: src/tables/stock/StockItemTestResultTable.tsx:335 msgid "Pass Test" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:366 +#: src/tables/stock/StockItemTestResultTable.tsx:384 msgid "Show results for required tests" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:370 +#: src/tables/stock/StockItemTestResultTable.tsx:388 msgid "Include Installed" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:371 +#: src/tables/stock/StockItemTestResultTable.tsx:389 msgid "Show results for installed stock items" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:375 -#: src/tables/stock/TestStatisticsTable.tsx:74 +#: src/tables/stock/StockItemTestResultTable.tsx:393 +#: src/tables/stock/TestStatisticsTable.tsx:62 msgid "Passed" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:376 +#: src/tables/stock/StockItemTestResultTable.tsx:394 msgid "Show only passed tests" msgstr "" @@ -7922,28 +9179,32 @@ msgid "Filter by location type" msgstr "" #: src/tables/stock/StockLocationTable.tsx:107 -#: src/tables/stock/StockLocationTable.tsx:133 +#: src/tables/stock/StockLocationTable.tsx:134 msgid "Add Stock Location" msgstr "" -#: src/tables/stock/StockTrackingTable.tsx:64 +#: src/tables/stock/StockTrackingTable.tsx:68 msgid "Added" msgstr "" -#: src/tables/stock/StockTrackingTable.tsx:69 +#: src/tables/stock/StockTrackingTable.tsx:73 msgid "Removed" msgstr "" #: src/tables/stock/StockTrackingTable.tsx:198 +msgid "Details" +msgstr "" + +#: src/tables/stock/StockTrackingTable.tsx:213 msgid "No user information" msgstr "" -#: src/tables/stock/TestStatisticsTable.tsx:46 -#: src/tables/stock/TestStatisticsTable.tsx:76 +#: src/tables/stock/TestStatisticsTable.tsx:34 +#: src/tables/stock/TestStatisticsTable.tsx:64 msgid "Total" msgstr "" -#: src/tables/stock/TestStatisticsTable.tsx:75 +#: src/tables/stock/TestStatisticsTable.tsx:63 msgid "Failed" msgstr "" diff --git a/src/frontend/src/locales/bg/messages.po b/src/frontend/src/locales/bg/messages.po index d1e93ca8f6..baa1038124 100644 --- a/src/frontend/src/locales/bg/messages.po +++ b/src/frontend/src/locales/bg/messages.po @@ -8,15 +8,15 @@ msgstr "" "Language: bg\n" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"PO-Revision-Date: 2024-08-20 19:49\n" +"PO-Revision-Date: 2024-11-04 03:14\n" "Last-Translator: \n" "Language-Team: Bulgarian\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Crowdin-Project: inventree\n" "X-Crowdin-Project-ID: 452300\n" "X-Crowdin-Language: bg\n" -"X-Crowdin-File: /[inventree.InvenTree] l10/src/frontend/src/locales/en/messages.po\n" -"X-Crowdin-File-ID: 205\n" +"X-Crowdin-File: /src/frontend/src/locales/en/messages.po\n" +"X-Crowdin-File-ID: 252\n" #: src/components/Boundary.tsx:12 msgid "Error rendering component" @@ -27,8 +27,8 @@ msgid "An error occurred while rendering this component. Refer to the console fo msgstr "" #: src/components/DashboardItemProxy.tsx:34 -msgid "Title" -msgstr "" +#~ msgid "Title" +#~ msgstr "Title" #: src/components/buttons/AdminButton.tsx:80 msgid "Open in admin interface" @@ -38,82 +38,99 @@ msgstr "" #~ msgid "Copy to clipboard" #~ msgstr "Copy to clipboard" -#: src/components/buttons/CopyButton.tsx:24 +#: src/components/buttons/CopyButton.tsx:29 msgid "Copied" msgstr "" -#: src/components/buttons/CopyButton.tsx:24 +#: src/components/buttons/CopyButton.tsx:29 msgid "Copy" msgstr "" -#: src/components/buttons/PrintingActions.tsx:93 +#: src/components/buttons/PrintingActions.tsx:97 msgid "Print Label" msgstr "" -#: src/components/buttons/PrintingActions.tsx:99 +#: src/components/buttons/PrintingActions.tsx:103 msgid "Print" msgstr "" -#: src/components/buttons/PrintingActions.tsx:100 +#: src/components/buttons/PrintingActions.tsx:104 msgid "Label printing completed successfully" msgstr "" -#: src/components/buttons/PrintingActions.tsx:106 -#: src/components/buttons/PrintingActions.tsx:144 -#: src/components/editors/NotesEditor.tsx:65 -#: src/components/editors/NotesEditor.tsx:165 -#: src/components/forms/fields/ApiFormField.tsx:319 +#: src/components/buttons/PrintingActions.tsx:110 +#: src/components/buttons/PrintingActions.tsx:148 +#: src/components/editors/NotesEditor.tsx:73 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:154 +#: src/components/forms/fields/ApiFormField.tsx:328 +#: src/components/forms/fields/TableField.tsx:43 #: src/components/importer/ImportDataSelector.tsx:187 -#: src/components/importer/ImporterColumnSelector.tsx:207 +#: src/components/importer/ImporterColumnSelector.tsx:210 #: src/components/modals/LicenseModal.tsx:75 -#: src/components/nav/SearchDrawer.tsx:448 +#: src/components/nav/SearchDrawer.tsx:458 +#: src/components/render/ModelType.tsx:290 #: src/pages/ErrorPage.tsx:11 -#: src/pages/part/PartPricingPanel.tsx:67 -#: src/tables/InvenTreeTable.tsx:495 +#: src/pages/part/PartPricingPanel.tsx:71 +#: src/tables/InvenTreeTable.tsx:481 #: src/tables/bom/BomTable.tsx:450 -#: src/tables/stock/StockItemTestResultTable.tsx:299 +#: src/tables/stock/StockItemTestResultTable.tsx:317 msgid "Error" msgstr "" -#: src/components/buttons/PrintingActions.tsx:107 +#: src/components/buttons/PrintingActions.tsx:111 msgid "The label could not be generated" msgstr "" -#: src/components/buttons/PrintingActions.tsx:122 +#: src/components/buttons/PrintingActions.tsx:126 msgid "Print Report" msgstr "" -#: src/components/buttons/PrintingActions.tsx:138 +#: src/components/buttons/PrintingActions.tsx:142 msgid "Generate" msgstr "" -#: src/components/buttons/PrintingActions.tsx:139 +#: src/components/buttons/PrintingActions.tsx:143 msgid "Report printing completed successfully" msgstr "" -#: src/components/buttons/PrintingActions.tsx:145 +#: src/components/buttons/PrintingActions.tsx:149 msgid "The report could not be generated" msgstr "" -#: src/components/buttons/PrintingActions.tsx:173 +#: src/components/buttons/PrintingActions.tsx:177 msgid "Printing Actions" msgstr "" -#: src/components/buttons/PrintingActions.tsx:178 +#: src/components/buttons/PrintingActions.tsx:182 msgid "Print Labels" msgstr "" -#: src/components/buttons/PrintingActions.tsx:184 +#: src/components/buttons/PrintingActions.tsx:188 msgid "Print Reports" msgstr "" +#: src/components/buttons/RemoveRowButton.tsx:8 +msgid "Remove this row" +msgstr "" + #: src/components/buttons/ScanButton.tsx:15 -msgid "Scan QR code" +#: src/components/nav/NavigationDrawer.tsx:117 +#: src/forms/PurchaseOrderForms.tsx:379 +#: src/forms/PurchaseOrderForms.tsx:473 +msgid "Scan Barcode" +msgstr "" + +#: src/components/buttons/ScanButton.tsx:15 +#~ msgid "Scan QR code" +#~ msgstr "Scan QR code" + +#: src/components/buttons/ScanButton.tsx:20 +msgid "Open Barcode Scanner" msgstr "" #: src/components/buttons/ScanButton.tsx:20 -msgid "Open QR code scanner" -msgstr "" +#~ msgid "Open QR code scanner" +#~ msgstr "Open QR code scanner" #: src/components/buttons/SpotlightButton.tsx:14 msgid "Open spotlight" @@ -128,85 +145,347 @@ msgid "Fail" msgstr "" #: src/components/buttons/YesNoButton.tsx:33 -#: src/tables/Filter.tsx:52 +#: src/tables/Filter.tsx:61 msgid "Yes" msgstr "" #: src/components/buttons/YesNoButton.tsx:33 -#: src/tables/Filter.tsx:53 +#: src/tables/Filter.tsx:62 msgid "No" msgstr "" -#: src/components/details/Details.tsx:301 +#: src/components/dashboard/DashboardLayout.tsx:286 +msgid "No Widgets Selected" +msgstr "" + +#: src/components/dashboard/DashboardLayout.tsx:289 +msgid "Use the menu to add widgets to the dashboard" +msgstr "" + +#: src/components/dashboard/DashboardMenu.tsx:59 +#: src/components/dashboard/DashboardMenu.tsx:126 +msgid "Accept Layout" +msgstr "" + +#: src/components/dashboard/DashboardMenu.tsx:91 +#: src/components/nav/NavigationDrawer.tsx:71 +#: src/defaults/actions.tsx:17 +#: src/defaults/links.tsx:9 +#: src/pages/Index/Settings/UserSettings.tsx:47 +msgid "Dashboard" +msgstr "" + +#: src/components/dashboard/DashboardMenu.tsx:99 +msgid "Edit Layout" +msgstr "" + +#: src/components/dashboard/DashboardMenu.tsx:108 +msgid "Add Widget" +msgstr "" + +#: src/components/dashboard/DashboardMenu.tsx:117 +msgid "Remove Widgets" +msgstr "" + +#: src/components/dashboard/DashboardWidget.tsx:65 +msgid "Remove this widget from the dashboard" +msgstr "" + +#: src/components/dashboard/DashboardWidgetDrawer.tsx:77 +msgid "Filter dashboard widgets" +msgstr "" + +#: src/components/dashboard/DashboardWidgetDrawer.tsx:98 +msgid "Add this widget to the dashboard" +msgstr "" + +#: src/components/dashboard/DashboardWidgetDrawer.tsx:123 +msgid "No Widgets Available" +msgstr "" + +#: src/components/dashboard/DashboardWidgetDrawer.tsx:124 +msgid "There are no more widgets available for the dashboard" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:19 +msgid "Subscribed Parts" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:20 +msgid "Show the number of parts which you have subscribed to" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:26 +msgid "Subscribed Categories" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:27 +msgid "Show the number of part categories which you have subscribed to" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:35 +#: src/pages/part/PartSchedulingDetail.tsx:304 +#: src/tables/part/PartTable.tsx:238 +msgid "Low Stock" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:37 +msgid "Show the number of parts which are low on stock" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:43 +msgid "Expired Stock Items" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:45 +msgid "Show the number of stock items which have expired" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:51 +msgid "Stale Stock Items" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:53 +msgid "Show the number of stock items which are stale" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:59 +msgid "Active Build Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:61 +msgid "Show the number of build orders which are currently active" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:66 +msgid "Overdue Build Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:68 +msgid "Show the number of build orders which are overdue" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:73 +msgid "Assigned Build Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:75 +msgid "Show the number of build orders which are assigned to you" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:80 +msgid "Active Sales Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:82 +msgid "Show the number of sales orders which are currently active" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:87 +msgid "Overdue Sales Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:89 +msgid "Show the number of sales orders which are overdue" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:94 +msgid "Assigned Sales Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:96 +msgid "Show the number of sales orders which are assigned to you" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:101 +msgid "Active Purchase Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:103 +msgid "Show the number of purchase orders which are currently active" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:108 +msgid "Overdue Purchase Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:110 +msgid "Show the number of purchase orders which are overdue" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:115 +msgid "Assigned Purchase Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:117 +msgid "Show the number of purchase orders which are assigned to you" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:122 +msgid "Active Return Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:124 +msgid "Show the number of return orders which are currently active" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:129 +msgid "Overdue Return Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:131 +msgid "Show the number of return orders which are overdue" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:136 +msgid "Assigned Return Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:138 +msgid "Show the number of return orders which are assigned to you" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:149 +#: src/components/dashboard/widgets/GetStartedWidget.tsx:15 +#: src/defaults/links.tsx:38 +msgid "Getting Started" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:150 +#: src/defaults/links.tsx:41 +msgid "Getting started with InvenTree" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:157 +#: src/components/dashboard/widgets/NewsWidget.tsx:123 +msgid "News Updates" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:158 +msgid "The latest news from InvenTree" +msgstr "" + +#: src/components/dashboard/widgets/ColorToggleWidget.tsx:18 +#: src/components/nav/MainMenu.tsx:77 +msgid "Change Color Mode" +msgstr "" + +#: src/components/dashboard/widgets/ColorToggleWidget.tsx:23 +msgid "Change the color mode of the user interface" +msgstr "" + +#: src/components/dashboard/widgets/LanguageSelectWidget.tsx:18 +msgid "Change Language" +msgstr "" + +#: src/components/dashboard/widgets/LanguageSelectWidget.tsx:23 +msgid "Change the language of the user interface" +msgstr "" + +#: src/components/dashboard/widgets/NewsWidget.tsx:61 +#: src/components/nav/NotificationDrawer.tsx:88 +#: src/pages/Notifications.tsx:73 +msgid "Mark as read" +msgstr "" + +#: src/components/dashboard/widgets/NewsWidget.tsx:115 +msgid "Requires Superuser" +msgstr "" + +#: src/components/dashboard/widgets/NewsWidget.tsx:116 +msgid "This widget requires superuser permissions" +msgstr "" + +#: src/components/dashboard/widgets/NewsWidget.tsx:133 +msgid "No News" +msgstr "" + +#: src/components/dashboard/widgets/NewsWidget.tsx:134 +msgid "There are no unread news items" +msgstr "" + +#: src/components/details/Details.tsx:300 msgid "No name defined" msgstr "" -#: src/components/details/DetailsImage.tsx:65 +#: src/components/details/DetailsImage.tsx:69 msgid "Remove Image" msgstr "" -#: src/components/details/DetailsImage.tsx:68 +#: src/components/details/DetailsImage.tsx:72 msgid "Remove the associated image from this item?" msgstr "" -#: src/components/details/DetailsImage.tsx:71 -#: src/forms/StockForms.tsx:533 +#: src/components/details/DetailsImage.tsx:75 +#: src/forms/StockForms.tsx:651 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:199 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:306 -#: src/pages/stock/StockDetail.tsx:526 +#: src/pages/stock/StockDetail.tsx:690 msgid "Remove" msgstr "" -#: src/components/details/DetailsImage.tsx:71 -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:158 -#: src/components/items/ActionDropdown.tsx:215 -#: src/components/items/ActionDropdown.tsx:216 -#: src/contexts/ThemeContext.tsx:43 +#: src/components/details/DetailsImage.tsx:75 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:184 +#: src/components/items/ActionDropdown.tsx:268 +#: src/components/items/ActionDropdown.tsx:269 +#: src/contexts/ThemeContext.tsx:45 #: src/hooks/UseForm.tsx:40 -#: src/tables/FilterSelectDrawer.tsx:205 -#: src/tables/build/BuildOutputTable.tsx:286 +#: src/tables/FilterSelectDrawer.tsx:241 +#: src/tables/RowActions.tsx:59 +#: src/tables/build/BuildOutputTable.tsx:434 msgid "Cancel" msgstr "" -#: src/components/details/DetailsImage.tsx:97 +#: src/components/details/DetailsImage.tsx:101 msgid "Drag and drop to upload" msgstr "" -#: src/components/details/DetailsImage.tsx:100 +#: src/components/details/DetailsImage.tsx:104 msgid "Click to select file(s)" msgstr "" -#: src/components/details/DetailsImage.tsx:226 +#: src/components/details/DetailsImage.tsx:230 msgid "Clear" msgstr "" -#: src/components/details/DetailsImage.tsx:232 -#: src/components/forms/ApiForm.tsx:627 -#: src/contexts/ThemeContext.tsx:43 -#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:60 +#: src/components/details/DetailsImage.tsx:236 +#: src/components/forms/ApiForm.tsx:660 +#: src/contexts/ThemeContext.tsx:45 msgid "Submit" msgstr "" -#: src/components/details/DetailsImage.tsx:272 +#: src/components/details/DetailsImage.tsx:280 msgid "Select from existing images" msgstr "" -#: src/components/details/DetailsImage.tsx:280 +#: src/components/details/DetailsImage.tsx:288 msgid "Select Image" msgstr "" -#: src/components/details/DetailsImage.tsx:292 +#: src/components/details/DetailsImage.tsx:304 +msgid "Download remote image" +msgstr "" + +#: src/components/details/DetailsImage.tsx:319 msgid "Upload new image" msgstr "" -#: src/components/details/DetailsImage.tsx:299 +#: src/components/details/DetailsImage.tsx:326 msgid "Upload Image" msgstr "" -#: src/components/details/DetailsImage.tsx:312 +#: src/components/details/DetailsImage.tsx:339 msgid "Delete image" msgstr "" +#: src/components/details/DetailsImage.tsx:373 +msgid "Download Image" +msgstr "" + +#: src/components/details/DetailsImage.tsx:378 +msgid "Image downloaded successfully" +msgstr "" + #: src/components/details/PartIcons.tsx:43 #~ msgid "Part is a template part (variants can be made from this part)" #~ msgstr "Part is a template part (variants can be made from this part)" @@ -235,36 +514,57 @@ msgstr "" #~ msgid "Part is virtual (not a physical part)" #~ msgstr "Part is virtual (not a physical part)" -#: src/components/editors/NotesEditor.tsx:66 +#: src/components/editors/NotesEditor.tsx:74 msgid "Image upload failed" msgstr "" -#: src/components/editors/NotesEditor.tsx:156 -#: src/components/forms/ApiForm.tsx:467 +#: src/components/editors/NotesEditor.tsx:83 +#: src/components/editors/NotesEditor.tsx:119 +#: src/components/forms/ApiForm.tsx:475 #: src/tables/bom/BomTable.tsx:441 msgid "Success" msgstr "" -#: src/components/editors/NotesEditor.tsx:157 +#: src/components/editors/NotesEditor.tsx:84 +msgid "Image uploaded successfully" +msgstr "" + +#: src/components/editors/NotesEditor.tsx:120 msgid "Notes saved successfully" msgstr "" -#: src/components/editors/NotesEditor.tsx:166 +#: src/components/editors/NotesEditor.tsx:131 msgid "Failed to save notes" msgstr "" -#: src/components/editors/NotesEditor.tsx:198 -msgid "Preview Notes" +#: src/components/editors/NotesEditor.tsx:134 +msgid "Error Saving Notes" msgstr "" -#: src/components/editors/NotesEditor.tsx:198 -msgid "Edit Notes" -msgstr "" +#: src/components/editors/NotesEditor.tsx:151 +#~ msgid "Disable Editing" +#~ msgstr "Disable Editing" -#: src/components/editors/NotesEditor.tsx:212 +#: src/components/editors/NotesEditor.tsx:154 msgid "Save Notes" msgstr "" +#: src/components/editors/NotesEditor.tsx:173 +msgid "Close Editor" +msgstr "" + +#: src/components/editors/NotesEditor.tsx:180 +msgid "Enable Editing" +msgstr "" + +#: src/components/editors/NotesEditor.tsx:198 +#~ msgid "Preview Notes" +#~ msgstr "Preview Notes" + +#: src/components/editors/NotesEditor.tsx:198 +#~ msgid "Edit Notes" +#~ msgstr "Edit Notes" + #: src/components/editors/TemplateEditor/CodeEditor/index.tsx:9 msgid "Code" msgstr "" @@ -281,40 +581,44 @@ msgstr "" msgid "PDF Preview" msgstr "" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:104 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:115 msgid "Error loading template" msgstr "" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:116 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:127 msgid "Error saving template" msgstr "" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:146 -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:274 -msgid "Save & Reload Preview" -msgstr "" - -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:151 -msgid "Are you sure you want to Save & Reload the preview?" -msgstr "" - #: src/components/editors/TemplateEditor/TemplateEditor.tsx:151 #~ msgid "Save & Reload preview?" #~ msgstr "Save & Reload preview?" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:153 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:155 +msgid "Could not load the template from the server." +msgstr "" + +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:172 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:303 +msgid "Save & Reload Preview" +msgstr "" + +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:177 +msgid "Are you sure you want to Save & Reload the preview?" +msgstr "" + +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:179 msgid "To render the preview the current template needs to be replaced on the server with your modifications which may break the label if it is under active use. Do you want to proceed?" msgstr "" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:157 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:183 msgid "Save & Reload" msgstr "" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:189 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:215 msgid "Preview updated" msgstr "" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:190 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:216 msgid "The preview has been updated successfully." msgstr "" @@ -322,15 +626,15 @@ msgstr "" #~ msgid "Save & Reload preview" #~ msgstr "Save & Reload preview" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:266 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:295 msgid "Reload preview" msgstr "" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:267 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:296 msgid "Use the currently stored template from the server" msgstr "" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:275 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:304 msgid "Save the current template and reload the preview" msgstr "" @@ -338,11 +642,11 @@ msgstr "" #~ msgid "to preview" #~ msgstr "to preview" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:333 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:365 msgid "Select instance to preview" msgstr "" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:377 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:409 msgid "Error rendering template" msgstr "" @@ -379,6 +683,7 @@ msgid "This page does not exist" msgstr "" #: src/components/errors/PermissionDenied.tsx:8 +#: src/functions/notifications.tsx:24 msgid "Permission Denied" msgstr "" @@ -394,8 +699,8 @@ msgstr "" msgid "A server error occurred" msgstr "" -#: src/components/forms/ApiForm.tsx:151 -#: src/components/forms/ApiForm.tsx:555 +#: src/components/forms/ApiForm.tsx:154 +#: src/components/forms/ApiForm.tsx:579 msgid "Form Error" msgstr "" @@ -403,22 +708,22 @@ msgstr "" #~ msgid "Form Errors Exist" #~ msgstr "Form Errors Exist" -#: src/components/forms/ApiForm.tsx:563 +#: src/components/forms/ApiForm.tsx:587 msgid "Errors exist for one or more form fields" msgstr "" -#: src/components/forms/ApiForm.tsx:665 -#: src/tables/plugin/PluginListTable.tsx:388 +#: src/components/forms/ApiForm.tsx:698 +#: src/tables/plugin/PluginListTable.tsx:195 msgid "Update" msgstr "" -#: src/components/forms/ApiForm.tsx:685 -#: src/components/items/ActionDropdown.tsx:195 +#: src/components/forms/ApiForm.tsx:718 +#: src/components/items/ActionDropdown.tsx:248 #: src/hooks/UseForm.tsx:122 -#: src/pages/Index/Scan.tsx:343 +#: src/pages/Index/Scan.tsx:357 #: src/pages/Notifications.tsx:123 -#: src/tables/RowActions.tsx:43 -#: src/tables/plugin/PluginListTable.tsx:420 +#: src/tables/RowActions.tsx:49 +#: src/tables/plugin/PluginListTable.tsx:232 msgid "Delete" msgstr "" @@ -428,14 +733,6 @@ msgstr "" #~ msgid "Check your your input and try again." #~ msgstr "Check your your input and try again." -#: src/components/forms/AuthenticationForm.tsx:51 -msgid "Login successful" -msgstr "" - -#: src/components/forms/AuthenticationForm.tsx:52 -msgid "Logged in successfully" -msgstr "" - #: src/components/forms/AuthenticationForm.tsx:52 #~ msgid "Welcome back!" #~ msgstr "Welcome back!" @@ -444,14 +741,22 @@ msgstr "" #~ msgid "Login successfull" #~ msgstr "Login successfull" -#: src/components/forms/AuthenticationForm.tsx:58 +#: src/components/forms/AuthenticationForm.tsx:55 +msgid "Login successful" +msgstr "" + +#: src/components/forms/AuthenticationForm.tsx:56 +msgid "Logged in successfully" +msgstr "" + +#: src/components/forms/AuthenticationForm.tsx:61 msgid "Login failed" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:59 -#: src/components/forms/AuthenticationForm.tsx:76 -#: src/components/forms/AuthenticationForm.tsx:211 -#: src/functions/auth.tsx:164 +#: src/components/forms/AuthenticationForm.tsx:62 +#: src/components/forms/AuthenticationForm.tsx:79 +#: src/components/forms/AuthenticationForm.tsx:214 +#: src/functions/auth.tsx:175 msgid "Check your input and try again." msgstr "" @@ -460,45 +765,46 @@ msgstr "" #~ msgid "Mail delivery successfull" #~ msgstr "Mail delivery successfull" -#: src/components/forms/AuthenticationForm.tsx:70 -#: src/functions/auth.tsx:155 +#: src/components/forms/AuthenticationForm.tsx:73 +#: src/functions/auth.tsx:166 msgid "Mail delivery successful" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:71 +#: src/components/forms/AuthenticationForm.tsx:74 msgid "Check your inbox for the login link. If you have an account, you will receive a login link. Check in spam too." msgstr "" -#: src/components/forms/AuthenticationForm.tsx:75 +#: src/components/forms/AuthenticationForm.tsx:78 msgid "Mail delivery failed" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:95 +#: src/components/forms/AuthenticationForm.tsx:98 msgid "Or continue with other methods" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:106 -#: src/components/forms/AuthenticationForm.tsx:227 +#: src/components/forms/AuthenticationForm.tsx:109 +#: src/components/forms/AuthenticationForm.tsx:230 +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:67 msgid "Username" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:107 -#: src/components/forms/AuthenticationForm.tsx:228 +#: src/components/forms/AuthenticationForm.tsx:110 +#: src/components/forms/AuthenticationForm.tsx:231 msgid "Your username" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:112 -#: src/components/forms/AuthenticationForm.tsx:240 -#: src/pages/Auth/Set-Password.tsx:106 +#: src/components/forms/AuthenticationForm.tsx:115 +#: src/components/forms/AuthenticationForm.tsx:243 +#: src/pages/Auth/Set-Password.tsx:101 msgid "Password" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:113 -#: src/components/forms/AuthenticationForm.tsx:241 +#: src/components/forms/AuthenticationForm.tsx:116 +#: src/components/forms/AuthenticationForm.tsx:244 msgid "Your password" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:125 +#: src/components/forms/AuthenticationForm.tsx:128 #: src/pages/Auth/Reset.tsx:26 msgid "Reset password" msgstr "" @@ -507,77 +813,79 @@ msgstr "" #~ msgid "Log in" #~ msgstr "Log in" -#: src/components/forms/AuthenticationForm.tsx:134 -#: src/components/forms/AuthenticationForm.tsx:233 +#: src/components/forms/AuthenticationForm.tsx:136 +#~ msgid "I will use username and password" +#~ msgstr "I will use username and password" + +#: src/components/forms/AuthenticationForm.tsx:137 +#: src/components/forms/AuthenticationForm.tsx:236 #: src/pages/Auth/Reset.tsx:31 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:51 msgid "Email" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:135 +#: src/components/forms/AuthenticationForm.tsx:138 #: src/pages/Auth/Reset.tsx:32 -#: src/pages/Auth/Set-Password.tsx:107 +#: src/pages/Auth/Set-Password.tsx:102 msgid "We will send you a link to login - if you are registered" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:136 -#~ msgid "I will use username and password" -#~ msgstr "I will use username and password" - -#: src/components/forms/AuthenticationForm.tsx:151 +#: src/components/forms/AuthenticationForm.tsx:154 msgid "Send me an email" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:153 +#: src/components/forms/AuthenticationForm.tsx:156 msgid "Use username and password" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:162 +#: src/components/forms/AuthenticationForm.tsx:165 msgid "Log In" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:164 +#: src/components/forms/AuthenticationForm.tsx:167 +#: src/pages/Auth/Reset.tsx:41 +#: src/pages/Auth/Set-Password.tsx:107 msgid "Send Email" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:193 +#: src/components/forms/AuthenticationForm.tsx:196 msgid "Registration successful" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:194 +#: src/components/forms/AuthenticationForm.tsx:197 msgid "Please confirm your email address to complete the registration" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:210 +#: src/components/forms/AuthenticationForm.tsx:213 msgid "Input error" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:234 +#: src/components/forms/AuthenticationForm.tsx:237 msgid "This will be used for a confirmation" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:246 +#: src/components/forms/AuthenticationForm.tsx:249 msgid "Password repeat" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:247 +#: src/components/forms/AuthenticationForm.tsx:250 msgid "Repeat password" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:259 -#: src/components/forms/AuthenticationForm.tsx:304 +#: src/components/forms/AuthenticationForm.tsx:262 +#: src/components/forms/AuthenticationForm.tsx:307 msgid "Register" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:265 +#: src/components/forms/AuthenticationForm.tsx:268 msgid "Or use SSO" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:296 +#: src/components/forms/AuthenticationForm.tsx:299 msgid "Don't have an account?" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:315 +#: src/components/forms/AuthenticationForm.tsx:318 msgid "Go back to login" msgstr "" @@ -588,19 +896,20 @@ msgstr "" #: src/components/forms/HostOptionsForm.tsx:42 #: src/components/forms/HostOptionsForm.tsx:70 +#: src/components/plugins/PluginDrawer.tsx:69 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:410 +#: src/pages/Index/Settings/AdminCenter/UnitManagmentPanel.tsx:19 #: src/pages/part/CategoryDetail.tsx:81 -#: src/pages/part/PartDetail.tsx:143 -#: src/pages/stock/LocationDetail.tsx:89 -#: src/tables/machine/MachineTypeTable.tsx:65 -#: src/tables/machine/MachineTypeTable.tsx:109 -#: src/tables/machine/MachineTypeTable.tsx:216 -#: src/tables/machine/MachineTypeTable.tsx:319 +#: src/pages/part/PartDetail.tsx:164 +#: src/pages/stock/LocationDetail.tsx:83 +#: src/tables/machine/MachineTypeTable.tsx:70 +#: src/tables/machine/MachineTypeTable.tsx:119 +#: src/tables/machine/MachineTypeTable.tsx:237 +#: src/tables/machine/MachineTypeTable.tsx:340 #: src/tables/plugin/PluginErrorTable.tsx:33 -#: src/tables/plugin/PluginListTable.tsx:126 #: src/tables/purchasing/ManufacturerPartParameterTable.tsx:32 #: src/tables/settings/GroupTable.tsx:147 -#: src/tables/settings/PendingTasksTable.tsx:28 +#: src/tables/settings/PendingTasksTable.tsx:32 #: src/tables/stock/LocationTypesTable.tsx:69 msgid "Name" msgstr "" @@ -650,7 +959,7 @@ msgid "Uncategorized" msgstr "" #: src/components/forms/fields/IconField.tsx:209 -#: src/components/nav/Layout.tsx:70 +#: src/components/nav/Layout.tsx:77 #: src/tables/part/PartThumbTable.tsx:192 msgid "Search..." msgstr "" @@ -667,28 +976,27 @@ msgstr "" msgid "{0} icons" msgstr "" -#: src/components/forms/fields/RelatedModelField.tsx:318 -#: src/pages/Index/Settings/UserSettings.tsx:96 +#: src/components/forms/fields/RelatedModelField.tsx:319 +#: src/pages/Index/Settings/UserSettings.tsx:97 #: src/tables/Search.tsx:23 msgid "Search" msgstr "" -#: src/components/forms/fields/RelatedModelField.tsx:319 +#: src/components/forms/fields/RelatedModelField.tsx:320 #: src/components/modals/AboutInvenTreeModal.tsx:81 -#: src/components/widgets/WidgetLayout.tsx:120 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:316 msgid "Loading" msgstr "" -#: src/components/forms/fields/RelatedModelField.tsx:321 +#: src/components/forms/fields/RelatedModelField.tsx:322 msgid "No results found" msgstr "" -#: src/components/forms/fields/TableField.tsx:52 -msgid "modelRenderer entry required for tables" -msgstr "" +#: src/components/forms/fields/TableField.tsx:72 +#~ msgid "modelRenderer entry required for tables" +#~ msgstr "modelRenderer entry required for tables" -#: src/components/forms/fields/TableField.tsx:76 +#: src/components/forms/fields/TableField.tsx:167 msgid "No entries available" msgstr "" @@ -741,7 +1049,7 @@ msgid "Filter by row validation status" msgstr "" #: src/components/importer/ImportDataSelector.tsx:365 -#: src/tables/build/BuildOutputTable.tsx:266 +#: src/tables/build/BuildOutputTable.tsx:407 msgid "Complete" msgstr "" @@ -749,20 +1057,21 @@ msgstr "" msgid "Filter by row completion status" msgstr "" -#: src/components/importer/ImportDataSelector.tsx:383 +#: src/components/importer/ImportDataSelector.tsx:384 msgid "Import selected rows" msgstr "" -#: src/components/importer/ImportDataSelector.tsx:398 +#: src/components/importer/ImportDataSelector.tsx:399 msgid "Processing Data" msgstr "" -#: src/components/importer/ImporterColumnSelector.tsx:50 -#: src/components/importer/ImporterColumnSelector.tsx:176 +#: src/components/importer/ImporterColumnSelector.tsx:53 +#: src/components/importer/ImporterColumnSelector.tsx:179 +#: src/components/items/ErrorItem.tsx:12 msgid "An error occurred" msgstr "" -#: src/components/importer/ImporterColumnSelector.tsx:62 +#: src/components/importer/ImporterColumnSelector.tsx:65 msgid "Select column, or leave blank to ignore this field." msgstr "" @@ -778,51 +1087,51 @@ msgstr "" #~ msgid "Imported Column Name" #~ msgstr "Imported Column Name" -#: src/components/importer/ImporterColumnSelector.tsx:182 +#: src/components/importer/ImporterColumnSelector.tsx:185 msgid "Ignore this field" msgstr "" -#: src/components/importer/ImporterColumnSelector.tsx:196 +#: src/components/importer/ImporterColumnSelector.tsx:199 msgid "Mapping data columns to database fields" msgstr "" -#: src/components/importer/ImporterColumnSelector.tsx:201 +#: src/components/importer/ImporterColumnSelector.tsx:204 msgid "Accept Column Mapping" msgstr "" -#: src/components/importer/ImporterColumnSelector.tsx:214 +#: src/components/importer/ImporterColumnSelector.tsx:217 msgid "Database Field" msgstr "" -#: src/components/importer/ImporterColumnSelector.tsx:215 +#: src/components/importer/ImporterColumnSelector.tsx:218 msgid "Field Description" msgstr "" -#: src/components/importer/ImporterColumnSelector.tsx:216 +#: src/components/importer/ImporterColumnSelector.tsx:219 msgid "Imported Column" msgstr "" -#: src/components/importer/ImporterColumnSelector.tsx:217 +#: src/components/importer/ImporterColumnSelector.tsx:220 msgid "Default Value" msgstr "" -#: src/components/importer/ImporterDrawer.tsx:44 +#: src/components/importer/ImporterDrawer.tsx:46 msgid "Upload File" msgstr "" -#: src/components/importer/ImporterDrawer.tsx:45 +#: src/components/importer/ImporterDrawer.tsx:47 msgid "Map Columns" msgstr "" -#: src/components/importer/ImporterDrawer.tsx:46 +#: src/components/importer/ImporterDrawer.tsx:48 msgid "Import Data" msgstr "" -#: src/components/importer/ImporterDrawer.tsx:47 +#: src/components/importer/ImporterDrawer.tsx:49 msgid "Process Data" msgstr "" -#: src/components/importer/ImporterDrawer.tsx:48 +#: src/components/importer/ImporterDrawer.tsx:50 msgid "Complete Import" msgstr "" @@ -830,28 +1139,28 @@ msgstr "" #~ msgid "Cancel import session" #~ msgstr "Cancel import session" -#: src/components/importer/ImporterDrawer.tsx:104 +#: src/components/importer/ImporterDrawer.tsx:106 msgid "Import Complete" msgstr "" -#: src/components/importer/ImporterDrawer.tsx:107 +#: src/components/importer/ImporterDrawer.tsx:109 msgid "Data has been imported successfully" msgstr "" -#: src/components/importer/ImporterDrawer.tsx:109 -#: src/components/importer/ImporterDrawer.tsx:118 +#: src/components/importer/ImporterDrawer.tsx:111 +#: src/components/importer/ImporterDrawer.tsx:120 msgid "Close" msgstr "" -#: src/components/importer/ImporterDrawer.tsx:115 +#: src/components/importer/ImporterDrawer.tsx:117 msgid "Unknown Status" msgstr "" -#: src/components/importer/ImporterDrawer.tsx:116 +#: src/components/importer/ImporterDrawer.tsx:118 msgid "Import session has unknown status" msgstr "" -#: src/components/importer/ImporterDrawer.tsx:135 +#: src/components/importer/ImporterDrawer.tsx:137 msgid "Importing Data" msgstr "" @@ -860,85 +1169,115 @@ msgid "Importing Records" msgstr "" #: src/components/importer/ImporterImportProgress.tsx:39 -msgid "Imported rows" +#: src/tables/settings/ImportSessionTable.tsx:78 +msgid "Imported Rows" msgstr "" -#: src/components/items/ActionDropdown.tsx:121 -msgid "Barcode Actions" +#: src/components/importer/ImporterImportProgress.tsx:39 +#~ msgid "Imported rows" +#~ msgstr "Imported rows" + +#: src/components/items/ActionDropdown.tsx:126 +msgid "Options" msgstr "" #: src/components/items/ActionDropdown.tsx:140 -msgid "View Barcode" -msgstr "" +#~ msgid "View Barcode" +#~ msgstr "View Barcode" -#: src/components/items/ActionDropdown.tsx:147 -msgid "View" -msgstr "" - -#: src/components/items/ActionDropdown.tsx:148 -msgid "View barcode" -msgstr "" - -#: src/components/items/ActionDropdown.tsx:161 -msgid "Link Barcode" +#: src/components/items/ActionDropdown.tsx:162 +#: src/tables/InvenTreeTableHeader.tsx:159 +#: src/tables/InvenTreeTableHeader.tsx:160 +msgid "Barcode Actions" msgstr "" #: src/components/items/ActionDropdown.tsx:162 -msgid "Link custom barcode" +#~ msgid "Link custom barcode" +#~ msgstr "Link custom barcode" + +#: src/components/items/ActionDropdown.tsx:167 +msgid "View" msgstr "" -#: src/components/items/ActionDropdown.tsx:173 -#: src/forms/PurchaseOrderForms.tsx:426 -msgid "Unlink Barcode" +#: src/components/items/ActionDropdown.tsx:169 +msgid "View barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:174 -msgid "Unlink custom barcode" +#: src/components/items/ActionDropdown.tsx:175 +msgid "Link Barcode" +msgstr "" + +#: src/components/items/ActionDropdown.tsx:177 +msgid "Link a custom barcode to this item" msgstr "" #: src/components/items/ActionDropdown.tsx:183 -#: src/tables/RowActions.tsx:33 +#: src/components/items/QRCode.tsx:193 +#: src/forms/PurchaseOrderForms.tsx:464 +msgid "Unlink Barcode" +msgstr "" + +#: src/components/items/ActionDropdown.tsx:185 +msgid "Unlink custom barcode" +msgstr "" + +#: src/components/items/ActionDropdown.tsx:236 +#: src/tables/RowActions.tsx:39 msgid "Edit" msgstr "" -#: src/components/items/ActionDropdown.tsx:184 +#: src/components/items/ActionDropdown.tsx:237 msgid "Edit item" msgstr "" -#: src/components/items/ActionDropdown.tsx:196 +#: src/components/items/ActionDropdown.tsx:249 msgid "Delete item" msgstr "" -#: src/components/items/ActionDropdown.tsx:204 -#: src/components/items/ActionDropdown.tsx:205 +#: src/components/items/ActionDropdown.tsx:257 +#: src/components/items/ActionDropdown.tsx:258 msgid "Hold" msgstr "" -#: src/components/items/ActionDropdown.tsx:227 -#: src/tables/RowActions.tsx:23 +#: src/components/items/ActionDropdown.tsx:280 +#: src/tables/RowActions.tsx:29 msgid "Duplicate" msgstr "" -#: src/components/items/ActionDropdown.tsx:228 +#: src/components/items/ActionDropdown.tsx:281 msgid "Duplicate item" msgstr "" +#: src/components/items/BarcodeInput.tsx:23 +msgid "Scan barcode data here using barcode scanner" +msgstr "" + +#: src/components/items/BarcodeInput.tsx:24 +#: src/tables/settings/BarcodeScanHistoryTable.tsx:65 +msgid "Barcode" +msgstr "" + +#: src/components/items/BarcodeInput.tsx:25 +msgid "Scan" +msgstr "" + #: src/components/items/DocTooltip.tsx:92 +#: src/components/items/GettingStartedCarousel.tsx:20 msgid "Read More" msgstr "" -#: src/components/items/ErrorItem.tsx:5 -#: src/tables/InvenTreeTable.tsx:487 +#: src/components/items/ErrorItem.tsx:8 +#: src/tables/InvenTreeTable.tsx:473 msgid "Unknown error" msgstr "" -#: src/components/items/ErrorItem.tsx:10 -msgid "An error occurred:" -msgstr "" +#: src/components/items/ErrorItem.tsx:13 +#~ msgid "An error occurred:" +#~ msgstr "An error occurred:" #: src/components/items/GettingStartedCarousel.tsx:27 -msgid "Read more" -msgstr "" +#~ msgid "Read more" +#~ msgstr "Read more" #: src/components/items/InfoItem.tsx:27 msgid "None" @@ -965,30 +1304,51 @@ msgstr "" msgid "This panel is a placeholder." msgstr "" -#: src/components/items/QRCode.tsx:87 +#: src/components/items/QRCode.tsx:89 msgid "Low (7%)" msgstr "" -#: src/components/items/QRCode.tsx:88 +#: src/components/items/QRCode.tsx:90 msgid "Medium (15%)" msgstr "" -#: src/components/items/QRCode.tsx:89 +#: src/components/items/QRCode.tsx:91 msgid "Quartile (25%)" msgstr "" -#: src/components/items/QRCode.tsx:90 +#: src/components/items/QRCode.tsx:92 msgid "High (30%)" msgstr "" -#: src/components/items/QRCode.tsx:107 -msgid "Barcode Data:" +#: src/components/items/QRCode.tsx:100 +msgid "Custom barcode" +msgstr "" + +#: src/components/items/QRCode.tsx:101 +msgid "A custom barcode is registered for this item. The shown code is not that custom barcode." msgstr "" #: src/components/items/QRCode.tsx:118 +msgid "Barcode Data:" +msgstr "" + +#: src/components/items/QRCode.tsx:129 msgid "Select Error Correction Level" msgstr "" +#: src/components/items/QRCode.tsx:171 +#: src/pages/part/PartDetail.tsx:239 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:187 +#: src/pages/sales/ReturnOrderDetail.tsx:157 +#: src/pages/sales/SalesOrderDetail.tsx:169 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:166 +msgid "Link" +msgstr "" + +#: src/components/items/QRCode.tsx:190 +msgid "This will remove the link to the associated barcode" +msgstr "" + #: src/components/modals/AboutInvenTreeModal.tsx:99 msgid "Version Information" msgstr "" @@ -1062,11 +1422,11 @@ msgstr "" msgid "Submit Bug Report" msgstr "" -#: src/components/modals/AboutInvenTreeModal.tsx:183 +#: src/components/modals/AboutInvenTreeModal.tsx:181 msgid "Copy version information" msgstr "" -#: src/components/modals/AboutInvenTreeModal.tsx:192 +#: src/components/modals/AboutInvenTreeModal.tsx:189 #: src/components/modals/ServerInfoModal.tsx:147 msgid "Dismiss" msgstr "" @@ -1091,61 +1451,20 @@ msgstr "" msgid "{key} Packages" msgstr "" -#: src/components/modals/QrCodeModal.tsx:72 +#: src/components/modals/QrCodeModal.tsx:24 msgid "Unknown response" msgstr "" -#: src/components/modals/QrCodeModal.tsx:102 -#: src/pages/Index/Scan.tsx:636 -msgid "Error while getting camera" -msgstr "" - -#: src/components/modals/QrCodeModal.tsx:125 -#: src/pages/Index/Scan.tsx:659 -msgid "Error while scanning" -msgstr "" - -#: src/components/modals/QrCodeModal.tsx:139 -#: src/pages/Index/Scan.tsx:673 -msgid "Error while stopping" -msgstr "" - -#: src/components/modals/QrCodeModal.tsx:154 -#: src/defaults/menuItems.tsx:21 -#: src/pages/Index/Scan.tsx:746 -msgid "Scanning" -msgstr "" - -#: src/components/modals/QrCodeModal.tsx:154 -#: src/pages/Index/Scan.tsx:746 -msgid "Not scanning" -msgstr "" - -#: src/components/modals/QrCodeModal.tsx:159 -#: src/pages/Index/Scan.tsx:752 -msgid "Select Camera" -msgstr "" - -#: src/components/modals/QrCodeModal.tsx:169 -#: src/pages/Index/Scan.tsx:737 -msgid "Start scanning" -msgstr "" - -#: src/components/modals/QrCodeModal.tsx:176 -#: src/pages/Index/Scan.tsx:729 -msgid "Stop scanning" -msgstr "" - -#: src/components/modals/QrCodeModal.tsx:181 +#: src/components/modals/QrCodeModal.tsx:39 msgid "No scans yet!" msgstr "" -#: src/components/modals/QrCodeModal.tsx:201 +#: src/components/modals/QrCodeModal.tsx:57 msgid "Close modal" msgstr "" #: src/components/modals/ServerInfoModal.tsx:26 -#: src/pages/Index/Settings/SystemSettings.tsx:38 +#: src/pages/Index/Settings/SystemSettings.tsx:37 msgid "Server" msgstr "" @@ -1206,6 +1525,7 @@ msgid "Background Worker" msgstr "" #: src/components/modals/ServerInfoModal.tsx:101 +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:29 msgid "Background worker not running" msgstr "" @@ -1218,8 +1538,8 @@ msgid "Email settings not configured" msgstr "" #: src/components/modals/ServerInfoModal.tsx:121 -#: src/tables/plugin/PluginListTable.tsx:144 -#: src/tables/plugin/PluginListTable.tsx:294 +#: src/components/plugins/PluginDrawer.tsx:89 +#: src/tables/plugin/PluginListTable.tsx:116 msgid "Version" msgstr "" @@ -1227,7 +1547,7 @@ msgstr "" msgid "Server Version" msgstr "" -#: src/components/nav/Layout.tsx:73 +#: src/components/nav/Layout.tsx:80 msgid "Nothing found..." msgstr "" @@ -1237,18 +1557,26 @@ msgstr "" #~ msgstr "Profile" #: src/components/nav/MainMenu.tsx:52 +#: src/components/nav/NavigationDrawer.tsx:178 #: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:28 msgid "Settings" msgstr "" #: src/components/nav/MainMenu.tsx:59 -#: src/defaults/menuItems.tsx:15 -msgid "Account settings" +#: src/pages/Index/Settings/UserSettings.tsx:152 +msgid "Account Settings" msgstr "" +#: src/components/nav/MainMenu.tsx:59 +#: src/defaults/menuItems.tsx:15 +#~ msgid "Account settings" +#~ msgstr "Account settings" + #: src/components/nav/MainMenu.tsx:67 -#: src/defaults/menuItems.tsx:58 -#: src/pages/Index/Settings/SystemSettings.tsx:315 +#: src/components/nav/NavigationDrawer.tsx:141 +#: src/components/nav/SettingsHeader.tsx:49 +#: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:37 +#: src/pages/Index/Settings/SystemSettings.tsx:310 msgid "System Settings" msgstr "" @@ -1260,14 +1588,11 @@ msgstr "" #~ msgid "Switch to pseudo language" #~ msgstr "Switch to pseudo language" -#: src/components/nav/MainMenu.tsx:77 -msgid "Change Color Mode" -msgstr "" - #: src/components/nav/MainMenu.tsx:86 -#: src/defaults/actions.tsx:71 -#: src/defaults/menuItems.tsx:63 -#: src/pages/Index/Settings/AdminCenter/Index.tsx:221 +#: src/components/nav/NavigationDrawer.tsx:148 +#: src/components/nav/SettingsHeader.tsx:50 +#: src/defaults/actions.tsx:63 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:251 msgid "Admin Center" msgstr "" @@ -1275,458 +1600,732 @@ msgstr "" msgid "Logout" msgstr "" -#: src/components/nav/NavHoverMenu.tsx:65 -#: src/defaults/actions.tsx:60 -msgid "Open Navigation" -msgstr "" - #: src/components/nav/NavHoverMenu.tsx:84 -msgid "View all" -msgstr "" +#~ msgid "View all" +#~ msgstr "View all" #: src/components/nav/NavHoverMenu.tsx:100 #: src/components/nav/NavHoverMenu.tsx:110 -msgid "Get started" -msgstr "" +#~ msgid "Get started" +#~ msgstr "Get started" #: src/components/nav/NavHoverMenu.tsx:103 -msgid "Overview over high-level objects, functions and possible usecases." -msgstr "" - -#: src/components/nav/NavigationDrawer.tsx:57 -msgid "Navigation" -msgstr "" +#~ msgid "Overview over high-level objects, functions and possible usecases." +#~ msgstr "Overview over high-level objects, functions and possible usecases." #: src/components/nav/NavigationDrawer.tsx:60 -msgid "Pages" +#~ msgid "Pages" +#~ msgstr "Pages" + +#: src/components/nav/NavigationDrawer.tsx:77 +#: src/components/render/ModelType.tsx:31 +#: src/defaults/links.tsx:10 +#: src/pages/Index/Settings/SystemSettings.tsx:172 +#: src/pages/part/CategoryDetail.tsx:125 +#: src/pages/part/CategoryDetail.tsx:249 +#: src/pages/part/CategoryDetail.tsx:279 +#: src/pages/part/PartDetail.tsx:856 +msgid "Parts" msgstr "" -#: src/components/nav/NavigationDrawer.tsx:65 -#: src/pages/Index/Settings/AdminCenter/Index.tsx:176 -#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:41 -msgid "Plugins" +#: src/components/nav/NavigationDrawer.tsx:84 +#: src/components/render/Part.tsx:30 +#: src/defaults/links.tsx:11 +#: src/pages/Index/Settings/SystemSettings.tsx:205 +#: src/pages/part/PartDetail.tsx:593 +#: src/pages/stock/LocationDetail.tsx:352 +#: src/pages/stock/StockDetail.tsx:528 +#: src/tables/stock/StockItemTable.tsx:69 +msgid "Stock" msgstr "" -#: src/components/nav/NavigationDrawer.tsx:75 -#: src/defaults/actions.tsx:32 -msgid "Documentation" +#: src/components/nav/NavigationDrawer.tsx:91 +#: src/defaults/links.tsx:13 +#: src/pages/build/BuildDetail.tsx:530 +#: src/pages/build/BuildIndex.tsx:36 +msgid "Manufacturing" msgstr "" -#: src/components/nav/NavigationDrawer.tsx:78 -msgid "About" +#: src/components/nav/NavigationDrawer.tsx:98 +#: src/defaults/links.tsx:18 +#: src/pages/company/ManufacturerDetail.tsx:9 +#: src/pages/company/ManufacturerPartDetail.tsx:258 +#: src/pages/company/SupplierDetail.tsx:9 +#: src/pages/company/SupplierPartDetail.tsx:336 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:480 +#: src/pages/purchasing/PurchasingIndex.tsx:60 +msgid "Purchasing" msgstr "" -#: src/components/nav/NotificationDrawer.tsx:92 -#: src/pages/Index/Settings/SystemSettings.tsx:109 -#: src/pages/Index/Settings/UserSettings.tsx:126 +#: src/components/nav/NavigationDrawer.tsx:105 +#: src/defaults/links.tsx:22 +#: src/pages/company/CustomerDetail.tsx:9 +#: src/pages/sales/ReturnOrderDetail.tsx:469 +#: src/pages/sales/SalesIndex.tsx:53 +#: src/pages/sales/SalesOrderDetail.tsx:520 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:343 +msgid "Sales" +msgstr "" + +#: src/components/nav/NavigationDrawer.tsx:129 +#: src/components/nav/NotificationDrawer.tsx:178 +#: src/pages/Index/Settings/SystemSettings.tsx:110 +#: src/pages/Index/Settings/UserSettings.tsx:127 #: src/pages/Notifications.tsx:65 #: src/pages/Notifications.tsx:151 msgid "Notifications" msgstr "" -#: src/components/nav/NotificationDrawer.tsx:94 +#: src/components/nav/NavigationDrawer.tsx:135 +#: src/components/nav/SettingsHeader.tsx:48 +msgid "User Settings" +msgstr "" + +#: src/components/nav/NavigationDrawer.tsx:173 +msgid "Navigation" +msgstr "" + +#: src/components/nav/NavigationDrawer.tsx:183 +#: src/forms/PurchaseOrderForms.tsx:689 +#: src/forms/StockForms.tsx:614 +#: src/forms/StockForms.tsx:651 +#: src/forms/StockForms.tsx:677 +#: src/forms/StockForms.tsx:705 +#: src/forms/StockForms.tsx:736 +#: src/forms/StockForms.tsx:771 +#: src/forms/StockForms.tsx:813 +#: src/forms/StockForms.tsx:851 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:413 +#: src/tables/RowActions.tsx:129 +#: src/tables/build/BuildLineTable.tsx:101 +msgid "Actions" +msgstr "" + +#: src/components/nav/NavigationDrawer.tsx:191 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:205 +#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:44 +msgid "Plugins" +msgstr "" + +#: src/components/nav/NavigationDrawer.tsx:204 +#: src/defaults/actions.tsx:24 +msgid "Documentation" +msgstr "" + +#: src/components/nav/NavigationDrawer.tsx:210 +msgid "About" +msgstr "" + +#: src/components/nav/NotificationDrawer.tsx:180 msgid "Mark all as read" msgstr "" -#: src/components/nav/NotificationDrawer.tsx:104 +#: src/components/nav/NotificationDrawer.tsx:190 msgid "View all notifications" msgstr "" -#: src/components/nav/NotificationDrawer.tsx:123 +#: src/components/nav/NotificationDrawer.tsx:210 msgid "You have no unread notifications." msgstr "" -#: src/components/nav/NotificationDrawer.tsx:139 -#: src/components/nav/NotificationDrawer.tsx:145 -#: src/tables/notifications/NotificationsTable.tsx:36 -msgid "Notification" -msgstr "" - -#: src/components/nav/NotificationDrawer.tsx:168 -#: src/pages/Notifications.tsx:73 -msgid "Mark as read" -msgstr "" - -#: src/components/nav/SearchDrawer.tsx:78 +#: src/components/nav/SearchDrawer.tsx:85 msgid "results" msgstr "" -#: src/components/nav/SearchDrawer.tsx:370 +#: src/components/nav/SearchDrawer.tsx:380 msgid "Enter search text" msgstr "" -#: src/components/nav/SearchDrawer.tsx:397 +#: src/components/nav/SearchDrawer.tsx:391 +msgid "Refresh search results" +msgstr "" + +#: src/components/nav/SearchDrawer.tsx:402 +#: src/components/nav/SearchDrawer.tsx:409 msgid "Search Options" msgstr "" -#: src/components/nav/SearchDrawer.tsx:400 +#: src/components/nav/SearchDrawer.tsx:412 msgid "Regex search" msgstr "" -#: src/components/nav/SearchDrawer.tsx:410 +#: src/components/nav/SearchDrawer.tsx:421 msgid "Whole word search" msgstr "" -#: src/components/nav/SearchDrawer.tsx:451 +#: src/components/nav/SearchDrawer.tsx:461 msgid "An error occurred during search query" msgstr "" #: src/components/nav/SearchDrawer.tsx:462 -msgid "No results" +#~ msgid "No results" +#~ msgstr "No results" + +#: src/components/nav/SearchDrawer.tsx:472 +#: src/tables/part/PartTestTemplateTable.tsx:76 +msgid "No Results" msgstr "" -#: src/components/nav/SearchDrawer.tsx:465 +#: src/components/nav/SearchDrawer.tsx:475 msgid "No results available for search query" msgstr "" -#: src/components/render/Instance.tsx:217 +#: src/components/panels/AttachmentPanel.tsx:18 +msgid "Attachments" +msgstr "" + +#: src/components/panels/NotesPanel.tsx:24 +#: src/tables/build/BuildOrderTestTable.tsx:143 +#: src/tables/stock/StockTrackingTable.tsx:204 +msgid "Notes" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:47 +msgid "Plugin Inactive" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:50 +msgid "Plugin is not active" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:60 +msgid "Plugin Information" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:74 +#: src/pages/build/BuildDetail.tsx:116 +#: src/pages/company/CompanyDetail.tsx:89 +#: src/pages/company/ManufacturerPartDetail.tsx:89 +#: src/pages/company/ManufacturerPartDetail.tsx:116 +#: src/pages/company/SupplierPartDetail.tsx:140 +#: src/pages/part/CategoryDetail.tsx:101 +#: src/pages/part/PartDetail.tsx:178 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:136 +#: src/pages/sales/ReturnOrderDetail.tsx:107 +#: src/pages/sales/SalesOrderDetail.tsx:116 +#: src/pages/stock/LocationDetail.tsx:103 +#: src/tables/ColumnRenderers.tsx:92 +#: src/tables/bom/UsedInTable.tsx:44 +#: src/tables/build/BuildAllocatedStockTable.tsx:83 +#: src/tables/build/BuildLineTable.tsx:329 +#: src/tables/machine/MachineTypeTable.tsx:74 +#: src/tables/machine/MachineTypeTable.tsx:129 +#: src/tables/machine/MachineTypeTable.tsx:240 +#: src/tables/machine/MachineTypeTable.tsx:344 +#: src/tables/part/RelatedPartTable.tsx:66 +#: src/tables/plugin/PluginListTable.tsx:99 +#: src/tables/sales/SalesOrderAllocationTable.tsx:87 +#: src/tables/sales/SalesOrderLineItemTable.tsx:75 +#: src/tables/stock/LocationTypesTable.tsx:74 +msgid "Description" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:79 +msgid "Author" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:84 +#: src/pages/part/PartSchedulingDetail.tsx:277 +#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:40 +#: src/pages/part/pricing/SaleHistoryPanel.tsx:38 +#: src/tables/ColumnRenderers.tsx:215 +#: src/tables/build/BuildOrderTestTable.tsx:151 +#: src/tables/settings/StocktakeReportTable.tsx:40 +msgid "Date" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:94 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:398 +#: src/pages/part/PartDetail.tsx:331 +#: src/tables/bom/UsedInTable.tsx:84 +#: src/tables/company/CompanyTable.tsx:62 +#: src/tables/company/CompanyTable.tsx:96 +#: src/tables/machine/MachineListTable.tsx:333 +#: src/tables/machine/MachineListTable.tsx:605 +#: src/tables/part/ParametricPartTable.tsx:223 +#: src/tables/part/PartTable.tsx:178 +#: src/tables/part/PartVariantTable.tsx:15 +#: src/tables/plugin/PluginListTable.tsx:94 +#: src/tables/plugin/PluginListTable.tsx:401 +#: src/tables/purchasing/SupplierPartTable.tsx:100 +#: src/tables/purchasing/SupplierPartTable.tsx:190 +#: src/tables/settings/UserTable.tsx:283 +#: src/tables/stock/StockItemTable.tsx:293 +msgid "Active" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:106 +msgid "Package Name" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:112 +msgid "Installation Path" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:117 +#: src/tables/machine/MachineTypeTable.tsx:152 +#: src/tables/machine/MachineTypeTable.tsx:276 +#: src/tables/plugin/PluginListTable.tsx:406 +msgid "Builtin" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:122 +msgid "Package" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:134 +#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:53 +msgid "Plugin Settings" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:146 +#: src/components/render/ModelType.tsx:276 +msgid "Plugin Configuration" +msgstr "" + +#: src/components/plugins/PluginPanel.tsx:87 +#~ msgid "Error occurred while rendering plugin content" +#~ msgstr "Error occurred while rendering plugin content" + +#: src/components/plugins/PluginPanel.tsx:91 +#~ msgid "Plugin did not provide panel rendering function" +#~ msgstr "Plugin did not provide panel rendering function" + +#: src/components/plugins/PluginPanel.tsx:103 +#~ msgid "No content provided for this plugin" +#~ msgstr "No content provided for this plugin" + +#: src/components/plugins/PluginPanel.tsx:116 +#: src/components/plugins/PluginSettingsPanel.tsx:76 +#~ msgid "Error Loading Plugin" +#~ msgstr "Error Loading Plugin" + +#: src/components/plugins/PluginSettingsPanel.tsx:51 +#~ msgid "Error occurred while rendering plugin settings" +#~ msgstr "Error occurred while rendering plugin settings" + +#: src/components/plugins/PluginSettingsPanel.tsx:55 +#~ msgid "Plugin did not provide settings rendering function" +#~ msgstr "Plugin did not provide settings rendering function" + +#: src/components/plugins/PluginUIFeature.tsx:100 +msgid "Error occurred while rendering the template editor." +msgstr "" + +#: src/components/plugins/PluginUIFeature.tsx:111 +msgid "Error Loading Plugin Editor" +msgstr "" + +#: src/components/plugins/PluginUIFeature.tsx:147 +msgid "Error occurred while rendering the template preview." +msgstr "" + +#: src/components/plugins/PluginUIFeature.tsx:158 +msgid "Error Loading Plugin Preview" +msgstr "" + +#: src/components/plugins/RemoteComponent.tsx:70 +msgid "Invalid source or function name" +msgstr "" + +#: src/components/plugins/RemoteComponent.tsx:91 +msgid "Error Loading Content" +msgstr "" + +#: src/components/plugins/RemoteComponent.tsx:95 +msgid "Error occurred while loading plugin content" +msgstr "" + +#: src/components/render/Instance.tsx:224 msgid "Unknown model: {model}" msgstr "" -#: src/components/render/ModelType.tsx:22 -#: src/forms/BuildForms.tsx:213 -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/forms/StockForms.tsx:499 -#: src/forms/StockForms.tsx:533 -#: src/forms/StockForms.tsx:562 -#: src/forms/StockForms.tsx:590 -#: src/forms/StockForms.tsx:621 -#: src/forms/StockForms.tsx:656 -#: src/forms/StockForms.tsx:698 -#: src/forms/StockForms.tsx:734 -#: src/pages/build/BuildDetail.tsx:95 -#: src/pages/part/PartDetail.tsx:1073 -#: src/tables/build/BuildAllocatedStockTable.tsx:82 +#: src/components/render/ModelType.tsx:30 +#: src/forms/BuildForms.tsx:269 +#: src/forms/BuildForms.tsx:337 +#: src/forms/BuildForms.tsx:385 +#: src/forms/BuildForms.tsx:515 +#: src/forms/PurchaseOrderForms.tsx:689 +#: src/forms/ReturnOrderForms.tsx:190 +#: src/forms/SalesOrderForms.tsx:248 +#: src/forms/StockForms.tsx:261 +#: src/forms/StockForms.tsx:614 +#: src/forms/StockForms.tsx:651 +#: src/forms/StockForms.tsx:677 +#: src/forms/StockForms.tsx:705 +#: src/forms/StockForms.tsx:736 +#: src/forms/StockForms.tsx:771 +#: src/forms/StockForms.tsx:813 +#: src/forms/StockForms.tsx:851 +#: src/pages/build/BuildDetail.tsx:90 +#: src/pages/part/PartDetail.tsx:1094 +#: src/tables/build/BuildAllocatedStockTable.tsx:95 +#: src/tables/build/BuildLineTable.tsx:72 #: src/tables/part/PartTable.tsx:28 -#: src/tables/part/RelatedPartTable.tsx:45 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:88 -#: src/tables/sales/SalesOrderAllocationTable.tsx:68 -#: src/tables/stock/StockTrackingTable.tsx:74 +#: src/tables/part/RelatedPartTable.tsx:47 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:130 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:100 +#: src/tables/sales/SalesOrderAllocationTable.tsx:99 +#: src/tables/stock/StockTrackingTable.tsx:78 msgid "Part" msgstr "" -#: src/components/render/ModelType.tsx:23 -#: src/defaults/links.tsx:29 -#: src/defaults/menuItems.tsx:33 -#: src/pages/Index/Settings/SystemSettings.tsx:173 -#: src/pages/part/CategoryDetail.tsx:119 -#: src/pages/part/CategoryDetail.tsx:244 -#: src/pages/part/CategoryDetail.tsx:274 -#: src/pages/part/PartDetail.tsx:827 -msgid "Parts" -msgstr "" - -#: src/components/render/ModelType.tsx:31 +#: src/components/render/ModelType.tsx:40 msgid "Part Parameter Template" msgstr "" -#: src/components/render/ModelType.tsx:32 +#: src/components/render/ModelType.tsx:41 msgid "Part Parameter Templates" msgstr "" -#: src/components/render/ModelType.tsx:38 +#: src/components/render/ModelType.tsx:48 msgid "Part Test Template" msgstr "" -#: src/components/render/ModelType.tsx:39 +#: src/components/render/ModelType.tsx:49 msgid "Part Test Templates" msgstr "" -#: src/components/render/ModelType.tsx:45 -#: src/pages/company/SupplierPartDetail.tsx:203 -#: src/pages/company/SupplierPartDetail.tsx:375 -#: src/pages/stock/StockDetail.tsx:173 -#: src/tables/build/BuildAllocatedStockTable.tsx:131 +#: src/components/render/ModelType.tsx:56 +#: src/pages/company/SupplierPartDetail.tsx:364 +#: src/pages/stock/StockDetail.tsx:194 +#: src/tables/build/BuildAllocatedStockTable.tsx:152 #: src/tables/part/PartPurchaseOrdersTable.tsx:49 -#: src/tables/purchasing/SupplierPartTable.tsx:68 +#: src/tables/purchasing/SupplierPartTable.tsx:70 +#: src/tables/stock/StockItemTable.tsx:229 msgid "Supplier Part" msgstr "" -#: src/components/render/ModelType.tsx:46 +#: src/components/render/ModelType.tsx:57 msgid "Supplier Parts" msgstr "" -#: src/components/render/ModelType.tsx:54 -#: src/pages/company/ManufacturerPartDetail.tsx:132 +#: src/components/render/ModelType.tsx:66 #: src/tables/part/PartPurchaseOrdersTable.tsx:55 +#: src/tables/stock/StockItemTable.tsx:234 msgid "Manufacturer Part" msgstr "" -#: src/components/render/ModelType.tsx:55 +#: src/components/render/ModelType.tsx:67 msgid "Manufacturer Parts" msgstr "" -#: src/components/render/ModelType.tsx:63 -#: src/pages/part/CategoryDetail.tsx:305 +#: src/components/render/ModelType.tsx:76 +#: src/pages/part/CategoryDetail.tsx:310 msgid "Part Category" msgstr "" -#: src/components/render/ModelType.tsx:64 -#: src/pages/part/CategoryDetail.tsx:258 -#: src/pages/part/CategoryDetail.tsx:296 -#: src/pages/part/PartDetail.tsx:1063 +#: src/components/render/ModelType.tsx:77 +#: src/pages/part/CategoryDetail.tsx:263 +#: src/pages/part/CategoryDetail.tsx:301 +#: src/pages/part/PartDetail.tsx:1084 msgid "Part Categories" msgstr "" -#: src/components/render/ModelType.tsx:72 -#: src/pages/stock/StockDetail.tsx:624 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:94 -#: src/tables/stock/StockTrackingTable.tsx:45 +#: src/components/render/ModelType.tsx:86 +#: src/forms/BuildForms.tsx:337 +#: src/forms/BuildForms.tsx:385 +#: src/forms/BuildForms.tsx:515 +#: src/forms/SalesOrderForms.tsx:248 +#: src/pages/stock/StockDetail.tsx:839 +#: src/tables/stock/StockTrackingTable.tsx:49 msgid "Stock Item" msgstr "" -#: src/components/render/ModelType.tsx:73 +#: src/components/render/ModelType.tsx:87 #: src/pages/company/CompanyDetail.tsx:203 -#: src/pages/stock/LocationDetail.tsx:128 -#: src/pages/stock/LocationDetail.tsx:181 -#: src/pages/stock/LocationDetail.tsx:395 +#: src/pages/part/PartStocktakeDetail.tsx:113 +#: src/pages/stock/LocationDetail.tsx:122 +#: src/pages/stock/LocationDetail.tsx:175 +#: src/pages/stock/LocationDetail.tsx:380 msgid "Stock Items" msgstr "" -#: src/components/render/ModelType.tsx:81 +#: src/components/render/ModelType.tsx:96 msgid "Stock Location" msgstr "" -#: src/components/render/ModelType.tsx:82 -#: src/pages/stock/LocationDetail.tsx:195 -#: src/pages/stock/LocationDetail.tsx:387 -#: src/pages/stock/StockDetail.tsx:616 +#: src/components/render/ModelType.tsx:97 +#: src/pages/stock/LocationDetail.tsx:189 +#: src/pages/stock/LocationDetail.tsx:372 +#: src/pages/stock/StockDetail.tsx:831 msgid "Stock Locations" msgstr "" -#: src/components/render/ModelType.tsx:90 +#: src/components/render/ModelType.tsx:106 msgid "Stock Location Type" msgstr "" -#: src/components/render/ModelType.tsx:91 +#: src/components/render/ModelType.tsx:107 msgid "Stock Location Types" msgstr "" -#: src/components/render/ModelType.tsx:95 +#: src/components/render/ModelType.tsx:112 +#: src/pages/part/PartDetail.tsx:712 msgid "Stock History" msgstr "" -#: src/components/render/ModelType.tsx:96 +#: src/components/render/ModelType.tsx:113 msgid "Stock Histories" msgstr "" -#: src/components/render/ModelType.tsx:100 -#: src/defaults/links.tsx:31 -#: src/defaults/menuItems.tsx:43 +#: src/components/render/ModelType.tsx:118 msgid "Build" msgstr "" -#: src/components/render/ModelType.tsx:101 +#: src/components/render/ModelType.tsx:119 msgid "Builds" msgstr "" -#: src/components/render/ModelType.tsx:109 +#: src/components/render/ModelType.tsx:128 msgid "Build Line" msgstr "" -#: src/components/render/ModelType.tsx:110 +#: src/components/render/ModelType.tsx:129 msgid "Build Lines" msgstr "" -#: src/components/render/ModelType.tsx:117 +#: src/components/render/ModelType.tsx:137 msgid "Build Item" msgstr "" -#: src/components/render/ModelType.tsx:118 +#: src/components/render/ModelType.tsx:138 msgid "Build Items" msgstr "" -#: src/components/render/ModelType.tsx:122 -#: src/pages/company/CompanyDetail.tsx:339 +#: src/components/render/ModelType.tsx:143 +#: src/pages/company/CompanyDetail.tsx:321 msgid "Company" msgstr "" -#: src/components/render/ModelType.tsx:123 +#: src/components/render/ModelType.tsx:144 msgid "Companies" msgstr "" -#: src/components/render/ModelType.tsx:131 +#: src/components/render/ModelType.tsx:153 +#: src/pages/build/BuildDetail.tsx:195 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:204 +#: src/pages/sales/ReturnOrderDetail.tsx:174 +#: src/pages/sales/SalesOrderDetail.tsx:186 #: src/tables/TableHoverCard.tsx:81 -#: src/tables/build/BuildOrderTable.tsx:140 -#: src/tables/purchasing/PurchaseOrderTable.tsx:64 -#: src/tables/sales/ReturnOrderTable.tsx:55 -#: src/tables/sales/SalesOrderTable.tsx:62 +#: src/tables/build/BuildOrderTable.tsx:135 +#: src/tables/purchasing/PurchaseOrderTable.tsx:69 +#: src/tables/sales/ReturnOrderTable.tsx:67 +#: src/tables/sales/SalesOrderTable.tsx:67 msgid "Project Code" msgstr "" -#: src/components/render/ModelType.tsx:132 -#: src/pages/Index/Settings/AdminCenter/Index.tsx:128 +#: src/components/render/ModelType.tsx:154 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:145 msgid "Project Codes" msgstr "" -#: src/components/render/ModelType.tsx:138 +#: src/components/render/ModelType.tsx:161 #: src/pages/part/pricing/PurchaseHistoryPanel.tsx:32 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:480 -#: src/tables/part/PartPurchaseOrdersTable.tsx:32 -#: src/tables/stock/StockTrackingTable.tsx:107 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:477 +#: src/pages/stock/StockDetail.tsx:253 +#: src/tables/part/PartPurchaseOrdersTable.tsx:31 +#: src/tables/stock/StockItemTable.tsx:222 +#: src/tables/stock/StockTrackingTable.tsx:111 msgid "Purchase Order" msgstr "" -#: src/components/render/ModelType.tsx:139 -#: src/pages/Index/Settings/SystemSettings.tsx:255 +#: src/components/render/ModelType.tsx:162 +#: src/pages/Index/Settings/SystemSettings.tsx:249 #: src/pages/company/CompanyDetail.tsx:196 -#: src/pages/company/SupplierPartDetail.tsx:237 -#: src/pages/part/PartDetail.tsx:662 +#: src/pages/company/SupplierPartDetail.tsx:249 +#: src/pages/part/PartDetail.tsx:683 #: src/pages/purchasing/PurchasingIndex.tsx:25 msgid "Purchase Orders" msgstr "" -#: src/components/render/ModelType.tsx:147 +#: src/components/render/ModelType.tsx:171 msgid "Purchase Order Line" msgstr "" -#: src/components/render/ModelType.tsx:148 +#: src/components/render/ModelType.tsx:172 msgid "Purchase Order Lines" msgstr "" -#: src/components/render/ModelType.tsx:152 -#: src/pages/build/BuildDetail.tsx:153 -#: src/pages/sales/SalesOrderDetail.tsx:520 -#: src/pages/stock/StockDetail.tsx:221 -#: src/tables/sales/SalesOrderAllocationTable.tsx:50 -#: src/tables/stock/StockTrackingTable.tsx:118 +#: src/components/render/ModelType.tsx:177 +#: src/pages/build/BuildDetail.tsx:148 +#: src/pages/part/pricing/SaleHistoryPanel.tsx:24 +#: src/pages/sales/SalesOrderDetail.tsx:515 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:92 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:341 +#: src/pages/stock/StockDetail.tsx:262 +#: src/tables/sales/SalesOrderAllocationTable.tsx:80 +#: src/tables/stock/StockTrackingTable.tsx:122 msgid "Sales Order" msgstr "" -#: src/components/render/ModelType.tsx:153 -#: src/pages/Index/Settings/SystemSettings.tsx:270 +#: src/components/render/ModelType.tsx:178 +#: src/pages/Index/Settings/SystemSettings.tsx:264 #: src/pages/company/CompanyDetail.tsx:216 -#: src/pages/part/PartDetail.tsx:669 +#: src/pages/part/PartDetail.tsx:695 #: src/pages/sales/SalesIndex.tsx:26 msgid "Sales Orders" msgstr "" -#: src/components/render/ModelType.tsx:161 +#: src/components/render/ModelType.tsx:187 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:340 msgid "Sales Order Shipment" msgstr "" -#: src/components/render/ModelType.tsx:162 +#: src/components/render/ModelType.tsx:188 msgid "Sales Order Shipments" msgstr "" -#: src/components/render/ModelType.tsx:168 -#: src/pages/sales/ReturnOrderDetail.tsx:469 -#: src/tables/stock/StockTrackingTable.tsx:129 +#: src/components/render/ModelType.tsx:195 +#: src/pages/sales/ReturnOrderDetail.tsx:464 +#: src/tables/stock/StockTrackingTable.tsx:133 msgid "Return Order" msgstr "" -#: src/components/render/ModelType.tsx:169 -#: src/pages/Index/Settings/SystemSettings.tsx:286 +#: src/components/render/ModelType.tsx:196 +#: src/pages/Index/Settings/SystemSettings.tsx:280 #: src/pages/company/CompanyDetail.tsx:223 +#: src/pages/part/PartDetail.tsx:702 #: src/pages/sales/SalesIndex.tsx:32 msgid "Return Orders" msgstr "" -#: src/components/render/ModelType.tsx:177 +#: src/components/render/ModelType.tsx:205 msgid "Return Order Line Item" msgstr "" -#: src/components/render/ModelType.tsx:178 +#: src/components/render/ModelType.tsx:206 msgid "Return Order Line Items" msgstr "" -#: src/components/render/ModelType.tsx:182 -#: src/tables/company/AddressTable.tsx:47 +#: src/components/render/ModelType.tsx:211 +#: src/tables/company/AddressTable.tsx:48 msgid "Address" msgstr "" -#: src/components/render/ModelType.tsx:183 -#: src/pages/company/CompanyDetail.tsx:253 +#: src/components/render/ModelType.tsx:212 +#: src/pages/company/CompanyDetail.tsx:255 msgid "Addresses" msgstr "" -#: src/components/render/ModelType.tsx:189 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:195 -#: src/pages/sales/ReturnOrderDetail.tsx:174 -#: src/pages/sales/SalesOrderDetail.tsx:183 +#: src/components/render/ModelType.tsx:219 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:196 +#: src/pages/sales/ReturnOrderDetail.tsx:166 +#: src/pages/sales/SalesOrderDetail.tsx:178 msgid "Contact" msgstr "" -#: src/components/render/ModelType.tsx:190 -#: src/pages/company/CompanyDetail.tsx:247 +#: src/components/render/ModelType.tsx:220 +#: src/pages/company/CompanyDetail.tsx:249 msgid "Contacts" msgstr "" -#: src/components/render/ModelType.tsx:196 +#: src/components/render/ModelType.tsx:227 msgid "Owner" msgstr "" -#: src/components/render/ModelType.tsx:197 +#: src/components/render/ModelType.tsx:228 msgid "Owners" msgstr "" -#: src/components/render/ModelType.tsx:203 -#: src/tables/settings/ImportSessionTable.tsx:121 -#: src/tables/stock/StockItemTestResultTable.tsx:198 -#: src/tables/stock/StockTrackingTable.tsx:195 +#: src/components/render/ModelType.tsx:234 +#~ msgid "Purchase Order Line Item" +#~ msgstr "Purchase Order Line Item" + +#: src/components/render/ModelType.tsx:235 +#: src/tables/settings/BarcodeScanHistoryTable.tsx:80 +#: src/tables/settings/BarcodeScanHistoryTable.tsx:211 +#: src/tables/settings/ImportSessionTable.tsx:120 +#: src/tables/settings/StocktakeReportTable.tsx:44 +#: src/tables/stock/StockItemTestResultTable.tsx:204 +#: src/tables/stock/StockTrackingTable.tsx:181 +#: src/tables/stock/StockTrackingTable.tsx:210 msgid "User" msgstr "" -#: src/components/render/ModelType.tsx:204 -#: src/pages/Index/Settings/AdminCenter/Index.tsx:98 +#: src/components/render/ModelType.tsx:236 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:109 #: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:13 msgid "Users" msgstr "" -#: src/components/render/ModelType.tsx:210 +#: src/components/render/ModelType.tsx:243 msgid "Group" msgstr "" -#: src/components/render/ModelType.tsx:211 +#: src/components/render/ModelType.tsx:244 #: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:20 -#: src/tables/settings/UserTable.tsx:138 -#: src/tables/settings/UserTable.tsx:201 +#: src/tables/settings/UserTable.tsx:137 +#: src/tables/settings/UserTable.tsx:200 msgid "Groups" msgstr "" -#: src/components/render/ModelType.tsx:218 +#: src/components/render/ModelType.tsx:252 msgid "Import Session" msgstr "" -#: src/components/render/ModelType.tsx:219 +#: src/components/render/ModelType.tsx:253 msgid "Import Sessions" msgstr "" -#: src/components/render/ModelType.tsx:225 +#: src/components/render/ModelType.tsx:260 msgid "Label Template" msgstr "" -#: src/components/render/ModelType.tsx:226 -#: src/pages/Index/Settings/AdminCenter/Index.tsx:158 +#: src/components/render/ModelType.tsx:261 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:187 msgid "Label Templates" msgstr "" -#: src/components/render/ModelType.tsx:232 +#: src/components/render/ModelType.tsx:264 +#~ msgid "Unknown Model" +#~ msgstr "Unknown Model" + +#: src/components/render/ModelType.tsx:268 msgid "Report Template" msgstr "" -#: src/components/render/ModelType.tsx:233 -#: src/pages/Index/Settings/AdminCenter/Index.tsx:164 +#: src/components/render/ModelType.tsx:269 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:193 msgid "Report Templates" msgstr "" -#: src/components/render/ModelType.tsx:239 -msgid "Plugin Configuration" -msgstr "" - -#: src/components/render/ModelType.tsx:240 +#: src/components/render/ModelType.tsx:277 msgid "Plugin Configurations" msgstr "" +#: src/components/render/ModelType.tsx:284 +msgid "Content Type" +msgstr "" + +#: src/components/render/ModelType.tsx:285 +msgid "Content Types" +msgstr "" + +#: src/components/render/ModelType.tsx:291 +#: src/tables/machine/MachineListTable.tsx:351 +#: src/tables/machine/MachineTypeTable.tsx:282 +msgid "Errors" +msgstr "" + +#: src/components/render/ModelType.tsx:307 +#~ msgid "Purchase Order Line Items" +#~ msgstr "Purchase Order Line Items" + +#: src/components/render/ModelType.tsx:337 +#~ msgid "Unknown Models" +#~ msgstr "Unknown Models" + #: src/components/render/Order.tsx:121 +#: src/tables/sales/SalesOrderAllocationTable.tsx:136 msgid "Shipment" msgstr "" #: src/components/render/Part.tsx:25 #: src/components/render/Plugin.tsx:17 -#: src/pages/company/CompanyDetail.tsx:325 -#: src/pages/company/SupplierPartDetail.tsx:360 -#: src/pages/part/PartDetail.tsx:879 +#: src/pages/company/CompanyDetail.tsx:307 +#: src/pages/company/SupplierPartDetail.tsx:349 +#: src/pages/part/PartDetail.tsx:911 msgid "Inactive" msgstr "" @@ -1736,39 +2335,38 @@ msgstr "" msgid "No stock" msgstr "" -#: src/components/render/Part.tsx:30 -#: src/defaults/links.tsx:30 -#: src/defaults/menuItems.tsx:38 -#: src/pages/Index/Settings/SystemSettings.tsx:206 -#: src/pages/part/PartDetail.tsx:543 -#: src/pages/stock/LocationDetail.tsx:367 -#: src/pages/stock/StockDetail.tsx:411 -#: src/tables/stock/StockItemTable.tsx:68 -msgid "Stock" -msgstr "" - -#: src/components/render/Stock.tsx:60 -#: src/pages/stock/StockDetail.tsx:150 -#: src/pages/stock/StockDetail.tsx:581 -#: src/tables/build/BuildAllocatedStockTable.tsx:102 -#: src/tables/sales/SalesOrderAllocationTable.tsx:80 +#: src/components/render/Stock.tsx:61 +#: src/forms/ReturnOrderForms.tsx:190 +#: src/pages/stock/StockDetail.tsx:166 +#: src/pages/stock/StockDetail.tsx:771 +#: src/tables/build/BuildAllocatedStockTable.tsx:123 +#: src/tables/build/BuildOutputTable.tsx:81 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:114 +#: src/tables/sales/SalesOrderAllocationTable.tsx:106 msgid "Serial Number" msgstr "" -#: src/components/render/Stock.tsx:62 -#: src/forms/BuildForms.tsx:218 -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/pages/part/pricing/BomPricingPanel.tsx:109 +#: src/components/render/Stock.tsx:63 +#: src/forms/BuildForms.tsx:206 +#: src/forms/BuildForms.tsx:515 +#: src/forms/PurchaseOrderForms.tsx:689 +#: src/forms/SalesOrderForms.tsx:248 +#: src/pages/part/PartSchedulingDetail.tsx:80 +#: src/pages/part/PartStocktakeDetail.tsx:60 +#: src/pages/part/PartStocktakeDetail.tsx:234 +#: src/pages/part/PartStocktakeDetail.tsx:252 +#: src/pages/part/pricing/BomPricingPanel.tsx:148 #: src/pages/part/pricing/PriceBreakPanel.tsx:89 -#: src/pages/part/pricing/PriceBreakPanel.tsx:171 -#: src/pages/stock/StockDetail.tsx:145 -#: src/pages/stock/StockDetail.tsx:587 -#: src/tables/build/BuildOrderTestTable.tsx:197 -#: src/tables/part/PartPurchaseOrdersTable.tsx:92 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:143 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:171 +#: src/pages/part/pricing/PriceBreakPanel.tsx:172 +#: src/pages/stock/StockDetail.tsx:161 +#: src/pages/stock/StockDetail.tsx:777 +#: src/tables/build/BuildLineTable.tsx:79 +#: src/tables/build/BuildOrderTestTable.tsx:198 +#: src/tables/part/PartPurchaseOrdersTable.tsx:93 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:146 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:177 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:77 -#: src/tables/stock/StockTrackingTable.tsx:59 +#: src/tables/stock/StockTrackingTable.tsx:63 msgid "Quantity" msgstr "" @@ -1842,10 +2440,6 @@ msgstr "" #~ msgid "Required Part" #~ msgstr "Required Part" -#: src/components/tables/build/BuildLineTable.tsx:152 -#~ msgid "Required Quantity" -#~ msgstr "Required Quantity" - #: src/components/tables/build/BuildOrderTable.tsx:52 #~ msgid "Progress" #~ msgstr "Progress" @@ -2126,14 +2720,6 @@ msgstr "" #~ msgid "user deleted" #~ msgstr "user deleted" -#: src/components/tables/settings/UserTable.tsx:168 -#~ msgid "First Name" -#~ msgstr "First Name" - -#: src/components/tables/settings/UserTable.tsx:173 -#~ msgid "Last Name" -#~ msgstr "Last Name" - #: src/components/tables/stock/StockItemTable.tsx:247 #~ msgid "Test Filter" #~ msgstr "Test Filter" @@ -2146,36 +2732,21 @@ msgstr "" #~ msgid "Stock location updated" #~ msgstr "Stock location updated" -#: src/components/widgets/DisplayWidget.tsx:11 -#: src/pages/Index/Settings/AccountSettings/DisplaySettingsPanel.tsx:17 -msgid "Display Settings" -msgstr "" - -#: src/components/widgets/DisplayWidget.tsx:15 -#: src/pages/Index/Settings/AccountSettings/DisplaySettingsPanel.tsx:23 -msgid "Color Mode" -msgstr "" - -#: src/components/widgets/DisplayWidget.tsx:21 -#: src/pages/Index/Settings/AccountSettings/DisplaySettingsPanel.tsx:33 -msgid "Language" -msgstr "" - #: src/components/widgets/FeedbackWidget.tsx:19 -msgid "Something is new: Platform UI" -msgstr "" +#~ msgid "Something is new: Platform UI" +#~ msgstr "Something is new: Platform UI" #: src/components/widgets/FeedbackWidget.tsx:21 -msgid "We are building a new UI with a modern stack. What you currently see is not fixed and will be redesigned but demonstrates the UI/UX possibilities we will have going forward." -msgstr "" +#~ msgid "We are building a new UI with a modern stack. What you currently see is not fixed and will be redesigned but demonstrates the UI/UX possibilities we will have going forward." +#~ msgstr "We are building a new UI with a modern stack. What you currently see is not fixed and will be redesigned but demonstrates the UI/UX possibilities we will have going forward." #: src/components/widgets/FeedbackWidget.tsx:32 -msgid "Provide Feedback" -msgstr "" +#~ msgid "Provide Feedback" +#~ msgstr "Provide Feedback" #: src/components/widgets/GetStartedWidget.tsx:11 -msgid "Getting started" -msgstr "" +#~ msgid "Getting started" +#~ msgstr "Getting started" #: src/components/widgets/MarkdownEditor.tsx:108 #~ msgid "Failed to upload image" @@ -2186,28 +2757,24 @@ msgstr "" #~ msgstr "Notes saved" #: src/components/widgets/WidgetLayout.tsx:166 -msgid "Layout" -msgstr "" +#~ msgid "Layout" +#~ msgstr "Layout" #: src/components/widgets/WidgetLayout.tsx:172 -msgid "Reset Layout" -msgstr "" +#~ msgid "Reset Layout" +#~ msgstr "Reset Layout" #: src/components/widgets/WidgetLayout.tsx:185 -msgid "Stop Edit" -msgstr "" - -#: src/components/widgets/WidgetLayout.tsx:185 -msgid "Edit Layout" -msgstr "" +#~ msgid "Stop Edit" +#~ msgstr "Stop Edit" #: src/components/widgets/WidgetLayout.tsx:191 -msgid "Appearance" -msgstr "" +#~ msgid "Appearance" +#~ msgstr "Appearance" #: src/components/widgets/WidgetLayout.tsx:203 -msgid "Show Boxes" -msgstr "" +#~ msgid "Show Boxes" +#~ msgstr "Show Boxes" #: src/contexts/LanguageContext.tsx:20 msgid "Arabic" @@ -2286,201 +2853,175 @@ msgid "Korean" msgstr "" #: src/contexts/LanguageContext.tsx:39 -msgid "Latvian" +msgid "Lithuanian" msgstr "" #: src/contexts/LanguageContext.tsx:40 -msgid "Dutch" +msgid "Latvian" msgstr "" #: src/contexts/LanguageContext.tsx:41 -msgid "Norwegian" +msgid "Dutch" msgstr "" #: src/contexts/LanguageContext.tsx:42 -msgid "Polish" +msgid "Norwegian" msgstr "" #: src/contexts/LanguageContext.tsx:43 -msgid "Portuguese" +msgid "Polish" msgstr "" #: src/contexts/LanguageContext.tsx:44 -msgid "Portuguese (Brazilian)" +msgid "Portuguese" msgstr "" #: src/contexts/LanguageContext.tsx:45 -msgid "Romanian" +msgid "Portuguese (Brazilian)" msgstr "" #: src/contexts/LanguageContext.tsx:46 -msgid "Russian" +msgid "Romanian" msgstr "" #: src/contexts/LanguageContext.tsx:47 -msgid "Slovak" +msgid "Russian" msgstr "" #: src/contexts/LanguageContext.tsx:48 -msgid "Slovenian" +msgid "Slovak" msgstr "" #: src/contexts/LanguageContext.tsx:49 -msgid "Swedish" +msgid "Slovenian" msgstr "" #: src/contexts/LanguageContext.tsx:50 -msgid "Thai" +msgid "Swedish" msgstr "" #: src/contexts/LanguageContext.tsx:51 -msgid "Turkish" +msgid "Thai" msgstr "" #: src/contexts/LanguageContext.tsx:52 -msgid "Ukrainian" +msgid "Turkish" msgstr "" #: src/contexts/LanguageContext.tsx:53 -msgid "Vietnamese" +msgid "Ukrainian" msgstr "" #: src/contexts/LanguageContext.tsx:54 -msgid "Chinese (Simplified)" +msgid "Vietnamese" msgstr "" #: src/contexts/LanguageContext.tsx:55 +msgid "Chinese (Simplified)" +msgstr "" + +#: src/contexts/LanguageContext.tsx:56 msgid "Chinese (Traditional)" msgstr "" +#: src/defaults/actions.tsx:18 +msgid "Go to the InvenTree dashboard" +msgstr "" + #: src/defaults/actions.tsx:18 #: src/defaults/links.tsx:27 #: src/defaults/menuItems.tsx:9 -msgid "Home" -msgstr "" +#~ msgid "Home" +#~ msgstr "Home" #: src/defaults/actions.tsx:25 -#: src/defaults/links.tsx:28 -#: src/defaults/menuItems.tsx:28 -#: src/pages/Index/Dashboard.tsx:19 -#: src/pages/Index/Settings/UserSettings.tsx:46 -msgid "Dashboard" -msgstr "" - -#: src/defaults/actions.tsx:26 -msgid "Go to the InvenTree dashboard" -msgstr "" - -#: src/defaults/actions.tsx:33 msgid "Visit the documentation to learn more about InvenTree" msgstr "" -#: src/defaults/actions.tsx:39 -#: src/defaults/links.tsx:98 -#: src/defaults/links.tsx:128 +#: src/defaults/actions.tsx:31 +#: src/defaults/links.tsx:92 +#: src/defaults/links.tsx:124 msgid "About InvenTree" msgstr "" -#: src/defaults/actions.tsx:40 -#: src/defaults/links.tsx:129 +#: src/defaults/actions.tsx:32 msgid "About the InvenTree org" msgstr "" -#: src/defaults/actions.tsx:46 +#: src/defaults/actions.tsx:38 msgid "Server Information" msgstr "" -#: src/defaults/actions.tsx:47 -#: src/defaults/links.tsx:123 +#: src/defaults/actions.tsx:39 +#: src/defaults/links.tsx:118 msgid "About this Inventree instance" msgstr "" -#: src/defaults/actions.tsx:53 -#: src/defaults/links.tsx:111 +#: src/defaults/actions.tsx:45 +#: src/defaults/links.tsx:105 +#: src/defaults/links.tsx:131 msgid "License Information" msgstr "" -#: src/defaults/actions.tsx:54 -#: src/defaults/links.tsx:135 +#: src/defaults/actions.tsx:46 msgid "Licenses for dependencies of the service" msgstr "" -#: src/defaults/actions.tsx:61 +#: src/defaults/actions.tsx:52 +msgid "Open Navigation" +msgstr "" + +#: src/defaults/actions.tsx:53 msgid "Open the main navigation menu" msgstr "" -#: src/defaults/actions.tsx:72 +#: src/defaults/actions.tsx:64 msgid "Go to the Admin Center" msgstr "" -#: src/defaults/dashboardItems.tsx:15 -msgid "Subscribed Parts" -msgstr "" - -#: src/defaults/dashboardItems.tsx:22 -msgid "Subscribed Categories" -msgstr "" - #: src/defaults/dashboardItems.tsx:29 -msgid "Latest Parts" -msgstr "" +#~ msgid "Latest Parts" +#~ msgstr "Latest Parts" #: src/defaults/dashboardItems.tsx:36 -msgid "BOM Waiting Validation" -msgstr "" +#~ msgid "BOM Waiting Validation" +#~ msgstr "BOM Waiting Validation" #: src/defaults/dashboardItems.tsx:43 -msgid "Recently Updated" -msgstr "" - -#: src/defaults/dashboardItems.tsx:50 -#: src/tables/part/PartTable.tsx:238 -msgid "Low Stock" -msgstr "" +#~ msgid "Recently Updated" +#~ msgstr "Recently Updated" #: src/defaults/dashboardItems.tsx:57 -msgid "Depleted Stock" -msgstr "" +#~ msgid "Depleted Stock" +#~ msgstr "Depleted Stock" #: src/defaults/dashboardItems.tsx:64 -msgid "Required for Build Orders" -msgstr "" +#~ msgid "Required for Build Orders" +#~ msgstr "Required for Build Orders" #: src/defaults/dashboardItems.tsx:71 -msgid "Expired Stock" -msgstr "" +#~ msgid "Expired Stock" +#~ msgstr "Expired Stock" #: src/defaults/dashboardItems.tsx:78 -msgid "Stale Stock" -msgstr "" +#~ msgid "Stale Stock" +#~ msgstr "Stale Stock" #: src/defaults/dashboardItems.tsx:85 -msgid "Build Orders In Progress" -msgstr "" - -#: src/defaults/dashboardItems.tsx:92 -msgid "Overdue Build Orders" -msgstr "" +#~ msgid "Build Orders In Progress" +#~ msgstr "Build Orders In Progress" #: src/defaults/dashboardItems.tsx:99 -msgid "Outstanding Purchase Orders" -msgstr "" - -#: src/defaults/dashboardItems.tsx:106 -msgid "Overdue Purchase Orders" -msgstr "" +#~ msgid "Outstanding Purchase Orders" +#~ msgstr "Outstanding Purchase Orders" #: src/defaults/dashboardItems.tsx:113 -msgid "Outstanding Sales Orders" -msgstr "" - -#: src/defaults/dashboardItems.tsx:120 -msgid "Overdue Sales Orders" -msgstr "" +#~ msgid "Outstanding Sales Orders" +#~ msgstr "Outstanding Sales Orders" #: src/defaults/dashboardItems.tsx:127 -msgid "Current News" -msgstr "" +#~ msgid "Current News" +#~ msgstr "Current News" #: src/defaults/defaultHostList.tsx:8 #~ msgid "InvenTree Demo" @@ -2490,98 +3031,81 @@ msgstr "" #~ msgid "Local Server" #~ msgstr "Local Server" -#: src/defaults/links.tsx:12 -#: src/pages/company/CompanyDetail.tsx:96 -msgid "Website" -msgstr "" - #: src/defaults/links.tsx:17 -msgid "GitHub" -msgstr "" +#~ msgid "GitHub" +#~ msgstr "GitHub" #: src/defaults/links.tsx:22 -msgid "Demo" -msgstr "" - -#: src/defaults/links.tsx:33 -#: src/defaults/menuItems.tsx:48 -#: src/pages/company/ManufacturerDetail.tsx:9 -#: src/pages/company/ManufacturerPartDetail.tsx:263 -#: src/pages/company/SupplierDetail.tsx:9 -#: src/pages/company/SupplierPartDetail.tsx:347 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:483 -#: src/pages/purchasing/PurchasingIndex.tsx:60 -msgid "Purchasing" -msgstr "" - -#: src/defaults/links.tsx:37 -#: src/defaults/menuItems.tsx:53 -#: src/pages/company/CustomerDetail.tsx:9 -#: src/pages/sales/ReturnOrderDetail.tsx:474 -#: src/pages/sales/SalesIndex.tsx:53 -#: src/pages/sales/SalesOrderDetail.tsx:525 -msgid "Sales" -msgstr "" +#~ msgid "Demo" +#~ msgstr "Demo" #: src/defaults/links.tsx:41 #: src/defaults/menuItems.tsx:71 #: src/pages/Index/Playground.tsx:217 -msgid "Playground" -msgstr "" +#~ msgid "Playground" +#~ msgstr "Playground" -#: src/defaults/links.tsx:55 -msgid "Getting Started" -msgstr "" - -#: src/defaults/links.tsx:56 -msgid "Getting started with InvenTree" -msgstr "" - -#: src/defaults/links.tsx:62 +#: src/defaults/links.tsx:45 msgid "API" msgstr "" -#: src/defaults/links.tsx:63 +#: src/defaults/links.tsx:48 msgid "InvenTree API documentation" msgstr "" -#: src/defaults/links.tsx:68 +#: src/defaults/links.tsx:52 msgid "Developer Manual" msgstr "" -#: src/defaults/links.tsx:69 +#: src/defaults/links.tsx:55 msgid "InvenTree developer manual" msgstr "" -#: src/defaults/links.tsx:74 +#: src/defaults/links.tsx:59 msgid "FAQ" msgstr "" -#: src/defaults/links.tsx:75 +#: src/defaults/links.tsx:62 msgid "Frequently asked questions" msgstr "" +#: src/defaults/links.tsx:66 +msgid "GitHub Repository" +msgstr "" + +#: src/defaults/links.tsx:69 +msgid "InvenTree source code on GitHub" +msgstr "" + #: src/defaults/links.tsx:76 #~ msgid "Instance" #~ msgstr "Instance" +#: src/defaults/links.tsx:79 +#: src/defaults/links.tsx:117 +msgid "System Information" +msgstr "" + #: src/defaults/links.tsx:83 #~ msgid "InvenTree" #~ msgstr "InvenTree" -#: src/defaults/links.tsx:85 -#: src/defaults/links.tsx:122 -msgid "System Information" -msgstr "" - #: src/defaults/links.tsx:117 #~ msgid "Licenses for packages used by InvenTree" #~ msgstr "Licenses for packages used by InvenTree" -#: src/defaults/links.tsx:134 -msgid "Licenses" +#: src/defaults/links.tsx:125 +msgid "About the InvenTree Project" msgstr "" +#: src/defaults/links.tsx:132 +msgid "Licenses for dependencies of the InvenTree software" +msgstr "" + +#: src/defaults/links.tsx:134 +#~ msgid "Licenses" +#~ msgstr "Licenses" + #: src/defaults/menuItems.tsx:7 #~ msgid "Open sourcea" #~ msgstr "Open sourcea" @@ -2607,8 +3131,8 @@ msgstr "" #~ msgstr "Profile page" #: src/defaults/menuItems.tsx:17 -msgid "User attributes and design settings." -msgstr "" +#~ msgid "User attributes and design settings." +#~ msgstr "User attributes and design settings." #: src/defaults/menuItems.tsx:21 #~ msgid "Free for everyone" @@ -2619,8 +3143,8 @@ msgstr "" #~ msgstr "The fluid of Smeargle’s tail secretions changes" #: src/defaults/menuItems.tsx:23 -msgid "View for interactive scanning and multiple actions." -msgstr "" +#~ msgid "View for interactive scanning and multiple actions." +#~ msgstr "View for interactive scanning and multiple actions." #: src/defaults/menuItems.tsx:24 #~ msgid "The fluid of Smeargle’s tail secretions changes in the intensity" @@ -2698,51 +3222,130 @@ msgstr "" #~ msgid "Are you sure you want to delete this attachment?" #~ msgstr "Are you sure you want to delete this attachment?" -#: src/forms/BuildForms.tsx:158 -msgid "Next serial number" +#: src/forms/BuildForms.tsx:248 +#~ msgid "Remove output" +#~ msgstr "Remove output" + +#: src/forms/BuildForms.tsx:269 +#: src/tables/build/BuildAllocatedStockTable.tsx:147 +#: src/tables/build/BuildOrderTestTable.tsx:177 +#: src/tables/build/BuildOrderTestTable.tsx:201 +#: src/tables/build/BuildOutputTable.tsx:460 +msgid "Build Output" msgstr "" -#: src/forms/BuildForms.tsx:162 -msgid "Latest serial number" +#: src/forms/BuildForms.tsx:269 +#: src/forms/BuildForms.tsx:337 +#: src/forms/BuildForms.tsx:385 +#: src/tables/build/BuildLineTable.tsx:89 +msgid "Batch" msgstr "" -#: src/forms/BuildForms.tsx:234 -msgid "Remove output" +#: src/forms/BuildForms.tsx:269 +#: src/forms/BuildForms.tsx:337 +#: src/forms/BuildForms.tsx:385 +#: src/forms/PurchaseOrderForms.tsx:603 +#: src/pages/build/BuildDetail.tsx:104 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:142 +#: src/pages/sales/ReturnOrderDetail.tsx:113 +#: src/pages/sales/SalesOrderDetail.tsx:122 +#: src/tables/build/BuildOrderTable.tsx:125 +#: src/tables/machine/MachineListTable.tsx:336 +#: src/tables/part/PartPurchaseOrdersTable.tsx:37 +#: src/tables/purchasing/PurchaseOrderTable.tsx:58 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:157 +#: src/tables/sales/ReturnOrderTable.tsx:56 +#: src/tables/sales/SalesOrderTable.tsx:56 +#: src/tables/settings/CustomStateTable.tsx:57 +#: src/tables/settings/ImportSessionTable.tsx:114 +#: src/tables/stock/StockItemTable.tsx:298 +#: src/tables/stock/StockTrackingTable.tsx:56 +msgid "Status" msgstr "" -#: src/forms/BuildForms.tsx:316 +#: src/forms/BuildForms.tsx:289 msgid "Complete Build Outputs" msgstr "" -#: src/forms/BuildForms.tsx:320 +#: src/forms/BuildForms.tsx:292 msgid "Build outputs have been completed" msgstr "" -#: src/forms/BuildForms.tsx:389 +#: src/forms/BuildForms.tsx:353 msgid "Scrap Build Outputs" msgstr "" -#: src/forms/BuildForms.tsx:393 +#: src/forms/BuildForms.tsx:356 msgid "Build outputs have been scrapped" msgstr "" -#: src/forms/BuildForms.tsx:425 -#: src/forms/BuildForms.tsx:449 +#: src/forms/BuildForms.tsx:393 msgid "Cancel Build Outputs" msgstr "" -#: src/forms/BuildForms.tsx:426 -msgid "Selected build outputs will be deleted" +#: src/forms/BuildForms.tsx:396 +msgid "Build outputs have been cancelled" msgstr "" -#: src/forms/BuildForms.tsx:453 -msgid "Build outputs have been cancelled" +#: src/forms/BuildForms.tsx:408 +#~ msgid "Selected build outputs will be deleted" +#~ msgstr "Selected build outputs will be deleted" + +#: src/forms/BuildForms.tsx:470 +#~ msgid "Remove line" +#~ msgstr "Remove line" + +#: src/forms/BuildForms.tsx:515 +#: src/forms/SalesOrderForms.tsx:248 +#: src/tables/build/BuildLineTable.tsx:174 +#: src/tables/sales/SalesOrderLineItemTable.tsx:276 +#: src/tables/stock/StockItemTable.tsx:309 +msgid "Allocated" +msgstr "" + +#: src/forms/BuildForms.tsx:545 +#: src/forms/SalesOrderForms.tsx:239 +#: src/pages/build/BuildDetail.tsx:208 +msgid "Source Location" +msgstr "" + +#: src/forms/BuildForms.tsx:546 +#: src/forms/SalesOrderForms.tsx:240 +msgid "Select the source location for the stock allocation" +msgstr "" + +#: src/forms/BuildForms.tsx:566 +#: src/forms/SalesOrderForms.tsx:274 +#: src/tables/build/BuildLineTable.tsx:442 +#: src/tables/build/BuildLineTable.tsx:569 +#: src/tables/build/BuildLineTable.tsx:642 +#: src/tables/sales/SalesOrderLineItemTable.tsx:302 +#: src/tables/sales/SalesOrderLineItemTable.tsx:326 +msgid "Allocate Stock" +msgstr "" + +#: src/forms/BuildForms.tsx:569 +#: src/forms/SalesOrderForms.tsx:279 +msgid "Stock items allocated" msgstr "" #: src/forms/CompanyForms.tsx:150 #~ msgid "Company updated" #~ msgstr "Company updated" +#: src/forms/PartForms.tsx:67 +#: src/forms/PartForms.tsx:154 +#: src/pages/part/CategoryDetail.tsx:117 +#: src/pages/part/PartDetail.tsx:384 +#: src/tables/part/PartCategoryTable.tsx:90 +#: src/tables/part/PartTable.tsx:294 +msgid "Subscribed" +msgstr "" + +#: src/forms/PartForms.tsx:68 +msgid "Subscribe to notifications for this part" +msgstr "" + #: src/forms/PartForms.tsx:106 #~ msgid "Create Part" #~ msgstr "Create Part" @@ -2751,191 +3354,190 @@ msgstr "" #~ msgid "Part created" #~ msgstr "Part created" -#: src/forms/PartForms.tsx:124 -msgid "Parent part category" -msgstr "" - #: src/forms/PartForms.tsx:129 #~ msgid "Part updated" #~ msgstr "Part updated" -#: src/forms/PurchaseOrderForms.tsx:300 +#: src/forms/PartForms.tsx:140 +msgid "Parent part category" +msgstr "" + +#: src/forms/PartForms.tsx:155 +msgid "Subscribe to notifications for this category" +msgstr "" + +#: src/forms/PurchaseOrderForms.tsx:314 +msgid "Assign Batch Code and Serial Numbers" +msgstr "" + +#: src/forms/PurchaseOrderForms.tsx:316 +msgid "Assign Batch Code" +msgstr "" + +#: src/forms/PurchaseOrderForms.tsx:336 msgid "Choose Location" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:308 +#: src/forms/PurchaseOrderForms.tsx:344 msgid "Item Destination selected" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:317 +#: src/forms/PurchaseOrderForms.tsx:353 msgid "Part category default location selected" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:327 +#: src/forms/PurchaseOrderForms.tsx:363 msgid "Received stock location selected" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:332 +#: src/forms/PurchaseOrderForms.tsx:368 msgid "Default location selected" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:343 -#: src/forms/PurchaseOrderForms.tsx:435 -msgid "Scan Barcode" -msgstr "" +#: src/forms/PurchaseOrderForms.tsx:421 +#~ msgid "Assign Batch Code{0}" +#~ msgstr "Assign Batch Code{0}" -#: src/forms/PurchaseOrderForms.tsx:388 +#: src/forms/PurchaseOrderForms.tsx:427 msgid "Set Location" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:396 -msgid "Assign Batch Code{0}" -msgstr "" - -#: src/forms/PurchaseOrderForms.tsx:405 -#: src/forms/StockForms.tsx:420 +#: src/forms/PurchaseOrderForms.tsx:442 +#: src/forms/StockForms.tsx:539 msgid "Adjust Packaging" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:412 -msgid "Change Status" -msgstr "" - -#: src/forms/PurchaseOrderForms.tsx:418 -msgid "Add Note" -msgstr "" - #: src/forms/PurchaseOrderForms.tsx:444 #: src/forms/StockForms.tsx:428 -msgid "Remove item from list" +#~ msgid "Remove item from list" +#~ msgstr "Remove item from list" + +#: src/forms/PurchaseOrderForms.tsx:450 +msgid "Change Status" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:471 -#: src/forms/StockForms.tsx:499 -#: src/forms/StockForms.tsx:533 -#: src/forms/StockForms.tsx:562 -#: src/forms/StockForms.tsx:590 -#: src/forms/StockForms.tsx:621 -#: src/forms/StockForms.tsx:656 -#: src/forms/StockForms.tsx:698 -#: src/forms/StockForms.tsx:734 -#: src/pages/stock/StockDetail.tsx:181 -#: src/tables/ColumnRenderers.tsx:49 -#: src/tables/stock/StockTrackingTable.tsx:85 +#: src/forms/PurchaseOrderForms.tsx:456 +msgid "Add Note" +msgstr "" + +#: src/forms/PurchaseOrderForms.tsx:503 +#: src/forms/StockForms.tsx:614 +#: src/forms/StockForms.tsx:651 +#: src/forms/StockForms.tsx:677 +#: src/forms/StockForms.tsx:705 +#: src/forms/StockForms.tsx:736 +#: src/forms/StockForms.tsx:771 +#: src/forms/StockForms.tsx:813 +#: src/forms/StockForms.tsx:851 +#: src/pages/stock/StockDetail.tsx:202 +#: src/tables/ColumnRenderers.tsx:60 +#: src/tables/stock/StockTrackingTable.tsx:89 msgid "Location" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:486 +#: src/forms/PurchaseOrderForms.tsx:518 msgid "Store at default location" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:499 +#: src/forms/PurchaseOrderForms.tsx:533 msgid "Store at line item destination" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:509 +#: src/forms/PurchaseOrderForms.tsx:545 msgid "Store with already received stock" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:524 -#: src/pages/build/BuildDetail.tsx:219 -#: src/pages/stock/StockDetail.tsx:162 -#: src/pages/stock/StockDetail.tsx:599 -#: src/tables/build/BuildAllocatedStockTable.tsx:109 -#: src/tables/build/BuildOrderTestTable.tsx:188 -#: src/tables/sales/SalesOrderAllocationTable.tsx:87 +#: src/forms/PurchaseOrderForms.tsx:566 +#: src/pages/build/BuildDetail.tsx:222 +#: src/pages/stock/StockDetail.tsx:185 +#: src/pages/stock/StockDetail.tsx:793 +#: src/tables/build/BuildAllocatedStockTable.tsx:130 +#: src/tables/build/BuildOrderTestTable.tsx:189 +#: src/tables/build/BuildOutputTable.tsx:86 +#: src/tables/sales/SalesOrderAllocationTable.tsx:113 msgid "Batch Code" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:535 -msgid "Serial numbers" +#: src/forms/PurchaseOrderForms.tsx:566 +#~ msgid "Serial numbers" +#~ msgstr "Serial numbers" + +#: src/forms/PurchaseOrderForms.tsx:567 +msgid "Enter batch code for received items" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:544 -#: src/forms/StockForms.tsx:443 -#: src/pages/company/SupplierPartDetail.tsx:156 -#: src/pages/company/SupplierPartDetail.tsx:207 -#: src/pages/stock/StockDetail.tsx:244 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:192 +#: src/forms/PurchaseOrderForms.tsx:579 +#: src/forms/StockForms.tsx:152 +msgid "Serial Numbers" +msgstr "" + +#: src/forms/PurchaseOrderForms.tsx:580 +msgid "Enter serial numbers for received items" +msgstr "" + +#: src/forms/PurchaseOrderForms.tsx:590 +#: src/forms/StockForms.tsx:556 +#: src/pages/company/SupplierPartDetail.tsx:168 +#: src/pages/company/SupplierPartDetail.tsx:219 +#: src/pages/stock/StockDetail.tsx:320 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:198 msgid "Packaging" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:556 -#: src/pages/build/BuildDetail.tsx:109 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:148 -#: src/pages/sales/ReturnOrderDetail.tsx:121 -#: src/pages/sales/SalesOrderDetail.tsx:127 -#: src/tables/build/BuildOrderTable.tsx:122 -#: src/tables/machine/MachineListTable.tsx:335 -#: src/tables/part/PartPurchaseOrdersTable.tsx:37 -#: src/tables/purchasing/PurchaseOrderTable.tsx:55 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:132 -#: src/tables/sales/ReturnOrderTable.tsx:46 -#: src/tables/sales/SalesOrderTable.tsx:53 -#: src/tables/settings/ImportSessionTable.tsx:115 -#: src/tables/stock/StockItemTable.tsx:294 -#: src/tables/stock/StockTrackingTable.tsx:52 -msgid "Status" -msgstr "" - -#: src/forms/PurchaseOrderForms.tsx:564 -#: src/pages/company/SupplierPartDetail.tsx:110 -#: src/tables/ColumnRenderers.tsx:132 +#: src/forms/PurchaseOrderForms.tsx:612 +#: src/pages/company/SupplierPartDetail.tsx:115 +#: src/tables/ColumnRenderers.tsx:143 msgid "Note" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/pages/company/SupplierPartDetail.tsx:128 -#: src/tables/purchasing/SupplierPriceBreakTable.tsx:57 -msgid "SKU" -msgstr "" - -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/tables/part/PartPurchaseOrdersTable.tsx:120 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:178 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:127 -msgid "Received" -msgstr "" - -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/forms/StockForms.tsx:499 -#: src/forms/StockForms.tsx:533 -#: src/forms/StockForms.tsx:562 -#: src/forms/StockForms.tsx:590 -#: src/forms/StockForms.tsx:621 -#: src/forms/StockForms.tsx:656 -#: src/forms/StockForms.tsx:698 -#: src/forms/StockForms.tsx:734 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:413 -#: src/tables/RowActions.tsx:113 -msgid "Actions" -msgstr "" - -#: src/forms/PurchaseOrderForms.tsx:655 -msgid "Receive Line Items" -msgstr "" - #: src/forms/PurchaseOrderForms.tsx:658 #~ msgid "Receive line items" #~ msgstr "Receive line items" -#: src/forms/StockForms.tsx:104 -msgid "Add given quantity as packs instead of individual items" +#: src/forms/PurchaseOrderForms.tsx:689 +#: src/pages/company/SupplierPartDetail.tsx:133 +#: src/tables/purchasing/SupplierPriceBreakTable.tsx:57 +msgid "SKU" +msgstr "" + +#: src/forms/PurchaseOrderForms.tsx:689 +#: src/tables/part/PartPurchaseOrdersTable.tsx:126 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:184 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:247 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:152 +msgid "Received" +msgstr "" + +#: src/forms/PurchaseOrderForms.tsx:701 +msgid "Receive Line Items" +msgstr "" + +#: src/forms/ReturnOrderForms.tsx:201 +msgid "Receive Items" +msgstr "" + +#: src/forms/ReturnOrderForms.tsx:208 +msgid "Item received into stock" +msgstr "" + +#: src/forms/StockForms.tsx:80 +#: src/hooks/UsePlaceholder.tsx:57 +msgid "Next serial number" msgstr "" #: src/forms/StockForms.tsx:110 #~ msgid "Create Stock Item" #~ msgstr "Create Stock Item" -#: src/forms/StockForms.tsx:117 +#: src/forms/StockForms.tsx:131 +msgid "Add given quantity as packs instead of individual items" +msgstr "" + +#: src/forms/StockForms.tsx:145 msgid "Enter initial quantity for this stock item" msgstr "" -#: src/forms/StockForms.tsx:124 -msgid "Serial Numbers" -msgstr "" - -#: src/forms/StockForms.tsx:125 +#: src/forms/StockForms.tsx:154 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" @@ -2943,82 +3545,102 @@ msgstr "" #~ msgid "Stock item updated" #~ msgstr "Stock item updated" -#: src/forms/StockForms.tsx:179 -#: src/pages/stock/StockDetail.tsx:434 -#: src/tables/stock/StockItemTable.tsx:417 -#: src/tables/stock/StockItemTable.tsx:535 +#: src/forms/StockForms.tsx:169 +#: src/pages/stock/StockDetail.tsx:131 +msgid "Stock Status" +msgstr "" + +#: src/forms/StockForms.tsx:218 +#: src/pages/stock/StockDetail.tsx:554 +#: src/tables/stock/StockItemTable.tsx:421 +#: src/tables/stock/StockItemTable.tsx:541 msgid "Add Stock Item" msgstr "" -#: src/forms/StockForms.tsx:362 +#: src/forms/StockForms.tsx:262 +msgid "Select the part to install" +msgstr "" + +#: src/forms/StockForms.tsx:480 msgid "Loading..." msgstr "" -#: src/forms/StockForms.tsx:408 +#: src/forms/StockForms.tsx:527 msgid "Move to default location" msgstr "" -#: src/forms/StockForms.tsx:499 -#: src/forms/StockForms.tsx:533 -#: src/forms/StockForms.tsx:562 -#: src/forms/StockForms.tsx:590 -#: src/forms/StockForms.tsx:621 -#: src/forms/StockForms.tsx:656 -#: src/forms/StockForms.tsx:698 -#: src/forms/StockForms.tsx:734 -#: src/pages/part/PartDetail.tsx:230 -#: src/pages/part/PartDetail.tsx:843 -#: src/tables/stock/StockItemTable.tsx:325 +#: src/forms/StockForms.tsx:614 +#: src/forms/StockForms.tsx:651 +#: src/forms/StockForms.tsx:677 +#: src/forms/StockForms.tsx:705 +#: src/forms/StockForms.tsx:736 +#: src/forms/StockForms.tsx:771 +#: src/forms/StockForms.tsx:813 +#: src/forms/StockForms.tsx:851 +#: src/pages/part/PartDetail.tsx:251 +#: src/pages/part/PartDetail.tsx:875 +#: src/tables/stock/StockItemTable.tsx:329 msgid "In Stock" msgstr "" -#: src/forms/StockForms.tsx:499 +#: src/forms/StockForms.tsx:614 msgid "Move" msgstr "" -#: src/forms/StockForms.tsx:562 -#: src/pages/stock/StockDetail.tsx:518 -#: src/tables/stock/StockItemTestResultTable.tsx:328 +#: src/forms/StockForms.tsx:677 +#: src/pages/stock/StockDetail.tsx:681 +#: src/tables/stock/StockItemTestResultTable.tsx:346 msgid "Add" msgstr "" -#: src/forms/StockForms.tsx:590 -#: src/pages/Index/Scan.tsx:266 -#: src/pages/stock/StockDetail.tsx:508 +#: src/forms/StockForms.tsx:705 +#: src/pages/Index/Scan.tsx:280 +#: src/pages/stock/StockDetail.tsx:670 msgid "Count" msgstr "" -#: src/forms/StockForms.tsx:835 +#: src/forms/StockForms.tsx:953 +#: src/pages/stock/StockDetail.tsx:682 +#: src/tables/stock/StockItemTable.tsx:454 msgid "Add Stock" msgstr "" -#: src/forms/StockForms.tsx:844 +#: src/forms/StockForms.tsx:962 +#: src/pages/stock/StockDetail.tsx:691 +#: src/tables/stock/StockItemTable.tsx:463 msgid "Remove Stock" msgstr "" -#: src/forms/StockForms.tsx:853 -#: src/pages/part/PartDetail.tsx:1017 +#: src/forms/StockForms.tsx:971 +#: src/pages/part/PartDetail.tsx:1039 +#: src/pages/stock/StockDetail.tsx:712 +#: src/tables/stock/StockItemTable.tsx:483 msgid "Transfer Stock" msgstr "" -#: src/forms/StockForms.tsx:862 -#: src/pages/part/PartDetail.tsx:1006 +#: src/forms/StockForms.tsx:980 +#: src/pages/part/PartDetail.tsx:1028 +#: src/pages/stock/LocationDetail.tsx:314 +#: src/pages/stock/LocationDetail.tsx:318 +#: src/tables/stock/StockItemTable.tsx:472 +#: src/tables/stock/StockItemTable.tsx:476 msgid "Count Stock" msgstr "" -#: src/forms/StockForms.tsx:871 +#: src/forms/StockForms.tsx:989 msgid "Change Stock Status" msgstr "" -#: src/forms/StockForms.tsx:880 +#: src/forms/StockForms.tsx:998 msgid "Merge Stock" msgstr "" -#: src/forms/StockForms.tsx:899 +#: src/forms/StockForms.tsx:1017 +#: src/tables/stock/StockItemTable.tsx:530 msgid "Delete Stock Items" msgstr "" -#: src/forms/StockForms.tsx:906 +#: src/forms/StockForms.tsx:1024 msgid "Parent stock location" msgstr "" @@ -3042,11 +3664,11 @@ msgstr "" #~ msgid "You have been logged out" #~ msgstr "You have been logged out" -#: src/functions/auth.tsx:117 +#: src/functions/auth.tsx:128 msgid "Logged Out" msgstr "" -#: src/functions/auth.tsx:118 +#: src/functions/auth.tsx:129 msgid "Successfully logged out" msgstr "" @@ -3062,20 +3684,20 @@ msgstr "" #~ msgid "Found an existing login - welcome back!" #~ msgstr "Found an existing login - welcome back!" -#: src/functions/auth.tsx:156 +#: src/functions/auth.tsx:167 msgid "Check your inbox for a reset link. This only works if you have an account. Check in spam too." msgstr "" -#: src/functions/auth.tsx:163 +#: src/functions/auth.tsx:174 #: src/pages/Auth/Set-Password.tsx:39 msgid "Reset failed" msgstr "" -#: src/functions/auth.tsx:194 +#: src/functions/auth.tsx:205 msgid "Logged In" msgstr "" -#: src/functions/auth.tsx:195 +#: src/functions/auth.tsx:206 msgid "Successfully logged in" msgstr "" @@ -3095,30 +3717,38 @@ msgstr "" #~ msgid "method parameter not supplied" #~ msgstr "method parameter not supplied" -#: src/functions/notifications.tsx:10 +#: src/functions/notifications.tsx:12 msgid "Not implemented" msgstr "" -#: src/functions/notifications.tsx:11 +#: src/functions/notifications.tsx:13 msgid "This feature is not yet implemented" msgstr "" -#: src/functions/notifications.tsx:21 -msgid "Permission denied" -msgstr "" +#: src/functions/notifications.tsx:24 +#~ msgid "Permission denied" +#~ msgstr "Permission denied" -#: src/functions/notifications.tsx:22 +#: src/functions/notifications.tsx:25 msgid "You do not have permission to perform this action" msgstr "" -#: src/functions/notifications.tsx:33 +#: src/functions/notifications.tsx:36 msgid "Invalid Return Code" msgstr "" -#: src/functions/notifications.tsx:34 +#: src/functions/notifications.tsx:37 msgid "Server returned status {returnCode}" msgstr "" +#: src/functions/notifications.tsx:47 +msgid "Timeout" +msgstr "" + +#: src/functions/notifications.tsx:48 +msgid "The request timed out" +msgstr "" + #: src/hooks/UseForm.tsx:88 msgid "Item Created" msgstr "" @@ -3135,20 +3765,24 @@ msgstr "" msgid "Are you sure you want to delete this item?" msgstr "" +#: src/hooks/UsePlaceholder.tsx:59 +msgid "Latest serial number" +msgstr "" + #: src/pages/Auth/Logged-In.tsx:22 msgid "Checking if you are already logged in" msgstr "" -#: src/pages/Auth/Login.tsx:31 -#: src/pages/Index/Scan.tsx:329 +#: src/pages/Auth/Login.tsx:35 +#: src/pages/Index/Scan.tsx:343 msgid "No selection" msgstr "" -#: src/pages/Auth/Login.tsx:87 +#: src/pages/Auth/Login.tsx:91 msgid "Welcome, log in below" msgstr "" -#: src/pages/Auth/Login.tsx:89 +#: src/pages/Auth/Login.tsx:93 msgid "Register below" msgstr "" @@ -3162,8 +3796,8 @@ msgstr "" #: src/pages/Auth/Reset.tsx:41 #: src/pages/Auth/Set-Password.tsx:112 -msgid "Send mail" -msgstr "" +#~ msgid "Send mail" +#~ msgstr "Send mail" #: src/pages/Auth/Set-Password.tsx:30 msgid "Token invalid" @@ -3174,22 +3808,22 @@ msgid "You need to provide a valid token to set a new password. Check your inbox msgstr "" #: src/pages/Auth/Set-Password.tsx:49 -msgid "No token provided" -msgstr "" +#~ msgid "No token provided" +#~ msgstr "No token provided" #: src/pages/Auth/Set-Password.tsx:50 -msgid "You need to provide a token to set a new password. Check your inbox for a reset link." -msgstr "" +#~ msgid "You need to provide a token to set a new password. Check your inbox for a reset link." +#~ msgstr "You need to provide a token to set a new password. Check your inbox for a reset link." -#: src/pages/Auth/Set-Password.tsx:73 +#: src/pages/Auth/Set-Password.tsx:68 msgid "Password set" msgstr "" -#: src/pages/Auth/Set-Password.tsx:74 +#: src/pages/Auth/Set-Password.tsx:69 msgid "The password was set successfully. You can now login with your new password" msgstr "" -#: src/pages/Auth/Set-Password.tsx:101 +#: src/pages/Auth/Set-Password.tsx:96 msgid "Set new password" msgstr "" @@ -3206,20 +3840,20 @@ msgstr "" #~ msgstr "Sorry, an unexpected error has occurred." #: src/pages/Index/Dashboard.tsx:22 -msgid "Autoupdate" -msgstr "" +#~ msgid "Autoupdate" +#~ msgstr "Autoupdate" #: src/pages/Index/Dashboard.tsx:26 -msgid "This page is a replacement for the old start page with the same information. This page will be deprecated and replaced by the home page." -msgstr "" +#~ msgid "This page is a replacement for the old start page with the same information. This page will be deprecated and replaced by the home page." +#~ msgstr "This page is a replacement for the old start page with the same information. This page will be deprecated and replaced by the home page." #: src/pages/Index/Home.tsx:58 -msgid "Welcome to your Dashboard{0}" -msgstr "" +#~ msgid "Welcome to your Dashboard{0}" +#~ msgstr "Welcome to your Dashboard{0}" #: src/pages/Index/Playground.tsx:222 -msgid "This page is a showcase for the possibilities of Platform UI." -msgstr "" +#~ msgid "This page is a showcase for the possibilities of Platform UI." +#~ msgstr "This page is a showcase for the possibilities of Platform UI." #: src/pages/Index/Profile/Profile.tsx:30 #: src/pages/Index/Profile/Profile.tsx:141 @@ -3365,125 +3999,190 @@ msgstr "" msgid "Image Barcode" msgstr "" -#: src/pages/Index/Scan.tsx:247 +#: src/pages/Index/Scan.tsx:261 msgid "Selected elements are not known" msgstr "" -#: src/pages/Index/Scan.tsx:254 +#: src/pages/Index/Scan.tsx:268 msgid "Multiple object types selected" msgstr "" -#: src/pages/Index/Scan.tsx:261 +#: src/pages/Index/Scan.tsx:275 msgid "Actions for {0}" msgstr "" -#: src/pages/Index/Scan.tsx:282 +#: src/pages/Index/Scan.tsx:296 msgid "Scan Page" msgstr "" -#: src/pages/Index/Scan.tsx:285 +#: src/pages/Index/Scan.tsx:299 msgid "This page can be used for continuously scanning items and taking actions on them." msgstr "" -#: src/pages/Index/Scan.tsx:292 +#: src/pages/Index/Scan.tsx:306 msgid "Toggle Fullscreen" msgstr "" -#: src/pages/Index/Scan.tsx:305 +#: src/pages/Index/Scan.tsx:319 msgid "Select the input method you want to use to scan items." msgstr "" -#: src/pages/Index/Scan.tsx:307 +#: src/pages/Index/Scan.tsx:321 msgid "Input" msgstr "" -#: src/pages/Index/Scan.tsx:314 +#: src/pages/Index/Scan.tsx:328 msgid "Select input method" msgstr "" -#: src/pages/Index/Scan.tsx:315 +#: src/pages/Index/Scan.tsx:329 msgid "Nothing found" msgstr "" -#: src/pages/Index/Scan.tsx:323 +#: src/pages/Index/Scan.tsx:337 msgid "Depending on the selected parts actions will be shown here. Not all barcode types are supported currently." msgstr "" -#: src/pages/Index/Scan.tsx:325 +#: src/pages/Index/Scan.tsx:339 msgid "Action" msgstr "" -#: src/pages/Index/Scan.tsx:334 +#: src/pages/Index/Scan.tsx:348 msgid "{0} items selected" msgstr "" -#: src/pages/Index/Scan.tsx:337 +#: src/pages/Index/Scan.tsx:351 msgid "General Actions" msgstr "" -#: src/pages/Index/Scan.tsx:351 +#: src/pages/Index/Scan.tsx:365 msgid "Lookup part" msgstr "" -#: src/pages/Index/Scan.tsx:359 +#: src/pages/Index/Scan.tsx:373 msgid "Open Link" msgstr "" -#: src/pages/Index/Scan.tsx:375 +#: src/pages/Index/Scan.tsx:389 msgid "History is locally kept in this browser." msgstr "" -#: src/pages/Index/Scan.tsx:376 +#: src/pages/Index/Scan.tsx:390 msgid "The history is kept in this browser's local storage. So it won't be shared with other users or other devices but is persistent through reloads. You can select items in the history to perform actions on them. To add items, scan/enter them in the Input area." msgstr "" -#: src/pages/Index/Scan.tsx:378 +#: src/pages/Index/Scan.tsx:392 #: src/pages/Notifications.tsx:100 msgid "History" msgstr "" -#: src/pages/Index/Scan.tsx:384 +#: src/pages/Index/Scan.tsx:398 msgid "Delete History" msgstr "" -#: src/pages/Index/Scan.tsx:449 +#: src/pages/Index/Scan.tsx:463 msgid "No history" msgstr "" -#: src/pages/Index/Scan.tsx:467 +#: src/pages/Index/Scan.tsx:481 msgid "Item" msgstr "" -#: src/pages/Index/Scan.tsx:470 +#: src/pages/Index/Scan.tsx:484 msgid "Type" msgstr "" -#: src/pages/Index/Scan.tsx:473 +#: src/pages/Index/Scan.tsx:487 msgid "Source" msgstr "" -#: src/pages/Index/Scan.tsx:476 +#: src/pages/Index/Scan.tsx:490 msgid "Scanned at" msgstr "" -#: src/pages/Index/Scan.tsx:528 +#: src/pages/Index/Scan.tsx:547 msgid "Enter item serial or data" msgstr "" -#: src/pages/Index/Scan.tsx:540 +#: src/pages/Index/Scan.tsx:559 msgid "Add dummy item" msgstr "" +#: src/pages/Index/Scan.tsx:569 +msgid "Start scanning by selecting a camera and pressing the play button." +msgstr "" + +#: src/pages/Index/Scan.tsx:650 +msgid "Error while getting camera" +msgstr "" + +#: src/pages/Index/Scan.tsx:673 +msgid "Error while scanning" +msgstr "" + +#: src/pages/Index/Scan.tsx:687 +msgid "Error while stopping" +msgstr "" + +#: src/pages/Index/Scan.tsx:745 +msgid "Stop scanning" +msgstr "" + +#: src/pages/Index/Scan.tsx:754 +msgid "Start scanning" +msgstr "" + +#: src/pages/Index/Scan.tsx:763 +msgid "Scanning" +msgstr "" + +#: src/pages/Index/Scan.tsx:763 +msgid "Not scanning" +msgstr "" + +#: src/pages/Index/Scan.tsx:775 +msgid "Select Camera" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:28 +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:50 +msgid "Edit User Information" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:32 +msgid "User details updated" +msgstr "" + #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:41 -msgid "Account Details" +msgid "User Details" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:41 +#~ msgid "Account Details" +#~ msgstr "Account Details" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:44 +msgid "User Actions" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:48 +msgid "Edit User" msgstr "" #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:50 -msgid "First name" +#~ msgid "First name" +#~ msgstr "First name" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:54 +msgid "Set Password" msgstr "" #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:55 -msgid "Last name" +#~ msgid "Last name" +#~ msgstr "Last name" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:56 +msgid "Set User Password" msgstr "" #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:58 @@ -3495,15 +4194,28 @@ msgstr "" #~ msgstr "Last name: {0}" #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:67 -msgid "First name:" -msgstr "" +#~ msgid "First name:" +#~ msgstr "First name:" #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:71 -msgid "Last name:" +#~ msgid "Last name:" +#~ msgstr "Last name:" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:73 +msgid "First Name" msgstr "" -#: src/pages/Index/Settings/AccountSettings/DisplaySettingsPanel.tsx:41 -msgid "Use pseudo language" +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:79 +msgid "Last Name" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:85 +msgid "Staff Access" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:93 +#: src/tables/settings/UserTable.tsx:293 +msgid "Superuser" msgstr "" #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:55 @@ -3600,27 +4312,6 @@ msgstr "" msgid "No tokens configured" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:398 -#: src/pages/part/PartDetail.tsx:297 -#: src/tables/bom/UsedInTable.tsx:84 -#: src/tables/build/BuildOrderTable.tsx:110 -#: src/tables/company/CompanyTable.tsx:61 -#: src/tables/company/CompanyTable.tsx:95 -#: src/tables/machine/MachineListTable.tsx:332 -#: src/tables/machine/MachineListTable.tsx:594 -#: src/tables/part/ParametricPartTable.tsx:223 -#: src/tables/part/PartTable.tsx:178 -#: src/tables/part/PartVariantTable.tsx:15 -#: src/tables/plugin/PluginListTable.tsx:149 -#: src/tables/plugin/PluginListTable.tsx:271 -#: src/tables/plugin/PluginListTable.tsx:563 -#: src/tables/purchasing/SupplierPartTable.tsx:98 -#: src/tables/purchasing/SupplierPartTable.tsx:187 -#: src/tables/settings/UserTable.tsx:284 -#: src/tables/stock/StockItemTable.tsx:289 -msgid "Active" -msgstr "" - #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:401 msgid "Expiry" msgstr "" @@ -3630,38 +4321,74 @@ msgid "Last Seen" msgstr "" #: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:65 -msgid "bars" -msgstr "" +#~ msgid "bars" +#~ msgstr "bars" #: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:66 -msgid "oval" -msgstr "" +#~ msgid "oval" +#~ msgstr "oval" #: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:67 -msgid "dots" -msgstr "" +#~ msgid "dots" +#~ msgstr "dots" #: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:81 -msgid "Theme" -msgstr "" +#~ msgid "Theme" +#~ msgstr "Theme" #: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:87 -msgid "Primary color" +#~ msgid "Primary color" +#~ msgstr "Primary color" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:88 +msgid "Bars" msgstr "" -#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:100 +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:89 +msgid "Oval" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:90 +msgid "Dots" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:101 +msgid "Display Settings" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:107 +msgid "Language" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:115 +msgid "Use pseudo language" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:122 +msgid "Color Mode" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:133 +msgid "Highlight color" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:145 +msgid "Example" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:151 msgid "White color" msgstr "" -#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:108 +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:167 msgid "Black color" msgstr "" -#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:116 +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:183 msgid "Border Radius" msgstr "" -#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:132 +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:199 msgid "Loader" msgstr "" @@ -3673,89 +4400,156 @@ msgstr "" #~ msgid "Advanced Amininistrative Options for InvenTree" #~ msgstr "Advanced Amininistrative Options for InvenTree" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:104 +#: src/pages/Index/Settings/AdminCenter/CurrencyManagmentPanel.tsx:27 +#: src/tables/ColumnRenderers.tsx:262 +msgid "Currency" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/CurrencyManagmentPanel.tsx:32 +msgid "Rate" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/CurrencyManagmentPanel.tsx:44 +msgid "Exchange rates updated" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/CurrencyManagmentPanel.tsx:50 +msgid "Exchange rate update error" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/CurrencyManagmentPanel.tsx:62 +msgid "Refresh currency exchange rates" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/CurrencyManagmentPanel.tsx:99 +msgid "Last fetched" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/CurrencyManagmentPanel.tsx:100 +msgid "Base currency" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:115 msgid "Data Import" msgstr "" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:110 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:121 +msgid "Barcode Scans" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:127 msgid "Background Tasks" msgstr "" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:116 -msgid "Error Reports" -msgstr "" - -#: src/pages/Index/Settings/AdminCenter/Index.tsx:122 -msgid "Currencies" -msgstr "" - #: src/pages/Index/Settings/AdminCenter/Index.tsx:127 #~ msgid "Templates" #~ msgstr "Templates" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:140 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:133 +msgid "Error Reports" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:139 +msgid "Currencies" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:157 +msgid "Custom States" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:163 +#: src/pages/Index/Settings/AdminCenter/UnitManagmentPanel.tsx:58 msgid "Custom Units" msgstr "" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:146 -#: src/pages/part/CategoryDetail.tsx:264 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:169 +#: src/pages/part/CategoryDetail.tsx:269 msgid "Part Parameters" msgstr "" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:152 -msgid "Category Parameters" -msgstr "" - -#: src/pages/Index/Settings/AdminCenter/Index.tsx:170 -msgid "Location Types" -msgstr "" - #: src/pages/Index/Settings/AdminCenter/Index.tsx:170 #~ msgid "Location types" #~ msgstr "Location types" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:182 -#: src/tables/machine/MachineTypeTable.tsx:287 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:175 +msgid "Category Parameters" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:181 +msgid "Stocktake" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:199 +msgid "Location Types" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:211 +#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:48 +#: src/tables/machine/MachineTypeTable.tsx:308 msgid "Machines" msgstr "" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:192 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:221 msgid "Quick Actions" msgstr "" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:197 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:226 msgid "Add a new user" msgstr "" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:222 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:252 msgid "Advanced Options" msgstr "" #: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:43 -msgid "Machine types" -msgstr "" +#~ msgid "Machine types" +#~ msgstr "Machine types" #: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:53 -msgid "Machine Error Stack" +#~ msgid "Machine Error Stack" +#~ msgstr "Machine Error Stack" + +#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:56 +msgid "Machine Types" msgstr "" #: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:62 -msgid "There are no machine registry errors." +#~ msgid "There are no machine registry errors." +#~ msgstr "There are no machine registry errors." + +#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:64 +msgid "Machine Errors" msgstr "" -#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:28 -#: src/tables/settings/UserTable.tsx:119 +#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:77 +msgid "Registry Registry Errors" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:80 +msgid "There are machine registry errors" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:86 +msgid "Machine Registry Errors" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:89 +msgid "There are no machine registry errors" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:31 +#: src/tables/settings/UserTable.tsx:118 msgid "Info" msgstr "" -#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:32 -msgid "External plugins are not enabled for this InvenTree installation." -msgstr "" - #: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:33 #~ msgid "Plugin Error Stack" #~ msgstr "Plugin Error Stack" +#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:35 +msgid "External plugins are not enabled for this InvenTree installation." +msgstr "" + #: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:45 #~ msgid "Warning" #~ msgstr "Warning" @@ -3764,34 +4558,46 @@ msgstr "" #~ msgid "Changing the settings below require you to immediately restart the server. Do not change this while under active usage." #~ msgstr "Changing the settings below require you to immediately restart the server. Do not change this while under active usage." -#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:50 +#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:73 msgid "Plugin Errors" msgstr "" -#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:59 -msgid "Plugin Settings" +#: src/pages/Index/Settings/AdminCenter/ReportTemplatePanel.tsx:17 +msgid "Page Size" msgstr "" -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:53 -msgid "Background Worker Not Running" +#: src/pages/Index/Settings/AdminCenter/ReportTemplatePanel.tsx:20 +msgid "Landscape" msgstr "" -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:54 +#: src/pages/Index/Settings/AdminCenter/ReportTemplatePanel.tsx:26 +msgid "Attach to Model" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/StocktakePanel.tsx:25 +msgid "Stocktake Reports" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:30 msgid "The background task manager service is not running. Contact your system administrator." msgstr "" -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:60 -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:76 +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:35 +#~ msgid "Background Worker Not Running" +#~ msgstr "Background Worker Not Running" + +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:36 +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:45 msgid "Pending Tasks" msgstr "" -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:64 -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:84 +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:37 +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:53 msgid "Scheduled Tasks" msgstr "" -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:68 -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:92 +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:38 +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:61 msgid "Failed Tasks" msgstr "" @@ -3811,11 +4617,6 @@ msgstr "" #~ msgid "Reports" #~ msgstr "Reports" -#: src/pages/Index/Settings/AdminCenter/TemplateManagementPanel.tsx:89 -#: src/pages/build/BuildDetail.tsx:373 -#~ msgid "Report" -#~ msgstr "Report" - #: src/pages/Index/Settings/AdminCenter/TemplateManagementPanel.tsx:99 #~ msgid "Purchase order" #~ msgstr "Purchase order" @@ -3836,23 +4637,35 @@ msgstr "" #~ msgid "Stock location" #~ msgstr "Stock location" +#: src/pages/Index/Settings/AdminCenter/UnitManagmentPanel.tsx:21 +msgid "Alias" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/UnitManagmentPanel.tsx:22 +msgid "Dimensionless" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/UnitManagmentPanel.tsx:66 +msgid "All units" +msgstr "" + #: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:32 msgid "Select settings relevant for user lifecycle. More available in" msgstr "" #: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:37 -msgid "System settings" -msgstr "" +#~ msgid "System settings" +#~ msgstr "System settings" -#: src/pages/Index/Settings/SystemSettings.tsx:67 +#: src/pages/Index/Settings/SystemSettings.tsx:66 msgid "Login" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:93 +#: src/pages/Index/Settings/SystemSettings.tsx:92 msgid "Barcodes" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:115 +#: src/pages/Index/Settings/SystemSettings.tsx:116 msgid "Pricing" msgstr "" @@ -3864,64 +4677,46 @@ msgstr "" #~ msgid "Exchange Rates" #~ msgstr "Exchange Rates" -#: src/pages/Index/Settings/SystemSettings.tsx:150 +#: src/pages/Index/Settings/SystemSettings.tsx:151 msgid "Labels" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:156 -#: src/pages/Index/Settings/UserSettings.tsx:132 +#: src/pages/Index/Settings/SystemSettings.tsx:157 +#: src/pages/Index/Settings/UserSettings.tsx:133 msgid "Reporting" msgstr "" #: src/pages/Index/Settings/SystemSettings.tsx:231 -#: src/pages/part/PartDetail.tsx:682 -msgid "Stocktake" -msgstr "" - -#: src/pages/Index/Settings/SystemSettings.tsx:237 -#: src/pages/build/BuildDetail.tsx:554 -#: src/pages/build/BuildIndex.tsx:22 -#: src/pages/part/PartDetail.tsx:616 -#: src/pages/sales/SalesOrderDetail.tsx:333 +#: src/pages/build/BuildIndex.tsx:27 +#: src/pages/part/PartDetail.tsx:636 +#: src/pages/sales/SalesOrderDetail.tsx:355 msgid "Build Orders" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:318 -msgid "Switch to User Setting" -msgstr "" +#: src/pages/Index/Settings/SystemSettings.tsx:317 +#~ msgid "Switch to User Setting" +#~ msgstr "Switch to User Setting" -#: src/pages/Index/Settings/UserSettings.tsx:34 +#: src/pages/Index/Settings/UserSettings.tsx:35 msgid "Account" msgstr "" -#: src/pages/Index/Settings/UserSettings.tsx:40 +#: src/pages/Index/Settings/UserSettings.tsx:41 msgid "Security" msgstr "" -#: src/pages/Index/Settings/UserSettings.tsx:78 +#: src/pages/Index/Settings/UserSettings.tsx:79 msgid "Display Options" msgstr "" -#: src/pages/Index/Settings/UserSettings.tsx:150 -msgid "Account Settings" -msgstr "" - -#: src/pages/Index/Settings/UserSettings.tsx:158 -msgid "Switch to System Setting" -msgstr "" - -#: src/pages/Index/UserSettings.tsx:103 -#~ msgid "User Settings" -#~ msgstr "User Settings" +#: src/pages/Index/Settings/UserSettings.tsx:159 +#~ msgid "Switch to System Setting" +#~ msgstr "Switch to System Setting" #: src/pages/Logged-In.tsx:24 #~ msgid "Found an exsisting login - using it to log you in." #~ msgstr "Found an exsisting login - using it to log you in." -#: src/pages/NotFound.tsx:17 -#~ msgid "Not Found" -#~ msgstr "Not Found" - #: src/pages/NotFound.tsx:20 #~ msgid "Sorry, this page is not known or was moved." #~ msgstr "Sorry, this page is not known or was moved." @@ -3942,104 +4737,86 @@ msgstr "" #~ msgid "Build Status" #~ msgstr "Build Status" -#: src/pages/build/BuildDetail.tsx:102 -#: src/pages/part/PartDetail.tsx:150 +#: src/pages/build/BuildDetail.tsx:97 +#: src/pages/company/ManufacturerPartDetail.tsx:81 +#: src/pages/company/SupplierPartDetail.tsx:91 +#: src/pages/part/PartDetail.tsx:171 +#: src/pages/stock/StockDetail.tsx:122 #: src/tables/bom/BomTable.tsx:118 #: src/tables/bom/UsedInTable.tsx:39 -#: src/tables/build/BuildLineTable.tsx:173 -#: src/tables/build/BuildOrderTable.tsx:55 -#: src/tables/sales/SalesOrderLineItemTable.tsx:62 -#: src/tables/stock/StockItemTable.tsx:53 +#: src/tables/build/BuildAllocatedStockTable.tsx:104 +#: src/tables/build/BuildLineTable.tsx:324 +#: src/tables/build/BuildOrderTable.tsx:64 +#: src/tables/sales/SalesOrderLineItemTable.tsx:70 +#: src/tables/stock/StockItemTable.tsx:54 msgid "IPN" msgstr "" -#: src/pages/build/BuildDetail.tsx:115 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:121 -#: src/pages/sales/ReturnOrderDetail.tsx:95 -#: src/pages/sales/SalesOrderDetail.tsx:101 -#: src/tables/ColumnRenderers.tsx:121 -#: src/tables/build/BuildAllocatedStockTable.tsx:90 -#: src/tables/build/BuildLineTable.tsx:184 +#: src/pages/build/BuildDetail.tsx:110 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:115 +#: src/pages/sales/ReturnOrderDetail.tsx:86 +#: src/pages/sales/SalesOrderDetail.tsx:95 +#: src/tables/ColumnRenderers.tsx:132 +#: src/tables/build/BuildAllocatedStockTable.tsx:111 +#: src/tables/build/BuildLineTable.tsx:335 msgid "Reference" msgstr "" -#: src/pages/build/BuildDetail.tsx:121 -#: src/pages/company/CompanyDetail.tsx:90 -#: src/pages/company/ManufacturerPartDetail.tsx:83 -#: src/pages/company/SupplierPartDetail.tsx:96 -#: src/pages/part/CategoryDetail.tsx:101 -#: src/pages/part/PartDetail.tsx:157 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:142 -#: src/pages/sales/ReturnOrderDetail.tsx:115 -#: src/pages/sales/SalesOrderDetail.tsx:121 -#: src/pages/stock/LocationDetail.tsx:109 -#: src/tables/ColumnRenderers.tsx:81 -#: src/tables/bom/UsedInTable.tsx:44 -#: src/tables/build/BuildAllocatedStockTable.tsx:70 -#: src/tables/build/BuildLineTable.tsx:178 -#: src/tables/machine/MachineTypeTable.tsx:69 -#: src/tables/machine/MachineTypeTable.tsx:112 -#: src/tables/machine/MachineTypeTable.tsx:219 -#: src/tables/machine/MachineTypeTable.tsx:323 -#: src/tables/part/RelatedPartTable.tsx:64 -#: src/tables/plugin/PluginListTable.tsx:129 -#: src/tables/plugin/PluginListTable.tsx:276 -#: src/tables/sales/SalesOrderAllocationTable.tsx:56 -#: src/tables/sales/SalesOrderLineItemTable.tsx:67 -#: src/tables/stock/LocationTypesTable.tsx:74 -msgid "Description" -msgstr "" - -#: src/pages/build/BuildDetail.tsx:129 +#: src/pages/build/BuildDetail.tsx:124 msgid "Parent Build" msgstr "" -#: src/pages/build/BuildDetail.tsx:140 +#: src/pages/build/BuildDetail.tsx:135 msgid "Build Quantity" msgstr "" -#: src/pages/build/BuildDetail.tsx:148 -#: src/pages/build/BuildDetail.tsx:274 +#: src/pages/build/BuildDetail.tsx:143 +#: src/pages/build/BuildDetail.tsx:277 msgid "Completed Outputs" msgstr "" -#: src/pages/build/BuildDetail.tsx:165 -#: src/tables/build/BuildOrderTable.tsx:151 +#: src/pages/build/BuildDetail.tsx:160 +#: src/tables/build/BuildOrderTable.tsx:142 msgid "Issued By" msgstr "" -#: src/pages/build/BuildDetail.tsx:172 -#: src/pages/part/PartDetail.tsx:365 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:220 -#: src/pages/sales/ReturnOrderDetail.tsx:199 -#: src/pages/sales/SalesOrderDetail.tsx:208 -#: src/tables/build/BuildOrderTable.tsx:157 -#: src/tables/purchasing/PurchaseOrderTable.tsx:75 -#: src/tables/sales/ReturnOrderTable.tsx:66 -#: src/tables/sales/SalesOrderTable.tsx:73 +#: src/pages/build/BuildDetail.tsx:167 +#: src/pages/part/PartDetail.tsx:406 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:244 +#: src/pages/sales/ReturnOrderDetail.tsx:216 +#: src/pages/sales/SalesOrderDetail.tsx:226 +#: src/tables/build/BuildOrderTable.tsx:148 +#: src/tables/purchasing/PurchaseOrderTable.tsx:76 +#: src/tables/sales/ReturnOrderTable.tsx:74 +#: src/tables/sales/SalesOrderTable.tsx:74 msgid "Responsible" msgstr "" -#: src/pages/build/BuildDetail.tsx:179 -#: src/tables/settings/PendingTasksTable.tsx:32 +#: src/pages/build/BuildDetail.tsx:174 +#: src/tables/settings/PendingTasksTable.tsx:36 msgid "Created" msgstr "" +#: src/pages/build/BuildDetail.tsx:181 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:229 +#: src/pages/sales/ReturnOrderDetail.tsx:201 +#: src/pages/sales/SalesOrderDetail.tsx:212 +#: src/tables/ColumnRenderers.tsx:226 +#: src/tables/part/PartPurchaseOrdersTable.tsx:100 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:135 +#: src/tables/sales/SalesOrderLineItemTable.tsx:107 +msgid "Target Date" +msgstr "" + #: src/pages/build/BuildDetail.tsx:185 #: src/pages/part/PartDetail.tsx:269 #: src/pages/stock/StockDetail.tsx:150 #~ msgid "View part barcode" #~ msgstr "View part barcode" -#: src/pages/build/BuildDetail.tsx:186 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:213 -#: src/pages/sales/ReturnOrderDetail.tsx:192 -#: src/pages/sales/SalesOrderDetail.tsx:201 -#: src/tables/ColumnRenderers.tsx:212 -#: src/tables/part/PartPurchaseOrdersTable.tsx:99 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:110 -#: src/tables/sales/SalesOrderLineItemTable.tsx:99 -msgid "Target Date" +#: src/pages/build/BuildDetail.tsx:188 +#: src/tables/sales/SalesOrderLineItemTable.tsx:281 +msgid "Completed" msgstr "" #: src/pages/build/BuildDetail.tsx:190 @@ -4047,10 +4824,6 @@ msgstr "" #~ msgid "Link custom barcode to part" #~ msgstr "Link custom barcode to part" -#: src/pages/build/BuildDetail.tsx:193 -msgid "Completed" -msgstr "" - #: src/pages/build/BuildDetail.tsx:196 #: src/pages/part/PartDetail.tsx:280 #~ msgid "Unlink custom barcode from part" @@ -4060,15 +4833,11 @@ msgstr "" #~ msgid "Build Order updated" #~ msgstr "Build Order updated" -#: src/pages/build/BuildDetail.tsx:205 -msgid "Source Location" -msgstr "" - -#: src/pages/build/BuildDetail.tsx:206 +#: src/pages/build/BuildDetail.tsx:209 msgid "Any location" msgstr "" -#: src/pages/build/BuildDetail.tsx:213 +#: src/pages/build/BuildDetail.tsx:216 msgid "Destination Location" msgstr "" @@ -4084,206 +4853,182 @@ msgstr "" #~ msgid "Delete build order" #~ msgstr "Delete build order" -#: src/pages/build/BuildDetail.tsx:251 +#: src/pages/build/BuildDetail.tsx:254 msgid "Build Details" msgstr "" -#: src/pages/build/BuildDetail.tsx:257 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:258 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:267 -#: src/pages/sales/ReturnOrderDetail.tsx:130 -#: src/pages/sales/ReturnOrderDetail.tsx:237 -#: src/pages/sales/ReturnOrderDetail.tsx:246 -#: src/pages/sales/SalesOrderDetail.tsx:272 -#: src/pages/sales/SalesOrderDetail.tsx:281 +#: src/pages/build/BuildDetail.tsx:260 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:282 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:291 +#: src/pages/sales/ReturnOrderDetail.tsx:122 +#: src/pages/sales/ReturnOrderDetail.tsx:254 +#: src/pages/sales/ReturnOrderDetail.tsx:263 +#: src/pages/sales/SalesOrderDetail.tsx:294 +#: src/pages/sales/SalesOrderDetail.tsx:303 msgid "Line Items" msgstr "" -#: src/pages/build/BuildDetail.tsx:267 +#: src/pages/build/BuildDetail.tsx:266 msgid "Incomplete Outputs" msgstr "" -#: src/pages/build/BuildDetail.tsx:289 -#: src/pages/sales/SalesOrderDetail.tsx:319 +#: src/pages/build/BuildDetail.tsx:292 +#: src/pages/sales/SalesOrderDetail.tsx:341 msgid "Allocated Stock" msgstr "" -#: src/pages/build/BuildDetail.tsx:299 +#: src/pages/build/BuildDetail.tsx:302 msgid "Consumed Stock" msgstr "" -#: src/pages/build/BuildDetail.tsx:313 +#: src/pages/build/BuildDetail.tsx:316 msgid "Child Build Orders" msgstr "" #: src/pages/build/BuildDetail.tsx:326 -#: src/tables/build/BuildOutputTable.tsx:384 -#: src/tables/stock/StockItemTestResultTable.tsx:150 +#: src/tables/build/BuildOutputTable.tsx:532 +#: src/tables/stock/StockItemTestResultTable.tsx:156 msgid "Test Results" msgstr "" #: src/pages/build/BuildDetail.tsx:337 -#: src/pages/part/PartDetail.tsx:699 +#: src/pages/part/PartDetail.tsx:740 msgid "Test Statistics" msgstr "" -#: src/pages/build/BuildDetail.tsx:351 -#: src/pages/company/CompanyDetail.tsx:259 -#: src/pages/company/ManufacturerPartDetail.tsx:179 -#: src/pages/part/PartDetail.tsx:721 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:309 -#: src/pages/sales/ReturnOrderDetail.tsx:274 -#: src/pages/sales/SalesOrderDetail.tsx:343 -#: src/pages/stock/StockDetail.tsx:385 -msgid "Attachments" -msgstr "" - -#: src/pages/build/BuildDetail.tsx:359 -#: src/pages/company/CompanyDetail.tsx:270 -#: src/pages/company/ManufacturerPartDetail.tsx:190 -#: src/pages/company/SupplierPartDetail.tsx:257 -#: src/pages/part/PartDetail.tsx:729 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:320 -#: src/pages/sales/ReturnOrderDetail.tsx:285 -#: src/pages/sales/SalesOrderDetail.tsx:354 -#: src/pages/stock/StockDetail.tsx:396 -#: src/tables/build/BuildOrderTestTable.tsx:142 -#: src/tables/stock/StockTrackingTable.tsx:189 -msgid "Notes" +#: src/pages/build/BuildDetail.tsx:365 +msgid "Edit Build Order" msgstr "" #: src/pages/build/BuildDetail.tsx:368 #~ msgid "Reporting Actions" #~ msgstr "Reporting Actions" +#: src/pages/build/BuildDetail.tsx:372 +#: src/tables/build/BuildOrderTable.tsx:173 +#: src/tables/build/BuildOrderTable.tsx:188 +msgid "Add Build Order" +msgstr "" + #: src/pages/build/BuildDetail.tsx:374 #~ msgid "Print build report" #~ msgstr "Print build report" -#: src/pages/build/BuildDetail.tsx:377 -msgid "Edit Build Order" -msgstr "" - -#: src/pages/build/BuildDetail.tsx:384 -#: src/tables/build/BuildOrderTable.tsx:172 -#: src/tables/build/BuildOrderTable.tsx:187 -msgid "Add Build Order" -msgstr "" - -#: src/pages/build/BuildDetail.tsx:398 +#: src/pages/build/BuildDetail.tsx:386 msgid "Cancel Build Order" msgstr "" -#: src/pages/build/BuildDetail.tsx:400 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:348 -#: src/pages/sales/SalesOrderDetail.tsx:380 +#: src/pages/build/BuildDetail.tsx:388 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:357 +#: src/pages/sales/ReturnOrderDetail.tsx:354 +#: src/pages/sales/SalesOrderDetail.tsx:387 msgid "Order cancelled" msgstr "" -#: src/pages/build/BuildDetail.tsx:401 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:347 -#: src/pages/sales/ReturnOrderDetail.tsx:346 -#: src/pages/sales/SalesOrderDetail.tsx:379 +#: src/pages/build/BuildDetail.tsx:389 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:356 +#: src/pages/sales/ReturnOrderDetail.tsx:353 +#: src/pages/sales/SalesOrderDetail.tsx:386 msgid "Cancel this order" msgstr "" -#: src/pages/build/BuildDetail.tsx:410 +#: src/pages/build/BuildDetail.tsx:398 msgid "Hold Build Order" msgstr "" -#: src/pages/build/BuildDetail.tsx:412 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:355 -#: src/pages/sales/ReturnOrderDetail.tsx:354 -#: src/pages/sales/SalesOrderDetail.tsx:387 +#: src/pages/build/BuildDetail.tsx:400 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:364 +#: src/pages/sales/ReturnOrderDetail.tsx:361 +#: src/pages/sales/SalesOrderDetail.tsx:394 msgid "Place this order on hold" msgstr "" -#: src/pages/build/BuildDetail.tsx:413 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:356 -#: src/pages/sales/ReturnOrderDetail.tsx:355 -#: src/pages/sales/SalesOrderDetail.tsx:388 +#: src/pages/build/BuildDetail.tsx:401 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:365 +#: src/pages/sales/ReturnOrderDetail.tsx:362 +#: src/pages/sales/SalesOrderDetail.tsx:395 msgid "Order placed on hold" msgstr "" -#: src/pages/build/BuildDetail.tsx:418 +#: src/pages/build/BuildDetail.tsx:406 msgid "Issue Build Order" msgstr "" -#: src/pages/build/BuildDetail.tsx:420 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:339 -#: src/pages/sales/ReturnOrderDetail.tsx:338 -#: src/pages/sales/SalesOrderDetail.tsx:371 +#: src/pages/build/BuildDetail.tsx:408 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:348 +#: src/pages/sales/ReturnOrderDetail.tsx:345 +#: src/pages/sales/SalesOrderDetail.tsx:378 msgid "Issue this order" msgstr "" -#: src/pages/build/BuildDetail.tsx:421 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:340 -#: src/pages/sales/ReturnOrderDetail.tsx:339 -#: src/pages/sales/SalesOrderDetail.tsx:372 +#: src/pages/build/BuildDetail.tsx:409 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:349 +#: src/pages/sales/ReturnOrderDetail.tsx:346 +#: src/pages/sales/SalesOrderDetail.tsx:379 msgid "Order issued" msgstr "" -#: src/pages/build/BuildDetail.tsx:426 +#: src/pages/build/BuildDetail.tsx:414 msgid "Complete Build Order" msgstr "" -#: src/pages/build/BuildDetail.tsx:428 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:368 -#: src/pages/sales/ReturnOrderDetail.tsx:362 -#: src/pages/sales/SalesOrderDetail.tsx:395 +#: src/pages/build/BuildDetail.tsx:416 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:377 +#: src/pages/sales/ReturnOrderDetail.tsx:369 +#: src/pages/sales/SalesOrderDetail.tsx:402 msgid "Mark this order as complete" msgstr "" -#: src/pages/build/BuildDetail.tsx:429 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:362 -#: src/pages/sales/ReturnOrderDetail.tsx:363 -#: src/pages/sales/SalesOrderDetail.tsx:396 +#: src/pages/build/BuildDetail.tsx:417 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:371 +#: src/pages/sales/ReturnOrderDetail.tsx:370 +#: src/pages/sales/SalesOrderDetail.tsx:403 msgid "Order completed" msgstr "" -#: src/pages/build/BuildDetail.tsx:460 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:391 -#: src/pages/sales/ReturnOrderDetail.tsx:392 -#: src/pages/sales/SalesOrderDetail.tsx:425 +#: src/pages/build/BuildDetail.tsx:448 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:400 +#: src/pages/sales/ReturnOrderDetail.tsx:399 +#: src/pages/sales/SalesOrderDetail.tsx:432 msgid "Issue Order" msgstr "" -#: src/pages/build/BuildDetail.tsx:467 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:398 -#: src/pages/sales/ReturnOrderDetail.tsx:399 -#: src/pages/sales/SalesOrderDetail.tsx:439 +#: src/pages/build/BuildDetail.tsx:455 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:407 +#: src/pages/sales/ReturnOrderDetail.tsx:406 +#: src/pages/sales/SalesOrderDetail.tsx:446 msgid "Complete Order" msgstr "" -#: src/pages/build/BuildDetail.tsx:496 +#: src/pages/build/BuildDetail.tsx:473 msgid "Build Order Actions" msgstr "" -#: src/pages/build/BuildDetail.tsx:502 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:432 -#: src/pages/sales/ReturnOrderDetail.tsx:433 -#: src/pages/sales/SalesOrderDetail.tsx:474 +#: src/pages/build/BuildDetail.tsx:478 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:429 +#: src/pages/sales/ReturnOrderDetail.tsx:428 +#: src/pages/sales/SalesOrderDetail.tsx:469 msgid "Edit order" msgstr "" -#: src/pages/build/BuildDetail.tsx:506 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:440 -#: src/pages/sales/ReturnOrderDetail.tsx:439 -#: src/pages/sales/SalesOrderDetail.tsx:479 +#: src/pages/build/BuildDetail.tsx:482 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:437 +#: src/pages/sales/ReturnOrderDetail.tsx:434 +#: src/pages/sales/SalesOrderDetail.tsx:474 msgid "Duplicate order" msgstr "" -#: src/pages/build/BuildDetail.tsx:510 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:443 -#: src/pages/sales/ReturnOrderDetail.tsx:444 -#: src/pages/sales/SalesOrderDetail.tsx:482 +#: src/pages/build/BuildDetail.tsx:486 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:440 +#: src/pages/sales/ReturnOrderDetail.tsx:439 +#: src/pages/sales/SalesOrderDetail.tsx:477 msgid "Hold order" msgstr "" -#: src/pages/build/BuildDetail.tsx:515 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:448 -#: src/pages/sales/ReturnOrderDetail.tsx:449 -#: src/pages/sales/SalesOrderDetail.tsx:487 +#: src/pages/build/BuildDetail.tsx:491 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:445 +#: src/pages/sales/ReturnOrderDetail.tsx:444 +#: src/pages/sales/SalesOrderDetail.tsx:482 msgid "Cancel order" msgstr "" @@ -4295,56 +5040,60 @@ msgstr "" #~ msgid "New Build Order" #~ msgstr "New Build Order" -#: src/pages/company/CompanyDetail.tsx:104 +#: src/pages/company/CompanyDetail.tsx:95 +msgid "Website" +msgstr "" + +#: src/pages/company/CompanyDetail.tsx:103 msgid "Phone Number" msgstr "" -#: src/pages/company/CompanyDetail.tsx:111 +#: src/pages/company/CompanyDetail.tsx:110 msgid "Email Address" msgstr "" -#: src/pages/company/CompanyDetail.tsx:121 +#: src/pages/company/CompanyDetail.tsx:120 msgid "Default Currency" msgstr "" -#: src/pages/company/CompanyDetail.tsx:126 +#: src/pages/company/CompanyDetail.tsx:125 #: src/pages/company/SupplierDetail.tsx:8 -#: src/pages/company/SupplierPartDetail.tsx:120 -#: src/pages/company/SupplierPartDetail.tsx:206 -#: src/pages/company/SupplierPartDetail.tsx:351 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:136 -#: src/tables/company/CompanyTable.tsx:100 +#: src/pages/company/SupplierPartDetail.tsx:125 +#: src/pages/company/SupplierPartDetail.tsx:218 +#: src/pages/company/SupplierPartDetail.tsx:340 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:130 +#: src/tables/company/CompanyTable.tsx:101 #: src/tables/part/PartPurchaseOrdersTable.tsx:42 -#: src/tables/purchasing/PurchaseOrderTable.tsx:88 +#: src/tables/purchasing/PurchaseOrderTable.tsx:89 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:36 msgid "Supplier" msgstr "" -#: src/pages/company/CompanyDetail.tsx:132 +#: src/pages/company/CompanyDetail.tsx:131 #: src/pages/company/ManufacturerDetail.tsx:8 -#: src/pages/company/ManufacturerPartDetail.tsx:101 -#: src/pages/company/ManufacturerPartDetail.tsx:267 -#: src/pages/company/SupplierPartDetail.tsx:135 -#: src/tables/company/CompanyTable.tsx:105 +#: src/pages/company/ManufacturerPartDetail.tsx:100 +#: src/pages/company/ManufacturerPartDetail.tsx:262 +#: src/pages/company/SupplierPartDetail.tsx:147 +#: src/tables/company/CompanyTable.tsx:106 msgid "Manufacturer" msgstr "" -#: src/pages/company/CompanyDetail.tsx:138 +#: src/pages/company/CompanyDetail.tsx:137 #: src/pages/company/CustomerDetail.tsx:8 -#: src/pages/part/pricing/SaleHistoryPanel.tsx:29 -#: src/pages/sales/ReturnOrderDetail.tsx:109 -#: src/pages/sales/SalesOrderDetail.tsx:115 -#: src/pages/stock/StockDetail.tsx:230 -#: src/tables/company/CompanyTable.tsx:110 -#: src/tables/sales/ReturnOrderTable.tsx:78 -#: src/tables/sales/SalesOrderTable.tsx:108 -#: src/tables/stock/StockTrackingTable.tsx:140 +#: src/pages/part/pricing/SaleHistoryPanel.tsx:31 +#: src/pages/sales/ReturnOrderDetail.tsx:101 +#: src/pages/sales/SalesOrderDetail.tsx:110 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:100 +#: src/pages/stock/StockDetail.tsx:271 +#: src/tables/company/CompanyTable.tsx:111 +#: src/tables/sales/ReturnOrderTable.tsx:97 +#: src/tables/sales/SalesOrderTable.tsx:121 +#: src/tables/stock/StockTrackingTable.tsx:144 msgid "Customer" msgstr "" #: src/pages/company/CompanyDetail.tsx:172 -#: src/tables/stock/StockTrackingTable.tsx:183 -msgid "Details" +msgid "Company Details" msgstr "" #: src/pages/company/CompanyDetail.tsx:175 @@ -4363,140 +5112,150 @@ msgstr "" #~ msgid "Delete company" #~ msgstr "Delete company" -#: src/pages/company/CompanyDetail.tsx:232 +#: src/pages/company/CompanyDetail.tsx:234 msgid "Assigned Stock" msgstr "" -#: src/pages/company/CompanyDetail.tsx:290 -#: src/tables/company/CompanyTable.tsx:86 +#: src/pages/company/CompanyDetail.tsx:273 +#: src/tables/company/CompanyTable.tsx:87 msgid "Edit Company" msgstr "" -#: src/pages/company/CompanyDetail.tsx:298 +#: src/pages/company/CompanyDetail.tsx:281 msgid "Delete Company" msgstr "" -#: src/pages/company/CompanyDetail.tsx:306 +#: src/pages/company/CompanyDetail.tsx:289 msgid "Company Actions" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:76 -#: src/pages/company/SupplierPartDetail.tsx:89 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:128 +#: src/pages/company/ManufacturerPartDetail.tsx:74 +#: src/pages/company/SupplierPartDetail.tsx:84 msgid "Internal Part" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:91 -#: src/pages/company/SupplierPartDetail.tsx:103 -msgid "External Link" -msgstr "" - -#: src/pages/company/ManufacturerPartDetail.tsx:109 -#: src/pages/company/SupplierPartDetail.tsx:144 -#: src/tables/purchasing/ManufacturerPartTable.tsx:56 +#: src/pages/company/ManufacturerPartDetail.tsx:108 +#: src/pages/company/SupplierPartDetail.tsx:156 +#: src/tables/purchasing/ManufacturerPartTable.tsx:58 msgid "Manufacturer Part Number" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:138 +#: src/pages/company/ManufacturerPartDetail.tsx:125 +#: src/pages/company/SupplierPartDetail.tsx:108 +msgid "External Link" +msgstr "" + +#: src/pages/company/ManufacturerPartDetail.tsx:146 +#: src/pages/company/SupplierPartDetail.tsx:215 +#: src/pages/part/PartDetail.tsx:576 +msgid "Part Details" +msgstr "" + +#: src/pages/company/ManufacturerPartDetail.tsx:149 msgid "Manufacturer Details" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:147 +#: src/pages/company/ManufacturerPartDetail.tsx:158 msgid "Manufacturer Part Details" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:153 -#: src/pages/part/PartDetail.tsx:532 +#: src/pages/company/ManufacturerPartDetail.tsx:164 +#: src/pages/part/PartDetail.tsx:582 msgid "Parameters" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:165 -#: src/pages/part/PartDetail.tsx:649 +#: src/pages/company/ManufacturerPartDetail.tsx:176 +#: src/pages/part/PartDetail.tsx:669 #: src/pages/purchasing/PurchasingIndex.tsx:31 msgid "Suppliers" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:208 -#: src/tables/purchasing/ManufacturerPartTable.tsx:84 +#: src/pages/company/ManufacturerPartDetail.tsx:204 +#: src/tables/purchasing/ManufacturerPartTable.tsx:86 msgid "Edit Manufacturer Part" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:215 -#: src/tables/purchasing/ManufacturerPartTable.tsx:72 -#: src/tables/purchasing/ManufacturerPartTable.tsx:103 +#: src/pages/company/ManufacturerPartDetail.tsx:211 +#: src/tables/purchasing/ManufacturerPartTable.tsx:74 +#: src/tables/purchasing/ManufacturerPartTable.tsx:106 msgid "Add Manufacturer Part" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:227 -#: src/tables/purchasing/ManufacturerPartTable.tsx:92 +#: src/pages/company/ManufacturerPartDetail.tsx:223 +#: src/tables/purchasing/ManufacturerPartTable.tsx:94 msgid "Delete Manufacturer Part" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:240 +#: src/pages/company/ManufacturerPartDetail.tsx:236 msgid "Manufacturer Part Actions" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:281 +#: src/pages/company/ManufacturerPartDetail.tsx:276 msgid "ManufacturerPart" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:163 -#: src/tables/part/PartPurchaseOrdersTable.tsx:71 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:156 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:197 -#: src/tables/purchasing/SupplierPartTable.tsx:131 +#: src/pages/company/SupplierPartDetail.tsx:99 +msgid "Part Description" +msgstr "" + +#: src/pages/company/SupplierPartDetail.tsx:175 +#: src/tables/part/PartPurchaseOrdersTable.tsx:72 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:162 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:203 +#: src/tables/purchasing/SupplierPartTable.tsx:133 msgid "Pack Quantity" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:174 +#: src/pages/company/SupplierPartDetail.tsx:186 msgid "Supplier Availability" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:181 +#: src/pages/company/SupplierPartDetail.tsx:193 msgid "Availability Updated" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:208 +#: src/pages/company/SupplierPartDetail.tsx:220 msgid "Availability" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:217 +#: src/pages/company/SupplierPartDetail.tsx:229 msgid "Supplier Part Details" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:223 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:296 +#: src/pages/company/SupplierPartDetail.tsx:235 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:320 msgid "Received Stock" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:247 -#: src/pages/part/PartPricingPanel.tsx:111 -#: src/pages/part/pricing/PricingOverviewPanel.tsx:121 +#: src/pages/company/SupplierPartDetail.tsx:259 +#: src/pages/part/PartPricingPanel.tsx:116 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:195 msgid "Supplier Pricing" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:294 +#: src/pages/company/SupplierPartDetail.tsx:284 msgid "Supplier Part Actions" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:319 -#: src/tables/purchasing/SupplierPartTable.tsx:210 +#: src/pages/company/SupplierPartDetail.tsx:308 +#: src/tables/purchasing/SupplierPartTable.tsx:213 msgid "Edit Supplier Part" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:327 -#: src/tables/purchasing/SupplierPartTable.tsx:218 +#: src/pages/company/SupplierPartDetail.tsx:316 +#: src/tables/purchasing/SupplierPartTable.tsx:221 msgid "Delete Supplier Part" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:335 -#: src/tables/purchasing/SupplierPartTable.tsx:163 +#: src/pages/company/SupplierPartDetail.tsx:324 +#: src/tables/purchasing/SupplierPartTable.tsx:165 msgid "Add Supplier Part" msgstr "" #: src/pages/part/CategoryDetail.tsx:93 -#: src/pages/stock/LocationDetail.tsx:101 -#: src/tables/settings/ErrorTable.tsx:36 +#: src/pages/stock/LocationDetail.tsx:95 +#: src/tables/settings/ErrorTable.tsx:63 +#: src/tables/settings/ErrorTable.tsx:108 msgid "Path" msgstr "" @@ -4504,357 +5263,357 @@ msgstr "" msgid "Parent Category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:126 +#: src/pages/part/CategoryDetail.tsx:132 msgid "Subcategories" msgstr "" -#: src/pages/part/CategoryDetail.tsx:133 -#: src/pages/stock/LocationDetail.tsx:141 -#: src/tables/part/PartCategoryTable.tsx:73 +#: src/pages/part/CategoryDetail.tsx:139 +#: src/pages/stock/LocationDetail.tsx:135 +#: src/tables/part/PartCategoryTable.tsx:85 #: src/tables/stock/StockLocationTable.tsx:49 msgid "Structural" msgstr "" -#: src/pages/part/CategoryDetail.tsx:139 +#: src/pages/part/CategoryDetail.tsx:145 msgid "Parent default location" msgstr "" -#: src/pages/part/CategoryDetail.tsx:146 +#: src/pages/part/CategoryDetail.tsx:152 msgid "Default location" msgstr "" -#: src/pages/part/CategoryDetail.tsx:157 +#: src/pages/part/CategoryDetail.tsx:163 msgid "Top level part category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:167 -#: src/pages/part/CategoryDetail.tsx:221 -#: src/tables/part/PartCategoryTable.tsx:102 +#: src/pages/part/CategoryDetail.tsx:173 +#: src/pages/part/CategoryDetail.tsx:226 +#: src/tables/part/PartCategoryTable.tsx:118 msgid "Edit Part Category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:180 -#: src/pages/stock/LocationDetail.tsx:233 +#: src/pages/part/CategoryDetail.tsx:186 +#: src/pages/stock/LocationDetail.tsx:227 msgid "Delete items" msgstr "" -#: src/pages/part/CategoryDetail.tsx:188 -#: src/pages/part/CategoryDetail.tsx:226 +#: src/pages/part/CategoryDetail.tsx:194 +#: src/pages/part/CategoryDetail.tsx:231 msgid "Delete Part Category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:191 +#: src/pages/part/CategoryDetail.tsx:197 msgid "Parts Action" msgstr "" -#: src/pages/part/CategoryDetail.tsx:192 +#: src/pages/part/CategoryDetail.tsx:198 msgid "Action for parts in this category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:197 +#: src/pages/part/CategoryDetail.tsx:203 msgid "Child Categories Action" msgstr "" -#: src/pages/part/CategoryDetail.tsx:198 +#: src/pages/part/CategoryDetail.tsx:204 msgid "Action for child categories in this category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:216 +#: src/pages/part/CategoryDetail.tsx:222 msgid "Category Actions" msgstr "" -#: src/pages/part/CategoryDetail.tsx:238 +#: src/pages/part/CategoryDetail.tsx:243 msgid "Category Details" msgstr "" -#: src/pages/part/PartDetail.tsx:163 -msgid "Variant of" +#: src/pages/part/PartAllocationPanel.tsx:23 +#: src/pages/stock/StockDetail.tsx:443 +#: src/tables/part/PartTable.tsx:99 +msgid "Build Order Allocations" msgstr "" -#: src/pages/part/PartDetail.tsx:170 -msgid "Revision of" -msgstr "" - -#: src/pages/part/PartDetail.tsx:177 -#: src/tables/stock/StockItemTable.tsx:58 -msgid "Revision" +#: src/pages/part/PartAllocationPanel.tsx:40 +#: src/pages/stock/StockDetail.tsx:458 +#: src/tables/part/PartTable.tsx:108 +msgid "Sales Order Allocations" msgstr "" #: src/pages/part/PartDetail.tsx:184 +msgid "Variant of" +msgstr "" + +#: src/pages/part/PartDetail.tsx:191 +msgid "Revision of" +msgstr "" + +#: src/pages/part/PartDetail.tsx:198 +#: src/tables/stock/StockItemTable.tsx:59 +msgid "Revision" +msgstr "" + +#: src/pages/part/PartDetail.tsx:205 #: src/tables/notifications/NotificationsTable.tsx:31 #: src/tables/part/PartCategoryTemplateTable.tsx:67 msgid "Category" msgstr "" -#: src/pages/part/PartDetail.tsx:190 +#: src/pages/part/PartDetail.tsx:211 msgid "Default Location" msgstr "" -#: src/pages/part/PartDetail.tsx:197 +#: src/pages/part/PartDetail.tsx:218 msgid "Category Default Location" msgstr "" -#: src/pages/part/PartDetail.tsx:204 +#: src/pages/part/PartDetail.tsx:225 #: src/tables/purchasing/ManufacturerPartParameterTable.tsx:44 msgid "Units" msgstr "" -#: src/pages/part/PartDetail.tsx:211 -#: src/tables/settings/PendingTasksTable.tsx:42 +#: src/pages/part/PartDetail.tsx:232 +#: src/tables/settings/PendingTasksTable.tsx:46 msgid "Keywords" msgstr "" -#: src/pages/part/PartDetail.tsx:218 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:186 -#: src/pages/sales/ReturnOrderDetail.tsx:165 -#: src/pages/sales/SalesOrderDetail.tsx:174 -msgid "Link" -msgstr "" - -#: src/pages/part/PartDetail.tsx:236 +#: src/pages/part/PartDetail.tsx:257 #: src/tables/bom/BomTable.tsx:320 -#: src/tables/build/BuildLineTable.tsx:155 +#: src/tables/build/BuildLineTable.tsx:286 #: src/tables/part/PartTable.tsx:288 -#: src/tables/sales/SalesOrderLineItemTable.tsx:103 +#: src/tables/sales/SalesOrderLineItemTable.tsx:111 msgid "Available Stock" msgstr "" -#: src/pages/part/PartDetail.tsx:243 +#: src/pages/part/PartDetail.tsx:264 msgid "Variant Stock" msgstr "" -#: src/pages/part/PartDetail.tsx:251 +#: src/pages/part/PartDetail.tsx:272 msgid "Minimum Stock" msgstr "" -#: src/pages/part/PartDetail.tsx:257 +#: src/pages/part/PartDetail.tsx:278 #: src/tables/bom/BomTable.tsx:237 -#: src/tables/build/BuildLineTable.tsx:117 -#: src/tables/sales/SalesOrderLineItemTable.tsx:141 +#: src/tables/build/BuildLineTable.tsx:248 +#: src/tables/sales/SalesOrderLineItemTable.tsx:149 msgid "On order" msgstr "" -#: src/pages/part/PartDetail.tsx:266 +#: src/pages/part/PartDetail.tsx:285 +msgid "Required for Orders" +msgstr "" + +#: src/pages/part/PartDetail.tsx:294 msgid "Allocated to Build Orders" msgstr "" -#: src/pages/part/PartDetail.tsx:274 +#: src/pages/part/PartDetail.tsx:305 msgid "Allocated to Sales Orders" msgstr "" -#: src/pages/part/PartDetail.tsx:281 -#: src/tables/bom/BomTable.tsx:261 -#: src/tables/bom/BomTable.tsx:293 -msgid "Can Build" -msgstr "" - -#: src/pages/part/PartDetail.tsx:288 -#: src/tables/bom/BomTable.tsx:245 -#: src/tables/part/PartTable.tsx:92 -msgid "Building" -msgstr "" - -#: src/pages/part/PartDetail.tsx:302 -#: src/pages/part/PartDetail.tsx:873 -#: src/tables/part/ParametricPartTable.tsx:228 -#: src/tables/part/PartTable.tsx:184 -msgid "Locked" -msgstr "" - -#: src/pages/part/PartDetail.tsx:308 -msgid "Template Part" -msgstr "" - #: src/pages/part/PartDetail.tsx:310 #~ msgid "Edit part" #~ msgstr "Edit part" -#: src/pages/part/PartDetail.tsx:313 -#: src/tables/bom/BomTable.tsx:315 -msgid "Assembled Part" +#: src/pages/part/PartDetail.tsx:315 +#: src/tables/bom/BomTable.tsx:261 +#: src/tables/bom/BomTable.tsx:293 +msgid "Can Build" msgstr "" -#: src/pages/part/PartDetail.tsx:318 -msgid "Component Part" +#: src/pages/part/PartDetail.tsx:322 +#: src/pages/part/PartDetail.tsx:905 +#: src/pages/stock/StockDetail.tsx:766 +#: src/tables/build/BuildOrderTestTable.tsx:220 +#: src/tables/stock/StockItemTable.tsx:334 +msgid "In Production" msgstr "" #: src/pages/part/PartDetail.tsx:322 #~ msgid "Duplicate part" #~ msgstr "Duplicate part" -#: src/pages/part/PartDetail.tsx:323 -#: src/tables/bom/BomTable.tsx:305 -msgid "Testable Part" -msgstr "" - #: src/pages/part/PartDetail.tsx:327 #~ msgid "Delete part" #~ msgstr "Delete part" -#: src/pages/part/PartDetail.tsx:329 +#: src/pages/part/PartDetail.tsx:336 +#: src/tables/part/ParametricPartTable.tsx:228 +#: src/tables/part/PartTable.tsx:184 +msgid "Locked" +msgstr "" + +#: src/pages/part/PartDetail.tsx:342 +msgid "Template Part" +msgstr "" + +#: src/pages/part/PartDetail.tsx:347 +#: src/tables/bom/BomTable.tsx:315 +msgid "Assembled Part" +msgstr "" + +#: src/pages/part/PartDetail.tsx:352 +msgid "Component Part" +msgstr "" + +#: src/pages/part/PartDetail.tsx:357 +#: src/tables/bom/BomTable.tsx:305 +msgid "Testable Part" +msgstr "" + +#: src/pages/part/PartDetail.tsx:363 #: src/tables/bom/BomTable.tsx:310 msgid "Trackable Part" msgstr "" -#: src/pages/part/PartDetail.tsx:334 +#: src/pages/part/PartDetail.tsx:368 msgid "Purchaseable Part" msgstr "" -#: src/pages/part/PartDetail.tsx:339 +#: src/pages/part/PartDetail.tsx:374 msgid "Saleable Part" msgstr "" -#: src/pages/part/PartDetail.tsx:344 +#: src/pages/part/PartDetail.tsx:379 msgid "Virtual Part" msgstr "" -#: src/pages/part/PartDetail.tsx:352 -#: src/tables/ColumnRenderers.tsx:220 +#: src/pages/part/PartDetail.tsx:393 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:215 +#: src/pages/sales/ReturnOrderDetail.tsx:185 +#: src/pages/sales/SalesOrderDetail.tsx:197 +#: src/tables/ColumnRenderers.tsx:234 msgid "Creation Date" msgstr "" -#: src/pages/part/PartDetail.tsx:357 +#: src/pages/part/PartDetail.tsx:398 msgid "Created By" msgstr "" -#: src/pages/part/PartDetail.tsx:372 +#: src/pages/part/PartDetail.tsx:413 msgid "Default Supplier" msgstr "" -#: src/pages/part/PartDetail.tsx:383 -#: src/pages/part/pricing/BomPricingPanel.tsx:79 +#: src/pages/part/PartDetail.tsx:424 +#: src/pages/part/pricing/BomPricingPanel.tsx:113 #: src/pages/part/pricing/VariantPricingPanel.tsx:95 #: src/tables/part/PartTable.tsx:161 msgid "Price Range" msgstr "" -#: src/pages/part/PartDetail.tsx:423 -#: src/pages/stock/StockDetail.tsx:135 +#: src/pages/part/PartDetail.tsx:462 +msgid "Latest Serial Number" +msgstr "" + +#: src/pages/part/PartDetail.tsx:472 +#: src/pages/stock/StockDetail.tsx:151 msgid "Last Stocktake" msgstr "" -#: src/pages/part/PartDetail.tsx:462 +#: src/pages/part/PartDetail.tsx:511 msgid "Stocktake By" msgstr "" -#: src/pages/part/PartDetail.tsx:526 -msgid "Part Details" -msgstr "" - -#: src/pages/part/PartDetail.tsx:557 +#: src/pages/part/PartDetail.tsx:611 msgid "Variants" msgstr "" -#: src/pages/part/PartDetail.tsx:564 -#: src/pages/stock/StockDetail.tsx:307 +#: src/pages/part/PartDetail.tsx:618 +#: src/pages/stock/StockDetail.tsx:430 msgid "Allocations" msgstr "" -#: src/pages/part/PartDetail.tsx:575 -#: src/pages/stock/StockDetail.tsx:318 -#: src/tables/part/PartTable.tsx:99 -msgid "Build Order Allocations" -msgstr "" - -#: src/pages/part/PartDetail.tsx:590 -#: src/pages/stock/StockDetail.tsx:333 -#: src/tables/part/PartTable.tsx:108 -msgid "Sales Order Allocations" -msgstr "" - -#: src/pages/part/PartDetail.tsx:607 +#: src/pages/part/PartDetail.tsx:625 msgid "Bill of Materials" msgstr "" -#: src/pages/part/PartDetail.tsx:623 +#: src/pages/part/PartDetail.tsx:643 msgid "Used In" msgstr "" -#: src/pages/part/PartDetail.tsx:630 +#: src/pages/part/PartDetail.tsx:650 msgid "Part Pricing" msgstr "" -#: src/pages/part/PartDetail.tsx:636 +#: src/pages/part/PartDetail.tsx:656 #: src/pages/purchasing/PurchasingIndex.tsx:42 msgid "Manufacturers" msgstr "" -#: src/pages/part/PartDetail.tsx:676 +#: src/pages/part/PartDetail.tsx:722 msgid "Scheduling" msgstr "" -#: src/pages/part/PartDetail.tsx:688 +#: src/pages/part/PartDetail.tsx:729 msgid "Test Templates" msgstr "" -#: src/pages/part/PartDetail.tsx:715 +#: src/pages/part/PartDetail.tsx:756 msgid "Related Parts" msgstr "" -#: src/pages/part/PartDetail.tsx:849 -#: src/pages/stock/StockDetail.tsx:156 -#: src/pages/stock/StockDetail.tsx:593 -#: src/tables/build/BuildLineTable.tsx:48 +#: src/pages/part/PartDetail.tsx:881 +#: src/pages/stock/StockDetail.tsx:172 +#: src/pages/stock/StockDetail.tsx:783 +#: src/tables/build/BuildLineTable.tsx:179 #: src/tables/part/PartTable.tsx:117 -#: src/tables/stock/StockItemTable.tsx:177 -#: src/tables/stock/StockItemTable.tsx:310 +#: src/tables/stock/StockItemTable.tsx:166 +#: src/tables/stock/StockItemTable.tsx:314 msgid "Available" msgstr "" -#: src/pages/part/PartDetail.tsx:855 +#: src/pages/part/PartDetail.tsx:887 msgid "No Stock" msgstr "" -#: src/pages/part/PartDetail.tsx:861 +#: src/pages/part/PartDetail.tsx:893 +#: src/tables/part/PartTestTemplateTable.tsx:106 +#: src/tables/stock/StockItemTestResultTable.tsx:383 +msgid "Required" +msgstr "" + +#: src/pages/part/PartDetail.tsx:899 #: src/tables/bom/BomTable.tsx:325 #: src/tables/part/PartTable.tsx:86 msgid "On Order" msgstr "" -#: src/pages/part/PartDetail.tsx:867 -#: src/pages/stock/StockDetail.tsx:576 -#: src/tables/build/BuildOrderTestTable.tsx:219 -#: src/tables/stock/StockItemTable.tsx:330 -msgid "In Production" -msgstr "" - -#: src/pages/part/PartDetail.tsx:892 +#: src/pages/part/PartDetail.tsx:924 msgid "Edit Part" msgstr "" -#: src/pages/part/PartDetail.tsx:927 +#: src/pages/part/PartDetail.tsx:959 #: src/tables/part/PartTable.tsx:331 -#: src/tables/part/PartTable.tsx:342 +#: src/tables/part/PartTable.tsx:343 msgid "Add Part" msgstr "" -#: src/pages/part/PartDetail.tsx:941 +#: src/pages/part/PartDetail.tsx:973 msgid "Delete Part" msgstr "" -#: src/pages/part/PartDetail.tsx:950 +#: src/pages/part/PartDetail.tsx:982 msgid "Deleting this part cannot be reversed" msgstr "" -#: src/pages/part/PartDetail.tsx:999 -#: src/pages/stock/LocationDetail.tsx:324 -#: src/tables/stock/StockItemTable.tsx:444 +#: src/pages/part/PartDetail.tsx:1021 +#: src/pages/stock/LocationDetail.tsx:310 +#: src/tables/stock/StockItemTable.tsx:449 msgid "Stock Actions" msgstr "" -#: src/pages/part/PartDetail.tsx:1007 +#: src/pages/part/PartDetail.tsx:1029 msgid "Count part stock" msgstr "" -#: src/pages/part/PartDetail.tsx:1018 +#: src/pages/part/PartDetail.tsx:1040 msgid "Transfer part stock" msgstr "" -#: src/pages/part/PartDetail.tsx:1027 +#: src/pages/part/PartDetail.tsx:1049 msgid "Part Actions" msgstr "" -#: src/pages/part/PartDetail.tsx:1087 +#: src/pages/part/PartDetail.tsx:1113 msgid "Select Part Revision" msgstr "" @@ -4862,113 +5621,214 @@ msgstr "" #~ msgid "Categories" #~ msgstr "Categories" -#: src/pages/part/PartPricingPanel.tsx:68 +#: src/pages/part/PartPricingPanel.tsx:72 msgid "No pricing data found for this part." msgstr "" -#: src/pages/part/PartPricingPanel.tsx:82 -#: src/pages/part/pricing/PricingOverviewPanel.tsx:190 +#: src/pages/part/PartPricingPanel.tsx:87 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:293 msgid "Pricing Overview" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:88 +#: src/pages/part/PartPricingPanel.tsx:93 msgid "Purchase History" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:102 -#: src/pages/part/pricing/PricingOverviewPanel.tsx:100 +#: src/pages/part/PartPricingPanel.tsx:107 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:174 msgid "Internal Pricing" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:120 -#: src/pages/part/pricing/PricingOverviewPanel.tsx:107 +#: src/pages/part/PartPricingPanel.tsx:125 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:181 msgid "BOM Pricing" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:127 -#: src/pages/part/pricing/PricingOverviewPanel.tsx:128 +#: src/pages/part/PartPricingPanel.tsx:132 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:202 msgid "Variant Pricing" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:139 -#: src/pages/part/pricing/PricingOverviewPanel.tsx:135 +#: src/pages/part/PartPricingPanel.tsx:144 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:209 msgid "Sale Pricing" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:146 -#: src/pages/part/pricing/PricingOverviewPanel.tsx:142 +#: src/pages/part/PartPricingPanel.tsx:151 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:216 msgid "Sale History" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:58 -#: src/pages/part/pricing/BomPricingPanel.tsx:138 -#: src/tables/ColumnRenderers.tsx:262 +#: src/pages/part/PartSchedulingDetail.tsx:47 +#: src/pages/part/PartSchedulingDetail.tsx:299 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:156 +msgid "Maximum" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:50 +#: src/pages/part/PartSchedulingDetail.tsx:289 +msgid "Scheduled" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:53 +#: src/pages/part/PartSchedulingDetail.tsx:294 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:144 +msgid "Minimum" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:68 +msgid "Order" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:92 +msgid "Quantity is speculative" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:101 +msgid "No date available for provided quantity" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:105 +msgid "Date is in the past" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:112 +msgid "Scheduled Quantity" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:240 +msgid "No information available" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:241 +msgid "There is no scheduling information available for the selected part" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:276 +msgid "Expected Quantity" +msgstr "" + +#: src/pages/part/PartStocktakeDetail.tsx:63 +#: src/tables/FilterSelectDrawer.tsx:167 +#: src/tables/FilterSelectDrawer.tsx:174 +#: src/tables/build/BuildOrderTestTable.tsx:135 +#: src/tables/purchasing/ManufacturerPartParameterTable.tsx:38 +#: src/tables/stock/StockItemTestResultTable.tsx:192 +msgid "Value" +msgstr "" + +#: src/pages/part/PartStocktakeDetail.tsx:82 +msgid "Edit Stocktake Entry" +msgstr "" + +#: src/pages/part/PartStocktakeDetail.tsx:90 +msgid "Delete Stocktake Entry" +msgstr "" + +#: src/pages/part/PartStocktakeDetail.tsx:96 +#: src/tables/settings/StocktakeReportTable.tsx:69 +msgid "Generate Stocktake Report" +msgstr "" + +#: src/pages/part/PartStocktakeDetail.tsx:101 +#: src/tables/settings/StocktakeReportTable.tsx:71 +msgid "Stocktake report scheduled" +msgstr "" + +#: src/pages/part/PartStocktakeDetail.tsx:119 +#: src/pages/part/PartStocktakeDetail.tsx:235 +#: src/pages/stock/StockDetail.tsx:303 +#: src/tables/stock/StockItemTable.tsx:249 +msgid "Stock Value" +msgstr "" + +#: src/pages/part/PartStocktakeDetail.tsx:139 +#: src/tables/settings/StocktakeReportTable.tsx:77 +msgid "New Stocktake Report" +msgstr "" + +#: src/pages/part/PartStocktakeDetail.tsx:258 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:295 +msgid "Minimum Value" +msgstr "" + +#: src/pages/part/PartStocktakeDetail.tsx:264 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:296 +msgid "Maximum Value" +msgstr "" + +#: src/pages/part/pricing/BomPricingPanel.tsx:87 +#: src/pages/part/pricing/BomPricingPanel.tsx:177 +#: src/tables/ColumnRenderers.tsx:276 #: src/tables/bom/BomTable.tsx:185 #: src/tables/general/ExtraLineItemTable.tsx:64 -#: src/tables/purchasing/PurchaseOrderTable.tsx:112 -#: src/tables/sales/ReturnOrderTable.tsx:104 -#: src/tables/sales/SalesOrderLineItemTable.tsx:89 -#: src/tables/sales/SalesOrderTable.tsx:136 +#: src/tables/purchasing/PurchaseOrderTable.tsx:113 +#: src/tables/sales/ReturnOrderTable.tsx:127 +#: src/tables/sales/SalesOrderLineItemTable.tsx:97 +#: src/tables/sales/SalesOrderTable.tsx:149 msgid "Total Price" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:78 -#: src/pages/part/pricing/BomPricingPanel.tsx:102 +#: src/pages/part/pricing/BomPricingPanel.tsx:112 +#: src/pages/part/pricing/BomPricingPanel.tsx:141 #: src/tables/bom/UsedInTable.tsx:49 +#: src/tables/build/BuildLineTable.tsx:296 #: src/tables/part/PartTable.tsx:202 msgid "Component" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:81 -#: src/pages/part/pricing/VariantPricingPanel.tsx:37 -#: src/pages/part/pricing/VariantPricingPanel.tsx:97 -msgid "Minimum Price" -msgstr "" - -#: src/pages/part/pricing/BomPricingPanel.tsx:82 -#: src/pages/part/pricing/VariantPricingPanel.tsx:45 -#: src/pages/part/pricing/VariantPricingPanel.tsx:98 -msgid "Maximum Price" -msgstr "" - #: src/pages/part/pricing/BomPricingPanel.tsx:112 #~ msgid "Minimum Total Price" #~ msgstr "Minimum Total Price" +#: src/pages/part/pricing/BomPricingPanel.tsx:115 +#: src/pages/part/pricing/VariantPricingPanel.tsx:37 +#: src/pages/part/pricing/VariantPricingPanel.tsx:97 +msgid "Minimum Price" +msgstr "" + +#: src/pages/part/pricing/BomPricingPanel.tsx:116 +#: src/pages/part/pricing/VariantPricingPanel.tsx:45 +#: src/pages/part/pricing/VariantPricingPanel.tsx:98 +msgid "Maximum Price" +msgstr "" + #: src/pages/part/pricing/BomPricingPanel.tsx:117 #~ msgid "Maximum Total Price" #~ msgstr "Maximum Total Price" -#: src/pages/part/pricing/BomPricingPanel.tsx:129 -#: src/pages/part/pricing/PriceBreakPanel.tsx:172 -#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:67 -#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:128 -#: src/pages/part/pricing/SupplierPricingPanel.tsx:62 +#: src/pages/part/pricing/BomPricingPanel.tsx:168 +#: src/pages/part/pricing/PriceBreakPanel.tsx:173 +#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:70 +#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:125 +#: src/pages/part/pricing/SupplierPricingPanel.tsx:66 +#: src/pages/stock/StockDetail.tsx:291 #: src/tables/bom/BomTable.tsx:176 #: src/tables/general/ExtraLineItemTable.tsx:56 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:223 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:225 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:92 +#: src/tables/stock/StockItemTable.tsx:239 msgid "Unit Price" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:154 +#: src/pages/part/pricing/BomPricingPanel.tsx:193 #: src/pages/part/pricing/VariantPricingPanel.tsx:53 -#: src/tables/purchasing/SupplierPartTable.tsx:148 +#: src/tables/purchasing/SupplierPartTable.tsx:150 msgid "Updated" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:219 +#: src/pages/part/pricing/BomPricingPanel.tsx:258 msgid "Pie Chart" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:220 +#: src/pages/part/pricing/BomPricingPanel.tsx:259 msgid "Bar Chart" msgstr "" #: src/pages/part/pricing/PriceBreakPanel.tsx:58 -#: src/pages/part/pricing/PriceBreakPanel.tsx:110 +#: src/pages/part/pricing/PriceBreakPanel.tsx:111 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:142 -#: src/tables/purchasing/SupplierPriceBreakTable.tsx:168 +#: src/tables/purchasing/SupplierPriceBreakTable.tsx:169 msgid "Add Price Break" msgstr "" @@ -4986,46 +5846,70 @@ msgstr "" msgid "Price Break" msgstr "" -#: src/pages/part/pricing/PriceBreakPanel.tsx:170 +#: src/pages/part/pricing/PriceBreakPanel.tsx:171 msgid "Price" msgstr "" -#: src/pages/part/pricing/PricingOverviewPanel.tsx:51 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:68 +msgid "Refreshing pricing data" +msgstr "" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:88 +msgid "Pricing data updated" +msgstr "" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:95 +msgid "Failed to update pricing data" +msgstr "" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:104 +msgid "Edit Pricing" +msgstr "" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:125 msgid "Pricing Category" msgstr "" -#: src/pages/part/pricing/PricingOverviewPanel.tsx:70 -msgid "Minimum" -msgstr "" - -#: src/pages/part/pricing/PricingOverviewPanel.tsx:82 -msgid "Maximum" -msgstr "" - -#: src/pages/part/pricing/PricingOverviewPanel.tsx:114 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:188 msgid "Purchase Pricing" msgstr "" -#: src/pages/part/pricing/PricingOverviewPanel.tsx:149 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:223 msgid "Override Pricing" msgstr "" -#: src/pages/part/pricing/PricingOverviewPanel.tsx:156 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:230 msgid "Overall Pricing" msgstr "" -#: src/pages/part/pricing/PricingOverviewPanel.tsx:175 -#: src/pages/stock/StockDetail.tsx:129 -#: src/tables/stock/StockItemTable.tsx:240 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:249 +#: src/pages/stock/StockDetail.tsx:145 +#: src/tables/stock/StockItemTable.tsx:275 msgid "Last Updated" msgstr "" -#: src/pages/part/pricing/PricingOverviewPanel.tsx:192 -msgid "Minimum Value" +#: src/pages/part/pricing/PricingOverviewPanel.tsx:253 +msgid "Pricing Not Set" msgstr "" -#: src/pages/part/pricing/PricingOverviewPanel.tsx:193 -msgid "Maximum Value" +#: src/pages/part/pricing/PricingOverviewPanel.tsx:254 +msgid "Pricing data has not been calculated for this part" +msgstr "" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:258 +msgid "Pricing Actions" +msgstr "" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:261 +msgid "Refresh" +msgstr "" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:262 +msgid "Refresh pricing data" +msgstr "" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:277 +msgid "Edit pricing data" msgstr "" #: src/pages/part/pricing/PricingPanel.tsx:24 @@ -5044,28 +5928,20 @@ msgstr "" msgid "Loading pricing data" msgstr "" -#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:40 -#: src/pages/part/pricing/SaleHistoryPanel.tsx:36 -#: src/tables/ColumnRenderers.tsx:201 -#: src/tables/build/BuildOrderTestTable.tsx:150 -#: src/tables/plugin/PluginListTable.tsx:139 -msgid "Date" -msgstr "" - #: src/pages/part/pricing/PurchaseHistoryPanel.tsx:47 msgid "Purchase Price" msgstr "" -#: src/pages/part/pricing/SaleHistoryPanel.tsx:22 -msgid "Sale Order" -msgstr "" +#: src/pages/part/pricing/SaleHistoryPanel.tsx:24 +#~ msgid "Sale Order" +#~ msgstr "Sale Order" -#: src/pages/part/pricing/SaleHistoryPanel.tsx:42 -#: src/pages/part/pricing/SaleHistoryPanel.tsx:92 +#: src/pages/part/pricing/SaleHistoryPanel.tsx:44 +#: src/pages/part/pricing/SaleHistoryPanel.tsx:87 msgid "Sale Price" msgstr "" -#: src/pages/part/pricing/SupplierPricingPanel.tsx:65 +#: src/pages/part/pricing/SupplierPricingPanel.tsx:69 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:83 msgid "Supplier Price" msgstr "" @@ -5075,23 +5951,23 @@ msgstr "" msgid "Variant Part" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:93 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:87 msgid "Edit Purchase Order" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:102 -#: src/tables/purchasing/PurchaseOrderTable.tsx:128 -#: src/tables/purchasing/PurchaseOrderTable.tsx:140 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:96 +#: src/tables/purchasing/PurchaseOrderTable.tsx:129 +#: src/tables/purchasing/PurchaseOrderTable.tsx:142 msgid "Add Purchase Order" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:127 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:121 msgid "Supplier Reference" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:158 -#: src/pages/sales/ReturnOrderDetail.tsx:137 -#: src/pages/sales/SalesOrderDetail.tsx:137 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:152 +#: src/pages/sales/ReturnOrderDetail.tsx:129 +#: src/pages/sales/SalesOrderDetail.tsx:132 msgid "Completed Line Items" msgstr "" @@ -5101,91 +5977,112 @@ msgstr "" #~ msgid "Order Currency," #~ msgstr "Order Currency," -#: src/pages/purchasing/PurchaseOrderDetail.tsx:165 -#: src/pages/sales/ReturnOrderDetail.tsx:144 -#: src/pages/sales/SalesOrderDetail.tsx:153 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:161 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:231 +msgid "Destination" +msgstr "" + +#: src/pages/purchasing/PurchaseOrderDetail.tsx:167 +#: src/pages/sales/ReturnOrderDetail.tsx:136 +#: src/pages/sales/SalesOrderDetail.tsx:148 msgid "Order Currency" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:172 -#: src/pages/sales/ReturnOrderDetail.tsx:151 -#: src/pages/sales/SalesOrderDetail.tsx:160 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:173 +#: src/pages/sales/ReturnOrderDetail.tsx:143 +#: src/pages/sales/SalesOrderDetail.tsx:155 msgid "Total Cost" msgstr "" #: src/pages/purchasing/PurchaseOrderDetail.tsx:207 -#: src/pages/sales/ReturnOrderDetail.tsx:186 -#: src/pages/sales/SalesOrderDetail.tsx:195 -msgid "Created On" +#: src/pages/sales/ReturnOrderDetail.tsx:183 +#: src/pages/sales/SalesOrderDetail.tsx:191 +#~ msgid "Created On" +#~ msgstr "Created On" + +#: src/pages/purchasing/PurchaseOrderDetail.tsx:221 +#: src/pages/sales/ReturnOrderDetail.tsx:193 +#: src/pages/sales/SalesOrderDetail.tsx:204 +msgid "Issue Date" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:252 -#: src/pages/sales/ReturnOrderDetail.tsx:231 -#: src/pages/sales/SalesOrderDetail.tsx:266 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:237 +#: src/pages/sales/ReturnOrderDetail.tsx:209 +#: src/pages/sales/SalesOrderDetail.tsx:219 +#: src/tables/build/BuildOrderTable.tsx:98 +#: src/tables/part/PartPurchaseOrdersTable.tsx:105 +#: src/tables/sales/ReturnOrderTable.tsx:122 +msgid "Completion Date" +msgstr "" + +#: src/pages/purchasing/PurchaseOrderDetail.tsx:276 +#: src/pages/sales/ReturnOrderDetail.tsx:248 +#: src/pages/sales/SalesOrderDetail.tsx:288 msgid "Order Details" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:280 -#: src/pages/sales/ReturnOrderDetail.tsx:258 -#: src/pages/sales/SalesOrderDetail.tsx:297 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:304 +#: src/pages/sales/ReturnOrderDetail.tsx:276 +#: src/pages/sales/SalesOrderDetail.tsx:319 msgid "Extra Line Items" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:337 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:346 msgid "Issue Purchase Order" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:345 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:354 msgid "Cancel Purchase Order" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:353 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:362 msgid "Hold Purchase Order" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:361 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:370 msgid "Complete Purchase Order" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:427 -#: src/pages/sales/ReturnOrderDetail.tsx:428 -#: src/pages/sales/SalesOrderDetail.tsx:468 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:425 +#: src/pages/sales/ReturnOrderDetail.tsx:424 +#: src/pages/sales/SalesOrderDetail.tsx:464 msgid "Order Actions" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:101 -#: src/pages/sales/SalesOrderDetail.tsx:107 -#: src/tables/sales/SalesOrderTable.tsx:124 +#: src/pages/sales/ReturnOrderDetail.tsx:92 +#: src/pages/sales/SalesOrderDetail.tsx:101 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:109 +#: src/tables/sales/SalesOrderTable.tsx:137 msgid "Customer Reference" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:315 +#: src/pages/sales/ReturnOrderDetail.tsx:322 msgid "Edit Return Order" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:324 -#: src/tables/sales/ReturnOrderTable.tsx:119 -#: src/tables/sales/ReturnOrderTable.tsx:128 +#: src/pages/sales/ReturnOrderDetail.tsx:331 +#: src/tables/sales/ReturnOrderTable.tsx:142 +#: src/tables/sales/ReturnOrderTable.tsx:152 msgid "Add Return Order" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:336 +#: src/pages/sales/ReturnOrderDetail.tsx:343 msgid "Issue Return Order" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:344 +#: src/pages/sales/ReturnOrderDetail.tsx:349 +#~ msgid "Order canceled" +#~ msgstr "Order canceled" + +#: src/pages/sales/ReturnOrderDetail.tsx:351 msgid "Cancel Return Order" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:347 -msgid "Order canceled" -msgstr "" - -#: src/pages/sales/ReturnOrderDetail.tsx:352 +#: src/pages/sales/ReturnOrderDetail.tsx:359 msgid "Hold Return Order" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:360 +#: src/pages/sales/ReturnOrderDetail.tsx:367 msgid "Complete Return Order" msgstr "" @@ -5193,117 +6090,193 @@ msgstr "" msgid "Customers" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:145 +#: src/pages/sales/SalesOrderDetail.tsx:140 msgid "Completed Shipments" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:243 -msgid "Edit Sales Order" -msgstr "" - -#: src/pages/sales/SalesOrderDetail.tsx:252 -#: src/tables/sales/SalesOrderTable.tsx:84 -#: src/tables/sales/SalesOrderTable.tsx:96 -msgid "Add Sales Order" -msgstr "" - #: src/pages/sales/SalesOrderDetail.tsx:256 #~ msgid "Pending Shipments" #~ msgstr "Pending Shipments" -#: src/pages/sales/SalesOrderDetail.tsx:313 +#: src/pages/sales/SalesOrderDetail.tsx:261 +msgid "Edit Sales Order" +msgstr "" + +#: src/pages/sales/SalesOrderDetail.tsx:274 +#: src/tables/sales/SalesOrderTable.tsx:96 +#: src/tables/sales/SalesOrderTable.tsx:109 +msgid "Add Sales Order" +msgstr "" + +#: src/pages/sales/SalesOrderDetail.tsx:335 msgid "Shipments" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:369 +#: src/pages/sales/SalesOrderDetail.tsx:376 msgid "Issue Sales Order" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:377 +#: src/pages/sales/SalesOrderDetail.tsx:384 msgid "Cancel Sales Order" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:385 +#: src/pages/sales/SalesOrderDetail.tsx:392 msgid "Hold Sales Order" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:393 +#: src/pages/sales/SalesOrderDetail.tsx:400 msgid "Complete Sales Order" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:432 +#: src/pages/sales/SalesOrderDetail.tsx:439 msgid "Ship Order" msgstr "" -#: src/pages/stock/LocationDetail.tsx:117 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:117 +#: src/tables/sales/SalesOrderShipmentTable.tsx:96 +msgid "Shipment Reference" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:124 +msgid "Allocated Items" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:133 +msgid "Tracking Number" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:141 +msgid "Invoice Number" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:149 +#: src/tables/ColumnRenderers.tsx:242 +#: src/tables/sales/SalesOrderAllocationTable.tsx:142 +#: src/tables/sales/SalesOrderShipmentTable.tsx:115 +msgid "Shipment Date" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:157 +#: src/tables/sales/SalesOrderShipmentTable.tsx:119 +msgid "Delivery Date" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:204 +msgid "Shipment Details" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:210 +msgid "Assigned Items" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:241 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:317 +#: src/tables/sales/SalesOrderShipmentTable.tsx:75 +msgid "Edit Shipment" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:248 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:322 +#: src/tables/sales/SalesOrderShipmentTable.tsx:67 +msgid "Cancel Shipment" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:261 +#: src/tables/sales/SalesOrderShipmentTable.tsx:83 +#: src/tables/sales/SalesOrderShipmentTable.tsx:151 +msgid "Complete Shipment" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:276 +#: src/tables/part/PartPurchaseOrdersTable.tsx:121 +msgid "Pending" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:277 +#: src/tables/sales/SalesOrderAllocationTable.tsx:148 +#: src/tables/sales/SalesOrderShipmentTable.tsx:108 +#: src/tables/sales/SalesOrderShipmentTable.tsx:197 +msgid "Shipped" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:279 +#: src/tables/sales/SalesOrderShipmentTable.tsx:202 +msgid "Delivered" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:293 +msgid "Send Shipment" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:312 +msgid "Shipment Actions" +msgstr "" + +#: src/pages/stock/LocationDetail.tsx:111 msgid "Parent Location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:135 +#: src/pages/stock/LocationDetail.tsx:129 msgid "Sublocations" msgstr "" -#: src/pages/stock/LocationDetail.tsx:147 +#: src/pages/stock/LocationDetail.tsx:141 #: src/tables/stock/StockLocationTable.tsx:54 msgid "External" msgstr "" -#: src/pages/stock/LocationDetail.tsx:153 +#: src/pages/stock/LocationDetail.tsx:147 #: src/tables/stock/StockLocationTable.tsx:63 msgid "Location Type" msgstr "" -#: src/pages/stock/LocationDetail.tsx:164 +#: src/pages/stock/LocationDetail.tsx:158 msgid "Top level stock location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:175 +#: src/pages/stock/LocationDetail.tsx:169 msgid "Location Details" msgstr "" -#: src/pages/stock/LocationDetail.tsx:201 +#: src/pages/stock/LocationDetail.tsx:195 msgid "Default Parts" msgstr "" -#: src/pages/stock/LocationDetail.tsx:220 -#: src/pages/stock/LocationDetail.tsx:351 +#: src/pages/stock/LocationDetail.tsx:214 +#: src/pages/stock/LocationDetail.tsx:336 #: src/tables/stock/StockLocationTable.tsx:123 msgid "Edit Stock Location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:241 -#: src/pages/stock/LocationDetail.tsx:356 +#: src/pages/stock/LocationDetail.tsx:235 +#: src/pages/stock/LocationDetail.tsx:341 msgid "Delete Stock Location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:244 +#: src/pages/stock/LocationDetail.tsx:238 msgid "Items Action" msgstr "" -#: src/pages/stock/LocationDetail.tsx:245 +#: src/pages/stock/LocationDetail.tsx:239 msgid "Action for stock items in this location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:250 +#: src/pages/stock/LocationDetail.tsx:244 msgid "Child Locations Action" msgstr "" -#: src/pages/stock/LocationDetail.tsx:251 +#: src/pages/stock/LocationDetail.tsx:245 msgid "Action for child locations in this location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:346 +#: src/pages/stock/LocationDetail.tsx:332 msgid "Location Actions" msgstr "" -#: src/pages/stock/StockDetail.tsx:108 +#: src/pages/stock/StockDetail.tsx:116 msgid "Base Part" msgstr "" -#: src/pages/stock/StockDetail.tsx:115 -msgid "Stock Status" -msgstr "" - #: src/pages/stock/StockDetail.tsx:155 #~ msgid "Link custom barcode to stock item" #~ msgstr "Link custom barcode to stock item" @@ -5312,113 +6285,179 @@ msgstr "" #~ msgid "Unlink custom barcode from stock item" #~ msgstr "Unlink custom barcode from stock item" -#: src/pages/stock/StockDetail.tsx:188 -msgid "Installed In" -msgstr "" - -#: src/pages/stock/StockDetail.tsx:204 -msgid "Consumed By" +#: src/pages/stock/StockDetail.tsx:178 +msgid "Allocated to Orders" msgstr "" #: src/pages/stock/StockDetail.tsx:205 #~ msgid "Edit stock item" #~ msgstr "Edit stock item" -#: src/pages/stock/StockDetail.tsx:213 -#: src/tables/build/BuildAllocatedStockTable.tsx:64 -#: src/tables/stock/StockTrackingTable.tsx:96 -msgid "Build Order" +#: src/pages/stock/StockDetail.tsx:209 +msgid "Installed In" msgstr "" #: src/pages/stock/StockDetail.tsx:217 #~ msgid "Delete stock item" #~ msgstr "Delete stock item" -#: src/pages/stock/StockDetail.tsx:291 +#: src/pages/stock/StockDetail.tsx:226 +msgid "Parent Item" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:230 +msgid "Parent stock item" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:236 +msgid "Consumed By" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:245 +#: src/tables/build/BuildAllocatedStockTable.tsx:77 +#: src/tables/stock/StockTrackingTable.tsx:100 +msgid "Build Order" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:283 +#: src/tables/stock/StockItemTable.tsx:270 +msgid "Expiry Date" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:414 msgid "Stock Details" msgstr "" -#: src/pages/stock/StockDetail.tsx:297 +#: src/pages/stock/StockDetail.tsx:420 msgid "Stock Tracking" msgstr "" -#: src/pages/stock/StockDetail.tsx:350 -msgid "Test Data" -msgstr "" - -#: src/pages/stock/StockDetail.tsx:364 -msgid "Installed Items" -msgstr "" - -#: src/pages/stock/StockDetail.tsx:371 -msgid "Child Items" -msgstr "" - -#: src/pages/stock/StockDetail.tsx:425 -msgid "Edit Stock Item" -msgstr "" - #: src/pages/stock/StockDetail.tsx:433 #~ msgid "Duplicate stock item" #~ msgstr "Duplicate stock item" -#: src/pages/stock/StockDetail.tsx:452 +#: src/pages/stock/StockDetail.tsx:475 +msgid "Test Data" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:489 +msgid "Installed Items" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:496 +msgid "Child Items" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:545 +msgid "Edit Stock Item" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:572 msgid "Delete Stock Item" msgstr "" -#: src/pages/stock/StockDetail.tsx:504 +#: src/pages/stock/StockDetail.tsx:604 +msgid "Serialize Stock Item" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:617 +msgid "Stock item serialized" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:623 +msgid "Return Stock Item" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:626 +msgid "Return this item into stock. This will remove the customer assignment." +msgstr "" + +#: src/pages/stock/StockDetail.tsx:636 +msgid "Item returned to stock" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:666 msgid "Stock Operations" msgstr "" -#: src/pages/stock/StockDetail.tsx:509 +#: src/pages/stock/StockDetail.tsx:671 msgid "Count stock" msgstr "" -#: src/pages/stock/StockDetail.tsx:519 -#: src/tables/stock/StockItemTable.tsx:449 -msgid "Add stock" +#: src/pages/stock/StockDetail.tsx:671 +#: src/tables/stock/StockItemTable.tsx:452 +#~ msgid "Add stock" +#~ msgstr "Add stock" + +#: src/pages/stock/StockDetail.tsx:680 +#: src/tables/stock/StockItemTable.tsx:461 +#~ msgid "Remove stock" +#~ msgstr "Remove stock" + +#: src/pages/stock/StockDetail.tsx:698 +#: src/tables/stock/StockItemTable.tsx:481 +#~ msgid "Transfer stock" +#~ msgstr "Transfer stock" + +#: src/pages/stock/StockDetail.tsx:699 +msgid "Serialize" msgstr "" -#: src/pages/stock/StockDetail.tsx:527 -#: src/tables/stock/StockItemTable.tsx:458 -msgid "Remove stock" +#: src/pages/stock/StockDetail.tsx:700 +msgid "Serialize stock" msgstr "" -#: src/pages/stock/StockDetail.tsx:534 +#: src/pages/stock/StockDetail.tsx:711 msgid "Transfer" msgstr "" -#: src/pages/stock/StockDetail.tsx:535 -#: src/tables/stock/StockItemTable.tsx:478 -msgid "Transfer stock" +#: src/pages/stock/StockDetail.tsx:722 +msgid "Return" msgstr "" -#: src/pages/stock/StockDetail.tsx:546 +#: src/pages/stock/StockDetail.tsx:723 +msgid "Return from customer" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:738 msgid "Stock Item Actions" msgstr "" -#: src/tables/ColumnRenderers.tsx:30 +#: src/pages/stock/StockDetail.tsx:808 +msgid "Stale" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:814 +msgid "Expired" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:820 +msgid "Unavailable" +msgstr "" + +#: src/tables/ColumnRenderers.tsx:36 msgid "Part is not active" msgstr "" -#: src/tables/ColumnRenderers.tsx:35 -msgid "Part is locked" +#: src/tables/ColumnRenderers.tsx:41 +#: src/tables/bom/BomTable.tsx:542 +#: src/tables/part/PartParameterTable.tsx:193 +#: src/tables/part/PartTestTemplateTable.tsx:253 +msgid "Part is Locked" msgstr "" -#: src/tables/ColumnRenderers.tsx:57 +#: src/tables/ColumnRenderers.tsx:41 +#~ msgid "Part is locked" +#~ msgstr "Part is locked" + +#: src/tables/ColumnRenderers.tsx:46 +msgid "You are subscribed to notifications for this part" +msgstr "" + +#: src/tables/ColumnRenderers.tsx:68 msgid "No location set" msgstr "" -#: src/tables/ColumnRenderers.tsx:228 -#: src/tables/sales/SalesOrderShipmentTable.tsx:79 -msgid "Shipment Date" -msgstr "" - -#: src/tables/ColumnRenderers.tsx:248 -#: src/tables/settings/CurrencyTable.tsx:23 -msgid "Currency" -msgstr "" - #: src/tables/ColumnSelect.tsx:16 #: src/tables/ColumnSelect.tsx:23 msgid "Select Columns" @@ -5452,91 +6491,116 @@ msgstr "" msgid "Download Data" msgstr "" -#: src/tables/Filter.tsx:89 -#: src/tables/build/BuildOrderTable.tsx:135 +#: src/tables/Filter.tsx:101 msgid "Assigned to me" msgstr "" -#: src/tables/Filter.tsx:90 -#: src/tables/build/BuildOrderTable.tsx:136 +#: src/tables/Filter.tsx:102 msgid "Show orders assigned to me" msgstr "" -#: src/tables/Filter.tsx:97 +#: src/tables/Filter.tsx:106 +#~ msgid "Show overdue orders" +#~ msgstr "Show overdue orders" + +#: src/tables/Filter.tsx:109 +#: src/tables/build/BuildOrderTable.tsx:120 +#: src/tables/sales/SalesOrderAllocationTable.tsx:59 msgid "Outstanding" msgstr "" -#: src/tables/Filter.tsx:98 -msgid "Show outstanding orders" +#: src/tables/Filter.tsx:110 +msgid "Show outstanding items" msgstr "" -#: src/tables/Filter.tsx:105 -#: src/tables/build/BuildOrderTable.tsx:128 +#: src/tables/Filter.tsx:117 msgid "Overdue" msgstr "" -#: src/tables/Filter.tsx:106 -msgid "Show overdue orders" +#: src/tables/Filter.tsx:118 +msgid "Show overdue items" msgstr "" -#: src/tables/FilterSelectDrawer.tsx:51 +#: src/tables/Filter.tsx:125 +msgid "Minimum Date" +msgstr "" + +#: src/tables/Filter.tsx:126 +msgid "Show items after this date" +msgstr "" + +#: src/tables/Filter.tsx:134 +msgid "Maximum Date" +msgstr "" + +#: src/tables/Filter.tsx:135 +msgid "Show items before this date" +msgstr "" + +#: src/tables/Filter.tsx:144 +msgid "Has Project Code" +msgstr "" + +#: src/tables/Filter.tsx:145 +msgid "Show orders with an assigned project code" +msgstr "" + +#: src/tables/FilterSelectDrawer.tsx:55 msgid "Remove filter" msgstr "" -#: src/tables/FilterSelectDrawer.tsx:130 +#: src/tables/FilterSelectDrawer.tsx:159 msgid "Select filter" msgstr "" -#: src/tables/FilterSelectDrawer.tsx:131 +#: src/tables/FilterSelectDrawer.tsx:160 msgid "Filter" msgstr "" -#: src/tables/FilterSelectDrawer.tsx:138 -#: src/tables/build/BuildOrderTestTable.tsx:134 -#: src/tables/purchasing/ManufacturerPartParameterTable.tsx:38 -#: src/tables/stock/StockItemTestResultTable.tsx:186 -msgid "Value" +#: src/tables/FilterSelectDrawer.tsx:168 +msgid "Select date value" msgstr "" -#: src/tables/FilterSelectDrawer.tsx:140 +#: src/tables/FilterSelectDrawer.tsx:176 msgid "Select filter value" msgstr "" -#: src/tables/FilterSelectDrawer.tsx:183 +#: src/tables/FilterSelectDrawer.tsx:219 +#: src/tables/InvenTreeTableHeader.tsx:214 msgid "Table Filters" msgstr "" -#: src/tables/FilterSelectDrawer.tsx:215 +#: src/tables/FilterSelectDrawer.tsx:251 msgid "Add Filter" msgstr "" -#: src/tables/FilterSelectDrawer.tsx:224 +#: src/tables/FilterSelectDrawer.tsx:260 msgid "Clear Filters" msgstr "" -#: src/tables/InvenTreeTable.tsx:123 -#: src/tables/InvenTreeTable.tsx:431 -#: src/tables/InvenTreeTable.tsx:455 +#: src/tables/InvenTreeTable.tsx:96 +#: src/tables/InvenTreeTable.tsx:417 +#: src/tables/InvenTreeTable.tsx:441 msgid "No records found" msgstr "" -#: src/tables/InvenTreeTable.tsx:466 +#: src/tables/InvenTreeTable.tsx:452 msgid "Server returned incorrect data type" msgstr "" -#: src/tables/InvenTreeTable.tsx:474 +#: src/tables/InvenTreeTable.tsx:460 msgid "Bad request" msgstr "" -#: src/tables/InvenTreeTable.tsx:477 +#: src/tables/InvenTreeTable.tsx:463 msgid "Unauthorized" msgstr "" -#: src/tables/InvenTreeTable.tsx:480 +#: src/tables/InvenTreeTable.tsx:466 msgid "Forbidden" msgstr "" -#: src/tables/InvenTreeTable.tsx:483 +#: src/tables/InvenTreeTable.tsx:469 msgid "Not found" msgstr "" @@ -5544,18 +6608,6 @@ msgstr "" #~ msgid "Are you sure you want to delete the selected records?" #~ msgstr "Are you sure you want to delete the selected records?" -#: src/tables/InvenTreeTable.tsx:525 -msgid "Delete Selected Items" -msgstr "" - -#: src/tables/InvenTreeTable.tsx:529 -msgid "Are you sure you want to delete the selected items?" -msgstr "" - -#: src/tables/InvenTreeTable.tsx:531 -msgid "This action cannot be undone!" -msgstr "" - #: src/tables/InvenTreeTable.tsx:535 #~ msgid "Deleted records" #~ msgstr "Deleted records" @@ -5568,31 +6620,56 @@ msgstr "" #~ msgid "Failed to delete records" #~ msgstr "Failed to delete records" +#: src/tables/InvenTreeTable.tsx:552 +#~ msgid "This action cannot be undone!" +#~ msgstr "This action cannot be undone!" + #: src/tables/InvenTreeTable.tsx:594 #: src/tables/InvenTreeTable.tsx:595 #~ msgid "Print actions" #~ msgstr "Print actions" -#: src/tables/InvenTreeTable.tsx:618 -#: src/tables/InvenTreeTable.tsx:619 -msgid "Barcode actions" +#: src/tables/InvenTreeTable.tsx:655 +#: src/tables/InvenTreeTable.tsx:656 +#~ msgid "Barcode actions" +#~ msgstr "Barcode actions" + +#: src/tables/InvenTreeTable.tsx:712 +#~ msgid "Table filters" +#~ msgstr "Table filters" + +#: src/tables/InvenTreeTable.tsx:725 +#~ msgid "Clear custom query filters" +#~ msgstr "Clear custom query filters" + +#: src/tables/InvenTreeTableHeader.tsx:98 +msgid "Delete Selected Items" msgstr "" -#: src/tables/InvenTreeTable.tsx:628 +#: src/tables/InvenTreeTableHeader.tsx:102 +msgid "Are you sure you want to delete the selected items?" +msgstr "" + +#: src/tables/InvenTreeTableHeader.tsx:104 +#: src/tables/plugin/PluginListTable.tsx:305 +msgid "This action cannot be undone" +msgstr "" + +#: src/tables/InvenTreeTableHeader.tsx:142 +msgid "Custom table filters are active" +msgstr "" + +#: src/tables/InvenTreeTableHeader.tsx:169 msgid "Delete selected records" msgstr "" -#: src/tables/InvenTreeTable.tsx:649 +#: src/tables/InvenTreeTableHeader.tsx:188 msgid "Refresh data" msgstr "" -#: src/tables/InvenTreeTable.tsx:675 -msgid "Table filters" -msgstr "" - #: src/tables/TableHoverCard.tsx:35 -msgid "item-{idx}" -msgstr "" +#~ msgid "item-{idx}" +#~ msgstr "item-{idx}" #: src/tables/UploadAction.tsx:7 #~ msgid "Upload Data" @@ -5607,31 +6684,36 @@ msgid "Part Information" msgstr "" #: src/tables/bom/BomTable.tsx:212 -#: src/tables/build/BuildLineTable.tsx:126 +#: src/tables/build/BuildLineTable.tsx:257 #: src/tables/part/PartTable.tsx:125 msgid "External stock" msgstr "" #: src/tables/bom/BomTable.tsx:220 -#: src/tables/build/BuildLineTable.tsx:89 +#: src/tables/build/BuildLineTable.tsx:220 msgid "Includes substitute stock" msgstr "" #: src/tables/bom/BomTable.tsx:229 -#: src/tables/build/BuildLineTable.tsx:99 -#: src/tables/sales/SalesOrderLineItemTable.tsx:127 +#: src/tables/build/BuildLineTable.tsx:230 +#: src/tables/sales/SalesOrderLineItemTable.tsx:135 msgid "Includes variant stock" msgstr "" +#: src/tables/bom/BomTable.tsx:245 +#: src/tables/part/PartTable.tsx:92 +msgid "Building" +msgstr "" + #: src/tables/bom/BomTable.tsx:254 #: src/tables/part/PartTable.tsx:153 -#: src/tables/sales/SalesOrderLineItemTable.tsx:150 -#: src/tables/stock/StockItemTable.tsx:216 +#: src/tables/sales/SalesOrderLineItemTable.tsx:158 +#: src/tables/stock/StockItemTable.tsx:206 msgid "Stock Information" msgstr "" #: src/tables/bom/BomTable.tsx:285 -#: src/tables/build/BuildLineTable.tsx:248 +#: src/tables/build/BuildLineTable.tsx:409 msgid "Consumable item" msgstr "" @@ -5644,7 +6726,7 @@ msgstr "" #~ msgstr "Create BOM Item" #: src/tables/bom/BomTable.tsx:306 -#: src/tables/build/BuildLineTable.tsx:69 +#: src/tables/build/BuildLineTable.tsx:200 msgid "Show testable items" msgstr "" @@ -5657,11 +6739,12 @@ msgid "Show trackable items" msgstr "" #: src/tables/bom/BomTable.tsx:316 -#: src/tables/build/BuildLineTable.tsx:64 +#: src/tables/build/BuildLineTable.tsx:195 msgid "Show assembled items" msgstr "" #: src/tables/bom/BomTable.tsx:321 +#: src/tables/build/BuildLineTable.tsx:180 msgid "Show items with available stock" msgstr "" @@ -5705,7 +6788,7 @@ msgstr "" #: src/tables/bom/BomTable.tsx:345 #: src/tables/bom/UsedInTable.tsx:79 -#: src/tables/build/BuildLineTable.tsx:58 +#: src/tables/build/BuildLineTable.tsx:189 msgid "Optional" msgstr "" @@ -5723,7 +6806,7 @@ msgstr "" #~ msgstr "Bom item deleted" #: src/tables/bom/BomTable.tsx:350 -#: src/tables/build/BuildLineTable.tsx:53 +#: src/tables/build/BuildLineTable.tsx:184 msgid "Consumable" msgstr "" @@ -5749,12 +6832,12 @@ msgid "Show items with pricing" msgstr "" #: src/tables/bom/BomTable.tsx:378 -#: src/tables/bom/BomTable.tsx:511 +#: src/tables/bom/BomTable.tsx:512 msgid "Import BOM Data" msgstr "" #: src/tables/bom/BomTable.tsx:388 -#: src/tables/bom/BomTable.tsx:523 +#: src/tables/bom/BomTable.tsx:526 msgid "Add BOM Item" msgstr "" @@ -5780,7 +6863,7 @@ msgstr "" #: src/tables/bom/BomTable.tsx:423 #: src/tables/bom/BomTable.tsx:426 -#: src/tables/bom/BomTable.tsx:517 +#: src/tables/bom/BomTable.tsx:519 msgid "Validate BOM" msgstr "" @@ -5812,21 +6895,15 @@ msgstr "" msgid "Edit Substitutes" msgstr "" -#: src/tables/bom/BomTable.tsx:539 -#: src/tables/part/PartParameterTable.tsx:193 -#: src/tables/part/PartTestTemplateTable.tsx:252 -msgid "Part is Locked" -msgstr "" - -#: src/tables/bom/BomTable.tsx:544 +#: src/tables/bom/BomTable.tsx:547 msgid "Bill of materials cannot be edited, as the part is locked" msgstr "" #: src/tables/bom/UsedInTable.tsx:33 -#: src/tables/build/BuildLineTable.tsx:63 +#: src/tables/build/BuildLineTable.tsx:194 #: src/tables/part/ParametricPartTable.tsx:233 #: src/tables/part/PartTable.tsx:190 -#: src/tables/stock/StockItemTable.tsx:300 +#: src/tables/stock/StockItemTable.tsx:304 msgid "Assembly" msgstr "" @@ -5844,285 +6921,347 @@ msgstr "" msgid "Show trackable assemblies" msgstr "" -#: src/tables/build/BuildAllocatedStockTable.tsx:54 +#: src/tables/build/BuildAllocatedStockTable.tsx:56 msgid "Allocated to Output" msgstr "" -#: src/tables/build/BuildAllocatedStockTable.tsx:55 +#: src/tables/build/BuildAllocatedStockTable.tsx:57 msgid "Show items allocated to a build output" msgstr "" -#: src/tables/build/BuildAllocatedStockTable.tsx:76 -#: src/tables/part/PartPurchaseOrdersTable.tsx:125 -#: src/tables/sales/SalesOrderAllocationTable.tsx:62 +#: src/tables/build/BuildAllocatedStockTable.tsx:65 +#: src/tables/build/BuildOrderTable.tsx:159 +#: src/tables/part/PartParameterTable.tsx:212 +#: src/tables/part/PartPurchaseOrdersTable.tsx:138 +#: src/tables/sales/ReturnOrderTable.tsx:84 +#: src/tables/sales/SalesOrderAllocationTable.tsx:68 +#: src/tables/sales/SalesOrderTable.tsx:84 +#: src/tables/stock/StockItemTable.tsx:339 +msgid "Include Variants" +msgstr "" + +#: src/tables/build/BuildAllocatedStockTable.tsx:66 +#: src/tables/build/BuildOrderTable.tsx:160 +#: src/tables/part/PartPurchaseOrdersTable.tsx:139 +#: src/tables/sales/ReturnOrderTable.tsx:85 +#: src/tables/sales/SalesOrderAllocationTable.tsx:69 +#: src/tables/sales/SalesOrderTable.tsx:85 +msgid "Include orders for part variants" +msgstr "" + +#: src/tables/build/BuildAllocatedStockTable.tsx:89 +#: src/tables/part/PartPurchaseOrdersTable.tsx:131 +#: src/tables/sales/SalesOrderAllocationTable.tsx:93 msgid "Order Status" msgstr "" -#: src/tables/build/BuildAllocatedStockTable.tsx:96 -#: src/tables/sales/SalesOrderAllocationTable.tsx:75 +#: src/tables/build/BuildAllocatedStockTable.tsx:117 +#: src/tables/sales/SalesOrderAllocationTable.tsx:126 msgid "Allocated Quantity" msgstr "" -#: src/tables/build/BuildAllocatedStockTable.tsx:116 -#: src/tables/sales/SalesOrderAllocationTable.tsx:94 +#: src/tables/build/BuildAllocatedStockTable.tsx:137 +#: src/tables/sales/SalesOrderAllocationTable.tsx:120 msgid "Available Quantity" msgstr "" -#: src/tables/build/BuildAllocatedStockTable.tsx:126 -#: src/tables/build/BuildOrderTestTable.tsx:176 -#: src/tables/build/BuildOrderTestTable.tsx:200 -#: src/tables/build/BuildOutputTable.tsx:312 -msgid "Build Output" +#: src/tables/build/BuildAllocatedStockTable.tsx:164 +#: src/tables/build/BuildLineTable.tsx:513 +msgid "Edit Stock Allocation" msgstr "" -#: src/tables/build/BuildAllocatedStockTable.tsx:143 -msgid "Edit Build Item" -msgstr "" +#: src/tables/build/BuildAllocatedStockTable.tsx:164 +#~ msgid "Edit Build Item" +#~ msgstr "Edit Build Item" -#: src/tables/build/BuildAllocatedStockTable.tsx:153 -msgid "Delete Build Item" -msgstr "" +#: src/tables/build/BuildAllocatedStockTable.tsx:174 +#~ msgid "Delete Build Item" +#~ msgstr "Delete Build Item" -#: src/tables/build/BuildLineTable.tsx:43 -#: src/tables/stock/StockItemTable.tsx:305 -msgid "Allocated" -msgstr "" - -#: src/tables/build/BuildLineTable.tsx:44 -msgid "Show allocated lines" -msgstr "" - -#: src/tables/build/BuildLineTable.tsx:49 -msgid "Show lines with available stock" -msgstr "" - -#: src/tables/build/BuildLineTable.tsx:54 -msgid "Show consumable lines" +#: src/tables/build/BuildAllocatedStockTable.tsx:177 +#: src/tables/build/BuildLineTable.tsx:526 +msgid "Delete Stock Allocation" msgstr "" #: src/tables/build/BuildLineTable.tsx:59 +#~ msgid "Show lines with available stock" +#~ msgstr "Show lines with available stock" + +#: src/tables/build/BuildLineTable.tsx:175 +msgid "Show allocated lines" +msgstr "" + +#: src/tables/build/BuildLineTable.tsx:185 +msgid "Show consumable lines" +msgstr "" + +#: src/tables/build/BuildLineTable.tsx:190 msgid "Show optional lines" msgstr "" -#: src/tables/build/BuildLineTable.tsx:68 +#: src/tables/build/BuildLineTable.tsx:199 #: src/tables/part/PartTable.tsx:208 msgid "Testable" msgstr "" -#: src/tables/build/BuildLineTable.tsx:73 -#: src/tables/stock/StockItemTable.tsx:364 +#: src/tables/build/BuildLineTable.tsx:204 +#: src/tables/stock/StockItemTable.tsx:368 msgid "Tracked" msgstr "" -#: src/tables/build/BuildLineTable.tsx:74 +#: src/tables/build/BuildLineTable.tsx:205 msgid "Show tracked lines" msgstr "" -#: src/tables/build/BuildLineTable.tsx:108 -#: src/tables/sales/SalesOrderLineItemTable.tsx:133 +#: src/tables/build/BuildLineTable.tsx:239 +#: src/tables/sales/SalesOrderLineItemTable.tsx:141 msgid "In production" msgstr "" -#: src/tables/build/BuildLineTable.tsx:136 +#: src/tables/build/BuildLineTable.tsx:267 msgid "Insufficient stock" msgstr "" -#: src/tables/build/BuildLineTable.tsx:152 -#: src/tables/sales/SalesOrderLineItemTable.tsx:121 -#: src/tables/stock/StockItemTable.tsx:186 +#: src/tables/build/BuildLineTable.tsx:283 +#: src/tables/sales/SalesOrderLineItemTable.tsx:129 +#: src/tables/stock/StockItemTable.tsx:175 msgid "No stock available" msgstr "" -#: src/tables/build/BuildLineTable.tsx:201 +#: src/tables/build/BuildLineTable.tsx:355 msgid "Gets Inherited" msgstr "" -#: src/tables/build/BuildLineTable.tsx:210 +#: src/tables/build/BuildLineTable.tsx:366 msgid "Unit Quantity" msgstr "" -#: src/tables/build/BuildLineTable.tsx:267 -#: src/tables/sales/SalesOrderLineItemTable.tsx:230 +#: src/tables/build/BuildLineTable.tsx:381 +msgid "Required Quantity" +msgstr "" + +#: src/tables/build/BuildLineTable.tsx:432 +#: src/tables/sales/SalesOrderLineItemTable.tsx:254 msgid "Create Build Order" msgstr "" -#: src/tables/build/BuildLineTable.tsx:298 -msgid "Allocate Stock" +#: src/tables/build/BuildLineTable.tsx:460 +msgid "Auto allocation in progress" msgstr "" -#: src/tables/build/BuildLineTable.tsx:305 +#: src/tables/build/BuildLineTable.tsx:463 +#: src/tables/build/BuildLineTable.tsx:632 +msgid "Auto Allocate Stock" +msgstr "" + +#: src/tables/build/BuildLineTable.tsx:464 +msgid "Automatically allocate stock to this build according to the selected options" +msgstr "" + +#: src/tables/build/BuildLineTable.tsx:482 +#: src/tables/build/BuildLineTable.tsx:496 +#: src/tables/build/BuildLineTable.tsx:579 +#: src/tables/build/BuildLineTable.tsx:664 +#: src/tables/build/BuildOutputTable.tsx:314 +#: src/tables/build/BuildOutputTable.tsx:319 +msgid "Deallocate Stock" +msgstr "" + +#: src/tables/build/BuildLineTable.tsx:498 +msgid "Deallocate all untracked stock for this build order" +msgstr "" + +#: src/tables/build/BuildLineTable.tsx:500 +msgid "Deallocate stock from the selected line item" +msgstr "" + +#: src/tables/build/BuildLineTable.tsx:504 +msgid "Stock has been deallocated" +msgstr "" + +#: src/tables/build/BuildLineTable.tsx:589 msgid "Order Stock" msgstr "" -#: src/tables/build/BuildLineTable.tsx:312 +#: src/tables/build/BuildLineTable.tsx:596 msgid "Build Stock" msgstr "" -#: src/tables/build/BuildOrderTable.tsx:111 -msgid "Show active orders" +#: src/tables/build/BuildLineTable.tsx:610 +msgid "View Part" msgstr "" #: src/tables/build/BuildOrderTable.tsx:116 -msgid "Cascade" -msgstr "" +#~ msgid "Cascade" +#~ msgstr "Cascade" #: src/tables/build/BuildOrderTable.tsx:117 -msgid "Display recursive child orders" +#~ msgid "Display recursive child orders" +#~ msgstr "Display recursive child orders" + +#: src/tables/build/BuildOrderTable.tsx:121 +msgid "Show outstanding orders" msgstr "" -#: src/tables/build/BuildOrderTable.tsx:123 -#: src/tables/part/PartPurchaseOrdersTable.tsx:126 -#: src/tables/purchasing/PurchaseOrderTable.tsx:56 -#: src/tables/sales/ReturnOrderTable.tsx:47 -#: src/tables/sales/SalesOrderTable.tsx:54 +#: src/tables/build/BuildOrderTable.tsx:121 +#~ msgid "Show active orders" +#~ msgstr "Show active orders" + +#: src/tables/build/BuildOrderTable.tsx:122 +#~ msgid "Show overdue status" +#~ msgstr "Show overdue status" + +#: src/tables/build/BuildOrderTable.tsx:126 +#: src/tables/part/PartPurchaseOrdersTable.tsx:132 +#: src/tables/purchasing/PurchaseOrderTable.tsx:59 +#: src/tables/sales/ReturnOrderTable.tsx:57 +#: src/tables/sales/SalesOrderTable.tsx:57 msgid "Filter by order status" msgstr "" -#: src/tables/build/BuildOrderTable.tsx:130 -msgid "Show overdue status" -msgstr "" - -#: src/tables/build/BuildOrderTable.tsx:141 -#: src/tables/purchasing/PurchaseOrderTable.tsx:65 -#: src/tables/sales/ReturnOrderTable.tsx:56 -#: src/tables/sales/SalesOrderTable.tsx:63 +#: src/tables/build/BuildOrderTable.tsx:136 +#: src/tables/purchasing/PurchaseOrderTable.tsx:70 +#: src/tables/sales/ReturnOrderTable.tsx:68 +#: src/tables/sales/SalesOrderTable.tsx:68 msgid "Filter by project code" msgstr "" -#: src/tables/build/BuildOrderTable.tsx:146 -#: src/tables/purchasing/PurchaseOrderTable.tsx:70 -#: src/tables/sales/ReturnOrderTable.tsx:61 -#: src/tables/sales/SalesOrderTable.tsx:68 -msgid "Has Project Code" -msgstr "" - -#: src/tables/build/BuildOrderTable.tsx:147 +#: src/tables/build/BuildOrderTable.tsx:139 #: src/tables/purchasing/PurchaseOrderTable.tsx:71 #: src/tables/sales/ReturnOrderTable.tsx:62 #: src/tables/sales/SalesOrderTable.tsx:69 -msgid "Filter by whether the purchase order has a project code" -msgstr "" +#~ msgid "Filter by whether the purchase order has a project code" +#~ msgstr "Filter by whether the purchase order has a project code" -#: src/tables/build/BuildOrderTable.tsx:152 +#: src/tables/build/BuildOrderTable.tsx:143 msgid "Filter by user who issued this order" msgstr "" -#: src/tables/build/BuildOrderTable.tsx:158 -#: src/tables/purchasing/PurchaseOrderTable.tsx:76 -#: src/tables/sales/ReturnOrderTable.tsx:67 -#: src/tables/sales/SalesOrderTable.tsx:74 +#: src/tables/build/BuildOrderTable.tsx:149 +#: src/tables/purchasing/PurchaseOrderTable.tsx:77 +#: src/tables/sales/ReturnOrderTable.tsx:75 +#: src/tables/sales/SalesOrderTable.tsx:75 msgid "Filter by responsible owner" msgstr "" -#: src/tables/build/BuildOrderTestTable.tsx:75 -#: src/tables/build/BuildOrderTestTable.tsx:111 -#: src/tables/stock/StockItemTestResultTable.tsx:257 -#: src/tables/stock/StockItemTestResultTable.tsx:329 -#: src/tables/stock/StockItemTestResultTable.tsx:384 +#: src/tables/build/BuildOrderTestTable.tsx:76 +#: src/tables/build/BuildOrderTestTable.tsx:112 +#: src/tables/stock/StockItemTestResultTable.tsx:275 +#: src/tables/stock/StockItemTestResultTable.tsx:347 +#: src/tables/stock/StockItemTestResultTable.tsx:403 msgid "Add Test Result" msgstr "" -#: src/tables/build/BuildOrderTestTable.tsx:82 -#: src/tables/stock/StockItemTestResultTable.tsx:259 +#: src/tables/build/BuildOrderTestTable.tsx:83 +#: src/tables/stock/StockItemTestResultTable.tsx:277 msgid "Test result added" msgstr "" -#: src/tables/build/BuildOrderTestTable.tsx:110 -#: src/tables/stock/StockItemTestResultTable.tsx:174 +#: src/tables/build/BuildOrderTestTable.tsx:111 +#: src/tables/stock/StockItemTestResultTable.tsx:180 msgid "No Result" msgstr "" -#: src/tables/build/BuildOrderTestTable.tsx:220 +#: src/tables/build/BuildOrderTestTable.tsx:221 msgid "Show build outputs currently in production" msgstr "" +#: src/tables/build/BuildOutputTable.tsx:76 +msgid "Build Output Stock Allocation" +msgstr "" + #: src/tables/build/BuildOutputTable.tsx:161 #~ msgid "Delete build output" #~ msgstr "Delete build output" -#: src/tables/build/BuildOutputTable.tsx:173 -#: src/tables/build/BuildOutputTable.tsx:211 +#: src/tables/build/BuildOutputTable.tsx:258 +#: src/tables/build/BuildOutputTable.tsx:374 msgid "Add Build Output" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:216 +#: src/tables/build/BuildOutputTable.tsx:304 +#~ msgid "Edit build output" +#~ msgstr "Edit build output" + +#: src/tables/build/BuildOutputTable.tsx:306 +#: src/tables/build/BuildOutputTable.tsx:417 +msgid "Edit Build Output" +msgstr "" + +#: src/tables/build/BuildOutputTable.tsx:321 +msgid "This action will deallocate all stock from the selected build output" +msgstr "" + +#: src/tables/build/BuildOutputTable.tsx:341 msgid "Complete selected outputs" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:226 +#: src/tables/build/BuildOutputTable.tsx:352 msgid "Scrap selected outputs" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:236 +#: src/tables/build/BuildOutputTable.tsx:363 msgid "Cancel selected outputs" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:252 +#: src/tables/build/BuildOutputTable.tsx:385 msgid "Allocate" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:253 +#: src/tables/build/BuildOutputTable.tsx:386 msgid "Allocate stock to build output" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:259 +#: src/tables/build/BuildOutputTable.tsx:396 msgid "Deallocate" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:260 +#: src/tables/build/BuildOutputTable.tsx:397 msgid "Deallocate stock from build output" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:267 +#: src/tables/build/BuildOutputTable.tsx:408 msgid "Complete build output" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:276 +#: src/tables/build/BuildOutputTable.tsx:424 msgid "Scrap" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:277 +#: src/tables/build/BuildOutputTable.tsx:425 msgid "Scrap build output" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:280 -#~ msgid "Allocated Items" -#~ msgstr "Allocated Items" - -#: src/tables/build/BuildOutputTable.tsx:287 +#: src/tables/build/BuildOutputTable.tsx:435 msgid "Cancel build output" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:325 -msgid "Batch" -msgstr "" - -#: src/tables/build/BuildOutputTable.tsx:340 +#: src/tables/build/BuildOutputTable.tsx:488 msgid "Allocated Lines" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:355 +#: src/tables/build/BuildOutputTable.tsx:503 msgid "Required Tests" msgstr "" -#: src/tables/company/AddressTable.tsx:121 -#: src/tables/company/AddressTable.tsx:185 +#: src/tables/company/AddressTable.tsx:118 +#: src/tables/company/AddressTable.tsx:183 msgid "Add Address" msgstr "" -#: src/tables/company/AddressTable.tsx:126 +#: src/tables/company/AddressTable.tsx:123 msgid "Address created" msgstr "" -#: src/tables/company/AddressTable.tsx:135 +#: src/tables/company/AddressTable.tsx:132 msgid "Edit Address" msgstr "" -#: src/tables/company/AddressTable.tsx:143 +#: src/tables/company/AddressTable.tsx:140 msgid "Delete Address" msgstr "" -#: src/tables/company/AddressTable.tsx:144 +#: src/tables/company/AddressTable.tsx:141 msgid "Are you sure you want to delete this address?" msgstr "" @@ -6130,24 +7269,24 @@ msgstr "" #~ msgid "New Company" #~ msgstr "New Company" -#: src/tables/company/CompanyTable.tsx:74 -#: src/tables/company/CompanyTable.tsx:123 +#: src/tables/company/CompanyTable.tsx:75 +#: src/tables/company/CompanyTable.tsx:125 msgid "Add Company" msgstr "" -#: src/tables/company/CompanyTable.tsx:96 +#: src/tables/company/CompanyTable.tsx:97 msgid "Show active companies" msgstr "" -#: src/tables/company/CompanyTable.tsx:101 +#: src/tables/company/CompanyTable.tsx:102 msgid "Show companies which are suppliers" msgstr "" -#: src/tables/company/CompanyTable.tsx:106 +#: src/tables/company/CompanyTable.tsx:107 msgid "Show companies which are manufacturers" msgstr "" -#: src/tables/company/CompanyTable.tsx:111 +#: src/tables/company/CompanyTable.tsx:112 msgid "Show companies which are customers" msgstr "" @@ -6163,96 +7302,99 @@ msgstr "" msgid "Delete Contact" msgstr "" -#: src/tables/company/ContactTable.tsx:129 +#: src/tables/company/ContactTable.tsx:130 msgid "Add contact" msgstr "" -#: src/tables/general/AttachmentTable.tsx:130 +#: src/tables/general/AttachmentTable.tsx:135 msgid "File uploaded" msgstr "" -#: src/tables/general/AttachmentTable.tsx:131 +#: src/tables/general/AttachmentTable.tsx:136 msgid "File {0} uploaded successfully" msgstr "" -#: src/tables/general/AttachmentTable.tsx:142 +#: src/tables/general/AttachmentTable.tsx:147 msgid "Upload Error" msgstr "" -#: src/tables/general/AttachmentTable.tsx:143 +#: src/tables/general/AttachmentTable.tsx:148 msgid "File could not be uploaded" msgstr "" -#: src/tables/general/AttachmentTable.tsx:191 +#: src/tables/general/AttachmentTable.tsx:196 msgid "Upload Attachment" msgstr "" -#: src/tables/general/AttachmentTable.tsx:201 +#: src/tables/general/AttachmentTable.tsx:206 msgid "Edit Attachment" msgstr "" -#: src/tables/general/AttachmentTable.tsx:215 +#: src/tables/general/AttachmentTable.tsx:220 msgid "Delete Attachment" msgstr "" -#: src/tables/general/AttachmentTable.tsx:225 +#: src/tables/general/AttachmentTable.tsx:230 msgid "Is Link" msgstr "" -#: src/tables/general/AttachmentTable.tsx:226 +#: src/tables/general/AttachmentTable.tsx:231 msgid "Show link attachments" msgstr "" -#: src/tables/general/AttachmentTable.tsx:230 +#: src/tables/general/AttachmentTable.tsx:235 msgid "Is File" msgstr "" -#: src/tables/general/AttachmentTable.tsx:231 +#: src/tables/general/AttachmentTable.tsx:236 msgid "Show file attachments" msgstr "" -#: src/tables/general/AttachmentTable.tsx:240 +#: src/tables/general/AttachmentTable.tsx:245 msgid "Add attachment" msgstr "" -#: src/tables/general/AttachmentTable.tsx:251 -msgid "Add external link" -msgstr "" - #: src/tables/general/AttachmentTable.tsx:254 #~ msgid "Upload attachment" #~ msgstr "Upload attachment" -#: src/tables/general/AttachmentTable.tsx:299 +#: src/tables/general/AttachmentTable.tsx:256 +msgid "Add external link" +msgstr "" + +#: src/tables/general/AttachmentTable.tsx:304 msgid "No attachments found" msgstr "" -#: src/tables/general/AttachmentTable.tsx:337 +#: src/tables/general/AttachmentTable.tsx:343 msgid "Drag attachment file here to upload" msgstr "" #: src/tables/general/ExtraLineItemTable.tsx:86 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:251 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:60 -#: src/tables/sales/SalesOrderLineItemTable.tsx:196 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:263 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:362 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:72 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:168 +#: src/tables/sales/SalesOrderLineItemTable.tsx:206 +#: src/tables/sales/SalesOrderLineItemTable.tsx:291 msgid "Add Line Item" msgstr "" #: src/tables/general/ExtraLineItemTable.tsx:98 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:271 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:72 -#: src/tables/sales/SalesOrderLineItemTable.tsx:214 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:283 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:84 +#: src/tables/sales/SalesOrderLineItemTable.tsx:224 msgid "Edit Line Item" msgstr "" #: src/tables/general/ExtraLineItemTable.tsx:106 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:279 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:80 -#: src/tables/sales/SalesOrderLineItemTable.tsx:222 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:291 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:92 +#: src/tables/sales/SalesOrderLineItemTable.tsx:232 msgid "Delete Line Item" msgstr "" -#: src/tables/general/ExtraLineItemTable.tsx:142 +#: src/tables/general/ExtraLineItemTable.tsx:143 msgid "Add Extra Line Item" msgstr "" @@ -6261,12 +7403,12 @@ msgid "Machine restarted" msgstr "" #: src/tables/machine/MachineListTable.tsx:212 -#: src/tables/machine/MachineListTable.tsx:263 +#: src/tables/machine/MachineListTable.tsx:261 msgid "Edit machine" msgstr "" #: src/tables/machine/MachineListTable.tsx:226 -#: src/tables/machine/MachineListTable.tsx:267 +#: src/tables/machine/MachineListTable.tsx:265 msgid "Delete machine" msgstr "" @@ -6278,51 +7420,50 @@ msgstr "" msgid "Are you sure you want to remove the machine \"{0}\"?" msgstr "" -#: src/tables/machine/MachineListTable.tsx:255 -#: src/tables/machine/MachineListTable.tsx:432 +#: src/tables/machine/MachineListTable.tsx:254 +#: src/tables/machine/MachineListTable.tsx:442 msgid "Restart required" msgstr "" -#: src/tables/machine/MachineListTable.tsx:259 +#: src/tables/machine/MachineListTable.tsx:258 msgid "Machine Actions" msgstr "" -#: src/tables/machine/MachineListTable.tsx:272 +#: src/tables/machine/MachineListTable.tsx:270 msgid "Restart" msgstr "" -#: src/tables/machine/MachineListTable.tsx:274 +#: src/tables/machine/MachineListTable.tsx:272 msgid "Restart machine" msgstr "" -#: src/tables/machine/MachineListTable.tsx:276 +#: src/tables/machine/MachineListTable.tsx:274 msgid "manual restart required" msgstr "" +#: src/tables/machine/MachineListTable.tsx:291 +#~ msgid "Machine information" +#~ msgstr "Machine information" + #: src/tables/machine/MachineListTable.tsx:292 -msgid "Machine information" +msgid "Machine Information" msgstr "" -#: src/tables/machine/MachineListTable.tsx:303 -#: src/tables/machine/MachineListTable.tsx:599 +#: src/tables/machine/MachineListTable.tsx:302 +#: src/tables/machine/MachineListTable.tsx:610 msgid "Machine Type" msgstr "" -#: src/tables/machine/MachineListTable.tsx:316 +#: src/tables/machine/MachineListTable.tsx:315 msgid "Machine Driver" msgstr "" -#: src/tables/machine/MachineListTable.tsx:329 +#: src/tables/machine/MachineListTable.tsx:330 msgid "Initialized" msgstr "" -#: src/tables/machine/MachineListTable.tsx:350 -#: src/tables/machine/MachineTypeTable.tsx:261 -msgid "Errors" -msgstr "" - -#: src/tables/machine/MachineListTable.tsx:358 -#: src/tables/machine/MachineTypeTable.tsx:269 +#: src/tables/machine/MachineListTable.tsx:359 +#: src/tables/machine/MachineTypeTable.tsx:290 msgid "No errors reported" msgstr "" @@ -6330,7 +7471,7 @@ msgstr "" msgid "Machine Settings" msgstr "" -#: src/tables/machine/MachineListTable.tsx:389 +#: src/tables/machine/MachineListTable.tsx:394 msgid "Driver Settings" msgstr "" @@ -6338,86 +7479,109 @@ msgstr "" #~ msgid "Create machine" #~ msgstr "Create machine" -#: src/tables/machine/MachineListTable.tsx:506 +#: src/tables/machine/MachineListTable.tsx:516 +#: src/tables/machine/MachineListTable.tsx:558 msgid "Add machine" msgstr "" #: src/tables/machine/MachineListTable.tsx:561 -msgid "Machine detail" +#~ msgid "Machine detail" +#~ msgstr "Machine detail" + +#: src/tables/machine/MachineListTable.tsx:572 +msgid "Machine Detail" msgstr "" -#: src/tables/machine/MachineListTable.tsx:608 +#: src/tables/machine/MachineListTable.tsx:619 msgid "Driver" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:73 +#: src/tables/machine/MachineTypeTable.tsx:78 msgid "Builtin driver" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:89 +#: src/tables/machine/MachineTypeTable.tsx:96 +msgid "Not Found" +msgstr "" + +#: src/tables/machine/MachineTypeTable.tsx:99 msgid "Machine type not found." msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:97 -msgid "Machine type information" +#: src/tables/machine/MachineTypeTable.tsx:99 +#~ msgid "Machine type information" +#~ msgstr "Machine type information" + +#: src/tables/machine/MachineTypeTable.tsx:109 +msgid "Machine Type Information" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:110 -#: src/tables/machine/MachineTypeTable.tsx:217 +#: src/tables/machine/MachineTypeTable.tsx:124 +#: src/tables/machine/MachineTypeTable.tsx:238 msgid "Slug" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:118 -#: src/tables/machine/MachineTypeTable.tsx:238 +#: src/tables/machine/MachineTypeTable.tsx:135 +#: src/tables/machine/MachineTypeTable.tsx:259 msgid "Provider plugin" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:130 -#: src/tables/machine/MachineTypeTable.tsx:250 +#: src/tables/machine/MachineTypeTable.tsx:147 +#: src/tables/machine/MachineTypeTable.tsx:271 msgid "Provider file" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:135 -#: src/tables/machine/MachineTypeTable.tsx:255 -#: src/tables/plugin/PluginListTable.tsx:180 -#: src/tables/plugin/PluginListTable.tsx:568 -msgid "Builtin" +#: src/tables/machine/MachineTypeTable.tsx:148 +#~ msgid "Available drivers" +#~ msgstr "Available drivers" + +#: src/tables/machine/MachineTypeTable.tsx:162 +msgid "Available Drivers" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:146 -msgid "Available drivers" -msgstr "" - -#: src/tables/machine/MachineTypeTable.tsx:196 +#: src/tables/machine/MachineTypeTable.tsx:217 msgid "Machine driver not found." msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:204 +#: src/tables/machine/MachineTypeTable.tsx:225 msgid "Machine driver information" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:224 +#: src/tables/machine/MachineTypeTable.tsx:245 msgid "Machine type" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:327 +#: src/tables/machine/MachineTypeTable.tsx:338 +#~ msgid "Machine type detail" +#~ msgstr "Machine type detail" + +#: src/tables/machine/MachineTypeTable.tsx:348 msgid "Builtin type" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:336 -msgid "Machine type detail" +#: src/tables/machine/MachineTypeTable.tsx:348 +#~ msgid "Machine driver detail" +#~ msgstr "Machine driver detail" + +#: src/tables/machine/MachineTypeTable.tsx:357 +msgid "Machine Type Detail" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:346 -msgid "Machine driver detail" +#: src/tables/machine/MachineTypeTable.tsx:367 +msgid "Machine Driver Detail" msgstr "" #: src/tables/notifications/NotificationsTable.tsx:26 msgid "Age" msgstr "" +#: src/tables/notifications/NotificationsTable.tsx:36 +msgid "Notification" +msgstr "" + #: src/tables/notifications/NotificationsTable.tsx:40 #: src/tables/plugin/PluginErrorTable.tsx:37 +#: src/tables/settings/ErrorTable.tsx:50 msgid "Message" msgstr "" @@ -6451,33 +7615,32 @@ msgstr "" msgid "Show assembly parts" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:68 +#: src/tables/part/PartCategoryTable.tsx:48 +msgid "You are subscribed to notifications for this category" +msgstr "" + +#: src/tables/part/PartCategoryTable.tsx:80 #: src/tables/part/PartTable.tsx:196 msgid "Include Subcategories" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:69 +#: src/tables/part/PartCategoryTable.tsx:81 msgid "Include subcategories in results" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:74 +#: src/tables/part/PartCategoryTable.tsx:86 msgid "Show structural categories" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:78 -#: src/tables/part/PartTable.tsx:294 -msgid "Subscribed" -msgstr "" - -#: src/tables/part/PartCategoryTable.tsx:79 +#: src/tables/part/PartCategoryTable.tsx:91 msgid "Show categories to which the user is subscribed" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:86 +#: src/tables/part/PartCategoryTable.tsx:100 msgid "New Part Category" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:112 +#: src/tables/part/PartCategoryTable.tsx:129 msgid "Add Part Category" msgstr "" @@ -6523,11 +7686,6 @@ msgstr "" msgid "Part parameters cannot be edited, as the part is locked" msgstr "" -#: src/tables/part/PartParameterTable.tsx:212 -#: src/tables/stock/StockItemTable.tsx:335 -msgid "Include Variants" -msgstr "" - #: src/tables/part/PartParameterTemplateTable.tsx:31 msgid "Checkbox" msgstr "" @@ -6554,6 +7712,7 @@ msgid "Show templates with units" msgstr "" #: src/tables/part/PartParameterTemplateTable.tsx:85 +#: src/tables/part/PartParameterTemplateTable.tsx:141 msgid "Add Parameter Template" msgstr "" @@ -6566,23 +7725,19 @@ msgid "Delete Parameter Template" msgstr "" #: src/tables/part/PartParameterTemplateTable.tsx:141 -msgid "Add parameter template" -msgstr "" +#~ msgid "Add parameter template" +#~ msgstr "Add parameter template" -#: src/tables/part/PartPurchaseOrdersTable.tsx:77 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:162 +#: src/tables/part/PartPurchaseOrdersTable.tsx:78 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:168 msgid "Total Quantity" msgstr "" -#: src/tables/part/PartPurchaseOrdersTable.tsx:115 -msgid "Pending" -msgstr "" - -#: src/tables/part/PartPurchaseOrdersTable.tsx:116 +#: src/tables/part/PartPurchaseOrdersTable.tsx:122 msgid "Show pending orders" msgstr "" -#: src/tables/part/PartPurchaseOrdersTable.tsx:121 +#: src/tables/part/PartPurchaseOrdersTable.tsx:127 msgid "Show received items" msgstr "" @@ -6728,22 +7883,13 @@ msgstr "" msgid "Results" msgstr "" -#: src/tables/part/PartTestTemplateTable.tsx:76 -msgid "No Results" -msgstr "" - -#: src/tables/part/PartTestTemplateTable.tsx:106 -#: src/tables/stock/StockItemTestResultTable.tsx:365 -msgid "Required" -msgstr "" - #: src/tables/part/PartTestTemplateTable.tsx:107 msgid "Show required tests" msgstr "" #: src/tables/part/PartTestTemplateTable.tsx:111 -#: src/tables/settings/TemplateTable.tsx:167 -#: src/tables/settings/TemplateTable.tsx:283 +#: src/tables/settings/TemplateTable.tsx:247 +#: src/tables/settings/TemplateTable.tsx:363 msgid "Enabled" msgstr "" @@ -6784,7 +7930,7 @@ msgid "Show tests which have recorded results" msgstr "" #: src/tables/part/PartTestTemplateTable.tsx:154 -#: src/tables/part/PartTestTemplateTable.tsx:237 +#: src/tables/part/PartTestTemplateTable.tsx:238 msgid "Add Test Template" msgstr "" @@ -6808,7 +7954,7 @@ msgstr "" msgid "View Parent Part" msgstr "" -#: src/tables/part/PartTestTemplateTable.tsx:257 +#: src/tables/part/PartTestTemplateTable.tsx:258 msgid "Part templates cannot be edited, as the part is locked" msgstr "" @@ -6836,28 +7982,49 @@ msgstr "" msgid "Show trackable variants" msgstr "" -#: src/tables/part/RelatedPartTable.tsx:84 +#: src/tables/part/RelatedPartTable.tsx:86 +#: src/tables/part/RelatedPartTable.tsx:109 msgid "Add Related Part" msgstr "" -#: src/tables/part/RelatedPartTable.tsx:99 +#: src/tables/part/RelatedPartTable.tsx:101 msgid "Delete Related Part" msgstr "" -#: src/tables/part/RelatedPartTable.tsx:106 -msgid "Add related part" -msgstr "" +#: src/tables/part/RelatedPartTable.tsx:109 +#~ msgid "Add related part" +#~ msgstr "Add related part" #: src/tables/plugin/PluginErrorTable.tsx:29 msgid "Stage" msgstr "" -#: src/tables/plugin/PluginListTable.tsx:95 -msgid "Plugin with key {pluginKey} not found" +#: src/tables/plugin/PluginListTable.tsx:42 +msgid "Plugin is active" msgstr "" +#: src/tables/plugin/PluginListTable.tsx:48 +msgid "Plugin is inactive" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:55 +msgid "Plugin is not installed" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:76 +msgid "Plugin" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:95 +#~ msgid "Plugin with key {pluginKey} not found" +#~ msgstr "Plugin with key {pluginKey} not found" + #: src/tables/plugin/PluginListTable.tsx:97 -msgid "An error occurred while fetching plugin details" +#~ msgid "An error occurred while fetching plugin details" +#~ msgstr "An error occurred while fetching plugin details" + +#: src/tables/plugin/PluginListTable.tsx:109 +msgid "Description not available" msgstr "" #: src/tables/plugin/PluginListTable.tsx:113 @@ -6865,12 +8032,8 @@ msgstr "" #~ msgstr "Plugin with id {id} not found" #: src/tables/plugin/PluginListTable.tsx:122 -msgid "Plugin information" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:134 -msgid "Author" -msgstr "" +#~ msgid "Plugin information" +#~ msgstr "Plugin information" #: src/tables/plugin/PluginListTable.tsx:134 #~ msgid "Plugin Actions" @@ -6881,79 +8044,124 @@ msgstr "" #~ msgid "Edit plugin" #~ msgstr "Edit plugin" +#: src/tables/plugin/PluginListTable.tsx:144 +msgid "Confirm plugin activation" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:145 +msgid "Confirm plugin deactivation" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:150 +msgid "The selected plugin will be activated" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:151 +msgid "The selected plugin will be deactivated" +msgstr "" + #: src/tables/plugin/PluginListTable.tsx:152 #: src/tables/plugin/PluginListTable.tsx:153 #~ msgid "Reload" #~ msgstr "Reload" -#: src/tables/plugin/PluginListTable.tsx:154 -msgid "Plugin is not active" -msgstr "" - #: src/tables/plugin/PluginListTable.tsx:163 -msgid "Package information" -msgstr "" +#~ msgid "Package information" +#~ msgstr "Package information" #: src/tables/plugin/PluginListTable.tsx:169 -msgid "Package Name" +msgid "Deactivate" msgstr "" -#: src/tables/plugin/PluginListTable.tsx:175 -msgid "Installation Path" +#: src/tables/plugin/PluginListTable.tsx:183 +msgid "Activate" msgstr "" -#: src/tables/plugin/PluginListTable.tsx:185 -msgid "Package" +#: src/tables/plugin/PluginListTable.tsx:184 +msgid "Activate selected plugin" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:196 +msgid "Update selected plugin" msgstr "" #: src/tables/plugin/PluginListTable.tsx:197 -msgid "Plugin settings" -msgstr "" +#~ msgid "Plugin settings" +#~ msgstr "Plugin settings" #: src/tables/plugin/PluginListTable.tsx:214 -msgid "Plugin is active" +#: src/tables/stock/InstalledItemsTable.tsx:107 +msgid "Uninstall" msgstr "" -#: src/tables/plugin/PluginListTable.tsx:220 -msgid "Plugin is inactive" +#: src/tables/plugin/PluginListTable.tsx:215 +msgid "Uninstall selected plugin" msgstr "" -#: src/tables/plugin/PluginListTable.tsx:227 -msgid "Plugin is not installed" +#: src/tables/plugin/PluginListTable.tsx:233 +msgid "Delete selected plugin configuration" msgstr "" -#: src/tables/plugin/PluginListTable.tsx:253 -msgid "Plugin" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:287 -msgid "Description not available" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:319 -msgid "Confirm plugin activation" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:320 -msgid "Confirm plugin deactivation" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:325 -msgid "The selected plugin will be activated" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:326 -msgid "The selected plugin will be deactivated" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:334 +#: src/tables/plugin/PluginListTable.tsx:249 msgid "Activate Plugin" msgstr "" +#: src/tables/plugin/PluginListTable.tsx:270 +msgid "Install plugin" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:283 +msgid "Install" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:284 +msgid "Plugin installed successfully" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:289 +msgid "Uninstall Plugin" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:301 +msgid "Confirm plugin uninstall" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:304 +msgid "The selected plugin will be uninstalled." +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:308 +#~ msgid "This action cannot be undone." +#~ msgstr "This action cannot be undone." + +#: src/tables/plugin/PluginListTable.tsx:309 +msgid "Plugin uninstalled successfully" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:317 +msgid "Delete Plugin" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:318 +msgid "Deleting this plugin configuration will remove all associated settings and data. Are you sure you want to delete this plugin?" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:331 +msgid "Plugins reloaded" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:332 +msgid "Plugins were reloaded successfully" +msgstr "" + #: src/tables/plugin/PluginListTable.tsx:338 #~ msgid "Deactivate Plugin" #~ msgstr "Deactivate Plugin" +#: src/tables/plugin/PluginListTable.tsx:350 +msgid "Reload Plugins" +msgstr "" + #: src/tables/plugin/PluginListTable.tsx:354 #~ msgid "The following plugin will be activated" #~ msgstr "The following plugin will be activated" @@ -6962,16 +8170,16 @@ msgstr "" #~ msgid "The following plugin will be deactivated" #~ msgstr "The following plugin will be deactivated" -#: src/tables/plugin/PluginListTable.tsx:362 -msgid "Deactivate" +#: src/tables/plugin/PluginListTable.tsx:357 +msgid "Install Plugin" msgstr "" #: src/tables/plugin/PluginListTable.tsx:366 #~ msgid "Confirm" #~ msgstr "Confirm" -#: src/tables/plugin/PluginListTable.tsx:373 -msgid "Activate" +#: src/tables/plugin/PluginListTable.tsx:374 +msgid "Plugin Detail" msgstr "" #: src/tables/plugin/PluginListTable.tsx:376 @@ -6998,76 +8206,12 @@ msgstr "" #~ msgid "Error updating plugin" #~ msgstr "Error updating plugin" -#: src/tables/plugin/PluginListTable.tsx:406 -msgid "Uninstall" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:438 -msgid "Install plugin" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:451 -msgid "Install" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:452 -msgid "Plugin installed successfully" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:457 -msgid "Uninstall Plugin" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:469 -msgid "Confirm plugin uninstall" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:472 -msgid "The selected plugin will be uninstalled." -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:473 -msgid "This action cannot be undone." -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:477 -msgid "Plugin uninstalled successfully" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:484 -msgid "Delete Plugin" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:485 -msgid "Deleting this plugin configuration will remove all associated settings and data. Are you sure you want to delete this plugin?" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:498 -msgid "Plugins reloaded" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:499 -msgid "Plugins were reloaded successfully" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:515 -msgid "Reload Plugins" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:524 -msgid "Install Plugin" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:544 -msgid "Plugin Detail" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:573 +#: src/tables/plugin/PluginListTable.tsx:411 msgid "Sample" msgstr "" -#: src/tables/plugin/PluginListTable.tsx:578 -#: src/tables/stock/StockItemTable.tsx:340 +#: src/tables/plugin/PluginListTable.tsx:416 +#: src/tables/stock/StockItemTable.tsx:344 msgid "Installed" msgstr "" @@ -7116,82 +8260,78 @@ msgstr "" #~ msgid "Are you sure you want to remove this manufacturer part?" #~ msgstr "Are you sure you want to remove this manufacturer part?" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:102 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:339 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:103 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:356 msgid "Import Line Items" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:135 -msgid "Part Description" -msgstr "" - -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:201 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:207 msgid "Supplier Code" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:208 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:214 msgid "Supplier Link" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:215 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:220 msgid "Manufacturer Code" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:229 -msgid "Destination" +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:248 +msgid "Show line items which have been received" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:300 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:316 msgid "Receive line item" msgstr "" #: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:344 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:142 -#: src/tables/sales/SalesOrderLineItemTable.tsx:240 -msgid "Add line item" -msgstr "" +#: src/tables/sales/ReturnOrderLineItemTable.tsx:160 +#: src/tables/sales/SalesOrderLineItemTable.tsx:258 +#~ msgid "Add line item" +#~ msgstr "Add line item" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:354 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:373 msgid "Receive items" msgstr "" -#: src/tables/purchasing/SupplierPartTable.tsx:93 +#: src/tables/purchasing/SupplierPartTable.tsx:95 msgid "MPN" msgstr "" -#: src/tables/purchasing/SupplierPartTable.tsx:122 +#: src/tables/purchasing/SupplierPartTable.tsx:124 msgid "Base units" msgstr "" -#: src/tables/purchasing/SupplierPartTable.tsx:170 +#: src/tables/purchasing/SupplierPartTable.tsx:172 msgid "Supplier part created" msgstr "" -#: src/tables/purchasing/SupplierPartTable.tsx:176 +#: src/tables/purchasing/SupplierPartTable.tsx:179 msgid "Add supplier part" msgstr "" -#: src/tables/purchasing/SupplierPartTable.tsx:188 +#: src/tables/purchasing/SupplierPartTable.tsx:191 msgid "Show active supplier parts" msgstr "" -#: src/tables/purchasing/SupplierPartTable.tsx:192 -msgid "Active Part" -msgstr "" - -#: src/tables/purchasing/SupplierPartTable.tsx:193 -msgid "Show active internal parts" -msgstr "" - #: src/tables/purchasing/SupplierPartTable.tsx:193 #~ msgid "Supplier part updated" #~ msgstr "Supplier part updated" -#: src/tables/purchasing/SupplierPartTable.tsx:197 +#: src/tables/purchasing/SupplierPartTable.tsx:195 +msgid "Active Part" +msgstr "" + +#: src/tables/purchasing/SupplierPartTable.tsx:196 +msgid "Show active internal parts" +msgstr "" + +#: src/tables/purchasing/SupplierPartTable.tsx:200 msgid "Active Supplier" msgstr "" -#: src/tables/purchasing/SupplierPartTable.tsx:198 +#: src/tables/purchasing/SupplierPartTable.tsx:201 msgid "Show active suppliers" msgstr "" @@ -7203,99 +8343,187 @@ msgstr "" #~ msgid "Are you sure you want to remove this supplier part?" #~ msgstr "Are you sure you want to remove this supplier part?" -#: src/tables/sales/ReturnOrderLineItemTable.tsx:114 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:139 msgid "Received Date" msgstr "" -#: src/tables/sales/ReturnOrderLineItemTable.tsx:128 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:153 msgid "Show items which have been received" msgstr "" -#: src/tables/sales/ReturnOrderLineItemTable.tsx:133 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:158 msgid "Filter by line item status" msgstr "" -#: src/tables/sales/ReturnOrderLineItemTable.tsx:158 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:176 +msgid "Receive selected items" +msgstr "" + +#: src/tables/sales/ReturnOrderLineItemTable.tsx:205 msgid "Receive Item" msgstr "" -#: src/tables/sales/SalesOrderLineItemTable.tsx:262 -msgid "Allocate stock" +#: src/tables/sales/SalesOrderAllocationTable.tsx:60 +msgid "Show outstanding allocations" msgstr "" -#: src/tables/sales/SalesOrderLineItemTable.tsx:272 +#: src/tables/sales/SalesOrderAllocationTable.tsx:168 +#: src/tables/sales/SalesOrderAllocationTable.tsx:190 +msgid "Edit Allocation" +msgstr "" + +#: src/tables/sales/SalesOrderAllocationTable.tsx:175 +#: src/tables/sales/SalesOrderAllocationTable.tsx:197 +msgid "Delete Allocation" +msgstr "" + +#: src/tables/sales/SalesOrderLineItemTable.tsx:244 +msgid "Allocate Serial Numbers" +msgstr "" + +#: src/tables/sales/SalesOrderLineItemTable.tsx:277 +msgid "Show lines which are fully allocated" +msgstr "" + +#: src/tables/sales/SalesOrderLineItemTable.tsx:280 +#~ msgid "Allocate stock" +#~ msgstr "Allocate stock" + +#: src/tables/sales/SalesOrderLineItemTable.tsx:282 +msgid "Show lines which are completed" +msgstr "" + +#: src/tables/sales/SalesOrderLineItemTable.tsx:291 +#~ msgid "Allocate Serials" +#~ msgstr "Allocate Serials" + +#: src/tables/sales/SalesOrderLineItemTable.tsx:340 +msgid "Allocate serials" +msgstr "" + +#: src/tables/sales/SalesOrderLineItemTable.tsx:356 msgid "Build stock" msgstr "" -#: src/tables/sales/SalesOrderLineItemTable.tsx:289 -#: src/tables/stock/StockItemTable.tsx:507 +#: src/tables/sales/SalesOrderLineItemTable.tsx:373 +#: src/tables/stock/StockItemTable.tsx:512 msgid "Order stock" msgstr "" -#: src/tables/sales/SalesOrderShipmentTable.tsx:40 +#: src/tables/sales/SalesOrderShipmentTable.tsx:51 +#~ msgid "Delete Shipment" +#~ msgstr "Delete Shipment" + +#: src/tables/sales/SalesOrderShipmentTable.tsx:57 msgid "Create Shipment" msgstr "" -#: src/tables/sales/SalesOrderShipmentTable.tsx:50 -msgid "Delete Shipment" -msgstr "" - -#: src/tables/sales/SalesOrderShipmentTable.tsx:58 -msgid "Edit Shipment" -msgstr "" - -#: src/tables/sales/SalesOrderShipmentTable.tsx:66 -msgid "Shipment Reference" -msgstr "" - -#: src/tables/sales/SalesOrderShipmentTable.tsx:71 +#: src/tables/sales/SalesOrderShipmentTable.tsx:104 msgid "Items" msgstr "" -#: src/tables/sales/SalesOrderShipmentTable.tsx:83 -msgid "Delivery Date" +#: src/tables/sales/SalesOrderShipmentTable.tsx:139 +msgid "View Shipment" msgstr "" -#: src/tables/sales/SalesOrderShipmentTable.tsx:107 -msgid "Complete Shipment" +#: src/tables/sales/SalesOrderShipmentTable.tsx:161 +msgid "Edit shipment" msgstr "" -#: src/tables/sales/SalesOrderShipmentTable.tsx:133 +#: src/tables/sales/SalesOrderShipmentTable.tsx:169 +msgid "Cancel shipment" +msgstr "" + +#: src/tables/sales/SalesOrderShipmentTable.tsx:184 msgid "Add shipment" msgstr "" -#: src/tables/sales/SalesOrderShipmentTable.tsx:146 -msgid "Shipped" -msgstr "" - -#: src/tables/sales/SalesOrderShipmentTable.tsx:147 +#: src/tables/sales/SalesOrderShipmentTable.tsx:198 msgid "Show shipments which have been shipped" msgstr "" -#: src/tables/sales/SalesOrderShipmentTable.tsx:151 -msgid "Delivered" -msgstr "" - -#: src/tables/sales/SalesOrderShipmentTable.tsx:152 +#: src/tables/sales/SalesOrderShipmentTable.tsx:203 msgid "Show shipments which have been delivered" msgstr "" -#: src/tables/settings/CurrencyTable.tsx:28 -msgid "Rate" +#: src/tables/settings/BarcodeScanHistoryTable.tsx:61 +msgid "Barcode Information" msgstr "" -#: src/tables/settings/CurrencyTable.tsx:40 -msgid "Exchange rates updated" +#: src/tables/settings/BarcodeScanHistoryTable.tsx:76 +#: src/tables/settings/ErrorTable.tsx:59 +msgid "Timestamp" msgstr "" -#: src/tables/settings/CurrencyTable.tsx:46 -msgid "Exchange rate update error" +#: src/tables/settings/BarcodeScanHistoryTable.tsx:86 +msgid "Endpoint" msgstr "" -#: src/tables/settings/CurrencyTable.tsx:57 -msgid "Refresh currency exchange rates" +#: src/tables/settings/BarcodeScanHistoryTable.tsx:90 +#: src/tables/settings/BarcodeScanHistoryTable.tsx:217 +#: src/tables/stock/StockItemTestResultTable.tsx:174 +msgid "Result" msgstr "" +#: src/tables/settings/BarcodeScanHistoryTable.tsx:98 +msgid "Context" +msgstr "" + +#: src/tables/settings/BarcodeScanHistoryTable.tsx:119 +msgid "Response" +msgstr "" + +#: src/tables/settings/BarcodeScanHistoryTable.tsx:213 +#: src/tables/settings/ImportSessionTable.tsx:121 +#: src/tables/stock/StockTrackingTable.tsx:183 +msgid "Filter by user" +msgstr "" + +#: src/tables/settings/BarcodeScanHistoryTable.tsx:218 +msgid "Filter by result" +msgstr "" + +#: src/tables/settings/BarcodeScanHistoryTable.tsx:232 +msgid "Delete Barcode Scan Record" +msgstr "" + +#: src/tables/settings/BarcodeScanHistoryTable.tsx:258 +msgid "Barcode Scan Details" +msgstr "" + +#: src/tables/settings/BarcodeScanHistoryTable.tsx:268 +msgid "Logging Disabled" +msgstr "" + +#: src/tables/settings/BarcodeScanHistoryTable.tsx:270 +msgid "Barcode logging is not enabled" +msgstr "" + +#: src/tables/settings/CustomStateTable.tsx:36 +msgid "Display Name" +msgstr "" + +#: src/tables/settings/CustomStateTable.tsx:52 +msgid "Model" +msgstr "" + +#: src/tables/settings/CustomStateTable.tsx:65 +#: src/tables/settings/CustomStateTable.tsx:115 +msgid "Add State" +msgstr "" + +#: src/tables/settings/CustomStateTable.tsx:77 +msgid "Edit State" +msgstr "" + +#: src/tables/settings/CustomStateTable.tsx:85 +msgid "Delete State" +msgstr "" + +#: src/tables/settings/CustomStateTable.tsx:115 +#~ msgid "Add state" +#~ msgstr "Add state" + #: src/tables/settings/CustomUnitsTable.tsx:50 msgid "Add Custom Unit" msgstr "" @@ -7312,59 +8540,71 @@ msgstr "" msgid "Add custom unit" msgstr "" -#: src/tables/settings/ErrorTable.tsx:31 -msgid "When" -msgstr "" - -#: src/tables/settings/ErrorTable.tsx:41 -msgid "Error Information" -msgstr "" - #: src/tables/settings/ErrorTable.tsx:51 #~ msgid "Delete error report" #~ msgstr "Delete error report" -#: src/tables/settings/ErrorTable.tsx:53 +#: src/tables/settings/ErrorTable.tsx:67 +msgid "Traceback" +msgstr "" + +#: src/tables/settings/ErrorTable.tsx:103 +msgid "When" +msgstr "" + +#: src/tables/settings/ErrorTable.tsx:113 +msgid "Error Information" +msgstr "" + +#: src/tables/settings/ErrorTable.tsx:123 msgid "Delete Error Report" msgstr "" -#: src/tables/settings/ErrorTable.tsx:55 +#: src/tables/settings/ErrorTable.tsx:125 msgid "Are you sure you want to delete this error report?" msgstr "" -#: src/tables/settings/ErrorTable.tsx:57 +#: src/tables/settings/ErrorTable.tsx:127 msgid "Error report deleted" msgstr "" -#: src/tables/settings/ErrorTable.tsx:79 -#: src/tables/settings/FailedTasksTable.tsx:59 +#: src/tables/settings/ErrorTable.tsx:146 +#: src/tables/settings/FailedTasksTable.tsx:65 msgid "Error Details" msgstr "" -#: src/tables/settings/FailedTasksTable.tsx:26 -#: src/tables/settings/PendingTasksTable.tsx:19 +#: src/tables/settings/FailedTasksTable.tsx:32 +#: src/tables/settings/PendingTasksTable.tsx:23 #: src/tables/settings/ScheduledTasksTable.tsx:19 msgid "Task" msgstr "" -#: src/tables/settings/FailedTasksTable.tsx:32 -#: src/tables/settings/PendingTasksTable.tsx:24 +#: src/tables/settings/FailedTasksTable.tsx:38 +#: src/tables/settings/PendingTasksTable.tsx:28 msgid "Task ID" msgstr "" -#: src/tables/settings/FailedTasksTable.tsx:36 -#: src/tables/stock/StockItemTestResultTable.tsx:211 +#: src/tables/settings/FailedTasksTable.tsx:42 +#: src/tables/stock/StockItemTestResultTable.tsx:218 msgid "Started" msgstr "" -#: src/tables/settings/FailedTasksTable.tsx:42 +#: src/tables/settings/FailedTasksTable.tsx:48 msgid "Stopped" msgstr "" -#: src/tables/settings/FailedTasksTable.tsx:48 +#: src/tables/settings/FailedTasksTable.tsx:54 msgid "Attempts" msgstr "" +#: src/tables/settings/FailedTasksTable.tsx:92 +msgid "No Information" +msgstr "" + +#: src/tables/settings/FailedTasksTable.tsx:93 +msgid "No error details are available for this task" +msgstr "" + #: src/tables/settings/GroupTable.tsx:90 msgid "Group with id {id} not found" msgstr "" @@ -7398,42 +8638,34 @@ msgstr "" msgid "Edit group" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:38 +#: src/tables/settings/ImportSessionTable.tsx:37 msgid "Delete Import Session" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:44 +#: src/tables/settings/ImportSessionTable.tsx:43 #: src/tables/settings/ImportSessionTable.tsx:131 msgid "Create Import Session" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:69 +#: src/tables/settings/ImportSessionTable.tsx:68 msgid "Uploaded" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:79 -msgid "Imported Rows" -msgstr "" - -#: src/tables/settings/ImportSessionTable.tsx:109 -#: src/tables/settings/TemplateTable.tsx:289 +#: src/tables/settings/ImportSessionTable.tsx:108 +#: src/tables/settings/TemplateTable.tsx:369 msgid "Model Type" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:110 -#: src/tables/settings/TemplateTable.tsx:290 +#: src/tables/settings/ImportSessionTable.tsx:109 +#: src/tables/settings/TemplateTable.tsx:370 msgid "Filter by target model type" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:116 +#: src/tables/settings/ImportSessionTable.tsx:115 msgid "Filter by import session status" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:122 -msgid "Filter by user" -msgstr "" - -#: src/tables/settings/PendingTasksTable.tsx:38 +#: src/tables/settings/PendingTasksTable.tsx:42 msgid "Arguments" msgstr "" @@ -7461,12 +8693,16 @@ msgstr "" msgid "Next Run" msgstr "" -#: src/tables/settings/TemplateTable.tsx:85 -msgid "Template not found" +#: src/tables/settings/StocktakeReportTable.tsx:28 +msgid "Report" msgstr "" -#: src/tables/settings/TemplateTable.tsx:87 -msgid "An error occurred while fetching template details" +#: src/tables/settings/StocktakeReportTable.tsx:35 +msgid "Part Count" +msgstr "" + +#: src/tables/settings/StocktakeReportTable.tsx:58 +msgid "Delete Report" msgstr "" #: src/tables/settings/TemplateTable.tsx:120 @@ -7481,21 +8717,12 @@ msgstr "" #~ msgid "actions" #~ msgstr "actions" -#: src/tables/settings/TemplateTable.tsx:177 -msgid "Modify" +#: src/tables/settings/TemplateTable.tsx:162 +msgid "Template not found" msgstr "" -#: src/tables/settings/TemplateTable.tsx:178 -msgid "Modify template file" -msgstr "" - -#: src/tables/settings/TemplateTable.tsx:234 -#: src/tables/settings/TemplateTable.tsx:302 -msgid "Edit Template" -msgstr "" - -#: src/tables/settings/TemplateTable.tsx:242 -msgid "Delete template" +#: src/tables/settings/TemplateTable.tsx:164 +msgid "An error occurred while fetching template details" msgstr "" #: src/tables/settings/TemplateTable.tsx:243 @@ -7506,103 +8733,137 @@ msgstr "" #~ msgid "Create new" #~ msgstr "Create new" -#: src/tables/settings/TemplateTable.tsx:248 +#: src/tables/settings/TemplateTable.tsx:257 +msgid "Modify" +msgstr "" + +#: src/tables/settings/TemplateTable.tsx:258 +msgid "Modify template file" +msgstr "" + +#: src/tables/settings/TemplateTable.tsx:314 +#: src/tables/settings/TemplateTable.tsx:382 +msgid "Edit Template" +msgstr "" + +#: src/tables/settings/TemplateTable.tsx:322 +msgid "Delete template" +msgstr "" + +#: src/tables/settings/TemplateTable.tsx:328 msgid "Add Template" msgstr "" -#: src/tables/settings/TemplateTable.tsx:261 +#: src/tables/settings/TemplateTable.tsx:341 msgid "Add template" msgstr "" -#: src/tables/settings/TemplateTable.tsx:284 +#: src/tables/settings/TemplateTable.tsx:364 msgid "Filter by enabled status" msgstr "" -#: src/tables/settings/UserTable.tsx:82 +#: src/tables/settings/UserTable.tsx:81 msgid "User with id {id} not found" msgstr "" -#: src/tables/settings/UserTable.tsx:84 +#: src/tables/settings/UserTable.tsx:83 msgid "An error occurred while fetching user details" msgstr "" -#: src/tables/settings/UserTable.tsx:102 +#: src/tables/settings/UserTable.tsx:101 msgid "Is Active" msgstr "" -#: src/tables/settings/UserTable.tsx:103 +#: src/tables/settings/UserTable.tsx:102 msgid "Designates whether this user should be treated as active. Unselect this instead of deleting accounts." msgstr "" -#: src/tables/settings/UserTable.tsx:107 +#: src/tables/settings/UserTable.tsx:106 msgid "Is Staff" msgstr "" -#: src/tables/settings/UserTable.tsx:108 +#: src/tables/settings/UserTable.tsx:107 msgid "Designates whether the user can log into the django admin site." msgstr "" -#: src/tables/settings/UserTable.tsx:112 +#: src/tables/settings/UserTable.tsx:111 msgid "Is Superuser" msgstr "" -#: src/tables/settings/UserTable.tsx:113 +#: src/tables/settings/UserTable.tsx:112 msgid "Designates that this user has all permissions without explicitly assigning them." msgstr "" -#: src/tables/settings/UserTable.tsx:123 +#: src/tables/settings/UserTable.tsx:122 msgid "You cannot edit the rights for the currently logged-in user." msgstr "" -#: src/tables/settings/UserTable.tsx:154 +#: src/tables/settings/UserTable.tsx:153 msgid "No groups" msgstr "" -#: src/tables/settings/UserTable.tsx:245 +#: src/tables/settings/UserTable.tsx:244 msgid "Delete user" msgstr "" -#: src/tables/settings/UserTable.tsx:246 +#: src/tables/settings/UserTable.tsx:245 msgid "User deleted" msgstr "" -#: src/tables/settings/UserTable.tsx:248 +#: src/tables/settings/UserTable.tsx:247 msgid "Are you sure you want to delete this user?" msgstr "" -#: src/tables/settings/UserTable.tsx:254 -#: src/tables/settings/UserTable.tsx:272 +#: src/tables/settings/UserTable.tsx:253 +#: src/tables/settings/UserTable.tsx:271 msgid "Add user" msgstr "" -#: src/tables/settings/UserTable.tsx:262 +#: src/tables/settings/UserTable.tsx:261 msgid "Added user" msgstr "" -#: src/tables/settings/UserTable.tsx:285 +#: src/tables/settings/UserTable.tsx:284 msgid "Show active users" msgstr "" -#: src/tables/settings/UserTable.tsx:289 +#: src/tables/settings/UserTable.tsx:288 msgid "Staff" msgstr "" -#: src/tables/settings/UserTable.tsx:290 +#: src/tables/settings/UserTable.tsx:289 msgid "Show staff users" msgstr "" #: src/tables/settings/UserTable.tsx:294 -msgid "Superuser" -msgstr "" - -#: src/tables/settings/UserTable.tsx:295 msgid "Show superusers" msgstr "" -#: src/tables/settings/UserTable.tsx:305 +#: src/tables/settings/UserTable.tsx:304 msgid "Edit user" msgstr "" +#: src/tables/stock/InstalledItemsTable.tsx:37 +#: src/tables/stock/InstalledItemsTable.tsx:90 +msgid "Install Item" +msgstr "" + +#: src/tables/stock/InstalledItemsTable.tsx:39 +msgid "Item installed" +msgstr "" + +#: src/tables/stock/InstalledItemsTable.tsx:50 +msgid "Uninstall Item" +msgstr "" + +#: src/tables/stock/InstalledItemsTable.tsx:52 +msgid "Item uninstalled" +msgstr "" + +#: src/tables/stock/InstalledItemsTable.tsx:108 +msgid "Uninstall stock item" +msgstr "" + #: src/tables/stock/LocationTypesTable.tsx:39 #: src/tables/stock/LocationTypesTable.tsx:109 msgid "Add Location Type" @@ -7620,276 +8881,272 @@ msgstr "" msgid "Icon" msgstr "" -#: src/tables/stock/StockItemTable.tsx:101 +#: src/tables/stock/StockItemTable.tsx:90 msgid "This stock item is in production" msgstr "" -#: src/tables/stock/StockItemTable.tsx:110 +#: src/tables/stock/StockItemTable.tsx:97 msgid "This stock item has been assigned to a sales order" msgstr "" -#: src/tables/stock/StockItemTable.tsx:119 +#: src/tables/stock/StockItemTable.tsx:104 msgid "This stock item has been assigned to a customer" msgstr "" -#: src/tables/stock/StockItemTable.tsx:128 +#: src/tables/stock/StockItemTable.tsx:111 msgid "This stock item is installed in another stock item" msgstr "" -#: src/tables/stock/StockItemTable.tsx:137 +#: src/tables/stock/StockItemTable.tsx:118 msgid "This stock item has been consumed by a build order" msgstr "" -#: src/tables/stock/StockItemTable.tsx:146 +#: src/tables/stock/StockItemTable.tsx:125 +msgid "This stock item is unavailable" +msgstr "" + +#: src/tables/stock/StockItemTable.tsx:134 msgid "This stock item has expired" msgstr "" -#: src/tables/stock/StockItemTable.tsx:150 +#: src/tables/stock/StockItemTable.tsx:138 msgid "This stock item is stale" msgstr "" -#: src/tables/stock/StockItemTable.tsx:161 +#: src/tables/stock/StockItemTable.tsx:150 msgid "This stock item is fully allocated" msgstr "" -#: src/tables/stock/StockItemTable.tsx:168 +#: src/tables/stock/StockItemTable.tsx:157 msgid "This stock item is partially allocated" msgstr "" -#: src/tables/stock/StockItemTable.tsx:196 +#: src/tables/stock/StockItemTable.tsx:185 msgid "This stock item has been depleted" msgstr "" -#: src/tables/stock/StockItemTable.tsx:232 +#: src/tables/stock/StockItemTable.tsx:280 msgid "Stocktake Date" msgstr "" -#: src/tables/stock/StockItemTable.tsx:236 -msgid "Expiry Date" -msgstr "" - -#: src/tables/stock/StockItemTable.tsx:260 -msgid "Stock Value" -msgstr "" - -#: src/tables/stock/StockItemTable.tsx:290 +#: src/tables/stock/StockItemTable.tsx:294 msgid "Show stock for active parts" msgstr "" -#: src/tables/stock/StockItemTable.tsx:295 +#: src/tables/stock/StockItemTable.tsx:299 msgid "Filter by stock status" msgstr "" #: src/tables/stock/StockItemTable.tsx:301 -msgid "Show stock for assmebled parts" +#~ msgid "Show stock for assmebled parts" +#~ msgstr "Show stock for assmebled parts" + +#: src/tables/stock/StockItemTable.tsx:305 +msgid "Show stock for assembled parts" msgstr "" -#: src/tables/stock/StockItemTable.tsx:306 +#: src/tables/stock/StockItemTable.tsx:310 msgid "Show items which have been allocated" msgstr "" -#: src/tables/stock/StockItemTable.tsx:311 +#: src/tables/stock/StockItemTable.tsx:315 msgid "Show items which are available" msgstr "" -#: src/tables/stock/StockItemTable.tsx:315 +#: src/tables/stock/StockItemTable.tsx:319 #: src/tables/stock/StockLocationTable.tsx:44 msgid "Include Sublocations" msgstr "" -#: src/tables/stock/StockItemTable.tsx:316 +#: src/tables/stock/StockItemTable.tsx:320 msgid "Include stock in sublocations" msgstr "" -#: src/tables/stock/StockItemTable.tsx:320 +#: src/tables/stock/StockItemTable.tsx:324 msgid "Depleted" msgstr "" -#: src/tables/stock/StockItemTable.tsx:321 +#: src/tables/stock/StockItemTable.tsx:325 msgid "Show depleted stock items" msgstr "" -#: src/tables/stock/StockItemTable.tsx:326 +#: src/tables/stock/StockItemTable.tsx:330 msgid "Show items which are in stock" msgstr "" -#: src/tables/stock/StockItemTable.tsx:331 +#: src/tables/stock/StockItemTable.tsx:335 msgid "Show items which are in production" msgstr "" -#: src/tables/stock/StockItemTable.tsx:336 +#: src/tables/stock/StockItemTable.tsx:340 msgid "Include stock items for variant parts" msgstr "" -#: src/tables/stock/StockItemTable.tsx:341 +#: src/tables/stock/StockItemTable.tsx:345 msgid "Show stock items which are installed in other items" msgstr "" -#: src/tables/stock/StockItemTable.tsx:345 +#: src/tables/stock/StockItemTable.tsx:349 msgid "Sent to Customer" msgstr "" -#: src/tables/stock/StockItemTable.tsx:346 +#: src/tables/stock/StockItemTable.tsx:350 msgid "Show items which have been sent to a customer" msgstr "" -#: src/tables/stock/StockItemTable.tsx:350 +#: src/tables/stock/StockItemTable.tsx:354 msgid "Is Serialized" msgstr "" -#: src/tables/stock/StockItemTable.tsx:351 +#: src/tables/stock/StockItemTable.tsx:355 msgid "Show items which have a serial number" msgstr "" -#: src/tables/stock/StockItemTable.tsx:358 +#: src/tables/stock/StockItemTable.tsx:362 msgid "Has Batch Code" msgstr "" -#: src/tables/stock/StockItemTable.tsx:359 +#: src/tables/stock/StockItemTable.tsx:363 msgid "Show items which have a batch code" msgstr "" -#: src/tables/stock/StockItemTable.tsx:365 +#: src/tables/stock/StockItemTable.tsx:369 msgid "Show tracked items" msgstr "" -#: src/tables/stock/StockItemTable.tsx:369 +#: src/tables/stock/StockItemTable.tsx:373 msgid "Has Purchase Price" msgstr "" -#: src/tables/stock/StockItemTable.tsx:370 +#: src/tables/stock/StockItemTable.tsx:374 msgid "Show items which have a purchase price" msgstr "" -#: src/tables/stock/StockItemTable.tsx:378 +#: src/tables/stock/StockItemTable.tsx:382 msgid "External Location" msgstr "" -#: src/tables/stock/StockItemTable.tsx:379 +#: src/tables/stock/StockItemTable.tsx:383 msgid "Show items in an external location" msgstr "" -#: src/tables/stock/StockItemTable.tsx:451 +#: src/tables/stock/StockItemTable.tsx:456 msgid "Add a new stock item" msgstr "" -#: src/tables/stock/StockItemTable.tsx:460 +#: src/tables/stock/StockItemTable.tsx:465 msgid "Remove some quantity from a stock item" msgstr "" -#: src/tables/stock/StockItemTable.tsx:482 +#: src/tables/stock/StockItemTable.tsx:487 msgid "Move Stock items to new locations" msgstr "" -#: src/tables/stock/StockItemTable.tsx:489 +#: src/tables/stock/StockItemTable.tsx:494 msgid "Change stock status" msgstr "" -#: src/tables/stock/StockItemTable.tsx:491 +#: src/tables/stock/StockItemTable.tsx:496 msgid "Change the status of stock items" msgstr "" -#: src/tables/stock/StockItemTable.tsx:498 +#: src/tables/stock/StockItemTable.tsx:503 msgid "Merge stock" msgstr "" -#: src/tables/stock/StockItemTable.tsx:500 +#: src/tables/stock/StockItemTable.tsx:505 msgid "Merge stock items" msgstr "" -#: src/tables/stock/StockItemTable.tsx:509 -#: src/tables/stock/StockItemTable.tsx:516 +#: src/tables/stock/StockItemTable.tsx:514 +#: src/tables/stock/StockItemTable.tsx:521 msgid "Order new stock" msgstr "" -#: src/tables/stock/StockItemTable.tsx:514 +#: src/tables/stock/StockItemTable.tsx:519 msgid "Assign to customer" msgstr "" -#: src/tables/stock/StockItemTable.tsx:523 +#: src/tables/stock/StockItemTable.tsx:528 msgid "Delete stock" msgstr "" -#: src/tables/stock/StockItemTable.tsx:525 -msgid "Delete stock items" -msgstr "" +#: src/tables/stock/StockItemTable.tsx:528 +#~ msgid "Delete stock items" +#~ msgstr "Delete stock items" -#: src/tables/stock/StockItemTestResultTable.tsx:131 +#: src/tables/stock/StockItemTestResultTable.tsx:137 msgid "Test" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:157 +#: src/tables/stock/StockItemTestResultTable.tsx:163 msgid "Test result for installed stock item" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:168 -msgid "Result" -msgstr "" - -#: src/tables/stock/StockItemTestResultTable.tsx:190 +#: src/tables/stock/StockItemTestResultTable.tsx:196 msgid "Attachment" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:206 +#: src/tables/stock/StockItemTestResultTable.tsx:212 msgid "Test station" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:226 +#: src/tables/stock/StockItemTestResultTable.tsx:234 msgid "Finished" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:268 -#: src/tables/stock/StockItemTestResultTable.tsx:339 +#: src/tables/stock/StockItemTestResultTable.tsx:286 +#: src/tables/stock/StockItemTestResultTable.tsx:357 msgid "Edit Test Result" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:270 +#: src/tables/stock/StockItemTestResultTable.tsx:288 msgid "Test result updated" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:276 -#: src/tables/stock/StockItemTestResultTable.tsx:348 +#: src/tables/stock/StockItemTestResultTable.tsx:294 +#: src/tables/stock/StockItemTestResultTable.tsx:366 msgid "Delete Test Result" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:278 +#: src/tables/stock/StockItemTestResultTable.tsx:296 msgid "Test result deleted" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:292 +#: src/tables/stock/StockItemTestResultTable.tsx:310 msgid "Test Passed" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:293 +#: src/tables/stock/StockItemTestResultTable.tsx:311 msgid "Test result has been recorded" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:300 +#: src/tables/stock/StockItemTestResultTable.tsx:318 msgid "Failed to record test result" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:317 +#: src/tables/stock/StockItemTestResultTable.tsx:335 msgid "Pass Test" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:366 +#: src/tables/stock/StockItemTestResultTable.tsx:384 msgid "Show results for required tests" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:370 +#: src/tables/stock/StockItemTestResultTable.tsx:388 msgid "Include Installed" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:371 +#: src/tables/stock/StockItemTestResultTable.tsx:389 msgid "Show results for installed stock items" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:375 -#: src/tables/stock/TestStatisticsTable.tsx:74 +#: src/tables/stock/StockItemTestResultTable.tsx:393 +#: src/tables/stock/TestStatisticsTable.tsx:62 msgid "Passed" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:376 +#: src/tables/stock/StockItemTestResultTable.tsx:394 msgid "Show only passed tests" msgstr "" @@ -7922,28 +9179,32 @@ msgid "Filter by location type" msgstr "" #: src/tables/stock/StockLocationTable.tsx:107 -#: src/tables/stock/StockLocationTable.tsx:133 +#: src/tables/stock/StockLocationTable.tsx:134 msgid "Add Stock Location" msgstr "" -#: src/tables/stock/StockTrackingTable.tsx:64 +#: src/tables/stock/StockTrackingTable.tsx:68 msgid "Added" msgstr "" -#: src/tables/stock/StockTrackingTable.tsx:69 +#: src/tables/stock/StockTrackingTable.tsx:73 msgid "Removed" msgstr "" #: src/tables/stock/StockTrackingTable.tsx:198 +msgid "Details" +msgstr "" + +#: src/tables/stock/StockTrackingTable.tsx:213 msgid "No user information" msgstr "" -#: src/tables/stock/TestStatisticsTable.tsx:46 -#: src/tables/stock/TestStatisticsTable.tsx:76 +#: src/tables/stock/TestStatisticsTable.tsx:34 +#: src/tables/stock/TestStatisticsTable.tsx:64 msgid "Total" msgstr "" -#: src/tables/stock/TestStatisticsTable.tsx:75 +#: src/tables/stock/TestStatisticsTable.tsx:63 msgid "Failed" msgstr "" diff --git a/src/frontend/src/locales/cs/messages.po b/src/frontend/src/locales/cs/messages.po index a8ebd5f7b5..a93d714c32 100644 --- a/src/frontend/src/locales/cs/messages.po +++ b/src/frontend/src/locales/cs/messages.po @@ -8,15 +8,15 @@ msgstr "" "Language: cs\n" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"PO-Revision-Date: 2024-08-20 19:49\n" +"PO-Revision-Date: 2024-11-04 03:14\n" "Last-Translator: \n" "Language-Team: Czech\n" "Plural-Forms: nplurals=4; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 3;\n" "X-Crowdin-Project: inventree\n" "X-Crowdin-Project-ID: 452300\n" "X-Crowdin-Language: cs\n" -"X-Crowdin-File: /[inventree.InvenTree] l10/src/frontend/src/locales/en/messages.po\n" -"X-Crowdin-File-ID: 205\n" +"X-Crowdin-File: /src/frontend/src/locales/en/messages.po\n" +"X-Crowdin-File-ID: 252\n" #: src/components/Boundary.tsx:12 msgid "Error rendering component" @@ -27,8 +27,8 @@ msgid "An error occurred while rendering this component. Refer to the console fo msgstr "Došlo k chybě při vykreslování této komponenty. Více informací najdete v konzoli." #: src/components/DashboardItemProxy.tsx:34 -msgid "Title" -msgstr "Titulek" +#~ msgid "Title" +#~ msgstr "Title" #: src/components/buttons/AdminButton.tsx:80 msgid "Open in admin interface" @@ -38,82 +38,99 @@ msgstr "Otevřít v administrátorském rozhraní" #~ msgid "Copy to clipboard" #~ msgstr "Copy to clipboard" -#: src/components/buttons/CopyButton.tsx:24 +#: src/components/buttons/CopyButton.tsx:29 msgid "Copied" msgstr "Zkopírováno" -#: src/components/buttons/CopyButton.tsx:24 +#: src/components/buttons/CopyButton.tsx:29 msgid "Copy" msgstr "Kopírovat" -#: src/components/buttons/PrintingActions.tsx:93 +#: src/components/buttons/PrintingActions.tsx:97 msgid "Print Label" msgstr "Tisk štítku" -#: src/components/buttons/PrintingActions.tsx:99 +#: src/components/buttons/PrintingActions.tsx:103 msgid "Print" msgstr "" -#: src/components/buttons/PrintingActions.tsx:100 +#: src/components/buttons/PrintingActions.tsx:104 msgid "Label printing completed successfully" msgstr "Tisk štítků byl úspěšně dokončen" -#: src/components/buttons/PrintingActions.tsx:106 -#: src/components/buttons/PrintingActions.tsx:144 -#: src/components/editors/NotesEditor.tsx:65 -#: src/components/editors/NotesEditor.tsx:165 -#: src/components/forms/fields/ApiFormField.tsx:319 +#: src/components/buttons/PrintingActions.tsx:110 +#: src/components/buttons/PrintingActions.tsx:148 +#: src/components/editors/NotesEditor.tsx:73 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:154 +#: src/components/forms/fields/ApiFormField.tsx:328 +#: src/components/forms/fields/TableField.tsx:43 #: src/components/importer/ImportDataSelector.tsx:187 -#: src/components/importer/ImporterColumnSelector.tsx:207 +#: src/components/importer/ImporterColumnSelector.tsx:210 #: src/components/modals/LicenseModal.tsx:75 -#: src/components/nav/SearchDrawer.tsx:448 +#: src/components/nav/SearchDrawer.tsx:458 +#: src/components/render/ModelType.tsx:290 #: src/pages/ErrorPage.tsx:11 -#: src/pages/part/PartPricingPanel.tsx:67 -#: src/tables/InvenTreeTable.tsx:495 +#: src/pages/part/PartPricingPanel.tsx:71 +#: src/tables/InvenTreeTable.tsx:481 #: src/tables/bom/BomTable.tsx:450 -#: src/tables/stock/StockItemTestResultTable.tsx:299 +#: src/tables/stock/StockItemTestResultTable.tsx:317 msgid "Error" msgstr "Chyba" -#: src/components/buttons/PrintingActions.tsx:107 +#: src/components/buttons/PrintingActions.tsx:111 msgid "The label could not be generated" msgstr "Štítek nelze vygenerovat" -#: src/components/buttons/PrintingActions.tsx:122 +#: src/components/buttons/PrintingActions.tsx:126 msgid "Print Report" msgstr "Tisk reportu" -#: src/components/buttons/PrintingActions.tsx:138 +#: src/components/buttons/PrintingActions.tsx:142 msgid "Generate" msgstr "" -#: src/components/buttons/PrintingActions.tsx:139 +#: src/components/buttons/PrintingActions.tsx:143 msgid "Report printing completed successfully" msgstr "Tisk reportu byl úspěšně dokončen" -#: src/components/buttons/PrintingActions.tsx:145 +#: src/components/buttons/PrintingActions.tsx:149 msgid "The report could not be generated" msgstr "Report se nepodařilo vytvořit" -#: src/components/buttons/PrintingActions.tsx:173 +#: src/components/buttons/PrintingActions.tsx:177 msgid "Printing Actions" msgstr "Tiskové akce" -#: src/components/buttons/PrintingActions.tsx:178 +#: src/components/buttons/PrintingActions.tsx:182 msgid "Print Labels" msgstr "Tisk štítků" -#: src/components/buttons/PrintingActions.tsx:184 +#: src/components/buttons/PrintingActions.tsx:188 msgid "Print Reports" msgstr "Tisk reportu" +#: src/components/buttons/RemoveRowButton.tsx:8 +msgid "Remove this row" +msgstr "" + #: src/components/buttons/ScanButton.tsx:15 -msgid "Scan QR code" -msgstr "Naskenovat QR kód" +#: src/components/nav/NavigationDrawer.tsx:117 +#: src/forms/PurchaseOrderForms.tsx:379 +#: src/forms/PurchaseOrderForms.tsx:473 +msgid "Scan Barcode" +msgstr "" + +#: src/components/buttons/ScanButton.tsx:15 +#~ msgid "Scan QR code" +#~ msgstr "Scan QR code" #: src/components/buttons/ScanButton.tsx:20 -msgid "Open QR code scanner" -msgstr "Otevřít skener QR kódů" +msgid "Open Barcode Scanner" +msgstr "" + +#: src/components/buttons/ScanButton.tsx:20 +#~ msgid "Open QR code scanner" +#~ msgstr "Open QR code scanner" #: src/components/buttons/SpotlightButton.tsx:14 msgid "Open spotlight" @@ -128,85 +145,347 @@ msgid "Fail" msgstr "Selhání" #: src/components/buttons/YesNoButton.tsx:33 -#: src/tables/Filter.tsx:52 +#: src/tables/Filter.tsx:61 msgid "Yes" msgstr "Ano" #: src/components/buttons/YesNoButton.tsx:33 -#: src/tables/Filter.tsx:53 +#: src/tables/Filter.tsx:62 msgid "No" msgstr "Ne" -#: src/components/details/Details.tsx:301 +#: src/components/dashboard/DashboardLayout.tsx:286 +msgid "No Widgets Selected" +msgstr "" + +#: src/components/dashboard/DashboardLayout.tsx:289 +msgid "Use the menu to add widgets to the dashboard" +msgstr "" + +#: src/components/dashboard/DashboardMenu.tsx:59 +#: src/components/dashboard/DashboardMenu.tsx:126 +msgid "Accept Layout" +msgstr "" + +#: src/components/dashboard/DashboardMenu.tsx:91 +#: src/components/nav/NavigationDrawer.tsx:71 +#: src/defaults/actions.tsx:17 +#: src/defaults/links.tsx:9 +#: src/pages/Index/Settings/UserSettings.tsx:47 +msgid "Dashboard" +msgstr "Přehled" + +#: src/components/dashboard/DashboardMenu.tsx:99 +msgid "Edit Layout" +msgstr "Upravit rozvržení" + +#: src/components/dashboard/DashboardMenu.tsx:108 +msgid "Add Widget" +msgstr "" + +#: src/components/dashboard/DashboardMenu.tsx:117 +msgid "Remove Widgets" +msgstr "" + +#: src/components/dashboard/DashboardWidget.tsx:65 +msgid "Remove this widget from the dashboard" +msgstr "" + +#: src/components/dashboard/DashboardWidgetDrawer.tsx:77 +msgid "Filter dashboard widgets" +msgstr "" + +#: src/components/dashboard/DashboardWidgetDrawer.tsx:98 +msgid "Add this widget to the dashboard" +msgstr "" + +#: src/components/dashboard/DashboardWidgetDrawer.tsx:123 +msgid "No Widgets Available" +msgstr "" + +#: src/components/dashboard/DashboardWidgetDrawer.tsx:124 +msgid "There are no more widgets available for the dashboard" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:19 +msgid "Subscribed Parts" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:20 +msgid "Show the number of parts which you have subscribed to" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:26 +msgid "Subscribed Categories" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:27 +msgid "Show the number of part categories which you have subscribed to" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:35 +#: src/pages/part/PartSchedulingDetail.tsx:304 +#: src/tables/part/PartTable.tsx:238 +msgid "Low Stock" +msgstr "Nízké zásoby" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:37 +msgid "Show the number of parts which are low on stock" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:43 +msgid "Expired Stock Items" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:45 +msgid "Show the number of stock items which have expired" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:51 +msgid "Stale Stock Items" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:53 +msgid "Show the number of stock items which are stale" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:59 +msgid "Active Build Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:61 +msgid "Show the number of build orders which are currently active" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:66 +msgid "Overdue Build Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:68 +msgid "Show the number of build orders which are overdue" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:73 +msgid "Assigned Build Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:75 +msgid "Show the number of build orders which are assigned to you" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:80 +msgid "Active Sales Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:82 +msgid "Show the number of sales orders which are currently active" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:87 +msgid "Overdue Sales Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:89 +msgid "Show the number of sales orders which are overdue" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:94 +msgid "Assigned Sales Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:96 +msgid "Show the number of sales orders which are assigned to you" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:101 +msgid "Active Purchase Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:103 +msgid "Show the number of purchase orders which are currently active" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:108 +msgid "Overdue Purchase Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:110 +msgid "Show the number of purchase orders which are overdue" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:115 +msgid "Assigned Purchase Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:117 +msgid "Show the number of purchase orders which are assigned to you" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:122 +msgid "Active Return Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:124 +msgid "Show the number of return orders which are currently active" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:129 +msgid "Overdue Return Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:131 +msgid "Show the number of return orders which are overdue" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:136 +msgid "Assigned Return Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:138 +msgid "Show the number of return orders which are assigned to you" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:149 +#: src/components/dashboard/widgets/GetStartedWidget.tsx:15 +#: src/defaults/links.tsx:38 +msgid "Getting Started" +msgstr "Začínáme" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:150 +#: src/defaults/links.tsx:41 +msgid "Getting started with InvenTree" +msgstr "Začínáme s InvenTree" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:157 +#: src/components/dashboard/widgets/NewsWidget.tsx:123 +msgid "News Updates" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:158 +msgid "The latest news from InvenTree" +msgstr "" + +#: src/components/dashboard/widgets/ColorToggleWidget.tsx:18 +#: src/components/nav/MainMenu.tsx:77 +msgid "Change Color Mode" +msgstr "" + +#: src/components/dashboard/widgets/ColorToggleWidget.tsx:23 +msgid "Change the color mode of the user interface" +msgstr "" + +#: src/components/dashboard/widgets/LanguageSelectWidget.tsx:18 +msgid "Change Language" +msgstr "" + +#: src/components/dashboard/widgets/LanguageSelectWidget.tsx:23 +msgid "Change the language of the user interface" +msgstr "" + +#: src/components/dashboard/widgets/NewsWidget.tsx:61 +#: src/components/nav/NotificationDrawer.tsx:88 +#: src/pages/Notifications.tsx:73 +msgid "Mark as read" +msgstr "Označit jako přečtené" + +#: src/components/dashboard/widgets/NewsWidget.tsx:115 +msgid "Requires Superuser" +msgstr "" + +#: src/components/dashboard/widgets/NewsWidget.tsx:116 +msgid "This widget requires superuser permissions" +msgstr "" + +#: src/components/dashboard/widgets/NewsWidget.tsx:133 +msgid "No News" +msgstr "" + +#: src/components/dashboard/widgets/NewsWidget.tsx:134 +msgid "There are no unread news items" +msgstr "" + +#: src/components/details/Details.tsx:300 msgid "No name defined" msgstr "Žádný název není definován" -#: src/components/details/DetailsImage.tsx:65 +#: src/components/details/DetailsImage.tsx:69 msgid "Remove Image" msgstr "Odstranit obrázek" -#: src/components/details/DetailsImage.tsx:68 +#: src/components/details/DetailsImage.tsx:72 msgid "Remove the associated image from this item?" msgstr "Odstranit přidružený obrázek z této položky?" -#: src/components/details/DetailsImage.tsx:71 -#: src/forms/StockForms.tsx:533 +#: src/components/details/DetailsImage.tsx:75 +#: src/forms/StockForms.tsx:651 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:199 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:306 -#: src/pages/stock/StockDetail.tsx:526 +#: src/pages/stock/StockDetail.tsx:690 msgid "Remove" msgstr "Odstranit" -#: src/components/details/DetailsImage.tsx:71 -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:158 -#: src/components/items/ActionDropdown.tsx:215 -#: src/components/items/ActionDropdown.tsx:216 -#: src/contexts/ThemeContext.tsx:43 +#: src/components/details/DetailsImage.tsx:75 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:184 +#: src/components/items/ActionDropdown.tsx:268 +#: src/components/items/ActionDropdown.tsx:269 +#: src/contexts/ThemeContext.tsx:45 #: src/hooks/UseForm.tsx:40 -#: src/tables/FilterSelectDrawer.tsx:205 -#: src/tables/build/BuildOutputTable.tsx:286 +#: src/tables/FilterSelectDrawer.tsx:241 +#: src/tables/RowActions.tsx:59 +#: src/tables/build/BuildOutputTable.tsx:434 msgid "Cancel" msgstr "Zrušit" -#: src/components/details/DetailsImage.tsx:97 +#: src/components/details/DetailsImage.tsx:101 msgid "Drag and drop to upload" msgstr "Nahrajte přetažením" -#: src/components/details/DetailsImage.tsx:100 +#: src/components/details/DetailsImage.tsx:104 msgid "Click to select file(s)" msgstr "Klepnutím vyberte soubor(y)" -#: src/components/details/DetailsImage.tsx:226 +#: src/components/details/DetailsImage.tsx:230 msgid "Clear" msgstr "Vymazat" -#: src/components/details/DetailsImage.tsx:232 -#: src/components/forms/ApiForm.tsx:627 -#: src/contexts/ThemeContext.tsx:43 -#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:60 +#: src/components/details/DetailsImage.tsx:236 +#: src/components/forms/ApiForm.tsx:660 +#: src/contexts/ThemeContext.tsx:45 msgid "Submit" msgstr "Odeslat" -#: src/components/details/DetailsImage.tsx:272 +#: src/components/details/DetailsImage.tsx:280 msgid "Select from existing images" msgstr "Vybrat z existujících obrázků" -#: src/components/details/DetailsImage.tsx:280 +#: src/components/details/DetailsImage.tsx:288 msgid "Select Image" msgstr "Vybrat obrázek" -#: src/components/details/DetailsImage.tsx:292 +#: src/components/details/DetailsImage.tsx:304 +msgid "Download remote image" +msgstr "" + +#: src/components/details/DetailsImage.tsx:319 msgid "Upload new image" msgstr "Nahrát nový obrázek" -#: src/components/details/DetailsImage.tsx:299 +#: src/components/details/DetailsImage.tsx:326 msgid "Upload Image" msgstr "Nahrát obrázek" -#: src/components/details/DetailsImage.tsx:312 +#: src/components/details/DetailsImage.tsx:339 msgid "Delete image" msgstr "Smazat obrázek" +#: src/components/details/DetailsImage.tsx:373 +msgid "Download Image" +msgstr "" + +#: src/components/details/DetailsImage.tsx:378 +msgid "Image downloaded successfully" +msgstr "" + #: src/components/details/PartIcons.tsx:43 #~ msgid "Part is a template part (variants can be made from this part)" #~ msgstr "Part is a template part (variants can be made from this part)" @@ -235,36 +514,57 @@ msgstr "Smazat obrázek" #~ msgid "Part is virtual (not a physical part)" #~ msgstr "Part is virtual (not a physical part)" -#: src/components/editors/NotesEditor.tsx:66 +#: src/components/editors/NotesEditor.tsx:74 msgid "Image upload failed" msgstr "Nahrání obrázku se nezdařilo" -#: src/components/editors/NotesEditor.tsx:156 -#: src/components/forms/ApiForm.tsx:467 +#: src/components/editors/NotesEditor.tsx:83 +#: src/components/editors/NotesEditor.tsx:119 +#: src/components/forms/ApiForm.tsx:475 #: src/tables/bom/BomTable.tsx:441 msgid "Success" msgstr "Dokončeno" -#: src/components/editors/NotesEditor.tsx:157 +#: src/components/editors/NotesEditor.tsx:84 +msgid "Image uploaded successfully" +msgstr "" + +#: src/components/editors/NotesEditor.tsx:120 msgid "Notes saved successfully" msgstr "Poznámky byly úspěšně uloženy" -#: src/components/editors/NotesEditor.tsx:166 +#: src/components/editors/NotesEditor.tsx:131 msgid "Failed to save notes" msgstr "Nepodařilo se uložit poznámky" -#: src/components/editors/NotesEditor.tsx:198 -msgid "Preview Notes" -msgstr "Náhled poznámek" +#: src/components/editors/NotesEditor.tsx:134 +msgid "Error Saving Notes" +msgstr "" -#: src/components/editors/NotesEditor.tsx:198 -msgid "Edit Notes" -msgstr "Upravit poznámky" +#: src/components/editors/NotesEditor.tsx:151 +#~ msgid "Disable Editing" +#~ msgstr "Disable Editing" -#: src/components/editors/NotesEditor.tsx:212 +#: src/components/editors/NotesEditor.tsx:154 msgid "Save Notes" msgstr "Uložit poznámky" +#: src/components/editors/NotesEditor.tsx:173 +msgid "Close Editor" +msgstr "" + +#: src/components/editors/NotesEditor.tsx:180 +msgid "Enable Editing" +msgstr "" + +#: src/components/editors/NotesEditor.tsx:198 +#~ msgid "Preview Notes" +#~ msgstr "Preview Notes" + +#: src/components/editors/NotesEditor.tsx:198 +#~ msgid "Edit Notes" +#~ msgstr "Edit Notes" + #: src/components/editors/TemplateEditor/CodeEditor/index.tsx:9 msgid "Code" msgstr "Kód" @@ -281,40 +581,44 @@ msgstr "Náhled není k dispozici, klikněte na \"Znovu načíst náhled\"." msgid "PDF Preview" msgstr "Náhled PDF" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:104 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:115 msgid "Error loading template" msgstr "Chyba při načítání šablony" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:116 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:127 msgid "Error saving template" msgstr "Chyba při ukládání šablony" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:146 -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:274 -msgid "Save & Reload Preview" -msgstr "Uložit a znovu načíst náhled" - -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:151 -msgid "Are you sure you want to Save & Reload the preview?" -msgstr "Opravdu chcete uložit a znovu načíst náhled?" - #: src/components/editors/TemplateEditor/TemplateEditor.tsx:151 #~ msgid "Save & Reload preview?" #~ msgstr "Save & Reload preview?" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:153 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:155 +msgid "Could not load the template from the server." +msgstr "" + +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:172 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:303 +msgid "Save & Reload Preview" +msgstr "Uložit a znovu načíst náhled" + +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:177 +msgid "Are you sure you want to Save & Reload the preview?" +msgstr "Opravdu chcete uložit a znovu načíst náhled?" + +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:179 msgid "To render the preview the current template needs to be replaced on the server with your modifications which may break the label if it is under active use. Do you want to proceed?" msgstr "Pro zobrazení náhledu je třeba aktuální šablonu na serveru nahradit změněnou, což může poškodit štítek, je-li aktivně používán. Chcete pokračovat?" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:157 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:183 msgid "Save & Reload" msgstr "Uložit a znovu načíst" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:189 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:215 msgid "Preview updated" msgstr "Náhled aktualizován" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:190 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:216 msgid "The preview has been updated successfully." msgstr "Náhled byl úspěšně aktualizován." @@ -322,15 +626,15 @@ msgstr "Náhled byl úspěšně aktualizován." #~ msgid "Save & Reload preview" #~ msgstr "Save & Reload preview" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:266 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:295 msgid "Reload preview" msgstr "Aktualizovat náhled" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:267 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:296 msgid "Use the currently stored template from the server" msgstr "Použít aktuálně uloženou šablonu ze serveru" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:275 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:304 msgid "Save the current template and reload the preview" msgstr "Uložit aktuální šablonu a znovu načíst náhled" @@ -338,11 +642,11 @@ msgstr "Uložit aktuální šablonu a znovu načíst náhled" #~ msgid "to preview" #~ msgstr "to preview" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:333 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:365 msgid "Select instance to preview" msgstr "Vyberte instanci pro náhled" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:377 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:409 msgid "Error rendering template" msgstr "Chyba při načítání šablony" @@ -379,6 +683,7 @@ msgid "This page does not exist" msgstr "" #: src/components/errors/PermissionDenied.tsx:8 +#: src/functions/notifications.tsx:24 msgid "Permission Denied" msgstr "" @@ -394,8 +699,8 @@ msgstr "" msgid "A server error occurred" msgstr "" -#: src/components/forms/ApiForm.tsx:151 -#: src/components/forms/ApiForm.tsx:555 +#: src/components/forms/ApiForm.tsx:154 +#: src/components/forms/ApiForm.tsx:579 msgid "Form Error" msgstr "Chyba formuláře" @@ -403,22 +708,22 @@ msgstr "Chyba formuláře" #~ msgid "Form Errors Exist" #~ msgstr "Form Errors Exist" -#: src/components/forms/ApiForm.tsx:563 +#: src/components/forms/ApiForm.tsx:587 msgid "Errors exist for one or more form fields" msgstr "" -#: src/components/forms/ApiForm.tsx:665 -#: src/tables/plugin/PluginListTable.tsx:388 +#: src/components/forms/ApiForm.tsx:698 +#: src/tables/plugin/PluginListTable.tsx:195 msgid "Update" msgstr "Aktualizovat" -#: src/components/forms/ApiForm.tsx:685 -#: src/components/items/ActionDropdown.tsx:195 +#: src/components/forms/ApiForm.tsx:718 +#: src/components/items/ActionDropdown.tsx:248 #: src/hooks/UseForm.tsx:122 -#: src/pages/Index/Scan.tsx:343 +#: src/pages/Index/Scan.tsx:357 #: src/pages/Notifications.tsx:123 -#: src/tables/RowActions.tsx:43 -#: src/tables/plugin/PluginListTable.tsx:420 +#: src/tables/RowActions.tsx:49 +#: src/tables/plugin/PluginListTable.tsx:232 msgid "Delete" msgstr "Odstranit" @@ -428,14 +733,6 @@ msgstr "Odstranit" #~ msgid "Check your your input and try again." #~ msgstr "Check your your input and try again." -#: src/components/forms/AuthenticationForm.tsx:51 -msgid "Login successful" -msgstr "Přihlášení úspěšné" - -#: src/components/forms/AuthenticationForm.tsx:52 -msgid "Logged in successfully" -msgstr "Přihlášení proběhlo úspěšně" - #: src/components/forms/AuthenticationForm.tsx:52 #~ msgid "Welcome back!" #~ msgstr "Welcome back!" @@ -444,14 +741,22 @@ msgstr "Přihlášení proběhlo úspěšně" #~ msgid "Login successfull" #~ msgstr "Login successfull" -#: src/components/forms/AuthenticationForm.tsx:58 +#: src/components/forms/AuthenticationForm.tsx:55 +msgid "Login successful" +msgstr "Přihlášení úspěšné" + +#: src/components/forms/AuthenticationForm.tsx:56 +msgid "Logged in successfully" +msgstr "Přihlášení proběhlo úspěšně" + +#: src/components/forms/AuthenticationForm.tsx:61 msgid "Login failed" msgstr "Přihlášení se nezdařilo" -#: src/components/forms/AuthenticationForm.tsx:59 -#: src/components/forms/AuthenticationForm.tsx:76 -#: src/components/forms/AuthenticationForm.tsx:211 -#: src/functions/auth.tsx:164 +#: src/components/forms/AuthenticationForm.tsx:62 +#: src/components/forms/AuthenticationForm.tsx:79 +#: src/components/forms/AuthenticationForm.tsx:214 +#: src/functions/auth.tsx:175 msgid "Check your input and try again." msgstr "Zkontrolujte vstup a zkuste to znovu." @@ -460,45 +765,46 @@ msgstr "Zkontrolujte vstup a zkuste to znovu." #~ msgid "Mail delivery successfull" #~ msgstr "Mail delivery successfull" -#: src/components/forms/AuthenticationForm.tsx:70 -#: src/functions/auth.tsx:155 +#: src/components/forms/AuthenticationForm.tsx:73 +#: src/functions/auth.tsx:166 msgid "Mail delivery successful" msgstr "E-mail byl doručen úspěšně" -#: src/components/forms/AuthenticationForm.tsx:71 +#: src/components/forms/AuthenticationForm.tsx:74 msgid "Check your inbox for the login link. If you have an account, you will receive a login link. Check in spam too." msgstr "Zkontrolujte doručenou poštu pro přihlašovací odkaz. Pokud máte účet, obdržíte přihlašovací odkaz. Zkontrolujte také spam." -#: src/components/forms/AuthenticationForm.tsx:75 +#: src/components/forms/AuthenticationForm.tsx:78 msgid "Mail delivery failed" msgstr "Odeslání e-mailu se nezdařilo" -#: src/components/forms/AuthenticationForm.tsx:95 +#: src/components/forms/AuthenticationForm.tsx:98 msgid "Or continue with other methods" msgstr "Nebo pokračovat jinými metodami" -#: src/components/forms/AuthenticationForm.tsx:106 -#: src/components/forms/AuthenticationForm.tsx:227 +#: src/components/forms/AuthenticationForm.tsx:109 +#: src/components/forms/AuthenticationForm.tsx:230 +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:67 msgid "Username" msgstr "Uživatelské jméno" -#: src/components/forms/AuthenticationForm.tsx:107 -#: src/components/forms/AuthenticationForm.tsx:228 +#: src/components/forms/AuthenticationForm.tsx:110 +#: src/components/forms/AuthenticationForm.tsx:231 msgid "Your username" msgstr "Vaše uživatelské jméno" -#: src/components/forms/AuthenticationForm.tsx:112 -#: src/components/forms/AuthenticationForm.tsx:240 -#: src/pages/Auth/Set-Password.tsx:106 +#: src/components/forms/AuthenticationForm.tsx:115 +#: src/components/forms/AuthenticationForm.tsx:243 +#: src/pages/Auth/Set-Password.tsx:101 msgid "Password" msgstr "Heslo" -#: src/components/forms/AuthenticationForm.tsx:113 -#: src/components/forms/AuthenticationForm.tsx:241 +#: src/components/forms/AuthenticationForm.tsx:116 +#: src/components/forms/AuthenticationForm.tsx:244 msgid "Your password" msgstr "Vaše heslo" -#: src/components/forms/AuthenticationForm.tsx:125 +#: src/components/forms/AuthenticationForm.tsx:128 #: src/pages/Auth/Reset.tsx:26 msgid "Reset password" msgstr "Obnovit heslo" @@ -507,77 +813,79 @@ msgstr "Obnovit heslo" #~ msgid "Log in" #~ msgstr "Log in" -#: src/components/forms/AuthenticationForm.tsx:134 -#: src/components/forms/AuthenticationForm.tsx:233 +#: src/components/forms/AuthenticationForm.tsx:136 +#~ msgid "I will use username and password" +#~ msgstr "I will use username and password" + +#: src/components/forms/AuthenticationForm.tsx:137 +#: src/components/forms/AuthenticationForm.tsx:236 #: src/pages/Auth/Reset.tsx:31 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:51 msgid "Email" msgstr "E-mail" -#: src/components/forms/AuthenticationForm.tsx:135 +#: src/components/forms/AuthenticationForm.tsx:138 #: src/pages/Auth/Reset.tsx:32 -#: src/pages/Auth/Set-Password.tsx:107 +#: src/pages/Auth/Set-Password.tsx:102 msgid "We will send you a link to login - if you are registered" msgstr "Zašleme vám přihlašovací odkaz - pokud jste registrováni" -#: src/components/forms/AuthenticationForm.tsx:136 -#~ msgid "I will use username and password" -#~ msgstr "I will use username and password" - -#: src/components/forms/AuthenticationForm.tsx:151 +#: src/components/forms/AuthenticationForm.tsx:154 msgid "Send me an email" msgstr "Poslat si email" -#: src/components/forms/AuthenticationForm.tsx:153 +#: src/components/forms/AuthenticationForm.tsx:156 msgid "Use username and password" msgstr "Použijte uživatelské jméno a heslo" -#: src/components/forms/AuthenticationForm.tsx:162 +#: src/components/forms/AuthenticationForm.tsx:165 msgid "Log In" msgstr "Přihlásit se" -#: src/components/forms/AuthenticationForm.tsx:164 +#: src/components/forms/AuthenticationForm.tsx:167 +#: src/pages/Auth/Reset.tsx:41 +#: src/pages/Auth/Set-Password.tsx:107 msgid "Send Email" msgstr "Odeslat e-mail" -#: src/components/forms/AuthenticationForm.tsx:193 +#: src/components/forms/AuthenticationForm.tsx:196 msgid "Registration successful" msgstr "Registrace proběhla úspěšně" -#: src/components/forms/AuthenticationForm.tsx:194 +#: src/components/forms/AuthenticationForm.tsx:197 msgid "Please confirm your email address to complete the registration" msgstr "Potvrďte, prosím, svou e-mailovou adresu pro dokončení registrace" -#: src/components/forms/AuthenticationForm.tsx:210 +#: src/components/forms/AuthenticationForm.tsx:213 msgid "Input error" msgstr "Chyba vstupu" -#: src/components/forms/AuthenticationForm.tsx:234 +#: src/components/forms/AuthenticationForm.tsx:237 msgid "This will be used for a confirmation" msgstr "Toto bude použito pro potvrzení" -#: src/components/forms/AuthenticationForm.tsx:246 +#: src/components/forms/AuthenticationForm.tsx:249 msgid "Password repeat" msgstr "Opakujte heslo" -#: src/components/forms/AuthenticationForm.tsx:247 +#: src/components/forms/AuthenticationForm.tsx:250 msgid "Repeat password" msgstr "Zadejte heslo znova" -#: src/components/forms/AuthenticationForm.tsx:259 -#: src/components/forms/AuthenticationForm.tsx:304 +#: src/components/forms/AuthenticationForm.tsx:262 +#: src/components/forms/AuthenticationForm.tsx:307 msgid "Register" msgstr "Registrovat" -#: src/components/forms/AuthenticationForm.tsx:265 +#: src/components/forms/AuthenticationForm.tsx:268 msgid "Or use SSO" msgstr "Nebo použijte SSO" -#: src/components/forms/AuthenticationForm.tsx:296 +#: src/components/forms/AuthenticationForm.tsx:299 msgid "Don't have an account?" msgstr "Nemáte účet?" -#: src/components/forms/AuthenticationForm.tsx:315 +#: src/components/forms/AuthenticationForm.tsx:318 msgid "Go back to login" msgstr "Zpět na přihlášení" @@ -588,19 +896,20 @@ msgstr "Server" #: src/components/forms/HostOptionsForm.tsx:42 #: src/components/forms/HostOptionsForm.tsx:70 +#: src/components/plugins/PluginDrawer.tsx:69 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:410 +#: src/pages/Index/Settings/AdminCenter/UnitManagmentPanel.tsx:19 #: src/pages/part/CategoryDetail.tsx:81 -#: src/pages/part/PartDetail.tsx:143 -#: src/pages/stock/LocationDetail.tsx:89 -#: src/tables/machine/MachineTypeTable.tsx:65 -#: src/tables/machine/MachineTypeTable.tsx:109 -#: src/tables/machine/MachineTypeTable.tsx:216 -#: src/tables/machine/MachineTypeTable.tsx:319 +#: src/pages/part/PartDetail.tsx:164 +#: src/pages/stock/LocationDetail.tsx:83 +#: src/tables/machine/MachineTypeTable.tsx:70 +#: src/tables/machine/MachineTypeTable.tsx:119 +#: src/tables/machine/MachineTypeTable.tsx:237 +#: src/tables/machine/MachineTypeTable.tsx:340 #: src/tables/plugin/PluginErrorTable.tsx:33 -#: src/tables/plugin/PluginListTable.tsx:126 #: src/tables/purchasing/ManufacturerPartParameterTable.tsx:32 #: src/tables/settings/GroupTable.tsx:147 -#: src/tables/settings/PendingTasksTable.tsx:28 +#: src/tables/settings/PendingTasksTable.tsx:32 #: src/tables/stock/LocationTypesTable.tsx:69 msgid "Name" msgstr "Jméno" @@ -650,7 +959,7 @@ msgid "Uncategorized" msgstr "" #: src/components/forms/fields/IconField.tsx:209 -#: src/components/nav/Layout.tsx:70 +#: src/components/nav/Layout.tsx:77 #: src/tables/part/PartThumbTable.tsx:192 msgid "Search..." msgstr "Hledat..." @@ -667,28 +976,27 @@ msgstr "" msgid "{0} icons" msgstr "" -#: src/components/forms/fields/RelatedModelField.tsx:318 -#: src/pages/Index/Settings/UserSettings.tsx:96 +#: src/components/forms/fields/RelatedModelField.tsx:319 +#: src/pages/Index/Settings/UserSettings.tsx:97 #: src/tables/Search.tsx:23 msgid "Search" msgstr "Hledat" -#: src/components/forms/fields/RelatedModelField.tsx:319 +#: src/components/forms/fields/RelatedModelField.tsx:320 #: src/components/modals/AboutInvenTreeModal.tsx:81 -#: src/components/widgets/WidgetLayout.tsx:120 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:316 msgid "Loading" msgstr "Načítání" -#: src/components/forms/fields/RelatedModelField.tsx:321 +#: src/components/forms/fields/RelatedModelField.tsx:322 msgid "No results found" msgstr "Nebyly nalezeny žádné výsledky" -#: src/components/forms/fields/TableField.tsx:52 -msgid "modelRenderer entry required for tables" -msgstr "Položka modelRenderer je požadovaná pro tabulky" +#: src/components/forms/fields/TableField.tsx:72 +#~ msgid "modelRenderer entry required for tables" +#~ msgstr "modelRenderer entry required for tables" -#: src/components/forms/fields/TableField.tsx:76 +#: src/components/forms/fields/TableField.tsx:167 msgid "No entries available" msgstr "Nejsou žádné záznamy" @@ -741,7 +1049,7 @@ msgid "Filter by row validation status" msgstr "" #: src/components/importer/ImportDataSelector.tsx:365 -#: src/tables/build/BuildOutputTable.tsx:266 +#: src/tables/build/BuildOutputTable.tsx:407 msgid "Complete" msgstr "" @@ -749,20 +1057,21 @@ msgstr "" msgid "Filter by row completion status" msgstr "" -#: src/components/importer/ImportDataSelector.tsx:383 +#: src/components/importer/ImportDataSelector.tsx:384 msgid "Import selected rows" msgstr "" -#: src/components/importer/ImportDataSelector.tsx:398 +#: src/components/importer/ImportDataSelector.tsx:399 msgid "Processing Data" msgstr "" -#: src/components/importer/ImporterColumnSelector.tsx:50 -#: src/components/importer/ImporterColumnSelector.tsx:176 +#: src/components/importer/ImporterColumnSelector.tsx:53 +#: src/components/importer/ImporterColumnSelector.tsx:179 +#: src/components/items/ErrorItem.tsx:12 msgid "An error occurred" msgstr "" -#: src/components/importer/ImporterColumnSelector.tsx:62 +#: src/components/importer/ImporterColumnSelector.tsx:65 msgid "Select column, or leave blank to ignore this field." msgstr "" @@ -778,51 +1087,51 @@ msgstr "" #~ msgid "Imported Column Name" #~ msgstr "Imported Column Name" -#: src/components/importer/ImporterColumnSelector.tsx:182 +#: src/components/importer/ImporterColumnSelector.tsx:185 msgid "Ignore this field" msgstr "" -#: src/components/importer/ImporterColumnSelector.tsx:196 +#: src/components/importer/ImporterColumnSelector.tsx:199 msgid "Mapping data columns to database fields" msgstr "" -#: src/components/importer/ImporterColumnSelector.tsx:201 +#: src/components/importer/ImporterColumnSelector.tsx:204 msgid "Accept Column Mapping" msgstr "" -#: src/components/importer/ImporterColumnSelector.tsx:214 +#: src/components/importer/ImporterColumnSelector.tsx:217 msgid "Database Field" msgstr "" -#: src/components/importer/ImporterColumnSelector.tsx:215 +#: src/components/importer/ImporterColumnSelector.tsx:218 msgid "Field Description" msgstr "" -#: src/components/importer/ImporterColumnSelector.tsx:216 +#: src/components/importer/ImporterColumnSelector.tsx:219 msgid "Imported Column" msgstr "" -#: src/components/importer/ImporterColumnSelector.tsx:217 +#: src/components/importer/ImporterColumnSelector.tsx:220 msgid "Default Value" msgstr "" -#: src/components/importer/ImporterDrawer.tsx:44 +#: src/components/importer/ImporterDrawer.tsx:46 msgid "Upload File" msgstr "" -#: src/components/importer/ImporterDrawer.tsx:45 +#: src/components/importer/ImporterDrawer.tsx:47 msgid "Map Columns" msgstr "" -#: src/components/importer/ImporterDrawer.tsx:46 +#: src/components/importer/ImporterDrawer.tsx:48 msgid "Import Data" msgstr "" -#: src/components/importer/ImporterDrawer.tsx:47 +#: src/components/importer/ImporterDrawer.tsx:49 msgid "Process Data" msgstr "" -#: src/components/importer/ImporterDrawer.tsx:48 +#: src/components/importer/ImporterDrawer.tsx:50 msgid "Complete Import" msgstr "" @@ -830,28 +1139,28 @@ msgstr "" #~ msgid "Cancel import session" #~ msgstr "Cancel import session" -#: src/components/importer/ImporterDrawer.tsx:104 +#: src/components/importer/ImporterDrawer.tsx:106 msgid "Import Complete" msgstr "" -#: src/components/importer/ImporterDrawer.tsx:107 +#: src/components/importer/ImporterDrawer.tsx:109 msgid "Data has been imported successfully" msgstr "" -#: src/components/importer/ImporterDrawer.tsx:109 -#: src/components/importer/ImporterDrawer.tsx:118 +#: src/components/importer/ImporterDrawer.tsx:111 +#: src/components/importer/ImporterDrawer.tsx:120 msgid "Close" msgstr "" -#: src/components/importer/ImporterDrawer.tsx:115 +#: src/components/importer/ImporterDrawer.tsx:117 msgid "Unknown Status" msgstr "" -#: src/components/importer/ImporterDrawer.tsx:116 +#: src/components/importer/ImporterDrawer.tsx:118 msgid "Import session has unknown status" msgstr "" -#: src/components/importer/ImporterDrawer.tsx:135 +#: src/components/importer/ImporterDrawer.tsx:137 msgid "Importing Data" msgstr "" @@ -860,85 +1169,115 @@ msgid "Importing Records" msgstr "" #: src/components/importer/ImporterImportProgress.tsx:39 -msgid "Imported rows" +#: src/tables/settings/ImportSessionTable.tsx:78 +msgid "Imported Rows" msgstr "" -#: src/components/items/ActionDropdown.tsx:121 +#: src/components/importer/ImporterImportProgress.tsx:39 +#~ msgid "Imported rows" +#~ msgstr "Imported rows" + +#: src/components/items/ActionDropdown.tsx:126 +msgid "Options" +msgstr "" + +#: src/components/items/ActionDropdown.tsx:140 +#~ msgid "View Barcode" +#~ msgstr "View Barcode" + +#: src/components/items/ActionDropdown.tsx:162 +#: src/tables/InvenTreeTableHeader.tsx:159 +#: src/tables/InvenTreeTableHeader.tsx:160 msgid "Barcode Actions" msgstr "Akce čárového kódu" -#: src/components/items/ActionDropdown.tsx:140 -msgid "View Barcode" -msgstr "" +#: src/components/items/ActionDropdown.tsx:162 +#~ msgid "Link custom barcode" +#~ msgstr "Link custom barcode" -#: src/components/items/ActionDropdown.tsx:147 +#: src/components/items/ActionDropdown.tsx:167 msgid "View" msgstr "Zobrazit" -#: src/components/items/ActionDropdown.tsx:148 +#: src/components/items/ActionDropdown.tsx:169 msgid "View barcode" msgstr "Zobrazit čárový kód" -#: src/components/items/ActionDropdown.tsx:161 +#: src/components/items/ActionDropdown.tsx:175 msgid "Link Barcode" msgstr "Přiřadit čárový kód" -#: src/components/items/ActionDropdown.tsx:162 -msgid "Link custom barcode" -msgstr "Přiřadit vlatní čárový kód" +#: src/components/items/ActionDropdown.tsx:177 +msgid "Link a custom barcode to this item" +msgstr "" -#: src/components/items/ActionDropdown.tsx:173 -#: src/forms/PurchaseOrderForms.tsx:426 +#: src/components/items/ActionDropdown.tsx:183 +#: src/components/items/QRCode.tsx:193 +#: src/forms/PurchaseOrderForms.tsx:464 msgid "Unlink Barcode" msgstr "Odstranit čárový kód" -#: src/components/items/ActionDropdown.tsx:174 +#: src/components/items/ActionDropdown.tsx:185 msgid "Unlink custom barcode" msgstr "Odstranit vlastní čárový kód" -#: src/components/items/ActionDropdown.tsx:183 -#: src/tables/RowActions.tsx:33 +#: src/components/items/ActionDropdown.tsx:236 +#: src/tables/RowActions.tsx:39 msgid "Edit" msgstr "Upravit" -#: src/components/items/ActionDropdown.tsx:184 +#: src/components/items/ActionDropdown.tsx:237 msgid "Edit item" msgstr "" -#: src/components/items/ActionDropdown.tsx:196 +#: src/components/items/ActionDropdown.tsx:249 msgid "Delete item" msgstr "Smazat položku" -#: src/components/items/ActionDropdown.tsx:204 -#: src/components/items/ActionDropdown.tsx:205 +#: src/components/items/ActionDropdown.tsx:257 +#: src/components/items/ActionDropdown.tsx:258 msgid "Hold" msgstr "" -#: src/components/items/ActionDropdown.tsx:227 -#: src/tables/RowActions.tsx:23 +#: src/components/items/ActionDropdown.tsx:280 +#: src/tables/RowActions.tsx:29 msgid "Duplicate" msgstr "Duplikovat" -#: src/components/items/ActionDropdown.tsx:228 +#: src/components/items/ActionDropdown.tsx:281 msgid "Duplicate item" msgstr "Duplikovat produkt" +#: src/components/items/BarcodeInput.tsx:23 +msgid "Scan barcode data here using barcode scanner" +msgstr "" + +#: src/components/items/BarcodeInput.tsx:24 +#: src/tables/settings/BarcodeScanHistoryTable.tsx:65 +msgid "Barcode" +msgstr "" + +#: src/components/items/BarcodeInput.tsx:25 +msgid "Scan" +msgstr "" + #: src/components/items/DocTooltip.tsx:92 +#: src/components/items/GettingStartedCarousel.tsx:20 msgid "Read More" msgstr "Zjistit více" -#: src/components/items/ErrorItem.tsx:5 -#: src/tables/InvenTreeTable.tsx:487 +#: src/components/items/ErrorItem.tsx:8 +#: src/tables/InvenTreeTable.tsx:473 msgid "Unknown error" msgstr "Neznámá chyba" -#: src/components/items/ErrorItem.tsx:10 -msgid "An error occurred:" -msgstr "Vyskytla se chyba:" +#: src/components/items/ErrorItem.tsx:13 +#~ msgid "An error occurred:" +#~ msgstr "An error occurred:" #: src/components/items/GettingStartedCarousel.tsx:27 -msgid "Read more" -msgstr "Zobrazit více" +#~ msgid "Read more" +#~ msgstr "Read more" #: src/components/items/InfoItem.tsx:27 msgid "None" @@ -965,30 +1304,51 @@ msgstr "PLH" msgid "This panel is a placeholder." msgstr "Tento panel je zástupným znakem." -#: src/components/items/QRCode.tsx:87 +#: src/components/items/QRCode.tsx:89 msgid "Low (7%)" msgstr "" -#: src/components/items/QRCode.tsx:88 +#: src/components/items/QRCode.tsx:90 msgid "Medium (15%)" msgstr "" -#: src/components/items/QRCode.tsx:89 +#: src/components/items/QRCode.tsx:91 msgid "Quartile (25%)" msgstr "" -#: src/components/items/QRCode.tsx:90 +#: src/components/items/QRCode.tsx:92 msgid "High (30%)" msgstr "" -#: src/components/items/QRCode.tsx:107 -msgid "Barcode Data:" +#: src/components/items/QRCode.tsx:100 +msgid "Custom barcode" +msgstr "" + +#: src/components/items/QRCode.tsx:101 +msgid "A custom barcode is registered for this item. The shown code is not that custom barcode." msgstr "" #: src/components/items/QRCode.tsx:118 +msgid "Barcode Data:" +msgstr "" + +#: src/components/items/QRCode.tsx:129 msgid "Select Error Correction Level" msgstr "" +#: src/components/items/QRCode.tsx:171 +#: src/pages/part/PartDetail.tsx:239 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:187 +#: src/pages/sales/ReturnOrderDetail.tsx:157 +#: src/pages/sales/SalesOrderDetail.tsx:169 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:166 +msgid "Link" +msgstr "" + +#: src/components/items/QRCode.tsx:190 +msgid "This will remove the link to the associated barcode" +msgstr "" + #: src/components/modals/AboutInvenTreeModal.tsx:99 msgid "Version Information" msgstr "Informace o verzi" @@ -1062,11 +1422,11 @@ msgstr "Mobilní aplikace" msgid "Submit Bug Report" msgstr "Odeslat hlášení o chybě" -#: src/components/modals/AboutInvenTreeModal.tsx:183 +#: src/components/modals/AboutInvenTreeModal.tsx:181 msgid "Copy version information" msgstr "Kopírovat informace o verzi" -#: src/components/modals/AboutInvenTreeModal.tsx:192 +#: src/components/modals/AboutInvenTreeModal.tsx:189 #: src/components/modals/ServerInfoModal.tsx:147 msgid "Dismiss" msgstr "Zavřít" @@ -1091,61 +1451,20 @@ msgstr "Nepodařilo se načíst licenční informace" msgid "{key} Packages" msgstr "{key} balíčky" -#: src/components/modals/QrCodeModal.tsx:72 +#: src/components/modals/QrCodeModal.tsx:24 msgid "Unknown response" msgstr "Neznámá odpověď" -#: src/components/modals/QrCodeModal.tsx:102 -#: src/pages/Index/Scan.tsx:636 -msgid "Error while getting camera" -msgstr "Chyba při spouštění kamery" - -#: src/components/modals/QrCodeModal.tsx:125 -#: src/pages/Index/Scan.tsx:659 -msgid "Error while scanning" -msgstr "Chyba při skenování" - -#: src/components/modals/QrCodeModal.tsx:139 -#: src/pages/Index/Scan.tsx:673 -msgid "Error while stopping" -msgstr "" - -#: src/components/modals/QrCodeModal.tsx:154 -#: src/defaults/menuItems.tsx:21 -#: src/pages/Index/Scan.tsx:746 -msgid "Scanning" -msgstr "Skenování" - -#: src/components/modals/QrCodeModal.tsx:154 -#: src/pages/Index/Scan.tsx:746 -msgid "Not scanning" -msgstr "Není skenováno" - -#: src/components/modals/QrCodeModal.tsx:159 -#: src/pages/Index/Scan.tsx:752 -msgid "Select Camera" -msgstr "" - -#: src/components/modals/QrCodeModal.tsx:169 -#: src/pages/Index/Scan.tsx:737 -msgid "Start scanning" -msgstr "Začít skenovat" - -#: src/components/modals/QrCodeModal.tsx:176 -#: src/pages/Index/Scan.tsx:729 -msgid "Stop scanning" -msgstr "Zastavit skenování" - -#: src/components/modals/QrCodeModal.tsx:181 +#: src/components/modals/QrCodeModal.tsx:39 msgid "No scans yet!" msgstr "" -#: src/components/modals/QrCodeModal.tsx:201 +#: src/components/modals/QrCodeModal.tsx:57 msgid "Close modal" msgstr "" #: src/components/modals/ServerInfoModal.tsx:26 -#: src/pages/Index/Settings/SystemSettings.tsx:38 +#: src/pages/Index/Settings/SystemSettings.tsx:37 msgid "Server" msgstr "Server" @@ -1206,6 +1525,7 @@ msgid "Background Worker" msgstr "" #: src/components/modals/ServerInfoModal.tsx:101 +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:29 msgid "Background worker not running" msgstr "" @@ -1218,8 +1538,8 @@ msgid "Email settings not configured" msgstr "Email není nakonfigurován" #: src/components/modals/ServerInfoModal.tsx:121 -#: src/tables/plugin/PluginListTable.tsx:144 -#: src/tables/plugin/PluginListTable.tsx:294 +#: src/components/plugins/PluginDrawer.tsx:89 +#: src/tables/plugin/PluginListTable.tsx:116 msgid "Version" msgstr "Verze" @@ -1227,7 +1547,7 @@ msgstr "Verze" msgid "Server Version" msgstr "Verze serveru" -#: src/components/nav/Layout.tsx:73 +#: src/components/nav/Layout.tsx:80 msgid "Nothing found..." msgstr "Nic nenalezeno..." @@ -1237,18 +1557,26 @@ msgstr "Nic nenalezeno..." #~ msgstr "Profile" #: src/components/nav/MainMenu.tsx:52 +#: src/components/nav/NavigationDrawer.tsx:178 #: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:28 msgid "Settings" msgstr "Nastavení" +#: src/components/nav/MainMenu.tsx:59 +#: src/pages/Index/Settings/UserSettings.tsx:152 +msgid "Account Settings" +msgstr "" + #: src/components/nav/MainMenu.tsx:59 #: src/defaults/menuItems.tsx:15 -msgid "Account settings" -msgstr "Nastavení účtu" +#~ msgid "Account settings" +#~ msgstr "Account settings" #: src/components/nav/MainMenu.tsx:67 -#: src/defaults/menuItems.tsx:58 -#: src/pages/Index/Settings/SystemSettings.tsx:315 +#: src/components/nav/NavigationDrawer.tsx:141 +#: src/components/nav/SettingsHeader.tsx:49 +#: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:37 +#: src/pages/Index/Settings/SystemSettings.tsx:310 msgid "System Settings" msgstr "Nastavení systému" @@ -1260,14 +1588,11 @@ msgstr "Nastavení systému" #~ msgid "Switch to pseudo language" #~ msgstr "Switch to pseudo language" -#: src/components/nav/MainMenu.tsx:77 -msgid "Change Color Mode" -msgstr "" - #: src/components/nav/MainMenu.tsx:86 -#: src/defaults/actions.tsx:71 -#: src/defaults/menuItems.tsx:63 -#: src/pages/Index/Settings/AdminCenter/Index.tsx:221 +#: src/components/nav/NavigationDrawer.tsx:148 +#: src/components/nav/SettingsHeader.tsx:50 +#: src/defaults/actions.tsx:63 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:251 msgid "Admin Center" msgstr "Centrum správce" @@ -1275,458 +1600,732 @@ msgstr "Centrum správce" msgid "Logout" msgstr "Odhlásit" -#: src/components/nav/NavHoverMenu.tsx:65 -#: src/defaults/actions.tsx:60 -msgid "Open Navigation" -msgstr "Otevřít navigaci" - #: src/components/nav/NavHoverMenu.tsx:84 -msgid "View all" -msgstr "Zobrazit vše" +#~ msgid "View all" +#~ msgstr "View all" #: src/components/nav/NavHoverMenu.tsx:100 #: src/components/nav/NavHoverMenu.tsx:110 -msgid "Get started" -msgstr "Začínáme" +#~ msgid "Get started" +#~ msgstr "Get started" #: src/components/nav/NavHoverMenu.tsx:103 -msgid "Overview over high-level objects, functions and possible usecases." -msgstr "" - -#: src/components/nav/NavigationDrawer.tsx:57 -msgid "Navigation" -msgstr "Navigace" +#~ msgid "Overview over high-level objects, functions and possible usecases." +#~ msgstr "Overview over high-level objects, functions and possible usecases." #: src/components/nav/NavigationDrawer.tsx:60 -msgid "Pages" -msgstr "Stránky" +#~ msgid "Pages" +#~ msgstr "Pages" -#: src/components/nav/NavigationDrawer.tsx:65 -#: src/pages/Index/Settings/AdminCenter/Index.tsx:176 -#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:41 -msgid "Plugins" -msgstr "Pluginy" +#: src/components/nav/NavigationDrawer.tsx:77 +#: src/components/render/ModelType.tsx:31 +#: src/defaults/links.tsx:10 +#: src/pages/Index/Settings/SystemSettings.tsx:172 +#: src/pages/part/CategoryDetail.tsx:125 +#: src/pages/part/CategoryDetail.tsx:249 +#: src/pages/part/CategoryDetail.tsx:279 +#: src/pages/part/PartDetail.tsx:856 +msgid "Parts" +msgstr "Díly" -#: src/components/nav/NavigationDrawer.tsx:75 -#: src/defaults/actions.tsx:32 -msgid "Documentation" -msgstr "Dokumentace" +#: src/components/nav/NavigationDrawer.tsx:84 +#: src/components/render/Part.tsx:30 +#: src/defaults/links.tsx:11 +#: src/pages/Index/Settings/SystemSettings.tsx:205 +#: src/pages/part/PartDetail.tsx:593 +#: src/pages/stock/LocationDetail.tsx:352 +#: src/pages/stock/StockDetail.tsx:528 +#: src/tables/stock/StockItemTable.tsx:69 +msgid "Stock" +msgstr "Zásoby" -#: src/components/nav/NavigationDrawer.tsx:78 -msgid "About" -msgstr "O aplikaci" +#: src/components/nav/NavigationDrawer.tsx:91 +#: src/defaults/links.tsx:13 +#: src/pages/build/BuildDetail.tsx:530 +#: src/pages/build/BuildIndex.tsx:36 +msgid "Manufacturing" +msgstr "" -#: src/components/nav/NotificationDrawer.tsx:92 -#: src/pages/Index/Settings/SystemSettings.tsx:109 -#: src/pages/Index/Settings/UserSettings.tsx:126 +#: src/components/nav/NavigationDrawer.tsx:98 +#: src/defaults/links.tsx:18 +#: src/pages/company/ManufacturerDetail.tsx:9 +#: src/pages/company/ManufacturerPartDetail.tsx:258 +#: src/pages/company/SupplierDetail.tsx:9 +#: src/pages/company/SupplierPartDetail.tsx:336 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:480 +#: src/pages/purchasing/PurchasingIndex.tsx:60 +msgid "Purchasing" +msgstr "Nákup" + +#: src/components/nav/NavigationDrawer.tsx:105 +#: src/defaults/links.tsx:22 +#: src/pages/company/CustomerDetail.tsx:9 +#: src/pages/sales/ReturnOrderDetail.tsx:469 +#: src/pages/sales/SalesIndex.tsx:53 +#: src/pages/sales/SalesOrderDetail.tsx:520 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:343 +msgid "Sales" +msgstr "Prodej" + +#: src/components/nav/NavigationDrawer.tsx:129 +#: src/components/nav/NotificationDrawer.tsx:178 +#: src/pages/Index/Settings/SystemSettings.tsx:110 +#: src/pages/Index/Settings/UserSettings.tsx:127 #: src/pages/Notifications.tsx:65 #: src/pages/Notifications.tsx:151 msgid "Notifications" msgstr "Notifikace" -#: src/components/nav/NotificationDrawer.tsx:94 +#: src/components/nav/NavigationDrawer.tsx:135 +#: src/components/nav/SettingsHeader.tsx:48 +msgid "User Settings" +msgstr "" + +#: src/components/nav/NavigationDrawer.tsx:173 +msgid "Navigation" +msgstr "Navigace" + +#: src/components/nav/NavigationDrawer.tsx:183 +#: src/forms/PurchaseOrderForms.tsx:689 +#: src/forms/StockForms.tsx:614 +#: src/forms/StockForms.tsx:651 +#: src/forms/StockForms.tsx:677 +#: src/forms/StockForms.tsx:705 +#: src/forms/StockForms.tsx:736 +#: src/forms/StockForms.tsx:771 +#: src/forms/StockForms.tsx:813 +#: src/forms/StockForms.tsx:851 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:413 +#: src/tables/RowActions.tsx:129 +#: src/tables/build/BuildLineTable.tsx:101 +msgid "Actions" +msgstr "Akce" + +#: src/components/nav/NavigationDrawer.tsx:191 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:205 +#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:44 +msgid "Plugins" +msgstr "Pluginy" + +#: src/components/nav/NavigationDrawer.tsx:204 +#: src/defaults/actions.tsx:24 +msgid "Documentation" +msgstr "Dokumentace" + +#: src/components/nav/NavigationDrawer.tsx:210 +msgid "About" +msgstr "O aplikaci" + +#: src/components/nav/NotificationDrawer.tsx:180 msgid "Mark all as read" msgstr "" -#: src/components/nav/NotificationDrawer.tsx:104 +#: src/components/nav/NotificationDrawer.tsx:190 msgid "View all notifications" msgstr "" -#: src/components/nav/NotificationDrawer.tsx:123 +#: src/components/nav/NotificationDrawer.tsx:210 msgid "You have no unread notifications." msgstr "Nemáš žádné nové notifikace." -#: src/components/nav/NotificationDrawer.tsx:139 -#: src/components/nav/NotificationDrawer.tsx:145 -#: src/tables/notifications/NotificationsTable.tsx:36 -msgid "Notification" -msgstr "Notifikace" - -#: src/components/nav/NotificationDrawer.tsx:168 -#: src/pages/Notifications.tsx:73 -msgid "Mark as read" -msgstr "Označit jako přečtené" - -#: src/components/nav/SearchDrawer.tsx:78 +#: src/components/nav/SearchDrawer.tsx:85 msgid "results" msgstr "výsledky" -#: src/components/nav/SearchDrawer.tsx:370 +#: src/components/nav/SearchDrawer.tsx:380 msgid "Enter search text" msgstr "Zadejte hledaný text" -#: src/components/nav/SearchDrawer.tsx:397 +#: src/components/nav/SearchDrawer.tsx:391 +msgid "Refresh search results" +msgstr "" + +#: src/components/nav/SearchDrawer.tsx:402 +#: src/components/nav/SearchDrawer.tsx:409 msgid "Search Options" msgstr "Možnosti hledání" -#: src/components/nav/SearchDrawer.tsx:400 +#: src/components/nav/SearchDrawer.tsx:412 msgid "Regex search" msgstr "" -#: src/components/nav/SearchDrawer.tsx:410 +#: src/components/nav/SearchDrawer.tsx:421 msgid "Whole word search" msgstr "" -#: src/components/nav/SearchDrawer.tsx:451 +#: src/components/nav/SearchDrawer.tsx:461 msgid "An error occurred during search query" msgstr "" #: src/components/nav/SearchDrawer.tsx:462 -msgid "No results" +#~ msgid "No results" +#~ msgstr "No results" + +#: src/components/nav/SearchDrawer.tsx:472 +#: src/tables/part/PartTestTemplateTable.tsx:76 +msgid "No Results" msgstr "" -#: src/components/nav/SearchDrawer.tsx:465 +#: src/components/nav/SearchDrawer.tsx:475 msgid "No results available for search query" msgstr "" -#: src/components/render/Instance.tsx:217 +#: src/components/panels/AttachmentPanel.tsx:18 +msgid "Attachments" +msgstr "" + +#: src/components/panels/NotesPanel.tsx:24 +#: src/tables/build/BuildOrderTestTable.tsx:143 +#: src/tables/stock/StockTrackingTable.tsx:204 +msgid "Notes" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:47 +msgid "Plugin Inactive" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:50 +msgid "Plugin is not active" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:60 +msgid "Plugin Information" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:74 +#: src/pages/build/BuildDetail.tsx:116 +#: src/pages/company/CompanyDetail.tsx:89 +#: src/pages/company/ManufacturerPartDetail.tsx:89 +#: src/pages/company/ManufacturerPartDetail.tsx:116 +#: src/pages/company/SupplierPartDetail.tsx:140 +#: src/pages/part/CategoryDetail.tsx:101 +#: src/pages/part/PartDetail.tsx:178 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:136 +#: src/pages/sales/ReturnOrderDetail.tsx:107 +#: src/pages/sales/SalesOrderDetail.tsx:116 +#: src/pages/stock/LocationDetail.tsx:103 +#: src/tables/ColumnRenderers.tsx:92 +#: src/tables/bom/UsedInTable.tsx:44 +#: src/tables/build/BuildAllocatedStockTable.tsx:83 +#: src/tables/build/BuildLineTable.tsx:329 +#: src/tables/machine/MachineTypeTable.tsx:74 +#: src/tables/machine/MachineTypeTable.tsx:129 +#: src/tables/machine/MachineTypeTable.tsx:240 +#: src/tables/machine/MachineTypeTable.tsx:344 +#: src/tables/part/RelatedPartTable.tsx:66 +#: src/tables/plugin/PluginListTable.tsx:99 +#: src/tables/sales/SalesOrderAllocationTable.tsx:87 +#: src/tables/sales/SalesOrderLineItemTable.tsx:75 +#: src/tables/stock/LocationTypesTable.tsx:74 +msgid "Description" +msgstr "Popis" + +#: src/components/plugins/PluginDrawer.tsx:79 +msgid "Author" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:84 +#: src/pages/part/PartSchedulingDetail.tsx:277 +#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:40 +#: src/pages/part/pricing/SaleHistoryPanel.tsx:38 +#: src/tables/ColumnRenderers.tsx:215 +#: src/tables/build/BuildOrderTestTable.tsx:151 +#: src/tables/settings/StocktakeReportTable.tsx:40 +msgid "Date" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:94 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:398 +#: src/pages/part/PartDetail.tsx:331 +#: src/tables/bom/UsedInTable.tsx:84 +#: src/tables/company/CompanyTable.tsx:62 +#: src/tables/company/CompanyTable.tsx:96 +#: src/tables/machine/MachineListTable.tsx:333 +#: src/tables/machine/MachineListTable.tsx:605 +#: src/tables/part/ParametricPartTable.tsx:223 +#: src/tables/part/PartTable.tsx:178 +#: src/tables/part/PartVariantTable.tsx:15 +#: src/tables/plugin/PluginListTable.tsx:94 +#: src/tables/plugin/PluginListTable.tsx:401 +#: src/tables/purchasing/SupplierPartTable.tsx:100 +#: src/tables/purchasing/SupplierPartTable.tsx:190 +#: src/tables/settings/UserTable.tsx:283 +#: src/tables/stock/StockItemTable.tsx:293 +msgid "Active" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:106 +msgid "Package Name" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:112 +msgid "Installation Path" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:117 +#: src/tables/machine/MachineTypeTable.tsx:152 +#: src/tables/machine/MachineTypeTable.tsx:276 +#: src/tables/plugin/PluginListTable.tsx:406 +msgid "Builtin" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:122 +msgid "Package" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:134 +#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:53 +msgid "Plugin Settings" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:146 +#: src/components/render/ModelType.tsx:276 +msgid "Plugin Configuration" +msgstr "" + +#: src/components/plugins/PluginPanel.tsx:87 +#~ msgid "Error occurred while rendering plugin content" +#~ msgstr "Error occurred while rendering plugin content" + +#: src/components/plugins/PluginPanel.tsx:91 +#~ msgid "Plugin did not provide panel rendering function" +#~ msgstr "Plugin did not provide panel rendering function" + +#: src/components/plugins/PluginPanel.tsx:103 +#~ msgid "No content provided for this plugin" +#~ msgstr "No content provided for this plugin" + +#: src/components/plugins/PluginPanel.tsx:116 +#: src/components/plugins/PluginSettingsPanel.tsx:76 +#~ msgid "Error Loading Plugin" +#~ msgstr "Error Loading Plugin" + +#: src/components/plugins/PluginSettingsPanel.tsx:51 +#~ msgid "Error occurred while rendering plugin settings" +#~ msgstr "Error occurred while rendering plugin settings" + +#: src/components/plugins/PluginSettingsPanel.tsx:55 +#~ msgid "Plugin did not provide settings rendering function" +#~ msgstr "Plugin did not provide settings rendering function" + +#: src/components/plugins/PluginUIFeature.tsx:100 +msgid "Error occurred while rendering the template editor." +msgstr "" + +#: src/components/plugins/PluginUIFeature.tsx:111 +msgid "Error Loading Plugin Editor" +msgstr "" + +#: src/components/plugins/PluginUIFeature.tsx:147 +msgid "Error occurred while rendering the template preview." +msgstr "" + +#: src/components/plugins/PluginUIFeature.tsx:158 +msgid "Error Loading Plugin Preview" +msgstr "" + +#: src/components/plugins/RemoteComponent.tsx:70 +msgid "Invalid source or function name" +msgstr "" + +#: src/components/plugins/RemoteComponent.tsx:91 +msgid "Error Loading Content" +msgstr "" + +#: src/components/plugins/RemoteComponent.tsx:95 +msgid "Error occurred while loading plugin content" +msgstr "" + +#: src/components/render/Instance.tsx:224 msgid "Unknown model: {model}" msgstr "" -#: src/components/render/ModelType.tsx:22 -#: src/forms/BuildForms.tsx:213 -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/forms/StockForms.tsx:499 -#: src/forms/StockForms.tsx:533 -#: src/forms/StockForms.tsx:562 -#: src/forms/StockForms.tsx:590 -#: src/forms/StockForms.tsx:621 -#: src/forms/StockForms.tsx:656 -#: src/forms/StockForms.tsx:698 -#: src/forms/StockForms.tsx:734 -#: src/pages/build/BuildDetail.tsx:95 -#: src/pages/part/PartDetail.tsx:1073 -#: src/tables/build/BuildAllocatedStockTable.tsx:82 +#: src/components/render/ModelType.tsx:30 +#: src/forms/BuildForms.tsx:269 +#: src/forms/BuildForms.tsx:337 +#: src/forms/BuildForms.tsx:385 +#: src/forms/BuildForms.tsx:515 +#: src/forms/PurchaseOrderForms.tsx:689 +#: src/forms/ReturnOrderForms.tsx:190 +#: src/forms/SalesOrderForms.tsx:248 +#: src/forms/StockForms.tsx:261 +#: src/forms/StockForms.tsx:614 +#: src/forms/StockForms.tsx:651 +#: src/forms/StockForms.tsx:677 +#: src/forms/StockForms.tsx:705 +#: src/forms/StockForms.tsx:736 +#: src/forms/StockForms.tsx:771 +#: src/forms/StockForms.tsx:813 +#: src/forms/StockForms.tsx:851 +#: src/pages/build/BuildDetail.tsx:90 +#: src/pages/part/PartDetail.tsx:1094 +#: src/tables/build/BuildAllocatedStockTable.tsx:95 +#: src/tables/build/BuildLineTable.tsx:72 #: src/tables/part/PartTable.tsx:28 -#: src/tables/part/RelatedPartTable.tsx:45 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:88 -#: src/tables/sales/SalesOrderAllocationTable.tsx:68 -#: src/tables/stock/StockTrackingTable.tsx:74 +#: src/tables/part/RelatedPartTable.tsx:47 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:130 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:100 +#: src/tables/sales/SalesOrderAllocationTable.tsx:99 +#: src/tables/stock/StockTrackingTable.tsx:78 msgid "Part" msgstr "Díl" -#: src/components/render/ModelType.tsx:23 -#: src/defaults/links.tsx:29 -#: src/defaults/menuItems.tsx:33 -#: src/pages/Index/Settings/SystemSettings.tsx:173 -#: src/pages/part/CategoryDetail.tsx:119 -#: src/pages/part/CategoryDetail.tsx:244 -#: src/pages/part/CategoryDetail.tsx:274 -#: src/pages/part/PartDetail.tsx:827 -msgid "Parts" -msgstr "Díly" - -#: src/components/render/ModelType.tsx:31 +#: src/components/render/ModelType.tsx:40 msgid "Part Parameter Template" msgstr "Šablona parametru dílu" -#: src/components/render/ModelType.tsx:32 +#: src/components/render/ModelType.tsx:41 msgid "Part Parameter Templates" msgstr "" -#: src/components/render/ModelType.tsx:38 +#: src/components/render/ModelType.tsx:48 msgid "Part Test Template" msgstr "" -#: src/components/render/ModelType.tsx:39 +#: src/components/render/ModelType.tsx:49 msgid "Part Test Templates" msgstr "" -#: src/components/render/ModelType.tsx:45 -#: src/pages/company/SupplierPartDetail.tsx:203 -#: src/pages/company/SupplierPartDetail.tsx:375 -#: src/pages/stock/StockDetail.tsx:173 -#: src/tables/build/BuildAllocatedStockTable.tsx:131 +#: src/components/render/ModelType.tsx:56 +#: src/pages/company/SupplierPartDetail.tsx:364 +#: src/pages/stock/StockDetail.tsx:194 +#: src/tables/build/BuildAllocatedStockTable.tsx:152 #: src/tables/part/PartPurchaseOrdersTable.tsx:49 -#: src/tables/purchasing/SupplierPartTable.tsx:68 +#: src/tables/purchasing/SupplierPartTable.tsx:70 +#: src/tables/stock/StockItemTable.tsx:229 msgid "Supplier Part" msgstr "Dodavatel dílu" -#: src/components/render/ModelType.tsx:46 +#: src/components/render/ModelType.tsx:57 msgid "Supplier Parts" msgstr "" -#: src/components/render/ModelType.tsx:54 -#: src/pages/company/ManufacturerPartDetail.tsx:132 +#: src/components/render/ModelType.tsx:66 #: src/tables/part/PartPurchaseOrdersTable.tsx:55 +#: src/tables/stock/StockItemTable.tsx:234 msgid "Manufacturer Part" msgstr "" -#: src/components/render/ModelType.tsx:55 +#: src/components/render/ModelType.tsx:67 msgid "Manufacturer Parts" msgstr "" -#: src/components/render/ModelType.tsx:63 -#: src/pages/part/CategoryDetail.tsx:305 +#: src/components/render/ModelType.tsx:76 +#: src/pages/part/CategoryDetail.tsx:310 msgid "Part Category" msgstr "" -#: src/components/render/ModelType.tsx:64 -#: src/pages/part/CategoryDetail.tsx:258 -#: src/pages/part/CategoryDetail.tsx:296 -#: src/pages/part/PartDetail.tsx:1063 +#: src/components/render/ModelType.tsx:77 +#: src/pages/part/CategoryDetail.tsx:263 +#: src/pages/part/CategoryDetail.tsx:301 +#: src/pages/part/PartDetail.tsx:1084 msgid "Part Categories" msgstr "" -#: src/components/render/ModelType.tsx:72 -#: src/pages/stock/StockDetail.tsx:624 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:94 -#: src/tables/stock/StockTrackingTable.tsx:45 +#: src/components/render/ModelType.tsx:86 +#: src/forms/BuildForms.tsx:337 +#: src/forms/BuildForms.tsx:385 +#: src/forms/BuildForms.tsx:515 +#: src/forms/SalesOrderForms.tsx:248 +#: src/pages/stock/StockDetail.tsx:839 +#: src/tables/stock/StockTrackingTable.tsx:49 msgid "Stock Item" msgstr "Skladová položka" -#: src/components/render/ModelType.tsx:73 +#: src/components/render/ModelType.tsx:87 #: src/pages/company/CompanyDetail.tsx:203 -#: src/pages/stock/LocationDetail.tsx:128 -#: src/pages/stock/LocationDetail.tsx:181 -#: src/pages/stock/LocationDetail.tsx:395 +#: src/pages/part/PartStocktakeDetail.tsx:113 +#: src/pages/stock/LocationDetail.tsx:122 +#: src/pages/stock/LocationDetail.tsx:175 +#: src/pages/stock/LocationDetail.tsx:380 msgid "Stock Items" msgstr "Skladové položky" -#: src/components/render/ModelType.tsx:81 +#: src/components/render/ModelType.tsx:96 msgid "Stock Location" msgstr "Umístění skladu" -#: src/components/render/ModelType.tsx:82 -#: src/pages/stock/LocationDetail.tsx:195 -#: src/pages/stock/LocationDetail.tsx:387 -#: src/pages/stock/StockDetail.tsx:616 +#: src/components/render/ModelType.tsx:97 +#: src/pages/stock/LocationDetail.tsx:189 +#: src/pages/stock/LocationDetail.tsx:372 +#: src/pages/stock/StockDetail.tsx:831 msgid "Stock Locations" msgstr "" -#: src/components/render/ModelType.tsx:90 +#: src/components/render/ModelType.tsx:106 msgid "Stock Location Type" msgstr "" -#: src/components/render/ModelType.tsx:91 +#: src/components/render/ModelType.tsx:107 msgid "Stock Location Types" msgstr "" -#: src/components/render/ModelType.tsx:95 +#: src/components/render/ModelType.tsx:112 +#: src/pages/part/PartDetail.tsx:712 msgid "Stock History" msgstr "Historie skladu" -#: src/components/render/ModelType.tsx:96 +#: src/components/render/ModelType.tsx:113 msgid "Stock Histories" msgstr "Historie skladů" -#: src/components/render/ModelType.tsx:100 -#: src/defaults/links.tsx:31 -#: src/defaults/menuItems.tsx:43 +#: src/components/render/ModelType.tsx:118 msgid "Build" msgstr "" -#: src/components/render/ModelType.tsx:101 +#: src/components/render/ModelType.tsx:119 msgid "Builds" msgstr "" -#: src/components/render/ModelType.tsx:109 +#: src/components/render/ModelType.tsx:128 msgid "Build Line" msgstr "" -#: src/components/render/ModelType.tsx:110 +#: src/components/render/ModelType.tsx:129 msgid "Build Lines" msgstr "" -#: src/components/render/ModelType.tsx:117 +#: src/components/render/ModelType.tsx:137 msgid "Build Item" msgstr "" -#: src/components/render/ModelType.tsx:118 +#: src/components/render/ModelType.tsx:138 msgid "Build Items" msgstr "" -#: src/components/render/ModelType.tsx:122 -#: src/pages/company/CompanyDetail.tsx:339 +#: src/components/render/ModelType.tsx:143 +#: src/pages/company/CompanyDetail.tsx:321 msgid "Company" msgstr "Firma" -#: src/components/render/ModelType.tsx:123 +#: src/components/render/ModelType.tsx:144 msgid "Companies" msgstr "Firmy" -#: src/components/render/ModelType.tsx:131 +#: src/components/render/ModelType.tsx:153 +#: src/pages/build/BuildDetail.tsx:195 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:204 +#: src/pages/sales/ReturnOrderDetail.tsx:174 +#: src/pages/sales/SalesOrderDetail.tsx:186 #: src/tables/TableHoverCard.tsx:81 -#: src/tables/build/BuildOrderTable.tsx:140 -#: src/tables/purchasing/PurchaseOrderTable.tsx:64 -#: src/tables/sales/ReturnOrderTable.tsx:55 -#: src/tables/sales/SalesOrderTable.tsx:62 +#: src/tables/build/BuildOrderTable.tsx:135 +#: src/tables/purchasing/PurchaseOrderTable.tsx:69 +#: src/tables/sales/ReturnOrderTable.tsx:67 +#: src/tables/sales/SalesOrderTable.tsx:67 msgid "Project Code" msgstr "Kód projektu" -#: src/components/render/ModelType.tsx:132 -#: src/pages/Index/Settings/AdminCenter/Index.tsx:128 +#: src/components/render/ModelType.tsx:154 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:145 msgid "Project Codes" msgstr "Kódy projektu" -#: src/components/render/ModelType.tsx:138 +#: src/components/render/ModelType.tsx:161 #: src/pages/part/pricing/PurchaseHistoryPanel.tsx:32 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:480 -#: src/tables/part/PartPurchaseOrdersTable.tsx:32 -#: src/tables/stock/StockTrackingTable.tsx:107 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:477 +#: src/pages/stock/StockDetail.tsx:253 +#: src/tables/part/PartPurchaseOrdersTable.tsx:31 +#: src/tables/stock/StockItemTable.tsx:222 +#: src/tables/stock/StockTrackingTable.tsx:111 msgid "Purchase Order" msgstr "" -#: src/components/render/ModelType.tsx:139 -#: src/pages/Index/Settings/SystemSettings.tsx:255 +#: src/components/render/ModelType.tsx:162 +#: src/pages/Index/Settings/SystemSettings.tsx:249 #: src/pages/company/CompanyDetail.tsx:196 -#: src/pages/company/SupplierPartDetail.tsx:237 -#: src/pages/part/PartDetail.tsx:662 +#: src/pages/company/SupplierPartDetail.tsx:249 +#: src/pages/part/PartDetail.tsx:683 #: src/pages/purchasing/PurchasingIndex.tsx:25 msgid "Purchase Orders" msgstr "" -#: src/components/render/ModelType.tsx:147 +#: src/components/render/ModelType.tsx:171 msgid "Purchase Order Line" msgstr "" -#: src/components/render/ModelType.tsx:148 +#: src/components/render/ModelType.tsx:172 msgid "Purchase Order Lines" msgstr "" -#: src/components/render/ModelType.tsx:152 -#: src/pages/build/BuildDetail.tsx:153 -#: src/pages/sales/SalesOrderDetail.tsx:520 -#: src/pages/stock/StockDetail.tsx:221 -#: src/tables/sales/SalesOrderAllocationTable.tsx:50 -#: src/tables/stock/StockTrackingTable.tsx:118 +#: src/components/render/ModelType.tsx:177 +#: src/pages/build/BuildDetail.tsx:148 +#: src/pages/part/pricing/SaleHistoryPanel.tsx:24 +#: src/pages/sales/SalesOrderDetail.tsx:515 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:92 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:341 +#: src/pages/stock/StockDetail.tsx:262 +#: src/tables/sales/SalesOrderAllocationTable.tsx:80 +#: src/tables/stock/StockTrackingTable.tsx:122 msgid "Sales Order" msgstr "" -#: src/components/render/ModelType.tsx:153 -#: src/pages/Index/Settings/SystemSettings.tsx:270 +#: src/components/render/ModelType.tsx:178 +#: src/pages/Index/Settings/SystemSettings.tsx:264 #: src/pages/company/CompanyDetail.tsx:216 -#: src/pages/part/PartDetail.tsx:669 +#: src/pages/part/PartDetail.tsx:695 #: src/pages/sales/SalesIndex.tsx:26 msgid "Sales Orders" msgstr "" -#: src/components/render/ModelType.tsx:161 +#: src/components/render/ModelType.tsx:187 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:340 msgid "Sales Order Shipment" msgstr "" -#: src/components/render/ModelType.tsx:162 +#: src/components/render/ModelType.tsx:188 msgid "Sales Order Shipments" msgstr "" -#: src/components/render/ModelType.tsx:168 -#: src/pages/sales/ReturnOrderDetail.tsx:469 -#: src/tables/stock/StockTrackingTable.tsx:129 +#: src/components/render/ModelType.tsx:195 +#: src/pages/sales/ReturnOrderDetail.tsx:464 +#: src/tables/stock/StockTrackingTable.tsx:133 msgid "Return Order" msgstr "" -#: src/components/render/ModelType.tsx:169 -#: src/pages/Index/Settings/SystemSettings.tsx:286 +#: src/components/render/ModelType.tsx:196 +#: src/pages/Index/Settings/SystemSettings.tsx:280 #: src/pages/company/CompanyDetail.tsx:223 +#: src/pages/part/PartDetail.tsx:702 #: src/pages/sales/SalesIndex.tsx:32 msgid "Return Orders" msgstr "" -#: src/components/render/ModelType.tsx:177 +#: src/components/render/ModelType.tsx:205 msgid "Return Order Line Item" msgstr "" -#: src/components/render/ModelType.tsx:178 +#: src/components/render/ModelType.tsx:206 msgid "Return Order Line Items" msgstr "" -#: src/components/render/ModelType.tsx:182 -#: src/tables/company/AddressTable.tsx:47 +#: src/components/render/ModelType.tsx:211 +#: src/tables/company/AddressTable.tsx:48 msgid "Address" msgstr "Adresa" -#: src/components/render/ModelType.tsx:183 -#: src/pages/company/CompanyDetail.tsx:253 +#: src/components/render/ModelType.tsx:212 +#: src/pages/company/CompanyDetail.tsx:255 msgid "Addresses" msgstr "Adresy" -#: src/components/render/ModelType.tsx:189 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:195 -#: src/pages/sales/ReturnOrderDetail.tsx:174 -#: src/pages/sales/SalesOrderDetail.tsx:183 +#: src/components/render/ModelType.tsx:219 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:196 +#: src/pages/sales/ReturnOrderDetail.tsx:166 +#: src/pages/sales/SalesOrderDetail.tsx:178 msgid "Contact" msgstr "Kontakt" -#: src/components/render/ModelType.tsx:190 -#: src/pages/company/CompanyDetail.tsx:247 +#: src/components/render/ModelType.tsx:220 +#: src/pages/company/CompanyDetail.tsx:249 msgid "Contacts" msgstr "Kontakty" -#: src/components/render/ModelType.tsx:196 +#: src/components/render/ModelType.tsx:227 msgid "Owner" msgstr "Správce" -#: src/components/render/ModelType.tsx:197 +#: src/components/render/ModelType.tsx:228 msgid "Owners" msgstr "Správci" -#: src/components/render/ModelType.tsx:203 -#: src/tables/settings/ImportSessionTable.tsx:121 -#: src/tables/stock/StockItemTestResultTable.tsx:198 -#: src/tables/stock/StockTrackingTable.tsx:195 +#: src/components/render/ModelType.tsx:234 +#~ msgid "Purchase Order Line Item" +#~ msgstr "Purchase Order Line Item" + +#: src/components/render/ModelType.tsx:235 +#: src/tables/settings/BarcodeScanHistoryTable.tsx:80 +#: src/tables/settings/BarcodeScanHistoryTable.tsx:211 +#: src/tables/settings/ImportSessionTable.tsx:120 +#: src/tables/settings/StocktakeReportTable.tsx:44 +#: src/tables/stock/StockItemTestResultTable.tsx:204 +#: src/tables/stock/StockTrackingTable.tsx:181 +#: src/tables/stock/StockTrackingTable.tsx:210 msgid "User" msgstr "Uživatel" -#: src/components/render/ModelType.tsx:204 -#: src/pages/Index/Settings/AdminCenter/Index.tsx:98 +#: src/components/render/ModelType.tsx:236 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:109 #: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:13 msgid "Users" msgstr "Uživatelé" -#: src/components/render/ModelType.tsx:210 +#: src/components/render/ModelType.tsx:243 msgid "Group" msgstr "" -#: src/components/render/ModelType.tsx:211 +#: src/components/render/ModelType.tsx:244 #: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:20 -#: src/tables/settings/UserTable.tsx:138 -#: src/tables/settings/UserTable.tsx:201 +#: src/tables/settings/UserTable.tsx:137 +#: src/tables/settings/UserTable.tsx:200 msgid "Groups" msgstr "Skupiny" -#: src/components/render/ModelType.tsx:218 +#: src/components/render/ModelType.tsx:252 msgid "Import Session" msgstr "" -#: src/components/render/ModelType.tsx:219 +#: src/components/render/ModelType.tsx:253 msgid "Import Sessions" msgstr "" -#: src/components/render/ModelType.tsx:225 +#: src/components/render/ModelType.tsx:260 msgid "Label Template" msgstr "" -#: src/components/render/ModelType.tsx:226 -#: src/pages/Index/Settings/AdminCenter/Index.tsx:158 +#: src/components/render/ModelType.tsx:261 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:187 msgid "Label Templates" msgstr "" -#: src/components/render/ModelType.tsx:232 +#: src/components/render/ModelType.tsx:264 +#~ msgid "Unknown Model" +#~ msgstr "Unknown Model" + +#: src/components/render/ModelType.tsx:268 msgid "Report Template" msgstr "" -#: src/components/render/ModelType.tsx:233 -#: src/pages/Index/Settings/AdminCenter/Index.tsx:164 +#: src/components/render/ModelType.tsx:269 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:193 msgid "Report Templates" msgstr "" -#: src/components/render/ModelType.tsx:239 -msgid "Plugin Configuration" -msgstr "" - -#: src/components/render/ModelType.tsx:240 +#: src/components/render/ModelType.tsx:277 msgid "Plugin Configurations" msgstr "" +#: src/components/render/ModelType.tsx:284 +msgid "Content Type" +msgstr "" + +#: src/components/render/ModelType.tsx:285 +msgid "Content Types" +msgstr "" + +#: src/components/render/ModelType.tsx:291 +#: src/tables/machine/MachineListTable.tsx:351 +#: src/tables/machine/MachineTypeTable.tsx:282 +msgid "Errors" +msgstr "" + +#: src/components/render/ModelType.tsx:307 +#~ msgid "Purchase Order Line Items" +#~ msgstr "Purchase Order Line Items" + +#: src/components/render/ModelType.tsx:337 +#~ msgid "Unknown Models" +#~ msgstr "Unknown Models" + #: src/components/render/Order.tsx:121 +#: src/tables/sales/SalesOrderAllocationTable.tsx:136 msgid "Shipment" msgstr "" #: src/components/render/Part.tsx:25 #: src/components/render/Plugin.tsx:17 -#: src/pages/company/CompanyDetail.tsx:325 -#: src/pages/company/SupplierPartDetail.tsx:360 -#: src/pages/part/PartDetail.tsx:879 +#: src/pages/company/CompanyDetail.tsx:307 +#: src/pages/company/SupplierPartDetail.tsx:349 +#: src/pages/part/PartDetail.tsx:911 msgid "Inactive" msgstr "Neaktivní" @@ -1736,39 +2335,38 @@ msgstr "Neaktivní" msgid "No stock" msgstr "" -#: src/components/render/Part.tsx:30 -#: src/defaults/links.tsx:30 -#: src/defaults/menuItems.tsx:38 -#: src/pages/Index/Settings/SystemSettings.tsx:206 -#: src/pages/part/PartDetail.tsx:543 -#: src/pages/stock/LocationDetail.tsx:367 -#: src/pages/stock/StockDetail.tsx:411 -#: src/tables/stock/StockItemTable.tsx:68 -msgid "Stock" -msgstr "Zásoby" - -#: src/components/render/Stock.tsx:60 -#: src/pages/stock/StockDetail.tsx:150 -#: src/pages/stock/StockDetail.tsx:581 -#: src/tables/build/BuildAllocatedStockTable.tsx:102 -#: src/tables/sales/SalesOrderAllocationTable.tsx:80 +#: src/components/render/Stock.tsx:61 +#: src/forms/ReturnOrderForms.tsx:190 +#: src/pages/stock/StockDetail.tsx:166 +#: src/pages/stock/StockDetail.tsx:771 +#: src/tables/build/BuildAllocatedStockTable.tsx:123 +#: src/tables/build/BuildOutputTable.tsx:81 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:114 +#: src/tables/sales/SalesOrderAllocationTable.tsx:106 msgid "Serial Number" msgstr "Sériové číslo" -#: src/components/render/Stock.tsx:62 -#: src/forms/BuildForms.tsx:218 -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/pages/part/pricing/BomPricingPanel.tsx:109 +#: src/components/render/Stock.tsx:63 +#: src/forms/BuildForms.tsx:206 +#: src/forms/BuildForms.tsx:515 +#: src/forms/PurchaseOrderForms.tsx:689 +#: src/forms/SalesOrderForms.tsx:248 +#: src/pages/part/PartSchedulingDetail.tsx:80 +#: src/pages/part/PartStocktakeDetail.tsx:60 +#: src/pages/part/PartStocktakeDetail.tsx:234 +#: src/pages/part/PartStocktakeDetail.tsx:252 +#: src/pages/part/pricing/BomPricingPanel.tsx:148 #: src/pages/part/pricing/PriceBreakPanel.tsx:89 -#: src/pages/part/pricing/PriceBreakPanel.tsx:171 -#: src/pages/stock/StockDetail.tsx:145 -#: src/pages/stock/StockDetail.tsx:587 -#: src/tables/build/BuildOrderTestTable.tsx:197 -#: src/tables/part/PartPurchaseOrdersTable.tsx:92 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:143 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:171 +#: src/pages/part/pricing/PriceBreakPanel.tsx:172 +#: src/pages/stock/StockDetail.tsx:161 +#: src/pages/stock/StockDetail.tsx:777 +#: src/tables/build/BuildLineTable.tsx:79 +#: src/tables/build/BuildOrderTestTable.tsx:198 +#: src/tables/part/PartPurchaseOrdersTable.tsx:93 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:146 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:177 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:77 -#: src/tables/stock/StockTrackingTable.tsx:59 +#: src/tables/stock/StockTrackingTable.tsx:63 msgid "Quantity" msgstr "Množství" @@ -1842,10 +2440,6 @@ msgstr "" #~ msgid "Required Part" #~ msgstr "Required Part" -#: src/components/tables/build/BuildLineTable.tsx:152 -#~ msgid "Required Quantity" -#~ msgstr "Required Quantity" - #: src/components/tables/build/BuildOrderTable.tsx:52 #~ msgid "Progress" #~ msgstr "Progress" @@ -2126,14 +2720,6 @@ msgstr "" #~ msgid "user deleted" #~ msgstr "user deleted" -#: src/components/tables/settings/UserTable.tsx:168 -#~ msgid "First Name" -#~ msgstr "First Name" - -#: src/components/tables/settings/UserTable.tsx:173 -#~ msgid "Last Name" -#~ msgstr "Last Name" - #: src/components/tables/stock/StockItemTable.tsx:247 #~ msgid "Test Filter" #~ msgstr "Test Filter" @@ -2146,36 +2732,21 @@ msgstr "" #~ msgid "Stock location updated" #~ msgstr "Stock location updated" -#: src/components/widgets/DisplayWidget.tsx:11 -#: src/pages/Index/Settings/AccountSettings/DisplaySettingsPanel.tsx:17 -msgid "Display Settings" -msgstr "Nastavení zobrazení" - -#: src/components/widgets/DisplayWidget.tsx:15 -#: src/pages/Index/Settings/AccountSettings/DisplaySettingsPanel.tsx:23 -msgid "Color Mode" -msgstr "Barevný režim" - -#: src/components/widgets/DisplayWidget.tsx:21 -#: src/pages/Index/Settings/AccountSettings/DisplaySettingsPanel.tsx:33 -msgid "Language" -msgstr "Jazyk" - #: src/components/widgets/FeedbackWidget.tsx:19 -msgid "Something is new: Platform UI" -msgstr "" +#~ msgid "Something is new: Platform UI" +#~ msgstr "Something is new: Platform UI" #: src/components/widgets/FeedbackWidget.tsx:21 -msgid "We are building a new UI with a modern stack. What you currently see is not fixed and will be redesigned but demonstrates the UI/UX possibilities we will have going forward." -msgstr "Vytváříme nové uživatelské rozhraní s moderním zásobníkem. To, co v současné době vidíte, není opraveno a bude přepracováno, ale ukáže možnosti UI/UX, které budeme mít." +#~ msgid "We are building a new UI with a modern stack. What you currently see is not fixed and will be redesigned but demonstrates the UI/UX possibilities we will have going forward." +#~ msgstr "We are building a new UI with a modern stack. What you currently see is not fixed and will be redesigned but demonstrates the UI/UX possibilities we will have going forward." #: src/components/widgets/FeedbackWidget.tsx:32 -msgid "Provide Feedback" -msgstr "Odeslat zpětnou vazbu" +#~ msgid "Provide Feedback" +#~ msgstr "Provide Feedback" #: src/components/widgets/GetStartedWidget.tsx:11 -msgid "Getting started" -msgstr "Začínáme" +#~ msgid "Getting started" +#~ msgstr "Getting started" #: src/components/widgets/MarkdownEditor.tsx:108 #~ msgid "Failed to upload image" @@ -2186,28 +2757,24 @@ msgstr "Začínáme" #~ msgstr "Notes saved" #: src/components/widgets/WidgetLayout.tsx:166 -msgid "Layout" -msgstr "Rozvržení" +#~ msgid "Layout" +#~ msgstr "Layout" #: src/components/widgets/WidgetLayout.tsx:172 -msgid "Reset Layout" -msgstr "Resetovat rozložení" +#~ msgid "Reset Layout" +#~ msgstr "Reset Layout" #: src/components/widgets/WidgetLayout.tsx:185 -msgid "Stop Edit" -msgstr "Zastavit úpravy" - -#: src/components/widgets/WidgetLayout.tsx:185 -msgid "Edit Layout" -msgstr "Upravit rozvržení" +#~ msgid "Stop Edit" +#~ msgstr "Stop Edit" #: src/components/widgets/WidgetLayout.tsx:191 -msgid "Appearance" -msgstr "Vzhled" +#~ msgid "Appearance" +#~ msgstr "Appearance" #: src/components/widgets/WidgetLayout.tsx:203 -msgid "Show Boxes" -msgstr "" +#~ msgid "Show Boxes" +#~ msgstr "Show Boxes" #: src/contexts/LanguageContext.tsx:20 msgid "Arabic" @@ -2286,201 +2853,175 @@ msgid "Korean" msgstr "Korejština" #: src/contexts/LanguageContext.tsx:39 +msgid "Lithuanian" +msgstr "" + +#: src/contexts/LanguageContext.tsx:40 msgid "Latvian" msgstr "Lotyština" -#: src/contexts/LanguageContext.tsx:40 +#: src/contexts/LanguageContext.tsx:41 msgid "Dutch" msgstr "Holandština" -#: src/contexts/LanguageContext.tsx:41 +#: src/contexts/LanguageContext.tsx:42 msgid "Norwegian" msgstr "Norština" -#: src/contexts/LanguageContext.tsx:42 +#: src/contexts/LanguageContext.tsx:43 msgid "Polish" msgstr "Polština" -#: src/contexts/LanguageContext.tsx:43 +#: src/contexts/LanguageContext.tsx:44 msgid "Portuguese" msgstr "Portugalština" -#: src/contexts/LanguageContext.tsx:44 +#: src/contexts/LanguageContext.tsx:45 msgid "Portuguese (Brazilian)" msgstr "Portugalština (Brazilská)" -#: src/contexts/LanguageContext.tsx:45 +#: src/contexts/LanguageContext.tsx:46 msgid "Romanian" msgstr "" -#: src/contexts/LanguageContext.tsx:46 +#: src/contexts/LanguageContext.tsx:47 msgid "Russian" msgstr "Ruština" -#: src/contexts/LanguageContext.tsx:47 +#: src/contexts/LanguageContext.tsx:48 msgid "Slovak" msgstr "Slovenština" -#: src/contexts/LanguageContext.tsx:48 +#: src/contexts/LanguageContext.tsx:49 msgid "Slovenian" msgstr "Slovinština" -#: src/contexts/LanguageContext.tsx:49 +#: src/contexts/LanguageContext.tsx:50 msgid "Swedish" msgstr "Švédština" -#: src/contexts/LanguageContext.tsx:50 +#: src/contexts/LanguageContext.tsx:51 msgid "Thai" msgstr "Thajština" -#: src/contexts/LanguageContext.tsx:51 +#: src/contexts/LanguageContext.tsx:52 msgid "Turkish" msgstr "Turečtina" -#: src/contexts/LanguageContext.tsx:52 +#: src/contexts/LanguageContext.tsx:53 msgid "Ukrainian" msgstr "Ukrajinština" -#: src/contexts/LanguageContext.tsx:53 +#: src/contexts/LanguageContext.tsx:54 msgid "Vietnamese" msgstr "Vietnamština" -#: src/contexts/LanguageContext.tsx:54 +#: src/contexts/LanguageContext.tsx:55 msgid "Chinese (Simplified)" msgstr "Čínština (zjednodušená)" -#: src/contexts/LanguageContext.tsx:55 +#: src/contexts/LanguageContext.tsx:56 msgid "Chinese (Traditional)" msgstr "Čínština (tradiční)" #: src/defaults/actions.tsx:18 -#: src/defaults/links.tsx:27 -#: src/defaults/menuItems.tsx:9 -msgid "Home" -msgstr "Domů" - -#: src/defaults/actions.tsx:25 -#: src/defaults/links.tsx:28 -#: src/defaults/menuItems.tsx:28 -#: src/pages/Index/Dashboard.tsx:19 -#: src/pages/Index/Settings/UserSettings.tsx:46 -msgid "Dashboard" -msgstr "Přehled" - -#: src/defaults/actions.tsx:26 msgid "Go to the InvenTree dashboard" msgstr "Přejít na InvenTree nástěnku" -#: src/defaults/actions.tsx:33 +#: src/defaults/actions.tsx:18 +#: src/defaults/links.tsx:27 +#: src/defaults/menuItems.tsx:9 +#~ msgid "Home" +#~ msgstr "Home" + +#: src/defaults/actions.tsx:25 msgid "Visit the documentation to learn more about InvenTree" msgstr "Navštivte dokumentaci pro více informací o InvenTree" -#: src/defaults/actions.tsx:39 -#: src/defaults/links.tsx:98 -#: src/defaults/links.tsx:128 +#: src/defaults/actions.tsx:31 +#: src/defaults/links.tsx:92 +#: src/defaults/links.tsx:124 msgid "About InvenTree" msgstr "O InvenTree" -#: src/defaults/actions.tsx:40 -#: src/defaults/links.tsx:129 +#: src/defaults/actions.tsx:32 msgid "About the InvenTree org" msgstr "O InvenTree.org" -#: src/defaults/actions.tsx:46 +#: src/defaults/actions.tsx:38 msgid "Server Information" msgstr "Informace o serveru" -#: src/defaults/actions.tsx:47 -#: src/defaults/links.tsx:123 +#: src/defaults/actions.tsx:39 +#: src/defaults/links.tsx:118 msgid "About this Inventree instance" msgstr "O této instanci Inventree" -#: src/defaults/actions.tsx:53 -#: src/defaults/links.tsx:111 +#: src/defaults/actions.tsx:45 +#: src/defaults/links.tsx:105 +#: src/defaults/links.tsx:131 msgid "License Information" msgstr "Informace o licenci" -#: src/defaults/actions.tsx:54 -#: src/defaults/links.tsx:135 +#: src/defaults/actions.tsx:46 msgid "Licenses for dependencies of the service" msgstr "" -#: src/defaults/actions.tsx:61 +#: src/defaults/actions.tsx:52 +msgid "Open Navigation" +msgstr "Otevřít navigaci" + +#: src/defaults/actions.tsx:53 msgid "Open the main navigation menu" msgstr "Otevřít hlavní navigační menu" -#: src/defaults/actions.tsx:72 +#: src/defaults/actions.tsx:64 msgid "Go to the Admin Center" msgstr "" -#: src/defaults/dashboardItems.tsx:15 -msgid "Subscribed Parts" -msgstr "" - -#: src/defaults/dashboardItems.tsx:22 -msgid "Subscribed Categories" -msgstr "" - #: src/defaults/dashboardItems.tsx:29 -msgid "Latest Parts" -msgstr "Nejnovější díly" +#~ msgid "Latest Parts" +#~ msgstr "Latest Parts" #: src/defaults/dashboardItems.tsx:36 -msgid "BOM Waiting Validation" -msgstr "Čeká se na ověření BOM" +#~ msgid "BOM Waiting Validation" +#~ msgstr "BOM Waiting Validation" #: src/defaults/dashboardItems.tsx:43 -msgid "Recently Updated" -msgstr "Nedávno aktualizované" - -#: src/defaults/dashboardItems.tsx:50 -#: src/tables/part/PartTable.tsx:238 -msgid "Low Stock" -msgstr "Nízké zásoby" +#~ msgid "Recently Updated" +#~ msgstr "Recently Updated" #: src/defaults/dashboardItems.tsx:57 -msgid "Depleted Stock" -msgstr "Vyčerpané zásoby" +#~ msgid "Depleted Stock" +#~ msgstr "Depleted Stock" #: src/defaults/dashboardItems.tsx:64 -msgid "Required for Build Orders" -msgstr "" +#~ msgid "Required for Build Orders" +#~ msgstr "Required for Build Orders" #: src/defaults/dashboardItems.tsx:71 -msgid "Expired Stock" -msgstr "" +#~ msgid "Expired Stock" +#~ msgstr "Expired Stock" #: src/defaults/dashboardItems.tsx:78 -msgid "Stale Stock" -msgstr "" +#~ msgid "Stale Stock" +#~ msgstr "Stale Stock" #: src/defaults/dashboardItems.tsx:85 -msgid "Build Orders In Progress" -msgstr "" - -#: src/defaults/dashboardItems.tsx:92 -msgid "Overdue Build Orders" -msgstr "" +#~ msgid "Build Orders In Progress" +#~ msgstr "Build Orders In Progress" #: src/defaults/dashboardItems.tsx:99 -msgid "Outstanding Purchase Orders" -msgstr "" - -#: src/defaults/dashboardItems.tsx:106 -msgid "Overdue Purchase Orders" -msgstr "" +#~ msgid "Outstanding Purchase Orders" +#~ msgstr "Outstanding Purchase Orders" #: src/defaults/dashboardItems.tsx:113 -msgid "Outstanding Sales Orders" -msgstr "" - -#: src/defaults/dashboardItems.tsx:120 -msgid "Overdue Sales Orders" -msgstr "" +#~ msgid "Outstanding Sales Orders" +#~ msgstr "Outstanding Sales Orders" #: src/defaults/dashboardItems.tsx:127 -msgid "Current News" -msgstr "" +#~ msgid "Current News" +#~ msgstr "Current News" #: src/defaults/defaultHostList.tsx:8 #~ msgid "InvenTree Demo" @@ -2490,97 +3031,80 @@ msgstr "" #~ msgid "Local Server" #~ msgstr "Local Server" -#: src/defaults/links.tsx:12 -#: src/pages/company/CompanyDetail.tsx:96 -msgid "Website" -msgstr "Webová stránka" - #: src/defaults/links.tsx:17 -msgid "GitHub" -msgstr "GitHub" +#~ msgid "GitHub" +#~ msgstr "GitHub" #: src/defaults/links.tsx:22 -msgid "Demo" -msgstr "Demo" - -#: src/defaults/links.tsx:33 -#: src/defaults/menuItems.tsx:48 -#: src/pages/company/ManufacturerDetail.tsx:9 -#: src/pages/company/ManufacturerPartDetail.tsx:263 -#: src/pages/company/SupplierDetail.tsx:9 -#: src/pages/company/SupplierPartDetail.tsx:347 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:483 -#: src/pages/purchasing/PurchasingIndex.tsx:60 -msgid "Purchasing" -msgstr "Nákup" - -#: src/defaults/links.tsx:37 -#: src/defaults/menuItems.tsx:53 -#: src/pages/company/CustomerDetail.tsx:9 -#: src/pages/sales/ReturnOrderDetail.tsx:474 -#: src/pages/sales/SalesIndex.tsx:53 -#: src/pages/sales/SalesOrderDetail.tsx:525 -msgid "Sales" -msgstr "Prodej" +#~ msgid "Demo" +#~ msgstr "Demo" #: src/defaults/links.tsx:41 #: src/defaults/menuItems.tsx:71 #: src/pages/Index/Playground.tsx:217 -msgid "Playground" -msgstr "Playground" +#~ msgid "Playground" +#~ msgstr "Playground" -#: src/defaults/links.tsx:55 -msgid "Getting Started" -msgstr "Začínáme" - -#: src/defaults/links.tsx:56 -msgid "Getting started with InvenTree" -msgstr "Začínáme s InvenTree" - -#: src/defaults/links.tsx:62 +#: src/defaults/links.tsx:45 msgid "API" msgstr "API" -#: src/defaults/links.tsx:63 +#: src/defaults/links.tsx:48 msgid "InvenTree API documentation" msgstr "Dokumentace InvenTree API" -#: src/defaults/links.tsx:68 +#: src/defaults/links.tsx:52 msgid "Developer Manual" msgstr "Příručka vývojáře" -#: src/defaults/links.tsx:69 +#: src/defaults/links.tsx:55 msgid "InvenTree developer manual" msgstr "Příručka pro vývojáře InvenTree" -#: src/defaults/links.tsx:74 +#: src/defaults/links.tsx:59 msgid "FAQ" msgstr "Často kladené dotazy" -#: src/defaults/links.tsx:75 +#: src/defaults/links.tsx:62 msgid "Frequently asked questions" msgstr "Často kladené dotazy" +#: src/defaults/links.tsx:66 +msgid "GitHub Repository" +msgstr "" + +#: src/defaults/links.tsx:69 +msgid "InvenTree source code on GitHub" +msgstr "" + #: src/defaults/links.tsx:76 #~ msgid "Instance" #~ msgstr "Instance" +#: src/defaults/links.tsx:79 +#: src/defaults/links.tsx:117 +msgid "System Information" +msgstr "Systémové Informace" + #: src/defaults/links.tsx:83 #~ msgid "InvenTree" #~ msgstr "InvenTree" -#: src/defaults/links.tsx:85 -#: src/defaults/links.tsx:122 -msgid "System Information" -msgstr "Systémové Informace" - #: src/defaults/links.tsx:117 #~ msgid "Licenses for packages used by InvenTree" #~ msgstr "Licenses for packages used by InvenTree" +#: src/defaults/links.tsx:125 +msgid "About the InvenTree Project" +msgstr "" + +#: src/defaults/links.tsx:132 +msgid "Licenses for dependencies of the InvenTree software" +msgstr "" + #: src/defaults/links.tsx:134 -msgid "Licenses" -msgstr "Licence" +#~ msgid "Licenses" +#~ msgstr "Licenses" #: src/defaults/menuItems.tsx:7 #~ msgid "Open sourcea" @@ -2607,8 +3131,8 @@ msgstr "Licence" #~ msgstr "Profile page" #: src/defaults/menuItems.tsx:17 -msgid "User attributes and design settings." -msgstr "" +#~ msgid "User attributes and design settings." +#~ msgstr "User attributes and design settings." #: src/defaults/menuItems.tsx:21 #~ msgid "Free for everyone" @@ -2619,8 +3143,8 @@ msgstr "" #~ msgstr "The fluid of Smeargle’s tail secretions changes" #: src/defaults/menuItems.tsx:23 -msgid "View for interactive scanning and multiple actions." -msgstr "" +#~ msgid "View for interactive scanning and multiple actions." +#~ msgstr "View for interactive scanning and multiple actions." #: src/defaults/menuItems.tsx:24 #~ msgid "The fluid of Smeargle’s tail secretions changes in the intensity" @@ -2698,51 +3222,130 @@ msgstr "" #~ msgid "Are you sure you want to delete this attachment?" #~ msgstr "Are you sure you want to delete this attachment?" -#: src/forms/BuildForms.tsx:158 -msgid "Next serial number" +#: src/forms/BuildForms.tsx:248 +#~ msgid "Remove output" +#~ msgstr "Remove output" + +#: src/forms/BuildForms.tsx:269 +#: src/tables/build/BuildAllocatedStockTable.tsx:147 +#: src/tables/build/BuildOrderTestTable.tsx:177 +#: src/tables/build/BuildOrderTestTable.tsx:201 +#: src/tables/build/BuildOutputTable.tsx:460 +msgid "Build Output" msgstr "" -#: src/forms/BuildForms.tsx:162 -msgid "Latest serial number" +#: src/forms/BuildForms.tsx:269 +#: src/forms/BuildForms.tsx:337 +#: src/forms/BuildForms.tsx:385 +#: src/tables/build/BuildLineTable.tsx:89 +msgid "Batch" msgstr "" -#: src/forms/BuildForms.tsx:234 -msgid "Remove output" -msgstr "" +#: src/forms/BuildForms.tsx:269 +#: src/forms/BuildForms.tsx:337 +#: src/forms/BuildForms.tsx:385 +#: src/forms/PurchaseOrderForms.tsx:603 +#: src/pages/build/BuildDetail.tsx:104 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:142 +#: src/pages/sales/ReturnOrderDetail.tsx:113 +#: src/pages/sales/SalesOrderDetail.tsx:122 +#: src/tables/build/BuildOrderTable.tsx:125 +#: src/tables/machine/MachineListTable.tsx:336 +#: src/tables/part/PartPurchaseOrdersTable.tsx:37 +#: src/tables/purchasing/PurchaseOrderTable.tsx:58 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:157 +#: src/tables/sales/ReturnOrderTable.tsx:56 +#: src/tables/sales/SalesOrderTable.tsx:56 +#: src/tables/settings/CustomStateTable.tsx:57 +#: src/tables/settings/ImportSessionTable.tsx:114 +#: src/tables/stock/StockItemTable.tsx:298 +#: src/tables/stock/StockTrackingTable.tsx:56 +msgid "Status" +msgstr "Stav" -#: src/forms/BuildForms.tsx:316 +#: src/forms/BuildForms.tsx:289 msgid "Complete Build Outputs" msgstr "" -#: src/forms/BuildForms.tsx:320 +#: src/forms/BuildForms.tsx:292 msgid "Build outputs have been completed" msgstr "" -#: src/forms/BuildForms.tsx:389 +#: src/forms/BuildForms.tsx:353 msgid "Scrap Build Outputs" msgstr "" -#: src/forms/BuildForms.tsx:393 +#: src/forms/BuildForms.tsx:356 msgid "Build outputs have been scrapped" msgstr "" -#: src/forms/BuildForms.tsx:425 -#: src/forms/BuildForms.tsx:449 +#: src/forms/BuildForms.tsx:393 msgid "Cancel Build Outputs" msgstr "" -#: src/forms/BuildForms.tsx:426 -msgid "Selected build outputs will be deleted" +#: src/forms/BuildForms.tsx:396 +msgid "Build outputs have been cancelled" msgstr "" -#: src/forms/BuildForms.tsx:453 -msgid "Build outputs have been cancelled" +#: src/forms/BuildForms.tsx:408 +#~ msgid "Selected build outputs will be deleted" +#~ msgstr "Selected build outputs will be deleted" + +#: src/forms/BuildForms.tsx:470 +#~ msgid "Remove line" +#~ msgstr "Remove line" + +#: src/forms/BuildForms.tsx:515 +#: src/forms/SalesOrderForms.tsx:248 +#: src/tables/build/BuildLineTable.tsx:174 +#: src/tables/sales/SalesOrderLineItemTable.tsx:276 +#: src/tables/stock/StockItemTable.tsx:309 +msgid "Allocated" +msgstr "" + +#: src/forms/BuildForms.tsx:545 +#: src/forms/SalesOrderForms.tsx:239 +#: src/pages/build/BuildDetail.tsx:208 +msgid "Source Location" +msgstr "" + +#: src/forms/BuildForms.tsx:546 +#: src/forms/SalesOrderForms.tsx:240 +msgid "Select the source location for the stock allocation" +msgstr "" + +#: src/forms/BuildForms.tsx:566 +#: src/forms/SalesOrderForms.tsx:274 +#: src/tables/build/BuildLineTable.tsx:442 +#: src/tables/build/BuildLineTable.tsx:569 +#: src/tables/build/BuildLineTable.tsx:642 +#: src/tables/sales/SalesOrderLineItemTable.tsx:302 +#: src/tables/sales/SalesOrderLineItemTable.tsx:326 +msgid "Allocate Stock" +msgstr "" + +#: src/forms/BuildForms.tsx:569 +#: src/forms/SalesOrderForms.tsx:279 +msgid "Stock items allocated" msgstr "" #: src/forms/CompanyForms.tsx:150 #~ msgid "Company updated" #~ msgstr "Company updated" +#: src/forms/PartForms.tsx:67 +#: src/forms/PartForms.tsx:154 +#: src/pages/part/CategoryDetail.tsx:117 +#: src/pages/part/PartDetail.tsx:384 +#: src/tables/part/PartCategoryTable.tsx:90 +#: src/tables/part/PartTable.tsx:294 +msgid "Subscribed" +msgstr "" + +#: src/forms/PartForms.tsx:68 +msgid "Subscribe to notifications for this part" +msgstr "" + #: src/forms/PartForms.tsx:106 #~ msgid "Create Part" #~ msgstr "Create Part" @@ -2751,191 +3354,190 @@ msgstr "" #~ msgid "Part created" #~ msgstr "Part created" -#: src/forms/PartForms.tsx:124 -msgid "Parent part category" -msgstr "Nadřazená kategorie" - #: src/forms/PartForms.tsx:129 #~ msgid "Part updated" #~ msgstr "Part updated" -#: src/forms/PurchaseOrderForms.tsx:300 +#: src/forms/PartForms.tsx:140 +msgid "Parent part category" +msgstr "Nadřazená kategorie" + +#: src/forms/PartForms.tsx:155 +msgid "Subscribe to notifications for this category" +msgstr "" + +#: src/forms/PurchaseOrderForms.tsx:314 +msgid "Assign Batch Code and Serial Numbers" +msgstr "" + +#: src/forms/PurchaseOrderForms.tsx:316 +msgid "Assign Batch Code" +msgstr "" + +#: src/forms/PurchaseOrderForms.tsx:336 msgid "Choose Location" msgstr "Zvolte umístění" -#: src/forms/PurchaseOrderForms.tsx:308 +#: src/forms/PurchaseOrderForms.tsx:344 msgid "Item Destination selected" msgstr "Cíl položky byl vybrán" -#: src/forms/PurchaseOrderForms.tsx:317 +#: src/forms/PurchaseOrderForms.tsx:353 msgid "Part category default location selected" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:327 +#: src/forms/PurchaseOrderForms.tsx:363 msgid "Received stock location selected" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:332 +#: src/forms/PurchaseOrderForms.tsx:368 msgid "Default location selected" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:343 -#: src/forms/PurchaseOrderForms.tsx:435 -msgid "Scan Barcode" -msgstr "" +#: src/forms/PurchaseOrderForms.tsx:421 +#~ msgid "Assign Batch Code{0}" +#~ msgstr "Assign Batch Code{0}" -#: src/forms/PurchaseOrderForms.tsx:388 +#: src/forms/PurchaseOrderForms.tsx:427 msgid "Set Location" msgstr "Nastavit umístění" -#: src/forms/PurchaseOrderForms.tsx:396 -msgid "Assign Batch Code{0}" -msgstr "" - -#: src/forms/PurchaseOrderForms.tsx:405 -#: src/forms/StockForms.tsx:420 +#: src/forms/PurchaseOrderForms.tsx:442 +#: src/forms/StockForms.tsx:539 msgid "Adjust Packaging" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:412 -msgid "Change Status" -msgstr "" - -#: src/forms/PurchaseOrderForms.tsx:418 -msgid "Add Note" -msgstr "" - #: src/forms/PurchaseOrderForms.tsx:444 #: src/forms/StockForms.tsx:428 -msgid "Remove item from list" +#~ msgid "Remove item from list" +#~ msgstr "Remove item from list" + +#: src/forms/PurchaseOrderForms.tsx:450 +msgid "Change Status" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:471 -#: src/forms/StockForms.tsx:499 -#: src/forms/StockForms.tsx:533 -#: src/forms/StockForms.tsx:562 -#: src/forms/StockForms.tsx:590 -#: src/forms/StockForms.tsx:621 -#: src/forms/StockForms.tsx:656 -#: src/forms/StockForms.tsx:698 -#: src/forms/StockForms.tsx:734 -#: src/pages/stock/StockDetail.tsx:181 -#: src/tables/ColumnRenderers.tsx:49 -#: src/tables/stock/StockTrackingTable.tsx:85 +#: src/forms/PurchaseOrderForms.tsx:456 +msgid "Add Note" +msgstr "" + +#: src/forms/PurchaseOrderForms.tsx:503 +#: src/forms/StockForms.tsx:614 +#: src/forms/StockForms.tsx:651 +#: src/forms/StockForms.tsx:677 +#: src/forms/StockForms.tsx:705 +#: src/forms/StockForms.tsx:736 +#: src/forms/StockForms.tsx:771 +#: src/forms/StockForms.tsx:813 +#: src/forms/StockForms.tsx:851 +#: src/pages/stock/StockDetail.tsx:202 +#: src/tables/ColumnRenderers.tsx:60 +#: src/tables/stock/StockTrackingTable.tsx:89 msgid "Location" msgstr "Lokace" -#: src/forms/PurchaseOrderForms.tsx:486 +#: src/forms/PurchaseOrderForms.tsx:518 msgid "Store at default location" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:499 +#: src/forms/PurchaseOrderForms.tsx:533 msgid "Store at line item destination" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:509 +#: src/forms/PurchaseOrderForms.tsx:545 msgid "Store with already received stock" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:524 -#: src/pages/build/BuildDetail.tsx:219 -#: src/pages/stock/StockDetail.tsx:162 -#: src/pages/stock/StockDetail.tsx:599 -#: src/tables/build/BuildAllocatedStockTable.tsx:109 -#: src/tables/build/BuildOrderTestTable.tsx:188 -#: src/tables/sales/SalesOrderAllocationTable.tsx:87 +#: src/forms/PurchaseOrderForms.tsx:566 +#: src/pages/build/BuildDetail.tsx:222 +#: src/pages/stock/StockDetail.tsx:185 +#: src/pages/stock/StockDetail.tsx:793 +#: src/tables/build/BuildAllocatedStockTable.tsx:130 +#: src/tables/build/BuildOrderTestTable.tsx:189 +#: src/tables/build/BuildOutputTable.tsx:86 +#: src/tables/sales/SalesOrderAllocationTable.tsx:113 msgid "Batch Code" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:535 -msgid "Serial numbers" +#: src/forms/PurchaseOrderForms.tsx:566 +#~ msgid "Serial numbers" +#~ msgstr "Serial numbers" + +#: src/forms/PurchaseOrderForms.tsx:567 +msgid "Enter batch code for received items" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:544 -#: src/forms/StockForms.tsx:443 -#: src/pages/company/SupplierPartDetail.tsx:156 -#: src/pages/company/SupplierPartDetail.tsx:207 -#: src/pages/stock/StockDetail.tsx:244 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:192 +#: src/forms/PurchaseOrderForms.tsx:579 +#: src/forms/StockForms.tsx:152 +msgid "Serial Numbers" +msgstr "" + +#: src/forms/PurchaseOrderForms.tsx:580 +msgid "Enter serial numbers for received items" +msgstr "" + +#: src/forms/PurchaseOrderForms.tsx:590 +#: src/forms/StockForms.tsx:556 +#: src/pages/company/SupplierPartDetail.tsx:168 +#: src/pages/company/SupplierPartDetail.tsx:219 +#: src/pages/stock/StockDetail.tsx:320 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:198 msgid "Packaging" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:556 -#: src/pages/build/BuildDetail.tsx:109 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:148 -#: src/pages/sales/ReturnOrderDetail.tsx:121 -#: src/pages/sales/SalesOrderDetail.tsx:127 -#: src/tables/build/BuildOrderTable.tsx:122 -#: src/tables/machine/MachineListTable.tsx:335 -#: src/tables/part/PartPurchaseOrdersTable.tsx:37 -#: src/tables/purchasing/PurchaseOrderTable.tsx:55 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:132 -#: src/tables/sales/ReturnOrderTable.tsx:46 -#: src/tables/sales/SalesOrderTable.tsx:53 -#: src/tables/settings/ImportSessionTable.tsx:115 -#: src/tables/stock/StockItemTable.tsx:294 -#: src/tables/stock/StockTrackingTable.tsx:52 -msgid "Status" -msgstr "Stav" - -#: src/forms/PurchaseOrderForms.tsx:564 -#: src/pages/company/SupplierPartDetail.tsx:110 -#: src/tables/ColumnRenderers.tsx:132 +#: src/forms/PurchaseOrderForms.tsx:612 +#: src/pages/company/SupplierPartDetail.tsx:115 +#: src/tables/ColumnRenderers.tsx:143 msgid "Note" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/pages/company/SupplierPartDetail.tsx:128 -#: src/tables/purchasing/SupplierPriceBreakTable.tsx:57 -msgid "SKU" -msgstr "" - -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/tables/part/PartPurchaseOrdersTable.tsx:120 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:178 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:127 -msgid "Received" -msgstr "" - -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/forms/StockForms.tsx:499 -#: src/forms/StockForms.tsx:533 -#: src/forms/StockForms.tsx:562 -#: src/forms/StockForms.tsx:590 -#: src/forms/StockForms.tsx:621 -#: src/forms/StockForms.tsx:656 -#: src/forms/StockForms.tsx:698 -#: src/forms/StockForms.tsx:734 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:413 -#: src/tables/RowActions.tsx:113 -msgid "Actions" -msgstr "Akce" - -#: src/forms/PurchaseOrderForms.tsx:655 -msgid "Receive Line Items" -msgstr "" - #: src/forms/PurchaseOrderForms.tsx:658 #~ msgid "Receive line items" #~ msgstr "Receive line items" -#: src/forms/StockForms.tsx:104 -msgid "Add given quantity as packs instead of individual items" +#: src/forms/PurchaseOrderForms.tsx:689 +#: src/pages/company/SupplierPartDetail.tsx:133 +#: src/tables/purchasing/SupplierPriceBreakTable.tsx:57 +msgid "SKU" +msgstr "" + +#: src/forms/PurchaseOrderForms.tsx:689 +#: src/tables/part/PartPurchaseOrdersTable.tsx:126 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:184 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:247 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:152 +msgid "Received" +msgstr "" + +#: src/forms/PurchaseOrderForms.tsx:701 +msgid "Receive Line Items" +msgstr "" + +#: src/forms/ReturnOrderForms.tsx:201 +msgid "Receive Items" +msgstr "" + +#: src/forms/ReturnOrderForms.tsx:208 +msgid "Item received into stock" +msgstr "" + +#: src/forms/StockForms.tsx:80 +#: src/hooks/UsePlaceholder.tsx:57 +msgid "Next serial number" msgstr "" #: src/forms/StockForms.tsx:110 #~ msgid "Create Stock Item" #~ msgstr "Create Stock Item" -#: src/forms/StockForms.tsx:117 +#: src/forms/StockForms.tsx:131 +msgid "Add given quantity as packs instead of individual items" +msgstr "" + +#: src/forms/StockForms.tsx:145 msgid "Enter initial quantity for this stock item" msgstr "" -#: src/forms/StockForms.tsx:124 -msgid "Serial Numbers" -msgstr "" - -#: src/forms/StockForms.tsx:125 +#: src/forms/StockForms.tsx:154 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" @@ -2943,82 +3545,102 @@ msgstr "" #~ msgid "Stock item updated" #~ msgstr "Stock item updated" -#: src/forms/StockForms.tsx:179 -#: src/pages/stock/StockDetail.tsx:434 -#: src/tables/stock/StockItemTable.tsx:417 -#: src/tables/stock/StockItemTable.tsx:535 +#: src/forms/StockForms.tsx:169 +#: src/pages/stock/StockDetail.tsx:131 +msgid "Stock Status" +msgstr "" + +#: src/forms/StockForms.tsx:218 +#: src/pages/stock/StockDetail.tsx:554 +#: src/tables/stock/StockItemTable.tsx:421 +#: src/tables/stock/StockItemTable.tsx:541 msgid "Add Stock Item" msgstr "" -#: src/forms/StockForms.tsx:362 +#: src/forms/StockForms.tsx:262 +msgid "Select the part to install" +msgstr "" + +#: src/forms/StockForms.tsx:480 msgid "Loading..." msgstr "" -#: src/forms/StockForms.tsx:408 +#: src/forms/StockForms.tsx:527 msgid "Move to default location" msgstr "" -#: src/forms/StockForms.tsx:499 -#: src/forms/StockForms.tsx:533 -#: src/forms/StockForms.tsx:562 -#: src/forms/StockForms.tsx:590 -#: src/forms/StockForms.tsx:621 -#: src/forms/StockForms.tsx:656 -#: src/forms/StockForms.tsx:698 -#: src/forms/StockForms.tsx:734 -#: src/pages/part/PartDetail.tsx:230 -#: src/pages/part/PartDetail.tsx:843 -#: src/tables/stock/StockItemTable.tsx:325 +#: src/forms/StockForms.tsx:614 +#: src/forms/StockForms.tsx:651 +#: src/forms/StockForms.tsx:677 +#: src/forms/StockForms.tsx:705 +#: src/forms/StockForms.tsx:736 +#: src/forms/StockForms.tsx:771 +#: src/forms/StockForms.tsx:813 +#: src/forms/StockForms.tsx:851 +#: src/pages/part/PartDetail.tsx:251 +#: src/pages/part/PartDetail.tsx:875 +#: src/tables/stock/StockItemTable.tsx:329 msgid "In Stock" msgstr "Na skladě" -#: src/forms/StockForms.tsx:499 +#: src/forms/StockForms.tsx:614 msgid "Move" msgstr "Přesunout" -#: src/forms/StockForms.tsx:562 -#: src/pages/stock/StockDetail.tsx:518 -#: src/tables/stock/StockItemTestResultTable.tsx:328 +#: src/forms/StockForms.tsx:677 +#: src/pages/stock/StockDetail.tsx:681 +#: src/tables/stock/StockItemTestResultTable.tsx:346 msgid "Add" msgstr "Přidat" -#: src/forms/StockForms.tsx:590 -#: src/pages/Index/Scan.tsx:266 -#: src/pages/stock/StockDetail.tsx:508 +#: src/forms/StockForms.tsx:705 +#: src/pages/Index/Scan.tsx:280 +#: src/pages/stock/StockDetail.tsx:670 msgid "Count" msgstr "Počet" -#: src/forms/StockForms.tsx:835 +#: src/forms/StockForms.tsx:953 +#: src/pages/stock/StockDetail.tsx:682 +#: src/tables/stock/StockItemTable.tsx:454 msgid "Add Stock" msgstr "" -#: src/forms/StockForms.tsx:844 +#: src/forms/StockForms.tsx:962 +#: src/pages/stock/StockDetail.tsx:691 +#: src/tables/stock/StockItemTable.tsx:463 msgid "Remove Stock" msgstr "" -#: src/forms/StockForms.tsx:853 -#: src/pages/part/PartDetail.tsx:1017 +#: src/forms/StockForms.tsx:971 +#: src/pages/part/PartDetail.tsx:1039 +#: src/pages/stock/StockDetail.tsx:712 +#: src/tables/stock/StockItemTable.tsx:483 msgid "Transfer Stock" msgstr "" -#: src/forms/StockForms.tsx:862 -#: src/pages/part/PartDetail.tsx:1006 +#: src/forms/StockForms.tsx:980 +#: src/pages/part/PartDetail.tsx:1028 +#: src/pages/stock/LocationDetail.tsx:314 +#: src/pages/stock/LocationDetail.tsx:318 +#: src/tables/stock/StockItemTable.tsx:472 +#: src/tables/stock/StockItemTable.tsx:476 msgid "Count Stock" msgstr "" -#: src/forms/StockForms.tsx:871 +#: src/forms/StockForms.tsx:989 msgid "Change Stock Status" msgstr "" -#: src/forms/StockForms.tsx:880 +#: src/forms/StockForms.tsx:998 msgid "Merge Stock" msgstr "" -#: src/forms/StockForms.tsx:899 +#: src/forms/StockForms.tsx:1017 +#: src/tables/stock/StockItemTable.tsx:530 msgid "Delete Stock Items" msgstr "" -#: src/forms/StockForms.tsx:906 +#: src/forms/StockForms.tsx:1024 msgid "Parent stock location" msgstr "" @@ -3042,11 +3664,11 @@ msgstr "" #~ msgid "You have been logged out" #~ msgstr "You have been logged out" -#: src/functions/auth.tsx:117 +#: src/functions/auth.tsx:128 msgid "Logged Out" msgstr "" -#: src/functions/auth.tsx:118 +#: src/functions/auth.tsx:129 msgid "Successfully logged out" msgstr "" @@ -3062,20 +3684,20 @@ msgstr "" #~ msgid "Found an existing login - welcome back!" #~ msgstr "Found an existing login - welcome back!" -#: src/functions/auth.tsx:156 +#: src/functions/auth.tsx:167 msgid "Check your inbox for a reset link. This only works if you have an account. Check in spam too." msgstr "" -#: src/functions/auth.tsx:163 +#: src/functions/auth.tsx:174 #: src/pages/Auth/Set-Password.tsx:39 msgid "Reset failed" msgstr "" -#: src/functions/auth.tsx:194 +#: src/functions/auth.tsx:205 msgid "Logged In" msgstr "Přihlášen" -#: src/functions/auth.tsx:195 +#: src/functions/auth.tsx:206 msgid "Successfully logged in" msgstr "" @@ -3095,30 +3717,38 @@ msgstr "" #~ msgid "method parameter not supplied" #~ msgstr "method parameter not supplied" -#: src/functions/notifications.tsx:10 +#: src/functions/notifications.tsx:12 msgid "Not implemented" msgstr "" -#: src/functions/notifications.tsx:11 +#: src/functions/notifications.tsx:13 msgid "This feature is not yet implemented" msgstr "" -#: src/functions/notifications.tsx:21 -msgid "Permission denied" -msgstr "" +#: src/functions/notifications.tsx:24 +#~ msgid "Permission denied" +#~ msgstr "Permission denied" -#: src/functions/notifications.tsx:22 +#: src/functions/notifications.tsx:25 msgid "You do not have permission to perform this action" msgstr "" -#: src/functions/notifications.tsx:33 +#: src/functions/notifications.tsx:36 msgid "Invalid Return Code" msgstr "" -#: src/functions/notifications.tsx:34 +#: src/functions/notifications.tsx:37 msgid "Server returned status {returnCode}" msgstr "" +#: src/functions/notifications.tsx:47 +msgid "Timeout" +msgstr "" + +#: src/functions/notifications.tsx:48 +msgid "The request timed out" +msgstr "" + #: src/hooks/UseForm.tsx:88 msgid "Item Created" msgstr "Položka vytvořena" @@ -3135,20 +3765,24 @@ msgstr "Položka odstraněna" msgid "Are you sure you want to delete this item?" msgstr "" +#: src/hooks/UsePlaceholder.tsx:59 +msgid "Latest serial number" +msgstr "" + #: src/pages/Auth/Logged-In.tsx:22 msgid "Checking if you are already logged in" msgstr "" -#: src/pages/Auth/Login.tsx:31 -#: src/pages/Index/Scan.tsx:329 +#: src/pages/Auth/Login.tsx:35 +#: src/pages/Index/Scan.tsx:343 msgid "No selection" msgstr "Nic nevybráno" -#: src/pages/Auth/Login.tsx:87 +#: src/pages/Auth/Login.tsx:91 msgid "Welcome, log in below" msgstr "" -#: src/pages/Auth/Login.tsx:89 +#: src/pages/Auth/Login.tsx:93 msgid "Register below" msgstr "" @@ -3162,8 +3796,8 @@ msgstr "" #: src/pages/Auth/Reset.tsx:41 #: src/pages/Auth/Set-Password.tsx:112 -msgid "Send mail" -msgstr "" +#~ msgid "Send mail" +#~ msgstr "Send mail" #: src/pages/Auth/Set-Password.tsx:30 msgid "Token invalid" @@ -3174,22 +3808,22 @@ msgid "You need to provide a valid token to set a new password. Check your inbox msgstr "" #: src/pages/Auth/Set-Password.tsx:49 -msgid "No token provided" -msgstr "" +#~ msgid "No token provided" +#~ msgstr "No token provided" #: src/pages/Auth/Set-Password.tsx:50 -msgid "You need to provide a token to set a new password. Check your inbox for a reset link." -msgstr "" +#~ msgid "You need to provide a token to set a new password. Check your inbox for a reset link." +#~ msgstr "You need to provide a token to set a new password. Check your inbox for a reset link." -#: src/pages/Auth/Set-Password.tsx:73 +#: src/pages/Auth/Set-Password.tsx:68 msgid "Password set" msgstr "" -#: src/pages/Auth/Set-Password.tsx:74 +#: src/pages/Auth/Set-Password.tsx:69 msgid "The password was set successfully. You can now login with your new password" msgstr "" -#: src/pages/Auth/Set-Password.tsx:101 +#: src/pages/Auth/Set-Password.tsx:96 msgid "Set new password" msgstr "" @@ -3206,20 +3840,20 @@ msgstr "" #~ msgstr "Sorry, an unexpected error has occurred." #: src/pages/Index/Dashboard.tsx:22 -msgid "Autoupdate" -msgstr "Automaticka aktualizace" +#~ msgid "Autoupdate" +#~ msgstr "Autoupdate" #: src/pages/Index/Dashboard.tsx:26 -msgid "This page is a replacement for the old start page with the same information. This page will be deprecated and replaced by the home page." -msgstr "" +#~ msgid "This page is a replacement for the old start page with the same information. This page will be deprecated and replaced by the home page." +#~ msgstr "This page is a replacement for the old start page with the same information. This page will be deprecated and replaced by the home page." #: src/pages/Index/Home.tsx:58 -msgid "Welcome to your Dashboard{0}" -msgstr "" +#~ msgid "Welcome to your Dashboard{0}" +#~ msgstr "Welcome to your Dashboard{0}" #: src/pages/Index/Playground.tsx:222 -msgid "This page is a showcase for the possibilities of Platform UI." -msgstr "" +#~ msgid "This page is a showcase for the possibilities of Platform UI." +#~ msgstr "This page is a showcase for the possibilities of Platform UI." #: src/pages/Index/Profile/Profile.tsx:30 #: src/pages/Index/Profile/Profile.tsx:141 @@ -3365,126 +3999,191 @@ msgstr "" msgid "Image Barcode" msgstr "" -#: src/pages/Index/Scan.tsx:247 +#: src/pages/Index/Scan.tsx:261 msgid "Selected elements are not known" msgstr "" -#: src/pages/Index/Scan.tsx:254 +#: src/pages/Index/Scan.tsx:268 msgid "Multiple object types selected" msgstr "" -#: src/pages/Index/Scan.tsx:261 +#: src/pages/Index/Scan.tsx:275 msgid "Actions for {0}" msgstr "" -#: src/pages/Index/Scan.tsx:282 +#: src/pages/Index/Scan.tsx:296 msgid "Scan Page" msgstr "" -#: src/pages/Index/Scan.tsx:285 +#: src/pages/Index/Scan.tsx:299 msgid "This page can be used for continuously scanning items and taking actions on them." msgstr "" -#: src/pages/Index/Scan.tsx:292 +#: src/pages/Index/Scan.tsx:306 msgid "Toggle Fullscreen" msgstr "" -#: src/pages/Index/Scan.tsx:305 +#: src/pages/Index/Scan.tsx:319 msgid "Select the input method you want to use to scan items." msgstr "" -#: src/pages/Index/Scan.tsx:307 +#: src/pages/Index/Scan.tsx:321 msgid "Input" msgstr "Vstup" -#: src/pages/Index/Scan.tsx:314 +#: src/pages/Index/Scan.tsx:328 msgid "Select input method" msgstr "" -#: src/pages/Index/Scan.tsx:315 +#: src/pages/Index/Scan.tsx:329 msgid "Nothing found" msgstr "" -#: src/pages/Index/Scan.tsx:323 +#: src/pages/Index/Scan.tsx:337 msgid "Depending on the selected parts actions will be shown here. Not all barcode types are supported currently." msgstr "" -#: src/pages/Index/Scan.tsx:325 +#: src/pages/Index/Scan.tsx:339 msgid "Action" msgstr "" -#: src/pages/Index/Scan.tsx:334 +#: src/pages/Index/Scan.tsx:348 msgid "{0} items selected" msgstr "" -#: src/pages/Index/Scan.tsx:337 +#: src/pages/Index/Scan.tsx:351 msgid "General Actions" msgstr "" -#: src/pages/Index/Scan.tsx:351 +#: src/pages/Index/Scan.tsx:365 msgid "Lookup part" msgstr "" -#: src/pages/Index/Scan.tsx:359 +#: src/pages/Index/Scan.tsx:373 msgid "Open Link" msgstr "" -#: src/pages/Index/Scan.tsx:375 +#: src/pages/Index/Scan.tsx:389 msgid "History is locally kept in this browser." msgstr "" -#: src/pages/Index/Scan.tsx:376 +#: src/pages/Index/Scan.tsx:390 msgid "The history is kept in this browser's local storage. So it won't be shared with other users or other devices but is persistent through reloads. You can select items in the history to perform actions on them. To add items, scan/enter them in the Input area." msgstr "" -#: src/pages/Index/Scan.tsx:378 +#: src/pages/Index/Scan.tsx:392 #: src/pages/Notifications.tsx:100 msgid "History" msgstr "Historie" -#: src/pages/Index/Scan.tsx:384 +#: src/pages/Index/Scan.tsx:398 msgid "Delete History" msgstr "" -#: src/pages/Index/Scan.tsx:449 +#: src/pages/Index/Scan.tsx:463 msgid "No history" msgstr "Žádná historie" -#: src/pages/Index/Scan.tsx:467 +#: src/pages/Index/Scan.tsx:481 msgid "Item" msgstr "Položka" -#: src/pages/Index/Scan.tsx:470 +#: src/pages/Index/Scan.tsx:484 msgid "Type" msgstr "Typ" -#: src/pages/Index/Scan.tsx:473 +#: src/pages/Index/Scan.tsx:487 msgid "Source" msgstr "Zdroj" -#: src/pages/Index/Scan.tsx:476 +#: src/pages/Index/Scan.tsx:490 msgid "Scanned at" msgstr "" -#: src/pages/Index/Scan.tsx:528 +#: src/pages/Index/Scan.tsx:547 msgid "Enter item serial or data" msgstr "" -#: src/pages/Index/Scan.tsx:540 +#: src/pages/Index/Scan.tsx:559 msgid "Add dummy item" msgstr "" +#: src/pages/Index/Scan.tsx:569 +msgid "Start scanning by selecting a camera and pressing the play button." +msgstr "" + +#: src/pages/Index/Scan.tsx:650 +msgid "Error while getting camera" +msgstr "Chyba při spouštění kamery" + +#: src/pages/Index/Scan.tsx:673 +msgid "Error while scanning" +msgstr "Chyba při skenování" + +#: src/pages/Index/Scan.tsx:687 +msgid "Error while stopping" +msgstr "" + +#: src/pages/Index/Scan.tsx:745 +msgid "Stop scanning" +msgstr "Zastavit skenování" + +#: src/pages/Index/Scan.tsx:754 +msgid "Start scanning" +msgstr "Začít skenovat" + +#: src/pages/Index/Scan.tsx:763 +msgid "Scanning" +msgstr "Skenování" + +#: src/pages/Index/Scan.tsx:763 +msgid "Not scanning" +msgstr "Není skenováno" + +#: src/pages/Index/Scan.tsx:775 +msgid "Select Camera" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:28 +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:50 +msgid "Edit User Information" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:32 +msgid "User details updated" +msgstr "" + #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:41 -msgid "Account Details" +msgid "User Details" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:41 +#~ msgid "Account Details" +#~ msgstr "Account Details" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:44 +msgid "User Actions" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:48 +msgid "Edit User" msgstr "" #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:50 -msgid "First name" -msgstr "Jméno" +#~ msgid "First name" +#~ msgstr "First name" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:54 +msgid "Set Password" +msgstr "" #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:55 -msgid "Last name" -msgstr "Příjmení" +#~ msgid "Last name" +#~ msgstr "Last name" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:56 +msgid "Set User Password" +msgstr "" #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:58 #~ msgid "First name: {0}" @@ -3495,15 +4194,28 @@ msgstr "Příjmení" #~ msgstr "Last name: {0}" #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:67 -msgid "First name:" -msgstr "Jméno:" +#~ msgid "First name:" +#~ msgstr "First name:" #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:71 -msgid "Last name:" -msgstr "Příjmení:" +#~ msgid "Last name:" +#~ msgstr "Last name:" -#: src/pages/Index/Settings/AccountSettings/DisplaySettingsPanel.tsx:41 -msgid "Use pseudo language" +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:73 +msgid "First Name" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:79 +msgid "Last Name" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:85 +msgid "Staff Access" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:93 +#: src/tables/settings/UserTable.tsx:293 +msgid "Superuser" msgstr "" #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:55 @@ -3600,27 +4312,6 @@ msgstr "" msgid "No tokens configured" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:398 -#: src/pages/part/PartDetail.tsx:297 -#: src/tables/bom/UsedInTable.tsx:84 -#: src/tables/build/BuildOrderTable.tsx:110 -#: src/tables/company/CompanyTable.tsx:61 -#: src/tables/company/CompanyTable.tsx:95 -#: src/tables/machine/MachineListTable.tsx:332 -#: src/tables/machine/MachineListTable.tsx:594 -#: src/tables/part/ParametricPartTable.tsx:223 -#: src/tables/part/PartTable.tsx:178 -#: src/tables/part/PartVariantTable.tsx:15 -#: src/tables/plugin/PluginListTable.tsx:149 -#: src/tables/plugin/PluginListTable.tsx:271 -#: src/tables/plugin/PluginListTable.tsx:563 -#: src/tables/purchasing/SupplierPartTable.tsx:98 -#: src/tables/purchasing/SupplierPartTable.tsx:187 -#: src/tables/settings/UserTable.tsx:284 -#: src/tables/stock/StockItemTable.tsx:289 -msgid "Active" -msgstr "" - #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:401 msgid "Expiry" msgstr "" @@ -3630,38 +4321,74 @@ msgid "Last Seen" msgstr "" #: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:65 -msgid "bars" -msgstr "" +#~ msgid "bars" +#~ msgstr "bars" #: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:66 -msgid "oval" -msgstr "" +#~ msgid "oval" +#~ msgstr "oval" #: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:67 -msgid "dots" -msgstr "" +#~ msgid "dots" +#~ msgstr "dots" #: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:81 -msgid "Theme" -msgstr "" +#~ msgid "Theme" +#~ msgstr "Theme" #: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:87 -msgid "Primary color" +#~ msgid "Primary color" +#~ msgstr "Primary color" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:88 +msgid "Bars" msgstr "" -#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:100 +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:89 +msgid "Oval" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:90 +msgid "Dots" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:101 +msgid "Display Settings" +msgstr "Nastavení zobrazení" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:107 +msgid "Language" +msgstr "Jazyk" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:115 +msgid "Use pseudo language" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:122 +msgid "Color Mode" +msgstr "Barevný režim" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:133 +msgid "Highlight color" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:145 +msgid "Example" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:151 msgid "White color" msgstr "" -#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:108 +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:167 msgid "Black color" msgstr "" -#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:116 +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:183 msgid "Border Radius" msgstr "" -#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:132 +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:199 msgid "Loader" msgstr "" @@ -3673,89 +4400,156 @@ msgstr "" #~ msgid "Advanced Amininistrative Options for InvenTree" #~ msgstr "Advanced Amininistrative Options for InvenTree" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:104 +#: src/pages/Index/Settings/AdminCenter/CurrencyManagmentPanel.tsx:27 +#: src/tables/ColumnRenderers.tsx:262 +msgid "Currency" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/CurrencyManagmentPanel.tsx:32 +msgid "Rate" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/CurrencyManagmentPanel.tsx:44 +msgid "Exchange rates updated" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/CurrencyManagmentPanel.tsx:50 +msgid "Exchange rate update error" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/CurrencyManagmentPanel.tsx:62 +msgid "Refresh currency exchange rates" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/CurrencyManagmentPanel.tsx:99 +msgid "Last fetched" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/CurrencyManagmentPanel.tsx:100 +msgid "Base currency" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:115 msgid "Data Import" msgstr "" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:110 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:121 +msgid "Barcode Scans" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:127 msgid "Background Tasks" msgstr "" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:116 -msgid "Error Reports" -msgstr "" - -#: src/pages/Index/Settings/AdminCenter/Index.tsx:122 -msgid "Currencies" -msgstr "" - #: src/pages/Index/Settings/AdminCenter/Index.tsx:127 #~ msgid "Templates" #~ msgstr "Templates" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:140 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:133 +msgid "Error Reports" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:139 +msgid "Currencies" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:157 +msgid "Custom States" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:163 +#: src/pages/Index/Settings/AdminCenter/UnitManagmentPanel.tsx:58 msgid "Custom Units" msgstr "Vlastní jednotky" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:146 -#: src/pages/part/CategoryDetail.tsx:264 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:169 +#: src/pages/part/CategoryDetail.tsx:269 msgid "Part Parameters" msgstr "Parametry dílu" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:152 -msgid "Category Parameters" -msgstr "Parametry kategorie" - -#: src/pages/Index/Settings/AdminCenter/Index.tsx:170 -msgid "Location Types" -msgstr "" - #: src/pages/Index/Settings/AdminCenter/Index.tsx:170 #~ msgid "Location types" #~ msgstr "Location types" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:182 -#: src/tables/machine/MachineTypeTable.tsx:287 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:175 +msgid "Category Parameters" +msgstr "Parametry kategorie" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:181 +msgid "Stocktake" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:199 +msgid "Location Types" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:211 +#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:48 +#: src/tables/machine/MachineTypeTable.tsx:308 msgid "Machines" msgstr "Stroje" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:192 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:221 msgid "Quick Actions" msgstr "Rychlá volba" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:197 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:226 msgid "Add a new user" msgstr "Přidat nového uživatele" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:222 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:252 msgid "Advanced Options" msgstr "Pokročilá nastavení" #: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:43 -msgid "Machine types" -msgstr "" +#~ msgid "Machine types" +#~ msgstr "Machine types" #: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:53 -msgid "Machine Error Stack" +#~ msgid "Machine Error Stack" +#~ msgstr "Machine Error Stack" + +#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:56 +msgid "Machine Types" msgstr "" #: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:62 -msgid "There are no machine registry errors." +#~ msgid "There are no machine registry errors." +#~ msgstr "There are no machine registry errors." + +#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:64 +msgid "Machine Errors" msgstr "" -#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:28 -#: src/tables/settings/UserTable.tsx:119 +#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:77 +msgid "Registry Registry Errors" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:80 +msgid "There are machine registry errors" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:86 +msgid "Machine Registry Errors" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:89 +msgid "There are no machine registry errors" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:31 +#: src/tables/settings/UserTable.tsx:118 msgid "Info" msgstr "Info" -#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:32 -msgid "External plugins are not enabled for this InvenTree installation." -msgstr "" - #: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:33 #~ msgid "Plugin Error Stack" #~ msgstr "Plugin Error Stack" +#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:35 +msgid "External plugins are not enabled for this InvenTree installation." +msgstr "" + #: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:45 #~ msgid "Warning" #~ msgstr "Warning" @@ -3764,34 +4558,46 @@ msgstr "" #~ msgid "Changing the settings below require you to immediately restart the server. Do not change this while under active usage." #~ msgstr "Changing the settings below require you to immediately restart the server. Do not change this while under active usage." -#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:50 +#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:73 msgid "Plugin Errors" msgstr "" -#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:59 -msgid "Plugin Settings" +#: src/pages/Index/Settings/AdminCenter/ReportTemplatePanel.tsx:17 +msgid "Page Size" msgstr "" -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:53 -msgid "Background Worker Not Running" +#: src/pages/Index/Settings/AdminCenter/ReportTemplatePanel.tsx:20 +msgid "Landscape" msgstr "" -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:54 +#: src/pages/Index/Settings/AdminCenter/ReportTemplatePanel.tsx:26 +msgid "Attach to Model" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/StocktakePanel.tsx:25 +msgid "Stocktake Reports" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:30 msgid "The background task manager service is not running. Contact your system administrator." msgstr "" -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:60 -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:76 +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:35 +#~ msgid "Background Worker Not Running" +#~ msgstr "Background Worker Not Running" + +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:36 +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:45 msgid "Pending Tasks" msgstr "" -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:64 -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:84 +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:37 +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:53 msgid "Scheduled Tasks" msgstr "" -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:68 -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:92 +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:38 +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:61 msgid "Failed Tasks" msgstr "" @@ -3811,11 +4617,6 @@ msgstr "" #~ msgid "Reports" #~ msgstr "Reports" -#: src/pages/Index/Settings/AdminCenter/TemplateManagementPanel.tsx:89 -#: src/pages/build/BuildDetail.tsx:373 -#~ msgid "Report" -#~ msgstr "Report" - #: src/pages/Index/Settings/AdminCenter/TemplateManagementPanel.tsx:99 #~ msgid "Purchase order" #~ msgstr "Purchase order" @@ -3836,23 +4637,35 @@ msgstr "" #~ msgid "Stock location" #~ msgstr "Stock location" +#: src/pages/Index/Settings/AdminCenter/UnitManagmentPanel.tsx:21 +msgid "Alias" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/UnitManagmentPanel.tsx:22 +msgid "Dimensionless" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/UnitManagmentPanel.tsx:66 +msgid "All units" +msgstr "" + #: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:32 msgid "Select settings relevant for user lifecycle. More available in" msgstr "" #: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:37 -msgid "System settings" -msgstr "" +#~ msgid "System settings" +#~ msgstr "System settings" -#: src/pages/Index/Settings/SystemSettings.tsx:67 +#: src/pages/Index/Settings/SystemSettings.tsx:66 msgid "Login" msgstr "Přihlášení" -#: src/pages/Index/Settings/SystemSettings.tsx:93 +#: src/pages/Index/Settings/SystemSettings.tsx:92 msgid "Barcodes" msgstr "Čárové kódy" -#: src/pages/Index/Settings/SystemSettings.tsx:115 +#: src/pages/Index/Settings/SystemSettings.tsx:116 msgid "Pricing" msgstr "Ceník" @@ -3864,64 +4677,46 @@ msgstr "Ceník" #~ msgid "Exchange Rates" #~ msgstr "Exchange Rates" -#: src/pages/Index/Settings/SystemSettings.tsx:150 +#: src/pages/Index/Settings/SystemSettings.tsx:151 msgid "Labels" msgstr "Štítky" -#: src/pages/Index/Settings/SystemSettings.tsx:156 -#: src/pages/Index/Settings/UserSettings.tsx:132 +#: src/pages/Index/Settings/SystemSettings.tsx:157 +#: src/pages/Index/Settings/UserSettings.tsx:133 msgid "Reporting" msgstr "" #: src/pages/Index/Settings/SystemSettings.tsx:231 -#: src/pages/part/PartDetail.tsx:682 -msgid "Stocktake" -msgstr "" - -#: src/pages/Index/Settings/SystemSettings.tsx:237 -#: src/pages/build/BuildDetail.tsx:554 -#: src/pages/build/BuildIndex.tsx:22 -#: src/pages/part/PartDetail.tsx:616 -#: src/pages/sales/SalesOrderDetail.tsx:333 +#: src/pages/build/BuildIndex.tsx:27 +#: src/pages/part/PartDetail.tsx:636 +#: src/pages/sales/SalesOrderDetail.tsx:355 msgid "Build Orders" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:318 -msgid "Switch to User Setting" -msgstr "" +#: src/pages/Index/Settings/SystemSettings.tsx:317 +#~ msgid "Switch to User Setting" +#~ msgstr "Switch to User Setting" -#: src/pages/Index/Settings/UserSettings.tsx:34 +#: src/pages/Index/Settings/UserSettings.tsx:35 msgid "Account" msgstr "Účet" -#: src/pages/Index/Settings/UserSettings.tsx:40 +#: src/pages/Index/Settings/UserSettings.tsx:41 msgid "Security" msgstr "" -#: src/pages/Index/Settings/UserSettings.tsx:78 +#: src/pages/Index/Settings/UserSettings.tsx:79 msgid "Display Options" msgstr "" -#: src/pages/Index/Settings/UserSettings.tsx:150 -msgid "Account Settings" -msgstr "" - -#: src/pages/Index/Settings/UserSettings.tsx:158 -msgid "Switch to System Setting" -msgstr "" - -#: src/pages/Index/UserSettings.tsx:103 -#~ msgid "User Settings" -#~ msgstr "User Settings" +#: src/pages/Index/Settings/UserSettings.tsx:159 +#~ msgid "Switch to System Setting" +#~ msgstr "Switch to System Setting" #: src/pages/Logged-In.tsx:24 #~ msgid "Found an exsisting login - using it to log you in." #~ msgstr "Found an exsisting login - using it to log you in." -#: src/pages/NotFound.tsx:17 -#~ msgid "Not Found" -#~ msgstr "Not Found" - #: src/pages/NotFound.tsx:20 #~ msgid "Sorry, this page is not known or was moved." #~ msgstr "Sorry, this page is not known or was moved." @@ -3942,104 +4737,86 @@ msgstr "Označit jako nepřečtenou" #~ msgid "Build Status" #~ msgstr "Build Status" -#: src/pages/build/BuildDetail.tsx:102 -#: src/pages/part/PartDetail.tsx:150 +#: src/pages/build/BuildDetail.tsx:97 +#: src/pages/company/ManufacturerPartDetail.tsx:81 +#: src/pages/company/SupplierPartDetail.tsx:91 +#: src/pages/part/PartDetail.tsx:171 +#: src/pages/stock/StockDetail.tsx:122 #: src/tables/bom/BomTable.tsx:118 #: src/tables/bom/UsedInTable.tsx:39 -#: src/tables/build/BuildLineTable.tsx:173 -#: src/tables/build/BuildOrderTable.tsx:55 -#: src/tables/sales/SalesOrderLineItemTable.tsx:62 -#: src/tables/stock/StockItemTable.tsx:53 +#: src/tables/build/BuildAllocatedStockTable.tsx:104 +#: src/tables/build/BuildLineTable.tsx:324 +#: src/tables/build/BuildOrderTable.tsx:64 +#: src/tables/sales/SalesOrderLineItemTable.tsx:70 +#: src/tables/stock/StockItemTable.tsx:54 msgid "IPN" msgstr "" -#: src/pages/build/BuildDetail.tsx:115 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:121 -#: src/pages/sales/ReturnOrderDetail.tsx:95 -#: src/pages/sales/SalesOrderDetail.tsx:101 -#: src/tables/ColumnRenderers.tsx:121 -#: src/tables/build/BuildAllocatedStockTable.tsx:90 -#: src/tables/build/BuildLineTable.tsx:184 +#: src/pages/build/BuildDetail.tsx:110 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:115 +#: src/pages/sales/ReturnOrderDetail.tsx:86 +#: src/pages/sales/SalesOrderDetail.tsx:95 +#: src/tables/ColumnRenderers.tsx:132 +#: src/tables/build/BuildAllocatedStockTable.tsx:111 +#: src/tables/build/BuildLineTable.tsx:335 msgid "Reference" msgstr "Reference" -#: src/pages/build/BuildDetail.tsx:121 -#: src/pages/company/CompanyDetail.tsx:90 -#: src/pages/company/ManufacturerPartDetail.tsx:83 -#: src/pages/company/SupplierPartDetail.tsx:96 -#: src/pages/part/CategoryDetail.tsx:101 -#: src/pages/part/PartDetail.tsx:157 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:142 -#: src/pages/sales/ReturnOrderDetail.tsx:115 -#: src/pages/sales/SalesOrderDetail.tsx:121 -#: src/pages/stock/LocationDetail.tsx:109 -#: src/tables/ColumnRenderers.tsx:81 -#: src/tables/bom/UsedInTable.tsx:44 -#: src/tables/build/BuildAllocatedStockTable.tsx:70 -#: src/tables/build/BuildLineTable.tsx:178 -#: src/tables/machine/MachineTypeTable.tsx:69 -#: src/tables/machine/MachineTypeTable.tsx:112 -#: src/tables/machine/MachineTypeTable.tsx:219 -#: src/tables/machine/MachineTypeTable.tsx:323 -#: src/tables/part/RelatedPartTable.tsx:64 -#: src/tables/plugin/PluginListTable.tsx:129 -#: src/tables/plugin/PluginListTable.tsx:276 -#: src/tables/sales/SalesOrderAllocationTable.tsx:56 -#: src/tables/sales/SalesOrderLineItemTable.tsx:67 -#: src/tables/stock/LocationTypesTable.tsx:74 -msgid "Description" -msgstr "Popis" - -#: src/pages/build/BuildDetail.tsx:129 +#: src/pages/build/BuildDetail.tsx:124 msgid "Parent Build" msgstr "" -#: src/pages/build/BuildDetail.tsx:140 +#: src/pages/build/BuildDetail.tsx:135 msgid "Build Quantity" msgstr "" -#: src/pages/build/BuildDetail.tsx:148 -#: src/pages/build/BuildDetail.tsx:274 +#: src/pages/build/BuildDetail.tsx:143 +#: src/pages/build/BuildDetail.tsx:277 msgid "Completed Outputs" msgstr "" -#: src/pages/build/BuildDetail.tsx:165 -#: src/tables/build/BuildOrderTable.tsx:151 +#: src/pages/build/BuildDetail.tsx:160 +#: src/tables/build/BuildOrderTable.tsx:142 msgid "Issued By" msgstr "" -#: src/pages/build/BuildDetail.tsx:172 -#: src/pages/part/PartDetail.tsx:365 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:220 -#: src/pages/sales/ReturnOrderDetail.tsx:199 -#: src/pages/sales/SalesOrderDetail.tsx:208 -#: src/tables/build/BuildOrderTable.tsx:157 -#: src/tables/purchasing/PurchaseOrderTable.tsx:75 -#: src/tables/sales/ReturnOrderTable.tsx:66 -#: src/tables/sales/SalesOrderTable.tsx:73 +#: src/pages/build/BuildDetail.tsx:167 +#: src/pages/part/PartDetail.tsx:406 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:244 +#: src/pages/sales/ReturnOrderDetail.tsx:216 +#: src/pages/sales/SalesOrderDetail.tsx:226 +#: src/tables/build/BuildOrderTable.tsx:148 +#: src/tables/purchasing/PurchaseOrderTable.tsx:76 +#: src/tables/sales/ReturnOrderTable.tsx:74 +#: src/tables/sales/SalesOrderTable.tsx:74 msgid "Responsible" msgstr "" -#: src/pages/build/BuildDetail.tsx:179 -#: src/tables/settings/PendingTasksTable.tsx:32 +#: src/pages/build/BuildDetail.tsx:174 +#: src/tables/settings/PendingTasksTable.tsx:36 msgid "Created" msgstr "" +#: src/pages/build/BuildDetail.tsx:181 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:229 +#: src/pages/sales/ReturnOrderDetail.tsx:201 +#: src/pages/sales/SalesOrderDetail.tsx:212 +#: src/tables/ColumnRenderers.tsx:226 +#: src/tables/part/PartPurchaseOrdersTable.tsx:100 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:135 +#: src/tables/sales/SalesOrderLineItemTable.tsx:107 +msgid "Target Date" +msgstr "" + #: src/pages/build/BuildDetail.tsx:185 #: src/pages/part/PartDetail.tsx:269 #: src/pages/stock/StockDetail.tsx:150 #~ msgid "View part barcode" #~ msgstr "View part barcode" -#: src/pages/build/BuildDetail.tsx:186 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:213 -#: src/pages/sales/ReturnOrderDetail.tsx:192 -#: src/pages/sales/SalesOrderDetail.tsx:201 -#: src/tables/ColumnRenderers.tsx:212 -#: src/tables/part/PartPurchaseOrdersTable.tsx:99 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:110 -#: src/tables/sales/SalesOrderLineItemTable.tsx:99 -msgid "Target Date" +#: src/pages/build/BuildDetail.tsx:188 +#: src/tables/sales/SalesOrderLineItemTable.tsx:281 +msgid "Completed" msgstr "" #: src/pages/build/BuildDetail.tsx:190 @@ -4047,10 +4824,6 @@ msgstr "" #~ msgid "Link custom barcode to part" #~ msgstr "Link custom barcode to part" -#: src/pages/build/BuildDetail.tsx:193 -msgid "Completed" -msgstr "" - #: src/pages/build/BuildDetail.tsx:196 #: src/pages/part/PartDetail.tsx:280 #~ msgid "Unlink custom barcode from part" @@ -4060,15 +4833,11 @@ msgstr "" #~ msgid "Build Order updated" #~ msgstr "Build Order updated" -#: src/pages/build/BuildDetail.tsx:205 -msgid "Source Location" -msgstr "" - -#: src/pages/build/BuildDetail.tsx:206 +#: src/pages/build/BuildDetail.tsx:209 msgid "Any location" msgstr "" -#: src/pages/build/BuildDetail.tsx:213 +#: src/pages/build/BuildDetail.tsx:216 msgid "Destination Location" msgstr "" @@ -4084,206 +4853,182 @@ msgstr "" #~ msgid "Delete build order" #~ msgstr "Delete build order" -#: src/pages/build/BuildDetail.tsx:251 +#: src/pages/build/BuildDetail.tsx:254 msgid "Build Details" msgstr "" -#: src/pages/build/BuildDetail.tsx:257 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:258 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:267 -#: src/pages/sales/ReturnOrderDetail.tsx:130 -#: src/pages/sales/ReturnOrderDetail.tsx:237 -#: src/pages/sales/ReturnOrderDetail.tsx:246 -#: src/pages/sales/SalesOrderDetail.tsx:272 -#: src/pages/sales/SalesOrderDetail.tsx:281 +#: src/pages/build/BuildDetail.tsx:260 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:282 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:291 +#: src/pages/sales/ReturnOrderDetail.tsx:122 +#: src/pages/sales/ReturnOrderDetail.tsx:254 +#: src/pages/sales/ReturnOrderDetail.tsx:263 +#: src/pages/sales/SalesOrderDetail.tsx:294 +#: src/pages/sales/SalesOrderDetail.tsx:303 msgid "Line Items" msgstr "" -#: src/pages/build/BuildDetail.tsx:267 +#: src/pages/build/BuildDetail.tsx:266 msgid "Incomplete Outputs" msgstr "" -#: src/pages/build/BuildDetail.tsx:289 -#: src/pages/sales/SalesOrderDetail.tsx:319 +#: src/pages/build/BuildDetail.tsx:292 +#: src/pages/sales/SalesOrderDetail.tsx:341 msgid "Allocated Stock" msgstr "" -#: src/pages/build/BuildDetail.tsx:299 +#: src/pages/build/BuildDetail.tsx:302 msgid "Consumed Stock" msgstr "" -#: src/pages/build/BuildDetail.tsx:313 +#: src/pages/build/BuildDetail.tsx:316 msgid "Child Build Orders" msgstr "" #: src/pages/build/BuildDetail.tsx:326 -#: src/tables/build/BuildOutputTable.tsx:384 -#: src/tables/stock/StockItemTestResultTable.tsx:150 +#: src/tables/build/BuildOutputTable.tsx:532 +#: src/tables/stock/StockItemTestResultTable.tsx:156 msgid "Test Results" msgstr "" #: src/pages/build/BuildDetail.tsx:337 -#: src/pages/part/PartDetail.tsx:699 +#: src/pages/part/PartDetail.tsx:740 msgid "Test Statistics" msgstr "" -#: src/pages/build/BuildDetail.tsx:351 -#: src/pages/company/CompanyDetail.tsx:259 -#: src/pages/company/ManufacturerPartDetail.tsx:179 -#: src/pages/part/PartDetail.tsx:721 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:309 -#: src/pages/sales/ReturnOrderDetail.tsx:274 -#: src/pages/sales/SalesOrderDetail.tsx:343 -#: src/pages/stock/StockDetail.tsx:385 -msgid "Attachments" -msgstr "" - -#: src/pages/build/BuildDetail.tsx:359 -#: src/pages/company/CompanyDetail.tsx:270 -#: src/pages/company/ManufacturerPartDetail.tsx:190 -#: src/pages/company/SupplierPartDetail.tsx:257 -#: src/pages/part/PartDetail.tsx:729 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:320 -#: src/pages/sales/ReturnOrderDetail.tsx:285 -#: src/pages/sales/SalesOrderDetail.tsx:354 -#: src/pages/stock/StockDetail.tsx:396 -#: src/tables/build/BuildOrderTestTable.tsx:142 -#: src/tables/stock/StockTrackingTable.tsx:189 -msgid "Notes" +#: src/pages/build/BuildDetail.tsx:365 +msgid "Edit Build Order" msgstr "" #: src/pages/build/BuildDetail.tsx:368 #~ msgid "Reporting Actions" #~ msgstr "Reporting Actions" +#: src/pages/build/BuildDetail.tsx:372 +#: src/tables/build/BuildOrderTable.tsx:173 +#: src/tables/build/BuildOrderTable.tsx:188 +msgid "Add Build Order" +msgstr "" + #: src/pages/build/BuildDetail.tsx:374 #~ msgid "Print build report" #~ msgstr "Print build report" -#: src/pages/build/BuildDetail.tsx:377 -msgid "Edit Build Order" -msgstr "" - -#: src/pages/build/BuildDetail.tsx:384 -#: src/tables/build/BuildOrderTable.tsx:172 -#: src/tables/build/BuildOrderTable.tsx:187 -msgid "Add Build Order" -msgstr "" - -#: src/pages/build/BuildDetail.tsx:398 +#: src/pages/build/BuildDetail.tsx:386 msgid "Cancel Build Order" msgstr "" -#: src/pages/build/BuildDetail.tsx:400 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:348 -#: src/pages/sales/SalesOrderDetail.tsx:380 +#: src/pages/build/BuildDetail.tsx:388 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:357 +#: src/pages/sales/ReturnOrderDetail.tsx:354 +#: src/pages/sales/SalesOrderDetail.tsx:387 msgid "Order cancelled" msgstr "" -#: src/pages/build/BuildDetail.tsx:401 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:347 -#: src/pages/sales/ReturnOrderDetail.tsx:346 -#: src/pages/sales/SalesOrderDetail.tsx:379 +#: src/pages/build/BuildDetail.tsx:389 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:356 +#: src/pages/sales/ReturnOrderDetail.tsx:353 +#: src/pages/sales/SalesOrderDetail.tsx:386 msgid "Cancel this order" msgstr "" -#: src/pages/build/BuildDetail.tsx:410 +#: src/pages/build/BuildDetail.tsx:398 msgid "Hold Build Order" msgstr "" -#: src/pages/build/BuildDetail.tsx:412 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:355 -#: src/pages/sales/ReturnOrderDetail.tsx:354 -#: src/pages/sales/SalesOrderDetail.tsx:387 +#: src/pages/build/BuildDetail.tsx:400 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:364 +#: src/pages/sales/ReturnOrderDetail.tsx:361 +#: src/pages/sales/SalesOrderDetail.tsx:394 msgid "Place this order on hold" msgstr "" -#: src/pages/build/BuildDetail.tsx:413 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:356 -#: src/pages/sales/ReturnOrderDetail.tsx:355 -#: src/pages/sales/SalesOrderDetail.tsx:388 +#: src/pages/build/BuildDetail.tsx:401 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:365 +#: src/pages/sales/ReturnOrderDetail.tsx:362 +#: src/pages/sales/SalesOrderDetail.tsx:395 msgid "Order placed on hold" msgstr "" -#: src/pages/build/BuildDetail.tsx:418 +#: src/pages/build/BuildDetail.tsx:406 msgid "Issue Build Order" msgstr "" -#: src/pages/build/BuildDetail.tsx:420 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:339 -#: src/pages/sales/ReturnOrderDetail.tsx:338 -#: src/pages/sales/SalesOrderDetail.tsx:371 +#: src/pages/build/BuildDetail.tsx:408 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:348 +#: src/pages/sales/ReturnOrderDetail.tsx:345 +#: src/pages/sales/SalesOrderDetail.tsx:378 msgid "Issue this order" msgstr "" -#: src/pages/build/BuildDetail.tsx:421 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:340 -#: src/pages/sales/ReturnOrderDetail.tsx:339 -#: src/pages/sales/SalesOrderDetail.tsx:372 +#: src/pages/build/BuildDetail.tsx:409 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:349 +#: src/pages/sales/ReturnOrderDetail.tsx:346 +#: src/pages/sales/SalesOrderDetail.tsx:379 msgid "Order issued" msgstr "" -#: src/pages/build/BuildDetail.tsx:426 +#: src/pages/build/BuildDetail.tsx:414 msgid "Complete Build Order" msgstr "" -#: src/pages/build/BuildDetail.tsx:428 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:368 -#: src/pages/sales/ReturnOrderDetail.tsx:362 -#: src/pages/sales/SalesOrderDetail.tsx:395 +#: src/pages/build/BuildDetail.tsx:416 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:377 +#: src/pages/sales/ReturnOrderDetail.tsx:369 +#: src/pages/sales/SalesOrderDetail.tsx:402 msgid "Mark this order as complete" msgstr "" -#: src/pages/build/BuildDetail.tsx:429 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:362 -#: src/pages/sales/ReturnOrderDetail.tsx:363 -#: src/pages/sales/SalesOrderDetail.tsx:396 +#: src/pages/build/BuildDetail.tsx:417 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:371 +#: src/pages/sales/ReturnOrderDetail.tsx:370 +#: src/pages/sales/SalesOrderDetail.tsx:403 msgid "Order completed" msgstr "" -#: src/pages/build/BuildDetail.tsx:460 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:391 -#: src/pages/sales/ReturnOrderDetail.tsx:392 -#: src/pages/sales/SalesOrderDetail.tsx:425 +#: src/pages/build/BuildDetail.tsx:448 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:400 +#: src/pages/sales/ReturnOrderDetail.tsx:399 +#: src/pages/sales/SalesOrderDetail.tsx:432 msgid "Issue Order" msgstr "" -#: src/pages/build/BuildDetail.tsx:467 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:398 -#: src/pages/sales/ReturnOrderDetail.tsx:399 -#: src/pages/sales/SalesOrderDetail.tsx:439 +#: src/pages/build/BuildDetail.tsx:455 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:407 +#: src/pages/sales/ReturnOrderDetail.tsx:406 +#: src/pages/sales/SalesOrderDetail.tsx:446 msgid "Complete Order" msgstr "" -#: src/pages/build/BuildDetail.tsx:496 +#: src/pages/build/BuildDetail.tsx:473 msgid "Build Order Actions" msgstr "" -#: src/pages/build/BuildDetail.tsx:502 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:432 -#: src/pages/sales/ReturnOrderDetail.tsx:433 -#: src/pages/sales/SalesOrderDetail.tsx:474 +#: src/pages/build/BuildDetail.tsx:478 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:429 +#: src/pages/sales/ReturnOrderDetail.tsx:428 +#: src/pages/sales/SalesOrderDetail.tsx:469 msgid "Edit order" msgstr "" -#: src/pages/build/BuildDetail.tsx:506 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:440 -#: src/pages/sales/ReturnOrderDetail.tsx:439 -#: src/pages/sales/SalesOrderDetail.tsx:479 +#: src/pages/build/BuildDetail.tsx:482 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:437 +#: src/pages/sales/ReturnOrderDetail.tsx:434 +#: src/pages/sales/SalesOrderDetail.tsx:474 msgid "Duplicate order" msgstr "" -#: src/pages/build/BuildDetail.tsx:510 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:443 -#: src/pages/sales/ReturnOrderDetail.tsx:444 -#: src/pages/sales/SalesOrderDetail.tsx:482 +#: src/pages/build/BuildDetail.tsx:486 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:440 +#: src/pages/sales/ReturnOrderDetail.tsx:439 +#: src/pages/sales/SalesOrderDetail.tsx:477 msgid "Hold order" msgstr "" -#: src/pages/build/BuildDetail.tsx:515 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:448 -#: src/pages/sales/ReturnOrderDetail.tsx:449 -#: src/pages/sales/SalesOrderDetail.tsx:487 +#: src/pages/build/BuildDetail.tsx:491 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:445 +#: src/pages/sales/ReturnOrderDetail.tsx:444 +#: src/pages/sales/SalesOrderDetail.tsx:482 msgid "Cancel order" msgstr "" @@ -4295,56 +5040,60 @@ msgstr "" #~ msgid "New Build Order" #~ msgstr "New Build Order" -#: src/pages/company/CompanyDetail.tsx:104 +#: src/pages/company/CompanyDetail.tsx:95 +msgid "Website" +msgstr "Webová stránka" + +#: src/pages/company/CompanyDetail.tsx:103 msgid "Phone Number" msgstr "" -#: src/pages/company/CompanyDetail.tsx:111 +#: src/pages/company/CompanyDetail.tsx:110 msgid "Email Address" msgstr "" -#: src/pages/company/CompanyDetail.tsx:121 +#: src/pages/company/CompanyDetail.tsx:120 msgid "Default Currency" msgstr "" -#: src/pages/company/CompanyDetail.tsx:126 +#: src/pages/company/CompanyDetail.tsx:125 #: src/pages/company/SupplierDetail.tsx:8 -#: src/pages/company/SupplierPartDetail.tsx:120 -#: src/pages/company/SupplierPartDetail.tsx:206 -#: src/pages/company/SupplierPartDetail.tsx:351 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:136 -#: src/tables/company/CompanyTable.tsx:100 +#: src/pages/company/SupplierPartDetail.tsx:125 +#: src/pages/company/SupplierPartDetail.tsx:218 +#: src/pages/company/SupplierPartDetail.tsx:340 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:130 +#: src/tables/company/CompanyTable.tsx:101 #: src/tables/part/PartPurchaseOrdersTable.tsx:42 -#: src/tables/purchasing/PurchaseOrderTable.tsx:88 +#: src/tables/purchasing/PurchaseOrderTable.tsx:89 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:36 msgid "Supplier" msgstr "" -#: src/pages/company/CompanyDetail.tsx:132 +#: src/pages/company/CompanyDetail.tsx:131 #: src/pages/company/ManufacturerDetail.tsx:8 -#: src/pages/company/ManufacturerPartDetail.tsx:101 -#: src/pages/company/ManufacturerPartDetail.tsx:267 -#: src/pages/company/SupplierPartDetail.tsx:135 -#: src/tables/company/CompanyTable.tsx:105 +#: src/pages/company/ManufacturerPartDetail.tsx:100 +#: src/pages/company/ManufacturerPartDetail.tsx:262 +#: src/pages/company/SupplierPartDetail.tsx:147 +#: src/tables/company/CompanyTable.tsx:106 msgid "Manufacturer" msgstr "" -#: src/pages/company/CompanyDetail.tsx:138 +#: src/pages/company/CompanyDetail.tsx:137 #: src/pages/company/CustomerDetail.tsx:8 -#: src/pages/part/pricing/SaleHistoryPanel.tsx:29 -#: src/pages/sales/ReturnOrderDetail.tsx:109 -#: src/pages/sales/SalesOrderDetail.tsx:115 -#: src/pages/stock/StockDetail.tsx:230 -#: src/tables/company/CompanyTable.tsx:110 -#: src/tables/sales/ReturnOrderTable.tsx:78 -#: src/tables/sales/SalesOrderTable.tsx:108 -#: src/tables/stock/StockTrackingTable.tsx:140 +#: src/pages/part/pricing/SaleHistoryPanel.tsx:31 +#: src/pages/sales/ReturnOrderDetail.tsx:101 +#: src/pages/sales/SalesOrderDetail.tsx:110 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:100 +#: src/pages/stock/StockDetail.tsx:271 +#: src/tables/company/CompanyTable.tsx:111 +#: src/tables/sales/ReturnOrderTable.tsx:97 +#: src/tables/sales/SalesOrderTable.tsx:121 +#: src/tables/stock/StockTrackingTable.tsx:144 msgid "Customer" msgstr "" #: src/pages/company/CompanyDetail.tsx:172 -#: src/tables/stock/StockTrackingTable.tsx:183 -msgid "Details" +msgid "Company Details" msgstr "" #: src/pages/company/CompanyDetail.tsx:175 @@ -4363,140 +5112,150 @@ msgstr "" #~ msgid "Delete company" #~ msgstr "Delete company" -#: src/pages/company/CompanyDetail.tsx:232 +#: src/pages/company/CompanyDetail.tsx:234 msgid "Assigned Stock" msgstr "" -#: src/pages/company/CompanyDetail.tsx:290 -#: src/tables/company/CompanyTable.tsx:86 +#: src/pages/company/CompanyDetail.tsx:273 +#: src/tables/company/CompanyTable.tsx:87 msgid "Edit Company" msgstr "Upravit společnost" -#: src/pages/company/CompanyDetail.tsx:298 +#: src/pages/company/CompanyDetail.tsx:281 msgid "Delete Company" msgstr "" -#: src/pages/company/CompanyDetail.tsx:306 +#: src/pages/company/CompanyDetail.tsx:289 msgid "Company Actions" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:76 -#: src/pages/company/SupplierPartDetail.tsx:89 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:128 +#: src/pages/company/ManufacturerPartDetail.tsx:74 +#: src/pages/company/SupplierPartDetail.tsx:84 msgid "Internal Part" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:91 -#: src/pages/company/SupplierPartDetail.tsx:103 -msgid "External Link" -msgstr "" - -#: src/pages/company/ManufacturerPartDetail.tsx:109 -#: src/pages/company/SupplierPartDetail.tsx:144 -#: src/tables/purchasing/ManufacturerPartTable.tsx:56 +#: src/pages/company/ManufacturerPartDetail.tsx:108 +#: src/pages/company/SupplierPartDetail.tsx:156 +#: src/tables/purchasing/ManufacturerPartTable.tsx:58 msgid "Manufacturer Part Number" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:138 +#: src/pages/company/ManufacturerPartDetail.tsx:125 +#: src/pages/company/SupplierPartDetail.tsx:108 +msgid "External Link" +msgstr "" + +#: src/pages/company/ManufacturerPartDetail.tsx:146 +#: src/pages/company/SupplierPartDetail.tsx:215 +#: src/pages/part/PartDetail.tsx:576 +msgid "Part Details" +msgstr "" + +#: src/pages/company/ManufacturerPartDetail.tsx:149 msgid "Manufacturer Details" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:147 +#: src/pages/company/ManufacturerPartDetail.tsx:158 msgid "Manufacturer Part Details" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:153 -#: src/pages/part/PartDetail.tsx:532 +#: src/pages/company/ManufacturerPartDetail.tsx:164 +#: src/pages/part/PartDetail.tsx:582 msgid "Parameters" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:165 -#: src/pages/part/PartDetail.tsx:649 +#: src/pages/company/ManufacturerPartDetail.tsx:176 +#: src/pages/part/PartDetail.tsx:669 #: src/pages/purchasing/PurchasingIndex.tsx:31 msgid "Suppliers" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:208 -#: src/tables/purchasing/ManufacturerPartTable.tsx:84 +#: src/pages/company/ManufacturerPartDetail.tsx:204 +#: src/tables/purchasing/ManufacturerPartTable.tsx:86 msgid "Edit Manufacturer Part" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:215 -#: src/tables/purchasing/ManufacturerPartTable.tsx:72 -#: src/tables/purchasing/ManufacturerPartTable.tsx:103 +#: src/pages/company/ManufacturerPartDetail.tsx:211 +#: src/tables/purchasing/ManufacturerPartTable.tsx:74 +#: src/tables/purchasing/ManufacturerPartTable.tsx:106 msgid "Add Manufacturer Part" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:227 -#: src/tables/purchasing/ManufacturerPartTable.tsx:92 +#: src/pages/company/ManufacturerPartDetail.tsx:223 +#: src/tables/purchasing/ManufacturerPartTable.tsx:94 msgid "Delete Manufacturer Part" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:240 +#: src/pages/company/ManufacturerPartDetail.tsx:236 msgid "Manufacturer Part Actions" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:281 +#: src/pages/company/ManufacturerPartDetail.tsx:276 msgid "ManufacturerPart" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:163 -#: src/tables/part/PartPurchaseOrdersTable.tsx:71 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:156 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:197 -#: src/tables/purchasing/SupplierPartTable.tsx:131 +#: src/pages/company/SupplierPartDetail.tsx:99 +msgid "Part Description" +msgstr "" + +#: src/pages/company/SupplierPartDetail.tsx:175 +#: src/tables/part/PartPurchaseOrdersTable.tsx:72 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:162 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:203 +#: src/tables/purchasing/SupplierPartTable.tsx:133 msgid "Pack Quantity" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:174 +#: src/pages/company/SupplierPartDetail.tsx:186 msgid "Supplier Availability" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:181 +#: src/pages/company/SupplierPartDetail.tsx:193 msgid "Availability Updated" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:208 +#: src/pages/company/SupplierPartDetail.tsx:220 msgid "Availability" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:217 +#: src/pages/company/SupplierPartDetail.tsx:229 msgid "Supplier Part Details" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:223 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:296 +#: src/pages/company/SupplierPartDetail.tsx:235 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:320 msgid "Received Stock" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:247 -#: src/pages/part/PartPricingPanel.tsx:111 -#: src/pages/part/pricing/PricingOverviewPanel.tsx:121 +#: src/pages/company/SupplierPartDetail.tsx:259 +#: src/pages/part/PartPricingPanel.tsx:116 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:195 msgid "Supplier Pricing" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:294 +#: src/pages/company/SupplierPartDetail.tsx:284 msgid "Supplier Part Actions" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:319 -#: src/tables/purchasing/SupplierPartTable.tsx:210 +#: src/pages/company/SupplierPartDetail.tsx:308 +#: src/tables/purchasing/SupplierPartTable.tsx:213 msgid "Edit Supplier Part" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:327 -#: src/tables/purchasing/SupplierPartTable.tsx:218 +#: src/pages/company/SupplierPartDetail.tsx:316 +#: src/tables/purchasing/SupplierPartTable.tsx:221 msgid "Delete Supplier Part" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:335 -#: src/tables/purchasing/SupplierPartTable.tsx:163 +#: src/pages/company/SupplierPartDetail.tsx:324 +#: src/tables/purchasing/SupplierPartTable.tsx:165 msgid "Add Supplier Part" msgstr "" #: src/pages/part/CategoryDetail.tsx:93 -#: src/pages/stock/LocationDetail.tsx:101 -#: src/tables/settings/ErrorTable.tsx:36 +#: src/pages/stock/LocationDetail.tsx:95 +#: src/tables/settings/ErrorTable.tsx:63 +#: src/tables/settings/ErrorTable.tsx:108 msgid "Path" msgstr "" @@ -4504,357 +5263,357 @@ msgstr "" msgid "Parent Category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:126 +#: src/pages/part/CategoryDetail.tsx:132 msgid "Subcategories" msgstr "" -#: src/pages/part/CategoryDetail.tsx:133 -#: src/pages/stock/LocationDetail.tsx:141 -#: src/tables/part/PartCategoryTable.tsx:73 +#: src/pages/part/CategoryDetail.tsx:139 +#: src/pages/stock/LocationDetail.tsx:135 +#: src/tables/part/PartCategoryTable.tsx:85 #: src/tables/stock/StockLocationTable.tsx:49 msgid "Structural" msgstr "" -#: src/pages/part/CategoryDetail.tsx:139 +#: src/pages/part/CategoryDetail.tsx:145 msgid "Parent default location" msgstr "" -#: src/pages/part/CategoryDetail.tsx:146 +#: src/pages/part/CategoryDetail.tsx:152 msgid "Default location" msgstr "" -#: src/pages/part/CategoryDetail.tsx:157 +#: src/pages/part/CategoryDetail.tsx:163 msgid "Top level part category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:167 -#: src/pages/part/CategoryDetail.tsx:221 -#: src/tables/part/PartCategoryTable.tsx:102 +#: src/pages/part/CategoryDetail.tsx:173 +#: src/pages/part/CategoryDetail.tsx:226 +#: src/tables/part/PartCategoryTable.tsx:118 msgid "Edit Part Category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:180 -#: src/pages/stock/LocationDetail.tsx:233 +#: src/pages/part/CategoryDetail.tsx:186 +#: src/pages/stock/LocationDetail.tsx:227 msgid "Delete items" msgstr "" -#: src/pages/part/CategoryDetail.tsx:188 -#: src/pages/part/CategoryDetail.tsx:226 +#: src/pages/part/CategoryDetail.tsx:194 +#: src/pages/part/CategoryDetail.tsx:231 msgid "Delete Part Category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:191 +#: src/pages/part/CategoryDetail.tsx:197 msgid "Parts Action" msgstr "" -#: src/pages/part/CategoryDetail.tsx:192 +#: src/pages/part/CategoryDetail.tsx:198 msgid "Action for parts in this category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:197 +#: src/pages/part/CategoryDetail.tsx:203 msgid "Child Categories Action" msgstr "" -#: src/pages/part/CategoryDetail.tsx:198 +#: src/pages/part/CategoryDetail.tsx:204 msgid "Action for child categories in this category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:216 +#: src/pages/part/CategoryDetail.tsx:222 msgid "Category Actions" msgstr "" -#: src/pages/part/CategoryDetail.tsx:238 +#: src/pages/part/CategoryDetail.tsx:243 msgid "Category Details" msgstr "" -#: src/pages/part/PartDetail.tsx:163 -msgid "Variant of" +#: src/pages/part/PartAllocationPanel.tsx:23 +#: src/pages/stock/StockDetail.tsx:443 +#: src/tables/part/PartTable.tsx:99 +msgid "Build Order Allocations" msgstr "" -#: src/pages/part/PartDetail.tsx:170 -msgid "Revision of" -msgstr "" - -#: src/pages/part/PartDetail.tsx:177 -#: src/tables/stock/StockItemTable.tsx:58 -msgid "Revision" +#: src/pages/part/PartAllocationPanel.tsx:40 +#: src/pages/stock/StockDetail.tsx:458 +#: src/tables/part/PartTable.tsx:108 +msgid "Sales Order Allocations" msgstr "" #: src/pages/part/PartDetail.tsx:184 +msgid "Variant of" +msgstr "" + +#: src/pages/part/PartDetail.tsx:191 +msgid "Revision of" +msgstr "" + +#: src/pages/part/PartDetail.tsx:198 +#: src/tables/stock/StockItemTable.tsx:59 +msgid "Revision" +msgstr "" + +#: src/pages/part/PartDetail.tsx:205 #: src/tables/notifications/NotificationsTable.tsx:31 #: src/tables/part/PartCategoryTemplateTable.tsx:67 msgid "Category" msgstr "" -#: src/pages/part/PartDetail.tsx:190 +#: src/pages/part/PartDetail.tsx:211 msgid "Default Location" msgstr "" -#: src/pages/part/PartDetail.tsx:197 +#: src/pages/part/PartDetail.tsx:218 msgid "Category Default Location" msgstr "" -#: src/pages/part/PartDetail.tsx:204 +#: src/pages/part/PartDetail.tsx:225 #: src/tables/purchasing/ManufacturerPartParameterTable.tsx:44 msgid "Units" msgstr "" -#: src/pages/part/PartDetail.tsx:211 -#: src/tables/settings/PendingTasksTable.tsx:42 +#: src/pages/part/PartDetail.tsx:232 +#: src/tables/settings/PendingTasksTable.tsx:46 msgid "Keywords" msgstr "" -#: src/pages/part/PartDetail.tsx:218 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:186 -#: src/pages/sales/ReturnOrderDetail.tsx:165 -#: src/pages/sales/SalesOrderDetail.tsx:174 -msgid "Link" -msgstr "" - -#: src/pages/part/PartDetail.tsx:236 +#: src/pages/part/PartDetail.tsx:257 #: src/tables/bom/BomTable.tsx:320 -#: src/tables/build/BuildLineTable.tsx:155 +#: src/tables/build/BuildLineTable.tsx:286 #: src/tables/part/PartTable.tsx:288 -#: src/tables/sales/SalesOrderLineItemTable.tsx:103 +#: src/tables/sales/SalesOrderLineItemTable.tsx:111 msgid "Available Stock" msgstr "" -#: src/pages/part/PartDetail.tsx:243 +#: src/pages/part/PartDetail.tsx:264 msgid "Variant Stock" msgstr "" -#: src/pages/part/PartDetail.tsx:251 +#: src/pages/part/PartDetail.tsx:272 msgid "Minimum Stock" msgstr "" -#: src/pages/part/PartDetail.tsx:257 +#: src/pages/part/PartDetail.tsx:278 #: src/tables/bom/BomTable.tsx:237 -#: src/tables/build/BuildLineTable.tsx:117 -#: src/tables/sales/SalesOrderLineItemTable.tsx:141 +#: src/tables/build/BuildLineTable.tsx:248 +#: src/tables/sales/SalesOrderLineItemTable.tsx:149 msgid "On order" msgstr "" -#: src/pages/part/PartDetail.tsx:266 +#: src/pages/part/PartDetail.tsx:285 +msgid "Required for Orders" +msgstr "" + +#: src/pages/part/PartDetail.tsx:294 msgid "Allocated to Build Orders" msgstr "" -#: src/pages/part/PartDetail.tsx:274 +#: src/pages/part/PartDetail.tsx:305 msgid "Allocated to Sales Orders" msgstr "" -#: src/pages/part/PartDetail.tsx:281 -#: src/tables/bom/BomTable.tsx:261 -#: src/tables/bom/BomTable.tsx:293 -msgid "Can Build" -msgstr "" - -#: src/pages/part/PartDetail.tsx:288 -#: src/tables/bom/BomTable.tsx:245 -#: src/tables/part/PartTable.tsx:92 -msgid "Building" -msgstr "" - -#: src/pages/part/PartDetail.tsx:302 -#: src/pages/part/PartDetail.tsx:873 -#: src/tables/part/ParametricPartTable.tsx:228 -#: src/tables/part/PartTable.tsx:184 -msgid "Locked" -msgstr "" - -#: src/pages/part/PartDetail.tsx:308 -msgid "Template Part" -msgstr "" - #: src/pages/part/PartDetail.tsx:310 #~ msgid "Edit part" #~ msgstr "Edit part" -#: src/pages/part/PartDetail.tsx:313 -#: src/tables/bom/BomTable.tsx:315 -msgid "Assembled Part" +#: src/pages/part/PartDetail.tsx:315 +#: src/tables/bom/BomTable.tsx:261 +#: src/tables/bom/BomTable.tsx:293 +msgid "Can Build" msgstr "" -#: src/pages/part/PartDetail.tsx:318 -msgid "Component Part" +#: src/pages/part/PartDetail.tsx:322 +#: src/pages/part/PartDetail.tsx:905 +#: src/pages/stock/StockDetail.tsx:766 +#: src/tables/build/BuildOrderTestTable.tsx:220 +#: src/tables/stock/StockItemTable.tsx:334 +msgid "In Production" msgstr "" #: src/pages/part/PartDetail.tsx:322 #~ msgid "Duplicate part" #~ msgstr "Duplicate part" -#: src/pages/part/PartDetail.tsx:323 -#: src/tables/bom/BomTable.tsx:305 -msgid "Testable Part" -msgstr "" - #: src/pages/part/PartDetail.tsx:327 #~ msgid "Delete part" #~ msgstr "Delete part" -#: src/pages/part/PartDetail.tsx:329 +#: src/pages/part/PartDetail.tsx:336 +#: src/tables/part/ParametricPartTable.tsx:228 +#: src/tables/part/PartTable.tsx:184 +msgid "Locked" +msgstr "" + +#: src/pages/part/PartDetail.tsx:342 +msgid "Template Part" +msgstr "" + +#: src/pages/part/PartDetail.tsx:347 +#: src/tables/bom/BomTable.tsx:315 +msgid "Assembled Part" +msgstr "" + +#: src/pages/part/PartDetail.tsx:352 +msgid "Component Part" +msgstr "" + +#: src/pages/part/PartDetail.tsx:357 +#: src/tables/bom/BomTable.tsx:305 +msgid "Testable Part" +msgstr "" + +#: src/pages/part/PartDetail.tsx:363 #: src/tables/bom/BomTable.tsx:310 msgid "Trackable Part" msgstr "" -#: src/pages/part/PartDetail.tsx:334 +#: src/pages/part/PartDetail.tsx:368 msgid "Purchaseable Part" msgstr "" -#: src/pages/part/PartDetail.tsx:339 +#: src/pages/part/PartDetail.tsx:374 msgid "Saleable Part" msgstr "" -#: src/pages/part/PartDetail.tsx:344 +#: src/pages/part/PartDetail.tsx:379 msgid "Virtual Part" msgstr "" -#: src/pages/part/PartDetail.tsx:352 -#: src/tables/ColumnRenderers.tsx:220 +#: src/pages/part/PartDetail.tsx:393 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:215 +#: src/pages/sales/ReturnOrderDetail.tsx:185 +#: src/pages/sales/SalesOrderDetail.tsx:197 +#: src/tables/ColumnRenderers.tsx:234 msgid "Creation Date" msgstr "" -#: src/pages/part/PartDetail.tsx:357 +#: src/pages/part/PartDetail.tsx:398 msgid "Created By" msgstr "" -#: src/pages/part/PartDetail.tsx:372 +#: src/pages/part/PartDetail.tsx:413 msgid "Default Supplier" msgstr "" -#: src/pages/part/PartDetail.tsx:383 -#: src/pages/part/pricing/BomPricingPanel.tsx:79 +#: src/pages/part/PartDetail.tsx:424 +#: src/pages/part/pricing/BomPricingPanel.tsx:113 #: src/pages/part/pricing/VariantPricingPanel.tsx:95 #: src/tables/part/PartTable.tsx:161 msgid "Price Range" msgstr "" -#: src/pages/part/PartDetail.tsx:423 -#: src/pages/stock/StockDetail.tsx:135 +#: src/pages/part/PartDetail.tsx:462 +msgid "Latest Serial Number" +msgstr "" + +#: src/pages/part/PartDetail.tsx:472 +#: src/pages/stock/StockDetail.tsx:151 msgid "Last Stocktake" msgstr "" -#: src/pages/part/PartDetail.tsx:462 +#: src/pages/part/PartDetail.tsx:511 msgid "Stocktake By" msgstr "" -#: src/pages/part/PartDetail.tsx:526 -msgid "Part Details" -msgstr "" - -#: src/pages/part/PartDetail.tsx:557 +#: src/pages/part/PartDetail.tsx:611 msgid "Variants" msgstr "" -#: src/pages/part/PartDetail.tsx:564 -#: src/pages/stock/StockDetail.tsx:307 +#: src/pages/part/PartDetail.tsx:618 +#: src/pages/stock/StockDetail.tsx:430 msgid "Allocations" msgstr "" -#: src/pages/part/PartDetail.tsx:575 -#: src/pages/stock/StockDetail.tsx:318 -#: src/tables/part/PartTable.tsx:99 -msgid "Build Order Allocations" -msgstr "" - -#: src/pages/part/PartDetail.tsx:590 -#: src/pages/stock/StockDetail.tsx:333 -#: src/tables/part/PartTable.tsx:108 -msgid "Sales Order Allocations" -msgstr "" - -#: src/pages/part/PartDetail.tsx:607 +#: src/pages/part/PartDetail.tsx:625 msgid "Bill of Materials" msgstr "" -#: src/pages/part/PartDetail.tsx:623 +#: src/pages/part/PartDetail.tsx:643 msgid "Used In" msgstr "" -#: src/pages/part/PartDetail.tsx:630 +#: src/pages/part/PartDetail.tsx:650 msgid "Part Pricing" msgstr "" -#: src/pages/part/PartDetail.tsx:636 +#: src/pages/part/PartDetail.tsx:656 #: src/pages/purchasing/PurchasingIndex.tsx:42 msgid "Manufacturers" msgstr "" -#: src/pages/part/PartDetail.tsx:676 +#: src/pages/part/PartDetail.tsx:722 msgid "Scheduling" msgstr "" -#: src/pages/part/PartDetail.tsx:688 +#: src/pages/part/PartDetail.tsx:729 msgid "Test Templates" msgstr "" -#: src/pages/part/PartDetail.tsx:715 +#: src/pages/part/PartDetail.tsx:756 msgid "Related Parts" msgstr "" -#: src/pages/part/PartDetail.tsx:849 -#: src/pages/stock/StockDetail.tsx:156 -#: src/pages/stock/StockDetail.tsx:593 -#: src/tables/build/BuildLineTable.tsx:48 +#: src/pages/part/PartDetail.tsx:881 +#: src/pages/stock/StockDetail.tsx:172 +#: src/pages/stock/StockDetail.tsx:783 +#: src/tables/build/BuildLineTable.tsx:179 #: src/tables/part/PartTable.tsx:117 -#: src/tables/stock/StockItemTable.tsx:177 -#: src/tables/stock/StockItemTable.tsx:310 +#: src/tables/stock/StockItemTable.tsx:166 +#: src/tables/stock/StockItemTable.tsx:314 msgid "Available" msgstr "" -#: src/pages/part/PartDetail.tsx:855 +#: src/pages/part/PartDetail.tsx:887 msgid "No Stock" msgstr "" -#: src/pages/part/PartDetail.tsx:861 +#: src/pages/part/PartDetail.tsx:893 +#: src/tables/part/PartTestTemplateTable.tsx:106 +#: src/tables/stock/StockItemTestResultTable.tsx:383 +msgid "Required" +msgstr "" + +#: src/pages/part/PartDetail.tsx:899 #: src/tables/bom/BomTable.tsx:325 #: src/tables/part/PartTable.tsx:86 msgid "On Order" msgstr "" -#: src/pages/part/PartDetail.tsx:867 -#: src/pages/stock/StockDetail.tsx:576 -#: src/tables/build/BuildOrderTestTable.tsx:219 -#: src/tables/stock/StockItemTable.tsx:330 -msgid "In Production" -msgstr "" - -#: src/pages/part/PartDetail.tsx:892 +#: src/pages/part/PartDetail.tsx:924 msgid "Edit Part" msgstr "" -#: src/pages/part/PartDetail.tsx:927 +#: src/pages/part/PartDetail.tsx:959 #: src/tables/part/PartTable.tsx:331 -#: src/tables/part/PartTable.tsx:342 +#: src/tables/part/PartTable.tsx:343 msgid "Add Part" msgstr "" -#: src/pages/part/PartDetail.tsx:941 +#: src/pages/part/PartDetail.tsx:973 msgid "Delete Part" msgstr "" -#: src/pages/part/PartDetail.tsx:950 +#: src/pages/part/PartDetail.tsx:982 msgid "Deleting this part cannot be reversed" msgstr "" -#: src/pages/part/PartDetail.tsx:999 -#: src/pages/stock/LocationDetail.tsx:324 -#: src/tables/stock/StockItemTable.tsx:444 +#: src/pages/part/PartDetail.tsx:1021 +#: src/pages/stock/LocationDetail.tsx:310 +#: src/tables/stock/StockItemTable.tsx:449 msgid "Stock Actions" msgstr "" -#: src/pages/part/PartDetail.tsx:1007 +#: src/pages/part/PartDetail.tsx:1029 msgid "Count part stock" msgstr "" -#: src/pages/part/PartDetail.tsx:1018 +#: src/pages/part/PartDetail.tsx:1040 msgid "Transfer part stock" msgstr "" -#: src/pages/part/PartDetail.tsx:1027 +#: src/pages/part/PartDetail.tsx:1049 msgid "Part Actions" msgstr "" -#: src/pages/part/PartDetail.tsx:1087 +#: src/pages/part/PartDetail.tsx:1113 msgid "Select Part Revision" msgstr "" @@ -4862,113 +5621,214 @@ msgstr "" #~ msgid "Categories" #~ msgstr "Categories" -#: src/pages/part/PartPricingPanel.tsx:68 +#: src/pages/part/PartPricingPanel.tsx:72 msgid "No pricing data found for this part." msgstr "" -#: src/pages/part/PartPricingPanel.tsx:82 -#: src/pages/part/pricing/PricingOverviewPanel.tsx:190 +#: src/pages/part/PartPricingPanel.tsx:87 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:293 msgid "Pricing Overview" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:88 +#: src/pages/part/PartPricingPanel.tsx:93 msgid "Purchase History" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:102 -#: src/pages/part/pricing/PricingOverviewPanel.tsx:100 +#: src/pages/part/PartPricingPanel.tsx:107 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:174 msgid "Internal Pricing" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:120 -#: src/pages/part/pricing/PricingOverviewPanel.tsx:107 +#: src/pages/part/PartPricingPanel.tsx:125 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:181 msgid "BOM Pricing" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:127 -#: src/pages/part/pricing/PricingOverviewPanel.tsx:128 +#: src/pages/part/PartPricingPanel.tsx:132 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:202 msgid "Variant Pricing" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:139 -#: src/pages/part/pricing/PricingOverviewPanel.tsx:135 +#: src/pages/part/PartPricingPanel.tsx:144 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:209 msgid "Sale Pricing" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:146 -#: src/pages/part/pricing/PricingOverviewPanel.tsx:142 +#: src/pages/part/PartPricingPanel.tsx:151 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:216 msgid "Sale History" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:58 -#: src/pages/part/pricing/BomPricingPanel.tsx:138 -#: src/tables/ColumnRenderers.tsx:262 +#: src/pages/part/PartSchedulingDetail.tsx:47 +#: src/pages/part/PartSchedulingDetail.tsx:299 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:156 +msgid "Maximum" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:50 +#: src/pages/part/PartSchedulingDetail.tsx:289 +msgid "Scheduled" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:53 +#: src/pages/part/PartSchedulingDetail.tsx:294 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:144 +msgid "Minimum" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:68 +msgid "Order" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:92 +msgid "Quantity is speculative" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:101 +msgid "No date available for provided quantity" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:105 +msgid "Date is in the past" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:112 +msgid "Scheduled Quantity" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:240 +msgid "No information available" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:241 +msgid "There is no scheduling information available for the selected part" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:276 +msgid "Expected Quantity" +msgstr "" + +#: src/pages/part/PartStocktakeDetail.tsx:63 +#: src/tables/FilterSelectDrawer.tsx:167 +#: src/tables/FilterSelectDrawer.tsx:174 +#: src/tables/build/BuildOrderTestTable.tsx:135 +#: src/tables/purchasing/ManufacturerPartParameterTable.tsx:38 +#: src/tables/stock/StockItemTestResultTable.tsx:192 +msgid "Value" +msgstr "" + +#: src/pages/part/PartStocktakeDetail.tsx:82 +msgid "Edit Stocktake Entry" +msgstr "" + +#: src/pages/part/PartStocktakeDetail.tsx:90 +msgid "Delete Stocktake Entry" +msgstr "" + +#: src/pages/part/PartStocktakeDetail.tsx:96 +#: src/tables/settings/StocktakeReportTable.tsx:69 +msgid "Generate Stocktake Report" +msgstr "" + +#: src/pages/part/PartStocktakeDetail.tsx:101 +#: src/tables/settings/StocktakeReportTable.tsx:71 +msgid "Stocktake report scheduled" +msgstr "" + +#: src/pages/part/PartStocktakeDetail.tsx:119 +#: src/pages/part/PartStocktakeDetail.tsx:235 +#: src/pages/stock/StockDetail.tsx:303 +#: src/tables/stock/StockItemTable.tsx:249 +msgid "Stock Value" +msgstr "" + +#: src/pages/part/PartStocktakeDetail.tsx:139 +#: src/tables/settings/StocktakeReportTable.tsx:77 +msgid "New Stocktake Report" +msgstr "" + +#: src/pages/part/PartStocktakeDetail.tsx:258 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:295 +msgid "Minimum Value" +msgstr "" + +#: src/pages/part/PartStocktakeDetail.tsx:264 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:296 +msgid "Maximum Value" +msgstr "" + +#: src/pages/part/pricing/BomPricingPanel.tsx:87 +#: src/pages/part/pricing/BomPricingPanel.tsx:177 +#: src/tables/ColumnRenderers.tsx:276 #: src/tables/bom/BomTable.tsx:185 #: src/tables/general/ExtraLineItemTable.tsx:64 -#: src/tables/purchasing/PurchaseOrderTable.tsx:112 -#: src/tables/sales/ReturnOrderTable.tsx:104 -#: src/tables/sales/SalesOrderLineItemTable.tsx:89 -#: src/tables/sales/SalesOrderTable.tsx:136 +#: src/tables/purchasing/PurchaseOrderTable.tsx:113 +#: src/tables/sales/ReturnOrderTable.tsx:127 +#: src/tables/sales/SalesOrderLineItemTable.tsx:97 +#: src/tables/sales/SalesOrderTable.tsx:149 msgid "Total Price" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:78 -#: src/pages/part/pricing/BomPricingPanel.tsx:102 +#: src/pages/part/pricing/BomPricingPanel.tsx:112 +#: src/pages/part/pricing/BomPricingPanel.tsx:141 #: src/tables/bom/UsedInTable.tsx:49 +#: src/tables/build/BuildLineTable.tsx:296 #: src/tables/part/PartTable.tsx:202 msgid "Component" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:81 -#: src/pages/part/pricing/VariantPricingPanel.tsx:37 -#: src/pages/part/pricing/VariantPricingPanel.tsx:97 -msgid "Minimum Price" -msgstr "" - -#: src/pages/part/pricing/BomPricingPanel.tsx:82 -#: src/pages/part/pricing/VariantPricingPanel.tsx:45 -#: src/pages/part/pricing/VariantPricingPanel.tsx:98 -msgid "Maximum Price" -msgstr "" - #: src/pages/part/pricing/BomPricingPanel.tsx:112 #~ msgid "Minimum Total Price" #~ msgstr "Minimum Total Price" +#: src/pages/part/pricing/BomPricingPanel.tsx:115 +#: src/pages/part/pricing/VariantPricingPanel.tsx:37 +#: src/pages/part/pricing/VariantPricingPanel.tsx:97 +msgid "Minimum Price" +msgstr "" + +#: src/pages/part/pricing/BomPricingPanel.tsx:116 +#: src/pages/part/pricing/VariantPricingPanel.tsx:45 +#: src/pages/part/pricing/VariantPricingPanel.tsx:98 +msgid "Maximum Price" +msgstr "" + #: src/pages/part/pricing/BomPricingPanel.tsx:117 #~ msgid "Maximum Total Price" #~ msgstr "Maximum Total Price" -#: src/pages/part/pricing/BomPricingPanel.tsx:129 -#: src/pages/part/pricing/PriceBreakPanel.tsx:172 -#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:67 -#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:128 -#: src/pages/part/pricing/SupplierPricingPanel.tsx:62 +#: src/pages/part/pricing/BomPricingPanel.tsx:168 +#: src/pages/part/pricing/PriceBreakPanel.tsx:173 +#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:70 +#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:125 +#: src/pages/part/pricing/SupplierPricingPanel.tsx:66 +#: src/pages/stock/StockDetail.tsx:291 #: src/tables/bom/BomTable.tsx:176 #: src/tables/general/ExtraLineItemTable.tsx:56 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:223 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:225 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:92 +#: src/tables/stock/StockItemTable.tsx:239 msgid "Unit Price" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:154 +#: src/pages/part/pricing/BomPricingPanel.tsx:193 #: src/pages/part/pricing/VariantPricingPanel.tsx:53 -#: src/tables/purchasing/SupplierPartTable.tsx:148 +#: src/tables/purchasing/SupplierPartTable.tsx:150 msgid "Updated" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:219 +#: src/pages/part/pricing/BomPricingPanel.tsx:258 msgid "Pie Chart" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:220 +#: src/pages/part/pricing/BomPricingPanel.tsx:259 msgid "Bar Chart" msgstr "" #: src/pages/part/pricing/PriceBreakPanel.tsx:58 -#: src/pages/part/pricing/PriceBreakPanel.tsx:110 +#: src/pages/part/pricing/PriceBreakPanel.tsx:111 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:142 -#: src/tables/purchasing/SupplierPriceBreakTable.tsx:168 +#: src/tables/purchasing/SupplierPriceBreakTable.tsx:169 msgid "Add Price Break" msgstr "" @@ -4986,46 +5846,70 @@ msgstr "" msgid "Price Break" msgstr "" -#: src/pages/part/pricing/PriceBreakPanel.tsx:170 +#: src/pages/part/pricing/PriceBreakPanel.tsx:171 msgid "Price" msgstr "" -#: src/pages/part/pricing/PricingOverviewPanel.tsx:51 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:68 +msgid "Refreshing pricing data" +msgstr "" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:88 +msgid "Pricing data updated" +msgstr "" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:95 +msgid "Failed to update pricing data" +msgstr "" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:104 +msgid "Edit Pricing" +msgstr "" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:125 msgid "Pricing Category" msgstr "" -#: src/pages/part/pricing/PricingOverviewPanel.tsx:70 -msgid "Minimum" -msgstr "" - -#: src/pages/part/pricing/PricingOverviewPanel.tsx:82 -msgid "Maximum" -msgstr "" - -#: src/pages/part/pricing/PricingOverviewPanel.tsx:114 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:188 msgid "Purchase Pricing" msgstr "" -#: src/pages/part/pricing/PricingOverviewPanel.tsx:149 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:223 msgid "Override Pricing" msgstr "" -#: src/pages/part/pricing/PricingOverviewPanel.tsx:156 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:230 msgid "Overall Pricing" msgstr "" -#: src/pages/part/pricing/PricingOverviewPanel.tsx:175 -#: src/pages/stock/StockDetail.tsx:129 -#: src/tables/stock/StockItemTable.tsx:240 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:249 +#: src/pages/stock/StockDetail.tsx:145 +#: src/tables/stock/StockItemTable.tsx:275 msgid "Last Updated" msgstr "" -#: src/pages/part/pricing/PricingOverviewPanel.tsx:192 -msgid "Minimum Value" +#: src/pages/part/pricing/PricingOverviewPanel.tsx:253 +msgid "Pricing Not Set" msgstr "" -#: src/pages/part/pricing/PricingOverviewPanel.tsx:193 -msgid "Maximum Value" +#: src/pages/part/pricing/PricingOverviewPanel.tsx:254 +msgid "Pricing data has not been calculated for this part" +msgstr "" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:258 +msgid "Pricing Actions" +msgstr "" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:261 +msgid "Refresh" +msgstr "" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:262 +msgid "Refresh pricing data" +msgstr "" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:277 +msgid "Edit pricing data" msgstr "" #: src/pages/part/pricing/PricingPanel.tsx:24 @@ -5044,28 +5928,20 @@ msgstr "" msgid "Loading pricing data" msgstr "" -#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:40 -#: src/pages/part/pricing/SaleHistoryPanel.tsx:36 -#: src/tables/ColumnRenderers.tsx:201 -#: src/tables/build/BuildOrderTestTable.tsx:150 -#: src/tables/plugin/PluginListTable.tsx:139 -msgid "Date" -msgstr "" - #: src/pages/part/pricing/PurchaseHistoryPanel.tsx:47 msgid "Purchase Price" msgstr "" -#: src/pages/part/pricing/SaleHistoryPanel.tsx:22 -msgid "Sale Order" -msgstr "" +#: src/pages/part/pricing/SaleHistoryPanel.tsx:24 +#~ msgid "Sale Order" +#~ msgstr "Sale Order" -#: src/pages/part/pricing/SaleHistoryPanel.tsx:42 -#: src/pages/part/pricing/SaleHistoryPanel.tsx:92 +#: src/pages/part/pricing/SaleHistoryPanel.tsx:44 +#: src/pages/part/pricing/SaleHistoryPanel.tsx:87 msgid "Sale Price" msgstr "" -#: src/pages/part/pricing/SupplierPricingPanel.tsx:65 +#: src/pages/part/pricing/SupplierPricingPanel.tsx:69 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:83 msgid "Supplier Price" msgstr "" @@ -5075,23 +5951,23 @@ msgstr "" msgid "Variant Part" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:93 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:87 msgid "Edit Purchase Order" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:102 -#: src/tables/purchasing/PurchaseOrderTable.tsx:128 -#: src/tables/purchasing/PurchaseOrderTable.tsx:140 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:96 +#: src/tables/purchasing/PurchaseOrderTable.tsx:129 +#: src/tables/purchasing/PurchaseOrderTable.tsx:142 msgid "Add Purchase Order" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:127 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:121 msgid "Supplier Reference" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:158 -#: src/pages/sales/ReturnOrderDetail.tsx:137 -#: src/pages/sales/SalesOrderDetail.tsx:137 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:152 +#: src/pages/sales/ReturnOrderDetail.tsx:129 +#: src/pages/sales/SalesOrderDetail.tsx:132 msgid "Completed Line Items" msgstr "" @@ -5101,91 +5977,112 @@ msgstr "" #~ msgid "Order Currency," #~ msgstr "Order Currency," -#: src/pages/purchasing/PurchaseOrderDetail.tsx:165 -#: src/pages/sales/ReturnOrderDetail.tsx:144 -#: src/pages/sales/SalesOrderDetail.tsx:153 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:161 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:231 +msgid "Destination" +msgstr "" + +#: src/pages/purchasing/PurchaseOrderDetail.tsx:167 +#: src/pages/sales/ReturnOrderDetail.tsx:136 +#: src/pages/sales/SalesOrderDetail.tsx:148 msgid "Order Currency" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:172 -#: src/pages/sales/ReturnOrderDetail.tsx:151 -#: src/pages/sales/SalesOrderDetail.tsx:160 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:173 +#: src/pages/sales/ReturnOrderDetail.tsx:143 +#: src/pages/sales/SalesOrderDetail.tsx:155 msgid "Total Cost" msgstr "" #: src/pages/purchasing/PurchaseOrderDetail.tsx:207 -#: src/pages/sales/ReturnOrderDetail.tsx:186 -#: src/pages/sales/SalesOrderDetail.tsx:195 -msgid "Created On" +#: src/pages/sales/ReturnOrderDetail.tsx:183 +#: src/pages/sales/SalesOrderDetail.tsx:191 +#~ msgid "Created On" +#~ msgstr "Created On" + +#: src/pages/purchasing/PurchaseOrderDetail.tsx:221 +#: src/pages/sales/ReturnOrderDetail.tsx:193 +#: src/pages/sales/SalesOrderDetail.tsx:204 +msgid "Issue Date" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:252 -#: src/pages/sales/ReturnOrderDetail.tsx:231 -#: src/pages/sales/SalesOrderDetail.tsx:266 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:237 +#: src/pages/sales/ReturnOrderDetail.tsx:209 +#: src/pages/sales/SalesOrderDetail.tsx:219 +#: src/tables/build/BuildOrderTable.tsx:98 +#: src/tables/part/PartPurchaseOrdersTable.tsx:105 +#: src/tables/sales/ReturnOrderTable.tsx:122 +msgid "Completion Date" +msgstr "" + +#: src/pages/purchasing/PurchaseOrderDetail.tsx:276 +#: src/pages/sales/ReturnOrderDetail.tsx:248 +#: src/pages/sales/SalesOrderDetail.tsx:288 msgid "Order Details" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:280 -#: src/pages/sales/ReturnOrderDetail.tsx:258 -#: src/pages/sales/SalesOrderDetail.tsx:297 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:304 +#: src/pages/sales/ReturnOrderDetail.tsx:276 +#: src/pages/sales/SalesOrderDetail.tsx:319 msgid "Extra Line Items" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:337 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:346 msgid "Issue Purchase Order" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:345 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:354 msgid "Cancel Purchase Order" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:353 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:362 msgid "Hold Purchase Order" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:361 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:370 msgid "Complete Purchase Order" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:427 -#: src/pages/sales/ReturnOrderDetail.tsx:428 -#: src/pages/sales/SalesOrderDetail.tsx:468 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:425 +#: src/pages/sales/ReturnOrderDetail.tsx:424 +#: src/pages/sales/SalesOrderDetail.tsx:464 msgid "Order Actions" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:101 -#: src/pages/sales/SalesOrderDetail.tsx:107 -#: src/tables/sales/SalesOrderTable.tsx:124 +#: src/pages/sales/ReturnOrderDetail.tsx:92 +#: src/pages/sales/SalesOrderDetail.tsx:101 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:109 +#: src/tables/sales/SalesOrderTable.tsx:137 msgid "Customer Reference" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:315 +#: src/pages/sales/ReturnOrderDetail.tsx:322 msgid "Edit Return Order" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:324 -#: src/tables/sales/ReturnOrderTable.tsx:119 -#: src/tables/sales/ReturnOrderTable.tsx:128 +#: src/pages/sales/ReturnOrderDetail.tsx:331 +#: src/tables/sales/ReturnOrderTable.tsx:142 +#: src/tables/sales/ReturnOrderTable.tsx:152 msgid "Add Return Order" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:336 +#: src/pages/sales/ReturnOrderDetail.tsx:343 msgid "Issue Return Order" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:344 +#: src/pages/sales/ReturnOrderDetail.tsx:349 +#~ msgid "Order canceled" +#~ msgstr "Order canceled" + +#: src/pages/sales/ReturnOrderDetail.tsx:351 msgid "Cancel Return Order" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:347 -msgid "Order canceled" -msgstr "" - -#: src/pages/sales/ReturnOrderDetail.tsx:352 +#: src/pages/sales/ReturnOrderDetail.tsx:359 msgid "Hold Return Order" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:360 +#: src/pages/sales/ReturnOrderDetail.tsx:367 msgid "Complete Return Order" msgstr "" @@ -5193,117 +6090,193 @@ msgstr "" msgid "Customers" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:145 +#: src/pages/sales/SalesOrderDetail.tsx:140 msgid "Completed Shipments" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:243 -msgid "Edit Sales Order" -msgstr "" - -#: src/pages/sales/SalesOrderDetail.tsx:252 -#: src/tables/sales/SalesOrderTable.tsx:84 -#: src/tables/sales/SalesOrderTable.tsx:96 -msgid "Add Sales Order" -msgstr "" - #: src/pages/sales/SalesOrderDetail.tsx:256 #~ msgid "Pending Shipments" #~ msgstr "Pending Shipments" -#: src/pages/sales/SalesOrderDetail.tsx:313 +#: src/pages/sales/SalesOrderDetail.tsx:261 +msgid "Edit Sales Order" +msgstr "" + +#: src/pages/sales/SalesOrderDetail.tsx:274 +#: src/tables/sales/SalesOrderTable.tsx:96 +#: src/tables/sales/SalesOrderTable.tsx:109 +msgid "Add Sales Order" +msgstr "" + +#: src/pages/sales/SalesOrderDetail.tsx:335 msgid "Shipments" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:369 +#: src/pages/sales/SalesOrderDetail.tsx:376 msgid "Issue Sales Order" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:377 +#: src/pages/sales/SalesOrderDetail.tsx:384 msgid "Cancel Sales Order" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:385 +#: src/pages/sales/SalesOrderDetail.tsx:392 msgid "Hold Sales Order" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:393 +#: src/pages/sales/SalesOrderDetail.tsx:400 msgid "Complete Sales Order" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:432 +#: src/pages/sales/SalesOrderDetail.tsx:439 msgid "Ship Order" msgstr "" -#: src/pages/stock/LocationDetail.tsx:117 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:117 +#: src/tables/sales/SalesOrderShipmentTable.tsx:96 +msgid "Shipment Reference" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:124 +msgid "Allocated Items" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:133 +msgid "Tracking Number" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:141 +msgid "Invoice Number" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:149 +#: src/tables/ColumnRenderers.tsx:242 +#: src/tables/sales/SalesOrderAllocationTable.tsx:142 +#: src/tables/sales/SalesOrderShipmentTable.tsx:115 +msgid "Shipment Date" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:157 +#: src/tables/sales/SalesOrderShipmentTable.tsx:119 +msgid "Delivery Date" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:204 +msgid "Shipment Details" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:210 +msgid "Assigned Items" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:241 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:317 +#: src/tables/sales/SalesOrderShipmentTable.tsx:75 +msgid "Edit Shipment" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:248 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:322 +#: src/tables/sales/SalesOrderShipmentTable.tsx:67 +msgid "Cancel Shipment" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:261 +#: src/tables/sales/SalesOrderShipmentTable.tsx:83 +#: src/tables/sales/SalesOrderShipmentTable.tsx:151 +msgid "Complete Shipment" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:276 +#: src/tables/part/PartPurchaseOrdersTable.tsx:121 +msgid "Pending" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:277 +#: src/tables/sales/SalesOrderAllocationTable.tsx:148 +#: src/tables/sales/SalesOrderShipmentTable.tsx:108 +#: src/tables/sales/SalesOrderShipmentTable.tsx:197 +msgid "Shipped" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:279 +#: src/tables/sales/SalesOrderShipmentTable.tsx:202 +msgid "Delivered" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:293 +msgid "Send Shipment" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:312 +msgid "Shipment Actions" +msgstr "" + +#: src/pages/stock/LocationDetail.tsx:111 msgid "Parent Location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:135 +#: src/pages/stock/LocationDetail.tsx:129 msgid "Sublocations" msgstr "" -#: src/pages/stock/LocationDetail.tsx:147 +#: src/pages/stock/LocationDetail.tsx:141 #: src/tables/stock/StockLocationTable.tsx:54 msgid "External" msgstr "" -#: src/pages/stock/LocationDetail.tsx:153 +#: src/pages/stock/LocationDetail.tsx:147 #: src/tables/stock/StockLocationTable.tsx:63 msgid "Location Type" msgstr "" -#: src/pages/stock/LocationDetail.tsx:164 +#: src/pages/stock/LocationDetail.tsx:158 msgid "Top level stock location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:175 +#: src/pages/stock/LocationDetail.tsx:169 msgid "Location Details" msgstr "" -#: src/pages/stock/LocationDetail.tsx:201 +#: src/pages/stock/LocationDetail.tsx:195 msgid "Default Parts" msgstr "" -#: src/pages/stock/LocationDetail.tsx:220 -#: src/pages/stock/LocationDetail.tsx:351 +#: src/pages/stock/LocationDetail.tsx:214 +#: src/pages/stock/LocationDetail.tsx:336 #: src/tables/stock/StockLocationTable.tsx:123 msgid "Edit Stock Location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:241 -#: src/pages/stock/LocationDetail.tsx:356 +#: src/pages/stock/LocationDetail.tsx:235 +#: src/pages/stock/LocationDetail.tsx:341 msgid "Delete Stock Location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:244 +#: src/pages/stock/LocationDetail.tsx:238 msgid "Items Action" msgstr "" -#: src/pages/stock/LocationDetail.tsx:245 +#: src/pages/stock/LocationDetail.tsx:239 msgid "Action for stock items in this location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:250 +#: src/pages/stock/LocationDetail.tsx:244 msgid "Child Locations Action" msgstr "" -#: src/pages/stock/LocationDetail.tsx:251 +#: src/pages/stock/LocationDetail.tsx:245 msgid "Action for child locations in this location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:346 +#: src/pages/stock/LocationDetail.tsx:332 msgid "Location Actions" msgstr "" -#: src/pages/stock/StockDetail.tsx:108 +#: src/pages/stock/StockDetail.tsx:116 msgid "Base Part" msgstr "" -#: src/pages/stock/StockDetail.tsx:115 -msgid "Stock Status" -msgstr "" - #: src/pages/stock/StockDetail.tsx:155 #~ msgid "Link custom barcode to stock item" #~ msgstr "Link custom barcode to stock item" @@ -5312,113 +6285,179 @@ msgstr "" #~ msgid "Unlink custom barcode from stock item" #~ msgstr "Unlink custom barcode from stock item" -#: src/pages/stock/StockDetail.tsx:188 -msgid "Installed In" -msgstr "" - -#: src/pages/stock/StockDetail.tsx:204 -msgid "Consumed By" +#: src/pages/stock/StockDetail.tsx:178 +msgid "Allocated to Orders" msgstr "" #: src/pages/stock/StockDetail.tsx:205 #~ msgid "Edit stock item" #~ msgstr "Edit stock item" -#: src/pages/stock/StockDetail.tsx:213 -#: src/tables/build/BuildAllocatedStockTable.tsx:64 -#: src/tables/stock/StockTrackingTable.tsx:96 -msgid "Build Order" +#: src/pages/stock/StockDetail.tsx:209 +msgid "Installed In" msgstr "" #: src/pages/stock/StockDetail.tsx:217 #~ msgid "Delete stock item" #~ msgstr "Delete stock item" -#: src/pages/stock/StockDetail.tsx:291 +#: src/pages/stock/StockDetail.tsx:226 +msgid "Parent Item" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:230 +msgid "Parent stock item" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:236 +msgid "Consumed By" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:245 +#: src/tables/build/BuildAllocatedStockTable.tsx:77 +#: src/tables/stock/StockTrackingTable.tsx:100 +msgid "Build Order" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:283 +#: src/tables/stock/StockItemTable.tsx:270 +msgid "Expiry Date" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:414 msgid "Stock Details" msgstr "" -#: src/pages/stock/StockDetail.tsx:297 +#: src/pages/stock/StockDetail.tsx:420 msgid "Stock Tracking" msgstr "" -#: src/pages/stock/StockDetail.tsx:350 -msgid "Test Data" -msgstr "" - -#: src/pages/stock/StockDetail.tsx:364 -msgid "Installed Items" -msgstr "" - -#: src/pages/stock/StockDetail.tsx:371 -msgid "Child Items" -msgstr "" - -#: src/pages/stock/StockDetail.tsx:425 -msgid "Edit Stock Item" -msgstr "" - #: src/pages/stock/StockDetail.tsx:433 #~ msgid "Duplicate stock item" #~ msgstr "Duplicate stock item" -#: src/pages/stock/StockDetail.tsx:452 +#: src/pages/stock/StockDetail.tsx:475 +msgid "Test Data" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:489 +msgid "Installed Items" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:496 +msgid "Child Items" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:545 +msgid "Edit Stock Item" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:572 msgid "Delete Stock Item" msgstr "" -#: src/pages/stock/StockDetail.tsx:504 +#: src/pages/stock/StockDetail.tsx:604 +msgid "Serialize Stock Item" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:617 +msgid "Stock item serialized" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:623 +msgid "Return Stock Item" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:626 +msgid "Return this item into stock. This will remove the customer assignment." +msgstr "" + +#: src/pages/stock/StockDetail.tsx:636 +msgid "Item returned to stock" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:666 msgid "Stock Operations" msgstr "" -#: src/pages/stock/StockDetail.tsx:509 +#: src/pages/stock/StockDetail.tsx:671 msgid "Count stock" msgstr "" -#: src/pages/stock/StockDetail.tsx:519 -#: src/tables/stock/StockItemTable.tsx:449 -msgid "Add stock" +#: src/pages/stock/StockDetail.tsx:671 +#: src/tables/stock/StockItemTable.tsx:452 +#~ msgid "Add stock" +#~ msgstr "Add stock" + +#: src/pages/stock/StockDetail.tsx:680 +#: src/tables/stock/StockItemTable.tsx:461 +#~ msgid "Remove stock" +#~ msgstr "Remove stock" + +#: src/pages/stock/StockDetail.tsx:698 +#: src/tables/stock/StockItemTable.tsx:481 +#~ msgid "Transfer stock" +#~ msgstr "Transfer stock" + +#: src/pages/stock/StockDetail.tsx:699 +msgid "Serialize" msgstr "" -#: src/pages/stock/StockDetail.tsx:527 -#: src/tables/stock/StockItemTable.tsx:458 -msgid "Remove stock" +#: src/pages/stock/StockDetail.tsx:700 +msgid "Serialize stock" msgstr "" -#: src/pages/stock/StockDetail.tsx:534 +#: src/pages/stock/StockDetail.tsx:711 msgid "Transfer" msgstr "" -#: src/pages/stock/StockDetail.tsx:535 -#: src/tables/stock/StockItemTable.tsx:478 -msgid "Transfer stock" +#: src/pages/stock/StockDetail.tsx:722 +msgid "Return" msgstr "" -#: src/pages/stock/StockDetail.tsx:546 +#: src/pages/stock/StockDetail.tsx:723 +msgid "Return from customer" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:738 msgid "Stock Item Actions" msgstr "" -#: src/tables/ColumnRenderers.tsx:30 +#: src/pages/stock/StockDetail.tsx:808 +msgid "Stale" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:814 +msgid "Expired" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:820 +msgid "Unavailable" +msgstr "" + +#: src/tables/ColumnRenderers.tsx:36 msgid "Part is not active" msgstr "Součást není aktivní" -#: src/tables/ColumnRenderers.tsx:35 -msgid "Part is locked" +#: src/tables/ColumnRenderers.tsx:41 +#: src/tables/bom/BomTable.tsx:542 +#: src/tables/part/PartParameterTable.tsx:193 +#: src/tables/part/PartTestTemplateTable.tsx:253 +msgid "Part is Locked" msgstr "" -#: src/tables/ColumnRenderers.tsx:57 +#: src/tables/ColumnRenderers.tsx:41 +#~ msgid "Part is locked" +#~ msgstr "Part is locked" + +#: src/tables/ColumnRenderers.tsx:46 +msgid "You are subscribed to notifications for this part" +msgstr "" + +#: src/tables/ColumnRenderers.tsx:68 msgid "No location set" msgstr "" -#: src/tables/ColumnRenderers.tsx:228 -#: src/tables/sales/SalesOrderShipmentTable.tsx:79 -msgid "Shipment Date" -msgstr "" - -#: src/tables/ColumnRenderers.tsx:248 -#: src/tables/settings/CurrencyTable.tsx:23 -msgid "Currency" -msgstr "" - #: src/tables/ColumnSelect.tsx:16 #: src/tables/ColumnSelect.tsx:23 msgid "Select Columns" @@ -5452,91 +6491,116 @@ msgstr "" msgid "Download Data" msgstr "" -#: src/tables/Filter.tsx:89 -#: src/tables/build/BuildOrderTable.tsx:135 +#: src/tables/Filter.tsx:101 msgid "Assigned to me" msgstr "" -#: src/tables/Filter.tsx:90 -#: src/tables/build/BuildOrderTable.tsx:136 +#: src/tables/Filter.tsx:102 msgid "Show orders assigned to me" msgstr "" -#: src/tables/Filter.tsx:97 +#: src/tables/Filter.tsx:106 +#~ msgid "Show overdue orders" +#~ msgstr "Show overdue orders" + +#: src/tables/Filter.tsx:109 +#: src/tables/build/BuildOrderTable.tsx:120 +#: src/tables/sales/SalesOrderAllocationTable.tsx:59 msgid "Outstanding" msgstr "" -#: src/tables/Filter.tsx:98 -msgid "Show outstanding orders" +#: src/tables/Filter.tsx:110 +msgid "Show outstanding items" msgstr "" -#: src/tables/Filter.tsx:105 -#: src/tables/build/BuildOrderTable.tsx:128 +#: src/tables/Filter.tsx:117 msgid "Overdue" msgstr "" -#: src/tables/Filter.tsx:106 -msgid "Show overdue orders" +#: src/tables/Filter.tsx:118 +msgid "Show overdue items" msgstr "" -#: src/tables/FilterSelectDrawer.tsx:51 +#: src/tables/Filter.tsx:125 +msgid "Minimum Date" +msgstr "" + +#: src/tables/Filter.tsx:126 +msgid "Show items after this date" +msgstr "" + +#: src/tables/Filter.tsx:134 +msgid "Maximum Date" +msgstr "" + +#: src/tables/Filter.tsx:135 +msgid "Show items before this date" +msgstr "" + +#: src/tables/Filter.tsx:144 +msgid "Has Project Code" +msgstr "" + +#: src/tables/Filter.tsx:145 +msgid "Show orders with an assigned project code" +msgstr "" + +#: src/tables/FilterSelectDrawer.tsx:55 msgid "Remove filter" msgstr "" -#: src/tables/FilterSelectDrawer.tsx:130 +#: src/tables/FilterSelectDrawer.tsx:159 msgid "Select filter" msgstr "" -#: src/tables/FilterSelectDrawer.tsx:131 +#: src/tables/FilterSelectDrawer.tsx:160 msgid "Filter" msgstr "" -#: src/tables/FilterSelectDrawer.tsx:138 -#: src/tables/build/BuildOrderTestTable.tsx:134 -#: src/tables/purchasing/ManufacturerPartParameterTable.tsx:38 -#: src/tables/stock/StockItemTestResultTable.tsx:186 -msgid "Value" +#: src/tables/FilterSelectDrawer.tsx:168 +msgid "Select date value" msgstr "" -#: src/tables/FilterSelectDrawer.tsx:140 +#: src/tables/FilterSelectDrawer.tsx:176 msgid "Select filter value" msgstr "" -#: src/tables/FilterSelectDrawer.tsx:183 +#: src/tables/FilterSelectDrawer.tsx:219 +#: src/tables/InvenTreeTableHeader.tsx:214 msgid "Table Filters" msgstr "" -#: src/tables/FilterSelectDrawer.tsx:215 +#: src/tables/FilterSelectDrawer.tsx:251 msgid "Add Filter" msgstr "" -#: src/tables/FilterSelectDrawer.tsx:224 +#: src/tables/FilterSelectDrawer.tsx:260 msgid "Clear Filters" msgstr "" -#: src/tables/InvenTreeTable.tsx:123 -#: src/tables/InvenTreeTable.tsx:431 -#: src/tables/InvenTreeTable.tsx:455 +#: src/tables/InvenTreeTable.tsx:96 +#: src/tables/InvenTreeTable.tsx:417 +#: src/tables/InvenTreeTable.tsx:441 msgid "No records found" msgstr "" -#: src/tables/InvenTreeTable.tsx:466 +#: src/tables/InvenTreeTable.tsx:452 msgid "Server returned incorrect data type" msgstr "" -#: src/tables/InvenTreeTable.tsx:474 +#: src/tables/InvenTreeTable.tsx:460 msgid "Bad request" msgstr "" -#: src/tables/InvenTreeTable.tsx:477 +#: src/tables/InvenTreeTable.tsx:463 msgid "Unauthorized" msgstr "" -#: src/tables/InvenTreeTable.tsx:480 +#: src/tables/InvenTreeTable.tsx:466 msgid "Forbidden" msgstr "" -#: src/tables/InvenTreeTable.tsx:483 +#: src/tables/InvenTreeTable.tsx:469 msgid "Not found" msgstr "" @@ -5544,18 +6608,6 @@ msgstr "" #~ msgid "Are you sure you want to delete the selected records?" #~ msgstr "Are you sure you want to delete the selected records?" -#: src/tables/InvenTreeTable.tsx:525 -msgid "Delete Selected Items" -msgstr "" - -#: src/tables/InvenTreeTable.tsx:529 -msgid "Are you sure you want to delete the selected items?" -msgstr "" - -#: src/tables/InvenTreeTable.tsx:531 -msgid "This action cannot be undone!" -msgstr "" - #: src/tables/InvenTreeTable.tsx:535 #~ msgid "Deleted records" #~ msgstr "Deleted records" @@ -5568,31 +6620,56 @@ msgstr "" #~ msgid "Failed to delete records" #~ msgstr "Failed to delete records" +#: src/tables/InvenTreeTable.tsx:552 +#~ msgid "This action cannot be undone!" +#~ msgstr "This action cannot be undone!" + #: src/tables/InvenTreeTable.tsx:594 #: src/tables/InvenTreeTable.tsx:595 #~ msgid "Print actions" #~ msgstr "Print actions" -#: src/tables/InvenTreeTable.tsx:618 -#: src/tables/InvenTreeTable.tsx:619 -msgid "Barcode actions" +#: src/tables/InvenTreeTable.tsx:655 +#: src/tables/InvenTreeTable.tsx:656 +#~ msgid "Barcode actions" +#~ msgstr "Barcode actions" + +#: src/tables/InvenTreeTable.tsx:712 +#~ msgid "Table filters" +#~ msgstr "Table filters" + +#: src/tables/InvenTreeTable.tsx:725 +#~ msgid "Clear custom query filters" +#~ msgstr "Clear custom query filters" + +#: src/tables/InvenTreeTableHeader.tsx:98 +msgid "Delete Selected Items" msgstr "" -#: src/tables/InvenTreeTable.tsx:628 +#: src/tables/InvenTreeTableHeader.tsx:102 +msgid "Are you sure you want to delete the selected items?" +msgstr "" + +#: src/tables/InvenTreeTableHeader.tsx:104 +#: src/tables/plugin/PluginListTable.tsx:305 +msgid "This action cannot be undone" +msgstr "" + +#: src/tables/InvenTreeTableHeader.tsx:142 +msgid "Custom table filters are active" +msgstr "" + +#: src/tables/InvenTreeTableHeader.tsx:169 msgid "Delete selected records" msgstr "" -#: src/tables/InvenTreeTable.tsx:649 +#: src/tables/InvenTreeTableHeader.tsx:188 msgid "Refresh data" msgstr "" -#: src/tables/InvenTreeTable.tsx:675 -msgid "Table filters" -msgstr "" - #: src/tables/TableHoverCard.tsx:35 -msgid "item-{idx}" -msgstr "" +#~ msgid "item-{idx}" +#~ msgstr "item-{idx}" #: src/tables/UploadAction.tsx:7 #~ msgid "Upload Data" @@ -5607,31 +6684,36 @@ msgid "Part Information" msgstr "" #: src/tables/bom/BomTable.tsx:212 -#: src/tables/build/BuildLineTable.tsx:126 +#: src/tables/build/BuildLineTable.tsx:257 #: src/tables/part/PartTable.tsx:125 msgid "External stock" msgstr "" #: src/tables/bom/BomTable.tsx:220 -#: src/tables/build/BuildLineTable.tsx:89 +#: src/tables/build/BuildLineTable.tsx:220 msgid "Includes substitute stock" msgstr "" #: src/tables/bom/BomTable.tsx:229 -#: src/tables/build/BuildLineTable.tsx:99 -#: src/tables/sales/SalesOrderLineItemTable.tsx:127 +#: src/tables/build/BuildLineTable.tsx:230 +#: src/tables/sales/SalesOrderLineItemTable.tsx:135 msgid "Includes variant stock" msgstr "" +#: src/tables/bom/BomTable.tsx:245 +#: src/tables/part/PartTable.tsx:92 +msgid "Building" +msgstr "" + #: src/tables/bom/BomTable.tsx:254 #: src/tables/part/PartTable.tsx:153 -#: src/tables/sales/SalesOrderLineItemTable.tsx:150 -#: src/tables/stock/StockItemTable.tsx:216 +#: src/tables/sales/SalesOrderLineItemTable.tsx:158 +#: src/tables/stock/StockItemTable.tsx:206 msgid "Stock Information" msgstr "" #: src/tables/bom/BomTable.tsx:285 -#: src/tables/build/BuildLineTable.tsx:248 +#: src/tables/build/BuildLineTable.tsx:409 msgid "Consumable item" msgstr "" @@ -5644,7 +6726,7 @@ msgstr "" #~ msgstr "Create BOM Item" #: src/tables/bom/BomTable.tsx:306 -#: src/tables/build/BuildLineTable.tsx:69 +#: src/tables/build/BuildLineTable.tsx:200 msgid "Show testable items" msgstr "" @@ -5657,11 +6739,12 @@ msgid "Show trackable items" msgstr "" #: src/tables/bom/BomTable.tsx:316 -#: src/tables/build/BuildLineTable.tsx:64 +#: src/tables/build/BuildLineTable.tsx:195 msgid "Show assembled items" msgstr "" #: src/tables/bom/BomTable.tsx:321 +#: src/tables/build/BuildLineTable.tsx:180 msgid "Show items with available stock" msgstr "" @@ -5705,7 +6788,7 @@ msgstr "" #: src/tables/bom/BomTable.tsx:345 #: src/tables/bom/UsedInTable.tsx:79 -#: src/tables/build/BuildLineTable.tsx:58 +#: src/tables/build/BuildLineTable.tsx:189 msgid "Optional" msgstr "" @@ -5723,7 +6806,7 @@ msgstr "" #~ msgstr "Bom item deleted" #: src/tables/bom/BomTable.tsx:350 -#: src/tables/build/BuildLineTable.tsx:53 +#: src/tables/build/BuildLineTable.tsx:184 msgid "Consumable" msgstr "" @@ -5749,12 +6832,12 @@ msgid "Show items with pricing" msgstr "" #: src/tables/bom/BomTable.tsx:378 -#: src/tables/bom/BomTable.tsx:511 +#: src/tables/bom/BomTable.tsx:512 msgid "Import BOM Data" msgstr "" #: src/tables/bom/BomTable.tsx:388 -#: src/tables/bom/BomTable.tsx:523 +#: src/tables/bom/BomTable.tsx:526 msgid "Add BOM Item" msgstr "" @@ -5780,7 +6863,7 @@ msgstr "" #: src/tables/bom/BomTable.tsx:423 #: src/tables/bom/BomTable.tsx:426 -#: src/tables/bom/BomTable.tsx:517 +#: src/tables/bom/BomTable.tsx:519 msgid "Validate BOM" msgstr "" @@ -5812,21 +6895,15 @@ msgstr "" msgid "Edit Substitutes" msgstr "" -#: src/tables/bom/BomTable.tsx:539 -#: src/tables/part/PartParameterTable.tsx:193 -#: src/tables/part/PartTestTemplateTable.tsx:252 -msgid "Part is Locked" -msgstr "" - -#: src/tables/bom/BomTable.tsx:544 +#: src/tables/bom/BomTable.tsx:547 msgid "Bill of materials cannot be edited, as the part is locked" msgstr "" #: src/tables/bom/UsedInTable.tsx:33 -#: src/tables/build/BuildLineTable.tsx:63 +#: src/tables/build/BuildLineTable.tsx:194 #: src/tables/part/ParametricPartTable.tsx:233 #: src/tables/part/PartTable.tsx:190 -#: src/tables/stock/StockItemTable.tsx:300 +#: src/tables/stock/StockItemTable.tsx:304 msgid "Assembly" msgstr "" @@ -5844,285 +6921,347 @@ msgstr "" msgid "Show trackable assemblies" msgstr "" -#: src/tables/build/BuildAllocatedStockTable.tsx:54 +#: src/tables/build/BuildAllocatedStockTable.tsx:56 msgid "Allocated to Output" msgstr "" -#: src/tables/build/BuildAllocatedStockTable.tsx:55 +#: src/tables/build/BuildAllocatedStockTable.tsx:57 msgid "Show items allocated to a build output" msgstr "" -#: src/tables/build/BuildAllocatedStockTable.tsx:76 -#: src/tables/part/PartPurchaseOrdersTable.tsx:125 -#: src/tables/sales/SalesOrderAllocationTable.tsx:62 +#: src/tables/build/BuildAllocatedStockTable.tsx:65 +#: src/tables/build/BuildOrderTable.tsx:159 +#: src/tables/part/PartParameterTable.tsx:212 +#: src/tables/part/PartPurchaseOrdersTable.tsx:138 +#: src/tables/sales/ReturnOrderTable.tsx:84 +#: src/tables/sales/SalesOrderAllocationTable.tsx:68 +#: src/tables/sales/SalesOrderTable.tsx:84 +#: src/tables/stock/StockItemTable.tsx:339 +msgid "Include Variants" +msgstr "" + +#: src/tables/build/BuildAllocatedStockTable.tsx:66 +#: src/tables/build/BuildOrderTable.tsx:160 +#: src/tables/part/PartPurchaseOrdersTable.tsx:139 +#: src/tables/sales/ReturnOrderTable.tsx:85 +#: src/tables/sales/SalesOrderAllocationTable.tsx:69 +#: src/tables/sales/SalesOrderTable.tsx:85 +msgid "Include orders for part variants" +msgstr "" + +#: src/tables/build/BuildAllocatedStockTable.tsx:89 +#: src/tables/part/PartPurchaseOrdersTable.tsx:131 +#: src/tables/sales/SalesOrderAllocationTable.tsx:93 msgid "Order Status" msgstr "" -#: src/tables/build/BuildAllocatedStockTable.tsx:96 -#: src/tables/sales/SalesOrderAllocationTable.tsx:75 +#: src/tables/build/BuildAllocatedStockTable.tsx:117 +#: src/tables/sales/SalesOrderAllocationTable.tsx:126 msgid "Allocated Quantity" msgstr "" -#: src/tables/build/BuildAllocatedStockTable.tsx:116 -#: src/tables/sales/SalesOrderAllocationTable.tsx:94 +#: src/tables/build/BuildAllocatedStockTable.tsx:137 +#: src/tables/sales/SalesOrderAllocationTable.tsx:120 msgid "Available Quantity" msgstr "" -#: src/tables/build/BuildAllocatedStockTable.tsx:126 -#: src/tables/build/BuildOrderTestTable.tsx:176 -#: src/tables/build/BuildOrderTestTable.tsx:200 -#: src/tables/build/BuildOutputTable.tsx:312 -msgid "Build Output" +#: src/tables/build/BuildAllocatedStockTable.tsx:164 +#: src/tables/build/BuildLineTable.tsx:513 +msgid "Edit Stock Allocation" msgstr "" -#: src/tables/build/BuildAllocatedStockTable.tsx:143 -msgid "Edit Build Item" -msgstr "" +#: src/tables/build/BuildAllocatedStockTable.tsx:164 +#~ msgid "Edit Build Item" +#~ msgstr "Edit Build Item" -#: src/tables/build/BuildAllocatedStockTable.tsx:153 -msgid "Delete Build Item" -msgstr "" +#: src/tables/build/BuildAllocatedStockTable.tsx:174 +#~ msgid "Delete Build Item" +#~ msgstr "Delete Build Item" -#: src/tables/build/BuildLineTable.tsx:43 -#: src/tables/stock/StockItemTable.tsx:305 -msgid "Allocated" -msgstr "" - -#: src/tables/build/BuildLineTable.tsx:44 -msgid "Show allocated lines" -msgstr "" - -#: src/tables/build/BuildLineTable.tsx:49 -msgid "Show lines with available stock" -msgstr "" - -#: src/tables/build/BuildLineTable.tsx:54 -msgid "Show consumable lines" +#: src/tables/build/BuildAllocatedStockTable.tsx:177 +#: src/tables/build/BuildLineTable.tsx:526 +msgid "Delete Stock Allocation" msgstr "" #: src/tables/build/BuildLineTable.tsx:59 +#~ msgid "Show lines with available stock" +#~ msgstr "Show lines with available stock" + +#: src/tables/build/BuildLineTable.tsx:175 +msgid "Show allocated lines" +msgstr "" + +#: src/tables/build/BuildLineTable.tsx:185 +msgid "Show consumable lines" +msgstr "" + +#: src/tables/build/BuildLineTable.tsx:190 msgid "Show optional lines" msgstr "" -#: src/tables/build/BuildLineTable.tsx:68 +#: src/tables/build/BuildLineTable.tsx:199 #: src/tables/part/PartTable.tsx:208 msgid "Testable" msgstr "" -#: src/tables/build/BuildLineTable.tsx:73 -#: src/tables/stock/StockItemTable.tsx:364 +#: src/tables/build/BuildLineTable.tsx:204 +#: src/tables/stock/StockItemTable.tsx:368 msgid "Tracked" msgstr "" -#: src/tables/build/BuildLineTable.tsx:74 +#: src/tables/build/BuildLineTable.tsx:205 msgid "Show tracked lines" msgstr "" -#: src/tables/build/BuildLineTable.tsx:108 -#: src/tables/sales/SalesOrderLineItemTable.tsx:133 +#: src/tables/build/BuildLineTable.tsx:239 +#: src/tables/sales/SalesOrderLineItemTable.tsx:141 msgid "In production" msgstr "" -#: src/tables/build/BuildLineTable.tsx:136 +#: src/tables/build/BuildLineTable.tsx:267 msgid "Insufficient stock" msgstr "" -#: src/tables/build/BuildLineTable.tsx:152 -#: src/tables/sales/SalesOrderLineItemTable.tsx:121 -#: src/tables/stock/StockItemTable.tsx:186 +#: src/tables/build/BuildLineTable.tsx:283 +#: src/tables/sales/SalesOrderLineItemTable.tsx:129 +#: src/tables/stock/StockItemTable.tsx:175 msgid "No stock available" msgstr "" -#: src/tables/build/BuildLineTable.tsx:201 +#: src/tables/build/BuildLineTable.tsx:355 msgid "Gets Inherited" msgstr "" -#: src/tables/build/BuildLineTable.tsx:210 +#: src/tables/build/BuildLineTable.tsx:366 msgid "Unit Quantity" msgstr "" -#: src/tables/build/BuildLineTable.tsx:267 -#: src/tables/sales/SalesOrderLineItemTable.tsx:230 +#: src/tables/build/BuildLineTable.tsx:381 +msgid "Required Quantity" +msgstr "" + +#: src/tables/build/BuildLineTable.tsx:432 +#: src/tables/sales/SalesOrderLineItemTable.tsx:254 msgid "Create Build Order" msgstr "" -#: src/tables/build/BuildLineTable.tsx:298 -msgid "Allocate Stock" +#: src/tables/build/BuildLineTable.tsx:460 +msgid "Auto allocation in progress" msgstr "" -#: src/tables/build/BuildLineTable.tsx:305 +#: src/tables/build/BuildLineTable.tsx:463 +#: src/tables/build/BuildLineTable.tsx:632 +msgid "Auto Allocate Stock" +msgstr "" + +#: src/tables/build/BuildLineTable.tsx:464 +msgid "Automatically allocate stock to this build according to the selected options" +msgstr "" + +#: src/tables/build/BuildLineTable.tsx:482 +#: src/tables/build/BuildLineTable.tsx:496 +#: src/tables/build/BuildLineTable.tsx:579 +#: src/tables/build/BuildLineTable.tsx:664 +#: src/tables/build/BuildOutputTable.tsx:314 +#: src/tables/build/BuildOutputTable.tsx:319 +msgid "Deallocate Stock" +msgstr "" + +#: src/tables/build/BuildLineTable.tsx:498 +msgid "Deallocate all untracked stock for this build order" +msgstr "" + +#: src/tables/build/BuildLineTable.tsx:500 +msgid "Deallocate stock from the selected line item" +msgstr "" + +#: src/tables/build/BuildLineTable.tsx:504 +msgid "Stock has been deallocated" +msgstr "" + +#: src/tables/build/BuildLineTable.tsx:589 msgid "Order Stock" msgstr "" -#: src/tables/build/BuildLineTable.tsx:312 +#: src/tables/build/BuildLineTable.tsx:596 msgid "Build Stock" msgstr "" -#: src/tables/build/BuildOrderTable.tsx:111 -msgid "Show active orders" +#: src/tables/build/BuildLineTable.tsx:610 +msgid "View Part" msgstr "" #: src/tables/build/BuildOrderTable.tsx:116 -msgid "Cascade" -msgstr "" +#~ msgid "Cascade" +#~ msgstr "Cascade" #: src/tables/build/BuildOrderTable.tsx:117 -msgid "Display recursive child orders" +#~ msgid "Display recursive child orders" +#~ msgstr "Display recursive child orders" + +#: src/tables/build/BuildOrderTable.tsx:121 +msgid "Show outstanding orders" msgstr "" -#: src/tables/build/BuildOrderTable.tsx:123 -#: src/tables/part/PartPurchaseOrdersTable.tsx:126 -#: src/tables/purchasing/PurchaseOrderTable.tsx:56 -#: src/tables/sales/ReturnOrderTable.tsx:47 -#: src/tables/sales/SalesOrderTable.tsx:54 +#: src/tables/build/BuildOrderTable.tsx:121 +#~ msgid "Show active orders" +#~ msgstr "Show active orders" + +#: src/tables/build/BuildOrderTable.tsx:122 +#~ msgid "Show overdue status" +#~ msgstr "Show overdue status" + +#: src/tables/build/BuildOrderTable.tsx:126 +#: src/tables/part/PartPurchaseOrdersTable.tsx:132 +#: src/tables/purchasing/PurchaseOrderTable.tsx:59 +#: src/tables/sales/ReturnOrderTable.tsx:57 +#: src/tables/sales/SalesOrderTable.tsx:57 msgid "Filter by order status" msgstr "" -#: src/tables/build/BuildOrderTable.tsx:130 -msgid "Show overdue status" -msgstr "" - -#: src/tables/build/BuildOrderTable.tsx:141 -#: src/tables/purchasing/PurchaseOrderTable.tsx:65 -#: src/tables/sales/ReturnOrderTable.tsx:56 -#: src/tables/sales/SalesOrderTable.tsx:63 +#: src/tables/build/BuildOrderTable.tsx:136 +#: src/tables/purchasing/PurchaseOrderTable.tsx:70 +#: src/tables/sales/ReturnOrderTable.tsx:68 +#: src/tables/sales/SalesOrderTable.tsx:68 msgid "Filter by project code" msgstr "" -#: src/tables/build/BuildOrderTable.tsx:146 -#: src/tables/purchasing/PurchaseOrderTable.tsx:70 -#: src/tables/sales/ReturnOrderTable.tsx:61 -#: src/tables/sales/SalesOrderTable.tsx:68 -msgid "Has Project Code" -msgstr "" - -#: src/tables/build/BuildOrderTable.tsx:147 +#: src/tables/build/BuildOrderTable.tsx:139 #: src/tables/purchasing/PurchaseOrderTable.tsx:71 #: src/tables/sales/ReturnOrderTable.tsx:62 #: src/tables/sales/SalesOrderTable.tsx:69 -msgid "Filter by whether the purchase order has a project code" -msgstr "" +#~ msgid "Filter by whether the purchase order has a project code" +#~ msgstr "Filter by whether the purchase order has a project code" -#: src/tables/build/BuildOrderTable.tsx:152 +#: src/tables/build/BuildOrderTable.tsx:143 msgid "Filter by user who issued this order" msgstr "" -#: src/tables/build/BuildOrderTable.tsx:158 -#: src/tables/purchasing/PurchaseOrderTable.tsx:76 -#: src/tables/sales/ReturnOrderTable.tsx:67 -#: src/tables/sales/SalesOrderTable.tsx:74 +#: src/tables/build/BuildOrderTable.tsx:149 +#: src/tables/purchasing/PurchaseOrderTable.tsx:77 +#: src/tables/sales/ReturnOrderTable.tsx:75 +#: src/tables/sales/SalesOrderTable.tsx:75 msgid "Filter by responsible owner" msgstr "" -#: src/tables/build/BuildOrderTestTable.tsx:75 -#: src/tables/build/BuildOrderTestTable.tsx:111 -#: src/tables/stock/StockItemTestResultTable.tsx:257 -#: src/tables/stock/StockItemTestResultTable.tsx:329 -#: src/tables/stock/StockItemTestResultTable.tsx:384 +#: src/tables/build/BuildOrderTestTable.tsx:76 +#: src/tables/build/BuildOrderTestTable.tsx:112 +#: src/tables/stock/StockItemTestResultTable.tsx:275 +#: src/tables/stock/StockItemTestResultTable.tsx:347 +#: src/tables/stock/StockItemTestResultTable.tsx:403 msgid "Add Test Result" msgstr "" -#: src/tables/build/BuildOrderTestTable.tsx:82 -#: src/tables/stock/StockItemTestResultTable.tsx:259 +#: src/tables/build/BuildOrderTestTable.tsx:83 +#: src/tables/stock/StockItemTestResultTable.tsx:277 msgid "Test result added" msgstr "" -#: src/tables/build/BuildOrderTestTable.tsx:110 -#: src/tables/stock/StockItemTestResultTable.tsx:174 +#: src/tables/build/BuildOrderTestTable.tsx:111 +#: src/tables/stock/StockItemTestResultTable.tsx:180 msgid "No Result" msgstr "" -#: src/tables/build/BuildOrderTestTable.tsx:220 +#: src/tables/build/BuildOrderTestTable.tsx:221 msgid "Show build outputs currently in production" msgstr "" +#: src/tables/build/BuildOutputTable.tsx:76 +msgid "Build Output Stock Allocation" +msgstr "" + #: src/tables/build/BuildOutputTable.tsx:161 #~ msgid "Delete build output" #~ msgstr "Delete build output" -#: src/tables/build/BuildOutputTable.tsx:173 -#: src/tables/build/BuildOutputTable.tsx:211 +#: src/tables/build/BuildOutputTable.tsx:258 +#: src/tables/build/BuildOutputTable.tsx:374 msgid "Add Build Output" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:216 +#: src/tables/build/BuildOutputTable.tsx:304 +#~ msgid "Edit build output" +#~ msgstr "Edit build output" + +#: src/tables/build/BuildOutputTable.tsx:306 +#: src/tables/build/BuildOutputTable.tsx:417 +msgid "Edit Build Output" +msgstr "" + +#: src/tables/build/BuildOutputTable.tsx:321 +msgid "This action will deallocate all stock from the selected build output" +msgstr "" + +#: src/tables/build/BuildOutputTable.tsx:341 msgid "Complete selected outputs" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:226 +#: src/tables/build/BuildOutputTable.tsx:352 msgid "Scrap selected outputs" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:236 +#: src/tables/build/BuildOutputTable.tsx:363 msgid "Cancel selected outputs" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:252 +#: src/tables/build/BuildOutputTable.tsx:385 msgid "Allocate" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:253 +#: src/tables/build/BuildOutputTable.tsx:386 msgid "Allocate stock to build output" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:259 +#: src/tables/build/BuildOutputTable.tsx:396 msgid "Deallocate" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:260 +#: src/tables/build/BuildOutputTable.tsx:397 msgid "Deallocate stock from build output" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:267 +#: src/tables/build/BuildOutputTable.tsx:408 msgid "Complete build output" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:276 +#: src/tables/build/BuildOutputTable.tsx:424 msgid "Scrap" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:277 +#: src/tables/build/BuildOutputTable.tsx:425 msgid "Scrap build output" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:280 -#~ msgid "Allocated Items" -#~ msgstr "Allocated Items" - -#: src/tables/build/BuildOutputTable.tsx:287 +#: src/tables/build/BuildOutputTable.tsx:435 msgid "Cancel build output" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:325 -msgid "Batch" -msgstr "" - -#: src/tables/build/BuildOutputTable.tsx:340 +#: src/tables/build/BuildOutputTable.tsx:488 msgid "Allocated Lines" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:355 +#: src/tables/build/BuildOutputTable.tsx:503 msgid "Required Tests" msgstr "" -#: src/tables/company/AddressTable.tsx:121 -#: src/tables/company/AddressTable.tsx:185 +#: src/tables/company/AddressTable.tsx:118 +#: src/tables/company/AddressTable.tsx:183 msgid "Add Address" msgstr "" -#: src/tables/company/AddressTable.tsx:126 +#: src/tables/company/AddressTable.tsx:123 msgid "Address created" msgstr "" -#: src/tables/company/AddressTable.tsx:135 +#: src/tables/company/AddressTable.tsx:132 msgid "Edit Address" msgstr "" -#: src/tables/company/AddressTable.tsx:143 +#: src/tables/company/AddressTable.tsx:140 msgid "Delete Address" msgstr "" -#: src/tables/company/AddressTable.tsx:144 +#: src/tables/company/AddressTable.tsx:141 msgid "Are you sure you want to delete this address?" msgstr "" @@ -6130,24 +7269,24 @@ msgstr "" #~ msgid "New Company" #~ msgstr "New Company" -#: src/tables/company/CompanyTable.tsx:74 -#: src/tables/company/CompanyTable.tsx:123 +#: src/tables/company/CompanyTable.tsx:75 +#: src/tables/company/CompanyTable.tsx:125 msgid "Add Company" msgstr "" -#: src/tables/company/CompanyTable.tsx:96 +#: src/tables/company/CompanyTable.tsx:97 msgid "Show active companies" msgstr "" -#: src/tables/company/CompanyTable.tsx:101 +#: src/tables/company/CompanyTable.tsx:102 msgid "Show companies which are suppliers" msgstr "" -#: src/tables/company/CompanyTable.tsx:106 +#: src/tables/company/CompanyTable.tsx:107 msgid "Show companies which are manufacturers" msgstr "" -#: src/tables/company/CompanyTable.tsx:111 +#: src/tables/company/CompanyTable.tsx:112 msgid "Show companies which are customers" msgstr "" @@ -6163,96 +7302,99 @@ msgstr "" msgid "Delete Contact" msgstr "" -#: src/tables/company/ContactTable.tsx:129 +#: src/tables/company/ContactTable.tsx:130 msgid "Add contact" msgstr "" -#: src/tables/general/AttachmentTable.tsx:130 +#: src/tables/general/AttachmentTable.tsx:135 msgid "File uploaded" msgstr "" -#: src/tables/general/AttachmentTable.tsx:131 +#: src/tables/general/AttachmentTable.tsx:136 msgid "File {0} uploaded successfully" msgstr "" -#: src/tables/general/AttachmentTable.tsx:142 +#: src/tables/general/AttachmentTable.tsx:147 msgid "Upload Error" msgstr "" -#: src/tables/general/AttachmentTable.tsx:143 +#: src/tables/general/AttachmentTable.tsx:148 msgid "File could not be uploaded" msgstr "" -#: src/tables/general/AttachmentTable.tsx:191 +#: src/tables/general/AttachmentTable.tsx:196 msgid "Upload Attachment" msgstr "" -#: src/tables/general/AttachmentTable.tsx:201 +#: src/tables/general/AttachmentTable.tsx:206 msgid "Edit Attachment" msgstr "" -#: src/tables/general/AttachmentTable.tsx:215 +#: src/tables/general/AttachmentTable.tsx:220 msgid "Delete Attachment" msgstr "Smazat přílohu" -#: src/tables/general/AttachmentTable.tsx:225 +#: src/tables/general/AttachmentTable.tsx:230 msgid "Is Link" msgstr "" -#: src/tables/general/AttachmentTable.tsx:226 +#: src/tables/general/AttachmentTable.tsx:231 msgid "Show link attachments" msgstr "" -#: src/tables/general/AttachmentTable.tsx:230 +#: src/tables/general/AttachmentTable.tsx:235 msgid "Is File" msgstr "" -#: src/tables/general/AttachmentTable.tsx:231 +#: src/tables/general/AttachmentTable.tsx:236 msgid "Show file attachments" msgstr "" -#: src/tables/general/AttachmentTable.tsx:240 +#: src/tables/general/AttachmentTable.tsx:245 msgid "Add attachment" msgstr "" -#: src/tables/general/AttachmentTable.tsx:251 -msgid "Add external link" -msgstr "" - #: src/tables/general/AttachmentTable.tsx:254 #~ msgid "Upload attachment" #~ msgstr "Upload attachment" -#: src/tables/general/AttachmentTable.tsx:299 +#: src/tables/general/AttachmentTable.tsx:256 +msgid "Add external link" +msgstr "" + +#: src/tables/general/AttachmentTable.tsx:304 msgid "No attachments found" msgstr "" -#: src/tables/general/AttachmentTable.tsx:337 +#: src/tables/general/AttachmentTable.tsx:343 msgid "Drag attachment file here to upload" msgstr "" #: src/tables/general/ExtraLineItemTable.tsx:86 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:251 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:60 -#: src/tables/sales/SalesOrderLineItemTable.tsx:196 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:263 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:362 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:72 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:168 +#: src/tables/sales/SalesOrderLineItemTable.tsx:206 +#: src/tables/sales/SalesOrderLineItemTable.tsx:291 msgid "Add Line Item" msgstr "" #: src/tables/general/ExtraLineItemTable.tsx:98 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:271 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:72 -#: src/tables/sales/SalesOrderLineItemTable.tsx:214 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:283 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:84 +#: src/tables/sales/SalesOrderLineItemTable.tsx:224 msgid "Edit Line Item" msgstr "" #: src/tables/general/ExtraLineItemTable.tsx:106 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:279 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:80 -#: src/tables/sales/SalesOrderLineItemTable.tsx:222 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:291 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:92 +#: src/tables/sales/SalesOrderLineItemTable.tsx:232 msgid "Delete Line Item" msgstr "" -#: src/tables/general/ExtraLineItemTable.tsx:142 +#: src/tables/general/ExtraLineItemTable.tsx:143 msgid "Add Extra Line Item" msgstr "" @@ -6261,12 +7403,12 @@ msgid "Machine restarted" msgstr "" #: src/tables/machine/MachineListTable.tsx:212 -#: src/tables/machine/MachineListTable.tsx:263 +#: src/tables/machine/MachineListTable.tsx:261 msgid "Edit machine" msgstr "" #: src/tables/machine/MachineListTable.tsx:226 -#: src/tables/machine/MachineListTable.tsx:267 +#: src/tables/machine/MachineListTable.tsx:265 msgid "Delete machine" msgstr "" @@ -6278,51 +7420,50 @@ msgstr "" msgid "Are you sure you want to remove the machine \"{0}\"?" msgstr "" -#: src/tables/machine/MachineListTable.tsx:255 -#: src/tables/machine/MachineListTable.tsx:432 +#: src/tables/machine/MachineListTable.tsx:254 +#: src/tables/machine/MachineListTable.tsx:442 msgid "Restart required" msgstr "" -#: src/tables/machine/MachineListTable.tsx:259 +#: src/tables/machine/MachineListTable.tsx:258 msgid "Machine Actions" msgstr "" -#: src/tables/machine/MachineListTable.tsx:272 +#: src/tables/machine/MachineListTable.tsx:270 msgid "Restart" msgstr "" -#: src/tables/machine/MachineListTable.tsx:274 +#: src/tables/machine/MachineListTable.tsx:272 msgid "Restart machine" msgstr "" -#: src/tables/machine/MachineListTable.tsx:276 +#: src/tables/machine/MachineListTable.tsx:274 msgid "manual restart required" msgstr "" +#: src/tables/machine/MachineListTable.tsx:291 +#~ msgid "Machine information" +#~ msgstr "Machine information" + #: src/tables/machine/MachineListTable.tsx:292 -msgid "Machine information" +msgid "Machine Information" msgstr "" -#: src/tables/machine/MachineListTable.tsx:303 -#: src/tables/machine/MachineListTable.tsx:599 +#: src/tables/machine/MachineListTable.tsx:302 +#: src/tables/machine/MachineListTable.tsx:610 msgid "Machine Type" msgstr "" -#: src/tables/machine/MachineListTable.tsx:316 +#: src/tables/machine/MachineListTable.tsx:315 msgid "Machine Driver" msgstr "" -#: src/tables/machine/MachineListTable.tsx:329 +#: src/tables/machine/MachineListTable.tsx:330 msgid "Initialized" msgstr "" -#: src/tables/machine/MachineListTable.tsx:350 -#: src/tables/machine/MachineTypeTable.tsx:261 -msgid "Errors" -msgstr "" - -#: src/tables/machine/MachineListTable.tsx:358 -#: src/tables/machine/MachineTypeTable.tsx:269 +#: src/tables/machine/MachineListTable.tsx:359 +#: src/tables/machine/MachineTypeTable.tsx:290 msgid "No errors reported" msgstr "" @@ -6330,7 +7471,7 @@ msgstr "" msgid "Machine Settings" msgstr "" -#: src/tables/machine/MachineListTable.tsx:389 +#: src/tables/machine/MachineListTable.tsx:394 msgid "Driver Settings" msgstr "" @@ -6338,86 +7479,109 @@ msgstr "" #~ msgid "Create machine" #~ msgstr "Create machine" -#: src/tables/machine/MachineListTable.tsx:506 +#: src/tables/machine/MachineListTable.tsx:516 +#: src/tables/machine/MachineListTable.tsx:558 msgid "Add machine" msgstr "" #: src/tables/machine/MachineListTable.tsx:561 -msgid "Machine detail" +#~ msgid "Machine detail" +#~ msgstr "Machine detail" + +#: src/tables/machine/MachineListTable.tsx:572 +msgid "Machine Detail" msgstr "" -#: src/tables/machine/MachineListTable.tsx:608 +#: src/tables/machine/MachineListTable.tsx:619 msgid "Driver" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:73 +#: src/tables/machine/MachineTypeTable.tsx:78 msgid "Builtin driver" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:89 +#: src/tables/machine/MachineTypeTable.tsx:96 +msgid "Not Found" +msgstr "" + +#: src/tables/machine/MachineTypeTable.tsx:99 msgid "Machine type not found." msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:97 -msgid "Machine type information" +#: src/tables/machine/MachineTypeTable.tsx:99 +#~ msgid "Machine type information" +#~ msgstr "Machine type information" + +#: src/tables/machine/MachineTypeTable.tsx:109 +msgid "Machine Type Information" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:110 -#: src/tables/machine/MachineTypeTable.tsx:217 +#: src/tables/machine/MachineTypeTable.tsx:124 +#: src/tables/machine/MachineTypeTable.tsx:238 msgid "Slug" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:118 -#: src/tables/machine/MachineTypeTable.tsx:238 +#: src/tables/machine/MachineTypeTable.tsx:135 +#: src/tables/machine/MachineTypeTable.tsx:259 msgid "Provider plugin" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:130 -#: src/tables/machine/MachineTypeTable.tsx:250 +#: src/tables/machine/MachineTypeTable.tsx:147 +#: src/tables/machine/MachineTypeTable.tsx:271 msgid "Provider file" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:135 -#: src/tables/machine/MachineTypeTable.tsx:255 -#: src/tables/plugin/PluginListTable.tsx:180 -#: src/tables/plugin/PluginListTable.tsx:568 -msgid "Builtin" +#: src/tables/machine/MachineTypeTable.tsx:148 +#~ msgid "Available drivers" +#~ msgstr "Available drivers" + +#: src/tables/machine/MachineTypeTable.tsx:162 +msgid "Available Drivers" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:146 -msgid "Available drivers" -msgstr "" - -#: src/tables/machine/MachineTypeTable.tsx:196 +#: src/tables/machine/MachineTypeTable.tsx:217 msgid "Machine driver not found." msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:204 +#: src/tables/machine/MachineTypeTable.tsx:225 msgid "Machine driver information" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:224 +#: src/tables/machine/MachineTypeTable.tsx:245 msgid "Machine type" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:327 +#: src/tables/machine/MachineTypeTable.tsx:338 +#~ msgid "Machine type detail" +#~ msgstr "Machine type detail" + +#: src/tables/machine/MachineTypeTable.tsx:348 msgid "Builtin type" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:336 -msgid "Machine type detail" +#: src/tables/machine/MachineTypeTable.tsx:348 +#~ msgid "Machine driver detail" +#~ msgstr "Machine driver detail" + +#: src/tables/machine/MachineTypeTable.tsx:357 +msgid "Machine Type Detail" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:346 -msgid "Machine driver detail" +#: src/tables/machine/MachineTypeTable.tsx:367 +msgid "Machine Driver Detail" msgstr "" #: src/tables/notifications/NotificationsTable.tsx:26 msgid "Age" msgstr "" +#: src/tables/notifications/NotificationsTable.tsx:36 +msgid "Notification" +msgstr "Notifikace" + #: src/tables/notifications/NotificationsTable.tsx:40 #: src/tables/plugin/PluginErrorTable.tsx:37 +#: src/tables/settings/ErrorTable.tsx:50 msgid "Message" msgstr "" @@ -6451,33 +7615,32 @@ msgstr "" msgid "Show assembly parts" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:68 +#: src/tables/part/PartCategoryTable.tsx:48 +msgid "You are subscribed to notifications for this category" +msgstr "" + +#: src/tables/part/PartCategoryTable.tsx:80 #: src/tables/part/PartTable.tsx:196 msgid "Include Subcategories" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:69 +#: src/tables/part/PartCategoryTable.tsx:81 msgid "Include subcategories in results" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:74 +#: src/tables/part/PartCategoryTable.tsx:86 msgid "Show structural categories" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:78 -#: src/tables/part/PartTable.tsx:294 -msgid "Subscribed" -msgstr "" - -#: src/tables/part/PartCategoryTable.tsx:79 +#: src/tables/part/PartCategoryTable.tsx:91 msgid "Show categories to which the user is subscribed" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:86 +#: src/tables/part/PartCategoryTable.tsx:100 msgid "New Part Category" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:112 +#: src/tables/part/PartCategoryTable.tsx:129 msgid "Add Part Category" msgstr "" @@ -6523,11 +7686,6 @@ msgstr "" msgid "Part parameters cannot be edited, as the part is locked" msgstr "" -#: src/tables/part/PartParameterTable.tsx:212 -#: src/tables/stock/StockItemTable.tsx:335 -msgid "Include Variants" -msgstr "" - #: src/tables/part/PartParameterTemplateTable.tsx:31 msgid "Checkbox" msgstr "" @@ -6554,6 +7712,7 @@ msgid "Show templates with units" msgstr "" #: src/tables/part/PartParameterTemplateTable.tsx:85 +#: src/tables/part/PartParameterTemplateTable.tsx:141 msgid "Add Parameter Template" msgstr "" @@ -6566,23 +7725,19 @@ msgid "Delete Parameter Template" msgstr "" #: src/tables/part/PartParameterTemplateTable.tsx:141 -msgid "Add parameter template" -msgstr "" +#~ msgid "Add parameter template" +#~ msgstr "Add parameter template" -#: src/tables/part/PartPurchaseOrdersTable.tsx:77 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:162 +#: src/tables/part/PartPurchaseOrdersTable.tsx:78 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:168 msgid "Total Quantity" msgstr "" -#: src/tables/part/PartPurchaseOrdersTable.tsx:115 -msgid "Pending" -msgstr "" - -#: src/tables/part/PartPurchaseOrdersTable.tsx:116 +#: src/tables/part/PartPurchaseOrdersTable.tsx:122 msgid "Show pending orders" msgstr "" -#: src/tables/part/PartPurchaseOrdersTable.tsx:121 +#: src/tables/part/PartPurchaseOrdersTable.tsx:127 msgid "Show received items" msgstr "" @@ -6728,22 +7883,13 @@ msgstr "" msgid "Results" msgstr "" -#: src/tables/part/PartTestTemplateTable.tsx:76 -msgid "No Results" -msgstr "" - -#: src/tables/part/PartTestTemplateTable.tsx:106 -#: src/tables/stock/StockItemTestResultTable.tsx:365 -msgid "Required" -msgstr "" - #: src/tables/part/PartTestTemplateTable.tsx:107 msgid "Show required tests" msgstr "" #: src/tables/part/PartTestTemplateTable.tsx:111 -#: src/tables/settings/TemplateTable.tsx:167 -#: src/tables/settings/TemplateTable.tsx:283 +#: src/tables/settings/TemplateTable.tsx:247 +#: src/tables/settings/TemplateTable.tsx:363 msgid "Enabled" msgstr "" @@ -6784,7 +7930,7 @@ msgid "Show tests which have recorded results" msgstr "" #: src/tables/part/PartTestTemplateTable.tsx:154 -#: src/tables/part/PartTestTemplateTable.tsx:237 +#: src/tables/part/PartTestTemplateTable.tsx:238 msgid "Add Test Template" msgstr "" @@ -6808,7 +7954,7 @@ msgstr "" msgid "View Parent Part" msgstr "" -#: src/tables/part/PartTestTemplateTable.tsx:257 +#: src/tables/part/PartTestTemplateTable.tsx:258 msgid "Part templates cannot be edited, as the part is locked" msgstr "" @@ -6836,28 +7982,49 @@ msgstr "" msgid "Show trackable variants" msgstr "" -#: src/tables/part/RelatedPartTable.tsx:84 +#: src/tables/part/RelatedPartTable.tsx:86 +#: src/tables/part/RelatedPartTable.tsx:109 msgid "Add Related Part" msgstr "" -#: src/tables/part/RelatedPartTable.tsx:99 +#: src/tables/part/RelatedPartTable.tsx:101 msgid "Delete Related Part" msgstr "" -#: src/tables/part/RelatedPartTable.tsx:106 -msgid "Add related part" -msgstr "" +#: src/tables/part/RelatedPartTable.tsx:109 +#~ msgid "Add related part" +#~ msgstr "Add related part" #: src/tables/plugin/PluginErrorTable.tsx:29 msgid "Stage" msgstr "" -#: src/tables/plugin/PluginListTable.tsx:95 -msgid "Plugin with key {pluginKey} not found" +#: src/tables/plugin/PluginListTable.tsx:42 +msgid "Plugin is active" msgstr "" +#: src/tables/plugin/PluginListTable.tsx:48 +msgid "Plugin is inactive" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:55 +msgid "Plugin is not installed" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:76 +msgid "Plugin" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:95 +#~ msgid "Plugin with key {pluginKey} not found" +#~ msgstr "Plugin with key {pluginKey} not found" + #: src/tables/plugin/PluginListTable.tsx:97 -msgid "An error occurred while fetching plugin details" +#~ msgid "An error occurred while fetching plugin details" +#~ msgstr "An error occurred while fetching plugin details" + +#: src/tables/plugin/PluginListTable.tsx:109 +msgid "Description not available" msgstr "" #: src/tables/plugin/PluginListTable.tsx:113 @@ -6865,12 +8032,8 @@ msgstr "" #~ msgstr "Plugin with id {id} not found" #: src/tables/plugin/PluginListTable.tsx:122 -msgid "Plugin information" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:134 -msgid "Author" -msgstr "" +#~ msgid "Plugin information" +#~ msgstr "Plugin information" #: src/tables/plugin/PluginListTable.tsx:134 #~ msgid "Plugin Actions" @@ -6881,79 +8044,124 @@ msgstr "" #~ msgid "Edit plugin" #~ msgstr "Edit plugin" +#: src/tables/plugin/PluginListTable.tsx:144 +msgid "Confirm plugin activation" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:145 +msgid "Confirm plugin deactivation" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:150 +msgid "The selected plugin will be activated" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:151 +msgid "The selected plugin will be deactivated" +msgstr "" + #: src/tables/plugin/PluginListTable.tsx:152 #: src/tables/plugin/PluginListTable.tsx:153 #~ msgid "Reload" #~ msgstr "Reload" -#: src/tables/plugin/PluginListTable.tsx:154 -msgid "Plugin is not active" -msgstr "" - #: src/tables/plugin/PluginListTable.tsx:163 -msgid "Package information" -msgstr "" +#~ msgid "Package information" +#~ msgstr "Package information" #: src/tables/plugin/PluginListTable.tsx:169 -msgid "Package Name" +msgid "Deactivate" msgstr "" -#: src/tables/plugin/PluginListTable.tsx:175 -msgid "Installation Path" +#: src/tables/plugin/PluginListTable.tsx:183 +msgid "Activate" msgstr "" -#: src/tables/plugin/PluginListTable.tsx:185 -msgid "Package" +#: src/tables/plugin/PluginListTable.tsx:184 +msgid "Activate selected plugin" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:196 +msgid "Update selected plugin" msgstr "" #: src/tables/plugin/PluginListTable.tsx:197 -msgid "Plugin settings" -msgstr "" +#~ msgid "Plugin settings" +#~ msgstr "Plugin settings" #: src/tables/plugin/PluginListTable.tsx:214 -msgid "Plugin is active" +#: src/tables/stock/InstalledItemsTable.tsx:107 +msgid "Uninstall" msgstr "" -#: src/tables/plugin/PluginListTable.tsx:220 -msgid "Plugin is inactive" +#: src/tables/plugin/PluginListTable.tsx:215 +msgid "Uninstall selected plugin" msgstr "" -#: src/tables/plugin/PluginListTable.tsx:227 -msgid "Plugin is not installed" +#: src/tables/plugin/PluginListTable.tsx:233 +msgid "Delete selected plugin configuration" msgstr "" -#: src/tables/plugin/PluginListTable.tsx:253 -msgid "Plugin" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:287 -msgid "Description not available" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:319 -msgid "Confirm plugin activation" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:320 -msgid "Confirm plugin deactivation" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:325 -msgid "The selected plugin will be activated" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:326 -msgid "The selected plugin will be deactivated" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:334 +#: src/tables/plugin/PluginListTable.tsx:249 msgid "Activate Plugin" msgstr "" +#: src/tables/plugin/PluginListTable.tsx:270 +msgid "Install plugin" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:283 +msgid "Install" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:284 +msgid "Plugin installed successfully" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:289 +msgid "Uninstall Plugin" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:301 +msgid "Confirm plugin uninstall" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:304 +msgid "The selected plugin will be uninstalled." +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:308 +#~ msgid "This action cannot be undone." +#~ msgstr "This action cannot be undone." + +#: src/tables/plugin/PluginListTable.tsx:309 +msgid "Plugin uninstalled successfully" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:317 +msgid "Delete Plugin" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:318 +msgid "Deleting this plugin configuration will remove all associated settings and data. Are you sure you want to delete this plugin?" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:331 +msgid "Plugins reloaded" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:332 +msgid "Plugins were reloaded successfully" +msgstr "" + #: src/tables/plugin/PluginListTable.tsx:338 #~ msgid "Deactivate Plugin" #~ msgstr "Deactivate Plugin" +#: src/tables/plugin/PluginListTable.tsx:350 +msgid "Reload Plugins" +msgstr "" + #: src/tables/plugin/PluginListTable.tsx:354 #~ msgid "The following plugin will be activated" #~ msgstr "The following plugin will be activated" @@ -6962,16 +8170,16 @@ msgstr "" #~ msgid "The following plugin will be deactivated" #~ msgstr "The following plugin will be deactivated" -#: src/tables/plugin/PluginListTable.tsx:362 -msgid "Deactivate" +#: src/tables/plugin/PluginListTable.tsx:357 +msgid "Install Plugin" msgstr "" #: src/tables/plugin/PluginListTable.tsx:366 #~ msgid "Confirm" #~ msgstr "Confirm" -#: src/tables/plugin/PluginListTable.tsx:373 -msgid "Activate" +#: src/tables/plugin/PluginListTable.tsx:374 +msgid "Plugin Detail" msgstr "" #: src/tables/plugin/PluginListTable.tsx:376 @@ -6998,76 +8206,12 @@ msgstr "" #~ msgid "Error updating plugin" #~ msgstr "Error updating plugin" -#: src/tables/plugin/PluginListTable.tsx:406 -msgid "Uninstall" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:438 -msgid "Install plugin" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:451 -msgid "Install" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:452 -msgid "Plugin installed successfully" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:457 -msgid "Uninstall Plugin" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:469 -msgid "Confirm plugin uninstall" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:472 -msgid "The selected plugin will be uninstalled." -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:473 -msgid "This action cannot be undone." -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:477 -msgid "Plugin uninstalled successfully" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:484 -msgid "Delete Plugin" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:485 -msgid "Deleting this plugin configuration will remove all associated settings and data. Are you sure you want to delete this plugin?" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:498 -msgid "Plugins reloaded" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:499 -msgid "Plugins were reloaded successfully" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:515 -msgid "Reload Plugins" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:524 -msgid "Install Plugin" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:544 -msgid "Plugin Detail" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:573 +#: src/tables/plugin/PluginListTable.tsx:411 msgid "Sample" msgstr "" -#: src/tables/plugin/PluginListTable.tsx:578 -#: src/tables/stock/StockItemTable.tsx:340 +#: src/tables/plugin/PluginListTable.tsx:416 +#: src/tables/stock/StockItemTable.tsx:344 msgid "Installed" msgstr "" @@ -7116,82 +8260,78 @@ msgstr "" #~ msgid "Are you sure you want to remove this manufacturer part?" #~ msgstr "Are you sure you want to remove this manufacturer part?" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:102 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:339 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:103 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:356 msgid "Import Line Items" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:135 -msgid "Part Description" -msgstr "" - -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:201 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:207 msgid "Supplier Code" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:208 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:214 msgid "Supplier Link" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:215 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:220 msgid "Manufacturer Code" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:229 -msgid "Destination" +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:248 +msgid "Show line items which have been received" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:300 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:316 msgid "Receive line item" msgstr "" #: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:344 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:142 -#: src/tables/sales/SalesOrderLineItemTable.tsx:240 -msgid "Add line item" -msgstr "" +#: src/tables/sales/ReturnOrderLineItemTable.tsx:160 +#: src/tables/sales/SalesOrderLineItemTable.tsx:258 +#~ msgid "Add line item" +#~ msgstr "Add line item" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:354 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:373 msgid "Receive items" msgstr "" -#: src/tables/purchasing/SupplierPartTable.tsx:93 +#: src/tables/purchasing/SupplierPartTable.tsx:95 msgid "MPN" msgstr "" -#: src/tables/purchasing/SupplierPartTable.tsx:122 +#: src/tables/purchasing/SupplierPartTable.tsx:124 msgid "Base units" msgstr "" -#: src/tables/purchasing/SupplierPartTable.tsx:170 +#: src/tables/purchasing/SupplierPartTable.tsx:172 msgid "Supplier part created" msgstr "" -#: src/tables/purchasing/SupplierPartTable.tsx:176 +#: src/tables/purchasing/SupplierPartTable.tsx:179 msgid "Add supplier part" msgstr "" -#: src/tables/purchasing/SupplierPartTable.tsx:188 +#: src/tables/purchasing/SupplierPartTable.tsx:191 msgid "Show active supplier parts" msgstr "" -#: src/tables/purchasing/SupplierPartTable.tsx:192 -msgid "Active Part" -msgstr "" - -#: src/tables/purchasing/SupplierPartTable.tsx:193 -msgid "Show active internal parts" -msgstr "" - #: src/tables/purchasing/SupplierPartTable.tsx:193 #~ msgid "Supplier part updated" #~ msgstr "Supplier part updated" -#: src/tables/purchasing/SupplierPartTable.tsx:197 +#: src/tables/purchasing/SupplierPartTable.tsx:195 +msgid "Active Part" +msgstr "" + +#: src/tables/purchasing/SupplierPartTable.tsx:196 +msgid "Show active internal parts" +msgstr "" + +#: src/tables/purchasing/SupplierPartTable.tsx:200 msgid "Active Supplier" msgstr "" -#: src/tables/purchasing/SupplierPartTable.tsx:198 +#: src/tables/purchasing/SupplierPartTable.tsx:201 msgid "Show active suppliers" msgstr "" @@ -7203,99 +8343,187 @@ msgstr "" #~ msgid "Are you sure you want to remove this supplier part?" #~ msgstr "Are you sure you want to remove this supplier part?" -#: src/tables/sales/ReturnOrderLineItemTable.tsx:114 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:139 msgid "Received Date" msgstr "" -#: src/tables/sales/ReturnOrderLineItemTable.tsx:128 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:153 msgid "Show items which have been received" msgstr "" -#: src/tables/sales/ReturnOrderLineItemTable.tsx:133 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:158 msgid "Filter by line item status" msgstr "" -#: src/tables/sales/ReturnOrderLineItemTable.tsx:158 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:176 +msgid "Receive selected items" +msgstr "" + +#: src/tables/sales/ReturnOrderLineItemTable.tsx:205 msgid "Receive Item" msgstr "" -#: src/tables/sales/SalesOrderLineItemTable.tsx:262 -msgid "Allocate stock" +#: src/tables/sales/SalesOrderAllocationTable.tsx:60 +msgid "Show outstanding allocations" msgstr "" -#: src/tables/sales/SalesOrderLineItemTable.tsx:272 +#: src/tables/sales/SalesOrderAllocationTable.tsx:168 +#: src/tables/sales/SalesOrderAllocationTable.tsx:190 +msgid "Edit Allocation" +msgstr "" + +#: src/tables/sales/SalesOrderAllocationTable.tsx:175 +#: src/tables/sales/SalesOrderAllocationTable.tsx:197 +msgid "Delete Allocation" +msgstr "" + +#: src/tables/sales/SalesOrderLineItemTable.tsx:244 +msgid "Allocate Serial Numbers" +msgstr "" + +#: src/tables/sales/SalesOrderLineItemTable.tsx:277 +msgid "Show lines which are fully allocated" +msgstr "" + +#: src/tables/sales/SalesOrderLineItemTable.tsx:280 +#~ msgid "Allocate stock" +#~ msgstr "Allocate stock" + +#: src/tables/sales/SalesOrderLineItemTable.tsx:282 +msgid "Show lines which are completed" +msgstr "" + +#: src/tables/sales/SalesOrderLineItemTable.tsx:291 +#~ msgid "Allocate Serials" +#~ msgstr "Allocate Serials" + +#: src/tables/sales/SalesOrderLineItemTable.tsx:340 +msgid "Allocate serials" +msgstr "" + +#: src/tables/sales/SalesOrderLineItemTable.tsx:356 msgid "Build stock" msgstr "" -#: src/tables/sales/SalesOrderLineItemTable.tsx:289 -#: src/tables/stock/StockItemTable.tsx:507 +#: src/tables/sales/SalesOrderLineItemTable.tsx:373 +#: src/tables/stock/StockItemTable.tsx:512 msgid "Order stock" msgstr "" -#: src/tables/sales/SalesOrderShipmentTable.tsx:40 +#: src/tables/sales/SalesOrderShipmentTable.tsx:51 +#~ msgid "Delete Shipment" +#~ msgstr "Delete Shipment" + +#: src/tables/sales/SalesOrderShipmentTable.tsx:57 msgid "Create Shipment" msgstr "" -#: src/tables/sales/SalesOrderShipmentTable.tsx:50 -msgid "Delete Shipment" -msgstr "" - -#: src/tables/sales/SalesOrderShipmentTable.tsx:58 -msgid "Edit Shipment" -msgstr "" - -#: src/tables/sales/SalesOrderShipmentTable.tsx:66 -msgid "Shipment Reference" -msgstr "" - -#: src/tables/sales/SalesOrderShipmentTable.tsx:71 +#: src/tables/sales/SalesOrderShipmentTable.tsx:104 msgid "Items" msgstr "" -#: src/tables/sales/SalesOrderShipmentTable.tsx:83 -msgid "Delivery Date" +#: src/tables/sales/SalesOrderShipmentTable.tsx:139 +msgid "View Shipment" msgstr "" -#: src/tables/sales/SalesOrderShipmentTable.tsx:107 -msgid "Complete Shipment" +#: src/tables/sales/SalesOrderShipmentTable.tsx:161 +msgid "Edit shipment" msgstr "" -#: src/tables/sales/SalesOrderShipmentTable.tsx:133 +#: src/tables/sales/SalesOrderShipmentTable.tsx:169 +msgid "Cancel shipment" +msgstr "" + +#: src/tables/sales/SalesOrderShipmentTable.tsx:184 msgid "Add shipment" msgstr "" -#: src/tables/sales/SalesOrderShipmentTable.tsx:146 -msgid "Shipped" -msgstr "" - -#: src/tables/sales/SalesOrderShipmentTable.tsx:147 +#: src/tables/sales/SalesOrderShipmentTable.tsx:198 msgid "Show shipments which have been shipped" msgstr "" -#: src/tables/sales/SalesOrderShipmentTable.tsx:151 -msgid "Delivered" -msgstr "" - -#: src/tables/sales/SalesOrderShipmentTable.tsx:152 +#: src/tables/sales/SalesOrderShipmentTable.tsx:203 msgid "Show shipments which have been delivered" msgstr "" -#: src/tables/settings/CurrencyTable.tsx:28 -msgid "Rate" +#: src/tables/settings/BarcodeScanHistoryTable.tsx:61 +msgid "Barcode Information" msgstr "" -#: src/tables/settings/CurrencyTable.tsx:40 -msgid "Exchange rates updated" +#: src/tables/settings/BarcodeScanHistoryTable.tsx:76 +#: src/tables/settings/ErrorTable.tsx:59 +msgid "Timestamp" msgstr "" -#: src/tables/settings/CurrencyTable.tsx:46 -msgid "Exchange rate update error" +#: src/tables/settings/BarcodeScanHistoryTable.tsx:86 +msgid "Endpoint" msgstr "" -#: src/tables/settings/CurrencyTable.tsx:57 -msgid "Refresh currency exchange rates" +#: src/tables/settings/BarcodeScanHistoryTable.tsx:90 +#: src/tables/settings/BarcodeScanHistoryTable.tsx:217 +#: src/tables/stock/StockItemTestResultTable.tsx:174 +msgid "Result" msgstr "" +#: src/tables/settings/BarcodeScanHistoryTable.tsx:98 +msgid "Context" +msgstr "" + +#: src/tables/settings/BarcodeScanHistoryTable.tsx:119 +msgid "Response" +msgstr "" + +#: src/tables/settings/BarcodeScanHistoryTable.tsx:213 +#: src/tables/settings/ImportSessionTable.tsx:121 +#: src/tables/stock/StockTrackingTable.tsx:183 +msgid "Filter by user" +msgstr "" + +#: src/tables/settings/BarcodeScanHistoryTable.tsx:218 +msgid "Filter by result" +msgstr "" + +#: src/tables/settings/BarcodeScanHistoryTable.tsx:232 +msgid "Delete Barcode Scan Record" +msgstr "" + +#: src/tables/settings/BarcodeScanHistoryTable.tsx:258 +msgid "Barcode Scan Details" +msgstr "" + +#: src/tables/settings/BarcodeScanHistoryTable.tsx:268 +msgid "Logging Disabled" +msgstr "" + +#: src/tables/settings/BarcodeScanHistoryTable.tsx:270 +msgid "Barcode logging is not enabled" +msgstr "" + +#: src/tables/settings/CustomStateTable.tsx:36 +msgid "Display Name" +msgstr "" + +#: src/tables/settings/CustomStateTable.tsx:52 +msgid "Model" +msgstr "" + +#: src/tables/settings/CustomStateTable.tsx:65 +#: src/tables/settings/CustomStateTable.tsx:115 +msgid "Add State" +msgstr "" + +#: src/tables/settings/CustomStateTable.tsx:77 +msgid "Edit State" +msgstr "" + +#: src/tables/settings/CustomStateTable.tsx:85 +msgid "Delete State" +msgstr "" + +#: src/tables/settings/CustomStateTable.tsx:115 +#~ msgid "Add state" +#~ msgstr "Add state" + #: src/tables/settings/CustomUnitsTable.tsx:50 msgid "Add Custom Unit" msgstr "" @@ -7312,59 +8540,71 @@ msgstr "" msgid "Add custom unit" msgstr "" -#: src/tables/settings/ErrorTable.tsx:31 -msgid "When" -msgstr "" - -#: src/tables/settings/ErrorTable.tsx:41 -msgid "Error Information" -msgstr "" - #: src/tables/settings/ErrorTable.tsx:51 #~ msgid "Delete error report" #~ msgstr "Delete error report" -#: src/tables/settings/ErrorTable.tsx:53 +#: src/tables/settings/ErrorTable.tsx:67 +msgid "Traceback" +msgstr "" + +#: src/tables/settings/ErrorTable.tsx:103 +msgid "When" +msgstr "" + +#: src/tables/settings/ErrorTable.tsx:113 +msgid "Error Information" +msgstr "" + +#: src/tables/settings/ErrorTable.tsx:123 msgid "Delete Error Report" msgstr "" -#: src/tables/settings/ErrorTable.tsx:55 +#: src/tables/settings/ErrorTable.tsx:125 msgid "Are you sure you want to delete this error report?" msgstr "" -#: src/tables/settings/ErrorTable.tsx:57 +#: src/tables/settings/ErrorTable.tsx:127 msgid "Error report deleted" msgstr "" -#: src/tables/settings/ErrorTable.tsx:79 -#: src/tables/settings/FailedTasksTable.tsx:59 +#: src/tables/settings/ErrorTable.tsx:146 +#: src/tables/settings/FailedTasksTable.tsx:65 msgid "Error Details" msgstr "" -#: src/tables/settings/FailedTasksTable.tsx:26 -#: src/tables/settings/PendingTasksTable.tsx:19 +#: src/tables/settings/FailedTasksTable.tsx:32 +#: src/tables/settings/PendingTasksTable.tsx:23 #: src/tables/settings/ScheduledTasksTable.tsx:19 msgid "Task" msgstr "" -#: src/tables/settings/FailedTasksTable.tsx:32 -#: src/tables/settings/PendingTasksTable.tsx:24 +#: src/tables/settings/FailedTasksTable.tsx:38 +#: src/tables/settings/PendingTasksTable.tsx:28 msgid "Task ID" msgstr "" -#: src/tables/settings/FailedTasksTable.tsx:36 -#: src/tables/stock/StockItemTestResultTable.tsx:211 +#: src/tables/settings/FailedTasksTable.tsx:42 +#: src/tables/stock/StockItemTestResultTable.tsx:218 msgid "Started" msgstr "" -#: src/tables/settings/FailedTasksTable.tsx:42 +#: src/tables/settings/FailedTasksTable.tsx:48 msgid "Stopped" msgstr "" -#: src/tables/settings/FailedTasksTable.tsx:48 +#: src/tables/settings/FailedTasksTable.tsx:54 msgid "Attempts" msgstr "" +#: src/tables/settings/FailedTasksTable.tsx:92 +msgid "No Information" +msgstr "" + +#: src/tables/settings/FailedTasksTable.tsx:93 +msgid "No error details are available for this task" +msgstr "" + #: src/tables/settings/GroupTable.tsx:90 msgid "Group with id {id} not found" msgstr "" @@ -7398,42 +8638,34 @@ msgstr "" msgid "Edit group" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:38 +#: src/tables/settings/ImportSessionTable.tsx:37 msgid "Delete Import Session" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:44 +#: src/tables/settings/ImportSessionTable.tsx:43 #: src/tables/settings/ImportSessionTable.tsx:131 msgid "Create Import Session" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:69 +#: src/tables/settings/ImportSessionTable.tsx:68 msgid "Uploaded" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:79 -msgid "Imported Rows" -msgstr "" - -#: src/tables/settings/ImportSessionTable.tsx:109 -#: src/tables/settings/TemplateTable.tsx:289 +#: src/tables/settings/ImportSessionTable.tsx:108 +#: src/tables/settings/TemplateTable.tsx:369 msgid "Model Type" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:110 -#: src/tables/settings/TemplateTable.tsx:290 +#: src/tables/settings/ImportSessionTable.tsx:109 +#: src/tables/settings/TemplateTable.tsx:370 msgid "Filter by target model type" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:116 +#: src/tables/settings/ImportSessionTable.tsx:115 msgid "Filter by import session status" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:122 -msgid "Filter by user" -msgstr "" - -#: src/tables/settings/PendingTasksTable.tsx:38 +#: src/tables/settings/PendingTasksTable.tsx:42 msgid "Arguments" msgstr "" @@ -7461,12 +8693,16 @@ msgstr "" msgid "Next Run" msgstr "" -#: src/tables/settings/TemplateTable.tsx:85 -msgid "Template not found" +#: src/tables/settings/StocktakeReportTable.tsx:28 +msgid "Report" msgstr "" -#: src/tables/settings/TemplateTable.tsx:87 -msgid "An error occurred while fetching template details" +#: src/tables/settings/StocktakeReportTable.tsx:35 +msgid "Part Count" +msgstr "" + +#: src/tables/settings/StocktakeReportTable.tsx:58 +msgid "Delete Report" msgstr "" #: src/tables/settings/TemplateTable.tsx:120 @@ -7481,21 +8717,12 @@ msgstr "" #~ msgid "actions" #~ msgstr "actions" -#: src/tables/settings/TemplateTable.tsx:177 -msgid "Modify" +#: src/tables/settings/TemplateTable.tsx:162 +msgid "Template not found" msgstr "" -#: src/tables/settings/TemplateTable.tsx:178 -msgid "Modify template file" -msgstr "" - -#: src/tables/settings/TemplateTable.tsx:234 -#: src/tables/settings/TemplateTable.tsx:302 -msgid "Edit Template" -msgstr "" - -#: src/tables/settings/TemplateTable.tsx:242 -msgid "Delete template" +#: src/tables/settings/TemplateTable.tsx:164 +msgid "An error occurred while fetching template details" msgstr "" #: src/tables/settings/TemplateTable.tsx:243 @@ -7506,103 +8733,137 @@ msgstr "" #~ msgid "Create new" #~ msgstr "Create new" -#: src/tables/settings/TemplateTable.tsx:248 +#: src/tables/settings/TemplateTable.tsx:257 +msgid "Modify" +msgstr "" + +#: src/tables/settings/TemplateTable.tsx:258 +msgid "Modify template file" +msgstr "" + +#: src/tables/settings/TemplateTable.tsx:314 +#: src/tables/settings/TemplateTable.tsx:382 +msgid "Edit Template" +msgstr "" + +#: src/tables/settings/TemplateTable.tsx:322 +msgid "Delete template" +msgstr "" + +#: src/tables/settings/TemplateTable.tsx:328 msgid "Add Template" msgstr "" -#: src/tables/settings/TemplateTable.tsx:261 +#: src/tables/settings/TemplateTable.tsx:341 msgid "Add template" msgstr "" -#: src/tables/settings/TemplateTable.tsx:284 +#: src/tables/settings/TemplateTable.tsx:364 msgid "Filter by enabled status" msgstr "" -#: src/tables/settings/UserTable.tsx:82 +#: src/tables/settings/UserTable.tsx:81 msgid "User with id {id} not found" msgstr "" -#: src/tables/settings/UserTable.tsx:84 +#: src/tables/settings/UserTable.tsx:83 msgid "An error occurred while fetching user details" msgstr "" -#: src/tables/settings/UserTable.tsx:102 +#: src/tables/settings/UserTable.tsx:101 msgid "Is Active" msgstr "" -#: src/tables/settings/UserTable.tsx:103 +#: src/tables/settings/UserTable.tsx:102 msgid "Designates whether this user should be treated as active. Unselect this instead of deleting accounts." msgstr "" -#: src/tables/settings/UserTable.tsx:107 +#: src/tables/settings/UserTable.tsx:106 msgid "Is Staff" msgstr "" -#: src/tables/settings/UserTable.tsx:108 +#: src/tables/settings/UserTable.tsx:107 msgid "Designates whether the user can log into the django admin site." msgstr "" -#: src/tables/settings/UserTable.tsx:112 +#: src/tables/settings/UserTable.tsx:111 msgid "Is Superuser" msgstr "" -#: src/tables/settings/UserTable.tsx:113 +#: src/tables/settings/UserTable.tsx:112 msgid "Designates that this user has all permissions without explicitly assigning them." msgstr "" -#: src/tables/settings/UserTable.tsx:123 +#: src/tables/settings/UserTable.tsx:122 msgid "You cannot edit the rights for the currently logged-in user." msgstr "" -#: src/tables/settings/UserTable.tsx:154 +#: src/tables/settings/UserTable.tsx:153 msgid "No groups" msgstr "" -#: src/tables/settings/UserTable.tsx:245 +#: src/tables/settings/UserTable.tsx:244 msgid "Delete user" msgstr "" -#: src/tables/settings/UserTable.tsx:246 +#: src/tables/settings/UserTable.tsx:245 msgid "User deleted" msgstr "" -#: src/tables/settings/UserTable.tsx:248 +#: src/tables/settings/UserTable.tsx:247 msgid "Are you sure you want to delete this user?" msgstr "" -#: src/tables/settings/UserTable.tsx:254 -#: src/tables/settings/UserTable.tsx:272 +#: src/tables/settings/UserTable.tsx:253 +#: src/tables/settings/UserTable.tsx:271 msgid "Add user" msgstr "" -#: src/tables/settings/UserTable.tsx:262 +#: src/tables/settings/UserTable.tsx:261 msgid "Added user" msgstr "" -#: src/tables/settings/UserTable.tsx:285 +#: src/tables/settings/UserTable.tsx:284 msgid "Show active users" msgstr "" -#: src/tables/settings/UserTable.tsx:289 +#: src/tables/settings/UserTable.tsx:288 msgid "Staff" msgstr "" -#: src/tables/settings/UserTable.tsx:290 +#: src/tables/settings/UserTable.tsx:289 msgid "Show staff users" msgstr "" #: src/tables/settings/UserTable.tsx:294 -msgid "Superuser" -msgstr "" - -#: src/tables/settings/UserTable.tsx:295 msgid "Show superusers" msgstr "" -#: src/tables/settings/UserTable.tsx:305 +#: src/tables/settings/UserTable.tsx:304 msgid "Edit user" msgstr "" +#: src/tables/stock/InstalledItemsTable.tsx:37 +#: src/tables/stock/InstalledItemsTable.tsx:90 +msgid "Install Item" +msgstr "" + +#: src/tables/stock/InstalledItemsTable.tsx:39 +msgid "Item installed" +msgstr "" + +#: src/tables/stock/InstalledItemsTable.tsx:50 +msgid "Uninstall Item" +msgstr "" + +#: src/tables/stock/InstalledItemsTable.tsx:52 +msgid "Item uninstalled" +msgstr "" + +#: src/tables/stock/InstalledItemsTable.tsx:108 +msgid "Uninstall stock item" +msgstr "" + #: src/tables/stock/LocationTypesTable.tsx:39 #: src/tables/stock/LocationTypesTable.tsx:109 msgid "Add Location Type" @@ -7620,276 +8881,272 @@ msgstr "" msgid "Icon" msgstr "" -#: src/tables/stock/StockItemTable.tsx:101 +#: src/tables/stock/StockItemTable.tsx:90 msgid "This stock item is in production" msgstr "" -#: src/tables/stock/StockItemTable.tsx:110 +#: src/tables/stock/StockItemTable.tsx:97 msgid "This stock item has been assigned to a sales order" msgstr "" -#: src/tables/stock/StockItemTable.tsx:119 +#: src/tables/stock/StockItemTable.tsx:104 msgid "This stock item has been assigned to a customer" msgstr "" -#: src/tables/stock/StockItemTable.tsx:128 +#: src/tables/stock/StockItemTable.tsx:111 msgid "This stock item is installed in another stock item" msgstr "" -#: src/tables/stock/StockItemTable.tsx:137 +#: src/tables/stock/StockItemTable.tsx:118 msgid "This stock item has been consumed by a build order" msgstr "" -#: src/tables/stock/StockItemTable.tsx:146 +#: src/tables/stock/StockItemTable.tsx:125 +msgid "This stock item is unavailable" +msgstr "" + +#: src/tables/stock/StockItemTable.tsx:134 msgid "This stock item has expired" msgstr "" -#: src/tables/stock/StockItemTable.tsx:150 +#: src/tables/stock/StockItemTable.tsx:138 msgid "This stock item is stale" msgstr "" -#: src/tables/stock/StockItemTable.tsx:161 +#: src/tables/stock/StockItemTable.tsx:150 msgid "This stock item is fully allocated" msgstr "" -#: src/tables/stock/StockItemTable.tsx:168 +#: src/tables/stock/StockItemTable.tsx:157 msgid "This stock item is partially allocated" msgstr "" -#: src/tables/stock/StockItemTable.tsx:196 +#: src/tables/stock/StockItemTable.tsx:185 msgid "This stock item has been depleted" msgstr "" -#: src/tables/stock/StockItemTable.tsx:232 +#: src/tables/stock/StockItemTable.tsx:280 msgid "Stocktake Date" msgstr "" -#: src/tables/stock/StockItemTable.tsx:236 -msgid "Expiry Date" -msgstr "" - -#: src/tables/stock/StockItemTable.tsx:260 -msgid "Stock Value" -msgstr "" - -#: src/tables/stock/StockItemTable.tsx:290 +#: src/tables/stock/StockItemTable.tsx:294 msgid "Show stock for active parts" msgstr "" -#: src/tables/stock/StockItemTable.tsx:295 +#: src/tables/stock/StockItemTable.tsx:299 msgid "Filter by stock status" msgstr "" #: src/tables/stock/StockItemTable.tsx:301 -msgid "Show stock for assmebled parts" +#~ msgid "Show stock for assmebled parts" +#~ msgstr "Show stock for assmebled parts" + +#: src/tables/stock/StockItemTable.tsx:305 +msgid "Show stock for assembled parts" msgstr "" -#: src/tables/stock/StockItemTable.tsx:306 +#: src/tables/stock/StockItemTable.tsx:310 msgid "Show items which have been allocated" msgstr "" -#: src/tables/stock/StockItemTable.tsx:311 +#: src/tables/stock/StockItemTable.tsx:315 msgid "Show items which are available" msgstr "" -#: src/tables/stock/StockItemTable.tsx:315 +#: src/tables/stock/StockItemTable.tsx:319 #: src/tables/stock/StockLocationTable.tsx:44 msgid "Include Sublocations" msgstr "" -#: src/tables/stock/StockItemTable.tsx:316 +#: src/tables/stock/StockItemTable.tsx:320 msgid "Include stock in sublocations" msgstr "" -#: src/tables/stock/StockItemTable.tsx:320 +#: src/tables/stock/StockItemTable.tsx:324 msgid "Depleted" msgstr "" -#: src/tables/stock/StockItemTable.tsx:321 +#: src/tables/stock/StockItemTable.tsx:325 msgid "Show depleted stock items" msgstr "" -#: src/tables/stock/StockItemTable.tsx:326 +#: src/tables/stock/StockItemTable.tsx:330 msgid "Show items which are in stock" msgstr "" -#: src/tables/stock/StockItemTable.tsx:331 +#: src/tables/stock/StockItemTable.tsx:335 msgid "Show items which are in production" msgstr "" -#: src/tables/stock/StockItemTable.tsx:336 +#: src/tables/stock/StockItemTable.tsx:340 msgid "Include stock items for variant parts" msgstr "" -#: src/tables/stock/StockItemTable.tsx:341 +#: src/tables/stock/StockItemTable.tsx:345 msgid "Show stock items which are installed in other items" msgstr "" -#: src/tables/stock/StockItemTable.tsx:345 +#: src/tables/stock/StockItemTable.tsx:349 msgid "Sent to Customer" msgstr "" -#: src/tables/stock/StockItemTable.tsx:346 +#: src/tables/stock/StockItemTable.tsx:350 msgid "Show items which have been sent to a customer" msgstr "" -#: src/tables/stock/StockItemTable.tsx:350 +#: src/tables/stock/StockItemTable.tsx:354 msgid "Is Serialized" msgstr "" -#: src/tables/stock/StockItemTable.tsx:351 +#: src/tables/stock/StockItemTable.tsx:355 msgid "Show items which have a serial number" msgstr "" -#: src/tables/stock/StockItemTable.tsx:358 +#: src/tables/stock/StockItemTable.tsx:362 msgid "Has Batch Code" msgstr "" -#: src/tables/stock/StockItemTable.tsx:359 +#: src/tables/stock/StockItemTable.tsx:363 msgid "Show items which have a batch code" msgstr "" -#: src/tables/stock/StockItemTable.tsx:365 +#: src/tables/stock/StockItemTable.tsx:369 msgid "Show tracked items" msgstr "" -#: src/tables/stock/StockItemTable.tsx:369 +#: src/tables/stock/StockItemTable.tsx:373 msgid "Has Purchase Price" msgstr "" -#: src/tables/stock/StockItemTable.tsx:370 +#: src/tables/stock/StockItemTable.tsx:374 msgid "Show items which have a purchase price" msgstr "" -#: src/tables/stock/StockItemTable.tsx:378 +#: src/tables/stock/StockItemTable.tsx:382 msgid "External Location" msgstr "" -#: src/tables/stock/StockItemTable.tsx:379 +#: src/tables/stock/StockItemTable.tsx:383 msgid "Show items in an external location" msgstr "" -#: src/tables/stock/StockItemTable.tsx:451 +#: src/tables/stock/StockItemTable.tsx:456 msgid "Add a new stock item" msgstr "" -#: src/tables/stock/StockItemTable.tsx:460 +#: src/tables/stock/StockItemTable.tsx:465 msgid "Remove some quantity from a stock item" msgstr "" -#: src/tables/stock/StockItemTable.tsx:482 +#: src/tables/stock/StockItemTable.tsx:487 msgid "Move Stock items to new locations" msgstr "" -#: src/tables/stock/StockItemTable.tsx:489 +#: src/tables/stock/StockItemTable.tsx:494 msgid "Change stock status" msgstr "" -#: src/tables/stock/StockItemTable.tsx:491 +#: src/tables/stock/StockItemTable.tsx:496 msgid "Change the status of stock items" msgstr "" -#: src/tables/stock/StockItemTable.tsx:498 +#: src/tables/stock/StockItemTable.tsx:503 msgid "Merge stock" msgstr "" -#: src/tables/stock/StockItemTable.tsx:500 +#: src/tables/stock/StockItemTable.tsx:505 msgid "Merge stock items" msgstr "" -#: src/tables/stock/StockItemTable.tsx:509 -#: src/tables/stock/StockItemTable.tsx:516 +#: src/tables/stock/StockItemTable.tsx:514 +#: src/tables/stock/StockItemTable.tsx:521 msgid "Order new stock" msgstr "" -#: src/tables/stock/StockItemTable.tsx:514 +#: src/tables/stock/StockItemTable.tsx:519 msgid "Assign to customer" msgstr "" -#: src/tables/stock/StockItemTable.tsx:523 +#: src/tables/stock/StockItemTable.tsx:528 msgid "Delete stock" msgstr "" -#: src/tables/stock/StockItemTable.tsx:525 -msgid "Delete stock items" -msgstr "" +#: src/tables/stock/StockItemTable.tsx:528 +#~ msgid "Delete stock items" +#~ msgstr "Delete stock items" -#: src/tables/stock/StockItemTestResultTable.tsx:131 +#: src/tables/stock/StockItemTestResultTable.tsx:137 msgid "Test" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:157 +#: src/tables/stock/StockItemTestResultTable.tsx:163 msgid "Test result for installed stock item" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:168 -msgid "Result" -msgstr "" - -#: src/tables/stock/StockItemTestResultTable.tsx:190 +#: src/tables/stock/StockItemTestResultTable.tsx:196 msgid "Attachment" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:206 +#: src/tables/stock/StockItemTestResultTable.tsx:212 msgid "Test station" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:226 +#: src/tables/stock/StockItemTestResultTable.tsx:234 msgid "Finished" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:268 -#: src/tables/stock/StockItemTestResultTable.tsx:339 +#: src/tables/stock/StockItemTestResultTable.tsx:286 +#: src/tables/stock/StockItemTestResultTable.tsx:357 msgid "Edit Test Result" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:270 +#: src/tables/stock/StockItemTestResultTable.tsx:288 msgid "Test result updated" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:276 -#: src/tables/stock/StockItemTestResultTable.tsx:348 +#: src/tables/stock/StockItemTestResultTable.tsx:294 +#: src/tables/stock/StockItemTestResultTable.tsx:366 msgid "Delete Test Result" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:278 +#: src/tables/stock/StockItemTestResultTable.tsx:296 msgid "Test result deleted" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:292 +#: src/tables/stock/StockItemTestResultTable.tsx:310 msgid "Test Passed" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:293 +#: src/tables/stock/StockItemTestResultTable.tsx:311 msgid "Test result has been recorded" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:300 +#: src/tables/stock/StockItemTestResultTable.tsx:318 msgid "Failed to record test result" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:317 +#: src/tables/stock/StockItemTestResultTable.tsx:335 msgid "Pass Test" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:366 +#: src/tables/stock/StockItemTestResultTable.tsx:384 msgid "Show results for required tests" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:370 +#: src/tables/stock/StockItemTestResultTable.tsx:388 msgid "Include Installed" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:371 +#: src/tables/stock/StockItemTestResultTable.tsx:389 msgid "Show results for installed stock items" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:375 -#: src/tables/stock/TestStatisticsTable.tsx:74 +#: src/tables/stock/StockItemTestResultTable.tsx:393 +#: src/tables/stock/TestStatisticsTable.tsx:62 msgid "Passed" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:376 +#: src/tables/stock/StockItemTestResultTable.tsx:394 msgid "Show only passed tests" msgstr "" @@ -7922,28 +9179,32 @@ msgid "Filter by location type" msgstr "" #: src/tables/stock/StockLocationTable.tsx:107 -#: src/tables/stock/StockLocationTable.tsx:133 +#: src/tables/stock/StockLocationTable.tsx:134 msgid "Add Stock Location" msgstr "" -#: src/tables/stock/StockTrackingTable.tsx:64 +#: src/tables/stock/StockTrackingTable.tsx:68 msgid "Added" msgstr "" -#: src/tables/stock/StockTrackingTable.tsx:69 +#: src/tables/stock/StockTrackingTable.tsx:73 msgid "Removed" msgstr "" #: src/tables/stock/StockTrackingTable.tsx:198 +msgid "Details" +msgstr "" + +#: src/tables/stock/StockTrackingTable.tsx:213 msgid "No user information" msgstr "" -#: src/tables/stock/TestStatisticsTable.tsx:46 -#: src/tables/stock/TestStatisticsTable.tsx:76 +#: src/tables/stock/TestStatisticsTable.tsx:34 +#: src/tables/stock/TestStatisticsTable.tsx:64 msgid "Total" msgstr "" -#: src/tables/stock/TestStatisticsTable.tsx:75 +#: src/tables/stock/TestStatisticsTable.tsx:63 msgid "Failed" msgstr "" diff --git a/src/frontend/src/locales/da/messages.po b/src/frontend/src/locales/da/messages.po index 16bf2f54c0..ccec2c0a87 100644 --- a/src/frontend/src/locales/da/messages.po +++ b/src/frontend/src/locales/da/messages.po @@ -8,15 +8,15 @@ msgstr "" "Language: da\n" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"PO-Revision-Date: 2024-08-20 19:49\n" +"PO-Revision-Date: 2024-11-04 03:14\n" "Last-Translator: \n" "Language-Team: Danish\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Crowdin-Project: inventree\n" "X-Crowdin-Project-ID: 452300\n" "X-Crowdin-Language: da\n" -"X-Crowdin-File: /[inventree.InvenTree] l10/src/frontend/src/locales/en/messages.po\n" -"X-Crowdin-File-ID: 205\n" +"X-Crowdin-File: /src/frontend/src/locales/en/messages.po\n" +"X-Crowdin-File-ID: 252\n" #: src/components/Boundary.tsx:12 msgid "Error rendering component" @@ -27,8 +27,8 @@ msgid "An error occurred while rendering this component. Refer to the console fo msgstr "" #: src/components/DashboardItemProxy.tsx:34 -msgid "Title" -msgstr "" +#~ msgid "Title" +#~ msgstr "Title" #: src/components/buttons/AdminButton.tsx:80 msgid "Open in admin interface" @@ -38,82 +38,99 @@ msgstr "" #~ msgid "Copy to clipboard" #~ msgstr "Copy to clipboard" -#: src/components/buttons/CopyButton.tsx:24 +#: src/components/buttons/CopyButton.tsx:29 msgid "Copied" msgstr "" -#: src/components/buttons/CopyButton.tsx:24 +#: src/components/buttons/CopyButton.tsx:29 msgid "Copy" msgstr "" -#: src/components/buttons/PrintingActions.tsx:93 +#: src/components/buttons/PrintingActions.tsx:97 msgid "Print Label" msgstr "" -#: src/components/buttons/PrintingActions.tsx:99 +#: src/components/buttons/PrintingActions.tsx:103 msgid "Print" msgstr "" -#: src/components/buttons/PrintingActions.tsx:100 +#: src/components/buttons/PrintingActions.tsx:104 msgid "Label printing completed successfully" msgstr "" -#: src/components/buttons/PrintingActions.tsx:106 -#: src/components/buttons/PrintingActions.tsx:144 -#: src/components/editors/NotesEditor.tsx:65 -#: src/components/editors/NotesEditor.tsx:165 -#: src/components/forms/fields/ApiFormField.tsx:319 +#: src/components/buttons/PrintingActions.tsx:110 +#: src/components/buttons/PrintingActions.tsx:148 +#: src/components/editors/NotesEditor.tsx:73 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:154 +#: src/components/forms/fields/ApiFormField.tsx:328 +#: src/components/forms/fields/TableField.tsx:43 #: src/components/importer/ImportDataSelector.tsx:187 -#: src/components/importer/ImporterColumnSelector.tsx:207 +#: src/components/importer/ImporterColumnSelector.tsx:210 #: src/components/modals/LicenseModal.tsx:75 -#: src/components/nav/SearchDrawer.tsx:448 +#: src/components/nav/SearchDrawer.tsx:458 +#: src/components/render/ModelType.tsx:290 #: src/pages/ErrorPage.tsx:11 -#: src/pages/part/PartPricingPanel.tsx:67 -#: src/tables/InvenTreeTable.tsx:495 +#: src/pages/part/PartPricingPanel.tsx:71 +#: src/tables/InvenTreeTable.tsx:481 #: src/tables/bom/BomTable.tsx:450 -#: src/tables/stock/StockItemTestResultTable.tsx:299 +#: src/tables/stock/StockItemTestResultTable.tsx:317 msgid "Error" msgstr "" -#: src/components/buttons/PrintingActions.tsx:107 +#: src/components/buttons/PrintingActions.tsx:111 msgid "The label could not be generated" msgstr "" -#: src/components/buttons/PrintingActions.tsx:122 +#: src/components/buttons/PrintingActions.tsx:126 msgid "Print Report" msgstr "" -#: src/components/buttons/PrintingActions.tsx:138 +#: src/components/buttons/PrintingActions.tsx:142 msgid "Generate" msgstr "" -#: src/components/buttons/PrintingActions.tsx:139 +#: src/components/buttons/PrintingActions.tsx:143 msgid "Report printing completed successfully" msgstr "" -#: src/components/buttons/PrintingActions.tsx:145 +#: src/components/buttons/PrintingActions.tsx:149 msgid "The report could not be generated" msgstr "" -#: src/components/buttons/PrintingActions.tsx:173 +#: src/components/buttons/PrintingActions.tsx:177 msgid "Printing Actions" msgstr "" -#: src/components/buttons/PrintingActions.tsx:178 +#: src/components/buttons/PrintingActions.tsx:182 msgid "Print Labels" msgstr "" -#: src/components/buttons/PrintingActions.tsx:184 +#: src/components/buttons/PrintingActions.tsx:188 msgid "Print Reports" msgstr "" +#: src/components/buttons/RemoveRowButton.tsx:8 +msgid "Remove this row" +msgstr "" + #: src/components/buttons/ScanButton.tsx:15 -msgid "Scan QR code" +#: src/components/nav/NavigationDrawer.tsx:117 +#: src/forms/PurchaseOrderForms.tsx:379 +#: src/forms/PurchaseOrderForms.tsx:473 +msgid "Scan Barcode" +msgstr "" + +#: src/components/buttons/ScanButton.tsx:15 +#~ msgid "Scan QR code" +#~ msgstr "Scan QR code" + +#: src/components/buttons/ScanButton.tsx:20 +msgid "Open Barcode Scanner" msgstr "" #: src/components/buttons/ScanButton.tsx:20 -msgid "Open QR code scanner" -msgstr "" +#~ msgid "Open QR code scanner" +#~ msgstr "Open QR code scanner" #: src/components/buttons/SpotlightButton.tsx:14 msgid "Open spotlight" @@ -128,85 +145,347 @@ msgid "Fail" msgstr "" #: src/components/buttons/YesNoButton.tsx:33 -#: src/tables/Filter.tsx:52 +#: src/tables/Filter.tsx:61 msgid "Yes" msgstr "" #: src/components/buttons/YesNoButton.tsx:33 -#: src/tables/Filter.tsx:53 +#: src/tables/Filter.tsx:62 msgid "No" msgstr "" -#: src/components/details/Details.tsx:301 +#: src/components/dashboard/DashboardLayout.tsx:286 +msgid "No Widgets Selected" +msgstr "" + +#: src/components/dashboard/DashboardLayout.tsx:289 +msgid "Use the menu to add widgets to the dashboard" +msgstr "" + +#: src/components/dashboard/DashboardMenu.tsx:59 +#: src/components/dashboard/DashboardMenu.tsx:126 +msgid "Accept Layout" +msgstr "" + +#: src/components/dashboard/DashboardMenu.tsx:91 +#: src/components/nav/NavigationDrawer.tsx:71 +#: src/defaults/actions.tsx:17 +#: src/defaults/links.tsx:9 +#: src/pages/Index/Settings/UserSettings.tsx:47 +msgid "Dashboard" +msgstr "" + +#: src/components/dashboard/DashboardMenu.tsx:99 +msgid "Edit Layout" +msgstr "" + +#: src/components/dashboard/DashboardMenu.tsx:108 +msgid "Add Widget" +msgstr "" + +#: src/components/dashboard/DashboardMenu.tsx:117 +msgid "Remove Widgets" +msgstr "" + +#: src/components/dashboard/DashboardWidget.tsx:65 +msgid "Remove this widget from the dashboard" +msgstr "" + +#: src/components/dashboard/DashboardWidgetDrawer.tsx:77 +msgid "Filter dashboard widgets" +msgstr "" + +#: src/components/dashboard/DashboardWidgetDrawer.tsx:98 +msgid "Add this widget to the dashboard" +msgstr "" + +#: src/components/dashboard/DashboardWidgetDrawer.tsx:123 +msgid "No Widgets Available" +msgstr "" + +#: src/components/dashboard/DashboardWidgetDrawer.tsx:124 +msgid "There are no more widgets available for the dashboard" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:19 +msgid "Subscribed Parts" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:20 +msgid "Show the number of parts which you have subscribed to" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:26 +msgid "Subscribed Categories" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:27 +msgid "Show the number of part categories which you have subscribed to" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:35 +#: src/pages/part/PartSchedulingDetail.tsx:304 +#: src/tables/part/PartTable.tsx:238 +msgid "Low Stock" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:37 +msgid "Show the number of parts which are low on stock" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:43 +msgid "Expired Stock Items" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:45 +msgid "Show the number of stock items which have expired" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:51 +msgid "Stale Stock Items" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:53 +msgid "Show the number of stock items which are stale" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:59 +msgid "Active Build Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:61 +msgid "Show the number of build orders which are currently active" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:66 +msgid "Overdue Build Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:68 +msgid "Show the number of build orders which are overdue" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:73 +msgid "Assigned Build Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:75 +msgid "Show the number of build orders which are assigned to you" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:80 +msgid "Active Sales Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:82 +msgid "Show the number of sales orders which are currently active" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:87 +msgid "Overdue Sales Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:89 +msgid "Show the number of sales orders which are overdue" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:94 +msgid "Assigned Sales Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:96 +msgid "Show the number of sales orders which are assigned to you" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:101 +msgid "Active Purchase Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:103 +msgid "Show the number of purchase orders which are currently active" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:108 +msgid "Overdue Purchase Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:110 +msgid "Show the number of purchase orders which are overdue" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:115 +msgid "Assigned Purchase Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:117 +msgid "Show the number of purchase orders which are assigned to you" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:122 +msgid "Active Return Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:124 +msgid "Show the number of return orders which are currently active" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:129 +msgid "Overdue Return Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:131 +msgid "Show the number of return orders which are overdue" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:136 +msgid "Assigned Return Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:138 +msgid "Show the number of return orders which are assigned to you" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:149 +#: src/components/dashboard/widgets/GetStartedWidget.tsx:15 +#: src/defaults/links.tsx:38 +msgid "Getting Started" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:150 +#: src/defaults/links.tsx:41 +msgid "Getting started with InvenTree" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:157 +#: src/components/dashboard/widgets/NewsWidget.tsx:123 +msgid "News Updates" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:158 +msgid "The latest news from InvenTree" +msgstr "" + +#: src/components/dashboard/widgets/ColorToggleWidget.tsx:18 +#: src/components/nav/MainMenu.tsx:77 +msgid "Change Color Mode" +msgstr "" + +#: src/components/dashboard/widgets/ColorToggleWidget.tsx:23 +msgid "Change the color mode of the user interface" +msgstr "" + +#: src/components/dashboard/widgets/LanguageSelectWidget.tsx:18 +msgid "Change Language" +msgstr "" + +#: src/components/dashboard/widgets/LanguageSelectWidget.tsx:23 +msgid "Change the language of the user interface" +msgstr "" + +#: src/components/dashboard/widgets/NewsWidget.tsx:61 +#: src/components/nav/NotificationDrawer.tsx:88 +#: src/pages/Notifications.tsx:73 +msgid "Mark as read" +msgstr "" + +#: src/components/dashboard/widgets/NewsWidget.tsx:115 +msgid "Requires Superuser" +msgstr "" + +#: src/components/dashboard/widgets/NewsWidget.tsx:116 +msgid "This widget requires superuser permissions" +msgstr "" + +#: src/components/dashboard/widgets/NewsWidget.tsx:133 +msgid "No News" +msgstr "" + +#: src/components/dashboard/widgets/NewsWidget.tsx:134 +msgid "There are no unread news items" +msgstr "" + +#: src/components/details/Details.tsx:300 msgid "No name defined" msgstr "" -#: src/components/details/DetailsImage.tsx:65 +#: src/components/details/DetailsImage.tsx:69 msgid "Remove Image" msgstr "" -#: src/components/details/DetailsImage.tsx:68 +#: src/components/details/DetailsImage.tsx:72 msgid "Remove the associated image from this item?" msgstr "" -#: src/components/details/DetailsImage.tsx:71 -#: src/forms/StockForms.tsx:533 +#: src/components/details/DetailsImage.tsx:75 +#: src/forms/StockForms.tsx:651 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:199 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:306 -#: src/pages/stock/StockDetail.tsx:526 +#: src/pages/stock/StockDetail.tsx:690 msgid "Remove" msgstr "" -#: src/components/details/DetailsImage.tsx:71 -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:158 -#: src/components/items/ActionDropdown.tsx:215 -#: src/components/items/ActionDropdown.tsx:216 -#: src/contexts/ThemeContext.tsx:43 +#: src/components/details/DetailsImage.tsx:75 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:184 +#: src/components/items/ActionDropdown.tsx:268 +#: src/components/items/ActionDropdown.tsx:269 +#: src/contexts/ThemeContext.tsx:45 #: src/hooks/UseForm.tsx:40 -#: src/tables/FilterSelectDrawer.tsx:205 -#: src/tables/build/BuildOutputTable.tsx:286 +#: src/tables/FilterSelectDrawer.tsx:241 +#: src/tables/RowActions.tsx:59 +#: src/tables/build/BuildOutputTable.tsx:434 msgid "Cancel" msgstr "" -#: src/components/details/DetailsImage.tsx:97 +#: src/components/details/DetailsImage.tsx:101 msgid "Drag and drop to upload" msgstr "" -#: src/components/details/DetailsImage.tsx:100 +#: src/components/details/DetailsImage.tsx:104 msgid "Click to select file(s)" msgstr "" -#: src/components/details/DetailsImage.tsx:226 +#: src/components/details/DetailsImage.tsx:230 msgid "Clear" msgstr "" -#: src/components/details/DetailsImage.tsx:232 -#: src/components/forms/ApiForm.tsx:627 -#: src/contexts/ThemeContext.tsx:43 -#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:60 +#: src/components/details/DetailsImage.tsx:236 +#: src/components/forms/ApiForm.tsx:660 +#: src/contexts/ThemeContext.tsx:45 msgid "Submit" msgstr "" -#: src/components/details/DetailsImage.tsx:272 +#: src/components/details/DetailsImage.tsx:280 msgid "Select from existing images" msgstr "" -#: src/components/details/DetailsImage.tsx:280 +#: src/components/details/DetailsImage.tsx:288 msgid "Select Image" msgstr "" -#: src/components/details/DetailsImage.tsx:292 +#: src/components/details/DetailsImage.tsx:304 +msgid "Download remote image" +msgstr "" + +#: src/components/details/DetailsImage.tsx:319 msgid "Upload new image" msgstr "" -#: src/components/details/DetailsImage.tsx:299 +#: src/components/details/DetailsImage.tsx:326 msgid "Upload Image" msgstr "" -#: src/components/details/DetailsImage.tsx:312 +#: src/components/details/DetailsImage.tsx:339 msgid "Delete image" msgstr "" +#: src/components/details/DetailsImage.tsx:373 +msgid "Download Image" +msgstr "" + +#: src/components/details/DetailsImage.tsx:378 +msgid "Image downloaded successfully" +msgstr "" + #: src/components/details/PartIcons.tsx:43 #~ msgid "Part is a template part (variants can be made from this part)" #~ msgstr "Part is a template part (variants can be made from this part)" @@ -235,36 +514,57 @@ msgstr "" #~ msgid "Part is virtual (not a physical part)" #~ msgstr "Part is virtual (not a physical part)" -#: src/components/editors/NotesEditor.tsx:66 +#: src/components/editors/NotesEditor.tsx:74 msgid "Image upload failed" msgstr "" -#: src/components/editors/NotesEditor.tsx:156 -#: src/components/forms/ApiForm.tsx:467 +#: src/components/editors/NotesEditor.tsx:83 +#: src/components/editors/NotesEditor.tsx:119 +#: src/components/forms/ApiForm.tsx:475 #: src/tables/bom/BomTable.tsx:441 msgid "Success" msgstr "" -#: src/components/editors/NotesEditor.tsx:157 +#: src/components/editors/NotesEditor.tsx:84 +msgid "Image uploaded successfully" +msgstr "" + +#: src/components/editors/NotesEditor.tsx:120 msgid "Notes saved successfully" msgstr "" -#: src/components/editors/NotesEditor.tsx:166 +#: src/components/editors/NotesEditor.tsx:131 msgid "Failed to save notes" msgstr "" -#: src/components/editors/NotesEditor.tsx:198 -msgid "Preview Notes" +#: src/components/editors/NotesEditor.tsx:134 +msgid "Error Saving Notes" msgstr "" -#: src/components/editors/NotesEditor.tsx:198 -msgid "Edit Notes" -msgstr "" +#: src/components/editors/NotesEditor.tsx:151 +#~ msgid "Disable Editing" +#~ msgstr "Disable Editing" -#: src/components/editors/NotesEditor.tsx:212 +#: src/components/editors/NotesEditor.tsx:154 msgid "Save Notes" msgstr "" +#: src/components/editors/NotesEditor.tsx:173 +msgid "Close Editor" +msgstr "" + +#: src/components/editors/NotesEditor.tsx:180 +msgid "Enable Editing" +msgstr "" + +#: src/components/editors/NotesEditor.tsx:198 +#~ msgid "Preview Notes" +#~ msgstr "Preview Notes" + +#: src/components/editors/NotesEditor.tsx:198 +#~ msgid "Edit Notes" +#~ msgstr "Edit Notes" + #: src/components/editors/TemplateEditor/CodeEditor/index.tsx:9 msgid "Code" msgstr "" @@ -281,40 +581,44 @@ msgstr "" msgid "PDF Preview" msgstr "" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:104 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:115 msgid "Error loading template" msgstr "" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:116 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:127 msgid "Error saving template" msgstr "" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:146 -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:274 -msgid "Save & Reload Preview" -msgstr "" - -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:151 -msgid "Are you sure you want to Save & Reload the preview?" -msgstr "" - #: src/components/editors/TemplateEditor/TemplateEditor.tsx:151 #~ msgid "Save & Reload preview?" #~ msgstr "Save & Reload preview?" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:153 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:155 +msgid "Could not load the template from the server." +msgstr "" + +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:172 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:303 +msgid "Save & Reload Preview" +msgstr "" + +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:177 +msgid "Are you sure you want to Save & Reload the preview?" +msgstr "" + +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:179 msgid "To render the preview the current template needs to be replaced on the server with your modifications which may break the label if it is under active use. Do you want to proceed?" msgstr "" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:157 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:183 msgid "Save & Reload" msgstr "" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:189 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:215 msgid "Preview updated" msgstr "" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:190 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:216 msgid "The preview has been updated successfully." msgstr "" @@ -322,15 +626,15 @@ msgstr "" #~ msgid "Save & Reload preview" #~ msgstr "Save & Reload preview" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:266 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:295 msgid "Reload preview" msgstr "" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:267 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:296 msgid "Use the currently stored template from the server" msgstr "" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:275 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:304 msgid "Save the current template and reload the preview" msgstr "" @@ -338,11 +642,11 @@ msgstr "" #~ msgid "to preview" #~ msgstr "to preview" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:333 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:365 msgid "Select instance to preview" msgstr "" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:377 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:409 msgid "Error rendering template" msgstr "" @@ -379,6 +683,7 @@ msgid "This page does not exist" msgstr "" #: src/components/errors/PermissionDenied.tsx:8 +#: src/functions/notifications.tsx:24 msgid "Permission Denied" msgstr "" @@ -394,8 +699,8 @@ msgstr "" msgid "A server error occurred" msgstr "" -#: src/components/forms/ApiForm.tsx:151 -#: src/components/forms/ApiForm.tsx:555 +#: src/components/forms/ApiForm.tsx:154 +#: src/components/forms/ApiForm.tsx:579 msgid "Form Error" msgstr "" @@ -403,22 +708,22 @@ msgstr "" #~ msgid "Form Errors Exist" #~ msgstr "Form Errors Exist" -#: src/components/forms/ApiForm.tsx:563 +#: src/components/forms/ApiForm.tsx:587 msgid "Errors exist for one or more form fields" msgstr "" -#: src/components/forms/ApiForm.tsx:665 -#: src/tables/plugin/PluginListTable.tsx:388 +#: src/components/forms/ApiForm.tsx:698 +#: src/tables/plugin/PluginListTable.tsx:195 msgid "Update" msgstr "" -#: src/components/forms/ApiForm.tsx:685 -#: src/components/items/ActionDropdown.tsx:195 +#: src/components/forms/ApiForm.tsx:718 +#: src/components/items/ActionDropdown.tsx:248 #: src/hooks/UseForm.tsx:122 -#: src/pages/Index/Scan.tsx:343 +#: src/pages/Index/Scan.tsx:357 #: src/pages/Notifications.tsx:123 -#: src/tables/RowActions.tsx:43 -#: src/tables/plugin/PluginListTable.tsx:420 +#: src/tables/RowActions.tsx:49 +#: src/tables/plugin/PluginListTable.tsx:232 msgid "Delete" msgstr "" @@ -428,14 +733,6 @@ msgstr "" #~ msgid "Check your your input and try again." #~ msgstr "Check your your input and try again." -#: src/components/forms/AuthenticationForm.tsx:51 -msgid "Login successful" -msgstr "" - -#: src/components/forms/AuthenticationForm.tsx:52 -msgid "Logged in successfully" -msgstr "" - #: src/components/forms/AuthenticationForm.tsx:52 #~ msgid "Welcome back!" #~ msgstr "Welcome back!" @@ -444,14 +741,22 @@ msgstr "" #~ msgid "Login successfull" #~ msgstr "Login successfull" -#: src/components/forms/AuthenticationForm.tsx:58 +#: src/components/forms/AuthenticationForm.tsx:55 +msgid "Login successful" +msgstr "" + +#: src/components/forms/AuthenticationForm.tsx:56 +msgid "Logged in successfully" +msgstr "" + +#: src/components/forms/AuthenticationForm.tsx:61 msgid "Login failed" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:59 -#: src/components/forms/AuthenticationForm.tsx:76 -#: src/components/forms/AuthenticationForm.tsx:211 -#: src/functions/auth.tsx:164 +#: src/components/forms/AuthenticationForm.tsx:62 +#: src/components/forms/AuthenticationForm.tsx:79 +#: src/components/forms/AuthenticationForm.tsx:214 +#: src/functions/auth.tsx:175 msgid "Check your input and try again." msgstr "" @@ -460,45 +765,46 @@ msgstr "" #~ msgid "Mail delivery successfull" #~ msgstr "Mail delivery successfull" -#: src/components/forms/AuthenticationForm.tsx:70 -#: src/functions/auth.tsx:155 +#: src/components/forms/AuthenticationForm.tsx:73 +#: src/functions/auth.tsx:166 msgid "Mail delivery successful" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:71 +#: src/components/forms/AuthenticationForm.tsx:74 msgid "Check your inbox for the login link. If you have an account, you will receive a login link. Check in spam too." msgstr "" -#: src/components/forms/AuthenticationForm.tsx:75 +#: src/components/forms/AuthenticationForm.tsx:78 msgid "Mail delivery failed" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:95 +#: src/components/forms/AuthenticationForm.tsx:98 msgid "Or continue with other methods" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:106 -#: src/components/forms/AuthenticationForm.tsx:227 +#: src/components/forms/AuthenticationForm.tsx:109 +#: src/components/forms/AuthenticationForm.tsx:230 +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:67 msgid "Username" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:107 -#: src/components/forms/AuthenticationForm.tsx:228 +#: src/components/forms/AuthenticationForm.tsx:110 +#: src/components/forms/AuthenticationForm.tsx:231 msgid "Your username" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:112 -#: src/components/forms/AuthenticationForm.tsx:240 -#: src/pages/Auth/Set-Password.tsx:106 +#: src/components/forms/AuthenticationForm.tsx:115 +#: src/components/forms/AuthenticationForm.tsx:243 +#: src/pages/Auth/Set-Password.tsx:101 msgid "Password" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:113 -#: src/components/forms/AuthenticationForm.tsx:241 +#: src/components/forms/AuthenticationForm.tsx:116 +#: src/components/forms/AuthenticationForm.tsx:244 msgid "Your password" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:125 +#: src/components/forms/AuthenticationForm.tsx:128 #: src/pages/Auth/Reset.tsx:26 msgid "Reset password" msgstr "" @@ -507,77 +813,79 @@ msgstr "" #~ msgid "Log in" #~ msgstr "Log in" -#: src/components/forms/AuthenticationForm.tsx:134 -#: src/components/forms/AuthenticationForm.tsx:233 +#: src/components/forms/AuthenticationForm.tsx:136 +#~ msgid "I will use username and password" +#~ msgstr "I will use username and password" + +#: src/components/forms/AuthenticationForm.tsx:137 +#: src/components/forms/AuthenticationForm.tsx:236 #: src/pages/Auth/Reset.tsx:31 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:51 msgid "Email" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:135 +#: src/components/forms/AuthenticationForm.tsx:138 #: src/pages/Auth/Reset.tsx:32 -#: src/pages/Auth/Set-Password.tsx:107 +#: src/pages/Auth/Set-Password.tsx:102 msgid "We will send you a link to login - if you are registered" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:136 -#~ msgid "I will use username and password" -#~ msgstr "I will use username and password" - -#: src/components/forms/AuthenticationForm.tsx:151 +#: src/components/forms/AuthenticationForm.tsx:154 msgid "Send me an email" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:153 +#: src/components/forms/AuthenticationForm.tsx:156 msgid "Use username and password" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:162 +#: src/components/forms/AuthenticationForm.tsx:165 msgid "Log In" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:164 +#: src/components/forms/AuthenticationForm.tsx:167 +#: src/pages/Auth/Reset.tsx:41 +#: src/pages/Auth/Set-Password.tsx:107 msgid "Send Email" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:193 +#: src/components/forms/AuthenticationForm.tsx:196 msgid "Registration successful" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:194 +#: src/components/forms/AuthenticationForm.tsx:197 msgid "Please confirm your email address to complete the registration" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:210 +#: src/components/forms/AuthenticationForm.tsx:213 msgid "Input error" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:234 +#: src/components/forms/AuthenticationForm.tsx:237 msgid "This will be used for a confirmation" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:246 +#: src/components/forms/AuthenticationForm.tsx:249 msgid "Password repeat" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:247 +#: src/components/forms/AuthenticationForm.tsx:250 msgid "Repeat password" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:259 -#: src/components/forms/AuthenticationForm.tsx:304 +#: src/components/forms/AuthenticationForm.tsx:262 +#: src/components/forms/AuthenticationForm.tsx:307 msgid "Register" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:265 +#: src/components/forms/AuthenticationForm.tsx:268 msgid "Or use SSO" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:296 +#: src/components/forms/AuthenticationForm.tsx:299 msgid "Don't have an account?" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:315 +#: src/components/forms/AuthenticationForm.tsx:318 msgid "Go back to login" msgstr "" @@ -588,19 +896,20 @@ msgstr "" #: src/components/forms/HostOptionsForm.tsx:42 #: src/components/forms/HostOptionsForm.tsx:70 +#: src/components/plugins/PluginDrawer.tsx:69 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:410 +#: src/pages/Index/Settings/AdminCenter/UnitManagmentPanel.tsx:19 #: src/pages/part/CategoryDetail.tsx:81 -#: src/pages/part/PartDetail.tsx:143 -#: src/pages/stock/LocationDetail.tsx:89 -#: src/tables/machine/MachineTypeTable.tsx:65 -#: src/tables/machine/MachineTypeTable.tsx:109 -#: src/tables/machine/MachineTypeTable.tsx:216 -#: src/tables/machine/MachineTypeTable.tsx:319 +#: src/pages/part/PartDetail.tsx:164 +#: src/pages/stock/LocationDetail.tsx:83 +#: src/tables/machine/MachineTypeTable.tsx:70 +#: src/tables/machine/MachineTypeTable.tsx:119 +#: src/tables/machine/MachineTypeTable.tsx:237 +#: src/tables/machine/MachineTypeTable.tsx:340 #: src/tables/plugin/PluginErrorTable.tsx:33 -#: src/tables/plugin/PluginListTable.tsx:126 #: src/tables/purchasing/ManufacturerPartParameterTable.tsx:32 #: src/tables/settings/GroupTable.tsx:147 -#: src/tables/settings/PendingTasksTable.tsx:28 +#: src/tables/settings/PendingTasksTable.tsx:32 #: src/tables/stock/LocationTypesTable.tsx:69 msgid "Name" msgstr "" @@ -650,7 +959,7 @@ msgid "Uncategorized" msgstr "" #: src/components/forms/fields/IconField.tsx:209 -#: src/components/nav/Layout.tsx:70 +#: src/components/nav/Layout.tsx:77 #: src/tables/part/PartThumbTable.tsx:192 msgid "Search..." msgstr "" @@ -667,28 +976,27 @@ msgstr "" msgid "{0} icons" msgstr "" -#: src/components/forms/fields/RelatedModelField.tsx:318 -#: src/pages/Index/Settings/UserSettings.tsx:96 +#: src/components/forms/fields/RelatedModelField.tsx:319 +#: src/pages/Index/Settings/UserSettings.tsx:97 #: src/tables/Search.tsx:23 msgid "Search" msgstr "" -#: src/components/forms/fields/RelatedModelField.tsx:319 +#: src/components/forms/fields/RelatedModelField.tsx:320 #: src/components/modals/AboutInvenTreeModal.tsx:81 -#: src/components/widgets/WidgetLayout.tsx:120 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:316 msgid "Loading" msgstr "" -#: src/components/forms/fields/RelatedModelField.tsx:321 +#: src/components/forms/fields/RelatedModelField.tsx:322 msgid "No results found" msgstr "" -#: src/components/forms/fields/TableField.tsx:52 -msgid "modelRenderer entry required for tables" -msgstr "" +#: src/components/forms/fields/TableField.tsx:72 +#~ msgid "modelRenderer entry required for tables" +#~ msgstr "modelRenderer entry required for tables" -#: src/components/forms/fields/TableField.tsx:76 +#: src/components/forms/fields/TableField.tsx:167 msgid "No entries available" msgstr "" @@ -741,7 +1049,7 @@ msgid "Filter by row validation status" msgstr "" #: src/components/importer/ImportDataSelector.tsx:365 -#: src/tables/build/BuildOutputTable.tsx:266 +#: src/tables/build/BuildOutputTable.tsx:407 msgid "Complete" msgstr "" @@ -749,20 +1057,21 @@ msgstr "" msgid "Filter by row completion status" msgstr "" -#: src/components/importer/ImportDataSelector.tsx:383 +#: src/components/importer/ImportDataSelector.tsx:384 msgid "Import selected rows" msgstr "" -#: src/components/importer/ImportDataSelector.tsx:398 +#: src/components/importer/ImportDataSelector.tsx:399 msgid "Processing Data" msgstr "" -#: src/components/importer/ImporterColumnSelector.tsx:50 -#: src/components/importer/ImporterColumnSelector.tsx:176 +#: src/components/importer/ImporterColumnSelector.tsx:53 +#: src/components/importer/ImporterColumnSelector.tsx:179 +#: src/components/items/ErrorItem.tsx:12 msgid "An error occurred" msgstr "" -#: src/components/importer/ImporterColumnSelector.tsx:62 +#: src/components/importer/ImporterColumnSelector.tsx:65 msgid "Select column, or leave blank to ignore this field." msgstr "" @@ -778,51 +1087,51 @@ msgstr "" #~ msgid "Imported Column Name" #~ msgstr "Imported Column Name" -#: src/components/importer/ImporterColumnSelector.tsx:182 +#: src/components/importer/ImporterColumnSelector.tsx:185 msgid "Ignore this field" msgstr "" -#: src/components/importer/ImporterColumnSelector.tsx:196 +#: src/components/importer/ImporterColumnSelector.tsx:199 msgid "Mapping data columns to database fields" msgstr "" -#: src/components/importer/ImporterColumnSelector.tsx:201 +#: src/components/importer/ImporterColumnSelector.tsx:204 msgid "Accept Column Mapping" msgstr "" -#: src/components/importer/ImporterColumnSelector.tsx:214 +#: src/components/importer/ImporterColumnSelector.tsx:217 msgid "Database Field" msgstr "" -#: src/components/importer/ImporterColumnSelector.tsx:215 +#: src/components/importer/ImporterColumnSelector.tsx:218 msgid "Field Description" msgstr "" -#: src/components/importer/ImporterColumnSelector.tsx:216 +#: src/components/importer/ImporterColumnSelector.tsx:219 msgid "Imported Column" msgstr "" -#: src/components/importer/ImporterColumnSelector.tsx:217 +#: src/components/importer/ImporterColumnSelector.tsx:220 msgid "Default Value" msgstr "" -#: src/components/importer/ImporterDrawer.tsx:44 +#: src/components/importer/ImporterDrawer.tsx:46 msgid "Upload File" msgstr "" -#: src/components/importer/ImporterDrawer.tsx:45 +#: src/components/importer/ImporterDrawer.tsx:47 msgid "Map Columns" msgstr "" -#: src/components/importer/ImporterDrawer.tsx:46 +#: src/components/importer/ImporterDrawer.tsx:48 msgid "Import Data" msgstr "" -#: src/components/importer/ImporterDrawer.tsx:47 +#: src/components/importer/ImporterDrawer.tsx:49 msgid "Process Data" msgstr "" -#: src/components/importer/ImporterDrawer.tsx:48 +#: src/components/importer/ImporterDrawer.tsx:50 msgid "Complete Import" msgstr "" @@ -830,28 +1139,28 @@ msgstr "" #~ msgid "Cancel import session" #~ msgstr "Cancel import session" -#: src/components/importer/ImporterDrawer.tsx:104 +#: src/components/importer/ImporterDrawer.tsx:106 msgid "Import Complete" msgstr "" -#: src/components/importer/ImporterDrawer.tsx:107 +#: src/components/importer/ImporterDrawer.tsx:109 msgid "Data has been imported successfully" msgstr "" -#: src/components/importer/ImporterDrawer.tsx:109 -#: src/components/importer/ImporterDrawer.tsx:118 +#: src/components/importer/ImporterDrawer.tsx:111 +#: src/components/importer/ImporterDrawer.tsx:120 msgid "Close" msgstr "" -#: src/components/importer/ImporterDrawer.tsx:115 +#: src/components/importer/ImporterDrawer.tsx:117 msgid "Unknown Status" msgstr "" -#: src/components/importer/ImporterDrawer.tsx:116 +#: src/components/importer/ImporterDrawer.tsx:118 msgid "Import session has unknown status" msgstr "" -#: src/components/importer/ImporterDrawer.tsx:135 +#: src/components/importer/ImporterDrawer.tsx:137 msgid "Importing Data" msgstr "" @@ -860,85 +1169,115 @@ msgid "Importing Records" msgstr "" #: src/components/importer/ImporterImportProgress.tsx:39 -msgid "Imported rows" +#: src/tables/settings/ImportSessionTable.tsx:78 +msgid "Imported Rows" msgstr "" -#: src/components/items/ActionDropdown.tsx:121 -msgid "Barcode Actions" +#: src/components/importer/ImporterImportProgress.tsx:39 +#~ msgid "Imported rows" +#~ msgstr "Imported rows" + +#: src/components/items/ActionDropdown.tsx:126 +msgid "Options" msgstr "" #: src/components/items/ActionDropdown.tsx:140 -msgid "View Barcode" -msgstr "" +#~ msgid "View Barcode" +#~ msgstr "View Barcode" -#: src/components/items/ActionDropdown.tsx:147 -msgid "View" -msgstr "" - -#: src/components/items/ActionDropdown.tsx:148 -msgid "View barcode" -msgstr "" - -#: src/components/items/ActionDropdown.tsx:161 -msgid "Link Barcode" +#: src/components/items/ActionDropdown.tsx:162 +#: src/tables/InvenTreeTableHeader.tsx:159 +#: src/tables/InvenTreeTableHeader.tsx:160 +msgid "Barcode Actions" msgstr "" #: src/components/items/ActionDropdown.tsx:162 -msgid "Link custom barcode" +#~ msgid "Link custom barcode" +#~ msgstr "Link custom barcode" + +#: src/components/items/ActionDropdown.tsx:167 +msgid "View" msgstr "" -#: src/components/items/ActionDropdown.tsx:173 -#: src/forms/PurchaseOrderForms.tsx:426 -msgid "Unlink Barcode" +#: src/components/items/ActionDropdown.tsx:169 +msgid "View barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:174 -msgid "Unlink custom barcode" +#: src/components/items/ActionDropdown.tsx:175 +msgid "Link Barcode" +msgstr "" + +#: src/components/items/ActionDropdown.tsx:177 +msgid "Link a custom barcode to this item" msgstr "" #: src/components/items/ActionDropdown.tsx:183 -#: src/tables/RowActions.tsx:33 +#: src/components/items/QRCode.tsx:193 +#: src/forms/PurchaseOrderForms.tsx:464 +msgid "Unlink Barcode" +msgstr "" + +#: src/components/items/ActionDropdown.tsx:185 +msgid "Unlink custom barcode" +msgstr "" + +#: src/components/items/ActionDropdown.tsx:236 +#: src/tables/RowActions.tsx:39 msgid "Edit" msgstr "" -#: src/components/items/ActionDropdown.tsx:184 +#: src/components/items/ActionDropdown.tsx:237 msgid "Edit item" msgstr "" -#: src/components/items/ActionDropdown.tsx:196 +#: src/components/items/ActionDropdown.tsx:249 msgid "Delete item" msgstr "" -#: src/components/items/ActionDropdown.tsx:204 -#: src/components/items/ActionDropdown.tsx:205 +#: src/components/items/ActionDropdown.tsx:257 +#: src/components/items/ActionDropdown.tsx:258 msgid "Hold" msgstr "" -#: src/components/items/ActionDropdown.tsx:227 -#: src/tables/RowActions.tsx:23 +#: src/components/items/ActionDropdown.tsx:280 +#: src/tables/RowActions.tsx:29 msgid "Duplicate" msgstr "" -#: src/components/items/ActionDropdown.tsx:228 +#: src/components/items/ActionDropdown.tsx:281 msgid "Duplicate item" msgstr "" +#: src/components/items/BarcodeInput.tsx:23 +msgid "Scan barcode data here using barcode scanner" +msgstr "" + +#: src/components/items/BarcodeInput.tsx:24 +#: src/tables/settings/BarcodeScanHistoryTable.tsx:65 +msgid "Barcode" +msgstr "" + +#: src/components/items/BarcodeInput.tsx:25 +msgid "Scan" +msgstr "" + #: src/components/items/DocTooltip.tsx:92 +#: src/components/items/GettingStartedCarousel.tsx:20 msgid "Read More" msgstr "" -#: src/components/items/ErrorItem.tsx:5 -#: src/tables/InvenTreeTable.tsx:487 +#: src/components/items/ErrorItem.tsx:8 +#: src/tables/InvenTreeTable.tsx:473 msgid "Unknown error" msgstr "" -#: src/components/items/ErrorItem.tsx:10 -msgid "An error occurred:" -msgstr "" +#: src/components/items/ErrorItem.tsx:13 +#~ msgid "An error occurred:" +#~ msgstr "An error occurred:" #: src/components/items/GettingStartedCarousel.tsx:27 -msgid "Read more" -msgstr "" +#~ msgid "Read more" +#~ msgstr "Read more" #: src/components/items/InfoItem.tsx:27 msgid "None" @@ -965,30 +1304,51 @@ msgstr "" msgid "This panel is a placeholder." msgstr "" -#: src/components/items/QRCode.tsx:87 +#: src/components/items/QRCode.tsx:89 msgid "Low (7%)" msgstr "" -#: src/components/items/QRCode.tsx:88 +#: src/components/items/QRCode.tsx:90 msgid "Medium (15%)" msgstr "" -#: src/components/items/QRCode.tsx:89 +#: src/components/items/QRCode.tsx:91 msgid "Quartile (25%)" msgstr "" -#: src/components/items/QRCode.tsx:90 +#: src/components/items/QRCode.tsx:92 msgid "High (30%)" msgstr "" -#: src/components/items/QRCode.tsx:107 -msgid "Barcode Data:" +#: src/components/items/QRCode.tsx:100 +msgid "Custom barcode" +msgstr "" + +#: src/components/items/QRCode.tsx:101 +msgid "A custom barcode is registered for this item. The shown code is not that custom barcode." msgstr "" #: src/components/items/QRCode.tsx:118 +msgid "Barcode Data:" +msgstr "" + +#: src/components/items/QRCode.tsx:129 msgid "Select Error Correction Level" msgstr "" +#: src/components/items/QRCode.tsx:171 +#: src/pages/part/PartDetail.tsx:239 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:187 +#: src/pages/sales/ReturnOrderDetail.tsx:157 +#: src/pages/sales/SalesOrderDetail.tsx:169 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:166 +msgid "Link" +msgstr "" + +#: src/components/items/QRCode.tsx:190 +msgid "This will remove the link to the associated barcode" +msgstr "" + #: src/components/modals/AboutInvenTreeModal.tsx:99 msgid "Version Information" msgstr "" @@ -1062,11 +1422,11 @@ msgstr "" msgid "Submit Bug Report" msgstr "" -#: src/components/modals/AboutInvenTreeModal.tsx:183 +#: src/components/modals/AboutInvenTreeModal.tsx:181 msgid "Copy version information" msgstr "" -#: src/components/modals/AboutInvenTreeModal.tsx:192 +#: src/components/modals/AboutInvenTreeModal.tsx:189 #: src/components/modals/ServerInfoModal.tsx:147 msgid "Dismiss" msgstr "" @@ -1091,61 +1451,20 @@ msgstr "" msgid "{key} Packages" msgstr "" -#: src/components/modals/QrCodeModal.tsx:72 +#: src/components/modals/QrCodeModal.tsx:24 msgid "Unknown response" msgstr "" -#: src/components/modals/QrCodeModal.tsx:102 -#: src/pages/Index/Scan.tsx:636 -msgid "Error while getting camera" -msgstr "" - -#: src/components/modals/QrCodeModal.tsx:125 -#: src/pages/Index/Scan.tsx:659 -msgid "Error while scanning" -msgstr "" - -#: src/components/modals/QrCodeModal.tsx:139 -#: src/pages/Index/Scan.tsx:673 -msgid "Error while stopping" -msgstr "" - -#: src/components/modals/QrCodeModal.tsx:154 -#: src/defaults/menuItems.tsx:21 -#: src/pages/Index/Scan.tsx:746 -msgid "Scanning" -msgstr "" - -#: src/components/modals/QrCodeModal.tsx:154 -#: src/pages/Index/Scan.tsx:746 -msgid "Not scanning" -msgstr "" - -#: src/components/modals/QrCodeModal.tsx:159 -#: src/pages/Index/Scan.tsx:752 -msgid "Select Camera" -msgstr "" - -#: src/components/modals/QrCodeModal.tsx:169 -#: src/pages/Index/Scan.tsx:737 -msgid "Start scanning" -msgstr "" - -#: src/components/modals/QrCodeModal.tsx:176 -#: src/pages/Index/Scan.tsx:729 -msgid "Stop scanning" -msgstr "" - -#: src/components/modals/QrCodeModal.tsx:181 +#: src/components/modals/QrCodeModal.tsx:39 msgid "No scans yet!" msgstr "" -#: src/components/modals/QrCodeModal.tsx:201 +#: src/components/modals/QrCodeModal.tsx:57 msgid "Close modal" msgstr "" #: src/components/modals/ServerInfoModal.tsx:26 -#: src/pages/Index/Settings/SystemSettings.tsx:38 +#: src/pages/Index/Settings/SystemSettings.tsx:37 msgid "Server" msgstr "" @@ -1206,6 +1525,7 @@ msgid "Background Worker" msgstr "" #: src/components/modals/ServerInfoModal.tsx:101 +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:29 msgid "Background worker not running" msgstr "" @@ -1218,8 +1538,8 @@ msgid "Email settings not configured" msgstr "" #: src/components/modals/ServerInfoModal.tsx:121 -#: src/tables/plugin/PluginListTable.tsx:144 -#: src/tables/plugin/PluginListTable.tsx:294 +#: src/components/plugins/PluginDrawer.tsx:89 +#: src/tables/plugin/PluginListTable.tsx:116 msgid "Version" msgstr "" @@ -1227,7 +1547,7 @@ msgstr "" msgid "Server Version" msgstr "" -#: src/components/nav/Layout.tsx:73 +#: src/components/nav/Layout.tsx:80 msgid "Nothing found..." msgstr "" @@ -1237,18 +1557,26 @@ msgstr "" #~ msgstr "Profile" #: src/components/nav/MainMenu.tsx:52 +#: src/components/nav/NavigationDrawer.tsx:178 #: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:28 msgid "Settings" msgstr "" #: src/components/nav/MainMenu.tsx:59 -#: src/defaults/menuItems.tsx:15 -msgid "Account settings" +#: src/pages/Index/Settings/UserSettings.tsx:152 +msgid "Account Settings" msgstr "" +#: src/components/nav/MainMenu.tsx:59 +#: src/defaults/menuItems.tsx:15 +#~ msgid "Account settings" +#~ msgstr "Account settings" + #: src/components/nav/MainMenu.tsx:67 -#: src/defaults/menuItems.tsx:58 -#: src/pages/Index/Settings/SystemSettings.tsx:315 +#: src/components/nav/NavigationDrawer.tsx:141 +#: src/components/nav/SettingsHeader.tsx:49 +#: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:37 +#: src/pages/Index/Settings/SystemSettings.tsx:310 msgid "System Settings" msgstr "" @@ -1260,14 +1588,11 @@ msgstr "" #~ msgid "Switch to pseudo language" #~ msgstr "Switch to pseudo language" -#: src/components/nav/MainMenu.tsx:77 -msgid "Change Color Mode" -msgstr "" - #: src/components/nav/MainMenu.tsx:86 -#: src/defaults/actions.tsx:71 -#: src/defaults/menuItems.tsx:63 -#: src/pages/Index/Settings/AdminCenter/Index.tsx:221 +#: src/components/nav/NavigationDrawer.tsx:148 +#: src/components/nav/SettingsHeader.tsx:50 +#: src/defaults/actions.tsx:63 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:251 msgid "Admin Center" msgstr "" @@ -1275,458 +1600,732 @@ msgstr "" msgid "Logout" msgstr "" -#: src/components/nav/NavHoverMenu.tsx:65 -#: src/defaults/actions.tsx:60 -msgid "Open Navigation" -msgstr "" - #: src/components/nav/NavHoverMenu.tsx:84 -msgid "View all" -msgstr "" +#~ msgid "View all" +#~ msgstr "View all" #: src/components/nav/NavHoverMenu.tsx:100 #: src/components/nav/NavHoverMenu.tsx:110 -msgid "Get started" -msgstr "" +#~ msgid "Get started" +#~ msgstr "Get started" #: src/components/nav/NavHoverMenu.tsx:103 -msgid "Overview over high-level objects, functions and possible usecases." -msgstr "" - -#: src/components/nav/NavigationDrawer.tsx:57 -msgid "Navigation" -msgstr "" +#~ msgid "Overview over high-level objects, functions and possible usecases." +#~ msgstr "Overview over high-level objects, functions and possible usecases." #: src/components/nav/NavigationDrawer.tsx:60 -msgid "Pages" +#~ msgid "Pages" +#~ msgstr "Pages" + +#: src/components/nav/NavigationDrawer.tsx:77 +#: src/components/render/ModelType.tsx:31 +#: src/defaults/links.tsx:10 +#: src/pages/Index/Settings/SystemSettings.tsx:172 +#: src/pages/part/CategoryDetail.tsx:125 +#: src/pages/part/CategoryDetail.tsx:249 +#: src/pages/part/CategoryDetail.tsx:279 +#: src/pages/part/PartDetail.tsx:856 +msgid "Parts" msgstr "" -#: src/components/nav/NavigationDrawer.tsx:65 -#: src/pages/Index/Settings/AdminCenter/Index.tsx:176 -#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:41 -msgid "Plugins" +#: src/components/nav/NavigationDrawer.tsx:84 +#: src/components/render/Part.tsx:30 +#: src/defaults/links.tsx:11 +#: src/pages/Index/Settings/SystemSettings.tsx:205 +#: src/pages/part/PartDetail.tsx:593 +#: src/pages/stock/LocationDetail.tsx:352 +#: src/pages/stock/StockDetail.tsx:528 +#: src/tables/stock/StockItemTable.tsx:69 +msgid "Stock" msgstr "" -#: src/components/nav/NavigationDrawer.tsx:75 -#: src/defaults/actions.tsx:32 -msgid "Documentation" +#: src/components/nav/NavigationDrawer.tsx:91 +#: src/defaults/links.tsx:13 +#: src/pages/build/BuildDetail.tsx:530 +#: src/pages/build/BuildIndex.tsx:36 +msgid "Manufacturing" msgstr "" -#: src/components/nav/NavigationDrawer.tsx:78 -msgid "About" +#: src/components/nav/NavigationDrawer.tsx:98 +#: src/defaults/links.tsx:18 +#: src/pages/company/ManufacturerDetail.tsx:9 +#: src/pages/company/ManufacturerPartDetail.tsx:258 +#: src/pages/company/SupplierDetail.tsx:9 +#: src/pages/company/SupplierPartDetail.tsx:336 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:480 +#: src/pages/purchasing/PurchasingIndex.tsx:60 +msgid "Purchasing" msgstr "" -#: src/components/nav/NotificationDrawer.tsx:92 -#: src/pages/Index/Settings/SystemSettings.tsx:109 -#: src/pages/Index/Settings/UserSettings.tsx:126 +#: src/components/nav/NavigationDrawer.tsx:105 +#: src/defaults/links.tsx:22 +#: src/pages/company/CustomerDetail.tsx:9 +#: src/pages/sales/ReturnOrderDetail.tsx:469 +#: src/pages/sales/SalesIndex.tsx:53 +#: src/pages/sales/SalesOrderDetail.tsx:520 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:343 +msgid "Sales" +msgstr "" + +#: src/components/nav/NavigationDrawer.tsx:129 +#: src/components/nav/NotificationDrawer.tsx:178 +#: src/pages/Index/Settings/SystemSettings.tsx:110 +#: src/pages/Index/Settings/UserSettings.tsx:127 #: src/pages/Notifications.tsx:65 #: src/pages/Notifications.tsx:151 msgid "Notifications" msgstr "" -#: src/components/nav/NotificationDrawer.tsx:94 +#: src/components/nav/NavigationDrawer.tsx:135 +#: src/components/nav/SettingsHeader.tsx:48 +msgid "User Settings" +msgstr "" + +#: src/components/nav/NavigationDrawer.tsx:173 +msgid "Navigation" +msgstr "" + +#: src/components/nav/NavigationDrawer.tsx:183 +#: src/forms/PurchaseOrderForms.tsx:689 +#: src/forms/StockForms.tsx:614 +#: src/forms/StockForms.tsx:651 +#: src/forms/StockForms.tsx:677 +#: src/forms/StockForms.tsx:705 +#: src/forms/StockForms.tsx:736 +#: src/forms/StockForms.tsx:771 +#: src/forms/StockForms.tsx:813 +#: src/forms/StockForms.tsx:851 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:413 +#: src/tables/RowActions.tsx:129 +#: src/tables/build/BuildLineTable.tsx:101 +msgid "Actions" +msgstr "" + +#: src/components/nav/NavigationDrawer.tsx:191 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:205 +#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:44 +msgid "Plugins" +msgstr "" + +#: src/components/nav/NavigationDrawer.tsx:204 +#: src/defaults/actions.tsx:24 +msgid "Documentation" +msgstr "" + +#: src/components/nav/NavigationDrawer.tsx:210 +msgid "About" +msgstr "" + +#: src/components/nav/NotificationDrawer.tsx:180 msgid "Mark all as read" msgstr "" -#: src/components/nav/NotificationDrawer.tsx:104 +#: src/components/nav/NotificationDrawer.tsx:190 msgid "View all notifications" msgstr "" -#: src/components/nav/NotificationDrawer.tsx:123 +#: src/components/nav/NotificationDrawer.tsx:210 msgid "You have no unread notifications." msgstr "" -#: src/components/nav/NotificationDrawer.tsx:139 -#: src/components/nav/NotificationDrawer.tsx:145 -#: src/tables/notifications/NotificationsTable.tsx:36 -msgid "Notification" -msgstr "" - -#: src/components/nav/NotificationDrawer.tsx:168 -#: src/pages/Notifications.tsx:73 -msgid "Mark as read" -msgstr "" - -#: src/components/nav/SearchDrawer.tsx:78 +#: src/components/nav/SearchDrawer.tsx:85 msgid "results" msgstr "" -#: src/components/nav/SearchDrawer.tsx:370 +#: src/components/nav/SearchDrawer.tsx:380 msgid "Enter search text" msgstr "" -#: src/components/nav/SearchDrawer.tsx:397 +#: src/components/nav/SearchDrawer.tsx:391 +msgid "Refresh search results" +msgstr "" + +#: src/components/nav/SearchDrawer.tsx:402 +#: src/components/nav/SearchDrawer.tsx:409 msgid "Search Options" msgstr "" -#: src/components/nav/SearchDrawer.tsx:400 +#: src/components/nav/SearchDrawer.tsx:412 msgid "Regex search" msgstr "" -#: src/components/nav/SearchDrawer.tsx:410 +#: src/components/nav/SearchDrawer.tsx:421 msgid "Whole word search" msgstr "" -#: src/components/nav/SearchDrawer.tsx:451 +#: src/components/nav/SearchDrawer.tsx:461 msgid "An error occurred during search query" msgstr "" #: src/components/nav/SearchDrawer.tsx:462 -msgid "No results" +#~ msgid "No results" +#~ msgstr "No results" + +#: src/components/nav/SearchDrawer.tsx:472 +#: src/tables/part/PartTestTemplateTable.tsx:76 +msgid "No Results" msgstr "" -#: src/components/nav/SearchDrawer.tsx:465 +#: src/components/nav/SearchDrawer.tsx:475 msgid "No results available for search query" msgstr "" -#: src/components/render/Instance.tsx:217 +#: src/components/panels/AttachmentPanel.tsx:18 +msgid "Attachments" +msgstr "" + +#: src/components/panels/NotesPanel.tsx:24 +#: src/tables/build/BuildOrderTestTable.tsx:143 +#: src/tables/stock/StockTrackingTable.tsx:204 +msgid "Notes" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:47 +msgid "Plugin Inactive" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:50 +msgid "Plugin is not active" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:60 +msgid "Plugin Information" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:74 +#: src/pages/build/BuildDetail.tsx:116 +#: src/pages/company/CompanyDetail.tsx:89 +#: src/pages/company/ManufacturerPartDetail.tsx:89 +#: src/pages/company/ManufacturerPartDetail.tsx:116 +#: src/pages/company/SupplierPartDetail.tsx:140 +#: src/pages/part/CategoryDetail.tsx:101 +#: src/pages/part/PartDetail.tsx:178 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:136 +#: src/pages/sales/ReturnOrderDetail.tsx:107 +#: src/pages/sales/SalesOrderDetail.tsx:116 +#: src/pages/stock/LocationDetail.tsx:103 +#: src/tables/ColumnRenderers.tsx:92 +#: src/tables/bom/UsedInTable.tsx:44 +#: src/tables/build/BuildAllocatedStockTable.tsx:83 +#: src/tables/build/BuildLineTable.tsx:329 +#: src/tables/machine/MachineTypeTable.tsx:74 +#: src/tables/machine/MachineTypeTable.tsx:129 +#: src/tables/machine/MachineTypeTable.tsx:240 +#: src/tables/machine/MachineTypeTable.tsx:344 +#: src/tables/part/RelatedPartTable.tsx:66 +#: src/tables/plugin/PluginListTable.tsx:99 +#: src/tables/sales/SalesOrderAllocationTable.tsx:87 +#: src/tables/sales/SalesOrderLineItemTable.tsx:75 +#: src/tables/stock/LocationTypesTable.tsx:74 +msgid "Description" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:79 +msgid "Author" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:84 +#: src/pages/part/PartSchedulingDetail.tsx:277 +#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:40 +#: src/pages/part/pricing/SaleHistoryPanel.tsx:38 +#: src/tables/ColumnRenderers.tsx:215 +#: src/tables/build/BuildOrderTestTable.tsx:151 +#: src/tables/settings/StocktakeReportTable.tsx:40 +msgid "Date" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:94 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:398 +#: src/pages/part/PartDetail.tsx:331 +#: src/tables/bom/UsedInTable.tsx:84 +#: src/tables/company/CompanyTable.tsx:62 +#: src/tables/company/CompanyTable.tsx:96 +#: src/tables/machine/MachineListTable.tsx:333 +#: src/tables/machine/MachineListTable.tsx:605 +#: src/tables/part/ParametricPartTable.tsx:223 +#: src/tables/part/PartTable.tsx:178 +#: src/tables/part/PartVariantTable.tsx:15 +#: src/tables/plugin/PluginListTable.tsx:94 +#: src/tables/plugin/PluginListTable.tsx:401 +#: src/tables/purchasing/SupplierPartTable.tsx:100 +#: src/tables/purchasing/SupplierPartTable.tsx:190 +#: src/tables/settings/UserTable.tsx:283 +#: src/tables/stock/StockItemTable.tsx:293 +msgid "Active" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:106 +msgid "Package Name" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:112 +msgid "Installation Path" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:117 +#: src/tables/machine/MachineTypeTable.tsx:152 +#: src/tables/machine/MachineTypeTable.tsx:276 +#: src/tables/plugin/PluginListTable.tsx:406 +msgid "Builtin" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:122 +msgid "Package" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:134 +#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:53 +msgid "Plugin Settings" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:146 +#: src/components/render/ModelType.tsx:276 +msgid "Plugin Configuration" +msgstr "" + +#: src/components/plugins/PluginPanel.tsx:87 +#~ msgid "Error occurred while rendering plugin content" +#~ msgstr "Error occurred while rendering plugin content" + +#: src/components/plugins/PluginPanel.tsx:91 +#~ msgid "Plugin did not provide panel rendering function" +#~ msgstr "Plugin did not provide panel rendering function" + +#: src/components/plugins/PluginPanel.tsx:103 +#~ msgid "No content provided for this plugin" +#~ msgstr "No content provided for this plugin" + +#: src/components/plugins/PluginPanel.tsx:116 +#: src/components/plugins/PluginSettingsPanel.tsx:76 +#~ msgid "Error Loading Plugin" +#~ msgstr "Error Loading Plugin" + +#: src/components/plugins/PluginSettingsPanel.tsx:51 +#~ msgid "Error occurred while rendering plugin settings" +#~ msgstr "Error occurred while rendering plugin settings" + +#: src/components/plugins/PluginSettingsPanel.tsx:55 +#~ msgid "Plugin did not provide settings rendering function" +#~ msgstr "Plugin did not provide settings rendering function" + +#: src/components/plugins/PluginUIFeature.tsx:100 +msgid "Error occurred while rendering the template editor." +msgstr "" + +#: src/components/plugins/PluginUIFeature.tsx:111 +msgid "Error Loading Plugin Editor" +msgstr "" + +#: src/components/plugins/PluginUIFeature.tsx:147 +msgid "Error occurred while rendering the template preview." +msgstr "" + +#: src/components/plugins/PluginUIFeature.tsx:158 +msgid "Error Loading Plugin Preview" +msgstr "" + +#: src/components/plugins/RemoteComponent.tsx:70 +msgid "Invalid source or function name" +msgstr "" + +#: src/components/plugins/RemoteComponent.tsx:91 +msgid "Error Loading Content" +msgstr "" + +#: src/components/plugins/RemoteComponent.tsx:95 +msgid "Error occurred while loading plugin content" +msgstr "" + +#: src/components/render/Instance.tsx:224 msgid "Unknown model: {model}" msgstr "" -#: src/components/render/ModelType.tsx:22 -#: src/forms/BuildForms.tsx:213 -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/forms/StockForms.tsx:499 -#: src/forms/StockForms.tsx:533 -#: src/forms/StockForms.tsx:562 -#: src/forms/StockForms.tsx:590 -#: src/forms/StockForms.tsx:621 -#: src/forms/StockForms.tsx:656 -#: src/forms/StockForms.tsx:698 -#: src/forms/StockForms.tsx:734 -#: src/pages/build/BuildDetail.tsx:95 -#: src/pages/part/PartDetail.tsx:1073 -#: src/tables/build/BuildAllocatedStockTable.tsx:82 +#: src/components/render/ModelType.tsx:30 +#: src/forms/BuildForms.tsx:269 +#: src/forms/BuildForms.tsx:337 +#: src/forms/BuildForms.tsx:385 +#: src/forms/BuildForms.tsx:515 +#: src/forms/PurchaseOrderForms.tsx:689 +#: src/forms/ReturnOrderForms.tsx:190 +#: src/forms/SalesOrderForms.tsx:248 +#: src/forms/StockForms.tsx:261 +#: src/forms/StockForms.tsx:614 +#: src/forms/StockForms.tsx:651 +#: src/forms/StockForms.tsx:677 +#: src/forms/StockForms.tsx:705 +#: src/forms/StockForms.tsx:736 +#: src/forms/StockForms.tsx:771 +#: src/forms/StockForms.tsx:813 +#: src/forms/StockForms.tsx:851 +#: src/pages/build/BuildDetail.tsx:90 +#: src/pages/part/PartDetail.tsx:1094 +#: src/tables/build/BuildAllocatedStockTable.tsx:95 +#: src/tables/build/BuildLineTable.tsx:72 #: src/tables/part/PartTable.tsx:28 -#: src/tables/part/RelatedPartTable.tsx:45 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:88 -#: src/tables/sales/SalesOrderAllocationTable.tsx:68 -#: src/tables/stock/StockTrackingTable.tsx:74 +#: src/tables/part/RelatedPartTable.tsx:47 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:130 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:100 +#: src/tables/sales/SalesOrderAllocationTable.tsx:99 +#: src/tables/stock/StockTrackingTable.tsx:78 msgid "Part" msgstr "" -#: src/components/render/ModelType.tsx:23 -#: src/defaults/links.tsx:29 -#: src/defaults/menuItems.tsx:33 -#: src/pages/Index/Settings/SystemSettings.tsx:173 -#: src/pages/part/CategoryDetail.tsx:119 -#: src/pages/part/CategoryDetail.tsx:244 -#: src/pages/part/CategoryDetail.tsx:274 -#: src/pages/part/PartDetail.tsx:827 -msgid "Parts" -msgstr "" - -#: src/components/render/ModelType.tsx:31 +#: src/components/render/ModelType.tsx:40 msgid "Part Parameter Template" msgstr "" -#: src/components/render/ModelType.tsx:32 +#: src/components/render/ModelType.tsx:41 msgid "Part Parameter Templates" msgstr "" -#: src/components/render/ModelType.tsx:38 +#: src/components/render/ModelType.tsx:48 msgid "Part Test Template" msgstr "" -#: src/components/render/ModelType.tsx:39 +#: src/components/render/ModelType.tsx:49 msgid "Part Test Templates" msgstr "" -#: src/components/render/ModelType.tsx:45 -#: src/pages/company/SupplierPartDetail.tsx:203 -#: src/pages/company/SupplierPartDetail.tsx:375 -#: src/pages/stock/StockDetail.tsx:173 -#: src/tables/build/BuildAllocatedStockTable.tsx:131 +#: src/components/render/ModelType.tsx:56 +#: src/pages/company/SupplierPartDetail.tsx:364 +#: src/pages/stock/StockDetail.tsx:194 +#: src/tables/build/BuildAllocatedStockTable.tsx:152 #: src/tables/part/PartPurchaseOrdersTable.tsx:49 -#: src/tables/purchasing/SupplierPartTable.tsx:68 +#: src/tables/purchasing/SupplierPartTable.tsx:70 +#: src/tables/stock/StockItemTable.tsx:229 msgid "Supplier Part" msgstr "" -#: src/components/render/ModelType.tsx:46 +#: src/components/render/ModelType.tsx:57 msgid "Supplier Parts" msgstr "" -#: src/components/render/ModelType.tsx:54 -#: src/pages/company/ManufacturerPartDetail.tsx:132 +#: src/components/render/ModelType.tsx:66 #: src/tables/part/PartPurchaseOrdersTable.tsx:55 +#: src/tables/stock/StockItemTable.tsx:234 msgid "Manufacturer Part" msgstr "" -#: src/components/render/ModelType.tsx:55 +#: src/components/render/ModelType.tsx:67 msgid "Manufacturer Parts" msgstr "" -#: src/components/render/ModelType.tsx:63 -#: src/pages/part/CategoryDetail.tsx:305 +#: src/components/render/ModelType.tsx:76 +#: src/pages/part/CategoryDetail.tsx:310 msgid "Part Category" msgstr "" -#: src/components/render/ModelType.tsx:64 -#: src/pages/part/CategoryDetail.tsx:258 -#: src/pages/part/CategoryDetail.tsx:296 -#: src/pages/part/PartDetail.tsx:1063 +#: src/components/render/ModelType.tsx:77 +#: src/pages/part/CategoryDetail.tsx:263 +#: src/pages/part/CategoryDetail.tsx:301 +#: src/pages/part/PartDetail.tsx:1084 msgid "Part Categories" msgstr "" -#: src/components/render/ModelType.tsx:72 -#: src/pages/stock/StockDetail.tsx:624 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:94 -#: src/tables/stock/StockTrackingTable.tsx:45 +#: src/components/render/ModelType.tsx:86 +#: src/forms/BuildForms.tsx:337 +#: src/forms/BuildForms.tsx:385 +#: src/forms/BuildForms.tsx:515 +#: src/forms/SalesOrderForms.tsx:248 +#: src/pages/stock/StockDetail.tsx:839 +#: src/tables/stock/StockTrackingTable.tsx:49 msgid "Stock Item" msgstr "" -#: src/components/render/ModelType.tsx:73 +#: src/components/render/ModelType.tsx:87 #: src/pages/company/CompanyDetail.tsx:203 -#: src/pages/stock/LocationDetail.tsx:128 -#: src/pages/stock/LocationDetail.tsx:181 -#: src/pages/stock/LocationDetail.tsx:395 +#: src/pages/part/PartStocktakeDetail.tsx:113 +#: src/pages/stock/LocationDetail.tsx:122 +#: src/pages/stock/LocationDetail.tsx:175 +#: src/pages/stock/LocationDetail.tsx:380 msgid "Stock Items" msgstr "" -#: src/components/render/ModelType.tsx:81 +#: src/components/render/ModelType.tsx:96 msgid "Stock Location" msgstr "" -#: src/components/render/ModelType.tsx:82 -#: src/pages/stock/LocationDetail.tsx:195 -#: src/pages/stock/LocationDetail.tsx:387 -#: src/pages/stock/StockDetail.tsx:616 +#: src/components/render/ModelType.tsx:97 +#: src/pages/stock/LocationDetail.tsx:189 +#: src/pages/stock/LocationDetail.tsx:372 +#: src/pages/stock/StockDetail.tsx:831 msgid "Stock Locations" msgstr "" -#: src/components/render/ModelType.tsx:90 +#: src/components/render/ModelType.tsx:106 msgid "Stock Location Type" msgstr "" -#: src/components/render/ModelType.tsx:91 +#: src/components/render/ModelType.tsx:107 msgid "Stock Location Types" msgstr "" -#: src/components/render/ModelType.tsx:95 +#: src/components/render/ModelType.tsx:112 +#: src/pages/part/PartDetail.tsx:712 msgid "Stock History" msgstr "" -#: src/components/render/ModelType.tsx:96 +#: src/components/render/ModelType.tsx:113 msgid "Stock Histories" msgstr "" -#: src/components/render/ModelType.tsx:100 -#: src/defaults/links.tsx:31 -#: src/defaults/menuItems.tsx:43 +#: src/components/render/ModelType.tsx:118 msgid "Build" msgstr "" -#: src/components/render/ModelType.tsx:101 +#: src/components/render/ModelType.tsx:119 msgid "Builds" msgstr "" -#: src/components/render/ModelType.tsx:109 +#: src/components/render/ModelType.tsx:128 msgid "Build Line" msgstr "" -#: src/components/render/ModelType.tsx:110 +#: src/components/render/ModelType.tsx:129 msgid "Build Lines" msgstr "" -#: src/components/render/ModelType.tsx:117 +#: src/components/render/ModelType.tsx:137 msgid "Build Item" msgstr "" -#: src/components/render/ModelType.tsx:118 +#: src/components/render/ModelType.tsx:138 msgid "Build Items" msgstr "" -#: src/components/render/ModelType.tsx:122 -#: src/pages/company/CompanyDetail.tsx:339 +#: src/components/render/ModelType.tsx:143 +#: src/pages/company/CompanyDetail.tsx:321 msgid "Company" msgstr "" -#: src/components/render/ModelType.tsx:123 +#: src/components/render/ModelType.tsx:144 msgid "Companies" msgstr "" -#: src/components/render/ModelType.tsx:131 +#: src/components/render/ModelType.tsx:153 +#: src/pages/build/BuildDetail.tsx:195 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:204 +#: src/pages/sales/ReturnOrderDetail.tsx:174 +#: src/pages/sales/SalesOrderDetail.tsx:186 #: src/tables/TableHoverCard.tsx:81 -#: src/tables/build/BuildOrderTable.tsx:140 -#: src/tables/purchasing/PurchaseOrderTable.tsx:64 -#: src/tables/sales/ReturnOrderTable.tsx:55 -#: src/tables/sales/SalesOrderTable.tsx:62 +#: src/tables/build/BuildOrderTable.tsx:135 +#: src/tables/purchasing/PurchaseOrderTable.tsx:69 +#: src/tables/sales/ReturnOrderTable.tsx:67 +#: src/tables/sales/SalesOrderTable.tsx:67 msgid "Project Code" msgstr "" -#: src/components/render/ModelType.tsx:132 -#: src/pages/Index/Settings/AdminCenter/Index.tsx:128 +#: src/components/render/ModelType.tsx:154 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:145 msgid "Project Codes" msgstr "" -#: src/components/render/ModelType.tsx:138 +#: src/components/render/ModelType.tsx:161 #: src/pages/part/pricing/PurchaseHistoryPanel.tsx:32 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:480 -#: src/tables/part/PartPurchaseOrdersTable.tsx:32 -#: src/tables/stock/StockTrackingTable.tsx:107 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:477 +#: src/pages/stock/StockDetail.tsx:253 +#: src/tables/part/PartPurchaseOrdersTable.tsx:31 +#: src/tables/stock/StockItemTable.tsx:222 +#: src/tables/stock/StockTrackingTable.tsx:111 msgid "Purchase Order" msgstr "" -#: src/components/render/ModelType.tsx:139 -#: src/pages/Index/Settings/SystemSettings.tsx:255 +#: src/components/render/ModelType.tsx:162 +#: src/pages/Index/Settings/SystemSettings.tsx:249 #: src/pages/company/CompanyDetail.tsx:196 -#: src/pages/company/SupplierPartDetail.tsx:237 -#: src/pages/part/PartDetail.tsx:662 +#: src/pages/company/SupplierPartDetail.tsx:249 +#: src/pages/part/PartDetail.tsx:683 #: src/pages/purchasing/PurchasingIndex.tsx:25 msgid "Purchase Orders" msgstr "" -#: src/components/render/ModelType.tsx:147 +#: src/components/render/ModelType.tsx:171 msgid "Purchase Order Line" msgstr "" -#: src/components/render/ModelType.tsx:148 +#: src/components/render/ModelType.tsx:172 msgid "Purchase Order Lines" msgstr "" -#: src/components/render/ModelType.tsx:152 -#: src/pages/build/BuildDetail.tsx:153 -#: src/pages/sales/SalesOrderDetail.tsx:520 -#: src/pages/stock/StockDetail.tsx:221 -#: src/tables/sales/SalesOrderAllocationTable.tsx:50 -#: src/tables/stock/StockTrackingTable.tsx:118 +#: src/components/render/ModelType.tsx:177 +#: src/pages/build/BuildDetail.tsx:148 +#: src/pages/part/pricing/SaleHistoryPanel.tsx:24 +#: src/pages/sales/SalesOrderDetail.tsx:515 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:92 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:341 +#: src/pages/stock/StockDetail.tsx:262 +#: src/tables/sales/SalesOrderAllocationTable.tsx:80 +#: src/tables/stock/StockTrackingTable.tsx:122 msgid "Sales Order" msgstr "" -#: src/components/render/ModelType.tsx:153 -#: src/pages/Index/Settings/SystemSettings.tsx:270 +#: src/components/render/ModelType.tsx:178 +#: src/pages/Index/Settings/SystemSettings.tsx:264 #: src/pages/company/CompanyDetail.tsx:216 -#: src/pages/part/PartDetail.tsx:669 +#: src/pages/part/PartDetail.tsx:695 #: src/pages/sales/SalesIndex.tsx:26 msgid "Sales Orders" msgstr "" -#: src/components/render/ModelType.tsx:161 +#: src/components/render/ModelType.tsx:187 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:340 msgid "Sales Order Shipment" msgstr "" -#: src/components/render/ModelType.tsx:162 +#: src/components/render/ModelType.tsx:188 msgid "Sales Order Shipments" msgstr "" -#: src/components/render/ModelType.tsx:168 -#: src/pages/sales/ReturnOrderDetail.tsx:469 -#: src/tables/stock/StockTrackingTable.tsx:129 +#: src/components/render/ModelType.tsx:195 +#: src/pages/sales/ReturnOrderDetail.tsx:464 +#: src/tables/stock/StockTrackingTable.tsx:133 msgid "Return Order" msgstr "" -#: src/components/render/ModelType.tsx:169 -#: src/pages/Index/Settings/SystemSettings.tsx:286 +#: src/components/render/ModelType.tsx:196 +#: src/pages/Index/Settings/SystemSettings.tsx:280 #: src/pages/company/CompanyDetail.tsx:223 +#: src/pages/part/PartDetail.tsx:702 #: src/pages/sales/SalesIndex.tsx:32 msgid "Return Orders" msgstr "" -#: src/components/render/ModelType.tsx:177 +#: src/components/render/ModelType.tsx:205 msgid "Return Order Line Item" msgstr "" -#: src/components/render/ModelType.tsx:178 +#: src/components/render/ModelType.tsx:206 msgid "Return Order Line Items" msgstr "" -#: src/components/render/ModelType.tsx:182 -#: src/tables/company/AddressTable.tsx:47 +#: src/components/render/ModelType.tsx:211 +#: src/tables/company/AddressTable.tsx:48 msgid "Address" msgstr "" -#: src/components/render/ModelType.tsx:183 -#: src/pages/company/CompanyDetail.tsx:253 +#: src/components/render/ModelType.tsx:212 +#: src/pages/company/CompanyDetail.tsx:255 msgid "Addresses" msgstr "" -#: src/components/render/ModelType.tsx:189 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:195 -#: src/pages/sales/ReturnOrderDetail.tsx:174 -#: src/pages/sales/SalesOrderDetail.tsx:183 +#: src/components/render/ModelType.tsx:219 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:196 +#: src/pages/sales/ReturnOrderDetail.tsx:166 +#: src/pages/sales/SalesOrderDetail.tsx:178 msgid "Contact" msgstr "" -#: src/components/render/ModelType.tsx:190 -#: src/pages/company/CompanyDetail.tsx:247 +#: src/components/render/ModelType.tsx:220 +#: src/pages/company/CompanyDetail.tsx:249 msgid "Contacts" msgstr "" -#: src/components/render/ModelType.tsx:196 +#: src/components/render/ModelType.tsx:227 msgid "Owner" msgstr "" -#: src/components/render/ModelType.tsx:197 +#: src/components/render/ModelType.tsx:228 msgid "Owners" msgstr "" -#: src/components/render/ModelType.tsx:203 -#: src/tables/settings/ImportSessionTable.tsx:121 -#: src/tables/stock/StockItemTestResultTable.tsx:198 -#: src/tables/stock/StockTrackingTable.tsx:195 +#: src/components/render/ModelType.tsx:234 +#~ msgid "Purchase Order Line Item" +#~ msgstr "Purchase Order Line Item" + +#: src/components/render/ModelType.tsx:235 +#: src/tables/settings/BarcodeScanHistoryTable.tsx:80 +#: src/tables/settings/BarcodeScanHistoryTable.tsx:211 +#: src/tables/settings/ImportSessionTable.tsx:120 +#: src/tables/settings/StocktakeReportTable.tsx:44 +#: src/tables/stock/StockItemTestResultTable.tsx:204 +#: src/tables/stock/StockTrackingTable.tsx:181 +#: src/tables/stock/StockTrackingTable.tsx:210 msgid "User" msgstr "" -#: src/components/render/ModelType.tsx:204 -#: src/pages/Index/Settings/AdminCenter/Index.tsx:98 +#: src/components/render/ModelType.tsx:236 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:109 #: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:13 msgid "Users" msgstr "" -#: src/components/render/ModelType.tsx:210 +#: src/components/render/ModelType.tsx:243 msgid "Group" msgstr "" -#: src/components/render/ModelType.tsx:211 +#: src/components/render/ModelType.tsx:244 #: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:20 -#: src/tables/settings/UserTable.tsx:138 -#: src/tables/settings/UserTable.tsx:201 +#: src/tables/settings/UserTable.tsx:137 +#: src/tables/settings/UserTable.tsx:200 msgid "Groups" msgstr "" -#: src/components/render/ModelType.tsx:218 +#: src/components/render/ModelType.tsx:252 msgid "Import Session" msgstr "" -#: src/components/render/ModelType.tsx:219 +#: src/components/render/ModelType.tsx:253 msgid "Import Sessions" msgstr "" -#: src/components/render/ModelType.tsx:225 +#: src/components/render/ModelType.tsx:260 msgid "Label Template" msgstr "" -#: src/components/render/ModelType.tsx:226 -#: src/pages/Index/Settings/AdminCenter/Index.tsx:158 +#: src/components/render/ModelType.tsx:261 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:187 msgid "Label Templates" msgstr "" -#: src/components/render/ModelType.tsx:232 +#: src/components/render/ModelType.tsx:264 +#~ msgid "Unknown Model" +#~ msgstr "Unknown Model" + +#: src/components/render/ModelType.tsx:268 msgid "Report Template" msgstr "" -#: src/components/render/ModelType.tsx:233 -#: src/pages/Index/Settings/AdminCenter/Index.tsx:164 +#: src/components/render/ModelType.tsx:269 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:193 msgid "Report Templates" msgstr "" -#: src/components/render/ModelType.tsx:239 -msgid "Plugin Configuration" -msgstr "" - -#: src/components/render/ModelType.tsx:240 +#: src/components/render/ModelType.tsx:277 msgid "Plugin Configurations" msgstr "" +#: src/components/render/ModelType.tsx:284 +msgid "Content Type" +msgstr "" + +#: src/components/render/ModelType.tsx:285 +msgid "Content Types" +msgstr "" + +#: src/components/render/ModelType.tsx:291 +#: src/tables/machine/MachineListTable.tsx:351 +#: src/tables/machine/MachineTypeTable.tsx:282 +msgid "Errors" +msgstr "" + +#: src/components/render/ModelType.tsx:307 +#~ msgid "Purchase Order Line Items" +#~ msgstr "Purchase Order Line Items" + +#: src/components/render/ModelType.tsx:337 +#~ msgid "Unknown Models" +#~ msgstr "Unknown Models" + #: src/components/render/Order.tsx:121 +#: src/tables/sales/SalesOrderAllocationTable.tsx:136 msgid "Shipment" msgstr "" #: src/components/render/Part.tsx:25 #: src/components/render/Plugin.tsx:17 -#: src/pages/company/CompanyDetail.tsx:325 -#: src/pages/company/SupplierPartDetail.tsx:360 -#: src/pages/part/PartDetail.tsx:879 +#: src/pages/company/CompanyDetail.tsx:307 +#: src/pages/company/SupplierPartDetail.tsx:349 +#: src/pages/part/PartDetail.tsx:911 msgid "Inactive" msgstr "" @@ -1736,39 +2335,38 @@ msgstr "" msgid "No stock" msgstr "" -#: src/components/render/Part.tsx:30 -#: src/defaults/links.tsx:30 -#: src/defaults/menuItems.tsx:38 -#: src/pages/Index/Settings/SystemSettings.tsx:206 -#: src/pages/part/PartDetail.tsx:543 -#: src/pages/stock/LocationDetail.tsx:367 -#: src/pages/stock/StockDetail.tsx:411 -#: src/tables/stock/StockItemTable.tsx:68 -msgid "Stock" -msgstr "" - -#: src/components/render/Stock.tsx:60 -#: src/pages/stock/StockDetail.tsx:150 -#: src/pages/stock/StockDetail.tsx:581 -#: src/tables/build/BuildAllocatedStockTable.tsx:102 -#: src/tables/sales/SalesOrderAllocationTable.tsx:80 +#: src/components/render/Stock.tsx:61 +#: src/forms/ReturnOrderForms.tsx:190 +#: src/pages/stock/StockDetail.tsx:166 +#: src/pages/stock/StockDetail.tsx:771 +#: src/tables/build/BuildAllocatedStockTable.tsx:123 +#: src/tables/build/BuildOutputTable.tsx:81 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:114 +#: src/tables/sales/SalesOrderAllocationTable.tsx:106 msgid "Serial Number" msgstr "" -#: src/components/render/Stock.tsx:62 -#: src/forms/BuildForms.tsx:218 -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/pages/part/pricing/BomPricingPanel.tsx:109 +#: src/components/render/Stock.tsx:63 +#: src/forms/BuildForms.tsx:206 +#: src/forms/BuildForms.tsx:515 +#: src/forms/PurchaseOrderForms.tsx:689 +#: src/forms/SalesOrderForms.tsx:248 +#: src/pages/part/PartSchedulingDetail.tsx:80 +#: src/pages/part/PartStocktakeDetail.tsx:60 +#: src/pages/part/PartStocktakeDetail.tsx:234 +#: src/pages/part/PartStocktakeDetail.tsx:252 +#: src/pages/part/pricing/BomPricingPanel.tsx:148 #: src/pages/part/pricing/PriceBreakPanel.tsx:89 -#: src/pages/part/pricing/PriceBreakPanel.tsx:171 -#: src/pages/stock/StockDetail.tsx:145 -#: src/pages/stock/StockDetail.tsx:587 -#: src/tables/build/BuildOrderTestTable.tsx:197 -#: src/tables/part/PartPurchaseOrdersTable.tsx:92 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:143 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:171 +#: src/pages/part/pricing/PriceBreakPanel.tsx:172 +#: src/pages/stock/StockDetail.tsx:161 +#: src/pages/stock/StockDetail.tsx:777 +#: src/tables/build/BuildLineTable.tsx:79 +#: src/tables/build/BuildOrderTestTable.tsx:198 +#: src/tables/part/PartPurchaseOrdersTable.tsx:93 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:146 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:177 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:77 -#: src/tables/stock/StockTrackingTable.tsx:59 +#: src/tables/stock/StockTrackingTable.tsx:63 msgid "Quantity" msgstr "" @@ -1842,10 +2440,6 @@ msgstr "" #~ msgid "Required Part" #~ msgstr "Required Part" -#: src/components/tables/build/BuildLineTable.tsx:152 -#~ msgid "Required Quantity" -#~ msgstr "Required Quantity" - #: src/components/tables/build/BuildOrderTable.tsx:52 #~ msgid "Progress" #~ msgstr "Progress" @@ -2126,14 +2720,6 @@ msgstr "" #~ msgid "user deleted" #~ msgstr "user deleted" -#: src/components/tables/settings/UserTable.tsx:168 -#~ msgid "First Name" -#~ msgstr "First Name" - -#: src/components/tables/settings/UserTable.tsx:173 -#~ msgid "Last Name" -#~ msgstr "Last Name" - #: src/components/tables/stock/StockItemTable.tsx:247 #~ msgid "Test Filter" #~ msgstr "Test Filter" @@ -2146,36 +2732,21 @@ msgstr "" #~ msgid "Stock location updated" #~ msgstr "Stock location updated" -#: src/components/widgets/DisplayWidget.tsx:11 -#: src/pages/Index/Settings/AccountSettings/DisplaySettingsPanel.tsx:17 -msgid "Display Settings" -msgstr "" - -#: src/components/widgets/DisplayWidget.tsx:15 -#: src/pages/Index/Settings/AccountSettings/DisplaySettingsPanel.tsx:23 -msgid "Color Mode" -msgstr "" - -#: src/components/widgets/DisplayWidget.tsx:21 -#: src/pages/Index/Settings/AccountSettings/DisplaySettingsPanel.tsx:33 -msgid "Language" -msgstr "" - #: src/components/widgets/FeedbackWidget.tsx:19 -msgid "Something is new: Platform UI" -msgstr "" +#~ msgid "Something is new: Platform UI" +#~ msgstr "Something is new: Platform UI" #: src/components/widgets/FeedbackWidget.tsx:21 -msgid "We are building a new UI with a modern stack. What you currently see is not fixed and will be redesigned but demonstrates the UI/UX possibilities we will have going forward." -msgstr "" +#~ msgid "We are building a new UI with a modern stack. What you currently see is not fixed and will be redesigned but demonstrates the UI/UX possibilities we will have going forward." +#~ msgstr "We are building a new UI with a modern stack. What you currently see is not fixed and will be redesigned but demonstrates the UI/UX possibilities we will have going forward." #: src/components/widgets/FeedbackWidget.tsx:32 -msgid "Provide Feedback" -msgstr "" +#~ msgid "Provide Feedback" +#~ msgstr "Provide Feedback" #: src/components/widgets/GetStartedWidget.tsx:11 -msgid "Getting started" -msgstr "" +#~ msgid "Getting started" +#~ msgstr "Getting started" #: src/components/widgets/MarkdownEditor.tsx:108 #~ msgid "Failed to upload image" @@ -2186,28 +2757,24 @@ msgstr "" #~ msgstr "Notes saved" #: src/components/widgets/WidgetLayout.tsx:166 -msgid "Layout" -msgstr "" +#~ msgid "Layout" +#~ msgstr "Layout" #: src/components/widgets/WidgetLayout.tsx:172 -msgid "Reset Layout" -msgstr "" +#~ msgid "Reset Layout" +#~ msgstr "Reset Layout" #: src/components/widgets/WidgetLayout.tsx:185 -msgid "Stop Edit" -msgstr "" - -#: src/components/widgets/WidgetLayout.tsx:185 -msgid "Edit Layout" -msgstr "" +#~ msgid "Stop Edit" +#~ msgstr "Stop Edit" #: src/components/widgets/WidgetLayout.tsx:191 -msgid "Appearance" -msgstr "" +#~ msgid "Appearance" +#~ msgstr "Appearance" #: src/components/widgets/WidgetLayout.tsx:203 -msgid "Show Boxes" -msgstr "" +#~ msgid "Show Boxes" +#~ msgstr "Show Boxes" #: src/contexts/LanguageContext.tsx:20 msgid "Arabic" @@ -2286,201 +2853,175 @@ msgid "Korean" msgstr "" #: src/contexts/LanguageContext.tsx:39 -msgid "Latvian" +msgid "Lithuanian" msgstr "" #: src/contexts/LanguageContext.tsx:40 -msgid "Dutch" +msgid "Latvian" msgstr "" #: src/contexts/LanguageContext.tsx:41 -msgid "Norwegian" +msgid "Dutch" msgstr "" #: src/contexts/LanguageContext.tsx:42 -msgid "Polish" +msgid "Norwegian" msgstr "" #: src/contexts/LanguageContext.tsx:43 -msgid "Portuguese" +msgid "Polish" msgstr "" #: src/contexts/LanguageContext.tsx:44 -msgid "Portuguese (Brazilian)" +msgid "Portuguese" msgstr "" #: src/contexts/LanguageContext.tsx:45 -msgid "Romanian" +msgid "Portuguese (Brazilian)" msgstr "" #: src/contexts/LanguageContext.tsx:46 -msgid "Russian" +msgid "Romanian" msgstr "" #: src/contexts/LanguageContext.tsx:47 -msgid "Slovak" +msgid "Russian" msgstr "" #: src/contexts/LanguageContext.tsx:48 -msgid "Slovenian" +msgid "Slovak" msgstr "" #: src/contexts/LanguageContext.tsx:49 -msgid "Swedish" +msgid "Slovenian" msgstr "" #: src/contexts/LanguageContext.tsx:50 -msgid "Thai" +msgid "Swedish" msgstr "" #: src/contexts/LanguageContext.tsx:51 -msgid "Turkish" +msgid "Thai" msgstr "" #: src/contexts/LanguageContext.tsx:52 -msgid "Ukrainian" +msgid "Turkish" msgstr "" #: src/contexts/LanguageContext.tsx:53 -msgid "Vietnamese" +msgid "Ukrainian" msgstr "" #: src/contexts/LanguageContext.tsx:54 -msgid "Chinese (Simplified)" +msgid "Vietnamese" msgstr "" #: src/contexts/LanguageContext.tsx:55 +msgid "Chinese (Simplified)" +msgstr "" + +#: src/contexts/LanguageContext.tsx:56 msgid "Chinese (Traditional)" msgstr "" +#: src/defaults/actions.tsx:18 +msgid "Go to the InvenTree dashboard" +msgstr "" + #: src/defaults/actions.tsx:18 #: src/defaults/links.tsx:27 #: src/defaults/menuItems.tsx:9 -msgid "Home" -msgstr "" +#~ msgid "Home" +#~ msgstr "Home" #: src/defaults/actions.tsx:25 -#: src/defaults/links.tsx:28 -#: src/defaults/menuItems.tsx:28 -#: src/pages/Index/Dashboard.tsx:19 -#: src/pages/Index/Settings/UserSettings.tsx:46 -msgid "Dashboard" -msgstr "" - -#: src/defaults/actions.tsx:26 -msgid "Go to the InvenTree dashboard" -msgstr "" - -#: src/defaults/actions.tsx:33 msgid "Visit the documentation to learn more about InvenTree" msgstr "" -#: src/defaults/actions.tsx:39 -#: src/defaults/links.tsx:98 -#: src/defaults/links.tsx:128 +#: src/defaults/actions.tsx:31 +#: src/defaults/links.tsx:92 +#: src/defaults/links.tsx:124 msgid "About InvenTree" msgstr "" -#: src/defaults/actions.tsx:40 -#: src/defaults/links.tsx:129 +#: src/defaults/actions.tsx:32 msgid "About the InvenTree org" msgstr "" -#: src/defaults/actions.tsx:46 +#: src/defaults/actions.tsx:38 msgid "Server Information" msgstr "" -#: src/defaults/actions.tsx:47 -#: src/defaults/links.tsx:123 +#: src/defaults/actions.tsx:39 +#: src/defaults/links.tsx:118 msgid "About this Inventree instance" msgstr "" -#: src/defaults/actions.tsx:53 -#: src/defaults/links.tsx:111 +#: src/defaults/actions.tsx:45 +#: src/defaults/links.tsx:105 +#: src/defaults/links.tsx:131 msgid "License Information" msgstr "" -#: src/defaults/actions.tsx:54 -#: src/defaults/links.tsx:135 +#: src/defaults/actions.tsx:46 msgid "Licenses for dependencies of the service" msgstr "" -#: src/defaults/actions.tsx:61 +#: src/defaults/actions.tsx:52 +msgid "Open Navigation" +msgstr "" + +#: src/defaults/actions.tsx:53 msgid "Open the main navigation menu" msgstr "" -#: src/defaults/actions.tsx:72 +#: src/defaults/actions.tsx:64 msgid "Go to the Admin Center" msgstr "" -#: src/defaults/dashboardItems.tsx:15 -msgid "Subscribed Parts" -msgstr "" - -#: src/defaults/dashboardItems.tsx:22 -msgid "Subscribed Categories" -msgstr "" - #: src/defaults/dashboardItems.tsx:29 -msgid "Latest Parts" -msgstr "" +#~ msgid "Latest Parts" +#~ msgstr "Latest Parts" #: src/defaults/dashboardItems.tsx:36 -msgid "BOM Waiting Validation" -msgstr "" +#~ msgid "BOM Waiting Validation" +#~ msgstr "BOM Waiting Validation" #: src/defaults/dashboardItems.tsx:43 -msgid "Recently Updated" -msgstr "" - -#: src/defaults/dashboardItems.tsx:50 -#: src/tables/part/PartTable.tsx:238 -msgid "Low Stock" -msgstr "" +#~ msgid "Recently Updated" +#~ msgstr "Recently Updated" #: src/defaults/dashboardItems.tsx:57 -msgid "Depleted Stock" -msgstr "" +#~ msgid "Depleted Stock" +#~ msgstr "Depleted Stock" #: src/defaults/dashboardItems.tsx:64 -msgid "Required for Build Orders" -msgstr "" +#~ msgid "Required for Build Orders" +#~ msgstr "Required for Build Orders" #: src/defaults/dashboardItems.tsx:71 -msgid "Expired Stock" -msgstr "" +#~ msgid "Expired Stock" +#~ msgstr "Expired Stock" #: src/defaults/dashboardItems.tsx:78 -msgid "Stale Stock" -msgstr "" +#~ msgid "Stale Stock" +#~ msgstr "Stale Stock" #: src/defaults/dashboardItems.tsx:85 -msgid "Build Orders In Progress" -msgstr "" - -#: src/defaults/dashboardItems.tsx:92 -msgid "Overdue Build Orders" -msgstr "" +#~ msgid "Build Orders In Progress" +#~ msgstr "Build Orders In Progress" #: src/defaults/dashboardItems.tsx:99 -msgid "Outstanding Purchase Orders" -msgstr "" - -#: src/defaults/dashboardItems.tsx:106 -msgid "Overdue Purchase Orders" -msgstr "" +#~ msgid "Outstanding Purchase Orders" +#~ msgstr "Outstanding Purchase Orders" #: src/defaults/dashboardItems.tsx:113 -msgid "Outstanding Sales Orders" -msgstr "" - -#: src/defaults/dashboardItems.tsx:120 -msgid "Overdue Sales Orders" -msgstr "" +#~ msgid "Outstanding Sales Orders" +#~ msgstr "Outstanding Sales Orders" #: src/defaults/dashboardItems.tsx:127 -msgid "Current News" -msgstr "" +#~ msgid "Current News" +#~ msgstr "Current News" #: src/defaults/defaultHostList.tsx:8 #~ msgid "InvenTree Demo" @@ -2490,98 +3031,81 @@ msgstr "" #~ msgid "Local Server" #~ msgstr "Local Server" -#: src/defaults/links.tsx:12 -#: src/pages/company/CompanyDetail.tsx:96 -msgid "Website" -msgstr "" - #: src/defaults/links.tsx:17 -msgid "GitHub" -msgstr "" +#~ msgid "GitHub" +#~ msgstr "GitHub" #: src/defaults/links.tsx:22 -msgid "Demo" -msgstr "" - -#: src/defaults/links.tsx:33 -#: src/defaults/menuItems.tsx:48 -#: src/pages/company/ManufacturerDetail.tsx:9 -#: src/pages/company/ManufacturerPartDetail.tsx:263 -#: src/pages/company/SupplierDetail.tsx:9 -#: src/pages/company/SupplierPartDetail.tsx:347 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:483 -#: src/pages/purchasing/PurchasingIndex.tsx:60 -msgid "Purchasing" -msgstr "" - -#: src/defaults/links.tsx:37 -#: src/defaults/menuItems.tsx:53 -#: src/pages/company/CustomerDetail.tsx:9 -#: src/pages/sales/ReturnOrderDetail.tsx:474 -#: src/pages/sales/SalesIndex.tsx:53 -#: src/pages/sales/SalesOrderDetail.tsx:525 -msgid "Sales" -msgstr "" +#~ msgid "Demo" +#~ msgstr "Demo" #: src/defaults/links.tsx:41 #: src/defaults/menuItems.tsx:71 #: src/pages/Index/Playground.tsx:217 -msgid "Playground" -msgstr "" +#~ msgid "Playground" +#~ msgstr "Playground" -#: src/defaults/links.tsx:55 -msgid "Getting Started" -msgstr "" - -#: src/defaults/links.tsx:56 -msgid "Getting started with InvenTree" -msgstr "" - -#: src/defaults/links.tsx:62 +#: src/defaults/links.tsx:45 msgid "API" msgstr "" -#: src/defaults/links.tsx:63 +#: src/defaults/links.tsx:48 msgid "InvenTree API documentation" msgstr "" -#: src/defaults/links.tsx:68 +#: src/defaults/links.tsx:52 msgid "Developer Manual" msgstr "" -#: src/defaults/links.tsx:69 +#: src/defaults/links.tsx:55 msgid "InvenTree developer manual" msgstr "" -#: src/defaults/links.tsx:74 +#: src/defaults/links.tsx:59 msgid "FAQ" msgstr "" -#: src/defaults/links.tsx:75 +#: src/defaults/links.tsx:62 msgid "Frequently asked questions" msgstr "" +#: src/defaults/links.tsx:66 +msgid "GitHub Repository" +msgstr "" + +#: src/defaults/links.tsx:69 +msgid "InvenTree source code on GitHub" +msgstr "" + #: src/defaults/links.tsx:76 #~ msgid "Instance" #~ msgstr "Instance" +#: src/defaults/links.tsx:79 +#: src/defaults/links.tsx:117 +msgid "System Information" +msgstr "" + #: src/defaults/links.tsx:83 #~ msgid "InvenTree" #~ msgstr "InvenTree" -#: src/defaults/links.tsx:85 -#: src/defaults/links.tsx:122 -msgid "System Information" -msgstr "" - #: src/defaults/links.tsx:117 #~ msgid "Licenses for packages used by InvenTree" #~ msgstr "Licenses for packages used by InvenTree" -#: src/defaults/links.tsx:134 -msgid "Licenses" +#: src/defaults/links.tsx:125 +msgid "About the InvenTree Project" msgstr "" +#: src/defaults/links.tsx:132 +msgid "Licenses for dependencies of the InvenTree software" +msgstr "" + +#: src/defaults/links.tsx:134 +#~ msgid "Licenses" +#~ msgstr "Licenses" + #: src/defaults/menuItems.tsx:7 #~ msgid "Open sourcea" #~ msgstr "Open sourcea" @@ -2607,8 +3131,8 @@ msgstr "" #~ msgstr "Profile page" #: src/defaults/menuItems.tsx:17 -msgid "User attributes and design settings." -msgstr "" +#~ msgid "User attributes and design settings." +#~ msgstr "User attributes and design settings." #: src/defaults/menuItems.tsx:21 #~ msgid "Free for everyone" @@ -2619,8 +3143,8 @@ msgstr "" #~ msgstr "The fluid of Smeargle’s tail secretions changes" #: src/defaults/menuItems.tsx:23 -msgid "View for interactive scanning and multiple actions." -msgstr "" +#~ msgid "View for interactive scanning and multiple actions." +#~ msgstr "View for interactive scanning and multiple actions." #: src/defaults/menuItems.tsx:24 #~ msgid "The fluid of Smeargle’s tail secretions changes in the intensity" @@ -2698,51 +3222,130 @@ msgstr "" #~ msgid "Are you sure you want to delete this attachment?" #~ msgstr "Are you sure you want to delete this attachment?" -#: src/forms/BuildForms.tsx:158 -msgid "Next serial number" +#: src/forms/BuildForms.tsx:248 +#~ msgid "Remove output" +#~ msgstr "Remove output" + +#: src/forms/BuildForms.tsx:269 +#: src/tables/build/BuildAllocatedStockTable.tsx:147 +#: src/tables/build/BuildOrderTestTable.tsx:177 +#: src/tables/build/BuildOrderTestTable.tsx:201 +#: src/tables/build/BuildOutputTable.tsx:460 +msgid "Build Output" msgstr "" -#: src/forms/BuildForms.tsx:162 -msgid "Latest serial number" +#: src/forms/BuildForms.tsx:269 +#: src/forms/BuildForms.tsx:337 +#: src/forms/BuildForms.tsx:385 +#: src/tables/build/BuildLineTable.tsx:89 +msgid "Batch" msgstr "" -#: src/forms/BuildForms.tsx:234 -msgid "Remove output" +#: src/forms/BuildForms.tsx:269 +#: src/forms/BuildForms.tsx:337 +#: src/forms/BuildForms.tsx:385 +#: src/forms/PurchaseOrderForms.tsx:603 +#: src/pages/build/BuildDetail.tsx:104 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:142 +#: src/pages/sales/ReturnOrderDetail.tsx:113 +#: src/pages/sales/SalesOrderDetail.tsx:122 +#: src/tables/build/BuildOrderTable.tsx:125 +#: src/tables/machine/MachineListTable.tsx:336 +#: src/tables/part/PartPurchaseOrdersTable.tsx:37 +#: src/tables/purchasing/PurchaseOrderTable.tsx:58 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:157 +#: src/tables/sales/ReturnOrderTable.tsx:56 +#: src/tables/sales/SalesOrderTable.tsx:56 +#: src/tables/settings/CustomStateTable.tsx:57 +#: src/tables/settings/ImportSessionTable.tsx:114 +#: src/tables/stock/StockItemTable.tsx:298 +#: src/tables/stock/StockTrackingTable.tsx:56 +msgid "Status" msgstr "" -#: src/forms/BuildForms.tsx:316 +#: src/forms/BuildForms.tsx:289 msgid "Complete Build Outputs" msgstr "" -#: src/forms/BuildForms.tsx:320 +#: src/forms/BuildForms.tsx:292 msgid "Build outputs have been completed" msgstr "" -#: src/forms/BuildForms.tsx:389 +#: src/forms/BuildForms.tsx:353 msgid "Scrap Build Outputs" msgstr "" -#: src/forms/BuildForms.tsx:393 +#: src/forms/BuildForms.tsx:356 msgid "Build outputs have been scrapped" msgstr "" -#: src/forms/BuildForms.tsx:425 -#: src/forms/BuildForms.tsx:449 +#: src/forms/BuildForms.tsx:393 msgid "Cancel Build Outputs" msgstr "" -#: src/forms/BuildForms.tsx:426 -msgid "Selected build outputs will be deleted" +#: src/forms/BuildForms.tsx:396 +msgid "Build outputs have been cancelled" msgstr "" -#: src/forms/BuildForms.tsx:453 -msgid "Build outputs have been cancelled" +#: src/forms/BuildForms.tsx:408 +#~ msgid "Selected build outputs will be deleted" +#~ msgstr "Selected build outputs will be deleted" + +#: src/forms/BuildForms.tsx:470 +#~ msgid "Remove line" +#~ msgstr "Remove line" + +#: src/forms/BuildForms.tsx:515 +#: src/forms/SalesOrderForms.tsx:248 +#: src/tables/build/BuildLineTable.tsx:174 +#: src/tables/sales/SalesOrderLineItemTable.tsx:276 +#: src/tables/stock/StockItemTable.tsx:309 +msgid "Allocated" +msgstr "" + +#: src/forms/BuildForms.tsx:545 +#: src/forms/SalesOrderForms.tsx:239 +#: src/pages/build/BuildDetail.tsx:208 +msgid "Source Location" +msgstr "" + +#: src/forms/BuildForms.tsx:546 +#: src/forms/SalesOrderForms.tsx:240 +msgid "Select the source location for the stock allocation" +msgstr "" + +#: src/forms/BuildForms.tsx:566 +#: src/forms/SalesOrderForms.tsx:274 +#: src/tables/build/BuildLineTable.tsx:442 +#: src/tables/build/BuildLineTable.tsx:569 +#: src/tables/build/BuildLineTable.tsx:642 +#: src/tables/sales/SalesOrderLineItemTable.tsx:302 +#: src/tables/sales/SalesOrderLineItemTable.tsx:326 +msgid "Allocate Stock" +msgstr "" + +#: src/forms/BuildForms.tsx:569 +#: src/forms/SalesOrderForms.tsx:279 +msgid "Stock items allocated" msgstr "" #: src/forms/CompanyForms.tsx:150 #~ msgid "Company updated" #~ msgstr "Company updated" +#: src/forms/PartForms.tsx:67 +#: src/forms/PartForms.tsx:154 +#: src/pages/part/CategoryDetail.tsx:117 +#: src/pages/part/PartDetail.tsx:384 +#: src/tables/part/PartCategoryTable.tsx:90 +#: src/tables/part/PartTable.tsx:294 +msgid "Subscribed" +msgstr "" + +#: src/forms/PartForms.tsx:68 +msgid "Subscribe to notifications for this part" +msgstr "" + #: src/forms/PartForms.tsx:106 #~ msgid "Create Part" #~ msgstr "Create Part" @@ -2751,191 +3354,190 @@ msgstr "" #~ msgid "Part created" #~ msgstr "Part created" -#: src/forms/PartForms.tsx:124 -msgid "Parent part category" -msgstr "" - #: src/forms/PartForms.tsx:129 #~ msgid "Part updated" #~ msgstr "Part updated" -#: src/forms/PurchaseOrderForms.tsx:300 +#: src/forms/PartForms.tsx:140 +msgid "Parent part category" +msgstr "" + +#: src/forms/PartForms.tsx:155 +msgid "Subscribe to notifications for this category" +msgstr "" + +#: src/forms/PurchaseOrderForms.tsx:314 +msgid "Assign Batch Code and Serial Numbers" +msgstr "" + +#: src/forms/PurchaseOrderForms.tsx:316 +msgid "Assign Batch Code" +msgstr "" + +#: src/forms/PurchaseOrderForms.tsx:336 msgid "Choose Location" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:308 +#: src/forms/PurchaseOrderForms.tsx:344 msgid "Item Destination selected" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:317 +#: src/forms/PurchaseOrderForms.tsx:353 msgid "Part category default location selected" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:327 +#: src/forms/PurchaseOrderForms.tsx:363 msgid "Received stock location selected" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:332 +#: src/forms/PurchaseOrderForms.tsx:368 msgid "Default location selected" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:343 -#: src/forms/PurchaseOrderForms.tsx:435 -msgid "Scan Barcode" -msgstr "" +#: src/forms/PurchaseOrderForms.tsx:421 +#~ msgid "Assign Batch Code{0}" +#~ msgstr "Assign Batch Code{0}" -#: src/forms/PurchaseOrderForms.tsx:388 +#: src/forms/PurchaseOrderForms.tsx:427 msgid "Set Location" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:396 -msgid "Assign Batch Code{0}" -msgstr "" - -#: src/forms/PurchaseOrderForms.tsx:405 -#: src/forms/StockForms.tsx:420 +#: src/forms/PurchaseOrderForms.tsx:442 +#: src/forms/StockForms.tsx:539 msgid "Adjust Packaging" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:412 -msgid "Change Status" -msgstr "" - -#: src/forms/PurchaseOrderForms.tsx:418 -msgid "Add Note" -msgstr "" - #: src/forms/PurchaseOrderForms.tsx:444 #: src/forms/StockForms.tsx:428 -msgid "Remove item from list" +#~ msgid "Remove item from list" +#~ msgstr "Remove item from list" + +#: src/forms/PurchaseOrderForms.tsx:450 +msgid "Change Status" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:471 -#: src/forms/StockForms.tsx:499 -#: src/forms/StockForms.tsx:533 -#: src/forms/StockForms.tsx:562 -#: src/forms/StockForms.tsx:590 -#: src/forms/StockForms.tsx:621 -#: src/forms/StockForms.tsx:656 -#: src/forms/StockForms.tsx:698 -#: src/forms/StockForms.tsx:734 -#: src/pages/stock/StockDetail.tsx:181 -#: src/tables/ColumnRenderers.tsx:49 -#: src/tables/stock/StockTrackingTable.tsx:85 +#: src/forms/PurchaseOrderForms.tsx:456 +msgid "Add Note" +msgstr "" + +#: src/forms/PurchaseOrderForms.tsx:503 +#: src/forms/StockForms.tsx:614 +#: src/forms/StockForms.tsx:651 +#: src/forms/StockForms.tsx:677 +#: src/forms/StockForms.tsx:705 +#: src/forms/StockForms.tsx:736 +#: src/forms/StockForms.tsx:771 +#: src/forms/StockForms.tsx:813 +#: src/forms/StockForms.tsx:851 +#: src/pages/stock/StockDetail.tsx:202 +#: src/tables/ColumnRenderers.tsx:60 +#: src/tables/stock/StockTrackingTable.tsx:89 msgid "Location" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:486 +#: src/forms/PurchaseOrderForms.tsx:518 msgid "Store at default location" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:499 +#: src/forms/PurchaseOrderForms.tsx:533 msgid "Store at line item destination" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:509 +#: src/forms/PurchaseOrderForms.tsx:545 msgid "Store with already received stock" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:524 -#: src/pages/build/BuildDetail.tsx:219 -#: src/pages/stock/StockDetail.tsx:162 -#: src/pages/stock/StockDetail.tsx:599 -#: src/tables/build/BuildAllocatedStockTable.tsx:109 -#: src/tables/build/BuildOrderTestTable.tsx:188 -#: src/tables/sales/SalesOrderAllocationTable.tsx:87 +#: src/forms/PurchaseOrderForms.tsx:566 +#: src/pages/build/BuildDetail.tsx:222 +#: src/pages/stock/StockDetail.tsx:185 +#: src/pages/stock/StockDetail.tsx:793 +#: src/tables/build/BuildAllocatedStockTable.tsx:130 +#: src/tables/build/BuildOrderTestTable.tsx:189 +#: src/tables/build/BuildOutputTable.tsx:86 +#: src/tables/sales/SalesOrderAllocationTable.tsx:113 msgid "Batch Code" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:535 -msgid "Serial numbers" +#: src/forms/PurchaseOrderForms.tsx:566 +#~ msgid "Serial numbers" +#~ msgstr "Serial numbers" + +#: src/forms/PurchaseOrderForms.tsx:567 +msgid "Enter batch code for received items" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:544 -#: src/forms/StockForms.tsx:443 -#: src/pages/company/SupplierPartDetail.tsx:156 -#: src/pages/company/SupplierPartDetail.tsx:207 -#: src/pages/stock/StockDetail.tsx:244 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:192 +#: src/forms/PurchaseOrderForms.tsx:579 +#: src/forms/StockForms.tsx:152 +msgid "Serial Numbers" +msgstr "" + +#: src/forms/PurchaseOrderForms.tsx:580 +msgid "Enter serial numbers for received items" +msgstr "" + +#: src/forms/PurchaseOrderForms.tsx:590 +#: src/forms/StockForms.tsx:556 +#: src/pages/company/SupplierPartDetail.tsx:168 +#: src/pages/company/SupplierPartDetail.tsx:219 +#: src/pages/stock/StockDetail.tsx:320 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:198 msgid "Packaging" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:556 -#: src/pages/build/BuildDetail.tsx:109 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:148 -#: src/pages/sales/ReturnOrderDetail.tsx:121 -#: src/pages/sales/SalesOrderDetail.tsx:127 -#: src/tables/build/BuildOrderTable.tsx:122 -#: src/tables/machine/MachineListTable.tsx:335 -#: src/tables/part/PartPurchaseOrdersTable.tsx:37 -#: src/tables/purchasing/PurchaseOrderTable.tsx:55 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:132 -#: src/tables/sales/ReturnOrderTable.tsx:46 -#: src/tables/sales/SalesOrderTable.tsx:53 -#: src/tables/settings/ImportSessionTable.tsx:115 -#: src/tables/stock/StockItemTable.tsx:294 -#: src/tables/stock/StockTrackingTable.tsx:52 -msgid "Status" -msgstr "" - -#: src/forms/PurchaseOrderForms.tsx:564 -#: src/pages/company/SupplierPartDetail.tsx:110 -#: src/tables/ColumnRenderers.tsx:132 +#: src/forms/PurchaseOrderForms.tsx:612 +#: src/pages/company/SupplierPartDetail.tsx:115 +#: src/tables/ColumnRenderers.tsx:143 msgid "Note" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/pages/company/SupplierPartDetail.tsx:128 -#: src/tables/purchasing/SupplierPriceBreakTable.tsx:57 -msgid "SKU" -msgstr "" - -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/tables/part/PartPurchaseOrdersTable.tsx:120 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:178 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:127 -msgid "Received" -msgstr "" - -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/forms/StockForms.tsx:499 -#: src/forms/StockForms.tsx:533 -#: src/forms/StockForms.tsx:562 -#: src/forms/StockForms.tsx:590 -#: src/forms/StockForms.tsx:621 -#: src/forms/StockForms.tsx:656 -#: src/forms/StockForms.tsx:698 -#: src/forms/StockForms.tsx:734 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:413 -#: src/tables/RowActions.tsx:113 -msgid "Actions" -msgstr "" - -#: src/forms/PurchaseOrderForms.tsx:655 -msgid "Receive Line Items" -msgstr "" - #: src/forms/PurchaseOrderForms.tsx:658 #~ msgid "Receive line items" #~ msgstr "Receive line items" -#: src/forms/StockForms.tsx:104 -msgid "Add given quantity as packs instead of individual items" +#: src/forms/PurchaseOrderForms.tsx:689 +#: src/pages/company/SupplierPartDetail.tsx:133 +#: src/tables/purchasing/SupplierPriceBreakTable.tsx:57 +msgid "SKU" +msgstr "" + +#: src/forms/PurchaseOrderForms.tsx:689 +#: src/tables/part/PartPurchaseOrdersTable.tsx:126 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:184 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:247 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:152 +msgid "Received" +msgstr "" + +#: src/forms/PurchaseOrderForms.tsx:701 +msgid "Receive Line Items" +msgstr "" + +#: src/forms/ReturnOrderForms.tsx:201 +msgid "Receive Items" +msgstr "" + +#: src/forms/ReturnOrderForms.tsx:208 +msgid "Item received into stock" +msgstr "" + +#: src/forms/StockForms.tsx:80 +#: src/hooks/UsePlaceholder.tsx:57 +msgid "Next serial number" msgstr "" #: src/forms/StockForms.tsx:110 #~ msgid "Create Stock Item" #~ msgstr "Create Stock Item" -#: src/forms/StockForms.tsx:117 +#: src/forms/StockForms.tsx:131 +msgid "Add given quantity as packs instead of individual items" +msgstr "" + +#: src/forms/StockForms.tsx:145 msgid "Enter initial quantity for this stock item" msgstr "" -#: src/forms/StockForms.tsx:124 -msgid "Serial Numbers" -msgstr "" - -#: src/forms/StockForms.tsx:125 +#: src/forms/StockForms.tsx:154 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" @@ -2943,82 +3545,102 @@ msgstr "" #~ msgid "Stock item updated" #~ msgstr "Stock item updated" -#: src/forms/StockForms.tsx:179 -#: src/pages/stock/StockDetail.tsx:434 -#: src/tables/stock/StockItemTable.tsx:417 -#: src/tables/stock/StockItemTable.tsx:535 +#: src/forms/StockForms.tsx:169 +#: src/pages/stock/StockDetail.tsx:131 +msgid "Stock Status" +msgstr "" + +#: src/forms/StockForms.tsx:218 +#: src/pages/stock/StockDetail.tsx:554 +#: src/tables/stock/StockItemTable.tsx:421 +#: src/tables/stock/StockItemTable.tsx:541 msgid "Add Stock Item" msgstr "" -#: src/forms/StockForms.tsx:362 +#: src/forms/StockForms.tsx:262 +msgid "Select the part to install" +msgstr "" + +#: src/forms/StockForms.tsx:480 msgid "Loading..." msgstr "" -#: src/forms/StockForms.tsx:408 +#: src/forms/StockForms.tsx:527 msgid "Move to default location" msgstr "" -#: src/forms/StockForms.tsx:499 -#: src/forms/StockForms.tsx:533 -#: src/forms/StockForms.tsx:562 -#: src/forms/StockForms.tsx:590 -#: src/forms/StockForms.tsx:621 -#: src/forms/StockForms.tsx:656 -#: src/forms/StockForms.tsx:698 -#: src/forms/StockForms.tsx:734 -#: src/pages/part/PartDetail.tsx:230 -#: src/pages/part/PartDetail.tsx:843 -#: src/tables/stock/StockItemTable.tsx:325 +#: src/forms/StockForms.tsx:614 +#: src/forms/StockForms.tsx:651 +#: src/forms/StockForms.tsx:677 +#: src/forms/StockForms.tsx:705 +#: src/forms/StockForms.tsx:736 +#: src/forms/StockForms.tsx:771 +#: src/forms/StockForms.tsx:813 +#: src/forms/StockForms.tsx:851 +#: src/pages/part/PartDetail.tsx:251 +#: src/pages/part/PartDetail.tsx:875 +#: src/tables/stock/StockItemTable.tsx:329 msgid "In Stock" msgstr "" -#: src/forms/StockForms.tsx:499 +#: src/forms/StockForms.tsx:614 msgid "Move" msgstr "" -#: src/forms/StockForms.tsx:562 -#: src/pages/stock/StockDetail.tsx:518 -#: src/tables/stock/StockItemTestResultTable.tsx:328 +#: src/forms/StockForms.tsx:677 +#: src/pages/stock/StockDetail.tsx:681 +#: src/tables/stock/StockItemTestResultTable.tsx:346 msgid "Add" msgstr "" -#: src/forms/StockForms.tsx:590 -#: src/pages/Index/Scan.tsx:266 -#: src/pages/stock/StockDetail.tsx:508 +#: src/forms/StockForms.tsx:705 +#: src/pages/Index/Scan.tsx:280 +#: src/pages/stock/StockDetail.tsx:670 msgid "Count" msgstr "" -#: src/forms/StockForms.tsx:835 +#: src/forms/StockForms.tsx:953 +#: src/pages/stock/StockDetail.tsx:682 +#: src/tables/stock/StockItemTable.tsx:454 msgid "Add Stock" msgstr "" -#: src/forms/StockForms.tsx:844 +#: src/forms/StockForms.tsx:962 +#: src/pages/stock/StockDetail.tsx:691 +#: src/tables/stock/StockItemTable.tsx:463 msgid "Remove Stock" msgstr "" -#: src/forms/StockForms.tsx:853 -#: src/pages/part/PartDetail.tsx:1017 +#: src/forms/StockForms.tsx:971 +#: src/pages/part/PartDetail.tsx:1039 +#: src/pages/stock/StockDetail.tsx:712 +#: src/tables/stock/StockItemTable.tsx:483 msgid "Transfer Stock" msgstr "" -#: src/forms/StockForms.tsx:862 -#: src/pages/part/PartDetail.tsx:1006 +#: src/forms/StockForms.tsx:980 +#: src/pages/part/PartDetail.tsx:1028 +#: src/pages/stock/LocationDetail.tsx:314 +#: src/pages/stock/LocationDetail.tsx:318 +#: src/tables/stock/StockItemTable.tsx:472 +#: src/tables/stock/StockItemTable.tsx:476 msgid "Count Stock" msgstr "" -#: src/forms/StockForms.tsx:871 +#: src/forms/StockForms.tsx:989 msgid "Change Stock Status" msgstr "" -#: src/forms/StockForms.tsx:880 +#: src/forms/StockForms.tsx:998 msgid "Merge Stock" msgstr "" -#: src/forms/StockForms.tsx:899 +#: src/forms/StockForms.tsx:1017 +#: src/tables/stock/StockItemTable.tsx:530 msgid "Delete Stock Items" msgstr "" -#: src/forms/StockForms.tsx:906 +#: src/forms/StockForms.tsx:1024 msgid "Parent stock location" msgstr "" @@ -3042,11 +3664,11 @@ msgstr "" #~ msgid "You have been logged out" #~ msgstr "You have been logged out" -#: src/functions/auth.tsx:117 +#: src/functions/auth.tsx:128 msgid "Logged Out" msgstr "" -#: src/functions/auth.tsx:118 +#: src/functions/auth.tsx:129 msgid "Successfully logged out" msgstr "" @@ -3062,20 +3684,20 @@ msgstr "" #~ msgid "Found an existing login - welcome back!" #~ msgstr "Found an existing login - welcome back!" -#: src/functions/auth.tsx:156 +#: src/functions/auth.tsx:167 msgid "Check your inbox for a reset link. This only works if you have an account. Check in spam too." msgstr "" -#: src/functions/auth.tsx:163 +#: src/functions/auth.tsx:174 #: src/pages/Auth/Set-Password.tsx:39 msgid "Reset failed" msgstr "" -#: src/functions/auth.tsx:194 +#: src/functions/auth.tsx:205 msgid "Logged In" msgstr "" -#: src/functions/auth.tsx:195 +#: src/functions/auth.tsx:206 msgid "Successfully logged in" msgstr "" @@ -3095,30 +3717,38 @@ msgstr "" #~ msgid "method parameter not supplied" #~ msgstr "method parameter not supplied" -#: src/functions/notifications.tsx:10 +#: src/functions/notifications.tsx:12 msgid "Not implemented" msgstr "" -#: src/functions/notifications.tsx:11 +#: src/functions/notifications.tsx:13 msgid "This feature is not yet implemented" msgstr "" -#: src/functions/notifications.tsx:21 -msgid "Permission denied" -msgstr "" +#: src/functions/notifications.tsx:24 +#~ msgid "Permission denied" +#~ msgstr "Permission denied" -#: src/functions/notifications.tsx:22 +#: src/functions/notifications.tsx:25 msgid "You do not have permission to perform this action" msgstr "" -#: src/functions/notifications.tsx:33 +#: src/functions/notifications.tsx:36 msgid "Invalid Return Code" msgstr "" -#: src/functions/notifications.tsx:34 +#: src/functions/notifications.tsx:37 msgid "Server returned status {returnCode}" msgstr "" +#: src/functions/notifications.tsx:47 +msgid "Timeout" +msgstr "" + +#: src/functions/notifications.tsx:48 +msgid "The request timed out" +msgstr "" + #: src/hooks/UseForm.tsx:88 msgid "Item Created" msgstr "" @@ -3135,20 +3765,24 @@ msgstr "" msgid "Are you sure you want to delete this item?" msgstr "" +#: src/hooks/UsePlaceholder.tsx:59 +msgid "Latest serial number" +msgstr "" + #: src/pages/Auth/Logged-In.tsx:22 msgid "Checking if you are already logged in" msgstr "" -#: src/pages/Auth/Login.tsx:31 -#: src/pages/Index/Scan.tsx:329 +#: src/pages/Auth/Login.tsx:35 +#: src/pages/Index/Scan.tsx:343 msgid "No selection" msgstr "" -#: src/pages/Auth/Login.tsx:87 +#: src/pages/Auth/Login.tsx:91 msgid "Welcome, log in below" msgstr "" -#: src/pages/Auth/Login.tsx:89 +#: src/pages/Auth/Login.tsx:93 msgid "Register below" msgstr "" @@ -3162,8 +3796,8 @@ msgstr "" #: src/pages/Auth/Reset.tsx:41 #: src/pages/Auth/Set-Password.tsx:112 -msgid "Send mail" -msgstr "" +#~ msgid "Send mail" +#~ msgstr "Send mail" #: src/pages/Auth/Set-Password.tsx:30 msgid "Token invalid" @@ -3174,22 +3808,22 @@ msgid "You need to provide a valid token to set a new password. Check your inbox msgstr "" #: src/pages/Auth/Set-Password.tsx:49 -msgid "No token provided" -msgstr "" +#~ msgid "No token provided" +#~ msgstr "No token provided" #: src/pages/Auth/Set-Password.tsx:50 -msgid "You need to provide a token to set a new password. Check your inbox for a reset link." -msgstr "" +#~ msgid "You need to provide a token to set a new password. Check your inbox for a reset link." +#~ msgstr "You need to provide a token to set a new password. Check your inbox for a reset link." -#: src/pages/Auth/Set-Password.tsx:73 +#: src/pages/Auth/Set-Password.tsx:68 msgid "Password set" msgstr "" -#: src/pages/Auth/Set-Password.tsx:74 +#: src/pages/Auth/Set-Password.tsx:69 msgid "The password was set successfully. You can now login with your new password" msgstr "" -#: src/pages/Auth/Set-Password.tsx:101 +#: src/pages/Auth/Set-Password.tsx:96 msgid "Set new password" msgstr "" @@ -3206,20 +3840,20 @@ msgstr "" #~ msgstr "Sorry, an unexpected error has occurred." #: src/pages/Index/Dashboard.tsx:22 -msgid "Autoupdate" -msgstr "" +#~ msgid "Autoupdate" +#~ msgstr "Autoupdate" #: src/pages/Index/Dashboard.tsx:26 -msgid "This page is a replacement for the old start page with the same information. This page will be deprecated and replaced by the home page." -msgstr "" +#~ msgid "This page is a replacement for the old start page with the same information. This page will be deprecated and replaced by the home page." +#~ msgstr "This page is a replacement for the old start page with the same information. This page will be deprecated and replaced by the home page." #: src/pages/Index/Home.tsx:58 -msgid "Welcome to your Dashboard{0}" -msgstr "" +#~ msgid "Welcome to your Dashboard{0}" +#~ msgstr "Welcome to your Dashboard{0}" #: src/pages/Index/Playground.tsx:222 -msgid "This page is a showcase for the possibilities of Platform UI." -msgstr "" +#~ msgid "This page is a showcase for the possibilities of Platform UI." +#~ msgstr "This page is a showcase for the possibilities of Platform UI." #: src/pages/Index/Profile/Profile.tsx:30 #: src/pages/Index/Profile/Profile.tsx:141 @@ -3365,125 +3999,190 @@ msgstr "" msgid "Image Barcode" msgstr "" -#: src/pages/Index/Scan.tsx:247 +#: src/pages/Index/Scan.tsx:261 msgid "Selected elements are not known" msgstr "" -#: src/pages/Index/Scan.tsx:254 +#: src/pages/Index/Scan.tsx:268 msgid "Multiple object types selected" msgstr "" -#: src/pages/Index/Scan.tsx:261 +#: src/pages/Index/Scan.tsx:275 msgid "Actions for {0}" msgstr "" -#: src/pages/Index/Scan.tsx:282 +#: src/pages/Index/Scan.tsx:296 msgid "Scan Page" msgstr "" -#: src/pages/Index/Scan.tsx:285 +#: src/pages/Index/Scan.tsx:299 msgid "This page can be used for continuously scanning items and taking actions on them." msgstr "" -#: src/pages/Index/Scan.tsx:292 +#: src/pages/Index/Scan.tsx:306 msgid "Toggle Fullscreen" msgstr "" -#: src/pages/Index/Scan.tsx:305 +#: src/pages/Index/Scan.tsx:319 msgid "Select the input method you want to use to scan items." msgstr "" -#: src/pages/Index/Scan.tsx:307 +#: src/pages/Index/Scan.tsx:321 msgid "Input" msgstr "" -#: src/pages/Index/Scan.tsx:314 +#: src/pages/Index/Scan.tsx:328 msgid "Select input method" msgstr "" -#: src/pages/Index/Scan.tsx:315 +#: src/pages/Index/Scan.tsx:329 msgid "Nothing found" msgstr "" -#: src/pages/Index/Scan.tsx:323 +#: src/pages/Index/Scan.tsx:337 msgid "Depending on the selected parts actions will be shown here. Not all barcode types are supported currently." msgstr "" -#: src/pages/Index/Scan.tsx:325 +#: src/pages/Index/Scan.tsx:339 msgid "Action" msgstr "" -#: src/pages/Index/Scan.tsx:334 +#: src/pages/Index/Scan.tsx:348 msgid "{0} items selected" msgstr "" -#: src/pages/Index/Scan.tsx:337 +#: src/pages/Index/Scan.tsx:351 msgid "General Actions" msgstr "" -#: src/pages/Index/Scan.tsx:351 +#: src/pages/Index/Scan.tsx:365 msgid "Lookup part" msgstr "" -#: src/pages/Index/Scan.tsx:359 +#: src/pages/Index/Scan.tsx:373 msgid "Open Link" msgstr "" -#: src/pages/Index/Scan.tsx:375 +#: src/pages/Index/Scan.tsx:389 msgid "History is locally kept in this browser." msgstr "" -#: src/pages/Index/Scan.tsx:376 +#: src/pages/Index/Scan.tsx:390 msgid "The history is kept in this browser's local storage. So it won't be shared with other users or other devices but is persistent through reloads. You can select items in the history to perform actions on them. To add items, scan/enter them in the Input area." msgstr "" -#: src/pages/Index/Scan.tsx:378 +#: src/pages/Index/Scan.tsx:392 #: src/pages/Notifications.tsx:100 msgid "History" msgstr "" -#: src/pages/Index/Scan.tsx:384 +#: src/pages/Index/Scan.tsx:398 msgid "Delete History" msgstr "" -#: src/pages/Index/Scan.tsx:449 +#: src/pages/Index/Scan.tsx:463 msgid "No history" msgstr "" -#: src/pages/Index/Scan.tsx:467 +#: src/pages/Index/Scan.tsx:481 msgid "Item" msgstr "" -#: src/pages/Index/Scan.tsx:470 +#: src/pages/Index/Scan.tsx:484 msgid "Type" msgstr "" -#: src/pages/Index/Scan.tsx:473 +#: src/pages/Index/Scan.tsx:487 msgid "Source" msgstr "" -#: src/pages/Index/Scan.tsx:476 +#: src/pages/Index/Scan.tsx:490 msgid "Scanned at" msgstr "" -#: src/pages/Index/Scan.tsx:528 +#: src/pages/Index/Scan.tsx:547 msgid "Enter item serial or data" msgstr "" -#: src/pages/Index/Scan.tsx:540 +#: src/pages/Index/Scan.tsx:559 msgid "Add dummy item" msgstr "" +#: src/pages/Index/Scan.tsx:569 +msgid "Start scanning by selecting a camera and pressing the play button." +msgstr "" + +#: src/pages/Index/Scan.tsx:650 +msgid "Error while getting camera" +msgstr "" + +#: src/pages/Index/Scan.tsx:673 +msgid "Error while scanning" +msgstr "" + +#: src/pages/Index/Scan.tsx:687 +msgid "Error while stopping" +msgstr "" + +#: src/pages/Index/Scan.tsx:745 +msgid "Stop scanning" +msgstr "" + +#: src/pages/Index/Scan.tsx:754 +msgid "Start scanning" +msgstr "" + +#: src/pages/Index/Scan.tsx:763 +msgid "Scanning" +msgstr "" + +#: src/pages/Index/Scan.tsx:763 +msgid "Not scanning" +msgstr "" + +#: src/pages/Index/Scan.tsx:775 +msgid "Select Camera" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:28 +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:50 +msgid "Edit User Information" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:32 +msgid "User details updated" +msgstr "" + #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:41 -msgid "Account Details" +msgid "User Details" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:41 +#~ msgid "Account Details" +#~ msgstr "Account Details" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:44 +msgid "User Actions" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:48 +msgid "Edit User" msgstr "" #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:50 -msgid "First name" +#~ msgid "First name" +#~ msgstr "First name" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:54 +msgid "Set Password" msgstr "" #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:55 -msgid "Last name" +#~ msgid "Last name" +#~ msgstr "Last name" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:56 +msgid "Set User Password" msgstr "" #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:58 @@ -3495,15 +4194,28 @@ msgstr "" #~ msgstr "Last name: {0}" #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:67 -msgid "First name:" -msgstr "" +#~ msgid "First name:" +#~ msgstr "First name:" #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:71 -msgid "Last name:" +#~ msgid "Last name:" +#~ msgstr "Last name:" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:73 +msgid "First Name" msgstr "" -#: src/pages/Index/Settings/AccountSettings/DisplaySettingsPanel.tsx:41 -msgid "Use pseudo language" +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:79 +msgid "Last Name" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:85 +msgid "Staff Access" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:93 +#: src/tables/settings/UserTable.tsx:293 +msgid "Superuser" msgstr "" #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:55 @@ -3600,27 +4312,6 @@ msgstr "" msgid "No tokens configured" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:398 -#: src/pages/part/PartDetail.tsx:297 -#: src/tables/bom/UsedInTable.tsx:84 -#: src/tables/build/BuildOrderTable.tsx:110 -#: src/tables/company/CompanyTable.tsx:61 -#: src/tables/company/CompanyTable.tsx:95 -#: src/tables/machine/MachineListTable.tsx:332 -#: src/tables/machine/MachineListTable.tsx:594 -#: src/tables/part/ParametricPartTable.tsx:223 -#: src/tables/part/PartTable.tsx:178 -#: src/tables/part/PartVariantTable.tsx:15 -#: src/tables/plugin/PluginListTable.tsx:149 -#: src/tables/plugin/PluginListTable.tsx:271 -#: src/tables/plugin/PluginListTable.tsx:563 -#: src/tables/purchasing/SupplierPartTable.tsx:98 -#: src/tables/purchasing/SupplierPartTable.tsx:187 -#: src/tables/settings/UserTable.tsx:284 -#: src/tables/stock/StockItemTable.tsx:289 -msgid "Active" -msgstr "" - #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:401 msgid "Expiry" msgstr "" @@ -3630,38 +4321,74 @@ msgid "Last Seen" msgstr "" #: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:65 -msgid "bars" -msgstr "" +#~ msgid "bars" +#~ msgstr "bars" #: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:66 -msgid "oval" -msgstr "" +#~ msgid "oval" +#~ msgstr "oval" #: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:67 -msgid "dots" -msgstr "" +#~ msgid "dots" +#~ msgstr "dots" #: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:81 -msgid "Theme" -msgstr "" +#~ msgid "Theme" +#~ msgstr "Theme" #: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:87 -msgid "Primary color" +#~ msgid "Primary color" +#~ msgstr "Primary color" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:88 +msgid "Bars" msgstr "" -#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:100 +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:89 +msgid "Oval" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:90 +msgid "Dots" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:101 +msgid "Display Settings" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:107 +msgid "Language" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:115 +msgid "Use pseudo language" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:122 +msgid "Color Mode" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:133 +msgid "Highlight color" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:145 +msgid "Example" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:151 msgid "White color" msgstr "" -#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:108 +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:167 msgid "Black color" msgstr "" -#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:116 +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:183 msgid "Border Radius" msgstr "" -#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:132 +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:199 msgid "Loader" msgstr "" @@ -3673,89 +4400,156 @@ msgstr "" #~ msgid "Advanced Amininistrative Options for InvenTree" #~ msgstr "Advanced Amininistrative Options for InvenTree" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:104 +#: src/pages/Index/Settings/AdminCenter/CurrencyManagmentPanel.tsx:27 +#: src/tables/ColumnRenderers.tsx:262 +msgid "Currency" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/CurrencyManagmentPanel.tsx:32 +msgid "Rate" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/CurrencyManagmentPanel.tsx:44 +msgid "Exchange rates updated" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/CurrencyManagmentPanel.tsx:50 +msgid "Exchange rate update error" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/CurrencyManagmentPanel.tsx:62 +msgid "Refresh currency exchange rates" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/CurrencyManagmentPanel.tsx:99 +msgid "Last fetched" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/CurrencyManagmentPanel.tsx:100 +msgid "Base currency" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:115 msgid "Data Import" msgstr "" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:110 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:121 +msgid "Barcode Scans" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:127 msgid "Background Tasks" msgstr "" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:116 -msgid "Error Reports" -msgstr "" - -#: src/pages/Index/Settings/AdminCenter/Index.tsx:122 -msgid "Currencies" -msgstr "" - #: src/pages/Index/Settings/AdminCenter/Index.tsx:127 #~ msgid "Templates" #~ msgstr "Templates" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:140 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:133 +msgid "Error Reports" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:139 +msgid "Currencies" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:157 +msgid "Custom States" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:163 +#: src/pages/Index/Settings/AdminCenter/UnitManagmentPanel.tsx:58 msgid "Custom Units" msgstr "" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:146 -#: src/pages/part/CategoryDetail.tsx:264 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:169 +#: src/pages/part/CategoryDetail.tsx:269 msgid "Part Parameters" msgstr "" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:152 -msgid "Category Parameters" -msgstr "" - -#: src/pages/Index/Settings/AdminCenter/Index.tsx:170 -msgid "Location Types" -msgstr "" - #: src/pages/Index/Settings/AdminCenter/Index.tsx:170 #~ msgid "Location types" #~ msgstr "Location types" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:182 -#: src/tables/machine/MachineTypeTable.tsx:287 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:175 +msgid "Category Parameters" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:181 +msgid "Stocktake" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:199 +msgid "Location Types" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:211 +#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:48 +#: src/tables/machine/MachineTypeTable.tsx:308 msgid "Machines" msgstr "" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:192 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:221 msgid "Quick Actions" msgstr "" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:197 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:226 msgid "Add a new user" msgstr "" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:222 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:252 msgid "Advanced Options" msgstr "" #: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:43 -msgid "Machine types" -msgstr "" +#~ msgid "Machine types" +#~ msgstr "Machine types" #: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:53 -msgid "Machine Error Stack" +#~ msgid "Machine Error Stack" +#~ msgstr "Machine Error Stack" + +#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:56 +msgid "Machine Types" msgstr "" #: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:62 -msgid "There are no machine registry errors." +#~ msgid "There are no machine registry errors." +#~ msgstr "There are no machine registry errors." + +#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:64 +msgid "Machine Errors" msgstr "" -#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:28 -#: src/tables/settings/UserTable.tsx:119 +#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:77 +msgid "Registry Registry Errors" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:80 +msgid "There are machine registry errors" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:86 +msgid "Machine Registry Errors" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:89 +msgid "There are no machine registry errors" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:31 +#: src/tables/settings/UserTable.tsx:118 msgid "Info" msgstr "" -#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:32 -msgid "External plugins are not enabled for this InvenTree installation." -msgstr "" - #: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:33 #~ msgid "Plugin Error Stack" #~ msgstr "Plugin Error Stack" +#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:35 +msgid "External plugins are not enabled for this InvenTree installation." +msgstr "" + #: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:45 #~ msgid "Warning" #~ msgstr "Warning" @@ -3764,34 +4558,46 @@ msgstr "" #~ msgid "Changing the settings below require you to immediately restart the server. Do not change this while under active usage." #~ msgstr "Changing the settings below require you to immediately restart the server. Do not change this while under active usage." -#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:50 +#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:73 msgid "Plugin Errors" msgstr "" -#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:59 -msgid "Plugin Settings" +#: src/pages/Index/Settings/AdminCenter/ReportTemplatePanel.tsx:17 +msgid "Page Size" msgstr "" -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:53 -msgid "Background Worker Not Running" +#: src/pages/Index/Settings/AdminCenter/ReportTemplatePanel.tsx:20 +msgid "Landscape" msgstr "" -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:54 +#: src/pages/Index/Settings/AdminCenter/ReportTemplatePanel.tsx:26 +msgid "Attach to Model" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/StocktakePanel.tsx:25 +msgid "Stocktake Reports" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:30 msgid "The background task manager service is not running. Contact your system administrator." msgstr "" -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:60 -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:76 +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:35 +#~ msgid "Background Worker Not Running" +#~ msgstr "Background Worker Not Running" + +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:36 +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:45 msgid "Pending Tasks" msgstr "" -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:64 -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:84 +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:37 +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:53 msgid "Scheduled Tasks" msgstr "" -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:68 -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:92 +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:38 +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:61 msgid "Failed Tasks" msgstr "" @@ -3811,11 +4617,6 @@ msgstr "" #~ msgid "Reports" #~ msgstr "Reports" -#: src/pages/Index/Settings/AdminCenter/TemplateManagementPanel.tsx:89 -#: src/pages/build/BuildDetail.tsx:373 -#~ msgid "Report" -#~ msgstr "Report" - #: src/pages/Index/Settings/AdminCenter/TemplateManagementPanel.tsx:99 #~ msgid "Purchase order" #~ msgstr "Purchase order" @@ -3836,23 +4637,35 @@ msgstr "" #~ msgid "Stock location" #~ msgstr "Stock location" +#: src/pages/Index/Settings/AdminCenter/UnitManagmentPanel.tsx:21 +msgid "Alias" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/UnitManagmentPanel.tsx:22 +msgid "Dimensionless" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/UnitManagmentPanel.tsx:66 +msgid "All units" +msgstr "" + #: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:32 msgid "Select settings relevant for user lifecycle. More available in" msgstr "" #: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:37 -msgid "System settings" -msgstr "" +#~ msgid "System settings" +#~ msgstr "System settings" -#: src/pages/Index/Settings/SystemSettings.tsx:67 +#: src/pages/Index/Settings/SystemSettings.tsx:66 msgid "Login" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:93 +#: src/pages/Index/Settings/SystemSettings.tsx:92 msgid "Barcodes" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:115 +#: src/pages/Index/Settings/SystemSettings.tsx:116 msgid "Pricing" msgstr "" @@ -3864,64 +4677,46 @@ msgstr "" #~ msgid "Exchange Rates" #~ msgstr "Exchange Rates" -#: src/pages/Index/Settings/SystemSettings.tsx:150 +#: src/pages/Index/Settings/SystemSettings.tsx:151 msgid "Labels" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:156 -#: src/pages/Index/Settings/UserSettings.tsx:132 +#: src/pages/Index/Settings/SystemSettings.tsx:157 +#: src/pages/Index/Settings/UserSettings.tsx:133 msgid "Reporting" msgstr "" #: src/pages/Index/Settings/SystemSettings.tsx:231 -#: src/pages/part/PartDetail.tsx:682 -msgid "Stocktake" -msgstr "" - -#: src/pages/Index/Settings/SystemSettings.tsx:237 -#: src/pages/build/BuildDetail.tsx:554 -#: src/pages/build/BuildIndex.tsx:22 -#: src/pages/part/PartDetail.tsx:616 -#: src/pages/sales/SalesOrderDetail.tsx:333 +#: src/pages/build/BuildIndex.tsx:27 +#: src/pages/part/PartDetail.tsx:636 +#: src/pages/sales/SalesOrderDetail.tsx:355 msgid "Build Orders" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:318 -msgid "Switch to User Setting" -msgstr "" +#: src/pages/Index/Settings/SystemSettings.tsx:317 +#~ msgid "Switch to User Setting" +#~ msgstr "Switch to User Setting" -#: src/pages/Index/Settings/UserSettings.tsx:34 +#: src/pages/Index/Settings/UserSettings.tsx:35 msgid "Account" msgstr "" -#: src/pages/Index/Settings/UserSettings.tsx:40 +#: src/pages/Index/Settings/UserSettings.tsx:41 msgid "Security" msgstr "" -#: src/pages/Index/Settings/UserSettings.tsx:78 +#: src/pages/Index/Settings/UserSettings.tsx:79 msgid "Display Options" msgstr "" -#: src/pages/Index/Settings/UserSettings.tsx:150 -msgid "Account Settings" -msgstr "" - -#: src/pages/Index/Settings/UserSettings.tsx:158 -msgid "Switch to System Setting" -msgstr "" - -#: src/pages/Index/UserSettings.tsx:103 -#~ msgid "User Settings" -#~ msgstr "User Settings" +#: src/pages/Index/Settings/UserSettings.tsx:159 +#~ msgid "Switch to System Setting" +#~ msgstr "Switch to System Setting" #: src/pages/Logged-In.tsx:24 #~ msgid "Found an exsisting login - using it to log you in." #~ msgstr "Found an exsisting login - using it to log you in." -#: src/pages/NotFound.tsx:17 -#~ msgid "Not Found" -#~ msgstr "Not Found" - #: src/pages/NotFound.tsx:20 #~ msgid "Sorry, this page is not known or was moved." #~ msgstr "Sorry, this page is not known or was moved." @@ -3942,104 +4737,86 @@ msgstr "" #~ msgid "Build Status" #~ msgstr "Build Status" -#: src/pages/build/BuildDetail.tsx:102 -#: src/pages/part/PartDetail.tsx:150 +#: src/pages/build/BuildDetail.tsx:97 +#: src/pages/company/ManufacturerPartDetail.tsx:81 +#: src/pages/company/SupplierPartDetail.tsx:91 +#: src/pages/part/PartDetail.tsx:171 +#: src/pages/stock/StockDetail.tsx:122 #: src/tables/bom/BomTable.tsx:118 #: src/tables/bom/UsedInTable.tsx:39 -#: src/tables/build/BuildLineTable.tsx:173 -#: src/tables/build/BuildOrderTable.tsx:55 -#: src/tables/sales/SalesOrderLineItemTable.tsx:62 -#: src/tables/stock/StockItemTable.tsx:53 +#: src/tables/build/BuildAllocatedStockTable.tsx:104 +#: src/tables/build/BuildLineTable.tsx:324 +#: src/tables/build/BuildOrderTable.tsx:64 +#: src/tables/sales/SalesOrderLineItemTable.tsx:70 +#: src/tables/stock/StockItemTable.tsx:54 msgid "IPN" msgstr "" -#: src/pages/build/BuildDetail.tsx:115 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:121 -#: src/pages/sales/ReturnOrderDetail.tsx:95 -#: src/pages/sales/SalesOrderDetail.tsx:101 -#: src/tables/ColumnRenderers.tsx:121 -#: src/tables/build/BuildAllocatedStockTable.tsx:90 -#: src/tables/build/BuildLineTable.tsx:184 +#: src/pages/build/BuildDetail.tsx:110 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:115 +#: src/pages/sales/ReturnOrderDetail.tsx:86 +#: src/pages/sales/SalesOrderDetail.tsx:95 +#: src/tables/ColumnRenderers.tsx:132 +#: src/tables/build/BuildAllocatedStockTable.tsx:111 +#: src/tables/build/BuildLineTable.tsx:335 msgid "Reference" msgstr "" -#: src/pages/build/BuildDetail.tsx:121 -#: src/pages/company/CompanyDetail.tsx:90 -#: src/pages/company/ManufacturerPartDetail.tsx:83 -#: src/pages/company/SupplierPartDetail.tsx:96 -#: src/pages/part/CategoryDetail.tsx:101 -#: src/pages/part/PartDetail.tsx:157 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:142 -#: src/pages/sales/ReturnOrderDetail.tsx:115 -#: src/pages/sales/SalesOrderDetail.tsx:121 -#: src/pages/stock/LocationDetail.tsx:109 -#: src/tables/ColumnRenderers.tsx:81 -#: src/tables/bom/UsedInTable.tsx:44 -#: src/tables/build/BuildAllocatedStockTable.tsx:70 -#: src/tables/build/BuildLineTable.tsx:178 -#: src/tables/machine/MachineTypeTable.tsx:69 -#: src/tables/machine/MachineTypeTable.tsx:112 -#: src/tables/machine/MachineTypeTable.tsx:219 -#: src/tables/machine/MachineTypeTable.tsx:323 -#: src/tables/part/RelatedPartTable.tsx:64 -#: src/tables/plugin/PluginListTable.tsx:129 -#: src/tables/plugin/PluginListTable.tsx:276 -#: src/tables/sales/SalesOrderAllocationTable.tsx:56 -#: src/tables/sales/SalesOrderLineItemTable.tsx:67 -#: src/tables/stock/LocationTypesTable.tsx:74 -msgid "Description" -msgstr "" - -#: src/pages/build/BuildDetail.tsx:129 +#: src/pages/build/BuildDetail.tsx:124 msgid "Parent Build" msgstr "" -#: src/pages/build/BuildDetail.tsx:140 +#: src/pages/build/BuildDetail.tsx:135 msgid "Build Quantity" msgstr "" -#: src/pages/build/BuildDetail.tsx:148 -#: src/pages/build/BuildDetail.tsx:274 +#: src/pages/build/BuildDetail.tsx:143 +#: src/pages/build/BuildDetail.tsx:277 msgid "Completed Outputs" msgstr "" -#: src/pages/build/BuildDetail.tsx:165 -#: src/tables/build/BuildOrderTable.tsx:151 +#: src/pages/build/BuildDetail.tsx:160 +#: src/tables/build/BuildOrderTable.tsx:142 msgid "Issued By" msgstr "" -#: src/pages/build/BuildDetail.tsx:172 -#: src/pages/part/PartDetail.tsx:365 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:220 -#: src/pages/sales/ReturnOrderDetail.tsx:199 -#: src/pages/sales/SalesOrderDetail.tsx:208 -#: src/tables/build/BuildOrderTable.tsx:157 -#: src/tables/purchasing/PurchaseOrderTable.tsx:75 -#: src/tables/sales/ReturnOrderTable.tsx:66 -#: src/tables/sales/SalesOrderTable.tsx:73 +#: src/pages/build/BuildDetail.tsx:167 +#: src/pages/part/PartDetail.tsx:406 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:244 +#: src/pages/sales/ReturnOrderDetail.tsx:216 +#: src/pages/sales/SalesOrderDetail.tsx:226 +#: src/tables/build/BuildOrderTable.tsx:148 +#: src/tables/purchasing/PurchaseOrderTable.tsx:76 +#: src/tables/sales/ReturnOrderTable.tsx:74 +#: src/tables/sales/SalesOrderTable.tsx:74 msgid "Responsible" msgstr "" -#: src/pages/build/BuildDetail.tsx:179 -#: src/tables/settings/PendingTasksTable.tsx:32 +#: src/pages/build/BuildDetail.tsx:174 +#: src/tables/settings/PendingTasksTable.tsx:36 msgid "Created" msgstr "" +#: src/pages/build/BuildDetail.tsx:181 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:229 +#: src/pages/sales/ReturnOrderDetail.tsx:201 +#: src/pages/sales/SalesOrderDetail.tsx:212 +#: src/tables/ColumnRenderers.tsx:226 +#: src/tables/part/PartPurchaseOrdersTable.tsx:100 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:135 +#: src/tables/sales/SalesOrderLineItemTable.tsx:107 +msgid "Target Date" +msgstr "" + #: src/pages/build/BuildDetail.tsx:185 #: src/pages/part/PartDetail.tsx:269 #: src/pages/stock/StockDetail.tsx:150 #~ msgid "View part barcode" #~ msgstr "View part barcode" -#: src/pages/build/BuildDetail.tsx:186 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:213 -#: src/pages/sales/ReturnOrderDetail.tsx:192 -#: src/pages/sales/SalesOrderDetail.tsx:201 -#: src/tables/ColumnRenderers.tsx:212 -#: src/tables/part/PartPurchaseOrdersTable.tsx:99 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:110 -#: src/tables/sales/SalesOrderLineItemTable.tsx:99 -msgid "Target Date" +#: src/pages/build/BuildDetail.tsx:188 +#: src/tables/sales/SalesOrderLineItemTable.tsx:281 +msgid "Completed" msgstr "" #: src/pages/build/BuildDetail.tsx:190 @@ -4047,10 +4824,6 @@ msgstr "" #~ msgid "Link custom barcode to part" #~ msgstr "Link custom barcode to part" -#: src/pages/build/BuildDetail.tsx:193 -msgid "Completed" -msgstr "" - #: src/pages/build/BuildDetail.tsx:196 #: src/pages/part/PartDetail.tsx:280 #~ msgid "Unlink custom barcode from part" @@ -4060,15 +4833,11 @@ msgstr "" #~ msgid "Build Order updated" #~ msgstr "Build Order updated" -#: src/pages/build/BuildDetail.tsx:205 -msgid "Source Location" -msgstr "" - -#: src/pages/build/BuildDetail.tsx:206 +#: src/pages/build/BuildDetail.tsx:209 msgid "Any location" msgstr "" -#: src/pages/build/BuildDetail.tsx:213 +#: src/pages/build/BuildDetail.tsx:216 msgid "Destination Location" msgstr "" @@ -4084,206 +4853,182 @@ msgstr "" #~ msgid "Delete build order" #~ msgstr "Delete build order" -#: src/pages/build/BuildDetail.tsx:251 +#: src/pages/build/BuildDetail.tsx:254 msgid "Build Details" msgstr "" -#: src/pages/build/BuildDetail.tsx:257 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:258 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:267 -#: src/pages/sales/ReturnOrderDetail.tsx:130 -#: src/pages/sales/ReturnOrderDetail.tsx:237 -#: src/pages/sales/ReturnOrderDetail.tsx:246 -#: src/pages/sales/SalesOrderDetail.tsx:272 -#: src/pages/sales/SalesOrderDetail.tsx:281 +#: src/pages/build/BuildDetail.tsx:260 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:282 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:291 +#: src/pages/sales/ReturnOrderDetail.tsx:122 +#: src/pages/sales/ReturnOrderDetail.tsx:254 +#: src/pages/sales/ReturnOrderDetail.tsx:263 +#: src/pages/sales/SalesOrderDetail.tsx:294 +#: src/pages/sales/SalesOrderDetail.tsx:303 msgid "Line Items" msgstr "" -#: src/pages/build/BuildDetail.tsx:267 +#: src/pages/build/BuildDetail.tsx:266 msgid "Incomplete Outputs" msgstr "" -#: src/pages/build/BuildDetail.tsx:289 -#: src/pages/sales/SalesOrderDetail.tsx:319 +#: src/pages/build/BuildDetail.tsx:292 +#: src/pages/sales/SalesOrderDetail.tsx:341 msgid "Allocated Stock" msgstr "" -#: src/pages/build/BuildDetail.tsx:299 +#: src/pages/build/BuildDetail.tsx:302 msgid "Consumed Stock" msgstr "" -#: src/pages/build/BuildDetail.tsx:313 +#: src/pages/build/BuildDetail.tsx:316 msgid "Child Build Orders" msgstr "" #: src/pages/build/BuildDetail.tsx:326 -#: src/tables/build/BuildOutputTable.tsx:384 -#: src/tables/stock/StockItemTestResultTable.tsx:150 +#: src/tables/build/BuildOutputTable.tsx:532 +#: src/tables/stock/StockItemTestResultTable.tsx:156 msgid "Test Results" msgstr "" #: src/pages/build/BuildDetail.tsx:337 -#: src/pages/part/PartDetail.tsx:699 +#: src/pages/part/PartDetail.tsx:740 msgid "Test Statistics" msgstr "" -#: src/pages/build/BuildDetail.tsx:351 -#: src/pages/company/CompanyDetail.tsx:259 -#: src/pages/company/ManufacturerPartDetail.tsx:179 -#: src/pages/part/PartDetail.tsx:721 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:309 -#: src/pages/sales/ReturnOrderDetail.tsx:274 -#: src/pages/sales/SalesOrderDetail.tsx:343 -#: src/pages/stock/StockDetail.tsx:385 -msgid "Attachments" -msgstr "" - -#: src/pages/build/BuildDetail.tsx:359 -#: src/pages/company/CompanyDetail.tsx:270 -#: src/pages/company/ManufacturerPartDetail.tsx:190 -#: src/pages/company/SupplierPartDetail.tsx:257 -#: src/pages/part/PartDetail.tsx:729 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:320 -#: src/pages/sales/ReturnOrderDetail.tsx:285 -#: src/pages/sales/SalesOrderDetail.tsx:354 -#: src/pages/stock/StockDetail.tsx:396 -#: src/tables/build/BuildOrderTestTable.tsx:142 -#: src/tables/stock/StockTrackingTable.tsx:189 -msgid "Notes" +#: src/pages/build/BuildDetail.tsx:365 +msgid "Edit Build Order" msgstr "" #: src/pages/build/BuildDetail.tsx:368 #~ msgid "Reporting Actions" #~ msgstr "Reporting Actions" +#: src/pages/build/BuildDetail.tsx:372 +#: src/tables/build/BuildOrderTable.tsx:173 +#: src/tables/build/BuildOrderTable.tsx:188 +msgid "Add Build Order" +msgstr "" + #: src/pages/build/BuildDetail.tsx:374 #~ msgid "Print build report" #~ msgstr "Print build report" -#: src/pages/build/BuildDetail.tsx:377 -msgid "Edit Build Order" -msgstr "" - -#: src/pages/build/BuildDetail.tsx:384 -#: src/tables/build/BuildOrderTable.tsx:172 -#: src/tables/build/BuildOrderTable.tsx:187 -msgid "Add Build Order" -msgstr "" - -#: src/pages/build/BuildDetail.tsx:398 +#: src/pages/build/BuildDetail.tsx:386 msgid "Cancel Build Order" msgstr "" -#: src/pages/build/BuildDetail.tsx:400 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:348 -#: src/pages/sales/SalesOrderDetail.tsx:380 +#: src/pages/build/BuildDetail.tsx:388 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:357 +#: src/pages/sales/ReturnOrderDetail.tsx:354 +#: src/pages/sales/SalesOrderDetail.tsx:387 msgid "Order cancelled" msgstr "" -#: src/pages/build/BuildDetail.tsx:401 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:347 -#: src/pages/sales/ReturnOrderDetail.tsx:346 -#: src/pages/sales/SalesOrderDetail.tsx:379 +#: src/pages/build/BuildDetail.tsx:389 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:356 +#: src/pages/sales/ReturnOrderDetail.tsx:353 +#: src/pages/sales/SalesOrderDetail.tsx:386 msgid "Cancel this order" msgstr "" -#: src/pages/build/BuildDetail.tsx:410 +#: src/pages/build/BuildDetail.tsx:398 msgid "Hold Build Order" msgstr "" -#: src/pages/build/BuildDetail.tsx:412 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:355 -#: src/pages/sales/ReturnOrderDetail.tsx:354 -#: src/pages/sales/SalesOrderDetail.tsx:387 +#: src/pages/build/BuildDetail.tsx:400 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:364 +#: src/pages/sales/ReturnOrderDetail.tsx:361 +#: src/pages/sales/SalesOrderDetail.tsx:394 msgid "Place this order on hold" msgstr "" -#: src/pages/build/BuildDetail.tsx:413 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:356 -#: src/pages/sales/ReturnOrderDetail.tsx:355 -#: src/pages/sales/SalesOrderDetail.tsx:388 +#: src/pages/build/BuildDetail.tsx:401 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:365 +#: src/pages/sales/ReturnOrderDetail.tsx:362 +#: src/pages/sales/SalesOrderDetail.tsx:395 msgid "Order placed on hold" msgstr "" -#: src/pages/build/BuildDetail.tsx:418 +#: src/pages/build/BuildDetail.tsx:406 msgid "Issue Build Order" msgstr "" -#: src/pages/build/BuildDetail.tsx:420 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:339 -#: src/pages/sales/ReturnOrderDetail.tsx:338 -#: src/pages/sales/SalesOrderDetail.tsx:371 +#: src/pages/build/BuildDetail.tsx:408 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:348 +#: src/pages/sales/ReturnOrderDetail.tsx:345 +#: src/pages/sales/SalesOrderDetail.tsx:378 msgid "Issue this order" msgstr "" -#: src/pages/build/BuildDetail.tsx:421 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:340 -#: src/pages/sales/ReturnOrderDetail.tsx:339 -#: src/pages/sales/SalesOrderDetail.tsx:372 +#: src/pages/build/BuildDetail.tsx:409 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:349 +#: src/pages/sales/ReturnOrderDetail.tsx:346 +#: src/pages/sales/SalesOrderDetail.tsx:379 msgid "Order issued" msgstr "" -#: src/pages/build/BuildDetail.tsx:426 +#: src/pages/build/BuildDetail.tsx:414 msgid "Complete Build Order" msgstr "" -#: src/pages/build/BuildDetail.tsx:428 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:368 -#: src/pages/sales/ReturnOrderDetail.tsx:362 -#: src/pages/sales/SalesOrderDetail.tsx:395 +#: src/pages/build/BuildDetail.tsx:416 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:377 +#: src/pages/sales/ReturnOrderDetail.tsx:369 +#: src/pages/sales/SalesOrderDetail.tsx:402 msgid "Mark this order as complete" msgstr "" -#: src/pages/build/BuildDetail.tsx:429 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:362 -#: src/pages/sales/ReturnOrderDetail.tsx:363 -#: src/pages/sales/SalesOrderDetail.tsx:396 +#: src/pages/build/BuildDetail.tsx:417 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:371 +#: src/pages/sales/ReturnOrderDetail.tsx:370 +#: src/pages/sales/SalesOrderDetail.tsx:403 msgid "Order completed" msgstr "" -#: src/pages/build/BuildDetail.tsx:460 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:391 -#: src/pages/sales/ReturnOrderDetail.tsx:392 -#: src/pages/sales/SalesOrderDetail.tsx:425 +#: src/pages/build/BuildDetail.tsx:448 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:400 +#: src/pages/sales/ReturnOrderDetail.tsx:399 +#: src/pages/sales/SalesOrderDetail.tsx:432 msgid "Issue Order" msgstr "" -#: src/pages/build/BuildDetail.tsx:467 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:398 -#: src/pages/sales/ReturnOrderDetail.tsx:399 -#: src/pages/sales/SalesOrderDetail.tsx:439 +#: src/pages/build/BuildDetail.tsx:455 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:407 +#: src/pages/sales/ReturnOrderDetail.tsx:406 +#: src/pages/sales/SalesOrderDetail.tsx:446 msgid "Complete Order" msgstr "" -#: src/pages/build/BuildDetail.tsx:496 +#: src/pages/build/BuildDetail.tsx:473 msgid "Build Order Actions" msgstr "" -#: src/pages/build/BuildDetail.tsx:502 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:432 -#: src/pages/sales/ReturnOrderDetail.tsx:433 -#: src/pages/sales/SalesOrderDetail.tsx:474 +#: src/pages/build/BuildDetail.tsx:478 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:429 +#: src/pages/sales/ReturnOrderDetail.tsx:428 +#: src/pages/sales/SalesOrderDetail.tsx:469 msgid "Edit order" msgstr "" -#: src/pages/build/BuildDetail.tsx:506 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:440 -#: src/pages/sales/ReturnOrderDetail.tsx:439 -#: src/pages/sales/SalesOrderDetail.tsx:479 +#: src/pages/build/BuildDetail.tsx:482 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:437 +#: src/pages/sales/ReturnOrderDetail.tsx:434 +#: src/pages/sales/SalesOrderDetail.tsx:474 msgid "Duplicate order" msgstr "" -#: src/pages/build/BuildDetail.tsx:510 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:443 -#: src/pages/sales/ReturnOrderDetail.tsx:444 -#: src/pages/sales/SalesOrderDetail.tsx:482 +#: src/pages/build/BuildDetail.tsx:486 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:440 +#: src/pages/sales/ReturnOrderDetail.tsx:439 +#: src/pages/sales/SalesOrderDetail.tsx:477 msgid "Hold order" msgstr "" -#: src/pages/build/BuildDetail.tsx:515 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:448 -#: src/pages/sales/ReturnOrderDetail.tsx:449 -#: src/pages/sales/SalesOrderDetail.tsx:487 +#: src/pages/build/BuildDetail.tsx:491 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:445 +#: src/pages/sales/ReturnOrderDetail.tsx:444 +#: src/pages/sales/SalesOrderDetail.tsx:482 msgid "Cancel order" msgstr "" @@ -4295,56 +5040,60 @@ msgstr "" #~ msgid "New Build Order" #~ msgstr "New Build Order" -#: src/pages/company/CompanyDetail.tsx:104 +#: src/pages/company/CompanyDetail.tsx:95 +msgid "Website" +msgstr "" + +#: src/pages/company/CompanyDetail.tsx:103 msgid "Phone Number" msgstr "" -#: src/pages/company/CompanyDetail.tsx:111 +#: src/pages/company/CompanyDetail.tsx:110 msgid "Email Address" msgstr "" -#: src/pages/company/CompanyDetail.tsx:121 +#: src/pages/company/CompanyDetail.tsx:120 msgid "Default Currency" msgstr "" -#: src/pages/company/CompanyDetail.tsx:126 +#: src/pages/company/CompanyDetail.tsx:125 #: src/pages/company/SupplierDetail.tsx:8 -#: src/pages/company/SupplierPartDetail.tsx:120 -#: src/pages/company/SupplierPartDetail.tsx:206 -#: src/pages/company/SupplierPartDetail.tsx:351 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:136 -#: src/tables/company/CompanyTable.tsx:100 +#: src/pages/company/SupplierPartDetail.tsx:125 +#: src/pages/company/SupplierPartDetail.tsx:218 +#: src/pages/company/SupplierPartDetail.tsx:340 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:130 +#: src/tables/company/CompanyTable.tsx:101 #: src/tables/part/PartPurchaseOrdersTable.tsx:42 -#: src/tables/purchasing/PurchaseOrderTable.tsx:88 +#: src/tables/purchasing/PurchaseOrderTable.tsx:89 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:36 msgid "Supplier" msgstr "" -#: src/pages/company/CompanyDetail.tsx:132 +#: src/pages/company/CompanyDetail.tsx:131 #: src/pages/company/ManufacturerDetail.tsx:8 -#: src/pages/company/ManufacturerPartDetail.tsx:101 -#: src/pages/company/ManufacturerPartDetail.tsx:267 -#: src/pages/company/SupplierPartDetail.tsx:135 -#: src/tables/company/CompanyTable.tsx:105 +#: src/pages/company/ManufacturerPartDetail.tsx:100 +#: src/pages/company/ManufacturerPartDetail.tsx:262 +#: src/pages/company/SupplierPartDetail.tsx:147 +#: src/tables/company/CompanyTable.tsx:106 msgid "Manufacturer" msgstr "" -#: src/pages/company/CompanyDetail.tsx:138 +#: src/pages/company/CompanyDetail.tsx:137 #: src/pages/company/CustomerDetail.tsx:8 -#: src/pages/part/pricing/SaleHistoryPanel.tsx:29 -#: src/pages/sales/ReturnOrderDetail.tsx:109 -#: src/pages/sales/SalesOrderDetail.tsx:115 -#: src/pages/stock/StockDetail.tsx:230 -#: src/tables/company/CompanyTable.tsx:110 -#: src/tables/sales/ReturnOrderTable.tsx:78 -#: src/tables/sales/SalesOrderTable.tsx:108 -#: src/tables/stock/StockTrackingTable.tsx:140 +#: src/pages/part/pricing/SaleHistoryPanel.tsx:31 +#: src/pages/sales/ReturnOrderDetail.tsx:101 +#: src/pages/sales/SalesOrderDetail.tsx:110 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:100 +#: src/pages/stock/StockDetail.tsx:271 +#: src/tables/company/CompanyTable.tsx:111 +#: src/tables/sales/ReturnOrderTable.tsx:97 +#: src/tables/sales/SalesOrderTable.tsx:121 +#: src/tables/stock/StockTrackingTable.tsx:144 msgid "Customer" msgstr "" #: src/pages/company/CompanyDetail.tsx:172 -#: src/tables/stock/StockTrackingTable.tsx:183 -msgid "Details" +msgid "Company Details" msgstr "" #: src/pages/company/CompanyDetail.tsx:175 @@ -4363,140 +5112,150 @@ msgstr "" #~ msgid "Delete company" #~ msgstr "Delete company" -#: src/pages/company/CompanyDetail.tsx:232 +#: src/pages/company/CompanyDetail.tsx:234 msgid "Assigned Stock" msgstr "" -#: src/pages/company/CompanyDetail.tsx:290 -#: src/tables/company/CompanyTable.tsx:86 +#: src/pages/company/CompanyDetail.tsx:273 +#: src/tables/company/CompanyTable.tsx:87 msgid "Edit Company" msgstr "" -#: src/pages/company/CompanyDetail.tsx:298 +#: src/pages/company/CompanyDetail.tsx:281 msgid "Delete Company" msgstr "" -#: src/pages/company/CompanyDetail.tsx:306 +#: src/pages/company/CompanyDetail.tsx:289 msgid "Company Actions" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:76 -#: src/pages/company/SupplierPartDetail.tsx:89 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:128 +#: src/pages/company/ManufacturerPartDetail.tsx:74 +#: src/pages/company/SupplierPartDetail.tsx:84 msgid "Internal Part" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:91 -#: src/pages/company/SupplierPartDetail.tsx:103 -msgid "External Link" -msgstr "" - -#: src/pages/company/ManufacturerPartDetail.tsx:109 -#: src/pages/company/SupplierPartDetail.tsx:144 -#: src/tables/purchasing/ManufacturerPartTable.tsx:56 +#: src/pages/company/ManufacturerPartDetail.tsx:108 +#: src/pages/company/SupplierPartDetail.tsx:156 +#: src/tables/purchasing/ManufacturerPartTable.tsx:58 msgid "Manufacturer Part Number" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:138 +#: src/pages/company/ManufacturerPartDetail.tsx:125 +#: src/pages/company/SupplierPartDetail.tsx:108 +msgid "External Link" +msgstr "" + +#: src/pages/company/ManufacturerPartDetail.tsx:146 +#: src/pages/company/SupplierPartDetail.tsx:215 +#: src/pages/part/PartDetail.tsx:576 +msgid "Part Details" +msgstr "" + +#: src/pages/company/ManufacturerPartDetail.tsx:149 msgid "Manufacturer Details" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:147 +#: src/pages/company/ManufacturerPartDetail.tsx:158 msgid "Manufacturer Part Details" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:153 -#: src/pages/part/PartDetail.tsx:532 +#: src/pages/company/ManufacturerPartDetail.tsx:164 +#: src/pages/part/PartDetail.tsx:582 msgid "Parameters" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:165 -#: src/pages/part/PartDetail.tsx:649 +#: src/pages/company/ManufacturerPartDetail.tsx:176 +#: src/pages/part/PartDetail.tsx:669 #: src/pages/purchasing/PurchasingIndex.tsx:31 msgid "Suppliers" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:208 -#: src/tables/purchasing/ManufacturerPartTable.tsx:84 +#: src/pages/company/ManufacturerPartDetail.tsx:204 +#: src/tables/purchasing/ManufacturerPartTable.tsx:86 msgid "Edit Manufacturer Part" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:215 -#: src/tables/purchasing/ManufacturerPartTable.tsx:72 -#: src/tables/purchasing/ManufacturerPartTable.tsx:103 +#: src/pages/company/ManufacturerPartDetail.tsx:211 +#: src/tables/purchasing/ManufacturerPartTable.tsx:74 +#: src/tables/purchasing/ManufacturerPartTable.tsx:106 msgid "Add Manufacturer Part" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:227 -#: src/tables/purchasing/ManufacturerPartTable.tsx:92 +#: src/pages/company/ManufacturerPartDetail.tsx:223 +#: src/tables/purchasing/ManufacturerPartTable.tsx:94 msgid "Delete Manufacturer Part" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:240 +#: src/pages/company/ManufacturerPartDetail.tsx:236 msgid "Manufacturer Part Actions" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:281 +#: src/pages/company/ManufacturerPartDetail.tsx:276 msgid "ManufacturerPart" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:163 -#: src/tables/part/PartPurchaseOrdersTable.tsx:71 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:156 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:197 -#: src/tables/purchasing/SupplierPartTable.tsx:131 +#: src/pages/company/SupplierPartDetail.tsx:99 +msgid "Part Description" +msgstr "" + +#: src/pages/company/SupplierPartDetail.tsx:175 +#: src/tables/part/PartPurchaseOrdersTable.tsx:72 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:162 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:203 +#: src/tables/purchasing/SupplierPartTable.tsx:133 msgid "Pack Quantity" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:174 +#: src/pages/company/SupplierPartDetail.tsx:186 msgid "Supplier Availability" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:181 +#: src/pages/company/SupplierPartDetail.tsx:193 msgid "Availability Updated" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:208 +#: src/pages/company/SupplierPartDetail.tsx:220 msgid "Availability" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:217 +#: src/pages/company/SupplierPartDetail.tsx:229 msgid "Supplier Part Details" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:223 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:296 +#: src/pages/company/SupplierPartDetail.tsx:235 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:320 msgid "Received Stock" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:247 -#: src/pages/part/PartPricingPanel.tsx:111 -#: src/pages/part/pricing/PricingOverviewPanel.tsx:121 +#: src/pages/company/SupplierPartDetail.tsx:259 +#: src/pages/part/PartPricingPanel.tsx:116 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:195 msgid "Supplier Pricing" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:294 +#: src/pages/company/SupplierPartDetail.tsx:284 msgid "Supplier Part Actions" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:319 -#: src/tables/purchasing/SupplierPartTable.tsx:210 +#: src/pages/company/SupplierPartDetail.tsx:308 +#: src/tables/purchasing/SupplierPartTable.tsx:213 msgid "Edit Supplier Part" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:327 -#: src/tables/purchasing/SupplierPartTable.tsx:218 +#: src/pages/company/SupplierPartDetail.tsx:316 +#: src/tables/purchasing/SupplierPartTable.tsx:221 msgid "Delete Supplier Part" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:335 -#: src/tables/purchasing/SupplierPartTable.tsx:163 +#: src/pages/company/SupplierPartDetail.tsx:324 +#: src/tables/purchasing/SupplierPartTable.tsx:165 msgid "Add Supplier Part" msgstr "" #: src/pages/part/CategoryDetail.tsx:93 -#: src/pages/stock/LocationDetail.tsx:101 -#: src/tables/settings/ErrorTable.tsx:36 +#: src/pages/stock/LocationDetail.tsx:95 +#: src/tables/settings/ErrorTable.tsx:63 +#: src/tables/settings/ErrorTable.tsx:108 msgid "Path" msgstr "" @@ -4504,357 +5263,357 @@ msgstr "" msgid "Parent Category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:126 +#: src/pages/part/CategoryDetail.tsx:132 msgid "Subcategories" msgstr "" -#: src/pages/part/CategoryDetail.tsx:133 -#: src/pages/stock/LocationDetail.tsx:141 -#: src/tables/part/PartCategoryTable.tsx:73 +#: src/pages/part/CategoryDetail.tsx:139 +#: src/pages/stock/LocationDetail.tsx:135 +#: src/tables/part/PartCategoryTable.tsx:85 #: src/tables/stock/StockLocationTable.tsx:49 msgid "Structural" msgstr "" -#: src/pages/part/CategoryDetail.tsx:139 +#: src/pages/part/CategoryDetail.tsx:145 msgid "Parent default location" msgstr "" -#: src/pages/part/CategoryDetail.tsx:146 +#: src/pages/part/CategoryDetail.tsx:152 msgid "Default location" msgstr "" -#: src/pages/part/CategoryDetail.tsx:157 +#: src/pages/part/CategoryDetail.tsx:163 msgid "Top level part category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:167 -#: src/pages/part/CategoryDetail.tsx:221 -#: src/tables/part/PartCategoryTable.tsx:102 +#: src/pages/part/CategoryDetail.tsx:173 +#: src/pages/part/CategoryDetail.tsx:226 +#: src/tables/part/PartCategoryTable.tsx:118 msgid "Edit Part Category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:180 -#: src/pages/stock/LocationDetail.tsx:233 +#: src/pages/part/CategoryDetail.tsx:186 +#: src/pages/stock/LocationDetail.tsx:227 msgid "Delete items" msgstr "" -#: src/pages/part/CategoryDetail.tsx:188 -#: src/pages/part/CategoryDetail.tsx:226 +#: src/pages/part/CategoryDetail.tsx:194 +#: src/pages/part/CategoryDetail.tsx:231 msgid "Delete Part Category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:191 +#: src/pages/part/CategoryDetail.tsx:197 msgid "Parts Action" msgstr "" -#: src/pages/part/CategoryDetail.tsx:192 +#: src/pages/part/CategoryDetail.tsx:198 msgid "Action for parts in this category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:197 +#: src/pages/part/CategoryDetail.tsx:203 msgid "Child Categories Action" msgstr "" -#: src/pages/part/CategoryDetail.tsx:198 +#: src/pages/part/CategoryDetail.tsx:204 msgid "Action for child categories in this category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:216 +#: src/pages/part/CategoryDetail.tsx:222 msgid "Category Actions" msgstr "" -#: src/pages/part/CategoryDetail.tsx:238 +#: src/pages/part/CategoryDetail.tsx:243 msgid "Category Details" msgstr "" -#: src/pages/part/PartDetail.tsx:163 -msgid "Variant of" +#: src/pages/part/PartAllocationPanel.tsx:23 +#: src/pages/stock/StockDetail.tsx:443 +#: src/tables/part/PartTable.tsx:99 +msgid "Build Order Allocations" msgstr "" -#: src/pages/part/PartDetail.tsx:170 -msgid "Revision of" -msgstr "" - -#: src/pages/part/PartDetail.tsx:177 -#: src/tables/stock/StockItemTable.tsx:58 -msgid "Revision" +#: src/pages/part/PartAllocationPanel.tsx:40 +#: src/pages/stock/StockDetail.tsx:458 +#: src/tables/part/PartTable.tsx:108 +msgid "Sales Order Allocations" msgstr "" #: src/pages/part/PartDetail.tsx:184 +msgid "Variant of" +msgstr "" + +#: src/pages/part/PartDetail.tsx:191 +msgid "Revision of" +msgstr "" + +#: src/pages/part/PartDetail.tsx:198 +#: src/tables/stock/StockItemTable.tsx:59 +msgid "Revision" +msgstr "" + +#: src/pages/part/PartDetail.tsx:205 #: src/tables/notifications/NotificationsTable.tsx:31 #: src/tables/part/PartCategoryTemplateTable.tsx:67 msgid "Category" msgstr "" -#: src/pages/part/PartDetail.tsx:190 +#: src/pages/part/PartDetail.tsx:211 msgid "Default Location" msgstr "" -#: src/pages/part/PartDetail.tsx:197 +#: src/pages/part/PartDetail.tsx:218 msgid "Category Default Location" msgstr "" -#: src/pages/part/PartDetail.tsx:204 +#: src/pages/part/PartDetail.tsx:225 #: src/tables/purchasing/ManufacturerPartParameterTable.tsx:44 msgid "Units" msgstr "" -#: src/pages/part/PartDetail.tsx:211 -#: src/tables/settings/PendingTasksTable.tsx:42 +#: src/pages/part/PartDetail.tsx:232 +#: src/tables/settings/PendingTasksTable.tsx:46 msgid "Keywords" msgstr "" -#: src/pages/part/PartDetail.tsx:218 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:186 -#: src/pages/sales/ReturnOrderDetail.tsx:165 -#: src/pages/sales/SalesOrderDetail.tsx:174 -msgid "Link" -msgstr "" - -#: src/pages/part/PartDetail.tsx:236 +#: src/pages/part/PartDetail.tsx:257 #: src/tables/bom/BomTable.tsx:320 -#: src/tables/build/BuildLineTable.tsx:155 +#: src/tables/build/BuildLineTable.tsx:286 #: src/tables/part/PartTable.tsx:288 -#: src/tables/sales/SalesOrderLineItemTable.tsx:103 +#: src/tables/sales/SalesOrderLineItemTable.tsx:111 msgid "Available Stock" msgstr "" -#: src/pages/part/PartDetail.tsx:243 +#: src/pages/part/PartDetail.tsx:264 msgid "Variant Stock" msgstr "" -#: src/pages/part/PartDetail.tsx:251 +#: src/pages/part/PartDetail.tsx:272 msgid "Minimum Stock" msgstr "" -#: src/pages/part/PartDetail.tsx:257 +#: src/pages/part/PartDetail.tsx:278 #: src/tables/bom/BomTable.tsx:237 -#: src/tables/build/BuildLineTable.tsx:117 -#: src/tables/sales/SalesOrderLineItemTable.tsx:141 +#: src/tables/build/BuildLineTable.tsx:248 +#: src/tables/sales/SalesOrderLineItemTable.tsx:149 msgid "On order" msgstr "" -#: src/pages/part/PartDetail.tsx:266 +#: src/pages/part/PartDetail.tsx:285 +msgid "Required for Orders" +msgstr "" + +#: src/pages/part/PartDetail.tsx:294 msgid "Allocated to Build Orders" msgstr "" -#: src/pages/part/PartDetail.tsx:274 +#: src/pages/part/PartDetail.tsx:305 msgid "Allocated to Sales Orders" msgstr "" -#: src/pages/part/PartDetail.tsx:281 -#: src/tables/bom/BomTable.tsx:261 -#: src/tables/bom/BomTable.tsx:293 -msgid "Can Build" -msgstr "" - -#: src/pages/part/PartDetail.tsx:288 -#: src/tables/bom/BomTable.tsx:245 -#: src/tables/part/PartTable.tsx:92 -msgid "Building" -msgstr "" - -#: src/pages/part/PartDetail.tsx:302 -#: src/pages/part/PartDetail.tsx:873 -#: src/tables/part/ParametricPartTable.tsx:228 -#: src/tables/part/PartTable.tsx:184 -msgid "Locked" -msgstr "" - -#: src/pages/part/PartDetail.tsx:308 -msgid "Template Part" -msgstr "" - #: src/pages/part/PartDetail.tsx:310 #~ msgid "Edit part" #~ msgstr "Edit part" -#: src/pages/part/PartDetail.tsx:313 -#: src/tables/bom/BomTable.tsx:315 -msgid "Assembled Part" +#: src/pages/part/PartDetail.tsx:315 +#: src/tables/bom/BomTable.tsx:261 +#: src/tables/bom/BomTable.tsx:293 +msgid "Can Build" msgstr "" -#: src/pages/part/PartDetail.tsx:318 -msgid "Component Part" +#: src/pages/part/PartDetail.tsx:322 +#: src/pages/part/PartDetail.tsx:905 +#: src/pages/stock/StockDetail.tsx:766 +#: src/tables/build/BuildOrderTestTable.tsx:220 +#: src/tables/stock/StockItemTable.tsx:334 +msgid "In Production" msgstr "" #: src/pages/part/PartDetail.tsx:322 #~ msgid "Duplicate part" #~ msgstr "Duplicate part" -#: src/pages/part/PartDetail.tsx:323 -#: src/tables/bom/BomTable.tsx:305 -msgid "Testable Part" -msgstr "" - #: src/pages/part/PartDetail.tsx:327 #~ msgid "Delete part" #~ msgstr "Delete part" -#: src/pages/part/PartDetail.tsx:329 +#: src/pages/part/PartDetail.tsx:336 +#: src/tables/part/ParametricPartTable.tsx:228 +#: src/tables/part/PartTable.tsx:184 +msgid "Locked" +msgstr "" + +#: src/pages/part/PartDetail.tsx:342 +msgid "Template Part" +msgstr "" + +#: src/pages/part/PartDetail.tsx:347 +#: src/tables/bom/BomTable.tsx:315 +msgid "Assembled Part" +msgstr "" + +#: src/pages/part/PartDetail.tsx:352 +msgid "Component Part" +msgstr "" + +#: src/pages/part/PartDetail.tsx:357 +#: src/tables/bom/BomTable.tsx:305 +msgid "Testable Part" +msgstr "" + +#: src/pages/part/PartDetail.tsx:363 #: src/tables/bom/BomTable.tsx:310 msgid "Trackable Part" msgstr "" -#: src/pages/part/PartDetail.tsx:334 +#: src/pages/part/PartDetail.tsx:368 msgid "Purchaseable Part" msgstr "" -#: src/pages/part/PartDetail.tsx:339 +#: src/pages/part/PartDetail.tsx:374 msgid "Saleable Part" msgstr "" -#: src/pages/part/PartDetail.tsx:344 +#: src/pages/part/PartDetail.tsx:379 msgid "Virtual Part" msgstr "" -#: src/pages/part/PartDetail.tsx:352 -#: src/tables/ColumnRenderers.tsx:220 +#: src/pages/part/PartDetail.tsx:393 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:215 +#: src/pages/sales/ReturnOrderDetail.tsx:185 +#: src/pages/sales/SalesOrderDetail.tsx:197 +#: src/tables/ColumnRenderers.tsx:234 msgid "Creation Date" msgstr "" -#: src/pages/part/PartDetail.tsx:357 +#: src/pages/part/PartDetail.tsx:398 msgid "Created By" msgstr "" -#: src/pages/part/PartDetail.tsx:372 +#: src/pages/part/PartDetail.tsx:413 msgid "Default Supplier" msgstr "" -#: src/pages/part/PartDetail.tsx:383 -#: src/pages/part/pricing/BomPricingPanel.tsx:79 +#: src/pages/part/PartDetail.tsx:424 +#: src/pages/part/pricing/BomPricingPanel.tsx:113 #: src/pages/part/pricing/VariantPricingPanel.tsx:95 #: src/tables/part/PartTable.tsx:161 msgid "Price Range" msgstr "" -#: src/pages/part/PartDetail.tsx:423 -#: src/pages/stock/StockDetail.tsx:135 +#: src/pages/part/PartDetail.tsx:462 +msgid "Latest Serial Number" +msgstr "" + +#: src/pages/part/PartDetail.tsx:472 +#: src/pages/stock/StockDetail.tsx:151 msgid "Last Stocktake" msgstr "" -#: src/pages/part/PartDetail.tsx:462 +#: src/pages/part/PartDetail.tsx:511 msgid "Stocktake By" msgstr "" -#: src/pages/part/PartDetail.tsx:526 -msgid "Part Details" -msgstr "" - -#: src/pages/part/PartDetail.tsx:557 +#: src/pages/part/PartDetail.tsx:611 msgid "Variants" msgstr "" -#: src/pages/part/PartDetail.tsx:564 -#: src/pages/stock/StockDetail.tsx:307 +#: src/pages/part/PartDetail.tsx:618 +#: src/pages/stock/StockDetail.tsx:430 msgid "Allocations" msgstr "" -#: src/pages/part/PartDetail.tsx:575 -#: src/pages/stock/StockDetail.tsx:318 -#: src/tables/part/PartTable.tsx:99 -msgid "Build Order Allocations" -msgstr "" - -#: src/pages/part/PartDetail.tsx:590 -#: src/pages/stock/StockDetail.tsx:333 -#: src/tables/part/PartTable.tsx:108 -msgid "Sales Order Allocations" -msgstr "" - -#: src/pages/part/PartDetail.tsx:607 +#: src/pages/part/PartDetail.tsx:625 msgid "Bill of Materials" msgstr "" -#: src/pages/part/PartDetail.tsx:623 +#: src/pages/part/PartDetail.tsx:643 msgid "Used In" msgstr "" -#: src/pages/part/PartDetail.tsx:630 +#: src/pages/part/PartDetail.tsx:650 msgid "Part Pricing" msgstr "" -#: src/pages/part/PartDetail.tsx:636 +#: src/pages/part/PartDetail.tsx:656 #: src/pages/purchasing/PurchasingIndex.tsx:42 msgid "Manufacturers" msgstr "" -#: src/pages/part/PartDetail.tsx:676 +#: src/pages/part/PartDetail.tsx:722 msgid "Scheduling" msgstr "" -#: src/pages/part/PartDetail.tsx:688 +#: src/pages/part/PartDetail.tsx:729 msgid "Test Templates" msgstr "" -#: src/pages/part/PartDetail.tsx:715 +#: src/pages/part/PartDetail.tsx:756 msgid "Related Parts" msgstr "" -#: src/pages/part/PartDetail.tsx:849 -#: src/pages/stock/StockDetail.tsx:156 -#: src/pages/stock/StockDetail.tsx:593 -#: src/tables/build/BuildLineTable.tsx:48 +#: src/pages/part/PartDetail.tsx:881 +#: src/pages/stock/StockDetail.tsx:172 +#: src/pages/stock/StockDetail.tsx:783 +#: src/tables/build/BuildLineTable.tsx:179 #: src/tables/part/PartTable.tsx:117 -#: src/tables/stock/StockItemTable.tsx:177 -#: src/tables/stock/StockItemTable.tsx:310 +#: src/tables/stock/StockItemTable.tsx:166 +#: src/tables/stock/StockItemTable.tsx:314 msgid "Available" msgstr "" -#: src/pages/part/PartDetail.tsx:855 +#: src/pages/part/PartDetail.tsx:887 msgid "No Stock" msgstr "" -#: src/pages/part/PartDetail.tsx:861 +#: src/pages/part/PartDetail.tsx:893 +#: src/tables/part/PartTestTemplateTable.tsx:106 +#: src/tables/stock/StockItemTestResultTable.tsx:383 +msgid "Required" +msgstr "" + +#: src/pages/part/PartDetail.tsx:899 #: src/tables/bom/BomTable.tsx:325 #: src/tables/part/PartTable.tsx:86 msgid "On Order" msgstr "" -#: src/pages/part/PartDetail.tsx:867 -#: src/pages/stock/StockDetail.tsx:576 -#: src/tables/build/BuildOrderTestTable.tsx:219 -#: src/tables/stock/StockItemTable.tsx:330 -msgid "In Production" -msgstr "" - -#: src/pages/part/PartDetail.tsx:892 +#: src/pages/part/PartDetail.tsx:924 msgid "Edit Part" msgstr "" -#: src/pages/part/PartDetail.tsx:927 +#: src/pages/part/PartDetail.tsx:959 #: src/tables/part/PartTable.tsx:331 -#: src/tables/part/PartTable.tsx:342 +#: src/tables/part/PartTable.tsx:343 msgid "Add Part" msgstr "" -#: src/pages/part/PartDetail.tsx:941 +#: src/pages/part/PartDetail.tsx:973 msgid "Delete Part" msgstr "" -#: src/pages/part/PartDetail.tsx:950 +#: src/pages/part/PartDetail.tsx:982 msgid "Deleting this part cannot be reversed" msgstr "" -#: src/pages/part/PartDetail.tsx:999 -#: src/pages/stock/LocationDetail.tsx:324 -#: src/tables/stock/StockItemTable.tsx:444 +#: src/pages/part/PartDetail.tsx:1021 +#: src/pages/stock/LocationDetail.tsx:310 +#: src/tables/stock/StockItemTable.tsx:449 msgid "Stock Actions" msgstr "" -#: src/pages/part/PartDetail.tsx:1007 +#: src/pages/part/PartDetail.tsx:1029 msgid "Count part stock" msgstr "" -#: src/pages/part/PartDetail.tsx:1018 +#: src/pages/part/PartDetail.tsx:1040 msgid "Transfer part stock" msgstr "" -#: src/pages/part/PartDetail.tsx:1027 +#: src/pages/part/PartDetail.tsx:1049 msgid "Part Actions" msgstr "" -#: src/pages/part/PartDetail.tsx:1087 +#: src/pages/part/PartDetail.tsx:1113 msgid "Select Part Revision" msgstr "" @@ -4862,113 +5621,214 @@ msgstr "" #~ msgid "Categories" #~ msgstr "Categories" -#: src/pages/part/PartPricingPanel.tsx:68 +#: src/pages/part/PartPricingPanel.tsx:72 msgid "No pricing data found for this part." msgstr "" -#: src/pages/part/PartPricingPanel.tsx:82 -#: src/pages/part/pricing/PricingOverviewPanel.tsx:190 +#: src/pages/part/PartPricingPanel.tsx:87 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:293 msgid "Pricing Overview" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:88 +#: src/pages/part/PartPricingPanel.tsx:93 msgid "Purchase History" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:102 -#: src/pages/part/pricing/PricingOverviewPanel.tsx:100 +#: src/pages/part/PartPricingPanel.tsx:107 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:174 msgid "Internal Pricing" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:120 -#: src/pages/part/pricing/PricingOverviewPanel.tsx:107 +#: src/pages/part/PartPricingPanel.tsx:125 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:181 msgid "BOM Pricing" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:127 -#: src/pages/part/pricing/PricingOverviewPanel.tsx:128 +#: src/pages/part/PartPricingPanel.tsx:132 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:202 msgid "Variant Pricing" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:139 -#: src/pages/part/pricing/PricingOverviewPanel.tsx:135 +#: src/pages/part/PartPricingPanel.tsx:144 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:209 msgid "Sale Pricing" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:146 -#: src/pages/part/pricing/PricingOverviewPanel.tsx:142 +#: src/pages/part/PartPricingPanel.tsx:151 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:216 msgid "Sale History" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:58 -#: src/pages/part/pricing/BomPricingPanel.tsx:138 -#: src/tables/ColumnRenderers.tsx:262 +#: src/pages/part/PartSchedulingDetail.tsx:47 +#: src/pages/part/PartSchedulingDetail.tsx:299 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:156 +msgid "Maximum" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:50 +#: src/pages/part/PartSchedulingDetail.tsx:289 +msgid "Scheduled" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:53 +#: src/pages/part/PartSchedulingDetail.tsx:294 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:144 +msgid "Minimum" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:68 +msgid "Order" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:92 +msgid "Quantity is speculative" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:101 +msgid "No date available for provided quantity" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:105 +msgid "Date is in the past" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:112 +msgid "Scheduled Quantity" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:240 +msgid "No information available" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:241 +msgid "There is no scheduling information available for the selected part" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:276 +msgid "Expected Quantity" +msgstr "" + +#: src/pages/part/PartStocktakeDetail.tsx:63 +#: src/tables/FilterSelectDrawer.tsx:167 +#: src/tables/FilterSelectDrawer.tsx:174 +#: src/tables/build/BuildOrderTestTable.tsx:135 +#: src/tables/purchasing/ManufacturerPartParameterTable.tsx:38 +#: src/tables/stock/StockItemTestResultTable.tsx:192 +msgid "Value" +msgstr "" + +#: src/pages/part/PartStocktakeDetail.tsx:82 +msgid "Edit Stocktake Entry" +msgstr "" + +#: src/pages/part/PartStocktakeDetail.tsx:90 +msgid "Delete Stocktake Entry" +msgstr "" + +#: src/pages/part/PartStocktakeDetail.tsx:96 +#: src/tables/settings/StocktakeReportTable.tsx:69 +msgid "Generate Stocktake Report" +msgstr "" + +#: src/pages/part/PartStocktakeDetail.tsx:101 +#: src/tables/settings/StocktakeReportTable.tsx:71 +msgid "Stocktake report scheduled" +msgstr "" + +#: src/pages/part/PartStocktakeDetail.tsx:119 +#: src/pages/part/PartStocktakeDetail.tsx:235 +#: src/pages/stock/StockDetail.tsx:303 +#: src/tables/stock/StockItemTable.tsx:249 +msgid "Stock Value" +msgstr "" + +#: src/pages/part/PartStocktakeDetail.tsx:139 +#: src/tables/settings/StocktakeReportTable.tsx:77 +msgid "New Stocktake Report" +msgstr "" + +#: src/pages/part/PartStocktakeDetail.tsx:258 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:295 +msgid "Minimum Value" +msgstr "" + +#: src/pages/part/PartStocktakeDetail.tsx:264 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:296 +msgid "Maximum Value" +msgstr "" + +#: src/pages/part/pricing/BomPricingPanel.tsx:87 +#: src/pages/part/pricing/BomPricingPanel.tsx:177 +#: src/tables/ColumnRenderers.tsx:276 #: src/tables/bom/BomTable.tsx:185 #: src/tables/general/ExtraLineItemTable.tsx:64 -#: src/tables/purchasing/PurchaseOrderTable.tsx:112 -#: src/tables/sales/ReturnOrderTable.tsx:104 -#: src/tables/sales/SalesOrderLineItemTable.tsx:89 -#: src/tables/sales/SalesOrderTable.tsx:136 +#: src/tables/purchasing/PurchaseOrderTable.tsx:113 +#: src/tables/sales/ReturnOrderTable.tsx:127 +#: src/tables/sales/SalesOrderLineItemTable.tsx:97 +#: src/tables/sales/SalesOrderTable.tsx:149 msgid "Total Price" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:78 -#: src/pages/part/pricing/BomPricingPanel.tsx:102 +#: src/pages/part/pricing/BomPricingPanel.tsx:112 +#: src/pages/part/pricing/BomPricingPanel.tsx:141 #: src/tables/bom/UsedInTable.tsx:49 +#: src/tables/build/BuildLineTable.tsx:296 #: src/tables/part/PartTable.tsx:202 msgid "Component" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:81 -#: src/pages/part/pricing/VariantPricingPanel.tsx:37 -#: src/pages/part/pricing/VariantPricingPanel.tsx:97 -msgid "Minimum Price" -msgstr "" - -#: src/pages/part/pricing/BomPricingPanel.tsx:82 -#: src/pages/part/pricing/VariantPricingPanel.tsx:45 -#: src/pages/part/pricing/VariantPricingPanel.tsx:98 -msgid "Maximum Price" -msgstr "" - #: src/pages/part/pricing/BomPricingPanel.tsx:112 #~ msgid "Minimum Total Price" #~ msgstr "Minimum Total Price" +#: src/pages/part/pricing/BomPricingPanel.tsx:115 +#: src/pages/part/pricing/VariantPricingPanel.tsx:37 +#: src/pages/part/pricing/VariantPricingPanel.tsx:97 +msgid "Minimum Price" +msgstr "" + +#: src/pages/part/pricing/BomPricingPanel.tsx:116 +#: src/pages/part/pricing/VariantPricingPanel.tsx:45 +#: src/pages/part/pricing/VariantPricingPanel.tsx:98 +msgid "Maximum Price" +msgstr "" + #: src/pages/part/pricing/BomPricingPanel.tsx:117 #~ msgid "Maximum Total Price" #~ msgstr "Maximum Total Price" -#: src/pages/part/pricing/BomPricingPanel.tsx:129 -#: src/pages/part/pricing/PriceBreakPanel.tsx:172 -#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:67 -#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:128 -#: src/pages/part/pricing/SupplierPricingPanel.tsx:62 +#: src/pages/part/pricing/BomPricingPanel.tsx:168 +#: src/pages/part/pricing/PriceBreakPanel.tsx:173 +#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:70 +#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:125 +#: src/pages/part/pricing/SupplierPricingPanel.tsx:66 +#: src/pages/stock/StockDetail.tsx:291 #: src/tables/bom/BomTable.tsx:176 #: src/tables/general/ExtraLineItemTable.tsx:56 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:223 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:225 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:92 +#: src/tables/stock/StockItemTable.tsx:239 msgid "Unit Price" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:154 +#: src/pages/part/pricing/BomPricingPanel.tsx:193 #: src/pages/part/pricing/VariantPricingPanel.tsx:53 -#: src/tables/purchasing/SupplierPartTable.tsx:148 +#: src/tables/purchasing/SupplierPartTable.tsx:150 msgid "Updated" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:219 +#: src/pages/part/pricing/BomPricingPanel.tsx:258 msgid "Pie Chart" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:220 +#: src/pages/part/pricing/BomPricingPanel.tsx:259 msgid "Bar Chart" msgstr "" #: src/pages/part/pricing/PriceBreakPanel.tsx:58 -#: src/pages/part/pricing/PriceBreakPanel.tsx:110 +#: src/pages/part/pricing/PriceBreakPanel.tsx:111 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:142 -#: src/tables/purchasing/SupplierPriceBreakTable.tsx:168 +#: src/tables/purchasing/SupplierPriceBreakTable.tsx:169 msgid "Add Price Break" msgstr "" @@ -4986,46 +5846,70 @@ msgstr "" msgid "Price Break" msgstr "" -#: src/pages/part/pricing/PriceBreakPanel.tsx:170 +#: src/pages/part/pricing/PriceBreakPanel.tsx:171 msgid "Price" msgstr "" -#: src/pages/part/pricing/PricingOverviewPanel.tsx:51 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:68 +msgid "Refreshing pricing data" +msgstr "" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:88 +msgid "Pricing data updated" +msgstr "" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:95 +msgid "Failed to update pricing data" +msgstr "" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:104 +msgid "Edit Pricing" +msgstr "" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:125 msgid "Pricing Category" msgstr "" -#: src/pages/part/pricing/PricingOverviewPanel.tsx:70 -msgid "Minimum" -msgstr "" - -#: src/pages/part/pricing/PricingOverviewPanel.tsx:82 -msgid "Maximum" -msgstr "" - -#: src/pages/part/pricing/PricingOverviewPanel.tsx:114 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:188 msgid "Purchase Pricing" msgstr "" -#: src/pages/part/pricing/PricingOverviewPanel.tsx:149 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:223 msgid "Override Pricing" msgstr "" -#: src/pages/part/pricing/PricingOverviewPanel.tsx:156 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:230 msgid "Overall Pricing" msgstr "" -#: src/pages/part/pricing/PricingOverviewPanel.tsx:175 -#: src/pages/stock/StockDetail.tsx:129 -#: src/tables/stock/StockItemTable.tsx:240 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:249 +#: src/pages/stock/StockDetail.tsx:145 +#: src/tables/stock/StockItemTable.tsx:275 msgid "Last Updated" msgstr "" -#: src/pages/part/pricing/PricingOverviewPanel.tsx:192 -msgid "Minimum Value" +#: src/pages/part/pricing/PricingOverviewPanel.tsx:253 +msgid "Pricing Not Set" msgstr "" -#: src/pages/part/pricing/PricingOverviewPanel.tsx:193 -msgid "Maximum Value" +#: src/pages/part/pricing/PricingOverviewPanel.tsx:254 +msgid "Pricing data has not been calculated for this part" +msgstr "" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:258 +msgid "Pricing Actions" +msgstr "" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:261 +msgid "Refresh" +msgstr "" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:262 +msgid "Refresh pricing data" +msgstr "" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:277 +msgid "Edit pricing data" msgstr "" #: src/pages/part/pricing/PricingPanel.tsx:24 @@ -5044,28 +5928,20 @@ msgstr "" msgid "Loading pricing data" msgstr "" -#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:40 -#: src/pages/part/pricing/SaleHistoryPanel.tsx:36 -#: src/tables/ColumnRenderers.tsx:201 -#: src/tables/build/BuildOrderTestTable.tsx:150 -#: src/tables/plugin/PluginListTable.tsx:139 -msgid "Date" -msgstr "" - #: src/pages/part/pricing/PurchaseHistoryPanel.tsx:47 msgid "Purchase Price" msgstr "" -#: src/pages/part/pricing/SaleHistoryPanel.tsx:22 -msgid "Sale Order" -msgstr "" +#: src/pages/part/pricing/SaleHistoryPanel.tsx:24 +#~ msgid "Sale Order" +#~ msgstr "Sale Order" -#: src/pages/part/pricing/SaleHistoryPanel.tsx:42 -#: src/pages/part/pricing/SaleHistoryPanel.tsx:92 +#: src/pages/part/pricing/SaleHistoryPanel.tsx:44 +#: src/pages/part/pricing/SaleHistoryPanel.tsx:87 msgid "Sale Price" msgstr "" -#: src/pages/part/pricing/SupplierPricingPanel.tsx:65 +#: src/pages/part/pricing/SupplierPricingPanel.tsx:69 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:83 msgid "Supplier Price" msgstr "" @@ -5075,23 +5951,23 @@ msgstr "" msgid "Variant Part" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:93 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:87 msgid "Edit Purchase Order" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:102 -#: src/tables/purchasing/PurchaseOrderTable.tsx:128 -#: src/tables/purchasing/PurchaseOrderTable.tsx:140 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:96 +#: src/tables/purchasing/PurchaseOrderTable.tsx:129 +#: src/tables/purchasing/PurchaseOrderTable.tsx:142 msgid "Add Purchase Order" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:127 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:121 msgid "Supplier Reference" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:158 -#: src/pages/sales/ReturnOrderDetail.tsx:137 -#: src/pages/sales/SalesOrderDetail.tsx:137 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:152 +#: src/pages/sales/ReturnOrderDetail.tsx:129 +#: src/pages/sales/SalesOrderDetail.tsx:132 msgid "Completed Line Items" msgstr "" @@ -5101,91 +5977,112 @@ msgstr "" #~ msgid "Order Currency," #~ msgstr "Order Currency," -#: src/pages/purchasing/PurchaseOrderDetail.tsx:165 -#: src/pages/sales/ReturnOrderDetail.tsx:144 -#: src/pages/sales/SalesOrderDetail.tsx:153 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:161 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:231 +msgid "Destination" +msgstr "" + +#: src/pages/purchasing/PurchaseOrderDetail.tsx:167 +#: src/pages/sales/ReturnOrderDetail.tsx:136 +#: src/pages/sales/SalesOrderDetail.tsx:148 msgid "Order Currency" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:172 -#: src/pages/sales/ReturnOrderDetail.tsx:151 -#: src/pages/sales/SalesOrderDetail.tsx:160 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:173 +#: src/pages/sales/ReturnOrderDetail.tsx:143 +#: src/pages/sales/SalesOrderDetail.tsx:155 msgid "Total Cost" msgstr "" #: src/pages/purchasing/PurchaseOrderDetail.tsx:207 -#: src/pages/sales/ReturnOrderDetail.tsx:186 -#: src/pages/sales/SalesOrderDetail.tsx:195 -msgid "Created On" +#: src/pages/sales/ReturnOrderDetail.tsx:183 +#: src/pages/sales/SalesOrderDetail.tsx:191 +#~ msgid "Created On" +#~ msgstr "Created On" + +#: src/pages/purchasing/PurchaseOrderDetail.tsx:221 +#: src/pages/sales/ReturnOrderDetail.tsx:193 +#: src/pages/sales/SalesOrderDetail.tsx:204 +msgid "Issue Date" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:252 -#: src/pages/sales/ReturnOrderDetail.tsx:231 -#: src/pages/sales/SalesOrderDetail.tsx:266 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:237 +#: src/pages/sales/ReturnOrderDetail.tsx:209 +#: src/pages/sales/SalesOrderDetail.tsx:219 +#: src/tables/build/BuildOrderTable.tsx:98 +#: src/tables/part/PartPurchaseOrdersTable.tsx:105 +#: src/tables/sales/ReturnOrderTable.tsx:122 +msgid "Completion Date" +msgstr "" + +#: src/pages/purchasing/PurchaseOrderDetail.tsx:276 +#: src/pages/sales/ReturnOrderDetail.tsx:248 +#: src/pages/sales/SalesOrderDetail.tsx:288 msgid "Order Details" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:280 -#: src/pages/sales/ReturnOrderDetail.tsx:258 -#: src/pages/sales/SalesOrderDetail.tsx:297 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:304 +#: src/pages/sales/ReturnOrderDetail.tsx:276 +#: src/pages/sales/SalesOrderDetail.tsx:319 msgid "Extra Line Items" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:337 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:346 msgid "Issue Purchase Order" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:345 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:354 msgid "Cancel Purchase Order" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:353 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:362 msgid "Hold Purchase Order" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:361 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:370 msgid "Complete Purchase Order" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:427 -#: src/pages/sales/ReturnOrderDetail.tsx:428 -#: src/pages/sales/SalesOrderDetail.tsx:468 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:425 +#: src/pages/sales/ReturnOrderDetail.tsx:424 +#: src/pages/sales/SalesOrderDetail.tsx:464 msgid "Order Actions" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:101 -#: src/pages/sales/SalesOrderDetail.tsx:107 -#: src/tables/sales/SalesOrderTable.tsx:124 +#: src/pages/sales/ReturnOrderDetail.tsx:92 +#: src/pages/sales/SalesOrderDetail.tsx:101 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:109 +#: src/tables/sales/SalesOrderTable.tsx:137 msgid "Customer Reference" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:315 +#: src/pages/sales/ReturnOrderDetail.tsx:322 msgid "Edit Return Order" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:324 -#: src/tables/sales/ReturnOrderTable.tsx:119 -#: src/tables/sales/ReturnOrderTable.tsx:128 +#: src/pages/sales/ReturnOrderDetail.tsx:331 +#: src/tables/sales/ReturnOrderTable.tsx:142 +#: src/tables/sales/ReturnOrderTable.tsx:152 msgid "Add Return Order" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:336 +#: src/pages/sales/ReturnOrderDetail.tsx:343 msgid "Issue Return Order" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:344 +#: src/pages/sales/ReturnOrderDetail.tsx:349 +#~ msgid "Order canceled" +#~ msgstr "Order canceled" + +#: src/pages/sales/ReturnOrderDetail.tsx:351 msgid "Cancel Return Order" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:347 -msgid "Order canceled" -msgstr "" - -#: src/pages/sales/ReturnOrderDetail.tsx:352 +#: src/pages/sales/ReturnOrderDetail.tsx:359 msgid "Hold Return Order" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:360 +#: src/pages/sales/ReturnOrderDetail.tsx:367 msgid "Complete Return Order" msgstr "" @@ -5193,117 +6090,193 @@ msgstr "" msgid "Customers" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:145 +#: src/pages/sales/SalesOrderDetail.tsx:140 msgid "Completed Shipments" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:243 -msgid "Edit Sales Order" -msgstr "" - -#: src/pages/sales/SalesOrderDetail.tsx:252 -#: src/tables/sales/SalesOrderTable.tsx:84 -#: src/tables/sales/SalesOrderTable.tsx:96 -msgid "Add Sales Order" -msgstr "" - #: src/pages/sales/SalesOrderDetail.tsx:256 #~ msgid "Pending Shipments" #~ msgstr "Pending Shipments" -#: src/pages/sales/SalesOrderDetail.tsx:313 +#: src/pages/sales/SalesOrderDetail.tsx:261 +msgid "Edit Sales Order" +msgstr "" + +#: src/pages/sales/SalesOrderDetail.tsx:274 +#: src/tables/sales/SalesOrderTable.tsx:96 +#: src/tables/sales/SalesOrderTable.tsx:109 +msgid "Add Sales Order" +msgstr "" + +#: src/pages/sales/SalesOrderDetail.tsx:335 msgid "Shipments" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:369 +#: src/pages/sales/SalesOrderDetail.tsx:376 msgid "Issue Sales Order" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:377 +#: src/pages/sales/SalesOrderDetail.tsx:384 msgid "Cancel Sales Order" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:385 +#: src/pages/sales/SalesOrderDetail.tsx:392 msgid "Hold Sales Order" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:393 +#: src/pages/sales/SalesOrderDetail.tsx:400 msgid "Complete Sales Order" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:432 +#: src/pages/sales/SalesOrderDetail.tsx:439 msgid "Ship Order" msgstr "" -#: src/pages/stock/LocationDetail.tsx:117 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:117 +#: src/tables/sales/SalesOrderShipmentTable.tsx:96 +msgid "Shipment Reference" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:124 +msgid "Allocated Items" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:133 +msgid "Tracking Number" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:141 +msgid "Invoice Number" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:149 +#: src/tables/ColumnRenderers.tsx:242 +#: src/tables/sales/SalesOrderAllocationTable.tsx:142 +#: src/tables/sales/SalesOrderShipmentTable.tsx:115 +msgid "Shipment Date" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:157 +#: src/tables/sales/SalesOrderShipmentTable.tsx:119 +msgid "Delivery Date" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:204 +msgid "Shipment Details" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:210 +msgid "Assigned Items" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:241 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:317 +#: src/tables/sales/SalesOrderShipmentTable.tsx:75 +msgid "Edit Shipment" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:248 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:322 +#: src/tables/sales/SalesOrderShipmentTable.tsx:67 +msgid "Cancel Shipment" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:261 +#: src/tables/sales/SalesOrderShipmentTable.tsx:83 +#: src/tables/sales/SalesOrderShipmentTable.tsx:151 +msgid "Complete Shipment" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:276 +#: src/tables/part/PartPurchaseOrdersTable.tsx:121 +msgid "Pending" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:277 +#: src/tables/sales/SalesOrderAllocationTable.tsx:148 +#: src/tables/sales/SalesOrderShipmentTable.tsx:108 +#: src/tables/sales/SalesOrderShipmentTable.tsx:197 +msgid "Shipped" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:279 +#: src/tables/sales/SalesOrderShipmentTable.tsx:202 +msgid "Delivered" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:293 +msgid "Send Shipment" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:312 +msgid "Shipment Actions" +msgstr "" + +#: src/pages/stock/LocationDetail.tsx:111 msgid "Parent Location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:135 +#: src/pages/stock/LocationDetail.tsx:129 msgid "Sublocations" msgstr "" -#: src/pages/stock/LocationDetail.tsx:147 +#: src/pages/stock/LocationDetail.tsx:141 #: src/tables/stock/StockLocationTable.tsx:54 msgid "External" msgstr "" -#: src/pages/stock/LocationDetail.tsx:153 +#: src/pages/stock/LocationDetail.tsx:147 #: src/tables/stock/StockLocationTable.tsx:63 msgid "Location Type" msgstr "" -#: src/pages/stock/LocationDetail.tsx:164 +#: src/pages/stock/LocationDetail.tsx:158 msgid "Top level stock location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:175 +#: src/pages/stock/LocationDetail.tsx:169 msgid "Location Details" msgstr "" -#: src/pages/stock/LocationDetail.tsx:201 +#: src/pages/stock/LocationDetail.tsx:195 msgid "Default Parts" msgstr "" -#: src/pages/stock/LocationDetail.tsx:220 -#: src/pages/stock/LocationDetail.tsx:351 +#: src/pages/stock/LocationDetail.tsx:214 +#: src/pages/stock/LocationDetail.tsx:336 #: src/tables/stock/StockLocationTable.tsx:123 msgid "Edit Stock Location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:241 -#: src/pages/stock/LocationDetail.tsx:356 +#: src/pages/stock/LocationDetail.tsx:235 +#: src/pages/stock/LocationDetail.tsx:341 msgid "Delete Stock Location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:244 +#: src/pages/stock/LocationDetail.tsx:238 msgid "Items Action" msgstr "" -#: src/pages/stock/LocationDetail.tsx:245 +#: src/pages/stock/LocationDetail.tsx:239 msgid "Action for stock items in this location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:250 +#: src/pages/stock/LocationDetail.tsx:244 msgid "Child Locations Action" msgstr "" -#: src/pages/stock/LocationDetail.tsx:251 +#: src/pages/stock/LocationDetail.tsx:245 msgid "Action for child locations in this location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:346 +#: src/pages/stock/LocationDetail.tsx:332 msgid "Location Actions" msgstr "" -#: src/pages/stock/StockDetail.tsx:108 +#: src/pages/stock/StockDetail.tsx:116 msgid "Base Part" msgstr "" -#: src/pages/stock/StockDetail.tsx:115 -msgid "Stock Status" -msgstr "" - #: src/pages/stock/StockDetail.tsx:155 #~ msgid "Link custom barcode to stock item" #~ msgstr "Link custom barcode to stock item" @@ -5312,113 +6285,179 @@ msgstr "" #~ msgid "Unlink custom barcode from stock item" #~ msgstr "Unlink custom barcode from stock item" -#: src/pages/stock/StockDetail.tsx:188 -msgid "Installed In" -msgstr "" - -#: src/pages/stock/StockDetail.tsx:204 -msgid "Consumed By" +#: src/pages/stock/StockDetail.tsx:178 +msgid "Allocated to Orders" msgstr "" #: src/pages/stock/StockDetail.tsx:205 #~ msgid "Edit stock item" #~ msgstr "Edit stock item" -#: src/pages/stock/StockDetail.tsx:213 -#: src/tables/build/BuildAllocatedStockTable.tsx:64 -#: src/tables/stock/StockTrackingTable.tsx:96 -msgid "Build Order" +#: src/pages/stock/StockDetail.tsx:209 +msgid "Installed In" msgstr "" #: src/pages/stock/StockDetail.tsx:217 #~ msgid "Delete stock item" #~ msgstr "Delete stock item" -#: src/pages/stock/StockDetail.tsx:291 +#: src/pages/stock/StockDetail.tsx:226 +msgid "Parent Item" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:230 +msgid "Parent stock item" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:236 +msgid "Consumed By" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:245 +#: src/tables/build/BuildAllocatedStockTable.tsx:77 +#: src/tables/stock/StockTrackingTable.tsx:100 +msgid "Build Order" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:283 +#: src/tables/stock/StockItemTable.tsx:270 +msgid "Expiry Date" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:414 msgid "Stock Details" msgstr "" -#: src/pages/stock/StockDetail.tsx:297 +#: src/pages/stock/StockDetail.tsx:420 msgid "Stock Tracking" msgstr "" -#: src/pages/stock/StockDetail.tsx:350 -msgid "Test Data" -msgstr "" - -#: src/pages/stock/StockDetail.tsx:364 -msgid "Installed Items" -msgstr "" - -#: src/pages/stock/StockDetail.tsx:371 -msgid "Child Items" -msgstr "" - -#: src/pages/stock/StockDetail.tsx:425 -msgid "Edit Stock Item" -msgstr "" - #: src/pages/stock/StockDetail.tsx:433 #~ msgid "Duplicate stock item" #~ msgstr "Duplicate stock item" -#: src/pages/stock/StockDetail.tsx:452 +#: src/pages/stock/StockDetail.tsx:475 +msgid "Test Data" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:489 +msgid "Installed Items" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:496 +msgid "Child Items" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:545 +msgid "Edit Stock Item" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:572 msgid "Delete Stock Item" msgstr "" -#: src/pages/stock/StockDetail.tsx:504 +#: src/pages/stock/StockDetail.tsx:604 +msgid "Serialize Stock Item" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:617 +msgid "Stock item serialized" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:623 +msgid "Return Stock Item" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:626 +msgid "Return this item into stock. This will remove the customer assignment." +msgstr "" + +#: src/pages/stock/StockDetail.tsx:636 +msgid "Item returned to stock" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:666 msgid "Stock Operations" msgstr "" -#: src/pages/stock/StockDetail.tsx:509 +#: src/pages/stock/StockDetail.tsx:671 msgid "Count stock" msgstr "" -#: src/pages/stock/StockDetail.tsx:519 -#: src/tables/stock/StockItemTable.tsx:449 -msgid "Add stock" +#: src/pages/stock/StockDetail.tsx:671 +#: src/tables/stock/StockItemTable.tsx:452 +#~ msgid "Add stock" +#~ msgstr "Add stock" + +#: src/pages/stock/StockDetail.tsx:680 +#: src/tables/stock/StockItemTable.tsx:461 +#~ msgid "Remove stock" +#~ msgstr "Remove stock" + +#: src/pages/stock/StockDetail.tsx:698 +#: src/tables/stock/StockItemTable.tsx:481 +#~ msgid "Transfer stock" +#~ msgstr "Transfer stock" + +#: src/pages/stock/StockDetail.tsx:699 +msgid "Serialize" msgstr "" -#: src/pages/stock/StockDetail.tsx:527 -#: src/tables/stock/StockItemTable.tsx:458 -msgid "Remove stock" +#: src/pages/stock/StockDetail.tsx:700 +msgid "Serialize stock" msgstr "" -#: src/pages/stock/StockDetail.tsx:534 +#: src/pages/stock/StockDetail.tsx:711 msgid "Transfer" msgstr "" -#: src/pages/stock/StockDetail.tsx:535 -#: src/tables/stock/StockItemTable.tsx:478 -msgid "Transfer stock" +#: src/pages/stock/StockDetail.tsx:722 +msgid "Return" msgstr "" -#: src/pages/stock/StockDetail.tsx:546 +#: src/pages/stock/StockDetail.tsx:723 +msgid "Return from customer" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:738 msgid "Stock Item Actions" msgstr "" -#: src/tables/ColumnRenderers.tsx:30 +#: src/pages/stock/StockDetail.tsx:808 +msgid "Stale" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:814 +msgid "Expired" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:820 +msgid "Unavailable" +msgstr "" + +#: src/tables/ColumnRenderers.tsx:36 msgid "Part is not active" msgstr "" -#: src/tables/ColumnRenderers.tsx:35 -msgid "Part is locked" +#: src/tables/ColumnRenderers.tsx:41 +#: src/tables/bom/BomTable.tsx:542 +#: src/tables/part/PartParameterTable.tsx:193 +#: src/tables/part/PartTestTemplateTable.tsx:253 +msgid "Part is Locked" msgstr "" -#: src/tables/ColumnRenderers.tsx:57 +#: src/tables/ColumnRenderers.tsx:41 +#~ msgid "Part is locked" +#~ msgstr "Part is locked" + +#: src/tables/ColumnRenderers.tsx:46 +msgid "You are subscribed to notifications for this part" +msgstr "" + +#: src/tables/ColumnRenderers.tsx:68 msgid "No location set" msgstr "" -#: src/tables/ColumnRenderers.tsx:228 -#: src/tables/sales/SalesOrderShipmentTable.tsx:79 -msgid "Shipment Date" -msgstr "" - -#: src/tables/ColumnRenderers.tsx:248 -#: src/tables/settings/CurrencyTable.tsx:23 -msgid "Currency" -msgstr "" - #: src/tables/ColumnSelect.tsx:16 #: src/tables/ColumnSelect.tsx:23 msgid "Select Columns" @@ -5452,91 +6491,116 @@ msgstr "" msgid "Download Data" msgstr "" -#: src/tables/Filter.tsx:89 -#: src/tables/build/BuildOrderTable.tsx:135 +#: src/tables/Filter.tsx:101 msgid "Assigned to me" msgstr "" -#: src/tables/Filter.tsx:90 -#: src/tables/build/BuildOrderTable.tsx:136 +#: src/tables/Filter.tsx:102 msgid "Show orders assigned to me" msgstr "" -#: src/tables/Filter.tsx:97 +#: src/tables/Filter.tsx:106 +#~ msgid "Show overdue orders" +#~ msgstr "Show overdue orders" + +#: src/tables/Filter.tsx:109 +#: src/tables/build/BuildOrderTable.tsx:120 +#: src/tables/sales/SalesOrderAllocationTable.tsx:59 msgid "Outstanding" msgstr "" -#: src/tables/Filter.tsx:98 -msgid "Show outstanding orders" +#: src/tables/Filter.tsx:110 +msgid "Show outstanding items" msgstr "" -#: src/tables/Filter.tsx:105 -#: src/tables/build/BuildOrderTable.tsx:128 +#: src/tables/Filter.tsx:117 msgid "Overdue" msgstr "" -#: src/tables/Filter.tsx:106 -msgid "Show overdue orders" +#: src/tables/Filter.tsx:118 +msgid "Show overdue items" msgstr "" -#: src/tables/FilterSelectDrawer.tsx:51 +#: src/tables/Filter.tsx:125 +msgid "Minimum Date" +msgstr "" + +#: src/tables/Filter.tsx:126 +msgid "Show items after this date" +msgstr "" + +#: src/tables/Filter.tsx:134 +msgid "Maximum Date" +msgstr "" + +#: src/tables/Filter.tsx:135 +msgid "Show items before this date" +msgstr "" + +#: src/tables/Filter.tsx:144 +msgid "Has Project Code" +msgstr "" + +#: src/tables/Filter.tsx:145 +msgid "Show orders with an assigned project code" +msgstr "" + +#: src/tables/FilterSelectDrawer.tsx:55 msgid "Remove filter" msgstr "" -#: src/tables/FilterSelectDrawer.tsx:130 +#: src/tables/FilterSelectDrawer.tsx:159 msgid "Select filter" msgstr "" -#: src/tables/FilterSelectDrawer.tsx:131 +#: src/tables/FilterSelectDrawer.tsx:160 msgid "Filter" msgstr "" -#: src/tables/FilterSelectDrawer.tsx:138 -#: src/tables/build/BuildOrderTestTable.tsx:134 -#: src/tables/purchasing/ManufacturerPartParameterTable.tsx:38 -#: src/tables/stock/StockItemTestResultTable.tsx:186 -msgid "Value" +#: src/tables/FilterSelectDrawer.tsx:168 +msgid "Select date value" msgstr "" -#: src/tables/FilterSelectDrawer.tsx:140 +#: src/tables/FilterSelectDrawer.tsx:176 msgid "Select filter value" msgstr "" -#: src/tables/FilterSelectDrawer.tsx:183 +#: src/tables/FilterSelectDrawer.tsx:219 +#: src/tables/InvenTreeTableHeader.tsx:214 msgid "Table Filters" msgstr "" -#: src/tables/FilterSelectDrawer.tsx:215 +#: src/tables/FilterSelectDrawer.tsx:251 msgid "Add Filter" msgstr "" -#: src/tables/FilterSelectDrawer.tsx:224 +#: src/tables/FilterSelectDrawer.tsx:260 msgid "Clear Filters" msgstr "" -#: src/tables/InvenTreeTable.tsx:123 -#: src/tables/InvenTreeTable.tsx:431 -#: src/tables/InvenTreeTable.tsx:455 +#: src/tables/InvenTreeTable.tsx:96 +#: src/tables/InvenTreeTable.tsx:417 +#: src/tables/InvenTreeTable.tsx:441 msgid "No records found" msgstr "" -#: src/tables/InvenTreeTable.tsx:466 +#: src/tables/InvenTreeTable.tsx:452 msgid "Server returned incorrect data type" msgstr "" -#: src/tables/InvenTreeTable.tsx:474 +#: src/tables/InvenTreeTable.tsx:460 msgid "Bad request" msgstr "" -#: src/tables/InvenTreeTable.tsx:477 +#: src/tables/InvenTreeTable.tsx:463 msgid "Unauthorized" msgstr "" -#: src/tables/InvenTreeTable.tsx:480 +#: src/tables/InvenTreeTable.tsx:466 msgid "Forbidden" msgstr "" -#: src/tables/InvenTreeTable.tsx:483 +#: src/tables/InvenTreeTable.tsx:469 msgid "Not found" msgstr "" @@ -5544,18 +6608,6 @@ msgstr "" #~ msgid "Are you sure you want to delete the selected records?" #~ msgstr "Are you sure you want to delete the selected records?" -#: src/tables/InvenTreeTable.tsx:525 -msgid "Delete Selected Items" -msgstr "" - -#: src/tables/InvenTreeTable.tsx:529 -msgid "Are you sure you want to delete the selected items?" -msgstr "" - -#: src/tables/InvenTreeTable.tsx:531 -msgid "This action cannot be undone!" -msgstr "" - #: src/tables/InvenTreeTable.tsx:535 #~ msgid "Deleted records" #~ msgstr "Deleted records" @@ -5568,31 +6620,56 @@ msgstr "" #~ msgid "Failed to delete records" #~ msgstr "Failed to delete records" +#: src/tables/InvenTreeTable.tsx:552 +#~ msgid "This action cannot be undone!" +#~ msgstr "This action cannot be undone!" + #: src/tables/InvenTreeTable.tsx:594 #: src/tables/InvenTreeTable.tsx:595 #~ msgid "Print actions" #~ msgstr "Print actions" -#: src/tables/InvenTreeTable.tsx:618 -#: src/tables/InvenTreeTable.tsx:619 -msgid "Barcode actions" +#: src/tables/InvenTreeTable.tsx:655 +#: src/tables/InvenTreeTable.tsx:656 +#~ msgid "Barcode actions" +#~ msgstr "Barcode actions" + +#: src/tables/InvenTreeTable.tsx:712 +#~ msgid "Table filters" +#~ msgstr "Table filters" + +#: src/tables/InvenTreeTable.tsx:725 +#~ msgid "Clear custom query filters" +#~ msgstr "Clear custom query filters" + +#: src/tables/InvenTreeTableHeader.tsx:98 +msgid "Delete Selected Items" msgstr "" -#: src/tables/InvenTreeTable.tsx:628 +#: src/tables/InvenTreeTableHeader.tsx:102 +msgid "Are you sure you want to delete the selected items?" +msgstr "" + +#: src/tables/InvenTreeTableHeader.tsx:104 +#: src/tables/plugin/PluginListTable.tsx:305 +msgid "This action cannot be undone" +msgstr "" + +#: src/tables/InvenTreeTableHeader.tsx:142 +msgid "Custom table filters are active" +msgstr "" + +#: src/tables/InvenTreeTableHeader.tsx:169 msgid "Delete selected records" msgstr "" -#: src/tables/InvenTreeTable.tsx:649 +#: src/tables/InvenTreeTableHeader.tsx:188 msgid "Refresh data" msgstr "" -#: src/tables/InvenTreeTable.tsx:675 -msgid "Table filters" -msgstr "" - #: src/tables/TableHoverCard.tsx:35 -msgid "item-{idx}" -msgstr "" +#~ msgid "item-{idx}" +#~ msgstr "item-{idx}" #: src/tables/UploadAction.tsx:7 #~ msgid "Upload Data" @@ -5607,31 +6684,36 @@ msgid "Part Information" msgstr "" #: src/tables/bom/BomTable.tsx:212 -#: src/tables/build/BuildLineTable.tsx:126 +#: src/tables/build/BuildLineTable.tsx:257 #: src/tables/part/PartTable.tsx:125 msgid "External stock" msgstr "" #: src/tables/bom/BomTable.tsx:220 -#: src/tables/build/BuildLineTable.tsx:89 +#: src/tables/build/BuildLineTable.tsx:220 msgid "Includes substitute stock" msgstr "" #: src/tables/bom/BomTable.tsx:229 -#: src/tables/build/BuildLineTable.tsx:99 -#: src/tables/sales/SalesOrderLineItemTable.tsx:127 +#: src/tables/build/BuildLineTable.tsx:230 +#: src/tables/sales/SalesOrderLineItemTable.tsx:135 msgid "Includes variant stock" msgstr "" +#: src/tables/bom/BomTable.tsx:245 +#: src/tables/part/PartTable.tsx:92 +msgid "Building" +msgstr "" + #: src/tables/bom/BomTable.tsx:254 #: src/tables/part/PartTable.tsx:153 -#: src/tables/sales/SalesOrderLineItemTable.tsx:150 -#: src/tables/stock/StockItemTable.tsx:216 +#: src/tables/sales/SalesOrderLineItemTable.tsx:158 +#: src/tables/stock/StockItemTable.tsx:206 msgid "Stock Information" msgstr "" #: src/tables/bom/BomTable.tsx:285 -#: src/tables/build/BuildLineTable.tsx:248 +#: src/tables/build/BuildLineTable.tsx:409 msgid "Consumable item" msgstr "" @@ -5644,7 +6726,7 @@ msgstr "" #~ msgstr "Create BOM Item" #: src/tables/bom/BomTable.tsx:306 -#: src/tables/build/BuildLineTable.tsx:69 +#: src/tables/build/BuildLineTable.tsx:200 msgid "Show testable items" msgstr "" @@ -5657,11 +6739,12 @@ msgid "Show trackable items" msgstr "" #: src/tables/bom/BomTable.tsx:316 -#: src/tables/build/BuildLineTable.tsx:64 +#: src/tables/build/BuildLineTable.tsx:195 msgid "Show assembled items" msgstr "" #: src/tables/bom/BomTable.tsx:321 +#: src/tables/build/BuildLineTable.tsx:180 msgid "Show items with available stock" msgstr "" @@ -5705,7 +6788,7 @@ msgstr "" #: src/tables/bom/BomTable.tsx:345 #: src/tables/bom/UsedInTable.tsx:79 -#: src/tables/build/BuildLineTable.tsx:58 +#: src/tables/build/BuildLineTable.tsx:189 msgid "Optional" msgstr "" @@ -5723,7 +6806,7 @@ msgstr "" #~ msgstr "Bom item deleted" #: src/tables/bom/BomTable.tsx:350 -#: src/tables/build/BuildLineTable.tsx:53 +#: src/tables/build/BuildLineTable.tsx:184 msgid "Consumable" msgstr "" @@ -5749,12 +6832,12 @@ msgid "Show items with pricing" msgstr "" #: src/tables/bom/BomTable.tsx:378 -#: src/tables/bom/BomTable.tsx:511 +#: src/tables/bom/BomTable.tsx:512 msgid "Import BOM Data" msgstr "" #: src/tables/bom/BomTable.tsx:388 -#: src/tables/bom/BomTable.tsx:523 +#: src/tables/bom/BomTable.tsx:526 msgid "Add BOM Item" msgstr "" @@ -5780,7 +6863,7 @@ msgstr "" #: src/tables/bom/BomTable.tsx:423 #: src/tables/bom/BomTable.tsx:426 -#: src/tables/bom/BomTable.tsx:517 +#: src/tables/bom/BomTable.tsx:519 msgid "Validate BOM" msgstr "" @@ -5812,21 +6895,15 @@ msgstr "" msgid "Edit Substitutes" msgstr "" -#: src/tables/bom/BomTable.tsx:539 -#: src/tables/part/PartParameterTable.tsx:193 -#: src/tables/part/PartTestTemplateTable.tsx:252 -msgid "Part is Locked" -msgstr "" - -#: src/tables/bom/BomTable.tsx:544 +#: src/tables/bom/BomTable.tsx:547 msgid "Bill of materials cannot be edited, as the part is locked" msgstr "" #: src/tables/bom/UsedInTable.tsx:33 -#: src/tables/build/BuildLineTable.tsx:63 +#: src/tables/build/BuildLineTable.tsx:194 #: src/tables/part/ParametricPartTable.tsx:233 #: src/tables/part/PartTable.tsx:190 -#: src/tables/stock/StockItemTable.tsx:300 +#: src/tables/stock/StockItemTable.tsx:304 msgid "Assembly" msgstr "" @@ -5844,285 +6921,347 @@ msgstr "" msgid "Show trackable assemblies" msgstr "" -#: src/tables/build/BuildAllocatedStockTable.tsx:54 +#: src/tables/build/BuildAllocatedStockTable.tsx:56 msgid "Allocated to Output" msgstr "" -#: src/tables/build/BuildAllocatedStockTable.tsx:55 +#: src/tables/build/BuildAllocatedStockTable.tsx:57 msgid "Show items allocated to a build output" msgstr "" -#: src/tables/build/BuildAllocatedStockTable.tsx:76 -#: src/tables/part/PartPurchaseOrdersTable.tsx:125 -#: src/tables/sales/SalesOrderAllocationTable.tsx:62 +#: src/tables/build/BuildAllocatedStockTable.tsx:65 +#: src/tables/build/BuildOrderTable.tsx:159 +#: src/tables/part/PartParameterTable.tsx:212 +#: src/tables/part/PartPurchaseOrdersTable.tsx:138 +#: src/tables/sales/ReturnOrderTable.tsx:84 +#: src/tables/sales/SalesOrderAllocationTable.tsx:68 +#: src/tables/sales/SalesOrderTable.tsx:84 +#: src/tables/stock/StockItemTable.tsx:339 +msgid "Include Variants" +msgstr "" + +#: src/tables/build/BuildAllocatedStockTable.tsx:66 +#: src/tables/build/BuildOrderTable.tsx:160 +#: src/tables/part/PartPurchaseOrdersTable.tsx:139 +#: src/tables/sales/ReturnOrderTable.tsx:85 +#: src/tables/sales/SalesOrderAllocationTable.tsx:69 +#: src/tables/sales/SalesOrderTable.tsx:85 +msgid "Include orders for part variants" +msgstr "" + +#: src/tables/build/BuildAllocatedStockTable.tsx:89 +#: src/tables/part/PartPurchaseOrdersTable.tsx:131 +#: src/tables/sales/SalesOrderAllocationTable.tsx:93 msgid "Order Status" msgstr "" -#: src/tables/build/BuildAllocatedStockTable.tsx:96 -#: src/tables/sales/SalesOrderAllocationTable.tsx:75 +#: src/tables/build/BuildAllocatedStockTable.tsx:117 +#: src/tables/sales/SalesOrderAllocationTable.tsx:126 msgid "Allocated Quantity" msgstr "" -#: src/tables/build/BuildAllocatedStockTable.tsx:116 -#: src/tables/sales/SalesOrderAllocationTable.tsx:94 +#: src/tables/build/BuildAllocatedStockTable.tsx:137 +#: src/tables/sales/SalesOrderAllocationTable.tsx:120 msgid "Available Quantity" msgstr "" -#: src/tables/build/BuildAllocatedStockTable.tsx:126 -#: src/tables/build/BuildOrderTestTable.tsx:176 -#: src/tables/build/BuildOrderTestTable.tsx:200 -#: src/tables/build/BuildOutputTable.tsx:312 -msgid "Build Output" +#: src/tables/build/BuildAllocatedStockTable.tsx:164 +#: src/tables/build/BuildLineTable.tsx:513 +msgid "Edit Stock Allocation" msgstr "" -#: src/tables/build/BuildAllocatedStockTable.tsx:143 -msgid "Edit Build Item" -msgstr "" +#: src/tables/build/BuildAllocatedStockTable.tsx:164 +#~ msgid "Edit Build Item" +#~ msgstr "Edit Build Item" -#: src/tables/build/BuildAllocatedStockTable.tsx:153 -msgid "Delete Build Item" -msgstr "" +#: src/tables/build/BuildAllocatedStockTable.tsx:174 +#~ msgid "Delete Build Item" +#~ msgstr "Delete Build Item" -#: src/tables/build/BuildLineTable.tsx:43 -#: src/tables/stock/StockItemTable.tsx:305 -msgid "Allocated" -msgstr "" - -#: src/tables/build/BuildLineTable.tsx:44 -msgid "Show allocated lines" -msgstr "" - -#: src/tables/build/BuildLineTable.tsx:49 -msgid "Show lines with available stock" -msgstr "" - -#: src/tables/build/BuildLineTable.tsx:54 -msgid "Show consumable lines" +#: src/tables/build/BuildAllocatedStockTable.tsx:177 +#: src/tables/build/BuildLineTable.tsx:526 +msgid "Delete Stock Allocation" msgstr "" #: src/tables/build/BuildLineTable.tsx:59 +#~ msgid "Show lines with available stock" +#~ msgstr "Show lines with available stock" + +#: src/tables/build/BuildLineTable.tsx:175 +msgid "Show allocated lines" +msgstr "" + +#: src/tables/build/BuildLineTable.tsx:185 +msgid "Show consumable lines" +msgstr "" + +#: src/tables/build/BuildLineTable.tsx:190 msgid "Show optional lines" msgstr "" -#: src/tables/build/BuildLineTable.tsx:68 +#: src/tables/build/BuildLineTable.tsx:199 #: src/tables/part/PartTable.tsx:208 msgid "Testable" msgstr "" -#: src/tables/build/BuildLineTable.tsx:73 -#: src/tables/stock/StockItemTable.tsx:364 +#: src/tables/build/BuildLineTable.tsx:204 +#: src/tables/stock/StockItemTable.tsx:368 msgid "Tracked" msgstr "" -#: src/tables/build/BuildLineTable.tsx:74 +#: src/tables/build/BuildLineTable.tsx:205 msgid "Show tracked lines" msgstr "" -#: src/tables/build/BuildLineTable.tsx:108 -#: src/tables/sales/SalesOrderLineItemTable.tsx:133 +#: src/tables/build/BuildLineTable.tsx:239 +#: src/tables/sales/SalesOrderLineItemTable.tsx:141 msgid "In production" msgstr "" -#: src/tables/build/BuildLineTable.tsx:136 +#: src/tables/build/BuildLineTable.tsx:267 msgid "Insufficient stock" msgstr "" -#: src/tables/build/BuildLineTable.tsx:152 -#: src/tables/sales/SalesOrderLineItemTable.tsx:121 -#: src/tables/stock/StockItemTable.tsx:186 +#: src/tables/build/BuildLineTable.tsx:283 +#: src/tables/sales/SalesOrderLineItemTable.tsx:129 +#: src/tables/stock/StockItemTable.tsx:175 msgid "No stock available" msgstr "" -#: src/tables/build/BuildLineTable.tsx:201 +#: src/tables/build/BuildLineTable.tsx:355 msgid "Gets Inherited" msgstr "" -#: src/tables/build/BuildLineTable.tsx:210 +#: src/tables/build/BuildLineTable.tsx:366 msgid "Unit Quantity" msgstr "" -#: src/tables/build/BuildLineTable.tsx:267 -#: src/tables/sales/SalesOrderLineItemTable.tsx:230 +#: src/tables/build/BuildLineTable.tsx:381 +msgid "Required Quantity" +msgstr "" + +#: src/tables/build/BuildLineTable.tsx:432 +#: src/tables/sales/SalesOrderLineItemTable.tsx:254 msgid "Create Build Order" msgstr "" -#: src/tables/build/BuildLineTable.tsx:298 -msgid "Allocate Stock" +#: src/tables/build/BuildLineTable.tsx:460 +msgid "Auto allocation in progress" msgstr "" -#: src/tables/build/BuildLineTable.tsx:305 +#: src/tables/build/BuildLineTable.tsx:463 +#: src/tables/build/BuildLineTable.tsx:632 +msgid "Auto Allocate Stock" +msgstr "" + +#: src/tables/build/BuildLineTable.tsx:464 +msgid "Automatically allocate stock to this build according to the selected options" +msgstr "" + +#: src/tables/build/BuildLineTable.tsx:482 +#: src/tables/build/BuildLineTable.tsx:496 +#: src/tables/build/BuildLineTable.tsx:579 +#: src/tables/build/BuildLineTable.tsx:664 +#: src/tables/build/BuildOutputTable.tsx:314 +#: src/tables/build/BuildOutputTable.tsx:319 +msgid "Deallocate Stock" +msgstr "" + +#: src/tables/build/BuildLineTable.tsx:498 +msgid "Deallocate all untracked stock for this build order" +msgstr "" + +#: src/tables/build/BuildLineTable.tsx:500 +msgid "Deallocate stock from the selected line item" +msgstr "" + +#: src/tables/build/BuildLineTable.tsx:504 +msgid "Stock has been deallocated" +msgstr "" + +#: src/tables/build/BuildLineTable.tsx:589 msgid "Order Stock" msgstr "" -#: src/tables/build/BuildLineTable.tsx:312 +#: src/tables/build/BuildLineTable.tsx:596 msgid "Build Stock" msgstr "" -#: src/tables/build/BuildOrderTable.tsx:111 -msgid "Show active orders" +#: src/tables/build/BuildLineTable.tsx:610 +msgid "View Part" msgstr "" #: src/tables/build/BuildOrderTable.tsx:116 -msgid "Cascade" -msgstr "" +#~ msgid "Cascade" +#~ msgstr "Cascade" #: src/tables/build/BuildOrderTable.tsx:117 -msgid "Display recursive child orders" +#~ msgid "Display recursive child orders" +#~ msgstr "Display recursive child orders" + +#: src/tables/build/BuildOrderTable.tsx:121 +msgid "Show outstanding orders" msgstr "" -#: src/tables/build/BuildOrderTable.tsx:123 -#: src/tables/part/PartPurchaseOrdersTable.tsx:126 -#: src/tables/purchasing/PurchaseOrderTable.tsx:56 -#: src/tables/sales/ReturnOrderTable.tsx:47 -#: src/tables/sales/SalesOrderTable.tsx:54 +#: src/tables/build/BuildOrderTable.tsx:121 +#~ msgid "Show active orders" +#~ msgstr "Show active orders" + +#: src/tables/build/BuildOrderTable.tsx:122 +#~ msgid "Show overdue status" +#~ msgstr "Show overdue status" + +#: src/tables/build/BuildOrderTable.tsx:126 +#: src/tables/part/PartPurchaseOrdersTable.tsx:132 +#: src/tables/purchasing/PurchaseOrderTable.tsx:59 +#: src/tables/sales/ReturnOrderTable.tsx:57 +#: src/tables/sales/SalesOrderTable.tsx:57 msgid "Filter by order status" msgstr "" -#: src/tables/build/BuildOrderTable.tsx:130 -msgid "Show overdue status" -msgstr "" - -#: src/tables/build/BuildOrderTable.tsx:141 -#: src/tables/purchasing/PurchaseOrderTable.tsx:65 -#: src/tables/sales/ReturnOrderTable.tsx:56 -#: src/tables/sales/SalesOrderTable.tsx:63 +#: src/tables/build/BuildOrderTable.tsx:136 +#: src/tables/purchasing/PurchaseOrderTable.tsx:70 +#: src/tables/sales/ReturnOrderTable.tsx:68 +#: src/tables/sales/SalesOrderTable.tsx:68 msgid "Filter by project code" msgstr "" -#: src/tables/build/BuildOrderTable.tsx:146 -#: src/tables/purchasing/PurchaseOrderTable.tsx:70 -#: src/tables/sales/ReturnOrderTable.tsx:61 -#: src/tables/sales/SalesOrderTable.tsx:68 -msgid "Has Project Code" -msgstr "" - -#: src/tables/build/BuildOrderTable.tsx:147 +#: src/tables/build/BuildOrderTable.tsx:139 #: src/tables/purchasing/PurchaseOrderTable.tsx:71 #: src/tables/sales/ReturnOrderTable.tsx:62 #: src/tables/sales/SalesOrderTable.tsx:69 -msgid "Filter by whether the purchase order has a project code" -msgstr "" +#~ msgid "Filter by whether the purchase order has a project code" +#~ msgstr "Filter by whether the purchase order has a project code" -#: src/tables/build/BuildOrderTable.tsx:152 +#: src/tables/build/BuildOrderTable.tsx:143 msgid "Filter by user who issued this order" msgstr "" -#: src/tables/build/BuildOrderTable.tsx:158 -#: src/tables/purchasing/PurchaseOrderTable.tsx:76 -#: src/tables/sales/ReturnOrderTable.tsx:67 -#: src/tables/sales/SalesOrderTable.tsx:74 +#: src/tables/build/BuildOrderTable.tsx:149 +#: src/tables/purchasing/PurchaseOrderTable.tsx:77 +#: src/tables/sales/ReturnOrderTable.tsx:75 +#: src/tables/sales/SalesOrderTable.tsx:75 msgid "Filter by responsible owner" msgstr "" -#: src/tables/build/BuildOrderTestTable.tsx:75 -#: src/tables/build/BuildOrderTestTable.tsx:111 -#: src/tables/stock/StockItemTestResultTable.tsx:257 -#: src/tables/stock/StockItemTestResultTable.tsx:329 -#: src/tables/stock/StockItemTestResultTable.tsx:384 +#: src/tables/build/BuildOrderTestTable.tsx:76 +#: src/tables/build/BuildOrderTestTable.tsx:112 +#: src/tables/stock/StockItemTestResultTable.tsx:275 +#: src/tables/stock/StockItemTestResultTable.tsx:347 +#: src/tables/stock/StockItemTestResultTable.tsx:403 msgid "Add Test Result" msgstr "" -#: src/tables/build/BuildOrderTestTable.tsx:82 -#: src/tables/stock/StockItemTestResultTable.tsx:259 +#: src/tables/build/BuildOrderTestTable.tsx:83 +#: src/tables/stock/StockItemTestResultTable.tsx:277 msgid "Test result added" msgstr "" -#: src/tables/build/BuildOrderTestTable.tsx:110 -#: src/tables/stock/StockItemTestResultTable.tsx:174 +#: src/tables/build/BuildOrderTestTable.tsx:111 +#: src/tables/stock/StockItemTestResultTable.tsx:180 msgid "No Result" msgstr "" -#: src/tables/build/BuildOrderTestTable.tsx:220 +#: src/tables/build/BuildOrderTestTable.tsx:221 msgid "Show build outputs currently in production" msgstr "" +#: src/tables/build/BuildOutputTable.tsx:76 +msgid "Build Output Stock Allocation" +msgstr "" + #: src/tables/build/BuildOutputTable.tsx:161 #~ msgid "Delete build output" #~ msgstr "Delete build output" -#: src/tables/build/BuildOutputTable.tsx:173 -#: src/tables/build/BuildOutputTable.tsx:211 +#: src/tables/build/BuildOutputTable.tsx:258 +#: src/tables/build/BuildOutputTable.tsx:374 msgid "Add Build Output" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:216 +#: src/tables/build/BuildOutputTable.tsx:304 +#~ msgid "Edit build output" +#~ msgstr "Edit build output" + +#: src/tables/build/BuildOutputTable.tsx:306 +#: src/tables/build/BuildOutputTable.tsx:417 +msgid "Edit Build Output" +msgstr "" + +#: src/tables/build/BuildOutputTable.tsx:321 +msgid "This action will deallocate all stock from the selected build output" +msgstr "" + +#: src/tables/build/BuildOutputTable.tsx:341 msgid "Complete selected outputs" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:226 +#: src/tables/build/BuildOutputTable.tsx:352 msgid "Scrap selected outputs" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:236 +#: src/tables/build/BuildOutputTable.tsx:363 msgid "Cancel selected outputs" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:252 +#: src/tables/build/BuildOutputTable.tsx:385 msgid "Allocate" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:253 +#: src/tables/build/BuildOutputTable.tsx:386 msgid "Allocate stock to build output" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:259 +#: src/tables/build/BuildOutputTable.tsx:396 msgid "Deallocate" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:260 +#: src/tables/build/BuildOutputTable.tsx:397 msgid "Deallocate stock from build output" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:267 +#: src/tables/build/BuildOutputTable.tsx:408 msgid "Complete build output" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:276 +#: src/tables/build/BuildOutputTable.tsx:424 msgid "Scrap" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:277 +#: src/tables/build/BuildOutputTable.tsx:425 msgid "Scrap build output" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:280 -#~ msgid "Allocated Items" -#~ msgstr "Allocated Items" - -#: src/tables/build/BuildOutputTable.tsx:287 +#: src/tables/build/BuildOutputTable.tsx:435 msgid "Cancel build output" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:325 -msgid "Batch" -msgstr "" - -#: src/tables/build/BuildOutputTable.tsx:340 +#: src/tables/build/BuildOutputTable.tsx:488 msgid "Allocated Lines" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:355 +#: src/tables/build/BuildOutputTable.tsx:503 msgid "Required Tests" msgstr "" -#: src/tables/company/AddressTable.tsx:121 -#: src/tables/company/AddressTable.tsx:185 +#: src/tables/company/AddressTable.tsx:118 +#: src/tables/company/AddressTable.tsx:183 msgid "Add Address" msgstr "" -#: src/tables/company/AddressTable.tsx:126 +#: src/tables/company/AddressTable.tsx:123 msgid "Address created" msgstr "" -#: src/tables/company/AddressTable.tsx:135 +#: src/tables/company/AddressTable.tsx:132 msgid "Edit Address" msgstr "" -#: src/tables/company/AddressTable.tsx:143 +#: src/tables/company/AddressTable.tsx:140 msgid "Delete Address" msgstr "" -#: src/tables/company/AddressTable.tsx:144 +#: src/tables/company/AddressTable.tsx:141 msgid "Are you sure you want to delete this address?" msgstr "" @@ -6130,24 +7269,24 @@ msgstr "" #~ msgid "New Company" #~ msgstr "New Company" -#: src/tables/company/CompanyTable.tsx:74 -#: src/tables/company/CompanyTable.tsx:123 +#: src/tables/company/CompanyTable.tsx:75 +#: src/tables/company/CompanyTable.tsx:125 msgid "Add Company" msgstr "" -#: src/tables/company/CompanyTable.tsx:96 +#: src/tables/company/CompanyTable.tsx:97 msgid "Show active companies" msgstr "" -#: src/tables/company/CompanyTable.tsx:101 +#: src/tables/company/CompanyTable.tsx:102 msgid "Show companies which are suppliers" msgstr "" -#: src/tables/company/CompanyTable.tsx:106 +#: src/tables/company/CompanyTable.tsx:107 msgid "Show companies which are manufacturers" msgstr "" -#: src/tables/company/CompanyTable.tsx:111 +#: src/tables/company/CompanyTable.tsx:112 msgid "Show companies which are customers" msgstr "" @@ -6163,96 +7302,99 @@ msgstr "" msgid "Delete Contact" msgstr "" -#: src/tables/company/ContactTable.tsx:129 +#: src/tables/company/ContactTable.tsx:130 msgid "Add contact" msgstr "" -#: src/tables/general/AttachmentTable.tsx:130 +#: src/tables/general/AttachmentTable.tsx:135 msgid "File uploaded" msgstr "" -#: src/tables/general/AttachmentTable.tsx:131 +#: src/tables/general/AttachmentTable.tsx:136 msgid "File {0} uploaded successfully" msgstr "" -#: src/tables/general/AttachmentTable.tsx:142 +#: src/tables/general/AttachmentTable.tsx:147 msgid "Upload Error" msgstr "" -#: src/tables/general/AttachmentTable.tsx:143 +#: src/tables/general/AttachmentTable.tsx:148 msgid "File could not be uploaded" msgstr "" -#: src/tables/general/AttachmentTable.tsx:191 +#: src/tables/general/AttachmentTable.tsx:196 msgid "Upload Attachment" msgstr "" -#: src/tables/general/AttachmentTable.tsx:201 +#: src/tables/general/AttachmentTable.tsx:206 msgid "Edit Attachment" msgstr "" -#: src/tables/general/AttachmentTable.tsx:215 +#: src/tables/general/AttachmentTable.tsx:220 msgid "Delete Attachment" msgstr "" -#: src/tables/general/AttachmentTable.tsx:225 +#: src/tables/general/AttachmentTable.tsx:230 msgid "Is Link" msgstr "" -#: src/tables/general/AttachmentTable.tsx:226 +#: src/tables/general/AttachmentTable.tsx:231 msgid "Show link attachments" msgstr "" -#: src/tables/general/AttachmentTable.tsx:230 +#: src/tables/general/AttachmentTable.tsx:235 msgid "Is File" msgstr "" -#: src/tables/general/AttachmentTable.tsx:231 +#: src/tables/general/AttachmentTable.tsx:236 msgid "Show file attachments" msgstr "" -#: src/tables/general/AttachmentTable.tsx:240 +#: src/tables/general/AttachmentTable.tsx:245 msgid "Add attachment" msgstr "" -#: src/tables/general/AttachmentTable.tsx:251 -msgid "Add external link" -msgstr "" - #: src/tables/general/AttachmentTable.tsx:254 #~ msgid "Upload attachment" #~ msgstr "Upload attachment" -#: src/tables/general/AttachmentTable.tsx:299 +#: src/tables/general/AttachmentTable.tsx:256 +msgid "Add external link" +msgstr "" + +#: src/tables/general/AttachmentTable.tsx:304 msgid "No attachments found" msgstr "" -#: src/tables/general/AttachmentTable.tsx:337 +#: src/tables/general/AttachmentTable.tsx:343 msgid "Drag attachment file here to upload" msgstr "" #: src/tables/general/ExtraLineItemTable.tsx:86 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:251 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:60 -#: src/tables/sales/SalesOrderLineItemTable.tsx:196 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:263 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:362 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:72 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:168 +#: src/tables/sales/SalesOrderLineItemTable.tsx:206 +#: src/tables/sales/SalesOrderLineItemTable.tsx:291 msgid "Add Line Item" msgstr "" #: src/tables/general/ExtraLineItemTable.tsx:98 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:271 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:72 -#: src/tables/sales/SalesOrderLineItemTable.tsx:214 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:283 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:84 +#: src/tables/sales/SalesOrderLineItemTable.tsx:224 msgid "Edit Line Item" msgstr "" #: src/tables/general/ExtraLineItemTable.tsx:106 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:279 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:80 -#: src/tables/sales/SalesOrderLineItemTable.tsx:222 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:291 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:92 +#: src/tables/sales/SalesOrderLineItemTable.tsx:232 msgid "Delete Line Item" msgstr "" -#: src/tables/general/ExtraLineItemTable.tsx:142 +#: src/tables/general/ExtraLineItemTable.tsx:143 msgid "Add Extra Line Item" msgstr "" @@ -6261,12 +7403,12 @@ msgid "Machine restarted" msgstr "" #: src/tables/machine/MachineListTable.tsx:212 -#: src/tables/machine/MachineListTable.tsx:263 +#: src/tables/machine/MachineListTable.tsx:261 msgid "Edit machine" msgstr "" #: src/tables/machine/MachineListTable.tsx:226 -#: src/tables/machine/MachineListTable.tsx:267 +#: src/tables/machine/MachineListTable.tsx:265 msgid "Delete machine" msgstr "" @@ -6278,51 +7420,50 @@ msgstr "" msgid "Are you sure you want to remove the machine \"{0}\"?" msgstr "" -#: src/tables/machine/MachineListTable.tsx:255 -#: src/tables/machine/MachineListTable.tsx:432 +#: src/tables/machine/MachineListTable.tsx:254 +#: src/tables/machine/MachineListTable.tsx:442 msgid "Restart required" msgstr "" -#: src/tables/machine/MachineListTable.tsx:259 +#: src/tables/machine/MachineListTable.tsx:258 msgid "Machine Actions" msgstr "" -#: src/tables/machine/MachineListTable.tsx:272 +#: src/tables/machine/MachineListTable.tsx:270 msgid "Restart" msgstr "" -#: src/tables/machine/MachineListTable.tsx:274 +#: src/tables/machine/MachineListTable.tsx:272 msgid "Restart machine" msgstr "" -#: src/tables/machine/MachineListTable.tsx:276 +#: src/tables/machine/MachineListTable.tsx:274 msgid "manual restart required" msgstr "" +#: src/tables/machine/MachineListTable.tsx:291 +#~ msgid "Machine information" +#~ msgstr "Machine information" + #: src/tables/machine/MachineListTable.tsx:292 -msgid "Machine information" +msgid "Machine Information" msgstr "" -#: src/tables/machine/MachineListTable.tsx:303 -#: src/tables/machine/MachineListTable.tsx:599 +#: src/tables/machine/MachineListTable.tsx:302 +#: src/tables/machine/MachineListTable.tsx:610 msgid "Machine Type" msgstr "" -#: src/tables/machine/MachineListTable.tsx:316 +#: src/tables/machine/MachineListTable.tsx:315 msgid "Machine Driver" msgstr "" -#: src/tables/machine/MachineListTable.tsx:329 +#: src/tables/machine/MachineListTable.tsx:330 msgid "Initialized" msgstr "" -#: src/tables/machine/MachineListTable.tsx:350 -#: src/tables/machine/MachineTypeTable.tsx:261 -msgid "Errors" -msgstr "" - -#: src/tables/machine/MachineListTable.tsx:358 -#: src/tables/machine/MachineTypeTable.tsx:269 +#: src/tables/machine/MachineListTable.tsx:359 +#: src/tables/machine/MachineTypeTable.tsx:290 msgid "No errors reported" msgstr "" @@ -6330,7 +7471,7 @@ msgstr "" msgid "Machine Settings" msgstr "" -#: src/tables/machine/MachineListTable.tsx:389 +#: src/tables/machine/MachineListTable.tsx:394 msgid "Driver Settings" msgstr "" @@ -6338,86 +7479,109 @@ msgstr "" #~ msgid "Create machine" #~ msgstr "Create machine" -#: src/tables/machine/MachineListTable.tsx:506 +#: src/tables/machine/MachineListTable.tsx:516 +#: src/tables/machine/MachineListTable.tsx:558 msgid "Add machine" msgstr "" #: src/tables/machine/MachineListTable.tsx:561 -msgid "Machine detail" +#~ msgid "Machine detail" +#~ msgstr "Machine detail" + +#: src/tables/machine/MachineListTable.tsx:572 +msgid "Machine Detail" msgstr "" -#: src/tables/machine/MachineListTable.tsx:608 +#: src/tables/machine/MachineListTable.tsx:619 msgid "Driver" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:73 +#: src/tables/machine/MachineTypeTable.tsx:78 msgid "Builtin driver" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:89 +#: src/tables/machine/MachineTypeTable.tsx:96 +msgid "Not Found" +msgstr "" + +#: src/tables/machine/MachineTypeTable.tsx:99 msgid "Machine type not found." msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:97 -msgid "Machine type information" +#: src/tables/machine/MachineTypeTable.tsx:99 +#~ msgid "Machine type information" +#~ msgstr "Machine type information" + +#: src/tables/machine/MachineTypeTable.tsx:109 +msgid "Machine Type Information" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:110 -#: src/tables/machine/MachineTypeTable.tsx:217 +#: src/tables/machine/MachineTypeTable.tsx:124 +#: src/tables/machine/MachineTypeTable.tsx:238 msgid "Slug" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:118 -#: src/tables/machine/MachineTypeTable.tsx:238 +#: src/tables/machine/MachineTypeTable.tsx:135 +#: src/tables/machine/MachineTypeTable.tsx:259 msgid "Provider plugin" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:130 -#: src/tables/machine/MachineTypeTable.tsx:250 +#: src/tables/machine/MachineTypeTable.tsx:147 +#: src/tables/machine/MachineTypeTable.tsx:271 msgid "Provider file" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:135 -#: src/tables/machine/MachineTypeTable.tsx:255 -#: src/tables/plugin/PluginListTable.tsx:180 -#: src/tables/plugin/PluginListTable.tsx:568 -msgid "Builtin" +#: src/tables/machine/MachineTypeTable.tsx:148 +#~ msgid "Available drivers" +#~ msgstr "Available drivers" + +#: src/tables/machine/MachineTypeTable.tsx:162 +msgid "Available Drivers" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:146 -msgid "Available drivers" -msgstr "" - -#: src/tables/machine/MachineTypeTable.tsx:196 +#: src/tables/machine/MachineTypeTable.tsx:217 msgid "Machine driver not found." msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:204 +#: src/tables/machine/MachineTypeTable.tsx:225 msgid "Machine driver information" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:224 +#: src/tables/machine/MachineTypeTable.tsx:245 msgid "Machine type" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:327 +#: src/tables/machine/MachineTypeTable.tsx:338 +#~ msgid "Machine type detail" +#~ msgstr "Machine type detail" + +#: src/tables/machine/MachineTypeTable.tsx:348 msgid "Builtin type" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:336 -msgid "Machine type detail" +#: src/tables/machine/MachineTypeTable.tsx:348 +#~ msgid "Machine driver detail" +#~ msgstr "Machine driver detail" + +#: src/tables/machine/MachineTypeTable.tsx:357 +msgid "Machine Type Detail" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:346 -msgid "Machine driver detail" +#: src/tables/machine/MachineTypeTable.tsx:367 +msgid "Machine Driver Detail" msgstr "" #: src/tables/notifications/NotificationsTable.tsx:26 msgid "Age" msgstr "" +#: src/tables/notifications/NotificationsTable.tsx:36 +msgid "Notification" +msgstr "" + #: src/tables/notifications/NotificationsTable.tsx:40 #: src/tables/plugin/PluginErrorTable.tsx:37 +#: src/tables/settings/ErrorTable.tsx:50 msgid "Message" msgstr "" @@ -6451,33 +7615,32 @@ msgstr "" msgid "Show assembly parts" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:68 +#: src/tables/part/PartCategoryTable.tsx:48 +msgid "You are subscribed to notifications for this category" +msgstr "" + +#: src/tables/part/PartCategoryTable.tsx:80 #: src/tables/part/PartTable.tsx:196 msgid "Include Subcategories" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:69 +#: src/tables/part/PartCategoryTable.tsx:81 msgid "Include subcategories in results" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:74 +#: src/tables/part/PartCategoryTable.tsx:86 msgid "Show structural categories" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:78 -#: src/tables/part/PartTable.tsx:294 -msgid "Subscribed" -msgstr "" - -#: src/tables/part/PartCategoryTable.tsx:79 +#: src/tables/part/PartCategoryTable.tsx:91 msgid "Show categories to which the user is subscribed" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:86 +#: src/tables/part/PartCategoryTable.tsx:100 msgid "New Part Category" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:112 +#: src/tables/part/PartCategoryTable.tsx:129 msgid "Add Part Category" msgstr "" @@ -6523,11 +7686,6 @@ msgstr "" msgid "Part parameters cannot be edited, as the part is locked" msgstr "" -#: src/tables/part/PartParameterTable.tsx:212 -#: src/tables/stock/StockItemTable.tsx:335 -msgid "Include Variants" -msgstr "" - #: src/tables/part/PartParameterTemplateTable.tsx:31 msgid "Checkbox" msgstr "" @@ -6554,6 +7712,7 @@ msgid "Show templates with units" msgstr "" #: src/tables/part/PartParameterTemplateTable.tsx:85 +#: src/tables/part/PartParameterTemplateTable.tsx:141 msgid "Add Parameter Template" msgstr "" @@ -6566,23 +7725,19 @@ msgid "Delete Parameter Template" msgstr "" #: src/tables/part/PartParameterTemplateTable.tsx:141 -msgid "Add parameter template" -msgstr "" +#~ msgid "Add parameter template" +#~ msgstr "Add parameter template" -#: src/tables/part/PartPurchaseOrdersTable.tsx:77 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:162 +#: src/tables/part/PartPurchaseOrdersTable.tsx:78 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:168 msgid "Total Quantity" msgstr "" -#: src/tables/part/PartPurchaseOrdersTable.tsx:115 -msgid "Pending" -msgstr "" - -#: src/tables/part/PartPurchaseOrdersTable.tsx:116 +#: src/tables/part/PartPurchaseOrdersTable.tsx:122 msgid "Show pending orders" msgstr "" -#: src/tables/part/PartPurchaseOrdersTable.tsx:121 +#: src/tables/part/PartPurchaseOrdersTable.tsx:127 msgid "Show received items" msgstr "" @@ -6728,22 +7883,13 @@ msgstr "" msgid "Results" msgstr "" -#: src/tables/part/PartTestTemplateTable.tsx:76 -msgid "No Results" -msgstr "" - -#: src/tables/part/PartTestTemplateTable.tsx:106 -#: src/tables/stock/StockItemTestResultTable.tsx:365 -msgid "Required" -msgstr "" - #: src/tables/part/PartTestTemplateTable.tsx:107 msgid "Show required tests" msgstr "" #: src/tables/part/PartTestTemplateTable.tsx:111 -#: src/tables/settings/TemplateTable.tsx:167 -#: src/tables/settings/TemplateTable.tsx:283 +#: src/tables/settings/TemplateTable.tsx:247 +#: src/tables/settings/TemplateTable.tsx:363 msgid "Enabled" msgstr "" @@ -6784,7 +7930,7 @@ msgid "Show tests which have recorded results" msgstr "" #: src/tables/part/PartTestTemplateTable.tsx:154 -#: src/tables/part/PartTestTemplateTable.tsx:237 +#: src/tables/part/PartTestTemplateTable.tsx:238 msgid "Add Test Template" msgstr "" @@ -6808,7 +7954,7 @@ msgstr "" msgid "View Parent Part" msgstr "" -#: src/tables/part/PartTestTemplateTable.tsx:257 +#: src/tables/part/PartTestTemplateTable.tsx:258 msgid "Part templates cannot be edited, as the part is locked" msgstr "" @@ -6836,28 +7982,49 @@ msgstr "" msgid "Show trackable variants" msgstr "" -#: src/tables/part/RelatedPartTable.tsx:84 +#: src/tables/part/RelatedPartTable.tsx:86 +#: src/tables/part/RelatedPartTable.tsx:109 msgid "Add Related Part" msgstr "" -#: src/tables/part/RelatedPartTable.tsx:99 +#: src/tables/part/RelatedPartTable.tsx:101 msgid "Delete Related Part" msgstr "" -#: src/tables/part/RelatedPartTable.tsx:106 -msgid "Add related part" -msgstr "" +#: src/tables/part/RelatedPartTable.tsx:109 +#~ msgid "Add related part" +#~ msgstr "Add related part" #: src/tables/plugin/PluginErrorTable.tsx:29 msgid "Stage" msgstr "" -#: src/tables/plugin/PluginListTable.tsx:95 -msgid "Plugin with key {pluginKey} not found" +#: src/tables/plugin/PluginListTable.tsx:42 +msgid "Plugin is active" msgstr "" +#: src/tables/plugin/PluginListTable.tsx:48 +msgid "Plugin is inactive" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:55 +msgid "Plugin is not installed" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:76 +msgid "Plugin" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:95 +#~ msgid "Plugin with key {pluginKey} not found" +#~ msgstr "Plugin with key {pluginKey} not found" + #: src/tables/plugin/PluginListTable.tsx:97 -msgid "An error occurred while fetching plugin details" +#~ msgid "An error occurred while fetching plugin details" +#~ msgstr "An error occurred while fetching plugin details" + +#: src/tables/plugin/PluginListTable.tsx:109 +msgid "Description not available" msgstr "" #: src/tables/plugin/PluginListTable.tsx:113 @@ -6865,12 +8032,8 @@ msgstr "" #~ msgstr "Plugin with id {id} not found" #: src/tables/plugin/PluginListTable.tsx:122 -msgid "Plugin information" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:134 -msgid "Author" -msgstr "" +#~ msgid "Plugin information" +#~ msgstr "Plugin information" #: src/tables/plugin/PluginListTable.tsx:134 #~ msgid "Plugin Actions" @@ -6881,79 +8044,124 @@ msgstr "" #~ msgid "Edit plugin" #~ msgstr "Edit plugin" +#: src/tables/plugin/PluginListTable.tsx:144 +msgid "Confirm plugin activation" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:145 +msgid "Confirm plugin deactivation" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:150 +msgid "The selected plugin will be activated" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:151 +msgid "The selected plugin will be deactivated" +msgstr "" + #: src/tables/plugin/PluginListTable.tsx:152 #: src/tables/plugin/PluginListTable.tsx:153 #~ msgid "Reload" #~ msgstr "Reload" -#: src/tables/plugin/PluginListTable.tsx:154 -msgid "Plugin is not active" -msgstr "" - #: src/tables/plugin/PluginListTable.tsx:163 -msgid "Package information" -msgstr "" +#~ msgid "Package information" +#~ msgstr "Package information" #: src/tables/plugin/PluginListTable.tsx:169 -msgid "Package Name" +msgid "Deactivate" msgstr "" -#: src/tables/plugin/PluginListTable.tsx:175 -msgid "Installation Path" +#: src/tables/plugin/PluginListTable.tsx:183 +msgid "Activate" msgstr "" -#: src/tables/plugin/PluginListTable.tsx:185 -msgid "Package" +#: src/tables/plugin/PluginListTable.tsx:184 +msgid "Activate selected plugin" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:196 +msgid "Update selected plugin" msgstr "" #: src/tables/plugin/PluginListTable.tsx:197 -msgid "Plugin settings" -msgstr "" +#~ msgid "Plugin settings" +#~ msgstr "Plugin settings" #: src/tables/plugin/PluginListTable.tsx:214 -msgid "Plugin is active" +#: src/tables/stock/InstalledItemsTable.tsx:107 +msgid "Uninstall" msgstr "" -#: src/tables/plugin/PluginListTable.tsx:220 -msgid "Plugin is inactive" +#: src/tables/plugin/PluginListTable.tsx:215 +msgid "Uninstall selected plugin" msgstr "" -#: src/tables/plugin/PluginListTable.tsx:227 -msgid "Plugin is not installed" +#: src/tables/plugin/PluginListTable.tsx:233 +msgid "Delete selected plugin configuration" msgstr "" -#: src/tables/plugin/PluginListTable.tsx:253 -msgid "Plugin" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:287 -msgid "Description not available" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:319 -msgid "Confirm plugin activation" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:320 -msgid "Confirm plugin deactivation" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:325 -msgid "The selected plugin will be activated" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:326 -msgid "The selected plugin will be deactivated" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:334 +#: src/tables/plugin/PluginListTable.tsx:249 msgid "Activate Plugin" msgstr "" +#: src/tables/plugin/PluginListTable.tsx:270 +msgid "Install plugin" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:283 +msgid "Install" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:284 +msgid "Plugin installed successfully" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:289 +msgid "Uninstall Plugin" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:301 +msgid "Confirm plugin uninstall" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:304 +msgid "The selected plugin will be uninstalled." +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:308 +#~ msgid "This action cannot be undone." +#~ msgstr "This action cannot be undone." + +#: src/tables/plugin/PluginListTable.tsx:309 +msgid "Plugin uninstalled successfully" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:317 +msgid "Delete Plugin" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:318 +msgid "Deleting this plugin configuration will remove all associated settings and data. Are you sure you want to delete this plugin?" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:331 +msgid "Plugins reloaded" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:332 +msgid "Plugins were reloaded successfully" +msgstr "" + #: src/tables/plugin/PluginListTable.tsx:338 #~ msgid "Deactivate Plugin" #~ msgstr "Deactivate Plugin" +#: src/tables/plugin/PluginListTable.tsx:350 +msgid "Reload Plugins" +msgstr "" + #: src/tables/plugin/PluginListTable.tsx:354 #~ msgid "The following plugin will be activated" #~ msgstr "The following plugin will be activated" @@ -6962,16 +8170,16 @@ msgstr "" #~ msgid "The following plugin will be deactivated" #~ msgstr "The following plugin will be deactivated" -#: src/tables/plugin/PluginListTable.tsx:362 -msgid "Deactivate" +#: src/tables/plugin/PluginListTable.tsx:357 +msgid "Install Plugin" msgstr "" #: src/tables/plugin/PluginListTable.tsx:366 #~ msgid "Confirm" #~ msgstr "Confirm" -#: src/tables/plugin/PluginListTable.tsx:373 -msgid "Activate" +#: src/tables/plugin/PluginListTable.tsx:374 +msgid "Plugin Detail" msgstr "" #: src/tables/plugin/PluginListTable.tsx:376 @@ -6998,76 +8206,12 @@ msgstr "" #~ msgid "Error updating plugin" #~ msgstr "Error updating plugin" -#: src/tables/plugin/PluginListTable.tsx:406 -msgid "Uninstall" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:438 -msgid "Install plugin" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:451 -msgid "Install" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:452 -msgid "Plugin installed successfully" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:457 -msgid "Uninstall Plugin" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:469 -msgid "Confirm plugin uninstall" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:472 -msgid "The selected plugin will be uninstalled." -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:473 -msgid "This action cannot be undone." -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:477 -msgid "Plugin uninstalled successfully" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:484 -msgid "Delete Plugin" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:485 -msgid "Deleting this plugin configuration will remove all associated settings and data. Are you sure you want to delete this plugin?" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:498 -msgid "Plugins reloaded" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:499 -msgid "Plugins were reloaded successfully" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:515 -msgid "Reload Plugins" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:524 -msgid "Install Plugin" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:544 -msgid "Plugin Detail" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:573 +#: src/tables/plugin/PluginListTable.tsx:411 msgid "Sample" msgstr "" -#: src/tables/plugin/PluginListTable.tsx:578 -#: src/tables/stock/StockItemTable.tsx:340 +#: src/tables/plugin/PluginListTable.tsx:416 +#: src/tables/stock/StockItemTable.tsx:344 msgid "Installed" msgstr "" @@ -7116,82 +8260,78 @@ msgstr "" #~ msgid "Are you sure you want to remove this manufacturer part?" #~ msgstr "Are you sure you want to remove this manufacturer part?" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:102 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:339 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:103 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:356 msgid "Import Line Items" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:135 -msgid "Part Description" -msgstr "" - -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:201 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:207 msgid "Supplier Code" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:208 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:214 msgid "Supplier Link" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:215 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:220 msgid "Manufacturer Code" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:229 -msgid "Destination" +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:248 +msgid "Show line items which have been received" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:300 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:316 msgid "Receive line item" msgstr "" #: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:344 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:142 -#: src/tables/sales/SalesOrderLineItemTable.tsx:240 -msgid "Add line item" -msgstr "" +#: src/tables/sales/ReturnOrderLineItemTable.tsx:160 +#: src/tables/sales/SalesOrderLineItemTable.tsx:258 +#~ msgid "Add line item" +#~ msgstr "Add line item" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:354 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:373 msgid "Receive items" msgstr "" -#: src/tables/purchasing/SupplierPartTable.tsx:93 +#: src/tables/purchasing/SupplierPartTable.tsx:95 msgid "MPN" msgstr "" -#: src/tables/purchasing/SupplierPartTable.tsx:122 +#: src/tables/purchasing/SupplierPartTable.tsx:124 msgid "Base units" msgstr "" -#: src/tables/purchasing/SupplierPartTable.tsx:170 +#: src/tables/purchasing/SupplierPartTable.tsx:172 msgid "Supplier part created" msgstr "" -#: src/tables/purchasing/SupplierPartTable.tsx:176 +#: src/tables/purchasing/SupplierPartTable.tsx:179 msgid "Add supplier part" msgstr "" -#: src/tables/purchasing/SupplierPartTable.tsx:188 +#: src/tables/purchasing/SupplierPartTable.tsx:191 msgid "Show active supplier parts" msgstr "" -#: src/tables/purchasing/SupplierPartTable.tsx:192 -msgid "Active Part" -msgstr "" - -#: src/tables/purchasing/SupplierPartTable.tsx:193 -msgid "Show active internal parts" -msgstr "" - #: src/tables/purchasing/SupplierPartTable.tsx:193 #~ msgid "Supplier part updated" #~ msgstr "Supplier part updated" -#: src/tables/purchasing/SupplierPartTable.tsx:197 +#: src/tables/purchasing/SupplierPartTable.tsx:195 +msgid "Active Part" +msgstr "" + +#: src/tables/purchasing/SupplierPartTable.tsx:196 +msgid "Show active internal parts" +msgstr "" + +#: src/tables/purchasing/SupplierPartTable.tsx:200 msgid "Active Supplier" msgstr "" -#: src/tables/purchasing/SupplierPartTable.tsx:198 +#: src/tables/purchasing/SupplierPartTable.tsx:201 msgid "Show active suppliers" msgstr "" @@ -7203,99 +8343,187 @@ msgstr "" #~ msgid "Are you sure you want to remove this supplier part?" #~ msgstr "Are you sure you want to remove this supplier part?" -#: src/tables/sales/ReturnOrderLineItemTable.tsx:114 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:139 msgid "Received Date" msgstr "" -#: src/tables/sales/ReturnOrderLineItemTable.tsx:128 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:153 msgid "Show items which have been received" msgstr "" -#: src/tables/sales/ReturnOrderLineItemTable.tsx:133 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:158 msgid "Filter by line item status" msgstr "" -#: src/tables/sales/ReturnOrderLineItemTable.tsx:158 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:176 +msgid "Receive selected items" +msgstr "" + +#: src/tables/sales/ReturnOrderLineItemTable.tsx:205 msgid "Receive Item" msgstr "" -#: src/tables/sales/SalesOrderLineItemTable.tsx:262 -msgid "Allocate stock" +#: src/tables/sales/SalesOrderAllocationTable.tsx:60 +msgid "Show outstanding allocations" msgstr "" -#: src/tables/sales/SalesOrderLineItemTable.tsx:272 +#: src/tables/sales/SalesOrderAllocationTable.tsx:168 +#: src/tables/sales/SalesOrderAllocationTable.tsx:190 +msgid "Edit Allocation" +msgstr "" + +#: src/tables/sales/SalesOrderAllocationTable.tsx:175 +#: src/tables/sales/SalesOrderAllocationTable.tsx:197 +msgid "Delete Allocation" +msgstr "" + +#: src/tables/sales/SalesOrderLineItemTable.tsx:244 +msgid "Allocate Serial Numbers" +msgstr "" + +#: src/tables/sales/SalesOrderLineItemTable.tsx:277 +msgid "Show lines which are fully allocated" +msgstr "" + +#: src/tables/sales/SalesOrderLineItemTable.tsx:280 +#~ msgid "Allocate stock" +#~ msgstr "Allocate stock" + +#: src/tables/sales/SalesOrderLineItemTable.tsx:282 +msgid "Show lines which are completed" +msgstr "" + +#: src/tables/sales/SalesOrderLineItemTable.tsx:291 +#~ msgid "Allocate Serials" +#~ msgstr "Allocate Serials" + +#: src/tables/sales/SalesOrderLineItemTable.tsx:340 +msgid "Allocate serials" +msgstr "" + +#: src/tables/sales/SalesOrderLineItemTable.tsx:356 msgid "Build stock" msgstr "" -#: src/tables/sales/SalesOrderLineItemTable.tsx:289 -#: src/tables/stock/StockItemTable.tsx:507 +#: src/tables/sales/SalesOrderLineItemTable.tsx:373 +#: src/tables/stock/StockItemTable.tsx:512 msgid "Order stock" msgstr "" -#: src/tables/sales/SalesOrderShipmentTable.tsx:40 +#: src/tables/sales/SalesOrderShipmentTable.tsx:51 +#~ msgid "Delete Shipment" +#~ msgstr "Delete Shipment" + +#: src/tables/sales/SalesOrderShipmentTable.tsx:57 msgid "Create Shipment" msgstr "" -#: src/tables/sales/SalesOrderShipmentTable.tsx:50 -msgid "Delete Shipment" -msgstr "" - -#: src/tables/sales/SalesOrderShipmentTable.tsx:58 -msgid "Edit Shipment" -msgstr "" - -#: src/tables/sales/SalesOrderShipmentTable.tsx:66 -msgid "Shipment Reference" -msgstr "" - -#: src/tables/sales/SalesOrderShipmentTable.tsx:71 +#: src/tables/sales/SalesOrderShipmentTable.tsx:104 msgid "Items" msgstr "" -#: src/tables/sales/SalesOrderShipmentTable.tsx:83 -msgid "Delivery Date" +#: src/tables/sales/SalesOrderShipmentTable.tsx:139 +msgid "View Shipment" msgstr "" -#: src/tables/sales/SalesOrderShipmentTable.tsx:107 -msgid "Complete Shipment" +#: src/tables/sales/SalesOrderShipmentTable.tsx:161 +msgid "Edit shipment" msgstr "" -#: src/tables/sales/SalesOrderShipmentTable.tsx:133 +#: src/tables/sales/SalesOrderShipmentTable.tsx:169 +msgid "Cancel shipment" +msgstr "" + +#: src/tables/sales/SalesOrderShipmentTable.tsx:184 msgid "Add shipment" msgstr "" -#: src/tables/sales/SalesOrderShipmentTable.tsx:146 -msgid "Shipped" -msgstr "" - -#: src/tables/sales/SalesOrderShipmentTable.tsx:147 +#: src/tables/sales/SalesOrderShipmentTable.tsx:198 msgid "Show shipments which have been shipped" msgstr "" -#: src/tables/sales/SalesOrderShipmentTable.tsx:151 -msgid "Delivered" -msgstr "" - -#: src/tables/sales/SalesOrderShipmentTable.tsx:152 +#: src/tables/sales/SalesOrderShipmentTable.tsx:203 msgid "Show shipments which have been delivered" msgstr "" -#: src/tables/settings/CurrencyTable.tsx:28 -msgid "Rate" +#: src/tables/settings/BarcodeScanHistoryTable.tsx:61 +msgid "Barcode Information" msgstr "" -#: src/tables/settings/CurrencyTable.tsx:40 -msgid "Exchange rates updated" +#: src/tables/settings/BarcodeScanHistoryTable.tsx:76 +#: src/tables/settings/ErrorTable.tsx:59 +msgid "Timestamp" msgstr "" -#: src/tables/settings/CurrencyTable.tsx:46 -msgid "Exchange rate update error" +#: src/tables/settings/BarcodeScanHistoryTable.tsx:86 +msgid "Endpoint" msgstr "" -#: src/tables/settings/CurrencyTable.tsx:57 -msgid "Refresh currency exchange rates" +#: src/tables/settings/BarcodeScanHistoryTable.tsx:90 +#: src/tables/settings/BarcodeScanHistoryTable.tsx:217 +#: src/tables/stock/StockItemTestResultTable.tsx:174 +msgid "Result" msgstr "" +#: src/tables/settings/BarcodeScanHistoryTable.tsx:98 +msgid "Context" +msgstr "" + +#: src/tables/settings/BarcodeScanHistoryTable.tsx:119 +msgid "Response" +msgstr "" + +#: src/tables/settings/BarcodeScanHistoryTable.tsx:213 +#: src/tables/settings/ImportSessionTable.tsx:121 +#: src/tables/stock/StockTrackingTable.tsx:183 +msgid "Filter by user" +msgstr "" + +#: src/tables/settings/BarcodeScanHistoryTable.tsx:218 +msgid "Filter by result" +msgstr "" + +#: src/tables/settings/BarcodeScanHistoryTable.tsx:232 +msgid "Delete Barcode Scan Record" +msgstr "" + +#: src/tables/settings/BarcodeScanHistoryTable.tsx:258 +msgid "Barcode Scan Details" +msgstr "" + +#: src/tables/settings/BarcodeScanHistoryTable.tsx:268 +msgid "Logging Disabled" +msgstr "" + +#: src/tables/settings/BarcodeScanHistoryTable.tsx:270 +msgid "Barcode logging is not enabled" +msgstr "" + +#: src/tables/settings/CustomStateTable.tsx:36 +msgid "Display Name" +msgstr "" + +#: src/tables/settings/CustomStateTable.tsx:52 +msgid "Model" +msgstr "" + +#: src/tables/settings/CustomStateTable.tsx:65 +#: src/tables/settings/CustomStateTable.tsx:115 +msgid "Add State" +msgstr "" + +#: src/tables/settings/CustomStateTable.tsx:77 +msgid "Edit State" +msgstr "" + +#: src/tables/settings/CustomStateTable.tsx:85 +msgid "Delete State" +msgstr "" + +#: src/tables/settings/CustomStateTable.tsx:115 +#~ msgid "Add state" +#~ msgstr "Add state" + #: src/tables/settings/CustomUnitsTable.tsx:50 msgid "Add Custom Unit" msgstr "" @@ -7312,59 +8540,71 @@ msgstr "" msgid "Add custom unit" msgstr "" -#: src/tables/settings/ErrorTable.tsx:31 -msgid "When" -msgstr "" - -#: src/tables/settings/ErrorTable.tsx:41 -msgid "Error Information" -msgstr "" - #: src/tables/settings/ErrorTable.tsx:51 #~ msgid "Delete error report" #~ msgstr "Delete error report" -#: src/tables/settings/ErrorTable.tsx:53 +#: src/tables/settings/ErrorTable.tsx:67 +msgid "Traceback" +msgstr "" + +#: src/tables/settings/ErrorTable.tsx:103 +msgid "When" +msgstr "" + +#: src/tables/settings/ErrorTable.tsx:113 +msgid "Error Information" +msgstr "" + +#: src/tables/settings/ErrorTable.tsx:123 msgid "Delete Error Report" msgstr "" -#: src/tables/settings/ErrorTable.tsx:55 +#: src/tables/settings/ErrorTable.tsx:125 msgid "Are you sure you want to delete this error report?" msgstr "" -#: src/tables/settings/ErrorTable.tsx:57 +#: src/tables/settings/ErrorTable.tsx:127 msgid "Error report deleted" msgstr "" -#: src/tables/settings/ErrorTable.tsx:79 -#: src/tables/settings/FailedTasksTable.tsx:59 +#: src/tables/settings/ErrorTable.tsx:146 +#: src/tables/settings/FailedTasksTable.tsx:65 msgid "Error Details" msgstr "" -#: src/tables/settings/FailedTasksTable.tsx:26 -#: src/tables/settings/PendingTasksTable.tsx:19 +#: src/tables/settings/FailedTasksTable.tsx:32 +#: src/tables/settings/PendingTasksTable.tsx:23 #: src/tables/settings/ScheduledTasksTable.tsx:19 msgid "Task" msgstr "" -#: src/tables/settings/FailedTasksTable.tsx:32 -#: src/tables/settings/PendingTasksTable.tsx:24 +#: src/tables/settings/FailedTasksTable.tsx:38 +#: src/tables/settings/PendingTasksTable.tsx:28 msgid "Task ID" msgstr "" -#: src/tables/settings/FailedTasksTable.tsx:36 -#: src/tables/stock/StockItemTestResultTable.tsx:211 +#: src/tables/settings/FailedTasksTable.tsx:42 +#: src/tables/stock/StockItemTestResultTable.tsx:218 msgid "Started" msgstr "" -#: src/tables/settings/FailedTasksTable.tsx:42 +#: src/tables/settings/FailedTasksTable.tsx:48 msgid "Stopped" msgstr "" -#: src/tables/settings/FailedTasksTable.tsx:48 +#: src/tables/settings/FailedTasksTable.tsx:54 msgid "Attempts" msgstr "" +#: src/tables/settings/FailedTasksTable.tsx:92 +msgid "No Information" +msgstr "" + +#: src/tables/settings/FailedTasksTable.tsx:93 +msgid "No error details are available for this task" +msgstr "" + #: src/tables/settings/GroupTable.tsx:90 msgid "Group with id {id} not found" msgstr "" @@ -7398,42 +8638,34 @@ msgstr "" msgid "Edit group" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:38 +#: src/tables/settings/ImportSessionTable.tsx:37 msgid "Delete Import Session" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:44 +#: src/tables/settings/ImportSessionTable.tsx:43 #: src/tables/settings/ImportSessionTable.tsx:131 msgid "Create Import Session" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:69 +#: src/tables/settings/ImportSessionTable.tsx:68 msgid "Uploaded" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:79 -msgid "Imported Rows" -msgstr "" - -#: src/tables/settings/ImportSessionTable.tsx:109 -#: src/tables/settings/TemplateTable.tsx:289 +#: src/tables/settings/ImportSessionTable.tsx:108 +#: src/tables/settings/TemplateTable.tsx:369 msgid "Model Type" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:110 -#: src/tables/settings/TemplateTable.tsx:290 +#: src/tables/settings/ImportSessionTable.tsx:109 +#: src/tables/settings/TemplateTable.tsx:370 msgid "Filter by target model type" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:116 +#: src/tables/settings/ImportSessionTable.tsx:115 msgid "Filter by import session status" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:122 -msgid "Filter by user" -msgstr "" - -#: src/tables/settings/PendingTasksTable.tsx:38 +#: src/tables/settings/PendingTasksTable.tsx:42 msgid "Arguments" msgstr "" @@ -7461,12 +8693,16 @@ msgstr "" msgid "Next Run" msgstr "" -#: src/tables/settings/TemplateTable.tsx:85 -msgid "Template not found" +#: src/tables/settings/StocktakeReportTable.tsx:28 +msgid "Report" msgstr "" -#: src/tables/settings/TemplateTable.tsx:87 -msgid "An error occurred while fetching template details" +#: src/tables/settings/StocktakeReportTable.tsx:35 +msgid "Part Count" +msgstr "" + +#: src/tables/settings/StocktakeReportTable.tsx:58 +msgid "Delete Report" msgstr "" #: src/tables/settings/TemplateTable.tsx:120 @@ -7481,21 +8717,12 @@ msgstr "" #~ msgid "actions" #~ msgstr "actions" -#: src/tables/settings/TemplateTable.tsx:177 -msgid "Modify" +#: src/tables/settings/TemplateTable.tsx:162 +msgid "Template not found" msgstr "" -#: src/tables/settings/TemplateTable.tsx:178 -msgid "Modify template file" -msgstr "" - -#: src/tables/settings/TemplateTable.tsx:234 -#: src/tables/settings/TemplateTable.tsx:302 -msgid "Edit Template" -msgstr "" - -#: src/tables/settings/TemplateTable.tsx:242 -msgid "Delete template" +#: src/tables/settings/TemplateTable.tsx:164 +msgid "An error occurred while fetching template details" msgstr "" #: src/tables/settings/TemplateTable.tsx:243 @@ -7506,103 +8733,137 @@ msgstr "" #~ msgid "Create new" #~ msgstr "Create new" -#: src/tables/settings/TemplateTable.tsx:248 +#: src/tables/settings/TemplateTable.tsx:257 +msgid "Modify" +msgstr "" + +#: src/tables/settings/TemplateTable.tsx:258 +msgid "Modify template file" +msgstr "" + +#: src/tables/settings/TemplateTable.tsx:314 +#: src/tables/settings/TemplateTable.tsx:382 +msgid "Edit Template" +msgstr "" + +#: src/tables/settings/TemplateTable.tsx:322 +msgid "Delete template" +msgstr "" + +#: src/tables/settings/TemplateTable.tsx:328 msgid "Add Template" msgstr "" -#: src/tables/settings/TemplateTable.tsx:261 +#: src/tables/settings/TemplateTable.tsx:341 msgid "Add template" msgstr "" -#: src/tables/settings/TemplateTable.tsx:284 +#: src/tables/settings/TemplateTable.tsx:364 msgid "Filter by enabled status" msgstr "" -#: src/tables/settings/UserTable.tsx:82 +#: src/tables/settings/UserTable.tsx:81 msgid "User with id {id} not found" msgstr "" -#: src/tables/settings/UserTable.tsx:84 +#: src/tables/settings/UserTable.tsx:83 msgid "An error occurred while fetching user details" msgstr "" -#: src/tables/settings/UserTable.tsx:102 +#: src/tables/settings/UserTable.tsx:101 msgid "Is Active" msgstr "" -#: src/tables/settings/UserTable.tsx:103 +#: src/tables/settings/UserTable.tsx:102 msgid "Designates whether this user should be treated as active. Unselect this instead of deleting accounts." msgstr "" -#: src/tables/settings/UserTable.tsx:107 +#: src/tables/settings/UserTable.tsx:106 msgid "Is Staff" msgstr "" -#: src/tables/settings/UserTable.tsx:108 +#: src/tables/settings/UserTable.tsx:107 msgid "Designates whether the user can log into the django admin site." msgstr "" -#: src/tables/settings/UserTable.tsx:112 +#: src/tables/settings/UserTable.tsx:111 msgid "Is Superuser" msgstr "" -#: src/tables/settings/UserTable.tsx:113 +#: src/tables/settings/UserTable.tsx:112 msgid "Designates that this user has all permissions without explicitly assigning them." msgstr "" -#: src/tables/settings/UserTable.tsx:123 +#: src/tables/settings/UserTable.tsx:122 msgid "You cannot edit the rights for the currently logged-in user." msgstr "" -#: src/tables/settings/UserTable.tsx:154 +#: src/tables/settings/UserTable.tsx:153 msgid "No groups" msgstr "" -#: src/tables/settings/UserTable.tsx:245 +#: src/tables/settings/UserTable.tsx:244 msgid "Delete user" msgstr "" -#: src/tables/settings/UserTable.tsx:246 +#: src/tables/settings/UserTable.tsx:245 msgid "User deleted" msgstr "" -#: src/tables/settings/UserTable.tsx:248 +#: src/tables/settings/UserTable.tsx:247 msgid "Are you sure you want to delete this user?" msgstr "" -#: src/tables/settings/UserTable.tsx:254 -#: src/tables/settings/UserTable.tsx:272 +#: src/tables/settings/UserTable.tsx:253 +#: src/tables/settings/UserTable.tsx:271 msgid "Add user" msgstr "" -#: src/tables/settings/UserTable.tsx:262 +#: src/tables/settings/UserTable.tsx:261 msgid "Added user" msgstr "" -#: src/tables/settings/UserTable.tsx:285 +#: src/tables/settings/UserTable.tsx:284 msgid "Show active users" msgstr "" -#: src/tables/settings/UserTable.tsx:289 +#: src/tables/settings/UserTable.tsx:288 msgid "Staff" msgstr "" -#: src/tables/settings/UserTable.tsx:290 +#: src/tables/settings/UserTable.tsx:289 msgid "Show staff users" msgstr "" #: src/tables/settings/UserTable.tsx:294 -msgid "Superuser" -msgstr "" - -#: src/tables/settings/UserTable.tsx:295 msgid "Show superusers" msgstr "" -#: src/tables/settings/UserTable.tsx:305 +#: src/tables/settings/UserTable.tsx:304 msgid "Edit user" msgstr "" +#: src/tables/stock/InstalledItemsTable.tsx:37 +#: src/tables/stock/InstalledItemsTable.tsx:90 +msgid "Install Item" +msgstr "" + +#: src/tables/stock/InstalledItemsTable.tsx:39 +msgid "Item installed" +msgstr "" + +#: src/tables/stock/InstalledItemsTable.tsx:50 +msgid "Uninstall Item" +msgstr "" + +#: src/tables/stock/InstalledItemsTable.tsx:52 +msgid "Item uninstalled" +msgstr "" + +#: src/tables/stock/InstalledItemsTable.tsx:108 +msgid "Uninstall stock item" +msgstr "" + #: src/tables/stock/LocationTypesTable.tsx:39 #: src/tables/stock/LocationTypesTable.tsx:109 msgid "Add Location Type" @@ -7620,276 +8881,272 @@ msgstr "" msgid "Icon" msgstr "" -#: src/tables/stock/StockItemTable.tsx:101 +#: src/tables/stock/StockItemTable.tsx:90 msgid "This stock item is in production" msgstr "" -#: src/tables/stock/StockItemTable.tsx:110 +#: src/tables/stock/StockItemTable.tsx:97 msgid "This stock item has been assigned to a sales order" msgstr "" -#: src/tables/stock/StockItemTable.tsx:119 +#: src/tables/stock/StockItemTable.tsx:104 msgid "This stock item has been assigned to a customer" msgstr "" -#: src/tables/stock/StockItemTable.tsx:128 +#: src/tables/stock/StockItemTable.tsx:111 msgid "This stock item is installed in another stock item" msgstr "" -#: src/tables/stock/StockItemTable.tsx:137 +#: src/tables/stock/StockItemTable.tsx:118 msgid "This stock item has been consumed by a build order" msgstr "" -#: src/tables/stock/StockItemTable.tsx:146 +#: src/tables/stock/StockItemTable.tsx:125 +msgid "This stock item is unavailable" +msgstr "" + +#: src/tables/stock/StockItemTable.tsx:134 msgid "This stock item has expired" msgstr "" -#: src/tables/stock/StockItemTable.tsx:150 +#: src/tables/stock/StockItemTable.tsx:138 msgid "This stock item is stale" msgstr "" -#: src/tables/stock/StockItemTable.tsx:161 +#: src/tables/stock/StockItemTable.tsx:150 msgid "This stock item is fully allocated" msgstr "" -#: src/tables/stock/StockItemTable.tsx:168 +#: src/tables/stock/StockItemTable.tsx:157 msgid "This stock item is partially allocated" msgstr "" -#: src/tables/stock/StockItemTable.tsx:196 +#: src/tables/stock/StockItemTable.tsx:185 msgid "This stock item has been depleted" msgstr "" -#: src/tables/stock/StockItemTable.tsx:232 +#: src/tables/stock/StockItemTable.tsx:280 msgid "Stocktake Date" msgstr "" -#: src/tables/stock/StockItemTable.tsx:236 -msgid "Expiry Date" -msgstr "" - -#: src/tables/stock/StockItemTable.tsx:260 -msgid "Stock Value" -msgstr "" - -#: src/tables/stock/StockItemTable.tsx:290 +#: src/tables/stock/StockItemTable.tsx:294 msgid "Show stock for active parts" msgstr "" -#: src/tables/stock/StockItemTable.tsx:295 +#: src/tables/stock/StockItemTable.tsx:299 msgid "Filter by stock status" msgstr "" #: src/tables/stock/StockItemTable.tsx:301 -msgid "Show stock for assmebled parts" +#~ msgid "Show stock for assmebled parts" +#~ msgstr "Show stock for assmebled parts" + +#: src/tables/stock/StockItemTable.tsx:305 +msgid "Show stock for assembled parts" msgstr "" -#: src/tables/stock/StockItemTable.tsx:306 +#: src/tables/stock/StockItemTable.tsx:310 msgid "Show items which have been allocated" msgstr "" -#: src/tables/stock/StockItemTable.tsx:311 +#: src/tables/stock/StockItemTable.tsx:315 msgid "Show items which are available" msgstr "" -#: src/tables/stock/StockItemTable.tsx:315 +#: src/tables/stock/StockItemTable.tsx:319 #: src/tables/stock/StockLocationTable.tsx:44 msgid "Include Sublocations" msgstr "" -#: src/tables/stock/StockItemTable.tsx:316 +#: src/tables/stock/StockItemTable.tsx:320 msgid "Include stock in sublocations" msgstr "" -#: src/tables/stock/StockItemTable.tsx:320 +#: src/tables/stock/StockItemTable.tsx:324 msgid "Depleted" msgstr "" -#: src/tables/stock/StockItemTable.tsx:321 +#: src/tables/stock/StockItemTable.tsx:325 msgid "Show depleted stock items" msgstr "" -#: src/tables/stock/StockItemTable.tsx:326 +#: src/tables/stock/StockItemTable.tsx:330 msgid "Show items which are in stock" msgstr "" -#: src/tables/stock/StockItemTable.tsx:331 +#: src/tables/stock/StockItemTable.tsx:335 msgid "Show items which are in production" msgstr "" -#: src/tables/stock/StockItemTable.tsx:336 +#: src/tables/stock/StockItemTable.tsx:340 msgid "Include stock items for variant parts" msgstr "" -#: src/tables/stock/StockItemTable.tsx:341 +#: src/tables/stock/StockItemTable.tsx:345 msgid "Show stock items which are installed in other items" msgstr "" -#: src/tables/stock/StockItemTable.tsx:345 +#: src/tables/stock/StockItemTable.tsx:349 msgid "Sent to Customer" msgstr "" -#: src/tables/stock/StockItemTable.tsx:346 +#: src/tables/stock/StockItemTable.tsx:350 msgid "Show items which have been sent to a customer" msgstr "" -#: src/tables/stock/StockItemTable.tsx:350 +#: src/tables/stock/StockItemTable.tsx:354 msgid "Is Serialized" msgstr "" -#: src/tables/stock/StockItemTable.tsx:351 +#: src/tables/stock/StockItemTable.tsx:355 msgid "Show items which have a serial number" msgstr "" -#: src/tables/stock/StockItemTable.tsx:358 +#: src/tables/stock/StockItemTable.tsx:362 msgid "Has Batch Code" msgstr "" -#: src/tables/stock/StockItemTable.tsx:359 +#: src/tables/stock/StockItemTable.tsx:363 msgid "Show items which have a batch code" msgstr "" -#: src/tables/stock/StockItemTable.tsx:365 +#: src/tables/stock/StockItemTable.tsx:369 msgid "Show tracked items" msgstr "" -#: src/tables/stock/StockItemTable.tsx:369 +#: src/tables/stock/StockItemTable.tsx:373 msgid "Has Purchase Price" msgstr "" -#: src/tables/stock/StockItemTable.tsx:370 +#: src/tables/stock/StockItemTable.tsx:374 msgid "Show items which have a purchase price" msgstr "" -#: src/tables/stock/StockItemTable.tsx:378 +#: src/tables/stock/StockItemTable.tsx:382 msgid "External Location" msgstr "" -#: src/tables/stock/StockItemTable.tsx:379 +#: src/tables/stock/StockItemTable.tsx:383 msgid "Show items in an external location" msgstr "" -#: src/tables/stock/StockItemTable.tsx:451 +#: src/tables/stock/StockItemTable.tsx:456 msgid "Add a new stock item" msgstr "" -#: src/tables/stock/StockItemTable.tsx:460 +#: src/tables/stock/StockItemTable.tsx:465 msgid "Remove some quantity from a stock item" msgstr "" -#: src/tables/stock/StockItemTable.tsx:482 +#: src/tables/stock/StockItemTable.tsx:487 msgid "Move Stock items to new locations" msgstr "" -#: src/tables/stock/StockItemTable.tsx:489 +#: src/tables/stock/StockItemTable.tsx:494 msgid "Change stock status" msgstr "" -#: src/tables/stock/StockItemTable.tsx:491 +#: src/tables/stock/StockItemTable.tsx:496 msgid "Change the status of stock items" msgstr "" -#: src/tables/stock/StockItemTable.tsx:498 +#: src/tables/stock/StockItemTable.tsx:503 msgid "Merge stock" msgstr "" -#: src/tables/stock/StockItemTable.tsx:500 +#: src/tables/stock/StockItemTable.tsx:505 msgid "Merge stock items" msgstr "" -#: src/tables/stock/StockItemTable.tsx:509 -#: src/tables/stock/StockItemTable.tsx:516 +#: src/tables/stock/StockItemTable.tsx:514 +#: src/tables/stock/StockItemTable.tsx:521 msgid "Order new stock" msgstr "" -#: src/tables/stock/StockItemTable.tsx:514 +#: src/tables/stock/StockItemTable.tsx:519 msgid "Assign to customer" msgstr "" -#: src/tables/stock/StockItemTable.tsx:523 +#: src/tables/stock/StockItemTable.tsx:528 msgid "Delete stock" msgstr "" -#: src/tables/stock/StockItemTable.tsx:525 -msgid "Delete stock items" -msgstr "" +#: src/tables/stock/StockItemTable.tsx:528 +#~ msgid "Delete stock items" +#~ msgstr "Delete stock items" -#: src/tables/stock/StockItemTestResultTable.tsx:131 +#: src/tables/stock/StockItemTestResultTable.tsx:137 msgid "Test" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:157 +#: src/tables/stock/StockItemTestResultTable.tsx:163 msgid "Test result for installed stock item" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:168 -msgid "Result" -msgstr "" - -#: src/tables/stock/StockItemTestResultTable.tsx:190 +#: src/tables/stock/StockItemTestResultTable.tsx:196 msgid "Attachment" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:206 +#: src/tables/stock/StockItemTestResultTable.tsx:212 msgid "Test station" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:226 +#: src/tables/stock/StockItemTestResultTable.tsx:234 msgid "Finished" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:268 -#: src/tables/stock/StockItemTestResultTable.tsx:339 +#: src/tables/stock/StockItemTestResultTable.tsx:286 +#: src/tables/stock/StockItemTestResultTable.tsx:357 msgid "Edit Test Result" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:270 +#: src/tables/stock/StockItemTestResultTable.tsx:288 msgid "Test result updated" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:276 -#: src/tables/stock/StockItemTestResultTable.tsx:348 +#: src/tables/stock/StockItemTestResultTable.tsx:294 +#: src/tables/stock/StockItemTestResultTable.tsx:366 msgid "Delete Test Result" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:278 +#: src/tables/stock/StockItemTestResultTable.tsx:296 msgid "Test result deleted" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:292 +#: src/tables/stock/StockItemTestResultTable.tsx:310 msgid "Test Passed" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:293 +#: src/tables/stock/StockItemTestResultTable.tsx:311 msgid "Test result has been recorded" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:300 +#: src/tables/stock/StockItemTestResultTable.tsx:318 msgid "Failed to record test result" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:317 +#: src/tables/stock/StockItemTestResultTable.tsx:335 msgid "Pass Test" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:366 +#: src/tables/stock/StockItemTestResultTable.tsx:384 msgid "Show results for required tests" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:370 +#: src/tables/stock/StockItemTestResultTable.tsx:388 msgid "Include Installed" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:371 +#: src/tables/stock/StockItemTestResultTable.tsx:389 msgid "Show results for installed stock items" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:375 -#: src/tables/stock/TestStatisticsTable.tsx:74 +#: src/tables/stock/StockItemTestResultTable.tsx:393 +#: src/tables/stock/TestStatisticsTable.tsx:62 msgid "Passed" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:376 +#: src/tables/stock/StockItemTestResultTable.tsx:394 msgid "Show only passed tests" msgstr "" @@ -7922,28 +9179,32 @@ msgid "Filter by location type" msgstr "" #: src/tables/stock/StockLocationTable.tsx:107 -#: src/tables/stock/StockLocationTable.tsx:133 +#: src/tables/stock/StockLocationTable.tsx:134 msgid "Add Stock Location" msgstr "" -#: src/tables/stock/StockTrackingTable.tsx:64 +#: src/tables/stock/StockTrackingTable.tsx:68 msgid "Added" msgstr "" -#: src/tables/stock/StockTrackingTable.tsx:69 +#: src/tables/stock/StockTrackingTable.tsx:73 msgid "Removed" msgstr "" #: src/tables/stock/StockTrackingTable.tsx:198 +msgid "Details" +msgstr "" + +#: src/tables/stock/StockTrackingTable.tsx:213 msgid "No user information" msgstr "" -#: src/tables/stock/TestStatisticsTable.tsx:46 -#: src/tables/stock/TestStatisticsTable.tsx:76 +#: src/tables/stock/TestStatisticsTable.tsx:34 +#: src/tables/stock/TestStatisticsTable.tsx:64 msgid "Total" msgstr "" -#: src/tables/stock/TestStatisticsTable.tsx:75 +#: src/tables/stock/TestStatisticsTable.tsx:63 msgid "Failed" msgstr "" diff --git a/src/frontend/src/locales/de/messages.po b/src/frontend/src/locales/de/messages.po index 0959615a60..33d7e63aff 100644 --- a/src/frontend/src/locales/de/messages.po +++ b/src/frontend/src/locales/de/messages.po @@ -8,15 +8,15 @@ msgstr "" "Language: de\n" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"PO-Revision-Date: 2024-08-20 19:49\n" +"PO-Revision-Date: 2024-11-04 03:14\n" "Last-Translator: \n" "Language-Team: German\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Crowdin-Project: inventree\n" "X-Crowdin-Project-ID: 452300\n" "X-Crowdin-Language: de\n" -"X-Crowdin-File: /[inventree.InvenTree] l10/src/frontend/src/locales/en/messages.po\n" -"X-Crowdin-File-ID: 205\n" +"X-Crowdin-File: /src/frontend/src/locales/en/messages.po\n" +"X-Crowdin-File-ID: 252\n" #: src/components/Boundary.tsx:12 msgid "Error rendering component" @@ -27,8 +27,8 @@ msgid "An error occurred while rendering this component. Refer to the console fo msgstr "Beim Rendern dieser Komponente ist ein Fehler aufgetreten. Weitere Informationen stehen in der Konsole." #: src/components/DashboardItemProxy.tsx:34 -msgid "Title" -msgstr "Titel" +#~ msgid "Title" +#~ msgstr "Title" #: src/components/buttons/AdminButton.tsx:80 msgid "Open in admin interface" @@ -38,82 +38,99 @@ msgstr "Im Admin-Interface öffnen" #~ msgid "Copy to clipboard" #~ msgstr "Copy to clipboard" -#: src/components/buttons/CopyButton.tsx:24 +#: src/components/buttons/CopyButton.tsx:29 msgid "Copied" msgstr "Kopiert" -#: src/components/buttons/CopyButton.tsx:24 +#: src/components/buttons/CopyButton.tsx:29 msgid "Copy" msgstr "Kopieren" -#: src/components/buttons/PrintingActions.tsx:93 +#: src/components/buttons/PrintingActions.tsx:97 msgid "Print Label" msgstr "Etiketten Drucken" -#: src/components/buttons/PrintingActions.tsx:99 +#: src/components/buttons/PrintingActions.tsx:103 msgid "Print" msgstr "Drucken" -#: src/components/buttons/PrintingActions.tsx:100 +#: src/components/buttons/PrintingActions.tsx:104 msgid "Label printing completed successfully" msgstr "Etikettendruck erfolgreich abgeschlossen" -#: src/components/buttons/PrintingActions.tsx:106 -#: src/components/buttons/PrintingActions.tsx:144 -#: src/components/editors/NotesEditor.tsx:65 -#: src/components/editors/NotesEditor.tsx:165 -#: src/components/forms/fields/ApiFormField.tsx:319 +#: src/components/buttons/PrintingActions.tsx:110 +#: src/components/buttons/PrintingActions.tsx:148 +#: src/components/editors/NotesEditor.tsx:73 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:154 +#: src/components/forms/fields/ApiFormField.tsx:328 +#: src/components/forms/fields/TableField.tsx:43 #: src/components/importer/ImportDataSelector.tsx:187 -#: src/components/importer/ImporterColumnSelector.tsx:207 +#: src/components/importer/ImporterColumnSelector.tsx:210 #: src/components/modals/LicenseModal.tsx:75 -#: src/components/nav/SearchDrawer.tsx:448 +#: src/components/nav/SearchDrawer.tsx:458 +#: src/components/render/ModelType.tsx:290 #: src/pages/ErrorPage.tsx:11 -#: src/pages/part/PartPricingPanel.tsx:67 -#: src/tables/InvenTreeTable.tsx:495 +#: src/pages/part/PartPricingPanel.tsx:71 +#: src/tables/InvenTreeTable.tsx:481 #: src/tables/bom/BomTable.tsx:450 -#: src/tables/stock/StockItemTestResultTable.tsx:299 +#: src/tables/stock/StockItemTestResultTable.tsx:317 msgid "Error" msgstr "Fehler" -#: src/components/buttons/PrintingActions.tsx:107 +#: src/components/buttons/PrintingActions.tsx:111 msgid "The label could not be generated" msgstr "Das Etikett konnte nicht generiert werden" -#: src/components/buttons/PrintingActions.tsx:122 +#: src/components/buttons/PrintingActions.tsx:126 msgid "Print Report" msgstr "Bericht drucken" -#: src/components/buttons/PrintingActions.tsx:138 +#: src/components/buttons/PrintingActions.tsx:142 msgid "Generate" msgstr "Generieren" -#: src/components/buttons/PrintingActions.tsx:139 +#: src/components/buttons/PrintingActions.tsx:143 msgid "Report printing completed successfully" msgstr "Berichtsdruck erfolgreich abgeschlossen" -#: src/components/buttons/PrintingActions.tsx:145 +#: src/components/buttons/PrintingActions.tsx:149 msgid "The report could not be generated" msgstr "Der Bericht konnte nicht erstellt werden" -#: src/components/buttons/PrintingActions.tsx:173 +#: src/components/buttons/PrintingActions.tsx:177 msgid "Printing Actions" msgstr "Druck Aktionen" -#: src/components/buttons/PrintingActions.tsx:178 +#: src/components/buttons/PrintingActions.tsx:182 msgid "Print Labels" msgstr "Etiketten drucken" -#: src/components/buttons/PrintingActions.tsx:184 +#: src/components/buttons/PrintingActions.tsx:188 msgid "Print Reports" msgstr "Berichte drucken" +#: src/components/buttons/RemoveRowButton.tsx:8 +msgid "Remove this row" +msgstr "Diese Zeile entfernen" + #: src/components/buttons/ScanButton.tsx:15 -msgid "Scan QR code" -msgstr "QR-Code scannen" +#: src/components/nav/NavigationDrawer.tsx:117 +#: src/forms/PurchaseOrderForms.tsx:379 +#: src/forms/PurchaseOrderForms.tsx:473 +msgid "Scan Barcode" +msgstr "Barcode scannen" + +#: src/components/buttons/ScanButton.tsx:15 +#~ msgid "Scan QR code" +#~ msgstr "Scan QR code" #: src/components/buttons/ScanButton.tsx:20 -msgid "Open QR code scanner" -msgstr "QR-Code-Scanner öffnen" +msgid "Open Barcode Scanner" +msgstr "" + +#: src/components/buttons/ScanButton.tsx:20 +#~ msgid "Open QR code scanner" +#~ msgstr "Open QR code scanner" #: src/components/buttons/SpotlightButton.tsx:14 msgid "Open spotlight" @@ -128,85 +145,347 @@ msgid "Fail" msgstr "Fehler" #: src/components/buttons/YesNoButton.tsx:33 -#: src/tables/Filter.tsx:52 +#: src/tables/Filter.tsx:61 msgid "Yes" msgstr "Ja" #: src/components/buttons/YesNoButton.tsx:33 -#: src/tables/Filter.tsx:53 +#: src/tables/Filter.tsx:62 msgid "No" msgstr "Nein" -#: src/components/details/Details.tsx:301 +#: src/components/dashboard/DashboardLayout.tsx:286 +msgid "No Widgets Selected" +msgstr "" + +#: src/components/dashboard/DashboardLayout.tsx:289 +msgid "Use the menu to add widgets to the dashboard" +msgstr "" + +#: src/components/dashboard/DashboardMenu.tsx:59 +#: src/components/dashboard/DashboardMenu.tsx:126 +msgid "Accept Layout" +msgstr "" + +#: src/components/dashboard/DashboardMenu.tsx:91 +#: src/components/nav/NavigationDrawer.tsx:71 +#: src/defaults/actions.tsx:17 +#: src/defaults/links.tsx:9 +#: src/pages/Index/Settings/UserSettings.tsx:47 +msgid "Dashboard" +msgstr "Dashboard" + +#: src/components/dashboard/DashboardMenu.tsx:99 +msgid "Edit Layout" +msgstr "Layout bearbeiten" + +#: src/components/dashboard/DashboardMenu.tsx:108 +msgid "Add Widget" +msgstr "" + +#: src/components/dashboard/DashboardMenu.tsx:117 +msgid "Remove Widgets" +msgstr "" + +#: src/components/dashboard/DashboardWidget.tsx:65 +msgid "Remove this widget from the dashboard" +msgstr "" + +#: src/components/dashboard/DashboardWidgetDrawer.tsx:77 +msgid "Filter dashboard widgets" +msgstr "" + +#: src/components/dashboard/DashboardWidgetDrawer.tsx:98 +msgid "Add this widget to the dashboard" +msgstr "" + +#: src/components/dashboard/DashboardWidgetDrawer.tsx:123 +msgid "No Widgets Available" +msgstr "" + +#: src/components/dashboard/DashboardWidgetDrawer.tsx:124 +msgid "There are no more widgets available for the dashboard" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:19 +msgid "Subscribed Parts" +msgstr "Abonnierte Teile" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:20 +msgid "Show the number of parts which you have subscribed to" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:26 +msgid "Subscribed Categories" +msgstr "Abonnierte Kategorien" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:27 +msgid "Show the number of part categories which you have subscribed to" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:35 +#: src/pages/part/PartSchedulingDetail.tsx:304 +#: src/tables/part/PartTable.tsx:238 +msgid "Low Stock" +msgstr "Geringer Bestand" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:37 +msgid "Show the number of parts which are low on stock" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:43 +msgid "Expired Stock Items" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:45 +msgid "Show the number of stock items which have expired" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:51 +msgid "Stale Stock Items" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:53 +msgid "Show the number of stock items which are stale" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:59 +msgid "Active Build Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:61 +msgid "Show the number of build orders which are currently active" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:66 +msgid "Overdue Build Orders" +msgstr "Überfällige Bauaufträge" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:68 +msgid "Show the number of build orders which are overdue" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:73 +msgid "Assigned Build Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:75 +msgid "Show the number of build orders which are assigned to you" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:80 +msgid "Active Sales Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:82 +msgid "Show the number of sales orders which are currently active" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:87 +msgid "Overdue Sales Orders" +msgstr "Überfällige Bestellungen" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:89 +msgid "Show the number of sales orders which are overdue" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:94 +msgid "Assigned Sales Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:96 +msgid "Show the number of sales orders which are assigned to you" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:101 +msgid "Active Purchase Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:103 +msgid "Show the number of purchase orders which are currently active" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:108 +msgid "Overdue Purchase Orders" +msgstr "Überfällige Bestellungen" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:110 +msgid "Show the number of purchase orders which are overdue" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:115 +msgid "Assigned Purchase Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:117 +msgid "Show the number of purchase orders which are assigned to you" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:122 +msgid "Active Return Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:124 +msgid "Show the number of return orders which are currently active" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:129 +msgid "Overdue Return Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:131 +msgid "Show the number of return orders which are overdue" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:136 +msgid "Assigned Return Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:138 +msgid "Show the number of return orders which are assigned to you" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:149 +#: src/components/dashboard/widgets/GetStartedWidget.tsx:15 +#: src/defaults/links.tsx:38 +msgid "Getting Started" +msgstr "Erste Schritte" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:150 +#: src/defaults/links.tsx:41 +msgid "Getting started with InvenTree" +msgstr "Erste Schritte mit InvenTree" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:157 +#: src/components/dashboard/widgets/NewsWidget.tsx:123 +msgid "News Updates" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:158 +msgid "The latest news from InvenTree" +msgstr "" + +#: src/components/dashboard/widgets/ColorToggleWidget.tsx:18 +#: src/components/nav/MainMenu.tsx:77 +msgid "Change Color Mode" +msgstr "Farbmodus ändern" + +#: src/components/dashboard/widgets/ColorToggleWidget.tsx:23 +msgid "Change the color mode of the user interface" +msgstr "" + +#: src/components/dashboard/widgets/LanguageSelectWidget.tsx:18 +msgid "Change Language" +msgstr "" + +#: src/components/dashboard/widgets/LanguageSelectWidget.tsx:23 +msgid "Change the language of the user interface" +msgstr "" + +#: src/components/dashboard/widgets/NewsWidget.tsx:61 +#: src/components/nav/NotificationDrawer.tsx:88 +#: src/pages/Notifications.tsx:73 +msgid "Mark as read" +msgstr "Als gelesen markieren" + +#: src/components/dashboard/widgets/NewsWidget.tsx:115 +msgid "Requires Superuser" +msgstr "" + +#: src/components/dashboard/widgets/NewsWidget.tsx:116 +msgid "This widget requires superuser permissions" +msgstr "" + +#: src/components/dashboard/widgets/NewsWidget.tsx:133 +msgid "No News" +msgstr "" + +#: src/components/dashboard/widgets/NewsWidget.tsx:134 +msgid "There are no unread news items" +msgstr "" + +#: src/components/details/Details.tsx:300 msgid "No name defined" msgstr "Kein Name festgelegt" -#: src/components/details/DetailsImage.tsx:65 +#: src/components/details/DetailsImage.tsx:69 msgid "Remove Image" msgstr "Bild entfernen" -#: src/components/details/DetailsImage.tsx:68 +#: src/components/details/DetailsImage.tsx:72 msgid "Remove the associated image from this item?" msgstr "Verknüpftes Bild von diesem Teil entfernen?" -#: src/components/details/DetailsImage.tsx:71 -#: src/forms/StockForms.tsx:533 +#: src/components/details/DetailsImage.tsx:75 +#: src/forms/StockForms.tsx:651 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:199 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:306 -#: src/pages/stock/StockDetail.tsx:526 +#: src/pages/stock/StockDetail.tsx:690 msgid "Remove" msgstr "Entfernen" -#: src/components/details/DetailsImage.tsx:71 -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:158 -#: src/components/items/ActionDropdown.tsx:215 -#: src/components/items/ActionDropdown.tsx:216 -#: src/contexts/ThemeContext.tsx:43 +#: src/components/details/DetailsImage.tsx:75 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:184 +#: src/components/items/ActionDropdown.tsx:268 +#: src/components/items/ActionDropdown.tsx:269 +#: src/contexts/ThemeContext.tsx:45 #: src/hooks/UseForm.tsx:40 -#: src/tables/FilterSelectDrawer.tsx:205 -#: src/tables/build/BuildOutputTable.tsx:286 +#: src/tables/FilterSelectDrawer.tsx:241 +#: src/tables/RowActions.tsx:59 +#: src/tables/build/BuildOutputTable.tsx:434 msgid "Cancel" msgstr "Abbrechen" -#: src/components/details/DetailsImage.tsx:97 +#: src/components/details/DetailsImage.tsx:101 msgid "Drag and drop to upload" msgstr "Ziehen und Ablegen zum Hochladen" -#: src/components/details/DetailsImage.tsx:100 +#: src/components/details/DetailsImage.tsx:104 msgid "Click to select file(s)" msgstr "Klicken, um Datei(en) auszuwählen" -#: src/components/details/DetailsImage.tsx:226 +#: src/components/details/DetailsImage.tsx:230 msgid "Clear" msgstr "Leeren" -#: src/components/details/DetailsImage.tsx:232 -#: src/components/forms/ApiForm.tsx:627 -#: src/contexts/ThemeContext.tsx:43 -#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:60 +#: src/components/details/DetailsImage.tsx:236 +#: src/components/forms/ApiForm.tsx:660 +#: src/contexts/ThemeContext.tsx:45 msgid "Submit" msgstr "Speichern" -#: src/components/details/DetailsImage.tsx:272 +#: src/components/details/DetailsImage.tsx:280 msgid "Select from existing images" msgstr "Aus vorhandenen Bildern auswählen" -#: src/components/details/DetailsImage.tsx:280 +#: src/components/details/DetailsImage.tsx:288 msgid "Select Image" msgstr "Bild auswählen" -#: src/components/details/DetailsImage.tsx:292 +#: src/components/details/DetailsImage.tsx:304 +msgid "Download remote image" +msgstr "" + +#: src/components/details/DetailsImage.tsx:319 msgid "Upload new image" msgstr "Neues Bild hochladen" -#: src/components/details/DetailsImage.tsx:299 +#: src/components/details/DetailsImage.tsx:326 msgid "Upload Image" msgstr "Bild hochladen" -#: src/components/details/DetailsImage.tsx:312 +#: src/components/details/DetailsImage.tsx:339 msgid "Delete image" msgstr "Bild löschen" +#: src/components/details/DetailsImage.tsx:373 +msgid "Download Image" +msgstr "" + +#: src/components/details/DetailsImage.tsx:378 +msgid "Image downloaded successfully" +msgstr "" + #: src/components/details/PartIcons.tsx:43 #~ msgid "Part is a template part (variants can be made from this part)" #~ msgstr "Part is a template part (variants can be made from this part)" @@ -235,36 +514,57 @@ msgstr "Bild löschen" #~ msgid "Part is virtual (not a physical part)" #~ msgstr "Part is virtual (not a physical part)" -#: src/components/editors/NotesEditor.tsx:66 +#: src/components/editors/NotesEditor.tsx:74 msgid "Image upload failed" msgstr "Das Bild konnte nicht hochgeladen werden" -#: src/components/editors/NotesEditor.tsx:156 -#: src/components/forms/ApiForm.tsx:467 +#: src/components/editors/NotesEditor.tsx:83 +#: src/components/editors/NotesEditor.tsx:119 +#: src/components/forms/ApiForm.tsx:475 #: src/tables/bom/BomTable.tsx:441 msgid "Success" msgstr "Abgeschlossen" -#: src/components/editors/NotesEditor.tsx:157 +#: src/components/editors/NotesEditor.tsx:84 +msgid "Image uploaded successfully" +msgstr "" + +#: src/components/editors/NotesEditor.tsx:120 msgid "Notes saved successfully" msgstr "Notizen erfolgreich gespeichert" -#: src/components/editors/NotesEditor.tsx:166 +#: src/components/editors/NotesEditor.tsx:131 msgid "Failed to save notes" msgstr "Notiz konnte nicht gespeichert werden" -#: src/components/editors/NotesEditor.tsx:198 -msgid "Preview Notes" -msgstr "Notizen Vorschau" +#: src/components/editors/NotesEditor.tsx:134 +msgid "Error Saving Notes" +msgstr "" -#: src/components/editors/NotesEditor.tsx:198 -msgid "Edit Notes" -msgstr "Notizen bearbeiten" +#: src/components/editors/NotesEditor.tsx:151 +#~ msgid "Disable Editing" +#~ msgstr "Disable Editing" -#: src/components/editors/NotesEditor.tsx:212 +#: src/components/editors/NotesEditor.tsx:154 msgid "Save Notes" msgstr "Notizen speichern" +#: src/components/editors/NotesEditor.tsx:173 +msgid "Close Editor" +msgstr "" + +#: src/components/editors/NotesEditor.tsx:180 +msgid "Enable Editing" +msgstr "" + +#: src/components/editors/NotesEditor.tsx:198 +#~ msgid "Preview Notes" +#~ msgstr "Preview Notes" + +#: src/components/editors/NotesEditor.tsx:198 +#~ msgid "Edit Notes" +#~ msgstr "Edit Notes" + #: src/components/editors/TemplateEditor/CodeEditor/index.tsx:9 msgid "Code" msgstr "Code" @@ -281,40 +581,44 @@ msgstr "Vorschau nicht verfügbar, klicke \"Vorschau neu laden\"." msgid "PDF Preview" msgstr "PDF Vorschau" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:104 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:115 msgid "Error loading template" msgstr "Fehler beim Laden der Vorlage" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:116 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:127 msgid "Error saving template" msgstr "Fehler beim Speichern der Vorlage" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:146 -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:274 -msgid "Save & Reload Preview" -msgstr "Vorschau speichern & neu laden" - -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:151 -msgid "Are you sure you want to Save & Reload the preview?" -msgstr "Bist du sicher, dass du die Vorschau speichern & neu Laden möchtest?" - #: src/components/editors/TemplateEditor/TemplateEditor.tsx:151 #~ msgid "Save & Reload preview?" #~ msgstr "Save & Reload preview?" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:153 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:155 +msgid "Could not load the template from the server." +msgstr "" + +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:172 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:303 +msgid "Save & Reload Preview" +msgstr "Vorschau speichern & neu laden" + +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:177 +msgid "Are you sure you want to Save & Reload the preview?" +msgstr "Bist du sicher, dass du die Vorschau speichern & neu Laden möchtest?" + +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:179 msgid "To render the preview the current template needs to be replaced on the server with your modifications which may break the label if it is under active use. Do you want to proceed?" msgstr "Um die Vorschau zu erstellen, muss die Vorlage auf dem Server mit deiner geänderten Version ersetzt werden. Das kann zu Fehlern bei Etiketten führen, wenn sie aktiv genutzt werden. Möchtest du fortfahren?" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:157 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:183 msgid "Save & Reload" msgstr "Speichern & Neu laden" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:189 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:215 msgid "Preview updated" msgstr "Vorschau aktualisiert" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:190 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:216 msgid "The preview has been updated successfully." msgstr "Die Vorlage wurde erfolgreich aktualisiert." @@ -322,15 +626,15 @@ msgstr "Die Vorlage wurde erfolgreich aktualisiert." #~ msgid "Save & Reload preview" #~ msgstr "Save & Reload preview" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:266 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:295 msgid "Reload preview" msgstr "Vorschau neu laden" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:267 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:296 msgid "Use the currently stored template from the server" msgstr "Benutze die aktuell auf dem Server gespeicherte Vorlage" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:275 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:304 msgid "Save the current template and reload the preview" msgstr "Die aktuelle Vorlage speichern und die Vorschau neu laden" @@ -338,11 +642,11 @@ msgstr "Die aktuelle Vorlage speichern und die Vorschau neu laden" #~ msgid "to preview" #~ msgstr "to preview" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:333 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:365 msgid "Select instance to preview" msgstr "Instanz für Vorschau auswählen" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:377 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:409 msgid "Error rendering template" msgstr "Fehler bei Darstellung der Vorlage" @@ -379,6 +683,7 @@ msgid "This page does not exist" msgstr "Diese Seite existiert nicht" #: src/components/errors/PermissionDenied.tsx:8 +#: src/functions/notifications.tsx:24 msgid "Permission Denied" msgstr "Zugriff verweigert" @@ -394,8 +699,8 @@ msgstr "Serverfehler" msgid "A server error occurred" msgstr "Ein Serverfehler ist aufgetreten" -#: src/components/forms/ApiForm.tsx:151 -#: src/components/forms/ApiForm.tsx:555 +#: src/components/forms/ApiForm.tsx:154 +#: src/components/forms/ApiForm.tsx:579 msgid "Form Error" msgstr "Formularfehler" @@ -403,22 +708,22 @@ msgstr "Formularfehler" #~ msgid "Form Errors Exist" #~ msgstr "Form Errors Exist" -#: src/components/forms/ApiForm.tsx:563 +#: src/components/forms/ApiForm.tsx:587 msgid "Errors exist for one or more form fields" msgstr "Fehler für ein oder mehrere Formularfelder vorhanden" -#: src/components/forms/ApiForm.tsx:665 -#: src/tables/plugin/PluginListTable.tsx:388 +#: src/components/forms/ApiForm.tsx:698 +#: src/tables/plugin/PluginListTable.tsx:195 msgid "Update" msgstr "Aktualisieren" -#: src/components/forms/ApiForm.tsx:685 -#: src/components/items/ActionDropdown.tsx:195 +#: src/components/forms/ApiForm.tsx:718 +#: src/components/items/ActionDropdown.tsx:248 #: src/hooks/UseForm.tsx:122 -#: src/pages/Index/Scan.tsx:343 +#: src/pages/Index/Scan.tsx:357 #: src/pages/Notifications.tsx:123 -#: src/tables/RowActions.tsx:43 -#: src/tables/plugin/PluginListTable.tsx:420 +#: src/tables/RowActions.tsx:49 +#: src/tables/plugin/PluginListTable.tsx:232 msgid "Delete" msgstr "Löschen" @@ -428,14 +733,6 @@ msgstr "Löschen" #~ msgid "Check your your input and try again." #~ msgstr "Check your your input and try again." -#: src/components/forms/AuthenticationForm.tsx:51 -msgid "Login successful" -msgstr "Anmeldung erfolgreich" - -#: src/components/forms/AuthenticationForm.tsx:52 -msgid "Logged in successfully" -msgstr "Erfolgreich eingeloggt" - #: src/components/forms/AuthenticationForm.tsx:52 #~ msgid "Welcome back!" #~ msgstr "Welcome back!" @@ -444,14 +741,22 @@ msgstr "Erfolgreich eingeloggt" #~ msgid "Login successfull" #~ msgstr "Login successfull" -#: src/components/forms/AuthenticationForm.tsx:58 +#: src/components/forms/AuthenticationForm.tsx:55 +msgid "Login successful" +msgstr "Anmeldung erfolgreich" + +#: src/components/forms/AuthenticationForm.tsx:56 +msgid "Logged in successfully" +msgstr "Erfolgreich eingeloggt" + +#: src/components/forms/AuthenticationForm.tsx:61 msgid "Login failed" msgstr "Login fehlgeschlagen" -#: src/components/forms/AuthenticationForm.tsx:59 -#: src/components/forms/AuthenticationForm.tsx:76 -#: src/components/forms/AuthenticationForm.tsx:211 -#: src/functions/auth.tsx:164 +#: src/components/forms/AuthenticationForm.tsx:62 +#: src/components/forms/AuthenticationForm.tsx:79 +#: src/components/forms/AuthenticationForm.tsx:214 +#: src/functions/auth.tsx:175 msgid "Check your input and try again." msgstr "Überprüfen Sie Ihre Eingabe und versuchen Sie es erneut." @@ -460,45 +765,46 @@ msgstr "Überprüfen Sie Ihre Eingabe und versuchen Sie es erneut." #~ msgid "Mail delivery successfull" #~ msgstr "Mail delivery successfull" -#: src/components/forms/AuthenticationForm.tsx:70 -#: src/functions/auth.tsx:155 +#: src/components/forms/AuthenticationForm.tsx:73 +#: src/functions/auth.tsx:166 msgid "Mail delivery successful" msgstr "Mail erfolgreich gesendet" -#: src/components/forms/AuthenticationForm.tsx:71 +#: src/components/forms/AuthenticationForm.tsx:74 msgid "Check your inbox for the login link. If you have an account, you will receive a login link. Check in spam too." msgstr "Prüfen Sie Ihren Posteingang auf den Anmeldelink. Wenn Sie ein Konto haben, erhalten Sie einen Anmeldelink. Prüfen Sie auch den Spam." -#: src/components/forms/AuthenticationForm.tsx:75 +#: src/components/forms/AuthenticationForm.tsx:78 msgid "Mail delivery failed" msgstr "E-Mail Zustellung fehlgeschlagen" -#: src/components/forms/AuthenticationForm.tsx:95 +#: src/components/forms/AuthenticationForm.tsx:98 msgid "Or continue with other methods" msgstr "Oder mit anderen Methoden fortfahren" -#: src/components/forms/AuthenticationForm.tsx:106 -#: src/components/forms/AuthenticationForm.tsx:227 +#: src/components/forms/AuthenticationForm.tsx:109 +#: src/components/forms/AuthenticationForm.tsx:230 +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:67 msgid "Username" msgstr "Nutzername" -#: src/components/forms/AuthenticationForm.tsx:107 -#: src/components/forms/AuthenticationForm.tsx:228 +#: src/components/forms/AuthenticationForm.tsx:110 +#: src/components/forms/AuthenticationForm.tsx:231 msgid "Your username" msgstr "Ihr Benutzername" -#: src/components/forms/AuthenticationForm.tsx:112 -#: src/components/forms/AuthenticationForm.tsx:240 -#: src/pages/Auth/Set-Password.tsx:106 +#: src/components/forms/AuthenticationForm.tsx:115 +#: src/components/forms/AuthenticationForm.tsx:243 +#: src/pages/Auth/Set-Password.tsx:101 msgid "Password" msgstr "Passwort" -#: src/components/forms/AuthenticationForm.tsx:113 -#: src/components/forms/AuthenticationForm.tsx:241 +#: src/components/forms/AuthenticationForm.tsx:116 +#: src/components/forms/AuthenticationForm.tsx:244 msgid "Your password" msgstr "Dein Passwort" -#: src/components/forms/AuthenticationForm.tsx:125 +#: src/components/forms/AuthenticationForm.tsx:128 #: src/pages/Auth/Reset.tsx:26 msgid "Reset password" msgstr "Passwort zurücksetzen" @@ -507,77 +813,79 @@ msgstr "Passwort zurücksetzen" #~ msgid "Log in" #~ msgstr "Log in" -#: src/components/forms/AuthenticationForm.tsx:134 -#: src/components/forms/AuthenticationForm.tsx:233 +#: src/components/forms/AuthenticationForm.tsx:136 +#~ msgid "I will use username and password" +#~ msgstr "I will use username and password" + +#: src/components/forms/AuthenticationForm.tsx:137 +#: src/components/forms/AuthenticationForm.tsx:236 #: src/pages/Auth/Reset.tsx:31 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:51 msgid "Email" msgstr "Mail" -#: src/components/forms/AuthenticationForm.tsx:135 +#: src/components/forms/AuthenticationForm.tsx:138 #: src/pages/Auth/Reset.tsx:32 -#: src/pages/Auth/Set-Password.tsx:107 +#: src/pages/Auth/Set-Password.tsx:102 msgid "We will send you a link to login - if you are registered" msgstr "Wir werden Ihnen einen Link für die Anmeldung senden" -#: src/components/forms/AuthenticationForm.tsx:136 -#~ msgid "I will use username and password" -#~ msgstr "I will use username and password" - -#: src/components/forms/AuthenticationForm.tsx:151 +#: src/components/forms/AuthenticationForm.tsx:154 msgid "Send me an email" msgstr "Mail erhalten" -#: src/components/forms/AuthenticationForm.tsx:153 +#: src/components/forms/AuthenticationForm.tsx:156 msgid "Use username and password" msgstr "Benutzername und Passwort benutzen" -#: src/components/forms/AuthenticationForm.tsx:162 +#: src/components/forms/AuthenticationForm.tsx:165 msgid "Log In" msgstr "Anmelden" -#: src/components/forms/AuthenticationForm.tsx:164 +#: src/components/forms/AuthenticationForm.tsx:167 +#: src/pages/Auth/Reset.tsx:41 +#: src/pages/Auth/Set-Password.tsx:107 msgid "Send Email" msgstr "E-Mail senden" -#: src/components/forms/AuthenticationForm.tsx:193 +#: src/components/forms/AuthenticationForm.tsx:196 msgid "Registration successful" msgstr "Registrierung erfolgreich" -#: src/components/forms/AuthenticationForm.tsx:194 +#: src/components/forms/AuthenticationForm.tsx:197 msgid "Please confirm your email address to complete the registration" msgstr "Bitte bestätigen Sie Ihre E-Mail-Adresse um die Registrierung abzuschließen" -#: src/components/forms/AuthenticationForm.tsx:210 +#: src/components/forms/AuthenticationForm.tsx:213 msgid "Input error" msgstr "Eingabefehler" -#: src/components/forms/AuthenticationForm.tsx:234 +#: src/components/forms/AuthenticationForm.tsx:237 msgid "This will be used for a confirmation" msgstr "Dies wird zur Bestätigung verwendet" -#: src/components/forms/AuthenticationForm.tsx:246 +#: src/components/forms/AuthenticationForm.tsx:249 msgid "Password repeat" msgstr "Passwort wiederholen" -#: src/components/forms/AuthenticationForm.tsx:247 +#: src/components/forms/AuthenticationForm.tsx:250 msgid "Repeat password" msgstr "Passwort erneut eingeben" -#: src/components/forms/AuthenticationForm.tsx:259 -#: src/components/forms/AuthenticationForm.tsx:304 +#: src/components/forms/AuthenticationForm.tsx:262 +#: src/components/forms/AuthenticationForm.tsx:307 msgid "Register" msgstr "Registrieren" -#: src/components/forms/AuthenticationForm.tsx:265 +#: src/components/forms/AuthenticationForm.tsx:268 msgid "Or use SSO" msgstr "Oder SSO verwenden" -#: src/components/forms/AuthenticationForm.tsx:296 +#: src/components/forms/AuthenticationForm.tsx:299 msgid "Don't have an account?" msgstr "Nicht registriert?" -#: src/components/forms/AuthenticationForm.tsx:315 +#: src/components/forms/AuthenticationForm.tsx:318 msgid "Go back to login" msgstr "Zurück zur Anmeldung" @@ -588,19 +896,20 @@ msgstr "Adresse" #: src/components/forms/HostOptionsForm.tsx:42 #: src/components/forms/HostOptionsForm.tsx:70 +#: src/components/plugins/PluginDrawer.tsx:69 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:410 +#: src/pages/Index/Settings/AdminCenter/UnitManagmentPanel.tsx:19 #: src/pages/part/CategoryDetail.tsx:81 -#: src/pages/part/PartDetail.tsx:143 -#: src/pages/stock/LocationDetail.tsx:89 -#: src/tables/machine/MachineTypeTable.tsx:65 -#: src/tables/machine/MachineTypeTable.tsx:109 -#: src/tables/machine/MachineTypeTable.tsx:216 -#: src/tables/machine/MachineTypeTable.tsx:319 +#: src/pages/part/PartDetail.tsx:164 +#: src/pages/stock/LocationDetail.tsx:83 +#: src/tables/machine/MachineTypeTable.tsx:70 +#: src/tables/machine/MachineTypeTable.tsx:119 +#: src/tables/machine/MachineTypeTable.tsx:237 +#: src/tables/machine/MachineTypeTable.tsx:340 #: src/tables/plugin/PluginErrorTable.tsx:33 -#: src/tables/plugin/PluginListTable.tsx:126 #: src/tables/purchasing/ManufacturerPartParameterTable.tsx:32 #: src/tables/settings/GroupTable.tsx:147 -#: src/tables/settings/PendingTasksTable.tsx:28 +#: src/tables/settings/PendingTasksTable.tsx:32 #: src/tables/stock/LocationTypesTable.tsx:69 msgid "Name" msgstr "Name" @@ -650,7 +959,7 @@ msgid "Uncategorized" msgstr "Nicht kategorisiert" #: src/components/forms/fields/IconField.tsx:209 -#: src/components/nav/Layout.tsx:70 +#: src/components/nav/Layout.tsx:77 #: src/tables/part/PartThumbTable.tsx:192 msgid "Search..." msgstr "Suchen..." @@ -667,28 +976,27 @@ msgstr "" msgid "{0} icons" msgstr "{0} Symbole" -#: src/components/forms/fields/RelatedModelField.tsx:318 -#: src/pages/Index/Settings/UserSettings.tsx:96 +#: src/components/forms/fields/RelatedModelField.tsx:319 +#: src/pages/Index/Settings/UserSettings.tsx:97 #: src/tables/Search.tsx:23 msgid "Search" msgstr "Suche" -#: src/components/forms/fields/RelatedModelField.tsx:319 +#: src/components/forms/fields/RelatedModelField.tsx:320 #: src/components/modals/AboutInvenTreeModal.tsx:81 -#: src/components/widgets/WidgetLayout.tsx:120 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:316 msgid "Loading" msgstr "Wird geladen" -#: src/components/forms/fields/RelatedModelField.tsx:321 +#: src/components/forms/fields/RelatedModelField.tsx:322 msgid "No results found" msgstr "Keine Ergebnisse gefunden" -#: src/components/forms/fields/TableField.tsx:52 -msgid "modelRenderer entry required for tables" -msgstr "modelRenderer Eintrag für Tabellen erforderlich" +#: src/components/forms/fields/TableField.tsx:72 +#~ msgid "modelRenderer entry required for tables" +#~ msgstr "modelRenderer entry required for tables" -#: src/components/forms/fields/TableField.tsx:76 +#: src/components/forms/fields/TableField.tsx:167 msgid "No entries available" msgstr "Keine Einträge vorhanden" @@ -741,7 +1049,7 @@ msgid "Filter by row validation status" msgstr "Filtern nach Zeilenvalidierung" #: src/components/importer/ImportDataSelector.tsx:365 -#: src/tables/build/BuildOutputTable.tsx:266 +#: src/tables/build/BuildOutputTable.tsx:407 msgid "Complete" msgstr "Fertigstellen" @@ -749,20 +1057,21 @@ msgstr "Fertigstellen" msgid "Filter by row completion status" msgstr "Filtern nach Zeilenvollständigkeit" -#: src/components/importer/ImportDataSelector.tsx:383 +#: src/components/importer/ImportDataSelector.tsx:384 msgid "Import selected rows" msgstr "Ausgewählte Zeilen importieren" -#: src/components/importer/ImportDataSelector.tsx:398 +#: src/components/importer/ImportDataSelector.tsx:399 msgid "Processing Data" msgstr "Daten werden verarbeiten" -#: src/components/importer/ImporterColumnSelector.tsx:50 -#: src/components/importer/ImporterColumnSelector.tsx:176 +#: src/components/importer/ImporterColumnSelector.tsx:53 +#: src/components/importer/ImporterColumnSelector.tsx:179 +#: src/components/items/ErrorItem.tsx:12 msgid "An error occurred" msgstr "Ein Fehler ist aufgetreten" -#: src/components/importer/ImporterColumnSelector.tsx:62 +#: src/components/importer/ImporterColumnSelector.tsx:65 msgid "Select column, or leave blank to ignore this field." msgstr "Spalte auswählen oder leer lassen, um dieses Feld zu ignorieren." @@ -778,51 +1087,51 @@ msgstr "Spalte auswählen oder leer lassen, um dieses Feld zu ignorieren." #~ msgid "Imported Column Name" #~ msgstr "Imported Column Name" -#: src/components/importer/ImporterColumnSelector.tsx:182 +#: src/components/importer/ImporterColumnSelector.tsx:185 msgid "Ignore this field" msgstr "Dieses Feld ignorieren" -#: src/components/importer/ImporterColumnSelector.tsx:196 +#: src/components/importer/ImporterColumnSelector.tsx:199 msgid "Mapping data columns to database fields" msgstr "Spalten zu Datenbankfeldern zuordnen" -#: src/components/importer/ImporterColumnSelector.tsx:201 +#: src/components/importer/ImporterColumnSelector.tsx:204 msgid "Accept Column Mapping" msgstr "Spaltenzuordnung akzeptieren" -#: src/components/importer/ImporterColumnSelector.tsx:214 +#: src/components/importer/ImporterColumnSelector.tsx:217 msgid "Database Field" msgstr "Datenbankfeld" -#: src/components/importer/ImporterColumnSelector.tsx:215 +#: src/components/importer/ImporterColumnSelector.tsx:218 msgid "Field Description" msgstr "Feldbeschreibung" -#: src/components/importer/ImporterColumnSelector.tsx:216 +#: src/components/importer/ImporterColumnSelector.tsx:219 msgid "Imported Column" msgstr "Importierte Spalte" -#: src/components/importer/ImporterColumnSelector.tsx:217 +#: src/components/importer/ImporterColumnSelector.tsx:220 msgid "Default Value" msgstr "Standard-Wert" -#: src/components/importer/ImporterDrawer.tsx:44 +#: src/components/importer/ImporterDrawer.tsx:46 msgid "Upload File" msgstr "Datei hochgeladen" -#: src/components/importer/ImporterDrawer.tsx:45 +#: src/components/importer/ImporterDrawer.tsx:47 msgid "Map Columns" msgstr "Spalten zuordnen" -#: src/components/importer/ImporterDrawer.tsx:46 +#: src/components/importer/ImporterDrawer.tsx:48 msgid "Import Data" msgstr "Daten importieren" -#: src/components/importer/ImporterDrawer.tsx:47 +#: src/components/importer/ImporterDrawer.tsx:49 msgid "Process Data" msgstr "Daten verarbeiten" -#: src/components/importer/ImporterDrawer.tsx:48 +#: src/components/importer/ImporterDrawer.tsx:50 msgid "Complete Import" msgstr "Import abschließen" @@ -830,28 +1139,28 @@ msgstr "Import abschließen" #~ msgid "Cancel import session" #~ msgstr "Cancel import session" -#: src/components/importer/ImporterDrawer.tsx:104 +#: src/components/importer/ImporterDrawer.tsx:106 msgid "Import Complete" msgstr "Import abgeschlossen" -#: src/components/importer/ImporterDrawer.tsx:107 +#: src/components/importer/ImporterDrawer.tsx:109 msgid "Data has been imported successfully" msgstr "Daten wurden erfolgreich importiert" -#: src/components/importer/ImporterDrawer.tsx:109 -#: src/components/importer/ImporterDrawer.tsx:118 +#: src/components/importer/ImporterDrawer.tsx:111 +#: src/components/importer/ImporterDrawer.tsx:120 msgid "Close" msgstr "Schließen" -#: src/components/importer/ImporterDrawer.tsx:115 +#: src/components/importer/ImporterDrawer.tsx:117 msgid "Unknown Status" msgstr "Unbekannter Status" -#: src/components/importer/ImporterDrawer.tsx:116 +#: src/components/importer/ImporterDrawer.tsx:118 msgid "Import session has unknown status" msgstr "Importsitzung hat einen unbekannten Status" -#: src/components/importer/ImporterDrawer.tsx:135 +#: src/components/importer/ImporterDrawer.tsx:137 msgid "Importing Data" msgstr "Importiere Daten" @@ -860,85 +1169,115 @@ msgid "Importing Records" msgstr "Importiere Datensätze" #: src/components/importer/ImporterImportProgress.tsx:39 -msgid "Imported rows" -msgstr "Importierte Zeilen" +#: src/tables/settings/ImportSessionTable.tsx:78 +msgid "Imported Rows" +msgstr "" -#: src/components/items/ActionDropdown.tsx:121 +#: src/components/importer/ImporterImportProgress.tsx:39 +#~ msgid "Imported rows" +#~ msgstr "Imported rows" + +#: src/components/items/ActionDropdown.tsx:126 +msgid "Options" +msgstr "" + +#: src/components/items/ActionDropdown.tsx:140 +#~ msgid "View Barcode" +#~ msgstr "View Barcode" + +#: src/components/items/ActionDropdown.tsx:162 +#: src/tables/InvenTreeTableHeader.tsx:159 +#: src/tables/InvenTreeTableHeader.tsx:160 msgid "Barcode Actions" msgstr "Barcode-Aktionen" -#: src/components/items/ActionDropdown.tsx:140 -msgid "View Barcode" -msgstr "Barcode anzeigen" +#: src/components/items/ActionDropdown.tsx:162 +#~ msgid "Link custom barcode" +#~ msgstr "Link custom barcode" -#: src/components/items/ActionDropdown.tsx:147 +#: src/components/items/ActionDropdown.tsx:167 msgid "View" msgstr "Anzeigen" -#: src/components/items/ActionDropdown.tsx:148 +#: src/components/items/ActionDropdown.tsx:169 msgid "View barcode" msgstr "Barcode anzeigen" -#: src/components/items/ActionDropdown.tsx:161 +#: src/components/items/ActionDropdown.tsx:175 msgid "Link Barcode" msgstr "Link-Barcode" -#: src/components/items/ActionDropdown.tsx:162 -msgid "Link custom barcode" -msgstr "Benutzerdefinierter Barcode verknüpfen" +#: src/components/items/ActionDropdown.tsx:177 +msgid "Link a custom barcode to this item" +msgstr "Einen benutzerdefinierten Barcode mit diesem Artikel verknüpfen" -#: src/components/items/ActionDropdown.tsx:173 -#: src/forms/PurchaseOrderForms.tsx:426 +#: src/components/items/ActionDropdown.tsx:183 +#: src/components/items/QRCode.tsx:193 +#: src/forms/PurchaseOrderForms.tsx:464 msgid "Unlink Barcode" msgstr "Verknüpfung des Barcodes aufheben" -#: src/components/items/ActionDropdown.tsx:174 +#: src/components/items/ActionDropdown.tsx:185 msgid "Unlink custom barcode" msgstr "Verknüpfung von benutzerdefiniertem Barcode aufheben" -#: src/components/items/ActionDropdown.tsx:183 -#: src/tables/RowActions.tsx:33 +#: src/components/items/ActionDropdown.tsx:236 +#: src/tables/RowActions.tsx:39 msgid "Edit" msgstr "Bearbeiten" -#: src/components/items/ActionDropdown.tsx:184 +#: src/components/items/ActionDropdown.tsx:237 msgid "Edit item" msgstr "" -#: src/components/items/ActionDropdown.tsx:196 +#: src/components/items/ActionDropdown.tsx:249 msgid "Delete item" msgstr "Element löschen" -#: src/components/items/ActionDropdown.tsx:204 -#: src/components/items/ActionDropdown.tsx:205 +#: src/components/items/ActionDropdown.tsx:257 +#: src/components/items/ActionDropdown.tsx:258 msgid "Hold" msgstr "Angehalten" -#: src/components/items/ActionDropdown.tsx:227 -#: src/tables/RowActions.tsx:23 +#: src/components/items/ActionDropdown.tsx:280 +#: src/tables/RowActions.tsx:29 msgid "Duplicate" msgstr "Duplizieren" -#: src/components/items/ActionDropdown.tsx:228 +#: src/components/items/ActionDropdown.tsx:281 msgid "Duplicate item" msgstr "Artikel duplizieren" +#: src/components/items/BarcodeInput.tsx:23 +msgid "Scan barcode data here using barcode scanner" +msgstr "" + +#: src/components/items/BarcodeInput.tsx:24 +#: src/tables/settings/BarcodeScanHistoryTable.tsx:65 +msgid "Barcode" +msgstr "Barcode" + +#: src/components/items/BarcodeInput.tsx:25 +msgid "Scan" +msgstr "" + #: src/components/items/DocTooltip.tsx:92 +#: src/components/items/GettingStartedCarousel.tsx:20 msgid "Read More" msgstr "Mehr lesen" -#: src/components/items/ErrorItem.tsx:5 -#: src/tables/InvenTreeTable.tsx:487 +#: src/components/items/ErrorItem.tsx:8 +#: src/tables/InvenTreeTable.tsx:473 msgid "Unknown error" msgstr "Unbekannter Fehler" -#: src/components/items/ErrorItem.tsx:10 -msgid "An error occurred:" -msgstr "Ein Fehler ist aufgetreten:" +#: src/components/items/ErrorItem.tsx:13 +#~ msgid "An error occurred:" +#~ msgstr "An error occurred:" #: src/components/items/GettingStartedCarousel.tsx:27 -msgid "Read more" -msgstr "Mehr lesen" +#~ msgid "Read more" +#~ msgstr "Read more" #: src/components/items/InfoItem.tsx:27 msgid "None" @@ -965,30 +1304,51 @@ msgstr "PLH" msgid "This panel is a placeholder." msgstr "Dieses Panel ist ein Platzhalter." -#: src/components/items/QRCode.tsx:87 +#: src/components/items/QRCode.tsx:89 msgid "Low (7%)" msgstr "Niedrig (7%)" -#: src/components/items/QRCode.tsx:88 +#: src/components/items/QRCode.tsx:90 msgid "Medium (15%)" msgstr "Mittel (15%)" -#: src/components/items/QRCode.tsx:89 +#: src/components/items/QRCode.tsx:91 msgid "Quartile (25%)" msgstr "Viertel (25%)" -#: src/components/items/QRCode.tsx:90 +#: src/components/items/QRCode.tsx:92 msgid "High (30%)" msgstr "Hoch (30%)" -#: src/components/items/QRCode.tsx:107 +#: src/components/items/QRCode.tsx:100 +msgid "Custom barcode" +msgstr "" + +#: src/components/items/QRCode.tsx:101 +msgid "A custom barcode is registered for this item. The shown code is not that custom barcode." +msgstr "" + +#: src/components/items/QRCode.tsx:118 msgid "Barcode Data:" msgstr "Barcode-Daten:" -#: src/components/items/QRCode.tsx:118 +#: src/components/items/QRCode.tsx:129 msgid "Select Error Correction Level" msgstr "Fehlerkorrektur-Level auswählen" +#: src/components/items/QRCode.tsx:171 +#: src/pages/part/PartDetail.tsx:239 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:187 +#: src/pages/sales/ReturnOrderDetail.tsx:157 +#: src/pages/sales/SalesOrderDetail.tsx:169 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:166 +msgid "Link" +msgstr "Link" + +#: src/components/items/QRCode.tsx:190 +msgid "This will remove the link to the associated barcode" +msgstr "Die Verknüpfung zum zugehörigen Barcode wird entfernt" + #: src/components/modals/AboutInvenTreeModal.tsx:99 msgid "Version Information" msgstr "Versionsinformationen" @@ -1062,11 +1422,11 @@ msgstr "Mobile App" msgid "Submit Bug Report" msgstr "Fehlerbericht senden" -#: src/components/modals/AboutInvenTreeModal.tsx:183 +#: src/components/modals/AboutInvenTreeModal.tsx:181 msgid "Copy version information" msgstr "Versionsinformationen kopieren" -#: src/components/modals/AboutInvenTreeModal.tsx:192 +#: src/components/modals/AboutInvenTreeModal.tsx:189 #: src/components/modals/ServerInfoModal.tsx:147 msgid "Dismiss" msgstr "Verwerfen" @@ -1091,61 +1451,20 @@ msgstr "Fehler beim Abrufen der Lizenzinformationen" msgid "{key} Packages" msgstr "{key} Pakete" -#: src/components/modals/QrCodeModal.tsx:72 +#: src/components/modals/QrCodeModal.tsx:24 msgid "Unknown response" msgstr "Unbekannte Antwort" -#: src/components/modals/QrCodeModal.tsx:102 -#: src/pages/Index/Scan.tsx:636 -msgid "Error while getting camera" -msgstr "Fehler beim Laden der Kamera" - -#: src/components/modals/QrCodeModal.tsx:125 -#: src/pages/Index/Scan.tsx:659 -msgid "Error while scanning" -msgstr "Fehler beim Scannen" - -#: src/components/modals/QrCodeModal.tsx:139 -#: src/pages/Index/Scan.tsx:673 -msgid "Error while stopping" -msgstr "Fehler beim Anhalten" - -#: src/components/modals/QrCodeModal.tsx:154 -#: src/defaults/menuItems.tsx:21 -#: src/pages/Index/Scan.tsx:746 -msgid "Scanning" -msgstr "Scannen" - -#: src/components/modals/QrCodeModal.tsx:154 -#: src/pages/Index/Scan.tsx:746 -msgid "Not scanning" -msgstr "Es wird nicht gescannt" - -#: src/components/modals/QrCodeModal.tsx:159 -#: src/pages/Index/Scan.tsx:752 -msgid "Select Camera" -msgstr "Kamera auswählen" - -#: src/components/modals/QrCodeModal.tsx:169 -#: src/pages/Index/Scan.tsx:737 -msgid "Start scanning" -msgstr "Scan starten" - -#: src/components/modals/QrCodeModal.tsx:176 -#: src/pages/Index/Scan.tsx:729 -msgid "Stop scanning" -msgstr "Scan stoppen" - -#: src/components/modals/QrCodeModal.tsx:181 +#: src/components/modals/QrCodeModal.tsx:39 msgid "No scans yet!" msgstr "Noch keine Scans!" -#: src/components/modals/QrCodeModal.tsx:201 +#: src/components/modals/QrCodeModal.tsx:57 msgid "Close modal" msgstr "Dialog schließen" #: src/components/modals/ServerInfoModal.tsx:26 -#: src/pages/Index/Settings/SystemSettings.tsx:38 +#: src/pages/Index/Settings/SystemSettings.tsx:37 msgid "Server" msgstr "Server" @@ -1206,6 +1525,7 @@ msgid "Background Worker" msgstr "Hintergrund-Prozess" #: src/components/modals/ServerInfoModal.tsx:101 +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:29 msgid "Background worker not running" msgstr "Hintergrund-Prozess läuft nicht" @@ -1218,8 +1538,8 @@ msgid "Email settings not configured" msgstr "E-Mail-Einstellungen nicht konfiguriert" #: src/components/modals/ServerInfoModal.tsx:121 -#: src/tables/plugin/PluginListTable.tsx:144 -#: src/tables/plugin/PluginListTable.tsx:294 +#: src/components/plugins/PluginDrawer.tsx:89 +#: src/tables/plugin/PluginListTable.tsx:116 msgid "Version" msgstr "Version" @@ -1227,7 +1547,7 @@ msgstr "Version" msgid "Server Version" msgstr "Serverversion" -#: src/components/nav/Layout.tsx:73 +#: src/components/nav/Layout.tsx:80 msgid "Nothing found..." msgstr "Nichts gefunden..." @@ -1237,18 +1557,26 @@ msgstr "Nichts gefunden..." #~ msgstr "Profile" #: src/components/nav/MainMenu.tsx:52 +#: src/components/nav/NavigationDrawer.tsx:178 #: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:28 msgid "Settings" msgstr "Einstellungen" +#: src/components/nav/MainMenu.tsx:59 +#: src/pages/Index/Settings/UserSettings.tsx:152 +msgid "Account Settings" +msgstr "Kontoeinstellungen" + #: src/components/nav/MainMenu.tsx:59 #: src/defaults/menuItems.tsx:15 -msgid "Account settings" -msgstr "Benutzereinstellungen" +#~ msgid "Account settings" +#~ msgstr "Account settings" #: src/components/nav/MainMenu.tsx:67 -#: src/defaults/menuItems.tsx:58 -#: src/pages/Index/Settings/SystemSettings.tsx:315 +#: src/components/nav/NavigationDrawer.tsx:141 +#: src/components/nav/SettingsHeader.tsx:49 +#: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:37 +#: src/pages/Index/Settings/SystemSettings.tsx:310 msgid "System Settings" msgstr "Einstellungen" @@ -1260,14 +1588,11 @@ msgstr "Einstellungen" #~ msgid "Switch to pseudo language" #~ msgstr "Switch to pseudo language" -#: src/components/nav/MainMenu.tsx:77 -msgid "Change Color Mode" -msgstr "" - #: src/components/nav/MainMenu.tsx:86 -#: src/defaults/actions.tsx:71 -#: src/defaults/menuItems.tsx:63 -#: src/pages/Index/Settings/AdminCenter/Index.tsx:221 +#: src/components/nav/NavigationDrawer.tsx:148 +#: src/components/nav/SettingsHeader.tsx:50 +#: src/defaults/actions.tsx:63 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:251 msgid "Admin Center" msgstr "Adminbereich" @@ -1275,458 +1600,732 @@ msgstr "Adminbereich" msgid "Logout" msgstr "Abmelden" -#: src/components/nav/NavHoverMenu.tsx:65 -#: src/defaults/actions.tsx:60 -msgid "Open Navigation" -msgstr "Navigation öffnen" - #: src/components/nav/NavHoverMenu.tsx:84 -msgid "View all" -msgstr "Alle anzeigen" +#~ msgid "View all" +#~ msgstr "View all" #: src/components/nav/NavHoverMenu.tsx:100 #: src/components/nav/NavHoverMenu.tsx:110 -msgid "Get started" -msgstr "Loslegen" +#~ msgid "Get started" +#~ msgstr "Get started" #: src/components/nav/NavHoverMenu.tsx:103 -msgid "Overview over high-level objects, functions and possible usecases." -msgstr "Übersicht über die wichtigsten Objekte, Funktionen und mögliche Anwendungsfälle." - -#: src/components/nav/NavigationDrawer.tsx:57 -msgid "Navigation" -msgstr "Navigation" +#~ msgid "Overview over high-level objects, functions and possible usecases." +#~ msgstr "Overview over high-level objects, functions and possible usecases." #: src/components/nav/NavigationDrawer.tsx:60 -msgid "Pages" -msgstr "Seiten" +#~ msgid "Pages" +#~ msgstr "Pages" -#: src/components/nav/NavigationDrawer.tsx:65 -#: src/pages/Index/Settings/AdminCenter/Index.tsx:176 -#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:41 -msgid "Plugins" -msgstr "Plugins" +#: src/components/nav/NavigationDrawer.tsx:77 +#: src/components/render/ModelType.tsx:31 +#: src/defaults/links.tsx:10 +#: src/pages/Index/Settings/SystemSettings.tsx:172 +#: src/pages/part/CategoryDetail.tsx:125 +#: src/pages/part/CategoryDetail.tsx:249 +#: src/pages/part/CategoryDetail.tsx:279 +#: src/pages/part/PartDetail.tsx:856 +msgid "Parts" +msgstr "Teile" -#: src/components/nav/NavigationDrawer.tsx:75 -#: src/defaults/actions.tsx:32 -msgid "Documentation" -msgstr "Dokumentation" +#: src/components/nav/NavigationDrawer.tsx:84 +#: src/components/render/Part.tsx:30 +#: src/defaults/links.tsx:11 +#: src/pages/Index/Settings/SystemSettings.tsx:205 +#: src/pages/part/PartDetail.tsx:593 +#: src/pages/stock/LocationDetail.tsx:352 +#: src/pages/stock/StockDetail.tsx:528 +#: src/tables/stock/StockItemTable.tsx:69 +msgid "Stock" +msgstr "Lager" -#: src/components/nav/NavigationDrawer.tsx:78 -msgid "About" -msgstr "Über uns" +#: src/components/nav/NavigationDrawer.tsx:91 +#: src/defaults/links.tsx:13 +#: src/pages/build/BuildDetail.tsx:530 +#: src/pages/build/BuildIndex.tsx:36 +msgid "Manufacturing" +msgstr "" -#: src/components/nav/NotificationDrawer.tsx:92 -#: src/pages/Index/Settings/SystemSettings.tsx:109 -#: src/pages/Index/Settings/UserSettings.tsx:126 +#: src/components/nav/NavigationDrawer.tsx:98 +#: src/defaults/links.tsx:18 +#: src/pages/company/ManufacturerDetail.tsx:9 +#: src/pages/company/ManufacturerPartDetail.tsx:258 +#: src/pages/company/SupplierDetail.tsx:9 +#: src/pages/company/SupplierPartDetail.tsx:336 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:480 +#: src/pages/purchasing/PurchasingIndex.tsx:60 +msgid "Purchasing" +msgstr "Einkauf" + +#: src/components/nav/NavigationDrawer.tsx:105 +#: src/defaults/links.tsx:22 +#: src/pages/company/CustomerDetail.tsx:9 +#: src/pages/sales/ReturnOrderDetail.tsx:469 +#: src/pages/sales/SalesIndex.tsx:53 +#: src/pages/sales/SalesOrderDetail.tsx:520 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:343 +msgid "Sales" +msgstr "Verkäufe" + +#: src/components/nav/NavigationDrawer.tsx:129 +#: src/components/nav/NotificationDrawer.tsx:178 +#: src/pages/Index/Settings/SystemSettings.tsx:110 +#: src/pages/Index/Settings/UserSettings.tsx:127 #: src/pages/Notifications.tsx:65 #: src/pages/Notifications.tsx:151 msgid "Notifications" msgstr "Benachrichtigungen" -#: src/components/nav/NotificationDrawer.tsx:94 +#: src/components/nav/NavigationDrawer.tsx:135 +#: src/components/nav/SettingsHeader.tsx:48 +msgid "User Settings" +msgstr "" + +#: src/components/nav/NavigationDrawer.tsx:173 +msgid "Navigation" +msgstr "Navigation" + +#: src/components/nav/NavigationDrawer.tsx:183 +#: src/forms/PurchaseOrderForms.tsx:689 +#: src/forms/StockForms.tsx:614 +#: src/forms/StockForms.tsx:651 +#: src/forms/StockForms.tsx:677 +#: src/forms/StockForms.tsx:705 +#: src/forms/StockForms.tsx:736 +#: src/forms/StockForms.tsx:771 +#: src/forms/StockForms.tsx:813 +#: src/forms/StockForms.tsx:851 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:413 +#: src/tables/RowActions.tsx:129 +#: src/tables/build/BuildLineTable.tsx:101 +msgid "Actions" +msgstr "Aktionen" + +#: src/components/nav/NavigationDrawer.tsx:191 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:205 +#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:44 +msgid "Plugins" +msgstr "Plugins" + +#: src/components/nav/NavigationDrawer.tsx:204 +#: src/defaults/actions.tsx:24 +msgid "Documentation" +msgstr "Dokumentation" + +#: src/components/nav/NavigationDrawer.tsx:210 +msgid "About" +msgstr "Über uns" + +#: src/components/nav/NotificationDrawer.tsx:180 msgid "Mark all as read" -msgstr "" +msgstr "Alle als gelesen markieren" -#: src/components/nav/NotificationDrawer.tsx:104 +#: src/components/nav/NotificationDrawer.tsx:190 msgid "View all notifications" -msgstr "" +msgstr "Alle Benachrichtigungen anzeigen" -#: src/components/nav/NotificationDrawer.tsx:123 +#: src/components/nav/NotificationDrawer.tsx:210 msgid "You have no unread notifications." msgstr "Du hast keine ungelesenen Benachrichtigungen. " -#: src/components/nav/NotificationDrawer.tsx:139 -#: src/components/nav/NotificationDrawer.tsx:145 -#: src/tables/notifications/NotificationsTable.tsx:36 -msgid "Notification" -msgstr "Benachrichtigung" - -#: src/components/nav/NotificationDrawer.tsx:168 -#: src/pages/Notifications.tsx:73 -msgid "Mark as read" -msgstr "Als gelesen markieren" - -#: src/components/nav/SearchDrawer.tsx:78 +#: src/components/nav/SearchDrawer.tsx:85 msgid "results" msgstr "Ergebnisse" -#: src/components/nav/SearchDrawer.tsx:370 +#: src/components/nav/SearchDrawer.tsx:380 msgid "Enter search text" msgstr "Suchtext eingeben" -#: src/components/nav/SearchDrawer.tsx:397 +#: src/components/nav/SearchDrawer.tsx:391 +msgid "Refresh search results" +msgstr "" + +#: src/components/nav/SearchDrawer.tsx:402 +#: src/components/nav/SearchDrawer.tsx:409 msgid "Search Options" msgstr "Suchoptionen" -#: src/components/nav/SearchDrawer.tsx:400 +#: src/components/nav/SearchDrawer.tsx:412 msgid "Regex search" msgstr "Regex Suche" -#: src/components/nav/SearchDrawer.tsx:410 +#: src/components/nav/SearchDrawer.tsx:421 msgid "Whole word search" msgstr "Volltextsuche" -#: src/components/nav/SearchDrawer.tsx:451 +#: src/components/nav/SearchDrawer.tsx:461 msgid "An error occurred during search query" msgstr "Bei der Suchanfrage ist ein Fehler aufgetreten" #: src/components/nav/SearchDrawer.tsx:462 -msgid "No results" +#~ msgid "No results" +#~ msgstr "No results" + +#: src/components/nav/SearchDrawer.tsx:472 +#: src/tables/part/PartTestTemplateTable.tsx:76 +msgid "No Results" msgstr "Keine Ergebnisse" -#: src/components/nav/SearchDrawer.tsx:465 +#: src/components/nav/SearchDrawer.tsx:475 msgid "No results available for search query" msgstr "Keine Ergebnisse für Suchanfrage verfügbar" -#: src/components/render/Instance.tsx:217 +#: src/components/panels/AttachmentPanel.tsx:18 +msgid "Attachments" +msgstr "Anhänge" + +#: src/components/panels/NotesPanel.tsx:24 +#: src/tables/build/BuildOrderTestTable.tsx:143 +#: src/tables/stock/StockTrackingTable.tsx:204 +msgid "Notes" +msgstr "Notizen" + +#: src/components/plugins/PluginDrawer.tsx:47 +msgid "Plugin Inactive" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:50 +msgid "Plugin is not active" +msgstr "Plugin ist nicht aktiv" + +#: src/components/plugins/PluginDrawer.tsx:60 +msgid "Plugin Information" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:74 +#: src/pages/build/BuildDetail.tsx:116 +#: src/pages/company/CompanyDetail.tsx:89 +#: src/pages/company/ManufacturerPartDetail.tsx:89 +#: src/pages/company/ManufacturerPartDetail.tsx:116 +#: src/pages/company/SupplierPartDetail.tsx:140 +#: src/pages/part/CategoryDetail.tsx:101 +#: src/pages/part/PartDetail.tsx:178 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:136 +#: src/pages/sales/ReturnOrderDetail.tsx:107 +#: src/pages/sales/SalesOrderDetail.tsx:116 +#: src/pages/stock/LocationDetail.tsx:103 +#: src/tables/ColumnRenderers.tsx:92 +#: src/tables/bom/UsedInTable.tsx:44 +#: src/tables/build/BuildAllocatedStockTable.tsx:83 +#: src/tables/build/BuildLineTable.tsx:329 +#: src/tables/machine/MachineTypeTable.tsx:74 +#: src/tables/machine/MachineTypeTable.tsx:129 +#: src/tables/machine/MachineTypeTable.tsx:240 +#: src/tables/machine/MachineTypeTable.tsx:344 +#: src/tables/part/RelatedPartTable.tsx:66 +#: src/tables/plugin/PluginListTable.tsx:99 +#: src/tables/sales/SalesOrderAllocationTable.tsx:87 +#: src/tables/sales/SalesOrderLineItemTable.tsx:75 +#: src/tables/stock/LocationTypesTable.tsx:74 +msgid "Description" +msgstr "Beschreibung" + +#: src/components/plugins/PluginDrawer.tsx:79 +msgid "Author" +msgstr "Autor" + +#: src/components/plugins/PluginDrawer.tsx:84 +#: src/pages/part/PartSchedulingDetail.tsx:277 +#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:40 +#: src/pages/part/pricing/SaleHistoryPanel.tsx:38 +#: src/tables/ColumnRenderers.tsx:215 +#: src/tables/build/BuildOrderTestTable.tsx:151 +#: src/tables/settings/StocktakeReportTable.tsx:40 +msgid "Date" +msgstr "Datum" + +#: src/components/plugins/PluginDrawer.tsx:94 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:398 +#: src/pages/part/PartDetail.tsx:331 +#: src/tables/bom/UsedInTable.tsx:84 +#: src/tables/company/CompanyTable.tsx:62 +#: src/tables/company/CompanyTable.tsx:96 +#: src/tables/machine/MachineListTable.tsx:333 +#: src/tables/machine/MachineListTable.tsx:605 +#: src/tables/part/ParametricPartTable.tsx:223 +#: src/tables/part/PartTable.tsx:178 +#: src/tables/part/PartVariantTable.tsx:15 +#: src/tables/plugin/PluginListTable.tsx:94 +#: src/tables/plugin/PluginListTable.tsx:401 +#: src/tables/purchasing/SupplierPartTable.tsx:100 +#: src/tables/purchasing/SupplierPartTable.tsx:190 +#: src/tables/settings/UserTable.tsx:283 +#: src/tables/stock/StockItemTable.tsx:293 +msgid "Active" +msgstr "Aktiv" + +#: src/components/plugins/PluginDrawer.tsx:106 +msgid "Package Name" +msgstr "Paket Name" + +#: src/components/plugins/PluginDrawer.tsx:112 +msgid "Installation Path" +msgstr "Installationspfad" + +#: src/components/plugins/PluginDrawer.tsx:117 +#: src/tables/machine/MachineTypeTable.tsx:152 +#: src/tables/machine/MachineTypeTable.tsx:276 +#: src/tables/plugin/PluginListTable.tsx:406 +msgid "Builtin" +msgstr "Integriert" + +#: src/components/plugins/PluginDrawer.tsx:122 +msgid "Package" +msgstr "Paket" + +#: src/components/plugins/PluginDrawer.tsx:134 +#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:53 +msgid "Plugin Settings" +msgstr "Plugin Einstellungen" + +#: src/components/plugins/PluginDrawer.tsx:146 +#: src/components/render/ModelType.tsx:276 +msgid "Plugin Configuration" +msgstr "Plugin-Konfiguration" + +#: src/components/plugins/PluginPanel.tsx:87 +#~ msgid "Error occurred while rendering plugin content" +#~ msgstr "Error occurred while rendering plugin content" + +#: src/components/plugins/PluginPanel.tsx:91 +#~ msgid "Plugin did not provide panel rendering function" +#~ msgstr "Plugin did not provide panel rendering function" + +#: src/components/plugins/PluginPanel.tsx:103 +#~ msgid "No content provided for this plugin" +#~ msgstr "No content provided for this plugin" + +#: src/components/plugins/PluginPanel.tsx:116 +#: src/components/plugins/PluginSettingsPanel.tsx:76 +#~ msgid "Error Loading Plugin" +#~ msgstr "Error Loading Plugin" + +#: src/components/plugins/PluginSettingsPanel.tsx:51 +#~ msgid "Error occurred while rendering plugin settings" +#~ msgstr "Error occurred while rendering plugin settings" + +#: src/components/plugins/PluginSettingsPanel.tsx:55 +#~ msgid "Plugin did not provide settings rendering function" +#~ msgstr "Plugin did not provide settings rendering function" + +#: src/components/plugins/PluginUIFeature.tsx:100 +msgid "Error occurred while rendering the template editor." +msgstr "" + +#: src/components/plugins/PluginUIFeature.tsx:111 +msgid "Error Loading Plugin Editor" +msgstr "" + +#: src/components/plugins/PluginUIFeature.tsx:147 +msgid "Error occurred while rendering the template preview." +msgstr "" + +#: src/components/plugins/PluginUIFeature.tsx:158 +msgid "Error Loading Plugin Preview" +msgstr "" + +#: src/components/plugins/RemoteComponent.tsx:70 +msgid "Invalid source or function name" +msgstr "" + +#: src/components/plugins/RemoteComponent.tsx:91 +msgid "Error Loading Content" +msgstr "" + +#: src/components/plugins/RemoteComponent.tsx:95 +msgid "Error occurred while loading plugin content" +msgstr "" + +#: src/components/render/Instance.tsx:224 msgid "Unknown model: {model}" msgstr "Unbekanntes Modell: {model}" -#: src/components/render/ModelType.tsx:22 -#: src/forms/BuildForms.tsx:213 -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/forms/StockForms.tsx:499 -#: src/forms/StockForms.tsx:533 -#: src/forms/StockForms.tsx:562 -#: src/forms/StockForms.tsx:590 -#: src/forms/StockForms.tsx:621 -#: src/forms/StockForms.tsx:656 -#: src/forms/StockForms.tsx:698 -#: src/forms/StockForms.tsx:734 -#: src/pages/build/BuildDetail.tsx:95 -#: src/pages/part/PartDetail.tsx:1073 -#: src/tables/build/BuildAllocatedStockTable.tsx:82 +#: src/components/render/ModelType.tsx:30 +#: src/forms/BuildForms.tsx:269 +#: src/forms/BuildForms.tsx:337 +#: src/forms/BuildForms.tsx:385 +#: src/forms/BuildForms.tsx:515 +#: src/forms/PurchaseOrderForms.tsx:689 +#: src/forms/ReturnOrderForms.tsx:190 +#: src/forms/SalesOrderForms.tsx:248 +#: src/forms/StockForms.tsx:261 +#: src/forms/StockForms.tsx:614 +#: src/forms/StockForms.tsx:651 +#: src/forms/StockForms.tsx:677 +#: src/forms/StockForms.tsx:705 +#: src/forms/StockForms.tsx:736 +#: src/forms/StockForms.tsx:771 +#: src/forms/StockForms.tsx:813 +#: src/forms/StockForms.tsx:851 +#: src/pages/build/BuildDetail.tsx:90 +#: src/pages/part/PartDetail.tsx:1094 +#: src/tables/build/BuildAllocatedStockTable.tsx:95 +#: src/tables/build/BuildLineTable.tsx:72 #: src/tables/part/PartTable.tsx:28 -#: src/tables/part/RelatedPartTable.tsx:45 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:88 -#: src/tables/sales/SalesOrderAllocationTable.tsx:68 -#: src/tables/stock/StockTrackingTable.tsx:74 +#: src/tables/part/RelatedPartTable.tsx:47 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:130 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:100 +#: src/tables/sales/SalesOrderAllocationTable.tsx:99 +#: src/tables/stock/StockTrackingTable.tsx:78 msgid "Part" msgstr "Teil" -#: src/components/render/ModelType.tsx:23 -#: src/defaults/links.tsx:29 -#: src/defaults/menuItems.tsx:33 -#: src/pages/Index/Settings/SystemSettings.tsx:173 -#: src/pages/part/CategoryDetail.tsx:119 -#: src/pages/part/CategoryDetail.tsx:244 -#: src/pages/part/CategoryDetail.tsx:274 -#: src/pages/part/PartDetail.tsx:827 -msgid "Parts" -msgstr "Teile" - -#: src/components/render/ModelType.tsx:31 +#: src/components/render/ModelType.tsx:40 msgid "Part Parameter Template" msgstr "Teil Parametervorlage" -#: src/components/render/ModelType.tsx:32 +#: src/components/render/ModelType.tsx:41 msgid "Part Parameter Templates" msgstr "Teil Parametervorlagen" -#: src/components/render/ModelType.tsx:38 +#: src/components/render/ModelType.tsx:48 msgid "Part Test Template" msgstr "Testvorlage für Teil" -#: src/components/render/ModelType.tsx:39 +#: src/components/render/ModelType.tsx:49 msgid "Part Test Templates" msgstr "Testvorlagen für Teil" -#: src/components/render/ModelType.tsx:45 -#: src/pages/company/SupplierPartDetail.tsx:203 -#: src/pages/company/SupplierPartDetail.tsx:375 -#: src/pages/stock/StockDetail.tsx:173 -#: src/tables/build/BuildAllocatedStockTable.tsx:131 +#: src/components/render/ModelType.tsx:56 +#: src/pages/company/SupplierPartDetail.tsx:364 +#: src/pages/stock/StockDetail.tsx:194 +#: src/tables/build/BuildAllocatedStockTable.tsx:152 #: src/tables/part/PartPurchaseOrdersTable.tsx:49 -#: src/tables/purchasing/SupplierPartTable.tsx:68 +#: src/tables/purchasing/SupplierPartTable.tsx:70 +#: src/tables/stock/StockItemTable.tsx:229 msgid "Supplier Part" msgstr "Zuliefererteil" -#: src/components/render/ModelType.tsx:46 +#: src/components/render/ModelType.tsx:57 msgid "Supplier Parts" msgstr "Zuliefererteile" -#: src/components/render/ModelType.tsx:54 -#: src/pages/company/ManufacturerPartDetail.tsx:132 +#: src/components/render/ModelType.tsx:66 #: src/tables/part/PartPurchaseOrdersTable.tsx:55 +#: src/tables/stock/StockItemTable.tsx:234 msgid "Manufacturer Part" msgstr "Herstellerteil" -#: src/components/render/ModelType.tsx:55 +#: src/components/render/ModelType.tsx:67 msgid "Manufacturer Parts" msgstr "Herstellerteile" -#: src/components/render/ModelType.tsx:63 -#: src/pages/part/CategoryDetail.tsx:305 +#: src/components/render/ModelType.tsx:76 +#: src/pages/part/CategoryDetail.tsx:310 msgid "Part Category" msgstr "Teilkategorie" -#: src/components/render/ModelType.tsx:64 -#: src/pages/part/CategoryDetail.tsx:258 -#: src/pages/part/CategoryDetail.tsx:296 -#: src/pages/part/PartDetail.tsx:1063 +#: src/components/render/ModelType.tsx:77 +#: src/pages/part/CategoryDetail.tsx:263 +#: src/pages/part/CategoryDetail.tsx:301 +#: src/pages/part/PartDetail.tsx:1084 msgid "Part Categories" msgstr "Teil-Kategorien" -#: src/components/render/ModelType.tsx:72 -#: src/pages/stock/StockDetail.tsx:624 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:94 -#: src/tables/stock/StockTrackingTable.tsx:45 +#: src/components/render/ModelType.tsx:86 +#: src/forms/BuildForms.tsx:337 +#: src/forms/BuildForms.tsx:385 +#: src/forms/BuildForms.tsx:515 +#: src/forms/SalesOrderForms.tsx:248 +#: src/pages/stock/StockDetail.tsx:839 +#: src/tables/stock/StockTrackingTable.tsx:49 msgid "Stock Item" msgstr "Lagerartikel" -#: src/components/render/ModelType.tsx:73 +#: src/components/render/ModelType.tsx:87 #: src/pages/company/CompanyDetail.tsx:203 -#: src/pages/stock/LocationDetail.tsx:128 -#: src/pages/stock/LocationDetail.tsx:181 -#: src/pages/stock/LocationDetail.tsx:395 +#: src/pages/part/PartStocktakeDetail.tsx:113 +#: src/pages/stock/LocationDetail.tsx:122 +#: src/pages/stock/LocationDetail.tsx:175 +#: src/pages/stock/LocationDetail.tsx:380 msgid "Stock Items" msgstr "Lagerartikel" -#: src/components/render/ModelType.tsx:81 +#: src/components/render/ModelType.tsx:96 msgid "Stock Location" msgstr "Lagerort" -#: src/components/render/ModelType.tsx:82 -#: src/pages/stock/LocationDetail.tsx:195 -#: src/pages/stock/LocationDetail.tsx:387 -#: src/pages/stock/StockDetail.tsx:616 +#: src/components/render/ModelType.tsx:97 +#: src/pages/stock/LocationDetail.tsx:189 +#: src/pages/stock/LocationDetail.tsx:372 +#: src/pages/stock/StockDetail.tsx:831 msgid "Stock Locations" msgstr "Lagerorte" -#: src/components/render/ModelType.tsx:90 +#: src/components/render/ModelType.tsx:106 msgid "Stock Location Type" msgstr "Lagerort Typ" -#: src/components/render/ModelType.tsx:91 +#: src/components/render/ModelType.tsx:107 msgid "Stock Location Types" msgstr "Lagerort Typen" -#: src/components/render/ModelType.tsx:95 +#: src/components/render/ModelType.tsx:112 +#: src/pages/part/PartDetail.tsx:712 msgid "Stock History" msgstr "Lagerhistorie" -#: src/components/render/ModelType.tsx:96 +#: src/components/render/ModelType.tsx:113 msgid "Stock Histories" msgstr "Bestandshistorie" -#: src/components/render/ModelType.tsx:100 -#: src/defaults/links.tsx:31 -#: src/defaults/menuItems.tsx:43 +#: src/components/render/ModelType.tsx:118 msgid "Build" msgstr "Bauauftrag" -#: src/components/render/ModelType.tsx:101 +#: src/components/render/ModelType.tsx:119 msgid "Builds" msgstr "Builds" -#: src/components/render/ModelType.tsx:109 +#: src/components/render/ModelType.tsx:128 msgid "Build Line" msgstr "Bauauftragsposition" -#: src/components/render/ModelType.tsx:110 +#: src/components/render/ModelType.tsx:129 msgid "Build Lines" msgstr "Bauauftragspositionen" -#: src/components/render/ModelType.tsx:117 +#: src/components/render/ModelType.tsx:137 msgid "Build Item" msgstr "" -#: src/components/render/ModelType.tsx:118 +#: src/components/render/ModelType.tsx:138 msgid "Build Items" msgstr "" -#: src/components/render/ModelType.tsx:122 -#: src/pages/company/CompanyDetail.tsx:339 +#: src/components/render/ModelType.tsx:143 +#: src/pages/company/CompanyDetail.tsx:321 msgid "Company" msgstr "Firma" -#: src/components/render/ModelType.tsx:123 +#: src/components/render/ModelType.tsx:144 msgid "Companies" msgstr "Unternehmen" -#: src/components/render/ModelType.tsx:131 +#: src/components/render/ModelType.tsx:153 +#: src/pages/build/BuildDetail.tsx:195 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:204 +#: src/pages/sales/ReturnOrderDetail.tsx:174 +#: src/pages/sales/SalesOrderDetail.tsx:186 #: src/tables/TableHoverCard.tsx:81 -#: src/tables/build/BuildOrderTable.tsx:140 -#: src/tables/purchasing/PurchaseOrderTable.tsx:64 -#: src/tables/sales/ReturnOrderTable.tsx:55 -#: src/tables/sales/SalesOrderTable.tsx:62 +#: src/tables/build/BuildOrderTable.tsx:135 +#: src/tables/purchasing/PurchaseOrderTable.tsx:69 +#: src/tables/sales/ReturnOrderTable.tsx:67 +#: src/tables/sales/SalesOrderTable.tsx:67 msgid "Project Code" msgstr "Projekt-Code" -#: src/components/render/ModelType.tsx:132 -#: src/pages/Index/Settings/AdminCenter/Index.tsx:128 +#: src/components/render/ModelType.tsx:154 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:145 msgid "Project Codes" msgstr "Projektnummern" -#: src/components/render/ModelType.tsx:138 +#: src/components/render/ModelType.tsx:161 #: src/pages/part/pricing/PurchaseHistoryPanel.tsx:32 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:480 -#: src/tables/part/PartPurchaseOrdersTable.tsx:32 -#: src/tables/stock/StockTrackingTable.tsx:107 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:477 +#: src/pages/stock/StockDetail.tsx:253 +#: src/tables/part/PartPurchaseOrdersTable.tsx:31 +#: src/tables/stock/StockItemTable.tsx:222 +#: src/tables/stock/StockTrackingTable.tsx:111 msgid "Purchase Order" msgstr "Einkaufsbestellung" -#: src/components/render/ModelType.tsx:139 -#: src/pages/Index/Settings/SystemSettings.tsx:255 +#: src/components/render/ModelType.tsx:162 +#: src/pages/Index/Settings/SystemSettings.tsx:249 #: src/pages/company/CompanyDetail.tsx:196 -#: src/pages/company/SupplierPartDetail.tsx:237 -#: src/pages/part/PartDetail.tsx:662 +#: src/pages/company/SupplierPartDetail.tsx:249 +#: src/pages/part/PartDetail.tsx:683 #: src/pages/purchasing/PurchasingIndex.tsx:25 msgid "Purchase Orders" -msgstr "Nachbestellungen" +msgstr "Bestellungen" -#: src/components/render/ModelType.tsx:147 +#: src/components/render/ModelType.tsx:171 msgid "Purchase Order Line" msgstr "Bestellposition" -#: src/components/render/ModelType.tsx:148 +#: src/components/render/ModelType.tsx:172 msgid "Purchase Order Lines" msgstr "Bestellpositionen" -#: src/components/render/ModelType.tsx:152 -#: src/pages/build/BuildDetail.tsx:153 -#: src/pages/sales/SalesOrderDetail.tsx:520 -#: src/pages/stock/StockDetail.tsx:221 -#: src/tables/sales/SalesOrderAllocationTable.tsx:50 -#: src/tables/stock/StockTrackingTable.tsx:118 +#: src/components/render/ModelType.tsx:177 +#: src/pages/build/BuildDetail.tsx:148 +#: src/pages/part/pricing/SaleHistoryPanel.tsx:24 +#: src/pages/sales/SalesOrderDetail.tsx:515 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:92 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:341 +#: src/pages/stock/StockDetail.tsx:262 +#: src/tables/sales/SalesOrderAllocationTable.tsx:80 +#: src/tables/stock/StockTrackingTable.tsx:122 msgid "Sales Order" msgstr "Verkaufsauftrag" -#: src/components/render/ModelType.tsx:153 -#: src/pages/Index/Settings/SystemSettings.tsx:270 +#: src/components/render/ModelType.tsx:178 +#: src/pages/Index/Settings/SystemSettings.tsx:264 #: src/pages/company/CompanyDetail.tsx:216 -#: src/pages/part/PartDetail.tsx:669 +#: src/pages/part/PartDetail.tsx:695 #: src/pages/sales/SalesIndex.tsx:26 msgid "Sales Orders" msgstr "Aufträge" -#: src/components/render/ModelType.tsx:161 +#: src/components/render/ModelType.tsx:187 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:340 msgid "Sales Order Shipment" msgstr "Versand der Bestellung" -#: src/components/render/ModelType.tsx:162 +#: src/components/render/ModelType.tsx:188 msgid "Sales Order Shipments" msgstr "Versand der Bestellungen" -#: src/components/render/ModelType.tsx:168 -#: src/pages/sales/ReturnOrderDetail.tsx:469 -#: src/tables/stock/StockTrackingTable.tsx:129 +#: src/components/render/ModelType.tsx:195 +#: src/pages/sales/ReturnOrderDetail.tsx:464 +#: src/tables/stock/StockTrackingTable.tsx:133 msgid "Return Order" msgstr "Rückgabe Auftrag" -#: src/components/render/ModelType.tsx:169 -#: src/pages/Index/Settings/SystemSettings.tsx:286 +#: src/components/render/ModelType.tsx:196 +#: src/pages/Index/Settings/SystemSettings.tsx:280 #: src/pages/company/CompanyDetail.tsx:223 +#: src/pages/part/PartDetail.tsx:702 #: src/pages/sales/SalesIndex.tsx:32 msgid "Return Orders" msgstr "Reklamationen" -#: src/components/render/ModelType.tsx:177 +#: src/components/render/ModelType.tsx:205 msgid "Return Order Line Item" msgstr "" -#: src/components/render/ModelType.tsx:178 +#: src/components/render/ModelType.tsx:206 msgid "Return Order Line Items" msgstr "" -#: src/components/render/ModelType.tsx:182 -#: src/tables/company/AddressTable.tsx:47 +#: src/components/render/ModelType.tsx:211 +#: src/tables/company/AddressTable.tsx:48 msgid "Address" msgstr "Adresse" -#: src/components/render/ModelType.tsx:183 -#: src/pages/company/CompanyDetail.tsx:253 +#: src/components/render/ModelType.tsx:212 +#: src/pages/company/CompanyDetail.tsx:255 msgid "Addresses" msgstr "Adressen" -#: src/components/render/ModelType.tsx:189 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:195 -#: src/pages/sales/ReturnOrderDetail.tsx:174 -#: src/pages/sales/SalesOrderDetail.tsx:183 +#: src/components/render/ModelType.tsx:219 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:196 +#: src/pages/sales/ReturnOrderDetail.tsx:166 +#: src/pages/sales/SalesOrderDetail.tsx:178 msgid "Contact" msgstr "Kontakt" -#: src/components/render/ModelType.tsx:190 -#: src/pages/company/CompanyDetail.tsx:247 +#: src/components/render/ModelType.tsx:220 +#: src/pages/company/CompanyDetail.tsx:249 msgid "Contacts" msgstr "Kontakte" -#: src/components/render/ModelType.tsx:196 +#: src/components/render/ModelType.tsx:227 msgid "Owner" msgstr "Eigentümer" -#: src/components/render/ModelType.tsx:197 +#: src/components/render/ModelType.tsx:228 msgid "Owners" msgstr "Eigentümer" -#: src/components/render/ModelType.tsx:203 -#: src/tables/settings/ImportSessionTable.tsx:121 -#: src/tables/stock/StockItemTestResultTable.tsx:198 -#: src/tables/stock/StockTrackingTable.tsx:195 +#: src/components/render/ModelType.tsx:234 +#~ msgid "Purchase Order Line Item" +#~ msgstr "Purchase Order Line Item" + +#: src/components/render/ModelType.tsx:235 +#: src/tables/settings/BarcodeScanHistoryTable.tsx:80 +#: src/tables/settings/BarcodeScanHistoryTable.tsx:211 +#: src/tables/settings/ImportSessionTable.tsx:120 +#: src/tables/settings/StocktakeReportTable.tsx:44 +#: src/tables/stock/StockItemTestResultTable.tsx:204 +#: src/tables/stock/StockTrackingTable.tsx:181 +#: src/tables/stock/StockTrackingTable.tsx:210 msgid "User" msgstr "Nutzer" -#: src/components/render/ModelType.tsx:204 -#: src/pages/Index/Settings/AdminCenter/Index.tsx:98 +#: src/components/render/ModelType.tsx:236 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:109 #: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:13 msgid "Users" msgstr "Benutzer" -#: src/components/render/ModelType.tsx:210 +#: src/components/render/ModelType.tsx:243 msgid "Group" msgstr "Gruppe" -#: src/components/render/ModelType.tsx:211 +#: src/components/render/ModelType.tsx:244 #: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:20 -#: src/tables/settings/UserTable.tsx:138 -#: src/tables/settings/UserTable.tsx:201 +#: src/tables/settings/UserTable.tsx:137 +#: src/tables/settings/UserTable.tsx:200 msgid "Groups" msgstr "Gruppen" -#: src/components/render/ModelType.tsx:218 +#: src/components/render/ModelType.tsx:252 msgid "Import Session" msgstr "Importsitzung" -#: src/components/render/ModelType.tsx:219 +#: src/components/render/ModelType.tsx:253 msgid "Import Sessions" msgstr "Importsitzungen" -#: src/components/render/ModelType.tsx:225 +#: src/components/render/ModelType.tsx:260 msgid "Label Template" -msgstr "" +msgstr "Label Vorlage" -#: src/components/render/ModelType.tsx:226 -#: src/pages/Index/Settings/AdminCenter/Index.tsx:158 +#: src/components/render/ModelType.tsx:261 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:187 msgid "Label Templates" -msgstr "" +msgstr "Label Vorlagen" -#: src/components/render/ModelType.tsx:232 +#: src/components/render/ModelType.tsx:264 +#~ msgid "Unknown Model" +#~ msgstr "Unknown Model" + +#: src/components/render/ModelType.tsx:268 msgid "Report Template" msgstr "" -#: src/components/render/ModelType.tsx:233 -#: src/pages/Index/Settings/AdminCenter/Index.tsx:164 +#: src/components/render/ModelType.tsx:269 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:193 msgid "Report Templates" msgstr "" -#: src/components/render/ModelType.tsx:239 -msgid "Plugin Configuration" -msgstr "Plugin-Konfiguration" - -#: src/components/render/ModelType.tsx:240 +#: src/components/render/ModelType.tsx:277 msgid "Plugin Configurations" msgstr "Plugin-Konfigurationen" +#: src/components/render/ModelType.tsx:284 +msgid "Content Type" +msgstr "" + +#: src/components/render/ModelType.tsx:285 +msgid "Content Types" +msgstr "" + +#: src/components/render/ModelType.tsx:291 +#: src/tables/machine/MachineListTable.tsx:351 +#: src/tables/machine/MachineTypeTable.tsx:282 +msgid "Errors" +msgstr "Fehler" + +#: src/components/render/ModelType.tsx:307 +#~ msgid "Purchase Order Line Items" +#~ msgstr "Purchase Order Line Items" + +#: src/components/render/ModelType.tsx:337 +#~ msgid "Unknown Models" +#~ msgstr "Unknown Models" + #: src/components/render/Order.tsx:121 +#: src/tables/sales/SalesOrderAllocationTable.tsx:136 msgid "Shipment" msgstr "Sendung" #: src/components/render/Part.tsx:25 #: src/components/render/Plugin.tsx:17 -#: src/pages/company/CompanyDetail.tsx:325 -#: src/pages/company/SupplierPartDetail.tsx:360 -#: src/pages/part/PartDetail.tsx:879 +#: src/pages/company/CompanyDetail.tsx:307 +#: src/pages/company/SupplierPartDetail.tsx:349 +#: src/pages/part/PartDetail.tsx:911 msgid "Inactive" msgstr "Inaktiv" @@ -1736,39 +2335,38 @@ msgstr "Inaktiv" msgid "No stock" msgstr "Kein Bestand" -#: src/components/render/Part.tsx:30 -#: src/defaults/links.tsx:30 -#: src/defaults/menuItems.tsx:38 -#: src/pages/Index/Settings/SystemSettings.tsx:206 -#: src/pages/part/PartDetail.tsx:543 -#: src/pages/stock/LocationDetail.tsx:367 -#: src/pages/stock/StockDetail.tsx:411 -#: src/tables/stock/StockItemTable.tsx:68 -msgid "Stock" -msgstr "Lager" - -#: src/components/render/Stock.tsx:60 -#: src/pages/stock/StockDetail.tsx:150 -#: src/pages/stock/StockDetail.tsx:581 -#: src/tables/build/BuildAllocatedStockTable.tsx:102 -#: src/tables/sales/SalesOrderAllocationTable.tsx:80 +#: src/components/render/Stock.tsx:61 +#: src/forms/ReturnOrderForms.tsx:190 +#: src/pages/stock/StockDetail.tsx:166 +#: src/pages/stock/StockDetail.tsx:771 +#: src/tables/build/BuildAllocatedStockTable.tsx:123 +#: src/tables/build/BuildOutputTable.tsx:81 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:114 +#: src/tables/sales/SalesOrderAllocationTable.tsx:106 msgid "Serial Number" msgstr "Seriennummer" -#: src/components/render/Stock.tsx:62 -#: src/forms/BuildForms.tsx:218 -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/pages/part/pricing/BomPricingPanel.tsx:109 +#: src/components/render/Stock.tsx:63 +#: src/forms/BuildForms.tsx:206 +#: src/forms/BuildForms.tsx:515 +#: src/forms/PurchaseOrderForms.tsx:689 +#: src/forms/SalesOrderForms.tsx:248 +#: src/pages/part/PartSchedulingDetail.tsx:80 +#: src/pages/part/PartStocktakeDetail.tsx:60 +#: src/pages/part/PartStocktakeDetail.tsx:234 +#: src/pages/part/PartStocktakeDetail.tsx:252 +#: src/pages/part/pricing/BomPricingPanel.tsx:148 #: src/pages/part/pricing/PriceBreakPanel.tsx:89 -#: src/pages/part/pricing/PriceBreakPanel.tsx:171 -#: src/pages/stock/StockDetail.tsx:145 -#: src/pages/stock/StockDetail.tsx:587 -#: src/tables/build/BuildOrderTestTable.tsx:197 -#: src/tables/part/PartPurchaseOrdersTable.tsx:92 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:143 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:171 +#: src/pages/part/pricing/PriceBreakPanel.tsx:172 +#: src/pages/stock/StockDetail.tsx:161 +#: src/pages/stock/StockDetail.tsx:777 +#: src/tables/build/BuildLineTable.tsx:79 +#: src/tables/build/BuildOrderTestTable.tsx:198 +#: src/tables/part/PartPurchaseOrdersTable.tsx:93 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:146 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:177 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:77 -#: src/tables/stock/StockTrackingTable.tsx:59 +#: src/tables/stock/StockTrackingTable.tsx:63 msgid "Quantity" msgstr "Anzahl" @@ -1842,10 +2440,6 @@ msgstr "Keine Einstellungen angegeben" #~ msgid "Required Part" #~ msgstr "Required Part" -#: src/components/tables/build/BuildLineTable.tsx:152 -#~ msgid "Required Quantity" -#~ msgstr "Required Quantity" - #: src/components/tables/build/BuildOrderTable.tsx:52 #~ msgid "Progress" #~ msgstr "Progress" @@ -2126,14 +2720,6 @@ msgstr "Keine Einstellungen angegeben" #~ msgid "user deleted" #~ msgstr "user deleted" -#: src/components/tables/settings/UserTable.tsx:168 -#~ msgid "First Name" -#~ msgstr "First Name" - -#: src/components/tables/settings/UserTable.tsx:173 -#~ msgid "Last Name" -#~ msgstr "Last Name" - #: src/components/tables/stock/StockItemTable.tsx:247 #~ msgid "Test Filter" #~ msgstr "Test Filter" @@ -2146,36 +2732,21 @@ msgstr "Keine Einstellungen angegeben" #~ msgid "Stock location updated" #~ msgstr "Stock location updated" -#: src/components/widgets/DisplayWidget.tsx:11 -#: src/pages/Index/Settings/AccountSettings/DisplaySettingsPanel.tsx:17 -msgid "Display Settings" -msgstr "Anzeigeneinstellungen" - -#: src/components/widgets/DisplayWidget.tsx:15 -#: src/pages/Index/Settings/AccountSettings/DisplaySettingsPanel.tsx:23 -msgid "Color Mode" -msgstr "Farbmodus" - -#: src/components/widgets/DisplayWidget.tsx:21 -#: src/pages/Index/Settings/AccountSettings/DisplaySettingsPanel.tsx:33 -msgid "Language" -msgstr "Sprache" - #: src/components/widgets/FeedbackWidget.tsx:19 -msgid "Something is new: Platform UI" -msgstr "Etwas ist neu: Plattform-UI" +#~ msgid "Something is new: Platform UI" +#~ msgstr "Something is new: Platform UI" #: src/components/widgets/FeedbackWidget.tsx:21 -msgid "We are building a new UI with a modern stack. What you currently see is not fixed and will be redesigned but demonstrates the UI/UX possibilities we will have going forward." -msgstr "Wir bauen eine neue Oberfläche mit einem modernen Stapel. Was Sie derzeit sehen, ist nicht repariert und wird neu gestaltet, aber es zeigt die UI/UX-Möglichkeiten auf, die wir weiter verfolgen werden." +#~ msgid "We are building a new UI with a modern stack. What you currently see is not fixed and will be redesigned but demonstrates the UI/UX possibilities we will have going forward." +#~ msgstr "We are building a new UI with a modern stack. What you currently see is not fixed and will be redesigned but demonstrates the UI/UX possibilities we will have going forward." #: src/components/widgets/FeedbackWidget.tsx:32 -msgid "Provide Feedback" -msgstr "Feedback geben" +#~ msgid "Provide Feedback" +#~ msgstr "Provide Feedback" #: src/components/widgets/GetStartedWidget.tsx:11 -msgid "Getting started" -msgstr "Erste Schritte" +#~ msgid "Getting started" +#~ msgstr "Getting started" #: src/components/widgets/MarkdownEditor.tsx:108 #~ msgid "Failed to upload image" @@ -2186,28 +2757,24 @@ msgstr "Erste Schritte" #~ msgstr "Notes saved" #: src/components/widgets/WidgetLayout.tsx:166 -msgid "Layout" -msgstr "Darstellung" +#~ msgid "Layout" +#~ msgstr "Layout" #: src/components/widgets/WidgetLayout.tsx:172 -msgid "Reset Layout" -msgstr "Layout zurücksetzen" +#~ msgid "Reset Layout" +#~ msgstr "Reset Layout" #: src/components/widgets/WidgetLayout.tsx:185 -msgid "Stop Edit" -msgstr "Bearbeiten beenden" - -#: src/components/widgets/WidgetLayout.tsx:185 -msgid "Edit Layout" -msgstr "Layout bearbeiten" +#~ msgid "Stop Edit" +#~ msgstr "Stop Edit" #: src/components/widgets/WidgetLayout.tsx:191 -msgid "Appearance" -msgstr "Aussehen" +#~ msgid "Appearance" +#~ msgstr "Appearance" #: src/components/widgets/WidgetLayout.tsx:203 -msgid "Show Boxes" -msgstr "Boxen anzeigen" +#~ msgid "Show Boxes" +#~ msgstr "Show Boxes" #: src/contexts/LanguageContext.tsx:20 msgid "Arabic" @@ -2286,201 +2853,175 @@ msgid "Korean" msgstr "Koreanisch" #: src/contexts/LanguageContext.tsx:39 +msgid "Lithuanian" +msgstr "" + +#: src/contexts/LanguageContext.tsx:40 msgid "Latvian" msgstr "Lettisch" -#: src/contexts/LanguageContext.tsx:40 +#: src/contexts/LanguageContext.tsx:41 msgid "Dutch" msgstr "Niederländisch" -#: src/contexts/LanguageContext.tsx:41 +#: src/contexts/LanguageContext.tsx:42 msgid "Norwegian" msgstr "Norweger" -#: src/contexts/LanguageContext.tsx:42 +#: src/contexts/LanguageContext.tsx:43 msgid "Polish" msgstr "Polnisch" -#: src/contexts/LanguageContext.tsx:43 +#: src/contexts/LanguageContext.tsx:44 msgid "Portuguese" msgstr "Portugiesisch" -#: src/contexts/LanguageContext.tsx:44 +#: src/contexts/LanguageContext.tsx:45 msgid "Portuguese (Brazilian)" msgstr "Portugiesisch (Brasilien)" -#: src/contexts/LanguageContext.tsx:45 +#: src/contexts/LanguageContext.tsx:46 msgid "Romanian" msgstr "Rumänisch" -#: src/contexts/LanguageContext.tsx:46 +#: src/contexts/LanguageContext.tsx:47 msgid "Russian" msgstr "Russisch" -#: src/contexts/LanguageContext.tsx:47 +#: src/contexts/LanguageContext.tsx:48 msgid "Slovak" msgstr "Slowakisch" -#: src/contexts/LanguageContext.tsx:48 +#: src/contexts/LanguageContext.tsx:49 msgid "Slovenian" msgstr "Slowenisch" -#: src/contexts/LanguageContext.tsx:49 +#: src/contexts/LanguageContext.tsx:50 msgid "Swedish" msgstr "Schwedisch" -#: src/contexts/LanguageContext.tsx:50 +#: src/contexts/LanguageContext.tsx:51 msgid "Thai" msgstr "Thailändisch" -#: src/contexts/LanguageContext.tsx:51 +#: src/contexts/LanguageContext.tsx:52 msgid "Turkish" msgstr "Türkisch" -#: src/contexts/LanguageContext.tsx:52 +#: src/contexts/LanguageContext.tsx:53 msgid "Ukrainian" msgstr "Ukrainisch" -#: src/contexts/LanguageContext.tsx:53 +#: src/contexts/LanguageContext.tsx:54 msgid "Vietnamese" msgstr "Vietnamesisch" -#: src/contexts/LanguageContext.tsx:54 +#: src/contexts/LanguageContext.tsx:55 msgid "Chinese (Simplified)" msgstr "Chinesisch (vereinfacht)" -#: src/contexts/LanguageContext.tsx:55 +#: src/contexts/LanguageContext.tsx:56 msgid "Chinese (Traditional)" msgstr "Chinesisch (Traditionell)" #: src/defaults/actions.tsx:18 -#: src/defaults/links.tsx:27 -#: src/defaults/menuItems.tsx:9 -msgid "Home" -msgstr "Startseite" - -#: src/defaults/actions.tsx:25 -#: src/defaults/links.tsx:28 -#: src/defaults/menuItems.tsx:28 -#: src/pages/Index/Dashboard.tsx:19 -#: src/pages/Index/Settings/UserSettings.tsx:46 -msgid "Dashboard" -msgstr "Dashboard" - -#: src/defaults/actions.tsx:26 msgid "Go to the InvenTree dashboard" msgstr "Gehe zum InvenTree Dashboard" -#: src/defaults/actions.tsx:33 +#: src/defaults/actions.tsx:18 +#: src/defaults/links.tsx:27 +#: src/defaults/menuItems.tsx:9 +#~ msgid "Home" +#~ msgstr "Home" + +#: src/defaults/actions.tsx:25 msgid "Visit the documentation to learn more about InvenTree" msgstr "Besuche die Dokumentation, um mehr über InvenTree zu erfahren" -#: src/defaults/actions.tsx:39 -#: src/defaults/links.tsx:98 -#: src/defaults/links.tsx:128 +#: src/defaults/actions.tsx:31 +#: src/defaults/links.tsx:92 +#: src/defaults/links.tsx:124 msgid "About InvenTree" msgstr "Über InvenTree" -#: src/defaults/actions.tsx:40 -#: src/defaults/links.tsx:129 +#: src/defaults/actions.tsx:32 msgid "About the InvenTree org" msgstr "Über die InvenTree Organisation" -#: src/defaults/actions.tsx:46 +#: src/defaults/actions.tsx:38 msgid "Server Information" msgstr "Server Informationen" -#: src/defaults/actions.tsx:47 -#: src/defaults/links.tsx:123 +#: src/defaults/actions.tsx:39 +#: src/defaults/links.tsx:118 msgid "About this Inventree instance" msgstr "Über diese InvenTree Instanz" -#: src/defaults/actions.tsx:53 -#: src/defaults/links.tsx:111 +#: src/defaults/actions.tsx:45 +#: src/defaults/links.tsx:105 +#: src/defaults/links.tsx:131 msgid "License Information" msgstr "Lizenz Informationen" -#: src/defaults/actions.tsx:54 -#: src/defaults/links.tsx:135 +#: src/defaults/actions.tsx:46 msgid "Licenses for dependencies of the service" msgstr "Lizenzen für Abhängigkeiten des Services" -#: src/defaults/actions.tsx:61 +#: src/defaults/actions.tsx:52 +msgid "Open Navigation" +msgstr "Navigation öffnen" + +#: src/defaults/actions.tsx:53 msgid "Open the main navigation menu" msgstr "Hauptnavigationsmenü öffnen" -#: src/defaults/actions.tsx:72 +#: src/defaults/actions.tsx:64 msgid "Go to the Admin Center" -msgstr "" - -#: src/defaults/dashboardItems.tsx:15 -msgid "Subscribed Parts" -msgstr "Abonnierte Teile" - -#: src/defaults/dashboardItems.tsx:22 -msgid "Subscribed Categories" -msgstr "Abonnierte Kategorien" +msgstr "Zum Administrationsbereich" #: src/defaults/dashboardItems.tsx:29 -msgid "Latest Parts" -msgstr "Neueste Teile" +#~ msgid "Latest Parts" +#~ msgstr "Latest Parts" #: src/defaults/dashboardItems.tsx:36 -msgid "BOM Waiting Validation" -msgstr "Stückliste Wartende Validierung" +#~ msgid "BOM Waiting Validation" +#~ msgstr "BOM Waiting Validation" #: src/defaults/dashboardItems.tsx:43 -msgid "Recently Updated" -msgstr "Kürzlich aktualisiert" - -#: src/defaults/dashboardItems.tsx:50 -#: src/tables/part/PartTable.tsx:238 -msgid "Low Stock" -msgstr "Geringer Bestand" +#~ msgid "Recently Updated" +#~ msgstr "Recently Updated" #: src/defaults/dashboardItems.tsx:57 -msgid "Depleted Stock" -msgstr "Verbrauchter Bestand" +#~ msgid "Depleted Stock" +#~ msgstr "Depleted Stock" #: src/defaults/dashboardItems.tsx:64 -msgid "Required for Build Orders" -msgstr "Für Bauaufträge benötigt" +#~ msgid "Required for Build Orders" +#~ msgstr "Required for Build Orders" #: src/defaults/dashboardItems.tsx:71 -msgid "Expired Stock" -msgstr "Abgelaufener Bestand" +#~ msgid "Expired Stock" +#~ msgstr "Expired Stock" #: src/defaults/dashboardItems.tsx:78 -msgid "Stale Stock" -msgstr "Bestand überfällig" +#~ msgid "Stale Stock" +#~ msgstr "Stale Stock" #: src/defaults/dashboardItems.tsx:85 -msgid "Build Orders In Progress" -msgstr "Bauaufträge in Arbeit" - -#: src/defaults/dashboardItems.tsx:92 -msgid "Overdue Build Orders" -msgstr "Überfällige Bauaufträge" +#~ msgid "Build Orders In Progress" +#~ msgstr "Build Orders In Progress" #: src/defaults/dashboardItems.tsx:99 -msgid "Outstanding Purchase Orders" -msgstr "Ausstehende Bestellungen" - -#: src/defaults/dashboardItems.tsx:106 -msgid "Overdue Purchase Orders" -msgstr "Überfällige Bestellungen" +#~ msgid "Outstanding Purchase Orders" +#~ msgstr "Outstanding Purchase Orders" #: src/defaults/dashboardItems.tsx:113 -msgid "Outstanding Sales Orders" -msgstr "Ausstehende Aufträge" - -#: src/defaults/dashboardItems.tsx:120 -msgid "Overdue Sales Orders" -msgstr "Überfällige Bestellungen" +#~ msgid "Outstanding Sales Orders" +#~ msgstr "Outstanding Sales Orders" #: src/defaults/dashboardItems.tsx:127 -msgid "Current News" -msgstr "Aktuelles" +#~ msgid "Current News" +#~ msgstr "Current News" #: src/defaults/defaultHostList.tsx:8 #~ msgid "InvenTree Demo" @@ -2490,97 +3031,80 @@ msgstr "Aktuelles" #~ msgid "Local Server" #~ msgstr "Local Server" -#: src/defaults/links.tsx:12 -#: src/pages/company/CompanyDetail.tsx:96 -msgid "Website" -msgstr "Webseite" - #: src/defaults/links.tsx:17 -msgid "GitHub" -msgstr "GitHub" +#~ msgid "GitHub" +#~ msgstr "GitHub" #: src/defaults/links.tsx:22 -msgid "Demo" -msgstr "Demo" - -#: src/defaults/links.tsx:33 -#: src/defaults/menuItems.tsx:48 -#: src/pages/company/ManufacturerDetail.tsx:9 -#: src/pages/company/ManufacturerPartDetail.tsx:263 -#: src/pages/company/SupplierDetail.tsx:9 -#: src/pages/company/SupplierPartDetail.tsx:347 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:483 -#: src/pages/purchasing/PurchasingIndex.tsx:60 -msgid "Purchasing" -msgstr "Einkauf" - -#: src/defaults/links.tsx:37 -#: src/defaults/menuItems.tsx:53 -#: src/pages/company/CustomerDetail.tsx:9 -#: src/pages/sales/ReturnOrderDetail.tsx:474 -#: src/pages/sales/SalesIndex.tsx:53 -#: src/pages/sales/SalesOrderDetail.tsx:525 -msgid "Sales" -msgstr "Verkäufe" +#~ msgid "Demo" +#~ msgstr "Demo" #: src/defaults/links.tsx:41 #: src/defaults/menuItems.tsx:71 #: src/pages/Index/Playground.tsx:217 -msgid "Playground" -msgstr "Spielplatz" +#~ msgid "Playground" +#~ msgstr "Playground" -#: src/defaults/links.tsx:55 -msgid "Getting Started" -msgstr "Erste Schritte" - -#: src/defaults/links.tsx:56 -msgid "Getting started with InvenTree" -msgstr "Erste Schritte mit InvenTree" - -#: src/defaults/links.tsx:62 +#: src/defaults/links.tsx:45 msgid "API" msgstr "API" -#: src/defaults/links.tsx:63 +#: src/defaults/links.tsx:48 msgid "InvenTree API documentation" msgstr "InvenTree API Dokumentation" -#: src/defaults/links.tsx:68 +#: src/defaults/links.tsx:52 msgid "Developer Manual" msgstr "Entwicklerhandbuch" -#: src/defaults/links.tsx:69 +#: src/defaults/links.tsx:55 msgid "InvenTree developer manual" msgstr "InvenTree Entwicklerhandbuch" -#: src/defaults/links.tsx:74 +#: src/defaults/links.tsx:59 msgid "FAQ" msgstr "FAQ" -#: src/defaults/links.tsx:75 +#: src/defaults/links.tsx:62 msgid "Frequently asked questions" msgstr "Häufig gestellte Fragen" +#: src/defaults/links.tsx:66 +msgid "GitHub Repository" +msgstr "" + +#: src/defaults/links.tsx:69 +msgid "InvenTree source code on GitHub" +msgstr "" + #: src/defaults/links.tsx:76 #~ msgid "Instance" #~ msgstr "Instance" +#: src/defaults/links.tsx:79 +#: src/defaults/links.tsx:117 +msgid "System Information" +msgstr "Systeminformationen" + #: src/defaults/links.tsx:83 #~ msgid "InvenTree" #~ msgstr "InvenTree" -#: src/defaults/links.tsx:85 -#: src/defaults/links.tsx:122 -msgid "System Information" -msgstr "Systeminformationen" - #: src/defaults/links.tsx:117 #~ msgid "Licenses for packages used by InvenTree" #~ msgstr "Licenses for packages used by InvenTree" +#: src/defaults/links.tsx:125 +msgid "About the InvenTree Project" +msgstr "" + +#: src/defaults/links.tsx:132 +msgid "Licenses for dependencies of the InvenTree software" +msgstr "" + #: src/defaults/links.tsx:134 -msgid "Licenses" -msgstr "Lizenzen" +#~ msgid "Licenses" +#~ msgstr "Licenses" #: src/defaults/menuItems.tsx:7 #~ msgid "Open sourcea" @@ -2607,8 +3131,8 @@ msgstr "Lizenzen" #~ msgstr "Profile page" #: src/defaults/menuItems.tsx:17 -msgid "User attributes and design settings." -msgstr "Benutzerattribute und Designeinstellungen." +#~ msgid "User attributes and design settings." +#~ msgstr "User attributes and design settings." #: src/defaults/menuItems.tsx:21 #~ msgid "Free for everyone" @@ -2619,8 +3143,8 @@ msgstr "Benutzerattribute und Designeinstellungen." #~ msgstr "The fluid of Smeargle’s tail secretions changes" #: src/defaults/menuItems.tsx:23 -msgid "View for interactive scanning and multiple actions." -msgstr "Ansicht für interaktives Scannen und mehrere Aktionen." +#~ msgid "View for interactive scanning and multiple actions." +#~ msgstr "View for interactive scanning and multiple actions." #: src/defaults/menuItems.tsx:24 #~ msgid "The fluid of Smeargle’s tail secretions changes in the intensity" @@ -2698,51 +3222,130 @@ msgstr "Ansicht für interaktives Scannen und mehrere Aktionen." #~ msgid "Are you sure you want to delete this attachment?" #~ msgstr "Are you sure you want to delete this attachment?" -#: src/forms/BuildForms.tsx:158 -msgid "Next serial number" -msgstr "Nächste Seriennummer" +#: src/forms/BuildForms.tsx:248 +#~ msgid "Remove output" +#~ msgstr "Remove output" -#: src/forms/BuildForms.tsx:162 -msgid "Latest serial number" -msgstr "Letzte Seriennummer" +#: src/forms/BuildForms.tsx:269 +#: src/tables/build/BuildAllocatedStockTable.tsx:147 +#: src/tables/build/BuildOrderTestTable.tsx:177 +#: src/tables/build/BuildOrderTestTable.tsx:201 +#: src/tables/build/BuildOutputTable.tsx:460 +msgid "Build Output" +msgstr "Bauprodukt" -#: src/forms/BuildForms.tsx:234 -msgid "Remove output" -msgstr "Ausgabe entfernen" +#: src/forms/BuildForms.tsx:269 +#: src/forms/BuildForms.tsx:337 +#: src/forms/BuildForms.tsx:385 +#: src/tables/build/BuildLineTable.tsx:89 +msgid "Batch" +msgstr "Losnummer" -#: src/forms/BuildForms.tsx:316 +#: src/forms/BuildForms.tsx:269 +#: src/forms/BuildForms.tsx:337 +#: src/forms/BuildForms.tsx:385 +#: src/forms/PurchaseOrderForms.tsx:603 +#: src/pages/build/BuildDetail.tsx:104 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:142 +#: src/pages/sales/ReturnOrderDetail.tsx:113 +#: src/pages/sales/SalesOrderDetail.tsx:122 +#: src/tables/build/BuildOrderTable.tsx:125 +#: src/tables/machine/MachineListTable.tsx:336 +#: src/tables/part/PartPurchaseOrdersTable.tsx:37 +#: src/tables/purchasing/PurchaseOrderTable.tsx:58 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:157 +#: src/tables/sales/ReturnOrderTable.tsx:56 +#: src/tables/sales/SalesOrderTable.tsx:56 +#: src/tables/settings/CustomStateTable.tsx:57 +#: src/tables/settings/ImportSessionTable.tsx:114 +#: src/tables/stock/StockItemTable.tsx:298 +#: src/tables/stock/StockTrackingTable.tsx:56 +msgid "Status" +msgstr "Status" + +#: src/forms/BuildForms.tsx:289 msgid "Complete Build Outputs" msgstr "Bauprodukt fertigstellen" -#: src/forms/BuildForms.tsx:320 +#: src/forms/BuildForms.tsx:292 msgid "Build outputs have been completed" msgstr "Bauprodukte wurden fertiggestellt" -#: src/forms/BuildForms.tsx:389 +#: src/forms/BuildForms.tsx:353 msgid "Scrap Build Outputs" msgstr "Bauprodukte verschrotten" -#: src/forms/BuildForms.tsx:393 +#: src/forms/BuildForms.tsx:356 msgid "Build outputs have been scrapped" msgstr "Bauprodukte wurden verschrottet" -#: src/forms/BuildForms.tsx:425 -#: src/forms/BuildForms.tsx:449 +#: src/forms/BuildForms.tsx:393 msgid "Cancel Build Outputs" msgstr "Bauprodukte abbrechen" -#: src/forms/BuildForms.tsx:426 -msgid "Selected build outputs will be deleted" -msgstr "Ausgewählte Bauprodukte werden gelöscht" - -#: src/forms/BuildForms.tsx:453 +#: src/forms/BuildForms.tsx:396 msgid "Build outputs have been cancelled" msgstr "Bauprodukte wurden abgebrochen" +#: src/forms/BuildForms.tsx:408 +#~ msgid "Selected build outputs will be deleted" +#~ msgstr "Selected build outputs will be deleted" + +#: src/forms/BuildForms.tsx:470 +#~ msgid "Remove line" +#~ msgstr "Remove line" + +#: src/forms/BuildForms.tsx:515 +#: src/forms/SalesOrderForms.tsx:248 +#: src/tables/build/BuildLineTable.tsx:174 +#: src/tables/sales/SalesOrderLineItemTable.tsx:276 +#: src/tables/stock/StockItemTable.tsx:309 +msgid "Allocated" +msgstr "Zugewiesen" + +#: src/forms/BuildForms.tsx:545 +#: src/forms/SalesOrderForms.tsx:239 +#: src/pages/build/BuildDetail.tsx:208 +msgid "Source Location" +msgstr "Quell Lagerort" + +#: src/forms/BuildForms.tsx:546 +#: src/forms/SalesOrderForms.tsx:240 +msgid "Select the source location for the stock allocation" +msgstr "" + +#: src/forms/BuildForms.tsx:566 +#: src/forms/SalesOrderForms.tsx:274 +#: src/tables/build/BuildLineTable.tsx:442 +#: src/tables/build/BuildLineTable.tsx:569 +#: src/tables/build/BuildLineTable.tsx:642 +#: src/tables/sales/SalesOrderLineItemTable.tsx:302 +#: src/tables/sales/SalesOrderLineItemTable.tsx:326 +msgid "Allocate Stock" +msgstr "Bestand zuweisen" + +#: src/forms/BuildForms.tsx:569 +#: src/forms/SalesOrderForms.tsx:279 +msgid "Stock items allocated" +msgstr "" + #: src/forms/CompanyForms.tsx:150 #~ msgid "Company updated" #~ msgstr "Company updated" +#: src/forms/PartForms.tsx:67 +#: src/forms/PartForms.tsx:154 +#: src/pages/part/CategoryDetail.tsx:117 +#: src/pages/part/PartDetail.tsx:384 +#: src/tables/part/PartCategoryTable.tsx:90 +#: src/tables/part/PartTable.tsx:294 +msgid "Subscribed" +msgstr "" + +#: src/forms/PartForms.tsx:68 +msgid "Subscribe to notifications for this part" +msgstr "" + #: src/forms/PartForms.tsx:106 #~ msgid "Create Part" #~ msgstr "Create Part" @@ -2751,191 +3354,190 @@ msgstr "Bauprodukte wurden abgebrochen" #~ msgid "Part created" #~ msgstr "Part created" -#: src/forms/PartForms.tsx:124 -msgid "Parent part category" -msgstr "Übergeordnete Teilkategorie" - #: src/forms/PartForms.tsx:129 #~ msgid "Part updated" #~ msgstr "Part updated" -#: src/forms/PurchaseOrderForms.tsx:300 +#: src/forms/PartForms.tsx:140 +msgid "Parent part category" +msgstr "Übergeordnete Teilkategorie" + +#: src/forms/PartForms.tsx:155 +msgid "Subscribe to notifications for this category" +msgstr "" + +#: src/forms/PurchaseOrderForms.tsx:314 +msgid "Assign Batch Code and Serial Numbers" +msgstr "" + +#: src/forms/PurchaseOrderForms.tsx:316 +msgid "Assign Batch Code" +msgstr "" + +#: src/forms/PurchaseOrderForms.tsx:336 msgid "Choose Location" msgstr "Lagerort wählen" -#: src/forms/PurchaseOrderForms.tsx:308 +#: src/forms/PurchaseOrderForms.tsx:344 msgid "Item Destination selected" msgstr "Teile-Zielort ausgewählt" -#: src/forms/PurchaseOrderForms.tsx:317 +#: src/forms/PurchaseOrderForms.tsx:353 msgid "Part category default location selected" msgstr "Standard-Lagerort der Teile-Kategorie ausgewählt" -#: src/forms/PurchaseOrderForms.tsx:327 +#: src/forms/PurchaseOrderForms.tsx:363 msgid "Received stock location selected" msgstr "Lagerort zuvor empfangener Artikel ausgewählt" -#: src/forms/PurchaseOrderForms.tsx:332 +#: src/forms/PurchaseOrderForms.tsx:368 msgid "Default location selected" msgstr "Standard-Lagerort ausgewählt" -#: src/forms/PurchaseOrderForms.tsx:343 -#: src/forms/PurchaseOrderForms.tsx:435 -msgid "Scan Barcode" -msgstr "Barcode scannen" +#: src/forms/PurchaseOrderForms.tsx:421 +#~ msgid "Assign Batch Code{0}" +#~ msgstr "Assign Batch Code{0}" -#: src/forms/PurchaseOrderForms.tsx:388 +#: src/forms/PurchaseOrderForms.tsx:427 msgid "Set Location" msgstr "Lagerort festlegen" -#: src/forms/PurchaseOrderForms.tsx:396 -msgid "Assign Batch Code{0}" -msgstr "Batch-Code{0} zuweisen" - -#: src/forms/PurchaseOrderForms.tsx:405 -#: src/forms/StockForms.tsx:420 +#: src/forms/PurchaseOrderForms.tsx:442 +#: src/forms/StockForms.tsx:539 msgid "Adjust Packaging" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:412 +#: src/forms/PurchaseOrderForms.tsx:444 +#: src/forms/StockForms.tsx:428 +#~ msgid "Remove item from list" +#~ msgstr "Remove item from list" + +#: src/forms/PurchaseOrderForms.tsx:450 msgid "Change Status" msgstr "Status ändern" -#: src/forms/PurchaseOrderForms.tsx:418 +#: src/forms/PurchaseOrderForms.tsx:456 msgid "Add Note" msgstr "Notiz hinzufügen" -#: src/forms/PurchaseOrderForms.tsx:444 -#: src/forms/StockForms.tsx:428 -msgid "Remove item from list" -msgstr "Artikel aus Liste entfernen" - -#: src/forms/PurchaseOrderForms.tsx:471 -#: src/forms/StockForms.tsx:499 -#: src/forms/StockForms.tsx:533 -#: src/forms/StockForms.tsx:562 -#: src/forms/StockForms.tsx:590 -#: src/forms/StockForms.tsx:621 -#: src/forms/StockForms.tsx:656 -#: src/forms/StockForms.tsx:698 -#: src/forms/StockForms.tsx:734 -#: src/pages/stock/StockDetail.tsx:181 -#: src/tables/ColumnRenderers.tsx:49 -#: src/tables/stock/StockTrackingTable.tsx:85 +#: src/forms/PurchaseOrderForms.tsx:503 +#: src/forms/StockForms.tsx:614 +#: src/forms/StockForms.tsx:651 +#: src/forms/StockForms.tsx:677 +#: src/forms/StockForms.tsx:705 +#: src/forms/StockForms.tsx:736 +#: src/forms/StockForms.tsx:771 +#: src/forms/StockForms.tsx:813 +#: src/forms/StockForms.tsx:851 +#: src/pages/stock/StockDetail.tsx:202 +#: src/tables/ColumnRenderers.tsx:60 +#: src/tables/stock/StockTrackingTable.tsx:89 msgid "Location" msgstr "Lagerort" -#: src/forms/PurchaseOrderForms.tsx:486 +#: src/forms/PurchaseOrderForms.tsx:518 msgid "Store at default location" msgstr "Am Standard-Lagerort einbuchen" -#: src/forms/PurchaseOrderForms.tsx:499 +#: src/forms/PurchaseOrderForms.tsx:533 msgid "Store at line item destination" msgstr "Am Zielort der Bauauftragsposition speichern" -#: src/forms/PurchaseOrderForms.tsx:509 +#: src/forms/PurchaseOrderForms.tsx:545 msgid "Store with already received stock" msgstr "Bei bereits vorhandenen Lagerbestand einbuchen" -#: src/forms/PurchaseOrderForms.tsx:524 -#: src/pages/build/BuildDetail.tsx:219 -#: src/pages/stock/StockDetail.tsx:162 -#: src/pages/stock/StockDetail.tsx:599 -#: src/tables/build/BuildAllocatedStockTable.tsx:109 -#: src/tables/build/BuildOrderTestTable.tsx:188 -#: src/tables/sales/SalesOrderAllocationTable.tsx:87 +#: src/forms/PurchaseOrderForms.tsx:566 +#: src/pages/build/BuildDetail.tsx:222 +#: src/pages/stock/StockDetail.tsx:185 +#: src/pages/stock/StockDetail.tsx:793 +#: src/tables/build/BuildAllocatedStockTable.tsx:130 +#: src/tables/build/BuildOrderTestTable.tsx:189 +#: src/tables/build/BuildOutputTable.tsx:86 +#: src/tables/sales/SalesOrderAllocationTable.tsx:113 msgid "Batch Code" msgstr "Losnummer" -#: src/forms/PurchaseOrderForms.tsx:535 -msgid "Serial numbers" +#: src/forms/PurchaseOrderForms.tsx:566 +#~ msgid "Serial numbers" +#~ msgstr "Serial numbers" + +#: src/forms/PurchaseOrderForms.tsx:567 +msgid "Enter batch code for received items" +msgstr "" + +#: src/forms/PurchaseOrderForms.tsx:579 +#: src/forms/StockForms.tsx:152 +msgid "Serial Numbers" msgstr "Seriennummern" -#: src/forms/PurchaseOrderForms.tsx:544 -#: src/forms/StockForms.tsx:443 -#: src/pages/company/SupplierPartDetail.tsx:156 -#: src/pages/company/SupplierPartDetail.tsx:207 -#: src/pages/stock/StockDetail.tsx:244 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:192 +#: src/forms/PurchaseOrderForms.tsx:580 +msgid "Enter serial numbers for received items" +msgstr "" + +#: src/forms/PurchaseOrderForms.tsx:590 +#: src/forms/StockForms.tsx:556 +#: src/pages/company/SupplierPartDetail.tsx:168 +#: src/pages/company/SupplierPartDetail.tsx:219 +#: src/pages/stock/StockDetail.tsx:320 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:198 msgid "Packaging" msgstr "Verpackung" -#: src/forms/PurchaseOrderForms.tsx:556 -#: src/pages/build/BuildDetail.tsx:109 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:148 -#: src/pages/sales/ReturnOrderDetail.tsx:121 -#: src/pages/sales/SalesOrderDetail.tsx:127 -#: src/tables/build/BuildOrderTable.tsx:122 -#: src/tables/machine/MachineListTable.tsx:335 -#: src/tables/part/PartPurchaseOrdersTable.tsx:37 -#: src/tables/purchasing/PurchaseOrderTable.tsx:55 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:132 -#: src/tables/sales/ReturnOrderTable.tsx:46 -#: src/tables/sales/SalesOrderTable.tsx:53 -#: src/tables/settings/ImportSessionTable.tsx:115 -#: src/tables/stock/StockItemTable.tsx:294 -#: src/tables/stock/StockTrackingTable.tsx:52 -msgid "Status" -msgstr "Status" - -#: src/forms/PurchaseOrderForms.tsx:564 -#: src/pages/company/SupplierPartDetail.tsx:110 -#: src/tables/ColumnRenderers.tsx:132 +#: src/forms/PurchaseOrderForms.tsx:612 +#: src/pages/company/SupplierPartDetail.tsx:115 +#: src/tables/ColumnRenderers.tsx:143 msgid "Note" msgstr "Notiz" -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/pages/company/SupplierPartDetail.tsx:128 -#: src/tables/purchasing/SupplierPriceBreakTable.tsx:57 -msgid "SKU" -msgstr "SKU" - -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/tables/part/PartPurchaseOrdersTable.tsx:120 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:178 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:127 -msgid "Received" -msgstr "Erhalten" - -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/forms/StockForms.tsx:499 -#: src/forms/StockForms.tsx:533 -#: src/forms/StockForms.tsx:562 -#: src/forms/StockForms.tsx:590 -#: src/forms/StockForms.tsx:621 -#: src/forms/StockForms.tsx:656 -#: src/forms/StockForms.tsx:698 -#: src/forms/StockForms.tsx:734 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:413 -#: src/tables/RowActions.tsx:113 -msgid "Actions" -msgstr "Aktionen" - -#: src/forms/PurchaseOrderForms.tsx:655 -msgid "Receive Line Items" -msgstr "Positionen empfangen" - #: src/forms/PurchaseOrderForms.tsx:658 #~ msgid "Receive line items" #~ msgstr "Receive line items" -#: src/forms/StockForms.tsx:104 -msgid "Add given quantity as packs instead of individual items" -msgstr "Angegebene Menge als Packungen anstatt einzelner Artikel hinzufügen" +#: src/forms/PurchaseOrderForms.tsx:689 +#: src/pages/company/SupplierPartDetail.tsx:133 +#: src/tables/purchasing/SupplierPriceBreakTable.tsx:57 +msgid "SKU" +msgstr "SKU" + +#: src/forms/PurchaseOrderForms.tsx:689 +#: src/tables/part/PartPurchaseOrdersTable.tsx:126 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:184 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:247 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:152 +msgid "Received" +msgstr "Erhalten" + +#: src/forms/PurchaseOrderForms.tsx:701 +msgid "Receive Line Items" +msgstr "Positionen empfangen" + +#: src/forms/ReturnOrderForms.tsx:201 +msgid "Receive Items" +msgstr "Teile empfangen" + +#: src/forms/ReturnOrderForms.tsx:208 +msgid "Item received into stock" +msgstr "" + +#: src/forms/StockForms.tsx:80 +#: src/hooks/UsePlaceholder.tsx:57 +msgid "Next serial number" +msgstr "Nächste Seriennummer" #: src/forms/StockForms.tsx:110 #~ msgid "Create Stock Item" #~ msgstr "Create Stock Item" -#: src/forms/StockForms.tsx:117 +#: src/forms/StockForms.tsx:131 +msgid "Add given quantity as packs instead of individual items" +msgstr "Angegebene Menge als Packungen anstatt einzelner Artikel hinzufügen" + +#: src/forms/StockForms.tsx:145 msgid "Enter initial quantity for this stock item" msgstr "Ausgangsmenge für diesen Lagerartikel eingeben" -#: src/forms/StockForms.tsx:124 -msgid "Serial Numbers" -msgstr "Seriennummern" - -#: src/forms/StockForms.tsx:125 +#: src/forms/StockForms.tsx:154 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "Seriennummern für neue Lagerartikel eingeben (oder leer lassen)" @@ -2943,82 +3545,102 @@ msgstr "Seriennummern für neue Lagerartikel eingeben (oder leer lassen)" #~ msgid "Stock item updated" #~ msgstr "Stock item updated" -#: src/forms/StockForms.tsx:179 -#: src/pages/stock/StockDetail.tsx:434 -#: src/tables/stock/StockItemTable.tsx:417 -#: src/tables/stock/StockItemTable.tsx:535 +#: src/forms/StockForms.tsx:169 +#: src/pages/stock/StockDetail.tsx:131 +msgid "Stock Status" +msgstr "Lagerbestand Status" + +#: src/forms/StockForms.tsx:218 +#: src/pages/stock/StockDetail.tsx:554 +#: src/tables/stock/StockItemTable.tsx:421 +#: src/tables/stock/StockItemTable.tsx:541 msgid "Add Stock Item" msgstr "Lagerartikel hinzufügen" -#: src/forms/StockForms.tsx:362 +#: src/forms/StockForms.tsx:262 +msgid "Select the part to install" +msgstr "Teil zur Installation auswählen" + +#: src/forms/StockForms.tsx:480 msgid "Loading..." msgstr "Lade..." -#: src/forms/StockForms.tsx:408 +#: src/forms/StockForms.tsx:527 msgid "Move to default location" msgstr "Zum Standard-Lagerort verschieben" -#: src/forms/StockForms.tsx:499 -#: src/forms/StockForms.tsx:533 -#: src/forms/StockForms.tsx:562 -#: src/forms/StockForms.tsx:590 -#: src/forms/StockForms.tsx:621 -#: src/forms/StockForms.tsx:656 -#: src/forms/StockForms.tsx:698 -#: src/forms/StockForms.tsx:734 -#: src/pages/part/PartDetail.tsx:230 -#: src/pages/part/PartDetail.tsx:843 -#: src/tables/stock/StockItemTable.tsx:325 +#: src/forms/StockForms.tsx:614 +#: src/forms/StockForms.tsx:651 +#: src/forms/StockForms.tsx:677 +#: src/forms/StockForms.tsx:705 +#: src/forms/StockForms.tsx:736 +#: src/forms/StockForms.tsx:771 +#: src/forms/StockForms.tsx:813 +#: src/forms/StockForms.tsx:851 +#: src/pages/part/PartDetail.tsx:251 +#: src/pages/part/PartDetail.tsx:875 +#: src/tables/stock/StockItemTable.tsx:329 msgid "In Stock" msgstr "Auf Lager" -#: src/forms/StockForms.tsx:499 +#: src/forms/StockForms.tsx:614 msgid "Move" msgstr "Verschieben" -#: src/forms/StockForms.tsx:562 -#: src/pages/stock/StockDetail.tsx:518 -#: src/tables/stock/StockItemTestResultTable.tsx:328 +#: src/forms/StockForms.tsx:677 +#: src/pages/stock/StockDetail.tsx:681 +#: src/tables/stock/StockItemTestResultTable.tsx:346 msgid "Add" msgstr "Hinzufügen" -#: src/forms/StockForms.tsx:590 -#: src/pages/Index/Scan.tsx:266 -#: src/pages/stock/StockDetail.tsx:508 +#: src/forms/StockForms.tsx:705 +#: src/pages/Index/Scan.tsx:280 +#: src/pages/stock/StockDetail.tsx:670 msgid "Count" msgstr "Anzahl" -#: src/forms/StockForms.tsx:835 +#: src/forms/StockForms.tsx:953 +#: src/pages/stock/StockDetail.tsx:682 +#: src/tables/stock/StockItemTable.tsx:454 msgid "Add Stock" msgstr "Bestand hinzufügen" -#: src/forms/StockForms.tsx:844 +#: src/forms/StockForms.tsx:962 +#: src/pages/stock/StockDetail.tsx:691 +#: src/tables/stock/StockItemTable.tsx:463 msgid "Remove Stock" msgstr "Bestand entfernen" -#: src/forms/StockForms.tsx:853 -#: src/pages/part/PartDetail.tsx:1017 +#: src/forms/StockForms.tsx:971 +#: src/pages/part/PartDetail.tsx:1039 +#: src/pages/stock/StockDetail.tsx:712 +#: src/tables/stock/StockItemTable.tsx:483 msgid "Transfer Stock" msgstr "Bestand verschieben" -#: src/forms/StockForms.tsx:862 -#: src/pages/part/PartDetail.tsx:1006 +#: src/forms/StockForms.tsx:980 +#: src/pages/part/PartDetail.tsx:1028 +#: src/pages/stock/LocationDetail.tsx:314 +#: src/pages/stock/LocationDetail.tsx:318 +#: src/tables/stock/StockItemTable.tsx:472 +#: src/tables/stock/StockItemTable.tsx:476 msgid "Count Stock" msgstr "Bestand zählen" -#: src/forms/StockForms.tsx:871 +#: src/forms/StockForms.tsx:989 msgid "Change Stock Status" msgstr "Bestandsstatus ändern" -#: src/forms/StockForms.tsx:880 +#: src/forms/StockForms.tsx:998 msgid "Merge Stock" msgstr "Bestand zusammenführen" -#: src/forms/StockForms.tsx:899 +#: src/forms/StockForms.tsx:1017 +#: src/tables/stock/StockItemTable.tsx:530 msgid "Delete Stock Items" msgstr "Bestand löschen" -#: src/forms/StockForms.tsx:906 +#: src/forms/StockForms.tsx:1024 msgid "Parent stock location" msgstr "Übergeordneter Lagerort" @@ -3042,11 +3664,11 @@ msgstr "Übergeordneter Lagerort" #~ msgid "You have been logged out" #~ msgstr "You have been logged out" -#: src/functions/auth.tsx:117 +#: src/functions/auth.tsx:128 msgid "Logged Out" msgstr "Ausgeloggt" -#: src/functions/auth.tsx:118 +#: src/functions/auth.tsx:129 msgid "Successfully logged out" msgstr "Erfolgreich abgemeldet" @@ -3062,20 +3684,20 @@ msgstr "Erfolgreich abgemeldet" #~ msgid "Found an existing login - welcome back!" #~ msgstr "Found an existing login - welcome back!" -#: src/functions/auth.tsx:156 +#: src/functions/auth.tsx:167 msgid "Check your inbox for a reset link. This only works if you have an account. Check in spam too." msgstr "Prüfen Sie Ihren Posteingang für einen Link zum Zurücksetzen. Dies funktioniert nur, wenn Sie ein Konto haben. Prüfen Sie auch den Spam-Ordner." -#: src/functions/auth.tsx:163 +#: src/functions/auth.tsx:174 #: src/pages/Auth/Set-Password.tsx:39 msgid "Reset failed" msgstr "Zurücksetzen fehlgeschlagen" -#: src/functions/auth.tsx:194 +#: src/functions/auth.tsx:205 msgid "Logged In" msgstr "Angemeldet" -#: src/functions/auth.tsx:195 +#: src/functions/auth.tsx:206 msgid "Successfully logged in" msgstr "Erfolgreich angemeldet" @@ -3095,30 +3717,38 @@ msgstr "Erfolgreich angemeldet" #~ msgid "method parameter not supplied" #~ msgstr "method parameter not supplied" -#: src/functions/notifications.tsx:10 +#: src/functions/notifications.tsx:12 msgid "Not implemented" msgstr "Nicht implementiert" -#: src/functions/notifications.tsx:11 +#: src/functions/notifications.tsx:13 msgid "This feature is not yet implemented" msgstr "Diese Funktion wurde noch nicht implementiert" -#: src/functions/notifications.tsx:21 -msgid "Permission denied" -msgstr "Zugriff verweigert" +#: src/functions/notifications.tsx:24 +#~ msgid "Permission denied" +#~ msgstr "Permission denied" -#: src/functions/notifications.tsx:22 +#: src/functions/notifications.tsx:25 msgid "You do not have permission to perform this action" msgstr "Du hast keine Berechtigung, diese Aktion durchzuführen" -#: src/functions/notifications.tsx:33 +#: src/functions/notifications.tsx:36 msgid "Invalid Return Code" msgstr "Ungültiger Rückgabecode" -#: src/functions/notifications.tsx:34 +#: src/functions/notifications.tsx:37 msgid "Server returned status {returnCode}" msgstr "Server hat den Status {returnCode} zurückgegeben" +#: src/functions/notifications.tsx:47 +msgid "Timeout" +msgstr "Zeitüberschreitung" + +#: src/functions/notifications.tsx:48 +msgid "The request timed out" +msgstr "Bei der Anfrage ist eine Zeitüberschreitung aufgetreten" + #: src/hooks/UseForm.tsx:88 msgid "Item Created" msgstr "Element angelegt" @@ -3135,20 +3765,24 @@ msgstr "Element gelöscht" msgid "Are you sure you want to delete this item?" msgstr "Sind Sie sicher, dass Sie dieses Element löschen möchten?" +#: src/hooks/UsePlaceholder.tsx:59 +msgid "Latest serial number" +msgstr "Letzte Seriennummer" + #: src/pages/Auth/Logged-In.tsx:22 msgid "Checking if you are already logged in" msgstr "Prüfe ob Sie bereits angemeldet sind" -#: src/pages/Auth/Login.tsx:31 -#: src/pages/Index/Scan.tsx:329 +#: src/pages/Auth/Login.tsx:35 +#: src/pages/Index/Scan.tsx:343 msgid "No selection" msgstr "Keine Auswahl" -#: src/pages/Auth/Login.tsx:87 +#: src/pages/Auth/Login.tsx:91 msgid "Welcome, log in below" msgstr "Willkommen, unten anmelden" -#: src/pages/Auth/Login.tsx:89 +#: src/pages/Auth/Login.tsx:93 msgid "Register below" msgstr "Registrieren" @@ -3162,8 +3796,8 @@ msgstr "Abmelden" #: src/pages/Auth/Reset.tsx:41 #: src/pages/Auth/Set-Password.tsx:112 -msgid "Send mail" -msgstr "Mail senden" +#~ msgid "Send mail" +#~ msgstr "Send mail" #: src/pages/Auth/Set-Password.tsx:30 msgid "Token invalid" @@ -3174,22 +3808,22 @@ msgid "You need to provide a valid token to set a new password. Check your inbox msgstr "Sie müssen einen gültigen Token angeben, um ein neues Passwort festzulegen. Prüfen Sie Ihren Posteingang für einen Link zum Zurücksetzen." #: src/pages/Auth/Set-Password.tsx:49 -msgid "No token provided" -msgstr "Kein Token angegeben" +#~ msgid "No token provided" +#~ msgstr "No token provided" #: src/pages/Auth/Set-Password.tsx:50 -msgid "You need to provide a token to set a new password. Check your inbox for a reset link." -msgstr "Sie müssen einen Token angeben, um ein neues Passwort festzulegen. Prüfen Sie Ihren Posteingang für einen Link zum Zurücksetzen." +#~ msgid "You need to provide a token to set a new password. Check your inbox for a reset link." +#~ msgstr "You need to provide a token to set a new password. Check your inbox for a reset link." -#: src/pages/Auth/Set-Password.tsx:73 +#: src/pages/Auth/Set-Password.tsx:68 msgid "Password set" msgstr "Passwort festgelegt" -#: src/pages/Auth/Set-Password.tsx:74 +#: src/pages/Auth/Set-Password.tsx:69 msgid "The password was set successfully. You can now login with your new password" msgstr "Das Passwort wurde erfolgreich festgelegt. Sie können sich jetzt mit Ihrem neuen Passwort anmelden" -#: src/pages/Auth/Set-Password.tsx:101 +#: src/pages/Auth/Set-Password.tsx:96 msgid "Set new password" msgstr "Passwort festlegen" @@ -3199,27 +3833,27 @@ msgstr "Fehler: {0}" #: src/pages/ErrorPage.tsx:23 msgid "An unexpected error has occurred" -msgstr "" +msgstr "Ein unerwarteter Fehler ist aufgetreten" #: src/pages/ErrorPage.tsx:28 #~ msgid "Sorry, an unexpected error has occurred." #~ msgstr "Sorry, an unexpected error has occurred." #: src/pages/Index/Dashboard.tsx:22 -msgid "Autoupdate" -msgstr "Autom. aktualisieren" +#~ msgid "Autoupdate" +#~ msgstr "Autoupdate" #: src/pages/Index/Dashboard.tsx:26 -msgid "This page is a replacement for the old start page with the same information. This page will be deprecated and replaced by the home page." -msgstr "Diese Seite ist ein Ersatz für die alte Startseite mit den gleichen Informationen." +#~ msgid "This page is a replacement for the old start page with the same information. This page will be deprecated and replaced by the home page." +#~ msgstr "This page is a replacement for the old start page with the same information. This page will be deprecated and replaced by the home page." #: src/pages/Index/Home.tsx:58 -msgid "Welcome to your Dashboard{0}" -msgstr "Willkommen zu deinem Dashboard{0}" +#~ msgid "Welcome to your Dashboard{0}" +#~ msgstr "Welcome to your Dashboard{0}" #: src/pages/Index/Playground.tsx:222 -msgid "This page is a showcase for the possibilities of Platform UI." -msgstr "Diese Seite ist ein Schaufenster für die Möglichkeiten der Plattform-Oberfläche." +#~ msgid "This page is a showcase for the possibilities of Platform UI." +#~ msgstr "This page is a showcase for the possibilities of Platform UI." #: src/pages/Index/Profile/Profile.tsx:30 #: src/pages/Index/Profile/Profile.tsx:141 @@ -3365,126 +3999,191 @@ msgstr "Manuelle Eingabe" msgid "Image Barcode" msgstr "Bild Barcode" -#: src/pages/Index/Scan.tsx:247 +#: src/pages/Index/Scan.tsx:261 msgid "Selected elements are not known" msgstr "Ausgewählte Elemente sind nicht bekannt" -#: src/pages/Index/Scan.tsx:254 +#: src/pages/Index/Scan.tsx:268 msgid "Multiple object types selected" msgstr "Mehrere Objekttypen ausgewählt" -#: src/pages/Index/Scan.tsx:261 +#: src/pages/Index/Scan.tsx:275 msgid "Actions for {0}" msgstr "Aktionen für {0}" -#: src/pages/Index/Scan.tsx:282 +#: src/pages/Index/Scan.tsx:296 msgid "Scan Page" msgstr "Seite scannen" -#: src/pages/Index/Scan.tsx:285 +#: src/pages/Index/Scan.tsx:299 msgid "This page can be used for continuously scanning items and taking actions on them." msgstr "Diese Seite kann benutzt werden, um kontinuierlich Artikel zu scannen und Aktionen durchzuführen." -#: src/pages/Index/Scan.tsx:292 +#: src/pages/Index/Scan.tsx:306 msgid "Toggle Fullscreen" msgstr "Vollbild umschalten" -#: src/pages/Index/Scan.tsx:305 +#: src/pages/Index/Scan.tsx:319 msgid "Select the input method you want to use to scan items." msgstr "Wählen Sie die Eingabemethode, die Sie verwenden möchten, um Elemente zu scannen." -#: src/pages/Index/Scan.tsx:307 +#: src/pages/Index/Scan.tsx:321 msgid "Input" msgstr "Eingabe" -#: src/pages/Index/Scan.tsx:314 +#: src/pages/Index/Scan.tsx:328 msgid "Select input method" msgstr "Eingabemethode auswählen" -#: src/pages/Index/Scan.tsx:315 +#: src/pages/Index/Scan.tsx:329 msgid "Nothing found" msgstr "Nichts gefunden" -#: src/pages/Index/Scan.tsx:323 +#: src/pages/Index/Scan.tsx:337 msgid "Depending on the selected parts actions will be shown here. Not all barcode types are supported currently." msgstr "Abhängig von den ausgewählten Bauteilen werden hier Aktionen angezeigt. Derzeit werden nicht alle Barcode-Typen unterstützt." -#: src/pages/Index/Scan.tsx:325 +#: src/pages/Index/Scan.tsx:339 msgid "Action" msgstr "Aktion" -#: src/pages/Index/Scan.tsx:334 +#: src/pages/Index/Scan.tsx:348 msgid "{0} items selected" msgstr "{0} Element(e) ausgewählt" -#: src/pages/Index/Scan.tsx:337 +#: src/pages/Index/Scan.tsx:351 msgid "General Actions" msgstr "Allgemeine Aktionen" -#: src/pages/Index/Scan.tsx:351 +#: src/pages/Index/Scan.tsx:365 msgid "Lookup part" msgstr "Teil suchen" -#: src/pages/Index/Scan.tsx:359 +#: src/pages/Index/Scan.tsx:373 msgid "Open Link" msgstr "Link öffnen" -#: src/pages/Index/Scan.tsx:375 +#: src/pages/Index/Scan.tsx:389 msgid "History is locally kept in this browser." msgstr "Die Historie wird lokal in diesem Browser gespeichert." -#: src/pages/Index/Scan.tsx:376 +#: src/pages/Index/Scan.tsx:390 msgid "The history is kept in this browser's local storage. So it won't be shared with other users or other devices but is persistent through reloads. You can select items in the history to perform actions on them. To add items, scan/enter them in the Input area." msgstr "Der Verlauf wird im lokalen Speicher dieses Browsers gespeichert. Er wird also nicht mit anderen Benutzern oder anderen Geräten geteilt, aber bleibt beim neuladen bestehen. Sie können Elemente in der Historie auswählen, um Aktionen auszuführen. Um Elemente hinzuzufügen, scanne sie/gebe sie im Eingabebereich ein." -#: src/pages/Index/Scan.tsx:378 +#: src/pages/Index/Scan.tsx:392 #: src/pages/Notifications.tsx:100 msgid "History" msgstr "Verlauf" -#: src/pages/Index/Scan.tsx:384 +#: src/pages/Index/Scan.tsx:398 msgid "Delete History" msgstr "Historie löschen" -#: src/pages/Index/Scan.tsx:449 +#: src/pages/Index/Scan.tsx:463 msgid "No history" msgstr "Historial vacío" -#: src/pages/Index/Scan.tsx:467 +#: src/pages/Index/Scan.tsx:481 msgid "Item" msgstr "Artikel" -#: src/pages/Index/Scan.tsx:470 +#: src/pages/Index/Scan.tsx:484 msgid "Type" msgstr "Typ" -#: src/pages/Index/Scan.tsx:473 +#: src/pages/Index/Scan.tsx:487 msgid "Source" msgstr "Quelle" -#: src/pages/Index/Scan.tsx:476 +#: src/pages/Index/Scan.tsx:490 msgid "Scanned at" msgstr "Gescannt um" -#: src/pages/Index/Scan.tsx:528 +#: src/pages/Index/Scan.tsx:547 msgid "Enter item serial or data" msgstr "Seriennummer oder Daten des Artikels eingeben" -#: src/pages/Index/Scan.tsx:540 +#: src/pages/Index/Scan.tsx:559 msgid "Add dummy item" msgstr "Dummy Element hinzufügen" +#: src/pages/Index/Scan.tsx:569 +msgid "Start scanning by selecting a camera and pressing the play button." +msgstr "" + +#: src/pages/Index/Scan.tsx:650 +msgid "Error while getting camera" +msgstr "Fehler beim Laden der Kamera" + +#: src/pages/Index/Scan.tsx:673 +msgid "Error while scanning" +msgstr "Fehler beim Scannen" + +#: src/pages/Index/Scan.tsx:687 +msgid "Error while stopping" +msgstr "Fehler beim Anhalten" + +#: src/pages/Index/Scan.tsx:745 +msgid "Stop scanning" +msgstr "Scan stoppen" + +#: src/pages/Index/Scan.tsx:754 +msgid "Start scanning" +msgstr "Scan starten" + +#: src/pages/Index/Scan.tsx:763 +msgid "Scanning" +msgstr "Scannen" + +#: src/pages/Index/Scan.tsx:763 +msgid "Not scanning" +msgstr "Es wird nicht gescannt" + +#: src/pages/Index/Scan.tsx:775 +msgid "Select Camera" +msgstr "Kamera auswählen" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:28 +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:50 +msgid "Edit User Information" +msgstr "Benutzerinformationen bearbeiten" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:32 +msgid "User details updated" +msgstr "Benutzerdaten aktualisiert" + #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:41 -msgid "Account Details" -msgstr "Kontodetails" +msgid "User Details" +msgstr "Benutzerdetails" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:41 +#~ msgid "Account Details" +#~ msgstr "Account Details" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:44 +msgid "User Actions" +msgstr "Benutzeraktionen" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:48 +msgid "Edit User" +msgstr "Benutzer bearbeiten" #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:50 -msgid "First name" -msgstr "Vorname" +#~ msgid "First name" +#~ msgstr "First name" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:54 +msgid "Set Password" +msgstr "Passwort festlegen" #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:55 -msgid "Last name" -msgstr "Nachname" +#~ msgid "Last name" +#~ msgstr "Last name" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:56 +msgid "Set User Password" +msgstr "Benutzerpasswort festlegen" #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:58 #~ msgid "First name: {0}" @@ -3495,16 +4194,29 @@ msgstr "Nachname" #~ msgstr "Last name: {0}" #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:67 -msgid "First name:" -msgstr "Vorname:" +#~ msgid "First name:" +#~ msgstr "First name:" #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:71 -msgid "Last name:" -msgstr "Nachname:" +#~ msgid "Last name:" +#~ msgstr "Last name:" -#: src/pages/Index/Settings/AccountSettings/DisplaySettingsPanel.tsx:41 -msgid "Use pseudo language" -msgstr "Pseudosprache verwenden" +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:73 +msgid "First Name" +msgstr "Vorname" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:79 +msgid "Last Name" +msgstr "Nachname" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:85 +msgid "Staff Access" +msgstr "Personalzugang" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:93 +#: src/tables/settings/UserTable.tsx:293 +msgid "Superuser" +msgstr "Administrator" #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:55 msgid "Single Sign On Accounts" @@ -3600,68 +4312,83 @@ msgstr "Widerrufen" msgid "No tokens configured" msgstr "Keine Token konfiguriert" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:398 -#: src/pages/part/PartDetail.tsx:297 -#: src/tables/bom/UsedInTable.tsx:84 -#: src/tables/build/BuildOrderTable.tsx:110 -#: src/tables/company/CompanyTable.tsx:61 -#: src/tables/company/CompanyTable.tsx:95 -#: src/tables/machine/MachineListTable.tsx:332 -#: src/tables/machine/MachineListTable.tsx:594 -#: src/tables/part/ParametricPartTable.tsx:223 -#: src/tables/part/PartTable.tsx:178 -#: src/tables/part/PartVariantTable.tsx:15 -#: src/tables/plugin/PluginListTable.tsx:149 -#: src/tables/plugin/PluginListTable.tsx:271 -#: src/tables/plugin/PluginListTable.tsx:563 -#: src/tables/purchasing/SupplierPartTable.tsx:98 -#: src/tables/purchasing/SupplierPartTable.tsx:187 -#: src/tables/settings/UserTable.tsx:284 -#: src/tables/stock/StockItemTable.tsx:289 -msgid "Active" -msgstr "Aktiv" - #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:401 msgid "Expiry" msgstr "" #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:404 msgid "Last Seen" -msgstr "" +msgstr "Zuletzt aktiv" #: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:65 -msgid "bars" -msgstr "Barren" +#~ msgid "bars" +#~ msgstr "bars" #: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:66 -msgid "oval" -msgstr "Oval" +#~ msgid "oval" +#~ msgstr "oval" #: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:67 -msgid "dots" -msgstr "Punkte" +#~ msgid "dots" +#~ msgstr "dots" #: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:81 -msgid "Theme" -msgstr "Theme" +#~ msgid "Theme" +#~ msgstr "Theme" #: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:87 -msgid "Primary color" -msgstr "Primärfarbe" +#~ msgid "Primary color" +#~ msgstr "Primary color" -#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:100 +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:88 +msgid "Bars" +msgstr "Balken" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:89 +msgid "Oval" +msgstr "Oval" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:90 +msgid "Dots" +msgstr "Punkte" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:101 +msgid "Display Settings" +msgstr "Anzeigeneinstellungen" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:107 +msgid "Language" +msgstr "Sprache" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:115 +msgid "Use pseudo language" +msgstr "Pseudosprache verwenden" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:122 +msgid "Color Mode" +msgstr "Farbmodus" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:133 +msgid "Highlight color" +msgstr "Markierungsfarbe" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:145 +msgid "Example" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:151 msgid "White color" msgstr "Weiße Farbe" -#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:108 +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:167 msgid "Black color" msgstr "Schwarze Farbe" -#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:116 +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:183 msgid "Border Radius" msgstr "Rahmen Radius" -#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:132 +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:199 msgid "Loader" msgstr "Lader" @@ -3673,89 +4400,156 @@ msgstr "Lader" #~ msgid "Advanced Amininistrative Options for InvenTree" #~ msgstr "Advanced Amininistrative Options for InvenTree" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:104 +#: src/pages/Index/Settings/AdminCenter/CurrencyManagmentPanel.tsx:27 +#: src/tables/ColumnRenderers.tsx:262 +msgid "Currency" +msgstr "Währung" + +#: src/pages/Index/Settings/AdminCenter/CurrencyManagmentPanel.tsx:32 +msgid "Rate" +msgstr "Bewerten" + +#: src/pages/Index/Settings/AdminCenter/CurrencyManagmentPanel.tsx:44 +msgid "Exchange rates updated" +msgstr "Wechselkurse aktualisiert" + +#: src/pages/Index/Settings/AdminCenter/CurrencyManagmentPanel.tsx:50 +msgid "Exchange rate update error" +msgstr "Fehler beim Aktualisieren des Wechselkurses" + +#: src/pages/Index/Settings/AdminCenter/CurrencyManagmentPanel.tsx:62 +msgid "Refresh currency exchange rates" +msgstr "Wechselkurse aktualisieren" + +#: src/pages/Index/Settings/AdminCenter/CurrencyManagmentPanel.tsx:99 +msgid "Last fetched" +msgstr "Letzter Abruf" + +#: src/pages/Index/Settings/AdminCenter/CurrencyManagmentPanel.tsx:100 +msgid "Base currency" +msgstr "Basiswährung" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:115 msgid "Data Import" msgstr "" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:110 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:121 +msgid "Barcode Scans" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:127 msgid "Background Tasks" msgstr "Hintergrundprozesse" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:116 -msgid "Error Reports" -msgstr "Fehlerberichte" - -#: src/pages/Index/Settings/AdminCenter/Index.tsx:122 -msgid "Currencies" -msgstr "Währungen" - #: src/pages/Index/Settings/AdminCenter/Index.tsx:127 #~ msgid "Templates" #~ msgstr "Templates" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:140 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:133 +msgid "Error Reports" +msgstr "Fehlerberichte" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:139 +msgid "Currencies" +msgstr "Währungen" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:157 +msgid "Custom States" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:163 +#: src/pages/Index/Settings/AdminCenter/UnitManagmentPanel.tsx:58 msgid "Custom Units" msgstr "Kundenspezifische Einheiten" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:146 -#: src/pages/part/CategoryDetail.tsx:264 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:169 +#: src/pages/part/CategoryDetail.tsx:269 msgid "Part Parameters" msgstr "Teile Parameter" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:152 -msgid "Category Parameters" -msgstr "Kategorie Parameter" - -#: src/pages/Index/Settings/AdminCenter/Index.tsx:170 -msgid "Location Types" -msgstr "" - #: src/pages/Index/Settings/AdminCenter/Index.tsx:170 #~ msgid "Location types" #~ msgstr "Location types" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:182 -#: src/tables/machine/MachineTypeTable.tsx:287 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:175 +msgid "Category Parameters" +msgstr "Kategorie Parameter" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:181 +msgid "Stocktake" +msgstr "Inventur" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:199 +msgid "Location Types" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:211 +#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:48 +#: src/tables/machine/MachineTypeTable.tsx:308 msgid "Machines" msgstr "Maschinen" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:192 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:221 msgid "Quick Actions" msgstr "Schnell-Auswahl" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:197 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:226 msgid "Add a new user" msgstr "Neuen Benutzer hinzufügen" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:222 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:252 msgid "Advanced Options" msgstr "Erweiterte Optionen" #: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:43 -msgid "Machine types" -msgstr "Maschinentypen" +#~ msgid "Machine types" +#~ msgstr "Machine types" #: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:53 -msgid "Machine Error Stack" -msgstr "Maschinen-Fehlerstapel" +#~ msgid "Machine Error Stack" +#~ msgstr "Machine Error Stack" + +#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:56 +msgid "Machine Types" +msgstr "" #: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:62 -msgid "There are no machine registry errors." -msgstr "Es gibt keine Fehler in der Maschinenregistry." +#~ msgid "There are no machine registry errors." +#~ msgstr "There are no machine registry errors." -#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:28 -#: src/tables/settings/UserTable.tsx:119 +#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:64 +msgid "Machine Errors" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:77 +msgid "Registry Registry Errors" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:80 +msgid "There are machine registry errors" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:86 +msgid "Machine Registry Errors" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:89 +msgid "There are no machine registry errors" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:31 +#: src/tables/settings/UserTable.tsx:118 msgid "Info" msgstr "Info" -#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:32 -msgid "External plugins are not enabled for this InvenTree installation." -msgstr "Externe Plugins sind für diese InvenTree-Installation nicht aktiviert." - #: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:33 #~ msgid "Plugin Error Stack" #~ msgstr "Plugin Error Stack" +#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:35 +msgid "External plugins are not enabled for this InvenTree installation." +msgstr "Externe Plugins sind für diese InvenTree-Installation nicht aktiviert." + #: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:45 #~ msgid "Warning" #~ msgstr "Warning" @@ -3764,34 +4558,46 @@ msgstr "Externe Plugins sind für diese InvenTree-Installation nicht aktiviert." #~ msgid "Changing the settings below require you to immediately restart the server. Do not change this while under active usage." #~ msgstr "Changing the settings below require you to immediately restart the server. Do not change this while under active usage." -#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:50 +#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:73 msgid "Plugin Errors" msgstr "Plugin-Fehler" -#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:59 -msgid "Plugin Settings" -msgstr "Plugin Einstellungen" +#: src/pages/Index/Settings/AdminCenter/ReportTemplatePanel.tsx:17 +msgid "Page Size" +msgstr "" -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:53 -msgid "Background Worker Not Running" -msgstr "Hintergrundprozesse laufen nicht" +#: src/pages/Index/Settings/AdminCenter/ReportTemplatePanel.tsx:20 +msgid "Landscape" +msgstr "" -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:54 +#: src/pages/Index/Settings/AdminCenter/ReportTemplatePanel.tsx:26 +msgid "Attach to Model" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/StocktakePanel.tsx:25 +msgid "Stocktake Reports" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:30 msgid "The background task manager service is not running. Contact your system administrator." msgstr "Der Hintergrund Taskmanager Service läuft nicht. Kontaktiere den Systemadministrator." -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:60 -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:76 +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:35 +#~ msgid "Background Worker Not Running" +#~ msgstr "Background Worker Not Running" + +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:36 +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:45 msgid "Pending Tasks" msgstr "Anstehende Aufgaben" -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:64 -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:84 +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:37 +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:53 msgid "Scheduled Tasks" msgstr "Geplante Aufgaben" -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:68 -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:92 +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:38 +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:61 msgid "Failed Tasks" msgstr "Fehlgeschlagene Aufgaben" @@ -3811,11 +4617,6 @@ msgstr "Fehlgeschlagene Aufgaben" #~ msgid "Reports" #~ msgstr "Reports" -#: src/pages/Index/Settings/AdminCenter/TemplateManagementPanel.tsx:89 -#: src/pages/build/BuildDetail.tsx:373 -#~ msgid "Report" -#~ msgstr "Report" - #: src/pages/Index/Settings/AdminCenter/TemplateManagementPanel.tsx:99 #~ msgid "Purchase order" #~ msgstr "Purchase order" @@ -3836,23 +4637,35 @@ msgstr "Fehlgeschlagene Aufgaben" #~ msgid "Stock location" #~ msgstr "Stock location" +#: src/pages/Index/Settings/AdminCenter/UnitManagmentPanel.tsx:21 +msgid "Alias" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/UnitManagmentPanel.tsx:22 +msgid "Dimensionless" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/UnitManagmentPanel.tsx:66 +msgid "All units" +msgstr "" + #: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:32 msgid "Select settings relevant for user lifecycle. More available in" msgstr "Einstellungen die für den Benutzer Lebenszyklus relevant sind. Mehr verfügbar in" #: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:37 -msgid "System settings" -msgstr "Systemeinstellungen" +#~ msgid "System settings" +#~ msgstr "System settings" -#: src/pages/Index/Settings/SystemSettings.tsx:67 +#: src/pages/Index/Settings/SystemSettings.tsx:66 msgid "Login" msgstr "Anmelden" -#: src/pages/Index/Settings/SystemSettings.tsx:93 +#: src/pages/Index/Settings/SystemSettings.tsx:92 msgid "Barcodes" msgstr "Barcode" -#: src/pages/Index/Settings/SystemSettings.tsx:115 +#: src/pages/Index/Settings/SystemSettings.tsx:116 msgid "Pricing" msgstr "Preise" @@ -3864,64 +4677,46 @@ msgstr "Preise" #~ msgid "Exchange Rates" #~ msgstr "Exchange Rates" -#: src/pages/Index/Settings/SystemSettings.tsx:150 +#: src/pages/Index/Settings/SystemSettings.tsx:151 msgid "Labels" msgstr "Beschriftungen" -#: src/pages/Index/Settings/SystemSettings.tsx:156 -#: src/pages/Index/Settings/UserSettings.tsx:132 +#: src/pages/Index/Settings/SystemSettings.tsx:157 +#: src/pages/Index/Settings/UserSettings.tsx:133 msgid "Reporting" msgstr "Berichte" #: src/pages/Index/Settings/SystemSettings.tsx:231 -#: src/pages/part/PartDetail.tsx:682 -msgid "Stocktake" -msgstr "Inventur" - -#: src/pages/Index/Settings/SystemSettings.tsx:237 -#: src/pages/build/BuildDetail.tsx:554 -#: src/pages/build/BuildIndex.tsx:22 -#: src/pages/part/PartDetail.tsx:616 -#: src/pages/sales/SalesOrderDetail.tsx:333 +#: src/pages/build/BuildIndex.tsx:27 +#: src/pages/part/PartDetail.tsx:636 +#: src/pages/sales/SalesOrderDetail.tsx:355 msgid "Build Orders" msgstr "Bauaufträge" -#: src/pages/Index/Settings/SystemSettings.tsx:318 -msgid "Switch to User Setting" -msgstr "Zu Benutzereinstellungen wechseln" +#: src/pages/Index/Settings/SystemSettings.tsx:317 +#~ msgid "Switch to User Setting" +#~ msgstr "Switch to User Setting" -#: src/pages/Index/Settings/UserSettings.tsx:34 +#: src/pages/Index/Settings/UserSettings.tsx:35 msgid "Account" msgstr "Konto" -#: src/pages/Index/Settings/UserSettings.tsx:40 +#: src/pages/Index/Settings/UserSettings.tsx:41 msgid "Security" msgstr "Sicherheit" -#: src/pages/Index/Settings/UserSettings.tsx:78 +#: src/pages/Index/Settings/UserSettings.tsx:79 msgid "Display Options" msgstr "Anzeigeoptionen" -#: src/pages/Index/Settings/UserSettings.tsx:150 -msgid "Account Settings" -msgstr "Kontoeinstellungen" - -#: src/pages/Index/Settings/UserSettings.tsx:158 -msgid "Switch to System Setting" -msgstr "Zu Systemeinstellungen wechseln" - -#: src/pages/Index/UserSettings.tsx:103 -#~ msgid "User Settings" -#~ msgstr "User Settings" +#: src/pages/Index/Settings/UserSettings.tsx:159 +#~ msgid "Switch to System Setting" +#~ msgstr "Switch to System Setting" #: src/pages/Logged-In.tsx:24 #~ msgid "Found an exsisting login - using it to log you in." #~ msgstr "Found an exsisting login - using it to log you in." -#: src/pages/NotFound.tsx:17 -#~ msgid "Not Found" -#~ msgstr "Not Found" - #: src/pages/NotFound.tsx:20 #~ msgid "Sorry, this page is not known or was moved." #~ msgstr "Sorry, this page is not known or was moved." @@ -3942,115 +4737,93 @@ msgstr "Als ungelesen markieren" #~ msgid "Build Status" #~ msgstr "Build Status" -#: src/pages/build/BuildDetail.tsx:102 -#: src/pages/part/PartDetail.tsx:150 +#: src/pages/build/BuildDetail.tsx:97 +#: src/pages/company/ManufacturerPartDetail.tsx:81 +#: src/pages/company/SupplierPartDetail.tsx:91 +#: src/pages/part/PartDetail.tsx:171 +#: src/pages/stock/StockDetail.tsx:122 #: src/tables/bom/BomTable.tsx:118 #: src/tables/bom/UsedInTable.tsx:39 -#: src/tables/build/BuildLineTable.tsx:173 -#: src/tables/build/BuildOrderTable.tsx:55 -#: src/tables/sales/SalesOrderLineItemTable.tsx:62 -#: src/tables/stock/StockItemTable.tsx:53 +#: src/tables/build/BuildAllocatedStockTable.tsx:104 +#: src/tables/build/BuildLineTable.tsx:324 +#: src/tables/build/BuildOrderTable.tsx:64 +#: src/tables/sales/SalesOrderLineItemTable.tsx:70 +#: src/tables/stock/StockItemTable.tsx:54 msgid "IPN" msgstr "IPN" -#: src/pages/build/BuildDetail.tsx:115 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:121 -#: src/pages/sales/ReturnOrderDetail.tsx:95 -#: src/pages/sales/SalesOrderDetail.tsx:101 -#: src/tables/ColumnRenderers.tsx:121 -#: src/tables/build/BuildAllocatedStockTable.tsx:90 -#: src/tables/build/BuildLineTable.tsx:184 +#: src/pages/build/BuildDetail.tsx:110 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:115 +#: src/pages/sales/ReturnOrderDetail.tsx:86 +#: src/pages/sales/SalesOrderDetail.tsx:95 +#: src/tables/ColumnRenderers.tsx:132 +#: src/tables/build/BuildAllocatedStockTable.tsx:111 +#: src/tables/build/BuildLineTable.tsx:335 msgid "Reference" msgstr "Referenz" -#: src/pages/build/BuildDetail.tsx:121 -#: src/pages/company/CompanyDetail.tsx:90 -#: src/pages/company/ManufacturerPartDetail.tsx:83 -#: src/pages/company/SupplierPartDetail.tsx:96 -#: src/pages/part/CategoryDetail.tsx:101 -#: src/pages/part/PartDetail.tsx:157 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:142 -#: src/pages/sales/ReturnOrderDetail.tsx:115 -#: src/pages/sales/SalesOrderDetail.tsx:121 -#: src/pages/stock/LocationDetail.tsx:109 -#: src/tables/ColumnRenderers.tsx:81 -#: src/tables/bom/UsedInTable.tsx:44 -#: src/tables/build/BuildAllocatedStockTable.tsx:70 -#: src/tables/build/BuildLineTable.tsx:178 -#: src/tables/machine/MachineTypeTable.tsx:69 -#: src/tables/machine/MachineTypeTable.tsx:112 -#: src/tables/machine/MachineTypeTable.tsx:219 -#: src/tables/machine/MachineTypeTable.tsx:323 -#: src/tables/part/RelatedPartTable.tsx:64 -#: src/tables/plugin/PluginListTable.tsx:129 -#: src/tables/plugin/PluginListTable.tsx:276 -#: src/tables/sales/SalesOrderAllocationTable.tsx:56 -#: src/tables/sales/SalesOrderLineItemTable.tsx:67 -#: src/tables/stock/LocationTypesTable.tsx:74 -msgid "Description" -msgstr "Beschreibung" - -#: src/pages/build/BuildDetail.tsx:129 +#: src/pages/build/BuildDetail.tsx:124 msgid "Parent Build" msgstr "Übergeordneter Bauauftrag" -#: src/pages/build/BuildDetail.tsx:140 +#: src/pages/build/BuildDetail.tsx:135 msgid "Build Quantity" msgstr "Bauauftrag Anzahl" -#: src/pages/build/BuildDetail.tsx:148 -#: src/pages/build/BuildDetail.tsx:274 +#: src/pages/build/BuildDetail.tsx:143 +#: src/pages/build/BuildDetail.tsx:277 msgid "Completed Outputs" msgstr "Fertiggestellte Endprodukte" -#: src/pages/build/BuildDetail.tsx:165 -#: src/tables/build/BuildOrderTable.tsx:151 +#: src/pages/build/BuildDetail.tsx:160 +#: src/tables/build/BuildOrderTable.tsx:142 msgid "Issued By" msgstr "Aufgegeben von" -#: src/pages/build/BuildDetail.tsx:172 -#: src/pages/part/PartDetail.tsx:365 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:220 -#: src/pages/sales/ReturnOrderDetail.tsx:199 -#: src/pages/sales/SalesOrderDetail.tsx:208 -#: src/tables/build/BuildOrderTable.tsx:157 -#: src/tables/purchasing/PurchaseOrderTable.tsx:75 -#: src/tables/sales/ReturnOrderTable.tsx:66 -#: src/tables/sales/SalesOrderTable.tsx:73 +#: src/pages/build/BuildDetail.tsx:167 +#: src/pages/part/PartDetail.tsx:406 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:244 +#: src/pages/sales/ReturnOrderDetail.tsx:216 +#: src/pages/sales/SalesOrderDetail.tsx:226 +#: src/tables/build/BuildOrderTable.tsx:148 +#: src/tables/purchasing/PurchaseOrderTable.tsx:76 +#: src/tables/sales/ReturnOrderTable.tsx:74 +#: src/tables/sales/SalesOrderTable.tsx:74 msgid "Responsible" msgstr "Verantwortlich" -#: src/pages/build/BuildDetail.tsx:179 -#: src/tables/settings/PendingTasksTable.tsx:32 +#: src/pages/build/BuildDetail.tsx:174 +#: src/tables/settings/PendingTasksTable.tsx:36 msgid "Created" msgstr "Erstellt" +#: src/pages/build/BuildDetail.tsx:181 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:229 +#: src/pages/sales/ReturnOrderDetail.tsx:201 +#: src/pages/sales/SalesOrderDetail.tsx:212 +#: src/tables/ColumnRenderers.tsx:226 +#: src/tables/part/PartPurchaseOrdersTable.tsx:100 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:135 +#: src/tables/sales/SalesOrderLineItemTable.tsx:107 +msgid "Target Date" +msgstr "Zieldatum" + #: src/pages/build/BuildDetail.tsx:185 #: src/pages/part/PartDetail.tsx:269 #: src/pages/stock/StockDetail.tsx:150 #~ msgid "View part barcode" #~ msgstr "View part barcode" -#: src/pages/build/BuildDetail.tsx:186 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:213 -#: src/pages/sales/ReturnOrderDetail.tsx:192 -#: src/pages/sales/SalesOrderDetail.tsx:201 -#: src/tables/ColumnRenderers.tsx:212 -#: src/tables/part/PartPurchaseOrdersTable.tsx:99 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:110 -#: src/tables/sales/SalesOrderLineItemTable.tsx:99 -msgid "Target Date" -msgstr "Zieldatum" +#: src/pages/build/BuildDetail.tsx:188 +#: src/tables/sales/SalesOrderLineItemTable.tsx:281 +msgid "Completed" +msgstr "Abgeschlossen" #: src/pages/build/BuildDetail.tsx:190 #: src/pages/part/PartDetail.tsx:274 #~ msgid "Link custom barcode to part" #~ msgstr "Link custom barcode to part" -#: src/pages/build/BuildDetail.tsx:193 -msgid "Completed" -msgstr "Abgeschlossen" - #: src/pages/build/BuildDetail.tsx:196 #: src/pages/part/PartDetail.tsx:280 #~ msgid "Unlink custom barcode from part" @@ -4060,15 +4833,11 @@ msgstr "Abgeschlossen" #~ msgid "Build Order updated" #~ msgstr "Build Order updated" -#: src/pages/build/BuildDetail.tsx:205 -msgid "Source Location" -msgstr "Quell Lagerort" - -#: src/pages/build/BuildDetail.tsx:206 +#: src/pages/build/BuildDetail.tsx:209 msgid "Any location" msgstr "Beliebiger Lagerort" -#: src/pages/build/BuildDetail.tsx:213 +#: src/pages/build/BuildDetail.tsx:216 msgid "Destination Location" msgstr "Ziel Lagerort" @@ -4084,206 +4853,182 @@ msgstr "Ziel Lagerort" #~ msgid "Delete build order" #~ msgstr "Delete build order" -#: src/pages/build/BuildDetail.tsx:251 +#: src/pages/build/BuildDetail.tsx:254 msgid "Build Details" msgstr "Bauauftrag Details" -#: src/pages/build/BuildDetail.tsx:257 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:258 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:267 -#: src/pages/sales/ReturnOrderDetail.tsx:130 -#: src/pages/sales/ReturnOrderDetail.tsx:237 -#: src/pages/sales/ReturnOrderDetail.tsx:246 -#: src/pages/sales/SalesOrderDetail.tsx:272 -#: src/pages/sales/SalesOrderDetail.tsx:281 +#: src/pages/build/BuildDetail.tsx:260 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:282 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:291 +#: src/pages/sales/ReturnOrderDetail.tsx:122 +#: src/pages/sales/ReturnOrderDetail.tsx:254 +#: src/pages/sales/ReturnOrderDetail.tsx:263 +#: src/pages/sales/SalesOrderDetail.tsx:294 +#: src/pages/sales/SalesOrderDetail.tsx:303 msgid "Line Items" msgstr "Positionen" -#: src/pages/build/BuildDetail.tsx:267 +#: src/pages/build/BuildDetail.tsx:266 msgid "Incomplete Outputs" msgstr "Unvollständige Endprodukte" -#: src/pages/build/BuildDetail.tsx:289 -#: src/pages/sales/SalesOrderDetail.tsx:319 +#: src/pages/build/BuildDetail.tsx:292 +#: src/pages/sales/SalesOrderDetail.tsx:341 msgid "Allocated Stock" msgstr "" -#: src/pages/build/BuildDetail.tsx:299 +#: src/pages/build/BuildDetail.tsx:302 msgid "Consumed Stock" msgstr "Verbrauchte Bestände" -#: src/pages/build/BuildDetail.tsx:313 +#: src/pages/build/BuildDetail.tsx:316 msgid "Child Build Orders" msgstr "Unter-Bauaufträge" #: src/pages/build/BuildDetail.tsx:326 -#: src/tables/build/BuildOutputTable.tsx:384 -#: src/tables/stock/StockItemTestResultTable.tsx:150 +#: src/tables/build/BuildOutputTable.tsx:532 +#: src/tables/stock/StockItemTestResultTable.tsx:156 msgid "Test Results" msgstr "Testergebnisse" #: src/pages/build/BuildDetail.tsx:337 -#: src/pages/part/PartDetail.tsx:699 +#: src/pages/part/PartDetail.tsx:740 msgid "Test Statistics" msgstr "" -#: src/pages/build/BuildDetail.tsx:351 -#: src/pages/company/CompanyDetail.tsx:259 -#: src/pages/company/ManufacturerPartDetail.tsx:179 -#: src/pages/part/PartDetail.tsx:721 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:309 -#: src/pages/sales/ReturnOrderDetail.tsx:274 -#: src/pages/sales/SalesOrderDetail.tsx:343 -#: src/pages/stock/StockDetail.tsx:385 -msgid "Attachments" -msgstr "Anhänge" - -#: src/pages/build/BuildDetail.tsx:359 -#: src/pages/company/CompanyDetail.tsx:270 -#: src/pages/company/ManufacturerPartDetail.tsx:190 -#: src/pages/company/SupplierPartDetail.tsx:257 -#: src/pages/part/PartDetail.tsx:729 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:320 -#: src/pages/sales/ReturnOrderDetail.tsx:285 -#: src/pages/sales/SalesOrderDetail.tsx:354 -#: src/pages/stock/StockDetail.tsx:396 -#: src/tables/build/BuildOrderTestTable.tsx:142 -#: src/tables/stock/StockTrackingTable.tsx:189 -msgid "Notes" -msgstr "Notizen" +#: src/pages/build/BuildDetail.tsx:365 +msgid "Edit Build Order" +msgstr "Bauauftrag bearbeiten" #: src/pages/build/BuildDetail.tsx:368 #~ msgid "Reporting Actions" #~ msgstr "Reporting Actions" +#: src/pages/build/BuildDetail.tsx:372 +#: src/tables/build/BuildOrderTable.tsx:173 +#: src/tables/build/BuildOrderTable.tsx:188 +msgid "Add Build Order" +msgstr "Neuer Bauauftrag" + #: src/pages/build/BuildDetail.tsx:374 #~ msgid "Print build report" #~ msgstr "Print build report" -#: src/pages/build/BuildDetail.tsx:377 -msgid "Edit Build Order" -msgstr "Bauauftrag bearbeiten" - -#: src/pages/build/BuildDetail.tsx:384 -#: src/tables/build/BuildOrderTable.tsx:172 -#: src/tables/build/BuildOrderTable.tsx:187 -msgid "Add Build Order" -msgstr "Neuer Bauauftrag" - -#: src/pages/build/BuildDetail.tsx:398 +#: src/pages/build/BuildDetail.tsx:386 msgid "Cancel Build Order" msgstr "Bauauftrag abbrechen" -#: src/pages/build/BuildDetail.tsx:400 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:348 -#: src/pages/sales/SalesOrderDetail.tsx:380 +#: src/pages/build/BuildDetail.tsx:388 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:357 +#: src/pages/sales/ReturnOrderDetail.tsx:354 +#: src/pages/sales/SalesOrderDetail.tsx:387 msgid "Order cancelled" msgstr "" -#: src/pages/build/BuildDetail.tsx:401 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:347 -#: src/pages/sales/ReturnOrderDetail.tsx:346 -#: src/pages/sales/SalesOrderDetail.tsx:379 +#: src/pages/build/BuildDetail.tsx:389 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:356 +#: src/pages/sales/ReturnOrderDetail.tsx:353 +#: src/pages/sales/SalesOrderDetail.tsx:386 msgid "Cancel this order" msgstr "" -#: src/pages/build/BuildDetail.tsx:410 +#: src/pages/build/BuildDetail.tsx:398 msgid "Hold Build Order" msgstr "" -#: src/pages/build/BuildDetail.tsx:412 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:355 -#: src/pages/sales/ReturnOrderDetail.tsx:354 -#: src/pages/sales/SalesOrderDetail.tsx:387 +#: src/pages/build/BuildDetail.tsx:400 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:364 +#: src/pages/sales/ReturnOrderDetail.tsx:361 +#: src/pages/sales/SalesOrderDetail.tsx:394 msgid "Place this order on hold" msgstr "" -#: src/pages/build/BuildDetail.tsx:413 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:356 -#: src/pages/sales/ReturnOrderDetail.tsx:355 -#: src/pages/sales/SalesOrderDetail.tsx:388 +#: src/pages/build/BuildDetail.tsx:401 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:365 +#: src/pages/sales/ReturnOrderDetail.tsx:362 +#: src/pages/sales/SalesOrderDetail.tsx:395 msgid "Order placed on hold" msgstr "" -#: src/pages/build/BuildDetail.tsx:418 +#: src/pages/build/BuildDetail.tsx:406 msgid "Issue Build Order" msgstr "" -#: src/pages/build/BuildDetail.tsx:420 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:339 -#: src/pages/sales/ReturnOrderDetail.tsx:338 -#: src/pages/sales/SalesOrderDetail.tsx:371 +#: src/pages/build/BuildDetail.tsx:408 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:348 +#: src/pages/sales/ReturnOrderDetail.tsx:345 +#: src/pages/sales/SalesOrderDetail.tsx:378 msgid "Issue this order" msgstr "" -#: src/pages/build/BuildDetail.tsx:421 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:340 -#: src/pages/sales/ReturnOrderDetail.tsx:339 -#: src/pages/sales/SalesOrderDetail.tsx:372 +#: src/pages/build/BuildDetail.tsx:409 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:349 +#: src/pages/sales/ReturnOrderDetail.tsx:346 +#: src/pages/sales/SalesOrderDetail.tsx:379 msgid "Order issued" msgstr "" -#: src/pages/build/BuildDetail.tsx:426 +#: src/pages/build/BuildDetail.tsx:414 msgid "Complete Build Order" msgstr "" -#: src/pages/build/BuildDetail.tsx:428 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:368 -#: src/pages/sales/ReturnOrderDetail.tsx:362 -#: src/pages/sales/SalesOrderDetail.tsx:395 +#: src/pages/build/BuildDetail.tsx:416 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:377 +#: src/pages/sales/ReturnOrderDetail.tsx:369 +#: src/pages/sales/SalesOrderDetail.tsx:402 msgid "Mark this order as complete" msgstr "" -#: src/pages/build/BuildDetail.tsx:429 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:362 -#: src/pages/sales/ReturnOrderDetail.tsx:363 -#: src/pages/sales/SalesOrderDetail.tsx:396 +#: src/pages/build/BuildDetail.tsx:417 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:371 +#: src/pages/sales/ReturnOrderDetail.tsx:370 +#: src/pages/sales/SalesOrderDetail.tsx:403 msgid "Order completed" msgstr "" -#: src/pages/build/BuildDetail.tsx:460 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:391 -#: src/pages/sales/ReturnOrderDetail.tsx:392 -#: src/pages/sales/SalesOrderDetail.tsx:425 +#: src/pages/build/BuildDetail.tsx:448 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:400 +#: src/pages/sales/ReturnOrderDetail.tsx:399 +#: src/pages/sales/SalesOrderDetail.tsx:432 msgid "Issue Order" msgstr "" -#: src/pages/build/BuildDetail.tsx:467 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:398 -#: src/pages/sales/ReturnOrderDetail.tsx:399 -#: src/pages/sales/SalesOrderDetail.tsx:439 +#: src/pages/build/BuildDetail.tsx:455 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:407 +#: src/pages/sales/ReturnOrderDetail.tsx:406 +#: src/pages/sales/SalesOrderDetail.tsx:446 msgid "Complete Order" msgstr "" -#: src/pages/build/BuildDetail.tsx:496 +#: src/pages/build/BuildDetail.tsx:473 msgid "Build Order Actions" msgstr "Bauauftrag-Aktionen" -#: src/pages/build/BuildDetail.tsx:502 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:432 -#: src/pages/sales/ReturnOrderDetail.tsx:433 -#: src/pages/sales/SalesOrderDetail.tsx:474 +#: src/pages/build/BuildDetail.tsx:478 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:429 +#: src/pages/sales/ReturnOrderDetail.tsx:428 +#: src/pages/sales/SalesOrderDetail.tsx:469 msgid "Edit order" msgstr "" -#: src/pages/build/BuildDetail.tsx:506 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:440 -#: src/pages/sales/ReturnOrderDetail.tsx:439 -#: src/pages/sales/SalesOrderDetail.tsx:479 +#: src/pages/build/BuildDetail.tsx:482 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:437 +#: src/pages/sales/ReturnOrderDetail.tsx:434 +#: src/pages/sales/SalesOrderDetail.tsx:474 msgid "Duplicate order" msgstr "" -#: src/pages/build/BuildDetail.tsx:510 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:443 -#: src/pages/sales/ReturnOrderDetail.tsx:444 -#: src/pages/sales/SalesOrderDetail.tsx:482 +#: src/pages/build/BuildDetail.tsx:486 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:440 +#: src/pages/sales/ReturnOrderDetail.tsx:439 +#: src/pages/sales/SalesOrderDetail.tsx:477 msgid "Hold order" msgstr "" -#: src/pages/build/BuildDetail.tsx:515 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:448 -#: src/pages/sales/ReturnOrderDetail.tsx:449 -#: src/pages/sales/SalesOrderDetail.tsx:487 +#: src/pages/build/BuildDetail.tsx:491 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:445 +#: src/pages/sales/ReturnOrderDetail.tsx:444 +#: src/pages/sales/SalesOrderDetail.tsx:482 msgid "Cancel order" msgstr "Bestellung stornieren" @@ -4295,57 +5040,61 @@ msgstr "Bestellung stornieren" #~ msgid "New Build Order" #~ msgstr "New Build Order" -#: src/pages/company/CompanyDetail.tsx:104 +#: src/pages/company/CompanyDetail.tsx:95 +msgid "Website" +msgstr "Webseite" + +#: src/pages/company/CompanyDetail.tsx:103 msgid "Phone Number" msgstr "Telefonnummer" -#: src/pages/company/CompanyDetail.tsx:111 +#: src/pages/company/CompanyDetail.tsx:110 msgid "Email Address" msgstr "E-Mail-Adresse" -#: src/pages/company/CompanyDetail.tsx:121 +#: src/pages/company/CompanyDetail.tsx:120 msgid "Default Currency" msgstr "Standardwährung" -#: src/pages/company/CompanyDetail.tsx:126 +#: src/pages/company/CompanyDetail.tsx:125 #: src/pages/company/SupplierDetail.tsx:8 -#: src/pages/company/SupplierPartDetail.tsx:120 -#: src/pages/company/SupplierPartDetail.tsx:206 -#: src/pages/company/SupplierPartDetail.tsx:351 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:136 -#: src/tables/company/CompanyTable.tsx:100 +#: src/pages/company/SupplierPartDetail.tsx:125 +#: src/pages/company/SupplierPartDetail.tsx:218 +#: src/pages/company/SupplierPartDetail.tsx:340 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:130 +#: src/tables/company/CompanyTable.tsx:101 #: src/tables/part/PartPurchaseOrdersTable.tsx:42 -#: src/tables/purchasing/PurchaseOrderTable.tsx:88 +#: src/tables/purchasing/PurchaseOrderTable.tsx:89 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:36 msgid "Supplier" msgstr "Lieferant" -#: src/pages/company/CompanyDetail.tsx:132 +#: src/pages/company/CompanyDetail.tsx:131 #: src/pages/company/ManufacturerDetail.tsx:8 -#: src/pages/company/ManufacturerPartDetail.tsx:101 -#: src/pages/company/ManufacturerPartDetail.tsx:267 -#: src/pages/company/SupplierPartDetail.tsx:135 -#: src/tables/company/CompanyTable.tsx:105 +#: src/pages/company/ManufacturerPartDetail.tsx:100 +#: src/pages/company/ManufacturerPartDetail.tsx:262 +#: src/pages/company/SupplierPartDetail.tsx:147 +#: src/tables/company/CompanyTable.tsx:106 msgid "Manufacturer" msgstr "Hersteller" -#: src/pages/company/CompanyDetail.tsx:138 +#: src/pages/company/CompanyDetail.tsx:137 #: src/pages/company/CustomerDetail.tsx:8 -#: src/pages/part/pricing/SaleHistoryPanel.tsx:29 -#: src/pages/sales/ReturnOrderDetail.tsx:109 -#: src/pages/sales/SalesOrderDetail.tsx:115 -#: src/pages/stock/StockDetail.tsx:230 -#: src/tables/company/CompanyTable.tsx:110 -#: src/tables/sales/ReturnOrderTable.tsx:78 -#: src/tables/sales/SalesOrderTable.tsx:108 -#: src/tables/stock/StockTrackingTable.tsx:140 +#: src/pages/part/pricing/SaleHistoryPanel.tsx:31 +#: src/pages/sales/ReturnOrderDetail.tsx:101 +#: src/pages/sales/SalesOrderDetail.tsx:110 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:100 +#: src/pages/stock/StockDetail.tsx:271 +#: src/tables/company/CompanyTable.tsx:111 +#: src/tables/sales/ReturnOrderTable.tsx:97 +#: src/tables/sales/SalesOrderTable.tsx:121 +#: src/tables/stock/StockTrackingTable.tsx:144 msgid "Customer" msgstr "Kunde" #: src/pages/company/CompanyDetail.tsx:172 -#: src/tables/stock/StockTrackingTable.tsx:183 -msgid "Details" -msgstr "Details" +msgid "Company Details" +msgstr "" #: src/pages/company/CompanyDetail.tsx:175 #~ msgid "Edit company" @@ -4363,140 +5112,150 @@ msgstr "Zuliefererteile" #~ msgid "Delete company" #~ msgstr "Delete company" -#: src/pages/company/CompanyDetail.tsx:232 +#: src/pages/company/CompanyDetail.tsx:234 msgid "Assigned Stock" msgstr "Zugeordneter Bestand" -#: src/pages/company/CompanyDetail.tsx:290 -#: src/tables/company/CompanyTable.tsx:86 +#: src/pages/company/CompanyDetail.tsx:273 +#: src/tables/company/CompanyTable.tsx:87 msgid "Edit Company" msgstr "Unternehmen bearbeiten" -#: src/pages/company/CompanyDetail.tsx:298 +#: src/pages/company/CompanyDetail.tsx:281 msgid "Delete Company" -msgstr "" +msgstr "Firma löschen" -#: src/pages/company/CompanyDetail.tsx:306 +#: src/pages/company/CompanyDetail.tsx:289 msgid "Company Actions" msgstr "Firmen-Aktionen" -#: src/pages/company/ManufacturerPartDetail.tsx:76 -#: src/pages/company/SupplierPartDetail.tsx:89 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:128 +#: src/pages/company/ManufacturerPartDetail.tsx:74 +#: src/pages/company/SupplierPartDetail.tsx:84 msgid "Internal Part" msgstr "Internes Teil" -#: src/pages/company/ManufacturerPartDetail.tsx:91 -#: src/pages/company/SupplierPartDetail.tsx:103 -msgid "External Link" -msgstr "Externer Link" - -#: src/pages/company/ManufacturerPartDetail.tsx:109 -#: src/pages/company/SupplierPartDetail.tsx:144 -#: src/tables/purchasing/ManufacturerPartTable.tsx:56 +#: src/pages/company/ManufacturerPartDetail.tsx:108 +#: src/pages/company/SupplierPartDetail.tsx:156 +#: src/tables/purchasing/ManufacturerPartTable.tsx:58 msgid "Manufacturer Part Number" msgstr "Teilenummer des Herstellers" -#: src/pages/company/ManufacturerPartDetail.tsx:138 +#: src/pages/company/ManufacturerPartDetail.tsx:125 +#: src/pages/company/SupplierPartDetail.tsx:108 +msgid "External Link" +msgstr "Externer Link" + +#: src/pages/company/ManufacturerPartDetail.tsx:146 +#: src/pages/company/SupplierPartDetail.tsx:215 +#: src/pages/part/PartDetail.tsx:576 +msgid "Part Details" +msgstr "Teil-Details" + +#: src/pages/company/ManufacturerPartDetail.tsx:149 msgid "Manufacturer Details" msgstr "Herstellerdetails" -#: src/pages/company/ManufacturerPartDetail.tsx:147 +#: src/pages/company/ManufacturerPartDetail.tsx:158 msgid "Manufacturer Part Details" msgstr "Herstellerteil Details" -#: src/pages/company/ManufacturerPartDetail.tsx:153 -#: src/pages/part/PartDetail.tsx:532 +#: src/pages/company/ManufacturerPartDetail.tsx:164 +#: src/pages/part/PartDetail.tsx:582 msgid "Parameters" msgstr "Parameter" -#: src/pages/company/ManufacturerPartDetail.tsx:165 -#: src/pages/part/PartDetail.tsx:649 +#: src/pages/company/ManufacturerPartDetail.tsx:176 +#: src/pages/part/PartDetail.tsx:669 #: src/pages/purchasing/PurchasingIndex.tsx:31 msgid "Suppliers" msgstr "Lieferanten" -#: src/pages/company/ManufacturerPartDetail.tsx:208 -#: src/tables/purchasing/ManufacturerPartTable.tsx:84 +#: src/pages/company/ManufacturerPartDetail.tsx:204 +#: src/tables/purchasing/ManufacturerPartTable.tsx:86 msgid "Edit Manufacturer Part" msgstr "Herstellerteil bearbeiten" -#: src/pages/company/ManufacturerPartDetail.tsx:215 -#: src/tables/purchasing/ManufacturerPartTable.tsx:72 -#: src/tables/purchasing/ManufacturerPartTable.tsx:103 +#: src/pages/company/ManufacturerPartDetail.tsx:211 +#: src/tables/purchasing/ManufacturerPartTable.tsx:74 +#: src/tables/purchasing/ManufacturerPartTable.tsx:106 msgid "Add Manufacturer Part" msgstr "Herstellerteil hinzufügen" -#: src/pages/company/ManufacturerPartDetail.tsx:227 -#: src/tables/purchasing/ManufacturerPartTable.tsx:92 +#: src/pages/company/ManufacturerPartDetail.tsx:223 +#: src/tables/purchasing/ManufacturerPartTable.tsx:94 msgid "Delete Manufacturer Part" msgstr "Herstellerteil löschen" -#: src/pages/company/ManufacturerPartDetail.tsx:240 +#: src/pages/company/ManufacturerPartDetail.tsx:236 msgid "Manufacturer Part Actions" msgstr "Herstellerteil Aktionen" -#: src/pages/company/ManufacturerPartDetail.tsx:281 +#: src/pages/company/ManufacturerPartDetail.tsx:276 msgid "ManufacturerPart" msgstr "Herstellerteil" -#: src/pages/company/SupplierPartDetail.tsx:163 -#: src/tables/part/PartPurchaseOrdersTable.tsx:71 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:156 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:197 -#: src/tables/purchasing/SupplierPartTable.tsx:131 +#: src/pages/company/SupplierPartDetail.tsx:99 +msgid "Part Description" +msgstr "Teilebeschreibung" + +#: src/pages/company/SupplierPartDetail.tsx:175 +#: src/tables/part/PartPurchaseOrdersTable.tsx:72 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:162 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:203 +#: src/tables/purchasing/SupplierPartTable.tsx:133 msgid "Pack Quantity" msgstr "Verpackungsmenge" -#: src/pages/company/SupplierPartDetail.tsx:174 +#: src/pages/company/SupplierPartDetail.tsx:186 msgid "Supplier Availability" msgstr "Lieferantenverfügbarkeit" -#: src/pages/company/SupplierPartDetail.tsx:181 +#: src/pages/company/SupplierPartDetail.tsx:193 msgid "Availability Updated" msgstr "Verfügbarkeit aktualisiert" -#: src/pages/company/SupplierPartDetail.tsx:208 +#: src/pages/company/SupplierPartDetail.tsx:220 msgid "Availability" msgstr "Verfügbarkeit" -#: src/pages/company/SupplierPartDetail.tsx:217 +#: src/pages/company/SupplierPartDetail.tsx:229 msgid "Supplier Part Details" msgstr "Zuliefererteil Details" -#: src/pages/company/SupplierPartDetail.tsx:223 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:296 +#: src/pages/company/SupplierPartDetail.tsx:235 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:320 msgid "Received Stock" msgstr "Empfangene Lagerartikel" -#: src/pages/company/SupplierPartDetail.tsx:247 -#: src/pages/part/PartPricingPanel.tsx:111 -#: src/pages/part/pricing/PricingOverviewPanel.tsx:121 +#: src/pages/company/SupplierPartDetail.tsx:259 +#: src/pages/part/PartPricingPanel.tsx:116 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:195 msgid "Supplier Pricing" msgstr "Zulieferer-Preise" -#: src/pages/company/SupplierPartDetail.tsx:294 +#: src/pages/company/SupplierPartDetail.tsx:284 msgid "Supplier Part Actions" msgstr "Zuliefererteil Aktionen" -#: src/pages/company/SupplierPartDetail.tsx:319 -#: src/tables/purchasing/SupplierPartTable.tsx:210 +#: src/pages/company/SupplierPartDetail.tsx:308 +#: src/tables/purchasing/SupplierPartTable.tsx:213 msgid "Edit Supplier Part" msgstr "Zuliefererteil bearbeiten" -#: src/pages/company/SupplierPartDetail.tsx:327 -#: src/tables/purchasing/SupplierPartTable.tsx:218 +#: src/pages/company/SupplierPartDetail.tsx:316 +#: src/tables/purchasing/SupplierPartTable.tsx:221 msgid "Delete Supplier Part" msgstr "Zuliefererteil entfernen" -#: src/pages/company/SupplierPartDetail.tsx:335 -#: src/tables/purchasing/SupplierPartTable.tsx:163 +#: src/pages/company/SupplierPartDetail.tsx:324 +#: src/tables/purchasing/SupplierPartTable.tsx:165 msgid "Add Supplier Part" msgstr "Zuliefererteil hinzufügen" #: src/pages/part/CategoryDetail.tsx:93 -#: src/pages/stock/LocationDetail.tsx:101 -#: src/tables/settings/ErrorTable.tsx:36 +#: src/pages/stock/LocationDetail.tsx:95 +#: src/tables/settings/ErrorTable.tsx:63 +#: src/tables/settings/ErrorTable.tsx:108 msgid "Path" msgstr "Pfad" @@ -4504,357 +5263,357 @@ msgstr "Pfad" msgid "Parent Category" msgstr "Übergeordnete Kategorie" -#: src/pages/part/CategoryDetail.tsx:126 +#: src/pages/part/CategoryDetail.tsx:132 msgid "Subcategories" msgstr "Unterkategorien" -#: src/pages/part/CategoryDetail.tsx:133 -#: src/pages/stock/LocationDetail.tsx:141 -#: src/tables/part/PartCategoryTable.tsx:73 +#: src/pages/part/CategoryDetail.tsx:139 +#: src/pages/stock/LocationDetail.tsx:135 +#: src/tables/part/PartCategoryTable.tsx:85 #: src/tables/stock/StockLocationTable.tsx:49 msgid "Structural" msgstr "Strukturell" -#: src/pages/part/CategoryDetail.tsx:139 +#: src/pages/part/CategoryDetail.tsx:145 msgid "Parent default location" msgstr "Übergeordneter Standard-Standort" -#: src/pages/part/CategoryDetail.tsx:146 +#: src/pages/part/CategoryDetail.tsx:152 msgid "Default location" msgstr "Standard-Lagerort" -#: src/pages/part/CategoryDetail.tsx:157 +#: src/pages/part/CategoryDetail.tsx:163 msgid "Top level part category" msgstr "Oberste Teile-Kategorie" -#: src/pages/part/CategoryDetail.tsx:167 -#: src/pages/part/CategoryDetail.tsx:221 -#: src/tables/part/PartCategoryTable.tsx:102 +#: src/pages/part/CategoryDetail.tsx:173 +#: src/pages/part/CategoryDetail.tsx:226 +#: src/tables/part/PartCategoryTable.tsx:118 msgid "Edit Part Category" msgstr "Teilekategorie bearbeiten" -#: src/pages/part/CategoryDetail.tsx:180 -#: src/pages/stock/LocationDetail.tsx:233 +#: src/pages/part/CategoryDetail.tsx:186 +#: src/pages/stock/LocationDetail.tsx:227 msgid "Delete items" msgstr "Elemente löschen" -#: src/pages/part/CategoryDetail.tsx:188 -#: src/pages/part/CategoryDetail.tsx:226 +#: src/pages/part/CategoryDetail.tsx:194 +#: src/pages/part/CategoryDetail.tsx:231 msgid "Delete Part Category" msgstr "Teile-Kategorie löschen" -#: src/pages/part/CategoryDetail.tsx:191 +#: src/pages/part/CategoryDetail.tsx:197 msgid "Parts Action" msgstr "Teile Aktionen" -#: src/pages/part/CategoryDetail.tsx:192 +#: src/pages/part/CategoryDetail.tsx:198 msgid "Action for parts in this category" msgstr "Aktion für Teile in dieser Kategorie" -#: src/pages/part/CategoryDetail.tsx:197 +#: src/pages/part/CategoryDetail.tsx:203 msgid "Child Categories Action" msgstr "Unterkategorien-Aktion" -#: src/pages/part/CategoryDetail.tsx:198 +#: src/pages/part/CategoryDetail.tsx:204 msgid "Action for child categories in this category" msgstr "Aktion für untergeordnete Kategorien in dieser Kategorie" -#: src/pages/part/CategoryDetail.tsx:216 +#: src/pages/part/CategoryDetail.tsx:222 msgid "Category Actions" msgstr "Kategorieaktionen" -#: src/pages/part/CategoryDetail.tsx:238 +#: src/pages/part/CategoryDetail.tsx:243 msgid "Category Details" msgstr "Kategorie-Details" -#: src/pages/part/PartDetail.tsx:163 +#: src/pages/part/PartAllocationPanel.tsx:23 +#: src/pages/stock/StockDetail.tsx:443 +#: src/tables/part/PartTable.tsx:99 +msgid "Build Order Allocations" +msgstr "Bauauftragszuweisungen" + +#: src/pages/part/PartAllocationPanel.tsx:40 +#: src/pages/stock/StockDetail.tsx:458 +#: src/tables/part/PartTable.tsx:108 +msgid "Sales Order Allocations" +msgstr "Verkaufsauftragszuweisungen" + +#: src/pages/part/PartDetail.tsx:184 msgid "Variant of" msgstr "Variante von" -#: src/pages/part/PartDetail.tsx:170 +#: src/pages/part/PartDetail.tsx:191 msgid "Revision of" -msgstr "" +msgstr "Revision von" -#: src/pages/part/PartDetail.tsx:177 -#: src/tables/stock/StockItemTable.tsx:58 +#: src/pages/part/PartDetail.tsx:198 +#: src/tables/stock/StockItemTable.tsx:59 msgid "Revision" msgstr "Version" -#: src/pages/part/PartDetail.tsx:184 +#: src/pages/part/PartDetail.tsx:205 #: src/tables/notifications/NotificationsTable.tsx:31 #: src/tables/part/PartCategoryTemplateTable.tsx:67 msgid "Category" msgstr "Kategorie" -#: src/pages/part/PartDetail.tsx:190 +#: src/pages/part/PartDetail.tsx:211 msgid "Default Location" msgstr "Standard Lagerort" -#: src/pages/part/PartDetail.tsx:197 +#: src/pages/part/PartDetail.tsx:218 msgid "Category Default Location" msgstr "Standard-Lagerort der Kategorie" -#: src/pages/part/PartDetail.tsx:204 +#: src/pages/part/PartDetail.tsx:225 #: src/tables/purchasing/ManufacturerPartParameterTable.tsx:44 msgid "Units" msgstr "Einheiten" -#: src/pages/part/PartDetail.tsx:211 -#: src/tables/settings/PendingTasksTable.tsx:42 +#: src/pages/part/PartDetail.tsx:232 +#: src/tables/settings/PendingTasksTable.tsx:46 msgid "Keywords" msgstr "Schlüsselwörter" -#: src/pages/part/PartDetail.tsx:218 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:186 -#: src/pages/sales/ReturnOrderDetail.tsx:165 -#: src/pages/sales/SalesOrderDetail.tsx:174 -msgid "Link" -msgstr "Link" - -#: src/pages/part/PartDetail.tsx:236 +#: src/pages/part/PartDetail.tsx:257 #: src/tables/bom/BomTable.tsx:320 -#: src/tables/build/BuildLineTable.tsx:155 +#: src/tables/build/BuildLineTable.tsx:286 #: src/tables/part/PartTable.tsx:288 -#: src/tables/sales/SalesOrderLineItemTable.tsx:103 +#: src/tables/sales/SalesOrderLineItemTable.tsx:111 msgid "Available Stock" msgstr "Verfügbarer Bestand" -#: src/pages/part/PartDetail.tsx:243 +#: src/pages/part/PartDetail.tsx:264 msgid "Variant Stock" msgstr "" -#: src/pages/part/PartDetail.tsx:251 +#: src/pages/part/PartDetail.tsx:272 msgid "Minimum Stock" msgstr "Minimaler Bestand" -#: src/pages/part/PartDetail.tsx:257 +#: src/pages/part/PartDetail.tsx:278 #: src/tables/bom/BomTable.tsx:237 -#: src/tables/build/BuildLineTable.tsx:117 -#: src/tables/sales/SalesOrderLineItemTable.tsx:141 +#: src/tables/build/BuildLineTable.tsx:248 +#: src/tables/sales/SalesOrderLineItemTable.tsx:149 msgid "On order" msgstr "Bestellt" -#: src/pages/part/PartDetail.tsx:266 +#: src/pages/part/PartDetail.tsx:285 +msgid "Required for Orders" +msgstr "" + +#: src/pages/part/PartDetail.tsx:294 msgid "Allocated to Build Orders" msgstr "Bauaufträgen zugeordnet" -#: src/pages/part/PartDetail.tsx:274 +#: src/pages/part/PartDetail.tsx:305 msgid "Allocated to Sales Orders" msgstr "Aufträgen zugeordnet" -#: src/pages/part/PartDetail.tsx:281 -#: src/tables/bom/BomTable.tsx:261 -#: src/tables/bom/BomTable.tsx:293 -msgid "Can Build" -msgstr "Herstellbar" - -#: src/pages/part/PartDetail.tsx:288 -#: src/tables/bom/BomTable.tsx:245 -#: src/tables/part/PartTable.tsx:92 -msgid "Building" -msgstr "Gebäude" - -#: src/pages/part/PartDetail.tsx:302 -#: src/pages/part/PartDetail.tsx:873 -#: src/tables/part/ParametricPartTable.tsx:228 -#: src/tables/part/PartTable.tsx:184 -msgid "Locked" -msgstr "Gesperrt" - -#: src/pages/part/PartDetail.tsx:308 -msgid "Template Part" -msgstr "Vorlagenteil" - #: src/pages/part/PartDetail.tsx:310 #~ msgid "Edit part" #~ msgstr "Edit part" -#: src/pages/part/PartDetail.tsx:313 -#: src/tables/bom/BomTable.tsx:315 -msgid "Assembled Part" -msgstr "Baugruppe" +#: src/pages/part/PartDetail.tsx:315 +#: src/tables/bom/BomTable.tsx:261 +#: src/tables/bom/BomTable.tsx:293 +msgid "Can Build" +msgstr "Herstellbar" -#: src/pages/part/PartDetail.tsx:318 -msgid "Component Part" -msgstr "Komponente" +#: src/pages/part/PartDetail.tsx:322 +#: src/pages/part/PartDetail.tsx:905 +#: src/pages/stock/StockDetail.tsx:766 +#: src/tables/build/BuildOrderTestTable.tsx:220 +#: src/tables/stock/StockItemTable.tsx:334 +msgid "In Production" +msgstr "In Produktion" #: src/pages/part/PartDetail.tsx:322 #~ msgid "Duplicate part" #~ msgstr "Duplicate part" -#: src/pages/part/PartDetail.tsx:323 -#: src/tables/bom/BomTable.tsx:305 -msgid "Testable Part" -msgstr "" - #: src/pages/part/PartDetail.tsx:327 #~ msgid "Delete part" #~ msgstr "Delete part" -#: src/pages/part/PartDetail.tsx:329 +#: src/pages/part/PartDetail.tsx:336 +#: src/tables/part/ParametricPartTable.tsx:228 +#: src/tables/part/PartTable.tsx:184 +msgid "Locked" +msgstr "Gesperrt" + +#: src/pages/part/PartDetail.tsx:342 +msgid "Template Part" +msgstr "Vorlagenteil" + +#: src/pages/part/PartDetail.tsx:347 +#: src/tables/bom/BomTable.tsx:315 +msgid "Assembled Part" +msgstr "Baugruppe" + +#: src/pages/part/PartDetail.tsx:352 +msgid "Component Part" +msgstr "Komponente" + +#: src/pages/part/PartDetail.tsx:357 +#: src/tables/bom/BomTable.tsx:305 +msgid "Testable Part" +msgstr "" + +#: src/pages/part/PartDetail.tsx:363 #: src/tables/bom/BomTable.tsx:310 msgid "Trackable Part" msgstr "Nachverfolgbares Teil" -#: src/pages/part/PartDetail.tsx:334 +#: src/pages/part/PartDetail.tsx:368 msgid "Purchaseable Part" msgstr "Käufliches Teil" -#: src/pages/part/PartDetail.tsx:339 +#: src/pages/part/PartDetail.tsx:374 msgid "Saleable Part" msgstr "Verkäufliches Teil" -#: src/pages/part/PartDetail.tsx:344 +#: src/pages/part/PartDetail.tsx:379 msgid "Virtual Part" msgstr "Virtuelles Teil" -#: src/pages/part/PartDetail.tsx:352 -#: src/tables/ColumnRenderers.tsx:220 +#: src/pages/part/PartDetail.tsx:393 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:215 +#: src/pages/sales/ReturnOrderDetail.tsx:185 +#: src/pages/sales/SalesOrderDetail.tsx:197 +#: src/tables/ColumnRenderers.tsx:234 msgid "Creation Date" msgstr "Erstelldatum" -#: src/pages/part/PartDetail.tsx:357 +#: src/pages/part/PartDetail.tsx:398 msgid "Created By" msgstr "Erstellt von" -#: src/pages/part/PartDetail.tsx:372 +#: src/pages/part/PartDetail.tsx:413 msgid "Default Supplier" msgstr "Standard Zulieferer" -#: src/pages/part/PartDetail.tsx:383 -#: src/pages/part/pricing/BomPricingPanel.tsx:79 +#: src/pages/part/PartDetail.tsx:424 +#: src/pages/part/pricing/BomPricingPanel.tsx:113 #: src/pages/part/pricing/VariantPricingPanel.tsx:95 #: src/tables/part/PartTable.tsx:161 msgid "Price Range" msgstr "Preisspanne" -#: src/pages/part/PartDetail.tsx:423 -#: src/pages/stock/StockDetail.tsx:135 +#: src/pages/part/PartDetail.tsx:462 +msgid "Latest Serial Number" +msgstr "" + +#: src/pages/part/PartDetail.tsx:472 +#: src/pages/stock/StockDetail.tsx:151 msgid "Last Stocktake" msgstr "Letzte Inventur" -#: src/pages/part/PartDetail.tsx:462 +#: src/pages/part/PartDetail.tsx:511 msgid "Stocktake By" msgstr "Inventur durch" -#: src/pages/part/PartDetail.tsx:526 -msgid "Part Details" -msgstr "Teil-Details" - -#: src/pages/part/PartDetail.tsx:557 +#: src/pages/part/PartDetail.tsx:611 msgid "Variants" msgstr "Varianten" -#: src/pages/part/PartDetail.tsx:564 -#: src/pages/stock/StockDetail.tsx:307 +#: src/pages/part/PartDetail.tsx:618 +#: src/pages/stock/StockDetail.tsx:430 msgid "Allocations" msgstr "Ferienguthaben/Freitage" -#: src/pages/part/PartDetail.tsx:575 -#: src/pages/stock/StockDetail.tsx:318 -#: src/tables/part/PartTable.tsx:99 -msgid "Build Order Allocations" -msgstr "Bauauftragszuweisungen" - -#: src/pages/part/PartDetail.tsx:590 -#: src/pages/stock/StockDetail.tsx:333 -#: src/tables/part/PartTable.tsx:108 -msgid "Sales Order Allocations" -msgstr "Verkaufsauftragszuweisungen" - -#: src/pages/part/PartDetail.tsx:607 +#: src/pages/part/PartDetail.tsx:625 msgid "Bill of Materials" msgstr "Stückliste" -#: src/pages/part/PartDetail.tsx:623 +#: src/pages/part/PartDetail.tsx:643 msgid "Used In" msgstr "Verwendet in" -#: src/pages/part/PartDetail.tsx:630 +#: src/pages/part/PartDetail.tsx:650 msgid "Part Pricing" msgstr "Teilbepreisung" -#: src/pages/part/PartDetail.tsx:636 +#: src/pages/part/PartDetail.tsx:656 #: src/pages/purchasing/PurchasingIndex.tsx:42 msgid "Manufacturers" msgstr "Hersteller" -#: src/pages/part/PartDetail.tsx:676 +#: src/pages/part/PartDetail.tsx:722 msgid "Scheduling" msgstr "Terminierung" -#: src/pages/part/PartDetail.tsx:688 +#: src/pages/part/PartDetail.tsx:729 msgid "Test Templates" msgstr "Testvorlagen" -#: src/pages/part/PartDetail.tsx:715 +#: src/pages/part/PartDetail.tsx:756 msgid "Related Parts" msgstr "Zugehörige Teile" -#: src/pages/part/PartDetail.tsx:849 -#: src/pages/stock/StockDetail.tsx:156 -#: src/pages/stock/StockDetail.tsx:593 -#: src/tables/build/BuildLineTable.tsx:48 +#: src/pages/part/PartDetail.tsx:881 +#: src/pages/stock/StockDetail.tsx:172 +#: src/pages/stock/StockDetail.tsx:783 +#: src/tables/build/BuildLineTable.tsx:179 #: src/tables/part/PartTable.tsx:117 -#: src/tables/stock/StockItemTable.tsx:177 -#: src/tables/stock/StockItemTable.tsx:310 +#: src/tables/stock/StockItemTable.tsx:166 +#: src/tables/stock/StockItemTable.tsx:314 msgid "Available" msgstr "Verfügbar" -#: src/pages/part/PartDetail.tsx:855 +#: src/pages/part/PartDetail.tsx:887 msgid "No Stock" msgstr "Kein Bestand" -#: src/pages/part/PartDetail.tsx:861 +#: src/pages/part/PartDetail.tsx:893 +#: src/tables/part/PartTestTemplateTable.tsx:106 +#: src/tables/stock/StockItemTestResultTable.tsx:383 +msgid "Required" +msgstr "Erforderlich" + +#: src/pages/part/PartDetail.tsx:899 #: src/tables/bom/BomTable.tsx:325 #: src/tables/part/PartTable.tsx:86 msgid "On Order" msgstr "In Bestellung" -#: src/pages/part/PartDetail.tsx:867 -#: src/pages/stock/StockDetail.tsx:576 -#: src/tables/build/BuildOrderTestTable.tsx:219 -#: src/tables/stock/StockItemTable.tsx:330 -msgid "In Production" -msgstr "In Produktion" - -#: src/pages/part/PartDetail.tsx:892 +#: src/pages/part/PartDetail.tsx:924 msgid "Edit Part" msgstr "Teil bearbeiten" -#: src/pages/part/PartDetail.tsx:927 +#: src/pages/part/PartDetail.tsx:959 #: src/tables/part/PartTable.tsx:331 -#: src/tables/part/PartTable.tsx:342 +#: src/tables/part/PartTable.tsx:343 msgid "Add Part" msgstr "Teil hinzufügen" -#: src/pages/part/PartDetail.tsx:941 +#: src/pages/part/PartDetail.tsx:973 msgid "Delete Part" msgstr "Teil löschen" -#: src/pages/part/PartDetail.tsx:950 +#: src/pages/part/PartDetail.tsx:982 msgid "Deleting this part cannot be reversed" msgstr "Das Löschen dieses Teils kann nicht rückgängig gemacht werden" -#: src/pages/part/PartDetail.tsx:999 -#: src/pages/stock/LocationDetail.tsx:324 -#: src/tables/stock/StockItemTable.tsx:444 +#: src/pages/part/PartDetail.tsx:1021 +#: src/pages/stock/LocationDetail.tsx:310 +#: src/tables/stock/StockItemTable.tsx:449 msgid "Stock Actions" msgstr "Lager-Aktionen" -#: src/pages/part/PartDetail.tsx:1007 +#: src/pages/part/PartDetail.tsx:1029 msgid "Count part stock" msgstr "Bestand zählen" -#: src/pages/part/PartDetail.tsx:1018 +#: src/pages/part/PartDetail.tsx:1040 msgid "Transfer part stock" msgstr "Bestand übertragen" -#: src/pages/part/PartDetail.tsx:1027 +#: src/pages/part/PartDetail.tsx:1049 msgid "Part Actions" msgstr "Teile-Aktionen" -#: src/pages/part/PartDetail.tsx:1087 +#: src/pages/part/PartDetail.tsx:1113 msgid "Select Part Revision" msgstr "" @@ -4862,113 +5621,214 @@ msgstr "" #~ msgid "Categories" #~ msgstr "Categories" -#: src/pages/part/PartPricingPanel.tsx:68 +#: src/pages/part/PartPricingPanel.tsx:72 msgid "No pricing data found for this part." msgstr "Keine Preisdaten für diesen Teil gefunden." -#: src/pages/part/PartPricingPanel.tsx:82 -#: src/pages/part/pricing/PricingOverviewPanel.tsx:190 +#: src/pages/part/PartPricingPanel.tsx:87 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:293 msgid "Pricing Overview" msgstr "Preisübersicht" -#: src/pages/part/PartPricingPanel.tsx:88 +#: src/pages/part/PartPricingPanel.tsx:93 msgid "Purchase History" msgstr "Kaufhistorie" -#: src/pages/part/PartPricingPanel.tsx:102 -#: src/pages/part/pricing/PricingOverviewPanel.tsx:100 +#: src/pages/part/PartPricingPanel.tsx:107 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:174 msgid "Internal Pricing" msgstr "Interne Preise" -#: src/pages/part/PartPricingPanel.tsx:120 -#: src/pages/part/pricing/PricingOverviewPanel.tsx:107 +#: src/pages/part/PartPricingPanel.tsx:125 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:181 msgid "BOM Pricing" msgstr "Stücklisten Preise" -#: src/pages/part/PartPricingPanel.tsx:127 -#: src/pages/part/pricing/PricingOverviewPanel.tsx:128 +#: src/pages/part/PartPricingPanel.tsx:132 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:202 msgid "Variant Pricing" msgstr "Varianten Preise" -#: src/pages/part/PartPricingPanel.tsx:139 -#: src/pages/part/pricing/PricingOverviewPanel.tsx:135 +#: src/pages/part/PartPricingPanel.tsx:144 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:209 msgid "Sale Pricing" msgstr "Verkaufs Preise" -#: src/pages/part/PartPricingPanel.tsx:146 -#: src/pages/part/pricing/PricingOverviewPanel.tsx:142 +#: src/pages/part/PartPricingPanel.tsx:151 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:216 msgid "Sale History" msgstr "Verkaufshistorie" -#: src/pages/part/pricing/BomPricingPanel.tsx:58 -#: src/pages/part/pricing/BomPricingPanel.tsx:138 -#: src/tables/ColumnRenderers.tsx:262 +#: src/pages/part/PartSchedulingDetail.tsx:47 +#: src/pages/part/PartSchedulingDetail.tsx:299 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:156 +msgid "Maximum" +msgstr "Maximum" + +#: src/pages/part/PartSchedulingDetail.tsx:50 +#: src/pages/part/PartSchedulingDetail.tsx:289 +msgid "Scheduled" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:53 +#: src/pages/part/PartSchedulingDetail.tsx:294 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:144 +msgid "Minimum" +msgstr "Minimum" + +#: src/pages/part/PartSchedulingDetail.tsx:68 +msgid "Order" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:92 +msgid "Quantity is speculative" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:101 +msgid "No date available for provided quantity" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:105 +msgid "Date is in the past" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:112 +msgid "Scheduled Quantity" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:240 +msgid "No information available" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:241 +msgid "There is no scheduling information available for the selected part" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:276 +msgid "Expected Quantity" +msgstr "Erwartete Menge" + +#: src/pages/part/PartStocktakeDetail.tsx:63 +#: src/tables/FilterSelectDrawer.tsx:167 +#: src/tables/FilterSelectDrawer.tsx:174 +#: src/tables/build/BuildOrderTestTable.tsx:135 +#: src/tables/purchasing/ManufacturerPartParameterTable.tsx:38 +#: src/tables/stock/StockItemTestResultTable.tsx:192 +msgid "Value" +msgstr "Wert" + +#: src/pages/part/PartStocktakeDetail.tsx:82 +msgid "Edit Stocktake Entry" +msgstr "Inventureintrag bearbeiten" + +#: src/pages/part/PartStocktakeDetail.tsx:90 +msgid "Delete Stocktake Entry" +msgstr "Inventureintrag löschen" + +#: src/pages/part/PartStocktakeDetail.tsx:96 +#: src/tables/settings/StocktakeReportTable.tsx:69 +msgid "Generate Stocktake Report" +msgstr "Inventurbericht erstellen" + +#: src/pages/part/PartStocktakeDetail.tsx:101 +#: src/tables/settings/StocktakeReportTable.tsx:71 +msgid "Stocktake report scheduled" +msgstr "Inventurbericht geplant" + +#: src/pages/part/PartStocktakeDetail.tsx:119 +#: src/pages/part/PartStocktakeDetail.tsx:235 +#: src/pages/stock/StockDetail.tsx:303 +#: src/tables/stock/StockItemTable.tsx:249 +msgid "Stock Value" +msgstr "" + +#: src/pages/part/PartStocktakeDetail.tsx:139 +#: src/tables/settings/StocktakeReportTable.tsx:77 +msgid "New Stocktake Report" +msgstr "Neuer Inventurbericht" + +#: src/pages/part/PartStocktakeDetail.tsx:258 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:295 +msgid "Minimum Value" +msgstr "Minimaler Wert" + +#: src/pages/part/PartStocktakeDetail.tsx:264 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:296 +msgid "Maximum Value" +msgstr "Maximaler Wert" + +#: src/pages/part/pricing/BomPricingPanel.tsx:87 +#: src/pages/part/pricing/BomPricingPanel.tsx:177 +#: src/tables/ColumnRenderers.tsx:276 #: src/tables/bom/BomTable.tsx:185 #: src/tables/general/ExtraLineItemTable.tsx:64 -#: src/tables/purchasing/PurchaseOrderTable.tsx:112 -#: src/tables/sales/ReturnOrderTable.tsx:104 -#: src/tables/sales/SalesOrderLineItemTable.tsx:89 -#: src/tables/sales/SalesOrderTable.tsx:136 +#: src/tables/purchasing/PurchaseOrderTable.tsx:113 +#: src/tables/sales/ReturnOrderTable.tsx:127 +#: src/tables/sales/SalesOrderLineItemTable.tsx:97 +#: src/tables/sales/SalesOrderTable.tsx:149 msgid "Total Price" msgstr "Gesamtpreis" -#: src/pages/part/pricing/BomPricingPanel.tsx:78 -#: src/pages/part/pricing/BomPricingPanel.tsx:102 +#: src/pages/part/pricing/BomPricingPanel.tsx:112 +#: src/pages/part/pricing/BomPricingPanel.tsx:141 #: src/tables/bom/UsedInTable.tsx:49 +#: src/tables/build/BuildLineTable.tsx:296 #: src/tables/part/PartTable.tsx:202 msgid "Component" msgstr "Komponente" -#: src/pages/part/pricing/BomPricingPanel.tsx:81 -#: src/pages/part/pricing/VariantPricingPanel.tsx:37 -#: src/pages/part/pricing/VariantPricingPanel.tsx:97 -msgid "Minimum Price" -msgstr "Niedrigster Preis" - -#: src/pages/part/pricing/BomPricingPanel.tsx:82 -#: src/pages/part/pricing/VariantPricingPanel.tsx:45 -#: src/pages/part/pricing/VariantPricingPanel.tsx:98 -msgid "Maximum Price" -msgstr "Höchster Preis" - #: src/pages/part/pricing/BomPricingPanel.tsx:112 #~ msgid "Minimum Total Price" #~ msgstr "Minimum Total Price" +#: src/pages/part/pricing/BomPricingPanel.tsx:115 +#: src/pages/part/pricing/VariantPricingPanel.tsx:37 +#: src/pages/part/pricing/VariantPricingPanel.tsx:97 +msgid "Minimum Price" +msgstr "Niedrigster Preis" + +#: src/pages/part/pricing/BomPricingPanel.tsx:116 +#: src/pages/part/pricing/VariantPricingPanel.tsx:45 +#: src/pages/part/pricing/VariantPricingPanel.tsx:98 +msgid "Maximum Price" +msgstr "Höchster Preis" + #: src/pages/part/pricing/BomPricingPanel.tsx:117 #~ msgid "Maximum Total Price" #~ msgstr "Maximum Total Price" -#: src/pages/part/pricing/BomPricingPanel.tsx:129 -#: src/pages/part/pricing/PriceBreakPanel.tsx:172 -#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:67 -#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:128 -#: src/pages/part/pricing/SupplierPricingPanel.tsx:62 +#: src/pages/part/pricing/BomPricingPanel.tsx:168 +#: src/pages/part/pricing/PriceBreakPanel.tsx:173 +#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:70 +#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:125 +#: src/pages/part/pricing/SupplierPricingPanel.tsx:66 +#: src/pages/stock/StockDetail.tsx:291 #: src/tables/bom/BomTable.tsx:176 #: src/tables/general/ExtraLineItemTable.tsx:56 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:223 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:225 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:92 +#: src/tables/stock/StockItemTable.tsx:239 msgid "Unit Price" msgstr "Preis pro Einheit" -#: src/pages/part/pricing/BomPricingPanel.tsx:154 +#: src/pages/part/pricing/BomPricingPanel.tsx:193 #: src/pages/part/pricing/VariantPricingPanel.tsx:53 -#: src/tables/purchasing/SupplierPartTable.tsx:148 +#: src/tables/purchasing/SupplierPartTable.tsx:150 msgid "Updated" msgstr "Aktualisiert" -#: src/pages/part/pricing/BomPricingPanel.tsx:219 +#: src/pages/part/pricing/BomPricingPanel.tsx:258 msgid "Pie Chart" msgstr "Kuchendiagramm" -#: src/pages/part/pricing/BomPricingPanel.tsx:220 +#: src/pages/part/pricing/BomPricingPanel.tsx:259 msgid "Bar Chart" msgstr "Balkendiagramm" #: src/pages/part/pricing/PriceBreakPanel.tsx:58 -#: src/pages/part/pricing/PriceBreakPanel.tsx:110 +#: src/pages/part/pricing/PriceBreakPanel.tsx:111 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:142 -#: src/tables/purchasing/SupplierPriceBreakTable.tsx:168 +#: src/tables/purchasing/SupplierPriceBreakTable.tsx:169 msgid "Add Price Break" msgstr "Preisstaffel hinzufügen" @@ -4986,47 +5846,71 @@ msgstr "Staffelpreis löschen" msgid "Price Break" msgstr "Preisstaffel" -#: src/pages/part/pricing/PriceBreakPanel.tsx:170 +#: src/pages/part/pricing/PriceBreakPanel.tsx:171 msgid "Price" msgstr "Preis" -#: src/pages/part/pricing/PricingOverviewPanel.tsx:51 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:68 +msgid "Refreshing pricing data" +msgstr "Aktualisiere Preisinformationen" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:88 +msgid "Pricing data updated" +msgstr "Preisinformationen aktualisiert" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:95 +msgid "Failed to update pricing data" +msgstr "Aktualisierung der Preisinformationen fehlgeschlagen" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:104 +msgid "Edit Pricing" +msgstr "Preis bearbeiten" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:125 msgid "Pricing Category" msgstr "Preiskategorie" -#: src/pages/part/pricing/PricingOverviewPanel.tsx:70 -msgid "Minimum" -msgstr "Minimum" - -#: src/pages/part/pricing/PricingOverviewPanel.tsx:82 -msgid "Maximum" -msgstr "Maximum" - -#: src/pages/part/pricing/PricingOverviewPanel.tsx:114 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:188 msgid "Purchase Pricing" msgstr "Einkaufs Preise" -#: src/pages/part/pricing/PricingOverviewPanel.tsx:149 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:223 msgid "Override Pricing" msgstr "Preise überschreiben" -#: src/pages/part/pricing/PricingOverviewPanel.tsx:156 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:230 msgid "Overall Pricing" msgstr "Gesamt Preise" -#: src/pages/part/pricing/PricingOverviewPanel.tsx:175 -#: src/pages/stock/StockDetail.tsx:129 -#: src/tables/stock/StockItemTable.tsx:240 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:249 +#: src/pages/stock/StockDetail.tsx:145 +#: src/tables/stock/StockItemTable.tsx:275 msgid "Last Updated" msgstr "Zuletzt aktualisiert" -#: src/pages/part/pricing/PricingOverviewPanel.tsx:192 -msgid "Minimum Value" -msgstr "Minimaler Wert" +#: src/pages/part/pricing/PricingOverviewPanel.tsx:253 +msgid "Pricing Not Set" +msgstr "Preis nicht festgelegt" -#: src/pages/part/pricing/PricingOverviewPanel.tsx:193 -msgid "Maximum Value" -msgstr "Maximaler Wert" +#: src/pages/part/pricing/PricingOverviewPanel.tsx:254 +msgid "Pricing data has not been calculated for this part" +msgstr "Preisdaten für dieses Teil wurden nicht berechnet" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:258 +msgid "Pricing Actions" +msgstr "Preisaktionen" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:261 +msgid "Refresh" +msgstr "Aktualisieren" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:262 +msgid "Refresh pricing data" +msgstr "Preisinformationen aktualisieren" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:277 +msgid "Edit pricing data" +msgstr "Preisinformationen bearbeiten" #: src/pages/part/pricing/PricingPanel.tsx:24 msgid "No data available" @@ -5044,28 +5928,20 @@ msgstr "Keine Preisdaten verfügbar" msgid "Loading pricing data" msgstr "Lade Preisdaten" -#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:40 -#: src/pages/part/pricing/SaleHistoryPanel.tsx:36 -#: src/tables/ColumnRenderers.tsx:201 -#: src/tables/build/BuildOrderTestTable.tsx:150 -#: src/tables/plugin/PluginListTable.tsx:139 -msgid "Date" -msgstr "Datum" - #: src/pages/part/pricing/PurchaseHistoryPanel.tsx:47 msgid "Purchase Price" msgstr "Einkaufspreis" -#: src/pages/part/pricing/SaleHistoryPanel.tsx:22 -msgid "Sale Order" -msgstr "Auftrag" +#: src/pages/part/pricing/SaleHistoryPanel.tsx:24 +#~ msgid "Sale Order" +#~ msgstr "Sale Order" -#: src/pages/part/pricing/SaleHistoryPanel.tsx:42 -#: src/pages/part/pricing/SaleHistoryPanel.tsx:92 +#: src/pages/part/pricing/SaleHistoryPanel.tsx:44 +#: src/pages/part/pricing/SaleHistoryPanel.tsx:87 msgid "Sale Price" msgstr "Verkaufspreis" -#: src/pages/part/pricing/SupplierPricingPanel.tsx:65 +#: src/pages/part/pricing/SupplierPricingPanel.tsx:69 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:83 msgid "Supplier Price" msgstr "Lieferant Preis" @@ -5075,23 +5951,23 @@ msgstr "Lieferant Preis" msgid "Variant Part" msgstr "Variantenteil" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:93 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:87 msgid "Edit Purchase Order" msgstr "Bestellung bearbeiten" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:102 -#: src/tables/purchasing/PurchaseOrderTable.tsx:128 -#: src/tables/purchasing/PurchaseOrderTable.tsx:140 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:96 +#: src/tables/purchasing/PurchaseOrderTable.tsx:129 +#: src/tables/purchasing/PurchaseOrderTable.tsx:142 msgid "Add Purchase Order" msgstr "Bestellung hinzufügen" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:127 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:121 msgid "Supplier Reference" msgstr "Lieferanten-Referenz" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:158 -#: src/pages/sales/ReturnOrderDetail.tsx:137 -#: src/pages/sales/SalesOrderDetail.tsx:137 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:152 +#: src/pages/sales/ReturnOrderDetail.tsx:129 +#: src/pages/sales/SalesOrderDetail.tsx:132 msgid "Completed Line Items" msgstr "Abgeschlossene Positionen" @@ -5101,91 +5977,112 @@ msgstr "Abgeschlossene Positionen" #~ msgid "Order Currency," #~ msgstr "Order Currency," -#: src/pages/purchasing/PurchaseOrderDetail.tsx:165 -#: src/pages/sales/ReturnOrderDetail.tsx:144 -#: src/pages/sales/SalesOrderDetail.tsx:153 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:161 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:231 +msgid "Destination" +msgstr "Bestimmungsort" + +#: src/pages/purchasing/PurchaseOrderDetail.tsx:167 +#: src/pages/sales/ReturnOrderDetail.tsx:136 +#: src/pages/sales/SalesOrderDetail.tsx:148 msgid "Order Currency" msgstr "Bestellwährung" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:172 -#: src/pages/sales/ReturnOrderDetail.tsx:151 -#: src/pages/sales/SalesOrderDetail.tsx:160 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:173 +#: src/pages/sales/ReturnOrderDetail.tsx:143 +#: src/pages/sales/SalesOrderDetail.tsx:155 msgid "Total Cost" msgstr "Gesamtkosten" #: src/pages/purchasing/PurchaseOrderDetail.tsx:207 -#: src/pages/sales/ReturnOrderDetail.tsx:186 -#: src/pages/sales/SalesOrderDetail.tsx:195 -msgid "Created On" -msgstr "Erstellt am" +#: src/pages/sales/ReturnOrderDetail.tsx:183 +#: src/pages/sales/SalesOrderDetail.tsx:191 +#~ msgid "Created On" +#~ msgstr "Created On" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:252 -#: src/pages/sales/ReturnOrderDetail.tsx:231 -#: src/pages/sales/SalesOrderDetail.tsx:266 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:221 +#: src/pages/sales/ReturnOrderDetail.tsx:193 +#: src/pages/sales/SalesOrderDetail.tsx:204 +msgid "Issue Date" +msgstr "Herausgabedatum" + +#: src/pages/purchasing/PurchaseOrderDetail.tsx:237 +#: src/pages/sales/ReturnOrderDetail.tsx:209 +#: src/pages/sales/SalesOrderDetail.tsx:219 +#: src/tables/build/BuildOrderTable.tsx:98 +#: src/tables/part/PartPurchaseOrdersTable.tsx:105 +#: src/tables/sales/ReturnOrderTable.tsx:122 +msgid "Completion Date" +msgstr "Fertigstellungsdatum" + +#: src/pages/purchasing/PurchaseOrderDetail.tsx:276 +#: src/pages/sales/ReturnOrderDetail.tsx:248 +#: src/pages/sales/SalesOrderDetail.tsx:288 msgid "Order Details" msgstr "Bestelldetails" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:280 -#: src/pages/sales/ReturnOrderDetail.tsx:258 -#: src/pages/sales/SalesOrderDetail.tsx:297 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:304 +#: src/pages/sales/ReturnOrderDetail.tsx:276 +#: src/pages/sales/SalesOrderDetail.tsx:319 msgid "Extra Line Items" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:337 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:346 msgid "Issue Purchase Order" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:345 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:354 msgid "Cancel Purchase Order" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:353 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:362 msgid "Hold Purchase Order" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:361 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:370 msgid "Complete Purchase Order" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:427 -#: src/pages/sales/ReturnOrderDetail.tsx:428 -#: src/pages/sales/SalesOrderDetail.tsx:468 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:425 +#: src/pages/sales/ReturnOrderDetail.tsx:424 +#: src/pages/sales/SalesOrderDetail.tsx:464 msgid "Order Actions" msgstr "Bestellaktionen" -#: src/pages/sales/ReturnOrderDetail.tsx:101 -#: src/pages/sales/SalesOrderDetail.tsx:107 -#: src/tables/sales/SalesOrderTable.tsx:124 +#: src/pages/sales/ReturnOrderDetail.tsx:92 +#: src/pages/sales/SalesOrderDetail.tsx:101 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:109 +#: src/tables/sales/SalesOrderTable.tsx:137 msgid "Customer Reference" msgstr "Kundenreferenz" -#: src/pages/sales/ReturnOrderDetail.tsx:315 +#: src/pages/sales/ReturnOrderDetail.tsx:322 msgid "Edit Return Order" msgstr "Rücksendeauftrag bearbeiten" -#: src/pages/sales/ReturnOrderDetail.tsx:324 -#: src/tables/sales/ReturnOrderTable.tsx:119 -#: src/tables/sales/ReturnOrderTable.tsx:128 +#: src/pages/sales/ReturnOrderDetail.tsx:331 +#: src/tables/sales/ReturnOrderTable.tsx:142 +#: src/tables/sales/ReturnOrderTable.tsx:152 msgid "Add Return Order" msgstr "Neuer Rücksendeauftrag" -#: src/pages/sales/ReturnOrderDetail.tsx:336 +#: src/pages/sales/ReturnOrderDetail.tsx:343 msgid "Issue Return Order" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:344 +#: src/pages/sales/ReturnOrderDetail.tsx:349 +#~ msgid "Order canceled" +#~ msgstr "Order canceled" + +#: src/pages/sales/ReturnOrderDetail.tsx:351 msgid "Cancel Return Order" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:347 -msgid "Order canceled" -msgstr "" - -#: src/pages/sales/ReturnOrderDetail.tsx:352 +#: src/pages/sales/ReturnOrderDetail.tsx:359 msgid "Hold Return Order" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:360 +#: src/pages/sales/ReturnOrderDetail.tsx:367 msgid "Complete Return Order" msgstr "" @@ -5193,117 +6090,193 @@ msgstr "" msgid "Customers" msgstr "Kunden" -#: src/pages/sales/SalesOrderDetail.tsx:145 +#: src/pages/sales/SalesOrderDetail.tsx:140 msgid "Completed Shipments" msgstr "Abgeschlossene Sendungen" -#: src/pages/sales/SalesOrderDetail.tsx:243 -msgid "Edit Sales Order" -msgstr "Auftrag bearbeiten" - -#: src/pages/sales/SalesOrderDetail.tsx:252 -#: src/tables/sales/SalesOrderTable.tsx:84 -#: src/tables/sales/SalesOrderTable.tsx:96 -msgid "Add Sales Order" -msgstr "Auftrag hinzufügen" - #: src/pages/sales/SalesOrderDetail.tsx:256 #~ msgid "Pending Shipments" #~ msgstr "Pending Shipments" -#: src/pages/sales/SalesOrderDetail.tsx:313 +#: src/pages/sales/SalesOrderDetail.tsx:261 +msgid "Edit Sales Order" +msgstr "Auftrag bearbeiten" + +#: src/pages/sales/SalesOrderDetail.tsx:274 +#: src/tables/sales/SalesOrderTable.tsx:96 +#: src/tables/sales/SalesOrderTable.tsx:109 +msgid "Add Sales Order" +msgstr "Auftrag hinzufügen" + +#: src/pages/sales/SalesOrderDetail.tsx:335 msgid "Shipments" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:369 +#: src/pages/sales/SalesOrderDetail.tsx:376 msgid "Issue Sales Order" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:377 +#: src/pages/sales/SalesOrderDetail.tsx:384 msgid "Cancel Sales Order" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:385 +#: src/pages/sales/SalesOrderDetail.tsx:392 msgid "Hold Sales Order" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:393 +#: src/pages/sales/SalesOrderDetail.tsx:400 msgid "Complete Sales Order" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:432 +#: src/pages/sales/SalesOrderDetail.tsx:439 msgid "Ship Order" msgstr "Bestellung versenden" -#: src/pages/stock/LocationDetail.tsx:117 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:117 +#: src/tables/sales/SalesOrderShipmentTable.tsx:96 +msgid "Shipment Reference" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:124 +msgid "Allocated Items" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:133 +msgid "Tracking Number" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:141 +msgid "Invoice Number" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:149 +#: src/tables/ColumnRenderers.tsx:242 +#: src/tables/sales/SalesOrderAllocationTable.tsx:142 +#: src/tables/sales/SalesOrderShipmentTable.tsx:115 +msgid "Shipment Date" +msgstr "Versanddatum" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:157 +#: src/tables/sales/SalesOrderShipmentTable.tsx:119 +msgid "Delivery Date" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:204 +msgid "Shipment Details" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:210 +msgid "Assigned Items" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:241 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:317 +#: src/tables/sales/SalesOrderShipmentTable.tsx:75 +msgid "Edit Shipment" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:248 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:322 +#: src/tables/sales/SalesOrderShipmentTable.tsx:67 +msgid "Cancel Shipment" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:261 +#: src/tables/sales/SalesOrderShipmentTable.tsx:83 +#: src/tables/sales/SalesOrderShipmentTable.tsx:151 +msgid "Complete Shipment" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:276 +#: src/tables/part/PartPurchaseOrdersTable.tsx:121 +msgid "Pending" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:277 +#: src/tables/sales/SalesOrderAllocationTable.tsx:148 +#: src/tables/sales/SalesOrderShipmentTable.tsx:108 +#: src/tables/sales/SalesOrderShipmentTable.tsx:197 +msgid "Shipped" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:279 +#: src/tables/sales/SalesOrderShipmentTable.tsx:202 +msgid "Delivered" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:293 +msgid "Send Shipment" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:312 +msgid "Shipment Actions" +msgstr "" + +#: src/pages/stock/LocationDetail.tsx:111 msgid "Parent Location" msgstr "Übergeordneter Lagerort" -#: src/pages/stock/LocationDetail.tsx:135 +#: src/pages/stock/LocationDetail.tsx:129 msgid "Sublocations" msgstr "Unter-Lagerorte" -#: src/pages/stock/LocationDetail.tsx:147 +#: src/pages/stock/LocationDetail.tsx:141 #: src/tables/stock/StockLocationTable.tsx:54 msgid "External" msgstr "Extern" -#: src/pages/stock/LocationDetail.tsx:153 +#: src/pages/stock/LocationDetail.tsx:147 #: src/tables/stock/StockLocationTable.tsx:63 msgid "Location Type" msgstr "Lagerort Typ" -#: src/pages/stock/LocationDetail.tsx:164 +#: src/pages/stock/LocationDetail.tsx:158 msgid "Top level stock location" msgstr "Oberster Lagerort" -#: src/pages/stock/LocationDetail.tsx:175 +#: src/pages/stock/LocationDetail.tsx:169 msgid "Location Details" msgstr "Lagerort-Details" -#: src/pages/stock/LocationDetail.tsx:201 +#: src/pages/stock/LocationDetail.tsx:195 msgid "Default Parts" msgstr "Standardteile" -#: src/pages/stock/LocationDetail.tsx:220 -#: src/pages/stock/LocationDetail.tsx:351 +#: src/pages/stock/LocationDetail.tsx:214 +#: src/pages/stock/LocationDetail.tsx:336 #: src/tables/stock/StockLocationTable.tsx:123 msgid "Edit Stock Location" msgstr "Lagerort bearbeiten" -#: src/pages/stock/LocationDetail.tsx:241 -#: src/pages/stock/LocationDetail.tsx:356 +#: src/pages/stock/LocationDetail.tsx:235 +#: src/pages/stock/LocationDetail.tsx:341 msgid "Delete Stock Location" msgstr "Lagerort löschen" -#: src/pages/stock/LocationDetail.tsx:244 +#: src/pages/stock/LocationDetail.tsx:238 msgid "Items Action" msgstr "Bestandsaktionen" -#: src/pages/stock/LocationDetail.tsx:245 +#: src/pages/stock/LocationDetail.tsx:239 msgid "Action for stock items in this location" msgstr "Aktion für Lagerartikel an diesem Lagerort" -#: src/pages/stock/LocationDetail.tsx:250 +#: src/pages/stock/LocationDetail.tsx:244 msgid "Child Locations Action" msgstr "Aktion für untergeordnete Lagerorte" -#: src/pages/stock/LocationDetail.tsx:251 +#: src/pages/stock/LocationDetail.tsx:245 msgid "Action for child locations in this location" msgstr "Aktion für untergeordnete Lagerorte an diesem Lagerort" -#: src/pages/stock/LocationDetail.tsx:346 +#: src/pages/stock/LocationDetail.tsx:332 msgid "Location Actions" msgstr "Lagerort Aktionen" -#: src/pages/stock/StockDetail.tsx:108 +#: src/pages/stock/StockDetail.tsx:116 msgid "Base Part" msgstr "Basisteil" -#: src/pages/stock/StockDetail.tsx:115 -msgid "Stock Status" -msgstr "Lagerbestand Status" - #: src/pages/stock/StockDetail.tsx:155 #~ msgid "Link custom barcode to stock item" #~ msgstr "Link custom barcode to stock item" @@ -5312,113 +6285,179 @@ msgstr "Lagerbestand Status" #~ msgid "Unlink custom barcode from stock item" #~ msgstr "Unlink custom barcode from stock item" -#: src/pages/stock/StockDetail.tsx:188 -msgid "Installed In" -msgstr "Verbaut in" - -#: src/pages/stock/StockDetail.tsx:204 -msgid "Consumed By" -msgstr "Verbraucht von" +#: src/pages/stock/StockDetail.tsx:178 +msgid "Allocated to Orders" +msgstr "" #: src/pages/stock/StockDetail.tsx:205 #~ msgid "Edit stock item" #~ msgstr "Edit stock item" -#: src/pages/stock/StockDetail.tsx:213 -#: src/tables/build/BuildAllocatedStockTable.tsx:64 -#: src/tables/stock/StockTrackingTable.tsx:96 -msgid "Build Order" -msgstr "Bauauftrag" +#: src/pages/stock/StockDetail.tsx:209 +msgid "Installed In" +msgstr "Verbaut in" #: src/pages/stock/StockDetail.tsx:217 #~ msgid "Delete stock item" #~ msgstr "Delete stock item" -#: src/pages/stock/StockDetail.tsx:291 +#: src/pages/stock/StockDetail.tsx:226 +msgid "Parent Item" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:230 +msgid "Parent stock item" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:236 +msgid "Consumed By" +msgstr "Verbraucht von" + +#: src/pages/stock/StockDetail.tsx:245 +#: src/tables/build/BuildAllocatedStockTable.tsx:77 +#: src/tables/stock/StockTrackingTable.tsx:100 +msgid "Build Order" +msgstr "Bauauftrag" + +#: src/pages/stock/StockDetail.tsx:283 +#: src/tables/stock/StockItemTable.tsx:270 +msgid "Expiry Date" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:414 msgid "Stock Details" msgstr "Lagerdetails" -#: src/pages/stock/StockDetail.tsx:297 +#: src/pages/stock/StockDetail.tsx:420 msgid "Stock Tracking" msgstr "Bestandsverfolgung" -#: src/pages/stock/StockDetail.tsx:350 -msgid "Test Data" -msgstr "Test Daten" - -#: src/pages/stock/StockDetail.tsx:364 -msgid "Installed Items" -msgstr "Installierte Elemente" - -#: src/pages/stock/StockDetail.tsx:371 -msgid "Child Items" -msgstr "Untergeordnete Objekte" - -#: src/pages/stock/StockDetail.tsx:425 -msgid "Edit Stock Item" -msgstr "Lagerartikel bearbeiten" - #: src/pages/stock/StockDetail.tsx:433 #~ msgid "Duplicate stock item" #~ msgstr "Duplicate stock item" -#: src/pages/stock/StockDetail.tsx:452 +#: src/pages/stock/StockDetail.tsx:475 +msgid "Test Data" +msgstr "Test Daten" + +#: src/pages/stock/StockDetail.tsx:489 +msgid "Installed Items" +msgstr "Installierte Elemente" + +#: src/pages/stock/StockDetail.tsx:496 +msgid "Child Items" +msgstr "Untergeordnete Objekte" + +#: src/pages/stock/StockDetail.tsx:545 +msgid "Edit Stock Item" +msgstr "Lagerartikel bearbeiten" + +#: src/pages/stock/StockDetail.tsx:572 msgid "Delete Stock Item" msgstr "Lagerartikel löschen" -#: src/pages/stock/StockDetail.tsx:504 +#: src/pages/stock/StockDetail.tsx:604 +msgid "Serialize Stock Item" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:617 +msgid "Stock item serialized" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:623 +msgid "Return Stock Item" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:626 +msgid "Return this item into stock. This will remove the customer assignment." +msgstr "" + +#: src/pages/stock/StockDetail.tsx:636 +msgid "Item returned to stock" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:666 msgid "Stock Operations" msgstr "Lagervorgänge" -#: src/pages/stock/StockDetail.tsx:509 +#: src/pages/stock/StockDetail.tsx:671 msgid "Count stock" msgstr "Bestand zählen" -#: src/pages/stock/StockDetail.tsx:519 -#: src/tables/stock/StockItemTable.tsx:449 -msgid "Add stock" -msgstr "Lagerbestand hinzufügen" +#: src/pages/stock/StockDetail.tsx:671 +#: src/tables/stock/StockItemTable.tsx:452 +#~ msgid "Add stock" +#~ msgstr "Add stock" -#: src/pages/stock/StockDetail.tsx:527 -#: src/tables/stock/StockItemTable.tsx:458 -msgid "Remove stock" -msgstr "Lagerbestand entfernen" +#: src/pages/stock/StockDetail.tsx:680 +#: src/tables/stock/StockItemTable.tsx:461 +#~ msgid "Remove stock" +#~ msgstr "Remove stock" -#: src/pages/stock/StockDetail.tsx:534 +#: src/pages/stock/StockDetail.tsx:698 +#: src/tables/stock/StockItemTable.tsx:481 +#~ msgid "Transfer stock" +#~ msgstr "Transfer stock" + +#: src/pages/stock/StockDetail.tsx:699 +msgid "Serialize" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:700 +msgid "Serialize stock" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:711 msgid "Transfer" msgstr "Verschieben" -#: src/pages/stock/StockDetail.tsx:535 -#: src/tables/stock/StockItemTable.tsx:478 -msgid "Transfer stock" -msgstr "Lagerbestand verschieben" +#: src/pages/stock/StockDetail.tsx:722 +msgid "Return" +msgstr "" -#: src/pages/stock/StockDetail.tsx:546 +#: src/pages/stock/StockDetail.tsx:723 +msgid "Return from customer" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:738 msgid "Stock Item Actions" msgstr "Lagerartikel Aktionen" -#: src/tables/ColumnRenderers.tsx:30 +#: src/pages/stock/StockDetail.tsx:808 +msgid "Stale" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:814 +msgid "Expired" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:820 +msgid "Unavailable" +msgstr "" + +#: src/tables/ColumnRenderers.tsx:36 msgid "Part is not active" msgstr "Teil ist nicht aktiv" -#: src/tables/ColumnRenderers.tsx:35 -msgid "Part is locked" -msgstr "Artikel ist gesperrt" +#: src/tables/ColumnRenderers.tsx:41 +#: src/tables/bom/BomTable.tsx:542 +#: src/tables/part/PartParameterTable.tsx:193 +#: src/tables/part/PartTestTemplateTable.tsx:253 +msgid "Part is Locked" +msgstr "" -#: src/tables/ColumnRenderers.tsx:57 +#: src/tables/ColumnRenderers.tsx:41 +#~ msgid "Part is locked" +#~ msgstr "Part is locked" + +#: src/tables/ColumnRenderers.tsx:46 +msgid "You are subscribed to notifications for this part" +msgstr "" + +#: src/tables/ColumnRenderers.tsx:68 msgid "No location set" msgstr "Kein Lagerort gesetzt" -#: src/tables/ColumnRenderers.tsx:228 -#: src/tables/sales/SalesOrderShipmentTable.tsx:79 -msgid "Shipment Date" -msgstr "Versanddatum" - -#: src/tables/ColumnRenderers.tsx:248 -#: src/tables/settings/CurrencyTable.tsx:23 -msgid "Currency" -msgstr "Währung" - #: src/tables/ColumnSelect.tsx:16 #: src/tables/ColumnSelect.tsx:23 msgid "Select Columns" @@ -5452,91 +6491,116 @@ msgstr "Excel (.xlsx)" msgid "Download Data" msgstr "Daten herunterladen" -#: src/tables/Filter.tsx:89 -#: src/tables/build/BuildOrderTable.tsx:135 +#: src/tables/Filter.tsx:101 msgid "Assigned to me" msgstr "Mir zugewiesen" -#: src/tables/Filter.tsx:90 -#: src/tables/build/BuildOrderTable.tsx:136 +#: src/tables/Filter.tsx:102 msgid "Show orders assigned to me" msgstr "Mir zugewiesene Aufträge anzeigen" -#: src/tables/Filter.tsx:97 +#: src/tables/Filter.tsx:106 +#~ msgid "Show overdue orders" +#~ msgstr "Show overdue orders" + +#: src/tables/Filter.tsx:109 +#: src/tables/build/BuildOrderTable.tsx:120 +#: src/tables/sales/SalesOrderAllocationTable.tsx:59 msgid "Outstanding" msgstr "Ausstehend" -#: src/tables/Filter.tsx:98 -msgid "Show outstanding orders" -msgstr "Offene Aufträge anzeigen" +#: src/tables/Filter.tsx:110 +msgid "Show outstanding items" +msgstr "" -#: src/tables/Filter.tsx:105 -#: src/tables/build/BuildOrderTable.tsx:128 +#: src/tables/Filter.tsx:117 msgid "Overdue" msgstr "Überfällig" -#: src/tables/Filter.tsx:106 -msgid "Show overdue orders" -msgstr "Überfällige Aufträge anzeigen" +#: src/tables/Filter.tsx:118 +msgid "Show overdue items" +msgstr "" -#: src/tables/FilterSelectDrawer.tsx:51 +#: src/tables/Filter.tsx:125 +msgid "Minimum Date" +msgstr "" + +#: src/tables/Filter.tsx:126 +msgid "Show items after this date" +msgstr "" + +#: src/tables/Filter.tsx:134 +msgid "Maximum Date" +msgstr "" + +#: src/tables/Filter.tsx:135 +msgid "Show items before this date" +msgstr "" + +#: src/tables/Filter.tsx:144 +msgid "Has Project Code" +msgstr "Hat Projektcode" + +#: src/tables/Filter.tsx:145 +msgid "Show orders with an assigned project code" +msgstr "" + +#: src/tables/FilterSelectDrawer.tsx:55 msgid "Remove filter" msgstr "Filter entfernen" -#: src/tables/FilterSelectDrawer.tsx:130 +#: src/tables/FilterSelectDrawer.tsx:159 msgid "Select filter" msgstr "Filter auswählen" -#: src/tables/FilterSelectDrawer.tsx:131 +#: src/tables/FilterSelectDrawer.tsx:160 msgid "Filter" msgstr "Filter" -#: src/tables/FilterSelectDrawer.tsx:138 -#: src/tables/build/BuildOrderTestTable.tsx:134 -#: src/tables/purchasing/ManufacturerPartParameterTable.tsx:38 -#: src/tables/stock/StockItemTestResultTable.tsx:186 -msgid "Value" -msgstr "Wert" +#: src/tables/FilterSelectDrawer.tsx:168 +msgid "Select date value" +msgstr "" -#: src/tables/FilterSelectDrawer.tsx:140 +#: src/tables/FilterSelectDrawer.tsx:176 msgid "Select filter value" msgstr "Filterwert auswählen" -#: src/tables/FilterSelectDrawer.tsx:183 +#: src/tables/FilterSelectDrawer.tsx:219 +#: src/tables/InvenTreeTableHeader.tsx:214 msgid "Table Filters" msgstr "Tabellenfilter" -#: src/tables/FilterSelectDrawer.tsx:215 +#: src/tables/FilterSelectDrawer.tsx:251 msgid "Add Filter" msgstr "Filter hinzufügen" -#: src/tables/FilterSelectDrawer.tsx:224 +#: src/tables/FilterSelectDrawer.tsx:260 msgid "Clear Filters" msgstr "Filter zurücksetzen" -#: src/tables/InvenTreeTable.tsx:123 -#: src/tables/InvenTreeTable.tsx:431 -#: src/tables/InvenTreeTable.tsx:455 +#: src/tables/InvenTreeTable.tsx:96 +#: src/tables/InvenTreeTable.tsx:417 +#: src/tables/InvenTreeTable.tsx:441 msgid "No records found" msgstr "Keine Einträge gefunden" -#: src/tables/InvenTreeTable.tsx:466 +#: src/tables/InvenTreeTable.tsx:452 msgid "Server returned incorrect data type" msgstr "Der Server hat einen falschen Datentyp zurückgegeben" -#: src/tables/InvenTreeTable.tsx:474 +#: src/tables/InvenTreeTable.tsx:460 msgid "Bad request" msgstr "Ungültige Anfrage" -#: src/tables/InvenTreeTable.tsx:477 +#: src/tables/InvenTreeTable.tsx:463 msgid "Unauthorized" msgstr "Nicht autorisiert" -#: src/tables/InvenTreeTable.tsx:480 +#: src/tables/InvenTreeTable.tsx:466 msgid "Forbidden" msgstr "Verweigert" -#: src/tables/InvenTreeTable.tsx:483 +#: src/tables/InvenTreeTable.tsx:469 msgid "Not found" msgstr "Nicht gefunden" @@ -5544,18 +6608,6 @@ msgstr "Nicht gefunden" #~ msgid "Are you sure you want to delete the selected records?" #~ msgstr "Are you sure you want to delete the selected records?" -#: src/tables/InvenTreeTable.tsx:525 -msgid "Delete Selected Items" -msgstr "" - -#: src/tables/InvenTreeTable.tsx:529 -msgid "Are you sure you want to delete the selected items?" -msgstr "" - -#: src/tables/InvenTreeTable.tsx:531 -msgid "This action cannot be undone!" -msgstr "Diese Aktion kann nicht rückgängig gemacht werden!" - #: src/tables/InvenTreeTable.tsx:535 #~ msgid "Deleted records" #~ msgstr "Deleted records" @@ -5568,31 +6620,56 @@ msgstr "Diese Aktion kann nicht rückgängig gemacht werden!" #~ msgid "Failed to delete records" #~ msgstr "Failed to delete records" +#: src/tables/InvenTreeTable.tsx:552 +#~ msgid "This action cannot be undone!" +#~ msgstr "This action cannot be undone!" + #: src/tables/InvenTreeTable.tsx:594 #: src/tables/InvenTreeTable.tsx:595 #~ msgid "Print actions" #~ msgstr "Print actions" -#: src/tables/InvenTreeTable.tsx:618 -#: src/tables/InvenTreeTable.tsx:619 -msgid "Barcode actions" -msgstr "Barcode-Aktionen" +#: src/tables/InvenTreeTable.tsx:655 +#: src/tables/InvenTreeTable.tsx:656 +#~ msgid "Barcode actions" +#~ msgstr "Barcode actions" -#: src/tables/InvenTreeTable.tsx:628 +#: src/tables/InvenTreeTable.tsx:712 +#~ msgid "Table filters" +#~ msgstr "Table filters" + +#: src/tables/InvenTreeTable.tsx:725 +#~ msgid "Clear custom query filters" +#~ msgstr "Clear custom query filters" + +#: src/tables/InvenTreeTableHeader.tsx:98 +msgid "Delete Selected Items" +msgstr "" + +#: src/tables/InvenTreeTableHeader.tsx:102 +msgid "Are you sure you want to delete the selected items?" +msgstr "" + +#: src/tables/InvenTreeTableHeader.tsx:104 +#: src/tables/plugin/PluginListTable.tsx:305 +msgid "This action cannot be undone" +msgstr "" + +#: src/tables/InvenTreeTableHeader.tsx:142 +msgid "Custom table filters are active" +msgstr "" + +#: src/tables/InvenTreeTableHeader.tsx:169 msgid "Delete selected records" msgstr "Ausgewählte Datensätze löschen" -#: src/tables/InvenTreeTable.tsx:649 +#: src/tables/InvenTreeTableHeader.tsx:188 msgid "Refresh data" msgstr "Daten aktualisieren" -#: src/tables/InvenTreeTable.tsx:675 -msgid "Table filters" -msgstr "Tabellenfilter" - #: src/tables/TableHoverCard.tsx:35 -msgid "item-{idx}" -msgstr "" +#~ msgid "item-{idx}" +#~ msgstr "item-{idx}" #: src/tables/UploadAction.tsx:7 #~ msgid "Upload Data" @@ -5607,31 +6684,36 @@ msgid "Part Information" msgstr "Teile-Informationen" #: src/tables/bom/BomTable.tsx:212 -#: src/tables/build/BuildLineTable.tsx:126 +#: src/tables/build/BuildLineTable.tsx:257 #: src/tables/part/PartTable.tsx:125 msgid "External stock" msgstr "Externer Bestand" #: src/tables/bom/BomTable.tsx:220 -#: src/tables/build/BuildLineTable.tsx:89 +#: src/tables/build/BuildLineTable.tsx:220 msgid "Includes substitute stock" msgstr "Ersatz Bestand einbeziehen" #: src/tables/bom/BomTable.tsx:229 -#: src/tables/build/BuildLineTable.tsx:99 -#: src/tables/sales/SalesOrderLineItemTable.tsx:127 +#: src/tables/build/BuildLineTable.tsx:230 +#: src/tables/sales/SalesOrderLineItemTable.tsx:135 msgid "Includes variant stock" msgstr "Alternatives Lager einschließen" +#: src/tables/bom/BomTable.tsx:245 +#: src/tables/part/PartTable.tsx:92 +msgid "Building" +msgstr "Gebäude" + #: src/tables/bom/BomTable.tsx:254 #: src/tables/part/PartTable.tsx:153 -#: src/tables/sales/SalesOrderLineItemTable.tsx:150 -#: src/tables/stock/StockItemTable.tsx:216 +#: src/tables/sales/SalesOrderLineItemTable.tsx:158 +#: src/tables/stock/StockItemTable.tsx:206 msgid "Stock Information" msgstr "Lagerinformationen" #: src/tables/bom/BomTable.tsx:285 -#: src/tables/build/BuildLineTable.tsx:248 +#: src/tables/build/BuildLineTable.tsx:409 msgid "Consumable item" msgstr "Verbrauchsartikel" @@ -5644,7 +6726,7 @@ msgstr "" #~ msgstr "Create BOM Item" #: src/tables/bom/BomTable.tsx:306 -#: src/tables/build/BuildLineTable.tsx:69 +#: src/tables/build/BuildLineTable.tsx:200 msgid "Show testable items" msgstr "" @@ -5657,11 +6739,12 @@ msgid "Show trackable items" msgstr "Nachverfolgbare Teile anzeigen" #: src/tables/bom/BomTable.tsx:316 -#: src/tables/build/BuildLineTable.tsx:64 +#: src/tables/build/BuildLineTable.tsx:195 msgid "Show assembled items" msgstr "" #: src/tables/bom/BomTable.tsx:321 +#: src/tables/build/BuildLineTable.tsx:180 msgid "Show items with available stock" msgstr "Artikel mit verfügbarem Lagerbestand anzeigen" @@ -5705,7 +6788,7 @@ msgstr "" #: src/tables/bom/BomTable.tsx:345 #: src/tables/bom/UsedInTable.tsx:79 -#: src/tables/build/BuildLineTable.tsx:58 +#: src/tables/build/BuildLineTable.tsx:189 msgid "Optional" msgstr "Optional" @@ -5723,7 +6806,7 @@ msgstr "Optionale Elemente anzeigen" #~ msgstr "Bom item deleted" #: src/tables/bom/BomTable.tsx:350 -#: src/tables/build/BuildLineTable.tsx:53 +#: src/tables/build/BuildLineTable.tsx:184 msgid "Consumable" msgstr "Verbrauchsmaterial" @@ -5749,12 +6832,12 @@ msgid "Show items with pricing" msgstr "Artikel mit Preisen anzeigen" #: src/tables/bom/BomTable.tsx:378 -#: src/tables/bom/BomTable.tsx:511 +#: src/tables/bom/BomTable.tsx:512 msgid "Import BOM Data" msgstr "" #: src/tables/bom/BomTable.tsx:388 -#: src/tables/bom/BomTable.tsx:523 +#: src/tables/bom/BomTable.tsx:526 msgid "Add BOM Item" msgstr "Stücklisten-Position hinzufügen" @@ -5780,7 +6863,7 @@ msgstr "Stücklisten-Position gelöscht" #: src/tables/bom/BomTable.tsx:423 #: src/tables/bom/BomTable.tsx:426 -#: src/tables/bom/BomTable.tsx:517 +#: src/tables/bom/BomTable.tsx:519 msgid "Validate BOM" msgstr "" @@ -5812,21 +6895,15 @@ msgstr "" msgid "Edit Substitutes" msgstr "Ersatzteil bearbeiten" -#: src/tables/bom/BomTable.tsx:539 -#: src/tables/part/PartParameterTable.tsx:193 -#: src/tables/part/PartTestTemplateTable.tsx:252 -msgid "Part is Locked" -msgstr "" - -#: src/tables/bom/BomTable.tsx:544 +#: src/tables/bom/BomTable.tsx:547 msgid "Bill of materials cannot be edited, as the part is locked" msgstr "" #: src/tables/bom/UsedInTable.tsx:33 -#: src/tables/build/BuildLineTable.tsx:63 +#: src/tables/build/BuildLineTable.tsx:194 #: src/tables/part/ParametricPartTable.tsx:233 #: src/tables/part/PartTable.tsx:190 -#: src/tables/stock/StockItemTable.tsx:300 +#: src/tables/stock/StockItemTable.tsx:304 msgid "Assembly" msgstr "Montage" @@ -5844,285 +6921,347 @@ msgstr "Nachverfolgbar" msgid "Show trackable assemblies" msgstr "Nachverfolgbare Baugruppen anzeigen" -#: src/tables/build/BuildAllocatedStockTable.tsx:54 +#: src/tables/build/BuildAllocatedStockTable.tsx:56 msgid "Allocated to Output" msgstr "" -#: src/tables/build/BuildAllocatedStockTable.tsx:55 +#: src/tables/build/BuildAllocatedStockTable.tsx:57 msgid "Show items allocated to a build output" msgstr "" -#: src/tables/build/BuildAllocatedStockTable.tsx:76 -#: src/tables/part/PartPurchaseOrdersTable.tsx:125 -#: src/tables/sales/SalesOrderAllocationTable.tsx:62 +#: src/tables/build/BuildAllocatedStockTable.tsx:65 +#: src/tables/build/BuildOrderTable.tsx:159 +#: src/tables/part/PartParameterTable.tsx:212 +#: src/tables/part/PartPurchaseOrdersTable.tsx:138 +#: src/tables/sales/ReturnOrderTable.tsx:84 +#: src/tables/sales/SalesOrderAllocationTable.tsx:68 +#: src/tables/sales/SalesOrderTable.tsx:84 +#: src/tables/stock/StockItemTable.tsx:339 +msgid "Include Variants" +msgstr "Alternativen einschließen" + +#: src/tables/build/BuildAllocatedStockTable.tsx:66 +#: src/tables/build/BuildOrderTable.tsx:160 +#: src/tables/part/PartPurchaseOrdersTable.tsx:139 +#: src/tables/sales/ReturnOrderTable.tsx:85 +#: src/tables/sales/SalesOrderAllocationTable.tsx:69 +#: src/tables/sales/SalesOrderTable.tsx:85 +msgid "Include orders for part variants" +msgstr "" + +#: src/tables/build/BuildAllocatedStockTable.tsx:89 +#: src/tables/part/PartPurchaseOrdersTable.tsx:131 +#: src/tables/sales/SalesOrderAllocationTable.tsx:93 msgid "Order Status" msgstr "" -#: src/tables/build/BuildAllocatedStockTable.tsx:96 -#: src/tables/sales/SalesOrderAllocationTable.tsx:75 +#: src/tables/build/BuildAllocatedStockTable.tsx:117 +#: src/tables/sales/SalesOrderAllocationTable.tsx:126 msgid "Allocated Quantity" msgstr "" -#: src/tables/build/BuildAllocatedStockTable.tsx:116 -#: src/tables/sales/SalesOrderAllocationTable.tsx:94 +#: src/tables/build/BuildAllocatedStockTable.tsx:137 +#: src/tables/sales/SalesOrderAllocationTable.tsx:120 msgid "Available Quantity" msgstr "" -#: src/tables/build/BuildAllocatedStockTable.tsx:126 -#: src/tables/build/BuildOrderTestTable.tsx:176 -#: src/tables/build/BuildOrderTestTable.tsx:200 -#: src/tables/build/BuildOutputTable.tsx:312 -msgid "Build Output" -msgstr "Bauprodukt" - -#: src/tables/build/BuildAllocatedStockTable.tsx:143 -msgid "Edit Build Item" +#: src/tables/build/BuildAllocatedStockTable.tsx:164 +#: src/tables/build/BuildLineTable.tsx:513 +msgid "Edit Stock Allocation" msgstr "" -#: src/tables/build/BuildAllocatedStockTable.tsx:153 -msgid "Delete Build Item" +#: src/tables/build/BuildAllocatedStockTable.tsx:164 +#~ msgid "Edit Build Item" +#~ msgstr "Edit Build Item" + +#: src/tables/build/BuildAllocatedStockTable.tsx:174 +#~ msgid "Delete Build Item" +#~ msgstr "Delete Build Item" + +#: src/tables/build/BuildAllocatedStockTable.tsx:177 +#: src/tables/build/BuildLineTable.tsx:526 +msgid "Delete Stock Allocation" msgstr "" -#: src/tables/build/BuildLineTable.tsx:43 -#: src/tables/stock/StockItemTable.tsx:305 -msgid "Allocated" -msgstr "Zugewiesen" +#: src/tables/build/BuildLineTable.tsx:59 +#~ msgid "Show lines with available stock" +#~ msgstr "Show lines with available stock" -#: src/tables/build/BuildLineTable.tsx:44 +#: src/tables/build/BuildLineTable.tsx:175 msgid "Show allocated lines" msgstr "Zugewiesene Positionen anzeigen" -#: src/tables/build/BuildLineTable.tsx:49 -msgid "Show lines with available stock" -msgstr "Positionen mit verfügbarem Lagerbestand anzeigen" - -#: src/tables/build/BuildLineTable.tsx:54 +#: src/tables/build/BuildLineTable.tsx:185 msgid "Show consumable lines" msgstr "Verbrauchsmaterialien anzeigen" -#: src/tables/build/BuildLineTable.tsx:59 +#: src/tables/build/BuildLineTable.tsx:190 msgid "Show optional lines" msgstr "Optionale Positionen anzeigen" -#: src/tables/build/BuildLineTable.tsx:68 +#: src/tables/build/BuildLineTable.tsx:199 #: src/tables/part/PartTable.tsx:208 msgid "Testable" msgstr "" -#: src/tables/build/BuildLineTable.tsx:73 -#: src/tables/stock/StockItemTable.tsx:364 +#: src/tables/build/BuildLineTable.tsx:204 +#: src/tables/stock/StockItemTable.tsx:368 msgid "Tracked" msgstr "Nachverfolgbare Freigabe" -#: src/tables/build/BuildLineTable.tsx:74 +#: src/tables/build/BuildLineTable.tsx:205 msgid "Show tracked lines" msgstr "Verfolgbare Positionen anzeigen" -#: src/tables/build/BuildLineTable.tsx:108 -#: src/tables/sales/SalesOrderLineItemTable.tsx:133 +#: src/tables/build/BuildLineTable.tsx:239 +#: src/tables/sales/SalesOrderLineItemTable.tsx:141 msgid "In production" msgstr "In Produktion" -#: src/tables/build/BuildLineTable.tsx:136 +#: src/tables/build/BuildLineTable.tsx:267 msgid "Insufficient stock" msgstr "" -#: src/tables/build/BuildLineTable.tsx:152 -#: src/tables/sales/SalesOrderLineItemTable.tsx:121 -#: src/tables/stock/StockItemTable.tsx:186 +#: src/tables/build/BuildLineTable.tsx:283 +#: src/tables/sales/SalesOrderLineItemTable.tsx:129 +#: src/tables/stock/StockItemTable.tsx:175 msgid "No stock available" msgstr "Kein Lagerbestand verfügbar" -#: src/tables/build/BuildLineTable.tsx:201 +#: src/tables/build/BuildLineTable.tsx:355 msgid "Gets Inherited" msgstr "" -#: src/tables/build/BuildLineTable.tsx:210 +#: src/tables/build/BuildLineTable.tsx:366 msgid "Unit Quantity" msgstr "Einheiten Menge" -#: src/tables/build/BuildLineTable.tsx:267 -#: src/tables/sales/SalesOrderLineItemTable.tsx:230 +#: src/tables/build/BuildLineTable.tsx:381 +msgid "Required Quantity" +msgstr "" + +#: src/tables/build/BuildLineTable.tsx:432 +#: src/tables/sales/SalesOrderLineItemTable.tsx:254 msgid "Create Build Order" msgstr "" -#: src/tables/build/BuildLineTable.tsx:298 -msgid "Allocate Stock" -msgstr "Bestand zuweisen" +#: src/tables/build/BuildLineTable.tsx:460 +msgid "Auto allocation in progress" +msgstr "" -#: src/tables/build/BuildLineTable.tsx:305 +#: src/tables/build/BuildLineTable.tsx:463 +#: src/tables/build/BuildLineTable.tsx:632 +msgid "Auto Allocate Stock" +msgstr "" + +#: src/tables/build/BuildLineTable.tsx:464 +msgid "Automatically allocate stock to this build according to the selected options" +msgstr "" + +#: src/tables/build/BuildLineTable.tsx:482 +#: src/tables/build/BuildLineTable.tsx:496 +#: src/tables/build/BuildLineTable.tsx:579 +#: src/tables/build/BuildLineTable.tsx:664 +#: src/tables/build/BuildOutputTable.tsx:314 +#: src/tables/build/BuildOutputTable.tsx:319 +msgid "Deallocate Stock" +msgstr "" + +#: src/tables/build/BuildLineTable.tsx:498 +msgid "Deallocate all untracked stock for this build order" +msgstr "" + +#: src/tables/build/BuildLineTable.tsx:500 +msgid "Deallocate stock from the selected line item" +msgstr "" + +#: src/tables/build/BuildLineTable.tsx:504 +msgid "Stock has been deallocated" +msgstr "" + +#: src/tables/build/BuildLineTable.tsx:589 msgid "Order Stock" msgstr "Bestand bestellen" -#: src/tables/build/BuildLineTable.tsx:312 +#: src/tables/build/BuildLineTable.tsx:596 msgid "Build Stock" msgstr "Bestand bauen" -#: src/tables/build/BuildOrderTable.tsx:111 -msgid "Show active orders" -msgstr "Aktive Aufträge anzeigen" +#: src/tables/build/BuildLineTable.tsx:610 +msgid "View Part" +msgstr "" #: src/tables/build/BuildOrderTable.tsx:116 -msgid "Cascade" -msgstr "" +#~ msgid "Cascade" +#~ msgstr "Cascade" #: src/tables/build/BuildOrderTable.tsx:117 -msgid "Display recursive child orders" -msgstr "" +#~ msgid "Display recursive child orders" +#~ msgstr "Display recursive child orders" -#: src/tables/build/BuildOrderTable.tsx:123 -#: src/tables/part/PartPurchaseOrdersTable.tsx:126 -#: src/tables/purchasing/PurchaseOrderTable.tsx:56 -#: src/tables/sales/ReturnOrderTable.tsx:47 -#: src/tables/sales/SalesOrderTable.tsx:54 +#: src/tables/build/BuildOrderTable.tsx:121 +msgid "Show outstanding orders" +msgstr "Offene Aufträge anzeigen" + +#: src/tables/build/BuildOrderTable.tsx:121 +#~ msgid "Show active orders" +#~ msgstr "Show active orders" + +#: src/tables/build/BuildOrderTable.tsx:122 +#~ msgid "Show overdue status" +#~ msgstr "Show overdue status" + +#: src/tables/build/BuildOrderTable.tsx:126 +#: src/tables/part/PartPurchaseOrdersTable.tsx:132 +#: src/tables/purchasing/PurchaseOrderTable.tsx:59 +#: src/tables/sales/ReturnOrderTable.tsx:57 +#: src/tables/sales/SalesOrderTable.tsx:57 msgid "Filter by order status" msgstr "Nach Bestellstatus filtern" -#: src/tables/build/BuildOrderTable.tsx:130 -msgid "Show overdue status" -msgstr "Überfälligen Status anzeigen" - -#: src/tables/build/BuildOrderTable.tsx:141 -#: src/tables/purchasing/PurchaseOrderTable.tsx:65 -#: src/tables/sales/ReturnOrderTable.tsx:56 -#: src/tables/sales/SalesOrderTable.tsx:63 +#: src/tables/build/BuildOrderTable.tsx:136 +#: src/tables/purchasing/PurchaseOrderTable.tsx:70 +#: src/tables/sales/ReturnOrderTable.tsx:68 +#: src/tables/sales/SalesOrderTable.tsx:68 msgid "Filter by project code" msgstr "Nach Produktcode filtern" -#: src/tables/build/BuildOrderTable.tsx:146 -#: src/tables/purchasing/PurchaseOrderTable.tsx:70 -#: src/tables/sales/ReturnOrderTable.tsx:61 -#: src/tables/sales/SalesOrderTable.tsx:68 -msgid "Has Project Code" -msgstr "Hat Projektcode" - -#: src/tables/build/BuildOrderTable.tsx:147 +#: src/tables/build/BuildOrderTable.tsx:139 #: src/tables/purchasing/PurchaseOrderTable.tsx:71 #: src/tables/sales/ReturnOrderTable.tsx:62 #: src/tables/sales/SalesOrderTable.tsx:69 -msgid "Filter by whether the purchase order has a project code" -msgstr "Filtern, ob die Bestellung einen Projektcode hat" +#~ msgid "Filter by whether the purchase order has a project code" +#~ msgstr "Filter by whether the purchase order has a project code" -#: src/tables/build/BuildOrderTable.tsx:152 +#: src/tables/build/BuildOrderTable.tsx:143 msgid "Filter by user who issued this order" msgstr "Filtern nach Benutzer, der diese Bestellung ausgestellt hat" -#: src/tables/build/BuildOrderTable.tsx:158 -#: src/tables/purchasing/PurchaseOrderTable.tsx:76 -#: src/tables/sales/ReturnOrderTable.tsx:67 -#: src/tables/sales/SalesOrderTable.tsx:74 +#: src/tables/build/BuildOrderTable.tsx:149 +#: src/tables/purchasing/PurchaseOrderTable.tsx:77 +#: src/tables/sales/ReturnOrderTable.tsx:75 +#: src/tables/sales/SalesOrderTable.tsx:75 msgid "Filter by responsible owner" msgstr "Nach verantwortlichem Besitzer filtern" -#: src/tables/build/BuildOrderTestTable.tsx:75 -#: src/tables/build/BuildOrderTestTable.tsx:111 -#: src/tables/stock/StockItemTestResultTable.tsx:257 -#: src/tables/stock/StockItemTestResultTable.tsx:329 -#: src/tables/stock/StockItemTestResultTable.tsx:384 +#: src/tables/build/BuildOrderTestTable.tsx:76 +#: src/tables/build/BuildOrderTestTable.tsx:112 +#: src/tables/stock/StockItemTestResultTable.tsx:275 +#: src/tables/stock/StockItemTestResultTable.tsx:347 +#: src/tables/stock/StockItemTestResultTable.tsx:403 msgid "Add Test Result" msgstr "Testergebnis hinzufügen" -#: src/tables/build/BuildOrderTestTable.tsx:82 -#: src/tables/stock/StockItemTestResultTable.tsx:259 +#: src/tables/build/BuildOrderTestTable.tsx:83 +#: src/tables/stock/StockItemTestResultTable.tsx:277 msgid "Test result added" msgstr "Testergebnis hinzugefügt" -#: src/tables/build/BuildOrderTestTable.tsx:110 -#: src/tables/stock/StockItemTestResultTable.tsx:174 +#: src/tables/build/BuildOrderTestTable.tsx:111 +#: src/tables/stock/StockItemTestResultTable.tsx:180 msgid "No Result" msgstr "Kein Ergebnis" -#: src/tables/build/BuildOrderTestTable.tsx:220 +#: src/tables/build/BuildOrderTestTable.tsx:221 msgid "Show build outputs currently in production" msgstr "" +#: src/tables/build/BuildOutputTable.tsx:76 +msgid "Build Output Stock Allocation" +msgstr "" + #: src/tables/build/BuildOutputTable.tsx:161 #~ msgid "Delete build output" #~ msgstr "Delete build output" -#: src/tables/build/BuildOutputTable.tsx:173 -#: src/tables/build/BuildOutputTable.tsx:211 +#: src/tables/build/BuildOutputTable.tsx:258 +#: src/tables/build/BuildOutputTable.tsx:374 msgid "Add Build Output" msgstr "Bauprodukt hinzufügen" -#: src/tables/build/BuildOutputTable.tsx:216 +#: src/tables/build/BuildOutputTable.tsx:304 +#~ msgid "Edit build output" +#~ msgstr "Edit build output" + +#: src/tables/build/BuildOutputTable.tsx:306 +#: src/tables/build/BuildOutputTable.tsx:417 +msgid "Edit Build Output" +msgstr "" + +#: src/tables/build/BuildOutputTable.tsx:321 +msgid "This action will deallocate all stock from the selected build output" +msgstr "" + +#: src/tables/build/BuildOutputTable.tsx:341 msgid "Complete selected outputs" msgstr "Ausgewählte Bauprodukte fertigstellen" -#: src/tables/build/BuildOutputTable.tsx:226 +#: src/tables/build/BuildOutputTable.tsx:352 msgid "Scrap selected outputs" msgstr "Ausgewählte Bauprodukte verschrotten" -#: src/tables/build/BuildOutputTable.tsx:236 +#: src/tables/build/BuildOutputTable.tsx:363 msgid "Cancel selected outputs" msgstr "Ausgewählte Bauprodukte abbrechen" -#: src/tables/build/BuildOutputTable.tsx:252 +#: src/tables/build/BuildOutputTable.tsx:385 msgid "Allocate" msgstr "Zuweisen" -#: src/tables/build/BuildOutputTable.tsx:253 +#: src/tables/build/BuildOutputTable.tsx:386 msgid "Allocate stock to build output" msgstr "Bestand dem Bauprodukt zuweisen" -#: src/tables/build/BuildOutputTable.tsx:259 +#: src/tables/build/BuildOutputTable.tsx:396 msgid "Deallocate" msgstr "Freigeben" -#: src/tables/build/BuildOutputTable.tsx:260 +#: src/tables/build/BuildOutputTable.tsx:397 msgid "Deallocate stock from build output" msgstr "Bestand von Bauprodukt entfernen" -#: src/tables/build/BuildOutputTable.tsx:267 +#: src/tables/build/BuildOutputTable.tsx:408 msgid "Complete build output" msgstr "Bauprodukt fertigstellen" -#: src/tables/build/BuildOutputTable.tsx:276 +#: src/tables/build/BuildOutputTable.tsx:424 msgid "Scrap" msgstr "Verschrotten" -#: src/tables/build/BuildOutputTable.tsx:277 +#: src/tables/build/BuildOutputTable.tsx:425 msgid "Scrap build output" msgstr "Bauprodukt verschrotten" -#: src/tables/build/BuildOutputTable.tsx:280 -#~ msgid "Allocated Items" -#~ msgstr "Allocated Items" - -#: src/tables/build/BuildOutputTable.tsx:287 +#: src/tables/build/BuildOutputTable.tsx:435 msgid "Cancel build output" msgstr "Bauprodukt abbrechen" -#: src/tables/build/BuildOutputTable.tsx:325 -msgid "Batch" -msgstr "Losnummer" - -#: src/tables/build/BuildOutputTable.tsx:340 +#: src/tables/build/BuildOutputTable.tsx:488 msgid "Allocated Lines" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:355 +#: src/tables/build/BuildOutputTable.tsx:503 msgid "Required Tests" msgstr "Erforderliche Tests" -#: src/tables/company/AddressTable.tsx:121 -#: src/tables/company/AddressTable.tsx:185 +#: src/tables/company/AddressTable.tsx:118 +#: src/tables/company/AddressTable.tsx:183 msgid "Add Address" msgstr "Adresse hinzufügen" -#: src/tables/company/AddressTable.tsx:126 +#: src/tables/company/AddressTable.tsx:123 msgid "Address created" msgstr "Adresse erstellt" -#: src/tables/company/AddressTable.tsx:135 +#: src/tables/company/AddressTable.tsx:132 msgid "Edit Address" msgstr "Adresse bearbeiten" -#: src/tables/company/AddressTable.tsx:143 +#: src/tables/company/AddressTable.tsx:140 msgid "Delete Address" msgstr "Adresse löschen" -#: src/tables/company/AddressTable.tsx:144 +#: src/tables/company/AddressTable.tsx:141 msgid "Are you sure you want to delete this address?" msgstr "Sicher, dass Sie diese Adresse löschen wollen?" @@ -6130,24 +7269,24 @@ msgstr "Sicher, dass Sie diese Adresse löschen wollen?" #~ msgid "New Company" #~ msgstr "New Company" -#: src/tables/company/CompanyTable.tsx:74 -#: src/tables/company/CompanyTable.tsx:123 +#: src/tables/company/CompanyTable.tsx:75 +#: src/tables/company/CompanyTable.tsx:125 msgid "Add Company" msgstr "Unternehmen hinzufügen" -#: src/tables/company/CompanyTable.tsx:96 +#: src/tables/company/CompanyTable.tsx:97 msgid "Show active companies" msgstr "Aktive Unternehmen anzeigen" -#: src/tables/company/CompanyTable.tsx:101 +#: src/tables/company/CompanyTable.tsx:102 msgid "Show companies which are suppliers" msgstr "Unternehmen anzeigen, die Lieferanten sind" -#: src/tables/company/CompanyTable.tsx:106 +#: src/tables/company/CompanyTable.tsx:107 msgid "Show companies which are manufacturers" msgstr "Unternehmen anzeigen, die Hersteller sind" -#: src/tables/company/CompanyTable.tsx:111 +#: src/tables/company/CompanyTable.tsx:112 msgid "Show companies which are customers" msgstr "Unternehmen anzeigen, die Kunden sind" @@ -6163,96 +7302,99 @@ msgstr "Kontakt hinzufügen" msgid "Delete Contact" msgstr "Kontakt löschen" -#: src/tables/company/ContactTable.tsx:129 +#: src/tables/company/ContactTable.tsx:130 msgid "Add contact" msgstr "Kontakt hinzufügen" -#: src/tables/general/AttachmentTable.tsx:130 +#: src/tables/general/AttachmentTable.tsx:135 msgid "File uploaded" msgstr "Datei hochgeladen" -#: src/tables/general/AttachmentTable.tsx:131 +#: src/tables/general/AttachmentTable.tsx:136 msgid "File {0} uploaded successfully" msgstr "Datei {0} erfolgreich hochgeladen" -#: src/tables/general/AttachmentTable.tsx:142 +#: src/tables/general/AttachmentTable.tsx:147 msgid "Upload Error" msgstr "Upload fehlgeschlagen" -#: src/tables/general/AttachmentTable.tsx:143 +#: src/tables/general/AttachmentTable.tsx:148 msgid "File could not be uploaded" msgstr "Datei konnte nicht hochgeladen werden" -#: src/tables/general/AttachmentTable.tsx:191 +#: src/tables/general/AttachmentTable.tsx:196 msgid "Upload Attachment" msgstr "Anhang hochladen" -#: src/tables/general/AttachmentTable.tsx:201 +#: src/tables/general/AttachmentTable.tsx:206 msgid "Edit Attachment" msgstr "Anhang bearbeiten" -#: src/tables/general/AttachmentTable.tsx:215 +#: src/tables/general/AttachmentTable.tsx:220 msgid "Delete Attachment" msgstr "Anhang löschen" -#: src/tables/general/AttachmentTable.tsx:225 +#: src/tables/general/AttachmentTable.tsx:230 msgid "Is Link" msgstr "Link" -#: src/tables/general/AttachmentTable.tsx:226 +#: src/tables/general/AttachmentTable.tsx:231 msgid "Show link attachments" msgstr "" -#: src/tables/general/AttachmentTable.tsx:230 +#: src/tables/general/AttachmentTable.tsx:235 msgid "Is File" msgstr "" -#: src/tables/general/AttachmentTable.tsx:231 +#: src/tables/general/AttachmentTable.tsx:236 msgid "Show file attachments" msgstr "" -#: src/tables/general/AttachmentTable.tsx:240 +#: src/tables/general/AttachmentTable.tsx:245 msgid "Add attachment" msgstr "Anhang hinzufügen" -#: src/tables/general/AttachmentTable.tsx:251 -msgid "Add external link" -msgstr "Externen Link hinzufügen" - #: src/tables/general/AttachmentTable.tsx:254 #~ msgid "Upload attachment" #~ msgstr "Upload attachment" -#: src/tables/general/AttachmentTable.tsx:299 +#: src/tables/general/AttachmentTable.tsx:256 +msgid "Add external link" +msgstr "Externen Link hinzufügen" + +#: src/tables/general/AttachmentTable.tsx:304 msgid "No attachments found" msgstr "Keine Anlagen gefunden" -#: src/tables/general/AttachmentTable.tsx:337 +#: src/tables/general/AttachmentTable.tsx:343 msgid "Drag attachment file here to upload" msgstr "Datei zum Hochladen hierher ziehen" #: src/tables/general/ExtraLineItemTable.tsx:86 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:251 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:60 -#: src/tables/sales/SalesOrderLineItemTable.tsx:196 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:263 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:362 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:72 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:168 +#: src/tables/sales/SalesOrderLineItemTable.tsx:206 +#: src/tables/sales/SalesOrderLineItemTable.tsx:291 msgid "Add Line Item" msgstr "Position hinzufügen" #: src/tables/general/ExtraLineItemTable.tsx:98 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:271 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:72 -#: src/tables/sales/SalesOrderLineItemTable.tsx:214 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:283 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:84 +#: src/tables/sales/SalesOrderLineItemTable.tsx:224 msgid "Edit Line Item" msgstr "Position bearbeiten" #: src/tables/general/ExtraLineItemTable.tsx:106 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:279 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:80 -#: src/tables/sales/SalesOrderLineItemTable.tsx:222 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:291 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:92 +#: src/tables/sales/SalesOrderLineItemTable.tsx:232 msgid "Delete Line Item" msgstr "Position löschen" -#: src/tables/general/ExtraLineItemTable.tsx:142 +#: src/tables/general/ExtraLineItemTable.tsx:143 msgid "Add Extra Line Item" msgstr "" @@ -6261,12 +7403,12 @@ msgid "Machine restarted" msgstr "Maschine neu gestartet" #: src/tables/machine/MachineListTable.tsx:212 -#: src/tables/machine/MachineListTable.tsx:263 +#: src/tables/machine/MachineListTable.tsx:261 msgid "Edit machine" msgstr "Maschine bearbeiten" #: src/tables/machine/MachineListTable.tsx:226 -#: src/tables/machine/MachineListTable.tsx:267 +#: src/tables/machine/MachineListTable.tsx:265 msgid "Delete machine" msgstr "Maschine löschen" @@ -6278,51 +7420,50 @@ msgstr "Maschine wurde erfolgreich gelöscht." msgid "Are you sure you want to remove the machine \"{0}\"?" msgstr "Soll Maschine \"{0}\" gelöscht werden?" -#: src/tables/machine/MachineListTable.tsx:255 -#: src/tables/machine/MachineListTable.tsx:432 +#: src/tables/machine/MachineListTable.tsx:254 +#: src/tables/machine/MachineListTable.tsx:442 msgid "Restart required" msgstr "Neustart erforderlich" -#: src/tables/machine/MachineListTable.tsx:259 +#: src/tables/machine/MachineListTable.tsx:258 msgid "Machine Actions" msgstr "Maschinen-Aktionen" -#: src/tables/machine/MachineListTable.tsx:272 +#: src/tables/machine/MachineListTable.tsx:270 msgid "Restart" msgstr "Neustart" -#: src/tables/machine/MachineListTable.tsx:274 +#: src/tables/machine/MachineListTable.tsx:272 msgid "Restart machine" msgstr "Maschine neu starten" -#: src/tables/machine/MachineListTable.tsx:276 +#: src/tables/machine/MachineListTable.tsx:274 msgid "manual restart required" msgstr "manueller Neustart erforderlich" -#: src/tables/machine/MachineListTable.tsx:292 -msgid "Machine information" -msgstr "Maschinen Informationen" +#: src/tables/machine/MachineListTable.tsx:291 +#~ msgid "Machine information" +#~ msgstr "Machine information" -#: src/tables/machine/MachineListTable.tsx:303 -#: src/tables/machine/MachineListTable.tsx:599 +#: src/tables/machine/MachineListTable.tsx:292 +msgid "Machine Information" +msgstr "" + +#: src/tables/machine/MachineListTable.tsx:302 +#: src/tables/machine/MachineListTable.tsx:610 msgid "Machine Type" msgstr "Maschinen Typ" -#: src/tables/machine/MachineListTable.tsx:316 +#: src/tables/machine/MachineListTable.tsx:315 msgid "Machine Driver" msgstr "Maschinen Treiber" -#: src/tables/machine/MachineListTable.tsx:329 +#: src/tables/machine/MachineListTable.tsx:330 msgid "Initialized" msgstr "Initialisiert" -#: src/tables/machine/MachineListTable.tsx:350 -#: src/tables/machine/MachineTypeTable.tsx:261 -msgid "Errors" -msgstr "Fehler" - -#: src/tables/machine/MachineListTable.tsx:358 -#: src/tables/machine/MachineTypeTable.tsx:269 +#: src/tables/machine/MachineListTable.tsx:359 +#: src/tables/machine/MachineTypeTable.tsx:290 msgid "No errors reported" msgstr "Keine Fehler gemeldet" @@ -6330,7 +7471,7 @@ msgstr "Keine Fehler gemeldet" msgid "Machine Settings" msgstr "Maschineneinstellungen" -#: src/tables/machine/MachineListTable.tsx:389 +#: src/tables/machine/MachineListTable.tsx:394 msgid "Driver Settings" msgstr "Treiber Einstellungen" @@ -6338,86 +7479,109 @@ msgstr "Treiber Einstellungen" #~ msgid "Create machine" #~ msgstr "Create machine" -#: src/tables/machine/MachineListTable.tsx:506 +#: src/tables/machine/MachineListTable.tsx:516 +#: src/tables/machine/MachineListTable.tsx:558 msgid "Add machine" msgstr "Maschine hinzufügen" #: src/tables/machine/MachineListTable.tsx:561 -msgid "Machine detail" -msgstr "Maschine Details" +#~ msgid "Machine detail" +#~ msgstr "Machine detail" -#: src/tables/machine/MachineListTable.tsx:608 +#: src/tables/machine/MachineListTable.tsx:572 +msgid "Machine Detail" +msgstr "" + +#: src/tables/machine/MachineListTable.tsx:619 msgid "Driver" msgstr "Treiber" -#: src/tables/machine/MachineTypeTable.tsx:73 +#: src/tables/machine/MachineTypeTable.tsx:78 msgid "Builtin driver" msgstr "Integrierter Treiber" -#: src/tables/machine/MachineTypeTable.tsx:89 +#: src/tables/machine/MachineTypeTable.tsx:96 +msgid "Not Found" +msgstr "" + +#: src/tables/machine/MachineTypeTable.tsx:99 msgid "Machine type not found." msgstr "Maschinentyp nicht gefunden." -#: src/tables/machine/MachineTypeTable.tsx:97 -msgid "Machine type information" -msgstr "Maschinentyp Informationen" +#: src/tables/machine/MachineTypeTable.tsx:99 +#~ msgid "Machine type information" +#~ msgstr "Machine type information" -#: src/tables/machine/MachineTypeTable.tsx:110 -#: src/tables/machine/MachineTypeTable.tsx:217 +#: src/tables/machine/MachineTypeTable.tsx:109 +msgid "Machine Type Information" +msgstr "" + +#: src/tables/machine/MachineTypeTable.tsx:124 +#: src/tables/machine/MachineTypeTable.tsx:238 msgid "Slug" msgstr "Slug" -#: src/tables/machine/MachineTypeTable.tsx:118 -#: src/tables/machine/MachineTypeTable.tsx:238 +#: src/tables/machine/MachineTypeTable.tsx:135 +#: src/tables/machine/MachineTypeTable.tsx:259 msgid "Provider plugin" msgstr "Anbieter Plugin" -#: src/tables/machine/MachineTypeTable.tsx:130 -#: src/tables/machine/MachineTypeTable.tsx:250 +#: src/tables/machine/MachineTypeTable.tsx:147 +#: src/tables/machine/MachineTypeTable.tsx:271 msgid "Provider file" msgstr "Anbieterdatei" -#: src/tables/machine/MachineTypeTable.tsx:135 -#: src/tables/machine/MachineTypeTable.tsx:255 -#: src/tables/plugin/PluginListTable.tsx:180 -#: src/tables/plugin/PluginListTable.tsx:568 -msgid "Builtin" -msgstr "Integriert" +#: src/tables/machine/MachineTypeTable.tsx:148 +#~ msgid "Available drivers" +#~ msgstr "Available drivers" -#: src/tables/machine/MachineTypeTable.tsx:146 -msgid "Available drivers" -msgstr "Verfügbare Treiber" +#: src/tables/machine/MachineTypeTable.tsx:162 +msgid "Available Drivers" +msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:196 +#: src/tables/machine/MachineTypeTable.tsx:217 msgid "Machine driver not found." msgstr "Maschinentreiber nicht gefunden." -#: src/tables/machine/MachineTypeTable.tsx:204 +#: src/tables/machine/MachineTypeTable.tsx:225 msgid "Machine driver information" msgstr "Maschinentreiber Informationen" -#: src/tables/machine/MachineTypeTable.tsx:224 +#: src/tables/machine/MachineTypeTable.tsx:245 msgid "Machine type" msgstr "Maschinentyp" -#: src/tables/machine/MachineTypeTable.tsx:327 +#: src/tables/machine/MachineTypeTable.tsx:338 +#~ msgid "Machine type detail" +#~ msgstr "Machine type detail" + +#: src/tables/machine/MachineTypeTable.tsx:348 msgid "Builtin type" msgstr "Eingebauter Typ" -#: src/tables/machine/MachineTypeTable.tsx:336 -msgid "Machine type detail" -msgstr "Maschinentyp Details" +#: src/tables/machine/MachineTypeTable.tsx:348 +#~ msgid "Machine driver detail" +#~ msgstr "Machine driver detail" -#: src/tables/machine/MachineTypeTable.tsx:346 -msgid "Machine driver detail" -msgstr "Maschinentreiber Details" +#: src/tables/machine/MachineTypeTable.tsx:357 +msgid "Machine Type Detail" +msgstr "" + +#: src/tables/machine/MachineTypeTable.tsx:367 +msgid "Machine Driver Detail" +msgstr "" #: src/tables/notifications/NotificationsTable.tsx:26 msgid "Age" msgstr "Alter" +#: src/tables/notifications/NotificationsTable.tsx:36 +msgid "Notification" +msgstr "Benachrichtigung" + #: src/tables/notifications/NotificationsTable.tsx:40 #: src/tables/plugin/PluginErrorTable.tsx:37 +#: src/tables/settings/ErrorTable.tsx:50 msgid "Message" msgstr "Nachricht" @@ -6451,33 +7615,32 @@ msgstr "" msgid "Show assembly parts" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:68 +#: src/tables/part/PartCategoryTable.tsx:48 +msgid "You are subscribed to notifications for this category" +msgstr "" + +#: src/tables/part/PartCategoryTable.tsx:80 #: src/tables/part/PartTable.tsx:196 msgid "Include Subcategories" msgstr "Unter-Kategorien einschließen" -#: src/tables/part/PartCategoryTable.tsx:69 +#: src/tables/part/PartCategoryTable.tsx:81 msgid "Include subcategories in results" msgstr "Unterkategorien in Ergebnissen einbeziehen" -#: src/tables/part/PartCategoryTable.tsx:74 +#: src/tables/part/PartCategoryTable.tsx:86 msgid "Show structural categories" msgstr "Strukturkategorien anzeigen" -#: src/tables/part/PartCategoryTable.tsx:78 -#: src/tables/part/PartTable.tsx:294 -msgid "Subscribed" -msgstr "" - -#: src/tables/part/PartCategoryTable.tsx:79 +#: src/tables/part/PartCategoryTable.tsx:91 msgid "Show categories to which the user is subscribed" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:86 +#: src/tables/part/PartCategoryTable.tsx:100 msgid "New Part Category" msgstr "Neue Teilekategorie" -#: src/tables/part/PartCategoryTable.tsx:112 +#: src/tables/part/PartCategoryTable.tsx:129 msgid "Add Part Category" msgstr "Teilekategorie hinzufügen" @@ -6523,11 +7686,6 @@ msgstr "Parameter hinzufügen" msgid "Part parameters cannot be edited, as the part is locked" msgstr "" -#: src/tables/part/PartParameterTable.tsx:212 -#: src/tables/stock/StockItemTable.tsx:335 -msgid "Include Variants" -msgstr "Alternativen einschließen" - #: src/tables/part/PartParameterTemplateTable.tsx:31 msgid "Checkbox" msgstr "Checkbox" @@ -6554,6 +7712,7 @@ msgid "Show templates with units" msgstr "Vorlagen mit Einheiten anzeigen" #: src/tables/part/PartParameterTemplateTable.tsx:85 +#: src/tables/part/PartParameterTemplateTable.tsx:141 msgid "Add Parameter Template" msgstr "Parametervorlage hinzufügen" @@ -6566,23 +7725,19 @@ msgid "Delete Parameter Template" msgstr "Parametervorlage löschen" #: src/tables/part/PartParameterTemplateTable.tsx:141 -msgid "Add parameter template" -msgstr "Parametervorlage hinzufügen" +#~ msgid "Add parameter template" +#~ msgstr "Add parameter template" -#: src/tables/part/PartPurchaseOrdersTable.tsx:77 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:162 +#: src/tables/part/PartPurchaseOrdersTable.tsx:78 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:168 msgid "Total Quantity" msgstr "Gesamtmenge" -#: src/tables/part/PartPurchaseOrdersTable.tsx:115 -msgid "Pending" -msgstr "" - -#: src/tables/part/PartPurchaseOrdersTable.tsx:116 +#: src/tables/part/PartPurchaseOrdersTable.tsx:122 msgid "Show pending orders" msgstr "" -#: src/tables/part/PartPurchaseOrdersTable.tsx:121 +#: src/tables/part/PartPurchaseOrdersTable.tsx:127 msgid "Show received items" msgstr "" @@ -6678,7 +7833,7 @@ msgstr "" #: src/tables/part/PartTable.tsx:267 msgid "Filter by parts which are templates" -msgstr "" +msgstr "Nach Teilen filtern die eine Vorlage sind" #: src/tables/part/PartTable.tsx:272 msgid "Is Revision" @@ -6728,22 +7883,13 @@ msgstr "" msgid "Results" msgstr "Ergebnisse" -#: src/tables/part/PartTestTemplateTable.tsx:76 -msgid "No Results" -msgstr "Keine Ergebnisse" - -#: src/tables/part/PartTestTemplateTable.tsx:106 -#: src/tables/stock/StockItemTestResultTable.tsx:365 -msgid "Required" -msgstr "Erforderlich" - #: src/tables/part/PartTestTemplateTable.tsx:107 msgid "Show required tests" msgstr "Erforderliche Tests anzeigen" #: src/tables/part/PartTestTemplateTable.tsx:111 -#: src/tables/settings/TemplateTable.tsx:167 -#: src/tables/settings/TemplateTable.tsx:283 +#: src/tables/settings/TemplateTable.tsx:247 +#: src/tables/settings/TemplateTable.tsx:363 msgid "Enabled" msgstr "Aktiviert" @@ -6784,7 +7930,7 @@ msgid "Show tests which have recorded results" msgstr "Tests anzeigen, die die Ergebnisse beinhalten" #: src/tables/part/PartTestTemplateTable.tsx:154 -#: src/tables/part/PartTestTemplateTable.tsx:237 +#: src/tables/part/PartTestTemplateTable.tsx:238 msgid "Add Test Template" msgstr "Testvorlage hinzufügen" @@ -6808,7 +7954,7 @@ msgstr "Alle mit dieser Vorlage verknüpften Testergebnisse werden gelöscht" msgid "View Parent Part" msgstr "" -#: src/tables/part/PartTestTemplateTable.tsx:257 +#: src/tables/part/PartTestTemplateTable.tsx:258 msgid "Part templates cannot be edited, as the part is locked" msgstr "" @@ -6836,41 +7982,58 @@ msgstr "Virtuelle Varianten anzeigen" msgid "Show trackable variants" msgstr "Nachverfolgbare Varianten anzeigen" -#: src/tables/part/RelatedPartTable.tsx:84 +#: src/tables/part/RelatedPartTable.tsx:86 +#: src/tables/part/RelatedPartTable.tsx:109 msgid "Add Related Part" msgstr "Verknüpftes Teil hinzufügen" -#: src/tables/part/RelatedPartTable.tsx:99 +#: src/tables/part/RelatedPartTable.tsx:101 msgid "Delete Related Part" msgstr "Verknüpftes Teil löschen" -#: src/tables/part/RelatedPartTable.tsx:106 -msgid "Add related part" -msgstr "Verknüpftes Teil hinzufügen" +#: src/tables/part/RelatedPartTable.tsx:109 +#~ msgid "Add related part" +#~ msgstr "Add related part" #: src/tables/plugin/PluginErrorTable.tsx:29 msgid "Stage" msgstr "Bühne" +#: src/tables/plugin/PluginListTable.tsx:42 +msgid "Plugin is active" +msgstr "Plugin ist aktiv" + +#: src/tables/plugin/PluginListTable.tsx:48 +msgid "Plugin is inactive" +msgstr "Plugin ist inaktiv" + +#: src/tables/plugin/PluginListTable.tsx:55 +msgid "Plugin is not installed" +msgstr "Plugin ist nicht installiert" + +#: src/tables/plugin/PluginListTable.tsx:76 +msgid "Plugin" +msgstr "Plugin" + #: src/tables/plugin/PluginListTable.tsx:95 -msgid "Plugin with key {pluginKey} not found" -msgstr "Plugin mit dem Schlüssel {pluginKey} nicht gefunden" +#~ msgid "Plugin with key {pluginKey} not found" +#~ msgstr "Plugin with key {pluginKey} not found" #: src/tables/plugin/PluginListTable.tsx:97 -msgid "An error occurred while fetching plugin details" -msgstr "Beim Laden der Plugin-Details ist ein Fehler aufgetreten" +#~ msgid "An error occurred while fetching plugin details" +#~ msgstr "An error occurred while fetching plugin details" + +#: src/tables/plugin/PluginListTable.tsx:109 +msgid "Description not available" +msgstr "描述不可用" #: src/tables/plugin/PluginListTable.tsx:113 #~ msgid "Plugin with id {id} not found" #~ msgstr "Plugin with id {id} not found" #: src/tables/plugin/PluginListTable.tsx:122 -msgid "Plugin information" -msgstr "Plugin-Informationen" - -#: src/tables/plugin/PluginListTable.tsx:134 -msgid "Author" -msgstr "Autor" +#~ msgid "Plugin information" +#~ msgstr "Plugin information" #: src/tables/plugin/PluginListTable.tsx:134 #~ msgid "Plugin Actions" @@ -6881,79 +8044,124 @@ msgstr "Autor" #~ msgid "Edit plugin" #~ msgstr "Edit plugin" +#: src/tables/plugin/PluginListTable.tsx:144 +msgid "Confirm plugin activation" +msgstr "Plugin Aktivierung bestätigen" + +#: src/tables/plugin/PluginListTable.tsx:145 +msgid "Confirm plugin deactivation" +msgstr "Plugin Deaktivierung bestätigen" + +#: src/tables/plugin/PluginListTable.tsx:150 +msgid "The selected plugin will be activated" +msgstr "Das ausgewählte Plugin wird aktiviert" + +#: src/tables/plugin/PluginListTable.tsx:151 +msgid "The selected plugin will be deactivated" +msgstr "Das ausgewählte Plugin wird deaktiviert" + #: src/tables/plugin/PluginListTable.tsx:152 #: src/tables/plugin/PluginListTable.tsx:153 #~ msgid "Reload" #~ msgstr "Reload" -#: src/tables/plugin/PluginListTable.tsx:154 -msgid "Plugin is not active" -msgstr "Plugin ist nicht aktiv" - #: src/tables/plugin/PluginListTable.tsx:163 -msgid "Package information" -msgstr "Paketinformationen" +#~ msgid "Package information" +#~ msgstr "Package information" #: src/tables/plugin/PluginListTable.tsx:169 -msgid "Package Name" -msgstr "Paket Name" +msgid "Deactivate" +msgstr "Deaktivieren" -#: src/tables/plugin/PluginListTable.tsx:175 -msgid "Installation Path" -msgstr "Installationspfad" +#: src/tables/plugin/PluginListTable.tsx:183 +msgid "Activate" +msgstr "Aktivieren" -#: src/tables/plugin/PluginListTable.tsx:185 -msgid "Package" -msgstr "Paket" +#: src/tables/plugin/PluginListTable.tsx:184 +msgid "Activate selected plugin" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:196 +msgid "Update selected plugin" +msgstr "" #: src/tables/plugin/PluginListTable.tsx:197 -msgid "Plugin settings" -msgstr "Plugin-Einstellungen" +#~ msgid "Plugin settings" +#~ msgstr "Plugin settings" #: src/tables/plugin/PluginListTable.tsx:214 -msgid "Plugin is active" -msgstr "Plugin ist aktiv" +#: src/tables/stock/InstalledItemsTable.tsx:107 +msgid "Uninstall" +msgstr "Deinstallieren" -#: src/tables/plugin/PluginListTable.tsx:220 -msgid "Plugin is inactive" -msgstr "Plugin ist inaktiv" +#: src/tables/plugin/PluginListTable.tsx:215 +msgid "Uninstall selected plugin" +msgstr "" -#: src/tables/plugin/PluginListTable.tsx:227 -msgid "Plugin is not installed" -msgstr "Plugin ist nicht installiert" +#: src/tables/plugin/PluginListTable.tsx:233 +msgid "Delete selected plugin configuration" +msgstr "" -#: src/tables/plugin/PluginListTable.tsx:253 -msgid "Plugin" -msgstr "Plugin" - -#: src/tables/plugin/PluginListTable.tsx:287 -msgid "Description not available" -msgstr "描述不可用" - -#: src/tables/plugin/PluginListTable.tsx:319 -msgid "Confirm plugin activation" -msgstr "Plugin Aktivierung bestätigen" - -#: src/tables/plugin/PluginListTable.tsx:320 -msgid "Confirm plugin deactivation" -msgstr "Plugin Deaktivierung bestätigen" - -#: src/tables/plugin/PluginListTable.tsx:325 -msgid "The selected plugin will be activated" -msgstr "Das ausgewählte Plugin wird aktiviert" - -#: src/tables/plugin/PluginListTable.tsx:326 -msgid "The selected plugin will be deactivated" -msgstr "Das ausgewählte Plugin wird deaktiviert" - -#: src/tables/plugin/PluginListTable.tsx:334 +#: src/tables/plugin/PluginListTable.tsx:249 msgid "Activate Plugin" msgstr "Plugin aktivieren" +#: src/tables/plugin/PluginListTable.tsx:270 +msgid "Install plugin" +msgstr "Plugin installieren" + +#: src/tables/plugin/PluginListTable.tsx:283 +msgid "Install" +msgstr "Installieren" + +#: src/tables/plugin/PluginListTable.tsx:284 +msgid "Plugin installed successfully" +msgstr "Plugin erfolgreich installiert" + +#: src/tables/plugin/PluginListTable.tsx:289 +msgid "Uninstall Plugin" +msgstr "Plugin deinstallieren" + +#: src/tables/plugin/PluginListTable.tsx:301 +msgid "Confirm plugin uninstall" +msgstr "Plugin deinstallieren bestätigen" + +#: src/tables/plugin/PluginListTable.tsx:304 +msgid "The selected plugin will be uninstalled." +msgstr "Das ausgewählte Plugin wird deinstalliert." + +#: src/tables/plugin/PluginListTable.tsx:308 +#~ msgid "This action cannot be undone." +#~ msgstr "This action cannot be undone." + +#: src/tables/plugin/PluginListTable.tsx:309 +msgid "Plugin uninstalled successfully" +msgstr "Plugin erfolgreich deinstalliert" + +#: src/tables/plugin/PluginListTable.tsx:317 +msgid "Delete Plugin" +msgstr "Plugin löschen" + +#: src/tables/plugin/PluginListTable.tsx:318 +msgid "Deleting this plugin configuration will remove all associated settings and data. Are you sure you want to delete this plugin?" +msgstr "Durch das Löschen dieser Plugin-Konfiguration werden alle zugehörigen Einstellungen und Daten entfernt. Soll dieses Plugin gelöscht werden?" + +#: src/tables/plugin/PluginListTable.tsx:331 +msgid "Plugins reloaded" +msgstr "Erweiterungen neu geladen" + +#: src/tables/plugin/PluginListTable.tsx:332 +msgid "Plugins were reloaded successfully" +msgstr "Plugins wurden erfolgreich neu geladen" + #: src/tables/plugin/PluginListTable.tsx:338 #~ msgid "Deactivate Plugin" #~ msgstr "Deactivate Plugin" +#: src/tables/plugin/PluginListTable.tsx:350 +msgid "Reload Plugins" +msgstr "Plugins neu laden" + #: src/tables/plugin/PluginListTable.tsx:354 #~ msgid "The following plugin will be activated" #~ msgstr "The following plugin will be activated" @@ -6962,17 +8170,17 @@ msgstr "Plugin aktivieren" #~ msgid "The following plugin will be deactivated" #~ msgstr "The following plugin will be deactivated" -#: src/tables/plugin/PluginListTable.tsx:362 -msgid "Deactivate" -msgstr "Deaktivieren" +#: src/tables/plugin/PluginListTable.tsx:357 +msgid "Install Plugin" +msgstr "Plugin installieren" #: src/tables/plugin/PluginListTable.tsx:366 #~ msgid "Confirm" #~ msgstr "Confirm" -#: src/tables/plugin/PluginListTable.tsx:373 -msgid "Activate" -msgstr "Aktivieren" +#: src/tables/plugin/PluginListTable.tsx:374 +msgid "Plugin Detail" +msgstr "Plugin Detail" #: src/tables/plugin/PluginListTable.tsx:376 #~ msgid "Activating plugin" @@ -6998,76 +8206,12 @@ msgstr "Aktivieren" #~ msgid "Error updating plugin" #~ msgstr "Error updating plugin" -#: src/tables/plugin/PluginListTable.tsx:406 -msgid "Uninstall" -msgstr "Deinstallieren" - -#: src/tables/plugin/PluginListTable.tsx:438 -msgid "Install plugin" -msgstr "Plugin installieren" - -#: src/tables/plugin/PluginListTable.tsx:451 -msgid "Install" -msgstr "Installieren" - -#: src/tables/plugin/PluginListTable.tsx:452 -msgid "Plugin installed successfully" -msgstr "Plugin erfolgreich installiert" - -#: src/tables/plugin/PluginListTable.tsx:457 -msgid "Uninstall Plugin" -msgstr "Plugin deinstallieren" - -#: src/tables/plugin/PluginListTable.tsx:469 -msgid "Confirm plugin uninstall" -msgstr "Plugin deinstallieren bestätigen" - -#: src/tables/plugin/PluginListTable.tsx:472 -msgid "The selected plugin will be uninstalled." -msgstr "Das ausgewählte Plugin wird deinstalliert." - -#: src/tables/plugin/PluginListTable.tsx:473 -msgid "This action cannot be undone." -msgstr "Diese Aktion kann nicht rückgängig gemacht werden." - -#: src/tables/plugin/PluginListTable.tsx:477 -msgid "Plugin uninstalled successfully" -msgstr "Plugin erfolgreich deinstalliert" - -#: src/tables/plugin/PluginListTable.tsx:484 -msgid "Delete Plugin" -msgstr "Plugin löschen" - -#: src/tables/plugin/PluginListTable.tsx:485 -msgid "Deleting this plugin configuration will remove all associated settings and data. Are you sure you want to delete this plugin?" -msgstr "Durch das Löschen dieser Plugin-Konfiguration werden alle zugehörigen Einstellungen und Daten entfernt. Soll dieses Plugin gelöscht werden?" - -#: src/tables/plugin/PluginListTable.tsx:498 -msgid "Plugins reloaded" -msgstr "Erweiterungen neu geladen" - -#: src/tables/plugin/PluginListTable.tsx:499 -msgid "Plugins were reloaded successfully" -msgstr "Plugins wurden erfolgreich neu geladen" - -#: src/tables/plugin/PluginListTable.tsx:515 -msgid "Reload Plugins" -msgstr "Plugins neu laden" - -#: src/tables/plugin/PluginListTable.tsx:524 -msgid "Install Plugin" -msgstr "Plugin installieren" - -#: src/tables/plugin/PluginListTable.tsx:544 -msgid "Plugin Detail" -msgstr "Plugin Detail" - -#: src/tables/plugin/PluginListTable.tsx:573 +#: src/tables/plugin/PluginListTable.tsx:411 msgid "Sample" msgstr "Beispiel" -#: src/tables/plugin/PluginListTable.tsx:578 -#: src/tables/stock/StockItemTable.tsx:340 +#: src/tables/plugin/PluginListTable.tsx:416 +#: src/tables/stock/StockItemTable.tsx:344 msgid "Installed" msgstr "Installiert" @@ -7116,82 +8260,78 @@ msgstr "Parameter löschen" #~ msgid "Are you sure you want to remove this manufacturer part?" #~ msgstr "Are you sure you want to remove this manufacturer part?" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:102 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:339 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:103 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:356 msgid "Import Line Items" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:135 -msgid "Part Description" -msgstr "Teilebeschreibung" - -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:201 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:207 msgid "Supplier Code" msgstr "Lieferantennummer" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:208 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:214 msgid "Supplier Link" msgstr "Lieferanten-Link" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:215 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:220 msgid "Manufacturer Code" msgstr "Herstellernummer" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:229 -msgid "Destination" -msgstr "Bestimmungsort" +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:248 +msgid "Show line items which have been received" +msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:300 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:316 msgid "Receive line item" msgstr "Position empfangen" #: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:344 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:142 -#: src/tables/sales/SalesOrderLineItemTable.tsx:240 -msgid "Add line item" -msgstr "Position hinzufügen" +#: src/tables/sales/ReturnOrderLineItemTable.tsx:160 +#: src/tables/sales/SalesOrderLineItemTable.tsx:258 +#~ msgid "Add line item" +#~ msgstr "Add line item" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:354 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:373 msgid "Receive items" msgstr "Erhaltene Artikel" -#: src/tables/purchasing/SupplierPartTable.tsx:93 +#: src/tables/purchasing/SupplierPartTable.tsx:95 msgid "MPN" msgstr "MPN" -#: src/tables/purchasing/SupplierPartTable.tsx:122 +#: src/tables/purchasing/SupplierPartTable.tsx:124 msgid "Base units" msgstr "Basiseinheiten" -#: src/tables/purchasing/SupplierPartTable.tsx:170 +#: src/tables/purchasing/SupplierPartTable.tsx:172 msgid "Supplier part created" msgstr "Zuliefererteil erstellt" -#: src/tables/purchasing/SupplierPartTable.tsx:176 +#: src/tables/purchasing/SupplierPartTable.tsx:179 msgid "Add supplier part" msgstr "Zuliefererteil hinzufügen" -#: src/tables/purchasing/SupplierPartTable.tsx:188 +#: src/tables/purchasing/SupplierPartTable.tsx:191 msgid "Show active supplier parts" msgstr "Aktive Lieferantenteile anzeigen" -#: src/tables/purchasing/SupplierPartTable.tsx:192 -msgid "Active Part" -msgstr "Aktives Teil" - -#: src/tables/purchasing/SupplierPartTable.tsx:193 -msgid "Show active internal parts" -msgstr "Zeige aktive interne Teile" - #: src/tables/purchasing/SupplierPartTable.tsx:193 #~ msgid "Supplier part updated" #~ msgstr "Supplier part updated" -#: src/tables/purchasing/SupplierPartTable.tsx:197 +#: src/tables/purchasing/SupplierPartTable.tsx:195 +msgid "Active Part" +msgstr "Aktives Teil" + +#: src/tables/purchasing/SupplierPartTable.tsx:196 +msgid "Show active internal parts" +msgstr "Zeige aktive interne Teile" + +#: src/tables/purchasing/SupplierPartTable.tsx:200 msgid "Active Supplier" msgstr "Aktiver Lieferant" -#: src/tables/purchasing/SupplierPartTable.tsx:198 +#: src/tables/purchasing/SupplierPartTable.tsx:201 msgid "Show active suppliers" msgstr "Zeige aktiven Lieferant" @@ -7203,98 +8343,186 @@ msgstr "Zeige aktiven Lieferant" #~ msgid "Are you sure you want to remove this supplier part?" #~ msgstr "Are you sure you want to remove this supplier part?" -#: src/tables/sales/ReturnOrderLineItemTable.tsx:114 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:139 msgid "Received Date" msgstr "" -#: src/tables/sales/ReturnOrderLineItemTable.tsx:128 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:153 msgid "Show items which have been received" msgstr "" -#: src/tables/sales/ReturnOrderLineItemTable.tsx:133 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:158 msgid "Filter by line item status" msgstr "" -#: src/tables/sales/ReturnOrderLineItemTable.tsx:158 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:176 +msgid "Receive selected items" +msgstr "" + +#: src/tables/sales/ReturnOrderLineItemTable.tsx:205 msgid "Receive Item" msgstr "" -#: src/tables/sales/SalesOrderLineItemTable.tsx:262 -msgid "Allocate stock" +#: src/tables/sales/SalesOrderAllocationTable.tsx:60 +msgid "Show outstanding allocations" msgstr "" -#: src/tables/sales/SalesOrderLineItemTable.tsx:272 +#: src/tables/sales/SalesOrderAllocationTable.tsx:168 +#: src/tables/sales/SalesOrderAllocationTable.tsx:190 +msgid "Edit Allocation" +msgstr "" + +#: src/tables/sales/SalesOrderAllocationTable.tsx:175 +#: src/tables/sales/SalesOrderAllocationTable.tsx:197 +msgid "Delete Allocation" +msgstr "" + +#: src/tables/sales/SalesOrderLineItemTable.tsx:244 +msgid "Allocate Serial Numbers" +msgstr "" + +#: src/tables/sales/SalesOrderLineItemTable.tsx:277 +msgid "Show lines which are fully allocated" +msgstr "" + +#: src/tables/sales/SalesOrderLineItemTable.tsx:280 +#~ msgid "Allocate stock" +#~ msgstr "Allocate stock" + +#: src/tables/sales/SalesOrderLineItemTable.tsx:282 +msgid "Show lines which are completed" +msgstr "" + +#: src/tables/sales/SalesOrderLineItemTable.tsx:291 +#~ msgid "Allocate Serials" +#~ msgstr "Allocate Serials" + +#: src/tables/sales/SalesOrderLineItemTable.tsx:340 +msgid "Allocate serials" +msgstr "" + +#: src/tables/sales/SalesOrderLineItemTable.tsx:356 msgid "Build stock" msgstr "" -#: src/tables/sales/SalesOrderLineItemTable.tsx:289 -#: src/tables/stock/StockItemTable.tsx:507 +#: src/tables/sales/SalesOrderLineItemTable.tsx:373 +#: src/tables/stock/StockItemTable.tsx:512 msgid "Order stock" msgstr "Bestand bestellen" -#: src/tables/sales/SalesOrderShipmentTable.tsx:40 +#: src/tables/sales/SalesOrderShipmentTable.tsx:51 +#~ msgid "Delete Shipment" +#~ msgstr "Delete Shipment" + +#: src/tables/sales/SalesOrderShipmentTable.tsx:57 msgid "Create Shipment" msgstr "" -#: src/tables/sales/SalesOrderShipmentTable.tsx:50 -msgid "Delete Shipment" -msgstr "" - -#: src/tables/sales/SalesOrderShipmentTable.tsx:58 -msgid "Edit Shipment" -msgstr "" - -#: src/tables/sales/SalesOrderShipmentTable.tsx:66 -msgid "Shipment Reference" -msgstr "" - -#: src/tables/sales/SalesOrderShipmentTable.tsx:71 +#: src/tables/sales/SalesOrderShipmentTable.tsx:104 msgid "Items" msgstr "" -#: src/tables/sales/SalesOrderShipmentTable.tsx:83 -msgid "Delivery Date" +#: src/tables/sales/SalesOrderShipmentTable.tsx:139 +msgid "View Shipment" msgstr "" -#: src/tables/sales/SalesOrderShipmentTable.tsx:107 -msgid "Complete Shipment" +#: src/tables/sales/SalesOrderShipmentTable.tsx:161 +msgid "Edit shipment" msgstr "" -#: src/tables/sales/SalesOrderShipmentTable.tsx:133 +#: src/tables/sales/SalesOrderShipmentTable.tsx:169 +msgid "Cancel shipment" +msgstr "" + +#: src/tables/sales/SalesOrderShipmentTable.tsx:184 msgid "Add shipment" msgstr "" -#: src/tables/sales/SalesOrderShipmentTable.tsx:146 -msgid "Shipped" -msgstr "" - -#: src/tables/sales/SalesOrderShipmentTable.tsx:147 +#: src/tables/sales/SalesOrderShipmentTable.tsx:198 msgid "Show shipments which have been shipped" msgstr "" -#: src/tables/sales/SalesOrderShipmentTable.tsx:151 -msgid "Delivered" -msgstr "" - -#: src/tables/sales/SalesOrderShipmentTable.tsx:152 +#: src/tables/sales/SalesOrderShipmentTable.tsx:203 msgid "Show shipments which have been delivered" msgstr "" -#: src/tables/settings/CurrencyTable.tsx:28 -msgid "Rate" -msgstr "Bewerten" +#: src/tables/settings/BarcodeScanHistoryTable.tsx:61 +msgid "Barcode Information" +msgstr "" -#: src/tables/settings/CurrencyTable.tsx:40 -msgid "Exchange rates updated" -msgstr "Wechselkurse aktualisiert" +#: src/tables/settings/BarcodeScanHistoryTable.tsx:76 +#: src/tables/settings/ErrorTable.tsx:59 +msgid "Timestamp" +msgstr "" -#: src/tables/settings/CurrencyTable.tsx:46 -msgid "Exchange rate update error" -msgstr "Fehler beim Aktualisieren des Wechselkurses" +#: src/tables/settings/BarcodeScanHistoryTable.tsx:86 +msgid "Endpoint" +msgstr "" -#: src/tables/settings/CurrencyTable.tsx:57 -msgid "Refresh currency exchange rates" -msgstr "Wechselkurse aktualisieren" +#: src/tables/settings/BarcodeScanHistoryTable.tsx:90 +#: src/tables/settings/BarcodeScanHistoryTable.tsx:217 +#: src/tables/stock/StockItemTestResultTable.tsx:174 +msgid "Result" +msgstr "Ergebnis" + +#: src/tables/settings/BarcodeScanHistoryTable.tsx:98 +msgid "Context" +msgstr "" + +#: src/tables/settings/BarcodeScanHistoryTable.tsx:119 +msgid "Response" +msgstr "" + +#: src/tables/settings/BarcodeScanHistoryTable.tsx:213 +#: src/tables/settings/ImportSessionTable.tsx:121 +#: src/tables/stock/StockTrackingTable.tsx:183 +msgid "Filter by user" +msgstr "Nach Benutzer filtern" + +#: src/tables/settings/BarcodeScanHistoryTable.tsx:218 +msgid "Filter by result" +msgstr "" + +#: src/tables/settings/BarcodeScanHistoryTable.tsx:232 +msgid "Delete Barcode Scan Record" +msgstr "" + +#: src/tables/settings/BarcodeScanHistoryTable.tsx:258 +msgid "Barcode Scan Details" +msgstr "" + +#: src/tables/settings/BarcodeScanHistoryTable.tsx:268 +msgid "Logging Disabled" +msgstr "" + +#: src/tables/settings/BarcodeScanHistoryTable.tsx:270 +msgid "Barcode logging is not enabled" +msgstr "" + +#: src/tables/settings/CustomStateTable.tsx:36 +msgid "Display Name" +msgstr "" + +#: src/tables/settings/CustomStateTable.tsx:52 +msgid "Model" +msgstr "" + +#: src/tables/settings/CustomStateTable.tsx:65 +#: src/tables/settings/CustomStateTable.tsx:115 +msgid "Add State" +msgstr "" + +#: src/tables/settings/CustomStateTable.tsx:77 +msgid "Edit State" +msgstr "" + +#: src/tables/settings/CustomStateTable.tsx:85 +msgid "Delete State" +msgstr "" + +#: src/tables/settings/CustomStateTable.tsx:115 +#~ msgid "Add state" +#~ msgstr "Add state" #: src/tables/settings/CustomUnitsTable.tsx:50 msgid "Add Custom Unit" @@ -7312,59 +8540,71 @@ msgstr "Benutzerdefinierte Einheit löschen" msgid "Add custom unit" msgstr "Benutzerdefinierte Einheit hinzufügen" -#: src/tables/settings/ErrorTable.tsx:31 -msgid "When" -msgstr "Wann" - -#: src/tables/settings/ErrorTable.tsx:41 -msgid "Error Information" -msgstr "Fehlerinformationen" - #: src/tables/settings/ErrorTable.tsx:51 #~ msgid "Delete error report" #~ msgstr "Delete error report" -#: src/tables/settings/ErrorTable.tsx:53 +#: src/tables/settings/ErrorTable.tsx:67 +msgid "Traceback" +msgstr "" + +#: src/tables/settings/ErrorTable.tsx:103 +msgid "When" +msgstr "Wann" + +#: src/tables/settings/ErrorTable.tsx:113 +msgid "Error Information" +msgstr "Fehlerinformationen" + +#: src/tables/settings/ErrorTable.tsx:123 msgid "Delete Error Report" msgstr "Fehlerbericht löschen" -#: src/tables/settings/ErrorTable.tsx:55 +#: src/tables/settings/ErrorTable.tsx:125 msgid "Are you sure you want to delete this error report?" msgstr "Soll dieser Fehler Bericht wirklich gelöscht werden?" -#: src/tables/settings/ErrorTable.tsx:57 +#: src/tables/settings/ErrorTable.tsx:127 msgid "Error report deleted" msgstr "Fehlerbericht wurde gelöscht" -#: src/tables/settings/ErrorTable.tsx:79 -#: src/tables/settings/FailedTasksTable.tsx:59 +#: src/tables/settings/ErrorTable.tsx:146 +#: src/tables/settings/FailedTasksTable.tsx:65 msgid "Error Details" msgstr "Fehlerdetails" -#: src/tables/settings/FailedTasksTable.tsx:26 -#: src/tables/settings/PendingTasksTable.tsx:19 +#: src/tables/settings/FailedTasksTable.tsx:32 +#: src/tables/settings/PendingTasksTable.tsx:23 #: src/tables/settings/ScheduledTasksTable.tsx:19 msgid "Task" msgstr "Aufgabe" -#: src/tables/settings/FailedTasksTable.tsx:32 -#: src/tables/settings/PendingTasksTable.tsx:24 +#: src/tables/settings/FailedTasksTable.tsx:38 +#: src/tables/settings/PendingTasksTable.tsx:28 msgid "Task ID" msgstr "Aufgaben ID" -#: src/tables/settings/FailedTasksTable.tsx:36 -#: src/tables/stock/StockItemTestResultTable.tsx:211 +#: src/tables/settings/FailedTasksTable.tsx:42 +#: src/tables/stock/StockItemTestResultTable.tsx:218 msgid "Started" msgstr "Gestartet" -#: src/tables/settings/FailedTasksTable.tsx:42 +#: src/tables/settings/FailedTasksTable.tsx:48 msgid "Stopped" msgstr "Gestoppt" -#: src/tables/settings/FailedTasksTable.tsx:48 +#: src/tables/settings/FailedTasksTable.tsx:54 msgid "Attempts" msgstr "Versuche" +#: src/tables/settings/FailedTasksTable.tsx:92 +msgid "No Information" +msgstr "" + +#: src/tables/settings/FailedTasksTable.tsx:93 +msgid "No error details are available for this task" +msgstr "" + #: src/tables/settings/GroupTable.tsx:90 msgid "Group with id {id} not found" msgstr "Gruppe mit der ID {id} nicht gefunden" @@ -7398,42 +8638,34 @@ msgstr "Gruppe hinzufügen" msgid "Edit group" msgstr "Gruppe bearbeiten" -#: src/tables/settings/ImportSessionTable.tsx:38 +#: src/tables/settings/ImportSessionTable.tsx:37 msgid "Delete Import Session" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:44 +#: src/tables/settings/ImportSessionTable.tsx:43 #: src/tables/settings/ImportSessionTable.tsx:131 msgid "Create Import Session" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:69 +#: src/tables/settings/ImportSessionTable.tsx:68 msgid "Uploaded" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:79 -msgid "Imported Rows" -msgstr "" - -#: src/tables/settings/ImportSessionTable.tsx:109 -#: src/tables/settings/TemplateTable.tsx:289 +#: src/tables/settings/ImportSessionTable.tsx:108 +#: src/tables/settings/TemplateTable.tsx:369 msgid "Model Type" msgstr "Modelltyp" -#: src/tables/settings/ImportSessionTable.tsx:110 -#: src/tables/settings/TemplateTable.tsx:290 +#: src/tables/settings/ImportSessionTable.tsx:109 +#: src/tables/settings/TemplateTable.tsx:370 msgid "Filter by target model type" msgstr "Nach Modelltyp filtern" -#: src/tables/settings/ImportSessionTable.tsx:116 +#: src/tables/settings/ImportSessionTable.tsx:115 msgid "Filter by import session status" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:122 -msgid "Filter by user" -msgstr "Nach Benutzer filtern" - -#: src/tables/settings/PendingTasksTable.tsx:38 +#: src/tables/settings/PendingTasksTable.tsx:42 msgid "Arguments" msgstr "Parameter" @@ -7461,12 +8693,16 @@ msgstr "Letzte Ausführung" msgid "Next Run" msgstr "Nächste Ausführung" -#: src/tables/settings/TemplateTable.tsx:85 -msgid "Template not found" +#: src/tables/settings/StocktakeReportTable.tsx:28 +msgid "Report" msgstr "" -#: src/tables/settings/TemplateTable.tsx:87 -msgid "An error occurred while fetching template details" +#: src/tables/settings/StocktakeReportTable.tsx:35 +msgid "Part Count" +msgstr "" + +#: src/tables/settings/StocktakeReportTable.tsx:58 +msgid "Delete Report" msgstr "" #: src/tables/settings/TemplateTable.tsx:120 @@ -7481,22 +8717,13 @@ msgstr "" #~ msgid "actions" #~ msgstr "actions" -#: src/tables/settings/TemplateTable.tsx:177 -msgid "Modify" -msgstr "Bearbeiten" - -#: src/tables/settings/TemplateTable.tsx:178 -msgid "Modify template file" +#: src/tables/settings/TemplateTable.tsx:162 +msgid "Template not found" msgstr "" -#: src/tables/settings/TemplateTable.tsx:234 -#: src/tables/settings/TemplateTable.tsx:302 -msgid "Edit Template" -msgstr "Vorlage bearbeiten" - -#: src/tables/settings/TemplateTable.tsx:242 -msgid "Delete template" -msgstr "Vorlage entfernen" +#: src/tables/settings/TemplateTable.tsx:164 +msgid "An error occurred while fetching template details" +msgstr "" #: src/tables/settings/TemplateTable.tsx:243 #~ msgid "Add new" @@ -7506,103 +8733,137 @@ msgstr "Vorlage entfernen" #~ msgid "Create new" #~ msgstr "Create new" -#: src/tables/settings/TemplateTable.tsx:248 +#: src/tables/settings/TemplateTable.tsx:257 +msgid "Modify" +msgstr "Bearbeiten" + +#: src/tables/settings/TemplateTable.tsx:258 +msgid "Modify template file" +msgstr "" + +#: src/tables/settings/TemplateTable.tsx:314 +#: src/tables/settings/TemplateTable.tsx:382 +msgid "Edit Template" +msgstr "Vorlage bearbeiten" + +#: src/tables/settings/TemplateTable.tsx:322 +msgid "Delete template" +msgstr "Vorlage entfernen" + +#: src/tables/settings/TemplateTable.tsx:328 msgid "Add Template" msgstr "Vorlage hinzufügen" -#: src/tables/settings/TemplateTable.tsx:261 +#: src/tables/settings/TemplateTable.tsx:341 msgid "Add template" msgstr "Vorlage hinzufügen" -#: src/tables/settings/TemplateTable.tsx:284 +#: src/tables/settings/TemplateTable.tsx:364 msgid "Filter by enabled status" msgstr "Nach aktiviertem Status filtern" -#: src/tables/settings/UserTable.tsx:82 +#: src/tables/settings/UserTable.tsx:81 msgid "User with id {id} not found" msgstr "Benutzer mit der ID {id} nicht gefunden" -#: src/tables/settings/UserTable.tsx:84 +#: src/tables/settings/UserTable.tsx:83 msgid "An error occurred while fetching user details" msgstr "Fehler beim Abrufen der Benutzer Details" -#: src/tables/settings/UserTable.tsx:102 +#: src/tables/settings/UserTable.tsx:101 msgid "Is Active" msgstr "Ist aktiv" -#: src/tables/settings/UserTable.tsx:103 +#: src/tables/settings/UserTable.tsx:102 msgid "Designates whether this user should be treated as active. Unselect this instead of deleting accounts." msgstr "Bestimmt ob dieser Benutzer aktiv ist. Ein Benutzer sollte nie gelöscht werden sondern nur deaktiviert." -#: src/tables/settings/UserTable.tsx:107 +#: src/tables/settings/UserTable.tsx:106 msgid "Is Staff" msgstr "Ist Mitarbeiter" -#: src/tables/settings/UserTable.tsx:108 +#: src/tables/settings/UserTable.tsx:107 msgid "Designates whether the user can log into the django admin site." msgstr "Bestimmt, ob der Benutzer sich auf der Django-Admin-Seite anmelden kann." -#: src/tables/settings/UserTable.tsx:112 +#: src/tables/settings/UserTable.tsx:111 msgid "Is Superuser" msgstr "Ist Superuser" -#: src/tables/settings/UserTable.tsx:113 +#: src/tables/settings/UserTable.tsx:112 msgid "Designates that this user has all permissions without explicitly assigning them." msgstr "Bestimmt, dass dieser Benutzer alle Berechtigungen hat, ohne sie explizit zuzuweisen." -#: src/tables/settings/UserTable.tsx:123 +#: src/tables/settings/UserTable.tsx:122 msgid "You cannot edit the rights for the currently logged-in user." msgstr "Die Berechtigungen für den aktuell angemeldeten Benutzer können nicht bearbeitet werden." -#: src/tables/settings/UserTable.tsx:154 +#: src/tables/settings/UserTable.tsx:153 msgid "No groups" msgstr "Keine Gruppen" -#: src/tables/settings/UserTable.tsx:245 +#: src/tables/settings/UserTable.tsx:244 msgid "Delete user" msgstr "Benutzer löschen" -#: src/tables/settings/UserTable.tsx:246 +#: src/tables/settings/UserTable.tsx:245 msgid "User deleted" msgstr "Benutzer gelöscht" -#: src/tables/settings/UserTable.tsx:248 +#: src/tables/settings/UserTable.tsx:247 msgid "Are you sure you want to delete this user?" msgstr "Sind Sie sicher, dass Sie diese*n Benutzer*in löschen wollen?" -#: src/tables/settings/UserTable.tsx:254 -#: src/tables/settings/UserTable.tsx:272 +#: src/tables/settings/UserTable.tsx:253 +#: src/tables/settings/UserTable.tsx:271 msgid "Add user" msgstr "Benutzer hinzufügen" -#: src/tables/settings/UserTable.tsx:262 +#: src/tables/settings/UserTable.tsx:261 msgid "Added user" msgstr "Benutzer hinzugefügt" -#: src/tables/settings/UserTable.tsx:285 +#: src/tables/settings/UserTable.tsx:284 msgid "Show active users" msgstr "Aktive Benutzer anzeigen" -#: src/tables/settings/UserTable.tsx:289 +#: src/tables/settings/UserTable.tsx:288 msgid "Staff" msgstr "Mitarbeiter" -#: src/tables/settings/UserTable.tsx:290 +#: src/tables/settings/UserTable.tsx:289 msgid "Show staff users" msgstr "Mitarbeiter anzeigen" #: src/tables/settings/UserTable.tsx:294 -msgid "Superuser" -msgstr "Administrator" - -#: src/tables/settings/UserTable.tsx:295 msgid "Show superusers" msgstr "Administratoren anzeigen" -#: src/tables/settings/UserTable.tsx:305 +#: src/tables/settings/UserTable.tsx:304 msgid "Edit user" msgstr "Benutzer bearbeiten" +#: src/tables/stock/InstalledItemsTable.tsx:37 +#: src/tables/stock/InstalledItemsTable.tsx:90 +msgid "Install Item" +msgstr "" + +#: src/tables/stock/InstalledItemsTable.tsx:39 +msgid "Item installed" +msgstr "" + +#: src/tables/stock/InstalledItemsTable.tsx:50 +msgid "Uninstall Item" +msgstr "" + +#: src/tables/stock/InstalledItemsTable.tsx:52 +msgid "Item uninstalled" +msgstr "" + +#: src/tables/stock/InstalledItemsTable.tsx:108 +msgid "Uninstall stock item" +msgstr "" + #: src/tables/stock/LocationTypesTable.tsx:39 #: src/tables/stock/LocationTypesTable.tsx:109 msgid "Add Location Type" @@ -7620,276 +8881,272 @@ msgstr "Lagerorttyp löschen" msgid "Icon" msgstr "Symbol" -#: src/tables/stock/StockItemTable.tsx:101 +#: src/tables/stock/StockItemTable.tsx:90 msgid "This stock item is in production" msgstr "Dieser Lagerbestand ist in Produktion" -#: src/tables/stock/StockItemTable.tsx:110 +#: src/tables/stock/StockItemTable.tsx:97 msgid "This stock item has been assigned to a sales order" msgstr "Dieser Lagerbestand wurde einem Verkaufsauftrag zugewiesen" -#: src/tables/stock/StockItemTable.tsx:119 +#: src/tables/stock/StockItemTable.tsx:104 msgid "This stock item has been assigned to a customer" msgstr "Dieser Lagerbestand wurde einem Kunden zugewiesen" -#: src/tables/stock/StockItemTable.tsx:128 +#: src/tables/stock/StockItemTable.tsx:111 msgid "This stock item is installed in another stock item" msgstr "Dieser Lagerartikel ist in einem anderen Lagerartikel verbaut" -#: src/tables/stock/StockItemTable.tsx:137 +#: src/tables/stock/StockItemTable.tsx:118 msgid "This stock item has been consumed by a build order" msgstr "Lagerbestand wurde durch einen Bauauftrag verbraucht" -#: src/tables/stock/StockItemTable.tsx:146 +#: src/tables/stock/StockItemTable.tsx:125 +msgid "This stock item is unavailable" +msgstr "" + +#: src/tables/stock/StockItemTable.tsx:134 msgid "This stock item has expired" msgstr "Dieser Lagerartikel ist abgelaufen" -#: src/tables/stock/StockItemTable.tsx:150 +#: src/tables/stock/StockItemTable.tsx:138 msgid "This stock item is stale" msgstr "Dieser Lagerartikel ist veraltet" -#: src/tables/stock/StockItemTable.tsx:161 +#: src/tables/stock/StockItemTable.tsx:150 msgid "This stock item is fully allocated" msgstr "Dieser Lagerartikel ist vollständig zugewiesen" -#: src/tables/stock/StockItemTable.tsx:168 +#: src/tables/stock/StockItemTable.tsx:157 msgid "This stock item is partially allocated" msgstr "Dieser Lagerartikel ist teilweise zugewiesen" -#: src/tables/stock/StockItemTable.tsx:196 +#: src/tables/stock/StockItemTable.tsx:185 msgid "This stock item has been depleted" msgstr "Dieser Lagerartikel wurde verbraucht" -#: src/tables/stock/StockItemTable.tsx:232 +#: src/tables/stock/StockItemTable.tsx:280 msgid "Stocktake Date" msgstr "" -#: src/tables/stock/StockItemTable.tsx:236 -msgid "Expiry Date" -msgstr "" - -#: src/tables/stock/StockItemTable.tsx:260 -msgid "Stock Value" -msgstr "" - -#: src/tables/stock/StockItemTable.tsx:290 +#: src/tables/stock/StockItemTable.tsx:294 msgid "Show stock for active parts" msgstr "Bestand aktiver Teile anzeigen" -#: src/tables/stock/StockItemTable.tsx:295 +#: src/tables/stock/StockItemTable.tsx:299 msgid "Filter by stock status" msgstr "Nach Lagerstatus filtern" #: src/tables/stock/StockItemTable.tsx:301 -msgid "Show stock for assmebled parts" -msgstr "Zeige Bestand für Baugruppen" +#~ msgid "Show stock for assmebled parts" +#~ msgstr "Show stock for assmebled parts" -#: src/tables/stock/StockItemTable.tsx:306 +#: src/tables/stock/StockItemTable.tsx:305 +msgid "Show stock for assembled parts" +msgstr "" + +#: src/tables/stock/StockItemTable.tsx:310 msgid "Show items which have been allocated" msgstr "Zugewiesene Artikel anzeigen" -#: src/tables/stock/StockItemTable.tsx:311 +#: src/tables/stock/StockItemTable.tsx:315 msgid "Show items which are available" msgstr "Verfügbare Artikel anzeigen" -#: src/tables/stock/StockItemTable.tsx:315 +#: src/tables/stock/StockItemTable.tsx:319 #: src/tables/stock/StockLocationTable.tsx:44 msgid "Include Sublocations" msgstr "Unter-Lagerorte einschließen" -#: src/tables/stock/StockItemTable.tsx:316 +#: src/tables/stock/StockItemTable.tsx:320 msgid "Include stock in sublocations" msgstr "Bestand in Unter-Lagerorten einschließen" -#: src/tables/stock/StockItemTable.tsx:320 +#: src/tables/stock/StockItemTable.tsx:324 msgid "Depleted" msgstr "Erschöpft" -#: src/tables/stock/StockItemTable.tsx:321 +#: src/tables/stock/StockItemTable.tsx:325 msgid "Show depleted stock items" msgstr "Zeige aufgebrauchte Lagerbestände" -#: src/tables/stock/StockItemTable.tsx:326 +#: src/tables/stock/StockItemTable.tsx:330 msgid "Show items which are in stock" msgstr "Zeige Teile welche im Lager sind" -#: src/tables/stock/StockItemTable.tsx:331 +#: src/tables/stock/StockItemTable.tsx:335 msgid "Show items which are in production" msgstr "Zeige Teile welche in Produktion sind" -#: src/tables/stock/StockItemTable.tsx:336 +#: src/tables/stock/StockItemTable.tsx:340 msgid "Include stock items for variant parts" msgstr "Lagerartikel für Teile-Varianten einschließen" -#: src/tables/stock/StockItemTable.tsx:341 +#: src/tables/stock/StockItemTable.tsx:345 msgid "Show stock items which are installed in other items" msgstr "Zeige Bestand, welcher in anderen Teilen verbaut ist" -#: src/tables/stock/StockItemTable.tsx:345 +#: src/tables/stock/StockItemTable.tsx:349 msgid "Sent to Customer" msgstr "Zum Kunden geschickt" -#: src/tables/stock/StockItemTable.tsx:346 +#: src/tables/stock/StockItemTable.tsx:350 msgid "Show items which have been sent to a customer" msgstr "Zeige Bestand, welcher zum Kunden gesendet wurde" -#: src/tables/stock/StockItemTable.tsx:350 +#: src/tables/stock/StockItemTable.tsx:354 msgid "Is Serialized" msgstr "Hat Seriennummer" -#: src/tables/stock/StockItemTable.tsx:351 +#: src/tables/stock/StockItemTable.tsx:355 msgid "Show items which have a serial number" msgstr "Zeige Bestand mit Seriennummer" -#: src/tables/stock/StockItemTable.tsx:358 +#: src/tables/stock/StockItemTable.tsx:362 msgid "Has Batch Code" msgstr "Hat Losnummer" -#: src/tables/stock/StockItemTable.tsx:359 +#: src/tables/stock/StockItemTable.tsx:363 msgid "Show items which have a batch code" msgstr "Zeige Bestand mit Losnummer" -#: src/tables/stock/StockItemTable.tsx:365 +#: src/tables/stock/StockItemTable.tsx:369 msgid "Show tracked items" msgstr "Verfolgbare Objekte anzeigen" -#: src/tables/stock/StockItemTable.tsx:369 +#: src/tables/stock/StockItemTable.tsx:373 msgid "Has Purchase Price" msgstr "Hat Einkaufspreis" -#: src/tables/stock/StockItemTable.tsx:370 +#: src/tables/stock/StockItemTable.tsx:374 msgid "Show items which have a purchase price" msgstr "Zeige Bestand, für welchen ein Einkaufspreis verfügbar ist" -#: src/tables/stock/StockItemTable.tsx:378 +#: src/tables/stock/StockItemTable.tsx:382 msgid "External Location" msgstr "Externer Lagerort" -#: src/tables/stock/StockItemTable.tsx:379 +#: src/tables/stock/StockItemTable.tsx:383 msgid "Show items in an external location" msgstr "Zeige Elemente an einem externen Lagerort" -#: src/tables/stock/StockItemTable.tsx:451 +#: src/tables/stock/StockItemTable.tsx:456 msgid "Add a new stock item" msgstr "Lagerartikel hinzufügen" -#: src/tables/stock/StockItemTable.tsx:460 +#: src/tables/stock/StockItemTable.tsx:465 msgid "Remove some quantity from a stock item" msgstr "Bestimmte Menge aus dem Lagerartikel entfernen" -#: src/tables/stock/StockItemTable.tsx:482 +#: src/tables/stock/StockItemTable.tsx:487 msgid "Move Stock items to new locations" msgstr "Lagerartikel an neue Standorte verschieben" -#: src/tables/stock/StockItemTable.tsx:489 +#: src/tables/stock/StockItemTable.tsx:494 msgid "Change stock status" msgstr "Bestandsstatus ändern" -#: src/tables/stock/StockItemTable.tsx:491 +#: src/tables/stock/StockItemTable.tsx:496 msgid "Change the status of stock items" msgstr "Status der Lagerbestände ändern" -#: src/tables/stock/StockItemTable.tsx:498 +#: src/tables/stock/StockItemTable.tsx:503 msgid "Merge stock" msgstr "Bestand zusammenführen" -#: src/tables/stock/StockItemTable.tsx:500 +#: src/tables/stock/StockItemTable.tsx:505 msgid "Merge stock items" msgstr "Lagerartikel zusammenführen" -#: src/tables/stock/StockItemTable.tsx:509 -#: src/tables/stock/StockItemTable.tsx:516 +#: src/tables/stock/StockItemTable.tsx:514 +#: src/tables/stock/StockItemTable.tsx:521 msgid "Order new stock" msgstr "Neuen Bestand bestellen" -#: src/tables/stock/StockItemTable.tsx:514 +#: src/tables/stock/StockItemTable.tsx:519 msgid "Assign to customer" msgstr "Kunden zuweisen" -#: src/tables/stock/StockItemTable.tsx:523 +#: src/tables/stock/StockItemTable.tsx:528 msgid "Delete stock" msgstr "Bestand löschen" -#: src/tables/stock/StockItemTable.tsx:525 -msgid "Delete stock items" -msgstr "Lagerartikel löschen" +#: src/tables/stock/StockItemTable.tsx:528 +#~ msgid "Delete stock items" +#~ msgstr "Delete stock items" -#: src/tables/stock/StockItemTestResultTable.tsx:131 +#: src/tables/stock/StockItemTestResultTable.tsx:137 msgid "Test" msgstr "Test" -#: src/tables/stock/StockItemTestResultTable.tsx:157 +#: src/tables/stock/StockItemTestResultTable.tsx:163 msgid "Test result for installed stock item" msgstr "Testergebnis für installierten Lagerbestand" -#: src/tables/stock/StockItemTestResultTable.tsx:168 -msgid "Result" -msgstr "Ergebnis" - -#: src/tables/stock/StockItemTestResultTable.tsx:190 +#: src/tables/stock/StockItemTestResultTable.tsx:196 msgid "Attachment" msgstr "Anhang" -#: src/tables/stock/StockItemTestResultTable.tsx:206 +#: src/tables/stock/StockItemTestResultTable.tsx:212 msgid "Test station" msgstr "Teststation" -#: src/tables/stock/StockItemTestResultTable.tsx:226 +#: src/tables/stock/StockItemTestResultTable.tsx:234 msgid "Finished" msgstr "Fertiggestellt" -#: src/tables/stock/StockItemTestResultTable.tsx:268 -#: src/tables/stock/StockItemTestResultTable.tsx:339 +#: src/tables/stock/StockItemTestResultTable.tsx:286 +#: src/tables/stock/StockItemTestResultTable.tsx:357 msgid "Edit Test Result" msgstr "Testergebnis bearbeiten" -#: src/tables/stock/StockItemTestResultTable.tsx:270 +#: src/tables/stock/StockItemTestResultTable.tsx:288 msgid "Test result updated" msgstr "Testergebnis aktualisiert" -#: src/tables/stock/StockItemTestResultTable.tsx:276 -#: src/tables/stock/StockItemTestResultTable.tsx:348 +#: src/tables/stock/StockItemTestResultTable.tsx:294 +#: src/tables/stock/StockItemTestResultTable.tsx:366 msgid "Delete Test Result" msgstr "Testergebnis löschen" -#: src/tables/stock/StockItemTestResultTable.tsx:278 +#: src/tables/stock/StockItemTestResultTable.tsx:296 msgid "Test result deleted" msgstr "Testergebnis gelöscht" -#: src/tables/stock/StockItemTestResultTable.tsx:292 +#: src/tables/stock/StockItemTestResultTable.tsx:310 msgid "Test Passed" msgstr "Test bestanden" -#: src/tables/stock/StockItemTestResultTable.tsx:293 +#: src/tables/stock/StockItemTestResultTable.tsx:311 msgid "Test result has been recorded" msgstr "Testergebnis wurde erfasst" -#: src/tables/stock/StockItemTestResultTable.tsx:300 +#: src/tables/stock/StockItemTestResultTable.tsx:318 msgid "Failed to record test result" msgstr "Fehler beim Erfassen des Testergebnisses" -#: src/tables/stock/StockItemTestResultTable.tsx:317 +#: src/tables/stock/StockItemTestResultTable.tsx:335 msgid "Pass Test" msgstr "Test bestanden" -#: src/tables/stock/StockItemTestResultTable.tsx:366 +#: src/tables/stock/StockItemTestResultTable.tsx:384 msgid "Show results for required tests" msgstr "Ergebnisse für erforderliche Tests anzeigen" -#: src/tables/stock/StockItemTestResultTable.tsx:370 +#: src/tables/stock/StockItemTestResultTable.tsx:388 msgid "Include Installed" msgstr "Installierte Teile einschließen" -#: src/tables/stock/StockItemTestResultTable.tsx:371 +#: src/tables/stock/StockItemTestResultTable.tsx:389 msgid "Show results for installed stock items" msgstr "Zeige Ergebnisse für installierte Lagerartikel" -#: src/tables/stock/StockItemTestResultTable.tsx:375 -#: src/tables/stock/TestStatisticsTable.tsx:74 +#: src/tables/stock/StockItemTestResultTable.tsx:393 +#: src/tables/stock/TestStatisticsTable.tsx:62 msgid "Passed" msgstr "Bestanden" -#: src/tables/stock/StockItemTestResultTable.tsx:376 +#: src/tables/stock/StockItemTestResultTable.tsx:394 msgid "Show only passed tests" msgstr "Nur bestandene Tests anzeigen" @@ -7922,28 +9179,32 @@ msgid "Filter by location type" msgstr "" #: src/tables/stock/StockLocationTable.tsx:107 -#: src/tables/stock/StockLocationTable.tsx:133 +#: src/tables/stock/StockLocationTable.tsx:134 msgid "Add Stock Location" msgstr "Lagerort hinzufügen" -#: src/tables/stock/StockTrackingTable.tsx:64 +#: src/tables/stock/StockTrackingTable.tsx:68 msgid "Added" msgstr "Hinzugefügt" -#: src/tables/stock/StockTrackingTable.tsx:69 +#: src/tables/stock/StockTrackingTable.tsx:73 msgid "Removed" msgstr "Entfernt" #: src/tables/stock/StockTrackingTable.tsx:198 +msgid "Details" +msgstr "Details" + +#: src/tables/stock/StockTrackingTable.tsx:213 msgid "No user information" msgstr "Keine Benutzerinformation" -#: src/tables/stock/TestStatisticsTable.tsx:46 -#: src/tables/stock/TestStatisticsTable.tsx:76 +#: src/tables/stock/TestStatisticsTable.tsx:34 +#: src/tables/stock/TestStatisticsTable.tsx:64 msgid "Total" msgstr "" -#: src/tables/stock/TestStatisticsTable.tsx:75 +#: src/tables/stock/TestStatisticsTable.tsx:63 msgid "Failed" msgstr "" diff --git a/src/frontend/src/locales/el/messages.po b/src/frontend/src/locales/el/messages.po index fc638a4b6a..0bc64e1c9b 100644 --- a/src/frontend/src/locales/el/messages.po +++ b/src/frontend/src/locales/el/messages.po @@ -8,15 +8,15 @@ msgstr "" "Language: el\n" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"PO-Revision-Date: 2024-08-20 19:49\n" +"PO-Revision-Date: 2024-11-04 03:14\n" "Last-Translator: \n" "Language-Team: Greek\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Crowdin-Project: inventree\n" "X-Crowdin-Project-ID: 452300\n" "X-Crowdin-Language: el\n" -"X-Crowdin-File: /[inventree.InvenTree] l10/src/frontend/src/locales/en/messages.po\n" -"X-Crowdin-File-ID: 205\n" +"X-Crowdin-File: /src/frontend/src/locales/en/messages.po\n" +"X-Crowdin-File-ID: 252\n" #: src/components/Boundary.tsx:12 msgid "Error rendering component" @@ -27,8 +27,8 @@ msgid "An error occurred while rendering this component. Refer to the console fo msgstr "" #: src/components/DashboardItemProxy.tsx:34 -msgid "Title" -msgstr "Τίτλος" +#~ msgid "Title" +#~ msgstr "Title" #: src/components/buttons/AdminButton.tsx:80 msgid "Open in admin interface" @@ -38,82 +38,99 @@ msgstr "" #~ msgid "Copy to clipboard" #~ msgstr "Copy to clipboard" -#: src/components/buttons/CopyButton.tsx:24 +#: src/components/buttons/CopyButton.tsx:29 msgid "Copied" msgstr "Αντιγράφηκε" -#: src/components/buttons/CopyButton.tsx:24 +#: src/components/buttons/CopyButton.tsx:29 msgid "Copy" msgstr "Αντιγραφή" -#: src/components/buttons/PrintingActions.tsx:93 +#: src/components/buttons/PrintingActions.tsx:97 msgid "Print Label" msgstr "" -#: src/components/buttons/PrintingActions.tsx:99 +#: src/components/buttons/PrintingActions.tsx:103 msgid "Print" msgstr "" -#: src/components/buttons/PrintingActions.tsx:100 +#: src/components/buttons/PrintingActions.tsx:104 msgid "Label printing completed successfully" msgstr "" -#: src/components/buttons/PrintingActions.tsx:106 -#: src/components/buttons/PrintingActions.tsx:144 -#: src/components/editors/NotesEditor.tsx:65 -#: src/components/editors/NotesEditor.tsx:165 -#: src/components/forms/fields/ApiFormField.tsx:319 +#: src/components/buttons/PrintingActions.tsx:110 +#: src/components/buttons/PrintingActions.tsx:148 +#: src/components/editors/NotesEditor.tsx:73 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:154 +#: src/components/forms/fields/ApiFormField.tsx:328 +#: src/components/forms/fields/TableField.tsx:43 #: src/components/importer/ImportDataSelector.tsx:187 -#: src/components/importer/ImporterColumnSelector.tsx:207 +#: src/components/importer/ImporterColumnSelector.tsx:210 #: src/components/modals/LicenseModal.tsx:75 -#: src/components/nav/SearchDrawer.tsx:448 +#: src/components/nav/SearchDrawer.tsx:458 +#: src/components/render/ModelType.tsx:290 #: src/pages/ErrorPage.tsx:11 -#: src/pages/part/PartPricingPanel.tsx:67 -#: src/tables/InvenTreeTable.tsx:495 +#: src/pages/part/PartPricingPanel.tsx:71 +#: src/tables/InvenTreeTable.tsx:481 #: src/tables/bom/BomTable.tsx:450 -#: src/tables/stock/StockItemTestResultTable.tsx:299 +#: src/tables/stock/StockItemTestResultTable.tsx:317 msgid "Error" msgstr "" -#: src/components/buttons/PrintingActions.tsx:107 +#: src/components/buttons/PrintingActions.tsx:111 msgid "The label could not be generated" msgstr "" -#: src/components/buttons/PrintingActions.tsx:122 +#: src/components/buttons/PrintingActions.tsx:126 msgid "Print Report" msgstr "" -#: src/components/buttons/PrintingActions.tsx:138 +#: src/components/buttons/PrintingActions.tsx:142 msgid "Generate" msgstr "" -#: src/components/buttons/PrintingActions.tsx:139 +#: src/components/buttons/PrintingActions.tsx:143 msgid "Report printing completed successfully" msgstr "" -#: src/components/buttons/PrintingActions.tsx:145 +#: src/components/buttons/PrintingActions.tsx:149 msgid "The report could not be generated" msgstr "" -#: src/components/buttons/PrintingActions.tsx:173 +#: src/components/buttons/PrintingActions.tsx:177 msgid "Printing Actions" msgstr "" -#: src/components/buttons/PrintingActions.tsx:178 +#: src/components/buttons/PrintingActions.tsx:182 msgid "Print Labels" msgstr "" -#: src/components/buttons/PrintingActions.tsx:184 +#: src/components/buttons/PrintingActions.tsx:188 msgid "Print Reports" msgstr "" +#: src/components/buttons/RemoveRowButton.tsx:8 +msgid "Remove this row" +msgstr "" + #: src/components/buttons/ScanButton.tsx:15 -msgid "Scan QR code" +#: src/components/nav/NavigationDrawer.tsx:117 +#: src/forms/PurchaseOrderForms.tsx:379 +#: src/forms/PurchaseOrderForms.tsx:473 +msgid "Scan Barcode" +msgstr "" + +#: src/components/buttons/ScanButton.tsx:15 +#~ msgid "Scan QR code" +#~ msgstr "Scan QR code" + +#: src/components/buttons/ScanButton.tsx:20 +msgid "Open Barcode Scanner" msgstr "" #: src/components/buttons/ScanButton.tsx:20 -msgid "Open QR code scanner" -msgstr "" +#~ msgid "Open QR code scanner" +#~ msgstr "Open QR code scanner" #: src/components/buttons/SpotlightButton.tsx:14 msgid "Open spotlight" @@ -128,85 +145,347 @@ msgid "Fail" msgstr "" #: src/components/buttons/YesNoButton.tsx:33 -#: src/tables/Filter.tsx:52 +#: src/tables/Filter.tsx:61 msgid "Yes" msgstr "" #: src/components/buttons/YesNoButton.tsx:33 -#: src/tables/Filter.tsx:53 +#: src/tables/Filter.tsx:62 msgid "No" msgstr "" -#: src/components/details/Details.tsx:301 +#: src/components/dashboard/DashboardLayout.tsx:286 +msgid "No Widgets Selected" +msgstr "" + +#: src/components/dashboard/DashboardLayout.tsx:289 +msgid "Use the menu to add widgets to the dashboard" +msgstr "" + +#: src/components/dashboard/DashboardMenu.tsx:59 +#: src/components/dashboard/DashboardMenu.tsx:126 +msgid "Accept Layout" +msgstr "" + +#: src/components/dashboard/DashboardMenu.tsx:91 +#: src/components/nav/NavigationDrawer.tsx:71 +#: src/defaults/actions.tsx:17 +#: src/defaults/links.tsx:9 +#: src/pages/Index/Settings/UserSettings.tsx:47 +msgid "Dashboard" +msgstr "" + +#: src/components/dashboard/DashboardMenu.tsx:99 +msgid "Edit Layout" +msgstr "" + +#: src/components/dashboard/DashboardMenu.tsx:108 +msgid "Add Widget" +msgstr "" + +#: src/components/dashboard/DashboardMenu.tsx:117 +msgid "Remove Widgets" +msgstr "" + +#: src/components/dashboard/DashboardWidget.tsx:65 +msgid "Remove this widget from the dashboard" +msgstr "" + +#: src/components/dashboard/DashboardWidgetDrawer.tsx:77 +msgid "Filter dashboard widgets" +msgstr "" + +#: src/components/dashboard/DashboardWidgetDrawer.tsx:98 +msgid "Add this widget to the dashboard" +msgstr "" + +#: src/components/dashboard/DashboardWidgetDrawer.tsx:123 +msgid "No Widgets Available" +msgstr "" + +#: src/components/dashboard/DashboardWidgetDrawer.tsx:124 +msgid "There are no more widgets available for the dashboard" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:19 +msgid "Subscribed Parts" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:20 +msgid "Show the number of parts which you have subscribed to" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:26 +msgid "Subscribed Categories" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:27 +msgid "Show the number of part categories which you have subscribed to" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:35 +#: src/pages/part/PartSchedulingDetail.tsx:304 +#: src/tables/part/PartTable.tsx:238 +msgid "Low Stock" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:37 +msgid "Show the number of parts which are low on stock" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:43 +msgid "Expired Stock Items" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:45 +msgid "Show the number of stock items which have expired" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:51 +msgid "Stale Stock Items" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:53 +msgid "Show the number of stock items which are stale" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:59 +msgid "Active Build Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:61 +msgid "Show the number of build orders which are currently active" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:66 +msgid "Overdue Build Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:68 +msgid "Show the number of build orders which are overdue" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:73 +msgid "Assigned Build Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:75 +msgid "Show the number of build orders which are assigned to you" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:80 +msgid "Active Sales Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:82 +msgid "Show the number of sales orders which are currently active" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:87 +msgid "Overdue Sales Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:89 +msgid "Show the number of sales orders which are overdue" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:94 +msgid "Assigned Sales Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:96 +msgid "Show the number of sales orders which are assigned to you" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:101 +msgid "Active Purchase Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:103 +msgid "Show the number of purchase orders which are currently active" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:108 +msgid "Overdue Purchase Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:110 +msgid "Show the number of purchase orders which are overdue" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:115 +msgid "Assigned Purchase Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:117 +msgid "Show the number of purchase orders which are assigned to you" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:122 +msgid "Active Return Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:124 +msgid "Show the number of return orders which are currently active" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:129 +msgid "Overdue Return Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:131 +msgid "Show the number of return orders which are overdue" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:136 +msgid "Assigned Return Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:138 +msgid "Show the number of return orders which are assigned to you" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:149 +#: src/components/dashboard/widgets/GetStartedWidget.tsx:15 +#: src/defaults/links.tsx:38 +msgid "Getting Started" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:150 +#: src/defaults/links.tsx:41 +msgid "Getting started with InvenTree" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:157 +#: src/components/dashboard/widgets/NewsWidget.tsx:123 +msgid "News Updates" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:158 +msgid "The latest news from InvenTree" +msgstr "" + +#: src/components/dashboard/widgets/ColorToggleWidget.tsx:18 +#: src/components/nav/MainMenu.tsx:77 +msgid "Change Color Mode" +msgstr "" + +#: src/components/dashboard/widgets/ColorToggleWidget.tsx:23 +msgid "Change the color mode of the user interface" +msgstr "" + +#: src/components/dashboard/widgets/LanguageSelectWidget.tsx:18 +msgid "Change Language" +msgstr "" + +#: src/components/dashboard/widgets/LanguageSelectWidget.tsx:23 +msgid "Change the language of the user interface" +msgstr "" + +#: src/components/dashboard/widgets/NewsWidget.tsx:61 +#: src/components/nav/NotificationDrawer.tsx:88 +#: src/pages/Notifications.tsx:73 +msgid "Mark as read" +msgstr "" + +#: src/components/dashboard/widgets/NewsWidget.tsx:115 +msgid "Requires Superuser" +msgstr "" + +#: src/components/dashboard/widgets/NewsWidget.tsx:116 +msgid "This widget requires superuser permissions" +msgstr "" + +#: src/components/dashboard/widgets/NewsWidget.tsx:133 +msgid "No News" +msgstr "" + +#: src/components/dashboard/widgets/NewsWidget.tsx:134 +msgid "There are no unread news items" +msgstr "" + +#: src/components/details/Details.tsx:300 msgid "No name defined" msgstr "" -#: src/components/details/DetailsImage.tsx:65 +#: src/components/details/DetailsImage.tsx:69 msgid "Remove Image" msgstr "Αφαίρεση εικόνας" -#: src/components/details/DetailsImage.tsx:68 +#: src/components/details/DetailsImage.tsx:72 msgid "Remove the associated image from this item?" msgstr "Αφαίρεση της σχετικής εικόνας από αυτό το στοιχείο;" -#: src/components/details/DetailsImage.tsx:71 -#: src/forms/StockForms.tsx:533 +#: src/components/details/DetailsImage.tsx:75 +#: src/forms/StockForms.tsx:651 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:199 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:306 -#: src/pages/stock/StockDetail.tsx:526 +#: src/pages/stock/StockDetail.tsx:690 msgid "Remove" msgstr "Αφαίρεση" -#: src/components/details/DetailsImage.tsx:71 -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:158 -#: src/components/items/ActionDropdown.tsx:215 -#: src/components/items/ActionDropdown.tsx:216 -#: src/contexts/ThemeContext.tsx:43 +#: src/components/details/DetailsImage.tsx:75 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:184 +#: src/components/items/ActionDropdown.tsx:268 +#: src/components/items/ActionDropdown.tsx:269 +#: src/contexts/ThemeContext.tsx:45 #: src/hooks/UseForm.tsx:40 -#: src/tables/FilterSelectDrawer.tsx:205 -#: src/tables/build/BuildOutputTable.tsx:286 +#: src/tables/FilterSelectDrawer.tsx:241 +#: src/tables/RowActions.tsx:59 +#: src/tables/build/BuildOutputTable.tsx:434 msgid "Cancel" msgstr "Ακύρωση" -#: src/components/details/DetailsImage.tsx:97 +#: src/components/details/DetailsImage.tsx:101 msgid "Drag and drop to upload" msgstr "Σύρετε και αποθέστε για μεταφόρτωση" -#: src/components/details/DetailsImage.tsx:100 +#: src/components/details/DetailsImage.tsx:104 msgid "Click to select file(s)" msgstr "Κάντε κλικ για να επιλέξετε αρχείο(α)" -#: src/components/details/DetailsImage.tsx:226 +#: src/components/details/DetailsImage.tsx:230 msgid "Clear" msgstr "Εκκαθάριση" -#: src/components/details/DetailsImage.tsx:232 -#: src/components/forms/ApiForm.tsx:627 -#: src/contexts/ThemeContext.tsx:43 -#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:60 +#: src/components/details/DetailsImage.tsx:236 +#: src/components/forms/ApiForm.tsx:660 +#: src/contexts/ThemeContext.tsx:45 msgid "Submit" msgstr "Υποβολή" -#: src/components/details/DetailsImage.tsx:272 +#: src/components/details/DetailsImage.tsx:280 msgid "Select from existing images" msgstr "Επιλέξτε από υπάρχουσες εικόνες" -#: src/components/details/DetailsImage.tsx:280 +#: src/components/details/DetailsImage.tsx:288 msgid "Select Image" msgstr "Επιλέξτε εικόνα" -#: src/components/details/DetailsImage.tsx:292 +#: src/components/details/DetailsImage.tsx:304 +msgid "Download remote image" +msgstr "" + +#: src/components/details/DetailsImage.tsx:319 msgid "Upload new image" msgstr "Μεταφόρτωση νέας εικόνας" -#: src/components/details/DetailsImage.tsx:299 +#: src/components/details/DetailsImage.tsx:326 msgid "Upload Image" msgstr "Μεταφόρτωση εικόνας" -#: src/components/details/DetailsImage.tsx:312 +#: src/components/details/DetailsImage.tsx:339 msgid "Delete image" msgstr "Διαγραφή εικόνας" +#: src/components/details/DetailsImage.tsx:373 +msgid "Download Image" +msgstr "" + +#: src/components/details/DetailsImage.tsx:378 +msgid "Image downloaded successfully" +msgstr "" + #: src/components/details/PartIcons.tsx:43 #~ msgid "Part is a template part (variants can be made from this part)" #~ msgstr "Part is a template part (variants can be made from this part)" @@ -235,36 +514,57 @@ msgstr "Διαγραφή εικόνας" #~ msgid "Part is virtual (not a physical part)" #~ msgstr "Part is virtual (not a physical part)" -#: src/components/editors/NotesEditor.tsx:66 +#: src/components/editors/NotesEditor.tsx:74 msgid "Image upload failed" msgstr "" -#: src/components/editors/NotesEditor.tsx:156 -#: src/components/forms/ApiForm.tsx:467 +#: src/components/editors/NotesEditor.tsx:83 +#: src/components/editors/NotesEditor.tsx:119 +#: src/components/forms/ApiForm.tsx:475 #: src/tables/bom/BomTable.tsx:441 msgid "Success" msgstr "Επιτυχία" -#: src/components/editors/NotesEditor.tsx:157 +#: src/components/editors/NotesEditor.tsx:84 +msgid "Image uploaded successfully" +msgstr "" + +#: src/components/editors/NotesEditor.tsx:120 msgid "Notes saved successfully" msgstr "" -#: src/components/editors/NotesEditor.tsx:166 +#: src/components/editors/NotesEditor.tsx:131 msgid "Failed to save notes" msgstr "" -#: src/components/editors/NotesEditor.tsx:198 -msgid "Preview Notes" +#: src/components/editors/NotesEditor.tsx:134 +msgid "Error Saving Notes" msgstr "" -#: src/components/editors/NotesEditor.tsx:198 -msgid "Edit Notes" -msgstr "" +#: src/components/editors/NotesEditor.tsx:151 +#~ msgid "Disable Editing" +#~ msgstr "Disable Editing" -#: src/components/editors/NotesEditor.tsx:212 +#: src/components/editors/NotesEditor.tsx:154 msgid "Save Notes" msgstr "" +#: src/components/editors/NotesEditor.tsx:173 +msgid "Close Editor" +msgstr "" + +#: src/components/editors/NotesEditor.tsx:180 +msgid "Enable Editing" +msgstr "" + +#: src/components/editors/NotesEditor.tsx:198 +#~ msgid "Preview Notes" +#~ msgstr "Preview Notes" + +#: src/components/editors/NotesEditor.tsx:198 +#~ msgid "Edit Notes" +#~ msgstr "Edit Notes" + #: src/components/editors/TemplateEditor/CodeEditor/index.tsx:9 msgid "Code" msgstr "Κωδικός" @@ -281,40 +581,44 @@ msgstr "Η προεπισκόπηση δεν είναι διαθέσιμη, πα msgid "PDF Preview" msgstr "Προεπισκόπηση PDF" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:104 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:115 msgid "Error loading template" msgstr "Σφάλμα φόρτωσης προτύπου" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:116 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:127 msgid "Error saving template" msgstr "Σφάλμα αποθήκευσης προτύπου" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:146 -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:274 -msgid "Save & Reload Preview" -msgstr "" - -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:151 -msgid "Are you sure you want to Save & Reload the preview?" -msgstr "Είστε σίγουρος ότι θέλετε να αποθηκεύσετε και να επαναφορτώσετε την προεπισκόπηση;" - #: src/components/editors/TemplateEditor/TemplateEditor.tsx:151 #~ msgid "Save & Reload preview?" #~ msgstr "Save & Reload preview?" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:153 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:155 +msgid "Could not load the template from the server." +msgstr "" + +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:172 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:303 +msgid "Save & Reload Preview" +msgstr "" + +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:177 +msgid "Are you sure you want to Save & Reload the preview?" +msgstr "Είστε σίγουρος ότι θέλετε να αποθηκεύσετε και να επαναφορτώσετε την προεπισκόπηση;" + +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:179 msgid "To render the preview the current template needs to be replaced on the server with your modifications which may break the label if it is under active use. Do you want to proceed?" msgstr "Για να εμφανίσετε την προεπισκόπηση το τρέχον πρότυπο πρέπει να αντικατασταθεί στο διακομιστή με τις τροποποιήσεις σας, οι οποίες μπορεί να αλλοιώσουν την ετικέτα αν είναι σε χρήση. Θέλετε να προχωρήσετε;" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:157 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:183 msgid "Save & Reload" msgstr "Αποθήκευση και Επαναφόρτωση" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:189 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:215 msgid "Preview updated" msgstr "Προεπισκόπηση ενημερώθηκε" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:190 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:216 msgid "The preview has been updated successfully." msgstr "Η προεπισκόπηση ενημερώθηκε με επιτυχία." @@ -322,15 +626,15 @@ msgstr "Η προεπισκόπηση ενημερώθηκε με επιτυχί #~ msgid "Save & Reload preview" #~ msgstr "Save & Reload preview" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:266 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:295 msgid "Reload preview" msgstr "Επαναφόρτωση προεπισκόπησης" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:267 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:296 msgid "Use the currently stored template from the server" msgstr "Χρήση του αποθηκευμένου προτύπου από το διακομιστή" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:275 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:304 msgid "Save the current template and reload the preview" msgstr "Αποθήκευση του τρέχοντος προτύπου και επαναφόρτωση της προεπισκόπησης" @@ -338,11 +642,11 @@ msgstr "Αποθήκευση του τρέχοντος προτύπου και #~ msgid "to preview" #~ msgstr "to preview" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:333 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:365 msgid "Select instance to preview" msgstr "" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:377 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:409 msgid "Error rendering template" msgstr "Σφάλμα αποτύπωσης προτύπου" @@ -379,6 +683,7 @@ msgid "This page does not exist" msgstr "" #: src/components/errors/PermissionDenied.tsx:8 +#: src/functions/notifications.tsx:24 msgid "Permission Denied" msgstr "" @@ -394,8 +699,8 @@ msgstr "" msgid "A server error occurred" msgstr "" -#: src/components/forms/ApiForm.tsx:151 -#: src/components/forms/ApiForm.tsx:555 +#: src/components/forms/ApiForm.tsx:154 +#: src/components/forms/ApiForm.tsx:579 msgid "Form Error" msgstr "Σφάλμα Φόρμας" @@ -403,22 +708,22 @@ msgstr "Σφάλμα Φόρμας" #~ msgid "Form Errors Exist" #~ msgstr "Form Errors Exist" -#: src/components/forms/ApiForm.tsx:563 +#: src/components/forms/ApiForm.tsx:587 msgid "Errors exist for one or more form fields" msgstr "" -#: src/components/forms/ApiForm.tsx:665 -#: src/tables/plugin/PluginListTable.tsx:388 +#: src/components/forms/ApiForm.tsx:698 +#: src/tables/plugin/PluginListTable.tsx:195 msgid "Update" msgstr "Ενημέρωση" -#: src/components/forms/ApiForm.tsx:685 -#: src/components/items/ActionDropdown.tsx:195 +#: src/components/forms/ApiForm.tsx:718 +#: src/components/items/ActionDropdown.tsx:248 #: src/hooks/UseForm.tsx:122 -#: src/pages/Index/Scan.tsx:343 +#: src/pages/Index/Scan.tsx:357 #: src/pages/Notifications.tsx:123 -#: src/tables/RowActions.tsx:43 -#: src/tables/plugin/PluginListTable.tsx:420 +#: src/tables/RowActions.tsx:49 +#: src/tables/plugin/PluginListTable.tsx:232 msgid "Delete" msgstr "Διαγραφή" @@ -428,14 +733,6 @@ msgstr "Διαγραφή" #~ msgid "Check your your input and try again." #~ msgstr "Check your your input and try again." -#: src/components/forms/AuthenticationForm.tsx:51 -msgid "Login successful" -msgstr "Επιτυχής σύνδεση" - -#: src/components/forms/AuthenticationForm.tsx:52 -msgid "Logged in successfully" -msgstr "" - #: src/components/forms/AuthenticationForm.tsx:52 #~ msgid "Welcome back!" #~ msgstr "Welcome back!" @@ -444,14 +741,22 @@ msgstr "" #~ msgid "Login successfull" #~ msgstr "Login successfull" -#: src/components/forms/AuthenticationForm.tsx:58 +#: src/components/forms/AuthenticationForm.tsx:55 +msgid "Login successful" +msgstr "Επιτυχής σύνδεση" + +#: src/components/forms/AuthenticationForm.tsx:56 +msgid "Logged in successfully" +msgstr "" + +#: src/components/forms/AuthenticationForm.tsx:61 msgid "Login failed" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:59 -#: src/components/forms/AuthenticationForm.tsx:76 -#: src/components/forms/AuthenticationForm.tsx:211 -#: src/functions/auth.tsx:164 +#: src/components/forms/AuthenticationForm.tsx:62 +#: src/components/forms/AuthenticationForm.tsx:79 +#: src/components/forms/AuthenticationForm.tsx:214 +#: src/functions/auth.tsx:175 msgid "Check your input and try again." msgstr "" @@ -460,45 +765,46 @@ msgstr "" #~ msgid "Mail delivery successfull" #~ msgstr "Mail delivery successfull" -#: src/components/forms/AuthenticationForm.tsx:70 -#: src/functions/auth.tsx:155 +#: src/components/forms/AuthenticationForm.tsx:73 +#: src/functions/auth.tsx:166 msgid "Mail delivery successful" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:71 +#: src/components/forms/AuthenticationForm.tsx:74 msgid "Check your inbox for the login link. If you have an account, you will receive a login link. Check in spam too." msgstr "" -#: src/components/forms/AuthenticationForm.tsx:75 +#: src/components/forms/AuthenticationForm.tsx:78 msgid "Mail delivery failed" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:95 +#: src/components/forms/AuthenticationForm.tsx:98 msgid "Or continue with other methods" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:106 -#: src/components/forms/AuthenticationForm.tsx:227 +#: src/components/forms/AuthenticationForm.tsx:109 +#: src/components/forms/AuthenticationForm.tsx:230 +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:67 msgid "Username" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:107 -#: src/components/forms/AuthenticationForm.tsx:228 +#: src/components/forms/AuthenticationForm.tsx:110 +#: src/components/forms/AuthenticationForm.tsx:231 msgid "Your username" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:112 -#: src/components/forms/AuthenticationForm.tsx:240 -#: src/pages/Auth/Set-Password.tsx:106 +#: src/components/forms/AuthenticationForm.tsx:115 +#: src/components/forms/AuthenticationForm.tsx:243 +#: src/pages/Auth/Set-Password.tsx:101 msgid "Password" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:113 -#: src/components/forms/AuthenticationForm.tsx:241 +#: src/components/forms/AuthenticationForm.tsx:116 +#: src/components/forms/AuthenticationForm.tsx:244 msgid "Your password" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:125 +#: src/components/forms/AuthenticationForm.tsx:128 #: src/pages/Auth/Reset.tsx:26 msgid "Reset password" msgstr "" @@ -507,77 +813,79 @@ msgstr "" #~ msgid "Log in" #~ msgstr "Log in" -#: src/components/forms/AuthenticationForm.tsx:134 -#: src/components/forms/AuthenticationForm.tsx:233 +#: src/components/forms/AuthenticationForm.tsx:136 +#~ msgid "I will use username and password" +#~ msgstr "I will use username and password" + +#: src/components/forms/AuthenticationForm.tsx:137 +#: src/components/forms/AuthenticationForm.tsx:236 #: src/pages/Auth/Reset.tsx:31 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:51 msgid "Email" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:135 +#: src/components/forms/AuthenticationForm.tsx:138 #: src/pages/Auth/Reset.tsx:32 -#: src/pages/Auth/Set-Password.tsx:107 +#: src/pages/Auth/Set-Password.tsx:102 msgid "We will send you a link to login - if you are registered" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:136 -#~ msgid "I will use username and password" -#~ msgstr "I will use username and password" - -#: src/components/forms/AuthenticationForm.tsx:151 +#: src/components/forms/AuthenticationForm.tsx:154 msgid "Send me an email" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:153 +#: src/components/forms/AuthenticationForm.tsx:156 msgid "Use username and password" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:162 +#: src/components/forms/AuthenticationForm.tsx:165 msgid "Log In" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:164 +#: src/components/forms/AuthenticationForm.tsx:167 +#: src/pages/Auth/Reset.tsx:41 +#: src/pages/Auth/Set-Password.tsx:107 msgid "Send Email" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:193 +#: src/components/forms/AuthenticationForm.tsx:196 msgid "Registration successful" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:194 +#: src/components/forms/AuthenticationForm.tsx:197 msgid "Please confirm your email address to complete the registration" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:210 +#: src/components/forms/AuthenticationForm.tsx:213 msgid "Input error" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:234 +#: src/components/forms/AuthenticationForm.tsx:237 msgid "This will be used for a confirmation" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:246 +#: src/components/forms/AuthenticationForm.tsx:249 msgid "Password repeat" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:247 +#: src/components/forms/AuthenticationForm.tsx:250 msgid "Repeat password" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:259 -#: src/components/forms/AuthenticationForm.tsx:304 +#: src/components/forms/AuthenticationForm.tsx:262 +#: src/components/forms/AuthenticationForm.tsx:307 msgid "Register" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:265 +#: src/components/forms/AuthenticationForm.tsx:268 msgid "Or use SSO" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:296 +#: src/components/forms/AuthenticationForm.tsx:299 msgid "Don't have an account?" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:315 +#: src/components/forms/AuthenticationForm.tsx:318 msgid "Go back to login" msgstr "" @@ -588,19 +896,20 @@ msgstr "" #: src/components/forms/HostOptionsForm.tsx:42 #: src/components/forms/HostOptionsForm.tsx:70 +#: src/components/plugins/PluginDrawer.tsx:69 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:410 +#: src/pages/Index/Settings/AdminCenter/UnitManagmentPanel.tsx:19 #: src/pages/part/CategoryDetail.tsx:81 -#: src/pages/part/PartDetail.tsx:143 -#: src/pages/stock/LocationDetail.tsx:89 -#: src/tables/machine/MachineTypeTable.tsx:65 -#: src/tables/machine/MachineTypeTable.tsx:109 -#: src/tables/machine/MachineTypeTable.tsx:216 -#: src/tables/machine/MachineTypeTable.tsx:319 +#: src/pages/part/PartDetail.tsx:164 +#: src/pages/stock/LocationDetail.tsx:83 +#: src/tables/machine/MachineTypeTable.tsx:70 +#: src/tables/machine/MachineTypeTable.tsx:119 +#: src/tables/machine/MachineTypeTable.tsx:237 +#: src/tables/machine/MachineTypeTable.tsx:340 #: src/tables/plugin/PluginErrorTable.tsx:33 -#: src/tables/plugin/PluginListTable.tsx:126 #: src/tables/purchasing/ManufacturerPartParameterTable.tsx:32 #: src/tables/settings/GroupTable.tsx:147 -#: src/tables/settings/PendingTasksTable.tsx:28 +#: src/tables/settings/PendingTasksTable.tsx:32 #: src/tables/stock/LocationTypesTable.tsx:69 msgid "Name" msgstr "" @@ -650,7 +959,7 @@ msgid "Uncategorized" msgstr "" #: src/components/forms/fields/IconField.tsx:209 -#: src/components/nav/Layout.tsx:70 +#: src/components/nav/Layout.tsx:77 #: src/tables/part/PartThumbTable.tsx:192 msgid "Search..." msgstr "" @@ -667,28 +976,27 @@ msgstr "" msgid "{0} icons" msgstr "" -#: src/components/forms/fields/RelatedModelField.tsx:318 -#: src/pages/Index/Settings/UserSettings.tsx:96 +#: src/components/forms/fields/RelatedModelField.tsx:319 +#: src/pages/Index/Settings/UserSettings.tsx:97 #: src/tables/Search.tsx:23 msgid "Search" msgstr "" -#: src/components/forms/fields/RelatedModelField.tsx:319 +#: src/components/forms/fields/RelatedModelField.tsx:320 #: src/components/modals/AboutInvenTreeModal.tsx:81 -#: src/components/widgets/WidgetLayout.tsx:120 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:316 msgid "Loading" msgstr "" -#: src/components/forms/fields/RelatedModelField.tsx:321 +#: src/components/forms/fields/RelatedModelField.tsx:322 msgid "No results found" msgstr "" -#: src/components/forms/fields/TableField.tsx:52 -msgid "modelRenderer entry required for tables" -msgstr "" +#: src/components/forms/fields/TableField.tsx:72 +#~ msgid "modelRenderer entry required for tables" +#~ msgstr "modelRenderer entry required for tables" -#: src/components/forms/fields/TableField.tsx:76 +#: src/components/forms/fields/TableField.tsx:167 msgid "No entries available" msgstr "" @@ -741,7 +1049,7 @@ msgid "Filter by row validation status" msgstr "" #: src/components/importer/ImportDataSelector.tsx:365 -#: src/tables/build/BuildOutputTable.tsx:266 +#: src/tables/build/BuildOutputTable.tsx:407 msgid "Complete" msgstr "" @@ -749,20 +1057,21 @@ msgstr "" msgid "Filter by row completion status" msgstr "" -#: src/components/importer/ImportDataSelector.tsx:383 +#: src/components/importer/ImportDataSelector.tsx:384 msgid "Import selected rows" msgstr "" -#: src/components/importer/ImportDataSelector.tsx:398 +#: src/components/importer/ImportDataSelector.tsx:399 msgid "Processing Data" msgstr "" -#: src/components/importer/ImporterColumnSelector.tsx:50 -#: src/components/importer/ImporterColumnSelector.tsx:176 +#: src/components/importer/ImporterColumnSelector.tsx:53 +#: src/components/importer/ImporterColumnSelector.tsx:179 +#: src/components/items/ErrorItem.tsx:12 msgid "An error occurred" msgstr "" -#: src/components/importer/ImporterColumnSelector.tsx:62 +#: src/components/importer/ImporterColumnSelector.tsx:65 msgid "Select column, or leave blank to ignore this field." msgstr "" @@ -778,51 +1087,51 @@ msgstr "" #~ msgid "Imported Column Name" #~ msgstr "Imported Column Name" -#: src/components/importer/ImporterColumnSelector.tsx:182 +#: src/components/importer/ImporterColumnSelector.tsx:185 msgid "Ignore this field" msgstr "" -#: src/components/importer/ImporterColumnSelector.tsx:196 +#: src/components/importer/ImporterColumnSelector.tsx:199 msgid "Mapping data columns to database fields" msgstr "" -#: src/components/importer/ImporterColumnSelector.tsx:201 +#: src/components/importer/ImporterColumnSelector.tsx:204 msgid "Accept Column Mapping" msgstr "" -#: src/components/importer/ImporterColumnSelector.tsx:214 +#: src/components/importer/ImporterColumnSelector.tsx:217 msgid "Database Field" msgstr "" -#: src/components/importer/ImporterColumnSelector.tsx:215 +#: src/components/importer/ImporterColumnSelector.tsx:218 msgid "Field Description" msgstr "" -#: src/components/importer/ImporterColumnSelector.tsx:216 +#: src/components/importer/ImporterColumnSelector.tsx:219 msgid "Imported Column" msgstr "" -#: src/components/importer/ImporterColumnSelector.tsx:217 +#: src/components/importer/ImporterColumnSelector.tsx:220 msgid "Default Value" msgstr "" -#: src/components/importer/ImporterDrawer.tsx:44 +#: src/components/importer/ImporterDrawer.tsx:46 msgid "Upload File" msgstr "" -#: src/components/importer/ImporterDrawer.tsx:45 +#: src/components/importer/ImporterDrawer.tsx:47 msgid "Map Columns" msgstr "" -#: src/components/importer/ImporterDrawer.tsx:46 +#: src/components/importer/ImporterDrawer.tsx:48 msgid "Import Data" msgstr "" -#: src/components/importer/ImporterDrawer.tsx:47 +#: src/components/importer/ImporterDrawer.tsx:49 msgid "Process Data" msgstr "" -#: src/components/importer/ImporterDrawer.tsx:48 +#: src/components/importer/ImporterDrawer.tsx:50 msgid "Complete Import" msgstr "" @@ -830,28 +1139,28 @@ msgstr "" #~ msgid "Cancel import session" #~ msgstr "Cancel import session" -#: src/components/importer/ImporterDrawer.tsx:104 +#: src/components/importer/ImporterDrawer.tsx:106 msgid "Import Complete" msgstr "" -#: src/components/importer/ImporterDrawer.tsx:107 +#: src/components/importer/ImporterDrawer.tsx:109 msgid "Data has been imported successfully" msgstr "" -#: src/components/importer/ImporterDrawer.tsx:109 -#: src/components/importer/ImporterDrawer.tsx:118 +#: src/components/importer/ImporterDrawer.tsx:111 +#: src/components/importer/ImporterDrawer.tsx:120 msgid "Close" msgstr "" -#: src/components/importer/ImporterDrawer.tsx:115 +#: src/components/importer/ImporterDrawer.tsx:117 msgid "Unknown Status" msgstr "" -#: src/components/importer/ImporterDrawer.tsx:116 +#: src/components/importer/ImporterDrawer.tsx:118 msgid "Import session has unknown status" msgstr "" -#: src/components/importer/ImporterDrawer.tsx:135 +#: src/components/importer/ImporterDrawer.tsx:137 msgid "Importing Data" msgstr "" @@ -860,85 +1169,115 @@ msgid "Importing Records" msgstr "" #: src/components/importer/ImporterImportProgress.tsx:39 -msgid "Imported rows" +#: src/tables/settings/ImportSessionTable.tsx:78 +msgid "Imported Rows" msgstr "" -#: src/components/items/ActionDropdown.tsx:121 -msgid "Barcode Actions" +#: src/components/importer/ImporterImportProgress.tsx:39 +#~ msgid "Imported rows" +#~ msgstr "Imported rows" + +#: src/components/items/ActionDropdown.tsx:126 +msgid "Options" msgstr "" #: src/components/items/ActionDropdown.tsx:140 -msgid "View Barcode" -msgstr "" +#~ msgid "View Barcode" +#~ msgstr "View Barcode" -#: src/components/items/ActionDropdown.tsx:147 -msgid "View" -msgstr "" - -#: src/components/items/ActionDropdown.tsx:148 -msgid "View barcode" -msgstr "" - -#: src/components/items/ActionDropdown.tsx:161 -msgid "Link Barcode" +#: src/components/items/ActionDropdown.tsx:162 +#: src/tables/InvenTreeTableHeader.tsx:159 +#: src/tables/InvenTreeTableHeader.tsx:160 +msgid "Barcode Actions" msgstr "" #: src/components/items/ActionDropdown.tsx:162 -msgid "Link custom barcode" +#~ msgid "Link custom barcode" +#~ msgstr "Link custom barcode" + +#: src/components/items/ActionDropdown.tsx:167 +msgid "View" msgstr "" -#: src/components/items/ActionDropdown.tsx:173 -#: src/forms/PurchaseOrderForms.tsx:426 -msgid "Unlink Barcode" +#: src/components/items/ActionDropdown.tsx:169 +msgid "View barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:174 -msgid "Unlink custom barcode" +#: src/components/items/ActionDropdown.tsx:175 +msgid "Link Barcode" +msgstr "" + +#: src/components/items/ActionDropdown.tsx:177 +msgid "Link a custom barcode to this item" msgstr "" #: src/components/items/ActionDropdown.tsx:183 -#: src/tables/RowActions.tsx:33 +#: src/components/items/QRCode.tsx:193 +#: src/forms/PurchaseOrderForms.tsx:464 +msgid "Unlink Barcode" +msgstr "" + +#: src/components/items/ActionDropdown.tsx:185 +msgid "Unlink custom barcode" +msgstr "" + +#: src/components/items/ActionDropdown.tsx:236 +#: src/tables/RowActions.tsx:39 msgid "Edit" msgstr "" -#: src/components/items/ActionDropdown.tsx:184 +#: src/components/items/ActionDropdown.tsx:237 msgid "Edit item" msgstr "" -#: src/components/items/ActionDropdown.tsx:196 +#: src/components/items/ActionDropdown.tsx:249 msgid "Delete item" msgstr "" -#: src/components/items/ActionDropdown.tsx:204 -#: src/components/items/ActionDropdown.tsx:205 +#: src/components/items/ActionDropdown.tsx:257 +#: src/components/items/ActionDropdown.tsx:258 msgid "Hold" msgstr "" -#: src/components/items/ActionDropdown.tsx:227 -#: src/tables/RowActions.tsx:23 +#: src/components/items/ActionDropdown.tsx:280 +#: src/tables/RowActions.tsx:29 msgid "Duplicate" msgstr "" -#: src/components/items/ActionDropdown.tsx:228 +#: src/components/items/ActionDropdown.tsx:281 msgid "Duplicate item" msgstr "" +#: src/components/items/BarcodeInput.tsx:23 +msgid "Scan barcode data here using barcode scanner" +msgstr "" + +#: src/components/items/BarcodeInput.tsx:24 +#: src/tables/settings/BarcodeScanHistoryTable.tsx:65 +msgid "Barcode" +msgstr "" + +#: src/components/items/BarcodeInput.tsx:25 +msgid "Scan" +msgstr "" + #: src/components/items/DocTooltip.tsx:92 +#: src/components/items/GettingStartedCarousel.tsx:20 msgid "Read More" msgstr "" -#: src/components/items/ErrorItem.tsx:5 -#: src/tables/InvenTreeTable.tsx:487 +#: src/components/items/ErrorItem.tsx:8 +#: src/tables/InvenTreeTable.tsx:473 msgid "Unknown error" msgstr "" -#: src/components/items/ErrorItem.tsx:10 -msgid "An error occurred:" -msgstr "" +#: src/components/items/ErrorItem.tsx:13 +#~ msgid "An error occurred:" +#~ msgstr "An error occurred:" #: src/components/items/GettingStartedCarousel.tsx:27 -msgid "Read more" -msgstr "" +#~ msgid "Read more" +#~ msgstr "Read more" #: src/components/items/InfoItem.tsx:27 msgid "None" @@ -965,30 +1304,51 @@ msgstr "" msgid "This panel is a placeholder." msgstr "" -#: src/components/items/QRCode.tsx:87 +#: src/components/items/QRCode.tsx:89 msgid "Low (7%)" msgstr "" -#: src/components/items/QRCode.tsx:88 +#: src/components/items/QRCode.tsx:90 msgid "Medium (15%)" msgstr "" -#: src/components/items/QRCode.tsx:89 +#: src/components/items/QRCode.tsx:91 msgid "Quartile (25%)" msgstr "" -#: src/components/items/QRCode.tsx:90 +#: src/components/items/QRCode.tsx:92 msgid "High (30%)" msgstr "" -#: src/components/items/QRCode.tsx:107 -msgid "Barcode Data:" +#: src/components/items/QRCode.tsx:100 +msgid "Custom barcode" +msgstr "" + +#: src/components/items/QRCode.tsx:101 +msgid "A custom barcode is registered for this item. The shown code is not that custom barcode." msgstr "" #: src/components/items/QRCode.tsx:118 +msgid "Barcode Data:" +msgstr "" + +#: src/components/items/QRCode.tsx:129 msgid "Select Error Correction Level" msgstr "" +#: src/components/items/QRCode.tsx:171 +#: src/pages/part/PartDetail.tsx:239 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:187 +#: src/pages/sales/ReturnOrderDetail.tsx:157 +#: src/pages/sales/SalesOrderDetail.tsx:169 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:166 +msgid "Link" +msgstr "" + +#: src/components/items/QRCode.tsx:190 +msgid "This will remove the link to the associated barcode" +msgstr "" + #: src/components/modals/AboutInvenTreeModal.tsx:99 msgid "Version Information" msgstr "" @@ -1062,11 +1422,11 @@ msgstr "" msgid "Submit Bug Report" msgstr "" -#: src/components/modals/AboutInvenTreeModal.tsx:183 +#: src/components/modals/AboutInvenTreeModal.tsx:181 msgid "Copy version information" msgstr "" -#: src/components/modals/AboutInvenTreeModal.tsx:192 +#: src/components/modals/AboutInvenTreeModal.tsx:189 #: src/components/modals/ServerInfoModal.tsx:147 msgid "Dismiss" msgstr "" @@ -1091,61 +1451,20 @@ msgstr "" msgid "{key} Packages" msgstr "" -#: src/components/modals/QrCodeModal.tsx:72 +#: src/components/modals/QrCodeModal.tsx:24 msgid "Unknown response" msgstr "" -#: src/components/modals/QrCodeModal.tsx:102 -#: src/pages/Index/Scan.tsx:636 -msgid "Error while getting camera" -msgstr "" - -#: src/components/modals/QrCodeModal.tsx:125 -#: src/pages/Index/Scan.tsx:659 -msgid "Error while scanning" -msgstr "" - -#: src/components/modals/QrCodeModal.tsx:139 -#: src/pages/Index/Scan.tsx:673 -msgid "Error while stopping" -msgstr "" - -#: src/components/modals/QrCodeModal.tsx:154 -#: src/defaults/menuItems.tsx:21 -#: src/pages/Index/Scan.tsx:746 -msgid "Scanning" -msgstr "" - -#: src/components/modals/QrCodeModal.tsx:154 -#: src/pages/Index/Scan.tsx:746 -msgid "Not scanning" -msgstr "" - -#: src/components/modals/QrCodeModal.tsx:159 -#: src/pages/Index/Scan.tsx:752 -msgid "Select Camera" -msgstr "" - -#: src/components/modals/QrCodeModal.tsx:169 -#: src/pages/Index/Scan.tsx:737 -msgid "Start scanning" -msgstr "" - -#: src/components/modals/QrCodeModal.tsx:176 -#: src/pages/Index/Scan.tsx:729 -msgid "Stop scanning" -msgstr "" - -#: src/components/modals/QrCodeModal.tsx:181 +#: src/components/modals/QrCodeModal.tsx:39 msgid "No scans yet!" msgstr "" -#: src/components/modals/QrCodeModal.tsx:201 +#: src/components/modals/QrCodeModal.tsx:57 msgid "Close modal" msgstr "" #: src/components/modals/ServerInfoModal.tsx:26 -#: src/pages/Index/Settings/SystemSettings.tsx:38 +#: src/pages/Index/Settings/SystemSettings.tsx:37 msgid "Server" msgstr "" @@ -1206,6 +1525,7 @@ msgid "Background Worker" msgstr "" #: src/components/modals/ServerInfoModal.tsx:101 +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:29 msgid "Background worker not running" msgstr "" @@ -1218,8 +1538,8 @@ msgid "Email settings not configured" msgstr "" #: src/components/modals/ServerInfoModal.tsx:121 -#: src/tables/plugin/PluginListTable.tsx:144 -#: src/tables/plugin/PluginListTable.tsx:294 +#: src/components/plugins/PluginDrawer.tsx:89 +#: src/tables/plugin/PluginListTable.tsx:116 msgid "Version" msgstr "" @@ -1227,7 +1547,7 @@ msgstr "" msgid "Server Version" msgstr "" -#: src/components/nav/Layout.tsx:73 +#: src/components/nav/Layout.tsx:80 msgid "Nothing found..." msgstr "" @@ -1237,18 +1557,26 @@ msgstr "" #~ msgstr "Profile" #: src/components/nav/MainMenu.tsx:52 +#: src/components/nav/NavigationDrawer.tsx:178 #: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:28 msgid "Settings" msgstr "" #: src/components/nav/MainMenu.tsx:59 -#: src/defaults/menuItems.tsx:15 -msgid "Account settings" +#: src/pages/Index/Settings/UserSettings.tsx:152 +msgid "Account Settings" msgstr "" +#: src/components/nav/MainMenu.tsx:59 +#: src/defaults/menuItems.tsx:15 +#~ msgid "Account settings" +#~ msgstr "Account settings" + #: src/components/nav/MainMenu.tsx:67 -#: src/defaults/menuItems.tsx:58 -#: src/pages/Index/Settings/SystemSettings.tsx:315 +#: src/components/nav/NavigationDrawer.tsx:141 +#: src/components/nav/SettingsHeader.tsx:49 +#: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:37 +#: src/pages/Index/Settings/SystemSettings.tsx:310 msgid "System Settings" msgstr "" @@ -1260,14 +1588,11 @@ msgstr "" #~ msgid "Switch to pseudo language" #~ msgstr "Switch to pseudo language" -#: src/components/nav/MainMenu.tsx:77 -msgid "Change Color Mode" -msgstr "" - #: src/components/nav/MainMenu.tsx:86 -#: src/defaults/actions.tsx:71 -#: src/defaults/menuItems.tsx:63 -#: src/pages/Index/Settings/AdminCenter/Index.tsx:221 +#: src/components/nav/NavigationDrawer.tsx:148 +#: src/components/nav/SettingsHeader.tsx:50 +#: src/defaults/actions.tsx:63 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:251 msgid "Admin Center" msgstr "" @@ -1275,458 +1600,732 @@ msgstr "" msgid "Logout" msgstr "" -#: src/components/nav/NavHoverMenu.tsx:65 -#: src/defaults/actions.tsx:60 -msgid "Open Navigation" -msgstr "" - #: src/components/nav/NavHoverMenu.tsx:84 -msgid "View all" -msgstr "" +#~ msgid "View all" +#~ msgstr "View all" #: src/components/nav/NavHoverMenu.tsx:100 #: src/components/nav/NavHoverMenu.tsx:110 -msgid "Get started" -msgstr "" +#~ msgid "Get started" +#~ msgstr "Get started" #: src/components/nav/NavHoverMenu.tsx:103 -msgid "Overview over high-level objects, functions and possible usecases." -msgstr "" - -#: src/components/nav/NavigationDrawer.tsx:57 -msgid "Navigation" -msgstr "" +#~ msgid "Overview over high-level objects, functions and possible usecases." +#~ msgstr "Overview over high-level objects, functions and possible usecases." #: src/components/nav/NavigationDrawer.tsx:60 -msgid "Pages" +#~ msgid "Pages" +#~ msgstr "Pages" + +#: src/components/nav/NavigationDrawer.tsx:77 +#: src/components/render/ModelType.tsx:31 +#: src/defaults/links.tsx:10 +#: src/pages/Index/Settings/SystemSettings.tsx:172 +#: src/pages/part/CategoryDetail.tsx:125 +#: src/pages/part/CategoryDetail.tsx:249 +#: src/pages/part/CategoryDetail.tsx:279 +#: src/pages/part/PartDetail.tsx:856 +msgid "Parts" msgstr "" -#: src/components/nav/NavigationDrawer.tsx:65 -#: src/pages/Index/Settings/AdminCenter/Index.tsx:176 -#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:41 -msgid "Plugins" +#: src/components/nav/NavigationDrawer.tsx:84 +#: src/components/render/Part.tsx:30 +#: src/defaults/links.tsx:11 +#: src/pages/Index/Settings/SystemSettings.tsx:205 +#: src/pages/part/PartDetail.tsx:593 +#: src/pages/stock/LocationDetail.tsx:352 +#: src/pages/stock/StockDetail.tsx:528 +#: src/tables/stock/StockItemTable.tsx:69 +msgid "Stock" msgstr "" -#: src/components/nav/NavigationDrawer.tsx:75 -#: src/defaults/actions.tsx:32 -msgid "Documentation" +#: src/components/nav/NavigationDrawer.tsx:91 +#: src/defaults/links.tsx:13 +#: src/pages/build/BuildDetail.tsx:530 +#: src/pages/build/BuildIndex.tsx:36 +msgid "Manufacturing" msgstr "" -#: src/components/nav/NavigationDrawer.tsx:78 -msgid "About" +#: src/components/nav/NavigationDrawer.tsx:98 +#: src/defaults/links.tsx:18 +#: src/pages/company/ManufacturerDetail.tsx:9 +#: src/pages/company/ManufacturerPartDetail.tsx:258 +#: src/pages/company/SupplierDetail.tsx:9 +#: src/pages/company/SupplierPartDetail.tsx:336 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:480 +#: src/pages/purchasing/PurchasingIndex.tsx:60 +msgid "Purchasing" msgstr "" -#: src/components/nav/NotificationDrawer.tsx:92 -#: src/pages/Index/Settings/SystemSettings.tsx:109 -#: src/pages/Index/Settings/UserSettings.tsx:126 +#: src/components/nav/NavigationDrawer.tsx:105 +#: src/defaults/links.tsx:22 +#: src/pages/company/CustomerDetail.tsx:9 +#: src/pages/sales/ReturnOrderDetail.tsx:469 +#: src/pages/sales/SalesIndex.tsx:53 +#: src/pages/sales/SalesOrderDetail.tsx:520 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:343 +msgid "Sales" +msgstr "" + +#: src/components/nav/NavigationDrawer.tsx:129 +#: src/components/nav/NotificationDrawer.tsx:178 +#: src/pages/Index/Settings/SystemSettings.tsx:110 +#: src/pages/Index/Settings/UserSettings.tsx:127 #: src/pages/Notifications.tsx:65 #: src/pages/Notifications.tsx:151 msgid "Notifications" msgstr "" -#: src/components/nav/NotificationDrawer.tsx:94 +#: src/components/nav/NavigationDrawer.tsx:135 +#: src/components/nav/SettingsHeader.tsx:48 +msgid "User Settings" +msgstr "" + +#: src/components/nav/NavigationDrawer.tsx:173 +msgid "Navigation" +msgstr "" + +#: src/components/nav/NavigationDrawer.tsx:183 +#: src/forms/PurchaseOrderForms.tsx:689 +#: src/forms/StockForms.tsx:614 +#: src/forms/StockForms.tsx:651 +#: src/forms/StockForms.tsx:677 +#: src/forms/StockForms.tsx:705 +#: src/forms/StockForms.tsx:736 +#: src/forms/StockForms.tsx:771 +#: src/forms/StockForms.tsx:813 +#: src/forms/StockForms.tsx:851 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:413 +#: src/tables/RowActions.tsx:129 +#: src/tables/build/BuildLineTable.tsx:101 +msgid "Actions" +msgstr "" + +#: src/components/nav/NavigationDrawer.tsx:191 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:205 +#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:44 +msgid "Plugins" +msgstr "" + +#: src/components/nav/NavigationDrawer.tsx:204 +#: src/defaults/actions.tsx:24 +msgid "Documentation" +msgstr "" + +#: src/components/nav/NavigationDrawer.tsx:210 +msgid "About" +msgstr "" + +#: src/components/nav/NotificationDrawer.tsx:180 msgid "Mark all as read" msgstr "" -#: src/components/nav/NotificationDrawer.tsx:104 +#: src/components/nav/NotificationDrawer.tsx:190 msgid "View all notifications" msgstr "" -#: src/components/nav/NotificationDrawer.tsx:123 +#: src/components/nav/NotificationDrawer.tsx:210 msgid "You have no unread notifications." msgstr "" -#: src/components/nav/NotificationDrawer.tsx:139 -#: src/components/nav/NotificationDrawer.tsx:145 -#: src/tables/notifications/NotificationsTable.tsx:36 -msgid "Notification" -msgstr "" - -#: src/components/nav/NotificationDrawer.tsx:168 -#: src/pages/Notifications.tsx:73 -msgid "Mark as read" -msgstr "" - -#: src/components/nav/SearchDrawer.tsx:78 +#: src/components/nav/SearchDrawer.tsx:85 msgid "results" msgstr "" -#: src/components/nav/SearchDrawer.tsx:370 +#: src/components/nav/SearchDrawer.tsx:380 msgid "Enter search text" msgstr "" -#: src/components/nav/SearchDrawer.tsx:397 +#: src/components/nav/SearchDrawer.tsx:391 +msgid "Refresh search results" +msgstr "" + +#: src/components/nav/SearchDrawer.tsx:402 +#: src/components/nav/SearchDrawer.tsx:409 msgid "Search Options" msgstr "" -#: src/components/nav/SearchDrawer.tsx:400 +#: src/components/nav/SearchDrawer.tsx:412 msgid "Regex search" msgstr "" -#: src/components/nav/SearchDrawer.tsx:410 +#: src/components/nav/SearchDrawer.tsx:421 msgid "Whole word search" msgstr "" -#: src/components/nav/SearchDrawer.tsx:451 +#: src/components/nav/SearchDrawer.tsx:461 msgid "An error occurred during search query" msgstr "" #: src/components/nav/SearchDrawer.tsx:462 -msgid "No results" +#~ msgid "No results" +#~ msgstr "No results" + +#: src/components/nav/SearchDrawer.tsx:472 +#: src/tables/part/PartTestTemplateTable.tsx:76 +msgid "No Results" msgstr "" -#: src/components/nav/SearchDrawer.tsx:465 +#: src/components/nav/SearchDrawer.tsx:475 msgid "No results available for search query" msgstr "" -#: src/components/render/Instance.tsx:217 +#: src/components/panels/AttachmentPanel.tsx:18 +msgid "Attachments" +msgstr "" + +#: src/components/panels/NotesPanel.tsx:24 +#: src/tables/build/BuildOrderTestTable.tsx:143 +#: src/tables/stock/StockTrackingTable.tsx:204 +msgid "Notes" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:47 +msgid "Plugin Inactive" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:50 +msgid "Plugin is not active" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:60 +msgid "Plugin Information" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:74 +#: src/pages/build/BuildDetail.tsx:116 +#: src/pages/company/CompanyDetail.tsx:89 +#: src/pages/company/ManufacturerPartDetail.tsx:89 +#: src/pages/company/ManufacturerPartDetail.tsx:116 +#: src/pages/company/SupplierPartDetail.tsx:140 +#: src/pages/part/CategoryDetail.tsx:101 +#: src/pages/part/PartDetail.tsx:178 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:136 +#: src/pages/sales/ReturnOrderDetail.tsx:107 +#: src/pages/sales/SalesOrderDetail.tsx:116 +#: src/pages/stock/LocationDetail.tsx:103 +#: src/tables/ColumnRenderers.tsx:92 +#: src/tables/bom/UsedInTable.tsx:44 +#: src/tables/build/BuildAllocatedStockTable.tsx:83 +#: src/tables/build/BuildLineTable.tsx:329 +#: src/tables/machine/MachineTypeTable.tsx:74 +#: src/tables/machine/MachineTypeTable.tsx:129 +#: src/tables/machine/MachineTypeTable.tsx:240 +#: src/tables/machine/MachineTypeTable.tsx:344 +#: src/tables/part/RelatedPartTable.tsx:66 +#: src/tables/plugin/PluginListTable.tsx:99 +#: src/tables/sales/SalesOrderAllocationTable.tsx:87 +#: src/tables/sales/SalesOrderLineItemTable.tsx:75 +#: src/tables/stock/LocationTypesTable.tsx:74 +msgid "Description" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:79 +msgid "Author" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:84 +#: src/pages/part/PartSchedulingDetail.tsx:277 +#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:40 +#: src/pages/part/pricing/SaleHistoryPanel.tsx:38 +#: src/tables/ColumnRenderers.tsx:215 +#: src/tables/build/BuildOrderTestTable.tsx:151 +#: src/tables/settings/StocktakeReportTable.tsx:40 +msgid "Date" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:94 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:398 +#: src/pages/part/PartDetail.tsx:331 +#: src/tables/bom/UsedInTable.tsx:84 +#: src/tables/company/CompanyTable.tsx:62 +#: src/tables/company/CompanyTable.tsx:96 +#: src/tables/machine/MachineListTable.tsx:333 +#: src/tables/machine/MachineListTable.tsx:605 +#: src/tables/part/ParametricPartTable.tsx:223 +#: src/tables/part/PartTable.tsx:178 +#: src/tables/part/PartVariantTable.tsx:15 +#: src/tables/plugin/PluginListTable.tsx:94 +#: src/tables/plugin/PluginListTable.tsx:401 +#: src/tables/purchasing/SupplierPartTable.tsx:100 +#: src/tables/purchasing/SupplierPartTable.tsx:190 +#: src/tables/settings/UserTable.tsx:283 +#: src/tables/stock/StockItemTable.tsx:293 +msgid "Active" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:106 +msgid "Package Name" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:112 +msgid "Installation Path" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:117 +#: src/tables/machine/MachineTypeTable.tsx:152 +#: src/tables/machine/MachineTypeTable.tsx:276 +#: src/tables/plugin/PluginListTable.tsx:406 +msgid "Builtin" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:122 +msgid "Package" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:134 +#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:53 +msgid "Plugin Settings" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:146 +#: src/components/render/ModelType.tsx:276 +msgid "Plugin Configuration" +msgstr "" + +#: src/components/plugins/PluginPanel.tsx:87 +#~ msgid "Error occurred while rendering plugin content" +#~ msgstr "Error occurred while rendering plugin content" + +#: src/components/plugins/PluginPanel.tsx:91 +#~ msgid "Plugin did not provide panel rendering function" +#~ msgstr "Plugin did not provide panel rendering function" + +#: src/components/plugins/PluginPanel.tsx:103 +#~ msgid "No content provided for this plugin" +#~ msgstr "No content provided for this plugin" + +#: src/components/plugins/PluginPanel.tsx:116 +#: src/components/plugins/PluginSettingsPanel.tsx:76 +#~ msgid "Error Loading Plugin" +#~ msgstr "Error Loading Plugin" + +#: src/components/plugins/PluginSettingsPanel.tsx:51 +#~ msgid "Error occurred while rendering plugin settings" +#~ msgstr "Error occurred while rendering plugin settings" + +#: src/components/plugins/PluginSettingsPanel.tsx:55 +#~ msgid "Plugin did not provide settings rendering function" +#~ msgstr "Plugin did not provide settings rendering function" + +#: src/components/plugins/PluginUIFeature.tsx:100 +msgid "Error occurred while rendering the template editor." +msgstr "" + +#: src/components/plugins/PluginUIFeature.tsx:111 +msgid "Error Loading Plugin Editor" +msgstr "" + +#: src/components/plugins/PluginUIFeature.tsx:147 +msgid "Error occurred while rendering the template preview." +msgstr "" + +#: src/components/plugins/PluginUIFeature.tsx:158 +msgid "Error Loading Plugin Preview" +msgstr "" + +#: src/components/plugins/RemoteComponent.tsx:70 +msgid "Invalid source or function name" +msgstr "" + +#: src/components/plugins/RemoteComponent.tsx:91 +msgid "Error Loading Content" +msgstr "" + +#: src/components/plugins/RemoteComponent.tsx:95 +msgid "Error occurred while loading plugin content" +msgstr "" + +#: src/components/render/Instance.tsx:224 msgid "Unknown model: {model}" msgstr "" -#: src/components/render/ModelType.tsx:22 -#: src/forms/BuildForms.tsx:213 -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/forms/StockForms.tsx:499 -#: src/forms/StockForms.tsx:533 -#: src/forms/StockForms.tsx:562 -#: src/forms/StockForms.tsx:590 -#: src/forms/StockForms.tsx:621 -#: src/forms/StockForms.tsx:656 -#: src/forms/StockForms.tsx:698 -#: src/forms/StockForms.tsx:734 -#: src/pages/build/BuildDetail.tsx:95 -#: src/pages/part/PartDetail.tsx:1073 -#: src/tables/build/BuildAllocatedStockTable.tsx:82 +#: src/components/render/ModelType.tsx:30 +#: src/forms/BuildForms.tsx:269 +#: src/forms/BuildForms.tsx:337 +#: src/forms/BuildForms.tsx:385 +#: src/forms/BuildForms.tsx:515 +#: src/forms/PurchaseOrderForms.tsx:689 +#: src/forms/ReturnOrderForms.tsx:190 +#: src/forms/SalesOrderForms.tsx:248 +#: src/forms/StockForms.tsx:261 +#: src/forms/StockForms.tsx:614 +#: src/forms/StockForms.tsx:651 +#: src/forms/StockForms.tsx:677 +#: src/forms/StockForms.tsx:705 +#: src/forms/StockForms.tsx:736 +#: src/forms/StockForms.tsx:771 +#: src/forms/StockForms.tsx:813 +#: src/forms/StockForms.tsx:851 +#: src/pages/build/BuildDetail.tsx:90 +#: src/pages/part/PartDetail.tsx:1094 +#: src/tables/build/BuildAllocatedStockTable.tsx:95 +#: src/tables/build/BuildLineTable.tsx:72 #: src/tables/part/PartTable.tsx:28 -#: src/tables/part/RelatedPartTable.tsx:45 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:88 -#: src/tables/sales/SalesOrderAllocationTable.tsx:68 -#: src/tables/stock/StockTrackingTable.tsx:74 +#: src/tables/part/RelatedPartTable.tsx:47 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:130 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:100 +#: src/tables/sales/SalesOrderAllocationTable.tsx:99 +#: src/tables/stock/StockTrackingTable.tsx:78 msgid "Part" msgstr "" -#: src/components/render/ModelType.tsx:23 -#: src/defaults/links.tsx:29 -#: src/defaults/menuItems.tsx:33 -#: src/pages/Index/Settings/SystemSettings.tsx:173 -#: src/pages/part/CategoryDetail.tsx:119 -#: src/pages/part/CategoryDetail.tsx:244 -#: src/pages/part/CategoryDetail.tsx:274 -#: src/pages/part/PartDetail.tsx:827 -msgid "Parts" -msgstr "" - -#: src/components/render/ModelType.tsx:31 +#: src/components/render/ModelType.tsx:40 msgid "Part Parameter Template" msgstr "" -#: src/components/render/ModelType.tsx:32 +#: src/components/render/ModelType.tsx:41 msgid "Part Parameter Templates" msgstr "" -#: src/components/render/ModelType.tsx:38 +#: src/components/render/ModelType.tsx:48 msgid "Part Test Template" msgstr "" -#: src/components/render/ModelType.tsx:39 +#: src/components/render/ModelType.tsx:49 msgid "Part Test Templates" msgstr "" -#: src/components/render/ModelType.tsx:45 -#: src/pages/company/SupplierPartDetail.tsx:203 -#: src/pages/company/SupplierPartDetail.tsx:375 -#: src/pages/stock/StockDetail.tsx:173 -#: src/tables/build/BuildAllocatedStockTable.tsx:131 +#: src/components/render/ModelType.tsx:56 +#: src/pages/company/SupplierPartDetail.tsx:364 +#: src/pages/stock/StockDetail.tsx:194 +#: src/tables/build/BuildAllocatedStockTable.tsx:152 #: src/tables/part/PartPurchaseOrdersTable.tsx:49 -#: src/tables/purchasing/SupplierPartTable.tsx:68 +#: src/tables/purchasing/SupplierPartTable.tsx:70 +#: src/tables/stock/StockItemTable.tsx:229 msgid "Supplier Part" msgstr "" -#: src/components/render/ModelType.tsx:46 +#: src/components/render/ModelType.tsx:57 msgid "Supplier Parts" msgstr "" -#: src/components/render/ModelType.tsx:54 -#: src/pages/company/ManufacturerPartDetail.tsx:132 +#: src/components/render/ModelType.tsx:66 #: src/tables/part/PartPurchaseOrdersTable.tsx:55 +#: src/tables/stock/StockItemTable.tsx:234 msgid "Manufacturer Part" msgstr "" -#: src/components/render/ModelType.tsx:55 +#: src/components/render/ModelType.tsx:67 msgid "Manufacturer Parts" msgstr "" -#: src/components/render/ModelType.tsx:63 -#: src/pages/part/CategoryDetail.tsx:305 +#: src/components/render/ModelType.tsx:76 +#: src/pages/part/CategoryDetail.tsx:310 msgid "Part Category" msgstr "" -#: src/components/render/ModelType.tsx:64 -#: src/pages/part/CategoryDetail.tsx:258 -#: src/pages/part/CategoryDetail.tsx:296 -#: src/pages/part/PartDetail.tsx:1063 +#: src/components/render/ModelType.tsx:77 +#: src/pages/part/CategoryDetail.tsx:263 +#: src/pages/part/CategoryDetail.tsx:301 +#: src/pages/part/PartDetail.tsx:1084 msgid "Part Categories" msgstr "" -#: src/components/render/ModelType.tsx:72 -#: src/pages/stock/StockDetail.tsx:624 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:94 -#: src/tables/stock/StockTrackingTable.tsx:45 +#: src/components/render/ModelType.tsx:86 +#: src/forms/BuildForms.tsx:337 +#: src/forms/BuildForms.tsx:385 +#: src/forms/BuildForms.tsx:515 +#: src/forms/SalesOrderForms.tsx:248 +#: src/pages/stock/StockDetail.tsx:839 +#: src/tables/stock/StockTrackingTable.tsx:49 msgid "Stock Item" msgstr "" -#: src/components/render/ModelType.tsx:73 +#: src/components/render/ModelType.tsx:87 #: src/pages/company/CompanyDetail.tsx:203 -#: src/pages/stock/LocationDetail.tsx:128 -#: src/pages/stock/LocationDetail.tsx:181 -#: src/pages/stock/LocationDetail.tsx:395 +#: src/pages/part/PartStocktakeDetail.tsx:113 +#: src/pages/stock/LocationDetail.tsx:122 +#: src/pages/stock/LocationDetail.tsx:175 +#: src/pages/stock/LocationDetail.tsx:380 msgid "Stock Items" msgstr "" -#: src/components/render/ModelType.tsx:81 +#: src/components/render/ModelType.tsx:96 msgid "Stock Location" msgstr "" -#: src/components/render/ModelType.tsx:82 -#: src/pages/stock/LocationDetail.tsx:195 -#: src/pages/stock/LocationDetail.tsx:387 -#: src/pages/stock/StockDetail.tsx:616 +#: src/components/render/ModelType.tsx:97 +#: src/pages/stock/LocationDetail.tsx:189 +#: src/pages/stock/LocationDetail.tsx:372 +#: src/pages/stock/StockDetail.tsx:831 msgid "Stock Locations" msgstr "" -#: src/components/render/ModelType.tsx:90 +#: src/components/render/ModelType.tsx:106 msgid "Stock Location Type" msgstr "" -#: src/components/render/ModelType.tsx:91 +#: src/components/render/ModelType.tsx:107 msgid "Stock Location Types" msgstr "" -#: src/components/render/ModelType.tsx:95 +#: src/components/render/ModelType.tsx:112 +#: src/pages/part/PartDetail.tsx:712 msgid "Stock History" msgstr "" -#: src/components/render/ModelType.tsx:96 +#: src/components/render/ModelType.tsx:113 msgid "Stock Histories" msgstr "" -#: src/components/render/ModelType.tsx:100 -#: src/defaults/links.tsx:31 -#: src/defaults/menuItems.tsx:43 +#: src/components/render/ModelType.tsx:118 msgid "Build" msgstr "" -#: src/components/render/ModelType.tsx:101 +#: src/components/render/ModelType.tsx:119 msgid "Builds" msgstr "" -#: src/components/render/ModelType.tsx:109 +#: src/components/render/ModelType.tsx:128 msgid "Build Line" msgstr "" -#: src/components/render/ModelType.tsx:110 +#: src/components/render/ModelType.tsx:129 msgid "Build Lines" msgstr "" -#: src/components/render/ModelType.tsx:117 +#: src/components/render/ModelType.tsx:137 msgid "Build Item" msgstr "" -#: src/components/render/ModelType.tsx:118 +#: src/components/render/ModelType.tsx:138 msgid "Build Items" msgstr "" -#: src/components/render/ModelType.tsx:122 -#: src/pages/company/CompanyDetail.tsx:339 +#: src/components/render/ModelType.tsx:143 +#: src/pages/company/CompanyDetail.tsx:321 msgid "Company" msgstr "" -#: src/components/render/ModelType.tsx:123 +#: src/components/render/ModelType.tsx:144 msgid "Companies" msgstr "" -#: src/components/render/ModelType.tsx:131 +#: src/components/render/ModelType.tsx:153 +#: src/pages/build/BuildDetail.tsx:195 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:204 +#: src/pages/sales/ReturnOrderDetail.tsx:174 +#: src/pages/sales/SalesOrderDetail.tsx:186 #: src/tables/TableHoverCard.tsx:81 -#: src/tables/build/BuildOrderTable.tsx:140 -#: src/tables/purchasing/PurchaseOrderTable.tsx:64 -#: src/tables/sales/ReturnOrderTable.tsx:55 -#: src/tables/sales/SalesOrderTable.tsx:62 +#: src/tables/build/BuildOrderTable.tsx:135 +#: src/tables/purchasing/PurchaseOrderTable.tsx:69 +#: src/tables/sales/ReturnOrderTable.tsx:67 +#: src/tables/sales/SalesOrderTable.tsx:67 msgid "Project Code" msgstr "" -#: src/components/render/ModelType.tsx:132 -#: src/pages/Index/Settings/AdminCenter/Index.tsx:128 +#: src/components/render/ModelType.tsx:154 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:145 msgid "Project Codes" msgstr "" -#: src/components/render/ModelType.tsx:138 +#: src/components/render/ModelType.tsx:161 #: src/pages/part/pricing/PurchaseHistoryPanel.tsx:32 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:480 -#: src/tables/part/PartPurchaseOrdersTable.tsx:32 -#: src/tables/stock/StockTrackingTable.tsx:107 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:477 +#: src/pages/stock/StockDetail.tsx:253 +#: src/tables/part/PartPurchaseOrdersTable.tsx:31 +#: src/tables/stock/StockItemTable.tsx:222 +#: src/tables/stock/StockTrackingTable.tsx:111 msgid "Purchase Order" msgstr "" -#: src/components/render/ModelType.tsx:139 -#: src/pages/Index/Settings/SystemSettings.tsx:255 +#: src/components/render/ModelType.tsx:162 +#: src/pages/Index/Settings/SystemSettings.tsx:249 #: src/pages/company/CompanyDetail.tsx:196 -#: src/pages/company/SupplierPartDetail.tsx:237 -#: src/pages/part/PartDetail.tsx:662 +#: src/pages/company/SupplierPartDetail.tsx:249 +#: src/pages/part/PartDetail.tsx:683 #: src/pages/purchasing/PurchasingIndex.tsx:25 msgid "Purchase Orders" msgstr "" -#: src/components/render/ModelType.tsx:147 +#: src/components/render/ModelType.tsx:171 msgid "Purchase Order Line" msgstr "" -#: src/components/render/ModelType.tsx:148 +#: src/components/render/ModelType.tsx:172 msgid "Purchase Order Lines" msgstr "" -#: src/components/render/ModelType.tsx:152 -#: src/pages/build/BuildDetail.tsx:153 -#: src/pages/sales/SalesOrderDetail.tsx:520 -#: src/pages/stock/StockDetail.tsx:221 -#: src/tables/sales/SalesOrderAllocationTable.tsx:50 -#: src/tables/stock/StockTrackingTable.tsx:118 +#: src/components/render/ModelType.tsx:177 +#: src/pages/build/BuildDetail.tsx:148 +#: src/pages/part/pricing/SaleHistoryPanel.tsx:24 +#: src/pages/sales/SalesOrderDetail.tsx:515 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:92 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:341 +#: src/pages/stock/StockDetail.tsx:262 +#: src/tables/sales/SalesOrderAllocationTable.tsx:80 +#: src/tables/stock/StockTrackingTable.tsx:122 msgid "Sales Order" msgstr "" -#: src/components/render/ModelType.tsx:153 -#: src/pages/Index/Settings/SystemSettings.tsx:270 +#: src/components/render/ModelType.tsx:178 +#: src/pages/Index/Settings/SystemSettings.tsx:264 #: src/pages/company/CompanyDetail.tsx:216 -#: src/pages/part/PartDetail.tsx:669 +#: src/pages/part/PartDetail.tsx:695 #: src/pages/sales/SalesIndex.tsx:26 msgid "Sales Orders" msgstr "" -#: src/components/render/ModelType.tsx:161 +#: src/components/render/ModelType.tsx:187 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:340 msgid "Sales Order Shipment" msgstr "" -#: src/components/render/ModelType.tsx:162 +#: src/components/render/ModelType.tsx:188 msgid "Sales Order Shipments" msgstr "" -#: src/components/render/ModelType.tsx:168 -#: src/pages/sales/ReturnOrderDetail.tsx:469 -#: src/tables/stock/StockTrackingTable.tsx:129 +#: src/components/render/ModelType.tsx:195 +#: src/pages/sales/ReturnOrderDetail.tsx:464 +#: src/tables/stock/StockTrackingTable.tsx:133 msgid "Return Order" msgstr "" -#: src/components/render/ModelType.tsx:169 -#: src/pages/Index/Settings/SystemSettings.tsx:286 +#: src/components/render/ModelType.tsx:196 +#: src/pages/Index/Settings/SystemSettings.tsx:280 #: src/pages/company/CompanyDetail.tsx:223 +#: src/pages/part/PartDetail.tsx:702 #: src/pages/sales/SalesIndex.tsx:32 msgid "Return Orders" msgstr "" -#: src/components/render/ModelType.tsx:177 +#: src/components/render/ModelType.tsx:205 msgid "Return Order Line Item" msgstr "" -#: src/components/render/ModelType.tsx:178 +#: src/components/render/ModelType.tsx:206 msgid "Return Order Line Items" msgstr "" -#: src/components/render/ModelType.tsx:182 -#: src/tables/company/AddressTable.tsx:47 +#: src/components/render/ModelType.tsx:211 +#: src/tables/company/AddressTable.tsx:48 msgid "Address" msgstr "" -#: src/components/render/ModelType.tsx:183 -#: src/pages/company/CompanyDetail.tsx:253 +#: src/components/render/ModelType.tsx:212 +#: src/pages/company/CompanyDetail.tsx:255 msgid "Addresses" msgstr "" -#: src/components/render/ModelType.tsx:189 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:195 -#: src/pages/sales/ReturnOrderDetail.tsx:174 -#: src/pages/sales/SalesOrderDetail.tsx:183 +#: src/components/render/ModelType.tsx:219 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:196 +#: src/pages/sales/ReturnOrderDetail.tsx:166 +#: src/pages/sales/SalesOrderDetail.tsx:178 msgid "Contact" msgstr "" -#: src/components/render/ModelType.tsx:190 -#: src/pages/company/CompanyDetail.tsx:247 +#: src/components/render/ModelType.tsx:220 +#: src/pages/company/CompanyDetail.tsx:249 msgid "Contacts" msgstr "" -#: src/components/render/ModelType.tsx:196 +#: src/components/render/ModelType.tsx:227 msgid "Owner" msgstr "" -#: src/components/render/ModelType.tsx:197 +#: src/components/render/ModelType.tsx:228 msgid "Owners" msgstr "" -#: src/components/render/ModelType.tsx:203 -#: src/tables/settings/ImportSessionTable.tsx:121 -#: src/tables/stock/StockItemTestResultTable.tsx:198 -#: src/tables/stock/StockTrackingTable.tsx:195 +#: src/components/render/ModelType.tsx:234 +#~ msgid "Purchase Order Line Item" +#~ msgstr "Purchase Order Line Item" + +#: src/components/render/ModelType.tsx:235 +#: src/tables/settings/BarcodeScanHistoryTable.tsx:80 +#: src/tables/settings/BarcodeScanHistoryTable.tsx:211 +#: src/tables/settings/ImportSessionTable.tsx:120 +#: src/tables/settings/StocktakeReportTable.tsx:44 +#: src/tables/stock/StockItemTestResultTable.tsx:204 +#: src/tables/stock/StockTrackingTable.tsx:181 +#: src/tables/stock/StockTrackingTable.tsx:210 msgid "User" msgstr "" -#: src/components/render/ModelType.tsx:204 -#: src/pages/Index/Settings/AdminCenter/Index.tsx:98 +#: src/components/render/ModelType.tsx:236 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:109 #: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:13 msgid "Users" msgstr "" -#: src/components/render/ModelType.tsx:210 +#: src/components/render/ModelType.tsx:243 msgid "Group" msgstr "" -#: src/components/render/ModelType.tsx:211 +#: src/components/render/ModelType.tsx:244 #: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:20 -#: src/tables/settings/UserTable.tsx:138 -#: src/tables/settings/UserTable.tsx:201 +#: src/tables/settings/UserTable.tsx:137 +#: src/tables/settings/UserTable.tsx:200 msgid "Groups" msgstr "" -#: src/components/render/ModelType.tsx:218 +#: src/components/render/ModelType.tsx:252 msgid "Import Session" msgstr "" -#: src/components/render/ModelType.tsx:219 +#: src/components/render/ModelType.tsx:253 msgid "Import Sessions" msgstr "" -#: src/components/render/ModelType.tsx:225 +#: src/components/render/ModelType.tsx:260 msgid "Label Template" msgstr "" -#: src/components/render/ModelType.tsx:226 -#: src/pages/Index/Settings/AdminCenter/Index.tsx:158 +#: src/components/render/ModelType.tsx:261 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:187 msgid "Label Templates" msgstr "" -#: src/components/render/ModelType.tsx:232 +#: src/components/render/ModelType.tsx:264 +#~ msgid "Unknown Model" +#~ msgstr "Unknown Model" + +#: src/components/render/ModelType.tsx:268 msgid "Report Template" msgstr "" -#: src/components/render/ModelType.tsx:233 -#: src/pages/Index/Settings/AdminCenter/Index.tsx:164 +#: src/components/render/ModelType.tsx:269 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:193 msgid "Report Templates" msgstr "" -#: src/components/render/ModelType.tsx:239 -msgid "Plugin Configuration" -msgstr "" - -#: src/components/render/ModelType.tsx:240 +#: src/components/render/ModelType.tsx:277 msgid "Plugin Configurations" msgstr "" +#: src/components/render/ModelType.tsx:284 +msgid "Content Type" +msgstr "" + +#: src/components/render/ModelType.tsx:285 +msgid "Content Types" +msgstr "" + +#: src/components/render/ModelType.tsx:291 +#: src/tables/machine/MachineListTable.tsx:351 +#: src/tables/machine/MachineTypeTable.tsx:282 +msgid "Errors" +msgstr "" + +#: src/components/render/ModelType.tsx:307 +#~ msgid "Purchase Order Line Items" +#~ msgstr "Purchase Order Line Items" + +#: src/components/render/ModelType.tsx:337 +#~ msgid "Unknown Models" +#~ msgstr "Unknown Models" + #: src/components/render/Order.tsx:121 +#: src/tables/sales/SalesOrderAllocationTable.tsx:136 msgid "Shipment" msgstr "" #: src/components/render/Part.tsx:25 #: src/components/render/Plugin.tsx:17 -#: src/pages/company/CompanyDetail.tsx:325 -#: src/pages/company/SupplierPartDetail.tsx:360 -#: src/pages/part/PartDetail.tsx:879 +#: src/pages/company/CompanyDetail.tsx:307 +#: src/pages/company/SupplierPartDetail.tsx:349 +#: src/pages/part/PartDetail.tsx:911 msgid "Inactive" msgstr "Ανενεργό" @@ -1736,39 +2335,38 @@ msgstr "Ανενεργό" msgid "No stock" msgstr "" -#: src/components/render/Part.tsx:30 -#: src/defaults/links.tsx:30 -#: src/defaults/menuItems.tsx:38 -#: src/pages/Index/Settings/SystemSettings.tsx:206 -#: src/pages/part/PartDetail.tsx:543 -#: src/pages/stock/LocationDetail.tsx:367 -#: src/pages/stock/StockDetail.tsx:411 -#: src/tables/stock/StockItemTable.tsx:68 -msgid "Stock" -msgstr "" - -#: src/components/render/Stock.tsx:60 -#: src/pages/stock/StockDetail.tsx:150 -#: src/pages/stock/StockDetail.tsx:581 -#: src/tables/build/BuildAllocatedStockTable.tsx:102 -#: src/tables/sales/SalesOrderAllocationTable.tsx:80 +#: src/components/render/Stock.tsx:61 +#: src/forms/ReturnOrderForms.tsx:190 +#: src/pages/stock/StockDetail.tsx:166 +#: src/pages/stock/StockDetail.tsx:771 +#: src/tables/build/BuildAllocatedStockTable.tsx:123 +#: src/tables/build/BuildOutputTable.tsx:81 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:114 +#: src/tables/sales/SalesOrderAllocationTable.tsx:106 msgid "Serial Number" msgstr "" -#: src/components/render/Stock.tsx:62 -#: src/forms/BuildForms.tsx:218 -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/pages/part/pricing/BomPricingPanel.tsx:109 +#: src/components/render/Stock.tsx:63 +#: src/forms/BuildForms.tsx:206 +#: src/forms/BuildForms.tsx:515 +#: src/forms/PurchaseOrderForms.tsx:689 +#: src/forms/SalesOrderForms.tsx:248 +#: src/pages/part/PartSchedulingDetail.tsx:80 +#: src/pages/part/PartStocktakeDetail.tsx:60 +#: src/pages/part/PartStocktakeDetail.tsx:234 +#: src/pages/part/PartStocktakeDetail.tsx:252 +#: src/pages/part/pricing/BomPricingPanel.tsx:148 #: src/pages/part/pricing/PriceBreakPanel.tsx:89 -#: src/pages/part/pricing/PriceBreakPanel.tsx:171 -#: src/pages/stock/StockDetail.tsx:145 -#: src/pages/stock/StockDetail.tsx:587 -#: src/tables/build/BuildOrderTestTable.tsx:197 -#: src/tables/part/PartPurchaseOrdersTable.tsx:92 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:143 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:171 +#: src/pages/part/pricing/PriceBreakPanel.tsx:172 +#: src/pages/stock/StockDetail.tsx:161 +#: src/pages/stock/StockDetail.tsx:777 +#: src/tables/build/BuildLineTable.tsx:79 +#: src/tables/build/BuildOrderTestTable.tsx:198 +#: src/tables/part/PartPurchaseOrdersTable.tsx:93 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:146 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:177 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:77 -#: src/tables/stock/StockTrackingTable.tsx:59 +#: src/tables/stock/StockTrackingTable.tsx:63 msgid "Quantity" msgstr "" @@ -1842,10 +2440,6 @@ msgstr "" #~ msgid "Required Part" #~ msgstr "Required Part" -#: src/components/tables/build/BuildLineTable.tsx:152 -#~ msgid "Required Quantity" -#~ msgstr "Required Quantity" - #: src/components/tables/build/BuildOrderTable.tsx:52 #~ msgid "Progress" #~ msgstr "Progress" @@ -2126,14 +2720,6 @@ msgstr "" #~ msgid "user deleted" #~ msgstr "user deleted" -#: src/components/tables/settings/UserTable.tsx:168 -#~ msgid "First Name" -#~ msgstr "First Name" - -#: src/components/tables/settings/UserTable.tsx:173 -#~ msgid "Last Name" -#~ msgstr "Last Name" - #: src/components/tables/stock/StockItemTable.tsx:247 #~ msgid "Test Filter" #~ msgstr "Test Filter" @@ -2146,36 +2732,21 @@ msgstr "" #~ msgid "Stock location updated" #~ msgstr "Stock location updated" -#: src/components/widgets/DisplayWidget.tsx:11 -#: src/pages/Index/Settings/AccountSettings/DisplaySettingsPanel.tsx:17 -msgid "Display Settings" -msgstr "" - -#: src/components/widgets/DisplayWidget.tsx:15 -#: src/pages/Index/Settings/AccountSettings/DisplaySettingsPanel.tsx:23 -msgid "Color Mode" -msgstr "" - -#: src/components/widgets/DisplayWidget.tsx:21 -#: src/pages/Index/Settings/AccountSettings/DisplaySettingsPanel.tsx:33 -msgid "Language" -msgstr "" - #: src/components/widgets/FeedbackWidget.tsx:19 -msgid "Something is new: Platform UI" -msgstr "" +#~ msgid "Something is new: Platform UI" +#~ msgstr "Something is new: Platform UI" #: src/components/widgets/FeedbackWidget.tsx:21 -msgid "We are building a new UI with a modern stack. What you currently see is not fixed and will be redesigned but demonstrates the UI/UX possibilities we will have going forward." -msgstr "" +#~ msgid "We are building a new UI with a modern stack. What you currently see is not fixed and will be redesigned but demonstrates the UI/UX possibilities we will have going forward." +#~ msgstr "We are building a new UI with a modern stack. What you currently see is not fixed and will be redesigned but demonstrates the UI/UX possibilities we will have going forward." #: src/components/widgets/FeedbackWidget.tsx:32 -msgid "Provide Feedback" -msgstr "" +#~ msgid "Provide Feedback" +#~ msgstr "Provide Feedback" #: src/components/widgets/GetStartedWidget.tsx:11 -msgid "Getting started" -msgstr "" +#~ msgid "Getting started" +#~ msgstr "Getting started" #: src/components/widgets/MarkdownEditor.tsx:108 #~ msgid "Failed to upload image" @@ -2186,28 +2757,24 @@ msgstr "" #~ msgstr "Notes saved" #: src/components/widgets/WidgetLayout.tsx:166 -msgid "Layout" -msgstr "" +#~ msgid "Layout" +#~ msgstr "Layout" #: src/components/widgets/WidgetLayout.tsx:172 -msgid "Reset Layout" -msgstr "" +#~ msgid "Reset Layout" +#~ msgstr "Reset Layout" #: src/components/widgets/WidgetLayout.tsx:185 -msgid "Stop Edit" -msgstr "" - -#: src/components/widgets/WidgetLayout.tsx:185 -msgid "Edit Layout" -msgstr "" +#~ msgid "Stop Edit" +#~ msgstr "Stop Edit" #: src/components/widgets/WidgetLayout.tsx:191 -msgid "Appearance" -msgstr "" +#~ msgid "Appearance" +#~ msgstr "Appearance" #: src/components/widgets/WidgetLayout.tsx:203 -msgid "Show Boxes" -msgstr "" +#~ msgid "Show Boxes" +#~ msgstr "Show Boxes" #: src/contexts/LanguageContext.tsx:20 msgid "Arabic" @@ -2286,201 +2853,175 @@ msgid "Korean" msgstr "" #: src/contexts/LanguageContext.tsx:39 -msgid "Latvian" +msgid "Lithuanian" msgstr "" #: src/contexts/LanguageContext.tsx:40 -msgid "Dutch" +msgid "Latvian" msgstr "" #: src/contexts/LanguageContext.tsx:41 -msgid "Norwegian" +msgid "Dutch" msgstr "" #: src/contexts/LanguageContext.tsx:42 -msgid "Polish" +msgid "Norwegian" msgstr "" #: src/contexts/LanguageContext.tsx:43 -msgid "Portuguese" +msgid "Polish" msgstr "" #: src/contexts/LanguageContext.tsx:44 -msgid "Portuguese (Brazilian)" +msgid "Portuguese" msgstr "" #: src/contexts/LanguageContext.tsx:45 -msgid "Romanian" +msgid "Portuguese (Brazilian)" msgstr "" #: src/contexts/LanguageContext.tsx:46 -msgid "Russian" +msgid "Romanian" msgstr "" #: src/contexts/LanguageContext.tsx:47 -msgid "Slovak" +msgid "Russian" msgstr "" #: src/contexts/LanguageContext.tsx:48 -msgid "Slovenian" +msgid "Slovak" msgstr "" #: src/contexts/LanguageContext.tsx:49 -msgid "Swedish" +msgid "Slovenian" msgstr "" #: src/contexts/LanguageContext.tsx:50 -msgid "Thai" +msgid "Swedish" msgstr "" #: src/contexts/LanguageContext.tsx:51 -msgid "Turkish" +msgid "Thai" msgstr "" #: src/contexts/LanguageContext.tsx:52 -msgid "Ukrainian" +msgid "Turkish" msgstr "" #: src/contexts/LanguageContext.tsx:53 -msgid "Vietnamese" +msgid "Ukrainian" msgstr "" #: src/contexts/LanguageContext.tsx:54 -msgid "Chinese (Simplified)" +msgid "Vietnamese" msgstr "" #: src/contexts/LanguageContext.tsx:55 +msgid "Chinese (Simplified)" +msgstr "" + +#: src/contexts/LanguageContext.tsx:56 msgid "Chinese (Traditional)" msgstr "" +#: src/defaults/actions.tsx:18 +msgid "Go to the InvenTree dashboard" +msgstr "" + #: src/defaults/actions.tsx:18 #: src/defaults/links.tsx:27 #: src/defaults/menuItems.tsx:9 -msgid "Home" -msgstr "" +#~ msgid "Home" +#~ msgstr "Home" #: src/defaults/actions.tsx:25 -#: src/defaults/links.tsx:28 -#: src/defaults/menuItems.tsx:28 -#: src/pages/Index/Dashboard.tsx:19 -#: src/pages/Index/Settings/UserSettings.tsx:46 -msgid "Dashboard" -msgstr "" - -#: src/defaults/actions.tsx:26 -msgid "Go to the InvenTree dashboard" -msgstr "" - -#: src/defaults/actions.tsx:33 msgid "Visit the documentation to learn more about InvenTree" msgstr "" -#: src/defaults/actions.tsx:39 -#: src/defaults/links.tsx:98 -#: src/defaults/links.tsx:128 +#: src/defaults/actions.tsx:31 +#: src/defaults/links.tsx:92 +#: src/defaults/links.tsx:124 msgid "About InvenTree" msgstr "" -#: src/defaults/actions.tsx:40 -#: src/defaults/links.tsx:129 +#: src/defaults/actions.tsx:32 msgid "About the InvenTree org" msgstr "" -#: src/defaults/actions.tsx:46 +#: src/defaults/actions.tsx:38 msgid "Server Information" msgstr "" -#: src/defaults/actions.tsx:47 -#: src/defaults/links.tsx:123 +#: src/defaults/actions.tsx:39 +#: src/defaults/links.tsx:118 msgid "About this Inventree instance" msgstr "" -#: src/defaults/actions.tsx:53 -#: src/defaults/links.tsx:111 +#: src/defaults/actions.tsx:45 +#: src/defaults/links.tsx:105 +#: src/defaults/links.tsx:131 msgid "License Information" msgstr "" -#: src/defaults/actions.tsx:54 -#: src/defaults/links.tsx:135 +#: src/defaults/actions.tsx:46 msgid "Licenses for dependencies of the service" msgstr "" -#: src/defaults/actions.tsx:61 +#: src/defaults/actions.tsx:52 +msgid "Open Navigation" +msgstr "" + +#: src/defaults/actions.tsx:53 msgid "Open the main navigation menu" msgstr "" -#: src/defaults/actions.tsx:72 +#: src/defaults/actions.tsx:64 msgid "Go to the Admin Center" msgstr "" -#: src/defaults/dashboardItems.tsx:15 -msgid "Subscribed Parts" -msgstr "" - -#: src/defaults/dashboardItems.tsx:22 -msgid "Subscribed Categories" -msgstr "" - #: src/defaults/dashboardItems.tsx:29 -msgid "Latest Parts" -msgstr "" +#~ msgid "Latest Parts" +#~ msgstr "Latest Parts" #: src/defaults/dashboardItems.tsx:36 -msgid "BOM Waiting Validation" -msgstr "" +#~ msgid "BOM Waiting Validation" +#~ msgstr "BOM Waiting Validation" #: src/defaults/dashboardItems.tsx:43 -msgid "Recently Updated" -msgstr "" - -#: src/defaults/dashboardItems.tsx:50 -#: src/tables/part/PartTable.tsx:238 -msgid "Low Stock" -msgstr "" +#~ msgid "Recently Updated" +#~ msgstr "Recently Updated" #: src/defaults/dashboardItems.tsx:57 -msgid "Depleted Stock" -msgstr "" +#~ msgid "Depleted Stock" +#~ msgstr "Depleted Stock" #: src/defaults/dashboardItems.tsx:64 -msgid "Required for Build Orders" -msgstr "" +#~ msgid "Required for Build Orders" +#~ msgstr "Required for Build Orders" #: src/defaults/dashboardItems.tsx:71 -msgid "Expired Stock" -msgstr "" +#~ msgid "Expired Stock" +#~ msgstr "Expired Stock" #: src/defaults/dashboardItems.tsx:78 -msgid "Stale Stock" -msgstr "" +#~ msgid "Stale Stock" +#~ msgstr "Stale Stock" #: src/defaults/dashboardItems.tsx:85 -msgid "Build Orders In Progress" -msgstr "" - -#: src/defaults/dashboardItems.tsx:92 -msgid "Overdue Build Orders" -msgstr "" +#~ msgid "Build Orders In Progress" +#~ msgstr "Build Orders In Progress" #: src/defaults/dashboardItems.tsx:99 -msgid "Outstanding Purchase Orders" -msgstr "" - -#: src/defaults/dashboardItems.tsx:106 -msgid "Overdue Purchase Orders" -msgstr "" +#~ msgid "Outstanding Purchase Orders" +#~ msgstr "Outstanding Purchase Orders" #: src/defaults/dashboardItems.tsx:113 -msgid "Outstanding Sales Orders" -msgstr "" - -#: src/defaults/dashboardItems.tsx:120 -msgid "Overdue Sales Orders" -msgstr "" +#~ msgid "Outstanding Sales Orders" +#~ msgstr "Outstanding Sales Orders" #: src/defaults/dashboardItems.tsx:127 -msgid "Current News" -msgstr "" +#~ msgid "Current News" +#~ msgstr "Current News" #: src/defaults/defaultHostList.tsx:8 #~ msgid "InvenTree Demo" @@ -2490,98 +3031,81 @@ msgstr "" #~ msgid "Local Server" #~ msgstr "Local Server" -#: src/defaults/links.tsx:12 -#: src/pages/company/CompanyDetail.tsx:96 -msgid "Website" -msgstr "" - #: src/defaults/links.tsx:17 -msgid "GitHub" -msgstr "" +#~ msgid "GitHub" +#~ msgstr "GitHub" #: src/defaults/links.tsx:22 -msgid "Demo" -msgstr "" - -#: src/defaults/links.tsx:33 -#: src/defaults/menuItems.tsx:48 -#: src/pages/company/ManufacturerDetail.tsx:9 -#: src/pages/company/ManufacturerPartDetail.tsx:263 -#: src/pages/company/SupplierDetail.tsx:9 -#: src/pages/company/SupplierPartDetail.tsx:347 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:483 -#: src/pages/purchasing/PurchasingIndex.tsx:60 -msgid "Purchasing" -msgstr "" - -#: src/defaults/links.tsx:37 -#: src/defaults/menuItems.tsx:53 -#: src/pages/company/CustomerDetail.tsx:9 -#: src/pages/sales/ReturnOrderDetail.tsx:474 -#: src/pages/sales/SalesIndex.tsx:53 -#: src/pages/sales/SalesOrderDetail.tsx:525 -msgid "Sales" -msgstr "" +#~ msgid "Demo" +#~ msgstr "Demo" #: src/defaults/links.tsx:41 #: src/defaults/menuItems.tsx:71 #: src/pages/Index/Playground.tsx:217 -msgid "Playground" -msgstr "" +#~ msgid "Playground" +#~ msgstr "Playground" -#: src/defaults/links.tsx:55 -msgid "Getting Started" -msgstr "" - -#: src/defaults/links.tsx:56 -msgid "Getting started with InvenTree" -msgstr "" - -#: src/defaults/links.tsx:62 +#: src/defaults/links.tsx:45 msgid "API" msgstr "" -#: src/defaults/links.tsx:63 +#: src/defaults/links.tsx:48 msgid "InvenTree API documentation" msgstr "" -#: src/defaults/links.tsx:68 +#: src/defaults/links.tsx:52 msgid "Developer Manual" msgstr "" -#: src/defaults/links.tsx:69 +#: src/defaults/links.tsx:55 msgid "InvenTree developer manual" msgstr "" -#: src/defaults/links.tsx:74 +#: src/defaults/links.tsx:59 msgid "FAQ" msgstr "" -#: src/defaults/links.tsx:75 +#: src/defaults/links.tsx:62 msgid "Frequently asked questions" msgstr "" +#: src/defaults/links.tsx:66 +msgid "GitHub Repository" +msgstr "" + +#: src/defaults/links.tsx:69 +msgid "InvenTree source code on GitHub" +msgstr "" + #: src/defaults/links.tsx:76 #~ msgid "Instance" #~ msgstr "Instance" +#: src/defaults/links.tsx:79 +#: src/defaults/links.tsx:117 +msgid "System Information" +msgstr "" + #: src/defaults/links.tsx:83 #~ msgid "InvenTree" #~ msgstr "InvenTree" -#: src/defaults/links.tsx:85 -#: src/defaults/links.tsx:122 -msgid "System Information" -msgstr "" - #: src/defaults/links.tsx:117 #~ msgid "Licenses for packages used by InvenTree" #~ msgstr "Licenses for packages used by InvenTree" -#: src/defaults/links.tsx:134 -msgid "Licenses" +#: src/defaults/links.tsx:125 +msgid "About the InvenTree Project" msgstr "" +#: src/defaults/links.tsx:132 +msgid "Licenses for dependencies of the InvenTree software" +msgstr "" + +#: src/defaults/links.tsx:134 +#~ msgid "Licenses" +#~ msgstr "Licenses" + #: src/defaults/menuItems.tsx:7 #~ msgid "Open sourcea" #~ msgstr "Open sourcea" @@ -2607,8 +3131,8 @@ msgstr "" #~ msgstr "Profile page" #: src/defaults/menuItems.tsx:17 -msgid "User attributes and design settings." -msgstr "" +#~ msgid "User attributes and design settings." +#~ msgstr "User attributes and design settings." #: src/defaults/menuItems.tsx:21 #~ msgid "Free for everyone" @@ -2619,8 +3143,8 @@ msgstr "" #~ msgstr "The fluid of Smeargle’s tail secretions changes" #: src/defaults/menuItems.tsx:23 -msgid "View for interactive scanning and multiple actions." -msgstr "" +#~ msgid "View for interactive scanning and multiple actions." +#~ msgstr "View for interactive scanning and multiple actions." #: src/defaults/menuItems.tsx:24 #~ msgid "The fluid of Smeargle’s tail secretions changes in the intensity" @@ -2698,51 +3222,130 @@ msgstr "" #~ msgid "Are you sure you want to delete this attachment?" #~ msgstr "Are you sure you want to delete this attachment?" -#: src/forms/BuildForms.tsx:158 -msgid "Next serial number" +#: src/forms/BuildForms.tsx:248 +#~ msgid "Remove output" +#~ msgstr "Remove output" + +#: src/forms/BuildForms.tsx:269 +#: src/tables/build/BuildAllocatedStockTable.tsx:147 +#: src/tables/build/BuildOrderTestTable.tsx:177 +#: src/tables/build/BuildOrderTestTable.tsx:201 +#: src/tables/build/BuildOutputTable.tsx:460 +msgid "Build Output" msgstr "" -#: src/forms/BuildForms.tsx:162 -msgid "Latest serial number" +#: src/forms/BuildForms.tsx:269 +#: src/forms/BuildForms.tsx:337 +#: src/forms/BuildForms.tsx:385 +#: src/tables/build/BuildLineTable.tsx:89 +msgid "Batch" msgstr "" -#: src/forms/BuildForms.tsx:234 -msgid "Remove output" +#: src/forms/BuildForms.tsx:269 +#: src/forms/BuildForms.tsx:337 +#: src/forms/BuildForms.tsx:385 +#: src/forms/PurchaseOrderForms.tsx:603 +#: src/pages/build/BuildDetail.tsx:104 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:142 +#: src/pages/sales/ReturnOrderDetail.tsx:113 +#: src/pages/sales/SalesOrderDetail.tsx:122 +#: src/tables/build/BuildOrderTable.tsx:125 +#: src/tables/machine/MachineListTable.tsx:336 +#: src/tables/part/PartPurchaseOrdersTable.tsx:37 +#: src/tables/purchasing/PurchaseOrderTable.tsx:58 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:157 +#: src/tables/sales/ReturnOrderTable.tsx:56 +#: src/tables/sales/SalesOrderTable.tsx:56 +#: src/tables/settings/CustomStateTable.tsx:57 +#: src/tables/settings/ImportSessionTable.tsx:114 +#: src/tables/stock/StockItemTable.tsx:298 +#: src/tables/stock/StockTrackingTable.tsx:56 +msgid "Status" msgstr "" -#: src/forms/BuildForms.tsx:316 +#: src/forms/BuildForms.tsx:289 msgid "Complete Build Outputs" msgstr "" -#: src/forms/BuildForms.tsx:320 +#: src/forms/BuildForms.tsx:292 msgid "Build outputs have been completed" msgstr "" -#: src/forms/BuildForms.tsx:389 +#: src/forms/BuildForms.tsx:353 msgid "Scrap Build Outputs" msgstr "" -#: src/forms/BuildForms.tsx:393 +#: src/forms/BuildForms.tsx:356 msgid "Build outputs have been scrapped" msgstr "" -#: src/forms/BuildForms.tsx:425 -#: src/forms/BuildForms.tsx:449 +#: src/forms/BuildForms.tsx:393 msgid "Cancel Build Outputs" msgstr "" -#: src/forms/BuildForms.tsx:426 -msgid "Selected build outputs will be deleted" +#: src/forms/BuildForms.tsx:396 +msgid "Build outputs have been cancelled" msgstr "" -#: src/forms/BuildForms.tsx:453 -msgid "Build outputs have been cancelled" +#: src/forms/BuildForms.tsx:408 +#~ msgid "Selected build outputs will be deleted" +#~ msgstr "Selected build outputs will be deleted" + +#: src/forms/BuildForms.tsx:470 +#~ msgid "Remove line" +#~ msgstr "Remove line" + +#: src/forms/BuildForms.tsx:515 +#: src/forms/SalesOrderForms.tsx:248 +#: src/tables/build/BuildLineTable.tsx:174 +#: src/tables/sales/SalesOrderLineItemTable.tsx:276 +#: src/tables/stock/StockItemTable.tsx:309 +msgid "Allocated" +msgstr "" + +#: src/forms/BuildForms.tsx:545 +#: src/forms/SalesOrderForms.tsx:239 +#: src/pages/build/BuildDetail.tsx:208 +msgid "Source Location" +msgstr "" + +#: src/forms/BuildForms.tsx:546 +#: src/forms/SalesOrderForms.tsx:240 +msgid "Select the source location for the stock allocation" +msgstr "" + +#: src/forms/BuildForms.tsx:566 +#: src/forms/SalesOrderForms.tsx:274 +#: src/tables/build/BuildLineTable.tsx:442 +#: src/tables/build/BuildLineTable.tsx:569 +#: src/tables/build/BuildLineTable.tsx:642 +#: src/tables/sales/SalesOrderLineItemTable.tsx:302 +#: src/tables/sales/SalesOrderLineItemTable.tsx:326 +msgid "Allocate Stock" +msgstr "" + +#: src/forms/BuildForms.tsx:569 +#: src/forms/SalesOrderForms.tsx:279 +msgid "Stock items allocated" msgstr "" #: src/forms/CompanyForms.tsx:150 #~ msgid "Company updated" #~ msgstr "Company updated" +#: src/forms/PartForms.tsx:67 +#: src/forms/PartForms.tsx:154 +#: src/pages/part/CategoryDetail.tsx:117 +#: src/pages/part/PartDetail.tsx:384 +#: src/tables/part/PartCategoryTable.tsx:90 +#: src/tables/part/PartTable.tsx:294 +msgid "Subscribed" +msgstr "" + +#: src/forms/PartForms.tsx:68 +msgid "Subscribe to notifications for this part" +msgstr "" + #: src/forms/PartForms.tsx:106 #~ msgid "Create Part" #~ msgstr "Create Part" @@ -2751,191 +3354,190 @@ msgstr "" #~ msgid "Part created" #~ msgstr "Part created" -#: src/forms/PartForms.tsx:124 -msgid "Parent part category" -msgstr "" - #: src/forms/PartForms.tsx:129 #~ msgid "Part updated" #~ msgstr "Part updated" -#: src/forms/PurchaseOrderForms.tsx:300 +#: src/forms/PartForms.tsx:140 +msgid "Parent part category" +msgstr "" + +#: src/forms/PartForms.tsx:155 +msgid "Subscribe to notifications for this category" +msgstr "" + +#: src/forms/PurchaseOrderForms.tsx:314 +msgid "Assign Batch Code and Serial Numbers" +msgstr "" + +#: src/forms/PurchaseOrderForms.tsx:316 +msgid "Assign Batch Code" +msgstr "" + +#: src/forms/PurchaseOrderForms.tsx:336 msgid "Choose Location" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:308 +#: src/forms/PurchaseOrderForms.tsx:344 msgid "Item Destination selected" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:317 +#: src/forms/PurchaseOrderForms.tsx:353 msgid "Part category default location selected" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:327 +#: src/forms/PurchaseOrderForms.tsx:363 msgid "Received stock location selected" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:332 +#: src/forms/PurchaseOrderForms.tsx:368 msgid "Default location selected" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:343 -#: src/forms/PurchaseOrderForms.tsx:435 -msgid "Scan Barcode" -msgstr "" +#: src/forms/PurchaseOrderForms.tsx:421 +#~ msgid "Assign Batch Code{0}" +#~ msgstr "Assign Batch Code{0}" -#: src/forms/PurchaseOrderForms.tsx:388 +#: src/forms/PurchaseOrderForms.tsx:427 msgid "Set Location" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:396 -msgid "Assign Batch Code{0}" -msgstr "" - -#: src/forms/PurchaseOrderForms.tsx:405 -#: src/forms/StockForms.tsx:420 +#: src/forms/PurchaseOrderForms.tsx:442 +#: src/forms/StockForms.tsx:539 msgid "Adjust Packaging" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:412 -msgid "Change Status" -msgstr "" - -#: src/forms/PurchaseOrderForms.tsx:418 -msgid "Add Note" -msgstr "" - #: src/forms/PurchaseOrderForms.tsx:444 #: src/forms/StockForms.tsx:428 -msgid "Remove item from list" +#~ msgid "Remove item from list" +#~ msgstr "Remove item from list" + +#: src/forms/PurchaseOrderForms.tsx:450 +msgid "Change Status" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:471 -#: src/forms/StockForms.tsx:499 -#: src/forms/StockForms.tsx:533 -#: src/forms/StockForms.tsx:562 -#: src/forms/StockForms.tsx:590 -#: src/forms/StockForms.tsx:621 -#: src/forms/StockForms.tsx:656 -#: src/forms/StockForms.tsx:698 -#: src/forms/StockForms.tsx:734 -#: src/pages/stock/StockDetail.tsx:181 -#: src/tables/ColumnRenderers.tsx:49 -#: src/tables/stock/StockTrackingTable.tsx:85 +#: src/forms/PurchaseOrderForms.tsx:456 +msgid "Add Note" +msgstr "" + +#: src/forms/PurchaseOrderForms.tsx:503 +#: src/forms/StockForms.tsx:614 +#: src/forms/StockForms.tsx:651 +#: src/forms/StockForms.tsx:677 +#: src/forms/StockForms.tsx:705 +#: src/forms/StockForms.tsx:736 +#: src/forms/StockForms.tsx:771 +#: src/forms/StockForms.tsx:813 +#: src/forms/StockForms.tsx:851 +#: src/pages/stock/StockDetail.tsx:202 +#: src/tables/ColumnRenderers.tsx:60 +#: src/tables/stock/StockTrackingTable.tsx:89 msgid "Location" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:486 +#: src/forms/PurchaseOrderForms.tsx:518 msgid "Store at default location" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:499 +#: src/forms/PurchaseOrderForms.tsx:533 msgid "Store at line item destination" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:509 +#: src/forms/PurchaseOrderForms.tsx:545 msgid "Store with already received stock" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:524 -#: src/pages/build/BuildDetail.tsx:219 -#: src/pages/stock/StockDetail.tsx:162 -#: src/pages/stock/StockDetail.tsx:599 -#: src/tables/build/BuildAllocatedStockTable.tsx:109 -#: src/tables/build/BuildOrderTestTable.tsx:188 -#: src/tables/sales/SalesOrderAllocationTable.tsx:87 +#: src/forms/PurchaseOrderForms.tsx:566 +#: src/pages/build/BuildDetail.tsx:222 +#: src/pages/stock/StockDetail.tsx:185 +#: src/pages/stock/StockDetail.tsx:793 +#: src/tables/build/BuildAllocatedStockTable.tsx:130 +#: src/tables/build/BuildOrderTestTable.tsx:189 +#: src/tables/build/BuildOutputTable.tsx:86 +#: src/tables/sales/SalesOrderAllocationTable.tsx:113 msgid "Batch Code" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:535 -msgid "Serial numbers" +#: src/forms/PurchaseOrderForms.tsx:566 +#~ msgid "Serial numbers" +#~ msgstr "Serial numbers" + +#: src/forms/PurchaseOrderForms.tsx:567 +msgid "Enter batch code for received items" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:544 -#: src/forms/StockForms.tsx:443 -#: src/pages/company/SupplierPartDetail.tsx:156 -#: src/pages/company/SupplierPartDetail.tsx:207 -#: src/pages/stock/StockDetail.tsx:244 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:192 +#: src/forms/PurchaseOrderForms.tsx:579 +#: src/forms/StockForms.tsx:152 +msgid "Serial Numbers" +msgstr "" + +#: src/forms/PurchaseOrderForms.tsx:580 +msgid "Enter serial numbers for received items" +msgstr "" + +#: src/forms/PurchaseOrderForms.tsx:590 +#: src/forms/StockForms.tsx:556 +#: src/pages/company/SupplierPartDetail.tsx:168 +#: src/pages/company/SupplierPartDetail.tsx:219 +#: src/pages/stock/StockDetail.tsx:320 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:198 msgid "Packaging" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:556 -#: src/pages/build/BuildDetail.tsx:109 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:148 -#: src/pages/sales/ReturnOrderDetail.tsx:121 -#: src/pages/sales/SalesOrderDetail.tsx:127 -#: src/tables/build/BuildOrderTable.tsx:122 -#: src/tables/machine/MachineListTable.tsx:335 -#: src/tables/part/PartPurchaseOrdersTable.tsx:37 -#: src/tables/purchasing/PurchaseOrderTable.tsx:55 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:132 -#: src/tables/sales/ReturnOrderTable.tsx:46 -#: src/tables/sales/SalesOrderTable.tsx:53 -#: src/tables/settings/ImportSessionTable.tsx:115 -#: src/tables/stock/StockItemTable.tsx:294 -#: src/tables/stock/StockTrackingTable.tsx:52 -msgid "Status" -msgstr "" - -#: src/forms/PurchaseOrderForms.tsx:564 -#: src/pages/company/SupplierPartDetail.tsx:110 -#: src/tables/ColumnRenderers.tsx:132 +#: src/forms/PurchaseOrderForms.tsx:612 +#: src/pages/company/SupplierPartDetail.tsx:115 +#: src/tables/ColumnRenderers.tsx:143 msgid "Note" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/pages/company/SupplierPartDetail.tsx:128 -#: src/tables/purchasing/SupplierPriceBreakTable.tsx:57 -msgid "SKU" -msgstr "" - -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/tables/part/PartPurchaseOrdersTable.tsx:120 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:178 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:127 -msgid "Received" -msgstr "" - -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/forms/StockForms.tsx:499 -#: src/forms/StockForms.tsx:533 -#: src/forms/StockForms.tsx:562 -#: src/forms/StockForms.tsx:590 -#: src/forms/StockForms.tsx:621 -#: src/forms/StockForms.tsx:656 -#: src/forms/StockForms.tsx:698 -#: src/forms/StockForms.tsx:734 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:413 -#: src/tables/RowActions.tsx:113 -msgid "Actions" -msgstr "" - -#: src/forms/PurchaseOrderForms.tsx:655 -msgid "Receive Line Items" -msgstr "" - #: src/forms/PurchaseOrderForms.tsx:658 #~ msgid "Receive line items" #~ msgstr "Receive line items" -#: src/forms/StockForms.tsx:104 -msgid "Add given quantity as packs instead of individual items" +#: src/forms/PurchaseOrderForms.tsx:689 +#: src/pages/company/SupplierPartDetail.tsx:133 +#: src/tables/purchasing/SupplierPriceBreakTable.tsx:57 +msgid "SKU" +msgstr "" + +#: src/forms/PurchaseOrderForms.tsx:689 +#: src/tables/part/PartPurchaseOrdersTable.tsx:126 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:184 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:247 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:152 +msgid "Received" +msgstr "" + +#: src/forms/PurchaseOrderForms.tsx:701 +msgid "Receive Line Items" +msgstr "" + +#: src/forms/ReturnOrderForms.tsx:201 +msgid "Receive Items" +msgstr "" + +#: src/forms/ReturnOrderForms.tsx:208 +msgid "Item received into stock" +msgstr "" + +#: src/forms/StockForms.tsx:80 +#: src/hooks/UsePlaceholder.tsx:57 +msgid "Next serial number" msgstr "" #: src/forms/StockForms.tsx:110 #~ msgid "Create Stock Item" #~ msgstr "Create Stock Item" -#: src/forms/StockForms.tsx:117 +#: src/forms/StockForms.tsx:131 +msgid "Add given quantity as packs instead of individual items" +msgstr "" + +#: src/forms/StockForms.tsx:145 msgid "Enter initial quantity for this stock item" msgstr "" -#: src/forms/StockForms.tsx:124 -msgid "Serial Numbers" -msgstr "" - -#: src/forms/StockForms.tsx:125 +#: src/forms/StockForms.tsx:154 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" @@ -2943,82 +3545,102 @@ msgstr "" #~ msgid "Stock item updated" #~ msgstr "Stock item updated" -#: src/forms/StockForms.tsx:179 -#: src/pages/stock/StockDetail.tsx:434 -#: src/tables/stock/StockItemTable.tsx:417 -#: src/tables/stock/StockItemTable.tsx:535 +#: src/forms/StockForms.tsx:169 +#: src/pages/stock/StockDetail.tsx:131 +msgid "Stock Status" +msgstr "" + +#: src/forms/StockForms.tsx:218 +#: src/pages/stock/StockDetail.tsx:554 +#: src/tables/stock/StockItemTable.tsx:421 +#: src/tables/stock/StockItemTable.tsx:541 msgid "Add Stock Item" msgstr "" -#: src/forms/StockForms.tsx:362 +#: src/forms/StockForms.tsx:262 +msgid "Select the part to install" +msgstr "" + +#: src/forms/StockForms.tsx:480 msgid "Loading..." msgstr "" -#: src/forms/StockForms.tsx:408 +#: src/forms/StockForms.tsx:527 msgid "Move to default location" msgstr "" -#: src/forms/StockForms.tsx:499 -#: src/forms/StockForms.tsx:533 -#: src/forms/StockForms.tsx:562 -#: src/forms/StockForms.tsx:590 -#: src/forms/StockForms.tsx:621 -#: src/forms/StockForms.tsx:656 -#: src/forms/StockForms.tsx:698 -#: src/forms/StockForms.tsx:734 -#: src/pages/part/PartDetail.tsx:230 -#: src/pages/part/PartDetail.tsx:843 -#: src/tables/stock/StockItemTable.tsx:325 +#: src/forms/StockForms.tsx:614 +#: src/forms/StockForms.tsx:651 +#: src/forms/StockForms.tsx:677 +#: src/forms/StockForms.tsx:705 +#: src/forms/StockForms.tsx:736 +#: src/forms/StockForms.tsx:771 +#: src/forms/StockForms.tsx:813 +#: src/forms/StockForms.tsx:851 +#: src/pages/part/PartDetail.tsx:251 +#: src/pages/part/PartDetail.tsx:875 +#: src/tables/stock/StockItemTable.tsx:329 msgid "In Stock" msgstr "" -#: src/forms/StockForms.tsx:499 +#: src/forms/StockForms.tsx:614 msgid "Move" msgstr "" -#: src/forms/StockForms.tsx:562 -#: src/pages/stock/StockDetail.tsx:518 -#: src/tables/stock/StockItemTestResultTable.tsx:328 +#: src/forms/StockForms.tsx:677 +#: src/pages/stock/StockDetail.tsx:681 +#: src/tables/stock/StockItemTestResultTable.tsx:346 msgid "Add" msgstr "" -#: src/forms/StockForms.tsx:590 -#: src/pages/Index/Scan.tsx:266 -#: src/pages/stock/StockDetail.tsx:508 +#: src/forms/StockForms.tsx:705 +#: src/pages/Index/Scan.tsx:280 +#: src/pages/stock/StockDetail.tsx:670 msgid "Count" msgstr "" -#: src/forms/StockForms.tsx:835 +#: src/forms/StockForms.tsx:953 +#: src/pages/stock/StockDetail.tsx:682 +#: src/tables/stock/StockItemTable.tsx:454 msgid "Add Stock" msgstr "" -#: src/forms/StockForms.tsx:844 +#: src/forms/StockForms.tsx:962 +#: src/pages/stock/StockDetail.tsx:691 +#: src/tables/stock/StockItemTable.tsx:463 msgid "Remove Stock" msgstr "" -#: src/forms/StockForms.tsx:853 -#: src/pages/part/PartDetail.tsx:1017 +#: src/forms/StockForms.tsx:971 +#: src/pages/part/PartDetail.tsx:1039 +#: src/pages/stock/StockDetail.tsx:712 +#: src/tables/stock/StockItemTable.tsx:483 msgid "Transfer Stock" msgstr "" -#: src/forms/StockForms.tsx:862 -#: src/pages/part/PartDetail.tsx:1006 +#: src/forms/StockForms.tsx:980 +#: src/pages/part/PartDetail.tsx:1028 +#: src/pages/stock/LocationDetail.tsx:314 +#: src/pages/stock/LocationDetail.tsx:318 +#: src/tables/stock/StockItemTable.tsx:472 +#: src/tables/stock/StockItemTable.tsx:476 msgid "Count Stock" msgstr "" -#: src/forms/StockForms.tsx:871 +#: src/forms/StockForms.tsx:989 msgid "Change Stock Status" msgstr "" -#: src/forms/StockForms.tsx:880 +#: src/forms/StockForms.tsx:998 msgid "Merge Stock" msgstr "" -#: src/forms/StockForms.tsx:899 +#: src/forms/StockForms.tsx:1017 +#: src/tables/stock/StockItemTable.tsx:530 msgid "Delete Stock Items" msgstr "" -#: src/forms/StockForms.tsx:906 +#: src/forms/StockForms.tsx:1024 msgid "Parent stock location" msgstr "" @@ -3042,11 +3664,11 @@ msgstr "" #~ msgid "You have been logged out" #~ msgstr "You have been logged out" -#: src/functions/auth.tsx:117 +#: src/functions/auth.tsx:128 msgid "Logged Out" msgstr "" -#: src/functions/auth.tsx:118 +#: src/functions/auth.tsx:129 msgid "Successfully logged out" msgstr "" @@ -3062,20 +3684,20 @@ msgstr "" #~ msgid "Found an existing login - welcome back!" #~ msgstr "Found an existing login - welcome back!" -#: src/functions/auth.tsx:156 +#: src/functions/auth.tsx:167 msgid "Check your inbox for a reset link. This only works if you have an account. Check in spam too." msgstr "" -#: src/functions/auth.tsx:163 +#: src/functions/auth.tsx:174 #: src/pages/Auth/Set-Password.tsx:39 msgid "Reset failed" msgstr "" -#: src/functions/auth.tsx:194 +#: src/functions/auth.tsx:205 msgid "Logged In" msgstr "" -#: src/functions/auth.tsx:195 +#: src/functions/auth.tsx:206 msgid "Successfully logged in" msgstr "" @@ -3095,30 +3717,38 @@ msgstr "" #~ msgid "method parameter not supplied" #~ msgstr "method parameter not supplied" -#: src/functions/notifications.tsx:10 +#: src/functions/notifications.tsx:12 msgid "Not implemented" msgstr "" -#: src/functions/notifications.tsx:11 +#: src/functions/notifications.tsx:13 msgid "This feature is not yet implemented" msgstr "" -#: src/functions/notifications.tsx:21 -msgid "Permission denied" -msgstr "" +#: src/functions/notifications.tsx:24 +#~ msgid "Permission denied" +#~ msgstr "Permission denied" -#: src/functions/notifications.tsx:22 +#: src/functions/notifications.tsx:25 msgid "You do not have permission to perform this action" msgstr "" -#: src/functions/notifications.tsx:33 +#: src/functions/notifications.tsx:36 msgid "Invalid Return Code" msgstr "" -#: src/functions/notifications.tsx:34 +#: src/functions/notifications.tsx:37 msgid "Server returned status {returnCode}" msgstr "" +#: src/functions/notifications.tsx:47 +msgid "Timeout" +msgstr "" + +#: src/functions/notifications.tsx:48 +msgid "The request timed out" +msgstr "" + #: src/hooks/UseForm.tsx:88 msgid "Item Created" msgstr "" @@ -3135,20 +3765,24 @@ msgstr "" msgid "Are you sure you want to delete this item?" msgstr "" +#: src/hooks/UsePlaceholder.tsx:59 +msgid "Latest serial number" +msgstr "" + #: src/pages/Auth/Logged-In.tsx:22 msgid "Checking if you are already logged in" msgstr "" -#: src/pages/Auth/Login.tsx:31 -#: src/pages/Index/Scan.tsx:329 +#: src/pages/Auth/Login.tsx:35 +#: src/pages/Index/Scan.tsx:343 msgid "No selection" msgstr "" -#: src/pages/Auth/Login.tsx:87 +#: src/pages/Auth/Login.tsx:91 msgid "Welcome, log in below" msgstr "" -#: src/pages/Auth/Login.tsx:89 +#: src/pages/Auth/Login.tsx:93 msgid "Register below" msgstr "" @@ -3162,8 +3796,8 @@ msgstr "" #: src/pages/Auth/Reset.tsx:41 #: src/pages/Auth/Set-Password.tsx:112 -msgid "Send mail" -msgstr "" +#~ msgid "Send mail" +#~ msgstr "Send mail" #: src/pages/Auth/Set-Password.tsx:30 msgid "Token invalid" @@ -3174,22 +3808,22 @@ msgid "You need to provide a valid token to set a new password. Check your inbox msgstr "" #: src/pages/Auth/Set-Password.tsx:49 -msgid "No token provided" -msgstr "" +#~ msgid "No token provided" +#~ msgstr "No token provided" #: src/pages/Auth/Set-Password.tsx:50 -msgid "You need to provide a token to set a new password. Check your inbox for a reset link." -msgstr "" +#~ msgid "You need to provide a token to set a new password. Check your inbox for a reset link." +#~ msgstr "You need to provide a token to set a new password. Check your inbox for a reset link." -#: src/pages/Auth/Set-Password.tsx:73 +#: src/pages/Auth/Set-Password.tsx:68 msgid "Password set" msgstr "" -#: src/pages/Auth/Set-Password.tsx:74 +#: src/pages/Auth/Set-Password.tsx:69 msgid "The password was set successfully. You can now login with your new password" msgstr "" -#: src/pages/Auth/Set-Password.tsx:101 +#: src/pages/Auth/Set-Password.tsx:96 msgid "Set new password" msgstr "" @@ -3206,20 +3840,20 @@ msgstr "" #~ msgstr "Sorry, an unexpected error has occurred." #: src/pages/Index/Dashboard.tsx:22 -msgid "Autoupdate" -msgstr "" +#~ msgid "Autoupdate" +#~ msgstr "Autoupdate" #: src/pages/Index/Dashboard.tsx:26 -msgid "This page is a replacement for the old start page with the same information. This page will be deprecated and replaced by the home page." -msgstr "" +#~ msgid "This page is a replacement for the old start page with the same information. This page will be deprecated and replaced by the home page." +#~ msgstr "This page is a replacement for the old start page with the same information. This page will be deprecated and replaced by the home page." #: src/pages/Index/Home.tsx:58 -msgid "Welcome to your Dashboard{0}" -msgstr "" +#~ msgid "Welcome to your Dashboard{0}" +#~ msgstr "Welcome to your Dashboard{0}" #: src/pages/Index/Playground.tsx:222 -msgid "This page is a showcase for the possibilities of Platform UI." -msgstr "" +#~ msgid "This page is a showcase for the possibilities of Platform UI." +#~ msgstr "This page is a showcase for the possibilities of Platform UI." #: src/pages/Index/Profile/Profile.tsx:30 #: src/pages/Index/Profile/Profile.tsx:141 @@ -3365,125 +3999,190 @@ msgstr "" msgid "Image Barcode" msgstr "" -#: src/pages/Index/Scan.tsx:247 +#: src/pages/Index/Scan.tsx:261 msgid "Selected elements are not known" msgstr "" -#: src/pages/Index/Scan.tsx:254 +#: src/pages/Index/Scan.tsx:268 msgid "Multiple object types selected" msgstr "" -#: src/pages/Index/Scan.tsx:261 +#: src/pages/Index/Scan.tsx:275 msgid "Actions for {0}" msgstr "" -#: src/pages/Index/Scan.tsx:282 +#: src/pages/Index/Scan.tsx:296 msgid "Scan Page" msgstr "" -#: src/pages/Index/Scan.tsx:285 +#: src/pages/Index/Scan.tsx:299 msgid "This page can be used for continuously scanning items and taking actions on them." msgstr "" -#: src/pages/Index/Scan.tsx:292 +#: src/pages/Index/Scan.tsx:306 msgid "Toggle Fullscreen" msgstr "" -#: src/pages/Index/Scan.tsx:305 +#: src/pages/Index/Scan.tsx:319 msgid "Select the input method you want to use to scan items." msgstr "" -#: src/pages/Index/Scan.tsx:307 +#: src/pages/Index/Scan.tsx:321 msgid "Input" msgstr "" -#: src/pages/Index/Scan.tsx:314 +#: src/pages/Index/Scan.tsx:328 msgid "Select input method" msgstr "" -#: src/pages/Index/Scan.tsx:315 +#: src/pages/Index/Scan.tsx:329 msgid "Nothing found" msgstr "" -#: src/pages/Index/Scan.tsx:323 +#: src/pages/Index/Scan.tsx:337 msgid "Depending on the selected parts actions will be shown here. Not all barcode types are supported currently." msgstr "" -#: src/pages/Index/Scan.tsx:325 +#: src/pages/Index/Scan.tsx:339 msgid "Action" msgstr "" -#: src/pages/Index/Scan.tsx:334 +#: src/pages/Index/Scan.tsx:348 msgid "{0} items selected" msgstr "" -#: src/pages/Index/Scan.tsx:337 +#: src/pages/Index/Scan.tsx:351 msgid "General Actions" msgstr "" -#: src/pages/Index/Scan.tsx:351 +#: src/pages/Index/Scan.tsx:365 msgid "Lookup part" msgstr "" -#: src/pages/Index/Scan.tsx:359 +#: src/pages/Index/Scan.tsx:373 msgid "Open Link" msgstr "" -#: src/pages/Index/Scan.tsx:375 +#: src/pages/Index/Scan.tsx:389 msgid "History is locally kept in this browser." msgstr "" -#: src/pages/Index/Scan.tsx:376 +#: src/pages/Index/Scan.tsx:390 msgid "The history is kept in this browser's local storage. So it won't be shared with other users or other devices but is persistent through reloads. You can select items in the history to perform actions on them. To add items, scan/enter them in the Input area." msgstr "" -#: src/pages/Index/Scan.tsx:378 +#: src/pages/Index/Scan.tsx:392 #: src/pages/Notifications.tsx:100 msgid "History" msgstr "" -#: src/pages/Index/Scan.tsx:384 +#: src/pages/Index/Scan.tsx:398 msgid "Delete History" msgstr "" -#: src/pages/Index/Scan.tsx:449 +#: src/pages/Index/Scan.tsx:463 msgid "No history" msgstr "" -#: src/pages/Index/Scan.tsx:467 +#: src/pages/Index/Scan.tsx:481 msgid "Item" msgstr "" -#: src/pages/Index/Scan.tsx:470 +#: src/pages/Index/Scan.tsx:484 msgid "Type" msgstr "" -#: src/pages/Index/Scan.tsx:473 +#: src/pages/Index/Scan.tsx:487 msgid "Source" msgstr "" -#: src/pages/Index/Scan.tsx:476 +#: src/pages/Index/Scan.tsx:490 msgid "Scanned at" msgstr "" -#: src/pages/Index/Scan.tsx:528 +#: src/pages/Index/Scan.tsx:547 msgid "Enter item serial or data" msgstr "" -#: src/pages/Index/Scan.tsx:540 +#: src/pages/Index/Scan.tsx:559 msgid "Add dummy item" msgstr "" +#: src/pages/Index/Scan.tsx:569 +msgid "Start scanning by selecting a camera and pressing the play button." +msgstr "" + +#: src/pages/Index/Scan.tsx:650 +msgid "Error while getting camera" +msgstr "" + +#: src/pages/Index/Scan.tsx:673 +msgid "Error while scanning" +msgstr "" + +#: src/pages/Index/Scan.tsx:687 +msgid "Error while stopping" +msgstr "" + +#: src/pages/Index/Scan.tsx:745 +msgid "Stop scanning" +msgstr "" + +#: src/pages/Index/Scan.tsx:754 +msgid "Start scanning" +msgstr "" + +#: src/pages/Index/Scan.tsx:763 +msgid "Scanning" +msgstr "" + +#: src/pages/Index/Scan.tsx:763 +msgid "Not scanning" +msgstr "" + +#: src/pages/Index/Scan.tsx:775 +msgid "Select Camera" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:28 +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:50 +msgid "Edit User Information" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:32 +msgid "User details updated" +msgstr "" + #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:41 -msgid "Account Details" +msgid "User Details" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:41 +#~ msgid "Account Details" +#~ msgstr "Account Details" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:44 +msgid "User Actions" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:48 +msgid "Edit User" msgstr "" #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:50 -msgid "First name" +#~ msgid "First name" +#~ msgstr "First name" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:54 +msgid "Set Password" msgstr "" #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:55 -msgid "Last name" +#~ msgid "Last name" +#~ msgstr "Last name" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:56 +msgid "Set User Password" msgstr "" #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:58 @@ -3495,15 +4194,28 @@ msgstr "" #~ msgstr "Last name: {0}" #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:67 -msgid "First name:" -msgstr "" +#~ msgid "First name:" +#~ msgstr "First name:" #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:71 -msgid "Last name:" +#~ msgid "Last name:" +#~ msgstr "Last name:" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:73 +msgid "First Name" msgstr "" -#: src/pages/Index/Settings/AccountSettings/DisplaySettingsPanel.tsx:41 -msgid "Use pseudo language" +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:79 +msgid "Last Name" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:85 +msgid "Staff Access" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:93 +#: src/tables/settings/UserTable.tsx:293 +msgid "Superuser" msgstr "" #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:55 @@ -3600,27 +4312,6 @@ msgstr "" msgid "No tokens configured" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:398 -#: src/pages/part/PartDetail.tsx:297 -#: src/tables/bom/UsedInTable.tsx:84 -#: src/tables/build/BuildOrderTable.tsx:110 -#: src/tables/company/CompanyTable.tsx:61 -#: src/tables/company/CompanyTable.tsx:95 -#: src/tables/machine/MachineListTable.tsx:332 -#: src/tables/machine/MachineListTable.tsx:594 -#: src/tables/part/ParametricPartTable.tsx:223 -#: src/tables/part/PartTable.tsx:178 -#: src/tables/part/PartVariantTable.tsx:15 -#: src/tables/plugin/PluginListTable.tsx:149 -#: src/tables/plugin/PluginListTable.tsx:271 -#: src/tables/plugin/PluginListTable.tsx:563 -#: src/tables/purchasing/SupplierPartTable.tsx:98 -#: src/tables/purchasing/SupplierPartTable.tsx:187 -#: src/tables/settings/UserTable.tsx:284 -#: src/tables/stock/StockItemTable.tsx:289 -msgid "Active" -msgstr "" - #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:401 msgid "Expiry" msgstr "" @@ -3630,38 +4321,74 @@ msgid "Last Seen" msgstr "" #: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:65 -msgid "bars" -msgstr "" +#~ msgid "bars" +#~ msgstr "bars" #: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:66 -msgid "oval" -msgstr "" +#~ msgid "oval" +#~ msgstr "oval" #: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:67 -msgid "dots" -msgstr "" +#~ msgid "dots" +#~ msgstr "dots" #: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:81 -msgid "Theme" -msgstr "" +#~ msgid "Theme" +#~ msgstr "Theme" #: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:87 -msgid "Primary color" +#~ msgid "Primary color" +#~ msgstr "Primary color" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:88 +msgid "Bars" msgstr "" -#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:100 +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:89 +msgid "Oval" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:90 +msgid "Dots" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:101 +msgid "Display Settings" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:107 +msgid "Language" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:115 +msgid "Use pseudo language" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:122 +msgid "Color Mode" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:133 +msgid "Highlight color" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:145 +msgid "Example" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:151 msgid "White color" msgstr "" -#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:108 +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:167 msgid "Black color" msgstr "" -#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:116 +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:183 msgid "Border Radius" msgstr "" -#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:132 +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:199 msgid "Loader" msgstr "" @@ -3673,89 +4400,156 @@ msgstr "" #~ msgid "Advanced Amininistrative Options for InvenTree" #~ msgstr "Advanced Amininistrative Options for InvenTree" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:104 +#: src/pages/Index/Settings/AdminCenter/CurrencyManagmentPanel.tsx:27 +#: src/tables/ColumnRenderers.tsx:262 +msgid "Currency" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/CurrencyManagmentPanel.tsx:32 +msgid "Rate" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/CurrencyManagmentPanel.tsx:44 +msgid "Exchange rates updated" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/CurrencyManagmentPanel.tsx:50 +msgid "Exchange rate update error" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/CurrencyManagmentPanel.tsx:62 +msgid "Refresh currency exchange rates" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/CurrencyManagmentPanel.tsx:99 +msgid "Last fetched" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/CurrencyManagmentPanel.tsx:100 +msgid "Base currency" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:115 msgid "Data Import" msgstr "" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:110 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:121 +msgid "Barcode Scans" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:127 msgid "Background Tasks" msgstr "" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:116 -msgid "Error Reports" -msgstr "" - -#: src/pages/Index/Settings/AdminCenter/Index.tsx:122 -msgid "Currencies" -msgstr "" - #: src/pages/Index/Settings/AdminCenter/Index.tsx:127 #~ msgid "Templates" #~ msgstr "Templates" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:140 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:133 +msgid "Error Reports" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:139 +msgid "Currencies" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:157 +msgid "Custom States" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:163 +#: src/pages/Index/Settings/AdminCenter/UnitManagmentPanel.tsx:58 msgid "Custom Units" msgstr "" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:146 -#: src/pages/part/CategoryDetail.tsx:264 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:169 +#: src/pages/part/CategoryDetail.tsx:269 msgid "Part Parameters" msgstr "" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:152 -msgid "Category Parameters" -msgstr "" - -#: src/pages/Index/Settings/AdminCenter/Index.tsx:170 -msgid "Location Types" -msgstr "" - #: src/pages/Index/Settings/AdminCenter/Index.tsx:170 #~ msgid "Location types" #~ msgstr "Location types" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:182 -#: src/tables/machine/MachineTypeTable.tsx:287 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:175 +msgid "Category Parameters" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:181 +msgid "Stocktake" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:199 +msgid "Location Types" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:211 +#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:48 +#: src/tables/machine/MachineTypeTable.tsx:308 msgid "Machines" msgstr "" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:192 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:221 msgid "Quick Actions" msgstr "" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:197 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:226 msgid "Add a new user" msgstr "" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:222 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:252 msgid "Advanced Options" msgstr "" #: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:43 -msgid "Machine types" -msgstr "" +#~ msgid "Machine types" +#~ msgstr "Machine types" #: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:53 -msgid "Machine Error Stack" +#~ msgid "Machine Error Stack" +#~ msgstr "Machine Error Stack" + +#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:56 +msgid "Machine Types" msgstr "" #: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:62 -msgid "There are no machine registry errors." +#~ msgid "There are no machine registry errors." +#~ msgstr "There are no machine registry errors." + +#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:64 +msgid "Machine Errors" msgstr "" -#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:28 -#: src/tables/settings/UserTable.tsx:119 +#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:77 +msgid "Registry Registry Errors" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:80 +msgid "There are machine registry errors" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:86 +msgid "Machine Registry Errors" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:89 +msgid "There are no machine registry errors" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:31 +#: src/tables/settings/UserTable.tsx:118 msgid "Info" msgstr "" -#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:32 -msgid "External plugins are not enabled for this InvenTree installation." -msgstr "" - #: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:33 #~ msgid "Plugin Error Stack" #~ msgstr "Plugin Error Stack" +#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:35 +msgid "External plugins are not enabled for this InvenTree installation." +msgstr "" + #: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:45 #~ msgid "Warning" #~ msgstr "Warning" @@ -3764,34 +4558,46 @@ msgstr "" #~ msgid "Changing the settings below require you to immediately restart the server. Do not change this while under active usage." #~ msgstr "Changing the settings below require you to immediately restart the server. Do not change this while under active usage." -#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:50 +#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:73 msgid "Plugin Errors" msgstr "" -#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:59 -msgid "Plugin Settings" +#: src/pages/Index/Settings/AdminCenter/ReportTemplatePanel.tsx:17 +msgid "Page Size" msgstr "" -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:53 -msgid "Background Worker Not Running" +#: src/pages/Index/Settings/AdminCenter/ReportTemplatePanel.tsx:20 +msgid "Landscape" msgstr "" -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:54 +#: src/pages/Index/Settings/AdminCenter/ReportTemplatePanel.tsx:26 +msgid "Attach to Model" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/StocktakePanel.tsx:25 +msgid "Stocktake Reports" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:30 msgid "The background task manager service is not running. Contact your system administrator." msgstr "" -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:60 -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:76 +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:35 +#~ msgid "Background Worker Not Running" +#~ msgstr "Background Worker Not Running" + +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:36 +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:45 msgid "Pending Tasks" msgstr "" -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:64 -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:84 +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:37 +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:53 msgid "Scheduled Tasks" msgstr "" -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:68 -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:92 +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:38 +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:61 msgid "Failed Tasks" msgstr "" @@ -3811,11 +4617,6 @@ msgstr "" #~ msgid "Reports" #~ msgstr "Reports" -#: src/pages/Index/Settings/AdminCenter/TemplateManagementPanel.tsx:89 -#: src/pages/build/BuildDetail.tsx:373 -#~ msgid "Report" -#~ msgstr "Report" - #: src/pages/Index/Settings/AdminCenter/TemplateManagementPanel.tsx:99 #~ msgid "Purchase order" #~ msgstr "Purchase order" @@ -3836,23 +4637,35 @@ msgstr "" #~ msgid "Stock location" #~ msgstr "Stock location" +#: src/pages/Index/Settings/AdminCenter/UnitManagmentPanel.tsx:21 +msgid "Alias" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/UnitManagmentPanel.tsx:22 +msgid "Dimensionless" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/UnitManagmentPanel.tsx:66 +msgid "All units" +msgstr "" + #: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:32 msgid "Select settings relevant for user lifecycle. More available in" msgstr "" #: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:37 -msgid "System settings" -msgstr "" +#~ msgid "System settings" +#~ msgstr "System settings" -#: src/pages/Index/Settings/SystemSettings.tsx:67 +#: src/pages/Index/Settings/SystemSettings.tsx:66 msgid "Login" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:93 +#: src/pages/Index/Settings/SystemSettings.tsx:92 msgid "Barcodes" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:115 +#: src/pages/Index/Settings/SystemSettings.tsx:116 msgid "Pricing" msgstr "" @@ -3864,64 +4677,46 @@ msgstr "" #~ msgid "Exchange Rates" #~ msgstr "Exchange Rates" -#: src/pages/Index/Settings/SystemSettings.tsx:150 +#: src/pages/Index/Settings/SystemSettings.tsx:151 msgid "Labels" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:156 -#: src/pages/Index/Settings/UserSettings.tsx:132 +#: src/pages/Index/Settings/SystemSettings.tsx:157 +#: src/pages/Index/Settings/UserSettings.tsx:133 msgid "Reporting" msgstr "" #: src/pages/Index/Settings/SystemSettings.tsx:231 -#: src/pages/part/PartDetail.tsx:682 -msgid "Stocktake" -msgstr "" - -#: src/pages/Index/Settings/SystemSettings.tsx:237 -#: src/pages/build/BuildDetail.tsx:554 -#: src/pages/build/BuildIndex.tsx:22 -#: src/pages/part/PartDetail.tsx:616 -#: src/pages/sales/SalesOrderDetail.tsx:333 +#: src/pages/build/BuildIndex.tsx:27 +#: src/pages/part/PartDetail.tsx:636 +#: src/pages/sales/SalesOrderDetail.tsx:355 msgid "Build Orders" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:318 -msgid "Switch to User Setting" -msgstr "" +#: src/pages/Index/Settings/SystemSettings.tsx:317 +#~ msgid "Switch to User Setting" +#~ msgstr "Switch to User Setting" -#: src/pages/Index/Settings/UserSettings.tsx:34 +#: src/pages/Index/Settings/UserSettings.tsx:35 msgid "Account" msgstr "" -#: src/pages/Index/Settings/UserSettings.tsx:40 +#: src/pages/Index/Settings/UserSettings.tsx:41 msgid "Security" msgstr "" -#: src/pages/Index/Settings/UserSettings.tsx:78 +#: src/pages/Index/Settings/UserSettings.tsx:79 msgid "Display Options" msgstr "" -#: src/pages/Index/Settings/UserSettings.tsx:150 -msgid "Account Settings" -msgstr "" - -#: src/pages/Index/Settings/UserSettings.tsx:158 -msgid "Switch to System Setting" -msgstr "" - -#: src/pages/Index/UserSettings.tsx:103 -#~ msgid "User Settings" -#~ msgstr "User Settings" +#: src/pages/Index/Settings/UserSettings.tsx:159 +#~ msgid "Switch to System Setting" +#~ msgstr "Switch to System Setting" #: src/pages/Logged-In.tsx:24 #~ msgid "Found an exsisting login - using it to log you in." #~ msgstr "Found an exsisting login - using it to log you in." -#: src/pages/NotFound.tsx:17 -#~ msgid "Not Found" -#~ msgstr "Not Found" - #: src/pages/NotFound.tsx:20 #~ msgid "Sorry, this page is not known or was moved." #~ msgstr "Sorry, this page is not known or was moved." @@ -3942,104 +4737,86 @@ msgstr "" #~ msgid "Build Status" #~ msgstr "Build Status" -#: src/pages/build/BuildDetail.tsx:102 -#: src/pages/part/PartDetail.tsx:150 +#: src/pages/build/BuildDetail.tsx:97 +#: src/pages/company/ManufacturerPartDetail.tsx:81 +#: src/pages/company/SupplierPartDetail.tsx:91 +#: src/pages/part/PartDetail.tsx:171 +#: src/pages/stock/StockDetail.tsx:122 #: src/tables/bom/BomTable.tsx:118 #: src/tables/bom/UsedInTable.tsx:39 -#: src/tables/build/BuildLineTable.tsx:173 -#: src/tables/build/BuildOrderTable.tsx:55 -#: src/tables/sales/SalesOrderLineItemTable.tsx:62 -#: src/tables/stock/StockItemTable.tsx:53 +#: src/tables/build/BuildAllocatedStockTable.tsx:104 +#: src/tables/build/BuildLineTable.tsx:324 +#: src/tables/build/BuildOrderTable.tsx:64 +#: src/tables/sales/SalesOrderLineItemTable.tsx:70 +#: src/tables/stock/StockItemTable.tsx:54 msgid "IPN" msgstr "" -#: src/pages/build/BuildDetail.tsx:115 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:121 -#: src/pages/sales/ReturnOrderDetail.tsx:95 -#: src/pages/sales/SalesOrderDetail.tsx:101 -#: src/tables/ColumnRenderers.tsx:121 -#: src/tables/build/BuildAllocatedStockTable.tsx:90 -#: src/tables/build/BuildLineTable.tsx:184 +#: src/pages/build/BuildDetail.tsx:110 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:115 +#: src/pages/sales/ReturnOrderDetail.tsx:86 +#: src/pages/sales/SalesOrderDetail.tsx:95 +#: src/tables/ColumnRenderers.tsx:132 +#: src/tables/build/BuildAllocatedStockTable.tsx:111 +#: src/tables/build/BuildLineTable.tsx:335 msgid "Reference" msgstr "" -#: src/pages/build/BuildDetail.tsx:121 -#: src/pages/company/CompanyDetail.tsx:90 -#: src/pages/company/ManufacturerPartDetail.tsx:83 -#: src/pages/company/SupplierPartDetail.tsx:96 -#: src/pages/part/CategoryDetail.tsx:101 -#: src/pages/part/PartDetail.tsx:157 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:142 -#: src/pages/sales/ReturnOrderDetail.tsx:115 -#: src/pages/sales/SalesOrderDetail.tsx:121 -#: src/pages/stock/LocationDetail.tsx:109 -#: src/tables/ColumnRenderers.tsx:81 -#: src/tables/bom/UsedInTable.tsx:44 -#: src/tables/build/BuildAllocatedStockTable.tsx:70 -#: src/tables/build/BuildLineTable.tsx:178 -#: src/tables/machine/MachineTypeTable.tsx:69 -#: src/tables/machine/MachineTypeTable.tsx:112 -#: src/tables/machine/MachineTypeTable.tsx:219 -#: src/tables/machine/MachineTypeTable.tsx:323 -#: src/tables/part/RelatedPartTable.tsx:64 -#: src/tables/plugin/PluginListTable.tsx:129 -#: src/tables/plugin/PluginListTable.tsx:276 -#: src/tables/sales/SalesOrderAllocationTable.tsx:56 -#: src/tables/sales/SalesOrderLineItemTable.tsx:67 -#: src/tables/stock/LocationTypesTable.tsx:74 -msgid "Description" -msgstr "" - -#: src/pages/build/BuildDetail.tsx:129 +#: src/pages/build/BuildDetail.tsx:124 msgid "Parent Build" msgstr "" -#: src/pages/build/BuildDetail.tsx:140 +#: src/pages/build/BuildDetail.tsx:135 msgid "Build Quantity" msgstr "" -#: src/pages/build/BuildDetail.tsx:148 -#: src/pages/build/BuildDetail.tsx:274 +#: src/pages/build/BuildDetail.tsx:143 +#: src/pages/build/BuildDetail.tsx:277 msgid "Completed Outputs" msgstr "" -#: src/pages/build/BuildDetail.tsx:165 -#: src/tables/build/BuildOrderTable.tsx:151 +#: src/pages/build/BuildDetail.tsx:160 +#: src/tables/build/BuildOrderTable.tsx:142 msgid "Issued By" msgstr "" -#: src/pages/build/BuildDetail.tsx:172 -#: src/pages/part/PartDetail.tsx:365 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:220 -#: src/pages/sales/ReturnOrderDetail.tsx:199 -#: src/pages/sales/SalesOrderDetail.tsx:208 -#: src/tables/build/BuildOrderTable.tsx:157 -#: src/tables/purchasing/PurchaseOrderTable.tsx:75 -#: src/tables/sales/ReturnOrderTable.tsx:66 -#: src/tables/sales/SalesOrderTable.tsx:73 +#: src/pages/build/BuildDetail.tsx:167 +#: src/pages/part/PartDetail.tsx:406 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:244 +#: src/pages/sales/ReturnOrderDetail.tsx:216 +#: src/pages/sales/SalesOrderDetail.tsx:226 +#: src/tables/build/BuildOrderTable.tsx:148 +#: src/tables/purchasing/PurchaseOrderTable.tsx:76 +#: src/tables/sales/ReturnOrderTable.tsx:74 +#: src/tables/sales/SalesOrderTable.tsx:74 msgid "Responsible" msgstr "" -#: src/pages/build/BuildDetail.tsx:179 -#: src/tables/settings/PendingTasksTable.tsx:32 +#: src/pages/build/BuildDetail.tsx:174 +#: src/tables/settings/PendingTasksTable.tsx:36 msgid "Created" msgstr "" +#: src/pages/build/BuildDetail.tsx:181 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:229 +#: src/pages/sales/ReturnOrderDetail.tsx:201 +#: src/pages/sales/SalesOrderDetail.tsx:212 +#: src/tables/ColumnRenderers.tsx:226 +#: src/tables/part/PartPurchaseOrdersTable.tsx:100 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:135 +#: src/tables/sales/SalesOrderLineItemTable.tsx:107 +msgid "Target Date" +msgstr "" + #: src/pages/build/BuildDetail.tsx:185 #: src/pages/part/PartDetail.tsx:269 #: src/pages/stock/StockDetail.tsx:150 #~ msgid "View part barcode" #~ msgstr "View part barcode" -#: src/pages/build/BuildDetail.tsx:186 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:213 -#: src/pages/sales/ReturnOrderDetail.tsx:192 -#: src/pages/sales/SalesOrderDetail.tsx:201 -#: src/tables/ColumnRenderers.tsx:212 -#: src/tables/part/PartPurchaseOrdersTable.tsx:99 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:110 -#: src/tables/sales/SalesOrderLineItemTable.tsx:99 -msgid "Target Date" +#: src/pages/build/BuildDetail.tsx:188 +#: src/tables/sales/SalesOrderLineItemTable.tsx:281 +msgid "Completed" msgstr "" #: src/pages/build/BuildDetail.tsx:190 @@ -4047,10 +4824,6 @@ msgstr "" #~ msgid "Link custom barcode to part" #~ msgstr "Link custom barcode to part" -#: src/pages/build/BuildDetail.tsx:193 -msgid "Completed" -msgstr "" - #: src/pages/build/BuildDetail.tsx:196 #: src/pages/part/PartDetail.tsx:280 #~ msgid "Unlink custom barcode from part" @@ -4060,15 +4833,11 @@ msgstr "" #~ msgid "Build Order updated" #~ msgstr "Build Order updated" -#: src/pages/build/BuildDetail.tsx:205 -msgid "Source Location" -msgstr "" - -#: src/pages/build/BuildDetail.tsx:206 +#: src/pages/build/BuildDetail.tsx:209 msgid "Any location" msgstr "" -#: src/pages/build/BuildDetail.tsx:213 +#: src/pages/build/BuildDetail.tsx:216 msgid "Destination Location" msgstr "" @@ -4084,206 +4853,182 @@ msgstr "" #~ msgid "Delete build order" #~ msgstr "Delete build order" -#: src/pages/build/BuildDetail.tsx:251 +#: src/pages/build/BuildDetail.tsx:254 msgid "Build Details" msgstr "" -#: src/pages/build/BuildDetail.tsx:257 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:258 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:267 -#: src/pages/sales/ReturnOrderDetail.tsx:130 -#: src/pages/sales/ReturnOrderDetail.tsx:237 -#: src/pages/sales/ReturnOrderDetail.tsx:246 -#: src/pages/sales/SalesOrderDetail.tsx:272 -#: src/pages/sales/SalesOrderDetail.tsx:281 +#: src/pages/build/BuildDetail.tsx:260 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:282 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:291 +#: src/pages/sales/ReturnOrderDetail.tsx:122 +#: src/pages/sales/ReturnOrderDetail.tsx:254 +#: src/pages/sales/ReturnOrderDetail.tsx:263 +#: src/pages/sales/SalesOrderDetail.tsx:294 +#: src/pages/sales/SalesOrderDetail.tsx:303 msgid "Line Items" msgstr "" -#: src/pages/build/BuildDetail.tsx:267 +#: src/pages/build/BuildDetail.tsx:266 msgid "Incomplete Outputs" msgstr "" -#: src/pages/build/BuildDetail.tsx:289 -#: src/pages/sales/SalesOrderDetail.tsx:319 +#: src/pages/build/BuildDetail.tsx:292 +#: src/pages/sales/SalesOrderDetail.tsx:341 msgid "Allocated Stock" msgstr "" -#: src/pages/build/BuildDetail.tsx:299 +#: src/pages/build/BuildDetail.tsx:302 msgid "Consumed Stock" msgstr "" -#: src/pages/build/BuildDetail.tsx:313 +#: src/pages/build/BuildDetail.tsx:316 msgid "Child Build Orders" msgstr "" #: src/pages/build/BuildDetail.tsx:326 -#: src/tables/build/BuildOutputTable.tsx:384 -#: src/tables/stock/StockItemTestResultTable.tsx:150 +#: src/tables/build/BuildOutputTable.tsx:532 +#: src/tables/stock/StockItemTestResultTable.tsx:156 msgid "Test Results" msgstr "" #: src/pages/build/BuildDetail.tsx:337 -#: src/pages/part/PartDetail.tsx:699 +#: src/pages/part/PartDetail.tsx:740 msgid "Test Statistics" msgstr "" -#: src/pages/build/BuildDetail.tsx:351 -#: src/pages/company/CompanyDetail.tsx:259 -#: src/pages/company/ManufacturerPartDetail.tsx:179 -#: src/pages/part/PartDetail.tsx:721 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:309 -#: src/pages/sales/ReturnOrderDetail.tsx:274 -#: src/pages/sales/SalesOrderDetail.tsx:343 -#: src/pages/stock/StockDetail.tsx:385 -msgid "Attachments" -msgstr "" - -#: src/pages/build/BuildDetail.tsx:359 -#: src/pages/company/CompanyDetail.tsx:270 -#: src/pages/company/ManufacturerPartDetail.tsx:190 -#: src/pages/company/SupplierPartDetail.tsx:257 -#: src/pages/part/PartDetail.tsx:729 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:320 -#: src/pages/sales/ReturnOrderDetail.tsx:285 -#: src/pages/sales/SalesOrderDetail.tsx:354 -#: src/pages/stock/StockDetail.tsx:396 -#: src/tables/build/BuildOrderTestTable.tsx:142 -#: src/tables/stock/StockTrackingTable.tsx:189 -msgid "Notes" +#: src/pages/build/BuildDetail.tsx:365 +msgid "Edit Build Order" msgstr "" #: src/pages/build/BuildDetail.tsx:368 #~ msgid "Reporting Actions" #~ msgstr "Reporting Actions" +#: src/pages/build/BuildDetail.tsx:372 +#: src/tables/build/BuildOrderTable.tsx:173 +#: src/tables/build/BuildOrderTable.tsx:188 +msgid "Add Build Order" +msgstr "" + #: src/pages/build/BuildDetail.tsx:374 #~ msgid "Print build report" #~ msgstr "Print build report" -#: src/pages/build/BuildDetail.tsx:377 -msgid "Edit Build Order" -msgstr "" - -#: src/pages/build/BuildDetail.tsx:384 -#: src/tables/build/BuildOrderTable.tsx:172 -#: src/tables/build/BuildOrderTable.tsx:187 -msgid "Add Build Order" -msgstr "" - -#: src/pages/build/BuildDetail.tsx:398 +#: src/pages/build/BuildDetail.tsx:386 msgid "Cancel Build Order" msgstr "" -#: src/pages/build/BuildDetail.tsx:400 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:348 -#: src/pages/sales/SalesOrderDetail.tsx:380 +#: src/pages/build/BuildDetail.tsx:388 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:357 +#: src/pages/sales/ReturnOrderDetail.tsx:354 +#: src/pages/sales/SalesOrderDetail.tsx:387 msgid "Order cancelled" msgstr "" -#: src/pages/build/BuildDetail.tsx:401 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:347 -#: src/pages/sales/ReturnOrderDetail.tsx:346 -#: src/pages/sales/SalesOrderDetail.tsx:379 +#: src/pages/build/BuildDetail.tsx:389 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:356 +#: src/pages/sales/ReturnOrderDetail.tsx:353 +#: src/pages/sales/SalesOrderDetail.tsx:386 msgid "Cancel this order" msgstr "" -#: src/pages/build/BuildDetail.tsx:410 +#: src/pages/build/BuildDetail.tsx:398 msgid "Hold Build Order" msgstr "" -#: src/pages/build/BuildDetail.tsx:412 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:355 -#: src/pages/sales/ReturnOrderDetail.tsx:354 -#: src/pages/sales/SalesOrderDetail.tsx:387 +#: src/pages/build/BuildDetail.tsx:400 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:364 +#: src/pages/sales/ReturnOrderDetail.tsx:361 +#: src/pages/sales/SalesOrderDetail.tsx:394 msgid "Place this order on hold" msgstr "" -#: src/pages/build/BuildDetail.tsx:413 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:356 -#: src/pages/sales/ReturnOrderDetail.tsx:355 -#: src/pages/sales/SalesOrderDetail.tsx:388 +#: src/pages/build/BuildDetail.tsx:401 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:365 +#: src/pages/sales/ReturnOrderDetail.tsx:362 +#: src/pages/sales/SalesOrderDetail.tsx:395 msgid "Order placed on hold" msgstr "" -#: src/pages/build/BuildDetail.tsx:418 +#: src/pages/build/BuildDetail.tsx:406 msgid "Issue Build Order" msgstr "" -#: src/pages/build/BuildDetail.tsx:420 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:339 -#: src/pages/sales/ReturnOrderDetail.tsx:338 -#: src/pages/sales/SalesOrderDetail.tsx:371 +#: src/pages/build/BuildDetail.tsx:408 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:348 +#: src/pages/sales/ReturnOrderDetail.tsx:345 +#: src/pages/sales/SalesOrderDetail.tsx:378 msgid "Issue this order" msgstr "" -#: src/pages/build/BuildDetail.tsx:421 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:340 -#: src/pages/sales/ReturnOrderDetail.tsx:339 -#: src/pages/sales/SalesOrderDetail.tsx:372 +#: src/pages/build/BuildDetail.tsx:409 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:349 +#: src/pages/sales/ReturnOrderDetail.tsx:346 +#: src/pages/sales/SalesOrderDetail.tsx:379 msgid "Order issued" msgstr "" -#: src/pages/build/BuildDetail.tsx:426 +#: src/pages/build/BuildDetail.tsx:414 msgid "Complete Build Order" msgstr "" -#: src/pages/build/BuildDetail.tsx:428 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:368 -#: src/pages/sales/ReturnOrderDetail.tsx:362 -#: src/pages/sales/SalesOrderDetail.tsx:395 +#: src/pages/build/BuildDetail.tsx:416 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:377 +#: src/pages/sales/ReturnOrderDetail.tsx:369 +#: src/pages/sales/SalesOrderDetail.tsx:402 msgid "Mark this order as complete" msgstr "" -#: src/pages/build/BuildDetail.tsx:429 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:362 -#: src/pages/sales/ReturnOrderDetail.tsx:363 -#: src/pages/sales/SalesOrderDetail.tsx:396 +#: src/pages/build/BuildDetail.tsx:417 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:371 +#: src/pages/sales/ReturnOrderDetail.tsx:370 +#: src/pages/sales/SalesOrderDetail.tsx:403 msgid "Order completed" msgstr "" -#: src/pages/build/BuildDetail.tsx:460 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:391 -#: src/pages/sales/ReturnOrderDetail.tsx:392 -#: src/pages/sales/SalesOrderDetail.tsx:425 +#: src/pages/build/BuildDetail.tsx:448 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:400 +#: src/pages/sales/ReturnOrderDetail.tsx:399 +#: src/pages/sales/SalesOrderDetail.tsx:432 msgid "Issue Order" msgstr "" -#: src/pages/build/BuildDetail.tsx:467 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:398 -#: src/pages/sales/ReturnOrderDetail.tsx:399 -#: src/pages/sales/SalesOrderDetail.tsx:439 +#: src/pages/build/BuildDetail.tsx:455 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:407 +#: src/pages/sales/ReturnOrderDetail.tsx:406 +#: src/pages/sales/SalesOrderDetail.tsx:446 msgid "Complete Order" msgstr "" -#: src/pages/build/BuildDetail.tsx:496 +#: src/pages/build/BuildDetail.tsx:473 msgid "Build Order Actions" msgstr "" -#: src/pages/build/BuildDetail.tsx:502 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:432 -#: src/pages/sales/ReturnOrderDetail.tsx:433 -#: src/pages/sales/SalesOrderDetail.tsx:474 +#: src/pages/build/BuildDetail.tsx:478 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:429 +#: src/pages/sales/ReturnOrderDetail.tsx:428 +#: src/pages/sales/SalesOrderDetail.tsx:469 msgid "Edit order" msgstr "" -#: src/pages/build/BuildDetail.tsx:506 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:440 -#: src/pages/sales/ReturnOrderDetail.tsx:439 -#: src/pages/sales/SalesOrderDetail.tsx:479 +#: src/pages/build/BuildDetail.tsx:482 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:437 +#: src/pages/sales/ReturnOrderDetail.tsx:434 +#: src/pages/sales/SalesOrderDetail.tsx:474 msgid "Duplicate order" msgstr "" -#: src/pages/build/BuildDetail.tsx:510 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:443 -#: src/pages/sales/ReturnOrderDetail.tsx:444 -#: src/pages/sales/SalesOrderDetail.tsx:482 +#: src/pages/build/BuildDetail.tsx:486 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:440 +#: src/pages/sales/ReturnOrderDetail.tsx:439 +#: src/pages/sales/SalesOrderDetail.tsx:477 msgid "Hold order" msgstr "" -#: src/pages/build/BuildDetail.tsx:515 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:448 -#: src/pages/sales/ReturnOrderDetail.tsx:449 -#: src/pages/sales/SalesOrderDetail.tsx:487 +#: src/pages/build/BuildDetail.tsx:491 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:445 +#: src/pages/sales/ReturnOrderDetail.tsx:444 +#: src/pages/sales/SalesOrderDetail.tsx:482 msgid "Cancel order" msgstr "" @@ -4295,56 +5040,60 @@ msgstr "" #~ msgid "New Build Order" #~ msgstr "New Build Order" -#: src/pages/company/CompanyDetail.tsx:104 +#: src/pages/company/CompanyDetail.tsx:95 +msgid "Website" +msgstr "" + +#: src/pages/company/CompanyDetail.tsx:103 msgid "Phone Number" msgstr "" -#: src/pages/company/CompanyDetail.tsx:111 +#: src/pages/company/CompanyDetail.tsx:110 msgid "Email Address" msgstr "" -#: src/pages/company/CompanyDetail.tsx:121 +#: src/pages/company/CompanyDetail.tsx:120 msgid "Default Currency" msgstr "" -#: src/pages/company/CompanyDetail.tsx:126 +#: src/pages/company/CompanyDetail.tsx:125 #: src/pages/company/SupplierDetail.tsx:8 -#: src/pages/company/SupplierPartDetail.tsx:120 -#: src/pages/company/SupplierPartDetail.tsx:206 -#: src/pages/company/SupplierPartDetail.tsx:351 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:136 -#: src/tables/company/CompanyTable.tsx:100 +#: src/pages/company/SupplierPartDetail.tsx:125 +#: src/pages/company/SupplierPartDetail.tsx:218 +#: src/pages/company/SupplierPartDetail.tsx:340 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:130 +#: src/tables/company/CompanyTable.tsx:101 #: src/tables/part/PartPurchaseOrdersTable.tsx:42 -#: src/tables/purchasing/PurchaseOrderTable.tsx:88 +#: src/tables/purchasing/PurchaseOrderTable.tsx:89 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:36 msgid "Supplier" msgstr "" -#: src/pages/company/CompanyDetail.tsx:132 +#: src/pages/company/CompanyDetail.tsx:131 #: src/pages/company/ManufacturerDetail.tsx:8 -#: src/pages/company/ManufacturerPartDetail.tsx:101 -#: src/pages/company/ManufacturerPartDetail.tsx:267 -#: src/pages/company/SupplierPartDetail.tsx:135 -#: src/tables/company/CompanyTable.tsx:105 +#: src/pages/company/ManufacturerPartDetail.tsx:100 +#: src/pages/company/ManufacturerPartDetail.tsx:262 +#: src/pages/company/SupplierPartDetail.tsx:147 +#: src/tables/company/CompanyTable.tsx:106 msgid "Manufacturer" msgstr "" -#: src/pages/company/CompanyDetail.tsx:138 +#: src/pages/company/CompanyDetail.tsx:137 #: src/pages/company/CustomerDetail.tsx:8 -#: src/pages/part/pricing/SaleHistoryPanel.tsx:29 -#: src/pages/sales/ReturnOrderDetail.tsx:109 -#: src/pages/sales/SalesOrderDetail.tsx:115 -#: src/pages/stock/StockDetail.tsx:230 -#: src/tables/company/CompanyTable.tsx:110 -#: src/tables/sales/ReturnOrderTable.tsx:78 -#: src/tables/sales/SalesOrderTable.tsx:108 -#: src/tables/stock/StockTrackingTable.tsx:140 +#: src/pages/part/pricing/SaleHistoryPanel.tsx:31 +#: src/pages/sales/ReturnOrderDetail.tsx:101 +#: src/pages/sales/SalesOrderDetail.tsx:110 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:100 +#: src/pages/stock/StockDetail.tsx:271 +#: src/tables/company/CompanyTable.tsx:111 +#: src/tables/sales/ReturnOrderTable.tsx:97 +#: src/tables/sales/SalesOrderTable.tsx:121 +#: src/tables/stock/StockTrackingTable.tsx:144 msgid "Customer" msgstr "" #: src/pages/company/CompanyDetail.tsx:172 -#: src/tables/stock/StockTrackingTable.tsx:183 -msgid "Details" +msgid "Company Details" msgstr "" #: src/pages/company/CompanyDetail.tsx:175 @@ -4363,140 +5112,150 @@ msgstr "" #~ msgid "Delete company" #~ msgstr "Delete company" -#: src/pages/company/CompanyDetail.tsx:232 +#: src/pages/company/CompanyDetail.tsx:234 msgid "Assigned Stock" msgstr "" -#: src/pages/company/CompanyDetail.tsx:290 -#: src/tables/company/CompanyTable.tsx:86 +#: src/pages/company/CompanyDetail.tsx:273 +#: src/tables/company/CompanyTable.tsx:87 msgid "Edit Company" msgstr "" -#: src/pages/company/CompanyDetail.tsx:298 +#: src/pages/company/CompanyDetail.tsx:281 msgid "Delete Company" msgstr "" -#: src/pages/company/CompanyDetail.tsx:306 +#: src/pages/company/CompanyDetail.tsx:289 msgid "Company Actions" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:76 -#: src/pages/company/SupplierPartDetail.tsx:89 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:128 +#: src/pages/company/ManufacturerPartDetail.tsx:74 +#: src/pages/company/SupplierPartDetail.tsx:84 msgid "Internal Part" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:91 -#: src/pages/company/SupplierPartDetail.tsx:103 -msgid "External Link" -msgstr "" - -#: src/pages/company/ManufacturerPartDetail.tsx:109 -#: src/pages/company/SupplierPartDetail.tsx:144 -#: src/tables/purchasing/ManufacturerPartTable.tsx:56 +#: src/pages/company/ManufacturerPartDetail.tsx:108 +#: src/pages/company/SupplierPartDetail.tsx:156 +#: src/tables/purchasing/ManufacturerPartTable.tsx:58 msgid "Manufacturer Part Number" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:138 +#: src/pages/company/ManufacturerPartDetail.tsx:125 +#: src/pages/company/SupplierPartDetail.tsx:108 +msgid "External Link" +msgstr "" + +#: src/pages/company/ManufacturerPartDetail.tsx:146 +#: src/pages/company/SupplierPartDetail.tsx:215 +#: src/pages/part/PartDetail.tsx:576 +msgid "Part Details" +msgstr "" + +#: src/pages/company/ManufacturerPartDetail.tsx:149 msgid "Manufacturer Details" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:147 +#: src/pages/company/ManufacturerPartDetail.tsx:158 msgid "Manufacturer Part Details" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:153 -#: src/pages/part/PartDetail.tsx:532 +#: src/pages/company/ManufacturerPartDetail.tsx:164 +#: src/pages/part/PartDetail.tsx:582 msgid "Parameters" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:165 -#: src/pages/part/PartDetail.tsx:649 +#: src/pages/company/ManufacturerPartDetail.tsx:176 +#: src/pages/part/PartDetail.tsx:669 #: src/pages/purchasing/PurchasingIndex.tsx:31 msgid "Suppliers" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:208 -#: src/tables/purchasing/ManufacturerPartTable.tsx:84 +#: src/pages/company/ManufacturerPartDetail.tsx:204 +#: src/tables/purchasing/ManufacturerPartTable.tsx:86 msgid "Edit Manufacturer Part" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:215 -#: src/tables/purchasing/ManufacturerPartTable.tsx:72 -#: src/tables/purchasing/ManufacturerPartTable.tsx:103 +#: src/pages/company/ManufacturerPartDetail.tsx:211 +#: src/tables/purchasing/ManufacturerPartTable.tsx:74 +#: src/tables/purchasing/ManufacturerPartTable.tsx:106 msgid "Add Manufacturer Part" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:227 -#: src/tables/purchasing/ManufacturerPartTable.tsx:92 +#: src/pages/company/ManufacturerPartDetail.tsx:223 +#: src/tables/purchasing/ManufacturerPartTable.tsx:94 msgid "Delete Manufacturer Part" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:240 +#: src/pages/company/ManufacturerPartDetail.tsx:236 msgid "Manufacturer Part Actions" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:281 +#: src/pages/company/ManufacturerPartDetail.tsx:276 msgid "ManufacturerPart" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:163 -#: src/tables/part/PartPurchaseOrdersTable.tsx:71 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:156 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:197 -#: src/tables/purchasing/SupplierPartTable.tsx:131 +#: src/pages/company/SupplierPartDetail.tsx:99 +msgid "Part Description" +msgstr "" + +#: src/pages/company/SupplierPartDetail.tsx:175 +#: src/tables/part/PartPurchaseOrdersTable.tsx:72 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:162 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:203 +#: src/tables/purchasing/SupplierPartTable.tsx:133 msgid "Pack Quantity" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:174 +#: src/pages/company/SupplierPartDetail.tsx:186 msgid "Supplier Availability" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:181 +#: src/pages/company/SupplierPartDetail.tsx:193 msgid "Availability Updated" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:208 +#: src/pages/company/SupplierPartDetail.tsx:220 msgid "Availability" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:217 +#: src/pages/company/SupplierPartDetail.tsx:229 msgid "Supplier Part Details" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:223 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:296 +#: src/pages/company/SupplierPartDetail.tsx:235 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:320 msgid "Received Stock" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:247 -#: src/pages/part/PartPricingPanel.tsx:111 -#: src/pages/part/pricing/PricingOverviewPanel.tsx:121 +#: src/pages/company/SupplierPartDetail.tsx:259 +#: src/pages/part/PartPricingPanel.tsx:116 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:195 msgid "Supplier Pricing" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:294 +#: src/pages/company/SupplierPartDetail.tsx:284 msgid "Supplier Part Actions" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:319 -#: src/tables/purchasing/SupplierPartTable.tsx:210 +#: src/pages/company/SupplierPartDetail.tsx:308 +#: src/tables/purchasing/SupplierPartTable.tsx:213 msgid "Edit Supplier Part" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:327 -#: src/tables/purchasing/SupplierPartTable.tsx:218 +#: src/pages/company/SupplierPartDetail.tsx:316 +#: src/tables/purchasing/SupplierPartTable.tsx:221 msgid "Delete Supplier Part" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:335 -#: src/tables/purchasing/SupplierPartTable.tsx:163 +#: src/pages/company/SupplierPartDetail.tsx:324 +#: src/tables/purchasing/SupplierPartTable.tsx:165 msgid "Add Supplier Part" msgstr "" #: src/pages/part/CategoryDetail.tsx:93 -#: src/pages/stock/LocationDetail.tsx:101 -#: src/tables/settings/ErrorTable.tsx:36 +#: src/pages/stock/LocationDetail.tsx:95 +#: src/tables/settings/ErrorTable.tsx:63 +#: src/tables/settings/ErrorTable.tsx:108 msgid "Path" msgstr "" @@ -4504,357 +5263,357 @@ msgstr "" msgid "Parent Category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:126 +#: src/pages/part/CategoryDetail.tsx:132 msgid "Subcategories" msgstr "" -#: src/pages/part/CategoryDetail.tsx:133 -#: src/pages/stock/LocationDetail.tsx:141 -#: src/tables/part/PartCategoryTable.tsx:73 +#: src/pages/part/CategoryDetail.tsx:139 +#: src/pages/stock/LocationDetail.tsx:135 +#: src/tables/part/PartCategoryTable.tsx:85 #: src/tables/stock/StockLocationTable.tsx:49 msgid "Structural" msgstr "" -#: src/pages/part/CategoryDetail.tsx:139 +#: src/pages/part/CategoryDetail.tsx:145 msgid "Parent default location" msgstr "" -#: src/pages/part/CategoryDetail.tsx:146 +#: src/pages/part/CategoryDetail.tsx:152 msgid "Default location" msgstr "" -#: src/pages/part/CategoryDetail.tsx:157 +#: src/pages/part/CategoryDetail.tsx:163 msgid "Top level part category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:167 -#: src/pages/part/CategoryDetail.tsx:221 -#: src/tables/part/PartCategoryTable.tsx:102 +#: src/pages/part/CategoryDetail.tsx:173 +#: src/pages/part/CategoryDetail.tsx:226 +#: src/tables/part/PartCategoryTable.tsx:118 msgid "Edit Part Category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:180 -#: src/pages/stock/LocationDetail.tsx:233 +#: src/pages/part/CategoryDetail.tsx:186 +#: src/pages/stock/LocationDetail.tsx:227 msgid "Delete items" msgstr "" -#: src/pages/part/CategoryDetail.tsx:188 -#: src/pages/part/CategoryDetail.tsx:226 +#: src/pages/part/CategoryDetail.tsx:194 +#: src/pages/part/CategoryDetail.tsx:231 msgid "Delete Part Category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:191 +#: src/pages/part/CategoryDetail.tsx:197 msgid "Parts Action" msgstr "" -#: src/pages/part/CategoryDetail.tsx:192 +#: src/pages/part/CategoryDetail.tsx:198 msgid "Action for parts in this category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:197 +#: src/pages/part/CategoryDetail.tsx:203 msgid "Child Categories Action" msgstr "" -#: src/pages/part/CategoryDetail.tsx:198 +#: src/pages/part/CategoryDetail.tsx:204 msgid "Action for child categories in this category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:216 +#: src/pages/part/CategoryDetail.tsx:222 msgid "Category Actions" msgstr "" -#: src/pages/part/CategoryDetail.tsx:238 +#: src/pages/part/CategoryDetail.tsx:243 msgid "Category Details" msgstr "" -#: src/pages/part/PartDetail.tsx:163 -msgid "Variant of" +#: src/pages/part/PartAllocationPanel.tsx:23 +#: src/pages/stock/StockDetail.tsx:443 +#: src/tables/part/PartTable.tsx:99 +msgid "Build Order Allocations" msgstr "" -#: src/pages/part/PartDetail.tsx:170 -msgid "Revision of" -msgstr "" - -#: src/pages/part/PartDetail.tsx:177 -#: src/tables/stock/StockItemTable.tsx:58 -msgid "Revision" +#: src/pages/part/PartAllocationPanel.tsx:40 +#: src/pages/stock/StockDetail.tsx:458 +#: src/tables/part/PartTable.tsx:108 +msgid "Sales Order Allocations" msgstr "" #: src/pages/part/PartDetail.tsx:184 +msgid "Variant of" +msgstr "" + +#: src/pages/part/PartDetail.tsx:191 +msgid "Revision of" +msgstr "" + +#: src/pages/part/PartDetail.tsx:198 +#: src/tables/stock/StockItemTable.tsx:59 +msgid "Revision" +msgstr "" + +#: src/pages/part/PartDetail.tsx:205 #: src/tables/notifications/NotificationsTable.tsx:31 #: src/tables/part/PartCategoryTemplateTable.tsx:67 msgid "Category" msgstr "" -#: src/pages/part/PartDetail.tsx:190 +#: src/pages/part/PartDetail.tsx:211 msgid "Default Location" msgstr "" -#: src/pages/part/PartDetail.tsx:197 +#: src/pages/part/PartDetail.tsx:218 msgid "Category Default Location" msgstr "" -#: src/pages/part/PartDetail.tsx:204 +#: src/pages/part/PartDetail.tsx:225 #: src/tables/purchasing/ManufacturerPartParameterTable.tsx:44 msgid "Units" msgstr "" -#: src/pages/part/PartDetail.tsx:211 -#: src/tables/settings/PendingTasksTable.tsx:42 +#: src/pages/part/PartDetail.tsx:232 +#: src/tables/settings/PendingTasksTable.tsx:46 msgid "Keywords" msgstr "" -#: src/pages/part/PartDetail.tsx:218 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:186 -#: src/pages/sales/ReturnOrderDetail.tsx:165 -#: src/pages/sales/SalesOrderDetail.tsx:174 -msgid "Link" -msgstr "" - -#: src/pages/part/PartDetail.tsx:236 +#: src/pages/part/PartDetail.tsx:257 #: src/tables/bom/BomTable.tsx:320 -#: src/tables/build/BuildLineTable.tsx:155 +#: src/tables/build/BuildLineTable.tsx:286 #: src/tables/part/PartTable.tsx:288 -#: src/tables/sales/SalesOrderLineItemTable.tsx:103 +#: src/tables/sales/SalesOrderLineItemTable.tsx:111 msgid "Available Stock" msgstr "" -#: src/pages/part/PartDetail.tsx:243 +#: src/pages/part/PartDetail.tsx:264 msgid "Variant Stock" msgstr "" -#: src/pages/part/PartDetail.tsx:251 +#: src/pages/part/PartDetail.tsx:272 msgid "Minimum Stock" msgstr "" -#: src/pages/part/PartDetail.tsx:257 +#: src/pages/part/PartDetail.tsx:278 #: src/tables/bom/BomTable.tsx:237 -#: src/tables/build/BuildLineTable.tsx:117 -#: src/tables/sales/SalesOrderLineItemTable.tsx:141 +#: src/tables/build/BuildLineTable.tsx:248 +#: src/tables/sales/SalesOrderLineItemTable.tsx:149 msgid "On order" msgstr "" -#: src/pages/part/PartDetail.tsx:266 +#: src/pages/part/PartDetail.tsx:285 +msgid "Required for Orders" +msgstr "" + +#: src/pages/part/PartDetail.tsx:294 msgid "Allocated to Build Orders" msgstr "" -#: src/pages/part/PartDetail.tsx:274 +#: src/pages/part/PartDetail.tsx:305 msgid "Allocated to Sales Orders" msgstr "" -#: src/pages/part/PartDetail.tsx:281 -#: src/tables/bom/BomTable.tsx:261 -#: src/tables/bom/BomTable.tsx:293 -msgid "Can Build" -msgstr "" - -#: src/pages/part/PartDetail.tsx:288 -#: src/tables/bom/BomTable.tsx:245 -#: src/tables/part/PartTable.tsx:92 -msgid "Building" -msgstr "" - -#: src/pages/part/PartDetail.tsx:302 -#: src/pages/part/PartDetail.tsx:873 -#: src/tables/part/ParametricPartTable.tsx:228 -#: src/tables/part/PartTable.tsx:184 -msgid "Locked" -msgstr "" - -#: src/pages/part/PartDetail.tsx:308 -msgid "Template Part" -msgstr "" - #: src/pages/part/PartDetail.tsx:310 #~ msgid "Edit part" #~ msgstr "Edit part" -#: src/pages/part/PartDetail.tsx:313 -#: src/tables/bom/BomTable.tsx:315 -msgid "Assembled Part" +#: src/pages/part/PartDetail.tsx:315 +#: src/tables/bom/BomTable.tsx:261 +#: src/tables/bom/BomTable.tsx:293 +msgid "Can Build" msgstr "" -#: src/pages/part/PartDetail.tsx:318 -msgid "Component Part" +#: src/pages/part/PartDetail.tsx:322 +#: src/pages/part/PartDetail.tsx:905 +#: src/pages/stock/StockDetail.tsx:766 +#: src/tables/build/BuildOrderTestTable.tsx:220 +#: src/tables/stock/StockItemTable.tsx:334 +msgid "In Production" msgstr "" #: src/pages/part/PartDetail.tsx:322 #~ msgid "Duplicate part" #~ msgstr "Duplicate part" -#: src/pages/part/PartDetail.tsx:323 -#: src/tables/bom/BomTable.tsx:305 -msgid "Testable Part" -msgstr "" - #: src/pages/part/PartDetail.tsx:327 #~ msgid "Delete part" #~ msgstr "Delete part" -#: src/pages/part/PartDetail.tsx:329 +#: src/pages/part/PartDetail.tsx:336 +#: src/tables/part/ParametricPartTable.tsx:228 +#: src/tables/part/PartTable.tsx:184 +msgid "Locked" +msgstr "" + +#: src/pages/part/PartDetail.tsx:342 +msgid "Template Part" +msgstr "" + +#: src/pages/part/PartDetail.tsx:347 +#: src/tables/bom/BomTable.tsx:315 +msgid "Assembled Part" +msgstr "" + +#: src/pages/part/PartDetail.tsx:352 +msgid "Component Part" +msgstr "" + +#: src/pages/part/PartDetail.tsx:357 +#: src/tables/bom/BomTable.tsx:305 +msgid "Testable Part" +msgstr "" + +#: src/pages/part/PartDetail.tsx:363 #: src/tables/bom/BomTable.tsx:310 msgid "Trackable Part" msgstr "" -#: src/pages/part/PartDetail.tsx:334 +#: src/pages/part/PartDetail.tsx:368 msgid "Purchaseable Part" msgstr "" -#: src/pages/part/PartDetail.tsx:339 +#: src/pages/part/PartDetail.tsx:374 msgid "Saleable Part" msgstr "" -#: src/pages/part/PartDetail.tsx:344 +#: src/pages/part/PartDetail.tsx:379 msgid "Virtual Part" msgstr "" -#: src/pages/part/PartDetail.tsx:352 -#: src/tables/ColumnRenderers.tsx:220 +#: src/pages/part/PartDetail.tsx:393 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:215 +#: src/pages/sales/ReturnOrderDetail.tsx:185 +#: src/pages/sales/SalesOrderDetail.tsx:197 +#: src/tables/ColumnRenderers.tsx:234 msgid "Creation Date" msgstr "" -#: src/pages/part/PartDetail.tsx:357 +#: src/pages/part/PartDetail.tsx:398 msgid "Created By" msgstr "" -#: src/pages/part/PartDetail.tsx:372 +#: src/pages/part/PartDetail.tsx:413 msgid "Default Supplier" msgstr "" -#: src/pages/part/PartDetail.tsx:383 -#: src/pages/part/pricing/BomPricingPanel.tsx:79 +#: src/pages/part/PartDetail.tsx:424 +#: src/pages/part/pricing/BomPricingPanel.tsx:113 #: src/pages/part/pricing/VariantPricingPanel.tsx:95 #: src/tables/part/PartTable.tsx:161 msgid "Price Range" msgstr "" -#: src/pages/part/PartDetail.tsx:423 -#: src/pages/stock/StockDetail.tsx:135 +#: src/pages/part/PartDetail.tsx:462 +msgid "Latest Serial Number" +msgstr "" + +#: src/pages/part/PartDetail.tsx:472 +#: src/pages/stock/StockDetail.tsx:151 msgid "Last Stocktake" msgstr "" -#: src/pages/part/PartDetail.tsx:462 +#: src/pages/part/PartDetail.tsx:511 msgid "Stocktake By" msgstr "" -#: src/pages/part/PartDetail.tsx:526 -msgid "Part Details" -msgstr "" - -#: src/pages/part/PartDetail.tsx:557 +#: src/pages/part/PartDetail.tsx:611 msgid "Variants" msgstr "" -#: src/pages/part/PartDetail.tsx:564 -#: src/pages/stock/StockDetail.tsx:307 +#: src/pages/part/PartDetail.tsx:618 +#: src/pages/stock/StockDetail.tsx:430 msgid "Allocations" msgstr "" -#: src/pages/part/PartDetail.tsx:575 -#: src/pages/stock/StockDetail.tsx:318 -#: src/tables/part/PartTable.tsx:99 -msgid "Build Order Allocations" -msgstr "" - -#: src/pages/part/PartDetail.tsx:590 -#: src/pages/stock/StockDetail.tsx:333 -#: src/tables/part/PartTable.tsx:108 -msgid "Sales Order Allocations" -msgstr "" - -#: src/pages/part/PartDetail.tsx:607 +#: src/pages/part/PartDetail.tsx:625 msgid "Bill of Materials" msgstr "" -#: src/pages/part/PartDetail.tsx:623 +#: src/pages/part/PartDetail.tsx:643 msgid "Used In" msgstr "" -#: src/pages/part/PartDetail.tsx:630 +#: src/pages/part/PartDetail.tsx:650 msgid "Part Pricing" msgstr "" -#: src/pages/part/PartDetail.tsx:636 +#: src/pages/part/PartDetail.tsx:656 #: src/pages/purchasing/PurchasingIndex.tsx:42 msgid "Manufacturers" msgstr "" -#: src/pages/part/PartDetail.tsx:676 +#: src/pages/part/PartDetail.tsx:722 msgid "Scheduling" msgstr "" -#: src/pages/part/PartDetail.tsx:688 +#: src/pages/part/PartDetail.tsx:729 msgid "Test Templates" msgstr "" -#: src/pages/part/PartDetail.tsx:715 +#: src/pages/part/PartDetail.tsx:756 msgid "Related Parts" msgstr "" -#: src/pages/part/PartDetail.tsx:849 -#: src/pages/stock/StockDetail.tsx:156 -#: src/pages/stock/StockDetail.tsx:593 -#: src/tables/build/BuildLineTable.tsx:48 +#: src/pages/part/PartDetail.tsx:881 +#: src/pages/stock/StockDetail.tsx:172 +#: src/pages/stock/StockDetail.tsx:783 +#: src/tables/build/BuildLineTable.tsx:179 #: src/tables/part/PartTable.tsx:117 -#: src/tables/stock/StockItemTable.tsx:177 -#: src/tables/stock/StockItemTable.tsx:310 +#: src/tables/stock/StockItemTable.tsx:166 +#: src/tables/stock/StockItemTable.tsx:314 msgid "Available" msgstr "" -#: src/pages/part/PartDetail.tsx:855 +#: src/pages/part/PartDetail.tsx:887 msgid "No Stock" msgstr "" -#: src/pages/part/PartDetail.tsx:861 +#: src/pages/part/PartDetail.tsx:893 +#: src/tables/part/PartTestTemplateTable.tsx:106 +#: src/tables/stock/StockItemTestResultTable.tsx:383 +msgid "Required" +msgstr "" + +#: src/pages/part/PartDetail.tsx:899 #: src/tables/bom/BomTable.tsx:325 #: src/tables/part/PartTable.tsx:86 msgid "On Order" msgstr "" -#: src/pages/part/PartDetail.tsx:867 -#: src/pages/stock/StockDetail.tsx:576 -#: src/tables/build/BuildOrderTestTable.tsx:219 -#: src/tables/stock/StockItemTable.tsx:330 -msgid "In Production" -msgstr "" - -#: src/pages/part/PartDetail.tsx:892 +#: src/pages/part/PartDetail.tsx:924 msgid "Edit Part" msgstr "" -#: src/pages/part/PartDetail.tsx:927 +#: src/pages/part/PartDetail.tsx:959 #: src/tables/part/PartTable.tsx:331 -#: src/tables/part/PartTable.tsx:342 +#: src/tables/part/PartTable.tsx:343 msgid "Add Part" msgstr "" -#: src/pages/part/PartDetail.tsx:941 +#: src/pages/part/PartDetail.tsx:973 msgid "Delete Part" msgstr "" -#: src/pages/part/PartDetail.tsx:950 +#: src/pages/part/PartDetail.tsx:982 msgid "Deleting this part cannot be reversed" msgstr "" -#: src/pages/part/PartDetail.tsx:999 -#: src/pages/stock/LocationDetail.tsx:324 -#: src/tables/stock/StockItemTable.tsx:444 +#: src/pages/part/PartDetail.tsx:1021 +#: src/pages/stock/LocationDetail.tsx:310 +#: src/tables/stock/StockItemTable.tsx:449 msgid "Stock Actions" msgstr "" -#: src/pages/part/PartDetail.tsx:1007 +#: src/pages/part/PartDetail.tsx:1029 msgid "Count part stock" msgstr "" -#: src/pages/part/PartDetail.tsx:1018 +#: src/pages/part/PartDetail.tsx:1040 msgid "Transfer part stock" msgstr "" -#: src/pages/part/PartDetail.tsx:1027 +#: src/pages/part/PartDetail.tsx:1049 msgid "Part Actions" msgstr "" -#: src/pages/part/PartDetail.tsx:1087 +#: src/pages/part/PartDetail.tsx:1113 msgid "Select Part Revision" msgstr "" @@ -4862,113 +5621,214 @@ msgstr "" #~ msgid "Categories" #~ msgstr "Categories" -#: src/pages/part/PartPricingPanel.tsx:68 +#: src/pages/part/PartPricingPanel.tsx:72 msgid "No pricing data found for this part." msgstr "" -#: src/pages/part/PartPricingPanel.tsx:82 -#: src/pages/part/pricing/PricingOverviewPanel.tsx:190 +#: src/pages/part/PartPricingPanel.tsx:87 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:293 msgid "Pricing Overview" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:88 +#: src/pages/part/PartPricingPanel.tsx:93 msgid "Purchase History" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:102 -#: src/pages/part/pricing/PricingOverviewPanel.tsx:100 +#: src/pages/part/PartPricingPanel.tsx:107 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:174 msgid "Internal Pricing" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:120 -#: src/pages/part/pricing/PricingOverviewPanel.tsx:107 +#: src/pages/part/PartPricingPanel.tsx:125 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:181 msgid "BOM Pricing" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:127 -#: src/pages/part/pricing/PricingOverviewPanel.tsx:128 +#: src/pages/part/PartPricingPanel.tsx:132 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:202 msgid "Variant Pricing" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:139 -#: src/pages/part/pricing/PricingOverviewPanel.tsx:135 +#: src/pages/part/PartPricingPanel.tsx:144 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:209 msgid "Sale Pricing" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:146 -#: src/pages/part/pricing/PricingOverviewPanel.tsx:142 +#: src/pages/part/PartPricingPanel.tsx:151 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:216 msgid "Sale History" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:58 -#: src/pages/part/pricing/BomPricingPanel.tsx:138 -#: src/tables/ColumnRenderers.tsx:262 +#: src/pages/part/PartSchedulingDetail.tsx:47 +#: src/pages/part/PartSchedulingDetail.tsx:299 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:156 +msgid "Maximum" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:50 +#: src/pages/part/PartSchedulingDetail.tsx:289 +msgid "Scheduled" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:53 +#: src/pages/part/PartSchedulingDetail.tsx:294 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:144 +msgid "Minimum" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:68 +msgid "Order" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:92 +msgid "Quantity is speculative" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:101 +msgid "No date available for provided quantity" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:105 +msgid "Date is in the past" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:112 +msgid "Scheduled Quantity" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:240 +msgid "No information available" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:241 +msgid "There is no scheduling information available for the selected part" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:276 +msgid "Expected Quantity" +msgstr "" + +#: src/pages/part/PartStocktakeDetail.tsx:63 +#: src/tables/FilterSelectDrawer.tsx:167 +#: src/tables/FilterSelectDrawer.tsx:174 +#: src/tables/build/BuildOrderTestTable.tsx:135 +#: src/tables/purchasing/ManufacturerPartParameterTable.tsx:38 +#: src/tables/stock/StockItemTestResultTable.tsx:192 +msgid "Value" +msgstr "" + +#: src/pages/part/PartStocktakeDetail.tsx:82 +msgid "Edit Stocktake Entry" +msgstr "" + +#: src/pages/part/PartStocktakeDetail.tsx:90 +msgid "Delete Stocktake Entry" +msgstr "" + +#: src/pages/part/PartStocktakeDetail.tsx:96 +#: src/tables/settings/StocktakeReportTable.tsx:69 +msgid "Generate Stocktake Report" +msgstr "" + +#: src/pages/part/PartStocktakeDetail.tsx:101 +#: src/tables/settings/StocktakeReportTable.tsx:71 +msgid "Stocktake report scheduled" +msgstr "" + +#: src/pages/part/PartStocktakeDetail.tsx:119 +#: src/pages/part/PartStocktakeDetail.tsx:235 +#: src/pages/stock/StockDetail.tsx:303 +#: src/tables/stock/StockItemTable.tsx:249 +msgid "Stock Value" +msgstr "" + +#: src/pages/part/PartStocktakeDetail.tsx:139 +#: src/tables/settings/StocktakeReportTable.tsx:77 +msgid "New Stocktake Report" +msgstr "" + +#: src/pages/part/PartStocktakeDetail.tsx:258 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:295 +msgid "Minimum Value" +msgstr "" + +#: src/pages/part/PartStocktakeDetail.tsx:264 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:296 +msgid "Maximum Value" +msgstr "" + +#: src/pages/part/pricing/BomPricingPanel.tsx:87 +#: src/pages/part/pricing/BomPricingPanel.tsx:177 +#: src/tables/ColumnRenderers.tsx:276 #: src/tables/bom/BomTable.tsx:185 #: src/tables/general/ExtraLineItemTable.tsx:64 -#: src/tables/purchasing/PurchaseOrderTable.tsx:112 -#: src/tables/sales/ReturnOrderTable.tsx:104 -#: src/tables/sales/SalesOrderLineItemTable.tsx:89 -#: src/tables/sales/SalesOrderTable.tsx:136 +#: src/tables/purchasing/PurchaseOrderTable.tsx:113 +#: src/tables/sales/ReturnOrderTable.tsx:127 +#: src/tables/sales/SalesOrderLineItemTable.tsx:97 +#: src/tables/sales/SalesOrderTable.tsx:149 msgid "Total Price" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:78 -#: src/pages/part/pricing/BomPricingPanel.tsx:102 +#: src/pages/part/pricing/BomPricingPanel.tsx:112 +#: src/pages/part/pricing/BomPricingPanel.tsx:141 #: src/tables/bom/UsedInTable.tsx:49 +#: src/tables/build/BuildLineTable.tsx:296 #: src/tables/part/PartTable.tsx:202 msgid "Component" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:81 -#: src/pages/part/pricing/VariantPricingPanel.tsx:37 -#: src/pages/part/pricing/VariantPricingPanel.tsx:97 -msgid "Minimum Price" -msgstr "" - -#: src/pages/part/pricing/BomPricingPanel.tsx:82 -#: src/pages/part/pricing/VariantPricingPanel.tsx:45 -#: src/pages/part/pricing/VariantPricingPanel.tsx:98 -msgid "Maximum Price" -msgstr "" - #: src/pages/part/pricing/BomPricingPanel.tsx:112 #~ msgid "Minimum Total Price" #~ msgstr "Minimum Total Price" +#: src/pages/part/pricing/BomPricingPanel.tsx:115 +#: src/pages/part/pricing/VariantPricingPanel.tsx:37 +#: src/pages/part/pricing/VariantPricingPanel.tsx:97 +msgid "Minimum Price" +msgstr "" + +#: src/pages/part/pricing/BomPricingPanel.tsx:116 +#: src/pages/part/pricing/VariantPricingPanel.tsx:45 +#: src/pages/part/pricing/VariantPricingPanel.tsx:98 +msgid "Maximum Price" +msgstr "" + #: src/pages/part/pricing/BomPricingPanel.tsx:117 #~ msgid "Maximum Total Price" #~ msgstr "Maximum Total Price" -#: src/pages/part/pricing/BomPricingPanel.tsx:129 -#: src/pages/part/pricing/PriceBreakPanel.tsx:172 -#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:67 -#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:128 -#: src/pages/part/pricing/SupplierPricingPanel.tsx:62 +#: src/pages/part/pricing/BomPricingPanel.tsx:168 +#: src/pages/part/pricing/PriceBreakPanel.tsx:173 +#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:70 +#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:125 +#: src/pages/part/pricing/SupplierPricingPanel.tsx:66 +#: src/pages/stock/StockDetail.tsx:291 #: src/tables/bom/BomTable.tsx:176 #: src/tables/general/ExtraLineItemTable.tsx:56 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:223 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:225 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:92 +#: src/tables/stock/StockItemTable.tsx:239 msgid "Unit Price" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:154 +#: src/pages/part/pricing/BomPricingPanel.tsx:193 #: src/pages/part/pricing/VariantPricingPanel.tsx:53 -#: src/tables/purchasing/SupplierPartTable.tsx:148 +#: src/tables/purchasing/SupplierPartTable.tsx:150 msgid "Updated" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:219 +#: src/pages/part/pricing/BomPricingPanel.tsx:258 msgid "Pie Chart" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:220 +#: src/pages/part/pricing/BomPricingPanel.tsx:259 msgid "Bar Chart" msgstr "" #: src/pages/part/pricing/PriceBreakPanel.tsx:58 -#: src/pages/part/pricing/PriceBreakPanel.tsx:110 +#: src/pages/part/pricing/PriceBreakPanel.tsx:111 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:142 -#: src/tables/purchasing/SupplierPriceBreakTable.tsx:168 +#: src/tables/purchasing/SupplierPriceBreakTable.tsx:169 msgid "Add Price Break" msgstr "" @@ -4986,46 +5846,70 @@ msgstr "" msgid "Price Break" msgstr "" -#: src/pages/part/pricing/PriceBreakPanel.tsx:170 +#: src/pages/part/pricing/PriceBreakPanel.tsx:171 msgid "Price" msgstr "" -#: src/pages/part/pricing/PricingOverviewPanel.tsx:51 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:68 +msgid "Refreshing pricing data" +msgstr "" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:88 +msgid "Pricing data updated" +msgstr "" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:95 +msgid "Failed to update pricing data" +msgstr "" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:104 +msgid "Edit Pricing" +msgstr "" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:125 msgid "Pricing Category" msgstr "" -#: src/pages/part/pricing/PricingOverviewPanel.tsx:70 -msgid "Minimum" -msgstr "" - -#: src/pages/part/pricing/PricingOverviewPanel.tsx:82 -msgid "Maximum" -msgstr "" - -#: src/pages/part/pricing/PricingOverviewPanel.tsx:114 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:188 msgid "Purchase Pricing" msgstr "" -#: src/pages/part/pricing/PricingOverviewPanel.tsx:149 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:223 msgid "Override Pricing" msgstr "" -#: src/pages/part/pricing/PricingOverviewPanel.tsx:156 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:230 msgid "Overall Pricing" msgstr "" -#: src/pages/part/pricing/PricingOverviewPanel.tsx:175 -#: src/pages/stock/StockDetail.tsx:129 -#: src/tables/stock/StockItemTable.tsx:240 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:249 +#: src/pages/stock/StockDetail.tsx:145 +#: src/tables/stock/StockItemTable.tsx:275 msgid "Last Updated" msgstr "" -#: src/pages/part/pricing/PricingOverviewPanel.tsx:192 -msgid "Minimum Value" +#: src/pages/part/pricing/PricingOverviewPanel.tsx:253 +msgid "Pricing Not Set" msgstr "" -#: src/pages/part/pricing/PricingOverviewPanel.tsx:193 -msgid "Maximum Value" +#: src/pages/part/pricing/PricingOverviewPanel.tsx:254 +msgid "Pricing data has not been calculated for this part" +msgstr "" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:258 +msgid "Pricing Actions" +msgstr "" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:261 +msgid "Refresh" +msgstr "" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:262 +msgid "Refresh pricing data" +msgstr "" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:277 +msgid "Edit pricing data" msgstr "" #: src/pages/part/pricing/PricingPanel.tsx:24 @@ -5044,28 +5928,20 @@ msgstr "" msgid "Loading pricing data" msgstr "" -#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:40 -#: src/pages/part/pricing/SaleHistoryPanel.tsx:36 -#: src/tables/ColumnRenderers.tsx:201 -#: src/tables/build/BuildOrderTestTable.tsx:150 -#: src/tables/plugin/PluginListTable.tsx:139 -msgid "Date" -msgstr "" - #: src/pages/part/pricing/PurchaseHistoryPanel.tsx:47 msgid "Purchase Price" msgstr "" -#: src/pages/part/pricing/SaleHistoryPanel.tsx:22 -msgid "Sale Order" -msgstr "" +#: src/pages/part/pricing/SaleHistoryPanel.tsx:24 +#~ msgid "Sale Order" +#~ msgstr "Sale Order" -#: src/pages/part/pricing/SaleHistoryPanel.tsx:42 -#: src/pages/part/pricing/SaleHistoryPanel.tsx:92 +#: src/pages/part/pricing/SaleHistoryPanel.tsx:44 +#: src/pages/part/pricing/SaleHistoryPanel.tsx:87 msgid "Sale Price" msgstr "" -#: src/pages/part/pricing/SupplierPricingPanel.tsx:65 +#: src/pages/part/pricing/SupplierPricingPanel.tsx:69 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:83 msgid "Supplier Price" msgstr "" @@ -5075,23 +5951,23 @@ msgstr "" msgid "Variant Part" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:93 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:87 msgid "Edit Purchase Order" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:102 -#: src/tables/purchasing/PurchaseOrderTable.tsx:128 -#: src/tables/purchasing/PurchaseOrderTable.tsx:140 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:96 +#: src/tables/purchasing/PurchaseOrderTable.tsx:129 +#: src/tables/purchasing/PurchaseOrderTable.tsx:142 msgid "Add Purchase Order" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:127 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:121 msgid "Supplier Reference" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:158 -#: src/pages/sales/ReturnOrderDetail.tsx:137 -#: src/pages/sales/SalesOrderDetail.tsx:137 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:152 +#: src/pages/sales/ReturnOrderDetail.tsx:129 +#: src/pages/sales/SalesOrderDetail.tsx:132 msgid "Completed Line Items" msgstr "" @@ -5101,91 +5977,112 @@ msgstr "" #~ msgid "Order Currency," #~ msgstr "Order Currency," -#: src/pages/purchasing/PurchaseOrderDetail.tsx:165 -#: src/pages/sales/ReturnOrderDetail.tsx:144 -#: src/pages/sales/SalesOrderDetail.tsx:153 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:161 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:231 +msgid "Destination" +msgstr "" + +#: src/pages/purchasing/PurchaseOrderDetail.tsx:167 +#: src/pages/sales/ReturnOrderDetail.tsx:136 +#: src/pages/sales/SalesOrderDetail.tsx:148 msgid "Order Currency" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:172 -#: src/pages/sales/ReturnOrderDetail.tsx:151 -#: src/pages/sales/SalesOrderDetail.tsx:160 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:173 +#: src/pages/sales/ReturnOrderDetail.tsx:143 +#: src/pages/sales/SalesOrderDetail.tsx:155 msgid "Total Cost" msgstr "" #: src/pages/purchasing/PurchaseOrderDetail.tsx:207 -#: src/pages/sales/ReturnOrderDetail.tsx:186 -#: src/pages/sales/SalesOrderDetail.tsx:195 -msgid "Created On" +#: src/pages/sales/ReturnOrderDetail.tsx:183 +#: src/pages/sales/SalesOrderDetail.tsx:191 +#~ msgid "Created On" +#~ msgstr "Created On" + +#: src/pages/purchasing/PurchaseOrderDetail.tsx:221 +#: src/pages/sales/ReturnOrderDetail.tsx:193 +#: src/pages/sales/SalesOrderDetail.tsx:204 +msgid "Issue Date" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:252 -#: src/pages/sales/ReturnOrderDetail.tsx:231 -#: src/pages/sales/SalesOrderDetail.tsx:266 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:237 +#: src/pages/sales/ReturnOrderDetail.tsx:209 +#: src/pages/sales/SalesOrderDetail.tsx:219 +#: src/tables/build/BuildOrderTable.tsx:98 +#: src/tables/part/PartPurchaseOrdersTable.tsx:105 +#: src/tables/sales/ReturnOrderTable.tsx:122 +msgid "Completion Date" +msgstr "" + +#: src/pages/purchasing/PurchaseOrderDetail.tsx:276 +#: src/pages/sales/ReturnOrderDetail.tsx:248 +#: src/pages/sales/SalesOrderDetail.tsx:288 msgid "Order Details" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:280 -#: src/pages/sales/ReturnOrderDetail.tsx:258 -#: src/pages/sales/SalesOrderDetail.tsx:297 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:304 +#: src/pages/sales/ReturnOrderDetail.tsx:276 +#: src/pages/sales/SalesOrderDetail.tsx:319 msgid "Extra Line Items" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:337 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:346 msgid "Issue Purchase Order" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:345 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:354 msgid "Cancel Purchase Order" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:353 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:362 msgid "Hold Purchase Order" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:361 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:370 msgid "Complete Purchase Order" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:427 -#: src/pages/sales/ReturnOrderDetail.tsx:428 -#: src/pages/sales/SalesOrderDetail.tsx:468 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:425 +#: src/pages/sales/ReturnOrderDetail.tsx:424 +#: src/pages/sales/SalesOrderDetail.tsx:464 msgid "Order Actions" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:101 -#: src/pages/sales/SalesOrderDetail.tsx:107 -#: src/tables/sales/SalesOrderTable.tsx:124 +#: src/pages/sales/ReturnOrderDetail.tsx:92 +#: src/pages/sales/SalesOrderDetail.tsx:101 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:109 +#: src/tables/sales/SalesOrderTable.tsx:137 msgid "Customer Reference" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:315 +#: src/pages/sales/ReturnOrderDetail.tsx:322 msgid "Edit Return Order" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:324 -#: src/tables/sales/ReturnOrderTable.tsx:119 -#: src/tables/sales/ReturnOrderTable.tsx:128 +#: src/pages/sales/ReturnOrderDetail.tsx:331 +#: src/tables/sales/ReturnOrderTable.tsx:142 +#: src/tables/sales/ReturnOrderTable.tsx:152 msgid "Add Return Order" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:336 +#: src/pages/sales/ReturnOrderDetail.tsx:343 msgid "Issue Return Order" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:344 +#: src/pages/sales/ReturnOrderDetail.tsx:349 +#~ msgid "Order canceled" +#~ msgstr "Order canceled" + +#: src/pages/sales/ReturnOrderDetail.tsx:351 msgid "Cancel Return Order" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:347 -msgid "Order canceled" -msgstr "" - -#: src/pages/sales/ReturnOrderDetail.tsx:352 +#: src/pages/sales/ReturnOrderDetail.tsx:359 msgid "Hold Return Order" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:360 +#: src/pages/sales/ReturnOrderDetail.tsx:367 msgid "Complete Return Order" msgstr "" @@ -5193,117 +6090,193 @@ msgstr "" msgid "Customers" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:145 +#: src/pages/sales/SalesOrderDetail.tsx:140 msgid "Completed Shipments" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:243 -msgid "Edit Sales Order" -msgstr "" - -#: src/pages/sales/SalesOrderDetail.tsx:252 -#: src/tables/sales/SalesOrderTable.tsx:84 -#: src/tables/sales/SalesOrderTable.tsx:96 -msgid "Add Sales Order" -msgstr "" - #: src/pages/sales/SalesOrderDetail.tsx:256 #~ msgid "Pending Shipments" #~ msgstr "Pending Shipments" -#: src/pages/sales/SalesOrderDetail.tsx:313 +#: src/pages/sales/SalesOrderDetail.tsx:261 +msgid "Edit Sales Order" +msgstr "" + +#: src/pages/sales/SalesOrderDetail.tsx:274 +#: src/tables/sales/SalesOrderTable.tsx:96 +#: src/tables/sales/SalesOrderTable.tsx:109 +msgid "Add Sales Order" +msgstr "" + +#: src/pages/sales/SalesOrderDetail.tsx:335 msgid "Shipments" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:369 +#: src/pages/sales/SalesOrderDetail.tsx:376 msgid "Issue Sales Order" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:377 +#: src/pages/sales/SalesOrderDetail.tsx:384 msgid "Cancel Sales Order" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:385 +#: src/pages/sales/SalesOrderDetail.tsx:392 msgid "Hold Sales Order" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:393 +#: src/pages/sales/SalesOrderDetail.tsx:400 msgid "Complete Sales Order" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:432 +#: src/pages/sales/SalesOrderDetail.tsx:439 msgid "Ship Order" msgstr "" -#: src/pages/stock/LocationDetail.tsx:117 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:117 +#: src/tables/sales/SalesOrderShipmentTable.tsx:96 +msgid "Shipment Reference" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:124 +msgid "Allocated Items" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:133 +msgid "Tracking Number" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:141 +msgid "Invoice Number" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:149 +#: src/tables/ColumnRenderers.tsx:242 +#: src/tables/sales/SalesOrderAllocationTable.tsx:142 +#: src/tables/sales/SalesOrderShipmentTable.tsx:115 +msgid "Shipment Date" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:157 +#: src/tables/sales/SalesOrderShipmentTable.tsx:119 +msgid "Delivery Date" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:204 +msgid "Shipment Details" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:210 +msgid "Assigned Items" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:241 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:317 +#: src/tables/sales/SalesOrderShipmentTable.tsx:75 +msgid "Edit Shipment" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:248 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:322 +#: src/tables/sales/SalesOrderShipmentTable.tsx:67 +msgid "Cancel Shipment" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:261 +#: src/tables/sales/SalesOrderShipmentTable.tsx:83 +#: src/tables/sales/SalesOrderShipmentTable.tsx:151 +msgid "Complete Shipment" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:276 +#: src/tables/part/PartPurchaseOrdersTable.tsx:121 +msgid "Pending" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:277 +#: src/tables/sales/SalesOrderAllocationTable.tsx:148 +#: src/tables/sales/SalesOrderShipmentTable.tsx:108 +#: src/tables/sales/SalesOrderShipmentTable.tsx:197 +msgid "Shipped" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:279 +#: src/tables/sales/SalesOrderShipmentTable.tsx:202 +msgid "Delivered" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:293 +msgid "Send Shipment" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:312 +msgid "Shipment Actions" +msgstr "" + +#: src/pages/stock/LocationDetail.tsx:111 msgid "Parent Location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:135 +#: src/pages/stock/LocationDetail.tsx:129 msgid "Sublocations" msgstr "" -#: src/pages/stock/LocationDetail.tsx:147 +#: src/pages/stock/LocationDetail.tsx:141 #: src/tables/stock/StockLocationTable.tsx:54 msgid "External" msgstr "" -#: src/pages/stock/LocationDetail.tsx:153 +#: src/pages/stock/LocationDetail.tsx:147 #: src/tables/stock/StockLocationTable.tsx:63 msgid "Location Type" msgstr "" -#: src/pages/stock/LocationDetail.tsx:164 +#: src/pages/stock/LocationDetail.tsx:158 msgid "Top level stock location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:175 +#: src/pages/stock/LocationDetail.tsx:169 msgid "Location Details" msgstr "" -#: src/pages/stock/LocationDetail.tsx:201 +#: src/pages/stock/LocationDetail.tsx:195 msgid "Default Parts" msgstr "" -#: src/pages/stock/LocationDetail.tsx:220 -#: src/pages/stock/LocationDetail.tsx:351 +#: src/pages/stock/LocationDetail.tsx:214 +#: src/pages/stock/LocationDetail.tsx:336 #: src/tables/stock/StockLocationTable.tsx:123 msgid "Edit Stock Location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:241 -#: src/pages/stock/LocationDetail.tsx:356 +#: src/pages/stock/LocationDetail.tsx:235 +#: src/pages/stock/LocationDetail.tsx:341 msgid "Delete Stock Location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:244 +#: src/pages/stock/LocationDetail.tsx:238 msgid "Items Action" msgstr "" -#: src/pages/stock/LocationDetail.tsx:245 +#: src/pages/stock/LocationDetail.tsx:239 msgid "Action for stock items in this location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:250 +#: src/pages/stock/LocationDetail.tsx:244 msgid "Child Locations Action" msgstr "" -#: src/pages/stock/LocationDetail.tsx:251 +#: src/pages/stock/LocationDetail.tsx:245 msgid "Action for child locations in this location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:346 +#: src/pages/stock/LocationDetail.tsx:332 msgid "Location Actions" msgstr "" -#: src/pages/stock/StockDetail.tsx:108 +#: src/pages/stock/StockDetail.tsx:116 msgid "Base Part" msgstr "" -#: src/pages/stock/StockDetail.tsx:115 -msgid "Stock Status" -msgstr "" - #: src/pages/stock/StockDetail.tsx:155 #~ msgid "Link custom barcode to stock item" #~ msgstr "Link custom barcode to stock item" @@ -5312,113 +6285,179 @@ msgstr "" #~ msgid "Unlink custom barcode from stock item" #~ msgstr "Unlink custom barcode from stock item" -#: src/pages/stock/StockDetail.tsx:188 -msgid "Installed In" -msgstr "" - -#: src/pages/stock/StockDetail.tsx:204 -msgid "Consumed By" +#: src/pages/stock/StockDetail.tsx:178 +msgid "Allocated to Orders" msgstr "" #: src/pages/stock/StockDetail.tsx:205 #~ msgid "Edit stock item" #~ msgstr "Edit stock item" -#: src/pages/stock/StockDetail.tsx:213 -#: src/tables/build/BuildAllocatedStockTable.tsx:64 -#: src/tables/stock/StockTrackingTable.tsx:96 -msgid "Build Order" +#: src/pages/stock/StockDetail.tsx:209 +msgid "Installed In" msgstr "" #: src/pages/stock/StockDetail.tsx:217 #~ msgid "Delete stock item" #~ msgstr "Delete stock item" -#: src/pages/stock/StockDetail.tsx:291 +#: src/pages/stock/StockDetail.tsx:226 +msgid "Parent Item" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:230 +msgid "Parent stock item" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:236 +msgid "Consumed By" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:245 +#: src/tables/build/BuildAllocatedStockTable.tsx:77 +#: src/tables/stock/StockTrackingTable.tsx:100 +msgid "Build Order" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:283 +#: src/tables/stock/StockItemTable.tsx:270 +msgid "Expiry Date" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:414 msgid "Stock Details" msgstr "" -#: src/pages/stock/StockDetail.tsx:297 +#: src/pages/stock/StockDetail.tsx:420 msgid "Stock Tracking" msgstr "" -#: src/pages/stock/StockDetail.tsx:350 -msgid "Test Data" -msgstr "" - -#: src/pages/stock/StockDetail.tsx:364 -msgid "Installed Items" -msgstr "" - -#: src/pages/stock/StockDetail.tsx:371 -msgid "Child Items" -msgstr "" - -#: src/pages/stock/StockDetail.tsx:425 -msgid "Edit Stock Item" -msgstr "" - #: src/pages/stock/StockDetail.tsx:433 #~ msgid "Duplicate stock item" #~ msgstr "Duplicate stock item" -#: src/pages/stock/StockDetail.tsx:452 +#: src/pages/stock/StockDetail.tsx:475 +msgid "Test Data" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:489 +msgid "Installed Items" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:496 +msgid "Child Items" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:545 +msgid "Edit Stock Item" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:572 msgid "Delete Stock Item" msgstr "" -#: src/pages/stock/StockDetail.tsx:504 +#: src/pages/stock/StockDetail.tsx:604 +msgid "Serialize Stock Item" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:617 +msgid "Stock item serialized" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:623 +msgid "Return Stock Item" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:626 +msgid "Return this item into stock. This will remove the customer assignment." +msgstr "" + +#: src/pages/stock/StockDetail.tsx:636 +msgid "Item returned to stock" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:666 msgid "Stock Operations" msgstr "" -#: src/pages/stock/StockDetail.tsx:509 +#: src/pages/stock/StockDetail.tsx:671 msgid "Count stock" msgstr "" -#: src/pages/stock/StockDetail.tsx:519 -#: src/tables/stock/StockItemTable.tsx:449 -msgid "Add stock" +#: src/pages/stock/StockDetail.tsx:671 +#: src/tables/stock/StockItemTable.tsx:452 +#~ msgid "Add stock" +#~ msgstr "Add stock" + +#: src/pages/stock/StockDetail.tsx:680 +#: src/tables/stock/StockItemTable.tsx:461 +#~ msgid "Remove stock" +#~ msgstr "Remove stock" + +#: src/pages/stock/StockDetail.tsx:698 +#: src/tables/stock/StockItemTable.tsx:481 +#~ msgid "Transfer stock" +#~ msgstr "Transfer stock" + +#: src/pages/stock/StockDetail.tsx:699 +msgid "Serialize" msgstr "" -#: src/pages/stock/StockDetail.tsx:527 -#: src/tables/stock/StockItemTable.tsx:458 -msgid "Remove stock" +#: src/pages/stock/StockDetail.tsx:700 +msgid "Serialize stock" msgstr "" -#: src/pages/stock/StockDetail.tsx:534 +#: src/pages/stock/StockDetail.tsx:711 msgid "Transfer" msgstr "" -#: src/pages/stock/StockDetail.tsx:535 -#: src/tables/stock/StockItemTable.tsx:478 -msgid "Transfer stock" +#: src/pages/stock/StockDetail.tsx:722 +msgid "Return" msgstr "" -#: src/pages/stock/StockDetail.tsx:546 +#: src/pages/stock/StockDetail.tsx:723 +msgid "Return from customer" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:738 msgid "Stock Item Actions" msgstr "" -#: src/tables/ColumnRenderers.tsx:30 +#: src/pages/stock/StockDetail.tsx:808 +msgid "Stale" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:814 +msgid "Expired" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:820 +msgid "Unavailable" +msgstr "" + +#: src/tables/ColumnRenderers.tsx:36 msgid "Part is not active" msgstr "Το εξάρτημα είναι ανενεργό" -#: src/tables/ColumnRenderers.tsx:35 -msgid "Part is locked" +#: src/tables/ColumnRenderers.tsx:41 +#: src/tables/bom/BomTable.tsx:542 +#: src/tables/part/PartParameterTable.tsx:193 +#: src/tables/part/PartTestTemplateTable.tsx:253 +msgid "Part is Locked" msgstr "" -#: src/tables/ColumnRenderers.tsx:57 +#: src/tables/ColumnRenderers.tsx:41 +#~ msgid "Part is locked" +#~ msgstr "Part is locked" + +#: src/tables/ColumnRenderers.tsx:46 +msgid "You are subscribed to notifications for this part" +msgstr "" + +#: src/tables/ColumnRenderers.tsx:68 msgid "No location set" msgstr "" -#: src/tables/ColumnRenderers.tsx:228 -#: src/tables/sales/SalesOrderShipmentTable.tsx:79 -msgid "Shipment Date" -msgstr "" - -#: src/tables/ColumnRenderers.tsx:248 -#: src/tables/settings/CurrencyTable.tsx:23 -msgid "Currency" -msgstr "" - #: src/tables/ColumnSelect.tsx:16 #: src/tables/ColumnSelect.tsx:23 msgid "Select Columns" @@ -5452,91 +6491,116 @@ msgstr "" msgid "Download Data" msgstr "" -#: src/tables/Filter.tsx:89 -#: src/tables/build/BuildOrderTable.tsx:135 +#: src/tables/Filter.tsx:101 msgid "Assigned to me" msgstr "" -#: src/tables/Filter.tsx:90 -#: src/tables/build/BuildOrderTable.tsx:136 +#: src/tables/Filter.tsx:102 msgid "Show orders assigned to me" msgstr "" -#: src/tables/Filter.tsx:97 +#: src/tables/Filter.tsx:106 +#~ msgid "Show overdue orders" +#~ msgstr "Show overdue orders" + +#: src/tables/Filter.tsx:109 +#: src/tables/build/BuildOrderTable.tsx:120 +#: src/tables/sales/SalesOrderAllocationTable.tsx:59 msgid "Outstanding" msgstr "" -#: src/tables/Filter.tsx:98 -msgid "Show outstanding orders" +#: src/tables/Filter.tsx:110 +msgid "Show outstanding items" msgstr "" -#: src/tables/Filter.tsx:105 -#: src/tables/build/BuildOrderTable.tsx:128 +#: src/tables/Filter.tsx:117 msgid "Overdue" msgstr "" -#: src/tables/Filter.tsx:106 -msgid "Show overdue orders" +#: src/tables/Filter.tsx:118 +msgid "Show overdue items" msgstr "" -#: src/tables/FilterSelectDrawer.tsx:51 +#: src/tables/Filter.tsx:125 +msgid "Minimum Date" +msgstr "" + +#: src/tables/Filter.tsx:126 +msgid "Show items after this date" +msgstr "" + +#: src/tables/Filter.tsx:134 +msgid "Maximum Date" +msgstr "" + +#: src/tables/Filter.tsx:135 +msgid "Show items before this date" +msgstr "" + +#: src/tables/Filter.tsx:144 +msgid "Has Project Code" +msgstr "" + +#: src/tables/Filter.tsx:145 +msgid "Show orders with an assigned project code" +msgstr "" + +#: src/tables/FilterSelectDrawer.tsx:55 msgid "Remove filter" msgstr "" -#: src/tables/FilterSelectDrawer.tsx:130 +#: src/tables/FilterSelectDrawer.tsx:159 msgid "Select filter" msgstr "" -#: src/tables/FilterSelectDrawer.tsx:131 +#: src/tables/FilterSelectDrawer.tsx:160 msgid "Filter" msgstr "" -#: src/tables/FilterSelectDrawer.tsx:138 -#: src/tables/build/BuildOrderTestTable.tsx:134 -#: src/tables/purchasing/ManufacturerPartParameterTable.tsx:38 -#: src/tables/stock/StockItemTestResultTable.tsx:186 -msgid "Value" +#: src/tables/FilterSelectDrawer.tsx:168 +msgid "Select date value" msgstr "" -#: src/tables/FilterSelectDrawer.tsx:140 +#: src/tables/FilterSelectDrawer.tsx:176 msgid "Select filter value" msgstr "" -#: src/tables/FilterSelectDrawer.tsx:183 +#: src/tables/FilterSelectDrawer.tsx:219 +#: src/tables/InvenTreeTableHeader.tsx:214 msgid "Table Filters" msgstr "" -#: src/tables/FilterSelectDrawer.tsx:215 +#: src/tables/FilterSelectDrawer.tsx:251 msgid "Add Filter" msgstr "" -#: src/tables/FilterSelectDrawer.tsx:224 +#: src/tables/FilterSelectDrawer.tsx:260 msgid "Clear Filters" msgstr "" -#: src/tables/InvenTreeTable.tsx:123 -#: src/tables/InvenTreeTable.tsx:431 -#: src/tables/InvenTreeTable.tsx:455 +#: src/tables/InvenTreeTable.tsx:96 +#: src/tables/InvenTreeTable.tsx:417 +#: src/tables/InvenTreeTable.tsx:441 msgid "No records found" msgstr "" -#: src/tables/InvenTreeTable.tsx:466 +#: src/tables/InvenTreeTable.tsx:452 msgid "Server returned incorrect data type" msgstr "" -#: src/tables/InvenTreeTable.tsx:474 +#: src/tables/InvenTreeTable.tsx:460 msgid "Bad request" msgstr "" -#: src/tables/InvenTreeTable.tsx:477 +#: src/tables/InvenTreeTable.tsx:463 msgid "Unauthorized" msgstr "" -#: src/tables/InvenTreeTable.tsx:480 +#: src/tables/InvenTreeTable.tsx:466 msgid "Forbidden" msgstr "" -#: src/tables/InvenTreeTable.tsx:483 +#: src/tables/InvenTreeTable.tsx:469 msgid "Not found" msgstr "" @@ -5544,18 +6608,6 @@ msgstr "" #~ msgid "Are you sure you want to delete the selected records?" #~ msgstr "Are you sure you want to delete the selected records?" -#: src/tables/InvenTreeTable.tsx:525 -msgid "Delete Selected Items" -msgstr "" - -#: src/tables/InvenTreeTable.tsx:529 -msgid "Are you sure you want to delete the selected items?" -msgstr "" - -#: src/tables/InvenTreeTable.tsx:531 -msgid "This action cannot be undone!" -msgstr "" - #: src/tables/InvenTreeTable.tsx:535 #~ msgid "Deleted records" #~ msgstr "Deleted records" @@ -5568,31 +6620,56 @@ msgstr "" #~ msgid "Failed to delete records" #~ msgstr "Failed to delete records" +#: src/tables/InvenTreeTable.tsx:552 +#~ msgid "This action cannot be undone!" +#~ msgstr "This action cannot be undone!" + #: src/tables/InvenTreeTable.tsx:594 #: src/tables/InvenTreeTable.tsx:595 #~ msgid "Print actions" #~ msgstr "Print actions" -#: src/tables/InvenTreeTable.tsx:618 -#: src/tables/InvenTreeTable.tsx:619 -msgid "Barcode actions" +#: src/tables/InvenTreeTable.tsx:655 +#: src/tables/InvenTreeTable.tsx:656 +#~ msgid "Barcode actions" +#~ msgstr "Barcode actions" + +#: src/tables/InvenTreeTable.tsx:712 +#~ msgid "Table filters" +#~ msgstr "Table filters" + +#: src/tables/InvenTreeTable.tsx:725 +#~ msgid "Clear custom query filters" +#~ msgstr "Clear custom query filters" + +#: src/tables/InvenTreeTableHeader.tsx:98 +msgid "Delete Selected Items" msgstr "" -#: src/tables/InvenTreeTable.tsx:628 +#: src/tables/InvenTreeTableHeader.tsx:102 +msgid "Are you sure you want to delete the selected items?" +msgstr "" + +#: src/tables/InvenTreeTableHeader.tsx:104 +#: src/tables/plugin/PluginListTable.tsx:305 +msgid "This action cannot be undone" +msgstr "" + +#: src/tables/InvenTreeTableHeader.tsx:142 +msgid "Custom table filters are active" +msgstr "" + +#: src/tables/InvenTreeTableHeader.tsx:169 msgid "Delete selected records" msgstr "" -#: src/tables/InvenTreeTable.tsx:649 +#: src/tables/InvenTreeTableHeader.tsx:188 msgid "Refresh data" msgstr "" -#: src/tables/InvenTreeTable.tsx:675 -msgid "Table filters" -msgstr "" - #: src/tables/TableHoverCard.tsx:35 -msgid "item-{idx}" -msgstr "" +#~ msgid "item-{idx}" +#~ msgstr "item-{idx}" #: src/tables/UploadAction.tsx:7 #~ msgid "Upload Data" @@ -5607,31 +6684,36 @@ msgid "Part Information" msgstr "" #: src/tables/bom/BomTable.tsx:212 -#: src/tables/build/BuildLineTable.tsx:126 +#: src/tables/build/BuildLineTable.tsx:257 #: src/tables/part/PartTable.tsx:125 msgid "External stock" msgstr "" #: src/tables/bom/BomTable.tsx:220 -#: src/tables/build/BuildLineTable.tsx:89 +#: src/tables/build/BuildLineTable.tsx:220 msgid "Includes substitute stock" msgstr "" #: src/tables/bom/BomTable.tsx:229 -#: src/tables/build/BuildLineTable.tsx:99 -#: src/tables/sales/SalesOrderLineItemTable.tsx:127 +#: src/tables/build/BuildLineTable.tsx:230 +#: src/tables/sales/SalesOrderLineItemTable.tsx:135 msgid "Includes variant stock" msgstr "" +#: src/tables/bom/BomTable.tsx:245 +#: src/tables/part/PartTable.tsx:92 +msgid "Building" +msgstr "" + #: src/tables/bom/BomTable.tsx:254 #: src/tables/part/PartTable.tsx:153 -#: src/tables/sales/SalesOrderLineItemTable.tsx:150 -#: src/tables/stock/StockItemTable.tsx:216 +#: src/tables/sales/SalesOrderLineItemTable.tsx:158 +#: src/tables/stock/StockItemTable.tsx:206 msgid "Stock Information" msgstr "" #: src/tables/bom/BomTable.tsx:285 -#: src/tables/build/BuildLineTable.tsx:248 +#: src/tables/build/BuildLineTable.tsx:409 msgid "Consumable item" msgstr "" @@ -5644,7 +6726,7 @@ msgstr "" #~ msgstr "Create BOM Item" #: src/tables/bom/BomTable.tsx:306 -#: src/tables/build/BuildLineTable.tsx:69 +#: src/tables/build/BuildLineTable.tsx:200 msgid "Show testable items" msgstr "" @@ -5657,11 +6739,12 @@ msgid "Show trackable items" msgstr "" #: src/tables/bom/BomTable.tsx:316 -#: src/tables/build/BuildLineTable.tsx:64 +#: src/tables/build/BuildLineTable.tsx:195 msgid "Show assembled items" msgstr "" #: src/tables/bom/BomTable.tsx:321 +#: src/tables/build/BuildLineTable.tsx:180 msgid "Show items with available stock" msgstr "" @@ -5705,7 +6788,7 @@ msgstr "" #: src/tables/bom/BomTable.tsx:345 #: src/tables/bom/UsedInTable.tsx:79 -#: src/tables/build/BuildLineTable.tsx:58 +#: src/tables/build/BuildLineTable.tsx:189 msgid "Optional" msgstr "" @@ -5723,7 +6806,7 @@ msgstr "" #~ msgstr "Bom item deleted" #: src/tables/bom/BomTable.tsx:350 -#: src/tables/build/BuildLineTable.tsx:53 +#: src/tables/build/BuildLineTable.tsx:184 msgid "Consumable" msgstr "" @@ -5749,12 +6832,12 @@ msgid "Show items with pricing" msgstr "" #: src/tables/bom/BomTable.tsx:378 -#: src/tables/bom/BomTable.tsx:511 +#: src/tables/bom/BomTable.tsx:512 msgid "Import BOM Data" msgstr "" #: src/tables/bom/BomTable.tsx:388 -#: src/tables/bom/BomTable.tsx:523 +#: src/tables/bom/BomTable.tsx:526 msgid "Add BOM Item" msgstr "" @@ -5780,7 +6863,7 @@ msgstr "" #: src/tables/bom/BomTable.tsx:423 #: src/tables/bom/BomTable.tsx:426 -#: src/tables/bom/BomTable.tsx:517 +#: src/tables/bom/BomTable.tsx:519 msgid "Validate BOM" msgstr "" @@ -5812,21 +6895,15 @@ msgstr "" msgid "Edit Substitutes" msgstr "" -#: src/tables/bom/BomTable.tsx:539 -#: src/tables/part/PartParameterTable.tsx:193 -#: src/tables/part/PartTestTemplateTable.tsx:252 -msgid "Part is Locked" -msgstr "" - -#: src/tables/bom/BomTable.tsx:544 +#: src/tables/bom/BomTable.tsx:547 msgid "Bill of materials cannot be edited, as the part is locked" msgstr "" #: src/tables/bom/UsedInTable.tsx:33 -#: src/tables/build/BuildLineTable.tsx:63 +#: src/tables/build/BuildLineTable.tsx:194 #: src/tables/part/ParametricPartTable.tsx:233 #: src/tables/part/PartTable.tsx:190 -#: src/tables/stock/StockItemTable.tsx:300 +#: src/tables/stock/StockItemTable.tsx:304 msgid "Assembly" msgstr "" @@ -5844,285 +6921,347 @@ msgstr "" msgid "Show trackable assemblies" msgstr "" -#: src/tables/build/BuildAllocatedStockTable.tsx:54 +#: src/tables/build/BuildAllocatedStockTable.tsx:56 msgid "Allocated to Output" msgstr "" -#: src/tables/build/BuildAllocatedStockTable.tsx:55 +#: src/tables/build/BuildAllocatedStockTable.tsx:57 msgid "Show items allocated to a build output" msgstr "" -#: src/tables/build/BuildAllocatedStockTable.tsx:76 -#: src/tables/part/PartPurchaseOrdersTable.tsx:125 -#: src/tables/sales/SalesOrderAllocationTable.tsx:62 +#: src/tables/build/BuildAllocatedStockTable.tsx:65 +#: src/tables/build/BuildOrderTable.tsx:159 +#: src/tables/part/PartParameterTable.tsx:212 +#: src/tables/part/PartPurchaseOrdersTable.tsx:138 +#: src/tables/sales/ReturnOrderTable.tsx:84 +#: src/tables/sales/SalesOrderAllocationTable.tsx:68 +#: src/tables/sales/SalesOrderTable.tsx:84 +#: src/tables/stock/StockItemTable.tsx:339 +msgid "Include Variants" +msgstr "" + +#: src/tables/build/BuildAllocatedStockTable.tsx:66 +#: src/tables/build/BuildOrderTable.tsx:160 +#: src/tables/part/PartPurchaseOrdersTable.tsx:139 +#: src/tables/sales/ReturnOrderTable.tsx:85 +#: src/tables/sales/SalesOrderAllocationTable.tsx:69 +#: src/tables/sales/SalesOrderTable.tsx:85 +msgid "Include orders for part variants" +msgstr "" + +#: src/tables/build/BuildAllocatedStockTable.tsx:89 +#: src/tables/part/PartPurchaseOrdersTable.tsx:131 +#: src/tables/sales/SalesOrderAllocationTable.tsx:93 msgid "Order Status" msgstr "" -#: src/tables/build/BuildAllocatedStockTable.tsx:96 -#: src/tables/sales/SalesOrderAllocationTable.tsx:75 +#: src/tables/build/BuildAllocatedStockTable.tsx:117 +#: src/tables/sales/SalesOrderAllocationTable.tsx:126 msgid "Allocated Quantity" msgstr "" -#: src/tables/build/BuildAllocatedStockTable.tsx:116 -#: src/tables/sales/SalesOrderAllocationTable.tsx:94 +#: src/tables/build/BuildAllocatedStockTable.tsx:137 +#: src/tables/sales/SalesOrderAllocationTable.tsx:120 msgid "Available Quantity" msgstr "" -#: src/tables/build/BuildAllocatedStockTable.tsx:126 -#: src/tables/build/BuildOrderTestTable.tsx:176 -#: src/tables/build/BuildOrderTestTable.tsx:200 -#: src/tables/build/BuildOutputTable.tsx:312 -msgid "Build Output" +#: src/tables/build/BuildAllocatedStockTable.tsx:164 +#: src/tables/build/BuildLineTable.tsx:513 +msgid "Edit Stock Allocation" msgstr "" -#: src/tables/build/BuildAllocatedStockTable.tsx:143 -msgid "Edit Build Item" -msgstr "" +#: src/tables/build/BuildAllocatedStockTable.tsx:164 +#~ msgid "Edit Build Item" +#~ msgstr "Edit Build Item" -#: src/tables/build/BuildAllocatedStockTable.tsx:153 -msgid "Delete Build Item" -msgstr "" +#: src/tables/build/BuildAllocatedStockTable.tsx:174 +#~ msgid "Delete Build Item" +#~ msgstr "Delete Build Item" -#: src/tables/build/BuildLineTable.tsx:43 -#: src/tables/stock/StockItemTable.tsx:305 -msgid "Allocated" -msgstr "" - -#: src/tables/build/BuildLineTable.tsx:44 -msgid "Show allocated lines" -msgstr "" - -#: src/tables/build/BuildLineTable.tsx:49 -msgid "Show lines with available stock" -msgstr "" - -#: src/tables/build/BuildLineTable.tsx:54 -msgid "Show consumable lines" +#: src/tables/build/BuildAllocatedStockTable.tsx:177 +#: src/tables/build/BuildLineTable.tsx:526 +msgid "Delete Stock Allocation" msgstr "" #: src/tables/build/BuildLineTable.tsx:59 +#~ msgid "Show lines with available stock" +#~ msgstr "Show lines with available stock" + +#: src/tables/build/BuildLineTable.tsx:175 +msgid "Show allocated lines" +msgstr "" + +#: src/tables/build/BuildLineTable.tsx:185 +msgid "Show consumable lines" +msgstr "" + +#: src/tables/build/BuildLineTable.tsx:190 msgid "Show optional lines" msgstr "" -#: src/tables/build/BuildLineTable.tsx:68 +#: src/tables/build/BuildLineTable.tsx:199 #: src/tables/part/PartTable.tsx:208 msgid "Testable" msgstr "" -#: src/tables/build/BuildLineTable.tsx:73 -#: src/tables/stock/StockItemTable.tsx:364 +#: src/tables/build/BuildLineTable.tsx:204 +#: src/tables/stock/StockItemTable.tsx:368 msgid "Tracked" msgstr "" -#: src/tables/build/BuildLineTable.tsx:74 +#: src/tables/build/BuildLineTable.tsx:205 msgid "Show tracked lines" msgstr "" -#: src/tables/build/BuildLineTable.tsx:108 -#: src/tables/sales/SalesOrderLineItemTable.tsx:133 +#: src/tables/build/BuildLineTable.tsx:239 +#: src/tables/sales/SalesOrderLineItemTable.tsx:141 msgid "In production" msgstr "" -#: src/tables/build/BuildLineTable.tsx:136 +#: src/tables/build/BuildLineTable.tsx:267 msgid "Insufficient stock" msgstr "" -#: src/tables/build/BuildLineTable.tsx:152 -#: src/tables/sales/SalesOrderLineItemTable.tsx:121 -#: src/tables/stock/StockItemTable.tsx:186 +#: src/tables/build/BuildLineTable.tsx:283 +#: src/tables/sales/SalesOrderLineItemTable.tsx:129 +#: src/tables/stock/StockItemTable.tsx:175 msgid "No stock available" msgstr "" -#: src/tables/build/BuildLineTable.tsx:201 +#: src/tables/build/BuildLineTable.tsx:355 msgid "Gets Inherited" msgstr "" -#: src/tables/build/BuildLineTable.tsx:210 +#: src/tables/build/BuildLineTable.tsx:366 msgid "Unit Quantity" msgstr "" -#: src/tables/build/BuildLineTable.tsx:267 -#: src/tables/sales/SalesOrderLineItemTable.tsx:230 +#: src/tables/build/BuildLineTable.tsx:381 +msgid "Required Quantity" +msgstr "" + +#: src/tables/build/BuildLineTable.tsx:432 +#: src/tables/sales/SalesOrderLineItemTable.tsx:254 msgid "Create Build Order" msgstr "" -#: src/tables/build/BuildLineTable.tsx:298 -msgid "Allocate Stock" +#: src/tables/build/BuildLineTable.tsx:460 +msgid "Auto allocation in progress" msgstr "" -#: src/tables/build/BuildLineTable.tsx:305 +#: src/tables/build/BuildLineTable.tsx:463 +#: src/tables/build/BuildLineTable.tsx:632 +msgid "Auto Allocate Stock" +msgstr "" + +#: src/tables/build/BuildLineTable.tsx:464 +msgid "Automatically allocate stock to this build according to the selected options" +msgstr "" + +#: src/tables/build/BuildLineTable.tsx:482 +#: src/tables/build/BuildLineTable.tsx:496 +#: src/tables/build/BuildLineTable.tsx:579 +#: src/tables/build/BuildLineTable.tsx:664 +#: src/tables/build/BuildOutputTable.tsx:314 +#: src/tables/build/BuildOutputTable.tsx:319 +msgid "Deallocate Stock" +msgstr "" + +#: src/tables/build/BuildLineTable.tsx:498 +msgid "Deallocate all untracked stock for this build order" +msgstr "" + +#: src/tables/build/BuildLineTable.tsx:500 +msgid "Deallocate stock from the selected line item" +msgstr "" + +#: src/tables/build/BuildLineTable.tsx:504 +msgid "Stock has been deallocated" +msgstr "" + +#: src/tables/build/BuildLineTable.tsx:589 msgid "Order Stock" msgstr "" -#: src/tables/build/BuildLineTable.tsx:312 +#: src/tables/build/BuildLineTable.tsx:596 msgid "Build Stock" msgstr "" -#: src/tables/build/BuildOrderTable.tsx:111 -msgid "Show active orders" +#: src/tables/build/BuildLineTable.tsx:610 +msgid "View Part" msgstr "" #: src/tables/build/BuildOrderTable.tsx:116 -msgid "Cascade" -msgstr "" +#~ msgid "Cascade" +#~ msgstr "Cascade" #: src/tables/build/BuildOrderTable.tsx:117 -msgid "Display recursive child orders" +#~ msgid "Display recursive child orders" +#~ msgstr "Display recursive child orders" + +#: src/tables/build/BuildOrderTable.tsx:121 +msgid "Show outstanding orders" msgstr "" -#: src/tables/build/BuildOrderTable.tsx:123 -#: src/tables/part/PartPurchaseOrdersTable.tsx:126 -#: src/tables/purchasing/PurchaseOrderTable.tsx:56 -#: src/tables/sales/ReturnOrderTable.tsx:47 -#: src/tables/sales/SalesOrderTable.tsx:54 +#: src/tables/build/BuildOrderTable.tsx:121 +#~ msgid "Show active orders" +#~ msgstr "Show active orders" + +#: src/tables/build/BuildOrderTable.tsx:122 +#~ msgid "Show overdue status" +#~ msgstr "Show overdue status" + +#: src/tables/build/BuildOrderTable.tsx:126 +#: src/tables/part/PartPurchaseOrdersTable.tsx:132 +#: src/tables/purchasing/PurchaseOrderTable.tsx:59 +#: src/tables/sales/ReturnOrderTable.tsx:57 +#: src/tables/sales/SalesOrderTable.tsx:57 msgid "Filter by order status" msgstr "" -#: src/tables/build/BuildOrderTable.tsx:130 -msgid "Show overdue status" -msgstr "" - -#: src/tables/build/BuildOrderTable.tsx:141 -#: src/tables/purchasing/PurchaseOrderTable.tsx:65 -#: src/tables/sales/ReturnOrderTable.tsx:56 -#: src/tables/sales/SalesOrderTable.tsx:63 +#: src/tables/build/BuildOrderTable.tsx:136 +#: src/tables/purchasing/PurchaseOrderTable.tsx:70 +#: src/tables/sales/ReturnOrderTable.tsx:68 +#: src/tables/sales/SalesOrderTable.tsx:68 msgid "Filter by project code" msgstr "" -#: src/tables/build/BuildOrderTable.tsx:146 -#: src/tables/purchasing/PurchaseOrderTable.tsx:70 -#: src/tables/sales/ReturnOrderTable.tsx:61 -#: src/tables/sales/SalesOrderTable.tsx:68 -msgid "Has Project Code" -msgstr "" - -#: src/tables/build/BuildOrderTable.tsx:147 +#: src/tables/build/BuildOrderTable.tsx:139 #: src/tables/purchasing/PurchaseOrderTable.tsx:71 #: src/tables/sales/ReturnOrderTable.tsx:62 #: src/tables/sales/SalesOrderTable.tsx:69 -msgid "Filter by whether the purchase order has a project code" -msgstr "" +#~ msgid "Filter by whether the purchase order has a project code" +#~ msgstr "Filter by whether the purchase order has a project code" -#: src/tables/build/BuildOrderTable.tsx:152 +#: src/tables/build/BuildOrderTable.tsx:143 msgid "Filter by user who issued this order" msgstr "" -#: src/tables/build/BuildOrderTable.tsx:158 -#: src/tables/purchasing/PurchaseOrderTable.tsx:76 -#: src/tables/sales/ReturnOrderTable.tsx:67 -#: src/tables/sales/SalesOrderTable.tsx:74 +#: src/tables/build/BuildOrderTable.tsx:149 +#: src/tables/purchasing/PurchaseOrderTable.tsx:77 +#: src/tables/sales/ReturnOrderTable.tsx:75 +#: src/tables/sales/SalesOrderTable.tsx:75 msgid "Filter by responsible owner" msgstr "" -#: src/tables/build/BuildOrderTestTable.tsx:75 -#: src/tables/build/BuildOrderTestTable.tsx:111 -#: src/tables/stock/StockItemTestResultTable.tsx:257 -#: src/tables/stock/StockItemTestResultTable.tsx:329 -#: src/tables/stock/StockItemTestResultTable.tsx:384 +#: src/tables/build/BuildOrderTestTable.tsx:76 +#: src/tables/build/BuildOrderTestTable.tsx:112 +#: src/tables/stock/StockItemTestResultTable.tsx:275 +#: src/tables/stock/StockItemTestResultTable.tsx:347 +#: src/tables/stock/StockItemTestResultTable.tsx:403 msgid "Add Test Result" msgstr "" -#: src/tables/build/BuildOrderTestTable.tsx:82 -#: src/tables/stock/StockItemTestResultTable.tsx:259 +#: src/tables/build/BuildOrderTestTable.tsx:83 +#: src/tables/stock/StockItemTestResultTable.tsx:277 msgid "Test result added" msgstr "" -#: src/tables/build/BuildOrderTestTable.tsx:110 -#: src/tables/stock/StockItemTestResultTable.tsx:174 +#: src/tables/build/BuildOrderTestTable.tsx:111 +#: src/tables/stock/StockItemTestResultTable.tsx:180 msgid "No Result" msgstr "" -#: src/tables/build/BuildOrderTestTable.tsx:220 +#: src/tables/build/BuildOrderTestTable.tsx:221 msgid "Show build outputs currently in production" msgstr "" +#: src/tables/build/BuildOutputTable.tsx:76 +msgid "Build Output Stock Allocation" +msgstr "" + #: src/tables/build/BuildOutputTable.tsx:161 #~ msgid "Delete build output" #~ msgstr "Delete build output" -#: src/tables/build/BuildOutputTable.tsx:173 -#: src/tables/build/BuildOutputTable.tsx:211 +#: src/tables/build/BuildOutputTable.tsx:258 +#: src/tables/build/BuildOutputTable.tsx:374 msgid "Add Build Output" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:216 +#: src/tables/build/BuildOutputTable.tsx:304 +#~ msgid "Edit build output" +#~ msgstr "Edit build output" + +#: src/tables/build/BuildOutputTable.tsx:306 +#: src/tables/build/BuildOutputTable.tsx:417 +msgid "Edit Build Output" +msgstr "" + +#: src/tables/build/BuildOutputTable.tsx:321 +msgid "This action will deallocate all stock from the selected build output" +msgstr "" + +#: src/tables/build/BuildOutputTable.tsx:341 msgid "Complete selected outputs" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:226 +#: src/tables/build/BuildOutputTable.tsx:352 msgid "Scrap selected outputs" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:236 +#: src/tables/build/BuildOutputTable.tsx:363 msgid "Cancel selected outputs" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:252 +#: src/tables/build/BuildOutputTable.tsx:385 msgid "Allocate" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:253 +#: src/tables/build/BuildOutputTable.tsx:386 msgid "Allocate stock to build output" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:259 +#: src/tables/build/BuildOutputTable.tsx:396 msgid "Deallocate" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:260 +#: src/tables/build/BuildOutputTable.tsx:397 msgid "Deallocate stock from build output" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:267 +#: src/tables/build/BuildOutputTable.tsx:408 msgid "Complete build output" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:276 +#: src/tables/build/BuildOutputTable.tsx:424 msgid "Scrap" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:277 +#: src/tables/build/BuildOutputTable.tsx:425 msgid "Scrap build output" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:280 -#~ msgid "Allocated Items" -#~ msgstr "Allocated Items" - -#: src/tables/build/BuildOutputTable.tsx:287 +#: src/tables/build/BuildOutputTable.tsx:435 msgid "Cancel build output" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:325 -msgid "Batch" -msgstr "" - -#: src/tables/build/BuildOutputTable.tsx:340 +#: src/tables/build/BuildOutputTable.tsx:488 msgid "Allocated Lines" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:355 +#: src/tables/build/BuildOutputTable.tsx:503 msgid "Required Tests" msgstr "" -#: src/tables/company/AddressTable.tsx:121 -#: src/tables/company/AddressTable.tsx:185 +#: src/tables/company/AddressTable.tsx:118 +#: src/tables/company/AddressTable.tsx:183 msgid "Add Address" msgstr "" -#: src/tables/company/AddressTable.tsx:126 +#: src/tables/company/AddressTable.tsx:123 msgid "Address created" msgstr "" -#: src/tables/company/AddressTable.tsx:135 +#: src/tables/company/AddressTable.tsx:132 msgid "Edit Address" msgstr "" -#: src/tables/company/AddressTable.tsx:143 +#: src/tables/company/AddressTable.tsx:140 msgid "Delete Address" msgstr "" -#: src/tables/company/AddressTable.tsx:144 +#: src/tables/company/AddressTable.tsx:141 msgid "Are you sure you want to delete this address?" msgstr "" @@ -6130,24 +7269,24 @@ msgstr "" #~ msgid "New Company" #~ msgstr "New Company" -#: src/tables/company/CompanyTable.tsx:74 -#: src/tables/company/CompanyTable.tsx:123 +#: src/tables/company/CompanyTable.tsx:75 +#: src/tables/company/CompanyTable.tsx:125 msgid "Add Company" msgstr "" -#: src/tables/company/CompanyTable.tsx:96 +#: src/tables/company/CompanyTable.tsx:97 msgid "Show active companies" msgstr "" -#: src/tables/company/CompanyTable.tsx:101 +#: src/tables/company/CompanyTable.tsx:102 msgid "Show companies which are suppliers" msgstr "" -#: src/tables/company/CompanyTable.tsx:106 +#: src/tables/company/CompanyTable.tsx:107 msgid "Show companies which are manufacturers" msgstr "" -#: src/tables/company/CompanyTable.tsx:111 +#: src/tables/company/CompanyTable.tsx:112 msgid "Show companies which are customers" msgstr "" @@ -6163,96 +7302,99 @@ msgstr "" msgid "Delete Contact" msgstr "" -#: src/tables/company/ContactTable.tsx:129 +#: src/tables/company/ContactTable.tsx:130 msgid "Add contact" msgstr "" -#: src/tables/general/AttachmentTable.tsx:130 +#: src/tables/general/AttachmentTable.tsx:135 msgid "File uploaded" msgstr "" -#: src/tables/general/AttachmentTable.tsx:131 +#: src/tables/general/AttachmentTable.tsx:136 msgid "File {0} uploaded successfully" msgstr "" -#: src/tables/general/AttachmentTable.tsx:142 +#: src/tables/general/AttachmentTable.tsx:147 msgid "Upload Error" msgstr "" -#: src/tables/general/AttachmentTable.tsx:143 +#: src/tables/general/AttachmentTable.tsx:148 msgid "File could not be uploaded" msgstr "" -#: src/tables/general/AttachmentTable.tsx:191 +#: src/tables/general/AttachmentTable.tsx:196 msgid "Upload Attachment" msgstr "" -#: src/tables/general/AttachmentTable.tsx:201 +#: src/tables/general/AttachmentTable.tsx:206 msgid "Edit Attachment" msgstr "" -#: src/tables/general/AttachmentTable.tsx:215 +#: src/tables/general/AttachmentTable.tsx:220 msgid "Delete Attachment" msgstr "" -#: src/tables/general/AttachmentTable.tsx:225 +#: src/tables/general/AttachmentTable.tsx:230 msgid "Is Link" msgstr "" -#: src/tables/general/AttachmentTable.tsx:226 +#: src/tables/general/AttachmentTable.tsx:231 msgid "Show link attachments" msgstr "" -#: src/tables/general/AttachmentTable.tsx:230 +#: src/tables/general/AttachmentTable.tsx:235 msgid "Is File" msgstr "" -#: src/tables/general/AttachmentTable.tsx:231 +#: src/tables/general/AttachmentTable.tsx:236 msgid "Show file attachments" msgstr "" -#: src/tables/general/AttachmentTable.tsx:240 +#: src/tables/general/AttachmentTable.tsx:245 msgid "Add attachment" msgstr "" -#: src/tables/general/AttachmentTable.tsx:251 -msgid "Add external link" -msgstr "" - #: src/tables/general/AttachmentTable.tsx:254 #~ msgid "Upload attachment" #~ msgstr "Upload attachment" -#: src/tables/general/AttachmentTable.tsx:299 +#: src/tables/general/AttachmentTable.tsx:256 +msgid "Add external link" +msgstr "" + +#: src/tables/general/AttachmentTable.tsx:304 msgid "No attachments found" msgstr "" -#: src/tables/general/AttachmentTable.tsx:337 +#: src/tables/general/AttachmentTable.tsx:343 msgid "Drag attachment file here to upload" msgstr "" #: src/tables/general/ExtraLineItemTable.tsx:86 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:251 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:60 -#: src/tables/sales/SalesOrderLineItemTable.tsx:196 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:263 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:362 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:72 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:168 +#: src/tables/sales/SalesOrderLineItemTable.tsx:206 +#: src/tables/sales/SalesOrderLineItemTable.tsx:291 msgid "Add Line Item" msgstr "" #: src/tables/general/ExtraLineItemTable.tsx:98 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:271 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:72 -#: src/tables/sales/SalesOrderLineItemTable.tsx:214 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:283 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:84 +#: src/tables/sales/SalesOrderLineItemTable.tsx:224 msgid "Edit Line Item" msgstr "" #: src/tables/general/ExtraLineItemTable.tsx:106 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:279 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:80 -#: src/tables/sales/SalesOrderLineItemTable.tsx:222 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:291 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:92 +#: src/tables/sales/SalesOrderLineItemTable.tsx:232 msgid "Delete Line Item" msgstr "" -#: src/tables/general/ExtraLineItemTable.tsx:142 +#: src/tables/general/ExtraLineItemTable.tsx:143 msgid "Add Extra Line Item" msgstr "" @@ -6261,12 +7403,12 @@ msgid "Machine restarted" msgstr "" #: src/tables/machine/MachineListTable.tsx:212 -#: src/tables/machine/MachineListTable.tsx:263 +#: src/tables/machine/MachineListTable.tsx:261 msgid "Edit machine" msgstr "" #: src/tables/machine/MachineListTable.tsx:226 -#: src/tables/machine/MachineListTable.tsx:267 +#: src/tables/machine/MachineListTable.tsx:265 msgid "Delete machine" msgstr "" @@ -6278,51 +7420,50 @@ msgstr "" msgid "Are you sure you want to remove the machine \"{0}\"?" msgstr "" -#: src/tables/machine/MachineListTable.tsx:255 -#: src/tables/machine/MachineListTable.tsx:432 +#: src/tables/machine/MachineListTable.tsx:254 +#: src/tables/machine/MachineListTable.tsx:442 msgid "Restart required" msgstr "" -#: src/tables/machine/MachineListTable.tsx:259 +#: src/tables/machine/MachineListTable.tsx:258 msgid "Machine Actions" msgstr "" -#: src/tables/machine/MachineListTable.tsx:272 +#: src/tables/machine/MachineListTable.tsx:270 msgid "Restart" msgstr "" -#: src/tables/machine/MachineListTable.tsx:274 +#: src/tables/machine/MachineListTable.tsx:272 msgid "Restart machine" msgstr "" -#: src/tables/machine/MachineListTable.tsx:276 +#: src/tables/machine/MachineListTable.tsx:274 msgid "manual restart required" msgstr "" +#: src/tables/machine/MachineListTable.tsx:291 +#~ msgid "Machine information" +#~ msgstr "Machine information" + #: src/tables/machine/MachineListTable.tsx:292 -msgid "Machine information" +msgid "Machine Information" msgstr "" -#: src/tables/machine/MachineListTable.tsx:303 -#: src/tables/machine/MachineListTable.tsx:599 +#: src/tables/machine/MachineListTable.tsx:302 +#: src/tables/machine/MachineListTable.tsx:610 msgid "Machine Type" msgstr "" -#: src/tables/machine/MachineListTable.tsx:316 +#: src/tables/machine/MachineListTable.tsx:315 msgid "Machine Driver" msgstr "" -#: src/tables/machine/MachineListTable.tsx:329 +#: src/tables/machine/MachineListTable.tsx:330 msgid "Initialized" msgstr "" -#: src/tables/machine/MachineListTable.tsx:350 -#: src/tables/machine/MachineTypeTable.tsx:261 -msgid "Errors" -msgstr "" - -#: src/tables/machine/MachineListTable.tsx:358 -#: src/tables/machine/MachineTypeTable.tsx:269 +#: src/tables/machine/MachineListTable.tsx:359 +#: src/tables/machine/MachineTypeTable.tsx:290 msgid "No errors reported" msgstr "" @@ -6330,7 +7471,7 @@ msgstr "" msgid "Machine Settings" msgstr "" -#: src/tables/machine/MachineListTable.tsx:389 +#: src/tables/machine/MachineListTable.tsx:394 msgid "Driver Settings" msgstr "" @@ -6338,86 +7479,109 @@ msgstr "" #~ msgid "Create machine" #~ msgstr "Create machine" -#: src/tables/machine/MachineListTable.tsx:506 +#: src/tables/machine/MachineListTable.tsx:516 +#: src/tables/machine/MachineListTable.tsx:558 msgid "Add machine" msgstr "" #: src/tables/machine/MachineListTable.tsx:561 -msgid "Machine detail" +#~ msgid "Machine detail" +#~ msgstr "Machine detail" + +#: src/tables/machine/MachineListTable.tsx:572 +msgid "Machine Detail" msgstr "" -#: src/tables/machine/MachineListTable.tsx:608 +#: src/tables/machine/MachineListTable.tsx:619 msgid "Driver" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:73 +#: src/tables/machine/MachineTypeTable.tsx:78 msgid "Builtin driver" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:89 +#: src/tables/machine/MachineTypeTable.tsx:96 +msgid "Not Found" +msgstr "" + +#: src/tables/machine/MachineTypeTable.tsx:99 msgid "Machine type not found." msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:97 -msgid "Machine type information" +#: src/tables/machine/MachineTypeTable.tsx:99 +#~ msgid "Machine type information" +#~ msgstr "Machine type information" + +#: src/tables/machine/MachineTypeTable.tsx:109 +msgid "Machine Type Information" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:110 -#: src/tables/machine/MachineTypeTable.tsx:217 +#: src/tables/machine/MachineTypeTable.tsx:124 +#: src/tables/machine/MachineTypeTable.tsx:238 msgid "Slug" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:118 -#: src/tables/machine/MachineTypeTable.tsx:238 +#: src/tables/machine/MachineTypeTable.tsx:135 +#: src/tables/machine/MachineTypeTable.tsx:259 msgid "Provider plugin" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:130 -#: src/tables/machine/MachineTypeTable.tsx:250 +#: src/tables/machine/MachineTypeTable.tsx:147 +#: src/tables/machine/MachineTypeTable.tsx:271 msgid "Provider file" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:135 -#: src/tables/machine/MachineTypeTable.tsx:255 -#: src/tables/plugin/PluginListTable.tsx:180 -#: src/tables/plugin/PluginListTable.tsx:568 -msgid "Builtin" +#: src/tables/machine/MachineTypeTable.tsx:148 +#~ msgid "Available drivers" +#~ msgstr "Available drivers" + +#: src/tables/machine/MachineTypeTable.tsx:162 +msgid "Available Drivers" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:146 -msgid "Available drivers" -msgstr "" - -#: src/tables/machine/MachineTypeTable.tsx:196 +#: src/tables/machine/MachineTypeTable.tsx:217 msgid "Machine driver not found." msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:204 +#: src/tables/machine/MachineTypeTable.tsx:225 msgid "Machine driver information" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:224 +#: src/tables/machine/MachineTypeTable.tsx:245 msgid "Machine type" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:327 +#: src/tables/machine/MachineTypeTable.tsx:338 +#~ msgid "Machine type detail" +#~ msgstr "Machine type detail" + +#: src/tables/machine/MachineTypeTable.tsx:348 msgid "Builtin type" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:336 -msgid "Machine type detail" +#: src/tables/machine/MachineTypeTable.tsx:348 +#~ msgid "Machine driver detail" +#~ msgstr "Machine driver detail" + +#: src/tables/machine/MachineTypeTable.tsx:357 +msgid "Machine Type Detail" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:346 -msgid "Machine driver detail" +#: src/tables/machine/MachineTypeTable.tsx:367 +msgid "Machine Driver Detail" msgstr "" #: src/tables/notifications/NotificationsTable.tsx:26 msgid "Age" msgstr "" +#: src/tables/notifications/NotificationsTable.tsx:36 +msgid "Notification" +msgstr "" + #: src/tables/notifications/NotificationsTable.tsx:40 #: src/tables/plugin/PluginErrorTable.tsx:37 +#: src/tables/settings/ErrorTable.tsx:50 msgid "Message" msgstr "" @@ -6451,33 +7615,32 @@ msgstr "" msgid "Show assembly parts" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:68 +#: src/tables/part/PartCategoryTable.tsx:48 +msgid "You are subscribed to notifications for this category" +msgstr "" + +#: src/tables/part/PartCategoryTable.tsx:80 #: src/tables/part/PartTable.tsx:196 msgid "Include Subcategories" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:69 +#: src/tables/part/PartCategoryTable.tsx:81 msgid "Include subcategories in results" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:74 +#: src/tables/part/PartCategoryTable.tsx:86 msgid "Show structural categories" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:78 -#: src/tables/part/PartTable.tsx:294 -msgid "Subscribed" -msgstr "" - -#: src/tables/part/PartCategoryTable.tsx:79 +#: src/tables/part/PartCategoryTable.tsx:91 msgid "Show categories to which the user is subscribed" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:86 +#: src/tables/part/PartCategoryTable.tsx:100 msgid "New Part Category" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:112 +#: src/tables/part/PartCategoryTable.tsx:129 msgid "Add Part Category" msgstr "" @@ -6523,11 +7686,6 @@ msgstr "" msgid "Part parameters cannot be edited, as the part is locked" msgstr "" -#: src/tables/part/PartParameterTable.tsx:212 -#: src/tables/stock/StockItemTable.tsx:335 -msgid "Include Variants" -msgstr "" - #: src/tables/part/PartParameterTemplateTable.tsx:31 msgid "Checkbox" msgstr "" @@ -6554,6 +7712,7 @@ msgid "Show templates with units" msgstr "" #: src/tables/part/PartParameterTemplateTable.tsx:85 +#: src/tables/part/PartParameterTemplateTable.tsx:141 msgid "Add Parameter Template" msgstr "" @@ -6566,23 +7725,19 @@ msgid "Delete Parameter Template" msgstr "" #: src/tables/part/PartParameterTemplateTable.tsx:141 -msgid "Add parameter template" -msgstr "" +#~ msgid "Add parameter template" +#~ msgstr "Add parameter template" -#: src/tables/part/PartPurchaseOrdersTable.tsx:77 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:162 +#: src/tables/part/PartPurchaseOrdersTable.tsx:78 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:168 msgid "Total Quantity" msgstr "" -#: src/tables/part/PartPurchaseOrdersTable.tsx:115 -msgid "Pending" -msgstr "" - -#: src/tables/part/PartPurchaseOrdersTable.tsx:116 +#: src/tables/part/PartPurchaseOrdersTable.tsx:122 msgid "Show pending orders" msgstr "" -#: src/tables/part/PartPurchaseOrdersTable.tsx:121 +#: src/tables/part/PartPurchaseOrdersTable.tsx:127 msgid "Show received items" msgstr "" @@ -6728,22 +7883,13 @@ msgstr "" msgid "Results" msgstr "" -#: src/tables/part/PartTestTemplateTable.tsx:76 -msgid "No Results" -msgstr "" - -#: src/tables/part/PartTestTemplateTable.tsx:106 -#: src/tables/stock/StockItemTestResultTable.tsx:365 -msgid "Required" -msgstr "" - #: src/tables/part/PartTestTemplateTable.tsx:107 msgid "Show required tests" msgstr "" #: src/tables/part/PartTestTemplateTable.tsx:111 -#: src/tables/settings/TemplateTable.tsx:167 -#: src/tables/settings/TemplateTable.tsx:283 +#: src/tables/settings/TemplateTable.tsx:247 +#: src/tables/settings/TemplateTable.tsx:363 msgid "Enabled" msgstr "" @@ -6784,7 +7930,7 @@ msgid "Show tests which have recorded results" msgstr "" #: src/tables/part/PartTestTemplateTable.tsx:154 -#: src/tables/part/PartTestTemplateTable.tsx:237 +#: src/tables/part/PartTestTemplateTable.tsx:238 msgid "Add Test Template" msgstr "" @@ -6808,7 +7954,7 @@ msgstr "" msgid "View Parent Part" msgstr "" -#: src/tables/part/PartTestTemplateTable.tsx:257 +#: src/tables/part/PartTestTemplateTable.tsx:258 msgid "Part templates cannot be edited, as the part is locked" msgstr "" @@ -6836,28 +7982,49 @@ msgstr "" msgid "Show trackable variants" msgstr "" -#: src/tables/part/RelatedPartTable.tsx:84 +#: src/tables/part/RelatedPartTable.tsx:86 +#: src/tables/part/RelatedPartTable.tsx:109 msgid "Add Related Part" msgstr "" -#: src/tables/part/RelatedPartTable.tsx:99 +#: src/tables/part/RelatedPartTable.tsx:101 msgid "Delete Related Part" msgstr "" -#: src/tables/part/RelatedPartTable.tsx:106 -msgid "Add related part" -msgstr "" +#: src/tables/part/RelatedPartTable.tsx:109 +#~ msgid "Add related part" +#~ msgstr "Add related part" #: src/tables/plugin/PluginErrorTable.tsx:29 msgid "Stage" msgstr "" -#: src/tables/plugin/PluginListTable.tsx:95 -msgid "Plugin with key {pluginKey} not found" +#: src/tables/plugin/PluginListTable.tsx:42 +msgid "Plugin is active" msgstr "" +#: src/tables/plugin/PluginListTable.tsx:48 +msgid "Plugin is inactive" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:55 +msgid "Plugin is not installed" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:76 +msgid "Plugin" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:95 +#~ msgid "Plugin with key {pluginKey} not found" +#~ msgstr "Plugin with key {pluginKey} not found" + #: src/tables/plugin/PluginListTable.tsx:97 -msgid "An error occurred while fetching plugin details" +#~ msgid "An error occurred while fetching plugin details" +#~ msgstr "An error occurred while fetching plugin details" + +#: src/tables/plugin/PluginListTable.tsx:109 +msgid "Description not available" msgstr "" #: src/tables/plugin/PluginListTable.tsx:113 @@ -6865,12 +8032,8 @@ msgstr "" #~ msgstr "Plugin with id {id} not found" #: src/tables/plugin/PluginListTable.tsx:122 -msgid "Plugin information" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:134 -msgid "Author" -msgstr "" +#~ msgid "Plugin information" +#~ msgstr "Plugin information" #: src/tables/plugin/PluginListTable.tsx:134 #~ msgid "Plugin Actions" @@ -6881,79 +8044,124 @@ msgstr "" #~ msgid "Edit plugin" #~ msgstr "Edit plugin" +#: src/tables/plugin/PluginListTable.tsx:144 +msgid "Confirm plugin activation" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:145 +msgid "Confirm plugin deactivation" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:150 +msgid "The selected plugin will be activated" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:151 +msgid "The selected plugin will be deactivated" +msgstr "" + #: src/tables/plugin/PluginListTable.tsx:152 #: src/tables/plugin/PluginListTable.tsx:153 #~ msgid "Reload" #~ msgstr "Reload" -#: src/tables/plugin/PluginListTable.tsx:154 -msgid "Plugin is not active" -msgstr "" - #: src/tables/plugin/PluginListTable.tsx:163 -msgid "Package information" -msgstr "" +#~ msgid "Package information" +#~ msgstr "Package information" #: src/tables/plugin/PluginListTable.tsx:169 -msgid "Package Name" +msgid "Deactivate" msgstr "" -#: src/tables/plugin/PluginListTable.tsx:175 -msgid "Installation Path" +#: src/tables/plugin/PluginListTable.tsx:183 +msgid "Activate" msgstr "" -#: src/tables/plugin/PluginListTable.tsx:185 -msgid "Package" +#: src/tables/plugin/PluginListTable.tsx:184 +msgid "Activate selected plugin" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:196 +msgid "Update selected plugin" msgstr "" #: src/tables/plugin/PluginListTable.tsx:197 -msgid "Plugin settings" -msgstr "" +#~ msgid "Plugin settings" +#~ msgstr "Plugin settings" #: src/tables/plugin/PluginListTable.tsx:214 -msgid "Plugin is active" +#: src/tables/stock/InstalledItemsTable.tsx:107 +msgid "Uninstall" msgstr "" -#: src/tables/plugin/PluginListTable.tsx:220 -msgid "Plugin is inactive" +#: src/tables/plugin/PluginListTable.tsx:215 +msgid "Uninstall selected plugin" msgstr "" -#: src/tables/plugin/PluginListTable.tsx:227 -msgid "Plugin is not installed" +#: src/tables/plugin/PluginListTable.tsx:233 +msgid "Delete selected plugin configuration" msgstr "" -#: src/tables/plugin/PluginListTable.tsx:253 -msgid "Plugin" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:287 -msgid "Description not available" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:319 -msgid "Confirm plugin activation" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:320 -msgid "Confirm plugin deactivation" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:325 -msgid "The selected plugin will be activated" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:326 -msgid "The selected plugin will be deactivated" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:334 +#: src/tables/plugin/PluginListTable.tsx:249 msgid "Activate Plugin" msgstr "" +#: src/tables/plugin/PluginListTable.tsx:270 +msgid "Install plugin" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:283 +msgid "Install" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:284 +msgid "Plugin installed successfully" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:289 +msgid "Uninstall Plugin" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:301 +msgid "Confirm plugin uninstall" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:304 +msgid "The selected plugin will be uninstalled." +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:308 +#~ msgid "This action cannot be undone." +#~ msgstr "This action cannot be undone." + +#: src/tables/plugin/PluginListTable.tsx:309 +msgid "Plugin uninstalled successfully" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:317 +msgid "Delete Plugin" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:318 +msgid "Deleting this plugin configuration will remove all associated settings and data. Are you sure you want to delete this plugin?" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:331 +msgid "Plugins reloaded" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:332 +msgid "Plugins were reloaded successfully" +msgstr "" + #: src/tables/plugin/PluginListTable.tsx:338 #~ msgid "Deactivate Plugin" #~ msgstr "Deactivate Plugin" +#: src/tables/plugin/PluginListTable.tsx:350 +msgid "Reload Plugins" +msgstr "" + #: src/tables/plugin/PluginListTable.tsx:354 #~ msgid "The following plugin will be activated" #~ msgstr "The following plugin will be activated" @@ -6962,16 +8170,16 @@ msgstr "" #~ msgid "The following plugin will be deactivated" #~ msgstr "The following plugin will be deactivated" -#: src/tables/plugin/PluginListTable.tsx:362 -msgid "Deactivate" +#: src/tables/plugin/PluginListTable.tsx:357 +msgid "Install Plugin" msgstr "" #: src/tables/plugin/PluginListTable.tsx:366 #~ msgid "Confirm" #~ msgstr "Confirm" -#: src/tables/plugin/PluginListTable.tsx:373 -msgid "Activate" +#: src/tables/plugin/PluginListTable.tsx:374 +msgid "Plugin Detail" msgstr "" #: src/tables/plugin/PluginListTable.tsx:376 @@ -6998,76 +8206,12 @@ msgstr "" #~ msgid "Error updating plugin" #~ msgstr "Error updating plugin" -#: src/tables/plugin/PluginListTable.tsx:406 -msgid "Uninstall" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:438 -msgid "Install plugin" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:451 -msgid "Install" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:452 -msgid "Plugin installed successfully" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:457 -msgid "Uninstall Plugin" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:469 -msgid "Confirm plugin uninstall" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:472 -msgid "The selected plugin will be uninstalled." -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:473 -msgid "This action cannot be undone." -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:477 -msgid "Plugin uninstalled successfully" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:484 -msgid "Delete Plugin" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:485 -msgid "Deleting this plugin configuration will remove all associated settings and data. Are you sure you want to delete this plugin?" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:498 -msgid "Plugins reloaded" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:499 -msgid "Plugins were reloaded successfully" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:515 -msgid "Reload Plugins" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:524 -msgid "Install Plugin" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:544 -msgid "Plugin Detail" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:573 +#: src/tables/plugin/PluginListTable.tsx:411 msgid "Sample" msgstr "" -#: src/tables/plugin/PluginListTable.tsx:578 -#: src/tables/stock/StockItemTable.tsx:340 +#: src/tables/plugin/PluginListTable.tsx:416 +#: src/tables/stock/StockItemTable.tsx:344 msgid "Installed" msgstr "" @@ -7116,82 +8260,78 @@ msgstr "" #~ msgid "Are you sure you want to remove this manufacturer part?" #~ msgstr "Are you sure you want to remove this manufacturer part?" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:102 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:339 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:103 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:356 msgid "Import Line Items" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:135 -msgid "Part Description" -msgstr "" - -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:201 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:207 msgid "Supplier Code" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:208 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:214 msgid "Supplier Link" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:215 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:220 msgid "Manufacturer Code" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:229 -msgid "Destination" +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:248 +msgid "Show line items which have been received" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:300 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:316 msgid "Receive line item" msgstr "" #: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:344 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:142 -#: src/tables/sales/SalesOrderLineItemTable.tsx:240 -msgid "Add line item" -msgstr "" +#: src/tables/sales/ReturnOrderLineItemTable.tsx:160 +#: src/tables/sales/SalesOrderLineItemTable.tsx:258 +#~ msgid "Add line item" +#~ msgstr "Add line item" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:354 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:373 msgid "Receive items" msgstr "" -#: src/tables/purchasing/SupplierPartTable.tsx:93 +#: src/tables/purchasing/SupplierPartTable.tsx:95 msgid "MPN" msgstr "" -#: src/tables/purchasing/SupplierPartTable.tsx:122 +#: src/tables/purchasing/SupplierPartTable.tsx:124 msgid "Base units" msgstr "" -#: src/tables/purchasing/SupplierPartTable.tsx:170 +#: src/tables/purchasing/SupplierPartTable.tsx:172 msgid "Supplier part created" msgstr "" -#: src/tables/purchasing/SupplierPartTable.tsx:176 +#: src/tables/purchasing/SupplierPartTable.tsx:179 msgid "Add supplier part" msgstr "" -#: src/tables/purchasing/SupplierPartTable.tsx:188 +#: src/tables/purchasing/SupplierPartTable.tsx:191 msgid "Show active supplier parts" msgstr "" -#: src/tables/purchasing/SupplierPartTable.tsx:192 -msgid "Active Part" -msgstr "" - -#: src/tables/purchasing/SupplierPartTable.tsx:193 -msgid "Show active internal parts" -msgstr "" - #: src/tables/purchasing/SupplierPartTable.tsx:193 #~ msgid "Supplier part updated" #~ msgstr "Supplier part updated" -#: src/tables/purchasing/SupplierPartTable.tsx:197 +#: src/tables/purchasing/SupplierPartTable.tsx:195 +msgid "Active Part" +msgstr "" + +#: src/tables/purchasing/SupplierPartTable.tsx:196 +msgid "Show active internal parts" +msgstr "" + +#: src/tables/purchasing/SupplierPartTable.tsx:200 msgid "Active Supplier" msgstr "" -#: src/tables/purchasing/SupplierPartTable.tsx:198 +#: src/tables/purchasing/SupplierPartTable.tsx:201 msgid "Show active suppliers" msgstr "" @@ -7203,99 +8343,187 @@ msgstr "" #~ msgid "Are you sure you want to remove this supplier part?" #~ msgstr "Are you sure you want to remove this supplier part?" -#: src/tables/sales/ReturnOrderLineItemTable.tsx:114 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:139 msgid "Received Date" msgstr "" -#: src/tables/sales/ReturnOrderLineItemTable.tsx:128 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:153 msgid "Show items which have been received" msgstr "" -#: src/tables/sales/ReturnOrderLineItemTable.tsx:133 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:158 msgid "Filter by line item status" msgstr "" -#: src/tables/sales/ReturnOrderLineItemTable.tsx:158 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:176 +msgid "Receive selected items" +msgstr "" + +#: src/tables/sales/ReturnOrderLineItemTable.tsx:205 msgid "Receive Item" msgstr "" -#: src/tables/sales/SalesOrderLineItemTable.tsx:262 -msgid "Allocate stock" +#: src/tables/sales/SalesOrderAllocationTable.tsx:60 +msgid "Show outstanding allocations" msgstr "" -#: src/tables/sales/SalesOrderLineItemTable.tsx:272 +#: src/tables/sales/SalesOrderAllocationTable.tsx:168 +#: src/tables/sales/SalesOrderAllocationTable.tsx:190 +msgid "Edit Allocation" +msgstr "" + +#: src/tables/sales/SalesOrderAllocationTable.tsx:175 +#: src/tables/sales/SalesOrderAllocationTable.tsx:197 +msgid "Delete Allocation" +msgstr "" + +#: src/tables/sales/SalesOrderLineItemTable.tsx:244 +msgid "Allocate Serial Numbers" +msgstr "" + +#: src/tables/sales/SalesOrderLineItemTable.tsx:277 +msgid "Show lines which are fully allocated" +msgstr "" + +#: src/tables/sales/SalesOrderLineItemTable.tsx:280 +#~ msgid "Allocate stock" +#~ msgstr "Allocate stock" + +#: src/tables/sales/SalesOrderLineItemTable.tsx:282 +msgid "Show lines which are completed" +msgstr "" + +#: src/tables/sales/SalesOrderLineItemTable.tsx:291 +#~ msgid "Allocate Serials" +#~ msgstr "Allocate Serials" + +#: src/tables/sales/SalesOrderLineItemTable.tsx:340 +msgid "Allocate serials" +msgstr "" + +#: src/tables/sales/SalesOrderLineItemTable.tsx:356 msgid "Build stock" msgstr "" -#: src/tables/sales/SalesOrderLineItemTable.tsx:289 -#: src/tables/stock/StockItemTable.tsx:507 +#: src/tables/sales/SalesOrderLineItemTable.tsx:373 +#: src/tables/stock/StockItemTable.tsx:512 msgid "Order stock" msgstr "" -#: src/tables/sales/SalesOrderShipmentTable.tsx:40 +#: src/tables/sales/SalesOrderShipmentTable.tsx:51 +#~ msgid "Delete Shipment" +#~ msgstr "Delete Shipment" + +#: src/tables/sales/SalesOrderShipmentTable.tsx:57 msgid "Create Shipment" msgstr "" -#: src/tables/sales/SalesOrderShipmentTable.tsx:50 -msgid "Delete Shipment" -msgstr "" - -#: src/tables/sales/SalesOrderShipmentTable.tsx:58 -msgid "Edit Shipment" -msgstr "" - -#: src/tables/sales/SalesOrderShipmentTable.tsx:66 -msgid "Shipment Reference" -msgstr "" - -#: src/tables/sales/SalesOrderShipmentTable.tsx:71 +#: src/tables/sales/SalesOrderShipmentTable.tsx:104 msgid "Items" msgstr "" -#: src/tables/sales/SalesOrderShipmentTable.tsx:83 -msgid "Delivery Date" +#: src/tables/sales/SalesOrderShipmentTable.tsx:139 +msgid "View Shipment" msgstr "" -#: src/tables/sales/SalesOrderShipmentTable.tsx:107 -msgid "Complete Shipment" +#: src/tables/sales/SalesOrderShipmentTable.tsx:161 +msgid "Edit shipment" msgstr "" -#: src/tables/sales/SalesOrderShipmentTable.tsx:133 +#: src/tables/sales/SalesOrderShipmentTable.tsx:169 +msgid "Cancel shipment" +msgstr "" + +#: src/tables/sales/SalesOrderShipmentTable.tsx:184 msgid "Add shipment" msgstr "" -#: src/tables/sales/SalesOrderShipmentTable.tsx:146 -msgid "Shipped" -msgstr "" - -#: src/tables/sales/SalesOrderShipmentTable.tsx:147 +#: src/tables/sales/SalesOrderShipmentTable.tsx:198 msgid "Show shipments which have been shipped" msgstr "" -#: src/tables/sales/SalesOrderShipmentTable.tsx:151 -msgid "Delivered" -msgstr "" - -#: src/tables/sales/SalesOrderShipmentTable.tsx:152 +#: src/tables/sales/SalesOrderShipmentTable.tsx:203 msgid "Show shipments which have been delivered" msgstr "" -#: src/tables/settings/CurrencyTable.tsx:28 -msgid "Rate" +#: src/tables/settings/BarcodeScanHistoryTable.tsx:61 +msgid "Barcode Information" msgstr "" -#: src/tables/settings/CurrencyTable.tsx:40 -msgid "Exchange rates updated" +#: src/tables/settings/BarcodeScanHistoryTable.tsx:76 +#: src/tables/settings/ErrorTable.tsx:59 +msgid "Timestamp" msgstr "" -#: src/tables/settings/CurrencyTable.tsx:46 -msgid "Exchange rate update error" +#: src/tables/settings/BarcodeScanHistoryTable.tsx:86 +msgid "Endpoint" msgstr "" -#: src/tables/settings/CurrencyTable.tsx:57 -msgid "Refresh currency exchange rates" +#: src/tables/settings/BarcodeScanHistoryTable.tsx:90 +#: src/tables/settings/BarcodeScanHistoryTable.tsx:217 +#: src/tables/stock/StockItemTestResultTable.tsx:174 +msgid "Result" msgstr "" +#: src/tables/settings/BarcodeScanHistoryTable.tsx:98 +msgid "Context" +msgstr "" + +#: src/tables/settings/BarcodeScanHistoryTable.tsx:119 +msgid "Response" +msgstr "" + +#: src/tables/settings/BarcodeScanHistoryTable.tsx:213 +#: src/tables/settings/ImportSessionTable.tsx:121 +#: src/tables/stock/StockTrackingTable.tsx:183 +msgid "Filter by user" +msgstr "" + +#: src/tables/settings/BarcodeScanHistoryTable.tsx:218 +msgid "Filter by result" +msgstr "" + +#: src/tables/settings/BarcodeScanHistoryTable.tsx:232 +msgid "Delete Barcode Scan Record" +msgstr "" + +#: src/tables/settings/BarcodeScanHistoryTable.tsx:258 +msgid "Barcode Scan Details" +msgstr "" + +#: src/tables/settings/BarcodeScanHistoryTable.tsx:268 +msgid "Logging Disabled" +msgstr "" + +#: src/tables/settings/BarcodeScanHistoryTable.tsx:270 +msgid "Barcode logging is not enabled" +msgstr "" + +#: src/tables/settings/CustomStateTable.tsx:36 +msgid "Display Name" +msgstr "" + +#: src/tables/settings/CustomStateTable.tsx:52 +msgid "Model" +msgstr "" + +#: src/tables/settings/CustomStateTable.tsx:65 +#: src/tables/settings/CustomStateTable.tsx:115 +msgid "Add State" +msgstr "" + +#: src/tables/settings/CustomStateTable.tsx:77 +msgid "Edit State" +msgstr "" + +#: src/tables/settings/CustomStateTable.tsx:85 +msgid "Delete State" +msgstr "" + +#: src/tables/settings/CustomStateTable.tsx:115 +#~ msgid "Add state" +#~ msgstr "Add state" + #: src/tables/settings/CustomUnitsTable.tsx:50 msgid "Add Custom Unit" msgstr "" @@ -7312,59 +8540,71 @@ msgstr "" msgid "Add custom unit" msgstr "" -#: src/tables/settings/ErrorTable.tsx:31 -msgid "When" -msgstr "" - -#: src/tables/settings/ErrorTable.tsx:41 -msgid "Error Information" -msgstr "" - #: src/tables/settings/ErrorTable.tsx:51 #~ msgid "Delete error report" #~ msgstr "Delete error report" -#: src/tables/settings/ErrorTable.tsx:53 +#: src/tables/settings/ErrorTable.tsx:67 +msgid "Traceback" +msgstr "" + +#: src/tables/settings/ErrorTable.tsx:103 +msgid "When" +msgstr "" + +#: src/tables/settings/ErrorTable.tsx:113 +msgid "Error Information" +msgstr "" + +#: src/tables/settings/ErrorTable.tsx:123 msgid "Delete Error Report" msgstr "" -#: src/tables/settings/ErrorTable.tsx:55 +#: src/tables/settings/ErrorTable.tsx:125 msgid "Are you sure you want to delete this error report?" msgstr "" -#: src/tables/settings/ErrorTable.tsx:57 +#: src/tables/settings/ErrorTable.tsx:127 msgid "Error report deleted" msgstr "" -#: src/tables/settings/ErrorTable.tsx:79 -#: src/tables/settings/FailedTasksTable.tsx:59 +#: src/tables/settings/ErrorTable.tsx:146 +#: src/tables/settings/FailedTasksTable.tsx:65 msgid "Error Details" msgstr "" -#: src/tables/settings/FailedTasksTable.tsx:26 -#: src/tables/settings/PendingTasksTable.tsx:19 +#: src/tables/settings/FailedTasksTable.tsx:32 +#: src/tables/settings/PendingTasksTable.tsx:23 #: src/tables/settings/ScheduledTasksTable.tsx:19 msgid "Task" msgstr "" -#: src/tables/settings/FailedTasksTable.tsx:32 -#: src/tables/settings/PendingTasksTable.tsx:24 +#: src/tables/settings/FailedTasksTable.tsx:38 +#: src/tables/settings/PendingTasksTable.tsx:28 msgid "Task ID" msgstr "" -#: src/tables/settings/FailedTasksTable.tsx:36 -#: src/tables/stock/StockItemTestResultTable.tsx:211 +#: src/tables/settings/FailedTasksTable.tsx:42 +#: src/tables/stock/StockItemTestResultTable.tsx:218 msgid "Started" msgstr "" -#: src/tables/settings/FailedTasksTable.tsx:42 +#: src/tables/settings/FailedTasksTable.tsx:48 msgid "Stopped" msgstr "" -#: src/tables/settings/FailedTasksTable.tsx:48 +#: src/tables/settings/FailedTasksTable.tsx:54 msgid "Attempts" msgstr "" +#: src/tables/settings/FailedTasksTable.tsx:92 +msgid "No Information" +msgstr "" + +#: src/tables/settings/FailedTasksTable.tsx:93 +msgid "No error details are available for this task" +msgstr "" + #: src/tables/settings/GroupTable.tsx:90 msgid "Group with id {id} not found" msgstr "" @@ -7398,42 +8638,34 @@ msgstr "" msgid "Edit group" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:38 +#: src/tables/settings/ImportSessionTable.tsx:37 msgid "Delete Import Session" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:44 +#: src/tables/settings/ImportSessionTable.tsx:43 #: src/tables/settings/ImportSessionTable.tsx:131 msgid "Create Import Session" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:69 +#: src/tables/settings/ImportSessionTable.tsx:68 msgid "Uploaded" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:79 -msgid "Imported Rows" -msgstr "" - -#: src/tables/settings/ImportSessionTable.tsx:109 -#: src/tables/settings/TemplateTable.tsx:289 +#: src/tables/settings/ImportSessionTable.tsx:108 +#: src/tables/settings/TemplateTable.tsx:369 msgid "Model Type" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:110 -#: src/tables/settings/TemplateTable.tsx:290 +#: src/tables/settings/ImportSessionTable.tsx:109 +#: src/tables/settings/TemplateTable.tsx:370 msgid "Filter by target model type" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:116 +#: src/tables/settings/ImportSessionTable.tsx:115 msgid "Filter by import session status" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:122 -msgid "Filter by user" -msgstr "" - -#: src/tables/settings/PendingTasksTable.tsx:38 +#: src/tables/settings/PendingTasksTable.tsx:42 msgid "Arguments" msgstr "" @@ -7461,12 +8693,16 @@ msgstr "" msgid "Next Run" msgstr "" -#: src/tables/settings/TemplateTable.tsx:85 -msgid "Template not found" +#: src/tables/settings/StocktakeReportTable.tsx:28 +msgid "Report" msgstr "" -#: src/tables/settings/TemplateTable.tsx:87 -msgid "An error occurred while fetching template details" +#: src/tables/settings/StocktakeReportTable.tsx:35 +msgid "Part Count" +msgstr "" + +#: src/tables/settings/StocktakeReportTable.tsx:58 +msgid "Delete Report" msgstr "" #: src/tables/settings/TemplateTable.tsx:120 @@ -7481,21 +8717,12 @@ msgstr "" #~ msgid "actions" #~ msgstr "actions" -#: src/tables/settings/TemplateTable.tsx:177 -msgid "Modify" +#: src/tables/settings/TemplateTable.tsx:162 +msgid "Template not found" msgstr "" -#: src/tables/settings/TemplateTable.tsx:178 -msgid "Modify template file" -msgstr "" - -#: src/tables/settings/TemplateTable.tsx:234 -#: src/tables/settings/TemplateTable.tsx:302 -msgid "Edit Template" -msgstr "" - -#: src/tables/settings/TemplateTable.tsx:242 -msgid "Delete template" +#: src/tables/settings/TemplateTable.tsx:164 +msgid "An error occurred while fetching template details" msgstr "" #: src/tables/settings/TemplateTable.tsx:243 @@ -7506,103 +8733,137 @@ msgstr "" #~ msgid "Create new" #~ msgstr "Create new" -#: src/tables/settings/TemplateTable.tsx:248 +#: src/tables/settings/TemplateTable.tsx:257 +msgid "Modify" +msgstr "" + +#: src/tables/settings/TemplateTable.tsx:258 +msgid "Modify template file" +msgstr "" + +#: src/tables/settings/TemplateTable.tsx:314 +#: src/tables/settings/TemplateTable.tsx:382 +msgid "Edit Template" +msgstr "" + +#: src/tables/settings/TemplateTable.tsx:322 +msgid "Delete template" +msgstr "" + +#: src/tables/settings/TemplateTable.tsx:328 msgid "Add Template" msgstr "" -#: src/tables/settings/TemplateTable.tsx:261 +#: src/tables/settings/TemplateTable.tsx:341 msgid "Add template" msgstr "" -#: src/tables/settings/TemplateTable.tsx:284 +#: src/tables/settings/TemplateTable.tsx:364 msgid "Filter by enabled status" msgstr "" -#: src/tables/settings/UserTable.tsx:82 +#: src/tables/settings/UserTable.tsx:81 msgid "User with id {id} not found" msgstr "" -#: src/tables/settings/UserTable.tsx:84 +#: src/tables/settings/UserTable.tsx:83 msgid "An error occurred while fetching user details" msgstr "" -#: src/tables/settings/UserTable.tsx:102 +#: src/tables/settings/UserTable.tsx:101 msgid "Is Active" msgstr "" -#: src/tables/settings/UserTable.tsx:103 +#: src/tables/settings/UserTable.tsx:102 msgid "Designates whether this user should be treated as active. Unselect this instead of deleting accounts." msgstr "" -#: src/tables/settings/UserTable.tsx:107 +#: src/tables/settings/UserTable.tsx:106 msgid "Is Staff" msgstr "" -#: src/tables/settings/UserTable.tsx:108 +#: src/tables/settings/UserTable.tsx:107 msgid "Designates whether the user can log into the django admin site." msgstr "" -#: src/tables/settings/UserTable.tsx:112 +#: src/tables/settings/UserTable.tsx:111 msgid "Is Superuser" msgstr "" -#: src/tables/settings/UserTable.tsx:113 +#: src/tables/settings/UserTable.tsx:112 msgid "Designates that this user has all permissions without explicitly assigning them." msgstr "" -#: src/tables/settings/UserTable.tsx:123 +#: src/tables/settings/UserTable.tsx:122 msgid "You cannot edit the rights for the currently logged-in user." msgstr "" -#: src/tables/settings/UserTable.tsx:154 +#: src/tables/settings/UserTable.tsx:153 msgid "No groups" msgstr "" -#: src/tables/settings/UserTable.tsx:245 +#: src/tables/settings/UserTable.tsx:244 msgid "Delete user" msgstr "" -#: src/tables/settings/UserTable.tsx:246 +#: src/tables/settings/UserTable.tsx:245 msgid "User deleted" msgstr "" -#: src/tables/settings/UserTable.tsx:248 +#: src/tables/settings/UserTable.tsx:247 msgid "Are you sure you want to delete this user?" msgstr "" -#: src/tables/settings/UserTable.tsx:254 -#: src/tables/settings/UserTable.tsx:272 +#: src/tables/settings/UserTable.tsx:253 +#: src/tables/settings/UserTable.tsx:271 msgid "Add user" msgstr "" -#: src/tables/settings/UserTable.tsx:262 +#: src/tables/settings/UserTable.tsx:261 msgid "Added user" msgstr "" -#: src/tables/settings/UserTable.tsx:285 +#: src/tables/settings/UserTable.tsx:284 msgid "Show active users" msgstr "" -#: src/tables/settings/UserTable.tsx:289 +#: src/tables/settings/UserTable.tsx:288 msgid "Staff" msgstr "" -#: src/tables/settings/UserTable.tsx:290 +#: src/tables/settings/UserTable.tsx:289 msgid "Show staff users" msgstr "" #: src/tables/settings/UserTable.tsx:294 -msgid "Superuser" -msgstr "" - -#: src/tables/settings/UserTable.tsx:295 msgid "Show superusers" msgstr "" -#: src/tables/settings/UserTable.tsx:305 +#: src/tables/settings/UserTable.tsx:304 msgid "Edit user" msgstr "" +#: src/tables/stock/InstalledItemsTable.tsx:37 +#: src/tables/stock/InstalledItemsTable.tsx:90 +msgid "Install Item" +msgstr "" + +#: src/tables/stock/InstalledItemsTable.tsx:39 +msgid "Item installed" +msgstr "" + +#: src/tables/stock/InstalledItemsTable.tsx:50 +msgid "Uninstall Item" +msgstr "" + +#: src/tables/stock/InstalledItemsTable.tsx:52 +msgid "Item uninstalled" +msgstr "" + +#: src/tables/stock/InstalledItemsTable.tsx:108 +msgid "Uninstall stock item" +msgstr "" + #: src/tables/stock/LocationTypesTable.tsx:39 #: src/tables/stock/LocationTypesTable.tsx:109 msgid "Add Location Type" @@ -7620,276 +8881,272 @@ msgstr "" msgid "Icon" msgstr "" -#: src/tables/stock/StockItemTable.tsx:101 +#: src/tables/stock/StockItemTable.tsx:90 msgid "This stock item is in production" msgstr "" -#: src/tables/stock/StockItemTable.tsx:110 +#: src/tables/stock/StockItemTable.tsx:97 msgid "This stock item has been assigned to a sales order" msgstr "" -#: src/tables/stock/StockItemTable.tsx:119 +#: src/tables/stock/StockItemTable.tsx:104 msgid "This stock item has been assigned to a customer" msgstr "" -#: src/tables/stock/StockItemTable.tsx:128 +#: src/tables/stock/StockItemTable.tsx:111 msgid "This stock item is installed in another stock item" msgstr "" -#: src/tables/stock/StockItemTable.tsx:137 +#: src/tables/stock/StockItemTable.tsx:118 msgid "This stock item has been consumed by a build order" msgstr "" -#: src/tables/stock/StockItemTable.tsx:146 +#: src/tables/stock/StockItemTable.tsx:125 +msgid "This stock item is unavailable" +msgstr "" + +#: src/tables/stock/StockItemTable.tsx:134 msgid "This stock item has expired" msgstr "" -#: src/tables/stock/StockItemTable.tsx:150 +#: src/tables/stock/StockItemTable.tsx:138 msgid "This stock item is stale" msgstr "" -#: src/tables/stock/StockItemTable.tsx:161 +#: src/tables/stock/StockItemTable.tsx:150 msgid "This stock item is fully allocated" msgstr "" -#: src/tables/stock/StockItemTable.tsx:168 +#: src/tables/stock/StockItemTable.tsx:157 msgid "This stock item is partially allocated" msgstr "" -#: src/tables/stock/StockItemTable.tsx:196 +#: src/tables/stock/StockItemTable.tsx:185 msgid "This stock item has been depleted" msgstr "" -#: src/tables/stock/StockItemTable.tsx:232 +#: src/tables/stock/StockItemTable.tsx:280 msgid "Stocktake Date" msgstr "" -#: src/tables/stock/StockItemTable.tsx:236 -msgid "Expiry Date" -msgstr "" - -#: src/tables/stock/StockItemTable.tsx:260 -msgid "Stock Value" -msgstr "" - -#: src/tables/stock/StockItemTable.tsx:290 +#: src/tables/stock/StockItemTable.tsx:294 msgid "Show stock for active parts" msgstr "" -#: src/tables/stock/StockItemTable.tsx:295 +#: src/tables/stock/StockItemTable.tsx:299 msgid "Filter by stock status" msgstr "" #: src/tables/stock/StockItemTable.tsx:301 -msgid "Show stock for assmebled parts" +#~ msgid "Show stock for assmebled parts" +#~ msgstr "Show stock for assmebled parts" + +#: src/tables/stock/StockItemTable.tsx:305 +msgid "Show stock for assembled parts" msgstr "" -#: src/tables/stock/StockItemTable.tsx:306 +#: src/tables/stock/StockItemTable.tsx:310 msgid "Show items which have been allocated" msgstr "" -#: src/tables/stock/StockItemTable.tsx:311 +#: src/tables/stock/StockItemTable.tsx:315 msgid "Show items which are available" msgstr "" -#: src/tables/stock/StockItemTable.tsx:315 +#: src/tables/stock/StockItemTable.tsx:319 #: src/tables/stock/StockLocationTable.tsx:44 msgid "Include Sublocations" msgstr "" -#: src/tables/stock/StockItemTable.tsx:316 +#: src/tables/stock/StockItemTable.tsx:320 msgid "Include stock in sublocations" msgstr "" -#: src/tables/stock/StockItemTable.tsx:320 +#: src/tables/stock/StockItemTable.tsx:324 msgid "Depleted" msgstr "" -#: src/tables/stock/StockItemTable.tsx:321 +#: src/tables/stock/StockItemTable.tsx:325 msgid "Show depleted stock items" msgstr "" -#: src/tables/stock/StockItemTable.tsx:326 +#: src/tables/stock/StockItemTable.tsx:330 msgid "Show items which are in stock" msgstr "" -#: src/tables/stock/StockItemTable.tsx:331 +#: src/tables/stock/StockItemTable.tsx:335 msgid "Show items which are in production" msgstr "" -#: src/tables/stock/StockItemTable.tsx:336 +#: src/tables/stock/StockItemTable.tsx:340 msgid "Include stock items for variant parts" msgstr "" -#: src/tables/stock/StockItemTable.tsx:341 +#: src/tables/stock/StockItemTable.tsx:345 msgid "Show stock items which are installed in other items" msgstr "" -#: src/tables/stock/StockItemTable.tsx:345 +#: src/tables/stock/StockItemTable.tsx:349 msgid "Sent to Customer" msgstr "" -#: src/tables/stock/StockItemTable.tsx:346 +#: src/tables/stock/StockItemTable.tsx:350 msgid "Show items which have been sent to a customer" msgstr "" -#: src/tables/stock/StockItemTable.tsx:350 +#: src/tables/stock/StockItemTable.tsx:354 msgid "Is Serialized" msgstr "" -#: src/tables/stock/StockItemTable.tsx:351 +#: src/tables/stock/StockItemTable.tsx:355 msgid "Show items which have a serial number" msgstr "" -#: src/tables/stock/StockItemTable.tsx:358 +#: src/tables/stock/StockItemTable.tsx:362 msgid "Has Batch Code" msgstr "" -#: src/tables/stock/StockItemTable.tsx:359 +#: src/tables/stock/StockItemTable.tsx:363 msgid "Show items which have a batch code" msgstr "" -#: src/tables/stock/StockItemTable.tsx:365 +#: src/tables/stock/StockItemTable.tsx:369 msgid "Show tracked items" msgstr "" -#: src/tables/stock/StockItemTable.tsx:369 +#: src/tables/stock/StockItemTable.tsx:373 msgid "Has Purchase Price" msgstr "" -#: src/tables/stock/StockItemTable.tsx:370 +#: src/tables/stock/StockItemTable.tsx:374 msgid "Show items which have a purchase price" msgstr "" -#: src/tables/stock/StockItemTable.tsx:378 +#: src/tables/stock/StockItemTable.tsx:382 msgid "External Location" msgstr "" -#: src/tables/stock/StockItemTable.tsx:379 +#: src/tables/stock/StockItemTable.tsx:383 msgid "Show items in an external location" msgstr "" -#: src/tables/stock/StockItemTable.tsx:451 +#: src/tables/stock/StockItemTable.tsx:456 msgid "Add a new stock item" msgstr "" -#: src/tables/stock/StockItemTable.tsx:460 +#: src/tables/stock/StockItemTable.tsx:465 msgid "Remove some quantity from a stock item" msgstr "" -#: src/tables/stock/StockItemTable.tsx:482 +#: src/tables/stock/StockItemTable.tsx:487 msgid "Move Stock items to new locations" msgstr "" -#: src/tables/stock/StockItemTable.tsx:489 +#: src/tables/stock/StockItemTable.tsx:494 msgid "Change stock status" msgstr "" -#: src/tables/stock/StockItemTable.tsx:491 +#: src/tables/stock/StockItemTable.tsx:496 msgid "Change the status of stock items" msgstr "" -#: src/tables/stock/StockItemTable.tsx:498 +#: src/tables/stock/StockItemTable.tsx:503 msgid "Merge stock" msgstr "" -#: src/tables/stock/StockItemTable.tsx:500 +#: src/tables/stock/StockItemTable.tsx:505 msgid "Merge stock items" msgstr "" -#: src/tables/stock/StockItemTable.tsx:509 -#: src/tables/stock/StockItemTable.tsx:516 +#: src/tables/stock/StockItemTable.tsx:514 +#: src/tables/stock/StockItemTable.tsx:521 msgid "Order new stock" msgstr "" -#: src/tables/stock/StockItemTable.tsx:514 +#: src/tables/stock/StockItemTable.tsx:519 msgid "Assign to customer" msgstr "" -#: src/tables/stock/StockItemTable.tsx:523 +#: src/tables/stock/StockItemTable.tsx:528 msgid "Delete stock" msgstr "" -#: src/tables/stock/StockItemTable.tsx:525 -msgid "Delete stock items" -msgstr "" +#: src/tables/stock/StockItemTable.tsx:528 +#~ msgid "Delete stock items" +#~ msgstr "Delete stock items" -#: src/tables/stock/StockItemTestResultTable.tsx:131 +#: src/tables/stock/StockItemTestResultTable.tsx:137 msgid "Test" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:157 +#: src/tables/stock/StockItemTestResultTable.tsx:163 msgid "Test result for installed stock item" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:168 -msgid "Result" -msgstr "" - -#: src/tables/stock/StockItemTestResultTable.tsx:190 +#: src/tables/stock/StockItemTestResultTable.tsx:196 msgid "Attachment" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:206 +#: src/tables/stock/StockItemTestResultTable.tsx:212 msgid "Test station" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:226 +#: src/tables/stock/StockItemTestResultTable.tsx:234 msgid "Finished" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:268 -#: src/tables/stock/StockItemTestResultTable.tsx:339 +#: src/tables/stock/StockItemTestResultTable.tsx:286 +#: src/tables/stock/StockItemTestResultTable.tsx:357 msgid "Edit Test Result" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:270 +#: src/tables/stock/StockItemTestResultTable.tsx:288 msgid "Test result updated" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:276 -#: src/tables/stock/StockItemTestResultTable.tsx:348 +#: src/tables/stock/StockItemTestResultTable.tsx:294 +#: src/tables/stock/StockItemTestResultTable.tsx:366 msgid "Delete Test Result" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:278 +#: src/tables/stock/StockItemTestResultTable.tsx:296 msgid "Test result deleted" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:292 +#: src/tables/stock/StockItemTestResultTable.tsx:310 msgid "Test Passed" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:293 +#: src/tables/stock/StockItemTestResultTable.tsx:311 msgid "Test result has been recorded" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:300 +#: src/tables/stock/StockItemTestResultTable.tsx:318 msgid "Failed to record test result" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:317 +#: src/tables/stock/StockItemTestResultTable.tsx:335 msgid "Pass Test" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:366 +#: src/tables/stock/StockItemTestResultTable.tsx:384 msgid "Show results for required tests" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:370 +#: src/tables/stock/StockItemTestResultTable.tsx:388 msgid "Include Installed" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:371 +#: src/tables/stock/StockItemTestResultTable.tsx:389 msgid "Show results for installed stock items" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:375 -#: src/tables/stock/TestStatisticsTable.tsx:74 +#: src/tables/stock/StockItemTestResultTable.tsx:393 +#: src/tables/stock/TestStatisticsTable.tsx:62 msgid "Passed" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:376 +#: src/tables/stock/StockItemTestResultTable.tsx:394 msgid "Show only passed tests" msgstr "" @@ -7922,28 +9179,32 @@ msgid "Filter by location type" msgstr "" #: src/tables/stock/StockLocationTable.tsx:107 -#: src/tables/stock/StockLocationTable.tsx:133 +#: src/tables/stock/StockLocationTable.tsx:134 msgid "Add Stock Location" msgstr "" -#: src/tables/stock/StockTrackingTable.tsx:64 +#: src/tables/stock/StockTrackingTable.tsx:68 msgid "Added" msgstr "" -#: src/tables/stock/StockTrackingTable.tsx:69 +#: src/tables/stock/StockTrackingTable.tsx:73 msgid "Removed" msgstr "" #: src/tables/stock/StockTrackingTable.tsx:198 +msgid "Details" +msgstr "" + +#: src/tables/stock/StockTrackingTable.tsx:213 msgid "No user information" msgstr "" -#: src/tables/stock/TestStatisticsTable.tsx:46 -#: src/tables/stock/TestStatisticsTable.tsx:76 +#: src/tables/stock/TestStatisticsTable.tsx:34 +#: src/tables/stock/TestStatisticsTable.tsx:64 msgid "Total" msgstr "" -#: src/tables/stock/TestStatisticsTable.tsx:75 +#: src/tables/stock/TestStatisticsTable.tsx:63 msgid "Failed" msgstr "" diff --git a/src/frontend/src/locales/en/messages.po b/src/frontend/src/locales/en/messages.po index b9e9b6fea4..ed17c9f667 100644 --- a/src/frontend/src/locales/en/messages.po +++ b/src/frontend/src/locales/en/messages.po @@ -22,8 +22,8 @@ msgid "An error occurred while rendering this component. Refer to the console fo msgstr "An error occurred while rendering this component. Refer to the console for more information." #: src/components/DashboardItemProxy.tsx:34 -msgid "Title" -msgstr "Title" +#~ msgid "Title" +#~ msgstr "Title" #: src/components/buttons/AdminButton.tsx:80 msgid "Open in admin interface" @@ -33,82 +33,99 @@ msgstr "Open in admin interface" #~ msgid "Copy to clipboard" #~ msgstr "Copy to clipboard" -#: src/components/buttons/CopyButton.tsx:24 +#: src/components/buttons/CopyButton.tsx:29 msgid "Copied" msgstr "Copied" -#: src/components/buttons/CopyButton.tsx:24 +#: src/components/buttons/CopyButton.tsx:29 msgid "Copy" msgstr "Copy" -#: src/components/buttons/PrintingActions.tsx:93 +#: src/components/buttons/PrintingActions.tsx:97 msgid "Print Label" msgstr "Print Label" -#: src/components/buttons/PrintingActions.tsx:99 +#: src/components/buttons/PrintingActions.tsx:103 msgid "Print" msgstr "Print" -#: src/components/buttons/PrintingActions.tsx:100 +#: src/components/buttons/PrintingActions.tsx:104 msgid "Label printing completed successfully" msgstr "Label printing completed successfully" -#: src/components/buttons/PrintingActions.tsx:106 -#: src/components/buttons/PrintingActions.tsx:144 -#: src/components/editors/NotesEditor.tsx:65 -#: src/components/editors/NotesEditor.tsx:165 -#: src/components/forms/fields/ApiFormField.tsx:319 +#: src/components/buttons/PrintingActions.tsx:110 +#: src/components/buttons/PrintingActions.tsx:148 +#: src/components/editors/NotesEditor.tsx:73 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:154 +#: src/components/forms/fields/ApiFormField.tsx:328 +#: src/components/forms/fields/TableField.tsx:43 #: src/components/importer/ImportDataSelector.tsx:187 -#: src/components/importer/ImporterColumnSelector.tsx:207 +#: src/components/importer/ImporterColumnSelector.tsx:210 #: src/components/modals/LicenseModal.tsx:75 -#: src/components/nav/SearchDrawer.tsx:448 +#: src/components/nav/SearchDrawer.tsx:458 +#: src/components/render/ModelType.tsx:290 #: src/pages/ErrorPage.tsx:11 -#: src/pages/part/PartPricingPanel.tsx:67 -#: src/tables/InvenTreeTable.tsx:495 +#: src/pages/part/PartPricingPanel.tsx:71 +#: src/tables/InvenTreeTable.tsx:481 #: src/tables/bom/BomTable.tsx:450 -#: src/tables/stock/StockItemTestResultTable.tsx:299 +#: src/tables/stock/StockItemTestResultTable.tsx:317 msgid "Error" msgstr "Error" -#: src/components/buttons/PrintingActions.tsx:107 +#: src/components/buttons/PrintingActions.tsx:111 msgid "The label could not be generated" msgstr "The label could not be generated" -#: src/components/buttons/PrintingActions.tsx:122 +#: src/components/buttons/PrintingActions.tsx:126 msgid "Print Report" msgstr "Print Report" -#: src/components/buttons/PrintingActions.tsx:138 +#: src/components/buttons/PrintingActions.tsx:142 msgid "Generate" msgstr "Generate" -#: src/components/buttons/PrintingActions.tsx:139 +#: src/components/buttons/PrintingActions.tsx:143 msgid "Report printing completed successfully" msgstr "Report printing completed successfully" -#: src/components/buttons/PrintingActions.tsx:145 +#: src/components/buttons/PrintingActions.tsx:149 msgid "The report could not be generated" msgstr "The report could not be generated" -#: src/components/buttons/PrintingActions.tsx:173 +#: src/components/buttons/PrintingActions.tsx:177 msgid "Printing Actions" msgstr "Printing Actions" -#: src/components/buttons/PrintingActions.tsx:178 +#: src/components/buttons/PrintingActions.tsx:182 msgid "Print Labels" msgstr "Print Labels" -#: src/components/buttons/PrintingActions.tsx:184 +#: src/components/buttons/PrintingActions.tsx:188 msgid "Print Reports" msgstr "Print Reports" +#: src/components/buttons/RemoveRowButton.tsx:8 +msgid "Remove this row" +msgstr "Remove this row" + #: src/components/buttons/ScanButton.tsx:15 -msgid "Scan QR code" -msgstr "Scan QR code" +#: src/components/nav/NavigationDrawer.tsx:117 +#: src/forms/PurchaseOrderForms.tsx:379 +#: src/forms/PurchaseOrderForms.tsx:473 +msgid "Scan Barcode" +msgstr "Scan Barcode" + +#: src/components/buttons/ScanButton.tsx:15 +#~ msgid "Scan QR code" +#~ msgstr "Scan QR code" #: src/components/buttons/ScanButton.tsx:20 -msgid "Open QR code scanner" -msgstr "Open QR code scanner" +msgid "Open Barcode Scanner" +msgstr "Open Barcode Scanner" + +#: src/components/buttons/ScanButton.tsx:20 +#~ msgid "Open QR code scanner" +#~ msgstr "Open QR code scanner" #: src/components/buttons/SpotlightButton.tsx:14 msgid "Open spotlight" @@ -123,85 +140,347 @@ msgid "Fail" msgstr "Fail" #: src/components/buttons/YesNoButton.tsx:33 -#: src/tables/Filter.tsx:52 +#: src/tables/Filter.tsx:61 msgid "Yes" msgstr "Yes" #: src/components/buttons/YesNoButton.tsx:33 -#: src/tables/Filter.tsx:53 +#: src/tables/Filter.tsx:62 msgid "No" msgstr "No" -#: src/components/details/Details.tsx:301 +#: src/components/dashboard/DashboardLayout.tsx:286 +msgid "No Widgets Selected" +msgstr "No Widgets Selected" + +#: src/components/dashboard/DashboardLayout.tsx:289 +msgid "Use the menu to add widgets to the dashboard" +msgstr "Use the menu to add widgets to the dashboard" + +#: src/components/dashboard/DashboardMenu.tsx:59 +#: src/components/dashboard/DashboardMenu.tsx:126 +msgid "Accept Layout" +msgstr "Accept Layout" + +#: src/components/dashboard/DashboardMenu.tsx:91 +#: src/components/nav/NavigationDrawer.tsx:71 +#: src/defaults/actions.tsx:17 +#: src/defaults/links.tsx:9 +#: src/pages/Index/Settings/UserSettings.tsx:47 +msgid "Dashboard" +msgstr "Dashboard" + +#: src/components/dashboard/DashboardMenu.tsx:99 +msgid "Edit Layout" +msgstr "Edit Layout" + +#: src/components/dashboard/DashboardMenu.tsx:108 +msgid "Add Widget" +msgstr "Add Widget" + +#: src/components/dashboard/DashboardMenu.tsx:117 +msgid "Remove Widgets" +msgstr "Remove Widgets" + +#: src/components/dashboard/DashboardWidget.tsx:65 +msgid "Remove this widget from the dashboard" +msgstr "Remove this widget from the dashboard" + +#: src/components/dashboard/DashboardWidgetDrawer.tsx:77 +msgid "Filter dashboard widgets" +msgstr "Filter dashboard widgets" + +#: src/components/dashboard/DashboardWidgetDrawer.tsx:98 +msgid "Add this widget to the dashboard" +msgstr "Add this widget to the dashboard" + +#: src/components/dashboard/DashboardWidgetDrawer.tsx:123 +msgid "No Widgets Available" +msgstr "No Widgets Available" + +#: src/components/dashboard/DashboardWidgetDrawer.tsx:124 +msgid "There are no more widgets available for the dashboard" +msgstr "There are no more widgets available for the dashboard" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:19 +msgid "Subscribed Parts" +msgstr "Subscribed Parts" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:20 +msgid "Show the number of parts which you have subscribed to" +msgstr "Show the number of parts which you have subscribed to" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:26 +msgid "Subscribed Categories" +msgstr "Subscribed Categories" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:27 +msgid "Show the number of part categories which you have subscribed to" +msgstr "Show the number of part categories which you have subscribed to" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:35 +#: src/pages/part/PartSchedulingDetail.tsx:304 +#: src/tables/part/PartTable.tsx:238 +msgid "Low Stock" +msgstr "Low Stock" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:37 +msgid "Show the number of parts which are low on stock" +msgstr "Show the number of parts which are low on stock" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:43 +msgid "Expired Stock Items" +msgstr "Expired Stock Items" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:45 +msgid "Show the number of stock items which have expired" +msgstr "Show the number of stock items which have expired" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:51 +msgid "Stale Stock Items" +msgstr "Stale Stock Items" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:53 +msgid "Show the number of stock items which are stale" +msgstr "Show the number of stock items which are stale" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:59 +msgid "Active Build Orders" +msgstr "Active Build Orders" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:61 +msgid "Show the number of build orders which are currently active" +msgstr "Show the number of build orders which are currently active" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:66 +msgid "Overdue Build Orders" +msgstr "Overdue Build Orders" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:68 +msgid "Show the number of build orders which are overdue" +msgstr "Show the number of build orders which are overdue" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:73 +msgid "Assigned Build Orders" +msgstr "Assigned Build Orders" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:75 +msgid "Show the number of build orders which are assigned to you" +msgstr "Show the number of build orders which are assigned to you" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:80 +msgid "Active Sales Orders" +msgstr "Active Sales Orders" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:82 +msgid "Show the number of sales orders which are currently active" +msgstr "Show the number of sales orders which are currently active" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:87 +msgid "Overdue Sales Orders" +msgstr "Overdue Sales Orders" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:89 +msgid "Show the number of sales orders which are overdue" +msgstr "Show the number of sales orders which are overdue" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:94 +msgid "Assigned Sales Orders" +msgstr "Assigned Sales Orders" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:96 +msgid "Show the number of sales orders which are assigned to you" +msgstr "Show the number of sales orders which are assigned to you" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:101 +msgid "Active Purchase Orders" +msgstr "Active Purchase Orders" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:103 +msgid "Show the number of purchase orders which are currently active" +msgstr "Show the number of purchase orders which are currently active" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:108 +msgid "Overdue Purchase Orders" +msgstr "Overdue Purchase Orders" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:110 +msgid "Show the number of purchase orders which are overdue" +msgstr "Show the number of purchase orders which are overdue" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:115 +msgid "Assigned Purchase Orders" +msgstr "Assigned Purchase Orders" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:117 +msgid "Show the number of purchase orders which are assigned to you" +msgstr "Show the number of purchase orders which are assigned to you" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:122 +msgid "Active Return Orders" +msgstr "Active Return Orders" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:124 +msgid "Show the number of return orders which are currently active" +msgstr "Show the number of return orders which are currently active" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:129 +msgid "Overdue Return Orders" +msgstr "Overdue Return Orders" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:131 +msgid "Show the number of return orders which are overdue" +msgstr "Show the number of return orders which are overdue" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:136 +msgid "Assigned Return Orders" +msgstr "Assigned Return Orders" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:138 +msgid "Show the number of return orders which are assigned to you" +msgstr "Show the number of return orders which are assigned to you" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:149 +#: src/components/dashboard/widgets/GetStartedWidget.tsx:15 +#: src/defaults/links.tsx:38 +msgid "Getting Started" +msgstr "Getting Started" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:150 +#: src/defaults/links.tsx:41 +msgid "Getting started with InvenTree" +msgstr "Getting started with InvenTree" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:157 +#: src/components/dashboard/widgets/NewsWidget.tsx:123 +msgid "News Updates" +msgstr "News Updates" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:158 +msgid "The latest news from InvenTree" +msgstr "The latest news from InvenTree" + +#: src/components/dashboard/widgets/ColorToggleWidget.tsx:18 +#: src/components/nav/MainMenu.tsx:77 +msgid "Change Color Mode" +msgstr "Change Color Mode" + +#: src/components/dashboard/widgets/ColorToggleWidget.tsx:23 +msgid "Change the color mode of the user interface" +msgstr "Change the color mode of the user interface" + +#: src/components/dashboard/widgets/LanguageSelectWidget.tsx:18 +msgid "Change Language" +msgstr "Change Language" + +#: src/components/dashboard/widgets/LanguageSelectWidget.tsx:23 +msgid "Change the language of the user interface" +msgstr "Change the language of the user interface" + +#: src/components/dashboard/widgets/NewsWidget.tsx:61 +#: src/components/nav/NotificationDrawer.tsx:88 +#: src/pages/Notifications.tsx:73 +msgid "Mark as read" +msgstr "Mark as read" + +#: src/components/dashboard/widgets/NewsWidget.tsx:115 +msgid "Requires Superuser" +msgstr "Requires Superuser" + +#: src/components/dashboard/widgets/NewsWidget.tsx:116 +msgid "This widget requires superuser permissions" +msgstr "This widget requires superuser permissions" + +#: src/components/dashboard/widgets/NewsWidget.tsx:133 +msgid "No News" +msgstr "No News" + +#: src/components/dashboard/widgets/NewsWidget.tsx:134 +msgid "There are no unread news items" +msgstr "There are no unread news items" + +#: src/components/details/Details.tsx:300 msgid "No name defined" msgstr "No name defined" -#: src/components/details/DetailsImage.tsx:65 +#: src/components/details/DetailsImage.tsx:69 msgid "Remove Image" msgstr "Remove Image" -#: src/components/details/DetailsImage.tsx:68 +#: src/components/details/DetailsImage.tsx:72 msgid "Remove the associated image from this item?" msgstr "Remove the associated image from this item?" -#: src/components/details/DetailsImage.tsx:71 -#: src/forms/StockForms.tsx:533 +#: src/components/details/DetailsImage.tsx:75 +#: src/forms/StockForms.tsx:651 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:199 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:306 -#: src/pages/stock/StockDetail.tsx:526 +#: src/pages/stock/StockDetail.tsx:690 msgid "Remove" msgstr "Remove" -#: src/components/details/DetailsImage.tsx:71 -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:158 -#: src/components/items/ActionDropdown.tsx:215 -#: src/components/items/ActionDropdown.tsx:216 -#: src/contexts/ThemeContext.tsx:43 +#: src/components/details/DetailsImage.tsx:75 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:184 +#: src/components/items/ActionDropdown.tsx:268 +#: src/components/items/ActionDropdown.tsx:269 +#: src/contexts/ThemeContext.tsx:45 #: src/hooks/UseForm.tsx:40 -#: src/tables/FilterSelectDrawer.tsx:205 -#: src/tables/build/BuildOutputTable.tsx:286 +#: src/tables/FilterSelectDrawer.tsx:241 +#: src/tables/RowActions.tsx:59 +#: src/tables/build/BuildOutputTable.tsx:434 msgid "Cancel" msgstr "Cancel" -#: src/components/details/DetailsImage.tsx:97 +#: src/components/details/DetailsImage.tsx:101 msgid "Drag and drop to upload" msgstr "Drag and drop to upload" -#: src/components/details/DetailsImage.tsx:100 +#: src/components/details/DetailsImage.tsx:104 msgid "Click to select file(s)" msgstr "Click to select file(s)" -#: src/components/details/DetailsImage.tsx:226 +#: src/components/details/DetailsImage.tsx:230 msgid "Clear" msgstr "Clear" -#: src/components/details/DetailsImage.tsx:232 -#: src/components/forms/ApiForm.tsx:627 -#: src/contexts/ThemeContext.tsx:43 -#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:60 +#: src/components/details/DetailsImage.tsx:236 +#: src/components/forms/ApiForm.tsx:660 +#: src/contexts/ThemeContext.tsx:45 msgid "Submit" msgstr "Submit" -#: src/components/details/DetailsImage.tsx:272 +#: src/components/details/DetailsImage.tsx:280 msgid "Select from existing images" msgstr "Select from existing images" -#: src/components/details/DetailsImage.tsx:280 +#: src/components/details/DetailsImage.tsx:288 msgid "Select Image" msgstr "Select Image" -#: src/components/details/DetailsImage.tsx:292 +#: src/components/details/DetailsImage.tsx:304 +msgid "Download remote image" +msgstr "Download remote image" + +#: src/components/details/DetailsImage.tsx:319 msgid "Upload new image" msgstr "Upload new image" -#: src/components/details/DetailsImage.tsx:299 +#: src/components/details/DetailsImage.tsx:326 msgid "Upload Image" msgstr "Upload Image" -#: src/components/details/DetailsImage.tsx:312 +#: src/components/details/DetailsImage.tsx:339 msgid "Delete image" msgstr "Delete image" +#: src/components/details/DetailsImage.tsx:373 +msgid "Download Image" +msgstr "Download Image" + +#: src/components/details/DetailsImage.tsx:378 +msgid "Image downloaded successfully" +msgstr "Image downloaded successfully" + #: src/components/details/PartIcons.tsx:43 #~ msgid "Part is a template part (variants can be made from this part)" #~ msgstr "Part is a template part (variants can be made from this part)" @@ -230,36 +509,57 @@ msgstr "Delete image" #~ msgid "Part is virtual (not a physical part)" #~ msgstr "Part is virtual (not a physical part)" -#: src/components/editors/NotesEditor.tsx:66 +#: src/components/editors/NotesEditor.tsx:74 msgid "Image upload failed" msgstr "Image upload failed" -#: src/components/editors/NotesEditor.tsx:156 -#: src/components/forms/ApiForm.tsx:467 +#: src/components/editors/NotesEditor.tsx:83 +#: src/components/editors/NotesEditor.tsx:119 +#: src/components/forms/ApiForm.tsx:475 #: src/tables/bom/BomTable.tsx:441 msgid "Success" msgstr "Success" -#: src/components/editors/NotesEditor.tsx:157 +#: src/components/editors/NotesEditor.tsx:84 +msgid "Image uploaded successfully" +msgstr "Image uploaded successfully" + +#: src/components/editors/NotesEditor.tsx:120 msgid "Notes saved successfully" msgstr "Notes saved successfully" -#: src/components/editors/NotesEditor.tsx:166 +#: src/components/editors/NotesEditor.tsx:131 msgid "Failed to save notes" msgstr "Failed to save notes" -#: src/components/editors/NotesEditor.tsx:198 -msgid "Preview Notes" -msgstr "Preview Notes" +#: src/components/editors/NotesEditor.tsx:134 +msgid "Error Saving Notes" +msgstr "Error Saving Notes" -#: src/components/editors/NotesEditor.tsx:198 -msgid "Edit Notes" -msgstr "Edit Notes" +#: src/components/editors/NotesEditor.tsx:151 +#~ msgid "Disable Editing" +#~ msgstr "Disable Editing" -#: src/components/editors/NotesEditor.tsx:212 +#: src/components/editors/NotesEditor.tsx:154 msgid "Save Notes" msgstr "Save Notes" +#: src/components/editors/NotesEditor.tsx:173 +msgid "Close Editor" +msgstr "Close Editor" + +#: src/components/editors/NotesEditor.tsx:180 +msgid "Enable Editing" +msgstr "Enable Editing" + +#: src/components/editors/NotesEditor.tsx:198 +#~ msgid "Preview Notes" +#~ msgstr "Preview Notes" + +#: src/components/editors/NotesEditor.tsx:198 +#~ msgid "Edit Notes" +#~ msgstr "Edit Notes" + #: src/components/editors/TemplateEditor/CodeEditor/index.tsx:9 msgid "Code" msgstr "Code" @@ -276,40 +576,44 @@ msgstr "Preview not available, click \"Reload Preview\"." msgid "PDF Preview" msgstr "PDF Preview" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:104 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:115 msgid "Error loading template" msgstr "Error loading template" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:116 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:127 msgid "Error saving template" msgstr "Error saving template" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:146 -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:274 -msgid "Save & Reload Preview" -msgstr "Save & Reload Preview" - -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:151 -msgid "Are you sure you want to Save & Reload the preview?" -msgstr "Are you sure you want to Save & Reload the preview?" - #: src/components/editors/TemplateEditor/TemplateEditor.tsx:151 #~ msgid "Save & Reload preview?" #~ msgstr "Save & Reload preview?" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:153 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:155 +msgid "Could not load the template from the server." +msgstr "Could not load the template from the server." + +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:172 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:303 +msgid "Save & Reload Preview" +msgstr "Save & Reload Preview" + +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:177 +msgid "Are you sure you want to Save & Reload the preview?" +msgstr "Are you sure you want to Save & Reload the preview?" + +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:179 msgid "To render the preview the current template needs to be replaced on the server with your modifications which may break the label if it is under active use. Do you want to proceed?" msgstr "To render the preview the current template needs to be replaced on the server with your modifications which may break the label if it is under active use. Do you want to proceed?" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:157 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:183 msgid "Save & Reload" msgstr "Save & Reload" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:189 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:215 msgid "Preview updated" msgstr "Preview updated" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:190 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:216 msgid "The preview has been updated successfully." msgstr "The preview has been updated successfully." @@ -317,15 +621,15 @@ msgstr "The preview has been updated successfully." #~ msgid "Save & Reload preview" #~ msgstr "Save & Reload preview" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:266 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:295 msgid "Reload preview" msgstr "Reload preview" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:267 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:296 msgid "Use the currently stored template from the server" msgstr "Use the currently stored template from the server" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:275 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:304 msgid "Save the current template and reload the preview" msgstr "Save the current template and reload the preview" @@ -333,11 +637,11 @@ msgstr "Save the current template and reload the preview" #~ msgid "to preview" #~ msgstr "to preview" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:333 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:365 msgid "Select instance to preview" msgstr "Select instance to preview" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:377 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:409 msgid "Error rendering template" msgstr "Error rendering template" @@ -374,6 +678,7 @@ msgid "This page does not exist" msgstr "This page does not exist" #: src/components/errors/PermissionDenied.tsx:8 +#: src/functions/notifications.tsx:24 msgid "Permission Denied" msgstr "Permission Denied" @@ -389,8 +694,8 @@ msgstr "Server Error" msgid "A server error occurred" msgstr "A server error occurred" -#: src/components/forms/ApiForm.tsx:151 -#: src/components/forms/ApiForm.tsx:555 +#: src/components/forms/ApiForm.tsx:154 +#: src/components/forms/ApiForm.tsx:579 msgid "Form Error" msgstr "Form Error" @@ -398,22 +703,22 @@ msgstr "Form Error" #~ msgid "Form Errors Exist" #~ msgstr "Form Errors Exist" -#: src/components/forms/ApiForm.tsx:563 +#: src/components/forms/ApiForm.tsx:587 msgid "Errors exist for one or more form fields" msgstr "Errors exist for one or more form fields" -#: src/components/forms/ApiForm.tsx:665 -#: src/tables/plugin/PluginListTable.tsx:388 +#: src/components/forms/ApiForm.tsx:698 +#: src/tables/plugin/PluginListTable.tsx:195 msgid "Update" msgstr "Update" -#: src/components/forms/ApiForm.tsx:685 -#: src/components/items/ActionDropdown.tsx:195 +#: src/components/forms/ApiForm.tsx:718 +#: src/components/items/ActionDropdown.tsx:248 #: src/hooks/UseForm.tsx:122 -#: src/pages/Index/Scan.tsx:343 +#: src/pages/Index/Scan.tsx:357 #: src/pages/Notifications.tsx:123 -#: src/tables/RowActions.tsx:43 -#: src/tables/plugin/PluginListTable.tsx:420 +#: src/tables/RowActions.tsx:49 +#: src/tables/plugin/PluginListTable.tsx:232 msgid "Delete" msgstr "Delete" @@ -423,14 +728,6 @@ msgstr "Delete" #~ msgid "Check your your input and try again." #~ msgstr "Check your your input and try again." -#: src/components/forms/AuthenticationForm.tsx:51 -msgid "Login successful" -msgstr "Login successful" - -#: src/components/forms/AuthenticationForm.tsx:52 -msgid "Logged in successfully" -msgstr "Logged in successfully" - #: src/components/forms/AuthenticationForm.tsx:52 #~ msgid "Welcome back!" #~ msgstr "Welcome back!" @@ -439,14 +736,22 @@ msgstr "Logged in successfully" #~ msgid "Login successfull" #~ msgstr "Login successfull" -#: src/components/forms/AuthenticationForm.tsx:58 +#: src/components/forms/AuthenticationForm.tsx:55 +msgid "Login successful" +msgstr "Login successful" + +#: src/components/forms/AuthenticationForm.tsx:56 +msgid "Logged in successfully" +msgstr "Logged in successfully" + +#: src/components/forms/AuthenticationForm.tsx:61 msgid "Login failed" msgstr "Login failed" -#: src/components/forms/AuthenticationForm.tsx:59 -#: src/components/forms/AuthenticationForm.tsx:76 -#: src/components/forms/AuthenticationForm.tsx:211 -#: src/functions/auth.tsx:164 +#: src/components/forms/AuthenticationForm.tsx:62 +#: src/components/forms/AuthenticationForm.tsx:79 +#: src/components/forms/AuthenticationForm.tsx:214 +#: src/functions/auth.tsx:175 msgid "Check your input and try again." msgstr "Check your input and try again." @@ -455,45 +760,46 @@ msgstr "Check your input and try again." #~ msgid "Mail delivery successfull" #~ msgstr "Mail delivery successfull" -#: src/components/forms/AuthenticationForm.tsx:70 -#: src/functions/auth.tsx:155 +#: src/components/forms/AuthenticationForm.tsx:73 +#: src/functions/auth.tsx:166 msgid "Mail delivery successful" msgstr "Mail delivery successful" -#: src/components/forms/AuthenticationForm.tsx:71 +#: src/components/forms/AuthenticationForm.tsx:74 msgid "Check your inbox for the login link. If you have an account, you will receive a login link. Check in spam too." msgstr "Check your inbox for the login link. If you have an account, you will receive a login link. Check in spam too." -#: src/components/forms/AuthenticationForm.tsx:75 +#: src/components/forms/AuthenticationForm.tsx:78 msgid "Mail delivery failed" msgstr "Mail delivery failed" -#: src/components/forms/AuthenticationForm.tsx:95 +#: src/components/forms/AuthenticationForm.tsx:98 msgid "Or continue with other methods" msgstr "Or continue with other methods" -#: src/components/forms/AuthenticationForm.tsx:106 -#: src/components/forms/AuthenticationForm.tsx:227 +#: src/components/forms/AuthenticationForm.tsx:109 +#: src/components/forms/AuthenticationForm.tsx:230 +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:67 msgid "Username" msgstr "Username" -#: src/components/forms/AuthenticationForm.tsx:107 -#: src/components/forms/AuthenticationForm.tsx:228 +#: src/components/forms/AuthenticationForm.tsx:110 +#: src/components/forms/AuthenticationForm.tsx:231 msgid "Your username" msgstr "Your username" -#: src/components/forms/AuthenticationForm.tsx:112 -#: src/components/forms/AuthenticationForm.tsx:240 -#: src/pages/Auth/Set-Password.tsx:106 +#: src/components/forms/AuthenticationForm.tsx:115 +#: src/components/forms/AuthenticationForm.tsx:243 +#: src/pages/Auth/Set-Password.tsx:101 msgid "Password" msgstr "Password" -#: src/components/forms/AuthenticationForm.tsx:113 -#: src/components/forms/AuthenticationForm.tsx:241 +#: src/components/forms/AuthenticationForm.tsx:116 +#: src/components/forms/AuthenticationForm.tsx:244 msgid "Your password" msgstr "Your password" -#: src/components/forms/AuthenticationForm.tsx:125 +#: src/components/forms/AuthenticationForm.tsx:128 #: src/pages/Auth/Reset.tsx:26 msgid "Reset password" msgstr "Reset password" @@ -502,77 +808,79 @@ msgstr "Reset password" #~ msgid "Log in" #~ msgstr "Log in" -#: src/components/forms/AuthenticationForm.tsx:134 -#: src/components/forms/AuthenticationForm.tsx:233 +#: src/components/forms/AuthenticationForm.tsx:136 +#~ msgid "I will use username and password" +#~ msgstr "I will use username and password" + +#: src/components/forms/AuthenticationForm.tsx:137 +#: src/components/forms/AuthenticationForm.tsx:236 #: src/pages/Auth/Reset.tsx:31 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:51 msgid "Email" msgstr "Email" -#: src/components/forms/AuthenticationForm.tsx:135 +#: src/components/forms/AuthenticationForm.tsx:138 #: src/pages/Auth/Reset.tsx:32 -#: src/pages/Auth/Set-Password.tsx:107 +#: src/pages/Auth/Set-Password.tsx:102 msgid "We will send you a link to login - if you are registered" msgstr "We will send you a link to login - if you are registered" -#: src/components/forms/AuthenticationForm.tsx:136 -#~ msgid "I will use username and password" -#~ msgstr "I will use username and password" - -#: src/components/forms/AuthenticationForm.tsx:151 +#: src/components/forms/AuthenticationForm.tsx:154 msgid "Send me an email" msgstr "Send me an email" -#: src/components/forms/AuthenticationForm.tsx:153 +#: src/components/forms/AuthenticationForm.tsx:156 msgid "Use username and password" msgstr "Use username and password" -#: src/components/forms/AuthenticationForm.tsx:162 +#: src/components/forms/AuthenticationForm.tsx:165 msgid "Log In" msgstr "Log In" -#: src/components/forms/AuthenticationForm.tsx:164 +#: src/components/forms/AuthenticationForm.tsx:167 +#: src/pages/Auth/Reset.tsx:41 +#: src/pages/Auth/Set-Password.tsx:107 msgid "Send Email" msgstr "Send Email" -#: src/components/forms/AuthenticationForm.tsx:193 +#: src/components/forms/AuthenticationForm.tsx:196 msgid "Registration successful" msgstr "Registration successful" -#: src/components/forms/AuthenticationForm.tsx:194 +#: src/components/forms/AuthenticationForm.tsx:197 msgid "Please confirm your email address to complete the registration" msgstr "Please confirm your email address to complete the registration" -#: src/components/forms/AuthenticationForm.tsx:210 +#: src/components/forms/AuthenticationForm.tsx:213 msgid "Input error" msgstr "Input error" -#: src/components/forms/AuthenticationForm.tsx:234 +#: src/components/forms/AuthenticationForm.tsx:237 msgid "This will be used for a confirmation" msgstr "This will be used for a confirmation" -#: src/components/forms/AuthenticationForm.tsx:246 +#: src/components/forms/AuthenticationForm.tsx:249 msgid "Password repeat" msgstr "Password repeat" -#: src/components/forms/AuthenticationForm.tsx:247 +#: src/components/forms/AuthenticationForm.tsx:250 msgid "Repeat password" msgstr "Repeat password" -#: src/components/forms/AuthenticationForm.tsx:259 -#: src/components/forms/AuthenticationForm.tsx:304 +#: src/components/forms/AuthenticationForm.tsx:262 +#: src/components/forms/AuthenticationForm.tsx:307 msgid "Register" msgstr "Register" -#: src/components/forms/AuthenticationForm.tsx:265 +#: src/components/forms/AuthenticationForm.tsx:268 msgid "Or use SSO" msgstr "Or use SSO" -#: src/components/forms/AuthenticationForm.tsx:296 +#: src/components/forms/AuthenticationForm.tsx:299 msgid "Don't have an account?" msgstr "Don't have an account?" -#: src/components/forms/AuthenticationForm.tsx:315 +#: src/components/forms/AuthenticationForm.tsx:318 msgid "Go back to login" msgstr "Go back to login" @@ -583,19 +891,20 @@ msgstr "Host" #: src/components/forms/HostOptionsForm.tsx:42 #: src/components/forms/HostOptionsForm.tsx:70 +#: src/components/plugins/PluginDrawer.tsx:69 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:410 +#: src/pages/Index/Settings/AdminCenter/UnitManagmentPanel.tsx:19 #: src/pages/part/CategoryDetail.tsx:81 -#: src/pages/part/PartDetail.tsx:143 -#: src/pages/stock/LocationDetail.tsx:89 -#: src/tables/machine/MachineTypeTable.tsx:65 -#: src/tables/machine/MachineTypeTable.tsx:109 -#: src/tables/machine/MachineTypeTable.tsx:216 -#: src/tables/machine/MachineTypeTable.tsx:319 +#: src/pages/part/PartDetail.tsx:164 +#: src/pages/stock/LocationDetail.tsx:83 +#: src/tables/machine/MachineTypeTable.tsx:70 +#: src/tables/machine/MachineTypeTable.tsx:119 +#: src/tables/machine/MachineTypeTable.tsx:237 +#: src/tables/machine/MachineTypeTable.tsx:340 #: src/tables/plugin/PluginErrorTable.tsx:33 -#: src/tables/plugin/PluginListTable.tsx:126 #: src/tables/purchasing/ManufacturerPartParameterTable.tsx:32 #: src/tables/settings/GroupTable.tsx:147 -#: src/tables/settings/PendingTasksTable.tsx:28 +#: src/tables/settings/PendingTasksTable.tsx:32 #: src/tables/stock/LocationTypesTable.tsx:69 msgid "Name" msgstr "Name" @@ -645,7 +954,7 @@ msgid "Uncategorized" msgstr "Uncategorized" #: src/components/forms/fields/IconField.tsx:209 -#: src/components/nav/Layout.tsx:70 +#: src/components/nav/Layout.tsx:77 #: src/tables/part/PartThumbTable.tsx:192 msgid "Search..." msgstr "Search..." @@ -662,28 +971,27 @@ msgstr "Select pack" msgid "{0} icons" msgstr "{0} icons" -#: src/components/forms/fields/RelatedModelField.tsx:318 -#: src/pages/Index/Settings/UserSettings.tsx:96 +#: src/components/forms/fields/RelatedModelField.tsx:319 +#: src/pages/Index/Settings/UserSettings.tsx:97 #: src/tables/Search.tsx:23 msgid "Search" msgstr "Search" -#: src/components/forms/fields/RelatedModelField.tsx:319 +#: src/components/forms/fields/RelatedModelField.tsx:320 #: src/components/modals/AboutInvenTreeModal.tsx:81 -#: src/components/widgets/WidgetLayout.tsx:120 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:316 msgid "Loading" msgstr "Loading" -#: src/components/forms/fields/RelatedModelField.tsx:321 +#: src/components/forms/fields/RelatedModelField.tsx:322 msgid "No results found" msgstr "No results found" -#: src/components/forms/fields/TableField.tsx:52 -msgid "modelRenderer entry required for tables" -msgstr "modelRenderer entry required for tables" +#: src/components/forms/fields/TableField.tsx:72 +#~ msgid "modelRenderer entry required for tables" +#~ msgstr "modelRenderer entry required for tables" -#: src/components/forms/fields/TableField.tsx:76 +#: src/components/forms/fields/TableField.tsx:167 msgid "No entries available" msgstr "No entries available" @@ -736,7 +1044,7 @@ msgid "Filter by row validation status" msgstr "Filter by row validation status" #: src/components/importer/ImportDataSelector.tsx:365 -#: src/tables/build/BuildOutputTable.tsx:266 +#: src/tables/build/BuildOutputTable.tsx:407 msgid "Complete" msgstr "Complete" @@ -744,20 +1052,21 @@ msgstr "Complete" msgid "Filter by row completion status" msgstr "Filter by row completion status" -#: src/components/importer/ImportDataSelector.tsx:383 +#: src/components/importer/ImportDataSelector.tsx:384 msgid "Import selected rows" msgstr "Import selected rows" -#: src/components/importer/ImportDataSelector.tsx:398 +#: src/components/importer/ImportDataSelector.tsx:399 msgid "Processing Data" msgstr "Processing Data" -#: src/components/importer/ImporterColumnSelector.tsx:50 -#: src/components/importer/ImporterColumnSelector.tsx:176 +#: src/components/importer/ImporterColumnSelector.tsx:53 +#: src/components/importer/ImporterColumnSelector.tsx:179 +#: src/components/items/ErrorItem.tsx:12 msgid "An error occurred" msgstr "An error occurred" -#: src/components/importer/ImporterColumnSelector.tsx:62 +#: src/components/importer/ImporterColumnSelector.tsx:65 msgid "Select column, or leave blank to ignore this field." msgstr "Select column, or leave blank to ignore this field." @@ -773,51 +1082,51 @@ msgstr "Select column, or leave blank to ignore this field." #~ msgid "Imported Column Name" #~ msgstr "Imported Column Name" -#: src/components/importer/ImporterColumnSelector.tsx:182 +#: src/components/importer/ImporterColumnSelector.tsx:185 msgid "Ignore this field" msgstr "Ignore this field" -#: src/components/importer/ImporterColumnSelector.tsx:196 +#: src/components/importer/ImporterColumnSelector.tsx:199 msgid "Mapping data columns to database fields" msgstr "Mapping data columns to database fields" -#: src/components/importer/ImporterColumnSelector.tsx:201 +#: src/components/importer/ImporterColumnSelector.tsx:204 msgid "Accept Column Mapping" msgstr "Accept Column Mapping" -#: src/components/importer/ImporterColumnSelector.tsx:214 +#: src/components/importer/ImporterColumnSelector.tsx:217 msgid "Database Field" msgstr "Database Field" -#: src/components/importer/ImporterColumnSelector.tsx:215 +#: src/components/importer/ImporterColumnSelector.tsx:218 msgid "Field Description" msgstr "Field Description" -#: src/components/importer/ImporterColumnSelector.tsx:216 +#: src/components/importer/ImporterColumnSelector.tsx:219 msgid "Imported Column" msgstr "Imported Column" -#: src/components/importer/ImporterColumnSelector.tsx:217 +#: src/components/importer/ImporterColumnSelector.tsx:220 msgid "Default Value" msgstr "Default Value" -#: src/components/importer/ImporterDrawer.tsx:44 +#: src/components/importer/ImporterDrawer.tsx:46 msgid "Upload File" msgstr "Upload File" -#: src/components/importer/ImporterDrawer.tsx:45 +#: src/components/importer/ImporterDrawer.tsx:47 msgid "Map Columns" msgstr "Map Columns" -#: src/components/importer/ImporterDrawer.tsx:46 +#: src/components/importer/ImporterDrawer.tsx:48 msgid "Import Data" msgstr "Import Data" -#: src/components/importer/ImporterDrawer.tsx:47 +#: src/components/importer/ImporterDrawer.tsx:49 msgid "Process Data" msgstr "Process Data" -#: src/components/importer/ImporterDrawer.tsx:48 +#: src/components/importer/ImporterDrawer.tsx:50 msgid "Complete Import" msgstr "Complete Import" @@ -825,28 +1134,28 @@ msgstr "Complete Import" #~ msgid "Cancel import session" #~ msgstr "Cancel import session" -#: src/components/importer/ImporterDrawer.tsx:104 +#: src/components/importer/ImporterDrawer.tsx:106 msgid "Import Complete" msgstr "Import Complete" -#: src/components/importer/ImporterDrawer.tsx:107 +#: src/components/importer/ImporterDrawer.tsx:109 msgid "Data has been imported successfully" msgstr "Data has been imported successfully" -#: src/components/importer/ImporterDrawer.tsx:109 -#: src/components/importer/ImporterDrawer.tsx:118 +#: src/components/importer/ImporterDrawer.tsx:111 +#: src/components/importer/ImporterDrawer.tsx:120 msgid "Close" msgstr "Close" -#: src/components/importer/ImporterDrawer.tsx:115 +#: src/components/importer/ImporterDrawer.tsx:117 msgid "Unknown Status" msgstr "Unknown Status" -#: src/components/importer/ImporterDrawer.tsx:116 +#: src/components/importer/ImporterDrawer.tsx:118 msgid "Import session has unknown status" msgstr "Import session has unknown status" -#: src/components/importer/ImporterDrawer.tsx:135 +#: src/components/importer/ImporterDrawer.tsx:137 msgid "Importing Data" msgstr "Importing Data" @@ -855,85 +1164,115 @@ msgid "Importing Records" msgstr "Importing Records" #: src/components/importer/ImporterImportProgress.tsx:39 -msgid "Imported rows" -msgstr "Imported rows" +#: src/tables/settings/ImportSessionTable.tsx:78 +msgid "Imported Rows" +msgstr "Imported Rows" -#: src/components/items/ActionDropdown.tsx:121 +#: src/components/importer/ImporterImportProgress.tsx:39 +#~ msgid "Imported rows" +#~ msgstr "Imported rows" + +#: src/components/items/ActionDropdown.tsx:126 +msgid "Options" +msgstr "Options" + +#: src/components/items/ActionDropdown.tsx:140 +#~ msgid "View Barcode" +#~ msgstr "View Barcode" + +#: src/components/items/ActionDropdown.tsx:162 +#: src/tables/InvenTreeTableHeader.tsx:159 +#: src/tables/InvenTreeTableHeader.tsx:160 msgid "Barcode Actions" msgstr "Barcode Actions" -#: src/components/items/ActionDropdown.tsx:140 -msgid "View Barcode" -msgstr "View Barcode" +#: src/components/items/ActionDropdown.tsx:162 +#~ msgid "Link custom barcode" +#~ msgstr "Link custom barcode" -#: src/components/items/ActionDropdown.tsx:147 +#: src/components/items/ActionDropdown.tsx:167 msgid "View" msgstr "View" -#: src/components/items/ActionDropdown.tsx:148 +#: src/components/items/ActionDropdown.tsx:169 msgid "View barcode" msgstr "View barcode" -#: src/components/items/ActionDropdown.tsx:161 +#: src/components/items/ActionDropdown.tsx:175 msgid "Link Barcode" msgstr "Link Barcode" -#: src/components/items/ActionDropdown.tsx:162 -msgid "Link custom barcode" -msgstr "Link custom barcode" +#: src/components/items/ActionDropdown.tsx:177 +msgid "Link a custom barcode to this item" +msgstr "Link a custom barcode to this item" -#: src/components/items/ActionDropdown.tsx:173 -#: src/forms/PurchaseOrderForms.tsx:426 +#: src/components/items/ActionDropdown.tsx:183 +#: src/components/items/QRCode.tsx:193 +#: src/forms/PurchaseOrderForms.tsx:464 msgid "Unlink Barcode" msgstr "Unlink Barcode" -#: src/components/items/ActionDropdown.tsx:174 +#: src/components/items/ActionDropdown.tsx:185 msgid "Unlink custom barcode" msgstr "Unlink custom barcode" -#: src/components/items/ActionDropdown.tsx:183 -#: src/tables/RowActions.tsx:33 +#: src/components/items/ActionDropdown.tsx:236 +#: src/tables/RowActions.tsx:39 msgid "Edit" msgstr "Edit" -#: src/components/items/ActionDropdown.tsx:184 +#: src/components/items/ActionDropdown.tsx:237 msgid "Edit item" msgstr "Edit item" -#: src/components/items/ActionDropdown.tsx:196 +#: src/components/items/ActionDropdown.tsx:249 msgid "Delete item" msgstr "Delete item" -#: src/components/items/ActionDropdown.tsx:204 -#: src/components/items/ActionDropdown.tsx:205 +#: src/components/items/ActionDropdown.tsx:257 +#: src/components/items/ActionDropdown.tsx:258 msgid "Hold" msgstr "Hold" -#: src/components/items/ActionDropdown.tsx:227 -#: src/tables/RowActions.tsx:23 +#: src/components/items/ActionDropdown.tsx:280 +#: src/tables/RowActions.tsx:29 msgid "Duplicate" msgstr "Duplicate" -#: src/components/items/ActionDropdown.tsx:228 +#: src/components/items/ActionDropdown.tsx:281 msgid "Duplicate item" msgstr "Duplicate item" +#: src/components/items/BarcodeInput.tsx:23 +msgid "Scan barcode data here using barcode scanner" +msgstr "Scan barcode data here using barcode scanner" + +#: src/components/items/BarcodeInput.tsx:24 +#: src/tables/settings/BarcodeScanHistoryTable.tsx:65 +msgid "Barcode" +msgstr "Barcode" + +#: src/components/items/BarcodeInput.tsx:25 +msgid "Scan" +msgstr "Scan" + #: src/components/items/DocTooltip.tsx:92 +#: src/components/items/GettingStartedCarousel.tsx:20 msgid "Read More" msgstr "Read More" -#: src/components/items/ErrorItem.tsx:5 -#: src/tables/InvenTreeTable.tsx:487 +#: src/components/items/ErrorItem.tsx:8 +#: src/tables/InvenTreeTable.tsx:473 msgid "Unknown error" msgstr "Unknown error" -#: src/components/items/ErrorItem.tsx:10 -msgid "An error occurred:" -msgstr "An error occurred:" +#: src/components/items/ErrorItem.tsx:13 +#~ msgid "An error occurred:" +#~ msgstr "An error occurred:" #: src/components/items/GettingStartedCarousel.tsx:27 -msgid "Read more" -msgstr "Read more" +#~ msgid "Read more" +#~ msgstr "Read more" #: src/components/items/InfoItem.tsx:27 msgid "None" @@ -960,30 +1299,51 @@ msgstr "PLH" msgid "This panel is a placeholder." msgstr "This panel is a placeholder." -#: src/components/items/QRCode.tsx:87 +#: src/components/items/QRCode.tsx:89 msgid "Low (7%)" msgstr "Low (7%)" -#: src/components/items/QRCode.tsx:88 +#: src/components/items/QRCode.tsx:90 msgid "Medium (15%)" msgstr "Medium (15%)" -#: src/components/items/QRCode.tsx:89 +#: src/components/items/QRCode.tsx:91 msgid "Quartile (25%)" msgstr "Quartile (25%)" -#: src/components/items/QRCode.tsx:90 +#: src/components/items/QRCode.tsx:92 msgid "High (30%)" msgstr "High (30%)" -#: src/components/items/QRCode.tsx:107 +#: src/components/items/QRCode.tsx:100 +msgid "Custom barcode" +msgstr "Custom barcode" + +#: src/components/items/QRCode.tsx:101 +msgid "A custom barcode is registered for this item. The shown code is not that custom barcode." +msgstr "A custom barcode is registered for this item. The shown code is not that custom barcode." + +#: src/components/items/QRCode.tsx:118 msgid "Barcode Data:" msgstr "Barcode Data:" -#: src/components/items/QRCode.tsx:118 +#: src/components/items/QRCode.tsx:129 msgid "Select Error Correction Level" msgstr "Select Error Correction Level" +#: src/components/items/QRCode.tsx:171 +#: src/pages/part/PartDetail.tsx:239 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:187 +#: src/pages/sales/ReturnOrderDetail.tsx:157 +#: src/pages/sales/SalesOrderDetail.tsx:169 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:166 +msgid "Link" +msgstr "Link" + +#: src/components/items/QRCode.tsx:190 +msgid "This will remove the link to the associated barcode" +msgstr "This will remove the link to the associated barcode" + #: src/components/modals/AboutInvenTreeModal.tsx:99 msgid "Version Information" msgstr "Version Information" @@ -1057,11 +1417,11 @@ msgstr "Mobile App" msgid "Submit Bug Report" msgstr "Submit Bug Report" -#: src/components/modals/AboutInvenTreeModal.tsx:183 +#: src/components/modals/AboutInvenTreeModal.tsx:181 msgid "Copy version information" msgstr "Copy version information" -#: src/components/modals/AboutInvenTreeModal.tsx:192 +#: src/components/modals/AboutInvenTreeModal.tsx:189 #: src/components/modals/ServerInfoModal.tsx:147 msgid "Dismiss" msgstr "Dismiss" @@ -1086,61 +1446,20 @@ msgstr "Failed to fetch license information" msgid "{key} Packages" msgstr "{key} Packages" -#: src/components/modals/QrCodeModal.tsx:72 +#: src/components/modals/QrCodeModal.tsx:24 msgid "Unknown response" msgstr "Unknown response" -#: src/components/modals/QrCodeModal.tsx:102 -#: src/pages/Index/Scan.tsx:636 -msgid "Error while getting camera" -msgstr "Error while getting camera" - -#: src/components/modals/QrCodeModal.tsx:125 -#: src/pages/Index/Scan.tsx:659 -msgid "Error while scanning" -msgstr "Error while scanning" - -#: src/components/modals/QrCodeModal.tsx:139 -#: src/pages/Index/Scan.tsx:673 -msgid "Error while stopping" -msgstr "Error while stopping" - -#: src/components/modals/QrCodeModal.tsx:154 -#: src/defaults/menuItems.tsx:21 -#: src/pages/Index/Scan.tsx:746 -msgid "Scanning" -msgstr "Scanning" - -#: src/components/modals/QrCodeModal.tsx:154 -#: src/pages/Index/Scan.tsx:746 -msgid "Not scanning" -msgstr "Not scanning" - -#: src/components/modals/QrCodeModal.tsx:159 -#: src/pages/Index/Scan.tsx:752 -msgid "Select Camera" -msgstr "Select Camera" - -#: src/components/modals/QrCodeModal.tsx:169 -#: src/pages/Index/Scan.tsx:737 -msgid "Start scanning" -msgstr "Start scanning" - -#: src/components/modals/QrCodeModal.tsx:176 -#: src/pages/Index/Scan.tsx:729 -msgid "Stop scanning" -msgstr "Stop scanning" - -#: src/components/modals/QrCodeModal.tsx:181 +#: src/components/modals/QrCodeModal.tsx:39 msgid "No scans yet!" msgstr "No scans yet!" -#: src/components/modals/QrCodeModal.tsx:201 +#: src/components/modals/QrCodeModal.tsx:57 msgid "Close modal" msgstr "Close modal" #: src/components/modals/ServerInfoModal.tsx:26 -#: src/pages/Index/Settings/SystemSettings.tsx:38 +#: src/pages/Index/Settings/SystemSettings.tsx:37 msgid "Server" msgstr "Server" @@ -1201,6 +1520,7 @@ msgid "Background Worker" msgstr "Background Worker" #: src/components/modals/ServerInfoModal.tsx:101 +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:29 msgid "Background worker not running" msgstr "Background worker not running" @@ -1213,8 +1533,8 @@ msgid "Email settings not configured" msgstr "Email settings not configured" #: src/components/modals/ServerInfoModal.tsx:121 -#: src/tables/plugin/PluginListTable.tsx:144 -#: src/tables/plugin/PluginListTable.tsx:294 +#: src/components/plugins/PluginDrawer.tsx:89 +#: src/tables/plugin/PluginListTable.tsx:116 msgid "Version" msgstr "Version" @@ -1222,7 +1542,7 @@ msgstr "Version" msgid "Server Version" msgstr "Server Version" -#: src/components/nav/Layout.tsx:73 +#: src/components/nav/Layout.tsx:80 msgid "Nothing found..." msgstr "Nothing found..." @@ -1232,18 +1552,26 @@ msgstr "Nothing found..." #~ msgstr "Profile" #: src/components/nav/MainMenu.tsx:52 +#: src/components/nav/NavigationDrawer.tsx:178 #: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:28 msgid "Settings" msgstr "Settings" +#: src/components/nav/MainMenu.tsx:59 +#: src/pages/Index/Settings/UserSettings.tsx:152 +msgid "Account Settings" +msgstr "Account Settings" + #: src/components/nav/MainMenu.tsx:59 #: src/defaults/menuItems.tsx:15 -msgid "Account settings" -msgstr "Account settings" +#~ msgid "Account settings" +#~ msgstr "Account settings" #: src/components/nav/MainMenu.tsx:67 -#: src/defaults/menuItems.tsx:58 -#: src/pages/Index/Settings/SystemSettings.tsx:315 +#: src/components/nav/NavigationDrawer.tsx:141 +#: src/components/nav/SettingsHeader.tsx:49 +#: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:37 +#: src/pages/Index/Settings/SystemSettings.tsx:310 msgid "System Settings" msgstr "System Settings" @@ -1255,14 +1583,11 @@ msgstr "System Settings" #~ msgid "Switch to pseudo language" #~ msgstr "Switch to pseudo language" -#: src/components/nav/MainMenu.tsx:77 -msgid "Change Color Mode" -msgstr "Change Color Mode" - #: src/components/nav/MainMenu.tsx:86 -#: src/defaults/actions.tsx:71 -#: src/defaults/menuItems.tsx:63 -#: src/pages/Index/Settings/AdminCenter/Index.tsx:221 +#: src/components/nav/NavigationDrawer.tsx:148 +#: src/components/nav/SettingsHeader.tsx:50 +#: src/defaults/actions.tsx:63 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:251 msgid "Admin Center" msgstr "Admin Center" @@ -1270,458 +1595,732 @@ msgstr "Admin Center" msgid "Logout" msgstr "Logout" -#: src/components/nav/NavHoverMenu.tsx:65 -#: src/defaults/actions.tsx:60 -msgid "Open Navigation" -msgstr "Open Navigation" - #: src/components/nav/NavHoverMenu.tsx:84 -msgid "View all" -msgstr "View all" +#~ msgid "View all" +#~ msgstr "View all" #: src/components/nav/NavHoverMenu.tsx:100 #: src/components/nav/NavHoverMenu.tsx:110 -msgid "Get started" -msgstr "Get started" +#~ msgid "Get started" +#~ msgstr "Get started" #: src/components/nav/NavHoverMenu.tsx:103 -msgid "Overview over high-level objects, functions and possible usecases." -msgstr "Overview over high-level objects, functions and possible usecases." - -#: src/components/nav/NavigationDrawer.tsx:57 -msgid "Navigation" -msgstr "Navigation" +#~ msgid "Overview over high-level objects, functions and possible usecases." +#~ msgstr "Overview over high-level objects, functions and possible usecases." #: src/components/nav/NavigationDrawer.tsx:60 -msgid "Pages" -msgstr "Pages" +#~ msgid "Pages" +#~ msgstr "Pages" -#: src/components/nav/NavigationDrawer.tsx:65 -#: src/pages/Index/Settings/AdminCenter/Index.tsx:176 -#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:41 -msgid "Plugins" -msgstr "Plugins" +#: src/components/nav/NavigationDrawer.tsx:77 +#: src/components/render/ModelType.tsx:31 +#: src/defaults/links.tsx:10 +#: src/pages/Index/Settings/SystemSettings.tsx:172 +#: src/pages/part/CategoryDetail.tsx:125 +#: src/pages/part/CategoryDetail.tsx:249 +#: src/pages/part/CategoryDetail.tsx:279 +#: src/pages/part/PartDetail.tsx:856 +msgid "Parts" +msgstr "Parts" -#: src/components/nav/NavigationDrawer.tsx:75 -#: src/defaults/actions.tsx:32 -msgid "Documentation" -msgstr "Documentation" +#: src/components/nav/NavigationDrawer.tsx:84 +#: src/components/render/Part.tsx:30 +#: src/defaults/links.tsx:11 +#: src/pages/Index/Settings/SystemSettings.tsx:205 +#: src/pages/part/PartDetail.tsx:593 +#: src/pages/stock/LocationDetail.tsx:352 +#: src/pages/stock/StockDetail.tsx:528 +#: src/tables/stock/StockItemTable.tsx:69 +msgid "Stock" +msgstr "Stock" -#: src/components/nav/NavigationDrawer.tsx:78 -msgid "About" -msgstr "About" +#: src/components/nav/NavigationDrawer.tsx:91 +#: src/defaults/links.tsx:13 +#: src/pages/build/BuildDetail.tsx:530 +#: src/pages/build/BuildIndex.tsx:36 +msgid "Manufacturing" +msgstr "Manufacturing" -#: src/components/nav/NotificationDrawer.tsx:92 -#: src/pages/Index/Settings/SystemSettings.tsx:109 -#: src/pages/Index/Settings/UserSettings.tsx:126 +#: src/components/nav/NavigationDrawer.tsx:98 +#: src/defaults/links.tsx:18 +#: src/pages/company/ManufacturerDetail.tsx:9 +#: src/pages/company/ManufacturerPartDetail.tsx:258 +#: src/pages/company/SupplierDetail.tsx:9 +#: src/pages/company/SupplierPartDetail.tsx:336 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:480 +#: src/pages/purchasing/PurchasingIndex.tsx:60 +msgid "Purchasing" +msgstr "Purchasing" + +#: src/components/nav/NavigationDrawer.tsx:105 +#: src/defaults/links.tsx:22 +#: src/pages/company/CustomerDetail.tsx:9 +#: src/pages/sales/ReturnOrderDetail.tsx:469 +#: src/pages/sales/SalesIndex.tsx:53 +#: src/pages/sales/SalesOrderDetail.tsx:520 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:343 +msgid "Sales" +msgstr "Sales" + +#: src/components/nav/NavigationDrawer.tsx:129 +#: src/components/nav/NotificationDrawer.tsx:178 +#: src/pages/Index/Settings/SystemSettings.tsx:110 +#: src/pages/Index/Settings/UserSettings.tsx:127 #: src/pages/Notifications.tsx:65 #: src/pages/Notifications.tsx:151 msgid "Notifications" msgstr "Notifications" -#: src/components/nav/NotificationDrawer.tsx:94 +#: src/components/nav/NavigationDrawer.tsx:135 +#: src/components/nav/SettingsHeader.tsx:48 +msgid "User Settings" +msgstr "User Settings" + +#: src/components/nav/NavigationDrawer.tsx:173 +msgid "Navigation" +msgstr "Navigation" + +#: src/components/nav/NavigationDrawer.tsx:183 +#: src/forms/PurchaseOrderForms.tsx:689 +#: src/forms/StockForms.tsx:614 +#: src/forms/StockForms.tsx:651 +#: src/forms/StockForms.tsx:677 +#: src/forms/StockForms.tsx:705 +#: src/forms/StockForms.tsx:736 +#: src/forms/StockForms.tsx:771 +#: src/forms/StockForms.tsx:813 +#: src/forms/StockForms.tsx:851 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:413 +#: src/tables/RowActions.tsx:129 +#: src/tables/build/BuildLineTable.tsx:101 +msgid "Actions" +msgstr "Actions" + +#: src/components/nav/NavigationDrawer.tsx:191 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:205 +#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:44 +msgid "Plugins" +msgstr "Plugins" + +#: src/components/nav/NavigationDrawer.tsx:204 +#: src/defaults/actions.tsx:24 +msgid "Documentation" +msgstr "Documentation" + +#: src/components/nav/NavigationDrawer.tsx:210 +msgid "About" +msgstr "About" + +#: src/components/nav/NotificationDrawer.tsx:180 msgid "Mark all as read" msgstr "Mark all as read" -#: src/components/nav/NotificationDrawer.tsx:104 +#: src/components/nav/NotificationDrawer.tsx:190 msgid "View all notifications" msgstr "View all notifications" -#: src/components/nav/NotificationDrawer.tsx:123 +#: src/components/nav/NotificationDrawer.tsx:210 msgid "You have no unread notifications." msgstr "You have no unread notifications." -#: src/components/nav/NotificationDrawer.tsx:139 -#: src/components/nav/NotificationDrawer.tsx:145 -#: src/tables/notifications/NotificationsTable.tsx:36 -msgid "Notification" -msgstr "Notification" - -#: src/components/nav/NotificationDrawer.tsx:168 -#: src/pages/Notifications.tsx:73 -msgid "Mark as read" -msgstr "Mark as read" - -#: src/components/nav/SearchDrawer.tsx:78 +#: src/components/nav/SearchDrawer.tsx:85 msgid "results" msgstr "results" -#: src/components/nav/SearchDrawer.tsx:370 +#: src/components/nav/SearchDrawer.tsx:380 msgid "Enter search text" msgstr "Enter search text" -#: src/components/nav/SearchDrawer.tsx:397 +#: src/components/nav/SearchDrawer.tsx:391 +msgid "Refresh search results" +msgstr "Refresh search results" + +#: src/components/nav/SearchDrawer.tsx:402 +#: src/components/nav/SearchDrawer.tsx:409 msgid "Search Options" msgstr "Search Options" -#: src/components/nav/SearchDrawer.tsx:400 +#: src/components/nav/SearchDrawer.tsx:412 msgid "Regex search" msgstr "Regex search" -#: src/components/nav/SearchDrawer.tsx:410 +#: src/components/nav/SearchDrawer.tsx:421 msgid "Whole word search" msgstr "Whole word search" -#: src/components/nav/SearchDrawer.tsx:451 +#: src/components/nav/SearchDrawer.tsx:461 msgid "An error occurred during search query" msgstr "An error occurred during search query" #: src/components/nav/SearchDrawer.tsx:462 -msgid "No results" -msgstr "No results" +#~ msgid "No results" +#~ msgstr "No results" -#: src/components/nav/SearchDrawer.tsx:465 +#: src/components/nav/SearchDrawer.tsx:472 +#: src/tables/part/PartTestTemplateTable.tsx:76 +msgid "No Results" +msgstr "No Results" + +#: src/components/nav/SearchDrawer.tsx:475 msgid "No results available for search query" msgstr "No results available for search query" -#: src/components/render/Instance.tsx:217 +#: src/components/panels/AttachmentPanel.tsx:18 +msgid "Attachments" +msgstr "Attachments" + +#: src/components/panels/NotesPanel.tsx:24 +#: src/tables/build/BuildOrderTestTable.tsx:143 +#: src/tables/stock/StockTrackingTable.tsx:204 +msgid "Notes" +msgstr "Notes" + +#: src/components/plugins/PluginDrawer.tsx:47 +msgid "Plugin Inactive" +msgstr "Plugin Inactive" + +#: src/components/plugins/PluginDrawer.tsx:50 +msgid "Plugin is not active" +msgstr "Plugin is not active" + +#: src/components/plugins/PluginDrawer.tsx:60 +msgid "Plugin Information" +msgstr "Plugin Information" + +#: src/components/plugins/PluginDrawer.tsx:74 +#: src/pages/build/BuildDetail.tsx:116 +#: src/pages/company/CompanyDetail.tsx:89 +#: src/pages/company/ManufacturerPartDetail.tsx:89 +#: src/pages/company/ManufacturerPartDetail.tsx:116 +#: src/pages/company/SupplierPartDetail.tsx:140 +#: src/pages/part/CategoryDetail.tsx:101 +#: src/pages/part/PartDetail.tsx:178 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:136 +#: src/pages/sales/ReturnOrderDetail.tsx:107 +#: src/pages/sales/SalesOrderDetail.tsx:116 +#: src/pages/stock/LocationDetail.tsx:103 +#: src/tables/ColumnRenderers.tsx:92 +#: src/tables/bom/UsedInTable.tsx:44 +#: src/tables/build/BuildAllocatedStockTable.tsx:83 +#: src/tables/build/BuildLineTable.tsx:329 +#: src/tables/machine/MachineTypeTable.tsx:74 +#: src/tables/machine/MachineTypeTable.tsx:129 +#: src/tables/machine/MachineTypeTable.tsx:240 +#: src/tables/machine/MachineTypeTable.tsx:344 +#: src/tables/part/RelatedPartTable.tsx:66 +#: src/tables/plugin/PluginListTable.tsx:99 +#: src/tables/sales/SalesOrderAllocationTable.tsx:87 +#: src/tables/sales/SalesOrderLineItemTable.tsx:75 +#: src/tables/stock/LocationTypesTable.tsx:74 +msgid "Description" +msgstr "Description" + +#: src/components/plugins/PluginDrawer.tsx:79 +msgid "Author" +msgstr "Author" + +#: src/components/plugins/PluginDrawer.tsx:84 +#: src/pages/part/PartSchedulingDetail.tsx:277 +#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:40 +#: src/pages/part/pricing/SaleHistoryPanel.tsx:38 +#: src/tables/ColumnRenderers.tsx:215 +#: src/tables/build/BuildOrderTestTable.tsx:151 +#: src/tables/settings/StocktakeReportTable.tsx:40 +msgid "Date" +msgstr "Date" + +#: src/components/plugins/PluginDrawer.tsx:94 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:398 +#: src/pages/part/PartDetail.tsx:331 +#: src/tables/bom/UsedInTable.tsx:84 +#: src/tables/company/CompanyTable.tsx:62 +#: src/tables/company/CompanyTable.tsx:96 +#: src/tables/machine/MachineListTable.tsx:333 +#: src/tables/machine/MachineListTable.tsx:605 +#: src/tables/part/ParametricPartTable.tsx:223 +#: src/tables/part/PartTable.tsx:178 +#: src/tables/part/PartVariantTable.tsx:15 +#: src/tables/plugin/PluginListTable.tsx:94 +#: src/tables/plugin/PluginListTable.tsx:401 +#: src/tables/purchasing/SupplierPartTable.tsx:100 +#: src/tables/purchasing/SupplierPartTable.tsx:190 +#: src/tables/settings/UserTable.tsx:283 +#: src/tables/stock/StockItemTable.tsx:293 +msgid "Active" +msgstr "Active" + +#: src/components/plugins/PluginDrawer.tsx:106 +msgid "Package Name" +msgstr "Package Name" + +#: src/components/plugins/PluginDrawer.tsx:112 +msgid "Installation Path" +msgstr "Installation Path" + +#: src/components/plugins/PluginDrawer.tsx:117 +#: src/tables/machine/MachineTypeTable.tsx:152 +#: src/tables/machine/MachineTypeTable.tsx:276 +#: src/tables/plugin/PluginListTable.tsx:406 +msgid "Builtin" +msgstr "Builtin" + +#: src/components/plugins/PluginDrawer.tsx:122 +msgid "Package" +msgstr "Package" + +#: src/components/plugins/PluginDrawer.tsx:134 +#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:53 +msgid "Plugin Settings" +msgstr "Plugin Settings" + +#: src/components/plugins/PluginDrawer.tsx:146 +#: src/components/render/ModelType.tsx:276 +msgid "Plugin Configuration" +msgstr "Plugin Configuration" + +#: src/components/plugins/PluginPanel.tsx:87 +#~ msgid "Error occurred while rendering plugin content" +#~ msgstr "Error occurred while rendering plugin content" + +#: src/components/plugins/PluginPanel.tsx:91 +#~ msgid "Plugin did not provide panel rendering function" +#~ msgstr "Plugin did not provide panel rendering function" + +#: src/components/plugins/PluginPanel.tsx:103 +#~ msgid "No content provided for this plugin" +#~ msgstr "No content provided for this plugin" + +#: src/components/plugins/PluginPanel.tsx:116 +#: src/components/plugins/PluginSettingsPanel.tsx:76 +#~ msgid "Error Loading Plugin" +#~ msgstr "Error Loading Plugin" + +#: src/components/plugins/PluginSettingsPanel.tsx:51 +#~ msgid "Error occurred while rendering plugin settings" +#~ msgstr "Error occurred while rendering plugin settings" + +#: src/components/plugins/PluginSettingsPanel.tsx:55 +#~ msgid "Plugin did not provide settings rendering function" +#~ msgstr "Plugin did not provide settings rendering function" + +#: src/components/plugins/PluginUIFeature.tsx:100 +msgid "Error occurred while rendering the template editor." +msgstr "Error occurred while rendering the template editor." + +#: src/components/plugins/PluginUIFeature.tsx:111 +msgid "Error Loading Plugin Editor" +msgstr "Error Loading Plugin Editor" + +#: src/components/plugins/PluginUIFeature.tsx:147 +msgid "Error occurred while rendering the template preview." +msgstr "Error occurred while rendering the template preview." + +#: src/components/plugins/PluginUIFeature.tsx:158 +msgid "Error Loading Plugin Preview" +msgstr "Error Loading Plugin Preview" + +#: src/components/plugins/RemoteComponent.tsx:70 +msgid "Invalid source or function name" +msgstr "Invalid source or function name" + +#: src/components/plugins/RemoteComponent.tsx:91 +msgid "Error Loading Content" +msgstr "Error Loading Content" + +#: src/components/plugins/RemoteComponent.tsx:95 +msgid "Error occurred while loading plugin content" +msgstr "Error occurred while loading plugin content" + +#: src/components/render/Instance.tsx:224 msgid "Unknown model: {model}" msgstr "Unknown model: {model}" -#: src/components/render/ModelType.tsx:22 -#: src/forms/BuildForms.tsx:213 -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/forms/StockForms.tsx:499 -#: src/forms/StockForms.tsx:533 -#: src/forms/StockForms.tsx:562 -#: src/forms/StockForms.tsx:590 -#: src/forms/StockForms.tsx:621 -#: src/forms/StockForms.tsx:656 -#: src/forms/StockForms.tsx:698 -#: src/forms/StockForms.tsx:734 -#: src/pages/build/BuildDetail.tsx:95 -#: src/pages/part/PartDetail.tsx:1073 -#: src/tables/build/BuildAllocatedStockTable.tsx:82 +#: src/components/render/ModelType.tsx:30 +#: src/forms/BuildForms.tsx:269 +#: src/forms/BuildForms.tsx:337 +#: src/forms/BuildForms.tsx:385 +#: src/forms/BuildForms.tsx:515 +#: src/forms/PurchaseOrderForms.tsx:689 +#: src/forms/ReturnOrderForms.tsx:190 +#: src/forms/SalesOrderForms.tsx:248 +#: src/forms/StockForms.tsx:261 +#: src/forms/StockForms.tsx:614 +#: src/forms/StockForms.tsx:651 +#: src/forms/StockForms.tsx:677 +#: src/forms/StockForms.tsx:705 +#: src/forms/StockForms.tsx:736 +#: src/forms/StockForms.tsx:771 +#: src/forms/StockForms.tsx:813 +#: src/forms/StockForms.tsx:851 +#: src/pages/build/BuildDetail.tsx:90 +#: src/pages/part/PartDetail.tsx:1094 +#: src/tables/build/BuildAllocatedStockTable.tsx:95 +#: src/tables/build/BuildLineTable.tsx:72 #: src/tables/part/PartTable.tsx:28 -#: src/tables/part/RelatedPartTable.tsx:45 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:88 -#: src/tables/sales/SalesOrderAllocationTable.tsx:68 -#: src/tables/stock/StockTrackingTable.tsx:74 +#: src/tables/part/RelatedPartTable.tsx:47 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:130 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:100 +#: src/tables/sales/SalesOrderAllocationTable.tsx:99 +#: src/tables/stock/StockTrackingTable.tsx:78 msgid "Part" msgstr "Part" -#: src/components/render/ModelType.tsx:23 -#: src/defaults/links.tsx:29 -#: src/defaults/menuItems.tsx:33 -#: src/pages/Index/Settings/SystemSettings.tsx:173 -#: src/pages/part/CategoryDetail.tsx:119 -#: src/pages/part/CategoryDetail.tsx:244 -#: src/pages/part/CategoryDetail.tsx:274 -#: src/pages/part/PartDetail.tsx:827 -msgid "Parts" -msgstr "Parts" - -#: src/components/render/ModelType.tsx:31 +#: src/components/render/ModelType.tsx:40 msgid "Part Parameter Template" msgstr "Part Parameter Template" -#: src/components/render/ModelType.tsx:32 +#: src/components/render/ModelType.tsx:41 msgid "Part Parameter Templates" msgstr "Part Parameter Templates" -#: src/components/render/ModelType.tsx:38 +#: src/components/render/ModelType.tsx:48 msgid "Part Test Template" msgstr "Part Test Template" -#: src/components/render/ModelType.tsx:39 +#: src/components/render/ModelType.tsx:49 msgid "Part Test Templates" msgstr "Part Test Templates" -#: src/components/render/ModelType.tsx:45 -#: src/pages/company/SupplierPartDetail.tsx:203 -#: src/pages/company/SupplierPartDetail.tsx:375 -#: src/pages/stock/StockDetail.tsx:173 -#: src/tables/build/BuildAllocatedStockTable.tsx:131 +#: src/components/render/ModelType.tsx:56 +#: src/pages/company/SupplierPartDetail.tsx:364 +#: src/pages/stock/StockDetail.tsx:194 +#: src/tables/build/BuildAllocatedStockTable.tsx:152 #: src/tables/part/PartPurchaseOrdersTable.tsx:49 -#: src/tables/purchasing/SupplierPartTable.tsx:68 +#: src/tables/purchasing/SupplierPartTable.tsx:70 +#: src/tables/stock/StockItemTable.tsx:229 msgid "Supplier Part" msgstr "Supplier Part" -#: src/components/render/ModelType.tsx:46 +#: src/components/render/ModelType.tsx:57 msgid "Supplier Parts" msgstr "Supplier Parts" -#: src/components/render/ModelType.tsx:54 -#: src/pages/company/ManufacturerPartDetail.tsx:132 +#: src/components/render/ModelType.tsx:66 #: src/tables/part/PartPurchaseOrdersTable.tsx:55 +#: src/tables/stock/StockItemTable.tsx:234 msgid "Manufacturer Part" msgstr "Manufacturer Part" -#: src/components/render/ModelType.tsx:55 +#: src/components/render/ModelType.tsx:67 msgid "Manufacturer Parts" msgstr "Manufacturer Parts" -#: src/components/render/ModelType.tsx:63 -#: src/pages/part/CategoryDetail.tsx:305 +#: src/components/render/ModelType.tsx:76 +#: src/pages/part/CategoryDetail.tsx:310 msgid "Part Category" msgstr "Part Category" -#: src/components/render/ModelType.tsx:64 -#: src/pages/part/CategoryDetail.tsx:258 -#: src/pages/part/CategoryDetail.tsx:296 -#: src/pages/part/PartDetail.tsx:1063 +#: src/components/render/ModelType.tsx:77 +#: src/pages/part/CategoryDetail.tsx:263 +#: src/pages/part/CategoryDetail.tsx:301 +#: src/pages/part/PartDetail.tsx:1084 msgid "Part Categories" msgstr "Part Categories" -#: src/components/render/ModelType.tsx:72 -#: src/pages/stock/StockDetail.tsx:624 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:94 -#: src/tables/stock/StockTrackingTable.tsx:45 +#: src/components/render/ModelType.tsx:86 +#: src/forms/BuildForms.tsx:337 +#: src/forms/BuildForms.tsx:385 +#: src/forms/BuildForms.tsx:515 +#: src/forms/SalesOrderForms.tsx:248 +#: src/pages/stock/StockDetail.tsx:839 +#: src/tables/stock/StockTrackingTable.tsx:49 msgid "Stock Item" msgstr "Stock Item" -#: src/components/render/ModelType.tsx:73 +#: src/components/render/ModelType.tsx:87 #: src/pages/company/CompanyDetail.tsx:203 -#: src/pages/stock/LocationDetail.tsx:128 -#: src/pages/stock/LocationDetail.tsx:181 -#: src/pages/stock/LocationDetail.tsx:395 +#: src/pages/part/PartStocktakeDetail.tsx:113 +#: src/pages/stock/LocationDetail.tsx:122 +#: src/pages/stock/LocationDetail.tsx:175 +#: src/pages/stock/LocationDetail.tsx:380 msgid "Stock Items" msgstr "Stock Items" -#: src/components/render/ModelType.tsx:81 +#: src/components/render/ModelType.tsx:96 msgid "Stock Location" msgstr "Stock Location" -#: src/components/render/ModelType.tsx:82 -#: src/pages/stock/LocationDetail.tsx:195 -#: src/pages/stock/LocationDetail.tsx:387 -#: src/pages/stock/StockDetail.tsx:616 +#: src/components/render/ModelType.tsx:97 +#: src/pages/stock/LocationDetail.tsx:189 +#: src/pages/stock/LocationDetail.tsx:372 +#: src/pages/stock/StockDetail.tsx:831 msgid "Stock Locations" msgstr "Stock Locations" -#: src/components/render/ModelType.tsx:90 +#: src/components/render/ModelType.tsx:106 msgid "Stock Location Type" msgstr "Stock Location Type" -#: src/components/render/ModelType.tsx:91 +#: src/components/render/ModelType.tsx:107 msgid "Stock Location Types" msgstr "Stock Location Types" -#: src/components/render/ModelType.tsx:95 +#: src/components/render/ModelType.tsx:112 +#: src/pages/part/PartDetail.tsx:712 msgid "Stock History" msgstr "Stock History" -#: src/components/render/ModelType.tsx:96 +#: src/components/render/ModelType.tsx:113 msgid "Stock Histories" msgstr "Stock Histories" -#: src/components/render/ModelType.tsx:100 -#: src/defaults/links.tsx:31 -#: src/defaults/menuItems.tsx:43 +#: src/components/render/ModelType.tsx:118 msgid "Build" msgstr "Build" -#: src/components/render/ModelType.tsx:101 +#: src/components/render/ModelType.tsx:119 msgid "Builds" msgstr "Builds" -#: src/components/render/ModelType.tsx:109 +#: src/components/render/ModelType.tsx:128 msgid "Build Line" msgstr "Build Line" -#: src/components/render/ModelType.tsx:110 +#: src/components/render/ModelType.tsx:129 msgid "Build Lines" msgstr "Build Lines" -#: src/components/render/ModelType.tsx:117 +#: src/components/render/ModelType.tsx:137 msgid "Build Item" msgstr "Build Item" -#: src/components/render/ModelType.tsx:118 +#: src/components/render/ModelType.tsx:138 msgid "Build Items" msgstr "Build Items" -#: src/components/render/ModelType.tsx:122 -#: src/pages/company/CompanyDetail.tsx:339 +#: src/components/render/ModelType.tsx:143 +#: src/pages/company/CompanyDetail.tsx:321 msgid "Company" msgstr "Company" -#: src/components/render/ModelType.tsx:123 +#: src/components/render/ModelType.tsx:144 msgid "Companies" msgstr "Companies" -#: src/components/render/ModelType.tsx:131 +#: src/components/render/ModelType.tsx:153 +#: src/pages/build/BuildDetail.tsx:195 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:204 +#: src/pages/sales/ReturnOrderDetail.tsx:174 +#: src/pages/sales/SalesOrderDetail.tsx:186 #: src/tables/TableHoverCard.tsx:81 -#: src/tables/build/BuildOrderTable.tsx:140 -#: src/tables/purchasing/PurchaseOrderTable.tsx:64 -#: src/tables/sales/ReturnOrderTable.tsx:55 -#: src/tables/sales/SalesOrderTable.tsx:62 +#: src/tables/build/BuildOrderTable.tsx:135 +#: src/tables/purchasing/PurchaseOrderTable.tsx:69 +#: src/tables/sales/ReturnOrderTable.tsx:67 +#: src/tables/sales/SalesOrderTable.tsx:67 msgid "Project Code" msgstr "Project Code" -#: src/components/render/ModelType.tsx:132 -#: src/pages/Index/Settings/AdminCenter/Index.tsx:128 +#: src/components/render/ModelType.tsx:154 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:145 msgid "Project Codes" msgstr "Project Codes" -#: src/components/render/ModelType.tsx:138 +#: src/components/render/ModelType.tsx:161 #: src/pages/part/pricing/PurchaseHistoryPanel.tsx:32 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:480 -#: src/tables/part/PartPurchaseOrdersTable.tsx:32 -#: src/tables/stock/StockTrackingTable.tsx:107 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:477 +#: src/pages/stock/StockDetail.tsx:253 +#: src/tables/part/PartPurchaseOrdersTable.tsx:31 +#: src/tables/stock/StockItemTable.tsx:222 +#: src/tables/stock/StockTrackingTable.tsx:111 msgid "Purchase Order" msgstr "Purchase Order" -#: src/components/render/ModelType.tsx:139 -#: src/pages/Index/Settings/SystemSettings.tsx:255 +#: src/components/render/ModelType.tsx:162 +#: src/pages/Index/Settings/SystemSettings.tsx:249 #: src/pages/company/CompanyDetail.tsx:196 -#: src/pages/company/SupplierPartDetail.tsx:237 -#: src/pages/part/PartDetail.tsx:662 +#: src/pages/company/SupplierPartDetail.tsx:249 +#: src/pages/part/PartDetail.tsx:683 #: src/pages/purchasing/PurchasingIndex.tsx:25 msgid "Purchase Orders" msgstr "Purchase Orders" -#: src/components/render/ModelType.tsx:147 +#: src/components/render/ModelType.tsx:171 msgid "Purchase Order Line" msgstr "Purchase Order Line" -#: src/components/render/ModelType.tsx:148 +#: src/components/render/ModelType.tsx:172 msgid "Purchase Order Lines" msgstr "Purchase Order Lines" -#: src/components/render/ModelType.tsx:152 -#: src/pages/build/BuildDetail.tsx:153 -#: src/pages/sales/SalesOrderDetail.tsx:520 -#: src/pages/stock/StockDetail.tsx:221 -#: src/tables/sales/SalesOrderAllocationTable.tsx:50 -#: src/tables/stock/StockTrackingTable.tsx:118 +#: src/components/render/ModelType.tsx:177 +#: src/pages/build/BuildDetail.tsx:148 +#: src/pages/part/pricing/SaleHistoryPanel.tsx:24 +#: src/pages/sales/SalesOrderDetail.tsx:515 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:92 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:341 +#: src/pages/stock/StockDetail.tsx:262 +#: src/tables/sales/SalesOrderAllocationTable.tsx:80 +#: src/tables/stock/StockTrackingTable.tsx:122 msgid "Sales Order" msgstr "Sales Order" -#: src/components/render/ModelType.tsx:153 -#: src/pages/Index/Settings/SystemSettings.tsx:270 +#: src/components/render/ModelType.tsx:178 +#: src/pages/Index/Settings/SystemSettings.tsx:264 #: src/pages/company/CompanyDetail.tsx:216 -#: src/pages/part/PartDetail.tsx:669 +#: src/pages/part/PartDetail.tsx:695 #: src/pages/sales/SalesIndex.tsx:26 msgid "Sales Orders" msgstr "Sales Orders" -#: src/components/render/ModelType.tsx:161 +#: src/components/render/ModelType.tsx:187 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:340 msgid "Sales Order Shipment" msgstr "Sales Order Shipment" -#: src/components/render/ModelType.tsx:162 +#: src/components/render/ModelType.tsx:188 msgid "Sales Order Shipments" msgstr "Sales Order Shipments" -#: src/components/render/ModelType.tsx:168 -#: src/pages/sales/ReturnOrderDetail.tsx:469 -#: src/tables/stock/StockTrackingTable.tsx:129 +#: src/components/render/ModelType.tsx:195 +#: src/pages/sales/ReturnOrderDetail.tsx:464 +#: src/tables/stock/StockTrackingTable.tsx:133 msgid "Return Order" msgstr "Return Order" -#: src/components/render/ModelType.tsx:169 -#: src/pages/Index/Settings/SystemSettings.tsx:286 +#: src/components/render/ModelType.tsx:196 +#: src/pages/Index/Settings/SystemSettings.tsx:280 #: src/pages/company/CompanyDetail.tsx:223 +#: src/pages/part/PartDetail.tsx:702 #: src/pages/sales/SalesIndex.tsx:32 msgid "Return Orders" msgstr "Return Orders" -#: src/components/render/ModelType.tsx:177 +#: src/components/render/ModelType.tsx:205 msgid "Return Order Line Item" msgstr "Return Order Line Item" -#: src/components/render/ModelType.tsx:178 +#: src/components/render/ModelType.tsx:206 msgid "Return Order Line Items" msgstr "Return Order Line Items" -#: src/components/render/ModelType.tsx:182 -#: src/tables/company/AddressTable.tsx:47 +#: src/components/render/ModelType.tsx:211 +#: src/tables/company/AddressTable.tsx:48 msgid "Address" msgstr "Address" -#: src/components/render/ModelType.tsx:183 -#: src/pages/company/CompanyDetail.tsx:253 +#: src/components/render/ModelType.tsx:212 +#: src/pages/company/CompanyDetail.tsx:255 msgid "Addresses" msgstr "Addresses" -#: src/components/render/ModelType.tsx:189 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:195 -#: src/pages/sales/ReturnOrderDetail.tsx:174 -#: src/pages/sales/SalesOrderDetail.tsx:183 +#: src/components/render/ModelType.tsx:219 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:196 +#: src/pages/sales/ReturnOrderDetail.tsx:166 +#: src/pages/sales/SalesOrderDetail.tsx:178 msgid "Contact" msgstr "Contact" -#: src/components/render/ModelType.tsx:190 -#: src/pages/company/CompanyDetail.tsx:247 +#: src/components/render/ModelType.tsx:220 +#: src/pages/company/CompanyDetail.tsx:249 msgid "Contacts" msgstr "Contacts" -#: src/components/render/ModelType.tsx:196 +#: src/components/render/ModelType.tsx:227 msgid "Owner" msgstr "Owner" -#: src/components/render/ModelType.tsx:197 +#: src/components/render/ModelType.tsx:228 msgid "Owners" msgstr "Owners" -#: src/components/render/ModelType.tsx:203 -#: src/tables/settings/ImportSessionTable.tsx:121 -#: src/tables/stock/StockItemTestResultTable.tsx:198 -#: src/tables/stock/StockTrackingTable.tsx:195 +#: src/components/render/ModelType.tsx:234 +#~ msgid "Purchase Order Line Item" +#~ msgstr "Purchase Order Line Item" + +#: src/components/render/ModelType.tsx:235 +#: src/tables/settings/BarcodeScanHistoryTable.tsx:80 +#: src/tables/settings/BarcodeScanHistoryTable.tsx:211 +#: src/tables/settings/ImportSessionTable.tsx:120 +#: src/tables/settings/StocktakeReportTable.tsx:44 +#: src/tables/stock/StockItemTestResultTable.tsx:204 +#: src/tables/stock/StockTrackingTable.tsx:181 +#: src/tables/stock/StockTrackingTable.tsx:210 msgid "User" msgstr "User" -#: src/components/render/ModelType.tsx:204 -#: src/pages/Index/Settings/AdminCenter/Index.tsx:98 +#: src/components/render/ModelType.tsx:236 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:109 #: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:13 msgid "Users" msgstr "Users" -#: src/components/render/ModelType.tsx:210 +#: src/components/render/ModelType.tsx:243 msgid "Group" msgstr "Group" -#: src/components/render/ModelType.tsx:211 +#: src/components/render/ModelType.tsx:244 #: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:20 -#: src/tables/settings/UserTable.tsx:138 -#: src/tables/settings/UserTable.tsx:201 +#: src/tables/settings/UserTable.tsx:137 +#: src/tables/settings/UserTable.tsx:200 msgid "Groups" msgstr "Groups" -#: src/components/render/ModelType.tsx:218 +#: src/components/render/ModelType.tsx:252 msgid "Import Session" msgstr "Import Session" -#: src/components/render/ModelType.tsx:219 +#: src/components/render/ModelType.tsx:253 msgid "Import Sessions" msgstr "Import Sessions" -#: src/components/render/ModelType.tsx:225 +#: src/components/render/ModelType.tsx:260 msgid "Label Template" msgstr "Label Template" -#: src/components/render/ModelType.tsx:226 -#: src/pages/Index/Settings/AdminCenter/Index.tsx:158 +#: src/components/render/ModelType.tsx:261 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:187 msgid "Label Templates" msgstr "Label Templates" -#: src/components/render/ModelType.tsx:232 +#: src/components/render/ModelType.tsx:264 +#~ msgid "Unknown Model" +#~ msgstr "Unknown Model" + +#: src/components/render/ModelType.tsx:268 msgid "Report Template" msgstr "Report Template" -#: src/components/render/ModelType.tsx:233 -#: src/pages/Index/Settings/AdminCenter/Index.tsx:164 +#: src/components/render/ModelType.tsx:269 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:193 msgid "Report Templates" msgstr "Report Templates" -#: src/components/render/ModelType.tsx:239 -msgid "Plugin Configuration" -msgstr "Plugin Configuration" - -#: src/components/render/ModelType.tsx:240 +#: src/components/render/ModelType.tsx:277 msgid "Plugin Configurations" msgstr "Plugin Configurations" +#: src/components/render/ModelType.tsx:284 +msgid "Content Type" +msgstr "Content Type" + +#: src/components/render/ModelType.tsx:285 +msgid "Content Types" +msgstr "Content Types" + +#: src/components/render/ModelType.tsx:291 +#: src/tables/machine/MachineListTable.tsx:351 +#: src/tables/machine/MachineTypeTable.tsx:282 +msgid "Errors" +msgstr "Errors" + +#: src/components/render/ModelType.tsx:307 +#~ msgid "Purchase Order Line Items" +#~ msgstr "Purchase Order Line Items" + +#: src/components/render/ModelType.tsx:337 +#~ msgid "Unknown Models" +#~ msgstr "Unknown Models" + #: src/components/render/Order.tsx:121 +#: src/tables/sales/SalesOrderAllocationTable.tsx:136 msgid "Shipment" msgstr "Shipment" #: src/components/render/Part.tsx:25 #: src/components/render/Plugin.tsx:17 -#: src/pages/company/CompanyDetail.tsx:325 -#: src/pages/company/SupplierPartDetail.tsx:360 -#: src/pages/part/PartDetail.tsx:879 +#: src/pages/company/CompanyDetail.tsx:307 +#: src/pages/company/SupplierPartDetail.tsx:349 +#: src/pages/part/PartDetail.tsx:911 msgid "Inactive" msgstr "Inactive" @@ -1731,39 +2330,38 @@ msgstr "Inactive" msgid "No stock" msgstr "No stock" -#: src/components/render/Part.tsx:30 -#: src/defaults/links.tsx:30 -#: src/defaults/menuItems.tsx:38 -#: src/pages/Index/Settings/SystemSettings.tsx:206 -#: src/pages/part/PartDetail.tsx:543 -#: src/pages/stock/LocationDetail.tsx:367 -#: src/pages/stock/StockDetail.tsx:411 -#: src/tables/stock/StockItemTable.tsx:68 -msgid "Stock" -msgstr "Stock" - -#: src/components/render/Stock.tsx:60 -#: src/pages/stock/StockDetail.tsx:150 -#: src/pages/stock/StockDetail.tsx:581 -#: src/tables/build/BuildAllocatedStockTable.tsx:102 -#: src/tables/sales/SalesOrderAllocationTable.tsx:80 +#: src/components/render/Stock.tsx:61 +#: src/forms/ReturnOrderForms.tsx:190 +#: src/pages/stock/StockDetail.tsx:166 +#: src/pages/stock/StockDetail.tsx:771 +#: src/tables/build/BuildAllocatedStockTable.tsx:123 +#: src/tables/build/BuildOutputTable.tsx:81 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:114 +#: src/tables/sales/SalesOrderAllocationTable.tsx:106 msgid "Serial Number" msgstr "Serial Number" -#: src/components/render/Stock.tsx:62 -#: src/forms/BuildForms.tsx:218 -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/pages/part/pricing/BomPricingPanel.tsx:109 +#: src/components/render/Stock.tsx:63 +#: src/forms/BuildForms.tsx:206 +#: src/forms/BuildForms.tsx:515 +#: src/forms/PurchaseOrderForms.tsx:689 +#: src/forms/SalesOrderForms.tsx:248 +#: src/pages/part/PartSchedulingDetail.tsx:80 +#: src/pages/part/PartStocktakeDetail.tsx:60 +#: src/pages/part/PartStocktakeDetail.tsx:234 +#: src/pages/part/PartStocktakeDetail.tsx:252 +#: src/pages/part/pricing/BomPricingPanel.tsx:148 #: src/pages/part/pricing/PriceBreakPanel.tsx:89 -#: src/pages/part/pricing/PriceBreakPanel.tsx:171 -#: src/pages/stock/StockDetail.tsx:145 -#: src/pages/stock/StockDetail.tsx:587 -#: src/tables/build/BuildOrderTestTable.tsx:197 -#: src/tables/part/PartPurchaseOrdersTable.tsx:92 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:143 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:171 +#: src/pages/part/pricing/PriceBreakPanel.tsx:172 +#: src/pages/stock/StockDetail.tsx:161 +#: src/pages/stock/StockDetail.tsx:777 +#: src/tables/build/BuildLineTable.tsx:79 +#: src/tables/build/BuildOrderTestTable.tsx:198 +#: src/tables/part/PartPurchaseOrdersTable.tsx:93 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:146 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:177 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:77 -#: src/tables/stock/StockTrackingTable.tsx:59 +#: src/tables/stock/StockTrackingTable.tsx:63 msgid "Quantity" msgstr "Quantity" @@ -1837,10 +2435,6 @@ msgstr "No settings specified" #~ msgid "Required Part" #~ msgstr "Required Part" -#: src/components/tables/build/BuildLineTable.tsx:152 -#~ msgid "Required Quantity" -#~ msgstr "Required Quantity" - #: src/components/tables/build/BuildOrderTable.tsx:52 #~ msgid "Progress" #~ msgstr "Progress" @@ -2121,14 +2715,6 @@ msgstr "No settings specified" #~ msgid "user deleted" #~ msgstr "user deleted" -#: src/components/tables/settings/UserTable.tsx:168 -#~ msgid "First Name" -#~ msgstr "First Name" - -#: src/components/tables/settings/UserTable.tsx:173 -#~ msgid "Last Name" -#~ msgstr "Last Name" - #: src/components/tables/stock/StockItemTable.tsx:247 #~ msgid "Test Filter" #~ msgstr "Test Filter" @@ -2141,36 +2727,21 @@ msgstr "No settings specified" #~ msgid "Stock location updated" #~ msgstr "Stock location updated" -#: src/components/widgets/DisplayWidget.tsx:11 -#: src/pages/Index/Settings/AccountSettings/DisplaySettingsPanel.tsx:17 -msgid "Display Settings" -msgstr "Display Settings" - -#: src/components/widgets/DisplayWidget.tsx:15 -#: src/pages/Index/Settings/AccountSettings/DisplaySettingsPanel.tsx:23 -msgid "Color Mode" -msgstr "Color Mode" - -#: src/components/widgets/DisplayWidget.tsx:21 -#: src/pages/Index/Settings/AccountSettings/DisplaySettingsPanel.tsx:33 -msgid "Language" -msgstr "Language" - #: src/components/widgets/FeedbackWidget.tsx:19 -msgid "Something is new: Platform UI" -msgstr "Something is new: Platform UI" +#~ msgid "Something is new: Platform UI" +#~ msgstr "Something is new: Platform UI" #: src/components/widgets/FeedbackWidget.tsx:21 -msgid "We are building a new UI with a modern stack. What you currently see is not fixed and will be redesigned but demonstrates the UI/UX possibilities we will have going forward." -msgstr "We are building a new UI with a modern stack. What you currently see is not fixed and will be redesigned but demonstrates the UI/UX possibilities we will have going forward." +#~ msgid "We are building a new UI with a modern stack. What you currently see is not fixed and will be redesigned but demonstrates the UI/UX possibilities we will have going forward." +#~ msgstr "We are building a new UI with a modern stack. What you currently see is not fixed and will be redesigned but demonstrates the UI/UX possibilities we will have going forward." #: src/components/widgets/FeedbackWidget.tsx:32 -msgid "Provide Feedback" -msgstr "Provide Feedback" +#~ msgid "Provide Feedback" +#~ msgstr "Provide Feedback" #: src/components/widgets/GetStartedWidget.tsx:11 -msgid "Getting started" -msgstr "Getting started" +#~ msgid "Getting started" +#~ msgstr "Getting started" #: src/components/widgets/MarkdownEditor.tsx:108 #~ msgid "Failed to upload image" @@ -2181,28 +2752,24 @@ msgstr "Getting started" #~ msgstr "Notes saved" #: src/components/widgets/WidgetLayout.tsx:166 -msgid "Layout" -msgstr "Layout" +#~ msgid "Layout" +#~ msgstr "Layout" #: src/components/widgets/WidgetLayout.tsx:172 -msgid "Reset Layout" -msgstr "Reset Layout" +#~ msgid "Reset Layout" +#~ msgstr "Reset Layout" #: src/components/widgets/WidgetLayout.tsx:185 -msgid "Stop Edit" -msgstr "Stop Edit" - -#: src/components/widgets/WidgetLayout.tsx:185 -msgid "Edit Layout" -msgstr "Edit Layout" +#~ msgid "Stop Edit" +#~ msgstr "Stop Edit" #: src/components/widgets/WidgetLayout.tsx:191 -msgid "Appearance" -msgstr "Appearance" +#~ msgid "Appearance" +#~ msgstr "Appearance" #: src/components/widgets/WidgetLayout.tsx:203 -msgid "Show Boxes" -msgstr "Show Boxes" +#~ msgid "Show Boxes" +#~ msgstr "Show Boxes" #: src/contexts/LanguageContext.tsx:20 msgid "Arabic" @@ -2281,201 +2848,175 @@ msgid "Korean" msgstr "Korean" #: src/contexts/LanguageContext.tsx:39 +msgid "Lithuanian" +msgstr "Lithuanian" + +#: src/contexts/LanguageContext.tsx:40 msgid "Latvian" msgstr "Latvian" -#: src/contexts/LanguageContext.tsx:40 +#: src/contexts/LanguageContext.tsx:41 msgid "Dutch" msgstr "Dutch" -#: src/contexts/LanguageContext.tsx:41 +#: src/contexts/LanguageContext.tsx:42 msgid "Norwegian" msgstr "Norwegian" -#: src/contexts/LanguageContext.tsx:42 +#: src/contexts/LanguageContext.tsx:43 msgid "Polish" msgstr "Polish" -#: src/contexts/LanguageContext.tsx:43 +#: src/contexts/LanguageContext.tsx:44 msgid "Portuguese" msgstr "Portuguese" -#: src/contexts/LanguageContext.tsx:44 +#: src/contexts/LanguageContext.tsx:45 msgid "Portuguese (Brazilian)" msgstr "Portuguese (Brazilian)" -#: src/contexts/LanguageContext.tsx:45 +#: src/contexts/LanguageContext.tsx:46 msgid "Romanian" msgstr "Romanian" -#: src/contexts/LanguageContext.tsx:46 +#: src/contexts/LanguageContext.tsx:47 msgid "Russian" msgstr "Russian" -#: src/contexts/LanguageContext.tsx:47 +#: src/contexts/LanguageContext.tsx:48 msgid "Slovak" msgstr "Slovak" -#: src/contexts/LanguageContext.tsx:48 +#: src/contexts/LanguageContext.tsx:49 msgid "Slovenian" msgstr "Slovenian" -#: src/contexts/LanguageContext.tsx:49 +#: src/contexts/LanguageContext.tsx:50 msgid "Swedish" msgstr "Swedish" -#: src/contexts/LanguageContext.tsx:50 +#: src/contexts/LanguageContext.tsx:51 msgid "Thai" msgstr "Thai" -#: src/contexts/LanguageContext.tsx:51 +#: src/contexts/LanguageContext.tsx:52 msgid "Turkish" msgstr "Turkish" -#: src/contexts/LanguageContext.tsx:52 +#: src/contexts/LanguageContext.tsx:53 msgid "Ukrainian" msgstr "Ukrainian" -#: src/contexts/LanguageContext.tsx:53 +#: src/contexts/LanguageContext.tsx:54 msgid "Vietnamese" msgstr "Vietnamese" -#: src/contexts/LanguageContext.tsx:54 +#: src/contexts/LanguageContext.tsx:55 msgid "Chinese (Simplified)" msgstr "Chinese (Simplified)" -#: src/contexts/LanguageContext.tsx:55 +#: src/contexts/LanguageContext.tsx:56 msgid "Chinese (Traditional)" msgstr "Chinese (Traditional)" #: src/defaults/actions.tsx:18 -#: src/defaults/links.tsx:27 -#: src/defaults/menuItems.tsx:9 -msgid "Home" -msgstr "Home" - -#: src/defaults/actions.tsx:25 -#: src/defaults/links.tsx:28 -#: src/defaults/menuItems.tsx:28 -#: src/pages/Index/Dashboard.tsx:19 -#: src/pages/Index/Settings/UserSettings.tsx:46 -msgid "Dashboard" -msgstr "Dashboard" - -#: src/defaults/actions.tsx:26 msgid "Go to the InvenTree dashboard" msgstr "Go to the InvenTree dashboard" -#: src/defaults/actions.tsx:33 +#: src/defaults/actions.tsx:18 +#: src/defaults/links.tsx:27 +#: src/defaults/menuItems.tsx:9 +#~ msgid "Home" +#~ msgstr "Home" + +#: src/defaults/actions.tsx:25 msgid "Visit the documentation to learn more about InvenTree" msgstr "Visit the documentation to learn more about InvenTree" -#: src/defaults/actions.tsx:39 -#: src/defaults/links.tsx:98 -#: src/defaults/links.tsx:128 +#: src/defaults/actions.tsx:31 +#: src/defaults/links.tsx:92 +#: src/defaults/links.tsx:124 msgid "About InvenTree" msgstr "About InvenTree" -#: src/defaults/actions.tsx:40 -#: src/defaults/links.tsx:129 +#: src/defaults/actions.tsx:32 msgid "About the InvenTree org" msgstr "About the InvenTree org" -#: src/defaults/actions.tsx:46 +#: src/defaults/actions.tsx:38 msgid "Server Information" msgstr "Server Information" -#: src/defaults/actions.tsx:47 -#: src/defaults/links.tsx:123 +#: src/defaults/actions.tsx:39 +#: src/defaults/links.tsx:118 msgid "About this Inventree instance" msgstr "About this Inventree instance" -#: src/defaults/actions.tsx:53 -#: src/defaults/links.tsx:111 +#: src/defaults/actions.tsx:45 +#: src/defaults/links.tsx:105 +#: src/defaults/links.tsx:131 msgid "License Information" msgstr "License Information" -#: src/defaults/actions.tsx:54 -#: src/defaults/links.tsx:135 +#: src/defaults/actions.tsx:46 msgid "Licenses for dependencies of the service" msgstr "Licenses for dependencies of the service" -#: src/defaults/actions.tsx:61 +#: src/defaults/actions.tsx:52 +msgid "Open Navigation" +msgstr "Open Navigation" + +#: src/defaults/actions.tsx:53 msgid "Open the main navigation menu" msgstr "Open the main navigation menu" -#: src/defaults/actions.tsx:72 +#: src/defaults/actions.tsx:64 msgid "Go to the Admin Center" msgstr "Go to the Admin Center" -#: src/defaults/dashboardItems.tsx:15 -msgid "Subscribed Parts" -msgstr "Subscribed Parts" - -#: src/defaults/dashboardItems.tsx:22 -msgid "Subscribed Categories" -msgstr "Subscribed Categories" - #: src/defaults/dashboardItems.tsx:29 -msgid "Latest Parts" -msgstr "Latest Parts" +#~ msgid "Latest Parts" +#~ msgstr "Latest Parts" #: src/defaults/dashboardItems.tsx:36 -msgid "BOM Waiting Validation" -msgstr "BOM Waiting Validation" +#~ msgid "BOM Waiting Validation" +#~ msgstr "BOM Waiting Validation" #: src/defaults/dashboardItems.tsx:43 -msgid "Recently Updated" -msgstr "Recently Updated" - -#: src/defaults/dashboardItems.tsx:50 -#: src/tables/part/PartTable.tsx:238 -msgid "Low Stock" -msgstr "Low Stock" +#~ msgid "Recently Updated" +#~ msgstr "Recently Updated" #: src/defaults/dashboardItems.tsx:57 -msgid "Depleted Stock" -msgstr "Depleted Stock" +#~ msgid "Depleted Stock" +#~ msgstr "Depleted Stock" #: src/defaults/dashboardItems.tsx:64 -msgid "Required for Build Orders" -msgstr "Required for Build Orders" +#~ msgid "Required for Build Orders" +#~ msgstr "Required for Build Orders" #: src/defaults/dashboardItems.tsx:71 -msgid "Expired Stock" -msgstr "Expired Stock" +#~ msgid "Expired Stock" +#~ msgstr "Expired Stock" #: src/defaults/dashboardItems.tsx:78 -msgid "Stale Stock" -msgstr "Stale Stock" +#~ msgid "Stale Stock" +#~ msgstr "Stale Stock" #: src/defaults/dashboardItems.tsx:85 -msgid "Build Orders In Progress" -msgstr "Build Orders In Progress" - -#: src/defaults/dashboardItems.tsx:92 -msgid "Overdue Build Orders" -msgstr "Overdue Build Orders" +#~ msgid "Build Orders In Progress" +#~ msgstr "Build Orders In Progress" #: src/defaults/dashboardItems.tsx:99 -msgid "Outstanding Purchase Orders" -msgstr "Outstanding Purchase Orders" - -#: src/defaults/dashboardItems.tsx:106 -msgid "Overdue Purchase Orders" -msgstr "Overdue Purchase Orders" +#~ msgid "Outstanding Purchase Orders" +#~ msgstr "Outstanding Purchase Orders" #: src/defaults/dashboardItems.tsx:113 -msgid "Outstanding Sales Orders" -msgstr "Outstanding Sales Orders" - -#: src/defaults/dashboardItems.tsx:120 -msgid "Overdue Sales Orders" -msgstr "Overdue Sales Orders" +#~ msgid "Outstanding Sales Orders" +#~ msgstr "Outstanding Sales Orders" #: src/defaults/dashboardItems.tsx:127 -msgid "Current News" -msgstr "Current News" +#~ msgid "Current News" +#~ msgstr "Current News" #: src/defaults/defaultHostList.tsx:8 #~ msgid "InvenTree Demo" @@ -2485,97 +3026,80 @@ msgstr "Current News" #~ msgid "Local Server" #~ msgstr "Local Server" -#: src/defaults/links.tsx:12 -#: src/pages/company/CompanyDetail.tsx:96 -msgid "Website" -msgstr "Website" - #: src/defaults/links.tsx:17 -msgid "GitHub" -msgstr "GitHub" +#~ msgid "GitHub" +#~ msgstr "GitHub" #: src/defaults/links.tsx:22 -msgid "Demo" -msgstr "Demo" - -#: src/defaults/links.tsx:33 -#: src/defaults/menuItems.tsx:48 -#: src/pages/company/ManufacturerDetail.tsx:9 -#: src/pages/company/ManufacturerPartDetail.tsx:263 -#: src/pages/company/SupplierDetail.tsx:9 -#: src/pages/company/SupplierPartDetail.tsx:347 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:483 -#: src/pages/purchasing/PurchasingIndex.tsx:60 -msgid "Purchasing" -msgstr "Purchasing" - -#: src/defaults/links.tsx:37 -#: src/defaults/menuItems.tsx:53 -#: src/pages/company/CustomerDetail.tsx:9 -#: src/pages/sales/ReturnOrderDetail.tsx:474 -#: src/pages/sales/SalesIndex.tsx:53 -#: src/pages/sales/SalesOrderDetail.tsx:525 -msgid "Sales" -msgstr "Sales" +#~ msgid "Demo" +#~ msgstr "Demo" #: src/defaults/links.tsx:41 #: src/defaults/menuItems.tsx:71 #: src/pages/Index/Playground.tsx:217 -msgid "Playground" -msgstr "Playground" +#~ msgid "Playground" +#~ msgstr "Playground" -#: src/defaults/links.tsx:55 -msgid "Getting Started" -msgstr "Getting Started" - -#: src/defaults/links.tsx:56 -msgid "Getting started with InvenTree" -msgstr "Getting started with InvenTree" - -#: src/defaults/links.tsx:62 +#: src/defaults/links.tsx:45 msgid "API" msgstr "API" -#: src/defaults/links.tsx:63 +#: src/defaults/links.tsx:48 msgid "InvenTree API documentation" msgstr "InvenTree API documentation" -#: src/defaults/links.tsx:68 +#: src/defaults/links.tsx:52 msgid "Developer Manual" msgstr "Developer Manual" -#: src/defaults/links.tsx:69 +#: src/defaults/links.tsx:55 msgid "InvenTree developer manual" msgstr "InvenTree developer manual" -#: src/defaults/links.tsx:74 +#: src/defaults/links.tsx:59 msgid "FAQ" msgstr "FAQ" -#: src/defaults/links.tsx:75 +#: src/defaults/links.tsx:62 msgid "Frequently asked questions" msgstr "Frequently asked questions" +#: src/defaults/links.tsx:66 +msgid "GitHub Repository" +msgstr "GitHub Repository" + +#: src/defaults/links.tsx:69 +msgid "InvenTree source code on GitHub" +msgstr "InvenTree source code on GitHub" + #: src/defaults/links.tsx:76 #~ msgid "Instance" #~ msgstr "Instance" +#: src/defaults/links.tsx:79 +#: src/defaults/links.tsx:117 +msgid "System Information" +msgstr "System Information" + #: src/defaults/links.tsx:83 #~ msgid "InvenTree" #~ msgstr "InvenTree" -#: src/defaults/links.tsx:85 -#: src/defaults/links.tsx:122 -msgid "System Information" -msgstr "System Information" - #: src/defaults/links.tsx:117 #~ msgid "Licenses for packages used by InvenTree" #~ msgstr "Licenses for packages used by InvenTree" +#: src/defaults/links.tsx:125 +msgid "About the InvenTree Project" +msgstr "About the InvenTree Project" + +#: src/defaults/links.tsx:132 +msgid "Licenses for dependencies of the InvenTree software" +msgstr "Licenses for dependencies of the InvenTree software" + #: src/defaults/links.tsx:134 -msgid "Licenses" -msgstr "Licenses" +#~ msgid "Licenses" +#~ msgstr "Licenses" #: src/defaults/menuItems.tsx:7 #~ msgid "Open sourcea" @@ -2602,8 +3126,8 @@ msgstr "Licenses" #~ msgstr "Profile page" #: src/defaults/menuItems.tsx:17 -msgid "User attributes and design settings." -msgstr "User attributes and design settings." +#~ msgid "User attributes and design settings." +#~ msgstr "User attributes and design settings." #: src/defaults/menuItems.tsx:21 #~ msgid "Free for everyone" @@ -2614,8 +3138,8 @@ msgstr "User attributes and design settings." #~ msgstr "The fluid of Smeargle’s tail secretions changes" #: src/defaults/menuItems.tsx:23 -msgid "View for interactive scanning and multiple actions." -msgstr "View for interactive scanning and multiple actions." +#~ msgid "View for interactive scanning and multiple actions." +#~ msgstr "View for interactive scanning and multiple actions." #: src/defaults/menuItems.tsx:24 #~ msgid "The fluid of Smeargle’s tail secretions changes in the intensity" @@ -2693,51 +3217,130 @@ msgstr "View for interactive scanning and multiple actions." #~ msgid "Are you sure you want to delete this attachment?" #~ msgstr "Are you sure you want to delete this attachment?" -#: src/forms/BuildForms.tsx:158 -msgid "Next serial number" -msgstr "Next serial number" +#: src/forms/BuildForms.tsx:248 +#~ msgid "Remove output" +#~ msgstr "Remove output" -#: src/forms/BuildForms.tsx:162 -msgid "Latest serial number" -msgstr "Latest serial number" +#: src/forms/BuildForms.tsx:269 +#: src/tables/build/BuildAllocatedStockTable.tsx:147 +#: src/tables/build/BuildOrderTestTable.tsx:177 +#: src/tables/build/BuildOrderTestTable.tsx:201 +#: src/tables/build/BuildOutputTable.tsx:460 +msgid "Build Output" +msgstr "Build Output" -#: src/forms/BuildForms.tsx:234 -msgid "Remove output" -msgstr "Remove output" +#: src/forms/BuildForms.tsx:269 +#: src/forms/BuildForms.tsx:337 +#: src/forms/BuildForms.tsx:385 +#: src/tables/build/BuildLineTable.tsx:89 +msgid "Batch" +msgstr "Batch" -#: src/forms/BuildForms.tsx:316 +#: src/forms/BuildForms.tsx:269 +#: src/forms/BuildForms.tsx:337 +#: src/forms/BuildForms.tsx:385 +#: src/forms/PurchaseOrderForms.tsx:603 +#: src/pages/build/BuildDetail.tsx:104 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:142 +#: src/pages/sales/ReturnOrderDetail.tsx:113 +#: src/pages/sales/SalesOrderDetail.tsx:122 +#: src/tables/build/BuildOrderTable.tsx:125 +#: src/tables/machine/MachineListTable.tsx:336 +#: src/tables/part/PartPurchaseOrdersTable.tsx:37 +#: src/tables/purchasing/PurchaseOrderTable.tsx:58 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:157 +#: src/tables/sales/ReturnOrderTable.tsx:56 +#: src/tables/sales/SalesOrderTable.tsx:56 +#: src/tables/settings/CustomStateTable.tsx:57 +#: src/tables/settings/ImportSessionTable.tsx:114 +#: src/tables/stock/StockItemTable.tsx:298 +#: src/tables/stock/StockTrackingTable.tsx:56 +msgid "Status" +msgstr "Status" + +#: src/forms/BuildForms.tsx:289 msgid "Complete Build Outputs" msgstr "Complete Build Outputs" -#: src/forms/BuildForms.tsx:320 +#: src/forms/BuildForms.tsx:292 msgid "Build outputs have been completed" msgstr "Build outputs have been completed" -#: src/forms/BuildForms.tsx:389 +#: src/forms/BuildForms.tsx:353 msgid "Scrap Build Outputs" msgstr "Scrap Build Outputs" -#: src/forms/BuildForms.tsx:393 +#: src/forms/BuildForms.tsx:356 msgid "Build outputs have been scrapped" msgstr "Build outputs have been scrapped" -#: src/forms/BuildForms.tsx:425 -#: src/forms/BuildForms.tsx:449 +#: src/forms/BuildForms.tsx:393 msgid "Cancel Build Outputs" msgstr "Cancel Build Outputs" -#: src/forms/BuildForms.tsx:426 -msgid "Selected build outputs will be deleted" -msgstr "Selected build outputs will be deleted" - -#: src/forms/BuildForms.tsx:453 +#: src/forms/BuildForms.tsx:396 msgid "Build outputs have been cancelled" msgstr "Build outputs have been cancelled" +#: src/forms/BuildForms.tsx:408 +#~ msgid "Selected build outputs will be deleted" +#~ msgstr "Selected build outputs will be deleted" + +#: src/forms/BuildForms.tsx:470 +#~ msgid "Remove line" +#~ msgstr "Remove line" + +#: src/forms/BuildForms.tsx:515 +#: src/forms/SalesOrderForms.tsx:248 +#: src/tables/build/BuildLineTable.tsx:174 +#: src/tables/sales/SalesOrderLineItemTable.tsx:276 +#: src/tables/stock/StockItemTable.tsx:309 +msgid "Allocated" +msgstr "Allocated" + +#: src/forms/BuildForms.tsx:545 +#: src/forms/SalesOrderForms.tsx:239 +#: src/pages/build/BuildDetail.tsx:208 +msgid "Source Location" +msgstr "Source Location" + +#: src/forms/BuildForms.tsx:546 +#: src/forms/SalesOrderForms.tsx:240 +msgid "Select the source location for the stock allocation" +msgstr "Select the source location for the stock allocation" + +#: src/forms/BuildForms.tsx:566 +#: src/forms/SalesOrderForms.tsx:274 +#: src/tables/build/BuildLineTable.tsx:442 +#: src/tables/build/BuildLineTable.tsx:569 +#: src/tables/build/BuildLineTable.tsx:642 +#: src/tables/sales/SalesOrderLineItemTable.tsx:302 +#: src/tables/sales/SalesOrderLineItemTable.tsx:326 +msgid "Allocate Stock" +msgstr "Allocate Stock" + +#: src/forms/BuildForms.tsx:569 +#: src/forms/SalesOrderForms.tsx:279 +msgid "Stock items allocated" +msgstr "Stock items allocated" + #: src/forms/CompanyForms.tsx:150 #~ msgid "Company updated" #~ msgstr "Company updated" +#: src/forms/PartForms.tsx:67 +#: src/forms/PartForms.tsx:154 +#: src/pages/part/CategoryDetail.tsx:117 +#: src/pages/part/PartDetail.tsx:384 +#: src/tables/part/PartCategoryTable.tsx:90 +#: src/tables/part/PartTable.tsx:294 +msgid "Subscribed" +msgstr "Subscribed" + +#: src/forms/PartForms.tsx:68 +msgid "Subscribe to notifications for this part" +msgstr "Subscribe to notifications for this part" + #: src/forms/PartForms.tsx:106 #~ msgid "Create Part" #~ msgstr "Create Part" @@ -2746,191 +3349,190 @@ msgstr "Build outputs have been cancelled" #~ msgid "Part created" #~ msgstr "Part created" -#: src/forms/PartForms.tsx:124 -msgid "Parent part category" -msgstr "Parent part category" - #: src/forms/PartForms.tsx:129 #~ msgid "Part updated" #~ msgstr "Part updated" -#: src/forms/PurchaseOrderForms.tsx:300 +#: src/forms/PartForms.tsx:140 +msgid "Parent part category" +msgstr "Parent part category" + +#: src/forms/PartForms.tsx:155 +msgid "Subscribe to notifications for this category" +msgstr "Subscribe to notifications for this category" + +#: src/forms/PurchaseOrderForms.tsx:314 +msgid "Assign Batch Code and Serial Numbers" +msgstr "Assign Batch Code and Serial Numbers" + +#: src/forms/PurchaseOrderForms.tsx:316 +msgid "Assign Batch Code" +msgstr "Assign Batch Code" + +#: src/forms/PurchaseOrderForms.tsx:336 msgid "Choose Location" msgstr "Choose Location" -#: src/forms/PurchaseOrderForms.tsx:308 +#: src/forms/PurchaseOrderForms.tsx:344 msgid "Item Destination selected" msgstr "Item Destination selected" -#: src/forms/PurchaseOrderForms.tsx:317 +#: src/forms/PurchaseOrderForms.tsx:353 msgid "Part category default location selected" msgstr "Part category default location selected" -#: src/forms/PurchaseOrderForms.tsx:327 +#: src/forms/PurchaseOrderForms.tsx:363 msgid "Received stock location selected" msgstr "Received stock location selected" -#: src/forms/PurchaseOrderForms.tsx:332 +#: src/forms/PurchaseOrderForms.tsx:368 msgid "Default location selected" msgstr "Default location selected" -#: src/forms/PurchaseOrderForms.tsx:343 -#: src/forms/PurchaseOrderForms.tsx:435 -msgid "Scan Barcode" -msgstr "Scan Barcode" +#: src/forms/PurchaseOrderForms.tsx:421 +#~ msgid "Assign Batch Code{0}" +#~ msgstr "Assign Batch Code{0}" -#: src/forms/PurchaseOrderForms.tsx:388 +#: src/forms/PurchaseOrderForms.tsx:427 msgid "Set Location" msgstr "Set Location" -#: src/forms/PurchaseOrderForms.tsx:396 -msgid "Assign Batch Code{0}" -msgstr "Assign Batch Code{0}" - -#: src/forms/PurchaseOrderForms.tsx:405 -#: src/forms/StockForms.tsx:420 +#: src/forms/PurchaseOrderForms.tsx:442 +#: src/forms/StockForms.tsx:539 msgid "Adjust Packaging" msgstr "Adjust Packaging" -#: src/forms/PurchaseOrderForms.tsx:412 +#: src/forms/PurchaseOrderForms.tsx:444 +#: src/forms/StockForms.tsx:428 +#~ msgid "Remove item from list" +#~ msgstr "Remove item from list" + +#: src/forms/PurchaseOrderForms.tsx:450 msgid "Change Status" msgstr "Change Status" -#: src/forms/PurchaseOrderForms.tsx:418 +#: src/forms/PurchaseOrderForms.tsx:456 msgid "Add Note" msgstr "Add Note" -#: src/forms/PurchaseOrderForms.tsx:444 -#: src/forms/StockForms.tsx:428 -msgid "Remove item from list" -msgstr "Remove item from list" - -#: src/forms/PurchaseOrderForms.tsx:471 -#: src/forms/StockForms.tsx:499 -#: src/forms/StockForms.tsx:533 -#: src/forms/StockForms.tsx:562 -#: src/forms/StockForms.tsx:590 -#: src/forms/StockForms.tsx:621 -#: src/forms/StockForms.tsx:656 -#: src/forms/StockForms.tsx:698 -#: src/forms/StockForms.tsx:734 -#: src/pages/stock/StockDetail.tsx:181 -#: src/tables/ColumnRenderers.tsx:49 -#: src/tables/stock/StockTrackingTable.tsx:85 +#: src/forms/PurchaseOrderForms.tsx:503 +#: src/forms/StockForms.tsx:614 +#: src/forms/StockForms.tsx:651 +#: src/forms/StockForms.tsx:677 +#: src/forms/StockForms.tsx:705 +#: src/forms/StockForms.tsx:736 +#: src/forms/StockForms.tsx:771 +#: src/forms/StockForms.tsx:813 +#: src/forms/StockForms.tsx:851 +#: src/pages/stock/StockDetail.tsx:202 +#: src/tables/ColumnRenderers.tsx:60 +#: src/tables/stock/StockTrackingTable.tsx:89 msgid "Location" msgstr "Location" -#: src/forms/PurchaseOrderForms.tsx:486 +#: src/forms/PurchaseOrderForms.tsx:518 msgid "Store at default location" msgstr "Store at default location" -#: src/forms/PurchaseOrderForms.tsx:499 +#: src/forms/PurchaseOrderForms.tsx:533 msgid "Store at line item destination" msgstr "Store at line item destination" -#: src/forms/PurchaseOrderForms.tsx:509 +#: src/forms/PurchaseOrderForms.tsx:545 msgid "Store with already received stock" msgstr "Store with already received stock" -#: src/forms/PurchaseOrderForms.tsx:524 -#: src/pages/build/BuildDetail.tsx:219 -#: src/pages/stock/StockDetail.tsx:162 -#: src/pages/stock/StockDetail.tsx:599 -#: src/tables/build/BuildAllocatedStockTable.tsx:109 -#: src/tables/build/BuildOrderTestTable.tsx:188 -#: src/tables/sales/SalesOrderAllocationTable.tsx:87 +#: src/forms/PurchaseOrderForms.tsx:566 +#: src/pages/build/BuildDetail.tsx:222 +#: src/pages/stock/StockDetail.tsx:185 +#: src/pages/stock/StockDetail.tsx:793 +#: src/tables/build/BuildAllocatedStockTable.tsx:130 +#: src/tables/build/BuildOrderTestTable.tsx:189 +#: src/tables/build/BuildOutputTable.tsx:86 +#: src/tables/sales/SalesOrderAllocationTable.tsx:113 msgid "Batch Code" msgstr "Batch Code" -#: src/forms/PurchaseOrderForms.tsx:535 -msgid "Serial numbers" -msgstr "Serial numbers" +#: src/forms/PurchaseOrderForms.tsx:566 +#~ msgid "Serial numbers" +#~ msgstr "Serial numbers" -#: src/forms/PurchaseOrderForms.tsx:544 -#: src/forms/StockForms.tsx:443 -#: src/pages/company/SupplierPartDetail.tsx:156 -#: src/pages/company/SupplierPartDetail.tsx:207 -#: src/pages/stock/StockDetail.tsx:244 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:192 +#: src/forms/PurchaseOrderForms.tsx:567 +msgid "Enter batch code for received items" +msgstr "Enter batch code for received items" + +#: src/forms/PurchaseOrderForms.tsx:579 +#: src/forms/StockForms.tsx:152 +msgid "Serial Numbers" +msgstr "Serial Numbers" + +#: src/forms/PurchaseOrderForms.tsx:580 +msgid "Enter serial numbers for received items" +msgstr "Enter serial numbers for received items" + +#: src/forms/PurchaseOrderForms.tsx:590 +#: src/forms/StockForms.tsx:556 +#: src/pages/company/SupplierPartDetail.tsx:168 +#: src/pages/company/SupplierPartDetail.tsx:219 +#: src/pages/stock/StockDetail.tsx:320 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:198 msgid "Packaging" msgstr "Packaging" -#: src/forms/PurchaseOrderForms.tsx:556 -#: src/pages/build/BuildDetail.tsx:109 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:148 -#: src/pages/sales/ReturnOrderDetail.tsx:121 -#: src/pages/sales/SalesOrderDetail.tsx:127 -#: src/tables/build/BuildOrderTable.tsx:122 -#: src/tables/machine/MachineListTable.tsx:335 -#: src/tables/part/PartPurchaseOrdersTable.tsx:37 -#: src/tables/purchasing/PurchaseOrderTable.tsx:55 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:132 -#: src/tables/sales/ReturnOrderTable.tsx:46 -#: src/tables/sales/SalesOrderTable.tsx:53 -#: src/tables/settings/ImportSessionTable.tsx:115 -#: src/tables/stock/StockItemTable.tsx:294 -#: src/tables/stock/StockTrackingTable.tsx:52 -msgid "Status" -msgstr "Status" - -#: src/forms/PurchaseOrderForms.tsx:564 -#: src/pages/company/SupplierPartDetail.tsx:110 -#: src/tables/ColumnRenderers.tsx:132 +#: src/forms/PurchaseOrderForms.tsx:612 +#: src/pages/company/SupplierPartDetail.tsx:115 +#: src/tables/ColumnRenderers.tsx:143 msgid "Note" msgstr "Note" -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/pages/company/SupplierPartDetail.tsx:128 -#: src/tables/purchasing/SupplierPriceBreakTable.tsx:57 -msgid "SKU" -msgstr "SKU" - -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/tables/part/PartPurchaseOrdersTable.tsx:120 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:178 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:127 -msgid "Received" -msgstr "Received" - -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/forms/StockForms.tsx:499 -#: src/forms/StockForms.tsx:533 -#: src/forms/StockForms.tsx:562 -#: src/forms/StockForms.tsx:590 -#: src/forms/StockForms.tsx:621 -#: src/forms/StockForms.tsx:656 -#: src/forms/StockForms.tsx:698 -#: src/forms/StockForms.tsx:734 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:413 -#: src/tables/RowActions.tsx:113 -msgid "Actions" -msgstr "Actions" - -#: src/forms/PurchaseOrderForms.tsx:655 -msgid "Receive Line Items" -msgstr "Receive Line Items" - #: src/forms/PurchaseOrderForms.tsx:658 #~ msgid "Receive line items" #~ msgstr "Receive line items" -#: src/forms/StockForms.tsx:104 -msgid "Add given quantity as packs instead of individual items" -msgstr "Add given quantity as packs instead of individual items" +#: src/forms/PurchaseOrderForms.tsx:689 +#: src/pages/company/SupplierPartDetail.tsx:133 +#: src/tables/purchasing/SupplierPriceBreakTable.tsx:57 +msgid "SKU" +msgstr "SKU" + +#: src/forms/PurchaseOrderForms.tsx:689 +#: src/tables/part/PartPurchaseOrdersTable.tsx:126 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:184 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:247 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:152 +msgid "Received" +msgstr "Received" + +#: src/forms/PurchaseOrderForms.tsx:701 +msgid "Receive Line Items" +msgstr "Receive Line Items" + +#: src/forms/ReturnOrderForms.tsx:201 +msgid "Receive Items" +msgstr "Receive Items" + +#: src/forms/ReturnOrderForms.tsx:208 +msgid "Item received into stock" +msgstr "Item received into stock" + +#: src/forms/StockForms.tsx:80 +#: src/hooks/UsePlaceholder.tsx:57 +msgid "Next serial number" +msgstr "Next serial number" #: src/forms/StockForms.tsx:110 #~ msgid "Create Stock Item" #~ msgstr "Create Stock Item" -#: src/forms/StockForms.tsx:117 +#: src/forms/StockForms.tsx:131 +msgid "Add given quantity as packs instead of individual items" +msgstr "Add given quantity as packs instead of individual items" + +#: src/forms/StockForms.tsx:145 msgid "Enter initial quantity for this stock item" msgstr "Enter initial quantity for this stock item" -#: src/forms/StockForms.tsx:124 -msgid "Serial Numbers" -msgstr "Serial Numbers" - -#: src/forms/StockForms.tsx:125 +#: src/forms/StockForms.tsx:154 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "Enter serial numbers for new stock (or leave blank)" @@ -2938,82 +3540,102 @@ msgstr "Enter serial numbers for new stock (or leave blank)" #~ msgid "Stock item updated" #~ msgstr "Stock item updated" -#: src/forms/StockForms.tsx:179 -#: src/pages/stock/StockDetail.tsx:434 -#: src/tables/stock/StockItemTable.tsx:417 -#: src/tables/stock/StockItemTable.tsx:535 +#: src/forms/StockForms.tsx:169 +#: src/pages/stock/StockDetail.tsx:131 +msgid "Stock Status" +msgstr "Stock Status" + +#: src/forms/StockForms.tsx:218 +#: src/pages/stock/StockDetail.tsx:554 +#: src/tables/stock/StockItemTable.tsx:421 +#: src/tables/stock/StockItemTable.tsx:541 msgid "Add Stock Item" msgstr "Add Stock Item" -#: src/forms/StockForms.tsx:362 +#: src/forms/StockForms.tsx:262 +msgid "Select the part to install" +msgstr "Select the part to install" + +#: src/forms/StockForms.tsx:480 msgid "Loading..." msgstr "Loading..." -#: src/forms/StockForms.tsx:408 +#: src/forms/StockForms.tsx:527 msgid "Move to default location" msgstr "Move to default location" -#: src/forms/StockForms.tsx:499 -#: src/forms/StockForms.tsx:533 -#: src/forms/StockForms.tsx:562 -#: src/forms/StockForms.tsx:590 -#: src/forms/StockForms.tsx:621 -#: src/forms/StockForms.tsx:656 -#: src/forms/StockForms.tsx:698 -#: src/forms/StockForms.tsx:734 -#: src/pages/part/PartDetail.tsx:230 -#: src/pages/part/PartDetail.tsx:843 -#: src/tables/stock/StockItemTable.tsx:325 +#: src/forms/StockForms.tsx:614 +#: src/forms/StockForms.tsx:651 +#: src/forms/StockForms.tsx:677 +#: src/forms/StockForms.tsx:705 +#: src/forms/StockForms.tsx:736 +#: src/forms/StockForms.tsx:771 +#: src/forms/StockForms.tsx:813 +#: src/forms/StockForms.tsx:851 +#: src/pages/part/PartDetail.tsx:251 +#: src/pages/part/PartDetail.tsx:875 +#: src/tables/stock/StockItemTable.tsx:329 msgid "In Stock" msgstr "In Stock" -#: src/forms/StockForms.tsx:499 +#: src/forms/StockForms.tsx:614 msgid "Move" msgstr "Move" -#: src/forms/StockForms.tsx:562 -#: src/pages/stock/StockDetail.tsx:518 -#: src/tables/stock/StockItemTestResultTable.tsx:328 +#: src/forms/StockForms.tsx:677 +#: src/pages/stock/StockDetail.tsx:681 +#: src/tables/stock/StockItemTestResultTable.tsx:346 msgid "Add" msgstr "Add" -#: src/forms/StockForms.tsx:590 -#: src/pages/Index/Scan.tsx:266 -#: src/pages/stock/StockDetail.tsx:508 +#: src/forms/StockForms.tsx:705 +#: src/pages/Index/Scan.tsx:280 +#: src/pages/stock/StockDetail.tsx:670 msgid "Count" msgstr "Count" -#: src/forms/StockForms.tsx:835 +#: src/forms/StockForms.tsx:953 +#: src/pages/stock/StockDetail.tsx:682 +#: src/tables/stock/StockItemTable.tsx:454 msgid "Add Stock" msgstr "Add Stock" -#: src/forms/StockForms.tsx:844 +#: src/forms/StockForms.tsx:962 +#: src/pages/stock/StockDetail.tsx:691 +#: src/tables/stock/StockItemTable.tsx:463 msgid "Remove Stock" msgstr "Remove Stock" -#: src/forms/StockForms.tsx:853 -#: src/pages/part/PartDetail.tsx:1017 +#: src/forms/StockForms.tsx:971 +#: src/pages/part/PartDetail.tsx:1039 +#: src/pages/stock/StockDetail.tsx:712 +#: src/tables/stock/StockItemTable.tsx:483 msgid "Transfer Stock" msgstr "Transfer Stock" -#: src/forms/StockForms.tsx:862 -#: src/pages/part/PartDetail.tsx:1006 +#: src/forms/StockForms.tsx:980 +#: src/pages/part/PartDetail.tsx:1028 +#: src/pages/stock/LocationDetail.tsx:314 +#: src/pages/stock/LocationDetail.tsx:318 +#: src/tables/stock/StockItemTable.tsx:472 +#: src/tables/stock/StockItemTable.tsx:476 msgid "Count Stock" msgstr "Count Stock" -#: src/forms/StockForms.tsx:871 +#: src/forms/StockForms.tsx:989 msgid "Change Stock Status" msgstr "Change Stock Status" -#: src/forms/StockForms.tsx:880 +#: src/forms/StockForms.tsx:998 msgid "Merge Stock" msgstr "Merge Stock" -#: src/forms/StockForms.tsx:899 +#: src/forms/StockForms.tsx:1017 +#: src/tables/stock/StockItemTable.tsx:530 msgid "Delete Stock Items" msgstr "Delete Stock Items" -#: src/forms/StockForms.tsx:906 +#: src/forms/StockForms.tsx:1024 msgid "Parent stock location" msgstr "Parent stock location" @@ -3037,11 +3659,11 @@ msgstr "Parent stock location" #~ msgid "You have been logged out" #~ msgstr "You have been logged out" -#: src/functions/auth.tsx:117 +#: src/functions/auth.tsx:128 msgid "Logged Out" msgstr "Logged Out" -#: src/functions/auth.tsx:118 +#: src/functions/auth.tsx:129 msgid "Successfully logged out" msgstr "Successfully logged out" @@ -3057,20 +3679,20 @@ msgstr "Successfully logged out" #~ msgid "Found an existing login - welcome back!" #~ msgstr "Found an existing login - welcome back!" -#: src/functions/auth.tsx:156 +#: src/functions/auth.tsx:167 msgid "Check your inbox for a reset link. This only works if you have an account. Check in spam too." msgstr "Check your inbox for a reset link. This only works if you have an account. Check in spam too." -#: src/functions/auth.tsx:163 +#: src/functions/auth.tsx:174 #: src/pages/Auth/Set-Password.tsx:39 msgid "Reset failed" msgstr "Reset failed" -#: src/functions/auth.tsx:194 +#: src/functions/auth.tsx:205 msgid "Logged In" msgstr "Logged In" -#: src/functions/auth.tsx:195 +#: src/functions/auth.tsx:206 msgid "Successfully logged in" msgstr "Successfully logged in" @@ -3090,30 +3712,38 @@ msgstr "Successfully logged in" #~ msgid "method parameter not supplied" #~ msgstr "method parameter not supplied" -#: src/functions/notifications.tsx:10 +#: src/functions/notifications.tsx:12 msgid "Not implemented" msgstr "Not implemented" -#: src/functions/notifications.tsx:11 +#: src/functions/notifications.tsx:13 msgid "This feature is not yet implemented" msgstr "This feature is not yet implemented" -#: src/functions/notifications.tsx:21 -msgid "Permission denied" -msgstr "Permission denied" +#: src/functions/notifications.tsx:24 +#~ msgid "Permission denied" +#~ msgstr "Permission denied" -#: src/functions/notifications.tsx:22 +#: src/functions/notifications.tsx:25 msgid "You do not have permission to perform this action" msgstr "You do not have permission to perform this action" -#: src/functions/notifications.tsx:33 +#: src/functions/notifications.tsx:36 msgid "Invalid Return Code" msgstr "Invalid Return Code" -#: src/functions/notifications.tsx:34 +#: src/functions/notifications.tsx:37 msgid "Server returned status {returnCode}" msgstr "Server returned status {returnCode}" +#: src/functions/notifications.tsx:47 +msgid "Timeout" +msgstr "Timeout" + +#: src/functions/notifications.tsx:48 +msgid "The request timed out" +msgstr "The request timed out" + #: src/hooks/UseForm.tsx:88 msgid "Item Created" msgstr "Item Created" @@ -3130,20 +3760,24 @@ msgstr "Item Deleted" msgid "Are you sure you want to delete this item?" msgstr "Are you sure you want to delete this item?" +#: src/hooks/UsePlaceholder.tsx:59 +msgid "Latest serial number" +msgstr "Latest serial number" + #: src/pages/Auth/Logged-In.tsx:22 msgid "Checking if you are already logged in" msgstr "Checking if you are already logged in" -#: src/pages/Auth/Login.tsx:31 -#: src/pages/Index/Scan.tsx:329 +#: src/pages/Auth/Login.tsx:35 +#: src/pages/Index/Scan.tsx:343 msgid "No selection" msgstr "No selection" -#: src/pages/Auth/Login.tsx:87 +#: src/pages/Auth/Login.tsx:91 msgid "Welcome, log in below" msgstr "Welcome, log in below" -#: src/pages/Auth/Login.tsx:89 +#: src/pages/Auth/Login.tsx:93 msgid "Register below" msgstr "Register below" @@ -3157,8 +3791,8 @@ msgstr "Logging out" #: src/pages/Auth/Reset.tsx:41 #: src/pages/Auth/Set-Password.tsx:112 -msgid "Send mail" -msgstr "Send mail" +#~ msgid "Send mail" +#~ msgstr "Send mail" #: src/pages/Auth/Set-Password.tsx:30 msgid "Token invalid" @@ -3169,22 +3803,22 @@ msgid "You need to provide a valid token to set a new password. Check your inbox msgstr "You need to provide a valid token to set a new password. Check your inbox for a reset link." #: src/pages/Auth/Set-Password.tsx:49 -msgid "No token provided" -msgstr "No token provided" +#~ msgid "No token provided" +#~ msgstr "No token provided" #: src/pages/Auth/Set-Password.tsx:50 -msgid "You need to provide a token to set a new password. Check your inbox for a reset link." -msgstr "You need to provide a token to set a new password. Check your inbox for a reset link." +#~ msgid "You need to provide a token to set a new password. Check your inbox for a reset link." +#~ msgstr "You need to provide a token to set a new password. Check your inbox for a reset link." -#: src/pages/Auth/Set-Password.tsx:73 +#: src/pages/Auth/Set-Password.tsx:68 msgid "Password set" msgstr "Password set" -#: src/pages/Auth/Set-Password.tsx:74 +#: src/pages/Auth/Set-Password.tsx:69 msgid "The password was set successfully. You can now login with your new password" msgstr "The password was set successfully. You can now login with your new password" -#: src/pages/Auth/Set-Password.tsx:101 +#: src/pages/Auth/Set-Password.tsx:96 msgid "Set new password" msgstr "Set new password" @@ -3201,20 +3835,20 @@ msgstr "An unexpected error has occurred" #~ msgstr "Sorry, an unexpected error has occurred." #: src/pages/Index/Dashboard.tsx:22 -msgid "Autoupdate" -msgstr "Autoupdate" +#~ msgid "Autoupdate" +#~ msgstr "Autoupdate" #: src/pages/Index/Dashboard.tsx:26 -msgid "This page is a replacement for the old start page with the same information. This page will be deprecated and replaced by the home page." -msgstr "This page is a replacement for the old start page with the same information. This page will be deprecated and replaced by the home page." +#~ msgid "This page is a replacement for the old start page with the same information. This page will be deprecated and replaced by the home page." +#~ msgstr "This page is a replacement for the old start page with the same information. This page will be deprecated and replaced by the home page." #: src/pages/Index/Home.tsx:58 -msgid "Welcome to your Dashboard{0}" -msgstr "Welcome to your Dashboard{0}" +#~ msgid "Welcome to your Dashboard{0}" +#~ msgstr "Welcome to your Dashboard{0}" #: src/pages/Index/Playground.tsx:222 -msgid "This page is a showcase for the possibilities of Platform UI." -msgstr "This page is a showcase for the possibilities of Platform UI." +#~ msgid "This page is a showcase for the possibilities of Platform UI." +#~ msgstr "This page is a showcase for the possibilities of Platform UI." #: src/pages/Index/Profile/Profile.tsx:30 #: src/pages/Index/Profile/Profile.tsx:141 @@ -3360,126 +3994,191 @@ msgstr "Manual input" msgid "Image Barcode" msgstr "Image Barcode" -#: src/pages/Index/Scan.tsx:247 +#: src/pages/Index/Scan.tsx:261 msgid "Selected elements are not known" msgstr "Selected elements are not known" -#: src/pages/Index/Scan.tsx:254 +#: src/pages/Index/Scan.tsx:268 msgid "Multiple object types selected" msgstr "Multiple object types selected" -#: src/pages/Index/Scan.tsx:261 +#: src/pages/Index/Scan.tsx:275 msgid "Actions for {0}" msgstr "Actions for {0}" -#: src/pages/Index/Scan.tsx:282 +#: src/pages/Index/Scan.tsx:296 msgid "Scan Page" msgstr "Scan Page" -#: src/pages/Index/Scan.tsx:285 +#: src/pages/Index/Scan.tsx:299 msgid "This page can be used for continuously scanning items and taking actions on them." msgstr "This page can be used for continuously scanning items and taking actions on them." -#: src/pages/Index/Scan.tsx:292 +#: src/pages/Index/Scan.tsx:306 msgid "Toggle Fullscreen" msgstr "Toggle Fullscreen" -#: src/pages/Index/Scan.tsx:305 +#: src/pages/Index/Scan.tsx:319 msgid "Select the input method you want to use to scan items." msgstr "Select the input method you want to use to scan items." -#: src/pages/Index/Scan.tsx:307 +#: src/pages/Index/Scan.tsx:321 msgid "Input" msgstr "Input" -#: src/pages/Index/Scan.tsx:314 +#: src/pages/Index/Scan.tsx:328 msgid "Select input method" msgstr "Select input method" -#: src/pages/Index/Scan.tsx:315 +#: src/pages/Index/Scan.tsx:329 msgid "Nothing found" msgstr "Nothing found" -#: src/pages/Index/Scan.tsx:323 +#: src/pages/Index/Scan.tsx:337 msgid "Depending on the selected parts actions will be shown here. Not all barcode types are supported currently." msgstr "Depending on the selected parts actions will be shown here. Not all barcode types are supported currently." -#: src/pages/Index/Scan.tsx:325 +#: src/pages/Index/Scan.tsx:339 msgid "Action" msgstr "Action" -#: src/pages/Index/Scan.tsx:334 +#: src/pages/Index/Scan.tsx:348 msgid "{0} items selected" msgstr "{0} items selected" -#: src/pages/Index/Scan.tsx:337 +#: src/pages/Index/Scan.tsx:351 msgid "General Actions" msgstr "General Actions" -#: src/pages/Index/Scan.tsx:351 +#: src/pages/Index/Scan.tsx:365 msgid "Lookup part" msgstr "Lookup part" -#: src/pages/Index/Scan.tsx:359 +#: src/pages/Index/Scan.tsx:373 msgid "Open Link" msgstr "Open Link" -#: src/pages/Index/Scan.tsx:375 +#: src/pages/Index/Scan.tsx:389 msgid "History is locally kept in this browser." msgstr "History is locally kept in this browser." -#: src/pages/Index/Scan.tsx:376 +#: src/pages/Index/Scan.tsx:390 msgid "The history is kept in this browser's local storage. So it won't be shared with other users or other devices but is persistent through reloads. You can select items in the history to perform actions on them. To add items, scan/enter them in the Input area." msgstr "The history is kept in this browser's local storage. So it won't be shared with other users or other devices but is persistent through reloads. You can select items in the history to perform actions on them. To add items, scan/enter them in the Input area." -#: src/pages/Index/Scan.tsx:378 +#: src/pages/Index/Scan.tsx:392 #: src/pages/Notifications.tsx:100 msgid "History" msgstr "History" -#: src/pages/Index/Scan.tsx:384 +#: src/pages/Index/Scan.tsx:398 msgid "Delete History" msgstr "Delete History" -#: src/pages/Index/Scan.tsx:449 +#: src/pages/Index/Scan.tsx:463 msgid "No history" msgstr "No history" -#: src/pages/Index/Scan.tsx:467 +#: src/pages/Index/Scan.tsx:481 msgid "Item" msgstr "Item" -#: src/pages/Index/Scan.tsx:470 +#: src/pages/Index/Scan.tsx:484 msgid "Type" msgstr "Type" -#: src/pages/Index/Scan.tsx:473 +#: src/pages/Index/Scan.tsx:487 msgid "Source" msgstr "Source" -#: src/pages/Index/Scan.tsx:476 +#: src/pages/Index/Scan.tsx:490 msgid "Scanned at" msgstr "Scanned at" -#: src/pages/Index/Scan.tsx:528 +#: src/pages/Index/Scan.tsx:547 msgid "Enter item serial or data" msgstr "Enter item serial or data" -#: src/pages/Index/Scan.tsx:540 +#: src/pages/Index/Scan.tsx:559 msgid "Add dummy item" msgstr "Add dummy item" +#: src/pages/Index/Scan.tsx:569 +msgid "Start scanning by selecting a camera and pressing the play button." +msgstr "Start scanning by selecting a camera and pressing the play button." + +#: src/pages/Index/Scan.tsx:650 +msgid "Error while getting camera" +msgstr "Error while getting camera" + +#: src/pages/Index/Scan.tsx:673 +msgid "Error while scanning" +msgstr "Error while scanning" + +#: src/pages/Index/Scan.tsx:687 +msgid "Error while stopping" +msgstr "Error while stopping" + +#: src/pages/Index/Scan.tsx:745 +msgid "Stop scanning" +msgstr "Stop scanning" + +#: src/pages/Index/Scan.tsx:754 +msgid "Start scanning" +msgstr "Start scanning" + +#: src/pages/Index/Scan.tsx:763 +msgid "Scanning" +msgstr "Scanning" + +#: src/pages/Index/Scan.tsx:763 +msgid "Not scanning" +msgstr "Not scanning" + +#: src/pages/Index/Scan.tsx:775 +msgid "Select Camera" +msgstr "Select Camera" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:28 +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:50 +msgid "Edit User Information" +msgstr "Edit User Information" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:32 +msgid "User details updated" +msgstr "User details updated" + #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:41 -msgid "Account Details" -msgstr "Account Details" +msgid "User Details" +msgstr "User Details" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:41 +#~ msgid "Account Details" +#~ msgstr "Account Details" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:44 +msgid "User Actions" +msgstr "User Actions" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:48 +msgid "Edit User" +msgstr "Edit User" #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:50 -msgid "First name" -msgstr "First name" +#~ msgid "First name" +#~ msgstr "First name" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:54 +msgid "Set Password" +msgstr "Set Password" #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:55 -msgid "Last name" -msgstr "Last name" +#~ msgid "Last name" +#~ msgstr "Last name" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:56 +msgid "Set User Password" +msgstr "Set User Password" #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:58 #~ msgid "First name: {0}" @@ -3490,16 +4189,29 @@ msgstr "Last name" #~ msgstr "Last name: {0}" #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:67 -msgid "First name:" -msgstr "First name:" +#~ msgid "First name:" +#~ msgstr "First name:" #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:71 -msgid "Last name:" -msgstr "Last name:" +#~ msgid "Last name:" +#~ msgstr "Last name:" -#: src/pages/Index/Settings/AccountSettings/DisplaySettingsPanel.tsx:41 -msgid "Use pseudo language" -msgstr "Use pseudo language" +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:73 +msgid "First Name" +msgstr "First Name" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:79 +msgid "Last Name" +msgstr "Last Name" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:85 +msgid "Staff Access" +msgstr "Staff Access" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:93 +#: src/tables/settings/UserTable.tsx:293 +msgid "Superuser" +msgstr "Superuser" #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:55 msgid "Single Sign On Accounts" @@ -3595,27 +4307,6 @@ msgstr "Revoke" msgid "No tokens configured" msgstr "No tokens configured" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:398 -#: src/pages/part/PartDetail.tsx:297 -#: src/tables/bom/UsedInTable.tsx:84 -#: src/tables/build/BuildOrderTable.tsx:110 -#: src/tables/company/CompanyTable.tsx:61 -#: src/tables/company/CompanyTable.tsx:95 -#: src/tables/machine/MachineListTable.tsx:332 -#: src/tables/machine/MachineListTable.tsx:594 -#: src/tables/part/ParametricPartTable.tsx:223 -#: src/tables/part/PartTable.tsx:178 -#: src/tables/part/PartVariantTable.tsx:15 -#: src/tables/plugin/PluginListTable.tsx:149 -#: src/tables/plugin/PluginListTable.tsx:271 -#: src/tables/plugin/PluginListTable.tsx:563 -#: src/tables/purchasing/SupplierPartTable.tsx:98 -#: src/tables/purchasing/SupplierPartTable.tsx:187 -#: src/tables/settings/UserTable.tsx:284 -#: src/tables/stock/StockItemTable.tsx:289 -msgid "Active" -msgstr "Active" - #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:401 msgid "Expiry" msgstr "Expiry" @@ -3625,38 +4316,74 @@ msgid "Last Seen" msgstr "Last Seen" #: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:65 -msgid "bars" -msgstr "bars" +#~ msgid "bars" +#~ msgstr "bars" #: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:66 -msgid "oval" -msgstr "oval" +#~ msgid "oval" +#~ msgstr "oval" #: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:67 -msgid "dots" -msgstr "dots" +#~ msgid "dots" +#~ msgstr "dots" #: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:81 -msgid "Theme" -msgstr "Theme" +#~ msgid "Theme" +#~ msgstr "Theme" #: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:87 -msgid "Primary color" -msgstr "Primary color" +#~ msgid "Primary color" +#~ msgstr "Primary color" -#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:100 +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:88 +msgid "Bars" +msgstr "Bars" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:89 +msgid "Oval" +msgstr "Oval" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:90 +msgid "Dots" +msgstr "Dots" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:101 +msgid "Display Settings" +msgstr "Display Settings" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:107 +msgid "Language" +msgstr "Language" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:115 +msgid "Use pseudo language" +msgstr "Use pseudo language" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:122 +msgid "Color Mode" +msgstr "Color Mode" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:133 +msgid "Highlight color" +msgstr "Highlight color" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:145 +msgid "Example" +msgstr "Example" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:151 msgid "White color" msgstr "White color" -#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:108 +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:167 msgid "Black color" msgstr "Black color" -#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:116 +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:183 msgid "Border Radius" msgstr "Border Radius" -#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:132 +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:199 msgid "Loader" msgstr "Loader" @@ -3668,89 +4395,156 @@ msgstr "Loader" #~ msgid "Advanced Amininistrative Options for InvenTree" #~ msgstr "Advanced Amininistrative Options for InvenTree" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:104 +#: src/pages/Index/Settings/AdminCenter/CurrencyManagmentPanel.tsx:27 +#: src/tables/ColumnRenderers.tsx:262 +msgid "Currency" +msgstr "Currency" + +#: src/pages/Index/Settings/AdminCenter/CurrencyManagmentPanel.tsx:32 +msgid "Rate" +msgstr "Rate" + +#: src/pages/Index/Settings/AdminCenter/CurrencyManagmentPanel.tsx:44 +msgid "Exchange rates updated" +msgstr "Exchange rates updated" + +#: src/pages/Index/Settings/AdminCenter/CurrencyManagmentPanel.tsx:50 +msgid "Exchange rate update error" +msgstr "Exchange rate update error" + +#: src/pages/Index/Settings/AdminCenter/CurrencyManagmentPanel.tsx:62 +msgid "Refresh currency exchange rates" +msgstr "Refresh currency exchange rates" + +#: src/pages/Index/Settings/AdminCenter/CurrencyManagmentPanel.tsx:99 +msgid "Last fetched" +msgstr "Last fetched" + +#: src/pages/Index/Settings/AdminCenter/CurrencyManagmentPanel.tsx:100 +msgid "Base currency" +msgstr "Base currency" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:115 msgid "Data Import" msgstr "Data Import" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:110 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:121 +msgid "Barcode Scans" +msgstr "Barcode Scans" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:127 msgid "Background Tasks" msgstr "Background Tasks" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:116 -msgid "Error Reports" -msgstr "Error Reports" - -#: src/pages/Index/Settings/AdminCenter/Index.tsx:122 -msgid "Currencies" -msgstr "Currencies" - #: src/pages/Index/Settings/AdminCenter/Index.tsx:127 #~ msgid "Templates" #~ msgstr "Templates" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:140 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:133 +msgid "Error Reports" +msgstr "Error Reports" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:139 +msgid "Currencies" +msgstr "Currencies" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:157 +msgid "Custom States" +msgstr "Custom States" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:163 +#: src/pages/Index/Settings/AdminCenter/UnitManagmentPanel.tsx:58 msgid "Custom Units" msgstr "Custom Units" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:146 -#: src/pages/part/CategoryDetail.tsx:264 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:169 +#: src/pages/part/CategoryDetail.tsx:269 msgid "Part Parameters" msgstr "Part Parameters" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:152 -msgid "Category Parameters" -msgstr "Category Parameters" - -#: src/pages/Index/Settings/AdminCenter/Index.tsx:170 -msgid "Location Types" -msgstr "Location Types" - #: src/pages/Index/Settings/AdminCenter/Index.tsx:170 #~ msgid "Location types" #~ msgstr "Location types" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:182 -#: src/tables/machine/MachineTypeTable.tsx:287 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:175 +msgid "Category Parameters" +msgstr "Category Parameters" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:181 +msgid "Stocktake" +msgstr "Stocktake" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:199 +msgid "Location Types" +msgstr "Location Types" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:211 +#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:48 +#: src/tables/machine/MachineTypeTable.tsx:308 msgid "Machines" msgstr "Machines" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:192 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:221 msgid "Quick Actions" msgstr "Quick Actions" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:197 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:226 msgid "Add a new user" msgstr "Add a new user" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:222 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:252 msgid "Advanced Options" msgstr "Advanced Options" #: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:43 -msgid "Machine types" -msgstr "Machine types" +#~ msgid "Machine types" +#~ msgstr "Machine types" #: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:53 -msgid "Machine Error Stack" -msgstr "Machine Error Stack" +#~ msgid "Machine Error Stack" +#~ msgstr "Machine Error Stack" + +#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:56 +msgid "Machine Types" +msgstr "Machine Types" #: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:62 -msgid "There are no machine registry errors." -msgstr "There are no machine registry errors." +#~ msgid "There are no machine registry errors." +#~ msgstr "There are no machine registry errors." -#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:28 -#: src/tables/settings/UserTable.tsx:119 +#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:64 +msgid "Machine Errors" +msgstr "Machine Errors" + +#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:77 +msgid "Registry Registry Errors" +msgstr "Registry Registry Errors" + +#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:80 +msgid "There are machine registry errors" +msgstr "There are machine registry errors" + +#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:86 +msgid "Machine Registry Errors" +msgstr "Machine Registry Errors" + +#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:89 +msgid "There are no machine registry errors" +msgstr "There are no machine registry errors" + +#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:31 +#: src/tables/settings/UserTable.tsx:118 msgid "Info" msgstr "Info" -#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:32 -msgid "External plugins are not enabled for this InvenTree installation." -msgstr "External plugins are not enabled for this InvenTree installation." - #: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:33 #~ msgid "Plugin Error Stack" #~ msgstr "Plugin Error Stack" +#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:35 +msgid "External plugins are not enabled for this InvenTree installation." +msgstr "External plugins are not enabled for this InvenTree installation." + #: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:45 #~ msgid "Warning" #~ msgstr "Warning" @@ -3759,34 +4553,46 @@ msgstr "External plugins are not enabled for this InvenTree installation." #~ msgid "Changing the settings below require you to immediately restart the server. Do not change this while under active usage." #~ msgstr "Changing the settings below require you to immediately restart the server. Do not change this while under active usage." -#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:50 +#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:73 msgid "Plugin Errors" msgstr "Plugin Errors" -#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:59 -msgid "Plugin Settings" -msgstr "Plugin Settings" +#: src/pages/Index/Settings/AdminCenter/ReportTemplatePanel.tsx:17 +msgid "Page Size" +msgstr "Page Size" -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:53 -msgid "Background Worker Not Running" -msgstr "Background Worker Not Running" +#: src/pages/Index/Settings/AdminCenter/ReportTemplatePanel.tsx:20 +msgid "Landscape" +msgstr "Landscape" -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:54 +#: src/pages/Index/Settings/AdminCenter/ReportTemplatePanel.tsx:26 +msgid "Attach to Model" +msgstr "Attach to Model" + +#: src/pages/Index/Settings/AdminCenter/StocktakePanel.tsx:25 +msgid "Stocktake Reports" +msgstr "Stocktake Reports" + +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:30 msgid "The background task manager service is not running. Contact your system administrator." msgstr "The background task manager service is not running. Contact your system administrator." -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:60 -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:76 +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:35 +#~ msgid "Background Worker Not Running" +#~ msgstr "Background Worker Not Running" + +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:36 +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:45 msgid "Pending Tasks" msgstr "Pending Tasks" -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:64 -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:84 +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:37 +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:53 msgid "Scheduled Tasks" msgstr "Scheduled Tasks" -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:68 -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:92 +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:38 +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:61 msgid "Failed Tasks" msgstr "Failed Tasks" @@ -3806,11 +4612,6 @@ msgstr "Failed Tasks" #~ msgid "Reports" #~ msgstr "Reports" -#: src/pages/Index/Settings/AdminCenter/TemplateManagementPanel.tsx:89 -#: src/pages/build/BuildDetail.tsx:373 -#~ msgid "Report" -#~ msgstr "Report" - #: src/pages/Index/Settings/AdminCenter/TemplateManagementPanel.tsx:99 #~ msgid "Purchase order" #~ msgstr "Purchase order" @@ -3831,23 +4632,35 @@ msgstr "Failed Tasks" #~ msgid "Stock location" #~ msgstr "Stock location" +#: src/pages/Index/Settings/AdminCenter/UnitManagmentPanel.tsx:21 +msgid "Alias" +msgstr "Alias" + +#: src/pages/Index/Settings/AdminCenter/UnitManagmentPanel.tsx:22 +msgid "Dimensionless" +msgstr "Dimensionless" + +#: src/pages/Index/Settings/AdminCenter/UnitManagmentPanel.tsx:66 +msgid "All units" +msgstr "All units" + #: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:32 msgid "Select settings relevant for user lifecycle. More available in" msgstr "Select settings relevant for user lifecycle. More available in" #: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:37 -msgid "System settings" -msgstr "System settings" +#~ msgid "System settings" +#~ msgstr "System settings" -#: src/pages/Index/Settings/SystemSettings.tsx:67 +#: src/pages/Index/Settings/SystemSettings.tsx:66 msgid "Login" msgstr "Login" -#: src/pages/Index/Settings/SystemSettings.tsx:93 +#: src/pages/Index/Settings/SystemSettings.tsx:92 msgid "Barcodes" msgstr "Barcodes" -#: src/pages/Index/Settings/SystemSettings.tsx:115 +#: src/pages/Index/Settings/SystemSettings.tsx:116 msgid "Pricing" msgstr "Pricing" @@ -3859,64 +4672,46 @@ msgstr "Pricing" #~ msgid "Exchange Rates" #~ msgstr "Exchange Rates" -#: src/pages/Index/Settings/SystemSettings.tsx:150 +#: src/pages/Index/Settings/SystemSettings.tsx:151 msgid "Labels" msgstr "Labels" -#: src/pages/Index/Settings/SystemSettings.tsx:156 -#: src/pages/Index/Settings/UserSettings.tsx:132 +#: src/pages/Index/Settings/SystemSettings.tsx:157 +#: src/pages/Index/Settings/UserSettings.tsx:133 msgid "Reporting" msgstr "Reporting" #: src/pages/Index/Settings/SystemSettings.tsx:231 -#: src/pages/part/PartDetail.tsx:682 -msgid "Stocktake" -msgstr "Stocktake" - -#: src/pages/Index/Settings/SystemSettings.tsx:237 -#: src/pages/build/BuildDetail.tsx:554 -#: src/pages/build/BuildIndex.tsx:22 -#: src/pages/part/PartDetail.tsx:616 -#: src/pages/sales/SalesOrderDetail.tsx:333 +#: src/pages/build/BuildIndex.tsx:27 +#: src/pages/part/PartDetail.tsx:636 +#: src/pages/sales/SalesOrderDetail.tsx:355 msgid "Build Orders" msgstr "Build Orders" -#: src/pages/Index/Settings/SystemSettings.tsx:318 -msgid "Switch to User Setting" -msgstr "Switch to User Setting" +#: src/pages/Index/Settings/SystemSettings.tsx:317 +#~ msgid "Switch to User Setting" +#~ msgstr "Switch to User Setting" -#: src/pages/Index/Settings/UserSettings.tsx:34 +#: src/pages/Index/Settings/UserSettings.tsx:35 msgid "Account" msgstr "Account" -#: src/pages/Index/Settings/UserSettings.tsx:40 +#: src/pages/Index/Settings/UserSettings.tsx:41 msgid "Security" msgstr "Security" -#: src/pages/Index/Settings/UserSettings.tsx:78 +#: src/pages/Index/Settings/UserSettings.tsx:79 msgid "Display Options" msgstr "Display Options" -#: src/pages/Index/Settings/UserSettings.tsx:150 -msgid "Account Settings" -msgstr "Account Settings" - -#: src/pages/Index/Settings/UserSettings.tsx:158 -msgid "Switch to System Setting" -msgstr "Switch to System Setting" - -#: src/pages/Index/UserSettings.tsx:103 -#~ msgid "User Settings" -#~ msgstr "User Settings" +#: src/pages/Index/Settings/UserSettings.tsx:159 +#~ msgid "Switch to System Setting" +#~ msgstr "Switch to System Setting" #: src/pages/Logged-In.tsx:24 #~ msgid "Found an exsisting login - using it to log you in." #~ msgstr "Found an exsisting login - using it to log you in." -#: src/pages/NotFound.tsx:17 -#~ msgid "Not Found" -#~ msgstr "Not Found" - #: src/pages/NotFound.tsx:20 #~ msgid "Sorry, this page is not known or was moved." #~ msgstr "Sorry, this page is not known or was moved." @@ -3937,115 +4732,93 @@ msgstr "Mark as unread" #~ msgid "Build Status" #~ msgstr "Build Status" -#: src/pages/build/BuildDetail.tsx:102 -#: src/pages/part/PartDetail.tsx:150 +#: src/pages/build/BuildDetail.tsx:97 +#: src/pages/company/ManufacturerPartDetail.tsx:81 +#: src/pages/company/SupplierPartDetail.tsx:91 +#: src/pages/part/PartDetail.tsx:171 +#: src/pages/stock/StockDetail.tsx:122 #: src/tables/bom/BomTable.tsx:118 #: src/tables/bom/UsedInTable.tsx:39 -#: src/tables/build/BuildLineTable.tsx:173 -#: src/tables/build/BuildOrderTable.tsx:55 -#: src/tables/sales/SalesOrderLineItemTable.tsx:62 -#: src/tables/stock/StockItemTable.tsx:53 +#: src/tables/build/BuildAllocatedStockTable.tsx:104 +#: src/tables/build/BuildLineTable.tsx:324 +#: src/tables/build/BuildOrderTable.tsx:64 +#: src/tables/sales/SalesOrderLineItemTable.tsx:70 +#: src/tables/stock/StockItemTable.tsx:54 msgid "IPN" msgstr "IPN" -#: src/pages/build/BuildDetail.tsx:115 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:121 -#: src/pages/sales/ReturnOrderDetail.tsx:95 -#: src/pages/sales/SalesOrderDetail.tsx:101 -#: src/tables/ColumnRenderers.tsx:121 -#: src/tables/build/BuildAllocatedStockTable.tsx:90 -#: src/tables/build/BuildLineTable.tsx:184 +#: src/pages/build/BuildDetail.tsx:110 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:115 +#: src/pages/sales/ReturnOrderDetail.tsx:86 +#: src/pages/sales/SalesOrderDetail.tsx:95 +#: src/tables/ColumnRenderers.tsx:132 +#: src/tables/build/BuildAllocatedStockTable.tsx:111 +#: src/tables/build/BuildLineTable.tsx:335 msgid "Reference" msgstr "Reference" -#: src/pages/build/BuildDetail.tsx:121 -#: src/pages/company/CompanyDetail.tsx:90 -#: src/pages/company/ManufacturerPartDetail.tsx:83 -#: src/pages/company/SupplierPartDetail.tsx:96 -#: src/pages/part/CategoryDetail.tsx:101 -#: src/pages/part/PartDetail.tsx:157 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:142 -#: src/pages/sales/ReturnOrderDetail.tsx:115 -#: src/pages/sales/SalesOrderDetail.tsx:121 -#: src/pages/stock/LocationDetail.tsx:109 -#: src/tables/ColumnRenderers.tsx:81 -#: src/tables/bom/UsedInTable.tsx:44 -#: src/tables/build/BuildAllocatedStockTable.tsx:70 -#: src/tables/build/BuildLineTable.tsx:178 -#: src/tables/machine/MachineTypeTable.tsx:69 -#: src/tables/machine/MachineTypeTable.tsx:112 -#: src/tables/machine/MachineTypeTable.tsx:219 -#: src/tables/machine/MachineTypeTable.tsx:323 -#: src/tables/part/RelatedPartTable.tsx:64 -#: src/tables/plugin/PluginListTable.tsx:129 -#: src/tables/plugin/PluginListTable.tsx:276 -#: src/tables/sales/SalesOrderAllocationTable.tsx:56 -#: src/tables/sales/SalesOrderLineItemTable.tsx:67 -#: src/tables/stock/LocationTypesTable.tsx:74 -msgid "Description" -msgstr "Description" - -#: src/pages/build/BuildDetail.tsx:129 +#: src/pages/build/BuildDetail.tsx:124 msgid "Parent Build" msgstr "Parent Build" -#: src/pages/build/BuildDetail.tsx:140 +#: src/pages/build/BuildDetail.tsx:135 msgid "Build Quantity" msgstr "Build Quantity" -#: src/pages/build/BuildDetail.tsx:148 -#: src/pages/build/BuildDetail.tsx:274 +#: src/pages/build/BuildDetail.tsx:143 +#: src/pages/build/BuildDetail.tsx:277 msgid "Completed Outputs" msgstr "Completed Outputs" -#: src/pages/build/BuildDetail.tsx:165 -#: src/tables/build/BuildOrderTable.tsx:151 +#: src/pages/build/BuildDetail.tsx:160 +#: src/tables/build/BuildOrderTable.tsx:142 msgid "Issued By" msgstr "Issued By" -#: src/pages/build/BuildDetail.tsx:172 -#: src/pages/part/PartDetail.tsx:365 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:220 -#: src/pages/sales/ReturnOrderDetail.tsx:199 -#: src/pages/sales/SalesOrderDetail.tsx:208 -#: src/tables/build/BuildOrderTable.tsx:157 -#: src/tables/purchasing/PurchaseOrderTable.tsx:75 -#: src/tables/sales/ReturnOrderTable.tsx:66 -#: src/tables/sales/SalesOrderTable.tsx:73 +#: src/pages/build/BuildDetail.tsx:167 +#: src/pages/part/PartDetail.tsx:406 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:244 +#: src/pages/sales/ReturnOrderDetail.tsx:216 +#: src/pages/sales/SalesOrderDetail.tsx:226 +#: src/tables/build/BuildOrderTable.tsx:148 +#: src/tables/purchasing/PurchaseOrderTable.tsx:76 +#: src/tables/sales/ReturnOrderTable.tsx:74 +#: src/tables/sales/SalesOrderTable.tsx:74 msgid "Responsible" msgstr "Responsible" -#: src/pages/build/BuildDetail.tsx:179 -#: src/tables/settings/PendingTasksTable.tsx:32 +#: src/pages/build/BuildDetail.tsx:174 +#: src/tables/settings/PendingTasksTable.tsx:36 msgid "Created" msgstr "Created" +#: src/pages/build/BuildDetail.tsx:181 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:229 +#: src/pages/sales/ReturnOrderDetail.tsx:201 +#: src/pages/sales/SalesOrderDetail.tsx:212 +#: src/tables/ColumnRenderers.tsx:226 +#: src/tables/part/PartPurchaseOrdersTable.tsx:100 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:135 +#: src/tables/sales/SalesOrderLineItemTable.tsx:107 +msgid "Target Date" +msgstr "Target Date" + #: src/pages/build/BuildDetail.tsx:185 #: src/pages/part/PartDetail.tsx:269 #: src/pages/stock/StockDetail.tsx:150 #~ msgid "View part barcode" #~ msgstr "View part barcode" -#: src/pages/build/BuildDetail.tsx:186 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:213 -#: src/pages/sales/ReturnOrderDetail.tsx:192 -#: src/pages/sales/SalesOrderDetail.tsx:201 -#: src/tables/ColumnRenderers.tsx:212 -#: src/tables/part/PartPurchaseOrdersTable.tsx:99 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:110 -#: src/tables/sales/SalesOrderLineItemTable.tsx:99 -msgid "Target Date" -msgstr "Target Date" +#: src/pages/build/BuildDetail.tsx:188 +#: src/tables/sales/SalesOrderLineItemTable.tsx:281 +msgid "Completed" +msgstr "Completed" #: src/pages/build/BuildDetail.tsx:190 #: src/pages/part/PartDetail.tsx:274 #~ msgid "Link custom barcode to part" #~ msgstr "Link custom barcode to part" -#: src/pages/build/BuildDetail.tsx:193 -msgid "Completed" -msgstr "Completed" - #: src/pages/build/BuildDetail.tsx:196 #: src/pages/part/PartDetail.tsx:280 #~ msgid "Unlink custom barcode from part" @@ -4055,15 +4828,11 @@ msgstr "Completed" #~ msgid "Build Order updated" #~ msgstr "Build Order updated" -#: src/pages/build/BuildDetail.tsx:205 -msgid "Source Location" -msgstr "Source Location" - -#: src/pages/build/BuildDetail.tsx:206 +#: src/pages/build/BuildDetail.tsx:209 msgid "Any location" msgstr "Any location" -#: src/pages/build/BuildDetail.tsx:213 +#: src/pages/build/BuildDetail.tsx:216 msgid "Destination Location" msgstr "Destination Location" @@ -4079,206 +4848,182 @@ msgstr "Destination Location" #~ msgid "Delete build order" #~ msgstr "Delete build order" -#: src/pages/build/BuildDetail.tsx:251 +#: src/pages/build/BuildDetail.tsx:254 msgid "Build Details" msgstr "Build Details" -#: src/pages/build/BuildDetail.tsx:257 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:258 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:267 -#: src/pages/sales/ReturnOrderDetail.tsx:130 -#: src/pages/sales/ReturnOrderDetail.tsx:237 -#: src/pages/sales/ReturnOrderDetail.tsx:246 -#: src/pages/sales/SalesOrderDetail.tsx:272 -#: src/pages/sales/SalesOrderDetail.tsx:281 +#: src/pages/build/BuildDetail.tsx:260 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:282 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:291 +#: src/pages/sales/ReturnOrderDetail.tsx:122 +#: src/pages/sales/ReturnOrderDetail.tsx:254 +#: src/pages/sales/ReturnOrderDetail.tsx:263 +#: src/pages/sales/SalesOrderDetail.tsx:294 +#: src/pages/sales/SalesOrderDetail.tsx:303 msgid "Line Items" msgstr "Line Items" -#: src/pages/build/BuildDetail.tsx:267 +#: src/pages/build/BuildDetail.tsx:266 msgid "Incomplete Outputs" msgstr "Incomplete Outputs" -#: src/pages/build/BuildDetail.tsx:289 -#: src/pages/sales/SalesOrderDetail.tsx:319 +#: src/pages/build/BuildDetail.tsx:292 +#: src/pages/sales/SalesOrderDetail.tsx:341 msgid "Allocated Stock" msgstr "Allocated Stock" -#: src/pages/build/BuildDetail.tsx:299 +#: src/pages/build/BuildDetail.tsx:302 msgid "Consumed Stock" msgstr "Consumed Stock" -#: src/pages/build/BuildDetail.tsx:313 +#: src/pages/build/BuildDetail.tsx:316 msgid "Child Build Orders" msgstr "Child Build Orders" #: src/pages/build/BuildDetail.tsx:326 -#: src/tables/build/BuildOutputTable.tsx:384 -#: src/tables/stock/StockItemTestResultTable.tsx:150 +#: src/tables/build/BuildOutputTable.tsx:532 +#: src/tables/stock/StockItemTestResultTable.tsx:156 msgid "Test Results" msgstr "Test Results" #: src/pages/build/BuildDetail.tsx:337 -#: src/pages/part/PartDetail.tsx:699 +#: src/pages/part/PartDetail.tsx:740 msgid "Test Statistics" msgstr "Test Statistics" -#: src/pages/build/BuildDetail.tsx:351 -#: src/pages/company/CompanyDetail.tsx:259 -#: src/pages/company/ManufacturerPartDetail.tsx:179 -#: src/pages/part/PartDetail.tsx:721 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:309 -#: src/pages/sales/ReturnOrderDetail.tsx:274 -#: src/pages/sales/SalesOrderDetail.tsx:343 -#: src/pages/stock/StockDetail.tsx:385 -msgid "Attachments" -msgstr "Attachments" - -#: src/pages/build/BuildDetail.tsx:359 -#: src/pages/company/CompanyDetail.tsx:270 -#: src/pages/company/ManufacturerPartDetail.tsx:190 -#: src/pages/company/SupplierPartDetail.tsx:257 -#: src/pages/part/PartDetail.tsx:729 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:320 -#: src/pages/sales/ReturnOrderDetail.tsx:285 -#: src/pages/sales/SalesOrderDetail.tsx:354 -#: src/pages/stock/StockDetail.tsx:396 -#: src/tables/build/BuildOrderTestTable.tsx:142 -#: src/tables/stock/StockTrackingTable.tsx:189 -msgid "Notes" -msgstr "Notes" +#: src/pages/build/BuildDetail.tsx:365 +msgid "Edit Build Order" +msgstr "Edit Build Order" #: src/pages/build/BuildDetail.tsx:368 #~ msgid "Reporting Actions" #~ msgstr "Reporting Actions" +#: src/pages/build/BuildDetail.tsx:372 +#: src/tables/build/BuildOrderTable.tsx:173 +#: src/tables/build/BuildOrderTable.tsx:188 +msgid "Add Build Order" +msgstr "Add Build Order" + #: src/pages/build/BuildDetail.tsx:374 #~ msgid "Print build report" #~ msgstr "Print build report" -#: src/pages/build/BuildDetail.tsx:377 -msgid "Edit Build Order" -msgstr "Edit Build Order" - -#: src/pages/build/BuildDetail.tsx:384 -#: src/tables/build/BuildOrderTable.tsx:172 -#: src/tables/build/BuildOrderTable.tsx:187 -msgid "Add Build Order" -msgstr "Add Build Order" - -#: src/pages/build/BuildDetail.tsx:398 +#: src/pages/build/BuildDetail.tsx:386 msgid "Cancel Build Order" msgstr "Cancel Build Order" -#: src/pages/build/BuildDetail.tsx:400 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:348 -#: src/pages/sales/SalesOrderDetail.tsx:380 +#: src/pages/build/BuildDetail.tsx:388 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:357 +#: src/pages/sales/ReturnOrderDetail.tsx:354 +#: src/pages/sales/SalesOrderDetail.tsx:387 msgid "Order cancelled" msgstr "Order cancelled" -#: src/pages/build/BuildDetail.tsx:401 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:347 -#: src/pages/sales/ReturnOrderDetail.tsx:346 -#: src/pages/sales/SalesOrderDetail.tsx:379 +#: src/pages/build/BuildDetail.tsx:389 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:356 +#: src/pages/sales/ReturnOrderDetail.tsx:353 +#: src/pages/sales/SalesOrderDetail.tsx:386 msgid "Cancel this order" msgstr "Cancel this order" -#: src/pages/build/BuildDetail.tsx:410 +#: src/pages/build/BuildDetail.tsx:398 msgid "Hold Build Order" msgstr "Hold Build Order" -#: src/pages/build/BuildDetail.tsx:412 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:355 -#: src/pages/sales/ReturnOrderDetail.tsx:354 -#: src/pages/sales/SalesOrderDetail.tsx:387 +#: src/pages/build/BuildDetail.tsx:400 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:364 +#: src/pages/sales/ReturnOrderDetail.tsx:361 +#: src/pages/sales/SalesOrderDetail.tsx:394 msgid "Place this order on hold" msgstr "Place this order on hold" -#: src/pages/build/BuildDetail.tsx:413 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:356 -#: src/pages/sales/ReturnOrderDetail.tsx:355 -#: src/pages/sales/SalesOrderDetail.tsx:388 +#: src/pages/build/BuildDetail.tsx:401 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:365 +#: src/pages/sales/ReturnOrderDetail.tsx:362 +#: src/pages/sales/SalesOrderDetail.tsx:395 msgid "Order placed on hold" msgstr "Order placed on hold" -#: src/pages/build/BuildDetail.tsx:418 +#: src/pages/build/BuildDetail.tsx:406 msgid "Issue Build Order" msgstr "Issue Build Order" -#: src/pages/build/BuildDetail.tsx:420 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:339 -#: src/pages/sales/ReturnOrderDetail.tsx:338 -#: src/pages/sales/SalesOrderDetail.tsx:371 +#: src/pages/build/BuildDetail.tsx:408 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:348 +#: src/pages/sales/ReturnOrderDetail.tsx:345 +#: src/pages/sales/SalesOrderDetail.tsx:378 msgid "Issue this order" msgstr "Issue this order" -#: src/pages/build/BuildDetail.tsx:421 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:340 -#: src/pages/sales/ReturnOrderDetail.tsx:339 -#: src/pages/sales/SalesOrderDetail.tsx:372 +#: src/pages/build/BuildDetail.tsx:409 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:349 +#: src/pages/sales/ReturnOrderDetail.tsx:346 +#: src/pages/sales/SalesOrderDetail.tsx:379 msgid "Order issued" msgstr "Order issued" -#: src/pages/build/BuildDetail.tsx:426 +#: src/pages/build/BuildDetail.tsx:414 msgid "Complete Build Order" msgstr "Complete Build Order" -#: src/pages/build/BuildDetail.tsx:428 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:368 -#: src/pages/sales/ReturnOrderDetail.tsx:362 -#: src/pages/sales/SalesOrderDetail.tsx:395 +#: src/pages/build/BuildDetail.tsx:416 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:377 +#: src/pages/sales/ReturnOrderDetail.tsx:369 +#: src/pages/sales/SalesOrderDetail.tsx:402 msgid "Mark this order as complete" msgstr "Mark this order as complete" -#: src/pages/build/BuildDetail.tsx:429 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:362 -#: src/pages/sales/ReturnOrderDetail.tsx:363 -#: src/pages/sales/SalesOrderDetail.tsx:396 +#: src/pages/build/BuildDetail.tsx:417 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:371 +#: src/pages/sales/ReturnOrderDetail.tsx:370 +#: src/pages/sales/SalesOrderDetail.tsx:403 msgid "Order completed" msgstr "Order completed" -#: src/pages/build/BuildDetail.tsx:460 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:391 -#: src/pages/sales/ReturnOrderDetail.tsx:392 -#: src/pages/sales/SalesOrderDetail.tsx:425 +#: src/pages/build/BuildDetail.tsx:448 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:400 +#: src/pages/sales/ReturnOrderDetail.tsx:399 +#: src/pages/sales/SalesOrderDetail.tsx:432 msgid "Issue Order" msgstr "Issue Order" -#: src/pages/build/BuildDetail.tsx:467 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:398 -#: src/pages/sales/ReturnOrderDetail.tsx:399 -#: src/pages/sales/SalesOrderDetail.tsx:439 +#: src/pages/build/BuildDetail.tsx:455 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:407 +#: src/pages/sales/ReturnOrderDetail.tsx:406 +#: src/pages/sales/SalesOrderDetail.tsx:446 msgid "Complete Order" msgstr "Complete Order" -#: src/pages/build/BuildDetail.tsx:496 +#: src/pages/build/BuildDetail.tsx:473 msgid "Build Order Actions" msgstr "Build Order Actions" -#: src/pages/build/BuildDetail.tsx:502 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:432 -#: src/pages/sales/ReturnOrderDetail.tsx:433 -#: src/pages/sales/SalesOrderDetail.tsx:474 +#: src/pages/build/BuildDetail.tsx:478 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:429 +#: src/pages/sales/ReturnOrderDetail.tsx:428 +#: src/pages/sales/SalesOrderDetail.tsx:469 msgid "Edit order" msgstr "Edit order" -#: src/pages/build/BuildDetail.tsx:506 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:440 -#: src/pages/sales/ReturnOrderDetail.tsx:439 -#: src/pages/sales/SalesOrderDetail.tsx:479 +#: src/pages/build/BuildDetail.tsx:482 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:437 +#: src/pages/sales/ReturnOrderDetail.tsx:434 +#: src/pages/sales/SalesOrderDetail.tsx:474 msgid "Duplicate order" msgstr "Duplicate order" -#: src/pages/build/BuildDetail.tsx:510 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:443 -#: src/pages/sales/ReturnOrderDetail.tsx:444 -#: src/pages/sales/SalesOrderDetail.tsx:482 +#: src/pages/build/BuildDetail.tsx:486 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:440 +#: src/pages/sales/ReturnOrderDetail.tsx:439 +#: src/pages/sales/SalesOrderDetail.tsx:477 msgid "Hold order" msgstr "Hold order" -#: src/pages/build/BuildDetail.tsx:515 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:448 -#: src/pages/sales/ReturnOrderDetail.tsx:449 -#: src/pages/sales/SalesOrderDetail.tsx:487 +#: src/pages/build/BuildDetail.tsx:491 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:445 +#: src/pages/sales/ReturnOrderDetail.tsx:444 +#: src/pages/sales/SalesOrderDetail.tsx:482 msgid "Cancel order" msgstr "Cancel order" @@ -4290,57 +5035,61 @@ msgstr "Cancel order" #~ msgid "New Build Order" #~ msgstr "New Build Order" -#: src/pages/company/CompanyDetail.tsx:104 +#: src/pages/company/CompanyDetail.tsx:95 +msgid "Website" +msgstr "Website" + +#: src/pages/company/CompanyDetail.tsx:103 msgid "Phone Number" msgstr "Phone Number" -#: src/pages/company/CompanyDetail.tsx:111 +#: src/pages/company/CompanyDetail.tsx:110 msgid "Email Address" msgstr "Email Address" -#: src/pages/company/CompanyDetail.tsx:121 +#: src/pages/company/CompanyDetail.tsx:120 msgid "Default Currency" msgstr "Default Currency" -#: src/pages/company/CompanyDetail.tsx:126 +#: src/pages/company/CompanyDetail.tsx:125 #: src/pages/company/SupplierDetail.tsx:8 -#: src/pages/company/SupplierPartDetail.tsx:120 -#: src/pages/company/SupplierPartDetail.tsx:206 -#: src/pages/company/SupplierPartDetail.tsx:351 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:136 -#: src/tables/company/CompanyTable.tsx:100 +#: src/pages/company/SupplierPartDetail.tsx:125 +#: src/pages/company/SupplierPartDetail.tsx:218 +#: src/pages/company/SupplierPartDetail.tsx:340 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:130 +#: src/tables/company/CompanyTable.tsx:101 #: src/tables/part/PartPurchaseOrdersTable.tsx:42 -#: src/tables/purchasing/PurchaseOrderTable.tsx:88 +#: src/tables/purchasing/PurchaseOrderTable.tsx:89 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:36 msgid "Supplier" msgstr "Supplier" -#: src/pages/company/CompanyDetail.tsx:132 +#: src/pages/company/CompanyDetail.tsx:131 #: src/pages/company/ManufacturerDetail.tsx:8 -#: src/pages/company/ManufacturerPartDetail.tsx:101 -#: src/pages/company/ManufacturerPartDetail.tsx:267 -#: src/pages/company/SupplierPartDetail.tsx:135 -#: src/tables/company/CompanyTable.tsx:105 +#: src/pages/company/ManufacturerPartDetail.tsx:100 +#: src/pages/company/ManufacturerPartDetail.tsx:262 +#: src/pages/company/SupplierPartDetail.tsx:147 +#: src/tables/company/CompanyTable.tsx:106 msgid "Manufacturer" msgstr "Manufacturer" -#: src/pages/company/CompanyDetail.tsx:138 +#: src/pages/company/CompanyDetail.tsx:137 #: src/pages/company/CustomerDetail.tsx:8 -#: src/pages/part/pricing/SaleHistoryPanel.tsx:29 -#: src/pages/sales/ReturnOrderDetail.tsx:109 -#: src/pages/sales/SalesOrderDetail.tsx:115 -#: src/pages/stock/StockDetail.tsx:230 -#: src/tables/company/CompanyTable.tsx:110 -#: src/tables/sales/ReturnOrderTable.tsx:78 -#: src/tables/sales/SalesOrderTable.tsx:108 -#: src/tables/stock/StockTrackingTable.tsx:140 +#: src/pages/part/pricing/SaleHistoryPanel.tsx:31 +#: src/pages/sales/ReturnOrderDetail.tsx:101 +#: src/pages/sales/SalesOrderDetail.tsx:110 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:100 +#: src/pages/stock/StockDetail.tsx:271 +#: src/tables/company/CompanyTable.tsx:111 +#: src/tables/sales/ReturnOrderTable.tsx:97 +#: src/tables/sales/SalesOrderTable.tsx:121 +#: src/tables/stock/StockTrackingTable.tsx:144 msgid "Customer" msgstr "Customer" #: src/pages/company/CompanyDetail.tsx:172 -#: src/tables/stock/StockTrackingTable.tsx:183 -msgid "Details" -msgstr "Details" +msgid "Company Details" +msgstr "Company Details" #: src/pages/company/CompanyDetail.tsx:175 #~ msgid "Edit company" @@ -4358,140 +5107,150 @@ msgstr "Supplied Parts" #~ msgid "Delete company" #~ msgstr "Delete company" -#: src/pages/company/CompanyDetail.tsx:232 +#: src/pages/company/CompanyDetail.tsx:234 msgid "Assigned Stock" msgstr "Assigned Stock" -#: src/pages/company/CompanyDetail.tsx:290 -#: src/tables/company/CompanyTable.tsx:86 +#: src/pages/company/CompanyDetail.tsx:273 +#: src/tables/company/CompanyTable.tsx:87 msgid "Edit Company" msgstr "Edit Company" -#: src/pages/company/CompanyDetail.tsx:298 +#: src/pages/company/CompanyDetail.tsx:281 msgid "Delete Company" msgstr "Delete Company" -#: src/pages/company/CompanyDetail.tsx:306 +#: src/pages/company/CompanyDetail.tsx:289 msgid "Company Actions" msgstr "Company Actions" -#: src/pages/company/ManufacturerPartDetail.tsx:76 -#: src/pages/company/SupplierPartDetail.tsx:89 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:128 +#: src/pages/company/ManufacturerPartDetail.tsx:74 +#: src/pages/company/SupplierPartDetail.tsx:84 msgid "Internal Part" msgstr "Internal Part" -#: src/pages/company/ManufacturerPartDetail.tsx:91 -#: src/pages/company/SupplierPartDetail.tsx:103 -msgid "External Link" -msgstr "External Link" - -#: src/pages/company/ManufacturerPartDetail.tsx:109 -#: src/pages/company/SupplierPartDetail.tsx:144 -#: src/tables/purchasing/ManufacturerPartTable.tsx:56 +#: src/pages/company/ManufacturerPartDetail.tsx:108 +#: src/pages/company/SupplierPartDetail.tsx:156 +#: src/tables/purchasing/ManufacturerPartTable.tsx:58 msgid "Manufacturer Part Number" msgstr "Manufacturer Part Number" -#: src/pages/company/ManufacturerPartDetail.tsx:138 +#: src/pages/company/ManufacturerPartDetail.tsx:125 +#: src/pages/company/SupplierPartDetail.tsx:108 +msgid "External Link" +msgstr "External Link" + +#: src/pages/company/ManufacturerPartDetail.tsx:146 +#: src/pages/company/SupplierPartDetail.tsx:215 +#: src/pages/part/PartDetail.tsx:576 +msgid "Part Details" +msgstr "Part Details" + +#: src/pages/company/ManufacturerPartDetail.tsx:149 msgid "Manufacturer Details" msgstr "Manufacturer Details" -#: src/pages/company/ManufacturerPartDetail.tsx:147 +#: src/pages/company/ManufacturerPartDetail.tsx:158 msgid "Manufacturer Part Details" msgstr "Manufacturer Part Details" -#: src/pages/company/ManufacturerPartDetail.tsx:153 -#: src/pages/part/PartDetail.tsx:532 +#: src/pages/company/ManufacturerPartDetail.tsx:164 +#: src/pages/part/PartDetail.tsx:582 msgid "Parameters" msgstr "Parameters" -#: src/pages/company/ManufacturerPartDetail.tsx:165 -#: src/pages/part/PartDetail.tsx:649 +#: src/pages/company/ManufacturerPartDetail.tsx:176 +#: src/pages/part/PartDetail.tsx:669 #: src/pages/purchasing/PurchasingIndex.tsx:31 msgid "Suppliers" msgstr "Suppliers" -#: src/pages/company/ManufacturerPartDetail.tsx:208 -#: src/tables/purchasing/ManufacturerPartTable.tsx:84 +#: src/pages/company/ManufacturerPartDetail.tsx:204 +#: src/tables/purchasing/ManufacturerPartTable.tsx:86 msgid "Edit Manufacturer Part" msgstr "Edit Manufacturer Part" -#: src/pages/company/ManufacturerPartDetail.tsx:215 -#: src/tables/purchasing/ManufacturerPartTable.tsx:72 -#: src/tables/purchasing/ManufacturerPartTable.tsx:103 +#: src/pages/company/ManufacturerPartDetail.tsx:211 +#: src/tables/purchasing/ManufacturerPartTable.tsx:74 +#: src/tables/purchasing/ManufacturerPartTable.tsx:106 msgid "Add Manufacturer Part" msgstr "Add Manufacturer Part" -#: src/pages/company/ManufacturerPartDetail.tsx:227 -#: src/tables/purchasing/ManufacturerPartTable.tsx:92 +#: src/pages/company/ManufacturerPartDetail.tsx:223 +#: src/tables/purchasing/ManufacturerPartTable.tsx:94 msgid "Delete Manufacturer Part" msgstr "Delete Manufacturer Part" -#: src/pages/company/ManufacturerPartDetail.tsx:240 +#: src/pages/company/ManufacturerPartDetail.tsx:236 msgid "Manufacturer Part Actions" msgstr "Manufacturer Part Actions" -#: src/pages/company/ManufacturerPartDetail.tsx:281 +#: src/pages/company/ManufacturerPartDetail.tsx:276 msgid "ManufacturerPart" msgstr "ManufacturerPart" -#: src/pages/company/SupplierPartDetail.tsx:163 -#: src/tables/part/PartPurchaseOrdersTable.tsx:71 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:156 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:197 -#: src/tables/purchasing/SupplierPartTable.tsx:131 +#: src/pages/company/SupplierPartDetail.tsx:99 +msgid "Part Description" +msgstr "Part Description" + +#: src/pages/company/SupplierPartDetail.tsx:175 +#: src/tables/part/PartPurchaseOrdersTable.tsx:72 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:162 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:203 +#: src/tables/purchasing/SupplierPartTable.tsx:133 msgid "Pack Quantity" msgstr "Pack Quantity" -#: src/pages/company/SupplierPartDetail.tsx:174 +#: src/pages/company/SupplierPartDetail.tsx:186 msgid "Supplier Availability" msgstr "Supplier Availability" -#: src/pages/company/SupplierPartDetail.tsx:181 +#: src/pages/company/SupplierPartDetail.tsx:193 msgid "Availability Updated" msgstr "Availability Updated" -#: src/pages/company/SupplierPartDetail.tsx:208 +#: src/pages/company/SupplierPartDetail.tsx:220 msgid "Availability" msgstr "Availability" -#: src/pages/company/SupplierPartDetail.tsx:217 +#: src/pages/company/SupplierPartDetail.tsx:229 msgid "Supplier Part Details" msgstr "Supplier Part Details" -#: src/pages/company/SupplierPartDetail.tsx:223 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:296 +#: src/pages/company/SupplierPartDetail.tsx:235 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:320 msgid "Received Stock" msgstr "Received Stock" -#: src/pages/company/SupplierPartDetail.tsx:247 -#: src/pages/part/PartPricingPanel.tsx:111 -#: src/pages/part/pricing/PricingOverviewPanel.tsx:121 +#: src/pages/company/SupplierPartDetail.tsx:259 +#: src/pages/part/PartPricingPanel.tsx:116 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:195 msgid "Supplier Pricing" msgstr "Supplier Pricing" -#: src/pages/company/SupplierPartDetail.tsx:294 +#: src/pages/company/SupplierPartDetail.tsx:284 msgid "Supplier Part Actions" msgstr "Supplier Part Actions" -#: src/pages/company/SupplierPartDetail.tsx:319 -#: src/tables/purchasing/SupplierPartTable.tsx:210 +#: src/pages/company/SupplierPartDetail.tsx:308 +#: src/tables/purchasing/SupplierPartTable.tsx:213 msgid "Edit Supplier Part" msgstr "Edit Supplier Part" -#: src/pages/company/SupplierPartDetail.tsx:327 -#: src/tables/purchasing/SupplierPartTable.tsx:218 +#: src/pages/company/SupplierPartDetail.tsx:316 +#: src/tables/purchasing/SupplierPartTable.tsx:221 msgid "Delete Supplier Part" msgstr "Delete Supplier Part" -#: src/pages/company/SupplierPartDetail.tsx:335 -#: src/tables/purchasing/SupplierPartTable.tsx:163 +#: src/pages/company/SupplierPartDetail.tsx:324 +#: src/tables/purchasing/SupplierPartTable.tsx:165 msgid "Add Supplier Part" msgstr "Add Supplier Part" #: src/pages/part/CategoryDetail.tsx:93 -#: src/pages/stock/LocationDetail.tsx:101 -#: src/tables/settings/ErrorTable.tsx:36 +#: src/pages/stock/LocationDetail.tsx:95 +#: src/tables/settings/ErrorTable.tsx:63 +#: src/tables/settings/ErrorTable.tsx:108 msgid "Path" msgstr "Path" @@ -4499,357 +5258,357 @@ msgstr "Path" msgid "Parent Category" msgstr "Parent Category" -#: src/pages/part/CategoryDetail.tsx:126 +#: src/pages/part/CategoryDetail.tsx:132 msgid "Subcategories" msgstr "Subcategories" -#: src/pages/part/CategoryDetail.tsx:133 -#: src/pages/stock/LocationDetail.tsx:141 -#: src/tables/part/PartCategoryTable.tsx:73 +#: src/pages/part/CategoryDetail.tsx:139 +#: src/pages/stock/LocationDetail.tsx:135 +#: src/tables/part/PartCategoryTable.tsx:85 #: src/tables/stock/StockLocationTable.tsx:49 msgid "Structural" msgstr "Structural" -#: src/pages/part/CategoryDetail.tsx:139 +#: src/pages/part/CategoryDetail.tsx:145 msgid "Parent default location" msgstr "Parent default location" -#: src/pages/part/CategoryDetail.tsx:146 +#: src/pages/part/CategoryDetail.tsx:152 msgid "Default location" msgstr "Default location" -#: src/pages/part/CategoryDetail.tsx:157 +#: src/pages/part/CategoryDetail.tsx:163 msgid "Top level part category" msgstr "Top level part category" -#: src/pages/part/CategoryDetail.tsx:167 -#: src/pages/part/CategoryDetail.tsx:221 -#: src/tables/part/PartCategoryTable.tsx:102 +#: src/pages/part/CategoryDetail.tsx:173 +#: src/pages/part/CategoryDetail.tsx:226 +#: src/tables/part/PartCategoryTable.tsx:118 msgid "Edit Part Category" msgstr "Edit Part Category" -#: src/pages/part/CategoryDetail.tsx:180 -#: src/pages/stock/LocationDetail.tsx:233 +#: src/pages/part/CategoryDetail.tsx:186 +#: src/pages/stock/LocationDetail.tsx:227 msgid "Delete items" msgstr "Delete items" -#: src/pages/part/CategoryDetail.tsx:188 -#: src/pages/part/CategoryDetail.tsx:226 +#: src/pages/part/CategoryDetail.tsx:194 +#: src/pages/part/CategoryDetail.tsx:231 msgid "Delete Part Category" msgstr "Delete Part Category" -#: src/pages/part/CategoryDetail.tsx:191 +#: src/pages/part/CategoryDetail.tsx:197 msgid "Parts Action" msgstr "Parts Action" -#: src/pages/part/CategoryDetail.tsx:192 +#: src/pages/part/CategoryDetail.tsx:198 msgid "Action for parts in this category" msgstr "Action for parts in this category" -#: src/pages/part/CategoryDetail.tsx:197 +#: src/pages/part/CategoryDetail.tsx:203 msgid "Child Categories Action" msgstr "Child Categories Action" -#: src/pages/part/CategoryDetail.tsx:198 +#: src/pages/part/CategoryDetail.tsx:204 msgid "Action for child categories in this category" msgstr "Action for child categories in this category" -#: src/pages/part/CategoryDetail.tsx:216 +#: src/pages/part/CategoryDetail.tsx:222 msgid "Category Actions" msgstr "Category Actions" -#: src/pages/part/CategoryDetail.tsx:238 +#: src/pages/part/CategoryDetail.tsx:243 msgid "Category Details" msgstr "Category Details" -#: src/pages/part/PartDetail.tsx:163 +#: src/pages/part/PartAllocationPanel.tsx:23 +#: src/pages/stock/StockDetail.tsx:443 +#: src/tables/part/PartTable.tsx:99 +msgid "Build Order Allocations" +msgstr "Build Order Allocations" + +#: src/pages/part/PartAllocationPanel.tsx:40 +#: src/pages/stock/StockDetail.tsx:458 +#: src/tables/part/PartTable.tsx:108 +msgid "Sales Order Allocations" +msgstr "Sales Order Allocations" + +#: src/pages/part/PartDetail.tsx:184 msgid "Variant of" msgstr "Variant of" -#: src/pages/part/PartDetail.tsx:170 +#: src/pages/part/PartDetail.tsx:191 msgid "Revision of" msgstr "Revision of" -#: src/pages/part/PartDetail.tsx:177 -#: src/tables/stock/StockItemTable.tsx:58 +#: src/pages/part/PartDetail.tsx:198 +#: src/tables/stock/StockItemTable.tsx:59 msgid "Revision" msgstr "Revision" -#: src/pages/part/PartDetail.tsx:184 +#: src/pages/part/PartDetail.tsx:205 #: src/tables/notifications/NotificationsTable.tsx:31 #: src/tables/part/PartCategoryTemplateTable.tsx:67 msgid "Category" msgstr "Category" -#: src/pages/part/PartDetail.tsx:190 +#: src/pages/part/PartDetail.tsx:211 msgid "Default Location" msgstr "Default Location" -#: src/pages/part/PartDetail.tsx:197 +#: src/pages/part/PartDetail.tsx:218 msgid "Category Default Location" msgstr "Category Default Location" -#: src/pages/part/PartDetail.tsx:204 +#: src/pages/part/PartDetail.tsx:225 #: src/tables/purchasing/ManufacturerPartParameterTable.tsx:44 msgid "Units" msgstr "Units" -#: src/pages/part/PartDetail.tsx:211 -#: src/tables/settings/PendingTasksTable.tsx:42 +#: src/pages/part/PartDetail.tsx:232 +#: src/tables/settings/PendingTasksTable.tsx:46 msgid "Keywords" msgstr "Keywords" -#: src/pages/part/PartDetail.tsx:218 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:186 -#: src/pages/sales/ReturnOrderDetail.tsx:165 -#: src/pages/sales/SalesOrderDetail.tsx:174 -msgid "Link" -msgstr "Link" - -#: src/pages/part/PartDetail.tsx:236 +#: src/pages/part/PartDetail.tsx:257 #: src/tables/bom/BomTable.tsx:320 -#: src/tables/build/BuildLineTable.tsx:155 +#: src/tables/build/BuildLineTable.tsx:286 #: src/tables/part/PartTable.tsx:288 -#: src/tables/sales/SalesOrderLineItemTable.tsx:103 +#: src/tables/sales/SalesOrderLineItemTable.tsx:111 msgid "Available Stock" msgstr "Available Stock" -#: src/pages/part/PartDetail.tsx:243 +#: src/pages/part/PartDetail.tsx:264 msgid "Variant Stock" msgstr "Variant Stock" -#: src/pages/part/PartDetail.tsx:251 +#: src/pages/part/PartDetail.tsx:272 msgid "Minimum Stock" msgstr "Minimum Stock" -#: src/pages/part/PartDetail.tsx:257 +#: src/pages/part/PartDetail.tsx:278 #: src/tables/bom/BomTable.tsx:237 -#: src/tables/build/BuildLineTable.tsx:117 -#: src/tables/sales/SalesOrderLineItemTable.tsx:141 +#: src/tables/build/BuildLineTable.tsx:248 +#: src/tables/sales/SalesOrderLineItemTable.tsx:149 msgid "On order" msgstr "On order" -#: src/pages/part/PartDetail.tsx:266 +#: src/pages/part/PartDetail.tsx:285 +msgid "Required for Orders" +msgstr "Required for Orders" + +#: src/pages/part/PartDetail.tsx:294 msgid "Allocated to Build Orders" msgstr "Allocated to Build Orders" -#: src/pages/part/PartDetail.tsx:274 +#: src/pages/part/PartDetail.tsx:305 msgid "Allocated to Sales Orders" msgstr "Allocated to Sales Orders" -#: src/pages/part/PartDetail.tsx:281 -#: src/tables/bom/BomTable.tsx:261 -#: src/tables/bom/BomTable.tsx:293 -msgid "Can Build" -msgstr "Can Build" - -#: src/pages/part/PartDetail.tsx:288 -#: src/tables/bom/BomTable.tsx:245 -#: src/tables/part/PartTable.tsx:92 -msgid "Building" -msgstr "Building" - -#: src/pages/part/PartDetail.tsx:302 -#: src/pages/part/PartDetail.tsx:873 -#: src/tables/part/ParametricPartTable.tsx:228 -#: src/tables/part/PartTable.tsx:184 -msgid "Locked" -msgstr "Locked" - -#: src/pages/part/PartDetail.tsx:308 -msgid "Template Part" -msgstr "Template Part" - #: src/pages/part/PartDetail.tsx:310 #~ msgid "Edit part" #~ msgstr "Edit part" -#: src/pages/part/PartDetail.tsx:313 -#: src/tables/bom/BomTable.tsx:315 -msgid "Assembled Part" -msgstr "Assembled Part" +#: src/pages/part/PartDetail.tsx:315 +#: src/tables/bom/BomTable.tsx:261 +#: src/tables/bom/BomTable.tsx:293 +msgid "Can Build" +msgstr "Can Build" -#: src/pages/part/PartDetail.tsx:318 -msgid "Component Part" -msgstr "Component Part" +#: src/pages/part/PartDetail.tsx:322 +#: src/pages/part/PartDetail.tsx:905 +#: src/pages/stock/StockDetail.tsx:766 +#: src/tables/build/BuildOrderTestTable.tsx:220 +#: src/tables/stock/StockItemTable.tsx:334 +msgid "In Production" +msgstr "In Production" #: src/pages/part/PartDetail.tsx:322 #~ msgid "Duplicate part" #~ msgstr "Duplicate part" -#: src/pages/part/PartDetail.tsx:323 -#: src/tables/bom/BomTable.tsx:305 -msgid "Testable Part" -msgstr "Testable Part" - #: src/pages/part/PartDetail.tsx:327 #~ msgid "Delete part" #~ msgstr "Delete part" -#: src/pages/part/PartDetail.tsx:329 +#: src/pages/part/PartDetail.tsx:336 +#: src/tables/part/ParametricPartTable.tsx:228 +#: src/tables/part/PartTable.tsx:184 +msgid "Locked" +msgstr "Locked" + +#: src/pages/part/PartDetail.tsx:342 +msgid "Template Part" +msgstr "Template Part" + +#: src/pages/part/PartDetail.tsx:347 +#: src/tables/bom/BomTable.tsx:315 +msgid "Assembled Part" +msgstr "Assembled Part" + +#: src/pages/part/PartDetail.tsx:352 +msgid "Component Part" +msgstr "Component Part" + +#: src/pages/part/PartDetail.tsx:357 +#: src/tables/bom/BomTable.tsx:305 +msgid "Testable Part" +msgstr "Testable Part" + +#: src/pages/part/PartDetail.tsx:363 #: src/tables/bom/BomTable.tsx:310 msgid "Trackable Part" msgstr "Trackable Part" -#: src/pages/part/PartDetail.tsx:334 +#: src/pages/part/PartDetail.tsx:368 msgid "Purchaseable Part" msgstr "Purchaseable Part" -#: src/pages/part/PartDetail.tsx:339 +#: src/pages/part/PartDetail.tsx:374 msgid "Saleable Part" msgstr "Saleable Part" -#: src/pages/part/PartDetail.tsx:344 +#: src/pages/part/PartDetail.tsx:379 msgid "Virtual Part" msgstr "Virtual Part" -#: src/pages/part/PartDetail.tsx:352 -#: src/tables/ColumnRenderers.tsx:220 +#: src/pages/part/PartDetail.tsx:393 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:215 +#: src/pages/sales/ReturnOrderDetail.tsx:185 +#: src/pages/sales/SalesOrderDetail.tsx:197 +#: src/tables/ColumnRenderers.tsx:234 msgid "Creation Date" msgstr "Creation Date" -#: src/pages/part/PartDetail.tsx:357 +#: src/pages/part/PartDetail.tsx:398 msgid "Created By" msgstr "Created By" -#: src/pages/part/PartDetail.tsx:372 +#: src/pages/part/PartDetail.tsx:413 msgid "Default Supplier" msgstr "Default Supplier" -#: src/pages/part/PartDetail.tsx:383 -#: src/pages/part/pricing/BomPricingPanel.tsx:79 +#: src/pages/part/PartDetail.tsx:424 +#: src/pages/part/pricing/BomPricingPanel.tsx:113 #: src/pages/part/pricing/VariantPricingPanel.tsx:95 #: src/tables/part/PartTable.tsx:161 msgid "Price Range" msgstr "Price Range" -#: src/pages/part/PartDetail.tsx:423 -#: src/pages/stock/StockDetail.tsx:135 +#: src/pages/part/PartDetail.tsx:462 +msgid "Latest Serial Number" +msgstr "Latest Serial Number" + +#: src/pages/part/PartDetail.tsx:472 +#: src/pages/stock/StockDetail.tsx:151 msgid "Last Stocktake" msgstr "Last Stocktake" -#: src/pages/part/PartDetail.tsx:462 +#: src/pages/part/PartDetail.tsx:511 msgid "Stocktake By" msgstr "Stocktake By" -#: src/pages/part/PartDetail.tsx:526 -msgid "Part Details" -msgstr "Part Details" - -#: src/pages/part/PartDetail.tsx:557 +#: src/pages/part/PartDetail.tsx:611 msgid "Variants" msgstr "Variants" -#: src/pages/part/PartDetail.tsx:564 -#: src/pages/stock/StockDetail.tsx:307 +#: src/pages/part/PartDetail.tsx:618 +#: src/pages/stock/StockDetail.tsx:430 msgid "Allocations" msgstr "Allocations" -#: src/pages/part/PartDetail.tsx:575 -#: src/pages/stock/StockDetail.tsx:318 -#: src/tables/part/PartTable.tsx:99 -msgid "Build Order Allocations" -msgstr "Build Order Allocations" - -#: src/pages/part/PartDetail.tsx:590 -#: src/pages/stock/StockDetail.tsx:333 -#: src/tables/part/PartTable.tsx:108 -msgid "Sales Order Allocations" -msgstr "Sales Order Allocations" - -#: src/pages/part/PartDetail.tsx:607 +#: src/pages/part/PartDetail.tsx:625 msgid "Bill of Materials" msgstr "Bill of Materials" -#: src/pages/part/PartDetail.tsx:623 +#: src/pages/part/PartDetail.tsx:643 msgid "Used In" msgstr "Used In" -#: src/pages/part/PartDetail.tsx:630 +#: src/pages/part/PartDetail.tsx:650 msgid "Part Pricing" msgstr "Part Pricing" -#: src/pages/part/PartDetail.tsx:636 +#: src/pages/part/PartDetail.tsx:656 #: src/pages/purchasing/PurchasingIndex.tsx:42 msgid "Manufacturers" msgstr "Manufacturers" -#: src/pages/part/PartDetail.tsx:676 +#: src/pages/part/PartDetail.tsx:722 msgid "Scheduling" msgstr "Scheduling" -#: src/pages/part/PartDetail.tsx:688 +#: src/pages/part/PartDetail.tsx:729 msgid "Test Templates" msgstr "Test Templates" -#: src/pages/part/PartDetail.tsx:715 +#: src/pages/part/PartDetail.tsx:756 msgid "Related Parts" msgstr "Related Parts" -#: src/pages/part/PartDetail.tsx:849 -#: src/pages/stock/StockDetail.tsx:156 -#: src/pages/stock/StockDetail.tsx:593 -#: src/tables/build/BuildLineTable.tsx:48 +#: src/pages/part/PartDetail.tsx:881 +#: src/pages/stock/StockDetail.tsx:172 +#: src/pages/stock/StockDetail.tsx:783 +#: src/tables/build/BuildLineTable.tsx:179 #: src/tables/part/PartTable.tsx:117 -#: src/tables/stock/StockItemTable.tsx:177 -#: src/tables/stock/StockItemTable.tsx:310 +#: src/tables/stock/StockItemTable.tsx:166 +#: src/tables/stock/StockItemTable.tsx:314 msgid "Available" msgstr "Available" -#: src/pages/part/PartDetail.tsx:855 +#: src/pages/part/PartDetail.tsx:887 msgid "No Stock" msgstr "No Stock" -#: src/pages/part/PartDetail.tsx:861 +#: src/pages/part/PartDetail.tsx:893 +#: src/tables/part/PartTestTemplateTable.tsx:106 +#: src/tables/stock/StockItemTestResultTable.tsx:383 +msgid "Required" +msgstr "Required" + +#: src/pages/part/PartDetail.tsx:899 #: src/tables/bom/BomTable.tsx:325 #: src/tables/part/PartTable.tsx:86 msgid "On Order" msgstr "On Order" -#: src/pages/part/PartDetail.tsx:867 -#: src/pages/stock/StockDetail.tsx:576 -#: src/tables/build/BuildOrderTestTable.tsx:219 -#: src/tables/stock/StockItemTable.tsx:330 -msgid "In Production" -msgstr "In Production" - -#: src/pages/part/PartDetail.tsx:892 +#: src/pages/part/PartDetail.tsx:924 msgid "Edit Part" msgstr "Edit Part" -#: src/pages/part/PartDetail.tsx:927 +#: src/pages/part/PartDetail.tsx:959 #: src/tables/part/PartTable.tsx:331 -#: src/tables/part/PartTable.tsx:342 +#: src/tables/part/PartTable.tsx:343 msgid "Add Part" msgstr "Add Part" -#: src/pages/part/PartDetail.tsx:941 +#: src/pages/part/PartDetail.tsx:973 msgid "Delete Part" msgstr "Delete Part" -#: src/pages/part/PartDetail.tsx:950 +#: src/pages/part/PartDetail.tsx:982 msgid "Deleting this part cannot be reversed" msgstr "Deleting this part cannot be reversed" -#: src/pages/part/PartDetail.tsx:999 -#: src/pages/stock/LocationDetail.tsx:324 -#: src/tables/stock/StockItemTable.tsx:444 +#: src/pages/part/PartDetail.tsx:1021 +#: src/pages/stock/LocationDetail.tsx:310 +#: src/tables/stock/StockItemTable.tsx:449 msgid "Stock Actions" msgstr "Stock Actions" -#: src/pages/part/PartDetail.tsx:1007 +#: src/pages/part/PartDetail.tsx:1029 msgid "Count part stock" msgstr "Count part stock" -#: src/pages/part/PartDetail.tsx:1018 +#: src/pages/part/PartDetail.tsx:1040 msgid "Transfer part stock" msgstr "Transfer part stock" -#: src/pages/part/PartDetail.tsx:1027 +#: src/pages/part/PartDetail.tsx:1049 msgid "Part Actions" msgstr "Part Actions" -#: src/pages/part/PartDetail.tsx:1087 +#: src/pages/part/PartDetail.tsx:1113 msgid "Select Part Revision" msgstr "Select Part Revision" @@ -4857,113 +5616,214 @@ msgstr "Select Part Revision" #~ msgid "Categories" #~ msgstr "Categories" -#: src/pages/part/PartPricingPanel.tsx:68 +#: src/pages/part/PartPricingPanel.tsx:72 msgid "No pricing data found for this part." msgstr "No pricing data found for this part." -#: src/pages/part/PartPricingPanel.tsx:82 -#: src/pages/part/pricing/PricingOverviewPanel.tsx:190 +#: src/pages/part/PartPricingPanel.tsx:87 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:293 msgid "Pricing Overview" msgstr "Pricing Overview" -#: src/pages/part/PartPricingPanel.tsx:88 +#: src/pages/part/PartPricingPanel.tsx:93 msgid "Purchase History" msgstr "Purchase History" -#: src/pages/part/PartPricingPanel.tsx:102 -#: src/pages/part/pricing/PricingOverviewPanel.tsx:100 +#: src/pages/part/PartPricingPanel.tsx:107 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:174 msgid "Internal Pricing" msgstr "Internal Pricing" -#: src/pages/part/PartPricingPanel.tsx:120 -#: src/pages/part/pricing/PricingOverviewPanel.tsx:107 +#: src/pages/part/PartPricingPanel.tsx:125 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:181 msgid "BOM Pricing" msgstr "BOM Pricing" -#: src/pages/part/PartPricingPanel.tsx:127 -#: src/pages/part/pricing/PricingOverviewPanel.tsx:128 +#: src/pages/part/PartPricingPanel.tsx:132 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:202 msgid "Variant Pricing" msgstr "Variant Pricing" -#: src/pages/part/PartPricingPanel.tsx:139 -#: src/pages/part/pricing/PricingOverviewPanel.tsx:135 +#: src/pages/part/PartPricingPanel.tsx:144 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:209 msgid "Sale Pricing" msgstr "Sale Pricing" -#: src/pages/part/PartPricingPanel.tsx:146 -#: src/pages/part/pricing/PricingOverviewPanel.tsx:142 +#: src/pages/part/PartPricingPanel.tsx:151 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:216 msgid "Sale History" msgstr "Sale History" -#: src/pages/part/pricing/BomPricingPanel.tsx:58 -#: src/pages/part/pricing/BomPricingPanel.tsx:138 -#: src/tables/ColumnRenderers.tsx:262 +#: src/pages/part/PartSchedulingDetail.tsx:47 +#: src/pages/part/PartSchedulingDetail.tsx:299 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:156 +msgid "Maximum" +msgstr "Maximum" + +#: src/pages/part/PartSchedulingDetail.tsx:50 +#: src/pages/part/PartSchedulingDetail.tsx:289 +msgid "Scheduled" +msgstr "Scheduled" + +#: src/pages/part/PartSchedulingDetail.tsx:53 +#: src/pages/part/PartSchedulingDetail.tsx:294 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:144 +msgid "Minimum" +msgstr "Minimum" + +#: src/pages/part/PartSchedulingDetail.tsx:68 +msgid "Order" +msgstr "Order" + +#: src/pages/part/PartSchedulingDetail.tsx:92 +msgid "Quantity is speculative" +msgstr "Quantity is speculative" + +#: src/pages/part/PartSchedulingDetail.tsx:101 +msgid "No date available for provided quantity" +msgstr "No date available for provided quantity" + +#: src/pages/part/PartSchedulingDetail.tsx:105 +msgid "Date is in the past" +msgstr "Date is in the past" + +#: src/pages/part/PartSchedulingDetail.tsx:112 +msgid "Scheduled Quantity" +msgstr "Scheduled Quantity" + +#: src/pages/part/PartSchedulingDetail.tsx:240 +msgid "No information available" +msgstr "No information available" + +#: src/pages/part/PartSchedulingDetail.tsx:241 +msgid "There is no scheduling information available for the selected part" +msgstr "There is no scheduling information available for the selected part" + +#: src/pages/part/PartSchedulingDetail.tsx:276 +msgid "Expected Quantity" +msgstr "Expected Quantity" + +#: src/pages/part/PartStocktakeDetail.tsx:63 +#: src/tables/FilterSelectDrawer.tsx:167 +#: src/tables/FilterSelectDrawer.tsx:174 +#: src/tables/build/BuildOrderTestTable.tsx:135 +#: src/tables/purchasing/ManufacturerPartParameterTable.tsx:38 +#: src/tables/stock/StockItemTestResultTable.tsx:192 +msgid "Value" +msgstr "Value" + +#: src/pages/part/PartStocktakeDetail.tsx:82 +msgid "Edit Stocktake Entry" +msgstr "Edit Stocktake Entry" + +#: src/pages/part/PartStocktakeDetail.tsx:90 +msgid "Delete Stocktake Entry" +msgstr "Delete Stocktake Entry" + +#: src/pages/part/PartStocktakeDetail.tsx:96 +#: src/tables/settings/StocktakeReportTable.tsx:69 +msgid "Generate Stocktake Report" +msgstr "Generate Stocktake Report" + +#: src/pages/part/PartStocktakeDetail.tsx:101 +#: src/tables/settings/StocktakeReportTable.tsx:71 +msgid "Stocktake report scheduled" +msgstr "Stocktake report scheduled" + +#: src/pages/part/PartStocktakeDetail.tsx:119 +#: src/pages/part/PartStocktakeDetail.tsx:235 +#: src/pages/stock/StockDetail.tsx:303 +#: src/tables/stock/StockItemTable.tsx:249 +msgid "Stock Value" +msgstr "Stock Value" + +#: src/pages/part/PartStocktakeDetail.tsx:139 +#: src/tables/settings/StocktakeReportTable.tsx:77 +msgid "New Stocktake Report" +msgstr "New Stocktake Report" + +#: src/pages/part/PartStocktakeDetail.tsx:258 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:295 +msgid "Minimum Value" +msgstr "Minimum Value" + +#: src/pages/part/PartStocktakeDetail.tsx:264 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:296 +msgid "Maximum Value" +msgstr "Maximum Value" + +#: src/pages/part/pricing/BomPricingPanel.tsx:87 +#: src/pages/part/pricing/BomPricingPanel.tsx:177 +#: src/tables/ColumnRenderers.tsx:276 #: src/tables/bom/BomTable.tsx:185 #: src/tables/general/ExtraLineItemTable.tsx:64 -#: src/tables/purchasing/PurchaseOrderTable.tsx:112 -#: src/tables/sales/ReturnOrderTable.tsx:104 -#: src/tables/sales/SalesOrderLineItemTable.tsx:89 -#: src/tables/sales/SalesOrderTable.tsx:136 +#: src/tables/purchasing/PurchaseOrderTable.tsx:113 +#: src/tables/sales/ReturnOrderTable.tsx:127 +#: src/tables/sales/SalesOrderLineItemTable.tsx:97 +#: src/tables/sales/SalesOrderTable.tsx:149 msgid "Total Price" msgstr "Total Price" -#: src/pages/part/pricing/BomPricingPanel.tsx:78 -#: src/pages/part/pricing/BomPricingPanel.tsx:102 +#: src/pages/part/pricing/BomPricingPanel.tsx:112 +#: src/pages/part/pricing/BomPricingPanel.tsx:141 #: src/tables/bom/UsedInTable.tsx:49 +#: src/tables/build/BuildLineTable.tsx:296 #: src/tables/part/PartTable.tsx:202 msgid "Component" msgstr "Component" -#: src/pages/part/pricing/BomPricingPanel.tsx:81 -#: src/pages/part/pricing/VariantPricingPanel.tsx:37 -#: src/pages/part/pricing/VariantPricingPanel.tsx:97 -msgid "Minimum Price" -msgstr "Minimum Price" - -#: src/pages/part/pricing/BomPricingPanel.tsx:82 -#: src/pages/part/pricing/VariantPricingPanel.tsx:45 -#: src/pages/part/pricing/VariantPricingPanel.tsx:98 -msgid "Maximum Price" -msgstr "Maximum Price" - #: src/pages/part/pricing/BomPricingPanel.tsx:112 #~ msgid "Minimum Total Price" #~ msgstr "Minimum Total Price" +#: src/pages/part/pricing/BomPricingPanel.tsx:115 +#: src/pages/part/pricing/VariantPricingPanel.tsx:37 +#: src/pages/part/pricing/VariantPricingPanel.tsx:97 +msgid "Minimum Price" +msgstr "Minimum Price" + +#: src/pages/part/pricing/BomPricingPanel.tsx:116 +#: src/pages/part/pricing/VariantPricingPanel.tsx:45 +#: src/pages/part/pricing/VariantPricingPanel.tsx:98 +msgid "Maximum Price" +msgstr "Maximum Price" + #: src/pages/part/pricing/BomPricingPanel.tsx:117 #~ msgid "Maximum Total Price" #~ msgstr "Maximum Total Price" -#: src/pages/part/pricing/BomPricingPanel.tsx:129 -#: src/pages/part/pricing/PriceBreakPanel.tsx:172 -#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:67 -#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:128 -#: src/pages/part/pricing/SupplierPricingPanel.tsx:62 +#: src/pages/part/pricing/BomPricingPanel.tsx:168 +#: src/pages/part/pricing/PriceBreakPanel.tsx:173 +#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:70 +#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:125 +#: src/pages/part/pricing/SupplierPricingPanel.tsx:66 +#: src/pages/stock/StockDetail.tsx:291 #: src/tables/bom/BomTable.tsx:176 #: src/tables/general/ExtraLineItemTable.tsx:56 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:223 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:225 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:92 +#: src/tables/stock/StockItemTable.tsx:239 msgid "Unit Price" msgstr "Unit Price" -#: src/pages/part/pricing/BomPricingPanel.tsx:154 +#: src/pages/part/pricing/BomPricingPanel.tsx:193 #: src/pages/part/pricing/VariantPricingPanel.tsx:53 -#: src/tables/purchasing/SupplierPartTable.tsx:148 +#: src/tables/purchasing/SupplierPartTable.tsx:150 msgid "Updated" msgstr "Updated" -#: src/pages/part/pricing/BomPricingPanel.tsx:219 +#: src/pages/part/pricing/BomPricingPanel.tsx:258 msgid "Pie Chart" msgstr "Pie Chart" -#: src/pages/part/pricing/BomPricingPanel.tsx:220 +#: src/pages/part/pricing/BomPricingPanel.tsx:259 msgid "Bar Chart" msgstr "Bar Chart" #: src/pages/part/pricing/PriceBreakPanel.tsx:58 -#: src/pages/part/pricing/PriceBreakPanel.tsx:110 +#: src/pages/part/pricing/PriceBreakPanel.tsx:111 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:142 -#: src/tables/purchasing/SupplierPriceBreakTable.tsx:168 +#: src/tables/purchasing/SupplierPriceBreakTable.tsx:169 msgid "Add Price Break" msgstr "Add Price Break" @@ -4981,47 +5841,71 @@ msgstr "Delete Price Break" msgid "Price Break" msgstr "Price Break" -#: src/pages/part/pricing/PriceBreakPanel.tsx:170 +#: src/pages/part/pricing/PriceBreakPanel.tsx:171 msgid "Price" msgstr "Price" -#: src/pages/part/pricing/PricingOverviewPanel.tsx:51 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:68 +msgid "Refreshing pricing data" +msgstr "Refreshing pricing data" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:88 +msgid "Pricing data updated" +msgstr "Pricing data updated" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:95 +msgid "Failed to update pricing data" +msgstr "Failed to update pricing data" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:104 +msgid "Edit Pricing" +msgstr "Edit Pricing" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:125 msgid "Pricing Category" msgstr "Pricing Category" -#: src/pages/part/pricing/PricingOverviewPanel.tsx:70 -msgid "Minimum" -msgstr "Minimum" - -#: src/pages/part/pricing/PricingOverviewPanel.tsx:82 -msgid "Maximum" -msgstr "Maximum" - -#: src/pages/part/pricing/PricingOverviewPanel.tsx:114 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:188 msgid "Purchase Pricing" msgstr "Purchase Pricing" -#: src/pages/part/pricing/PricingOverviewPanel.tsx:149 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:223 msgid "Override Pricing" msgstr "Override Pricing" -#: src/pages/part/pricing/PricingOverviewPanel.tsx:156 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:230 msgid "Overall Pricing" msgstr "Overall Pricing" -#: src/pages/part/pricing/PricingOverviewPanel.tsx:175 -#: src/pages/stock/StockDetail.tsx:129 -#: src/tables/stock/StockItemTable.tsx:240 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:249 +#: src/pages/stock/StockDetail.tsx:145 +#: src/tables/stock/StockItemTable.tsx:275 msgid "Last Updated" msgstr "Last Updated" -#: src/pages/part/pricing/PricingOverviewPanel.tsx:192 -msgid "Minimum Value" -msgstr "Minimum Value" +#: src/pages/part/pricing/PricingOverviewPanel.tsx:253 +msgid "Pricing Not Set" +msgstr "Pricing Not Set" -#: src/pages/part/pricing/PricingOverviewPanel.tsx:193 -msgid "Maximum Value" -msgstr "Maximum Value" +#: src/pages/part/pricing/PricingOverviewPanel.tsx:254 +msgid "Pricing data has not been calculated for this part" +msgstr "Pricing data has not been calculated for this part" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:258 +msgid "Pricing Actions" +msgstr "Pricing Actions" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:261 +msgid "Refresh" +msgstr "Refresh" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:262 +msgid "Refresh pricing data" +msgstr "Refresh pricing data" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:277 +msgid "Edit pricing data" +msgstr "Edit pricing data" #: src/pages/part/pricing/PricingPanel.tsx:24 msgid "No data available" @@ -5039,28 +5923,20 @@ msgstr "No pricing data available" msgid "Loading pricing data" msgstr "Loading pricing data" -#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:40 -#: src/pages/part/pricing/SaleHistoryPanel.tsx:36 -#: src/tables/ColumnRenderers.tsx:201 -#: src/tables/build/BuildOrderTestTable.tsx:150 -#: src/tables/plugin/PluginListTable.tsx:139 -msgid "Date" -msgstr "Date" - #: src/pages/part/pricing/PurchaseHistoryPanel.tsx:47 msgid "Purchase Price" msgstr "Purchase Price" -#: src/pages/part/pricing/SaleHistoryPanel.tsx:22 -msgid "Sale Order" -msgstr "Sale Order" +#: src/pages/part/pricing/SaleHistoryPanel.tsx:24 +#~ msgid "Sale Order" +#~ msgstr "Sale Order" -#: src/pages/part/pricing/SaleHistoryPanel.tsx:42 -#: src/pages/part/pricing/SaleHistoryPanel.tsx:92 +#: src/pages/part/pricing/SaleHistoryPanel.tsx:44 +#: src/pages/part/pricing/SaleHistoryPanel.tsx:87 msgid "Sale Price" msgstr "Sale Price" -#: src/pages/part/pricing/SupplierPricingPanel.tsx:65 +#: src/pages/part/pricing/SupplierPricingPanel.tsx:69 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:83 msgid "Supplier Price" msgstr "Supplier Price" @@ -5070,23 +5946,23 @@ msgstr "Supplier Price" msgid "Variant Part" msgstr "Variant Part" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:93 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:87 msgid "Edit Purchase Order" msgstr "Edit Purchase Order" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:102 -#: src/tables/purchasing/PurchaseOrderTable.tsx:128 -#: src/tables/purchasing/PurchaseOrderTable.tsx:140 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:96 +#: src/tables/purchasing/PurchaseOrderTable.tsx:129 +#: src/tables/purchasing/PurchaseOrderTable.tsx:142 msgid "Add Purchase Order" msgstr "Add Purchase Order" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:127 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:121 msgid "Supplier Reference" msgstr "Supplier Reference" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:158 -#: src/pages/sales/ReturnOrderDetail.tsx:137 -#: src/pages/sales/SalesOrderDetail.tsx:137 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:152 +#: src/pages/sales/ReturnOrderDetail.tsx:129 +#: src/pages/sales/SalesOrderDetail.tsx:132 msgid "Completed Line Items" msgstr "Completed Line Items" @@ -5096,91 +5972,112 @@ msgstr "Completed Line Items" #~ msgid "Order Currency," #~ msgstr "Order Currency," -#: src/pages/purchasing/PurchaseOrderDetail.tsx:165 -#: src/pages/sales/ReturnOrderDetail.tsx:144 -#: src/pages/sales/SalesOrderDetail.tsx:153 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:161 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:231 +msgid "Destination" +msgstr "Destination" + +#: src/pages/purchasing/PurchaseOrderDetail.tsx:167 +#: src/pages/sales/ReturnOrderDetail.tsx:136 +#: src/pages/sales/SalesOrderDetail.tsx:148 msgid "Order Currency" msgstr "Order Currency" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:172 -#: src/pages/sales/ReturnOrderDetail.tsx:151 -#: src/pages/sales/SalesOrderDetail.tsx:160 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:173 +#: src/pages/sales/ReturnOrderDetail.tsx:143 +#: src/pages/sales/SalesOrderDetail.tsx:155 msgid "Total Cost" msgstr "Total Cost" #: src/pages/purchasing/PurchaseOrderDetail.tsx:207 -#: src/pages/sales/ReturnOrderDetail.tsx:186 -#: src/pages/sales/SalesOrderDetail.tsx:195 -msgid "Created On" -msgstr "Created On" +#: src/pages/sales/ReturnOrderDetail.tsx:183 +#: src/pages/sales/SalesOrderDetail.tsx:191 +#~ msgid "Created On" +#~ msgstr "Created On" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:252 -#: src/pages/sales/ReturnOrderDetail.tsx:231 -#: src/pages/sales/SalesOrderDetail.tsx:266 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:221 +#: src/pages/sales/ReturnOrderDetail.tsx:193 +#: src/pages/sales/SalesOrderDetail.tsx:204 +msgid "Issue Date" +msgstr "Issue Date" + +#: src/pages/purchasing/PurchaseOrderDetail.tsx:237 +#: src/pages/sales/ReturnOrderDetail.tsx:209 +#: src/pages/sales/SalesOrderDetail.tsx:219 +#: src/tables/build/BuildOrderTable.tsx:98 +#: src/tables/part/PartPurchaseOrdersTable.tsx:105 +#: src/tables/sales/ReturnOrderTable.tsx:122 +msgid "Completion Date" +msgstr "Completion Date" + +#: src/pages/purchasing/PurchaseOrderDetail.tsx:276 +#: src/pages/sales/ReturnOrderDetail.tsx:248 +#: src/pages/sales/SalesOrderDetail.tsx:288 msgid "Order Details" msgstr "Order Details" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:280 -#: src/pages/sales/ReturnOrderDetail.tsx:258 -#: src/pages/sales/SalesOrderDetail.tsx:297 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:304 +#: src/pages/sales/ReturnOrderDetail.tsx:276 +#: src/pages/sales/SalesOrderDetail.tsx:319 msgid "Extra Line Items" msgstr "Extra Line Items" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:337 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:346 msgid "Issue Purchase Order" msgstr "Issue Purchase Order" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:345 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:354 msgid "Cancel Purchase Order" msgstr "Cancel Purchase Order" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:353 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:362 msgid "Hold Purchase Order" msgstr "Hold Purchase Order" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:361 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:370 msgid "Complete Purchase Order" msgstr "Complete Purchase Order" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:427 -#: src/pages/sales/ReturnOrderDetail.tsx:428 -#: src/pages/sales/SalesOrderDetail.tsx:468 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:425 +#: src/pages/sales/ReturnOrderDetail.tsx:424 +#: src/pages/sales/SalesOrderDetail.tsx:464 msgid "Order Actions" msgstr "Order Actions" -#: src/pages/sales/ReturnOrderDetail.tsx:101 -#: src/pages/sales/SalesOrderDetail.tsx:107 -#: src/tables/sales/SalesOrderTable.tsx:124 +#: src/pages/sales/ReturnOrderDetail.tsx:92 +#: src/pages/sales/SalesOrderDetail.tsx:101 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:109 +#: src/tables/sales/SalesOrderTable.tsx:137 msgid "Customer Reference" msgstr "Customer Reference" -#: src/pages/sales/ReturnOrderDetail.tsx:315 +#: src/pages/sales/ReturnOrderDetail.tsx:322 msgid "Edit Return Order" msgstr "Edit Return Order" -#: src/pages/sales/ReturnOrderDetail.tsx:324 -#: src/tables/sales/ReturnOrderTable.tsx:119 -#: src/tables/sales/ReturnOrderTable.tsx:128 +#: src/pages/sales/ReturnOrderDetail.tsx:331 +#: src/tables/sales/ReturnOrderTable.tsx:142 +#: src/tables/sales/ReturnOrderTable.tsx:152 msgid "Add Return Order" msgstr "Add Return Order" -#: src/pages/sales/ReturnOrderDetail.tsx:336 +#: src/pages/sales/ReturnOrderDetail.tsx:343 msgid "Issue Return Order" msgstr "Issue Return Order" -#: src/pages/sales/ReturnOrderDetail.tsx:344 +#: src/pages/sales/ReturnOrderDetail.tsx:349 +#~ msgid "Order canceled" +#~ msgstr "Order canceled" + +#: src/pages/sales/ReturnOrderDetail.tsx:351 msgid "Cancel Return Order" msgstr "Cancel Return Order" -#: src/pages/sales/ReturnOrderDetail.tsx:347 -msgid "Order canceled" -msgstr "Order canceled" - -#: src/pages/sales/ReturnOrderDetail.tsx:352 +#: src/pages/sales/ReturnOrderDetail.tsx:359 msgid "Hold Return Order" msgstr "Hold Return Order" -#: src/pages/sales/ReturnOrderDetail.tsx:360 +#: src/pages/sales/ReturnOrderDetail.tsx:367 msgid "Complete Return Order" msgstr "Complete Return Order" @@ -5188,117 +6085,193 @@ msgstr "Complete Return Order" msgid "Customers" msgstr "Customers" -#: src/pages/sales/SalesOrderDetail.tsx:145 +#: src/pages/sales/SalesOrderDetail.tsx:140 msgid "Completed Shipments" msgstr "Completed Shipments" -#: src/pages/sales/SalesOrderDetail.tsx:243 -msgid "Edit Sales Order" -msgstr "Edit Sales Order" - -#: src/pages/sales/SalesOrderDetail.tsx:252 -#: src/tables/sales/SalesOrderTable.tsx:84 -#: src/tables/sales/SalesOrderTable.tsx:96 -msgid "Add Sales Order" -msgstr "Add Sales Order" - #: src/pages/sales/SalesOrderDetail.tsx:256 #~ msgid "Pending Shipments" #~ msgstr "Pending Shipments" -#: src/pages/sales/SalesOrderDetail.tsx:313 +#: src/pages/sales/SalesOrderDetail.tsx:261 +msgid "Edit Sales Order" +msgstr "Edit Sales Order" + +#: src/pages/sales/SalesOrderDetail.tsx:274 +#: src/tables/sales/SalesOrderTable.tsx:96 +#: src/tables/sales/SalesOrderTable.tsx:109 +msgid "Add Sales Order" +msgstr "Add Sales Order" + +#: src/pages/sales/SalesOrderDetail.tsx:335 msgid "Shipments" msgstr "Shipments" -#: src/pages/sales/SalesOrderDetail.tsx:369 +#: src/pages/sales/SalesOrderDetail.tsx:376 msgid "Issue Sales Order" msgstr "Issue Sales Order" -#: src/pages/sales/SalesOrderDetail.tsx:377 +#: src/pages/sales/SalesOrderDetail.tsx:384 msgid "Cancel Sales Order" msgstr "Cancel Sales Order" -#: src/pages/sales/SalesOrderDetail.tsx:385 +#: src/pages/sales/SalesOrderDetail.tsx:392 msgid "Hold Sales Order" msgstr "Hold Sales Order" -#: src/pages/sales/SalesOrderDetail.tsx:393 +#: src/pages/sales/SalesOrderDetail.tsx:400 msgid "Complete Sales Order" msgstr "Complete Sales Order" -#: src/pages/sales/SalesOrderDetail.tsx:432 +#: src/pages/sales/SalesOrderDetail.tsx:439 msgid "Ship Order" msgstr "Ship Order" -#: src/pages/stock/LocationDetail.tsx:117 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:117 +#: src/tables/sales/SalesOrderShipmentTable.tsx:96 +msgid "Shipment Reference" +msgstr "Shipment Reference" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:124 +msgid "Allocated Items" +msgstr "Allocated Items" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:133 +msgid "Tracking Number" +msgstr "Tracking Number" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:141 +msgid "Invoice Number" +msgstr "Invoice Number" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:149 +#: src/tables/ColumnRenderers.tsx:242 +#: src/tables/sales/SalesOrderAllocationTable.tsx:142 +#: src/tables/sales/SalesOrderShipmentTable.tsx:115 +msgid "Shipment Date" +msgstr "Shipment Date" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:157 +#: src/tables/sales/SalesOrderShipmentTable.tsx:119 +msgid "Delivery Date" +msgstr "Delivery Date" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:204 +msgid "Shipment Details" +msgstr "Shipment Details" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:210 +msgid "Assigned Items" +msgstr "Assigned Items" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:241 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:317 +#: src/tables/sales/SalesOrderShipmentTable.tsx:75 +msgid "Edit Shipment" +msgstr "Edit Shipment" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:248 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:322 +#: src/tables/sales/SalesOrderShipmentTable.tsx:67 +msgid "Cancel Shipment" +msgstr "Cancel Shipment" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:261 +#: src/tables/sales/SalesOrderShipmentTable.tsx:83 +#: src/tables/sales/SalesOrderShipmentTable.tsx:151 +msgid "Complete Shipment" +msgstr "Complete Shipment" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:276 +#: src/tables/part/PartPurchaseOrdersTable.tsx:121 +msgid "Pending" +msgstr "Pending" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:277 +#: src/tables/sales/SalesOrderAllocationTable.tsx:148 +#: src/tables/sales/SalesOrderShipmentTable.tsx:108 +#: src/tables/sales/SalesOrderShipmentTable.tsx:197 +msgid "Shipped" +msgstr "Shipped" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:279 +#: src/tables/sales/SalesOrderShipmentTable.tsx:202 +msgid "Delivered" +msgstr "Delivered" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:293 +msgid "Send Shipment" +msgstr "Send Shipment" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:312 +msgid "Shipment Actions" +msgstr "Shipment Actions" + +#: src/pages/stock/LocationDetail.tsx:111 msgid "Parent Location" msgstr "Parent Location" -#: src/pages/stock/LocationDetail.tsx:135 +#: src/pages/stock/LocationDetail.tsx:129 msgid "Sublocations" msgstr "Sublocations" -#: src/pages/stock/LocationDetail.tsx:147 +#: src/pages/stock/LocationDetail.tsx:141 #: src/tables/stock/StockLocationTable.tsx:54 msgid "External" msgstr "External" -#: src/pages/stock/LocationDetail.tsx:153 +#: src/pages/stock/LocationDetail.tsx:147 #: src/tables/stock/StockLocationTable.tsx:63 msgid "Location Type" msgstr "Location Type" -#: src/pages/stock/LocationDetail.tsx:164 +#: src/pages/stock/LocationDetail.tsx:158 msgid "Top level stock location" msgstr "Top level stock location" -#: src/pages/stock/LocationDetail.tsx:175 +#: src/pages/stock/LocationDetail.tsx:169 msgid "Location Details" msgstr "Location Details" -#: src/pages/stock/LocationDetail.tsx:201 +#: src/pages/stock/LocationDetail.tsx:195 msgid "Default Parts" msgstr "Default Parts" -#: src/pages/stock/LocationDetail.tsx:220 -#: src/pages/stock/LocationDetail.tsx:351 +#: src/pages/stock/LocationDetail.tsx:214 +#: src/pages/stock/LocationDetail.tsx:336 #: src/tables/stock/StockLocationTable.tsx:123 msgid "Edit Stock Location" msgstr "Edit Stock Location" -#: src/pages/stock/LocationDetail.tsx:241 -#: src/pages/stock/LocationDetail.tsx:356 +#: src/pages/stock/LocationDetail.tsx:235 +#: src/pages/stock/LocationDetail.tsx:341 msgid "Delete Stock Location" msgstr "Delete Stock Location" -#: src/pages/stock/LocationDetail.tsx:244 +#: src/pages/stock/LocationDetail.tsx:238 msgid "Items Action" msgstr "Items Action" -#: src/pages/stock/LocationDetail.tsx:245 +#: src/pages/stock/LocationDetail.tsx:239 msgid "Action for stock items in this location" msgstr "Action for stock items in this location" -#: src/pages/stock/LocationDetail.tsx:250 +#: src/pages/stock/LocationDetail.tsx:244 msgid "Child Locations Action" msgstr "Child Locations Action" -#: src/pages/stock/LocationDetail.tsx:251 +#: src/pages/stock/LocationDetail.tsx:245 msgid "Action for child locations in this location" msgstr "Action for child locations in this location" -#: src/pages/stock/LocationDetail.tsx:346 +#: src/pages/stock/LocationDetail.tsx:332 msgid "Location Actions" msgstr "Location Actions" -#: src/pages/stock/StockDetail.tsx:108 +#: src/pages/stock/StockDetail.tsx:116 msgid "Base Part" msgstr "Base Part" -#: src/pages/stock/StockDetail.tsx:115 -msgid "Stock Status" -msgstr "Stock Status" - #: src/pages/stock/StockDetail.tsx:155 #~ msgid "Link custom barcode to stock item" #~ msgstr "Link custom barcode to stock item" @@ -5307,113 +6280,179 @@ msgstr "Stock Status" #~ msgid "Unlink custom barcode from stock item" #~ msgstr "Unlink custom barcode from stock item" -#: src/pages/stock/StockDetail.tsx:188 -msgid "Installed In" -msgstr "Installed In" - -#: src/pages/stock/StockDetail.tsx:204 -msgid "Consumed By" -msgstr "Consumed By" +#: src/pages/stock/StockDetail.tsx:178 +msgid "Allocated to Orders" +msgstr "Allocated to Orders" #: src/pages/stock/StockDetail.tsx:205 #~ msgid "Edit stock item" #~ msgstr "Edit stock item" -#: src/pages/stock/StockDetail.tsx:213 -#: src/tables/build/BuildAllocatedStockTable.tsx:64 -#: src/tables/stock/StockTrackingTable.tsx:96 -msgid "Build Order" -msgstr "Build Order" +#: src/pages/stock/StockDetail.tsx:209 +msgid "Installed In" +msgstr "Installed In" #: src/pages/stock/StockDetail.tsx:217 #~ msgid "Delete stock item" #~ msgstr "Delete stock item" -#: src/pages/stock/StockDetail.tsx:291 +#: src/pages/stock/StockDetail.tsx:226 +msgid "Parent Item" +msgstr "Parent Item" + +#: src/pages/stock/StockDetail.tsx:230 +msgid "Parent stock item" +msgstr "Parent stock item" + +#: src/pages/stock/StockDetail.tsx:236 +msgid "Consumed By" +msgstr "Consumed By" + +#: src/pages/stock/StockDetail.tsx:245 +#: src/tables/build/BuildAllocatedStockTable.tsx:77 +#: src/tables/stock/StockTrackingTable.tsx:100 +msgid "Build Order" +msgstr "Build Order" + +#: src/pages/stock/StockDetail.tsx:283 +#: src/tables/stock/StockItemTable.tsx:270 +msgid "Expiry Date" +msgstr "Expiry Date" + +#: src/pages/stock/StockDetail.tsx:414 msgid "Stock Details" msgstr "Stock Details" -#: src/pages/stock/StockDetail.tsx:297 +#: src/pages/stock/StockDetail.tsx:420 msgid "Stock Tracking" msgstr "Stock Tracking" -#: src/pages/stock/StockDetail.tsx:350 -msgid "Test Data" -msgstr "Test Data" - -#: src/pages/stock/StockDetail.tsx:364 -msgid "Installed Items" -msgstr "Installed Items" - -#: src/pages/stock/StockDetail.tsx:371 -msgid "Child Items" -msgstr "Child Items" - -#: src/pages/stock/StockDetail.tsx:425 -msgid "Edit Stock Item" -msgstr "Edit Stock Item" - #: src/pages/stock/StockDetail.tsx:433 #~ msgid "Duplicate stock item" #~ msgstr "Duplicate stock item" -#: src/pages/stock/StockDetail.tsx:452 +#: src/pages/stock/StockDetail.tsx:475 +msgid "Test Data" +msgstr "Test Data" + +#: src/pages/stock/StockDetail.tsx:489 +msgid "Installed Items" +msgstr "Installed Items" + +#: src/pages/stock/StockDetail.tsx:496 +msgid "Child Items" +msgstr "Child Items" + +#: src/pages/stock/StockDetail.tsx:545 +msgid "Edit Stock Item" +msgstr "Edit Stock Item" + +#: src/pages/stock/StockDetail.tsx:572 msgid "Delete Stock Item" msgstr "Delete Stock Item" -#: src/pages/stock/StockDetail.tsx:504 +#: src/pages/stock/StockDetail.tsx:604 +msgid "Serialize Stock Item" +msgstr "Serialize Stock Item" + +#: src/pages/stock/StockDetail.tsx:617 +msgid "Stock item serialized" +msgstr "Stock item serialized" + +#: src/pages/stock/StockDetail.tsx:623 +msgid "Return Stock Item" +msgstr "Return Stock Item" + +#: src/pages/stock/StockDetail.tsx:626 +msgid "Return this item into stock. This will remove the customer assignment." +msgstr "Return this item into stock. This will remove the customer assignment." + +#: src/pages/stock/StockDetail.tsx:636 +msgid "Item returned to stock" +msgstr "Item returned to stock" + +#: src/pages/stock/StockDetail.tsx:666 msgid "Stock Operations" msgstr "Stock Operations" -#: src/pages/stock/StockDetail.tsx:509 +#: src/pages/stock/StockDetail.tsx:671 msgid "Count stock" msgstr "Count stock" -#: src/pages/stock/StockDetail.tsx:519 -#: src/tables/stock/StockItemTable.tsx:449 -msgid "Add stock" -msgstr "Add stock" +#: src/pages/stock/StockDetail.tsx:671 +#: src/tables/stock/StockItemTable.tsx:452 +#~ msgid "Add stock" +#~ msgstr "Add stock" -#: src/pages/stock/StockDetail.tsx:527 -#: src/tables/stock/StockItemTable.tsx:458 -msgid "Remove stock" -msgstr "Remove stock" +#: src/pages/stock/StockDetail.tsx:680 +#: src/tables/stock/StockItemTable.tsx:461 +#~ msgid "Remove stock" +#~ msgstr "Remove stock" -#: src/pages/stock/StockDetail.tsx:534 +#: src/pages/stock/StockDetail.tsx:698 +#: src/tables/stock/StockItemTable.tsx:481 +#~ msgid "Transfer stock" +#~ msgstr "Transfer stock" + +#: src/pages/stock/StockDetail.tsx:699 +msgid "Serialize" +msgstr "Serialize" + +#: src/pages/stock/StockDetail.tsx:700 +msgid "Serialize stock" +msgstr "Serialize stock" + +#: src/pages/stock/StockDetail.tsx:711 msgid "Transfer" msgstr "Transfer" -#: src/pages/stock/StockDetail.tsx:535 -#: src/tables/stock/StockItemTable.tsx:478 -msgid "Transfer stock" -msgstr "Transfer stock" +#: src/pages/stock/StockDetail.tsx:722 +msgid "Return" +msgstr "Return" -#: src/pages/stock/StockDetail.tsx:546 +#: src/pages/stock/StockDetail.tsx:723 +msgid "Return from customer" +msgstr "Return from customer" + +#: src/pages/stock/StockDetail.tsx:738 msgid "Stock Item Actions" msgstr "Stock Item Actions" -#: src/tables/ColumnRenderers.tsx:30 +#: src/pages/stock/StockDetail.tsx:808 +msgid "Stale" +msgstr "Stale" + +#: src/pages/stock/StockDetail.tsx:814 +msgid "Expired" +msgstr "Expired" + +#: src/pages/stock/StockDetail.tsx:820 +msgid "Unavailable" +msgstr "Unavailable" + +#: src/tables/ColumnRenderers.tsx:36 msgid "Part is not active" msgstr "Part is not active" -#: src/tables/ColumnRenderers.tsx:35 -msgid "Part is locked" -msgstr "Part is locked" +#: src/tables/ColumnRenderers.tsx:41 +#: src/tables/bom/BomTable.tsx:542 +#: src/tables/part/PartParameterTable.tsx:193 +#: src/tables/part/PartTestTemplateTable.tsx:253 +msgid "Part is Locked" +msgstr "Part is Locked" -#: src/tables/ColumnRenderers.tsx:57 +#: src/tables/ColumnRenderers.tsx:41 +#~ msgid "Part is locked" +#~ msgstr "Part is locked" + +#: src/tables/ColumnRenderers.tsx:46 +msgid "You are subscribed to notifications for this part" +msgstr "You are subscribed to notifications for this part" + +#: src/tables/ColumnRenderers.tsx:68 msgid "No location set" msgstr "No location set" -#: src/tables/ColumnRenderers.tsx:228 -#: src/tables/sales/SalesOrderShipmentTable.tsx:79 -msgid "Shipment Date" -msgstr "Shipment Date" - -#: src/tables/ColumnRenderers.tsx:248 -#: src/tables/settings/CurrencyTable.tsx:23 -msgid "Currency" -msgstr "Currency" - #: src/tables/ColumnSelect.tsx:16 #: src/tables/ColumnSelect.tsx:23 msgid "Select Columns" @@ -5447,91 +6486,116 @@ msgstr "Excel (.xlsx)" msgid "Download Data" msgstr "Download Data" -#: src/tables/Filter.tsx:89 -#: src/tables/build/BuildOrderTable.tsx:135 +#: src/tables/Filter.tsx:101 msgid "Assigned to me" msgstr "Assigned to me" -#: src/tables/Filter.tsx:90 -#: src/tables/build/BuildOrderTable.tsx:136 +#: src/tables/Filter.tsx:102 msgid "Show orders assigned to me" msgstr "Show orders assigned to me" -#: src/tables/Filter.tsx:97 +#: src/tables/Filter.tsx:106 +#~ msgid "Show overdue orders" +#~ msgstr "Show overdue orders" + +#: src/tables/Filter.tsx:109 +#: src/tables/build/BuildOrderTable.tsx:120 +#: src/tables/sales/SalesOrderAllocationTable.tsx:59 msgid "Outstanding" msgstr "Outstanding" -#: src/tables/Filter.tsx:98 -msgid "Show outstanding orders" -msgstr "Show outstanding orders" +#: src/tables/Filter.tsx:110 +msgid "Show outstanding items" +msgstr "Show outstanding items" -#: src/tables/Filter.tsx:105 -#: src/tables/build/BuildOrderTable.tsx:128 +#: src/tables/Filter.tsx:117 msgid "Overdue" msgstr "Overdue" -#: src/tables/Filter.tsx:106 -msgid "Show overdue orders" -msgstr "Show overdue orders" +#: src/tables/Filter.tsx:118 +msgid "Show overdue items" +msgstr "Show overdue items" -#: src/tables/FilterSelectDrawer.tsx:51 +#: src/tables/Filter.tsx:125 +msgid "Minimum Date" +msgstr "Minimum Date" + +#: src/tables/Filter.tsx:126 +msgid "Show items after this date" +msgstr "Show items after this date" + +#: src/tables/Filter.tsx:134 +msgid "Maximum Date" +msgstr "Maximum Date" + +#: src/tables/Filter.tsx:135 +msgid "Show items before this date" +msgstr "Show items before this date" + +#: src/tables/Filter.tsx:144 +msgid "Has Project Code" +msgstr "Has Project Code" + +#: src/tables/Filter.tsx:145 +msgid "Show orders with an assigned project code" +msgstr "Show orders with an assigned project code" + +#: src/tables/FilterSelectDrawer.tsx:55 msgid "Remove filter" msgstr "Remove filter" -#: src/tables/FilterSelectDrawer.tsx:130 +#: src/tables/FilterSelectDrawer.tsx:159 msgid "Select filter" msgstr "Select filter" -#: src/tables/FilterSelectDrawer.tsx:131 +#: src/tables/FilterSelectDrawer.tsx:160 msgid "Filter" msgstr "Filter" -#: src/tables/FilterSelectDrawer.tsx:138 -#: src/tables/build/BuildOrderTestTable.tsx:134 -#: src/tables/purchasing/ManufacturerPartParameterTable.tsx:38 -#: src/tables/stock/StockItemTestResultTable.tsx:186 -msgid "Value" -msgstr "Value" +#: src/tables/FilterSelectDrawer.tsx:168 +msgid "Select date value" +msgstr "Select date value" -#: src/tables/FilterSelectDrawer.tsx:140 +#: src/tables/FilterSelectDrawer.tsx:176 msgid "Select filter value" msgstr "Select filter value" -#: src/tables/FilterSelectDrawer.tsx:183 +#: src/tables/FilterSelectDrawer.tsx:219 +#: src/tables/InvenTreeTableHeader.tsx:214 msgid "Table Filters" msgstr "Table Filters" -#: src/tables/FilterSelectDrawer.tsx:215 +#: src/tables/FilterSelectDrawer.tsx:251 msgid "Add Filter" msgstr "Add Filter" -#: src/tables/FilterSelectDrawer.tsx:224 +#: src/tables/FilterSelectDrawer.tsx:260 msgid "Clear Filters" msgstr "Clear Filters" -#: src/tables/InvenTreeTable.tsx:123 -#: src/tables/InvenTreeTable.tsx:431 -#: src/tables/InvenTreeTable.tsx:455 +#: src/tables/InvenTreeTable.tsx:96 +#: src/tables/InvenTreeTable.tsx:417 +#: src/tables/InvenTreeTable.tsx:441 msgid "No records found" msgstr "No records found" -#: src/tables/InvenTreeTable.tsx:466 +#: src/tables/InvenTreeTable.tsx:452 msgid "Server returned incorrect data type" msgstr "Server returned incorrect data type" -#: src/tables/InvenTreeTable.tsx:474 +#: src/tables/InvenTreeTable.tsx:460 msgid "Bad request" msgstr "Bad request" -#: src/tables/InvenTreeTable.tsx:477 +#: src/tables/InvenTreeTable.tsx:463 msgid "Unauthorized" msgstr "Unauthorized" -#: src/tables/InvenTreeTable.tsx:480 +#: src/tables/InvenTreeTable.tsx:466 msgid "Forbidden" msgstr "Forbidden" -#: src/tables/InvenTreeTable.tsx:483 +#: src/tables/InvenTreeTable.tsx:469 msgid "Not found" msgstr "Not found" @@ -5539,18 +6603,6 @@ msgstr "Not found" #~ msgid "Are you sure you want to delete the selected records?" #~ msgstr "Are you sure you want to delete the selected records?" -#: src/tables/InvenTreeTable.tsx:525 -msgid "Delete Selected Items" -msgstr "Delete Selected Items" - -#: src/tables/InvenTreeTable.tsx:529 -msgid "Are you sure you want to delete the selected items?" -msgstr "Are you sure you want to delete the selected items?" - -#: src/tables/InvenTreeTable.tsx:531 -msgid "This action cannot be undone!" -msgstr "This action cannot be undone!" - #: src/tables/InvenTreeTable.tsx:535 #~ msgid "Deleted records" #~ msgstr "Deleted records" @@ -5563,31 +6615,56 @@ msgstr "This action cannot be undone!" #~ msgid "Failed to delete records" #~ msgstr "Failed to delete records" +#: src/tables/InvenTreeTable.tsx:552 +#~ msgid "This action cannot be undone!" +#~ msgstr "This action cannot be undone!" + #: src/tables/InvenTreeTable.tsx:594 #: src/tables/InvenTreeTable.tsx:595 #~ msgid "Print actions" #~ msgstr "Print actions" -#: src/tables/InvenTreeTable.tsx:618 -#: src/tables/InvenTreeTable.tsx:619 -msgid "Barcode actions" -msgstr "Barcode actions" +#: src/tables/InvenTreeTable.tsx:655 +#: src/tables/InvenTreeTable.tsx:656 +#~ msgid "Barcode actions" +#~ msgstr "Barcode actions" -#: src/tables/InvenTreeTable.tsx:628 +#: src/tables/InvenTreeTable.tsx:712 +#~ msgid "Table filters" +#~ msgstr "Table filters" + +#: src/tables/InvenTreeTable.tsx:725 +#~ msgid "Clear custom query filters" +#~ msgstr "Clear custom query filters" + +#: src/tables/InvenTreeTableHeader.tsx:98 +msgid "Delete Selected Items" +msgstr "Delete Selected Items" + +#: src/tables/InvenTreeTableHeader.tsx:102 +msgid "Are you sure you want to delete the selected items?" +msgstr "Are you sure you want to delete the selected items?" + +#: src/tables/InvenTreeTableHeader.tsx:104 +#: src/tables/plugin/PluginListTable.tsx:305 +msgid "This action cannot be undone" +msgstr "This action cannot be undone" + +#: src/tables/InvenTreeTableHeader.tsx:142 +msgid "Custom table filters are active" +msgstr "Custom table filters are active" + +#: src/tables/InvenTreeTableHeader.tsx:169 msgid "Delete selected records" msgstr "Delete selected records" -#: src/tables/InvenTreeTable.tsx:649 +#: src/tables/InvenTreeTableHeader.tsx:188 msgid "Refresh data" msgstr "Refresh data" -#: src/tables/InvenTreeTable.tsx:675 -msgid "Table filters" -msgstr "Table filters" - #: src/tables/TableHoverCard.tsx:35 -msgid "item-{idx}" -msgstr "item-{idx}" +#~ msgid "item-{idx}" +#~ msgstr "item-{idx}" #: src/tables/UploadAction.tsx:7 #~ msgid "Upload Data" @@ -5602,31 +6679,36 @@ msgid "Part Information" msgstr "Part Information" #: src/tables/bom/BomTable.tsx:212 -#: src/tables/build/BuildLineTable.tsx:126 +#: src/tables/build/BuildLineTable.tsx:257 #: src/tables/part/PartTable.tsx:125 msgid "External stock" msgstr "External stock" #: src/tables/bom/BomTable.tsx:220 -#: src/tables/build/BuildLineTable.tsx:89 +#: src/tables/build/BuildLineTable.tsx:220 msgid "Includes substitute stock" msgstr "Includes substitute stock" #: src/tables/bom/BomTable.tsx:229 -#: src/tables/build/BuildLineTable.tsx:99 -#: src/tables/sales/SalesOrderLineItemTable.tsx:127 +#: src/tables/build/BuildLineTable.tsx:230 +#: src/tables/sales/SalesOrderLineItemTable.tsx:135 msgid "Includes variant stock" msgstr "Includes variant stock" +#: src/tables/bom/BomTable.tsx:245 +#: src/tables/part/PartTable.tsx:92 +msgid "Building" +msgstr "Building" + #: src/tables/bom/BomTable.tsx:254 #: src/tables/part/PartTable.tsx:153 -#: src/tables/sales/SalesOrderLineItemTable.tsx:150 -#: src/tables/stock/StockItemTable.tsx:216 +#: src/tables/sales/SalesOrderLineItemTable.tsx:158 +#: src/tables/stock/StockItemTable.tsx:206 msgid "Stock Information" msgstr "Stock Information" #: src/tables/bom/BomTable.tsx:285 -#: src/tables/build/BuildLineTable.tsx:248 +#: src/tables/build/BuildLineTable.tsx:409 msgid "Consumable item" msgstr "Consumable item" @@ -5639,7 +6721,7 @@ msgstr "No available stock" #~ msgstr "Create BOM Item" #: src/tables/bom/BomTable.tsx:306 -#: src/tables/build/BuildLineTable.tsx:69 +#: src/tables/build/BuildLineTable.tsx:200 msgid "Show testable items" msgstr "Show testable items" @@ -5652,11 +6734,12 @@ msgid "Show trackable items" msgstr "Show trackable items" #: src/tables/bom/BomTable.tsx:316 -#: src/tables/build/BuildLineTable.tsx:64 +#: src/tables/build/BuildLineTable.tsx:195 msgid "Show assembled items" msgstr "Show assembled items" #: src/tables/bom/BomTable.tsx:321 +#: src/tables/build/BuildLineTable.tsx:180 msgid "Show items with available stock" msgstr "Show items with available stock" @@ -5700,7 +6783,7 @@ msgstr "Show items which allow variant substitution" #: src/tables/bom/BomTable.tsx:345 #: src/tables/bom/UsedInTable.tsx:79 -#: src/tables/build/BuildLineTable.tsx:58 +#: src/tables/build/BuildLineTable.tsx:189 msgid "Optional" msgstr "Optional" @@ -5718,7 +6801,7 @@ msgstr "Show optional items" #~ msgstr "Bom item deleted" #: src/tables/bom/BomTable.tsx:350 -#: src/tables/build/BuildLineTable.tsx:53 +#: src/tables/build/BuildLineTable.tsx:184 msgid "Consumable" msgstr "Consumable" @@ -5744,12 +6827,12 @@ msgid "Show items with pricing" msgstr "Show items with pricing" #: src/tables/bom/BomTable.tsx:378 -#: src/tables/bom/BomTable.tsx:511 +#: src/tables/bom/BomTable.tsx:512 msgid "Import BOM Data" msgstr "Import BOM Data" #: src/tables/bom/BomTable.tsx:388 -#: src/tables/bom/BomTable.tsx:523 +#: src/tables/bom/BomTable.tsx:526 msgid "Add BOM Item" msgstr "Add BOM Item" @@ -5775,7 +6858,7 @@ msgstr "BOM item deleted" #: src/tables/bom/BomTable.tsx:423 #: src/tables/bom/BomTable.tsx:426 -#: src/tables/bom/BomTable.tsx:517 +#: src/tables/bom/BomTable.tsx:519 msgid "Validate BOM" msgstr "Validate BOM" @@ -5807,21 +6890,15 @@ msgstr "Validate BOM Line" msgid "Edit Substitutes" msgstr "Edit Substitutes" -#: src/tables/bom/BomTable.tsx:539 -#: src/tables/part/PartParameterTable.tsx:193 -#: src/tables/part/PartTestTemplateTable.tsx:252 -msgid "Part is Locked" -msgstr "Part is Locked" - -#: src/tables/bom/BomTable.tsx:544 +#: src/tables/bom/BomTable.tsx:547 msgid "Bill of materials cannot be edited, as the part is locked" msgstr "Bill of materials cannot be edited, as the part is locked" #: src/tables/bom/UsedInTable.tsx:33 -#: src/tables/build/BuildLineTable.tsx:63 +#: src/tables/build/BuildLineTable.tsx:194 #: src/tables/part/ParametricPartTable.tsx:233 #: src/tables/part/PartTable.tsx:190 -#: src/tables/stock/StockItemTable.tsx:300 +#: src/tables/stock/StockItemTable.tsx:304 msgid "Assembly" msgstr "Assembly" @@ -5839,285 +6916,347 @@ msgstr "Trackable" msgid "Show trackable assemblies" msgstr "Show trackable assemblies" -#: src/tables/build/BuildAllocatedStockTable.tsx:54 +#: src/tables/build/BuildAllocatedStockTable.tsx:56 msgid "Allocated to Output" msgstr "Allocated to Output" -#: src/tables/build/BuildAllocatedStockTable.tsx:55 +#: src/tables/build/BuildAllocatedStockTable.tsx:57 msgid "Show items allocated to a build output" msgstr "Show items allocated to a build output" -#: src/tables/build/BuildAllocatedStockTable.tsx:76 -#: src/tables/part/PartPurchaseOrdersTable.tsx:125 -#: src/tables/sales/SalesOrderAllocationTable.tsx:62 +#: src/tables/build/BuildAllocatedStockTable.tsx:65 +#: src/tables/build/BuildOrderTable.tsx:159 +#: src/tables/part/PartParameterTable.tsx:212 +#: src/tables/part/PartPurchaseOrdersTable.tsx:138 +#: src/tables/sales/ReturnOrderTable.tsx:84 +#: src/tables/sales/SalesOrderAllocationTable.tsx:68 +#: src/tables/sales/SalesOrderTable.tsx:84 +#: src/tables/stock/StockItemTable.tsx:339 +msgid "Include Variants" +msgstr "Include Variants" + +#: src/tables/build/BuildAllocatedStockTable.tsx:66 +#: src/tables/build/BuildOrderTable.tsx:160 +#: src/tables/part/PartPurchaseOrdersTable.tsx:139 +#: src/tables/sales/ReturnOrderTable.tsx:85 +#: src/tables/sales/SalesOrderAllocationTable.tsx:69 +#: src/tables/sales/SalesOrderTable.tsx:85 +msgid "Include orders for part variants" +msgstr "Include orders for part variants" + +#: src/tables/build/BuildAllocatedStockTable.tsx:89 +#: src/tables/part/PartPurchaseOrdersTable.tsx:131 +#: src/tables/sales/SalesOrderAllocationTable.tsx:93 msgid "Order Status" msgstr "Order Status" -#: src/tables/build/BuildAllocatedStockTable.tsx:96 -#: src/tables/sales/SalesOrderAllocationTable.tsx:75 +#: src/tables/build/BuildAllocatedStockTable.tsx:117 +#: src/tables/sales/SalesOrderAllocationTable.tsx:126 msgid "Allocated Quantity" msgstr "Allocated Quantity" -#: src/tables/build/BuildAllocatedStockTable.tsx:116 -#: src/tables/sales/SalesOrderAllocationTable.tsx:94 +#: src/tables/build/BuildAllocatedStockTable.tsx:137 +#: src/tables/sales/SalesOrderAllocationTable.tsx:120 msgid "Available Quantity" msgstr "Available Quantity" -#: src/tables/build/BuildAllocatedStockTable.tsx:126 -#: src/tables/build/BuildOrderTestTable.tsx:176 -#: src/tables/build/BuildOrderTestTable.tsx:200 -#: src/tables/build/BuildOutputTable.tsx:312 -msgid "Build Output" -msgstr "Build Output" +#: src/tables/build/BuildAllocatedStockTable.tsx:164 +#: src/tables/build/BuildLineTable.tsx:513 +msgid "Edit Stock Allocation" +msgstr "Edit Stock Allocation" -#: src/tables/build/BuildAllocatedStockTable.tsx:143 -msgid "Edit Build Item" -msgstr "Edit Build Item" +#: src/tables/build/BuildAllocatedStockTable.tsx:164 +#~ msgid "Edit Build Item" +#~ msgstr "Edit Build Item" -#: src/tables/build/BuildAllocatedStockTable.tsx:153 -msgid "Delete Build Item" -msgstr "Delete Build Item" +#: src/tables/build/BuildAllocatedStockTable.tsx:174 +#~ msgid "Delete Build Item" +#~ msgstr "Delete Build Item" -#: src/tables/build/BuildLineTable.tsx:43 -#: src/tables/stock/StockItemTable.tsx:305 -msgid "Allocated" -msgstr "Allocated" +#: src/tables/build/BuildAllocatedStockTable.tsx:177 +#: src/tables/build/BuildLineTable.tsx:526 +msgid "Delete Stock Allocation" +msgstr "Delete Stock Allocation" -#: src/tables/build/BuildLineTable.tsx:44 +#: src/tables/build/BuildLineTable.tsx:59 +#~ msgid "Show lines with available stock" +#~ msgstr "Show lines with available stock" + +#: src/tables/build/BuildLineTable.tsx:175 msgid "Show allocated lines" msgstr "Show allocated lines" -#: src/tables/build/BuildLineTable.tsx:49 -msgid "Show lines with available stock" -msgstr "Show lines with available stock" - -#: src/tables/build/BuildLineTable.tsx:54 +#: src/tables/build/BuildLineTable.tsx:185 msgid "Show consumable lines" msgstr "Show consumable lines" -#: src/tables/build/BuildLineTable.tsx:59 +#: src/tables/build/BuildLineTable.tsx:190 msgid "Show optional lines" msgstr "Show optional lines" -#: src/tables/build/BuildLineTable.tsx:68 +#: src/tables/build/BuildLineTable.tsx:199 #: src/tables/part/PartTable.tsx:208 msgid "Testable" msgstr "Testable" -#: src/tables/build/BuildLineTable.tsx:73 -#: src/tables/stock/StockItemTable.tsx:364 +#: src/tables/build/BuildLineTable.tsx:204 +#: src/tables/stock/StockItemTable.tsx:368 msgid "Tracked" msgstr "Tracked" -#: src/tables/build/BuildLineTable.tsx:74 +#: src/tables/build/BuildLineTable.tsx:205 msgid "Show tracked lines" msgstr "Show tracked lines" -#: src/tables/build/BuildLineTable.tsx:108 -#: src/tables/sales/SalesOrderLineItemTable.tsx:133 +#: src/tables/build/BuildLineTable.tsx:239 +#: src/tables/sales/SalesOrderLineItemTable.tsx:141 msgid "In production" msgstr "In production" -#: src/tables/build/BuildLineTable.tsx:136 +#: src/tables/build/BuildLineTable.tsx:267 msgid "Insufficient stock" msgstr "Insufficient stock" -#: src/tables/build/BuildLineTable.tsx:152 -#: src/tables/sales/SalesOrderLineItemTable.tsx:121 -#: src/tables/stock/StockItemTable.tsx:186 +#: src/tables/build/BuildLineTable.tsx:283 +#: src/tables/sales/SalesOrderLineItemTable.tsx:129 +#: src/tables/stock/StockItemTable.tsx:175 msgid "No stock available" msgstr "No stock available" -#: src/tables/build/BuildLineTable.tsx:201 +#: src/tables/build/BuildLineTable.tsx:355 msgid "Gets Inherited" msgstr "Gets Inherited" -#: src/tables/build/BuildLineTable.tsx:210 +#: src/tables/build/BuildLineTable.tsx:366 msgid "Unit Quantity" msgstr "Unit Quantity" -#: src/tables/build/BuildLineTable.tsx:267 -#: src/tables/sales/SalesOrderLineItemTable.tsx:230 +#: src/tables/build/BuildLineTable.tsx:381 +msgid "Required Quantity" +msgstr "Required Quantity" + +#: src/tables/build/BuildLineTable.tsx:432 +#: src/tables/sales/SalesOrderLineItemTable.tsx:254 msgid "Create Build Order" msgstr "Create Build Order" -#: src/tables/build/BuildLineTable.tsx:298 -msgid "Allocate Stock" -msgstr "Allocate Stock" +#: src/tables/build/BuildLineTable.tsx:460 +msgid "Auto allocation in progress" +msgstr "Auto allocation in progress" -#: src/tables/build/BuildLineTable.tsx:305 +#: src/tables/build/BuildLineTable.tsx:463 +#: src/tables/build/BuildLineTable.tsx:632 +msgid "Auto Allocate Stock" +msgstr "Auto Allocate Stock" + +#: src/tables/build/BuildLineTable.tsx:464 +msgid "Automatically allocate stock to this build according to the selected options" +msgstr "Automatically allocate stock to this build according to the selected options" + +#: src/tables/build/BuildLineTable.tsx:482 +#: src/tables/build/BuildLineTable.tsx:496 +#: src/tables/build/BuildLineTable.tsx:579 +#: src/tables/build/BuildLineTable.tsx:664 +#: src/tables/build/BuildOutputTable.tsx:314 +#: src/tables/build/BuildOutputTable.tsx:319 +msgid "Deallocate Stock" +msgstr "Deallocate Stock" + +#: src/tables/build/BuildLineTable.tsx:498 +msgid "Deallocate all untracked stock for this build order" +msgstr "Deallocate all untracked stock for this build order" + +#: src/tables/build/BuildLineTable.tsx:500 +msgid "Deallocate stock from the selected line item" +msgstr "Deallocate stock from the selected line item" + +#: src/tables/build/BuildLineTable.tsx:504 +msgid "Stock has been deallocated" +msgstr "Stock has been deallocated" + +#: src/tables/build/BuildLineTable.tsx:589 msgid "Order Stock" msgstr "Order Stock" -#: src/tables/build/BuildLineTable.tsx:312 +#: src/tables/build/BuildLineTable.tsx:596 msgid "Build Stock" msgstr "Build Stock" -#: src/tables/build/BuildOrderTable.tsx:111 -msgid "Show active orders" -msgstr "Show active orders" +#: src/tables/build/BuildLineTable.tsx:610 +msgid "View Part" +msgstr "View Part" #: src/tables/build/BuildOrderTable.tsx:116 -msgid "Cascade" -msgstr "Cascade" +#~ msgid "Cascade" +#~ msgstr "Cascade" #: src/tables/build/BuildOrderTable.tsx:117 -msgid "Display recursive child orders" -msgstr "Display recursive child orders" +#~ msgid "Display recursive child orders" +#~ msgstr "Display recursive child orders" -#: src/tables/build/BuildOrderTable.tsx:123 -#: src/tables/part/PartPurchaseOrdersTable.tsx:126 -#: src/tables/purchasing/PurchaseOrderTable.tsx:56 -#: src/tables/sales/ReturnOrderTable.tsx:47 -#: src/tables/sales/SalesOrderTable.tsx:54 +#: src/tables/build/BuildOrderTable.tsx:121 +msgid "Show outstanding orders" +msgstr "Show outstanding orders" + +#: src/tables/build/BuildOrderTable.tsx:121 +#~ msgid "Show active orders" +#~ msgstr "Show active orders" + +#: src/tables/build/BuildOrderTable.tsx:122 +#~ msgid "Show overdue status" +#~ msgstr "Show overdue status" + +#: src/tables/build/BuildOrderTable.tsx:126 +#: src/tables/part/PartPurchaseOrdersTable.tsx:132 +#: src/tables/purchasing/PurchaseOrderTable.tsx:59 +#: src/tables/sales/ReturnOrderTable.tsx:57 +#: src/tables/sales/SalesOrderTable.tsx:57 msgid "Filter by order status" msgstr "Filter by order status" -#: src/tables/build/BuildOrderTable.tsx:130 -msgid "Show overdue status" -msgstr "Show overdue status" - -#: src/tables/build/BuildOrderTable.tsx:141 -#: src/tables/purchasing/PurchaseOrderTable.tsx:65 -#: src/tables/sales/ReturnOrderTable.tsx:56 -#: src/tables/sales/SalesOrderTable.tsx:63 +#: src/tables/build/BuildOrderTable.tsx:136 +#: src/tables/purchasing/PurchaseOrderTable.tsx:70 +#: src/tables/sales/ReturnOrderTable.tsx:68 +#: src/tables/sales/SalesOrderTable.tsx:68 msgid "Filter by project code" msgstr "Filter by project code" -#: src/tables/build/BuildOrderTable.tsx:146 -#: src/tables/purchasing/PurchaseOrderTable.tsx:70 -#: src/tables/sales/ReturnOrderTable.tsx:61 -#: src/tables/sales/SalesOrderTable.tsx:68 -msgid "Has Project Code" -msgstr "Has Project Code" - -#: src/tables/build/BuildOrderTable.tsx:147 +#: src/tables/build/BuildOrderTable.tsx:139 #: src/tables/purchasing/PurchaseOrderTable.tsx:71 #: src/tables/sales/ReturnOrderTable.tsx:62 #: src/tables/sales/SalesOrderTable.tsx:69 -msgid "Filter by whether the purchase order has a project code" -msgstr "Filter by whether the purchase order has a project code" +#~ msgid "Filter by whether the purchase order has a project code" +#~ msgstr "Filter by whether the purchase order has a project code" -#: src/tables/build/BuildOrderTable.tsx:152 +#: src/tables/build/BuildOrderTable.tsx:143 msgid "Filter by user who issued this order" msgstr "Filter by user who issued this order" -#: src/tables/build/BuildOrderTable.tsx:158 -#: src/tables/purchasing/PurchaseOrderTable.tsx:76 -#: src/tables/sales/ReturnOrderTable.tsx:67 -#: src/tables/sales/SalesOrderTable.tsx:74 +#: src/tables/build/BuildOrderTable.tsx:149 +#: src/tables/purchasing/PurchaseOrderTable.tsx:77 +#: src/tables/sales/ReturnOrderTable.tsx:75 +#: src/tables/sales/SalesOrderTable.tsx:75 msgid "Filter by responsible owner" msgstr "Filter by responsible owner" -#: src/tables/build/BuildOrderTestTable.tsx:75 -#: src/tables/build/BuildOrderTestTable.tsx:111 -#: src/tables/stock/StockItemTestResultTable.tsx:257 -#: src/tables/stock/StockItemTestResultTable.tsx:329 -#: src/tables/stock/StockItemTestResultTable.tsx:384 +#: src/tables/build/BuildOrderTestTable.tsx:76 +#: src/tables/build/BuildOrderTestTable.tsx:112 +#: src/tables/stock/StockItemTestResultTable.tsx:275 +#: src/tables/stock/StockItemTestResultTable.tsx:347 +#: src/tables/stock/StockItemTestResultTable.tsx:403 msgid "Add Test Result" msgstr "Add Test Result" -#: src/tables/build/BuildOrderTestTable.tsx:82 -#: src/tables/stock/StockItemTestResultTable.tsx:259 +#: src/tables/build/BuildOrderTestTable.tsx:83 +#: src/tables/stock/StockItemTestResultTable.tsx:277 msgid "Test result added" msgstr "Test result added" -#: src/tables/build/BuildOrderTestTable.tsx:110 -#: src/tables/stock/StockItemTestResultTable.tsx:174 +#: src/tables/build/BuildOrderTestTable.tsx:111 +#: src/tables/stock/StockItemTestResultTable.tsx:180 msgid "No Result" msgstr "No Result" -#: src/tables/build/BuildOrderTestTable.tsx:220 +#: src/tables/build/BuildOrderTestTable.tsx:221 msgid "Show build outputs currently in production" msgstr "Show build outputs currently in production" +#: src/tables/build/BuildOutputTable.tsx:76 +msgid "Build Output Stock Allocation" +msgstr "Build Output Stock Allocation" + #: src/tables/build/BuildOutputTable.tsx:161 #~ msgid "Delete build output" #~ msgstr "Delete build output" -#: src/tables/build/BuildOutputTable.tsx:173 -#: src/tables/build/BuildOutputTable.tsx:211 +#: src/tables/build/BuildOutputTable.tsx:258 +#: src/tables/build/BuildOutputTable.tsx:374 msgid "Add Build Output" msgstr "Add Build Output" -#: src/tables/build/BuildOutputTable.tsx:216 +#: src/tables/build/BuildOutputTable.tsx:304 +#~ msgid "Edit build output" +#~ msgstr "Edit build output" + +#: src/tables/build/BuildOutputTable.tsx:306 +#: src/tables/build/BuildOutputTable.tsx:417 +msgid "Edit Build Output" +msgstr "Edit Build Output" + +#: src/tables/build/BuildOutputTable.tsx:321 +msgid "This action will deallocate all stock from the selected build output" +msgstr "This action will deallocate all stock from the selected build output" + +#: src/tables/build/BuildOutputTable.tsx:341 msgid "Complete selected outputs" msgstr "Complete selected outputs" -#: src/tables/build/BuildOutputTable.tsx:226 +#: src/tables/build/BuildOutputTable.tsx:352 msgid "Scrap selected outputs" msgstr "Scrap selected outputs" -#: src/tables/build/BuildOutputTable.tsx:236 +#: src/tables/build/BuildOutputTable.tsx:363 msgid "Cancel selected outputs" msgstr "Cancel selected outputs" -#: src/tables/build/BuildOutputTable.tsx:252 +#: src/tables/build/BuildOutputTable.tsx:385 msgid "Allocate" msgstr "Allocate" -#: src/tables/build/BuildOutputTable.tsx:253 +#: src/tables/build/BuildOutputTable.tsx:386 msgid "Allocate stock to build output" msgstr "Allocate stock to build output" -#: src/tables/build/BuildOutputTable.tsx:259 +#: src/tables/build/BuildOutputTable.tsx:396 msgid "Deallocate" msgstr "Deallocate" -#: src/tables/build/BuildOutputTable.tsx:260 +#: src/tables/build/BuildOutputTable.tsx:397 msgid "Deallocate stock from build output" msgstr "Deallocate stock from build output" -#: src/tables/build/BuildOutputTable.tsx:267 +#: src/tables/build/BuildOutputTable.tsx:408 msgid "Complete build output" msgstr "Complete build output" -#: src/tables/build/BuildOutputTable.tsx:276 +#: src/tables/build/BuildOutputTable.tsx:424 msgid "Scrap" msgstr "Scrap" -#: src/tables/build/BuildOutputTable.tsx:277 +#: src/tables/build/BuildOutputTable.tsx:425 msgid "Scrap build output" msgstr "Scrap build output" -#: src/tables/build/BuildOutputTable.tsx:280 -#~ msgid "Allocated Items" -#~ msgstr "Allocated Items" - -#: src/tables/build/BuildOutputTable.tsx:287 +#: src/tables/build/BuildOutputTable.tsx:435 msgid "Cancel build output" msgstr "Cancel build output" -#: src/tables/build/BuildOutputTable.tsx:325 -msgid "Batch" -msgstr "Batch" - -#: src/tables/build/BuildOutputTable.tsx:340 +#: src/tables/build/BuildOutputTable.tsx:488 msgid "Allocated Lines" msgstr "Allocated Lines" -#: src/tables/build/BuildOutputTable.tsx:355 +#: src/tables/build/BuildOutputTable.tsx:503 msgid "Required Tests" msgstr "Required Tests" -#: src/tables/company/AddressTable.tsx:121 -#: src/tables/company/AddressTable.tsx:185 +#: src/tables/company/AddressTable.tsx:118 +#: src/tables/company/AddressTable.tsx:183 msgid "Add Address" msgstr "Add Address" -#: src/tables/company/AddressTable.tsx:126 +#: src/tables/company/AddressTable.tsx:123 msgid "Address created" msgstr "Address created" -#: src/tables/company/AddressTable.tsx:135 +#: src/tables/company/AddressTable.tsx:132 msgid "Edit Address" msgstr "Edit Address" -#: src/tables/company/AddressTable.tsx:143 +#: src/tables/company/AddressTable.tsx:140 msgid "Delete Address" msgstr "Delete Address" -#: src/tables/company/AddressTable.tsx:144 +#: src/tables/company/AddressTable.tsx:141 msgid "Are you sure you want to delete this address?" msgstr "Are you sure you want to delete this address?" @@ -6125,24 +7264,24 @@ msgstr "Are you sure you want to delete this address?" #~ msgid "New Company" #~ msgstr "New Company" -#: src/tables/company/CompanyTable.tsx:74 -#: src/tables/company/CompanyTable.tsx:123 +#: src/tables/company/CompanyTable.tsx:75 +#: src/tables/company/CompanyTable.tsx:125 msgid "Add Company" msgstr "Add Company" -#: src/tables/company/CompanyTable.tsx:96 +#: src/tables/company/CompanyTable.tsx:97 msgid "Show active companies" msgstr "Show active companies" -#: src/tables/company/CompanyTable.tsx:101 +#: src/tables/company/CompanyTable.tsx:102 msgid "Show companies which are suppliers" msgstr "Show companies which are suppliers" -#: src/tables/company/CompanyTable.tsx:106 +#: src/tables/company/CompanyTable.tsx:107 msgid "Show companies which are manufacturers" msgstr "Show companies which are manufacturers" -#: src/tables/company/CompanyTable.tsx:111 +#: src/tables/company/CompanyTable.tsx:112 msgid "Show companies which are customers" msgstr "Show companies which are customers" @@ -6158,96 +7297,99 @@ msgstr "Add Contact" msgid "Delete Contact" msgstr "Delete Contact" -#: src/tables/company/ContactTable.tsx:129 +#: src/tables/company/ContactTable.tsx:130 msgid "Add contact" msgstr "Add contact" -#: src/tables/general/AttachmentTable.tsx:130 +#: src/tables/general/AttachmentTable.tsx:135 msgid "File uploaded" msgstr "File uploaded" -#: src/tables/general/AttachmentTable.tsx:131 +#: src/tables/general/AttachmentTable.tsx:136 msgid "File {0} uploaded successfully" msgstr "File {0} uploaded successfully" -#: src/tables/general/AttachmentTable.tsx:142 +#: src/tables/general/AttachmentTable.tsx:147 msgid "Upload Error" msgstr "Upload Error" -#: src/tables/general/AttachmentTable.tsx:143 +#: src/tables/general/AttachmentTable.tsx:148 msgid "File could not be uploaded" msgstr "File could not be uploaded" -#: src/tables/general/AttachmentTable.tsx:191 +#: src/tables/general/AttachmentTable.tsx:196 msgid "Upload Attachment" msgstr "Upload Attachment" -#: src/tables/general/AttachmentTable.tsx:201 +#: src/tables/general/AttachmentTable.tsx:206 msgid "Edit Attachment" msgstr "Edit Attachment" -#: src/tables/general/AttachmentTable.tsx:215 +#: src/tables/general/AttachmentTable.tsx:220 msgid "Delete Attachment" msgstr "Delete Attachment" -#: src/tables/general/AttachmentTable.tsx:225 +#: src/tables/general/AttachmentTable.tsx:230 msgid "Is Link" msgstr "Is Link" -#: src/tables/general/AttachmentTable.tsx:226 +#: src/tables/general/AttachmentTable.tsx:231 msgid "Show link attachments" msgstr "Show link attachments" -#: src/tables/general/AttachmentTable.tsx:230 +#: src/tables/general/AttachmentTable.tsx:235 msgid "Is File" msgstr "Is File" -#: src/tables/general/AttachmentTable.tsx:231 +#: src/tables/general/AttachmentTable.tsx:236 msgid "Show file attachments" msgstr "Show file attachments" -#: src/tables/general/AttachmentTable.tsx:240 +#: src/tables/general/AttachmentTable.tsx:245 msgid "Add attachment" msgstr "Add attachment" -#: src/tables/general/AttachmentTable.tsx:251 -msgid "Add external link" -msgstr "Add external link" - #: src/tables/general/AttachmentTable.tsx:254 #~ msgid "Upload attachment" #~ msgstr "Upload attachment" -#: src/tables/general/AttachmentTable.tsx:299 +#: src/tables/general/AttachmentTable.tsx:256 +msgid "Add external link" +msgstr "Add external link" + +#: src/tables/general/AttachmentTable.tsx:304 msgid "No attachments found" msgstr "No attachments found" -#: src/tables/general/AttachmentTable.tsx:337 +#: src/tables/general/AttachmentTable.tsx:343 msgid "Drag attachment file here to upload" msgstr "Drag attachment file here to upload" #: src/tables/general/ExtraLineItemTable.tsx:86 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:251 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:60 -#: src/tables/sales/SalesOrderLineItemTable.tsx:196 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:263 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:362 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:72 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:168 +#: src/tables/sales/SalesOrderLineItemTable.tsx:206 +#: src/tables/sales/SalesOrderLineItemTable.tsx:291 msgid "Add Line Item" msgstr "Add Line Item" #: src/tables/general/ExtraLineItemTable.tsx:98 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:271 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:72 -#: src/tables/sales/SalesOrderLineItemTable.tsx:214 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:283 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:84 +#: src/tables/sales/SalesOrderLineItemTable.tsx:224 msgid "Edit Line Item" msgstr "Edit Line Item" #: src/tables/general/ExtraLineItemTable.tsx:106 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:279 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:80 -#: src/tables/sales/SalesOrderLineItemTable.tsx:222 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:291 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:92 +#: src/tables/sales/SalesOrderLineItemTable.tsx:232 msgid "Delete Line Item" msgstr "Delete Line Item" -#: src/tables/general/ExtraLineItemTable.tsx:142 +#: src/tables/general/ExtraLineItemTable.tsx:143 msgid "Add Extra Line Item" msgstr "Add Extra Line Item" @@ -6256,12 +7398,12 @@ msgid "Machine restarted" msgstr "Machine restarted" #: src/tables/machine/MachineListTable.tsx:212 -#: src/tables/machine/MachineListTable.tsx:263 +#: src/tables/machine/MachineListTable.tsx:261 msgid "Edit machine" msgstr "Edit machine" #: src/tables/machine/MachineListTable.tsx:226 -#: src/tables/machine/MachineListTable.tsx:267 +#: src/tables/machine/MachineListTable.tsx:265 msgid "Delete machine" msgstr "Delete machine" @@ -6273,51 +7415,50 @@ msgstr "Machine successfully deleted." msgid "Are you sure you want to remove the machine \"{0}\"?" msgstr "Are you sure you want to remove the machine \"{0}\"?" -#: src/tables/machine/MachineListTable.tsx:255 -#: src/tables/machine/MachineListTable.tsx:432 +#: src/tables/machine/MachineListTable.tsx:254 +#: src/tables/machine/MachineListTable.tsx:442 msgid "Restart required" msgstr "Restart required" -#: src/tables/machine/MachineListTable.tsx:259 +#: src/tables/machine/MachineListTable.tsx:258 msgid "Machine Actions" msgstr "Machine Actions" -#: src/tables/machine/MachineListTable.tsx:272 +#: src/tables/machine/MachineListTable.tsx:270 msgid "Restart" msgstr "Restart" -#: src/tables/machine/MachineListTable.tsx:274 +#: src/tables/machine/MachineListTable.tsx:272 msgid "Restart machine" msgstr "Restart machine" -#: src/tables/machine/MachineListTable.tsx:276 +#: src/tables/machine/MachineListTable.tsx:274 msgid "manual restart required" msgstr "manual restart required" -#: src/tables/machine/MachineListTable.tsx:292 -msgid "Machine information" -msgstr "Machine information" +#: src/tables/machine/MachineListTable.tsx:291 +#~ msgid "Machine information" +#~ msgstr "Machine information" -#: src/tables/machine/MachineListTable.tsx:303 -#: src/tables/machine/MachineListTable.tsx:599 +#: src/tables/machine/MachineListTable.tsx:292 +msgid "Machine Information" +msgstr "Machine Information" + +#: src/tables/machine/MachineListTable.tsx:302 +#: src/tables/machine/MachineListTable.tsx:610 msgid "Machine Type" msgstr "Machine Type" -#: src/tables/machine/MachineListTable.tsx:316 +#: src/tables/machine/MachineListTable.tsx:315 msgid "Machine Driver" msgstr "Machine Driver" -#: src/tables/machine/MachineListTable.tsx:329 +#: src/tables/machine/MachineListTable.tsx:330 msgid "Initialized" msgstr "Initialized" -#: src/tables/machine/MachineListTable.tsx:350 -#: src/tables/machine/MachineTypeTable.tsx:261 -msgid "Errors" -msgstr "Errors" - -#: src/tables/machine/MachineListTable.tsx:358 -#: src/tables/machine/MachineTypeTable.tsx:269 +#: src/tables/machine/MachineListTable.tsx:359 +#: src/tables/machine/MachineTypeTable.tsx:290 msgid "No errors reported" msgstr "No errors reported" @@ -6325,7 +7466,7 @@ msgstr "No errors reported" msgid "Machine Settings" msgstr "Machine Settings" -#: src/tables/machine/MachineListTable.tsx:389 +#: src/tables/machine/MachineListTable.tsx:394 msgid "Driver Settings" msgstr "Driver Settings" @@ -6333,86 +7474,109 @@ msgstr "Driver Settings" #~ msgid "Create machine" #~ msgstr "Create machine" -#: src/tables/machine/MachineListTable.tsx:506 +#: src/tables/machine/MachineListTable.tsx:516 +#: src/tables/machine/MachineListTable.tsx:558 msgid "Add machine" msgstr "Add machine" #: src/tables/machine/MachineListTable.tsx:561 -msgid "Machine detail" -msgstr "Machine detail" +#~ msgid "Machine detail" +#~ msgstr "Machine detail" -#: src/tables/machine/MachineListTable.tsx:608 +#: src/tables/machine/MachineListTable.tsx:572 +msgid "Machine Detail" +msgstr "Machine Detail" + +#: src/tables/machine/MachineListTable.tsx:619 msgid "Driver" msgstr "Driver" -#: src/tables/machine/MachineTypeTable.tsx:73 +#: src/tables/machine/MachineTypeTable.tsx:78 msgid "Builtin driver" msgstr "Builtin driver" -#: src/tables/machine/MachineTypeTable.tsx:89 +#: src/tables/machine/MachineTypeTable.tsx:96 +msgid "Not Found" +msgstr "Not Found" + +#: src/tables/machine/MachineTypeTable.tsx:99 msgid "Machine type not found." msgstr "Machine type not found." -#: src/tables/machine/MachineTypeTable.tsx:97 -msgid "Machine type information" -msgstr "Machine type information" +#: src/tables/machine/MachineTypeTable.tsx:99 +#~ msgid "Machine type information" +#~ msgstr "Machine type information" -#: src/tables/machine/MachineTypeTable.tsx:110 -#: src/tables/machine/MachineTypeTable.tsx:217 +#: src/tables/machine/MachineTypeTable.tsx:109 +msgid "Machine Type Information" +msgstr "Machine Type Information" + +#: src/tables/machine/MachineTypeTable.tsx:124 +#: src/tables/machine/MachineTypeTable.tsx:238 msgid "Slug" msgstr "Slug" -#: src/tables/machine/MachineTypeTable.tsx:118 -#: src/tables/machine/MachineTypeTable.tsx:238 +#: src/tables/machine/MachineTypeTable.tsx:135 +#: src/tables/machine/MachineTypeTable.tsx:259 msgid "Provider plugin" msgstr "Provider plugin" -#: src/tables/machine/MachineTypeTable.tsx:130 -#: src/tables/machine/MachineTypeTable.tsx:250 +#: src/tables/machine/MachineTypeTable.tsx:147 +#: src/tables/machine/MachineTypeTable.tsx:271 msgid "Provider file" msgstr "Provider file" -#: src/tables/machine/MachineTypeTable.tsx:135 -#: src/tables/machine/MachineTypeTable.tsx:255 -#: src/tables/plugin/PluginListTable.tsx:180 -#: src/tables/plugin/PluginListTable.tsx:568 -msgid "Builtin" -msgstr "Builtin" +#: src/tables/machine/MachineTypeTable.tsx:148 +#~ msgid "Available drivers" +#~ msgstr "Available drivers" -#: src/tables/machine/MachineTypeTable.tsx:146 -msgid "Available drivers" -msgstr "Available drivers" +#: src/tables/machine/MachineTypeTable.tsx:162 +msgid "Available Drivers" +msgstr "Available Drivers" -#: src/tables/machine/MachineTypeTable.tsx:196 +#: src/tables/machine/MachineTypeTable.tsx:217 msgid "Machine driver not found." msgstr "Machine driver not found." -#: src/tables/machine/MachineTypeTable.tsx:204 +#: src/tables/machine/MachineTypeTable.tsx:225 msgid "Machine driver information" msgstr "Machine driver information" -#: src/tables/machine/MachineTypeTable.tsx:224 +#: src/tables/machine/MachineTypeTable.tsx:245 msgid "Machine type" msgstr "Machine type" -#: src/tables/machine/MachineTypeTable.tsx:327 +#: src/tables/machine/MachineTypeTable.tsx:338 +#~ msgid "Machine type detail" +#~ msgstr "Machine type detail" + +#: src/tables/machine/MachineTypeTable.tsx:348 msgid "Builtin type" msgstr "Builtin type" -#: src/tables/machine/MachineTypeTable.tsx:336 -msgid "Machine type detail" -msgstr "Machine type detail" +#: src/tables/machine/MachineTypeTable.tsx:348 +#~ msgid "Machine driver detail" +#~ msgstr "Machine driver detail" -#: src/tables/machine/MachineTypeTable.tsx:346 -msgid "Machine driver detail" -msgstr "Machine driver detail" +#: src/tables/machine/MachineTypeTable.tsx:357 +msgid "Machine Type Detail" +msgstr "Machine Type Detail" + +#: src/tables/machine/MachineTypeTable.tsx:367 +msgid "Machine Driver Detail" +msgstr "Machine Driver Detail" #: src/tables/notifications/NotificationsTable.tsx:26 msgid "Age" msgstr "Age" +#: src/tables/notifications/NotificationsTable.tsx:36 +msgid "Notification" +msgstr "Notification" + #: src/tables/notifications/NotificationsTable.tsx:40 #: src/tables/plugin/PluginErrorTable.tsx:37 +#: src/tables/settings/ErrorTable.tsx:50 msgid "Message" msgstr "Message" @@ -6446,33 +7610,32 @@ msgstr "Show locked parts" msgid "Show assembly parts" msgstr "Show assembly parts" -#: src/tables/part/PartCategoryTable.tsx:68 +#: src/tables/part/PartCategoryTable.tsx:48 +msgid "You are subscribed to notifications for this category" +msgstr "You are subscribed to notifications for this category" + +#: src/tables/part/PartCategoryTable.tsx:80 #: src/tables/part/PartTable.tsx:196 msgid "Include Subcategories" msgstr "Include Subcategories" -#: src/tables/part/PartCategoryTable.tsx:69 +#: src/tables/part/PartCategoryTable.tsx:81 msgid "Include subcategories in results" msgstr "Include subcategories in results" -#: src/tables/part/PartCategoryTable.tsx:74 +#: src/tables/part/PartCategoryTable.tsx:86 msgid "Show structural categories" msgstr "Show structural categories" -#: src/tables/part/PartCategoryTable.tsx:78 -#: src/tables/part/PartTable.tsx:294 -msgid "Subscribed" -msgstr "Subscribed" - -#: src/tables/part/PartCategoryTable.tsx:79 +#: src/tables/part/PartCategoryTable.tsx:91 msgid "Show categories to which the user is subscribed" msgstr "Show categories to which the user is subscribed" -#: src/tables/part/PartCategoryTable.tsx:86 +#: src/tables/part/PartCategoryTable.tsx:100 msgid "New Part Category" msgstr "New Part Category" -#: src/tables/part/PartCategoryTable.tsx:112 +#: src/tables/part/PartCategoryTable.tsx:129 msgid "Add Part Category" msgstr "Add Part Category" @@ -6518,11 +7681,6 @@ msgstr "Add parameter" msgid "Part parameters cannot be edited, as the part is locked" msgstr "Part parameters cannot be edited, as the part is locked" -#: src/tables/part/PartParameterTable.tsx:212 -#: src/tables/stock/StockItemTable.tsx:335 -msgid "Include Variants" -msgstr "Include Variants" - #: src/tables/part/PartParameterTemplateTable.tsx:31 msgid "Checkbox" msgstr "Checkbox" @@ -6549,6 +7707,7 @@ msgid "Show templates with units" msgstr "Show templates with units" #: src/tables/part/PartParameterTemplateTable.tsx:85 +#: src/tables/part/PartParameterTemplateTable.tsx:141 msgid "Add Parameter Template" msgstr "Add Parameter Template" @@ -6561,23 +7720,19 @@ msgid "Delete Parameter Template" msgstr "Delete Parameter Template" #: src/tables/part/PartParameterTemplateTable.tsx:141 -msgid "Add parameter template" -msgstr "Add parameter template" +#~ msgid "Add parameter template" +#~ msgstr "Add parameter template" -#: src/tables/part/PartPurchaseOrdersTable.tsx:77 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:162 +#: src/tables/part/PartPurchaseOrdersTable.tsx:78 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:168 msgid "Total Quantity" msgstr "Total Quantity" -#: src/tables/part/PartPurchaseOrdersTable.tsx:115 -msgid "Pending" -msgstr "Pending" - -#: src/tables/part/PartPurchaseOrdersTable.tsx:116 +#: src/tables/part/PartPurchaseOrdersTable.tsx:122 msgid "Show pending orders" msgstr "Show pending orders" -#: src/tables/part/PartPurchaseOrdersTable.tsx:121 +#: src/tables/part/PartPurchaseOrdersTable.tsx:127 msgid "Show received items" msgstr "Show received items" @@ -6723,22 +7878,13 @@ msgstr "Template Details" msgid "Results" msgstr "Results" -#: src/tables/part/PartTestTemplateTable.tsx:76 -msgid "No Results" -msgstr "No Results" - -#: src/tables/part/PartTestTemplateTable.tsx:106 -#: src/tables/stock/StockItemTestResultTable.tsx:365 -msgid "Required" -msgstr "Required" - #: src/tables/part/PartTestTemplateTable.tsx:107 msgid "Show required tests" msgstr "Show required tests" #: src/tables/part/PartTestTemplateTable.tsx:111 -#: src/tables/settings/TemplateTable.tsx:167 -#: src/tables/settings/TemplateTable.tsx:283 +#: src/tables/settings/TemplateTable.tsx:247 +#: src/tables/settings/TemplateTable.tsx:363 msgid "Enabled" msgstr "Enabled" @@ -6779,7 +7925,7 @@ msgid "Show tests which have recorded results" msgstr "Show tests which have recorded results" #: src/tables/part/PartTestTemplateTable.tsx:154 -#: src/tables/part/PartTestTemplateTable.tsx:237 +#: src/tables/part/PartTestTemplateTable.tsx:238 msgid "Add Test Template" msgstr "Add Test Template" @@ -6803,7 +7949,7 @@ msgstr "Any tests results associated with this template will be deleted" msgid "View Parent Part" msgstr "View Parent Part" -#: src/tables/part/PartTestTemplateTable.tsx:257 +#: src/tables/part/PartTestTemplateTable.tsx:258 msgid "Part templates cannot be edited, as the part is locked" msgstr "Part templates cannot be edited, as the part is locked" @@ -6831,41 +7977,58 @@ msgstr "Show virtual variants" msgid "Show trackable variants" msgstr "Show trackable variants" -#: src/tables/part/RelatedPartTable.tsx:84 +#: src/tables/part/RelatedPartTable.tsx:86 +#: src/tables/part/RelatedPartTable.tsx:109 msgid "Add Related Part" msgstr "Add Related Part" -#: src/tables/part/RelatedPartTable.tsx:99 +#: src/tables/part/RelatedPartTable.tsx:101 msgid "Delete Related Part" msgstr "Delete Related Part" -#: src/tables/part/RelatedPartTable.tsx:106 -msgid "Add related part" -msgstr "Add related part" +#: src/tables/part/RelatedPartTable.tsx:109 +#~ msgid "Add related part" +#~ msgstr "Add related part" #: src/tables/plugin/PluginErrorTable.tsx:29 msgid "Stage" msgstr "Stage" +#: src/tables/plugin/PluginListTable.tsx:42 +msgid "Plugin is active" +msgstr "Plugin is active" + +#: src/tables/plugin/PluginListTable.tsx:48 +msgid "Plugin is inactive" +msgstr "Plugin is inactive" + +#: src/tables/plugin/PluginListTable.tsx:55 +msgid "Plugin is not installed" +msgstr "Plugin is not installed" + +#: src/tables/plugin/PluginListTable.tsx:76 +msgid "Plugin" +msgstr "Plugin" + #: src/tables/plugin/PluginListTable.tsx:95 -msgid "Plugin with key {pluginKey} not found" -msgstr "Plugin with key {pluginKey} not found" +#~ msgid "Plugin with key {pluginKey} not found" +#~ msgstr "Plugin with key {pluginKey} not found" #: src/tables/plugin/PluginListTable.tsx:97 -msgid "An error occurred while fetching plugin details" -msgstr "An error occurred while fetching plugin details" +#~ msgid "An error occurred while fetching plugin details" +#~ msgstr "An error occurred while fetching plugin details" + +#: src/tables/plugin/PluginListTable.tsx:109 +msgid "Description not available" +msgstr "Description not available" #: src/tables/plugin/PluginListTable.tsx:113 #~ msgid "Plugin with id {id} not found" #~ msgstr "Plugin with id {id} not found" #: src/tables/plugin/PluginListTable.tsx:122 -msgid "Plugin information" -msgstr "Plugin information" - -#: src/tables/plugin/PluginListTable.tsx:134 -msgid "Author" -msgstr "Author" +#~ msgid "Plugin information" +#~ msgstr "Plugin information" #: src/tables/plugin/PluginListTable.tsx:134 #~ msgid "Plugin Actions" @@ -6876,79 +8039,124 @@ msgstr "Author" #~ msgid "Edit plugin" #~ msgstr "Edit plugin" +#: src/tables/plugin/PluginListTable.tsx:144 +msgid "Confirm plugin activation" +msgstr "Confirm plugin activation" + +#: src/tables/plugin/PluginListTable.tsx:145 +msgid "Confirm plugin deactivation" +msgstr "Confirm plugin deactivation" + +#: src/tables/plugin/PluginListTable.tsx:150 +msgid "The selected plugin will be activated" +msgstr "The selected plugin will be activated" + +#: src/tables/plugin/PluginListTable.tsx:151 +msgid "The selected plugin will be deactivated" +msgstr "The selected plugin will be deactivated" + #: src/tables/plugin/PluginListTable.tsx:152 #: src/tables/plugin/PluginListTable.tsx:153 #~ msgid "Reload" #~ msgstr "Reload" -#: src/tables/plugin/PluginListTable.tsx:154 -msgid "Plugin is not active" -msgstr "Plugin is not active" - #: src/tables/plugin/PluginListTable.tsx:163 -msgid "Package information" -msgstr "Package information" +#~ msgid "Package information" +#~ msgstr "Package information" #: src/tables/plugin/PluginListTable.tsx:169 -msgid "Package Name" -msgstr "Package Name" +msgid "Deactivate" +msgstr "Deactivate" -#: src/tables/plugin/PluginListTable.tsx:175 -msgid "Installation Path" -msgstr "Installation Path" +#: src/tables/plugin/PluginListTable.tsx:183 +msgid "Activate" +msgstr "Activate" -#: src/tables/plugin/PluginListTable.tsx:185 -msgid "Package" -msgstr "Package" +#: src/tables/plugin/PluginListTable.tsx:184 +msgid "Activate selected plugin" +msgstr "Activate selected plugin" + +#: src/tables/plugin/PluginListTable.tsx:196 +msgid "Update selected plugin" +msgstr "Update selected plugin" #: src/tables/plugin/PluginListTable.tsx:197 -msgid "Plugin settings" -msgstr "Plugin settings" +#~ msgid "Plugin settings" +#~ msgstr "Plugin settings" #: src/tables/plugin/PluginListTable.tsx:214 -msgid "Plugin is active" -msgstr "Plugin is active" +#: src/tables/stock/InstalledItemsTable.tsx:107 +msgid "Uninstall" +msgstr "Uninstall" -#: src/tables/plugin/PluginListTable.tsx:220 -msgid "Plugin is inactive" -msgstr "Plugin is inactive" +#: src/tables/plugin/PluginListTable.tsx:215 +msgid "Uninstall selected plugin" +msgstr "Uninstall selected plugin" -#: src/tables/plugin/PluginListTable.tsx:227 -msgid "Plugin is not installed" -msgstr "Plugin is not installed" +#: src/tables/plugin/PluginListTable.tsx:233 +msgid "Delete selected plugin configuration" +msgstr "Delete selected plugin configuration" -#: src/tables/plugin/PluginListTable.tsx:253 -msgid "Plugin" -msgstr "Plugin" - -#: src/tables/plugin/PluginListTable.tsx:287 -msgid "Description not available" -msgstr "Description not available" - -#: src/tables/plugin/PluginListTable.tsx:319 -msgid "Confirm plugin activation" -msgstr "Confirm plugin activation" - -#: src/tables/plugin/PluginListTable.tsx:320 -msgid "Confirm plugin deactivation" -msgstr "Confirm plugin deactivation" - -#: src/tables/plugin/PluginListTable.tsx:325 -msgid "The selected plugin will be activated" -msgstr "The selected plugin will be activated" - -#: src/tables/plugin/PluginListTable.tsx:326 -msgid "The selected plugin will be deactivated" -msgstr "The selected plugin will be deactivated" - -#: src/tables/plugin/PluginListTable.tsx:334 +#: src/tables/plugin/PluginListTable.tsx:249 msgid "Activate Plugin" msgstr "Activate Plugin" +#: src/tables/plugin/PluginListTable.tsx:270 +msgid "Install plugin" +msgstr "Install plugin" + +#: src/tables/plugin/PluginListTable.tsx:283 +msgid "Install" +msgstr "Install" + +#: src/tables/plugin/PluginListTable.tsx:284 +msgid "Plugin installed successfully" +msgstr "Plugin installed successfully" + +#: src/tables/plugin/PluginListTable.tsx:289 +msgid "Uninstall Plugin" +msgstr "Uninstall Plugin" + +#: src/tables/plugin/PluginListTable.tsx:301 +msgid "Confirm plugin uninstall" +msgstr "Confirm plugin uninstall" + +#: src/tables/plugin/PluginListTable.tsx:304 +msgid "The selected plugin will be uninstalled." +msgstr "The selected plugin will be uninstalled." + +#: src/tables/plugin/PluginListTable.tsx:308 +#~ msgid "This action cannot be undone." +#~ msgstr "This action cannot be undone." + +#: src/tables/plugin/PluginListTable.tsx:309 +msgid "Plugin uninstalled successfully" +msgstr "Plugin uninstalled successfully" + +#: src/tables/plugin/PluginListTable.tsx:317 +msgid "Delete Plugin" +msgstr "Delete Plugin" + +#: src/tables/plugin/PluginListTable.tsx:318 +msgid "Deleting this plugin configuration will remove all associated settings and data. Are you sure you want to delete this plugin?" +msgstr "Deleting this plugin configuration will remove all associated settings and data. Are you sure you want to delete this plugin?" + +#: src/tables/plugin/PluginListTable.tsx:331 +msgid "Plugins reloaded" +msgstr "Plugins reloaded" + +#: src/tables/plugin/PluginListTable.tsx:332 +msgid "Plugins were reloaded successfully" +msgstr "Plugins were reloaded successfully" + #: src/tables/plugin/PluginListTable.tsx:338 #~ msgid "Deactivate Plugin" #~ msgstr "Deactivate Plugin" +#: src/tables/plugin/PluginListTable.tsx:350 +msgid "Reload Plugins" +msgstr "Reload Plugins" + #: src/tables/plugin/PluginListTable.tsx:354 #~ msgid "The following plugin will be activated" #~ msgstr "The following plugin will be activated" @@ -6957,17 +8165,17 @@ msgstr "Activate Plugin" #~ msgid "The following plugin will be deactivated" #~ msgstr "The following plugin will be deactivated" -#: src/tables/plugin/PluginListTable.tsx:362 -msgid "Deactivate" -msgstr "Deactivate" +#: src/tables/plugin/PluginListTable.tsx:357 +msgid "Install Plugin" +msgstr "Install Plugin" #: src/tables/plugin/PluginListTable.tsx:366 #~ msgid "Confirm" #~ msgstr "Confirm" -#: src/tables/plugin/PluginListTable.tsx:373 -msgid "Activate" -msgstr "Activate" +#: src/tables/plugin/PluginListTable.tsx:374 +msgid "Plugin Detail" +msgstr "Plugin Detail" #: src/tables/plugin/PluginListTable.tsx:376 #~ msgid "Activating plugin" @@ -6993,76 +8201,12 @@ msgstr "Activate" #~ msgid "Error updating plugin" #~ msgstr "Error updating plugin" -#: src/tables/plugin/PluginListTable.tsx:406 -msgid "Uninstall" -msgstr "Uninstall" - -#: src/tables/plugin/PluginListTable.tsx:438 -msgid "Install plugin" -msgstr "Install plugin" - -#: src/tables/plugin/PluginListTable.tsx:451 -msgid "Install" -msgstr "Install" - -#: src/tables/plugin/PluginListTable.tsx:452 -msgid "Plugin installed successfully" -msgstr "Plugin installed successfully" - -#: src/tables/plugin/PluginListTable.tsx:457 -msgid "Uninstall Plugin" -msgstr "Uninstall Plugin" - -#: src/tables/plugin/PluginListTable.tsx:469 -msgid "Confirm plugin uninstall" -msgstr "Confirm plugin uninstall" - -#: src/tables/plugin/PluginListTable.tsx:472 -msgid "The selected plugin will be uninstalled." -msgstr "The selected plugin will be uninstalled." - -#: src/tables/plugin/PluginListTable.tsx:473 -msgid "This action cannot be undone." -msgstr "This action cannot be undone." - -#: src/tables/plugin/PluginListTable.tsx:477 -msgid "Plugin uninstalled successfully" -msgstr "Plugin uninstalled successfully" - -#: src/tables/plugin/PluginListTable.tsx:484 -msgid "Delete Plugin" -msgstr "Delete Plugin" - -#: src/tables/plugin/PluginListTable.tsx:485 -msgid "Deleting this plugin configuration will remove all associated settings and data. Are you sure you want to delete this plugin?" -msgstr "Deleting this plugin configuration will remove all associated settings and data. Are you sure you want to delete this plugin?" - -#: src/tables/plugin/PluginListTable.tsx:498 -msgid "Plugins reloaded" -msgstr "Plugins reloaded" - -#: src/tables/plugin/PluginListTable.tsx:499 -msgid "Plugins were reloaded successfully" -msgstr "Plugins were reloaded successfully" - -#: src/tables/plugin/PluginListTable.tsx:515 -msgid "Reload Plugins" -msgstr "Reload Plugins" - -#: src/tables/plugin/PluginListTable.tsx:524 -msgid "Install Plugin" -msgstr "Install Plugin" - -#: src/tables/plugin/PluginListTable.tsx:544 -msgid "Plugin Detail" -msgstr "Plugin Detail" - -#: src/tables/plugin/PluginListTable.tsx:573 +#: src/tables/plugin/PluginListTable.tsx:411 msgid "Sample" msgstr "Sample" -#: src/tables/plugin/PluginListTable.tsx:578 -#: src/tables/stock/StockItemTable.tsx:340 +#: src/tables/plugin/PluginListTable.tsx:416 +#: src/tables/stock/StockItemTable.tsx:344 msgid "Installed" msgstr "Installed" @@ -7111,82 +8255,78 @@ msgstr "Delete Parameter" #~ msgid "Are you sure you want to remove this manufacturer part?" #~ msgstr "Are you sure you want to remove this manufacturer part?" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:102 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:339 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:103 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:356 msgid "Import Line Items" msgstr "Import Line Items" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:135 -msgid "Part Description" -msgstr "Part Description" - -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:201 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:207 msgid "Supplier Code" msgstr "Supplier Code" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:208 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:214 msgid "Supplier Link" msgstr "Supplier Link" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:215 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:220 msgid "Manufacturer Code" msgstr "Manufacturer Code" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:229 -msgid "Destination" -msgstr "Destination" +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:248 +msgid "Show line items which have been received" +msgstr "Show line items which have been received" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:300 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:316 msgid "Receive line item" msgstr "Receive line item" #: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:344 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:142 -#: src/tables/sales/SalesOrderLineItemTable.tsx:240 -msgid "Add line item" -msgstr "Add line item" +#: src/tables/sales/ReturnOrderLineItemTable.tsx:160 +#: src/tables/sales/SalesOrderLineItemTable.tsx:258 +#~ msgid "Add line item" +#~ msgstr "Add line item" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:354 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:373 msgid "Receive items" msgstr "Receive items" -#: src/tables/purchasing/SupplierPartTable.tsx:93 +#: src/tables/purchasing/SupplierPartTable.tsx:95 msgid "MPN" msgstr "MPN" -#: src/tables/purchasing/SupplierPartTable.tsx:122 +#: src/tables/purchasing/SupplierPartTable.tsx:124 msgid "Base units" msgstr "Base units" -#: src/tables/purchasing/SupplierPartTable.tsx:170 +#: src/tables/purchasing/SupplierPartTable.tsx:172 msgid "Supplier part created" msgstr "Supplier part created" -#: src/tables/purchasing/SupplierPartTable.tsx:176 +#: src/tables/purchasing/SupplierPartTable.tsx:179 msgid "Add supplier part" msgstr "Add supplier part" -#: src/tables/purchasing/SupplierPartTable.tsx:188 +#: src/tables/purchasing/SupplierPartTable.tsx:191 msgid "Show active supplier parts" msgstr "Show active supplier parts" -#: src/tables/purchasing/SupplierPartTable.tsx:192 -msgid "Active Part" -msgstr "Active Part" - -#: src/tables/purchasing/SupplierPartTable.tsx:193 -msgid "Show active internal parts" -msgstr "Show active internal parts" - #: src/tables/purchasing/SupplierPartTable.tsx:193 #~ msgid "Supplier part updated" #~ msgstr "Supplier part updated" -#: src/tables/purchasing/SupplierPartTable.tsx:197 +#: src/tables/purchasing/SupplierPartTable.tsx:195 +msgid "Active Part" +msgstr "Active Part" + +#: src/tables/purchasing/SupplierPartTable.tsx:196 +msgid "Show active internal parts" +msgstr "Show active internal parts" + +#: src/tables/purchasing/SupplierPartTable.tsx:200 msgid "Active Supplier" msgstr "Active Supplier" -#: src/tables/purchasing/SupplierPartTable.tsx:198 +#: src/tables/purchasing/SupplierPartTable.tsx:201 msgid "Show active suppliers" msgstr "Show active suppliers" @@ -7198,98 +8338,186 @@ msgstr "Show active suppliers" #~ msgid "Are you sure you want to remove this supplier part?" #~ msgstr "Are you sure you want to remove this supplier part?" -#: src/tables/sales/ReturnOrderLineItemTable.tsx:114 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:139 msgid "Received Date" msgstr "Received Date" -#: src/tables/sales/ReturnOrderLineItemTable.tsx:128 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:153 msgid "Show items which have been received" msgstr "Show items which have been received" -#: src/tables/sales/ReturnOrderLineItemTable.tsx:133 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:158 msgid "Filter by line item status" msgstr "Filter by line item status" -#: src/tables/sales/ReturnOrderLineItemTable.tsx:158 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:176 +msgid "Receive selected items" +msgstr "Receive selected items" + +#: src/tables/sales/ReturnOrderLineItemTable.tsx:205 msgid "Receive Item" msgstr "Receive Item" -#: src/tables/sales/SalesOrderLineItemTable.tsx:262 -msgid "Allocate stock" -msgstr "Allocate stock" +#: src/tables/sales/SalesOrderAllocationTable.tsx:60 +msgid "Show outstanding allocations" +msgstr "Show outstanding allocations" -#: src/tables/sales/SalesOrderLineItemTable.tsx:272 +#: src/tables/sales/SalesOrderAllocationTable.tsx:168 +#: src/tables/sales/SalesOrderAllocationTable.tsx:190 +msgid "Edit Allocation" +msgstr "Edit Allocation" + +#: src/tables/sales/SalesOrderAllocationTable.tsx:175 +#: src/tables/sales/SalesOrderAllocationTable.tsx:197 +msgid "Delete Allocation" +msgstr "Delete Allocation" + +#: src/tables/sales/SalesOrderLineItemTable.tsx:244 +msgid "Allocate Serial Numbers" +msgstr "Allocate Serial Numbers" + +#: src/tables/sales/SalesOrderLineItemTable.tsx:277 +msgid "Show lines which are fully allocated" +msgstr "Show lines which are fully allocated" + +#: src/tables/sales/SalesOrderLineItemTable.tsx:280 +#~ msgid "Allocate stock" +#~ msgstr "Allocate stock" + +#: src/tables/sales/SalesOrderLineItemTable.tsx:282 +msgid "Show lines which are completed" +msgstr "Show lines which are completed" + +#: src/tables/sales/SalesOrderLineItemTable.tsx:291 +#~ msgid "Allocate Serials" +#~ msgstr "Allocate Serials" + +#: src/tables/sales/SalesOrderLineItemTable.tsx:340 +msgid "Allocate serials" +msgstr "Allocate serials" + +#: src/tables/sales/SalesOrderLineItemTable.tsx:356 msgid "Build stock" msgstr "Build stock" -#: src/tables/sales/SalesOrderLineItemTable.tsx:289 -#: src/tables/stock/StockItemTable.tsx:507 +#: src/tables/sales/SalesOrderLineItemTable.tsx:373 +#: src/tables/stock/StockItemTable.tsx:512 msgid "Order stock" msgstr "Order stock" -#: src/tables/sales/SalesOrderShipmentTable.tsx:40 +#: src/tables/sales/SalesOrderShipmentTable.tsx:51 +#~ msgid "Delete Shipment" +#~ msgstr "Delete Shipment" + +#: src/tables/sales/SalesOrderShipmentTable.tsx:57 msgid "Create Shipment" msgstr "Create Shipment" -#: src/tables/sales/SalesOrderShipmentTable.tsx:50 -msgid "Delete Shipment" -msgstr "Delete Shipment" - -#: src/tables/sales/SalesOrderShipmentTable.tsx:58 -msgid "Edit Shipment" -msgstr "Edit Shipment" - -#: src/tables/sales/SalesOrderShipmentTable.tsx:66 -msgid "Shipment Reference" -msgstr "Shipment Reference" - -#: src/tables/sales/SalesOrderShipmentTable.tsx:71 +#: src/tables/sales/SalesOrderShipmentTable.tsx:104 msgid "Items" msgstr "Items" -#: src/tables/sales/SalesOrderShipmentTable.tsx:83 -msgid "Delivery Date" -msgstr "Delivery Date" +#: src/tables/sales/SalesOrderShipmentTable.tsx:139 +msgid "View Shipment" +msgstr "View Shipment" -#: src/tables/sales/SalesOrderShipmentTable.tsx:107 -msgid "Complete Shipment" -msgstr "Complete Shipment" +#: src/tables/sales/SalesOrderShipmentTable.tsx:161 +msgid "Edit shipment" +msgstr "Edit shipment" -#: src/tables/sales/SalesOrderShipmentTable.tsx:133 +#: src/tables/sales/SalesOrderShipmentTable.tsx:169 +msgid "Cancel shipment" +msgstr "Cancel shipment" + +#: src/tables/sales/SalesOrderShipmentTable.tsx:184 msgid "Add shipment" msgstr "Add shipment" -#: src/tables/sales/SalesOrderShipmentTable.tsx:146 -msgid "Shipped" -msgstr "Shipped" - -#: src/tables/sales/SalesOrderShipmentTable.tsx:147 +#: src/tables/sales/SalesOrderShipmentTable.tsx:198 msgid "Show shipments which have been shipped" msgstr "Show shipments which have been shipped" -#: src/tables/sales/SalesOrderShipmentTable.tsx:151 -msgid "Delivered" -msgstr "Delivered" - -#: src/tables/sales/SalesOrderShipmentTable.tsx:152 +#: src/tables/sales/SalesOrderShipmentTable.tsx:203 msgid "Show shipments which have been delivered" msgstr "Show shipments which have been delivered" -#: src/tables/settings/CurrencyTable.tsx:28 -msgid "Rate" -msgstr "Rate" +#: src/tables/settings/BarcodeScanHistoryTable.tsx:61 +msgid "Barcode Information" +msgstr "Barcode Information" -#: src/tables/settings/CurrencyTable.tsx:40 -msgid "Exchange rates updated" -msgstr "Exchange rates updated" +#: src/tables/settings/BarcodeScanHistoryTable.tsx:76 +#: src/tables/settings/ErrorTable.tsx:59 +msgid "Timestamp" +msgstr "Timestamp" -#: src/tables/settings/CurrencyTable.tsx:46 -msgid "Exchange rate update error" -msgstr "Exchange rate update error" +#: src/tables/settings/BarcodeScanHistoryTable.tsx:86 +msgid "Endpoint" +msgstr "Endpoint" -#: src/tables/settings/CurrencyTable.tsx:57 -msgid "Refresh currency exchange rates" -msgstr "Refresh currency exchange rates" +#: src/tables/settings/BarcodeScanHistoryTable.tsx:90 +#: src/tables/settings/BarcodeScanHistoryTable.tsx:217 +#: src/tables/stock/StockItemTestResultTable.tsx:174 +msgid "Result" +msgstr "Result" + +#: src/tables/settings/BarcodeScanHistoryTable.tsx:98 +msgid "Context" +msgstr "Context" + +#: src/tables/settings/BarcodeScanHistoryTable.tsx:119 +msgid "Response" +msgstr "Response" + +#: src/tables/settings/BarcodeScanHistoryTable.tsx:213 +#: src/tables/settings/ImportSessionTable.tsx:121 +#: src/tables/stock/StockTrackingTable.tsx:183 +msgid "Filter by user" +msgstr "Filter by user" + +#: src/tables/settings/BarcodeScanHistoryTable.tsx:218 +msgid "Filter by result" +msgstr "Filter by result" + +#: src/tables/settings/BarcodeScanHistoryTable.tsx:232 +msgid "Delete Barcode Scan Record" +msgstr "Delete Barcode Scan Record" + +#: src/tables/settings/BarcodeScanHistoryTable.tsx:258 +msgid "Barcode Scan Details" +msgstr "Barcode Scan Details" + +#: src/tables/settings/BarcodeScanHistoryTable.tsx:268 +msgid "Logging Disabled" +msgstr "Logging Disabled" + +#: src/tables/settings/BarcodeScanHistoryTable.tsx:270 +msgid "Barcode logging is not enabled" +msgstr "Barcode logging is not enabled" + +#: src/tables/settings/CustomStateTable.tsx:36 +msgid "Display Name" +msgstr "Display Name" + +#: src/tables/settings/CustomStateTable.tsx:52 +msgid "Model" +msgstr "Model" + +#: src/tables/settings/CustomStateTable.tsx:65 +#: src/tables/settings/CustomStateTable.tsx:115 +msgid "Add State" +msgstr "Add State" + +#: src/tables/settings/CustomStateTable.tsx:77 +msgid "Edit State" +msgstr "Edit State" + +#: src/tables/settings/CustomStateTable.tsx:85 +msgid "Delete State" +msgstr "Delete State" + +#: src/tables/settings/CustomStateTable.tsx:115 +#~ msgid "Add state" +#~ msgstr "Add state" #: src/tables/settings/CustomUnitsTable.tsx:50 msgid "Add Custom Unit" @@ -7307,59 +8535,71 @@ msgstr "Delete Custom Unit" msgid "Add custom unit" msgstr "Add custom unit" -#: src/tables/settings/ErrorTable.tsx:31 -msgid "When" -msgstr "When" - -#: src/tables/settings/ErrorTable.tsx:41 -msgid "Error Information" -msgstr "Error Information" - #: src/tables/settings/ErrorTable.tsx:51 #~ msgid "Delete error report" #~ msgstr "Delete error report" -#: src/tables/settings/ErrorTable.tsx:53 +#: src/tables/settings/ErrorTable.tsx:67 +msgid "Traceback" +msgstr "Traceback" + +#: src/tables/settings/ErrorTable.tsx:103 +msgid "When" +msgstr "When" + +#: src/tables/settings/ErrorTable.tsx:113 +msgid "Error Information" +msgstr "Error Information" + +#: src/tables/settings/ErrorTable.tsx:123 msgid "Delete Error Report" msgstr "Delete Error Report" -#: src/tables/settings/ErrorTable.tsx:55 +#: src/tables/settings/ErrorTable.tsx:125 msgid "Are you sure you want to delete this error report?" msgstr "Are you sure you want to delete this error report?" -#: src/tables/settings/ErrorTable.tsx:57 +#: src/tables/settings/ErrorTable.tsx:127 msgid "Error report deleted" msgstr "Error report deleted" -#: src/tables/settings/ErrorTable.tsx:79 -#: src/tables/settings/FailedTasksTable.tsx:59 +#: src/tables/settings/ErrorTable.tsx:146 +#: src/tables/settings/FailedTasksTable.tsx:65 msgid "Error Details" msgstr "Error Details" -#: src/tables/settings/FailedTasksTable.tsx:26 -#: src/tables/settings/PendingTasksTable.tsx:19 +#: src/tables/settings/FailedTasksTable.tsx:32 +#: src/tables/settings/PendingTasksTable.tsx:23 #: src/tables/settings/ScheduledTasksTable.tsx:19 msgid "Task" msgstr "Task" -#: src/tables/settings/FailedTasksTable.tsx:32 -#: src/tables/settings/PendingTasksTable.tsx:24 +#: src/tables/settings/FailedTasksTable.tsx:38 +#: src/tables/settings/PendingTasksTable.tsx:28 msgid "Task ID" msgstr "Task ID" -#: src/tables/settings/FailedTasksTable.tsx:36 -#: src/tables/stock/StockItemTestResultTable.tsx:211 +#: src/tables/settings/FailedTasksTable.tsx:42 +#: src/tables/stock/StockItemTestResultTable.tsx:218 msgid "Started" msgstr "Started" -#: src/tables/settings/FailedTasksTable.tsx:42 +#: src/tables/settings/FailedTasksTable.tsx:48 msgid "Stopped" msgstr "Stopped" -#: src/tables/settings/FailedTasksTable.tsx:48 +#: src/tables/settings/FailedTasksTable.tsx:54 msgid "Attempts" msgstr "Attempts" +#: src/tables/settings/FailedTasksTable.tsx:92 +msgid "No Information" +msgstr "No Information" + +#: src/tables/settings/FailedTasksTable.tsx:93 +msgid "No error details are available for this task" +msgstr "No error details are available for this task" + #: src/tables/settings/GroupTable.tsx:90 msgid "Group with id {id} not found" msgstr "Group with id {id} not found" @@ -7393,42 +8633,34 @@ msgstr "Add group" msgid "Edit group" msgstr "Edit group" -#: src/tables/settings/ImportSessionTable.tsx:38 +#: src/tables/settings/ImportSessionTable.tsx:37 msgid "Delete Import Session" msgstr "Delete Import Session" -#: src/tables/settings/ImportSessionTable.tsx:44 +#: src/tables/settings/ImportSessionTable.tsx:43 #: src/tables/settings/ImportSessionTable.tsx:131 msgid "Create Import Session" msgstr "Create Import Session" -#: src/tables/settings/ImportSessionTable.tsx:69 +#: src/tables/settings/ImportSessionTable.tsx:68 msgid "Uploaded" msgstr "Uploaded" -#: src/tables/settings/ImportSessionTable.tsx:79 -msgid "Imported Rows" -msgstr "Imported Rows" - -#: src/tables/settings/ImportSessionTable.tsx:109 -#: src/tables/settings/TemplateTable.tsx:289 +#: src/tables/settings/ImportSessionTable.tsx:108 +#: src/tables/settings/TemplateTable.tsx:369 msgid "Model Type" msgstr "Model Type" -#: src/tables/settings/ImportSessionTable.tsx:110 -#: src/tables/settings/TemplateTable.tsx:290 +#: src/tables/settings/ImportSessionTable.tsx:109 +#: src/tables/settings/TemplateTable.tsx:370 msgid "Filter by target model type" msgstr "Filter by target model type" -#: src/tables/settings/ImportSessionTable.tsx:116 +#: src/tables/settings/ImportSessionTable.tsx:115 msgid "Filter by import session status" msgstr "Filter by import session status" -#: src/tables/settings/ImportSessionTable.tsx:122 -msgid "Filter by user" -msgstr "Filter by user" - -#: src/tables/settings/PendingTasksTable.tsx:38 +#: src/tables/settings/PendingTasksTable.tsx:42 msgid "Arguments" msgstr "Arguments" @@ -7456,13 +8688,17 @@ msgstr "Last Run" msgid "Next Run" msgstr "Next Run" -#: src/tables/settings/TemplateTable.tsx:85 -msgid "Template not found" -msgstr "Template not found" +#: src/tables/settings/StocktakeReportTable.tsx:28 +msgid "Report" +msgstr "Report" -#: src/tables/settings/TemplateTable.tsx:87 -msgid "An error occurred while fetching template details" -msgstr "An error occurred while fetching template details" +#: src/tables/settings/StocktakeReportTable.tsx:35 +msgid "Part Count" +msgstr "Part Count" + +#: src/tables/settings/StocktakeReportTable.tsx:58 +msgid "Delete Report" +msgstr "Delete Report" #: src/tables/settings/TemplateTable.tsx:120 #~ msgid "{templateTypeTranslation} with id {id} not found" @@ -7476,22 +8712,13 @@ msgstr "An error occurred while fetching template details" #~ msgid "actions" #~ msgstr "actions" -#: src/tables/settings/TemplateTable.tsx:177 -msgid "Modify" -msgstr "Modify" +#: src/tables/settings/TemplateTable.tsx:162 +msgid "Template not found" +msgstr "Template not found" -#: src/tables/settings/TemplateTable.tsx:178 -msgid "Modify template file" -msgstr "Modify template file" - -#: src/tables/settings/TemplateTable.tsx:234 -#: src/tables/settings/TemplateTable.tsx:302 -msgid "Edit Template" -msgstr "Edit Template" - -#: src/tables/settings/TemplateTable.tsx:242 -msgid "Delete template" -msgstr "Delete template" +#: src/tables/settings/TemplateTable.tsx:164 +msgid "An error occurred while fetching template details" +msgstr "An error occurred while fetching template details" #: src/tables/settings/TemplateTable.tsx:243 #~ msgid "Add new" @@ -7501,103 +8728,137 @@ msgstr "Delete template" #~ msgid "Create new" #~ msgstr "Create new" -#: src/tables/settings/TemplateTable.tsx:248 +#: src/tables/settings/TemplateTable.tsx:257 +msgid "Modify" +msgstr "Modify" + +#: src/tables/settings/TemplateTable.tsx:258 +msgid "Modify template file" +msgstr "Modify template file" + +#: src/tables/settings/TemplateTable.tsx:314 +#: src/tables/settings/TemplateTable.tsx:382 +msgid "Edit Template" +msgstr "Edit Template" + +#: src/tables/settings/TemplateTable.tsx:322 +msgid "Delete template" +msgstr "Delete template" + +#: src/tables/settings/TemplateTable.tsx:328 msgid "Add Template" msgstr "Add Template" -#: src/tables/settings/TemplateTable.tsx:261 +#: src/tables/settings/TemplateTable.tsx:341 msgid "Add template" msgstr "Add template" -#: src/tables/settings/TemplateTable.tsx:284 +#: src/tables/settings/TemplateTable.tsx:364 msgid "Filter by enabled status" msgstr "Filter by enabled status" -#: src/tables/settings/UserTable.tsx:82 +#: src/tables/settings/UserTable.tsx:81 msgid "User with id {id} not found" msgstr "User with id {id} not found" -#: src/tables/settings/UserTable.tsx:84 +#: src/tables/settings/UserTable.tsx:83 msgid "An error occurred while fetching user details" msgstr "An error occurred while fetching user details" -#: src/tables/settings/UserTable.tsx:102 +#: src/tables/settings/UserTable.tsx:101 msgid "Is Active" msgstr "Is Active" -#: src/tables/settings/UserTable.tsx:103 +#: src/tables/settings/UserTable.tsx:102 msgid "Designates whether this user should be treated as active. Unselect this instead of deleting accounts." msgstr "Designates whether this user should be treated as active. Unselect this instead of deleting accounts." -#: src/tables/settings/UserTable.tsx:107 +#: src/tables/settings/UserTable.tsx:106 msgid "Is Staff" msgstr "Is Staff" -#: src/tables/settings/UserTable.tsx:108 +#: src/tables/settings/UserTable.tsx:107 msgid "Designates whether the user can log into the django admin site." msgstr "Designates whether the user can log into the django admin site." -#: src/tables/settings/UserTable.tsx:112 +#: src/tables/settings/UserTable.tsx:111 msgid "Is Superuser" msgstr "Is Superuser" -#: src/tables/settings/UserTable.tsx:113 +#: src/tables/settings/UserTable.tsx:112 msgid "Designates that this user has all permissions without explicitly assigning them." msgstr "Designates that this user has all permissions without explicitly assigning them." -#: src/tables/settings/UserTable.tsx:123 +#: src/tables/settings/UserTable.tsx:122 msgid "You cannot edit the rights for the currently logged-in user." msgstr "You cannot edit the rights for the currently logged-in user." -#: src/tables/settings/UserTable.tsx:154 +#: src/tables/settings/UserTable.tsx:153 msgid "No groups" msgstr "No groups" -#: src/tables/settings/UserTable.tsx:245 +#: src/tables/settings/UserTable.tsx:244 msgid "Delete user" msgstr "Delete user" -#: src/tables/settings/UserTable.tsx:246 +#: src/tables/settings/UserTable.tsx:245 msgid "User deleted" msgstr "User deleted" -#: src/tables/settings/UserTable.tsx:248 +#: src/tables/settings/UserTable.tsx:247 msgid "Are you sure you want to delete this user?" msgstr "Are you sure you want to delete this user?" -#: src/tables/settings/UserTable.tsx:254 -#: src/tables/settings/UserTable.tsx:272 +#: src/tables/settings/UserTable.tsx:253 +#: src/tables/settings/UserTable.tsx:271 msgid "Add user" msgstr "Add user" -#: src/tables/settings/UserTable.tsx:262 +#: src/tables/settings/UserTable.tsx:261 msgid "Added user" msgstr "Added user" -#: src/tables/settings/UserTable.tsx:285 +#: src/tables/settings/UserTable.tsx:284 msgid "Show active users" msgstr "Show active users" -#: src/tables/settings/UserTable.tsx:289 +#: src/tables/settings/UserTable.tsx:288 msgid "Staff" msgstr "Staff" -#: src/tables/settings/UserTable.tsx:290 +#: src/tables/settings/UserTable.tsx:289 msgid "Show staff users" msgstr "Show staff users" #: src/tables/settings/UserTable.tsx:294 -msgid "Superuser" -msgstr "Superuser" - -#: src/tables/settings/UserTable.tsx:295 msgid "Show superusers" msgstr "Show superusers" -#: src/tables/settings/UserTable.tsx:305 +#: src/tables/settings/UserTable.tsx:304 msgid "Edit user" msgstr "Edit user" +#: src/tables/stock/InstalledItemsTable.tsx:37 +#: src/tables/stock/InstalledItemsTable.tsx:90 +msgid "Install Item" +msgstr "Install Item" + +#: src/tables/stock/InstalledItemsTable.tsx:39 +msgid "Item installed" +msgstr "Item installed" + +#: src/tables/stock/InstalledItemsTable.tsx:50 +msgid "Uninstall Item" +msgstr "Uninstall Item" + +#: src/tables/stock/InstalledItemsTable.tsx:52 +msgid "Item uninstalled" +msgstr "Item uninstalled" + +#: src/tables/stock/InstalledItemsTable.tsx:108 +msgid "Uninstall stock item" +msgstr "Uninstall stock item" + #: src/tables/stock/LocationTypesTable.tsx:39 #: src/tables/stock/LocationTypesTable.tsx:109 msgid "Add Location Type" @@ -7615,276 +8876,272 @@ msgstr "Delete Location Type" msgid "Icon" msgstr "Icon" -#: src/tables/stock/StockItemTable.tsx:101 +#: src/tables/stock/StockItemTable.tsx:90 msgid "This stock item is in production" msgstr "This stock item is in production" -#: src/tables/stock/StockItemTable.tsx:110 +#: src/tables/stock/StockItemTable.tsx:97 msgid "This stock item has been assigned to a sales order" msgstr "This stock item has been assigned to a sales order" -#: src/tables/stock/StockItemTable.tsx:119 +#: src/tables/stock/StockItemTable.tsx:104 msgid "This stock item has been assigned to a customer" msgstr "This stock item has been assigned to a customer" -#: src/tables/stock/StockItemTable.tsx:128 +#: src/tables/stock/StockItemTable.tsx:111 msgid "This stock item is installed in another stock item" msgstr "This stock item is installed in another stock item" -#: src/tables/stock/StockItemTable.tsx:137 +#: src/tables/stock/StockItemTable.tsx:118 msgid "This stock item has been consumed by a build order" msgstr "This stock item has been consumed by a build order" -#: src/tables/stock/StockItemTable.tsx:146 +#: src/tables/stock/StockItemTable.tsx:125 +msgid "This stock item is unavailable" +msgstr "This stock item is unavailable" + +#: src/tables/stock/StockItemTable.tsx:134 msgid "This stock item has expired" msgstr "This stock item has expired" -#: src/tables/stock/StockItemTable.tsx:150 +#: src/tables/stock/StockItemTable.tsx:138 msgid "This stock item is stale" msgstr "This stock item is stale" -#: src/tables/stock/StockItemTable.tsx:161 +#: src/tables/stock/StockItemTable.tsx:150 msgid "This stock item is fully allocated" msgstr "This stock item is fully allocated" -#: src/tables/stock/StockItemTable.tsx:168 +#: src/tables/stock/StockItemTable.tsx:157 msgid "This stock item is partially allocated" msgstr "This stock item is partially allocated" -#: src/tables/stock/StockItemTable.tsx:196 +#: src/tables/stock/StockItemTable.tsx:185 msgid "This stock item has been depleted" msgstr "This stock item has been depleted" -#: src/tables/stock/StockItemTable.tsx:232 +#: src/tables/stock/StockItemTable.tsx:280 msgid "Stocktake Date" msgstr "Stocktake Date" -#: src/tables/stock/StockItemTable.tsx:236 -msgid "Expiry Date" -msgstr "Expiry Date" - -#: src/tables/stock/StockItemTable.tsx:260 -msgid "Stock Value" -msgstr "Stock Value" - -#: src/tables/stock/StockItemTable.tsx:290 +#: src/tables/stock/StockItemTable.tsx:294 msgid "Show stock for active parts" msgstr "Show stock for active parts" -#: src/tables/stock/StockItemTable.tsx:295 +#: src/tables/stock/StockItemTable.tsx:299 msgid "Filter by stock status" msgstr "Filter by stock status" #: src/tables/stock/StockItemTable.tsx:301 -msgid "Show stock for assmebled parts" -msgstr "Show stock for assmebled parts" +#~ msgid "Show stock for assmebled parts" +#~ msgstr "Show stock for assmebled parts" -#: src/tables/stock/StockItemTable.tsx:306 +#: src/tables/stock/StockItemTable.tsx:305 +msgid "Show stock for assembled parts" +msgstr "Show stock for assembled parts" + +#: src/tables/stock/StockItemTable.tsx:310 msgid "Show items which have been allocated" msgstr "Show items which have been allocated" -#: src/tables/stock/StockItemTable.tsx:311 +#: src/tables/stock/StockItemTable.tsx:315 msgid "Show items which are available" msgstr "Show items which are available" -#: src/tables/stock/StockItemTable.tsx:315 +#: src/tables/stock/StockItemTable.tsx:319 #: src/tables/stock/StockLocationTable.tsx:44 msgid "Include Sublocations" msgstr "Include Sublocations" -#: src/tables/stock/StockItemTable.tsx:316 +#: src/tables/stock/StockItemTable.tsx:320 msgid "Include stock in sublocations" msgstr "Include stock in sublocations" -#: src/tables/stock/StockItemTable.tsx:320 +#: src/tables/stock/StockItemTable.tsx:324 msgid "Depleted" msgstr "Depleted" -#: src/tables/stock/StockItemTable.tsx:321 +#: src/tables/stock/StockItemTable.tsx:325 msgid "Show depleted stock items" msgstr "Show depleted stock items" -#: src/tables/stock/StockItemTable.tsx:326 +#: src/tables/stock/StockItemTable.tsx:330 msgid "Show items which are in stock" msgstr "Show items which are in stock" -#: src/tables/stock/StockItemTable.tsx:331 +#: src/tables/stock/StockItemTable.tsx:335 msgid "Show items which are in production" msgstr "Show items which are in production" -#: src/tables/stock/StockItemTable.tsx:336 +#: src/tables/stock/StockItemTable.tsx:340 msgid "Include stock items for variant parts" msgstr "Include stock items for variant parts" -#: src/tables/stock/StockItemTable.tsx:341 +#: src/tables/stock/StockItemTable.tsx:345 msgid "Show stock items which are installed in other items" msgstr "Show stock items which are installed in other items" -#: src/tables/stock/StockItemTable.tsx:345 +#: src/tables/stock/StockItemTable.tsx:349 msgid "Sent to Customer" msgstr "Sent to Customer" -#: src/tables/stock/StockItemTable.tsx:346 +#: src/tables/stock/StockItemTable.tsx:350 msgid "Show items which have been sent to a customer" msgstr "Show items which have been sent to a customer" -#: src/tables/stock/StockItemTable.tsx:350 +#: src/tables/stock/StockItemTable.tsx:354 msgid "Is Serialized" msgstr "Is Serialized" -#: src/tables/stock/StockItemTable.tsx:351 +#: src/tables/stock/StockItemTable.tsx:355 msgid "Show items which have a serial number" msgstr "Show items which have a serial number" -#: src/tables/stock/StockItemTable.tsx:358 +#: src/tables/stock/StockItemTable.tsx:362 msgid "Has Batch Code" msgstr "Has Batch Code" -#: src/tables/stock/StockItemTable.tsx:359 +#: src/tables/stock/StockItemTable.tsx:363 msgid "Show items which have a batch code" msgstr "Show items which have a batch code" -#: src/tables/stock/StockItemTable.tsx:365 +#: src/tables/stock/StockItemTable.tsx:369 msgid "Show tracked items" msgstr "Show tracked items" -#: src/tables/stock/StockItemTable.tsx:369 +#: src/tables/stock/StockItemTable.tsx:373 msgid "Has Purchase Price" msgstr "Has Purchase Price" -#: src/tables/stock/StockItemTable.tsx:370 +#: src/tables/stock/StockItemTable.tsx:374 msgid "Show items which have a purchase price" msgstr "Show items which have a purchase price" -#: src/tables/stock/StockItemTable.tsx:378 +#: src/tables/stock/StockItemTable.tsx:382 msgid "External Location" msgstr "External Location" -#: src/tables/stock/StockItemTable.tsx:379 +#: src/tables/stock/StockItemTable.tsx:383 msgid "Show items in an external location" msgstr "Show items in an external location" -#: src/tables/stock/StockItemTable.tsx:451 +#: src/tables/stock/StockItemTable.tsx:456 msgid "Add a new stock item" msgstr "Add a new stock item" -#: src/tables/stock/StockItemTable.tsx:460 +#: src/tables/stock/StockItemTable.tsx:465 msgid "Remove some quantity from a stock item" msgstr "Remove some quantity from a stock item" -#: src/tables/stock/StockItemTable.tsx:482 +#: src/tables/stock/StockItemTable.tsx:487 msgid "Move Stock items to new locations" msgstr "Move Stock items to new locations" -#: src/tables/stock/StockItemTable.tsx:489 +#: src/tables/stock/StockItemTable.tsx:494 msgid "Change stock status" msgstr "Change stock status" -#: src/tables/stock/StockItemTable.tsx:491 +#: src/tables/stock/StockItemTable.tsx:496 msgid "Change the status of stock items" msgstr "Change the status of stock items" -#: src/tables/stock/StockItemTable.tsx:498 +#: src/tables/stock/StockItemTable.tsx:503 msgid "Merge stock" msgstr "Merge stock" -#: src/tables/stock/StockItemTable.tsx:500 +#: src/tables/stock/StockItemTable.tsx:505 msgid "Merge stock items" msgstr "Merge stock items" -#: src/tables/stock/StockItemTable.tsx:509 -#: src/tables/stock/StockItemTable.tsx:516 +#: src/tables/stock/StockItemTable.tsx:514 +#: src/tables/stock/StockItemTable.tsx:521 msgid "Order new stock" msgstr "Order new stock" -#: src/tables/stock/StockItemTable.tsx:514 +#: src/tables/stock/StockItemTable.tsx:519 msgid "Assign to customer" msgstr "Assign to customer" -#: src/tables/stock/StockItemTable.tsx:523 +#: src/tables/stock/StockItemTable.tsx:528 msgid "Delete stock" msgstr "Delete stock" -#: src/tables/stock/StockItemTable.tsx:525 -msgid "Delete stock items" -msgstr "Delete stock items" +#: src/tables/stock/StockItemTable.tsx:528 +#~ msgid "Delete stock items" +#~ msgstr "Delete stock items" -#: src/tables/stock/StockItemTestResultTable.tsx:131 +#: src/tables/stock/StockItemTestResultTable.tsx:137 msgid "Test" msgstr "Test" -#: src/tables/stock/StockItemTestResultTable.tsx:157 +#: src/tables/stock/StockItemTestResultTable.tsx:163 msgid "Test result for installed stock item" msgstr "Test result for installed stock item" -#: src/tables/stock/StockItemTestResultTable.tsx:168 -msgid "Result" -msgstr "Result" - -#: src/tables/stock/StockItemTestResultTable.tsx:190 +#: src/tables/stock/StockItemTestResultTable.tsx:196 msgid "Attachment" msgstr "Attachment" -#: src/tables/stock/StockItemTestResultTable.tsx:206 +#: src/tables/stock/StockItemTestResultTable.tsx:212 msgid "Test station" msgstr "Test station" -#: src/tables/stock/StockItemTestResultTable.tsx:226 +#: src/tables/stock/StockItemTestResultTable.tsx:234 msgid "Finished" msgstr "Finished" -#: src/tables/stock/StockItemTestResultTable.tsx:268 -#: src/tables/stock/StockItemTestResultTable.tsx:339 +#: src/tables/stock/StockItemTestResultTable.tsx:286 +#: src/tables/stock/StockItemTestResultTable.tsx:357 msgid "Edit Test Result" msgstr "Edit Test Result" -#: src/tables/stock/StockItemTestResultTable.tsx:270 +#: src/tables/stock/StockItemTestResultTable.tsx:288 msgid "Test result updated" msgstr "Test result updated" -#: src/tables/stock/StockItemTestResultTable.tsx:276 -#: src/tables/stock/StockItemTestResultTable.tsx:348 +#: src/tables/stock/StockItemTestResultTable.tsx:294 +#: src/tables/stock/StockItemTestResultTable.tsx:366 msgid "Delete Test Result" msgstr "Delete Test Result" -#: src/tables/stock/StockItemTestResultTable.tsx:278 +#: src/tables/stock/StockItemTestResultTable.tsx:296 msgid "Test result deleted" msgstr "Test result deleted" -#: src/tables/stock/StockItemTestResultTable.tsx:292 +#: src/tables/stock/StockItemTestResultTable.tsx:310 msgid "Test Passed" msgstr "Test Passed" -#: src/tables/stock/StockItemTestResultTable.tsx:293 +#: src/tables/stock/StockItemTestResultTable.tsx:311 msgid "Test result has been recorded" msgstr "Test result has been recorded" -#: src/tables/stock/StockItemTestResultTable.tsx:300 +#: src/tables/stock/StockItemTestResultTable.tsx:318 msgid "Failed to record test result" msgstr "Failed to record test result" -#: src/tables/stock/StockItemTestResultTable.tsx:317 +#: src/tables/stock/StockItemTestResultTable.tsx:335 msgid "Pass Test" msgstr "Pass Test" -#: src/tables/stock/StockItemTestResultTable.tsx:366 +#: src/tables/stock/StockItemTestResultTable.tsx:384 msgid "Show results for required tests" msgstr "Show results for required tests" -#: src/tables/stock/StockItemTestResultTable.tsx:370 +#: src/tables/stock/StockItemTestResultTable.tsx:388 msgid "Include Installed" msgstr "Include Installed" -#: src/tables/stock/StockItemTestResultTable.tsx:371 +#: src/tables/stock/StockItemTestResultTable.tsx:389 msgid "Show results for installed stock items" msgstr "Show results for installed stock items" -#: src/tables/stock/StockItemTestResultTable.tsx:375 -#: src/tables/stock/TestStatisticsTable.tsx:74 +#: src/tables/stock/StockItemTestResultTable.tsx:393 +#: src/tables/stock/TestStatisticsTable.tsx:62 msgid "Passed" msgstr "Passed" -#: src/tables/stock/StockItemTestResultTable.tsx:376 +#: src/tables/stock/StockItemTestResultTable.tsx:394 msgid "Show only passed tests" msgstr "Show only passed tests" @@ -7917,28 +9174,32 @@ msgid "Filter by location type" msgstr "Filter by location type" #: src/tables/stock/StockLocationTable.tsx:107 -#: src/tables/stock/StockLocationTable.tsx:133 +#: src/tables/stock/StockLocationTable.tsx:134 msgid "Add Stock Location" msgstr "Add Stock Location" -#: src/tables/stock/StockTrackingTable.tsx:64 +#: src/tables/stock/StockTrackingTable.tsx:68 msgid "Added" msgstr "Added" -#: src/tables/stock/StockTrackingTable.tsx:69 +#: src/tables/stock/StockTrackingTable.tsx:73 msgid "Removed" msgstr "Removed" #: src/tables/stock/StockTrackingTable.tsx:198 +msgid "Details" +msgstr "Details" + +#: src/tables/stock/StockTrackingTable.tsx:213 msgid "No user information" msgstr "No user information" -#: src/tables/stock/TestStatisticsTable.tsx:46 -#: src/tables/stock/TestStatisticsTable.tsx:76 +#: src/tables/stock/TestStatisticsTable.tsx:34 +#: src/tables/stock/TestStatisticsTable.tsx:64 msgid "Total" msgstr "Total" -#: src/tables/stock/TestStatisticsTable.tsx:75 +#: src/tables/stock/TestStatisticsTable.tsx:63 msgid "Failed" msgstr "Failed" diff --git a/src/frontend/src/locales/es/messages.po b/src/frontend/src/locales/es/messages.po index a4fe509bd9..034e93e4e0 100644 --- a/src/frontend/src/locales/es/messages.po +++ b/src/frontend/src/locales/es/messages.po @@ -8,15 +8,15 @@ msgstr "" "Language: es\n" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"PO-Revision-Date: 2024-08-20 19:49\n" +"PO-Revision-Date: 2024-11-04 03:14\n" "Last-Translator: \n" "Language-Team: Spanish\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Crowdin-Project: inventree\n" "X-Crowdin-Project-ID: 452300\n" "X-Crowdin-Language: es-ES\n" -"X-Crowdin-File: /[inventree.InvenTree] l10/src/frontend/src/locales/en/messages.po\n" -"X-Crowdin-File-ID: 205\n" +"X-Crowdin-File: /src/frontend/src/locales/en/messages.po\n" +"X-Crowdin-File-ID: 252\n" #: src/components/Boundary.tsx:12 msgid "Error rendering component" @@ -27,8 +27,8 @@ msgid "An error occurred while rendering this component. Refer to the console fo msgstr "Ocurrió un error mientras se renderizaba este componente. Consulte la consola para más información." #: src/components/DashboardItemProxy.tsx:34 -msgid "Title" -msgstr "Título" +#~ msgid "Title" +#~ msgstr "Title" #: src/components/buttons/AdminButton.tsx:80 msgid "Open in admin interface" @@ -38,82 +38,99 @@ msgstr "Abrir en interfaz de administración" #~ msgid "Copy to clipboard" #~ msgstr "Copy to clipboard" -#: src/components/buttons/CopyButton.tsx:24 +#: src/components/buttons/CopyButton.tsx:29 msgid "Copied" msgstr "Copiado" -#: src/components/buttons/CopyButton.tsx:24 +#: src/components/buttons/CopyButton.tsx:29 msgid "Copy" msgstr "Copiar" -#: src/components/buttons/PrintingActions.tsx:93 +#: src/components/buttons/PrintingActions.tsx:97 msgid "Print Label" msgstr "Imprimir etiqueta" -#: src/components/buttons/PrintingActions.tsx:99 +#: src/components/buttons/PrintingActions.tsx:103 msgid "Print" -msgstr "" +msgstr "Imprimir" -#: src/components/buttons/PrintingActions.tsx:100 +#: src/components/buttons/PrintingActions.tsx:104 msgid "Label printing completed successfully" msgstr "Impresión de etiqueta completada con éxito" -#: src/components/buttons/PrintingActions.tsx:106 -#: src/components/buttons/PrintingActions.tsx:144 -#: src/components/editors/NotesEditor.tsx:65 -#: src/components/editors/NotesEditor.tsx:165 -#: src/components/forms/fields/ApiFormField.tsx:319 +#: src/components/buttons/PrintingActions.tsx:110 +#: src/components/buttons/PrintingActions.tsx:148 +#: src/components/editors/NotesEditor.tsx:73 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:154 +#: src/components/forms/fields/ApiFormField.tsx:328 +#: src/components/forms/fields/TableField.tsx:43 #: src/components/importer/ImportDataSelector.tsx:187 -#: src/components/importer/ImporterColumnSelector.tsx:207 +#: src/components/importer/ImporterColumnSelector.tsx:210 #: src/components/modals/LicenseModal.tsx:75 -#: src/components/nav/SearchDrawer.tsx:448 +#: src/components/nav/SearchDrawer.tsx:458 +#: src/components/render/ModelType.tsx:290 #: src/pages/ErrorPage.tsx:11 -#: src/pages/part/PartPricingPanel.tsx:67 -#: src/tables/InvenTreeTable.tsx:495 +#: src/pages/part/PartPricingPanel.tsx:71 +#: src/tables/InvenTreeTable.tsx:481 #: src/tables/bom/BomTable.tsx:450 -#: src/tables/stock/StockItemTestResultTable.tsx:299 +#: src/tables/stock/StockItemTestResultTable.tsx:317 msgid "Error" msgstr "Error" -#: src/components/buttons/PrintingActions.tsx:107 +#: src/components/buttons/PrintingActions.tsx:111 msgid "The label could not be generated" msgstr "La etiqueta no pudo ser generada" -#: src/components/buttons/PrintingActions.tsx:122 +#: src/components/buttons/PrintingActions.tsx:126 msgid "Print Report" msgstr "Imprimir un informe" -#: src/components/buttons/PrintingActions.tsx:138 +#: src/components/buttons/PrintingActions.tsx:142 msgid "Generate" -msgstr "" +msgstr "Generar" -#: src/components/buttons/PrintingActions.tsx:139 +#: src/components/buttons/PrintingActions.tsx:143 msgid "Report printing completed successfully" msgstr "Impresión de informe completada con éxito" -#: src/components/buttons/PrintingActions.tsx:145 +#: src/components/buttons/PrintingActions.tsx:149 msgid "The report could not be generated" msgstr "El informe no ha podido ser creado" -#: src/components/buttons/PrintingActions.tsx:173 +#: src/components/buttons/PrintingActions.tsx:177 msgid "Printing Actions" msgstr "Acciones de impresión" -#: src/components/buttons/PrintingActions.tsx:178 +#: src/components/buttons/PrintingActions.tsx:182 msgid "Print Labels" msgstr "Imprimir etiquetas" -#: src/components/buttons/PrintingActions.tsx:184 +#: src/components/buttons/PrintingActions.tsx:188 msgid "Print Reports" msgstr "Imprimir reportes" +#: src/components/buttons/RemoveRowButton.tsx:8 +msgid "Remove this row" +msgstr "Eliminar esta fila" + #: src/components/buttons/ScanButton.tsx:15 -msgid "Scan QR code" -msgstr "Escanear código QR" +#: src/components/nav/NavigationDrawer.tsx:117 +#: src/forms/PurchaseOrderForms.tsx:379 +#: src/forms/PurchaseOrderForms.tsx:473 +msgid "Scan Barcode" +msgstr "" + +#: src/components/buttons/ScanButton.tsx:15 +#~ msgid "Scan QR code" +#~ msgstr "Scan QR code" #: src/components/buttons/ScanButton.tsx:20 -msgid "Open QR code scanner" -msgstr "Abrir escáner de código QR" +msgid "Open Barcode Scanner" +msgstr "" + +#: src/components/buttons/ScanButton.tsx:20 +#~ msgid "Open QR code scanner" +#~ msgstr "Open QR code scanner" #: src/components/buttons/SpotlightButton.tsx:14 msgid "Open spotlight" @@ -121,92 +138,354 @@ msgstr "Abrir spotlight" #: src/components/buttons/YesNoButton.tsx:16 msgid "Pass" -msgstr "" +msgstr "Aceptar" #: src/components/buttons/YesNoButton.tsx:17 msgid "Fail" msgstr "Fallo" #: src/components/buttons/YesNoButton.tsx:33 -#: src/tables/Filter.tsx:52 +#: src/tables/Filter.tsx:61 msgid "Yes" msgstr "Sí" #: src/components/buttons/YesNoButton.tsx:33 -#: src/tables/Filter.tsx:53 +#: src/tables/Filter.tsx:62 msgid "No" msgstr "No" -#: src/components/details/Details.tsx:301 +#: src/components/dashboard/DashboardLayout.tsx:286 +msgid "No Widgets Selected" +msgstr "" + +#: src/components/dashboard/DashboardLayout.tsx:289 +msgid "Use the menu to add widgets to the dashboard" +msgstr "" + +#: src/components/dashboard/DashboardMenu.tsx:59 +#: src/components/dashboard/DashboardMenu.tsx:126 +msgid "Accept Layout" +msgstr "" + +#: src/components/dashboard/DashboardMenu.tsx:91 +#: src/components/nav/NavigationDrawer.tsx:71 +#: src/defaults/actions.tsx:17 +#: src/defaults/links.tsx:9 +#: src/pages/Index/Settings/UserSettings.tsx:47 +msgid "Dashboard" +msgstr "" + +#: src/components/dashboard/DashboardMenu.tsx:99 +msgid "Edit Layout" +msgstr "" + +#: src/components/dashboard/DashboardMenu.tsx:108 +msgid "Add Widget" +msgstr "" + +#: src/components/dashboard/DashboardMenu.tsx:117 +msgid "Remove Widgets" +msgstr "" + +#: src/components/dashboard/DashboardWidget.tsx:65 +msgid "Remove this widget from the dashboard" +msgstr "" + +#: src/components/dashboard/DashboardWidgetDrawer.tsx:77 +msgid "Filter dashboard widgets" +msgstr "" + +#: src/components/dashboard/DashboardWidgetDrawer.tsx:98 +msgid "Add this widget to the dashboard" +msgstr "" + +#: src/components/dashboard/DashboardWidgetDrawer.tsx:123 +msgid "No Widgets Available" +msgstr "" + +#: src/components/dashboard/DashboardWidgetDrawer.tsx:124 +msgid "There are no more widgets available for the dashboard" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:19 +msgid "Subscribed Parts" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:20 +msgid "Show the number of parts which you have subscribed to" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:26 +msgid "Subscribed Categories" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:27 +msgid "Show the number of part categories which you have subscribed to" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:35 +#: src/pages/part/PartSchedulingDetail.tsx:304 +#: src/tables/part/PartTable.tsx:238 +msgid "Low Stock" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:37 +msgid "Show the number of parts which are low on stock" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:43 +msgid "Expired Stock Items" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:45 +msgid "Show the number of stock items which have expired" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:51 +msgid "Stale Stock Items" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:53 +msgid "Show the number of stock items which are stale" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:59 +msgid "Active Build Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:61 +msgid "Show the number of build orders which are currently active" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:66 +msgid "Overdue Build Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:68 +msgid "Show the number of build orders which are overdue" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:73 +msgid "Assigned Build Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:75 +msgid "Show the number of build orders which are assigned to you" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:80 +msgid "Active Sales Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:82 +msgid "Show the number of sales orders which are currently active" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:87 +msgid "Overdue Sales Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:89 +msgid "Show the number of sales orders which are overdue" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:94 +msgid "Assigned Sales Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:96 +msgid "Show the number of sales orders which are assigned to you" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:101 +msgid "Active Purchase Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:103 +msgid "Show the number of purchase orders which are currently active" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:108 +msgid "Overdue Purchase Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:110 +msgid "Show the number of purchase orders which are overdue" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:115 +msgid "Assigned Purchase Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:117 +msgid "Show the number of purchase orders which are assigned to you" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:122 +msgid "Active Return Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:124 +msgid "Show the number of return orders which are currently active" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:129 +msgid "Overdue Return Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:131 +msgid "Show the number of return orders which are overdue" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:136 +msgid "Assigned Return Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:138 +msgid "Show the number of return orders which are assigned to you" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:149 +#: src/components/dashboard/widgets/GetStartedWidget.tsx:15 +#: src/defaults/links.tsx:38 +msgid "Getting Started" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:150 +#: src/defaults/links.tsx:41 +msgid "Getting started with InvenTree" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:157 +#: src/components/dashboard/widgets/NewsWidget.tsx:123 +msgid "News Updates" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:158 +msgid "The latest news from InvenTree" +msgstr "" + +#: src/components/dashboard/widgets/ColorToggleWidget.tsx:18 +#: src/components/nav/MainMenu.tsx:77 +msgid "Change Color Mode" +msgstr "" + +#: src/components/dashboard/widgets/ColorToggleWidget.tsx:23 +msgid "Change the color mode of the user interface" +msgstr "" + +#: src/components/dashboard/widgets/LanguageSelectWidget.tsx:18 +msgid "Change Language" +msgstr "" + +#: src/components/dashboard/widgets/LanguageSelectWidget.tsx:23 +msgid "Change the language of the user interface" +msgstr "" + +#: src/components/dashboard/widgets/NewsWidget.tsx:61 +#: src/components/nav/NotificationDrawer.tsx:88 +#: src/pages/Notifications.tsx:73 +msgid "Mark as read" +msgstr "" + +#: src/components/dashboard/widgets/NewsWidget.tsx:115 +msgid "Requires Superuser" +msgstr "" + +#: src/components/dashboard/widgets/NewsWidget.tsx:116 +msgid "This widget requires superuser permissions" +msgstr "" + +#: src/components/dashboard/widgets/NewsWidget.tsx:133 +msgid "No News" +msgstr "" + +#: src/components/dashboard/widgets/NewsWidget.tsx:134 +msgid "There are no unread news items" +msgstr "" + +#: src/components/details/Details.tsx:300 msgid "No name defined" msgstr "No hay nombre definido" -#: src/components/details/DetailsImage.tsx:65 +#: src/components/details/DetailsImage.tsx:69 msgid "Remove Image" msgstr "Eliminar imagen" -#: src/components/details/DetailsImage.tsx:68 +#: src/components/details/DetailsImage.tsx:72 msgid "Remove the associated image from this item?" msgstr "¿Eliminar la imagen asociada de este elemento?" -#: src/components/details/DetailsImage.tsx:71 -#: src/forms/StockForms.tsx:533 +#: src/components/details/DetailsImage.tsx:75 +#: src/forms/StockForms.tsx:651 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:199 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:306 -#: src/pages/stock/StockDetail.tsx:526 +#: src/pages/stock/StockDetail.tsx:690 msgid "Remove" msgstr "Eliminar" -#: src/components/details/DetailsImage.tsx:71 -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:158 -#: src/components/items/ActionDropdown.tsx:215 -#: src/components/items/ActionDropdown.tsx:216 -#: src/contexts/ThemeContext.tsx:43 +#: src/components/details/DetailsImage.tsx:75 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:184 +#: src/components/items/ActionDropdown.tsx:268 +#: src/components/items/ActionDropdown.tsx:269 +#: src/contexts/ThemeContext.tsx:45 #: src/hooks/UseForm.tsx:40 -#: src/tables/FilterSelectDrawer.tsx:205 -#: src/tables/build/BuildOutputTable.tsx:286 +#: src/tables/FilterSelectDrawer.tsx:241 +#: src/tables/RowActions.tsx:59 +#: src/tables/build/BuildOutputTable.tsx:434 msgid "Cancel" msgstr "Cancelar" -#: src/components/details/DetailsImage.tsx:97 +#: src/components/details/DetailsImage.tsx:101 msgid "Drag and drop to upload" msgstr "Arrastrar y soltar para subir" -#: src/components/details/DetailsImage.tsx:100 +#: src/components/details/DetailsImage.tsx:104 msgid "Click to select file(s)" msgstr "Clic para seleccionar archivo(s)" -#: src/components/details/DetailsImage.tsx:226 +#: src/components/details/DetailsImage.tsx:230 msgid "Clear" msgstr "Borrar" -#: src/components/details/DetailsImage.tsx:232 -#: src/components/forms/ApiForm.tsx:627 -#: src/contexts/ThemeContext.tsx:43 -#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:60 +#: src/components/details/DetailsImage.tsx:236 +#: src/components/forms/ApiForm.tsx:660 +#: src/contexts/ThemeContext.tsx:45 msgid "Submit" msgstr "Enviar" -#: src/components/details/DetailsImage.tsx:272 +#: src/components/details/DetailsImage.tsx:280 msgid "Select from existing images" msgstr "Seleccionar de imágenes existentes" -#: src/components/details/DetailsImage.tsx:280 +#: src/components/details/DetailsImage.tsx:288 msgid "Select Image" msgstr "Seleccionar imagen" -#: src/components/details/DetailsImage.tsx:292 +#: src/components/details/DetailsImage.tsx:304 +msgid "Download remote image" +msgstr "" + +#: src/components/details/DetailsImage.tsx:319 msgid "Upload new image" msgstr "Cargar nueva imagen" -#: src/components/details/DetailsImage.tsx:299 +#: src/components/details/DetailsImage.tsx:326 msgid "Upload Image" msgstr "Cargar Imagen" -#: src/components/details/DetailsImage.tsx:312 +#: src/components/details/DetailsImage.tsx:339 msgid "Delete image" msgstr "Borrar imagen" +#: src/components/details/DetailsImage.tsx:373 +msgid "Download Image" +msgstr "" + +#: src/components/details/DetailsImage.tsx:378 +msgid "Image downloaded successfully" +msgstr "" + #: src/components/details/PartIcons.tsx:43 #~ msgid "Part is a template part (variants can be made from this part)" #~ msgstr "Part is a template part (variants can be made from this part)" @@ -235,36 +514,57 @@ msgstr "Borrar imagen" #~ msgid "Part is virtual (not a physical part)" #~ msgstr "Part is virtual (not a physical part)" -#: src/components/editors/NotesEditor.tsx:66 +#: src/components/editors/NotesEditor.tsx:74 msgid "Image upload failed" msgstr "Error al cargar la imagen" -#: src/components/editors/NotesEditor.tsx:156 -#: src/components/forms/ApiForm.tsx:467 +#: src/components/editors/NotesEditor.tsx:83 +#: src/components/editors/NotesEditor.tsx:119 +#: src/components/forms/ApiForm.tsx:475 #: src/tables/bom/BomTable.tsx:441 msgid "Success" msgstr "Completado" -#: src/components/editors/NotesEditor.tsx:157 +#: src/components/editors/NotesEditor.tsx:84 +msgid "Image uploaded successfully" +msgstr "" + +#: src/components/editors/NotesEditor.tsx:120 msgid "Notes saved successfully" msgstr "Notas guardadas correctamente" -#: src/components/editors/NotesEditor.tsx:166 +#: src/components/editors/NotesEditor.tsx:131 msgid "Failed to save notes" msgstr "Error al guardar las notas" -#: src/components/editors/NotesEditor.tsx:198 -msgid "Preview Notes" -msgstr "Previsualizar notas" +#: src/components/editors/NotesEditor.tsx:134 +msgid "Error Saving Notes" +msgstr "" -#: src/components/editors/NotesEditor.tsx:198 -msgid "Edit Notes" -msgstr "Editar notas" +#: src/components/editors/NotesEditor.tsx:151 +#~ msgid "Disable Editing" +#~ msgstr "Disable Editing" -#: src/components/editors/NotesEditor.tsx:212 +#: src/components/editors/NotesEditor.tsx:154 msgid "Save Notes" msgstr "Guardar notas" +#: src/components/editors/NotesEditor.tsx:173 +msgid "Close Editor" +msgstr "" + +#: src/components/editors/NotesEditor.tsx:180 +msgid "Enable Editing" +msgstr "" + +#: src/components/editors/NotesEditor.tsx:198 +#~ msgid "Preview Notes" +#~ msgstr "Preview Notes" + +#: src/components/editors/NotesEditor.tsx:198 +#~ msgid "Edit Notes" +#~ msgstr "Edit Notes" + #: src/components/editors/TemplateEditor/CodeEditor/index.tsx:9 msgid "Code" msgstr "Código" @@ -281,40 +581,44 @@ msgstr "Vista previa no disponible, haga clic en \"Recargar vista previa\"." msgid "PDF Preview" msgstr "Vista previa PDF" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:104 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:115 msgid "Error loading template" msgstr "Error al cargar la plantilla" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:116 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:127 msgid "Error saving template" msgstr "Error al guardar la plantilla" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:146 -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:274 -msgid "Save & Reload Preview" -msgstr "Guardar y recargar vista previa" - -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:151 -msgid "Are you sure you want to Save & Reload the preview?" -msgstr "¿Está seguro que desea guardar y recargar la vista previa?" - #: src/components/editors/TemplateEditor/TemplateEditor.tsx:151 #~ msgid "Save & Reload preview?" #~ msgstr "Save & Reload preview?" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:153 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:155 +msgid "Could not load the template from the server." +msgstr "" + +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:172 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:303 +msgid "Save & Reload Preview" +msgstr "Guardar y recargar vista previa" + +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:177 +msgid "Are you sure you want to Save & Reload the preview?" +msgstr "¿Está seguro que desea guardar y recargar la vista previa?" + +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:179 msgid "To render the preview the current template needs to be replaced on the server with your modifications which may break the label if it is under active use. Do you want to proceed?" msgstr "Para renderizar la vista previa la plantilla actual necesita ser reemplazada en el servidor con sus modificaciones que pueden romper la etiqueta si está en uso activo. ¿Quieres continuar?" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:157 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:183 msgid "Save & Reload" msgstr "Guardar y recargar" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:189 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:215 msgid "Preview updated" msgstr "Actualizar vista previa" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:190 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:216 msgid "The preview has been updated successfully." msgstr "La vista previa se ha actualizado correctamente." @@ -322,15 +626,15 @@ msgstr "La vista previa se ha actualizado correctamente." #~ msgid "Save & Reload preview" #~ msgstr "Save & Reload preview" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:266 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:295 msgid "Reload preview" msgstr "Recargar vista previa" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:267 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:296 msgid "Use the currently stored template from the server" msgstr "Usar la plantilla actualmente almacenada del servidor" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:275 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:304 msgid "Save the current template and reload the preview" msgstr "Guardar la plantilla actual y recargar la vista previa" @@ -338,64 +642,65 @@ msgstr "Guardar la plantilla actual y recargar la vista previa" #~ msgid "to preview" #~ msgstr "to preview" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:333 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:365 msgid "Select instance to preview" msgstr "Seleccione la instancia a previsualizar" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:377 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:409 msgid "Error rendering template" msgstr "Error al renderizar plantilla" #: src/components/errors/ClientError.tsx:23 msgid "Client Error" -msgstr "" +msgstr "Error del cliente" #: src/components/errors/ClientError.tsx:24 msgid "Client error occurred" -msgstr "" +msgstr "Ha ocurrido un error de cliente" #: src/components/errors/GenericErrorPage.tsx:50 msgid "Status Code" -msgstr "" +msgstr "Código de estado" #: src/components/errors/GenericErrorPage.tsx:63 msgid "Return to the index page" -msgstr "" +msgstr "Volver a la página índice" #: src/components/errors/NotAuthenticated.tsx:8 msgid "Not Authenticated" -msgstr "" +msgstr "No autenticado" #: src/components/errors/NotAuthenticated.tsx:9 msgid "You are not logged in." -msgstr "" +msgstr "No has iniciado sesión." #: src/components/errors/NotFound.tsx:8 msgid "Page Not Found" -msgstr "" +msgstr "Página no encontrada" #: src/components/errors/NotFound.tsx:9 msgid "This page does not exist" -msgstr "" +msgstr "Esta página no existe" #: src/components/errors/PermissionDenied.tsx:8 +#: src/functions/notifications.tsx:24 msgid "Permission Denied" -msgstr "" +msgstr "Permiso denegado" #: src/components/errors/PermissionDenied.tsx:9 msgid "You do not have permission to view this page." -msgstr "" +msgstr "No tiene permisos para ver esta página." #: src/components/errors/ServerError.tsx:8 msgid "Server Error" -msgstr "" +msgstr "Error del servidor" #: src/components/errors/ServerError.tsx:9 msgid "A server error occurred" -msgstr "" +msgstr "Ha ocurrido un error con el servidor" -#: src/components/forms/ApiForm.tsx:151 -#: src/components/forms/ApiForm.tsx:555 +#: src/components/forms/ApiForm.tsx:154 +#: src/components/forms/ApiForm.tsx:579 msgid "Form Error" msgstr "Error de formulario" @@ -403,22 +708,22 @@ msgstr "Error de formulario" #~ msgid "Form Errors Exist" #~ msgstr "Form Errors Exist" -#: src/components/forms/ApiForm.tsx:563 +#: src/components/forms/ApiForm.tsx:587 msgid "Errors exist for one or more form fields" -msgstr "" +msgstr "Existen errores para uno o más campos del formulario" -#: src/components/forms/ApiForm.tsx:665 -#: src/tables/plugin/PluginListTable.tsx:388 +#: src/components/forms/ApiForm.tsx:698 +#: src/tables/plugin/PluginListTable.tsx:195 msgid "Update" msgstr "Actualizar" -#: src/components/forms/ApiForm.tsx:685 -#: src/components/items/ActionDropdown.tsx:195 +#: src/components/forms/ApiForm.tsx:718 +#: src/components/items/ActionDropdown.tsx:248 #: src/hooks/UseForm.tsx:122 -#: src/pages/Index/Scan.tsx:343 +#: src/pages/Index/Scan.tsx:357 #: src/pages/Notifications.tsx:123 -#: src/tables/RowActions.tsx:43 -#: src/tables/plugin/PluginListTable.tsx:420 +#: src/tables/RowActions.tsx:49 +#: src/tables/plugin/PluginListTable.tsx:232 msgid "Delete" msgstr "Eliminar" @@ -428,14 +733,6 @@ msgstr "Eliminar" #~ msgid "Check your your input and try again." #~ msgstr "Check your your input and try again." -#: src/components/forms/AuthenticationForm.tsx:51 -msgid "Login successful" -msgstr "Inicio de sesión correcto" - -#: src/components/forms/AuthenticationForm.tsx:52 -msgid "Logged in successfully" -msgstr "Se ha iniciado sesión con éxito" - #: src/components/forms/AuthenticationForm.tsx:52 #~ msgid "Welcome back!" #~ msgstr "Welcome back!" @@ -444,14 +741,22 @@ msgstr "Se ha iniciado sesión con éxito" #~ msgid "Login successfull" #~ msgstr "Login successfull" -#: src/components/forms/AuthenticationForm.tsx:58 +#: src/components/forms/AuthenticationForm.tsx:55 +msgid "Login successful" +msgstr "Inicio de sesión correcto" + +#: src/components/forms/AuthenticationForm.tsx:56 +msgid "Logged in successfully" +msgstr "Se ha iniciado sesión con éxito" + +#: src/components/forms/AuthenticationForm.tsx:61 msgid "Login failed" msgstr "Error al iniciar sesión" -#: src/components/forms/AuthenticationForm.tsx:59 -#: src/components/forms/AuthenticationForm.tsx:76 -#: src/components/forms/AuthenticationForm.tsx:211 -#: src/functions/auth.tsx:164 +#: src/components/forms/AuthenticationForm.tsx:62 +#: src/components/forms/AuthenticationForm.tsx:79 +#: src/components/forms/AuthenticationForm.tsx:214 +#: src/functions/auth.tsx:175 msgid "Check your input and try again." msgstr "Verifique su entrada e intente nuevamente." @@ -460,45 +765,46 @@ msgstr "Verifique su entrada e intente nuevamente." #~ msgid "Mail delivery successfull" #~ msgstr "Mail delivery successfull" -#: src/components/forms/AuthenticationForm.tsx:70 -#: src/functions/auth.tsx:155 +#: src/components/forms/AuthenticationForm.tsx:73 +#: src/functions/auth.tsx:166 msgid "Mail delivery successful" msgstr "Envío de correo exitoso" -#: src/components/forms/AuthenticationForm.tsx:71 +#: src/components/forms/AuthenticationForm.tsx:74 msgid "Check your inbox for the login link. If you have an account, you will receive a login link. Check in spam too." -msgstr "" +msgstr "Revisa tu bandeja de entrada para el enlace de inicio de sesión. Si tienes una cuenta, recibirás un enlace de inicio de sesión. Revisa también el correo no deseado." -#: src/components/forms/AuthenticationForm.tsx:75 +#: src/components/forms/AuthenticationForm.tsx:78 msgid "Mail delivery failed" -msgstr "" +msgstr "Error al enviar el correo" -#: src/components/forms/AuthenticationForm.tsx:95 +#: src/components/forms/AuthenticationForm.tsx:98 msgid "Or continue with other methods" -msgstr "" +msgstr "O continúe con otros métodos" -#: src/components/forms/AuthenticationForm.tsx:106 -#: src/components/forms/AuthenticationForm.tsx:227 +#: src/components/forms/AuthenticationForm.tsx:109 +#: src/components/forms/AuthenticationForm.tsx:230 +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:67 msgid "Username" msgstr "Nombre de usuario" -#: src/components/forms/AuthenticationForm.tsx:107 -#: src/components/forms/AuthenticationForm.tsx:228 +#: src/components/forms/AuthenticationForm.tsx:110 +#: src/components/forms/AuthenticationForm.tsx:231 msgid "Your username" msgstr "Tu nombre de usuario" -#: src/components/forms/AuthenticationForm.tsx:112 -#: src/components/forms/AuthenticationForm.tsx:240 -#: src/pages/Auth/Set-Password.tsx:106 +#: src/components/forms/AuthenticationForm.tsx:115 +#: src/components/forms/AuthenticationForm.tsx:243 +#: src/pages/Auth/Set-Password.tsx:101 msgid "Password" msgstr "Contraseña" -#: src/components/forms/AuthenticationForm.tsx:113 -#: src/components/forms/AuthenticationForm.tsx:241 +#: src/components/forms/AuthenticationForm.tsx:116 +#: src/components/forms/AuthenticationForm.tsx:244 msgid "Your password" msgstr "Tu contraseña" -#: src/components/forms/AuthenticationForm.tsx:125 +#: src/components/forms/AuthenticationForm.tsx:128 #: src/pages/Auth/Reset.tsx:26 msgid "Reset password" msgstr "Restablecer contraseña" @@ -507,190 +813,192 @@ msgstr "Restablecer contraseña" #~ msgid "Log in" #~ msgstr "Log in" -#: src/components/forms/AuthenticationForm.tsx:134 -#: src/components/forms/AuthenticationForm.tsx:233 +#: src/components/forms/AuthenticationForm.tsx:136 +#~ msgid "I will use username and password" +#~ msgstr "I will use username and password" + +#: src/components/forms/AuthenticationForm.tsx:137 +#: src/components/forms/AuthenticationForm.tsx:236 #: src/pages/Auth/Reset.tsx:31 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:51 msgid "Email" msgstr "Correo electrónico" -#: src/components/forms/AuthenticationForm.tsx:135 +#: src/components/forms/AuthenticationForm.tsx:138 #: src/pages/Auth/Reset.tsx:32 -#: src/pages/Auth/Set-Password.tsx:107 +#: src/pages/Auth/Set-Password.tsx:102 msgid "We will send you a link to login - if you are registered" -msgstr "" +msgstr "Enviaremos un enlace para el acceso - si usted está registrado" -#: src/components/forms/AuthenticationForm.tsx:136 -#~ msgid "I will use username and password" -#~ msgstr "I will use username and password" - -#: src/components/forms/AuthenticationForm.tsx:151 +#: src/components/forms/AuthenticationForm.tsx:154 msgid "Send me an email" -msgstr "" +msgstr "Envíame un correo electrónico" -#: src/components/forms/AuthenticationForm.tsx:153 +#: src/components/forms/AuthenticationForm.tsx:156 msgid "Use username and password" -msgstr "" +msgstr "Usar nombre de usuario y contraseña" -#: src/components/forms/AuthenticationForm.tsx:162 +#: src/components/forms/AuthenticationForm.tsx:165 msgid "Log In" -msgstr "" +msgstr "Iniciar sesión" -#: src/components/forms/AuthenticationForm.tsx:164 +#: src/components/forms/AuthenticationForm.tsx:167 +#: src/pages/Auth/Reset.tsx:41 +#: src/pages/Auth/Set-Password.tsx:107 msgid "Send Email" -msgstr "" +msgstr "Enviar correo electrónico" -#: src/components/forms/AuthenticationForm.tsx:193 +#: src/components/forms/AuthenticationForm.tsx:196 msgid "Registration successful" -msgstr "" +msgstr "Registro exitoso" -#: src/components/forms/AuthenticationForm.tsx:194 +#: src/components/forms/AuthenticationForm.tsx:197 msgid "Please confirm your email address to complete the registration" -msgstr "" +msgstr "Por favor, confirma tu dirección de correo electrónico para completar el registro" -#: src/components/forms/AuthenticationForm.tsx:210 +#: src/components/forms/AuthenticationForm.tsx:213 msgid "Input error" -msgstr "" +msgstr "Error de entrada de datos" -#: src/components/forms/AuthenticationForm.tsx:234 +#: src/components/forms/AuthenticationForm.tsx:237 msgid "This will be used for a confirmation" -msgstr "" +msgstr "Se utilizará para una confirmación" -#: src/components/forms/AuthenticationForm.tsx:246 +#: src/components/forms/AuthenticationForm.tsx:249 msgid "Password repeat" -msgstr "" +msgstr "Repetir contraseña" -#: src/components/forms/AuthenticationForm.tsx:247 +#: src/components/forms/AuthenticationForm.tsx:250 msgid "Repeat password" -msgstr "" +msgstr "Repetir contraseña" -#: src/components/forms/AuthenticationForm.tsx:259 -#: src/components/forms/AuthenticationForm.tsx:304 +#: src/components/forms/AuthenticationForm.tsx:262 +#: src/components/forms/AuthenticationForm.tsx:307 msgid "Register" -msgstr "" +msgstr "Registro" -#: src/components/forms/AuthenticationForm.tsx:265 +#: src/components/forms/AuthenticationForm.tsx:268 msgid "Or use SSO" -msgstr "" +msgstr "O usar SSO" -#: src/components/forms/AuthenticationForm.tsx:296 +#: src/components/forms/AuthenticationForm.tsx:299 msgid "Don't have an account?" -msgstr "" +msgstr "¿No tiene una cuenta?" -#: src/components/forms/AuthenticationForm.tsx:315 +#: src/components/forms/AuthenticationForm.tsx:318 msgid "Go back to login" -msgstr "" +msgstr "Volver al inicio de sesión" #: src/components/forms/HostOptionsForm.tsx:36 #: src/components/forms/HostOptionsForm.tsx:67 msgid "Host" -msgstr "" +msgstr "Servidor" #: src/components/forms/HostOptionsForm.tsx:42 #: src/components/forms/HostOptionsForm.tsx:70 +#: src/components/plugins/PluginDrawer.tsx:69 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:410 +#: src/pages/Index/Settings/AdminCenter/UnitManagmentPanel.tsx:19 #: src/pages/part/CategoryDetail.tsx:81 -#: src/pages/part/PartDetail.tsx:143 -#: src/pages/stock/LocationDetail.tsx:89 -#: src/tables/machine/MachineTypeTable.tsx:65 -#: src/tables/machine/MachineTypeTable.tsx:109 -#: src/tables/machine/MachineTypeTable.tsx:216 -#: src/tables/machine/MachineTypeTable.tsx:319 +#: src/pages/part/PartDetail.tsx:164 +#: src/pages/stock/LocationDetail.tsx:83 +#: src/tables/machine/MachineTypeTable.tsx:70 +#: src/tables/machine/MachineTypeTable.tsx:119 +#: src/tables/machine/MachineTypeTable.tsx:237 +#: src/tables/machine/MachineTypeTable.tsx:340 #: src/tables/plugin/PluginErrorTable.tsx:33 -#: src/tables/plugin/PluginListTable.tsx:126 #: src/tables/purchasing/ManufacturerPartParameterTable.tsx:32 #: src/tables/settings/GroupTable.tsx:147 -#: src/tables/settings/PendingTasksTable.tsx:28 +#: src/tables/settings/PendingTasksTable.tsx:32 #: src/tables/stock/LocationTypesTable.tsx:69 msgid "Name" -msgstr "" +msgstr "Nombre" #: src/components/forms/HostOptionsForm.tsx:75 msgid "No one here..." -msgstr "" +msgstr "No hay nadie aquí..." #: src/components/forms/HostOptionsForm.tsx:86 msgid "Add Host" -msgstr "" +msgstr "Añadir Host" #: src/components/forms/HostOptionsForm.tsx:90 msgid "Save" -msgstr "" +msgstr "Guardar" #: src/components/forms/InstanceOptions.tsx:43 msgid "Select destination instance" -msgstr "" +msgstr "Seleccione la instancia de destino" #: src/components/forms/InstanceOptions.tsx:71 msgid "Edit possible host options" -msgstr "" +msgstr "Editar posibles opciones de host" #: src/components/forms/InstanceOptions.tsx:98 msgid "Version: {0}" -msgstr "" +msgstr "Versión {0}" #: src/components/forms/InstanceOptions.tsx:100 msgid "API:{0}" -msgstr "" +msgstr "API:{0}" #: src/components/forms/InstanceOptions.tsx:102 msgid "Name: {0}" -msgstr "" +msgstr "Nombre: {0}" #: src/components/forms/InstanceOptions.tsx:104 msgid "State: <0>worker ({0}), <1>plugins{1}" -msgstr "" +msgstr "Estado: <0>trabajador ({0}), <1>complementos{1}" #: src/components/forms/fields/IconField.tsx:81 msgid "No icon selected" -msgstr "" +msgstr "Ningún icono seleccionado" #: src/components/forms/fields/IconField.tsx:159 msgid "Uncategorized" -msgstr "" +msgstr "No clasificado" #: src/components/forms/fields/IconField.tsx:209 -#: src/components/nav/Layout.tsx:70 +#: src/components/nav/Layout.tsx:77 #: src/tables/part/PartThumbTable.tsx:192 msgid "Search..." -msgstr "" +msgstr "Búsqueda..." #: src/components/forms/fields/IconField.tsx:223 msgid "Select category" -msgstr "" +msgstr "Seleccionar categoría" #: src/components/forms/fields/IconField.tsx:232 msgid "Select pack" -msgstr "" +msgstr "Seleccionar paquete" #: src/components/forms/fields/IconField.tsx:237 msgid "{0} icons" -msgstr "" +msgstr "Iconos {0}" -#: src/components/forms/fields/RelatedModelField.tsx:318 -#: src/pages/Index/Settings/UserSettings.tsx:96 +#: src/components/forms/fields/RelatedModelField.tsx:319 +#: src/pages/Index/Settings/UserSettings.tsx:97 #: src/tables/Search.tsx:23 msgid "Search" msgstr "Buscar" -#: src/components/forms/fields/RelatedModelField.tsx:319 +#: src/components/forms/fields/RelatedModelField.tsx:320 #: src/components/modals/AboutInvenTreeModal.tsx:81 -#: src/components/widgets/WidgetLayout.tsx:120 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:316 msgid "Loading" msgstr "Cargando" -#: src/components/forms/fields/RelatedModelField.tsx:321 +#: src/components/forms/fields/RelatedModelField.tsx:322 msgid "No results found" msgstr "No hay resultados" -#: src/components/forms/fields/TableField.tsx:52 -msgid "modelRenderer entry required for tables" -msgstr "" +#: src/components/forms/fields/TableField.tsx:72 +#~ msgid "modelRenderer entry required for tables" +#~ msgstr "modelRenderer entry required for tables" -#: src/components/forms/fields/TableField.tsx:76 +#: src/components/forms/fields/TableField.tsx:167 msgid "No entries available" -msgstr "" +msgstr "No hay entradas disponibles" #: src/components/images/DetailsImage.tsx:252 #~ msgid "Select image" @@ -698,73 +1006,74 @@ msgstr "" #: src/components/images/Thumbnail.tsx:12 msgid "Thumbnail" -msgstr "" +msgstr "Miniatura" #: src/components/importer/ImportDataSelector.tsx:170 msgid "Importing Rows" -msgstr "" +msgstr "Importando filas" #: src/components/importer/ImportDataSelector.tsx:171 msgid "Please wait while the data is imported" -msgstr "" +msgstr "Por favor espere mientras los datos son importados" #: src/components/importer/ImportDataSelector.tsx:188 msgid "An error occurred while importing data" -msgstr "" +msgstr "Se ha producido un error al importar datos" #: src/components/importer/ImportDataSelector.tsx:209 msgid "Edit Data" -msgstr "" +msgstr "Editar datos" #: src/components/importer/ImportDataSelector.tsx:237 msgid "Delete Row" -msgstr "" +msgstr "Eliminar fila" #: src/components/importer/ImportDataSelector.tsx:267 msgid "Row" -msgstr "" +msgstr "Fila" #: src/components/importer/ImportDataSelector.tsx:285 msgid "Row contains errors" -msgstr "" +msgstr "La fila contiene errores" #: src/components/importer/ImportDataSelector.tsx:326 msgid "Accept" -msgstr "" +msgstr "Aceptar" #: src/components/importer/ImportDataSelector.tsx:359 msgid "Valid" -msgstr "" +msgstr "Válido" #: src/components/importer/ImportDataSelector.tsx:360 msgid "Filter by row validation status" -msgstr "" +msgstr "Filtrar por estado de validación de fila" #: src/components/importer/ImportDataSelector.tsx:365 -#: src/tables/build/BuildOutputTable.tsx:266 +#: src/tables/build/BuildOutputTable.tsx:407 msgid "Complete" -msgstr "" +msgstr "Terminado" #: src/components/importer/ImportDataSelector.tsx:366 msgid "Filter by row completion status" -msgstr "" +msgstr "Filtrar por estado de finalización de fila" -#: src/components/importer/ImportDataSelector.tsx:383 +#: src/components/importer/ImportDataSelector.tsx:384 msgid "Import selected rows" -msgstr "" +msgstr "Importar filas seleccionadas" -#: src/components/importer/ImportDataSelector.tsx:398 +#: src/components/importer/ImportDataSelector.tsx:399 msgid "Processing Data" -msgstr "" +msgstr "Procesando datos" -#: src/components/importer/ImporterColumnSelector.tsx:50 -#: src/components/importer/ImporterColumnSelector.tsx:176 +#: src/components/importer/ImporterColumnSelector.tsx:53 +#: src/components/importer/ImporterColumnSelector.tsx:179 +#: src/components/items/ErrorItem.tsx:12 msgid "An error occurred" -msgstr "" +msgstr "Se ha producido un error" -#: src/components/importer/ImporterColumnSelector.tsx:62 +#: src/components/importer/ImporterColumnSelector.tsx:65 msgid "Select column, or leave blank to ignore this field." -msgstr "" +msgstr "Seleccione la columna o deje en blanco para ignorar este campo." #: src/components/importer/ImporterColumnSelector.tsx:91 #~ msgid "Select a column from the data file" @@ -778,51 +1087,51 @@ msgstr "" #~ msgid "Imported Column Name" #~ msgstr "Imported Column Name" -#: src/components/importer/ImporterColumnSelector.tsx:182 +#: src/components/importer/ImporterColumnSelector.tsx:185 msgid "Ignore this field" -msgstr "" +msgstr "Ignorar este campo" -#: src/components/importer/ImporterColumnSelector.tsx:196 +#: src/components/importer/ImporterColumnSelector.tsx:199 msgid "Mapping data columns to database fields" msgstr "" -#: src/components/importer/ImporterColumnSelector.tsx:201 +#: src/components/importer/ImporterColumnSelector.tsx:204 msgid "Accept Column Mapping" msgstr "" -#: src/components/importer/ImporterColumnSelector.tsx:214 +#: src/components/importer/ImporterColumnSelector.tsx:217 msgid "Database Field" msgstr "" -#: src/components/importer/ImporterColumnSelector.tsx:215 +#: src/components/importer/ImporterColumnSelector.tsx:218 msgid "Field Description" msgstr "" -#: src/components/importer/ImporterColumnSelector.tsx:216 +#: src/components/importer/ImporterColumnSelector.tsx:219 msgid "Imported Column" msgstr "" -#: src/components/importer/ImporterColumnSelector.tsx:217 +#: src/components/importer/ImporterColumnSelector.tsx:220 msgid "Default Value" msgstr "" -#: src/components/importer/ImporterDrawer.tsx:44 +#: src/components/importer/ImporterDrawer.tsx:46 msgid "Upload File" msgstr "" -#: src/components/importer/ImporterDrawer.tsx:45 +#: src/components/importer/ImporterDrawer.tsx:47 msgid "Map Columns" msgstr "" -#: src/components/importer/ImporterDrawer.tsx:46 +#: src/components/importer/ImporterDrawer.tsx:48 msgid "Import Data" msgstr "" -#: src/components/importer/ImporterDrawer.tsx:47 +#: src/components/importer/ImporterDrawer.tsx:49 msgid "Process Data" msgstr "" -#: src/components/importer/ImporterDrawer.tsx:48 +#: src/components/importer/ImporterDrawer.tsx:50 msgid "Complete Import" msgstr "" @@ -830,28 +1139,28 @@ msgstr "" #~ msgid "Cancel import session" #~ msgstr "Cancel import session" -#: src/components/importer/ImporterDrawer.tsx:104 +#: src/components/importer/ImporterDrawer.tsx:106 msgid "Import Complete" msgstr "" -#: src/components/importer/ImporterDrawer.tsx:107 +#: src/components/importer/ImporterDrawer.tsx:109 msgid "Data has been imported successfully" msgstr "" -#: src/components/importer/ImporterDrawer.tsx:109 -#: src/components/importer/ImporterDrawer.tsx:118 +#: src/components/importer/ImporterDrawer.tsx:111 +#: src/components/importer/ImporterDrawer.tsx:120 msgid "Close" msgstr "" -#: src/components/importer/ImporterDrawer.tsx:115 +#: src/components/importer/ImporterDrawer.tsx:117 msgid "Unknown Status" msgstr "" -#: src/components/importer/ImporterDrawer.tsx:116 +#: src/components/importer/ImporterDrawer.tsx:118 msgid "Import session has unknown status" msgstr "" -#: src/components/importer/ImporterDrawer.tsx:135 +#: src/components/importer/ImporterDrawer.tsx:137 msgid "Importing Data" msgstr "" @@ -860,85 +1169,115 @@ msgid "Importing Records" msgstr "" #: src/components/importer/ImporterImportProgress.tsx:39 -msgid "Imported rows" +#: src/tables/settings/ImportSessionTable.tsx:78 +msgid "Imported Rows" msgstr "" -#: src/components/items/ActionDropdown.tsx:121 -msgid "Barcode Actions" +#: src/components/importer/ImporterImportProgress.tsx:39 +#~ msgid "Imported rows" +#~ msgstr "Imported rows" + +#: src/components/items/ActionDropdown.tsx:126 +msgid "Options" msgstr "" #: src/components/items/ActionDropdown.tsx:140 -msgid "View Barcode" +#~ msgid "View Barcode" +#~ msgstr "View Barcode" + +#: src/components/items/ActionDropdown.tsx:162 +#: src/tables/InvenTreeTableHeader.tsx:159 +#: src/tables/InvenTreeTableHeader.tsx:160 +msgid "Barcode Actions" msgstr "" -#: src/components/items/ActionDropdown.tsx:147 +#: src/components/items/ActionDropdown.tsx:162 +#~ msgid "Link custom barcode" +#~ msgstr "Link custom barcode" + +#: src/components/items/ActionDropdown.tsx:167 msgid "View" msgstr "Vista" -#: src/components/items/ActionDropdown.tsx:148 +#: src/components/items/ActionDropdown.tsx:169 msgid "View barcode" msgstr "Ver código de barras" -#: src/components/items/ActionDropdown.tsx:161 +#: src/components/items/ActionDropdown.tsx:175 msgid "Link Barcode" msgstr "Vincular Código de Barras" -#: src/components/items/ActionDropdown.tsx:162 -msgid "Link custom barcode" -msgstr "" - -#: src/components/items/ActionDropdown.tsx:173 -#: src/forms/PurchaseOrderForms.tsx:426 -msgid "Unlink Barcode" -msgstr "" - -#: src/components/items/ActionDropdown.tsx:174 -msgid "Unlink custom barcode" +#: src/components/items/ActionDropdown.tsx:177 +msgid "Link a custom barcode to this item" msgstr "" #: src/components/items/ActionDropdown.tsx:183 -#: src/tables/RowActions.tsx:33 +#: src/components/items/QRCode.tsx:193 +#: src/forms/PurchaseOrderForms.tsx:464 +msgid "Unlink Barcode" +msgstr "" + +#: src/components/items/ActionDropdown.tsx:185 +msgid "Unlink custom barcode" +msgstr "" + +#: src/components/items/ActionDropdown.tsx:236 +#: src/tables/RowActions.tsx:39 msgid "Edit" msgstr "" -#: src/components/items/ActionDropdown.tsx:184 +#: src/components/items/ActionDropdown.tsx:237 msgid "Edit item" msgstr "" -#: src/components/items/ActionDropdown.tsx:196 +#: src/components/items/ActionDropdown.tsx:249 msgid "Delete item" msgstr "" -#: src/components/items/ActionDropdown.tsx:204 -#: src/components/items/ActionDropdown.tsx:205 +#: src/components/items/ActionDropdown.tsx:257 +#: src/components/items/ActionDropdown.tsx:258 msgid "Hold" msgstr "" -#: src/components/items/ActionDropdown.tsx:227 -#: src/tables/RowActions.tsx:23 +#: src/components/items/ActionDropdown.tsx:280 +#: src/tables/RowActions.tsx:29 msgid "Duplicate" -msgstr "" +msgstr "Duplicar" -#: src/components/items/ActionDropdown.tsx:228 +#: src/components/items/ActionDropdown.tsx:281 msgid "Duplicate item" msgstr "" -#: src/components/items/DocTooltip.tsx:92 -msgid "Read More" +#: src/components/items/BarcodeInput.tsx:23 +msgid "Scan barcode data here using barcode scanner" msgstr "" -#: src/components/items/ErrorItem.tsx:5 -#: src/tables/InvenTreeTable.tsx:487 +#: src/components/items/BarcodeInput.tsx:24 +#: src/tables/settings/BarcodeScanHistoryTable.tsx:65 +msgid "Barcode" +msgstr "" + +#: src/components/items/BarcodeInput.tsx:25 +msgid "Scan" +msgstr "Escanear" + +#: src/components/items/DocTooltip.tsx:92 +#: src/components/items/GettingStartedCarousel.tsx:20 +msgid "Read More" +msgstr "Leer más" + +#: src/components/items/ErrorItem.tsx:8 +#: src/tables/InvenTreeTable.tsx:473 msgid "Unknown error" msgstr "" -#: src/components/items/ErrorItem.tsx:10 -msgid "An error occurred:" -msgstr "" +#: src/components/items/ErrorItem.tsx:13 +#~ msgid "An error occurred:" +#~ msgstr "An error occurred:" #: src/components/items/GettingStartedCarousel.tsx:27 -msgid "Read more" -msgstr "" +#~ msgid "Read more" +#~ msgstr "Read more" #: src/components/items/InfoItem.tsx:27 msgid "None" @@ -965,30 +1304,51 @@ msgstr "" msgid "This panel is a placeholder." msgstr "" -#: src/components/items/QRCode.tsx:87 +#: src/components/items/QRCode.tsx:89 msgid "Low (7%)" msgstr "" -#: src/components/items/QRCode.tsx:88 +#: src/components/items/QRCode.tsx:90 msgid "Medium (15%)" msgstr "" -#: src/components/items/QRCode.tsx:89 +#: src/components/items/QRCode.tsx:91 msgid "Quartile (25%)" msgstr "" -#: src/components/items/QRCode.tsx:90 +#: src/components/items/QRCode.tsx:92 msgid "High (30%)" msgstr "" -#: src/components/items/QRCode.tsx:107 -msgid "Barcode Data:" +#: src/components/items/QRCode.tsx:100 +msgid "Custom barcode" +msgstr "Código de barras personalizado" + +#: src/components/items/QRCode.tsx:101 +msgid "A custom barcode is registered for this item. The shown code is not that custom barcode." msgstr "" #: src/components/items/QRCode.tsx:118 +msgid "Barcode Data:" +msgstr "" + +#: src/components/items/QRCode.tsx:129 msgid "Select Error Correction Level" msgstr "" +#: src/components/items/QRCode.tsx:171 +#: src/pages/part/PartDetail.tsx:239 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:187 +#: src/pages/sales/ReturnOrderDetail.tsx:157 +#: src/pages/sales/SalesOrderDetail.tsx:169 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:166 +msgid "Link" +msgstr "" + +#: src/components/items/QRCode.tsx:190 +msgid "This will remove the link to the associated barcode" +msgstr "" + #: src/components/modals/AboutInvenTreeModal.tsx:99 msgid "Version Information" msgstr "Información de la versión" @@ -1019,11 +1379,11 @@ msgstr "" #: src/components/modals/AboutInvenTreeModal.tsx:136 msgid "Commit Date" -msgstr "" +msgstr "Fecha de confirmación" #: src/components/modals/AboutInvenTreeModal.tsx:141 msgid "Commit Branch" -msgstr "" +msgstr "Consolidar rama" #: src/components/modals/AboutInvenTreeModal.tsx:146 #: src/components/modals/ServerInfoModal.tsx:133 @@ -1032,130 +1392,89 @@ msgstr "Versión API" #: src/components/modals/AboutInvenTreeModal.tsx:149 msgid "Python Version" -msgstr "" +msgstr "Versión de Python" #: src/components/modals/AboutInvenTreeModal.tsx:152 msgid "Django Version" -msgstr "" +msgstr "Versión de Django" #: src/components/modals/AboutInvenTreeModal.tsx:162 msgid "Links" -msgstr "" +msgstr "Enlaces" #: src/components/modals/AboutInvenTreeModal.tsx:168 msgid "InvenTree Documentation" -msgstr "" +msgstr "Documentación de InvenTree" #: src/components/modals/AboutInvenTreeModal.tsx:169 msgid "View Code on GitHub" -msgstr "" +msgstr "Ver código en GitHub" #: src/components/modals/AboutInvenTreeModal.tsx:170 msgid "Credits" -msgstr "" +msgstr "Créditos" #: src/components/modals/AboutInvenTreeModal.tsx:171 msgid "Mobile App" -msgstr "" +msgstr "Aplicación Móvil" #: src/components/modals/AboutInvenTreeModal.tsx:172 msgid "Submit Bug Report" -msgstr "" +msgstr "Enviar Informe de Error" -#: src/components/modals/AboutInvenTreeModal.tsx:183 +#: src/components/modals/AboutInvenTreeModal.tsx:181 msgid "Copy version information" -msgstr "" +msgstr "Copiar información de versión" -#: src/components/modals/AboutInvenTreeModal.tsx:192 +#: src/components/modals/AboutInvenTreeModal.tsx:189 #: src/components/modals/ServerInfoModal.tsx:147 msgid "Dismiss" -msgstr "" +msgstr "Descartar" #: src/components/modals/LicenseModal.tsx:39 msgid "No license text available" -msgstr "" +msgstr "Texto de licencia no disponible" #: src/components/modals/LicenseModal.tsx:46 msgid "No Information provided - this is likely a server issue" -msgstr "" +msgstr "No se proporciona información - esto es probablemente un problema del servidor" #: src/components/modals/LicenseModal.tsx:71 msgid "Loading license information" -msgstr "" +msgstr "Cargando información de licencia" #: src/components/modals/LicenseModal.tsx:77 msgid "Failed to fetch license information" -msgstr "" +msgstr "Error al obtener la información de la licencia" #: src/components/modals/LicenseModal.tsx:85 msgid "{key} Packages" -msgstr "" +msgstr "Paquetes {key}" -#: src/components/modals/QrCodeModal.tsx:72 +#: src/components/modals/QrCodeModal.tsx:24 msgid "Unknown response" -msgstr "" +msgstr "Respuesta desconocida" -#: src/components/modals/QrCodeModal.tsx:102 -#: src/pages/Index/Scan.tsx:636 -msgid "Error while getting camera" -msgstr "" - -#: src/components/modals/QrCodeModal.tsx:125 -#: src/pages/Index/Scan.tsx:659 -msgid "Error while scanning" -msgstr "" - -#: src/components/modals/QrCodeModal.tsx:139 -#: src/pages/Index/Scan.tsx:673 -msgid "Error while stopping" -msgstr "" - -#: src/components/modals/QrCodeModal.tsx:154 -#: src/defaults/menuItems.tsx:21 -#: src/pages/Index/Scan.tsx:746 -msgid "Scanning" -msgstr "" - -#: src/components/modals/QrCodeModal.tsx:154 -#: src/pages/Index/Scan.tsx:746 -msgid "Not scanning" -msgstr "" - -#: src/components/modals/QrCodeModal.tsx:159 -#: src/pages/Index/Scan.tsx:752 -msgid "Select Camera" -msgstr "" - -#: src/components/modals/QrCodeModal.tsx:169 -#: src/pages/Index/Scan.tsx:737 -msgid "Start scanning" -msgstr "" - -#: src/components/modals/QrCodeModal.tsx:176 -#: src/pages/Index/Scan.tsx:729 -msgid "Stop scanning" -msgstr "" - -#: src/components/modals/QrCodeModal.tsx:181 +#: src/components/modals/QrCodeModal.tsx:39 msgid "No scans yet!" -msgstr "" +msgstr "¡No hay escaneos todavía!" -#: src/components/modals/QrCodeModal.tsx:201 +#: src/components/modals/QrCodeModal.tsx:57 msgid "Close modal" -msgstr "" +msgstr "Cerrar modal" #: src/components/modals/ServerInfoModal.tsx:26 -#: src/pages/Index/Settings/SystemSettings.tsx:38 +#: src/pages/Index/Settings/SystemSettings.tsx:37 msgid "Server" -msgstr "" +msgstr "Servidor" #: src/components/modals/ServerInfoModal.tsx:32 msgid "Instance Name" -msgstr "" +msgstr "Nombre de instancia" #: src/components/modals/ServerInfoModal.tsx:38 msgid "Database" -msgstr "" +msgstr "Base de datos" #: src/components/modals/ServerInfoModal.tsx:38 #~ msgid "Bebug Mode" @@ -1163,27 +1482,27 @@ msgstr "" #: src/components/modals/ServerInfoModal.tsx:47 msgid "Debug Mode" -msgstr "" +msgstr "Modo de depuración" #: src/components/modals/ServerInfoModal.tsx:50 msgid "Server is running in debug mode" -msgstr "" +msgstr "El servidor se está ejecutando en modo depuración" #: src/components/modals/ServerInfoModal.tsx:57 msgid "Docker Mode" -msgstr "" +msgstr "Modo Docker" #: src/components/modals/ServerInfoModal.tsx:60 msgid "Server is deployed using docker" -msgstr "" +msgstr "El servidor está desplegado usando docker" #: src/components/modals/ServerInfoModal.tsx:66 msgid "Plugin Support" -msgstr "" +msgstr "Soporte para Plugins" #: src/components/modals/ServerInfoModal.tsx:71 msgid "Plugin support enabled" -msgstr "" +msgstr "Soporte de plugins habilitado" #: src/components/modals/ServerInfoModal.tsx:73 msgid "Plugin support disabled" @@ -1206,20 +1525,21 @@ msgid "Background Worker" msgstr "" #: src/components/modals/ServerInfoModal.tsx:101 +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:29 msgid "Background worker not running" msgstr "" #: src/components/modals/ServerInfoModal.tsx:109 msgid "Email Settings" -msgstr "" +msgstr "Configuración del correo electrónico" #: src/components/modals/ServerInfoModal.tsx:113 msgid "Email settings not configured" msgstr "" #: src/components/modals/ServerInfoModal.tsx:121 -#: src/tables/plugin/PluginListTable.tsx:144 -#: src/tables/plugin/PluginListTable.tsx:294 +#: src/components/plugins/PluginDrawer.tsx:89 +#: src/tables/plugin/PluginListTable.tsx:116 msgid "Version" msgstr "" @@ -1227,7 +1547,7 @@ msgstr "" msgid "Server Version" msgstr "" -#: src/components/nav/Layout.tsx:73 +#: src/components/nav/Layout.tsx:80 msgid "Nothing found..." msgstr "" @@ -1237,18 +1557,26 @@ msgstr "" #~ msgstr "Profile" #: src/components/nav/MainMenu.tsx:52 +#: src/components/nav/NavigationDrawer.tsx:178 #: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:28 msgid "Settings" msgstr "" #: src/components/nav/MainMenu.tsx:59 -#: src/defaults/menuItems.tsx:15 -msgid "Account settings" +#: src/pages/Index/Settings/UserSettings.tsx:152 +msgid "Account Settings" msgstr "" +#: src/components/nav/MainMenu.tsx:59 +#: src/defaults/menuItems.tsx:15 +#~ msgid "Account settings" +#~ msgstr "Account settings" + #: src/components/nav/MainMenu.tsx:67 -#: src/defaults/menuItems.tsx:58 -#: src/pages/Index/Settings/SystemSettings.tsx:315 +#: src/components/nav/NavigationDrawer.tsx:141 +#: src/components/nav/SettingsHeader.tsx:49 +#: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:37 +#: src/pages/Index/Settings/SystemSettings.tsx:310 msgid "System Settings" msgstr "" @@ -1260,14 +1588,11 @@ msgstr "" #~ msgid "Switch to pseudo language" #~ msgstr "Switch to pseudo language" -#: src/components/nav/MainMenu.tsx:77 -msgid "Change Color Mode" -msgstr "" - #: src/components/nav/MainMenu.tsx:86 -#: src/defaults/actions.tsx:71 -#: src/defaults/menuItems.tsx:63 -#: src/pages/Index/Settings/AdminCenter/Index.tsx:221 +#: src/components/nav/NavigationDrawer.tsx:148 +#: src/components/nav/SettingsHeader.tsx:50 +#: src/defaults/actions.tsx:63 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:251 msgid "Admin Center" msgstr "" @@ -1275,458 +1600,732 @@ msgstr "" msgid "Logout" msgstr "" -#: src/components/nav/NavHoverMenu.tsx:65 -#: src/defaults/actions.tsx:60 -msgid "Open Navigation" -msgstr "" - #: src/components/nav/NavHoverMenu.tsx:84 -msgid "View all" -msgstr "" +#~ msgid "View all" +#~ msgstr "View all" #: src/components/nav/NavHoverMenu.tsx:100 #: src/components/nav/NavHoverMenu.tsx:110 -msgid "Get started" -msgstr "" +#~ msgid "Get started" +#~ msgstr "Get started" #: src/components/nav/NavHoverMenu.tsx:103 -msgid "Overview over high-level objects, functions and possible usecases." -msgstr "" - -#: src/components/nav/NavigationDrawer.tsx:57 -msgid "Navigation" -msgstr "" +#~ msgid "Overview over high-level objects, functions and possible usecases." +#~ msgstr "Overview over high-level objects, functions and possible usecases." #: src/components/nav/NavigationDrawer.tsx:60 -msgid "Pages" +#~ msgid "Pages" +#~ msgstr "Pages" + +#: src/components/nav/NavigationDrawer.tsx:77 +#: src/components/render/ModelType.tsx:31 +#: src/defaults/links.tsx:10 +#: src/pages/Index/Settings/SystemSettings.tsx:172 +#: src/pages/part/CategoryDetail.tsx:125 +#: src/pages/part/CategoryDetail.tsx:249 +#: src/pages/part/CategoryDetail.tsx:279 +#: src/pages/part/PartDetail.tsx:856 +msgid "Parts" msgstr "" -#: src/components/nav/NavigationDrawer.tsx:65 -#: src/pages/Index/Settings/AdminCenter/Index.tsx:176 -#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:41 -msgid "Plugins" +#: src/components/nav/NavigationDrawer.tsx:84 +#: src/components/render/Part.tsx:30 +#: src/defaults/links.tsx:11 +#: src/pages/Index/Settings/SystemSettings.tsx:205 +#: src/pages/part/PartDetail.tsx:593 +#: src/pages/stock/LocationDetail.tsx:352 +#: src/pages/stock/StockDetail.tsx:528 +#: src/tables/stock/StockItemTable.tsx:69 +msgid "Stock" msgstr "" -#: src/components/nav/NavigationDrawer.tsx:75 -#: src/defaults/actions.tsx:32 -msgid "Documentation" +#: src/components/nav/NavigationDrawer.tsx:91 +#: src/defaults/links.tsx:13 +#: src/pages/build/BuildDetail.tsx:530 +#: src/pages/build/BuildIndex.tsx:36 +msgid "Manufacturing" msgstr "" -#: src/components/nav/NavigationDrawer.tsx:78 -msgid "About" +#: src/components/nav/NavigationDrawer.tsx:98 +#: src/defaults/links.tsx:18 +#: src/pages/company/ManufacturerDetail.tsx:9 +#: src/pages/company/ManufacturerPartDetail.tsx:258 +#: src/pages/company/SupplierDetail.tsx:9 +#: src/pages/company/SupplierPartDetail.tsx:336 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:480 +#: src/pages/purchasing/PurchasingIndex.tsx:60 +msgid "Purchasing" msgstr "" -#: src/components/nav/NotificationDrawer.tsx:92 -#: src/pages/Index/Settings/SystemSettings.tsx:109 -#: src/pages/Index/Settings/UserSettings.tsx:126 +#: src/components/nav/NavigationDrawer.tsx:105 +#: src/defaults/links.tsx:22 +#: src/pages/company/CustomerDetail.tsx:9 +#: src/pages/sales/ReturnOrderDetail.tsx:469 +#: src/pages/sales/SalesIndex.tsx:53 +#: src/pages/sales/SalesOrderDetail.tsx:520 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:343 +msgid "Sales" +msgstr "" + +#: src/components/nav/NavigationDrawer.tsx:129 +#: src/components/nav/NotificationDrawer.tsx:178 +#: src/pages/Index/Settings/SystemSettings.tsx:110 +#: src/pages/Index/Settings/UserSettings.tsx:127 #: src/pages/Notifications.tsx:65 #: src/pages/Notifications.tsx:151 msgid "Notifications" msgstr "" -#: src/components/nav/NotificationDrawer.tsx:94 +#: src/components/nav/NavigationDrawer.tsx:135 +#: src/components/nav/SettingsHeader.tsx:48 +msgid "User Settings" +msgstr "" + +#: src/components/nav/NavigationDrawer.tsx:173 +msgid "Navigation" +msgstr "" + +#: src/components/nav/NavigationDrawer.tsx:183 +#: src/forms/PurchaseOrderForms.tsx:689 +#: src/forms/StockForms.tsx:614 +#: src/forms/StockForms.tsx:651 +#: src/forms/StockForms.tsx:677 +#: src/forms/StockForms.tsx:705 +#: src/forms/StockForms.tsx:736 +#: src/forms/StockForms.tsx:771 +#: src/forms/StockForms.tsx:813 +#: src/forms/StockForms.tsx:851 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:413 +#: src/tables/RowActions.tsx:129 +#: src/tables/build/BuildLineTable.tsx:101 +msgid "Actions" +msgstr "" + +#: src/components/nav/NavigationDrawer.tsx:191 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:205 +#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:44 +msgid "Plugins" +msgstr "" + +#: src/components/nav/NavigationDrawer.tsx:204 +#: src/defaults/actions.tsx:24 +msgid "Documentation" +msgstr "" + +#: src/components/nav/NavigationDrawer.tsx:210 +msgid "About" +msgstr "" + +#: src/components/nav/NotificationDrawer.tsx:180 msgid "Mark all as read" msgstr "" -#: src/components/nav/NotificationDrawer.tsx:104 +#: src/components/nav/NotificationDrawer.tsx:190 msgid "View all notifications" msgstr "" -#: src/components/nav/NotificationDrawer.tsx:123 +#: src/components/nav/NotificationDrawer.tsx:210 msgid "You have no unread notifications." msgstr "" -#: src/components/nav/NotificationDrawer.tsx:139 -#: src/components/nav/NotificationDrawer.tsx:145 -#: src/tables/notifications/NotificationsTable.tsx:36 -msgid "Notification" -msgstr "" - -#: src/components/nav/NotificationDrawer.tsx:168 -#: src/pages/Notifications.tsx:73 -msgid "Mark as read" -msgstr "" - -#: src/components/nav/SearchDrawer.tsx:78 +#: src/components/nav/SearchDrawer.tsx:85 msgid "results" msgstr "" -#: src/components/nav/SearchDrawer.tsx:370 +#: src/components/nav/SearchDrawer.tsx:380 msgid "Enter search text" msgstr "" -#: src/components/nav/SearchDrawer.tsx:397 +#: src/components/nav/SearchDrawer.tsx:391 +msgid "Refresh search results" +msgstr "" + +#: src/components/nav/SearchDrawer.tsx:402 +#: src/components/nav/SearchDrawer.tsx:409 msgid "Search Options" msgstr "" -#: src/components/nav/SearchDrawer.tsx:400 +#: src/components/nav/SearchDrawer.tsx:412 msgid "Regex search" msgstr "" -#: src/components/nav/SearchDrawer.tsx:410 +#: src/components/nav/SearchDrawer.tsx:421 msgid "Whole word search" msgstr "" -#: src/components/nav/SearchDrawer.tsx:451 +#: src/components/nav/SearchDrawer.tsx:461 msgid "An error occurred during search query" msgstr "" #: src/components/nav/SearchDrawer.tsx:462 -msgid "No results" +#~ msgid "No results" +#~ msgstr "No results" + +#: src/components/nav/SearchDrawer.tsx:472 +#: src/tables/part/PartTestTemplateTable.tsx:76 +msgid "No Results" msgstr "" -#: src/components/nav/SearchDrawer.tsx:465 +#: src/components/nav/SearchDrawer.tsx:475 msgid "No results available for search query" msgstr "" -#: src/components/render/Instance.tsx:217 +#: src/components/panels/AttachmentPanel.tsx:18 +msgid "Attachments" +msgstr "" + +#: src/components/panels/NotesPanel.tsx:24 +#: src/tables/build/BuildOrderTestTable.tsx:143 +#: src/tables/stock/StockTrackingTable.tsx:204 +msgid "Notes" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:47 +msgid "Plugin Inactive" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:50 +msgid "Plugin is not active" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:60 +msgid "Plugin Information" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:74 +#: src/pages/build/BuildDetail.tsx:116 +#: src/pages/company/CompanyDetail.tsx:89 +#: src/pages/company/ManufacturerPartDetail.tsx:89 +#: src/pages/company/ManufacturerPartDetail.tsx:116 +#: src/pages/company/SupplierPartDetail.tsx:140 +#: src/pages/part/CategoryDetail.tsx:101 +#: src/pages/part/PartDetail.tsx:178 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:136 +#: src/pages/sales/ReturnOrderDetail.tsx:107 +#: src/pages/sales/SalesOrderDetail.tsx:116 +#: src/pages/stock/LocationDetail.tsx:103 +#: src/tables/ColumnRenderers.tsx:92 +#: src/tables/bom/UsedInTable.tsx:44 +#: src/tables/build/BuildAllocatedStockTable.tsx:83 +#: src/tables/build/BuildLineTable.tsx:329 +#: src/tables/machine/MachineTypeTable.tsx:74 +#: src/tables/machine/MachineTypeTable.tsx:129 +#: src/tables/machine/MachineTypeTable.tsx:240 +#: src/tables/machine/MachineTypeTable.tsx:344 +#: src/tables/part/RelatedPartTable.tsx:66 +#: src/tables/plugin/PluginListTable.tsx:99 +#: src/tables/sales/SalesOrderAllocationTable.tsx:87 +#: src/tables/sales/SalesOrderLineItemTable.tsx:75 +#: src/tables/stock/LocationTypesTable.tsx:74 +msgid "Description" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:79 +msgid "Author" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:84 +#: src/pages/part/PartSchedulingDetail.tsx:277 +#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:40 +#: src/pages/part/pricing/SaleHistoryPanel.tsx:38 +#: src/tables/ColumnRenderers.tsx:215 +#: src/tables/build/BuildOrderTestTable.tsx:151 +#: src/tables/settings/StocktakeReportTable.tsx:40 +msgid "Date" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:94 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:398 +#: src/pages/part/PartDetail.tsx:331 +#: src/tables/bom/UsedInTable.tsx:84 +#: src/tables/company/CompanyTable.tsx:62 +#: src/tables/company/CompanyTable.tsx:96 +#: src/tables/machine/MachineListTable.tsx:333 +#: src/tables/machine/MachineListTable.tsx:605 +#: src/tables/part/ParametricPartTable.tsx:223 +#: src/tables/part/PartTable.tsx:178 +#: src/tables/part/PartVariantTable.tsx:15 +#: src/tables/plugin/PluginListTable.tsx:94 +#: src/tables/plugin/PluginListTable.tsx:401 +#: src/tables/purchasing/SupplierPartTable.tsx:100 +#: src/tables/purchasing/SupplierPartTable.tsx:190 +#: src/tables/settings/UserTable.tsx:283 +#: src/tables/stock/StockItemTable.tsx:293 +msgid "Active" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:106 +msgid "Package Name" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:112 +msgid "Installation Path" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:117 +#: src/tables/machine/MachineTypeTable.tsx:152 +#: src/tables/machine/MachineTypeTable.tsx:276 +#: src/tables/plugin/PluginListTable.tsx:406 +msgid "Builtin" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:122 +msgid "Package" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:134 +#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:53 +msgid "Plugin Settings" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:146 +#: src/components/render/ModelType.tsx:276 +msgid "Plugin Configuration" +msgstr "" + +#: src/components/plugins/PluginPanel.tsx:87 +#~ msgid "Error occurred while rendering plugin content" +#~ msgstr "Error occurred while rendering plugin content" + +#: src/components/plugins/PluginPanel.tsx:91 +#~ msgid "Plugin did not provide panel rendering function" +#~ msgstr "Plugin did not provide panel rendering function" + +#: src/components/plugins/PluginPanel.tsx:103 +#~ msgid "No content provided for this plugin" +#~ msgstr "No content provided for this plugin" + +#: src/components/plugins/PluginPanel.tsx:116 +#: src/components/plugins/PluginSettingsPanel.tsx:76 +#~ msgid "Error Loading Plugin" +#~ msgstr "Error Loading Plugin" + +#: src/components/plugins/PluginSettingsPanel.tsx:51 +#~ msgid "Error occurred while rendering plugin settings" +#~ msgstr "Error occurred while rendering plugin settings" + +#: src/components/plugins/PluginSettingsPanel.tsx:55 +#~ msgid "Plugin did not provide settings rendering function" +#~ msgstr "Plugin did not provide settings rendering function" + +#: src/components/plugins/PluginUIFeature.tsx:100 +msgid "Error occurred while rendering the template editor." +msgstr "" + +#: src/components/plugins/PluginUIFeature.tsx:111 +msgid "Error Loading Plugin Editor" +msgstr "" + +#: src/components/plugins/PluginUIFeature.tsx:147 +msgid "Error occurred while rendering the template preview." +msgstr "" + +#: src/components/plugins/PluginUIFeature.tsx:158 +msgid "Error Loading Plugin Preview" +msgstr "" + +#: src/components/plugins/RemoteComponent.tsx:70 +msgid "Invalid source or function name" +msgstr "" + +#: src/components/plugins/RemoteComponent.tsx:91 +msgid "Error Loading Content" +msgstr "" + +#: src/components/plugins/RemoteComponent.tsx:95 +msgid "Error occurred while loading plugin content" +msgstr "" + +#: src/components/render/Instance.tsx:224 msgid "Unknown model: {model}" msgstr "" -#: src/components/render/ModelType.tsx:22 -#: src/forms/BuildForms.tsx:213 -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/forms/StockForms.tsx:499 -#: src/forms/StockForms.tsx:533 -#: src/forms/StockForms.tsx:562 -#: src/forms/StockForms.tsx:590 -#: src/forms/StockForms.tsx:621 -#: src/forms/StockForms.tsx:656 -#: src/forms/StockForms.tsx:698 -#: src/forms/StockForms.tsx:734 -#: src/pages/build/BuildDetail.tsx:95 -#: src/pages/part/PartDetail.tsx:1073 -#: src/tables/build/BuildAllocatedStockTable.tsx:82 +#: src/components/render/ModelType.tsx:30 +#: src/forms/BuildForms.tsx:269 +#: src/forms/BuildForms.tsx:337 +#: src/forms/BuildForms.tsx:385 +#: src/forms/BuildForms.tsx:515 +#: src/forms/PurchaseOrderForms.tsx:689 +#: src/forms/ReturnOrderForms.tsx:190 +#: src/forms/SalesOrderForms.tsx:248 +#: src/forms/StockForms.tsx:261 +#: src/forms/StockForms.tsx:614 +#: src/forms/StockForms.tsx:651 +#: src/forms/StockForms.tsx:677 +#: src/forms/StockForms.tsx:705 +#: src/forms/StockForms.tsx:736 +#: src/forms/StockForms.tsx:771 +#: src/forms/StockForms.tsx:813 +#: src/forms/StockForms.tsx:851 +#: src/pages/build/BuildDetail.tsx:90 +#: src/pages/part/PartDetail.tsx:1094 +#: src/tables/build/BuildAllocatedStockTable.tsx:95 +#: src/tables/build/BuildLineTable.tsx:72 #: src/tables/part/PartTable.tsx:28 -#: src/tables/part/RelatedPartTable.tsx:45 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:88 -#: src/tables/sales/SalesOrderAllocationTable.tsx:68 -#: src/tables/stock/StockTrackingTable.tsx:74 +#: src/tables/part/RelatedPartTable.tsx:47 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:130 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:100 +#: src/tables/sales/SalesOrderAllocationTable.tsx:99 +#: src/tables/stock/StockTrackingTable.tsx:78 msgid "Part" msgstr "" -#: src/components/render/ModelType.tsx:23 -#: src/defaults/links.tsx:29 -#: src/defaults/menuItems.tsx:33 -#: src/pages/Index/Settings/SystemSettings.tsx:173 -#: src/pages/part/CategoryDetail.tsx:119 -#: src/pages/part/CategoryDetail.tsx:244 -#: src/pages/part/CategoryDetail.tsx:274 -#: src/pages/part/PartDetail.tsx:827 -msgid "Parts" -msgstr "" - -#: src/components/render/ModelType.tsx:31 +#: src/components/render/ModelType.tsx:40 msgid "Part Parameter Template" msgstr "" -#: src/components/render/ModelType.tsx:32 +#: src/components/render/ModelType.tsx:41 msgid "Part Parameter Templates" msgstr "" -#: src/components/render/ModelType.tsx:38 +#: src/components/render/ModelType.tsx:48 msgid "Part Test Template" msgstr "" -#: src/components/render/ModelType.tsx:39 +#: src/components/render/ModelType.tsx:49 msgid "Part Test Templates" msgstr "" -#: src/components/render/ModelType.tsx:45 -#: src/pages/company/SupplierPartDetail.tsx:203 -#: src/pages/company/SupplierPartDetail.tsx:375 -#: src/pages/stock/StockDetail.tsx:173 -#: src/tables/build/BuildAllocatedStockTable.tsx:131 +#: src/components/render/ModelType.tsx:56 +#: src/pages/company/SupplierPartDetail.tsx:364 +#: src/pages/stock/StockDetail.tsx:194 +#: src/tables/build/BuildAllocatedStockTable.tsx:152 #: src/tables/part/PartPurchaseOrdersTable.tsx:49 -#: src/tables/purchasing/SupplierPartTable.tsx:68 +#: src/tables/purchasing/SupplierPartTable.tsx:70 +#: src/tables/stock/StockItemTable.tsx:229 msgid "Supplier Part" msgstr "" -#: src/components/render/ModelType.tsx:46 +#: src/components/render/ModelType.tsx:57 msgid "Supplier Parts" msgstr "" -#: src/components/render/ModelType.tsx:54 -#: src/pages/company/ManufacturerPartDetail.tsx:132 +#: src/components/render/ModelType.tsx:66 #: src/tables/part/PartPurchaseOrdersTable.tsx:55 +#: src/tables/stock/StockItemTable.tsx:234 msgid "Manufacturer Part" msgstr "" -#: src/components/render/ModelType.tsx:55 +#: src/components/render/ModelType.tsx:67 msgid "Manufacturer Parts" msgstr "" -#: src/components/render/ModelType.tsx:63 -#: src/pages/part/CategoryDetail.tsx:305 +#: src/components/render/ModelType.tsx:76 +#: src/pages/part/CategoryDetail.tsx:310 msgid "Part Category" msgstr "" -#: src/components/render/ModelType.tsx:64 -#: src/pages/part/CategoryDetail.tsx:258 -#: src/pages/part/CategoryDetail.tsx:296 -#: src/pages/part/PartDetail.tsx:1063 +#: src/components/render/ModelType.tsx:77 +#: src/pages/part/CategoryDetail.tsx:263 +#: src/pages/part/CategoryDetail.tsx:301 +#: src/pages/part/PartDetail.tsx:1084 msgid "Part Categories" msgstr "" -#: src/components/render/ModelType.tsx:72 -#: src/pages/stock/StockDetail.tsx:624 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:94 -#: src/tables/stock/StockTrackingTable.tsx:45 +#: src/components/render/ModelType.tsx:86 +#: src/forms/BuildForms.tsx:337 +#: src/forms/BuildForms.tsx:385 +#: src/forms/BuildForms.tsx:515 +#: src/forms/SalesOrderForms.tsx:248 +#: src/pages/stock/StockDetail.tsx:839 +#: src/tables/stock/StockTrackingTable.tsx:49 msgid "Stock Item" msgstr "" -#: src/components/render/ModelType.tsx:73 +#: src/components/render/ModelType.tsx:87 #: src/pages/company/CompanyDetail.tsx:203 -#: src/pages/stock/LocationDetail.tsx:128 -#: src/pages/stock/LocationDetail.tsx:181 -#: src/pages/stock/LocationDetail.tsx:395 +#: src/pages/part/PartStocktakeDetail.tsx:113 +#: src/pages/stock/LocationDetail.tsx:122 +#: src/pages/stock/LocationDetail.tsx:175 +#: src/pages/stock/LocationDetail.tsx:380 msgid "Stock Items" msgstr "" -#: src/components/render/ModelType.tsx:81 +#: src/components/render/ModelType.tsx:96 msgid "Stock Location" msgstr "" -#: src/components/render/ModelType.tsx:82 -#: src/pages/stock/LocationDetail.tsx:195 -#: src/pages/stock/LocationDetail.tsx:387 -#: src/pages/stock/StockDetail.tsx:616 +#: src/components/render/ModelType.tsx:97 +#: src/pages/stock/LocationDetail.tsx:189 +#: src/pages/stock/LocationDetail.tsx:372 +#: src/pages/stock/StockDetail.tsx:831 msgid "Stock Locations" msgstr "" -#: src/components/render/ModelType.tsx:90 +#: src/components/render/ModelType.tsx:106 msgid "Stock Location Type" msgstr "" -#: src/components/render/ModelType.tsx:91 +#: src/components/render/ModelType.tsx:107 msgid "Stock Location Types" msgstr "" -#: src/components/render/ModelType.tsx:95 +#: src/components/render/ModelType.tsx:112 +#: src/pages/part/PartDetail.tsx:712 msgid "Stock History" msgstr "" -#: src/components/render/ModelType.tsx:96 +#: src/components/render/ModelType.tsx:113 msgid "Stock Histories" msgstr "" -#: src/components/render/ModelType.tsx:100 -#: src/defaults/links.tsx:31 -#: src/defaults/menuItems.tsx:43 +#: src/components/render/ModelType.tsx:118 msgid "Build" msgstr "" -#: src/components/render/ModelType.tsx:101 +#: src/components/render/ModelType.tsx:119 msgid "Builds" msgstr "" -#: src/components/render/ModelType.tsx:109 +#: src/components/render/ModelType.tsx:128 msgid "Build Line" msgstr "" -#: src/components/render/ModelType.tsx:110 +#: src/components/render/ModelType.tsx:129 msgid "Build Lines" msgstr "" -#: src/components/render/ModelType.tsx:117 +#: src/components/render/ModelType.tsx:137 msgid "Build Item" msgstr "" -#: src/components/render/ModelType.tsx:118 +#: src/components/render/ModelType.tsx:138 msgid "Build Items" msgstr "" -#: src/components/render/ModelType.tsx:122 -#: src/pages/company/CompanyDetail.tsx:339 +#: src/components/render/ModelType.tsx:143 +#: src/pages/company/CompanyDetail.tsx:321 msgid "Company" msgstr "" -#: src/components/render/ModelType.tsx:123 +#: src/components/render/ModelType.tsx:144 msgid "Companies" msgstr "" -#: src/components/render/ModelType.tsx:131 +#: src/components/render/ModelType.tsx:153 +#: src/pages/build/BuildDetail.tsx:195 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:204 +#: src/pages/sales/ReturnOrderDetail.tsx:174 +#: src/pages/sales/SalesOrderDetail.tsx:186 #: src/tables/TableHoverCard.tsx:81 -#: src/tables/build/BuildOrderTable.tsx:140 -#: src/tables/purchasing/PurchaseOrderTable.tsx:64 -#: src/tables/sales/ReturnOrderTable.tsx:55 -#: src/tables/sales/SalesOrderTable.tsx:62 +#: src/tables/build/BuildOrderTable.tsx:135 +#: src/tables/purchasing/PurchaseOrderTable.tsx:69 +#: src/tables/sales/ReturnOrderTable.tsx:67 +#: src/tables/sales/SalesOrderTable.tsx:67 msgid "Project Code" msgstr "" -#: src/components/render/ModelType.tsx:132 -#: src/pages/Index/Settings/AdminCenter/Index.tsx:128 +#: src/components/render/ModelType.tsx:154 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:145 msgid "Project Codes" msgstr "" -#: src/components/render/ModelType.tsx:138 +#: src/components/render/ModelType.tsx:161 #: src/pages/part/pricing/PurchaseHistoryPanel.tsx:32 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:480 -#: src/tables/part/PartPurchaseOrdersTable.tsx:32 -#: src/tables/stock/StockTrackingTable.tsx:107 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:477 +#: src/pages/stock/StockDetail.tsx:253 +#: src/tables/part/PartPurchaseOrdersTable.tsx:31 +#: src/tables/stock/StockItemTable.tsx:222 +#: src/tables/stock/StockTrackingTable.tsx:111 msgid "Purchase Order" msgstr "" -#: src/components/render/ModelType.tsx:139 -#: src/pages/Index/Settings/SystemSettings.tsx:255 +#: src/components/render/ModelType.tsx:162 +#: src/pages/Index/Settings/SystemSettings.tsx:249 #: src/pages/company/CompanyDetail.tsx:196 -#: src/pages/company/SupplierPartDetail.tsx:237 -#: src/pages/part/PartDetail.tsx:662 +#: src/pages/company/SupplierPartDetail.tsx:249 +#: src/pages/part/PartDetail.tsx:683 #: src/pages/purchasing/PurchasingIndex.tsx:25 msgid "Purchase Orders" msgstr "" -#: src/components/render/ModelType.tsx:147 +#: src/components/render/ModelType.tsx:171 msgid "Purchase Order Line" msgstr "" -#: src/components/render/ModelType.tsx:148 +#: src/components/render/ModelType.tsx:172 msgid "Purchase Order Lines" msgstr "" -#: src/components/render/ModelType.tsx:152 -#: src/pages/build/BuildDetail.tsx:153 -#: src/pages/sales/SalesOrderDetail.tsx:520 -#: src/pages/stock/StockDetail.tsx:221 -#: src/tables/sales/SalesOrderAllocationTable.tsx:50 -#: src/tables/stock/StockTrackingTable.tsx:118 +#: src/components/render/ModelType.tsx:177 +#: src/pages/build/BuildDetail.tsx:148 +#: src/pages/part/pricing/SaleHistoryPanel.tsx:24 +#: src/pages/sales/SalesOrderDetail.tsx:515 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:92 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:341 +#: src/pages/stock/StockDetail.tsx:262 +#: src/tables/sales/SalesOrderAllocationTable.tsx:80 +#: src/tables/stock/StockTrackingTable.tsx:122 msgid "Sales Order" msgstr "" -#: src/components/render/ModelType.tsx:153 -#: src/pages/Index/Settings/SystemSettings.tsx:270 +#: src/components/render/ModelType.tsx:178 +#: src/pages/Index/Settings/SystemSettings.tsx:264 #: src/pages/company/CompanyDetail.tsx:216 -#: src/pages/part/PartDetail.tsx:669 +#: src/pages/part/PartDetail.tsx:695 #: src/pages/sales/SalesIndex.tsx:26 msgid "Sales Orders" msgstr "" -#: src/components/render/ModelType.tsx:161 +#: src/components/render/ModelType.tsx:187 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:340 msgid "Sales Order Shipment" msgstr "" -#: src/components/render/ModelType.tsx:162 +#: src/components/render/ModelType.tsx:188 msgid "Sales Order Shipments" msgstr "" -#: src/components/render/ModelType.tsx:168 -#: src/pages/sales/ReturnOrderDetail.tsx:469 -#: src/tables/stock/StockTrackingTable.tsx:129 +#: src/components/render/ModelType.tsx:195 +#: src/pages/sales/ReturnOrderDetail.tsx:464 +#: src/tables/stock/StockTrackingTable.tsx:133 msgid "Return Order" msgstr "" -#: src/components/render/ModelType.tsx:169 -#: src/pages/Index/Settings/SystemSettings.tsx:286 +#: src/components/render/ModelType.tsx:196 +#: src/pages/Index/Settings/SystemSettings.tsx:280 #: src/pages/company/CompanyDetail.tsx:223 +#: src/pages/part/PartDetail.tsx:702 #: src/pages/sales/SalesIndex.tsx:32 msgid "Return Orders" msgstr "" -#: src/components/render/ModelType.tsx:177 +#: src/components/render/ModelType.tsx:205 msgid "Return Order Line Item" msgstr "" -#: src/components/render/ModelType.tsx:178 +#: src/components/render/ModelType.tsx:206 msgid "Return Order Line Items" msgstr "" -#: src/components/render/ModelType.tsx:182 -#: src/tables/company/AddressTable.tsx:47 +#: src/components/render/ModelType.tsx:211 +#: src/tables/company/AddressTable.tsx:48 msgid "Address" msgstr "" -#: src/components/render/ModelType.tsx:183 -#: src/pages/company/CompanyDetail.tsx:253 +#: src/components/render/ModelType.tsx:212 +#: src/pages/company/CompanyDetail.tsx:255 msgid "Addresses" msgstr "" -#: src/components/render/ModelType.tsx:189 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:195 -#: src/pages/sales/ReturnOrderDetail.tsx:174 -#: src/pages/sales/SalesOrderDetail.tsx:183 +#: src/components/render/ModelType.tsx:219 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:196 +#: src/pages/sales/ReturnOrderDetail.tsx:166 +#: src/pages/sales/SalesOrderDetail.tsx:178 msgid "Contact" msgstr "" -#: src/components/render/ModelType.tsx:190 -#: src/pages/company/CompanyDetail.tsx:247 +#: src/components/render/ModelType.tsx:220 +#: src/pages/company/CompanyDetail.tsx:249 msgid "Contacts" msgstr "" -#: src/components/render/ModelType.tsx:196 +#: src/components/render/ModelType.tsx:227 msgid "Owner" msgstr "" -#: src/components/render/ModelType.tsx:197 +#: src/components/render/ModelType.tsx:228 msgid "Owners" msgstr "" -#: src/components/render/ModelType.tsx:203 -#: src/tables/settings/ImportSessionTable.tsx:121 -#: src/tables/stock/StockItemTestResultTable.tsx:198 -#: src/tables/stock/StockTrackingTable.tsx:195 +#: src/components/render/ModelType.tsx:234 +#~ msgid "Purchase Order Line Item" +#~ msgstr "Purchase Order Line Item" + +#: src/components/render/ModelType.tsx:235 +#: src/tables/settings/BarcodeScanHistoryTable.tsx:80 +#: src/tables/settings/BarcodeScanHistoryTable.tsx:211 +#: src/tables/settings/ImportSessionTable.tsx:120 +#: src/tables/settings/StocktakeReportTable.tsx:44 +#: src/tables/stock/StockItemTestResultTable.tsx:204 +#: src/tables/stock/StockTrackingTable.tsx:181 +#: src/tables/stock/StockTrackingTable.tsx:210 msgid "User" msgstr "" -#: src/components/render/ModelType.tsx:204 -#: src/pages/Index/Settings/AdminCenter/Index.tsx:98 +#: src/components/render/ModelType.tsx:236 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:109 #: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:13 msgid "Users" msgstr "" -#: src/components/render/ModelType.tsx:210 +#: src/components/render/ModelType.tsx:243 msgid "Group" msgstr "" -#: src/components/render/ModelType.tsx:211 +#: src/components/render/ModelType.tsx:244 #: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:20 -#: src/tables/settings/UserTable.tsx:138 -#: src/tables/settings/UserTable.tsx:201 +#: src/tables/settings/UserTable.tsx:137 +#: src/tables/settings/UserTable.tsx:200 msgid "Groups" msgstr "" -#: src/components/render/ModelType.tsx:218 +#: src/components/render/ModelType.tsx:252 msgid "Import Session" msgstr "" -#: src/components/render/ModelType.tsx:219 +#: src/components/render/ModelType.tsx:253 msgid "Import Sessions" msgstr "" -#: src/components/render/ModelType.tsx:225 +#: src/components/render/ModelType.tsx:260 msgid "Label Template" msgstr "" -#: src/components/render/ModelType.tsx:226 -#: src/pages/Index/Settings/AdminCenter/Index.tsx:158 +#: src/components/render/ModelType.tsx:261 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:187 msgid "Label Templates" msgstr "" -#: src/components/render/ModelType.tsx:232 +#: src/components/render/ModelType.tsx:264 +#~ msgid "Unknown Model" +#~ msgstr "Unknown Model" + +#: src/components/render/ModelType.tsx:268 msgid "Report Template" msgstr "" -#: src/components/render/ModelType.tsx:233 -#: src/pages/Index/Settings/AdminCenter/Index.tsx:164 +#: src/components/render/ModelType.tsx:269 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:193 msgid "Report Templates" msgstr "" -#: src/components/render/ModelType.tsx:239 -msgid "Plugin Configuration" -msgstr "" - -#: src/components/render/ModelType.tsx:240 +#: src/components/render/ModelType.tsx:277 msgid "Plugin Configurations" msgstr "" +#: src/components/render/ModelType.tsx:284 +msgid "Content Type" +msgstr "" + +#: src/components/render/ModelType.tsx:285 +msgid "Content Types" +msgstr "" + +#: src/components/render/ModelType.tsx:291 +#: src/tables/machine/MachineListTable.tsx:351 +#: src/tables/machine/MachineTypeTable.tsx:282 +msgid "Errors" +msgstr "" + +#: src/components/render/ModelType.tsx:307 +#~ msgid "Purchase Order Line Items" +#~ msgstr "Purchase Order Line Items" + +#: src/components/render/ModelType.tsx:337 +#~ msgid "Unknown Models" +#~ msgstr "Unknown Models" + #: src/components/render/Order.tsx:121 +#: src/tables/sales/SalesOrderAllocationTable.tsx:136 msgid "Shipment" msgstr "" #: src/components/render/Part.tsx:25 #: src/components/render/Plugin.tsx:17 -#: src/pages/company/CompanyDetail.tsx:325 -#: src/pages/company/SupplierPartDetail.tsx:360 -#: src/pages/part/PartDetail.tsx:879 +#: src/pages/company/CompanyDetail.tsx:307 +#: src/pages/company/SupplierPartDetail.tsx:349 +#: src/pages/part/PartDetail.tsx:911 msgid "Inactive" msgstr "Inactivo" @@ -1736,39 +2335,38 @@ msgstr "Inactivo" msgid "No stock" msgstr "" -#: src/components/render/Part.tsx:30 -#: src/defaults/links.tsx:30 -#: src/defaults/menuItems.tsx:38 -#: src/pages/Index/Settings/SystemSettings.tsx:206 -#: src/pages/part/PartDetail.tsx:543 -#: src/pages/stock/LocationDetail.tsx:367 -#: src/pages/stock/StockDetail.tsx:411 -#: src/tables/stock/StockItemTable.tsx:68 -msgid "Stock" -msgstr "" - -#: src/components/render/Stock.tsx:60 -#: src/pages/stock/StockDetail.tsx:150 -#: src/pages/stock/StockDetail.tsx:581 -#: src/tables/build/BuildAllocatedStockTable.tsx:102 -#: src/tables/sales/SalesOrderAllocationTable.tsx:80 +#: src/components/render/Stock.tsx:61 +#: src/forms/ReturnOrderForms.tsx:190 +#: src/pages/stock/StockDetail.tsx:166 +#: src/pages/stock/StockDetail.tsx:771 +#: src/tables/build/BuildAllocatedStockTable.tsx:123 +#: src/tables/build/BuildOutputTable.tsx:81 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:114 +#: src/tables/sales/SalesOrderAllocationTable.tsx:106 msgid "Serial Number" msgstr "" -#: src/components/render/Stock.tsx:62 -#: src/forms/BuildForms.tsx:218 -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/pages/part/pricing/BomPricingPanel.tsx:109 +#: src/components/render/Stock.tsx:63 +#: src/forms/BuildForms.tsx:206 +#: src/forms/BuildForms.tsx:515 +#: src/forms/PurchaseOrderForms.tsx:689 +#: src/forms/SalesOrderForms.tsx:248 +#: src/pages/part/PartSchedulingDetail.tsx:80 +#: src/pages/part/PartStocktakeDetail.tsx:60 +#: src/pages/part/PartStocktakeDetail.tsx:234 +#: src/pages/part/PartStocktakeDetail.tsx:252 +#: src/pages/part/pricing/BomPricingPanel.tsx:148 #: src/pages/part/pricing/PriceBreakPanel.tsx:89 -#: src/pages/part/pricing/PriceBreakPanel.tsx:171 -#: src/pages/stock/StockDetail.tsx:145 -#: src/pages/stock/StockDetail.tsx:587 -#: src/tables/build/BuildOrderTestTable.tsx:197 -#: src/tables/part/PartPurchaseOrdersTable.tsx:92 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:143 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:171 +#: src/pages/part/pricing/PriceBreakPanel.tsx:172 +#: src/pages/stock/StockDetail.tsx:161 +#: src/pages/stock/StockDetail.tsx:777 +#: src/tables/build/BuildLineTable.tsx:79 +#: src/tables/build/BuildOrderTestTable.tsx:198 +#: src/tables/part/PartPurchaseOrdersTable.tsx:93 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:146 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:177 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:77 -#: src/tables/stock/StockTrackingTable.tsx:59 +#: src/tables/stock/StockTrackingTable.tsx:63 msgid "Quantity" msgstr "" @@ -1842,10 +2440,6 @@ msgstr "" #~ msgid "Required Part" #~ msgstr "Required Part" -#: src/components/tables/build/BuildLineTable.tsx:152 -#~ msgid "Required Quantity" -#~ msgstr "Required Quantity" - #: src/components/tables/build/BuildOrderTable.tsx:52 #~ msgid "Progress" #~ msgstr "Progress" @@ -2126,14 +2720,6 @@ msgstr "" #~ msgid "user deleted" #~ msgstr "user deleted" -#: src/components/tables/settings/UserTable.tsx:168 -#~ msgid "First Name" -#~ msgstr "First Name" - -#: src/components/tables/settings/UserTable.tsx:173 -#~ msgid "Last Name" -#~ msgstr "Last Name" - #: src/components/tables/stock/StockItemTable.tsx:247 #~ msgid "Test Filter" #~ msgstr "Test Filter" @@ -2146,36 +2732,21 @@ msgstr "" #~ msgid "Stock location updated" #~ msgstr "Stock location updated" -#: src/components/widgets/DisplayWidget.tsx:11 -#: src/pages/Index/Settings/AccountSettings/DisplaySettingsPanel.tsx:17 -msgid "Display Settings" -msgstr "" - -#: src/components/widgets/DisplayWidget.tsx:15 -#: src/pages/Index/Settings/AccountSettings/DisplaySettingsPanel.tsx:23 -msgid "Color Mode" -msgstr "" - -#: src/components/widgets/DisplayWidget.tsx:21 -#: src/pages/Index/Settings/AccountSettings/DisplaySettingsPanel.tsx:33 -msgid "Language" -msgstr "" - #: src/components/widgets/FeedbackWidget.tsx:19 -msgid "Something is new: Platform UI" -msgstr "" +#~ msgid "Something is new: Platform UI" +#~ msgstr "Something is new: Platform UI" #: src/components/widgets/FeedbackWidget.tsx:21 -msgid "We are building a new UI with a modern stack. What you currently see is not fixed and will be redesigned but demonstrates the UI/UX possibilities we will have going forward." -msgstr "" +#~ msgid "We are building a new UI with a modern stack. What you currently see is not fixed and will be redesigned but demonstrates the UI/UX possibilities we will have going forward." +#~ msgstr "We are building a new UI with a modern stack. What you currently see is not fixed and will be redesigned but demonstrates the UI/UX possibilities we will have going forward." #: src/components/widgets/FeedbackWidget.tsx:32 -msgid "Provide Feedback" -msgstr "" +#~ msgid "Provide Feedback" +#~ msgstr "Provide Feedback" #: src/components/widgets/GetStartedWidget.tsx:11 -msgid "Getting started" -msgstr "" +#~ msgid "Getting started" +#~ msgstr "Getting started" #: src/components/widgets/MarkdownEditor.tsx:108 #~ msgid "Failed to upload image" @@ -2186,28 +2757,24 @@ msgstr "" #~ msgstr "Notes saved" #: src/components/widgets/WidgetLayout.tsx:166 -msgid "Layout" -msgstr "" +#~ msgid "Layout" +#~ msgstr "Layout" #: src/components/widgets/WidgetLayout.tsx:172 -msgid "Reset Layout" -msgstr "" +#~ msgid "Reset Layout" +#~ msgstr "Reset Layout" #: src/components/widgets/WidgetLayout.tsx:185 -msgid "Stop Edit" -msgstr "" - -#: src/components/widgets/WidgetLayout.tsx:185 -msgid "Edit Layout" -msgstr "" +#~ msgid "Stop Edit" +#~ msgstr "Stop Edit" #: src/components/widgets/WidgetLayout.tsx:191 -msgid "Appearance" -msgstr "" +#~ msgid "Appearance" +#~ msgstr "Appearance" #: src/components/widgets/WidgetLayout.tsx:203 -msgid "Show Boxes" -msgstr "" +#~ msgid "Show Boxes" +#~ msgstr "Show Boxes" #: src/contexts/LanguageContext.tsx:20 msgid "Arabic" @@ -2286,201 +2853,175 @@ msgid "Korean" msgstr "" #: src/contexts/LanguageContext.tsx:39 -msgid "Latvian" +msgid "Lithuanian" msgstr "" #: src/contexts/LanguageContext.tsx:40 -msgid "Dutch" +msgid "Latvian" msgstr "" #: src/contexts/LanguageContext.tsx:41 -msgid "Norwegian" +msgid "Dutch" msgstr "" #: src/contexts/LanguageContext.tsx:42 -msgid "Polish" +msgid "Norwegian" msgstr "" #: src/contexts/LanguageContext.tsx:43 -msgid "Portuguese" +msgid "Polish" msgstr "" #: src/contexts/LanguageContext.tsx:44 -msgid "Portuguese (Brazilian)" +msgid "Portuguese" msgstr "" #: src/contexts/LanguageContext.tsx:45 -msgid "Romanian" +msgid "Portuguese (Brazilian)" msgstr "" #: src/contexts/LanguageContext.tsx:46 -msgid "Russian" +msgid "Romanian" msgstr "" #: src/contexts/LanguageContext.tsx:47 -msgid "Slovak" +msgid "Russian" msgstr "" #: src/contexts/LanguageContext.tsx:48 -msgid "Slovenian" +msgid "Slovak" msgstr "" #: src/contexts/LanguageContext.tsx:49 -msgid "Swedish" +msgid "Slovenian" msgstr "" #: src/contexts/LanguageContext.tsx:50 -msgid "Thai" +msgid "Swedish" msgstr "" #: src/contexts/LanguageContext.tsx:51 -msgid "Turkish" +msgid "Thai" msgstr "" #: src/contexts/LanguageContext.tsx:52 -msgid "Ukrainian" +msgid "Turkish" msgstr "" #: src/contexts/LanguageContext.tsx:53 -msgid "Vietnamese" +msgid "Ukrainian" msgstr "" #: src/contexts/LanguageContext.tsx:54 -msgid "Chinese (Simplified)" +msgid "Vietnamese" msgstr "" #: src/contexts/LanguageContext.tsx:55 +msgid "Chinese (Simplified)" +msgstr "" + +#: src/contexts/LanguageContext.tsx:56 msgid "Chinese (Traditional)" msgstr "" +#: src/defaults/actions.tsx:18 +msgid "Go to the InvenTree dashboard" +msgstr "" + #: src/defaults/actions.tsx:18 #: src/defaults/links.tsx:27 #: src/defaults/menuItems.tsx:9 -msgid "Home" -msgstr "" +#~ msgid "Home" +#~ msgstr "Home" #: src/defaults/actions.tsx:25 -#: src/defaults/links.tsx:28 -#: src/defaults/menuItems.tsx:28 -#: src/pages/Index/Dashboard.tsx:19 -#: src/pages/Index/Settings/UserSettings.tsx:46 -msgid "Dashboard" -msgstr "" - -#: src/defaults/actions.tsx:26 -msgid "Go to the InvenTree dashboard" -msgstr "" - -#: src/defaults/actions.tsx:33 msgid "Visit the documentation to learn more about InvenTree" msgstr "" -#: src/defaults/actions.tsx:39 -#: src/defaults/links.tsx:98 -#: src/defaults/links.tsx:128 +#: src/defaults/actions.tsx:31 +#: src/defaults/links.tsx:92 +#: src/defaults/links.tsx:124 msgid "About InvenTree" msgstr "" -#: src/defaults/actions.tsx:40 -#: src/defaults/links.tsx:129 +#: src/defaults/actions.tsx:32 msgid "About the InvenTree org" msgstr "" -#: src/defaults/actions.tsx:46 +#: src/defaults/actions.tsx:38 msgid "Server Information" msgstr "" -#: src/defaults/actions.tsx:47 -#: src/defaults/links.tsx:123 +#: src/defaults/actions.tsx:39 +#: src/defaults/links.tsx:118 msgid "About this Inventree instance" msgstr "" -#: src/defaults/actions.tsx:53 -#: src/defaults/links.tsx:111 +#: src/defaults/actions.tsx:45 +#: src/defaults/links.tsx:105 +#: src/defaults/links.tsx:131 msgid "License Information" msgstr "" -#: src/defaults/actions.tsx:54 -#: src/defaults/links.tsx:135 +#: src/defaults/actions.tsx:46 msgid "Licenses for dependencies of the service" msgstr "" -#: src/defaults/actions.tsx:61 +#: src/defaults/actions.tsx:52 +msgid "Open Navigation" +msgstr "" + +#: src/defaults/actions.tsx:53 msgid "Open the main navigation menu" msgstr "" -#: src/defaults/actions.tsx:72 +#: src/defaults/actions.tsx:64 msgid "Go to the Admin Center" msgstr "" -#: src/defaults/dashboardItems.tsx:15 -msgid "Subscribed Parts" -msgstr "" - -#: src/defaults/dashboardItems.tsx:22 -msgid "Subscribed Categories" -msgstr "" - #: src/defaults/dashboardItems.tsx:29 -msgid "Latest Parts" -msgstr "" +#~ msgid "Latest Parts" +#~ msgstr "Latest Parts" #: src/defaults/dashboardItems.tsx:36 -msgid "BOM Waiting Validation" -msgstr "" +#~ msgid "BOM Waiting Validation" +#~ msgstr "BOM Waiting Validation" #: src/defaults/dashboardItems.tsx:43 -msgid "Recently Updated" -msgstr "" - -#: src/defaults/dashboardItems.tsx:50 -#: src/tables/part/PartTable.tsx:238 -msgid "Low Stock" -msgstr "" +#~ msgid "Recently Updated" +#~ msgstr "Recently Updated" #: src/defaults/dashboardItems.tsx:57 -msgid "Depleted Stock" -msgstr "" +#~ msgid "Depleted Stock" +#~ msgstr "Depleted Stock" #: src/defaults/dashboardItems.tsx:64 -msgid "Required for Build Orders" -msgstr "" +#~ msgid "Required for Build Orders" +#~ msgstr "Required for Build Orders" #: src/defaults/dashboardItems.tsx:71 -msgid "Expired Stock" -msgstr "" +#~ msgid "Expired Stock" +#~ msgstr "Expired Stock" #: src/defaults/dashboardItems.tsx:78 -msgid "Stale Stock" -msgstr "" +#~ msgid "Stale Stock" +#~ msgstr "Stale Stock" #: src/defaults/dashboardItems.tsx:85 -msgid "Build Orders In Progress" -msgstr "" - -#: src/defaults/dashboardItems.tsx:92 -msgid "Overdue Build Orders" -msgstr "" +#~ msgid "Build Orders In Progress" +#~ msgstr "Build Orders In Progress" #: src/defaults/dashboardItems.tsx:99 -msgid "Outstanding Purchase Orders" -msgstr "" - -#: src/defaults/dashboardItems.tsx:106 -msgid "Overdue Purchase Orders" -msgstr "" +#~ msgid "Outstanding Purchase Orders" +#~ msgstr "Outstanding Purchase Orders" #: src/defaults/dashboardItems.tsx:113 -msgid "Outstanding Sales Orders" -msgstr "" - -#: src/defaults/dashboardItems.tsx:120 -msgid "Overdue Sales Orders" -msgstr "" +#~ msgid "Outstanding Sales Orders" +#~ msgstr "Outstanding Sales Orders" #: src/defaults/dashboardItems.tsx:127 -msgid "Current News" -msgstr "" +#~ msgid "Current News" +#~ msgstr "Current News" #: src/defaults/defaultHostList.tsx:8 #~ msgid "InvenTree Demo" @@ -2490,98 +3031,81 @@ msgstr "" #~ msgid "Local Server" #~ msgstr "Local Server" -#: src/defaults/links.tsx:12 -#: src/pages/company/CompanyDetail.tsx:96 -msgid "Website" -msgstr "" - #: src/defaults/links.tsx:17 -msgid "GitHub" -msgstr "" +#~ msgid "GitHub" +#~ msgstr "GitHub" #: src/defaults/links.tsx:22 -msgid "Demo" -msgstr "" - -#: src/defaults/links.tsx:33 -#: src/defaults/menuItems.tsx:48 -#: src/pages/company/ManufacturerDetail.tsx:9 -#: src/pages/company/ManufacturerPartDetail.tsx:263 -#: src/pages/company/SupplierDetail.tsx:9 -#: src/pages/company/SupplierPartDetail.tsx:347 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:483 -#: src/pages/purchasing/PurchasingIndex.tsx:60 -msgid "Purchasing" -msgstr "" - -#: src/defaults/links.tsx:37 -#: src/defaults/menuItems.tsx:53 -#: src/pages/company/CustomerDetail.tsx:9 -#: src/pages/sales/ReturnOrderDetail.tsx:474 -#: src/pages/sales/SalesIndex.tsx:53 -#: src/pages/sales/SalesOrderDetail.tsx:525 -msgid "Sales" -msgstr "" +#~ msgid "Demo" +#~ msgstr "Demo" #: src/defaults/links.tsx:41 #: src/defaults/menuItems.tsx:71 #: src/pages/Index/Playground.tsx:217 -msgid "Playground" -msgstr "" +#~ msgid "Playground" +#~ msgstr "Playground" -#: src/defaults/links.tsx:55 -msgid "Getting Started" -msgstr "" - -#: src/defaults/links.tsx:56 -msgid "Getting started with InvenTree" -msgstr "" - -#: src/defaults/links.tsx:62 +#: src/defaults/links.tsx:45 msgid "API" msgstr "" -#: src/defaults/links.tsx:63 +#: src/defaults/links.tsx:48 msgid "InvenTree API documentation" msgstr "" -#: src/defaults/links.tsx:68 +#: src/defaults/links.tsx:52 msgid "Developer Manual" msgstr "" -#: src/defaults/links.tsx:69 +#: src/defaults/links.tsx:55 msgid "InvenTree developer manual" msgstr "" -#: src/defaults/links.tsx:74 +#: src/defaults/links.tsx:59 msgid "FAQ" msgstr "" -#: src/defaults/links.tsx:75 +#: src/defaults/links.tsx:62 msgid "Frequently asked questions" msgstr "" +#: src/defaults/links.tsx:66 +msgid "GitHub Repository" +msgstr "" + +#: src/defaults/links.tsx:69 +msgid "InvenTree source code on GitHub" +msgstr "" + #: src/defaults/links.tsx:76 #~ msgid "Instance" #~ msgstr "Instance" +#: src/defaults/links.tsx:79 +#: src/defaults/links.tsx:117 +msgid "System Information" +msgstr "" + #: src/defaults/links.tsx:83 #~ msgid "InvenTree" #~ msgstr "InvenTree" -#: src/defaults/links.tsx:85 -#: src/defaults/links.tsx:122 -msgid "System Information" -msgstr "" - #: src/defaults/links.tsx:117 #~ msgid "Licenses for packages used by InvenTree" #~ msgstr "Licenses for packages used by InvenTree" -#: src/defaults/links.tsx:134 -msgid "Licenses" +#: src/defaults/links.tsx:125 +msgid "About the InvenTree Project" msgstr "" +#: src/defaults/links.tsx:132 +msgid "Licenses for dependencies of the InvenTree software" +msgstr "" + +#: src/defaults/links.tsx:134 +#~ msgid "Licenses" +#~ msgstr "Licenses" + #: src/defaults/menuItems.tsx:7 #~ msgid "Open sourcea" #~ msgstr "Open sourcea" @@ -2607,8 +3131,8 @@ msgstr "" #~ msgstr "Profile page" #: src/defaults/menuItems.tsx:17 -msgid "User attributes and design settings." -msgstr "" +#~ msgid "User attributes and design settings." +#~ msgstr "User attributes and design settings." #: src/defaults/menuItems.tsx:21 #~ msgid "Free for everyone" @@ -2619,8 +3143,8 @@ msgstr "" #~ msgstr "The fluid of Smeargle’s tail secretions changes" #: src/defaults/menuItems.tsx:23 -msgid "View for interactive scanning and multiple actions." -msgstr "" +#~ msgid "View for interactive scanning and multiple actions." +#~ msgstr "View for interactive scanning and multiple actions." #: src/defaults/menuItems.tsx:24 #~ msgid "The fluid of Smeargle’s tail secretions changes in the intensity" @@ -2698,51 +3222,130 @@ msgstr "" #~ msgid "Are you sure you want to delete this attachment?" #~ msgstr "Are you sure you want to delete this attachment?" -#: src/forms/BuildForms.tsx:158 -msgid "Next serial number" +#: src/forms/BuildForms.tsx:248 +#~ msgid "Remove output" +#~ msgstr "Remove output" + +#: src/forms/BuildForms.tsx:269 +#: src/tables/build/BuildAllocatedStockTable.tsx:147 +#: src/tables/build/BuildOrderTestTable.tsx:177 +#: src/tables/build/BuildOrderTestTable.tsx:201 +#: src/tables/build/BuildOutputTable.tsx:460 +msgid "Build Output" msgstr "" -#: src/forms/BuildForms.tsx:162 -msgid "Latest serial number" +#: src/forms/BuildForms.tsx:269 +#: src/forms/BuildForms.tsx:337 +#: src/forms/BuildForms.tsx:385 +#: src/tables/build/BuildLineTable.tsx:89 +msgid "Batch" msgstr "" -#: src/forms/BuildForms.tsx:234 -msgid "Remove output" +#: src/forms/BuildForms.tsx:269 +#: src/forms/BuildForms.tsx:337 +#: src/forms/BuildForms.tsx:385 +#: src/forms/PurchaseOrderForms.tsx:603 +#: src/pages/build/BuildDetail.tsx:104 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:142 +#: src/pages/sales/ReturnOrderDetail.tsx:113 +#: src/pages/sales/SalesOrderDetail.tsx:122 +#: src/tables/build/BuildOrderTable.tsx:125 +#: src/tables/machine/MachineListTable.tsx:336 +#: src/tables/part/PartPurchaseOrdersTable.tsx:37 +#: src/tables/purchasing/PurchaseOrderTable.tsx:58 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:157 +#: src/tables/sales/ReturnOrderTable.tsx:56 +#: src/tables/sales/SalesOrderTable.tsx:56 +#: src/tables/settings/CustomStateTable.tsx:57 +#: src/tables/settings/ImportSessionTable.tsx:114 +#: src/tables/stock/StockItemTable.tsx:298 +#: src/tables/stock/StockTrackingTable.tsx:56 +msgid "Status" msgstr "" -#: src/forms/BuildForms.tsx:316 +#: src/forms/BuildForms.tsx:289 msgid "Complete Build Outputs" msgstr "" -#: src/forms/BuildForms.tsx:320 +#: src/forms/BuildForms.tsx:292 msgid "Build outputs have been completed" msgstr "" -#: src/forms/BuildForms.tsx:389 +#: src/forms/BuildForms.tsx:353 msgid "Scrap Build Outputs" msgstr "" -#: src/forms/BuildForms.tsx:393 +#: src/forms/BuildForms.tsx:356 msgid "Build outputs have been scrapped" msgstr "" -#: src/forms/BuildForms.tsx:425 -#: src/forms/BuildForms.tsx:449 +#: src/forms/BuildForms.tsx:393 msgid "Cancel Build Outputs" msgstr "" -#: src/forms/BuildForms.tsx:426 -msgid "Selected build outputs will be deleted" -msgstr "" - -#: src/forms/BuildForms.tsx:453 +#: src/forms/BuildForms.tsx:396 msgid "Build outputs have been cancelled" msgstr "" +#: src/forms/BuildForms.tsx:408 +#~ msgid "Selected build outputs will be deleted" +#~ msgstr "Selected build outputs will be deleted" + +#: src/forms/BuildForms.tsx:470 +#~ msgid "Remove line" +#~ msgstr "Remove line" + +#: src/forms/BuildForms.tsx:515 +#: src/forms/SalesOrderForms.tsx:248 +#: src/tables/build/BuildLineTable.tsx:174 +#: src/tables/sales/SalesOrderLineItemTable.tsx:276 +#: src/tables/stock/StockItemTable.tsx:309 +msgid "Allocated" +msgstr "" + +#: src/forms/BuildForms.tsx:545 +#: src/forms/SalesOrderForms.tsx:239 +#: src/pages/build/BuildDetail.tsx:208 +msgid "Source Location" +msgstr "" + +#: src/forms/BuildForms.tsx:546 +#: src/forms/SalesOrderForms.tsx:240 +msgid "Select the source location for the stock allocation" +msgstr "Seleccione la ubicación de origen para la asignación de stock" + +#: src/forms/BuildForms.tsx:566 +#: src/forms/SalesOrderForms.tsx:274 +#: src/tables/build/BuildLineTable.tsx:442 +#: src/tables/build/BuildLineTable.tsx:569 +#: src/tables/build/BuildLineTable.tsx:642 +#: src/tables/sales/SalesOrderLineItemTable.tsx:302 +#: src/tables/sales/SalesOrderLineItemTable.tsx:326 +msgid "Allocate Stock" +msgstr "" + +#: src/forms/BuildForms.tsx:569 +#: src/forms/SalesOrderForms.tsx:279 +msgid "Stock items allocated" +msgstr "Artículos de stock seleccionados" + #: src/forms/CompanyForms.tsx:150 #~ msgid "Company updated" #~ msgstr "Company updated" +#: src/forms/PartForms.tsx:67 +#: src/forms/PartForms.tsx:154 +#: src/pages/part/CategoryDetail.tsx:117 +#: src/pages/part/PartDetail.tsx:384 +#: src/tables/part/PartCategoryTable.tsx:90 +#: src/tables/part/PartTable.tsx:294 +msgid "Subscribed" +msgstr "" + +#: src/forms/PartForms.tsx:68 +msgid "Subscribe to notifications for this part" +msgstr "" + #: src/forms/PartForms.tsx:106 #~ msgid "Create Part" #~ msgstr "Create Part" @@ -2751,191 +3354,190 @@ msgstr "" #~ msgid "Part created" #~ msgstr "Part created" -#: src/forms/PartForms.tsx:124 -msgid "Parent part category" -msgstr "" - #: src/forms/PartForms.tsx:129 #~ msgid "Part updated" #~ msgstr "Part updated" -#: src/forms/PurchaseOrderForms.tsx:300 +#: src/forms/PartForms.tsx:140 +msgid "Parent part category" +msgstr "" + +#: src/forms/PartForms.tsx:155 +msgid "Subscribe to notifications for this category" +msgstr "" + +#: src/forms/PurchaseOrderForms.tsx:314 +msgid "Assign Batch Code and Serial Numbers" +msgstr "" + +#: src/forms/PurchaseOrderForms.tsx:316 +msgid "Assign Batch Code" +msgstr "" + +#: src/forms/PurchaseOrderForms.tsx:336 msgid "Choose Location" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:308 +#: src/forms/PurchaseOrderForms.tsx:344 msgid "Item Destination selected" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:317 +#: src/forms/PurchaseOrderForms.tsx:353 msgid "Part category default location selected" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:327 +#: src/forms/PurchaseOrderForms.tsx:363 msgid "Received stock location selected" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:332 +#: src/forms/PurchaseOrderForms.tsx:368 msgid "Default location selected" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:343 -#: src/forms/PurchaseOrderForms.tsx:435 -msgid "Scan Barcode" -msgstr "" +#: src/forms/PurchaseOrderForms.tsx:421 +#~ msgid "Assign Batch Code{0}" +#~ msgstr "Assign Batch Code{0}" -#: src/forms/PurchaseOrderForms.tsx:388 +#: src/forms/PurchaseOrderForms.tsx:427 msgid "Set Location" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:396 -msgid "Assign Batch Code{0}" -msgstr "" - -#: src/forms/PurchaseOrderForms.tsx:405 -#: src/forms/StockForms.tsx:420 +#: src/forms/PurchaseOrderForms.tsx:442 +#: src/forms/StockForms.tsx:539 msgid "Adjust Packaging" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:412 -msgid "Change Status" -msgstr "" - -#: src/forms/PurchaseOrderForms.tsx:418 -msgid "Add Note" -msgstr "" - #: src/forms/PurchaseOrderForms.tsx:444 #: src/forms/StockForms.tsx:428 -msgid "Remove item from list" +#~ msgid "Remove item from list" +#~ msgstr "Remove item from list" + +#: src/forms/PurchaseOrderForms.tsx:450 +msgid "Change Status" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:471 -#: src/forms/StockForms.tsx:499 -#: src/forms/StockForms.tsx:533 -#: src/forms/StockForms.tsx:562 -#: src/forms/StockForms.tsx:590 -#: src/forms/StockForms.tsx:621 -#: src/forms/StockForms.tsx:656 -#: src/forms/StockForms.tsx:698 -#: src/forms/StockForms.tsx:734 -#: src/pages/stock/StockDetail.tsx:181 -#: src/tables/ColumnRenderers.tsx:49 -#: src/tables/stock/StockTrackingTable.tsx:85 +#: src/forms/PurchaseOrderForms.tsx:456 +msgid "Add Note" +msgstr "" + +#: src/forms/PurchaseOrderForms.tsx:503 +#: src/forms/StockForms.tsx:614 +#: src/forms/StockForms.tsx:651 +#: src/forms/StockForms.tsx:677 +#: src/forms/StockForms.tsx:705 +#: src/forms/StockForms.tsx:736 +#: src/forms/StockForms.tsx:771 +#: src/forms/StockForms.tsx:813 +#: src/forms/StockForms.tsx:851 +#: src/pages/stock/StockDetail.tsx:202 +#: src/tables/ColumnRenderers.tsx:60 +#: src/tables/stock/StockTrackingTable.tsx:89 msgid "Location" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:486 +#: src/forms/PurchaseOrderForms.tsx:518 msgid "Store at default location" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:499 +#: src/forms/PurchaseOrderForms.tsx:533 msgid "Store at line item destination" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:509 +#: src/forms/PurchaseOrderForms.tsx:545 msgid "Store with already received stock" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:524 -#: src/pages/build/BuildDetail.tsx:219 -#: src/pages/stock/StockDetail.tsx:162 -#: src/pages/stock/StockDetail.tsx:599 -#: src/tables/build/BuildAllocatedStockTable.tsx:109 -#: src/tables/build/BuildOrderTestTable.tsx:188 -#: src/tables/sales/SalesOrderAllocationTable.tsx:87 +#: src/forms/PurchaseOrderForms.tsx:566 +#: src/pages/build/BuildDetail.tsx:222 +#: src/pages/stock/StockDetail.tsx:185 +#: src/pages/stock/StockDetail.tsx:793 +#: src/tables/build/BuildAllocatedStockTable.tsx:130 +#: src/tables/build/BuildOrderTestTable.tsx:189 +#: src/tables/build/BuildOutputTable.tsx:86 +#: src/tables/sales/SalesOrderAllocationTable.tsx:113 msgid "Batch Code" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:535 -msgid "Serial numbers" +#: src/forms/PurchaseOrderForms.tsx:566 +#~ msgid "Serial numbers" +#~ msgstr "Serial numbers" + +#: src/forms/PurchaseOrderForms.tsx:567 +msgid "Enter batch code for received items" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:544 -#: src/forms/StockForms.tsx:443 -#: src/pages/company/SupplierPartDetail.tsx:156 -#: src/pages/company/SupplierPartDetail.tsx:207 -#: src/pages/stock/StockDetail.tsx:244 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:192 +#: src/forms/PurchaseOrderForms.tsx:579 +#: src/forms/StockForms.tsx:152 +msgid "Serial Numbers" +msgstr "" + +#: src/forms/PurchaseOrderForms.tsx:580 +msgid "Enter serial numbers for received items" +msgstr "" + +#: src/forms/PurchaseOrderForms.tsx:590 +#: src/forms/StockForms.tsx:556 +#: src/pages/company/SupplierPartDetail.tsx:168 +#: src/pages/company/SupplierPartDetail.tsx:219 +#: src/pages/stock/StockDetail.tsx:320 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:198 msgid "Packaging" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:556 -#: src/pages/build/BuildDetail.tsx:109 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:148 -#: src/pages/sales/ReturnOrderDetail.tsx:121 -#: src/pages/sales/SalesOrderDetail.tsx:127 -#: src/tables/build/BuildOrderTable.tsx:122 -#: src/tables/machine/MachineListTable.tsx:335 -#: src/tables/part/PartPurchaseOrdersTable.tsx:37 -#: src/tables/purchasing/PurchaseOrderTable.tsx:55 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:132 -#: src/tables/sales/ReturnOrderTable.tsx:46 -#: src/tables/sales/SalesOrderTable.tsx:53 -#: src/tables/settings/ImportSessionTable.tsx:115 -#: src/tables/stock/StockItemTable.tsx:294 -#: src/tables/stock/StockTrackingTable.tsx:52 -msgid "Status" -msgstr "" - -#: src/forms/PurchaseOrderForms.tsx:564 -#: src/pages/company/SupplierPartDetail.tsx:110 -#: src/tables/ColumnRenderers.tsx:132 +#: src/forms/PurchaseOrderForms.tsx:612 +#: src/pages/company/SupplierPartDetail.tsx:115 +#: src/tables/ColumnRenderers.tsx:143 msgid "Note" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/pages/company/SupplierPartDetail.tsx:128 -#: src/tables/purchasing/SupplierPriceBreakTable.tsx:57 -msgid "SKU" -msgstr "" - -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/tables/part/PartPurchaseOrdersTable.tsx:120 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:178 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:127 -msgid "Received" -msgstr "" - -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/forms/StockForms.tsx:499 -#: src/forms/StockForms.tsx:533 -#: src/forms/StockForms.tsx:562 -#: src/forms/StockForms.tsx:590 -#: src/forms/StockForms.tsx:621 -#: src/forms/StockForms.tsx:656 -#: src/forms/StockForms.tsx:698 -#: src/forms/StockForms.tsx:734 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:413 -#: src/tables/RowActions.tsx:113 -msgid "Actions" -msgstr "" - -#: src/forms/PurchaseOrderForms.tsx:655 -msgid "Receive Line Items" -msgstr "" - #: src/forms/PurchaseOrderForms.tsx:658 #~ msgid "Receive line items" #~ msgstr "Receive line items" -#: src/forms/StockForms.tsx:104 -msgid "Add given quantity as packs instead of individual items" +#: src/forms/PurchaseOrderForms.tsx:689 +#: src/pages/company/SupplierPartDetail.tsx:133 +#: src/tables/purchasing/SupplierPriceBreakTable.tsx:57 +msgid "SKU" +msgstr "" + +#: src/forms/PurchaseOrderForms.tsx:689 +#: src/tables/part/PartPurchaseOrdersTable.tsx:126 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:184 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:247 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:152 +msgid "Received" +msgstr "" + +#: src/forms/PurchaseOrderForms.tsx:701 +msgid "Receive Line Items" +msgstr "" + +#: src/forms/ReturnOrderForms.tsx:201 +msgid "Receive Items" +msgstr "" + +#: src/forms/ReturnOrderForms.tsx:208 +msgid "Item received into stock" +msgstr "" + +#: src/forms/StockForms.tsx:80 +#: src/hooks/UsePlaceholder.tsx:57 +msgid "Next serial number" msgstr "" #: src/forms/StockForms.tsx:110 #~ msgid "Create Stock Item" #~ msgstr "Create Stock Item" -#: src/forms/StockForms.tsx:117 +#: src/forms/StockForms.tsx:131 +msgid "Add given quantity as packs instead of individual items" +msgstr "" + +#: src/forms/StockForms.tsx:145 msgid "Enter initial quantity for this stock item" msgstr "" -#: src/forms/StockForms.tsx:124 -msgid "Serial Numbers" -msgstr "" - -#: src/forms/StockForms.tsx:125 +#: src/forms/StockForms.tsx:154 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" @@ -2943,82 +3545,102 @@ msgstr "" #~ msgid "Stock item updated" #~ msgstr "Stock item updated" -#: src/forms/StockForms.tsx:179 -#: src/pages/stock/StockDetail.tsx:434 -#: src/tables/stock/StockItemTable.tsx:417 -#: src/tables/stock/StockItemTable.tsx:535 +#: src/forms/StockForms.tsx:169 +#: src/pages/stock/StockDetail.tsx:131 +msgid "Stock Status" +msgstr "" + +#: src/forms/StockForms.tsx:218 +#: src/pages/stock/StockDetail.tsx:554 +#: src/tables/stock/StockItemTable.tsx:421 +#: src/tables/stock/StockItemTable.tsx:541 msgid "Add Stock Item" msgstr "" -#: src/forms/StockForms.tsx:362 +#: src/forms/StockForms.tsx:262 +msgid "Select the part to install" +msgstr "" + +#: src/forms/StockForms.tsx:480 msgid "Loading..." msgstr "" -#: src/forms/StockForms.tsx:408 +#: src/forms/StockForms.tsx:527 msgid "Move to default location" msgstr "" -#: src/forms/StockForms.tsx:499 -#: src/forms/StockForms.tsx:533 -#: src/forms/StockForms.tsx:562 -#: src/forms/StockForms.tsx:590 -#: src/forms/StockForms.tsx:621 -#: src/forms/StockForms.tsx:656 -#: src/forms/StockForms.tsx:698 -#: src/forms/StockForms.tsx:734 -#: src/pages/part/PartDetail.tsx:230 -#: src/pages/part/PartDetail.tsx:843 -#: src/tables/stock/StockItemTable.tsx:325 +#: src/forms/StockForms.tsx:614 +#: src/forms/StockForms.tsx:651 +#: src/forms/StockForms.tsx:677 +#: src/forms/StockForms.tsx:705 +#: src/forms/StockForms.tsx:736 +#: src/forms/StockForms.tsx:771 +#: src/forms/StockForms.tsx:813 +#: src/forms/StockForms.tsx:851 +#: src/pages/part/PartDetail.tsx:251 +#: src/pages/part/PartDetail.tsx:875 +#: src/tables/stock/StockItemTable.tsx:329 msgid "In Stock" -msgstr "" +msgstr "Disponible" -#: src/forms/StockForms.tsx:499 +#: src/forms/StockForms.tsx:614 msgid "Move" msgstr "" -#: src/forms/StockForms.tsx:562 -#: src/pages/stock/StockDetail.tsx:518 -#: src/tables/stock/StockItemTestResultTable.tsx:328 +#: src/forms/StockForms.tsx:677 +#: src/pages/stock/StockDetail.tsx:681 +#: src/tables/stock/StockItemTestResultTable.tsx:346 msgid "Add" msgstr "" -#: src/forms/StockForms.tsx:590 -#: src/pages/Index/Scan.tsx:266 -#: src/pages/stock/StockDetail.tsx:508 +#: src/forms/StockForms.tsx:705 +#: src/pages/Index/Scan.tsx:280 +#: src/pages/stock/StockDetail.tsx:670 msgid "Count" msgstr "" -#: src/forms/StockForms.tsx:835 +#: src/forms/StockForms.tsx:953 +#: src/pages/stock/StockDetail.tsx:682 +#: src/tables/stock/StockItemTable.tsx:454 msgid "Add Stock" msgstr "" -#: src/forms/StockForms.tsx:844 +#: src/forms/StockForms.tsx:962 +#: src/pages/stock/StockDetail.tsx:691 +#: src/tables/stock/StockItemTable.tsx:463 msgid "Remove Stock" msgstr "" -#: src/forms/StockForms.tsx:853 -#: src/pages/part/PartDetail.tsx:1017 +#: src/forms/StockForms.tsx:971 +#: src/pages/part/PartDetail.tsx:1039 +#: src/pages/stock/StockDetail.tsx:712 +#: src/tables/stock/StockItemTable.tsx:483 msgid "Transfer Stock" msgstr "" -#: src/forms/StockForms.tsx:862 -#: src/pages/part/PartDetail.tsx:1006 +#: src/forms/StockForms.tsx:980 +#: src/pages/part/PartDetail.tsx:1028 +#: src/pages/stock/LocationDetail.tsx:314 +#: src/pages/stock/LocationDetail.tsx:318 +#: src/tables/stock/StockItemTable.tsx:472 +#: src/tables/stock/StockItemTable.tsx:476 msgid "Count Stock" msgstr "" -#: src/forms/StockForms.tsx:871 +#: src/forms/StockForms.tsx:989 msgid "Change Stock Status" msgstr "" -#: src/forms/StockForms.tsx:880 +#: src/forms/StockForms.tsx:998 msgid "Merge Stock" msgstr "" -#: src/forms/StockForms.tsx:899 +#: src/forms/StockForms.tsx:1017 +#: src/tables/stock/StockItemTable.tsx:530 msgid "Delete Stock Items" msgstr "" -#: src/forms/StockForms.tsx:906 +#: src/forms/StockForms.tsx:1024 msgid "Parent stock location" msgstr "" @@ -3042,11 +3664,11 @@ msgstr "" #~ msgid "You have been logged out" #~ msgstr "You have been logged out" -#: src/functions/auth.tsx:117 +#: src/functions/auth.tsx:128 msgid "Logged Out" msgstr "" -#: src/functions/auth.tsx:118 +#: src/functions/auth.tsx:129 msgid "Successfully logged out" msgstr "" @@ -3062,20 +3684,20 @@ msgstr "" #~ msgid "Found an existing login - welcome back!" #~ msgstr "Found an existing login - welcome back!" -#: src/functions/auth.tsx:156 +#: src/functions/auth.tsx:167 msgid "Check your inbox for a reset link. This only works if you have an account. Check in spam too." msgstr "" -#: src/functions/auth.tsx:163 +#: src/functions/auth.tsx:174 #: src/pages/Auth/Set-Password.tsx:39 msgid "Reset failed" msgstr "" -#: src/functions/auth.tsx:194 +#: src/functions/auth.tsx:205 msgid "Logged In" msgstr "" -#: src/functions/auth.tsx:195 +#: src/functions/auth.tsx:206 msgid "Successfully logged in" msgstr "" @@ -3095,30 +3717,38 @@ msgstr "" #~ msgid "method parameter not supplied" #~ msgstr "method parameter not supplied" -#: src/functions/notifications.tsx:10 +#: src/functions/notifications.tsx:12 msgid "Not implemented" msgstr "" -#: src/functions/notifications.tsx:11 +#: src/functions/notifications.tsx:13 msgid "This feature is not yet implemented" msgstr "" -#: src/functions/notifications.tsx:21 -msgid "Permission denied" -msgstr "" +#: src/functions/notifications.tsx:24 +#~ msgid "Permission denied" +#~ msgstr "Permission denied" -#: src/functions/notifications.tsx:22 +#: src/functions/notifications.tsx:25 msgid "You do not have permission to perform this action" msgstr "" -#: src/functions/notifications.tsx:33 +#: src/functions/notifications.tsx:36 msgid "Invalid Return Code" msgstr "" -#: src/functions/notifications.tsx:34 +#: src/functions/notifications.tsx:37 msgid "Server returned status {returnCode}" msgstr "" +#: src/functions/notifications.tsx:47 +msgid "Timeout" +msgstr "" + +#: src/functions/notifications.tsx:48 +msgid "The request timed out" +msgstr "" + #: src/hooks/UseForm.tsx:88 msgid "Item Created" msgstr "" @@ -3135,20 +3765,24 @@ msgstr "" msgid "Are you sure you want to delete this item?" msgstr "" +#: src/hooks/UsePlaceholder.tsx:59 +msgid "Latest serial number" +msgstr "" + #: src/pages/Auth/Logged-In.tsx:22 msgid "Checking if you are already logged in" msgstr "" -#: src/pages/Auth/Login.tsx:31 -#: src/pages/Index/Scan.tsx:329 +#: src/pages/Auth/Login.tsx:35 +#: src/pages/Index/Scan.tsx:343 msgid "No selection" msgstr "" -#: src/pages/Auth/Login.tsx:87 +#: src/pages/Auth/Login.tsx:91 msgid "Welcome, log in below" msgstr "" -#: src/pages/Auth/Login.tsx:89 +#: src/pages/Auth/Login.tsx:93 msgid "Register below" msgstr "" @@ -3162,8 +3796,8 @@ msgstr "" #: src/pages/Auth/Reset.tsx:41 #: src/pages/Auth/Set-Password.tsx:112 -msgid "Send mail" -msgstr "" +#~ msgid "Send mail" +#~ msgstr "Send mail" #: src/pages/Auth/Set-Password.tsx:30 msgid "Token invalid" @@ -3174,22 +3808,22 @@ msgid "You need to provide a valid token to set a new password. Check your inbox msgstr "" #: src/pages/Auth/Set-Password.tsx:49 -msgid "No token provided" -msgstr "" +#~ msgid "No token provided" +#~ msgstr "No token provided" #: src/pages/Auth/Set-Password.tsx:50 -msgid "You need to provide a token to set a new password. Check your inbox for a reset link." -msgstr "" +#~ msgid "You need to provide a token to set a new password. Check your inbox for a reset link." +#~ msgstr "You need to provide a token to set a new password. Check your inbox for a reset link." -#: src/pages/Auth/Set-Password.tsx:73 +#: src/pages/Auth/Set-Password.tsx:68 msgid "Password set" msgstr "" -#: src/pages/Auth/Set-Password.tsx:74 +#: src/pages/Auth/Set-Password.tsx:69 msgid "The password was set successfully. You can now login with your new password" msgstr "" -#: src/pages/Auth/Set-Password.tsx:101 +#: src/pages/Auth/Set-Password.tsx:96 msgid "Set new password" msgstr "" @@ -3206,20 +3840,20 @@ msgstr "" #~ msgstr "Sorry, an unexpected error has occurred." #: src/pages/Index/Dashboard.tsx:22 -msgid "Autoupdate" -msgstr "" +#~ msgid "Autoupdate" +#~ msgstr "Autoupdate" #: src/pages/Index/Dashboard.tsx:26 -msgid "This page is a replacement for the old start page with the same information. This page will be deprecated and replaced by the home page." -msgstr "" +#~ msgid "This page is a replacement for the old start page with the same information. This page will be deprecated and replaced by the home page." +#~ msgstr "This page is a replacement for the old start page with the same information. This page will be deprecated and replaced by the home page." #: src/pages/Index/Home.tsx:58 -msgid "Welcome to your Dashboard{0}" -msgstr "" +#~ msgid "Welcome to your Dashboard{0}" +#~ msgstr "Welcome to your Dashboard{0}" #: src/pages/Index/Playground.tsx:222 -msgid "This page is a showcase for the possibilities of Platform UI." -msgstr "" +#~ msgid "This page is a showcase for the possibilities of Platform UI." +#~ msgstr "This page is a showcase for the possibilities of Platform UI." #: src/pages/Index/Profile/Profile.tsx:30 #: src/pages/Index/Profile/Profile.tsx:141 @@ -3365,125 +3999,190 @@ msgstr "" msgid "Image Barcode" msgstr "" -#: src/pages/Index/Scan.tsx:247 +#: src/pages/Index/Scan.tsx:261 msgid "Selected elements are not known" msgstr "" -#: src/pages/Index/Scan.tsx:254 +#: src/pages/Index/Scan.tsx:268 msgid "Multiple object types selected" msgstr "" -#: src/pages/Index/Scan.tsx:261 +#: src/pages/Index/Scan.tsx:275 msgid "Actions for {0}" msgstr "" -#: src/pages/Index/Scan.tsx:282 +#: src/pages/Index/Scan.tsx:296 msgid "Scan Page" msgstr "" -#: src/pages/Index/Scan.tsx:285 +#: src/pages/Index/Scan.tsx:299 msgid "This page can be used for continuously scanning items and taking actions on them." msgstr "" -#: src/pages/Index/Scan.tsx:292 +#: src/pages/Index/Scan.tsx:306 msgid "Toggle Fullscreen" msgstr "" -#: src/pages/Index/Scan.tsx:305 +#: src/pages/Index/Scan.tsx:319 msgid "Select the input method you want to use to scan items." msgstr "" -#: src/pages/Index/Scan.tsx:307 +#: src/pages/Index/Scan.tsx:321 msgid "Input" msgstr "" -#: src/pages/Index/Scan.tsx:314 +#: src/pages/Index/Scan.tsx:328 msgid "Select input method" msgstr "" -#: src/pages/Index/Scan.tsx:315 +#: src/pages/Index/Scan.tsx:329 msgid "Nothing found" msgstr "" -#: src/pages/Index/Scan.tsx:323 +#: src/pages/Index/Scan.tsx:337 msgid "Depending on the selected parts actions will be shown here. Not all barcode types are supported currently." msgstr "" -#: src/pages/Index/Scan.tsx:325 +#: src/pages/Index/Scan.tsx:339 msgid "Action" msgstr "" -#: src/pages/Index/Scan.tsx:334 +#: src/pages/Index/Scan.tsx:348 msgid "{0} items selected" msgstr "" -#: src/pages/Index/Scan.tsx:337 +#: src/pages/Index/Scan.tsx:351 msgid "General Actions" msgstr "" -#: src/pages/Index/Scan.tsx:351 +#: src/pages/Index/Scan.tsx:365 msgid "Lookup part" msgstr "" -#: src/pages/Index/Scan.tsx:359 +#: src/pages/Index/Scan.tsx:373 msgid "Open Link" msgstr "" -#: src/pages/Index/Scan.tsx:375 +#: src/pages/Index/Scan.tsx:389 msgid "History is locally kept in this browser." msgstr "" -#: src/pages/Index/Scan.tsx:376 +#: src/pages/Index/Scan.tsx:390 msgid "The history is kept in this browser's local storage. So it won't be shared with other users or other devices but is persistent through reloads. You can select items in the history to perform actions on them. To add items, scan/enter them in the Input area." msgstr "" -#: src/pages/Index/Scan.tsx:378 +#: src/pages/Index/Scan.tsx:392 #: src/pages/Notifications.tsx:100 msgid "History" msgstr "" -#: src/pages/Index/Scan.tsx:384 +#: src/pages/Index/Scan.tsx:398 msgid "Delete History" msgstr "" -#: src/pages/Index/Scan.tsx:449 +#: src/pages/Index/Scan.tsx:463 msgid "No history" msgstr "" -#: src/pages/Index/Scan.tsx:467 +#: src/pages/Index/Scan.tsx:481 msgid "Item" msgstr "" -#: src/pages/Index/Scan.tsx:470 +#: src/pages/Index/Scan.tsx:484 msgid "Type" msgstr "" -#: src/pages/Index/Scan.tsx:473 +#: src/pages/Index/Scan.tsx:487 msgid "Source" msgstr "" -#: src/pages/Index/Scan.tsx:476 +#: src/pages/Index/Scan.tsx:490 msgid "Scanned at" msgstr "" -#: src/pages/Index/Scan.tsx:528 +#: src/pages/Index/Scan.tsx:547 msgid "Enter item serial or data" msgstr "" -#: src/pages/Index/Scan.tsx:540 +#: src/pages/Index/Scan.tsx:559 msgid "Add dummy item" msgstr "" +#: src/pages/Index/Scan.tsx:569 +msgid "Start scanning by selecting a camera and pressing the play button." +msgstr "Comienza a escanear seleccionando una cámara y presionando el botón reproducir." + +#: src/pages/Index/Scan.tsx:650 +msgid "Error while getting camera" +msgstr "Error obteniendo la cámara" + +#: src/pages/Index/Scan.tsx:673 +msgid "Error while scanning" +msgstr "Error al escanear" + +#: src/pages/Index/Scan.tsx:687 +msgid "Error while stopping" +msgstr "Error al detener" + +#: src/pages/Index/Scan.tsx:745 +msgid "Stop scanning" +msgstr "Detener el escaneado" + +#: src/pages/Index/Scan.tsx:754 +msgid "Start scanning" +msgstr "Comenzar a escanear" + +#: src/pages/Index/Scan.tsx:763 +msgid "Scanning" +msgstr "Escaneando" + +#: src/pages/Index/Scan.tsx:763 +msgid "Not scanning" +msgstr "No escaneando" + +#: src/pages/Index/Scan.tsx:775 +msgid "Select Camera" +msgstr "Seleccionar cámara" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:28 +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:50 +msgid "Edit User Information" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:32 +msgid "User details updated" +msgstr "" + #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:41 -msgid "Account Details" +msgid "User Details" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:41 +#~ msgid "Account Details" +#~ msgstr "Account Details" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:44 +msgid "User Actions" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:48 +msgid "Edit User" msgstr "" #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:50 -msgid "First name" +#~ msgid "First name" +#~ msgstr "First name" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:54 +msgid "Set Password" msgstr "" #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:55 -msgid "Last name" +#~ msgid "Last name" +#~ msgstr "Last name" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:56 +msgid "Set User Password" msgstr "" #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:58 @@ -3495,15 +4194,28 @@ msgstr "" #~ msgstr "Last name: {0}" #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:67 -msgid "First name:" -msgstr "" +#~ msgid "First name:" +#~ msgstr "First name:" #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:71 -msgid "Last name:" +#~ msgid "Last name:" +#~ msgstr "Last name:" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:73 +msgid "First Name" msgstr "" -#: src/pages/Index/Settings/AccountSettings/DisplaySettingsPanel.tsx:41 -msgid "Use pseudo language" +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:79 +msgid "Last Name" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:85 +msgid "Staff Access" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:93 +#: src/tables/settings/UserTable.tsx:293 +msgid "Superuser" msgstr "" #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:55 @@ -3600,27 +4312,6 @@ msgstr "" msgid "No tokens configured" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:398 -#: src/pages/part/PartDetail.tsx:297 -#: src/tables/bom/UsedInTable.tsx:84 -#: src/tables/build/BuildOrderTable.tsx:110 -#: src/tables/company/CompanyTable.tsx:61 -#: src/tables/company/CompanyTable.tsx:95 -#: src/tables/machine/MachineListTable.tsx:332 -#: src/tables/machine/MachineListTable.tsx:594 -#: src/tables/part/ParametricPartTable.tsx:223 -#: src/tables/part/PartTable.tsx:178 -#: src/tables/part/PartVariantTable.tsx:15 -#: src/tables/plugin/PluginListTable.tsx:149 -#: src/tables/plugin/PluginListTable.tsx:271 -#: src/tables/plugin/PluginListTable.tsx:563 -#: src/tables/purchasing/SupplierPartTable.tsx:98 -#: src/tables/purchasing/SupplierPartTable.tsx:187 -#: src/tables/settings/UserTable.tsx:284 -#: src/tables/stock/StockItemTable.tsx:289 -msgid "Active" -msgstr "" - #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:401 msgid "Expiry" msgstr "" @@ -3630,38 +4321,74 @@ msgid "Last Seen" msgstr "" #: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:65 -msgid "bars" -msgstr "" +#~ msgid "bars" +#~ msgstr "bars" #: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:66 -msgid "oval" -msgstr "" +#~ msgid "oval" +#~ msgstr "oval" #: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:67 -msgid "dots" -msgstr "" +#~ msgid "dots" +#~ msgstr "dots" #: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:81 -msgid "Theme" -msgstr "" +#~ msgid "Theme" +#~ msgstr "Theme" #: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:87 -msgid "Primary color" +#~ msgid "Primary color" +#~ msgstr "Primary color" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:88 +msgid "Bars" msgstr "" -#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:100 +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:89 +msgid "Oval" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:90 +msgid "Dots" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:101 +msgid "Display Settings" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:107 +msgid "Language" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:115 +msgid "Use pseudo language" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:122 +msgid "Color Mode" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:133 +msgid "Highlight color" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:145 +msgid "Example" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:151 msgid "White color" msgstr "" -#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:108 +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:167 msgid "Black color" msgstr "" -#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:116 +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:183 msgid "Border Radius" msgstr "" -#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:132 +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:199 msgid "Loader" msgstr "" @@ -3673,89 +4400,156 @@ msgstr "" #~ msgid "Advanced Amininistrative Options for InvenTree" #~ msgstr "Advanced Amininistrative Options for InvenTree" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:104 +#: src/pages/Index/Settings/AdminCenter/CurrencyManagmentPanel.tsx:27 +#: src/tables/ColumnRenderers.tsx:262 +msgid "Currency" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/CurrencyManagmentPanel.tsx:32 +msgid "Rate" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/CurrencyManagmentPanel.tsx:44 +msgid "Exchange rates updated" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/CurrencyManagmentPanel.tsx:50 +msgid "Exchange rate update error" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/CurrencyManagmentPanel.tsx:62 +msgid "Refresh currency exchange rates" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/CurrencyManagmentPanel.tsx:99 +msgid "Last fetched" +msgstr "Últimas obtenidas" + +#: src/pages/Index/Settings/AdminCenter/CurrencyManagmentPanel.tsx:100 +msgid "Base currency" +msgstr "Divisa principal" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:115 msgid "Data Import" msgstr "" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:110 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:121 +msgid "Barcode Scans" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:127 msgid "Background Tasks" msgstr "" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:116 -msgid "Error Reports" -msgstr "" - -#: src/pages/Index/Settings/AdminCenter/Index.tsx:122 -msgid "Currencies" -msgstr "" - #: src/pages/Index/Settings/AdminCenter/Index.tsx:127 #~ msgid "Templates" #~ msgstr "Templates" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:140 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:133 +msgid "Error Reports" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:139 +msgid "Currencies" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:157 +msgid "Custom States" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:163 +#: src/pages/Index/Settings/AdminCenter/UnitManagmentPanel.tsx:58 msgid "Custom Units" msgstr "" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:146 -#: src/pages/part/CategoryDetail.tsx:264 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:169 +#: src/pages/part/CategoryDetail.tsx:269 msgid "Part Parameters" msgstr "" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:152 -msgid "Category Parameters" -msgstr "" - -#: src/pages/Index/Settings/AdminCenter/Index.tsx:170 -msgid "Location Types" -msgstr "" - #: src/pages/Index/Settings/AdminCenter/Index.tsx:170 #~ msgid "Location types" #~ msgstr "Location types" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:182 -#: src/tables/machine/MachineTypeTable.tsx:287 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:175 +msgid "Category Parameters" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:181 +msgid "Stocktake" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:199 +msgid "Location Types" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:211 +#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:48 +#: src/tables/machine/MachineTypeTable.tsx:308 msgid "Machines" msgstr "" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:192 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:221 msgid "Quick Actions" msgstr "" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:197 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:226 msgid "Add a new user" msgstr "" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:222 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:252 msgid "Advanced Options" msgstr "" #: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:43 -msgid "Machine types" -msgstr "" +#~ msgid "Machine types" +#~ msgstr "Machine types" #: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:53 -msgid "Machine Error Stack" +#~ msgid "Machine Error Stack" +#~ msgstr "Machine Error Stack" + +#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:56 +msgid "Machine Types" msgstr "" #: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:62 -msgid "There are no machine registry errors." +#~ msgid "There are no machine registry errors." +#~ msgstr "There are no machine registry errors." + +#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:64 +msgid "Machine Errors" msgstr "" -#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:28 -#: src/tables/settings/UserTable.tsx:119 +#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:77 +msgid "Registry Registry Errors" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:80 +msgid "There are machine registry errors" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:86 +msgid "Machine Registry Errors" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:89 +msgid "There are no machine registry errors" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:31 +#: src/tables/settings/UserTable.tsx:118 msgid "Info" msgstr "" -#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:32 -msgid "External plugins are not enabled for this InvenTree installation." -msgstr "" - #: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:33 #~ msgid "Plugin Error Stack" #~ msgstr "Plugin Error Stack" +#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:35 +msgid "External plugins are not enabled for this InvenTree installation." +msgstr "" + #: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:45 #~ msgid "Warning" #~ msgstr "Warning" @@ -3764,34 +4558,46 @@ msgstr "" #~ msgid "Changing the settings below require you to immediately restart the server. Do not change this while under active usage." #~ msgstr "Changing the settings below require you to immediately restart the server. Do not change this while under active usage." -#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:50 +#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:73 msgid "Plugin Errors" msgstr "" -#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:59 -msgid "Plugin Settings" +#: src/pages/Index/Settings/AdminCenter/ReportTemplatePanel.tsx:17 +msgid "Page Size" +msgstr "Tamaño de página" + +#: src/pages/Index/Settings/AdminCenter/ReportTemplatePanel.tsx:20 +msgid "Landscape" +msgstr "Orientación Horizontal" + +#: src/pages/Index/Settings/AdminCenter/ReportTemplatePanel.tsx:26 +msgid "Attach to Model" msgstr "" -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:53 -msgid "Background Worker Not Running" +#: src/pages/Index/Settings/AdminCenter/StocktakePanel.tsx:25 +msgid "Stocktake Reports" msgstr "" -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:54 +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:30 msgid "The background task manager service is not running. Contact your system administrator." msgstr "" -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:60 -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:76 +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:35 +#~ msgid "Background Worker Not Running" +#~ msgstr "Background Worker Not Running" + +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:36 +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:45 msgid "Pending Tasks" msgstr "" -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:64 -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:84 +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:37 +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:53 msgid "Scheduled Tasks" msgstr "" -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:68 -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:92 +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:38 +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:61 msgid "Failed Tasks" msgstr "" @@ -3811,11 +4617,6 @@ msgstr "" #~ msgid "Reports" #~ msgstr "Reports" -#: src/pages/Index/Settings/AdminCenter/TemplateManagementPanel.tsx:89 -#: src/pages/build/BuildDetail.tsx:373 -#~ msgid "Report" -#~ msgstr "Report" - #: src/pages/Index/Settings/AdminCenter/TemplateManagementPanel.tsx:99 #~ msgid "Purchase order" #~ msgstr "Purchase order" @@ -3836,23 +4637,35 @@ msgstr "" #~ msgid "Stock location" #~ msgstr "Stock location" +#: src/pages/Index/Settings/AdminCenter/UnitManagmentPanel.tsx:21 +msgid "Alias" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/UnitManagmentPanel.tsx:22 +msgid "Dimensionless" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/UnitManagmentPanel.tsx:66 +msgid "All units" +msgstr "" + #: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:32 msgid "Select settings relevant for user lifecycle. More available in" msgstr "" #: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:37 -msgid "System settings" -msgstr "" +#~ msgid "System settings" +#~ msgstr "System settings" -#: src/pages/Index/Settings/SystemSettings.tsx:67 +#: src/pages/Index/Settings/SystemSettings.tsx:66 msgid "Login" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:93 +#: src/pages/Index/Settings/SystemSettings.tsx:92 msgid "Barcodes" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:115 +#: src/pages/Index/Settings/SystemSettings.tsx:116 msgid "Pricing" msgstr "" @@ -3864,64 +4677,46 @@ msgstr "" #~ msgid "Exchange Rates" #~ msgstr "Exchange Rates" -#: src/pages/Index/Settings/SystemSettings.tsx:150 +#: src/pages/Index/Settings/SystemSettings.tsx:151 msgid "Labels" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:156 -#: src/pages/Index/Settings/UserSettings.tsx:132 +#: src/pages/Index/Settings/SystemSettings.tsx:157 +#: src/pages/Index/Settings/UserSettings.tsx:133 msgid "Reporting" msgstr "" #: src/pages/Index/Settings/SystemSettings.tsx:231 -#: src/pages/part/PartDetail.tsx:682 -msgid "Stocktake" -msgstr "" - -#: src/pages/Index/Settings/SystemSettings.tsx:237 -#: src/pages/build/BuildDetail.tsx:554 -#: src/pages/build/BuildIndex.tsx:22 -#: src/pages/part/PartDetail.tsx:616 -#: src/pages/sales/SalesOrderDetail.tsx:333 +#: src/pages/build/BuildIndex.tsx:27 +#: src/pages/part/PartDetail.tsx:636 +#: src/pages/sales/SalesOrderDetail.tsx:355 msgid "Build Orders" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:318 -msgid "Switch to User Setting" -msgstr "" +#: src/pages/Index/Settings/SystemSettings.tsx:317 +#~ msgid "Switch to User Setting" +#~ msgstr "Switch to User Setting" -#: src/pages/Index/Settings/UserSettings.tsx:34 +#: src/pages/Index/Settings/UserSettings.tsx:35 msgid "Account" msgstr "" -#: src/pages/Index/Settings/UserSettings.tsx:40 +#: src/pages/Index/Settings/UserSettings.tsx:41 msgid "Security" msgstr "" -#: src/pages/Index/Settings/UserSettings.tsx:78 +#: src/pages/Index/Settings/UserSettings.tsx:79 msgid "Display Options" msgstr "" -#: src/pages/Index/Settings/UserSettings.tsx:150 -msgid "Account Settings" -msgstr "" - -#: src/pages/Index/Settings/UserSettings.tsx:158 -msgid "Switch to System Setting" -msgstr "" - -#: src/pages/Index/UserSettings.tsx:103 -#~ msgid "User Settings" -#~ msgstr "User Settings" +#: src/pages/Index/Settings/UserSettings.tsx:159 +#~ msgid "Switch to System Setting" +#~ msgstr "Switch to System Setting" #: src/pages/Logged-In.tsx:24 #~ msgid "Found an exsisting login - using it to log you in." #~ msgstr "Found an exsisting login - using it to log you in." -#: src/pages/NotFound.tsx:17 -#~ msgid "Not Found" -#~ msgstr "Not Found" - #: src/pages/NotFound.tsx:20 #~ msgid "Sorry, this page is not known or was moved." #~ msgstr "Sorry, this page is not known or was moved." @@ -3942,104 +4737,86 @@ msgstr "" #~ msgid "Build Status" #~ msgstr "Build Status" -#: src/pages/build/BuildDetail.tsx:102 -#: src/pages/part/PartDetail.tsx:150 +#: src/pages/build/BuildDetail.tsx:97 +#: src/pages/company/ManufacturerPartDetail.tsx:81 +#: src/pages/company/SupplierPartDetail.tsx:91 +#: src/pages/part/PartDetail.tsx:171 +#: src/pages/stock/StockDetail.tsx:122 #: src/tables/bom/BomTable.tsx:118 #: src/tables/bom/UsedInTable.tsx:39 -#: src/tables/build/BuildLineTable.tsx:173 -#: src/tables/build/BuildOrderTable.tsx:55 -#: src/tables/sales/SalesOrderLineItemTable.tsx:62 -#: src/tables/stock/StockItemTable.tsx:53 +#: src/tables/build/BuildAllocatedStockTable.tsx:104 +#: src/tables/build/BuildLineTable.tsx:324 +#: src/tables/build/BuildOrderTable.tsx:64 +#: src/tables/sales/SalesOrderLineItemTable.tsx:70 +#: src/tables/stock/StockItemTable.tsx:54 msgid "IPN" msgstr "" -#: src/pages/build/BuildDetail.tsx:115 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:121 -#: src/pages/sales/ReturnOrderDetail.tsx:95 -#: src/pages/sales/SalesOrderDetail.tsx:101 -#: src/tables/ColumnRenderers.tsx:121 -#: src/tables/build/BuildAllocatedStockTable.tsx:90 -#: src/tables/build/BuildLineTable.tsx:184 +#: src/pages/build/BuildDetail.tsx:110 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:115 +#: src/pages/sales/ReturnOrderDetail.tsx:86 +#: src/pages/sales/SalesOrderDetail.tsx:95 +#: src/tables/ColumnRenderers.tsx:132 +#: src/tables/build/BuildAllocatedStockTable.tsx:111 +#: src/tables/build/BuildLineTable.tsx:335 msgid "Reference" msgstr "" -#: src/pages/build/BuildDetail.tsx:121 -#: src/pages/company/CompanyDetail.tsx:90 -#: src/pages/company/ManufacturerPartDetail.tsx:83 -#: src/pages/company/SupplierPartDetail.tsx:96 -#: src/pages/part/CategoryDetail.tsx:101 -#: src/pages/part/PartDetail.tsx:157 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:142 -#: src/pages/sales/ReturnOrderDetail.tsx:115 -#: src/pages/sales/SalesOrderDetail.tsx:121 -#: src/pages/stock/LocationDetail.tsx:109 -#: src/tables/ColumnRenderers.tsx:81 -#: src/tables/bom/UsedInTable.tsx:44 -#: src/tables/build/BuildAllocatedStockTable.tsx:70 -#: src/tables/build/BuildLineTable.tsx:178 -#: src/tables/machine/MachineTypeTable.tsx:69 -#: src/tables/machine/MachineTypeTable.tsx:112 -#: src/tables/machine/MachineTypeTable.tsx:219 -#: src/tables/machine/MachineTypeTable.tsx:323 -#: src/tables/part/RelatedPartTable.tsx:64 -#: src/tables/plugin/PluginListTable.tsx:129 -#: src/tables/plugin/PluginListTable.tsx:276 -#: src/tables/sales/SalesOrderAllocationTable.tsx:56 -#: src/tables/sales/SalesOrderLineItemTable.tsx:67 -#: src/tables/stock/LocationTypesTable.tsx:74 -msgid "Description" -msgstr "" - -#: src/pages/build/BuildDetail.tsx:129 +#: src/pages/build/BuildDetail.tsx:124 msgid "Parent Build" msgstr "" -#: src/pages/build/BuildDetail.tsx:140 +#: src/pages/build/BuildDetail.tsx:135 msgid "Build Quantity" msgstr "" -#: src/pages/build/BuildDetail.tsx:148 -#: src/pages/build/BuildDetail.tsx:274 +#: src/pages/build/BuildDetail.tsx:143 +#: src/pages/build/BuildDetail.tsx:277 msgid "Completed Outputs" msgstr "" -#: src/pages/build/BuildDetail.tsx:165 -#: src/tables/build/BuildOrderTable.tsx:151 +#: src/pages/build/BuildDetail.tsx:160 +#: src/tables/build/BuildOrderTable.tsx:142 msgid "Issued By" msgstr "" -#: src/pages/build/BuildDetail.tsx:172 -#: src/pages/part/PartDetail.tsx:365 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:220 -#: src/pages/sales/ReturnOrderDetail.tsx:199 -#: src/pages/sales/SalesOrderDetail.tsx:208 -#: src/tables/build/BuildOrderTable.tsx:157 -#: src/tables/purchasing/PurchaseOrderTable.tsx:75 -#: src/tables/sales/ReturnOrderTable.tsx:66 -#: src/tables/sales/SalesOrderTable.tsx:73 +#: src/pages/build/BuildDetail.tsx:167 +#: src/pages/part/PartDetail.tsx:406 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:244 +#: src/pages/sales/ReturnOrderDetail.tsx:216 +#: src/pages/sales/SalesOrderDetail.tsx:226 +#: src/tables/build/BuildOrderTable.tsx:148 +#: src/tables/purchasing/PurchaseOrderTable.tsx:76 +#: src/tables/sales/ReturnOrderTable.tsx:74 +#: src/tables/sales/SalesOrderTable.tsx:74 msgid "Responsible" msgstr "" -#: src/pages/build/BuildDetail.tsx:179 -#: src/tables/settings/PendingTasksTable.tsx:32 +#: src/pages/build/BuildDetail.tsx:174 +#: src/tables/settings/PendingTasksTable.tsx:36 msgid "Created" msgstr "" +#: src/pages/build/BuildDetail.tsx:181 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:229 +#: src/pages/sales/ReturnOrderDetail.tsx:201 +#: src/pages/sales/SalesOrderDetail.tsx:212 +#: src/tables/ColumnRenderers.tsx:226 +#: src/tables/part/PartPurchaseOrdersTable.tsx:100 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:135 +#: src/tables/sales/SalesOrderLineItemTable.tsx:107 +msgid "Target Date" +msgstr "" + #: src/pages/build/BuildDetail.tsx:185 #: src/pages/part/PartDetail.tsx:269 #: src/pages/stock/StockDetail.tsx:150 #~ msgid "View part barcode" #~ msgstr "View part barcode" -#: src/pages/build/BuildDetail.tsx:186 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:213 -#: src/pages/sales/ReturnOrderDetail.tsx:192 -#: src/pages/sales/SalesOrderDetail.tsx:201 -#: src/tables/ColumnRenderers.tsx:212 -#: src/tables/part/PartPurchaseOrdersTable.tsx:99 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:110 -#: src/tables/sales/SalesOrderLineItemTable.tsx:99 -msgid "Target Date" +#: src/pages/build/BuildDetail.tsx:188 +#: src/tables/sales/SalesOrderLineItemTable.tsx:281 +msgid "Completed" msgstr "" #: src/pages/build/BuildDetail.tsx:190 @@ -4047,10 +4824,6 @@ msgstr "" #~ msgid "Link custom barcode to part" #~ msgstr "Link custom barcode to part" -#: src/pages/build/BuildDetail.tsx:193 -msgid "Completed" -msgstr "" - #: src/pages/build/BuildDetail.tsx:196 #: src/pages/part/PartDetail.tsx:280 #~ msgid "Unlink custom barcode from part" @@ -4060,15 +4833,11 @@ msgstr "" #~ msgid "Build Order updated" #~ msgstr "Build Order updated" -#: src/pages/build/BuildDetail.tsx:205 -msgid "Source Location" -msgstr "" - -#: src/pages/build/BuildDetail.tsx:206 +#: src/pages/build/BuildDetail.tsx:209 msgid "Any location" msgstr "" -#: src/pages/build/BuildDetail.tsx:213 +#: src/pages/build/BuildDetail.tsx:216 msgid "Destination Location" msgstr "" @@ -4084,206 +4853,182 @@ msgstr "" #~ msgid "Delete build order" #~ msgstr "Delete build order" -#: src/pages/build/BuildDetail.tsx:251 +#: src/pages/build/BuildDetail.tsx:254 msgid "Build Details" msgstr "" -#: src/pages/build/BuildDetail.tsx:257 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:258 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:267 -#: src/pages/sales/ReturnOrderDetail.tsx:130 -#: src/pages/sales/ReturnOrderDetail.tsx:237 -#: src/pages/sales/ReturnOrderDetail.tsx:246 -#: src/pages/sales/SalesOrderDetail.tsx:272 -#: src/pages/sales/SalesOrderDetail.tsx:281 +#: src/pages/build/BuildDetail.tsx:260 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:282 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:291 +#: src/pages/sales/ReturnOrderDetail.tsx:122 +#: src/pages/sales/ReturnOrderDetail.tsx:254 +#: src/pages/sales/ReturnOrderDetail.tsx:263 +#: src/pages/sales/SalesOrderDetail.tsx:294 +#: src/pages/sales/SalesOrderDetail.tsx:303 msgid "Line Items" msgstr "" -#: src/pages/build/BuildDetail.tsx:267 +#: src/pages/build/BuildDetail.tsx:266 msgid "Incomplete Outputs" msgstr "" -#: src/pages/build/BuildDetail.tsx:289 -#: src/pages/sales/SalesOrderDetail.tsx:319 +#: src/pages/build/BuildDetail.tsx:292 +#: src/pages/sales/SalesOrderDetail.tsx:341 msgid "Allocated Stock" msgstr "" -#: src/pages/build/BuildDetail.tsx:299 +#: src/pages/build/BuildDetail.tsx:302 msgid "Consumed Stock" msgstr "" -#: src/pages/build/BuildDetail.tsx:313 +#: src/pages/build/BuildDetail.tsx:316 msgid "Child Build Orders" msgstr "" #: src/pages/build/BuildDetail.tsx:326 -#: src/tables/build/BuildOutputTable.tsx:384 -#: src/tables/stock/StockItemTestResultTable.tsx:150 +#: src/tables/build/BuildOutputTable.tsx:532 +#: src/tables/stock/StockItemTestResultTable.tsx:156 msgid "Test Results" msgstr "" #: src/pages/build/BuildDetail.tsx:337 -#: src/pages/part/PartDetail.tsx:699 +#: src/pages/part/PartDetail.tsx:740 msgid "Test Statistics" msgstr "" -#: src/pages/build/BuildDetail.tsx:351 -#: src/pages/company/CompanyDetail.tsx:259 -#: src/pages/company/ManufacturerPartDetail.tsx:179 -#: src/pages/part/PartDetail.tsx:721 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:309 -#: src/pages/sales/ReturnOrderDetail.tsx:274 -#: src/pages/sales/SalesOrderDetail.tsx:343 -#: src/pages/stock/StockDetail.tsx:385 -msgid "Attachments" -msgstr "" - -#: src/pages/build/BuildDetail.tsx:359 -#: src/pages/company/CompanyDetail.tsx:270 -#: src/pages/company/ManufacturerPartDetail.tsx:190 -#: src/pages/company/SupplierPartDetail.tsx:257 -#: src/pages/part/PartDetail.tsx:729 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:320 -#: src/pages/sales/ReturnOrderDetail.tsx:285 -#: src/pages/sales/SalesOrderDetail.tsx:354 -#: src/pages/stock/StockDetail.tsx:396 -#: src/tables/build/BuildOrderTestTable.tsx:142 -#: src/tables/stock/StockTrackingTable.tsx:189 -msgid "Notes" +#: src/pages/build/BuildDetail.tsx:365 +msgid "Edit Build Order" msgstr "" #: src/pages/build/BuildDetail.tsx:368 #~ msgid "Reporting Actions" #~ msgstr "Reporting Actions" +#: src/pages/build/BuildDetail.tsx:372 +#: src/tables/build/BuildOrderTable.tsx:173 +#: src/tables/build/BuildOrderTable.tsx:188 +msgid "Add Build Order" +msgstr "" + #: src/pages/build/BuildDetail.tsx:374 #~ msgid "Print build report" #~ msgstr "Print build report" -#: src/pages/build/BuildDetail.tsx:377 -msgid "Edit Build Order" -msgstr "" - -#: src/pages/build/BuildDetail.tsx:384 -#: src/tables/build/BuildOrderTable.tsx:172 -#: src/tables/build/BuildOrderTable.tsx:187 -msgid "Add Build Order" -msgstr "" - -#: src/pages/build/BuildDetail.tsx:398 +#: src/pages/build/BuildDetail.tsx:386 msgid "Cancel Build Order" msgstr "" -#: src/pages/build/BuildDetail.tsx:400 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:348 -#: src/pages/sales/SalesOrderDetail.tsx:380 +#: src/pages/build/BuildDetail.tsx:388 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:357 +#: src/pages/sales/ReturnOrderDetail.tsx:354 +#: src/pages/sales/SalesOrderDetail.tsx:387 msgid "Order cancelled" msgstr "" -#: src/pages/build/BuildDetail.tsx:401 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:347 -#: src/pages/sales/ReturnOrderDetail.tsx:346 -#: src/pages/sales/SalesOrderDetail.tsx:379 +#: src/pages/build/BuildDetail.tsx:389 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:356 +#: src/pages/sales/ReturnOrderDetail.tsx:353 +#: src/pages/sales/SalesOrderDetail.tsx:386 msgid "Cancel this order" msgstr "" -#: src/pages/build/BuildDetail.tsx:410 +#: src/pages/build/BuildDetail.tsx:398 msgid "Hold Build Order" msgstr "" -#: src/pages/build/BuildDetail.tsx:412 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:355 -#: src/pages/sales/ReturnOrderDetail.tsx:354 -#: src/pages/sales/SalesOrderDetail.tsx:387 +#: src/pages/build/BuildDetail.tsx:400 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:364 +#: src/pages/sales/ReturnOrderDetail.tsx:361 +#: src/pages/sales/SalesOrderDetail.tsx:394 msgid "Place this order on hold" msgstr "" -#: src/pages/build/BuildDetail.tsx:413 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:356 -#: src/pages/sales/ReturnOrderDetail.tsx:355 -#: src/pages/sales/SalesOrderDetail.tsx:388 +#: src/pages/build/BuildDetail.tsx:401 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:365 +#: src/pages/sales/ReturnOrderDetail.tsx:362 +#: src/pages/sales/SalesOrderDetail.tsx:395 msgid "Order placed on hold" msgstr "" -#: src/pages/build/BuildDetail.tsx:418 +#: src/pages/build/BuildDetail.tsx:406 msgid "Issue Build Order" msgstr "" -#: src/pages/build/BuildDetail.tsx:420 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:339 -#: src/pages/sales/ReturnOrderDetail.tsx:338 -#: src/pages/sales/SalesOrderDetail.tsx:371 +#: src/pages/build/BuildDetail.tsx:408 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:348 +#: src/pages/sales/ReturnOrderDetail.tsx:345 +#: src/pages/sales/SalesOrderDetail.tsx:378 msgid "Issue this order" msgstr "" -#: src/pages/build/BuildDetail.tsx:421 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:340 -#: src/pages/sales/ReturnOrderDetail.tsx:339 -#: src/pages/sales/SalesOrderDetail.tsx:372 +#: src/pages/build/BuildDetail.tsx:409 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:349 +#: src/pages/sales/ReturnOrderDetail.tsx:346 +#: src/pages/sales/SalesOrderDetail.tsx:379 msgid "Order issued" msgstr "" -#: src/pages/build/BuildDetail.tsx:426 +#: src/pages/build/BuildDetail.tsx:414 msgid "Complete Build Order" msgstr "" -#: src/pages/build/BuildDetail.tsx:428 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:368 -#: src/pages/sales/ReturnOrderDetail.tsx:362 -#: src/pages/sales/SalesOrderDetail.tsx:395 +#: src/pages/build/BuildDetail.tsx:416 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:377 +#: src/pages/sales/ReturnOrderDetail.tsx:369 +#: src/pages/sales/SalesOrderDetail.tsx:402 msgid "Mark this order as complete" msgstr "" -#: src/pages/build/BuildDetail.tsx:429 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:362 -#: src/pages/sales/ReturnOrderDetail.tsx:363 -#: src/pages/sales/SalesOrderDetail.tsx:396 +#: src/pages/build/BuildDetail.tsx:417 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:371 +#: src/pages/sales/ReturnOrderDetail.tsx:370 +#: src/pages/sales/SalesOrderDetail.tsx:403 msgid "Order completed" msgstr "" -#: src/pages/build/BuildDetail.tsx:460 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:391 -#: src/pages/sales/ReturnOrderDetail.tsx:392 -#: src/pages/sales/SalesOrderDetail.tsx:425 +#: src/pages/build/BuildDetail.tsx:448 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:400 +#: src/pages/sales/ReturnOrderDetail.tsx:399 +#: src/pages/sales/SalesOrderDetail.tsx:432 msgid "Issue Order" msgstr "" -#: src/pages/build/BuildDetail.tsx:467 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:398 -#: src/pages/sales/ReturnOrderDetail.tsx:399 -#: src/pages/sales/SalesOrderDetail.tsx:439 +#: src/pages/build/BuildDetail.tsx:455 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:407 +#: src/pages/sales/ReturnOrderDetail.tsx:406 +#: src/pages/sales/SalesOrderDetail.tsx:446 msgid "Complete Order" msgstr "" -#: src/pages/build/BuildDetail.tsx:496 +#: src/pages/build/BuildDetail.tsx:473 msgid "Build Order Actions" msgstr "" -#: src/pages/build/BuildDetail.tsx:502 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:432 -#: src/pages/sales/ReturnOrderDetail.tsx:433 -#: src/pages/sales/SalesOrderDetail.tsx:474 +#: src/pages/build/BuildDetail.tsx:478 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:429 +#: src/pages/sales/ReturnOrderDetail.tsx:428 +#: src/pages/sales/SalesOrderDetail.tsx:469 msgid "Edit order" msgstr "" -#: src/pages/build/BuildDetail.tsx:506 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:440 -#: src/pages/sales/ReturnOrderDetail.tsx:439 -#: src/pages/sales/SalesOrderDetail.tsx:479 +#: src/pages/build/BuildDetail.tsx:482 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:437 +#: src/pages/sales/ReturnOrderDetail.tsx:434 +#: src/pages/sales/SalesOrderDetail.tsx:474 msgid "Duplicate order" msgstr "" -#: src/pages/build/BuildDetail.tsx:510 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:443 -#: src/pages/sales/ReturnOrderDetail.tsx:444 -#: src/pages/sales/SalesOrderDetail.tsx:482 +#: src/pages/build/BuildDetail.tsx:486 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:440 +#: src/pages/sales/ReturnOrderDetail.tsx:439 +#: src/pages/sales/SalesOrderDetail.tsx:477 msgid "Hold order" msgstr "" -#: src/pages/build/BuildDetail.tsx:515 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:448 -#: src/pages/sales/ReturnOrderDetail.tsx:449 -#: src/pages/sales/SalesOrderDetail.tsx:487 +#: src/pages/build/BuildDetail.tsx:491 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:445 +#: src/pages/sales/ReturnOrderDetail.tsx:444 +#: src/pages/sales/SalesOrderDetail.tsx:482 msgid "Cancel order" msgstr "" @@ -4295,56 +5040,60 @@ msgstr "" #~ msgid "New Build Order" #~ msgstr "New Build Order" -#: src/pages/company/CompanyDetail.tsx:104 +#: src/pages/company/CompanyDetail.tsx:95 +msgid "Website" +msgstr "" + +#: src/pages/company/CompanyDetail.tsx:103 msgid "Phone Number" msgstr "" -#: src/pages/company/CompanyDetail.tsx:111 +#: src/pages/company/CompanyDetail.tsx:110 msgid "Email Address" msgstr "" -#: src/pages/company/CompanyDetail.tsx:121 +#: src/pages/company/CompanyDetail.tsx:120 msgid "Default Currency" msgstr "" -#: src/pages/company/CompanyDetail.tsx:126 +#: src/pages/company/CompanyDetail.tsx:125 #: src/pages/company/SupplierDetail.tsx:8 -#: src/pages/company/SupplierPartDetail.tsx:120 -#: src/pages/company/SupplierPartDetail.tsx:206 -#: src/pages/company/SupplierPartDetail.tsx:351 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:136 -#: src/tables/company/CompanyTable.tsx:100 +#: src/pages/company/SupplierPartDetail.tsx:125 +#: src/pages/company/SupplierPartDetail.tsx:218 +#: src/pages/company/SupplierPartDetail.tsx:340 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:130 +#: src/tables/company/CompanyTable.tsx:101 #: src/tables/part/PartPurchaseOrdersTable.tsx:42 -#: src/tables/purchasing/PurchaseOrderTable.tsx:88 +#: src/tables/purchasing/PurchaseOrderTable.tsx:89 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:36 msgid "Supplier" msgstr "" -#: src/pages/company/CompanyDetail.tsx:132 +#: src/pages/company/CompanyDetail.tsx:131 #: src/pages/company/ManufacturerDetail.tsx:8 -#: src/pages/company/ManufacturerPartDetail.tsx:101 -#: src/pages/company/ManufacturerPartDetail.tsx:267 -#: src/pages/company/SupplierPartDetail.tsx:135 -#: src/tables/company/CompanyTable.tsx:105 +#: src/pages/company/ManufacturerPartDetail.tsx:100 +#: src/pages/company/ManufacturerPartDetail.tsx:262 +#: src/pages/company/SupplierPartDetail.tsx:147 +#: src/tables/company/CompanyTable.tsx:106 msgid "Manufacturer" msgstr "" -#: src/pages/company/CompanyDetail.tsx:138 +#: src/pages/company/CompanyDetail.tsx:137 #: src/pages/company/CustomerDetail.tsx:8 -#: src/pages/part/pricing/SaleHistoryPanel.tsx:29 -#: src/pages/sales/ReturnOrderDetail.tsx:109 -#: src/pages/sales/SalesOrderDetail.tsx:115 -#: src/pages/stock/StockDetail.tsx:230 -#: src/tables/company/CompanyTable.tsx:110 -#: src/tables/sales/ReturnOrderTable.tsx:78 -#: src/tables/sales/SalesOrderTable.tsx:108 -#: src/tables/stock/StockTrackingTable.tsx:140 +#: src/pages/part/pricing/SaleHistoryPanel.tsx:31 +#: src/pages/sales/ReturnOrderDetail.tsx:101 +#: src/pages/sales/SalesOrderDetail.tsx:110 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:100 +#: src/pages/stock/StockDetail.tsx:271 +#: src/tables/company/CompanyTable.tsx:111 +#: src/tables/sales/ReturnOrderTable.tsx:97 +#: src/tables/sales/SalesOrderTable.tsx:121 +#: src/tables/stock/StockTrackingTable.tsx:144 msgid "Customer" msgstr "" #: src/pages/company/CompanyDetail.tsx:172 -#: src/tables/stock/StockTrackingTable.tsx:183 -msgid "Details" +msgid "Company Details" msgstr "" #: src/pages/company/CompanyDetail.tsx:175 @@ -4363,140 +5112,150 @@ msgstr "" #~ msgid "Delete company" #~ msgstr "Delete company" -#: src/pages/company/CompanyDetail.tsx:232 +#: src/pages/company/CompanyDetail.tsx:234 msgid "Assigned Stock" msgstr "" -#: src/pages/company/CompanyDetail.tsx:290 -#: src/tables/company/CompanyTable.tsx:86 +#: src/pages/company/CompanyDetail.tsx:273 +#: src/tables/company/CompanyTable.tsx:87 msgid "Edit Company" msgstr "" -#: src/pages/company/CompanyDetail.tsx:298 +#: src/pages/company/CompanyDetail.tsx:281 msgid "Delete Company" msgstr "" -#: src/pages/company/CompanyDetail.tsx:306 +#: src/pages/company/CompanyDetail.tsx:289 msgid "Company Actions" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:76 -#: src/pages/company/SupplierPartDetail.tsx:89 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:128 +#: src/pages/company/ManufacturerPartDetail.tsx:74 +#: src/pages/company/SupplierPartDetail.tsx:84 msgid "Internal Part" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:91 -#: src/pages/company/SupplierPartDetail.tsx:103 -msgid "External Link" -msgstr "" - -#: src/pages/company/ManufacturerPartDetail.tsx:109 -#: src/pages/company/SupplierPartDetail.tsx:144 -#: src/tables/purchasing/ManufacturerPartTable.tsx:56 +#: src/pages/company/ManufacturerPartDetail.tsx:108 +#: src/pages/company/SupplierPartDetail.tsx:156 +#: src/tables/purchasing/ManufacturerPartTable.tsx:58 msgid "Manufacturer Part Number" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:138 +#: src/pages/company/ManufacturerPartDetail.tsx:125 +#: src/pages/company/SupplierPartDetail.tsx:108 +msgid "External Link" +msgstr "" + +#: src/pages/company/ManufacturerPartDetail.tsx:146 +#: src/pages/company/SupplierPartDetail.tsx:215 +#: src/pages/part/PartDetail.tsx:576 +msgid "Part Details" +msgstr "" + +#: src/pages/company/ManufacturerPartDetail.tsx:149 msgid "Manufacturer Details" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:147 +#: src/pages/company/ManufacturerPartDetail.tsx:158 msgid "Manufacturer Part Details" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:153 -#: src/pages/part/PartDetail.tsx:532 +#: src/pages/company/ManufacturerPartDetail.tsx:164 +#: src/pages/part/PartDetail.tsx:582 msgid "Parameters" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:165 -#: src/pages/part/PartDetail.tsx:649 +#: src/pages/company/ManufacturerPartDetail.tsx:176 +#: src/pages/part/PartDetail.tsx:669 #: src/pages/purchasing/PurchasingIndex.tsx:31 msgid "Suppliers" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:208 -#: src/tables/purchasing/ManufacturerPartTable.tsx:84 +#: src/pages/company/ManufacturerPartDetail.tsx:204 +#: src/tables/purchasing/ManufacturerPartTable.tsx:86 msgid "Edit Manufacturer Part" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:215 -#: src/tables/purchasing/ManufacturerPartTable.tsx:72 -#: src/tables/purchasing/ManufacturerPartTable.tsx:103 +#: src/pages/company/ManufacturerPartDetail.tsx:211 +#: src/tables/purchasing/ManufacturerPartTable.tsx:74 +#: src/tables/purchasing/ManufacturerPartTable.tsx:106 msgid "Add Manufacturer Part" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:227 -#: src/tables/purchasing/ManufacturerPartTable.tsx:92 +#: src/pages/company/ManufacturerPartDetail.tsx:223 +#: src/tables/purchasing/ManufacturerPartTable.tsx:94 msgid "Delete Manufacturer Part" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:240 +#: src/pages/company/ManufacturerPartDetail.tsx:236 msgid "Manufacturer Part Actions" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:281 +#: src/pages/company/ManufacturerPartDetail.tsx:276 msgid "ManufacturerPart" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:163 -#: src/tables/part/PartPurchaseOrdersTable.tsx:71 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:156 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:197 -#: src/tables/purchasing/SupplierPartTable.tsx:131 +#: src/pages/company/SupplierPartDetail.tsx:99 +msgid "Part Description" +msgstr "" + +#: src/pages/company/SupplierPartDetail.tsx:175 +#: src/tables/part/PartPurchaseOrdersTable.tsx:72 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:162 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:203 +#: src/tables/purchasing/SupplierPartTable.tsx:133 msgid "Pack Quantity" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:174 +#: src/pages/company/SupplierPartDetail.tsx:186 msgid "Supplier Availability" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:181 +#: src/pages/company/SupplierPartDetail.tsx:193 msgid "Availability Updated" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:208 +#: src/pages/company/SupplierPartDetail.tsx:220 msgid "Availability" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:217 +#: src/pages/company/SupplierPartDetail.tsx:229 msgid "Supplier Part Details" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:223 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:296 +#: src/pages/company/SupplierPartDetail.tsx:235 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:320 msgid "Received Stock" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:247 -#: src/pages/part/PartPricingPanel.tsx:111 -#: src/pages/part/pricing/PricingOverviewPanel.tsx:121 +#: src/pages/company/SupplierPartDetail.tsx:259 +#: src/pages/part/PartPricingPanel.tsx:116 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:195 msgid "Supplier Pricing" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:294 +#: src/pages/company/SupplierPartDetail.tsx:284 msgid "Supplier Part Actions" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:319 -#: src/tables/purchasing/SupplierPartTable.tsx:210 +#: src/pages/company/SupplierPartDetail.tsx:308 +#: src/tables/purchasing/SupplierPartTable.tsx:213 msgid "Edit Supplier Part" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:327 -#: src/tables/purchasing/SupplierPartTable.tsx:218 +#: src/pages/company/SupplierPartDetail.tsx:316 +#: src/tables/purchasing/SupplierPartTable.tsx:221 msgid "Delete Supplier Part" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:335 -#: src/tables/purchasing/SupplierPartTable.tsx:163 +#: src/pages/company/SupplierPartDetail.tsx:324 +#: src/tables/purchasing/SupplierPartTable.tsx:165 msgid "Add Supplier Part" msgstr "" #: src/pages/part/CategoryDetail.tsx:93 -#: src/pages/stock/LocationDetail.tsx:101 -#: src/tables/settings/ErrorTable.tsx:36 +#: src/pages/stock/LocationDetail.tsx:95 +#: src/tables/settings/ErrorTable.tsx:63 +#: src/tables/settings/ErrorTable.tsx:108 msgid "Path" msgstr "" @@ -4504,357 +5263,357 @@ msgstr "" msgid "Parent Category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:126 +#: src/pages/part/CategoryDetail.tsx:132 msgid "Subcategories" msgstr "" -#: src/pages/part/CategoryDetail.tsx:133 -#: src/pages/stock/LocationDetail.tsx:141 -#: src/tables/part/PartCategoryTable.tsx:73 +#: src/pages/part/CategoryDetail.tsx:139 +#: src/pages/stock/LocationDetail.tsx:135 +#: src/tables/part/PartCategoryTable.tsx:85 #: src/tables/stock/StockLocationTable.tsx:49 msgid "Structural" msgstr "" -#: src/pages/part/CategoryDetail.tsx:139 +#: src/pages/part/CategoryDetail.tsx:145 msgid "Parent default location" msgstr "" -#: src/pages/part/CategoryDetail.tsx:146 +#: src/pages/part/CategoryDetail.tsx:152 msgid "Default location" msgstr "" -#: src/pages/part/CategoryDetail.tsx:157 +#: src/pages/part/CategoryDetail.tsx:163 msgid "Top level part category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:167 -#: src/pages/part/CategoryDetail.tsx:221 -#: src/tables/part/PartCategoryTable.tsx:102 +#: src/pages/part/CategoryDetail.tsx:173 +#: src/pages/part/CategoryDetail.tsx:226 +#: src/tables/part/PartCategoryTable.tsx:118 msgid "Edit Part Category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:180 -#: src/pages/stock/LocationDetail.tsx:233 +#: src/pages/part/CategoryDetail.tsx:186 +#: src/pages/stock/LocationDetail.tsx:227 msgid "Delete items" msgstr "" -#: src/pages/part/CategoryDetail.tsx:188 -#: src/pages/part/CategoryDetail.tsx:226 +#: src/pages/part/CategoryDetail.tsx:194 +#: src/pages/part/CategoryDetail.tsx:231 msgid "Delete Part Category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:191 +#: src/pages/part/CategoryDetail.tsx:197 msgid "Parts Action" msgstr "" -#: src/pages/part/CategoryDetail.tsx:192 +#: src/pages/part/CategoryDetail.tsx:198 msgid "Action for parts in this category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:197 +#: src/pages/part/CategoryDetail.tsx:203 msgid "Child Categories Action" msgstr "" -#: src/pages/part/CategoryDetail.tsx:198 +#: src/pages/part/CategoryDetail.tsx:204 msgid "Action for child categories in this category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:216 +#: src/pages/part/CategoryDetail.tsx:222 msgid "Category Actions" msgstr "" -#: src/pages/part/CategoryDetail.tsx:238 +#: src/pages/part/CategoryDetail.tsx:243 msgid "Category Details" msgstr "" -#: src/pages/part/PartDetail.tsx:163 -msgid "Variant of" +#: src/pages/part/PartAllocationPanel.tsx:23 +#: src/pages/stock/StockDetail.tsx:443 +#: src/tables/part/PartTable.tsx:99 +msgid "Build Order Allocations" msgstr "" -#: src/pages/part/PartDetail.tsx:170 -msgid "Revision of" -msgstr "" - -#: src/pages/part/PartDetail.tsx:177 -#: src/tables/stock/StockItemTable.tsx:58 -msgid "Revision" +#: src/pages/part/PartAllocationPanel.tsx:40 +#: src/pages/stock/StockDetail.tsx:458 +#: src/tables/part/PartTable.tsx:108 +msgid "Sales Order Allocations" msgstr "" #: src/pages/part/PartDetail.tsx:184 +msgid "Variant of" +msgstr "" + +#: src/pages/part/PartDetail.tsx:191 +msgid "Revision of" +msgstr "" + +#: src/pages/part/PartDetail.tsx:198 +#: src/tables/stock/StockItemTable.tsx:59 +msgid "Revision" +msgstr "" + +#: src/pages/part/PartDetail.tsx:205 #: src/tables/notifications/NotificationsTable.tsx:31 #: src/tables/part/PartCategoryTemplateTable.tsx:67 msgid "Category" msgstr "" -#: src/pages/part/PartDetail.tsx:190 +#: src/pages/part/PartDetail.tsx:211 msgid "Default Location" msgstr "" -#: src/pages/part/PartDetail.tsx:197 +#: src/pages/part/PartDetail.tsx:218 msgid "Category Default Location" msgstr "" -#: src/pages/part/PartDetail.tsx:204 +#: src/pages/part/PartDetail.tsx:225 #: src/tables/purchasing/ManufacturerPartParameterTable.tsx:44 msgid "Units" msgstr "" -#: src/pages/part/PartDetail.tsx:211 -#: src/tables/settings/PendingTasksTable.tsx:42 +#: src/pages/part/PartDetail.tsx:232 +#: src/tables/settings/PendingTasksTable.tsx:46 msgid "Keywords" msgstr "" -#: src/pages/part/PartDetail.tsx:218 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:186 -#: src/pages/sales/ReturnOrderDetail.tsx:165 -#: src/pages/sales/SalesOrderDetail.tsx:174 -msgid "Link" -msgstr "" - -#: src/pages/part/PartDetail.tsx:236 +#: src/pages/part/PartDetail.tsx:257 #: src/tables/bom/BomTable.tsx:320 -#: src/tables/build/BuildLineTable.tsx:155 +#: src/tables/build/BuildLineTable.tsx:286 #: src/tables/part/PartTable.tsx:288 -#: src/tables/sales/SalesOrderLineItemTable.tsx:103 +#: src/tables/sales/SalesOrderLineItemTable.tsx:111 msgid "Available Stock" msgstr "" -#: src/pages/part/PartDetail.tsx:243 +#: src/pages/part/PartDetail.tsx:264 msgid "Variant Stock" msgstr "" -#: src/pages/part/PartDetail.tsx:251 +#: src/pages/part/PartDetail.tsx:272 msgid "Minimum Stock" msgstr "" -#: src/pages/part/PartDetail.tsx:257 +#: src/pages/part/PartDetail.tsx:278 #: src/tables/bom/BomTable.tsx:237 -#: src/tables/build/BuildLineTable.tsx:117 -#: src/tables/sales/SalesOrderLineItemTable.tsx:141 +#: src/tables/build/BuildLineTable.tsx:248 +#: src/tables/sales/SalesOrderLineItemTable.tsx:149 msgid "On order" msgstr "" -#: src/pages/part/PartDetail.tsx:266 +#: src/pages/part/PartDetail.tsx:285 +msgid "Required for Orders" +msgstr "" + +#: src/pages/part/PartDetail.tsx:294 msgid "Allocated to Build Orders" msgstr "" -#: src/pages/part/PartDetail.tsx:274 +#: src/pages/part/PartDetail.tsx:305 msgid "Allocated to Sales Orders" msgstr "" -#: src/pages/part/PartDetail.tsx:281 -#: src/tables/bom/BomTable.tsx:261 -#: src/tables/bom/BomTable.tsx:293 -msgid "Can Build" -msgstr "" - -#: src/pages/part/PartDetail.tsx:288 -#: src/tables/bom/BomTable.tsx:245 -#: src/tables/part/PartTable.tsx:92 -msgid "Building" -msgstr "" - -#: src/pages/part/PartDetail.tsx:302 -#: src/pages/part/PartDetail.tsx:873 -#: src/tables/part/ParametricPartTable.tsx:228 -#: src/tables/part/PartTable.tsx:184 -msgid "Locked" -msgstr "" - -#: src/pages/part/PartDetail.tsx:308 -msgid "Template Part" -msgstr "" - #: src/pages/part/PartDetail.tsx:310 #~ msgid "Edit part" #~ msgstr "Edit part" -#: src/pages/part/PartDetail.tsx:313 -#: src/tables/bom/BomTable.tsx:315 -msgid "Assembled Part" +#: src/pages/part/PartDetail.tsx:315 +#: src/tables/bom/BomTable.tsx:261 +#: src/tables/bom/BomTable.tsx:293 +msgid "Can Build" msgstr "" -#: src/pages/part/PartDetail.tsx:318 -msgid "Component Part" +#: src/pages/part/PartDetail.tsx:322 +#: src/pages/part/PartDetail.tsx:905 +#: src/pages/stock/StockDetail.tsx:766 +#: src/tables/build/BuildOrderTestTable.tsx:220 +#: src/tables/stock/StockItemTable.tsx:334 +msgid "In Production" msgstr "" #: src/pages/part/PartDetail.tsx:322 #~ msgid "Duplicate part" #~ msgstr "Duplicate part" -#: src/pages/part/PartDetail.tsx:323 -#: src/tables/bom/BomTable.tsx:305 -msgid "Testable Part" -msgstr "" - #: src/pages/part/PartDetail.tsx:327 #~ msgid "Delete part" #~ msgstr "Delete part" -#: src/pages/part/PartDetail.tsx:329 +#: src/pages/part/PartDetail.tsx:336 +#: src/tables/part/ParametricPartTable.tsx:228 +#: src/tables/part/PartTable.tsx:184 +msgid "Locked" +msgstr "" + +#: src/pages/part/PartDetail.tsx:342 +msgid "Template Part" +msgstr "" + +#: src/pages/part/PartDetail.tsx:347 +#: src/tables/bom/BomTable.tsx:315 +msgid "Assembled Part" +msgstr "" + +#: src/pages/part/PartDetail.tsx:352 +msgid "Component Part" +msgstr "" + +#: src/pages/part/PartDetail.tsx:357 +#: src/tables/bom/BomTable.tsx:305 +msgid "Testable Part" +msgstr "" + +#: src/pages/part/PartDetail.tsx:363 #: src/tables/bom/BomTable.tsx:310 msgid "Trackable Part" msgstr "" -#: src/pages/part/PartDetail.tsx:334 +#: src/pages/part/PartDetail.tsx:368 msgid "Purchaseable Part" msgstr "" -#: src/pages/part/PartDetail.tsx:339 +#: src/pages/part/PartDetail.tsx:374 msgid "Saleable Part" msgstr "" -#: src/pages/part/PartDetail.tsx:344 +#: src/pages/part/PartDetail.tsx:379 msgid "Virtual Part" msgstr "" -#: src/pages/part/PartDetail.tsx:352 -#: src/tables/ColumnRenderers.tsx:220 +#: src/pages/part/PartDetail.tsx:393 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:215 +#: src/pages/sales/ReturnOrderDetail.tsx:185 +#: src/pages/sales/SalesOrderDetail.tsx:197 +#: src/tables/ColumnRenderers.tsx:234 msgid "Creation Date" msgstr "" -#: src/pages/part/PartDetail.tsx:357 +#: src/pages/part/PartDetail.tsx:398 msgid "Created By" msgstr "" -#: src/pages/part/PartDetail.tsx:372 +#: src/pages/part/PartDetail.tsx:413 msgid "Default Supplier" msgstr "" -#: src/pages/part/PartDetail.tsx:383 -#: src/pages/part/pricing/BomPricingPanel.tsx:79 +#: src/pages/part/PartDetail.tsx:424 +#: src/pages/part/pricing/BomPricingPanel.tsx:113 #: src/pages/part/pricing/VariantPricingPanel.tsx:95 #: src/tables/part/PartTable.tsx:161 msgid "Price Range" msgstr "" -#: src/pages/part/PartDetail.tsx:423 -#: src/pages/stock/StockDetail.tsx:135 +#: src/pages/part/PartDetail.tsx:462 +msgid "Latest Serial Number" +msgstr "" + +#: src/pages/part/PartDetail.tsx:472 +#: src/pages/stock/StockDetail.tsx:151 msgid "Last Stocktake" msgstr "" -#: src/pages/part/PartDetail.tsx:462 +#: src/pages/part/PartDetail.tsx:511 msgid "Stocktake By" msgstr "" -#: src/pages/part/PartDetail.tsx:526 -msgid "Part Details" -msgstr "" - -#: src/pages/part/PartDetail.tsx:557 +#: src/pages/part/PartDetail.tsx:611 msgid "Variants" msgstr "" -#: src/pages/part/PartDetail.tsx:564 -#: src/pages/stock/StockDetail.tsx:307 +#: src/pages/part/PartDetail.tsx:618 +#: src/pages/stock/StockDetail.tsx:430 msgid "Allocations" msgstr "" -#: src/pages/part/PartDetail.tsx:575 -#: src/pages/stock/StockDetail.tsx:318 -#: src/tables/part/PartTable.tsx:99 -msgid "Build Order Allocations" -msgstr "" - -#: src/pages/part/PartDetail.tsx:590 -#: src/pages/stock/StockDetail.tsx:333 -#: src/tables/part/PartTable.tsx:108 -msgid "Sales Order Allocations" -msgstr "" - -#: src/pages/part/PartDetail.tsx:607 +#: src/pages/part/PartDetail.tsx:625 msgid "Bill of Materials" msgstr "" -#: src/pages/part/PartDetail.tsx:623 +#: src/pages/part/PartDetail.tsx:643 msgid "Used In" msgstr "" -#: src/pages/part/PartDetail.tsx:630 +#: src/pages/part/PartDetail.tsx:650 msgid "Part Pricing" msgstr "" -#: src/pages/part/PartDetail.tsx:636 +#: src/pages/part/PartDetail.tsx:656 #: src/pages/purchasing/PurchasingIndex.tsx:42 msgid "Manufacturers" msgstr "" -#: src/pages/part/PartDetail.tsx:676 +#: src/pages/part/PartDetail.tsx:722 msgid "Scheduling" msgstr "" -#: src/pages/part/PartDetail.tsx:688 +#: src/pages/part/PartDetail.tsx:729 msgid "Test Templates" msgstr "" -#: src/pages/part/PartDetail.tsx:715 +#: src/pages/part/PartDetail.tsx:756 msgid "Related Parts" msgstr "" -#: src/pages/part/PartDetail.tsx:849 -#: src/pages/stock/StockDetail.tsx:156 -#: src/pages/stock/StockDetail.tsx:593 -#: src/tables/build/BuildLineTable.tsx:48 +#: src/pages/part/PartDetail.tsx:881 +#: src/pages/stock/StockDetail.tsx:172 +#: src/pages/stock/StockDetail.tsx:783 +#: src/tables/build/BuildLineTable.tsx:179 #: src/tables/part/PartTable.tsx:117 -#: src/tables/stock/StockItemTable.tsx:177 -#: src/tables/stock/StockItemTable.tsx:310 +#: src/tables/stock/StockItemTable.tsx:166 +#: src/tables/stock/StockItemTable.tsx:314 msgid "Available" msgstr "" -#: src/pages/part/PartDetail.tsx:855 +#: src/pages/part/PartDetail.tsx:887 msgid "No Stock" msgstr "" -#: src/pages/part/PartDetail.tsx:861 +#: src/pages/part/PartDetail.tsx:893 +#: src/tables/part/PartTestTemplateTable.tsx:106 +#: src/tables/stock/StockItemTestResultTable.tsx:383 +msgid "Required" +msgstr "" + +#: src/pages/part/PartDetail.tsx:899 #: src/tables/bom/BomTable.tsx:325 #: src/tables/part/PartTable.tsx:86 msgid "On Order" msgstr "" -#: src/pages/part/PartDetail.tsx:867 -#: src/pages/stock/StockDetail.tsx:576 -#: src/tables/build/BuildOrderTestTable.tsx:219 -#: src/tables/stock/StockItemTable.tsx:330 -msgid "In Production" -msgstr "" - -#: src/pages/part/PartDetail.tsx:892 +#: src/pages/part/PartDetail.tsx:924 msgid "Edit Part" msgstr "" -#: src/pages/part/PartDetail.tsx:927 +#: src/pages/part/PartDetail.tsx:959 #: src/tables/part/PartTable.tsx:331 -#: src/tables/part/PartTable.tsx:342 +#: src/tables/part/PartTable.tsx:343 msgid "Add Part" msgstr "" -#: src/pages/part/PartDetail.tsx:941 +#: src/pages/part/PartDetail.tsx:973 msgid "Delete Part" msgstr "" -#: src/pages/part/PartDetail.tsx:950 +#: src/pages/part/PartDetail.tsx:982 msgid "Deleting this part cannot be reversed" msgstr "" -#: src/pages/part/PartDetail.tsx:999 -#: src/pages/stock/LocationDetail.tsx:324 -#: src/tables/stock/StockItemTable.tsx:444 +#: src/pages/part/PartDetail.tsx:1021 +#: src/pages/stock/LocationDetail.tsx:310 +#: src/tables/stock/StockItemTable.tsx:449 msgid "Stock Actions" msgstr "" -#: src/pages/part/PartDetail.tsx:1007 +#: src/pages/part/PartDetail.tsx:1029 msgid "Count part stock" msgstr "" -#: src/pages/part/PartDetail.tsx:1018 +#: src/pages/part/PartDetail.tsx:1040 msgid "Transfer part stock" msgstr "" -#: src/pages/part/PartDetail.tsx:1027 +#: src/pages/part/PartDetail.tsx:1049 msgid "Part Actions" msgstr "" -#: src/pages/part/PartDetail.tsx:1087 +#: src/pages/part/PartDetail.tsx:1113 msgid "Select Part Revision" msgstr "" @@ -4862,113 +5621,214 @@ msgstr "" #~ msgid "Categories" #~ msgstr "Categories" -#: src/pages/part/PartPricingPanel.tsx:68 +#: src/pages/part/PartPricingPanel.tsx:72 msgid "No pricing data found for this part." msgstr "" -#: src/pages/part/PartPricingPanel.tsx:82 -#: src/pages/part/pricing/PricingOverviewPanel.tsx:190 +#: src/pages/part/PartPricingPanel.tsx:87 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:293 msgid "Pricing Overview" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:88 +#: src/pages/part/PartPricingPanel.tsx:93 msgid "Purchase History" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:102 -#: src/pages/part/pricing/PricingOverviewPanel.tsx:100 +#: src/pages/part/PartPricingPanel.tsx:107 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:174 msgid "Internal Pricing" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:120 -#: src/pages/part/pricing/PricingOverviewPanel.tsx:107 +#: src/pages/part/PartPricingPanel.tsx:125 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:181 msgid "BOM Pricing" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:127 -#: src/pages/part/pricing/PricingOverviewPanel.tsx:128 +#: src/pages/part/PartPricingPanel.tsx:132 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:202 msgid "Variant Pricing" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:139 -#: src/pages/part/pricing/PricingOverviewPanel.tsx:135 +#: src/pages/part/PartPricingPanel.tsx:144 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:209 msgid "Sale Pricing" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:146 -#: src/pages/part/pricing/PricingOverviewPanel.tsx:142 +#: src/pages/part/PartPricingPanel.tsx:151 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:216 msgid "Sale History" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:58 -#: src/pages/part/pricing/BomPricingPanel.tsx:138 -#: src/tables/ColumnRenderers.tsx:262 +#: src/pages/part/PartSchedulingDetail.tsx:47 +#: src/pages/part/PartSchedulingDetail.tsx:299 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:156 +msgid "Maximum" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:50 +#: src/pages/part/PartSchedulingDetail.tsx:289 +msgid "Scheduled" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:53 +#: src/pages/part/PartSchedulingDetail.tsx:294 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:144 +msgid "Minimum" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:68 +msgid "Order" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:92 +msgid "Quantity is speculative" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:101 +msgid "No date available for provided quantity" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:105 +msgid "Date is in the past" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:112 +msgid "Scheduled Quantity" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:240 +msgid "No information available" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:241 +msgid "There is no scheduling information available for the selected part" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:276 +msgid "Expected Quantity" +msgstr "" + +#: src/pages/part/PartStocktakeDetail.tsx:63 +#: src/tables/FilterSelectDrawer.tsx:167 +#: src/tables/FilterSelectDrawer.tsx:174 +#: src/tables/build/BuildOrderTestTable.tsx:135 +#: src/tables/purchasing/ManufacturerPartParameterTable.tsx:38 +#: src/tables/stock/StockItemTestResultTable.tsx:192 +msgid "Value" +msgstr "" + +#: src/pages/part/PartStocktakeDetail.tsx:82 +msgid "Edit Stocktake Entry" +msgstr "" + +#: src/pages/part/PartStocktakeDetail.tsx:90 +msgid "Delete Stocktake Entry" +msgstr "" + +#: src/pages/part/PartStocktakeDetail.tsx:96 +#: src/tables/settings/StocktakeReportTable.tsx:69 +msgid "Generate Stocktake Report" +msgstr "" + +#: src/pages/part/PartStocktakeDetail.tsx:101 +#: src/tables/settings/StocktakeReportTable.tsx:71 +msgid "Stocktake report scheduled" +msgstr "" + +#: src/pages/part/PartStocktakeDetail.tsx:119 +#: src/pages/part/PartStocktakeDetail.tsx:235 +#: src/pages/stock/StockDetail.tsx:303 +#: src/tables/stock/StockItemTable.tsx:249 +msgid "Stock Value" +msgstr "" + +#: src/pages/part/PartStocktakeDetail.tsx:139 +#: src/tables/settings/StocktakeReportTable.tsx:77 +msgid "New Stocktake Report" +msgstr "" + +#: src/pages/part/PartStocktakeDetail.tsx:258 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:295 +msgid "Minimum Value" +msgstr "" + +#: src/pages/part/PartStocktakeDetail.tsx:264 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:296 +msgid "Maximum Value" +msgstr "" + +#: src/pages/part/pricing/BomPricingPanel.tsx:87 +#: src/pages/part/pricing/BomPricingPanel.tsx:177 +#: src/tables/ColumnRenderers.tsx:276 #: src/tables/bom/BomTable.tsx:185 #: src/tables/general/ExtraLineItemTable.tsx:64 -#: src/tables/purchasing/PurchaseOrderTable.tsx:112 -#: src/tables/sales/ReturnOrderTable.tsx:104 -#: src/tables/sales/SalesOrderLineItemTable.tsx:89 -#: src/tables/sales/SalesOrderTable.tsx:136 +#: src/tables/purchasing/PurchaseOrderTable.tsx:113 +#: src/tables/sales/ReturnOrderTable.tsx:127 +#: src/tables/sales/SalesOrderLineItemTable.tsx:97 +#: src/tables/sales/SalesOrderTable.tsx:149 msgid "Total Price" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:78 -#: src/pages/part/pricing/BomPricingPanel.tsx:102 +#: src/pages/part/pricing/BomPricingPanel.tsx:112 +#: src/pages/part/pricing/BomPricingPanel.tsx:141 #: src/tables/bom/UsedInTable.tsx:49 +#: src/tables/build/BuildLineTable.tsx:296 #: src/tables/part/PartTable.tsx:202 msgid "Component" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:81 -#: src/pages/part/pricing/VariantPricingPanel.tsx:37 -#: src/pages/part/pricing/VariantPricingPanel.tsx:97 -msgid "Minimum Price" -msgstr "" - -#: src/pages/part/pricing/BomPricingPanel.tsx:82 -#: src/pages/part/pricing/VariantPricingPanel.tsx:45 -#: src/pages/part/pricing/VariantPricingPanel.tsx:98 -msgid "Maximum Price" -msgstr "" - #: src/pages/part/pricing/BomPricingPanel.tsx:112 #~ msgid "Minimum Total Price" #~ msgstr "Minimum Total Price" +#: src/pages/part/pricing/BomPricingPanel.tsx:115 +#: src/pages/part/pricing/VariantPricingPanel.tsx:37 +#: src/pages/part/pricing/VariantPricingPanel.tsx:97 +msgid "Minimum Price" +msgstr "" + +#: src/pages/part/pricing/BomPricingPanel.tsx:116 +#: src/pages/part/pricing/VariantPricingPanel.tsx:45 +#: src/pages/part/pricing/VariantPricingPanel.tsx:98 +msgid "Maximum Price" +msgstr "" + #: src/pages/part/pricing/BomPricingPanel.tsx:117 #~ msgid "Maximum Total Price" #~ msgstr "Maximum Total Price" -#: src/pages/part/pricing/BomPricingPanel.tsx:129 -#: src/pages/part/pricing/PriceBreakPanel.tsx:172 -#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:67 -#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:128 -#: src/pages/part/pricing/SupplierPricingPanel.tsx:62 +#: src/pages/part/pricing/BomPricingPanel.tsx:168 +#: src/pages/part/pricing/PriceBreakPanel.tsx:173 +#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:70 +#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:125 +#: src/pages/part/pricing/SupplierPricingPanel.tsx:66 +#: src/pages/stock/StockDetail.tsx:291 #: src/tables/bom/BomTable.tsx:176 #: src/tables/general/ExtraLineItemTable.tsx:56 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:223 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:225 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:92 +#: src/tables/stock/StockItemTable.tsx:239 msgid "Unit Price" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:154 +#: src/pages/part/pricing/BomPricingPanel.tsx:193 #: src/pages/part/pricing/VariantPricingPanel.tsx:53 -#: src/tables/purchasing/SupplierPartTable.tsx:148 +#: src/tables/purchasing/SupplierPartTable.tsx:150 msgid "Updated" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:219 +#: src/pages/part/pricing/BomPricingPanel.tsx:258 msgid "Pie Chart" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:220 +#: src/pages/part/pricing/BomPricingPanel.tsx:259 msgid "Bar Chart" msgstr "" #: src/pages/part/pricing/PriceBreakPanel.tsx:58 -#: src/pages/part/pricing/PriceBreakPanel.tsx:110 +#: src/pages/part/pricing/PriceBreakPanel.tsx:111 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:142 -#: src/tables/purchasing/SupplierPriceBreakTable.tsx:168 +#: src/tables/purchasing/SupplierPriceBreakTable.tsx:169 msgid "Add Price Break" msgstr "" @@ -4986,46 +5846,70 @@ msgstr "" msgid "Price Break" msgstr "" -#: src/pages/part/pricing/PriceBreakPanel.tsx:170 +#: src/pages/part/pricing/PriceBreakPanel.tsx:171 msgid "Price" msgstr "" -#: src/pages/part/pricing/PricingOverviewPanel.tsx:51 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:68 +msgid "Refreshing pricing data" +msgstr "" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:88 +msgid "Pricing data updated" +msgstr "" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:95 +msgid "Failed to update pricing data" +msgstr "" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:104 +msgid "Edit Pricing" +msgstr "" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:125 msgid "Pricing Category" msgstr "" -#: src/pages/part/pricing/PricingOverviewPanel.tsx:70 -msgid "Minimum" -msgstr "" - -#: src/pages/part/pricing/PricingOverviewPanel.tsx:82 -msgid "Maximum" -msgstr "" - -#: src/pages/part/pricing/PricingOverviewPanel.tsx:114 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:188 msgid "Purchase Pricing" msgstr "" -#: src/pages/part/pricing/PricingOverviewPanel.tsx:149 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:223 msgid "Override Pricing" msgstr "" -#: src/pages/part/pricing/PricingOverviewPanel.tsx:156 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:230 msgid "Overall Pricing" msgstr "" -#: src/pages/part/pricing/PricingOverviewPanel.tsx:175 -#: src/pages/stock/StockDetail.tsx:129 -#: src/tables/stock/StockItemTable.tsx:240 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:249 +#: src/pages/stock/StockDetail.tsx:145 +#: src/tables/stock/StockItemTable.tsx:275 msgid "Last Updated" msgstr "" -#: src/pages/part/pricing/PricingOverviewPanel.tsx:192 -msgid "Minimum Value" +#: src/pages/part/pricing/PricingOverviewPanel.tsx:253 +msgid "Pricing Not Set" msgstr "" -#: src/pages/part/pricing/PricingOverviewPanel.tsx:193 -msgid "Maximum Value" +#: src/pages/part/pricing/PricingOverviewPanel.tsx:254 +msgid "Pricing data has not been calculated for this part" +msgstr "" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:258 +msgid "Pricing Actions" +msgstr "" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:261 +msgid "Refresh" +msgstr "" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:262 +msgid "Refresh pricing data" +msgstr "" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:277 +msgid "Edit pricing data" msgstr "" #: src/pages/part/pricing/PricingPanel.tsx:24 @@ -5044,28 +5928,20 @@ msgstr "" msgid "Loading pricing data" msgstr "" -#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:40 -#: src/pages/part/pricing/SaleHistoryPanel.tsx:36 -#: src/tables/ColumnRenderers.tsx:201 -#: src/tables/build/BuildOrderTestTable.tsx:150 -#: src/tables/plugin/PluginListTable.tsx:139 -msgid "Date" -msgstr "" - #: src/pages/part/pricing/PurchaseHistoryPanel.tsx:47 msgid "Purchase Price" msgstr "" -#: src/pages/part/pricing/SaleHistoryPanel.tsx:22 -msgid "Sale Order" -msgstr "" +#: src/pages/part/pricing/SaleHistoryPanel.tsx:24 +#~ msgid "Sale Order" +#~ msgstr "Sale Order" -#: src/pages/part/pricing/SaleHistoryPanel.tsx:42 -#: src/pages/part/pricing/SaleHistoryPanel.tsx:92 +#: src/pages/part/pricing/SaleHistoryPanel.tsx:44 +#: src/pages/part/pricing/SaleHistoryPanel.tsx:87 msgid "Sale Price" msgstr "" -#: src/pages/part/pricing/SupplierPricingPanel.tsx:65 +#: src/pages/part/pricing/SupplierPricingPanel.tsx:69 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:83 msgid "Supplier Price" msgstr "" @@ -5075,23 +5951,23 @@ msgstr "" msgid "Variant Part" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:93 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:87 msgid "Edit Purchase Order" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:102 -#: src/tables/purchasing/PurchaseOrderTable.tsx:128 -#: src/tables/purchasing/PurchaseOrderTable.tsx:140 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:96 +#: src/tables/purchasing/PurchaseOrderTable.tsx:129 +#: src/tables/purchasing/PurchaseOrderTable.tsx:142 msgid "Add Purchase Order" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:127 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:121 msgid "Supplier Reference" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:158 -#: src/pages/sales/ReturnOrderDetail.tsx:137 -#: src/pages/sales/SalesOrderDetail.tsx:137 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:152 +#: src/pages/sales/ReturnOrderDetail.tsx:129 +#: src/pages/sales/SalesOrderDetail.tsx:132 msgid "Completed Line Items" msgstr "" @@ -5101,91 +5977,112 @@ msgstr "" #~ msgid "Order Currency," #~ msgstr "Order Currency," -#: src/pages/purchasing/PurchaseOrderDetail.tsx:165 -#: src/pages/sales/ReturnOrderDetail.tsx:144 -#: src/pages/sales/SalesOrderDetail.tsx:153 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:161 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:231 +msgid "Destination" +msgstr "" + +#: src/pages/purchasing/PurchaseOrderDetail.tsx:167 +#: src/pages/sales/ReturnOrderDetail.tsx:136 +#: src/pages/sales/SalesOrderDetail.tsx:148 msgid "Order Currency" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:172 -#: src/pages/sales/ReturnOrderDetail.tsx:151 -#: src/pages/sales/SalesOrderDetail.tsx:160 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:173 +#: src/pages/sales/ReturnOrderDetail.tsx:143 +#: src/pages/sales/SalesOrderDetail.tsx:155 msgid "Total Cost" msgstr "" #: src/pages/purchasing/PurchaseOrderDetail.tsx:207 -#: src/pages/sales/ReturnOrderDetail.tsx:186 -#: src/pages/sales/SalesOrderDetail.tsx:195 -msgid "Created On" +#: src/pages/sales/ReturnOrderDetail.tsx:183 +#: src/pages/sales/SalesOrderDetail.tsx:191 +#~ msgid "Created On" +#~ msgstr "Created On" + +#: src/pages/purchasing/PurchaseOrderDetail.tsx:221 +#: src/pages/sales/ReturnOrderDetail.tsx:193 +#: src/pages/sales/SalesOrderDetail.tsx:204 +msgid "Issue Date" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:252 -#: src/pages/sales/ReturnOrderDetail.tsx:231 -#: src/pages/sales/SalesOrderDetail.tsx:266 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:237 +#: src/pages/sales/ReturnOrderDetail.tsx:209 +#: src/pages/sales/SalesOrderDetail.tsx:219 +#: src/tables/build/BuildOrderTable.tsx:98 +#: src/tables/part/PartPurchaseOrdersTable.tsx:105 +#: src/tables/sales/ReturnOrderTable.tsx:122 +msgid "Completion Date" +msgstr "" + +#: src/pages/purchasing/PurchaseOrderDetail.tsx:276 +#: src/pages/sales/ReturnOrderDetail.tsx:248 +#: src/pages/sales/SalesOrderDetail.tsx:288 msgid "Order Details" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:280 -#: src/pages/sales/ReturnOrderDetail.tsx:258 -#: src/pages/sales/SalesOrderDetail.tsx:297 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:304 +#: src/pages/sales/ReturnOrderDetail.tsx:276 +#: src/pages/sales/SalesOrderDetail.tsx:319 msgid "Extra Line Items" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:337 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:346 msgid "Issue Purchase Order" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:345 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:354 msgid "Cancel Purchase Order" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:353 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:362 msgid "Hold Purchase Order" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:361 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:370 msgid "Complete Purchase Order" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:427 -#: src/pages/sales/ReturnOrderDetail.tsx:428 -#: src/pages/sales/SalesOrderDetail.tsx:468 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:425 +#: src/pages/sales/ReturnOrderDetail.tsx:424 +#: src/pages/sales/SalesOrderDetail.tsx:464 msgid "Order Actions" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:101 -#: src/pages/sales/SalesOrderDetail.tsx:107 -#: src/tables/sales/SalesOrderTable.tsx:124 +#: src/pages/sales/ReturnOrderDetail.tsx:92 +#: src/pages/sales/SalesOrderDetail.tsx:101 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:109 +#: src/tables/sales/SalesOrderTable.tsx:137 msgid "Customer Reference" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:315 +#: src/pages/sales/ReturnOrderDetail.tsx:322 msgid "Edit Return Order" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:324 -#: src/tables/sales/ReturnOrderTable.tsx:119 -#: src/tables/sales/ReturnOrderTable.tsx:128 +#: src/pages/sales/ReturnOrderDetail.tsx:331 +#: src/tables/sales/ReturnOrderTable.tsx:142 +#: src/tables/sales/ReturnOrderTable.tsx:152 msgid "Add Return Order" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:336 +#: src/pages/sales/ReturnOrderDetail.tsx:343 msgid "Issue Return Order" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:344 +#: src/pages/sales/ReturnOrderDetail.tsx:349 +#~ msgid "Order canceled" +#~ msgstr "Order canceled" + +#: src/pages/sales/ReturnOrderDetail.tsx:351 msgid "Cancel Return Order" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:347 -msgid "Order canceled" -msgstr "" - -#: src/pages/sales/ReturnOrderDetail.tsx:352 +#: src/pages/sales/ReturnOrderDetail.tsx:359 msgid "Hold Return Order" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:360 +#: src/pages/sales/ReturnOrderDetail.tsx:367 msgid "Complete Return Order" msgstr "" @@ -5193,117 +6090,193 @@ msgstr "" msgid "Customers" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:145 +#: src/pages/sales/SalesOrderDetail.tsx:140 msgid "Completed Shipments" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:243 -msgid "Edit Sales Order" -msgstr "" - -#: src/pages/sales/SalesOrderDetail.tsx:252 -#: src/tables/sales/SalesOrderTable.tsx:84 -#: src/tables/sales/SalesOrderTable.tsx:96 -msgid "Add Sales Order" -msgstr "" - #: src/pages/sales/SalesOrderDetail.tsx:256 #~ msgid "Pending Shipments" #~ msgstr "Pending Shipments" -#: src/pages/sales/SalesOrderDetail.tsx:313 +#: src/pages/sales/SalesOrderDetail.tsx:261 +msgid "Edit Sales Order" +msgstr "" + +#: src/pages/sales/SalesOrderDetail.tsx:274 +#: src/tables/sales/SalesOrderTable.tsx:96 +#: src/tables/sales/SalesOrderTable.tsx:109 +msgid "Add Sales Order" +msgstr "" + +#: src/pages/sales/SalesOrderDetail.tsx:335 msgid "Shipments" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:369 +#: src/pages/sales/SalesOrderDetail.tsx:376 msgid "Issue Sales Order" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:377 +#: src/pages/sales/SalesOrderDetail.tsx:384 msgid "Cancel Sales Order" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:385 +#: src/pages/sales/SalesOrderDetail.tsx:392 msgid "Hold Sales Order" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:393 +#: src/pages/sales/SalesOrderDetail.tsx:400 msgid "Complete Sales Order" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:432 +#: src/pages/sales/SalesOrderDetail.tsx:439 msgid "Ship Order" msgstr "" -#: src/pages/stock/LocationDetail.tsx:117 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:117 +#: src/tables/sales/SalesOrderShipmentTable.tsx:96 +msgid "Shipment Reference" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:124 +msgid "Allocated Items" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:133 +msgid "Tracking Number" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:141 +msgid "Invoice Number" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:149 +#: src/tables/ColumnRenderers.tsx:242 +#: src/tables/sales/SalesOrderAllocationTable.tsx:142 +#: src/tables/sales/SalesOrderShipmentTable.tsx:115 +msgid "Shipment Date" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:157 +#: src/tables/sales/SalesOrderShipmentTable.tsx:119 +msgid "Delivery Date" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:204 +msgid "Shipment Details" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:210 +msgid "Assigned Items" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:241 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:317 +#: src/tables/sales/SalesOrderShipmentTable.tsx:75 +msgid "Edit Shipment" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:248 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:322 +#: src/tables/sales/SalesOrderShipmentTable.tsx:67 +msgid "Cancel Shipment" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:261 +#: src/tables/sales/SalesOrderShipmentTable.tsx:83 +#: src/tables/sales/SalesOrderShipmentTable.tsx:151 +msgid "Complete Shipment" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:276 +#: src/tables/part/PartPurchaseOrdersTable.tsx:121 +msgid "Pending" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:277 +#: src/tables/sales/SalesOrderAllocationTable.tsx:148 +#: src/tables/sales/SalesOrderShipmentTable.tsx:108 +#: src/tables/sales/SalesOrderShipmentTable.tsx:197 +msgid "Shipped" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:279 +#: src/tables/sales/SalesOrderShipmentTable.tsx:202 +msgid "Delivered" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:293 +msgid "Send Shipment" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:312 +msgid "Shipment Actions" +msgstr "" + +#: src/pages/stock/LocationDetail.tsx:111 msgid "Parent Location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:135 +#: src/pages/stock/LocationDetail.tsx:129 msgid "Sublocations" msgstr "" -#: src/pages/stock/LocationDetail.tsx:147 +#: src/pages/stock/LocationDetail.tsx:141 #: src/tables/stock/StockLocationTable.tsx:54 msgid "External" msgstr "" -#: src/pages/stock/LocationDetail.tsx:153 +#: src/pages/stock/LocationDetail.tsx:147 #: src/tables/stock/StockLocationTable.tsx:63 msgid "Location Type" msgstr "" -#: src/pages/stock/LocationDetail.tsx:164 +#: src/pages/stock/LocationDetail.tsx:158 msgid "Top level stock location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:175 +#: src/pages/stock/LocationDetail.tsx:169 msgid "Location Details" msgstr "" -#: src/pages/stock/LocationDetail.tsx:201 +#: src/pages/stock/LocationDetail.tsx:195 msgid "Default Parts" msgstr "" -#: src/pages/stock/LocationDetail.tsx:220 -#: src/pages/stock/LocationDetail.tsx:351 +#: src/pages/stock/LocationDetail.tsx:214 +#: src/pages/stock/LocationDetail.tsx:336 #: src/tables/stock/StockLocationTable.tsx:123 msgid "Edit Stock Location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:241 -#: src/pages/stock/LocationDetail.tsx:356 +#: src/pages/stock/LocationDetail.tsx:235 +#: src/pages/stock/LocationDetail.tsx:341 msgid "Delete Stock Location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:244 +#: src/pages/stock/LocationDetail.tsx:238 msgid "Items Action" msgstr "" -#: src/pages/stock/LocationDetail.tsx:245 +#: src/pages/stock/LocationDetail.tsx:239 msgid "Action for stock items in this location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:250 +#: src/pages/stock/LocationDetail.tsx:244 msgid "Child Locations Action" msgstr "" -#: src/pages/stock/LocationDetail.tsx:251 +#: src/pages/stock/LocationDetail.tsx:245 msgid "Action for child locations in this location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:346 +#: src/pages/stock/LocationDetail.tsx:332 msgid "Location Actions" msgstr "" -#: src/pages/stock/StockDetail.tsx:108 +#: src/pages/stock/StockDetail.tsx:116 msgid "Base Part" msgstr "" -#: src/pages/stock/StockDetail.tsx:115 -msgid "Stock Status" -msgstr "" - #: src/pages/stock/StockDetail.tsx:155 #~ msgid "Link custom barcode to stock item" #~ msgstr "Link custom barcode to stock item" @@ -5312,113 +6285,179 @@ msgstr "" #~ msgid "Unlink custom barcode from stock item" #~ msgstr "Unlink custom barcode from stock item" -#: src/pages/stock/StockDetail.tsx:188 -msgid "Installed In" -msgstr "" - -#: src/pages/stock/StockDetail.tsx:204 -msgid "Consumed By" +#: src/pages/stock/StockDetail.tsx:178 +msgid "Allocated to Orders" msgstr "" #: src/pages/stock/StockDetail.tsx:205 #~ msgid "Edit stock item" #~ msgstr "Edit stock item" -#: src/pages/stock/StockDetail.tsx:213 -#: src/tables/build/BuildAllocatedStockTable.tsx:64 -#: src/tables/stock/StockTrackingTable.tsx:96 -msgid "Build Order" +#: src/pages/stock/StockDetail.tsx:209 +msgid "Installed In" msgstr "" #: src/pages/stock/StockDetail.tsx:217 #~ msgid "Delete stock item" #~ msgstr "Delete stock item" -#: src/pages/stock/StockDetail.tsx:291 +#: src/pages/stock/StockDetail.tsx:226 +msgid "Parent Item" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:230 +msgid "Parent stock item" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:236 +msgid "Consumed By" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:245 +#: src/tables/build/BuildAllocatedStockTable.tsx:77 +#: src/tables/stock/StockTrackingTable.tsx:100 +msgid "Build Order" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:283 +#: src/tables/stock/StockItemTable.tsx:270 +msgid "Expiry Date" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:414 msgid "Stock Details" msgstr "" -#: src/pages/stock/StockDetail.tsx:297 +#: src/pages/stock/StockDetail.tsx:420 msgid "Stock Tracking" msgstr "" -#: src/pages/stock/StockDetail.tsx:350 -msgid "Test Data" -msgstr "" - -#: src/pages/stock/StockDetail.tsx:364 -msgid "Installed Items" -msgstr "" - -#: src/pages/stock/StockDetail.tsx:371 -msgid "Child Items" -msgstr "" - -#: src/pages/stock/StockDetail.tsx:425 -msgid "Edit Stock Item" -msgstr "" - #: src/pages/stock/StockDetail.tsx:433 #~ msgid "Duplicate stock item" #~ msgstr "Duplicate stock item" -#: src/pages/stock/StockDetail.tsx:452 +#: src/pages/stock/StockDetail.tsx:475 +msgid "Test Data" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:489 +msgid "Installed Items" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:496 +msgid "Child Items" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:545 +msgid "Edit Stock Item" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:572 msgid "Delete Stock Item" msgstr "" -#: src/pages/stock/StockDetail.tsx:504 +#: src/pages/stock/StockDetail.tsx:604 +msgid "Serialize Stock Item" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:617 +msgid "Stock item serialized" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:623 +msgid "Return Stock Item" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:626 +msgid "Return this item into stock. This will remove the customer assignment." +msgstr "" + +#: src/pages/stock/StockDetail.tsx:636 +msgid "Item returned to stock" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:666 msgid "Stock Operations" msgstr "" -#: src/pages/stock/StockDetail.tsx:509 +#: src/pages/stock/StockDetail.tsx:671 msgid "Count stock" msgstr "" -#: src/pages/stock/StockDetail.tsx:519 -#: src/tables/stock/StockItemTable.tsx:449 -msgid "Add stock" +#: src/pages/stock/StockDetail.tsx:671 +#: src/tables/stock/StockItemTable.tsx:452 +#~ msgid "Add stock" +#~ msgstr "Add stock" + +#: src/pages/stock/StockDetail.tsx:680 +#: src/tables/stock/StockItemTable.tsx:461 +#~ msgid "Remove stock" +#~ msgstr "Remove stock" + +#: src/pages/stock/StockDetail.tsx:698 +#: src/tables/stock/StockItemTable.tsx:481 +#~ msgid "Transfer stock" +#~ msgstr "Transfer stock" + +#: src/pages/stock/StockDetail.tsx:699 +msgid "Serialize" msgstr "" -#: src/pages/stock/StockDetail.tsx:527 -#: src/tables/stock/StockItemTable.tsx:458 -msgid "Remove stock" +#: src/pages/stock/StockDetail.tsx:700 +msgid "Serialize stock" msgstr "" -#: src/pages/stock/StockDetail.tsx:534 +#: src/pages/stock/StockDetail.tsx:711 msgid "Transfer" msgstr "" -#: src/pages/stock/StockDetail.tsx:535 -#: src/tables/stock/StockItemTable.tsx:478 -msgid "Transfer stock" +#: src/pages/stock/StockDetail.tsx:722 +msgid "Return" msgstr "" -#: src/pages/stock/StockDetail.tsx:546 +#: src/pages/stock/StockDetail.tsx:723 +msgid "Return from customer" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:738 msgid "Stock Item Actions" msgstr "" -#: src/tables/ColumnRenderers.tsx:30 +#: src/pages/stock/StockDetail.tsx:808 +msgid "Stale" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:814 +msgid "Expired" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:820 +msgid "Unavailable" +msgstr "" + +#: src/tables/ColumnRenderers.tsx:36 msgid "Part is not active" msgstr "Parte no está activa" -#: src/tables/ColumnRenderers.tsx:35 -msgid "Part is locked" +#: src/tables/ColumnRenderers.tsx:41 +#: src/tables/bom/BomTable.tsx:542 +#: src/tables/part/PartParameterTable.tsx:193 +#: src/tables/part/PartTestTemplateTable.tsx:253 +msgid "Part is Locked" msgstr "" -#: src/tables/ColumnRenderers.tsx:57 +#: src/tables/ColumnRenderers.tsx:41 +#~ msgid "Part is locked" +#~ msgstr "Part is locked" + +#: src/tables/ColumnRenderers.tsx:46 +msgid "You are subscribed to notifications for this part" +msgstr "" + +#: src/tables/ColumnRenderers.tsx:68 msgid "No location set" msgstr "" -#: src/tables/ColumnRenderers.tsx:228 -#: src/tables/sales/SalesOrderShipmentTable.tsx:79 -msgid "Shipment Date" -msgstr "" - -#: src/tables/ColumnRenderers.tsx:248 -#: src/tables/settings/CurrencyTable.tsx:23 -msgid "Currency" -msgstr "" - #: src/tables/ColumnSelect.tsx:16 #: src/tables/ColumnSelect.tsx:23 msgid "Select Columns" @@ -5452,91 +6491,116 @@ msgstr "" msgid "Download Data" msgstr "" -#: src/tables/Filter.tsx:89 -#: src/tables/build/BuildOrderTable.tsx:135 +#: src/tables/Filter.tsx:101 msgid "Assigned to me" msgstr "" -#: src/tables/Filter.tsx:90 -#: src/tables/build/BuildOrderTable.tsx:136 +#: src/tables/Filter.tsx:102 msgid "Show orders assigned to me" msgstr "" -#: src/tables/Filter.tsx:97 +#: src/tables/Filter.tsx:106 +#~ msgid "Show overdue orders" +#~ msgstr "Show overdue orders" + +#: src/tables/Filter.tsx:109 +#: src/tables/build/BuildOrderTable.tsx:120 +#: src/tables/sales/SalesOrderAllocationTable.tsx:59 msgid "Outstanding" msgstr "" -#: src/tables/Filter.tsx:98 -msgid "Show outstanding orders" +#: src/tables/Filter.tsx:110 +msgid "Show outstanding items" msgstr "" -#: src/tables/Filter.tsx:105 -#: src/tables/build/BuildOrderTable.tsx:128 +#: src/tables/Filter.tsx:117 msgid "Overdue" msgstr "" -#: src/tables/Filter.tsx:106 -msgid "Show overdue orders" +#: src/tables/Filter.tsx:118 +msgid "Show overdue items" msgstr "" -#: src/tables/FilterSelectDrawer.tsx:51 +#: src/tables/Filter.tsx:125 +msgid "Minimum Date" +msgstr "" + +#: src/tables/Filter.tsx:126 +msgid "Show items after this date" +msgstr "" + +#: src/tables/Filter.tsx:134 +msgid "Maximum Date" +msgstr "" + +#: src/tables/Filter.tsx:135 +msgid "Show items before this date" +msgstr "" + +#: src/tables/Filter.tsx:144 +msgid "Has Project Code" +msgstr "" + +#: src/tables/Filter.tsx:145 +msgid "Show orders with an assigned project code" +msgstr "" + +#: src/tables/FilterSelectDrawer.tsx:55 msgid "Remove filter" msgstr "" -#: src/tables/FilterSelectDrawer.tsx:130 +#: src/tables/FilterSelectDrawer.tsx:159 msgid "Select filter" msgstr "" -#: src/tables/FilterSelectDrawer.tsx:131 +#: src/tables/FilterSelectDrawer.tsx:160 msgid "Filter" msgstr "" -#: src/tables/FilterSelectDrawer.tsx:138 -#: src/tables/build/BuildOrderTestTable.tsx:134 -#: src/tables/purchasing/ManufacturerPartParameterTable.tsx:38 -#: src/tables/stock/StockItemTestResultTable.tsx:186 -msgid "Value" +#: src/tables/FilterSelectDrawer.tsx:168 +msgid "Select date value" msgstr "" -#: src/tables/FilterSelectDrawer.tsx:140 +#: src/tables/FilterSelectDrawer.tsx:176 msgid "Select filter value" msgstr "" -#: src/tables/FilterSelectDrawer.tsx:183 +#: src/tables/FilterSelectDrawer.tsx:219 +#: src/tables/InvenTreeTableHeader.tsx:214 msgid "Table Filters" msgstr "" -#: src/tables/FilterSelectDrawer.tsx:215 +#: src/tables/FilterSelectDrawer.tsx:251 msgid "Add Filter" msgstr "" -#: src/tables/FilterSelectDrawer.tsx:224 +#: src/tables/FilterSelectDrawer.tsx:260 msgid "Clear Filters" msgstr "" -#: src/tables/InvenTreeTable.tsx:123 -#: src/tables/InvenTreeTable.tsx:431 -#: src/tables/InvenTreeTable.tsx:455 +#: src/tables/InvenTreeTable.tsx:96 +#: src/tables/InvenTreeTable.tsx:417 +#: src/tables/InvenTreeTable.tsx:441 msgid "No records found" msgstr "" -#: src/tables/InvenTreeTable.tsx:466 +#: src/tables/InvenTreeTable.tsx:452 msgid "Server returned incorrect data type" msgstr "" -#: src/tables/InvenTreeTable.tsx:474 +#: src/tables/InvenTreeTable.tsx:460 msgid "Bad request" msgstr "" -#: src/tables/InvenTreeTable.tsx:477 +#: src/tables/InvenTreeTable.tsx:463 msgid "Unauthorized" msgstr "" -#: src/tables/InvenTreeTable.tsx:480 +#: src/tables/InvenTreeTable.tsx:466 msgid "Forbidden" msgstr "" -#: src/tables/InvenTreeTable.tsx:483 +#: src/tables/InvenTreeTable.tsx:469 msgid "Not found" msgstr "" @@ -5544,18 +6608,6 @@ msgstr "" #~ msgid "Are you sure you want to delete the selected records?" #~ msgstr "Are you sure you want to delete the selected records?" -#: src/tables/InvenTreeTable.tsx:525 -msgid "Delete Selected Items" -msgstr "" - -#: src/tables/InvenTreeTable.tsx:529 -msgid "Are you sure you want to delete the selected items?" -msgstr "" - -#: src/tables/InvenTreeTable.tsx:531 -msgid "This action cannot be undone!" -msgstr "" - #: src/tables/InvenTreeTable.tsx:535 #~ msgid "Deleted records" #~ msgstr "Deleted records" @@ -5568,31 +6620,56 @@ msgstr "" #~ msgid "Failed to delete records" #~ msgstr "Failed to delete records" +#: src/tables/InvenTreeTable.tsx:552 +#~ msgid "This action cannot be undone!" +#~ msgstr "This action cannot be undone!" + #: src/tables/InvenTreeTable.tsx:594 #: src/tables/InvenTreeTable.tsx:595 #~ msgid "Print actions" #~ msgstr "Print actions" -#: src/tables/InvenTreeTable.tsx:618 -#: src/tables/InvenTreeTable.tsx:619 -msgid "Barcode actions" +#: src/tables/InvenTreeTable.tsx:655 +#: src/tables/InvenTreeTable.tsx:656 +#~ msgid "Barcode actions" +#~ msgstr "Barcode actions" + +#: src/tables/InvenTreeTable.tsx:712 +#~ msgid "Table filters" +#~ msgstr "Table filters" + +#: src/tables/InvenTreeTable.tsx:725 +#~ msgid "Clear custom query filters" +#~ msgstr "Clear custom query filters" + +#: src/tables/InvenTreeTableHeader.tsx:98 +msgid "Delete Selected Items" msgstr "" -#: src/tables/InvenTreeTable.tsx:628 +#: src/tables/InvenTreeTableHeader.tsx:102 +msgid "Are you sure you want to delete the selected items?" +msgstr "" + +#: src/tables/InvenTreeTableHeader.tsx:104 +#: src/tables/plugin/PluginListTable.tsx:305 +msgid "This action cannot be undone" +msgstr "" + +#: src/tables/InvenTreeTableHeader.tsx:142 +msgid "Custom table filters are active" +msgstr "" + +#: src/tables/InvenTreeTableHeader.tsx:169 msgid "Delete selected records" msgstr "" -#: src/tables/InvenTreeTable.tsx:649 +#: src/tables/InvenTreeTableHeader.tsx:188 msgid "Refresh data" msgstr "" -#: src/tables/InvenTreeTable.tsx:675 -msgid "Table filters" -msgstr "" - #: src/tables/TableHoverCard.tsx:35 -msgid "item-{idx}" -msgstr "" +#~ msgid "item-{idx}" +#~ msgstr "item-{idx}" #: src/tables/UploadAction.tsx:7 #~ msgid "Upload Data" @@ -5607,31 +6684,36 @@ msgid "Part Information" msgstr "" #: src/tables/bom/BomTable.tsx:212 -#: src/tables/build/BuildLineTable.tsx:126 +#: src/tables/build/BuildLineTable.tsx:257 #: src/tables/part/PartTable.tsx:125 msgid "External stock" msgstr "" #: src/tables/bom/BomTable.tsx:220 -#: src/tables/build/BuildLineTable.tsx:89 +#: src/tables/build/BuildLineTable.tsx:220 msgid "Includes substitute stock" msgstr "" #: src/tables/bom/BomTable.tsx:229 -#: src/tables/build/BuildLineTable.tsx:99 -#: src/tables/sales/SalesOrderLineItemTable.tsx:127 +#: src/tables/build/BuildLineTable.tsx:230 +#: src/tables/sales/SalesOrderLineItemTable.tsx:135 msgid "Includes variant stock" msgstr "" +#: src/tables/bom/BomTable.tsx:245 +#: src/tables/part/PartTable.tsx:92 +msgid "Building" +msgstr "" + #: src/tables/bom/BomTable.tsx:254 #: src/tables/part/PartTable.tsx:153 -#: src/tables/sales/SalesOrderLineItemTable.tsx:150 -#: src/tables/stock/StockItemTable.tsx:216 +#: src/tables/sales/SalesOrderLineItemTable.tsx:158 +#: src/tables/stock/StockItemTable.tsx:206 msgid "Stock Information" msgstr "" #: src/tables/bom/BomTable.tsx:285 -#: src/tables/build/BuildLineTable.tsx:248 +#: src/tables/build/BuildLineTable.tsx:409 msgid "Consumable item" msgstr "" @@ -5644,7 +6726,7 @@ msgstr "" #~ msgstr "Create BOM Item" #: src/tables/bom/BomTable.tsx:306 -#: src/tables/build/BuildLineTable.tsx:69 +#: src/tables/build/BuildLineTable.tsx:200 msgid "Show testable items" msgstr "" @@ -5657,11 +6739,12 @@ msgid "Show trackable items" msgstr "" #: src/tables/bom/BomTable.tsx:316 -#: src/tables/build/BuildLineTable.tsx:64 +#: src/tables/build/BuildLineTable.tsx:195 msgid "Show assembled items" msgstr "" #: src/tables/bom/BomTable.tsx:321 +#: src/tables/build/BuildLineTable.tsx:180 msgid "Show items with available stock" msgstr "" @@ -5705,7 +6788,7 @@ msgstr "" #: src/tables/bom/BomTable.tsx:345 #: src/tables/bom/UsedInTable.tsx:79 -#: src/tables/build/BuildLineTable.tsx:58 +#: src/tables/build/BuildLineTable.tsx:189 msgid "Optional" msgstr "" @@ -5723,7 +6806,7 @@ msgstr "" #~ msgstr "Bom item deleted" #: src/tables/bom/BomTable.tsx:350 -#: src/tables/build/BuildLineTable.tsx:53 +#: src/tables/build/BuildLineTable.tsx:184 msgid "Consumable" msgstr "" @@ -5749,12 +6832,12 @@ msgid "Show items with pricing" msgstr "" #: src/tables/bom/BomTable.tsx:378 -#: src/tables/bom/BomTable.tsx:511 +#: src/tables/bom/BomTable.tsx:512 msgid "Import BOM Data" msgstr "" #: src/tables/bom/BomTable.tsx:388 -#: src/tables/bom/BomTable.tsx:523 +#: src/tables/bom/BomTable.tsx:526 msgid "Add BOM Item" msgstr "" @@ -5780,7 +6863,7 @@ msgstr "" #: src/tables/bom/BomTable.tsx:423 #: src/tables/bom/BomTable.tsx:426 -#: src/tables/bom/BomTable.tsx:517 +#: src/tables/bom/BomTable.tsx:519 msgid "Validate BOM" msgstr "" @@ -5812,21 +6895,15 @@ msgstr "" msgid "Edit Substitutes" msgstr "" -#: src/tables/bom/BomTable.tsx:539 -#: src/tables/part/PartParameterTable.tsx:193 -#: src/tables/part/PartTestTemplateTable.tsx:252 -msgid "Part is Locked" -msgstr "" - -#: src/tables/bom/BomTable.tsx:544 +#: src/tables/bom/BomTable.tsx:547 msgid "Bill of materials cannot be edited, as the part is locked" msgstr "" #: src/tables/bom/UsedInTable.tsx:33 -#: src/tables/build/BuildLineTable.tsx:63 +#: src/tables/build/BuildLineTable.tsx:194 #: src/tables/part/ParametricPartTable.tsx:233 #: src/tables/part/PartTable.tsx:190 -#: src/tables/stock/StockItemTable.tsx:300 +#: src/tables/stock/StockItemTable.tsx:304 msgid "Assembly" msgstr "" @@ -5844,285 +6921,347 @@ msgstr "" msgid "Show trackable assemblies" msgstr "" -#: src/tables/build/BuildAllocatedStockTable.tsx:54 +#: src/tables/build/BuildAllocatedStockTable.tsx:56 msgid "Allocated to Output" msgstr "" -#: src/tables/build/BuildAllocatedStockTable.tsx:55 +#: src/tables/build/BuildAllocatedStockTable.tsx:57 msgid "Show items allocated to a build output" msgstr "" -#: src/tables/build/BuildAllocatedStockTable.tsx:76 -#: src/tables/part/PartPurchaseOrdersTable.tsx:125 -#: src/tables/sales/SalesOrderAllocationTable.tsx:62 +#: src/tables/build/BuildAllocatedStockTable.tsx:65 +#: src/tables/build/BuildOrderTable.tsx:159 +#: src/tables/part/PartParameterTable.tsx:212 +#: src/tables/part/PartPurchaseOrdersTable.tsx:138 +#: src/tables/sales/ReturnOrderTable.tsx:84 +#: src/tables/sales/SalesOrderAllocationTable.tsx:68 +#: src/tables/sales/SalesOrderTable.tsx:84 +#: src/tables/stock/StockItemTable.tsx:339 +msgid "Include Variants" +msgstr "" + +#: src/tables/build/BuildAllocatedStockTable.tsx:66 +#: src/tables/build/BuildOrderTable.tsx:160 +#: src/tables/part/PartPurchaseOrdersTable.tsx:139 +#: src/tables/sales/ReturnOrderTable.tsx:85 +#: src/tables/sales/SalesOrderAllocationTable.tsx:69 +#: src/tables/sales/SalesOrderTable.tsx:85 +msgid "Include orders for part variants" +msgstr "" + +#: src/tables/build/BuildAllocatedStockTable.tsx:89 +#: src/tables/part/PartPurchaseOrdersTable.tsx:131 +#: src/tables/sales/SalesOrderAllocationTable.tsx:93 msgid "Order Status" msgstr "" -#: src/tables/build/BuildAllocatedStockTable.tsx:96 -#: src/tables/sales/SalesOrderAllocationTable.tsx:75 +#: src/tables/build/BuildAllocatedStockTable.tsx:117 +#: src/tables/sales/SalesOrderAllocationTable.tsx:126 msgid "Allocated Quantity" msgstr "" -#: src/tables/build/BuildAllocatedStockTable.tsx:116 -#: src/tables/sales/SalesOrderAllocationTable.tsx:94 +#: src/tables/build/BuildAllocatedStockTable.tsx:137 +#: src/tables/sales/SalesOrderAllocationTable.tsx:120 msgid "Available Quantity" msgstr "" -#: src/tables/build/BuildAllocatedStockTable.tsx:126 -#: src/tables/build/BuildOrderTestTable.tsx:176 -#: src/tables/build/BuildOrderTestTable.tsx:200 -#: src/tables/build/BuildOutputTable.tsx:312 -msgid "Build Output" +#: src/tables/build/BuildAllocatedStockTable.tsx:164 +#: src/tables/build/BuildLineTable.tsx:513 +msgid "Edit Stock Allocation" msgstr "" -#: src/tables/build/BuildAllocatedStockTable.tsx:143 -msgid "Edit Build Item" -msgstr "" +#: src/tables/build/BuildAllocatedStockTable.tsx:164 +#~ msgid "Edit Build Item" +#~ msgstr "Edit Build Item" -#: src/tables/build/BuildAllocatedStockTable.tsx:153 -msgid "Delete Build Item" -msgstr "" +#: src/tables/build/BuildAllocatedStockTable.tsx:174 +#~ msgid "Delete Build Item" +#~ msgstr "Delete Build Item" -#: src/tables/build/BuildLineTable.tsx:43 -#: src/tables/stock/StockItemTable.tsx:305 -msgid "Allocated" -msgstr "" - -#: src/tables/build/BuildLineTable.tsx:44 -msgid "Show allocated lines" -msgstr "" - -#: src/tables/build/BuildLineTable.tsx:49 -msgid "Show lines with available stock" -msgstr "" - -#: src/tables/build/BuildLineTable.tsx:54 -msgid "Show consumable lines" +#: src/tables/build/BuildAllocatedStockTable.tsx:177 +#: src/tables/build/BuildLineTable.tsx:526 +msgid "Delete Stock Allocation" msgstr "" #: src/tables/build/BuildLineTable.tsx:59 +#~ msgid "Show lines with available stock" +#~ msgstr "Show lines with available stock" + +#: src/tables/build/BuildLineTable.tsx:175 +msgid "Show allocated lines" +msgstr "" + +#: src/tables/build/BuildLineTable.tsx:185 +msgid "Show consumable lines" +msgstr "" + +#: src/tables/build/BuildLineTable.tsx:190 msgid "Show optional lines" msgstr "" -#: src/tables/build/BuildLineTable.tsx:68 +#: src/tables/build/BuildLineTable.tsx:199 #: src/tables/part/PartTable.tsx:208 msgid "Testable" msgstr "" -#: src/tables/build/BuildLineTable.tsx:73 -#: src/tables/stock/StockItemTable.tsx:364 +#: src/tables/build/BuildLineTable.tsx:204 +#: src/tables/stock/StockItemTable.tsx:368 msgid "Tracked" msgstr "" -#: src/tables/build/BuildLineTable.tsx:74 +#: src/tables/build/BuildLineTable.tsx:205 msgid "Show tracked lines" msgstr "" -#: src/tables/build/BuildLineTable.tsx:108 -#: src/tables/sales/SalesOrderLineItemTable.tsx:133 +#: src/tables/build/BuildLineTable.tsx:239 +#: src/tables/sales/SalesOrderLineItemTable.tsx:141 msgid "In production" msgstr "" -#: src/tables/build/BuildLineTable.tsx:136 +#: src/tables/build/BuildLineTable.tsx:267 msgid "Insufficient stock" msgstr "" -#: src/tables/build/BuildLineTable.tsx:152 -#: src/tables/sales/SalesOrderLineItemTable.tsx:121 -#: src/tables/stock/StockItemTable.tsx:186 +#: src/tables/build/BuildLineTable.tsx:283 +#: src/tables/sales/SalesOrderLineItemTable.tsx:129 +#: src/tables/stock/StockItemTable.tsx:175 msgid "No stock available" msgstr "" -#: src/tables/build/BuildLineTable.tsx:201 +#: src/tables/build/BuildLineTable.tsx:355 msgid "Gets Inherited" msgstr "" -#: src/tables/build/BuildLineTable.tsx:210 +#: src/tables/build/BuildLineTable.tsx:366 msgid "Unit Quantity" msgstr "" -#: src/tables/build/BuildLineTable.tsx:267 -#: src/tables/sales/SalesOrderLineItemTable.tsx:230 +#: src/tables/build/BuildLineTable.tsx:381 +msgid "Required Quantity" +msgstr "" + +#: src/tables/build/BuildLineTable.tsx:432 +#: src/tables/sales/SalesOrderLineItemTable.tsx:254 msgid "Create Build Order" msgstr "" -#: src/tables/build/BuildLineTable.tsx:298 -msgid "Allocate Stock" -msgstr "" +#: src/tables/build/BuildLineTable.tsx:460 +msgid "Auto allocation in progress" +msgstr "Auto asignación en progreso" -#: src/tables/build/BuildLineTable.tsx:305 +#: src/tables/build/BuildLineTable.tsx:463 +#: src/tables/build/BuildLineTable.tsx:632 +msgid "Auto Allocate Stock" +msgstr "Autoasignar stock" + +#: src/tables/build/BuildLineTable.tsx:464 +msgid "Automatically allocate stock to this build according to the selected options" +msgstr "Asignar stock automáticamente a esta construcción de acuerdo a las opciones seleccionadas" + +#: src/tables/build/BuildLineTable.tsx:482 +#: src/tables/build/BuildLineTable.tsx:496 +#: src/tables/build/BuildLineTable.tsx:579 +#: src/tables/build/BuildLineTable.tsx:664 +#: src/tables/build/BuildOutputTable.tsx:314 +#: src/tables/build/BuildOutputTable.tsx:319 +msgid "Deallocate Stock" +msgstr "Desasignar existencias" + +#: src/tables/build/BuildLineTable.tsx:498 +msgid "Deallocate all untracked stock for this build order" +msgstr "Desasignar todo el stock sin seguimiento para este pedido" + +#: src/tables/build/BuildLineTable.tsx:500 +msgid "Deallocate stock from the selected line item" +msgstr "Desasignar stock de la línea de item seleccionada" + +#: src/tables/build/BuildLineTable.tsx:504 +msgid "Stock has been deallocated" +msgstr "Stock ha sido desasignado" + +#: src/tables/build/BuildLineTable.tsx:589 msgid "Order Stock" msgstr "" -#: src/tables/build/BuildLineTable.tsx:312 +#: src/tables/build/BuildLineTable.tsx:596 msgid "Build Stock" msgstr "" -#: src/tables/build/BuildOrderTable.tsx:111 -msgid "Show active orders" +#: src/tables/build/BuildLineTable.tsx:610 +msgid "View Part" msgstr "" #: src/tables/build/BuildOrderTable.tsx:116 -msgid "Cascade" -msgstr "" +#~ msgid "Cascade" +#~ msgstr "Cascade" #: src/tables/build/BuildOrderTable.tsx:117 -msgid "Display recursive child orders" +#~ msgid "Display recursive child orders" +#~ msgstr "Display recursive child orders" + +#: src/tables/build/BuildOrderTable.tsx:121 +msgid "Show outstanding orders" msgstr "" -#: src/tables/build/BuildOrderTable.tsx:123 -#: src/tables/part/PartPurchaseOrdersTable.tsx:126 -#: src/tables/purchasing/PurchaseOrderTable.tsx:56 -#: src/tables/sales/ReturnOrderTable.tsx:47 -#: src/tables/sales/SalesOrderTable.tsx:54 +#: src/tables/build/BuildOrderTable.tsx:121 +#~ msgid "Show active orders" +#~ msgstr "Show active orders" + +#: src/tables/build/BuildOrderTable.tsx:122 +#~ msgid "Show overdue status" +#~ msgstr "Show overdue status" + +#: src/tables/build/BuildOrderTable.tsx:126 +#: src/tables/part/PartPurchaseOrdersTable.tsx:132 +#: src/tables/purchasing/PurchaseOrderTable.tsx:59 +#: src/tables/sales/ReturnOrderTable.tsx:57 +#: src/tables/sales/SalesOrderTable.tsx:57 msgid "Filter by order status" msgstr "" -#: src/tables/build/BuildOrderTable.tsx:130 -msgid "Show overdue status" -msgstr "" - -#: src/tables/build/BuildOrderTable.tsx:141 -#: src/tables/purchasing/PurchaseOrderTable.tsx:65 -#: src/tables/sales/ReturnOrderTable.tsx:56 -#: src/tables/sales/SalesOrderTable.tsx:63 +#: src/tables/build/BuildOrderTable.tsx:136 +#: src/tables/purchasing/PurchaseOrderTable.tsx:70 +#: src/tables/sales/ReturnOrderTable.tsx:68 +#: src/tables/sales/SalesOrderTable.tsx:68 msgid "Filter by project code" msgstr "" -#: src/tables/build/BuildOrderTable.tsx:146 -#: src/tables/purchasing/PurchaseOrderTable.tsx:70 -#: src/tables/sales/ReturnOrderTable.tsx:61 -#: src/tables/sales/SalesOrderTable.tsx:68 -msgid "Has Project Code" -msgstr "" - -#: src/tables/build/BuildOrderTable.tsx:147 +#: src/tables/build/BuildOrderTable.tsx:139 #: src/tables/purchasing/PurchaseOrderTable.tsx:71 #: src/tables/sales/ReturnOrderTable.tsx:62 #: src/tables/sales/SalesOrderTable.tsx:69 -msgid "Filter by whether the purchase order has a project code" -msgstr "" +#~ msgid "Filter by whether the purchase order has a project code" +#~ msgstr "Filter by whether the purchase order has a project code" -#: src/tables/build/BuildOrderTable.tsx:152 +#: src/tables/build/BuildOrderTable.tsx:143 msgid "Filter by user who issued this order" msgstr "" -#: src/tables/build/BuildOrderTable.tsx:158 -#: src/tables/purchasing/PurchaseOrderTable.tsx:76 -#: src/tables/sales/ReturnOrderTable.tsx:67 -#: src/tables/sales/SalesOrderTable.tsx:74 +#: src/tables/build/BuildOrderTable.tsx:149 +#: src/tables/purchasing/PurchaseOrderTable.tsx:77 +#: src/tables/sales/ReturnOrderTable.tsx:75 +#: src/tables/sales/SalesOrderTable.tsx:75 msgid "Filter by responsible owner" msgstr "" -#: src/tables/build/BuildOrderTestTable.tsx:75 -#: src/tables/build/BuildOrderTestTable.tsx:111 -#: src/tables/stock/StockItemTestResultTable.tsx:257 -#: src/tables/stock/StockItemTestResultTable.tsx:329 -#: src/tables/stock/StockItemTestResultTable.tsx:384 +#: src/tables/build/BuildOrderTestTable.tsx:76 +#: src/tables/build/BuildOrderTestTable.tsx:112 +#: src/tables/stock/StockItemTestResultTable.tsx:275 +#: src/tables/stock/StockItemTestResultTable.tsx:347 +#: src/tables/stock/StockItemTestResultTable.tsx:403 msgid "Add Test Result" msgstr "" -#: src/tables/build/BuildOrderTestTable.tsx:82 -#: src/tables/stock/StockItemTestResultTable.tsx:259 +#: src/tables/build/BuildOrderTestTable.tsx:83 +#: src/tables/stock/StockItemTestResultTable.tsx:277 msgid "Test result added" msgstr "" -#: src/tables/build/BuildOrderTestTable.tsx:110 -#: src/tables/stock/StockItemTestResultTable.tsx:174 +#: src/tables/build/BuildOrderTestTable.tsx:111 +#: src/tables/stock/StockItemTestResultTable.tsx:180 msgid "No Result" msgstr "" -#: src/tables/build/BuildOrderTestTable.tsx:220 +#: src/tables/build/BuildOrderTestTable.tsx:221 msgid "Show build outputs currently in production" msgstr "" +#: src/tables/build/BuildOutputTable.tsx:76 +msgid "Build Output Stock Allocation" +msgstr "" + #: src/tables/build/BuildOutputTable.tsx:161 #~ msgid "Delete build output" #~ msgstr "Delete build output" -#: src/tables/build/BuildOutputTable.tsx:173 -#: src/tables/build/BuildOutputTable.tsx:211 +#: src/tables/build/BuildOutputTable.tsx:258 +#: src/tables/build/BuildOutputTable.tsx:374 msgid "Add Build Output" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:216 +#: src/tables/build/BuildOutputTable.tsx:304 +#~ msgid "Edit build output" +#~ msgstr "Edit build output" + +#: src/tables/build/BuildOutputTable.tsx:306 +#: src/tables/build/BuildOutputTable.tsx:417 +msgid "Edit Build Output" +msgstr "" + +#: src/tables/build/BuildOutputTable.tsx:321 +msgid "This action will deallocate all stock from the selected build output" +msgstr "" + +#: src/tables/build/BuildOutputTable.tsx:341 msgid "Complete selected outputs" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:226 +#: src/tables/build/BuildOutputTable.tsx:352 msgid "Scrap selected outputs" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:236 +#: src/tables/build/BuildOutputTable.tsx:363 msgid "Cancel selected outputs" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:252 +#: src/tables/build/BuildOutputTable.tsx:385 msgid "Allocate" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:253 +#: src/tables/build/BuildOutputTable.tsx:386 msgid "Allocate stock to build output" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:259 +#: src/tables/build/BuildOutputTable.tsx:396 msgid "Deallocate" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:260 +#: src/tables/build/BuildOutputTable.tsx:397 msgid "Deallocate stock from build output" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:267 +#: src/tables/build/BuildOutputTable.tsx:408 msgid "Complete build output" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:276 +#: src/tables/build/BuildOutputTable.tsx:424 msgid "Scrap" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:277 +#: src/tables/build/BuildOutputTable.tsx:425 msgid "Scrap build output" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:280 -#~ msgid "Allocated Items" -#~ msgstr "Allocated Items" - -#: src/tables/build/BuildOutputTable.tsx:287 +#: src/tables/build/BuildOutputTable.tsx:435 msgid "Cancel build output" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:325 -msgid "Batch" -msgstr "" - -#: src/tables/build/BuildOutputTable.tsx:340 +#: src/tables/build/BuildOutputTable.tsx:488 msgid "Allocated Lines" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:355 +#: src/tables/build/BuildOutputTable.tsx:503 msgid "Required Tests" msgstr "" -#: src/tables/company/AddressTable.tsx:121 -#: src/tables/company/AddressTable.tsx:185 +#: src/tables/company/AddressTable.tsx:118 +#: src/tables/company/AddressTable.tsx:183 msgid "Add Address" msgstr "" -#: src/tables/company/AddressTable.tsx:126 +#: src/tables/company/AddressTable.tsx:123 msgid "Address created" msgstr "" -#: src/tables/company/AddressTable.tsx:135 +#: src/tables/company/AddressTable.tsx:132 msgid "Edit Address" msgstr "" -#: src/tables/company/AddressTable.tsx:143 +#: src/tables/company/AddressTable.tsx:140 msgid "Delete Address" msgstr "" -#: src/tables/company/AddressTable.tsx:144 +#: src/tables/company/AddressTable.tsx:141 msgid "Are you sure you want to delete this address?" msgstr "" @@ -6130,24 +7269,24 @@ msgstr "" #~ msgid "New Company" #~ msgstr "New Company" -#: src/tables/company/CompanyTable.tsx:74 -#: src/tables/company/CompanyTable.tsx:123 +#: src/tables/company/CompanyTable.tsx:75 +#: src/tables/company/CompanyTable.tsx:125 msgid "Add Company" msgstr "" -#: src/tables/company/CompanyTable.tsx:96 +#: src/tables/company/CompanyTable.tsx:97 msgid "Show active companies" msgstr "" -#: src/tables/company/CompanyTable.tsx:101 +#: src/tables/company/CompanyTable.tsx:102 msgid "Show companies which are suppliers" msgstr "" -#: src/tables/company/CompanyTable.tsx:106 +#: src/tables/company/CompanyTable.tsx:107 msgid "Show companies which are manufacturers" msgstr "" -#: src/tables/company/CompanyTable.tsx:111 +#: src/tables/company/CompanyTable.tsx:112 msgid "Show companies which are customers" msgstr "" @@ -6163,96 +7302,99 @@ msgstr "" msgid "Delete Contact" msgstr "" -#: src/tables/company/ContactTable.tsx:129 +#: src/tables/company/ContactTable.tsx:130 msgid "Add contact" msgstr "" -#: src/tables/general/AttachmentTable.tsx:130 +#: src/tables/general/AttachmentTable.tsx:135 msgid "File uploaded" msgstr "" -#: src/tables/general/AttachmentTable.tsx:131 +#: src/tables/general/AttachmentTable.tsx:136 msgid "File {0} uploaded successfully" msgstr "" -#: src/tables/general/AttachmentTable.tsx:142 +#: src/tables/general/AttachmentTable.tsx:147 msgid "Upload Error" msgstr "" -#: src/tables/general/AttachmentTable.tsx:143 +#: src/tables/general/AttachmentTable.tsx:148 msgid "File could not be uploaded" msgstr "" -#: src/tables/general/AttachmentTable.tsx:191 +#: src/tables/general/AttachmentTable.tsx:196 msgid "Upload Attachment" msgstr "" -#: src/tables/general/AttachmentTable.tsx:201 +#: src/tables/general/AttachmentTable.tsx:206 msgid "Edit Attachment" msgstr "" -#: src/tables/general/AttachmentTable.tsx:215 +#: src/tables/general/AttachmentTable.tsx:220 msgid "Delete Attachment" msgstr "" -#: src/tables/general/AttachmentTable.tsx:225 +#: src/tables/general/AttachmentTable.tsx:230 msgid "Is Link" msgstr "" -#: src/tables/general/AttachmentTable.tsx:226 +#: src/tables/general/AttachmentTable.tsx:231 msgid "Show link attachments" msgstr "" -#: src/tables/general/AttachmentTable.tsx:230 +#: src/tables/general/AttachmentTable.tsx:235 msgid "Is File" msgstr "" -#: src/tables/general/AttachmentTable.tsx:231 +#: src/tables/general/AttachmentTable.tsx:236 msgid "Show file attachments" msgstr "" -#: src/tables/general/AttachmentTable.tsx:240 +#: src/tables/general/AttachmentTable.tsx:245 msgid "Add attachment" msgstr "" -#: src/tables/general/AttachmentTable.tsx:251 -msgid "Add external link" -msgstr "" - #: src/tables/general/AttachmentTable.tsx:254 #~ msgid "Upload attachment" #~ msgstr "Upload attachment" -#: src/tables/general/AttachmentTable.tsx:299 +#: src/tables/general/AttachmentTable.tsx:256 +msgid "Add external link" +msgstr "" + +#: src/tables/general/AttachmentTable.tsx:304 msgid "No attachments found" msgstr "" -#: src/tables/general/AttachmentTable.tsx:337 +#: src/tables/general/AttachmentTable.tsx:343 msgid "Drag attachment file here to upload" msgstr "" #: src/tables/general/ExtraLineItemTable.tsx:86 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:251 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:60 -#: src/tables/sales/SalesOrderLineItemTable.tsx:196 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:263 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:362 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:72 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:168 +#: src/tables/sales/SalesOrderLineItemTable.tsx:206 +#: src/tables/sales/SalesOrderLineItemTable.tsx:291 msgid "Add Line Item" msgstr "" #: src/tables/general/ExtraLineItemTable.tsx:98 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:271 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:72 -#: src/tables/sales/SalesOrderLineItemTable.tsx:214 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:283 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:84 +#: src/tables/sales/SalesOrderLineItemTable.tsx:224 msgid "Edit Line Item" msgstr "" #: src/tables/general/ExtraLineItemTable.tsx:106 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:279 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:80 -#: src/tables/sales/SalesOrderLineItemTable.tsx:222 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:291 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:92 +#: src/tables/sales/SalesOrderLineItemTable.tsx:232 msgid "Delete Line Item" msgstr "" -#: src/tables/general/ExtraLineItemTable.tsx:142 +#: src/tables/general/ExtraLineItemTable.tsx:143 msgid "Add Extra Line Item" msgstr "" @@ -6261,12 +7403,12 @@ msgid "Machine restarted" msgstr "" #: src/tables/machine/MachineListTable.tsx:212 -#: src/tables/machine/MachineListTable.tsx:263 +#: src/tables/machine/MachineListTable.tsx:261 msgid "Edit machine" msgstr "" #: src/tables/machine/MachineListTable.tsx:226 -#: src/tables/machine/MachineListTable.tsx:267 +#: src/tables/machine/MachineListTable.tsx:265 msgid "Delete machine" msgstr "" @@ -6278,51 +7420,50 @@ msgstr "" msgid "Are you sure you want to remove the machine \"{0}\"?" msgstr "" -#: src/tables/machine/MachineListTable.tsx:255 -#: src/tables/machine/MachineListTable.tsx:432 +#: src/tables/machine/MachineListTable.tsx:254 +#: src/tables/machine/MachineListTable.tsx:442 msgid "Restart required" msgstr "" -#: src/tables/machine/MachineListTable.tsx:259 +#: src/tables/machine/MachineListTable.tsx:258 msgid "Machine Actions" msgstr "" -#: src/tables/machine/MachineListTable.tsx:272 +#: src/tables/machine/MachineListTable.tsx:270 msgid "Restart" msgstr "" -#: src/tables/machine/MachineListTable.tsx:274 +#: src/tables/machine/MachineListTable.tsx:272 msgid "Restart machine" msgstr "" -#: src/tables/machine/MachineListTable.tsx:276 +#: src/tables/machine/MachineListTable.tsx:274 msgid "manual restart required" msgstr "" +#: src/tables/machine/MachineListTable.tsx:291 +#~ msgid "Machine information" +#~ msgstr "Machine information" + #: src/tables/machine/MachineListTable.tsx:292 -msgid "Machine information" +msgid "Machine Information" msgstr "" -#: src/tables/machine/MachineListTable.tsx:303 -#: src/tables/machine/MachineListTable.tsx:599 +#: src/tables/machine/MachineListTable.tsx:302 +#: src/tables/machine/MachineListTable.tsx:610 msgid "Machine Type" msgstr "" -#: src/tables/machine/MachineListTable.tsx:316 +#: src/tables/machine/MachineListTable.tsx:315 msgid "Machine Driver" msgstr "" -#: src/tables/machine/MachineListTable.tsx:329 +#: src/tables/machine/MachineListTable.tsx:330 msgid "Initialized" msgstr "" -#: src/tables/machine/MachineListTable.tsx:350 -#: src/tables/machine/MachineTypeTable.tsx:261 -msgid "Errors" -msgstr "" - -#: src/tables/machine/MachineListTable.tsx:358 -#: src/tables/machine/MachineTypeTable.tsx:269 +#: src/tables/machine/MachineListTable.tsx:359 +#: src/tables/machine/MachineTypeTable.tsx:290 msgid "No errors reported" msgstr "" @@ -6330,7 +7471,7 @@ msgstr "" msgid "Machine Settings" msgstr "" -#: src/tables/machine/MachineListTable.tsx:389 +#: src/tables/machine/MachineListTable.tsx:394 msgid "Driver Settings" msgstr "" @@ -6338,86 +7479,109 @@ msgstr "" #~ msgid "Create machine" #~ msgstr "Create machine" -#: src/tables/machine/MachineListTable.tsx:506 +#: src/tables/machine/MachineListTable.tsx:516 +#: src/tables/machine/MachineListTable.tsx:558 msgid "Add machine" msgstr "" #: src/tables/machine/MachineListTable.tsx:561 -msgid "Machine detail" +#~ msgid "Machine detail" +#~ msgstr "Machine detail" + +#: src/tables/machine/MachineListTable.tsx:572 +msgid "Machine Detail" msgstr "" -#: src/tables/machine/MachineListTable.tsx:608 +#: src/tables/machine/MachineListTable.tsx:619 msgid "Driver" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:73 +#: src/tables/machine/MachineTypeTable.tsx:78 msgid "Builtin driver" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:89 +#: src/tables/machine/MachineTypeTable.tsx:96 +msgid "Not Found" +msgstr "" + +#: src/tables/machine/MachineTypeTable.tsx:99 msgid "Machine type not found." msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:97 -msgid "Machine type information" +#: src/tables/machine/MachineTypeTable.tsx:99 +#~ msgid "Machine type information" +#~ msgstr "Machine type information" + +#: src/tables/machine/MachineTypeTable.tsx:109 +msgid "Machine Type Information" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:110 -#: src/tables/machine/MachineTypeTable.tsx:217 +#: src/tables/machine/MachineTypeTable.tsx:124 +#: src/tables/machine/MachineTypeTable.tsx:238 msgid "Slug" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:118 -#: src/tables/machine/MachineTypeTable.tsx:238 +#: src/tables/machine/MachineTypeTable.tsx:135 +#: src/tables/machine/MachineTypeTable.tsx:259 msgid "Provider plugin" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:130 -#: src/tables/machine/MachineTypeTable.tsx:250 +#: src/tables/machine/MachineTypeTable.tsx:147 +#: src/tables/machine/MachineTypeTable.tsx:271 msgid "Provider file" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:135 -#: src/tables/machine/MachineTypeTable.tsx:255 -#: src/tables/plugin/PluginListTable.tsx:180 -#: src/tables/plugin/PluginListTable.tsx:568 -msgid "Builtin" +#: src/tables/machine/MachineTypeTable.tsx:148 +#~ msgid "Available drivers" +#~ msgstr "Available drivers" + +#: src/tables/machine/MachineTypeTable.tsx:162 +msgid "Available Drivers" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:146 -msgid "Available drivers" -msgstr "" - -#: src/tables/machine/MachineTypeTable.tsx:196 +#: src/tables/machine/MachineTypeTable.tsx:217 msgid "Machine driver not found." msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:204 +#: src/tables/machine/MachineTypeTable.tsx:225 msgid "Machine driver information" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:224 +#: src/tables/machine/MachineTypeTable.tsx:245 msgid "Machine type" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:327 +#: src/tables/machine/MachineTypeTable.tsx:338 +#~ msgid "Machine type detail" +#~ msgstr "Machine type detail" + +#: src/tables/machine/MachineTypeTable.tsx:348 msgid "Builtin type" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:336 -msgid "Machine type detail" +#: src/tables/machine/MachineTypeTable.tsx:348 +#~ msgid "Machine driver detail" +#~ msgstr "Machine driver detail" + +#: src/tables/machine/MachineTypeTable.tsx:357 +msgid "Machine Type Detail" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:346 -msgid "Machine driver detail" +#: src/tables/machine/MachineTypeTable.tsx:367 +msgid "Machine Driver Detail" msgstr "" #: src/tables/notifications/NotificationsTable.tsx:26 msgid "Age" msgstr "" +#: src/tables/notifications/NotificationsTable.tsx:36 +msgid "Notification" +msgstr "" + #: src/tables/notifications/NotificationsTable.tsx:40 #: src/tables/plugin/PluginErrorTable.tsx:37 +#: src/tables/settings/ErrorTable.tsx:50 msgid "Message" msgstr "" @@ -6451,33 +7615,32 @@ msgstr "" msgid "Show assembly parts" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:68 +#: src/tables/part/PartCategoryTable.tsx:48 +msgid "You are subscribed to notifications for this category" +msgstr "" + +#: src/tables/part/PartCategoryTable.tsx:80 #: src/tables/part/PartTable.tsx:196 msgid "Include Subcategories" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:69 +#: src/tables/part/PartCategoryTable.tsx:81 msgid "Include subcategories in results" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:74 +#: src/tables/part/PartCategoryTable.tsx:86 msgid "Show structural categories" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:78 -#: src/tables/part/PartTable.tsx:294 -msgid "Subscribed" -msgstr "" - -#: src/tables/part/PartCategoryTable.tsx:79 +#: src/tables/part/PartCategoryTable.tsx:91 msgid "Show categories to which the user is subscribed" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:86 +#: src/tables/part/PartCategoryTable.tsx:100 msgid "New Part Category" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:112 +#: src/tables/part/PartCategoryTable.tsx:129 msgid "Add Part Category" msgstr "" @@ -6523,11 +7686,6 @@ msgstr "" msgid "Part parameters cannot be edited, as the part is locked" msgstr "" -#: src/tables/part/PartParameterTable.tsx:212 -#: src/tables/stock/StockItemTable.tsx:335 -msgid "Include Variants" -msgstr "" - #: src/tables/part/PartParameterTemplateTable.tsx:31 msgid "Checkbox" msgstr "" @@ -6554,6 +7712,7 @@ msgid "Show templates with units" msgstr "" #: src/tables/part/PartParameterTemplateTable.tsx:85 +#: src/tables/part/PartParameterTemplateTable.tsx:141 msgid "Add Parameter Template" msgstr "" @@ -6566,23 +7725,19 @@ msgid "Delete Parameter Template" msgstr "" #: src/tables/part/PartParameterTemplateTable.tsx:141 -msgid "Add parameter template" -msgstr "" +#~ msgid "Add parameter template" +#~ msgstr "Add parameter template" -#: src/tables/part/PartPurchaseOrdersTable.tsx:77 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:162 +#: src/tables/part/PartPurchaseOrdersTable.tsx:78 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:168 msgid "Total Quantity" msgstr "" -#: src/tables/part/PartPurchaseOrdersTable.tsx:115 -msgid "Pending" -msgstr "" - -#: src/tables/part/PartPurchaseOrdersTable.tsx:116 +#: src/tables/part/PartPurchaseOrdersTable.tsx:122 msgid "Show pending orders" msgstr "" -#: src/tables/part/PartPurchaseOrdersTable.tsx:121 +#: src/tables/part/PartPurchaseOrdersTable.tsx:127 msgid "Show received items" msgstr "" @@ -6728,22 +7883,13 @@ msgstr "" msgid "Results" msgstr "" -#: src/tables/part/PartTestTemplateTable.tsx:76 -msgid "No Results" -msgstr "" - -#: src/tables/part/PartTestTemplateTable.tsx:106 -#: src/tables/stock/StockItemTestResultTable.tsx:365 -msgid "Required" -msgstr "" - #: src/tables/part/PartTestTemplateTable.tsx:107 msgid "Show required tests" msgstr "" #: src/tables/part/PartTestTemplateTable.tsx:111 -#: src/tables/settings/TemplateTable.tsx:167 -#: src/tables/settings/TemplateTable.tsx:283 +#: src/tables/settings/TemplateTable.tsx:247 +#: src/tables/settings/TemplateTable.tsx:363 msgid "Enabled" msgstr "" @@ -6784,7 +7930,7 @@ msgid "Show tests which have recorded results" msgstr "" #: src/tables/part/PartTestTemplateTable.tsx:154 -#: src/tables/part/PartTestTemplateTable.tsx:237 +#: src/tables/part/PartTestTemplateTable.tsx:238 msgid "Add Test Template" msgstr "" @@ -6808,7 +7954,7 @@ msgstr "" msgid "View Parent Part" msgstr "" -#: src/tables/part/PartTestTemplateTable.tsx:257 +#: src/tables/part/PartTestTemplateTable.tsx:258 msgid "Part templates cannot be edited, as the part is locked" msgstr "" @@ -6836,28 +7982,49 @@ msgstr "" msgid "Show trackable variants" msgstr "" -#: src/tables/part/RelatedPartTable.tsx:84 +#: src/tables/part/RelatedPartTable.tsx:86 +#: src/tables/part/RelatedPartTable.tsx:109 msgid "Add Related Part" msgstr "" -#: src/tables/part/RelatedPartTable.tsx:99 +#: src/tables/part/RelatedPartTable.tsx:101 msgid "Delete Related Part" msgstr "" -#: src/tables/part/RelatedPartTable.tsx:106 -msgid "Add related part" -msgstr "" +#: src/tables/part/RelatedPartTable.tsx:109 +#~ msgid "Add related part" +#~ msgstr "Add related part" #: src/tables/plugin/PluginErrorTable.tsx:29 msgid "Stage" msgstr "" -#: src/tables/plugin/PluginListTable.tsx:95 -msgid "Plugin with key {pluginKey} not found" +#: src/tables/plugin/PluginListTable.tsx:42 +msgid "Plugin is active" msgstr "" +#: src/tables/plugin/PluginListTable.tsx:48 +msgid "Plugin is inactive" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:55 +msgid "Plugin is not installed" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:76 +msgid "Plugin" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:95 +#~ msgid "Plugin with key {pluginKey} not found" +#~ msgstr "Plugin with key {pluginKey} not found" + #: src/tables/plugin/PluginListTable.tsx:97 -msgid "An error occurred while fetching plugin details" +#~ msgid "An error occurred while fetching plugin details" +#~ msgstr "An error occurred while fetching plugin details" + +#: src/tables/plugin/PluginListTable.tsx:109 +msgid "Description not available" msgstr "" #: src/tables/plugin/PluginListTable.tsx:113 @@ -6865,12 +8032,8 @@ msgstr "" #~ msgstr "Plugin with id {id} not found" #: src/tables/plugin/PluginListTable.tsx:122 -msgid "Plugin information" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:134 -msgid "Author" -msgstr "" +#~ msgid "Plugin information" +#~ msgstr "Plugin information" #: src/tables/plugin/PluginListTable.tsx:134 #~ msgid "Plugin Actions" @@ -6881,79 +8044,124 @@ msgstr "" #~ msgid "Edit plugin" #~ msgstr "Edit plugin" +#: src/tables/plugin/PluginListTable.tsx:144 +msgid "Confirm plugin activation" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:145 +msgid "Confirm plugin deactivation" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:150 +msgid "The selected plugin will be activated" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:151 +msgid "The selected plugin will be deactivated" +msgstr "" + #: src/tables/plugin/PluginListTable.tsx:152 #: src/tables/plugin/PluginListTable.tsx:153 #~ msgid "Reload" #~ msgstr "Reload" -#: src/tables/plugin/PluginListTable.tsx:154 -msgid "Plugin is not active" -msgstr "" - #: src/tables/plugin/PluginListTable.tsx:163 -msgid "Package information" -msgstr "" +#~ msgid "Package information" +#~ msgstr "Package information" #: src/tables/plugin/PluginListTable.tsx:169 -msgid "Package Name" +msgid "Deactivate" msgstr "" -#: src/tables/plugin/PluginListTable.tsx:175 -msgid "Installation Path" +#: src/tables/plugin/PluginListTable.tsx:183 +msgid "Activate" msgstr "" -#: src/tables/plugin/PluginListTable.tsx:185 -msgid "Package" +#: src/tables/plugin/PluginListTable.tsx:184 +msgid "Activate selected plugin" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:196 +msgid "Update selected plugin" msgstr "" #: src/tables/plugin/PluginListTable.tsx:197 -msgid "Plugin settings" -msgstr "" +#~ msgid "Plugin settings" +#~ msgstr "Plugin settings" #: src/tables/plugin/PluginListTable.tsx:214 -msgid "Plugin is active" +#: src/tables/stock/InstalledItemsTable.tsx:107 +msgid "Uninstall" msgstr "" -#: src/tables/plugin/PluginListTable.tsx:220 -msgid "Plugin is inactive" +#: src/tables/plugin/PluginListTable.tsx:215 +msgid "Uninstall selected plugin" msgstr "" -#: src/tables/plugin/PluginListTable.tsx:227 -msgid "Plugin is not installed" +#: src/tables/plugin/PluginListTable.tsx:233 +msgid "Delete selected plugin configuration" msgstr "" -#: src/tables/plugin/PluginListTable.tsx:253 -msgid "Plugin" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:287 -msgid "Description not available" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:319 -msgid "Confirm plugin activation" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:320 -msgid "Confirm plugin deactivation" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:325 -msgid "The selected plugin will be activated" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:326 -msgid "The selected plugin will be deactivated" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:334 +#: src/tables/plugin/PluginListTable.tsx:249 msgid "Activate Plugin" msgstr "" +#: src/tables/plugin/PluginListTable.tsx:270 +msgid "Install plugin" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:283 +msgid "Install" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:284 +msgid "Plugin installed successfully" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:289 +msgid "Uninstall Plugin" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:301 +msgid "Confirm plugin uninstall" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:304 +msgid "The selected plugin will be uninstalled." +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:308 +#~ msgid "This action cannot be undone." +#~ msgstr "This action cannot be undone." + +#: src/tables/plugin/PluginListTable.tsx:309 +msgid "Plugin uninstalled successfully" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:317 +msgid "Delete Plugin" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:318 +msgid "Deleting this plugin configuration will remove all associated settings and data. Are you sure you want to delete this plugin?" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:331 +msgid "Plugins reloaded" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:332 +msgid "Plugins were reloaded successfully" +msgstr "" + #: src/tables/plugin/PluginListTable.tsx:338 #~ msgid "Deactivate Plugin" #~ msgstr "Deactivate Plugin" +#: src/tables/plugin/PluginListTable.tsx:350 +msgid "Reload Plugins" +msgstr "" + #: src/tables/plugin/PluginListTable.tsx:354 #~ msgid "The following plugin will be activated" #~ msgstr "The following plugin will be activated" @@ -6962,16 +8170,16 @@ msgstr "" #~ msgid "The following plugin will be deactivated" #~ msgstr "The following plugin will be deactivated" -#: src/tables/plugin/PluginListTable.tsx:362 -msgid "Deactivate" +#: src/tables/plugin/PluginListTable.tsx:357 +msgid "Install Plugin" msgstr "" #: src/tables/plugin/PluginListTable.tsx:366 #~ msgid "Confirm" #~ msgstr "Confirm" -#: src/tables/plugin/PluginListTable.tsx:373 -msgid "Activate" +#: src/tables/plugin/PluginListTable.tsx:374 +msgid "Plugin Detail" msgstr "" #: src/tables/plugin/PluginListTable.tsx:376 @@ -6998,76 +8206,12 @@ msgstr "" #~ msgid "Error updating plugin" #~ msgstr "Error updating plugin" -#: src/tables/plugin/PluginListTable.tsx:406 -msgid "Uninstall" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:438 -msgid "Install plugin" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:451 -msgid "Install" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:452 -msgid "Plugin installed successfully" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:457 -msgid "Uninstall Plugin" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:469 -msgid "Confirm plugin uninstall" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:472 -msgid "The selected plugin will be uninstalled." -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:473 -msgid "This action cannot be undone." -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:477 -msgid "Plugin uninstalled successfully" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:484 -msgid "Delete Plugin" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:485 -msgid "Deleting this plugin configuration will remove all associated settings and data. Are you sure you want to delete this plugin?" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:498 -msgid "Plugins reloaded" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:499 -msgid "Plugins were reloaded successfully" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:515 -msgid "Reload Plugins" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:524 -msgid "Install Plugin" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:544 -msgid "Plugin Detail" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:573 +#: src/tables/plugin/PluginListTable.tsx:411 msgid "Sample" msgstr "" -#: src/tables/plugin/PluginListTable.tsx:578 -#: src/tables/stock/StockItemTable.tsx:340 +#: src/tables/plugin/PluginListTable.tsx:416 +#: src/tables/stock/StockItemTable.tsx:344 msgid "Installed" msgstr "" @@ -7116,82 +8260,78 @@ msgstr "" #~ msgid "Are you sure you want to remove this manufacturer part?" #~ msgstr "Are you sure you want to remove this manufacturer part?" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:102 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:339 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:103 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:356 msgid "Import Line Items" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:135 -msgid "Part Description" -msgstr "" - -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:201 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:207 msgid "Supplier Code" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:208 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:214 msgid "Supplier Link" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:215 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:220 msgid "Manufacturer Code" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:229 -msgid "Destination" +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:248 +msgid "Show line items which have been received" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:300 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:316 msgid "Receive line item" msgstr "" #: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:344 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:142 -#: src/tables/sales/SalesOrderLineItemTable.tsx:240 -msgid "Add line item" -msgstr "" +#: src/tables/sales/ReturnOrderLineItemTable.tsx:160 +#: src/tables/sales/SalesOrderLineItemTable.tsx:258 +#~ msgid "Add line item" +#~ msgstr "Add line item" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:354 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:373 msgid "Receive items" msgstr "" -#: src/tables/purchasing/SupplierPartTable.tsx:93 +#: src/tables/purchasing/SupplierPartTable.tsx:95 msgid "MPN" msgstr "" -#: src/tables/purchasing/SupplierPartTable.tsx:122 +#: src/tables/purchasing/SupplierPartTable.tsx:124 msgid "Base units" msgstr "" -#: src/tables/purchasing/SupplierPartTable.tsx:170 +#: src/tables/purchasing/SupplierPartTable.tsx:172 msgid "Supplier part created" msgstr "" -#: src/tables/purchasing/SupplierPartTable.tsx:176 +#: src/tables/purchasing/SupplierPartTable.tsx:179 msgid "Add supplier part" msgstr "" -#: src/tables/purchasing/SupplierPartTable.tsx:188 +#: src/tables/purchasing/SupplierPartTable.tsx:191 msgid "Show active supplier parts" msgstr "" -#: src/tables/purchasing/SupplierPartTable.tsx:192 -msgid "Active Part" -msgstr "" - -#: src/tables/purchasing/SupplierPartTable.tsx:193 -msgid "Show active internal parts" -msgstr "" - #: src/tables/purchasing/SupplierPartTable.tsx:193 #~ msgid "Supplier part updated" #~ msgstr "Supplier part updated" -#: src/tables/purchasing/SupplierPartTable.tsx:197 +#: src/tables/purchasing/SupplierPartTable.tsx:195 +msgid "Active Part" +msgstr "" + +#: src/tables/purchasing/SupplierPartTable.tsx:196 +msgid "Show active internal parts" +msgstr "" + +#: src/tables/purchasing/SupplierPartTable.tsx:200 msgid "Active Supplier" msgstr "" -#: src/tables/purchasing/SupplierPartTable.tsx:198 +#: src/tables/purchasing/SupplierPartTable.tsx:201 msgid "Show active suppliers" msgstr "" @@ -7203,99 +8343,187 @@ msgstr "" #~ msgid "Are you sure you want to remove this supplier part?" #~ msgstr "Are you sure you want to remove this supplier part?" -#: src/tables/sales/ReturnOrderLineItemTable.tsx:114 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:139 msgid "Received Date" msgstr "" -#: src/tables/sales/ReturnOrderLineItemTable.tsx:128 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:153 msgid "Show items which have been received" msgstr "" -#: src/tables/sales/ReturnOrderLineItemTable.tsx:133 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:158 msgid "Filter by line item status" msgstr "" -#: src/tables/sales/ReturnOrderLineItemTable.tsx:158 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:176 +msgid "Receive selected items" +msgstr "" + +#: src/tables/sales/ReturnOrderLineItemTable.tsx:205 msgid "Receive Item" msgstr "" -#: src/tables/sales/SalesOrderLineItemTable.tsx:262 -msgid "Allocate stock" +#: src/tables/sales/SalesOrderAllocationTable.tsx:60 +msgid "Show outstanding allocations" msgstr "" -#: src/tables/sales/SalesOrderLineItemTable.tsx:272 +#: src/tables/sales/SalesOrderAllocationTable.tsx:168 +#: src/tables/sales/SalesOrderAllocationTable.tsx:190 +msgid "Edit Allocation" +msgstr "" + +#: src/tables/sales/SalesOrderAllocationTable.tsx:175 +#: src/tables/sales/SalesOrderAllocationTable.tsx:197 +msgid "Delete Allocation" +msgstr "" + +#: src/tables/sales/SalesOrderLineItemTable.tsx:244 +msgid "Allocate Serial Numbers" +msgstr "" + +#: src/tables/sales/SalesOrderLineItemTable.tsx:277 +msgid "Show lines which are fully allocated" +msgstr "" + +#: src/tables/sales/SalesOrderLineItemTable.tsx:280 +#~ msgid "Allocate stock" +#~ msgstr "Allocate stock" + +#: src/tables/sales/SalesOrderLineItemTable.tsx:282 +msgid "Show lines which are completed" +msgstr "" + +#: src/tables/sales/SalesOrderLineItemTable.tsx:291 +#~ msgid "Allocate Serials" +#~ msgstr "Allocate Serials" + +#: src/tables/sales/SalesOrderLineItemTable.tsx:340 +msgid "Allocate serials" +msgstr "" + +#: src/tables/sales/SalesOrderLineItemTable.tsx:356 msgid "Build stock" msgstr "" -#: src/tables/sales/SalesOrderLineItemTable.tsx:289 -#: src/tables/stock/StockItemTable.tsx:507 +#: src/tables/sales/SalesOrderLineItemTable.tsx:373 +#: src/tables/stock/StockItemTable.tsx:512 msgid "Order stock" msgstr "" -#: src/tables/sales/SalesOrderShipmentTable.tsx:40 +#: src/tables/sales/SalesOrderShipmentTable.tsx:51 +#~ msgid "Delete Shipment" +#~ msgstr "Delete Shipment" + +#: src/tables/sales/SalesOrderShipmentTable.tsx:57 msgid "Create Shipment" msgstr "" -#: src/tables/sales/SalesOrderShipmentTable.tsx:50 -msgid "Delete Shipment" -msgstr "" - -#: src/tables/sales/SalesOrderShipmentTable.tsx:58 -msgid "Edit Shipment" -msgstr "" - -#: src/tables/sales/SalesOrderShipmentTable.tsx:66 -msgid "Shipment Reference" -msgstr "" - -#: src/tables/sales/SalesOrderShipmentTable.tsx:71 +#: src/tables/sales/SalesOrderShipmentTable.tsx:104 msgid "Items" msgstr "" -#: src/tables/sales/SalesOrderShipmentTable.tsx:83 -msgid "Delivery Date" +#: src/tables/sales/SalesOrderShipmentTable.tsx:139 +msgid "View Shipment" msgstr "" -#: src/tables/sales/SalesOrderShipmentTable.tsx:107 -msgid "Complete Shipment" +#: src/tables/sales/SalesOrderShipmentTable.tsx:161 +msgid "Edit shipment" msgstr "" -#: src/tables/sales/SalesOrderShipmentTable.tsx:133 +#: src/tables/sales/SalesOrderShipmentTable.tsx:169 +msgid "Cancel shipment" +msgstr "" + +#: src/tables/sales/SalesOrderShipmentTable.tsx:184 msgid "Add shipment" msgstr "" -#: src/tables/sales/SalesOrderShipmentTable.tsx:146 -msgid "Shipped" -msgstr "" - -#: src/tables/sales/SalesOrderShipmentTable.tsx:147 +#: src/tables/sales/SalesOrderShipmentTable.tsx:198 msgid "Show shipments which have been shipped" msgstr "" -#: src/tables/sales/SalesOrderShipmentTable.tsx:151 -msgid "Delivered" -msgstr "" - -#: src/tables/sales/SalesOrderShipmentTable.tsx:152 +#: src/tables/sales/SalesOrderShipmentTable.tsx:203 msgid "Show shipments which have been delivered" msgstr "" -#: src/tables/settings/CurrencyTable.tsx:28 -msgid "Rate" +#: src/tables/settings/BarcodeScanHistoryTable.tsx:61 +msgid "Barcode Information" msgstr "" -#: src/tables/settings/CurrencyTable.tsx:40 -msgid "Exchange rates updated" +#: src/tables/settings/BarcodeScanHistoryTable.tsx:76 +#: src/tables/settings/ErrorTable.tsx:59 +msgid "Timestamp" msgstr "" -#: src/tables/settings/CurrencyTable.tsx:46 -msgid "Exchange rate update error" +#: src/tables/settings/BarcodeScanHistoryTable.tsx:86 +msgid "Endpoint" msgstr "" -#: src/tables/settings/CurrencyTable.tsx:57 -msgid "Refresh currency exchange rates" +#: src/tables/settings/BarcodeScanHistoryTable.tsx:90 +#: src/tables/settings/BarcodeScanHistoryTable.tsx:217 +#: src/tables/stock/StockItemTestResultTable.tsx:174 +msgid "Result" msgstr "" +#: src/tables/settings/BarcodeScanHistoryTable.tsx:98 +msgid "Context" +msgstr "" + +#: src/tables/settings/BarcodeScanHistoryTable.tsx:119 +msgid "Response" +msgstr "" + +#: src/tables/settings/BarcodeScanHistoryTable.tsx:213 +#: src/tables/settings/ImportSessionTable.tsx:121 +#: src/tables/stock/StockTrackingTable.tsx:183 +msgid "Filter by user" +msgstr "" + +#: src/tables/settings/BarcodeScanHistoryTable.tsx:218 +msgid "Filter by result" +msgstr "" + +#: src/tables/settings/BarcodeScanHistoryTable.tsx:232 +msgid "Delete Barcode Scan Record" +msgstr "" + +#: src/tables/settings/BarcodeScanHistoryTable.tsx:258 +msgid "Barcode Scan Details" +msgstr "" + +#: src/tables/settings/BarcodeScanHistoryTable.tsx:268 +msgid "Logging Disabled" +msgstr "" + +#: src/tables/settings/BarcodeScanHistoryTable.tsx:270 +msgid "Barcode logging is not enabled" +msgstr "" + +#: src/tables/settings/CustomStateTable.tsx:36 +msgid "Display Name" +msgstr "" + +#: src/tables/settings/CustomStateTable.tsx:52 +msgid "Model" +msgstr "" + +#: src/tables/settings/CustomStateTable.tsx:65 +#: src/tables/settings/CustomStateTable.tsx:115 +msgid "Add State" +msgstr "" + +#: src/tables/settings/CustomStateTable.tsx:77 +msgid "Edit State" +msgstr "" + +#: src/tables/settings/CustomStateTable.tsx:85 +msgid "Delete State" +msgstr "" + +#: src/tables/settings/CustomStateTable.tsx:115 +#~ msgid "Add state" +#~ msgstr "Add state" + #: src/tables/settings/CustomUnitsTable.tsx:50 msgid "Add Custom Unit" msgstr "" @@ -7312,59 +8540,71 @@ msgstr "" msgid "Add custom unit" msgstr "" -#: src/tables/settings/ErrorTable.tsx:31 -msgid "When" -msgstr "" - -#: src/tables/settings/ErrorTable.tsx:41 -msgid "Error Information" -msgstr "" - #: src/tables/settings/ErrorTable.tsx:51 #~ msgid "Delete error report" #~ msgstr "Delete error report" -#: src/tables/settings/ErrorTable.tsx:53 +#: src/tables/settings/ErrorTable.tsx:67 +msgid "Traceback" +msgstr "" + +#: src/tables/settings/ErrorTable.tsx:103 +msgid "When" +msgstr "" + +#: src/tables/settings/ErrorTable.tsx:113 +msgid "Error Information" +msgstr "" + +#: src/tables/settings/ErrorTable.tsx:123 msgid "Delete Error Report" msgstr "" -#: src/tables/settings/ErrorTable.tsx:55 +#: src/tables/settings/ErrorTable.tsx:125 msgid "Are you sure you want to delete this error report?" msgstr "" -#: src/tables/settings/ErrorTable.tsx:57 +#: src/tables/settings/ErrorTable.tsx:127 msgid "Error report deleted" msgstr "" -#: src/tables/settings/ErrorTable.tsx:79 -#: src/tables/settings/FailedTasksTable.tsx:59 +#: src/tables/settings/ErrorTable.tsx:146 +#: src/tables/settings/FailedTasksTable.tsx:65 msgid "Error Details" msgstr "" -#: src/tables/settings/FailedTasksTable.tsx:26 -#: src/tables/settings/PendingTasksTable.tsx:19 +#: src/tables/settings/FailedTasksTable.tsx:32 +#: src/tables/settings/PendingTasksTable.tsx:23 #: src/tables/settings/ScheduledTasksTable.tsx:19 msgid "Task" msgstr "" -#: src/tables/settings/FailedTasksTable.tsx:32 -#: src/tables/settings/PendingTasksTable.tsx:24 +#: src/tables/settings/FailedTasksTable.tsx:38 +#: src/tables/settings/PendingTasksTable.tsx:28 msgid "Task ID" msgstr "" -#: src/tables/settings/FailedTasksTable.tsx:36 -#: src/tables/stock/StockItemTestResultTable.tsx:211 +#: src/tables/settings/FailedTasksTable.tsx:42 +#: src/tables/stock/StockItemTestResultTable.tsx:218 msgid "Started" msgstr "" -#: src/tables/settings/FailedTasksTable.tsx:42 +#: src/tables/settings/FailedTasksTable.tsx:48 msgid "Stopped" msgstr "" -#: src/tables/settings/FailedTasksTable.tsx:48 +#: src/tables/settings/FailedTasksTable.tsx:54 msgid "Attempts" msgstr "" +#: src/tables/settings/FailedTasksTable.tsx:92 +msgid "No Information" +msgstr "" + +#: src/tables/settings/FailedTasksTable.tsx:93 +msgid "No error details are available for this task" +msgstr "" + #: src/tables/settings/GroupTable.tsx:90 msgid "Group with id {id} not found" msgstr "" @@ -7398,42 +8638,34 @@ msgstr "" msgid "Edit group" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:38 +#: src/tables/settings/ImportSessionTable.tsx:37 msgid "Delete Import Session" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:44 +#: src/tables/settings/ImportSessionTable.tsx:43 #: src/tables/settings/ImportSessionTable.tsx:131 msgid "Create Import Session" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:69 +#: src/tables/settings/ImportSessionTable.tsx:68 msgid "Uploaded" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:79 -msgid "Imported Rows" -msgstr "" - -#: src/tables/settings/ImportSessionTable.tsx:109 -#: src/tables/settings/TemplateTable.tsx:289 +#: src/tables/settings/ImportSessionTable.tsx:108 +#: src/tables/settings/TemplateTable.tsx:369 msgid "Model Type" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:110 -#: src/tables/settings/TemplateTable.tsx:290 +#: src/tables/settings/ImportSessionTable.tsx:109 +#: src/tables/settings/TemplateTable.tsx:370 msgid "Filter by target model type" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:116 +#: src/tables/settings/ImportSessionTable.tsx:115 msgid "Filter by import session status" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:122 -msgid "Filter by user" -msgstr "" - -#: src/tables/settings/PendingTasksTable.tsx:38 +#: src/tables/settings/PendingTasksTable.tsx:42 msgid "Arguments" msgstr "" @@ -7461,12 +8693,16 @@ msgstr "" msgid "Next Run" msgstr "" -#: src/tables/settings/TemplateTable.tsx:85 -msgid "Template not found" +#: src/tables/settings/StocktakeReportTable.tsx:28 +msgid "Report" msgstr "" -#: src/tables/settings/TemplateTable.tsx:87 -msgid "An error occurred while fetching template details" +#: src/tables/settings/StocktakeReportTable.tsx:35 +msgid "Part Count" +msgstr "" + +#: src/tables/settings/StocktakeReportTable.tsx:58 +msgid "Delete Report" msgstr "" #: src/tables/settings/TemplateTable.tsx:120 @@ -7481,21 +8717,12 @@ msgstr "" #~ msgid "actions" #~ msgstr "actions" -#: src/tables/settings/TemplateTable.tsx:177 -msgid "Modify" +#: src/tables/settings/TemplateTable.tsx:162 +msgid "Template not found" msgstr "" -#: src/tables/settings/TemplateTable.tsx:178 -msgid "Modify template file" -msgstr "" - -#: src/tables/settings/TemplateTable.tsx:234 -#: src/tables/settings/TemplateTable.tsx:302 -msgid "Edit Template" -msgstr "" - -#: src/tables/settings/TemplateTable.tsx:242 -msgid "Delete template" +#: src/tables/settings/TemplateTable.tsx:164 +msgid "An error occurred while fetching template details" msgstr "" #: src/tables/settings/TemplateTable.tsx:243 @@ -7506,103 +8733,137 @@ msgstr "" #~ msgid "Create new" #~ msgstr "Create new" -#: src/tables/settings/TemplateTable.tsx:248 +#: src/tables/settings/TemplateTable.tsx:257 +msgid "Modify" +msgstr "" + +#: src/tables/settings/TemplateTable.tsx:258 +msgid "Modify template file" +msgstr "" + +#: src/tables/settings/TemplateTable.tsx:314 +#: src/tables/settings/TemplateTable.tsx:382 +msgid "Edit Template" +msgstr "" + +#: src/tables/settings/TemplateTable.tsx:322 +msgid "Delete template" +msgstr "" + +#: src/tables/settings/TemplateTable.tsx:328 msgid "Add Template" msgstr "" -#: src/tables/settings/TemplateTable.tsx:261 +#: src/tables/settings/TemplateTable.tsx:341 msgid "Add template" msgstr "" -#: src/tables/settings/TemplateTable.tsx:284 +#: src/tables/settings/TemplateTable.tsx:364 msgid "Filter by enabled status" msgstr "" -#: src/tables/settings/UserTable.tsx:82 +#: src/tables/settings/UserTable.tsx:81 msgid "User with id {id} not found" msgstr "" -#: src/tables/settings/UserTable.tsx:84 +#: src/tables/settings/UserTable.tsx:83 msgid "An error occurred while fetching user details" msgstr "" -#: src/tables/settings/UserTable.tsx:102 +#: src/tables/settings/UserTable.tsx:101 msgid "Is Active" msgstr "" -#: src/tables/settings/UserTable.tsx:103 +#: src/tables/settings/UserTable.tsx:102 msgid "Designates whether this user should be treated as active. Unselect this instead of deleting accounts." msgstr "" -#: src/tables/settings/UserTable.tsx:107 +#: src/tables/settings/UserTable.tsx:106 msgid "Is Staff" msgstr "" -#: src/tables/settings/UserTable.tsx:108 +#: src/tables/settings/UserTable.tsx:107 msgid "Designates whether the user can log into the django admin site." msgstr "" -#: src/tables/settings/UserTable.tsx:112 +#: src/tables/settings/UserTable.tsx:111 msgid "Is Superuser" msgstr "" -#: src/tables/settings/UserTable.tsx:113 +#: src/tables/settings/UserTable.tsx:112 msgid "Designates that this user has all permissions without explicitly assigning them." msgstr "" -#: src/tables/settings/UserTable.tsx:123 +#: src/tables/settings/UserTable.tsx:122 msgid "You cannot edit the rights for the currently logged-in user." msgstr "" -#: src/tables/settings/UserTable.tsx:154 +#: src/tables/settings/UserTable.tsx:153 msgid "No groups" msgstr "" -#: src/tables/settings/UserTable.tsx:245 +#: src/tables/settings/UserTable.tsx:244 msgid "Delete user" msgstr "" -#: src/tables/settings/UserTable.tsx:246 +#: src/tables/settings/UserTable.tsx:245 msgid "User deleted" msgstr "" -#: src/tables/settings/UserTable.tsx:248 +#: src/tables/settings/UserTable.tsx:247 msgid "Are you sure you want to delete this user?" msgstr "" -#: src/tables/settings/UserTable.tsx:254 -#: src/tables/settings/UserTable.tsx:272 +#: src/tables/settings/UserTable.tsx:253 +#: src/tables/settings/UserTable.tsx:271 msgid "Add user" msgstr "" -#: src/tables/settings/UserTable.tsx:262 +#: src/tables/settings/UserTable.tsx:261 msgid "Added user" msgstr "" -#: src/tables/settings/UserTable.tsx:285 +#: src/tables/settings/UserTable.tsx:284 msgid "Show active users" msgstr "" -#: src/tables/settings/UserTable.tsx:289 +#: src/tables/settings/UserTable.tsx:288 msgid "Staff" msgstr "" -#: src/tables/settings/UserTable.tsx:290 +#: src/tables/settings/UserTable.tsx:289 msgid "Show staff users" msgstr "" #: src/tables/settings/UserTable.tsx:294 -msgid "Superuser" -msgstr "" - -#: src/tables/settings/UserTable.tsx:295 msgid "Show superusers" msgstr "" -#: src/tables/settings/UserTable.tsx:305 +#: src/tables/settings/UserTable.tsx:304 msgid "Edit user" msgstr "" +#: src/tables/stock/InstalledItemsTable.tsx:37 +#: src/tables/stock/InstalledItemsTable.tsx:90 +msgid "Install Item" +msgstr "" + +#: src/tables/stock/InstalledItemsTable.tsx:39 +msgid "Item installed" +msgstr "" + +#: src/tables/stock/InstalledItemsTable.tsx:50 +msgid "Uninstall Item" +msgstr "" + +#: src/tables/stock/InstalledItemsTable.tsx:52 +msgid "Item uninstalled" +msgstr "" + +#: src/tables/stock/InstalledItemsTable.tsx:108 +msgid "Uninstall stock item" +msgstr "" + #: src/tables/stock/LocationTypesTable.tsx:39 #: src/tables/stock/LocationTypesTable.tsx:109 msgid "Add Location Type" @@ -7620,276 +8881,272 @@ msgstr "" msgid "Icon" msgstr "" -#: src/tables/stock/StockItemTable.tsx:101 +#: src/tables/stock/StockItemTable.tsx:90 msgid "This stock item is in production" msgstr "" -#: src/tables/stock/StockItemTable.tsx:110 +#: src/tables/stock/StockItemTable.tsx:97 msgid "This stock item has been assigned to a sales order" msgstr "" -#: src/tables/stock/StockItemTable.tsx:119 +#: src/tables/stock/StockItemTable.tsx:104 msgid "This stock item has been assigned to a customer" msgstr "" -#: src/tables/stock/StockItemTable.tsx:128 +#: src/tables/stock/StockItemTable.tsx:111 msgid "This stock item is installed in another stock item" msgstr "" -#: src/tables/stock/StockItemTable.tsx:137 +#: src/tables/stock/StockItemTable.tsx:118 msgid "This stock item has been consumed by a build order" msgstr "" -#: src/tables/stock/StockItemTable.tsx:146 +#: src/tables/stock/StockItemTable.tsx:125 +msgid "This stock item is unavailable" +msgstr "" + +#: src/tables/stock/StockItemTable.tsx:134 msgid "This stock item has expired" msgstr "" -#: src/tables/stock/StockItemTable.tsx:150 +#: src/tables/stock/StockItemTable.tsx:138 msgid "This stock item is stale" msgstr "" -#: src/tables/stock/StockItemTable.tsx:161 +#: src/tables/stock/StockItemTable.tsx:150 msgid "This stock item is fully allocated" msgstr "" -#: src/tables/stock/StockItemTable.tsx:168 +#: src/tables/stock/StockItemTable.tsx:157 msgid "This stock item is partially allocated" msgstr "" -#: src/tables/stock/StockItemTable.tsx:196 +#: src/tables/stock/StockItemTable.tsx:185 msgid "This stock item has been depleted" msgstr "" -#: src/tables/stock/StockItemTable.tsx:232 +#: src/tables/stock/StockItemTable.tsx:280 msgid "Stocktake Date" msgstr "" -#: src/tables/stock/StockItemTable.tsx:236 -msgid "Expiry Date" -msgstr "" - -#: src/tables/stock/StockItemTable.tsx:260 -msgid "Stock Value" -msgstr "" - -#: src/tables/stock/StockItemTable.tsx:290 +#: src/tables/stock/StockItemTable.tsx:294 msgid "Show stock for active parts" msgstr "" -#: src/tables/stock/StockItemTable.tsx:295 +#: src/tables/stock/StockItemTable.tsx:299 msgid "Filter by stock status" msgstr "" #: src/tables/stock/StockItemTable.tsx:301 -msgid "Show stock for assmebled parts" +#~ msgid "Show stock for assmebled parts" +#~ msgstr "Show stock for assmebled parts" + +#: src/tables/stock/StockItemTable.tsx:305 +msgid "Show stock for assembled parts" msgstr "" -#: src/tables/stock/StockItemTable.tsx:306 +#: src/tables/stock/StockItemTable.tsx:310 msgid "Show items which have been allocated" msgstr "" -#: src/tables/stock/StockItemTable.tsx:311 +#: src/tables/stock/StockItemTable.tsx:315 msgid "Show items which are available" msgstr "" -#: src/tables/stock/StockItemTable.tsx:315 +#: src/tables/stock/StockItemTable.tsx:319 #: src/tables/stock/StockLocationTable.tsx:44 msgid "Include Sublocations" msgstr "" -#: src/tables/stock/StockItemTable.tsx:316 +#: src/tables/stock/StockItemTable.tsx:320 msgid "Include stock in sublocations" msgstr "" -#: src/tables/stock/StockItemTable.tsx:320 +#: src/tables/stock/StockItemTable.tsx:324 msgid "Depleted" msgstr "" -#: src/tables/stock/StockItemTable.tsx:321 +#: src/tables/stock/StockItemTable.tsx:325 msgid "Show depleted stock items" msgstr "" -#: src/tables/stock/StockItemTable.tsx:326 +#: src/tables/stock/StockItemTable.tsx:330 msgid "Show items which are in stock" msgstr "" -#: src/tables/stock/StockItemTable.tsx:331 +#: src/tables/stock/StockItemTable.tsx:335 msgid "Show items which are in production" msgstr "" -#: src/tables/stock/StockItemTable.tsx:336 +#: src/tables/stock/StockItemTable.tsx:340 msgid "Include stock items for variant parts" msgstr "" -#: src/tables/stock/StockItemTable.tsx:341 +#: src/tables/stock/StockItemTable.tsx:345 msgid "Show stock items which are installed in other items" msgstr "" -#: src/tables/stock/StockItemTable.tsx:345 +#: src/tables/stock/StockItemTable.tsx:349 msgid "Sent to Customer" msgstr "" -#: src/tables/stock/StockItemTable.tsx:346 +#: src/tables/stock/StockItemTable.tsx:350 msgid "Show items which have been sent to a customer" msgstr "" -#: src/tables/stock/StockItemTable.tsx:350 +#: src/tables/stock/StockItemTable.tsx:354 msgid "Is Serialized" msgstr "" -#: src/tables/stock/StockItemTable.tsx:351 +#: src/tables/stock/StockItemTable.tsx:355 msgid "Show items which have a serial number" msgstr "" -#: src/tables/stock/StockItemTable.tsx:358 +#: src/tables/stock/StockItemTable.tsx:362 msgid "Has Batch Code" msgstr "" -#: src/tables/stock/StockItemTable.tsx:359 +#: src/tables/stock/StockItemTable.tsx:363 msgid "Show items which have a batch code" msgstr "" -#: src/tables/stock/StockItemTable.tsx:365 +#: src/tables/stock/StockItemTable.tsx:369 msgid "Show tracked items" msgstr "" -#: src/tables/stock/StockItemTable.tsx:369 +#: src/tables/stock/StockItemTable.tsx:373 msgid "Has Purchase Price" msgstr "" -#: src/tables/stock/StockItemTable.tsx:370 +#: src/tables/stock/StockItemTable.tsx:374 msgid "Show items which have a purchase price" msgstr "" -#: src/tables/stock/StockItemTable.tsx:378 +#: src/tables/stock/StockItemTable.tsx:382 msgid "External Location" msgstr "" -#: src/tables/stock/StockItemTable.tsx:379 +#: src/tables/stock/StockItemTable.tsx:383 msgid "Show items in an external location" msgstr "" -#: src/tables/stock/StockItemTable.tsx:451 +#: src/tables/stock/StockItemTable.tsx:456 msgid "Add a new stock item" msgstr "" -#: src/tables/stock/StockItemTable.tsx:460 +#: src/tables/stock/StockItemTable.tsx:465 msgid "Remove some quantity from a stock item" msgstr "" -#: src/tables/stock/StockItemTable.tsx:482 +#: src/tables/stock/StockItemTable.tsx:487 msgid "Move Stock items to new locations" msgstr "" -#: src/tables/stock/StockItemTable.tsx:489 +#: src/tables/stock/StockItemTable.tsx:494 msgid "Change stock status" msgstr "" -#: src/tables/stock/StockItemTable.tsx:491 +#: src/tables/stock/StockItemTable.tsx:496 msgid "Change the status of stock items" msgstr "" -#: src/tables/stock/StockItemTable.tsx:498 +#: src/tables/stock/StockItemTable.tsx:503 msgid "Merge stock" msgstr "" -#: src/tables/stock/StockItemTable.tsx:500 +#: src/tables/stock/StockItemTable.tsx:505 msgid "Merge stock items" msgstr "" -#: src/tables/stock/StockItemTable.tsx:509 -#: src/tables/stock/StockItemTable.tsx:516 +#: src/tables/stock/StockItemTable.tsx:514 +#: src/tables/stock/StockItemTable.tsx:521 msgid "Order new stock" msgstr "" -#: src/tables/stock/StockItemTable.tsx:514 +#: src/tables/stock/StockItemTable.tsx:519 msgid "Assign to customer" msgstr "" -#: src/tables/stock/StockItemTable.tsx:523 +#: src/tables/stock/StockItemTable.tsx:528 msgid "Delete stock" msgstr "" -#: src/tables/stock/StockItemTable.tsx:525 -msgid "Delete stock items" -msgstr "" +#: src/tables/stock/StockItemTable.tsx:528 +#~ msgid "Delete stock items" +#~ msgstr "Delete stock items" -#: src/tables/stock/StockItemTestResultTable.tsx:131 +#: src/tables/stock/StockItemTestResultTable.tsx:137 msgid "Test" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:157 +#: src/tables/stock/StockItemTestResultTable.tsx:163 msgid "Test result for installed stock item" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:168 -msgid "Result" -msgstr "" - -#: src/tables/stock/StockItemTestResultTable.tsx:190 +#: src/tables/stock/StockItemTestResultTable.tsx:196 msgid "Attachment" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:206 +#: src/tables/stock/StockItemTestResultTable.tsx:212 msgid "Test station" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:226 +#: src/tables/stock/StockItemTestResultTable.tsx:234 msgid "Finished" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:268 -#: src/tables/stock/StockItemTestResultTable.tsx:339 +#: src/tables/stock/StockItemTestResultTable.tsx:286 +#: src/tables/stock/StockItemTestResultTable.tsx:357 msgid "Edit Test Result" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:270 +#: src/tables/stock/StockItemTestResultTable.tsx:288 msgid "Test result updated" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:276 -#: src/tables/stock/StockItemTestResultTable.tsx:348 +#: src/tables/stock/StockItemTestResultTable.tsx:294 +#: src/tables/stock/StockItemTestResultTable.tsx:366 msgid "Delete Test Result" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:278 +#: src/tables/stock/StockItemTestResultTable.tsx:296 msgid "Test result deleted" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:292 +#: src/tables/stock/StockItemTestResultTable.tsx:310 msgid "Test Passed" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:293 +#: src/tables/stock/StockItemTestResultTable.tsx:311 msgid "Test result has been recorded" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:300 +#: src/tables/stock/StockItemTestResultTable.tsx:318 msgid "Failed to record test result" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:317 +#: src/tables/stock/StockItemTestResultTable.tsx:335 msgid "Pass Test" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:366 +#: src/tables/stock/StockItemTestResultTable.tsx:384 msgid "Show results for required tests" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:370 +#: src/tables/stock/StockItemTestResultTable.tsx:388 msgid "Include Installed" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:371 +#: src/tables/stock/StockItemTestResultTable.tsx:389 msgid "Show results for installed stock items" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:375 -#: src/tables/stock/TestStatisticsTable.tsx:74 +#: src/tables/stock/StockItemTestResultTable.tsx:393 +#: src/tables/stock/TestStatisticsTable.tsx:62 msgid "Passed" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:376 +#: src/tables/stock/StockItemTestResultTable.tsx:394 msgid "Show only passed tests" msgstr "" @@ -7922,28 +9179,32 @@ msgid "Filter by location type" msgstr "" #: src/tables/stock/StockLocationTable.tsx:107 -#: src/tables/stock/StockLocationTable.tsx:133 +#: src/tables/stock/StockLocationTable.tsx:134 msgid "Add Stock Location" msgstr "" -#: src/tables/stock/StockTrackingTable.tsx:64 +#: src/tables/stock/StockTrackingTable.tsx:68 msgid "Added" msgstr "" -#: src/tables/stock/StockTrackingTable.tsx:69 +#: src/tables/stock/StockTrackingTable.tsx:73 msgid "Removed" msgstr "" #: src/tables/stock/StockTrackingTable.tsx:198 +msgid "Details" +msgstr "" + +#: src/tables/stock/StockTrackingTable.tsx:213 msgid "No user information" msgstr "" -#: src/tables/stock/TestStatisticsTable.tsx:46 -#: src/tables/stock/TestStatisticsTable.tsx:76 +#: src/tables/stock/TestStatisticsTable.tsx:34 +#: src/tables/stock/TestStatisticsTable.tsx:64 msgid "Total" msgstr "" -#: src/tables/stock/TestStatisticsTable.tsx:75 +#: src/tables/stock/TestStatisticsTable.tsx:63 msgid "Failed" msgstr "" diff --git a/src/frontend/src/locales/es_MX/messages.po b/src/frontend/src/locales/es_MX/messages.po index f096103241..612b1f2959 100644 --- a/src/frontend/src/locales/es_MX/messages.po +++ b/src/frontend/src/locales/es_MX/messages.po @@ -8,15 +8,15 @@ msgstr "" "Language: es_MX\n" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"PO-Revision-Date: 2024-08-20 19:50\n" +"PO-Revision-Date: 2024-11-04 03:14\n" "Last-Translator: \n" "Language-Team: Spanish, Mexico\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Crowdin-Project: inventree\n" "X-Crowdin-Project-ID: 452300\n" "X-Crowdin-Language: es-MX\n" -"X-Crowdin-File: /[inventree.InvenTree] l10/src/frontend/src/locales/en/messages.po\n" -"X-Crowdin-File-ID: 205\n" +"X-Crowdin-File: /src/frontend/src/locales/en/messages.po\n" +"X-Crowdin-File-ID: 252\n" #: src/components/Boundary.tsx:12 msgid "Error rendering component" @@ -27,8 +27,8 @@ msgid "An error occurred while rendering this component. Refer to the console fo msgstr "Ocurrió un error mientras se renderizaba este componente. Consulte la consola para más información." #: src/components/DashboardItemProxy.tsx:34 -msgid "Title" -msgstr "Titulo" +#~ msgid "Title" +#~ msgstr "Title" #: src/components/buttons/AdminButton.tsx:80 msgid "Open in admin interface" @@ -38,82 +38,99 @@ msgstr "Abrir en interfaz de administrador" #~ msgid "Copy to clipboard" #~ msgstr "Copy to clipboard" -#: src/components/buttons/CopyButton.tsx:24 +#: src/components/buttons/CopyButton.tsx:29 msgid "Copied" msgstr "Copiado" -#: src/components/buttons/CopyButton.tsx:24 +#: src/components/buttons/CopyButton.tsx:29 msgid "Copy" msgstr "Copiar" -#: src/components/buttons/PrintingActions.tsx:93 +#: src/components/buttons/PrintingActions.tsx:97 msgid "Print Label" msgstr "Imprimir etiqueta" -#: src/components/buttons/PrintingActions.tsx:99 +#: src/components/buttons/PrintingActions.tsx:103 msgid "Print" msgstr "" -#: src/components/buttons/PrintingActions.tsx:100 +#: src/components/buttons/PrintingActions.tsx:104 msgid "Label printing completed successfully" msgstr "Impresión de etiqueta completada con éxito" -#: src/components/buttons/PrintingActions.tsx:106 -#: src/components/buttons/PrintingActions.tsx:144 -#: src/components/editors/NotesEditor.tsx:65 -#: src/components/editors/NotesEditor.tsx:165 -#: src/components/forms/fields/ApiFormField.tsx:319 +#: src/components/buttons/PrintingActions.tsx:110 +#: src/components/buttons/PrintingActions.tsx:148 +#: src/components/editors/NotesEditor.tsx:73 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:154 +#: src/components/forms/fields/ApiFormField.tsx:328 +#: src/components/forms/fields/TableField.tsx:43 #: src/components/importer/ImportDataSelector.tsx:187 -#: src/components/importer/ImporterColumnSelector.tsx:207 +#: src/components/importer/ImporterColumnSelector.tsx:210 #: src/components/modals/LicenseModal.tsx:75 -#: src/components/nav/SearchDrawer.tsx:448 +#: src/components/nav/SearchDrawer.tsx:458 +#: src/components/render/ModelType.tsx:290 #: src/pages/ErrorPage.tsx:11 -#: src/pages/part/PartPricingPanel.tsx:67 -#: src/tables/InvenTreeTable.tsx:495 +#: src/pages/part/PartPricingPanel.tsx:71 +#: src/tables/InvenTreeTable.tsx:481 #: src/tables/bom/BomTable.tsx:450 -#: src/tables/stock/StockItemTestResultTable.tsx:299 +#: src/tables/stock/StockItemTestResultTable.tsx:317 msgid "Error" msgstr "Error" -#: src/components/buttons/PrintingActions.tsx:107 +#: src/components/buttons/PrintingActions.tsx:111 msgid "The label could not be generated" msgstr "La etiqueta no pudo ser generada" -#: src/components/buttons/PrintingActions.tsx:122 +#: src/components/buttons/PrintingActions.tsx:126 msgid "Print Report" msgstr "Imprimir informe" -#: src/components/buttons/PrintingActions.tsx:138 +#: src/components/buttons/PrintingActions.tsx:142 msgid "Generate" msgstr "" -#: src/components/buttons/PrintingActions.tsx:139 +#: src/components/buttons/PrintingActions.tsx:143 msgid "Report printing completed successfully" msgstr "Impresión de informe completada con éxito" -#: src/components/buttons/PrintingActions.tsx:145 +#: src/components/buttons/PrintingActions.tsx:149 msgid "The report could not be generated" msgstr "El informe no pudo ser generada" -#: src/components/buttons/PrintingActions.tsx:173 +#: src/components/buttons/PrintingActions.tsx:177 msgid "Printing Actions" msgstr "Acciones de impresión" -#: src/components/buttons/PrintingActions.tsx:178 +#: src/components/buttons/PrintingActions.tsx:182 msgid "Print Labels" msgstr "Imprimir etiquetas" -#: src/components/buttons/PrintingActions.tsx:184 +#: src/components/buttons/PrintingActions.tsx:188 msgid "Print Reports" msgstr "Imprimir informes" +#: src/components/buttons/RemoveRowButton.tsx:8 +msgid "Remove this row" +msgstr "" + #: src/components/buttons/ScanButton.tsx:15 -msgid "Scan QR code" -msgstr "Escanear código QR" +#: src/components/nav/NavigationDrawer.tsx:117 +#: src/forms/PurchaseOrderForms.tsx:379 +#: src/forms/PurchaseOrderForms.tsx:473 +msgid "Scan Barcode" +msgstr "" + +#: src/components/buttons/ScanButton.tsx:15 +#~ msgid "Scan QR code" +#~ msgstr "Scan QR code" #: src/components/buttons/ScanButton.tsx:20 -msgid "Open QR code scanner" -msgstr "Abrir escáner de código QR" +msgid "Open Barcode Scanner" +msgstr "" + +#: src/components/buttons/ScanButton.tsx:20 +#~ msgid "Open QR code scanner" +#~ msgstr "Open QR code scanner" #: src/components/buttons/SpotlightButton.tsx:14 msgid "Open spotlight" @@ -128,85 +145,347 @@ msgid "Fail" msgstr "Falló" #: src/components/buttons/YesNoButton.tsx:33 -#: src/tables/Filter.tsx:52 +#: src/tables/Filter.tsx:61 msgid "Yes" msgstr "Sí" #: src/components/buttons/YesNoButton.tsx:33 -#: src/tables/Filter.tsx:53 +#: src/tables/Filter.tsx:62 msgid "No" msgstr "No" -#: src/components/details/Details.tsx:301 +#: src/components/dashboard/DashboardLayout.tsx:286 +msgid "No Widgets Selected" +msgstr "" + +#: src/components/dashboard/DashboardLayout.tsx:289 +msgid "Use the menu to add widgets to the dashboard" +msgstr "" + +#: src/components/dashboard/DashboardMenu.tsx:59 +#: src/components/dashboard/DashboardMenu.tsx:126 +msgid "Accept Layout" +msgstr "" + +#: src/components/dashboard/DashboardMenu.tsx:91 +#: src/components/nav/NavigationDrawer.tsx:71 +#: src/defaults/actions.tsx:17 +#: src/defaults/links.tsx:9 +#: src/pages/Index/Settings/UserSettings.tsx:47 +msgid "Dashboard" +msgstr "" + +#: src/components/dashboard/DashboardMenu.tsx:99 +msgid "Edit Layout" +msgstr "" + +#: src/components/dashboard/DashboardMenu.tsx:108 +msgid "Add Widget" +msgstr "" + +#: src/components/dashboard/DashboardMenu.tsx:117 +msgid "Remove Widgets" +msgstr "" + +#: src/components/dashboard/DashboardWidget.tsx:65 +msgid "Remove this widget from the dashboard" +msgstr "" + +#: src/components/dashboard/DashboardWidgetDrawer.tsx:77 +msgid "Filter dashboard widgets" +msgstr "" + +#: src/components/dashboard/DashboardWidgetDrawer.tsx:98 +msgid "Add this widget to the dashboard" +msgstr "" + +#: src/components/dashboard/DashboardWidgetDrawer.tsx:123 +msgid "No Widgets Available" +msgstr "" + +#: src/components/dashboard/DashboardWidgetDrawer.tsx:124 +msgid "There are no more widgets available for the dashboard" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:19 +msgid "Subscribed Parts" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:20 +msgid "Show the number of parts which you have subscribed to" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:26 +msgid "Subscribed Categories" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:27 +msgid "Show the number of part categories which you have subscribed to" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:35 +#: src/pages/part/PartSchedulingDetail.tsx:304 +#: src/tables/part/PartTable.tsx:238 +msgid "Low Stock" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:37 +msgid "Show the number of parts which are low on stock" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:43 +msgid "Expired Stock Items" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:45 +msgid "Show the number of stock items which have expired" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:51 +msgid "Stale Stock Items" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:53 +msgid "Show the number of stock items which are stale" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:59 +msgid "Active Build Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:61 +msgid "Show the number of build orders which are currently active" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:66 +msgid "Overdue Build Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:68 +msgid "Show the number of build orders which are overdue" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:73 +msgid "Assigned Build Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:75 +msgid "Show the number of build orders which are assigned to you" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:80 +msgid "Active Sales Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:82 +msgid "Show the number of sales orders which are currently active" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:87 +msgid "Overdue Sales Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:89 +msgid "Show the number of sales orders which are overdue" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:94 +msgid "Assigned Sales Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:96 +msgid "Show the number of sales orders which are assigned to you" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:101 +msgid "Active Purchase Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:103 +msgid "Show the number of purchase orders which are currently active" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:108 +msgid "Overdue Purchase Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:110 +msgid "Show the number of purchase orders which are overdue" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:115 +msgid "Assigned Purchase Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:117 +msgid "Show the number of purchase orders which are assigned to you" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:122 +msgid "Active Return Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:124 +msgid "Show the number of return orders which are currently active" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:129 +msgid "Overdue Return Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:131 +msgid "Show the number of return orders which are overdue" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:136 +msgid "Assigned Return Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:138 +msgid "Show the number of return orders which are assigned to you" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:149 +#: src/components/dashboard/widgets/GetStartedWidget.tsx:15 +#: src/defaults/links.tsx:38 +msgid "Getting Started" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:150 +#: src/defaults/links.tsx:41 +msgid "Getting started with InvenTree" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:157 +#: src/components/dashboard/widgets/NewsWidget.tsx:123 +msgid "News Updates" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:158 +msgid "The latest news from InvenTree" +msgstr "" + +#: src/components/dashboard/widgets/ColorToggleWidget.tsx:18 +#: src/components/nav/MainMenu.tsx:77 +msgid "Change Color Mode" +msgstr "" + +#: src/components/dashboard/widgets/ColorToggleWidget.tsx:23 +msgid "Change the color mode of the user interface" +msgstr "" + +#: src/components/dashboard/widgets/LanguageSelectWidget.tsx:18 +msgid "Change Language" +msgstr "" + +#: src/components/dashboard/widgets/LanguageSelectWidget.tsx:23 +msgid "Change the language of the user interface" +msgstr "" + +#: src/components/dashboard/widgets/NewsWidget.tsx:61 +#: src/components/nav/NotificationDrawer.tsx:88 +#: src/pages/Notifications.tsx:73 +msgid "Mark as read" +msgstr "" + +#: src/components/dashboard/widgets/NewsWidget.tsx:115 +msgid "Requires Superuser" +msgstr "" + +#: src/components/dashboard/widgets/NewsWidget.tsx:116 +msgid "This widget requires superuser permissions" +msgstr "" + +#: src/components/dashboard/widgets/NewsWidget.tsx:133 +msgid "No News" +msgstr "" + +#: src/components/dashboard/widgets/NewsWidget.tsx:134 +msgid "There are no unread news items" +msgstr "" + +#: src/components/details/Details.tsx:300 msgid "No name defined" msgstr "No hay nombre definido" -#: src/components/details/DetailsImage.tsx:65 +#: src/components/details/DetailsImage.tsx:69 msgid "Remove Image" msgstr "Quitar imagen" -#: src/components/details/DetailsImage.tsx:68 +#: src/components/details/DetailsImage.tsx:72 msgid "Remove the associated image from this item?" msgstr "¿Eliminar imagen asociada al artículo?" -#: src/components/details/DetailsImage.tsx:71 -#: src/forms/StockForms.tsx:533 +#: src/components/details/DetailsImage.tsx:75 +#: src/forms/StockForms.tsx:651 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:199 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:306 -#: src/pages/stock/StockDetail.tsx:526 +#: src/pages/stock/StockDetail.tsx:690 msgid "Remove" msgstr "Eliminar" -#: src/components/details/DetailsImage.tsx:71 -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:158 -#: src/components/items/ActionDropdown.tsx:215 -#: src/components/items/ActionDropdown.tsx:216 -#: src/contexts/ThemeContext.tsx:43 +#: src/components/details/DetailsImage.tsx:75 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:184 +#: src/components/items/ActionDropdown.tsx:268 +#: src/components/items/ActionDropdown.tsx:269 +#: src/contexts/ThemeContext.tsx:45 #: src/hooks/UseForm.tsx:40 -#: src/tables/FilterSelectDrawer.tsx:205 -#: src/tables/build/BuildOutputTable.tsx:286 +#: src/tables/FilterSelectDrawer.tsx:241 +#: src/tables/RowActions.tsx:59 +#: src/tables/build/BuildOutputTable.tsx:434 msgid "Cancel" msgstr "Cancelar" -#: src/components/details/DetailsImage.tsx:97 +#: src/components/details/DetailsImage.tsx:101 msgid "Drag and drop to upload" msgstr "Arrastra y suelta para subir" -#: src/components/details/DetailsImage.tsx:100 +#: src/components/details/DetailsImage.tsx:104 msgid "Click to select file(s)" msgstr "Clic para seleccionar archivo(s)" -#: src/components/details/DetailsImage.tsx:226 +#: src/components/details/DetailsImage.tsx:230 msgid "Clear" msgstr "Borrar" -#: src/components/details/DetailsImage.tsx:232 -#: src/components/forms/ApiForm.tsx:627 -#: src/contexts/ThemeContext.tsx:43 -#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:60 +#: src/components/details/DetailsImage.tsx:236 +#: src/components/forms/ApiForm.tsx:660 +#: src/contexts/ThemeContext.tsx:45 msgid "Submit" msgstr "Aceptar" -#: src/components/details/DetailsImage.tsx:272 +#: src/components/details/DetailsImage.tsx:280 msgid "Select from existing images" msgstr "Seleccionar desde imágenes existentes" -#: src/components/details/DetailsImage.tsx:280 +#: src/components/details/DetailsImage.tsx:288 msgid "Select Image" msgstr "Seleccionar imagen" -#: src/components/details/DetailsImage.tsx:292 +#: src/components/details/DetailsImage.tsx:304 +msgid "Download remote image" +msgstr "" + +#: src/components/details/DetailsImage.tsx:319 msgid "Upload new image" msgstr "Subir nueva imagen" -#: src/components/details/DetailsImage.tsx:299 +#: src/components/details/DetailsImage.tsx:326 msgid "Upload Image" msgstr "Subir Imagen" -#: src/components/details/DetailsImage.tsx:312 +#: src/components/details/DetailsImage.tsx:339 msgid "Delete image" msgstr "Eliminar imagen" +#: src/components/details/DetailsImage.tsx:373 +msgid "Download Image" +msgstr "" + +#: src/components/details/DetailsImage.tsx:378 +msgid "Image downloaded successfully" +msgstr "" + #: src/components/details/PartIcons.tsx:43 #~ msgid "Part is a template part (variants can be made from this part)" #~ msgstr "Part is a template part (variants can be made from this part)" @@ -235,36 +514,57 @@ msgstr "Eliminar imagen" #~ msgid "Part is virtual (not a physical part)" #~ msgstr "Part is virtual (not a physical part)" -#: src/components/editors/NotesEditor.tsx:66 +#: src/components/editors/NotesEditor.tsx:74 msgid "Image upload failed" msgstr "" -#: src/components/editors/NotesEditor.tsx:156 -#: src/components/forms/ApiForm.tsx:467 +#: src/components/editors/NotesEditor.tsx:83 +#: src/components/editors/NotesEditor.tsx:119 +#: src/components/forms/ApiForm.tsx:475 #: src/tables/bom/BomTable.tsx:441 msgid "Success" msgstr "" -#: src/components/editors/NotesEditor.tsx:157 +#: src/components/editors/NotesEditor.tsx:84 +msgid "Image uploaded successfully" +msgstr "" + +#: src/components/editors/NotesEditor.tsx:120 msgid "Notes saved successfully" msgstr "" -#: src/components/editors/NotesEditor.tsx:166 +#: src/components/editors/NotesEditor.tsx:131 msgid "Failed to save notes" msgstr "" -#: src/components/editors/NotesEditor.tsx:198 -msgid "Preview Notes" +#: src/components/editors/NotesEditor.tsx:134 +msgid "Error Saving Notes" msgstr "" -#: src/components/editors/NotesEditor.tsx:198 -msgid "Edit Notes" -msgstr "" +#: src/components/editors/NotesEditor.tsx:151 +#~ msgid "Disable Editing" +#~ msgstr "Disable Editing" -#: src/components/editors/NotesEditor.tsx:212 +#: src/components/editors/NotesEditor.tsx:154 msgid "Save Notes" msgstr "" +#: src/components/editors/NotesEditor.tsx:173 +msgid "Close Editor" +msgstr "" + +#: src/components/editors/NotesEditor.tsx:180 +msgid "Enable Editing" +msgstr "" + +#: src/components/editors/NotesEditor.tsx:198 +#~ msgid "Preview Notes" +#~ msgstr "Preview Notes" + +#: src/components/editors/NotesEditor.tsx:198 +#~ msgid "Edit Notes" +#~ msgstr "Edit Notes" + #: src/components/editors/TemplateEditor/CodeEditor/index.tsx:9 msgid "Code" msgstr "" @@ -281,40 +581,44 @@ msgstr "" msgid "PDF Preview" msgstr "" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:104 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:115 msgid "Error loading template" msgstr "" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:116 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:127 msgid "Error saving template" msgstr "" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:146 -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:274 -msgid "Save & Reload Preview" -msgstr "" - -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:151 -msgid "Are you sure you want to Save & Reload the preview?" -msgstr "" - #: src/components/editors/TemplateEditor/TemplateEditor.tsx:151 #~ msgid "Save & Reload preview?" #~ msgstr "Save & Reload preview?" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:153 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:155 +msgid "Could not load the template from the server." +msgstr "" + +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:172 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:303 +msgid "Save & Reload Preview" +msgstr "" + +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:177 +msgid "Are you sure you want to Save & Reload the preview?" +msgstr "" + +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:179 msgid "To render the preview the current template needs to be replaced on the server with your modifications which may break the label if it is under active use. Do you want to proceed?" msgstr "" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:157 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:183 msgid "Save & Reload" msgstr "" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:189 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:215 msgid "Preview updated" msgstr "" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:190 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:216 msgid "The preview has been updated successfully." msgstr "" @@ -322,15 +626,15 @@ msgstr "" #~ msgid "Save & Reload preview" #~ msgstr "Save & Reload preview" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:266 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:295 msgid "Reload preview" msgstr "" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:267 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:296 msgid "Use the currently stored template from the server" msgstr "" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:275 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:304 msgid "Save the current template and reload the preview" msgstr "" @@ -338,11 +642,11 @@ msgstr "" #~ msgid "to preview" #~ msgstr "to preview" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:333 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:365 msgid "Select instance to preview" msgstr "" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:377 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:409 msgid "Error rendering template" msgstr "" @@ -379,6 +683,7 @@ msgid "This page does not exist" msgstr "" #: src/components/errors/PermissionDenied.tsx:8 +#: src/functions/notifications.tsx:24 msgid "Permission Denied" msgstr "" @@ -394,8 +699,8 @@ msgstr "" msgid "A server error occurred" msgstr "" -#: src/components/forms/ApiForm.tsx:151 -#: src/components/forms/ApiForm.tsx:555 +#: src/components/forms/ApiForm.tsx:154 +#: src/components/forms/ApiForm.tsx:579 msgid "Form Error" msgstr "" @@ -403,22 +708,22 @@ msgstr "" #~ msgid "Form Errors Exist" #~ msgstr "Form Errors Exist" -#: src/components/forms/ApiForm.tsx:563 +#: src/components/forms/ApiForm.tsx:587 msgid "Errors exist for one or more form fields" msgstr "" -#: src/components/forms/ApiForm.tsx:665 -#: src/tables/plugin/PluginListTable.tsx:388 +#: src/components/forms/ApiForm.tsx:698 +#: src/tables/plugin/PluginListTable.tsx:195 msgid "Update" msgstr "" -#: src/components/forms/ApiForm.tsx:685 -#: src/components/items/ActionDropdown.tsx:195 +#: src/components/forms/ApiForm.tsx:718 +#: src/components/items/ActionDropdown.tsx:248 #: src/hooks/UseForm.tsx:122 -#: src/pages/Index/Scan.tsx:343 +#: src/pages/Index/Scan.tsx:357 #: src/pages/Notifications.tsx:123 -#: src/tables/RowActions.tsx:43 -#: src/tables/plugin/PluginListTable.tsx:420 +#: src/tables/RowActions.tsx:49 +#: src/tables/plugin/PluginListTable.tsx:232 msgid "Delete" msgstr "" @@ -428,14 +733,6 @@ msgstr "" #~ msgid "Check your your input and try again." #~ msgstr "Check your your input and try again." -#: src/components/forms/AuthenticationForm.tsx:51 -msgid "Login successful" -msgstr "Inicio de sesión exitoso" - -#: src/components/forms/AuthenticationForm.tsx:52 -msgid "Logged in successfully" -msgstr "" - #: src/components/forms/AuthenticationForm.tsx:52 #~ msgid "Welcome back!" #~ msgstr "Welcome back!" @@ -444,14 +741,22 @@ msgstr "" #~ msgid "Login successfull" #~ msgstr "Login successfull" -#: src/components/forms/AuthenticationForm.tsx:58 +#: src/components/forms/AuthenticationForm.tsx:55 +msgid "Login successful" +msgstr "Inicio de sesión exitoso" + +#: src/components/forms/AuthenticationForm.tsx:56 +msgid "Logged in successfully" +msgstr "" + +#: src/components/forms/AuthenticationForm.tsx:61 msgid "Login failed" msgstr "Error al iniciar sesión" -#: src/components/forms/AuthenticationForm.tsx:59 -#: src/components/forms/AuthenticationForm.tsx:76 -#: src/components/forms/AuthenticationForm.tsx:211 -#: src/functions/auth.tsx:164 +#: src/components/forms/AuthenticationForm.tsx:62 +#: src/components/forms/AuthenticationForm.tsx:79 +#: src/components/forms/AuthenticationForm.tsx:214 +#: src/functions/auth.tsx:175 msgid "Check your input and try again." msgstr "" @@ -460,45 +765,46 @@ msgstr "" #~ msgid "Mail delivery successfull" #~ msgstr "Mail delivery successfull" -#: src/components/forms/AuthenticationForm.tsx:70 -#: src/functions/auth.tsx:155 +#: src/components/forms/AuthenticationForm.tsx:73 +#: src/functions/auth.tsx:166 msgid "Mail delivery successful" msgstr "Envío de correo exitoso" -#: src/components/forms/AuthenticationForm.tsx:71 +#: src/components/forms/AuthenticationForm.tsx:74 msgid "Check your inbox for the login link. If you have an account, you will receive a login link. Check in spam too." msgstr "Revisa tu bandeja de entrada para el enlace de inicio de sesión. Si tienes una cuenta, recibirás un enlace de inicio de sesión. Revisa también el correo no deseado." -#: src/components/forms/AuthenticationForm.tsx:75 +#: src/components/forms/AuthenticationForm.tsx:78 msgid "Mail delivery failed" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:95 +#: src/components/forms/AuthenticationForm.tsx:98 msgid "Or continue with other methods" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:106 -#: src/components/forms/AuthenticationForm.tsx:227 +#: src/components/forms/AuthenticationForm.tsx:109 +#: src/components/forms/AuthenticationForm.tsx:230 +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:67 msgid "Username" msgstr "Nombre de usuario" -#: src/components/forms/AuthenticationForm.tsx:107 -#: src/components/forms/AuthenticationForm.tsx:228 +#: src/components/forms/AuthenticationForm.tsx:110 +#: src/components/forms/AuthenticationForm.tsx:231 msgid "Your username" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:112 -#: src/components/forms/AuthenticationForm.tsx:240 -#: src/pages/Auth/Set-Password.tsx:106 +#: src/components/forms/AuthenticationForm.tsx:115 +#: src/components/forms/AuthenticationForm.tsx:243 +#: src/pages/Auth/Set-Password.tsx:101 msgid "Password" msgstr "Contraseña" -#: src/components/forms/AuthenticationForm.tsx:113 -#: src/components/forms/AuthenticationForm.tsx:241 +#: src/components/forms/AuthenticationForm.tsx:116 +#: src/components/forms/AuthenticationForm.tsx:244 msgid "Your password" msgstr "Tu contraseña" -#: src/components/forms/AuthenticationForm.tsx:125 +#: src/components/forms/AuthenticationForm.tsx:128 #: src/pages/Auth/Reset.tsx:26 msgid "Reset password" msgstr "Restablecer contraseña" @@ -507,77 +813,79 @@ msgstr "Restablecer contraseña" #~ msgid "Log in" #~ msgstr "Log in" -#: src/components/forms/AuthenticationForm.tsx:134 -#: src/components/forms/AuthenticationForm.tsx:233 +#: src/components/forms/AuthenticationForm.tsx:136 +#~ msgid "I will use username and password" +#~ msgstr "I will use username and password" + +#: src/components/forms/AuthenticationForm.tsx:137 +#: src/components/forms/AuthenticationForm.tsx:236 #: src/pages/Auth/Reset.tsx:31 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:51 msgid "Email" msgstr "Correo electrónico" -#: src/components/forms/AuthenticationForm.tsx:135 +#: src/components/forms/AuthenticationForm.tsx:138 #: src/pages/Auth/Reset.tsx:32 -#: src/pages/Auth/Set-Password.tsx:107 +#: src/pages/Auth/Set-Password.tsx:102 msgid "We will send you a link to login - if you are registered" msgstr "Te enviaremos un enlace para iniciar sesión - si estás registrado" -#: src/components/forms/AuthenticationForm.tsx:136 -#~ msgid "I will use username and password" -#~ msgstr "I will use username and password" - -#: src/components/forms/AuthenticationForm.tsx:151 +#: src/components/forms/AuthenticationForm.tsx:154 msgid "Send me an email" msgstr "Envíame un correo electrónico" -#: src/components/forms/AuthenticationForm.tsx:153 +#: src/components/forms/AuthenticationForm.tsx:156 msgid "Use username and password" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:162 +#: src/components/forms/AuthenticationForm.tsx:165 msgid "Log In" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:164 +#: src/components/forms/AuthenticationForm.tsx:167 +#: src/pages/Auth/Reset.tsx:41 +#: src/pages/Auth/Set-Password.tsx:107 msgid "Send Email" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:193 +#: src/components/forms/AuthenticationForm.tsx:196 msgid "Registration successful" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:194 +#: src/components/forms/AuthenticationForm.tsx:197 msgid "Please confirm your email address to complete the registration" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:210 +#: src/components/forms/AuthenticationForm.tsx:213 msgid "Input error" msgstr "Error de entrada" -#: src/components/forms/AuthenticationForm.tsx:234 +#: src/components/forms/AuthenticationForm.tsx:237 msgid "This will be used for a confirmation" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:246 +#: src/components/forms/AuthenticationForm.tsx:249 msgid "Password repeat" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:247 +#: src/components/forms/AuthenticationForm.tsx:250 msgid "Repeat password" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:259 -#: src/components/forms/AuthenticationForm.tsx:304 +#: src/components/forms/AuthenticationForm.tsx:262 +#: src/components/forms/AuthenticationForm.tsx:307 msgid "Register" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:265 +#: src/components/forms/AuthenticationForm.tsx:268 msgid "Or use SSO" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:296 +#: src/components/forms/AuthenticationForm.tsx:299 msgid "Don't have an account?" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:315 +#: src/components/forms/AuthenticationForm.tsx:318 msgid "Go back to login" msgstr "" @@ -588,19 +896,20 @@ msgstr "" #: src/components/forms/HostOptionsForm.tsx:42 #: src/components/forms/HostOptionsForm.tsx:70 +#: src/components/plugins/PluginDrawer.tsx:69 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:410 +#: src/pages/Index/Settings/AdminCenter/UnitManagmentPanel.tsx:19 #: src/pages/part/CategoryDetail.tsx:81 -#: src/pages/part/PartDetail.tsx:143 -#: src/pages/stock/LocationDetail.tsx:89 -#: src/tables/machine/MachineTypeTable.tsx:65 -#: src/tables/machine/MachineTypeTable.tsx:109 -#: src/tables/machine/MachineTypeTable.tsx:216 -#: src/tables/machine/MachineTypeTable.tsx:319 +#: src/pages/part/PartDetail.tsx:164 +#: src/pages/stock/LocationDetail.tsx:83 +#: src/tables/machine/MachineTypeTable.tsx:70 +#: src/tables/machine/MachineTypeTable.tsx:119 +#: src/tables/machine/MachineTypeTable.tsx:237 +#: src/tables/machine/MachineTypeTable.tsx:340 #: src/tables/plugin/PluginErrorTable.tsx:33 -#: src/tables/plugin/PluginListTable.tsx:126 #: src/tables/purchasing/ManufacturerPartParameterTable.tsx:32 #: src/tables/settings/GroupTable.tsx:147 -#: src/tables/settings/PendingTasksTable.tsx:28 +#: src/tables/settings/PendingTasksTable.tsx:32 #: src/tables/stock/LocationTypesTable.tsx:69 msgid "Name" msgstr "Nombre" @@ -650,7 +959,7 @@ msgid "Uncategorized" msgstr "" #: src/components/forms/fields/IconField.tsx:209 -#: src/components/nav/Layout.tsx:70 +#: src/components/nav/Layout.tsx:77 #: src/tables/part/PartThumbTable.tsx:192 msgid "Search..." msgstr "" @@ -667,28 +976,27 @@ msgstr "" msgid "{0} icons" msgstr "" -#: src/components/forms/fields/RelatedModelField.tsx:318 -#: src/pages/Index/Settings/UserSettings.tsx:96 +#: src/components/forms/fields/RelatedModelField.tsx:319 +#: src/pages/Index/Settings/UserSettings.tsx:97 #: src/tables/Search.tsx:23 msgid "Search" msgstr "" -#: src/components/forms/fields/RelatedModelField.tsx:319 +#: src/components/forms/fields/RelatedModelField.tsx:320 #: src/components/modals/AboutInvenTreeModal.tsx:81 -#: src/components/widgets/WidgetLayout.tsx:120 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:316 msgid "Loading" msgstr "" -#: src/components/forms/fields/RelatedModelField.tsx:321 +#: src/components/forms/fields/RelatedModelField.tsx:322 msgid "No results found" msgstr "" -#: src/components/forms/fields/TableField.tsx:52 -msgid "modelRenderer entry required for tables" -msgstr "" +#: src/components/forms/fields/TableField.tsx:72 +#~ msgid "modelRenderer entry required for tables" +#~ msgstr "modelRenderer entry required for tables" -#: src/components/forms/fields/TableField.tsx:76 +#: src/components/forms/fields/TableField.tsx:167 msgid "No entries available" msgstr "" @@ -741,7 +1049,7 @@ msgid "Filter by row validation status" msgstr "" #: src/components/importer/ImportDataSelector.tsx:365 -#: src/tables/build/BuildOutputTable.tsx:266 +#: src/tables/build/BuildOutputTable.tsx:407 msgid "Complete" msgstr "" @@ -749,20 +1057,21 @@ msgstr "" msgid "Filter by row completion status" msgstr "" -#: src/components/importer/ImportDataSelector.tsx:383 +#: src/components/importer/ImportDataSelector.tsx:384 msgid "Import selected rows" msgstr "" -#: src/components/importer/ImportDataSelector.tsx:398 +#: src/components/importer/ImportDataSelector.tsx:399 msgid "Processing Data" msgstr "" -#: src/components/importer/ImporterColumnSelector.tsx:50 -#: src/components/importer/ImporterColumnSelector.tsx:176 +#: src/components/importer/ImporterColumnSelector.tsx:53 +#: src/components/importer/ImporterColumnSelector.tsx:179 +#: src/components/items/ErrorItem.tsx:12 msgid "An error occurred" msgstr "" -#: src/components/importer/ImporterColumnSelector.tsx:62 +#: src/components/importer/ImporterColumnSelector.tsx:65 msgid "Select column, or leave blank to ignore this field." msgstr "" @@ -778,51 +1087,51 @@ msgstr "" #~ msgid "Imported Column Name" #~ msgstr "Imported Column Name" -#: src/components/importer/ImporterColumnSelector.tsx:182 +#: src/components/importer/ImporterColumnSelector.tsx:185 msgid "Ignore this field" msgstr "" -#: src/components/importer/ImporterColumnSelector.tsx:196 +#: src/components/importer/ImporterColumnSelector.tsx:199 msgid "Mapping data columns to database fields" msgstr "" -#: src/components/importer/ImporterColumnSelector.tsx:201 +#: src/components/importer/ImporterColumnSelector.tsx:204 msgid "Accept Column Mapping" msgstr "" -#: src/components/importer/ImporterColumnSelector.tsx:214 +#: src/components/importer/ImporterColumnSelector.tsx:217 msgid "Database Field" msgstr "" -#: src/components/importer/ImporterColumnSelector.tsx:215 +#: src/components/importer/ImporterColumnSelector.tsx:218 msgid "Field Description" msgstr "" -#: src/components/importer/ImporterColumnSelector.tsx:216 +#: src/components/importer/ImporterColumnSelector.tsx:219 msgid "Imported Column" msgstr "" -#: src/components/importer/ImporterColumnSelector.tsx:217 +#: src/components/importer/ImporterColumnSelector.tsx:220 msgid "Default Value" msgstr "" -#: src/components/importer/ImporterDrawer.tsx:44 +#: src/components/importer/ImporterDrawer.tsx:46 msgid "Upload File" msgstr "" -#: src/components/importer/ImporterDrawer.tsx:45 +#: src/components/importer/ImporterDrawer.tsx:47 msgid "Map Columns" msgstr "" -#: src/components/importer/ImporterDrawer.tsx:46 +#: src/components/importer/ImporterDrawer.tsx:48 msgid "Import Data" msgstr "" -#: src/components/importer/ImporterDrawer.tsx:47 +#: src/components/importer/ImporterDrawer.tsx:49 msgid "Process Data" msgstr "" -#: src/components/importer/ImporterDrawer.tsx:48 +#: src/components/importer/ImporterDrawer.tsx:50 msgid "Complete Import" msgstr "" @@ -830,28 +1139,28 @@ msgstr "" #~ msgid "Cancel import session" #~ msgstr "Cancel import session" -#: src/components/importer/ImporterDrawer.tsx:104 +#: src/components/importer/ImporterDrawer.tsx:106 msgid "Import Complete" msgstr "" -#: src/components/importer/ImporterDrawer.tsx:107 +#: src/components/importer/ImporterDrawer.tsx:109 msgid "Data has been imported successfully" msgstr "" -#: src/components/importer/ImporterDrawer.tsx:109 -#: src/components/importer/ImporterDrawer.tsx:118 +#: src/components/importer/ImporterDrawer.tsx:111 +#: src/components/importer/ImporterDrawer.tsx:120 msgid "Close" msgstr "" -#: src/components/importer/ImporterDrawer.tsx:115 +#: src/components/importer/ImporterDrawer.tsx:117 msgid "Unknown Status" msgstr "" -#: src/components/importer/ImporterDrawer.tsx:116 +#: src/components/importer/ImporterDrawer.tsx:118 msgid "Import session has unknown status" msgstr "" -#: src/components/importer/ImporterDrawer.tsx:135 +#: src/components/importer/ImporterDrawer.tsx:137 msgid "Importing Data" msgstr "" @@ -860,85 +1169,115 @@ msgid "Importing Records" msgstr "" #: src/components/importer/ImporterImportProgress.tsx:39 -msgid "Imported rows" +#: src/tables/settings/ImportSessionTable.tsx:78 +msgid "Imported Rows" msgstr "" -#: src/components/items/ActionDropdown.tsx:121 -msgid "Barcode Actions" +#: src/components/importer/ImporterImportProgress.tsx:39 +#~ msgid "Imported rows" +#~ msgstr "Imported rows" + +#: src/components/items/ActionDropdown.tsx:126 +msgid "Options" msgstr "" #: src/components/items/ActionDropdown.tsx:140 -msgid "View Barcode" -msgstr "" +#~ msgid "View Barcode" +#~ msgstr "View Barcode" -#: src/components/items/ActionDropdown.tsx:147 -msgid "View" -msgstr "" - -#: src/components/items/ActionDropdown.tsx:148 -msgid "View barcode" -msgstr "" - -#: src/components/items/ActionDropdown.tsx:161 -msgid "Link Barcode" +#: src/components/items/ActionDropdown.tsx:162 +#: src/tables/InvenTreeTableHeader.tsx:159 +#: src/tables/InvenTreeTableHeader.tsx:160 +msgid "Barcode Actions" msgstr "" #: src/components/items/ActionDropdown.tsx:162 -msgid "Link custom barcode" +#~ msgid "Link custom barcode" +#~ msgstr "Link custom barcode" + +#: src/components/items/ActionDropdown.tsx:167 +msgid "View" msgstr "" -#: src/components/items/ActionDropdown.tsx:173 -#: src/forms/PurchaseOrderForms.tsx:426 -msgid "Unlink Barcode" +#: src/components/items/ActionDropdown.tsx:169 +msgid "View barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:174 -msgid "Unlink custom barcode" +#: src/components/items/ActionDropdown.tsx:175 +msgid "Link Barcode" +msgstr "" + +#: src/components/items/ActionDropdown.tsx:177 +msgid "Link a custom barcode to this item" msgstr "" #: src/components/items/ActionDropdown.tsx:183 -#: src/tables/RowActions.tsx:33 +#: src/components/items/QRCode.tsx:193 +#: src/forms/PurchaseOrderForms.tsx:464 +msgid "Unlink Barcode" +msgstr "" + +#: src/components/items/ActionDropdown.tsx:185 +msgid "Unlink custom barcode" +msgstr "" + +#: src/components/items/ActionDropdown.tsx:236 +#: src/tables/RowActions.tsx:39 msgid "Edit" msgstr "" -#: src/components/items/ActionDropdown.tsx:184 +#: src/components/items/ActionDropdown.tsx:237 msgid "Edit item" msgstr "" -#: src/components/items/ActionDropdown.tsx:196 +#: src/components/items/ActionDropdown.tsx:249 msgid "Delete item" msgstr "" -#: src/components/items/ActionDropdown.tsx:204 -#: src/components/items/ActionDropdown.tsx:205 +#: src/components/items/ActionDropdown.tsx:257 +#: src/components/items/ActionDropdown.tsx:258 msgid "Hold" msgstr "" -#: src/components/items/ActionDropdown.tsx:227 -#: src/tables/RowActions.tsx:23 +#: src/components/items/ActionDropdown.tsx:280 +#: src/tables/RowActions.tsx:29 msgid "Duplicate" msgstr "" -#: src/components/items/ActionDropdown.tsx:228 +#: src/components/items/ActionDropdown.tsx:281 msgid "Duplicate item" msgstr "" +#: src/components/items/BarcodeInput.tsx:23 +msgid "Scan barcode data here using barcode scanner" +msgstr "" + +#: src/components/items/BarcodeInput.tsx:24 +#: src/tables/settings/BarcodeScanHistoryTable.tsx:65 +msgid "Barcode" +msgstr "" + +#: src/components/items/BarcodeInput.tsx:25 +msgid "Scan" +msgstr "" + #: src/components/items/DocTooltip.tsx:92 +#: src/components/items/GettingStartedCarousel.tsx:20 msgid "Read More" msgstr "" -#: src/components/items/ErrorItem.tsx:5 -#: src/tables/InvenTreeTable.tsx:487 +#: src/components/items/ErrorItem.tsx:8 +#: src/tables/InvenTreeTable.tsx:473 msgid "Unknown error" msgstr "" -#: src/components/items/ErrorItem.tsx:10 -msgid "An error occurred:" -msgstr "" +#: src/components/items/ErrorItem.tsx:13 +#~ msgid "An error occurred:" +#~ msgstr "An error occurred:" #: src/components/items/GettingStartedCarousel.tsx:27 -msgid "Read more" -msgstr "" +#~ msgid "Read more" +#~ msgstr "Read more" #: src/components/items/InfoItem.tsx:27 msgid "None" @@ -965,30 +1304,51 @@ msgstr "" msgid "This panel is a placeholder." msgstr "" -#: src/components/items/QRCode.tsx:87 +#: src/components/items/QRCode.tsx:89 msgid "Low (7%)" msgstr "" -#: src/components/items/QRCode.tsx:88 +#: src/components/items/QRCode.tsx:90 msgid "Medium (15%)" msgstr "" -#: src/components/items/QRCode.tsx:89 +#: src/components/items/QRCode.tsx:91 msgid "Quartile (25%)" msgstr "" -#: src/components/items/QRCode.tsx:90 +#: src/components/items/QRCode.tsx:92 msgid "High (30%)" msgstr "" -#: src/components/items/QRCode.tsx:107 -msgid "Barcode Data:" +#: src/components/items/QRCode.tsx:100 +msgid "Custom barcode" +msgstr "" + +#: src/components/items/QRCode.tsx:101 +msgid "A custom barcode is registered for this item. The shown code is not that custom barcode." msgstr "" #: src/components/items/QRCode.tsx:118 +msgid "Barcode Data:" +msgstr "" + +#: src/components/items/QRCode.tsx:129 msgid "Select Error Correction Level" msgstr "" +#: src/components/items/QRCode.tsx:171 +#: src/pages/part/PartDetail.tsx:239 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:187 +#: src/pages/sales/ReturnOrderDetail.tsx:157 +#: src/pages/sales/SalesOrderDetail.tsx:169 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:166 +msgid "Link" +msgstr "" + +#: src/components/items/QRCode.tsx:190 +msgid "This will remove the link to the associated barcode" +msgstr "" + #: src/components/modals/AboutInvenTreeModal.tsx:99 msgid "Version Information" msgstr "" @@ -1062,11 +1422,11 @@ msgstr "" msgid "Submit Bug Report" msgstr "" -#: src/components/modals/AboutInvenTreeModal.tsx:183 +#: src/components/modals/AboutInvenTreeModal.tsx:181 msgid "Copy version information" msgstr "" -#: src/components/modals/AboutInvenTreeModal.tsx:192 +#: src/components/modals/AboutInvenTreeModal.tsx:189 #: src/components/modals/ServerInfoModal.tsx:147 msgid "Dismiss" msgstr "" @@ -1091,61 +1451,20 @@ msgstr "" msgid "{key} Packages" msgstr "" -#: src/components/modals/QrCodeModal.tsx:72 +#: src/components/modals/QrCodeModal.tsx:24 msgid "Unknown response" msgstr "" -#: src/components/modals/QrCodeModal.tsx:102 -#: src/pages/Index/Scan.tsx:636 -msgid "Error while getting camera" -msgstr "" - -#: src/components/modals/QrCodeModal.tsx:125 -#: src/pages/Index/Scan.tsx:659 -msgid "Error while scanning" -msgstr "" - -#: src/components/modals/QrCodeModal.tsx:139 -#: src/pages/Index/Scan.tsx:673 -msgid "Error while stopping" -msgstr "" - -#: src/components/modals/QrCodeModal.tsx:154 -#: src/defaults/menuItems.tsx:21 -#: src/pages/Index/Scan.tsx:746 -msgid "Scanning" -msgstr "" - -#: src/components/modals/QrCodeModal.tsx:154 -#: src/pages/Index/Scan.tsx:746 -msgid "Not scanning" -msgstr "" - -#: src/components/modals/QrCodeModal.tsx:159 -#: src/pages/Index/Scan.tsx:752 -msgid "Select Camera" -msgstr "" - -#: src/components/modals/QrCodeModal.tsx:169 -#: src/pages/Index/Scan.tsx:737 -msgid "Start scanning" -msgstr "" - -#: src/components/modals/QrCodeModal.tsx:176 -#: src/pages/Index/Scan.tsx:729 -msgid "Stop scanning" -msgstr "" - -#: src/components/modals/QrCodeModal.tsx:181 +#: src/components/modals/QrCodeModal.tsx:39 msgid "No scans yet!" msgstr "" -#: src/components/modals/QrCodeModal.tsx:201 +#: src/components/modals/QrCodeModal.tsx:57 msgid "Close modal" msgstr "" #: src/components/modals/ServerInfoModal.tsx:26 -#: src/pages/Index/Settings/SystemSettings.tsx:38 +#: src/pages/Index/Settings/SystemSettings.tsx:37 msgid "Server" msgstr "" @@ -1206,6 +1525,7 @@ msgid "Background Worker" msgstr "" #: src/components/modals/ServerInfoModal.tsx:101 +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:29 msgid "Background worker not running" msgstr "" @@ -1218,8 +1538,8 @@ msgid "Email settings not configured" msgstr "" #: src/components/modals/ServerInfoModal.tsx:121 -#: src/tables/plugin/PluginListTable.tsx:144 -#: src/tables/plugin/PluginListTable.tsx:294 +#: src/components/plugins/PluginDrawer.tsx:89 +#: src/tables/plugin/PluginListTable.tsx:116 msgid "Version" msgstr "" @@ -1227,7 +1547,7 @@ msgstr "" msgid "Server Version" msgstr "" -#: src/components/nav/Layout.tsx:73 +#: src/components/nav/Layout.tsx:80 msgid "Nothing found..." msgstr "" @@ -1237,18 +1557,26 @@ msgstr "" #~ msgstr "Profile" #: src/components/nav/MainMenu.tsx:52 +#: src/components/nav/NavigationDrawer.tsx:178 #: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:28 msgid "Settings" msgstr "" #: src/components/nav/MainMenu.tsx:59 -#: src/defaults/menuItems.tsx:15 -msgid "Account settings" +#: src/pages/Index/Settings/UserSettings.tsx:152 +msgid "Account Settings" msgstr "" +#: src/components/nav/MainMenu.tsx:59 +#: src/defaults/menuItems.tsx:15 +#~ msgid "Account settings" +#~ msgstr "Account settings" + #: src/components/nav/MainMenu.tsx:67 -#: src/defaults/menuItems.tsx:58 -#: src/pages/Index/Settings/SystemSettings.tsx:315 +#: src/components/nav/NavigationDrawer.tsx:141 +#: src/components/nav/SettingsHeader.tsx:49 +#: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:37 +#: src/pages/Index/Settings/SystemSettings.tsx:310 msgid "System Settings" msgstr "" @@ -1260,14 +1588,11 @@ msgstr "" #~ msgid "Switch to pseudo language" #~ msgstr "Switch to pseudo language" -#: src/components/nav/MainMenu.tsx:77 -msgid "Change Color Mode" -msgstr "" - #: src/components/nav/MainMenu.tsx:86 -#: src/defaults/actions.tsx:71 -#: src/defaults/menuItems.tsx:63 -#: src/pages/Index/Settings/AdminCenter/Index.tsx:221 +#: src/components/nav/NavigationDrawer.tsx:148 +#: src/components/nav/SettingsHeader.tsx:50 +#: src/defaults/actions.tsx:63 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:251 msgid "Admin Center" msgstr "" @@ -1275,458 +1600,732 @@ msgstr "" msgid "Logout" msgstr "" -#: src/components/nav/NavHoverMenu.tsx:65 -#: src/defaults/actions.tsx:60 -msgid "Open Navigation" -msgstr "" - #: src/components/nav/NavHoverMenu.tsx:84 -msgid "View all" -msgstr "" +#~ msgid "View all" +#~ msgstr "View all" #: src/components/nav/NavHoverMenu.tsx:100 #: src/components/nav/NavHoverMenu.tsx:110 -msgid "Get started" -msgstr "" +#~ msgid "Get started" +#~ msgstr "Get started" #: src/components/nav/NavHoverMenu.tsx:103 -msgid "Overview over high-level objects, functions and possible usecases." -msgstr "" - -#: src/components/nav/NavigationDrawer.tsx:57 -msgid "Navigation" -msgstr "" +#~ msgid "Overview over high-level objects, functions and possible usecases." +#~ msgstr "Overview over high-level objects, functions and possible usecases." #: src/components/nav/NavigationDrawer.tsx:60 -msgid "Pages" +#~ msgid "Pages" +#~ msgstr "Pages" + +#: src/components/nav/NavigationDrawer.tsx:77 +#: src/components/render/ModelType.tsx:31 +#: src/defaults/links.tsx:10 +#: src/pages/Index/Settings/SystemSettings.tsx:172 +#: src/pages/part/CategoryDetail.tsx:125 +#: src/pages/part/CategoryDetail.tsx:249 +#: src/pages/part/CategoryDetail.tsx:279 +#: src/pages/part/PartDetail.tsx:856 +msgid "Parts" msgstr "" -#: src/components/nav/NavigationDrawer.tsx:65 -#: src/pages/Index/Settings/AdminCenter/Index.tsx:176 -#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:41 -msgid "Plugins" +#: src/components/nav/NavigationDrawer.tsx:84 +#: src/components/render/Part.tsx:30 +#: src/defaults/links.tsx:11 +#: src/pages/Index/Settings/SystemSettings.tsx:205 +#: src/pages/part/PartDetail.tsx:593 +#: src/pages/stock/LocationDetail.tsx:352 +#: src/pages/stock/StockDetail.tsx:528 +#: src/tables/stock/StockItemTable.tsx:69 +msgid "Stock" msgstr "" -#: src/components/nav/NavigationDrawer.tsx:75 -#: src/defaults/actions.tsx:32 -msgid "Documentation" +#: src/components/nav/NavigationDrawer.tsx:91 +#: src/defaults/links.tsx:13 +#: src/pages/build/BuildDetail.tsx:530 +#: src/pages/build/BuildIndex.tsx:36 +msgid "Manufacturing" msgstr "" -#: src/components/nav/NavigationDrawer.tsx:78 -msgid "About" +#: src/components/nav/NavigationDrawer.tsx:98 +#: src/defaults/links.tsx:18 +#: src/pages/company/ManufacturerDetail.tsx:9 +#: src/pages/company/ManufacturerPartDetail.tsx:258 +#: src/pages/company/SupplierDetail.tsx:9 +#: src/pages/company/SupplierPartDetail.tsx:336 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:480 +#: src/pages/purchasing/PurchasingIndex.tsx:60 +msgid "Purchasing" msgstr "" -#: src/components/nav/NotificationDrawer.tsx:92 -#: src/pages/Index/Settings/SystemSettings.tsx:109 -#: src/pages/Index/Settings/UserSettings.tsx:126 +#: src/components/nav/NavigationDrawer.tsx:105 +#: src/defaults/links.tsx:22 +#: src/pages/company/CustomerDetail.tsx:9 +#: src/pages/sales/ReturnOrderDetail.tsx:469 +#: src/pages/sales/SalesIndex.tsx:53 +#: src/pages/sales/SalesOrderDetail.tsx:520 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:343 +msgid "Sales" +msgstr "" + +#: src/components/nav/NavigationDrawer.tsx:129 +#: src/components/nav/NotificationDrawer.tsx:178 +#: src/pages/Index/Settings/SystemSettings.tsx:110 +#: src/pages/Index/Settings/UserSettings.tsx:127 #: src/pages/Notifications.tsx:65 #: src/pages/Notifications.tsx:151 msgid "Notifications" msgstr "" -#: src/components/nav/NotificationDrawer.tsx:94 +#: src/components/nav/NavigationDrawer.tsx:135 +#: src/components/nav/SettingsHeader.tsx:48 +msgid "User Settings" +msgstr "" + +#: src/components/nav/NavigationDrawer.tsx:173 +msgid "Navigation" +msgstr "" + +#: src/components/nav/NavigationDrawer.tsx:183 +#: src/forms/PurchaseOrderForms.tsx:689 +#: src/forms/StockForms.tsx:614 +#: src/forms/StockForms.tsx:651 +#: src/forms/StockForms.tsx:677 +#: src/forms/StockForms.tsx:705 +#: src/forms/StockForms.tsx:736 +#: src/forms/StockForms.tsx:771 +#: src/forms/StockForms.tsx:813 +#: src/forms/StockForms.tsx:851 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:413 +#: src/tables/RowActions.tsx:129 +#: src/tables/build/BuildLineTable.tsx:101 +msgid "Actions" +msgstr "" + +#: src/components/nav/NavigationDrawer.tsx:191 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:205 +#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:44 +msgid "Plugins" +msgstr "" + +#: src/components/nav/NavigationDrawer.tsx:204 +#: src/defaults/actions.tsx:24 +msgid "Documentation" +msgstr "" + +#: src/components/nav/NavigationDrawer.tsx:210 +msgid "About" +msgstr "" + +#: src/components/nav/NotificationDrawer.tsx:180 msgid "Mark all as read" msgstr "" -#: src/components/nav/NotificationDrawer.tsx:104 +#: src/components/nav/NotificationDrawer.tsx:190 msgid "View all notifications" msgstr "" -#: src/components/nav/NotificationDrawer.tsx:123 +#: src/components/nav/NotificationDrawer.tsx:210 msgid "You have no unread notifications." msgstr "" -#: src/components/nav/NotificationDrawer.tsx:139 -#: src/components/nav/NotificationDrawer.tsx:145 -#: src/tables/notifications/NotificationsTable.tsx:36 -msgid "Notification" -msgstr "" - -#: src/components/nav/NotificationDrawer.tsx:168 -#: src/pages/Notifications.tsx:73 -msgid "Mark as read" -msgstr "" - -#: src/components/nav/SearchDrawer.tsx:78 +#: src/components/nav/SearchDrawer.tsx:85 msgid "results" msgstr "" -#: src/components/nav/SearchDrawer.tsx:370 +#: src/components/nav/SearchDrawer.tsx:380 msgid "Enter search text" msgstr "" -#: src/components/nav/SearchDrawer.tsx:397 +#: src/components/nav/SearchDrawer.tsx:391 +msgid "Refresh search results" +msgstr "" + +#: src/components/nav/SearchDrawer.tsx:402 +#: src/components/nav/SearchDrawer.tsx:409 msgid "Search Options" msgstr "" -#: src/components/nav/SearchDrawer.tsx:400 +#: src/components/nav/SearchDrawer.tsx:412 msgid "Regex search" msgstr "" -#: src/components/nav/SearchDrawer.tsx:410 +#: src/components/nav/SearchDrawer.tsx:421 msgid "Whole word search" msgstr "" -#: src/components/nav/SearchDrawer.tsx:451 +#: src/components/nav/SearchDrawer.tsx:461 msgid "An error occurred during search query" msgstr "" #: src/components/nav/SearchDrawer.tsx:462 -msgid "No results" +#~ msgid "No results" +#~ msgstr "No results" + +#: src/components/nav/SearchDrawer.tsx:472 +#: src/tables/part/PartTestTemplateTable.tsx:76 +msgid "No Results" msgstr "" -#: src/components/nav/SearchDrawer.tsx:465 +#: src/components/nav/SearchDrawer.tsx:475 msgid "No results available for search query" msgstr "" -#: src/components/render/Instance.tsx:217 +#: src/components/panels/AttachmentPanel.tsx:18 +msgid "Attachments" +msgstr "" + +#: src/components/panels/NotesPanel.tsx:24 +#: src/tables/build/BuildOrderTestTable.tsx:143 +#: src/tables/stock/StockTrackingTable.tsx:204 +msgid "Notes" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:47 +msgid "Plugin Inactive" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:50 +msgid "Plugin is not active" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:60 +msgid "Plugin Information" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:74 +#: src/pages/build/BuildDetail.tsx:116 +#: src/pages/company/CompanyDetail.tsx:89 +#: src/pages/company/ManufacturerPartDetail.tsx:89 +#: src/pages/company/ManufacturerPartDetail.tsx:116 +#: src/pages/company/SupplierPartDetail.tsx:140 +#: src/pages/part/CategoryDetail.tsx:101 +#: src/pages/part/PartDetail.tsx:178 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:136 +#: src/pages/sales/ReturnOrderDetail.tsx:107 +#: src/pages/sales/SalesOrderDetail.tsx:116 +#: src/pages/stock/LocationDetail.tsx:103 +#: src/tables/ColumnRenderers.tsx:92 +#: src/tables/bom/UsedInTable.tsx:44 +#: src/tables/build/BuildAllocatedStockTable.tsx:83 +#: src/tables/build/BuildLineTable.tsx:329 +#: src/tables/machine/MachineTypeTable.tsx:74 +#: src/tables/machine/MachineTypeTable.tsx:129 +#: src/tables/machine/MachineTypeTable.tsx:240 +#: src/tables/machine/MachineTypeTable.tsx:344 +#: src/tables/part/RelatedPartTable.tsx:66 +#: src/tables/plugin/PluginListTable.tsx:99 +#: src/tables/sales/SalesOrderAllocationTable.tsx:87 +#: src/tables/sales/SalesOrderLineItemTable.tsx:75 +#: src/tables/stock/LocationTypesTable.tsx:74 +msgid "Description" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:79 +msgid "Author" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:84 +#: src/pages/part/PartSchedulingDetail.tsx:277 +#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:40 +#: src/pages/part/pricing/SaleHistoryPanel.tsx:38 +#: src/tables/ColumnRenderers.tsx:215 +#: src/tables/build/BuildOrderTestTable.tsx:151 +#: src/tables/settings/StocktakeReportTable.tsx:40 +msgid "Date" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:94 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:398 +#: src/pages/part/PartDetail.tsx:331 +#: src/tables/bom/UsedInTable.tsx:84 +#: src/tables/company/CompanyTable.tsx:62 +#: src/tables/company/CompanyTable.tsx:96 +#: src/tables/machine/MachineListTable.tsx:333 +#: src/tables/machine/MachineListTable.tsx:605 +#: src/tables/part/ParametricPartTable.tsx:223 +#: src/tables/part/PartTable.tsx:178 +#: src/tables/part/PartVariantTable.tsx:15 +#: src/tables/plugin/PluginListTable.tsx:94 +#: src/tables/plugin/PluginListTable.tsx:401 +#: src/tables/purchasing/SupplierPartTable.tsx:100 +#: src/tables/purchasing/SupplierPartTable.tsx:190 +#: src/tables/settings/UserTable.tsx:283 +#: src/tables/stock/StockItemTable.tsx:293 +msgid "Active" +msgstr "Activo" + +#: src/components/plugins/PluginDrawer.tsx:106 +msgid "Package Name" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:112 +msgid "Installation Path" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:117 +#: src/tables/machine/MachineTypeTable.tsx:152 +#: src/tables/machine/MachineTypeTable.tsx:276 +#: src/tables/plugin/PluginListTable.tsx:406 +msgid "Builtin" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:122 +msgid "Package" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:134 +#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:53 +msgid "Plugin Settings" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:146 +#: src/components/render/ModelType.tsx:276 +msgid "Plugin Configuration" +msgstr "" + +#: src/components/plugins/PluginPanel.tsx:87 +#~ msgid "Error occurred while rendering plugin content" +#~ msgstr "Error occurred while rendering plugin content" + +#: src/components/plugins/PluginPanel.tsx:91 +#~ msgid "Plugin did not provide panel rendering function" +#~ msgstr "Plugin did not provide panel rendering function" + +#: src/components/plugins/PluginPanel.tsx:103 +#~ msgid "No content provided for this plugin" +#~ msgstr "No content provided for this plugin" + +#: src/components/plugins/PluginPanel.tsx:116 +#: src/components/plugins/PluginSettingsPanel.tsx:76 +#~ msgid "Error Loading Plugin" +#~ msgstr "Error Loading Plugin" + +#: src/components/plugins/PluginSettingsPanel.tsx:51 +#~ msgid "Error occurred while rendering plugin settings" +#~ msgstr "Error occurred while rendering plugin settings" + +#: src/components/plugins/PluginSettingsPanel.tsx:55 +#~ msgid "Plugin did not provide settings rendering function" +#~ msgstr "Plugin did not provide settings rendering function" + +#: src/components/plugins/PluginUIFeature.tsx:100 +msgid "Error occurred while rendering the template editor." +msgstr "" + +#: src/components/plugins/PluginUIFeature.tsx:111 +msgid "Error Loading Plugin Editor" +msgstr "" + +#: src/components/plugins/PluginUIFeature.tsx:147 +msgid "Error occurred while rendering the template preview." +msgstr "" + +#: src/components/plugins/PluginUIFeature.tsx:158 +msgid "Error Loading Plugin Preview" +msgstr "" + +#: src/components/plugins/RemoteComponent.tsx:70 +msgid "Invalid source or function name" +msgstr "" + +#: src/components/plugins/RemoteComponent.tsx:91 +msgid "Error Loading Content" +msgstr "" + +#: src/components/plugins/RemoteComponent.tsx:95 +msgid "Error occurred while loading plugin content" +msgstr "" + +#: src/components/render/Instance.tsx:224 msgid "Unknown model: {model}" msgstr "" -#: src/components/render/ModelType.tsx:22 -#: src/forms/BuildForms.tsx:213 -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/forms/StockForms.tsx:499 -#: src/forms/StockForms.tsx:533 -#: src/forms/StockForms.tsx:562 -#: src/forms/StockForms.tsx:590 -#: src/forms/StockForms.tsx:621 -#: src/forms/StockForms.tsx:656 -#: src/forms/StockForms.tsx:698 -#: src/forms/StockForms.tsx:734 -#: src/pages/build/BuildDetail.tsx:95 -#: src/pages/part/PartDetail.tsx:1073 -#: src/tables/build/BuildAllocatedStockTable.tsx:82 +#: src/components/render/ModelType.tsx:30 +#: src/forms/BuildForms.tsx:269 +#: src/forms/BuildForms.tsx:337 +#: src/forms/BuildForms.tsx:385 +#: src/forms/BuildForms.tsx:515 +#: src/forms/PurchaseOrderForms.tsx:689 +#: src/forms/ReturnOrderForms.tsx:190 +#: src/forms/SalesOrderForms.tsx:248 +#: src/forms/StockForms.tsx:261 +#: src/forms/StockForms.tsx:614 +#: src/forms/StockForms.tsx:651 +#: src/forms/StockForms.tsx:677 +#: src/forms/StockForms.tsx:705 +#: src/forms/StockForms.tsx:736 +#: src/forms/StockForms.tsx:771 +#: src/forms/StockForms.tsx:813 +#: src/forms/StockForms.tsx:851 +#: src/pages/build/BuildDetail.tsx:90 +#: src/pages/part/PartDetail.tsx:1094 +#: src/tables/build/BuildAllocatedStockTable.tsx:95 +#: src/tables/build/BuildLineTable.tsx:72 #: src/tables/part/PartTable.tsx:28 -#: src/tables/part/RelatedPartTable.tsx:45 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:88 -#: src/tables/sales/SalesOrderAllocationTable.tsx:68 -#: src/tables/stock/StockTrackingTable.tsx:74 +#: src/tables/part/RelatedPartTable.tsx:47 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:130 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:100 +#: src/tables/sales/SalesOrderAllocationTable.tsx:99 +#: src/tables/stock/StockTrackingTable.tsx:78 msgid "Part" msgstr "" -#: src/components/render/ModelType.tsx:23 -#: src/defaults/links.tsx:29 -#: src/defaults/menuItems.tsx:33 -#: src/pages/Index/Settings/SystemSettings.tsx:173 -#: src/pages/part/CategoryDetail.tsx:119 -#: src/pages/part/CategoryDetail.tsx:244 -#: src/pages/part/CategoryDetail.tsx:274 -#: src/pages/part/PartDetail.tsx:827 -msgid "Parts" -msgstr "" - -#: src/components/render/ModelType.tsx:31 +#: src/components/render/ModelType.tsx:40 msgid "Part Parameter Template" msgstr "" -#: src/components/render/ModelType.tsx:32 +#: src/components/render/ModelType.tsx:41 msgid "Part Parameter Templates" msgstr "" -#: src/components/render/ModelType.tsx:38 +#: src/components/render/ModelType.tsx:48 msgid "Part Test Template" msgstr "" -#: src/components/render/ModelType.tsx:39 +#: src/components/render/ModelType.tsx:49 msgid "Part Test Templates" msgstr "" -#: src/components/render/ModelType.tsx:45 -#: src/pages/company/SupplierPartDetail.tsx:203 -#: src/pages/company/SupplierPartDetail.tsx:375 -#: src/pages/stock/StockDetail.tsx:173 -#: src/tables/build/BuildAllocatedStockTable.tsx:131 +#: src/components/render/ModelType.tsx:56 +#: src/pages/company/SupplierPartDetail.tsx:364 +#: src/pages/stock/StockDetail.tsx:194 +#: src/tables/build/BuildAllocatedStockTable.tsx:152 #: src/tables/part/PartPurchaseOrdersTable.tsx:49 -#: src/tables/purchasing/SupplierPartTable.tsx:68 +#: src/tables/purchasing/SupplierPartTable.tsx:70 +#: src/tables/stock/StockItemTable.tsx:229 msgid "Supplier Part" msgstr "" -#: src/components/render/ModelType.tsx:46 +#: src/components/render/ModelType.tsx:57 msgid "Supplier Parts" msgstr "" -#: src/components/render/ModelType.tsx:54 -#: src/pages/company/ManufacturerPartDetail.tsx:132 +#: src/components/render/ModelType.tsx:66 #: src/tables/part/PartPurchaseOrdersTable.tsx:55 +#: src/tables/stock/StockItemTable.tsx:234 msgid "Manufacturer Part" msgstr "" -#: src/components/render/ModelType.tsx:55 +#: src/components/render/ModelType.tsx:67 msgid "Manufacturer Parts" msgstr "" -#: src/components/render/ModelType.tsx:63 -#: src/pages/part/CategoryDetail.tsx:305 +#: src/components/render/ModelType.tsx:76 +#: src/pages/part/CategoryDetail.tsx:310 msgid "Part Category" msgstr "" -#: src/components/render/ModelType.tsx:64 -#: src/pages/part/CategoryDetail.tsx:258 -#: src/pages/part/CategoryDetail.tsx:296 -#: src/pages/part/PartDetail.tsx:1063 +#: src/components/render/ModelType.tsx:77 +#: src/pages/part/CategoryDetail.tsx:263 +#: src/pages/part/CategoryDetail.tsx:301 +#: src/pages/part/PartDetail.tsx:1084 msgid "Part Categories" msgstr "" -#: src/components/render/ModelType.tsx:72 -#: src/pages/stock/StockDetail.tsx:624 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:94 -#: src/tables/stock/StockTrackingTable.tsx:45 +#: src/components/render/ModelType.tsx:86 +#: src/forms/BuildForms.tsx:337 +#: src/forms/BuildForms.tsx:385 +#: src/forms/BuildForms.tsx:515 +#: src/forms/SalesOrderForms.tsx:248 +#: src/pages/stock/StockDetail.tsx:839 +#: src/tables/stock/StockTrackingTable.tsx:49 msgid "Stock Item" msgstr "" -#: src/components/render/ModelType.tsx:73 +#: src/components/render/ModelType.tsx:87 #: src/pages/company/CompanyDetail.tsx:203 -#: src/pages/stock/LocationDetail.tsx:128 -#: src/pages/stock/LocationDetail.tsx:181 -#: src/pages/stock/LocationDetail.tsx:395 +#: src/pages/part/PartStocktakeDetail.tsx:113 +#: src/pages/stock/LocationDetail.tsx:122 +#: src/pages/stock/LocationDetail.tsx:175 +#: src/pages/stock/LocationDetail.tsx:380 msgid "Stock Items" msgstr "" -#: src/components/render/ModelType.tsx:81 +#: src/components/render/ModelType.tsx:96 msgid "Stock Location" msgstr "" -#: src/components/render/ModelType.tsx:82 -#: src/pages/stock/LocationDetail.tsx:195 -#: src/pages/stock/LocationDetail.tsx:387 -#: src/pages/stock/StockDetail.tsx:616 +#: src/components/render/ModelType.tsx:97 +#: src/pages/stock/LocationDetail.tsx:189 +#: src/pages/stock/LocationDetail.tsx:372 +#: src/pages/stock/StockDetail.tsx:831 msgid "Stock Locations" msgstr "" -#: src/components/render/ModelType.tsx:90 +#: src/components/render/ModelType.tsx:106 msgid "Stock Location Type" msgstr "" -#: src/components/render/ModelType.tsx:91 +#: src/components/render/ModelType.tsx:107 msgid "Stock Location Types" msgstr "" -#: src/components/render/ModelType.tsx:95 +#: src/components/render/ModelType.tsx:112 +#: src/pages/part/PartDetail.tsx:712 msgid "Stock History" msgstr "" -#: src/components/render/ModelType.tsx:96 +#: src/components/render/ModelType.tsx:113 msgid "Stock Histories" msgstr "" -#: src/components/render/ModelType.tsx:100 -#: src/defaults/links.tsx:31 -#: src/defaults/menuItems.tsx:43 +#: src/components/render/ModelType.tsx:118 msgid "Build" msgstr "" -#: src/components/render/ModelType.tsx:101 +#: src/components/render/ModelType.tsx:119 msgid "Builds" msgstr "" -#: src/components/render/ModelType.tsx:109 +#: src/components/render/ModelType.tsx:128 msgid "Build Line" msgstr "" -#: src/components/render/ModelType.tsx:110 +#: src/components/render/ModelType.tsx:129 msgid "Build Lines" msgstr "" -#: src/components/render/ModelType.tsx:117 +#: src/components/render/ModelType.tsx:137 msgid "Build Item" msgstr "" -#: src/components/render/ModelType.tsx:118 +#: src/components/render/ModelType.tsx:138 msgid "Build Items" msgstr "" -#: src/components/render/ModelType.tsx:122 -#: src/pages/company/CompanyDetail.tsx:339 +#: src/components/render/ModelType.tsx:143 +#: src/pages/company/CompanyDetail.tsx:321 msgid "Company" msgstr "" -#: src/components/render/ModelType.tsx:123 +#: src/components/render/ModelType.tsx:144 msgid "Companies" msgstr "" -#: src/components/render/ModelType.tsx:131 +#: src/components/render/ModelType.tsx:153 +#: src/pages/build/BuildDetail.tsx:195 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:204 +#: src/pages/sales/ReturnOrderDetail.tsx:174 +#: src/pages/sales/SalesOrderDetail.tsx:186 #: src/tables/TableHoverCard.tsx:81 -#: src/tables/build/BuildOrderTable.tsx:140 -#: src/tables/purchasing/PurchaseOrderTable.tsx:64 -#: src/tables/sales/ReturnOrderTable.tsx:55 -#: src/tables/sales/SalesOrderTable.tsx:62 +#: src/tables/build/BuildOrderTable.tsx:135 +#: src/tables/purchasing/PurchaseOrderTable.tsx:69 +#: src/tables/sales/ReturnOrderTable.tsx:67 +#: src/tables/sales/SalesOrderTable.tsx:67 msgid "Project Code" msgstr "" -#: src/components/render/ModelType.tsx:132 -#: src/pages/Index/Settings/AdminCenter/Index.tsx:128 +#: src/components/render/ModelType.tsx:154 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:145 msgid "Project Codes" msgstr "" -#: src/components/render/ModelType.tsx:138 +#: src/components/render/ModelType.tsx:161 #: src/pages/part/pricing/PurchaseHistoryPanel.tsx:32 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:480 -#: src/tables/part/PartPurchaseOrdersTable.tsx:32 -#: src/tables/stock/StockTrackingTable.tsx:107 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:477 +#: src/pages/stock/StockDetail.tsx:253 +#: src/tables/part/PartPurchaseOrdersTable.tsx:31 +#: src/tables/stock/StockItemTable.tsx:222 +#: src/tables/stock/StockTrackingTable.tsx:111 msgid "Purchase Order" msgstr "" -#: src/components/render/ModelType.tsx:139 -#: src/pages/Index/Settings/SystemSettings.tsx:255 +#: src/components/render/ModelType.tsx:162 +#: src/pages/Index/Settings/SystemSettings.tsx:249 #: src/pages/company/CompanyDetail.tsx:196 -#: src/pages/company/SupplierPartDetail.tsx:237 -#: src/pages/part/PartDetail.tsx:662 +#: src/pages/company/SupplierPartDetail.tsx:249 +#: src/pages/part/PartDetail.tsx:683 #: src/pages/purchasing/PurchasingIndex.tsx:25 msgid "Purchase Orders" msgstr "Órdenes de compra" -#: src/components/render/ModelType.tsx:147 +#: src/components/render/ModelType.tsx:171 msgid "Purchase Order Line" msgstr "" -#: src/components/render/ModelType.tsx:148 +#: src/components/render/ModelType.tsx:172 msgid "Purchase Order Lines" msgstr "" -#: src/components/render/ModelType.tsx:152 -#: src/pages/build/BuildDetail.tsx:153 -#: src/pages/sales/SalesOrderDetail.tsx:520 -#: src/pages/stock/StockDetail.tsx:221 -#: src/tables/sales/SalesOrderAllocationTable.tsx:50 -#: src/tables/stock/StockTrackingTable.tsx:118 +#: src/components/render/ModelType.tsx:177 +#: src/pages/build/BuildDetail.tsx:148 +#: src/pages/part/pricing/SaleHistoryPanel.tsx:24 +#: src/pages/sales/SalesOrderDetail.tsx:515 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:92 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:341 +#: src/pages/stock/StockDetail.tsx:262 +#: src/tables/sales/SalesOrderAllocationTable.tsx:80 +#: src/tables/stock/StockTrackingTable.tsx:122 msgid "Sales Order" msgstr "" -#: src/components/render/ModelType.tsx:153 -#: src/pages/Index/Settings/SystemSettings.tsx:270 +#: src/components/render/ModelType.tsx:178 +#: src/pages/Index/Settings/SystemSettings.tsx:264 #: src/pages/company/CompanyDetail.tsx:216 -#: src/pages/part/PartDetail.tsx:669 +#: src/pages/part/PartDetail.tsx:695 #: src/pages/sales/SalesIndex.tsx:26 msgid "Sales Orders" msgstr "" -#: src/components/render/ModelType.tsx:161 +#: src/components/render/ModelType.tsx:187 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:340 msgid "Sales Order Shipment" msgstr "" -#: src/components/render/ModelType.tsx:162 +#: src/components/render/ModelType.tsx:188 msgid "Sales Order Shipments" msgstr "" -#: src/components/render/ModelType.tsx:168 -#: src/pages/sales/ReturnOrderDetail.tsx:469 -#: src/tables/stock/StockTrackingTable.tsx:129 +#: src/components/render/ModelType.tsx:195 +#: src/pages/sales/ReturnOrderDetail.tsx:464 +#: src/tables/stock/StockTrackingTable.tsx:133 msgid "Return Order" msgstr "" -#: src/components/render/ModelType.tsx:169 -#: src/pages/Index/Settings/SystemSettings.tsx:286 +#: src/components/render/ModelType.tsx:196 +#: src/pages/Index/Settings/SystemSettings.tsx:280 #: src/pages/company/CompanyDetail.tsx:223 +#: src/pages/part/PartDetail.tsx:702 #: src/pages/sales/SalesIndex.tsx:32 msgid "Return Orders" msgstr "Ordenes de devolución" -#: src/components/render/ModelType.tsx:177 +#: src/components/render/ModelType.tsx:205 msgid "Return Order Line Item" msgstr "" -#: src/components/render/ModelType.tsx:178 +#: src/components/render/ModelType.tsx:206 msgid "Return Order Line Items" msgstr "" -#: src/components/render/ModelType.tsx:182 -#: src/tables/company/AddressTable.tsx:47 +#: src/components/render/ModelType.tsx:211 +#: src/tables/company/AddressTable.tsx:48 msgid "Address" msgstr "" -#: src/components/render/ModelType.tsx:183 -#: src/pages/company/CompanyDetail.tsx:253 +#: src/components/render/ModelType.tsx:212 +#: src/pages/company/CompanyDetail.tsx:255 msgid "Addresses" msgstr "" -#: src/components/render/ModelType.tsx:189 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:195 -#: src/pages/sales/ReturnOrderDetail.tsx:174 -#: src/pages/sales/SalesOrderDetail.tsx:183 +#: src/components/render/ModelType.tsx:219 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:196 +#: src/pages/sales/ReturnOrderDetail.tsx:166 +#: src/pages/sales/SalesOrderDetail.tsx:178 msgid "Contact" msgstr "" -#: src/components/render/ModelType.tsx:190 -#: src/pages/company/CompanyDetail.tsx:247 +#: src/components/render/ModelType.tsx:220 +#: src/pages/company/CompanyDetail.tsx:249 msgid "Contacts" msgstr "" -#: src/components/render/ModelType.tsx:196 +#: src/components/render/ModelType.tsx:227 msgid "Owner" msgstr "" -#: src/components/render/ModelType.tsx:197 +#: src/components/render/ModelType.tsx:228 msgid "Owners" msgstr "" -#: src/components/render/ModelType.tsx:203 -#: src/tables/settings/ImportSessionTable.tsx:121 -#: src/tables/stock/StockItemTestResultTable.tsx:198 -#: src/tables/stock/StockTrackingTable.tsx:195 +#: src/components/render/ModelType.tsx:234 +#~ msgid "Purchase Order Line Item" +#~ msgstr "Purchase Order Line Item" + +#: src/components/render/ModelType.tsx:235 +#: src/tables/settings/BarcodeScanHistoryTable.tsx:80 +#: src/tables/settings/BarcodeScanHistoryTable.tsx:211 +#: src/tables/settings/ImportSessionTable.tsx:120 +#: src/tables/settings/StocktakeReportTable.tsx:44 +#: src/tables/stock/StockItemTestResultTable.tsx:204 +#: src/tables/stock/StockTrackingTable.tsx:181 +#: src/tables/stock/StockTrackingTable.tsx:210 msgid "User" msgstr "" -#: src/components/render/ModelType.tsx:204 -#: src/pages/Index/Settings/AdminCenter/Index.tsx:98 +#: src/components/render/ModelType.tsx:236 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:109 #: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:13 msgid "Users" msgstr "" -#: src/components/render/ModelType.tsx:210 +#: src/components/render/ModelType.tsx:243 msgid "Group" msgstr "" -#: src/components/render/ModelType.tsx:211 +#: src/components/render/ModelType.tsx:244 #: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:20 -#: src/tables/settings/UserTable.tsx:138 -#: src/tables/settings/UserTable.tsx:201 +#: src/tables/settings/UserTable.tsx:137 +#: src/tables/settings/UserTable.tsx:200 msgid "Groups" msgstr "" -#: src/components/render/ModelType.tsx:218 +#: src/components/render/ModelType.tsx:252 msgid "Import Session" msgstr "" -#: src/components/render/ModelType.tsx:219 +#: src/components/render/ModelType.tsx:253 msgid "Import Sessions" msgstr "" -#: src/components/render/ModelType.tsx:225 +#: src/components/render/ModelType.tsx:260 msgid "Label Template" msgstr "" -#: src/components/render/ModelType.tsx:226 -#: src/pages/Index/Settings/AdminCenter/Index.tsx:158 +#: src/components/render/ModelType.tsx:261 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:187 msgid "Label Templates" msgstr "" -#: src/components/render/ModelType.tsx:232 +#: src/components/render/ModelType.tsx:264 +#~ msgid "Unknown Model" +#~ msgstr "Unknown Model" + +#: src/components/render/ModelType.tsx:268 msgid "Report Template" msgstr "" -#: src/components/render/ModelType.tsx:233 -#: src/pages/Index/Settings/AdminCenter/Index.tsx:164 +#: src/components/render/ModelType.tsx:269 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:193 msgid "Report Templates" msgstr "" -#: src/components/render/ModelType.tsx:239 -msgid "Plugin Configuration" -msgstr "" - -#: src/components/render/ModelType.tsx:240 +#: src/components/render/ModelType.tsx:277 msgid "Plugin Configurations" msgstr "" +#: src/components/render/ModelType.tsx:284 +msgid "Content Type" +msgstr "" + +#: src/components/render/ModelType.tsx:285 +msgid "Content Types" +msgstr "" + +#: src/components/render/ModelType.tsx:291 +#: src/tables/machine/MachineListTable.tsx:351 +#: src/tables/machine/MachineTypeTable.tsx:282 +msgid "Errors" +msgstr "" + +#: src/components/render/ModelType.tsx:307 +#~ msgid "Purchase Order Line Items" +#~ msgstr "Purchase Order Line Items" + +#: src/components/render/ModelType.tsx:337 +#~ msgid "Unknown Models" +#~ msgstr "Unknown Models" + #: src/components/render/Order.tsx:121 +#: src/tables/sales/SalesOrderAllocationTable.tsx:136 msgid "Shipment" msgstr "" #: src/components/render/Part.tsx:25 #: src/components/render/Plugin.tsx:17 -#: src/pages/company/CompanyDetail.tsx:325 -#: src/pages/company/SupplierPartDetail.tsx:360 -#: src/pages/part/PartDetail.tsx:879 +#: src/pages/company/CompanyDetail.tsx:307 +#: src/pages/company/SupplierPartDetail.tsx:349 +#: src/pages/part/PartDetail.tsx:911 msgid "Inactive" msgstr "Inactivo" @@ -1736,39 +2335,38 @@ msgstr "Inactivo" msgid "No stock" msgstr "" -#: src/components/render/Part.tsx:30 -#: src/defaults/links.tsx:30 -#: src/defaults/menuItems.tsx:38 -#: src/pages/Index/Settings/SystemSettings.tsx:206 -#: src/pages/part/PartDetail.tsx:543 -#: src/pages/stock/LocationDetail.tsx:367 -#: src/pages/stock/StockDetail.tsx:411 -#: src/tables/stock/StockItemTable.tsx:68 -msgid "Stock" -msgstr "" - -#: src/components/render/Stock.tsx:60 -#: src/pages/stock/StockDetail.tsx:150 -#: src/pages/stock/StockDetail.tsx:581 -#: src/tables/build/BuildAllocatedStockTable.tsx:102 -#: src/tables/sales/SalesOrderAllocationTable.tsx:80 +#: src/components/render/Stock.tsx:61 +#: src/forms/ReturnOrderForms.tsx:190 +#: src/pages/stock/StockDetail.tsx:166 +#: src/pages/stock/StockDetail.tsx:771 +#: src/tables/build/BuildAllocatedStockTable.tsx:123 +#: src/tables/build/BuildOutputTable.tsx:81 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:114 +#: src/tables/sales/SalesOrderAllocationTable.tsx:106 msgid "Serial Number" msgstr "" -#: src/components/render/Stock.tsx:62 -#: src/forms/BuildForms.tsx:218 -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/pages/part/pricing/BomPricingPanel.tsx:109 +#: src/components/render/Stock.tsx:63 +#: src/forms/BuildForms.tsx:206 +#: src/forms/BuildForms.tsx:515 +#: src/forms/PurchaseOrderForms.tsx:689 +#: src/forms/SalesOrderForms.tsx:248 +#: src/pages/part/PartSchedulingDetail.tsx:80 +#: src/pages/part/PartStocktakeDetail.tsx:60 +#: src/pages/part/PartStocktakeDetail.tsx:234 +#: src/pages/part/PartStocktakeDetail.tsx:252 +#: src/pages/part/pricing/BomPricingPanel.tsx:148 #: src/pages/part/pricing/PriceBreakPanel.tsx:89 -#: src/pages/part/pricing/PriceBreakPanel.tsx:171 -#: src/pages/stock/StockDetail.tsx:145 -#: src/pages/stock/StockDetail.tsx:587 -#: src/tables/build/BuildOrderTestTable.tsx:197 -#: src/tables/part/PartPurchaseOrdersTable.tsx:92 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:143 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:171 +#: src/pages/part/pricing/PriceBreakPanel.tsx:172 +#: src/pages/stock/StockDetail.tsx:161 +#: src/pages/stock/StockDetail.tsx:777 +#: src/tables/build/BuildLineTable.tsx:79 +#: src/tables/build/BuildOrderTestTable.tsx:198 +#: src/tables/part/PartPurchaseOrdersTable.tsx:93 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:146 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:177 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:77 -#: src/tables/stock/StockTrackingTable.tsx:59 +#: src/tables/stock/StockTrackingTable.tsx:63 msgid "Quantity" msgstr "" @@ -1842,10 +2440,6 @@ msgstr "" #~ msgid "Required Part" #~ msgstr "Required Part" -#: src/components/tables/build/BuildLineTable.tsx:152 -#~ msgid "Required Quantity" -#~ msgstr "Required Quantity" - #: src/components/tables/build/BuildOrderTable.tsx:52 #~ msgid "Progress" #~ msgstr "Progress" @@ -2126,14 +2720,6 @@ msgstr "" #~ msgid "user deleted" #~ msgstr "user deleted" -#: src/components/tables/settings/UserTable.tsx:168 -#~ msgid "First Name" -#~ msgstr "First Name" - -#: src/components/tables/settings/UserTable.tsx:173 -#~ msgid "Last Name" -#~ msgstr "Last Name" - #: src/components/tables/stock/StockItemTable.tsx:247 #~ msgid "Test Filter" #~ msgstr "Test Filter" @@ -2146,36 +2732,21 @@ msgstr "" #~ msgid "Stock location updated" #~ msgstr "Stock location updated" -#: src/components/widgets/DisplayWidget.tsx:11 -#: src/pages/Index/Settings/AccountSettings/DisplaySettingsPanel.tsx:17 -msgid "Display Settings" -msgstr "" - -#: src/components/widgets/DisplayWidget.tsx:15 -#: src/pages/Index/Settings/AccountSettings/DisplaySettingsPanel.tsx:23 -msgid "Color Mode" -msgstr "" - -#: src/components/widgets/DisplayWidget.tsx:21 -#: src/pages/Index/Settings/AccountSettings/DisplaySettingsPanel.tsx:33 -msgid "Language" -msgstr "" - #: src/components/widgets/FeedbackWidget.tsx:19 -msgid "Something is new: Platform UI" -msgstr "" +#~ msgid "Something is new: Platform UI" +#~ msgstr "Something is new: Platform UI" #: src/components/widgets/FeedbackWidget.tsx:21 -msgid "We are building a new UI with a modern stack. What you currently see is not fixed and will be redesigned but demonstrates the UI/UX possibilities we will have going forward." -msgstr "" +#~ msgid "We are building a new UI with a modern stack. What you currently see is not fixed and will be redesigned but demonstrates the UI/UX possibilities we will have going forward." +#~ msgstr "We are building a new UI with a modern stack. What you currently see is not fixed and will be redesigned but demonstrates the UI/UX possibilities we will have going forward." #: src/components/widgets/FeedbackWidget.tsx:32 -msgid "Provide Feedback" -msgstr "" +#~ msgid "Provide Feedback" +#~ msgstr "Provide Feedback" #: src/components/widgets/GetStartedWidget.tsx:11 -msgid "Getting started" -msgstr "" +#~ msgid "Getting started" +#~ msgstr "Getting started" #: src/components/widgets/MarkdownEditor.tsx:108 #~ msgid "Failed to upload image" @@ -2186,28 +2757,24 @@ msgstr "" #~ msgstr "Notes saved" #: src/components/widgets/WidgetLayout.tsx:166 -msgid "Layout" -msgstr "" +#~ msgid "Layout" +#~ msgstr "Layout" #: src/components/widgets/WidgetLayout.tsx:172 -msgid "Reset Layout" -msgstr "" +#~ msgid "Reset Layout" +#~ msgstr "Reset Layout" #: src/components/widgets/WidgetLayout.tsx:185 -msgid "Stop Edit" -msgstr "" - -#: src/components/widgets/WidgetLayout.tsx:185 -msgid "Edit Layout" -msgstr "" +#~ msgid "Stop Edit" +#~ msgstr "Stop Edit" #: src/components/widgets/WidgetLayout.tsx:191 -msgid "Appearance" -msgstr "" +#~ msgid "Appearance" +#~ msgstr "Appearance" #: src/components/widgets/WidgetLayout.tsx:203 -msgid "Show Boxes" -msgstr "" +#~ msgid "Show Boxes" +#~ msgstr "Show Boxes" #: src/contexts/LanguageContext.tsx:20 msgid "Arabic" @@ -2286,201 +2853,175 @@ msgid "Korean" msgstr "" #: src/contexts/LanguageContext.tsx:39 -msgid "Latvian" +msgid "Lithuanian" msgstr "" #: src/contexts/LanguageContext.tsx:40 -msgid "Dutch" +msgid "Latvian" msgstr "" #: src/contexts/LanguageContext.tsx:41 -msgid "Norwegian" +msgid "Dutch" msgstr "" #: src/contexts/LanguageContext.tsx:42 -msgid "Polish" +msgid "Norwegian" msgstr "" #: src/contexts/LanguageContext.tsx:43 -msgid "Portuguese" +msgid "Polish" msgstr "" #: src/contexts/LanguageContext.tsx:44 -msgid "Portuguese (Brazilian)" +msgid "Portuguese" msgstr "" #: src/contexts/LanguageContext.tsx:45 -msgid "Romanian" +msgid "Portuguese (Brazilian)" msgstr "" #: src/contexts/LanguageContext.tsx:46 -msgid "Russian" +msgid "Romanian" msgstr "" #: src/contexts/LanguageContext.tsx:47 -msgid "Slovak" +msgid "Russian" msgstr "" #: src/contexts/LanguageContext.tsx:48 -msgid "Slovenian" +msgid "Slovak" msgstr "" #: src/contexts/LanguageContext.tsx:49 -msgid "Swedish" +msgid "Slovenian" msgstr "" #: src/contexts/LanguageContext.tsx:50 -msgid "Thai" +msgid "Swedish" msgstr "" #: src/contexts/LanguageContext.tsx:51 -msgid "Turkish" +msgid "Thai" msgstr "" #: src/contexts/LanguageContext.tsx:52 -msgid "Ukrainian" +msgid "Turkish" msgstr "" #: src/contexts/LanguageContext.tsx:53 -msgid "Vietnamese" +msgid "Ukrainian" msgstr "" #: src/contexts/LanguageContext.tsx:54 -msgid "Chinese (Simplified)" +msgid "Vietnamese" msgstr "" #: src/contexts/LanguageContext.tsx:55 +msgid "Chinese (Simplified)" +msgstr "" + +#: src/contexts/LanguageContext.tsx:56 msgid "Chinese (Traditional)" msgstr "" +#: src/defaults/actions.tsx:18 +msgid "Go to the InvenTree dashboard" +msgstr "" + #: src/defaults/actions.tsx:18 #: src/defaults/links.tsx:27 #: src/defaults/menuItems.tsx:9 -msgid "Home" -msgstr "" +#~ msgid "Home" +#~ msgstr "Home" #: src/defaults/actions.tsx:25 -#: src/defaults/links.tsx:28 -#: src/defaults/menuItems.tsx:28 -#: src/pages/Index/Dashboard.tsx:19 -#: src/pages/Index/Settings/UserSettings.tsx:46 -msgid "Dashboard" -msgstr "" - -#: src/defaults/actions.tsx:26 -msgid "Go to the InvenTree dashboard" -msgstr "" - -#: src/defaults/actions.tsx:33 msgid "Visit the documentation to learn more about InvenTree" msgstr "" -#: src/defaults/actions.tsx:39 -#: src/defaults/links.tsx:98 -#: src/defaults/links.tsx:128 +#: src/defaults/actions.tsx:31 +#: src/defaults/links.tsx:92 +#: src/defaults/links.tsx:124 msgid "About InvenTree" msgstr "" -#: src/defaults/actions.tsx:40 -#: src/defaults/links.tsx:129 +#: src/defaults/actions.tsx:32 msgid "About the InvenTree org" msgstr "" -#: src/defaults/actions.tsx:46 +#: src/defaults/actions.tsx:38 msgid "Server Information" msgstr "" -#: src/defaults/actions.tsx:47 -#: src/defaults/links.tsx:123 +#: src/defaults/actions.tsx:39 +#: src/defaults/links.tsx:118 msgid "About this Inventree instance" msgstr "" -#: src/defaults/actions.tsx:53 -#: src/defaults/links.tsx:111 +#: src/defaults/actions.tsx:45 +#: src/defaults/links.tsx:105 +#: src/defaults/links.tsx:131 msgid "License Information" msgstr "" -#: src/defaults/actions.tsx:54 -#: src/defaults/links.tsx:135 +#: src/defaults/actions.tsx:46 msgid "Licenses for dependencies of the service" msgstr "" -#: src/defaults/actions.tsx:61 +#: src/defaults/actions.tsx:52 +msgid "Open Navigation" +msgstr "" + +#: src/defaults/actions.tsx:53 msgid "Open the main navigation menu" msgstr "" -#: src/defaults/actions.tsx:72 +#: src/defaults/actions.tsx:64 msgid "Go to the Admin Center" msgstr "" -#: src/defaults/dashboardItems.tsx:15 -msgid "Subscribed Parts" -msgstr "" - -#: src/defaults/dashboardItems.tsx:22 -msgid "Subscribed Categories" -msgstr "" - #: src/defaults/dashboardItems.tsx:29 -msgid "Latest Parts" -msgstr "" +#~ msgid "Latest Parts" +#~ msgstr "Latest Parts" #: src/defaults/dashboardItems.tsx:36 -msgid "BOM Waiting Validation" -msgstr "" +#~ msgid "BOM Waiting Validation" +#~ msgstr "BOM Waiting Validation" #: src/defaults/dashboardItems.tsx:43 -msgid "Recently Updated" -msgstr "" - -#: src/defaults/dashboardItems.tsx:50 -#: src/tables/part/PartTable.tsx:238 -msgid "Low Stock" -msgstr "" +#~ msgid "Recently Updated" +#~ msgstr "Recently Updated" #: src/defaults/dashboardItems.tsx:57 -msgid "Depleted Stock" -msgstr "" +#~ msgid "Depleted Stock" +#~ msgstr "Depleted Stock" #: src/defaults/dashboardItems.tsx:64 -msgid "Required for Build Orders" -msgstr "" +#~ msgid "Required for Build Orders" +#~ msgstr "Required for Build Orders" #: src/defaults/dashboardItems.tsx:71 -msgid "Expired Stock" -msgstr "" +#~ msgid "Expired Stock" +#~ msgstr "Expired Stock" #: src/defaults/dashboardItems.tsx:78 -msgid "Stale Stock" -msgstr "" +#~ msgid "Stale Stock" +#~ msgstr "Stale Stock" #: src/defaults/dashboardItems.tsx:85 -msgid "Build Orders In Progress" -msgstr "" - -#: src/defaults/dashboardItems.tsx:92 -msgid "Overdue Build Orders" -msgstr "" +#~ msgid "Build Orders In Progress" +#~ msgstr "Build Orders In Progress" #: src/defaults/dashboardItems.tsx:99 -msgid "Outstanding Purchase Orders" -msgstr "" - -#: src/defaults/dashboardItems.tsx:106 -msgid "Overdue Purchase Orders" -msgstr "" +#~ msgid "Outstanding Purchase Orders" +#~ msgstr "Outstanding Purchase Orders" #: src/defaults/dashboardItems.tsx:113 -msgid "Outstanding Sales Orders" -msgstr "" - -#: src/defaults/dashboardItems.tsx:120 -msgid "Overdue Sales Orders" -msgstr "" +#~ msgid "Outstanding Sales Orders" +#~ msgstr "Outstanding Sales Orders" #: src/defaults/dashboardItems.tsx:127 -msgid "Current News" -msgstr "" +#~ msgid "Current News" +#~ msgstr "Current News" #: src/defaults/defaultHostList.tsx:8 #~ msgid "InvenTree Demo" @@ -2490,98 +3031,81 @@ msgstr "" #~ msgid "Local Server" #~ msgstr "Local Server" -#: src/defaults/links.tsx:12 -#: src/pages/company/CompanyDetail.tsx:96 -msgid "Website" -msgstr "Sitio web" - #: src/defaults/links.tsx:17 -msgid "GitHub" -msgstr "" +#~ msgid "GitHub" +#~ msgstr "GitHub" #: src/defaults/links.tsx:22 -msgid "Demo" -msgstr "" - -#: src/defaults/links.tsx:33 -#: src/defaults/menuItems.tsx:48 -#: src/pages/company/ManufacturerDetail.tsx:9 -#: src/pages/company/ManufacturerPartDetail.tsx:263 -#: src/pages/company/SupplierDetail.tsx:9 -#: src/pages/company/SupplierPartDetail.tsx:347 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:483 -#: src/pages/purchasing/PurchasingIndex.tsx:60 -msgid "Purchasing" -msgstr "" - -#: src/defaults/links.tsx:37 -#: src/defaults/menuItems.tsx:53 -#: src/pages/company/CustomerDetail.tsx:9 -#: src/pages/sales/ReturnOrderDetail.tsx:474 -#: src/pages/sales/SalesIndex.tsx:53 -#: src/pages/sales/SalesOrderDetail.tsx:525 -msgid "Sales" -msgstr "" +#~ msgid "Demo" +#~ msgstr "Demo" #: src/defaults/links.tsx:41 #: src/defaults/menuItems.tsx:71 #: src/pages/Index/Playground.tsx:217 -msgid "Playground" -msgstr "" +#~ msgid "Playground" +#~ msgstr "Playground" -#: src/defaults/links.tsx:55 -msgid "Getting Started" -msgstr "" - -#: src/defaults/links.tsx:56 -msgid "Getting started with InvenTree" -msgstr "" - -#: src/defaults/links.tsx:62 +#: src/defaults/links.tsx:45 msgid "API" msgstr "" -#: src/defaults/links.tsx:63 +#: src/defaults/links.tsx:48 msgid "InvenTree API documentation" msgstr "" -#: src/defaults/links.tsx:68 +#: src/defaults/links.tsx:52 msgid "Developer Manual" msgstr "" -#: src/defaults/links.tsx:69 +#: src/defaults/links.tsx:55 msgid "InvenTree developer manual" msgstr "" -#: src/defaults/links.tsx:74 +#: src/defaults/links.tsx:59 msgid "FAQ" msgstr "" -#: src/defaults/links.tsx:75 +#: src/defaults/links.tsx:62 msgid "Frequently asked questions" msgstr "" +#: src/defaults/links.tsx:66 +msgid "GitHub Repository" +msgstr "" + +#: src/defaults/links.tsx:69 +msgid "InvenTree source code on GitHub" +msgstr "" + #: src/defaults/links.tsx:76 #~ msgid "Instance" #~ msgstr "Instance" +#: src/defaults/links.tsx:79 +#: src/defaults/links.tsx:117 +msgid "System Information" +msgstr "" + #: src/defaults/links.tsx:83 #~ msgid "InvenTree" #~ msgstr "InvenTree" -#: src/defaults/links.tsx:85 -#: src/defaults/links.tsx:122 -msgid "System Information" -msgstr "" - #: src/defaults/links.tsx:117 #~ msgid "Licenses for packages used by InvenTree" #~ msgstr "Licenses for packages used by InvenTree" -#: src/defaults/links.tsx:134 -msgid "Licenses" +#: src/defaults/links.tsx:125 +msgid "About the InvenTree Project" msgstr "" +#: src/defaults/links.tsx:132 +msgid "Licenses for dependencies of the InvenTree software" +msgstr "" + +#: src/defaults/links.tsx:134 +#~ msgid "Licenses" +#~ msgstr "Licenses" + #: src/defaults/menuItems.tsx:7 #~ msgid "Open sourcea" #~ msgstr "Open sourcea" @@ -2607,8 +3131,8 @@ msgstr "" #~ msgstr "Profile page" #: src/defaults/menuItems.tsx:17 -msgid "User attributes and design settings." -msgstr "" +#~ msgid "User attributes and design settings." +#~ msgstr "User attributes and design settings." #: src/defaults/menuItems.tsx:21 #~ msgid "Free for everyone" @@ -2619,8 +3143,8 @@ msgstr "" #~ msgstr "The fluid of Smeargle’s tail secretions changes" #: src/defaults/menuItems.tsx:23 -msgid "View for interactive scanning and multiple actions." -msgstr "" +#~ msgid "View for interactive scanning and multiple actions." +#~ msgstr "View for interactive scanning and multiple actions." #: src/defaults/menuItems.tsx:24 #~ msgid "The fluid of Smeargle’s tail secretions changes in the intensity" @@ -2698,51 +3222,130 @@ msgstr "" #~ msgid "Are you sure you want to delete this attachment?" #~ msgstr "Are you sure you want to delete this attachment?" -#: src/forms/BuildForms.tsx:158 -msgid "Next serial number" +#: src/forms/BuildForms.tsx:248 +#~ msgid "Remove output" +#~ msgstr "Remove output" + +#: src/forms/BuildForms.tsx:269 +#: src/tables/build/BuildAllocatedStockTable.tsx:147 +#: src/tables/build/BuildOrderTestTable.tsx:177 +#: src/tables/build/BuildOrderTestTable.tsx:201 +#: src/tables/build/BuildOutputTable.tsx:460 +msgid "Build Output" msgstr "" -#: src/forms/BuildForms.tsx:162 -msgid "Latest serial number" +#: src/forms/BuildForms.tsx:269 +#: src/forms/BuildForms.tsx:337 +#: src/forms/BuildForms.tsx:385 +#: src/tables/build/BuildLineTable.tsx:89 +msgid "Batch" msgstr "" -#: src/forms/BuildForms.tsx:234 -msgid "Remove output" +#: src/forms/BuildForms.tsx:269 +#: src/forms/BuildForms.tsx:337 +#: src/forms/BuildForms.tsx:385 +#: src/forms/PurchaseOrderForms.tsx:603 +#: src/pages/build/BuildDetail.tsx:104 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:142 +#: src/pages/sales/ReturnOrderDetail.tsx:113 +#: src/pages/sales/SalesOrderDetail.tsx:122 +#: src/tables/build/BuildOrderTable.tsx:125 +#: src/tables/machine/MachineListTable.tsx:336 +#: src/tables/part/PartPurchaseOrdersTable.tsx:37 +#: src/tables/purchasing/PurchaseOrderTable.tsx:58 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:157 +#: src/tables/sales/ReturnOrderTable.tsx:56 +#: src/tables/sales/SalesOrderTable.tsx:56 +#: src/tables/settings/CustomStateTable.tsx:57 +#: src/tables/settings/ImportSessionTable.tsx:114 +#: src/tables/stock/StockItemTable.tsx:298 +#: src/tables/stock/StockTrackingTable.tsx:56 +msgid "Status" msgstr "" -#: src/forms/BuildForms.tsx:316 +#: src/forms/BuildForms.tsx:289 msgid "Complete Build Outputs" msgstr "" -#: src/forms/BuildForms.tsx:320 +#: src/forms/BuildForms.tsx:292 msgid "Build outputs have been completed" msgstr "" -#: src/forms/BuildForms.tsx:389 +#: src/forms/BuildForms.tsx:353 msgid "Scrap Build Outputs" msgstr "" -#: src/forms/BuildForms.tsx:393 +#: src/forms/BuildForms.tsx:356 msgid "Build outputs have been scrapped" msgstr "" -#: src/forms/BuildForms.tsx:425 -#: src/forms/BuildForms.tsx:449 +#: src/forms/BuildForms.tsx:393 msgid "Cancel Build Outputs" msgstr "" -#: src/forms/BuildForms.tsx:426 -msgid "Selected build outputs will be deleted" +#: src/forms/BuildForms.tsx:396 +msgid "Build outputs have been cancelled" msgstr "" -#: src/forms/BuildForms.tsx:453 -msgid "Build outputs have been cancelled" +#: src/forms/BuildForms.tsx:408 +#~ msgid "Selected build outputs will be deleted" +#~ msgstr "Selected build outputs will be deleted" + +#: src/forms/BuildForms.tsx:470 +#~ msgid "Remove line" +#~ msgstr "Remove line" + +#: src/forms/BuildForms.tsx:515 +#: src/forms/SalesOrderForms.tsx:248 +#: src/tables/build/BuildLineTable.tsx:174 +#: src/tables/sales/SalesOrderLineItemTable.tsx:276 +#: src/tables/stock/StockItemTable.tsx:309 +msgid "Allocated" +msgstr "" + +#: src/forms/BuildForms.tsx:545 +#: src/forms/SalesOrderForms.tsx:239 +#: src/pages/build/BuildDetail.tsx:208 +msgid "Source Location" +msgstr "" + +#: src/forms/BuildForms.tsx:546 +#: src/forms/SalesOrderForms.tsx:240 +msgid "Select the source location for the stock allocation" +msgstr "" + +#: src/forms/BuildForms.tsx:566 +#: src/forms/SalesOrderForms.tsx:274 +#: src/tables/build/BuildLineTable.tsx:442 +#: src/tables/build/BuildLineTable.tsx:569 +#: src/tables/build/BuildLineTable.tsx:642 +#: src/tables/sales/SalesOrderLineItemTable.tsx:302 +#: src/tables/sales/SalesOrderLineItemTable.tsx:326 +msgid "Allocate Stock" +msgstr "" + +#: src/forms/BuildForms.tsx:569 +#: src/forms/SalesOrderForms.tsx:279 +msgid "Stock items allocated" msgstr "" #: src/forms/CompanyForms.tsx:150 #~ msgid "Company updated" #~ msgstr "Company updated" +#: src/forms/PartForms.tsx:67 +#: src/forms/PartForms.tsx:154 +#: src/pages/part/CategoryDetail.tsx:117 +#: src/pages/part/PartDetail.tsx:384 +#: src/tables/part/PartCategoryTable.tsx:90 +#: src/tables/part/PartTable.tsx:294 +msgid "Subscribed" +msgstr "" + +#: src/forms/PartForms.tsx:68 +msgid "Subscribe to notifications for this part" +msgstr "" + #: src/forms/PartForms.tsx:106 #~ msgid "Create Part" #~ msgstr "Create Part" @@ -2751,191 +3354,190 @@ msgstr "" #~ msgid "Part created" #~ msgstr "Part created" -#: src/forms/PartForms.tsx:124 -msgid "Parent part category" -msgstr "" - #: src/forms/PartForms.tsx:129 #~ msgid "Part updated" #~ msgstr "Part updated" -#: src/forms/PurchaseOrderForms.tsx:300 +#: src/forms/PartForms.tsx:140 +msgid "Parent part category" +msgstr "" + +#: src/forms/PartForms.tsx:155 +msgid "Subscribe to notifications for this category" +msgstr "" + +#: src/forms/PurchaseOrderForms.tsx:314 +msgid "Assign Batch Code and Serial Numbers" +msgstr "" + +#: src/forms/PurchaseOrderForms.tsx:316 +msgid "Assign Batch Code" +msgstr "" + +#: src/forms/PurchaseOrderForms.tsx:336 msgid "Choose Location" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:308 +#: src/forms/PurchaseOrderForms.tsx:344 msgid "Item Destination selected" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:317 +#: src/forms/PurchaseOrderForms.tsx:353 msgid "Part category default location selected" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:327 +#: src/forms/PurchaseOrderForms.tsx:363 msgid "Received stock location selected" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:332 +#: src/forms/PurchaseOrderForms.tsx:368 msgid "Default location selected" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:343 -#: src/forms/PurchaseOrderForms.tsx:435 -msgid "Scan Barcode" -msgstr "" +#: src/forms/PurchaseOrderForms.tsx:421 +#~ msgid "Assign Batch Code{0}" +#~ msgstr "Assign Batch Code{0}" -#: src/forms/PurchaseOrderForms.tsx:388 +#: src/forms/PurchaseOrderForms.tsx:427 msgid "Set Location" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:396 -msgid "Assign Batch Code{0}" -msgstr "" - -#: src/forms/PurchaseOrderForms.tsx:405 -#: src/forms/StockForms.tsx:420 +#: src/forms/PurchaseOrderForms.tsx:442 +#: src/forms/StockForms.tsx:539 msgid "Adjust Packaging" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:412 -msgid "Change Status" -msgstr "" - -#: src/forms/PurchaseOrderForms.tsx:418 -msgid "Add Note" -msgstr "" - #: src/forms/PurchaseOrderForms.tsx:444 #: src/forms/StockForms.tsx:428 -msgid "Remove item from list" +#~ msgid "Remove item from list" +#~ msgstr "Remove item from list" + +#: src/forms/PurchaseOrderForms.tsx:450 +msgid "Change Status" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:471 -#: src/forms/StockForms.tsx:499 -#: src/forms/StockForms.tsx:533 -#: src/forms/StockForms.tsx:562 -#: src/forms/StockForms.tsx:590 -#: src/forms/StockForms.tsx:621 -#: src/forms/StockForms.tsx:656 -#: src/forms/StockForms.tsx:698 -#: src/forms/StockForms.tsx:734 -#: src/pages/stock/StockDetail.tsx:181 -#: src/tables/ColumnRenderers.tsx:49 -#: src/tables/stock/StockTrackingTable.tsx:85 +#: src/forms/PurchaseOrderForms.tsx:456 +msgid "Add Note" +msgstr "" + +#: src/forms/PurchaseOrderForms.tsx:503 +#: src/forms/StockForms.tsx:614 +#: src/forms/StockForms.tsx:651 +#: src/forms/StockForms.tsx:677 +#: src/forms/StockForms.tsx:705 +#: src/forms/StockForms.tsx:736 +#: src/forms/StockForms.tsx:771 +#: src/forms/StockForms.tsx:813 +#: src/forms/StockForms.tsx:851 +#: src/pages/stock/StockDetail.tsx:202 +#: src/tables/ColumnRenderers.tsx:60 +#: src/tables/stock/StockTrackingTable.tsx:89 msgid "Location" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:486 +#: src/forms/PurchaseOrderForms.tsx:518 msgid "Store at default location" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:499 +#: src/forms/PurchaseOrderForms.tsx:533 msgid "Store at line item destination" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:509 +#: src/forms/PurchaseOrderForms.tsx:545 msgid "Store with already received stock" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:524 -#: src/pages/build/BuildDetail.tsx:219 -#: src/pages/stock/StockDetail.tsx:162 -#: src/pages/stock/StockDetail.tsx:599 -#: src/tables/build/BuildAllocatedStockTable.tsx:109 -#: src/tables/build/BuildOrderTestTable.tsx:188 -#: src/tables/sales/SalesOrderAllocationTable.tsx:87 +#: src/forms/PurchaseOrderForms.tsx:566 +#: src/pages/build/BuildDetail.tsx:222 +#: src/pages/stock/StockDetail.tsx:185 +#: src/pages/stock/StockDetail.tsx:793 +#: src/tables/build/BuildAllocatedStockTable.tsx:130 +#: src/tables/build/BuildOrderTestTable.tsx:189 +#: src/tables/build/BuildOutputTable.tsx:86 +#: src/tables/sales/SalesOrderAllocationTable.tsx:113 msgid "Batch Code" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:535 -msgid "Serial numbers" +#: src/forms/PurchaseOrderForms.tsx:566 +#~ msgid "Serial numbers" +#~ msgstr "Serial numbers" + +#: src/forms/PurchaseOrderForms.tsx:567 +msgid "Enter batch code for received items" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:544 -#: src/forms/StockForms.tsx:443 -#: src/pages/company/SupplierPartDetail.tsx:156 -#: src/pages/company/SupplierPartDetail.tsx:207 -#: src/pages/stock/StockDetail.tsx:244 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:192 +#: src/forms/PurchaseOrderForms.tsx:579 +#: src/forms/StockForms.tsx:152 +msgid "Serial Numbers" +msgstr "" + +#: src/forms/PurchaseOrderForms.tsx:580 +msgid "Enter serial numbers for received items" +msgstr "" + +#: src/forms/PurchaseOrderForms.tsx:590 +#: src/forms/StockForms.tsx:556 +#: src/pages/company/SupplierPartDetail.tsx:168 +#: src/pages/company/SupplierPartDetail.tsx:219 +#: src/pages/stock/StockDetail.tsx:320 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:198 msgid "Packaging" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:556 -#: src/pages/build/BuildDetail.tsx:109 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:148 -#: src/pages/sales/ReturnOrderDetail.tsx:121 -#: src/pages/sales/SalesOrderDetail.tsx:127 -#: src/tables/build/BuildOrderTable.tsx:122 -#: src/tables/machine/MachineListTable.tsx:335 -#: src/tables/part/PartPurchaseOrdersTable.tsx:37 -#: src/tables/purchasing/PurchaseOrderTable.tsx:55 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:132 -#: src/tables/sales/ReturnOrderTable.tsx:46 -#: src/tables/sales/SalesOrderTable.tsx:53 -#: src/tables/settings/ImportSessionTable.tsx:115 -#: src/tables/stock/StockItemTable.tsx:294 -#: src/tables/stock/StockTrackingTable.tsx:52 -msgid "Status" -msgstr "" - -#: src/forms/PurchaseOrderForms.tsx:564 -#: src/pages/company/SupplierPartDetail.tsx:110 -#: src/tables/ColumnRenderers.tsx:132 +#: src/forms/PurchaseOrderForms.tsx:612 +#: src/pages/company/SupplierPartDetail.tsx:115 +#: src/tables/ColumnRenderers.tsx:143 msgid "Note" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/pages/company/SupplierPartDetail.tsx:128 -#: src/tables/purchasing/SupplierPriceBreakTable.tsx:57 -msgid "SKU" -msgstr "" - -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/tables/part/PartPurchaseOrdersTable.tsx:120 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:178 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:127 -msgid "Received" -msgstr "" - -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/forms/StockForms.tsx:499 -#: src/forms/StockForms.tsx:533 -#: src/forms/StockForms.tsx:562 -#: src/forms/StockForms.tsx:590 -#: src/forms/StockForms.tsx:621 -#: src/forms/StockForms.tsx:656 -#: src/forms/StockForms.tsx:698 -#: src/forms/StockForms.tsx:734 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:413 -#: src/tables/RowActions.tsx:113 -msgid "Actions" -msgstr "" - -#: src/forms/PurchaseOrderForms.tsx:655 -msgid "Receive Line Items" -msgstr "" - #: src/forms/PurchaseOrderForms.tsx:658 #~ msgid "Receive line items" #~ msgstr "Receive line items" -#: src/forms/StockForms.tsx:104 -msgid "Add given quantity as packs instead of individual items" +#: src/forms/PurchaseOrderForms.tsx:689 +#: src/pages/company/SupplierPartDetail.tsx:133 +#: src/tables/purchasing/SupplierPriceBreakTable.tsx:57 +msgid "SKU" +msgstr "" + +#: src/forms/PurchaseOrderForms.tsx:689 +#: src/tables/part/PartPurchaseOrdersTable.tsx:126 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:184 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:247 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:152 +msgid "Received" +msgstr "" + +#: src/forms/PurchaseOrderForms.tsx:701 +msgid "Receive Line Items" +msgstr "" + +#: src/forms/ReturnOrderForms.tsx:201 +msgid "Receive Items" +msgstr "" + +#: src/forms/ReturnOrderForms.tsx:208 +msgid "Item received into stock" +msgstr "" + +#: src/forms/StockForms.tsx:80 +#: src/hooks/UsePlaceholder.tsx:57 +msgid "Next serial number" msgstr "" #: src/forms/StockForms.tsx:110 #~ msgid "Create Stock Item" #~ msgstr "Create Stock Item" -#: src/forms/StockForms.tsx:117 +#: src/forms/StockForms.tsx:131 +msgid "Add given quantity as packs instead of individual items" +msgstr "" + +#: src/forms/StockForms.tsx:145 msgid "Enter initial quantity for this stock item" msgstr "" -#: src/forms/StockForms.tsx:124 -msgid "Serial Numbers" -msgstr "" - -#: src/forms/StockForms.tsx:125 +#: src/forms/StockForms.tsx:154 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" @@ -2943,82 +3545,102 @@ msgstr "" #~ msgid "Stock item updated" #~ msgstr "Stock item updated" -#: src/forms/StockForms.tsx:179 -#: src/pages/stock/StockDetail.tsx:434 -#: src/tables/stock/StockItemTable.tsx:417 -#: src/tables/stock/StockItemTable.tsx:535 +#: src/forms/StockForms.tsx:169 +#: src/pages/stock/StockDetail.tsx:131 +msgid "Stock Status" +msgstr "" + +#: src/forms/StockForms.tsx:218 +#: src/pages/stock/StockDetail.tsx:554 +#: src/tables/stock/StockItemTable.tsx:421 +#: src/tables/stock/StockItemTable.tsx:541 msgid "Add Stock Item" msgstr "" -#: src/forms/StockForms.tsx:362 +#: src/forms/StockForms.tsx:262 +msgid "Select the part to install" +msgstr "" + +#: src/forms/StockForms.tsx:480 msgid "Loading..." msgstr "" -#: src/forms/StockForms.tsx:408 +#: src/forms/StockForms.tsx:527 msgid "Move to default location" msgstr "" -#: src/forms/StockForms.tsx:499 -#: src/forms/StockForms.tsx:533 -#: src/forms/StockForms.tsx:562 -#: src/forms/StockForms.tsx:590 -#: src/forms/StockForms.tsx:621 -#: src/forms/StockForms.tsx:656 -#: src/forms/StockForms.tsx:698 -#: src/forms/StockForms.tsx:734 -#: src/pages/part/PartDetail.tsx:230 -#: src/pages/part/PartDetail.tsx:843 -#: src/tables/stock/StockItemTable.tsx:325 +#: src/forms/StockForms.tsx:614 +#: src/forms/StockForms.tsx:651 +#: src/forms/StockForms.tsx:677 +#: src/forms/StockForms.tsx:705 +#: src/forms/StockForms.tsx:736 +#: src/forms/StockForms.tsx:771 +#: src/forms/StockForms.tsx:813 +#: src/forms/StockForms.tsx:851 +#: src/pages/part/PartDetail.tsx:251 +#: src/pages/part/PartDetail.tsx:875 +#: src/tables/stock/StockItemTable.tsx:329 msgid "In Stock" msgstr "En Stock" -#: src/forms/StockForms.tsx:499 +#: src/forms/StockForms.tsx:614 msgid "Move" msgstr "" -#: src/forms/StockForms.tsx:562 -#: src/pages/stock/StockDetail.tsx:518 -#: src/tables/stock/StockItemTestResultTable.tsx:328 +#: src/forms/StockForms.tsx:677 +#: src/pages/stock/StockDetail.tsx:681 +#: src/tables/stock/StockItemTestResultTable.tsx:346 msgid "Add" msgstr "Agregar" -#: src/forms/StockForms.tsx:590 -#: src/pages/Index/Scan.tsx:266 -#: src/pages/stock/StockDetail.tsx:508 +#: src/forms/StockForms.tsx:705 +#: src/pages/Index/Scan.tsx:280 +#: src/pages/stock/StockDetail.tsx:670 msgid "Count" msgstr "" -#: src/forms/StockForms.tsx:835 +#: src/forms/StockForms.tsx:953 +#: src/pages/stock/StockDetail.tsx:682 +#: src/tables/stock/StockItemTable.tsx:454 msgid "Add Stock" msgstr "" -#: src/forms/StockForms.tsx:844 +#: src/forms/StockForms.tsx:962 +#: src/pages/stock/StockDetail.tsx:691 +#: src/tables/stock/StockItemTable.tsx:463 msgid "Remove Stock" msgstr "" -#: src/forms/StockForms.tsx:853 -#: src/pages/part/PartDetail.tsx:1017 +#: src/forms/StockForms.tsx:971 +#: src/pages/part/PartDetail.tsx:1039 +#: src/pages/stock/StockDetail.tsx:712 +#: src/tables/stock/StockItemTable.tsx:483 msgid "Transfer Stock" msgstr "" -#: src/forms/StockForms.tsx:862 -#: src/pages/part/PartDetail.tsx:1006 +#: src/forms/StockForms.tsx:980 +#: src/pages/part/PartDetail.tsx:1028 +#: src/pages/stock/LocationDetail.tsx:314 +#: src/pages/stock/LocationDetail.tsx:318 +#: src/tables/stock/StockItemTable.tsx:472 +#: src/tables/stock/StockItemTable.tsx:476 msgid "Count Stock" msgstr "" -#: src/forms/StockForms.tsx:871 +#: src/forms/StockForms.tsx:989 msgid "Change Stock Status" msgstr "" -#: src/forms/StockForms.tsx:880 +#: src/forms/StockForms.tsx:998 msgid "Merge Stock" msgstr "" -#: src/forms/StockForms.tsx:899 +#: src/forms/StockForms.tsx:1017 +#: src/tables/stock/StockItemTable.tsx:530 msgid "Delete Stock Items" msgstr "" -#: src/forms/StockForms.tsx:906 +#: src/forms/StockForms.tsx:1024 msgid "Parent stock location" msgstr "" @@ -3042,11 +3664,11 @@ msgstr "" #~ msgid "You have been logged out" #~ msgstr "You have been logged out" -#: src/functions/auth.tsx:117 +#: src/functions/auth.tsx:128 msgid "Logged Out" msgstr "" -#: src/functions/auth.tsx:118 +#: src/functions/auth.tsx:129 msgid "Successfully logged out" msgstr "" @@ -3062,20 +3684,20 @@ msgstr "" #~ msgid "Found an existing login - welcome back!" #~ msgstr "Found an existing login - welcome back!" -#: src/functions/auth.tsx:156 +#: src/functions/auth.tsx:167 msgid "Check your inbox for a reset link. This only works if you have an account. Check in spam too." msgstr "" -#: src/functions/auth.tsx:163 +#: src/functions/auth.tsx:174 #: src/pages/Auth/Set-Password.tsx:39 msgid "Reset failed" msgstr "" -#: src/functions/auth.tsx:194 +#: src/functions/auth.tsx:205 msgid "Logged In" msgstr "" -#: src/functions/auth.tsx:195 +#: src/functions/auth.tsx:206 msgid "Successfully logged in" msgstr "" @@ -3095,30 +3717,38 @@ msgstr "" #~ msgid "method parameter not supplied" #~ msgstr "method parameter not supplied" -#: src/functions/notifications.tsx:10 +#: src/functions/notifications.tsx:12 msgid "Not implemented" msgstr "" -#: src/functions/notifications.tsx:11 +#: src/functions/notifications.tsx:13 msgid "This feature is not yet implemented" msgstr "" -#: src/functions/notifications.tsx:21 -msgid "Permission denied" -msgstr "" +#: src/functions/notifications.tsx:24 +#~ msgid "Permission denied" +#~ msgstr "Permission denied" -#: src/functions/notifications.tsx:22 +#: src/functions/notifications.tsx:25 msgid "You do not have permission to perform this action" msgstr "" -#: src/functions/notifications.tsx:33 +#: src/functions/notifications.tsx:36 msgid "Invalid Return Code" msgstr "" -#: src/functions/notifications.tsx:34 +#: src/functions/notifications.tsx:37 msgid "Server returned status {returnCode}" msgstr "" +#: src/functions/notifications.tsx:47 +msgid "Timeout" +msgstr "" + +#: src/functions/notifications.tsx:48 +msgid "The request timed out" +msgstr "" + #: src/hooks/UseForm.tsx:88 msgid "Item Created" msgstr "" @@ -3135,20 +3765,24 @@ msgstr "" msgid "Are you sure you want to delete this item?" msgstr "" +#: src/hooks/UsePlaceholder.tsx:59 +msgid "Latest serial number" +msgstr "" + #: src/pages/Auth/Logged-In.tsx:22 msgid "Checking if you are already logged in" msgstr "" -#: src/pages/Auth/Login.tsx:31 -#: src/pages/Index/Scan.tsx:329 +#: src/pages/Auth/Login.tsx:35 +#: src/pages/Index/Scan.tsx:343 msgid "No selection" msgstr "" -#: src/pages/Auth/Login.tsx:87 +#: src/pages/Auth/Login.tsx:91 msgid "Welcome, log in below" msgstr "Bienvenido, inicia sesión a continuación" -#: src/pages/Auth/Login.tsx:89 +#: src/pages/Auth/Login.tsx:93 msgid "Register below" msgstr "" @@ -3162,8 +3796,8 @@ msgstr "" #: src/pages/Auth/Reset.tsx:41 #: src/pages/Auth/Set-Password.tsx:112 -msgid "Send mail" -msgstr "" +#~ msgid "Send mail" +#~ msgstr "Send mail" #: src/pages/Auth/Set-Password.tsx:30 msgid "Token invalid" @@ -3174,22 +3808,22 @@ msgid "You need to provide a valid token to set a new password. Check your inbox msgstr "" #: src/pages/Auth/Set-Password.tsx:49 -msgid "No token provided" -msgstr "" +#~ msgid "No token provided" +#~ msgstr "No token provided" #: src/pages/Auth/Set-Password.tsx:50 -msgid "You need to provide a token to set a new password. Check your inbox for a reset link." -msgstr "" +#~ msgid "You need to provide a token to set a new password. Check your inbox for a reset link." +#~ msgstr "You need to provide a token to set a new password. Check your inbox for a reset link." -#: src/pages/Auth/Set-Password.tsx:73 +#: src/pages/Auth/Set-Password.tsx:68 msgid "Password set" msgstr "" -#: src/pages/Auth/Set-Password.tsx:74 +#: src/pages/Auth/Set-Password.tsx:69 msgid "The password was set successfully. You can now login with your new password" msgstr "" -#: src/pages/Auth/Set-Password.tsx:101 +#: src/pages/Auth/Set-Password.tsx:96 msgid "Set new password" msgstr "" @@ -3206,20 +3840,20 @@ msgstr "" #~ msgstr "Sorry, an unexpected error has occurred." #: src/pages/Index/Dashboard.tsx:22 -msgid "Autoupdate" -msgstr "" +#~ msgid "Autoupdate" +#~ msgstr "Autoupdate" #: src/pages/Index/Dashboard.tsx:26 -msgid "This page is a replacement for the old start page with the same information. This page will be deprecated and replaced by the home page." -msgstr "" +#~ msgid "This page is a replacement for the old start page with the same information. This page will be deprecated and replaced by the home page." +#~ msgstr "This page is a replacement for the old start page with the same information. This page will be deprecated and replaced by the home page." #: src/pages/Index/Home.tsx:58 -msgid "Welcome to your Dashboard{0}" -msgstr "" +#~ msgid "Welcome to your Dashboard{0}" +#~ msgstr "Welcome to your Dashboard{0}" #: src/pages/Index/Playground.tsx:222 -msgid "This page is a showcase for the possibilities of Platform UI." -msgstr "" +#~ msgid "This page is a showcase for the possibilities of Platform UI." +#~ msgstr "This page is a showcase for the possibilities of Platform UI." #: src/pages/Index/Profile/Profile.tsx:30 #: src/pages/Index/Profile/Profile.tsx:141 @@ -3365,125 +3999,190 @@ msgstr "" msgid "Image Barcode" msgstr "" -#: src/pages/Index/Scan.tsx:247 +#: src/pages/Index/Scan.tsx:261 msgid "Selected elements are not known" msgstr "" -#: src/pages/Index/Scan.tsx:254 +#: src/pages/Index/Scan.tsx:268 msgid "Multiple object types selected" msgstr "" -#: src/pages/Index/Scan.tsx:261 +#: src/pages/Index/Scan.tsx:275 msgid "Actions for {0}" msgstr "" -#: src/pages/Index/Scan.tsx:282 +#: src/pages/Index/Scan.tsx:296 msgid "Scan Page" msgstr "" -#: src/pages/Index/Scan.tsx:285 +#: src/pages/Index/Scan.tsx:299 msgid "This page can be used for continuously scanning items and taking actions on them." msgstr "" -#: src/pages/Index/Scan.tsx:292 +#: src/pages/Index/Scan.tsx:306 msgid "Toggle Fullscreen" msgstr "" -#: src/pages/Index/Scan.tsx:305 +#: src/pages/Index/Scan.tsx:319 msgid "Select the input method you want to use to scan items." msgstr "" -#: src/pages/Index/Scan.tsx:307 +#: src/pages/Index/Scan.tsx:321 msgid "Input" msgstr "" -#: src/pages/Index/Scan.tsx:314 +#: src/pages/Index/Scan.tsx:328 msgid "Select input method" msgstr "" -#: src/pages/Index/Scan.tsx:315 +#: src/pages/Index/Scan.tsx:329 msgid "Nothing found" msgstr "" -#: src/pages/Index/Scan.tsx:323 +#: src/pages/Index/Scan.tsx:337 msgid "Depending on the selected parts actions will be shown here. Not all barcode types are supported currently." msgstr "" -#: src/pages/Index/Scan.tsx:325 +#: src/pages/Index/Scan.tsx:339 msgid "Action" msgstr "" -#: src/pages/Index/Scan.tsx:334 +#: src/pages/Index/Scan.tsx:348 msgid "{0} items selected" msgstr "" -#: src/pages/Index/Scan.tsx:337 +#: src/pages/Index/Scan.tsx:351 msgid "General Actions" msgstr "" -#: src/pages/Index/Scan.tsx:351 +#: src/pages/Index/Scan.tsx:365 msgid "Lookup part" msgstr "" -#: src/pages/Index/Scan.tsx:359 +#: src/pages/Index/Scan.tsx:373 msgid "Open Link" msgstr "" -#: src/pages/Index/Scan.tsx:375 +#: src/pages/Index/Scan.tsx:389 msgid "History is locally kept in this browser." msgstr "" -#: src/pages/Index/Scan.tsx:376 +#: src/pages/Index/Scan.tsx:390 msgid "The history is kept in this browser's local storage. So it won't be shared with other users or other devices but is persistent through reloads. You can select items in the history to perform actions on them. To add items, scan/enter them in the Input area." msgstr "" -#: src/pages/Index/Scan.tsx:378 +#: src/pages/Index/Scan.tsx:392 #: src/pages/Notifications.tsx:100 msgid "History" msgstr "" -#: src/pages/Index/Scan.tsx:384 +#: src/pages/Index/Scan.tsx:398 msgid "Delete History" msgstr "" -#: src/pages/Index/Scan.tsx:449 +#: src/pages/Index/Scan.tsx:463 msgid "No history" msgstr "" -#: src/pages/Index/Scan.tsx:467 +#: src/pages/Index/Scan.tsx:481 msgid "Item" msgstr "" -#: src/pages/Index/Scan.tsx:470 +#: src/pages/Index/Scan.tsx:484 msgid "Type" msgstr "" -#: src/pages/Index/Scan.tsx:473 +#: src/pages/Index/Scan.tsx:487 msgid "Source" msgstr "" -#: src/pages/Index/Scan.tsx:476 +#: src/pages/Index/Scan.tsx:490 msgid "Scanned at" msgstr "" -#: src/pages/Index/Scan.tsx:528 +#: src/pages/Index/Scan.tsx:547 msgid "Enter item serial or data" msgstr "" -#: src/pages/Index/Scan.tsx:540 +#: src/pages/Index/Scan.tsx:559 msgid "Add dummy item" msgstr "" +#: src/pages/Index/Scan.tsx:569 +msgid "Start scanning by selecting a camera and pressing the play button." +msgstr "" + +#: src/pages/Index/Scan.tsx:650 +msgid "Error while getting camera" +msgstr "" + +#: src/pages/Index/Scan.tsx:673 +msgid "Error while scanning" +msgstr "" + +#: src/pages/Index/Scan.tsx:687 +msgid "Error while stopping" +msgstr "" + +#: src/pages/Index/Scan.tsx:745 +msgid "Stop scanning" +msgstr "" + +#: src/pages/Index/Scan.tsx:754 +msgid "Start scanning" +msgstr "" + +#: src/pages/Index/Scan.tsx:763 +msgid "Scanning" +msgstr "" + +#: src/pages/Index/Scan.tsx:763 +msgid "Not scanning" +msgstr "" + +#: src/pages/Index/Scan.tsx:775 +msgid "Select Camera" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:28 +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:50 +msgid "Edit User Information" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:32 +msgid "User details updated" +msgstr "" + #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:41 -msgid "Account Details" +msgid "User Details" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:41 +#~ msgid "Account Details" +#~ msgstr "Account Details" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:44 +msgid "User Actions" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:48 +msgid "Edit User" msgstr "" #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:50 -msgid "First name" +#~ msgid "First name" +#~ msgstr "First name" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:54 +msgid "Set Password" msgstr "" #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:55 -msgid "Last name" +#~ msgid "Last name" +#~ msgstr "Last name" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:56 +msgid "Set User Password" msgstr "" #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:58 @@ -3495,15 +4194,28 @@ msgstr "" #~ msgstr "Last name: {0}" #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:67 -msgid "First name:" -msgstr "" +#~ msgid "First name:" +#~ msgstr "First name:" #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:71 -msgid "Last name:" +#~ msgid "Last name:" +#~ msgstr "Last name:" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:73 +msgid "First Name" msgstr "" -#: src/pages/Index/Settings/AccountSettings/DisplaySettingsPanel.tsx:41 -msgid "Use pseudo language" +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:79 +msgid "Last Name" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:85 +msgid "Staff Access" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:93 +#: src/tables/settings/UserTable.tsx:293 +msgid "Superuser" msgstr "" #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:55 @@ -3600,27 +4312,6 @@ msgstr "" msgid "No tokens configured" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:398 -#: src/pages/part/PartDetail.tsx:297 -#: src/tables/bom/UsedInTable.tsx:84 -#: src/tables/build/BuildOrderTable.tsx:110 -#: src/tables/company/CompanyTable.tsx:61 -#: src/tables/company/CompanyTable.tsx:95 -#: src/tables/machine/MachineListTable.tsx:332 -#: src/tables/machine/MachineListTable.tsx:594 -#: src/tables/part/ParametricPartTable.tsx:223 -#: src/tables/part/PartTable.tsx:178 -#: src/tables/part/PartVariantTable.tsx:15 -#: src/tables/plugin/PluginListTable.tsx:149 -#: src/tables/plugin/PluginListTable.tsx:271 -#: src/tables/plugin/PluginListTable.tsx:563 -#: src/tables/purchasing/SupplierPartTable.tsx:98 -#: src/tables/purchasing/SupplierPartTable.tsx:187 -#: src/tables/settings/UserTable.tsx:284 -#: src/tables/stock/StockItemTable.tsx:289 -msgid "Active" -msgstr "Activo" - #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:401 msgid "Expiry" msgstr "" @@ -3630,38 +4321,74 @@ msgid "Last Seen" msgstr "" #: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:65 -msgid "bars" -msgstr "" +#~ msgid "bars" +#~ msgstr "bars" #: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:66 -msgid "oval" -msgstr "" +#~ msgid "oval" +#~ msgstr "oval" #: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:67 -msgid "dots" -msgstr "" +#~ msgid "dots" +#~ msgstr "dots" #: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:81 -msgid "Theme" -msgstr "" +#~ msgid "Theme" +#~ msgstr "Theme" #: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:87 -msgid "Primary color" +#~ msgid "Primary color" +#~ msgstr "Primary color" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:88 +msgid "Bars" msgstr "" -#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:100 +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:89 +msgid "Oval" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:90 +msgid "Dots" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:101 +msgid "Display Settings" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:107 +msgid "Language" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:115 +msgid "Use pseudo language" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:122 +msgid "Color Mode" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:133 +msgid "Highlight color" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:145 +msgid "Example" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:151 msgid "White color" msgstr "" -#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:108 +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:167 msgid "Black color" msgstr "" -#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:116 +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:183 msgid "Border Radius" msgstr "" -#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:132 +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:199 msgid "Loader" msgstr "" @@ -3673,89 +4400,156 @@ msgstr "" #~ msgid "Advanced Amininistrative Options for InvenTree" #~ msgstr "Advanced Amininistrative Options for InvenTree" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:104 +#: src/pages/Index/Settings/AdminCenter/CurrencyManagmentPanel.tsx:27 +#: src/tables/ColumnRenderers.tsx:262 +msgid "Currency" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/CurrencyManagmentPanel.tsx:32 +msgid "Rate" +msgstr "Tarifa" + +#: src/pages/Index/Settings/AdminCenter/CurrencyManagmentPanel.tsx:44 +msgid "Exchange rates updated" +msgstr "Tipos de cambio actualizados" + +#: src/pages/Index/Settings/AdminCenter/CurrencyManagmentPanel.tsx:50 +msgid "Exchange rate update error" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/CurrencyManagmentPanel.tsx:62 +msgid "Refresh currency exchange rates" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/CurrencyManagmentPanel.tsx:99 +msgid "Last fetched" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/CurrencyManagmentPanel.tsx:100 +msgid "Base currency" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:115 msgid "Data Import" msgstr "" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:110 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:121 +msgid "Barcode Scans" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:127 msgid "Background Tasks" msgstr "" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:116 -msgid "Error Reports" -msgstr "" - -#: src/pages/Index/Settings/AdminCenter/Index.tsx:122 -msgid "Currencies" -msgstr "" - #: src/pages/Index/Settings/AdminCenter/Index.tsx:127 #~ msgid "Templates" #~ msgstr "Templates" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:140 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:133 +msgid "Error Reports" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:139 +msgid "Currencies" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:157 +msgid "Custom States" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:163 +#: src/pages/Index/Settings/AdminCenter/UnitManagmentPanel.tsx:58 msgid "Custom Units" msgstr "" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:146 -#: src/pages/part/CategoryDetail.tsx:264 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:169 +#: src/pages/part/CategoryDetail.tsx:269 msgid "Part Parameters" msgstr "" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:152 -msgid "Category Parameters" -msgstr "" - -#: src/pages/Index/Settings/AdminCenter/Index.tsx:170 -msgid "Location Types" -msgstr "" - #: src/pages/Index/Settings/AdminCenter/Index.tsx:170 #~ msgid "Location types" #~ msgstr "Location types" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:182 -#: src/tables/machine/MachineTypeTable.tsx:287 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:175 +msgid "Category Parameters" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:181 +msgid "Stocktake" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:199 +msgid "Location Types" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:211 +#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:48 +#: src/tables/machine/MachineTypeTable.tsx:308 msgid "Machines" msgstr "" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:192 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:221 msgid "Quick Actions" msgstr "" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:197 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:226 msgid "Add a new user" msgstr "" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:222 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:252 msgid "Advanced Options" msgstr "" #: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:43 -msgid "Machine types" -msgstr "" +#~ msgid "Machine types" +#~ msgstr "Machine types" #: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:53 -msgid "Machine Error Stack" +#~ msgid "Machine Error Stack" +#~ msgstr "Machine Error Stack" + +#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:56 +msgid "Machine Types" msgstr "" #: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:62 -msgid "There are no machine registry errors." +#~ msgid "There are no machine registry errors." +#~ msgstr "There are no machine registry errors." + +#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:64 +msgid "Machine Errors" msgstr "" -#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:28 -#: src/tables/settings/UserTable.tsx:119 +#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:77 +msgid "Registry Registry Errors" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:80 +msgid "There are machine registry errors" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:86 +msgid "Machine Registry Errors" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:89 +msgid "There are no machine registry errors" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:31 +#: src/tables/settings/UserTable.tsx:118 msgid "Info" msgstr "" -#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:32 -msgid "External plugins are not enabled for this InvenTree installation." -msgstr "" - #: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:33 #~ msgid "Plugin Error Stack" #~ msgstr "Plugin Error Stack" +#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:35 +msgid "External plugins are not enabled for this InvenTree installation." +msgstr "" + #: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:45 #~ msgid "Warning" #~ msgstr "Warning" @@ -3764,34 +4558,46 @@ msgstr "" #~ msgid "Changing the settings below require you to immediately restart the server. Do not change this while under active usage." #~ msgstr "Changing the settings below require you to immediately restart the server. Do not change this while under active usage." -#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:50 +#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:73 msgid "Plugin Errors" msgstr "" -#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:59 -msgid "Plugin Settings" +#: src/pages/Index/Settings/AdminCenter/ReportTemplatePanel.tsx:17 +msgid "Page Size" msgstr "" -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:53 -msgid "Background Worker Not Running" +#: src/pages/Index/Settings/AdminCenter/ReportTemplatePanel.tsx:20 +msgid "Landscape" msgstr "" -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:54 +#: src/pages/Index/Settings/AdminCenter/ReportTemplatePanel.tsx:26 +msgid "Attach to Model" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/StocktakePanel.tsx:25 +msgid "Stocktake Reports" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:30 msgid "The background task manager service is not running. Contact your system administrator." msgstr "" -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:60 -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:76 +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:35 +#~ msgid "Background Worker Not Running" +#~ msgstr "Background Worker Not Running" + +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:36 +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:45 msgid "Pending Tasks" msgstr "" -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:64 -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:84 +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:37 +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:53 msgid "Scheduled Tasks" msgstr "" -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:68 -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:92 +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:38 +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:61 msgid "Failed Tasks" msgstr "" @@ -3811,11 +4617,6 @@ msgstr "" #~ msgid "Reports" #~ msgstr "Reports" -#: src/pages/Index/Settings/AdminCenter/TemplateManagementPanel.tsx:89 -#: src/pages/build/BuildDetail.tsx:373 -#~ msgid "Report" -#~ msgstr "Report" - #: src/pages/Index/Settings/AdminCenter/TemplateManagementPanel.tsx:99 #~ msgid "Purchase order" #~ msgstr "Purchase order" @@ -3836,23 +4637,35 @@ msgstr "" #~ msgid "Stock location" #~ msgstr "Stock location" +#: src/pages/Index/Settings/AdminCenter/UnitManagmentPanel.tsx:21 +msgid "Alias" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/UnitManagmentPanel.tsx:22 +msgid "Dimensionless" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/UnitManagmentPanel.tsx:66 +msgid "All units" +msgstr "" + #: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:32 msgid "Select settings relevant for user lifecycle. More available in" msgstr "" #: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:37 -msgid "System settings" -msgstr "" +#~ msgid "System settings" +#~ msgstr "System settings" -#: src/pages/Index/Settings/SystemSettings.tsx:67 +#: src/pages/Index/Settings/SystemSettings.tsx:66 msgid "Login" msgstr "Ingresar" -#: src/pages/Index/Settings/SystemSettings.tsx:93 +#: src/pages/Index/Settings/SystemSettings.tsx:92 msgid "Barcodes" msgstr "Códigos de barras" -#: src/pages/Index/Settings/SystemSettings.tsx:115 +#: src/pages/Index/Settings/SystemSettings.tsx:116 msgid "Pricing" msgstr "Precios" @@ -3864,64 +4677,46 @@ msgstr "Precios" #~ msgid "Exchange Rates" #~ msgstr "Exchange Rates" -#: src/pages/Index/Settings/SystemSettings.tsx:150 +#: src/pages/Index/Settings/SystemSettings.tsx:151 msgid "Labels" msgstr "Etiquetas" -#: src/pages/Index/Settings/SystemSettings.tsx:156 -#: src/pages/Index/Settings/UserSettings.tsx:132 +#: src/pages/Index/Settings/SystemSettings.tsx:157 +#: src/pages/Index/Settings/UserSettings.tsx:133 msgid "Reporting" msgstr "Informes" #: src/pages/Index/Settings/SystemSettings.tsx:231 -#: src/pages/part/PartDetail.tsx:682 -msgid "Stocktake" -msgstr "" - -#: src/pages/Index/Settings/SystemSettings.tsx:237 -#: src/pages/build/BuildDetail.tsx:554 -#: src/pages/build/BuildIndex.tsx:22 -#: src/pages/part/PartDetail.tsx:616 -#: src/pages/sales/SalesOrderDetail.tsx:333 +#: src/pages/build/BuildIndex.tsx:27 +#: src/pages/part/PartDetail.tsx:636 +#: src/pages/sales/SalesOrderDetail.tsx:355 msgid "Build Orders" msgstr "Ordenes de Producción" -#: src/pages/Index/Settings/SystemSettings.tsx:318 -msgid "Switch to User Setting" -msgstr "Cambiar a Configuración de Usuario" +#: src/pages/Index/Settings/SystemSettings.tsx:317 +#~ msgid "Switch to User Setting" +#~ msgstr "Switch to User Setting" -#: src/pages/Index/Settings/UserSettings.tsx:34 +#: src/pages/Index/Settings/UserSettings.tsx:35 msgid "Account" msgstr "Cuenta" -#: src/pages/Index/Settings/UserSettings.tsx:40 +#: src/pages/Index/Settings/UserSettings.tsx:41 msgid "Security" msgstr "Seguridad" -#: src/pages/Index/Settings/UserSettings.tsx:78 +#: src/pages/Index/Settings/UserSettings.tsx:79 msgid "Display Options" msgstr "Opciones de visualización" -#: src/pages/Index/Settings/UserSettings.tsx:150 -msgid "Account Settings" -msgstr "" - -#: src/pages/Index/Settings/UserSettings.tsx:158 -msgid "Switch to System Setting" -msgstr "" - -#: src/pages/Index/UserSettings.tsx:103 -#~ msgid "User Settings" -#~ msgstr "User Settings" +#: src/pages/Index/Settings/UserSettings.tsx:159 +#~ msgid "Switch to System Setting" +#~ msgstr "Switch to System Setting" #: src/pages/Logged-In.tsx:24 #~ msgid "Found an exsisting login - using it to log you in." #~ msgstr "Found an exsisting login - using it to log you in." -#: src/pages/NotFound.tsx:17 -#~ msgid "Not Found" -#~ msgstr "Not Found" - #: src/pages/NotFound.tsx:20 #~ msgid "Sorry, this page is not known or was moved." #~ msgstr "Sorry, this page is not known or was moved." @@ -3942,104 +4737,86 @@ msgstr "" #~ msgid "Build Status" #~ msgstr "Build Status" -#: src/pages/build/BuildDetail.tsx:102 -#: src/pages/part/PartDetail.tsx:150 +#: src/pages/build/BuildDetail.tsx:97 +#: src/pages/company/ManufacturerPartDetail.tsx:81 +#: src/pages/company/SupplierPartDetail.tsx:91 +#: src/pages/part/PartDetail.tsx:171 +#: src/pages/stock/StockDetail.tsx:122 #: src/tables/bom/BomTable.tsx:118 #: src/tables/bom/UsedInTable.tsx:39 -#: src/tables/build/BuildLineTable.tsx:173 -#: src/tables/build/BuildOrderTable.tsx:55 -#: src/tables/sales/SalesOrderLineItemTable.tsx:62 -#: src/tables/stock/StockItemTable.tsx:53 +#: src/tables/build/BuildAllocatedStockTable.tsx:104 +#: src/tables/build/BuildLineTable.tsx:324 +#: src/tables/build/BuildOrderTable.tsx:64 +#: src/tables/sales/SalesOrderLineItemTable.tsx:70 +#: src/tables/stock/StockItemTable.tsx:54 msgid "IPN" msgstr "" -#: src/pages/build/BuildDetail.tsx:115 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:121 -#: src/pages/sales/ReturnOrderDetail.tsx:95 -#: src/pages/sales/SalesOrderDetail.tsx:101 -#: src/tables/ColumnRenderers.tsx:121 -#: src/tables/build/BuildAllocatedStockTable.tsx:90 -#: src/tables/build/BuildLineTable.tsx:184 +#: src/pages/build/BuildDetail.tsx:110 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:115 +#: src/pages/sales/ReturnOrderDetail.tsx:86 +#: src/pages/sales/SalesOrderDetail.tsx:95 +#: src/tables/ColumnRenderers.tsx:132 +#: src/tables/build/BuildAllocatedStockTable.tsx:111 +#: src/tables/build/BuildLineTable.tsx:335 msgid "Reference" msgstr "" -#: src/pages/build/BuildDetail.tsx:121 -#: src/pages/company/CompanyDetail.tsx:90 -#: src/pages/company/ManufacturerPartDetail.tsx:83 -#: src/pages/company/SupplierPartDetail.tsx:96 -#: src/pages/part/CategoryDetail.tsx:101 -#: src/pages/part/PartDetail.tsx:157 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:142 -#: src/pages/sales/ReturnOrderDetail.tsx:115 -#: src/pages/sales/SalesOrderDetail.tsx:121 -#: src/pages/stock/LocationDetail.tsx:109 -#: src/tables/ColumnRenderers.tsx:81 -#: src/tables/bom/UsedInTable.tsx:44 -#: src/tables/build/BuildAllocatedStockTable.tsx:70 -#: src/tables/build/BuildLineTable.tsx:178 -#: src/tables/machine/MachineTypeTable.tsx:69 -#: src/tables/machine/MachineTypeTable.tsx:112 -#: src/tables/machine/MachineTypeTable.tsx:219 -#: src/tables/machine/MachineTypeTable.tsx:323 -#: src/tables/part/RelatedPartTable.tsx:64 -#: src/tables/plugin/PluginListTable.tsx:129 -#: src/tables/plugin/PluginListTable.tsx:276 -#: src/tables/sales/SalesOrderAllocationTable.tsx:56 -#: src/tables/sales/SalesOrderLineItemTable.tsx:67 -#: src/tables/stock/LocationTypesTable.tsx:74 -msgid "Description" -msgstr "" - -#: src/pages/build/BuildDetail.tsx:129 +#: src/pages/build/BuildDetail.tsx:124 msgid "Parent Build" msgstr "" -#: src/pages/build/BuildDetail.tsx:140 +#: src/pages/build/BuildDetail.tsx:135 msgid "Build Quantity" msgstr "" -#: src/pages/build/BuildDetail.tsx:148 -#: src/pages/build/BuildDetail.tsx:274 +#: src/pages/build/BuildDetail.tsx:143 +#: src/pages/build/BuildDetail.tsx:277 msgid "Completed Outputs" msgstr "" -#: src/pages/build/BuildDetail.tsx:165 -#: src/tables/build/BuildOrderTable.tsx:151 +#: src/pages/build/BuildDetail.tsx:160 +#: src/tables/build/BuildOrderTable.tsx:142 msgid "Issued By" msgstr "" -#: src/pages/build/BuildDetail.tsx:172 -#: src/pages/part/PartDetail.tsx:365 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:220 -#: src/pages/sales/ReturnOrderDetail.tsx:199 -#: src/pages/sales/SalesOrderDetail.tsx:208 -#: src/tables/build/BuildOrderTable.tsx:157 -#: src/tables/purchasing/PurchaseOrderTable.tsx:75 -#: src/tables/sales/ReturnOrderTable.tsx:66 -#: src/tables/sales/SalesOrderTable.tsx:73 +#: src/pages/build/BuildDetail.tsx:167 +#: src/pages/part/PartDetail.tsx:406 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:244 +#: src/pages/sales/ReturnOrderDetail.tsx:216 +#: src/pages/sales/SalesOrderDetail.tsx:226 +#: src/tables/build/BuildOrderTable.tsx:148 +#: src/tables/purchasing/PurchaseOrderTable.tsx:76 +#: src/tables/sales/ReturnOrderTable.tsx:74 +#: src/tables/sales/SalesOrderTable.tsx:74 msgid "Responsible" msgstr "" -#: src/pages/build/BuildDetail.tsx:179 -#: src/tables/settings/PendingTasksTable.tsx:32 +#: src/pages/build/BuildDetail.tsx:174 +#: src/tables/settings/PendingTasksTable.tsx:36 msgid "Created" msgstr "" +#: src/pages/build/BuildDetail.tsx:181 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:229 +#: src/pages/sales/ReturnOrderDetail.tsx:201 +#: src/pages/sales/SalesOrderDetail.tsx:212 +#: src/tables/ColumnRenderers.tsx:226 +#: src/tables/part/PartPurchaseOrdersTable.tsx:100 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:135 +#: src/tables/sales/SalesOrderLineItemTable.tsx:107 +msgid "Target Date" +msgstr "" + #: src/pages/build/BuildDetail.tsx:185 #: src/pages/part/PartDetail.tsx:269 #: src/pages/stock/StockDetail.tsx:150 #~ msgid "View part barcode" #~ msgstr "View part barcode" -#: src/pages/build/BuildDetail.tsx:186 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:213 -#: src/pages/sales/ReturnOrderDetail.tsx:192 -#: src/pages/sales/SalesOrderDetail.tsx:201 -#: src/tables/ColumnRenderers.tsx:212 -#: src/tables/part/PartPurchaseOrdersTable.tsx:99 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:110 -#: src/tables/sales/SalesOrderLineItemTable.tsx:99 -msgid "Target Date" +#: src/pages/build/BuildDetail.tsx:188 +#: src/tables/sales/SalesOrderLineItemTable.tsx:281 +msgid "Completed" msgstr "" #: src/pages/build/BuildDetail.tsx:190 @@ -4047,10 +4824,6 @@ msgstr "" #~ msgid "Link custom barcode to part" #~ msgstr "Link custom barcode to part" -#: src/pages/build/BuildDetail.tsx:193 -msgid "Completed" -msgstr "" - #: src/pages/build/BuildDetail.tsx:196 #: src/pages/part/PartDetail.tsx:280 #~ msgid "Unlink custom barcode from part" @@ -4060,15 +4833,11 @@ msgstr "" #~ msgid "Build Order updated" #~ msgstr "Build Order updated" -#: src/pages/build/BuildDetail.tsx:205 -msgid "Source Location" -msgstr "" - -#: src/pages/build/BuildDetail.tsx:206 +#: src/pages/build/BuildDetail.tsx:209 msgid "Any location" msgstr "" -#: src/pages/build/BuildDetail.tsx:213 +#: src/pages/build/BuildDetail.tsx:216 msgid "Destination Location" msgstr "" @@ -4084,206 +4853,182 @@ msgstr "" #~ msgid "Delete build order" #~ msgstr "Delete build order" -#: src/pages/build/BuildDetail.tsx:251 +#: src/pages/build/BuildDetail.tsx:254 msgid "Build Details" msgstr "" -#: src/pages/build/BuildDetail.tsx:257 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:258 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:267 -#: src/pages/sales/ReturnOrderDetail.tsx:130 -#: src/pages/sales/ReturnOrderDetail.tsx:237 -#: src/pages/sales/ReturnOrderDetail.tsx:246 -#: src/pages/sales/SalesOrderDetail.tsx:272 -#: src/pages/sales/SalesOrderDetail.tsx:281 +#: src/pages/build/BuildDetail.tsx:260 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:282 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:291 +#: src/pages/sales/ReturnOrderDetail.tsx:122 +#: src/pages/sales/ReturnOrderDetail.tsx:254 +#: src/pages/sales/ReturnOrderDetail.tsx:263 +#: src/pages/sales/SalesOrderDetail.tsx:294 +#: src/pages/sales/SalesOrderDetail.tsx:303 msgid "Line Items" msgstr "" -#: src/pages/build/BuildDetail.tsx:267 +#: src/pages/build/BuildDetail.tsx:266 msgid "Incomplete Outputs" msgstr "" -#: src/pages/build/BuildDetail.tsx:289 -#: src/pages/sales/SalesOrderDetail.tsx:319 +#: src/pages/build/BuildDetail.tsx:292 +#: src/pages/sales/SalesOrderDetail.tsx:341 msgid "Allocated Stock" msgstr "" -#: src/pages/build/BuildDetail.tsx:299 +#: src/pages/build/BuildDetail.tsx:302 msgid "Consumed Stock" msgstr "" -#: src/pages/build/BuildDetail.tsx:313 +#: src/pages/build/BuildDetail.tsx:316 msgid "Child Build Orders" msgstr "" #: src/pages/build/BuildDetail.tsx:326 -#: src/tables/build/BuildOutputTable.tsx:384 -#: src/tables/stock/StockItemTestResultTable.tsx:150 +#: src/tables/build/BuildOutputTable.tsx:532 +#: src/tables/stock/StockItemTestResultTable.tsx:156 msgid "Test Results" msgstr "" #: src/pages/build/BuildDetail.tsx:337 -#: src/pages/part/PartDetail.tsx:699 +#: src/pages/part/PartDetail.tsx:740 msgid "Test Statistics" msgstr "" -#: src/pages/build/BuildDetail.tsx:351 -#: src/pages/company/CompanyDetail.tsx:259 -#: src/pages/company/ManufacturerPartDetail.tsx:179 -#: src/pages/part/PartDetail.tsx:721 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:309 -#: src/pages/sales/ReturnOrderDetail.tsx:274 -#: src/pages/sales/SalesOrderDetail.tsx:343 -#: src/pages/stock/StockDetail.tsx:385 -msgid "Attachments" -msgstr "" - -#: src/pages/build/BuildDetail.tsx:359 -#: src/pages/company/CompanyDetail.tsx:270 -#: src/pages/company/ManufacturerPartDetail.tsx:190 -#: src/pages/company/SupplierPartDetail.tsx:257 -#: src/pages/part/PartDetail.tsx:729 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:320 -#: src/pages/sales/ReturnOrderDetail.tsx:285 -#: src/pages/sales/SalesOrderDetail.tsx:354 -#: src/pages/stock/StockDetail.tsx:396 -#: src/tables/build/BuildOrderTestTable.tsx:142 -#: src/tables/stock/StockTrackingTable.tsx:189 -msgid "Notes" +#: src/pages/build/BuildDetail.tsx:365 +msgid "Edit Build Order" msgstr "" #: src/pages/build/BuildDetail.tsx:368 #~ msgid "Reporting Actions" #~ msgstr "Reporting Actions" +#: src/pages/build/BuildDetail.tsx:372 +#: src/tables/build/BuildOrderTable.tsx:173 +#: src/tables/build/BuildOrderTable.tsx:188 +msgid "Add Build Order" +msgstr "" + #: src/pages/build/BuildDetail.tsx:374 #~ msgid "Print build report" #~ msgstr "Print build report" -#: src/pages/build/BuildDetail.tsx:377 -msgid "Edit Build Order" -msgstr "" - -#: src/pages/build/BuildDetail.tsx:384 -#: src/tables/build/BuildOrderTable.tsx:172 -#: src/tables/build/BuildOrderTable.tsx:187 -msgid "Add Build Order" -msgstr "" - -#: src/pages/build/BuildDetail.tsx:398 +#: src/pages/build/BuildDetail.tsx:386 msgid "Cancel Build Order" msgstr "" -#: src/pages/build/BuildDetail.tsx:400 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:348 -#: src/pages/sales/SalesOrderDetail.tsx:380 +#: src/pages/build/BuildDetail.tsx:388 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:357 +#: src/pages/sales/ReturnOrderDetail.tsx:354 +#: src/pages/sales/SalesOrderDetail.tsx:387 msgid "Order cancelled" msgstr "" -#: src/pages/build/BuildDetail.tsx:401 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:347 -#: src/pages/sales/ReturnOrderDetail.tsx:346 -#: src/pages/sales/SalesOrderDetail.tsx:379 +#: src/pages/build/BuildDetail.tsx:389 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:356 +#: src/pages/sales/ReturnOrderDetail.tsx:353 +#: src/pages/sales/SalesOrderDetail.tsx:386 msgid "Cancel this order" msgstr "" -#: src/pages/build/BuildDetail.tsx:410 +#: src/pages/build/BuildDetail.tsx:398 msgid "Hold Build Order" msgstr "" -#: src/pages/build/BuildDetail.tsx:412 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:355 -#: src/pages/sales/ReturnOrderDetail.tsx:354 -#: src/pages/sales/SalesOrderDetail.tsx:387 +#: src/pages/build/BuildDetail.tsx:400 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:364 +#: src/pages/sales/ReturnOrderDetail.tsx:361 +#: src/pages/sales/SalesOrderDetail.tsx:394 msgid "Place this order on hold" msgstr "" -#: src/pages/build/BuildDetail.tsx:413 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:356 -#: src/pages/sales/ReturnOrderDetail.tsx:355 -#: src/pages/sales/SalesOrderDetail.tsx:388 +#: src/pages/build/BuildDetail.tsx:401 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:365 +#: src/pages/sales/ReturnOrderDetail.tsx:362 +#: src/pages/sales/SalesOrderDetail.tsx:395 msgid "Order placed on hold" msgstr "" -#: src/pages/build/BuildDetail.tsx:418 +#: src/pages/build/BuildDetail.tsx:406 msgid "Issue Build Order" msgstr "" -#: src/pages/build/BuildDetail.tsx:420 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:339 -#: src/pages/sales/ReturnOrderDetail.tsx:338 -#: src/pages/sales/SalesOrderDetail.tsx:371 +#: src/pages/build/BuildDetail.tsx:408 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:348 +#: src/pages/sales/ReturnOrderDetail.tsx:345 +#: src/pages/sales/SalesOrderDetail.tsx:378 msgid "Issue this order" msgstr "" -#: src/pages/build/BuildDetail.tsx:421 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:340 -#: src/pages/sales/ReturnOrderDetail.tsx:339 -#: src/pages/sales/SalesOrderDetail.tsx:372 +#: src/pages/build/BuildDetail.tsx:409 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:349 +#: src/pages/sales/ReturnOrderDetail.tsx:346 +#: src/pages/sales/SalesOrderDetail.tsx:379 msgid "Order issued" msgstr "" -#: src/pages/build/BuildDetail.tsx:426 +#: src/pages/build/BuildDetail.tsx:414 msgid "Complete Build Order" msgstr "" -#: src/pages/build/BuildDetail.tsx:428 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:368 -#: src/pages/sales/ReturnOrderDetail.tsx:362 -#: src/pages/sales/SalesOrderDetail.tsx:395 +#: src/pages/build/BuildDetail.tsx:416 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:377 +#: src/pages/sales/ReturnOrderDetail.tsx:369 +#: src/pages/sales/SalesOrderDetail.tsx:402 msgid "Mark this order as complete" msgstr "" -#: src/pages/build/BuildDetail.tsx:429 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:362 -#: src/pages/sales/ReturnOrderDetail.tsx:363 -#: src/pages/sales/SalesOrderDetail.tsx:396 +#: src/pages/build/BuildDetail.tsx:417 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:371 +#: src/pages/sales/ReturnOrderDetail.tsx:370 +#: src/pages/sales/SalesOrderDetail.tsx:403 msgid "Order completed" msgstr "" -#: src/pages/build/BuildDetail.tsx:460 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:391 -#: src/pages/sales/ReturnOrderDetail.tsx:392 -#: src/pages/sales/SalesOrderDetail.tsx:425 +#: src/pages/build/BuildDetail.tsx:448 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:400 +#: src/pages/sales/ReturnOrderDetail.tsx:399 +#: src/pages/sales/SalesOrderDetail.tsx:432 msgid "Issue Order" msgstr "" -#: src/pages/build/BuildDetail.tsx:467 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:398 -#: src/pages/sales/ReturnOrderDetail.tsx:399 -#: src/pages/sales/SalesOrderDetail.tsx:439 +#: src/pages/build/BuildDetail.tsx:455 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:407 +#: src/pages/sales/ReturnOrderDetail.tsx:406 +#: src/pages/sales/SalesOrderDetail.tsx:446 msgid "Complete Order" msgstr "" -#: src/pages/build/BuildDetail.tsx:496 +#: src/pages/build/BuildDetail.tsx:473 msgid "Build Order Actions" msgstr "" -#: src/pages/build/BuildDetail.tsx:502 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:432 -#: src/pages/sales/ReturnOrderDetail.tsx:433 -#: src/pages/sales/SalesOrderDetail.tsx:474 +#: src/pages/build/BuildDetail.tsx:478 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:429 +#: src/pages/sales/ReturnOrderDetail.tsx:428 +#: src/pages/sales/SalesOrderDetail.tsx:469 msgid "Edit order" msgstr "" -#: src/pages/build/BuildDetail.tsx:506 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:440 -#: src/pages/sales/ReturnOrderDetail.tsx:439 -#: src/pages/sales/SalesOrderDetail.tsx:479 +#: src/pages/build/BuildDetail.tsx:482 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:437 +#: src/pages/sales/ReturnOrderDetail.tsx:434 +#: src/pages/sales/SalesOrderDetail.tsx:474 msgid "Duplicate order" msgstr "" -#: src/pages/build/BuildDetail.tsx:510 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:443 -#: src/pages/sales/ReturnOrderDetail.tsx:444 -#: src/pages/sales/SalesOrderDetail.tsx:482 +#: src/pages/build/BuildDetail.tsx:486 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:440 +#: src/pages/sales/ReturnOrderDetail.tsx:439 +#: src/pages/sales/SalesOrderDetail.tsx:477 msgid "Hold order" msgstr "" -#: src/pages/build/BuildDetail.tsx:515 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:448 -#: src/pages/sales/ReturnOrderDetail.tsx:449 -#: src/pages/sales/SalesOrderDetail.tsx:487 +#: src/pages/build/BuildDetail.tsx:491 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:445 +#: src/pages/sales/ReturnOrderDetail.tsx:444 +#: src/pages/sales/SalesOrderDetail.tsx:482 msgid "Cancel order" msgstr "" @@ -4295,57 +5040,61 @@ msgstr "" #~ msgid "New Build Order" #~ msgstr "New Build Order" -#: src/pages/company/CompanyDetail.tsx:104 +#: src/pages/company/CompanyDetail.tsx:95 +msgid "Website" +msgstr "Sitio web" + +#: src/pages/company/CompanyDetail.tsx:103 msgid "Phone Number" msgstr "" -#: src/pages/company/CompanyDetail.tsx:111 +#: src/pages/company/CompanyDetail.tsx:110 msgid "Email Address" msgstr "" -#: src/pages/company/CompanyDetail.tsx:121 +#: src/pages/company/CompanyDetail.tsx:120 msgid "Default Currency" msgstr "" -#: src/pages/company/CompanyDetail.tsx:126 +#: src/pages/company/CompanyDetail.tsx:125 #: src/pages/company/SupplierDetail.tsx:8 -#: src/pages/company/SupplierPartDetail.tsx:120 -#: src/pages/company/SupplierPartDetail.tsx:206 -#: src/pages/company/SupplierPartDetail.tsx:351 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:136 -#: src/tables/company/CompanyTable.tsx:100 +#: src/pages/company/SupplierPartDetail.tsx:125 +#: src/pages/company/SupplierPartDetail.tsx:218 +#: src/pages/company/SupplierPartDetail.tsx:340 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:130 +#: src/tables/company/CompanyTable.tsx:101 #: src/tables/part/PartPurchaseOrdersTable.tsx:42 -#: src/tables/purchasing/PurchaseOrderTable.tsx:88 +#: src/tables/purchasing/PurchaseOrderTable.tsx:89 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:36 msgid "Supplier" msgstr "Proveedor" -#: src/pages/company/CompanyDetail.tsx:132 +#: src/pages/company/CompanyDetail.tsx:131 #: src/pages/company/ManufacturerDetail.tsx:8 -#: src/pages/company/ManufacturerPartDetail.tsx:101 -#: src/pages/company/ManufacturerPartDetail.tsx:267 -#: src/pages/company/SupplierPartDetail.tsx:135 -#: src/tables/company/CompanyTable.tsx:105 +#: src/pages/company/ManufacturerPartDetail.tsx:100 +#: src/pages/company/ManufacturerPartDetail.tsx:262 +#: src/pages/company/SupplierPartDetail.tsx:147 +#: src/tables/company/CompanyTable.tsx:106 msgid "Manufacturer" msgstr "" -#: src/pages/company/CompanyDetail.tsx:138 +#: src/pages/company/CompanyDetail.tsx:137 #: src/pages/company/CustomerDetail.tsx:8 -#: src/pages/part/pricing/SaleHistoryPanel.tsx:29 -#: src/pages/sales/ReturnOrderDetail.tsx:109 -#: src/pages/sales/SalesOrderDetail.tsx:115 -#: src/pages/stock/StockDetail.tsx:230 -#: src/tables/company/CompanyTable.tsx:110 -#: src/tables/sales/ReturnOrderTable.tsx:78 -#: src/tables/sales/SalesOrderTable.tsx:108 -#: src/tables/stock/StockTrackingTable.tsx:140 +#: src/pages/part/pricing/SaleHistoryPanel.tsx:31 +#: src/pages/sales/ReturnOrderDetail.tsx:101 +#: src/pages/sales/SalesOrderDetail.tsx:110 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:100 +#: src/pages/stock/StockDetail.tsx:271 +#: src/tables/company/CompanyTable.tsx:111 +#: src/tables/sales/ReturnOrderTable.tsx:97 +#: src/tables/sales/SalesOrderTable.tsx:121 +#: src/tables/stock/StockTrackingTable.tsx:144 msgid "Customer" msgstr "" #: src/pages/company/CompanyDetail.tsx:172 -#: src/tables/stock/StockTrackingTable.tsx:183 -msgid "Details" -msgstr "Detalles" +msgid "Company Details" +msgstr "" #: src/pages/company/CompanyDetail.tsx:175 #~ msgid "Edit company" @@ -4363,140 +5112,150 @@ msgstr "" #~ msgid "Delete company" #~ msgstr "Delete company" -#: src/pages/company/CompanyDetail.tsx:232 +#: src/pages/company/CompanyDetail.tsx:234 msgid "Assigned Stock" msgstr "" -#: src/pages/company/CompanyDetail.tsx:290 -#: src/tables/company/CompanyTable.tsx:86 +#: src/pages/company/CompanyDetail.tsx:273 +#: src/tables/company/CompanyTable.tsx:87 msgid "Edit Company" msgstr "" -#: src/pages/company/CompanyDetail.tsx:298 +#: src/pages/company/CompanyDetail.tsx:281 msgid "Delete Company" msgstr "" -#: src/pages/company/CompanyDetail.tsx:306 +#: src/pages/company/CompanyDetail.tsx:289 msgid "Company Actions" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:76 -#: src/pages/company/SupplierPartDetail.tsx:89 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:128 +#: src/pages/company/ManufacturerPartDetail.tsx:74 +#: src/pages/company/SupplierPartDetail.tsx:84 msgid "Internal Part" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:91 -#: src/pages/company/SupplierPartDetail.tsx:103 -msgid "External Link" -msgstr "" - -#: src/pages/company/ManufacturerPartDetail.tsx:109 -#: src/pages/company/SupplierPartDetail.tsx:144 -#: src/tables/purchasing/ManufacturerPartTable.tsx:56 +#: src/pages/company/ManufacturerPartDetail.tsx:108 +#: src/pages/company/SupplierPartDetail.tsx:156 +#: src/tables/purchasing/ManufacturerPartTable.tsx:58 msgid "Manufacturer Part Number" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:138 +#: src/pages/company/ManufacturerPartDetail.tsx:125 +#: src/pages/company/SupplierPartDetail.tsx:108 +msgid "External Link" +msgstr "" + +#: src/pages/company/ManufacturerPartDetail.tsx:146 +#: src/pages/company/SupplierPartDetail.tsx:215 +#: src/pages/part/PartDetail.tsx:576 +msgid "Part Details" +msgstr "" + +#: src/pages/company/ManufacturerPartDetail.tsx:149 msgid "Manufacturer Details" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:147 +#: src/pages/company/ManufacturerPartDetail.tsx:158 msgid "Manufacturer Part Details" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:153 -#: src/pages/part/PartDetail.tsx:532 +#: src/pages/company/ManufacturerPartDetail.tsx:164 +#: src/pages/part/PartDetail.tsx:582 msgid "Parameters" msgstr "Parámetros" -#: src/pages/company/ManufacturerPartDetail.tsx:165 -#: src/pages/part/PartDetail.tsx:649 +#: src/pages/company/ManufacturerPartDetail.tsx:176 +#: src/pages/part/PartDetail.tsx:669 #: src/pages/purchasing/PurchasingIndex.tsx:31 msgid "Suppliers" msgstr "Proveedores" -#: src/pages/company/ManufacturerPartDetail.tsx:208 -#: src/tables/purchasing/ManufacturerPartTable.tsx:84 +#: src/pages/company/ManufacturerPartDetail.tsx:204 +#: src/tables/purchasing/ManufacturerPartTable.tsx:86 msgid "Edit Manufacturer Part" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:215 -#: src/tables/purchasing/ManufacturerPartTable.tsx:72 -#: src/tables/purchasing/ManufacturerPartTable.tsx:103 +#: src/pages/company/ManufacturerPartDetail.tsx:211 +#: src/tables/purchasing/ManufacturerPartTable.tsx:74 +#: src/tables/purchasing/ManufacturerPartTable.tsx:106 msgid "Add Manufacturer Part" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:227 -#: src/tables/purchasing/ManufacturerPartTable.tsx:92 +#: src/pages/company/ManufacturerPartDetail.tsx:223 +#: src/tables/purchasing/ManufacturerPartTable.tsx:94 msgid "Delete Manufacturer Part" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:240 +#: src/pages/company/ManufacturerPartDetail.tsx:236 msgid "Manufacturer Part Actions" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:281 +#: src/pages/company/ManufacturerPartDetail.tsx:276 msgid "ManufacturerPart" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:163 -#: src/tables/part/PartPurchaseOrdersTable.tsx:71 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:156 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:197 -#: src/tables/purchasing/SupplierPartTable.tsx:131 +#: src/pages/company/SupplierPartDetail.tsx:99 +msgid "Part Description" +msgstr "" + +#: src/pages/company/SupplierPartDetail.tsx:175 +#: src/tables/part/PartPurchaseOrdersTable.tsx:72 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:162 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:203 +#: src/tables/purchasing/SupplierPartTable.tsx:133 msgid "Pack Quantity" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:174 +#: src/pages/company/SupplierPartDetail.tsx:186 msgid "Supplier Availability" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:181 +#: src/pages/company/SupplierPartDetail.tsx:193 msgid "Availability Updated" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:208 +#: src/pages/company/SupplierPartDetail.tsx:220 msgid "Availability" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:217 +#: src/pages/company/SupplierPartDetail.tsx:229 msgid "Supplier Part Details" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:223 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:296 +#: src/pages/company/SupplierPartDetail.tsx:235 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:320 msgid "Received Stock" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:247 -#: src/pages/part/PartPricingPanel.tsx:111 -#: src/pages/part/pricing/PricingOverviewPanel.tsx:121 +#: src/pages/company/SupplierPartDetail.tsx:259 +#: src/pages/part/PartPricingPanel.tsx:116 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:195 msgid "Supplier Pricing" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:294 +#: src/pages/company/SupplierPartDetail.tsx:284 msgid "Supplier Part Actions" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:319 -#: src/tables/purchasing/SupplierPartTable.tsx:210 +#: src/pages/company/SupplierPartDetail.tsx:308 +#: src/tables/purchasing/SupplierPartTable.tsx:213 msgid "Edit Supplier Part" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:327 -#: src/tables/purchasing/SupplierPartTable.tsx:218 +#: src/pages/company/SupplierPartDetail.tsx:316 +#: src/tables/purchasing/SupplierPartTable.tsx:221 msgid "Delete Supplier Part" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:335 -#: src/tables/purchasing/SupplierPartTable.tsx:163 +#: src/pages/company/SupplierPartDetail.tsx:324 +#: src/tables/purchasing/SupplierPartTable.tsx:165 msgid "Add Supplier Part" msgstr "" #: src/pages/part/CategoryDetail.tsx:93 -#: src/pages/stock/LocationDetail.tsx:101 -#: src/tables/settings/ErrorTable.tsx:36 +#: src/pages/stock/LocationDetail.tsx:95 +#: src/tables/settings/ErrorTable.tsx:63 +#: src/tables/settings/ErrorTable.tsx:108 msgid "Path" msgstr "" @@ -4504,357 +5263,357 @@ msgstr "" msgid "Parent Category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:126 +#: src/pages/part/CategoryDetail.tsx:132 msgid "Subcategories" msgstr "" -#: src/pages/part/CategoryDetail.tsx:133 -#: src/pages/stock/LocationDetail.tsx:141 -#: src/tables/part/PartCategoryTable.tsx:73 +#: src/pages/part/CategoryDetail.tsx:139 +#: src/pages/stock/LocationDetail.tsx:135 +#: src/tables/part/PartCategoryTable.tsx:85 #: src/tables/stock/StockLocationTable.tsx:49 msgid "Structural" msgstr "" -#: src/pages/part/CategoryDetail.tsx:139 +#: src/pages/part/CategoryDetail.tsx:145 msgid "Parent default location" msgstr "" -#: src/pages/part/CategoryDetail.tsx:146 +#: src/pages/part/CategoryDetail.tsx:152 msgid "Default location" msgstr "" -#: src/pages/part/CategoryDetail.tsx:157 +#: src/pages/part/CategoryDetail.tsx:163 msgid "Top level part category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:167 -#: src/pages/part/CategoryDetail.tsx:221 -#: src/tables/part/PartCategoryTable.tsx:102 +#: src/pages/part/CategoryDetail.tsx:173 +#: src/pages/part/CategoryDetail.tsx:226 +#: src/tables/part/PartCategoryTable.tsx:118 msgid "Edit Part Category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:180 -#: src/pages/stock/LocationDetail.tsx:233 +#: src/pages/part/CategoryDetail.tsx:186 +#: src/pages/stock/LocationDetail.tsx:227 msgid "Delete items" msgstr "" -#: src/pages/part/CategoryDetail.tsx:188 -#: src/pages/part/CategoryDetail.tsx:226 +#: src/pages/part/CategoryDetail.tsx:194 +#: src/pages/part/CategoryDetail.tsx:231 msgid "Delete Part Category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:191 +#: src/pages/part/CategoryDetail.tsx:197 msgid "Parts Action" msgstr "" -#: src/pages/part/CategoryDetail.tsx:192 +#: src/pages/part/CategoryDetail.tsx:198 msgid "Action for parts in this category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:197 +#: src/pages/part/CategoryDetail.tsx:203 msgid "Child Categories Action" msgstr "" -#: src/pages/part/CategoryDetail.tsx:198 +#: src/pages/part/CategoryDetail.tsx:204 msgid "Action for child categories in this category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:216 +#: src/pages/part/CategoryDetail.tsx:222 msgid "Category Actions" msgstr "" -#: src/pages/part/CategoryDetail.tsx:238 +#: src/pages/part/CategoryDetail.tsx:243 msgid "Category Details" msgstr "" -#: src/pages/part/PartDetail.tsx:163 -msgid "Variant of" +#: src/pages/part/PartAllocationPanel.tsx:23 +#: src/pages/stock/StockDetail.tsx:443 +#: src/tables/part/PartTable.tsx:99 +msgid "Build Order Allocations" msgstr "" -#: src/pages/part/PartDetail.tsx:170 -msgid "Revision of" -msgstr "" - -#: src/pages/part/PartDetail.tsx:177 -#: src/tables/stock/StockItemTable.tsx:58 -msgid "Revision" +#: src/pages/part/PartAllocationPanel.tsx:40 +#: src/pages/stock/StockDetail.tsx:458 +#: src/tables/part/PartTable.tsx:108 +msgid "Sales Order Allocations" msgstr "" #: src/pages/part/PartDetail.tsx:184 +msgid "Variant of" +msgstr "" + +#: src/pages/part/PartDetail.tsx:191 +msgid "Revision of" +msgstr "" + +#: src/pages/part/PartDetail.tsx:198 +#: src/tables/stock/StockItemTable.tsx:59 +msgid "Revision" +msgstr "" + +#: src/pages/part/PartDetail.tsx:205 #: src/tables/notifications/NotificationsTable.tsx:31 #: src/tables/part/PartCategoryTemplateTable.tsx:67 msgid "Category" msgstr "" -#: src/pages/part/PartDetail.tsx:190 +#: src/pages/part/PartDetail.tsx:211 msgid "Default Location" msgstr "" -#: src/pages/part/PartDetail.tsx:197 +#: src/pages/part/PartDetail.tsx:218 msgid "Category Default Location" msgstr "" -#: src/pages/part/PartDetail.tsx:204 +#: src/pages/part/PartDetail.tsx:225 #: src/tables/purchasing/ManufacturerPartParameterTable.tsx:44 msgid "Units" msgstr "" -#: src/pages/part/PartDetail.tsx:211 -#: src/tables/settings/PendingTasksTable.tsx:42 +#: src/pages/part/PartDetail.tsx:232 +#: src/tables/settings/PendingTasksTable.tsx:46 msgid "Keywords" msgstr "" -#: src/pages/part/PartDetail.tsx:218 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:186 -#: src/pages/sales/ReturnOrderDetail.tsx:165 -#: src/pages/sales/SalesOrderDetail.tsx:174 -msgid "Link" -msgstr "" - -#: src/pages/part/PartDetail.tsx:236 +#: src/pages/part/PartDetail.tsx:257 #: src/tables/bom/BomTable.tsx:320 -#: src/tables/build/BuildLineTable.tsx:155 +#: src/tables/build/BuildLineTable.tsx:286 #: src/tables/part/PartTable.tsx:288 -#: src/tables/sales/SalesOrderLineItemTable.tsx:103 +#: src/tables/sales/SalesOrderLineItemTable.tsx:111 msgid "Available Stock" msgstr "" -#: src/pages/part/PartDetail.tsx:243 +#: src/pages/part/PartDetail.tsx:264 msgid "Variant Stock" msgstr "" -#: src/pages/part/PartDetail.tsx:251 +#: src/pages/part/PartDetail.tsx:272 msgid "Minimum Stock" msgstr "" -#: src/pages/part/PartDetail.tsx:257 +#: src/pages/part/PartDetail.tsx:278 #: src/tables/bom/BomTable.tsx:237 -#: src/tables/build/BuildLineTable.tsx:117 -#: src/tables/sales/SalesOrderLineItemTable.tsx:141 +#: src/tables/build/BuildLineTable.tsx:248 +#: src/tables/sales/SalesOrderLineItemTable.tsx:149 msgid "On order" msgstr "" -#: src/pages/part/PartDetail.tsx:266 +#: src/pages/part/PartDetail.tsx:285 +msgid "Required for Orders" +msgstr "" + +#: src/pages/part/PartDetail.tsx:294 msgid "Allocated to Build Orders" msgstr "" -#: src/pages/part/PartDetail.tsx:274 +#: src/pages/part/PartDetail.tsx:305 msgid "Allocated to Sales Orders" msgstr "" -#: src/pages/part/PartDetail.tsx:281 -#: src/tables/bom/BomTable.tsx:261 -#: src/tables/bom/BomTable.tsx:293 -msgid "Can Build" -msgstr "" - -#: src/pages/part/PartDetail.tsx:288 -#: src/tables/bom/BomTable.tsx:245 -#: src/tables/part/PartTable.tsx:92 -msgid "Building" -msgstr "" - -#: src/pages/part/PartDetail.tsx:302 -#: src/pages/part/PartDetail.tsx:873 -#: src/tables/part/ParametricPartTable.tsx:228 -#: src/tables/part/PartTable.tsx:184 -msgid "Locked" -msgstr "" - -#: src/pages/part/PartDetail.tsx:308 -msgid "Template Part" -msgstr "" - #: src/pages/part/PartDetail.tsx:310 #~ msgid "Edit part" #~ msgstr "Edit part" -#: src/pages/part/PartDetail.tsx:313 -#: src/tables/bom/BomTable.tsx:315 -msgid "Assembled Part" +#: src/pages/part/PartDetail.tsx:315 +#: src/tables/bom/BomTable.tsx:261 +#: src/tables/bom/BomTable.tsx:293 +msgid "Can Build" msgstr "" -#: src/pages/part/PartDetail.tsx:318 -msgid "Component Part" -msgstr "" +#: src/pages/part/PartDetail.tsx:322 +#: src/pages/part/PartDetail.tsx:905 +#: src/pages/stock/StockDetail.tsx:766 +#: src/tables/build/BuildOrderTestTable.tsx:220 +#: src/tables/stock/StockItemTable.tsx:334 +msgid "In Production" +msgstr "En producción" #: src/pages/part/PartDetail.tsx:322 #~ msgid "Duplicate part" #~ msgstr "Duplicate part" -#: src/pages/part/PartDetail.tsx:323 -#: src/tables/bom/BomTable.tsx:305 -msgid "Testable Part" -msgstr "" - #: src/pages/part/PartDetail.tsx:327 #~ msgid "Delete part" #~ msgstr "Delete part" -#: src/pages/part/PartDetail.tsx:329 +#: src/pages/part/PartDetail.tsx:336 +#: src/tables/part/ParametricPartTable.tsx:228 +#: src/tables/part/PartTable.tsx:184 +msgid "Locked" +msgstr "" + +#: src/pages/part/PartDetail.tsx:342 +msgid "Template Part" +msgstr "" + +#: src/pages/part/PartDetail.tsx:347 +#: src/tables/bom/BomTable.tsx:315 +msgid "Assembled Part" +msgstr "" + +#: src/pages/part/PartDetail.tsx:352 +msgid "Component Part" +msgstr "" + +#: src/pages/part/PartDetail.tsx:357 +#: src/tables/bom/BomTable.tsx:305 +msgid "Testable Part" +msgstr "" + +#: src/pages/part/PartDetail.tsx:363 #: src/tables/bom/BomTable.tsx:310 msgid "Trackable Part" msgstr "" -#: src/pages/part/PartDetail.tsx:334 +#: src/pages/part/PartDetail.tsx:368 msgid "Purchaseable Part" msgstr "" -#: src/pages/part/PartDetail.tsx:339 +#: src/pages/part/PartDetail.tsx:374 msgid "Saleable Part" msgstr "" -#: src/pages/part/PartDetail.tsx:344 +#: src/pages/part/PartDetail.tsx:379 msgid "Virtual Part" msgstr "" -#: src/pages/part/PartDetail.tsx:352 -#: src/tables/ColumnRenderers.tsx:220 +#: src/pages/part/PartDetail.tsx:393 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:215 +#: src/pages/sales/ReturnOrderDetail.tsx:185 +#: src/pages/sales/SalesOrderDetail.tsx:197 +#: src/tables/ColumnRenderers.tsx:234 msgid "Creation Date" msgstr "" -#: src/pages/part/PartDetail.tsx:357 +#: src/pages/part/PartDetail.tsx:398 msgid "Created By" msgstr "" -#: src/pages/part/PartDetail.tsx:372 +#: src/pages/part/PartDetail.tsx:413 msgid "Default Supplier" msgstr "" -#: src/pages/part/PartDetail.tsx:383 -#: src/pages/part/pricing/BomPricingPanel.tsx:79 +#: src/pages/part/PartDetail.tsx:424 +#: src/pages/part/pricing/BomPricingPanel.tsx:113 #: src/pages/part/pricing/VariantPricingPanel.tsx:95 #: src/tables/part/PartTable.tsx:161 msgid "Price Range" msgstr "" -#: src/pages/part/PartDetail.tsx:423 -#: src/pages/stock/StockDetail.tsx:135 +#: src/pages/part/PartDetail.tsx:462 +msgid "Latest Serial Number" +msgstr "" + +#: src/pages/part/PartDetail.tsx:472 +#: src/pages/stock/StockDetail.tsx:151 msgid "Last Stocktake" msgstr "" -#: src/pages/part/PartDetail.tsx:462 +#: src/pages/part/PartDetail.tsx:511 msgid "Stocktake By" msgstr "" -#: src/pages/part/PartDetail.tsx:526 -msgid "Part Details" -msgstr "" - -#: src/pages/part/PartDetail.tsx:557 +#: src/pages/part/PartDetail.tsx:611 msgid "Variants" msgstr "" -#: src/pages/part/PartDetail.tsx:564 -#: src/pages/stock/StockDetail.tsx:307 +#: src/pages/part/PartDetail.tsx:618 +#: src/pages/stock/StockDetail.tsx:430 msgid "Allocations" msgstr "" -#: src/pages/part/PartDetail.tsx:575 -#: src/pages/stock/StockDetail.tsx:318 -#: src/tables/part/PartTable.tsx:99 -msgid "Build Order Allocations" -msgstr "" - -#: src/pages/part/PartDetail.tsx:590 -#: src/pages/stock/StockDetail.tsx:333 -#: src/tables/part/PartTable.tsx:108 -msgid "Sales Order Allocations" -msgstr "" - -#: src/pages/part/PartDetail.tsx:607 +#: src/pages/part/PartDetail.tsx:625 msgid "Bill of Materials" msgstr "" -#: src/pages/part/PartDetail.tsx:623 +#: src/pages/part/PartDetail.tsx:643 msgid "Used In" msgstr "" -#: src/pages/part/PartDetail.tsx:630 +#: src/pages/part/PartDetail.tsx:650 msgid "Part Pricing" msgstr "" -#: src/pages/part/PartDetail.tsx:636 +#: src/pages/part/PartDetail.tsx:656 #: src/pages/purchasing/PurchasingIndex.tsx:42 msgid "Manufacturers" msgstr "" -#: src/pages/part/PartDetail.tsx:676 +#: src/pages/part/PartDetail.tsx:722 msgid "Scheduling" msgstr "" -#: src/pages/part/PartDetail.tsx:688 +#: src/pages/part/PartDetail.tsx:729 msgid "Test Templates" msgstr "" -#: src/pages/part/PartDetail.tsx:715 +#: src/pages/part/PartDetail.tsx:756 msgid "Related Parts" msgstr "" -#: src/pages/part/PartDetail.tsx:849 -#: src/pages/stock/StockDetail.tsx:156 -#: src/pages/stock/StockDetail.tsx:593 -#: src/tables/build/BuildLineTable.tsx:48 +#: src/pages/part/PartDetail.tsx:881 +#: src/pages/stock/StockDetail.tsx:172 +#: src/pages/stock/StockDetail.tsx:783 +#: src/tables/build/BuildLineTable.tsx:179 #: src/tables/part/PartTable.tsx:117 -#: src/tables/stock/StockItemTable.tsx:177 -#: src/tables/stock/StockItemTable.tsx:310 +#: src/tables/stock/StockItemTable.tsx:166 +#: src/tables/stock/StockItemTable.tsx:314 msgid "Available" msgstr "" -#: src/pages/part/PartDetail.tsx:855 +#: src/pages/part/PartDetail.tsx:887 msgid "No Stock" msgstr "" -#: src/pages/part/PartDetail.tsx:861 +#: src/pages/part/PartDetail.tsx:893 +#: src/tables/part/PartTestTemplateTable.tsx:106 +#: src/tables/stock/StockItemTestResultTable.tsx:383 +msgid "Required" +msgstr "" + +#: src/pages/part/PartDetail.tsx:899 #: src/tables/bom/BomTable.tsx:325 #: src/tables/part/PartTable.tsx:86 msgid "On Order" msgstr "" -#: src/pages/part/PartDetail.tsx:867 -#: src/pages/stock/StockDetail.tsx:576 -#: src/tables/build/BuildOrderTestTable.tsx:219 -#: src/tables/stock/StockItemTable.tsx:330 -msgid "In Production" -msgstr "En producción" - -#: src/pages/part/PartDetail.tsx:892 +#: src/pages/part/PartDetail.tsx:924 msgid "Edit Part" msgstr "" -#: src/pages/part/PartDetail.tsx:927 +#: src/pages/part/PartDetail.tsx:959 #: src/tables/part/PartTable.tsx:331 -#: src/tables/part/PartTable.tsx:342 +#: src/tables/part/PartTable.tsx:343 msgid "Add Part" msgstr "" -#: src/pages/part/PartDetail.tsx:941 +#: src/pages/part/PartDetail.tsx:973 msgid "Delete Part" msgstr "" -#: src/pages/part/PartDetail.tsx:950 +#: src/pages/part/PartDetail.tsx:982 msgid "Deleting this part cannot be reversed" msgstr "" -#: src/pages/part/PartDetail.tsx:999 -#: src/pages/stock/LocationDetail.tsx:324 -#: src/tables/stock/StockItemTable.tsx:444 +#: src/pages/part/PartDetail.tsx:1021 +#: src/pages/stock/LocationDetail.tsx:310 +#: src/tables/stock/StockItemTable.tsx:449 msgid "Stock Actions" msgstr "" -#: src/pages/part/PartDetail.tsx:1007 +#: src/pages/part/PartDetail.tsx:1029 msgid "Count part stock" msgstr "" -#: src/pages/part/PartDetail.tsx:1018 +#: src/pages/part/PartDetail.tsx:1040 msgid "Transfer part stock" msgstr "" -#: src/pages/part/PartDetail.tsx:1027 +#: src/pages/part/PartDetail.tsx:1049 msgid "Part Actions" msgstr "" -#: src/pages/part/PartDetail.tsx:1087 +#: src/pages/part/PartDetail.tsx:1113 msgid "Select Part Revision" msgstr "" @@ -4862,113 +5621,214 @@ msgstr "" #~ msgid "Categories" #~ msgstr "Categories" -#: src/pages/part/PartPricingPanel.tsx:68 +#: src/pages/part/PartPricingPanel.tsx:72 msgid "No pricing data found for this part." msgstr "" -#: src/pages/part/PartPricingPanel.tsx:82 -#: src/pages/part/pricing/PricingOverviewPanel.tsx:190 +#: src/pages/part/PartPricingPanel.tsx:87 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:293 msgid "Pricing Overview" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:88 +#: src/pages/part/PartPricingPanel.tsx:93 msgid "Purchase History" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:102 -#: src/pages/part/pricing/PricingOverviewPanel.tsx:100 +#: src/pages/part/PartPricingPanel.tsx:107 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:174 msgid "Internal Pricing" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:120 -#: src/pages/part/pricing/PricingOverviewPanel.tsx:107 +#: src/pages/part/PartPricingPanel.tsx:125 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:181 msgid "BOM Pricing" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:127 -#: src/pages/part/pricing/PricingOverviewPanel.tsx:128 +#: src/pages/part/PartPricingPanel.tsx:132 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:202 msgid "Variant Pricing" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:139 -#: src/pages/part/pricing/PricingOverviewPanel.tsx:135 +#: src/pages/part/PartPricingPanel.tsx:144 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:209 msgid "Sale Pricing" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:146 -#: src/pages/part/pricing/PricingOverviewPanel.tsx:142 +#: src/pages/part/PartPricingPanel.tsx:151 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:216 msgid "Sale History" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:58 -#: src/pages/part/pricing/BomPricingPanel.tsx:138 -#: src/tables/ColumnRenderers.tsx:262 +#: src/pages/part/PartSchedulingDetail.tsx:47 +#: src/pages/part/PartSchedulingDetail.tsx:299 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:156 +msgid "Maximum" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:50 +#: src/pages/part/PartSchedulingDetail.tsx:289 +msgid "Scheduled" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:53 +#: src/pages/part/PartSchedulingDetail.tsx:294 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:144 +msgid "Minimum" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:68 +msgid "Order" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:92 +msgid "Quantity is speculative" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:101 +msgid "No date available for provided quantity" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:105 +msgid "Date is in the past" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:112 +msgid "Scheduled Quantity" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:240 +msgid "No information available" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:241 +msgid "There is no scheduling information available for the selected part" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:276 +msgid "Expected Quantity" +msgstr "" + +#: src/pages/part/PartStocktakeDetail.tsx:63 +#: src/tables/FilterSelectDrawer.tsx:167 +#: src/tables/FilterSelectDrawer.tsx:174 +#: src/tables/build/BuildOrderTestTable.tsx:135 +#: src/tables/purchasing/ManufacturerPartParameterTable.tsx:38 +#: src/tables/stock/StockItemTestResultTable.tsx:192 +msgid "Value" +msgstr "" + +#: src/pages/part/PartStocktakeDetail.tsx:82 +msgid "Edit Stocktake Entry" +msgstr "" + +#: src/pages/part/PartStocktakeDetail.tsx:90 +msgid "Delete Stocktake Entry" +msgstr "" + +#: src/pages/part/PartStocktakeDetail.tsx:96 +#: src/tables/settings/StocktakeReportTable.tsx:69 +msgid "Generate Stocktake Report" +msgstr "" + +#: src/pages/part/PartStocktakeDetail.tsx:101 +#: src/tables/settings/StocktakeReportTable.tsx:71 +msgid "Stocktake report scheduled" +msgstr "" + +#: src/pages/part/PartStocktakeDetail.tsx:119 +#: src/pages/part/PartStocktakeDetail.tsx:235 +#: src/pages/stock/StockDetail.tsx:303 +#: src/tables/stock/StockItemTable.tsx:249 +msgid "Stock Value" +msgstr "" + +#: src/pages/part/PartStocktakeDetail.tsx:139 +#: src/tables/settings/StocktakeReportTable.tsx:77 +msgid "New Stocktake Report" +msgstr "" + +#: src/pages/part/PartStocktakeDetail.tsx:258 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:295 +msgid "Minimum Value" +msgstr "" + +#: src/pages/part/PartStocktakeDetail.tsx:264 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:296 +msgid "Maximum Value" +msgstr "" + +#: src/pages/part/pricing/BomPricingPanel.tsx:87 +#: src/pages/part/pricing/BomPricingPanel.tsx:177 +#: src/tables/ColumnRenderers.tsx:276 #: src/tables/bom/BomTable.tsx:185 #: src/tables/general/ExtraLineItemTable.tsx:64 -#: src/tables/purchasing/PurchaseOrderTable.tsx:112 -#: src/tables/sales/ReturnOrderTable.tsx:104 -#: src/tables/sales/SalesOrderLineItemTable.tsx:89 -#: src/tables/sales/SalesOrderTable.tsx:136 +#: src/tables/purchasing/PurchaseOrderTable.tsx:113 +#: src/tables/sales/ReturnOrderTable.tsx:127 +#: src/tables/sales/SalesOrderLineItemTable.tsx:97 +#: src/tables/sales/SalesOrderTable.tsx:149 msgid "Total Price" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:78 -#: src/pages/part/pricing/BomPricingPanel.tsx:102 +#: src/pages/part/pricing/BomPricingPanel.tsx:112 +#: src/pages/part/pricing/BomPricingPanel.tsx:141 #: src/tables/bom/UsedInTable.tsx:49 +#: src/tables/build/BuildLineTable.tsx:296 #: src/tables/part/PartTable.tsx:202 msgid "Component" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:81 -#: src/pages/part/pricing/VariantPricingPanel.tsx:37 -#: src/pages/part/pricing/VariantPricingPanel.tsx:97 -msgid "Minimum Price" -msgstr "" - -#: src/pages/part/pricing/BomPricingPanel.tsx:82 -#: src/pages/part/pricing/VariantPricingPanel.tsx:45 -#: src/pages/part/pricing/VariantPricingPanel.tsx:98 -msgid "Maximum Price" -msgstr "" - #: src/pages/part/pricing/BomPricingPanel.tsx:112 #~ msgid "Minimum Total Price" #~ msgstr "Minimum Total Price" +#: src/pages/part/pricing/BomPricingPanel.tsx:115 +#: src/pages/part/pricing/VariantPricingPanel.tsx:37 +#: src/pages/part/pricing/VariantPricingPanel.tsx:97 +msgid "Minimum Price" +msgstr "" + +#: src/pages/part/pricing/BomPricingPanel.tsx:116 +#: src/pages/part/pricing/VariantPricingPanel.tsx:45 +#: src/pages/part/pricing/VariantPricingPanel.tsx:98 +msgid "Maximum Price" +msgstr "" + #: src/pages/part/pricing/BomPricingPanel.tsx:117 #~ msgid "Maximum Total Price" #~ msgstr "Maximum Total Price" -#: src/pages/part/pricing/BomPricingPanel.tsx:129 -#: src/pages/part/pricing/PriceBreakPanel.tsx:172 -#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:67 -#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:128 -#: src/pages/part/pricing/SupplierPricingPanel.tsx:62 +#: src/pages/part/pricing/BomPricingPanel.tsx:168 +#: src/pages/part/pricing/PriceBreakPanel.tsx:173 +#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:70 +#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:125 +#: src/pages/part/pricing/SupplierPricingPanel.tsx:66 +#: src/pages/stock/StockDetail.tsx:291 #: src/tables/bom/BomTable.tsx:176 #: src/tables/general/ExtraLineItemTable.tsx:56 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:223 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:225 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:92 +#: src/tables/stock/StockItemTable.tsx:239 msgid "Unit Price" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:154 +#: src/pages/part/pricing/BomPricingPanel.tsx:193 #: src/pages/part/pricing/VariantPricingPanel.tsx:53 -#: src/tables/purchasing/SupplierPartTable.tsx:148 +#: src/tables/purchasing/SupplierPartTable.tsx:150 msgid "Updated" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:219 +#: src/pages/part/pricing/BomPricingPanel.tsx:258 msgid "Pie Chart" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:220 +#: src/pages/part/pricing/BomPricingPanel.tsx:259 msgid "Bar Chart" msgstr "" #: src/pages/part/pricing/PriceBreakPanel.tsx:58 -#: src/pages/part/pricing/PriceBreakPanel.tsx:110 +#: src/pages/part/pricing/PriceBreakPanel.tsx:111 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:142 -#: src/tables/purchasing/SupplierPriceBreakTable.tsx:168 +#: src/tables/purchasing/SupplierPriceBreakTable.tsx:169 msgid "Add Price Break" msgstr "" @@ -4986,46 +5846,70 @@ msgstr "" msgid "Price Break" msgstr "" -#: src/pages/part/pricing/PriceBreakPanel.tsx:170 +#: src/pages/part/pricing/PriceBreakPanel.tsx:171 msgid "Price" msgstr "" -#: src/pages/part/pricing/PricingOverviewPanel.tsx:51 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:68 +msgid "Refreshing pricing data" +msgstr "" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:88 +msgid "Pricing data updated" +msgstr "" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:95 +msgid "Failed to update pricing data" +msgstr "" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:104 +msgid "Edit Pricing" +msgstr "" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:125 msgid "Pricing Category" msgstr "" -#: src/pages/part/pricing/PricingOverviewPanel.tsx:70 -msgid "Minimum" -msgstr "" - -#: src/pages/part/pricing/PricingOverviewPanel.tsx:82 -msgid "Maximum" -msgstr "" - -#: src/pages/part/pricing/PricingOverviewPanel.tsx:114 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:188 msgid "Purchase Pricing" msgstr "" -#: src/pages/part/pricing/PricingOverviewPanel.tsx:149 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:223 msgid "Override Pricing" msgstr "" -#: src/pages/part/pricing/PricingOverviewPanel.tsx:156 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:230 msgid "Overall Pricing" msgstr "" -#: src/pages/part/pricing/PricingOverviewPanel.tsx:175 -#: src/pages/stock/StockDetail.tsx:129 -#: src/tables/stock/StockItemTable.tsx:240 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:249 +#: src/pages/stock/StockDetail.tsx:145 +#: src/tables/stock/StockItemTable.tsx:275 msgid "Last Updated" msgstr "" -#: src/pages/part/pricing/PricingOverviewPanel.tsx:192 -msgid "Minimum Value" +#: src/pages/part/pricing/PricingOverviewPanel.tsx:253 +msgid "Pricing Not Set" msgstr "" -#: src/pages/part/pricing/PricingOverviewPanel.tsx:193 -msgid "Maximum Value" +#: src/pages/part/pricing/PricingOverviewPanel.tsx:254 +msgid "Pricing data has not been calculated for this part" +msgstr "" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:258 +msgid "Pricing Actions" +msgstr "" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:261 +msgid "Refresh" +msgstr "" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:262 +msgid "Refresh pricing data" +msgstr "" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:277 +msgid "Edit pricing data" msgstr "" #: src/pages/part/pricing/PricingPanel.tsx:24 @@ -5044,28 +5928,20 @@ msgstr "" msgid "Loading pricing data" msgstr "" -#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:40 -#: src/pages/part/pricing/SaleHistoryPanel.tsx:36 -#: src/tables/ColumnRenderers.tsx:201 -#: src/tables/build/BuildOrderTestTable.tsx:150 -#: src/tables/plugin/PluginListTable.tsx:139 -msgid "Date" -msgstr "" - #: src/pages/part/pricing/PurchaseHistoryPanel.tsx:47 msgid "Purchase Price" msgstr "" -#: src/pages/part/pricing/SaleHistoryPanel.tsx:22 -msgid "Sale Order" -msgstr "" +#: src/pages/part/pricing/SaleHistoryPanel.tsx:24 +#~ msgid "Sale Order" +#~ msgstr "Sale Order" -#: src/pages/part/pricing/SaleHistoryPanel.tsx:42 -#: src/pages/part/pricing/SaleHistoryPanel.tsx:92 +#: src/pages/part/pricing/SaleHistoryPanel.tsx:44 +#: src/pages/part/pricing/SaleHistoryPanel.tsx:87 msgid "Sale Price" msgstr "" -#: src/pages/part/pricing/SupplierPricingPanel.tsx:65 +#: src/pages/part/pricing/SupplierPricingPanel.tsx:69 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:83 msgid "Supplier Price" msgstr "" @@ -5075,23 +5951,23 @@ msgstr "" msgid "Variant Part" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:93 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:87 msgid "Edit Purchase Order" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:102 -#: src/tables/purchasing/PurchaseOrderTable.tsx:128 -#: src/tables/purchasing/PurchaseOrderTable.tsx:140 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:96 +#: src/tables/purchasing/PurchaseOrderTable.tsx:129 +#: src/tables/purchasing/PurchaseOrderTable.tsx:142 msgid "Add Purchase Order" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:127 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:121 msgid "Supplier Reference" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:158 -#: src/pages/sales/ReturnOrderDetail.tsx:137 -#: src/pages/sales/SalesOrderDetail.tsx:137 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:152 +#: src/pages/sales/ReturnOrderDetail.tsx:129 +#: src/pages/sales/SalesOrderDetail.tsx:132 msgid "Completed Line Items" msgstr "" @@ -5101,91 +5977,112 @@ msgstr "" #~ msgid "Order Currency," #~ msgstr "Order Currency," -#: src/pages/purchasing/PurchaseOrderDetail.tsx:165 -#: src/pages/sales/ReturnOrderDetail.tsx:144 -#: src/pages/sales/SalesOrderDetail.tsx:153 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:161 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:231 +msgid "Destination" +msgstr "" + +#: src/pages/purchasing/PurchaseOrderDetail.tsx:167 +#: src/pages/sales/ReturnOrderDetail.tsx:136 +#: src/pages/sales/SalesOrderDetail.tsx:148 msgid "Order Currency" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:172 -#: src/pages/sales/ReturnOrderDetail.tsx:151 -#: src/pages/sales/SalesOrderDetail.tsx:160 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:173 +#: src/pages/sales/ReturnOrderDetail.tsx:143 +#: src/pages/sales/SalesOrderDetail.tsx:155 msgid "Total Cost" msgstr "" #: src/pages/purchasing/PurchaseOrderDetail.tsx:207 -#: src/pages/sales/ReturnOrderDetail.tsx:186 -#: src/pages/sales/SalesOrderDetail.tsx:195 -msgid "Created On" +#: src/pages/sales/ReturnOrderDetail.tsx:183 +#: src/pages/sales/SalesOrderDetail.tsx:191 +#~ msgid "Created On" +#~ msgstr "Created On" + +#: src/pages/purchasing/PurchaseOrderDetail.tsx:221 +#: src/pages/sales/ReturnOrderDetail.tsx:193 +#: src/pages/sales/SalesOrderDetail.tsx:204 +msgid "Issue Date" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:252 -#: src/pages/sales/ReturnOrderDetail.tsx:231 -#: src/pages/sales/SalesOrderDetail.tsx:266 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:237 +#: src/pages/sales/ReturnOrderDetail.tsx:209 +#: src/pages/sales/SalesOrderDetail.tsx:219 +#: src/tables/build/BuildOrderTable.tsx:98 +#: src/tables/part/PartPurchaseOrdersTable.tsx:105 +#: src/tables/sales/ReturnOrderTable.tsx:122 +msgid "Completion Date" +msgstr "" + +#: src/pages/purchasing/PurchaseOrderDetail.tsx:276 +#: src/pages/sales/ReturnOrderDetail.tsx:248 +#: src/pages/sales/SalesOrderDetail.tsx:288 msgid "Order Details" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:280 -#: src/pages/sales/ReturnOrderDetail.tsx:258 -#: src/pages/sales/SalesOrderDetail.tsx:297 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:304 +#: src/pages/sales/ReturnOrderDetail.tsx:276 +#: src/pages/sales/SalesOrderDetail.tsx:319 msgid "Extra Line Items" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:337 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:346 msgid "Issue Purchase Order" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:345 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:354 msgid "Cancel Purchase Order" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:353 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:362 msgid "Hold Purchase Order" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:361 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:370 msgid "Complete Purchase Order" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:427 -#: src/pages/sales/ReturnOrderDetail.tsx:428 -#: src/pages/sales/SalesOrderDetail.tsx:468 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:425 +#: src/pages/sales/ReturnOrderDetail.tsx:424 +#: src/pages/sales/SalesOrderDetail.tsx:464 msgid "Order Actions" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:101 -#: src/pages/sales/SalesOrderDetail.tsx:107 -#: src/tables/sales/SalesOrderTable.tsx:124 +#: src/pages/sales/ReturnOrderDetail.tsx:92 +#: src/pages/sales/SalesOrderDetail.tsx:101 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:109 +#: src/tables/sales/SalesOrderTable.tsx:137 msgid "Customer Reference" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:315 +#: src/pages/sales/ReturnOrderDetail.tsx:322 msgid "Edit Return Order" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:324 -#: src/tables/sales/ReturnOrderTable.tsx:119 -#: src/tables/sales/ReturnOrderTable.tsx:128 +#: src/pages/sales/ReturnOrderDetail.tsx:331 +#: src/tables/sales/ReturnOrderTable.tsx:142 +#: src/tables/sales/ReturnOrderTable.tsx:152 msgid "Add Return Order" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:336 +#: src/pages/sales/ReturnOrderDetail.tsx:343 msgid "Issue Return Order" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:344 +#: src/pages/sales/ReturnOrderDetail.tsx:349 +#~ msgid "Order canceled" +#~ msgstr "Order canceled" + +#: src/pages/sales/ReturnOrderDetail.tsx:351 msgid "Cancel Return Order" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:347 -msgid "Order canceled" -msgstr "" - -#: src/pages/sales/ReturnOrderDetail.tsx:352 +#: src/pages/sales/ReturnOrderDetail.tsx:359 msgid "Hold Return Order" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:360 +#: src/pages/sales/ReturnOrderDetail.tsx:367 msgid "Complete Return Order" msgstr "" @@ -5193,117 +6090,193 @@ msgstr "" msgid "Customers" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:145 +#: src/pages/sales/SalesOrderDetail.tsx:140 msgid "Completed Shipments" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:243 -msgid "Edit Sales Order" -msgstr "" - -#: src/pages/sales/SalesOrderDetail.tsx:252 -#: src/tables/sales/SalesOrderTable.tsx:84 -#: src/tables/sales/SalesOrderTable.tsx:96 -msgid "Add Sales Order" -msgstr "" - #: src/pages/sales/SalesOrderDetail.tsx:256 #~ msgid "Pending Shipments" #~ msgstr "Pending Shipments" -#: src/pages/sales/SalesOrderDetail.tsx:313 +#: src/pages/sales/SalesOrderDetail.tsx:261 +msgid "Edit Sales Order" +msgstr "" + +#: src/pages/sales/SalesOrderDetail.tsx:274 +#: src/tables/sales/SalesOrderTable.tsx:96 +#: src/tables/sales/SalesOrderTable.tsx:109 +msgid "Add Sales Order" +msgstr "" + +#: src/pages/sales/SalesOrderDetail.tsx:335 msgid "Shipments" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:369 +#: src/pages/sales/SalesOrderDetail.tsx:376 msgid "Issue Sales Order" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:377 +#: src/pages/sales/SalesOrderDetail.tsx:384 msgid "Cancel Sales Order" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:385 +#: src/pages/sales/SalesOrderDetail.tsx:392 msgid "Hold Sales Order" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:393 +#: src/pages/sales/SalesOrderDetail.tsx:400 msgid "Complete Sales Order" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:432 +#: src/pages/sales/SalesOrderDetail.tsx:439 msgid "Ship Order" msgstr "" -#: src/pages/stock/LocationDetail.tsx:117 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:117 +#: src/tables/sales/SalesOrderShipmentTable.tsx:96 +msgid "Shipment Reference" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:124 +msgid "Allocated Items" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:133 +msgid "Tracking Number" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:141 +msgid "Invoice Number" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:149 +#: src/tables/ColumnRenderers.tsx:242 +#: src/tables/sales/SalesOrderAllocationTable.tsx:142 +#: src/tables/sales/SalesOrderShipmentTable.tsx:115 +msgid "Shipment Date" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:157 +#: src/tables/sales/SalesOrderShipmentTable.tsx:119 +msgid "Delivery Date" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:204 +msgid "Shipment Details" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:210 +msgid "Assigned Items" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:241 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:317 +#: src/tables/sales/SalesOrderShipmentTable.tsx:75 +msgid "Edit Shipment" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:248 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:322 +#: src/tables/sales/SalesOrderShipmentTable.tsx:67 +msgid "Cancel Shipment" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:261 +#: src/tables/sales/SalesOrderShipmentTable.tsx:83 +#: src/tables/sales/SalesOrderShipmentTable.tsx:151 +msgid "Complete Shipment" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:276 +#: src/tables/part/PartPurchaseOrdersTable.tsx:121 +msgid "Pending" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:277 +#: src/tables/sales/SalesOrderAllocationTable.tsx:148 +#: src/tables/sales/SalesOrderShipmentTable.tsx:108 +#: src/tables/sales/SalesOrderShipmentTable.tsx:197 +msgid "Shipped" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:279 +#: src/tables/sales/SalesOrderShipmentTable.tsx:202 +msgid "Delivered" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:293 +msgid "Send Shipment" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:312 +msgid "Shipment Actions" +msgstr "" + +#: src/pages/stock/LocationDetail.tsx:111 msgid "Parent Location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:135 +#: src/pages/stock/LocationDetail.tsx:129 msgid "Sublocations" msgstr "" -#: src/pages/stock/LocationDetail.tsx:147 +#: src/pages/stock/LocationDetail.tsx:141 #: src/tables/stock/StockLocationTable.tsx:54 msgid "External" msgstr "" -#: src/pages/stock/LocationDetail.tsx:153 +#: src/pages/stock/LocationDetail.tsx:147 #: src/tables/stock/StockLocationTable.tsx:63 msgid "Location Type" msgstr "" -#: src/pages/stock/LocationDetail.tsx:164 +#: src/pages/stock/LocationDetail.tsx:158 msgid "Top level stock location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:175 +#: src/pages/stock/LocationDetail.tsx:169 msgid "Location Details" msgstr "" -#: src/pages/stock/LocationDetail.tsx:201 +#: src/pages/stock/LocationDetail.tsx:195 msgid "Default Parts" msgstr "" -#: src/pages/stock/LocationDetail.tsx:220 -#: src/pages/stock/LocationDetail.tsx:351 +#: src/pages/stock/LocationDetail.tsx:214 +#: src/pages/stock/LocationDetail.tsx:336 #: src/tables/stock/StockLocationTable.tsx:123 msgid "Edit Stock Location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:241 -#: src/pages/stock/LocationDetail.tsx:356 +#: src/pages/stock/LocationDetail.tsx:235 +#: src/pages/stock/LocationDetail.tsx:341 msgid "Delete Stock Location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:244 +#: src/pages/stock/LocationDetail.tsx:238 msgid "Items Action" msgstr "" -#: src/pages/stock/LocationDetail.tsx:245 +#: src/pages/stock/LocationDetail.tsx:239 msgid "Action for stock items in this location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:250 +#: src/pages/stock/LocationDetail.tsx:244 msgid "Child Locations Action" msgstr "" -#: src/pages/stock/LocationDetail.tsx:251 +#: src/pages/stock/LocationDetail.tsx:245 msgid "Action for child locations in this location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:346 +#: src/pages/stock/LocationDetail.tsx:332 msgid "Location Actions" msgstr "" -#: src/pages/stock/StockDetail.tsx:108 +#: src/pages/stock/StockDetail.tsx:116 msgid "Base Part" msgstr "" -#: src/pages/stock/StockDetail.tsx:115 -msgid "Stock Status" -msgstr "" - #: src/pages/stock/StockDetail.tsx:155 #~ msgid "Link custom barcode to stock item" #~ msgstr "Link custom barcode to stock item" @@ -5312,113 +6285,179 @@ msgstr "" #~ msgid "Unlink custom barcode from stock item" #~ msgstr "Unlink custom barcode from stock item" -#: src/pages/stock/StockDetail.tsx:188 -msgid "Installed In" -msgstr "" - -#: src/pages/stock/StockDetail.tsx:204 -msgid "Consumed By" +#: src/pages/stock/StockDetail.tsx:178 +msgid "Allocated to Orders" msgstr "" #: src/pages/stock/StockDetail.tsx:205 #~ msgid "Edit stock item" #~ msgstr "Edit stock item" -#: src/pages/stock/StockDetail.tsx:213 -#: src/tables/build/BuildAllocatedStockTable.tsx:64 -#: src/tables/stock/StockTrackingTable.tsx:96 -msgid "Build Order" +#: src/pages/stock/StockDetail.tsx:209 +msgid "Installed In" msgstr "" #: src/pages/stock/StockDetail.tsx:217 #~ msgid "Delete stock item" #~ msgstr "Delete stock item" -#: src/pages/stock/StockDetail.tsx:291 +#: src/pages/stock/StockDetail.tsx:226 +msgid "Parent Item" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:230 +msgid "Parent stock item" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:236 +msgid "Consumed By" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:245 +#: src/tables/build/BuildAllocatedStockTable.tsx:77 +#: src/tables/stock/StockTrackingTable.tsx:100 +msgid "Build Order" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:283 +#: src/tables/stock/StockItemTable.tsx:270 +msgid "Expiry Date" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:414 msgid "Stock Details" msgstr "" -#: src/pages/stock/StockDetail.tsx:297 +#: src/pages/stock/StockDetail.tsx:420 msgid "Stock Tracking" msgstr "" -#: src/pages/stock/StockDetail.tsx:350 -msgid "Test Data" -msgstr "" - -#: src/pages/stock/StockDetail.tsx:364 -msgid "Installed Items" -msgstr "" - -#: src/pages/stock/StockDetail.tsx:371 -msgid "Child Items" -msgstr "" - -#: src/pages/stock/StockDetail.tsx:425 -msgid "Edit Stock Item" -msgstr "" - #: src/pages/stock/StockDetail.tsx:433 #~ msgid "Duplicate stock item" #~ msgstr "Duplicate stock item" -#: src/pages/stock/StockDetail.tsx:452 +#: src/pages/stock/StockDetail.tsx:475 +msgid "Test Data" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:489 +msgid "Installed Items" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:496 +msgid "Child Items" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:545 +msgid "Edit Stock Item" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:572 msgid "Delete Stock Item" msgstr "" -#: src/pages/stock/StockDetail.tsx:504 +#: src/pages/stock/StockDetail.tsx:604 +msgid "Serialize Stock Item" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:617 +msgid "Stock item serialized" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:623 +msgid "Return Stock Item" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:626 +msgid "Return this item into stock. This will remove the customer assignment." +msgstr "" + +#: src/pages/stock/StockDetail.tsx:636 +msgid "Item returned to stock" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:666 msgid "Stock Operations" msgstr "" -#: src/pages/stock/StockDetail.tsx:509 +#: src/pages/stock/StockDetail.tsx:671 msgid "Count stock" msgstr "Contar stock" -#: src/pages/stock/StockDetail.tsx:519 -#: src/tables/stock/StockItemTable.tsx:449 -msgid "Add stock" -msgstr "Agregar stock" +#: src/pages/stock/StockDetail.tsx:671 +#: src/tables/stock/StockItemTable.tsx:452 +#~ msgid "Add stock" +#~ msgstr "Add stock" -#: src/pages/stock/StockDetail.tsx:527 -#: src/tables/stock/StockItemTable.tsx:458 -msgid "Remove stock" -msgstr "Remover stock" +#: src/pages/stock/StockDetail.tsx:680 +#: src/tables/stock/StockItemTable.tsx:461 +#~ msgid "Remove stock" +#~ msgstr "Remove stock" -#: src/pages/stock/StockDetail.tsx:534 +#: src/pages/stock/StockDetail.tsx:698 +#: src/tables/stock/StockItemTable.tsx:481 +#~ msgid "Transfer stock" +#~ msgstr "Transfer stock" + +#: src/pages/stock/StockDetail.tsx:699 +msgid "Serialize" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:700 +msgid "Serialize stock" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:711 msgid "Transfer" msgstr "Transferir" -#: src/pages/stock/StockDetail.tsx:535 -#: src/tables/stock/StockItemTable.tsx:478 -msgid "Transfer stock" -msgstr "Transferir stock" +#: src/pages/stock/StockDetail.tsx:722 +msgid "Return" +msgstr "" -#: src/pages/stock/StockDetail.tsx:546 +#: src/pages/stock/StockDetail.tsx:723 +msgid "Return from customer" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:738 msgid "Stock Item Actions" msgstr "" -#: src/tables/ColumnRenderers.tsx:30 +#: src/pages/stock/StockDetail.tsx:808 +msgid "Stale" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:814 +msgid "Expired" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:820 +msgid "Unavailable" +msgstr "" + +#: src/tables/ColumnRenderers.tsx:36 msgid "Part is not active" msgstr "La pieza no está activa" -#: src/tables/ColumnRenderers.tsx:35 -msgid "Part is locked" +#: src/tables/ColumnRenderers.tsx:41 +#: src/tables/bom/BomTable.tsx:542 +#: src/tables/part/PartParameterTable.tsx:193 +#: src/tables/part/PartTestTemplateTable.tsx:253 +msgid "Part is Locked" msgstr "" -#: src/tables/ColumnRenderers.tsx:57 +#: src/tables/ColumnRenderers.tsx:41 +#~ msgid "Part is locked" +#~ msgstr "Part is locked" + +#: src/tables/ColumnRenderers.tsx:46 +msgid "You are subscribed to notifications for this part" +msgstr "" + +#: src/tables/ColumnRenderers.tsx:68 msgid "No location set" msgstr "" -#: src/tables/ColumnRenderers.tsx:228 -#: src/tables/sales/SalesOrderShipmentTable.tsx:79 -msgid "Shipment Date" -msgstr "" - -#: src/tables/ColumnRenderers.tsx:248 -#: src/tables/settings/CurrencyTable.tsx:23 -msgid "Currency" -msgstr "" - #: src/tables/ColumnSelect.tsx:16 #: src/tables/ColumnSelect.tsx:23 msgid "Select Columns" @@ -5452,91 +6491,116 @@ msgstr "" msgid "Download Data" msgstr "" -#: src/tables/Filter.tsx:89 -#: src/tables/build/BuildOrderTable.tsx:135 +#: src/tables/Filter.tsx:101 msgid "Assigned to me" msgstr "" -#: src/tables/Filter.tsx:90 -#: src/tables/build/BuildOrderTable.tsx:136 +#: src/tables/Filter.tsx:102 msgid "Show orders assigned to me" msgstr "" -#: src/tables/Filter.tsx:97 +#: src/tables/Filter.tsx:106 +#~ msgid "Show overdue orders" +#~ msgstr "Show overdue orders" + +#: src/tables/Filter.tsx:109 +#: src/tables/build/BuildOrderTable.tsx:120 +#: src/tables/sales/SalesOrderAllocationTable.tsx:59 msgid "Outstanding" msgstr "" -#: src/tables/Filter.tsx:98 -msgid "Show outstanding orders" +#: src/tables/Filter.tsx:110 +msgid "Show outstanding items" msgstr "" -#: src/tables/Filter.tsx:105 -#: src/tables/build/BuildOrderTable.tsx:128 +#: src/tables/Filter.tsx:117 msgid "Overdue" msgstr "" -#: src/tables/Filter.tsx:106 -msgid "Show overdue orders" +#: src/tables/Filter.tsx:118 +msgid "Show overdue items" msgstr "" -#: src/tables/FilterSelectDrawer.tsx:51 +#: src/tables/Filter.tsx:125 +msgid "Minimum Date" +msgstr "" + +#: src/tables/Filter.tsx:126 +msgid "Show items after this date" +msgstr "" + +#: src/tables/Filter.tsx:134 +msgid "Maximum Date" +msgstr "" + +#: src/tables/Filter.tsx:135 +msgid "Show items before this date" +msgstr "" + +#: src/tables/Filter.tsx:144 +msgid "Has Project Code" +msgstr "" + +#: src/tables/Filter.tsx:145 +msgid "Show orders with an assigned project code" +msgstr "" + +#: src/tables/FilterSelectDrawer.tsx:55 msgid "Remove filter" msgstr "" -#: src/tables/FilterSelectDrawer.tsx:130 +#: src/tables/FilterSelectDrawer.tsx:159 msgid "Select filter" msgstr "" -#: src/tables/FilterSelectDrawer.tsx:131 +#: src/tables/FilterSelectDrawer.tsx:160 msgid "Filter" msgstr "" -#: src/tables/FilterSelectDrawer.tsx:138 -#: src/tables/build/BuildOrderTestTable.tsx:134 -#: src/tables/purchasing/ManufacturerPartParameterTable.tsx:38 -#: src/tables/stock/StockItemTestResultTable.tsx:186 -msgid "Value" +#: src/tables/FilterSelectDrawer.tsx:168 +msgid "Select date value" msgstr "" -#: src/tables/FilterSelectDrawer.tsx:140 +#: src/tables/FilterSelectDrawer.tsx:176 msgid "Select filter value" msgstr "" -#: src/tables/FilterSelectDrawer.tsx:183 +#: src/tables/FilterSelectDrawer.tsx:219 +#: src/tables/InvenTreeTableHeader.tsx:214 msgid "Table Filters" msgstr "" -#: src/tables/FilterSelectDrawer.tsx:215 +#: src/tables/FilterSelectDrawer.tsx:251 msgid "Add Filter" msgstr "" -#: src/tables/FilterSelectDrawer.tsx:224 +#: src/tables/FilterSelectDrawer.tsx:260 msgid "Clear Filters" msgstr "" -#: src/tables/InvenTreeTable.tsx:123 -#: src/tables/InvenTreeTable.tsx:431 -#: src/tables/InvenTreeTable.tsx:455 +#: src/tables/InvenTreeTable.tsx:96 +#: src/tables/InvenTreeTable.tsx:417 +#: src/tables/InvenTreeTable.tsx:441 msgid "No records found" msgstr "" -#: src/tables/InvenTreeTable.tsx:466 +#: src/tables/InvenTreeTable.tsx:452 msgid "Server returned incorrect data type" msgstr "" -#: src/tables/InvenTreeTable.tsx:474 +#: src/tables/InvenTreeTable.tsx:460 msgid "Bad request" msgstr "" -#: src/tables/InvenTreeTable.tsx:477 +#: src/tables/InvenTreeTable.tsx:463 msgid "Unauthorized" msgstr "" -#: src/tables/InvenTreeTable.tsx:480 +#: src/tables/InvenTreeTable.tsx:466 msgid "Forbidden" msgstr "" -#: src/tables/InvenTreeTable.tsx:483 +#: src/tables/InvenTreeTable.tsx:469 msgid "Not found" msgstr "" @@ -5544,18 +6608,6 @@ msgstr "" #~ msgid "Are you sure you want to delete the selected records?" #~ msgstr "Are you sure you want to delete the selected records?" -#: src/tables/InvenTreeTable.tsx:525 -msgid "Delete Selected Items" -msgstr "" - -#: src/tables/InvenTreeTable.tsx:529 -msgid "Are you sure you want to delete the selected items?" -msgstr "" - -#: src/tables/InvenTreeTable.tsx:531 -msgid "This action cannot be undone!" -msgstr "" - #: src/tables/InvenTreeTable.tsx:535 #~ msgid "Deleted records" #~ msgstr "Deleted records" @@ -5568,31 +6620,56 @@ msgstr "" #~ msgid "Failed to delete records" #~ msgstr "Failed to delete records" +#: src/tables/InvenTreeTable.tsx:552 +#~ msgid "This action cannot be undone!" +#~ msgstr "This action cannot be undone!" + #: src/tables/InvenTreeTable.tsx:594 #: src/tables/InvenTreeTable.tsx:595 #~ msgid "Print actions" #~ msgstr "Print actions" -#: src/tables/InvenTreeTable.tsx:618 -#: src/tables/InvenTreeTable.tsx:619 -msgid "Barcode actions" +#: src/tables/InvenTreeTable.tsx:655 +#: src/tables/InvenTreeTable.tsx:656 +#~ msgid "Barcode actions" +#~ msgstr "Barcode actions" + +#: src/tables/InvenTreeTable.tsx:712 +#~ msgid "Table filters" +#~ msgstr "Table filters" + +#: src/tables/InvenTreeTable.tsx:725 +#~ msgid "Clear custom query filters" +#~ msgstr "Clear custom query filters" + +#: src/tables/InvenTreeTableHeader.tsx:98 +msgid "Delete Selected Items" msgstr "" -#: src/tables/InvenTreeTable.tsx:628 +#: src/tables/InvenTreeTableHeader.tsx:102 +msgid "Are you sure you want to delete the selected items?" +msgstr "" + +#: src/tables/InvenTreeTableHeader.tsx:104 +#: src/tables/plugin/PluginListTable.tsx:305 +msgid "This action cannot be undone" +msgstr "" + +#: src/tables/InvenTreeTableHeader.tsx:142 +msgid "Custom table filters are active" +msgstr "" + +#: src/tables/InvenTreeTableHeader.tsx:169 msgid "Delete selected records" msgstr "" -#: src/tables/InvenTreeTable.tsx:649 +#: src/tables/InvenTreeTableHeader.tsx:188 msgid "Refresh data" msgstr "" -#: src/tables/InvenTreeTable.tsx:675 -msgid "Table filters" -msgstr "" - #: src/tables/TableHoverCard.tsx:35 -msgid "item-{idx}" -msgstr "" +#~ msgid "item-{idx}" +#~ msgstr "item-{idx}" #: src/tables/UploadAction.tsx:7 #~ msgid "Upload Data" @@ -5607,31 +6684,36 @@ msgid "Part Information" msgstr "" #: src/tables/bom/BomTable.tsx:212 -#: src/tables/build/BuildLineTable.tsx:126 +#: src/tables/build/BuildLineTable.tsx:257 #: src/tables/part/PartTable.tsx:125 msgid "External stock" msgstr "" #: src/tables/bom/BomTable.tsx:220 -#: src/tables/build/BuildLineTable.tsx:89 +#: src/tables/build/BuildLineTable.tsx:220 msgid "Includes substitute stock" msgstr "" #: src/tables/bom/BomTable.tsx:229 -#: src/tables/build/BuildLineTable.tsx:99 -#: src/tables/sales/SalesOrderLineItemTable.tsx:127 +#: src/tables/build/BuildLineTable.tsx:230 +#: src/tables/sales/SalesOrderLineItemTable.tsx:135 msgid "Includes variant stock" msgstr "" +#: src/tables/bom/BomTable.tsx:245 +#: src/tables/part/PartTable.tsx:92 +msgid "Building" +msgstr "" + #: src/tables/bom/BomTable.tsx:254 #: src/tables/part/PartTable.tsx:153 -#: src/tables/sales/SalesOrderLineItemTable.tsx:150 -#: src/tables/stock/StockItemTable.tsx:216 +#: src/tables/sales/SalesOrderLineItemTable.tsx:158 +#: src/tables/stock/StockItemTable.tsx:206 msgid "Stock Information" msgstr "" #: src/tables/bom/BomTable.tsx:285 -#: src/tables/build/BuildLineTable.tsx:248 +#: src/tables/build/BuildLineTable.tsx:409 msgid "Consumable item" msgstr "" @@ -5644,7 +6726,7 @@ msgstr "" #~ msgstr "Create BOM Item" #: src/tables/bom/BomTable.tsx:306 -#: src/tables/build/BuildLineTable.tsx:69 +#: src/tables/build/BuildLineTable.tsx:200 msgid "Show testable items" msgstr "" @@ -5657,11 +6739,12 @@ msgid "Show trackable items" msgstr "" #: src/tables/bom/BomTable.tsx:316 -#: src/tables/build/BuildLineTable.tsx:64 +#: src/tables/build/BuildLineTable.tsx:195 msgid "Show assembled items" msgstr "" #: src/tables/bom/BomTable.tsx:321 +#: src/tables/build/BuildLineTable.tsx:180 msgid "Show items with available stock" msgstr "" @@ -5705,7 +6788,7 @@ msgstr "" #: src/tables/bom/BomTable.tsx:345 #: src/tables/bom/UsedInTable.tsx:79 -#: src/tables/build/BuildLineTable.tsx:58 +#: src/tables/build/BuildLineTable.tsx:189 msgid "Optional" msgstr "" @@ -5723,7 +6806,7 @@ msgstr "" #~ msgstr "Bom item deleted" #: src/tables/bom/BomTable.tsx:350 -#: src/tables/build/BuildLineTable.tsx:53 +#: src/tables/build/BuildLineTable.tsx:184 msgid "Consumable" msgstr "" @@ -5749,12 +6832,12 @@ msgid "Show items with pricing" msgstr "" #: src/tables/bom/BomTable.tsx:378 -#: src/tables/bom/BomTable.tsx:511 +#: src/tables/bom/BomTable.tsx:512 msgid "Import BOM Data" msgstr "" #: src/tables/bom/BomTable.tsx:388 -#: src/tables/bom/BomTable.tsx:523 +#: src/tables/bom/BomTable.tsx:526 msgid "Add BOM Item" msgstr "" @@ -5780,7 +6863,7 @@ msgstr "" #: src/tables/bom/BomTable.tsx:423 #: src/tables/bom/BomTable.tsx:426 -#: src/tables/bom/BomTable.tsx:517 +#: src/tables/bom/BomTable.tsx:519 msgid "Validate BOM" msgstr "" @@ -5812,21 +6895,15 @@ msgstr "" msgid "Edit Substitutes" msgstr "" -#: src/tables/bom/BomTable.tsx:539 -#: src/tables/part/PartParameterTable.tsx:193 -#: src/tables/part/PartTestTemplateTable.tsx:252 -msgid "Part is Locked" -msgstr "" - -#: src/tables/bom/BomTable.tsx:544 +#: src/tables/bom/BomTable.tsx:547 msgid "Bill of materials cannot be edited, as the part is locked" msgstr "" #: src/tables/bom/UsedInTable.tsx:33 -#: src/tables/build/BuildLineTable.tsx:63 +#: src/tables/build/BuildLineTable.tsx:194 #: src/tables/part/ParametricPartTable.tsx:233 #: src/tables/part/PartTable.tsx:190 -#: src/tables/stock/StockItemTable.tsx:300 +#: src/tables/stock/StockItemTable.tsx:304 msgid "Assembly" msgstr "" @@ -5844,285 +6921,347 @@ msgstr "Rastreable" msgid "Show trackable assemblies" msgstr "Mostrar ensamblajes rastreables" -#: src/tables/build/BuildAllocatedStockTable.tsx:54 +#: src/tables/build/BuildAllocatedStockTable.tsx:56 msgid "Allocated to Output" msgstr "" -#: src/tables/build/BuildAllocatedStockTable.tsx:55 +#: src/tables/build/BuildAllocatedStockTable.tsx:57 msgid "Show items allocated to a build output" msgstr "" -#: src/tables/build/BuildAllocatedStockTable.tsx:76 -#: src/tables/part/PartPurchaseOrdersTable.tsx:125 -#: src/tables/sales/SalesOrderAllocationTable.tsx:62 +#: src/tables/build/BuildAllocatedStockTable.tsx:65 +#: src/tables/build/BuildOrderTable.tsx:159 +#: src/tables/part/PartParameterTable.tsx:212 +#: src/tables/part/PartPurchaseOrdersTable.tsx:138 +#: src/tables/sales/ReturnOrderTable.tsx:84 +#: src/tables/sales/SalesOrderAllocationTable.tsx:68 +#: src/tables/sales/SalesOrderTable.tsx:84 +#: src/tables/stock/StockItemTable.tsx:339 +msgid "Include Variants" +msgstr "" + +#: src/tables/build/BuildAllocatedStockTable.tsx:66 +#: src/tables/build/BuildOrderTable.tsx:160 +#: src/tables/part/PartPurchaseOrdersTable.tsx:139 +#: src/tables/sales/ReturnOrderTable.tsx:85 +#: src/tables/sales/SalesOrderAllocationTable.tsx:69 +#: src/tables/sales/SalesOrderTable.tsx:85 +msgid "Include orders for part variants" +msgstr "" + +#: src/tables/build/BuildAllocatedStockTable.tsx:89 +#: src/tables/part/PartPurchaseOrdersTable.tsx:131 +#: src/tables/sales/SalesOrderAllocationTable.tsx:93 msgid "Order Status" msgstr "" -#: src/tables/build/BuildAllocatedStockTable.tsx:96 -#: src/tables/sales/SalesOrderAllocationTable.tsx:75 +#: src/tables/build/BuildAllocatedStockTable.tsx:117 +#: src/tables/sales/SalesOrderAllocationTable.tsx:126 msgid "Allocated Quantity" msgstr "" -#: src/tables/build/BuildAllocatedStockTable.tsx:116 -#: src/tables/sales/SalesOrderAllocationTable.tsx:94 +#: src/tables/build/BuildAllocatedStockTable.tsx:137 +#: src/tables/sales/SalesOrderAllocationTable.tsx:120 msgid "Available Quantity" msgstr "" -#: src/tables/build/BuildAllocatedStockTable.tsx:126 -#: src/tables/build/BuildOrderTestTable.tsx:176 -#: src/tables/build/BuildOrderTestTable.tsx:200 -#: src/tables/build/BuildOutputTable.tsx:312 -msgid "Build Output" +#: src/tables/build/BuildAllocatedStockTable.tsx:164 +#: src/tables/build/BuildLineTable.tsx:513 +msgid "Edit Stock Allocation" msgstr "" -#: src/tables/build/BuildAllocatedStockTable.tsx:143 -msgid "Edit Build Item" -msgstr "" +#: src/tables/build/BuildAllocatedStockTable.tsx:164 +#~ msgid "Edit Build Item" +#~ msgstr "Edit Build Item" -#: src/tables/build/BuildAllocatedStockTable.tsx:153 -msgid "Delete Build Item" -msgstr "" +#: src/tables/build/BuildAllocatedStockTable.tsx:174 +#~ msgid "Delete Build Item" +#~ msgstr "Delete Build Item" -#: src/tables/build/BuildLineTable.tsx:43 -#: src/tables/stock/StockItemTable.tsx:305 -msgid "Allocated" -msgstr "" - -#: src/tables/build/BuildLineTable.tsx:44 -msgid "Show allocated lines" -msgstr "" - -#: src/tables/build/BuildLineTable.tsx:49 -msgid "Show lines with available stock" -msgstr "" - -#: src/tables/build/BuildLineTable.tsx:54 -msgid "Show consumable lines" +#: src/tables/build/BuildAllocatedStockTable.tsx:177 +#: src/tables/build/BuildLineTable.tsx:526 +msgid "Delete Stock Allocation" msgstr "" #: src/tables/build/BuildLineTable.tsx:59 +#~ msgid "Show lines with available stock" +#~ msgstr "Show lines with available stock" + +#: src/tables/build/BuildLineTable.tsx:175 +msgid "Show allocated lines" +msgstr "" + +#: src/tables/build/BuildLineTable.tsx:185 +msgid "Show consumable lines" +msgstr "" + +#: src/tables/build/BuildLineTable.tsx:190 msgid "Show optional lines" msgstr "" -#: src/tables/build/BuildLineTable.tsx:68 +#: src/tables/build/BuildLineTable.tsx:199 #: src/tables/part/PartTable.tsx:208 msgid "Testable" msgstr "" -#: src/tables/build/BuildLineTable.tsx:73 -#: src/tables/stock/StockItemTable.tsx:364 +#: src/tables/build/BuildLineTable.tsx:204 +#: src/tables/stock/StockItemTable.tsx:368 msgid "Tracked" msgstr "" -#: src/tables/build/BuildLineTable.tsx:74 +#: src/tables/build/BuildLineTable.tsx:205 msgid "Show tracked lines" msgstr "" -#: src/tables/build/BuildLineTable.tsx:108 -#: src/tables/sales/SalesOrderLineItemTable.tsx:133 +#: src/tables/build/BuildLineTable.tsx:239 +#: src/tables/sales/SalesOrderLineItemTable.tsx:141 msgid "In production" msgstr "" -#: src/tables/build/BuildLineTable.tsx:136 +#: src/tables/build/BuildLineTable.tsx:267 msgid "Insufficient stock" msgstr "" -#: src/tables/build/BuildLineTable.tsx:152 -#: src/tables/sales/SalesOrderLineItemTable.tsx:121 -#: src/tables/stock/StockItemTable.tsx:186 +#: src/tables/build/BuildLineTable.tsx:283 +#: src/tables/sales/SalesOrderLineItemTable.tsx:129 +#: src/tables/stock/StockItemTable.tsx:175 msgid "No stock available" msgstr "" -#: src/tables/build/BuildLineTable.tsx:201 +#: src/tables/build/BuildLineTable.tsx:355 msgid "Gets Inherited" msgstr "" -#: src/tables/build/BuildLineTable.tsx:210 +#: src/tables/build/BuildLineTable.tsx:366 msgid "Unit Quantity" msgstr "" -#: src/tables/build/BuildLineTable.tsx:267 -#: src/tables/sales/SalesOrderLineItemTable.tsx:230 +#: src/tables/build/BuildLineTable.tsx:381 +msgid "Required Quantity" +msgstr "" + +#: src/tables/build/BuildLineTable.tsx:432 +#: src/tables/sales/SalesOrderLineItemTable.tsx:254 msgid "Create Build Order" msgstr "" -#: src/tables/build/BuildLineTable.tsx:298 -msgid "Allocate Stock" +#: src/tables/build/BuildLineTable.tsx:460 +msgid "Auto allocation in progress" msgstr "" -#: src/tables/build/BuildLineTable.tsx:305 +#: src/tables/build/BuildLineTable.tsx:463 +#: src/tables/build/BuildLineTable.tsx:632 +msgid "Auto Allocate Stock" +msgstr "" + +#: src/tables/build/BuildLineTable.tsx:464 +msgid "Automatically allocate stock to this build according to the selected options" +msgstr "" + +#: src/tables/build/BuildLineTable.tsx:482 +#: src/tables/build/BuildLineTable.tsx:496 +#: src/tables/build/BuildLineTable.tsx:579 +#: src/tables/build/BuildLineTable.tsx:664 +#: src/tables/build/BuildOutputTable.tsx:314 +#: src/tables/build/BuildOutputTable.tsx:319 +msgid "Deallocate Stock" +msgstr "" + +#: src/tables/build/BuildLineTable.tsx:498 +msgid "Deallocate all untracked stock for this build order" +msgstr "" + +#: src/tables/build/BuildLineTable.tsx:500 +msgid "Deallocate stock from the selected line item" +msgstr "" + +#: src/tables/build/BuildLineTable.tsx:504 +msgid "Stock has been deallocated" +msgstr "" + +#: src/tables/build/BuildLineTable.tsx:589 msgid "Order Stock" msgstr "" -#: src/tables/build/BuildLineTable.tsx:312 +#: src/tables/build/BuildLineTable.tsx:596 msgid "Build Stock" msgstr "" -#: src/tables/build/BuildOrderTable.tsx:111 -msgid "Show active orders" -msgstr "Mostrar órdenes activas" +#: src/tables/build/BuildLineTable.tsx:610 +msgid "View Part" +msgstr "" #: src/tables/build/BuildOrderTable.tsx:116 -msgid "Cascade" -msgstr "" +#~ msgid "Cascade" +#~ msgstr "Cascade" #: src/tables/build/BuildOrderTable.tsx:117 -msgid "Display recursive child orders" +#~ msgid "Display recursive child orders" +#~ msgstr "Display recursive child orders" + +#: src/tables/build/BuildOrderTable.tsx:121 +msgid "Show outstanding orders" msgstr "" -#: src/tables/build/BuildOrderTable.tsx:123 -#: src/tables/part/PartPurchaseOrdersTable.tsx:126 -#: src/tables/purchasing/PurchaseOrderTable.tsx:56 -#: src/tables/sales/ReturnOrderTable.tsx:47 -#: src/tables/sales/SalesOrderTable.tsx:54 +#: src/tables/build/BuildOrderTable.tsx:121 +#~ msgid "Show active orders" +#~ msgstr "Show active orders" + +#: src/tables/build/BuildOrderTable.tsx:122 +#~ msgid "Show overdue status" +#~ msgstr "Show overdue status" + +#: src/tables/build/BuildOrderTable.tsx:126 +#: src/tables/part/PartPurchaseOrdersTable.tsx:132 +#: src/tables/purchasing/PurchaseOrderTable.tsx:59 +#: src/tables/sales/ReturnOrderTable.tsx:57 +#: src/tables/sales/SalesOrderTable.tsx:57 msgid "Filter by order status" msgstr "Filtrar por estado de la orden" -#: src/tables/build/BuildOrderTable.tsx:130 -msgid "Show overdue status" -msgstr "" - -#: src/tables/build/BuildOrderTable.tsx:141 -#: src/tables/purchasing/PurchaseOrderTable.tsx:65 -#: src/tables/sales/ReturnOrderTable.tsx:56 -#: src/tables/sales/SalesOrderTable.tsx:63 +#: src/tables/build/BuildOrderTable.tsx:136 +#: src/tables/purchasing/PurchaseOrderTable.tsx:70 +#: src/tables/sales/ReturnOrderTable.tsx:68 +#: src/tables/sales/SalesOrderTable.tsx:68 msgid "Filter by project code" msgstr "" -#: src/tables/build/BuildOrderTable.tsx:146 -#: src/tables/purchasing/PurchaseOrderTable.tsx:70 -#: src/tables/sales/ReturnOrderTable.tsx:61 -#: src/tables/sales/SalesOrderTable.tsx:68 -msgid "Has Project Code" -msgstr "" - -#: src/tables/build/BuildOrderTable.tsx:147 +#: src/tables/build/BuildOrderTable.tsx:139 #: src/tables/purchasing/PurchaseOrderTable.tsx:71 #: src/tables/sales/ReturnOrderTable.tsx:62 #: src/tables/sales/SalesOrderTable.tsx:69 -msgid "Filter by whether the purchase order has a project code" -msgstr "" +#~ msgid "Filter by whether the purchase order has a project code" +#~ msgstr "Filter by whether the purchase order has a project code" -#: src/tables/build/BuildOrderTable.tsx:152 +#: src/tables/build/BuildOrderTable.tsx:143 msgid "Filter by user who issued this order" msgstr "" -#: src/tables/build/BuildOrderTable.tsx:158 -#: src/tables/purchasing/PurchaseOrderTable.tsx:76 -#: src/tables/sales/ReturnOrderTable.tsx:67 -#: src/tables/sales/SalesOrderTable.tsx:74 +#: src/tables/build/BuildOrderTable.tsx:149 +#: src/tables/purchasing/PurchaseOrderTable.tsx:77 +#: src/tables/sales/ReturnOrderTable.tsx:75 +#: src/tables/sales/SalesOrderTable.tsx:75 msgid "Filter by responsible owner" msgstr "" -#: src/tables/build/BuildOrderTestTable.tsx:75 -#: src/tables/build/BuildOrderTestTable.tsx:111 -#: src/tables/stock/StockItemTestResultTable.tsx:257 -#: src/tables/stock/StockItemTestResultTable.tsx:329 -#: src/tables/stock/StockItemTestResultTable.tsx:384 +#: src/tables/build/BuildOrderTestTable.tsx:76 +#: src/tables/build/BuildOrderTestTable.tsx:112 +#: src/tables/stock/StockItemTestResultTable.tsx:275 +#: src/tables/stock/StockItemTestResultTable.tsx:347 +#: src/tables/stock/StockItemTestResultTable.tsx:403 msgid "Add Test Result" msgstr "" -#: src/tables/build/BuildOrderTestTable.tsx:82 -#: src/tables/stock/StockItemTestResultTable.tsx:259 +#: src/tables/build/BuildOrderTestTable.tsx:83 +#: src/tables/stock/StockItemTestResultTable.tsx:277 msgid "Test result added" msgstr "" -#: src/tables/build/BuildOrderTestTable.tsx:110 -#: src/tables/stock/StockItemTestResultTable.tsx:174 +#: src/tables/build/BuildOrderTestTable.tsx:111 +#: src/tables/stock/StockItemTestResultTable.tsx:180 msgid "No Result" msgstr "" -#: src/tables/build/BuildOrderTestTable.tsx:220 +#: src/tables/build/BuildOrderTestTable.tsx:221 msgid "Show build outputs currently in production" msgstr "" +#: src/tables/build/BuildOutputTable.tsx:76 +msgid "Build Output Stock Allocation" +msgstr "" + #: src/tables/build/BuildOutputTable.tsx:161 #~ msgid "Delete build output" #~ msgstr "Delete build output" -#: src/tables/build/BuildOutputTable.tsx:173 -#: src/tables/build/BuildOutputTable.tsx:211 +#: src/tables/build/BuildOutputTable.tsx:258 +#: src/tables/build/BuildOutputTable.tsx:374 msgid "Add Build Output" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:216 +#: src/tables/build/BuildOutputTable.tsx:304 +#~ msgid "Edit build output" +#~ msgstr "Edit build output" + +#: src/tables/build/BuildOutputTable.tsx:306 +#: src/tables/build/BuildOutputTable.tsx:417 +msgid "Edit Build Output" +msgstr "" + +#: src/tables/build/BuildOutputTable.tsx:321 +msgid "This action will deallocate all stock from the selected build output" +msgstr "" + +#: src/tables/build/BuildOutputTable.tsx:341 msgid "Complete selected outputs" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:226 +#: src/tables/build/BuildOutputTable.tsx:352 msgid "Scrap selected outputs" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:236 +#: src/tables/build/BuildOutputTable.tsx:363 msgid "Cancel selected outputs" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:252 +#: src/tables/build/BuildOutputTable.tsx:385 msgid "Allocate" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:253 +#: src/tables/build/BuildOutputTable.tsx:386 msgid "Allocate stock to build output" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:259 +#: src/tables/build/BuildOutputTable.tsx:396 msgid "Deallocate" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:260 +#: src/tables/build/BuildOutputTable.tsx:397 msgid "Deallocate stock from build output" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:267 +#: src/tables/build/BuildOutputTable.tsx:408 msgid "Complete build output" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:276 +#: src/tables/build/BuildOutputTable.tsx:424 msgid "Scrap" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:277 +#: src/tables/build/BuildOutputTable.tsx:425 msgid "Scrap build output" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:280 -#~ msgid "Allocated Items" -#~ msgstr "Allocated Items" - -#: src/tables/build/BuildOutputTable.tsx:287 +#: src/tables/build/BuildOutputTable.tsx:435 msgid "Cancel build output" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:325 -msgid "Batch" -msgstr "" - -#: src/tables/build/BuildOutputTable.tsx:340 +#: src/tables/build/BuildOutputTable.tsx:488 msgid "Allocated Lines" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:355 +#: src/tables/build/BuildOutputTable.tsx:503 msgid "Required Tests" msgstr "" -#: src/tables/company/AddressTable.tsx:121 -#: src/tables/company/AddressTable.tsx:185 +#: src/tables/company/AddressTable.tsx:118 +#: src/tables/company/AddressTable.tsx:183 msgid "Add Address" msgstr "Añadir Dirección" -#: src/tables/company/AddressTable.tsx:126 +#: src/tables/company/AddressTable.tsx:123 msgid "Address created" msgstr "Dirección creada" -#: src/tables/company/AddressTable.tsx:135 +#: src/tables/company/AddressTable.tsx:132 msgid "Edit Address" msgstr "Editar Dirección" -#: src/tables/company/AddressTable.tsx:143 +#: src/tables/company/AddressTable.tsx:140 msgid "Delete Address" msgstr "Eliminar Dirección" -#: src/tables/company/AddressTable.tsx:144 +#: src/tables/company/AddressTable.tsx:141 msgid "Are you sure you want to delete this address?" msgstr "¿Estás seguro de que deseas eliminar esta dirección?" @@ -6130,24 +7269,24 @@ msgstr "¿Estás seguro de que deseas eliminar esta dirección?" #~ msgid "New Company" #~ msgstr "New Company" -#: src/tables/company/CompanyTable.tsx:74 -#: src/tables/company/CompanyTable.tsx:123 +#: src/tables/company/CompanyTable.tsx:75 +#: src/tables/company/CompanyTable.tsx:125 msgid "Add Company" msgstr "" -#: src/tables/company/CompanyTable.tsx:96 +#: src/tables/company/CompanyTable.tsx:97 msgid "Show active companies" msgstr "" -#: src/tables/company/CompanyTable.tsx:101 +#: src/tables/company/CompanyTable.tsx:102 msgid "Show companies which are suppliers" msgstr "" -#: src/tables/company/CompanyTable.tsx:106 +#: src/tables/company/CompanyTable.tsx:107 msgid "Show companies which are manufacturers" msgstr "" -#: src/tables/company/CompanyTable.tsx:111 +#: src/tables/company/CompanyTable.tsx:112 msgid "Show companies which are customers" msgstr "" @@ -6163,96 +7302,99 @@ msgstr "" msgid "Delete Contact" msgstr "Eliminar contacto" -#: src/tables/company/ContactTable.tsx:129 +#: src/tables/company/ContactTable.tsx:130 msgid "Add contact" msgstr "Agregar contacto" -#: src/tables/general/AttachmentTable.tsx:130 +#: src/tables/general/AttachmentTable.tsx:135 msgid "File uploaded" msgstr "Archivo subido" -#: src/tables/general/AttachmentTable.tsx:131 +#: src/tables/general/AttachmentTable.tsx:136 msgid "File {0} uploaded successfully" msgstr "Archivo {0} se subió correctamente" -#: src/tables/general/AttachmentTable.tsx:142 +#: src/tables/general/AttachmentTable.tsx:147 msgid "Upload Error" msgstr "Error al subir" -#: src/tables/general/AttachmentTable.tsx:143 +#: src/tables/general/AttachmentTable.tsx:148 msgid "File could not be uploaded" msgstr "" -#: src/tables/general/AttachmentTable.tsx:191 +#: src/tables/general/AttachmentTable.tsx:196 msgid "Upload Attachment" msgstr "" -#: src/tables/general/AttachmentTable.tsx:201 +#: src/tables/general/AttachmentTable.tsx:206 msgid "Edit Attachment" msgstr "" -#: src/tables/general/AttachmentTable.tsx:215 +#: src/tables/general/AttachmentTable.tsx:220 msgid "Delete Attachment" msgstr "" -#: src/tables/general/AttachmentTable.tsx:225 +#: src/tables/general/AttachmentTable.tsx:230 msgid "Is Link" msgstr "" -#: src/tables/general/AttachmentTable.tsx:226 +#: src/tables/general/AttachmentTable.tsx:231 msgid "Show link attachments" msgstr "" -#: src/tables/general/AttachmentTable.tsx:230 +#: src/tables/general/AttachmentTable.tsx:235 msgid "Is File" msgstr "" -#: src/tables/general/AttachmentTable.tsx:231 +#: src/tables/general/AttachmentTable.tsx:236 msgid "Show file attachments" msgstr "" -#: src/tables/general/AttachmentTable.tsx:240 +#: src/tables/general/AttachmentTable.tsx:245 msgid "Add attachment" msgstr "" -#: src/tables/general/AttachmentTable.tsx:251 -msgid "Add external link" -msgstr "" - #: src/tables/general/AttachmentTable.tsx:254 #~ msgid "Upload attachment" #~ msgstr "Upload attachment" -#: src/tables/general/AttachmentTable.tsx:299 +#: src/tables/general/AttachmentTable.tsx:256 +msgid "Add external link" +msgstr "" + +#: src/tables/general/AttachmentTable.tsx:304 msgid "No attachments found" msgstr "" -#: src/tables/general/AttachmentTable.tsx:337 +#: src/tables/general/AttachmentTable.tsx:343 msgid "Drag attachment file here to upload" msgstr "" #: src/tables/general/ExtraLineItemTable.tsx:86 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:251 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:60 -#: src/tables/sales/SalesOrderLineItemTable.tsx:196 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:263 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:362 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:72 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:168 +#: src/tables/sales/SalesOrderLineItemTable.tsx:206 +#: src/tables/sales/SalesOrderLineItemTable.tsx:291 msgid "Add Line Item" msgstr "" #: src/tables/general/ExtraLineItemTable.tsx:98 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:271 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:72 -#: src/tables/sales/SalesOrderLineItemTable.tsx:214 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:283 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:84 +#: src/tables/sales/SalesOrderLineItemTable.tsx:224 msgid "Edit Line Item" msgstr "" #: src/tables/general/ExtraLineItemTable.tsx:106 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:279 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:80 -#: src/tables/sales/SalesOrderLineItemTable.tsx:222 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:291 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:92 +#: src/tables/sales/SalesOrderLineItemTable.tsx:232 msgid "Delete Line Item" msgstr "" -#: src/tables/general/ExtraLineItemTable.tsx:142 +#: src/tables/general/ExtraLineItemTable.tsx:143 msgid "Add Extra Line Item" msgstr "" @@ -6261,12 +7403,12 @@ msgid "Machine restarted" msgstr "" #: src/tables/machine/MachineListTable.tsx:212 -#: src/tables/machine/MachineListTable.tsx:263 +#: src/tables/machine/MachineListTable.tsx:261 msgid "Edit machine" msgstr "" #: src/tables/machine/MachineListTable.tsx:226 -#: src/tables/machine/MachineListTable.tsx:267 +#: src/tables/machine/MachineListTable.tsx:265 msgid "Delete machine" msgstr "" @@ -6278,51 +7420,50 @@ msgstr "" msgid "Are you sure you want to remove the machine \"{0}\"?" msgstr "" -#: src/tables/machine/MachineListTable.tsx:255 -#: src/tables/machine/MachineListTable.tsx:432 +#: src/tables/machine/MachineListTable.tsx:254 +#: src/tables/machine/MachineListTable.tsx:442 msgid "Restart required" msgstr "" -#: src/tables/machine/MachineListTable.tsx:259 +#: src/tables/machine/MachineListTable.tsx:258 msgid "Machine Actions" msgstr "" -#: src/tables/machine/MachineListTable.tsx:272 +#: src/tables/machine/MachineListTable.tsx:270 msgid "Restart" msgstr "" -#: src/tables/machine/MachineListTable.tsx:274 +#: src/tables/machine/MachineListTable.tsx:272 msgid "Restart machine" msgstr "" -#: src/tables/machine/MachineListTable.tsx:276 +#: src/tables/machine/MachineListTable.tsx:274 msgid "manual restart required" msgstr "" +#: src/tables/machine/MachineListTable.tsx:291 +#~ msgid "Machine information" +#~ msgstr "Machine information" + #: src/tables/machine/MachineListTable.tsx:292 -msgid "Machine information" +msgid "Machine Information" msgstr "" -#: src/tables/machine/MachineListTable.tsx:303 -#: src/tables/machine/MachineListTable.tsx:599 +#: src/tables/machine/MachineListTable.tsx:302 +#: src/tables/machine/MachineListTable.tsx:610 msgid "Machine Type" msgstr "" -#: src/tables/machine/MachineListTable.tsx:316 +#: src/tables/machine/MachineListTable.tsx:315 msgid "Machine Driver" msgstr "" -#: src/tables/machine/MachineListTable.tsx:329 +#: src/tables/machine/MachineListTable.tsx:330 msgid "Initialized" msgstr "" -#: src/tables/machine/MachineListTable.tsx:350 -#: src/tables/machine/MachineTypeTable.tsx:261 -msgid "Errors" -msgstr "" - -#: src/tables/machine/MachineListTable.tsx:358 -#: src/tables/machine/MachineTypeTable.tsx:269 +#: src/tables/machine/MachineListTable.tsx:359 +#: src/tables/machine/MachineTypeTable.tsx:290 msgid "No errors reported" msgstr "" @@ -6330,7 +7471,7 @@ msgstr "" msgid "Machine Settings" msgstr "" -#: src/tables/machine/MachineListTable.tsx:389 +#: src/tables/machine/MachineListTable.tsx:394 msgid "Driver Settings" msgstr "" @@ -6338,86 +7479,109 @@ msgstr "" #~ msgid "Create machine" #~ msgstr "Create machine" -#: src/tables/machine/MachineListTable.tsx:506 +#: src/tables/machine/MachineListTable.tsx:516 +#: src/tables/machine/MachineListTable.tsx:558 msgid "Add machine" msgstr "" #: src/tables/machine/MachineListTable.tsx:561 -msgid "Machine detail" +#~ msgid "Machine detail" +#~ msgstr "Machine detail" + +#: src/tables/machine/MachineListTable.tsx:572 +msgid "Machine Detail" msgstr "" -#: src/tables/machine/MachineListTable.tsx:608 +#: src/tables/machine/MachineListTable.tsx:619 msgid "Driver" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:73 +#: src/tables/machine/MachineTypeTable.tsx:78 msgid "Builtin driver" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:89 +#: src/tables/machine/MachineTypeTable.tsx:96 +msgid "Not Found" +msgstr "" + +#: src/tables/machine/MachineTypeTable.tsx:99 msgid "Machine type not found." msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:97 -msgid "Machine type information" +#: src/tables/machine/MachineTypeTable.tsx:99 +#~ msgid "Machine type information" +#~ msgstr "Machine type information" + +#: src/tables/machine/MachineTypeTable.tsx:109 +msgid "Machine Type Information" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:110 -#: src/tables/machine/MachineTypeTable.tsx:217 +#: src/tables/machine/MachineTypeTable.tsx:124 +#: src/tables/machine/MachineTypeTable.tsx:238 msgid "Slug" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:118 -#: src/tables/machine/MachineTypeTable.tsx:238 +#: src/tables/machine/MachineTypeTable.tsx:135 +#: src/tables/machine/MachineTypeTable.tsx:259 msgid "Provider plugin" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:130 -#: src/tables/machine/MachineTypeTable.tsx:250 +#: src/tables/machine/MachineTypeTable.tsx:147 +#: src/tables/machine/MachineTypeTable.tsx:271 msgid "Provider file" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:135 -#: src/tables/machine/MachineTypeTable.tsx:255 -#: src/tables/plugin/PluginListTable.tsx:180 -#: src/tables/plugin/PluginListTable.tsx:568 -msgid "Builtin" +#: src/tables/machine/MachineTypeTable.tsx:148 +#~ msgid "Available drivers" +#~ msgstr "Available drivers" + +#: src/tables/machine/MachineTypeTable.tsx:162 +msgid "Available Drivers" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:146 -msgid "Available drivers" -msgstr "" - -#: src/tables/machine/MachineTypeTable.tsx:196 +#: src/tables/machine/MachineTypeTable.tsx:217 msgid "Machine driver not found." msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:204 +#: src/tables/machine/MachineTypeTable.tsx:225 msgid "Machine driver information" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:224 +#: src/tables/machine/MachineTypeTable.tsx:245 msgid "Machine type" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:327 +#: src/tables/machine/MachineTypeTable.tsx:338 +#~ msgid "Machine type detail" +#~ msgstr "Machine type detail" + +#: src/tables/machine/MachineTypeTable.tsx:348 msgid "Builtin type" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:336 -msgid "Machine type detail" +#: src/tables/machine/MachineTypeTable.tsx:348 +#~ msgid "Machine driver detail" +#~ msgstr "Machine driver detail" + +#: src/tables/machine/MachineTypeTable.tsx:357 +msgid "Machine Type Detail" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:346 -msgid "Machine driver detail" +#: src/tables/machine/MachineTypeTable.tsx:367 +msgid "Machine Driver Detail" msgstr "" #: src/tables/notifications/NotificationsTable.tsx:26 msgid "Age" msgstr "" +#: src/tables/notifications/NotificationsTable.tsx:36 +msgid "Notification" +msgstr "" + #: src/tables/notifications/NotificationsTable.tsx:40 #: src/tables/plugin/PluginErrorTable.tsx:37 +#: src/tables/settings/ErrorTable.tsx:50 msgid "Message" msgstr "" @@ -6451,33 +7615,32 @@ msgstr "" msgid "Show assembly parts" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:68 +#: src/tables/part/PartCategoryTable.tsx:48 +msgid "You are subscribed to notifications for this category" +msgstr "" + +#: src/tables/part/PartCategoryTable.tsx:80 #: src/tables/part/PartTable.tsx:196 msgid "Include Subcategories" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:69 +#: src/tables/part/PartCategoryTable.tsx:81 msgid "Include subcategories in results" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:74 +#: src/tables/part/PartCategoryTable.tsx:86 msgid "Show structural categories" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:78 -#: src/tables/part/PartTable.tsx:294 -msgid "Subscribed" -msgstr "" - -#: src/tables/part/PartCategoryTable.tsx:79 +#: src/tables/part/PartCategoryTable.tsx:91 msgid "Show categories to which the user is subscribed" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:86 +#: src/tables/part/PartCategoryTable.tsx:100 msgid "New Part Category" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:112 +#: src/tables/part/PartCategoryTable.tsx:129 msgid "Add Part Category" msgstr "" @@ -6523,11 +7686,6 @@ msgstr "" msgid "Part parameters cannot be edited, as the part is locked" msgstr "" -#: src/tables/part/PartParameterTable.tsx:212 -#: src/tables/stock/StockItemTable.tsx:335 -msgid "Include Variants" -msgstr "" - #: src/tables/part/PartParameterTemplateTable.tsx:31 msgid "Checkbox" msgstr "" @@ -6554,6 +7712,7 @@ msgid "Show templates with units" msgstr "" #: src/tables/part/PartParameterTemplateTable.tsx:85 +#: src/tables/part/PartParameterTemplateTable.tsx:141 msgid "Add Parameter Template" msgstr "" @@ -6566,23 +7725,19 @@ msgid "Delete Parameter Template" msgstr "" #: src/tables/part/PartParameterTemplateTable.tsx:141 -msgid "Add parameter template" -msgstr "" +#~ msgid "Add parameter template" +#~ msgstr "Add parameter template" -#: src/tables/part/PartPurchaseOrdersTable.tsx:77 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:162 +#: src/tables/part/PartPurchaseOrdersTable.tsx:78 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:168 msgid "Total Quantity" msgstr "" -#: src/tables/part/PartPurchaseOrdersTable.tsx:115 -msgid "Pending" -msgstr "" - -#: src/tables/part/PartPurchaseOrdersTable.tsx:116 +#: src/tables/part/PartPurchaseOrdersTable.tsx:122 msgid "Show pending orders" msgstr "" -#: src/tables/part/PartPurchaseOrdersTable.tsx:121 +#: src/tables/part/PartPurchaseOrdersTable.tsx:127 msgid "Show received items" msgstr "" @@ -6728,22 +7883,13 @@ msgstr "" msgid "Results" msgstr "" -#: src/tables/part/PartTestTemplateTable.tsx:76 -msgid "No Results" -msgstr "" - -#: src/tables/part/PartTestTemplateTable.tsx:106 -#: src/tables/stock/StockItemTestResultTable.tsx:365 -msgid "Required" -msgstr "" - #: src/tables/part/PartTestTemplateTable.tsx:107 msgid "Show required tests" msgstr "" #: src/tables/part/PartTestTemplateTable.tsx:111 -#: src/tables/settings/TemplateTable.tsx:167 -#: src/tables/settings/TemplateTable.tsx:283 +#: src/tables/settings/TemplateTable.tsx:247 +#: src/tables/settings/TemplateTable.tsx:363 msgid "Enabled" msgstr "" @@ -6784,7 +7930,7 @@ msgid "Show tests which have recorded results" msgstr "" #: src/tables/part/PartTestTemplateTable.tsx:154 -#: src/tables/part/PartTestTemplateTable.tsx:237 +#: src/tables/part/PartTestTemplateTable.tsx:238 msgid "Add Test Template" msgstr "" @@ -6808,7 +7954,7 @@ msgstr "" msgid "View Parent Part" msgstr "" -#: src/tables/part/PartTestTemplateTable.tsx:257 +#: src/tables/part/PartTestTemplateTable.tsx:258 msgid "Part templates cannot be edited, as the part is locked" msgstr "" @@ -6836,28 +7982,49 @@ msgstr "" msgid "Show trackable variants" msgstr "" -#: src/tables/part/RelatedPartTable.tsx:84 +#: src/tables/part/RelatedPartTable.tsx:86 +#: src/tables/part/RelatedPartTable.tsx:109 msgid "Add Related Part" msgstr "" -#: src/tables/part/RelatedPartTable.tsx:99 +#: src/tables/part/RelatedPartTable.tsx:101 msgid "Delete Related Part" msgstr "" -#: src/tables/part/RelatedPartTable.tsx:106 -msgid "Add related part" -msgstr "" +#: src/tables/part/RelatedPartTable.tsx:109 +#~ msgid "Add related part" +#~ msgstr "Add related part" #: src/tables/plugin/PluginErrorTable.tsx:29 msgid "Stage" msgstr "" -#: src/tables/plugin/PluginListTable.tsx:95 -msgid "Plugin with key {pluginKey} not found" +#: src/tables/plugin/PluginListTable.tsx:42 +msgid "Plugin is active" msgstr "" +#: src/tables/plugin/PluginListTable.tsx:48 +msgid "Plugin is inactive" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:55 +msgid "Plugin is not installed" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:76 +msgid "Plugin" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:95 +#~ msgid "Plugin with key {pluginKey} not found" +#~ msgstr "Plugin with key {pluginKey} not found" + #: src/tables/plugin/PluginListTable.tsx:97 -msgid "An error occurred while fetching plugin details" +#~ msgid "An error occurred while fetching plugin details" +#~ msgstr "An error occurred while fetching plugin details" + +#: src/tables/plugin/PluginListTable.tsx:109 +msgid "Description not available" msgstr "" #: src/tables/plugin/PluginListTable.tsx:113 @@ -6865,12 +8032,8 @@ msgstr "" #~ msgstr "Plugin with id {id} not found" #: src/tables/plugin/PluginListTable.tsx:122 -msgid "Plugin information" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:134 -msgid "Author" -msgstr "" +#~ msgid "Plugin information" +#~ msgstr "Plugin information" #: src/tables/plugin/PluginListTable.tsx:134 #~ msgid "Plugin Actions" @@ -6881,79 +8044,124 @@ msgstr "" #~ msgid "Edit plugin" #~ msgstr "Edit plugin" +#: src/tables/plugin/PluginListTable.tsx:144 +msgid "Confirm plugin activation" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:145 +msgid "Confirm plugin deactivation" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:150 +msgid "The selected plugin will be activated" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:151 +msgid "The selected plugin will be deactivated" +msgstr "" + #: src/tables/plugin/PluginListTable.tsx:152 #: src/tables/plugin/PluginListTable.tsx:153 #~ msgid "Reload" #~ msgstr "Reload" -#: src/tables/plugin/PluginListTable.tsx:154 -msgid "Plugin is not active" -msgstr "" - #: src/tables/plugin/PluginListTable.tsx:163 -msgid "Package information" -msgstr "" +#~ msgid "Package information" +#~ msgstr "Package information" #: src/tables/plugin/PluginListTable.tsx:169 -msgid "Package Name" +msgid "Deactivate" msgstr "" -#: src/tables/plugin/PluginListTable.tsx:175 -msgid "Installation Path" +#: src/tables/plugin/PluginListTable.tsx:183 +msgid "Activate" msgstr "" -#: src/tables/plugin/PluginListTable.tsx:185 -msgid "Package" +#: src/tables/plugin/PluginListTable.tsx:184 +msgid "Activate selected plugin" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:196 +msgid "Update selected plugin" msgstr "" #: src/tables/plugin/PluginListTable.tsx:197 -msgid "Plugin settings" -msgstr "" +#~ msgid "Plugin settings" +#~ msgstr "Plugin settings" #: src/tables/plugin/PluginListTable.tsx:214 -msgid "Plugin is active" +#: src/tables/stock/InstalledItemsTable.tsx:107 +msgid "Uninstall" msgstr "" -#: src/tables/plugin/PluginListTable.tsx:220 -msgid "Plugin is inactive" +#: src/tables/plugin/PluginListTable.tsx:215 +msgid "Uninstall selected plugin" msgstr "" -#: src/tables/plugin/PluginListTable.tsx:227 -msgid "Plugin is not installed" +#: src/tables/plugin/PluginListTable.tsx:233 +msgid "Delete selected plugin configuration" msgstr "" -#: src/tables/plugin/PluginListTable.tsx:253 -msgid "Plugin" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:287 -msgid "Description not available" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:319 -msgid "Confirm plugin activation" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:320 -msgid "Confirm plugin deactivation" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:325 -msgid "The selected plugin will be activated" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:326 -msgid "The selected plugin will be deactivated" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:334 +#: src/tables/plugin/PluginListTable.tsx:249 msgid "Activate Plugin" msgstr "" +#: src/tables/plugin/PluginListTable.tsx:270 +msgid "Install plugin" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:283 +msgid "Install" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:284 +msgid "Plugin installed successfully" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:289 +msgid "Uninstall Plugin" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:301 +msgid "Confirm plugin uninstall" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:304 +msgid "The selected plugin will be uninstalled." +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:308 +#~ msgid "This action cannot be undone." +#~ msgstr "This action cannot be undone." + +#: src/tables/plugin/PluginListTable.tsx:309 +msgid "Plugin uninstalled successfully" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:317 +msgid "Delete Plugin" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:318 +msgid "Deleting this plugin configuration will remove all associated settings and data. Are you sure you want to delete this plugin?" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:331 +msgid "Plugins reloaded" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:332 +msgid "Plugins were reloaded successfully" +msgstr "" + #: src/tables/plugin/PluginListTable.tsx:338 #~ msgid "Deactivate Plugin" #~ msgstr "Deactivate Plugin" +#: src/tables/plugin/PluginListTable.tsx:350 +msgid "Reload Plugins" +msgstr "" + #: src/tables/plugin/PluginListTable.tsx:354 #~ msgid "The following plugin will be activated" #~ msgstr "The following plugin will be activated" @@ -6962,16 +8170,16 @@ msgstr "" #~ msgid "The following plugin will be deactivated" #~ msgstr "The following plugin will be deactivated" -#: src/tables/plugin/PluginListTable.tsx:362 -msgid "Deactivate" +#: src/tables/plugin/PluginListTable.tsx:357 +msgid "Install Plugin" msgstr "" #: src/tables/plugin/PluginListTable.tsx:366 #~ msgid "Confirm" #~ msgstr "Confirm" -#: src/tables/plugin/PluginListTable.tsx:373 -msgid "Activate" +#: src/tables/plugin/PluginListTable.tsx:374 +msgid "Plugin Detail" msgstr "" #: src/tables/plugin/PluginListTable.tsx:376 @@ -6998,76 +8206,12 @@ msgstr "" #~ msgid "Error updating plugin" #~ msgstr "Error updating plugin" -#: src/tables/plugin/PluginListTable.tsx:406 -msgid "Uninstall" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:438 -msgid "Install plugin" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:451 -msgid "Install" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:452 -msgid "Plugin installed successfully" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:457 -msgid "Uninstall Plugin" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:469 -msgid "Confirm plugin uninstall" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:472 -msgid "The selected plugin will be uninstalled." -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:473 -msgid "This action cannot be undone." -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:477 -msgid "Plugin uninstalled successfully" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:484 -msgid "Delete Plugin" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:485 -msgid "Deleting this plugin configuration will remove all associated settings and data. Are you sure you want to delete this plugin?" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:498 -msgid "Plugins reloaded" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:499 -msgid "Plugins were reloaded successfully" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:515 -msgid "Reload Plugins" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:524 -msgid "Install Plugin" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:544 -msgid "Plugin Detail" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:573 +#: src/tables/plugin/PluginListTable.tsx:411 msgid "Sample" msgstr "" -#: src/tables/plugin/PluginListTable.tsx:578 -#: src/tables/stock/StockItemTable.tsx:340 +#: src/tables/plugin/PluginListTable.tsx:416 +#: src/tables/stock/StockItemTable.tsx:344 msgid "Installed" msgstr "" @@ -7116,82 +8260,78 @@ msgstr "" #~ msgid "Are you sure you want to remove this manufacturer part?" #~ msgstr "Are you sure you want to remove this manufacturer part?" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:102 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:339 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:103 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:356 msgid "Import Line Items" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:135 -msgid "Part Description" -msgstr "" - -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:201 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:207 msgid "Supplier Code" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:208 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:214 msgid "Supplier Link" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:215 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:220 msgid "Manufacturer Code" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:229 -msgid "Destination" +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:248 +msgid "Show line items which have been received" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:300 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:316 msgid "Receive line item" msgstr "" #: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:344 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:142 -#: src/tables/sales/SalesOrderLineItemTable.tsx:240 -msgid "Add line item" -msgstr "Añadir Artículo de Línea" +#: src/tables/sales/ReturnOrderLineItemTable.tsx:160 +#: src/tables/sales/SalesOrderLineItemTable.tsx:258 +#~ msgid "Add line item" +#~ msgstr "Add line item" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:354 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:373 msgid "Receive items" msgstr "Recibir artículos" -#: src/tables/purchasing/SupplierPartTable.tsx:93 +#: src/tables/purchasing/SupplierPartTable.tsx:95 msgid "MPN" msgstr "" -#: src/tables/purchasing/SupplierPartTable.tsx:122 +#: src/tables/purchasing/SupplierPartTable.tsx:124 msgid "Base units" msgstr "Unidades base" -#: src/tables/purchasing/SupplierPartTable.tsx:170 +#: src/tables/purchasing/SupplierPartTable.tsx:172 msgid "Supplier part created" msgstr "" -#: src/tables/purchasing/SupplierPartTable.tsx:176 +#: src/tables/purchasing/SupplierPartTable.tsx:179 msgid "Add supplier part" msgstr "" -#: src/tables/purchasing/SupplierPartTable.tsx:188 +#: src/tables/purchasing/SupplierPartTable.tsx:191 msgid "Show active supplier parts" msgstr "" -#: src/tables/purchasing/SupplierPartTable.tsx:192 -msgid "Active Part" -msgstr "" - -#: src/tables/purchasing/SupplierPartTable.tsx:193 -msgid "Show active internal parts" -msgstr "" - #: src/tables/purchasing/SupplierPartTable.tsx:193 #~ msgid "Supplier part updated" #~ msgstr "Supplier part updated" -#: src/tables/purchasing/SupplierPartTable.tsx:197 +#: src/tables/purchasing/SupplierPartTable.tsx:195 +msgid "Active Part" +msgstr "" + +#: src/tables/purchasing/SupplierPartTable.tsx:196 +msgid "Show active internal parts" +msgstr "" + +#: src/tables/purchasing/SupplierPartTable.tsx:200 msgid "Active Supplier" msgstr "" -#: src/tables/purchasing/SupplierPartTable.tsx:198 +#: src/tables/purchasing/SupplierPartTable.tsx:201 msgid "Show active suppliers" msgstr "" @@ -7203,99 +8343,187 @@ msgstr "" #~ msgid "Are you sure you want to remove this supplier part?" #~ msgstr "Are you sure you want to remove this supplier part?" -#: src/tables/sales/ReturnOrderLineItemTable.tsx:114 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:139 msgid "Received Date" msgstr "" -#: src/tables/sales/ReturnOrderLineItemTable.tsx:128 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:153 msgid "Show items which have been received" msgstr "" -#: src/tables/sales/ReturnOrderLineItemTable.tsx:133 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:158 msgid "Filter by line item status" msgstr "" -#: src/tables/sales/ReturnOrderLineItemTable.tsx:158 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:176 +msgid "Receive selected items" +msgstr "" + +#: src/tables/sales/ReturnOrderLineItemTable.tsx:205 msgid "Receive Item" msgstr "" -#: src/tables/sales/SalesOrderLineItemTable.tsx:262 -msgid "Allocate stock" +#: src/tables/sales/SalesOrderAllocationTable.tsx:60 +msgid "Show outstanding allocations" msgstr "" -#: src/tables/sales/SalesOrderLineItemTable.tsx:272 +#: src/tables/sales/SalesOrderAllocationTable.tsx:168 +#: src/tables/sales/SalesOrderAllocationTable.tsx:190 +msgid "Edit Allocation" +msgstr "" + +#: src/tables/sales/SalesOrderAllocationTable.tsx:175 +#: src/tables/sales/SalesOrderAllocationTable.tsx:197 +msgid "Delete Allocation" +msgstr "" + +#: src/tables/sales/SalesOrderLineItemTable.tsx:244 +msgid "Allocate Serial Numbers" +msgstr "" + +#: src/tables/sales/SalesOrderLineItemTable.tsx:277 +msgid "Show lines which are fully allocated" +msgstr "" + +#: src/tables/sales/SalesOrderLineItemTable.tsx:280 +#~ msgid "Allocate stock" +#~ msgstr "Allocate stock" + +#: src/tables/sales/SalesOrderLineItemTable.tsx:282 +msgid "Show lines which are completed" +msgstr "" + +#: src/tables/sales/SalesOrderLineItemTable.tsx:291 +#~ msgid "Allocate Serials" +#~ msgstr "Allocate Serials" + +#: src/tables/sales/SalesOrderLineItemTable.tsx:340 +msgid "Allocate serials" +msgstr "" + +#: src/tables/sales/SalesOrderLineItemTable.tsx:356 msgid "Build stock" msgstr "" -#: src/tables/sales/SalesOrderLineItemTable.tsx:289 -#: src/tables/stock/StockItemTable.tsx:507 +#: src/tables/sales/SalesOrderLineItemTable.tsx:373 +#: src/tables/stock/StockItemTable.tsx:512 msgid "Order stock" msgstr "" -#: src/tables/sales/SalesOrderShipmentTable.tsx:40 +#: src/tables/sales/SalesOrderShipmentTable.tsx:51 +#~ msgid "Delete Shipment" +#~ msgstr "Delete Shipment" + +#: src/tables/sales/SalesOrderShipmentTable.tsx:57 msgid "Create Shipment" msgstr "" -#: src/tables/sales/SalesOrderShipmentTable.tsx:50 -msgid "Delete Shipment" -msgstr "" - -#: src/tables/sales/SalesOrderShipmentTable.tsx:58 -msgid "Edit Shipment" -msgstr "" - -#: src/tables/sales/SalesOrderShipmentTable.tsx:66 -msgid "Shipment Reference" -msgstr "" - -#: src/tables/sales/SalesOrderShipmentTable.tsx:71 +#: src/tables/sales/SalesOrderShipmentTable.tsx:104 msgid "Items" msgstr "" -#: src/tables/sales/SalesOrderShipmentTable.tsx:83 -msgid "Delivery Date" +#: src/tables/sales/SalesOrderShipmentTable.tsx:139 +msgid "View Shipment" msgstr "" -#: src/tables/sales/SalesOrderShipmentTable.tsx:107 -msgid "Complete Shipment" +#: src/tables/sales/SalesOrderShipmentTable.tsx:161 +msgid "Edit shipment" msgstr "" -#: src/tables/sales/SalesOrderShipmentTable.tsx:133 +#: src/tables/sales/SalesOrderShipmentTable.tsx:169 +msgid "Cancel shipment" +msgstr "" + +#: src/tables/sales/SalesOrderShipmentTable.tsx:184 msgid "Add shipment" msgstr "" -#: src/tables/sales/SalesOrderShipmentTable.tsx:146 -msgid "Shipped" -msgstr "" - -#: src/tables/sales/SalesOrderShipmentTable.tsx:147 +#: src/tables/sales/SalesOrderShipmentTable.tsx:198 msgid "Show shipments which have been shipped" msgstr "" -#: src/tables/sales/SalesOrderShipmentTable.tsx:151 -msgid "Delivered" -msgstr "" - -#: src/tables/sales/SalesOrderShipmentTable.tsx:152 +#: src/tables/sales/SalesOrderShipmentTable.tsx:203 msgid "Show shipments which have been delivered" msgstr "" -#: src/tables/settings/CurrencyTable.tsx:28 -msgid "Rate" -msgstr "Tarifa" - -#: src/tables/settings/CurrencyTable.tsx:40 -msgid "Exchange rates updated" -msgstr "Tipos de cambio actualizados" - -#: src/tables/settings/CurrencyTable.tsx:46 -msgid "Exchange rate update error" +#: src/tables/settings/BarcodeScanHistoryTable.tsx:61 +msgid "Barcode Information" msgstr "" -#: src/tables/settings/CurrencyTable.tsx:57 -msgid "Refresh currency exchange rates" +#: src/tables/settings/BarcodeScanHistoryTable.tsx:76 +#: src/tables/settings/ErrorTable.tsx:59 +msgid "Timestamp" msgstr "" +#: src/tables/settings/BarcodeScanHistoryTable.tsx:86 +msgid "Endpoint" +msgstr "" + +#: src/tables/settings/BarcodeScanHistoryTable.tsx:90 +#: src/tables/settings/BarcodeScanHistoryTable.tsx:217 +#: src/tables/stock/StockItemTestResultTable.tsx:174 +msgid "Result" +msgstr "" + +#: src/tables/settings/BarcodeScanHistoryTable.tsx:98 +msgid "Context" +msgstr "" + +#: src/tables/settings/BarcodeScanHistoryTable.tsx:119 +msgid "Response" +msgstr "" + +#: src/tables/settings/BarcodeScanHistoryTable.tsx:213 +#: src/tables/settings/ImportSessionTable.tsx:121 +#: src/tables/stock/StockTrackingTable.tsx:183 +msgid "Filter by user" +msgstr "" + +#: src/tables/settings/BarcodeScanHistoryTable.tsx:218 +msgid "Filter by result" +msgstr "" + +#: src/tables/settings/BarcodeScanHistoryTable.tsx:232 +msgid "Delete Barcode Scan Record" +msgstr "" + +#: src/tables/settings/BarcodeScanHistoryTable.tsx:258 +msgid "Barcode Scan Details" +msgstr "" + +#: src/tables/settings/BarcodeScanHistoryTable.tsx:268 +msgid "Logging Disabled" +msgstr "" + +#: src/tables/settings/BarcodeScanHistoryTable.tsx:270 +msgid "Barcode logging is not enabled" +msgstr "" + +#: src/tables/settings/CustomStateTable.tsx:36 +msgid "Display Name" +msgstr "" + +#: src/tables/settings/CustomStateTable.tsx:52 +msgid "Model" +msgstr "" + +#: src/tables/settings/CustomStateTable.tsx:65 +#: src/tables/settings/CustomStateTable.tsx:115 +msgid "Add State" +msgstr "" + +#: src/tables/settings/CustomStateTable.tsx:77 +msgid "Edit State" +msgstr "" + +#: src/tables/settings/CustomStateTable.tsx:85 +msgid "Delete State" +msgstr "" + +#: src/tables/settings/CustomStateTable.tsx:115 +#~ msgid "Add state" +#~ msgstr "Add state" + #: src/tables/settings/CustomUnitsTable.tsx:50 msgid "Add Custom Unit" msgstr "" @@ -7312,59 +8540,71 @@ msgstr "" msgid "Add custom unit" msgstr "" -#: src/tables/settings/ErrorTable.tsx:31 -msgid "When" -msgstr "" - -#: src/tables/settings/ErrorTable.tsx:41 -msgid "Error Information" -msgstr "" - #: src/tables/settings/ErrorTable.tsx:51 #~ msgid "Delete error report" #~ msgstr "Delete error report" -#: src/tables/settings/ErrorTable.tsx:53 +#: src/tables/settings/ErrorTable.tsx:67 +msgid "Traceback" +msgstr "" + +#: src/tables/settings/ErrorTable.tsx:103 +msgid "When" +msgstr "" + +#: src/tables/settings/ErrorTable.tsx:113 +msgid "Error Information" +msgstr "" + +#: src/tables/settings/ErrorTable.tsx:123 msgid "Delete Error Report" msgstr "" -#: src/tables/settings/ErrorTable.tsx:55 +#: src/tables/settings/ErrorTable.tsx:125 msgid "Are you sure you want to delete this error report?" msgstr "" -#: src/tables/settings/ErrorTable.tsx:57 +#: src/tables/settings/ErrorTable.tsx:127 msgid "Error report deleted" msgstr "" -#: src/tables/settings/ErrorTable.tsx:79 -#: src/tables/settings/FailedTasksTable.tsx:59 +#: src/tables/settings/ErrorTable.tsx:146 +#: src/tables/settings/FailedTasksTable.tsx:65 msgid "Error Details" msgstr "" -#: src/tables/settings/FailedTasksTable.tsx:26 -#: src/tables/settings/PendingTasksTable.tsx:19 +#: src/tables/settings/FailedTasksTable.tsx:32 +#: src/tables/settings/PendingTasksTable.tsx:23 #: src/tables/settings/ScheduledTasksTable.tsx:19 msgid "Task" msgstr "" -#: src/tables/settings/FailedTasksTable.tsx:32 -#: src/tables/settings/PendingTasksTable.tsx:24 +#: src/tables/settings/FailedTasksTable.tsx:38 +#: src/tables/settings/PendingTasksTable.tsx:28 msgid "Task ID" msgstr "" -#: src/tables/settings/FailedTasksTable.tsx:36 -#: src/tables/stock/StockItemTestResultTable.tsx:211 +#: src/tables/settings/FailedTasksTable.tsx:42 +#: src/tables/stock/StockItemTestResultTable.tsx:218 msgid "Started" msgstr "" -#: src/tables/settings/FailedTasksTable.tsx:42 +#: src/tables/settings/FailedTasksTable.tsx:48 msgid "Stopped" msgstr "" -#: src/tables/settings/FailedTasksTable.tsx:48 +#: src/tables/settings/FailedTasksTable.tsx:54 msgid "Attempts" msgstr "" +#: src/tables/settings/FailedTasksTable.tsx:92 +msgid "No Information" +msgstr "" + +#: src/tables/settings/FailedTasksTable.tsx:93 +msgid "No error details are available for this task" +msgstr "" + #: src/tables/settings/GroupTable.tsx:90 msgid "Group with id {id} not found" msgstr "" @@ -7398,42 +8638,34 @@ msgstr "Agregar grupo" msgid "Edit group" msgstr "Editar grupo" -#: src/tables/settings/ImportSessionTable.tsx:38 +#: src/tables/settings/ImportSessionTable.tsx:37 msgid "Delete Import Session" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:44 +#: src/tables/settings/ImportSessionTable.tsx:43 #: src/tables/settings/ImportSessionTable.tsx:131 msgid "Create Import Session" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:69 +#: src/tables/settings/ImportSessionTable.tsx:68 msgid "Uploaded" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:79 -msgid "Imported Rows" -msgstr "" - -#: src/tables/settings/ImportSessionTable.tsx:109 -#: src/tables/settings/TemplateTable.tsx:289 +#: src/tables/settings/ImportSessionTable.tsx:108 +#: src/tables/settings/TemplateTable.tsx:369 msgid "Model Type" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:110 -#: src/tables/settings/TemplateTable.tsx:290 +#: src/tables/settings/ImportSessionTable.tsx:109 +#: src/tables/settings/TemplateTable.tsx:370 msgid "Filter by target model type" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:116 +#: src/tables/settings/ImportSessionTable.tsx:115 msgid "Filter by import session status" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:122 -msgid "Filter by user" -msgstr "" - -#: src/tables/settings/PendingTasksTable.tsx:38 +#: src/tables/settings/PendingTasksTable.tsx:42 msgid "Arguments" msgstr "" @@ -7461,12 +8693,16 @@ msgstr "" msgid "Next Run" msgstr "" -#: src/tables/settings/TemplateTable.tsx:85 -msgid "Template not found" +#: src/tables/settings/StocktakeReportTable.tsx:28 +msgid "Report" msgstr "" -#: src/tables/settings/TemplateTable.tsx:87 -msgid "An error occurred while fetching template details" +#: src/tables/settings/StocktakeReportTable.tsx:35 +msgid "Part Count" +msgstr "" + +#: src/tables/settings/StocktakeReportTable.tsx:58 +msgid "Delete Report" msgstr "" #: src/tables/settings/TemplateTable.tsx:120 @@ -7481,21 +8717,12 @@ msgstr "" #~ msgid "actions" #~ msgstr "actions" -#: src/tables/settings/TemplateTable.tsx:177 -msgid "Modify" +#: src/tables/settings/TemplateTable.tsx:162 +msgid "Template not found" msgstr "" -#: src/tables/settings/TemplateTable.tsx:178 -msgid "Modify template file" -msgstr "" - -#: src/tables/settings/TemplateTable.tsx:234 -#: src/tables/settings/TemplateTable.tsx:302 -msgid "Edit Template" -msgstr "" - -#: src/tables/settings/TemplateTable.tsx:242 -msgid "Delete template" +#: src/tables/settings/TemplateTable.tsx:164 +msgid "An error occurred while fetching template details" msgstr "" #: src/tables/settings/TemplateTable.tsx:243 @@ -7506,103 +8733,137 @@ msgstr "" #~ msgid "Create new" #~ msgstr "Create new" -#: src/tables/settings/TemplateTable.tsx:248 +#: src/tables/settings/TemplateTable.tsx:257 +msgid "Modify" +msgstr "" + +#: src/tables/settings/TemplateTable.tsx:258 +msgid "Modify template file" +msgstr "" + +#: src/tables/settings/TemplateTable.tsx:314 +#: src/tables/settings/TemplateTable.tsx:382 +msgid "Edit Template" +msgstr "" + +#: src/tables/settings/TemplateTable.tsx:322 +msgid "Delete template" +msgstr "" + +#: src/tables/settings/TemplateTable.tsx:328 msgid "Add Template" msgstr "" -#: src/tables/settings/TemplateTable.tsx:261 +#: src/tables/settings/TemplateTable.tsx:341 msgid "Add template" msgstr "" -#: src/tables/settings/TemplateTable.tsx:284 +#: src/tables/settings/TemplateTable.tsx:364 msgid "Filter by enabled status" msgstr "" -#: src/tables/settings/UserTable.tsx:82 +#: src/tables/settings/UserTable.tsx:81 msgid "User with id {id} not found" msgstr "" -#: src/tables/settings/UserTable.tsx:84 +#: src/tables/settings/UserTable.tsx:83 msgid "An error occurred while fetching user details" msgstr "" -#: src/tables/settings/UserTable.tsx:102 +#: src/tables/settings/UserTable.tsx:101 msgid "Is Active" msgstr "" -#: src/tables/settings/UserTable.tsx:103 +#: src/tables/settings/UserTable.tsx:102 msgid "Designates whether this user should be treated as active. Unselect this instead of deleting accounts." msgstr "" -#: src/tables/settings/UserTable.tsx:107 +#: src/tables/settings/UserTable.tsx:106 msgid "Is Staff" msgstr "" -#: src/tables/settings/UserTable.tsx:108 +#: src/tables/settings/UserTable.tsx:107 msgid "Designates whether the user can log into the django admin site." msgstr "" -#: src/tables/settings/UserTable.tsx:112 +#: src/tables/settings/UserTable.tsx:111 msgid "Is Superuser" msgstr "" -#: src/tables/settings/UserTable.tsx:113 +#: src/tables/settings/UserTable.tsx:112 msgid "Designates that this user has all permissions without explicitly assigning them." msgstr "" -#: src/tables/settings/UserTable.tsx:123 +#: src/tables/settings/UserTable.tsx:122 msgid "You cannot edit the rights for the currently logged-in user." msgstr "" -#: src/tables/settings/UserTable.tsx:154 +#: src/tables/settings/UserTable.tsx:153 msgid "No groups" msgstr "" -#: src/tables/settings/UserTable.tsx:245 +#: src/tables/settings/UserTable.tsx:244 msgid "Delete user" msgstr "" -#: src/tables/settings/UserTable.tsx:246 +#: src/tables/settings/UserTable.tsx:245 msgid "User deleted" msgstr "" -#: src/tables/settings/UserTable.tsx:248 +#: src/tables/settings/UserTable.tsx:247 msgid "Are you sure you want to delete this user?" msgstr "" -#: src/tables/settings/UserTable.tsx:254 -#: src/tables/settings/UserTable.tsx:272 +#: src/tables/settings/UserTable.tsx:253 +#: src/tables/settings/UserTable.tsx:271 msgid "Add user" msgstr "" -#: src/tables/settings/UserTable.tsx:262 +#: src/tables/settings/UserTable.tsx:261 msgid "Added user" msgstr "Usuario agregado" -#: src/tables/settings/UserTable.tsx:285 +#: src/tables/settings/UserTable.tsx:284 msgid "Show active users" msgstr "" -#: src/tables/settings/UserTable.tsx:289 +#: src/tables/settings/UserTable.tsx:288 msgid "Staff" msgstr "" -#: src/tables/settings/UserTable.tsx:290 +#: src/tables/settings/UserTable.tsx:289 msgid "Show staff users" msgstr "" #: src/tables/settings/UserTable.tsx:294 -msgid "Superuser" -msgstr "" - -#: src/tables/settings/UserTable.tsx:295 msgid "Show superusers" msgstr "" -#: src/tables/settings/UserTable.tsx:305 +#: src/tables/settings/UserTable.tsx:304 msgid "Edit user" msgstr "Editar usuario" +#: src/tables/stock/InstalledItemsTable.tsx:37 +#: src/tables/stock/InstalledItemsTable.tsx:90 +msgid "Install Item" +msgstr "" + +#: src/tables/stock/InstalledItemsTable.tsx:39 +msgid "Item installed" +msgstr "" + +#: src/tables/stock/InstalledItemsTable.tsx:50 +msgid "Uninstall Item" +msgstr "" + +#: src/tables/stock/InstalledItemsTable.tsx:52 +msgid "Item uninstalled" +msgstr "" + +#: src/tables/stock/InstalledItemsTable.tsx:108 +msgid "Uninstall stock item" +msgstr "" + #: src/tables/stock/LocationTypesTable.tsx:39 #: src/tables/stock/LocationTypesTable.tsx:109 msgid "Add Location Type" @@ -7620,276 +8881,272 @@ msgstr "" msgid "Icon" msgstr "" -#: src/tables/stock/StockItemTable.tsx:101 +#: src/tables/stock/StockItemTable.tsx:90 msgid "This stock item is in production" msgstr "" -#: src/tables/stock/StockItemTable.tsx:110 +#: src/tables/stock/StockItemTable.tsx:97 msgid "This stock item has been assigned to a sales order" msgstr "" -#: src/tables/stock/StockItemTable.tsx:119 +#: src/tables/stock/StockItemTable.tsx:104 msgid "This stock item has been assigned to a customer" msgstr "" -#: src/tables/stock/StockItemTable.tsx:128 +#: src/tables/stock/StockItemTable.tsx:111 msgid "This stock item is installed in another stock item" msgstr "" -#: src/tables/stock/StockItemTable.tsx:137 +#: src/tables/stock/StockItemTable.tsx:118 msgid "This stock item has been consumed by a build order" msgstr "" -#: src/tables/stock/StockItemTable.tsx:146 +#: src/tables/stock/StockItemTable.tsx:125 +msgid "This stock item is unavailable" +msgstr "" + +#: src/tables/stock/StockItemTable.tsx:134 msgid "This stock item has expired" msgstr "" -#: src/tables/stock/StockItemTable.tsx:150 +#: src/tables/stock/StockItemTable.tsx:138 msgid "This stock item is stale" msgstr "" -#: src/tables/stock/StockItemTable.tsx:161 +#: src/tables/stock/StockItemTable.tsx:150 msgid "This stock item is fully allocated" msgstr "" -#: src/tables/stock/StockItemTable.tsx:168 +#: src/tables/stock/StockItemTable.tsx:157 msgid "This stock item is partially allocated" msgstr "" -#: src/tables/stock/StockItemTable.tsx:196 +#: src/tables/stock/StockItemTable.tsx:185 msgid "This stock item has been depleted" msgstr "" -#: src/tables/stock/StockItemTable.tsx:232 +#: src/tables/stock/StockItemTable.tsx:280 msgid "Stocktake Date" msgstr "" -#: src/tables/stock/StockItemTable.tsx:236 -msgid "Expiry Date" -msgstr "" - -#: src/tables/stock/StockItemTable.tsx:260 -msgid "Stock Value" -msgstr "" - -#: src/tables/stock/StockItemTable.tsx:290 +#: src/tables/stock/StockItemTable.tsx:294 msgid "Show stock for active parts" msgstr "" -#: src/tables/stock/StockItemTable.tsx:295 +#: src/tables/stock/StockItemTable.tsx:299 msgid "Filter by stock status" msgstr "" #: src/tables/stock/StockItemTable.tsx:301 -msgid "Show stock for assmebled parts" +#~ msgid "Show stock for assmebled parts" +#~ msgstr "Show stock for assmebled parts" + +#: src/tables/stock/StockItemTable.tsx:305 +msgid "Show stock for assembled parts" msgstr "" -#: src/tables/stock/StockItemTable.tsx:306 +#: src/tables/stock/StockItemTable.tsx:310 msgid "Show items which have been allocated" msgstr "" -#: src/tables/stock/StockItemTable.tsx:311 +#: src/tables/stock/StockItemTable.tsx:315 msgid "Show items which are available" msgstr "" -#: src/tables/stock/StockItemTable.tsx:315 +#: src/tables/stock/StockItemTable.tsx:319 #: src/tables/stock/StockLocationTable.tsx:44 msgid "Include Sublocations" msgstr "" -#: src/tables/stock/StockItemTable.tsx:316 +#: src/tables/stock/StockItemTable.tsx:320 msgid "Include stock in sublocations" msgstr "" -#: src/tables/stock/StockItemTable.tsx:320 +#: src/tables/stock/StockItemTable.tsx:324 msgid "Depleted" msgstr "" -#: src/tables/stock/StockItemTable.tsx:321 +#: src/tables/stock/StockItemTable.tsx:325 msgid "Show depleted stock items" msgstr "" -#: src/tables/stock/StockItemTable.tsx:326 +#: src/tables/stock/StockItemTable.tsx:330 msgid "Show items which are in stock" msgstr "" -#: src/tables/stock/StockItemTable.tsx:331 +#: src/tables/stock/StockItemTable.tsx:335 msgid "Show items which are in production" msgstr "" -#: src/tables/stock/StockItemTable.tsx:336 +#: src/tables/stock/StockItemTable.tsx:340 msgid "Include stock items for variant parts" msgstr "" -#: src/tables/stock/StockItemTable.tsx:341 +#: src/tables/stock/StockItemTable.tsx:345 msgid "Show stock items which are installed in other items" msgstr "" -#: src/tables/stock/StockItemTable.tsx:345 +#: src/tables/stock/StockItemTable.tsx:349 msgid "Sent to Customer" msgstr "" -#: src/tables/stock/StockItemTable.tsx:346 +#: src/tables/stock/StockItemTable.tsx:350 msgid "Show items which have been sent to a customer" msgstr "" -#: src/tables/stock/StockItemTable.tsx:350 +#: src/tables/stock/StockItemTable.tsx:354 msgid "Is Serialized" msgstr "" -#: src/tables/stock/StockItemTable.tsx:351 +#: src/tables/stock/StockItemTable.tsx:355 msgid "Show items which have a serial number" msgstr "" -#: src/tables/stock/StockItemTable.tsx:358 +#: src/tables/stock/StockItemTable.tsx:362 msgid "Has Batch Code" msgstr "" -#: src/tables/stock/StockItemTable.tsx:359 +#: src/tables/stock/StockItemTable.tsx:363 msgid "Show items which have a batch code" msgstr "" -#: src/tables/stock/StockItemTable.tsx:365 +#: src/tables/stock/StockItemTable.tsx:369 msgid "Show tracked items" msgstr "" -#: src/tables/stock/StockItemTable.tsx:369 +#: src/tables/stock/StockItemTable.tsx:373 msgid "Has Purchase Price" msgstr "" -#: src/tables/stock/StockItemTable.tsx:370 +#: src/tables/stock/StockItemTable.tsx:374 msgid "Show items which have a purchase price" msgstr "" -#: src/tables/stock/StockItemTable.tsx:378 +#: src/tables/stock/StockItemTable.tsx:382 msgid "External Location" msgstr "" -#: src/tables/stock/StockItemTable.tsx:379 +#: src/tables/stock/StockItemTable.tsx:383 msgid "Show items in an external location" msgstr "" -#: src/tables/stock/StockItemTable.tsx:451 +#: src/tables/stock/StockItemTable.tsx:456 msgid "Add a new stock item" msgstr "" -#: src/tables/stock/StockItemTable.tsx:460 +#: src/tables/stock/StockItemTable.tsx:465 msgid "Remove some quantity from a stock item" msgstr "" -#: src/tables/stock/StockItemTable.tsx:482 +#: src/tables/stock/StockItemTable.tsx:487 msgid "Move Stock items to new locations" msgstr "" -#: src/tables/stock/StockItemTable.tsx:489 +#: src/tables/stock/StockItemTable.tsx:494 msgid "Change stock status" msgstr "" -#: src/tables/stock/StockItemTable.tsx:491 +#: src/tables/stock/StockItemTable.tsx:496 msgid "Change the status of stock items" msgstr "" -#: src/tables/stock/StockItemTable.tsx:498 +#: src/tables/stock/StockItemTable.tsx:503 msgid "Merge stock" msgstr "" -#: src/tables/stock/StockItemTable.tsx:500 +#: src/tables/stock/StockItemTable.tsx:505 msgid "Merge stock items" msgstr "" -#: src/tables/stock/StockItemTable.tsx:509 -#: src/tables/stock/StockItemTable.tsx:516 +#: src/tables/stock/StockItemTable.tsx:514 +#: src/tables/stock/StockItemTable.tsx:521 msgid "Order new stock" msgstr "" -#: src/tables/stock/StockItemTable.tsx:514 +#: src/tables/stock/StockItemTable.tsx:519 msgid "Assign to customer" msgstr "" -#: src/tables/stock/StockItemTable.tsx:523 +#: src/tables/stock/StockItemTable.tsx:528 msgid "Delete stock" msgstr "" -#: src/tables/stock/StockItemTable.tsx:525 -msgid "Delete stock items" -msgstr "" +#: src/tables/stock/StockItemTable.tsx:528 +#~ msgid "Delete stock items" +#~ msgstr "Delete stock items" -#: src/tables/stock/StockItemTestResultTable.tsx:131 +#: src/tables/stock/StockItemTestResultTable.tsx:137 msgid "Test" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:157 +#: src/tables/stock/StockItemTestResultTable.tsx:163 msgid "Test result for installed stock item" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:168 -msgid "Result" -msgstr "" - -#: src/tables/stock/StockItemTestResultTable.tsx:190 +#: src/tables/stock/StockItemTestResultTable.tsx:196 msgid "Attachment" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:206 +#: src/tables/stock/StockItemTestResultTable.tsx:212 msgid "Test station" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:226 +#: src/tables/stock/StockItemTestResultTable.tsx:234 msgid "Finished" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:268 -#: src/tables/stock/StockItemTestResultTable.tsx:339 +#: src/tables/stock/StockItemTestResultTable.tsx:286 +#: src/tables/stock/StockItemTestResultTable.tsx:357 msgid "Edit Test Result" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:270 +#: src/tables/stock/StockItemTestResultTable.tsx:288 msgid "Test result updated" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:276 -#: src/tables/stock/StockItemTestResultTable.tsx:348 +#: src/tables/stock/StockItemTestResultTable.tsx:294 +#: src/tables/stock/StockItemTestResultTable.tsx:366 msgid "Delete Test Result" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:278 +#: src/tables/stock/StockItemTestResultTable.tsx:296 msgid "Test result deleted" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:292 +#: src/tables/stock/StockItemTestResultTable.tsx:310 msgid "Test Passed" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:293 +#: src/tables/stock/StockItemTestResultTable.tsx:311 msgid "Test result has been recorded" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:300 +#: src/tables/stock/StockItemTestResultTable.tsx:318 msgid "Failed to record test result" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:317 +#: src/tables/stock/StockItemTestResultTable.tsx:335 msgid "Pass Test" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:366 +#: src/tables/stock/StockItemTestResultTable.tsx:384 msgid "Show results for required tests" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:370 +#: src/tables/stock/StockItemTestResultTable.tsx:388 msgid "Include Installed" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:371 +#: src/tables/stock/StockItemTestResultTable.tsx:389 msgid "Show results for installed stock items" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:375 -#: src/tables/stock/TestStatisticsTable.tsx:74 +#: src/tables/stock/StockItemTestResultTable.tsx:393 +#: src/tables/stock/TestStatisticsTable.tsx:62 msgid "Passed" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:376 +#: src/tables/stock/StockItemTestResultTable.tsx:394 msgid "Show only passed tests" msgstr "" @@ -7922,28 +9179,32 @@ msgid "Filter by location type" msgstr "" #: src/tables/stock/StockLocationTable.tsx:107 -#: src/tables/stock/StockLocationTable.tsx:133 +#: src/tables/stock/StockLocationTable.tsx:134 msgid "Add Stock Location" msgstr "" -#: src/tables/stock/StockTrackingTable.tsx:64 +#: src/tables/stock/StockTrackingTable.tsx:68 msgid "Added" msgstr "" -#: src/tables/stock/StockTrackingTable.tsx:69 +#: src/tables/stock/StockTrackingTable.tsx:73 msgid "Removed" msgstr "" #: src/tables/stock/StockTrackingTable.tsx:198 +msgid "Details" +msgstr "Detalles" + +#: src/tables/stock/StockTrackingTable.tsx:213 msgid "No user information" msgstr "" -#: src/tables/stock/TestStatisticsTable.tsx:46 -#: src/tables/stock/TestStatisticsTable.tsx:76 +#: src/tables/stock/TestStatisticsTable.tsx:34 +#: src/tables/stock/TestStatisticsTable.tsx:64 msgid "Total" msgstr "" -#: src/tables/stock/TestStatisticsTable.tsx:75 +#: src/tables/stock/TestStatisticsTable.tsx:63 msgid "Failed" msgstr "" diff --git a/src/frontend/src/locales/et/messages.po b/src/frontend/src/locales/et/messages.po index e1716e2891..f144522a23 100644 --- a/src/frontend/src/locales/et/messages.po +++ b/src/frontend/src/locales/et/messages.po @@ -8,27 +8,27 @@ msgstr "" "Language: et\n" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"PO-Revision-Date: 2024-08-20 19:51\n" +"PO-Revision-Date: 2024-11-04 03:14\n" "Last-Translator: \n" "Language-Team: Estonian\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Crowdin-Project: inventree\n" "X-Crowdin-Project-ID: 452300\n" "X-Crowdin-Language: et\n" -"X-Crowdin-File: /[inventree.InvenTree] l10/src/frontend/src/locales/en/messages.po\n" -"X-Crowdin-File-ID: 205\n" +"X-Crowdin-File: /src/frontend/src/locales/en/messages.po\n" +"X-Crowdin-File-ID: 252\n" #: src/components/Boundary.tsx:12 msgid "Error rendering component" -msgstr "Komponendi renderdamise viga" +msgstr "Komponendi renderdamise tõrge" #: src/components/Boundary.tsx:14 msgid "An error occurred while rendering this component. Refer to the console for more information." -msgstr "Selle komponendi renderdamisel tekkis viga. Lisateabe saamiseks vaadake konsooli." +msgstr "Komponendi renderimisel tekkis viga. Lisateabe saamiseks vaadake konsooli." #: src/components/DashboardItemProxy.tsx:34 -msgid "Title" -msgstr "Pealkiri" +#~ msgid "Title" +#~ msgstr "Title" #: src/components/buttons/AdminButton.tsx:80 msgid "Open in admin interface" @@ -38,82 +38,99 @@ msgstr "Ava admini liideses" #~ msgid "Copy to clipboard" #~ msgstr "Copy to clipboard" -#: src/components/buttons/CopyButton.tsx:24 +#: src/components/buttons/CopyButton.tsx:29 msgid "Copied" msgstr "Kopeeritud" -#: src/components/buttons/CopyButton.tsx:24 +#: src/components/buttons/CopyButton.tsx:29 msgid "Copy" msgstr "Kopeeri" -#: src/components/buttons/PrintingActions.tsx:93 +#: src/components/buttons/PrintingActions.tsx:97 msgid "Print Label" msgstr "Prindi silt" -#: src/components/buttons/PrintingActions.tsx:99 +#: src/components/buttons/PrintingActions.tsx:103 msgid "Print" msgstr "Prindi" -#: src/components/buttons/PrintingActions.tsx:100 +#: src/components/buttons/PrintingActions.tsx:104 msgid "Label printing completed successfully" msgstr "Sildi printimine õnnestus" -#: src/components/buttons/PrintingActions.tsx:106 -#: src/components/buttons/PrintingActions.tsx:144 -#: src/components/editors/NotesEditor.tsx:65 -#: src/components/editors/NotesEditor.tsx:165 -#: src/components/forms/fields/ApiFormField.tsx:319 +#: src/components/buttons/PrintingActions.tsx:110 +#: src/components/buttons/PrintingActions.tsx:148 +#: src/components/editors/NotesEditor.tsx:73 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:154 +#: src/components/forms/fields/ApiFormField.tsx:328 +#: src/components/forms/fields/TableField.tsx:43 #: src/components/importer/ImportDataSelector.tsx:187 -#: src/components/importer/ImporterColumnSelector.tsx:207 +#: src/components/importer/ImporterColumnSelector.tsx:210 #: src/components/modals/LicenseModal.tsx:75 -#: src/components/nav/SearchDrawer.tsx:448 +#: src/components/nav/SearchDrawer.tsx:458 +#: src/components/render/ModelType.tsx:290 #: src/pages/ErrorPage.tsx:11 -#: src/pages/part/PartPricingPanel.tsx:67 -#: src/tables/InvenTreeTable.tsx:495 +#: src/pages/part/PartPricingPanel.tsx:71 +#: src/tables/InvenTreeTable.tsx:481 #: src/tables/bom/BomTable.tsx:450 -#: src/tables/stock/StockItemTestResultTable.tsx:299 +#: src/tables/stock/StockItemTestResultTable.tsx:317 msgid "Error" msgstr "Tõrge" -#: src/components/buttons/PrintingActions.tsx:107 +#: src/components/buttons/PrintingActions.tsx:111 msgid "The label could not be generated" msgstr "Sildi genereerimine ebaõnnestus" -#: src/components/buttons/PrintingActions.tsx:122 +#: src/components/buttons/PrintingActions.tsx:126 msgid "Print Report" msgstr "Prindi aruanne" -#: src/components/buttons/PrintingActions.tsx:138 +#: src/components/buttons/PrintingActions.tsx:142 msgid "Generate" msgstr "Genereeri" -#: src/components/buttons/PrintingActions.tsx:139 +#: src/components/buttons/PrintingActions.tsx:143 msgid "Report printing completed successfully" msgstr "Aruande printimine õnnestus" -#: src/components/buttons/PrintingActions.tsx:145 +#: src/components/buttons/PrintingActions.tsx:149 msgid "The report could not be generated" msgstr "Aruande genereerimine ebaõnnestus" -#: src/components/buttons/PrintingActions.tsx:173 +#: src/components/buttons/PrintingActions.tsx:177 msgid "Printing Actions" msgstr "Printimise toimingud" -#: src/components/buttons/PrintingActions.tsx:178 +#: src/components/buttons/PrintingActions.tsx:182 msgid "Print Labels" msgstr "Prindi sildid" -#: src/components/buttons/PrintingActions.tsx:184 +#: src/components/buttons/PrintingActions.tsx:188 msgid "Print Reports" msgstr "Prindi aruanded" +#: src/components/buttons/RemoveRowButton.tsx:8 +msgid "Remove this row" +msgstr "Eemalda see rida" + #: src/components/buttons/ScanButton.tsx:15 -msgid "Scan QR code" -msgstr "Skaneeri QR-koodi" +#: src/components/nav/NavigationDrawer.tsx:117 +#: src/forms/PurchaseOrderForms.tsx:379 +#: src/forms/PurchaseOrderForms.tsx:473 +msgid "Scan Barcode" +msgstr "" + +#: src/components/buttons/ScanButton.tsx:15 +#~ msgid "Scan QR code" +#~ msgstr "Scan QR code" #: src/components/buttons/ScanButton.tsx:20 -msgid "Open QR code scanner" -msgstr "Ava QR-koodi skanner" +msgid "Open Barcode Scanner" +msgstr "" + +#: src/components/buttons/ScanButton.tsx:20 +#~ msgid "Open QR code scanner" +#~ msgstr "Open QR code scanner" #: src/components/buttons/SpotlightButton.tsx:14 msgid "Open spotlight" @@ -128,85 +145,347 @@ msgid "Fail" msgstr "Läbikukkumine" #: src/components/buttons/YesNoButton.tsx:33 -#: src/tables/Filter.tsx:52 +#: src/tables/Filter.tsx:61 msgid "Yes" msgstr "Jah" #: src/components/buttons/YesNoButton.tsx:33 -#: src/tables/Filter.tsx:53 +#: src/tables/Filter.tsx:62 msgid "No" msgstr "Ei" -#: src/components/details/Details.tsx:301 +#: src/components/dashboard/DashboardLayout.tsx:286 +msgid "No Widgets Selected" +msgstr "" + +#: src/components/dashboard/DashboardLayout.tsx:289 +msgid "Use the menu to add widgets to the dashboard" +msgstr "" + +#: src/components/dashboard/DashboardMenu.tsx:59 +#: src/components/dashboard/DashboardMenu.tsx:126 +msgid "Accept Layout" +msgstr "" + +#: src/components/dashboard/DashboardMenu.tsx:91 +#: src/components/nav/NavigationDrawer.tsx:71 +#: src/defaults/actions.tsx:17 +#: src/defaults/links.tsx:9 +#: src/pages/Index/Settings/UserSettings.tsx:47 +msgid "Dashboard" +msgstr "Töölaud" + +#: src/components/dashboard/DashboardMenu.tsx:99 +msgid "Edit Layout" +msgstr "" + +#: src/components/dashboard/DashboardMenu.tsx:108 +msgid "Add Widget" +msgstr "Lisa vidin" + +#: src/components/dashboard/DashboardMenu.tsx:117 +msgid "Remove Widgets" +msgstr "" + +#: src/components/dashboard/DashboardWidget.tsx:65 +msgid "Remove this widget from the dashboard" +msgstr "" + +#: src/components/dashboard/DashboardWidgetDrawer.tsx:77 +msgid "Filter dashboard widgets" +msgstr "" + +#: src/components/dashboard/DashboardWidgetDrawer.tsx:98 +msgid "Add this widget to the dashboard" +msgstr "" + +#: src/components/dashboard/DashboardWidgetDrawer.tsx:123 +msgid "No Widgets Available" +msgstr "" + +#: src/components/dashboard/DashboardWidgetDrawer.tsx:124 +msgid "There are no more widgets available for the dashboard" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:19 +msgid "Subscribed Parts" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:20 +msgid "Show the number of parts which you have subscribed to" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:26 +msgid "Subscribed Categories" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:27 +msgid "Show the number of part categories which you have subscribed to" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:35 +#: src/pages/part/PartSchedulingDetail.tsx:304 +#: src/tables/part/PartTable.tsx:238 +msgid "Low Stock" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:37 +msgid "Show the number of parts which are low on stock" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:43 +msgid "Expired Stock Items" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:45 +msgid "Show the number of stock items which have expired" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:51 +msgid "Stale Stock Items" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:53 +msgid "Show the number of stock items which are stale" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:59 +msgid "Active Build Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:61 +msgid "Show the number of build orders which are currently active" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:66 +msgid "Overdue Build Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:68 +msgid "Show the number of build orders which are overdue" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:73 +msgid "Assigned Build Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:75 +msgid "Show the number of build orders which are assigned to you" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:80 +msgid "Active Sales Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:82 +msgid "Show the number of sales orders which are currently active" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:87 +msgid "Overdue Sales Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:89 +msgid "Show the number of sales orders which are overdue" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:94 +msgid "Assigned Sales Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:96 +msgid "Show the number of sales orders which are assigned to you" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:101 +msgid "Active Purchase Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:103 +msgid "Show the number of purchase orders which are currently active" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:108 +msgid "Overdue Purchase Orders" +msgstr "Viivitatud ostutellimused" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:110 +msgid "Show the number of purchase orders which are overdue" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:115 +msgid "Assigned Purchase Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:117 +msgid "Show the number of purchase orders which are assigned to you" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:122 +msgid "Active Return Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:124 +msgid "Show the number of return orders which are currently active" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:129 +msgid "Overdue Return Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:131 +msgid "Show the number of return orders which are overdue" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:136 +msgid "Assigned Return Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:138 +msgid "Show the number of return orders which are assigned to you" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:149 +#: src/components/dashboard/widgets/GetStartedWidget.tsx:15 +#: src/defaults/links.tsx:38 +msgid "Getting Started" +msgstr "Alustamine" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:150 +#: src/defaults/links.tsx:41 +msgid "Getting started with InvenTree" +msgstr "Arendage InvenTree'ga" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:157 +#: src/components/dashboard/widgets/NewsWidget.tsx:123 +msgid "News Updates" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:158 +msgid "The latest news from InvenTree" +msgstr "" + +#: src/components/dashboard/widgets/ColorToggleWidget.tsx:18 +#: src/components/nav/MainMenu.tsx:77 +msgid "Change Color Mode" +msgstr "" + +#: src/components/dashboard/widgets/ColorToggleWidget.tsx:23 +msgid "Change the color mode of the user interface" +msgstr "" + +#: src/components/dashboard/widgets/LanguageSelectWidget.tsx:18 +msgid "Change Language" +msgstr "" + +#: src/components/dashboard/widgets/LanguageSelectWidget.tsx:23 +msgid "Change the language of the user interface" +msgstr "" + +#: src/components/dashboard/widgets/NewsWidget.tsx:61 +#: src/components/nav/NotificationDrawer.tsx:88 +#: src/pages/Notifications.tsx:73 +msgid "Mark as read" +msgstr "Märgi loetuks" + +#: src/components/dashboard/widgets/NewsWidget.tsx:115 +msgid "Requires Superuser" +msgstr "" + +#: src/components/dashboard/widgets/NewsWidget.tsx:116 +msgid "This widget requires superuser permissions" +msgstr "" + +#: src/components/dashboard/widgets/NewsWidget.tsx:133 +msgid "No News" +msgstr "" + +#: src/components/dashboard/widgets/NewsWidget.tsx:134 +msgid "There are no unread news items" +msgstr "" + +#: src/components/details/Details.tsx:300 msgid "No name defined" msgstr "Nime pole määratud" -#: src/components/details/DetailsImage.tsx:65 +#: src/components/details/DetailsImage.tsx:69 msgid "Remove Image" msgstr "Eemalda pilt" -#: src/components/details/DetailsImage.tsx:68 +#: src/components/details/DetailsImage.tsx:72 msgid "Remove the associated image from this item?" msgstr "Kas soovite eemaldada seotud pildi sellest üksusest?" -#: src/components/details/DetailsImage.tsx:71 -#: src/forms/StockForms.tsx:533 +#: src/components/details/DetailsImage.tsx:75 +#: src/forms/StockForms.tsx:651 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:199 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:306 -#: src/pages/stock/StockDetail.tsx:526 +#: src/pages/stock/StockDetail.tsx:690 msgid "Remove" msgstr "Eemalda" -#: src/components/details/DetailsImage.tsx:71 -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:158 -#: src/components/items/ActionDropdown.tsx:215 -#: src/components/items/ActionDropdown.tsx:216 -#: src/contexts/ThemeContext.tsx:43 +#: src/components/details/DetailsImage.tsx:75 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:184 +#: src/components/items/ActionDropdown.tsx:268 +#: src/components/items/ActionDropdown.tsx:269 +#: src/contexts/ThemeContext.tsx:45 #: src/hooks/UseForm.tsx:40 -#: src/tables/FilterSelectDrawer.tsx:205 -#: src/tables/build/BuildOutputTable.tsx:286 +#: src/tables/FilterSelectDrawer.tsx:241 +#: src/tables/RowActions.tsx:59 +#: src/tables/build/BuildOutputTable.tsx:434 msgid "Cancel" msgstr "Tühista" -#: src/components/details/DetailsImage.tsx:97 +#: src/components/details/DetailsImage.tsx:101 msgid "Drag and drop to upload" msgstr "Lohista ja aseta üleslaadimiseks" -#: src/components/details/DetailsImage.tsx:100 +#: src/components/details/DetailsImage.tsx:104 msgid "Click to select file(s)" -msgstr "Failide valimiseks klõpsake" +msgstr "Klõpsake, et valida fail(id)" -#: src/components/details/DetailsImage.tsx:226 +#: src/components/details/DetailsImage.tsx:230 msgid "Clear" msgstr "Puhasta" -#: src/components/details/DetailsImage.tsx:232 -#: src/components/forms/ApiForm.tsx:627 -#: src/contexts/ThemeContext.tsx:43 -#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:60 +#: src/components/details/DetailsImage.tsx:236 +#: src/components/forms/ApiForm.tsx:660 +#: src/contexts/ThemeContext.tsx:45 msgid "Submit" msgstr "Esita" -#: src/components/details/DetailsImage.tsx:272 +#: src/components/details/DetailsImage.tsx:280 msgid "Select from existing images" msgstr "Vali olemasolevatest piltidest" -#: src/components/details/DetailsImage.tsx:280 +#: src/components/details/DetailsImage.tsx:288 msgid "Select Image" msgstr "Vali pilt" -#: src/components/details/DetailsImage.tsx:292 +#: src/components/details/DetailsImage.tsx:304 +msgid "Download remote image" +msgstr "" + +#: src/components/details/DetailsImage.tsx:319 msgid "Upload new image" msgstr "Laadi üles uus pilt" -#: src/components/details/DetailsImage.tsx:299 +#: src/components/details/DetailsImage.tsx:326 msgid "Upload Image" msgstr "Laadi pilt üles" -#: src/components/details/DetailsImage.tsx:312 +#: src/components/details/DetailsImage.tsx:339 msgid "Delete image" msgstr "Kustuta pilt" +#: src/components/details/DetailsImage.tsx:373 +msgid "Download Image" +msgstr "" + +#: src/components/details/DetailsImage.tsx:378 +msgid "Image downloaded successfully" +msgstr "" + #: src/components/details/PartIcons.tsx:43 #~ msgid "Part is a template part (variants can be made from this part)" #~ msgstr "Part is a template part (variants can be made from this part)" @@ -235,36 +514,57 @@ msgstr "Kustuta pilt" #~ msgid "Part is virtual (not a physical part)" #~ msgstr "Part is virtual (not a physical part)" -#: src/components/editors/NotesEditor.tsx:66 +#: src/components/editors/NotesEditor.tsx:74 msgid "Image upload failed" msgstr "Pildi üleslaadimine ebaõnnestus" -#: src/components/editors/NotesEditor.tsx:156 -#: src/components/forms/ApiForm.tsx:467 +#: src/components/editors/NotesEditor.tsx:83 +#: src/components/editors/NotesEditor.tsx:119 +#: src/components/forms/ApiForm.tsx:475 #: src/tables/bom/BomTable.tsx:441 msgid "Success" msgstr "Edu" -#: src/components/editors/NotesEditor.tsx:157 +#: src/components/editors/NotesEditor.tsx:84 +msgid "Image uploaded successfully" +msgstr "Pildifail üles laaditud" + +#: src/components/editors/NotesEditor.tsx:120 msgid "Notes saved successfully" msgstr "Märkmed salvestati edukalt" -#: src/components/editors/NotesEditor.tsx:166 +#: src/components/editors/NotesEditor.tsx:131 msgid "Failed to save notes" msgstr "Märkmete salvestamine ebaõnnestus" -#: src/components/editors/NotesEditor.tsx:198 -msgid "Preview Notes" -msgstr "Eelvaate märkmed" +#: src/components/editors/NotesEditor.tsx:134 +msgid "Error Saving Notes" +msgstr "" -#: src/components/editors/NotesEditor.tsx:198 -msgid "Edit Notes" -msgstr "Muuda märkmeid" +#: src/components/editors/NotesEditor.tsx:151 +#~ msgid "Disable Editing" +#~ msgstr "Disable Editing" -#: src/components/editors/NotesEditor.tsx:212 +#: src/components/editors/NotesEditor.tsx:154 msgid "Save Notes" msgstr "Salvesta märkmed" +#: src/components/editors/NotesEditor.tsx:173 +msgid "Close Editor" +msgstr "" + +#: src/components/editors/NotesEditor.tsx:180 +msgid "Enable Editing" +msgstr "Luba Kohaldada" + +#: src/components/editors/NotesEditor.tsx:198 +#~ msgid "Preview Notes" +#~ msgstr "Preview Notes" + +#: src/components/editors/NotesEditor.tsx:198 +#~ msgid "Edit Notes" +#~ msgstr "Edit Notes" + #: src/components/editors/TemplateEditor/CodeEditor/index.tsx:9 msgid "Code" msgstr "Kood" @@ -281,40 +581,44 @@ msgstr "Eelvaade pole saadaval, klõpsake \"Laadi eelvaade uuesti\"." msgid "PDF Preview" msgstr "PDF eelvaade" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:104 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:115 msgid "Error loading template" msgstr "Malli laadimise viga" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:116 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:127 msgid "Error saving template" msgstr "Malli salvestamise viga" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:146 -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:274 -msgid "Save & Reload Preview" -msgstr "Salvesta ja laadi eelvaade uuesti" - -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:151 -msgid "Are you sure you want to Save & Reload the preview?" -msgstr "Kas olete kindel, et soovite salvestada ja eelvaate uuesti laadida?" - #: src/components/editors/TemplateEditor/TemplateEditor.tsx:151 #~ msgid "Save & Reload preview?" #~ msgstr "Save & Reload preview?" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:153 -msgid "To render the preview the current template needs to be replaced on the server with your modifications which may break the label if it is under active use. Do you want to proceed?" -msgstr "Eelvaate renderdamiseks tuleb serveris asendada praegune mall teie muudatustega, mis võivad sildi aktiivse kasutamise korral katki teha. Kas soovite jätkata?" +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:155 +msgid "Could not load the template from the server." +msgstr "" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:157 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:172 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:303 +msgid "Save & Reload Preview" +msgstr "Salvesta ja laadi eelvaade uuesti" + +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:177 +msgid "Are you sure you want to Save & Reload the preview?" +msgstr "Kas olete kindel, et soovite salvestada ja eelvaate uuesti laadida?" + +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:179 +msgid "To render the preview the current template needs to be replaced on the server with your modifications which may break the label if it is under active use. Do you want to proceed?" +msgstr "Eelvaate loomiseks on vaja serveris asendada praegune mall teie muudatustega, mis võib põhjustada sildi rikkumise, kui seda kasutatakse aktiivselt. Kas soovite jätkata?" + +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:183 msgid "Save & Reload" msgstr "Salvesta ja laadi uuesti" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:189 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:215 msgid "Preview updated" msgstr "Eelvaade uuendatud" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:190 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:216 msgid "The preview has been updated successfully." msgstr "Eelvaade on edukalt uuendatud." @@ -322,15 +626,15 @@ msgstr "Eelvaade on edukalt uuendatud." #~ msgid "Save & Reload preview" #~ msgstr "Save & Reload preview" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:266 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:295 msgid "Reload preview" msgstr "Laadi eelvaade uuesti" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:267 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:296 msgid "Use the currently stored template from the server" msgstr "Kasuta serveris praegu salvestatud malli" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:275 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:304 msgid "Save the current template and reload the preview" msgstr "Salvesta praegune mall ja laadi eelvaade uuesti" @@ -338,13 +642,13 @@ msgstr "Salvesta praegune mall ja laadi eelvaade uuesti" #~ msgid "to preview" #~ msgstr "to preview" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:333 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:365 msgid "Select instance to preview" -msgstr "" +msgstr "Vali eelvaate jaoks eksemplar" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:377 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:409 msgid "Error rendering template" -msgstr "Malli renderdamise viga" +msgstr "Malli renderdamisel tekkis viga" #: src/components/errors/ClientError.tsx:23 msgid "Client Error" @@ -379,6 +683,7 @@ msgid "This page does not exist" msgstr "Seda lehte ei eksisteeri" #: src/components/errors/PermissionDenied.tsx:8 +#: src/functions/notifications.tsx:24 msgid "Permission Denied" msgstr "Juurdepääs keelatud" @@ -394,8 +699,8 @@ msgstr "Serveri viga" msgid "A server error occurred" msgstr "Tekkis serveri viga" -#: src/components/forms/ApiForm.tsx:151 -#: src/components/forms/ApiForm.tsx:555 +#: src/components/forms/ApiForm.tsx:154 +#: src/components/forms/ApiForm.tsx:579 msgid "Form Error" msgstr "Vormiviga" @@ -403,22 +708,22 @@ msgstr "Vormiviga" #~ msgid "Form Errors Exist" #~ msgstr "Form Errors Exist" -#: src/components/forms/ApiForm.tsx:563 +#: src/components/forms/ApiForm.tsx:587 msgid "Errors exist for one or more form fields" -msgstr "" +msgstr "Ühes või mitmes vormiväljas on vigu" -#: src/components/forms/ApiForm.tsx:665 -#: src/tables/plugin/PluginListTable.tsx:388 +#: src/components/forms/ApiForm.tsx:698 +#: src/tables/plugin/PluginListTable.tsx:195 msgid "Update" msgstr "Värskenda" -#: src/components/forms/ApiForm.tsx:685 -#: src/components/items/ActionDropdown.tsx:195 +#: src/components/forms/ApiForm.tsx:718 +#: src/components/items/ActionDropdown.tsx:248 #: src/hooks/UseForm.tsx:122 -#: src/pages/Index/Scan.tsx:343 +#: src/pages/Index/Scan.tsx:357 #: src/pages/Notifications.tsx:123 -#: src/tables/RowActions.tsx:43 -#: src/tables/plugin/PluginListTable.tsx:420 +#: src/tables/RowActions.tsx:49 +#: src/tables/plugin/PluginListTable.tsx:232 msgid "Delete" msgstr "Kustuta" @@ -428,14 +733,6 @@ msgstr "Kustuta" #~ msgid "Check your your input and try again." #~ msgstr "Check your your input and try again." -#: src/components/forms/AuthenticationForm.tsx:51 -msgid "Login successful" -msgstr "Login õnnestus" - -#: src/components/forms/AuthenticationForm.tsx:52 -msgid "Logged in successfully" -msgstr "" - #: src/components/forms/AuthenticationForm.tsx:52 #~ msgid "Welcome back!" #~ msgstr "Welcome back!" @@ -444,253 +741,264 @@ msgstr "" #~ msgid "Login successfull" #~ msgstr "Login successfull" -#: src/components/forms/AuthenticationForm.tsx:58 +#: src/components/forms/AuthenticationForm.tsx:55 +msgid "Login successful" +msgstr "Login õnnestus" + +#: src/components/forms/AuthenticationForm.tsx:56 +msgid "Logged in successfully" +msgstr "Sisselogimine õnnestus" + +#: src/components/forms/AuthenticationForm.tsx:61 msgid "Login failed" msgstr "Sisselogimine ebaõnnestus" -#: src/components/forms/AuthenticationForm.tsx:59 -#: src/components/forms/AuthenticationForm.tsx:76 -#: src/components/forms/AuthenticationForm.tsx:211 -#: src/functions/auth.tsx:164 +#: src/components/forms/AuthenticationForm.tsx:62 +#: src/components/forms/AuthenticationForm.tsx:79 +#: src/components/forms/AuthenticationForm.tsx:214 +#: src/functions/auth.tsx:175 msgid "Check your input and try again." -msgstr "" +msgstr "Kontrollige oma sisestust ja proovige uuesti." #: src/components/forms/AuthenticationForm.tsx:65 #: src/functions/auth.tsx:74 #~ msgid "Mail delivery successfull" #~ msgstr "Mail delivery successfull" -#: src/components/forms/AuthenticationForm.tsx:70 -#: src/functions/auth.tsx:155 +#: src/components/forms/AuthenticationForm.tsx:73 +#: src/functions/auth.tsx:166 msgid "Mail delivery successful" -msgstr "" +msgstr "E-kirja kohaletoimetamine õnnestus" -#: src/components/forms/AuthenticationForm.tsx:71 +#: src/components/forms/AuthenticationForm.tsx:74 msgid "Check your inbox for the login link. If you have an account, you will receive a login link. Check in spam too." -msgstr "" +msgstr "Kontrollige oma postkasti sisselogimislingi saamiseks. Kui teil on konto, saate sisselogimislingi. Kontrollige ka rämpsposti kausta." -#: src/components/forms/AuthenticationForm.tsx:75 +#: src/components/forms/AuthenticationForm.tsx:78 msgid "Mail delivery failed" -msgstr "" +msgstr "E-kirja kohaletoimetamine ebaõnnestus" -#: src/components/forms/AuthenticationForm.tsx:95 +#: src/components/forms/AuthenticationForm.tsx:98 msgid "Or continue with other methods" -msgstr "" +msgstr "Või jätkake teiste meetoditega" -#: src/components/forms/AuthenticationForm.tsx:106 -#: src/components/forms/AuthenticationForm.tsx:227 +#: src/components/forms/AuthenticationForm.tsx:109 +#: src/components/forms/AuthenticationForm.tsx:230 +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:67 msgid "Username" msgstr "Kasutajanimi" -#: src/components/forms/AuthenticationForm.tsx:107 -#: src/components/forms/AuthenticationForm.tsx:228 +#: src/components/forms/AuthenticationForm.tsx:110 +#: src/components/forms/AuthenticationForm.tsx:231 msgid "Your username" msgstr "Kasutajanimi" -#: src/components/forms/AuthenticationForm.tsx:112 -#: src/components/forms/AuthenticationForm.tsx:240 -#: src/pages/Auth/Set-Password.tsx:106 +#: src/components/forms/AuthenticationForm.tsx:115 +#: src/components/forms/AuthenticationForm.tsx:243 +#: src/pages/Auth/Set-Password.tsx:101 msgid "Password" msgstr "Parool" -#: src/components/forms/AuthenticationForm.tsx:113 -#: src/components/forms/AuthenticationForm.tsx:241 +#: src/components/forms/AuthenticationForm.tsx:116 +#: src/components/forms/AuthenticationForm.tsx:244 msgid "Your password" msgstr "Salasõna" -#: src/components/forms/AuthenticationForm.tsx:125 +#: src/components/forms/AuthenticationForm.tsx:128 #: src/pages/Auth/Reset.tsx:26 msgid "Reset password" -msgstr "Lähtesta salasõna" +msgstr "Lähtesta parool" #: src/components/forms/AuthenticationForm.tsx:131 #~ msgid "Log in" #~ msgstr "Log in" -#: src/components/forms/AuthenticationForm.tsx:134 -#: src/components/forms/AuthenticationForm.tsx:233 +#: src/components/forms/AuthenticationForm.tsx:136 +#~ msgid "I will use username and password" +#~ msgstr "I will use username and password" + +#: src/components/forms/AuthenticationForm.tsx:137 +#: src/components/forms/AuthenticationForm.tsx:236 #: src/pages/Auth/Reset.tsx:31 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:51 msgid "Email" msgstr "E-post" -#: src/components/forms/AuthenticationForm.tsx:135 +#: src/components/forms/AuthenticationForm.tsx:138 #: src/pages/Auth/Reset.tsx:32 -#: src/pages/Auth/Set-Password.tsx:107 +#: src/pages/Auth/Set-Password.tsx:102 msgid "We will send you a link to login - if you are registered" -msgstr "" +msgstr "Saadame teile sisselogimislingi – kui olete registreeritud" -#: src/components/forms/AuthenticationForm.tsx:136 -#~ msgid "I will use username and password" -#~ msgstr "I will use username and password" - -#: src/components/forms/AuthenticationForm.tsx:151 +#: src/components/forms/AuthenticationForm.tsx:154 msgid "Send me an email" msgstr "Saada mulle e-kiri" -#: src/components/forms/AuthenticationForm.tsx:153 +#: src/components/forms/AuthenticationForm.tsx:156 msgid "Use username and password" -msgstr "" +msgstr "Kasutage kasutajanime ja parooli" -#: src/components/forms/AuthenticationForm.tsx:162 +#: src/components/forms/AuthenticationForm.tsx:165 msgid "Log In" msgstr "Logi Sisse" -#: src/components/forms/AuthenticationForm.tsx:164 +#: src/components/forms/AuthenticationForm.tsx:167 +#: src/pages/Auth/Reset.tsx:41 +#: src/pages/Auth/Set-Password.tsx:107 msgid "Send Email" msgstr "Saada kiri" -#: src/components/forms/AuthenticationForm.tsx:193 +#: src/components/forms/AuthenticationForm.tsx:196 msgid "Registration successful" msgstr "Registreerumine õnnestus" -#: src/components/forms/AuthenticationForm.tsx:194 +#: src/components/forms/AuthenticationForm.tsx:197 msgid "Please confirm your email address to complete the registration" -msgstr "" +msgstr "Palun kinnitage oma e-posti aadress, et registreerimine lõpule viia" -#: src/components/forms/AuthenticationForm.tsx:210 +#: src/components/forms/AuthenticationForm.tsx:213 msgid "Input error" msgstr "Sisestustõrge" -#: src/components/forms/AuthenticationForm.tsx:234 +#: src/components/forms/AuthenticationForm.tsx:237 msgid "This will be used for a confirmation" -msgstr "" +msgstr "Seda kasutatakse kinnitamiseks" -#: src/components/forms/AuthenticationForm.tsx:246 +#: src/components/forms/AuthenticationForm.tsx:249 msgid "Password repeat" -msgstr "Salasõna (korrata)" +msgstr "Korda parooli" -#: src/components/forms/AuthenticationForm.tsx:247 +#: src/components/forms/AuthenticationForm.tsx:250 msgid "Repeat password" msgstr "Korrake salasõna" -#: src/components/forms/AuthenticationForm.tsx:259 -#: src/components/forms/AuthenticationForm.tsx:304 +#: src/components/forms/AuthenticationForm.tsx:262 +#: src/components/forms/AuthenticationForm.tsx:307 msgid "Register" msgstr "Registreeru" -#: src/components/forms/AuthenticationForm.tsx:265 +#: src/components/forms/AuthenticationForm.tsx:268 msgid "Or use SSO" msgstr "Või kasuta SSO" -#: src/components/forms/AuthenticationForm.tsx:296 +#: src/components/forms/AuthenticationForm.tsx:299 msgid "Don't have an account?" msgstr "Kas teil pole kontot?" -#: src/components/forms/AuthenticationForm.tsx:315 +#: src/components/forms/AuthenticationForm.tsx:318 msgid "Go back to login" -msgstr "" +msgstr "Mine tagasi sisselogimislehele" #: src/components/forms/HostOptionsForm.tsx:36 #: src/components/forms/HostOptionsForm.tsx:67 msgid "Host" -msgstr "" +msgstr "Võõrustaja" #: src/components/forms/HostOptionsForm.tsx:42 #: src/components/forms/HostOptionsForm.tsx:70 +#: src/components/plugins/PluginDrawer.tsx:69 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:410 +#: src/pages/Index/Settings/AdminCenter/UnitManagmentPanel.tsx:19 #: src/pages/part/CategoryDetail.tsx:81 -#: src/pages/part/PartDetail.tsx:143 -#: src/pages/stock/LocationDetail.tsx:89 -#: src/tables/machine/MachineTypeTable.tsx:65 -#: src/tables/machine/MachineTypeTable.tsx:109 -#: src/tables/machine/MachineTypeTable.tsx:216 -#: src/tables/machine/MachineTypeTable.tsx:319 +#: src/pages/part/PartDetail.tsx:164 +#: src/pages/stock/LocationDetail.tsx:83 +#: src/tables/machine/MachineTypeTable.tsx:70 +#: src/tables/machine/MachineTypeTable.tsx:119 +#: src/tables/machine/MachineTypeTable.tsx:237 +#: src/tables/machine/MachineTypeTable.tsx:340 #: src/tables/plugin/PluginErrorTable.tsx:33 -#: src/tables/plugin/PluginListTable.tsx:126 #: src/tables/purchasing/ManufacturerPartParameterTable.tsx:32 #: src/tables/settings/GroupTable.tsx:147 -#: src/tables/settings/PendingTasksTable.tsx:28 +#: src/tables/settings/PendingTasksTable.tsx:32 #: src/tables/stock/LocationTypesTable.tsx:69 msgid "Name" msgstr "Pealkiri" #: src/components/forms/HostOptionsForm.tsx:75 msgid "No one here..." -msgstr "" +msgstr "Siin pole kedagi..." #: src/components/forms/HostOptionsForm.tsx:86 msgid "Add Host" -msgstr "" +msgstr "Lisa host" #: src/components/forms/HostOptionsForm.tsx:90 msgid "Save" -msgstr "" +msgstr "Salvesta" #: src/components/forms/InstanceOptions.tsx:43 msgid "Select destination instance" -msgstr "" +msgstr "Vali sihtkoha eksemplar" #: src/components/forms/InstanceOptions.tsx:71 msgid "Edit possible host options" -msgstr "" +msgstr "Redigeeri võimalikud võõrustajavalikud" #: src/components/forms/InstanceOptions.tsx:98 msgid "Version: {0}" -msgstr "" +msgstr "Versioon: {0}" #: src/components/forms/InstanceOptions.tsx:100 msgid "API:{0}" -msgstr "" +msgstr "API:{0}" #: src/components/forms/InstanceOptions.tsx:102 msgid "Name: {0}" -msgstr "" +msgstr "Nimi: {0}" #: src/components/forms/InstanceOptions.tsx:104 msgid "State: <0>worker ({0}), <1>plugins{1}" -msgstr "" +msgstr "Olek: <0>töötaja ({0}), <1>lisandmoodulid{1}" #: src/components/forms/fields/IconField.tsx:81 msgid "No icon selected" -msgstr "" +msgstr "Ikooni pole valitud" #: src/components/forms/fields/IconField.tsx:159 msgid "Uncategorized" -msgstr "" +msgstr "Liigitamata" #: src/components/forms/fields/IconField.tsx:209 -#: src/components/nav/Layout.tsx:70 +#: src/components/nav/Layout.tsx:77 #: src/tables/part/PartThumbTable.tsx:192 msgid "Search..." -msgstr "" +msgstr "Otsing..." #: src/components/forms/fields/IconField.tsx:223 msgid "Select category" -msgstr "" +msgstr "Vali kategooria" #: src/components/forms/fields/IconField.tsx:232 msgid "Select pack" -msgstr "" +msgstr "Vali pakk" #: src/components/forms/fields/IconField.tsx:237 msgid "{0} icons" -msgstr "" +msgstr "{0} ikoonid" -#: src/components/forms/fields/RelatedModelField.tsx:318 -#: src/pages/Index/Settings/UserSettings.tsx:96 +#: src/components/forms/fields/RelatedModelField.tsx:319 +#: src/pages/Index/Settings/UserSettings.tsx:97 #: src/tables/Search.tsx:23 msgid "Search" msgstr "Otsing" -#: src/components/forms/fields/RelatedModelField.tsx:319 +#: src/components/forms/fields/RelatedModelField.tsx:320 #: src/components/modals/AboutInvenTreeModal.tsx:81 -#: src/components/widgets/WidgetLayout.tsx:120 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:316 msgid "Loading" msgstr "Laadimine" -#: src/components/forms/fields/RelatedModelField.tsx:321 +#: src/components/forms/fields/RelatedModelField.tsx:322 msgid "No results found" msgstr "Tulemusi pole" -#: src/components/forms/fields/TableField.tsx:52 -msgid "modelRenderer entry required for tables" -msgstr "" +#: src/components/forms/fields/TableField.tsx:72 +#~ msgid "modelRenderer entry required for tables" +#~ msgstr "modelRenderer entry required for tables" -#: src/components/forms/fields/TableField.tsx:76 +#: src/components/forms/fields/TableField.tsx:167 msgid "No entries available" -msgstr "" +msgstr "Sissekanded puuduvad" #: src/components/images/DetailsImage.tsx:252 #~ msgid "Select image" @@ -698,35 +1006,35 @@ msgstr "" #: src/components/images/Thumbnail.tsx:12 msgid "Thumbnail" -msgstr "" +msgstr "Sissekandeid pole saadaval" #: src/components/importer/ImportDataSelector.tsx:170 msgid "Importing Rows" -msgstr "" +msgstr "Readade ridaid" #: src/components/importer/ImportDataSelector.tsx:171 msgid "Please wait while the data is imported" -msgstr "" +msgstr "Palun oodake, kuni andmed imporditakse" #: src/components/importer/ImportDataSelector.tsx:188 msgid "An error occurred while importing data" -msgstr "" +msgstr "Andmete importimisel ilmnes viga" #: src/components/importer/ImportDataSelector.tsx:209 msgid "Edit Data" -msgstr "" +msgstr "Muuda Andmeid" #: src/components/importer/ImportDataSelector.tsx:237 msgid "Delete Row" -msgstr "" +msgstr "Kustuta rida" #: src/components/importer/ImportDataSelector.tsx:267 msgid "Row" -msgstr "" +msgstr "Rida" #: src/components/importer/ImportDataSelector.tsx:285 msgid "Row contains errors" -msgstr "" +msgstr "Rida sisaldab vigu" #: src/components/importer/ImportDataSelector.tsx:326 msgid "Accept" @@ -734,37 +1042,38 @@ msgstr "Nõustu" #: src/components/importer/ImportDataSelector.tsx:359 msgid "Valid" -msgstr "" +msgstr "Kehtiv" #: src/components/importer/ImportDataSelector.tsx:360 msgid "Filter by row validation status" -msgstr "" +msgstr "Filtreeri rea valideerimise oleku järgi" #: src/components/importer/ImportDataSelector.tsx:365 -#: src/tables/build/BuildOutputTable.tsx:266 +#: src/tables/build/BuildOutputTable.tsx:407 msgid "Complete" msgstr "Valmis" #: src/components/importer/ImportDataSelector.tsx:366 msgid "Filter by row completion status" -msgstr "" +msgstr "Filtreeri rea lõpuleviimise oleku järgi" -#: src/components/importer/ImportDataSelector.tsx:383 +#: src/components/importer/ImportDataSelector.tsx:384 msgid "Import selected rows" -msgstr "" +msgstr "Impordi valitud read" -#: src/components/importer/ImportDataSelector.tsx:398 +#: src/components/importer/ImportDataSelector.tsx:399 msgid "Processing Data" -msgstr "" +msgstr "Andmete töötlemine" -#: src/components/importer/ImporterColumnSelector.tsx:50 -#: src/components/importer/ImporterColumnSelector.tsx:176 +#: src/components/importer/ImporterColumnSelector.tsx:53 +#: src/components/importer/ImporterColumnSelector.tsx:179 +#: src/components/items/ErrorItem.tsx:12 msgid "An error occurred" -msgstr "" +msgstr "Ilmnes viga" -#: src/components/importer/ImporterColumnSelector.tsx:62 +#: src/components/importer/ImporterColumnSelector.tsx:65 msgid "Select column, or leave blank to ignore this field." -msgstr "" +msgstr "Valige veerg või jätke tühi, et see väli ignoreerida." #: src/components/importer/ImporterColumnSelector.tsx:91 #~ msgid "Select a column from the data file" @@ -778,265 +1087,316 @@ msgstr "" #~ msgid "Imported Column Name" #~ msgstr "Imported Column Name" -#: src/components/importer/ImporterColumnSelector.tsx:182 +#: src/components/importer/ImporterColumnSelector.tsx:185 msgid "Ignore this field" -msgstr "" +msgstr "Ignoreerige see väli" -#: src/components/importer/ImporterColumnSelector.tsx:196 +#: src/components/importer/ImporterColumnSelector.tsx:199 msgid "Mapping data columns to database fields" -msgstr "" +msgstr "Kaardistage andmepalgid andmebaasi väljadele" -#: src/components/importer/ImporterColumnSelector.tsx:201 +#: src/components/importer/ImporterColumnSelector.tsx:204 msgid "Accept Column Mapping" -msgstr "" - -#: src/components/importer/ImporterColumnSelector.tsx:214 -msgid "Database Field" -msgstr "" - -#: src/components/importer/ImporterColumnSelector.tsx:215 -msgid "Field Description" -msgstr "" - -#: src/components/importer/ImporterColumnSelector.tsx:216 -msgid "Imported Column" -msgstr "" +msgstr "Võtke vastu veeru kaardistamine" #: src/components/importer/ImporterColumnSelector.tsx:217 +msgid "Database Field" +msgstr "Andmebaasi väli" + +#: src/components/importer/ImporterColumnSelector.tsx:218 +msgid "Field Description" +msgstr "Välja kirjeldus" + +#: src/components/importer/ImporterColumnSelector.tsx:219 +msgid "Imported Column" +msgstr "Imporditud veerg" + +#: src/components/importer/ImporterColumnSelector.tsx:220 msgid "Default Value" -msgstr "" - -#: src/components/importer/ImporterDrawer.tsx:44 -msgid "Upload File" -msgstr "" - -#: src/components/importer/ImporterDrawer.tsx:45 -msgid "Map Columns" -msgstr "" +msgstr "Vaikimisi väärtus" #: src/components/importer/ImporterDrawer.tsx:46 +msgid "Upload File" +msgstr "Laadi üles fail" + +#: src/components/importer/ImporterDrawer.tsx:47 +msgid "Map Columns" +msgstr "Kaardista veerud" + +#: src/components/importer/ImporterDrawer.tsx:48 msgid "Import Data" msgstr "Andmete importimine" -#: src/components/importer/ImporterDrawer.tsx:47 +#: src/components/importer/ImporterDrawer.tsx:49 msgid "Process Data" -msgstr "" +msgstr "Andmete töötlemine" -#: src/components/importer/ImporterDrawer.tsx:48 +#: src/components/importer/ImporterDrawer.tsx:50 msgid "Complete Import" -msgstr "" +msgstr "Täielik import" #: src/components/importer/ImporterDrawer.tsx:97 #~ msgid "Cancel import session" #~ msgstr "Cancel import session" -#: src/components/importer/ImporterDrawer.tsx:104 +#: src/components/importer/ImporterDrawer.tsx:106 msgid "Import Complete" -msgstr "" - -#: src/components/importer/ImporterDrawer.tsx:107 -msgid "Data has been imported successfully" -msgstr "" +msgstr "Impordi lõpuleviidud" #: src/components/importer/ImporterDrawer.tsx:109 -#: src/components/importer/ImporterDrawer.tsx:118 +msgid "Data has been imported successfully" +msgstr "Andmed on edukalt importitud" + +#: src/components/importer/ImporterDrawer.tsx:111 +#: src/components/importer/ImporterDrawer.tsx:120 msgid "Close" msgstr "Sulge" -#: src/components/importer/ImporterDrawer.tsx:115 +#: src/components/importer/ImporterDrawer.tsx:117 msgid "Unknown Status" -msgstr "" +msgstr "Tundmatu staatus" -#: src/components/importer/ImporterDrawer.tsx:116 +#: src/components/importer/ImporterDrawer.tsx:118 msgid "Import session has unknown status" -msgstr "" +msgstr "Impordiseansil on tundmatu staatus" -#: src/components/importer/ImporterDrawer.tsx:135 +#: src/components/importer/ImporterDrawer.tsx:137 msgid "Importing Data" -msgstr "" +msgstr "Andmete importimine" #: src/components/importer/ImporterImportProgress.tsx:36 msgid "Importing Records" -msgstr "" +msgstr "Impordime Kirjed" #: src/components/importer/ImporterImportProgress.tsx:39 -msgid "Imported rows" -msgstr "" +#: src/tables/settings/ImportSessionTable.tsx:78 +msgid "Imported Rows" +msgstr "Imporditud read" -#: src/components/items/ActionDropdown.tsx:121 -msgid "Barcode Actions" -msgstr "" +#: src/components/importer/ImporterImportProgress.tsx:39 +#~ msgid "Imported rows" +#~ msgstr "Imported rows" + +#: src/components/items/ActionDropdown.tsx:126 +msgid "Options" +msgstr "Valikud" #: src/components/items/ActionDropdown.tsx:140 -msgid "View Barcode" -msgstr "" +#~ msgid "View Barcode" +#~ msgstr "View Barcode" -#: src/components/items/ActionDropdown.tsx:147 +#: src/components/items/ActionDropdown.tsx:162 +#: src/tables/InvenTreeTableHeader.tsx:159 +#: src/tables/InvenTreeTableHeader.tsx:160 +msgid "Barcode Actions" +msgstr "Vöötkoodi Toimingud" + +#: src/components/items/ActionDropdown.tsx:162 +#~ msgid "Link custom barcode" +#~ msgstr "Link custom barcode" + +#: src/components/items/ActionDropdown.tsx:167 msgid "View" msgstr "Kuva" -#: src/components/items/ActionDropdown.tsx:148 +#: src/components/items/ActionDropdown.tsx:169 msgid "View barcode" -msgstr "" +msgstr "Vaata ribakoodi" -#: src/components/items/ActionDropdown.tsx:161 +#: src/components/items/ActionDropdown.tsx:175 msgid "Link Barcode" -msgstr "" +msgstr "Linki ribakood" -#: src/components/items/ActionDropdown.tsx:162 -msgid "Link custom barcode" -msgstr "" - -#: src/components/items/ActionDropdown.tsx:173 -#: src/forms/PurchaseOrderForms.tsx:426 -msgid "Unlink Barcode" -msgstr "" - -#: src/components/items/ActionDropdown.tsx:174 -msgid "Unlink custom barcode" -msgstr "" +#: src/components/items/ActionDropdown.tsx:177 +msgid "Link a custom barcode to this item" +msgstr "Ühendage sellele üksusele kohandatud ribakood" #: src/components/items/ActionDropdown.tsx:183 -#: src/tables/RowActions.tsx:33 +#: src/components/items/QRCode.tsx:193 +#: src/forms/PurchaseOrderForms.tsx:464 +msgid "Unlink Barcode" +msgstr "Linki ribakood" + +#: src/components/items/ActionDropdown.tsx:185 +msgid "Unlink custom barcode" +msgstr "Lahutage kohandatud vöötkood" + +#: src/components/items/ActionDropdown.tsx:236 +#: src/tables/RowActions.tsx:39 msgid "Edit" msgstr "Muuda" -#: src/components/items/ActionDropdown.tsx:184 +#: src/components/items/ActionDropdown.tsx:237 msgid "Edit item" -msgstr "" +msgstr "Redigeeri ese" -#: src/components/items/ActionDropdown.tsx:196 +#: src/components/items/ActionDropdown.tsx:249 msgid "Delete item" -msgstr "" +msgstr "Kustuta üksus" -#: src/components/items/ActionDropdown.tsx:204 -#: src/components/items/ActionDropdown.tsx:205 +#: src/components/items/ActionDropdown.tsx:257 +#: src/components/items/ActionDropdown.tsx:258 msgid "Hold" -msgstr "" +msgstr "Hoidke" -#: src/components/items/ActionDropdown.tsx:227 -#: src/tables/RowActions.tsx:23 +#: src/components/items/ActionDropdown.tsx:280 +#: src/tables/RowActions.tsx:29 msgid "Duplicate" -msgstr "" +msgstr "Korduma" -#: src/components/items/ActionDropdown.tsx:228 +#: src/components/items/ActionDropdown.tsx:281 msgid "Duplicate item" -msgstr "" +msgstr "Duplikaadi üksus" + +#: src/components/items/BarcodeInput.tsx:23 +msgid "Scan barcode data here using barcode scanner" +msgstr "Skannigeerige siin vöötkoodiandmed kasutades vöötkoodiskannerit" + +#: src/components/items/BarcodeInput.tsx:24 +#: src/tables/settings/BarcodeScanHistoryTable.tsx:65 +msgid "Barcode" +msgstr "Vöötkood" + +#: src/components/items/BarcodeInput.tsx:25 +msgid "Scan" +msgstr "Skanneeri" #: src/components/items/DocTooltip.tsx:92 +#: src/components/items/GettingStartedCarousel.tsx:20 msgid "Read More" -msgstr "" +msgstr "Loe edasi" -#: src/components/items/ErrorItem.tsx:5 -#: src/tables/InvenTreeTable.tsx:487 +#: src/components/items/ErrorItem.tsx:8 +#: src/tables/InvenTreeTable.tsx:473 msgid "Unknown error" -msgstr "" +msgstr "Tundmatu viga" -#: src/components/items/ErrorItem.tsx:10 -msgid "An error occurred:" -msgstr "" +#: src/components/items/ErrorItem.tsx:13 +#~ msgid "An error occurred:" +#~ msgstr "An error occurred:" #: src/components/items/GettingStartedCarousel.tsx:27 -msgid "Read more" -msgstr "" +#~ msgid "Read more" +#~ msgstr "Read more" #: src/components/items/InfoItem.tsx:27 msgid "None" -msgstr "" +msgstr "Ühtegi" #: src/components/items/InvenTreeLogo.tsx:23 msgid "InvenTree Logo" -msgstr "" +msgstr "InvenTree Logo" #: src/components/items/OnlyStaff.tsx:9 #: src/components/modals/AboutInvenTreeModal.tsx:44 msgid "This information is only available for staff users" -msgstr "" +msgstr "See teave on saadaval ainult töötajatele" #: src/components/items/Placeholder.tsx:14 msgid "This feature/button/site is a placeholder for a feature that is not implemented, only partial or intended for testing." -msgstr "" +msgstr "See funktsioon/nupp/leht on kohatäide funktsioon, mis pole rakendatud, ainult osaline või mõeldud testimiseks." #: src/components/items/Placeholder.tsx:17 msgid "PLH" -msgstr "" +msgstr "PHL" #: src/components/items/Placeholder.tsx:31 msgid "This panel is a placeholder." -msgstr "" - -#: src/components/items/QRCode.tsx:87 -msgid "Low (7%)" -msgstr "" - -#: src/components/items/QRCode.tsx:88 -msgid "Medium (15%)" -msgstr "" +msgstr "See paneel on kohatäide." #: src/components/items/QRCode.tsx:89 -msgid "Quartile (25%)" -msgstr "" +msgid "Low (7%)" +msgstr "Madal (7%)" #: src/components/items/QRCode.tsx:90 -msgid "High (30%)" -msgstr "" +msgid "Medium (15%)" +msgstr "Keskmine (15%)" -#: src/components/items/QRCode.tsx:107 -msgid "Barcode Data:" -msgstr "" +#: src/components/items/QRCode.tsx:91 +msgid "Quartile (25%)" +msgstr "Kvartiil (25%)" + +#: src/components/items/QRCode.tsx:92 +msgid "High (30%)" +msgstr "Kõrge (30%)" + +#: src/components/items/QRCode.tsx:100 +msgid "Custom barcode" +msgstr "Kohandatud vöötkood" + +#: src/components/items/QRCode.tsx:101 +msgid "A custom barcode is registered for this item. The shown code is not that custom barcode." +msgstr "Selle üksuse jaoks on registreeritud kohandatud vöötkood. Kuvatud kood ei ole see kohandatud vöötkood." #: src/components/items/QRCode.tsx:118 +msgid "Barcode Data:" +msgstr "Vöötkoodi Andmed:" + +#: src/components/items/QRCode.tsx:129 msgid "Select Error Correction Level" -msgstr "" +msgstr "Valige vea parandamise tase" + +#: src/components/items/QRCode.tsx:171 +#: src/pages/part/PartDetail.tsx:239 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:187 +#: src/pages/sales/ReturnOrderDetail.tsx:157 +#: src/pages/sales/SalesOrderDetail.tsx:169 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:166 +msgid "Link" +msgstr "Link" + +#: src/components/items/QRCode.tsx:190 +msgid "This will remove the link to the associated barcode" +msgstr "See eemaldab lingi seotud vöötikoodile" #: src/components/modals/AboutInvenTreeModal.tsx:99 msgid "Version Information" -msgstr "" +msgstr "Versiooniteave" #: src/components/modals/AboutInvenTreeModal.tsx:103 msgid "Your InvenTree version status is" -msgstr "" +msgstr "Teie InvenTree versioonistaatus on" #: src/components/modals/AboutInvenTreeModal.tsx:107 msgid "Development Version" -msgstr "" +msgstr "Arendusversioon" #: src/components/modals/AboutInvenTreeModal.tsx:111 msgid "Up to Date" -msgstr "" +msgstr "Ajakohane" #: src/components/modals/AboutInvenTreeModal.tsx:115 msgid "Update Available" -msgstr "" +msgstr "Värskendus saadaval" #: src/components/modals/AboutInvenTreeModal.tsx:125 msgid "InvenTree Version" -msgstr "" +msgstr "InvenTree Versioon" #: src/components/modals/AboutInvenTreeModal.tsx:131 msgid "Commit Hash" -msgstr "" +msgstr "Commiti räsi" #: src/components/modals/AboutInvenTreeModal.tsx:136 msgid "Commit Date" -msgstr "" +msgstr "Kohustuslik kuupäev" #: src/components/modals/AboutInvenTreeModal.tsx:141 msgid "Commit Branch" -msgstr "" +msgstr "Anga oks" #: src/components/modals/AboutInvenTreeModal.tsx:146 #: src/components/modals/ServerInfoModal.tsx:133 msgid "API Version" -msgstr "" +msgstr "API versioon" #: src/components/modals/AboutInvenTreeModal.tsx:149 msgid "Python Version" -msgstr "" +msgstr "Pythoni versioon" #: src/components/modals/AboutInvenTreeModal.tsx:152 msgid "Django Version" -msgstr "" +msgstr "Django versioon" #: src/components/modals/AboutInvenTreeModal.tsx:162 msgid "Links" @@ -1044,108 +1404,67 @@ msgstr "Lingid" #: src/components/modals/AboutInvenTreeModal.tsx:168 msgid "InvenTree Documentation" -msgstr "" +msgstr "InvenTree dokumentatsioon" #: src/components/modals/AboutInvenTreeModal.tsx:169 msgid "View Code on GitHub" -msgstr "" +msgstr "Vaadata koodi GitHubis" #: src/components/modals/AboutInvenTreeModal.tsx:170 msgid "Credits" -msgstr "" +msgstr "Autorid" #: src/components/modals/AboutInvenTreeModal.tsx:171 msgid "Mobile App" -msgstr "" +msgstr "Mobiilirakendus" #: src/components/modals/AboutInvenTreeModal.tsx:172 msgid "Submit Bug Report" -msgstr "" +msgstr "Esita veaaruannete" -#: src/components/modals/AboutInvenTreeModal.tsx:183 +#: src/components/modals/AboutInvenTreeModal.tsx:181 msgid "Copy version information" -msgstr "" +msgstr "Kopeeri versiooniteave" -#: src/components/modals/AboutInvenTreeModal.tsx:192 +#: src/components/modals/AboutInvenTreeModal.tsx:189 #: src/components/modals/ServerInfoModal.tsx:147 msgid "Dismiss" msgstr "Loobu" #: src/components/modals/LicenseModal.tsx:39 msgid "No license text available" -msgstr "" +msgstr "Sissekanded puuduvad" #: src/components/modals/LicenseModal.tsx:46 msgid "No Information provided - this is likely a server issue" -msgstr "" +msgstr "Teavet pole esitatud - ilmselt on tegemist serveri probleemiga" #: src/components/modals/LicenseModal.tsx:71 msgid "Loading license information" -msgstr "" +msgstr "Laadimiselitsentsiteave" #: src/components/modals/LicenseModal.tsx:77 msgid "Failed to fetch license information" -msgstr "" +msgstr "Litsentsi teabe hankimine ebaõnnestus" #: src/components/modals/LicenseModal.tsx:85 msgid "{key} Packages" -msgstr "" +msgstr "{key} Paketid" -#: src/components/modals/QrCodeModal.tsx:72 +#: src/components/modals/QrCodeModal.tsx:24 msgid "Unknown response" -msgstr "" +msgstr "Tundmatu vastus" -#: src/components/modals/QrCodeModal.tsx:102 -#: src/pages/Index/Scan.tsx:636 -msgid "Error while getting camera" -msgstr "" - -#: src/components/modals/QrCodeModal.tsx:125 -#: src/pages/Index/Scan.tsx:659 -msgid "Error while scanning" -msgstr "" - -#: src/components/modals/QrCodeModal.tsx:139 -#: src/pages/Index/Scan.tsx:673 -msgid "Error while stopping" -msgstr "" - -#: src/components/modals/QrCodeModal.tsx:154 -#: src/defaults/menuItems.tsx:21 -#: src/pages/Index/Scan.tsx:746 -msgid "Scanning" -msgstr "" - -#: src/components/modals/QrCodeModal.tsx:154 -#: src/pages/Index/Scan.tsx:746 -msgid "Not scanning" -msgstr "" - -#: src/components/modals/QrCodeModal.tsx:159 -#: src/pages/Index/Scan.tsx:752 -msgid "Select Camera" -msgstr "" - -#: src/components/modals/QrCodeModal.tsx:169 -#: src/pages/Index/Scan.tsx:737 -msgid "Start scanning" -msgstr "" - -#: src/components/modals/QrCodeModal.tsx:176 -#: src/pages/Index/Scan.tsx:729 -msgid "Stop scanning" -msgstr "" - -#: src/components/modals/QrCodeModal.tsx:181 +#: src/components/modals/QrCodeModal.tsx:39 msgid "No scans yet!" -msgstr "" +msgstr "Ühtegi skänni pole veel!" -#: src/components/modals/QrCodeModal.tsx:201 +#: src/components/modals/QrCodeModal.tsx:57 msgid "Close modal" -msgstr "" +msgstr "Sulge modaalaken" #: src/components/modals/ServerInfoModal.tsx:26 -#: src/pages/Index/Settings/SystemSettings.tsx:38 +#: src/pages/Index/Settings/SystemSettings.tsx:37 msgid "Server" msgstr "Server" @@ -1167,7 +1486,7 @@ msgstr "" #: src/components/modals/ServerInfoModal.tsx:50 msgid "Server is running in debug mode" -msgstr "" +msgstr "Server töötab silumisrežiimis" #: src/components/modals/ServerInfoModal.tsx:57 msgid "Docker Mode" @@ -1175,7 +1494,7 @@ msgstr "" #: src/components/modals/ServerInfoModal.tsx:60 msgid "Server is deployed using docker" -msgstr "" +msgstr "Server on paigaldatud kasutades dockerit" #: src/components/modals/ServerInfoModal.tsx:66 msgid "Plugin Support" @@ -1191,7 +1510,7 @@ msgstr "" #: src/components/modals/ServerInfoModal.tsx:80 msgid "Server status" -msgstr "" +msgstr "Serveri staatus" #: src/components/modals/ServerInfoModal.tsx:86 msgid "Healthy" @@ -1206,8 +1525,9 @@ msgid "Background Worker" msgstr "" #: src/components/modals/ServerInfoModal.tsx:101 +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:29 msgid "Background worker not running" -msgstr "" +msgstr "Taustatöötaja ei tööta" #: src/components/modals/ServerInfoModal.tsx:109 msgid "Email Settings" @@ -1215,11 +1535,11 @@ msgstr "" #: src/components/modals/ServerInfoModal.tsx:113 msgid "Email settings not configured" -msgstr "" +msgstr "E-kirja seaded pole konfigureeritud" #: src/components/modals/ServerInfoModal.tsx:121 -#: src/tables/plugin/PluginListTable.tsx:144 -#: src/tables/plugin/PluginListTable.tsx:294 +#: src/components/plugins/PluginDrawer.tsx:89 +#: src/tables/plugin/PluginListTable.tsx:116 msgid "Version" msgstr "Versioon" @@ -1227,7 +1547,7 @@ msgstr "Versioon" msgid "Server Version" msgstr "" -#: src/components/nav/Layout.tsx:73 +#: src/components/nav/Layout.tsx:80 msgid "Nothing found..." msgstr "" @@ -1237,18 +1557,26 @@ msgstr "" #~ msgstr "Profile" #: src/components/nav/MainMenu.tsx:52 +#: src/components/nav/NavigationDrawer.tsx:178 #: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:28 msgid "Settings" msgstr "Seaded" +#: src/components/nav/MainMenu.tsx:59 +#: src/pages/Index/Settings/UserSettings.tsx:152 +msgid "Account Settings" +msgstr "Konto seaded" + #: src/components/nav/MainMenu.tsx:59 #: src/defaults/menuItems.tsx:15 -msgid "Account settings" -msgstr "" +#~ msgid "Account settings" +#~ msgstr "Account settings" #: src/components/nav/MainMenu.tsx:67 -#: src/defaults/menuItems.tsx:58 -#: src/pages/Index/Settings/SystemSettings.tsx:315 +#: src/components/nav/NavigationDrawer.tsx:141 +#: src/components/nav/SettingsHeader.tsx:49 +#: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:37 +#: src/pages/Index/Settings/SystemSettings.tsx:310 msgid "System Settings" msgstr "" @@ -1260,14 +1588,11 @@ msgstr "" #~ msgid "Switch to pseudo language" #~ msgstr "Switch to pseudo language" -#: src/components/nav/MainMenu.tsx:77 -msgid "Change Color Mode" -msgstr "" - #: src/components/nav/MainMenu.tsx:86 -#: src/defaults/actions.tsx:71 -#: src/defaults/menuItems.tsx:63 -#: src/pages/Index/Settings/AdminCenter/Index.tsx:221 +#: src/components/nav/NavigationDrawer.tsx:148 +#: src/components/nav/SettingsHeader.tsx:50 +#: src/defaults/actions.tsx:63 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:251 msgid "Admin Center" msgstr "" @@ -1275,460 +1600,734 @@ msgstr "" msgid "Logout" msgstr "Logi välja" -#: src/components/nav/NavHoverMenu.tsx:65 -#: src/defaults/actions.tsx:60 -msgid "Open Navigation" -msgstr "" - #: src/components/nav/NavHoverMenu.tsx:84 -msgid "View all" -msgstr "" +#~ msgid "View all" +#~ msgstr "View all" #: src/components/nav/NavHoverMenu.tsx:100 #: src/components/nav/NavHoverMenu.tsx:110 -msgid "Get started" -msgstr "" +#~ msgid "Get started" +#~ msgstr "Get started" #: src/components/nav/NavHoverMenu.tsx:103 -msgid "Overview over high-level objects, functions and possible usecases." -msgstr "" - -#: src/components/nav/NavigationDrawer.tsx:57 -msgid "Navigation" -msgstr "Navigeerimine" +#~ msgid "Overview over high-level objects, functions and possible usecases." +#~ msgstr "Overview over high-level objects, functions and possible usecases." #: src/components/nav/NavigationDrawer.tsx:60 -msgid "Pages" +#~ msgid "Pages" +#~ msgstr "Pages" + +#: src/components/nav/NavigationDrawer.tsx:77 +#: src/components/render/ModelType.tsx:31 +#: src/defaults/links.tsx:10 +#: src/pages/Index/Settings/SystemSettings.tsx:172 +#: src/pages/part/CategoryDetail.tsx:125 +#: src/pages/part/CategoryDetail.tsx:249 +#: src/pages/part/CategoryDetail.tsx:279 +#: src/pages/part/PartDetail.tsx:856 +msgid "Parts" msgstr "" -#: src/components/nav/NavigationDrawer.tsx:65 -#: src/pages/Index/Settings/AdminCenter/Index.tsx:176 -#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:41 -msgid "Plugins" +#: src/components/nav/NavigationDrawer.tsx:84 +#: src/components/render/Part.tsx:30 +#: src/defaults/links.tsx:11 +#: src/pages/Index/Settings/SystemSettings.tsx:205 +#: src/pages/part/PartDetail.tsx:593 +#: src/pages/stock/LocationDetail.tsx:352 +#: src/pages/stock/StockDetail.tsx:528 +#: src/tables/stock/StockItemTable.tsx:69 +msgid "Stock" msgstr "" -#: src/components/nav/NavigationDrawer.tsx:75 -#: src/defaults/actions.tsx:32 -msgid "Documentation" -msgstr "" +#: src/components/nav/NavigationDrawer.tsx:91 +#: src/defaults/links.tsx:13 +#: src/pages/build/BuildDetail.tsx:530 +#: src/pages/build/BuildIndex.tsx:36 +msgid "Manufacturing" +msgstr "Tootmine" -#: src/components/nav/NavigationDrawer.tsx:78 -msgid "About" -msgstr "Teave" +#: src/components/nav/NavigationDrawer.tsx:98 +#: src/defaults/links.tsx:18 +#: src/pages/company/ManufacturerDetail.tsx:9 +#: src/pages/company/ManufacturerPartDetail.tsx:258 +#: src/pages/company/SupplierDetail.tsx:9 +#: src/pages/company/SupplierPartDetail.tsx:336 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:480 +#: src/pages/purchasing/PurchasingIndex.tsx:60 +msgid "Purchasing" +msgstr "Ostmine" -#: src/components/nav/NotificationDrawer.tsx:92 -#: src/pages/Index/Settings/SystemSettings.tsx:109 -#: src/pages/Index/Settings/UserSettings.tsx:126 +#: src/components/nav/NavigationDrawer.tsx:105 +#: src/defaults/links.tsx:22 +#: src/pages/company/CustomerDetail.tsx:9 +#: src/pages/sales/ReturnOrderDetail.tsx:469 +#: src/pages/sales/SalesIndex.tsx:53 +#: src/pages/sales/SalesOrderDetail.tsx:520 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:343 +msgid "Sales" +msgstr "Müük" + +#: src/components/nav/NavigationDrawer.tsx:129 +#: src/components/nav/NotificationDrawer.tsx:178 +#: src/pages/Index/Settings/SystemSettings.tsx:110 +#: src/pages/Index/Settings/UserSettings.tsx:127 #: src/pages/Notifications.tsx:65 #: src/pages/Notifications.tsx:151 msgid "Notifications" msgstr "Teavitused" -#: src/components/nav/NotificationDrawer.tsx:94 +#: src/components/nav/NavigationDrawer.tsx:135 +#: src/components/nav/SettingsHeader.tsx:48 +msgid "User Settings" +msgstr "Kasutaja seaded" + +#: src/components/nav/NavigationDrawer.tsx:173 +msgid "Navigation" +msgstr "Navigeerimine" + +#: src/components/nav/NavigationDrawer.tsx:183 +#: src/forms/PurchaseOrderForms.tsx:689 +#: src/forms/StockForms.tsx:614 +#: src/forms/StockForms.tsx:651 +#: src/forms/StockForms.tsx:677 +#: src/forms/StockForms.tsx:705 +#: src/forms/StockForms.tsx:736 +#: src/forms/StockForms.tsx:771 +#: src/forms/StockForms.tsx:813 +#: src/forms/StockForms.tsx:851 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:413 +#: src/tables/RowActions.tsx:129 +#: src/tables/build/BuildLineTable.tsx:101 +msgid "Actions" +msgstr "Toimingud" + +#: src/components/nav/NavigationDrawer.tsx:191 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:205 +#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:44 +msgid "Plugins" +msgstr "Pluginad" + +#: src/components/nav/NavigationDrawer.tsx:204 +#: src/defaults/actions.tsx:24 +msgid "Documentation" +msgstr "Dokumentatsioon" + +#: src/components/nav/NavigationDrawer.tsx:210 +msgid "About" +msgstr "Teave" + +#: src/components/nav/NotificationDrawer.tsx:180 msgid "Mark all as read" -msgstr "" +msgstr "Märgi kõik loetuks" -#: src/components/nav/NotificationDrawer.tsx:104 +#: src/components/nav/NotificationDrawer.tsx:190 msgid "View all notifications" -msgstr "" +msgstr "Vaata kõiki teavitusi" -#: src/components/nav/NotificationDrawer.tsx:123 +#: src/components/nav/NotificationDrawer.tsx:210 msgid "You have no unread notifications." -msgstr "" +msgstr "Sul pole lugemata teated." -#: src/components/nav/NotificationDrawer.tsx:139 -#: src/components/nav/NotificationDrawer.tsx:145 -#: src/tables/notifications/NotificationsTable.tsx:36 -msgid "Notification" -msgstr "" - -#: src/components/nav/NotificationDrawer.tsx:168 -#: src/pages/Notifications.tsx:73 -msgid "Mark as read" -msgstr "" - -#: src/components/nav/SearchDrawer.tsx:78 +#: src/components/nav/SearchDrawer.tsx:85 msgid "results" msgstr "" -#: src/components/nav/SearchDrawer.tsx:370 +#: src/components/nav/SearchDrawer.tsx:380 msgid "Enter search text" msgstr "Lisage otsitav tekst" -#: src/components/nav/SearchDrawer.tsx:397 +#: src/components/nav/SearchDrawer.tsx:391 +msgid "Refresh search results" +msgstr "" + +#: src/components/nav/SearchDrawer.tsx:402 +#: src/components/nav/SearchDrawer.tsx:409 msgid "Search Options" msgstr "Otsingu valikud" -#: src/components/nav/SearchDrawer.tsx:400 +#: src/components/nav/SearchDrawer.tsx:412 msgid "Regex search" -msgstr "" +msgstr "Regex otsing" -#: src/components/nav/SearchDrawer.tsx:410 +#: src/components/nav/SearchDrawer.tsx:421 msgid "Whole word search" msgstr "" -#: src/components/nav/SearchDrawer.tsx:451 +#: src/components/nav/SearchDrawer.tsx:461 msgid "An error occurred during search query" -msgstr "" +msgstr "Otsingu päringu ajal ilmnes viga" #: src/components/nav/SearchDrawer.tsx:462 -msgid "No results" +#~ msgid "No results" +#~ msgstr "No results" + +#: src/components/nav/SearchDrawer.tsx:472 +#: src/tables/part/PartTestTemplateTable.tsx:76 +msgid "No Results" msgstr "" -#: src/components/nav/SearchDrawer.tsx:465 +#: src/components/nav/SearchDrawer.tsx:475 msgid "No results available for search query" +msgstr "Otsingu päringu jaoks tulemusi pole saadaval" + +#: src/components/panels/AttachmentPanel.tsx:18 +msgid "Attachments" +msgstr "Manused" + +#: src/components/panels/NotesPanel.tsx:24 +#: src/tables/build/BuildOrderTestTable.tsx:143 +#: src/tables/stock/StockTrackingTable.tsx:204 +msgid "Notes" +msgstr "Märkmed" + +#: src/components/plugins/PluginDrawer.tsx:47 +msgid "Plugin Inactive" msgstr "" -#: src/components/render/Instance.tsx:217 +#: src/components/plugins/PluginDrawer.tsx:50 +msgid "Plugin is not active" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:60 +msgid "Plugin Information" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:74 +#: src/pages/build/BuildDetail.tsx:116 +#: src/pages/company/CompanyDetail.tsx:89 +#: src/pages/company/ManufacturerPartDetail.tsx:89 +#: src/pages/company/ManufacturerPartDetail.tsx:116 +#: src/pages/company/SupplierPartDetail.tsx:140 +#: src/pages/part/CategoryDetail.tsx:101 +#: src/pages/part/PartDetail.tsx:178 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:136 +#: src/pages/sales/ReturnOrderDetail.tsx:107 +#: src/pages/sales/SalesOrderDetail.tsx:116 +#: src/pages/stock/LocationDetail.tsx:103 +#: src/tables/ColumnRenderers.tsx:92 +#: src/tables/bom/UsedInTable.tsx:44 +#: src/tables/build/BuildAllocatedStockTable.tsx:83 +#: src/tables/build/BuildLineTable.tsx:329 +#: src/tables/machine/MachineTypeTable.tsx:74 +#: src/tables/machine/MachineTypeTable.tsx:129 +#: src/tables/machine/MachineTypeTable.tsx:240 +#: src/tables/machine/MachineTypeTable.tsx:344 +#: src/tables/part/RelatedPartTable.tsx:66 +#: src/tables/plugin/PluginListTable.tsx:99 +#: src/tables/sales/SalesOrderAllocationTable.tsx:87 +#: src/tables/sales/SalesOrderLineItemTable.tsx:75 +#: src/tables/stock/LocationTypesTable.tsx:74 +msgid "Description" +msgstr "Kirjeldus" + +#: src/components/plugins/PluginDrawer.tsx:79 +msgid "Author" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:84 +#: src/pages/part/PartSchedulingDetail.tsx:277 +#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:40 +#: src/pages/part/pricing/SaleHistoryPanel.tsx:38 +#: src/tables/ColumnRenderers.tsx:215 +#: src/tables/build/BuildOrderTestTable.tsx:151 +#: src/tables/settings/StocktakeReportTable.tsx:40 +msgid "Date" +msgstr "Kuupäev" + +#: src/components/plugins/PluginDrawer.tsx:94 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:398 +#: src/pages/part/PartDetail.tsx:331 +#: src/tables/bom/UsedInTable.tsx:84 +#: src/tables/company/CompanyTable.tsx:62 +#: src/tables/company/CompanyTable.tsx:96 +#: src/tables/machine/MachineListTable.tsx:333 +#: src/tables/machine/MachineListTable.tsx:605 +#: src/tables/part/ParametricPartTable.tsx:223 +#: src/tables/part/PartTable.tsx:178 +#: src/tables/part/PartVariantTable.tsx:15 +#: src/tables/plugin/PluginListTable.tsx:94 +#: src/tables/plugin/PluginListTable.tsx:401 +#: src/tables/purchasing/SupplierPartTable.tsx:100 +#: src/tables/purchasing/SupplierPartTable.tsx:190 +#: src/tables/settings/UserTable.tsx:283 +#: src/tables/stock/StockItemTable.tsx:293 +msgid "Active" +msgstr "Aktiivne" + +#: src/components/plugins/PluginDrawer.tsx:106 +msgid "Package Name" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:112 +msgid "Installation Path" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:117 +#: src/tables/machine/MachineTypeTable.tsx:152 +#: src/tables/machine/MachineTypeTable.tsx:276 +#: src/tables/plugin/PluginListTable.tsx:406 +msgid "Builtin" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:122 +msgid "Package" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:134 +#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:53 +msgid "Plugin Settings" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:146 +#: src/components/render/ModelType.tsx:276 +msgid "Plugin Configuration" +msgstr "" + +#: src/components/plugins/PluginPanel.tsx:87 +#~ msgid "Error occurred while rendering plugin content" +#~ msgstr "Error occurred while rendering plugin content" + +#: src/components/plugins/PluginPanel.tsx:91 +#~ msgid "Plugin did not provide panel rendering function" +#~ msgstr "Plugin did not provide panel rendering function" + +#: src/components/plugins/PluginPanel.tsx:103 +#~ msgid "No content provided for this plugin" +#~ msgstr "No content provided for this plugin" + +#: src/components/plugins/PluginPanel.tsx:116 +#: src/components/plugins/PluginSettingsPanel.tsx:76 +#~ msgid "Error Loading Plugin" +#~ msgstr "Error Loading Plugin" + +#: src/components/plugins/PluginSettingsPanel.tsx:51 +#~ msgid "Error occurred while rendering plugin settings" +#~ msgstr "Error occurred while rendering plugin settings" + +#: src/components/plugins/PluginSettingsPanel.tsx:55 +#~ msgid "Plugin did not provide settings rendering function" +#~ msgstr "Plugin did not provide settings rendering function" + +#: src/components/plugins/PluginUIFeature.tsx:100 +msgid "Error occurred while rendering the template editor." +msgstr "" + +#: src/components/plugins/PluginUIFeature.tsx:111 +msgid "Error Loading Plugin Editor" +msgstr "" + +#: src/components/plugins/PluginUIFeature.tsx:147 +msgid "Error occurred while rendering the template preview." +msgstr "" + +#: src/components/plugins/PluginUIFeature.tsx:158 +msgid "Error Loading Plugin Preview" +msgstr "" + +#: src/components/plugins/RemoteComponent.tsx:70 +msgid "Invalid source or function name" +msgstr "" + +#: src/components/plugins/RemoteComponent.tsx:91 +msgid "Error Loading Content" +msgstr "" + +#: src/components/plugins/RemoteComponent.tsx:95 +msgid "Error occurred while loading plugin content" +msgstr "" + +#: src/components/render/Instance.tsx:224 msgid "Unknown model: {model}" msgstr "" -#: src/components/render/ModelType.tsx:22 -#: src/forms/BuildForms.tsx:213 -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/forms/StockForms.tsx:499 -#: src/forms/StockForms.tsx:533 -#: src/forms/StockForms.tsx:562 -#: src/forms/StockForms.tsx:590 -#: src/forms/StockForms.tsx:621 -#: src/forms/StockForms.tsx:656 -#: src/forms/StockForms.tsx:698 -#: src/forms/StockForms.tsx:734 -#: src/pages/build/BuildDetail.tsx:95 -#: src/pages/part/PartDetail.tsx:1073 -#: src/tables/build/BuildAllocatedStockTable.tsx:82 +#: src/components/render/ModelType.tsx:30 +#: src/forms/BuildForms.tsx:269 +#: src/forms/BuildForms.tsx:337 +#: src/forms/BuildForms.tsx:385 +#: src/forms/BuildForms.tsx:515 +#: src/forms/PurchaseOrderForms.tsx:689 +#: src/forms/ReturnOrderForms.tsx:190 +#: src/forms/SalesOrderForms.tsx:248 +#: src/forms/StockForms.tsx:261 +#: src/forms/StockForms.tsx:614 +#: src/forms/StockForms.tsx:651 +#: src/forms/StockForms.tsx:677 +#: src/forms/StockForms.tsx:705 +#: src/forms/StockForms.tsx:736 +#: src/forms/StockForms.tsx:771 +#: src/forms/StockForms.tsx:813 +#: src/forms/StockForms.tsx:851 +#: src/pages/build/BuildDetail.tsx:90 +#: src/pages/part/PartDetail.tsx:1094 +#: src/tables/build/BuildAllocatedStockTable.tsx:95 +#: src/tables/build/BuildLineTable.tsx:72 #: src/tables/part/PartTable.tsx:28 -#: src/tables/part/RelatedPartTable.tsx:45 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:88 -#: src/tables/sales/SalesOrderAllocationTable.tsx:68 -#: src/tables/stock/StockTrackingTable.tsx:74 +#: src/tables/part/RelatedPartTable.tsx:47 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:130 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:100 +#: src/tables/sales/SalesOrderAllocationTable.tsx:99 +#: src/tables/stock/StockTrackingTable.tsx:78 msgid "Part" msgstr "" -#: src/components/render/ModelType.tsx:23 -#: src/defaults/links.tsx:29 -#: src/defaults/menuItems.tsx:33 -#: src/pages/Index/Settings/SystemSettings.tsx:173 -#: src/pages/part/CategoryDetail.tsx:119 -#: src/pages/part/CategoryDetail.tsx:244 -#: src/pages/part/CategoryDetail.tsx:274 -#: src/pages/part/PartDetail.tsx:827 -msgid "Parts" -msgstr "" - -#: src/components/render/ModelType.tsx:31 +#: src/components/render/ModelType.tsx:40 msgid "Part Parameter Template" msgstr "" -#: src/components/render/ModelType.tsx:32 +#: src/components/render/ModelType.tsx:41 msgid "Part Parameter Templates" msgstr "" -#: src/components/render/ModelType.tsx:38 +#: src/components/render/ModelType.tsx:48 msgid "Part Test Template" msgstr "" -#: src/components/render/ModelType.tsx:39 +#: src/components/render/ModelType.tsx:49 msgid "Part Test Templates" msgstr "" -#: src/components/render/ModelType.tsx:45 -#: src/pages/company/SupplierPartDetail.tsx:203 -#: src/pages/company/SupplierPartDetail.tsx:375 -#: src/pages/stock/StockDetail.tsx:173 -#: src/tables/build/BuildAllocatedStockTable.tsx:131 +#: src/components/render/ModelType.tsx:56 +#: src/pages/company/SupplierPartDetail.tsx:364 +#: src/pages/stock/StockDetail.tsx:194 +#: src/tables/build/BuildAllocatedStockTable.tsx:152 #: src/tables/part/PartPurchaseOrdersTable.tsx:49 -#: src/tables/purchasing/SupplierPartTable.tsx:68 +#: src/tables/purchasing/SupplierPartTable.tsx:70 +#: src/tables/stock/StockItemTable.tsx:229 msgid "Supplier Part" msgstr "" -#: src/components/render/ModelType.tsx:46 +#: src/components/render/ModelType.tsx:57 msgid "Supplier Parts" msgstr "" -#: src/components/render/ModelType.tsx:54 -#: src/pages/company/ManufacturerPartDetail.tsx:132 +#: src/components/render/ModelType.tsx:66 #: src/tables/part/PartPurchaseOrdersTable.tsx:55 +#: src/tables/stock/StockItemTable.tsx:234 msgid "Manufacturer Part" msgstr "" -#: src/components/render/ModelType.tsx:55 +#: src/components/render/ModelType.tsx:67 msgid "Manufacturer Parts" msgstr "" -#: src/components/render/ModelType.tsx:63 -#: src/pages/part/CategoryDetail.tsx:305 +#: src/components/render/ModelType.tsx:76 +#: src/pages/part/CategoryDetail.tsx:310 msgid "Part Category" msgstr "" -#: src/components/render/ModelType.tsx:64 -#: src/pages/part/CategoryDetail.tsx:258 -#: src/pages/part/CategoryDetail.tsx:296 -#: src/pages/part/PartDetail.tsx:1063 +#: src/components/render/ModelType.tsx:77 +#: src/pages/part/CategoryDetail.tsx:263 +#: src/pages/part/CategoryDetail.tsx:301 +#: src/pages/part/PartDetail.tsx:1084 msgid "Part Categories" msgstr "" -#: src/components/render/ModelType.tsx:72 -#: src/pages/stock/StockDetail.tsx:624 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:94 -#: src/tables/stock/StockTrackingTable.tsx:45 +#: src/components/render/ModelType.tsx:86 +#: src/forms/BuildForms.tsx:337 +#: src/forms/BuildForms.tsx:385 +#: src/forms/BuildForms.tsx:515 +#: src/forms/SalesOrderForms.tsx:248 +#: src/pages/stock/StockDetail.tsx:839 +#: src/tables/stock/StockTrackingTable.tsx:49 msgid "Stock Item" msgstr "" -#: src/components/render/ModelType.tsx:73 +#: src/components/render/ModelType.tsx:87 #: src/pages/company/CompanyDetail.tsx:203 -#: src/pages/stock/LocationDetail.tsx:128 -#: src/pages/stock/LocationDetail.tsx:181 -#: src/pages/stock/LocationDetail.tsx:395 +#: src/pages/part/PartStocktakeDetail.tsx:113 +#: src/pages/stock/LocationDetail.tsx:122 +#: src/pages/stock/LocationDetail.tsx:175 +#: src/pages/stock/LocationDetail.tsx:380 msgid "Stock Items" msgstr "" -#: src/components/render/ModelType.tsx:81 +#: src/components/render/ModelType.tsx:96 msgid "Stock Location" msgstr "" -#: src/components/render/ModelType.tsx:82 -#: src/pages/stock/LocationDetail.tsx:195 -#: src/pages/stock/LocationDetail.tsx:387 -#: src/pages/stock/StockDetail.tsx:616 +#: src/components/render/ModelType.tsx:97 +#: src/pages/stock/LocationDetail.tsx:189 +#: src/pages/stock/LocationDetail.tsx:372 +#: src/pages/stock/StockDetail.tsx:831 msgid "Stock Locations" msgstr "" -#: src/components/render/ModelType.tsx:90 +#: src/components/render/ModelType.tsx:106 msgid "Stock Location Type" msgstr "" -#: src/components/render/ModelType.tsx:91 +#: src/components/render/ModelType.tsx:107 msgid "Stock Location Types" msgstr "" -#: src/components/render/ModelType.tsx:95 +#: src/components/render/ModelType.tsx:112 +#: src/pages/part/PartDetail.tsx:712 msgid "Stock History" msgstr "" -#: src/components/render/ModelType.tsx:96 +#: src/components/render/ModelType.tsx:113 msgid "Stock Histories" msgstr "" -#: src/components/render/ModelType.tsx:100 -#: src/defaults/links.tsx:31 -#: src/defaults/menuItems.tsx:43 +#: src/components/render/ModelType.tsx:118 msgid "Build" msgstr "" -#: src/components/render/ModelType.tsx:101 +#: src/components/render/ModelType.tsx:119 msgid "Builds" msgstr "" -#: src/components/render/ModelType.tsx:109 +#: src/components/render/ModelType.tsx:128 msgid "Build Line" msgstr "" -#: src/components/render/ModelType.tsx:110 +#: src/components/render/ModelType.tsx:129 msgid "Build Lines" msgstr "" -#: src/components/render/ModelType.tsx:117 +#: src/components/render/ModelType.tsx:137 msgid "Build Item" msgstr "" -#: src/components/render/ModelType.tsx:118 +#: src/components/render/ModelType.tsx:138 msgid "Build Items" msgstr "" -#: src/components/render/ModelType.tsx:122 -#: src/pages/company/CompanyDetail.tsx:339 +#: src/components/render/ModelType.tsx:143 +#: src/pages/company/CompanyDetail.tsx:321 msgid "Company" msgstr "" -#: src/components/render/ModelType.tsx:123 +#: src/components/render/ModelType.tsx:144 msgid "Companies" msgstr "" -#: src/components/render/ModelType.tsx:131 +#: src/components/render/ModelType.tsx:153 +#: src/pages/build/BuildDetail.tsx:195 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:204 +#: src/pages/sales/ReturnOrderDetail.tsx:174 +#: src/pages/sales/SalesOrderDetail.tsx:186 #: src/tables/TableHoverCard.tsx:81 -#: src/tables/build/BuildOrderTable.tsx:140 -#: src/tables/purchasing/PurchaseOrderTable.tsx:64 -#: src/tables/sales/ReturnOrderTable.tsx:55 -#: src/tables/sales/SalesOrderTable.tsx:62 +#: src/tables/build/BuildOrderTable.tsx:135 +#: src/tables/purchasing/PurchaseOrderTable.tsx:69 +#: src/tables/sales/ReturnOrderTable.tsx:67 +#: src/tables/sales/SalesOrderTable.tsx:67 msgid "Project Code" msgstr "" -#: src/components/render/ModelType.tsx:132 -#: src/pages/Index/Settings/AdminCenter/Index.tsx:128 +#: src/components/render/ModelType.tsx:154 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:145 msgid "Project Codes" msgstr "" -#: src/components/render/ModelType.tsx:138 +#: src/components/render/ModelType.tsx:161 #: src/pages/part/pricing/PurchaseHistoryPanel.tsx:32 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:480 -#: src/tables/part/PartPurchaseOrdersTable.tsx:32 -#: src/tables/stock/StockTrackingTable.tsx:107 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:477 +#: src/pages/stock/StockDetail.tsx:253 +#: src/tables/part/PartPurchaseOrdersTable.tsx:31 +#: src/tables/stock/StockItemTable.tsx:222 +#: src/tables/stock/StockTrackingTable.tsx:111 msgid "Purchase Order" msgstr "" -#: src/components/render/ModelType.tsx:139 -#: src/pages/Index/Settings/SystemSettings.tsx:255 +#: src/components/render/ModelType.tsx:162 +#: src/pages/Index/Settings/SystemSettings.tsx:249 #: src/pages/company/CompanyDetail.tsx:196 -#: src/pages/company/SupplierPartDetail.tsx:237 -#: src/pages/part/PartDetail.tsx:662 +#: src/pages/company/SupplierPartDetail.tsx:249 +#: src/pages/part/PartDetail.tsx:683 #: src/pages/purchasing/PurchasingIndex.tsx:25 msgid "Purchase Orders" msgstr "" -#: src/components/render/ModelType.tsx:147 +#: src/components/render/ModelType.tsx:171 msgid "Purchase Order Line" msgstr "" -#: src/components/render/ModelType.tsx:148 +#: src/components/render/ModelType.tsx:172 msgid "Purchase Order Lines" msgstr "" -#: src/components/render/ModelType.tsx:152 -#: src/pages/build/BuildDetail.tsx:153 -#: src/pages/sales/SalesOrderDetail.tsx:520 -#: src/pages/stock/StockDetail.tsx:221 -#: src/tables/sales/SalesOrderAllocationTable.tsx:50 -#: src/tables/stock/StockTrackingTable.tsx:118 +#: src/components/render/ModelType.tsx:177 +#: src/pages/build/BuildDetail.tsx:148 +#: src/pages/part/pricing/SaleHistoryPanel.tsx:24 +#: src/pages/sales/SalesOrderDetail.tsx:515 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:92 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:341 +#: src/pages/stock/StockDetail.tsx:262 +#: src/tables/sales/SalesOrderAllocationTable.tsx:80 +#: src/tables/stock/StockTrackingTable.tsx:122 msgid "Sales Order" msgstr "" -#: src/components/render/ModelType.tsx:153 -#: src/pages/Index/Settings/SystemSettings.tsx:270 +#: src/components/render/ModelType.tsx:178 +#: src/pages/Index/Settings/SystemSettings.tsx:264 #: src/pages/company/CompanyDetail.tsx:216 -#: src/pages/part/PartDetail.tsx:669 +#: src/pages/part/PartDetail.tsx:695 #: src/pages/sales/SalesIndex.tsx:26 msgid "Sales Orders" msgstr "" -#: src/components/render/ModelType.tsx:161 +#: src/components/render/ModelType.tsx:187 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:340 msgid "Sales Order Shipment" msgstr "" -#: src/components/render/ModelType.tsx:162 +#: src/components/render/ModelType.tsx:188 msgid "Sales Order Shipments" msgstr "" -#: src/components/render/ModelType.tsx:168 -#: src/pages/sales/ReturnOrderDetail.tsx:469 -#: src/tables/stock/StockTrackingTable.tsx:129 +#: src/components/render/ModelType.tsx:195 +#: src/pages/sales/ReturnOrderDetail.tsx:464 +#: src/tables/stock/StockTrackingTable.tsx:133 msgid "Return Order" msgstr "" -#: src/components/render/ModelType.tsx:169 -#: src/pages/Index/Settings/SystemSettings.tsx:286 +#: src/components/render/ModelType.tsx:196 +#: src/pages/Index/Settings/SystemSettings.tsx:280 #: src/pages/company/CompanyDetail.tsx:223 +#: src/pages/part/PartDetail.tsx:702 #: src/pages/sales/SalesIndex.tsx:32 msgid "Return Orders" msgstr "" -#: src/components/render/ModelType.tsx:177 +#: src/components/render/ModelType.tsx:205 msgid "Return Order Line Item" msgstr "" -#: src/components/render/ModelType.tsx:178 +#: src/components/render/ModelType.tsx:206 msgid "Return Order Line Items" msgstr "" -#: src/components/render/ModelType.tsx:182 -#: src/tables/company/AddressTable.tsx:47 +#: src/components/render/ModelType.tsx:211 +#: src/tables/company/AddressTable.tsx:48 msgid "Address" -msgstr "" +msgstr "Aadress" -#: src/components/render/ModelType.tsx:183 -#: src/pages/company/CompanyDetail.tsx:253 +#: src/components/render/ModelType.tsx:212 +#: src/pages/company/CompanyDetail.tsx:255 msgid "Addresses" -msgstr "" +msgstr "Aadressid" -#: src/components/render/ModelType.tsx:189 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:195 -#: src/pages/sales/ReturnOrderDetail.tsx:174 -#: src/pages/sales/SalesOrderDetail.tsx:183 +#: src/components/render/ModelType.tsx:219 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:196 +#: src/pages/sales/ReturnOrderDetail.tsx:166 +#: src/pages/sales/SalesOrderDetail.tsx:178 msgid "Contact" -msgstr "" +msgstr "Kontakt" -#: src/components/render/ModelType.tsx:190 -#: src/pages/company/CompanyDetail.tsx:247 +#: src/components/render/ModelType.tsx:220 +#: src/pages/company/CompanyDetail.tsx:249 msgid "Contacts" -msgstr "" +msgstr "Kontaktid" -#: src/components/render/ModelType.tsx:196 +#: src/components/render/ModelType.tsx:227 msgid "Owner" -msgstr "" +msgstr "Omanik" -#: src/components/render/ModelType.tsx:197 +#: src/components/render/ModelType.tsx:228 msgid "Owners" -msgstr "" +msgstr "Omanikud" -#: src/components/render/ModelType.tsx:203 -#: src/tables/settings/ImportSessionTable.tsx:121 -#: src/tables/stock/StockItemTestResultTable.tsx:198 -#: src/tables/stock/StockTrackingTable.tsx:195 +#: src/components/render/ModelType.tsx:234 +#~ msgid "Purchase Order Line Item" +#~ msgstr "Purchase Order Line Item" + +#: src/components/render/ModelType.tsx:235 +#: src/tables/settings/BarcodeScanHistoryTable.tsx:80 +#: src/tables/settings/BarcodeScanHistoryTable.tsx:211 +#: src/tables/settings/ImportSessionTable.tsx:120 +#: src/tables/settings/StocktakeReportTable.tsx:44 +#: src/tables/stock/StockItemTestResultTable.tsx:204 +#: src/tables/stock/StockTrackingTable.tsx:181 +#: src/tables/stock/StockTrackingTable.tsx:210 msgid "User" msgstr "Kasutaja" -#: src/components/render/ModelType.tsx:204 -#: src/pages/Index/Settings/AdminCenter/Index.tsx:98 +#: src/components/render/ModelType.tsx:236 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:109 #: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:13 msgid "Users" msgstr "Kasutajad" -#: src/components/render/ModelType.tsx:210 +#: src/components/render/ModelType.tsx:243 msgid "Group" -msgstr "" +msgstr "Rühm" -#: src/components/render/ModelType.tsx:211 +#: src/components/render/ModelType.tsx:244 #: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:20 -#: src/tables/settings/UserTable.tsx:138 -#: src/tables/settings/UserTable.tsx:201 +#: src/tables/settings/UserTable.tsx:137 +#: src/tables/settings/UserTable.tsx:200 msgid "Groups" -msgstr "" +msgstr "Rühmad" -#: src/components/render/ModelType.tsx:218 +#: src/components/render/ModelType.tsx:252 msgid "Import Session" -msgstr "" +msgstr "Impordi sessioon" -#: src/components/render/ModelType.tsx:219 +#: src/components/render/ModelType.tsx:253 msgid "Import Sessions" -msgstr "" +msgstr "Impordi sessioone" -#: src/components/render/ModelType.tsx:225 +#: src/components/render/ModelType.tsx:260 msgid "Label Template" msgstr "" -#: src/components/render/ModelType.tsx:226 -#: src/pages/Index/Settings/AdminCenter/Index.tsx:158 +#: src/components/render/ModelType.tsx:261 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:187 msgid "Label Templates" msgstr "" -#: src/components/render/ModelType.tsx:232 +#: src/components/render/ModelType.tsx:264 +#~ msgid "Unknown Model" +#~ msgstr "Unknown Model" + +#: src/components/render/ModelType.tsx:268 msgid "Report Template" msgstr "" -#: src/components/render/ModelType.tsx:233 -#: src/pages/Index/Settings/AdminCenter/Index.tsx:164 +#: src/components/render/ModelType.tsx:269 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:193 msgid "Report Templates" msgstr "" -#: src/components/render/ModelType.tsx:239 -msgid "Plugin Configuration" -msgstr "" - -#: src/components/render/ModelType.tsx:240 +#: src/components/render/ModelType.tsx:277 msgid "Plugin Configurations" msgstr "" +#: src/components/render/ModelType.tsx:284 +msgid "Content Type" +msgstr "" + +#: src/components/render/ModelType.tsx:285 +msgid "Content Types" +msgstr "" + +#: src/components/render/ModelType.tsx:291 +#: src/tables/machine/MachineListTable.tsx:351 +#: src/tables/machine/MachineTypeTable.tsx:282 +msgid "Errors" +msgstr "" + +#: src/components/render/ModelType.tsx:307 +#~ msgid "Purchase Order Line Items" +#~ msgstr "Purchase Order Line Items" + +#: src/components/render/ModelType.tsx:337 +#~ msgid "Unknown Models" +#~ msgstr "Unknown Models" + #: src/components/render/Order.tsx:121 +#: src/tables/sales/SalesOrderAllocationTable.tsx:136 msgid "Shipment" msgstr "" #: src/components/render/Part.tsx:25 #: src/components/render/Plugin.tsx:17 -#: src/pages/company/CompanyDetail.tsx:325 -#: src/pages/company/SupplierPartDetail.tsx:360 -#: src/pages/part/PartDetail.tsx:879 +#: src/pages/company/CompanyDetail.tsx:307 +#: src/pages/company/SupplierPartDetail.tsx:349 +#: src/pages/part/PartDetail.tsx:911 msgid "Inactive" -msgstr "" +msgstr "Mitteaktiivne" #: src/components/render/Part.tsx:28 #: src/tables/bom/BomTable.tsx:204 @@ -1736,39 +2335,38 @@ msgstr "" msgid "No stock" msgstr "" -#: src/components/render/Part.tsx:30 -#: src/defaults/links.tsx:30 -#: src/defaults/menuItems.tsx:38 -#: src/pages/Index/Settings/SystemSettings.tsx:206 -#: src/pages/part/PartDetail.tsx:543 -#: src/pages/stock/LocationDetail.tsx:367 -#: src/pages/stock/StockDetail.tsx:411 -#: src/tables/stock/StockItemTable.tsx:68 -msgid "Stock" -msgstr "" - -#: src/components/render/Stock.tsx:60 -#: src/pages/stock/StockDetail.tsx:150 -#: src/pages/stock/StockDetail.tsx:581 -#: src/tables/build/BuildAllocatedStockTable.tsx:102 -#: src/tables/sales/SalesOrderAllocationTable.tsx:80 +#: src/components/render/Stock.tsx:61 +#: src/forms/ReturnOrderForms.tsx:190 +#: src/pages/stock/StockDetail.tsx:166 +#: src/pages/stock/StockDetail.tsx:771 +#: src/tables/build/BuildAllocatedStockTable.tsx:123 +#: src/tables/build/BuildOutputTable.tsx:81 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:114 +#: src/tables/sales/SalesOrderAllocationTable.tsx:106 msgid "Serial Number" -msgstr "" +msgstr "Seerianumber" -#: src/components/render/Stock.tsx:62 -#: src/forms/BuildForms.tsx:218 -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/pages/part/pricing/BomPricingPanel.tsx:109 +#: src/components/render/Stock.tsx:63 +#: src/forms/BuildForms.tsx:206 +#: src/forms/BuildForms.tsx:515 +#: src/forms/PurchaseOrderForms.tsx:689 +#: src/forms/SalesOrderForms.tsx:248 +#: src/pages/part/PartSchedulingDetail.tsx:80 +#: src/pages/part/PartStocktakeDetail.tsx:60 +#: src/pages/part/PartStocktakeDetail.tsx:234 +#: src/pages/part/PartStocktakeDetail.tsx:252 +#: src/pages/part/pricing/BomPricingPanel.tsx:148 #: src/pages/part/pricing/PriceBreakPanel.tsx:89 -#: src/pages/part/pricing/PriceBreakPanel.tsx:171 -#: src/pages/stock/StockDetail.tsx:145 -#: src/pages/stock/StockDetail.tsx:587 -#: src/tables/build/BuildOrderTestTable.tsx:197 -#: src/tables/part/PartPurchaseOrdersTable.tsx:92 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:143 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:171 +#: src/pages/part/pricing/PriceBreakPanel.tsx:172 +#: src/pages/stock/StockDetail.tsx:161 +#: src/pages/stock/StockDetail.tsx:777 +#: src/tables/build/BuildLineTable.tsx:79 +#: src/tables/build/BuildOrderTestTable.tsx:198 +#: src/tables/part/PartPurchaseOrdersTable.tsx:93 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:146 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:177 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:77 -#: src/tables/stock/StockTrackingTable.tsx:59 +#: src/tables/stock/StockTrackingTable.tsx:63 msgid "Quantity" msgstr "Kogus" @@ -1779,16 +2377,16 @@ msgstr "Kogus" #: src/components/settings/SettingList.tsx:67 msgid "Edit Setting" -msgstr "" +msgstr "Muuda seadeid" #: src/components/settings/SettingList.tsx:78 #: src/components/settings/SettingList.tsx:108 msgid "Setting {0} updated successfully" -msgstr "" +msgstr "Seade {0} edukalt värskendatud" #: src/components/settings/SettingList.tsx:107 msgid "Setting updated" -msgstr "" +msgstr "Seaded on uuendatud" #: src/components/settings/SettingList.tsx:117 msgid "Error editing setting" @@ -1842,10 +2440,6 @@ msgstr "" #~ msgid "Required Part" #~ msgstr "Required Part" -#: src/components/tables/build/BuildLineTable.tsx:152 -#~ msgid "Required Quantity" -#~ msgstr "Required Quantity" - #: src/components/tables/build/BuildOrderTable.tsx:52 #~ msgid "Progress" #~ msgstr "Progress" @@ -2126,14 +2720,6 @@ msgstr "" #~ msgid "user deleted" #~ msgstr "user deleted" -#: src/components/tables/settings/UserTable.tsx:168 -#~ msgid "First Name" -#~ msgstr "First Name" - -#: src/components/tables/settings/UserTable.tsx:173 -#~ msgid "Last Name" -#~ msgstr "Last Name" - #: src/components/tables/stock/StockItemTable.tsx:247 #~ msgid "Test Filter" #~ msgstr "Test Filter" @@ -2146,36 +2732,21 @@ msgstr "" #~ msgid "Stock location updated" #~ msgstr "Stock location updated" -#: src/components/widgets/DisplayWidget.tsx:11 -#: src/pages/Index/Settings/AccountSettings/DisplaySettingsPanel.tsx:17 -msgid "Display Settings" -msgstr "" - -#: src/components/widgets/DisplayWidget.tsx:15 -#: src/pages/Index/Settings/AccountSettings/DisplaySettingsPanel.tsx:23 -msgid "Color Mode" -msgstr "" - -#: src/components/widgets/DisplayWidget.tsx:21 -#: src/pages/Index/Settings/AccountSettings/DisplaySettingsPanel.tsx:33 -msgid "Language" -msgstr "Keel" - #: src/components/widgets/FeedbackWidget.tsx:19 -msgid "Something is new: Platform UI" -msgstr "" +#~ msgid "Something is new: Platform UI" +#~ msgstr "Something is new: Platform UI" #: src/components/widgets/FeedbackWidget.tsx:21 -msgid "We are building a new UI with a modern stack. What you currently see is not fixed and will be redesigned but demonstrates the UI/UX possibilities we will have going forward." -msgstr "" +#~ msgid "We are building a new UI with a modern stack. What you currently see is not fixed and will be redesigned but demonstrates the UI/UX possibilities we will have going forward." +#~ msgstr "We are building a new UI with a modern stack. What you currently see is not fixed and will be redesigned but demonstrates the UI/UX possibilities we will have going forward." #: src/components/widgets/FeedbackWidget.tsx:32 -msgid "Provide Feedback" -msgstr "" +#~ msgid "Provide Feedback" +#~ msgstr "Provide Feedback" #: src/components/widgets/GetStartedWidget.tsx:11 -msgid "Getting started" -msgstr "" +#~ msgid "Getting started" +#~ msgstr "Getting started" #: src/components/widgets/MarkdownEditor.tsx:108 #~ msgid "Failed to upload image" @@ -2186,60 +2757,56 @@ msgstr "" #~ msgstr "Notes saved" #: src/components/widgets/WidgetLayout.tsx:166 -msgid "Layout" -msgstr "" +#~ msgid "Layout" +#~ msgstr "Layout" #: src/components/widgets/WidgetLayout.tsx:172 -msgid "Reset Layout" -msgstr "" +#~ msgid "Reset Layout" +#~ msgstr "Reset Layout" #: src/components/widgets/WidgetLayout.tsx:185 -msgid "Stop Edit" -msgstr "" - -#: src/components/widgets/WidgetLayout.tsx:185 -msgid "Edit Layout" -msgstr "" +#~ msgid "Stop Edit" +#~ msgstr "Stop Edit" #: src/components/widgets/WidgetLayout.tsx:191 -msgid "Appearance" -msgstr "" +#~ msgid "Appearance" +#~ msgstr "Appearance" #: src/components/widgets/WidgetLayout.tsx:203 -msgid "Show Boxes" -msgstr "" +#~ msgid "Show Boxes" +#~ msgstr "Show Boxes" #: src/contexts/LanguageContext.tsx:20 msgid "Arabic" -msgstr "" +msgstr "Araabia" #: src/contexts/LanguageContext.tsx:21 msgid "Bulgarian" -msgstr "" +msgstr "Bulgaaria" #: src/contexts/LanguageContext.tsx:22 msgid "Czech" -msgstr "" +msgstr "Tšehhi" #: src/contexts/LanguageContext.tsx:23 msgid "Danish" -msgstr "" +msgstr "Taani" #: src/contexts/LanguageContext.tsx:24 msgid "German" -msgstr "" +msgstr "Saksa" #: src/contexts/LanguageContext.tsx:25 msgid "Greek" -msgstr "" +msgstr "Kreeka" #: src/contexts/LanguageContext.tsx:26 msgid "English" -msgstr "" +msgstr "Inglise" #: src/contexts/LanguageContext.tsx:27 msgid "Spanish" -msgstr "" +msgstr "Hispaania" #: src/contexts/LanguageContext.tsx:28 msgid "Spanish (Mexican)" @@ -2247,7 +2814,7 @@ msgstr "" #: src/contexts/LanguageContext.tsx:29 msgid "Estonian" -msgstr "" +msgstr "Eesti" #: src/contexts/LanguageContext.tsx:30 msgid "Farsi / Persian" @@ -2255,232 +2822,206 @@ msgstr "" #: src/contexts/LanguageContext.tsx:31 msgid "Finnish" -msgstr "" +msgstr "Soome" #: src/contexts/LanguageContext.tsx:32 msgid "French" -msgstr "" +msgstr "Prantsuse" #: src/contexts/LanguageContext.tsx:33 msgid "Hebrew" -msgstr "" +msgstr "Heebrea" #: src/contexts/LanguageContext.tsx:34 msgid "Hindi" -msgstr "" +msgstr "Hindi" #: src/contexts/LanguageContext.tsx:35 msgid "Hungarian" -msgstr "" +msgstr "Ungari" #: src/contexts/LanguageContext.tsx:36 msgid "Italian" -msgstr "" +msgstr "Itaalia" #: src/contexts/LanguageContext.tsx:37 msgid "Japanese" -msgstr "" +msgstr "Jaapani" #: src/contexts/LanguageContext.tsx:38 msgid "Korean" -msgstr "" +msgstr "Korea" #: src/contexts/LanguageContext.tsx:39 -msgid "Latvian" -msgstr "" +msgid "Lithuanian" +msgstr "Lietuvių" #: src/contexts/LanguageContext.tsx:40 -msgid "Dutch" -msgstr "" +msgid "Latvian" +msgstr "Läti" #: src/contexts/LanguageContext.tsx:41 -msgid "Norwegian" -msgstr "" +msgid "Dutch" +msgstr "Hollandi" #: src/contexts/LanguageContext.tsx:42 -msgid "Polish" -msgstr "" +msgid "Norwegian" +msgstr "Norra" #: src/contexts/LanguageContext.tsx:43 -msgid "Portuguese" -msgstr "" +msgid "Polish" +msgstr "Poola" #: src/contexts/LanguageContext.tsx:44 -msgid "Portuguese (Brazilian)" -msgstr "" +msgid "Portuguese" +msgstr "Portugali" #: src/contexts/LanguageContext.tsx:45 -msgid "Romanian" -msgstr "" +msgid "Portuguese (Brazilian)" +msgstr "Portugali (Brasiilia)" #: src/contexts/LanguageContext.tsx:46 -msgid "Russian" -msgstr "" +msgid "Romanian" +msgstr "Rumeenia" #: src/contexts/LanguageContext.tsx:47 -msgid "Slovak" -msgstr "" +msgid "Russian" +msgstr "Vene" #: src/contexts/LanguageContext.tsx:48 -msgid "Slovenian" -msgstr "" +msgid "Slovak" +msgstr "Slovaki" #: src/contexts/LanguageContext.tsx:49 -msgid "Swedish" -msgstr "" +msgid "Slovenian" +msgstr "Sloveenia" #: src/contexts/LanguageContext.tsx:50 -msgid "Thai" -msgstr "" +msgid "Swedish" +msgstr "Rootsi" #: src/contexts/LanguageContext.tsx:51 -msgid "Turkish" -msgstr "" +msgid "Thai" +msgstr "Tai" #: src/contexts/LanguageContext.tsx:52 -msgid "Ukrainian" -msgstr "" +msgid "Turkish" +msgstr "Türgi" #: src/contexts/LanguageContext.tsx:53 -msgid "Vietnamese" -msgstr "" +msgid "Ukrainian" +msgstr "Ukraina" #: src/contexts/LanguageContext.tsx:54 -msgid "Chinese (Simplified)" -msgstr "" +msgid "Vietnamese" +msgstr "Vietnami" #: src/contexts/LanguageContext.tsx:55 +msgid "Chinese (Simplified)" +msgstr "Hiina keel (lihtsuatatud)" + +#: src/contexts/LanguageContext.tsx:56 msgid "Chinese (Traditional)" -msgstr "" +msgstr "Hiina (traditsiooniline)" + +#: src/defaults/actions.tsx:18 +msgid "Go to the InvenTree dashboard" +msgstr "Minge InvenTree'i armatuurlauale" #: src/defaults/actions.tsx:18 #: src/defaults/links.tsx:27 #: src/defaults/menuItems.tsx:9 -msgid "Home" -msgstr "Avaleht" +#~ msgid "Home" +#~ msgstr "Home" #: src/defaults/actions.tsx:25 -#: src/defaults/links.tsx:28 -#: src/defaults/menuItems.tsx:28 -#: src/pages/Index/Dashboard.tsx:19 -#: src/pages/Index/Settings/UserSettings.tsx:46 -msgid "Dashboard" -msgstr "Töölaud" - -#: src/defaults/actions.tsx:26 -msgid "Go to the InvenTree dashboard" -msgstr "" - -#: src/defaults/actions.tsx:33 msgid "Visit the documentation to learn more about InvenTree" -msgstr "" +msgstr "Külastage dokumentatsiooni, et rohkem teada saada InvenTree kohta" -#: src/defaults/actions.tsx:39 -#: src/defaults/links.tsx:98 -#: src/defaults/links.tsx:128 +#: src/defaults/actions.tsx:31 +#: src/defaults/links.tsx:92 +#: src/defaults/links.tsx:124 msgid "About InvenTree" -msgstr "" +msgstr "InvenTree kohta" -#: src/defaults/actions.tsx:40 -#: src/defaults/links.tsx:129 +#: src/defaults/actions.tsx:32 msgid "About the InvenTree org" msgstr "" -#: src/defaults/actions.tsx:46 +#: src/defaults/actions.tsx:38 msgid "Server Information" -msgstr "" +msgstr "Serveri informatsioon" -#: src/defaults/actions.tsx:47 -#: src/defaults/links.tsx:123 +#: src/defaults/actions.tsx:39 +#: src/defaults/links.tsx:118 msgid "About this Inventree instance" -msgstr "" +msgstr "Selle Inventree eksemplari kohta" -#: src/defaults/actions.tsx:53 -#: src/defaults/links.tsx:111 +#: src/defaults/actions.tsx:45 +#: src/defaults/links.tsx:105 +#: src/defaults/links.tsx:131 msgid "License Information" msgstr "" -#: src/defaults/actions.tsx:54 -#: src/defaults/links.tsx:135 +#: src/defaults/actions.tsx:46 msgid "Licenses for dependencies of the service" +msgstr "Teenuste sõltuvuste litsentsid" + +#: src/defaults/actions.tsx:52 +msgid "Open Navigation" msgstr "" -#: src/defaults/actions.tsx:61 +#: src/defaults/actions.tsx:53 msgid "Open the main navigation menu" -msgstr "" +msgstr "Ava peamenüü" -#: src/defaults/actions.tsx:72 +#: src/defaults/actions.tsx:64 msgid "Go to the Admin Center" msgstr "" -#: src/defaults/dashboardItems.tsx:15 -msgid "Subscribed Parts" -msgstr "" - -#: src/defaults/dashboardItems.tsx:22 -msgid "Subscribed Categories" -msgstr "" - #: src/defaults/dashboardItems.tsx:29 -msgid "Latest Parts" -msgstr "" +#~ msgid "Latest Parts" +#~ msgstr "Latest Parts" #: src/defaults/dashboardItems.tsx:36 -msgid "BOM Waiting Validation" -msgstr "" +#~ msgid "BOM Waiting Validation" +#~ msgstr "BOM Waiting Validation" #: src/defaults/dashboardItems.tsx:43 -msgid "Recently Updated" -msgstr "" - -#: src/defaults/dashboardItems.tsx:50 -#: src/tables/part/PartTable.tsx:238 -msgid "Low Stock" -msgstr "" +#~ msgid "Recently Updated" +#~ msgstr "Recently Updated" #: src/defaults/dashboardItems.tsx:57 -msgid "Depleted Stock" -msgstr "" +#~ msgid "Depleted Stock" +#~ msgstr "Depleted Stock" #: src/defaults/dashboardItems.tsx:64 -msgid "Required for Build Orders" -msgstr "" +#~ msgid "Required for Build Orders" +#~ msgstr "Required for Build Orders" #: src/defaults/dashboardItems.tsx:71 -msgid "Expired Stock" -msgstr "" +#~ msgid "Expired Stock" +#~ msgstr "Expired Stock" #: src/defaults/dashboardItems.tsx:78 -msgid "Stale Stock" -msgstr "" +#~ msgid "Stale Stock" +#~ msgstr "Stale Stock" #: src/defaults/dashboardItems.tsx:85 -msgid "Build Orders In Progress" -msgstr "" - -#: src/defaults/dashboardItems.tsx:92 -msgid "Overdue Build Orders" -msgstr "" +#~ msgid "Build Orders In Progress" +#~ msgstr "Build Orders In Progress" #: src/defaults/dashboardItems.tsx:99 -msgid "Outstanding Purchase Orders" -msgstr "" - -#: src/defaults/dashboardItems.tsx:106 -msgid "Overdue Purchase Orders" -msgstr "" +#~ msgid "Outstanding Purchase Orders" +#~ msgstr "Outstanding Purchase Orders" #: src/defaults/dashboardItems.tsx:113 -msgid "Outstanding Sales Orders" -msgstr "" - -#: src/defaults/dashboardItems.tsx:120 -msgid "Overdue Sales Orders" -msgstr "" +#~ msgid "Outstanding Sales Orders" +#~ msgstr "Outstanding Sales Orders" #: src/defaults/dashboardItems.tsx:127 -msgid "Current News" -msgstr "" +#~ msgid "Current News" +#~ msgstr "Current News" #: src/defaults/defaultHostList.tsx:8 #~ msgid "InvenTree Demo" @@ -2490,98 +3031,81 @@ msgstr "" #~ msgid "Local Server" #~ msgstr "Local Server" -#: src/defaults/links.tsx:12 -#: src/pages/company/CompanyDetail.tsx:96 -msgid "Website" -msgstr "" - #: src/defaults/links.tsx:17 -msgid "GitHub" -msgstr "" +#~ msgid "GitHub" +#~ msgstr "GitHub" #: src/defaults/links.tsx:22 -msgid "Demo" -msgstr "" - -#: src/defaults/links.tsx:33 -#: src/defaults/menuItems.tsx:48 -#: src/pages/company/ManufacturerDetail.tsx:9 -#: src/pages/company/ManufacturerPartDetail.tsx:263 -#: src/pages/company/SupplierDetail.tsx:9 -#: src/pages/company/SupplierPartDetail.tsx:347 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:483 -#: src/pages/purchasing/PurchasingIndex.tsx:60 -msgid "Purchasing" -msgstr "" - -#: src/defaults/links.tsx:37 -#: src/defaults/menuItems.tsx:53 -#: src/pages/company/CustomerDetail.tsx:9 -#: src/pages/sales/ReturnOrderDetail.tsx:474 -#: src/pages/sales/SalesIndex.tsx:53 -#: src/pages/sales/SalesOrderDetail.tsx:525 -msgid "Sales" -msgstr "Müük" +#~ msgid "Demo" +#~ msgstr "Demo" #: src/defaults/links.tsx:41 #: src/defaults/menuItems.tsx:71 #: src/pages/Index/Playground.tsx:217 -msgid "Playground" -msgstr "" +#~ msgid "Playground" +#~ msgstr "Playground" + +#: src/defaults/links.tsx:45 +msgid "API" +msgstr "API" + +#: src/defaults/links.tsx:48 +msgid "InvenTree API documentation" +msgstr "InvenTree dokumentatsioon" + +#: src/defaults/links.tsx:52 +msgid "Developer Manual" +msgstr "Arendaja käsiraamat" #: src/defaults/links.tsx:55 -msgid "Getting Started" -msgstr "" - -#: src/defaults/links.tsx:56 -msgid "Getting started with InvenTree" -msgstr "" - -#: src/defaults/links.tsx:62 -msgid "API" -msgstr "" - -#: src/defaults/links.tsx:63 -msgid "InvenTree API documentation" -msgstr "" - -#: src/defaults/links.tsx:68 -msgid "Developer Manual" -msgstr "" - -#: src/defaults/links.tsx:69 msgid "InvenTree developer manual" -msgstr "" +msgstr "InvenTree arendaja käsiraamat" -#: src/defaults/links.tsx:74 +#: src/defaults/links.tsx:59 msgid "FAQ" msgstr "KKK" -#: src/defaults/links.tsx:75 +#: src/defaults/links.tsx:62 msgid "Frequently asked questions" +msgstr "Korduma kippuvad küsimused" + +#: src/defaults/links.tsx:66 +msgid "GitHub Repository" +msgstr "" + +#: src/defaults/links.tsx:69 +msgid "InvenTree source code on GitHub" msgstr "" #: src/defaults/links.tsx:76 #~ msgid "Instance" #~ msgstr "Instance" +#: src/defaults/links.tsx:79 +#: src/defaults/links.tsx:117 +msgid "System Information" +msgstr "" + #: src/defaults/links.tsx:83 #~ msgid "InvenTree" #~ msgstr "InvenTree" -#: src/defaults/links.tsx:85 -#: src/defaults/links.tsx:122 -msgid "System Information" -msgstr "" - #: src/defaults/links.tsx:117 #~ msgid "Licenses for packages used by InvenTree" #~ msgstr "Licenses for packages used by InvenTree" -#: src/defaults/links.tsx:134 -msgid "Licenses" +#: src/defaults/links.tsx:125 +msgid "About the InvenTree Project" msgstr "" +#: src/defaults/links.tsx:132 +msgid "Licenses for dependencies of the InvenTree software" +msgstr "" + +#: src/defaults/links.tsx:134 +#~ msgid "Licenses" +#~ msgstr "Licenses" + #: src/defaults/menuItems.tsx:7 #~ msgid "Open sourcea" #~ msgstr "Open sourcea" @@ -2607,8 +3131,8 @@ msgstr "" #~ msgstr "Profile page" #: src/defaults/menuItems.tsx:17 -msgid "User attributes and design settings." -msgstr "" +#~ msgid "User attributes and design settings." +#~ msgstr "User attributes and design settings." #: src/defaults/menuItems.tsx:21 #~ msgid "Free for everyone" @@ -2619,8 +3143,8 @@ msgstr "" #~ msgstr "The fluid of Smeargle’s tail secretions changes" #: src/defaults/menuItems.tsx:23 -msgid "View for interactive scanning and multiple actions." -msgstr "" +#~ msgid "View for interactive scanning and multiple actions." +#~ msgstr "View for interactive scanning and multiple actions." #: src/defaults/menuItems.tsx:24 #~ msgid "The fluid of Smeargle’s tail secretions changes in the intensity" @@ -2698,51 +3222,130 @@ msgstr "" #~ msgid "Are you sure you want to delete this attachment?" #~ msgstr "Are you sure you want to delete this attachment?" -#: src/forms/BuildForms.tsx:158 -msgid "Next serial number" +#: src/forms/BuildForms.tsx:248 +#~ msgid "Remove output" +#~ msgstr "Remove output" + +#: src/forms/BuildForms.tsx:269 +#: src/tables/build/BuildAllocatedStockTable.tsx:147 +#: src/tables/build/BuildOrderTestTable.tsx:177 +#: src/tables/build/BuildOrderTestTable.tsx:201 +#: src/tables/build/BuildOutputTable.tsx:460 +msgid "Build Output" msgstr "" -#: src/forms/BuildForms.tsx:162 -msgid "Latest serial number" +#: src/forms/BuildForms.tsx:269 +#: src/forms/BuildForms.tsx:337 +#: src/forms/BuildForms.tsx:385 +#: src/tables/build/BuildLineTable.tsx:89 +msgid "Batch" msgstr "" -#: src/forms/BuildForms.tsx:234 -msgid "Remove output" -msgstr "" +#: src/forms/BuildForms.tsx:269 +#: src/forms/BuildForms.tsx:337 +#: src/forms/BuildForms.tsx:385 +#: src/forms/PurchaseOrderForms.tsx:603 +#: src/pages/build/BuildDetail.tsx:104 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:142 +#: src/pages/sales/ReturnOrderDetail.tsx:113 +#: src/pages/sales/SalesOrderDetail.tsx:122 +#: src/tables/build/BuildOrderTable.tsx:125 +#: src/tables/machine/MachineListTable.tsx:336 +#: src/tables/part/PartPurchaseOrdersTable.tsx:37 +#: src/tables/purchasing/PurchaseOrderTable.tsx:58 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:157 +#: src/tables/sales/ReturnOrderTable.tsx:56 +#: src/tables/sales/SalesOrderTable.tsx:56 +#: src/tables/settings/CustomStateTable.tsx:57 +#: src/tables/settings/ImportSessionTable.tsx:114 +#: src/tables/stock/StockItemTable.tsx:298 +#: src/tables/stock/StockTrackingTable.tsx:56 +msgid "Status" +msgstr "Staatus" -#: src/forms/BuildForms.tsx:316 +#: src/forms/BuildForms.tsx:289 msgid "Complete Build Outputs" msgstr "" -#: src/forms/BuildForms.tsx:320 +#: src/forms/BuildForms.tsx:292 msgid "Build outputs have been completed" -msgstr "" +msgstr "Ehitustulemused on valmis" -#: src/forms/BuildForms.tsx:389 +#: src/forms/BuildForms.tsx:353 msgid "Scrap Build Outputs" msgstr "" -#: src/forms/BuildForms.tsx:393 +#: src/forms/BuildForms.tsx:356 msgid "Build outputs have been scrapped" -msgstr "" +msgstr "Ehitustulemused on tühistatud" -#: src/forms/BuildForms.tsx:425 -#: src/forms/BuildForms.tsx:449 +#: src/forms/BuildForms.tsx:393 msgid "Cancel Build Outputs" msgstr "" -#: src/forms/BuildForms.tsx:426 -msgid "Selected build outputs will be deleted" +#: src/forms/BuildForms.tsx:396 +msgid "Build outputs have been cancelled" +msgstr "Ehitustulemused on tühistatud" + +#: src/forms/BuildForms.tsx:408 +#~ msgid "Selected build outputs will be deleted" +#~ msgstr "Selected build outputs will be deleted" + +#: src/forms/BuildForms.tsx:470 +#~ msgid "Remove line" +#~ msgstr "Remove line" + +#: src/forms/BuildForms.tsx:515 +#: src/forms/SalesOrderForms.tsx:248 +#: src/tables/build/BuildLineTable.tsx:174 +#: src/tables/sales/SalesOrderLineItemTable.tsx:276 +#: src/tables/stock/StockItemTable.tsx:309 +msgid "Allocated" +msgstr "Eraldatud" + +#: src/forms/BuildForms.tsx:545 +#: src/forms/SalesOrderForms.tsx:239 +#: src/pages/build/BuildDetail.tsx:208 +msgid "Source Location" msgstr "" -#: src/forms/BuildForms.tsx:453 -msgid "Build outputs have been cancelled" +#: src/forms/BuildForms.tsx:546 +#: src/forms/SalesOrderForms.tsx:240 +msgid "Select the source location for the stock allocation" +msgstr "Valige laoseisu eraldamise alguskoht" + +#: src/forms/BuildForms.tsx:566 +#: src/forms/SalesOrderForms.tsx:274 +#: src/tables/build/BuildLineTable.tsx:442 +#: src/tables/build/BuildLineTable.tsx:569 +#: src/tables/build/BuildLineTable.tsx:642 +#: src/tables/sales/SalesOrderLineItemTable.tsx:302 +#: src/tables/sales/SalesOrderLineItemTable.tsx:326 +msgid "Allocate Stock" msgstr "" +#: src/forms/BuildForms.tsx:569 +#: src/forms/SalesOrderForms.tsx:279 +msgid "Stock items allocated" +msgstr "Selle plugina jaoks ei ole sisu esitatud" + #: src/forms/CompanyForms.tsx:150 #~ msgid "Company updated" #~ msgstr "Company updated" +#: src/forms/PartForms.tsx:67 +#: src/forms/PartForms.tsx:154 +#: src/pages/part/CategoryDetail.tsx:117 +#: src/pages/part/PartDetail.tsx:384 +#: src/tables/part/PartCategoryTable.tsx:90 +#: src/tables/part/PartTable.tsx:294 +msgid "Subscribed" +msgstr "" + +#: src/forms/PartForms.tsx:68 +msgid "Subscribe to notifications for this part" +msgstr "" + #: src/forms/PartForms.tsx:106 #~ msgid "Create Part" #~ msgstr "Create Part" @@ -2751,274 +3354,293 @@ msgstr "" #~ msgid "Part created" #~ msgstr "Part created" -#: src/forms/PartForms.tsx:124 -msgid "Parent part category" -msgstr "" - #: src/forms/PartForms.tsx:129 #~ msgid "Part updated" #~ msgstr "Part updated" -#: src/forms/PurchaseOrderForms.tsx:300 -msgid "Choose Location" +#: src/forms/PartForms.tsx:140 +msgid "Parent part category" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:308 +#: src/forms/PartForms.tsx:155 +msgid "Subscribe to notifications for this category" +msgstr "" + +#: src/forms/PurchaseOrderForms.tsx:314 +msgid "Assign Batch Code and Serial Numbers" +msgstr "" + +#: src/forms/PurchaseOrderForms.tsx:316 +msgid "Assign Batch Code" +msgstr "" + +#: src/forms/PurchaseOrderForms.tsx:336 +msgid "Choose Location" +msgstr "Vali asukoht" + +#: src/forms/PurchaseOrderForms.tsx:344 msgid "Item Destination selected" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:317 +#: src/forms/PurchaseOrderForms.tsx:353 msgid "Part category default location selected" -msgstr "" +msgstr "Osakategooria vaikimisi asukoht valitud" -#: src/forms/PurchaseOrderForms.tsx:327 +#: src/forms/PurchaseOrderForms.tsx:363 msgid "Received stock location selected" -msgstr "" +msgstr "Kättesaadud varude asukoha valitud" -#: src/forms/PurchaseOrderForms.tsx:332 +#: src/forms/PurchaseOrderForms.tsx:368 msgid "Default location selected" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:343 -#: src/forms/PurchaseOrderForms.tsx:435 -msgid "Scan Barcode" -msgstr "" +#: src/forms/PurchaseOrderForms.tsx:421 +#~ msgid "Assign Batch Code{0}" +#~ msgstr "Assign Batch Code{0}" -#: src/forms/PurchaseOrderForms.tsx:388 +#: src/forms/PurchaseOrderForms.tsx:427 msgid "Set Location" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:396 -msgid "Assign Batch Code{0}" -msgstr "" - -#: src/forms/PurchaseOrderForms.tsx:405 -#: src/forms/StockForms.tsx:420 +#: src/forms/PurchaseOrderForms.tsx:442 +#: src/forms/StockForms.tsx:539 msgid "Adjust Packaging" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:412 -msgid "Change Status" -msgstr "" - -#: src/forms/PurchaseOrderForms.tsx:418 -msgid "Add Note" -msgstr "" - #: src/forms/PurchaseOrderForms.tsx:444 #: src/forms/StockForms.tsx:428 -msgid "Remove item from list" -msgstr "" +#~ msgid "Remove item from list" +#~ msgstr "Remove item from list" -#: src/forms/PurchaseOrderForms.tsx:471 -#: src/forms/StockForms.tsx:499 -#: src/forms/StockForms.tsx:533 -#: src/forms/StockForms.tsx:562 -#: src/forms/StockForms.tsx:590 -#: src/forms/StockForms.tsx:621 -#: src/forms/StockForms.tsx:656 -#: src/forms/StockForms.tsx:698 -#: src/forms/StockForms.tsx:734 -#: src/pages/stock/StockDetail.tsx:181 -#: src/tables/ColumnRenderers.tsx:49 -#: src/tables/stock/StockTrackingTable.tsx:85 +#: src/forms/PurchaseOrderForms.tsx:450 +msgid "Change Status" +msgstr "Muuda staatust" + +#: src/forms/PurchaseOrderForms.tsx:456 +msgid "Add Note" +msgstr "Lisa märkus" + +#: src/forms/PurchaseOrderForms.tsx:503 +#: src/forms/StockForms.tsx:614 +#: src/forms/StockForms.tsx:651 +#: src/forms/StockForms.tsx:677 +#: src/forms/StockForms.tsx:705 +#: src/forms/StockForms.tsx:736 +#: src/forms/StockForms.tsx:771 +#: src/forms/StockForms.tsx:813 +#: src/forms/StockForms.tsx:851 +#: src/pages/stock/StockDetail.tsx:202 +#: src/tables/ColumnRenderers.tsx:60 +#: src/tables/stock/StockTrackingTable.tsx:89 msgid "Location" msgstr "Asukoht" -#: src/forms/PurchaseOrderForms.tsx:486 +#: src/forms/PurchaseOrderForms.tsx:518 msgid "Store at default location" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:499 +#: src/forms/PurchaseOrderForms.tsx:533 msgid "Store at line item destination" -msgstr "" +msgstr "Salvestage liinieleme kohas" -#: src/forms/PurchaseOrderForms.tsx:509 +#: src/forms/PurchaseOrderForms.tsx:545 msgid "Store with already received stock" -msgstr "" +msgstr "Pood juba saadud varudega" -#: src/forms/PurchaseOrderForms.tsx:524 -#: src/pages/build/BuildDetail.tsx:219 -#: src/pages/stock/StockDetail.tsx:162 -#: src/pages/stock/StockDetail.tsx:599 -#: src/tables/build/BuildAllocatedStockTable.tsx:109 -#: src/tables/build/BuildOrderTestTable.tsx:188 -#: src/tables/sales/SalesOrderAllocationTable.tsx:87 +#: src/forms/PurchaseOrderForms.tsx:566 +#: src/pages/build/BuildDetail.tsx:222 +#: src/pages/stock/StockDetail.tsx:185 +#: src/pages/stock/StockDetail.tsx:793 +#: src/tables/build/BuildAllocatedStockTable.tsx:130 +#: src/tables/build/BuildOrderTestTable.tsx:189 +#: src/tables/build/BuildOutputTable.tsx:86 +#: src/tables/sales/SalesOrderAllocationTable.tsx:113 msgid "Batch Code" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:535 -msgid "Serial numbers" +#: src/forms/PurchaseOrderForms.tsx:566 +#~ msgid "Serial numbers" +#~ msgstr "Serial numbers" + +#: src/forms/PurchaseOrderForms.tsx:567 +msgid "Enter batch code for received items" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:544 -#: src/forms/StockForms.tsx:443 -#: src/pages/company/SupplierPartDetail.tsx:156 -#: src/pages/company/SupplierPartDetail.tsx:207 -#: src/pages/stock/StockDetail.tsx:244 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:192 +#: src/forms/PurchaseOrderForms.tsx:579 +#: src/forms/StockForms.tsx:152 +msgid "Serial Numbers" +msgstr "" + +#: src/forms/PurchaseOrderForms.tsx:580 +msgid "Enter serial numbers for received items" +msgstr "" + +#: src/forms/PurchaseOrderForms.tsx:590 +#: src/forms/StockForms.tsx:556 +#: src/pages/company/SupplierPartDetail.tsx:168 +#: src/pages/company/SupplierPartDetail.tsx:219 +#: src/pages/stock/StockDetail.tsx:320 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:198 msgid "Packaging" -msgstr "" +msgstr "Pakkimine" -#: src/forms/PurchaseOrderForms.tsx:556 -#: src/pages/build/BuildDetail.tsx:109 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:148 -#: src/pages/sales/ReturnOrderDetail.tsx:121 -#: src/pages/sales/SalesOrderDetail.tsx:127 -#: src/tables/build/BuildOrderTable.tsx:122 -#: src/tables/machine/MachineListTable.tsx:335 -#: src/tables/part/PartPurchaseOrdersTable.tsx:37 -#: src/tables/purchasing/PurchaseOrderTable.tsx:55 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:132 -#: src/tables/sales/ReturnOrderTable.tsx:46 -#: src/tables/sales/SalesOrderTable.tsx:53 -#: src/tables/settings/ImportSessionTable.tsx:115 -#: src/tables/stock/StockItemTable.tsx:294 -#: src/tables/stock/StockTrackingTable.tsx:52 -msgid "Status" -msgstr "Staatus" - -#: src/forms/PurchaseOrderForms.tsx:564 -#: src/pages/company/SupplierPartDetail.tsx:110 -#: src/tables/ColumnRenderers.tsx:132 +#: src/forms/PurchaseOrderForms.tsx:612 +#: src/pages/company/SupplierPartDetail.tsx:115 +#: src/tables/ColumnRenderers.tsx:143 msgid "Note" -msgstr "" - -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/pages/company/SupplierPartDetail.tsx:128 -#: src/tables/purchasing/SupplierPriceBreakTable.tsx:57 -msgid "SKU" -msgstr "" - -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/tables/part/PartPurchaseOrdersTable.tsx:120 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:178 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:127 -msgid "Received" -msgstr "" - -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/forms/StockForms.tsx:499 -#: src/forms/StockForms.tsx:533 -#: src/forms/StockForms.tsx:562 -#: src/forms/StockForms.tsx:590 -#: src/forms/StockForms.tsx:621 -#: src/forms/StockForms.tsx:656 -#: src/forms/StockForms.tsx:698 -#: src/forms/StockForms.tsx:734 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:413 -#: src/tables/RowActions.tsx:113 -msgid "Actions" -msgstr "Toimingud" - -#: src/forms/PurchaseOrderForms.tsx:655 -msgid "Receive Line Items" -msgstr "" +msgstr "Märkus" #: src/forms/PurchaseOrderForms.tsx:658 #~ msgid "Receive line items" #~ msgstr "Receive line items" -#: src/forms/StockForms.tsx:104 -msgid "Add given quantity as packs instead of individual items" +#: src/forms/PurchaseOrderForms.tsx:689 +#: src/pages/company/SupplierPartDetail.tsx:133 +#: src/tables/purchasing/SupplierPriceBreakTable.tsx:57 +msgid "SKU" +msgstr "Tootekood" + +#: src/forms/PurchaseOrderForms.tsx:689 +#: src/tables/part/PartPurchaseOrdersTable.tsx:126 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:184 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:247 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:152 +msgid "Received" +msgstr "" + +#: src/forms/PurchaseOrderForms.tsx:701 +msgid "Receive Line Items" +msgstr "" + +#: src/forms/ReturnOrderForms.tsx:201 +msgid "Receive Items" +msgstr "" + +#: src/forms/ReturnOrderForms.tsx:208 +msgid "Item received into stock" +msgstr "Üksus on laoseisu vastu võetud" + +#: src/forms/StockForms.tsx:80 +#: src/hooks/UsePlaceholder.tsx:57 +msgid "Next serial number" msgstr "" #: src/forms/StockForms.tsx:110 #~ msgid "Create Stock Item" #~ msgstr "Create Stock Item" -#: src/forms/StockForms.tsx:117 +#: src/forms/StockForms.tsx:131 +msgid "Add given quantity as packs instead of individual items" +msgstr "Lisage antud kogus pakkidena individuaalsete esemete asemel" + +#: src/forms/StockForms.tsx:145 msgid "Enter initial quantity for this stock item" -msgstr "" +msgstr "Sisestage sellele laoseadmele algkogus" -#: src/forms/StockForms.tsx:124 -msgid "Serial Numbers" -msgstr "" - -#: src/forms/StockForms.tsx:125 +#: src/forms/StockForms.tsx:154 msgid "Enter serial numbers for new stock (or leave blank)" -msgstr "" +msgstr "Sisestage uued kaubanduslikud numbrikoodid (või jätke tühjaks)" #: src/forms/StockForms.tsx:158 #~ msgid "Stock item updated" #~ msgstr "Stock item updated" -#: src/forms/StockForms.tsx:179 -#: src/pages/stock/StockDetail.tsx:434 -#: src/tables/stock/StockItemTable.tsx:417 -#: src/tables/stock/StockItemTable.tsx:535 +#: src/forms/StockForms.tsx:169 +#: src/pages/stock/StockDetail.tsx:131 +msgid "Stock Status" +msgstr "Laoseis" + +#: src/forms/StockForms.tsx:218 +#: src/pages/stock/StockDetail.tsx:554 +#: src/tables/stock/StockItemTable.tsx:421 +#: src/tables/stock/StockItemTable.tsx:541 msgid "Add Stock Item" msgstr "" -#: src/forms/StockForms.tsx:362 -msgid "Loading..." +#: src/forms/StockForms.tsx:262 +msgid "Select the part to install" msgstr "" -#: src/forms/StockForms.tsx:408 +#: src/forms/StockForms.tsx:480 +msgid "Loading..." +msgstr "Laadimine..." + +#: src/forms/StockForms.tsx:527 msgid "Move to default location" msgstr "" -#: src/forms/StockForms.tsx:499 -#: src/forms/StockForms.tsx:533 -#: src/forms/StockForms.tsx:562 -#: src/forms/StockForms.tsx:590 -#: src/forms/StockForms.tsx:621 -#: src/forms/StockForms.tsx:656 -#: src/forms/StockForms.tsx:698 -#: src/forms/StockForms.tsx:734 -#: src/pages/part/PartDetail.tsx:230 -#: src/pages/part/PartDetail.tsx:843 -#: src/tables/stock/StockItemTable.tsx:325 +#: src/forms/StockForms.tsx:614 +#: src/forms/StockForms.tsx:651 +#: src/forms/StockForms.tsx:677 +#: src/forms/StockForms.tsx:705 +#: src/forms/StockForms.tsx:736 +#: src/forms/StockForms.tsx:771 +#: src/forms/StockForms.tsx:813 +#: src/forms/StockForms.tsx:851 +#: src/pages/part/PartDetail.tsx:251 +#: src/pages/part/PartDetail.tsx:875 +#: src/tables/stock/StockItemTable.tsx:329 msgid "In Stock" -msgstr "" +msgstr "Laos" -#: src/forms/StockForms.tsx:499 +#: src/forms/StockForms.tsx:614 msgid "Move" -msgstr "" +msgstr "Liiguta" -#: src/forms/StockForms.tsx:562 -#: src/pages/stock/StockDetail.tsx:518 -#: src/tables/stock/StockItemTestResultTable.tsx:328 +#: src/forms/StockForms.tsx:677 +#: src/pages/stock/StockDetail.tsx:681 +#: src/tables/stock/StockItemTestResultTable.tsx:346 msgid "Add" -msgstr "" +msgstr "Lisa" -#: src/forms/StockForms.tsx:590 -#: src/pages/Index/Scan.tsx:266 -#: src/pages/stock/StockDetail.tsx:508 +#: src/forms/StockForms.tsx:705 +#: src/pages/Index/Scan.tsx:280 +#: src/pages/stock/StockDetail.tsx:670 msgid "Count" -msgstr "" +msgstr "Kogus" -#: src/forms/StockForms.tsx:835 +#: src/forms/StockForms.tsx:953 +#: src/pages/stock/StockDetail.tsx:682 +#: src/tables/stock/StockItemTable.tsx:454 msgid "Add Stock" msgstr "" -#: src/forms/StockForms.tsx:844 +#: src/forms/StockForms.tsx:962 +#: src/pages/stock/StockDetail.tsx:691 +#: src/tables/stock/StockItemTable.tsx:463 msgid "Remove Stock" msgstr "" -#: src/forms/StockForms.tsx:853 -#: src/pages/part/PartDetail.tsx:1017 +#: src/forms/StockForms.tsx:971 +#: src/pages/part/PartDetail.tsx:1039 +#: src/pages/stock/StockDetail.tsx:712 +#: src/tables/stock/StockItemTable.tsx:483 msgid "Transfer Stock" msgstr "" -#: src/forms/StockForms.tsx:862 -#: src/pages/part/PartDetail.tsx:1006 +#: src/forms/StockForms.tsx:980 +#: src/pages/part/PartDetail.tsx:1028 +#: src/pages/stock/LocationDetail.tsx:314 +#: src/pages/stock/LocationDetail.tsx:318 +#: src/tables/stock/StockItemTable.tsx:472 +#: src/tables/stock/StockItemTable.tsx:476 msgid "Count Stock" msgstr "" -#: src/forms/StockForms.tsx:871 +#: src/forms/StockForms.tsx:989 msgid "Change Stock Status" msgstr "" -#: src/forms/StockForms.tsx:880 +#: src/forms/StockForms.tsx:998 msgid "Merge Stock" msgstr "" -#: src/forms/StockForms.tsx:899 +#: src/forms/StockForms.tsx:1017 +#: src/tables/stock/StockItemTable.tsx:530 msgid "Delete Stock Items" msgstr "" -#: src/forms/StockForms.tsx:906 +#: src/forms/StockForms.tsx:1024 msgid "Parent stock location" msgstr "" @@ -3042,13 +3664,13 @@ msgstr "" #~ msgid "You have been logged out" #~ msgstr "You have been logged out" -#: src/functions/auth.tsx:117 +#: src/functions/auth.tsx:128 msgid "Logged Out" msgstr "" -#: src/functions/auth.tsx:118 +#: src/functions/auth.tsx:129 msgid "Successfully logged out" -msgstr "" +msgstr "Edukalt välja logitud" #: src/functions/auth.tsx:141 #~ msgid "Already logged in" @@ -3062,20 +3684,20 @@ msgstr "" #~ msgid "Found an existing login - welcome back!" #~ msgstr "Found an existing login - welcome back!" -#: src/functions/auth.tsx:156 +#: src/functions/auth.tsx:167 msgid "Check your inbox for a reset link. This only works if you have an account. Check in spam too." -msgstr "" +msgstr "Kontrollige oma postkasti lähtestamise lingi jaoks. See toimib ainult siis, kui teil on konto. Vaadake ka rämpsposti." -#: src/functions/auth.tsx:163 +#: src/functions/auth.tsx:174 #: src/pages/Auth/Set-Password.tsx:39 msgid "Reset failed" msgstr "" -#: src/functions/auth.tsx:194 +#: src/functions/auth.tsx:205 msgid "Logged In" msgstr "" -#: src/functions/auth.tsx:195 +#: src/functions/auth.tsx:206 msgid "Successfully logged in" msgstr "" @@ -3095,28 +3717,36 @@ msgstr "" #~ msgid "method parameter not supplied" #~ msgstr "method parameter not supplied" -#: src/functions/notifications.tsx:10 +#: src/functions/notifications.tsx:12 msgid "Not implemented" msgstr "" -#: src/functions/notifications.tsx:11 +#: src/functions/notifications.tsx:13 msgid "This feature is not yet implemented" -msgstr "" +msgstr "See funktsioon pole veel rakendatud" -#: src/functions/notifications.tsx:21 -msgid "Permission denied" -msgstr "" +#: src/functions/notifications.tsx:24 +#~ msgid "Permission denied" +#~ msgstr "Permission denied" -#: src/functions/notifications.tsx:22 +#: src/functions/notifications.tsx:25 msgid "You do not have permission to perform this action" -msgstr "" +msgstr "Vabandame, teil pole luba sellele toimingule" -#: src/functions/notifications.tsx:33 +#: src/functions/notifications.tsx:36 msgid "Invalid Return Code" msgstr "" -#: src/functions/notifications.tsx:34 +#: src/functions/notifications.tsx:37 msgid "Server returned status {returnCode}" +msgstr "Server tagastas oleku {returnCode}" + +#: src/functions/notifications.tsx:47 +msgid "Timeout" +msgstr "Aegumine" + +#: src/functions/notifications.tsx:48 +msgid "The request timed out" msgstr "" #: src/hooks/UseForm.tsx:88 @@ -3135,20 +3765,24 @@ msgstr "" msgid "Are you sure you want to delete this item?" msgstr "Kas olete kindel, et soovite selle üksuse kustutada?" -#: src/pages/Auth/Logged-In.tsx:22 -msgid "Checking if you are already logged in" +#: src/hooks/UsePlaceholder.tsx:59 +msgid "Latest serial number" msgstr "" -#: src/pages/Auth/Login.tsx:31 -#: src/pages/Index/Scan.tsx:329 +#: src/pages/Auth/Logged-In.tsx:22 +msgid "Checking if you are already logged in" +msgstr "Kontrollige, kas olete juba sisse logitud" + +#: src/pages/Auth/Login.tsx:35 +#: src/pages/Index/Scan.tsx:343 msgid "No selection" msgstr "" -#: src/pages/Auth/Login.tsx:87 +#: src/pages/Auth/Login.tsx:91 msgid "Welcome, log in below" msgstr "" -#: src/pages/Auth/Login.tsx:89 +#: src/pages/Auth/Login.tsx:93 msgid "Register below" msgstr "" @@ -3162,8 +3796,8 @@ msgstr "" #: src/pages/Auth/Reset.tsx:41 #: src/pages/Auth/Set-Password.tsx:112 -msgid "Send mail" -msgstr "" +#~ msgid "Send mail" +#~ msgstr "Send mail" #: src/pages/Auth/Set-Password.tsx:30 msgid "Token invalid" @@ -3171,25 +3805,25 @@ msgstr "" #: src/pages/Auth/Set-Password.tsx:31 msgid "You need to provide a valid token to set a new password. Check your inbox for a reset link." -msgstr "" +msgstr "Teil peab olema kehtiv märkasõna, et saaks uue parooli määrata. Vaata oma postkasti parooli taastamise lingi jaoks." #: src/pages/Auth/Set-Password.tsx:49 -msgid "No token provided" -msgstr "" +#~ msgid "No token provided" +#~ msgstr "No token provided" #: src/pages/Auth/Set-Password.tsx:50 -msgid "You need to provide a token to set a new password. Check your inbox for a reset link." -msgstr "" +#~ msgid "You need to provide a token to set a new password. Check your inbox for a reset link." +#~ msgstr "You need to provide a token to set a new password. Check your inbox for a reset link." -#: src/pages/Auth/Set-Password.tsx:73 +#: src/pages/Auth/Set-Password.tsx:68 msgid "Password set" msgstr "" -#: src/pages/Auth/Set-Password.tsx:74 +#: src/pages/Auth/Set-Password.tsx:69 msgid "The password was set successfully. You can now login with your new password" -msgstr "" +msgstr "Parool määrati edukalt. Nüüd saate sisse logida oma uue parooliga" -#: src/pages/Auth/Set-Password.tsx:101 +#: src/pages/Auth/Set-Password.tsx:96 msgid "Set new password" msgstr "" @@ -3199,27 +3833,27 @@ msgstr "" #: src/pages/ErrorPage.tsx:23 msgid "An unexpected error has occurred" -msgstr "" +msgstr "Tekkis ootamatu viga" #: src/pages/ErrorPage.tsx:28 #~ msgid "Sorry, an unexpected error has occurred." #~ msgstr "Sorry, an unexpected error has occurred." #: src/pages/Index/Dashboard.tsx:22 -msgid "Autoupdate" -msgstr "" +#~ msgid "Autoupdate" +#~ msgstr "Autoupdate" #: src/pages/Index/Dashboard.tsx:26 -msgid "This page is a replacement for the old start page with the same information. This page will be deprecated and replaced by the home page." -msgstr "" +#~ msgid "This page is a replacement for the old start page with the same information. This page will be deprecated and replaced by the home page." +#~ msgstr "This page is a replacement for the old start page with the same information. This page will be deprecated and replaced by the home page." #: src/pages/Index/Home.tsx:58 -msgid "Welcome to your Dashboard{0}" -msgstr "" +#~ msgid "Welcome to your Dashboard{0}" +#~ msgstr "Welcome to your Dashboard{0}" #: src/pages/Index/Playground.tsx:222 -msgid "This page is a showcase for the possibilities of Platform UI." -msgstr "" +#~ msgid "This page is a showcase for the possibilities of Platform UI." +#~ msgstr "This page is a showcase for the possibilities of Platform UI." #: src/pages/Index/Profile/Profile.tsx:30 #: src/pages/Index/Profile/Profile.tsx:141 @@ -3359,132 +3993,197 @@ msgstr "" #: src/pages/Index/Scan.tsx:216 msgid "Manual input" -msgstr "" +msgstr "Käsitsi sisestamine" #: src/pages/Index/Scan.tsx:217 msgid "Image Barcode" -msgstr "" - -#: src/pages/Index/Scan.tsx:247 -msgid "Selected elements are not known" -msgstr "" - -#: src/pages/Index/Scan.tsx:254 -msgid "Multiple object types selected" -msgstr "" +msgstr "Pildi ribakood" #: src/pages/Index/Scan.tsx:261 +msgid "Selected elements are not known" +msgstr "Valitud elemendid pole teada" + +#: src/pages/Index/Scan.tsx:268 +msgid "Multiple object types selected" +msgstr "Valitud on mitut tüüpi objektid" + +#: src/pages/Index/Scan.tsx:275 msgid "Actions for {0}" msgstr "" -#: src/pages/Index/Scan.tsx:282 +#: src/pages/Index/Scan.tsx:296 msgid "Scan Page" msgstr "" -#: src/pages/Index/Scan.tsx:285 +#: src/pages/Index/Scan.tsx:299 msgid "This page can be used for continuously scanning items and taking actions on them." -msgstr "" +msgstr "Seda lehekülge saab kasutada pidevalt esemete skannimiseks ja nendega toimingute tegemiseks." -#: src/pages/Index/Scan.tsx:292 +#: src/pages/Index/Scan.tsx:306 msgid "Toggle Fullscreen" msgstr "" -#: src/pages/Index/Scan.tsx:305 +#: src/pages/Index/Scan.tsx:319 msgid "Select the input method you want to use to scan items." -msgstr "" +msgstr "Valige sisestusmeetod, mida soovite kasutada esemete skaneerimiseks." -#: src/pages/Index/Scan.tsx:307 +#: src/pages/Index/Scan.tsx:321 msgid "Input" -msgstr "" +msgstr "Sisend" -#: src/pages/Index/Scan.tsx:314 +#: src/pages/Index/Scan.tsx:328 msgid "Select input method" -msgstr "" +msgstr "Vali sisestusviis" -#: src/pages/Index/Scan.tsx:315 +#: src/pages/Index/Scan.tsx:329 msgid "Nothing found" -msgstr "" +msgstr "Midagi ei leitud" -#: src/pages/Index/Scan.tsx:323 +#: src/pages/Index/Scan.tsx:337 msgid "Depending on the selected parts actions will be shown here. Not all barcode types are supported currently." -msgstr "" +msgstr "Sõltuvalt valitud osadest kuvatakse siin toimingud. Praegu ei toetata kõiki ribakooditüüpe." -#: src/pages/Index/Scan.tsx:325 +#: src/pages/Index/Scan.tsx:339 msgid "Action" msgstr "Tegevus" -#: src/pages/Index/Scan.tsx:334 +#: src/pages/Index/Scan.tsx:348 msgid "{0} items selected" msgstr "" -#: src/pages/Index/Scan.tsx:337 +#: src/pages/Index/Scan.tsx:351 msgid "General Actions" msgstr "" -#: src/pages/Index/Scan.tsx:351 +#: src/pages/Index/Scan.tsx:365 msgid "Lookup part" msgstr "" -#: src/pages/Index/Scan.tsx:359 +#: src/pages/Index/Scan.tsx:373 msgid "Open Link" -msgstr "" +msgstr "Ava link" -#: src/pages/Index/Scan.tsx:375 +#: src/pages/Index/Scan.tsx:389 msgid "History is locally kept in this browser." -msgstr "" +msgstr "Ajalugu hoitakse kohalikult selles brauseris." -#: src/pages/Index/Scan.tsx:376 +#: src/pages/Index/Scan.tsx:390 msgid "The history is kept in this browser's local storage. So it won't be shared with other users or other devices but is persistent through reloads. You can select items in the history to perform actions on them. To add items, scan/enter them in the Input area." -msgstr "" +msgstr "Ajalugu hoitakse selles brauseri kohalikus salvestusruumis. Seega seda ei jagata teiste kasutajate ega seadmetega, vaid see püsib uuesti laadimistel. Saate ajaloos valida esemeid ja nendega tegevusi sooritada. Uute esemete lisamiseks skannige/sisestage need sisestusala." -#: src/pages/Index/Scan.tsx:378 +#: src/pages/Index/Scan.tsx:392 #: src/pages/Notifications.tsx:100 msgid "History" -msgstr "" +msgstr "Ajalugu" -#: src/pages/Index/Scan.tsx:384 +#: src/pages/Index/Scan.tsx:398 msgid "Delete History" -msgstr "" +msgstr "Kustuta ajalugu" -#: src/pages/Index/Scan.tsx:449 +#: src/pages/Index/Scan.tsx:463 msgid "No history" -msgstr "" +msgstr "Ajalugu puudub" -#: src/pages/Index/Scan.tsx:467 +#: src/pages/Index/Scan.tsx:481 msgid "Item" msgstr "" -#: src/pages/Index/Scan.tsx:470 +#: src/pages/Index/Scan.tsx:484 msgid "Type" -msgstr "" +msgstr "Liik" -#: src/pages/Index/Scan.tsx:473 +#: src/pages/Index/Scan.tsx:487 msgid "Source" -msgstr "" +msgstr "Allikas" -#: src/pages/Index/Scan.tsx:476 +#: src/pages/Index/Scan.tsx:490 msgid "Scanned at" msgstr "" -#: src/pages/Index/Scan.tsx:528 +#: src/pages/Index/Scan.tsx:547 msgid "Enter item serial or data" -msgstr "" +msgstr "Sisestage eseme seerianumber või andmed" -#: src/pages/Index/Scan.tsx:540 +#: src/pages/Index/Scan.tsx:559 msgid "Add dummy item" msgstr "" -#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:41 -msgid "Account Details" +#: src/pages/Index/Scan.tsx:569 +msgid "Start scanning by selecting a camera and pressing the play button." +msgstr "Alustage skaneerimist, valides kaamera ja vajutades nuppu 'mängi'." + +#: src/pages/Index/Scan.tsx:650 +msgid "Error while getting camera" +msgstr "Viga kaamera hankimisel" + +#: src/pages/Index/Scan.tsx:673 +msgid "Error while scanning" +msgstr "Viga skannimise ajal" + +#: src/pages/Index/Scan.tsx:687 +msgid "Error while stopping" +msgstr "Viga peatamisel" + +#: src/pages/Index/Scan.tsx:745 +msgid "Stop scanning" +msgstr "Peata skännimine" + +#: src/pages/Index/Scan.tsx:754 +msgid "Start scanning" +msgstr "Alusta skännimist" + +#: src/pages/Index/Scan.tsx:763 +msgid "Scanning" +msgstr "Skanneerimine" + +#: src/pages/Index/Scan.tsx:763 +msgid "Not scanning" msgstr "" +#: src/pages/Index/Scan.tsx:775 +msgid "Select Camera" +msgstr "Vali kaamera" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:28 +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:50 +msgid "Edit User Information" +msgstr "Muuda kasutaja infot" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:32 +msgid "User details updated" +msgstr "Kasutaja andmed uuendatud" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:41 +msgid "User Details" +msgstr "Kasutaja üksikandmed" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:41 +#~ msgid "Account Details" +#~ msgstr "Account Details" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:44 +msgid "User Actions" +msgstr "Kasutaja toimingud" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:48 +msgid "Edit User" +msgstr "Muuda kasutajat" + #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:50 -msgid "First name" -msgstr "" +#~ msgid "First name" +#~ msgstr "First name" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:54 +msgid "Set Password" +msgstr "Määra parool" #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:55 -msgid "Last name" -msgstr "" +#~ msgid "Last name" +#~ msgstr "Last name" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:56 +msgid "Set User Password" +msgstr "Määra parool" #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:58 #~ msgid "First name: {0}" @@ -3495,20 +4194,33 @@ msgstr "" #~ msgstr "Last name: {0}" #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:67 -msgid "First name:" -msgstr "" +#~ msgid "First name:" +#~ msgstr "First name:" #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:71 -msgid "Last name:" +#~ msgid "Last name:" +#~ msgstr "Last name:" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:73 +msgid "First Name" +msgstr "Eesnimi" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:79 +msgid "Last Name" +msgstr "Perekonnanimi" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:85 +msgid "Staff Access" msgstr "" -#: src/pages/Index/Settings/AccountSettings/DisplaySettingsPanel.tsx:41 -msgid "Use pseudo language" +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:93 +#: src/tables/settings/UserTable.tsx:293 +msgid "Superuser" msgstr "" #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:55 msgid "Single Sign On Accounts" -msgstr "" +msgstr "Ühekordsed sisselogimiskontod" #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:62 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:80 @@ -3517,7 +4229,7 @@ msgstr "" #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:65 msgid "Single Sign On is not enabled for this server" -msgstr "" +msgstr "Sisselogimine pole sellele serverile lubatud" #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:69 msgid "Multifactor" @@ -3525,145 +4237,160 @@ msgstr "" #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:83 msgid "Multifactor authentication is not configured for your account" -msgstr "" +msgstr "Mitmefaktoriline autentimine pole teie kontole konfigureeritud" #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:92 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:407 msgid "Token" -msgstr "" +msgstr "Kontrollkood" #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:139 msgid "The following email addresses are associated with your account:" -msgstr "" +msgstr "Teie kontoga on seotud järgmised e-posti aadressid:" #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:151 msgid "Primary" -msgstr "" +msgstr "Peamine" #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:156 msgid "Verified" -msgstr "" +msgstr "Kinnitatud" #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:160 msgid "Unverified" -msgstr "" +msgstr "Kinnitamata" #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:173 msgid "Add Email Address" -msgstr "" +msgstr "Lisa e-posti aadress" #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:176 msgid "E-Mail" -msgstr "" +msgstr "E-post" #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:177 msgid "E-Mail address" -msgstr "" +msgstr "E-posti aadress" #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:189 msgid "Make Primary" -msgstr "" +msgstr "Määra peamiseks" #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:194 msgid "Re-send Verification" -msgstr "" +msgstr "Saada kinnitus uuesti" #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:205 msgid "Add Email" -msgstr "" +msgstr "Lisa E-mail" #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:270 msgid "Provider has not been configured" -msgstr "" +msgstr "Pakkuja pole seadistatud" #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:280 msgid "Not configured" -msgstr "" +msgstr "Seadistamata" #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:283 msgid "There are no social network accounts connected to this account." -msgstr "" +msgstr "Sellele kontole pole ühendatud ühtegi sotsiaalmeedia kontot." #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:293 msgid "You can sign in to your account using any of the following third party accounts" -msgstr "" +msgstr "Saate sisse logida oma kontole kasutades mõnda järgmistest kolmandatest osapooltest kontodest" #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:368 msgid "Token is used - no actions" -msgstr "" +msgstr "Token kasutatakse - ühtegi toimingut pole" #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:375 msgid "Revoke" -msgstr "" +msgstr "Tühista" #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:389 msgid "No tokens configured" -msgstr "" - -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:398 -#: src/pages/part/PartDetail.tsx:297 -#: src/tables/bom/UsedInTable.tsx:84 -#: src/tables/build/BuildOrderTable.tsx:110 -#: src/tables/company/CompanyTable.tsx:61 -#: src/tables/company/CompanyTable.tsx:95 -#: src/tables/machine/MachineListTable.tsx:332 -#: src/tables/machine/MachineListTable.tsx:594 -#: src/tables/part/ParametricPartTable.tsx:223 -#: src/tables/part/PartTable.tsx:178 -#: src/tables/part/PartVariantTable.tsx:15 -#: src/tables/plugin/PluginListTable.tsx:149 -#: src/tables/plugin/PluginListTable.tsx:271 -#: src/tables/plugin/PluginListTable.tsx:563 -#: src/tables/purchasing/SupplierPartTable.tsx:98 -#: src/tables/purchasing/SupplierPartTable.tsx:187 -#: src/tables/settings/UserTable.tsx:284 -#: src/tables/stock/StockItemTable.tsx:289 -msgid "Active" -msgstr "" +msgstr "Ühtegi kontrollkoodi pole seadistatud" #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:401 msgid "Expiry" -msgstr "" +msgstr "Aegumine" #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:404 msgid "Last Seen" -msgstr "" +msgstr "Viimati nähtud" #: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:65 -msgid "bars" -msgstr "" +#~ msgid "bars" +#~ msgstr "bars" #: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:66 -msgid "oval" -msgstr "" +#~ msgid "oval" +#~ msgstr "oval" #: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:67 -msgid "dots" -msgstr "" +#~ msgid "dots" +#~ msgstr "dots" #: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:81 -msgid "Theme" -msgstr "" +#~ msgid "Theme" +#~ msgstr "Theme" #: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:87 -msgid "Primary color" +#~ msgid "Primary color" +#~ msgstr "Primary color" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:88 +msgid "Bars" +msgstr "Baar" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:89 +msgid "Oval" +msgstr "Oval" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:90 +msgid "Dots" +msgstr "Punktid" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:101 +msgid "Display Settings" +msgstr "Vaate seaded" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:107 +msgid "Language" +msgstr "Keel" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:115 +msgid "Use pseudo language" msgstr "" -#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:100 +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:122 +msgid "Color Mode" +msgstr "Värvirežiim" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:133 +msgid "Highlight color" +msgstr "Esiletõstuvärv" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:145 +msgid "Example" +msgstr "Näidis" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:151 msgid "White color" -msgstr "" +msgstr "Valge värv" -#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:108 +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:167 msgid "Black color" -msgstr "" +msgstr "Must värv" -#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:116 +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:183 msgid "Border Radius" -msgstr "" +msgstr "Piirjoone kumerus" -#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:132 +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:199 msgid "Loader" -msgstr "" +msgstr "Laadija" #: src/pages/Index/Settings/AdminCenter.tsx:30 #~ msgid "User Management" @@ -3673,89 +4400,156 @@ msgstr "" #~ msgid "Advanced Amininistrative Options for InvenTree" #~ msgstr "Advanced Amininistrative Options for InvenTree" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:104 +#: src/pages/Index/Settings/AdminCenter/CurrencyManagmentPanel.tsx:27 +#: src/tables/ColumnRenderers.tsx:262 +msgid "Currency" +msgstr "Valuuta" + +#: src/pages/Index/Settings/AdminCenter/CurrencyManagmentPanel.tsx:32 +msgid "Rate" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/CurrencyManagmentPanel.tsx:44 +msgid "Exchange rates updated" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/CurrencyManagmentPanel.tsx:50 +msgid "Exchange rate update error" +msgstr "Vahetuskursi värskendamise viga" + +#: src/pages/Index/Settings/AdminCenter/CurrencyManagmentPanel.tsx:62 +msgid "Refresh currency exchange rates" +msgstr "Värskenda valuutakursse" + +#: src/pages/Index/Settings/AdminCenter/CurrencyManagmentPanel.tsx:99 +msgid "Last fetched" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/CurrencyManagmentPanel.tsx:100 +msgid "Base currency" +msgstr "Baasvaluuta" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:115 msgid "Data Import" +msgstr "Andmete importimine" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:121 +msgid "Barcode Scans" msgstr "" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:110 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:127 msgid "Background Tasks" -msgstr "" - -#: src/pages/Index/Settings/AdminCenter/Index.tsx:116 -msgid "Error Reports" -msgstr "" - -#: src/pages/Index/Settings/AdminCenter/Index.tsx:122 -msgid "Currencies" -msgstr "" +msgstr "Taustaülesanded" #: src/pages/Index/Settings/AdminCenter/Index.tsx:127 #~ msgid "Templates" #~ msgstr "Templates" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:140 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:133 +msgid "Error Reports" +msgstr "Veateated" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:139 +msgid "Currencies" +msgstr "Valuutad" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:157 +msgid "Custom States" +msgstr "Kohandatud staatused" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:163 +#: src/pages/Index/Settings/AdminCenter/UnitManagmentPanel.tsx:58 msgid "Custom Units" msgstr "" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:146 -#: src/pages/part/CategoryDetail.tsx:264 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:169 +#: src/pages/part/CategoryDetail.tsx:269 msgid "Part Parameters" msgstr "" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:152 -msgid "Category Parameters" -msgstr "" - -#: src/pages/Index/Settings/AdminCenter/Index.tsx:170 -msgid "Location Types" -msgstr "" - #: src/pages/Index/Settings/AdminCenter/Index.tsx:170 #~ msgid "Location types" #~ msgstr "Location types" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:182 -#: src/tables/machine/MachineTypeTable.tsx:287 -msgid "Machines" +#: src/pages/Index/Settings/AdminCenter/Index.tsx:175 +msgid "Category Parameters" msgstr "" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:192 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:181 +msgid "Stocktake" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:199 +msgid "Location Types" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:211 +#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:48 +#: src/tables/machine/MachineTypeTable.tsx:308 +msgid "Machines" +msgstr "Masinad" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:221 msgid "Quick Actions" msgstr "" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:197 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:226 msgid "Add a new user" msgstr "" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:222 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:252 msgid "Advanced Options" msgstr "" #: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:43 -msgid "Machine types" -msgstr "" +#~ msgid "Machine types" +#~ msgstr "Machine types" #: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:53 -msgid "Machine Error Stack" +#~ msgid "Machine Error Stack" +#~ msgstr "Machine Error Stack" + +#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:56 +msgid "Machine Types" msgstr "" #: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:62 -msgid "There are no machine registry errors." +#~ msgid "There are no machine registry errors." +#~ msgstr "There are no machine registry errors." + +#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:64 +msgid "Machine Errors" msgstr "" -#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:28 -#: src/tables/settings/UserTable.tsx:119 +#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:77 +msgid "Registry Registry Errors" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:80 +msgid "There are machine registry errors" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:86 +msgid "Machine Registry Errors" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:89 +msgid "There are no machine registry errors" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:31 +#: src/tables/settings/UserTable.tsx:118 msgid "Info" -msgstr "" - -#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:32 -msgid "External plugins are not enabled for this InvenTree installation." -msgstr "" +msgstr "Info" #: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:33 #~ msgid "Plugin Error Stack" #~ msgstr "Plugin Error Stack" +#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:35 +msgid "External plugins are not enabled for this InvenTree installation." +msgstr "Välised pistikprogrammid ei ole selle InvenTree installatsiooni jaoks lubatud." + #: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:45 #~ msgid "Warning" #~ msgstr "Warning" @@ -3764,34 +4558,46 @@ msgstr "" #~ msgid "Changing the settings below require you to immediately restart the server. Do not change this while under active usage." #~ msgstr "Changing the settings below require you to immediately restart the server. Do not change this while under active usage." -#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:50 +#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:73 msgid "Plugin Errors" msgstr "" -#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:59 -msgid "Plugin Settings" +#: src/pages/Index/Settings/AdminCenter/ReportTemplatePanel.tsx:17 +msgid "Page Size" +msgstr "Lehe suurus" + +#: src/pages/Index/Settings/AdminCenter/ReportTemplatePanel.tsx:20 +msgid "Landscape" +msgstr "Horisontaalne" + +#: src/pages/Index/Settings/AdminCenter/ReportTemplatePanel.tsx:26 +msgid "Attach to Model" +msgstr "Lisa mudelile" + +#: src/pages/Index/Settings/AdminCenter/StocktakePanel.tsx:25 +msgid "Stocktake Reports" msgstr "" -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:53 -msgid "Background Worker Not Running" -msgstr "" - -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:54 +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:30 msgid "The background task manager service is not running. Contact your system administrator." -msgstr "" +msgstr "Taustal töötava ülesandehalduri teenus ei tööta. Võtke ühendust oma süsteemi administraatoriga." -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:60 -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:76 +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:35 +#~ msgid "Background Worker Not Running" +#~ msgstr "Background Worker Not Running" + +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:36 +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:45 msgid "Pending Tasks" msgstr "" -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:64 -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:84 +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:37 +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:53 msgid "Scheduled Tasks" msgstr "" -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:68 -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:92 +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:38 +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:61 msgid "Failed Tasks" msgstr "" @@ -3811,11 +4617,6 @@ msgstr "" #~ msgid "Reports" #~ msgstr "Reports" -#: src/pages/Index/Settings/AdminCenter/TemplateManagementPanel.tsx:89 -#: src/pages/build/BuildDetail.tsx:373 -#~ msgid "Report" -#~ msgstr "Report" - #: src/pages/Index/Settings/AdminCenter/TemplateManagementPanel.tsx:99 #~ msgid "Purchase order" #~ msgstr "Purchase order" @@ -3836,25 +4637,37 @@ msgstr "" #~ msgid "Stock location" #~ msgstr "Stock location" +#: src/pages/Index/Settings/AdminCenter/UnitManagmentPanel.tsx:21 +msgid "Alias" +msgstr "Alias" + +#: src/pages/Index/Settings/AdminCenter/UnitManagmentPanel.tsx:22 +msgid "Dimensionless" +msgstr "Mõõtmeteta" + +#: src/pages/Index/Settings/AdminCenter/UnitManagmentPanel.tsx:66 +msgid "All units" +msgstr "Kõik üksused" + #: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:32 msgid "Select settings relevant for user lifecycle. More available in" -msgstr "" +msgstr "Valige kasutaja elutsükliga seotud sätted. Rohkem saadaval" #: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:37 -msgid "System settings" -msgstr "" +#~ msgid "System settings" +#~ msgstr "System settings" -#: src/pages/Index/Settings/SystemSettings.tsx:67 +#: src/pages/Index/Settings/SystemSettings.tsx:66 msgid "Login" msgstr "Logi sisse" -#: src/pages/Index/Settings/SystemSettings.tsx:93 +#: src/pages/Index/Settings/SystemSettings.tsx:92 msgid "Barcodes" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:115 +#: src/pages/Index/Settings/SystemSettings.tsx:116 msgid "Pricing" -msgstr "" +msgstr "Hind" #: src/pages/Index/Settings/SystemSettings.tsx:118 #~ msgid "Physical Units" @@ -3864,64 +4677,46 @@ msgstr "" #~ msgid "Exchange Rates" #~ msgstr "Exchange Rates" -#: src/pages/Index/Settings/SystemSettings.tsx:150 +#: src/pages/Index/Settings/SystemSettings.tsx:151 msgid "Labels" -msgstr "" +msgstr "Sildid" -#: src/pages/Index/Settings/SystemSettings.tsx:156 -#: src/pages/Index/Settings/UserSettings.tsx:132 +#: src/pages/Index/Settings/SystemSettings.tsx:157 +#: src/pages/Index/Settings/UserSettings.tsx:133 msgid "Reporting" -msgstr "" +msgstr "Aruanded" #: src/pages/Index/Settings/SystemSettings.tsx:231 -#: src/pages/part/PartDetail.tsx:682 -msgid "Stocktake" -msgstr "" - -#: src/pages/Index/Settings/SystemSettings.tsx:237 -#: src/pages/build/BuildDetail.tsx:554 -#: src/pages/build/BuildIndex.tsx:22 -#: src/pages/part/PartDetail.tsx:616 -#: src/pages/sales/SalesOrderDetail.tsx:333 +#: src/pages/build/BuildIndex.tsx:27 +#: src/pages/part/PartDetail.tsx:636 +#: src/pages/sales/SalesOrderDetail.tsx:355 msgid "Build Orders" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:318 -msgid "Switch to User Setting" -msgstr "" +#: src/pages/Index/Settings/SystemSettings.tsx:317 +#~ msgid "Switch to User Setting" +#~ msgstr "Switch to User Setting" -#: src/pages/Index/Settings/UserSettings.tsx:34 +#: src/pages/Index/Settings/UserSettings.tsx:35 msgid "Account" -msgstr "" +msgstr "Konto" -#: src/pages/Index/Settings/UserSettings.tsx:40 +#: src/pages/Index/Settings/UserSettings.tsx:41 msgid "Security" -msgstr "" +msgstr "Turvalisus" -#: src/pages/Index/Settings/UserSettings.tsx:78 +#: src/pages/Index/Settings/UserSettings.tsx:79 msgid "Display Options" -msgstr "" +msgstr "Kuvamise valikud" -#: src/pages/Index/Settings/UserSettings.tsx:150 -msgid "Account Settings" -msgstr "" - -#: src/pages/Index/Settings/UserSettings.tsx:158 -msgid "Switch to System Setting" -msgstr "" - -#: src/pages/Index/UserSettings.tsx:103 -#~ msgid "User Settings" -#~ msgstr "User Settings" +#: src/pages/Index/Settings/UserSettings.tsx:159 +#~ msgid "Switch to System Setting" +#~ msgstr "Switch to System Setting" #: src/pages/Logged-In.tsx:24 #~ msgid "Found an exsisting login - using it to log you in." #~ msgstr "Found an exsisting login - using it to log you in." -#: src/pages/NotFound.tsx:17 -#~ msgid "Not Found" -#~ msgstr "Not Found" - #: src/pages/NotFound.tsx:20 #~ msgid "Sorry, this page is not known or was moved." #~ msgstr "Sorry, this page is not known or was moved." @@ -3932,114 +4727,96 @@ msgstr "" #: src/pages/Notifications.tsx:43 msgid "Delete Notifications" -msgstr "" +msgstr "Kustuta teavitused" #: src/pages/Notifications.tsx:108 msgid "Mark as unread" -msgstr "" +msgstr "Märgi mitteloetuks" #: src/pages/build/BuildDetail.tsx:80 #~ msgid "Build Status" #~ msgstr "Build Status" -#: src/pages/build/BuildDetail.tsx:102 -#: src/pages/part/PartDetail.tsx:150 +#: src/pages/build/BuildDetail.tsx:97 +#: src/pages/company/ManufacturerPartDetail.tsx:81 +#: src/pages/company/SupplierPartDetail.tsx:91 +#: src/pages/part/PartDetail.tsx:171 +#: src/pages/stock/StockDetail.tsx:122 #: src/tables/bom/BomTable.tsx:118 #: src/tables/bom/UsedInTable.tsx:39 -#: src/tables/build/BuildLineTable.tsx:173 -#: src/tables/build/BuildOrderTable.tsx:55 -#: src/tables/sales/SalesOrderLineItemTable.tsx:62 -#: src/tables/stock/StockItemTable.tsx:53 +#: src/tables/build/BuildAllocatedStockTable.tsx:104 +#: src/tables/build/BuildLineTable.tsx:324 +#: src/tables/build/BuildOrderTable.tsx:64 +#: src/tables/sales/SalesOrderLineItemTable.tsx:70 +#: src/tables/stock/StockItemTable.tsx:54 msgid "IPN" -msgstr "" +msgstr "IPN" -#: src/pages/build/BuildDetail.tsx:115 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:121 -#: src/pages/sales/ReturnOrderDetail.tsx:95 -#: src/pages/sales/SalesOrderDetail.tsx:101 -#: src/tables/ColumnRenderers.tsx:121 -#: src/tables/build/BuildAllocatedStockTable.tsx:90 -#: src/tables/build/BuildLineTable.tsx:184 +#: src/pages/build/BuildDetail.tsx:110 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:115 +#: src/pages/sales/ReturnOrderDetail.tsx:86 +#: src/pages/sales/SalesOrderDetail.tsx:95 +#: src/tables/ColumnRenderers.tsx:132 +#: src/tables/build/BuildAllocatedStockTable.tsx:111 +#: src/tables/build/BuildLineTable.tsx:335 msgid "Reference" -msgstr "" +msgstr "Viide" -#: src/pages/build/BuildDetail.tsx:121 -#: src/pages/company/CompanyDetail.tsx:90 -#: src/pages/company/ManufacturerPartDetail.tsx:83 -#: src/pages/company/SupplierPartDetail.tsx:96 -#: src/pages/part/CategoryDetail.tsx:101 -#: src/pages/part/PartDetail.tsx:157 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:142 -#: src/pages/sales/ReturnOrderDetail.tsx:115 -#: src/pages/sales/SalesOrderDetail.tsx:121 -#: src/pages/stock/LocationDetail.tsx:109 -#: src/tables/ColumnRenderers.tsx:81 -#: src/tables/bom/UsedInTable.tsx:44 -#: src/tables/build/BuildAllocatedStockTable.tsx:70 -#: src/tables/build/BuildLineTable.tsx:178 -#: src/tables/machine/MachineTypeTable.tsx:69 -#: src/tables/machine/MachineTypeTable.tsx:112 -#: src/tables/machine/MachineTypeTable.tsx:219 -#: src/tables/machine/MachineTypeTable.tsx:323 -#: src/tables/part/RelatedPartTable.tsx:64 -#: src/tables/plugin/PluginListTable.tsx:129 -#: src/tables/plugin/PluginListTable.tsx:276 -#: src/tables/sales/SalesOrderAllocationTable.tsx:56 -#: src/tables/sales/SalesOrderLineItemTable.tsx:67 -#: src/tables/stock/LocationTypesTable.tsx:74 -msgid "Description" -msgstr "Kirjeldus" - -#: src/pages/build/BuildDetail.tsx:129 +#: src/pages/build/BuildDetail.tsx:124 msgid "Parent Build" msgstr "" -#: src/pages/build/BuildDetail.tsx:140 +#: src/pages/build/BuildDetail.tsx:135 msgid "Build Quantity" msgstr "" -#: src/pages/build/BuildDetail.tsx:148 -#: src/pages/build/BuildDetail.tsx:274 +#: src/pages/build/BuildDetail.tsx:143 +#: src/pages/build/BuildDetail.tsx:277 msgid "Completed Outputs" msgstr "" -#: src/pages/build/BuildDetail.tsx:165 -#: src/tables/build/BuildOrderTable.tsx:151 +#: src/pages/build/BuildDetail.tsx:160 +#: src/tables/build/BuildOrderTable.tsx:142 msgid "Issued By" msgstr "" -#: src/pages/build/BuildDetail.tsx:172 -#: src/pages/part/PartDetail.tsx:365 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:220 -#: src/pages/sales/ReturnOrderDetail.tsx:199 -#: src/pages/sales/SalesOrderDetail.tsx:208 -#: src/tables/build/BuildOrderTable.tsx:157 -#: src/tables/purchasing/PurchaseOrderTable.tsx:75 -#: src/tables/sales/ReturnOrderTable.tsx:66 -#: src/tables/sales/SalesOrderTable.tsx:73 +#: src/pages/build/BuildDetail.tsx:167 +#: src/pages/part/PartDetail.tsx:406 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:244 +#: src/pages/sales/ReturnOrderDetail.tsx:216 +#: src/pages/sales/SalesOrderDetail.tsx:226 +#: src/tables/build/BuildOrderTable.tsx:148 +#: src/tables/purchasing/PurchaseOrderTable.tsx:76 +#: src/tables/sales/ReturnOrderTable.tsx:74 +#: src/tables/sales/SalesOrderTable.tsx:74 msgid "Responsible" msgstr "" -#: src/pages/build/BuildDetail.tsx:179 -#: src/tables/settings/PendingTasksTable.tsx:32 +#: src/pages/build/BuildDetail.tsx:174 +#: src/tables/settings/PendingTasksTable.tsx:36 msgid "Created" msgstr "" +#: src/pages/build/BuildDetail.tsx:181 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:229 +#: src/pages/sales/ReturnOrderDetail.tsx:201 +#: src/pages/sales/SalesOrderDetail.tsx:212 +#: src/tables/ColumnRenderers.tsx:226 +#: src/tables/part/PartPurchaseOrdersTable.tsx:100 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:135 +#: src/tables/sales/SalesOrderLineItemTable.tsx:107 +msgid "Target Date" +msgstr "" + #: src/pages/build/BuildDetail.tsx:185 #: src/pages/part/PartDetail.tsx:269 #: src/pages/stock/StockDetail.tsx:150 #~ msgid "View part barcode" #~ msgstr "View part barcode" -#: src/pages/build/BuildDetail.tsx:186 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:213 -#: src/pages/sales/ReturnOrderDetail.tsx:192 -#: src/pages/sales/SalesOrderDetail.tsx:201 -#: src/tables/ColumnRenderers.tsx:212 -#: src/tables/part/PartPurchaseOrdersTable.tsx:99 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:110 -#: src/tables/sales/SalesOrderLineItemTable.tsx:99 -msgid "Target Date" +#: src/pages/build/BuildDetail.tsx:188 +#: src/tables/sales/SalesOrderLineItemTable.tsx:281 +msgid "Completed" msgstr "" #: src/pages/build/BuildDetail.tsx:190 @@ -4047,10 +4824,6 @@ msgstr "" #~ msgid "Link custom barcode to part" #~ msgstr "Link custom barcode to part" -#: src/pages/build/BuildDetail.tsx:193 -msgid "Completed" -msgstr "" - #: src/pages/build/BuildDetail.tsx:196 #: src/pages/part/PartDetail.tsx:280 #~ msgid "Unlink custom barcode from part" @@ -4060,15 +4833,11 @@ msgstr "" #~ msgid "Build Order updated" #~ msgstr "Build Order updated" -#: src/pages/build/BuildDetail.tsx:205 -msgid "Source Location" -msgstr "" - -#: src/pages/build/BuildDetail.tsx:206 +#: src/pages/build/BuildDetail.tsx:209 msgid "Any location" msgstr "" -#: src/pages/build/BuildDetail.tsx:213 +#: src/pages/build/BuildDetail.tsx:216 msgid "Destination Location" msgstr "" @@ -4084,208 +4853,184 @@ msgstr "" #~ msgid "Delete build order" #~ msgstr "Delete build order" -#: src/pages/build/BuildDetail.tsx:251 +#: src/pages/build/BuildDetail.tsx:254 msgid "Build Details" msgstr "" -#: src/pages/build/BuildDetail.tsx:257 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:258 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:267 -#: src/pages/sales/ReturnOrderDetail.tsx:130 -#: src/pages/sales/ReturnOrderDetail.tsx:237 -#: src/pages/sales/ReturnOrderDetail.tsx:246 -#: src/pages/sales/SalesOrderDetail.tsx:272 -#: src/pages/sales/SalesOrderDetail.tsx:281 +#: src/pages/build/BuildDetail.tsx:260 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:282 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:291 +#: src/pages/sales/ReturnOrderDetail.tsx:122 +#: src/pages/sales/ReturnOrderDetail.tsx:254 +#: src/pages/sales/ReturnOrderDetail.tsx:263 +#: src/pages/sales/SalesOrderDetail.tsx:294 +#: src/pages/sales/SalesOrderDetail.tsx:303 msgid "Line Items" msgstr "" -#: src/pages/build/BuildDetail.tsx:267 +#: src/pages/build/BuildDetail.tsx:266 msgid "Incomplete Outputs" msgstr "" -#: src/pages/build/BuildDetail.tsx:289 -#: src/pages/sales/SalesOrderDetail.tsx:319 +#: src/pages/build/BuildDetail.tsx:292 +#: src/pages/sales/SalesOrderDetail.tsx:341 msgid "Allocated Stock" msgstr "" -#: src/pages/build/BuildDetail.tsx:299 +#: src/pages/build/BuildDetail.tsx:302 msgid "Consumed Stock" msgstr "" -#: src/pages/build/BuildDetail.tsx:313 +#: src/pages/build/BuildDetail.tsx:316 msgid "Child Build Orders" msgstr "" #: src/pages/build/BuildDetail.tsx:326 -#: src/tables/build/BuildOutputTable.tsx:384 -#: src/tables/stock/StockItemTestResultTable.tsx:150 +#: src/tables/build/BuildOutputTable.tsx:532 +#: src/tables/stock/StockItemTestResultTable.tsx:156 msgid "Test Results" msgstr "" #: src/pages/build/BuildDetail.tsx:337 -#: src/pages/part/PartDetail.tsx:699 +#: src/pages/part/PartDetail.tsx:740 msgid "Test Statistics" msgstr "" -#: src/pages/build/BuildDetail.tsx:351 -#: src/pages/company/CompanyDetail.tsx:259 -#: src/pages/company/ManufacturerPartDetail.tsx:179 -#: src/pages/part/PartDetail.tsx:721 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:309 -#: src/pages/sales/ReturnOrderDetail.tsx:274 -#: src/pages/sales/SalesOrderDetail.tsx:343 -#: src/pages/stock/StockDetail.tsx:385 -msgid "Attachments" -msgstr "" - -#: src/pages/build/BuildDetail.tsx:359 -#: src/pages/company/CompanyDetail.tsx:270 -#: src/pages/company/ManufacturerPartDetail.tsx:190 -#: src/pages/company/SupplierPartDetail.tsx:257 -#: src/pages/part/PartDetail.tsx:729 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:320 -#: src/pages/sales/ReturnOrderDetail.tsx:285 -#: src/pages/sales/SalesOrderDetail.tsx:354 -#: src/pages/stock/StockDetail.tsx:396 -#: src/tables/build/BuildOrderTestTable.tsx:142 -#: src/tables/stock/StockTrackingTable.tsx:189 -msgid "Notes" +#: src/pages/build/BuildDetail.tsx:365 +msgid "Edit Build Order" msgstr "" #: src/pages/build/BuildDetail.tsx:368 #~ msgid "Reporting Actions" #~ msgstr "Reporting Actions" +#: src/pages/build/BuildDetail.tsx:372 +#: src/tables/build/BuildOrderTable.tsx:173 +#: src/tables/build/BuildOrderTable.tsx:188 +msgid "Add Build Order" +msgstr "" + #: src/pages/build/BuildDetail.tsx:374 #~ msgid "Print build report" #~ msgstr "Print build report" -#: src/pages/build/BuildDetail.tsx:377 -msgid "Edit Build Order" -msgstr "" - -#: src/pages/build/BuildDetail.tsx:384 -#: src/tables/build/BuildOrderTable.tsx:172 -#: src/tables/build/BuildOrderTable.tsx:187 -msgid "Add Build Order" -msgstr "" - -#: src/pages/build/BuildDetail.tsx:398 +#: src/pages/build/BuildDetail.tsx:386 msgid "Cancel Build Order" msgstr "" -#: src/pages/build/BuildDetail.tsx:400 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:348 -#: src/pages/sales/SalesOrderDetail.tsx:380 +#: src/pages/build/BuildDetail.tsx:388 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:357 +#: src/pages/sales/ReturnOrderDetail.tsx:354 +#: src/pages/sales/SalesOrderDetail.tsx:387 msgid "Order cancelled" msgstr "" -#: src/pages/build/BuildDetail.tsx:401 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:347 -#: src/pages/sales/ReturnOrderDetail.tsx:346 -#: src/pages/sales/SalesOrderDetail.tsx:379 +#: src/pages/build/BuildDetail.tsx:389 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:356 +#: src/pages/sales/ReturnOrderDetail.tsx:353 +#: src/pages/sales/SalesOrderDetail.tsx:386 msgid "Cancel this order" -msgstr "" +msgstr "Tühista see tellimus" -#: src/pages/build/BuildDetail.tsx:410 +#: src/pages/build/BuildDetail.tsx:398 msgid "Hold Build Order" msgstr "" -#: src/pages/build/BuildDetail.tsx:412 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:355 -#: src/pages/sales/ReturnOrderDetail.tsx:354 -#: src/pages/sales/SalesOrderDetail.tsx:387 +#: src/pages/build/BuildDetail.tsx:400 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:364 +#: src/pages/sales/ReturnOrderDetail.tsx:361 +#: src/pages/sales/SalesOrderDetail.tsx:394 msgid "Place this order on hold" msgstr "" -#: src/pages/build/BuildDetail.tsx:413 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:356 -#: src/pages/sales/ReturnOrderDetail.tsx:355 -#: src/pages/sales/SalesOrderDetail.tsx:388 +#: src/pages/build/BuildDetail.tsx:401 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:365 +#: src/pages/sales/ReturnOrderDetail.tsx:362 +#: src/pages/sales/SalesOrderDetail.tsx:395 msgid "Order placed on hold" msgstr "" -#: src/pages/build/BuildDetail.tsx:418 +#: src/pages/build/BuildDetail.tsx:406 msgid "Issue Build Order" msgstr "" -#: src/pages/build/BuildDetail.tsx:420 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:339 -#: src/pages/sales/ReturnOrderDetail.tsx:338 -#: src/pages/sales/SalesOrderDetail.tsx:371 +#: src/pages/build/BuildDetail.tsx:408 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:348 +#: src/pages/sales/ReturnOrderDetail.tsx:345 +#: src/pages/sales/SalesOrderDetail.tsx:378 msgid "Issue this order" msgstr "" -#: src/pages/build/BuildDetail.tsx:421 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:340 -#: src/pages/sales/ReturnOrderDetail.tsx:339 -#: src/pages/sales/SalesOrderDetail.tsx:372 +#: src/pages/build/BuildDetail.tsx:409 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:349 +#: src/pages/sales/ReturnOrderDetail.tsx:346 +#: src/pages/sales/SalesOrderDetail.tsx:379 msgid "Order issued" msgstr "" -#: src/pages/build/BuildDetail.tsx:426 +#: src/pages/build/BuildDetail.tsx:414 msgid "Complete Build Order" msgstr "" -#: src/pages/build/BuildDetail.tsx:428 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:368 -#: src/pages/sales/ReturnOrderDetail.tsx:362 -#: src/pages/sales/SalesOrderDetail.tsx:395 +#: src/pages/build/BuildDetail.tsx:416 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:377 +#: src/pages/sales/ReturnOrderDetail.tsx:369 +#: src/pages/sales/SalesOrderDetail.tsx:402 msgid "Mark this order as complete" -msgstr "" +msgstr "Märgi see tellimus lõpetatuks" -#: src/pages/build/BuildDetail.tsx:429 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:362 -#: src/pages/sales/ReturnOrderDetail.tsx:363 -#: src/pages/sales/SalesOrderDetail.tsx:396 +#: src/pages/build/BuildDetail.tsx:417 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:371 +#: src/pages/sales/ReturnOrderDetail.tsx:370 +#: src/pages/sales/SalesOrderDetail.tsx:403 msgid "Order completed" msgstr "" -#: src/pages/build/BuildDetail.tsx:460 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:391 -#: src/pages/sales/ReturnOrderDetail.tsx:392 -#: src/pages/sales/SalesOrderDetail.tsx:425 +#: src/pages/build/BuildDetail.tsx:448 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:400 +#: src/pages/sales/ReturnOrderDetail.tsx:399 +#: src/pages/sales/SalesOrderDetail.tsx:432 msgid "Issue Order" msgstr "" -#: src/pages/build/BuildDetail.tsx:467 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:398 -#: src/pages/sales/ReturnOrderDetail.tsx:399 -#: src/pages/sales/SalesOrderDetail.tsx:439 +#: src/pages/build/BuildDetail.tsx:455 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:407 +#: src/pages/sales/ReturnOrderDetail.tsx:406 +#: src/pages/sales/SalesOrderDetail.tsx:446 msgid "Complete Order" msgstr "" -#: src/pages/build/BuildDetail.tsx:496 +#: src/pages/build/BuildDetail.tsx:473 msgid "Build Order Actions" msgstr "" -#: src/pages/build/BuildDetail.tsx:502 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:432 -#: src/pages/sales/ReturnOrderDetail.tsx:433 -#: src/pages/sales/SalesOrderDetail.tsx:474 +#: src/pages/build/BuildDetail.tsx:478 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:429 +#: src/pages/sales/ReturnOrderDetail.tsx:428 +#: src/pages/sales/SalesOrderDetail.tsx:469 msgid "Edit order" -msgstr "" +msgstr "Muuda tellimust" -#: src/pages/build/BuildDetail.tsx:506 +#: src/pages/build/BuildDetail.tsx:482 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:437 +#: src/pages/sales/ReturnOrderDetail.tsx:434 +#: src/pages/sales/SalesOrderDetail.tsx:474 +msgid "Duplicate order" +msgstr "Tee tellimusest koopia" + +#: src/pages/build/BuildDetail.tsx:486 #: src/pages/purchasing/PurchaseOrderDetail.tsx:440 #: src/pages/sales/ReturnOrderDetail.tsx:439 -#: src/pages/sales/SalesOrderDetail.tsx:479 -msgid "Duplicate order" -msgstr "" - -#: src/pages/build/BuildDetail.tsx:510 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:443 -#: src/pages/sales/ReturnOrderDetail.tsx:444 -#: src/pages/sales/SalesOrderDetail.tsx:482 +#: src/pages/sales/SalesOrderDetail.tsx:477 msgid "Hold order" msgstr "" -#: src/pages/build/BuildDetail.tsx:515 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:448 -#: src/pages/sales/ReturnOrderDetail.tsx:449 -#: src/pages/sales/SalesOrderDetail.tsx:487 +#: src/pages/build/BuildDetail.tsx:491 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:445 +#: src/pages/sales/ReturnOrderDetail.tsx:444 +#: src/pages/sales/SalesOrderDetail.tsx:482 msgid "Cancel order" -msgstr "" +msgstr "Tühista tellimus" #: src/pages/build/BuildIndex.tsx:23 #~ msgid "Build order created" @@ -4295,57 +5040,61 @@ msgstr "" #~ msgid "New Build Order" #~ msgstr "New Build Order" -#: src/pages/company/CompanyDetail.tsx:104 +#: src/pages/company/CompanyDetail.tsx:95 +msgid "Website" +msgstr "Veebileht" + +#: src/pages/company/CompanyDetail.tsx:103 msgid "Phone Number" -msgstr "" +msgstr "Telefoninumber" -#: src/pages/company/CompanyDetail.tsx:111 +#: src/pages/company/CompanyDetail.tsx:110 msgid "Email Address" -msgstr "" +msgstr "E-posti aadress" -#: src/pages/company/CompanyDetail.tsx:121 +#: src/pages/company/CompanyDetail.tsx:120 msgid "Default Currency" -msgstr "" +msgstr "Vaikimisi valuuta" -#: src/pages/company/CompanyDetail.tsx:126 +#: src/pages/company/CompanyDetail.tsx:125 #: src/pages/company/SupplierDetail.tsx:8 -#: src/pages/company/SupplierPartDetail.tsx:120 -#: src/pages/company/SupplierPartDetail.tsx:206 -#: src/pages/company/SupplierPartDetail.tsx:351 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:136 -#: src/tables/company/CompanyTable.tsx:100 +#: src/pages/company/SupplierPartDetail.tsx:125 +#: src/pages/company/SupplierPartDetail.tsx:218 +#: src/pages/company/SupplierPartDetail.tsx:340 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:130 +#: src/tables/company/CompanyTable.tsx:101 #: src/tables/part/PartPurchaseOrdersTable.tsx:42 -#: src/tables/purchasing/PurchaseOrderTable.tsx:88 +#: src/tables/purchasing/PurchaseOrderTable.tsx:89 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:36 msgid "Supplier" -msgstr "" +msgstr "Tarnija" -#: src/pages/company/CompanyDetail.tsx:132 +#: src/pages/company/CompanyDetail.tsx:131 #: src/pages/company/ManufacturerDetail.tsx:8 -#: src/pages/company/ManufacturerPartDetail.tsx:101 -#: src/pages/company/ManufacturerPartDetail.tsx:267 -#: src/pages/company/SupplierPartDetail.tsx:135 -#: src/tables/company/CompanyTable.tsx:105 +#: src/pages/company/ManufacturerPartDetail.tsx:100 +#: src/pages/company/ManufacturerPartDetail.tsx:262 +#: src/pages/company/SupplierPartDetail.tsx:147 +#: src/tables/company/CompanyTable.tsx:106 msgid "Manufacturer" -msgstr "" +msgstr "Tootja" -#: src/pages/company/CompanyDetail.tsx:138 +#: src/pages/company/CompanyDetail.tsx:137 #: src/pages/company/CustomerDetail.tsx:8 -#: src/pages/part/pricing/SaleHistoryPanel.tsx:29 -#: src/pages/sales/ReturnOrderDetail.tsx:109 -#: src/pages/sales/SalesOrderDetail.tsx:115 -#: src/pages/stock/StockDetail.tsx:230 -#: src/tables/company/CompanyTable.tsx:110 -#: src/tables/sales/ReturnOrderTable.tsx:78 -#: src/tables/sales/SalesOrderTable.tsx:108 -#: src/tables/stock/StockTrackingTable.tsx:140 +#: src/pages/part/pricing/SaleHistoryPanel.tsx:31 +#: src/pages/sales/ReturnOrderDetail.tsx:101 +#: src/pages/sales/SalesOrderDetail.tsx:110 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:100 +#: src/pages/stock/StockDetail.tsx:271 +#: src/tables/company/CompanyTable.tsx:111 +#: src/tables/sales/ReturnOrderTable.tsx:97 +#: src/tables/sales/SalesOrderTable.tsx:121 +#: src/tables/stock/StockTrackingTable.tsx:144 msgid "Customer" -msgstr "" +msgstr "Klient" #: src/pages/company/CompanyDetail.tsx:172 -#: src/tables/stock/StockTrackingTable.tsx:183 -msgid "Details" -msgstr "Üksikasjad" +msgid "Company Details" +msgstr "" #: src/pages/company/CompanyDetail.tsx:175 #~ msgid "Edit company" @@ -4363,498 +5112,508 @@ msgstr "" #~ msgid "Delete company" #~ msgstr "Delete company" -#: src/pages/company/CompanyDetail.tsx:232 +#: src/pages/company/CompanyDetail.tsx:234 msgid "Assigned Stock" msgstr "" -#: src/pages/company/CompanyDetail.tsx:290 -#: src/tables/company/CompanyTable.tsx:86 +#: src/pages/company/CompanyDetail.tsx:273 +#: src/tables/company/CompanyTable.tsx:87 msgid "Edit Company" -msgstr "" +msgstr "Muuda ettevõtet" -#: src/pages/company/CompanyDetail.tsx:298 +#: src/pages/company/CompanyDetail.tsx:281 msgid "Delete Company" -msgstr "" +msgstr "Kustuta ettevõte" -#: src/pages/company/CompanyDetail.tsx:306 +#: src/pages/company/CompanyDetail.tsx:289 msgid "Company Actions" -msgstr "" +msgstr "Ettevõtte toimingud" -#: src/pages/company/ManufacturerPartDetail.tsx:76 -#: src/pages/company/SupplierPartDetail.tsx:89 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:128 +#: src/pages/company/ManufacturerPartDetail.tsx:74 +#: src/pages/company/SupplierPartDetail.tsx:84 msgid "Internal Part" -msgstr "" +msgstr "Sisemine osa" -#: src/pages/company/ManufacturerPartDetail.tsx:91 -#: src/pages/company/SupplierPartDetail.tsx:103 -msgid "External Link" -msgstr "" - -#: src/pages/company/ManufacturerPartDetail.tsx:109 -#: src/pages/company/SupplierPartDetail.tsx:144 -#: src/tables/purchasing/ManufacturerPartTable.tsx:56 +#: src/pages/company/ManufacturerPartDetail.tsx:108 +#: src/pages/company/SupplierPartDetail.tsx:156 +#: src/tables/purchasing/ManufacturerPartTable.tsx:58 msgid "Manufacturer Part Number" +msgstr "Tootja osa number" + +#: src/pages/company/ManufacturerPartDetail.tsx:125 +#: src/pages/company/SupplierPartDetail.tsx:108 +msgid "External Link" +msgstr "Väline link" + +#: src/pages/company/ManufacturerPartDetail.tsx:146 +#: src/pages/company/SupplierPartDetail.tsx:215 +#: src/pages/part/PartDetail.tsx:576 +msgid "Part Details" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:138 +#: src/pages/company/ManufacturerPartDetail.tsx:149 msgid "Manufacturer Details" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:147 +#: src/pages/company/ManufacturerPartDetail.tsx:158 msgid "Manufacturer Part Details" -msgstr "" +msgstr "Tootja osa üksikasjad" -#: src/pages/company/ManufacturerPartDetail.tsx:153 -#: src/pages/part/PartDetail.tsx:532 +#: src/pages/company/ManufacturerPartDetail.tsx:164 +#: src/pages/part/PartDetail.tsx:582 msgid "Parameters" -msgstr "" +msgstr "Parameetrid" -#: src/pages/company/ManufacturerPartDetail.tsx:165 -#: src/pages/part/PartDetail.tsx:649 +#: src/pages/company/ManufacturerPartDetail.tsx:176 +#: src/pages/part/PartDetail.tsx:669 #: src/pages/purchasing/PurchasingIndex.tsx:31 msgid "Suppliers" -msgstr "" +msgstr "Tarnijaid" -#: src/pages/company/ManufacturerPartDetail.tsx:208 -#: src/tables/purchasing/ManufacturerPartTable.tsx:84 +#: src/pages/company/ManufacturerPartDetail.tsx:204 +#: src/tables/purchasing/ManufacturerPartTable.tsx:86 msgid "Edit Manufacturer Part" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:215 -#: src/tables/purchasing/ManufacturerPartTable.tsx:72 -#: src/tables/purchasing/ManufacturerPartTable.tsx:103 +#: src/pages/company/ManufacturerPartDetail.tsx:211 +#: src/tables/purchasing/ManufacturerPartTable.tsx:74 +#: src/tables/purchasing/ManufacturerPartTable.tsx:106 msgid "Add Manufacturer Part" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:227 -#: src/tables/purchasing/ManufacturerPartTable.tsx:92 +#: src/pages/company/ManufacturerPartDetail.tsx:223 +#: src/tables/purchasing/ManufacturerPartTable.tsx:94 msgid "Delete Manufacturer Part" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:240 +#: src/pages/company/ManufacturerPartDetail.tsx:236 msgid "Manufacturer Part Actions" -msgstr "" +msgstr "Tootjaosade tegevused" -#: src/pages/company/ManufacturerPartDetail.tsx:281 +#: src/pages/company/ManufacturerPartDetail.tsx:276 msgid "ManufacturerPart" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:163 -#: src/tables/part/PartPurchaseOrdersTable.tsx:71 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:156 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:197 -#: src/tables/purchasing/SupplierPartTable.tsx:131 -msgid "Pack Quantity" +#: src/pages/company/SupplierPartDetail.tsx:99 +msgid "Part Description" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:174 +#: src/pages/company/SupplierPartDetail.tsx:175 +#: src/tables/part/PartPurchaseOrdersTable.tsx:72 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:162 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:203 +#: src/tables/purchasing/SupplierPartTable.tsx:133 +msgid "Pack Quantity" +msgstr "Kogus pakis" + +#: src/pages/company/SupplierPartDetail.tsx:186 msgid "Supplier Availability" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:181 +#: src/pages/company/SupplierPartDetail.tsx:193 msgid "Availability Updated" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:208 +#: src/pages/company/SupplierPartDetail.tsx:220 msgid "Availability" -msgstr "" +msgstr "Saadavus" -#: src/pages/company/SupplierPartDetail.tsx:217 +#: src/pages/company/SupplierPartDetail.tsx:229 msgid "Supplier Part Details" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:223 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:296 +#: src/pages/company/SupplierPartDetail.tsx:235 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:320 msgid "Received Stock" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:247 -#: src/pages/part/PartPricingPanel.tsx:111 -#: src/pages/part/pricing/PricingOverviewPanel.tsx:121 +#: src/pages/company/SupplierPartDetail.tsx:259 +#: src/pages/part/PartPricingPanel.tsx:116 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:195 msgid "Supplier Pricing" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:294 +#: src/pages/company/SupplierPartDetail.tsx:284 msgid "Supplier Part Actions" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:319 -#: src/tables/purchasing/SupplierPartTable.tsx:210 +#: src/pages/company/SupplierPartDetail.tsx:308 +#: src/tables/purchasing/SupplierPartTable.tsx:213 msgid "Edit Supplier Part" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:327 -#: src/tables/purchasing/SupplierPartTable.tsx:218 +#: src/pages/company/SupplierPartDetail.tsx:316 +#: src/tables/purchasing/SupplierPartTable.tsx:221 msgid "Delete Supplier Part" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:335 -#: src/tables/purchasing/SupplierPartTable.tsx:163 +#: src/pages/company/SupplierPartDetail.tsx:324 +#: src/tables/purchasing/SupplierPartTable.tsx:165 msgid "Add Supplier Part" msgstr "" #: src/pages/part/CategoryDetail.tsx:93 -#: src/pages/stock/LocationDetail.tsx:101 -#: src/tables/settings/ErrorTable.tsx:36 +#: src/pages/stock/LocationDetail.tsx:95 +#: src/tables/settings/ErrorTable.tsx:63 +#: src/tables/settings/ErrorTable.tsx:108 msgid "Path" msgstr "" #: src/pages/part/CategoryDetail.tsx:109 msgid "Parent Category" -msgstr "" +msgstr "Ülemkategooria" -#: src/pages/part/CategoryDetail.tsx:126 +#: src/pages/part/CategoryDetail.tsx:132 msgid "Subcategories" -msgstr "" +msgstr "Alamkategooriad" -#: src/pages/part/CategoryDetail.tsx:133 -#: src/pages/stock/LocationDetail.tsx:141 -#: src/tables/part/PartCategoryTable.tsx:73 +#: src/pages/part/CategoryDetail.tsx:139 +#: src/pages/stock/LocationDetail.tsx:135 +#: src/tables/part/PartCategoryTable.tsx:85 #: src/tables/stock/StockLocationTable.tsx:49 msgid "Structural" msgstr "" -#: src/pages/part/CategoryDetail.tsx:139 +#: src/pages/part/CategoryDetail.tsx:145 msgid "Parent default location" -msgstr "" +msgstr "Vanemaluse vaikimisi asukoht" -#: src/pages/part/CategoryDetail.tsx:146 +#: src/pages/part/CategoryDetail.tsx:152 msgid "Default location" -msgstr "" +msgstr "Vaikimisi asukoht" -#: src/pages/part/CategoryDetail.tsx:157 +#: src/pages/part/CategoryDetail.tsx:163 msgid "Top level part category" -msgstr "" +msgstr "Ülemine osakategooria" -#: src/pages/part/CategoryDetail.tsx:167 -#: src/pages/part/CategoryDetail.tsx:221 -#: src/tables/part/PartCategoryTable.tsx:102 +#: src/pages/part/CategoryDetail.tsx:173 +#: src/pages/part/CategoryDetail.tsx:226 +#: src/tables/part/PartCategoryTable.tsx:118 msgid "Edit Part Category" -msgstr "" +msgstr "Muuda osa kategooriat" -#: src/pages/part/CategoryDetail.tsx:180 -#: src/pages/stock/LocationDetail.tsx:233 +#: src/pages/part/CategoryDetail.tsx:186 +#: src/pages/stock/LocationDetail.tsx:227 msgid "Delete items" msgstr "" -#: src/pages/part/CategoryDetail.tsx:188 -#: src/pages/part/CategoryDetail.tsx:226 +#: src/pages/part/CategoryDetail.tsx:194 +#: src/pages/part/CategoryDetail.tsx:231 msgid "Delete Part Category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:191 +#: src/pages/part/CategoryDetail.tsx:197 msgid "Parts Action" msgstr "" -#: src/pages/part/CategoryDetail.tsx:192 -msgid "Action for parts in this category" -msgstr "" - -#: src/pages/part/CategoryDetail.tsx:197 -msgid "Child Categories Action" -msgstr "" - #: src/pages/part/CategoryDetail.tsx:198 -msgid "Action for child categories in this category" -msgstr "" +msgid "Action for parts in this category" +msgstr "Tegevus osade jaoks selles kategoorias" -#: src/pages/part/CategoryDetail.tsx:216 +#: src/pages/part/CategoryDetail.tsx:203 +msgid "Child Categories Action" +msgstr "Alamkategooriate tegevus" + +#: src/pages/part/CategoryDetail.tsx:204 +msgid "Action for child categories in this category" +msgstr "Tegevus selle kategooria alamkategooriate jaoks" + +#: src/pages/part/CategoryDetail.tsx:222 msgid "Category Actions" msgstr "" -#: src/pages/part/CategoryDetail.tsx:238 +#: src/pages/part/CategoryDetail.tsx:243 msgid "Category Details" msgstr "" -#: src/pages/part/PartDetail.tsx:163 +#: src/pages/part/PartAllocationPanel.tsx:23 +#: src/pages/stock/StockDetail.tsx:443 +#: src/tables/part/PartTable.tsx:99 +msgid "Build Order Allocations" +msgstr "Tellimuse koostamise eraldised" + +#: src/pages/part/PartAllocationPanel.tsx:40 +#: src/pages/stock/StockDetail.tsx:458 +#: src/tables/part/PartTable.tsx:108 +msgid "Sales Order Allocations" +msgstr "Müügitellimuste eraldamine" + +#: src/pages/part/PartDetail.tsx:184 msgid "Variant of" msgstr "" -#: src/pages/part/PartDetail.tsx:170 +#: src/pages/part/PartDetail.tsx:191 msgid "Revision of" msgstr "" -#: src/pages/part/PartDetail.tsx:177 -#: src/tables/stock/StockItemTable.tsx:58 +#: src/pages/part/PartDetail.tsx:198 +#: src/tables/stock/StockItemTable.tsx:59 msgid "Revision" msgstr "" -#: src/pages/part/PartDetail.tsx:184 +#: src/pages/part/PartDetail.tsx:205 #: src/tables/notifications/NotificationsTable.tsx:31 #: src/tables/part/PartCategoryTemplateTable.tsx:67 msgid "Category" -msgstr "" +msgstr "Kategooria" -#: src/pages/part/PartDetail.tsx:190 +#: src/pages/part/PartDetail.tsx:211 msgid "Default Location" msgstr "" -#: src/pages/part/PartDetail.tsx:197 +#: src/pages/part/PartDetail.tsx:218 msgid "Category Default Location" -msgstr "" +msgstr "Kategooria vaikimisi asukoht" -#: src/pages/part/PartDetail.tsx:204 +#: src/pages/part/PartDetail.tsx:225 #: src/tables/purchasing/ManufacturerPartParameterTable.tsx:44 msgid "Units" msgstr "" -#: src/pages/part/PartDetail.tsx:211 -#: src/tables/settings/PendingTasksTable.tsx:42 +#: src/pages/part/PartDetail.tsx:232 +#: src/tables/settings/PendingTasksTable.tsx:46 msgid "Keywords" -msgstr "" - -#: src/pages/part/PartDetail.tsx:218 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:186 -#: src/pages/sales/ReturnOrderDetail.tsx:165 -#: src/pages/sales/SalesOrderDetail.tsx:174 -msgid "Link" -msgstr "" - -#: src/pages/part/PartDetail.tsx:236 -#: src/tables/bom/BomTable.tsx:320 -#: src/tables/build/BuildLineTable.tsx:155 -#: src/tables/part/PartTable.tsx:288 -#: src/tables/sales/SalesOrderLineItemTable.tsx:103 -msgid "Available Stock" -msgstr "" - -#: src/pages/part/PartDetail.tsx:243 -msgid "Variant Stock" -msgstr "" - -#: src/pages/part/PartDetail.tsx:251 -msgid "Minimum Stock" -msgstr "" +msgstr "Märksõnad" #: src/pages/part/PartDetail.tsx:257 +#: src/tables/bom/BomTable.tsx:320 +#: src/tables/build/BuildLineTable.tsx:286 +#: src/tables/part/PartTable.tsx:288 +#: src/tables/sales/SalesOrderLineItemTable.tsx:111 +msgid "Available Stock" +msgstr "Saadaval laos" + +#: src/pages/part/PartDetail.tsx:264 +msgid "Variant Stock" +msgstr "Variandi laoseis" + +#: src/pages/part/PartDetail.tsx:272 +msgid "Minimum Stock" +msgstr "Minimaalne laoseis" + +#: src/pages/part/PartDetail.tsx:278 #: src/tables/bom/BomTable.tsx:237 -#: src/tables/build/BuildLineTable.tsx:117 -#: src/tables/sales/SalesOrderLineItemTable.tsx:141 +#: src/tables/build/BuildLineTable.tsx:248 +#: src/tables/sales/SalesOrderLineItemTable.tsx:149 msgid "On order" +msgstr "Tellimisel" + +#: src/pages/part/PartDetail.tsx:285 +msgid "Required for Orders" msgstr "" -#: src/pages/part/PartDetail.tsx:266 +#: src/pages/part/PartDetail.tsx:294 msgid "Allocated to Build Orders" -msgstr "" +msgstr "Ehitusettevõtetele eraldatud" -#: src/pages/part/PartDetail.tsx:274 +#: src/pages/part/PartDetail.tsx:305 msgid "Allocated to Sales Orders" -msgstr "" - -#: src/pages/part/PartDetail.tsx:281 -#: src/tables/bom/BomTable.tsx:261 -#: src/tables/bom/BomTable.tsx:293 -msgid "Can Build" -msgstr "" - -#: src/pages/part/PartDetail.tsx:288 -#: src/tables/bom/BomTable.tsx:245 -#: src/tables/part/PartTable.tsx:92 -msgid "Building" -msgstr "" - -#: src/pages/part/PartDetail.tsx:302 -#: src/pages/part/PartDetail.tsx:873 -#: src/tables/part/ParametricPartTable.tsx:228 -#: src/tables/part/PartTable.tsx:184 -msgid "Locked" -msgstr "" - -#: src/pages/part/PartDetail.tsx:308 -msgid "Template Part" -msgstr "" +msgstr "Määratud müügitellimustele" #: src/pages/part/PartDetail.tsx:310 #~ msgid "Edit part" #~ msgstr "Edit part" -#: src/pages/part/PartDetail.tsx:313 -#: src/tables/bom/BomTable.tsx:315 -msgid "Assembled Part" +#: src/pages/part/PartDetail.tsx:315 +#: src/tables/bom/BomTable.tsx:261 +#: src/tables/bom/BomTable.tsx:293 +msgid "Can Build" msgstr "" -#: src/pages/part/PartDetail.tsx:318 -msgid "Component Part" +#: src/pages/part/PartDetail.tsx:322 +#: src/pages/part/PartDetail.tsx:905 +#: src/pages/stock/StockDetail.tsx:766 +#: src/tables/build/BuildOrderTestTable.tsx:220 +#: src/tables/stock/StockItemTable.tsx:334 +msgid "In Production" msgstr "" #: src/pages/part/PartDetail.tsx:322 #~ msgid "Duplicate part" #~ msgstr "Duplicate part" -#: src/pages/part/PartDetail.tsx:323 -#: src/tables/bom/BomTable.tsx:305 -msgid "Testable Part" -msgstr "" - #: src/pages/part/PartDetail.tsx:327 #~ msgid "Delete part" #~ msgstr "Delete part" -#: src/pages/part/PartDetail.tsx:329 +#: src/pages/part/PartDetail.tsx:336 +#: src/tables/part/ParametricPartTable.tsx:228 +#: src/tables/part/PartTable.tsx:184 +msgid "Locked" +msgstr "" + +#: src/pages/part/PartDetail.tsx:342 +msgid "Template Part" +msgstr "" + +#: src/pages/part/PartDetail.tsx:347 +#: src/tables/bom/BomTable.tsx:315 +msgid "Assembled Part" +msgstr "" + +#: src/pages/part/PartDetail.tsx:352 +msgid "Component Part" +msgstr "" + +#: src/pages/part/PartDetail.tsx:357 +#: src/tables/bom/BomTable.tsx:305 +msgid "Testable Part" +msgstr "" + +#: src/pages/part/PartDetail.tsx:363 #: src/tables/bom/BomTable.tsx:310 msgid "Trackable Part" msgstr "" -#: src/pages/part/PartDetail.tsx:334 +#: src/pages/part/PartDetail.tsx:368 msgid "Purchaseable Part" msgstr "" -#: src/pages/part/PartDetail.tsx:339 +#: src/pages/part/PartDetail.tsx:374 msgid "Saleable Part" msgstr "" -#: src/pages/part/PartDetail.tsx:344 +#: src/pages/part/PartDetail.tsx:379 msgid "Virtual Part" msgstr "" -#: src/pages/part/PartDetail.tsx:352 -#: src/tables/ColumnRenderers.tsx:220 +#: src/pages/part/PartDetail.tsx:393 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:215 +#: src/pages/sales/ReturnOrderDetail.tsx:185 +#: src/pages/sales/SalesOrderDetail.tsx:197 +#: src/tables/ColumnRenderers.tsx:234 msgid "Creation Date" msgstr "" -#: src/pages/part/PartDetail.tsx:357 +#: src/pages/part/PartDetail.tsx:398 msgid "Created By" msgstr "" -#: src/pages/part/PartDetail.tsx:372 +#: src/pages/part/PartDetail.tsx:413 msgid "Default Supplier" -msgstr "" +msgstr "Vaiketarnija" -#: src/pages/part/PartDetail.tsx:383 -#: src/pages/part/pricing/BomPricingPanel.tsx:79 +#: src/pages/part/PartDetail.tsx:424 +#: src/pages/part/pricing/BomPricingPanel.tsx:113 #: src/pages/part/pricing/VariantPricingPanel.tsx:95 #: src/tables/part/PartTable.tsx:161 msgid "Price Range" +msgstr "Hinnavahemik" + +#: src/pages/part/PartDetail.tsx:462 +msgid "Latest Serial Number" msgstr "" -#: src/pages/part/PartDetail.tsx:423 -#: src/pages/stock/StockDetail.tsx:135 +#: src/pages/part/PartDetail.tsx:472 +#: src/pages/stock/StockDetail.tsx:151 msgid "Last Stocktake" msgstr "" -#: src/pages/part/PartDetail.tsx:462 +#: src/pages/part/PartDetail.tsx:511 msgid "Stocktake By" msgstr "" -#: src/pages/part/PartDetail.tsx:526 -msgid "Part Details" -msgstr "" - -#: src/pages/part/PartDetail.tsx:557 +#: src/pages/part/PartDetail.tsx:611 msgid "Variants" -msgstr "" +msgstr "Variandid" -#: src/pages/part/PartDetail.tsx:564 -#: src/pages/stock/StockDetail.tsx:307 +#: src/pages/part/PartDetail.tsx:618 +#: src/pages/stock/StockDetail.tsx:430 msgid "Allocations" msgstr "" -#: src/pages/part/PartDetail.tsx:575 -#: src/pages/stock/StockDetail.tsx:318 -#: src/tables/part/PartTable.tsx:99 -msgid "Build Order Allocations" -msgstr "" - -#: src/pages/part/PartDetail.tsx:590 -#: src/pages/stock/StockDetail.tsx:333 -#: src/tables/part/PartTable.tsx:108 -msgid "Sales Order Allocations" -msgstr "" - -#: src/pages/part/PartDetail.tsx:607 +#: src/pages/part/PartDetail.tsx:625 msgid "Bill of Materials" msgstr "" -#: src/pages/part/PartDetail.tsx:623 +#: src/pages/part/PartDetail.tsx:643 msgid "Used In" msgstr "" -#: src/pages/part/PartDetail.tsx:630 +#: src/pages/part/PartDetail.tsx:650 msgid "Part Pricing" msgstr "" -#: src/pages/part/PartDetail.tsx:636 +#: src/pages/part/PartDetail.tsx:656 #: src/pages/purchasing/PurchasingIndex.tsx:42 msgid "Manufacturers" msgstr "" -#: src/pages/part/PartDetail.tsx:676 +#: src/pages/part/PartDetail.tsx:722 msgid "Scheduling" msgstr "" -#: src/pages/part/PartDetail.tsx:688 +#: src/pages/part/PartDetail.tsx:729 msgid "Test Templates" msgstr "" -#: src/pages/part/PartDetail.tsx:715 +#: src/pages/part/PartDetail.tsx:756 msgid "Related Parts" msgstr "" -#: src/pages/part/PartDetail.tsx:849 -#: src/pages/stock/StockDetail.tsx:156 -#: src/pages/stock/StockDetail.tsx:593 -#: src/tables/build/BuildLineTable.tsx:48 +#: src/pages/part/PartDetail.tsx:881 +#: src/pages/stock/StockDetail.tsx:172 +#: src/pages/stock/StockDetail.tsx:783 +#: src/tables/build/BuildLineTable.tsx:179 #: src/tables/part/PartTable.tsx:117 -#: src/tables/stock/StockItemTable.tsx:177 -#: src/tables/stock/StockItemTable.tsx:310 +#: src/tables/stock/StockItemTable.tsx:166 +#: src/tables/stock/StockItemTable.tsx:314 msgid "Available" msgstr "" -#: src/pages/part/PartDetail.tsx:855 +#: src/pages/part/PartDetail.tsx:887 msgid "No Stock" msgstr "" -#: src/pages/part/PartDetail.tsx:861 +#: src/pages/part/PartDetail.tsx:893 +#: src/tables/part/PartTestTemplateTable.tsx:106 +#: src/tables/stock/StockItemTestResultTable.tsx:383 +msgid "Required" +msgstr "Nõutud" + +#: src/pages/part/PartDetail.tsx:899 #: src/tables/bom/BomTable.tsx:325 #: src/tables/part/PartTable.tsx:86 msgid "On Order" msgstr "" -#: src/pages/part/PartDetail.tsx:867 -#: src/pages/stock/StockDetail.tsx:576 -#: src/tables/build/BuildOrderTestTable.tsx:219 -#: src/tables/stock/StockItemTable.tsx:330 -msgid "In Production" -msgstr "" - -#: src/pages/part/PartDetail.tsx:892 +#: src/pages/part/PartDetail.tsx:924 msgid "Edit Part" -msgstr "" +msgstr "Muuda osa" -#: src/pages/part/PartDetail.tsx:927 +#: src/pages/part/PartDetail.tsx:959 #: src/tables/part/PartTable.tsx:331 -#: src/tables/part/PartTable.tsx:342 +#: src/tables/part/PartTable.tsx:343 msgid "Add Part" -msgstr "" +msgstr "Lisa osa" -#: src/pages/part/PartDetail.tsx:941 +#: src/pages/part/PartDetail.tsx:973 msgid "Delete Part" msgstr "" -#: src/pages/part/PartDetail.tsx:950 +#: src/pages/part/PartDetail.tsx:982 msgid "Deleting this part cannot be reversed" -msgstr "" +msgstr "Selle osa kustutamist ei saa tagasi võtta" -#: src/pages/part/PartDetail.tsx:999 -#: src/pages/stock/LocationDetail.tsx:324 -#: src/tables/stock/StockItemTable.tsx:444 +#: src/pages/part/PartDetail.tsx:1021 +#: src/pages/stock/LocationDetail.tsx:310 +#: src/tables/stock/StockItemTable.tsx:449 msgid "Stock Actions" msgstr "" -#: src/pages/part/PartDetail.tsx:1007 +#: src/pages/part/PartDetail.tsx:1029 msgid "Count part stock" msgstr "" -#: src/pages/part/PartDetail.tsx:1018 +#: src/pages/part/PartDetail.tsx:1040 msgid "Transfer part stock" msgstr "" -#: src/pages/part/PartDetail.tsx:1027 +#: src/pages/part/PartDetail.tsx:1049 msgid "Part Actions" msgstr "" -#: src/pages/part/PartDetail.tsx:1087 +#: src/pages/part/PartDetail.tsx:1113 msgid "Select Part Revision" msgstr "" @@ -4862,113 +5621,214 @@ msgstr "" #~ msgid "Categories" #~ msgstr "Categories" -#: src/pages/part/PartPricingPanel.tsx:68 +#: src/pages/part/PartPricingPanel.tsx:72 msgid "No pricing data found for this part." -msgstr "" +msgstr "Selle osa kohta andmeid hinnakujunduse kohta ei leitud." -#: src/pages/part/PartPricingPanel.tsx:82 -#: src/pages/part/pricing/PricingOverviewPanel.tsx:190 +#: src/pages/part/PartPricingPanel.tsx:87 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:293 msgid "Pricing Overview" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:88 +#: src/pages/part/PartPricingPanel.tsx:93 msgid "Purchase History" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:102 -#: src/pages/part/pricing/PricingOverviewPanel.tsx:100 +#: src/pages/part/PartPricingPanel.tsx:107 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:174 msgid "Internal Pricing" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:120 -#: src/pages/part/pricing/PricingOverviewPanel.tsx:107 +#: src/pages/part/PartPricingPanel.tsx:125 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:181 msgid "BOM Pricing" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:127 -#: src/pages/part/pricing/PricingOverviewPanel.tsx:128 +#: src/pages/part/PartPricingPanel.tsx:132 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:202 msgid "Variant Pricing" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:139 -#: src/pages/part/pricing/PricingOverviewPanel.tsx:135 +#: src/pages/part/PartPricingPanel.tsx:144 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:209 msgid "Sale Pricing" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:146 -#: src/pages/part/pricing/PricingOverviewPanel.tsx:142 +#: src/pages/part/PartPricingPanel.tsx:151 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:216 msgid "Sale History" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:58 -#: src/pages/part/pricing/BomPricingPanel.tsx:138 -#: src/tables/ColumnRenderers.tsx:262 +#: src/pages/part/PartSchedulingDetail.tsx:47 +#: src/pages/part/PartSchedulingDetail.tsx:299 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:156 +msgid "Maximum" +msgstr "Maksimum" + +#: src/pages/part/PartSchedulingDetail.tsx:50 +#: src/pages/part/PartSchedulingDetail.tsx:289 +msgid "Scheduled" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:53 +#: src/pages/part/PartSchedulingDetail.tsx:294 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:144 +msgid "Minimum" +msgstr "Miinimum" + +#: src/pages/part/PartSchedulingDetail.tsx:68 +msgid "Order" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:92 +msgid "Quantity is speculative" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:101 +msgid "No date available for provided quantity" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:105 +msgid "Date is in the past" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:112 +msgid "Scheduled Quantity" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:240 +msgid "No information available" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:241 +msgid "There is no scheduling information available for the selected part" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:276 +msgid "Expected Quantity" +msgstr "" + +#: src/pages/part/PartStocktakeDetail.tsx:63 +#: src/tables/FilterSelectDrawer.tsx:167 +#: src/tables/FilterSelectDrawer.tsx:174 +#: src/tables/build/BuildOrderTestTable.tsx:135 +#: src/tables/purchasing/ManufacturerPartParameterTable.tsx:38 +#: src/tables/stock/StockItemTestResultTable.tsx:192 +msgid "Value" +msgstr "Väärtus" + +#: src/pages/part/PartStocktakeDetail.tsx:82 +msgid "Edit Stocktake Entry" +msgstr "" + +#: src/pages/part/PartStocktakeDetail.tsx:90 +msgid "Delete Stocktake Entry" +msgstr "" + +#: src/pages/part/PartStocktakeDetail.tsx:96 +#: src/tables/settings/StocktakeReportTable.tsx:69 +msgid "Generate Stocktake Report" +msgstr "" + +#: src/pages/part/PartStocktakeDetail.tsx:101 +#: src/tables/settings/StocktakeReportTable.tsx:71 +msgid "Stocktake report scheduled" +msgstr "" + +#: src/pages/part/PartStocktakeDetail.tsx:119 +#: src/pages/part/PartStocktakeDetail.tsx:235 +#: src/pages/stock/StockDetail.tsx:303 +#: src/tables/stock/StockItemTable.tsx:249 +msgid "Stock Value" +msgstr "" + +#: src/pages/part/PartStocktakeDetail.tsx:139 +#: src/tables/settings/StocktakeReportTable.tsx:77 +msgid "New Stocktake Report" +msgstr "" + +#: src/pages/part/PartStocktakeDetail.tsx:258 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:295 +msgid "Minimum Value" +msgstr "Minimaalne väärtus" + +#: src/pages/part/PartStocktakeDetail.tsx:264 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:296 +msgid "Maximum Value" +msgstr "Maksimaalne hind" + +#: src/pages/part/pricing/BomPricingPanel.tsx:87 +#: src/pages/part/pricing/BomPricingPanel.tsx:177 +#: src/tables/ColumnRenderers.tsx:276 #: src/tables/bom/BomTable.tsx:185 #: src/tables/general/ExtraLineItemTable.tsx:64 -#: src/tables/purchasing/PurchaseOrderTable.tsx:112 -#: src/tables/sales/ReturnOrderTable.tsx:104 -#: src/tables/sales/SalesOrderLineItemTable.tsx:89 -#: src/tables/sales/SalesOrderTable.tsx:136 +#: src/tables/purchasing/PurchaseOrderTable.tsx:113 +#: src/tables/sales/ReturnOrderTable.tsx:127 +#: src/tables/sales/SalesOrderLineItemTable.tsx:97 +#: src/tables/sales/SalesOrderTable.tsx:149 msgid "Total Price" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:78 -#: src/pages/part/pricing/BomPricingPanel.tsx:102 +#: src/pages/part/pricing/BomPricingPanel.tsx:112 +#: src/pages/part/pricing/BomPricingPanel.tsx:141 #: src/tables/bom/UsedInTable.tsx:49 +#: src/tables/build/BuildLineTable.tsx:296 #: src/tables/part/PartTable.tsx:202 msgid "Component" -msgstr "" - -#: src/pages/part/pricing/BomPricingPanel.tsx:81 -#: src/pages/part/pricing/VariantPricingPanel.tsx:37 -#: src/pages/part/pricing/VariantPricingPanel.tsx:97 -msgid "Minimum Price" -msgstr "" - -#: src/pages/part/pricing/BomPricingPanel.tsx:82 -#: src/pages/part/pricing/VariantPricingPanel.tsx:45 -#: src/pages/part/pricing/VariantPricingPanel.tsx:98 -msgid "Maximum Price" -msgstr "" +msgstr "Komponent" #: src/pages/part/pricing/BomPricingPanel.tsx:112 #~ msgid "Minimum Total Price" #~ msgstr "Minimum Total Price" +#: src/pages/part/pricing/BomPricingPanel.tsx:115 +#: src/pages/part/pricing/VariantPricingPanel.tsx:37 +#: src/pages/part/pricing/VariantPricingPanel.tsx:97 +msgid "Minimum Price" +msgstr "Minimaalne hind" + +#: src/pages/part/pricing/BomPricingPanel.tsx:116 +#: src/pages/part/pricing/VariantPricingPanel.tsx:45 +#: src/pages/part/pricing/VariantPricingPanel.tsx:98 +msgid "Maximum Price" +msgstr "Maksimaalne hind" + #: src/pages/part/pricing/BomPricingPanel.tsx:117 #~ msgid "Maximum Total Price" #~ msgstr "Maximum Total Price" -#: src/pages/part/pricing/BomPricingPanel.tsx:129 -#: src/pages/part/pricing/PriceBreakPanel.tsx:172 -#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:67 -#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:128 -#: src/pages/part/pricing/SupplierPricingPanel.tsx:62 +#: src/pages/part/pricing/BomPricingPanel.tsx:168 +#: src/pages/part/pricing/PriceBreakPanel.tsx:173 +#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:70 +#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:125 +#: src/pages/part/pricing/SupplierPricingPanel.tsx:66 +#: src/pages/stock/StockDetail.tsx:291 #: src/tables/bom/BomTable.tsx:176 #: src/tables/general/ExtraLineItemTable.tsx:56 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:223 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:225 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:92 +#: src/tables/stock/StockItemTable.tsx:239 msgid "Unit Price" -msgstr "" +msgstr "Ühiku hind" -#: src/pages/part/pricing/BomPricingPanel.tsx:154 +#: src/pages/part/pricing/BomPricingPanel.tsx:193 #: src/pages/part/pricing/VariantPricingPanel.tsx:53 -#: src/tables/purchasing/SupplierPartTable.tsx:148 +#: src/tables/purchasing/SupplierPartTable.tsx:150 msgid "Updated" -msgstr "" +msgstr "Uuendatud" -#: src/pages/part/pricing/BomPricingPanel.tsx:219 +#: src/pages/part/pricing/BomPricingPanel.tsx:258 msgid "Pie Chart" -msgstr "" +msgstr "Sektorgraafik" -#: src/pages/part/pricing/BomPricingPanel.tsx:220 +#: src/pages/part/pricing/BomPricingPanel.tsx:259 msgid "Bar Chart" -msgstr "" +msgstr "Tulpgraafik" #: src/pages/part/pricing/PriceBreakPanel.tsx:58 -#: src/pages/part/pricing/PriceBreakPanel.tsx:110 +#: src/pages/part/pricing/PriceBreakPanel.tsx:111 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:142 -#: src/tables/purchasing/SupplierPriceBreakTable.tsx:168 +#: src/tables/purchasing/SupplierPriceBreakTable.tsx:169 msgid "Add Price Break" msgstr "" @@ -4986,46 +5846,70 @@ msgstr "" msgid "Price Break" msgstr "" -#: src/pages/part/pricing/PriceBreakPanel.tsx:170 +#: src/pages/part/pricing/PriceBreakPanel.tsx:171 msgid "Price" +msgstr "Hind" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:68 +msgid "Refreshing pricing data" msgstr "" -#: src/pages/part/pricing/PricingOverviewPanel.tsx:51 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:88 +msgid "Pricing data updated" +msgstr "" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:95 +msgid "Failed to update pricing data" +msgstr "" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:104 +msgid "Edit Pricing" +msgstr "" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:125 msgid "Pricing Category" -msgstr "" +msgstr "Hinnakategooria" -#: src/pages/part/pricing/PricingOverviewPanel.tsx:70 -msgid "Minimum" -msgstr "" - -#: src/pages/part/pricing/PricingOverviewPanel.tsx:82 -msgid "Maximum" -msgstr "" - -#: src/pages/part/pricing/PricingOverviewPanel.tsx:114 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:188 msgid "Purchase Pricing" msgstr "" -#: src/pages/part/pricing/PricingOverviewPanel.tsx:149 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:223 msgid "Override Pricing" msgstr "" -#: src/pages/part/pricing/PricingOverviewPanel.tsx:156 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:230 msgid "Overall Pricing" msgstr "" -#: src/pages/part/pricing/PricingOverviewPanel.tsx:175 -#: src/pages/stock/StockDetail.tsx:129 -#: src/tables/stock/StockItemTable.tsx:240 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:249 +#: src/pages/stock/StockDetail.tsx:145 +#: src/tables/stock/StockItemTable.tsx:275 msgid "Last Updated" msgstr "" -#: src/pages/part/pricing/PricingOverviewPanel.tsx:192 -msgid "Minimum Value" +#: src/pages/part/pricing/PricingOverviewPanel.tsx:253 +msgid "Pricing Not Set" msgstr "" -#: src/pages/part/pricing/PricingOverviewPanel.tsx:193 -msgid "Maximum Value" +#: src/pages/part/pricing/PricingOverviewPanel.tsx:254 +msgid "Pricing data has not been calculated for this part" +msgstr "" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:258 +msgid "Pricing Actions" +msgstr "" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:261 +msgid "Refresh" +msgstr "" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:262 +msgid "Refresh pricing data" +msgstr "" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:277 +msgid "Edit pricing data" msgstr "" #: src/pages/part/pricing/PricingPanel.tsx:24 @@ -5038,34 +5922,26 @@ msgstr "" #: src/pages/part/pricing/PricingPanel.tsx:66 msgid "No pricing data available" -msgstr "" +msgstr "Hinnateave puudub" #: src/pages/part/pricing/PricingPanel.tsx:77 msgid "Loading pricing data" msgstr "" -#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:40 -#: src/pages/part/pricing/SaleHistoryPanel.tsx:36 -#: src/tables/ColumnRenderers.tsx:201 -#: src/tables/build/BuildOrderTestTable.tsx:150 -#: src/tables/plugin/PluginListTable.tsx:139 -msgid "Date" -msgstr "Kuupäev" - #: src/pages/part/pricing/PurchaseHistoryPanel.tsx:47 msgid "Purchase Price" msgstr "" -#: src/pages/part/pricing/SaleHistoryPanel.tsx:22 -msgid "Sale Order" -msgstr "" +#: src/pages/part/pricing/SaleHistoryPanel.tsx:24 +#~ msgid "Sale Order" +#~ msgstr "Sale Order" -#: src/pages/part/pricing/SaleHistoryPanel.tsx:42 -#: src/pages/part/pricing/SaleHistoryPanel.tsx:92 +#: src/pages/part/pricing/SaleHistoryPanel.tsx:44 +#: src/pages/part/pricing/SaleHistoryPanel.tsx:87 msgid "Sale Price" -msgstr "" +msgstr "Müügihind" -#: src/pages/part/pricing/SupplierPricingPanel.tsx:65 +#: src/pages/part/pricing/SupplierPricingPanel.tsx:69 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:83 msgid "Supplier Price" msgstr "" @@ -5075,23 +5951,23 @@ msgstr "" msgid "Variant Part" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:93 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:87 msgid "Edit Purchase Order" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:102 -#: src/tables/purchasing/PurchaseOrderTable.tsx:128 -#: src/tables/purchasing/PurchaseOrderTable.tsx:140 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:96 +#: src/tables/purchasing/PurchaseOrderTable.tsx:129 +#: src/tables/purchasing/PurchaseOrderTable.tsx:142 msgid "Add Purchase Order" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:127 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:121 msgid "Supplier Reference" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:158 -#: src/pages/sales/ReturnOrderDetail.tsx:137 -#: src/pages/sales/SalesOrderDetail.tsx:137 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:152 +#: src/pages/sales/ReturnOrderDetail.tsx:129 +#: src/pages/sales/SalesOrderDetail.tsx:132 msgid "Completed Line Items" msgstr "" @@ -5101,209 +5977,306 @@ msgstr "" #~ msgid "Order Currency," #~ msgstr "Order Currency," -#: src/pages/purchasing/PurchaseOrderDetail.tsx:165 -#: src/pages/sales/ReturnOrderDetail.tsx:144 -#: src/pages/sales/SalesOrderDetail.tsx:153 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:161 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:231 +msgid "Destination" +msgstr "" + +#: src/pages/purchasing/PurchaseOrderDetail.tsx:167 +#: src/pages/sales/ReturnOrderDetail.tsx:136 +#: src/pages/sales/SalesOrderDetail.tsx:148 msgid "Order Currency" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:172 -#: src/pages/sales/ReturnOrderDetail.tsx:151 -#: src/pages/sales/SalesOrderDetail.tsx:160 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:173 +#: src/pages/sales/ReturnOrderDetail.tsx:143 +#: src/pages/sales/SalesOrderDetail.tsx:155 msgid "Total Cost" msgstr "" #: src/pages/purchasing/PurchaseOrderDetail.tsx:207 -#: src/pages/sales/ReturnOrderDetail.tsx:186 -#: src/pages/sales/SalesOrderDetail.tsx:195 -msgid "Created On" +#: src/pages/sales/ReturnOrderDetail.tsx:183 +#: src/pages/sales/SalesOrderDetail.tsx:191 +#~ msgid "Created On" +#~ msgstr "Created On" + +#: src/pages/purchasing/PurchaseOrderDetail.tsx:221 +#: src/pages/sales/ReturnOrderDetail.tsx:193 +#: src/pages/sales/SalesOrderDetail.tsx:204 +msgid "Issue Date" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:252 -#: src/pages/sales/ReturnOrderDetail.tsx:231 -#: src/pages/sales/SalesOrderDetail.tsx:266 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:237 +#: src/pages/sales/ReturnOrderDetail.tsx:209 +#: src/pages/sales/SalesOrderDetail.tsx:219 +#: src/tables/build/BuildOrderTable.tsx:98 +#: src/tables/part/PartPurchaseOrdersTable.tsx:105 +#: src/tables/sales/ReturnOrderTable.tsx:122 +msgid "Completion Date" +msgstr "" + +#: src/pages/purchasing/PurchaseOrderDetail.tsx:276 +#: src/pages/sales/ReturnOrderDetail.tsx:248 +#: src/pages/sales/SalesOrderDetail.tsx:288 msgid "Order Details" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:280 -#: src/pages/sales/ReturnOrderDetail.tsx:258 -#: src/pages/sales/SalesOrderDetail.tsx:297 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:304 +#: src/pages/sales/ReturnOrderDetail.tsx:276 +#: src/pages/sales/SalesOrderDetail.tsx:319 msgid "Extra Line Items" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:337 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:346 msgid "Issue Purchase Order" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:345 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:354 msgid "Cancel Purchase Order" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:353 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:362 msgid "Hold Purchase Order" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:361 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:370 msgid "Complete Purchase Order" -msgstr "" +msgstr "Täida ostutellimus" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:427 -#: src/pages/sales/ReturnOrderDetail.tsx:428 -#: src/pages/sales/SalesOrderDetail.tsx:468 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:425 +#: src/pages/sales/ReturnOrderDetail.tsx:424 +#: src/pages/sales/SalesOrderDetail.tsx:464 msgid "Order Actions" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:101 -#: src/pages/sales/SalesOrderDetail.tsx:107 -#: src/tables/sales/SalesOrderTable.tsx:124 +#: src/pages/sales/ReturnOrderDetail.tsx:92 +#: src/pages/sales/SalesOrderDetail.tsx:101 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:109 +#: src/tables/sales/SalesOrderTable.tsx:137 msgid "Customer Reference" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:315 +#: src/pages/sales/ReturnOrderDetail.tsx:322 msgid "Edit Return Order" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:324 -#: src/tables/sales/ReturnOrderTable.tsx:119 -#: src/tables/sales/ReturnOrderTable.tsx:128 +#: src/pages/sales/ReturnOrderDetail.tsx:331 +#: src/tables/sales/ReturnOrderTable.tsx:142 +#: src/tables/sales/ReturnOrderTable.tsx:152 msgid "Add Return Order" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:336 +#: src/pages/sales/ReturnOrderDetail.tsx:343 msgid "Issue Return Order" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:344 +#: src/pages/sales/ReturnOrderDetail.tsx:349 +#~ msgid "Order canceled" +#~ msgstr "Order canceled" + +#: src/pages/sales/ReturnOrderDetail.tsx:351 msgid "Cancel Return Order" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:347 -msgid "Order canceled" -msgstr "" - -#: src/pages/sales/ReturnOrderDetail.tsx:352 +#: src/pages/sales/ReturnOrderDetail.tsx:359 msgid "Hold Return Order" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:360 +#: src/pages/sales/ReturnOrderDetail.tsx:367 msgid "Complete Return Order" msgstr "" #: src/pages/sales/SalesIndex.tsx:38 msgid "Customers" -msgstr "" +msgstr "Kliendid" -#: src/pages/sales/SalesOrderDetail.tsx:145 +#: src/pages/sales/SalesOrderDetail.tsx:140 msgid "Completed Shipments" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:243 -msgid "Edit Sales Order" -msgstr "" - -#: src/pages/sales/SalesOrderDetail.tsx:252 -#: src/tables/sales/SalesOrderTable.tsx:84 -#: src/tables/sales/SalesOrderTable.tsx:96 -msgid "Add Sales Order" -msgstr "" - #: src/pages/sales/SalesOrderDetail.tsx:256 #~ msgid "Pending Shipments" #~ msgstr "Pending Shipments" -#: src/pages/sales/SalesOrderDetail.tsx:313 +#: src/pages/sales/SalesOrderDetail.tsx:261 +msgid "Edit Sales Order" +msgstr "" + +#: src/pages/sales/SalesOrderDetail.tsx:274 +#: src/tables/sales/SalesOrderTable.tsx:96 +#: src/tables/sales/SalesOrderTable.tsx:109 +msgid "Add Sales Order" +msgstr "" + +#: src/pages/sales/SalesOrderDetail.tsx:335 msgid "Shipments" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:369 +#: src/pages/sales/SalesOrderDetail.tsx:376 msgid "Issue Sales Order" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:377 +#: src/pages/sales/SalesOrderDetail.tsx:384 msgid "Cancel Sales Order" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:385 +#: src/pages/sales/SalesOrderDetail.tsx:392 msgid "Hold Sales Order" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:393 +#: src/pages/sales/SalesOrderDetail.tsx:400 msgid "Complete Sales Order" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:432 +#: src/pages/sales/SalesOrderDetail.tsx:439 msgid "Ship Order" msgstr "" -#: src/pages/stock/LocationDetail.tsx:117 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:117 +#: src/tables/sales/SalesOrderShipmentTable.tsx:96 +msgid "Shipment Reference" +msgstr "Saadetise viide" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:124 +msgid "Allocated Items" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:133 +msgid "Tracking Number" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:141 +msgid "Invoice Number" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:149 +#: src/tables/ColumnRenderers.tsx:242 +#: src/tables/sales/SalesOrderAllocationTable.tsx:142 +#: src/tables/sales/SalesOrderShipmentTable.tsx:115 +msgid "Shipment Date" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:157 +#: src/tables/sales/SalesOrderShipmentTable.tsx:119 +msgid "Delivery Date" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:204 +msgid "Shipment Details" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:210 +msgid "Assigned Items" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:241 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:317 +#: src/tables/sales/SalesOrderShipmentTable.tsx:75 +msgid "Edit Shipment" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:248 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:322 +#: src/tables/sales/SalesOrderShipmentTable.tsx:67 +msgid "Cancel Shipment" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:261 +#: src/tables/sales/SalesOrderShipmentTable.tsx:83 +#: src/tables/sales/SalesOrderShipmentTable.tsx:151 +msgid "Complete Shipment" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:276 +#: src/tables/part/PartPurchaseOrdersTable.tsx:121 +msgid "Pending" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:277 +#: src/tables/sales/SalesOrderAllocationTable.tsx:148 +#: src/tables/sales/SalesOrderShipmentTable.tsx:108 +#: src/tables/sales/SalesOrderShipmentTable.tsx:197 +msgid "Shipped" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:279 +#: src/tables/sales/SalesOrderShipmentTable.tsx:202 +msgid "Delivered" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:293 +msgid "Send Shipment" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:312 +msgid "Shipment Actions" +msgstr "" + +#: src/pages/stock/LocationDetail.tsx:111 msgid "Parent Location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:135 +#: src/pages/stock/LocationDetail.tsx:129 msgid "Sublocations" msgstr "" -#: src/pages/stock/LocationDetail.tsx:147 +#: src/pages/stock/LocationDetail.tsx:141 #: src/tables/stock/StockLocationTable.tsx:54 msgid "External" -msgstr "" +msgstr "Väline" -#: src/pages/stock/LocationDetail.tsx:153 +#: src/pages/stock/LocationDetail.tsx:147 #: src/tables/stock/StockLocationTable.tsx:63 msgid "Location Type" msgstr "" -#: src/pages/stock/LocationDetail.tsx:164 +#: src/pages/stock/LocationDetail.tsx:158 msgid "Top level stock location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:175 +#: src/pages/stock/LocationDetail.tsx:169 msgid "Location Details" msgstr "" -#: src/pages/stock/LocationDetail.tsx:201 +#: src/pages/stock/LocationDetail.tsx:195 msgid "Default Parts" msgstr "" -#: src/pages/stock/LocationDetail.tsx:220 -#: src/pages/stock/LocationDetail.tsx:351 +#: src/pages/stock/LocationDetail.tsx:214 +#: src/pages/stock/LocationDetail.tsx:336 #: src/tables/stock/StockLocationTable.tsx:123 msgid "Edit Stock Location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:241 -#: src/pages/stock/LocationDetail.tsx:356 +#: src/pages/stock/LocationDetail.tsx:235 +#: src/pages/stock/LocationDetail.tsx:341 msgid "Delete Stock Location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:244 +#: src/pages/stock/LocationDetail.tsx:238 msgid "Items Action" msgstr "" -#: src/pages/stock/LocationDetail.tsx:245 +#: src/pages/stock/LocationDetail.tsx:239 msgid "Action for stock items in this location" -msgstr "" +msgstr "Tegevus inventariüksuste jaoks selles asukohas" -#: src/pages/stock/LocationDetail.tsx:250 +#: src/pages/stock/LocationDetail.tsx:244 msgid "Child Locations Action" msgstr "" -#: src/pages/stock/LocationDetail.tsx:251 +#: src/pages/stock/LocationDetail.tsx:245 msgid "Action for child locations in this location" -msgstr "" +msgstr "Tegevus selle asukoha alamkohtades" -#: src/pages/stock/LocationDetail.tsx:346 +#: src/pages/stock/LocationDetail.tsx:332 msgid "Location Actions" msgstr "" -#: src/pages/stock/StockDetail.tsx:108 +#: src/pages/stock/StockDetail.tsx:116 msgid "Base Part" msgstr "" -#: src/pages/stock/StockDetail.tsx:115 -msgid "Stock Status" -msgstr "" - #: src/pages/stock/StockDetail.tsx:155 #~ msgid "Link custom barcode to stock item" #~ msgstr "Link custom barcode to stock item" @@ -5312,117 +6285,183 @@ msgstr "" #~ msgid "Unlink custom barcode from stock item" #~ msgstr "Unlink custom barcode from stock item" -#: src/pages/stock/StockDetail.tsx:188 -msgid "Installed In" -msgstr "" - -#: src/pages/stock/StockDetail.tsx:204 -msgid "Consumed By" +#: src/pages/stock/StockDetail.tsx:178 +msgid "Allocated to Orders" msgstr "" #: src/pages/stock/StockDetail.tsx:205 #~ msgid "Edit stock item" #~ msgstr "Edit stock item" -#: src/pages/stock/StockDetail.tsx:213 -#: src/tables/build/BuildAllocatedStockTable.tsx:64 -#: src/tables/stock/StockTrackingTable.tsx:96 -msgid "Build Order" +#: src/pages/stock/StockDetail.tsx:209 +msgid "Installed In" msgstr "" #: src/pages/stock/StockDetail.tsx:217 #~ msgid "Delete stock item" #~ msgstr "Delete stock item" -#: src/pages/stock/StockDetail.tsx:291 +#: src/pages/stock/StockDetail.tsx:226 +msgid "Parent Item" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:230 +msgid "Parent stock item" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:236 +msgid "Consumed By" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:245 +#: src/tables/build/BuildAllocatedStockTable.tsx:77 +#: src/tables/stock/StockTrackingTable.tsx:100 +msgid "Build Order" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:283 +#: src/tables/stock/StockItemTable.tsx:270 +msgid "Expiry Date" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:414 msgid "Stock Details" msgstr "" -#: src/pages/stock/StockDetail.tsx:297 +#: src/pages/stock/StockDetail.tsx:420 msgid "Stock Tracking" msgstr "" -#: src/pages/stock/StockDetail.tsx:350 -msgid "Test Data" -msgstr "" - -#: src/pages/stock/StockDetail.tsx:364 -msgid "Installed Items" -msgstr "" - -#: src/pages/stock/StockDetail.tsx:371 -msgid "Child Items" -msgstr "" - -#: src/pages/stock/StockDetail.tsx:425 -msgid "Edit Stock Item" -msgstr "" - #: src/pages/stock/StockDetail.tsx:433 #~ msgid "Duplicate stock item" #~ msgstr "Duplicate stock item" -#: src/pages/stock/StockDetail.tsx:452 +#: src/pages/stock/StockDetail.tsx:475 +msgid "Test Data" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:489 +msgid "Installed Items" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:496 +msgid "Child Items" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:545 +msgid "Edit Stock Item" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:572 msgid "Delete Stock Item" msgstr "" -#: src/pages/stock/StockDetail.tsx:504 +#: src/pages/stock/StockDetail.tsx:604 +msgid "Serialize Stock Item" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:617 +msgid "Stock item serialized" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:623 +msgid "Return Stock Item" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:626 +msgid "Return this item into stock. This will remove the customer assignment." +msgstr "" + +#: src/pages/stock/StockDetail.tsx:636 +msgid "Item returned to stock" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:666 msgid "Stock Operations" msgstr "" -#: src/pages/stock/StockDetail.tsx:509 +#: src/pages/stock/StockDetail.tsx:671 msgid "Count stock" msgstr "" -#: src/pages/stock/StockDetail.tsx:519 -#: src/tables/stock/StockItemTable.tsx:449 -msgid "Add stock" +#: src/pages/stock/StockDetail.tsx:671 +#: src/tables/stock/StockItemTable.tsx:452 +#~ msgid "Add stock" +#~ msgstr "Add stock" + +#: src/pages/stock/StockDetail.tsx:680 +#: src/tables/stock/StockItemTable.tsx:461 +#~ msgid "Remove stock" +#~ msgstr "Remove stock" + +#: src/pages/stock/StockDetail.tsx:698 +#: src/tables/stock/StockItemTable.tsx:481 +#~ msgid "Transfer stock" +#~ msgstr "Transfer stock" + +#: src/pages/stock/StockDetail.tsx:699 +msgid "Serialize" msgstr "" -#: src/pages/stock/StockDetail.tsx:527 -#: src/tables/stock/StockItemTable.tsx:458 -msgid "Remove stock" +#: src/pages/stock/StockDetail.tsx:700 +msgid "Serialize stock" msgstr "" -#: src/pages/stock/StockDetail.tsx:534 +#: src/pages/stock/StockDetail.tsx:711 msgid "Transfer" msgstr "" -#: src/pages/stock/StockDetail.tsx:535 -#: src/tables/stock/StockItemTable.tsx:478 -msgid "Transfer stock" +#: src/pages/stock/StockDetail.tsx:722 +msgid "Return" msgstr "" -#: src/pages/stock/StockDetail.tsx:546 +#: src/pages/stock/StockDetail.tsx:723 +msgid "Return from customer" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:738 msgid "Stock Item Actions" msgstr "" -#: src/tables/ColumnRenderers.tsx:30 +#: src/pages/stock/StockDetail.tsx:808 +msgid "Stale" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:814 +msgid "Expired" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:820 +msgid "Unavailable" +msgstr "" + +#: src/tables/ColumnRenderers.tsx:36 msgid "Part is not active" msgstr "" -#: src/tables/ColumnRenderers.tsx:35 -msgid "Part is locked" +#: src/tables/ColumnRenderers.tsx:41 +#: src/tables/bom/BomTable.tsx:542 +#: src/tables/part/PartParameterTable.tsx:193 +#: src/tables/part/PartTestTemplateTable.tsx:253 +msgid "Part is Locked" msgstr "" -#: src/tables/ColumnRenderers.tsx:57 +#: src/tables/ColumnRenderers.tsx:41 +#~ msgid "Part is locked" +#~ msgstr "Part is locked" + +#: src/tables/ColumnRenderers.tsx:46 +msgid "You are subscribed to notifications for this part" +msgstr "" + +#: src/tables/ColumnRenderers.tsx:68 msgid "No location set" msgstr "" -#: src/tables/ColumnRenderers.tsx:228 -#: src/tables/sales/SalesOrderShipmentTable.tsx:79 -msgid "Shipment Date" -msgstr "" - -#: src/tables/ColumnRenderers.tsx:248 -#: src/tables/settings/CurrencyTable.tsx:23 -msgid "Currency" -msgstr "" - #: src/tables/ColumnSelect.tsx:16 #: src/tables/ColumnSelect.tsx:23 msgid "Select Columns" -msgstr "" +msgstr "Vali veerud" #: src/tables/DownloadAction.tsx:13 #~ msgid "Excel" @@ -5430,7 +6469,7 @@ msgstr "" #: src/tables/DownloadAction.tsx:21 msgid "CSV" -msgstr "" +msgstr "CSV" #: src/tables/DownloadAction.tsx:21 #~ msgid "Download selected data" @@ -5438,11 +6477,11 @@ msgstr "" #: src/tables/DownloadAction.tsx:22 msgid "TSV" -msgstr "" +msgstr "TSV" #: src/tables/DownloadAction.tsx:23 msgid "Excel (.xlsx)" -msgstr "" +msgstr "Excel (.xlsx)" #: src/tables/DownloadAction.tsx:24 #~ msgid "Excel (.xls)" @@ -5450,112 +6489,125 @@ msgstr "" #: src/tables/DownloadAction.tsx:36 msgid "Download Data" -msgstr "" +msgstr "Laadi andmed alla" -#: src/tables/Filter.tsx:89 -#: src/tables/build/BuildOrderTable.tsx:135 +#: src/tables/Filter.tsx:101 msgid "Assigned to me" -msgstr "" +msgstr "Mulle määratud" -#: src/tables/Filter.tsx:90 -#: src/tables/build/BuildOrderTable.tsx:136 +#: src/tables/Filter.tsx:102 msgid "Show orders assigned to me" -msgstr "" - -#: src/tables/Filter.tsx:97 -msgid "Outstanding" -msgstr "" - -#: src/tables/Filter.tsx:98 -msgid "Show outstanding orders" -msgstr "" - -#: src/tables/Filter.tsx:105 -#: src/tables/build/BuildOrderTable.tsx:128 -msgid "Overdue" -msgstr "" +msgstr "Näita mulle minule määratud tellimusi" #: src/tables/Filter.tsx:106 -msgid "Show overdue orders" +#~ msgid "Show overdue orders" +#~ msgstr "Show overdue orders" + +#: src/tables/Filter.tsx:109 +#: src/tables/build/BuildOrderTable.tsx:120 +#: src/tables/sales/SalesOrderAllocationTable.tsx:59 +msgid "Outstanding" +msgstr "Ootel" + +#: src/tables/Filter.tsx:110 +msgid "Show outstanding items" msgstr "" -#: src/tables/FilterSelectDrawer.tsx:51 +#: src/tables/Filter.tsx:117 +msgid "Overdue" +msgstr "Üle tähtaja" + +#: src/tables/Filter.tsx:118 +msgid "Show overdue items" +msgstr "" + +#: src/tables/Filter.tsx:125 +msgid "Minimum Date" +msgstr "" + +#: src/tables/Filter.tsx:126 +msgid "Show items after this date" +msgstr "" + +#: src/tables/Filter.tsx:134 +msgid "Maximum Date" +msgstr "" + +#: src/tables/Filter.tsx:135 +msgid "Show items before this date" +msgstr "" + +#: src/tables/Filter.tsx:144 +msgid "Has Project Code" +msgstr "" + +#: src/tables/Filter.tsx:145 +msgid "Show orders with an assigned project code" +msgstr "" + +#: src/tables/FilterSelectDrawer.tsx:55 msgid "Remove filter" -msgstr "" +msgstr "Eemalda filter" -#: src/tables/FilterSelectDrawer.tsx:130 +#: src/tables/FilterSelectDrawer.tsx:159 msgid "Select filter" -msgstr "" +msgstr "Vali filter" -#: src/tables/FilterSelectDrawer.tsx:131 +#: src/tables/FilterSelectDrawer.tsx:160 msgid "Filter" +msgstr "Filter" + +#: src/tables/FilterSelectDrawer.tsx:168 +msgid "Select date value" msgstr "" -#: src/tables/FilterSelectDrawer.tsx:138 -#: src/tables/build/BuildOrderTestTable.tsx:134 -#: src/tables/purchasing/ManufacturerPartParameterTable.tsx:38 -#: src/tables/stock/StockItemTestResultTable.tsx:186 -msgid "Value" -msgstr "" - -#: src/tables/FilterSelectDrawer.tsx:140 +#: src/tables/FilterSelectDrawer.tsx:176 msgid "Select filter value" -msgstr "" +msgstr "Vali filtri väärtus" -#: src/tables/FilterSelectDrawer.tsx:183 +#: src/tables/FilterSelectDrawer.tsx:219 +#: src/tables/InvenTreeTableHeader.tsx:214 msgid "Table Filters" -msgstr "" +msgstr "Tabeli filtrid" -#: src/tables/FilterSelectDrawer.tsx:215 +#: src/tables/FilterSelectDrawer.tsx:251 msgid "Add Filter" -msgstr "" +msgstr "Lisa filter" -#: src/tables/FilterSelectDrawer.tsx:224 +#: src/tables/FilterSelectDrawer.tsx:260 msgid "Clear Filters" -msgstr "" +msgstr "Tühjenda filtrid" -#: src/tables/InvenTreeTable.tsx:123 -#: src/tables/InvenTreeTable.tsx:431 -#: src/tables/InvenTreeTable.tsx:455 +#: src/tables/InvenTreeTable.tsx:96 +#: src/tables/InvenTreeTable.tsx:417 +#: src/tables/InvenTreeTable.tsx:441 msgid "No records found" -msgstr "" +msgstr "Kirjeid ei leitud" + +#: src/tables/InvenTreeTable.tsx:452 +msgid "Server returned incorrect data type" +msgstr "Server tagastas ebatäpse andmeühiku" + +#: src/tables/InvenTreeTable.tsx:460 +msgid "Bad request" +msgstr "Vigane päring" + +#: src/tables/InvenTreeTable.tsx:463 +msgid "Unauthorized" +msgstr "Luba saamata jäänud" #: src/tables/InvenTreeTable.tsx:466 -msgid "Server returned incorrect data type" -msgstr "" - -#: src/tables/InvenTreeTable.tsx:474 -msgid "Bad request" -msgstr "" - -#: src/tables/InvenTreeTable.tsx:477 -msgid "Unauthorized" -msgstr "" - -#: src/tables/InvenTreeTable.tsx:480 msgid "Forbidden" -msgstr "" +msgstr "Keelatud" -#: src/tables/InvenTreeTable.tsx:483 +#: src/tables/InvenTreeTable.tsx:469 msgid "Not found" -msgstr "" +msgstr "Ei leitud" #: src/tables/InvenTreeTable.tsx:510 #~ msgid "Are you sure you want to delete the selected records?" #~ msgstr "Are you sure you want to delete the selected records?" -#: src/tables/InvenTreeTable.tsx:525 -msgid "Delete Selected Items" -msgstr "" - -#: src/tables/InvenTreeTable.tsx:529 -msgid "Are you sure you want to delete the selected items?" -msgstr "" - -#: src/tables/InvenTreeTable.tsx:531 -msgid "This action cannot be undone!" -msgstr "" - #: src/tables/InvenTreeTable.tsx:535 #~ msgid "Deleted records" #~ msgstr "Deleted records" @@ -5568,31 +6620,56 @@ msgstr "" #~ msgid "Failed to delete records" #~ msgstr "Failed to delete records" +#: src/tables/InvenTreeTable.tsx:552 +#~ msgid "This action cannot be undone!" +#~ msgstr "This action cannot be undone!" + #: src/tables/InvenTreeTable.tsx:594 #: src/tables/InvenTreeTable.tsx:595 #~ msgid "Print actions" #~ msgstr "Print actions" -#: src/tables/InvenTreeTable.tsx:618 -#: src/tables/InvenTreeTable.tsx:619 -msgid "Barcode actions" +#: src/tables/InvenTreeTable.tsx:655 +#: src/tables/InvenTreeTable.tsx:656 +#~ msgid "Barcode actions" +#~ msgstr "Barcode actions" + +#: src/tables/InvenTreeTable.tsx:712 +#~ msgid "Table filters" +#~ msgstr "Table filters" + +#: src/tables/InvenTreeTable.tsx:725 +#~ msgid "Clear custom query filters" +#~ msgstr "Clear custom query filters" + +#: src/tables/InvenTreeTableHeader.tsx:98 +msgid "Delete Selected Items" +msgstr "Kustutage valitud kirjed" + +#: src/tables/InvenTreeTableHeader.tsx:102 +msgid "Are you sure you want to delete the selected items?" +msgstr "Kas olete kindel, et soovite kustutada valitud elemendid?" + +#: src/tables/InvenTreeTableHeader.tsx:104 +#: src/tables/plugin/PluginListTable.tsx:305 +msgid "This action cannot be undone" msgstr "" -#: src/tables/InvenTreeTable.tsx:628 +#: src/tables/InvenTreeTableHeader.tsx:142 +msgid "Custom table filters are active" +msgstr "" + +#: src/tables/InvenTreeTableHeader.tsx:169 msgid "Delete selected records" -msgstr "" +msgstr "Kustutage valitud kirjed" -#: src/tables/InvenTreeTable.tsx:649 +#: src/tables/InvenTreeTableHeader.tsx:188 msgid "Refresh data" msgstr "" -#: src/tables/InvenTreeTable.tsx:675 -msgid "Table filters" -msgstr "" - #: src/tables/TableHoverCard.tsx:35 -msgid "item-{idx}" -msgstr "" +#~ msgid "item-{idx}" +#~ msgstr "item-{idx}" #: src/tables/UploadAction.tsx:7 #~ msgid "Upload Data" @@ -5600,38 +6677,43 @@ msgstr "" #: src/tables/bom/BomTable.tsx:95 msgid "This BOM item is defined for a different parent" -msgstr "" +msgstr "See BOM-i kirje on määratud erinevale vanemale" #: src/tables/bom/BomTable.tsx:110 msgid "Part Information" msgstr "" #: src/tables/bom/BomTable.tsx:212 -#: src/tables/build/BuildLineTable.tsx:126 +#: src/tables/build/BuildLineTable.tsx:257 #: src/tables/part/PartTable.tsx:125 msgid "External stock" msgstr "" #: src/tables/bom/BomTable.tsx:220 -#: src/tables/build/BuildLineTable.tsx:89 +#: src/tables/build/BuildLineTable.tsx:220 msgid "Includes substitute stock" -msgstr "" +msgstr "Sisaldab asenduslaosid" #: src/tables/bom/BomTable.tsx:229 -#: src/tables/build/BuildLineTable.tsx:99 -#: src/tables/sales/SalesOrderLineItemTable.tsx:127 +#: src/tables/build/BuildLineTable.tsx:230 +#: src/tables/sales/SalesOrderLineItemTable.tsx:135 msgid "Includes variant stock" msgstr "" +#: src/tables/bom/BomTable.tsx:245 +#: src/tables/part/PartTable.tsx:92 +msgid "Building" +msgstr "" + #: src/tables/bom/BomTable.tsx:254 #: src/tables/part/PartTable.tsx:153 -#: src/tables/sales/SalesOrderLineItemTable.tsx:150 -#: src/tables/stock/StockItemTable.tsx:216 +#: src/tables/sales/SalesOrderLineItemTable.tsx:158 +#: src/tables/stock/StockItemTable.tsx:206 msgid "Stock Information" msgstr "" #: src/tables/bom/BomTable.tsx:285 -#: src/tables/build/BuildLineTable.tsx:248 +#: src/tables/build/BuildLineTable.tsx:409 msgid "Consumable item" msgstr "" @@ -5644,7 +6726,7 @@ msgstr "" #~ msgstr "Create BOM Item" #: src/tables/bom/BomTable.tsx:306 -#: src/tables/build/BuildLineTable.tsx:69 +#: src/tables/build/BuildLineTable.tsx:200 msgid "Show testable items" msgstr "" @@ -5657,13 +6739,14 @@ msgid "Show trackable items" msgstr "" #: src/tables/bom/BomTable.tsx:316 -#: src/tables/build/BuildLineTable.tsx:64 +#: src/tables/build/BuildLineTable.tsx:195 msgid "Show assembled items" msgstr "" #: src/tables/bom/BomTable.tsx:321 +#: src/tables/build/BuildLineTable.tsx:180 msgid "Show items with available stock" -msgstr "" +msgstr "Näita esemeid saadaval oleval varul" #: src/tables/bom/BomTable.tsx:326 msgid "Show items on order" @@ -5671,7 +6754,7 @@ msgstr "" #: src/tables/bom/BomTable.tsx:330 msgid "Validated" -msgstr "" +msgstr "Kinnitatud" #: src/tables/bom/BomTable.tsx:331 msgid "Show validated items" @@ -5688,7 +6771,7 @@ msgstr "" #: src/tables/bom/BomTable.tsx:335 #: src/tables/bom/UsedInTable.tsx:74 msgid "Inherited" -msgstr "" +msgstr "Päritud" #: src/tables/bom/BomTable.tsx:336 #: src/tables/bom/UsedInTable.tsx:75 @@ -5701,13 +6784,13 @@ msgstr "" #: src/tables/bom/BomTable.tsx:341 msgid "Show items which allow variant substitution" -msgstr "" +msgstr "Näita esemeid, mis lubavad variatsiooni asendamist" #: src/tables/bom/BomTable.tsx:345 #: src/tables/bom/UsedInTable.tsx:79 -#: src/tables/build/BuildLineTable.tsx:58 +#: src/tables/build/BuildLineTable.tsx:189 msgid "Optional" -msgstr "" +msgstr "Valikuline" #: src/tables/bom/BomTable.tsx:346 #: src/tables/bom/UsedInTable.tsx:80 @@ -5723,7 +6806,7 @@ msgstr "" #~ msgstr "Bom item deleted" #: src/tables/bom/BomTable.tsx:350 -#: src/tables/build/BuildLineTable.tsx:53 +#: src/tables/build/BuildLineTable.tsx:184 msgid "Consumable" msgstr "" @@ -5746,15 +6829,15 @@ msgstr "" #: src/tables/bom/BomTable.tsx:356 msgid "Show items with pricing" -msgstr "" +msgstr "Näita esemeid hinnakujundusega" #: src/tables/bom/BomTable.tsx:378 -#: src/tables/bom/BomTable.tsx:511 +#: src/tables/bom/BomTable.tsx:512 msgid "Import BOM Data" msgstr "" #: src/tables/bom/BomTable.tsx:388 -#: src/tables/bom/BomTable.tsx:523 +#: src/tables/bom/BomTable.tsx:526 msgid "Add BOM Item" msgstr "" @@ -5780,13 +6863,13 @@ msgstr "" #: src/tables/bom/BomTable.tsx:423 #: src/tables/bom/BomTable.tsx:426 -#: src/tables/bom/BomTable.tsx:517 +#: src/tables/bom/BomTable.tsx:519 msgid "Validate BOM" msgstr "" #: src/tables/bom/BomTable.tsx:427 msgid "Do you want to validate the bill of materials for this assembly?" -msgstr "" +msgstr "Kas soovite selle koostamise jaoks koostamise nimekirja kontrollida?" #: src/tables/bom/BomTable.tsx:430 msgid "BOM validated" @@ -5798,7 +6881,7 @@ msgstr "" #: src/tables/bom/BomTable.tsx:451 msgid "Failed to validate BOM item" -msgstr "" +msgstr "BOM-i toote kontroll ebaõnnestus" #: src/tables/bom/BomTable.tsx:463 msgid "View BOM" @@ -5812,21 +6895,15 @@ msgstr "" msgid "Edit Substitutes" msgstr "" -#: src/tables/bom/BomTable.tsx:539 -#: src/tables/part/PartParameterTable.tsx:193 -#: src/tables/part/PartTestTemplateTable.tsx:252 -msgid "Part is Locked" -msgstr "" - -#: src/tables/bom/BomTable.tsx:544 +#: src/tables/bom/BomTable.tsx:547 msgid "Bill of materials cannot be edited, as the part is locked" -msgstr "" +msgstr "Tükkide loendit ei saa redigeerida, kuna osa on lukustatud" #: src/tables/bom/UsedInTable.tsx:33 -#: src/tables/build/BuildLineTable.tsx:63 +#: src/tables/build/BuildLineTable.tsx:194 #: src/tables/part/ParametricPartTable.tsx:233 #: src/tables/part/PartTable.tsx:190 -#: src/tables/stock/StockItemTable.tsx:300 +#: src/tables/stock/StockItemTable.tsx:304 msgid "Assembly" msgstr "" @@ -5838,421 +6915,486 @@ msgstr "" #: src/tables/part/PartTable.tsx:214 #: src/tables/part/PartVariantTable.tsx:30 msgid "Trackable" -msgstr "" +msgstr "Jälgitav" #: src/tables/bom/UsedInTable.tsx:90 msgid "Show trackable assemblies" -msgstr "" +msgstr "Näita jälgitavaid koosteid" -#: src/tables/build/BuildAllocatedStockTable.tsx:54 +#: src/tables/build/BuildAllocatedStockTable.tsx:56 msgid "Allocated to Output" msgstr "" -#: src/tables/build/BuildAllocatedStockTable.tsx:55 +#: src/tables/build/BuildAllocatedStockTable.tsx:57 msgid "Show items allocated to a build output" +msgstr "Näita esemete eraldatud ehituse väljundit" + +#: src/tables/build/BuildAllocatedStockTable.tsx:65 +#: src/tables/build/BuildOrderTable.tsx:159 +#: src/tables/part/PartParameterTable.tsx:212 +#: src/tables/part/PartPurchaseOrdersTable.tsx:138 +#: src/tables/sales/ReturnOrderTable.tsx:84 +#: src/tables/sales/SalesOrderAllocationTable.tsx:68 +#: src/tables/sales/SalesOrderTable.tsx:84 +#: src/tables/stock/StockItemTable.tsx:339 +msgid "Include Variants" msgstr "" -#: src/tables/build/BuildAllocatedStockTable.tsx:76 -#: src/tables/part/PartPurchaseOrdersTable.tsx:125 -#: src/tables/sales/SalesOrderAllocationTable.tsx:62 +#: src/tables/build/BuildAllocatedStockTable.tsx:66 +#: src/tables/build/BuildOrderTable.tsx:160 +#: src/tables/part/PartPurchaseOrdersTable.tsx:139 +#: src/tables/sales/ReturnOrderTable.tsx:85 +#: src/tables/sales/SalesOrderAllocationTable.tsx:69 +#: src/tables/sales/SalesOrderTable.tsx:85 +msgid "Include orders for part variants" +msgstr "" + +#: src/tables/build/BuildAllocatedStockTable.tsx:89 +#: src/tables/part/PartPurchaseOrdersTable.tsx:131 +#: src/tables/sales/SalesOrderAllocationTable.tsx:93 msgid "Order Status" msgstr "" -#: src/tables/build/BuildAllocatedStockTable.tsx:96 -#: src/tables/sales/SalesOrderAllocationTable.tsx:75 +#: src/tables/build/BuildAllocatedStockTable.tsx:117 +#: src/tables/sales/SalesOrderAllocationTable.tsx:126 msgid "Allocated Quantity" msgstr "" -#: src/tables/build/BuildAllocatedStockTable.tsx:116 -#: src/tables/sales/SalesOrderAllocationTable.tsx:94 +#: src/tables/build/BuildAllocatedStockTable.tsx:137 +#: src/tables/sales/SalesOrderAllocationTable.tsx:120 msgid "Available Quantity" msgstr "" -#: src/tables/build/BuildAllocatedStockTable.tsx:126 -#: src/tables/build/BuildOrderTestTable.tsx:176 -#: src/tables/build/BuildOrderTestTable.tsx:200 -#: src/tables/build/BuildOutputTable.tsx:312 -msgid "Build Output" +#: src/tables/build/BuildAllocatedStockTable.tsx:164 +#: src/tables/build/BuildLineTable.tsx:513 +msgid "Edit Stock Allocation" msgstr "" -#: src/tables/build/BuildAllocatedStockTable.tsx:143 -msgid "Edit Build Item" -msgstr "" +#: src/tables/build/BuildAllocatedStockTable.tsx:164 +#~ msgid "Edit Build Item" +#~ msgstr "Edit Build Item" -#: src/tables/build/BuildAllocatedStockTable.tsx:153 -msgid "Delete Build Item" -msgstr "" +#: src/tables/build/BuildAllocatedStockTable.tsx:174 +#~ msgid "Delete Build Item" +#~ msgstr "Delete Build Item" -#: src/tables/build/BuildLineTable.tsx:43 -#: src/tables/stock/StockItemTable.tsx:305 -msgid "Allocated" -msgstr "" - -#: src/tables/build/BuildLineTable.tsx:44 -msgid "Show allocated lines" -msgstr "" - -#: src/tables/build/BuildLineTable.tsx:49 -msgid "Show lines with available stock" -msgstr "" - -#: src/tables/build/BuildLineTable.tsx:54 -msgid "Show consumable lines" +#: src/tables/build/BuildAllocatedStockTable.tsx:177 +#: src/tables/build/BuildLineTable.tsx:526 +msgid "Delete Stock Allocation" msgstr "" #: src/tables/build/BuildLineTable.tsx:59 +#~ msgid "Show lines with available stock" +#~ msgstr "Show lines with available stock" + +#: src/tables/build/BuildLineTable.tsx:175 +msgid "Show allocated lines" +msgstr "" + +#: src/tables/build/BuildLineTable.tsx:185 +msgid "Show consumable lines" +msgstr "" + +#: src/tables/build/BuildLineTable.tsx:190 msgid "Show optional lines" msgstr "" -#: src/tables/build/BuildLineTable.tsx:68 +#: src/tables/build/BuildLineTable.tsx:199 #: src/tables/part/PartTable.tsx:208 msgid "Testable" msgstr "" -#: src/tables/build/BuildLineTable.tsx:73 -#: src/tables/stock/StockItemTable.tsx:364 +#: src/tables/build/BuildLineTable.tsx:204 +#: src/tables/stock/StockItemTable.tsx:368 msgid "Tracked" msgstr "" -#: src/tables/build/BuildLineTable.tsx:74 +#: src/tables/build/BuildLineTable.tsx:205 msgid "Show tracked lines" msgstr "" -#: src/tables/build/BuildLineTable.tsx:108 -#: src/tables/sales/SalesOrderLineItemTable.tsx:133 +#: src/tables/build/BuildLineTable.tsx:239 +#: src/tables/sales/SalesOrderLineItemTable.tsx:141 msgid "In production" msgstr "" -#: src/tables/build/BuildLineTable.tsx:136 +#: src/tables/build/BuildLineTable.tsx:267 msgid "Insufficient stock" msgstr "" -#: src/tables/build/BuildLineTable.tsx:152 -#: src/tables/sales/SalesOrderLineItemTable.tsx:121 -#: src/tables/stock/StockItemTable.tsx:186 +#: src/tables/build/BuildLineTable.tsx:283 +#: src/tables/sales/SalesOrderLineItemTable.tsx:129 +#: src/tables/stock/StockItemTable.tsx:175 msgid "No stock available" msgstr "" -#: src/tables/build/BuildLineTable.tsx:201 +#: src/tables/build/BuildLineTable.tsx:355 msgid "Gets Inherited" msgstr "" -#: src/tables/build/BuildLineTable.tsx:210 +#: src/tables/build/BuildLineTable.tsx:366 msgid "Unit Quantity" msgstr "" -#: src/tables/build/BuildLineTable.tsx:267 -#: src/tables/sales/SalesOrderLineItemTable.tsx:230 +#: src/tables/build/BuildLineTable.tsx:381 +msgid "Required Quantity" +msgstr "" + +#: src/tables/build/BuildLineTable.tsx:432 +#: src/tables/sales/SalesOrderLineItemTable.tsx:254 msgid "Create Build Order" msgstr "" -#: src/tables/build/BuildLineTable.tsx:298 -msgid "Allocate Stock" +#: src/tables/build/BuildLineTable.tsx:460 +msgid "Auto allocation in progress" +msgstr "Automaatne eraldamine on käimas" + +#: src/tables/build/BuildLineTable.tsx:463 +#: src/tables/build/BuildLineTable.tsx:632 +msgid "Auto Allocate Stock" msgstr "" -#: src/tables/build/BuildLineTable.tsx:305 +#: src/tables/build/BuildLineTable.tsx:464 +msgid "Automatically allocate stock to this build according to the selected options" +msgstr "Määra laoseis sellele koostetellimusele automaatselt vastavalt valitud valikutele" + +#: src/tables/build/BuildLineTable.tsx:482 +#: src/tables/build/BuildLineTable.tsx:496 +#: src/tables/build/BuildLineTable.tsx:579 +#: src/tables/build/BuildLineTable.tsx:664 +#: src/tables/build/BuildOutputTable.tsx:314 +#: src/tables/build/BuildOutputTable.tsx:319 +msgid "Deallocate Stock" +msgstr "" + +#: src/tables/build/BuildLineTable.tsx:498 +msgid "Deallocate all untracked stock for this build order" +msgstr "Tühista kõik jälgimata laoseisu eraldised selle koostetellimuse jaoks" + +#: src/tables/build/BuildLineTable.tsx:500 +msgid "Deallocate stock from the selected line item" +msgstr "Tühista laoseisu eraldamine valitud reaüksusest" + +#: src/tables/build/BuildLineTable.tsx:504 +msgid "Stock has been deallocated" +msgstr "Laoseisu eraldamine on tühistatud" + +#: src/tables/build/BuildLineTable.tsx:589 msgid "Order Stock" msgstr "" -#: src/tables/build/BuildLineTable.tsx:312 +#: src/tables/build/BuildLineTable.tsx:596 msgid "Build Stock" msgstr "" -#: src/tables/build/BuildOrderTable.tsx:111 -msgid "Show active orders" +#: src/tables/build/BuildLineTable.tsx:610 +msgid "View Part" msgstr "" #: src/tables/build/BuildOrderTable.tsx:116 -msgid "Cascade" -msgstr "" +#~ msgid "Cascade" +#~ msgstr "Cascade" #: src/tables/build/BuildOrderTable.tsx:117 -msgid "Display recursive child orders" -msgstr "" +#~ msgid "Display recursive child orders" +#~ msgstr "Display recursive child orders" -#: src/tables/build/BuildOrderTable.tsx:123 -#: src/tables/part/PartPurchaseOrdersTable.tsx:126 -#: src/tables/purchasing/PurchaseOrderTable.tsx:56 -#: src/tables/sales/ReturnOrderTable.tsx:47 -#: src/tables/sales/SalesOrderTable.tsx:54 +#: src/tables/build/BuildOrderTable.tsx:121 +msgid "Show outstanding orders" +msgstr "Näita väljapaistvaid tellimusi" + +#: src/tables/build/BuildOrderTable.tsx:121 +#~ msgid "Show active orders" +#~ msgstr "Show active orders" + +#: src/tables/build/BuildOrderTable.tsx:122 +#~ msgid "Show overdue status" +#~ msgstr "Show overdue status" + +#: src/tables/build/BuildOrderTable.tsx:126 +#: src/tables/part/PartPurchaseOrdersTable.tsx:132 +#: src/tables/purchasing/PurchaseOrderTable.tsx:59 +#: src/tables/sales/ReturnOrderTable.tsx:57 +#: src/tables/sales/SalesOrderTable.tsx:57 msgid "Filter by order status" msgstr "" -#: src/tables/build/BuildOrderTable.tsx:130 -msgid "Show overdue status" -msgstr "" - -#: src/tables/build/BuildOrderTable.tsx:141 -#: src/tables/purchasing/PurchaseOrderTable.tsx:65 -#: src/tables/sales/ReturnOrderTable.tsx:56 -#: src/tables/sales/SalesOrderTable.tsx:63 +#: src/tables/build/BuildOrderTable.tsx:136 +#: src/tables/purchasing/PurchaseOrderTable.tsx:70 +#: src/tables/sales/ReturnOrderTable.tsx:68 +#: src/tables/sales/SalesOrderTable.tsx:68 msgid "Filter by project code" msgstr "" -#: src/tables/build/BuildOrderTable.tsx:146 -#: src/tables/purchasing/PurchaseOrderTable.tsx:70 -#: src/tables/sales/ReturnOrderTable.tsx:61 -#: src/tables/sales/SalesOrderTable.tsx:68 -msgid "Has Project Code" -msgstr "" - -#: src/tables/build/BuildOrderTable.tsx:147 +#: src/tables/build/BuildOrderTable.tsx:139 #: src/tables/purchasing/PurchaseOrderTable.tsx:71 #: src/tables/sales/ReturnOrderTable.tsx:62 #: src/tables/sales/SalesOrderTable.tsx:69 -msgid "Filter by whether the purchase order has a project code" -msgstr "" +#~ msgid "Filter by whether the purchase order has a project code" +#~ msgstr "Filter by whether the purchase order has a project code" -#: src/tables/build/BuildOrderTable.tsx:152 +#: src/tables/build/BuildOrderTable.tsx:143 msgid "Filter by user who issued this order" -msgstr "" +msgstr "Filtreerige kasutaja järgi, kes selle tellimuse tegi" -#: src/tables/build/BuildOrderTable.tsx:158 -#: src/tables/purchasing/PurchaseOrderTable.tsx:76 -#: src/tables/sales/ReturnOrderTable.tsx:67 -#: src/tables/sales/SalesOrderTable.tsx:74 +#: src/tables/build/BuildOrderTable.tsx:149 +#: src/tables/purchasing/PurchaseOrderTable.tsx:77 +#: src/tables/sales/ReturnOrderTable.tsx:75 +#: src/tables/sales/SalesOrderTable.tsx:75 msgid "Filter by responsible owner" -msgstr "" +msgstr "Filtreerige vastutava omaniku järgi" -#: src/tables/build/BuildOrderTestTable.tsx:75 -#: src/tables/build/BuildOrderTestTable.tsx:111 -#: src/tables/stock/StockItemTestResultTable.tsx:257 -#: src/tables/stock/StockItemTestResultTable.tsx:329 -#: src/tables/stock/StockItemTestResultTable.tsx:384 +#: src/tables/build/BuildOrderTestTable.tsx:76 +#: src/tables/build/BuildOrderTestTable.tsx:112 +#: src/tables/stock/StockItemTestResultTable.tsx:275 +#: src/tables/stock/StockItemTestResultTable.tsx:347 +#: src/tables/stock/StockItemTestResultTable.tsx:403 msgid "Add Test Result" msgstr "Lisa testi tulemus" -#: src/tables/build/BuildOrderTestTable.tsx:82 -#: src/tables/stock/StockItemTestResultTable.tsx:259 +#: src/tables/build/BuildOrderTestTable.tsx:83 +#: src/tables/stock/StockItemTestResultTable.tsx:277 msgid "Test result added" msgstr "Testi tulemus lisatud" -#: src/tables/build/BuildOrderTestTable.tsx:110 -#: src/tables/stock/StockItemTestResultTable.tsx:174 +#: src/tables/build/BuildOrderTestTable.tsx:111 +#: src/tables/stock/StockItemTestResultTable.tsx:180 msgid "No Result" msgstr "Tulemus puudub" -#: src/tables/build/BuildOrderTestTable.tsx:220 +#: src/tables/build/BuildOrderTestTable.tsx:221 msgid "Show build outputs currently in production" +msgstr "Kuva praegu tootmises olevad ehitustulemid" + +#: src/tables/build/BuildOutputTable.tsx:76 +msgid "Build Output Stock Allocation" msgstr "" #: src/tables/build/BuildOutputTable.tsx:161 #~ msgid "Delete build output" #~ msgstr "Delete build output" -#: src/tables/build/BuildOutputTable.tsx:173 -#: src/tables/build/BuildOutputTable.tsx:211 +#: src/tables/build/BuildOutputTable.tsx:258 +#: src/tables/build/BuildOutputTable.tsx:374 msgid "Add Build Output" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:216 -msgid "Complete selected outputs" +#: src/tables/build/BuildOutputTable.tsx:304 +#~ msgid "Edit build output" +#~ msgstr "Edit build output" + +#: src/tables/build/BuildOutputTable.tsx:306 +#: src/tables/build/BuildOutputTable.tsx:417 +msgid "Edit Build Output" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:226 +#: src/tables/build/BuildOutputTable.tsx:321 +msgid "This action will deallocate all stock from the selected build output" +msgstr "" + +#: src/tables/build/BuildOutputTable.tsx:341 +msgid "Complete selected outputs" +msgstr "Valige valitud väljundid lõpule" + +#: src/tables/build/BuildOutputTable.tsx:352 msgid "Scrap selected outputs" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:236 +#: src/tables/build/BuildOutputTable.tsx:363 msgid "Cancel selected outputs" -msgstr "" +msgstr "Tühistage valitud väljundid" -#: src/tables/build/BuildOutputTable.tsx:252 +#: src/tables/build/BuildOutputTable.tsx:385 msgid "Allocate" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:253 +#: src/tables/build/BuildOutputTable.tsx:386 msgid "Allocate stock to build output" -msgstr "" +msgstr "Võtke lao jääk, et luua väljund" -#: src/tables/build/BuildOutputTable.tsx:259 +#: src/tables/build/BuildOutputTable.tsx:396 msgid "Deallocate" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:260 +#: src/tables/build/BuildOutputTable.tsx:397 msgid "Deallocate stock from build output" -msgstr "" +msgstr "Võtke lao jääk väljundist" -#: src/tables/build/BuildOutputTable.tsx:267 +#: src/tables/build/BuildOutputTable.tsx:408 msgid "Complete build output" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:276 +#: src/tables/build/BuildOutputTable.tsx:424 msgid "Scrap" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:277 +#: src/tables/build/BuildOutputTable.tsx:425 msgid "Scrap build output" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:280 -#~ msgid "Allocated Items" -#~ msgstr "Allocated Items" - -#: src/tables/build/BuildOutputTable.tsx:287 +#: src/tables/build/BuildOutputTable.tsx:435 msgid "Cancel build output" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:325 -msgid "Batch" -msgstr "" - -#: src/tables/build/BuildOutputTable.tsx:340 +#: src/tables/build/BuildOutputTable.tsx:488 msgid "Allocated Lines" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:355 +#: src/tables/build/BuildOutputTable.tsx:503 msgid "Required Tests" msgstr "" -#: src/tables/company/AddressTable.tsx:121 -#: src/tables/company/AddressTable.tsx:185 +#: src/tables/company/AddressTable.tsx:118 +#: src/tables/company/AddressTable.tsx:183 msgid "Add Address" -msgstr "" +msgstr "Lisa aadress" -#: src/tables/company/AddressTable.tsx:126 +#: src/tables/company/AddressTable.tsx:123 msgid "Address created" -msgstr "" +msgstr "Aadress on loodud" -#: src/tables/company/AddressTable.tsx:135 +#: src/tables/company/AddressTable.tsx:132 msgid "Edit Address" -msgstr "" +msgstr "Muuda aadressi" -#: src/tables/company/AddressTable.tsx:143 +#: src/tables/company/AddressTable.tsx:140 msgid "Delete Address" -msgstr "" +msgstr "Kustuta aadress" -#: src/tables/company/AddressTable.tsx:144 +#: src/tables/company/AddressTable.tsx:141 msgid "Are you sure you want to delete this address?" -msgstr "" +msgstr "Kas olete kindel, et soovite selle aadressi kustutada?" #: src/tables/company/CompanyTable.tsx:71 #~ msgid "New Company" #~ msgstr "New Company" -#: src/tables/company/CompanyTable.tsx:74 -#: src/tables/company/CompanyTable.tsx:123 +#: src/tables/company/CompanyTable.tsx:75 +#: src/tables/company/CompanyTable.tsx:125 msgid "Add Company" -msgstr "" +msgstr "Lisa ettevõte" -#: src/tables/company/CompanyTable.tsx:96 +#: src/tables/company/CompanyTable.tsx:97 msgid "Show active companies" -msgstr "" +msgstr "Näita aktiivseid ettevõtteid" -#: src/tables/company/CompanyTable.tsx:101 +#: src/tables/company/CompanyTable.tsx:102 msgid "Show companies which are suppliers" -msgstr "" +msgstr "Näita ettevõtteid, mis on tarnijad" -#: src/tables/company/CompanyTable.tsx:106 +#: src/tables/company/CompanyTable.tsx:107 msgid "Show companies which are manufacturers" -msgstr "" +msgstr "Kuva ettevõtteid, mis on tootjad" -#: src/tables/company/CompanyTable.tsx:111 +#: src/tables/company/CompanyTable.tsx:112 msgid "Show companies which are customers" -msgstr "" +msgstr "Kuva ettevõtteid, mis on kliendid" #: src/tables/company/ContactTable.tsx:71 msgid "Edit Contact" -msgstr "" +msgstr "Muuda kontakti" #: src/tables/company/ContactTable.tsx:78 msgid "Add Contact" -msgstr "" +msgstr "Lisa kontakt" #: src/tables/company/ContactTable.tsx:89 msgid "Delete Contact" -msgstr "" +msgstr "Kustuta kontakt" -#: src/tables/company/ContactTable.tsx:129 +#: src/tables/company/ContactTable.tsx:130 msgid "Add contact" -msgstr "" +msgstr "Lisa kontakt" -#: src/tables/general/AttachmentTable.tsx:130 +#: src/tables/general/AttachmentTable.tsx:135 msgid "File uploaded" -msgstr "" +msgstr "Fail on üles laaditud" -#: src/tables/general/AttachmentTable.tsx:131 +#: src/tables/general/AttachmentTable.tsx:136 msgid "File {0} uploaded successfully" -msgstr "" +msgstr "Fail {0} edukalt üles laetud" -#: src/tables/general/AttachmentTable.tsx:142 +#: src/tables/general/AttachmentTable.tsx:147 msgid "Upload Error" -msgstr "" +msgstr "Üleslaadmise tõrge" -#: src/tables/general/AttachmentTable.tsx:143 +#: src/tables/general/AttachmentTable.tsx:148 msgid "File could not be uploaded" -msgstr "" +msgstr "Faili üleslaadimine ebaõnnestus" -#: src/tables/general/AttachmentTable.tsx:191 +#: src/tables/general/AttachmentTable.tsx:196 msgid "Upload Attachment" -msgstr "" +msgstr "Laadi manused üles" -#: src/tables/general/AttachmentTable.tsx:201 +#: src/tables/general/AttachmentTable.tsx:206 msgid "Edit Attachment" -msgstr "" +msgstr "Muuda manust" -#: src/tables/general/AttachmentTable.tsx:215 +#: src/tables/general/AttachmentTable.tsx:220 msgid "Delete Attachment" -msgstr "" +msgstr "Kustuta manus" -#: src/tables/general/AttachmentTable.tsx:225 +#: src/tables/general/AttachmentTable.tsx:230 msgid "Is Link" -msgstr "" +msgstr "On link" -#: src/tables/general/AttachmentTable.tsx:226 +#: src/tables/general/AttachmentTable.tsx:231 msgid "Show link attachments" msgstr "" -#: src/tables/general/AttachmentTable.tsx:230 +#: src/tables/general/AttachmentTable.tsx:235 msgid "Is File" msgstr "" -#: src/tables/general/AttachmentTable.tsx:231 +#: src/tables/general/AttachmentTable.tsx:236 msgid "Show file attachments" msgstr "" -#: src/tables/general/AttachmentTable.tsx:240 +#: src/tables/general/AttachmentTable.tsx:245 msgid "Add attachment" msgstr "" -#: src/tables/general/AttachmentTable.tsx:251 -msgid "Add external link" -msgstr "" - #: src/tables/general/AttachmentTable.tsx:254 #~ msgid "Upload attachment" #~ msgstr "Upload attachment" -#: src/tables/general/AttachmentTable.tsx:299 +#: src/tables/general/AttachmentTable.tsx:256 +msgid "Add external link" +msgstr "" + +#: src/tables/general/AttachmentTable.tsx:304 msgid "No attachments found" msgstr "" -#: src/tables/general/AttachmentTable.tsx:337 +#: src/tables/general/AttachmentTable.tsx:343 msgid "Drag attachment file here to upload" -msgstr "" +msgstr "Lohistage manusefail siia üles laadimiseks" #: src/tables/general/ExtraLineItemTable.tsx:86 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:251 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:60 -#: src/tables/sales/SalesOrderLineItemTable.tsx:196 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:263 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:362 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:72 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:168 +#: src/tables/sales/SalesOrderLineItemTable.tsx:206 +#: src/tables/sales/SalesOrderLineItemTable.tsx:291 msgid "Add Line Item" msgstr "" #: src/tables/general/ExtraLineItemTable.tsx:98 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:271 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:72 -#: src/tables/sales/SalesOrderLineItemTable.tsx:214 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:283 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:84 +#: src/tables/sales/SalesOrderLineItemTable.tsx:224 msgid "Edit Line Item" msgstr "" #: src/tables/general/ExtraLineItemTable.tsx:106 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:279 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:80 -#: src/tables/sales/SalesOrderLineItemTable.tsx:222 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:291 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:92 +#: src/tables/sales/SalesOrderLineItemTable.tsx:232 msgid "Delete Line Item" msgstr "" -#: src/tables/general/ExtraLineItemTable.tsx:142 +#: src/tables/general/ExtraLineItemTable.tsx:143 msgid "Add Extra Line Item" msgstr "" @@ -6261,68 +7403,67 @@ msgid "Machine restarted" msgstr "" #: src/tables/machine/MachineListTable.tsx:212 -#: src/tables/machine/MachineListTable.tsx:263 +#: src/tables/machine/MachineListTable.tsx:261 msgid "Edit machine" msgstr "" #: src/tables/machine/MachineListTable.tsx:226 -#: src/tables/machine/MachineListTable.tsx:267 +#: src/tables/machine/MachineListTable.tsx:265 msgid "Delete machine" msgstr "" #: src/tables/machine/MachineListTable.tsx:227 msgid "Machine successfully deleted." -msgstr "" +msgstr "Masin kustutati edukalt." #: src/tables/machine/MachineListTable.tsx:231 msgid "Are you sure you want to remove the machine \"{0}\"?" -msgstr "" +msgstr "Kas olete kindel, et soovite eemaldada masina \"{0}\"?" -#: src/tables/machine/MachineListTable.tsx:255 -#: src/tables/machine/MachineListTable.tsx:432 +#: src/tables/machine/MachineListTable.tsx:254 +#: src/tables/machine/MachineListTable.tsx:442 msgid "Restart required" msgstr "" -#: src/tables/machine/MachineListTable.tsx:259 +#: src/tables/machine/MachineListTable.tsx:258 msgid "Machine Actions" msgstr "" -#: src/tables/machine/MachineListTable.tsx:272 +#: src/tables/machine/MachineListTable.tsx:270 msgid "Restart" -msgstr "" +msgstr "Taaskäivita" -#: src/tables/machine/MachineListTable.tsx:274 +#: src/tables/machine/MachineListTable.tsx:272 msgid "Restart machine" msgstr "" -#: src/tables/machine/MachineListTable.tsx:276 +#: src/tables/machine/MachineListTable.tsx:274 msgid "manual restart required" -msgstr "" +msgstr "käsitsi taaskäivitamine vajalik" + +#: src/tables/machine/MachineListTable.tsx:291 +#~ msgid "Machine information" +#~ msgstr "Machine information" #: src/tables/machine/MachineListTable.tsx:292 -msgid "Machine information" +msgid "Machine Information" msgstr "" -#: src/tables/machine/MachineListTable.tsx:303 -#: src/tables/machine/MachineListTable.tsx:599 +#: src/tables/machine/MachineListTable.tsx:302 +#: src/tables/machine/MachineListTable.tsx:610 msgid "Machine Type" msgstr "" -#: src/tables/machine/MachineListTable.tsx:316 +#: src/tables/machine/MachineListTable.tsx:315 msgid "Machine Driver" msgstr "" -#: src/tables/machine/MachineListTable.tsx:329 +#: src/tables/machine/MachineListTable.tsx:330 msgid "Initialized" msgstr "" -#: src/tables/machine/MachineListTable.tsx:350 -#: src/tables/machine/MachineTypeTable.tsx:261 -msgid "Errors" -msgstr "" - -#: src/tables/machine/MachineListTable.tsx:358 -#: src/tables/machine/MachineTypeTable.tsx:269 +#: src/tables/machine/MachineListTable.tsx:359 +#: src/tables/machine/MachineTypeTable.tsx:290 msgid "No errors reported" msgstr "" @@ -6330,7 +7471,7 @@ msgstr "" msgid "Machine Settings" msgstr "" -#: src/tables/machine/MachineListTable.tsx:389 +#: src/tables/machine/MachineListTable.tsx:394 msgid "Driver Settings" msgstr "" @@ -6338,92 +7479,115 @@ msgstr "" #~ msgid "Create machine" #~ msgstr "Create machine" -#: src/tables/machine/MachineListTable.tsx:506 +#: src/tables/machine/MachineListTable.tsx:516 +#: src/tables/machine/MachineListTable.tsx:558 msgid "Add machine" msgstr "" #: src/tables/machine/MachineListTable.tsx:561 -msgid "Machine detail" +#~ msgid "Machine detail" +#~ msgstr "Machine detail" + +#: src/tables/machine/MachineListTable.tsx:572 +msgid "Machine Detail" msgstr "" -#: src/tables/machine/MachineListTable.tsx:608 +#: src/tables/machine/MachineListTable.tsx:619 msgid "Driver" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:73 +#: src/tables/machine/MachineTypeTable.tsx:78 msgid "Builtin driver" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:89 +#: src/tables/machine/MachineTypeTable.tsx:96 +msgid "Not Found" +msgstr "" + +#: src/tables/machine/MachineTypeTable.tsx:99 msgid "Machine type not found." +msgstr "Seadme tüüpi ei leitud." + +#: src/tables/machine/MachineTypeTable.tsx:99 +#~ msgid "Machine type information" +#~ msgstr "Machine type information" + +#: src/tables/machine/MachineTypeTable.tsx:109 +msgid "Machine Type Information" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:97 -msgid "Machine type information" -msgstr "" - -#: src/tables/machine/MachineTypeTable.tsx:110 -#: src/tables/machine/MachineTypeTable.tsx:217 +#: src/tables/machine/MachineTypeTable.tsx:124 +#: src/tables/machine/MachineTypeTable.tsx:238 msgid "Slug" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:118 -#: src/tables/machine/MachineTypeTable.tsx:238 +#: src/tables/machine/MachineTypeTable.tsx:135 +#: src/tables/machine/MachineTypeTable.tsx:259 msgid "Provider plugin" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:130 -#: src/tables/machine/MachineTypeTable.tsx:250 +#: src/tables/machine/MachineTypeTable.tsx:147 +#: src/tables/machine/MachineTypeTable.tsx:271 msgid "Provider file" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:135 -#: src/tables/machine/MachineTypeTable.tsx:255 -#: src/tables/plugin/PluginListTable.tsx:180 -#: src/tables/plugin/PluginListTable.tsx:568 -msgid "Builtin" +#: src/tables/machine/MachineTypeTable.tsx:148 +#~ msgid "Available drivers" +#~ msgstr "Available drivers" + +#: src/tables/machine/MachineTypeTable.tsx:162 +msgid "Available Drivers" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:146 -msgid "Available drivers" -msgstr "" - -#: src/tables/machine/MachineTypeTable.tsx:196 +#: src/tables/machine/MachineTypeTable.tsx:217 msgid "Machine driver not found." -msgstr "" +msgstr "Masinajuhti ei leitud." -#: src/tables/machine/MachineTypeTable.tsx:204 +#: src/tables/machine/MachineTypeTable.tsx:225 msgid "Machine driver information" -msgstr "" +msgstr "Masinajuhi informatsioon" -#: src/tables/machine/MachineTypeTable.tsx:224 +#: src/tables/machine/MachineTypeTable.tsx:245 msgid "Machine type" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:327 +#: src/tables/machine/MachineTypeTable.tsx:338 +#~ msgid "Machine type detail" +#~ msgstr "Machine type detail" + +#: src/tables/machine/MachineTypeTable.tsx:348 msgid "Builtin type" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:336 -msgid "Machine type detail" +#: src/tables/machine/MachineTypeTable.tsx:348 +#~ msgid "Machine driver detail" +#~ msgstr "Machine driver detail" + +#: src/tables/machine/MachineTypeTable.tsx:357 +msgid "Machine Type Detail" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:346 -msgid "Machine driver detail" +#: src/tables/machine/MachineTypeTable.tsx:367 +msgid "Machine Driver Detail" msgstr "" #: src/tables/notifications/NotificationsTable.tsx:26 msgid "Age" -msgstr "" +msgstr "Vanus" + +#: src/tables/notifications/NotificationsTable.tsx:36 +msgid "Notification" +msgstr "Teavitus" #: src/tables/notifications/NotificationsTable.tsx:40 #: src/tables/plugin/PluginErrorTable.tsx:37 +#: src/tables/settings/ErrorTable.tsx:50 msgid "Message" -msgstr "" +msgstr "Sõnum" #: src/tables/part/ParametricPartTable.tsx:74 msgid "Click to edit" -msgstr "" +msgstr "Muutmiseks kliki" #: src/tables/part/ParametricPartTable.tsx:82 #~ msgid "Edit parameter" @@ -6431,7 +7595,7 @@ msgstr "" #: src/tables/part/ParametricPartTable.tsx:127 msgid "Add Part Parameter" -msgstr "" +msgstr "Lisa Osa Parameeter" #: src/tables/part/ParametricPartTable.tsx:141 #: src/tables/part/PartParameterTable.tsx:130 @@ -6451,33 +7615,32 @@ msgstr "" msgid "Show assembly parts" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:68 +#: src/tables/part/PartCategoryTable.tsx:48 +msgid "You are subscribed to notifications for this category" +msgstr "" + +#: src/tables/part/PartCategoryTable.tsx:80 #: src/tables/part/PartTable.tsx:196 msgid "Include Subcategories" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:69 +#: src/tables/part/PartCategoryTable.tsx:81 msgid "Include subcategories in results" -msgstr "" - -#: src/tables/part/PartCategoryTable.tsx:74 -msgid "Show structural categories" -msgstr "" - -#: src/tables/part/PartCategoryTable.tsx:78 -#: src/tables/part/PartTable.tsx:294 -msgid "Subscribed" -msgstr "" - -#: src/tables/part/PartCategoryTable.tsx:79 -msgid "Show categories to which the user is subscribed" -msgstr "" +msgstr "Kaasake alamkategooriad tulemustesse" #: src/tables/part/PartCategoryTable.tsx:86 +msgid "Show structural categories" +msgstr "Näita struktuurikategooriaid" + +#: src/tables/part/PartCategoryTable.tsx:91 +msgid "Show categories to which the user is subscribed" +msgstr "Näita kategooriaid, millele kasutaja on tellinud" + +#: src/tables/part/PartCategoryTable.tsx:100 msgid "New Part Category" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:112 +#: src/tables/part/PartCategoryTable.tsx:129 msgid "Add Part Category" msgstr "" @@ -6488,15 +7651,15 @@ msgstr "" #: src/tables/part/PartCategoryTemplateTable.tsx:46 msgid "Edit Category Parameter" -msgstr "" +msgstr "Muuda kategooria parameetrit" #: src/tables/part/PartCategoryTemplateTable.tsx:54 msgid "Delete Category Parameter" -msgstr "" +msgstr "Kustuta kategooria parameeter" #: src/tables/part/PartCategoryTemplateTable.tsx:76 msgid "Parameter Template" -msgstr "" +msgstr "Parameetri mall" #: src/tables/part/PartCategoryTemplateTable.tsx:93 #~ msgid "[{0}]" @@ -6508,7 +7671,7 @@ msgstr "" #: src/tables/part/PartParameterTable.tsx:114 msgid "New Part Parameter" -msgstr "" +msgstr "Uus Osa Parameeter" #: src/tables/part/PartParameterTable.tsx:139 #: src/tables/part/PartParameterTable.tsx:161 @@ -6517,16 +7680,11 @@ msgstr "" #: src/tables/part/PartParameterTable.tsx:179 msgid "Add parameter" -msgstr "" +msgstr "Lisa parameeter" #: src/tables/part/PartParameterTable.tsx:198 msgid "Part parameters cannot be edited, as the part is locked" -msgstr "" - -#: src/tables/part/PartParameterTable.tsx:212 -#: src/tables/stock/StockItemTable.tsx:335 -msgid "Include Variants" -msgstr "" +msgstr "Osale osade parameetreid ei saa muuta, kuna osa on lukus" #: src/tables/part/PartParameterTemplateTable.tsx:31 msgid "Checkbox" @@ -6534,7 +7692,7 @@ msgstr "" #: src/tables/part/PartParameterTemplateTable.tsx:32 msgid "Show checkbox templates" -msgstr "" +msgstr "Näita märkeruutude malle" #: src/tables/part/PartParameterTemplateTable.tsx:36 msgid "Has choices" @@ -6542,7 +7700,7 @@ msgstr "" #: src/tables/part/PartParameterTemplateTable.tsx:37 msgid "Show templates with choices" -msgstr "" +msgstr "Kuva valikuga mallid" #: src/tables/part/PartParameterTemplateTable.tsx:41 #: src/tables/part/PartTable.tsx:220 @@ -6551,38 +7709,35 @@ msgstr "" #: src/tables/part/PartParameterTemplateTable.tsx:42 msgid "Show templates with units" -msgstr "" +msgstr "Näita malle ühikutega" #: src/tables/part/PartParameterTemplateTable.tsx:85 +#: src/tables/part/PartParameterTemplateTable.tsx:141 msgid "Add Parameter Template" msgstr "" #: src/tables/part/PartParameterTemplateTable.tsx:100 msgid "Edit Parameter Template" -msgstr "" +msgstr "Muuda parameetri mall" #: src/tables/part/PartParameterTemplateTable.tsx:111 msgid "Delete Parameter Template" -msgstr "" +msgstr "Kustuta parameetrite mall" #: src/tables/part/PartParameterTemplateTable.tsx:141 -msgid "Add parameter template" -msgstr "" +#~ msgid "Add parameter template" +#~ msgstr "Add parameter template" -#: src/tables/part/PartPurchaseOrdersTable.tsx:77 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:162 +#: src/tables/part/PartPurchaseOrdersTable.tsx:78 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:168 msgid "Total Quantity" msgstr "" -#: src/tables/part/PartPurchaseOrdersTable.tsx:115 -msgid "Pending" -msgstr "" - -#: src/tables/part/PartPurchaseOrdersTable.tsx:116 +#: src/tables/part/PartPurchaseOrdersTable.tsx:122 msgid "Show pending orders" msgstr "" -#: src/tables/part/PartPurchaseOrdersTable.tsx:121 +#: src/tables/part/PartPurchaseOrdersTable.tsx:127 msgid "Show received items" msgstr "" @@ -6592,35 +7747,35 @@ msgstr "" #: src/tables/part/PartTable.tsx:179 msgid "Filter by part active status" -msgstr "" +msgstr "Filtreeri osa aktiivse staatuse järgi" #: src/tables/part/PartTable.tsx:185 msgid "Filter by part locked status" -msgstr "" +msgstr "Filtreeri vastavalt osa lukustatud seisundile" #: src/tables/part/PartTable.tsx:191 msgid "Filter by assembly attribute" -msgstr "" +msgstr "Filtreeri koostise atribuudi järgi" #: src/tables/part/PartTable.tsx:197 msgid "Include parts in subcategories" -msgstr "" +msgstr "Kaasa osad alamkategooriatesse" #: src/tables/part/PartTable.tsx:203 msgid "Filter by component attribute" -msgstr "" +msgstr "Filtreeri komponendi atribuudi järgi" #: src/tables/part/PartTable.tsx:209 msgid "Filter by testable attribute" -msgstr "" +msgstr "Filtreeri testitava atribuudi järgi" #: src/tables/part/PartTable.tsx:215 msgid "Filter by trackable attribute" -msgstr "" +msgstr "Filtreerige jälgitava atribuudi järgi" #: src/tables/part/PartTable.tsx:221 msgid "Filter by parts which have units" -msgstr "" +msgstr "Filtreeri osade järgi, millel on ühikud" #: src/tables/part/PartTable.tsx:226 msgid "Has IPN" @@ -6628,7 +7783,7 @@ msgstr "" #: src/tables/part/PartTable.tsx:227 msgid "Filter by parts which have an internal part number" -msgstr "" +msgstr "Filtreeri osade järgi, millel on siseosade number" #: src/tables/part/PartTable.tsx:232 msgid "Has Stock" @@ -6636,11 +7791,11 @@ msgstr "" #: src/tables/part/PartTable.tsx:233 msgid "Filter by parts which have stock" -msgstr "" +msgstr "Filtreeri osade järgi, millel on laoseis" #: src/tables/part/PartTable.tsx:239 msgid "Filter by parts which have low stock" -msgstr "" +msgstr "Filtreeri osade järgi, millel on vähe laoseisu" #: src/tables/part/PartTable.tsx:244 msgid "Purchaseable" @@ -6648,7 +7803,7 @@ msgstr "" #: src/tables/part/PartTable.tsx:245 msgid "Filter by parts which are purchaseable" -msgstr "" +msgstr "Filtreeri osade järgi, mis on ostetavad" #: src/tables/part/PartTable.tsx:250 msgid "Salable" @@ -6656,7 +7811,7 @@ msgstr "" #: src/tables/part/PartTable.tsx:251 msgid "Filter by parts which are salable" -msgstr "" +msgstr "Filtreeri osade järgi, mis on müügiloaga" #: src/tables/part/PartTable.tsx:256 #: src/tables/part/PartTable.tsx:260 @@ -6666,7 +7821,7 @@ msgstr "" #: src/tables/part/PartTable.tsx:257 msgid "Filter by parts which are virtual" -msgstr "" +msgstr "Filtreeri osade järgi, mis on virtuaalsed" #: src/tables/part/PartTable.tsx:261 msgid "Not Virtual" @@ -6678,7 +7833,7 @@ msgstr "" #: src/tables/part/PartTable.tsx:267 msgid "Filter by parts which are templates" -msgstr "" +msgstr "Filtreeri osade järgi, mis on mallid" #: src/tables/part/PartTable.tsx:272 msgid "Is Revision" @@ -6686,7 +7841,7 @@ msgstr "" #: src/tables/part/PartTable.tsx:273 msgid "Filter by parts which are revisions" -msgstr "" +msgstr "Filtreeri osade järgi, mis on revisioonid" #: src/tables/part/PartTable.tsx:277 msgid "Has Revisions" @@ -6694,19 +7849,19 @@ msgstr "" #: src/tables/part/PartTable.tsx:278 msgid "Filter by parts which have revisions" -msgstr "" +msgstr "Filtreeri osade järgi, millel on revisioonid" #: src/tables/part/PartTable.tsx:283 msgid "Filter by parts which have pricing information" -msgstr "" +msgstr "Filtreeri osade järgi, millel on hinnateave" #: src/tables/part/PartTable.tsx:289 msgid "Filter by parts which have available stock" -msgstr "" +msgstr "Filtreeri osade järgi, millel on laoseis saadaval" #: src/tables/part/PartTable.tsx:295 msgid "Filter by parts to which the user is subscribed" -msgstr "" +msgstr "Filtreeri osade järgi, millele kasutaja on tellinud" #: src/tables/part/PartTable.tsx:300 msgid "Has Stocktake" @@ -6714,11 +7869,11 @@ msgstr "" #: src/tables/part/PartTable.tsx:301 msgid "Filter by parts which have stocktake information" -msgstr "" +msgstr "Filtreeri osade järgi, millel on inventuuriteave" #: src/tables/part/PartTestTemplateTable.tsx:50 msgid "Test is defined for a parent template part" -msgstr "" +msgstr "Test on määratud ülivanema malliosa jaoks" #: src/tables/part/PartTestTemplateTable.tsx:64 msgid "Template Details" @@ -6728,28 +7883,19 @@ msgstr "" msgid "Results" msgstr "" -#: src/tables/part/PartTestTemplateTable.tsx:76 -msgid "No Results" -msgstr "" - -#: src/tables/part/PartTestTemplateTable.tsx:106 -#: src/tables/stock/StockItemTestResultTable.tsx:365 -msgid "Required" -msgstr "" - #: src/tables/part/PartTestTemplateTable.tsx:107 msgid "Show required tests" msgstr "" #: src/tables/part/PartTestTemplateTable.tsx:111 -#: src/tables/settings/TemplateTable.tsx:167 -#: src/tables/settings/TemplateTable.tsx:283 +#: src/tables/settings/TemplateTable.tsx:247 +#: src/tables/settings/TemplateTable.tsx:363 msgid "Enabled" msgstr "" #: src/tables/part/PartTestTemplateTable.tsx:112 msgid "Show enabled tests" -msgstr "" +msgstr "Näita lubatud teste" #: src/tables/part/PartTestTemplateTable.tsx:116 msgid "Requires Value" @@ -6757,7 +7903,7 @@ msgstr "" #: src/tables/part/PartTestTemplateTable.tsx:117 msgid "Show tests that require a value" -msgstr "" +msgstr "Näita teste, mis nõuavad väärtust" #: src/tables/part/PartTestTemplateTable.tsx:121 msgid "Requires Attachment" @@ -6765,7 +7911,7 @@ msgstr "" #: src/tables/part/PartTestTemplateTable.tsx:122 msgid "Show tests that require an attachment" -msgstr "" +msgstr "Näita teste, mis nõuavad manusust" #: src/tables/part/PartTestTemplateTable.tsx:126 msgid "Include Inherited" @@ -6773,7 +7919,7 @@ msgstr "" #: src/tables/part/PartTestTemplateTable.tsx:127 msgid "Show tests from inherited templates" -msgstr "" +msgstr "Kuva testid pärilikelt mallidelt" #: src/tables/part/PartTestTemplateTable.tsx:131 msgid "Has Results" @@ -6781,16 +7927,16 @@ msgstr "" #: src/tables/part/PartTestTemplateTable.tsx:132 msgid "Show tests which have recorded results" -msgstr "" +msgstr "Kuva testid, millel on salvestatud tulemused" #: src/tables/part/PartTestTemplateTable.tsx:154 -#: src/tables/part/PartTestTemplateTable.tsx:237 +#: src/tables/part/PartTestTemplateTable.tsx:238 msgid "Add Test Template" msgstr "" #: src/tables/part/PartTestTemplateTable.tsx:170 msgid "Edit Test Template" -msgstr "" +msgstr "Muuda testi mall" #: src/tables/part/PartTestTemplateTable.tsx:181 msgid "Delete Test Template" @@ -6798,19 +7944,19 @@ msgstr "" #: src/tables/part/PartTestTemplateTable.tsx:183 msgid "This action cannot be reversed" -msgstr "" +msgstr "See toiming ei saa tagasi pöörata" #: src/tables/part/PartTestTemplateTable.tsx:185 msgid "Any tests results associated with this template will be deleted" -msgstr "" +msgstr "Kõik selle malliga seotud testi tulemused kustutatakse" #: src/tables/part/PartTestTemplateTable.tsx:204 msgid "View Parent Part" msgstr "" -#: src/tables/part/PartTestTemplateTable.tsx:257 +#: src/tables/part/PartTestTemplateTable.tsx:258 msgid "Part templates cannot be edited, as the part is locked" -msgstr "" +msgstr "Osa malle ei saa redigeerida, kuna osa on lukus" #: src/tables/part/PartThumbTable.tsx:201 msgid "Select" @@ -6834,43 +7980,60 @@ msgstr "" #: src/tables/part/PartVariantTable.tsx:31 msgid "Show trackable variants" -msgstr "" +msgstr "Näita jälgitavaid variante" -#: src/tables/part/RelatedPartTable.tsx:84 +#: src/tables/part/RelatedPartTable.tsx:86 +#: src/tables/part/RelatedPartTable.tsx:109 msgid "Add Related Part" msgstr "" -#: src/tables/part/RelatedPartTable.tsx:99 +#: src/tables/part/RelatedPartTable.tsx:101 msgid "Delete Related Part" msgstr "" -#: src/tables/part/RelatedPartTable.tsx:106 -msgid "Add related part" -msgstr "" +#: src/tables/part/RelatedPartTable.tsx:109 +#~ msgid "Add related part" +#~ msgstr "Add related part" #: src/tables/plugin/PluginErrorTable.tsx:29 msgid "Stage" msgstr "" -#: src/tables/plugin/PluginListTable.tsx:95 -msgid "Plugin with key {pluginKey} not found" +#: src/tables/plugin/PluginListTable.tsx:42 +msgid "Plugin is active" msgstr "" -#: src/tables/plugin/PluginListTable.tsx:97 -msgid "An error occurred while fetching plugin details" +#: src/tables/plugin/PluginListTable.tsx:48 +msgid "Plugin is inactive" +msgstr "Plugin on mitteaktiivne" + +#: src/tables/plugin/PluginListTable.tsx:55 +msgid "Plugin is not installed" msgstr "" +#: src/tables/plugin/PluginListTable.tsx:76 +msgid "Plugin" +msgstr "Plugin" + +#: src/tables/plugin/PluginListTable.tsx:95 +#~ msgid "Plugin with key {pluginKey} not found" +#~ msgstr "Plugin with key {pluginKey} not found" + +#: src/tables/plugin/PluginListTable.tsx:97 +#~ msgid "An error occurred while fetching plugin details" +#~ msgstr "An error occurred while fetching plugin details" + +#: src/tables/plugin/PluginListTable.tsx:109 +msgid "Description not available" +msgstr "Kirjeldust pole saadaval" + #: src/tables/plugin/PluginListTable.tsx:113 #~ msgid "Plugin with id {id} not found" #~ msgstr "Plugin with id {id} not found" #: src/tables/plugin/PluginListTable.tsx:122 -msgid "Plugin information" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:134 -msgid "Author" -msgstr "" +#~ msgid "Plugin information" +#~ msgstr "Plugin information" #: src/tables/plugin/PluginListTable.tsx:134 #~ msgid "Plugin Actions" @@ -6881,79 +8044,124 @@ msgstr "" #~ msgid "Edit plugin" #~ msgstr "Edit plugin" +#: src/tables/plugin/PluginListTable.tsx:144 +msgid "Confirm plugin activation" +msgstr "Kinnitage pistikmooduli aktiveerimine" + +#: src/tables/plugin/PluginListTable.tsx:145 +msgid "Confirm plugin deactivation" +msgstr "Kinnitage pistikmoodulite deaktiveerimine" + +#: src/tables/plugin/PluginListTable.tsx:150 +msgid "The selected plugin will be activated" +msgstr "Valitud pistiklahendus aktiveeritakse" + +#: src/tables/plugin/PluginListTable.tsx:151 +msgid "The selected plugin will be deactivated" +msgstr "Valitud pistiklahendus inaktiveeritakse" + #: src/tables/plugin/PluginListTable.tsx:152 #: src/tables/plugin/PluginListTable.tsx:153 #~ msgid "Reload" #~ msgstr "Reload" -#: src/tables/plugin/PluginListTable.tsx:154 -msgid "Plugin is not active" -msgstr "" - #: src/tables/plugin/PluginListTable.tsx:163 -msgid "Package information" -msgstr "" +#~ msgid "Package information" +#~ msgstr "Package information" #: src/tables/plugin/PluginListTable.tsx:169 -msgid "Package Name" +msgid "Deactivate" +msgstr "Lülita välja" + +#: src/tables/plugin/PluginListTable.tsx:183 +msgid "Activate" +msgstr "Aktiveeri" + +#: src/tables/plugin/PluginListTable.tsx:184 +msgid "Activate selected plugin" msgstr "" -#: src/tables/plugin/PluginListTable.tsx:175 -msgid "Installation Path" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:185 -msgid "Package" +#: src/tables/plugin/PluginListTable.tsx:196 +msgid "Update selected plugin" msgstr "" #: src/tables/plugin/PluginListTable.tsx:197 -msgid "Plugin settings" -msgstr "" +#~ msgid "Plugin settings" +#~ msgstr "Plugin settings" #: src/tables/plugin/PluginListTable.tsx:214 -msgid "Plugin is active" +#: src/tables/stock/InstalledItemsTable.tsx:107 +msgid "Uninstall" +msgstr "Eemalda" + +#: src/tables/plugin/PluginListTable.tsx:215 +msgid "Uninstall selected plugin" msgstr "" -#: src/tables/plugin/PluginListTable.tsx:220 -msgid "Plugin is inactive" +#: src/tables/plugin/PluginListTable.tsx:233 +msgid "Delete selected plugin configuration" msgstr "" -#: src/tables/plugin/PluginListTable.tsx:227 -msgid "Plugin is not installed" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:253 -msgid "Plugin" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:287 -msgid "Description not available" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:319 -msgid "Confirm plugin activation" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:320 -msgid "Confirm plugin deactivation" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:325 -msgid "The selected plugin will be activated" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:326 -msgid "The selected plugin will be deactivated" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:334 +#: src/tables/plugin/PluginListTable.tsx:249 msgid "Activate Plugin" -msgstr "" +msgstr "Aktiveeri plugin" + +#: src/tables/plugin/PluginListTable.tsx:270 +msgid "Install plugin" +msgstr "Paigalda plugin" + +#: src/tables/plugin/PluginListTable.tsx:283 +msgid "Install" +msgstr "Paigalda" + +#: src/tables/plugin/PluginListTable.tsx:284 +msgid "Plugin installed successfully" +msgstr "Plugin paigaldamine õnnestus" + +#: src/tables/plugin/PluginListTable.tsx:289 +msgid "Uninstall Plugin" +msgstr "Eemalda plugin" + +#: src/tables/plugin/PluginListTable.tsx:301 +msgid "Confirm plugin uninstall" +msgstr "Kinnita plugina eemaldamine" + +#: src/tables/plugin/PluginListTable.tsx:304 +msgid "The selected plugin will be uninstalled." +msgstr "Valitud pistikprogramm eemaldatakse." + +#: src/tables/plugin/PluginListTable.tsx:308 +#~ msgid "This action cannot be undone." +#~ msgstr "This action cannot be undone." + +#: src/tables/plugin/PluginListTable.tsx:309 +msgid "Plugin uninstalled successfully" +msgstr "Plugin desinstall on õnnestunud" + +#: src/tables/plugin/PluginListTable.tsx:317 +msgid "Delete Plugin" +msgstr "Kustuta plugin" + +#: src/tables/plugin/PluginListTable.tsx:318 +msgid "Deleting this plugin configuration will remove all associated settings and data. Are you sure you want to delete this plugin?" +msgstr "Kui kustutate selle pistikprogrammi seadistuse, eemaldatakse kõik seotud sätted ja andmed. Olete kindel, et soovite selle pistikprogrammi kustutada?" + +#: src/tables/plugin/PluginListTable.tsx:331 +msgid "Plugins reloaded" +msgstr "Plugin on uuesti laaditud" + +#: src/tables/plugin/PluginListTable.tsx:332 +msgid "Plugins were reloaded successfully" +msgstr "Pluginid said edukalt taaskäivitatud" #: src/tables/plugin/PluginListTable.tsx:338 #~ msgid "Deactivate Plugin" #~ msgstr "Deactivate Plugin" +#: src/tables/plugin/PluginListTable.tsx:350 +msgid "Reload Plugins" +msgstr "Laadi pluginad uuesti" + #: src/tables/plugin/PluginListTable.tsx:354 #~ msgid "The following plugin will be activated" #~ msgstr "The following plugin will be activated" @@ -6962,17 +8170,17 @@ msgstr "" #~ msgid "The following plugin will be deactivated" #~ msgstr "The following plugin will be deactivated" -#: src/tables/plugin/PluginListTable.tsx:362 -msgid "Deactivate" -msgstr "" +#: src/tables/plugin/PluginListTable.tsx:357 +msgid "Install Plugin" +msgstr "Paigalda plugin" #: src/tables/plugin/PluginListTable.tsx:366 #~ msgid "Confirm" #~ msgstr "Confirm" -#: src/tables/plugin/PluginListTable.tsx:373 -msgid "Activate" -msgstr "" +#: src/tables/plugin/PluginListTable.tsx:374 +msgid "Plugin Detail" +msgstr "Plugina üksikasjad" #: src/tables/plugin/PluginListTable.tsx:376 #~ msgid "Activating plugin" @@ -6998,78 +8206,14 @@ msgstr "" #~ msgid "Error updating plugin" #~ msgstr "Error updating plugin" -#: src/tables/plugin/PluginListTable.tsx:406 -msgid "Uninstall" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:438 -msgid "Install plugin" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:451 -msgid "Install" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:452 -msgid "Plugin installed successfully" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:457 -msgid "Uninstall Plugin" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:469 -msgid "Confirm plugin uninstall" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:472 -msgid "The selected plugin will be uninstalled." -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:473 -msgid "This action cannot be undone." -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:477 -msgid "Plugin uninstalled successfully" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:484 -msgid "Delete Plugin" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:485 -msgid "Deleting this plugin configuration will remove all associated settings and data. Are you sure you want to delete this plugin?" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:498 -msgid "Plugins reloaded" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:499 -msgid "Plugins were reloaded successfully" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:515 -msgid "Reload Plugins" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:524 -msgid "Install Plugin" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:544 -msgid "Plugin Detail" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:573 +#: src/tables/plugin/PluginListTable.tsx:411 msgid "Sample" -msgstr "" +msgstr "Näidis" -#: src/tables/plugin/PluginListTable.tsx:578 -#: src/tables/stock/StockItemTable.tsx:340 +#: src/tables/plugin/PluginListTable.tsx:416 +#: src/tables/stock/StockItemTable.tsx:344 msgid "Installed" -msgstr "" +msgstr "Paigaldatud" #: src/tables/plugin/PluginListTable.tsx:615 #~ msgid "Plugin detail" @@ -7116,82 +8260,78 @@ msgstr "" #~ msgid "Are you sure you want to remove this manufacturer part?" #~ msgstr "Are you sure you want to remove this manufacturer part?" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:102 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:339 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:103 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:356 msgid "Import Line Items" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:135 -msgid "Part Description" -msgstr "" - -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:201 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:207 msgid "Supplier Code" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:208 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:214 msgid "Supplier Link" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:215 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:220 msgid "Manufacturer Code" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:229 -msgid "Destination" +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:248 +msgid "Show line items which have been received" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:300 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:316 msgid "Receive line item" msgstr "" #: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:344 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:142 -#: src/tables/sales/SalesOrderLineItemTable.tsx:240 -msgid "Add line item" -msgstr "" +#: src/tables/sales/ReturnOrderLineItemTable.tsx:160 +#: src/tables/sales/SalesOrderLineItemTable.tsx:258 +#~ msgid "Add line item" +#~ msgstr "Add line item" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:354 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:373 msgid "Receive items" msgstr "" -#: src/tables/purchasing/SupplierPartTable.tsx:93 +#: src/tables/purchasing/SupplierPartTable.tsx:95 msgid "MPN" msgstr "" -#: src/tables/purchasing/SupplierPartTable.tsx:122 +#: src/tables/purchasing/SupplierPartTable.tsx:124 msgid "Base units" msgstr "" -#: src/tables/purchasing/SupplierPartTable.tsx:170 +#: src/tables/purchasing/SupplierPartTable.tsx:172 msgid "Supplier part created" msgstr "" -#: src/tables/purchasing/SupplierPartTable.tsx:176 +#: src/tables/purchasing/SupplierPartTable.tsx:179 msgid "Add supplier part" msgstr "" -#: src/tables/purchasing/SupplierPartTable.tsx:188 +#: src/tables/purchasing/SupplierPartTable.tsx:191 msgid "Show active supplier parts" -msgstr "" - -#: src/tables/purchasing/SupplierPartTable.tsx:192 -msgid "Active Part" -msgstr "" - -#: src/tables/purchasing/SupplierPartTable.tsx:193 -msgid "Show active internal parts" -msgstr "" +msgstr "Näita aktiivseid tarnijaosasid" #: src/tables/purchasing/SupplierPartTable.tsx:193 #~ msgid "Supplier part updated" #~ msgstr "Supplier part updated" -#: src/tables/purchasing/SupplierPartTable.tsx:197 +#: src/tables/purchasing/SupplierPartTable.tsx:195 +msgid "Active Part" +msgstr "" + +#: src/tables/purchasing/SupplierPartTable.tsx:196 +msgid "Show active internal parts" +msgstr "Näita aktiivseid siseosasi" + +#: src/tables/purchasing/SupplierPartTable.tsx:200 msgid "Active Supplier" msgstr "" -#: src/tables/purchasing/SupplierPartTable.tsx:198 +#: src/tables/purchasing/SupplierPartTable.tsx:201 msgid "Show active suppliers" msgstr "" @@ -7203,99 +8343,187 @@ msgstr "" #~ msgid "Are you sure you want to remove this supplier part?" #~ msgstr "Are you sure you want to remove this supplier part?" -#: src/tables/sales/ReturnOrderLineItemTable.tsx:114 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:139 msgid "Received Date" msgstr "" -#: src/tables/sales/ReturnOrderLineItemTable.tsx:128 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:153 msgid "Show items which have been received" -msgstr "" - -#: src/tables/sales/ReturnOrderLineItemTable.tsx:133 -msgid "Filter by line item status" -msgstr "" +msgstr "Näita esemeid, mis on vastu võetud" #: src/tables/sales/ReturnOrderLineItemTable.tsx:158 +msgid "Filter by line item status" +msgstr "Filtreeri rea üksuse oleku järgi" + +#: src/tables/sales/ReturnOrderLineItemTable.tsx:176 +msgid "Receive selected items" +msgstr "Võta vastu valitud üksused" + +#: src/tables/sales/ReturnOrderLineItemTable.tsx:205 msgid "Receive Item" msgstr "" -#: src/tables/sales/SalesOrderLineItemTable.tsx:262 -msgid "Allocate stock" +#: src/tables/sales/SalesOrderAllocationTable.tsx:60 +msgid "Show outstanding allocations" msgstr "" -#: src/tables/sales/SalesOrderLineItemTable.tsx:272 +#: src/tables/sales/SalesOrderAllocationTable.tsx:168 +#: src/tables/sales/SalesOrderAllocationTable.tsx:190 +msgid "Edit Allocation" +msgstr "" + +#: src/tables/sales/SalesOrderAllocationTable.tsx:175 +#: src/tables/sales/SalesOrderAllocationTable.tsx:197 +msgid "Delete Allocation" +msgstr "" + +#: src/tables/sales/SalesOrderLineItemTable.tsx:244 +msgid "Allocate Serial Numbers" +msgstr "Määra seerianumbrid" + +#: src/tables/sales/SalesOrderLineItemTable.tsx:277 +msgid "Show lines which are fully allocated" +msgstr "" + +#: src/tables/sales/SalesOrderLineItemTable.tsx:280 +#~ msgid "Allocate stock" +#~ msgstr "Allocate stock" + +#: src/tables/sales/SalesOrderLineItemTable.tsx:282 +msgid "Show lines which are completed" +msgstr "" + +#: src/tables/sales/SalesOrderLineItemTable.tsx:291 +#~ msgid "Allocate Serials" +#~ msgstr "Allocate Serials" + +#: src/tables/sales/SalesOrderLineItemTable.tsx:340 +msgid "Allocate serials" +msgstr "" + +#: src/tables/sales/SalesOrderLineItemTable.tsx:356 msgid "Build stock" msgstr "" -#: src/tables/sales/SalesOrderLineItemTable.tsx:289 -#: src/tables/stock/StockItemTable.tsx:507 +#: src/tables/sales/SalesOrderLineItemTable.tsx:373 +#: src/tables/stock/StockItemTable.tsx:512 msgid "Order stock" msgstr "Tellige varu" -#: src/tables/sales/SalesOrderShipmentTable.tsx:40 +#: src/tables/sales/SalesOrderShipmentTable.tsx:51 +#~ msgid "Delete Shipment" +#~ msgstr "Delete Shipment" + +#: src/tables/sales/SalesOrderShipmentTable.tsx:57 msgid "Create Shipment" msgstr "" -#: src/tables/sales/SalesOrderShipmentTable.tsx:50 -msgid "Delete Shipment" -msgstr "" - -#: src/tables/sales/SalesOrderShipmentTable.tsx:58 -msgid "Edit Shipment" -msgstr "" - -#: src/tables/sales/SalesOrderShipmentTable.tsx:66 -msgid "Shipment Reference" -msgstr "" - -#: src/tables/sales/SalesOrderShipmentTable.tsx:71 +#: src/tables/sales/SalesOrderShipmentTable.tsx:104 msgid "Items" msgstr "" -#: src/tables/sales/SalesOrderShipmentTable.tsx:83 -msgid "Delivery Date" +#: src/tables/sales/SalesOrderShipmentTable.tsx:139 +msgid "View Shipment" msgstr "" -#: src/tables/sales/SalesOrderShipmentTable.tsx:107 -msgid "Complete Shipment" +#: src/tables/sales/SalesOrderShipmentTable.tsx:161 +msgid "Edit shipment" msgstr "" -#: src/tables/sales/SalesOrderShipmentTable.tsx:133 +#: src/tables/sales/SalesOrderShipmentTable.tsx:169 +msgid "Cancel shipment" +msgstr "" + +#: src/tables/sales/SalesOrderShipmentTable.tsx:184 msgid "Add shipment" msgstr "" -#: src/tables/sales/SalesOrderShipmentTable.tsx:146 -msgid "Shipped" -msgstr "" - -#: src/tables/sales/SalesOrderShipmentTable.tsx:147 +#: src/tables/sales/SalesOrderShipmentTable.tsx:198 msgid "Show shipments which have been shipped" -msgstr "" +msgstr "Näita saadetisi, mis on laevatatud" -#: src/tables/sales/SalesOrderShipmentTable.tsx:151 -msgid "Delivered" -msgstr "" - -#: src/tables/sales/SalesOrderShipmentTable.tsx:152 +#: src/tables/sales/SalesOrderShipmentTable.tsx:203 msgid "Show shipments which have been delivered" +msgstr "Näita saadetisi, mis on kätte toimetatud" + +#: src/tables/settings/BarcodeScanHistoryTable.tsx:61 +msgid "Barcode Information" msgstr "" -#: src/tables/settings/CurrencyTable.tsx:28 -msgid "Rate" +#: src/tables/settings/BarcodeScanHistoryTable.tsx:76 +#: src/tables/settings/ErrorTable.tsx:59 +msgid "Timestamp" msgstr "" -#: src/tables/settings/CurrencyTable.tsx:40 -msgid "Exchange rates updated" +#: src/tables/settings/BarcodeScanHistoryTable.tsx:86 +msgid "Endpoint" msgstr "" -#: src/tables/settings/CurrencyTable.tsx:46 -msgid "Exchange rate update error" +#: src/tables/settings/BarcodeScanHistoryTable.tsx:90 +#: src/tables/settings/BarcodeScanHistoryTable.tsx:217 +#: src/tables/stock/StockItemTestResultTable.tsx:174 +msgid "Result" +msgstr "Tulemus" + +#: src/tables/settings/BarcodeScanHistoryTable.tsx:98 +msgid "Context" msgstr "" -#: src/tables/settings/CurrencyTable.tsx:57 -msgid "Refresh currency exchange rates" +#: src/tables/settings/BarcodeScanHistoryTable.tsx:119 +msgid "Response" msgstr "" +#: src/tables/settings/BarcodeScanHistoryTable.tsx:213 +#: src/tables/settings/ImportSessionTable.tsx:121 +#: src/tables/stock/StockTrackingTable.tsx:183 +msgid "Filter by user" +msgstr "Filtreeri kasutaja järgi" + +#: src/tables/settings/BarcodeScanHistoryTable.tsx:218 +msgid "Filter by result" +msgstr "" + +#: src/tables/settings/BarcodeScanHistoryTable.tsx:232 +msgid "Delete Barcode Scan Record" +msgstr "" + +#: src/tables/settings/BarcodeScanHistoryTable.tsx:258 +msgid "Barcode Scan Details" +msgstr "" + +#: src/tables/settings/BarcodeScanHistoryTable.tsx:268 +msgid "Logging Disabled" +msgstr "" + +#: src/tables/settings/BarcodeScanHistoryTable.tsx:270 +msgid "Barcode logging is not enabled" +msgstr "" + +#: src/tables/settings/CustomStateTable.tsx:36 +msgid "Display Name" +msgstr "" + +#: src/tables/settings/CustomStateTable.tsx:52 +msgid "Model" +msgstr "" + +#: src/tables/settings/CustomStateTable.tsx:65 +#: src/tables/settings/CustomStateTable.tsx:115 +msgid "Add State" +msgstr "" + +#: src/tables/settings/CustomStateTable.tsx:77 +msgid "Edit State" +msgstr "" + +#: src/tables/settings/CustomStateTable.tsx:85 +msgid "Delete State" +msgstr "" + +#: src/tables/settings/CustomStateTable.tsx:115 +#~ msgid "Add state" +#~ msgstr "Add state" + #: src/tables/settings/CustomUnitsTable.tsx:50 msgid "Add Custom Unit" msgstr "" @@ -7312,66 +8540,78 @@ msgstr "" msgid "Add custom unit" msgstr "" -#: src/tables/settings/ErrorTable.tsx:31 -msgid "When" -msgstr "" - -#: src/tables/settings/ErrorTable.tsx:41 -msgid "Error Information" -msgstr "" - #: src/tables/settings/ErrorTable.tsx:51 #~ msgid "Delete error report" #~ msgstr "Delete error report" -#: src/tables/settings/ErrorTable.tsx:53 +#: src/tables/settings/ErrorTable.tsx:67 +msgid "Traceback" +msgstr "" + +#: src/tables/settings/ErrorTable.tsx:103 +msgid "When" +msgstr "Millal" + +#: src/tables/settings/ErrorTable.tsx:113 +msgid "Error Information" +msgstr "" + +#: src/tables/settings/ErrorTable.tsx:123 msgid "Delete Error Report" msgstr "" -#: src/tables/settings/ErrorTable.tsx:55 +#: src/tables/settings/ErrorTable.tsx:125 msgid "Are you sure you want to delete this error report?" -msgstr "" +msgstr "Olete kindel, et soovite selle veateate kustutada?" -#: src/tables/settings/ErrorTable.tsx:57 +#: src/tables/settings/ErrorTable.tsx:127 msgid "Error report deleted" msgstr "" -#: src/tables/settings/ErrorTable.tsx:79 -#: src/tables/settings/FailedTasksTable.tsx:59 +#: src/tables/settings/ErrorTable.tsx:146 +#: src/tables/settings/FailedTasksTable.tsx:65 msgid "Error Details" msgstr "" -#: src/tables/settings/FailedTasksTable.tsx:26 -#: src/tables/settings/PendingTasksTable.tsx:19 +#: src/tables/settings/FailedTasksTable.tsx:32 +#: src/tables/settings/PendingTasksTable.tsx:23 #: src/tables/settings/ScheduledTasksTable.tsx:19 msgid "Task" msgstr "" -#: src/tables/settings/FailedTasksTable.tsx:32 -#: src/tables/settings/PendingTasksTable.tsx:24 +#: src/tables/settings/FailedTasksTable.tsx:38 +#: src/tables/settings/PendingTasksTable.tsx:28 msgid "Task ID" msgstr "" -#: src/tables/settings/FailedTasksTable.tsx:36 -#: src/tables/stock/StockItemTestResultTable.tsx:211 +#: src/tables/settings/FailedTasksTable.tsx:42 +#: src/tables/stock/StockItemTestResultTable.tsx:218 msgid "Started" msgstr "" -#: src/tables/settings/FailedTasksTable.tsx:42 +#: src/tables/settings/FailedTasksTable.tsx:48 msgid "Stopped" msgstr "" -#: src/tables/settings/FailedTasksTable.tsx:48 +#: src/tables/settings/FailedTasksTable.tsx:54 msgid "Attempts" msgstr "" +#: src/tables/settings/FailedTasksTable.tsx:92 +msgid "No Information" +msgstr "" + +#: src/tables/settings/FailedTasksTable.tsx:93 +msgid "No error details are available for this task" +msgstr "" + #: src/tables/settings/GroupTable.tsx:90 msgid "Group with id {id} not found" msgstr "" #: src/tables/settings/GroupTable.tsx:92 msgid "An error occurred while fetching group details" -msgstr "" +msgstr "Rühma üksikasjade hankimisel ilmnes viga" #: src/tables/settings/GroupTable.tsx:116 msgid "Permission set" @@ -7379,63 +8619,55 @@ msgstr "" #: src/tables/settings/GroupTable.tsx:177 msgid "Delete group" -msgstr "" +msgstr "Kustuta grupp" #: src/tables/settings/GroupTable.tsx:178 msgid "Group deleted" -msgstr "" +msgstr "Grupp on kustutatud" #: src/tables/settings/GroupTable.tsx:180 msgid "Are you sure you want to delete this group?" -msgstr "" +msgstr "Kas olete kindel, et soovite kustutada selle grupi?" #: src/tables/settings/GroupTable.tsx:185 #: src/tables/settings/GroupTable.tsx:197 msgid "Add group" -msgstr "" +msgstr "Lisa grupp" #: src/tables/settings/GroupTable.tsx:210 msgid "Edit group" -msgstr "" +msgstr "Muuda gruppi" -#: src/tables/settings/ImportSessionTable.tsx:38 +#: src/tables/settings/ImportSessionTable.tsx:37 msgid "Delete Import Session" -msgstr "" +msgstr "Kustuta importimise sessioon" -#: src/tables/settings/ImportSessionTable.tsx:44 +#: src/tables/settings/ImportSessionTable.tsx:43 #: src/tables/settings/ImportSessionTable.tsx:131 msgid "Create Import Session" -msgstr "" +msgstr "Loo importimise sessioon" -#: src/tables/settings/ImportSessionTable.tsx:69 +#: src/tables/settings/ImportSessionTable.tsx:68 msgid "Uploaded" -msgstr "" +msgstr "Üles laaditud" -#: src/tables/settings/ImportSessionTable.tsx:79 -msgid "Imported Rows" -msgstr "" - -#: src/tables/settings/ImportSessionTable.tsx:109 -#: src/tables/settings/TemplateTable.tsx:289 +#: src/tables/settings/ImportSessionTable.tsx:108 +#: src/tables/settings/TemplateTable.tsx:369 msgid "Model Type" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:110 -#: src/tables/settings/TemplateTable.tsx:290 +#: src/tables/settings/ImportSessionTable.tsx:109 +#: src/tables/settings/TemplateTable.tsx:370 msgid "Filter by target model type" -msgstr "" +msgstr "Filtri sihtmodeli tüübi järgi" -#: src/tables/settings/ImportSessionTable.tsx:116 +#: src/tables/settings/ImportSessionTable.tsx:115 msgid "Filter by import session status" -msgstr "" +msgstr "Filtreeri impordi seansi oleku järgi" -#: src/tables/settings/ImportSessionTable.tsx:122 -msgid "Filter by user" -msgstr "" - -#: src/tables/settings/PendingTasksTable.tsx:38 +#: src/tables/settings/PendingTasksTable.tsx:42 msgid "Arguments" -msgstr "" +msgstr "Argumendid" #: src/tables/settings/ProjectCodeTable.tsx:42 msgid "Add Project Code" @@ -7461,12 +8693,16 @@ msgstr "" msgid "Next Run" msgstr "" -#: src/tables/settings/TemplateTable.tsx:85 -msgid "Template not found" +#: src/tables/settings/StocktakeReportTable.tsx:28 +msgid "Report" msgstr "" -#: src/tables/settings/TemplateTable.tsx:87 -msgid "An error occurred while fetching template details" +#: src/tables/settings/StocktakeReportTable.tsx:35 +msgid "Part Count" +msgstr "" + +#: src/tables/settings/StocktakeReportTable.tsx:58 +msgid "Delete Report" msgstr "" #: src/tables/settings/TemplateTable.tsx:120 @@ -7481,22 +8717,13 @@ msgstr "" #~ msgid "actions" #~ msgstr "actions" -#: src/tables/settings/TemplateTable.tsx:177 -msgid "Modify" +#: src/tables/settings/TemplateTable.tsx:162 +msgid "Template not found" msgstr "" -#: src/tables/settings/TemplateTable.tsx:178 -msgid "Modify template file" -msgstr "" - -#: src/tables/settings/TemplateTable.tsx:234 -#: src/tables/settings/TemplateTable.tsx:302 -msgid "Edit Template" -msgstr "" - -#: src/tables/settings/TemplateTable.tsx:242 -msgid "Delete template" -msgstr "" +#: src/tables/settings/TemplateTable.tsx:164 +msgid "An error occurred while fetching template details" +msgstr "Päringu malli üksikasjade toomisel ilmnes viga" #: src/tables/settings/TemplateTable.tsx:243 #~ msgid "Add new" @@ -7506,103 +8733,137 @@ msgstr "" #~ msgid "Create new" #~ msgstr "Create new" -#: src/tables/settings/TemplateTable.tsx:248 +#: src/tables/settings/TemplateTable.tsx:257 +msgid "Modify" +msgstr "" + +#: src/tables/settings/TemplateTable.tsx:258 +msgid "Modify template file" +msgstr "" + +#: src/tables/settings/TemplateTable.tsx:314 +#: src/tables/settings/TemplateTable.tsx:382 +msgid "Edit Template" +msgstr "" + +#: src/tables/settings/TemplateTable.tsx:322 +msgid "Delete template" +msgstr "" + +#: src/tables/settings/TemplateTable.tsx:328 msgid "Add Template" msgstr "" -#: src/tables/settings/TemplateTable.tsx:261 +#: src/tables/settings/TemplateTable.tsx:341 msgid "Add template" msgstr "" -#: src/tables/settings/TemplateTable.tsx:284 +#: src/tables/settings/TemplateTable.tsx:364 msgid "Filter by enabled status" msgstr "" -#: src/tables/settings/UserTable.tsx:82 +#: src/tables/settings/UserTable.tsx:81 msgid "User with id {id} not found" -msgstr "" +msgstr "Kasutajat id-ga {id} ei leitud" -#: src/tables/settings/UserTable.tsx:84 +#: src/tables/settings/UserTable.tsx:83 msgid "An error occurred while fetching user details" -msgstr "" +msgstr "Kasutaja üksikasjade hankimisel ilmnes viga" -#: src/tables/settings/UserTable.tsx:102 +#: src/tables/settings/UserTable.tsx:101 msgid "Is Active" msgstr "" -#: src/tables/settings/UserTable.tsx:103 +#: src/tables/settings/UserTable.tsx:102 msgid "Designates whether this user should be treated as active. Unselect this instead of deleting accounts." -msgstr "" +msgstr "Määrab, kas seda kasutajat tuleks käsitleda aktiivsena. Tühistage see konto kustutamise asemel." -#: src/tables/settings/UserTable.tsx:107 +#: src/tables/settings/UserTable.tsx:106 msgid "Is Staff" msgstr "" -#: src/tables/settings/UserTable.tsx:108 +#: src/tables/settings/UserTable.tsx:107 msgid "Designates whether the user can log into the django admin site." -msgstr "" +msgstr "Määrab, kas kasutaja saab sisse logida django admin rakendusse." -#: src/tables/settings/UserTable.tsx:112 +#: src/tables/settings/UserTable.tsx:111 msgid "Is Superuser" msgstr "" -#: src/tables/settings/UserTable.tsx:113 +#: src/tables/settings/UserTable.tsx:112 msgid "Designates that this user has all permissions without explicitly assigning them." -msgstr "" +msgstr "Määrab, et sellel kasutajal on kõik loaõigused ilma neid selgelt omistamata." -#: src/tables/settings/UserTable.tsx:123 +#: src/tables/settings/UserTable.tsx:122 msgid "You cannot edit the rights for the currently logged-in user." -msgstr "" +msgstr "Te ei saa praegu sisseloginud kasutaja õigusi muuta." -#: src/tables/settings/UserTable.tsx:154 +#: src/tables/settings/UserTable.tsx:153 msgid "No groups" msgstr "" -#: src/tables/settings/UserTable.tsx:245 +#: src/tables/settings/UserTable.tsx:244 msgid "Delete user" msgstr "" -#: src/tables/settings/UserTable.tsx:246 +#: src/tables/settings/UserTable.tsx:245 msgid "User deleted" msgstr "" -#: src/tables/settings/UserTable.tsx:248 +#: src/tables/settings/UserTable.tsx:247 msgid "Are you sure you want to delete this user?" -msgstr "" +msgstr "Kas olete kindel, et soovite selle kasutaja kustutada?" -#: src/tables/settings/UserTable.tsx:254 -#: src/tables/settings/UserTable.tsx:272 +#: src/tables/settings/UserTable.tsx:253 +#: src/tables/settings/UserTable.tsx:271 msgid "Add user" msgstr "" -#: src/tables/settings/UserTable.tsx:262 +#: src/tables/settings/UserTable.tsx:261 msgid "Added user" msgstr "" -#: src/tables/settings/UserTable.tsx:285 +#: src/tables/settings/UserTable.tsx:284 msgid "Show active users" msgstr "" -#: src/tables/settings/UserTable.tsx:289 +#: src/tables/settings/UserTable.tsx:288 msgid "Staff" msgstr "" -#: src/tables/settings/UserTable.tsx:290 +#: src/tables/settings/UserTable.tsx:289 msgid "Show staff users" msgstr "" #: src/tables/settings/UserTable.tsx:294 -msgid "Superuser" -msgstr "" - -#: src/tables/settings/UserTable.tsx:295 msgid "Show superusers" msgstr "" -#: src/tables/settings/UserTable.tsx:305 +#: src/tables/settings/UserTable.tsx:304 msgid "Edit user" msgstr "" +#: src/tables/stock/InstalledItemsTable.tsx:37 +#: src/tables/stock/InstalledItemsTable.tsx:90 +msgid "Install Item" +msgstr "" + +#: src/tables/stock/InstalledItemsTable.tsx:39 +msgid "Item installed" +msgstr "" + +#: src/tables/stock/InstalledItemsTable.tsx:50 +msgid "Uninstall Item" +msgstr "" + +#: src/tables/stock/InstalledItemsTable.tsx:52 +msgid "Item uninstalled" +msgstr "" + +#: src/tables/stock/InstalledItemsTable.tsx:108 +msgid "Uninstall stock item" +msgstr "" + #: src/tables/stock/LocationTypesTable.tsx:39 #: src/tables/stock/LocationTypesTable.tsx:109 msgid "Add Location Type" @@ -7620,276 +8881,272 @@ msgstr "" msgid "Icon" msgstr "" -#: src/tables/stock/StockItemTable.tsx:101 +#: src/tables/stock/StockItemTable.tsx:90 msgid "This stock item is in production" -msgstr "" +msgstr "See kaupu on tootmises" -#: src/tables/stock/StockItemTable.tsx:110 +#: src/tables/stock/StockItemTable.tsx:97 msgid "This stock item has been assigned to a sales order" -msgstr "" +msgstr "See varuosa on määratud müügitellimusele" -#: src/tables/stock/StockItemTable.tsx:119 +#: src/tables/stock/StockItemTable.tsx:104 msgid "This stock item has been assigned to a customer" -msgstr "" +msgstr "See varuosa on määratud kliendile" -#: src/tables/stock/StockItemTable.tsx:128 +#: src/tables/stock/StockItemTable.tsx:111 msgid "This stock item is installed in another stock item" -msgstr "" +msgstr "See eset varuosa on paigaldatud teisesse varuossa" -#: src/tables/stock/StockItemTable.tsx:137 +#: src/tables/stock/StockItemTable.tsx:118 msgid "This stock item has been consumed by a build order" +msgstr "See stock eseme on tarbitud ehitustellimuse poolt" + +#: src/tables/stock/StockItemTable.tsx:125 +msgid "This stock item is unavailable" msgstr "" -#: src/tables/stock/StockItemTable.tsx:146 +#: src/tables/stock/StockItemTable.tsx:134 msgid "This stock item has expired" -msgstr "" +msgstr "See kaupluseseade on aegunud" -#: src/tables/stock/StockItemTable.tsx:150 +#: src/tables/stock/StockItemTable.tsx:138 msgid "This stock item is stale" msgstr "" -#: src/tables/stock/StockItemTable.tsx:161 +#: src/tables/stock/StockItemTable.tsx:150 msgid "This stock item is fully allocated" -msgstr "" +msgstr "See laoseis on täielikult reserveeritud" -#: src/tables/stock/StockItemTable.tsx:168 +#: src/tables/stock/StockItemTable.tsx:157 msgid "This stock item is partially allocated" -msgstr "" +msgstr "See kauplemisobjekt on osaliselt reserveeritud" -#: src/tables/stock/StockItemTable.tsx:196 +#: src/tables/stock/StockItemTable.tsx:185 msgid "This stock item has been depleted" -msgstr "" +msgstr "See laoseis on ammendatud" -#: src/tables/stock/StockItemTable.tsx:232 +#: src/tables/stock/StockItemTable.tsx:280 msgid "Stocktake Date" msgstr "" -#: src/tables/stock/StockItemTable.tsx:236 -msgid "Expiry Date" -msgstr "" - -#: src/tables/stock/StockItemTable.tsx:260 -msgid "Stock Value" -msgstr "" - -#: src/tables/stock/StockItemTable.tsx:290 +#: src/tables/stock/StockItemTable.tsx:294 msgid "Show stock for active parts" -msgstr "" +msgstr "Kuva laoseis aktiivsetele osadele" -#: src/tables/stock/StockItemTable.tsx:295 +#: src/tables/stock/StockItemTable.tsx:299 msgid "Filter by stock status" msgstr "" #: src/tables/stock/StockItemTable.tsx:301 -msgid "Show stock for assmebled parts" -msgstr "" +#~ msgid "Show stock for assmebled parts" +#~ msgstr "Show stock for assmebled parts" -#: src/tables/stock/StockItemTable.tsx:306 +#: src/tables/stock/StockItemTable.tsx:305 +msgid "Show stock for assembled parts" +msgstr "Kuva laoseis koostatud osade jaoks" + +#: src/tables/stock/StockItemTable.tsx:310 msgid "Show items which have been allocated" -msgstr "" - -#: src/tables/stock/StockItemTable.tsx:311 -msgid "Show items which are available" -msgstr "" +msgstr "Näita esemeid, mis on eraldatud" #: src/tables/stock/StockItemTable.tsx:315 +msgid "Show items which are available" +msgstr "Näita esemeid, millel on saadaval" + +#: src/tables/stock/StockItemTable.tsx:319 #: src/tables/stock/StockLocationTable.tsx:44 msgid "Include Sublocations" msgstr "" -#: src/tables/stock/StockItemTable.tsx:316 -msgid "Include stock in sublocations" -msgstr "" - #: src/tables/stock/StockItemTable.tsx:320 +msgid "Include stock in sublocations" +msgstr "Kaasa laoosad alakohtades" + +#: src/tables/stock/StockItemTable.tsx:324 msgid "Depleted" msgstr "" -#: src/tables/stock/StockItemTable.tsx:321 +#: src/tables/stock/StockItemTable.tsx:325 msgid "Show depleted stock items" -msgstr "" +msgstr "Näita ammendunud laoseoseid" -#: src/tables/stock/StockItemTable.tsx:326 +#: src/tables/stock/StockItemTable.tsx:330 msgid "Show items which are in stock" -msgstr "" +msgstr "Näita esemeid, mis on laos" -#: src/tables/stock/StockItemTable.tsx:331 +#: src/tables/stock/StockItemTable.tsx:335 msgid "Show items which are in production" -msgstr "" +msgstr "Näita esemeid, mis on tootmises" -#: src/tables/stock/StockItemTable.tsx:336 +#: src/tables/stock/StockItemTable.tsx:340 msgid "Include stock items for variant parts" msgstr "Kaasa varude üksused variantosade jaoks" -#: src/tables/stock/StockItemTable.tsx:341 +#: src/tables/stock/StockItemTable.tsx:345 msgid "Show stock items which are installed in other items" msgstr "Näita varude üksusi, mis on paigaldatud teistesse üksustesse" -#: src/tables/stock/StockItemTable.tsx:345 +#: src/tables/stock/StockItemTable.tsx:349 msgid "Sent to Customer" msgstr "Kliendile saadetud" -#: src/tables/stock/StockItemTable.tsx:346 +#: src/tables/stock/StockItemTable.tsx:350 msgid "Show items which have been sent to a customer" msgstr "Näita üksusi, mis on saadetud kliendile" -#: src/tables/stock/StockItemTable.tsx:350 +#: src/tables/stock/StockItemTable.tsx:354 msgid "Is Serialized" msgstr "On serialiseeritud" -#: src/tables/stock/StockItemTable.tsx:351 +#: src/tables/stock/StockItemTable.tsx:355 msgid "Show items which have a serial number" msgstr "Näita üksusi, millel on seerianumber" -#: src/tables/stock/StockItemTable.tsx:358 +#: src/tables/stock/StockItemTable.tsx:362 msgid "Has Batch Code" msgstr "Omab partiikoodi" -#: src/tables/stock/StockItemTable.tsx:359 +#: src/tables/stock/StockItemTable.tsx:363 msgid "Show items which have a batch code" msgstr "Näita üksusi, millel on partiikood" -#: src/tables/stock/StockItemTable.tsx:365 +#: src/tables/stock/StockItemTable.tsx:369 msgid "Show tracked items" msgstr "Näita jälgitavaid üksusi" -#: src/tables/stock/StockItemTable.tsx:369 +#: src/tables/stock/StockItemTable.tsx:373 msgid "Has Purchase Price" msgstr "Omab ostuhinda" -#: src/tables/stock/StockItemTable.tsx:370 +#: src/tables/stock/StockItemTable.tsx:374 msgid "Show items which have a purchase price" msgstr "Näita üksusi, millel on ostuhind" -#: src/tables/stock/StockItemTable.tsx:378 +#: src/tables/stock/StockItemTable.tsx:382 msgid "External Location" msgstr "Väline asukoht" -#: src/tables/stock/StockItemTable.tsx:379 +#: src/tables/stock/StockItemTable.tsx:383 msgid "Show items in an external location" msgstr "Näita üksusi välises asukohas" -#: src/tables/stock/StockItemTable.tsx:451 +#: src/tables/stock/StockItemTable.tsx:456 msgid "Add a new stock item" msgstr "Lisa uus varuüksus" -#: src/tables/stock/StockItemTable.tsx:460 +#: src/tables/stock/StockItemTable.tsx:465 msgid "Remove some quantity from a stock item" msgstr "Eemalda osa kogust varuüksusest" -#: src/tables/stock/StockItemTable.tsx:482 +#: src/tables/stock/StockItemTable.tsx:487 msgid "Move Stock items to new locations" msgstr "Liiguta varuüksused uutesse asukohtadesse" -#: src/tables/stock/StockItemTable.tsx:489 +#: src/tables/stock/StockItemTable.tsx:494 msgid "Change stock status" msgstr "Muuda varu staatust" -#: src/tables/stock/StockItemTable.tsx:491 +#: src/tables/stock/StockItemTable.tsx:496 msgid "Change the status of stock items" msgstr "Muuda varuüksuste staatust" -#: src/tables/stock/StockItemTable.tsx:498 +#: src/tables/stock/StockItemTable.tsx:503 msgid "Merge stock" msgstr "Ühenda varu" -#: src/tables/stock/StockItemTable.tsx:500 +#: src/tables/stock/StockItemTable.tsx:505 msgid "Merge stock items" msgstr "Ühenda varuüksused" -#: src/tables/stock/StockItemTable.tsx:509 -#: src/tables/stock/StockItemTable.tsx:516 +#: src/tables/stock/StockItemTable.tsx:514 +#: src/tables/stock/StockItemTable.tsx:521 msgid "Order new stock" msgstr "Tellige uus varu" -#: src/tables/stock/StockItemTable.tsx:514 +#: src/tables/stock/StockItemTable.tsx:519 msgid "Assign to customer" msgstr "Määrake kliendile" -#: src/tables/stock/StockItemTable.tsx:523 +#: src/tables/stock/StockItemTable.tsx:528 msgid "Delete stock" msgstr "Kustuta varu" -#: src/tables/stock/StockItemTable.tsx:525 -msgid "Delete stock items" -msgstr "Kustuta varuüksused" +#: src/tables/stock/StockItemTable.tsx:528 +#~ msgid "Delete stock items" +#~ msgstr "Delete stock items" -#: src/tables/stock/StockItemTestResultTable.tsx:131 +#: src/tables/stock/StockItemTestResultTable.tsx:137 msgid "Test" msgstr "Test" -#: src/tables/stock/StockItemTestResultTable.tsx:157 +#: src/tables/stock/StockItemTestResultTable.tsx:163 msgid "Test result for installed stock item" msgstr "Paigaldatud varuüksuse testi tulemus" -#: src/tables/stock/StockItemTestResultTable.tsx:168 -msgid "Result" -msgstr "Tulemus" - -#: src/tables/stock/StockItemTestResultTable.tsx:190 +#: src/tables/stock/StockItemTestResultTable.tsx:196 msgid "Attachment" msgstr "Manus" -#: src/tables/stock/StockItemTestResultTable.tsx:206 +#: src/tables/stock/StockItemTestResultTable.tsx:212 msgid "Test station" msgstr "Testijaam" -#: src/tables/stock/StockItemTestResultTable.tsx:226 +#: src/tables/stock/StockItemTestResultTable.tsx:234 msgid "Finished" msgstr "Lõpetatud" -#: src/tables/stock/StockItemTestResultTable.tsx:268 -#: src/tables/stock/StockItemTestResultTable.tsx:339 +#: src/tables/stock/StockItemTestResultTable.tsx:286 +#: src/tables/stock/StockItemTestResultTable.tsx:357 msgid "Edit Test Result" msgstr "Muuda testi tulemust" -#: src/tables/stock/StockItemTestResultTable.tsx:270 +#: src/tables/stock/StockItemTestResultTable.tsx:288 msgid "Test result updated" msgstr "Testi tulemus uuendatud" -#: src/tables/stock/StockItemTestResultTable.tsx:276 -#: src/tables/stock/StockItemTestResultTable.tsx:348 +#: src/tables/stock/StockItemTestResultTable.tsx:294 +#: src/tables/stock/StockItemTestResultTable.tsx:366 msgid "Delete Test Result" msgstr "Kustuta testi tulemus" -#: src/tables/stock/StockItemTestResultTable.tsx:278 +#: src/tables/stock/StockItemTestResultTable.tsx:296 msgid "Test result deleted" msgstr "Testi tulemus kustutatud" -#: src/tables/stock/StockItemTestResultTable.tsx:292 +#: src/tables/stock/StockItemTestResultTable.tsx:310 msgid "Test Passed" msgstr "Test läbitud" -#: src/tables/stock/StockItemTestResultTable.tsx:293 +#: src/tables/stock/StockItemTestResultTable.tsx:311 msgid "Test result has been recorded" msgstr "Testi tulemus on salvestatud" -#: src/tables/stock/StockItemTestResultTable.tsx:300 +#: src/tables/stock/StockItemTestResultTable.tsx:318 msgid "Failed to record test result" msgstr "Testi tulemuse salvestamine ebaõnnestus" -#: src/tables/stock/StockItemTestResultTable.tsx:317 +#: src/tables/stock/StockItemTestResultTable.tsx:335 msgid "Pass Test" msgstr "Läbige test" -#: src/tables/stock/StockItemTestResultTable.tsx:366 +#: src/tables/stock/StockItemTestResultTable.tsx:384 msgid "Show results for required tests" msgstr "Näita kohustuslike testide tulemusi" -#: src/tables/stock/StockItemTestResultTable.tsx:370 +#: src/tables/stock/StockItemTestResultTable.tsx:388 msgid "Include Installed" msgstr "Kaasa paigaldatud" -#: src/tables/stock/StockItemTestResultTable.tsx:371 +#: src/tables/stock/StockItemTestResultTable.tsx:389 msgid "Show results for installed stock items" msgstr "Näita paigaldatud varude tulemusi" -#: src/tables/stock/StockItemTestResultTable.tsx:375 -#: src/tables/stock/TestStatisticsTable.tsx:74 +#: src/tables/stock/StockItemTestResultTable.tsx:393 +#: src/tables/stock/TestStatisticsTable.tsx:62 msgid "Passed" msgstr "Läbitud" -#: src/tables/stock/StockItemTestResultTable.tsx:376 +#: src/tables/stock/StockItemTestResultTable.tsx:394 msgid "Show only passed tests" msgstr "Näita ainult läbitud teste" @@ -7903,7 +9160,7 @@ msgstr "Näita ainult läbitud teste" #: src/tables/stock/StockLocationTable.tsx:45 msgid "Include sublocations in results" -msgstr "Kaasa tulemuste alamsaidid" +msgstr "Kaasake alamkohad tulemustesse" #: src/tables/stock/StockLocationTable.tsx:50 msgid "Show structural locations" @@ -7922,28 +9179,32 @@ msgid "Filter by location type" msgstr "Filtreeri asukoha tüübi järgi" #: src/tables/stock/StockLocationTable.tsx:107 -#: src/tables/stock/StockLocationTable.tsx:133 +#: src/tables/stock/StockLocationTable.tsx:134 msgid "Add Stock Location" msgstr "Lisa varude asukoht" -#: src/tables/stock/StockTrackingTable.tsx:64 +#: src/tables/stock/StockTrackingTable.tsx:68 msgid "Added" msgstr "Lisatud" -#: src/tables/stock/StockTrackingTable.tsx:69 +#: src/tables/stock/StockTrackingTable.tsx:73 msgid "Removed" msgstr "Eemaldatud" #: src/tables/stock/StockTrackingTable.tsx:198 +msgid "Details" +msgstr "Üksikasjad" + +#: src/tables/stock/StockTrackingTable.tsx:213 msgid "No user information" msgstr "Kasutajateave puudub" -#: src/tables/stock/TestStatisticsTable.tsx:46 -#: src/tables/stock/TestStatisticsTable.tsx:76 +#: src/tables/stock/TestStatisticsTable.tsx:34 +#: src/tables/stock/TestStatisticsTable.tsx:64 msgid "Total" msgstr "" -#: src/tables/stock/TestStatisticsTable.tsx:75 +#: src/tables/stock/TestStatisticsTable.tsx:63 msgid "Failed" msgstr "" diff --git a/src/frontend/src/locales/fa/messages.po b/src/frontend/src/locales/fa/messages.po index 63c1c9fda4..246c8b912e 100644 --- a/src/frontend/src/locales/fa/messages.po +++ b/src/frontend/src/locales/fa/messages.po @@ -8,15 +8,15 @@ msgstr "" "Language: fa\n" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"PO-Revision-Date: 2024-08-20 19:50\n" +"PO-Revision-Date: 2024-11-04 03:14\n" "Last-Translator: \n" "Language-Team: Persian\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Crowdin-Project: inventree\n" "X-Crowdin-Project-ID: 452300\n" "X-Crowdin-Language: fa\n" -"X-Crowdin-File: /[inventree.InvenTree] l10/src/frontend/src/locales/en/messages.po\n" -"X-Crowdin-File-ID: 205\n" +"X-Crowdin-File: /src/frontend/src/locales/en/messages.po\n" +"X-Crowdin-File-ID: 252\n" #: src/components/Boundary.tsx:12 msgid "Error rendering component" @@ -27,8 +27,8 @@ msgid "An error occurred while rendering this component. Refer to the console fo msgstr "" #: src/components/DashboardItemProxy.tsx:34 -msgid "Title" -msgstr "" +#~ msgid "Title" +#~ msgstr "Title" #: src/components/buttons/AdminButton.tsx:80 msgid "Open in admin interface" @@ -38,82 +38,99 @@ msgstr "" #~ msgid "Copy to clipboard" #~ msgstr "Copy to clipboard" -#: src/components/buttons/CopyButton.tsx:24 +#: src/components/buttons/CopyButton.tsx:29 msgid "Copied" msgstr "" -#: src/components/buttons/CopyButton.tsx:24 +#: src/components/buttons/CopyButton.tsx:29 msgid "Copy" msgstr "" -#: src/components/buttons/PrintingActions.tsx:93 +#: src/components/buttons/PrintingActions.tsx:97 msgid "Print Label" msgstr "" -#: src/components/buttons/PrintingActions.tsx:99 +#: src/components/buttons/PrintingActions.tsx:103 msgid "Print" msgstr "" -#: src/components/buttons/PrintingActions.tsx:100 +#: src/components/buttons/PrintingActions.tsx:104 msgid "Label printing completed successfully" msgstr "" -#: src/components/buttons/PrintingActions.tsx:106 -#: src/components/buttons/PrintingActions.tsx:144 -#: src/components/editors/NotesEditor.tsx:65 -#: src/components/editors/NotesEditor.tsx:165 -#: src/components/forms/fields/ApiFormField.tsx:319 +#: src/components/buttons/PrintingActions.tsx:110 +#: src/components/buttons/PrintingActions.tsx:148 +#: src/components/editors/NotesEditor.tsx:73 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:154 +#: src/components/forms/fields/ApiFormField.tsx:328 +#: src/components/forms/fields/TableField.tsx:43 #: src/components/importer/ImportDataSelector.tsx:187 -#: src/components/importer/ImporterColumnSelector.tsx:207 +#: src/components/importer/ImporterColumnSelector.tsx:210 #: src/components/modals/LicenseModal.tsx:75 -#: src/components/nav/SearchDrawer.tsx:448 +#: src/components/nav/SearchDrawer.tsx:458 +#: src/components/render/ModelType.tsx:290 #: src/pages/ErrorPage.tsx:11 -#: src/pages/part/PartPricingPanel.tsx:67 -#: src/tables/InvenTreeTable.tsx:495 +#: src/pages/part/PartPricingPanel.tsx:71 +#: src/tables/InvenTreeTable.tsx:481 #: src/tables/bom/BomTable.tsx:450 -#: src/tables/stock/StockItemTestResultTable.tsx:299 +#: src/tables/stock/StockItemTestResultTable.tsx:317 msgid "Error" msgstr "" -#: src/components/buttons/PrintingActions.tsx:107 +#: src/components/buttons/PrintingActions.tsx:111 msgid "The label could not be generated" msgstr "" -#: src/components/buttons/PrintingActions.tsx:122 +#: src/components/buttons/PrintingActions.tsx:126 msgid "Print Report" msgstr "" -#: src/components/buttons/PrintingActions.tsx:138 +#: src/components/buttons/PrintingActions.tsx:142 msgid "Generate" msgstr "" -#: src/components/buttons/PrintingActions.tsx:139 +#: src/components/buttons/PrintingActions.tsx:143 msgid "Report printing completed successfully" msgstr "" -#: src/components/buttons/PrintingActions.tsx:145 +#: src/components/buttons/PrintingActions.tsx:149 msgid "The report could not be generated" msgstr "" -#: src/components/buttons/PrintingActions.tsx:173 +#: src/components/buttons/PrintingActions.tsx:177 msgid "Printing Actions" msgstr "" -#: src/components/buttons/PrintingActions.tsx:178 +#: src/components/buttons/PrintingActions.tsx:182 msgid "Print Labels" msgstr "" -#: src/components/buttons/PrintingActions.tsx:184 +#: src/components/buttons/PrintingActions.tsx:188 msgid "Print Reports" msgstr "" +#: src/components/buttons/RemoveRowButton.tsx:8 +msgid "Remove this row" +msgstr "" + #: src/components/buttons/ScanButton.tsx:15 -msgid "Scan QR code" +#: src/components/nav/NavigationDrawer.tsx:117 +#: src/forms/PurchaseOrderForms.tsx:379 +#: src/forms/PurchaseOrderForms.tsx:473 +msgid "Scan Barcode" +msgstr "" + +#: src/components/buttons/ScanButton.tsx:15 +#~ msgid "Scan QR code" +#~ msgstr "Scan QR code" + +#: src/components/buttons/ScanButton.tsx:20 +msgid "Open Barcode Scanner" msgstr "" #: src/components/buttons/ScanButton.tsx:20 -msgid "Open QR code scanner" -msgstr "" +#~ msgid "Open QR code scanner" +#~ msgstr "Open QR code scanner" #: src/components/buttons/SpotlightButton.tsx:14 msgid "Open spotlight" @@ -128,85 +145,347 @@ msgid "Fail" msgstr "" #: src/components/buttons/YesNoButton.tsx:33 -#: src/tables/Filter.tsx:52 +#: src/tables/Filter.tsx:61 msgid "Yes" msgstr "" #: src/components/buttons/YesNoButton.tsx:33 -#: src/tables/Filter.tsx:53 +#: src/tables/Filter.tsx:62 msgid "No" msgstr "" -#: src/components/details/Details.tsx:301 +#: src/components/dashboard/DashboardLayout.tsx:286 +msgid "No Widgets Selected" +msgstr "" + +#: src/components/dashboard/DashboardLayout.tsx:289 +msgid "Use the menu to add widgets to the dashboard" +msgstr "" + +#: src/components/dashboard/DashboardMenu.tsx:59 +#: src/components/dashboard/DashboardMenu.tsx:126 +msgid "Accept Layout" +msgstr "" + +#: src/components/dashboard/DashboardMenu.tsx:91 +#: src/components/nav/NavigationDrawer.tsx:71 +#: src/defaults/actions.tsx:17 +#: src/defaults/links.tsx:9 +#: src/pages/Index/Settings/UserSettings.tsx:47 +msgid "Dashboard" +msgstr "" + +#: src/components/dashboard/DashboardMenu.tsx:99 +msgid "Edit Layout" +msgstr "" + +#: src/components/dashboard/DashboardMenu.tsx:108 +msgid "Add Widget" +msgstr "" + +#: src/components/dashboard/DashboardMenu.tsx:117 +msgid "Remove Widgets" +msgstr "" + +#: src/components/dashboard/DashboardWidget.tsx:65 +msgid "Remove this widget from the dashboard" +msgstr "" + +#: src/components/dashboard/DashboardWidgetDrawer.tsx:77 +msgid "Filter dashboard widgets" +msgstr "" + +#: src/components/dashboard/DashboardWidgetDrawer.tsx:98 +msgid "Add this widget to the dashboard" +msgstr "" + +#: src/components/dashboard/DashboardWidgetDrawer.tsx:123 +msgid "No Widgets Available" +msgstr "" + +#: src/components/dashboard/DashboardWidgetDrawer.tsx:124 +msgid "There are no more widgets available for the dashboard" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:19 +msgid "Subscribed Parts" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:20 +msgid "Show the number of parts which you have subscribed to" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:26 +msgid "Subscribed Categories" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:27 +msgid "Show the number of part categories which you have subscribed to" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:35 +#: src/pages/part/PartSchedulingDetail.tsx:304 +#: src/tables/part/PartTable.tsx:238 +msgid "Low Stock" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:37 +msgid "Show the number of parts which are low on stock" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:43 +msgid "Expired Stock Items" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:45 +msgid "Show the number of stock items which have expired" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:51 +msgid "Stale Stock Items" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:53 +msgid "Show the number of stock items which are stale" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:59 +msgid "Active Build Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:61 +msgid "Show the number of build orders which are currently active" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:66 +msgid "Overdue Build Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:68 +msgid "Show the number of build orders which are overdue" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:73 +msgid "Assigned Build Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:75 +msgid "Show the number of build orders which are assigned to you" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:80 +msgid "Active Sales Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:82 +msgid "Show the number of sales orders which are currently active" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:87 +msgid "Overdue Sales Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:89 +msgid "Show the number of sales orders which are overdue" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:94 +msgid "Assigned Sales Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:96 +msgid "Show the number of sales orders which are assigned to you" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:101 +msgid "Active Purchase Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:103 +msgid "Show the number of purchase orders which are currently active" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:108 +msgid "Overdue Purchase Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:110 +msgid "Show the number of purchase orders which are overdue" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:115 +msgid "Assigned Purchase Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:117 +msgid "Show the number of purchase orders which are assigned to you" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:122 +msgid "Active Return Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:124 +msgid "Show the number of return orders which are currently active" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:129 +msgid "Overdue Return Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:131 +msgid "Show the number of return orders which are overdue" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:136 +msgid "Assigned Return Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:138 +msgid "Show the number of return orders which are assigned to you" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:149 +#: src/components/dashboard/widgets/GetStartedWidget.tsx:15 +#: src/defaults/links.tsx:38 +msgid "Getting Started" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:150 +#: src/defaults/links.tsx:41 +msgid "Getting started with InvenTree" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:157 +#: src/components/dashboard/widgets/NewsWidget.tsx:123 +msgid "News Updates" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:158 +msgid "The latest news from InvenTree" +msgstr "" + +#: src/components/dashboard/widgets/ColorToggleWidget.tsx:18 +#: src/components/nav/MainMenu.tsx:77 +msgid "Change Color Mode" +msgstr "" + +#: src/components/dashboard/widgets/ColorToggleWidget.tsx:23 +msgid "Change the color mode of the user interface" +msgstr "" + +#: src/components/dashboard/widgets/LanguageSelectWidget.tsx:18 +msgid "Change Language" +msgstr "" + +#: src/components/dashboard/widgets/LanguageSelectWidget.tsx:23 +msgid "Change the language of the user interface" +msgstr "" + +#: src/components/dashboard/widgets/NewsWidget.tsx:61 +#: src/components/nav/NotificationDrawer.tsx:88 +#: src/pages/Notifications.tsx:73 +msgid "Mark as read" +msgstr "" + +#: src/components/dashboard/widgets/NewsWidget.tsx:115 +msgid "Requires Superuser" +msgstr "" + +#: src/components/dashboard/widgets/NewsWidget.tsx:116 +msgid "This widget requires superuser permissions" +msgstr "" + +#: src/components/dashboard/widgets/NewsWidget.tsx:133 +msgid "No News" +msgstr "" + +#: src/components/dashboard/widgets/NewsWidget.tsx:134 +msgid "There are no unread news items" +msgstr "" + +#: src/components/details/Details.tsx:300 msgid "No name defined" msgstr "" -#: src/components/details/DetailsImage.tsx:65 +#: src/components/details/DetailsImage.tsx:69 msgid "Remove Image" msgstr "" -#: src/components/details/DetailsImage.tsx:68 +#: src/components/details/DetailsImage.tsx:72 msgid "Remove the associated image from this item?" msgstr "" -#: src/components/details/DetailsImage.tsx:71 -#: src/forms/StockForms.tsx:533 +#: src/components/details/DetailsImage.tsx:75 +#: src/forms/StockForms.tsx:651 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:199 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:306 -#: src/pages/stock/StockDetail.tsx:526 +#: src/pages/stock/StockDetail.tsx:690 msgid "Remove" msgstr "" -#: src/components/details/DetailsImage.tsx:71 -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:158 -#: src/components/items/ActionDropdown.tsx:215 -#: src/components/items/ActionDropdown.tsx:216 -#: src/contexts/ThemeContext.tsx:43 +#: src/components/details/DetailsImage.tsx:75 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:184 +#: src/components/items/ActionDropdown.tsx:268 +#: src/components/items/ActionDropdown.tsx:269 +#: src/contexts/ThemeContext.tsx:45 #: src/hooks/UseForm.tsx:40 -#: src/tables/FilterSelectDrawer.tsx:205 -#: src/tables/build/BuildOutputTable.tsx:286 +#: src/tables/FilterSelectDrawer.tsx:241 +#: src/tables/RowActions.tsx:59 +#: src/tables/build/BuildOutputTable.tsx:434 msgid "Cancel" msgstr "" -#: src/components/details/DetailsImage.tsx:97 +#: src/components/details/DetailsImage.tsx:101 msgid "Drag and drop to upload" msgstr "" -#: src/components/details/DetailsImage.tsx:100 +#: src/components/details/DetailsImage.tsx:104 msgid "Click to select file(s)" msgstr "" -#: src/components/details/DetailsImage.tsx:226 +#: src/components/details/DetailsImage.tsx:230 msgid "Clear" msgstr "" -#: src/components/details/DetailsImage.tsx:232 -#: src/components/forms/ApiForm.tsx:627 -#: src/contexts/ThemeContext.tsx:43 -#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:60 +#: src/components/details/DetailsImage.tsx:236 +#: src/components/forms/ApiForm.tsx:660 +#: src/contexts/ThemeContext.tsx:45 msgid "Submit" msgstr "" -#: src/components/details/DetailsImage.tsx:272 +#: src/components/details/DetailsImage.tsx:280 msgid "Select from existing images" msgstr "" -#: src/components/details/DetailsImage.tsx:280 +#: src/components/details/DetailsImage.tsx:288 msgid "Select Image" msgstr "" -#: src/components/details/DetailsImage.tsx:292 +#: src/components/details/DetailsImage.tsx:304 +msgid "Download remote image" +msgstr "" + +#: src/components/details/DetailsImage.tsx:319 msgid "Upload new image" msgstr "" -#: src/components/details/DetailsImage.tsx:299 +#: src/components/details/DetailsImage.tsx:326 msgid "Upload Image" msgstr "" -#: src/components/details/DetailsImage.tsx:312 +#: src/components/details/DetailsImage.tsx:339 msgid "Delete image" msgstr "" +#: src/components/details/DetailsImage.tsx:373 +msgid "Download Image" +msgstr "" + +#: src/components/details/DetailsImage.tsx:378 +msgid "Image downloaded successfully" +msgstr "" + #: src/components/details/PartIcons.tsx:43 #~ msgid "Part is a template part (variants can be made from this part)" #~ msgstr "Part is a template part (variants can be made from this part)" @@ -235,36 +514,57 @@ msgstr "" #~ msgid "Part is virtual (not a physical part)" #~ msgstr "Part is virtual (not a physical part)" -#: src/components/editors/NotesEditor.tsx:66 +#: src/components/editors/NotesEditor.tsx:74 msgid "Image upload failed" msgstr "" -#: src/components/editors/NotesEditor.tsx:156 -#: src/components/forms/ApiForm.tsx:467 +#: src/components/editors/NotesEditor.tsx:83 +#: src/components/editors/NotesEditor.tsx:119 +#: src/components/forms/ApiForm.tsx:475 #: src/tables/bom/BomTable.tsx:441 msgid "Success" msgstr "" -#: src/components/editors/NotesEditor.tsx:157 +#: src/components/editors/NotesEditor.tsx:84 +msgid "Image uploaded successfully" +msgstr "" + +#: src/components/editors/NotesEditor.tsx:120 msgid "Notes saved successfully" msgstr "" -#: src/components/editors/NotesEditor.tsx:166 +#: src/components/editors/NotesEditor.tsx:131 msgid "Failed to save notes" msgstr "" -#: src/components/editors/NotesEditor.tsx:198 -msgid "Preview Notes" +#: src/components/editors/NotesEditor.tsx:134 +msgid "Error Saving Notes" msgstr "" -#: src/components/editors/NotesEditor.tsx:198 -msgid "Edit Notes" -msgstr "" +#: src/components/editors/NotesEditor.tsx:151 +#~ msgid "Disable Editing" +#~ msgstr "Disable Editing" -#: src/components/editors/NotesEditor.tsx:212 +#: src/components/editors/NotesEditor.tsx:154 msgid "Save Notes" msgstr "" +#: src/components/editors/NotesEditor.tsx:173 +msgid "Close Editor" +msgstr "" + +#: src/components/editors/NotesEditor.tsx:180 +msgid "Enable Editing" +msgstr "" + +#: src/components/editors/NotesEditor.tsx:198 +#~ msgid "Preview Notes" +#~ msgstr "Preview Notes" + +#: src/components/editors/NotesEditor.tsx:198 +#~ msgid "Edit Notes" +#~ msgstr "Edit Notes" + #: src/components/editors/TemplateEditor/CodeEditor/index.tsx:9 msgid "Code" msgstr "" @@ -281,40 +581,44 @@ msgstr "" msgid "PDF Preview" msgstr "" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:104 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:115 msgid "Error loading template" msgstr "" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:116 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:127 msgid "Error saving template" msgstr "" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:146 -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:274 -msgid "Save & Reload Preview" -msgstr "" - -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:151 -msgid "Are you sure you want to Save & Reload the preview?" -msgstr "" - #: src/components/editors/TemplateEditor/TemplateEditor.tsx:151 #~ msgid "Save & Reload preview?" #~ msgstr "Save & Reload preview?" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:153 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:155 +msgid "Could not load the template from the server." +msgstr "" + +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:172 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:303 +msgid "Save & Reload Preview" +msgstr "" + +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:177 +msgid "Are you sure you want to Save & Reload the preview?" +msgstr "" + +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:179 msgid "To render the preview the current template needs to be replaced on the server with your modifications which may break the label if it is under active use. Do you want to proceed?" msgstr "" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:157 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:183 msgid "Save & Reload" msgstr "" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:189 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:215 msgid "Preview updated" msgstr "" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:190 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:216 msgid "The preview has been updated successfully." msgstr "" @@ -322,15 +626,15 @@ msgstr "" #~ msgid "Save & Reload preview" #~ msgstr "Save & Reload preview" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:266 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:295 msgid "Reload preview" msgstr "" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:267 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:296 msgid "Use the currently stored template from the server" msgstr "" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:275 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:304 msgid "Save the current template and reload the preview" msgstr "" @@ -338,11 +642,11 @@ msgstr "" #~ msgid "to preview" #~ msgstr "to preview" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:333 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:365 msgid "Select instance to preview" msgstr "" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:377 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:409 msgid "Error rendering template" msgstr "" @@ -379,6 +683,7 @@ msgid "This page does not exist" msgstr "" #: src/components/errors/PermissionDenied.tsx:8 +#: src/functions/notifications.tsx:24 msgid "Permission Denied" msgstr "" @@ -394,8 +699,8 @@ msgstr "" msgid "A server error occurred" msgstr "" -#: src/components/forms/ApiForm.tsx:151 -#: src/components/forms/ApiForm.tsx:555 +#: src/components/forms/ApiForm.tsx:154 +#: src/components/forms/ApiForm.tsx:579 msgid "Form Error" msgstr "" @@ -403,22 +708,22 @@ msgstr "" #~ msgid "Form Errors Exist" #~ msgstr "Form Errors Exist" -#: src/components/forms/ApiForm.tsx:563 +#: src/components/forms/ApiForm.tsx:587 msgid "Errors exist for one or more form fields" msgstr "" -#: src/components/forms/ApiForm.tsx:665 -#: src/tables/plugin/PluginListTable.tsx:388 +#: src/components/forms/ApiForm.tsx:698 +#: src/tables/plugin/PluginListTable.tsx:195 msgid "Update" msgstr "" -#: src/components/forms/ApiForm.tsx:685 -#: src/components/items/ActionDropdown.tsx:195 +#: src/components/forms/ApiForm.tsx:718 +#: src/components/items/ActionDropdown.tsx:248 #: src/hooks/UseForm.tsx:122 -#: src/pages/Index/Scan.tsx:343 +#: src/pages/Index/Scan.tsx:357 #: src/pages/Notifications.tsx:123 -#: src/tables/RowActions.tsx:43 -#: src/tables/plugin/PluginListTable.tsx:420 +#: src/tables/RowActions.tsx:49 +#: src/tables/plugin/PluginListTable.tsx:232 msgid "Delete" msgstr "" @@ -428,14 +733,6 @@ msgstr "" #~ msgid "Check your your input and try again." #~ msgstr "Check your your input and try again." -#: src/components/forms/AuthenticationForm.tsx:51 -msgid "Login successful" -msgstr "" - -#: src/components/forms/AuthenticationForm.tsx:52 -msgid "Logged in successfully" -msgstr "" - #: src/components/forms/AuthenticationForm.tsx:52 #~ msgid "Welcome back!" #~ msgstr "Welcome back!" @@ -444,14 +741,22 @@ msgstr "" #~ msgid "Login successfull" #~ msgstr "Login successfull" -#: src/components/forms/AuthenticationForm.tsx:58 +#: src/components/forms/AuthenticationForm.tsx:55 +msgid "Login successful" +msgstr "" + +#: src/components/forms/AuthenticationForm.tsx:56 +msgid "Logged in successfully" +msgstr "" + +#: src/components/forms/AuthenticationForm.tsx:61 msgid "Login failed" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:59 -#: src/components/forms/AuthenticationForm.tsx:76 -#: src/components/forms/AuthenticationForm.tsx:211 -#: src/functions/auth.tsx:164 +#: src/components/forms/AuthenticationForm.tsx:62 +#: src/components/forms/AuthenticationForm.tsx:79 +#: src/components/forms/AuthenticationForm.tsx:214 +#: src/functions/auth.tsx:175 msgid "Check your input and try again." msgstr "" @@ -460,45 +765,46 @@ msgstr "" #~ msgid "Mail delivery successfull" #~ msgstr "Mail delivery successfull" -#: src/components/forms/AuthenticationForm.tsx:70 -#: src/functions/auth.tsx:155 +#: src/components/forms/AuthenticationForm.tsx:73 +#: src/functions/auth.tsx:166 msgid "Mail delivery successful" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:71 +#: src/components/forms/AuthenticationForm.tsx:74 msgid "Check your inbox for the login link. If you have an account, you will receive a login link. Check in spam too." msgstr "" -#: src/components/forms/AuthenticationForm.tsx:75 +#: src/components/forms/AuthenticationForm.tsx:78 msgid "Mail delivery failed" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:95 +#: src/components/forms/AuthenticationForm.tsx:98 msgid "Or continue with other methods" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:106 -#: src/components/forms/AuthenticationForm.tsx:227 +#: src/components/forms/AuthenticationForm.tsx:109 +#: src/components/forms/AuthenticationForm.tsx:230 +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:67 msgid "Username" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:107 -#: src/components/forms/AuthenticationForm.tsx:228 +#: src/components/forms/AuthenticationForm.tsx:110 +#: src/components/forms/AuthenticationForm.tsx:231 msgid "Your username" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:112 -#: src/components/forms/AuthenticationForm.tsx:240 -#: src/pages/Auth/Set-Password.tsx:106 +#: src/components/forms/AuthenticationForm.tsx:115 +#: src/components/forms/AuthenticationForm.tsx:243 +#: src/pages/Auth/Set-Password.tsx:101 msgid "Password" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:113 -#: src/components/forms/AuthenticationForm.tsx:241 +#: src/components/forms/AuthenticationForm.tsx:116 +#: src/components/forms/AuthenticationForm.tsx:244 msgid "Your password" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:125 +#: src/components/forms/AuthenticationForm.tsx:128 #: src/pages/Auth/Reset.tsx:26 msgid "Reset password" msgstr "" @@ -507,77 +813,79 @@ msgstr "" #~ msgid "Log in" #~ msgstr "Log in" -#: src/components/forms/AuthenticationForm.tsx:134 -#: src/components/forms/AuthenticationForm.tsx:233 +#: src/components/forms/AuthenticationForm.tsx:136 +#~ msgid "I will use username and password" +#~ msgstr "I will use username and password" + +#: src/components/forms/AuthenticationForm.tsx:137 +#: src/components/forms/AuthenticationForm.tsx:236 #: src/pages/Auth/Reset.tsx:31 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:51 msgid "Email" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:135 +#: src/components/forms/AuthenticationForm.tsx:138 #: src/pages/Auth/Reset.tsx:32 -#: src/pages/Auth/Set-Password.tsx:107 +#: src/pages/Auth/Set-Password.tsx:102 msgid "We will send you a link to login - if you are registered" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:136 -#~ msgid "I will use username and password" -#~ msgstr "I will use username and password" - -#: src/components/forms/AuthenticationForm.tsx:151 +#: src/components/forms/AuthenticationForm.tsx:154 msgid "Send me an email" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:153 +#: src/components/forms/AuthenticationForm.tsx:156 msgid "Use username and password" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:162 +#: src/components/forms/AuthenticationForm.tsx:165 msgid "Log In" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:164 +#: src/components/forms/AuthenticationForm.tsx:167 +#: src/pages/Auth/Reset.tsx:41 +#: src/pages/Auth/Set-Password.tsx:107 msgid "Send Email" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:193 +#: src/components/forms/AuthenticationForm.tsx:196 msgid "Registration successful" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:194 +#: src/components/forms/AuthenticationForm.tsx:197 msgid "Please confirm your email address to complete the registration" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:210 +#: src/components/forms/AuthenticationForm.tsx:213 msgid "Input error" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:234 +#: src/components/forms/AuthenticationForm.tsx:237 msgid "This will be used for a confirmation" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:246 +#: src/components/forms/AuthenticationForm.tsx:249 msgid "Password repeat" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:247 +#: src/components/forms/AuthenticationForm.tsx:250 msgid "Repeat password" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:259 -#: src/components/forms/AuthenticationForm.tsx:304 +#: src/components/forms/AuthenticationForm.tsx:262 +#: src/components/forms/AuthenticationForm.tsx:307 msgid "Register" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:265 +#: src/components/forms/AuthenticationForm.tsx:268 msgid "Or use SSO" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:296 +#: src/components/forms/AuthenticationForm.tsx:299 msgid "Don't have an account?" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:315 +#: src/components/forms/AuthenticationForm.tsx:318 msgid "Go back to login" msgstr "" @@ -588,19 +896,20 @@ msgstr "" #: src/components/forms/HostOptionsForm.tsx:42 #: src/components/forms/HostOptionsForm.tsx:70 +#: src/components/plugins/PluginDrawer.tsx:69 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:410 +#: src/pages/Index/Settings/AdminCenter/UnitManagmentPanel.tsx:19 #: src/pages/part/CategoryDetail.tsx:81 -#: src/pages/part/PartDetail.tsx:143 -#: src/pages/stock/LocationDetail.tsx:89 -#: src/tables/machine/MachineTypeTable.tsx:65 -#: src/tables/machine/MachineTypeTable.tsx:109 -#: src/tables/machine/MachineTypeTable.tsx:216 -#: src/tables/machine/MachineTypeTable.tsx:319 +#: src/pages/part/PartDetail.tsx:164 +#: src/pages/stock/LocationDetail.tsx:83 +#: src/tables/machine/MachineTypeTable.tsx:70 +#: src/tables/machine/MachineTypeTable.tsx:119 +#: src/tables/machine/MachineTypeTable.tsx:237 +#: src/tables/machine/MachineTypeTable.tsx:340 #: src/tables/plugin/PluginErrorTable.tsx:33 -#: src/tables/plugin/PluginListTable.tsx:126 #: src/tables/purchasing/ManufacturerPartParameterTable.tsx:32 #: src/tables/settings/GroupTable.tsx:147 -#: src/tables/settings/PendingTasksTable.tsx:28 +#: src/tables/settings/PendingTasksTable.tsx:32 #: src/tables/stock/LocationTypesTable.tsx:69 msgid "Name" msgstr "" @@ -650,7 +959,7 @@ msgid "Uncategorized" msgstr "" #: src/components/forms/fields/IconField.tsx:209 -#: src/components/nav/Layout.tsx:70 +#: src/components/nav/Layout.tsx:77 #: src/tables/part/PartThumbTable.tsx:192 msgid "Search..." msgstr "" @@ -667,28 +976,27 @@ msgstr "" msgid "{0} icons" msgstr "" -#: src/components/forms/fields/RelatedModelField.tsx:318 -#: src/pages/Index/Settings/UserSettings.tsx:96 +#: src/components/forms/fields/RelatedModelField.tsx:319 +#: src/pages/Index/Settings/UserSettings.tsx:97 #: src/tables/Search.tsx:23 msgid "Search" msgstr "" -#: src/components/forms/fields/RelatedModelField.tsx:319 +#: src/components/forms/fields/RelatedModelField.tsx:320 #: src/components/modals/AboutInvenTreeModal.tsx:81 -#: src/components/widgets/WidgetLayout.tsx:120 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:316 msgid "Loading" msgstr "" -#: src/components/forms/fields/RelatedModelField.tsx:321 +#: src/components/forms/fields/RelatedModelField.tsx:322 msgid "No results found" msgstr "" -#: src/components/forms/fields/TableField.tsx:52 -msgid "modelRenderer entry required for tables" -msgstr "" +#: src/components/forms/fields/TableField.tsx:72 +#~ msgid "modelRenderer entry required for tables" +#~ msgstr "modelRenderer entry required for tables" -#: src/components/forms/fields/TableField.tsx:76 +#: src/components/forms/fields/TableField.tsx:167 msgid "No entries available" msgstr "" @@ -741,7 +1049,7 @@ msgid "Filter by row validation status" msgstr "" #: src/components/importer/ImportDataSelector.tsx:365 -#: src/tables/build/BuildOutputTable.tsx:266 +#: src/tables/build/BuildOutputTable.tsx:407 msgid "Complete" msgstr "" @@ -749,20 +1057,21 @@ msgstr "" msgid "Filter by row completion status" msgstr "" -#: src/components/importer/ImportDataSelector.tsx:383 +#: src/components/importer/ImportDataSelector.tsx:384 msgid "Import selected rows" msgstr "" -#: src/components/importer/ImportDataSelector.tsx:398 +#: src/components/importer/ImportDataSelector.tsx:399 msgid "Processing Data" msgstr "" -#: src/components/importer/ImporterColumnSelector.tsx:50 -#: src/components/importer/ImporterColumnSelector.tsx:176 +#: src/components/importer/ImporterColumnSelector.tsx:53 +#: src/components/importer/ImporterColumnSelector.tsx:179 +#: src/components/items/ErrorItem.tsx:12 msgid "An error occurred" msgstr "" -#: src/components/importer/ImporterColumnSelector.tsx:62 +#: src/components/importer/ImporterColumnSelector.tsx:65 msgid "Select column, or leave blank to ignore this field." msgstr "" @@ -778,51 +1087,51 @@ msgstr "" #~ msgid "Imported Column Name" #~ msgstr "Imported Column Name" -#: src/components/importer/ImporterColumnSelector.tsx:182 +#: src/components/importer/ImporterColumnSelector.tsx:185 msgid "Ignore this field" msgstr "" -#: src/components/importer/ImporterColumnSelector.tsx:196 +#: src/components/importer/ImporterColumnSelector.tsx:199 msgid "Mapping data columns to database fields" msgstr "" -#: src/components/importer/ImporterColumnSelector.tsx:201 +#: src/components/importer/ImporterColumnSelector.tsx:204 msgid "Accept Column Mapping" msgstr "" -#: src/components/importer/ImporterColumnSelector.tsx:214 +#: src/components/importer/ImporterColumnSelector.tsx:217 msgid "Database Field" msgstr "" -#: src/components/importer/ImporterColumnSelector.tsx:215 +#: src/components/importer/ImporterColumnSelector.tsx:218 msgid "Field Description" msgstr "" -#: src/components/importer/ImporterColumnSelector.tsx:216 +#: src/components/importer/ImporterColumnSelector.tsx:219 msgid "Imported Column" msgstr "" -#: src/components/importer/ImporterColumnSelector.tsx:217 +#: src/components/importer/ImporterColumnSelector.tsx:220 msgid "Default Value" msgstr "" -#: src/components/importer/ImporterDrawer.tsx:44 +#: src/components/importer/ImporterDrawer.tsx:46 msgid "Upload File" msgstr "" -#: src/components/importer/ImporterDrawer.tsx:45 +#: src/components/importer/ImporterDrawer.tsx:47 msgid "Map Columns" msgstr "" -#: src/components/importer/ImporterDrawer.tsx:46 +#: src/components/importer/ImporterDrawer.tsx:48 msgid "Import Data" msgstr "" -#: src/components/importer/ImporterDrawer.tsx:47 +#: src/components/importer/ImporterDrawer.tsx:49 msgid "Process Data" msgstr "" -#: src/components/importer/ImporterDrawer.tsx:48 +#: src/components/importer/ImporterDrawer.tsx:50 msgid "Complete Import" msgstr "" @@ -830,28 +1139,28 @@ msgstr "" #~ msgid "Cancel import session" #~ msgstr "Cancel import session" -#: src/components/importer/ImporterDrawer.tsx:104 +#: src/components/importer/ImporterDrawer.tsx:106 msgid "Import Complete" msgstr "" -#: src/components/importer/ImporterDrawer.tsx:107 +#: src/components/importer/ImporterDrawer.tsx:109 msgid "Data has been imported successfully" msgstr "" -#: src/components/importer/ImporterDrawer.tsx:109 -#: src/components/importer/ImporterDrawer.tsx:118 +#: src/components/importer/ImporterDrawer.tsx:111 +#: src/components/importer/ImporterDrawer.tsx:120 msgid "Close" msgstr "" -#: src/components/importer/ImporterDrawer.tsx:115 +#: src/components/importer/ImporterDrawer.tsx:117 msgid "Unknown Status" msgstr "" -#: src/components/importer/ImporterDrawer.tsx:116 +#: src/components/importer/ImporterDrawer.tsx:118 msgid "Import session has unknown status" msgstr "" -#: src/components/importer/ImporterDrawer.tsx:135 +#: src/components/importer/ImporterDrawer.tsx:137 msgid "Importing Data" msgstr "" @@ -860,85 +1169,115 @@ msgid "Importing Records" msgstr "" #: src/components/importer/ImporterImportProgress.tsx:39 -msgid "Imported rows" +#: src/tables/settings/ImportSessionTable.tsx:78 +msgid "Imported Rows" msgstr "" -#: src/components/items/ActionDropdown.tsx:121 -msgid "Barcode Actions" +#: src/components/importer/ImporterImportProgress.tsx:39 +#~ msgid "Imported rows" +#~ msgstr "Imported rows" + +#: src/components/items/ActionDropdown.tsx:126 +msgid "Options" msgstr "" #: src/components/items/ActionDropdown.tsx:140 -msgid "View Barcode" -msgstr "" +#~ msgid "View Barcode" +#~ msgstr "View Barcode" -#: src/components/items/ActionDropdown.tsx:147 -msgid "View" -msgstr "" - -#: src/components/items/ActionDropdown.tsx:148 -msgid "View barcode" -msgstr "" - -#: src/components/items/ActionDropdown.tsx:161 -msgid "Link Barcode" +#: src/components/items/ActionDropdown.tsx:162 +#: src/tables/InvenTreeTableHeader.tsx:159 +#: src/tables/InvenTreeTableHeader.tsx:160 +msgid "Barcode Actions" msgstr "" #: src/components/items/ActionDropdown.tsx:162 -msgid "Link custom barcode" +#~ msgid "Link custom barcode" +#~ msgstr "Link custom barcode" + +#: src/components/items/ActionDropdown.tsx:167 +msgid "View" msgstr "" -#: src/components/items/ActionDropdown.tsx:173 -#: src/forms/PurchaseOrderForms.tsx:426 -msgid "Unlink Barcode" +#: src/components/items/ActionDropdown.tsx:169 +msgid "View barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:174 -msgid "Unlink custom barcode" +#: src/components/items/ActionDropdown.tsx:175 +msgid "Link Barcode" +msgstr "" + +#: src/components/items/ActionDropdown.tsx:177 +msgid "Link a custom barcode to this item" msgstr "" #: src/components/items/ActionDropdown.tsx:183 -#: src/tables/RowActions.tsx:33 +#: src/components/items/QRCode.tsx:193 +#: src/forms/PurchaseOrderForms.tsx:464 +msgid "Unlink Barcode" +msgstr "" + +#: src/components/items/ActionDropdown.tsx:185 +msgid "Unlink custom barcode" +msgstr "" + +#: src/components/items/ActionDropdown.tsx:236 +#: src/tables/RowActions.tsx:39 msgid "Edit" msgstr "" -#: src/components/items/ActionDropdown.tsx:184 +#: src/components/items/ActionDropdown.tsx:237 msgid "Edit item" msgstr "" -#: src/components/items/ActionDropdown.tsx:196 +#: src/components/items/ActionDropdown.tsx:249 msgid "Delete item" msgstr "" -#: src/components/items/ActionDropdown.tsx:204 -#: src/components/items/ActionDropdown.tsx:205 +#: src/components/items/ActionDropdown.tsx:257 +#: src/components/items/ActionDropdown.tsx:258 msgid "Hold" msgstr "" -#: src/components/items/ActionDropdown.tsx:227 -#: src/tables/RowActions.tsx:23 +#: src/components/items/ActionDropdown.tsx:280 +#: src/tables/RowActions.tsx:29 msgid "Duplicate" msgstr "" -#: src/components/items/ActionDropdown.tsx:228 +#: src/components/items/ActionDropdown.tsx:281 msgid "Duplicate item" msgstr "" +#: src/components/items/BarcodeInput.tsx:23 +msgid "Scan barcode data here using barcode scanner" +msgstr "" + +#: src/components/items/BarcodeInput.tsx:24 +#: src/tables/settings/BarcodeScanHistoryTable.tsx:65 +msgid "Barcode" +msgstr "" + +#: src/components/items/BarcodeInput.tsx:25 +msgid "Scan" +msgstr "" + #: src/components/items/DocTooltip.tsx:92 +#: src/components/items/GettingStartedCarousel.tsx:20 msgid "Read More" msgstr "" -#: src/components/items/ErrorItem.tsx:5 -#: src/tables/InvenTreeTable.tsx:487 +#: src/components/items/ErrorItem.tsx:8 +#: src/tables/InvenTreeTable.tsx:473 msgid "Unknown error" msgstr "" -#: src/components/items/ErrorItem.tsx:10 -msgid "An error occurred:" -msgstr "" +#: src/components/items/ErrorItem.tsx:13 +#~ msgid "An error occurred:" +#~ msgstr "An error occurred:" #: src/components/items/GettingStartedCarousel.tsx:27 -msgid "Read more" -msgstr "" +#~ msgid "Read more" +#~ msgstr "Read more" #: src/components/items/InfoItem.tsx:27 msgid "None" @@ -965,30 +1304,51 @@ msgstr "" msgid "This panel is a placeholder." msgstr "" -#: src/components/items/QRCode.tsx:87 +#: src/components/items/QRCode.tsx:89 msgid "Low (7%)" msgstr "" -#: src/components/items/QRCode.tsx:88 +#: src/components/items/QRCode.tsx:90 msgid "Medium (15%)" msgstr "" -#: src/components/items/QRCode.tsx:89 +#: src/components/items/QRCode.tsx:91 msgid "Quartile (25%)" msgstr "" -#: src/components/items/QRCode.tsx:90 +#: src/components/items/QRCode.tsx:92 msgid "High (30%)" msgstr "" -#: src/components/items/QRCode.tsx:107 -msgid "Barcode Data:" +#: src/components/items/QRCode.tsx:100 +msgid "Custom barcode" +msgstr "" + +#: src/components/items/QRCode.tsx:101 +msgid "A custom barcode is registered for this item. The shown code is not that custom barcode." msgstr "" #: src/components/items/QRCode.tsx:118 +msgid "Barcode Data:" +msgstr "" + +#: src/components/items/QRCode.tsx:129 msgid "Select Error Correction Level" msgstr "" +#: src/components/items/QRCode.tsx:171 +#: src/pages/part/PartDetail.tsx:239 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:187 +#: src/pages/sales/ReturnOrderDetail.tsx:157 +#: src/pages/sales/SalesOrderDetail.tsx:169 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:166 +msgid "Link" +msgstr "" + +#: src/components/items/QRCode.tsx:190 +msgid "This will remove the link to the associated barcode" +msgstr "" + #: src/components/modals/AboutInvenTreeModal.tsx:99 msgid "Version Information" msgstr "" @@ -1062,11 +1422,11 @@ msgstr "" msgid "Submit Bug Report" msgstr "" -#: src/components/modals/AboutInvenTreeModal.tsx:183 +#: src/components/modals/AboutInvenTreeModal.tsx:181 msgid "Copy version information" msgstr "" -#: src/components/modals/AboutInvenTreeModal.tsx:192 +#: src/components/modals/AboutInvenTreeModal.tsx:189 #: src/components/modals/ServerInfoModal.tsx:147 msgid "Dismiss" msgstr "" @@ -1091,61 +1451,20 @@ msgstr "" msgid "{key} Packages" msgstr "" -#: src/components/modals/QrCodeModal.tsx:72 +#: src/components/modals/QrCodeModal.tsx:24 msgid "Unknown response" msgstr "" -#: src/components/modals/QrCodeModal.tsx:102 -#: src/pages/Index/Scan.tsx:636 -msgid "Error while getting camera" -msgstr "" - -#: src/components/modals/QrCodeModal.tsx:125 -#: src/pages/Index/Scan.tsx:659 -msgid "Error while scanning" -msgstr "" - -#: src/components/modals/QrCodeModal.tsx:139 -#: src/pages/Index/Scan.tsx:673 -msgid "Error while stopping" -msgstr "" - -#: src/components/modals/QrCodeModal.tsx:154 -#: src/defaults/menuItems.tsx:21 -#: src/pages/Index/Scan.tsx:746 -msgid "Scanning" -msgstr "" - -#: src/components/modals/QrCodeModal.tsx:154 -#: src/pages/Index/Scan.tsx:746 -msgid "Not scanning" -msgstr "" - -#: src/components/modals/QrCodeModal.tsx:159 -#: src/pages/Index/Scan.tsx:752 -msgid "Select Camera" -msgstr "" - -#: src/components/modals/QrCodeModal.tsx:169 -#: src/pages/Index/Scan.tsx:737 -msgid "Start scanning" -msgstr "" - -#: src/components/modals/QrCodeModal.tsx:176 -#: src/pages/Index/Scan.tsx:729 -msgid "Stop scanning" -msgstr "" - -#: src/components/modals/QrCodeModal.tsx:181 +#: src/components/modals/QrCodeModal.tsx:39 msgid "No scans yet!" msgstr "" -#: src/components/modals/QrCodeModal.tsx:201 +#: src/components/modals/QrCodeModal.tsx:57 msgid "Close modal" msgstr "" #: src/components/modals/ServerInfoModal.tsx:26 -#: src/pages/Index/Settings/SystemSettings.tsx:38 +#: src/pages/Index/Settings/SystemSettings.tsx:37 msgid "Server" msgstr "" @@ -1206,6 +1525,7 @@ msgid "Background Worker" msgstr "" #: src/components/modals/ServerInfoModal.tsx:101 +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:29 msgid "Background worker not running" msgstr "" @@ -1218,8 +1538,8 @@ msgid "Email settings not configured" msgstr "" #: src/components/modals/ServerInfoModal.tsx:121 -#: src/tables/plugin/PluginListTable.tsx:144 -#: src/tables/plugin/PluginListTable.tsx:294 +#: src/components/plugins/PluginDrawer.tsx:89 +#: src/tables/plugin/PluginListTable.tsx:116 msgid "Version" msgstr "" @@ -1227,7 +1547,7 @@ msgstr "" msgid "Server Version" msgstr "" -#: src/components/nav/Layout.tsx:73 +#: src/components/nav/Layout.tsx:80 msgid "Nothing found..." msgstr "" @@ -1237,18 +1557,26 @@ msgstr "" #~ msgstr "Profile" #: src/components/nav/MainMenu.tsx:52 +#: src/components/nav/NavigationDrawer.tsx:178 #: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:28 msgid "Settings" msgstr "" #: src/components/nav/MainMenu.tsx:59 -#: src/defaults/menuItems.tsx:15 -msgid "Account settings" +#: src/pages/Index/Settings/UserSettings.tsx:152 +msgid "Account Settings" msgstr "" +#: src/components/nav/MainMenu.tsx:59 +#: src/defaults/menuItems.tsx:15 +#~ msgid "Account settings" +#~ msgstr "Account settings" + #: src/components/nav/MainMenu.tsx:67 -#: src/defaults/menuItems.tsx:58 -#: src/pages/Index/Settings/SystemSettings.tsx:315 +#: src/components/nav/NavigationDrawer.tsx:141 +#: src/components/nav/SettingsHeader.tsx:49 +#: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:37 +#: src/pages/Index/Settings/SystemSettings.tsx:310 msgid "System Settings" msgstr "" @@ -1260,14 +1588,11 @@ msgstr "" #~ msgid "Switch to pseudo language" #~ msgstr "Switch to pseudo language" -#: src/components/nav/MainMenu.tsx:77 -msgid "Change Color Mode" -msgstr "" - #: src/components/nav/MainMenu.tsx:86 -#: src/defaults/actions.tsx:71 -#: src/defaults/menuItems.tsx:63 -#: src/pages/Index/Settings/AdminCenter/Index.tsx:221 +#: src/components/nav/NavigationDrawer.tsx:148 +#: src/components/nav/SettingsHeader.tsx:50 +#: src/defaults/actions.tsx:63 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:251 msgid "Admin Center" msgstr "" @@ -1275,458 +1600,732 @@ msgstr "" msgid "Logout" msgstr "" -#: src/components/nav/NavHoverMenu.tsx:65 -#: src/defaults/actions.tsx:60 -msgid "Open Navigation" -msgstr "" - #: src/components/nav/NavHoverMenu.tsx:84 -msgid "View all" -msgstr "" +#~ msgid "View all" +#~ msgstr "View all" #: src/components/nav/NavHoverMenu.tsx:100 #: src/components/nav/NavHoverMenu.tsx:110 -msgid "Get started" -msgstr "" +#~ msgid "Get started" +#~ msgstr "Get started" #: src/components/nav/NavHoverMenu.tsx:103 -msgid "Overview over high-level objects, functions and possible usecases." -msgstr "" - -#: src/components/nav/NavigationDrawer.tsx:57 -msgid "Navigation" -msgstr "" +#~ msgid "Overview over high-level objects, functions and possible usecases." +#~ msgstr "Overview over high-level objects, functions and possible usecases." #: src/components/nav/NavigationDrawer.tsx:60 -msgid "Pages" +#~ msgid "Pages" +#~ msgstr "Pages" + +#: src/components/nav/NavigationDrawer.tsx:77 +#: src/components/render/ModelType.tsx:31 +#: src/defaults/links.tsx:10 +#: src/pages/Index/Settings/SystemSettings.tsx:172 +#: src/pages/part/CategoryDetail.tsx:125 +#: src/pages/part/CategoryDetail.tsx:249 +#: src/pages/part/CategoryDetail.tsx:279 +#: src/pages/part/PartDetail.tsx:856 +msgid "Parts" msgstr "" -#: src/components/nav/NavigationDrawer.tsx:65 -#: src/pages/Index/Settings/AdminCenter/Index.tsx:176 -#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:41 -msgid "Plugins" +#: src/components/nav/NavigationDrawer.tsx:84 +#: src/components/render/Part.tsx:30 +#: src/defaults/links.tsx:11 +#: src/pages/Index/Settings/SystemSettings.tsx:205 +#: src/pages/part/PartDetail.tsx:593 +#: src/pages/stock/LocationDetail.tsx:352 +#: src/pages/stock/StockDetail.tsx:528 +#: src/tables/stock/StockItemTable.tsx:69 +msgid "Stock" msgstr "" -#: src/components/nav/NavigationDrawer.tsx:75 -#: src/defaults/actions.tsx:32 -msgid "Documentation" +#: src/components/nav/NavigationDrawer.tsx:91 +#: src/defaults/links.tsx:13 +#: src/pages/build/BuildDetail.tsx:530 +#: src/pages/build/BuildIndex.tsx:36 +msgid "Manufacturing" msgstr "" -#: src/components/nav/NavigationDrawer.tsx:78 -msgid "About" +#: src/components/nav/NavigationDrawer.tsx:98 +#: src/defaults/links.tsx:18 +#: src/pages/company/ManufacturerDetail.tsx:9 +#: src/pages/company/ManufacturerPartDetail.tsx:258 +#: src/pages/company/SupplierDetail.tsx:9 +#: src/pages/company/SupplierPartDetail.tsx:336 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:480 +#: src/pages/purchasing/PurchasingIndex.tsx:60 +msgid "Purchasing" msgstr "" -#: src/components/nav/NotificationDrawer.tsx:92 -#: src/pages/Index/Settings/SystemSettings.tsx:109 -#: src/pages/Index/Settings/UserSettings.tsx:126 +#: src/components/nav/NavigationDrawer.tsx:105 +#: src/defaults/links.tsx:22 +#: src/pages/company/CustomerDetail.tsx:9 +#: src/pages/sales/ReturnOrderDetail.tsx:469 +#: src/pages/sales/SalesIndex.tsx:53 +#: src/pages/sales/SalesOrderDetail.tsx:520 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:343 +msgid "Sales" +msgstr "" + +#: src/components/nav/NavigationDrawer.tsx:129 +#: src/components/nav/NotificationDrawer.tsx:178 +#: src/pages/Index/Settings/SystemSettings.tsx:110 +#: src/pages/Index/Settings/UserSettings.tsx:127 #: src/pages/Notifications.tsx:65 #: src/pages/Notifications.tsx:151 msgid "Notifications" msgstr "" -#: src/components/nav/NotificationDrawer.tsx:94 +#: src/components/nav/NavigationDrawer.tsx:135 +#: src/components/nav/SettingsHeader.tsx:48 +msgid "User Settings" +msgstr "" + +#: src/components/nav/NavigationDrawer.tsx:173 +msgid "Navigation" +msgstr "" + +#: src/components/nav/NavigationDrawer.tsx:183 +#: src/forms/PurchaseOrderForms.tsx:689 +#: src/forms/StockForms.tsx:614 +#: src/forms/StockForms.tsx:651 +#: src/forms/StockForms.tsx:677 +#: src/forms/StockForms.tsx:705 +#: src/forms/StockForms.tsx:736 +#: src/forms/StockForms.tsx:771 +#: src/forms/StockForms.tsx:813 +#: src/forms/StockForms.tsx:851 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:413 +#: src/tables/RowActions.tsx:129 +#: src/tables/build/BuildLineTable.tsx:101 +msgid "Actions" +msgstr "" + +#: src/components/nav/NavigationDrawer.tsx:191 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:205 +#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:44 +msgid "Plugins" +msgstr "" + +#: src/components/nav/NavigationDrawer.tsx:204 +#: src/defaults/actions.tsx:24 +msgid "Documentation" +msgstr "" + +#: src/components/nav/NavigationDrawer.tsx:210 +msgid "About" +msgstr "" + +#: src/components/nav/NotificationDrawer.tsx:180 msgid "Mark all as read" msgstr "" -#: src/components/nav/NotificationDrawer.tsx:104 +#: src/components/nav/NotificationDrawer.tsx:190 msgid "View all notifications" msgstr "" -#: src/components/nav/NotificationDrawer.tsx:123 +#: src/components/nav/NotificationDrawer.tsx:210 msgid "You have no unread notifications." msgstr "" -#: src/components/nav/NotificationDrawer.tsx:139 -#: src/components/nav/NotificationDrawer.tsx:145 -#: src/tables/notifications/NotificationsTable.tsx:36 -msgid "Notification" -msgstr "" - -#: src/components/nav/NotificationDrawer.tsx:168 -#: src/pages/Notifications.tsx:73 -msgid "Mark as read" -msgstr "" - -#: src/components/nav/SearchDrawer.tsx:78 +#: src/components/nav/SearchDrawer.tsx:85 msgid "results" msgstr "" -#: src/components/nav/SearchDrawer.tsx:370 +#: src/components/nav/SearchDrawer.tsx:380 msgid "Enter search text" msgstr "" -#: src/components/nav/SearchDrawer.tsx:397 +#: src/components/nav/SearchDrawer.tsx:391 +msgid "Refresh search results" +msgstr "" + +#: src/components/nav/SearchDrawer.tsx:402 +#: src/components/nav/SearchDrawer.tsx:409 msgid "Search Options" msgstr "" -#: src/components/nav/SearchDrawer.tsx:400 +#: src/components/nav/SearchDrawer.tsx:412 msgid "Regex search" msgstr "" -#: src/components/nav/SearchDrawer.tsx:410 +#: src/components/nav/SearchDrawer.tsx:421 msgid "Whole word search" msgstr "" -#: src/components/nav/SearchDrawer.tsx:451 +#: src/components/nav/SearchDrawer.tsx:461 msgid "An error occurred during search query" msgstr "" #: src/components/nav/SearchDrawer.tsx:462 -msgid "No results" +#~ msgid "No results" +#~ msgstr "No results" + +#: src/components/nav/SearchDrawer.tsx:472 +#: src/tables/part/PartTestTemplateTable.tsx:76 +msgid "No Results" msgstr "" -#: src/components/nav/SearchDrawer.tsx:465 +#: src/components/nav/SearchDrawer.tsx:475 msgid "No results available for search query" msgstr "" -#: src/components/render/Instance.tsx:217 +#: src/components/panels/AttachmentPanel.tsx:18 +msgid "Attachments" +msgstr "" + +#: src/components/panels/NotesPanel.tsx:24 +#: src/tables/build/BuildOrderTestTable.tsx:143 +#: src/tables/stock/StockTrackingTable.tsx:204 +msgid "Notes" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:47 +msgid "Plugin Inactive" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:50 +msgid "Plugin is not active" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:60 +msgid "Plugin Information" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:74 +#: src/pages/build/BuildDetail.tsx:116 +#: src/pages/company/CompanyDetail.tsx:89 +#: src/pages/company/ManufacturerPartDetail.tsx:89 +#: src/pages/company/ManufacturerPartDetail.tsx:116 +#: src/pages/company/SupplierPartDetail.tsx:140 +#: src/pages/part/CategoryDetail.tsx:101 +#: src/pages/part/PartDetail.tsx:178 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:136 +#: src/pages/sales/ReturnOrderDetail.tsx:107 +#: src/pages/sales/SalesOrderDetail.tsx:116 +#: src/pages/stock/LocationDetail.tsx:103 +#: src/tables/ColumnRenderers.tsx:92 +#: src/tables/bom/UsedInTable.tsx:44 +#: src/tables/build/BuildAllocatedStockTable.tsx:83 +#: src/tables/build/BuildLineTable.tsx:329 +#: src/tables/machine/MachineTypeTable.tsx:74 +#: src/tables/machine/MachineTypeTable.tsx:129 +#: src/tables/machine/MachineTypeTable.tsx:240 +#: src/tables/machine/MachineTypeTable.tsx:344 +#: src/tables/part/RelatedPartTable.tsx:66 +#: src/tables/plugin/PluginListTable.tsx:99 +#: src/tables/sales/SalesOrderAllocationTable.tsx:87 +#: src/tables/sales/SalesOrderLineItemTable.tsx:75 +#: src/tables/stock/LocationTypesTable.tsx:74 +msgid "Description" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:79 +msgid "Author" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:84 +#: src/pages/part/PartSchedulingDetail.tsx:277 +#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:40 +#: src/pages/part/pricing/SaleHistoryPanel.tsx:38 +#: src/tables/ColumnRenderers.tsx:215 +#: src/tables/build/BuildOrderTestTable.tsx:151 +#: src/tables/settings/StocktakeReportTable.tsx:40 +msgid "Date" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:94 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:398 +#: src/pages/part/PartDetail.tsx:331 +#: src/tables/bom/UsedInTable.tsx:84 +#: src/tables/company/CompanyTable.tsx:62 +#: src/tables/company/CompanyTable.tsx:96 +#: src/tables/machine/MachineListTable.tsx:333 +#: src/tables/machine/MachineListTable.tsx:605 +#: src/tables/part/ParametricPartTable.tsx:223 +#: src/tables/part/PartTable.tsx:178 +#: src/tables/part/PartVariantTable.tsx:15 +#: src/tables/plugin/PluginListTable.tsx:94 +#: src/tables/plugin/PluginListTable.tsx:401 +#: src/tables/purchasing/SupplierPartTable.tsx:100 +#: src/tables/purchasing/SupplierPartTable.tsx:190 +#: src/tables/settings/UserTable.tsx:283 +#: src/tables/stock/StockItemTable.tsx:293 +msgid "Active" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:106 +msgid "Package Name" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:112 +msgid "Installation Path" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:117 +#: src/tables/machine/MachineTypeTable.tsx:152 +#: src/tables/machine/MachineTypeTable.tsx:276 +#: src/tables/plugin/PluginListTable.tsx:406 +msgid "Builtin" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:122 +msgid "Package" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:134 +#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:53 +msgid "Plugin Settings" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:146 +#: src/components/render/ModelType.tsx:276 +msgid "Plugin Configuration" +msgstr "" + +#: src/components/plugins/PluginPanel.tsx:87 +#~ msgid "Error occurred while rendering plugin content" +#~ msgstr "Error occurred while rendering plugin content" + +#: src/components/plugins/PluginPanel.tsx:91 +#~ msgid "Plugin did not provide panel rendering function" +#~ msgstr "Plugin did not provide panel rendering function" + +#: src/components/plugins/PluginPanel.tsx:103 +#~ msgid "No content provided for this plugin" +#~ msgstr "No content provided for this plugin" + +#: src/components/plugins/PluginPanel.tsx:116 +#: src/components/plugins/PluginSettingsPanel.tsx:76 +#~ msgid "Error Loading Plugin" +#~ msgstr "Error Loading Plugin" + +#: src/components/plugins/PluginSettingsPanel.tsx:51 +#~ msgid "Error occurred while rendering plugin settings" +#~ msgstr "Error occurred while rendering plugin settings" + +#: src/components/plugins/PluginSettingsPanel.tsx:55 +#~ msgid "Plugin did not provide settings rendering function" +#~ msgstr "Plugin did not provide settings rendering function" + +#: src/components/plugins/PluginUIFeature.tsx:100 +msgid "Error occurred while rendering the template editor." +msgstr "" + +#: src/components/plugins/PluginUIFeature.tsx:111 +msgid "Error Loading Plugin Editor" +msgstr "" + +#: src/components/plugins/PluginUIFeature.tsx:147 +msgid "Error occurred while rendering the template preview." +msgstr "" + +#: src/components/plugins/PluginUIFeature.tsx:158 +msgid "Error Loading Plugin Preview" +msgstr "" + +#: src/components/plugins/RemoteComponent.tsx:70 +msgid "Invalid source or function name" +msgstr "" + +#: src/components/plugins/RemoteComponent.tsx:91 +msgid "Error Loading Content" +msgstr "" + +#: src/components/plugins/RemoteComponent.tsx:95 +msgid "Error occurred while loading plugin content" +msgstr "" + +#: src/components/render/Instance.tsx:224 msgid "Unknown model: {model}" msgstr "" -#: src/components/render/ModelType.tsx:22 -#: src/forms/BuildForms.tsx:213 -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/forms/StockForms.tsx:499 -#: src/forms/StockForms.tsx:533 -#: src/forms/StockForms.tsx:562 -#: src/forms/StockForms.tsx:590 -#: src/forms/StockForms.tsx:621 -#: src/forms/StockForms.tsx:656 -#: src/forms/StockForms.tsx:698 -#: src/forms/StockForms.tsx:734 -#: src/pages/build/BuildDetail.tsx:95 -#: src/pages/part/PartDetail.tsx:1073 -#: src/tables/build/BuildAllocatedStockTable.tsx:82 +#: src/components/render/ModelType.tsx:30 +#: src/forms/BuildForms.tsx:269 +#: src/forms/BuildForms.tsx:337 +#: src/forms/BuildForms.tsx:385 +#: src/forms/BuildForms.tsx:515 +#: src/forms/PurchaseOrderForms.tsx:689 +#: src/forms/ReturnOrderForms.tsx:190 +#: src/forms/SalesOrderForms.tsx:248 +#: src/forms/StockForms.tsx:261 +#: src/forms/StockForms.tsx:614 +#: src/forms/StockForms.tsx:651 +#: src/forms/StockForms.tsx:677 +#: src/forms/StockForms.tsx:705 +#: src/forms/StockForms.tsx:736 +#: src/forms/StockForms.tsx:771 +#: src/forms/StockForms.tsx:813 +#: src/forms/StockForms.tsx:851 +#: src/pages/build/BuildDetail.tsx:90 +#: src/pages/part/PartDetail.tsx:1094 +#: src/tables/build/BuildAllocatedStockTable.tsx:95 +#: src/tables/build/BuildLineTable.tsx:72 #: src/tables/part/PartTable.tsx:28 -#: src/tables/part/RelatedPartTable.tsx:45 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:88 -#: src/tables/sales/SalesOrderAllocationTable.tsx:68 -#: src/tables/stock/StockTrackingTable.tsx:74 +#: src/tables/part/RelatedPartTable.tsx:47 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:130 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:100 +#: src/tables/sales/SalesOrderAllocationTable.tsx:99 +#: src/tables/stock/StockTrackingTable.tsx:78 msgid "Part" msgstr "" -#: src/components/render/ModelType.tsx:23 -#: src/defaults/links.tsx:29 -#: src/defaults/menuItems.tsx:33 -#: src/pages/Index/Settings/SystemSettings.tsx:173 -#: src/pages/part/CategoryDetail.tsx:119 -#: src/pages/part/CategoryDetail.tsx:244 -#: src/pages/part/CategoryDetail.tsx:274 -#: src/pages/part/PartDetail.tsx:827 -msgid "Parts" -msgstr "" - -#: src/components/render/ModelType.tsx:31 +#: src/components/render/ModelType.tsx:40 msgid "Part Parameter Template" msgstr "" -#: src/components/render/ModelType.tsx:32 +#: src/components/render/ModelType.tsx:41 msgid "Part Parameter Templates" msgstr "" -#: src/components/render/ModelType.tsx:38 +#: src/components/render/ModelType.tsx:48 msgid "Part Test Template" msgstr "" -#: src/components/render/ModelType.tsx:39 +#: src/components/render/ModelType.tsx:49 msgid "Part Test Templates" msgstr "" -#: src/components/render/ModelType.tsx:45 -#: src/pages/company/SupplierPartDetail.tsx:203 -#: src/pages/company/SupplierPartDetail.tsx:375 -#: src/pages/stock/StockDetail.tsx:173 -#: src/tables/build/BuildAllocatedStockTable.tsx:131 +#: src/components/render/ModelType.tsx:56 +#: src/pages/company/SupplierPartDetail.tsx:364 +#: src/pages/stock/StockDetail.tsx:194 +#: src/tables/build/BuildAllocatedStockTable.tsx:152 #: src/tables/part/PartPurchaseOrdersTable.tsx:49 -#: src/tables/purchasing/SupplierPartTable.tsx:68 +#: src/tables/purchasing/SupplierPartTable.tsx:70 +#: src/tables/stock/StockItemTable.tsx:229 msgid "Supplier Part" msgstr "" -#: src/components/render/ModelType.tsx:46 +#: src/components/render/ModelType.tsx:57 msgid "Supplier Parts" msgstr "" -#: src/components/render/ModelType.tsx:54 -#: src/pages/company/ManufacturerPartDetail.tsx:132 +#: src/components/render/ModelType.tsx:66 #: src/tables/part/PartPurchaseOrdersTable.tsx:55 +#: src/tables/stock/StockItemTable.tsx:234 msgid "Manufacturer Part" msgstr "" -#: src/components/render/ModelType.tsx:55 +#: src/components/render/ModelType.tsx:67 msgid "Manufacturer Parts" msgstr "" -#: src/components/render/ModelType.tsx:63 -#: src/pages/part/CategoryDetail.tsx:305 +#: src/components/render/ModelType.tsx:76 +#: src/pages/part/CategoryDetail.tsx:310 msgid "Part Category" msgstr "" -#: src/components/render/ModelType.tsx:64 -#: src/pages/part/CategoryDetail.tsx:258 -#: src/pages/part/CategoryDetail.tsx:296 -#: src/pages/part/PartDetail.tsx:1063 +#: src/components/render/ModelType.tsx:77 +#: src/pages/part/CategoryDetail.tsx:263 +#: src/pages/part/CategoryDetail.tsx:301 +#: src/pages/part/PartDetail.tsx:1084 msgid "Part Categories" msgstr "" -#: src/components/render/ModelType.tsx:72 -#: src/pages/stock/StockDetail.tsx:624 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:94 -#: src/tables/stock/StockTrackingTable.tsx:45 +#: src/components/render/ModelType.tsx:86 +#: src/forms/BuildForms.tsx:337 +#: src/forms/BuildForms.tsx:385 +#: src/forms/BuildForms.tsx:515 +#: src/forms/SalesOrderForms.tsx:248 +#: src/pages/stock/StockDetail.tsx:839 +#: src/tables/stock/StockTrackingTable.tsx:49 msgid "Stock Item" msgstr "" -#: src/components/render/ModelType.tsx:73 +#: src/components/render/ModelType.tsx:87 #: src/pages/company/CompanyDetail.tsx:203 -#: src/pages/stock/LocationDetail.tsx:128 -#: src/pages/stock/LocationDetail.tsx:181 -#: src/pages/stock/LocationDetail.tsx:395 +#: src/pages/part/PartStocktakeDetail.tsx:113 +#: src/pages/stock/LocationDetail.tsx:122 +#: src/pages/stock/LocationDetail.tsx:175 +#: src/pages/stock/LocationDetail.tsx:380 msgid "Stock Items" msgstr "" -#: src/components/render/ModelType.tsx:81 +#: src/components/render/ModelType.tsx:96 msgid "Stock Location" msgstr "" -#: src/components/render/ModelType.tsx:82 -#: src/pages/stock/LocationDetail.tsx:195 -#: src/pages/stock/LocationDetail.tsx:387 -#: src/pages/stock/StockDetail.tsx:616 +#: src/components/render/ModelType.tsx:97 +#: src/pages/stock/LocationDetail.tsx:189 +#: src/pages/stock/LocationDetail.tsx:372 +#: src/pages/stock/StockDetail.tsx:831 msgid "Stock Locations" msgstr "" -#: src/components/render/ModelType.tsx:90 +#: src/components/render/ModelType.tsx:106 msgid "Stock Location Type" msgstr "" -#: src/components/render/ModelType.tsx:91 +#: src/components/render/ModelType.tsx:107 msgid "Stock Location Types" msgstr "" -#: src/components/render/ModelType.tsx:95 +#: src/components/render/ModelType.tsx:112 +#: src/pages/part/PartDetail.tsx:712 msgid "Stock History" msgstr "" -#: src/components/render/ModelType.tsx:96 +#: src/components/render/ModelType.tsx:113 msgid "Stock Histories" msgstr "" -#: src/components/render/ModelType.tsx:100 -#: src/defaults/links.tsx:31 -#: src/defaults/menuItems.tsx:43 +#: src/components/render/ModelType.tsx:118 msgid "Build" msgstr "" -#: src/components/render/ModelType.tsx:101 +#: src/components/render/ModelType.tsx:119 msgid "Builds" msgstr "" -#: src/components/render/ModelType.tsx:109 +#: src/components/render/ModelType.tsx:128 msgid "Build Line" msgstr "" -#: src/components/render/ModelType.tsx:110 +#: src/components/render/ModelType.tsx:129 msgid "Build Lines" msgstr "" -#: src/components/render/ModelType.tsx:117 +#: src/components/render/ModelType.tsx:137 msgid "Build Item" msgstr "" -#: src/components/render/ModelType.tsx:118 +#: src/components/render/ModelType.tsx:138 msgid "Build Items" msgstr "" -#: src/components/render/ModelType.tsx:122 -#: src/pages/company/CompanyDetail.tsx:339 +#: src/components/render/ModelType.tsx:143 +#: src/pages/company/CompanyDetail.tsx:321 msgid "Company" msgstr "" -#: src/components/render/ModelType.tsx:123 +#: src/components/render/ModelType.tsx:144 msgid "Companies" msgstr "" -#: src/components/render/ModelType.tsx:131 +#: src/components/render/ModelType.tsx:153 +#: src/pages/build/BuildDetail.tsx:195 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:204 +#: src/pages/sales/ReturnOrderDetail.tsx:174 +#: src/pages/sales/SalesOrderDetail.tsx:186 #: src/tables/TableHoverCard.tsx:81 -#: src/tables/build/BuildOrderTable.tsx:140 -#: src/tables/purchasing/PurchaseOrderTable.tsx:64 -#: src/tables/sales/ReturnOrderTable.tsx:55 -#: src/tables/sales/SalesOrderTable.tsx:62 +#: src/tables/build/BuildOrderTable.tsx:135 +#: src/tables/purchasing/PurchaseOrderTable.tsx:69 +#: src/tables/sales/ReturnOrderTable.tsx:67 +#: src/tables/sales/SalesOrderTable.tsx:67 msgid "Project Code" msgstr "" -#: src/components/render/ModelType.tsx:132 -#: src/pages/Index/Settings/AdminCenter/Index.tsx:128 +#: src/components/render/ModelType.tsx:154 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:145 msgid "Project Codes" msgstr "" -#: src/components/render/ModelType.tsx:138 +#: src/components/render/ModelType.tsx:161 #: src/pages/part/pricing/PurchaseHistoryPanel.tsx:32 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:480 -#: src/tables/part/PartPurchaseOrdersTable.tsx:32 -#: src/tables/stock/StockTrackingTable.tsx:107 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:477 +#: src/pages/stock/StockDetail.tsx:253 +#: src/tables/part/PartPurchaseOrdersTable.tsx:31 +#: src/tables/stock/StockItemTable.tsx:222 +#: src/tables/stock/StockTrackingTable.tsx:111 msgid "Purchase Order" msgstr "" -#: src/components/render/ModelType.tsx:139 -#: src/pages/Index/Settings/SystemSettings.tsx:255 +#: src/components/render/ModelType.tsx:162 +#: src/pages/Index/Settings/SystemSettings.tsx:249 #: src/pages/company/CompanyDetail.tsx:196 -#: src/pages/company/SupplierPartDetail.tsx:237 -#: src/pages/part/PartDetail.tsx:662 +#: src/pages/company/SupplierPartDetail.tsx:249 +#: src/pages/part/PartDetail.tsx:683 #: src/pages/purchasing/PurchasingIndex.tsx:25 msgid "Purchase Orders" msgstr "" -#: src/components/render/ModelType.tsx:147 +#: src/components/render/ModelType.tsx:171 msgid "Purchase Order Line" msgstr "" -#: src/components/render/ModelType.tsx:148 +#: src/components/render/ModelType.tsx:172 msgid "Purchase Order Lines" msgstr "" -#: src/components/render/ModelType.tsx:152 -#: src/pages/build/BuildDetail.tsx:153 -#: src/pages/sales/SalesOrderDetail.tsx:520 -#: src/pages/stock/StockDetail.tsx:221 -#: src/tables/sales/SalesOrderAllocationTable.tsx:50 -#: src/tables/stock/StockTrackingTable.tsx:118 +#: src/components/render/ModelType.tsx:177 +#: src/pages/build/BuildDetail.tsx:148 +#: src/pages/part/pricing/SaleHistoryPanel.tsx:24 +#: src/pages/sales/SalesOrderDetail.tsx:515 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:92 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:341 +#: src/pages/stock/StockDetail.tsx:262 +#: src/tables/sales/SalesOrderAllocationTable.tsx:80 +#: src/tables/stock/StockTrackingTable.tsx:122 msgid "Sales Order" msgstr "" -#: src/components/render/ModelType.tsx:153 -#: src/pages/Index/Settings/SystemSettings.tsx:270 +#: src/components/render/ModelType.tsx:178 +#: src/pages/Index/Settings/SystemSettings.tsx:264 #: src/pages/company/CompanyDetail.tsx:216 -#: src/pages/part/PartDetail.tsx:669 +#: src/pages/part/PartDetail.tsx:695 #: src/pages/sales/SalesIndex.tsx:26 msgid "Sales Orders" msgstr "" -#: src/components/render/ModelType.tsx:161 +#: src/components/render/ModelType.tsx:187 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:340 msgid "Sales Order Shipment" msgstr "" -#: src/components/render/ModelType.tsx:162 +#: src/components/render/ModelType.tsx:188 msgid "Sales Order Shipments" msgstr "" -#: src/components/render/ModelType.tsx:168 -#: src/pages/sales/ReturnOrderDetail.tsx:469 -#: src/tables/stock/StockTrackingTable.tsx:129 +#: src/components/render/ModelType.tsx:195 +#: src/pages/sales/ReturnOrderDetail.tsx:464 +#: src/tables/stock/StockTrackingTable.tsx:133 msgid "Return Order" msgstr "" -#: src/components/render/ModelType.tsx:169 -#: src/pages/Index/Settings/SystemSettings.tsx:286 +#: src/components/render/ModelType.tsx:196 +#: src/pages/Index/Settings/SystemSettings.tsx:280 #: src/pages/company/CompanyDetail.tsx:223 +#: src/pages/part/PartDetail.tsx:702 #: src/pages/sales/SalesIndex.tsx:32 msgid "Return Orders" msgstr "" -#: src/components/render/ModelType.tsx:177 +#: src/components/render/ModelType.tsx:205 msgid "Return Order Line Item" msgstr "" -#: src/components/render/ModelType.tsx:178 +#: src/components/render/ModelType.tsx:206 msgid "Return Order Line Items" msgstr "" -#: src/components/render/ModelType.tsx:182 -#: src/tables/company/AddressTable.tsx:47 +#: src/components/render/ModelType.tsx:211 +#: src/tables/company/AddressTable.tsx:48 msgid "Address" msgstr "" -#: src/components/render/ModelType.tsx:183 -#: src/pages/company/CompanyDetail.tsx:253 +#: src/components/render/ModelType.tsx:212 +#: src/pages/company/CompanyDetail.tsx:255 msgid "Addresses" msgstr "" -#: src/components/render/ModelType.tsx:189 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:195 -#: src/pages/sales/ReturnOrderDetail.tsx:174 -#: src/pages/sales/SalesOrderDetail.tsx:183 +#: src/components/render/ModelType.tsx:219 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:196 +#: src/pages/sales/ReturnOrderDetail.tsx:166 +#: src/pages/sales/SalesOrderDetail.tsx:178 msgid "Contact" msgstr "" -#: src/components/render/ModelType.tsx:190 -#: src/pages/company/CompanyDetail.tsx:247 +#: src/components/render/ModelType.tsx:220 +#: src/pages/company/CompanyDetail.tsx:249 msgid "Contacts" msgstr "" -#: src/components/render/ModelType.tsx:196 +#: src/components/render/ModelType.tsx:227 msgid "Owner" msgstr "" -#: src/components/render/ModelType.tsx:197 +#: src/components/render/ModelType.tsx:228 msgid "Owners" msgstr "" -#: src/components/render/ModelType.tsx:203 -#: src/tables/settings/ImportSessionTable.tsx:121 -#: src/tables/stock/StockItemTestResultTable.tsx:198 -#: src/tables/stock/StockTrackingTable.tsx:195 +#: src/components/render/ModelType.tsx:234 +#~ msgid "Purchase Order Line Item" +#~ msgstr "Purchase Order Line Item" + +#: src/components/render/ModelType.tsx:235 +#: src/tables/settings/BarcodeScanHistoryTable.tsx:80 +#: src/tables/settings/BarcodeScanHistoryTable.tsx:211 +#: src/tables/settings/ImportSessionTable.tsx:120 +#: src/tables/settings/StocktakeReportTable.tsx:44 +#: src/tables/stock/StockItemTestResultTable.tsx:204 +#: src/tables/stock/StockTrackingTable.tsx:181 +#: src/tables/stock/StockTrackingTable.tsx:210 msgid "User" msgstr "" -#: src/components/render/ModelType.tsx:204 -#: src/pages/Index/Settings/AdminCenter/Index.tsx:98 +#: src/components/render/ModelType.tsx:236 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:109 #: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:13 msgid "Users" msgstr "" -#: src/components/render/ModelType.tsx:210 +#: src/components/render/ModelType.tsx:243 msgid "Group" msgstr "" -#: src/components/render/ModelType.tsx:211 +#: src/components/render/ModelType.tsx:244 #: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:20 -#: src/tables/settings/UserTable.tsx:138 -#: src/tables/settings/UserTable.tsx:201 +#: src/tables/settings/UserTable.tsx:137 +#: src/tables/settings/UserTable.tsx:200 msgid "Groups" msgstr "" -#: src/components/render/ModelType.tsx:218 +#: src/components/render/ModelType.tsx:252 msgid "Import Session" msgstr "" -#: src/components/render/ModelType.tsx:219 +#: src/components/render/ModelType.tsx:253 msgid "Import Sessions" msgstr "" -#: src/components/render/ModelType.tsx:225 +#: src/components/render/ModelType.tsx:260 msgid "Label Template" msgstr "" -#: src/components/render/ModelType.tsx:226 -#: src/pages/Index/Settings/AdminCenter/Index.tsx:158 +#: src/components/render/ModelType.tsx:261 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:187 msgid "Label Templates" msgstr "" -#: src/components/render/ModelType.tsx:232 +#: src/components/render/ModelType.tsx:264 +#~ msgid "Unknown Model" +#~ msgstr "Unknown Model" + +#: src/components/render/ModelType.tsx:268 msgid "Report Template" msgstr "" -#: src/components/render/ModelType.tsx:233 -#: src/pages/Index/Settings/AdminCenter/Index.tsx:164 +#: src/components/render/ModelType.tsx:269 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:193 msgid "Report Templates" msgstr "" -#: src/components/render/ModelType.tsx:239 -msgid "Plugin Configuration" -msgstr "" - -#: src/components/render/ModelType.tsx:240 +#: src/components/render/ModelType.tsx:277 msgid "Plugin Configurations" msgstr "" +#: src/components/render/ModelType.tsx:284 +msgid "Content Type" +msgstr "" + +#: src/components/render/ModelType.tsx:285 +msgid "Content Types" +msgstr "" + +#: src/components/render/ModelType.tsx:291 +#: src/tables/machine/MachineListTable.tsx:351 +#: src/tables/machine/MachineTypeTable.tsx:282 +msgid "Errors" +msgstr "" + +#: src/components/render/ModelType.tsx:307 +#~ msgid "Purchase Order Line Items" +#~ msgstr "Purchase Order Line Items" + +#: src/components/render/ModelType.tsx:337 +#~ msgid "Unknown Models" +#~ msgstr "Unknown Models" + #: src/components/render/Order.tsx:121 +#: src/tables/sales/SalesOrderAllocationTable.tsx:136 msgid "Shipment" msgstr "" #: src/components/render/Part.tsx:25 #: src/components/render/Plugin.tsx:17 -#: src/pages/company/CompanyDetail.tsx:325 -#: src/pages/company/SupplierPartDetail.tsx:360 -#: src/pages/part/PartDetail.tsx:879 +#: src/pages/company/CompanyDetail.tsx:307 +#: src/pages/company/SupplierPartDetail.tsx:349 +#: src/pages/part/PartDetail.tsx:911 msgid "Inactive" msgstr "" @@ -1736,39 +2335,38 @@ msgstr "" msgid "No stock" msgstr "" -#: src/components/render/Part.tsx:30 -#: src/defaults/links.tsx:30 -#: src/defaults/menuItems.tsx:38 -#: src/pages/Index/Settings/SystemSettings.tsx:206 -#: src/pages/part/PartDetail.tsx:543 -#: src/pages/stock/LocationDetail.tsx:367 -#: src/pages/stock/StockDetail.tsx:411 -#: src/tables/stock/StockItemTable.tsx:68 -msgid "Stock" -msgstr "" - -#: src/components/render/Stock.tsx:60 -#: src/pages/stock/StockDetail.tsx:150 -#: src/pages/stock/StockDetail.tsx:581 -#: src/tables/build/BuildAllocatedStockTable.tsx:102 -#: src/tables/sales/SalesOrderAllocationTable.tsx:80 +#: src/components/render/Stock.tsx:61 +#: src/forms/ReturnOrderForms.tsx:190 +#: src/pages/stock/StockDetail.tsx:166 +#: src/pages/stock/StockDetail.tsx:771 +#: src/tables/build/BuildAllocatedStockTable.tsx:123 +#: src/tables/build/BuildOutputTable.tsx:81 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:114 +#: src/tables/sales/SalesOrderAllocationTable.tsx:106 msgid "Serial Number" msgstr "" -#: src/components/render/Stock.tsx:62 -#: src/forms/BuildForms.tsx:218 -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/pages/part/pricing/BomPricingPanel.tsx:109 +#: src/components/render/Stock.tsx:63 +#: src/forms/BuildForms.tsx:206 +#: src/forms/BuildForms.tsx:515 +#: src/forms/PurchaseOrderForms.tsx:689 +#: src/forms/SalesOrderForms.tsx:248 +#: src/pages/part/PartSchedulingDetail.tsx:80 +#: src/pages/part/PartStocktakeDetail.tsx:60 +#: src/pages/part/PartStocktakeDetail.tsx:234 +#: src/pages/part/PartStocktakeDetail.tsx:252 +#: src/pages/part/pricing/BomPricingPanel.tsx:148 #: src/pages/part/pricing/PriceBreakPanel.tsx:89 -#: src/pages/part/pricing/PriceBreakPanel.tsx:171 -#: src/pages/stock/StockDetail.tsx:145 -#: src/pages/stock/StockDetail.tsx:587 -#: src/tables/build/BuildOrderTestTable.tsx:197 -#: src/tables/part/PartPurchaseOrdersTable.tsx:92 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:143 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:171 +#: src/pages/part/pricing/PriceBreakPanel.tsx:172 +#: src/pages/stock/StockDetail.tsx:161 +#: src/pages/stock/StockDetail.tsx:777 +#: src/tables/build/BuildLineTable.tsx:79 +#: src/tables/build/BuildOrderTestTable.tsx:198 +#: src/tables/part/PartPurchaseOrdersTable.tsx:93 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:146 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:177 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:77 -#: src/tables/stock/StockTrackingTable.tsx:59 +#: src/tables/stock/StockTrackingTable.tsx:63 msgid "Quantity" msgstr "" @@ -1842,10 +2440,6 @@ msgstr "" #~ msgid "Required Part" #~ msgstr "Required Part" -#: src/components/tables/build/BuildLineTable.tsx:152 -#~ msgid "Required Quantity" -#~ msgstr "Required Quantity" - #: src/components/tables/build/BuildOrderTable.tsx:52 #~ msgid "Progress" #~ msgstr "Progress" @@ -2126,14 +2720,6 @@ msgstr "" #~ msgid "user deleted" #~ msgstr "user deleted" -#: src/components/tables/settings/UserTable.tsx:168 -#~ msgid "First Name" -#~ msgstr "First Name" - -#: src/components/tables/settings/UserTable.tsx:173 -#~ msgid "Last Name" -#~ msgstr "Last Name" - #: src/components/tables/stock/StockItemTable.tsx:247 #~ msgid "Test Filter" #~ msgstr "Test Filter" @@ -2146,36 +2732,21 @@ msgstr "" #~ msgid "Stock location updated" #~ msgstr "Stock location updated" -#: src/components/widgets/DisplayWidget.tsx:11 -#: src/pages/Index/Settings/AccountSettings/DisplaySettingsPanel.tsx:17 -msgid "Display Settings" -msgstr "" - -#: src/components/widgets/DisplayWidget.tsx:15 -#: src/pages/Index/Settings/AccountSettings/DisplaySettingsPanel.tsx:23 -msgid "Color Mode" -msgstr "" - -#: src/components/widgets/DisplayWidget.tsx:21 -#: src/pages/Index/Settings/AccountSettings/DisplaySettingsPanel.tsx:33 -msgid "Language" -msgstr "" - #: src/components/widgets/FeedbackWidget.tsx:19 -msgid "Something is new: Platform UI" -msgstr "" +#~ msgid "Something is new: Platform UI" +#~ msgstr "Something is new: Platform UI" #: src/components/widgets/FeedbackWidget.tsx:21 -msgid "We are building a new UI with a modern stack. What you currently see is not fixed and will be redesigned but demonstrates the UI/UX possibilities we will have going forward." -msgstr "" +#~ msgid "We are building a new UI with a modern stack. What you currently see is not fixed and will be redesigned but demonstrates the UI/UX possibilities we will have going forward." +#~ msgstr "We are building a new UI with a modern stack. What you currently see is not fixed and will be redesigned but demonstrates the UI/UX possibilities we will have going forward." #: src/components/widgets/FeedbackWidget.tsx:32 -msgid "Provide Feedback" -msgstr "" +#~ msgid "Provide Feedback" +#~ msgstr "Provide Feedback" #: src/components/widgets/GetStartedWidget.tsx:11 -msgid "Getting started" -msgstr "" +#~ msgid "Getting started" +#~ msgstr "Getting started" #: src/components/widgets/MarkdownEditor.tsx:108 #~ msgid "Failed to upload image" @@ -2186,28 +2757,24 @@ msgstr "" #~ msgstr "Notes saved" #: src/components/widgets/WidgetLayout.tsx:166 -msgid "Layout" -msgstr "" +#~ msgid "Layout" +#~ msgstr "Layout" #: src/components/widgets/WidgetLayout.tsx:172 -msgid "Reset Layout" -msgstr "" +#~ msgid "Reset Layout" +#~ msgstr "Reset Layout" #: src/components/widgets/WidgetLayout.tsx:185 -msgid "Stop Edit" -msgstr "" - -#: src/components/widgets/WidgetLayout.tsx:185 -msgid "Edit Layout" -msgstr "" +#~ msgid "Stop Edit" +#~ msgstr "Stop Edit" #: src/components/widgets/WidgetLayout.tsx:191 -msgid "Appearance" -msgstr "" +#~ msgid "Appearance" +#~ msgstr "Appearance" #: src/components/widgets/WidgetLayout.tsx:203 -msgid "Show Boxes" -msgstr "" +#~ msgid "Show Boxes" +#~ msgstr "Show Boxes" #: src/contexts/LanguageContext.tsx:20 msgid "Arabic" @@ -2286,201 +2853,175 @@ msgid "Korean" msgstr "" #: src/contexts/LanguageContext.tsx:39 -msgid "Latvian" +msgid "Lithuanian" msgstr "" #: src/contexts/LanguageContext.tsx:40 -msgid "Dutch" +msgid "Latvian" msgstr "" #: src/contexts/LanguageContext.tsx:41 -msgid "Norwegian" +msgid "Dutch" msgstr "" #: src/contexts/LanguageContext.tsx:42 -msgid "Polish" +msgid "Norwegian" msgstr "" #: src/contexts/LanguageContext.tsx:43 -msgid "Portuguese" +msgid "Polish" msgstr "" #: src/contexts/LanguageContext.tsx:44 -msgid "Portuguese (Brazilian)" +msgid "Portuguese" msgstr "" #: src/contexts/LanguageContext.tsx:45 -msgid "Romanian" +msgid "Portuguese (Brazilian)" msgstr "" #: src/contexts/LanguageContext.tsx:46 -msgid "Russian" +msgid "Romanian" msgstr "" #: src/contexts/LanguageContext.tsx:47 -msgid "Slovak" +msgid "Russian" msgstr "" #: src/contexts/LanguageContext.tsx:48 -msgid "Slovenian" +msgid "Slovak" msgstr "" #: src/contexts/LanguageContext.tsx:49 -msgid "Swedish" +msgid "Slovenian" msgstr "" #: src/contexts/LanguageContext.tsx:50 -msgid "Thai" +msgid "Swedish" msgstr "" #: src/contexts/LanguageContext.tsx:51 -msgid "Turkish" +msgid "Thai" msgstr "" #: src/contexts/LanguageContext.tsx:52 -msgid "Ukrainian" +msgid "Turkish" msgstr "" #: src/contexts/LanguageContext.tsx:53 -msgid "Vietnamese" +msgid "Ukrainian" msgstr "" #: src/contexts/LanguageContext.tsx:54 -msgid "Chinese (Simplified)" +msgid "Vietnamese" msgstr "" #: src/contexts/LanguageContext.tsx:55 +msgid "Chinese (Simplified)" +msgstr "" + +#: src/contexts/LanguageContext.tsx:56 msgid "Chinese (Traditional)" msgstr "" +#: src/defaults/actions.tsx:18 +msgid "Go to the InvenTree dashboard" +msgstr "" + #: src/defaults/actions.tsx:18 #: src/defaults/links.tsx:27 #: src/defaults/menuItems.tsx:9 -msgid "Home" -msgstr "" +#~ msgid "Home" +#~ msgstr "Home" #: src/defaults/actions.tsx:25 -#: src/defaults/links.tsx:28 -#: src/defaults/menuItems.tsx:28 -#: src/pages/Index/Dashboard.tsx:19 -#: src/pages/Index/Settings/UserSettings.tsx:46 -msgid "Dashboard" -msgstr "" - -#: src/defaults/actions.tsx:26 -msgid "Go to the InvenTree dashboard" -msgstr "" - -#: src/defaults/actions.tsx:33 msgid "Visit the documentation to learn more about InvenTree" msgstr "" -#: src/defaults/actions.tsx:39 -#: src/defaults/links.tsx:98 -#: src/defaults/links.tsx:128 +#: src/defaults/actions.tsx:31 +#: src/defaults/links.tsx:92 +#: src/defaults/links.tsx:124 msgid "About InvenTree" msgstr "" -#: src/defaults/actions.tsx:40 -#: src/defaults/links.tsx:129 +#: src/defaults/actions.tsx:32 msgid "About the InvenTree org" msgstr "" -#: src/defaults/actions.tsx:46 +#: src/defaults/actions.tsx:38 msgid "Server Information" msgstr "" -#: src/defaults/actions.tsx:47 -#: src/defaults/links.tsx:123 +#: src/defaults/actions.tsx:39 +#: src/defaults/links.tsx:118 msgid "About this Inventree instance" msgstr "" -#: src/defaults/actions.tsx:53 -#: src/defaults/links.tsx:111 +#: src/defaults/actions.tsx:45 +#: src/defaults/links.tsx:105 +#: src/defaults/links.tsx:131 msgid "License Information" msgstr "" -#: src/defaults/actions.tsx:54 -#: src/defaults/links.tsx:135 +#: src/defaults/actions.tsx:46 msgid "Licenses for dependencies of the service" msgstr "" -#: src/defaults/actions.tsx:61 +#: src/defaults/actions.tsx:52 +msgid "Open Navigation" +msgstr "" + +#: src/defaults/actions.tsx:53 msgid "Open the main navigation menu" msgstr "" -#: src/defaults/actions.tsx:72 +#: src/defaults/actions.tsx:64 msgid "Go to the Admin Center" msgstr "" -#: src/defaults/dashboardItems.tsx:15 -msgid "Subscribed Parts" -msgstr "" - -#: src/defaults/dashboardItems.tsx:22 -msgid "Subscribed Categories" -msgstr "" - #: src/defaults/dashboardItems.tsx:29 -msgid "Latest Parts" -msgstr "" +#~ msgid "Latest Parts" +#~ msgstr "Latest Parts" #: src/defaults/dashboardItems.tsx:36 -msgid "BOM Waiting Validation" -msgstr "" +#~ msgid "BOM Waiting Validation" +#~ msgstr "BOM Waiting Validation" #: src/defaults/dashboardItems.tsx:43 -msgid "Recently Updated" -msgstr "" - -#: src/defaults/dashboardItems.tsx:50 -#: src/tables/part/PartTable.tsx:238 -msgid "Low Stock" -msgstr "" +#~ msgid "Recently Updated" +#~ msgstr "Recently Updated" #: src/defaults/dashboardItems.tsx:57 -msgid "Depleted Stock" -msgstr "" +#~ msgid "Depleted Stock" +#~ msgstr "Depleted Stock" #: src/defaults/dashboardItems.tsx:64 -msgid "Required for Build Orders" -msgstr "" +#~ msgid "Required for Build Orders" +#~ msgstr "Required for Build Orders" #: src/defaults/dashboardItems.tsx:71 -msgid "Expired Stock" -msgstr "" +#~ msgid "Expired Stock" +#~ msgstr "Expired Stock" #: src/defaults/dashboardItems.tsx:78 -msgid "Stale Stock" -msgstr "" +#~ msgid "Stale Stock" +#~ msgstr "Stale Stock" #: src/defaults/dashboardItems.tsx:85 -msgid "Build Orders In Progress" -msgstr "" - -#: src/defaults/dashboardItems.tsx:92 -msgid "Overdue Build Orders" -msgstr "" +#~ msgid "Build Orders In Progress" +#~ msgstr "Build Orders In Progress" #: src/defaults/dashboardItems.tsx:99 -msgid "Outstanding Purchase Orders" -msgstr "" - -#: src/defaults/dashboardItems.tsx:106 -msgid "Overdue Purchase Orders" -msgstr "" +#~ msgid "Outstanding Purchase Orders" +#~ msgstr "Outstanding Purchase Orders" #: src/defaults/dashboardItems.tsx:113 -msgid "Outstanding Sales Orders" -msgstr "" - -#: src/defaults/dashboardItems.tsx:120 -msgid "Overdue Sales Orders" -msgstr "" +#~ msgid "Outstanding Sales Orders" +#~ msgstr "Outstanding Sales Orders" #: src/defaults/dashboardItems.tsx:127 -msgid "Current News" -msgstr "" +#~ msgid "Current News" +#~ msgstr "Current News" #: src/defaults/defaultHostList.tsx:8 #~ msgid "InvenTree Demo" @@ -2490,98 +3031,81 @@ msgstr "" #~ msgid "Local Server" #~ msgstr "Local Server" -#: src/defaults/links.tsx:12 -#: src/pages/company/CompanyDetail.tsx:96 -msgid "Website" -msgstr "" - #: src/defaults/links.tsx:17 -msgid "GitHub" -msgstr "" +#~ msgid "GitHub" +#~ msgstr "GitHub" #: src/defaults/links.tsx:22 -msgid "Demo" -msgstr "" - -#: src/defaults/links.tsx:33 -#: src/defaults/menuItems.tsx:48 -#: src/pages/company/ManufacturerDetail.tsx:9 -#: src/pages/company/ManufacturerPartDetail.tsx:263 -#: src/pages/company/SupplierDetail.tsx:9 -#: src/pages/company/SupplierPartDetail.tsx:347 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:483 -#: src/pages/purchasing/PurchasingIndex.tsx:60 -msgid "Purchasing" -msgstr "" - -#: src/defaults/links.tsx:37 -#: src/defaults/menuItems.tsx:53 -#: src/pages/company/CustomerDetail.tsx:9 -#: src/pages/sales/ReturnOrderDetail.tsx:474 -#: src/pages/sales/SalesIndex.tsx:53 -#: src/pages/sales/SalesOrderDetail.tsx:525 -msgid "Sales" -msgstr "" +#~ msgid "Demo" +#~ msgstr "Demo" #: src/defaults/links.tsx:41 #: src/defaults/menuItems.tsx:71 #: src/pages/Index/Playground.tsx:217 -msgid "Playground" -msgstr "" +#~ msgid "Playground" +#~ msgstr "Playground" -#: src/defaults/links.tsx:55 -msgid "Getting Started" -msgstr "" - -#: src/defaults/links.tsx:56 -msgid "Getting started with InvenTree" -msgstr "" - -#: src/defaults/links.tsx:62 +#: src/defaults/links.tsx:45 msgid "API" msgstr "" -#: src/defaults/links.tsx:63 +#: src/defaults/links.tsx:48 msgid "InvenTree API documentation" msgstr "" -#: src/defaults/links.tsx:68 +#: src/defaults/links.tsx:52 msgid "Developer Manual" msgstr "" -#: src/defaults/links.tsx:69 +#: src/defaults/links.tsx:55 msgid "InvenTree developer manual" msgstr "" -#: src/defaults/links.tsx:74 +#: src/defaults/links.tsx:59 msgid "FAQ" msgstr "" -#: src/defaults/links.tsx:75 +#: src/defaults/links.tsx:62 msgid "Frequently asked questions" msgstr "" +#: src/defaults/links.tsx:66 +msgid "GitHub Repository" +msgstr "" + +#: src/defaults/links.tsx:69 +msgid "InvenTree source code on GitHub" +msgstr "" + #: src/defaults/links.tsx:76 #~ msgid "Instance" #~ msgstr "Instance" +#: src/defaults/links.tsx:79 +#: src/defaults/links.tsx:117 +msgid "System Information" +msgstr "" + #: src/defaults/links.tsx:83 #~ msgid "InvenTree" #~ msgstr "InvenTree" -#: src/defaults/links.tsx:85 -#: src/defaults/links.tsx:122 -msgid "System Information" -msgstr "" - #: src/defaults/links.tsx:117 #~ msgid "Licenses for packages used by InvenTree" #~ msgstr "Licenses for packages used by InvenTree" -#: src/defaults/links.tsx:134 -msgid "Licenses" +#: src/defaults/links.tsx:125 +msgid "About the InvenTree Project" msgstr "" +#: src/defaults/links.tsx:132 +msgid "Licenses for dependencies of the InvenTree software" +msgstr "" + +#: src/defaults/links.tsx:134 +#~ msgid "Licenses" +#~ msgstr "Licenses" + #: src/defaults/menuItems.tsx:7 #~ msgid "Open sourcea" #~ msgstr "Open sourcea" @@ -2607,8 +3131,8 @@ msgstr "" #~ msgstr "Profile page" #: src/defaults/menuItems.tsx:17 -msgid "User attributes and design settings." -msgstr "" +#~ msgid "User attributes and design settings." +#~ msgstr "User attributes and design settings." #: src/defaults/menuItems.tsx:21 #~ msgid "Free for everyone" @@ -2619,8 +3143,8 @@ msgstr "" #~ msgstr "The fluid of Smeargle’s tail secretions changes" #: src/defaults/menuItems.tsx:23 -msgid "View for interactive scanning and multiple actions." -msgstr "" +#~ msgid "View for interactive scanning and multiple actions." +#~ msgstr "View for interactive scanning and multiple actions." #: src/defaults/menuItems.tsx:24 #~ msgid "The fluid of Smeargle’s tail secretions changes in the intensity" @@ -2698,51 +3222,130 @@ msgstr "" #~ msgid "Are you sure you want to delete this attachment?" #~ msgstr "Are you sure you want to delete this attachment?" -#: src/forms/BuildForms.tsx:158 -msgid "Next serial number" +#: src/forms/BuildForms.tsx:248 +#~ msgid "Remove output" +#~ msgstr "Remove output" + +#: src/forms/BuildForms.tsx:269 +#: src/tables/build/BuildAllocatedStockTable.tsx:147 +#: src/tables/build/BuildOrderTestTable.tsx:177 +#: src/tables/build/BuildOrderTestTable.tsx:201 +#: src/tables/build/BuildOutputTable.tsx:460 +msgid "Build Output" msgstr "" -#: src/forms/BuildForms.tsx:162 -msgid "Latest serial number" +#: src/forms/BuildForms.tsx:269 +#: src/forms/BuildForms.tsx:337 +#: src/forms/BuildForms.tsx:385 +#: src/tables/build/BuildLineTable.tsx:89 +msgid "Batch" msgstr "" -#: src/forms/BuildForms.tsx:234 -msgid "Remove output" +#: src/forms/BuildForms.tsx:269 +#: src/forms/BuildForms.tsx:337 +#: src/forms/BuildForms.tsx:385 +#: src/forms/PurchaseOrderForms.tsx:603 +#: src/pages/build/BuildDetail.tsx:104 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:142 +#: src/pages/sales/ReturnOrderDetail.tsx:113 +#: src/pages/sales/SalesOrderDetail.tsx:122 +#: src/tables/build/BuildOrderTable.tsx:125 +#: src/tables/machine/MachineListTable.tsx:336 +#: src/tables/part/PartPurchaseOrdersTable.tsx:37 +#: src/tables/purchasing/PurchaseOrderTable.tsx:58 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:157 +#: src/tables/sales/ReturnOrderTable.tsx:56 +#: src/tables/sales/SalesOrderTable.tsx:56 +#: src/tables/settings/CustomStateTable.tsx:57 +#: src/tables/settings/ImportSessionTable.tsx:114 +#: src/tables/stock/StockItemTable.tsx:298 +#: src/tables/stock/StockTrackingTable.tsx:56 +msgid "Status" msgstr "" -#: src/forms/BuildForms.tsx:316 +#: src/forms/BuildForms.tsx:289 msgid "Complete Build Outputs" msgstr "" -#: src/forms/BuildForms.tsx:320 +#: src/forms/BuildForms.tsx:292 msgid "Build outputs have been completed" msgstr "" -#: src/forms/BuildForms.tsx:389 +#: src/forms/BuildForms.tsx:353 msgid "Scrap Build Outputs" msgstr "" -#: src/forms/BuildForms.tsx:393 +#: src/forms/BuildForms.tsx:356 msgid "Build outputs have been scrapped" msgstr "" -#: src/forms/BuildForms.tsx:425 -#: src/forms/BuildForms.tsx:449 +#: src/forms/BuildForms.tsx:393 msgid "Cancel Build Outputs" msgstr "" -#: src/forms/BuildForms.tsx:426 -msgid "Selected build outputs will be deleted" +#: src/forms/BuildForms.tsx:396 +msgid "Build outputs have been cancelled" msgstr "" -#: src/forms/BuildForms.tsx:453 -msgid "Build outputs have been cancelled" +#: src/forms/BuildForms.tsx:408 +#~ msgid "Selected build outputs will be deleted" +#~ msgstr "Selected build outputs will be deleted" + +#: src/forms/BuildForms.tsx:470 +#~ msgid "Remove line" +#~ msgstr "Remove line" + +#: src/forms/BuildForms.tsx:515 +#: src/forms/SalesOrderForms.tsx:248 +#: src/tables/build/BuildLineTable.tsx:174 +#: src/tables/sales/SalesOrderLineItemTable.tsx:276 +#: src/tables/stock/StockItemTable.tsx:309 +msgid "Allocated" +msgstr "" + +#: src/forms/BuildForms.tsx:545 +#: src/forms/SalesOrderForms.tsx:239 +#: src/pages/build/BuildDetail.tsx:208 +msgid "Source Location" +msgstr "" + +#: src/forms/BuildForms.tsx:546 +#: src/forms/SalesOrderForms.tsx:240 +msgid "Select the source location for the stock allocation" +msgstr "" + +#: src/forms/BuildForms.tsx:566 +#: src/forms/SalesOrderForms.tsx:274 +#: src/tables/build/BuildLineTable.tsx:442 +#: src/tables/build/BuildLineTable.tsx:569 +#: src/tables/build/BuildLineTable.tsx:642 +#: src/tables/sales/SalesOrderLineItemTable.tsx:302 +#: src/tables/sales/SalesOrderLineItemTable.tsx:326 +msgid "Allocate Stock" +msgstr "" + +#: src/forms/BuildForms.tsx:569 +#: src/forms/SalesOrderForms.tsx:279 +msgid "Stock items allocated" msgstr "" #: src/forms/CompanyForms.tsx:150 #~ msgid "Company updated" #~ msgstr "Company updated" +#: src/forms/PartForms.tsx:67 +#: src/forms/PartForms.tsx:154 +#: src/pages/part/CategoryDetail.tsx:117 +#: src/pages/part/PartDetail.tsx:384 +#: src/tables/part/PartCategoryTable.tsx:90 +#: src/tables/part/PartTable.tsx:294 +msgid "Subscribed" +msgstr "" + +#: src/forms/PartForms.tsx:68 +msgid "Subscribe to notifications for this part" +msgstr "" + #: src/forms/PartForms.tsx:106 #~ msgid "Create Part" #~ msgstr "Create Part" @@ -2751,191 +3354,190 @@ msgstr "" #~ msgid "Part created" #~ msgstr "Part created" -#: src/forms/PartForms.tsx:124 -msgid "Parent part category" -msgstr "" - #: src/forms/PartForms.tsx:129 #~ msgid "Part updated" #~ msgstr "Part updated" -#: src/forms/PurchaseOrderForms.tsx:300 +#: src/forms/PartForms.tsx:140 +msgid "Parent part category" +msgstr "" + +#: src/forms/PartForms.tsx:155 +msgid "Subscribe to notifications for this category" +msgstr "" + +#: src/forms/PurchaseOrderForms.tsx:314 +msgid "Assign Batch Code and Serial Numbers" +msgstr "" + +#: src/forms/PurchaseOrderForms.tsx:316 +msgid "Assign Batch Code" +msgstr "" + +#: src/forms/PurchaseOrderForms.tsx:336 msgid "Choose Location" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:308 +#: src/forms/PurchaseOrderForms.tsx:344 msgid "Item Destination selected" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:317 +#: src/forms/PurchaseOrderForms.tsx:353 msgid "Part category default location selected" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:327 +#: src/forms/PurchaseOrderForms.tsx:363 msgid "Received stock location selected" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:332 +#: src/forms/PurchaseOrderForms.tsx:368 msgid "Default location selected" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:343 -#: src/forms/PurchaseOrderForms.tsx:435 -msgid "Scan Barcode" -msgstr "" +#: src/forms/PurchaseOrderForms.tsx:421 +#~ msgid "Assign Batch Code{0}" +#~ msgstr "Assign Batch Code{0}" -#: src/forms/PurchaseOrderForms.tsx:388 +#: src/forms/PurchaseOrderForms.tsx:427 msgid "Set Location" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:396 -msgid "Assign Batch Code{0}" -msgstr "" - -#: src/forms/PurchaseOrderForms.tsx:405 -#: src/forms/StockForms.tsx:420 +#: src/forms/PurchaseOrderForms.tsx:442 +#: src/forms/StockForms.tsx:539 msgid "Adjust Packaging" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:412 -msgid "Change Status" -msgstr "" - -#: src/forms/PurchaseOrderForms.tsx:418 -msgid "Add Note" -msgstr "" - #: src/forms/PurchaseOrderForms.tsx:444 #: src/forms/StockForms.tsx:428 -msgid "Remove item from list" +#~ msgid "Remove item from list" +#~ msgstr "Remove item from list" + +#: src/forms/PurchaseOrderForms.tsx:450 +msgid "Change Status" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:471 -#: src/forms/StockForms.tsx:499 -#: src/forms/StockForms.tsx:533 -#: src/forms/StockForms.tsx:562 -#: src/forms/StockForms.tsx:590 -#: src/forms/StockForms.tsx:621 -#: src/forms/StockForms.tsx:656 -#: src/forms/StockForms.tsx:698 -#: src/forms/StockForms.tsx:734 -#: src/pages/stock/StockDetail.tsx:181 -#: src/tables/ColumnRenderers.tsx:49 -#: src/tables/stock/StockTrackingTable.tsx:85 +#: src/forms/PurchaseOrderForms.tsx:456 +msgid "Add Note" +msgstr "" + +#: src/forms/PurchaseOrderForms.tsx:503 +#: src/forms/StockForms.tsx:614 +#: src/forms/StockForms.tsx:651 +#: src/forms/StockForms.tsx:677 +#: src/forms/StockForms.tsx:705 +#: src/forms/StockForms.tsx:736 +#: src/forms/StockForms.tsx:771 +#: src/forms/StockForms.tsx:813 +#: src/forms/StockForms.tsx:851 +#: src/pages/stock/StockDetail.tsx:202 +#: src/tables/ColumnRenderers.tsx:60 +#: src/tables/stock/StockTrackingTable.tsx:89 msgid "Location" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:486 +#: src/forms/PurchaseOrderForms.tsx:518 msgid "Store at default location" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:499 +#: src/forms/PurchaseOrderForms.tsx:533 msgid "Store at line item destination" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:509 +#: src/forms/PurchaseOrderForms.tsx:545 msgid "Store with already received stock" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:524 -#: src/pages/build/BuildDetail.tsx:219 -#: src/pages/stock/StockDetail.tsx:162 -#: src/pages/stock/StockDetail.tsx:599 -#: src/tables/build/BuildAllocatedStockTable.tsx:109 -#: src/tables/build/BuildOrderTestTable.tsx:188 -#: src/tables/sales/SalesOrderAllocationTable.tsx:87 +#: src/forms/PurchaseOrderForms.tsx:566 +#: src/pages/build/BuildDetail.tsx:222 +#: src/pages/stock/StockDetail.tsx:185 +#: src/pages/stock/StockDetail.tsx:793 +#: src/tables/build/BuildAllocatedStockTable.tsx:130 +#: src/tables/build/BuildOrderTestTable.tsx:189 +#: src/tables/build/BuildOutputTable.tsx:86 +#: src/tables/sales/SalesOrderAllocationTable.tsx:113 msgid "Batch Code" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:535 -msgid "Serial numbers" +#: src/forms/PurchaseOrderForms.tsx:566 +#~ msgid "Serial numbers" +#~ msgstr "Serial numbers" + +#: src/forms/PurchaseOrderForms.tsx:567 +msgid "Enter batch code for received items" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:544 -#: src/forms/StockForms.tsx:443 -#: src/pages/company/SupplierPartDetail.tsx:156 -#: src/pages/company/SupplierPartDetail.tsx:207 -#: src/pages/stock/StockDetail.tsx:244 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:192 +#: src/forms/PurchaseOrderForms.tsx:579 +#: src/forms/StockForms.tsx:152 +msgid "Serial Numbers" +msgstr "" + +#: src/forms/PurchaseOrderForms.tsx:580 +msgid "Enter serial numbers for received items" +msgstr "" + +#: src/forms/PurchaseOrderForms.tsx:590 +#: src/forms/StockForms.tsx:556 +#: src/pages/company/SupplierPartDetail.tsx:168 +#: src/pages/company/SupplierPartDetail.tsx:219 +#: src/pages/stock/StockDetail.tsx:320 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:198 msgid "Packaging" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:556 -#: src/pages/build/BuildDetail.tsx:109 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:148 -#: src/pages/sales/ReturnOrderDetail.tsx:121 -#: src/pages/sales/SalesOrderDetail.tsx:127 -#: src/tables/build/BuildOrderTable.tsx:122 -#: src/tables/machine/MachineListTable.tsx:335 -#: src/tables/part/PartPurchaseOrdersTable.tsx:37 -#: src/tables/purchasing/PurchaseOrderTable.tsx:55 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:132 -#: src/tables/sales/ReturnOrderTable.tsx:46 -#: src/tables/sales/SalesOrderTable.tsx:53 -#: src/tables/settings/ImportSessionTable.tsx:115 -#: src/tables/stock/StockItemTable.tsx:294 -#: src/tables/stock/StockTrackingTable.tsx:52 -msgid "Status" -msgstr "" - -#: src/forms/PurchaseOrderForms.tsx:564 -#: src/pages/company/SupplierPartDetail.tsx:110 -#: src/tables/ColumnRenderers.tsx:132 +#: src/forms/PurchaseOrderForms.tsx:612 +#: src/pages/company/SupplierPartDetail.tsx:115 +#: src/tables/ColumnRenderers.tsx:143 msgid "Note" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/pages/company/SupplierPartDetail.tsx:128 -#: src/tables/purchasing/SupplierPriceBreakTable.tsx:57 -msgid "SKU" -msgstr "" - -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/tables/part/PartPurchaseOrdersTable.tsx:120 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:178 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:127 -msgid "Received" -msgstr "" - -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/forms/StockForms.tsx:499 -#: src/forms/StockForms.tsx:533 -#: src/forms/StockForms.tsx:562 -#: src/forms/StockForms.tsx:590 -#: src/forms/StockForms.tsx:621 -#: src/forms/StockForms.tsx:656 -#: src/forms/StockForms.tsx:698 -#: src/forms/StockForms.tsx:734 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:413 -#: src/tables/RowActions.tsx:113 -msgid "Actions" -msgstr "" - -#: src/forms/PurchaseOrderForms.tsx:655 -msgid "Receive Line Items" -msgstr "" - #: src/forms/PurchaseOrderForms.tsx:658 #~ msgid "Receive line items" #~ msgstr "Receive line items" -#: src/forms/StockForms.tsx:104 -msgid "Add given quantity as packs instead of individual items" +#: src/forms/PurchaseOrderForms.tsx:689 +#: src/pages/company/SupplierPartDetail.tsx:133 +#: src/tables/purchasing/SupplierPriceBreakTable.tsx:57 +msgid "SKU" +msgstr "" + +#: src/forms/PurchaseOrderForms.tsx:689 +#: src/tables/part/PartPurchaseOrdersTable.tsx:126 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:184 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:247 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:152 +msgid "Received" +msgstr "" + +#: src/forms/PurchaseOrderForms.tsx:701 +msgid "Receive Line Items" +msgstr "" + +#: src/forms/ReturnOrderForms.tsx:201 +msgid "Receive Items" +msgstr "" + +#: src/forms/ReturnOrderForms.tsx:208 +msgid "Item received into stock" +msgstr "" + +#: src/forms/StockForms.tsx:80 +#: src/hooks/UsePlaceholder.tsx:57 +msgid "Next serial number" msgstr "" #: src/forms/StockForms.tsx:110 #~ msgid "Create Stock Item" #~ msgstr "Create Stock Item" -#: src/forms/StockForms.tsx:117 +#: src/forms/StockForms.tsx:131 +msgid "Add given quantity as packs instead of individual items" +msgstr "" + +#: src/forms/StockForms.tsx:145 msgid "Enter initial quantity for this stock item" msgstr "" -#: src/forms/StockForms.tsx:124 -msgid "Serial Numbers" -msgstr "" - -#: src/forms/StockForms.tsx:125 +#: src/forms/StockForms.tsx:154 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" @@ -2943,82 +3545,102 @@ msgstr "" #~ msgid "Stock item updated" #~ msgstr "Stock item updated" -#: src/forms/StockForms.tsx:179 -#: src/pages/stock/StockDetail.tsx:434 -#: src/tables/stock/StockItemTable.tsx:417 -#: src/tables/stock/StockItemTable.tsx:535 +#: src/forms/StockForms.tsx:169 +#: src/pages/stock/StockDetail.tsx:131 +msgid "Stock Status" +msgstr "" + +#: src/forms/StockForms.tsx:218 +#: src/pages/stock/StockDetail.tsx:554 +#: src/tables/stock/StockItemTable.tsx:421 +#: src/tables/stock/StockItemTable.tsx:541 msgid "Add Stock Item" msgstr "" -#: src/forms/StockForms.tsx:362 +#: src/forms/StockForms.tsx:262 +msgid "Select the part to install" +msgstr "" + +#: src/forms/StockForms.tsx:480 msgid "Loading..." msgstr "" -#: src/forms/StockForms.tsx:408 +#: src/forms/StockForms.tsx:527 msgid "Move to default location" msgstr "" -#: src/forms/StockForms.tsx:499 -#: src/forms/StockForms.tsx:533 -#: src/forms/StockForms.tsx:562 -#: src/forms/StockForms.tsx:590 -#: src/forms/StockForms.tsx:621 -#: src/forms/StockForms.tsx:656 -#: src/forms/StockForms.tsx:698 -#: src/forms/StockForms.tsx:734 -#: src/pages/part/PartDetail.tsx:230 -#: src/pages/part/PartDetail.tsx:843 -#: src/tables/stock/StockItemTable.tsx:325 +#: src/forms/StockForms.tsx:614 +#: src/forms/StockForms.tsx:651 +#: src/forms/StockForms.tsx:677 +#: src/forms/StockForms.tsx:705 +#: src/forms/StockForms.tsx:736 +#: src/forms/StockForms.tsx:771 +#: src/forms/StockForms.tsx:813 +#: src/forms/StockForms.tsx:851 +#: src/pages/part/PartDetail.tsx:251 +#: src/pages/part/PartDetail.tsx:875 +#: src/tables/stock/StockItemTable.tsx:329 msgid "In Stock" msgstr "" -#: src/forms/StockForms.tsx:499 +#: src/forms/StockForms.tsx:614 msgid "Move" msgstr "" -#: src/forms/StockForms.tsx:562 -#: src/pages/stock/StockDetail.tsx:518 -#: src/tables/stock/StockItemTestResultTable.tsx:328 +#: src/forms/StockForms.tsx:677 +#: src/pages/stock/StockDetail.tsx:681 +#: src/tables/stock/StockItemTestResultTable.tsx:346 msgid "Add" msgstr "" -#: src/forms/StockForms.tsx:590 -#: src/pages/Index/Scan.tsx:266 -#: src/pages/stock/StockDetail.tsx:508 +#: src/forms/StockForms.tsx:705 +#: src/pages/Index/Scan.tsx:280 +#: src/pages/stock/StockDetail.tsx:670 msgid "Count" msgstr "" -#: src/forms/StockForms.tsx:835 +#: src/forms/StockForms.tsx:953 +#: src/pages/stock/StockDetail.tsx:682 +#: src/tables/stock/StockItemTable.tsx:454 msgid "Add Stock" msgstr "" -#: src/forms/StockForms.tsx:844 +#: src/forms/StockForms.tsx:962 +#: src/pages/stock/StockDetail.tsx:691 +#: src/tables/stock/StockItemTable.tsx:463 msgid "Remove Stock" msgstr "" -#: src/forms/StockForms.tsx:853 -#: src/pages/part/PartDetail.tsx:1017 +#: src/forms/StockForms.tsx:971 +#: src/pages/part/PartDetail.tsx:1039 +#: src/pages/stock/StockDetail.tsx:712 +#: src/tables/stock/StockItemTable.tsx:483 msgid "Transfer Stock" msgstr "" -#: src/forms/StockForms.tsx:862 -#: src/pages/part/PartDetail.tsx:1006 +#: src/forms/StockForms.tsx:980 +#: src/pages/part/PartDetail.tsx:1028 +#: src/pages/stock/LocationDetail.tsx:314 +#: src/pages/stock/LocationDetail.tsx:318 +#: src/tables/stock/StockItemTable.tsx:472 +#: src/tables/stock/StockItemTable.tsx:476 msgid "Count Stock" msgstr "" -#: src/forms/StockForms.tsx:871 +#: src/forms/StockForms.tsx:989 msgid "Change Stock Status" msgstr "" -#: src/forms/StockForms.tsx:880 +#: src/forms/StockForms.tsx:998 msgid "Merge Stock" msgstr "" -#: src/forms/StockForms.tsx:899 +#: src/forms/StockForms.tsx:1017 +#: src/tables/stock/StockItemTable.tsx:530 msgid "Delete Stock Items" msgstr "" -#: src/forms/StockForms.tsx:906 +#: src/forms/StockForms.tsx:1024 msgid "Parent stock location" msgstr "" @@ -3042,11 +3664,11 @@ msgstr "" #~ msgid "You have been logged out" #~ msgstr "You have been logged out" -#: src/functions/auth.tsx:117 +#: src/functions/auth.tsx:128 msgid "Logged Out" msgstr "" -#: src/functions/auth.tsx:118 +#: src/functions/auth.tsx:129 msgid "Successfully logged out" msgstr "" @@ -3062,20 +3684,20 @@ msgstr "" #~ msgid "Found an existing login - welcome back!" #~ msgstr "Found an existing login - welcome back!" -#: src/functions/auth.tsx:156 +#: src/functions/auth.tsx:167 msgid "Check your inbox for a reset link. This only works if you have an account. Check in spam too." msgstr "" -#: src/functions/auth.tsx:163 +#: src/functions/auth.tsx:174 #: src/pages/Auth/Set-Password.tsx:39 msgid "Reset failed" msgstr "" -#: src/functions/auth.tsx:194 +#: src/functions/auth.tsx:205 msgid "Logged In" msgstr "" -#: src/functions/auth.tsx:195 +#: src/functions/auth.tsx:206 msgid "Successfully logged in" msgstr "" @@ -3095,30 +3717,38 @@ msgstr "" #~ msgid "method parameter not supplied" #~ msgstr "method parameter not supplied" -#: src/functions/notifications.tsx:10 +#: src/functions/notifications.tsx:12 msgid "Not implemented" msgstr "" -#: src/functions/notifications.tsx:11 +#: src/functions/notifications.tsx:13 msgid "This feature is not yet implemented" msgstr "" -#: src/functions/notifications.tsx:21 -msgid "Permission denied" -msgstr "" +#: src/functions/notifications.tsx:24 +#~ msgid "Permission denied" +#~ msgstr "Permission denied" -#: src/functions/notifications.tsx:22 +#: src/functions/notifications.tsx:25 msgid "You do not have permission to perform this action" msgstr "" -#: src/functions/notifications.tsx:33 +#: src/functions/notifications.tsx:36 msgid "Invalid Return Code" msgstr "" -#: src/functions/notifications.tsx:34 +#: src/functions/notifications.tsx:37 msgid "Server returned status {returnCode}" msgstr "" +#: src/functions/notifications.tsx:47 +msgid "Timeout" +msgstr "" + +#: src/functions/notifications.tsx:48 +msgid "The request timed out" +msgstr "" + #: src/hooks/UseForm.tsx:88 msgid "Item Created" msgstr "" @@ -3135,20 +3765,24 @@ msgstr "" msgid "Are you sure you want to delete this item?" msgstr "" +#: src/hooks/UsePlaceholder.tsx:59 +msgid "Latest serial number" +msgstr "" + #: src/pages/Auth/Logged-In.tsx:22 msgid "Checking if you are already logged in" msgstr "" -#: src/pages/Auth/Login.tsx:31 -#: src/pages/Index/Scan.tsx:329 +#: src/pages/Auth/Login.tsx:35 +#: src/pages/Index/Scan.tsx:343 msgid "No selection" msgstr "" -#: src/pages/Auth/Login.tsx:87 +#: src/pages/Auth/Login.tsx:91 msgid "Welcome, log in below" msgstr "" -#: src/pages/Auth/Login.tsx:89 +#: src/pages/Auth/Login.tsx:93 msgid "Register below" msgstr "" @@ -3162,8 +3796,8 @@ msgstr "" #: src/pages/Auth/Reset.tsx:41 #: src/pages/Auth/Set-Password.tsx:112 -msgid "Send mail" -msgstr "" +#~ msgid "Send mail" +#~ msgstr "Send mail" #: src/pages/Auth/Set-Password.tsx:30 msgid "Token invalid" @@ -3174,22 +3808,22 @@ msgid "You need to provide a valid token to set a new password. Check your inbox msgstr "" #: src/pages/Auth/Set-Password.tsx:49 -msgid "No token provided" -msgstr "" +#~ msgid "No token provided" +#~ msgstr "No token provided" #: src/pages/Auth/Set-Password.tsx:50 -msgid "You need to provide a token to set a new password. Check your inbox for a reset link." -msgstr "" +#~ msgid "You need to provide a token to set a new password. Check your inbox for a reset link." +#~ msgstr "You need to provide a token to set a new password. Check your inbox for a reset link." -#: src/pages/Auth/Set-Password.tsx:73 +#: src/pages/Auth/Set-Password.tsx:68 msgid "Password set" msgstr "" -#: src/pages/Auth/Set-Password.tsx:74 +#: src/pages/Auth/Set-Password.tsx:69 msgid "The password was set successfully. You can now login with your new password" msgstr "" -#: src/pages/Auth/Set-Password.tsx:101 +#: src/pages/Auth/Set-Password.tsx:96 msgid "Set new password" msgstr "" @@ -3206,20 +3840,20 @@ msgstr "" #~ msgstr "Sorry, an unexpected error has occurred." #: src/pages/Index/Dashboard.tsx:22 -msgid "Autoupdate" -msgstr "" +#~ msgid "Autoupdate" +#~ msgstr "Autoupdate" #: src/pages/Index/Dashboard.tsx:26 -msgid "This page is a replacement for the old start page with the same information. This page will be deprecated and replaced by the home page." -msgstr "" +#~ msgid "This page is a replacement for the old start page with the same information. This page will be deprecated and replaced by the home page." +#~ msgstr "This page is a replacement for the old start page with the same information. This page will be deprecated and replaced by the home page." #: src/pages/Index/Home.tsx:58 -msgid "Welcome to your Dashboard{0}" -msgstr "" +#~ msgid "Welcome to your Dashboard{0}" +#~ msgstr "Welcome to your Dashboard{0}" #: src/pages/Index/Playground.tsx:222 -msgid "This page is a showcase for the possibilities of Platform UI." -msgstr "" +#~ msgid "This page is a showcase for the possibilities of Platform UI." +#~ msgstr "This page is a showcase for the possibilities of Platform UI." #: src/pages/Index/Profile/Profile.tsx:30 #: src/pages/Index/Profile/Profile.tsx:141 @@ -3365,125 +3999,190 @@ msgstr "" msgid "Image Barcode" msgstr "" -#: src/pages/Index/Scan.tsx:247 +#: src/pages/Index/Scan.tsx:261 msgid "Selected elements are not known" msgstr "" -#: src/pages/Index/Scan.tsx:254 +#: src/pages/Index/Scan.tsx:268 msgid "Multiple object types selected" msgstr "" -#: src/pages/Index/Scan.tsx:261 +#: src/pages/Index/Scan.tsx:275 msgid "Actions for {0}" msgstr "" -#: src/pages/Index/Scan.tsx:282 +#: src/pages/Index/Scan.tsx:296 msgid "Scan Page" msgstr "" -#: src/pages/Index/Scan.tsx:285 +#: src/pages/Index/Scan.tsx:299 msgid "This page can be used for continuously scanning items and taking actions on them." msgstr "" -#: src/pages/Index/Scan.tsx:292 +#: src/pages/Index/Scan.tsx:306 msgid "Toggle Fullscreen" msgstr "" -#: src/pages/Index/Scan.tsx:305 +#: src/pages/Index/Scan.tsx:319 msgid "Select the input method you want to use to scan items." msgstr "" -#: src/pages/Index/Scan.tsx:307 +#: src/pages/Index/Scan.tsx:321 msgid "Input" msgstr "" -#: src/pages/Index/Scan.tsx:314 +#: src/pages/Index/Scan.tsx:328 msgid "Select input method" msgstr "" -#: src/pages/Index/Scan.tsx:315 +#: src/pages/Index/Scan.tsx:329 msgid "Nothing found" msgstr "" -#: src/pages/Index/Scan.tsx:323 +#: src/pages/Index/Scan.tsx:337 msgid "Depending on the selected parts actions will be shown here. Not all barcode types are supported currently." msgstr "" -#: src/pages/Index/Scan.tsx:325 +#: src/pages/Index/Scan.tsx:339 msgid "Action" msgstr "" -#: src/pages/Index/Scan.tsx:334 +#: src/pages/Index/Scan.tsx:348 msgid "{0} items selected" msgstr "" -#: src/pages/Index/Scan.tsx:337 +#: src/pages/Index/Scan.tsx:351 msgid "General Actions" msgstr "" -#: src/pages/Index/Scan.tsx:351 +#: src/pages/Index/Scan.tsx:365 msgid "Lookup part" msgstr "" -#: src/pages/Index/Scan.tsx:359 +#: src/pages/Index/Scan.tsx:373 msgid "Open Link" msgstr "" -#: src/pages/Index/Scan.tsx:375 +#: src/pages/Index/Scan.tsx:389 msgid "History is locally kept in this browser." msgstr "" -#: src/pages/Index/Scan.tsx:376 +#: src/pages/Index/Scan.tsx:390 msgid "The history is kept in this browser's local storage. So it won't be shared with other users or other devices but is persistent through reloads. You can select items in the history to perform actions on them. To add items, scan/enter them in the Input area." msgstr "" -#: src/pages/Index/Scan.tsx:378 +#: src/pages/Index/Scan.tsx:392 #: src/pages/Notifications.tsx:100 msgid "History" msgstr "" -#: src/pages/Index/Scan.tsx:384 +#: src/pages/Index/Scan.tsx:398 msgid "Delete History" msgstr "" -#: src/pages/Index/Scan.tsx:449 +#: src/pages/Index/Scan.tsx:463 msgid "No history" msgstr "" -#: src/pages/Index/Scan.tsx:467 +#: src/pages/Index/Scan.tsx:481 msgid "Item" msgstr "" -#: src/pages/Index/Scan.tsx:470 +#: src/pages/Index/Scan.tsx:484 msgid "Type" msgstr "" -#: src/pages/Index/Scan.tsx:473 +#: src/pages/Index/Scan.tsx:487 msgid "Source" msgstr "" -#: src/pages/Index/Scan.tsx:476 +#: src/pages/Index/Scan.tsx:490 msgid "Scanned at" msgstr "" -#: src/pages/Index/Scan.tsx:528 +#: src/pages/Index/Scan.tsx:547 msgid "Enter item serial or data" msgstr "" -#: src/pages/Index/Scan.tsx:540 +#: src/pages/Index/Scan.tsx:559 msgid "Add dummy item" msgstr "" +#: src/pages/Index/Scan.tsx:569 +msgid "Start scanning by selecting a camera and pressing the play button." +msgstr "" + +#: src/pages/Index/Scan.tsx:650 +msgid "Error while getting camera" +msgstr "" + +#: src/pages/Index/Scan.tsx:673 +msgid "Error while scanning" +msgstr "" + +#: src/pages/Index/Scan.tsx:687 +msgid "Error while stopping" +msgstr "" + +#: src/pages/Index/Scan.tsx:745 +msgid "Stop scanning" +msgstr "" + +#: src/pages/Index/Scan.tsx:754 +msgid "Start scanning" +msgstr "" + +#: src/pages/Index/Scan.tsx:763 +msgid "Scanning" +msgstr "" + +#: src/pages/Index/Scan.tsx:763 +msgid "Not scanning" +msgstr "" + +#: src/pages/Index/Scan.tsx:775 +msgid "Select Camera" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:28 +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:50 +msgid "Edit User Information" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:32 +msgid "User details updated" +msgstr "" + #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:41 -msgid "Account Details" +msgid "User Details" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:41 +#~ msgid "Account Details" +#~ msgstr "Account Details" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:44 +msgid "User Actions" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:48 +msgid "Edit User" msgstr "" #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:50 -msgid "First name" +#~ msgid "First name" +#~ msgstr "First name" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:54 +msgid "Set Password" msgstr "" #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:55 -msgid "Last name" +#~ msgid "Last name" +#~ msgstr "Last name" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:56 +msgid "Set User Password" msgstr "" #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:58 @@ -3495,15 +4194,28 @@ msgstr "" #~ msgstr "Last name: {0}" #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:67 -msgid "First name:" -msgstr "" +#~ msgid "First name:" +#~ msgstr "First name:" #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:71 -msgid "Last name:" +#~ msgid "Last name:" +#~ msgstr "Last name:" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:73 +msgid "First Name" msgstr "" -#: src/pages/Index/Settings/AccountSettings/DisplaySettingsPanel.tsx:41 -msgid "Use pseudo language" +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:79 +msgid "Last Name" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:85 +msgid "Staff Access" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:93 +#: src/tables/settings/UserTable.tsx:293 +msgid "Superuser" msgstr "" #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:55 @@ -3600,27 +4312,6 @@ msgstr "" msgid "No tokens configured" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:398 -#: src/pages/part/PartDetail.tsx:297 -#: src/tables/bom/UsedInTable.tsx:84 -#: src/tables/build/BuildOrderTable.tsx:110 -#: src/tables/company/CompanyTable.tsx:61 -#: src/tables/company/CompanyTable.tsx:95 -#: src/tables/machine/MachineListTable.tsx:332 -#: src/tables/machine/MachineListTable.tsx:594 -#: src/tables/part/ParametricPartTable.tsx:223 -#: src/tables/part/PartTable.tsx:178 -#: src/tables/part/PartVariantTable.tsx:15 -#: src/tables/plugin/PluginListTable.tsx:149 -#: src/tables/plugin/PluginListTable.tsx:271 -#: src/tables/plugin/PluginListTable.tsx:563 -#: src/tables/purchasing/SupplierPartTable.tsx:98 -#: src/tables/purchasing/SupplierPartTable.tsx:187 -#: src/tables/settings/UserTable.tsx:284 -#: src/tables/stock/StockItemTable.tsx:289 -msgid "Active" -msgstr "" - #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:401 msgid "Expiry" msgstr "" @@ -3630,38 +4321,74 @@ msgid "Last Seen" msgstr "" #: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:65 -msgid "bars" -msgstr "" +#~ msgid "bars" +#~ msgstr "bars" #: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:66 -msgid "oval" -msgstr "" +#~ msgid "oval" +#~ msgstr "oval" #: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:67 -msgid "dots" -msgstr "" +#~ msgid "dots" +#~ msgstr "dots" #: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:81 -msgid "Theme" -msgstr "" +#~ msgid "Theme" +#~ msgstr "Theme" #: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:87 -msgid "Primary color" +#~ msgid "Primary color" +#~ msgstr "Primary color" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:88 +msgid "Bars" msgstr "" -#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:100 +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:89 +msgid "Oval" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:90 +msgid "Dots" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:101 +msgid "Display Settings" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:107 +msgid "Language" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:115 +msgid "Use pseudo language" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:122 +msgid "Color Mode" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:133 +msgid "Highlight color" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:145 +msgid "Example" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:151 msgid "White color" msgstr "" -#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:108 +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:167 msgid "Black color" msgstr "" -#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:116 +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:183 msgid "Border Radius" msgstr "" -#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:132 +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:199 msgid "Loader" msgstr "" @@ -3673,89 +4400,156 @@ msgstr "" #~ msgid "Advanced Amininistrative Options for InvenTree" #~ msgstr "Advanced Amininistrative Options for InvenTree" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:104 +#: src/pages/Index/Settings/AdminCenter/CurrencyManagmentPanel.tsx:27 +#: src/tables/ColumnRenderers.tsx:262 +msgid "Currency" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/CurrencyManagmentPanel.tsx:32 +msgid "Rate" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/CurrencyManagmentPanel.tsx:44 +msgid "Exchange rates updated" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/CurrencyManagmentPanel.tsx:50 +msgid "Exchange rate update error" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/CurrencyManagmentPanel.tsx:62 +msgid "Refresh currency exchange rates" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/CurrencyManagmentPanel.tsx:99 +msgid "Last fetched" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/CurrencyManagmentPanel.tsx:100 +msgid "Base currency" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:115 msgid "Data Import" msgstr "" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:110 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:121 +msgid "Barcode Scans" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:127 msgid "Background Tasks" msgstr "" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:116 -msgid "Error Reports" -msgstr "" - -#: src/pages/Index/Settings/AdminCenter/Index.tsx:122 -msgid "Currencies" -msgstr "" - #: src/pages/Index/Settings/AdminCenter/Index.tsx:127 #~ msgid "Templates" #~ msgstr "Templates" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:140 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:133 +msgid "Error Reports" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:139 +msgid "Currencies" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:157 +msgid "Custom States" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:163 +#: src/pages/Index/Settings/AdminCenter/UnitManagmentPanel.tsx:58 msgid "Custom Units" msgstr "" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:146 -#: src/pages/part/CategoryDetail.tsx:264 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:169 +#: src/pages/part/CategoryDetail.tsx:269 msgid "Part Parameters" msgstr "" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:152 -msgid "Category Parameters" -msgstr "" - -#: src/pages/Index/Settings/AdminCenter/Index.tsx:170 -msgid "Location Types" -msgstr "" - #: src/pages/Index/Settings/AdminCenter/Index.tsx:170 #~ msgid "Location types" #~ msgstr "Location types" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:182 -#: src/tables/machine/MachineTypeTable.tsx:287 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:175 +msgid "Category Parameters" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:181 +msgid "Stocktake" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:199 +msgid "Location Types" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:211 +#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:48 +#: src/tables/machine/MachineTypeTable.tsx:308 msgid "Machines" msgstr "" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:192 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:221 msgid "Quick Actions" msgstr "" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:197 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:226 msgid "Add a new user" msgstr "" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:222 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:252 msgid "Advanced Options" msgstr "" #: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:43 -msgid "Machine types" -msgstr "" +#~ msgid "Machine types" +#~ msgstr "Machine types" #: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:53 -msgid "Machine Error Stack" +#~ msgid "Machine Error Stack" +#~ msgstr "Machine Error Stack" + +#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:56 +msgid "Machine Types" msgstr "" #: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:62 -msgid "There are no machine registry errors." +#~ msgid "There are no machine registry errors." +#~ msgstr "There are no machine registry errors." + +#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:64 +msgid "Machine Errors" msgstr "" -#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:28 -#: src/tables/settings/UserTable.tsx:119 +#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:77 +msgid "Registry Registry Errors" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:80 +msgid "There are machine registry errors" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:86 +msgid "Machine Registry Errors" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:89 +msgid "There are no machine registry errors" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:31 +#: src/tables/settings/UserTable.tsx:118 msgid "Info" msgstr "" -#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:32 -msgid "External plugins are not enabled for this InvenTree installation." -msgstr "" - #: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:33 #~ msgid "Plugin Error Stack" #~ msgstr "Plugin Error Stack" +#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:35 +msgid "External plugins are not enabled for this InvenTree installation." +msgstr "" + #: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:45 #~ msgid "Warning" #~ msgstr "Warning" @@ -3764,34 +4558,46 @@ msgstr "" #~ msgid "Changing the settings below require you to immediately restart the server. Do not change this while under active usage." #~ msgstr "Changing the settings below require you to immediately restart the server. Do not change this while under active usage." -#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:50 +#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:73 msgid "Plugin Errors" msgstr "" -#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:59 -msgid "Plugin Settings" +#: src/pages/Index/Settings/AdminCenter/ReportTemplatePanel.tsx:17 +msgid "Page Size" msgstr "" -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:53 -msgid "Background Worker Not Running" +#: src/pages/Index/Settings/AdminCenter/ReportTemplatePanel.tsx:20 +msgid "Landscape" msgstr "" -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:54 +#: src/pages/Index/Settings/AdminCenter/ReportTemplatePanel.tsx:26 +msgid "Attach to Model" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/StocktakePanel.tsx:25 +msgid "Stocktake Reports" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:30 msgid "The background task manager service is not running. Contact your system administrator." msgstr "" -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:60 -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:76 +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:35 +#~ msgid "Background Worker Not Running" +#~ msgstr "Background Worker Not Running" + +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:36 +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:45 msgid "Pending Tasks" msgstr "" -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:64 -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:84 +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:37 +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:53 msgid "Scheduled Tasks" msgstr "" -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:68 -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:92 +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:38 +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:61 msgid "Failed Tasks" msgstr "" @@ -3811,11 +4617,6 @@ msgstr "" #~ msgid "Reports" #~ msgstr "Reports" -#: src/pages/Index/Settings/AdminCenter/TemplateManagementPanel.tsx:89 -#: src/pages/build/BuildDetail.tsx:373 -#~ msgid "Report" -#~ msgstr "Report" - #: src/pages/Index/Settings/AdminCenter/TemplateManagementPanel.tsx:99 #~ msgid "Purchase order" #~ msgstr "Purchase order" @@ -3836,23 +4637,35 @@ msgstr "" #~ msgid "Stock location" #~ msgstr "Stock location" +#: src/pages/Index/Settings/AdminCenter/UnitManagmentPanel.tsx:21 +msgid "Alias" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/UnitManagmentPanel.tsx:22 +msgid "Dimensionless" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/UnitManagmentPanel.tsx:66 +msgid "All units" +msgstr "" + #: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:32 msgid "Select settings relevant for user lifecycle. More available in" msgstr "" #: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:37 -msgid "System settings" -msgstr "" +#~ msgid "System settings" +#~ msgstr "System settings" -#: src/pages/Index/Settings/SystemSettings.tsx:67 +#: src/pages/Index/Settings/SystemSettings.tsx:66 msgid "Login" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:93 +#: src/pages/Index/Settings/SystemSettings.tsx:92 msgid "Barcodes" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:115 +#: src/pages/Index/Settings/SystemSettings.tsx:116 msgid "Pricing" msgstr "" @@ -3864,64 +4677,46 @@ msgstr "" #~ msgid "Exchange Rates" #~ msgstr "Exchange Rates" -#: src/pages/Index/Settings/SystemSettings.tsx:150 +#: src/pages/Index/Settings/SystemSettings.tsx:151 msgid "Labels" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:156 -#: src/pages/Index/Settings/UserSettings.tsx:132 +#: src/pages/Index/Settings/SystemSettings.tsx:157 +#: src/pages/Index/Settings/UserSettings.tsx:133 msgid "Reporting" msgstr "" #: src/pages/Index/Settings/SystemSettings.tsx:231 -#: src/pages/part/PartDetail.tsx:682 -msgid "Stocktake" -msgstr "" - -#: src/pages/Index/Settings/SystemSettings.tsx:237 -#: src/pages/build/BuildDetail.tsx:554 -#: src/pages/build/BuildIndex.tsx:22 -#: src/pages/part/PartDetail.tsx:616 -#: src/pages/sales/SalesOrderDetail.tsx:333 +#: src/pages/build/BuildIndex.tsx:27 +#: src/pages/part/PartDetail.tsx:636 +#: src/pages/sales/SalesOrderDetail.tsx:355 msgid "Build Orders" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:318 -msgid "Switch to User Setting" -msgstr "" +#: src/pages/Index/Settings/SystemSettings.tsx:317 +#~ msgid "Switch to User Setting" +#~ msgstr "Switch to User Setting" -#: src/pages/Index/Settings/UserSettings.tsx:34 +#: src/pages/Index/Settings/UserSettings.tsx:35 msgid "Account" msgstr "" -#: src/pages/Index/Settings/UserSettings.tsx:40 +#: src/pages/Index/Settings/UserSettings.tsx:41 msgid "Security" msgstr "" -#: src/pages/Index/Settings/UserSettings.tsx:78 +#: src/pages/Index/Settings/UserSettings.tsx:79 msgid "Display Options" msgstr "" -#: src/pages/Index/Settings/UserSettings.tsx:150 -msgid "Account Settings" -msgstr "" - -#: src/pages/Index/Settings/UserSettings.tsx:158 -msgid "Switch to System Setting" -msgstr "" - -#: src/pages/Index/UserSettings.tsx:103 -#~ msgid "User Settings" -#~ msgstr "User Settings" +#: src/pages/Index/Settings/UserSettings.tsx:159 +#~ msgid "Switch to System Setting" +#~ msgstr "Switch to System Setting" #: src/pages/Logged-In.tsx:24 #~ msgid "Found an exsisting login - using it to log you in." #~ msgstr "Found an exsisting login - using it to log you in." -#: src/pages/NotFound.tsx:17 -#~ msgid "Not Found" -#~ msgstr "Not Found" - #: src/pages/NotFound.tsx:20 #~ msgid "Sorry, this page is not known or was moved." #~ msgstr "Sorry, this page is not known or was moved." @@ -3942,104 +4737,86 @@ msgstr "" #~ msgid "Build Status" #~ msgstr "Build Status" -#: src/pages/build/BuildDetail.tsx:102 -#: src/pages/part/PartDetail.tsx:150 +#: src/pages/build/BuildDetail.tsx:97 +#: src/pages/company/ManufacturerPartDetail.tsx:81 +#: src/pages/company/SupplierPartDetail.tsx:91 +#: src/pages/part/PartDetail.tsx:171 +#: src/pages/stock/StockDetail.tsx:122 #: src/tables/bom/BomTable.tsx:118 #: src/tables/bom/UsedInTable.tsx:39 -#: src/tables/build/BuildLineTable.tsx:173 -#: src/tables/build/BuildOrderTable.tsx:55 -#: src/tables/sales/SalesOrderLineItemTable.tsx:62 -#: src/tables/stock/StockItemTable.tsx:53 +#: src/tables/build/BuildAllocatedStockTable.tsx:104 +#: src/tables/build/BuildLineTable.tsx:324 +#: src/tables/build/BuildOrderTable.tsx:64 +#: src/tables/sales/SalesOrderLineItemTable.tsx:70 +#: src/tables/stock/StockItemTable.tsx:54 msgid "IPN" msgstr "" -#: src/pages/build/BuildDetail.tsx:115 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:121 -#: src/pages/sales/ReturnOrderDetail.tsx:95 -#: src/pages/sales/SalesOrderDetail.tsx:101 -#: src/tables/ColumnRenderers.tsx:121 -#: src/tables/build/BuildAllocatedStockTable.tsx:90 -#: src/tables/build/BuildLineTable.tsx:184 +#: src/pages/build/BuildDetail.tsx:110 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:115 +#: src/pages/sales/ReturnOrderDetail.tsx:86 +#: src/pages/sales/SalesOrderDetail.tsx:95 +#: src/tables/ColumnRenderers.tsx:132 +#: src/tables/build/BuildAllocatedStockTable.tsx:111 +#: src/tables/build/BuildLineTable.tsx:335 msgid "Reference" msgstr "" -#: src/pages/build/BuildDetail.tsx:121 -#: src/pages/company/CompanyDetail.tsx:90 -#: src/pages/company/ManufacturerPartDetail.tsx:83 -#: src/pages/company/SupplierPartDetail.tsx:96 -#: src/pages/part/CategoryDetail.tsx:101 -#: src/pages/part/PartDetail.tsx:157 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:142 -#: src/pages/sales/ReturnOrderDetail.tsx:115 -#: src/pages/sales/SalesOrderDetail.tsx:121 -#: src/pages/stock/LocationDetail.tsx:109 -#: src/tables/ColumnRenderers.tsx:81 -#: src/tables/bom/UsedInTable.tsx:44 -#: src/tables/build/BuildAllocatedStockTable.tsx:70 -#: src/tables/build/BuildLineTable.tsx:178 -#: src/tables/machine/MachineTypeTable.tsx:69 -#: src/tables/machine/MachineTypeTable.tsx:112 -#: src/tables/machine/MachineTypeTable.tsx:219 -#: src/tables/machine/MachineTypeTable.tsx:323 -#: src/tables/part/RelatedPartTable.tsx:64 -#: src/tables/plugin/PluginListTable.tsx:129 -#: src/tables/plugin/PluginListTable.tsx:276 -#: src/tables/sales/SalesOrderAllocationTable.tsx:56 -#: src/tables/sales/SalesOrderLineItemTable.tsx:67 -#: src/tables/stock/LocationTypesTable.tsx:74 -msgid "Description" -msgstr "" - -#: src/pages/build/BuildDetail.tsx:129 +#: src/pages/build/BuildDetail.tsx:124 msgid "Parent Build" msgstr "" -#: src/pages/build/BuildDetail.tsx:140 +#: src/pages/build/BuildDetail.tsx:135 msgid "Build Quantity" msgstr "" -#: src/pages/build/BuildDetail.tsx:148 -#: src/pages/build/BuildDetail.tsx:274 +#: src/pages/build/BuildDetail.tsx:143 +#: src/pages/build/BuildDetail.tsx:277 msgid "Completed Outputs" msgstr "" -#: src/pages/build/BuildDetail.tsx:165 -#: src/tables/build/BuildOrderTable.tsx:151 +#: src/pages/build/BuildDetail.tsx:160 +#: src/tables/build/BuildOrderTable.tsx:142 msgid "Issued By" msgstr "" -#: src/pages/build/BuildDetail.tsx:172 -#: src/pages/part/PartDetail.tsx:365 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:220 -#: src/pages/sales/ReturnOrderDetail.tsx:199 -#: src/pages/sales/SalesOrderDetail.tsx:208 -#: src/tables/build/BuildOrderTable.tsx:157 -#: src/tables/purchasing/PurchaseOrderTable.tsx:75 -#: src/tables/sales/ReturnOrderTable.tsx:66 -#: src/tables/sales/SalesOrderTable.tsx:73 +#: src/pages/build/BuildDetail.tsx:167 +#: src/pages/part/PartDetail.tsx:406 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:244 +#: src/pages/sales/ReturnOrderDetail.tsx:216 +#: src/pages/sales/SalesOrderDetail.tsx:226 +#: src/tables/build/BuildOrderTable.tsx:148 +#: src/tables/purchasing/PurchaseOrderTable.tsx:76 +#: src/tables/sales/ReturnOrderTable.tsx:74 +#: src/tables/sales/SalesOrderTable.tsx:74 msgid "Responsible" msgstr "" -#: src/pages/build/BuildDetail.tsx:179 -#: src/tables/settings/PendingTasksTable.tsx:32 +#: src/pages/build/BuildDetail.tsx:174 +#: src/tables/settings/PendingTasksTable.tsx:36 msgid "Created" msgstr "" +#: src/pages/build/BuildDetail.tsx:181 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:229 +#: src/pages/sales/ReturnOrderDetail.tsx:201 +#: src/pages/sales/SalesOrderDetail.tsx:212 +#: src/tables/ColumnRenderers.tsx:226 +#: src/tables/part/PartPurchaseOrdersTable.tsx:100 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:135 +#: src/tables/sales/SalesOrderLineItemTable.tsx:107 +msgid "Target Date" +msgstr "" + #: src/pages/build/BuildDetail.tsx:185 #: src/pages/part/PartDetail.tsx:269 #: src/pages/stock/StockDetail.tsx:150 #~ msgid "View part barcode" #~ msgstr "View part barcode" -#: src/pages/build/BuildDetail.tsx:186 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:213 -#: src/pages/sales/ReturnOrderDetail.tsx:192 -#: src/pages/sales/SalesOrderDetail.tsx:201 -#: src/tables/ColumnRenderers.tsx:212 -#: src/tables/part/PartPurchaseOrdersTable.tsx:99 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:110 -#: src/tables/sales/SalesOrderLineItemTable.tsx:99 -msgid "Target Date" +#: src/pages/build/BuildDetail.tsx:188 +#: src/tables/sales/SalesOrderLineItemTable.tsx:281 +msgid "Completed" msgstr "" #: src/pages/build/BuildDetail.tsx:190 @@ -4047,10 +4824,6 @@ msgstr "" #~ msgid "Link custom barcode to part" #~ msgstr "Link custom barcode to part" -#: src/pages/build/BuildDetail.tsx:193 -msgid "Completed" -msgstr "" - #: src/pages/build/BuildDetail.tsx:196 #: src/pages/part/PartDetail.tsx:280 #~ msgid "Unlink custom barcode from part" @@ -4060,15 +4833,11 @@ msgstr "" #~ msgid "Build Order updated" #~ msgstr "Build Order updated" -#: src/pages/build/BuildDetail.tsx:205 -msgid "Source Location" -msgstr "" - -#: src/pages/build/BuildDetail.tsx:206 +#: src/pages/build/BuildDetail.tsx:209 msgid "Any location" msgstr "" -#: src/pages/build/BuildDetail.tsx:213 +#: src/pages/build/BuildDetail.tsx:216 msgid "Destination Location" msgstr "" @@ -4084,206 +4853,182 @@ msgstr "" #~ msgid "Delete build order" #~ msgstr "Delete build order" -#: src/pages/build/BuildDetail.tsx:251 +#: src/pages/build/BuildDetail.tsx:254 msgid "Build Details" msgstr "" -#: src/pages/build/BuildDetail.tsx:257 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:258 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:267 -#: src/pages/sales/ReturnOrderDetail.tsx:130 -#: src/pages/sales/ReturnOrderDetail.tsx:237 -#: src/pages/sales/ReturnOrderDetail.tsx:246 -#: src/pages/sales/SalesOrderDetail.tsx:272 -#: src/pages/sales/SalesOrderDetail.tsx:281 +#: src/pages/build/BuildDetail.tsx:260 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:282 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:291 +#: src/pages/sales/ReturnOrderDetail.tsx:122 +#: src/pages/sales/ReturnOrderDetail.tsx:254 +#: src/pages/sales/ReturnOrderDetail.tsx:263 +#: src/pages/sales/SalesOrderDetail.tsx:294 +#: src/pages/sales/SalesOrderDetail.tsx:303 msgid "Line Items" msgstr "" -#: src/pages/build/BuildDetail.tsx:267 +#: src/pages/build/BuildDetail.tsx:266 msgid "Incomplete Outputs" msgstr "" -#: src/pages/build/BuildDetail.tsx:289 -#: src/pages/sales/SalesOrderDetail.tsx:319 +#: src/pages/build/BuildDetail.tsx:292 +#: src/pages/sales/SalesOrderDetail.tsx:341 msgid "Allocated Stock" msgstr "" -#: src/pages/build/BuildDetail.tsx:299 +#: src/pages/build/BuildDetail.tsx:302 msgid "Consumed Stock" msgstr "" -#: src/pages/build/BuildDetail.tsx:313 +#: src/pages/build/BuildDetail.tsx:316 msgid "Child Build Orders" msgstr "" #: src/pages/build/BuildDetail.tsx:326 -#: src/tables/build/BuildOutputTable.tsx:384 -#: src/tables/stock/StockItemTestResultTable.tsx:150 +#: src/tables/build/BuildOutputTable.tsx:532 +#: src/tables/stock/StockItemTestResultTable.tsx:156 msgid "Test Results" msgstr "" #: src/pages/build/BuildDetail.tsx:337 -#: src/pages/part/PartDetail.tsx:699 +#: src/pages/part/PartDetail.tsx:740 msgid "Test Statistics" msgstr "" -#: src/pages/build/BuildDetail.tsx:351 -#: src/pages/company/CompanyDetail.tsx:259 -#: src/pages/company/ManufacturerPartDetail.tsx:179 -#: src/pages/part/PartDetail.tsx:721 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:309 -#: src/pages/sales/ReturnOrderDetail.tsx:274 -#: src/pages/sales/SalesOrderDetail.tsx:343 -#: src/pages/stock/StockDetail.tsx:385 -msgid "Attachments" -msgstr "" - -#: src/pages/build/BuildDetail.tsx:359 -#: src/pages/company/CompanyDetail.tsx:270 -#: src/pages/company/ManufacturerPartDetail.tsx:190 -#: src/pages/company/SupplierPartDetail.tsx:257 -#: src/pages/part/PartDetail.tsx:729 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:320 -#: src/pages/sales/ReturnOrderDetail.tsx:285 -#: src/pages/sales/SalesOrderDetail.tsx:354 -#: src/pages/stock/StockDetail.tsx:396 -#: src/tables/build/BuildOrderTestTable.tsx:142 -#: src/tables/stock/StockTrackingTable.tsx:189 -msgid "Notes" +#: src/pages/build/BuildDetail.tsx:365 +msgid "Edit Build Order" msgstr "" #: src/pages/build/BuildDetail.tsx:368 #~ msgid "Reporting Actions" #~ msgstr "Reporting Actions" +#: src/pages/build/BuildDetail.tsx:372 +#: src/tables/build/BuildOrderTable.tsx:173 +#: src/tables/build/BuildOrderTable.tsx:188 +msgid "Add Build Order" +msgstr "" + #: src/pages/build/BuildDetail.tsx:374 #~ msgid "Print build report" #~ msgstr "Print build report" -#: src/pages/build/BuildDetail.tsx:377 -msgid "Edit Build Order" -msgstr "" - -#: src/pages/build/BuildDetail.tsx:384 -#: src/tables/build/BuildOrderTable.tsx:172 -#: src/tables/build/BuildOrderTable.tsx:187 -msgid "Add Build Order" -msgstr "" - -#: src/pages/build/BuildDetail.tsx:398 +#: src/pages/build/BuildDetail.tsx:386 msgid "Cancel Build Order" msgstr "" -#: src/pages/build/BuildDetail.tsx:400 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:348 -#: src/pages/sales/SalesOrderDetail.tsx:380 +#: src/pages/build/BuildDetail.tsx:388 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:357 +#: src/pages/sales/ReturnOrderDetail.tsx:354 +#: src/pages/sales/SalesOrderDetail.tsx:387 msgid "Order cancelled" msgstr "" -#: src/pages/build/BuildDetail.tsx:401 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:347 -#: src/pages/sales/ReturnOrderDetail.tsx:346 -#: src/pages/sales/SalesOrderDetail.tsx:379 +#: src/pages/build/BuildDetail.tsx:389 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:356 +#: src/pages/sales/ReturnOrderDetail.tsx:353 +#: src/pages/sales/SalesOrderDetail.tsx:386 msgid "Cancel this order" msgstr "" -#: src/pages/build/BuildDetail.tsx:410 +#: src/pages/build/BuildDetail.tsx:398 msgid "Hold Build Order" msgstr "" -#: src/pages/build/BuildDetail.tsx:412 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:355 -#: src/pages/sales/ReturnOrderDetail.tsx:354 -#: src/pages/sales/SalesOrderDetail.tsx:387 +#: src/pages/build/BuildDetail.tsx:400 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:364 +#: src/pages/sales/ReturnOrderDetail.tsx:361 +#: src/pages/sales/SalesOrderDetail.tsx:394 msgid "Place this order on hold" msgstr "" -#: src/pages/build/BuildDetail.tsx:413 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:356 -#: src/pages/sales/ReturnOrderDetail.tsx:355 -#: src/pages/sales/SalesOrderDetail.tsx:388 +#: src/pages/build/BuildDetail.tsx:401 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:365 +#: src/pages/sales/ReturnOrderDetail.tsx:362 +#: src/pages/sales/SalesOrderDetail.tsx:395 msgid "Order placed on hold" msgstr "" -#: src/pages/build/BuildDetail.tsx:418 +#: src/pages/build/BuildDetail.tsx:406 msgid "Issue Build Order" msgstr "" -#: src/pages/build/BuildDetail.tsx:420 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:339 -#: src/pages/sales/ReturnOrderDetail.tsx:338 -#: src/pages/sales/SalesOrderDetail.tsx:371 +#: src/pages/build/BuildDetail.tsx:408 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:348 +#: src/pages/sales/ReturnOrderDetail.tsx:345 +#: src/pages/sales/SalesOrderDetail.tsx:378 msgid "Issue this order" msgstr "" -#: src/pages/build/BuildDetail.tsx:421 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:340 -#: src/pages/sales/ReturnOrderDetail.tsx:339 -#: src/pages/sales/SalesOrderDetail.tsx:372 +#: src/pages/build/BuildDetail.tsx:409 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:349 +#: src/pages/sales/ReturnOrderDetail.tsx:346 +#: src/pages/sales/SalesOrderDetail.tsx:379 msgid "Order issued" msgstr "" -#: src/pages/build/BuildDetail.tsx:426 +#: src/pages/build/BuildDetail.tsx:414 msgid "Complete Build Order" msgstr "" -#: src/pages/build/BuildDetail.tsx:428 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:368 -#: src/pages/sales/ReturnOrderDetail.tsx:362 -#: src/pages/sales/SalesOrderDetail.tsx:395 +#: src/pages/build/BuildDetail.tsx:416 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:377 +#: src/pages/sales/ReturnOrderDetail.tsx:369 +#: src/pages/sales/SalesOrderDetail.tsx:402 msgid "Mark this order as complete" msgstr "" -#: src/pages/build/BuildDetail.tsx:429 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:362 -#: src/pages/sales/ReturnOrderDetail.tsx:363 -#: src/pages/sales/SalesOrderDetail.tsx:396 +#: src/pages/build/BuildDetail.tsx:417 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:371 +#: src/pages/sales/ReturnOrderDetail.tsx:370 +#: src/pages/sales/SalesOrderDetail.tsx:403 msgid "Order completed" msgstr "" -#: src/pages/build/BuildDetail.tsx:460 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:391 -#: src/pages/sales/ReturnOrderDetail.tsx:392 -#: src/pages/sales/SalesOrderDetail.tsx:425 +#: src/pages/build/BuildDetail.tsx:448 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:400 +#: src/pages/sales/ReturnOrderDetail.tsx:399 +#: src/pages/sales/SalesOrderDetail.tsx:432 msgid "Issue Order" msgstr "" -#: src/pages/build/BuildDetail.tsx:467 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:398 -#: src/pages/sales/ReturnOrderDetail.tsx:399 -#: src/pages/sales/SalesOrderDetail.tsx:439 +#: src/pages/build/BuildDetail.tsx:455 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:407 +#: src/pages/sales/ReturnOrderDetail.tsx:406 +#: src/pages/sales/SalesOrderDetail.tsx:446 msgid "Complete Order" msgstr "" -#: src/pages/build/BuildDetail.tsx:496 +#: src/pages/build/BuildDetail.tsx:473 msgid "Build Order Actions" msgstr "" -#: src/pages/build/BuildDetail.tsx:502 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:432 -#: src/pages/sales/ReturnOrderDetail.tsx:433 -#: src/pages/sales/SalesOrderDetail.tsx:474 +#: src/pages/build/BuildDetail.tsx:478 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:429 +#: src/pages/sales/ReturnOrderDetail.tsx:428 +#: src/pages/sales/SalesOrderDetail.tsx:469 msgid "Edit order" msgstr "" -#: src/pages/build/BuildDetail.tsx:506 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:440 -#: src/pages/sales/ReturnOrderDetail.tsx:439 -#: src/pages/sales/SalesOrderDetail.tsx:479 +#: src/pages/build/BuildDetail.tsx:482 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:437 +#: src/pages/sales/ReturnOrderDetail.tsx:434 +#: src/pages/sales/SalesOrderDetail.tsx:474 msgid "Duplicate order" msgstr "" -#: src/pages/build/BuildDetail.tsx:510 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:443 -#: src/pages/sales/ReturnOrderDetail.tsx:444 -#: src/pages/sales/SalesOrderDetail.tsx:482 +#: src/pages/build/BuildDetail.tsx:486 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:440 +#: src/pages/sales/ReturnOrderDetail.tsx:439 +#: src/pages/sales/SalesOrderDetail.tsx:477 msgid "Hold order" msgstr "" -#: src/pages/build/BuildDetail.tsx:515 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:448 -#: src/pages/sales/ReturnOrderDetail.tsx:449 -#: src/pages/sales/SalesOrderDetail.tsx:487 +#: src/pages/build/BuildDetail.tsx:491 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:445 +#: src/pages/sales/ReturnOrderDetail.tsx:444 +#: src/pages/sales/SalesOrderDetail.tsx:482 msgid "Cancel order" msgstr "" @@ -4295,56 +5040,60 @@ msgstr "" #~ msgid "New Build Order" #~ msgstr "New Build Order" -#: src/pages/company/CompanyDetail.tsx:104 +#: src/pages/company/CompanyDetail.tsx:95 +msgid "Website" +msgstr "" + +#: src/pages/company/CompanyDetail.tsx:103 msgid "Phone Number" msgstr "" -#: src/pages/company/CompanyDetail.tsx:111 +#: src/pages/company/CompanyDetail.tsx:110 msgid "Email Address" msgstr "" -#: src/pages/company/CompanyDetail.tsx:121 +#: src/pages/company/CompanyDetail.tsx:120 msgid "Default Currency" msgstr "" -#: src/pages/company/CompanyDetail.tsx:126 +#: src/pages/company/CompanyDetail.tsx:125 #: src/pages/company/SupplierDetail.tsx:8 -#: src/pages/company/SupplierPartDetail.tsx:120 -#: src/pages/company/SupplierPartDetail.tsx:206 -#: src/pages/company/SupplierPartDetail.tsx:351 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:136 -#: src/tables/company/CompanyTable.tsx:100 +#: src/pages/company/SupplierPartDetail.tsx:125 +#: src/pages/company/SupplierPartDetail.tsx:218 +#: src/pages/company/SupplierPartDetail.tsx:340 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:130 +#: src/tables/company/CompanyTable.tsx:101 #: src/tables/part/PartPurchaseOrdersTable.tsx:42 -#: src/tables/purchasing/PurchaseOrderTable.tsx:88 +#: src/tables/purchasing/PurchaseOrderTable.tsx:89 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:36 msgid "Supplier" msgstr "" -#: src/pages/company/CompanyDetail.tsx:132 +#: src/pages/company/CompanyDetail.tsx:131 #: src/pages/company/ManufacturerDetail.tsx:8 -#: src/pages/company/ManufacturerPartDetail.tsx:101 -#: src/pages/company/ManufacturerPartDetail.tsx:267 -#: src/pages/company/SupplierPartDetail.tsx:135 -#: src/tables/company/CompanyTable.tsx:105 +#: src/pages/company/ManufacturerPartDetail.tsx:100 +#: src/pages/company/ManufacturerPartDetail.tsx:262 +#: src/pages/company/SupplierPartDetail.tsx:147 +#: src/tables/company/CompanyTable.tsx:106 msgid "Manufacturer" msgstr "" -#: src/pages/company/CompanyDetail.tsx:138 +#: src/pages/company/CompanyDetail.tsx:137 #: src/pages/company/CustomerDetail.tsx:8 -#: src/pages/part/pricing/SaleHistoryPanel.tsx:29 -#: src/pages/sales/ReturnOrderDetail.tsx:109 -#: src/pages/sales/SalesOrderDetail.tsx:115 -#: src/pages/stock/StockDetail.tsx:230 -#: src/tables/company/CompanyTable.tsx:110 -#: src/tables/sales/ReturnOrderTable.tsx:78 -#: src/tables/sales/SalesOrderTable.tsx:108 -#: src/tables/stock/StockTrackingTable.tsx:140 +#: src/pages/part/pricing/SaleHistoryPanel.tsx:31 +#: src/pages/sales/ReturnOrderDetail.tsx:101 +#: src/pages/sales/SalesOrderDetail.tsx:110 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:100 +#: src/pages/stock/StockDetail.tsx:271 +#: src/tables/company/CompanyTable.tsx:111 +#: src/tables/sales/ReturnOrderTable.tsx:97 +#: src/tables/sales/SalesOrderTable.tsx:121 +#: src/tables/stock/StockTrackingTable.tsx:144 msgid "Customer" msgstr "" #: src/pages/company/CompanyDetail.tsx:172 -#: src/tables/stock/StockTrackingTable.tsx:183 -msgid "Details" +msgid "Company Details" msgstr "" #: src/pages/company/CompanyDetail.tsx:175 @@ -4363,140 +5112,150 @@ msgstr "" #~ msgid "Delete company" #~ msgstr "Delete company" -#: src/pages/company/CompanyDetail.tsx:232 +#: src/pages/company/CompanyDetail.tsx:234 msgid "Assigned Stock" msgstr "" -#: src/pages/company/CompanyDetail.tsx:290 -#: src/tables/company/CompanyTable.tsx:86 +#: src/pages/company/CompanyDetail.tsx:273 +#: src/tables/company/CompanyTable.tsx:87 msgid "Edit Company" msgstr "" -#: src/pages/company/CompanyDetail.tsx:298 +#: src/pages/company/CompanyDetail.tsx:281 msgid "Delete Company" msgstr "" -#: src/pages/company/CompanyDetail.tsx:306 +#: src/pages/company/CompanyDetail.tsx:289 msgid "Company Actions" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:76 -#: src/pages/company/SupplierPartDetail.tsx:89 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:128 +#: src/pages/company/ManufacturerPartDetail.tsx:74 +#: src/pages/company/SupplierPartDetail.tsx:84 msgid "Internal Part" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:91 -#: src/pages/company/SupplierPartDetail.tsx:103 -msgid "External Link" -msgstr "" - -#: src/pages/company/ManufacturerPartDetail.tsx:109 -#: src/pages/company/SupplierPartDetail.tsx:144 -#: src/tables/purchasing/ManufacturerPartTable.tsx:56 +#: src/pages/company/ManufacturerPartDetail.tsx:108 +#: src/pages/company/SupplierPartDetail.tsx:156 +#: src/tables/purchasing/ManufacturerPartTable.tsx:58 msgid "Manufacturer Part Number" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:138 +#: src/pages/company/ManufacturerPartDetail.tsx:125 +#: src/pages/company/SupplierPartDetail.tsx:108 +msgid "External Link" +msgstr "" + +#: src/pages/company/ManufacturerPartDetail.tsx:146 +#: src/pages/company/SupplierPartDetail.tsx:215 +#: src/pages/part/PartDetail.tsx:576 +msgid "Part Details" +msgstr "" + +#: src/pages/company/ManufacturerPartDetail.tsx:149 msgid "Manufacturer Details" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:147 +#: src/pages/company/ManufacturerPartDetail.tsx:158 msgid "Manufacturer Part Details" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:153 -#: src/pages/part/PartDetail.tsx:532 +#: src/pages/company/ManufacturerPartDetail.tsx:164 +#: src/pages/part/PartDetail.tsx:582 msgid "Parameters" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:165 -#: src/pages/part/PartDetail.tsx:649 +#: src/pages/company/ManufacturerPartDetail.tsx:176 +#: src/pages/part/PartDetail.tsx:669 #: src/pages/purchasing/PurchasingIndex.tsx:31 msgid "Suppliers" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:208 -#: src/tables/purchasing/ManufacturerPartTable.tsx:84 +#: src/pages/company/ManufacturerPartDetail.tsx:204 +#: src/tables/purchasing/ManufacturerPartTable.tsx:86 msgid "Edit Manufacturer Part" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:215 -#: src/tables/purchasing/ManufacturerPartTable.tsx:72 -#: src/tables/purchasing/ManufacturerPartTable.tsx:103 +#: src/pages/company/ManufacturerPartDetail.tsx:211 +#: src/tables/purchasing/ManufacturerPartTable.tsx:74 +#: src/tables/purchasing/ManufacturerPartTable.tsx:106 msgid "Add Manufacturer Part" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:227 -#: src/tables/purchasing/ManufacturerPartTable.tsx:92 +#: src/pages/company/ManufacturerPartDetail.tsx:223 +#: src/tables/purchasing/ManufacturerPartTable.tsx:94 msgid "Delete Manufacturer Part" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:240 +#: src/pages/company/ManufacturerPartDetail.tsx:236 msgid "Manufacturer Part Actions" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:281 +#: src/pages/company/ManufacturerPartDetail.tsx:276 msgid "ManufacturerPart" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:163 -#: src/tables/part/PartPurchaseOrdersTable.tsx:71 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:156 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:197 -#: src/tables/purchasing/SupplierPartTable.tsx:131 +#: src/pages/company/SupplierPartDetail.tsx:99 +msgid "Part Description" +msgstr "" + +#: src/pages/company/SupplierPartDetail.tsx:175 +#: src/tables/part/PartPurchaseOrdersTable.tsx:72 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:162 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:203 +#: src/tables/purchasing/SupplierPartTable.tsx:133 msgid "Pack Quantity" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:174 +#: src/pages/company/SupplierPartDetail.tsx:186 msgid "Supplier Availability" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:181 +#: src/pages/company/SupplierPartDetail.tsx:193 msgid "Availability Updated" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:208 +#: src/pages/company/SupplierPartDetail.tsx:220 msgid "Availability" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:217 +#: src/pages/company/SupplierPartDetail.tsx:229 msgid "Supplier Part Details" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:223 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:296 +#: src/pages/company/SupplierPartDetail.tsx:235 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:320 msgid "Received Stock" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:247 -#: src/pages/part/PartPricingPanel.tsx:111 -#: src/pages/part/pricing/PricingOverviewPanel.tsx:121 +#: src/pages/company/SupplierPartDetail.tsx:259 +#: src/pages/part/PartPricingPanel.tsx:116 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:195 msgid "Supplier Pricing" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:294 +#: src/pages/company/SupplierPartDetail.tsx:284 msgid "Supplier Part Actions" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:319 -#: src/tables/purchasing/SupplierPartTable.tsx:210 +#: src/pages/company/SupplierPartDetail.tsx:308 +#: src/tables/purchasing/SupplierPartTable.tsx:213 msgid "Edit Supplier Part" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:327 -#: src/tables/purchasing/SupplierPartTable.tsx:218 +#: src/pages/company/SupplierPartDetail.tsx:316 +#: src/tables/purchasing/SupplierPartTable.tsx:221 msgid "Delete Supplier Part" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:335 -#: src/tables/purchasing/SupplierPartTable.tsx:163 +#: src/pages/company/SupplierPartDetail.tsx:324 +#: src/tables/purchasing/SupplierPartTable.tsx:165 msgid "Add Supplier Part" msgstr "" #: src/pages/part/CategoryDetail.tsx:93 -#: src/pages/stock/LocationDetail.tsx:101 -#: src/tables/settings/ErrorTable.tsx:36 +#: src/pages/stock/LocationDetail.tsx:95 +#: src/tables/settings/ErrorTable.tsx:63 +#: src/tables/settings/ErrorTable.tsx:108 msgid "Path" msgstr "" @@ -4504,357 +5263,357 @@ msgstr "" msgid "Parent Category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:126 +#: src/pages/part/CategoryDetail.tsx:132 msgid "Subcategories" msgstr "" -#: src/pages/part/CategoryDetail.tsx:133 -#: src/pages/stock/LocationDetail.tsx:141 -#: src/tables/part/PartCategoryTable.tsx:73 +#: src/pages/part/CategoryDetail.tsx:139 +#: src/pages/stock/LocationDetail.tsx:135 +#: src/tables/part/PartCategoryTable.tsx:85 #: src/tables/stock/StockLocationTable.tsx:49 msgid "Structural" msgstr "" -#: src/pages/part/CategoryDetail.tsx:139 +#: src/pages/part/CategoryDetail.tsx:145 msgid "Parent default location" msgstr "" -#: src/pages/part/CategoryDetail.tsx:146 +#: src/pages/part/CategoryDetail.tsx:152 msgid "Default location" msgstr "" -#: src/pages/part/CategoryDetail.tsx:157 +#: src/pages/part/CategoryDetail.tsx:163 msgid "Top level part category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:167 -#: src/pages/part/CategoryDetail.tsx:221 -#: src/tables/part/PartCategoryTable.tsx:102 +#: src/pages/part/CategoryDetail.tsx:173 +#: src/pages/part/CategoryDetail.tsx:226 +#: src/tables/part/PartCategoryTable.tsx:118 msgid "Edit Part Category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:180 -#: src/pages/stock/LocationDetail.tsx:233 +#: src/pages/part/CategoryDetail.tsx:186 +#: src/pages/stock/LocationDetail.tsx:227 msgid "Delete items" msgstr "" -#: src/pages/part/CategoryDetail.tsx:188 -#: src/pages/part/CategoryDetail.tsx:226 +#: src/pages/part/CategoryDetail.tsx:194 +#: src/pages/part/CategoryDetail.tsx:231 msgid "Delete Part Category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:191 +#: src/pages/part/CategoryDetail.tsx:197 msgid "Parts Action" msgstr "" -#: src/pages/part/CategoryDetail.tsx:192 +#: src/pages/part/CategoryDetail.tsx:198 msgid "Action for parts in this category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:197 +#: src/pages/part/CategoryDetail.tsx:203 msgid "Child Categories Action" msgstr "" -#: src/pages/part/CategoryDetail.tsx:198 +#: src/pages/part/CategoryDetail.tsx:204 msgid "Action for child categories in this category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:216 +#: src/pages/part/CategoryDetail.tsx:222 msgid "Category Actions" msgstr "" -#: src/pages/part/CategoryDetail.tsx:238 +#: src/pages/part/CategoryDetail.tsx:243 msgid "Category Details" msgstr "" -#: src/pages/part/PartDetail.tsx:163 -msgid "Variant of" +#: src/pages/part/PartAllocationPanel.tsx:23 +#: src/pages/stock/StockDetail.tsx:443 +#: src/tables/part/PartTable.tsx:99 +msgid "Build Order Allocations" msgstr "" -#: src/pages/part/PartDetail.tsx:170 -msgid "Revision of" -msgstr "" - -#: src/pages/part/PartDetail.tsx:177 -#: src/tables/stock/StockItemTable.tsx:58 -msgid "Revision" +#: src/pages/part/PartAllocationPanel.tsx:40 +#: src/pages/stock/StockDetail.tsx:458 +#: src/tables/part/PartTable.tsx:108 +msgid "Sales Order Allocations" msgstr "" #: src/pages/part/PartDetail.tsx:184 +msgid "Variant of" +msgstr "" + +#: src/pages/part/PartDetail.tsx:191 +msgid "Revision of" +msgstr "" + +#: src/pages/part/PartDetail.tsx:198 +#: src/tables/stock/StockItemTable.tsx:59 +msgid "Revision" +msgstr "" + +#: src/pages/part/PartDetail.tsx:205 #: src/tables/notifications/NotificationsTable.tsx:31 #: src/tables/part/PartCategoryTemplateTable.tsx:67 msgid "Category" msgstr "" -#: src/pages/part/PartDetail.tsx:190 +#: src/pages/part/PartDetail.tsx:211 msgid "Default Location" msgstr "" -#: src/pages/part/PartDetail.tsx:197 +#: src/pages/part/PartDetail.tsx:218 msgid "Category Default Location" msgstr "" -#: src/pages/part/PartDetail.tsx:204 +#: src/pages/part/PartDetail.tsx:225 #: src/tables/purchasing/ManufacturerPartParameterTable.tsx:44 msgid "Units" msgstr "" -#: src/pages/part/PartDetail.tsx:211 -#: src/tables/settings/PendingTasksTable.tsx:42 +#: src/pages/part/PartDetail.tsx:232 +#: src/tables/settings/PendingTasksTable.tsx:46 msgid "Keywords" msgstr "" -#: src/pages/part/PartDetail.tsx:218 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:186 -#: src/pages/sales/ReturnOrderDetail.tsx:165 -#: src/pages/sales/SalesOrderDetail.tsx:174 -msgid "Link" -msgstr "" - -#: src/pages/part/PartDetail.tsx:236 +#: src/pages/part/PartDetail.tsx:257 #: src/tables/bom/BomTable.tsx:320 -#: src/tables/build/BuildLineTable.tsx:155 +#: src/tables/build/BuildLineTable.tsx:286 #: src/tables/part/PartTable.tsx:288 -#: src/tables/sales/SalesOrderLineItemTable.tsx:103 +#: src/tables/sales/SalesOrderLineItemTable.tsx:111 msgid "Available Stock" msgstr "" -#: src/pages/part/PartDetail.tsx:243 +#: src/pages/part/PartDetail.tsx:264 msgid "Variant Stock" msgstr "" -#: src/pages/part/PartDetail.tsx:251 +#: src/pages/part/PartDetail.tsx:272 msgid "Minimum Stock" msgstr "" -#: src/pages/part/PartDetail.tsx:257 +#: src/pages/part/PartDetail.tsx:278 #: src/tables/bom/BomTable.tsx:237 -#: src/tables/build/BuildLineTable.tsx:117 -#: src/tables/sales/SalesOrderLineItemTable.tsx:141 +#: src/tables/build/BuildLineTable.tsx:248 +#: src/tables/sales/SalesOrderLineItemTable.tsx:149 msgid "On order" msgstr "" -#: src/pages/part/PartDetail.tsx:266 +#: src/pages/part/PartDetail.tsx:285 +msgid "Required for Orders" +msgstr "" + +#: src/pages/part/PartDetail.tsx:294 msgid "Allocated to Build Orders" msgstr "" -#: src/pages/part/PartDetail.tsx:274 +#: src/pages/part/PartDetail.tsx:305 msgid "Allocated to Sales Orders" msgstr "" -#: src/pages/part/PartDetail.tsx:281 -#: src/tables/bom/BomTable.tsx:261 -#: src/tables/bom/BomTable.tsx:293 -msgid "Can Build" -msgstr "" - -#: src/pages/part/PartDetail.tsx:288 -#: src/tables/bom/BomTable.tsx:245 -#: src/tables/part/PartTable.tsx:92 -msgid "Building" -msgstr "" - -#: src/pages/part/PartDetail.tsx:302 -#: src/pages/part/PartDetail.tsx:873 -#: src/tables/part/ParametricPartTable.tsx:228 -#: src/tables/part/PartTable.tsx:184 -msgid "Locked" -msgstr "" - -#: src/pages/part/PartDetail.tsx:308 -msgid "Template Part" -msgstr "" - #: src/pages/part/PartDetail.tsx:310 #~ msgid "Edit part" #~ msgstr "Edit part" -#: src/pages/part/PartDetail.tsx:313 -#: src/tables/bom/BomTable.tsx:315 -msgid "Assembled Part" +#: src/pages/part/PartDetail.tsx:315 +#: src/tables/bom/BomTable.tsx:261 +#: src/tables/bom/BomTable.tsx:293 +msgid "Can Build" msgstr "" -#: src/pages/part/PartDetail.tsx:318 -msgid "Component Part" +#: src/pages/part/PartDetail.tsx:322 +#: src/pages/part/PartDetail.tsx:905 +#: src/pages/stock/StockDetail.tsx:766 +#: src/tables/build/BuildOrderTestTable.tsx:220 +#: src/tables/stock/StockItemTable.tsx:334 +msgid "In Production" msgstr "" #: src/pages/part/PartDetail.tsx:322 #~ msgid "Duplicate part" #~ msgstr "Duplicate part" -#: src/pages/part/PartDetail.tsx:323 -#: src/tables/bom/BomTable.tsx:305 -msgid "Testable Part" -msgstr "" - #: src/pages/part/PartDetail.tsx:327 #~ msgid "Delete part" #~ msgstr "Delete part" -#: src/pages/part/PartDetail.tsx:329 +#: src/pages/part/PartDetail.tsx:336 +#: src/tables/part/ParametricPartTable.tsx:228 +#: src/tables/part/PartTable.tsx:184 +msgid "Locked" +msgstr "" + +#: src/pages/part/PartDetail.tsx:342 +msgid "Template Part" +msgstr "" + +#: src/pages/part/PartDetail.tsx:347 +#: src/tables/bom/BomTable.tsx:315 +msgid "Assembled Part" +msgstr "" + +#: src/pages/part/PartDetail.tsx:352 +msgid "Component Part" +msgstr "" + +#: src/pages/part/PartDetail.tsx:357 +#: src/tables/bom/BomTable.tsx:305 +msgid "Testable Part" +msgstr "" + +#: src/pages/part/PartDetail.tsx:363 #: src/tables/bom/BomTable.tsx:310 msgid "Trackable Part" msgstr "" -#: src/pages/part/PartDetail.tsx:334 +#: src/pages/part/PartDetail.tsx:368 msgid "Purchaseable Part" msgstr "" -#: src/pages/part/PartDetail.tsx:339 +#: src/pages/part/PartDetail.tsx:374 msgid "Saleable Part" msgstr "" -#: src/pages/part/PartDetail.tsx:344 +#: src/pages/part/PartDetail.tsx:379 msgid "Virtual Part" msgstr "" -#: src/pages/part/PartDetail.tsx:352 -#: src/tables/ColumnRenderers.tsx:220 +#: src/pages/part/PartDetail.tsx:393 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:215 +#: src/pages/sales/ReturnOrderDetail.tsx:185 +#: src/pages/sales/SalesOrderDetail.tsx:197 +#: src/tables/ColumnRenderers.tsx:234 msgid "Creation Date" msgstr "" -#: src/pages/part/PartDetail.tsx:357 +#: src/pages/part/PartDetail.tsx:398 msgid "Created By" msgstr "" -#: src/pages/part/PartDetail.tsx:372 +#: src/pages/part/PartDetail.tsx:413 msgid "Default Supplier" msgstr "" -#: src/pages/part/PartDetail.tsx:383 -#: src/pages/part/pricing/BomPricingPanel.tsx:79 +#: src/pages/part/PartDetail.tsx:424 +#: src/pages/part/pricing/BomPricingPanel.tsx:113 #: src/pages/part/pricing/VariantPricingPanel.tsx:95 #: src/tables/part/PartTable.tsx:161 msgid "Price Range" msgstr "" -#: src/pages/part/PartDetail.tsx:423 -#: src/pages/stock/StockDetail.tsx:135 +#: src/pages/part/PartDetail.tsx:462 +msgid "Latest Serial Number" +msgstr "" + +#: src/pages/part/PartDetail.tsx:472 +#: src/pages/stock/StockDetail.tsx:151 msgid "Last Stocktake" msgstr "" -#: src/pages/part/PartDetail.tsx:462 +#: src/pages/part/PartDetail.tsx:511 msgid "Stocktake By" msgstr "" -#: src/pages/part/PartDetail.tsx:526 -msgid "Part Details" -msgstr "" - -#: src/pages/part/PartDetail.tsx:557 +#: src/pages/part/PartDetail.tsx:611 msgid "Variants" msgstr "" -#: src/pages/part/PartDetail.tsx:564 -#: src/pages/stock/StockDetail.tsx:307 +#: src/pages/part/PartDetail.tsx:618 +#: src/pages/stock/StockDetail.tsx:430 msgid "Allocations" msgstr "" -#: src/pages/part/PartDetail.tsx:575 -#: src/pages/stock/StockDetail.tsx:318 -#: src/tables/part/PartTable.tsx:99 -msgid "Build Order Allocations" -msgstr "" - -#: src/pages/part/PartDetail.tsx:590 -#: src/pages/stock/StockDetail.tsx:333 -#: src/tables/part/PartTable.tsx:108 -msgid "Sales Order Allocations" -msgstr "" - -#: src/pages/part/PartDetail.tsx:607 +#: src/pages/part/PartDetail.tsx:625 msgid "Bill of Materials" msgstr "" -#: src/pages/part/PartDetail.tsx:623 +#: src/pages/part/PartDetail.tsx:643 msgid "Used In" msgstr "" -#: src/pages/part/PartDetail.tsx:630 +#: src/pages/part/PartDetail.tsx:650 msgid "Part Pricing" msgstr "" -#: src/pages/part/PartDetail.tsx:636 +#: src/pages/part/PartDetail.tsx:656 #: src/pages/purchasing/PurchasingIndex.tsx:42 msgid "Manufacturers" msgstr "" -#: src/pages/part/PartDetail.tsx:676 +#: src/pages/part/PartDetail.tsx:722 msgid "Scheduling" msgstr "" -#: src/pages/part/PartDetail.tsx:688 +#: src/pages/part/PartDetail.tsx:729 msgid "Test Templates" msgstr "" -#: src/pages/part/PartDetail.tsx:715 +#: src/pages/part/PartDetail.tsx:756 msgid "Related Parts" msgstr "" -#: src/pages/part/PartDetail.tsx:849 -#: src/pages/stock/StockDetail.tsx:156 -#: src/pages/stock/StockDetail.tsx:593 -#: src/tables/build/BuildLineTable.tsx:48 +#: src/pages/part/PartDetail.tsx:881 +#: src/pages/stock/StockDetail.tsx:172 +#: src/pages/stock/StockDetail.tsx:783 +#: src/tables/build/BuildLineTable.tsx:179 #: src/tables/part/PartTable.tsx:117 -#: src/tables/stock/StockItemTable.tsx:177 -#: src/tables/stock/StockItemTable.tsx:310 +#: src/tables/stock/StockItemTable.tsx:166 +#: src/tables/stock/StockItemTable.tsx:314 msgid "Available" msgstr "" -#: src/pages/part/PartDetail.tsx:855 +#: src/pages/part/PartDetail.tsx:887 msgid "No Stock" msgstr "" -#: src/pages/part/PartDetail.tsx:861 +#: src/pages/part/PartDetail.tsx:893 +#: src/tables/part/PartTestTemplateTable.tsx:106 +#: src/tables/stock/StockItemTestResultTable.tsx:383 +msgid "Required" +msgstr "" + +#: src/pages/part/PartDetail.tsx:899 #: src/tables/bom/BomTable.tsx:325 #: src/tables/part/PartTable.tsx:86 msgid "On Order" msgstr "" -#: src/pages/part/PartDetail.tsx:867 -#: src/pages/stock/StockDetail.tsx:576 -#: src/tables/build/BuildOrderTestTable.tsx:219 -#: src/tables/stock/StockItemTable.tsx:330 -msgid "In Production" -msgstr "" - -#: src/pages/part/PartDetail.tsx:892 +#: src/pages/part/PartDetail.tsx:924 msgid "Edit Part" msgstr "" -#: src/pages/part/PartDetail.tsx:927 +#: src/pages/part/PartDetail.tsx:959 #: src/tables/part/PartTable.tsx:331 -#: src/tables/part/PartTable.tsx:342 +#: src/tables/part/PartTable.tsx:343 msgid "Add Part" msgstr "" -#: src/pages/part/PartDetail.tsx:941 +#: src/pages/part/PartDetail.tsx:973 msgid "Delete Part" msgstr "" -#: src/pages/part/PartDetail.tsx:950 +#: src/pages/part/PartDetail.tsx:982 msgid "Deleting this part cannot be reversed" msgstr "" -#: src/pages/part/PartDetail.tsx:999 -#: src/pages/stock/LocationDetail.tsx:324 -#: src/tables/stock/StockItemTable.tsx:444 +#: src/pages/part/PartDetail.tsx:1021 +#: src/pages/stock/LocationDetail.tsx:310 +#: src/tables/stock/StockItemTable.tsx:449 msgid "Stock Actions" msgstr "" -#: src/pages/part/PartDetail.tsx:1007 +#: src/pages/part/PartDetail.tsx:1029 msgid "Count part stock" msgstr "" -#: src/pages/part/PartDetail.tsx:1018 +#: src/pages/part/PartDetail.tsx:1040 msgid "Transfer part stock" msgstr "" -#: src/pages/part/PartDetail.tsx:1027 +#: src/pages/part/PartDetail.tsx:1049 msgid "Part Actions" msgstr "" -#: src/pages/part/PartDetail.tsx:1087 +#: src/pages/part/PartDetail.tsx:1113 msgid "Select Part Revision" msgstr "" @@ -4862,113 +5621,214 @@ msgstr "" #~ msgid "Categories" #~ msgstr "Categories" -#: src/pages/part/PartPricingPanel.tsx:68 +#: src/pages/part/PartPricingPanel.tsx:72 msgid "No pricing data found for this part." msgstr "" -#: src/pages/part/PartPricingPanel.tsx:82 -#: src/pages/part/pricing/PricingOverviewPanel.tsx:190 +#: src/pages/part/PartPricingPanel.tsx:87 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:293 msgid "Pricing Overview" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:88 +#: src/pages/part/PartPricingPanel.tsx:93 msgid "Purchase History" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:102 -#: src/pages/part/pricing/PricingOverviewPanel.tsx:100 +#: src/pages/part/PartPricingPanel.tsx:107 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:174 msgid "Internal Pricing" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:120 -#: src/pages/part/pricing/PricingOverviewPanel.tsx:107 +#: src/pages/part/PartPricingPanel.tsx:125 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:181 msgid "BOM Pricing" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:127 -#: src/pages/part/pricing/PricingOverviewPanel.tsx:128 +#: src/pages/part/PartPricingPanel.tsx:132 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:202 msgid "Variant Pricing" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:139 -#: src/pages/part/pricing/PricingOverviewPanel.tsx:135 +#: src/pages/part/PartPricingPanel.tsx:144 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:209 msgid "Sale Pricing" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:146 -#: src/pages/part/pricing/PricingOverviewPanel.tsx:142 +#: src/pages/part/PartPricingPanel.tsx:151 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:216 msgid "Sale History" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:58 -#: src/pages/part/pricing/BomPricingPanel.tsx:138 -#: src/tables/ColumnRenderers.tsx:262 +#: src/pages/part/PartSchedulingDetail.tsx:47 +#: src/pages/part/PartSchedulingDetail.tsx:299 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:156 +msgid "Maximum" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:50 +#: src/pages/part/PartSchedulingDetail.tsx:289 +msgid "Scheduled" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:53 +#: src/pages/part/PartSchedulingDetail.tsx:294 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:144 +msgid "Minimum" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:68 +msgid "Order" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:92 +msgid "Quantity is speculative" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:101 +msgid "No date available for provided quantity" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:105 +msgid "Date is in the past" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:112 +msgid "Scheduled Quantity" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:240 +msgid "No information available" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:241 +msgid "There is no scheduling information available for the selected part" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:276 +msgid "Expected Quantity" +msgstr "" + +#: src/pages/part/PartStocktakeDetail.tsx:63 +#: src/tables/FilterSelectDrawer.tsx:167 +#: src/tables/FilterSelectDrawer.tsx:174 +#: src/tables/build/BuildOrderTestTable.tsx:135 +#: src/tables/purchasing/ManufacturerPartParameterTable.tsx:38 +#: src/tables/stock/StockItemTestResultTable.tsx:192 +msgid "Value" +msgstr "" + +#: src/pages/part/PartStocktakeDetail.tsx:82 +msgid "Edit Stocktake Entry" +msgstr "" + +#: src/pages/part/PartStocktakeDetail.tsx:90 +msgid "Delete Stocktake Entry" +msgstr "" + +#: src/pages/part/PartStocktakeDetail.tsx:96 +#: src/tables/settings/StocktakeReportTable.tsx:69 +msgid "Generate Stocktake Report" +msgstr "" + +#: src/pages/part/PartStocktakeDetail.tsx:101 +#: src/tables/settings/StocktakeReportTable.tsx:71 +msgid "Stocktake report scheduled" +msgstr "" + +#: src/pages/part/PartStocktakeDetail.tsx:119 +#: src/pages/part/PartStocktakeDetail.tsx:235 +#: src/pages/stock/StockDetail.tsx:303 +#: src/tables/stock/StockItemTable.tsx:249 +msgid "Stock Value" +msgstr "" + +#: src/pages/part/PartStocktakeDetail.tsx:139 +#: src/tables/settings/StocktakeReportTable.tsx:77 +msgid "New Stocktake Report" +msgstr "" + +#: src/pages/part/PartStocktakeDetail.tsx:258 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:295 +msgid "Minimum Value" +msgstr "" + +#: src/pages/part/PartStocktakeDetail.tsx:264 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:296 +msgid "Maximum Value" +msgstr "" + +#: src/pages/part/pricing/BomPricingPanel.tsx:87 +#: src/pages/part/pricing/BomPricingPanel.tsx:177 +#: src/tables/ColumnRenderers.tsx:276 #: src/tables/bom/BomTable.tsx:185 #: src/tables/general/ExtraLineItemTable.tsx:64 -#: src/tables/purchasing/PurchaseOrderTable.tsx:112 -#: src/tables/sales/ReturnOrderTable.tsx:104 -#: src/tables/sales/SalesOrderLineItemTable.tsx:89 -#: src/tables/sales/SalesOrderTable.tsx:136 +#: src/tables/purchasing/PurchaseOrderTable.tsx:113 +#: src/tables/sales/ReturnOrderTable.tsx:127 +#: src/tables/sales/SalesOrderLineItemTable.tsx:97 +#: src/tables/sales/SalesOrderTable.tsx:149 msgid "Total Price" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:78 -#: src/pages/part/pricing/BomPricingPanel.tsx:102 +#: src/pages/part/pricing/BomPricingPanel.tsx:112 +#: src/pages/part/pricing/BomPricingPanel.tsx:141 #: src/tables/bom/UsedInTable.tsx:49 +#: src/tables/build/BuildLineTable.tsx:296 #: src/tables/part/PartTable.tsx:202 msgid "Component" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:81 -#: src/pages/part/pricing/VariantPricingPanel.tsx:37 -#: src/pages/part/pricing/VariantPricingPanel.tsx:97 -msgid "Minimum Price" -msgstr "" - -#: src/pages/part/pricing/BomPricingPanel.tsx:82 -#: src/pages/part/pricing/VariantPricingPanel.tsx:45 -#: src/pages/part/pricing/VariantPricingPanel.tsx:98 -msgid "Maximum Price" -msgstr "" - #: src/pages/part/pricing/BomPricingPanel.tsx:112 #~ msgid "Minimum Total Price" #~ msgstr "Minimum Total Price" +#: src/pages/part/pricing/BomPricingPanel.tsx:115 +#: src/pages/part/pricing/VariantPricingPanel.tsx:37 +#: src/pages/part/pricing/VariantPricingPanel.tsx:97 +msgid "Minimum Price" +msgstr "" + +#: src/pages/part/pricing/BomPricingPanel.tsx:116 +#: src/pages/part/pricing/VariantPricingPanel.tsx:45 +#: src/pages/part/pricing/VariantPricingPanel.tsx:98 +msgid "Maximum Price" +msgstr "" + #: src/pages/part/pricing/BomPricingPanel.tsx:117 #~ msgid "Maximum Total Price" #~ msgstr "Maximum Total Price" -#: src/pages/part/pricing/BomPricingPanel.tsx:129 -#: src/pages/part/pricing/PriceBreakPanel.tsx:172 -#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:67 -#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:128 -#: src/pages/part/pricing/SupplierPricingPanel.tsx:62 +#: src/pages/part/pricing/BomPricingPanel.tsx:168 +#: src/pages/part/pricing/PriceBreakPanel.tsx:173 +#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:70 +#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:125 +#: src/pages/part/pricing/SupplierPricingPanel.tsx:66 +#: src/pages/stock/StockDetail.tsx:291 #: src/tables/bom/BomTable.tsx:176 #: src/tables/general/ExtraLineItemTable.tsx:56 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:223 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:225 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:92 +#: src/tables/stock/StockItemTable.tsx:239 msgid "Unit Price" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:154 +#: src/pages/part/pricing/BomPricingPanel.tsx:193 #: src/pages/part/pricing/VariantPricingPanel.tsx:53 -#: src/tables/purchasing/SupplierPartTable.tsx:148 +#: src/tables/purchasing/SupplierPartTable.tsx:150 msgid "Updated" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:219 +#: src/pages/part/pricing/BomPricingPanel.tsx:258 msgid "Pie Chart" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:220 +#: src/pages/part/pricing/BomPricingPanel.tsx:259 msgid "Bar Chart" msgstr "" #: src/pages/part/pricing/PriceBreakPanel.tsx:58 -#: src/pages/part/pricing/PriceBreakPanel.tsx:110 +#: src/pages/part/pricing/PriceBreakPanel.tsx:111 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:142 -#: src/tables/purchasing/SupplierPriceBreakTable.tsx:168 +#: src/tables/purchasing/SupplierPriceBreakTable.tsx:169 msgid "Add Price Break" msgstr "" @@ -4986,46 +5846,70 @@ msgstr "" msgid "Price Break" msgstr "" -#: src/pages/part/pricing/PriceBreakPanel.tsx:170 +#: src/pages/part/pricing/PriceBreakPanel.tsx:171 msgid "Price" msgstr "" -#: src/pages/part/pricing/PricingOverviewPanel.tsx:51 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:68 +msgid "Refreshing pricing data" +msgstr "" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:88 +msgid "Pricing data updated" +msgstr "" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:95 +msgid "Failed to update pricing data" +msgstr "" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:104 +msgid "Edit Pricing" +msgstr "" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:125 msgid "Pricing Category" msgstr "" -#: src/pages/part/pricing/PricingOverviewPanel.tsx:70 -msgid "Minimum" -msgstr "" - -#: src/pages/part/pricing/PricingOverviewPanel.tsx:82 -msgid "Maximum" -msgstr "" - -#: src/pages/part/pricing/PricingOverviewPanel.tsx:114 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:188 msgid "Purchase Pricing" msgstr "" -#: src/pages/part/pricing/PricingOverviewPanel.tsx:149 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:223 msgid "Override Pricing" msgstr "" -#: src/pages/part/pricing/PricingOverviewPanel.tsx:156 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:230 msgid "Overall Pricing" msgstr "" -#: src/pages/part/pricing/PricingOverviewPanel.tsx:175 -#: src/pages/stock/StockDetail.tsx:129 -#: src/tables/stock/StockItemTable.tsx:240 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:249 +#: src/pages/stock/StockDetail.tsx:145 +#: src/tables/stock/StockItemTable.tsx:275 msgid "Last Updated" msgstr "" -#: src/pages/part/pricing/PricingOverviewPanel.tsx:192 -msgid "Minimum Value" +#: src/pages/part/pricing/PricingOverviewPanel.tsx:253 +msgid "Pricing Not Set" msgstr "" -#: src/pages/part/pricing/PricingOverviewPanel.tsx:193 -msgid "Maximum Value" +#: src/pages/part/pricing/PricingOverviewPanel.tsx:254 +msgid "Pricing data has not been calculated for this part" +msgstr "" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:258 +msgid "Pricing Actions" +msgstr "" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:261 +msgid "Refresh" +msgstr "" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:262 +msgid "Refresh pricing data" +msgstr "" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:277 +msgid "Edit pricing data" msgstr "" #: src/pages/part/pricing/PricingPanel.tsx:24 @@ -5044,28 +5928,20 @@ msgstr "" msgid "Loading pricing data" msgstr "" -#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:40 -#: src/pages/part/pricing/SaleHistoryPanel.tsx:36 -#: src/tables/ColumnRenderers.tsx:201 -#: src/tables/build/BuildOrderTestTable.tsx:150 -#: src/tables/plugin/PluginListTable.tsx:139 -msgid "Date" -msgstr "" - #: src/pages/part/pricing/PurchaseHistoryPanel.tsx:47 msgid "Purchase Price" msgstr "" -#: src/pages/part/pricing/SaleHistoryPanel.tsx:22 -msgid "Sale Order" -msgstr "" +#: src/pages/part/pricing/SaleHistoryPanel.tsx:24 +#~ msgid "Sale Order" +#~ msgstr "Sale Order" -#: src/pages/part/pricing/SaleHistoryPanel.tsx:42 -#: src/pages/part/pricing/SaleHistoryPanel.tsx:92 +#: src/pages/part/pricing/SaleHistoryPanel.tsx:44 +#: src/pages/part/pricing/SaleHistoryPanel.tsx:87 msgid "Sale Price" msgstr "" -#: src/pages/part/pricing/SupplierPricingPanel.tsx:65 +#: src/pages/part/pricing/SupplierPricingPanel.tsx:69 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:83 msgid "Supplier Price" msgstr "" @@ -5075,23 +5951,23 @@ msgstr "" msgid "Variant Part" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:93 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:87 msgid "Edit Purchase Order" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:102 -#: src/tables/purchasing/PurchaseOrderTable.tsx:128 -#: src/tables/purchasing/PurchaseOrderTable.tsx:140 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:96 +#: src/tables/purchasing/PurchaseOrderTable.tsx:129 +#: src/tables/purchasing/PurchaseOrderTable.tsx:142 msgid "Add Purchase Order" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:127 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:121 msgid "Supplier Reference" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:158 -#: src/pages/sales/ReturnOrderDetail.tsx:137 -#: src/pages/sales/SalesOrderDetail.tsx:137 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:152 +#: src/pages/sales/ReturnOrderDetail.tsx:129 +#: src/pages/sales/SalesOrderDetail.tsx:132 msgid "Completed Line Items" msgstr "" @@ -5101,91 +5977,112 @@ msgstr "" #~ msgid "Order Currency," #~ msgstr "Order Currency," -#: src/pages/purchasing/PurchaseOrderDetail.tsx:165 -#: src/pages/sales/ReturnOrderDetail.tsx:144 -#: src/pages/sales/SalesOrderDetail.tsx:153 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:161 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:231 +msgid "Destination" +msgstr "" + +#: src/pages/purchasing/PurchaseOrderDetail.tsx:167 +#: src/pages/sales/ReturnOrderDetail.tsx:136 +#: src/pages/sales/SalesOrderDetail.tsx:148 msgid "Order Currency" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:172 -#: src/pages/sales/ReturnOrderDetail.tsx:151 -#: src/pages/sales/SalesOrderDetail.tsx:160 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:173 +#: src/pages/sales/ReturnOrderDetail.tsx:143 +#: src/pages/sales/SalesOrderDetail.tsx:155 msgid "Total Cost" msgstr "" #: src/pages/purchasing/PurchaseOrderDetail.tsx:207 -#: src/pages/sales/ReturnOrderDetail.tsx:186 -#: src/pages/sales/SalesOrderDetail.tsx:195 -msgid "Created On" +#: src/pages/sales/ReturnOrderDetail.tsx:183 +#: src/pages/sales/SalesOrderDetail.tsx:191 +#~ msgid "Created On" +#~ msgstr "Created On" + +#: src/pages/purchasing/PurchaseOrderDetail.tsx:221 +#: src/pages/sales/ReturnOrderDetail.tsx:193 +#: src/pages/sales/SalesOrderDetail.tsx:204 +msgid "Issue Date" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:252 -#: src/pages/sales/ReturnOrderDetail.tsx:231 -#: src/pages/sales/SalesOrderDetail.tsx:266 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:237 +#: src/pages/sales/ReturnOrderDetail.tsx:209 +#: src/pages/sales/SalesOrderDetail.tsx:219 +#: src/tables/build/BuildOrderTable.tsx:98 +#: src/tables/part/PartPurchaseOrdersTable.tsx:105 +#: src/tables/sales/ReturnOrderTable.tsx:122 +msgid "Completion Date" +msgstr "" + +#: src/pages/purchasing/PurchaseOrderDetail.tsx:276 +#: src/pages/sales/ReturnOrderDetail.tsx:248 +#: src/pages/sales/SalesOrderDetail.tsx:288 msgid "Order Details" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:280 -#: src/pages/sales/ReturnOrderDetail.tsx:258 -#: src/pages/sales/SalesOrderDetail.tsx:297 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:304 +#: src/pages/sales/ReturnOrderDetail.tsx:276 +#: src/pages/sales/SalesOrderDetail.tsx:319 msgid "Extra Line Items" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:337 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:346 msgid "Issue Purchase Order" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:345 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:354 msgid "Cancel Purchase Order" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:353 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:362 msgid "Hold Purchase Order" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:361 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:370 msgid "Complete Purchase Order" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:427 -#: src/pages/sales/ReturnOrderDetail.tsx:428 -#: src/pages/sales/SalesOrderDetail.tsx:468 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:425 +#: src/pages/sales/ReturnOrderDetail.tsx:424 +#: src/pages/sales/SalesOrderDetail.tsx:464 msgid "Order Actions" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:101 -#: src/pages/sales/SalesOrderDetail.tsx:107 -#: src/tables/sales/SalesOrderTable.tsx:124 +#: src/pages/sales/ReturnOrderDetail.tsx:92 +#: src/pages/sales/SalesOrderDetail.tsx:101 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:109 +#: src/tables/sales/SalesOrderTable.tsx:137 msgid "Customer Reference" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:315 +#: src/pages/sales/ReturnOrderDetail.tsx:322 msgid "Edit Return Order" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:324 -#: src/tables/sales/ReturnOrderTable.tsx:119 -#: src/tables/sales/ReturnOrderTable.tsx:128 +#: src/pages/sales/ReturnOrderDetail.tsx:331 +#: src/tables/sales/ReturnOrderTable.tsx:142 +#: src/tables/sales/ReturnOrderTable.tsx:152 msgid "Add Return Order" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:336 +#: src/pages/sales/ReturnOrderDetail.tsx:343 msgid "Issue Return Order" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:344 +#: src/pages/sales/ReturnOrderDetail.tsx:349 +#~ msgid "Order canceled" +#~ msgstr "Order canceled" + +#: src/pages/sales/ReturnOrderDetail.tsx:351 msgid "Cancel Return Order" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:347 -msgid "Order canceled" -msgstr "" - -#: src/pages/sales/ReturnOrderDetail.tsx:352 +#: src/pages/sales/ReturnOrderDetail.tsx:359 msgid "Hold Return Order" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:360 +#: src/pages/sales/ReturnOrderDetail.tsx:367 msgid "Complete Return Order" msgstr "" @@ -5193,117 +6090,193 @@ msgstr "" msgid "Customers" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:145 +#: src/pages/sales/SalesOrderDetail.tsx:140 msgid "Completed Shipments" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:243 -msgid "Edit Sales Order" -msgstr "" - -#: src/pages/sales/SalesOrderDetail.tsx:252 -#: src/tables/sales/SalesOrderTable.tsx:84 -#: src/tables/sales/SalesOrderTable.tsx:96 -msgid "Add Sales Order" -msgstr "" - #: src/pages/sales/SalesOrderDetail.tsx:256 #~ msgid "Pending Shipments" #~ msgstr "Pending Shipments" -#: src/pages/sales/SalesOrderDetail.tsx:313 +#: src/pages/sales/SalesOrderDetail.tsx:261 +msgid "Edit Sales Order" +msgstr "" + +#: src/pages/sales/SalesOrderDetail.tsx:274 +#: src/tables/sales/SalesOrderTable.tsx:96 +#: src/tables/sales/SalesOrderTable.tsx:109 +msgid "Add Sales Order" +msgstr "" + +#: src/pages/sales/SalesOrderDetail.tsx:335 msgid "Shipments" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:369 +#: src/pages/sales/SalesOrderDetail.tsx:376 msgid "Issue Sales Order" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:377 +#: src/pages/sales/SalesOrderDetail.tsx:384 msgid "Cancel Sales Order" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:385 +#: src/pages/sales/SalesOrderDetail.tsx:392 msgid "Hold Sales Order" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:393 +#: src/pages/sales/SalesOrderDetail.tsx:400 msgid "Complete Sales Order" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:432 +#: src/pages/sales/SalesOrderDetail.tsx:439 msgid "Ship Order" msgstr "" -#: src/pages/stock/LocationDetail.tsx:117 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:117 +#: src/tables/sales/SalesOrderShipmentTable.tsx:96 +msgid "Shipment Reference" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:124 +msgid "Allocated Items" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:133 +msgid "Tracking Number" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:141 +msgid "Invoice Number" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:149 +#: src/tables/ColumnRenderers.tsx:242 +#: src/tables/sales/SalesOrderAllocationTable.tsx:142 +#: src/tables/sales/SalesOrderShipmentTable.tsx:115 +msgid "Shipment Date" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:157 +#: src/tables/sales/SalesOrderShipmentTable.tsx:119 +msgid "Delivery Date" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:204 +msgid "Shipment Details" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:210 +msgid "Assigned Items" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:241 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:317 +#: src/tables/sales/SalesOrderShipmentTable.tsx:75 +msgid "Edit Shipment" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:248 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:322 +#: src/tables/sales/SalesOrderShipmentTable.tsx:67 +msgid "Cancel Shipment" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:261 +#: src/tables/sales/SalesOrderShipmentTable.tsx:83 +#: src/tables/sales/SalesOrderShipmentTable.tsx:151 +msgid "Complete Shipment" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:276 +#: src/tables/part/PartPurchaseOrdersTable.tsx:121 +msgid "Pending" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:277 +#: src/tables/sales/SalesOrderAllocationTable.tsx:148 +#: src/tables/sales/SalesOrderShipmentTable.tsx:108 +#: src/tables/sales/SalesOrderShipmentTable.tsx:197 +msgid "Shipped" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:279 +#: src/tables/sales/SalesOrderShipmentTable.tsx:202 +msgid "Delivered" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:293 +msgid "Send Shipment" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:312 +msgid "Shipment Actions" +msgstr "" + +#: src/pages/stock/LocationDetail.tsx:111 msgid "Parent Location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:135 +#: src/pages/stock/LocationDetail.tsx:129 msgid "Sublocations" msgstr "" -#: src/pages/stock/LocationDetail.tsx:147 +#: src/pages/stock/LocationDetail.tsx:141 #: src/tables/stock/StockLocationTable.tsx:54 msgid "External" msgstr "" -#: src/pages/stock/LocationDetail.tsx:153 +#: src/pages/stock/LocationDetail.tsx:147 #: src/tables/stock/StockLocationTable.tsx:63 msgid "Location Type" msgstr "" -#: src/pages/stock/LocationDetail.tsx:164 +#: src/pages/stock/LocationDetail.tsx:158 msgid "Top level stock location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:175 +#: src/pages/stock/LocationDetail.tsx:169 msgid "Location Details" msgstr "" -#: src/pages/stock/LocationDetail.tsx:201 +#: src/pages/stock/LocationDetail.tsx:195 msgid "Default Parts" msgstr "" -#: src/pages/stock/LocationDetail.tsx:220 -#: src/pages/stock/LocationDetail.tsx:351 +#: src/pages/stock/LocationDetail.tsx:214 +#: src/pages/stock/LocationDetail.tsx:336 #: src/tables/stock/StockLocationTable.tsx:123 msgid "Edit Stock Location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:241 -#: src/pages/stock/LocationDetail.tsx:356 +#: src/pages/stock/LocationDetail.tsx:235 +#: src/pages/stock/LocationDetail.tsx:341 msgid "Delete Stock Location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:244 +#: src/pages/stock/LocationDetail.tsx:238 msgid "Items Action" msgstr "" -#: src/pages/stock/LocationDetail.tsx:245 +#: src/pages/stock/LocationDetail.tsx:239 msgid "Action for stock items in this location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:250 +#: src/pages/stock/LocationDetail.tsx:244 msgid "Child Locations Action" msgstr "" -#: src/pages/stock/LocationDetail.tsx:251 +#: src/pages/stock/LocationDetail.tsx:245 msgid "Action for child locations in this location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:346 +#: src/pages/stock/LocationDetail.tsx:332 msgid "Location Actions" msgstr "" -#: src/pages/stock/StockDetail.tsx:108 +#: src/pages/stock/StockDetail.tsx:116 msgid "Base Part" msgstr "" -#: src/pages/stock/StockDetail.tsx:115 -msgid "Stock Status" -msgstr "" - #: src/pages/stock/StockDetail.tsx:155 #~ msgid "Link custom barcode to stock item" #~ msgstr "Link custom barcode to stock item" @@ -5312,113 +6285,179 @@ msgstr "" #~ msgid "Unlink custom barcode from stock item" #~ msgstr "Unlink custom barcode from stock item" -#: src/pages/stock/StockDetail.tsx:188 -msgid "Installed In" -msgstr "" - -#: src/pages/stock/StockDetail.tsx:204 -msgid "Consumed By" +#: src/pages/stock/StockDetail.tsx:178 +msgid "Allocated to Orders" msgstr "" #: src/pages/stock/StockDetail.tsx:205 #~ msgid "Edit stock item" #~ msgstr "Edit stock item" -#: src/pages/stock/StockDetail.tsx:213 -#: src/tables/build/BuildAllocatedStockTable.tsx:64 -#: src/tables/stock/StockTrackingTable.tsx:96 -msgid "Build Order" +#: src/pages/stock/StockDetail.tsx:209 +msgid "Installed In" msgstr "" #: src/pages/stock/StockDetail.tsx:217 #~ msgid "Delete stock item" #~ msgstr "Delete stock item" -#: src/pages/stock/StockDetail.tsx:291 +#: src/pages/stock/StockDetail.tsx:226 +msgid "Parent Item" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:230 +msgid "Parent stock item" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:236 +msgid "Consumed By" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:245 +#: src/tables/build/BuildAllocatedStockTable.tsx:77 +#: src/tables/stock/StockTrackingTable.tsx:100 +msgid "Build Order" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:283 +#: src/tables/stock/StockItemTable.tsx:270 +msgid "Expiry Date" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:414 msgid "Stock Details" msgstr "" -#: src/pages/stock/StockDetail.tsx:297 +#: src/pages/stock/StockDetail.tsx:420 msgid "Stock Tracking" msgstr "" -#: src/pages/stock/StockDetail.tsx:350 -msgid "Test Data" -msgstr "" - -#: src/pages/stock/StockDetail.tsx:364 -msgid "Installed Items" -msgstr "" - -#: src/pages/stock/StockDetail.tsx:371 -msgid "Child Items" -msgstr "" - -#: src/pages/stock/StockDetail.tsx:425 -msgid "Edit Stock Item" -msgstr "" - #: src/pages/stock/StockDetail.tsx:433 #~ msgid "Duplicate stock item" #~ msgstr "Duplicate stock item" -#: src/pages/stock/StockDetail.tsx:452 +#: src/pages/stock/StockDetail.tsx:475 +msgid "Test Data" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:489 +msgid "Installed Items" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:496 +msgid "Child Items" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:545 +msgid "Edit Stock Item" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:572 msgid "Delete Stock Item" msgstr "" -#: src/pages/stock/StockDetail.tsx:504 +#: src/pages/stock/StockDetail.tsx:604 +msgid "Serialize Stock Item" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:617 +msgid "Stock item serialized" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:623 +msgid "Return Stock Item" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:626 +msgid "Return this item into stock. This will remove the customer assignment." +msgstr "" + +#: src/pages/stock/StockDetail.tsx:636 +msgid "Item returned to stock" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:666 msgid "Stock Operations" msgstr "" -#: src/pages/stock/StockDetail.tsx:509 +#: src/pages/stock/StockDetail.tsx:671 msgid "Count stock" msgstr "" -#: src/pages/stock/StockDetail.tsx:519 -#: src/tables/stock/StockItemTable.tsx:449 -msgid "Add stock" +#: src/pages/stock/StockDetail.tsx:671 +#: src/tables/stock/StockItemTable.tsx:452 +#~ msgid "Add stock" +#~ msgstr "Add stock" + +#: src/pages/stock/StockDetail.tsx:680 +#: src/tables/stock/StockItemTable.tsx:461 +#~ msgid "Remove stock" +#~ msgstr "Remove stock" + +#: src/pages/stock/StockDetail.tsx:698 +#: src/tables/stock/StockItemTable.tsx:481 +#~ msgid "Transfer stock" +#~ msgstr "Transfer stock" + +#: src/pages/stock/StockDetail.tsx:699 +msgid "Serialize" msgstr "" -#: src/pages/stock/StockDetail.tsx:527 -#: src/tables/stock/StockItemTable.tsx:458 -msgid "Remove stock" +#: src/pages/stock/StockDetail.tsx:700 +msgid "Serialize stock" msgstr "" -#: src/pages/stock/StockDetail.tsx:534 +#: src/pages/stock/StockDetail.tsx:711 msgid "Transfer" msgstr "" -#: src/pages/stock/StockDetail.tsx:535 -#: src/tables/stock/StockItemTable.tsx:478 -msgid "Transfer stock" +#: src/pages/stock/StockDetail.tsx:722 +msgid "Return" msgstr "" -#: src/pages/stock/StockDetail.tsx:546 +#: src/pages/stock/StockDetail.tsx:723 +msgid "Return from customer" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:738 msgid "Stock Item Actions" msgstr "" -#: src/tables/ColumnRenderers.tsx:30 +#: src/pages/stock/StockDetail.tsx:808 +msgid "Stale" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:814 +msgid "Expired" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:820 +msgid "Unavailable" +msgstr "" + +#: src/tables/ColumnRenderers.tsx:36 msgid "Part is not active" msgstr "" -#: src/tables/ColumnRenderers.tsx:35 -msgid "Part is locked" +#: src/tables/ColumnRenderers.tsx:41 +#: src/tables/bom/BomTable.tsx:542 +#: src/tables/part/PartParameterTable.tsx:193 +#: src/tables/part/PartTestTemplateTable.tsx:253 +msgid "Part is Locked" msgstr "" -#: src/tables/ColumnRenderers.tsx:57 +#: src/tables/ColumnRenderers.tsx:41 +#~ msgid "Part is locked" +#~ msgstr "Part is locked" + +#: src/tables/ColumnRenderers.tsx:46 +msgid "You are subscribed to notifications for this part" +msgstr "" + +#: src/tables/ColumnRenderers.tsx:68 msgid "No location set" msgstr "" -#: src/tables/ColumnRenderers.tsx:228 -#: src/tables/sales/SalesOrderShipmentTable.tsx:79 -msgid "Shipment Date" -msgstr "" - -#: src/tables/ColumnRenderers.tsx:248 -#: src/tables/settings/CurrencyTable.tsx:23 -msgid "Currency" -msgstr "" - #: src/tables/ColumnSelect.tsx:16 #: src/tables/ColumnSelect.tsx:23 msgid "Select Columns" @@ -5452,91 +6491,116 @@ msgstr "" msgid "Download Data" msgstr "" -#: src/tables/Filter.tsx:89 -#: src/tables/build/BuildOrderTable.tsx:135 +#: src/tables/Filter.tsx:101 msgid "Assigned to me" msgstr "" -#: src/tables/Filter.tsx:90 -#: src/tables/build/BuildOrderTable.tsx:136 +#: src/tables/Filter.tsx:102 msgid "Show orders assigned to me" msgstr "" -#: src/tables/Filter.tsx:97 +#: src/tables/Filter.tsx:106 +#~ msgid "Show overdue orders" +#~ msgstr "Show overdue orders" + +#: src/tables/Filter.tsx:109 +#: src/tables/build/BuildOrderTable.tsx:120 +#: src/tables/sales/SalesOrderAllocationTable.tsx:59 msgid "Outstanding" msgstr "" -#: src/tables/Filter.tsx:98 -msgid "Show outstanding orders" +#: src/tables/Filter.tsx:110 +msgid "Show outstanding items" msgstr "" -#: src/tables/Filter.tsx:105 -#: src/tables/build/BuildOrderTable.tsx:128 +#: src/tables/Filter.tsx:117 msgid "Overdue" msgstr "" -#: src/tables/Filter.tsx:106 -msgid "Show overdue orders" +#: src/tables/Filter.tsx:118 +msgid "Show overdue items" msgstr "" -#: src/tables/FilterSelectDrawer.tsx:51 +#: src/tables/Filter.tsx:125 +msgid "Minimum Date" +msgstr "" + +#: src/tables/Filter.tsx:126 +msgid "Show items after this date" +msgstr "" + +#: src/tables/Filter.tsx:134 +msgid "Maximum Date" +msgstr "" + +#: src/tables/Filter.tsx:135 +msgid "Show items before this date" +msgstr "" + +#: src/tables/Filter.tsx:144 +msgid "Has Project Code" +msgstr "" + +#: src/tables/Filter.tsx:145 +msgid "Show orders with an assigned project code" +msgstr "" + +#: src/tables/FilterSelectDrawer.tsx:55 msgid "Remove filter" msgstr "" -#: src/tables/FilterSelectDrawer.tsx:130 +#: src/tables/FilterSelectDrawer.tsx:159 msgid "Select filter" msgstr "" -#: src/tables/FilterSelectDrawer.tsx:131 +#: src/tables/FilterSelectDrawer.tsx:160 msgid "Filter" msgstr "" -#: src/tables/FilterSelectDrawer.tsx:138 -#: src/tables/build/BuildOrderTestTable.tsx:134 -#: src/tables/purchasing/ManufacturerPartParameterTable.tsx:38 -#: src/tables/stock/StockItemTestResultTable.tsx:186 -msgid "Value" +#: src/tables/FilterSelectDrawer.tsx:168 +msgid "Select date value" msgstr "" -#: src/tables/FilterSelectDrawer.tsx:140 +#: src/tables/FilterSelectDrawer.tsx:176 msgid "Select filter value" msgstr "" -#: src/tables/FilterSelectDrawer.tsx:183 +#: src/tables/FilterSelectDrawer.tsx:219 +#: src/tables/InvenTreeTableHeader.tsx:214 msgid "Table Filters" msgstr "" -#: src/tables/FilterSelectDrawer.tsx:215 +#: src/tables/FilterSelectDrawer.tsx:251 msgid "Add Filter" msgstr "" -#: src/tables/FilterSelectDrawer.tsx:224 +#: src/tables/FilterSelectDrawer.tsx:260 msgid "Clear Filters" msgstr "" -#: src/tables/InvenTreeTable.tsx:123 -#: src/tables/InvenTreeTable.tsx:431 -#: src/tables/InvenTreeTable.tsx:455 +#: src/tables/InvenTreeTable.tsx:96 +#: src/tables/InvenTreeTable.tsx:417 +#: src/tables/InvenTreeTable.tsx:441 msgid "No records found" msgstr "" -#: src/tables/InvenTreeTable.tsx:466 +#: src/tables/InvenTreeTable.tsx:452 msgid "Server returned incorrect data type" msgstr "" -#: src/tables/InvenTreeTable.tsx:474 +#: src/tables/InvenTreeTable.tsx:460 msgid "Bad request" msgstr "" -#: src/tables/InvenTreeTable.tsx:477 +#: src/tables/InvenTreeTable.tsx:463 msgid "Unauthorized" msgstr "" -#: src/tables/InvenTreeTable.tsx:480 +#: src/tables/InvenTreeTable.tsx:466 msgid "Forbidden" msgstr "" -#: src/tables/InvenTreeTable.tsx:483 +#: src/tables/InvenTreeTable.tsx:469 msgid "Not found" msgstr "" @@ -5544,18 +6608,6 @@ msgstr "" #~ msgid "Are you sure you want to delete the selected records?" #~ msgstr "Are you sure you want to delete the selected records?" -#: src/tables/InvenTreeTable.tsx:525 -msgid "Delete Selected Items" -msgstr "" - -#: src/tables/InvenTreeTable.tsx:529 -msgid "Are you sure you want to delete the selected items?" -msgstr "" - -#: src/tables/InvenTreeTable.tsx:531 -msgid "This action cannot be undone!" -msgstr "" - #: src/tables/InvenTreeTable.tsx:535 #~ msgid "Deleted records" #~ msgstr "Deleted records" @@ -5568,31 +6620,56 @@ msgstr "" #~ msgid "Failed to delete records" #~ msgstr "Failed to delete records" +#: src/tables/InvenTreeTable.tsx:552 +#~ msgid "This action cannot be undone!" +#~ msgstr "This action cannot be undone!" + #: src/tables/InvenTreeTable.tsx:594 #: src/tables/InvenTreeTable.tsx:595 #~ msgid "Print actions" #~ msgstr "Print actions" -#: src/tables/InvenTreeTable.tsx:618 -#: src/tables/InvenTreeTable.tsx:619 -msgid "Barcode actions" +#: src/tables/InvenTreeTable.tsx:655 +#: src/tables/InvenTreeTable.tsx:656 +#~ msgid "Barcode actions" +#~ msgstr "Barcode actions" + +#: src/tables/InvenTreeTable.tsx:712 +#~ msgid "Table filters" +#~ msgstr "Table filters" + +#: src/tables/InvenTreeTable.tsx:725 +#~ msgid "Clear custom query filters" +#~ msgstr "Clear custom query filters" + +#: src/tables/InvenTreeTableHeader.tsx:98 +msgid "Delete Selected Items" msgstr "" -#: src/tables/InvenTreeTable.tsx:628 +#: src/tables/InvenTreeTableHeader.tsx:102 +msgid "Are you sure you want to delete the selected items?" +msgstr "" + +#: src/tables/InvenTreeTableHeader.tsx:104 +#: src/tables/plugin/PluginListTable.tsx:305 +msgid "This action cannot be undone" +msgstr "" + +#: src/tables/InvenTreeTableHeader.tsx:142 +msgid "Custom table filters are active" +msgstr "" + +#: src/tables/InvenTreeTableHeader.tsx:169 msgid "Delete selected records" msgstr "" -#: src/tables/InvenTreeTable.tsx:649 +#: src/tables/InvenTreeTableHeader.tsx:188 msgid "Refresh data" msgstr "" -#: src/tables/InvenTreeTable.tsx:675 -msgid "Table filters" -msgstr "" - #: src/tables/TableHoverCard.tsx:35 -msgid "item-{idx}" -msgstr "" +#~ msgid "item-{idx}" +#~ msgstr "item-{idx}" #: src/tables/UploadAction.tsx:7 #~ msgid "Upload Data" @@ -5607,31 +6684,36 @@ msgid "Part Information" msgstr "" #: src/tables/bom/BomTable.tsx:212 -#: src/tables/build/BuildLineTable.tsx:126 +#: src/tables/build/BuildLineTable.tsx:257 #: src/tables/part/PartTable.tsx:125 msgid "External stock" msgstr "" #: src/tables/bom/BomTable.tsx:220 -#: src/tables/build/BuildLineTable.tsx:89 +#: src/tables/build/BuildLineTable.tsx:220 msgid "Includes substitute stock" msgstr "" #: src/tables/bom/BomTable.tsx:229 -#: src/tables/build/BuildLineTable.tsx:99 -#: src/tables/sales/SalesOrderLineItemTable.tsx:127 +#: src/tables/build/BuildLineTable.tsx:230 +#: src/tables/sales/SalesOrderLineItemTable.tsx:135 msgid "Includes variant stock" msgstr "" +#: src/tables/bom/BomTable.tsx:245 +#: src/tables/part/PartTable.tsx:92 +msgid "Building" +msgstr "" + #: src/tables/bom/BomTable.tsx:254 #: src/tables/part/PartTable.tsx:153 -#: src/tables/sales/SalesOrderLineItemTable.tsx:150 -#: src/tables/stock/StockItemTable.tsx:216 +#: src/tables/sales/SalesOrderLineItemTable.tsx:158 +#: src/tables/stock/StockItemTable.tsx:206 msgid "Stock Information" msgstr "" #: src/tables/bom/BomTable.tsx:285 -#: src/tables/build/BuildLineTable.tsx:248 +#: src/tables/build/BuildLineTable.tsx:409 msgid "Consumable item" msgstr "" @@ -5644,7 +6726,7 @@ msgstr "" #~ msgstr "Create BOM Item" #: src/tables/bom/BomTable.tsx:306 -#: src/tables/build/BuildLineTable.tsx:69 +#: src/tables/build/BuildLineTable.tsx:200 msgid "Show testable items" msgstr "" @@ -5657,11 +6739,12 @@ msgid "Show trackable items" msgstr "" #: src/tables/bom/BomTable.tsx:316 -#: src/tables/build/BuildLineTable.tsx:64 +#: src/tables/build/BuildLineTable.tsx:195 msgid "Show assembled items" msgstr "" #: src/tables/bom/BomTable.tsx:321 +#: src/tables/build/BuildLineTable.tsx:180 msgid "Show items with available stock" msgstr "" @@ -5705,7 +6788,7 @@ msgstr "" #: src/tables/bom/BomTable.tsx:345 #: src/tables/bom/UsedInTable.tsx:79 -#: src/tables/build/BuildLineTable.tsx:58 +#: src/tables/build/BuildLineTable.tsx:189 msgid "Optional" msgstr "" @@ -5723,7 +6806,7 @@ msgstr "" #~ msgstr "Bom item deleted" #: src/tables/bom/BomTable.tsx:350 -#: src/tables/build/BuildLineTable.tsx:53 +#: src/tables/build/BuildLineTable.tsx:184 msgid "Consumable" msgstr "" @@ -5749,12 +6832,12 @@ msgid "Show items with pricing" msgstr "" #: src/tables/bom/BomTable.tsx:378 -#: src/tables/bom/BomTable.tsx:511 +#: src/tables/bom/BomTable.tsx:512 msgid "Import BOM Data" msgstr "" #: src/tables/bom/BomTable.tsx:388 -#: src/tables/bom/BomTable.tsx:523 +#: src/tables/bom/BomTable.tsx:526 msgid "Add BOM Item" msgstr "" @@ -5780,7 +6863,7 @@ msgstr "" #: src/tables/bom/BomTable.tsx:423 #: src/tables/bom/BomTable.tsx:426 -#: src/tables/bom/BomTable.tsx:517 +#: src/tables/bom/BomTable.tsx:519 msgid "Validate BOM" msgstr "" @@ -5812,21 +6895,15 @@ msgstr "" msgid "Edit Substitutes" msgstr "" -#: src/tables/bom/BomTable.tsx:539 -#: src/tables/part/PartParameterTable.tsx:193 -#: src/tables/part/PartTestTemplateTable.tsx:252 -msgid "Part is Locked" -msgstr "" - -#: src/tables/bom/BomTable.tsx:544 +#: src/tables/bom/BomTable.tsx:547 msgid "Bill of materials cannot be edited, as the part is locked" msgstr "" #: src/tables/bom/UsedInTable.tsx:33 -#: src/tables/build/BuildLineTable.tsx:63 +#: src/tables/build/BuildLineTable.tsx:194 #: src/tables/part/ParametricPartTable.tsx:233 #: src/tables/part/PartTable.tsx:190 -#: src/tables/stock/StockItemTable.tsx:300 +#: src/tables/stock/StockItemTable.tsx:304 msgid "Assembly" msgstr "" @@ -5844,285 +6921,347 @@ msgstr "" msgid "Show trackable assemblies" msgstr "" -#: src/tables/build/BuildAllocatedStockTable.tsx:54 +#: src/tables/build/BuildAllocatedStockTable.tsx:56 msgid "Allocated to Output" msgstr "" -#: src/tables/build/BuildAllocatedStockTable.tsx:55 +#: src/tables/build/BuildAllocatedStockTable.tsx:57 msgid "Show items allocated to a build output" msgstr "" -#: src/tables/build/BuildAllocatedStockTable.tsx:76 -#: src/tables/part/PartPurchaseOrdersTable.tsx:125 -#: src/tables/sales/SalesOrderAllocationTable.tsx:62 +#: src/tables/build/BuildAllocatedStockTable.tsx:65 +#: src/tables/build/BuildOrderTable.tsx:159 +#: src/tables/part/PartParameterTable.tsx:212 +#: src/tables/part/PartPurchaseOrdersTable.tsx:138 +#: src/tables/sales/ReturnOrderTable.tsx:84 +#: src/tables/sales/SalesOrderAllocationTable.tsx:68 +#: src/tables/sales/SalesOrderTable.tsx:84 +#: src/tables/stock/StockItemTable.tsx:339 +msgid "Include Variants" +msgstr "" + +#: src/tables/build/BuildAllocatedStockTable.tsx:66 +#: src/tables/build/BuildOrderTable.tsx:160 +#: src/tables/part/PartPurchaseOrdersTable.tsx:139 +#: src/tables/sales/ReturnOrderTable.tsx:85 +#: src/tables/sales/SalesOrderAllocationTable.tsx:69 +#: src/tables/sales/SalesOrderTable.tsx:85 +msgid "Include orders for part variants" +msgstr "" + +#: src/tables/build/BuildAllocatedStockTable.tsx:89 +#: src/tables/part/PartPurchaseOrdersTable.tsx:131 +#: src/tables/sales/SalesOrderAllocationTable.tsx:93 msgid "Order Status" msgstr "" -#: src/tables/build/BuildAllocatedStockTable.tsx:96 -#: src/tables/sales/SalesOrderAllocationTable.tsx:75 +#: src/tables/build/BuildAllocatedStockTable.tsx:117 +#: src/tables/sales/SalesOrderAllocationTable.tsx:126 msgid "Allocated Quantity" msgstr "" -#: src/tables/build/BuildAllocatedStockTable.tsx:116 -#: src/tables/sales/SalesOrderAllocationTable.tsx:94 +#: src/tables/build/BuildAllocatedStockTable.tsx:137 +#: src/tables/sales/SalesOrderAllocationTable.tsx:120 msgid "Available Quantity" msgstr "" -#: src/tables/build/BuildAllocatedStockTable.tsx:126 -#: src/tables/build/BuildOrderTestTable.tsx:176 -#: src/tables/build/BuildOrderTestTable.tsx:200 -#: src/tables/build/BuildOutputTable.tsx:312 -msgid "Build Output" +#: src/tables/build/BuildAllocatedStockTable.tsx:164 +#: src/tables/build/BuildLineTable.tsx:513 +msgid "Edit Stock Allocation" msgstr "" -#: src/tables/build/BuildAllocatedStockTable.tsx:143 -msgid "Edit Build Item" -msgstr "" +#: src/tables/build/BuildAllocatedStockTable.tsx:164 +#~ msgid "Edit Build Item" +#~ msgstr "Edit Build Item" -#: src/tables/build/BuildAllocatedStockTable.tsx:153 -msgid "Delete Build Item" -msgstr "" +#: src/tables/build/BuildAllocatedStockTable.tsx:174 +#~ msgid "Delete Build Item" +#~ msgstr "Delete Build Item" -#: src/tables/build/BuildLineTable.tsx:43 -#: src/tables/stock/StockItemTable.tsx:305 -msgid "Allocated" -msgstr "" - -#: src/tables/build/BuildLineTable.tsx:44 -msgid "Show allocated lines" -msgstr "" - -#: src/tables/build/BuildLineTable.tsx:49 -msgid "Show lines with available stock" -msgstr "" - -#: src/tables/build/BuildLineTable.tsx:54 -msgid "Show consumable lines" +#: src/tables/build/BuildAllocatedStockTable.tsx:177 +#: src/tables/build/BuildLineTable.tsx:526 +msgid "Delete Stock Allocation" msgstr "" #: src/tables/build/BuildLineTable.tsx:59 +#~ msgid "Show lines with available stock" +#~ msgstr "Show lines with available stock" + +#: src/tables/build/BuildLineTable.tsx:175 +msgid "Show allocated lines" +msgstr "" + +#: src/tables/build/BuildLineTable.tsx:185 +msgid "Show consumable lines" +msgstr "" + +#: src/tables/build/BuildLineTable.tsx:190 msgid "Show optional lines" msgstr "" -#: src/tables/build/BuildLineTable.tsx:68 +#: src/tables/build/BuildLineTable.tsx:199 #: src/tables/part/PartTable.tsx:208 msgid "Testable" msgstr "" -#: src/tables/build/BuildLineTable.tsx:73 -#: src/tables/stock/StockItemTable.tsx:364 +#: src/tables/build/BuildLineTable.tsx:204 +#: src/tables/stock/StockItemTable.tsx:368 msgid "Tracked" msgstr "" -#: src/tables/build/BuildLineTable.tsx:74 +#: src/tables/build/BuildLineTable.tsx:205 msgid "Show tracked lines" msgstr "" -#: src/tables/build/BuildLineTable.tsx:108 -#: src/tables/sales/SalesOrderLineItemTable.tsx:133 +#: src/tables/build/BuildLineTable.tsx:239 +#: src/tables/sales/SalesOrderLineItemTable.tsx:141 msgid "In production" msgstr "" -#: src/tables/build/BuildLineTable.tsx:136 +#: src/tables/build/BuildLineTable.tsx:267 msgid "Insufficient stock" msgstr "" -#: src/tables/build/BuildLineTable.tsx:152 -#: src/tables/sales/SalesOrderLineItemTable.tsx:121 -#: src/tables/stock/StockItemTable.tsx:186 +#: src/tables/build/BuildLineTable.tsx:283 +#: src/tables/sales/SalesOrderLineItemTable.tsx:129 +#: src/tables/stock/StockItemTable.tsx:175 msgid "No stock available" msgstr "" -#: src/tables/build/BuildLineTable.tsx:201 +#: src/tables/build/BuildLineTable.tsx:355 msgid "Gets Inherited" msgstr "" -#: src/tables/build/BuildLineTable.tsx:210 +#: src/tables/build/BuildLineTable.tsx:366 msgid "Unit Quantity" msgstr "" -#: src/tables/build/BuildLineTable.tsx:267 -#: src/tables/sales/SalesOrderLineItemTable.tsx:230 +#: src/tables/build/BuildLineTable.tsx:381 +msgid "Required Quantity" +msgstr "" + +#: src/tables/build/BuildLineTable.tsx:432 +#: src/tables/sales/SalesOrderLineItemTable.tsx:254 msgid "Create Build Order" msgstr "" -#: src/tables/build/BuildLineTable.tsx:298 -msgid "Allocate Stock" +#: src/tables/build/BuildLineTable.tsx:460 +msgid "Auto allocation in progress" msgstr "" -#: src/tables/build/BuildLineTable.tsx:305 +#: src/tables/build/BuildLineTable.tsx:463 +#: src/tables/build/BuildLineTable.tsx:632 +msgid "Auto Allocate Stock" +msgstr "" + +#: src/tables/build/BuildLineTable.tsx:464 +msgid "Automatically allocate stock to this build according to the selected options" +msgstr "" + +#: src/tables/build/BuildLineTable.tsx:482 +#: src/tables/build/BuildLineTable.tsx:496 +#: src/tables/build/BuildLineTable.tsx:579 +#: src/tables/build/BuildLineTable.tsx:664 +#: src/tables/build/BuildOutputTable.tsx:314 +#: src/tables/build/BuildOutputTable.tsx:319 +msgid "Deallocate Stock" +msgstr "" + +#: src/tables/build/BuildLineTable.tsx:498 +msgid "Deallocate all untracked stock for this build order" +msgstr "" + +#: src/tables/build/BuildLineTable.tsx:500 +msgid "Deallocate stock from the selected line item" +msgstr "" + +#: src/tables/build/BuildLineTable.tsx:504 +msgid "Stock has been deallocated" +msgstr "" + +#: src/tables/build/BuildLineTable.tsx:589 msgid "Order Stock" msgstr "" -#: src/tables/build/BuildLineTable.tsx:312 +#: src/tables/build/BuildLineTable.tsx:596 msgid "Build Stock" msgstr "" -#: src/tables/build/BuildOrderTable.tsx:111 -msgid "Show active orders" +#: src/tables/build/BuildLineTable.tsx:610 +msgid "View Part" msgstr "" #: src/tables/build/BuildOrderTable.tsx:116 -msgid "Cascade" -msgstr "" +#~ msgid "Cascade" +#~ msgstr "Cascade" #: src/tables/build/BuildOrderTable.tsx:117 -msgid "Display recursive child orders" +#~ msgid "Display recursive child orders" +#~ msgstr "Display recursive child orders" + +#: src/tables/build/BuildOrderTable.tsx:121 +msgid "Show outstanding orders" msgstr "" -#: src/tables/build/BuildOrderTable.tsx:123 -#: src/tables/part/PartPurchaseOrdersTable.tsx:126 -#: src/tables/purchasing/PurchaseOrderTable.tsx:56 -#: src/tables/sales/ReturnOrderTable.tsx:47 -#: src/tables/sales/SalesOrderTable.tsx:54 +#: src/tables/build/BuildOrderTable.tsx:121 +#~ msgid "Show active orders" +#~ msgstr "Show active orders" + +#: src/tables/build/BuildOrderTable.tsx:122 +#~ msgid "Show overdue status" +#~ msgstr "Show overdue status" + +#: src/tables/build/BuildOrderTable.tsx:126 +#: src/tables/part/PartPurchaseOrdersTable.tsx:132 +#: src/tables/purchasing/PurchaseOrderTable.tsx:59 +#: src/tables/sales/ReturnOrderTable.tsx:57 +#: src/tables/sales/SalesOrderTable.tsx:57 msgid "Filter by order status" msgstr "" -#: src/tables/build/BuildOrderTable.tsx:130 -msgid "Show overdue status" -msgstr "" - -#: src/tables/build/BuildOrderTable.tsx:141 -#: src/tables/purchasing/PurchaseOrderTable.tsx:65 -#: src/tables/sales/ReturnOrderTable.tsx:56 -#: src/tables/sales/SalesOrderTable.tsx:63 +#: src/tables/build/BuildOrderTable.tsx:136 +#: src/tables/purchasing/PurchaseOrderTable.tsx:70 +#: src/tables/sales/ReturnOrderTable.tsx:68 +#: src/tables/sales/SalesOrderTable.tsx:68 msgid "Filter by project code" msgstr "" -#: src/tables/build/BuildOrderTable.tsx:146 -#: src/tables/purchasing/PurchaseOrderTable.tsx:70 -#: src/tables/sales/ReturnOrderTable.tsx:61 -#: src/tables/sales/SalesOrderTable.tsx:68 -msgid "Has Project Code" -msgstr "" - -#: src/tables/build/BuildOrderTable.tsx:147 +#: src/tables/build/BuildOrderTable.tsx:139 #: src/tables/purchasing/PurchaseOrderTable.tsx:71 #: src/tables/sales/ReturnOrderTable.tsx:62 #: src/tables/sales/SalesOrderTable.tsx:69 -msgid "Filter by whether the purchase order has a project code" -msgstr "" +#~ msgid "Filter by whether the purchase order has a project code" +#~ msgstr "Filter by whether the purchase order has a project code" -#: src/tables/build/BuildOrderTable.tsx:152 +#: src/tables/build/BuildOrderTable.tsx:143 msgid "Filter by user who issued this order" msgstr "" -#: src/tables/build/BuildOrderTable.tsx:158 -#: src/tables/purchasing/PurchaseOrderTable.tsx:76 -#: src/tables/sales/ReturnOrderTable.tsx:67 -#: src/tables/sales/SalesOrderTable.tsx:74 +#: src/tables/build/BuildOrderTable.tsx:149 +#: src/tables/purchasing/PurchaseOrderTable.tsx:77 +#: src/tables/sales/ReturnOrderTable.tsx:75 +#: src/tables/sales/SalesOrderTable.tsx:75 msgid "Filter by responsible owner" msgstr "" -#: src/tables/build/BuildOrderTestTable.tsx:75 -#: src/tables/build/BuildOrderTestTable.tsx:111 -#: src/tables/stock/StockItemTestResultTable.tsx:257 -#: src/tables/stock/StockItemTestResultTable.tsx:329 -#: src/tables/stock/StockItemTestResultTable.tsx:384 +#: src/tables/build/BuildOrderTestTable.tsx:76 +#: src/tables/build/BuildOrderTestTable.tsx:112 +#: src/tables/stock/StockItemTestResultTable.tsx:275 +#: src/tables/stock/StockItemTestResultTable.tsx:347 +#: src/tables/stock/StockItemTestResultTable.tsx:403 msgid "Add Test Result" msgstr "" -#: src/tables/build/BuildOrderTestTable.tsx:82 -#: src/tables/stock/StockItemTestResultTable.tsx:259 +#: src/tables/build/BuildOrderTestTable.tsx:83 +#: src/tables/stock/StockItemTestResultTable.tsx:277 msgid "Test result added" msgstr "" -#: src/tables/build/BuildOrderTestTable.tsx:110 -#: src/tables/stock/StockItemTestResultTable.tsx:174 +#: src/tables/build/BuildOrderTestTable.tsx:111 +#: src/tables/stock/StockItemTestResultTable.tsx:180 msgid "No Result" msgstr "" -#: src/tables/build/BuildOrderTestTable.tsx:220 +#: src/tables/build/BuildOrderTestTable.tsx:221 msgid "Show build outputs currently in production" msgstr "" +#: src/tables/build/BuildOutputTable.tsx:76 +msgid "Build Output Stock Allocation" +msgstr "" + #: src/tables/build/BuildOutputTable.tsx:161 #~ msgid "Delete build output" #~ msgstr "Delete build output" -#: src/tables/build/BuildOutputTable.tsx:173 -#: src/tables/build/BuildOutputTable.tsx:211 +#: src/tables/build/BuildOutputTable.tsx:258 +#: src/tables/build/BuildOutputTable.tsx:374 msgid "Add Build Output" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:216 +#: src/tables/build/BuildOutputTable.tsx:304 +#~ msgid "Edit build output" +#~ msgstr "Edit build output" + +#: src/tables/build/BuildOutputTable.tsx:306 +#: src/tables/build/BuildOutputTable.tsx:417 +msgid "Edit Build Output" +msgstr "" + +#: src/tables/build/BuildOutputTable.tsx:321 +msgid "This action will deallocate all stock from the selected build output" +msgstr "" + +#: src/tables/build/BuildOutputTable.tsx:341 msgid "Complete selected outputs" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:226 +#: src/tables/build/BuildOutputTable.tsx:352 msgid "Scrap selected outputs" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:236 +#: src/tables/build/BuildOutputTable.tsx:363 msgid "Cancel selected outputs" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:252 +#: src/tables/build/BuildOutputTable.tsx:385 msgid "Allocate" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:253 +#: src/tables/build/BuildOutputTable.tsx:386 msgid "Allocate stock to build output" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:259 +#: src/tables/build/BuildOutputTable.tsx:396 msgid "Deallocate" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:260 +#: src/tables/build/BuildOutputTable.tsx:397 msgid "Deallocate stock from build output" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:267 +#: src/tables/build/BuildOutputTable.tsx:408 msgid "Complete build output" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:276 +#: src/tables/build/BuildOutputTable.tsx:424 msgid "Scrap" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:277 +#: src/tables/build/BuildOutputTable.tsx:425 msgid "Scrap build output" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:280 -#~ msgid "Allocated Items" -#~ msgstr "Allocated Items" - -#: src/tables/build/BuildOutputTable.tsx:287 +#: src/tables/build/BuildOutputTable.tsx:435 msgid "Cancel build output" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:325 -msgid "Batch" -msgstr "" - -#: src/tables/build/BuildOutputTable.tsx:340 +#: src/tables/build/BuildOutputTable.tsx:488 msgid "Allocated Lines" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:355 +#: src/tables/build/BuildOutputTable.tsx:503 msgid "Required Tests" msgstr "" -#: src/tables/company/AddressTable.tsx:121 -#: src/tables/company/AddressTable.tsx:185 +#: src/tables/company/AddressTable.tsx:118 +#: src/tables/company/AddressTable.tsx:183 msgid "Add Address" msgstr "" -#: src/tables/company/AddressTable.tsx:126 +#: src/tables/company/AddressTable.tsx:123 msgid "Address created" msgstr "" -#: src/tables/company/AddressTable.tsx:135 +#: src/tables/company/AddressTable.tsx:132 msgid "Edit Address" msgstr "" -#: src/tables/company/AddressTable.tsx:143 +#: src/tables/company/AddressTable.tsx:140 msgid "Delete Address" msgstr "" -#: src/tables/company/AddressTable.tsx:144 +#: src/tables/company/AddressTable.tsx:141 msgid "Are you sure you want to delete this address?" msgstr "" @@ -6130,24 +7269,24 @@ msgstr "" #~ msgid "New Company" #~ msgstr "New Company" -#: src/tables/company/CompanyTable.tsx:74 -#: src/tables/company/CompanyTable.tsx:123 +#: src/tables/company/CompanyTable.tsx:75 +#: src/tables/company/CompanyTable.tsx:125 msgid "Add Company" msgstr "" -#: src/tables/company/CompanyTable.tsx:96 +#: src/tables/company/CompanyTable.tsx:97 msgid "Show active companies" msgstr "" -#: src/tables/company/CompanyTable.tsx:101 +#: src/tables/company/CompanyTable.tsx:102 msgid "Show companies which are suppliers" msgstr "" -#: src/tables/company/CompanyTable.tsx:106 +#: src/tables/company/CompanyTable.tsx:107 msgid "Show companies which are manufacturers" msgstr "" -#: src/tables/company/CompanyTable.tsx:111 +#: src/tables/company/CompanyTable.tsx:112 msgid "Show companies which are customers" msgstr "" @@ -6163,96 +7302,99 @@ msgstr "" msgid "Delete Contact" msgstr "" -#: src/tables/company/ContactTable.tsx:129 +#: src/tables/company/ContactTable.tsx:130 msgid "Add contact" msgstr "" -#: src/tables/general/AttachmentTable.tsx:130 +#: src/tables/general/AttachmentTable.tsx:135 msgid "File uploaded" msgstr "" -#: src/tables/general/AttachmentTable.tsx:131 +#: src/tables/general/AttachmentTable.tsx:136 msgid "File {0} uploaded successfully" msgstr "" -#: src/tables/general/AttachmentTable.tsx:142 +#: src/tables/general/AttachmentTable.tsx:147 msgid "Upload Error" msgstr "" -#: src/tables/general/AttachmentTable.tsx:143 +#: src/tables/general/AttachmentTable.tsx:148 msgid "File could not be uploaded" msgstr "" -#: src/tables/general/AttachmentTable.tsx:191 +#: src/tables/general/AttachmentTable.tsx:196 msgid "Upload Attachment" msgstr "" -#: src/tables/general/AttachmentTable.tsx:201 +#: src/tables/general/AttachmentTable.tsx:206 msgid "Edit Attachment" msgstr "" -#: src/tables/general/AttachmentTable.tsx:215 +#: src/tables/general/AttachmentTable.tsx:220 msgid "Delete Attachment" msgstr "" -#: src/tables/general/AttachmentTable.tsx:225 +#: src/tables/general/AttachmentTable.tsx:230 msgid "Is Link" msgstr "" -#: src/tables/general/AttachmentTable.tsx:226 +#: src/tables/general/AttachmentTable.tsx:231 msgid "Show link attachments" msgstr "" -#: src/tables/general/AttachmentTable.tsx:230 +#: src/tables/general/AttachmentTable.tsx:235 msgid "Is File" msgstr "" -#: src/tables/general/AttachmentTable.tsx:231 +#: src/tables/general/AttachmentTable.tsx:236 msgid "Show file attachments" msgstr "" -#: src/tables/general/AttachmentTable.tsx:240 +#: src/tables/general/AttachmentTable.tsx:245 msgid "Add attachment" msgstr "" -#: src/tables/general/AttachmentTable.tsx:251 -msgid "Add external link" -msgstr "" - #: src/tables/general/AttachmentTable.tsx:254 #~ msgid "Upload attachment" #~ msgstr "Upload attachment" -#: src/tables/general/AttachmentTable.tsx:299 +#: src/tables/general/AttachmentTable.tsx:256 +msgid "Add external link" +msgstr "" + +#: src/tables/general/AttachmentTable.tsx:304 msgid "No attachments found" msgstr "" -#: src/tables/general/AttachmentTable.tsx:337 +#: src/tables/general/AttachmentTable.tsx:343 msgid "Drag attachment file here to upload" msgstr "" #: src/tables/general/ExtraLineItemTable.tsx:86 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:251 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:60 -#: src/tables/sales/SalesOrderLineItemTable.tsx:196 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:263 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:362 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:72 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:168 +#: src/tables/sales/SalesOrderLineItemTable.tsx:206 +#: src/tables/sales/SalesOrderLineItemTable.tsx:291 msgid "Add Line Item" msgstr "" #: src/tables/general/ExtraLineItemTable.tsx:98 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:271 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:72 -#: src/tables/sales/SalesOrderLineItemTable.tsx:214 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:283 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:84 +#: src/tables/sales/SalesOrderLineItemTable.tsx:224 msgid "Edit Line Item" msgstr "" #: src/tables/general/ExtraLineItemTable.tsx:106 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:279 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:80 -#: src/tables/sales/SalesOrderLineItemTable.tsx:222 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:291 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:92 +#: src/tables/sales/SalesOrderLineItemTable.tsx:232 msgid "Delete Line Item" msgstr "" -#: src/tables/general/ExtraLineItemTable.tsx:142 +#: src/tables/general/ExtraLineItemTable.tsx:143 msgid "Add Extra Line Item" msgstr "" @@ -6261,12 +7403,12 @@ msgid "Machine restarted" msgstr "" #: src/tables/machine/MachineListTable.tsx:212 -#: src/tables/machine/MachineListTable.tsx:263 +#: src/tables/machine/MachineListTable.tsx:261 msgid "Edit machine" msgstr "" #: src/tables/machine/MachineListTable.tsx:226 -#: src/tables/machine/MachineListTable.tsx:267 +#: src/tables/machine/MachineListTable.tsx:265 msgid "Delete machine" msgstr "" @@ -6278,51 +7420,50 @@ msgstr "" msgid "Are you sure you want to remove the machine \"{0}\"?" msgstr "" -#: src/tables/machine/MachineListTable.tsx:255 -#: src/tables/machine/MachineListTable.tsx:432 +#: src/tables/machine/MachineListTable.tsx:254 +#: src/tables/machine/MachineListTable.tsx:442 msgid "Restart required" msgstr "" -#: src/tables/machine/MachineListTable.tsx:259 +#: src/tables/machine/MachineListTable.tsx:258 msgid "Machine Actions" msgstr "" -#: src/tables/machine/MachineListTable.tsx:272 +#: src/tables/machine/MachineListTable.tsx:270 msgid "Restart" msgstr "" -#: src/tables/machine/MachineListTable.tsx:274 +#: src/tables/machine/MachineListTable.tsx:272 msgid "Restart machine" msgstr "" -#: src/tables/machine/MachineListTable.tsx:276 +#: src/tables/machine/MachineListTable.tsx:274 msgid "manual restart required" msgstr "" +#: src/tables/machine/MachineListTable.tsx:291 +#~ msgid "Machine information" +#~ msgstr "Machine information" + #: src/tables/machine/MachineListTable.tsx:292 -msgid "Machine information" +msgid "Machine Information" msgstr "" -#: src/tables/machine/MachineListTable.tsx:303 -#: src/tables/machine/MachineListTable.tsx:599 +#: src/tables/machine/MachineListTable.tsx:302 +#: src/tables/machine/MachineListTable.tsx:610 msgid "Machine Type" msgstr "" -#: src/tables/machine/MachineListTable.tsx:316 +#: src/tables/machine/MachineListTable.tsx:315 msgid "Machine Driver" msgstr "" -#: src/tables/machine/MachineListTable.tsx:329 +#: src/tables/machine/MachineListTable.tsx:330 msgid "Initialized" msgstr "" -#: src/tables/machine/MachineListTable.tsx:350 -#: src/tables/machine/MachineTypeTable.tsx:261 -msgid "Errors" -msgstr "" - -#: src/tables/machine/MachineListTable.tsx:358 -#: src/tables/machine/MachineTypeTable.tsx:269 +#: src/tables/machine/MachineListTable.tsx:359 +#: src/tables/machine/MachineTypeTable.tsx:290 msgid "No errors reported" msgstr "" @@ -6330,7 +7471,7 @@ msgstr "" msgid "Machine Settings" msgstr "" -#: src/tables/machine/MachineListTable.tsx:389 +#: src/tables/machine/MachineListTable.tsx:394 msgid "Driver Settings" msgstr "" @@ -6338,86 +7479,109 @@ msgstr "" #~ msgid "Create machine" #~ msgstr "Create machine" -#: src/tables/machine/MachineListTable.tsx:506 +#: src/tables/machine/MachineListTable.tsx:516 +#: src/tables/machine/MachineListTable.tsx:558 msgid "Add machine" msgstr "" #: src/tables/machine/MachineListTable.tsx:561 -msgid "Machine detail" +#~ msgid "Machine detail" +#~ msgstr "Machine detail" + +#: src/tables/machine/MachineListTable.tsx:572 +msgid "Machine Detail" msgstr "" -#: src/tables/machine/MachineListTable.tsx:608 +#: src/tables/machine/MachineListTable.tsx:619 msgid "Driver" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:73 +#: src/tables/machine/MachineTypeTable.tsx:78 msgid "Builtin driver" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:89 +#: src/tables/machine/MachineTypeTable.tsx:96 +msgid "Not Found" +msgstr "" + +#: src/tables/machine/MachineTypeTable.tsx:99 msgid "Machine type not found." msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:97 -msgid "Machine type information" +#: src/tables/machine/MachineTypeTable.tsx:99 +#~ msgid "Machine type information" +#~ msgstr "Machine type information" + +#: src/tables/machine/MachineTypeTable.tsx:109 +msgid "Machine Type Information" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:110 -#: src/tables/machine/MachineTypeTable.tsx:217 +#: src/tables/machine/MachineTypeTable.tsx:124 +#: src/tables/machine/MachineTypeTable.tsx:238 msgid "Slug" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:118 -#: src/tables/machine/MachineTypeTable.tsx:238 +#: src/tables/machine/MachineTypeTable.tsx:135 +#: src/tables/machine/MachineTypeTable.tsx:259 msgid "Provider plugin" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:130 -#: src/tables/machine/MachineTypeTable.tsx:250 +#: src/tables/machine/MachineTypeTable.tsx:147 +#: src/tables/machine/MachineTypeTable.tsx:271 msgid "Provider file" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:135 -#: src/tables/machine/MachineTypeTable.tsx:255 -#: src/tables/plugin/PluginListTable.tsx:180 -#: src/tables/plugin/PluginListTable.tsx:568 -msgid "Builtin" +#: src/tables/machine/MachineTypeTable.tsx:148 +#~ msgid "Available drivers" +#~ msgstr "Available drivers" + +#: src/tables/machine/MachineTypeTable.tsx:162 +msgid "Available Drivers" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:146 -msgid "Available drivers" -msgstr "" - -#: src/tables/machine/MachineTypeTable.tsx:196 +#: src/tables/machine/MachineTypeTable.tsx:217 msgid "Machine driver not found." msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:204 +#: src/tables/machine/MachineTypeTable.tsx:225 msgid "Machine driver information" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:224 +#: src/tables/machine/MachineTypeTable.tsx:245 msgid "Machine type" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:327 +#: src/tables/machine/MachineTypeTable.tsx:338 +#~ msgid "Machine type detail" +#~ msgstr "Machine type detail" + +#: src/tables/machine/MachineTypeTable.tsx:348 msgid "Builtin type" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:336 -msgid "Machine type detail" +#: src/tables/machine/MachineTypeTable.tsx:348 +#~ msgid "Machine driver detail" +#~ msgstr "Machine driver detail" + +#: src/tables/machine/MachineTypeTable.tsx:357 +msgid "Machine Type Detail" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:346 -msgid "Machine driver detail" +#: src/tables/machine/MachineTypeTable.tsx:367 +msgid "Machine Driver Detail" msgstr "" #: src/tables/notifications/NotificationsTable.tsx:26 msgid "Age" msgstr "" +#: src/tables/notifications/NotificationsTable.tsx:36 +msgid "Notification" +msgstr "" + #: src/tables/notifications/NotificationsTable.tsx:40 #: src/tables/plugin/PluginErrorTable.tsx:37 +#: src/tables/settings/ErrorTable.tsx:50 msgid "Message" msgstr "" @@ -6451,33 +7615,32 @@ msgstr "" msgid "Show assembly parts" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:68 +#: src/tables/part/PartCategoryTable.tsx:48 +msgid "You are subscribed to notifications for this category" +msgstr "" + +#: src/tables/part/PartCategoryTable.tsx:80 #: src/tables/part/PartTable.tsx:196 msgid "Include Subcategories" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:69 +#: src/tables/part/PartCategoryTable.tsx:81 msgid "Include subcategories in results" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:74 +#: src/tables/part/PartCategoryTable.tsx:86 msgid "Show structural categories" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:78 -#: src/tables/part/PartTable.tsx:294 -msgid "Subscribed" -msgstr "" - -#: src/tables/part/PartCategoryTable.tsx:79 +#: src/tables/part/PartCategoryTable.tsx:91 msgid "Show categories to which the user is subscribed" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:86 +#: src/tables/part/PartCategoryTable.tsx:100 msgid "New Part Category" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:112 +#: src/tables/part/PartCategoryTable.tsx:129 msgid "Add Part Category" msgstr "" @@ -6523,11 +7686,6 @@ msgstr "" msgid "Part parameters cannot be edited, as the part is locked" msgstr "" -#: src/tables/part/PartParameterTable.tsx:212 -#: src/tables/stock/StockItemTable.tsx:335 -msgid "Include Variants" -msgstr "" - #: src/tables/part/PartParameterTemplateTable.tsx:31 msgid "Checkbox" msgstr "" @@ -6554,6 +7712,7 @@ msgid "Show templates with units" msgstr "" #: src/tables/part/PartParameterTemplateTable.tsx:85 +#: src/tables/part/PartParameterTemplateTable.tsx:141 msgid "Add Parameter Template" msgstr "" @@ -6566,23 +7725,19 @@ msgid "Delete Parameter Template" msgstr "" #: src/tables/part/PartParameterTemplateTable.tsx:141 -msgid "Add parameter template" -msgstr "" +#~ msgid "Add parameter template" +#~ msgstr "Add parameter template" -#: src/tables/part/PartPurchaseOrdersTable.tsx:77 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:162 +#: src/tables/part/PartPurchaseOrdersTable.tsx:78 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:168 msgid "Total Quantity" msgstr "" -#: src/tables/part/PartPurchaseOrdersTable.tsx:115 -msgid "Pending" -msgstr "" - -#: src/tables/part/PartPurchaseOrdersTable.tsx:116 +#: src/tables/part/PartPurchaseOrdersTable.tsx:122 msgid "Show pending orders" msgstr "" -#: src/tables/part/PartPurchaseOrdersTable.tsx:121 +#: src/tables/part/PartPurchaseOrdersTable.tsx:127 msgid "Show received items" msgstr "" @@ -6728,22 +7883,13 @@ msgstr "" msgid "Results" msgstr "" -#: src/tables/part/PartTestTemplateTable.tsx:76 -msgid "No Results" -msgstr "" - -#: src/tables/part/PartTestTemplateTable.tsx:106 -#: src/tables/stock/StockItemTestResultTable.tsx:365 -msgid "Required" -msgstr "" - #: src/tables/part/PartTestTemplateTable.tsx:107 msgid "Show required tests" msgstr "" #: src/tables/part/PartTestTemplateTable.tsx:111 -#: src/tables/settings/TemplateTable.tsx:167 -#: src/tables/settings/TemplateTable.tsx:283 +#: src/tables/settings/TemplateTable.tsx:247 +#: src/tables/settings/TemplateTable.tsx:363 msgid "Enabled" msgstr "" @@ -6784,7 +7930,7 @@ msgid "Show tests which have recorded results" msgstr "" #: src/tables/part/PartTestTemplateTable.tsx:154 -#: src/tables/part/PartTestTemplateTable.tsx:237 +#: src/tables/part/PartTestTemplateTable.tsx:238 msgid "Add Test Template" msgstr "" @@ -6808,7 +7954,7 @@ msgstr "" msgid "View Parent Part" msgstr "" -#: src/tables/part/PartTestTemplateTable.tsx:257 +#: src/tables/part/PartTestTemplateTable.tsx:258 msgid "Part templates cannot be edited, as the part is locked" msgstr "" @@ -6836,28 +7982,49 @@ msgstr "" msgid "Show trackable variants" msgstr "" -#: src/tables/part/RelatedPartTable.tsx:84 +#: src/tables/part/RelatedPartTable.tsx:86 +#: src/tables/part/RelatedPartTable.tsx:109 msgid "Add Related Part" msgstr "" -#: src/tables/part/RelatedPartTable.tsx:99 +#: src/tables/part/RelatedPartTable.tsx:101 msgid "Delete Related Part" msgstr "" -#: src/tables/part/RelatedPartTable.tsx:106 -msgid "Add related part" -msgstr "" +#: src/tables/part/RelatedPartTable.tsx:109 +#~ msgid "Add related part" +#~ msgstr "Add related part" #: src/tables/plugin/PluginErrorTable.tsx:29 msgid "Stage" msgstr "" -#: src/tables/plugin/PluginListTable.tsx:95 -msgid "Plugin with key {pluginKey} not found" +#: src/tables/plugin/PluginListTable.tsx:42 +msgid "Plugin is active" msgstr "" +#: src/tables/plugin/PluginListTable.tsx:48 +msgid "Plugin is inactive" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:55 +msgid "Plugin is not installed" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:76 +msgid "Plugin" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:95 +#~ msgid "Plugin with key {pluginKey} not found" +#~ msgstr "Plugin with key {pluginKey} not found" + #: src/tables/plugin/PluginListTable.tsx:97 -msgid "An error occurred while fetching plugin details" +#~ msgid "An error occurred while fetching plugin details" +#~ msgstr "An error occurred while fetching plugin details" + +#: src/tables/plugin/PluginListTable.tsx:109 +msgid "Description not available" msgstr "" #: src/tables/plugin/PluginListTable.tsx:113 @@ -6865,12 +8032,8 @@ msgstr "" #~ msgstr "Plugin with id {id} not found" #: src/tables/plugin/PluginListTable.tsx:122 -msgid "Plugin information" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:134 -msgid "Author" -msgstr "" +#~ msgid "Plugin information" +#~ msgstr "Plugin information" #: src/tables/plugin/PluginListTable.tsx:134 #~ msgid "Plugin Actions" @@ -6881,79 +8044,124 @@ msgstr "" #~ msgid "Edit plugin" #~ msgstr "Edit plugin" +#: src/tables/plugin/PluginListTable.tsx:144 +msgid "Confirm plugin activation" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:145 +msgid "Confirm plugin deactivation" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:150 +msgid "The selected plugin will be activated" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:151 +msgid "The selected plugin will be deactivated" +msgstr "" + #: src/tables/plugin/PluginListTable.tsx:152 #: src/tables/plugin/PluginListTable.tsx:153 #~ msgid "Reload" #~ msgstr "Reload" -#: src/tables/plugin/PluginListTable.tsx:154 -msgid "Plugin is not active" -msgstr "" - #: src/tables/plugin/PluginListTable.tsx:163 -msgid "Package information" -msgstr "" +#~ msgid "Package information" +#~ msgstr "Package information" #: src/tables/plugin/PluginListTable.tsx:169 -msgid "Package Name" +msgid "Deactivate" msgstr "" -#: src/tables/plugin/PluginListTable.tsx:175 -msgid "Installation Path" +#: src/tables/plugin/PluginListTable.tsx:183 +msgid "Activate" msgstr "" -#: src/tables/plugin/PluginListTable.tsx:185 -msgid "Package" +#: src/tables/plugin/PluginListTable.tsx:184 +msgid "Activate selected plugin" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:196 +msgid "Update selected plugin" msgstr "" #: src/tables/plugin/PluginListTable.tsx:197 -msgid "Plugin settings" -msgstr "" +#~ msgid "Plugin settings" +#~ msgstr "Plugin settings" #: src/tables/plugin/PluginListTable.tsx:214 -msgid "Plugin is active" +#: src/tables/stock/InstalledItemsTable.tsx:107 +msgid "Uninstall" msgstr "" -#: src/tables/plugin/PluginListTable.tsx:220 -msgid "Plugin is inactive" +#: src/tables/plugin/PluginListTable.tsx:215 +msgid "Uninstall selected plugin" msgstr "" -#: src/tables/plugin/PluginListTable.tsx:227 -msgid "Plugin is not installed" +#: src/tables/plugin/PluginListTable.tsx:233 +msgid "Delete selected plugin configuration" msgstr "" -#: src/tables/plugin/PluginListTable.tsx:253 -msgid "Plugin" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:287 -msgid "Description not available" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:319 -msgid "Confirm plugin activation" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:320 -msgid "Confirm plugin deactivation" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:325 -msgid "The selected plugin will be activated" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:326 -msgid "The selected plugin will be deactivated" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:334 +#: src/tables/plugin/PluginListTable.tsx:249 msgid "Activate Plugin" msgstr "" +#: src/tables/plugin/PluginListTable.tsx:270 +msgid "Install plugin" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:283 +msgid "Install" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:284 +msgid "Plugin installed successfully" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:289 +msgid "Uninstall Plugin" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:301 +msgid "Confirm plugin uninstall" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:304 +msgid "The selected plugin will be uninstalled." +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:308 +#~ msgid "This action cannot be undone." +#~ msgstr "This action cannot be undone." + +#: src/tables/plugin/PluginListTable.tsx:309 +msgid "Plugin uninstalled successfully" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:317 +msgid "Delete Plugin" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:318 +msgid "Deleting this plugin configuration will remove all associated settings and data. Are you sure you want to delete this plugin?" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:331 +msgid "Plugins reloaded" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:332 +msgid "Plugins were reloaded successfully" +msgstr "" + #: src/tables/plugin/PluginListTable.tsx:338 #~ msgid "Deactivate Plugin" #~ msgstr "Deactivate Plugin" +#: src/tables/plugin/PluginListTable.tsx:350 +msgid "Reload Plugins" +msgstr "" + #: src/tables/plugin/PluginListTable.tsx:354 #~ msgid "The following plugin will be activated" #~ msgstr "The following plugin will be activated" @@ -6962,16 +8170,16 @@ msgstr "" #~ msgid "The following plugin will be deactivated" #~ msgstr "The following plugin will be deactivated" -#: src/tables/plugin/PluginListTable.tsx:362 -msgid "Deactivate" +#: src/tables/plugin/PluginListTable.tsx:357 +msgid "Install Plugin" msgstr "" #: src/tables/plugin/PluginListTable.tsx:366 #~ msgid "Confirm" #~ msgstr "Confirm" -#: src/tables/plugin/PluginListTable.tsx:373 -msgid "Activate" +#: src/tables/plugin/PluginListTable.tsx:374 +msgid "Plugin Detail" msgstr "" #: src/tables/plugin/PluginListTable.tsx:376 @@ -6998,76 +8206,12 @@ msgstr "" #~ msgid "Error updating plugin" #~ msgstr "Error updating plugin" -#: src/tables/plugin/PluginListTable.tsx:406 -msgid "Uninstall" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:438 -msgid "Install plugin" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:451 -msgid "Install" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:452 -msgid "Plugin installed successfully" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:457 -msgid "Uninstall Plugin" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:469 -msgid "Confirm plugin uninstall" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:472 -msgid "The selected plugin will be uninstalled." -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:473 -msgid "This action cannot be undone." -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:477 -msgid "Plugin uninstalled successfully" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:484 -msgid "Delete Plugin" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:485 -msgid "Deleting this plugin configuration will remove all associated settings and data. Are you sure you want to delete this plugin?" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:498 -msgid "Plugins reloaded" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:499 -msgid "Plugins were reloaded successfully" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:515 -msgid "Reload Plugins" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:524 -msgid "Install Plugin" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:544 -msgid "Plugin Detail" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:573 +#: src/tables/plugin/PluginListTable.tsx:411 msgid "Sample" msgstr "" -#: src/tables/plugin/PluginListTable.tsx:578 -#: src/tables/stock/StockItemTable.tsx:340 +#: src/tables/plugin/PluginListTable.tsx:416 +#: src/tables/stock/StockItemTable.tsx:344 msgid "Installed" msgstr "" @@ -7116,82 +8260,78 @@ msgstr "" #~ msgid "Are you sure you want to remove this manufacturer part?" #~ msgstr "Are you sure you want to remove this manufacturer part?" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:102 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:339 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:103 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:356 msgid "Import Line Items" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:135 -msgid "Part Description" -msgstr "" - -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:201 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:207 msgid "Supplier Code" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:208 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:214 msgid "Supplier Link" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:215 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:220 msgid "Manufacturer Code" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:229 -msgid "Destination" +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:248 +msgid "Show line items which have been received" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:300 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:316 msgid "Receive line item" msgstr "" #: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:344 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:142 -#: src/tables/sales/SalesOrderLineItemTable.tsx:240 -msgid "Add line item" -msgstr "" +#: src/tables/sales/ReturnOrderLineItemTable.tsx:160 +#: src/tables/sales/SalesOrderLineItemTable.tsx:258 +#~ msgid "Add line item" +#~ msgstr "Add line item" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:354 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:373 msgid "Receive items" msgstr "" -#: src/tables/purchasing/SupplierPartTable.tsx:93 +#: src/tables/purchasing/SupplierPartTable.tsx:95 msgid "MPN" msgstr "" -#: src/tables/purchasing/SupplierPartTable.tsx:122 +#: src/tables/purchasing/SupplierPartTable.tsx:124 msgid "Base units" msgstr "" -#: src/tables/purchasing/SupplierPartTable.tsx:170 +#: src/tables/purchasing/SupplierPartTable.tsx:172 msgid "Supplier part created" msgstr "" -#: src/tables/purchasing/SupplierPartTable.tsx:176 +#: src/tables/purchasing/SupplierPartTable.tsx:179 msgid "Add supplier part" msgstr "" -#: src/tables/purchasing/SupplierPartTable.tsx:188 +#: src/tables/purchasing/SupplierPartTable.tsx:191 msgid "Show active supplier parts" msgstr "" -#: src/tables/purchasing/SupplierPartTable.tsx:192 -msgid "Active Part" -msgstr "" - -#: src/tables/purchasing/SupplierPartTable.tsx:193 -msgid "Show active internal parts" -msgstr "" - #: src/tables/purchasing/SupplierPartTable.tsx:193 #~ msgid "Supplier part updated" #~ msgstr "Supplier part updated" -#: src/tables/purchasing/SupplierPartTable.tsx:197 +#: src/tables/purchasing/SupplierPartTable.tsx:195 +msgid "Active Part" +msgstr "" + +#: src/tables/purchasing/SupplierPartTable.tsx:196 +msgid "Show active internal parts" +msgstr "" + +#: src/tables/purchasing/SupplierPartTable.tsx:200 msgid "Active Supplier" msgstr "" -#: src/tables/purchasing/SupplierPartTable.tsx:198 +#: src/tables/purchasing/SupplierPartTable.tsx:201 msgid "Show active suppliers" msgstr "" @@ -7203,99 +8343,187 @@ msgstr "" #~ msgid "Are you sure you want to remove this supplier part?" #~ msgstr "Are you sure you want to remove this supplier part?" -#: src/tables/sales/ReturnOrderLineItemTable.tsx:114 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:139 msgid "Received Date" msgstr "" -#: src/tables/sales/ReturnOrderLineItemTable.tsx:128 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:153 msgid "Show items which have been received" msgstr "" -#: src/tables/sales/ReturnOrderLineItemTable.tsx:133 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:158 msgid "Filter by line item status" msgstr "" -#: src/tables/sales/ReturnOrderLineItemTable.tsx:158 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:176 +msgid "Receive selected items" +msgstr "" + +#: src/tables/sales/ReturnOrderLineItemTable.tsx:205 msgid "Receive Item" msgstr "" -#: src/tables/sales/SalesOrderLineItemTable.tsx:262 -msgid "Allocate stock" +#: src/tables/sales/SalesOrderAllocationTable.tsx:60 +msgid "Show outstanding allocations" msgstr "" -#: src/tables/sales/SalesOrderLineItemTable.tsx:272 +#: src/tables/sales/SalesOrderAllocationTable.tsx:168 +#: src/tables/sales/SalesOrderAllocationTable.tsx:190 +msgid "Edit Allocation" +msgstr "" + +#: src/tables/sales/SalesOrderAllocationTable.tsx:175 +#: src/tables/sales/SalesOrderAllocationTable.tsx:197 +msgid "Delete Allocation" +msgstr "" + +#: src/tables/sales/SalesOrderLineItemTable.tsx:244 +msgid "Allocate Serial Numbers" +msgstr "" + +#: src/tables/sales/SalesOrderLineItemTable.tsx:277 +msgid "Show lines which are fully allocated" +msgstr "" + +#: src/tables/sales/SalesOrderLineItemTable.tsx:280 +#~ msgid "Allocate stock" +#~ msgstr "Allocate stock" + +#: src/tables/sales/SalesOrderLineItemTable.tsx:282 +msgid "Show lines which are completed" +msgstr "" + +#: src/tables/sales/SalesOrderLineItemTable.tsx:291 +#~ msgid "Allocate Serials" +#~ msgstr "Allocate Serials" + +#: src/tables/sales/SalesOrderLineItemTable.tsx:340 +msgid "Allocate serials" +msgstr "" + +#: src/tables/sales/SalesOrderLineItemTable.tsx:356 msgid "Build stock" msgstr "" -#: src/tables/sales/SalesOrderLineItemTable.tsx:289 -#: src/tables/stock/StockItemTable.tsx:507 +#: src/tables/sales/SalesOrderLineItemTable.tsx:373 +#: src/tables/stock/StockItemTable.tsx:512 msgid "Order stock" msgstr "" -#: src/tables/sales/SalesOrderShipmentTable.tsx:40 +#: src/tables/sales/SalesOrderShipmentTable.tsx:51 +#~ msgid "Delete Shipment" +#~ msgstr "Delete Shipment" + +#: src/tables/sales/SalesOrderShipmentTable.tsx:57 msgid "Create Shipment" msgstr "" -#: src/tables/sales/SalesOrderShipmentTable.tsx:50 -msgid "Delete Shipment" -msgstr "" - -#: src/tables/sales/SalesOrderShipmentTable.tsx:58 -msgid "Edit Shipment" -msgstr "" - -#: src/tables/sales/SalesOrderShipmentTable.tsx:66 -msgid "Shipment Reference" -msgstr "" - -#: src/tables/sales/SalesOrderShipmentTable.tsx:71 +#: src/tables/sales/SalesOrderShipmentTable.tsx:104 msgid "Items" msgstr "" -#: src/tables/sales/SalesOrderShipmentTable.tsx:83 -msgid "Delivery Date" +#: src/tables/sales/SalesOrderShipmentTable.tsx:139 +msgid "View Shipment" msgstr "" -#: src/tables/sales/SalesOrderShipmentTable.tsx:107 -msgid "Complete Shipment" +#: src/tables/sales/SalesOrderShipmentTable.tsx:161 +msgid "Edit shipment" msgstr "" -#: src/tables/sales/SalesOrderShipmentTable.tsx:133 +#: src/tables/sales/SalesOrderShipmentTable.tsx:169 +msgid "Cancel shipment" +msgstr "" + +#: src/tables/sales/SalesOrderShipmentTable.tsx:184 msgid "Add shipment" msgstr "" -#: src/tables/sales/SalesOrderShipmentTable.tsx:146 -msgid "Shipped" -msgstr "" - -#: src/tables/sales/SalesOrderShipmentTable.tsx:147 +#: src/tables/sales/SalesOrderShipmentTable.tsx:198 msgid "Show shipments which have been shipped" msgstr "" -#: src/tables/sales/SalesOrderShipmentTable.tsx:151 -msgid "Delivered" -msgstr "" - -#: src/tables/sales/SalesOrderShipmentTable.tsx:152 +#: src/tables/sales/SalesOrderShipmentTable.tsx:203 msgid "Show shipments which have been delivered" msgstr "" -#: src/tables/settings/CurrencyTable.tsx:28 -msgid "Rate" +#: src/tables/settings/BarcodeScanHistoryTable.tsx:61 +msgid "Barcode Information" msgstr "" -#: src/tables/settings/CurrencyTable.tsx:40 -msgid "Exchange rates updated" +#: src/tables/settings/BarcodeScanHistoryTable.tsx:76 +#: src/tables/settings/ErrorTable.tsx:59 +msgid "Timestamp" msgstr "" -#: src/tables/settings/CurrencyTable.tsx:46 -msgid "Exchange rate update error" +#: src/tables/settings/BarcodeScanHistoryTable.tsx:86 +msgid "Endpoint" msgstr "" -#: src/tables/settings/CurrencyTable.tsx:57 -msgid "Refresh currency exchange rates" +#: src/tables/settings/BarcodeScanHistoryTable.tsx:90 +#: src/tables/settings/BarcodeScanHistoryTable.tsx:217 +#: src/tables/stock/StockItemTestResultTable.tsx:174 +msgid "Result" msgstr "" +#: src/tables/settings/BarcodeScanHistoryTable.tsx:98 +msgid "Context" +msgstr "" + +#: src/tables/settings/BarcodeScanHistoryTable.tsx:119 +msgid "Response" +msgstr "" + +#: src/tables/settings/BarcodeScanHistoryTable.tsx:213 +#: src/tables/settings/ImportSessionTable.tsx:121 +#: src/tables/stock/StockTrackingTable.tsx:183 +msgid "Filter by user" +msgstr "" + +#: src/tables/settings/BarcodeScanHistoryTable.tsx:218 +msgid "Filter by result" +msgstr "" + +#: src/tables/settings/BarcodeScanHistoryTable.tsx:232 +msgid "Delete Barcode Scan Record" +msgstr "" + +#: src/tables/settings/BarcodeScanHistoryTable.tsx:258 +msgid "Barcode Scan Details" +msgstr "" + +#: src/tables/settings/BarcodeScanHistoryTable.tsx:268 +msgid "Logging Disabled" +msgstr "" + +#: src/tables/settings/BarcodeScanHistoryTable.tsx:270 +msgid "Barcode logging is not enabled" +msgstr "" + +#: src/tables/settings/CustomStateTable.tsx:36 +msgid "Display Name" +msgstr "" + +#: src/tables/settings/CustomStateTable.tsx:52 +msgid "Model" +msgstr "" + +#: src/tables/settings/CustomStateTable.tsx:65 +#: src/tables/settings/CustomStateTable.tsx:115 +msgid "Add State" +msgstr "" + +#: src/tables/settings/CustomStateTable.tsx:77 +msgid "Edit State" +msgstr "" + +#: src/tables/settings/CustomStateTable.tsx:85 +msgid "Delete State" +msgstr "" + +#: src/tables/settings/CustomStateTable.tsx:115 +#~ msgid "Add state" +#~ msgstr "Add state" + #: src/tables/settings/CustomUnitsTable.tsx:50 msgid "Add Custom Unit" msgstr "" @@ -7312,59 +8540,71 @@ msgstr "" msgid "Add custom unit" msgstr "" -#: src/tables/settings/ErrorTable.tsx:31 -msgid "When" -msgstr "" - -#: src/tables/settings/ErrorTable.tsx:41 -msgid "Error Information" -msgstr "" - #: src/tables/settings/ErrorTable.tsx:51 #~ msgid "Delete error report" #~ msgstr "Delete error report" -#: src/tables/settings/ErrorTable.tsx:53 +#: src/tables/settings/ErrorTable.tsx:67 +msgid "Traceback" +msgstr "" + +#: src/tables/settings/ErrorTable.tsx:103 +msgid "When" +msgstr "" + +#: src/tables/settings/ErrorTable.tsx:113 +msgid "Error Information" +msgstr "" + +#: src/tables/settings/ErrorTable.tsx:123 msgid "Delete Error Report" msgstr "" -#: src/tables/settings/ErrorTable.tsx:55 +#: src/tables/settings/ErrorTable.tsx:125 msgid "Are you sure you want to delete this error report?" msgstr "" -#: src/tables/settings/ErrorTable.tsx:57 +#: src/tables/settings/ErrorTable.tsx:127 msgid "Error report deleted" msgstr "" -#: src/tables/settings/ErrorTable.tsx:79 -#: src/tables/settings/FailedTasksTable.tsx:59 +#: src/tables/settings/ErrorTable.tsx:146 +#: src/tables/settings/FailedTasksTable.tsx:65 msgid "Error Details" msgstr "" -#: src/tables/settings/FailedTasksTable.tsx:26 -#: src/tables/settings/PendingTasksTable.tsx:19 +#: src/tables/settings/FailedTasksTable.tsx:32 +#: src/tables/settings/PendingTasksTable.tsx:23 #: src/tables/settings/ScheduledTasksTable.tsx:19 msgid "Task" msgstr "" -#: src/tables/settings/FailedTasksTable.tsx:32 -#: src/tables/settings/PendingTasksTable.tsx:24 +#: src/tables/settings/FailedTasksTable.tsx:38 +#: src/tables/settings/PendingTasksTable.tsx:28 msgid "Task ID" msgstr "" -#: src/tables/settings/FailedTasksTable.tsx:36 -#: src/tables/stock/StockItemTestResultTable.tsx:211 +#: src/tables/settings/FailedTasksTable.tsx:42 +#: src/tables/stock/StockItemTestResultTable.tsx:218 msgid "Started" msgstr "" -#: src/tables/settings/FailedTasksTable.tsx:42 +#: src/tables/settings/FailedTasksTable.tsx:48 msgid "Stopped" msgstr "" -#: src/tables/settings/FailedTasksTable.tsx:48 +#: src/tables/settings/FailedTasksTable.tsx:54 msgid "Attempts" msgstr "" +#: src/tables/settings/FailedTasksTable.tsx:92 +msgid "No Information" +msgstr "" + +#: src/tables/settings/FailedTasksTable.tsx:93 +msgid "No error details are available for this task" +msgstr "" + #: src/tables/settings/GroupTable.tsx:90 msgid "Group with id {id} not found" msgstr "" @@ -7398,42 +8638,34 @@ msgstr "" msgid "Edit group" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:38 +#: src/tables/settings/ImportSessionTable.tsx:37 msgid "Delete Import Session" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:44 +#: src/tables/settings/ImportSessionTable.tsx:43 #: src/tables/settings/ImportSessionTable.tsx:131 msgid "Create Import Session" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:69 +#: src/tables/settings/ImportSessionTable.tsx:68 msgid "Uploaded" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:79 -msgid "Imported Rows" -msgstr "" - -#: src/tables/settings/ImportSessionTable.tsx:109 -#: src/tables/settings/TemplateTable.tsx:289 +#: src/tables/settings/ImportSessionTable.tsx:108 +#: src/tables/settings/TemplateTable.tsx:369 msgid "Model Type" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:110 -#: src/tables/settings/TemplateTable.tsx:290 +#: src/tables/settings/ImportSessionTable.tsx:109 +#: src/tables/settings/TemplateTable.tsx:370 msgid "Filter by target model type" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:116 +#: src/tables/settings/ImportSessionTable.tsx:115 msgid "Filter by import session status" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:122 -msgid "Filter by user" -msgstr "" - -#: src/tables/settings/PendingTasksTable.tsx:38 +#: src/tables/settings/PendingTasksTable.tsx:42 msgid "Arguments" msgstr "" @@ -7461,12 +8693,16 @@ msgstr "" msgid "Next Run" msgstr "" -#: src/tables/settings/TemplateTable.tsx:85 -msgid "Template not found" +#: src/tables/settings/StocktakeReportTable.tsx:28 +msgid "Report" msgstr "" -#: src/tables/settings/TemplateTable.tsx:87 -msgid "An error occurred while fetching template details" +#: src/tables/settings/StocktakeReportTable.tsx:35 +msgid "Part Count" +msgstr "" + +#: src/tables/settings/StocktakeReportTable.tsx:58 +msgid "Delete Report" msgstr "" #: src/tables/settings/TemplateTable.tsx:120 @@ -7481,21 +8717,12 @@ msgstr "" #~ msgid "actions" #~ msgstr "actions" -#: src/tables/settings/TemplateTable.tsx:177 -msgid "Modify" +#: src/tables/settings/TemplateTable.tsx:162 +msgid "Template not found" msgstr "" -#: src/tables/settings/TemplateTable.tsx:178 -msgid "Modify template file" -msgstr "" - -#: src/tables/settings/TemplateTable.tsx:234 -#: src/tables/settings/TemplateTable.tsx:302 -msgid "Edit Template" -msgstr "" - -#: src/tables/settings/TemplateTable.tsx:242 -msgid "Delete template" +#: src/tables/settings/TemplateTable.tsx:164 +msgid "An error occurred while fetching template details" msgstr "" #: src/tables/settings/TemplateTable.tsx:243 @@ -7506,103 +8733,137 @@ msgstr "" #~ msgid "Create new" #~ msgstr "Create new" -#: src/tables/settings/TemplateTable.tsx:248 +#: src/tables/settings/TemplateTable.tsx:257 +msgid "Modify" +msgstr "" + +#: src/tables/settings/TemplateTable.tsx:258 +msgid "Modify template file" +msgstr "" + +#: src/tables/settings/TemplateTable.tsx:314 +#: src/tables/settings/TemplateTable.tsx:382 +msgid "Edit Template" +msgstr "" + +#: src/tables/settings/TemplateTable.tsx:322 +msgid "Delete template" +msgstr "" + +#: src/tables/settings/TemplateTable.tsx:328 msgid "Add Template" msgstr "" -#: src/tables/settings/TemplateTable.tsx:261 +#: src/tables/settings/TemplateTable.tsx:341 msgid "Add template" msgstr "" -#: src/tables/settings/TemplateTable.tsx:284 +#: src/tables/settings/TemplateTable.tsx:364 msgid "Filter by enabled status" msgstr "" -#: src/tables/settings/UserTable.tsx:82 +#: src/tables/settings/UserTable.tsx:81 msgid "User with id {id} not found" msgstr "" -#: src/tables/settings/UserTable.tsx:84 +#: src/tables/settings/UserTable.tsx:83 msgid "An error occurred while fetching user details" msgstr "" -#: src/tables/settings/UserTable.tsx:102 +#: src/tables/settings/UserTable.tsx:101 msgid "Is Active" msgstr "" -#: src/tables/settings/UserTable.tsx:103 +#: src/tables/settings/UserTable.tsx:102 msgid "Designates whether this user should be treated as active. Unselect this instead of deleting accounts." msgstr "" -#: src/tables/settings/UserTable.tsx:107 +#: src/tables/settings/UserTable.tsx:106 msgid "Is Staff" msgstr "" -#: src/tables/settings/UserTable.tsx:108 +#: src/tables/settings/UserTable.tsx:107 msgid "Designates whether the user can log into the django admin site." msgstr "" -#: src/tables/settings/UserTable.tsx:112 +#: src/tables/settings/UserTable.tsx:111 msgid "Is Superuser" msgstr "" -#: src/tables/settings/UserTable.tsx:113 +#: src/tables/settings/UserTable.tsx:112 msgid "Designates that this user has all permissions without explicitly assigning them." msgstr "" -#: src/tables/settings/UserTable.tsx:123 +#: src/tables/settings/UserTable.tsx:122 msgid "You cannot edit the rights for the currently logged-in user." msgstr "" -#: src/tables/settings/UserTable.tsx:154 +#: src/tables/settings/UserTable.tsx:153 msgid "No groups" msgstr "" -#: src/tables/settings/UserTable.tsx:245 +#: src/tables/settings/UserTable.tsx:244 msgid "Delete user" msgstr "" -#: src/tables/settings/UserTable.tsx:246 +#: src/tables/settings/UserTable.tsx:245 msgid "User deleted" msgstr "" -#: src/tables/settings/UserTable.tsx:248 +#: src/tables/settings/UserTable.tsx:247 msgid "Are you sure you want to delete this user?" msgstr "" -#: src/tables/settings/UserTable.tsx:254 -#: src/tables/settings/UserTable.tsx:272 +#: src/tables/settings/UserTable.tsx:253 +#: src/tables/settings/UserTable.tsx:271 msgid "Add user" msgstr "" -#: src/tables/settings/UserTable.tsx:262 +#: src/tables/settings/UserTable.tsx:261 msgid "Added user" msgstr "" -#: src/tables/settings/UserTable.tsx:285 +#: src/tables/settings/UserTable.tsx:284 msgid "Show active users" msgstr "" -#: src/tables/settings/UserTable.tsx:289 +#: src/tables/settings/UserTable.tsx:288 msgid "Staff" msgstr "" -#: src/tables/settings/UserTable.tsx:290 +#: src/tables/settings/UserTable.tsx:289 msgid "Show staff users" msgstr "" #: src/tables/settings/UserTable.tsx:294 -msgid "Superuser" -msgstr "" - -#: src/tables/settings/UserTable.tsx:295 msgid "Show superusers" msgstr "" -#: src/tables/settings/UserTable.tsx:305 +#: src/tables/settings/UserTable.tsx:304 msgid "Edit user" msgstr "" +#: src/tables/stock/InstalledItemsTable.tsx:37 +#: src/tables/stock/InstalledItemsTable.tsx:90 +msgid "Install Item" +msgstr "" + +#: src/tables/stock/InstalledItemsTable.tsx:39 +msgid "Item installed" +msgstr "" + +#: src/tables/stock/InstalledItemsTable.tsx:50 +msgid "Uninstall Item" +msgstr "" + +#: src/tables/stock/InstalledItemsTable.tsx:52 +msgid "Item uninstalled" +msgstr "" + +#: src/tables/stock/InstalledItemsTable.tsx:108 +msgid "Uninstall stock item" +msgstr "" + #: src/tables/stock/LocationTypesTable.tsx:39 #: src/tables/stock/LocationTypesTable.tsx:109 msgid "Add Location Type" @@ -7620,276 +8881,272 @@ msgstr "" msgid "Icon" msgstr "" -#: src/tables/stock/StockItemTable.tsx:101 +#: src/tables/stock/StockItemTable.tsx:90 msgid "This stock item is in production" msgstr "" -#: src/tables/stock/StockItemTable.tsx:110 +#: src/tables/stock/StockItemTable.tsx:97 msgid "This stock item has been assigned to a sales order" msgstr "" -#: src/tables/stock/StockItemTable.tsx:119 +#: src/tables/stock/StockItemTable.tsx:104 msgid "This stock item has been assigned to a customer" msgstr "" -#: src/tables/stock/StockItemTable.tsx:128 +#: src/tables/stock/StockItemTable.tsx:111 msgid "This stock item is installed in another stock item" msgstr "" -#: src/tables/stock/StockItemTable.tsx:137 +#: src/tables/stock/StockItemTable.tsx:118 msgid "This stock item has been consumed by a build order" msgstr "" -#: src/tables/stock/StockItemTable.tsx:146 +#: src/tables/stock/StockItemTable.tsx:125 +msgid "This stock item is unavailable" +msgstr "" + +#: src/tables/stock/StockItemTable.tsx:134 msgid "This stock item has expired" msgstr "" -#: src/tables/stock/StockItemTable.tsx:150 +#: src/tables/stock/StockItemTable.tsx:138 msgid "This stock item is stale" msgstr "" -#: src/tables/stock/StockItemTable.tsx:161 +#: src/tables/stock/StockItemTable.tsx:150 msgid "This stock item is fully allocated" msgstr "" -#: src/tables/stock/StockItemTable.tsx:168 +#: src/tables/stock/StockItemTable.tsx:157 msgid "This stock item is partially allocated" msgstr "" -#: src/tables/stock/StockItemTable.tsx:196 +#: src/tables/stock/StockItemTable.tsx:185 msgid "This stock item has been depleted" msgstr "" -#: src/tables/stock/StockItemTable.tsx:232 +#: src/tables/stock/StockItemTable.tsx:280 msgid "Stocktake Date" msgstr "" -#: src/tables/stock/StockItemTable.tsx:236 -msgid "Expiry Date" -msgstr "" - -#: src/tables/stock/StockItemTable.tsx:260 -msgid "Stock Value" -msgstr "" - -#: src/tables/stock/StockItemTable.tsx:290 +#: src/tables/stock/StockItemTable.tsx:294 msgid "Show stock for active parts" msgstr "" -#: src/tables/stock/StockItemTable.tsx:295 +#: src/tables/stock/StockItemTable.tsx:299 msgid "Filter by stock status" msgstr "" #: src/tables/stock/StockItemTable.tsx:301 -msgid "Show stock for assmebled parts" +#~ msgid "Show stock for assmebled parts" +#~ msgstr "Show stock for assmebled parts" + +#: src/tables/stock/StockItemTable.tsx:305 +msgid "Show stock for assembled parts" msgstr "" -#: src/tables/stock/StockItemTable.tsx:306 +#: src/tables/stock/StockItemTable.tsx:310 msgid "Show items which have been allocated" msgstr "" -#: src/tables/stock/StockItemTable.tsx:311 +#: src/tables/stock/StockItemTable.tsx:315 msgid "Show items which are available" msgstr "" -#: src/tables/stock/StockItemTable.tsx:315 +#: src/tables/stock/StockItemTable.tsx:319 #: src/tables/stock/StockLocationTable.tsx:44 msgid "Include Sublocations" msgstr "" -#: src/tables/stock/StockItemTable.tsx:316 +#: src/tables/stock/StockItemTable.tsx:320 msgid "Include stock in sublocations" msgstr "" -#: src/tables/stock/StockItemTable.tsx:320 +#: src/tables/stock/StockItemTable.tsx:324 msgid "Depleted" msgstr "" -#: src/tables/stock/StockItemTable.tsx:321 +#: src/tables/stock/StockItemTable.tsx:325 msgid "Show depleted stock items" msgstr "" -#: src/tables/stock/StockItemTable.tsx:326 +#: src/tables/stock/StockItemTable.tsx:330 msgid "Show items which are in stock" msgstr "" -#: src/tables/stock/StockItemTable.tsx:331 +#: src/tables/stock/StockItemTable.tsx:335 msgid "Show items which are in production" msgstr "" -#: src/tables/stock/StockItemTable.tsx:336 +#: src/tables/stock/StockItemTable.tsx:340 msgid "Include stock items for variant parts" msgstr "" -#: src/tables/stock/StockItemTable.tsx:341 +#: src/tables/stock/StockItemTable.tsx:345 msgid "Show stock items which are installed in other items" msgstr "" -#: src/tables/stock/StockItemTable.tsx:345 +#: src/tables/stock/StockItemTable.tsx:349 msgid "Sent to Customer" msgstr "" -#: src/tables/stock/StockItemTable.tsx:346 +#: src/tables/stock/StockItemTable.tsx:350 msgid "Show items which have been sent to a customer" msgstr "" -#: src/tables/stock/StockItemTable.tsx:350 +#: src/tables/stock/StockItemTable.tsx:354 msgid "Is Serialized" msgstr "" -#: src/tables/stock/StockItemTable.tsx:351 +#: src/tables/stock/StockItemTable.tsx:355 msgid "Show items which have a serial number" msgstr "" -#: src/tables/stock/StockItemTable.tsx:358 +#: src/tables/stock/StockItemTable.tsx:362 msgid "Has Batch Code" msgstr "" -#: src/tables/stock/StockItemTable.tsx:359 +#: src/tables/stock/StockItemTable.tsx:363 msgid "Show items which have a batch code" msgstr "" -#: src/tables/stock/StockItemTable.tsx:365 +#: src/tables/stock/StockItemTable.tsx:369 msgid "Show tracked items" msgstr "" -#: src/tables/stock/StockItemTable.tsx:369 +#: src/tables/stock/StockItemTable.tsx:373 msgid "Has Purchase Price" msgstr "" -#: src/tables/stock/StockItemTable.tsx:370 +#: src/tables/stock/StockItemTable.tsx:374 msgid "Show items which have a purchase price" msgstr "" -#: src/tables/stock/StockItemTable.tsx:378 +#: src/tables/stock/StockItemTable.tsx:382 msgid "External Location" msgstr "" -#: src/tables/stock/StockItemTable.tsx:379 +#: src/tables/stock/StockItemTable.tsx:383 msgid "Show items in an external location" msgstr "" -#: src/tables/stock/StockItemTable.tsx:451 +#: src/tables/stock/StockItemTable.tsx:456 msgid "Add a new stock item" msgstr "" -#: src/tables/stock/StockItemTable.tsx:460 +#: src/tables/stock/StockItemTable.tsx:465 msgid "Remove some quantity from a stock item" msgstr "" -#: src/tables/stock/StockItemTable.tsx:482 +#: src/tables/stock/StockItemTable.tsx:487 msgid "Move Stock items to new locations" msgstr "" -#: src/tables/stock/StockItemTable.tsx:489 +#: src/tables/stock/StockItemTable.tsx:494 msgid "Change stock status" msgstr "" -#: src/tables/stock/StockItemTable.tsx:491 +#: src/tables/stock/StockItemTable.tsx:496 msgid "Change the status of stock items" msgstr "" -#: src/tables/stock/StockItemTable.tsx:498 +#: src/tables/stock/StockItemTable.tsx:503 msgid "Merge stock" msgstr "" -#: src/tables/stock/StockItemTable.tsx:500 +#: src/tables/stock/StockItemTable.tsx:505 msgid "Merge stock items" msgstr "" -#: src/tables/stock/StockItemTable.tsx:509 -#: src/tables/stock/StockItemTable.tsx:516 +#: src/tables/stock/StockItemTable.tsx:514 +#: src/tables/stock/StockItemTable.tsx:521 msgid "Order new stock" msgstr "" -#: src/tables/stock/StockItemTable.tsx:514 +#: src/tables/stock/StockItemTable.tsx:519 msgid "Assign to customer" msgstr "" -#: src/tables/stock/StockItemTable.tsx:523 +#: src/tables/stock/StockItemTable.tsx:528 msgid "Delete stock" msgstr "" -#: src/tables/stock/StockItemTable.tsx:525 -msgid "Delete stock items" -msgstr "" +#: src/tables/stock/StockItemTable.tsx:528 +#~ msgid "Delete stock items" +#~ msgstr "Delete stock items" -#: src/tables/stock/StockItemTestResultTable.tsx:131 +#: src/tables/stock/StockItemTestResultTable.tsx:137 msgid "Test" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:157 +#: src/tables/stock/StockItemTestResultTable.tsx:163 msgid "Test result for installed stock item" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:168 -msgid "Result" -msgstr "" - -#: src/tables/stock/StockItemTestResultTable.tsx:190 +#: src/tables/stock/StockItemTestResultTable.tsx:196 msgid "Attachment" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:206 +#: src/tables/stock/StockItemTestResultTable.tsx:212 msgid "Test station" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:226 +#: src/tables/stock/StockItemTestResultTable.tsx:234 msgid "Finished" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:268 -#: src/tables/stock/StockItemTestResultTable.tsx:339 +#: src/tables/stock/StockItemTestResultTable.tsx:286 +#: src/tables/stock/StockItemTestResultTable.tsx:357 msgid "Edit Test Result" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:270 +#: src/tables/stock/StockItemTestResultTable.tsx:288 msgid "Test result updated" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:276 -#: src/tables/stock/StockItemTestResultTable.tsx:348 +#: src/tables/stock/StockItemTestResultTable.tsx:294 +#: src/tables/stock/StockItemTestResultTable.tsx:366 msgid "Delete Test Result" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:278 +#: src/tables/stock/StockItemTestResultTable.tsx:296 msgid "Test result deleted" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:292 +#: src/tables/stock/StockItemTestResultTable.tsx:310 msgid "Test Passed" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:293 +#: src/tables/stock/StockItemTestResultTable.tsx:311 msgid "Test result has been recorded" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:300 +#: src/tables/stock/StockItemTestResultTable.tsx:318 msgid "Failed to record test result" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:317 +#: src/tables/stock/StockItemTestResultTable.tsx:335 msgid "Pass Test" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:366 +#: src/tables/stock/StockItemTestResultTable.tsx:384 msgid "Show results for required tests" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:370 +#: src/tables/stock/StockItemTestResultTable.tsx:388 msgid "Include Installed" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:371 +#: src/tables/stock/StockItemTestResultTable.tsx:389 msgid "Show results for installed stock items" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:375 -#: src/tables/stock/TestStatisticsTable.tsx:74 +#: src/tables/stock/StockItemTestResultTable.tsx:393 +#: src/tables/stock/TestStatisticsTable.tsx:62 msgid "Passed" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:376 +#: src/tables/stock/StockItemTestResultTable.tsx:394 msgid "Show only passed tests" msgstr "" @@ -7922,28 +9179,32 @@ msgid "Filter by location type" msgstr "" #: src/tables/stock/StockLocationTable.tsx:107 -#: src/tables/stock/StockLocationTable.tsx:133 +#: src/tables/stock/StockLocationTable.tsx:134 msgid "Add Stock Location" msgstr "" -#: src/tables/stock/StockTrackingTable.tsx:64 +#: src/tables/stock/StockTrackingTable.tsx:68 msgid "Added" msgstr "" -#: src/tables/stock/StockTrackingTable.tsx:69 +#: src/tables/stock/StockTrackingTable.tsx:73 msgid "Removed" msgstr "" #: src/tables/stock/StockTrackingTable.tsx:198 +msgid "Details" +msgstr "" + +#: src/tables/stock/StockTrackingTable.tsx:213 msgid "No user information" msgstr "" -#: src/tables/stock/TestStatisticsTable.tsx:46 -#: src/tables/stock/TestStatisticsTable.tsx:76 +#: src/tables/stock/TestStatisticsTable.tsx:34 +#: src/tables/stock/TestStatisticsTable.tsx:64 msgid "Total" msgstr "" -#: src/tables/stock/TestStatisticsTable.tsx:75 +#: src/tables/stock/TestStatisticsTable.tsx:63 msgid "Failed" msgstr "" diff --git a/src/frontend/src/locales/fi/messages.po b/src/frontend/src/locales/fi/messages.po index 721fc40221..83bdab9b4e 100644 --- a/src/frontend/src/locales/fi/messages.po +++ b/src/frontend/src/locales/fi/messages.po @@ -8,15 +8,15 @@ msgstr "" "Language: fi\n" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"PO-Revision-Date: 2024-08-20 19:50\n" +"PO-Revision-Date: 2024-11-04 03:14\n" "Last-Translator: \n" "Language-Team: Finnish\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Crowdin-Project: inventree\n" "X-Crowdin-Project-ID: 452300\n" "X-Crowdin-Language: fi\n" -"X-Crowdin-File: /[inventree.InvenTree] l10/src/frontend/src/locales/en/messages.po\n" -"X-Crowdin-File-ID: 205\n" +"X-Crowdin-File: /src/frontend/src/locales/en/messages.po\n" +"X-Crowdin-File-ID: 252\n" #: src/components/Boundary.tsx:12 msgid "Error rendering component" @@ -27,8 +27,8 @@ msgid "An error occurred while rendering this component. Refer to the console fo msgstr "" #: src/components/DashboardItemProxy.tsx:34 -msgid "Title" -msgstr "" +#~ msgid "Title" +#~ msgstr "Title" #: src/components/buttons/AdminButton.tsx:80 msgid "Open in admin interface" @@ -38,82 +38,99 @@ msgstr "" #~ msgid "Copy to clipboard" #~ msgstr "Copy to clipboard" -#: src/components/buttons/CopyButton.tsx:24 +#: src/components/buttons/CopyButton.tsx:29 msgid "Copied" msgstr "" -#: src/components/buttons/CopyButton.tsx:24 +#: src/components/buttons/CopyButton.tsx:29 msgid "Copy" msgstr "" -#: src/components/buttons/PrintingActions.tsx:93 +#: src/components/buttons/PrintingActions.tsx:97 msgid "Print Label" msgstr "" -#: src/components/buttons/PrintingActions.tsx:99 +#: src/components/buttons/PrintingActions.tsx:103 msgid "Print" msgstr "" -#: src/components/buttons/PrintingActions.tsx:100 +#: src/components/buttons/PrintingActions.tsx:104 msgid "Label printing completed successfully" msgstr "" -#: src/components/buttons/PrintingActions.tsx:106 -#: src/components/buttons/PrintingActions.tsx:144 -#: src/components/editors/NotesEditor.tsx:65 -#: src/components/editors/NotesEditor.tsx:165 -#: src/components/forms/fields/ApiFormField.tsx:319 +#: src/components/buttons/PrintingActions.tsx:110 +#: src/components/buttons/PrintingActions.tsx:148 +#: src/components/editors/NotesEditor.tsx:73 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:154 +#: src/components/forms/fields/ApiFormField.tsx:328 +#: src/components/forms/fields/TableField.tsx:43 #: src/components/importer/ImportDataSelector.tsx:187 -#: src/components/importer/ImporterColumnSelector.tsx:207 +#: src/components/importer/ImporterColumnSelector.tsx:210 #: src/components/modals/LicenseModal.tsx:75 -#: src/components/nav/SearchDrawer.tsx:448 +#: src/components/nav/SearchDrawer.tsx:458 +#: src/components/render/ModelType.tsx:290 #: src/pages/ErrorPage.tsx:11 -#: src/pages/part/PartPricingPanel.tsx:67 -#: src/tables/InvenTreeTable.tsx:495 +#: src/pages/part/PartPricingPanel.tsx:71 +#: src/tables/InvenTreeTable.tsx:481 #: src/tables/bom/BomTable.tsx:450 -#: src/tables/stock/StockItemTestResultTable.tsx:299 +#: src/tables/stock/StockItemTestResultTable.tsx:317 msgid "Error" msgstr "" -#: src/components/buttons/PrintingActions.tsx:107 +#: src/components/buttons/PrintingActions.tsx:111 msgid "The label could not be generated" msgstr "" -#: src/components/buttons/PrintingActions.tsx:122 +#: src/components/buttons/PrintingActions.tsx:126 msgid "Print Report" msgstr "" -#: src/components/buttons/PrintingActions.tsx:138 +#: src/components/buttons/PrintingActions.tsx:142 msgid "Generate" msgstr "" -#: src/components/buttons/PrintingActions.tsx:139 +#: src/components/buttons/PrintingActions.tsx:143 msgid "Report printing completed successfully" msgstr "" -#: src/components/buttons/PrintingActions.tsx:145 +#: src/components/buttons/PrintingActions.tsx:149 msgid "The report could not be generated" msgstr "" -#: src/components/buttons/PrintingActions.tsx:173 +#: src/components/buttons/PrintingActions.tsx:177 msgid "Printing Actions" msgstr "" -#: src/components/buttons/PrintingActions.tsx:178 +#: src/components/buttons/PrintingActions.tsx:182 msgid "Print Labels" msgstr "" -#: src/components/buttons/PrintingActions.tsx:184 +#: src/components/buttons/PrintingActions.tsx:188 msgid "Print Reports" msgstr "" +#: src/components/buttons/RemoveRowButton.tsx:8 +msgid "Remove this row" +msgstr "" + #: src/components/buttons/ScanButton.tsx:15 -msgid "Scan QR code" +#: src/components/nav/NavigationDrawer.tsx:117 +#: src/forms/PurchaseOrderForms.tsx:379 +#: src/forms/PurchaseOrderForms.tsx:473 +msgid "Scan Barcode" +msgstr "" + +#: src/components/buttons/ScanButton.tsx:15 +#~ msgid "Scan QR code" +#~ msgstr "Scan QR code" + +#: src/components/buttons/ScanButton.tsx:20 +msgid "Open Barcode Scanner" msgstr "" #: src/components/buttons/ScanButton.tsx:20 -msgid "Open QR code scanner" -msgstr "" +#~ msgid "Open QR code scanner" +#~ msgstr "Open QR code scanner" #: src/components/buttons/SpotlightButton.tsx:14 msgid "Open spotlight" @@ -128,85 +145,347 @@ msgid "Fail" msgstr "" #: src/components/buttons/YesNoButton.tsx:33 -#: src/tables/Filter.tsx:52 +#: src/tables/Filter.tsx:61 msgid "Yes" msgstr "" #: src/components/buttons/YesNoButton.tsx:33 -#: src/tables/Filter.tsx:53 +#: src/tables/Filter.tsx:62 msgid "No" msgstr "" -#: src/components/details/Details.tsx:301 +#: src/components/dashboard/DashboardLayout.tsx:286 +msgid "No Widgets Selected" +msgstr "" + +#: src/components/dashboard/DashboardLayout.tsx:289 +msgid "Use the menu to add widgets to the dashboard" +msgstr "" + +#: src/components/dashboard/DashboardMenu.tsx:59 +#: src/components/dashboard/DashboardMenu.tsx:126 +msgid "Accept Layout" +msgstr "" + +#: src/components/dashboard/DashboardMenu.tsx:91 +#: src/components/nav/NavigationDrawer.tsx:71 +#: src/defaults/actions.tsx:17 +#: src/defaults/links.tsx:9 +#: src/pages/Index/Settings/UserSettings.tsx:47 +msgid "Dashboard" +msgstr "" + +#: src/components/dashboard/DashboardMenu.tsx:99 +msgid "Edit Layout" +msgstr "" + +#: src/components/dashboard/DashboardMenu.tsx:108 +msgid "Add Widget" +msgstr "" + +#: src/components/dashboard/DashboardMenu.tsx:117 +msgid "Remove Widgets" +msgstr "" + +#: src/components/dashboard/DashboardWidget.tsx:65 +msgid "Remove this widget from the dashboard" +msgstr "" + +#: src/components/dashboard/DashboardWidgetDrawer.tsx:77 +msgid "Filter dashboard widgets" +msgstr "" + +#: src/components/dashboard/DashboardWidgetDrawer.tsx:98 +msgid "Add this widget to the dashboard" +msgstr "" + +#: src/components/dashboard/DashboardWidgetDrawer.tsx:123 +msgid "No Widgets Available" +msgstr "" + +#: src/components/dashboard/DashboardWidgetDrawer.tsx:124 +msgid "There are no more widgets available for the dashboard" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:19 +msgid "Subscribed Parts" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:20 +msgid "Show the number of parts which you have subscribed to" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:26 +msgid "Subscribed Categories" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:27 +msgid "Show the number of part categories which you have subscribed to" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:35 +#: src/pages/part/PartSchedulingDetail.tsx:304 +#: src/tables/part/PartTable.tsx:238 +msgid "Low Stock" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:37 +msgid "Show the number of parts which are low on stock" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:43 +msgid "Expired Stock Items" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:45 +msgid "Show the number of stock items which have expired" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:51 +msgid "Stale Stock Items" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:53 +msgid "Show the number of stock items which are stale" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:59 +msgid "Active Build Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:61 +msgid "Show the number of build orders which are currently active" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:66 +msgid "Overdue Build Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:68 +msgid "Show the number of build orders which are overdue" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:73 +msgid "Assigned Build Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:75 +msgid "Show the number of build orders which are assigned to you" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:80 +msgid "Active Sales Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:82 +msgid "Show the number of sales orders which are currently active" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:87 +msgid "Overdue Sales Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:89 +msgid "Show the number of sales orders which are overdue" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:94 +msgid "Assigned Sales Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:96 +msgid "Show the number of sales orders which are assigned to you" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:101 +msgid "Active Purchase Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:103 +msgid "Show the number of purchase orders which are currently active" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:108 +msgid "Overdue Purchase Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:110 +msgid "Show the number of purchase orders which are overdue" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:115 +msgid "Assigned Purchase Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:117 +msgid "Show the number of purchase orders which are assigned to you" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:122 +msgid "Active Return Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:124 +msgid "Show the number of return orders which are currently active" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:129 +msgid "Overdue Return Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:131 +msgid "Show the number of return orders which are overdue" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:136 +msgid "Assigned Return Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:138 +msgid "Show the number of return orders which are assigned to you" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:149 +#: src/components/dashboard/widgets/GetStartedWidget.tsx:15 +#: src/defaults/links.tsx:38 +msgid "Getting Started" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:150 +#: src/defaults/links.tsx:41 +msgid "Getting started with InvenTree" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:157 +#: src/components/dashboard/widgets/NewsWidget.tsx:123 +msgid "News Updates" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:158 +msgid "The latest news from InvenTree" +msgstr "" + +#: src/components/dashboard/widgets/ColorToggleWidget.tsx:18 +#: src/components/nav/MainMenu.tsx:77 +msgid "Change Color Mode" +msgstr "" + +#: src/components/dashboard/widgets/ColorToggleWidget.tsx:23 +msgid "Change the color mode of the user interface" +msgstr "" + +#: src/components/dashboard/widgets/LanguageSelectWidget.tsx:18 +msgid "Change Language" +msgstr "" + +#: src/components/dashboard/widgets/LanguageSelectWidget.tsx:23 +msgid "Change the language of the user interface" +msgstr "" + +#: src/components/dashboard/widgets/NewsWidget.tsx:61 +#: src/components/nav/NotificationDrawer.tsx:88 +#: src/pages/Notifications.tsx:73 +msgid "Mark as read" +msgstr "" + +#: src/components/dashboard/widgets/NewsWidget.tsx:115 +msgid "Requires Superuser" +msgstr "" + +#: src/components/dashboard/widgets/NewsWidget.tsx:116 +msgid "This widget requires superuser permissions" +msgstr "" + +#: src/components/dashboard/widgets/NewsWidget.tsx:133 +msgid "No News" +msgstr "" + +#: src/components/dashboard/widgets/NewsWidget.tsx:134 +msgid "There are no unread news items" +msgstr "" + +#: src/components/details/Details.tsx:300 msgid "No name defined" msgstr "" -#: src/components/details/DetailsImage.tsx:65 +#: src/components/details/DetailsImage.tsx:69 msgid "Remove Image" msgstr "" -#: src/components/details/DetailsImage.tsx:68 +#: src/components/details/DetailsImage.tsx:72 msgid "Remove the associated image from this item?" msgstr "" -#: src/components/details/DetailsImage.tsx:71 -#: src/forms/StockForms.tsx:533 +#: src/components/details/DetailsImage.tsx:75 +#: src/forms/StockForms.tsx:651 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:199 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:306 -#: src/pages/stock/StockDetail.tsx:526 +#: src/pages/stock/StockDetail.tsx:690 msgid "Remove" msgstr "" -#: src/components/details/DetailsImage.tsx:71 -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:158 -#: src/components/items/ActionDropdown.tsx:215 -#: src/components/items/ActionDropdown.tsx:216 -#: src/contexts/ThemeContext.tsx:43 +#: src/components/details/DetailsImage.tsx:75 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:184 +#: src/components/items/ActionDropdown.tsx:268 +#: src/components/items/ActionDropdown.tsx:269 +#: src/contexts/ThemeContext.tsx:45 #: src/hooks/UseForm.tsx:40 -#: src/tables/FilterSelectDrawer.tsx:205 -#: src/tables/build/BuildOutputTable.tsx:286 +#: src/tables/FilterSelectDrawer.tsx:241 +#: src/tables/RowActions.tsx:59 +#: src/tables/build/BuildOutputTable.tsx:434 msgid "Cancel" msgstr "" -#: src/components/details/DetailsImage.tsx:97 +#: src/components/details/DetailsImage.tsx:101 msgid "Drag and drop to upload" msgstr "" -#: src/components/details/DetailsImage.tsx:100 +#: src/components/details/DetailsImage.tsx:104 msgid "Click to select file(s)" msgstr "" -#: src/components/details/DetailsImage.tsx:226 +#: src/components/details/DetailsImage.tsx:230 msgid "Clear" msgstr "" -#: src/components/details/DetailsImage.tsx:232 -#: src/components/forms/ApiForm.tsx:627 -#: src/contexts/ThemeContext.tsx:43 -#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:60 +#: src/components/details/DetailsImage.tsx:236 +#: src/components/forms/ApiForm.tsx:660 +#: src/contexts/ThemeContext.tsx:45 msgid "Submit" msgstr "" -#: src/components/details/DetailsImage.tsx:272 +#: src/components/details/DetailsImage.tsx:280 msgid "Select from existing images" msgstr "" -#: src/components/details/DetailsImage.tsx:280 +#: src/components/details/DetailsImage.tsx:288 msgid "Select Image" msgstr "" -#: src/components/details/DetailsImage.tsx:292 +#: src/components/details/DetailsImage.tsx:304 +msgid "Download remote image" +msgstr "" + +#: src/components/details/DetailsImage.tsx:319 msgid "Upload new image" msgstr "" -#: src/components/details/DetailsImage.tsx:299 +#: src/components/details/DetailsImage.tsx:326 msgid "Upload Image" msgstr "" -#: src/components/details/DetailsImage.tsx:312 +#: src/components/details/DetailsImage.tsx:339 msgid "Delete image" msgstr "" +#: src/components/details/DetailsImage.tsx:373 +msgid "Download Image" +msgstr "" + +#: src/components/details/DetailsImage.tsx:378 +msgid "Image downloaded successfully" +msgstr "" + #: src/components/details/PartIcons.tsx:43 #~ msgid "Part is a template part (variants can be made from this part)" #~ msgstr "Part is a template part (variants can be made from this part)" @@ -235,36 +514,57 @@ msgstr "" #~ msgid "Part is virtual (not a physical part)" #~ msgstr "Part is virtual (not a physical part)" -#: src/components/editors/NotesEditor.tsx:66 +#: src/components/editors/NotesEditor.tsx:74 msgid "Image upload failed" msgstr "" -#: src/components/editors/NotesEditor.tsx:156 -#: src/components/forms/ApiForm.tsx:467 +#: src/components/editors/NotesEditor.tsx:83 +#: src/components/editors/NotesEditor.tsx:119 +#: src/components/forms/ApiForm.tsx:475 #: src/tables/bom/BomTable.tsx:441 msgid "Success" msgstr "" -#: src/components/editors/NotesEditor.tsx:157 +#: src/components/editors/NotesEditor.tsx:84 +msgid "Image uploaded successfully" +msgstr "" + +#: src/components/editors/NotesEditor.tsx:120 msgid "Notes saved successfully" msgstr "" -#: src/components/editors/NotesEditor.tsx:166 +#: src/components/editors/NotesEditor.tsx:131 msgid "Failed to save notes" msgstr "" -#: src/components/editors/NotesEditor.tsx:198 -msgid "Preview Notes" +#: src/components/editors/NotesEditor.tsx:134 +msgid "Error Saving Notes" msgstr "" -#: src/components/editors/NotesEditor.tsx:198 -msgid "Edit Notes" -msgstr "" +#: src/components/editors/NotesEditor.tsx:151 +#~ msgid "Disable Editing" +#~ msgstr "Disable Editing" -#: src/components/editors/NotesEditor.tsx:212 +#: src/components/editors/NotesEditor.tsx:154 msgid "Save Notes" msgstr "" +#: src/components/editors/NotesEditor.tsx:173 +msgid "Close Editor" +msgstr "" + +#: src/components/editors/NotesEditor.tsx:180 +msgid "Enable Editing" +msgstr "" + +#: src/components/editors/NotesEditor.tsx:198 +#~ msgid "Preview Notes" +#~ msgstr "Preview Notes" + +#: src/components/editors/NotesEditor.tsx:198 +#~ msgid "Edit Notes" +#~ msgstr "Edit Notes" + #: src/components/editors/TemplateEditor/CodeEditor/index.tsx:9 msgid "Code" msgstr "" @@ -281,40 +581,44 @@ msgstr "" msgid "PDF Preview" msgstr "" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:104 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:115 msgid "Error loading template" msgstr "" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:116 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:127 msgid "Error saving template" msgstr "" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:146 -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:274 -msgid "Save & Reload Preview" -msgstr "" - -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:151 -msgid "Are you sure you want to Save & Reload the preview?" -msgstr "" - #: src/components/editors/TemplateEditor/TemplateEditor.tsx:151 #~ msgid "Save & Reload preview?" #~ msgstr "Save & Reload preview?" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:153 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:155 +msgid "Could not load the template from the server." +msgstr "" + +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:172 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:303 +msgid "Save & Reload Preview" +msgstr "" + +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:177 +msgid "Are you sure you want to Save & Reload the preview?" +msgstr "" + +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:179 msgid "To render the preview the current template needs to be replaced on the server with your modifications which may break the label if it is under active use. Do you want to proceed?" msgstr "" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:157 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:183 msgid "Save & Reload" msgstr "" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:189 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:215 msgid "Preview updated" msgstr "" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:190 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:216 msgid "The preview has been updated successfully." msgstr "" @@ -322,15 +626,15 @@ msgstr "" #~ msgid "Save & Reload preview" #~ msgstr "Save & Reload preview" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:266 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:295 msgid "Reload preview" msgstr "" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:267 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:296 msgid "Use the currently stored template from the server" msgstr "" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:275 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:304 msgid "Save the current template and reload the preview" msgstr "" @@ -338,11 +642,11 @@ msgstr "" #~ msgid "to preview" #~ msgstr "to preview" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:333 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:365 msgid "Select instance to preview" msgstr "" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:377 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:409 msgid "Error rendering template" msgstr "" @@ -379,6 +683,7 @@ msgid "This page does not exist" msgstr "" #: src/components/errors/PermissionDenied.tsx:8 +#: src/functions/notifications.tsx:24 msgid "Permission Denied" msgstr "" @@ -394,8 +699,8 @@ msgstr "" msgid "A server error occurred" msgstr "" -#: src/components/forms/ApiForm.tsx:151 -#: src/components/forms/ApiForm.tsx:555 +#: src/components/forms/ApiForm.tsx:154 +#: src/components/forms/ApiForm.tsx:579 msgid "Form Error" msgstr "" @@ -403,22 +708,22 @@ msgstr "" #~ msgid "Form Errors Exist" #~ msgstr "Form Errors Exist" -#: src/components/forms/ApiForm.tsx:563 +#: src/components/forms/ApiForm.tsx:587 msgid "Errors exist for one or more form fields" msgstr "" -#: src/components/forms/ApiForm.tsx:665 -#: src/tables/plugin/PluginListTable.tsx:388 +#: src/components/forms/ApiForm.tsx:698 +#: src/tables/plugin/PluginListTable.tsx:195 msgid "Update" msgstr "" -#: src/components/forms/ApiForm.tsx:685 -#: src/components/items/ActionDropdown.tsx:195 +#: src/components/forms/ApiForm.tsx:718 +#: src/components/items/ActionDropdown.tsx:248 #: src/hooks/UseForm.tsx:122 -#: src/pages/Index/Scan.tsx:343 +#: src/pages/Index/Scan.tsx:357 #: src/pages/Notifications.tsx:123 -#: src/tables/RowActions.tsx:43 -#: src/tables/plugin/PluginListTable.tsx:420 +#: src/tables/RowActions.tsx:49 +#: src/tables/plugin/PluginListTable.tsx:232 msgid "Delete" msgstr "" @@ -428,14 +733,6 @@ msgstr "" #~ msgid "Check your your input and try again." #~ msgstr "Check your your input and try again." -#: src/components/forms/AuthenticationForm.tsx:51 -msgid "Login successful" -msgstr "" - -#: src/components/forms/AuthenticationForm.tsx:52 -msgid "Logged in successfully" -msgstr "" - #: src/components/forms/AuthenticationForm.tsx:52 #~ msgid "Welcome back!" #~ msgstr "Welcome back!" @@ -444,14 +741,22 @@ msgstr "" #~ msgid "Login successfull" #~ msgstr "Login successfull" -#: src/components/forms/AuthenticationForm.tsx:58 +#: src/components/forms/AuthenticationForm.tsx:55 +msgid "Login successful" +msgstr "" + +#: src/components/forms/AuthenticationForm.tsx:56 +msgid "Logged in successfully" +msgstr "" + +#: src/components/forms/AuthenticationForm.tsx:61 msgid "Login failed" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:59 -#: src/components/forms/AuthenticationForm.tsx:76 -#: src/components/forms/AuthenticationForm.tsx:211 -#: src/functions/auth.tsx:164 +#: src/components/forms/AuthenticationForm.tsx:62 +#: src/components/forms/AuthenticationForm.tsx:79 +#: src/components/forms/AuthenticationForm.tsx:214 +#: src/functions/auth.tsx:175 msgid "Check your input and try again." msgstr "" @@ -460,45 +765,46 @@ msgstr "" #~ msgid "Mail delivery successfull" #~ msgstr "Mail delivery successfull" -#: src/components/forms/AuthenticationForm.tsx:70 -#: src/functions/auth.tsx:155 +#: src/components/forms/AuthenticationForm.tsx:73 +#: src/functions/auth.tsx:166 msgid "Mail delivery successful" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:71 +#: src/components/forms/AuthenticationForm.tsx:74 msgid "Check your inbox for the login link. If you have an account, you will receive a login link. Check in spam too." msgstr "" -#: src/components/forms/AuthenticationForm.tsx:75 +#: src/components/forms/AuthenticationForm.tsx:78 msgid "Mail delivery failed" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:95 +#: src/components/forms/AuthenticationForm.tsx:98 msgid "Or continue with other methods" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:106 -#: src/components/forms/AuthenticationForm.tsx:227 +#: src/components/forms/AuthenticationForm.tsx:109 +#: src/components/forms/AuthenticationForm.tsx:230 +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:67 msgid "Username" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:107 -#: src/components/forms/AuthenticationForm.tsx:228 +#: src/components/forms/AuthenticationForm.tsx:110 +#: src/components/forms/AuthenticationForm.tsx:231 msgid "Your username" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:112 -#: src/components/forms/AuthenticationForm.tsx:240 -#: src/pages/Auth/Set-Password.tsx:106 +#: src/components/forms/AuthenticationForm.tsx:115 +#: src/components/forms/AuthenticationForm.tsx:243 +#: src/pages/Auth/Set-Password.tsx:101 msgid "Password" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:113 -#: src/components/forms/AuthenticationForm.tsx:241 +#: src/components/forms/AuthenticationForm.tsx:116 +#: src/components/forms/AuthenticationForm.tsx:244 msgid "Your password" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:125 +#: src/components/forms/AuthenticationForm.tsx:128 #: src/pages/Auth/Reset.tsx:26 msgid "Reset password" msgstr "" @@ -507,77 +813,79 @@ msgstr "" #~ msgid "Log in" #~ msgstr "Log in" -#: src/components/forms/AuthenticationForm.tsx:134 -#: src/components/forms/AuthenticationForm.tsx:233 +#: src/components/forms/AuthenticationForm.tsx:136 +#~ msgid "I will use username and password" +#~ msgstr "I will use username and password" + +#: src/components/forms/AuthenticationForm.tsx:137 +#: src/components/forms/AuthenticationForm.tsx:236 #: src/pages/Auth/Reset.tsx:31 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:51 msgid "Email" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:135 +#: src/components/forms/AuthenticationForm.tsx:138 #: src/pages/Auth/Reset.tsx:32 -#: src/pages/Auth/Set-Password.tsx:107 +#: src/pages/Auth/Set-Password.tsx:102 msgid "We will send you a link to login - if you are registered" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:136 -#~ msgid "I will use username and password" -#~ msgstr "I will use username and password" - -#: src/components/forms/AuthenticationForm.tsx:151 +#: src/components/forms/AuthenticationForm.tsx:154 msgid "Send me an email" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:153 +#: src/components/forms/AuthenticationForm.tsx:156 msgid "Use username and password" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:162 +#: src/components/forms/AuthenticationForm.tsx:165 msgid "Log In" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:164 +#: src/components/forms/AuthenticationForm.tsx:167 +#: src/pages/Auth/Reset.tsx:41 +#: src/pages/Auth/Set-Password.tsx:107 msgid "Send Email" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:193 +#: src/components/forms/AuthenticationForm.tsx:196 msgid "Registration successful" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:194 +#: src/components/forms/AuthenticationForm.tsx:197 msgid "Please confirm your email address to complete the registration" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:210 +#: src/components/forms/AuthenticationForm.tsx:213 msgid "Input error" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:234 +#: src/components/forms/AuthenticationForm.tsx:237 msgid "This will be used for a confirmation" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:246 +#: src/components/forms/AuthenticationForm.tsx:249 msgid "Password repeat" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:247 +#: src/components/forms/AuthenticationForm.tsx:250 msgid "Repeat password" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:259 -#: src/components/forms/AuthenticationForm.tsx:304 +#: src/components/forms/AuthenticationForm.tsx:262 +#: src/components/forms/AuthenticationForm.tsx:307 msgid "Register" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:265 +#: src/components/forms/AuthenticationForm.tsx:268 msgid "Or use SSO" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:296 +#: src/components/forms/AuthenticationForm.tsx:299 msgid "Don't have an account?" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:315 +#: src/components/forms/AuthenticationForm.tsx:318 msgid "Go back to login" msgstr "" @@ -588,19 +896,20 @@ msgstr "" #: src/components/forms/HostOptionsForm.tsx:42 #: src/components/forms/HostOptionsForm.tsx:70 +#: src/components/plugins/PluginDrawer.tsx:69 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:410 +#: src/pages/Index/Settings/AdminCenter/UnitManagmentPanel.tsx:19 #: src/pages/part/CategoryDetail.tsx:81 -#: src/pages/part/PartDetail.tsx:143 -#: src/pages/stock/LocationDetail.tsx:89 -#: src/tables/machine/MachineTypeTable.tsx:65 -#: src/tables/machine/MachineTypeTable.tsx:109 -#: src/tables/machine/MachineTypeTable.tsx:216 -#: src/tables/machine/MachineTypeTable.tsx:319 +#: src/pages/part/PartDetail.tsx:164 +#: src/pages/stock/LocationDetail.tsx:83 +#: src/tables/machine/MachineTypeTable.tsx:70 +#: src/tables/machine/MachineTypeTable.tsx:119 +#: src/tables/machine/MachineTypeTable.tsx:237 +#: src/tables/machine/MachineTypeTable.tsx:340 #: src/tables/plugin/PluginErrorTable.tsx:33 -#: src/tables/plugin/PluginListTable.tsx:126 #: src/tables/purchasing/ManufacturerPartParameterTable.tsx:32 #: src/tables/settings/GroupTable.tsx:147 -#: src/tables/settings/PendingTasksTable.tsx:28 +#: src/tables/settings/PendingTasksTable.tsx:32 #: src/tables/stock/LocationTypesTable.tsx:69 msgid "Name" msgstr "" @@ -650,7 +959,7 @@ msgid "Uncategorized" msgstr "" #: src/components/forms/fields/IconField.tsx:209 -#: src/components/nav/Layout.tsx:70 +#: src/components/nav/Layout.tsx:77 #: src/tables/part/PartThumbTable.tsx:192 msgid "Search..." msgstr "" @@ -667,28 +976,27 @@ msgstr "" msgid "{0} icons" msgstr "" -#: src/components/forms/fields/RelatedModelField.tsx:318 -#: src/pages/Index/Settings/UserSettings.tsx:96 +#: src/components/forms/fields/RelatedModelField.tsx:319 +#: src/pages/Index/Settings/UserSettings.tsx:97 #: src/tables/Search.tsx:23 msgid "Search" msgstr "" -#: src/components/forms/fields/RelatedModelField.tsx:319 +#: src/components/forms/fields/RelatedModelField.tsx:320 #: src/components/modals/AboutInvenTreeModal.tsx:81 -#: src/components/widgets/WidgetLayout.tsx:120 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:316 msgid "Loading" msgstr "" -#: src/components/forms/fields/RelatedModelField.tsx:321 +#: src/components/forms/fields/RelatedModelField.tsx:322 msgid "No results found" msgstr "" -#: src/components/forms/fields/TableField.tsx:52 -msgid "modelRenderer entry required for tables" -msgstr "" +#: src/components/forms/fields/TableField.tsx:72 +#~ msgid "modelRenderer entry required for tables" +#~ msgstr "modelRenderer entry required for tables" -#: src/components/forms/fields/TableField.tsx:76 +#: src/components/forms/fields/TableField.tsx:167 msgid "No entries available" msgstr "" @@ -741,7 +1049,7 @@ msgid "Filter by row validation status" msgstr "" #: src/components/importer/ImportDataSelector.tsx:365 -#: src/tables/build/BuildOutputTable.tsx:266 +#: src/tables/build/BuildOutputTable.tsx:407 msgid "Complete" msgstr "" @@ -749,20 +1057,21 @@ msgstr "" msgid "Filter by row completion status" msgstr "" -#: src/components/importer/ImportDataSelector.tsx:383 +#: src/components/importer/ImportDataSelector.tsx:384 msgid "Import selected rows" msgstr "" -#: src/components/importer/ImportDataSelector.tsx:398 +#: src/components/importer/ImportDataSelector.tsx:399 msgid "Processing Data" msgstr "" -#: src/components/importer/ImporterColumnSelector.tsx:50 -#: src/components/importer/ImporterColumnSelector.tsx:176 +#: src/components/importer/ImporterColumnSelector.tsx:53 +#: src/components/importer/ImporterColumnSelector.tsx:179 +#: src/components/items/ErrorItem.tsx:12 msgid "An error occurred" msgstr "" -#: src/components/importer/ImporterColumnSelector.tsx:62 +#: src/components/importer/ImporterColumnSelector.tsx:65 msgid "Select column, or leave blank to ignore this field." msgstr "" @@ -778,51 +1087,51 @@ msgstr "" #~ msgid "Imported Column Name" #~ msgstr "Imported Column Name" -#: src/components/importer/ImporterColumnSelector.tsx:182 +#: src/components/importer/ImporterColumnSelector.tsx:185 msgid "Ignore this field" msgstr "" -#: src/components/importer/ImporterColumnSelector.tsx:196 +#: src/components/importer/ImporterColumnSelector.tsx:199 msgid "Mapping data columns to database fields" msgstr "" -#: src/components/importer/ImporterColumnSelector.tsx:201 +#: src/components/importer/ImporterColumnSelector.tsx:204 msgid "Accept Column Mapping" msgstr "" -#: src/components/importer/ImporterColumnSelector.tsx:214 +#: src/components/importer/ImporterColumnSelector.tsx:217 msgid "Database Field" msgstr "" -#: src/components/importer/ImporterColumnSelector.tsx:215 +#: src/components/importer/ImporterColumnSelector.tsx:218 msgid "Field Description" msgstr "" -#: src/components/importer/ImporterColumnSelector.tsx:216 +#: src/components/importer/ImporterColumnSelector.tsx:219 msgid "Imported Column" msgstr "" -#: src/components/importer/ImporterColumnSelector.tsx:217 +#: src/components/importer/ImporterColumnSelector.tsx:220 msgid "Default Value" msgstr "" -#: src/components/importer/ImporterDrawer.tsx:44 +#: src/components/importer/ImporterDrawer.tsx:46 msgid "Upload File" msgstr "" -#: src/components/importer/ImporterDrawer.tsx:45 +#: src/components/importer/ImporterDrawer.tsx:47 msgid "Map Columns" msgstr "" -#: src/components/importer/ImporterDrawer.tsx:46 +#: src/components/importer/ImporterDrawer.tsx:48 msgid "Import Data" msgstr "" -#: src/components/importer/ImporterDrawer.tsx:47 +#: src/components/importer/ImporterDrawer.tsx:49 msgid "Process Data" msgstr "" -#: src/components/importer/ImporterDrawer.tsx:48 +#: src/components/importer/ImporterDrawer.tsx:50 msgid "Complete Import" msgstr "" @@ -830,28 +1139,28 @@ msgstr "" #~ msgid "Cancel import session" #~ msgstr "Cancel import session" -#: src/components/importer/ImporterDrawer.tsx:104 +#: src/components/importer/ImporterDrawer.tsx:106 msgid "Import Complete" msgstr "" -#: src/components/importer/ImporterDrawer.tsx:107 +#: src/components/importer/ImporterDrawer.tsx:109 msgid "Data has been imported successfully" msgstr "" -#: src/components/importer/ImporterDrawer.tsx:109 -#: src/components/importer/ImporterDrawer.tsx:118 +#: src/components/importer/ImporterDrawer.tsx:111 +#: src/components/importer/ImporterDrawer.tsx:120 msgid "Close" msgstr "" -#: src/components/importer/ImporterDrawer.tsx:115 +#: src/components/importer/ImporterDrawer.tsx:117 msgid "Unknown Status" msgstr "" -#: src/components/importer/ImporterDrawer.tsx:116 +#: src/components/importer/ImporterDrawer.tsx:118 msgid "Import session has unknown status" msgstr "" -#: src/components/importer/ImporterDrawer.tsx:135 +#: src/components/importer/ImporterDrawer.tsx:137 msgid "Importing Data" msgstr "" @@ -860,85 +1169,115 @@ msgid "Importing Records" msgstr "" #: src/components/importer/ImporterImportProgress.tsx:39 -msgid "Imported rows" +#: src/tables/settings/ImportSessionTable.tsx:78 +msgid "Imported Rows" msgstr "" -#: src/components/items/ActionDropdown.tsx:121 -msgid "Barcode Actions" +#: src/components/importer/ImporterImportProgress.tsx:39 +#~ msgid "Imported rows" +#~ msgstr "Imported rows" + +#: src/components/items/ActionDropdown.tsx:126 +msgid "Options" msgstr "" #: src/components/items/ActionDropdown.tsx:140 -msgid "View Barcode" -msgstr "" +#~ msgid "View Barcode" +#~ msgstr "View Barcode" -#: src/components/items/ActionDropdown.tsx:147 -msgid "View" -msgstr "" - -#: src/components/items/ActionDropdown.tsx:148 -msgid "View barcode" -msgstr "" - -#: src/components/items/ActionDropdown.tsx:161 -msgid "Link Barcode" +#: src/components/items/ActionDropdown.tsx:162 +#: src/tables/InvenTreeTableHeader.tsx:159 +#: src/tables/InvenTreeTableHeader.tsx:160 +msgid "Barcode Actions" msgstr "" #: src/components/items/ActionDropdown.tsx:162 -msgid "Link custom barcode" +#~ msgid "Link custom barcode" +#~ msgstr "Link custom barcode" + +#: src/components/items/ActionDropdown.tsx:167 +msgid "View" msgstr "" -#: src/components/items/ActionDropdown.tsx:173 -#: src/forms/PurchaseOrderForms.tsx:426 -msgid "Unlink Barcode" +#: src/components/items/ActionDropdown.tsx:169 +msgid "View barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:174 -msgid "Unlink custom barcode" +#: src/components/items/ActionDropdown.tsx:175 +msgid "Link Barcode" +msgstr "" + +#: src/components/items/ActionDropdown.tsx:177 +msgid "Link a custom barcode to this item" msgstr "" #: src/components/items/ActionDropdown.tsx:183 -#: src/tables/RowActions.tsx:33 +#: src/components/items/QRCode.tsx:193 +#: src/forms/PurchaseOrderForms.tsx:464 +msgid "Unlink Barcode" +msgstr "" + +#: src/components/items/ActionDropdown.tsx:185 +msgid "Unlink custom barcode" +msgstr "" + +#: src/components/items/ActionDropdown.tsx:236 +#: src/tables/RowActions.tsx:39 msgid "Edit" msgstr "" -#: src/components/items/ActionDropdown.tsx:184 +#: src/components/items/ActionDropdown.tsx:237 msgid "Edit item" msgstr "" -#: src/components/items/ActionDropdown.tsx:196 +#: src/components/items/ActionDropdown.tsx:249 msgid "Delete item" msgstr "" -#: src/components/items/ActionDropdown.tsx:204 -#: src/components/items/ActionDropdown.tsx:205 +#: src/components/items/ActionDropdown.tsx:257 +#: src/components/items/ActionDropdown.tsx:258 msgid "Hold" msgstr "" -#: src/components/items/ActionDropdown.tsx:227 -#: src/tables/RowActions.tsx:23 +#: src/components/items/ActionDropdown.tsx:280 +#: src/tables/RowActions.tsx:29 msgid "Duplicate" msgstr "" -#: src/components/items/ActionDropdown.tsx:228 +#: src/components/items/ActionDropdown.tsx:281 msgid "Duplicate item" msgstr "" +#: src/components/items/BarcodeInput.tsx:23 +msgid "Scan barcode data here using barcode scanner" +msgstr "" + +#: src/components/items/BarcodeInput.tsx:24 +#: src/tables/settings/BarcodeScanHistoryTable.tsx:65 +msgid "Barcode" +msgstr "" + +#: src/components/items/BarcodeInput.tsx:25 +msgid "Scan" +msgstr "" + #: src/components/items/DocTooltip.tsx:92 +#: src/components/items/GettingStartedCarousel.tsx:20 msgid "Read More" msgstr "" -#: src/components/items/ErrorItem.tsx:5 -#: src/tables/InvenTreeTable.tsx:487 +#: src/components/items/ErrorItem.tsx:8 +#: src/tables/InvenTreeTable.tsx:473 msgid "Unknown error" msgstr "" -#: src/components/items/ErrorItem.tsx:10 -msgid "An error occurred:" -msgstr "" +#: src/components/items/ErrorItem.tsx:13 +#~ msgid "An error occurred:" +#~ msgstr "An error occurred:" #: src/components/items/GettingStartedCarousel.tsx:27 -msgid "Read more" -msgstr "" +#~ msgid "Read more" +#~ msgstr "Read more" #: src/components/items/InfoItem.tsx:27 msgid "None" @@ -965,30 +1304,51 @@ msgstr "" msgid "This panel is a placeholder." msgstr "" -#: src/components/items/QRCode.tsx:87 +#: src/components/items/QRCode.tsx:89 msgid "Low (7%)" msgstr "" -#: src/components/items/QRCode.tsx:88 +#: src/components/items/QRCode.tsx:90 msgid "Medium (15%)" msgstr "" -#: src/components/items/QRCode.tsx:89 +#: src/components/items/QRCode.tsx:91 msgid "Quartile (25%)" msgstr "" -#: src/components/items/QRCode.tsx:90 +#: src/components/items/QRCode.tsx:92 msgid "High (30%)" msgstr "" -#: src/components/items/QRCode.tsx:107 -msgid "Barcode Data:" +#: src/components/items/QRCode.tsx:100 +msgid "Custom barcode" +msgstr "" + +#: src/components/items/QRCode.tsx:101 +msgid "A custom barcode is registered for this item. The shown code is not that custom barcode." msgstr "" #: src/components/items/QRCode.tsx:118 +msgid "Barcode Data:" +msgstr "" + +#: src/components/items/QRCode.tsx:129 msgid "Select Error Correction Level" msgstr "" +#: src/components/items/QRCode.tsx:171 +#: src/pages/part/PartDetail.tsx:239 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:187 +#: src/pages/sales/ReturnOrderDetail.tsx:157 +#: src/pages/sales/SalesOrderDetail.tsx:169 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:166 +msgid "Link" +msgstr "" + +#: src/components/items/QRCode.tsx:190 +msgid "This will remove the link to the associated barcode" +msgstr "" + #: src/components/modals/AboutInvenTreeModal.tsx:99 msgid "Version Information" msgstr "" @@ -1062,11 +1422,11 @@ msgstr "" msgid "Submit Bug Report" msgstr "" -#: src/components/modals/AboutInvenTreeModal.tsx:183 +#: src/components/modals/AboutInvenTreeModal.tsx:181 msgid "Copy version information" msgstr "" -#: src/components/modals/AboutInvenTreeModal.tsx:192 +#: src/components/modals/AboutInvenTreeModal.tsx:189 #: src/components/modals/ServerInfoModal.tsx:147 msgid "Dismiss" msgstr "" @@ -1091,61 +1451,20 @@ msgstr "" msgid "{key} Packages" msgstr "" -#: src/components/modals/QrCodeModal.tsx:72 +#: src/components/modals/QrCodeModal.tsx:24 msgid "Unknown response" msgstr "" -#: src/components/modals/QrCodeModal.tsx:102 -#: src/pages/Index/Scan.tsx:636 -msgid "Error while getting camera" -msgstr "" - -#: src/components/modals/QrCodeModal.tsx:125 -#: src/pages/Index/Scan.tsx:659 -msgid "Error while scanning" -msgstr "" - -#: src/components/modals/QrCodeModal.tsx:139 -#: src/pages/Index/Scan.tsx:673 -msgid "Error while stopping" -msgstr "" - -#: src/components/modals/QrCodeModal.tsx:154 -#: src/defaults/menuItems.tsx:21 -#: src/pages/Index/Scan.tsx:746 -msgid "Scanning" -msgstr "" - -#: src/components/modals/QrCodeModal.tsx:154 -#: src/pages/Index/Scan.tsx:746 -msgid "Not scanning" -msgstr "" - -#: src/components/modals/QrCodeModal.tsx:159 -#: src/pages/Index/Scan.tsx:752 -msgid "Select Camera" -msgstr "" - -#: src/components/modals/QrCodeModal.tsx:169 -#: src/pages/Index/Scan.tsx:737 -msgid "Start scanning" -msgstr "" - -#: src/components/modals/QrCodeModal.tsx:176 -#: src/pages/Index/Scan.tsx:729 -msgid "Stop scanning" -msgstr "" - -#: src/components/modals/QrCodeModal.tsx:181 +#: src/components/modals/QrCodeModal.tsx:39 msgid "No scans yet!" msgstr "" -#: src/components/modals/QrCodeModal.tsx:201 +#: src/components/modals/QrCodeModal.tsx:57 msgid "Close modal" msgstr "" #: src/components/modals/ServerInfoModal.tsx:26 -#: src/pages/Index/Settings/SystemSettings.tsx:38 +#: src/pages/Index/Settings/SystemSettings.tsx:37 msgid "Server" msgstr "" @@ -1206,6 +1525,7 @@ msgid "Background Worker" msgstr "" #: src/components/modals/ServerInfoModal.tsx:101 +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:29 msgid "Background worker not running" msgstr "" @@ -1218,8 +1538,8 @@ msgid "Email settings not configured" msgstr "" #: src/components/modals/ServerInfoModal.tsx:121 -#: src/tables/plugin/PluginListTable.tsx:144 -#: src/tables/plugin/PluginListTable.tsx:294 +#: src/components/plugins/PluginDrawer.tsx:89 +#: src/tables/plugin/PluginListTable.tsx:116 msgid "Version" msgstr "" @@ -1227,7 +1547,7 @@ msgstr "" msgid "Server Version" msgstr "" -#: src/components/nav/Layout.tsx:73 +#: src/components/nav/Layout.tsx:80 msgid "Nothing found..." msgstr "" @@ -1237,18 +1557,26 @@ msgstr "" #~ msgstr "Profile" #: src/components/nav/MainMenu.tsx:52 +#: src/components/nav/NavigationDrawer.tsx:178 #: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:28 msgid "Settings" msgstr "" #: src/components/nav/MainMenu.tsx:59 -#: src/defaults/menuItems.tsx:15 -msgid "Account settings" +#: src/pages/Index/Settings/UserSettings.tsx:152 +msgid "Account Settings" msgstr "" +#: src/components/nav/MainMenu.tsx:59 +#: src/defaults/menuItems.tsx:15 +#~ msgid "Account settings" +#~ msgstr "Account settings" + #: src/components/nav/MainMenu.tsx:67 -#: src/defaults/menuItems.tsx:58 -#: src/pages/Index/Settings/SystemSettings.tsx:315 +#: src/components/nav/NavigationDrawer.tsx:141 +#: src/components/nav/SettingsHeader.tsx:49 +#: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:37 +#: src/pages/Index/Settings/SystemSettings.tsx:310 msgid "System Settings" msgstr "" @@ -1260,14 +1588,11 @@ msgstr "" #~ msgid "Switch to pseudo language" #~ msgstr "Switch to pseudo language" -#: src/components/nav/MainMenu.tsx:77 -msgid "Change Color Mode" -msgstr "" - #: src/components/nav/MainMenu.tsx:86 -#: src/defaults/actions.tsx:71 -#: src/defaults/menuItems.tsx:63 -#: src/pages/Index/Settings/AdminCenter/Index.tsx:221 +#: src/components/nav/NavigationDrawer.tsx:148 +#: src/components/nav/SettingsHeader.tsx:50 +#: src/defaults/actions.tsx:63 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:251 msgid "Admin Center" msgstr "" @@ -1275,458 +1600,732 @@ msgstr "" msgid "Logout" msgstr "" -#: src/components/nav/NavHoverMenu.tsx:65 -#: src/defaults/actions.tsx:60 -msgid "Open Navigation" -msgstr "" - #: src/components/nav/NavHoverMenu.tsx:84 -msgid "View all" -msgstr "" +#~ msgid "View all" +#~ msgstr "View all" #: src/components/nav/NavHoverMenu.tsx:100 #: src/components/nav/NavHoverMenu.tsx:110 -msgid "Get started" -msgstr "" +#~ msgid "Get started" +#~ msgstr "Get started" #: src/components/nav/NavHoverMenu.tsx:103 -msgid "Overview over high-level objects, functions and possible usecases." -msgstr "" - -#: src/components/nav/NavigationDrawer.tsx:57 -msgid "Navigation" -msgstr "" +#~ msgid "Overview over high-level objects, functions and possible usecases." +#~ msgstr "Overview over high-level objects, functions and possible usecases." #: src/components/nav/NavigationDrawer.tsx:60 -msgid "Pages" +#~ msgid "Pages" +#~ msgstr "Pages" + +#: src/components/nav/NavigationDrawer.tsx:77 +#: src/components/render/ModelType.tsx:31 +#: src/defaults/links.tsx:10 +#: src/pages/Index/Settings/SystemSettings.tsx:172 +#: src/pages/part/CategoryDetail.tsx:125 +#: src/pages/part/CategoryDetail.tsx:249 +#: src/pages/part/CategoryDetail.tsx:279 +#: src/pages/part/PartDetail.tsx:856 +msgid "Parts" msgstr "" -#: src/components/nav/NavigationDrawer.tsx:65 -#: src/pages/Index/Settings/AdminCenter/Index.tsx:176 -#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:41 -msgid "Plugins" +#: src/components/nav/NavigationDrawer.tsx:84 +#: src/components/render/Part.tsx:30 +#: src/defaults/links.tsx:11 +#: src/pages/Index/Settings/SystemSettings.tsx:205 +#: src/pages/part/PartDetail.tsx:593 +#: src/pages/stock/LocationDetail.tsx:352 +#: src/pages/stock/StockDetail.tsx:528 +#: src/tables/stock/StockItemTable.tsx:69 +msgid "Stock" msgstr "" -#: src/components/nav/NavigationDrawer.tsx:75 -#: src/defaults/actions.tsx:32 -msgid "Documentation" +#: src/components/nav/NavigationDrawer.tsx:91 +#: src/defaults/links.tsx:13 +#: src/pages/build/BuildDetail.tsx:530 +#: src/pages/build/BuildIndex.tsx:36 +msgid "Manufacturing" msgstr "" -#: src/components/nav/NavigationDrawer.tsx:78 -msgid "About" +#: src/components/nav/NavigationDrawer.tsx:98 +#: src/defaults/links.tsx:18 +#: src/pages/company/ManufacturerDetail.tsx:9 +#: src/pages/company/ManufacturerPartDetail.tsx:258 +#: src/pages/company/SupplierDetail.tsx:9 +#: src/pages/company/SupplierPartDetail.tsx:336 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:480 +#: src/pages/purchasing/PurchasingIndex.tsx:60 +msgid "Purchasing" msgstr "" -#: src/components/nav/NotificationDrawer.tsx:92 -#: src/pages/Index/Settings/SystemSettings.tsx:109 -#: src/pages/Index/Settings/UserSettings.tsx:126 +#: src/components/nav/NavigationDrawer.tsx:105 +#: src/defaults/links.tsx:22 +#: src/pages/company/CustomerDetail.tsx:9 +#: src/pages/sales/ReturnOrderDetail.tsx:469 +#: src/pages/sales/SalesIndex.tsx:53 +#: src/pages/sales/SalesOrderDetail.tsx:520 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:343 +msgid "Sales" +msgstr "" + +#: src/components/nav/NavigationDrawer.tsx:129 +#: src/components/nav/NotificationDrawer.tsx:178 +#: src/pages/Index/Settings/SystemSettings.tsx:110 +#: src/pages/Index/Settings/UserSettings.tsx:127 #: src/pages/Notifications.tsx:65 #: src/pages/Notifications.tsx:151 msgid "Notifications" msgstr "" -#: src/components/nav/NotificationDrawer.tsx:94 +#: src/components/nav/NavigationDrawer.tsx:135 +#: src/components/nav/SettingsHeader.tsx:48 +msgid "User Settings" +msgstr "" + +#: src/components/nav/NavigationDrawer.tsx:173 +msgid "Navigation" +msgstr "" + +#: src/components/nav/NavigationDrawer.tsx:183 +#: src/forms/PurchaseOrderForms.tsx:689 +#: src/forms/StockForms.tsx:614 +#: src/forms/StockForms.tsx:651 +#: src/forms/StockForms.tsx:677 +#: src/forms/StockForms.tsx:705 +#: src/forms/StockForms.tsx:736 +#: src/forms/StockForms.tsx:771 +#: src/forms/StockForms.tsx:813 +#: src/forms/StockForms.tsx:851 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:413 +#: src/tables/RowActions.tsx:129 +#: src/tables/build/BuildLineTable.tsx:101 +msgid "Actions" +msgstr "" + +#: src/components/nav/NavigationDrawer.tsx:191 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:205 +#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:44 +msgid "Plugins" +msgstr "" + +#: src/components/nav/NavigationDrawer.tsx:204 +#: src/defaults/actions.tsx:24 +msgid "Documentation" +msgstr "" + +#: src/components/nav/NavigationDrawer.tsx:210 +msgid "About" +msgstr "" + +#: src/components/nav/NotificationDrawer.tsx:180 msgid "Mark all as read" msgstr "" -#: src/components/nav/NotificationDrawer.tsx:104 +#: src/components/nav/NotificationDrawer.tsx:190 msgid "View all notifications" msgstr "" -#: src/components/nav/NotificationDrawer.tsx:123 +#: src/components/nav/NotificationDrawer.tsx:210 msgid "You have no unread notifications." msgstr "" -#: src/components/nav/NotificationDrawer.tsx:139 -#: src/components/nav/NotificationDrawer.tsx:145 -#: src/tables/notifications/NotificationsTable.tsx:36 -msgid "Notification" -msgstr "" - -#: src/components/nav/NotificationDrawer.tsx:168 -#: src/pages/Notifications.tsx:73 -msgid "Mark as read" -msgstr "" - -#: src/components/nav/SearchDrawer.tsx:78 +#: src/components/nav/SearchDrawer.tsx:85 msgid "results" msgstr "" -#: src/components/nav/SearchDrawer.tsx:370 +#: src/components/nav/SearchDrawer.tsx:380 msgid "Enter search text" msgstr "" -#: src/components/nav/SearchDrawer.tsx:397 +#: src/components/nav/SearchDrawer.tsx:391 +msgid "Refresh search results" +msgstr "" + +#: src/components/nav/SearchDrawer.tsx:402 +#: src/components/nav/SearchDrawer.tsx:409 msgid "Search Options" msgstr "" -#: src/components/nav/SearchDrawer.tsx:400 +#: src/components/nav/SearchDrawer.tsx:412 msgid "Regex search" msgstr "" -#: src/components/nav/SearchDrawer.tsx:410 +#: src/components/nav/SearchDrawer.tsx:421 msgid "Whole word search" msgstr "" -#: src/components/nav/SearchDrawer.tsx:451 +#: src/components/nav/SearchDrawer.tsx:461 msgid "An error occurred during search query" msgstr "" #: src/components/nav/SearchDrawer.tsx:462 -msgid "No results" +#~ msgid "No results" +#~ msgstr "No results" + +#: src/components/nav/SearchDrawer.tsx:472 +#: src/tables/part/PartTestTemplateTable.tsx:76 +msgid "No Results" msgstr "" -#: src/components/nav/SearchDrawer.tsx:465 +#: src/components/nav/SearchDrawer.tsx:475 msgid "No results available for search query" msgstr "" -#: src/components/render/Instance.tsx:217 +#: src/components/panels/AttachmentPanel.tsx:18 +msgid "Attachments" +msgstr "" + +#: src/components/panels/NotesPanel.tsx:24 +#: src/tables/build/BuildOrderTestTable.tsx:143 +#: src/tables/stock/StockTrackingTable.tsx:204 +msgid "Notes" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:47 +msgid "Plugin Inactive" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:50 +msgid "Plugin is not active" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:60 +msgid "Plugin Information" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:74 +#: src/pages/build/BuildDetail.tsx:116 +#: src/pages/company/CompanyDetail.tsx:89 +#: src/pages/company/ManufacturerPartDetail.tsx:89 +#: src/pages/company/ManufacturerPartDetail.tsx:116 +#: src/pages/company/SupplierPartDetail.tsx:140 +#: src/pages/part/CategoryDetail.tsx:101 +#: src/pages/part/PartDetail.tsx:178 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:136 +#: src/pages/sales/ReturnOrderDetail.tsx:107 +#: src/pages/sales/SalesOrderDetail.tsx:116 +#: src/pages/stock/LocationDetail.tsx:103 +#: src/tables/ColumnRenderers.tsx:92 +#: src/tables/bom/UsedInTable.tsx:44 +#: src/tables/build/BuildAllocatedStockTable.tsx:83 +#: src/tables/build/BuildLineTable.tsx:329 +#: src/tables/machine/MachineTypeTable.tsx:74 +#: src/tables/machine/MachineTypeTable.tsx:129 +#: src/tables/machine/MachineTypeTable.tsx:240 +#: src/tables/machine/MachineTypeTable.tsx:344 +#: src/tables/part/RelatedPartTable.tsx:66 +#: src/tables/plugin/PluginListTable.tsx:99 +#: src/tables/sales/SalesOrderAllocationTable.tsx:87 +#: src/tables/sales/SalesOrderLineItemTable.tsx:75 +#: src/tables/stock/LocationTypesTable.tsx:74 +msgid "Description" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:79 +msgid "Author" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:84 +#: src/pages/part/PartSchedulingDetail.tsx:277 +#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:40 +#: src/pages/part/pricing/SaleHistoryPanel.tsx:38 +#: src/tables/ColumnRenderers.tsx:215 +#: src/tables/build/BuildOrderTestTable.tsx:151 +#: src/tables/settings/StocktakeReportTable.tsx:40 +msgid "Date" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:94 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:398 +#: src/pages/part/PartDetail.tsx:331 +#: src/tables/bom/UsedInTable.tsx:84 +#: src/tables/company/CompanyTable.tsx:62 +#: src/tables/company/CompanyTable.tsx:96 +#: src/tables/machine/MachineListTable.tsx:333 +#: src/tables/machine/MachineListTable.tsx:605 +#: src/tables/part/ParametricPartTable.tsx:223 +#: src/tables/part/PartTable.tsx:178 +#: src/tables/part/PartVariantTable.tsx:15 +#: src/tables/plugin/PluginListTable.tsx:94 +#: src/tables/plugin/PluginListTable.tsx:401 +#: src/tables/purchasing/SupplierPartTable.tsx:100 +#: src/tables/purchasing/SupplierPartTable.tsx:190 +#: src/tables/settings/UserTable.tsx:283 +#: src/tables/stock/StockItemTable.tsx:293 +msgid "Active" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:106 +msgid "Package Name" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:112 +msgid "Installation Path" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:117 +#: src/tables/machine/MachineTypeTable.tsx:152 +#: src/tables/machine/MachineTypeTable.tsx:276 +#: src/tables/plugin/PluginListTable.tsx:406 +msgid "Builtin" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:122 +msgid "Package" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:134 +#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:53 +msgid "Plugin Settings" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:146 +#: src/components/render/ModelType.tsx:276 +msgid "Plugin Configuration" +msgstr "" + +#: src/components/plugins/PluginPanel.tsx:87 +#~ msgid "Error occurred while rendering plugin content" +#~ msgstr "Error occurred while rendering plugin content" + +#: src/components/plugins/PluginPanel.tsx:91 +#~ msgid "Plugin did not provide panel rendering function" +#~ msgstr "Plugin did not provide panel rendering function" + +#: src/components/plugins/PluginPanel.tsx:103 +#~ msgid "No content provided for this plugin" +#~ msgstr "No content provided for this plugin" + +#: src/components/plugins/PluginPanel.tsx:116 +#: src/components/plugins/PluginSettingsPanel.tsx:76 +#~ msgid "Error Loading Plugin" +#~ msgstr "Error Loading Plugin" + +#: src/components/plugins/PluginSettingsPanel.tsx:51 +#~ msgid "Error occurred while rendering plugin settings" +#~ msgstr "Error occurred while rendering plugin settings" + +#: src/components/plugins/PluginSettingsPanel.tsx:55 +#~ msgid "Plugin did not provide settings rendering function" +#~ msgstr "Plugin did not provide settings rendering function" + +#: src/components/plugins/PluginUIFeature.tsx:100 +msgid "Error occurred while rendering the template editor." +msgstr "" + +#: src/components/plugins/PluginUIFeature.tsx:111 +msgid "Error Loading Plugin Editor" +msgstr "" + +#: src/components/plugins/PluginUIFeature.tsx:147 +msgid "Error occurred while rendering the template preview." +msgstr "" + +#: src/components/plugins/PluginUIFeature.tsx:158 +msgid "Error Loading Plugin Preview" +msgstr "" + +#: src/components/plugins/RemoteComponent.tsx:70 +msgid "Invalid source or function name" +msgstr "" + +#: src/components/plugins/RemoteComponent.tsx:91 +msgid "Error Loading Content" +msgstr "" + +#: src/components/plugins/RemoteComponent.tsx:95 +msgid "Error occurred while loading plugin content" +msgstr "" + +#: src/components/render/Instance.tsx:224 msgid "Unknown model: {model}" msgstr "" -#: src/components/render/ModelType.tsx:22 -#: src/forms/BuildForms.tsx:213 -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/forms/StockForms.tsx:499 -#: src/forms/StockForms.tsx:533 -#: src/forms/StockForms.tsx:562 -#: src/forms/StockForms.tsx:590 -#: src/forms/StockForms.tsx:621 -#: src/forms/StockForms.tsx:656 -#: src/forms/StockForms.tsx:698 -#: src/forms/StockForms.tsx:734 -#: src/pages/build/BuildDetail.tsx:95 -#: src/pages/part/PartDetail.tsx:1073 -#: src/tables/build/BuildAllocatedStockTable.tsx:82 +#: src/components/render/ModelType.tsx:30 +#: src/forms/BuildForms.tsx:269 +#: src/forms/BuildForms.tsx:337 +#: src/forms/BuildForms.tsx:385 +#: src/forms/BuildForms.tsx:515 +#: src/forms/PurchaseOrderForms.tsx:689 +#: src/forms/ReturnOrderForms.tsx:190 +#: src/forms/SalesOrderForms.tsx:248 +#: src/forms/StockForms.tsx:261 +#: src/forms/StockForms.tsx:614 +#: src/forms/StockForms.tsx:651 +#: src/forms/StockForms.tsx:677 +#: src/forms/StockForms.tsx:705 +#: src/forms/StockForms.tsx:736 +#: src/forms/StockForms.tsx:771 +#: src/forms/StockForms.tsx:813 +#: src/forms/StockForms.tsx:851 +#: src/pages/build/BuildDetail.tsx:90 +#: src/pages/part/PartDetail.tsx:1094 +#: src/tables/build/BuildAllocatedStockTable.tsx:95 +#: src/tables/build/BuildLineTable.tsx:72 #: src/tables/part/PartTable.tsx:28 -#: src/tables/part/RelatedPartTable.tsx:45 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:88 -#: src/tables/sales/SalesOrderAllocationTable.tsx:68 -#: src/tables/stock/StockTrackingTable.tsx:74 +#: src/tables/part/RelatedPartTable.tsx:47 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:130 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:100 +#: src/tables/sales/SalesOrderAllocationTable.tsx:99 +#: src/tables/stock/StockTrackingTable.tsx:78 msgid "Part" msgstr "" -#: src/components/render/ModelType.tsx:23 -#: src/defaults/links.tsx:29 -#: src/defaults/menuItems.tsx:33 -#: src/pages/Index/Settings/SystemSettings.tsx:173 -#: src/pages/part/CategoryDetail.tsx:119 -#: src/pages/part/CategoryDetail.tsx:244 -#: src/pages/part/CategoryDetail.tsx:274 -#: src/pages/part/PartDetail.tsx:827 -msgid "Parts" -msgstr "" - -#: src/components/render/ModelType.tsx:31 +#: src/components/render/ModelType.tsx:40 msgid "Part Parameter Template" msgstr "" -#: src/components/render/ModelType.tsx:32 +#: src/components/render/ModelType.tsx:41 msgid "Part Parameter Templates" msgstr "" -#: src/components/render/ModelType.tsx:38 +#: src/components/render/ModelType.tsx:48 msgid "Part Test Template" msgstr "" -#: src/components/render/ModelType.tsx:39 +#: src/components/render/ModelType.tsx:49 msgid "Part Test Templates" msgstr "" -#: src/components/render/ModelType.tsx:45 -#: src/pages/company/SupplierPartDetail.tsx:203 -#: src/pages/company/SupplierPartDetail.tsx:375 -#: src/pages/stock/StockDetail.tsx:173 -#: src/tables/build/BuildAllocatedStockTable.tsx:131 +#: src/components/render/ModelType.tsx:56 +#: src/pages/company/SupplierPartDetail.tsx:364 +#: src/pages/stock/StockDetail.tsx:194 +#: src/tables/build/BuildAllocatedStockTable.tsx:152 #: src/tables/part/PartPurchaseOrdersTable.tsx:49 -#: src/tables/purchasing/SupplierPartTable.tsx:68 +#: src/tables/purchasing/SupplierPartTable.tsx:70 +#: src/tables/stock/StockItemTable.tsx:229 msgid "Supplier Part" msgstr "" -#: src/components/render/ModelType.tsx:46 +#: src/components/render/ModelType.tsx:57 msgid "Supplier Parts" msgstr "" -#: src/components/render/ModelType.tsx:54 -#: src/pages/company/ManufacturerPartDetail.tsx:132 +#: src/components/render/ModelType.tsx:66 #: src/tables/part/PartPurchaseOrdersTable.tsx:55 +#: src/tables/stock/StockItemTable.tsx:234 msgid "Manufacturer Part" msgstr "" -#: src/components/render/ModelType.tsx:55 +#: src/components/render/ModelType.tsx:67 msgid "Manufacturer Parts" msgstr "" -#: src/components/render/ModelType.tsx:63 -#: src/pages/part/CategoryDetail.tsx:305 +#: src/components/render/ModelType.tsx:76 +#: src/pages/part/CategoryDetail.tsx:310 msgid "Part Category" msgstr "" -#: src/components/render/ModelType.tsx:64 -#: src/pages/part/CategoryDetail.tsx:258 -#: src/pages/part/CategoryDetail.tsx:296 -#: src/pages/part/PartDetail.tsx:1063 +#: src/components/render/ModelType.tsx:77 +#: src/pages/part/CategoryDetail.tsx:263 +#: src/pages/part/CategoryDetail.tsx:301 +#: src/pages/part/PartDetail.tsx:1084 msgid "Part Categories" msgstr "" -#: src/components/render/ModelType.tsx:72 -#: src/pages/stock/StockDetail.tsx:624 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:94 -#: src/tables/stock/StockTrackingTable.tsx:45 +#: src/components/render/ModelType.tsx:86 +#: src/forms/BuildForms.tsx:337 +#: src/forms/BuildForms.tsx:385 +#: src/forms/BuildForms.tsx:515 +#: src/forms/SalesOrderForms.tsx:248 +#: src/pages/stock/StockDetail.tsx:839 +#: src/tables/stock/StockTrackingTable.tsx:49 msgid "Stock Item" msgstr "" -#: src/components/render/ModelType.tsx:73 +#: src/components/render/ModelType.tsx:87 #: src/pages/company/CompanyDetail.tsx:203 -#: src/pages/stock/LocationDetail.tsx:128 -#: src/pages/stock/LocationDetail.tsx:181 -#: src/pages/stock/LocationDetail.tsx:395 +#: src/pages/part/PartStocktakeDetail.tsx:113 +#: src/pages/stock/LocationDetail.tsx:122 +#: src/pages/stock/LocationDetail.tsx:175 +#: src/pages/stock/LocationDetail.tsx:380 msgid "Stock Items" msgstr "" -#: src/components/render/ModelType.tsx:81 +#: src/components/render/ModelType.tsx:96 msgid "Stock Location" msgstr "" -#: src/components/render/ModelType.tsx:82 -#: src/pages/stock/LocationDetail.tsx:195 -#: src/pages/stock/LocationDetail.tsx:387 -#: src/pages/stock/StockDetail.tsx:616 +#: src/components/render/ModelType.tsx:97 +#: src/pages/stock/LocationDetail.tsx:189 +#: src/pages/stock/LocationDetail.tsx:372 +#: src/pages/stock/StockDetail.tsx:831 msgid "Stock Locations" msgstr "" -#: src/components/render/ModelType.tsx:90 +#: src/components/render/ModelType.tsx:106 msgid "Stock Location Type" msgstr "" -#: src/components/render/ModelType.tsx:91 +#: src/components/render/ModelType.tsx:107 msgid "Stock Location Types" msgstr "" -#: src/components/render/ModelType.tsx:95 +#: src/components/render/ModelType.tsx:112 +#: src/pages/part/PartDetail.tsx:712 msgid "Stock History" msgstr "" -#: src/components/render/ModelType.tsx:96 +#: src/components/render/ModelType.tsx:113 msgid "Stock Histories" msgstr "" -#: src/components/render/ModelType.tsx:100 -#: src/defaults/links.tsx:31 -#: src/defaults/menuItems.tsx:43 +#: src/components/render/ModelType.tsx:118 msgid "Build" msgstr "" -#: src/components/render/ModelType.tsx:101 +#: src/components/render/ModelType.tsx:119 msgid "Builds" msgstr "" -#: src/components/render/ModelType.tsx:109 +#: src/components/render/ModelType.tsx:128 msgid "Build Line" msgstr "" -#: src/components/render/ModelType.tsx:110 +#: src/components/render/ModelType.tsx:129 msgid "Build Lines" msgstr "" -#: src/components/render/ModelType.tsx:117 +#: src/components/render/ModelType.tsx:137 msgid "Build Item" msgstr "" -#: src/components/render/ModelType.tsx:118 +#: src/components/render/ModelType.tsx:138 msgid "Build Items" msgstr "" -#: src/components/render/ModelType.tsx:122 -#: src/pages/company/CompanyDetail.tsx:339 +#: src/components/render/ModelType.tsx:143 +#: src/pages/company/CompanyDetail.tsx:321 msgid "Company" msgstr "" -#: src/components/render/ModelType.tsx:123 +#: src/components/render/ModelType.tsx:144 msgid "Companies" msgstr "" -#: src/components/render/ModelType.tsx:131 +#: src/components/render/ModelType.tsx:153 +#: src/pages/build/BuildDetail.tsx:195 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:204 +#: src/pages/sales/ReturnOrderDetail.tsx:174 +#: src/pages/sales/SalesOrderDetail.tsx:186 #: src/tables/TableHoverCard.tsx:81 -#: src/tables/build/BuildOrderTable.tsx:140 -#: src/tables/purchasing/PurchaseOrderTable.tsx:64 -#: src/tables/sales/ReturnOrderTable.tsx:55 -#: src/tables/sales/SalesOrderTable.tsx:62 +#: src/tables/build/BuildOrderTable.tsx:135 +#: src/tables/purchasing/PurchaseOrderTable.tsx:69 +#: src/tables/sales/ReturnOrderTable.tsx:67 +#: src/tables/sales/SalesOrderTable.tsx:67 msgid "Project Code" msgstr "" -#: src/components/render/ModelType.tsx:132 -#: src/pages/Index/Settings/AdminCenter/Index.tsx:128 +#: src/components/render/ModelType.tsx:154 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:145 msgid "Project Codes" msgstr "" -#: src/components/render/ModelType.tsx:138 +#: src/components/render/ModelType.tsx:161 #: src/pages/part/pricing/PurchaseHistoryPanel.tsx:32 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:480 -#: src/tables/part/PartPurchaseOrdersTable.tsx:32 -#: src/tables/stock/StockTrackingTable.tsx:107 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:477 +#: src/pages/stock/StockDetail.tsx:253 +#: src/tables/part/PartPurchaseOrdersTable.tsx:31 +#: src/tables/stock/StockItemTable.tsx:222 +#: src/tables/stock/StockTrackingTable.tsx:111 msgid "Purchase Order" msgstr "" -#: src/components/render/ModelType.tsx:139 -#: src/pages/Index/Settings/SystemSettings.tsx:255 +#: src/components/render/ModelType.tsx:162 +#: src/pages/Index/Settings/SystemSettings.tsx:249 #: src/pages/company/CompanyDetail.tsx:196 -#: src/pages/company/SupplierPartDetail.tsx:237 -#: src/pages/part/PartDetail.tsx:662 +#: src/pages/company/SupplierPartDetail.tsx:249 +#: src/pages/part/PartDetail.tsx:683 #: src/pages/purchasing/PurchasingIndex.tsx:25 msgid "Purchase Orders" msgstr "" -#: src/components/render/ModelType.tsx:147 +#: src/components/render/ModelType.tsx:171 msgid "Purchase Order Line" msgstr "" -#: src/components/render/ModelType.tsx:148 +#: src/components/render/ModelType.tsx:172 msgid "Purchase Order Lines" msgstr "" -#: src/components/render/ModelType.tsx:152 -#: src/pages/build/BuildDetail.tsx:153 -#: src/pages/sales/SalesOrderDetail.tsx:520 -#: src/pages/stock/StockDetail.tsx:221 -#: src/tables/sales/SalesOrderAllocationTable.tsx:50 -#: src/tables/stock/StockTrackingTable.tsx:118 +#: src/components/render/ModelType.tsx:177 +#: src/pages/build/BuildDetail.tsx:148 +#: src/pages/part/pricing/SaleHistoryPanel.tsx:24 +#: src/pages/sales/SalesOrderDetail.tsx:515 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:92 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:341 +#: src/pages/stock/StockDetail.tsx:262 +#: src/tables/sales/SalesOrderAllocationTable.tsx:80 +#: src/tables/stock/StockTrackingTable.tsx:122 msgid "Sales Order" msgstr "" -#: src/components/render/ModelType.tsx:153 -#: src/pages/Index/Settings/SystemSettings.tsx:270 +#: src/components/render/ModelType.tsx:178 +#: src/pages/Index/Settings/SystemSettings.tsx:264 #: src/pages/company/CompanyDetail.tsx:216 -#: src/pages/part/PartDetail.tsx:669 +#: src/pages/part/PartDetail.tsx:695 #: src/pages/sales/SalesIndex.tsx:26 msgid "Sales Orders" msgstr "" -#: src/components/render/ModelType.tsx:161 +#: src/components/render/ModelType.tsx:187 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:340 msgid "Sales Order Shipment" msgstr "" -#: src/components/render/ModelType.tsx:162 +#: src/components/render/ModelType.tsx:188 msgid "Sales Order Shipments" msgstr "" -#: src/components/render/ModelType.tsx:168 -#: src/pages/sales/ReturnOrderDetail.tsx:469 -#: src/tables/stock/StockTrackingTable.tsx:129 +#: src/components/render/ModelType.tsx:195 +#: src/pages/sales/ReturnOrderDetail.tsx:464 +#: src/tables/stock/StockTrackingTable.tsx:133 msgid "Return Order" msgstr "" -#: src/components/render/ModelType.tsx:169 -#: src/pages/Index/Settings/SystemSettings.tsx:286 +#: src/components/render/ModelType.tsx:196 +#: src/pages/Index/Settings/SystemSettings.tsx:280 #: src/pages/company/CompanyDetail.tsx:223 +#: src/pages/part/PartDetail.tsx:702 #: src/pages/sales/SalesIndex.tsx:32 msgid "Return Orders" msgstr "" -#: src/components/render/ModelType.tsx:177 +#: src/components/render/ModelType.tsx:205 msgid "Return Order Line Item" msgstr "" -#: src/components/render/ModelType.tsx:178 +#: src/components/render/ModelType.tsx:206 msgid "Return Order Line Items" msgstr "" -#: src/components/render/ModelType.tsx:182 -#: src/tables/company/AddressTable.tsx:47 +#: src/components/render/ModelType.tsx:211 +#: src/tables/company/AddressTable.tsx:48 msgid "Address" msgstr "" -#: src/components/render/ModelType.tsx:183 -#: src/pages/company/CompanyDetail.tsx:253 +#: src/components/render/ModelType.tsx:212 +#: src/pages/company/CompanyDetail.tsx:255 msgid "Addresses" msgstr "" -#: src/components/render/ModelType.tsx:189 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:195 -#: src/pages/sales/ReturnOrderDetail.tsx:174 -#: src/pages/sales/SalesOrderDetail.tsx:183 +#: src/components/render/ModelType.tsx:219 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:196 +#: src/pages/sales/ReturnOrderDetail.tsx:166 +#: src/pages/sales/SalesOrderDetail.tsx:178 msgid "Contact" msgstr "" -#: src/components/render/ModelType.tsx:190 -#: src/pages/company/CompanyDetail.tsx:247 +#: src/components/render/ModelType.tsx:220 +#: src/pages/company/CompanyDetail.tsx:249 msgid "Contacts" msgstr "" -#: src/components/render/ModelType.tsx:196 +#: src/components/render/ModelType.tsx:227 msgid "Owner" msgstr "" -#: src/components/render/ModelType.tsx:197 +#: src/components/render/ModelType.tsx:228 msgid "Owners" msgstr "" -#: src/components/render/ModelType.tsx:203 -#: src/tables/settings/ImportSessionTable.tsx:121 -#: src/tables/stock/StockItemTestResultTable.tsx:198 -#: src/tables/stock/StockTrackingTable.tsx:195 +#: src/components/render/ModelType.tsx:234 +#~ msgid "Purchase Order Line Item" +#~ msgstr "Purchase Order Line Item" + +#: src/components/render/ModelType.tsx:235 +#: src/tables/settings/BarcodeScanHistoryTable.tsx:80 +#: src/tables/settings/BarcodeScanHistoryTable.tsx:211 +#: src/tables/settings/ImportSessionTable.tsx:120 +#: src/tables/settings/StocktakeReportTable.tsx:44 +#: src/tables/stock/StockItemTestResultTable.tsx:204 +#: src/tables/stock/StockTrackingTable.tsx:181 +#: src/tables/stock/StockTrackingTable.tsx:210 msgid "User" msgstr "" -#: src/components/render/ModelType.tsx:204 -#: src/pages/Index/Settings/AdminCenter/Index.tsx:98 +#: src/components/render/ModelType.tsx:236 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:109 #: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:13 msgid "Users" msgstr "" -#: src/components/render/ModelType.tsx:210 +#: src/components/render/ModelType.tsx:243 msgid "Group" msgstr "" -#: src/components/render/ModelType.tsx:211 +#: src/components/render/ModelType.tsx:244 #: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:20 -#: src/tables/settings/UserTable.tsx:138 -#: src/tables/settings/UserTable.tsx:201 +#: src/tables/settings/UserTable.tsx:137 +#: src/tables/settings/UserTable.tsx:200 msgid "Groups" msgstr "" -#: src/components/render/ModelType.tsx:218 +#: src/components/render/ModelType.tsx:252 msgid "Import Session" msgstr "" -#: src/components/render/ModelType.tsx:219 +#: src/components/render/ModelType.tsx:253 msgid "Import Sessions" msgstr "" -#: src/components/render/ModelType.tsx:225 +#: src/components/render/ModelType.tsx:260 msgid "Label Template" msgstr "" -#: src/components/render/ModelType.tsx:226 -#: src/pages/Index/Settings/AdminCenter/Index.tsx:158 +#: src/components/render/ModelType.tsx:261 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:187 msgid "Label Templates" msgstr "" -#: src/components/render/ModelType.tsx:232 +#: src/components/render/ModelType.tsx:264 +#~ msgid "Unknown Model" +#~ msgstr "Unknown Model" + +#: src/components/render/ModelType.tsx:268 msgid "Report Template" msgstr "" -#: src/components/render/ModelType.tsx:233 -#: src/pages/Index/Settings/AdminCenter/Index.tsx:164 +#: src/components/render/ModelType.tsx:269 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:193 msgid "Report Templates" msgstr "" -#: src/components/render/ModelType.tsx:239 -msgid "Plugin Configuration" -msgstr "" - -#: src/components/render/ModelType.tsx:240 +#: src/components/render/ModelType.tsx:277 msgid "Plugin Configurations" msgstr "" +#: src/components/render/ModelType.tsx:284 +msgid "Content Type" +msgstr "" + +#: src/components/render/ModelType.tsx:285 +msgid "Content Types" +msgstr "" + +#: src/components/render/ModelType.tsx:291 +#: src/tables/machine/MachineListTable.tsx:351 +#: src/tables/machine/MachineTypeTable.tsx:282 +msgid "Errors" +msgstr "" + +#: src/components/render/ModelType.tsx:307 +#~ msgid "Purchase Order Line Items" +#~ msgstr "Purchase Order Line Items" + +#: src/components/render/ModelType.tsx:337 +#~ msgid "Unknown Models" +#~ msgstr "Unknown Models" + #: src/components/render/Order.tsx:121 +#: src/tables/sales/SalesOrderAllocationTable.tsx:136 msgid "Shipment" msgstr "" #: src/components/render/Part.tsx:25 #: src/components/render/Plugin.tsx:17 -#: src/pages/company/CompanyDetail.tsx:325 -#: src/pages/company/SupplierPartDetail.tsx:360 -#: src/pages/part/PartDetail.tsx:879 +#: src/pages/company/CompanyDetail.tsx:307 +#: src/pages/company/SupplierPartDetail.tsx:349 +#: src/pages/part/PartDetail.tsx:911 msgid "Inactive" msgstr "" @@ -1736,39 +2335,38 @@ msgstr "" msgid "No stock" msgstr "" -#: src/components/render/Part.tsx:30 -#: src/defaults/links.tsx:30 -#: src/defaults/menuItems.tsx:38 -#: src/pages/Index/Settings/SystemSettings.tsx:206 -#: src/pages/part/PartDetail.tsx:543 -#: src/pages/stock/LocationDetail.tsx:367 -#: src/pages/stock/StockDetail.tsx:411 -#: src/tables/stock/StockItemTable.tsx:68 -msgid "Stock" -msgstr "" - -#: src/components/render/Stock.tsx:60 -#: src/pages/stock/StockDetail.tsx:150 -#: src/pages/stock/StockDetail.tsx:581 -#: src/tables/build/BuildAllocatedStockTable.tsx:102 -#: src/tables/sales/SalesOrderAllocationTable.tsx:80 +#: src/components/render/Stock.tsx:61 +#: src/forms/ReturnOrderForms.tsx:190 +#: src/pages/stock/StockDetail.tsx:166 +#: src/pages/stock/StockDetail.tsx:771 +#: src/tables/build/BuildAllocatedStockTable.tsx:123 +#: src/tables/build/BuildOutputTable.tsx:81 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:114 +#: src/tables/sales/SalesOrderAllocationTable.tsx:106 msgid "Serial Number" msgstr "" -#: src/components/render/Stock.tsx:62 -#: src/forms/BuildForms.tsx:218 -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/pages/part/pricing/BomPricingPanel.tsx:109 +#: src/components/render/Stock.tsx:63 +#: src/forms/BuildForms.tsx:206 +#: src/forms/BuildForms.tsx:515 +#: src/forms/PurchaseOrderForms.tsx:689 +#: src/forms/SalesOrderForms.tsx:248 +#: src/pages/part/PartSchedulingDetail.tsx:80 +#: src/pages/part/PartStocktakeDetail.tsx:60 +#: src/pages/part/PartStocktakeDetail.tsx:234 +#: src/pages/part/PartStocktakeDetail.tsx:252 +#: src/pages/part/pricing/BomPricingPanel.tsx:148 #: src/pages/part/pricing/PriceBreakPanel.tsx:89 -#: src/pages/part/pricing/PriceBreakPanel.tsx:171 -#: src/pages/stock/StockDetail.tsx:145 -#: src/pages/stock/StockDetail.tsx:587 -#: src/tables/build/BuildOrderTestTable.tsx:197 -#: src/tables/part/PartPurchaseOrdersTable.tsx:92 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:143 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:171 +#: src/pages/part/pricing/PriceBreakPanel.tsx:172 +#: src/pages/stock/StockDetail.tsx:161 +#: src/pages/stock/StockDetail.tsx:777 +#: src/tables/build/BuildLineTable.tsx:79 +#: src/tables/build/BuildOrderTestTable.tsx:198 +#: src/tables/part/PartPurchaseOrdersTable.tsx:93 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:146 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:177 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:77 -#: src/tables/stock/StockTrackingTable.tsx:59 +#: src/tables/stock/StockTrackingTable.tsx:63 msgid "Quantity" msgstr "" @@ -1842,10 +2440,6 @@ msgstr "" #~ msgid "Required Part" #~ msgstr "Required Part" -#: src/components/tables/build/BuildLineTable.tsx:152 -#~ msgid "Required Quantity" -#~ msgstr "Required Quantity" - #: src/components/tables/build/BuildOrderTable.tsx:52 #~ msgid "Progress" #~ msgstr "Progress" @@ -2126,14 +2720,6 @@ msgstr "" #~ msgid "user deleted" #~ msgstr "user deleted" -#: src/components/tables/settings/UserTable.tsx:168 -#~ msgid "First Name" -#~ msgstr "First Name" - -#: src/components/tables/settings/UserTable.tsx:173 -#~ msgid "Last Name" -#~ msgstr "Last Name" - #: src/components/tables/stock/StockItemTable.tsx:247 #~ msgid "Test Filter" #~ msgstr "Test Filter" @@ -2146,36 +2732,21 @@ msgstr "" #~ msgid "Stock location updated" #~ msgstr "Stock location updated" -#: src/components/widgets/DisplayWidget.tsx:11 -#: src/pages/Index/Settings/AccountSettings/DisplaySettingsPanel.tsx:17 -msgid "Display Settings" -msgstr "" - -#: src/components/widgets/DisplayWidget.tsx:15 -#: src/pages/Index/Settings/AccountSettings/DisplaySettingsPanel.tsx:23 -msgid "Color Mode" -msgstr "" - -#: src/components/widgets/DisplayWidget.tsx:21 -#: src/pages/Index/Settings/AccountSettings/DisplaySettingsPanel.tsx:33 -msgid "Language" -msgstr "" - #: src/components/widgets/FeedbackWidget.tsx:19 -msgid "Something is new: Platform UI" -msgstr "" +#~ msgid "Something is new: Platform UI" +#~ msgstr "Something is new: Platform UI" #: src/components/widgets/FeedbackWidget.tsx:21 -msgid "We are building a new UI with a modern stack. What you currently see is not fixed and will be redesigned but demonstrates the UI/UX possibilities we will have going forward." -msgstr "" +#~ msgid "We are building a new UI with a modern stack. What you currently see is not fixed and will be redesigned but demonstrates the UI/UX possibilities we will have going forward." +#~ msgstr "We are building a new UI with a modern stack. What you currently see is not fixed and will be redesigned but demonstrates the UI/UX possibilities we will have going forward." #: src/components/widgets/FeedbackWidget.tsx:32 -msgid "Provide Feedback" -msgstr "" +#~ msgid "Provide Feedback" +#~ msgstr "Provide Feedback" #: src/components/widgets/GetStartedWidget.tsx:11 -msgid "Getting started" -msgstr "" +#~ msgid "Getting started" +#~ msgstr "Getting started" #: src/components/widgets/MarkdownEditor.tsx:108 #~ msgid "Failed to upload image" @@ -2186,28 +2757,24 @@ msgstr "" #~ msgstr "Notes saved" #: src/components/widgets/WidgetLayout.tsx:166 -msgid "Layout" -msgstr "" +#~ msgid "Layout" +#~ msgstr "Layout" #: src/components/widgets/WidgetLayout.tsx:172 -msgid "Reset Layout" -msgstr "" +#~ msgid "Reset Layout" +#~ msgstr "Reset Layout" #: src/components/widgets/WidgetLayout.tsx:185 -msgid "Stop Edit" -msgstr "" - -#: src/components/widgets/WidgetLayout.tsx:185 -msgid "Edit Layout" -msgstr "" +#~ msgid "Stop Edit" +#~ msgstr "Stop Edit" #: src/components/widgets/WidgetLayout.tsx:191 -msgid "Appearance" -msgstr "" +#~ msgid "Appearance" +#~ msgstr "Appearance" #: src/components/widgets/WidgetLayout.tsx:203 -msgid "Show Boxes" -msgstr "" +#~ msgid "Show Boxes" +#~ msgstr "Show Boxes" #: src/contexts/LanguageContext.tsx:20 msgid "Arabic" @@ -2286,201 +2853,175 @@ msgid "Korean" msgstr "" #: src/contexts/LanguageContext.tsx:39 -msgid "Latvian" +msgid "Lithuanian" msgstr "" #: src/contexts/LanguageContext.tsx:40 -msgid "Dutch" +msgid "Latvian" msgstr "" #: src/contexts/LanguageContext.tsx:41 -msgid "Norwegian" +msgid "Dutch" msgstr "" #: src/contexts/LanguageContext.tsx:42 -msgid "Polish" +msgid "Norwegian" msgstr "" #: src/contexts/LanguageContext.tsx:43 -msgid "Portuguese" +msgid "Polish" msgstr "" #: src/contexts/LanguageContext.tsx:44 -msgid "Portuguese (Brazilian)" +msgid "Portuguese" msgstr "" #: src/contexts/LanguageContext.tsx:45 -msgid "Romanian" +msgid "Portuguese (Brazilian)" msgstr "" #: src/contexts/LanguageContext.tsx:46 -msgid "Russian" +msgid "Romanian" msgstr "" #: src/contexts/LanguageContext.tsx:47 -msgid "Slovak" +msgid "Russian" msgstr "" #: src/contexts/LanguageContext.tsx:48 -msgid "Slovenian" +msgid "Slovak" msgstr "" #: src/contexts/LanguageContext.tsx:49 -msgid "Swedish" +msgid "Slovenian" msgstr "" #: src/contexts/LanguageContext.tsx:50 -msgid "Thai" +msgid "Swedish" msgstr "" #: src/contexts/LanguageContext.tsx:51 -msgid "Turkish" +msgid "Thai" msgstr "" #: src/contexts/LanguageContext.tsx:52 -msgid "Ukrainian" +msgid "Turkish" msgstr "" #: src/contexts/LanguageContext.tsx:53 -msgid "Vietnamese" +msgid "Ukrainian" msgstr "" #: src/contexts/LanguageContext.tsx:54 -msgid "Chinese (Simplified)" +msgid "Vietnamese" msgstr "" #: src/contexts/LanguageContext.tsx:55 +msgid "Chinese (Simplified)" +msgstr "" + +#: src/contexts/LanguageContext.tsx:56 msgid "Chinese (Traditional)" msgstr "" +#: src/defaults/actions.tsx:18 +msgid "Go to the InvenTree dashboard" +msgstr "" + #: src/defaults/actions.tsx:18 #: src/defaults/links.tsx:27 #: src/defaults/menuItems.tsx:9 -msgid "Home" -msgstr "" +#~ msgid "Home" +#~ msgstr "Home" #: src/defaults/actions.tsx:25 -#: src/defaults/links.tsx:28 -#: src/defaults/menuItems.tsx:28 -#: src/pages/Index/Dashboard.tsx:19 -#: src/pages/Index/Settings/UserSettings.tsx:46 -msgid "Dashboard" -msgstr "" - -#: src/defaults/actions.tsx:26 -msgid "Go to the InvenTree dashboard" -msgstr "" - -#: src/defaults/actions.tsx:33 msgid "Visit the documentation to learn more about InvenTree" msgstr "" -#: src/defaults/actions.tsx:39 -#: src/defaults/links.tsx:98 -#: src/defaults/links.tsx:128 +#: src/defaults/actions.tsx:31 +#: src/defaults/links.tsx:92 +#: src/defaults/links.tsx:124 msgid "About InvenTree" msgstr "" -#: src/defaults/actions.tsx:40 -#: src/defaults/links.tsx:129 +#: src/defaults/actions.tsx:32 msgid "About the InvenTree org" msgstr "" -#: src/defaults/actions.tsx:46 +#: src/defaults/actions.tsx:38 msgid "Server Information" msgstr "" -#: src/defaults/actions.tsx:47 -#: src/defaults/links.tsx:123 +#: src/defaults/actions.tsx:39 +#: src/defaults/links.tsx:118 msgid "About this Inventree instance" msgstr "" -#: src/defaults/actions.tsx:53 -#: src/defaults/links.tsx:111 +#: src/defaults/actions.tsx:45 +#: src/defaults/links.tsx:105 +#: src/defaults/links.tsx:131 msgid "License Information" msgstr "" -#: src/defaults/actions.tsx:54 -#: src/defaults/links.tsx:135 +#: src/defaults/actions.tsx:46 msgid "Licenses for dependencies of the service" msgstr "" -#: src/defaults/actions.tsx:61 +#: src/defaults/actions.tsx:52 +msgid "Open Navigation" +msgstr "" + +#: src/defaults/actions.tsx:53 msgid "Open the main navigation menu" msgstr "" -#: src/defaults/actions.tsx:72 +#: src/defaults/actions.tsx:64 msgid "Go to the Admin Center" msgstr "" -#: src/defaults/dashboardItems.tsx:15 -msgid "Subscribed Parts" -msgstr "" - -#: src/defaults/dashboardItems.tsx:22 -msgid "Subscribed Categories" -msgstr "" - #: src/defaults/dashboardItems.tsx:29 -msgid "Latest Parts" -msgstr "" +#~ msgid "Latest Parts" +#~ msgstr "Latest Parts" #: src/defaults/dashboardItems.tsx:36 -msgid "BOM Waiting Validation" -msgstr "" +#~ msgid "BOM Waiting Validation" +#~ msgstr "BOM Waiting Validation" #: src/defaults/dashboardItems.tsx:43 -msgid "Recently Updated" -msgstr "" - -#: src/defaults/dashboardItems.tsx:50 -#: src/tables/part/PartTable.tsx:238 -msgid "Low Stock" -msgstr "" +#~ msgid "Recently Updated" +#~ msgstr "Recently Updated" #: src/defaults/dashboardItems.tsx:57 -msgid "Depleted Stock" -msgstr "" +#~ msgid "Depleted Stock" +#~ msgstr "Depleted Stock" #: src/defaults/dashboardItems.tsx:64 -msgid "Required for Build Orders" -msgstr "" +#~ msgid "Required for Build Orders" +#~ msgstr "Required for Build Orders" #: src/defaults/dashboardItems.tsx:71 -msgid "Expired Stock" -msgstr "" +#~ msgid "Expired Stock" +#~ msgstr "Expired Stock" #: src/defaults/dashboardItems.tsx:78 -msgid "Stale Stock" -msgstr "" +#~ msgid "Stale Stock" +#~ msgstr "Stale Stock" #: src/defaults/dashboardItems.tsx:85 -msgid "Build Orders In Progress" -msgstr "" - -#: src/defaults/dashboardItems.tsx:92 -msgid "Overdue Build Orders" -msgstr "" +#~ msgid "Build Orders In Progress" +#~ msgstr "Build Orders In Progress" #: src/defaults/dashboardItems.tsx:99 -msgid "Outstanding Purchase Orders" -msgstr "" - -#: src/defaults/dashboardItems.tsx:106 -msgid "Overdue Purchase Orders" -msgstr "" +#~ msgid "Outstanding Purchase Orders" +#~ msgstr "Outstanding Purchase Orders" #: src/defaults/dashboardItems.tsx:113 -msgid "Outstanding Sales Orders" -msgstr "" - -#: src/defaults/dashboardItems.tsx:120 -msgid "Overdue Sales Orders" -msgstr "" +#~ msgid "Outstanding Sales Orders" +#~ msgstr "Outstanding Sales Orders" #: src/defaults/dashboardItems.tsx:127 -msgid "Current News" -msgstr "" +#~ msgid "Current News" +#~ msgstr "Current News" #: src/defaults/defaultHostList.tsx:8 #~ msgid "InvenTree Demo" @@ -2490,98 +3031,81 @@ msgstr "" #~ msgid "Local Server" #~ msgstr "Local Server" -#: src/defaults/links.tsx:12 -#: src/pages/company/CompanyDetail.tsx:96 -msgid "Website" -msgstr "" - #: src/defaults/links.tsx:17 -msgid "GitHub" -msgstr "" +#~ msgid "GitHub" +#~ msgstr "GitHub" #: src/defaults/links.tsx:22 -msgid "Demo" -msgstr "" - -#: src/defaults/links.tsx:33 -#: src/defaults/menuItems.tsx:48 -#: src/pages/company/ManufacturerDetail.tsx:9 -#: src/pages/company/ManufacturerPartDetail.tsx:263 -#: src/pages/company/SupplierDetail.tsx:9 -#: src/pages/company/SupplierPartDetail.tsx:347 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:483 -#: src/pages/purchasing/PurchasingIndex.tsx:60 -msgid "Purchasing" -msgstr "" - -#: src/defaults/links.tsx:37 -#: src/defaults/menuItems.tsx:53 -#: src/pages/company/CustomerDetail.tsx:9 -#: src/pages/sales/ReturnOrderDetail.tsx:474 -#: src/pages/sales/SalesIndex.tsx:53 -#: src/pages/sales/SalesOrderDetail.tsx:525 -msgid "Sales" -msgstr "" +#~ msgid "Demo" +#~ msgstr "Demo" #: src/defaults/links.tsx:41 #: src/defaults/menuItems.tsx:71 #: src/pages/Index/Playground.tsx:217 -msgid "Playground" -msgstr "" +#~ msgid "Playground" +#~ msgstr "Playground" -#: src/defaults/links.tsx:55 -msgid "Getting Started" -msgstr "" - -#: src/defaults/links.tsx:56 -msgid "Getting started with InvenTree" -msgstr "" - -#: src/defaults/links.tsx:62 +#: src/defaults/links.tsx:45 msgid "API" msgstr "" -#: src/defaults/links.tsx:63 +#: src/defaults/links.tsx:48 msgid "InvenTree API documentation" msgstr "" -#: src/defaults/links.tsx:68 +#: src/defaults/links.tsx:52 msgid "Developer Manual" msgstr "" -#: src/defaults/links.tsx:69 +#: src/defaults/links.tsx:55 msgid "InvenTree developer manual" msgstr "" -#: src/defaults/links.tsx:74 +#: src/defaults/links.tsx:59 msgid "FAQ" msgstr "" -#: src/defaults/links.tsx:75 +#: src/defaults/links.tsx:62 msgid "Frequently asked questions" msgstr "" +#: src/defaults/links.tsx:66 +msgid "GitHub Repository" +msgstr "" + +#: src/defaults/links.tsx:69 +msgid "InvenTree source code on GitHub" +msgstr "" + #: src/defaults/links.tsx:76 #~ msgid "Instance" #~ msgstr "Instance" +#: src/defaults/links.tsx:79 +#: src/defaults/links.tsx:117 +msgid "System Information" +msgstr "" + #: src/defaults/links.tsx:83 #~ msgid "InvenTree" #~ msgstr "InvenTree" -#: src/defaults/links.tsx:85 -#: src/defaults/links.tsx:122 -msgid "System Information" -msgstr "" - #: src/defaults/links.tsx:117 #~ msgid "Licenses for packages used by InvenTree" #~ msgstr "Licenses for packages used by InvenTree" -#: src/defaults/links.tsx:134 -msgid "Licenses" +#: src/defaults/links.tsx:125 +msgid "About the InvenTree Project" msgstr "" +#: src/defaults/links.tsx:132 +msgid "Licenses for dependencies of the InvenTree software" +msgstr "" + +#: src/defaults/links.tsx:134 +#~ msgid "Licenses" +#~ msgstr "Licenses" + #: src/defaults/menuItems.tsx:7 #~ msgid "Open sourcea" #~ msgstr "Open sourcea" @@ -2607,8 +3131,8 @@ msgstr "" #~ msgstr "Profile page" #: src/defaults/menuItems.tsx:17 -msgid "User attributes and design settings." -msgstr "" +#~ msgid "User attributes and design settings." +#~ msgstr "User attributes and design settings." #: src/defaults/menuItems.tsx:21 #~ msgid "Free for everyone" @@ -2619,8 +3143,8 @@ msgstr "" #~ msgstr "The fluid of Smeargle’s tail secretions changes" #: src/defaults/menuItems.tsx:23 -msgid "View for interactive scanning and multiple actions." -msgstr "" +#~ msgid "View for interactive scanning and multiple actions." +#~ msgstr "View for interactive scanning and multiple actions." #: src/defaults/menuItems.tsx:24 #~ msgid "The fluid of Smeargle’s tail secretions changes in the intensity" @@ -2698,51 +3222,130 @@ msgstr "" #~ msgid "Are you sure you want to delete this attachment?" #~ msgstr "Are you sure you want to delete this attachment?" -#: src/forms/BuildForms.tsx:158 -msgid "Next serial number" +#: src/forms/BuildForms.tsx:248 +#~ msgid "Remove output" +#~ msgstr "Remove output" + +#: src/forms/BuildForms.tsx:269 +#: src/tables/build/BuildAllocatedStockTable.tsx:147 +#: src/tables/build/BuildOrderTestTable.tsx:177 +#: src/tables/build/BuildOrderTestTable.tsx:201 +#: src/tables/build/BuildOutputTable.tsx:460 +msgid "Build Output" msgstr "" -#: src/forms/BuildForms.tsx:162 -msgid "Latest serial number" +#: src/forms/BuildForms.tsx:269 +#: src/forms/BuildForms.tsx:337 +#: src/forms/BuildForms.tsx:385 +#: src/tables/build/BuildLineTable.tsx:89 +msgid "Batch" msgstr "" -#: src/forms/BuildForms.tsx:234 -msgid "Remove output" +#: src/forms/BuildForms.tsx:269 +#: src/forms/BuildForms.tsx:337 +#: src/forms/BuildForms.tsx:385 +#: src/forms/PurchaseOrderForms.tsx:603 +#: src/pages/build/BuildDetail.tsx:104 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:142 +#: src/pages/sales/ReturnOrderDetail.tsx:113 +#: src/pages/sales/SalesOrderDetail.tsx:122 +#: src/tables/build/BuildOrderTable.tsx:125 +#: src/tables/machine/MachineListTable.tsx:336 +#: src/tables/part/PartPurchaseOrdersTable.tsx:37 +#: src/tables/purchasing/PurchaseOrderTable.tsx:58 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:157 +#: src/tables/sales/ReturnOrderTable.tsx:56 +#: src/tables/sales/SalesOrderTable.tsx:56 +#: src/tables/settings/CustomStateTable.tsx:57 +#: src/tables/settings/ImportSessionTable.tsx:114 +#: src/tables/stock/StockItemTable.tsx:298 +#: src/tables/stock/StockTrackingTable.tsx:56 +msgid "Status" msgstr "" -#: src/forms/BuildForms.tsx:316 +#: src/forms/BuildForms.tsx:289 msgid "Complete Build Outputs" msgstr "" -#: src/forms/BuildForms.tsx:320 +#: src/forms/BuildForms.tsx:292 msgid "Build outputs have been completed" msgstr "" -#: src/forms/BuildForms.tsx:389 +#: src/forms/BuildForms.tsx:353 msgid "Scrap Build Outputs" msgstr "" -#: src/forms/BuildForms.tsx:393 +#: src/forms/BuildForms.tsx:356 msgid "Build outputs have been scrapped" msgstr "" -#: src/forms/BuildForms.tsx:425 -#: src/forms/BuildForms.tsx:449 +#: src/forms/BuildForms.tsx:393 msgid "Cancel Build Outputs" msgstr "" -#: src/forms/BuildForms.tsx:426 -msgid "Selected build outputs will be deleted" +#: src/forms/BuildForms.tsx:396 +msgid "Build outputs have been cancelled" msgstr "" -#: src/forms/BuildForms.tsx:453 -msgid "Build outputs have been cancelled" +#: src/forms/BuildForms.tsx:408 +#~ msgid "Selected build outputs will be deleted" +#~ msgstr "Selected build outputs will be deleted" + +#: src/forms/BuildForms.tsx:470 +#~ msgid "Remove line" +#~ msgstr "Remove line" + +#: src/forms/BuildForms.tsx:515 +#: src/forms/SalesOrderForms.tsx:248 +#: src/tables/build/BuildLineTable.tsx:174 +#: src/tables/sales/SalesOrderLineItemTable.tsx:276 +#: src/tables/stock/StockItemTable.tsx:309 +msgid "Allocated" +msgstr "" + +#: src/forms/BuildForms.tsx:545 +#: src/forms/SalesOrderForms.tsx:239 +#: src/pages/build/BuildDetail.tsx:208 +msgid "Source Location" +msgstr "" + +#: src/forms/BuildForms.tsx:546 +#: src/forms/SalesOrderForms.tsx:240 +msgid "Select the source location for the stock allocation" +msgstr "" + +#: src/forms/BuildForms.tsx:566 +#: src/forms/SalesOrderForms.tsx:274 +#: src/tables/build/BuildLineTable.tsx:442 +#: src/tables/build/BuildLineTable.tsx:569 +#: src/tables/build/BuildLineTable.tsx:642 +#: src/tables/sales/SalesOrderLineItemTable.tsx:302 +#: src/tables/sales/SalesOrderLineItemTable.tsx:326 +msgid "Allocate Stock" +msgstr "" + +#: src/forms/BuildForms.tsx:569 +#: src/forms/SalesOrderForms.tsx:279 +msgid "Stock items allocated" msgstr "" #: src/forms/CompanyForms.tsx:150 #~ msgid "Company updated" #~ msgstr "Company updated" +#: src/forms/PartForms.tsx:67 +#: src/forms/PartForms.tsx:154 +#: src/pages/part/CategoryDetail.tsx:117 +#: src/pages/part/PartDetail.tsx:384 +#: src/tables/part/PartCategoryTable.tsx:90 +#: src/tables/part/PartTable.tsx:294 +msgid "Subscribed" +msgstr "" + +#: src/forms/PartForms.tsx:68 +msgid "Subscribe to notifications for this part" +msgstr "" + #: src/forms/PartForms.tsx:106 #~ msgid "Create Part" #~ msgstr "Create Part" @@ -2751,191 +3354,190 @@ msgstr "" #~ msgid "Part created" #~ msgstr "Part created" -#: src/forms/PartForms.tsx:124 -msgid "Parent part category" -msgstr "" - #: src/forms/PartForms.tsx:129 #~ msgid "Part updated" #~ msgstr "Part updated" -#: src/forms/PurchaseOrderForms.tsx:300 +#: src/forms/PartForms.tsx:140 +msgid "Parent part category" +msgstr "" + +#: src/forms/PartForms.tsx:155 +msgid "Subscribe to notifications for this category" +msgstr "" + +#: src/forms/PurchaseOrderForms.tsx:314 +msgid "Assign Batch Code and Serial Numbers" +msgstr "" + +#: src/forms/PurchaseOrderForms.tsx:316 +msgid "Assign Batch Code" +msgstr "" + +#: src/forms/PurchaseOrderForms.tsx:336 msgid "Choose Location" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:308 +#: src/forms/PurchaseOrderForms.tsx:344 msgid "Item Destination selected" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:317 +#: src/forms/PurchaseOrderForms.tsx:353 msgid "Part category default location selected" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:327 +#: src/forms/PurchaseOrderForms.tsx:363 msgid "Received stock location selected" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:332 +#: src/forms/PurchaseOrderForms.tsx:368 msgid "Default location selected" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:343 -#: src/forms/PurchaseOrderForms.tsx:435 -msgid "Scan Barcode" -msgstr "" +#: src/forms/PurchaseOrderForms.tsx:421 +#~ msgid "Assign Batch Code{0}" +#~ msgstr "Assign Batch Code{0}" -#: src/forms/PurchaseOrderForms.tsx:388 +#: src/forms/PurchaseOrderForms.tsx:427 msgid "Set Location" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:396 -msgid "Assign Batch Code{0}" -msgstr "" - -#: src/forms/PurchaseOrderForms.tsx:405 -#: src/forms/StockForms.tsx:420 +#: src/forms/PurchaseOrderForms.tsx:442 +#: src/forms/StockForms.tsx:539 msgid "Adjust Packaging" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:412 -msgid "Change Status" -msgstr "" - -#: src/forms/PurchaseOrderForms.tsx:418 -msgid "Add Note" -msgstr "" - #: src/forms/PurchaseOrderForms.tsx:444 #: src/forms/StockForms.tsx:428 -msgid "Remove item from list" +#~ msgid "Remove item from list" +#~ msgstr "Remove item from list" + +#: src/forms/PurchaseOrderForms.tsx:450 +msgid "Change Status" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:471 -#: src/forms/StockForms.tsx:499 -#: src/forms/StockForms.tsx:533 -#: src/forms/StockForms.tsx:562 -#: src/forms/StockForms.tsx:590 -#: src/forms/StockForms.tsx:621 -#: src/forms/StockForms.tsx:656 -#: src/forms/StockForms.tsx:698 -#: src/forms/StockForms.tsx:734 -#: src/pages/stock/StockDetail.tsx:181 -#: src/tables/ColumnRenderers.tsx:49 -#: src/tables/stock/StockTrackingTable.tsx:85 +#: src/forms/PurchaseOrderForms.tsx:456 +msgid "Add Note" +msgstr "" + +#: src/forms/PurchaseOrderForms.tsx:503 +#: src/forms/StockForms.tsx:614 +#: src/forms/StockForms.tsx:651 +#: src/forms/StockForms.tsx:677 +#: src/forms/StockForms.tsx:705 +#: src/forms/StockForms.tsx:736 +#: src/forms/StockForms.tsx:771 +#: src/forms/StockForms.tsx:813 +#: src/forms/StockForms.tsx:851 +#: src/pages/stock/StockDetail.tsx:202 +#: src/tables/ColumnRenderers.tsx:60 +#: src/tables/stock/StockTrackingTable.tsx:89 msgid "Location" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:486 +#: src/forms/PurchaseOrderForms.tsx:518 msgid "Store at default location" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:499 +#: src/forms/PurchaseOrderForms.tsx:533 msgid "Store at line item destination" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:509 +#: src/forms/PurchaseOrderForms.tsx:545 msgid "Store with already received stock" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:524 -#: src/pages/build/BuildDetail.tsx:219 -#: src/pages/stock/StockDetail.tsx:162 -#: src/pages/stock/StockDetail.tsx:599 -#: src/tables/build/BuildAllocatedStockTable.tsx:109 -#: src/tables/build/BuildOrderTestTable.tsx:188 -#: src/tables/sales/SalesOrderAllocationTable.tsx:87 +#: src/forms/PurchaseOrderForms.tsx:566 +#: src/pages/build/BuildDetail.tsx:222 +#: src/pages/stock/StockDetail.tsx:185 +#: src/pages/stock/StockDetail.tsx:793 +#: src/tables/build/BuildAllocatedStockTable.tsx:130 +#: src/tables/build/BuildOrderTestTable.tsx:189 +#: src/tables/build/BuildOutputTable.tsx:86 +#: src/tables/sales/SalesOrderAllocationTable.tsx:113 msgid "Batch Code" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:535 -msgid "Serial numbers" +#: src/forms/PurchaseOrderForms.tsx:566 +#~ msgid "Serial numbers" +#~ msgstr "Serial numbers" + +#: src/forms/PurchaseOrderForms.tsx:567 +msgid "Enter batch code for received items" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:544 -#: src/forms/StockForms.tsx:443 -#: src/pages/company/SupplierPartDetail.tsx:156 -#: src/pages/company/SupplierPartDetail.tsx:207 -#: src/pages/stock/StockDetail.tsx:244 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:192 +#: src/forms/PurchaseOrderForms.tsx:579 +#: src/forms/StockForms.tsx:152 +msgid "Serial Numbers" +msgstr "" + +#: src/forms/PurchaseOrderForms.tsx:580 +msgid "Enter serial numbers for received items" +msgstr "" + +#: src/forms/PurchaseOrderForms.tsx:590 +#: src/forms/StockForms.tsx:556 +#: src/pages/company/SupplierPartDetail.tsx:168 +#: src/pages/company/SupplierPartDetail.tsx:219 +#: src/pages/stock/StockDetail.tsx:320 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:198 msgid "Packaging" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:556 -#: src/pages/build/BuildDetail.tsx:109 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:148 -#: src/pages/sales/ReturnOrderDetail.tsx:121 -#: src/pages/sales/SalesOrderDetail.tsx:127 -#: src/tables/build/BuildOrderTable.tsx:122 -#: src/tables/machine/MachineListTable.tsx:335 -#: src/tables/part/PartPurchaseOrdersTable.tsx:37 -#: src/tables/purchasing/PurchaseOrderTable.tsx:55 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:132 -#: src/tables/sales/ReturnOrderTable.tsx:46 -#: src/tables/sales/SalesOrderTable.tsx:53 -#: src/tables/settings/ImportSessionTable.tsx:115 -#: src/tables/stock/StockItemTable.tsx:294 -#: src/tables/stock/StockTrackingTable.tsx:52 -msgid "Status" -msgstr "" - -#: src/forms/PurchaseOrderForms.tsx:564 -#: src/pages/company/SupplierPartDetail.tsx:110 -#: src/tables/ColumnRenderers.tsx:132 +#: src/forms/PurchaseOrderForms.tsx:612 +#: src/pages/company/SupplierPartDetail.tsx:115 +#: src/tables/ColumnRenderers.tsx:143 msgid "Note" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/pages/company/SupplierPartDetail.tsx:128 -#: src/tables/purchasing/SupplierPriceBreakTable.tsx:57 -msgid "SKU" -msgstr "" - -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/tables/part/PartPurchaseOrdersTable.tsx:120 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:178 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:127 -msgid "Received" -msgstr "" - -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/forms/StockForms.tsx:499 -#: src/forms/StockForms.tsx:533 -#: src/forms/StockForms.tsx:562 -#: src/forms/StockForms.tsx:590 -#: src/forms/StockForms.tsx:621 -#: src/forms/StockForms.tsx:656 -#: src/forms/StockForms.tsx:698 -#: src/forms/StockForms.tsx:734 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:413 -#: src/tables/RowActions.tsx:113 -msgid "Actions" -msgstr "" - -#: src/forms/PurchaseOrderForms.tsx:655 -msgid "Receive Line Items" -msgstr "" - #: src/forms/PurchaseOrderForms.tsx:658 #~ msgid "Receive line items" #~ msgstr "Receive line items" -#: src/forms/StockForms.tsx:104 -msgid "Add given quantity as packs instead of individual items" +#: src/forms/PurchaseOrderForms.tsx:689 +#: src/pages/company/SupplierPartDetail.tsx:133 +#: src/tables/purchasing/SupplierPriceBreakTable.tsx:57 +msgid "SKU" +msgstr "" + +#: src/forms/PurchaseOrderForms.tsx:689 +#: src/tables/part/PartPurchaseOrdersTable.tsx:126 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:184 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:247 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:152 +msgid "Received" +msgstr "" + +#: src/forms/PurchaseOrderForms.tsx:701 +msgid "Receive Line Items" +msgstr "" + +#: src/forms/ReturnOrderForms.tsx:201 +msgid "Receive Items" +msgstr "" + +#: src/forms/ReturnOrderForms.tsx:208 +msgid "Item received into stock" +msgstr "" + +#: src/forms/StockForms.tsx:80 +#: src/hooks/UsePlaceholder.tsx:57 +msgid "Next serial number" msgstr "" #: src/forms/StockForms.tsx:110 #~ msgid "Create Stock Item" #~ msgstr "Create Stock Item" -#: src/forms/StockForms.tsx:117 +#: src/forms/StockForms.tsx:131 +msgid "Add given quantity as packs instead of individual items" +msgstr "" + +#: src/forms/StockForms.tsx:145 msgid "Enter initial quantity for this stock item" msgstr "" -#: src/forms/StockForms.tsx:124 -msgid "Serial Numbers" -msgstr "" - -#: src/forms/StockForms.tsx:125 +#: src/forms/StockForms.tsx:154 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" @@ -2943,82 +3545,102 @@ msgstr "" #~ msgid "Stock item updated" #~ msgstr "Stock item updated" -#: src/forms/StockForms.tsx:179 -#: src/pages/stock/StockDetail.tsx:434 -#: src/tables/stock/StockItemTable.tsx:417 -#: src/tables/stock/StockItemTable.tsx:535 +#: src/forms/StockForms.tsx:169 +#: src/pages/stock/StockDetail.tsx:131 +msgid "Stock Status" +msgstr "" + +#: src/forms/StockForms.tsx:218 +#: src/pages/stock/StockDetail.tsx:554 +#: src/tables/stock/StockItemTable.tsx:421 +#: src/tables/stock/StockItemTable.tsx:541 msgid "Add Stock Item" msgstr "" -#: src/forms/StockForms.tsx:362 +#: src/forms/StockForms.tsx:262 +msgid "Select the part to install" +msgstr "" + +#: src/forms/StockForms.tsx:480 msgid "Loading..." msgstr "" -#: src/forms/StockForms.tsx:408 +#: src/forms/StockForms.tsx:527 msgid "Move to default location" msgstr "" -#: src/forms/StockForms.tsx:499 -#: src/forms/StockForms.tsx:533 -#: src/forms/StockForms.tsx:562 -#: src/forms/StockForms.tsx:590 -#: src/forms/StockForms.tsx:621 -#: src/forms/StockForms.tsx:656 -#: src/forms/StockForms.tsx:698 -#: src/forms/StockForms.tsx:734 -#: src/pages/part/PartDetail.tsx:230 -#: src/pages/part/PartDetail.tsx:843 -#: src/tables/stock/StockItemTable.tsx:325 +#: src/forms/StockForms.tsx:614 +#: src/forms/StockForms.tsx:651 +#: src/forms/StockForms.tsx:677 +#: src/forms/StockForms.tsx:705 +#: src/forms/StockForms.tsx:736 +#: src/forms/StockForms.tsx:771 +#: src/forms/StockForms.tsx:813 +#: src/forms/StockForms.tsx:851 +#: src/pages/part/PartDetail.tsx:251 +#: src/pages/part/PartDetail.tsx:875 +#: src/tables/stock/StockItemTable.tsx:329 msgid "In Stock" msgstr "" -#: src/forms/StockForms.tsx:499 +#: src/forms/StockForms.tsx:614 msgid "Move" msgstr "" -#: src/forms/StockForms.tsx:562 -#: src/pages/stock/StockDetail.tsx:518 -#: src/tables/stock/StockItemTestResultTable.tsx:328 +#: src/forms/StockForms.tsx:677 +#: src/pages/stock/StockDetail.tsx:681 +#: src/tables/stock/StockItemTestResultTable.tsx:346 msgid "Add" msgstr "" -#: src/forms/StockForms.tsx:590 -#: src/pages/Index/Scan.tsx:266 -#: src/pages/stock/StockDetail.tsx:508 +#: src/forms/StockForms.tsx:705 +#: src/pages/Index/Scan.tsx:280 +#: src/pages/stock/StockDetail.tsx:670 msgid "Count" msgstr "" -#: src/forms/StockForms.tsx:835 +#: src/forms/StockForms.tsx:953 +#: src/pages/stock/StockDetail.tsx:682 +#: src/tables/stock/StockItemTable.tsx:454 msgid "Add Stock" msgstr "" -#: src/forms/StockForms.tsx:844 +#: src/forms/StockForms.tsx:962 +#: src/pages/stock/StockDetail.tsx:691 +#: src/tables/stock/StockItemTable.tsx:463 msgid "Remove Stock" msgstr "" -#: src/forms/StockForms.tsx:853 -#: src/pages/part/PartDetail.tsx:1017 +#: src/forms/StockForms.tsx:971 +#: src/pages/part/PartDetail.tsx:1039 +#: src/pages/stock/StockDetail.tsx:712 +#: src/tables/stock/StockItemTable.tsx:483 msgid "Transfer Stock" msgstr "" -#: src/forms/StockForms.tsx:862 -#: src/pages/part/PartDetail.tsx:1006 +#: src/forms/StockForms.tsx:980 +#: src/pages/part/PartDetail.tsx:1028 +#: src/pages/stock/LocationDetail.tsx:314 +#: src/pages/stock/LocationDetail.tsx:318 +#: src/tables/stock/StockItemTable.tsx:472 +#: src/tables/stock/StockItemTable.tsx:476 msgid "Count Stock" msgstr "" -#: src/forms/StockForms.tsx:871 +#: src/forms/StockForms.tsx:989 msgid "Change Stock Status" msgstr "" -#: src/forms/StockForms.tsx:880 +#: src/forms/StockForms.tsx:998 msgid "Merge Stock" msgstr "" -#: src/forms/StockForms.tsx:899 +#: src/forms/StockForms.tsx:1017 +#: src/tables/stock/StockItemTable.tsx:530 msgid "Delete Stock Items" msgstr "" -#: src/forms/StockForms.tsx:906 +#: src/forms/StockForms.tsx:1024 msgid "Parent stock location" msgstr "" @@ -3042,11 +3664,11 @@ msgstr "" #~ msgid "You have been logged out" #~ msgstr "You have been logged out" -#: src/functions/auth.tsx:117 +#: src/functions/auth.tsx:128 msgid "Logged Out" msgstr "" -#: src/functions/auth.tsx:118 +#: src/functions/auth.tsx:129 msgid "Successfully logged out" msgstr "" @@ -3062,20 +3684,20 @@ msgstr "" #~ msgid "Found an existing login - welcome back!" #~ msgstr "Found an existing login - welcome back!" -#: src/functions/auth.tsx:156 +#: src/functions/auth.tsx:167 msgid "Check your inbox for a reset link. This only works if you have an account. Check in spam too." msgstr "" -#: src/functions/auth.tsx:163 +#: src/functions/auth.tsx:174 #: src/pages/Auth/Set-Password.tsx:39 msgid "Reset failed" msgstr "" -#: src/functions/auth.tsx:194 +#: src/functions/auth.tsx:205 msgid "Logged In" msgstr "" -#: src/functions/auth.tsx:195 +#: src/functions/auth.tsx:206 msgid "Successfully logged in" msgstr "" @@ -3095,30 +3717,38 @@ msgstr "" #~ msgid "method parameter not supplied" #~ msgstr "method parameter not supplied" -#: src/functions/notifications.tsx:10 +#: src/functions/notifications.tsx:12 msgid "Not implemented" msgstr "" -#: src/functions/notifications.tsx:11 +#: src/functions/notifications.tsx:13 msgid "This feature is not yet implemented" msgstr "" -#: src/functions/notifications.tsx:21 -msgid "Permission denied" -msgstr "" +#: src/functions/notifications.tsx:24 +#~ msgid "Permission denied" +#~ msgstr "Permission denied" -#: src/functions/notifications.tsx:22 +#: src/functions/notifications.tsx:25 msgid "You do not have permission to perform this action" msgstr "" -#: src/functions/notifications.tsx:33 +#: src/functions/notifications.tsx:36 msgid "Invalid Return Code" msgstr "" -#: src/functions/notifications.tsx:34 +#: src/functions/notifications.tsx:37 msgid "Server returned status {returnCode}" msgstr "" +#: src/functions/notifications.tsx:47 +msgid "Timeout" +msgstr "" + +#: src/functions/notifications.tsx:48 +msgid "The request timed out" +msgstr "" + #: src/hooks/UseForm.tsx:88 msgid "Item Created" msgstr "" @@ -3135,20 +3765,24 @@ msgstr "" msgid "Are you sure you want to delete this item?" msgstr "" +#: src/hooks/UsePlaceholder.tsx:59 +msgid "Latest serial number" +msgstr "" + #: src/pages/Auth/Logged-In.tsx:22 msgid "Checking if you are already logged in" msgstr "" -#: src/pages/Auth/Login.tsx:31 -#: src/pages/Index/Scan.tsx:329 +#: src/pages/Auth/Login.tsx:35 +#: src/pages/Index/Scan.tsx:343 msgid "No selection" msgstr "" -#: src/pages/Auth/Login.tsx:87 +#: src/pages/Auth/Login.tsx:91 msgid "Welcome, log in below" msgstr "" -#: src/pages/Auth/Login.tsx:89 +#: src/pages/Auth/Login.tsx:93 msgid "Register below" msgstr "" @@ -3162,8 +3796,8 @@ msgstr "" #: src/pages/Auth/Reset.tsx:41 #: src/pages/Auth/Set-Password.tsx:112 -msgid "Send mail" -msgstr "" +#~ msgid "Send mail" +#~ msgstr "Send mail" #: src/pages/Auth/Set-Password.tsx:30 msgid "Token invalid" @@ -3174,22 +3808,22 @@ msgid "You need to provide a valid token to set a new password. Check your inbox msgstr "" #: src/pages/Auth/Set-Password.tsx:49 -msgid "No token provided" -msgstr "" +#~ msgid "No token provided" +#~ msgstr "No token provided" #: src/pages/Auth/Set-Password.tsx:50 -msgid "You need to provide a token to set a new password. Check your inbox for a reset link." -msgstr "" +#~ msgid "You need to provide a token to set a new password. Check your inbox for a reset link." +#~ msgstr "You need to provide a token to set a new password. Check your inbox for a reset link." -#: src/pages/Auth/Set-Password.tsx:73 +#: src/pages/Auth/Set-Password.tsx:68 msgid "Password set" msgstr "" -#: src/pages/Auth/Set-Password.tsx:74 +#: src/pages/Auth/Set-Password.tsx:69 msgid "The password was set successfully. You can now login with your new password" msgstr "" -#: src/pages/Auth/Set-Password.tsx:101 +#: src/pages/Auth/Set-Password.tsx:96 msgid "Set new password" msgstr "" @@ -3206,20 +3840,20 @@ msgstr "" #~ msgstr "Sorry, an unexpected error has occurred." #: src/pages/Index/Dashboard.tsx:22 -msgid "Autoupdate" -msgstr "" +#~ msgid "Autoupdate" +#~ msgstr "Autoupdate" #: src/pages/Index/Dashboard.tsx:26 -msgid "This page is a replacement for the old start page with the same information. This page will be deprecated and replaced by the home page." -msgstr "" +#~ msgid "This page is a replacement for the old start page with the same information. This page will be deprecated and replaced by the home page." +#~ msgstr "This page is a replacement for the old start page with the same information. This page will be deprecated and replaced by the home page." #: src/pages/Index/Home.tsx:58 -msgid "Welcome to your Dashboard{0}" -msgstr "" +#~ msgid "Welcome to your Dashboard{0}" +#~ msgstr "Welcome to your Dashboard{0}" #: src/pages/Index/Playground.tsx:222 -msgid "This page is a showcase for the possibilities of Platform UI." -msgstr "" +#~ msgid "This page is a showcase for the possibilities of Platform UI." +#~ msgstr "This page is a showcase for the possibilities of Platform UI." #: src/pages/Index/Profile/Profile.tsx:30 #: src/pages/Index/Profile/Profile.tsx:141 @@ -3365,125 +3999,190 @@ msgstr "" msgid "Image Barcode" msgstr "" -#: src/pages/Index/Scan.tsx:247 +#: src/pages/Index/Scan.tsx:261 msgid "Selected elements are not known" msgstr "" -#: src/pages/Index/Scan.tsx:254 +#: src/pages/Index/Scan.tsx:268 msgid "Multiple object types selected" msgstr "" -#: src/pages/Index/Scan.tsx:261 +#: src/pages/Index/Scan.tsx:275 msgid "Actions for {0}" msgstr "" -#: src/pages/Index/Scan.tsx:282 +#: src/pages/Index/Scan.tsx:296 msgid "Scan Page" msgstr "" -#: src/pages/Index/Scan.tsx:285 +#: src/pages/Index/Scan.tsx:299 msgid "This page can be used for continuously scanning items and taking actions on them." msgstr "" -#: src/pages/Index/Scan.tsx:292 +#: src/pages/Index/Scan.tsx:306 msgid "Toggle Fullscreen" msgstr "" -#: src/pages/Index/Scan.tsx:305 +#: src/pages/Index/Scan.tsx:319 msgid "Select the input method you want to use to scan items." msgstr "" -#: src/pages/Index/Scan.tsx:307 +#: src/pages/Index/Scan.tsx:321 msgid "Input" msgstr "" -#: src/pages/Index/Scan.tsx:314 +#: src/pages/Index/Scan.tsx:328 msgid "Select input method" msgstr "" -#: src/pages/Index/Scan.tsx:315 +#: src/pages/Index/Scan.tsx:329 msgid "Nothing found" msgstr "" -#: src/pages/Index/Scan.tsx:323 +#: src/pages/Index/Scan.tsx:337 msgid "Depending on the selected parts actions will be shown here. Not all barcode types are supported currently." msgstr "" -#: src/pages/Index/Scan.tsx:325 +#: src/pages/Index/Scan.tsx:339 msgid "Action" msgstr "" -#: src/pages/Index/Scan.tsx:334 +#: src/pages/Index/Scan.tsx:348 msgid "{0} items selected" msgstr "" -#: src/pages/Index/Scan.tsx:337 +#: src/pages/Index/Scan.tsx:351 msgid "General Actions" msgstr "" -#: src/pages/Index/Scan.tsx:351 +#: src/pages/Index/Scan.tsx:365 msgid "Lookup part" msgstr "" -#: src/pages/Index/Scan.tsx:359 +#: src/pages/Index/Scan.tsx:373 msgid "Open Link" msgstr "" -#: src/pages/Index/Scan.tsx:375 +#: src/pages/Index/Scan.tsx:389 msgid "History is locally kept in this browser." msgstr "" -#: src/pages/Index/Scan.tsx:376 +#: src/pages/Index/Scan.tsx:390 msgid "The history is kept in this browser's local storage. So it won't be shared with other users or other devices but is persistent through reloads. You can select items in the history to perform actions on them. To add items, scan/enter them in the Input area." msgstr "" -#: src/pages/Index/Scan.tsx:378 +#: src/pages/Index/Scan.tsx:392 #: src/pages/Notifications.tsx:100 msgid "History" msgstr "" -#: src/pages/Index/Scan.tsx:384 +#: src/pages/Index/Scan.tsx:398 msgid "Delete History" msgstr "" -#: src/pages/Index/Scan.tsx:449 +#: src/pages/Index/Scan.tsx:463 msgid "No history" msgstr "" -#: src/pages/Index/Scan.tsx:467 +#: src/pages/Index/Scan.tsx:481 msgid "Item" msgstr "" -#: src/pages/Index/Scan.tsx:470 +#: src/pages/Index/Scan.tsx:484 msgid "Type" msgstr "" -#: src/pages/Index/Scan.tsx:473 +#: src/pages/Index/Scan.tsx:487 msgid "Source" msgstr "" -#: src/pages/Index/Scan.tsx:476 +#: src/pages/Index/Scan.tsx:490 msgid "Scanned at" msgstr "" -#: src/pages/Index/Scan.tsx:528 +#: src/pages/Index/Scan.tsx:547 msgid "Enter item serial or data" msgstr "" -#: src/pages/Index/Scan.tsx:540 +#: src/pages/Index/Scan.tsx:559 msgid "Add dummy item" msgstr "" +#: src/pages/Index/Scan.tsx:569 +msgid "Start scanning by selecting a camera and pressing the play button." +msgstr "" + +#: src/pages/Index/Scan.tsx:650 +msgid "Error while getting camera" +msgstr "" + +#: src/pages/Index/Scan.tsx:673 +msgid "Error while scanning" +msgstr "" + +#: src/pages/Index/Scan.tsx:687 +msgid "Error while stopping" +msgstr "" + +#: src/pages/Index/Scan.tsx:745 +msgid "Stop scanning" +msgstr "" + +#: src/pages/Index/Scan.tsx:754 +msgid "Start scanning" +msgstr "" + +#: src/pages/Index/Scan.tsx:763 +msgid "Scanning" +msgstr "" + +#: src/pages/Index/Scan.tsx:763 +msgid "Not scanning" +msgstr "" + +#: src/pages/Index/Scan.tsx:775 +msgid "Select Camera" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:28 +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:50 +msgid "Edit User Information" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:32 +msgid "User details updated" +msgstr "" + #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:41 -msgid "Account Details" +msgid "User Details" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:41 +#~ msgid "Account Details" +#~ msgstr "Account Details" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:44 +msgid "User Actions" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:48 +msgid "Edit User" msgstr "" #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:50 -msgid "First name" +#~ msgid "First name" +#~ msgstr "First name" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:54 +msgid "Set Password" msgstr "" #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:55 -msgid "Last name" +#~ msgid "Last name" +#~ msgstr "Last name" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:56 +msgid "Set User Password" msgstr "" #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:58 @@ -3495,15 +4194,28 @@ msgstr "" #~ msgstr "Last name: {0}" #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:67 -msgid "First name:" -msgstr "" +#~ msgid "First name:" +#~ msgstr "First name:" #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:71 -msgid "Last name:" +#~ msgid "Last name:" +#~ msgstr "Last name:" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:73 +msgid "First Name" msgstr "" -#: src/pages/Index/Settings/AccountSettings/DisplaySettingsPanel.tsx:41 -msgid "Use pseudo language" +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:79 +msgid "Last Name" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:85 +msgid "Staff Access" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:93 +#: src/tables/settings/UserTable.tsx:293 +msgid "Superuser" msgstr "" #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:55 @@ -3600,27 +4312,6 @@ msgstr "" msgid "No tokens configured" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:398 -#: src/pages/part/PartDetail.tsx:297 -#: src/tables/bom/UsedInTable.tsx:84 -#: src/tables/build/BuildOrderTable.tsx:110 -#: src/tables/company/CompanyTable.tsx:61 -#: src/tables/company/CompanyTable.tsx:95 -#: src/tables/machine/MachineListTable.tsx:332 -#: src/tables/machine/MachineListTable.tsx:594 -#: src/tables/part/ParametricPartTable.tsx:223 -#: src/tables/part/PartTable.tsx:178 -#: src/tables/part/PartVariantTable.tsx:15 -#: src/tables/plugin/PluginListTable.tsx:149 -#: src/tables/plugin/PluginListTable.tsx:271 -#: src/tables/plugin/PluginListTable.tsx:563 -#: src/tables/purchasing/SupplierPartTable.tsx:98 -#: src/tables/purchasing/SupplierPartTable.tsx:187 -#: src/tables/settings/UserTable.tsx:284 -#: src/tables/stock/StockItemTable.tsx:289 -msgid "Active" -msgstr "" - #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:401 msgid "Expiry" msgstr "" @@ -3630,38 +4321,74 @@ msgid "Last Seen" msgstr "" #: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:65 -msgid "bars" -msgstr "" +#~ msgid "bars" +#~ msgstr "bars" #: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:66 -msgid "oval" -msgstr "" +#~ msgid "oval" +#~ msgstr "oval" #: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:67 -msgid "dots" -msgstr "" +#~ msgid "dots" +#~ msgstr "dots" #: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:81 -msgid "Theme" -msgstr "" +#~ msgid "Theme" +#~ msgstr "Theme" #: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:87 -msgid "Primary color" +#~ msgid "Primary color" +#~ msgstr "Primary color" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:88 +msgid "Bars" msgstr "" -#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:100 +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:89 +msgid "Oval" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:90 +msgid "Dots" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:101 +msgid "Display Settings" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:107 +msgid "Language" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:115 +msgid "Use pseudo language" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:122 +msgid "Color Mode" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:133 +msgid "Highlight color" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:145 +msgid "Example" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:151 msgid "White color" msgstr "" -#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:108 +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:167 msgid "Black color" msgstr "" -#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:116 +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:183 msgid "Border Radius" msgstr "" -#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:132 +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:199 msgid "Loader" msgstr "" @@ -3673,89 +4400,156 @@ msgstr "" #~ msgid "Advanced Amininistrative Options for InvenTree" #~ msgstr "Advanced Amininistrative Options for InvenTree" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:104 +#: src/pages/Index/Settings/AdminCenter/CurrencyManagmentPanel.tsx:27 +#: src/tables/ColumnRenderers.tsx:262 +msgid "Currency" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/CurrencyManagmentPanel.tsx:32 +msgid "Rate" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/CurrencyManagmentPanel.tsx:44 +msgid "Exchange rates updated" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/CurrencyManagmentPanel.tsx:50 +msgid "Exchange rate update error" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/CurrencyManagmentPanel.tsx:62 +msgid "Refresh currency exchange rates" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/CurrencyManagmentPanel.tsx:99 +msgid "Last fetched" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/CurrencyManagmentPanel.tsx:100 +msgid "Base currency" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:115 msgid "Data Import" msgstr "" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:110 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:121 +msgid "Barcode Scans" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:127 msgid "Background Tasks" msgstr "" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:116 -msgid "Error Reports" -msgstr "" - -#: src/pages/Index/Settings/AdminCenter/Index.tsx:122 -msgid "Currencies" -msgstr "" - #: src/pages/Index/Settings/AdminCenter/Index.tsx:127 #~ msgid "Templates" #~ msgstr "Templates" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:140 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:133 +msgid "Error Reports" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:139 +msgid "Currencies" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:157 +msgid "Custom States" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:163 +#: src/pages/Index/Settings/AdminCenter/UnitManagmentPanel.tsx:58 msgid "Custom Units" msgstr "" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:146 -#: src/pages/part/CategoryDetail.tsx:264 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:169 +#: src/pages/part/CategoryDetail.tsx:269 msgid "Part Parameters" msgstr "" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:152 -msgid "Category Parameters" -msgstr "" - -#: src/pages/Index/Settings/AdminCenter/Index.tsx:170 -msgid "Location Types" -msgstr "" - #: src/pages/Index/Settings/AdminCenter/Index.tsx:170 #~ msgid "Location types" #~ msgstr "Location types" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:182 -#: src/tables/machine/MachineTypeTable.tsx:287 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:175 +msgid "Category Parameters" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:181 +msgid "Stocktake" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:199 +msgid "Location Types" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:211 +#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:48 +#: src/tables/machine/MachineTypeTable.tsx:308 msgid "Machines" msgstr "" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:192 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:221 msgid "Quick Actions" msgstr "" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:197 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:226 msgid "Add a new user" msgstr "" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:222 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:252 msgid "Advanced Options" msgstr "" #: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:43 -msgid "Machine types" -msgstr "" +#~ msgid "Machine types" +#~ msgstr "Machine types" #: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:53 -msgid "Machine Error Stack" +#~ msgid "Machine Error Stack" +#~ msgstr "Machine Error Stack" + +#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:56 +msgid "Machine Types" msgstr "" #: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:62 -msgid "There are no machine registry errors." +#~ msgid "There are no machine registry errors." +#~ msgstr "There are no machine registry errors." + +#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:64 +msgid "Machine Errors" msgstr "" -#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:28 -#: src/tables/settings/UserTable.tsx:119 +#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:77 +msgid "Registry Registry Errors" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:80 +msgid "There are machine registry errors" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:86 +msgid "Machine Registry Errors" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:89 +msgid "There are no machine registry errors" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:31 +#: src/tables/settings/UserTable.tsx:118 msgid "Info" msgstr "" -#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:32 -msgid "External plugins are not enabled for this InvenTree installation." -msgstr "" - #: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:33 #~ msgid "Plugin Error Stack" #~ msgstr "Plugin Error Stack" +#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:35 +msgid "External plugins are not enabled for this InvenTree installation." +msgstr "" + #: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:45 #~ msgid "Warning" #~ msgstr "Warning" @@ -3764,34 +4558,46 @@ msgstr "" #~ msgid "Changing the settings below require you to immediately restart the server. Do not change this while under active usage." #~ msgstr "Changing the settings below require you to immediately restart the server. Do not change this while under active usage." -#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:50 +#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:73 msgid "Plugin Errors" msgstr "" -#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:59 -msgid "Plugin Settings" +#: src/pages/Index/Settings/AdminCenter/ReportTemplatePanel.tsx:17 +msgid "Page Size" msgstr "" -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:53 -msgid "Background Worker Not Running" +#: src/pages/Index/Settings/AdminCenter/ReportTemplatePanel.tsx:20 +msgid "Landscape" msgstr "" -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:54 +#: src/pages/Index/Settings/AdminCenter/ReportTemplatePanel.tsx:26 +msgid "Attach to Model" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/StocktakePanel.tsx:25 +msgid "Stocktake Reports" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:30 msgid "The background task manager service is not running. Contact your system administrator." msgstr "" -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:60 -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:76 +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:35 +#~ msgid "Background Worker Not Running" +#~ msgstr "Background Worker Not Running" + +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:36 +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:45 msgid "Pending Tasks" msgstr "" -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:64 -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:84 +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:37 +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:53 msgid "Scheduled Tasks" msgstr "" -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:68 -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:92 +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:38 +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:61 msgid "Failed Tasks" msgstr "" @@ -3811,11 +4617,6 @@ msgstr "" #~ msgid "Reports" #~ msgstr "Reports" -#: src/pages/Index/Settings/AdminCenter/TemplateManagementPanel.tsx:89 -#: src/pages/build/BuildDetail.tsx:373 -#~ msgid "Report" -#~ msgstr "Report" - #: src/pages/Index/Settings/AdminCenter/TemplateManagementPanel.tsx:99 #~ msgid "Purchase order" #~ msgstr "Purchase order" @@ -3836,23 +4637,35 @@ msgstr "" #~ msgid "Stock location" #~ msgstr "Stock location" +#: src/pages/Index/Settings/AdminCenter/UnitManagmentPanel.tsx:21 +msgid "Alias" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/UnitManagmentPanel.tsx:22 +msgid "Dimensionless" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/UnitManagmentPanel.tsx:66 +msgid "All units" +msgstr "" + #: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:32 msgid "Select settings relevant for user lifecycle. More available in" msgstr "" #: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:37 -msgid "System settings" -msgstr "" +#~ msgid "System settings" +#~ msgstr "System settings" -#: src/pages/Index/Settings/SystemSettings.tsx:67 +#: src/pages/Index/Settings/SystemSettings.tsx:66 msgid "Login" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:93 +#: src/pages/Index/Settings/SystemSettings.tsx:92 msgid "Barcodes" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:115 +#: src/pages/Index/Settings/SystemSettings.tsx:116 msgid "Pricing" msgstr "" @@ -3864,64 +4677,46 @@ msgstr "" #~ msgid "Exchange Rates" #~ msgstr "Exchange Rates" -#: src/pages/Index/Settings/SystemSettings.tsx:150 +#: src/pages/Index/Settings/SystemSettings.tsx:151 msgid "Labels" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:156 -#: src/pages/Index/Settings/UserSettings.tsx:132 +#: src/pages/Index/Settings/SystemSettings.tsx:157 +#: src/pages/Index/Settings/UserSettings.tsx:133 msgid "Reporting" msgstr "" #: src/pages/Index/Settings/SystemSettings.tsx:231 -#: src/pages/part/PartDetail.tsx:682 -msgid "Stocktake" -msgstr "" - -#: src/pages/Index/Settings/SystemSettings.tsx:237 -#: src/pages/build/BuildDetail.tsx:554 -#: src/pages/build/BuildIndex.tsx:22 -#: src/pages/part/PartDetail.tsx:616 -#: src/pages/sales/SalesOrderDetail.tsx:333 +#: src/pages/build/BuildIndex.tsx:27 +#: src/pages/part/PartDetail.tsx:636 +#: src/pages/sales/SalesOrderDetail.tsx:355 msgid "Build Orders" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:318 -msgid "Switch to User Setting" -msgstr "" +#: src/pages/Index/Settings/SystemSettings.tsx:317 +#~ msgid "Switch to User Setting" +#~ msgstr "Switch to User Setting" -#: src/pages/Index/Settings/UserSettings.tsx:34 +#: src/pages/Index/Settings/UserSettings.tsx:35 msgid "Account" msgstr "" -#: src/pages/Index/Settings/UserSettings.tsx:40 +#: src/pages/Index/Settings/UserSettings.tsx:41 msgid "Security" msgstr "" -#: src/pages/Index/Settings/UserSettings.tsx:78 +#: src/pages/Index/Settings/UserSettings.tsx:79 msgid "Display Options" msgstr "" -#: src/pages/Index/Settings/UserSettings.tsx:150 -msgid "Account Settings" -msgstr "" - -#: src/pages/Index/Settings/UserSettings.tsx:158 -msgid "Switch to System Setting" -msgstr "" - -#: src/pages/Index/UserSettings.tsx:103 -#~ msgid "User Settings" -#~ msgstr "User Settings" +#: src/pages/Index/Settings/UserSettings.tsx:159 +#~ msgid "Switch to System Setting" +#~ msgstr "Switch to System Setting" #: src/pages/Logged-In.tsx:24 #~ msgid "Found an exsisting login - using it to log you in." #~ msgstr "Found an exsisting login - using it to log you in." -#: src/pages/NotFound.tsx:17 -#~ msgid "Not Found" -#~ msgstr "Not Found" - #: src/pages/NotFound.tsx:20 #~ msgid "Sorry, this page is not known or was moved." #~ msgstr "Sorry, this page is not known or was moved." @@ -3942,104 +4737,86 @@ msgstr "" #~ msgid "Build Status" #~ msgstr "Build Status" -#: src/pages/build/BuildDetail.tsx:102 -#: src/pages/part/PartDetail.tsx:150 +#: src/pages/build/BuildDetail.tsx:97 +#: src/pages/company/ManufacturerPartDetail.tsx:81 +#: src/pages/company/SupplierPartDetail.tsx:91 +#: src/pages/part/PartDetail.tsx:171 +#: src/pages/stock/StockDetail.tsx:122 #: src/tables/bom/BomTable.tsx:118 #: src/tables/bom/UsedInTable.tsx:39 -#: src/tables/build/BuildLineTable.tsx:173 -#: src/tables/build/BuildOrderTable.tsx:55 -#: src/tables/sales/SalesOrderLineItemTable.tsx:62 -#: src/tables/stock/StockItemTable.tsx:53 +#: src/tables/build/BuildAllocatedStockTable.tsx:104 +#: src/tables/build/BuildLineTable.tsx:324 +#: src/tables/build/BuildOrderTable.tsx:64 +#: src/tables/sales/SalesOrderLineItemTable.tsx:70 +#: src/tables/stock/StockItemTable.tsx:54 msgid "IPN" msgstr "" -#: src/pages/build/BuildDetail.tsx:115 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:121 -#: src/pages/sales/ReturnOrderDetail.tsx:95 -#: src/pages/sales/SalesOrderDetail.tsx:101 -#: src/tables/ColumnRenderers.tsx:121 -#: src/tables/build/BuildAllocatedStockTable.tsx:90 -#: src/tables/build/BuildLineTable.tsx:184 +#: src/pages/build/BuildDetail.tsx:110 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:115 +#: src/pages/sales/ReturnOrderDetail.tsx:86 +#: src/pages/sales/SalesOrderDetail.tsx:95 +#: src/tables/ColumnRenderers.tsx:132 +#: src/tables/build/BuildAllocatedStockTable.tsx:111 +#: src/tables/build/BuildLineTable.tsx:335 msgid "Reference" msgstr "" -#: src/pages/build/BuildDetail.tsx:121 -#: src/pages/company/CompanyDetail.tsx:90 -#: src/pages/company/ManufacturerPartDetail.tsx:83 -#: src/pages/company/SupplierPartDetail.tsx:96 -#: src/pages/part/CategoryDetail.tsx:101 -#: src/pages/part/PartDetail.tsx:157 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:142 -#: src/pages/sales/ReturnOrderDetail.tsx:115 -#: src/pages/sales/SalesOrderDetail.tsx:121 -#: src/pages/stock/LocationDetail.tsx:109 -#: src/tables/ColumnRenderers.tsx:81 -#: src/tables/bom/UsedInTable.tsx:44 -#: src/tables/build/BuildAllocatedStockTable.tsx:70 -#: src/tables/build/BuildLineTable.tsx:178 -#: src/tables/machine/MachineTypeTable.tsx:69 -#: src/tables/machine/MachineTypeTable.tsx:112 -#: src/tables/machine/MachineTypeTable.tsx:219 -#: src/tables/machine/MachineTypeTable.tsx:323 -#: src/tables/part/RelatedPartTable.tsx:64 -#: src/tables/plugin/PluginListTable.tsx:129 -#: src/tables/plugin/PluginListTable.tsx:276 -#: src/tables/sales/SalesOrderAllocationTable.tsx:56 -#: src/tables/sales/SalesOrderLineItemTable.tsx:67 -#: src/tables/stock/LocationTypesTable.tsx:74 -msgid "Description" -msgstr "" - -#: src/pages/build/BuildDetail.tsx:129 +#: src/pages/build/BuildDetail.tsx:124 msgid "Parent Build" msgstr "" -#: src/pages/build/BuildDetail.tsx:140 +#: src/pages/build/BuildDetail.tsx:135 msgid "Build Quantity" msgstr "" -#: src/pages/build/BuildDetail.tsx:148 -#: src/pages/build/BuildDetail.tsx:274 +#: src/pages/build/BuildDetail.tsx:143 +#: src/pages/build/BuildDetail.tsx:277 msgid "Completed Outputs" msgstr "" -#: src/pages/build/BuildDetail.tsx:165 -#: src/tables/build/BuildOrderTable.tsx:151 +#: src/pages/build/BuildDetail.tsx:160 +#: src/tables/build/BuildOrderTable.tsx:142 msgid "Issued By" msgstr "" -#: src/pages/build/BuildDetail.tsx:172 -#: src/pages/part/PartDetail.tsx:365 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:220 -#: src/pages/sales/ReturnOrderDetail.tsx:199 -#: src/pages/sales/SalesOrderDetail.tsx:208 -#: src/tables/build/BuildOrderTable.tsx:157 -#: src/tables/purchasing/PurchaseOrderTable.tsx:75 -#: src/tables/sales/ReturnOrderTable.tsx:66 -#: src/tables/sales/SalesOrderTable.tsx:73 +#: src/pages/build/BuildDetail.tsx:167 +#: src/pages/part/PartDetail.tsx:406 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:244 +#: src/pages/sales/ReturnOrderDetail.tsx:216 +#: src/pages/sales/SalesOrderDetail.tsx:226 +#: src/tables/build/BuildOrderTable.tsx:148 +#: src/tables/purchasing/PurchaseOrderTable.tsx:76 +#: src/tables/sales/ReturnOrderTable.tsx:74 +#: src/tables/sales/SalesOrderTable.tsx:74 msgid "Responsible" msgstr "" -#: src/pages/build/BuildDetail.tsx:179 -#: src/tables/settings/PendingTasksTable.tsx:32 +#: src/pages/build/BuildDetail.tsx:174 +#: src/tables/settings/PendingTasksTable.tsx:36 msgid "Created" msgstr "" +#: src/pages/build/BuildDetail.tsx:181 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:229 +#: src/pages/sales/ReturnOrderDetail.tsx:201 +#: src/pages/sales/SalesOrderDetail.tsx:212 +#: src/tables/ColumnRenderers.tsx:226 +#: src/tables/part/PartPurchaseOrdersTable.tsx:100 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:135 +#: src/tables/sales/SalesOrderLineItemTable.tsx:107 +msgid "Target Date" +msgstr "" + #: src/pages/build/BuildDetail.tsx:185 #: src/pages/part/PartDetail.tsx:269 #: src/pages/stock/StockDetail.tsx:150 #~ msgid "View part barcode" #~ msgstr "View part barcode" -#: src/pages/build/BuildDetail.tsx:186 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:213 -#: src/pages/sales/ReturnOrderDetail.tsx:192 -#: src/pages/sales/SalesOrderDetail.tsx:201 -#: src/tables/ColumnRenderers.tsx:212 -#: src/tables/part/PartPurchaseOrdersTable.tsx:99 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:110 -#: src/tables/sales/SalesOrderLineItemTable.tsx:99 -msgid "Target Date" +#: src/pages/build/BuildDetail.tsx:188 +#: src/tables/sales/SalesOrderLineItemTable.tsx:281 +msgid "Completed" msgstr "" #: src/pages/build/BuildDetail.tsx:190 @@ -4047,10 +4824,6 @@ msgstr "" #~ msgid "Link custom barcode to part" #~ msgstr "Link custom barcode to part" -#: src/pages/build/BuildDetail.tsx:193 -msgid "Completed" -msgstr "" - #: src/pages/build/BuildDetail.tsx:196 #: src/pages/part/PartDetail.tsx:280 #~ msgid "Unlink custom barcode from part" @@ -4060,15 +4833,11 @@ msgstr "" #~ msgid "Build Order updated" #~ msgstr "Build Order updated" -#: src/pages/build/BuildDetail.tsx:205 -msgid "Source Location" -msgstr "" - -#: src/pages/build/BuildDetail.tsx:206 +#: src/pages/build/BuildDetail.tsx:209 msgid "Any location" msgstr "" -#: src/pages/build/BuildDetail.tsx:213 +#: src/pages/build/BuildDetail.tsx:216 msgid "Destination Location" msgstr "" @@ -4084,206 +4853,182 @@ msgstr "" #~ msgid "Delete build order" #~ msgstr "Delete build order" -#: src/pages/build/BuildDetail.tsx:251 +#: src/pages/build/BuildDetail.tsx:254 msgid "Build Details" msgstr "" -#: src/pages/build/BuildDetail.tsx:257 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:258 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:267 -#: src/pages/sales/ReturnOrderDetail.tsx:130 -#: src/pages/sales/ReturnOrderDetail.tsx:237 -#: src/pages/sales/ReturnOrderDetail.tsx:246 -#: src/pages/sales/SalesOrderDetail.tsx:272 -#: src/pages/sales/SalesOrderDetail.tsx:281 +#: src/pages/build/BuildDetail.tsx:260 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:282 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:291 +#: src/pages/sales/ReturnOrderDetail.tsx:122 +#: src/pages/sales/ReturnOrderDetail.tsx:254 +#: src/pages/sales/ReturnOrderDetail.tsx:263 +#: src/pages/sales/SalesOrderDetail.tsx:294 +#: src/pages/sales/SalesOrderDetail.tsx:303 msgid "Line Items" msgstr "" -#: src/pages/build/BuildDetail.tsx:267 +#: src/pages/build/BuildDetail.tsx:266 msgid "Incomplete Outputs" msgstr "" -#: src/pages/build/BuildDetail.tsx:289 -#: src/pages/sales/SalesOrderDetail.tsx:319 +#: src/pages/build/BuildDetail.tsx:292 +#: src/pages/sales/SalesOrderDetail.tsx:341 msgid "Allocated Stock" msgstr "" -#: src/pages/build/BuildDetail.tsx:299 +#: src/pages/build/BuildDetail.tsx:302 msgid "Consumed Stock" msgstr "" -#: src/pages/build/BuildDetail.tsx:313 +#: src/pages/build/BuildDetail.tsx:316 msgid "Child Build Orders" msgstr "" #: src/pages/build/BuildDetail.tsx:326 -#: src/tables/build/BuildOutputTable.tsx:384 -#: src/tables/stock/StockItemTestResultTable.tsx:150 +#: src/tables/build/BuildOutputTable.tsx:532 +#: src/tables/stock/StockItemTestResultTable.tsx:156 msgid "Test Results" msgstr "" #: src/pages/build/BuildDetail.tsx:337 -#: src/pages/part/PartDetail.tsx:699 +#: src/pages/part/PartDetail.tsx:740 msgid "Test Statistics" msgstr "" -#: src/pages/build/BuildDetail.tsx:351 -#: src/pages/company/CompanyDetail.tsx:259 -#: src/pages/company/ManufacturerPartDetail.tsx:179 -#: src/pages/part/PartDetail.tsx:721 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:309 -#: src/pages/sales/ReturnOrderDetail.tsx:274 -#: src/pages/sales/SalesOrderDetail.tsx:343 -#: src/pages/stock/StockDetail.tsx:385 -msgid "Attachments" -msgstr "" - -#: src/pages/build/BuildDetail.tsx:359 -#: src/pages/company/CompanyDetail.tsx:270 -#: src/pages/company/ManufacturerPartDetail.tsx:190 -#: src/pages/company/SupplierPartDetail.tsx:257 -#: src/pages/part/PartDetail.tsx:729 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:320 -#: src/pages/sales/ReturnOrderDetail.tsx:285 -#: src/pages/sales/SalesOrderDetail.tsx:354 -#: src/pages/stock/StockDetail.tsx:396 -#: src/tables/build/BuildOrderTestTable.tsx:142 -#: src/tables/stock/StockTrackingTable.tsx:189 -msgid "Notes" +#: src/pages/build/BuildDetail.tsx:365 +msgid "Edit Build Order" msgstr "" #: src/pages/build/BuildDetail.tsx:368 #~ msgid "Reporting Actions" #~ msgstr "Reporting Actions" +#: src/pages/build/BuildDetail.tsx:372 +#: src/tables/build/BuildOrderTable.tsx:173 +#: src/tables/build/BuildOrderTable.tsx:188 +msgid "Add Build Order" +msgstr "" + #: src/pages/build/BuildDetail.tsx:374 #~ msgid "Print build report" #~ msgstr "Print build report" -#: src/pages/build/BuildDetail.tsx:377 -msgid "Edit Build Order" -msgstr "" - -#: src/pages/build/BuildDetail.tsx:384 -#: src/tables/build/BuildOrderTable.tsx:172 -#: src/tables/build/BuildOrderTable.tsx:187 -msgid "Add Build Order" -msgstr "" - -#: src/pages/build/BuildDetail.tsx:398 +#: src/pages/build/BuildDetail.tsx:386 msgid "Cancel Build Order" msgstr "" -#: src/pages/build/BuildDetail.tsx:400 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:348 -#: src/pages/sales/SalesOrderDetail.tsx:380 +#: src/pages/build/BuildDetail.tsx:388 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:357 +#: src/pages/sales/ReturnOrderDetail.tsx:354 +#: src/pages/sales/SalesOrderDetail.tsx:387 msgid "Order cancelled" msgstr "" -#: src/pages/build/BuildDetail.tsx:401 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:347 -#: src/pages/sales/ReturnOrderDetail.tsx:346 -#: src/pages/sales/SalesOrderDetail.tsx:379 +#: src/pages/build/BuildDetail.tsx:389 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:356 +#: src/pages/sales/ReturnOrderDetail.tsx:353 +#: src/pages/sales/SalesOrderDetail.tsx:386 msgid "Cancel this order" msgstr "" -#: src/pages/build/BuildDetail.tsx:410 +#: src/pages/build/BuildDetail.tsx:398 msgid "Hold Build Order" msgstr "" -#: src/pages/build/BuildDetail.tsx:412 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:355 -#: src/pages/sales/ReturnOrderDetail.tsx:354 -#: src/pages/sales/SalesOrderDetail.tsx:387 +#: src/pages/build/BuildDetail.tsx:400 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:364 +#: src/pages/sales/ReturnOrderDetail.tsx:361 +#: src/pages/sales/SalesOrderDetail.tsx:394 msgid "Place this order on hold" msgstr "" -#: src/pages/build/BuildDetail.tsx:413 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:356 -#: src/pages/sales/ReturnOrderDetail.tsx:355 -#: src/pages/sales/SalesOrderDetail.tsx:388 +#: src/pages/build/BuildDetail.tsx:401 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:365 +#: src/pages/sales/ReturnOrderDetail.tsx:362 +#: src/pages/sales/SalesOrderDetail.tsx:395 msgid "Order placed on hold" msgstr "" -#: src/pages/build/BuildDetail.tsx:418 +#: src/pages/build/BuildDetail.tsx:406 msgid "Issue Build Order" msgstr "" -#: src/pages/build/BuildDetail.tsx:420 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:339 -#: src/pages/sales/ReturnOrderDetail.tsx:338 -#: src/pages/sales/SalesOrderDetail.tsx:371 +#: src/pages/build/BuildDetail.tsx:408 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:348 +#: src/pages/sales/ReturnOrderDetail.tsx:345 +#: src/pages/sales/SalesOrderDetail.tsx:378 msgid "Issue this order" msgstr "" -#: src/pages/build/BuildDetail.tsx:421 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:340 -#: src/pages/sales/ReturnOrderDetail.tsx:339 -#: src/pages/sales/SalesOrderDetail.tsx:372 +#: src/pages/build/BuildDetail.tsx:409 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:349 +#: src/pages/sales/ReturnOrderDetail.tsx:346 +#: src/pages/sales/SalesOrderDetail.tsx:379 msgid "Order issued" msgstr "" -#: src/pages/build/BuildDetail.tsx:426 +#: src/pages/build/BuildDetail.tsx:414 msgid "Complete Build Order" msgstr "" -#: src/pages/build/BuildDetail.tsx:428 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:368 -#: src/pages/sales/ReturnOrderDetail.tsx:362 -#: src/pages/sales/SalesOrderDetail.tsx:395 +#: src/pages/build/BuildDetail.tsx:416 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:377 +#: src/pages/sales/ReturnOrderDetail.tsx:369 +#: src/pages/sales/SalesOrderDetail.tsx:402 msgid "Mark this order as complete" msgstr "" -#: src/pages/build/BuildDetail.tsx:429 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:362 -#: src/pages/sales/ReturnOrderDetail.tsx:363 -#: src/pages/sales/SalesOrderDetail.tsx:396 +#: src/pages/build/BuildDetail.tsx:417 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:371 +#: src/pages/sales/ReturnOrderDetail.tsx:370 +#: src/pages/sales/SalesOrderDetail.tsx:403 msgid "Order completed" msgstr "" -#: src/pages/build/BuildDetail.tsx:460 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:391 -#: src/pages/sales/ReturnOrderDetail.tsx:392 -#: src/pages/sales/SalesOrderDetail.tsx:425 +#: src/pages/build/BuildDetail.tsx:448 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:400 +#: src/pages/sales/ReturnOrderDetail.tsx:399 +#: src/pages/sales/SalesOrderDetail.tsx:432 msgid "Issue Order" msgstr "" -#: src/pages/build/BuildDetail.tsx:467 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:398 -#: src/pages/sales/ReturnOrderDetail.tsx:399 -#: src/pages/sales/SalesOrderDetail.tsx:439 +#: src/pages/build/BuildDetail.tsx:455 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:407 +#: src/pages/sales/ReturnOrderDetail.tsx:406 +#: src/pages/sales/SalesOrderDetail.tsx:446 msgid "Complete Order" msgstr "" -#: src/pages/build/BuildDetail.tsx:496 +#: src/pages/build/BuildDetail.tsx:473 msgid "Build Order Actions" msgstr "" -#: src/pages/build/BuildDetail.tsx:502 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:432 -#: src/pages/sales/ReturnOrderDetail.tsx:433 -#: src/pages/sales/SalesOrderDetail.tsx:474 +#: src/pages/build/BuildDetail.tsx:478 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:429 +#: src/pages/sales/ReturnOrderDetail.tsx:428 +#: src/pages/sales/SalesOrderDetail.tsx:469 msgid "Edit order" msgstr "" -#: src/pages/build/BuildDetail.tsx:506 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:440 -#: src/pages/sales/ReturnOrderDetail.tsx:439 -#: src/pages/sales/SalesOrderDetail.tsx:479 +#: src/pages/build/BuildDetail.tsx:482 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:437 +#: src/pages/sales/ReturnOrderDetail.tsx:434 +#: src/pages/sales/SalesOrderDetail.tsx:474 msgid "Duplicate order" msgstr "" -#: src/pages/build/BuildDetail.tsx:510 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:443 -#: src/pages/sales/ReturnOrderDetail.tsx:444 -#: src/pages/sales/SalesOrderDetail.tsx:482 +#: src/pages/build/BuildDetail.tsx:486 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:440 +#: src/pages/sales/ReturnOrderDetail.tsx:439 +#: src/pages/sales/SalesOrderDetail.tsx:477 msgid "Hold order" msgstr "" -#: src/pages/build/BuildDetail.tsx:515 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:448 -#: src/pages/sales/ReturnOrderDetail.tsx:449 -#: src/pages/sales/SalesOrderDetail.tsx:487 +#: src/pages/build/BuildDetail.tsx:491 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:445 +#: src/pages/sales/ReturnOrderDetail.tsx:444 +#: src/pages/sales/SalesOrderDetail.tsx:482 msgid "Cancel order" msgstr "" @@ -4295,56 +5040,60 @@ msgstr "" #~ msgid "New Build Order" #~ msgstr "New Build Order" -#: src/pages/company/CompanyDetail.tsx:104 +#: src/pages/company/CompanyDetail.tsx:95 +msgid "Website" +msgstr "" + +#: src/pages/company/CompanyDetail.tsx:103 msgid "Phone Number" msgstr "" -#: src/pages/company/CompanyDetail.tsx:111 +#: src/pages/company/CompanyDetail.tsx:110 msgid "Email Address" msgstr "" -#: src/pages/company/CompanyDetail.tsx:121 +#: src/pages/company/CompanyDetail.tsx:120 msgid "Default Currency" msgstr "" -#: src/pages/company/CompanyDetail.tsx:126 +#: src/pages/company/CompanyDetail.tsx:125 #: src/pages/company/SupplierDetail.tsx:8 -#: src/pages/company/SupplierPartDetail.tsx:120 -#: src/pages/company/SupplierPartDetail.tsx:206 -#: src/pages/company/SupplierPartDetail.tsx:351 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:136 -#: src/tables/company/CompanyTable.tsx:100 +#: src/pages/company/SupplierPartDetail.tsx:125 +#: src/pages/company/SupplierPartDetail.tsx:218 +#: src/pages/company/SupplierPartDetail.tsx:340 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:130 +#: src/tables/company/CompanyTable.tsx:101 #: src/tables/part/PartPurchaseOrdersTable.tsx:42 -#: src/tables/purchasing/PurchaseOrderTable.tsx:88 +#: src/tables/purchasing/PurchaseOrderTable.tsx:89 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:36 msgid "Supplier" msgstr "" -#: src/pages/company/CompanyDetail.tsx:132 +#: src/pages/company/CompanyDetail.tsx:131 #: src/pages/company/ManufacturerDetail.tsx:8 -#: src/pages/company/ManufacturerPartDetail.tsx:101 -#: src/pages/company/ManufacturerPartDetail.tsx:267 -#: src/pages/company/SupplierPartDetail.tsx:135 -#: src/tables/company/CompanyTable.tsx:105 +#: src/pages/company/ManufacturerPartDetail.tsx:100 +#: src/pages/company/ManufacturerPartDetail.tsx:262 +#: src/pages/company/SupplierPartDetail.tsx:147 +#: src/tables/company/CompanyTable.tsx:106 msgid "Manufacturer" msgstr "" -#: src/pages/company/CompanyDetail.tsx:138 +#: src/pages/company/CompanyDetail.tsx:137 #: src/pages/company/CustomerDetail.tsx:8 -#: src/pages/part/pricing/SaleHistoryPanel.tsx:29 -#: src/pages/sales/ReturnOrderDetail.tsx:109 -#: src/pages/sales/SalesOrderDetail.tsx:115 -#: src/pages/stock/StockDetail.tsx:230 -#: src/tables/company/CompanyTable.tsx:110 -#: src/tables/sales/ReturnOrderTable.tsx:78 -#: src/tables/sales/SalesOrderTable.tsx:108 -#: src/tables/stock/StockTrackingTable.tsx:140 +#: src/pages/part/pricing/SaleHistoryPanel.tsx:31 +#: src/pages/sales/ReturnOrderDetail.tsx:101 +#: src/pages/sales/SalesOrderDetail.tsx:110 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:100 +#: src/pages/stock/StockDetail.tsx:271 +#: src/tables/company/CompanyTable.tsx:111 +#: src/tables/sales/ReturnOrderTable.tsx:97 +#: src/tables/sales/SalesOrderTable.tsx:121 +#: src/tables/stock/StockTrackingTable.tsx:144 msgid "Customer" msgstr "" #: src/pages/company/CompanyDetail.tsx:172 -#: src/tables/stock/StockTrackingTable.tsx:183 -msgid "Details" +msgid "Company Details" msgstr "" #: src/pages/company/CompanyDetail.tsx:175 @@ -4363,140 +5112,150 @@ msgstr "" #~ msgid "Delete company" #~ msgstr "Delete company" -#: src/pages/company/CompanyDetail.tsx:232 +#: src/pages/company/CompanyDetail.tsx:234 msgid "Assigned Stock" msgstr "" -#: src/pages/company/CompanyDetail.tsx:290 -#: src/tables/company/CompanyTable.tsx:86 +#: src/pages/company/CompanyDetail.tsx:273 +#: src/tables/company/CompanyTable.tsx:87 msgid "Edit Company" msgstr "" -#: src/pages/company/CompanyDetail.tsx:298 +#: src/pages/company/CompanyDetail.tsx:281 msgid "Delete Company" msgstr "" -#: src/pages/company/CompanyDetail.tsx:306 +#: src/pages/company/CompanyDetail.tsx:289 msgid "Company Actions" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:76 -#: src/pages/company/SupplierPartDetail.tsx:89 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:128 +#: src/pages/company/ManufacturerPartDetail.tsx:74 +#: src/pages/company/SupplierPartDetail.tsx:84 msgid "Internal Part" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:91 -#: src/pages/company/SupplierPartDetail.tsx:103 -msgid "External Link" -msgstr "" - -#: src/pages/company/ManufacturerPartDetail.tsx:109 -#: src/pages/company/SupplierPartDetail.tsx:144 -#: src/tables/purchasing/ManufacturerPartTable.tsx:56 +#: src/pages/company/ManufacturerPartDetail.tsx:108 +#: src/pages/company/SupplierPartDetail.tsx:156 +#: src/tables/purchasing/ManufacturerPartTable.tsx:58 msgid "Manufacturer Part Number" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:138 +#: src/pages/company/ManufacturerPartDetail.tsx:125 +#: src/pages/company/SupplierPartDetail.tsx:108 +msgid "External Link" +msgstr "" + +#: src/pages/company/ManufacturerPartDetail.tsx:146 +#: src/pages/company/SupplierPartDetail.tsx:215 +#: src/pages/part/PartDetail.tsx:576 +msgid "Part Details" +msgstr "" + +#: src/pages/company/ManufacturerPartDetail.tsx:149 msgid "Manufacturer Details" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:147 +#: src/pages/company/ManufacturerPartDetail.tsx:158 msgid "Manufacturer Part Details" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:153 -#: src/pages/part/PartDetail.tsx:532 +#: src/pages/company/ManufacturerPartDetail.tsx:164 +#: src/pages/part/PartDetail.tsx:582 msgid "Parameters" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:165 -#: src/pages/part/PartDetail.tsx:649 +#: src/pages/company/ManufacturerPartDetail.tsx:176 +#: src/pages/part/PartDetail.tsx:669 #: src/pages/purchasing/PurchasingIndex.tsx:31 msgid "Suppliers" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:208 -#: src/tables/purchasing/ManufacturerPartTable.tsx:84 +#: src/pages/company/ManufacturerPartDetail.tsx:204 +#: src/tables/purchasing/ManufacturerPartTable.tsx:86 msgid "Edit Manufacturer Part" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:215 -#: src/tables/purchasing/ManufacturerPartTable.tsx:72 -#: src/tables/purchasing/ManufacturerPartTable.tsx:103 +#: src/pages/company/ManufacturerPartDetail.tsx:211 +#: src/tables/purchasing/ManufacturerPartTable.tsx:74 +#: src/tables/purchasing/ManufacturerPartTable.tsx:106 msgid "Add Manufacturer Part" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:227 -#: src/tables/purchasing/ManufacturerPartTable.tsx:92 +#: src/pages/company/ManufacturerPartDetail.tsx:223 +#: src/tables/purchasing/ManufacturerPartTable.tsx:94 msgid "Delete Manufacturer Part" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:240 +#: src/pages/company/ManufacturerPartDetail.tsx:236 msgid "Manufacturer Part Actions" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:281 +#: src/pages/company/ManufacturerPartDetail.tsx:276 msgid "ManufacturerPart" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:163 -#: src/tables/part/PartPurchaseOrdersTable.tsx:71 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:156 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:197 -#: src/tables/purchasing/SupplierPartTable.tsx:131 +#: src/pages/company/SupplierPartDetail.tsx:99 +msgid "Part Description" +msgstr "" + +#: src/pages/company/SupplierPartDetail.tsx:175 +#: src/tables/part/PartPurchaseOrdersTable.tsx:72 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:162 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:203 +#: src/tables/purchasing/SupplierPartTable.tsx:133 msgid "Pack Quantity" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:174 +#: src/pages/company/SupplierPartDetail.tsx:186 msgid "Supplier Availability" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:181 +#: src/pages/company/SupplierPartDetail.tsx:193 msgid "Availability Updated" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:208 +#: src/pages/company/SupplierPartDetail.tsx:220 msgid "Availability" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:217 +#: src/pages/company/SupplierPartDetail.tsx:229 msgid "Supplier Part Details" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:223 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:296 +#: src/pages/company/SupplierPartDetail.tsx:235 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:320 msgid "Received Stock" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:247 -#: src/pages/part/PartPricingPanel.tsx:111 -#: src/pages/part/pricing/PricingOverviewPanel.tsx:121 +#: src/pages/company/SupplierPartDetail.tsx:259 +#: src/pages/part/PartPricingPanel.tsx:116 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:195 msgid "Supplier Pricing" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:294 +#: src/pages/company/SupplierPartDetail.tsx:284 msgid "Supplier Part Actions" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:319 -#: src/tables/purchasing/SupplierPartTable.tsx:210 +#: src/pages/company/SupplierPartDetail.tsx:308 +#: src/tables/purchasing/SupplierPartTable.tsx:213 msgid "Edit Supplier Part" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:327 -#: src/tables/purchasing/SupplierPartTable.tsx:218 +#: src/pages/company/SupplierPartDetail.tsx:316 +#: src/tables/purchasing/SupplierPartTable.tsx:221 msgid "Delete Supplier Part" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:335 -#: src/tables/purchasing/SupplierPartTable.tsx:163 +#: src/pages/company/SupplierPartDetail.tsx:324 +#: src/tables/purchasing/SupplierPartTable.tsx:165 msgid "Add Supplier Part" msgstr "" #: src/pages/part/CategoryDetail.tsx:93 -#: src/pages/stock/LocationDetail.tsx:101 -#: src/tables/settings/ErrorTable.tsx:36 +#: src/pages/stock/LocationDetail.tsx:95 +#: src/tables/settings/ErrorTable.tsx:63 +#: src/tables/settings/ErrorTable.tsx:108 msgid "Path" msgstr "" @@ -4504,357 +5263,357 @@ msgstr "" msgid "Parent Category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:126 +#: src/pages/part/CategoryDetail.tsx:132 msgid "Subcategories" msgstr "" -#: src/pages/part/CategoryDetail.tsx:133 -#: src/pages/stock/LocationDetail.tsx:141 -#: src/tables/part/PartCategoryTable.tsx:73 +#: src/pages/part/CategoryDetail.tsx:139 +#: src/pages/stock/LocationDetail.tsx:135 +#: src/tables/part/PartCategoryTable.tsx:85 #: src/tables/stock/StockLocationTable.tsx:49 msgid "Structural" msgstr "" -#: src/pages/part/CategoryDetail.tsx:139 +#: src/pages/part/CategoryDetail.tsx:145 msgid "Parent default location" msgstr "" -#: src/pages/part/CategoryDetail.tsx:146 +#: src/pages/part/CategoryDetail.tsx:152 msgid "Default location" msgstr "" -#: src/pages/part/CategoryDetail.tsx:157 +#: src/pages/part/CategoryDetail.tsx:163 msgid "Top level part category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:167 -#: src/pages/part/CategoryDetail.tsx:221 -#: src/tables/part/PartCategoryTable.tsx:102 +#: src/pages/part/CategoryDetail.tsx:173 +#: src/pages/part/CategoryDetail.tsx:226 +#: src/tables/part/PartCategoryTable.tsx:118 msgid "Edit Part Category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:180 -#: src/pages/stock/LocationDetail.tsx:233 +#: src/pages/part/CategoryDetail.tsx:186 +#: src/pages/stock/LocationDetail.tsx:227 msgid "Delete items" msgstr "" -#: src/pages/part/CategoryDetail.tsx:188 -#: src/pages/part/CategoryDetail.tsx:226 +#: src/pages/part/CategoryDetail.tsx:194 +#: src/pages/part/CategoryDetail.tsx:231 msgid "Delete Part Category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:191 +#: src/pages/part/CategoryDetail.tsx:197 msgid "Parts Action" msgstr "" -#: src/pages/part/CategoryDetail.tsx:192 +#: src/pages/part/CategoryDetail.tsx:198 msgid "Action for parts in this category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:197 +#: src/pages/part/CategoryDetail.tsx:203 msgid "Child Categories Action" msgstr "" -#: src/pages/part/CategoryDetail.tsx:198 +#: src/pages/part/CategoryDetail.tsx:204 msgid "Action for child categories in this category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:216 +#: src/pages/part/CategoryDetail.tsx:222 msgid "Category Actions" msgstr "" -#: src/pages/part/CategoryDetail.tsx:238 +#: src/pages/part/CategoryDetail.tsx:243 msgid "Category Details" msgstr "" -#: src/pages/part/PartDetail.tsx:163 -msgid "Variant of" +#: src/pages/part/PartAllocationPanel.tsx:23 +#: src/pages/stock/StockDetail.tsx:443 +#: src/tables/part/PartTable.tsx:99 +msgid "Build Order Allocations" msgstr "" -#: src/pages/part/PartDetail.tsx:170 -msgid "Revision of" -msgstr "" - -#: src/pages/part/PartDetail.tsx:177 -#: src/tables/stock/StockItemTable.tsx:58 -msgid "Revision" +#: src/pages/part/PartAllocationPanel.tsx:40 +#: src/pages/stock/StockDetail.tsx:458 +#: src/tables/part/PartTable.tsx:108 +msgid "Sales Order Allocations" msgstr "" #: src/pages/part/PartDetail.tsx:184 +msgid "Variant of" +msgstr "" + +#: src/pages/part/PartDetail.tsx:191 +msgid "Revision of" +msgstr "" + +#: src/pages/part/PartDetail.tsx:198 +#: src/tables/stock/StockItemTable.tsx:59 +msgid "Revision" +msgstr "" + +#: src/pages/part/PartDetail.tsx:205 #: src/tables/notifications/NotificationsTable.tsx:31 #: src/tables/part/PartCategoryTemplateTable.tsx:67 msgid "Category" msgstr "" -#: src/pages/part/PartDetail.tsx:190 +#: src/pages/part/PartDetail.tsx:211 msgid "Default Location" msgstr "" -#: src/pages/part/PartDetail.tsx:197 +#: src/pages/part/PartDetail.tsx:218 msgid "Category Default Location" msgstr "" -#: src/pages/part/PartDetail.tsx:204 +#: src/pages/part/PartDetail.tsx:225 #: src/tables/purchasing/ManufacturerPartParameterTable.tsx:44 msgid "Units" msgstr "" -#: src/pages/part/PartDetail.tsx:211 -#: src/tables/settings/PendingTasksTable.tsx:42 +#: src/pages/part/PartDetail.tsx:232 +#: src/tables/settings/PendingTasksTable.tsx:46 msgid "Keywords" msgstr "" -#: src/pages/part/PartDetail.tsx:218 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:186 -#: src/pages/sales/ReturnOrderDetail.tsx:165 -#: src/pages/sales/SalesOrderDetail.tsx:174 -msgid "Link" -msgstr "" - -#: src/pages/part/PartDetail.tsx:236 +#: src/pages/part/PartDetail.tsx:257 #: src/tables/bom/BomTable.tsx:320 -#: src/tables/build/BuildLineTable.tsx:155 +#: src/tables/build/BuildLineTable.tsx:286 #: src/tables/part/PartTable.tsx:288 -#: src/tables/sales/SalesOrderLineItemTable.tsx:103 +#: src/tables/sales/SalesOrderLineItemTable.tsx:111 msgid "Available Stock" msgstr "" -#: src/pages/part/PartDetail.tsx:243 +#: src/pages/part/PartDetail.tsx:264 msgid "Variant Stock" msgstr "" -#: src/pages/part/PartDetail.tsx:251 +#: src/pages/part/PartDetail.tsx:272 msgid "Minimum Stock" msgstr "" -#: src/pages/part/PartDetail.tsx:257 +#: src/pages/part/PartDetail.tsx:278 #: src/tables/bom/BomTable.tsx:237 -#: src/tables/build/BuildLineTable.tsx:117 -#: src/tables/sales/SalesOrderLineItemTable.tsx:141 +#: src/tables/build/BuildLineTable.tsx:248 +#: src/tables/sales/SalesOrderLineItemTable.tsx:149 msgid "On order" msgstr "" -#: src/pages/part/PartDetail.tsx:266 +#: src/pages/part/PartDetail.tsx:285 +msgid "Required for Orders" +msgstr "" + +#: src/pages/part/PartDetail.tsx:294 msgid "Allocated to Build Orders" msgstr "" -#: src/pages/part/PartDetail.tsx:274 +#: src/pages/part/PartDetail.tsx:305 msgid "Allocated to Sales Orders" msgstr "" -#: src/pages/part/PartDetail.tsx:281 -#: src/tables/bom/BomTable.tsx:261 -#: src/tables/bom/BomTable.tsx:293 -msgid "Can Build" -msgstr "" - -#: src/pages/part/PartDetail.tsx:288 -#: src/tables/bom/BomTable.tsx:245 -#: src/tables/part/PartTable.tsx:92 -msgid "Building" -msgstr "" - -#: src/pages/part/PartDetail.tsx:302 -#: src/pages/part/PartDetail.tsx:873 -#: src/tables/part/ParametricPartTable.tsx:228 -#: src/tables/part/PartTable.tsx:184 -msgid "Locked" -msgstr "" - -#: src/pages/part/PartDetail.tsx:308 -msgid "Template Part" -msgstr "" - #: src/pages/part/PartDetail.tsx:310 #~ msgid "Edit part" #~ msgstr "Edit part" -#: src/pages/part/PartDetail.tsx:313 -#: src/tables/bom/BomTable.tsx:315 -msgid "Assembled Part" +#: src/pages/part/PartDetail.tsx:315 +#: src/tables/bom/BomTable.tsx:261 +#: src/tables/bom/BomTable.tsx:293 +msgid "Can Build" msgstr "" -#: src/pages/part/PartDetail.tsx:318 -msgid "Component Part" +#: src/pages/part/PartDetail.tsx:322 +#: src/pages/part/PartDetail.tsx:905 +#: src/pages/stock/StockDetail.tsx:766 +#: src/tables/build/BuildOrderTestTable.tsx:220 +#: src/tables/stock/StockItemTable.tsx:334 +msgid "In Production" msgstr "" #: src/pages/part/PartDetail.tsx:322 #~ msgid "Duplicate part" #~ msgstr "Duplicate part" -#: src/pages/part/PartDetail.tsx:323 -#: src/tables/bom/BomTable.tsx:305 -msgid "Testable Part" -msgstr "" - #: src/pages/part/PartDetail.tsx:327 #~ msgid "Delete part" #~ msgstr "Delete part" -#: src/pages/part/PartDetail.tsx:329 +#: src/pages/part/PartDetail.tsx:336 +#: src/tables/part/ParametricPartTable.tsx:228 +#: src/tables/part/PartTable.tsx:184 +msgid "Locked" +msgstr "" + +#: src/pages/part/PartDetail.tsx:342 +msgid "Template Part" +msgstr "" + +#: src/pages/part/PartDetail.tsx:347 +#: src/tables/bom/BomTable.tsx:315 +msgid "Assembled Part" +msgstr "" + +#: src/pages/part/PartDetail.tsx:352 +msgid "Component Part" +msgstr "" + +#: src/pages/part/PartDetail.tsx:357 +#: src/tables/bom/BomTable.tsx:305 +msgid "Testable Part" +msgstr "" + +#: src/pages/part/PartDetail.tsx:363 #: src/tables/bom/BomTable.tsx:310 msgid "Trackable Part" msgstr "" -#: src/pages/part/PartDetail.tsx:334 +#: src/pages/part/PartDetail.tsx:368 msgid "Purchaseable Part" msgstr "" -#: src/pages/part/PartDetail.tsx:339 +#: src/pages/part/PartDetail.tsx:374 msgid "Saleable Part" msgstr "" -#: src/pages/part/PartDetail.tsx:344 +#: src/pages/part/PartDetail.tsx:379 msgid "Virtual Part" msgstr "" -#: src/pages/part/PartDetail.tsx:352 -#: src/tables/ColumnRenderers.tsx:220 +#: src/pages/part/PartDetail.tsx:393 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:215 +#: src/pages/sales/ReturnOrderDetail.tsx:185 +#: src/pages/sales/SalesOrderDetail.tsx:197 +#: src/tables/ColumnRenderers.tsx:234 msgid "Creation Date" msgstr "" -#: src/pages/part/PartDetail.tsx:357 +#: src/pages/part/PartDetail.tsx:398 msgid "Created By" msgstr "" -#: src/pages/part/PartDetail.tsx:372 +#: src/pages/part/PartDetail.tsx:413 msgid "Default Supplier" msgstr "" -#: src/pages/part/PartDetail.tsx:383 -#: src/pages/part/pricing/BomPricingPanel.tsx:79 +#: src/pages/part/PartDetail.tsx:424 +#: src/pages/part/pricing/BomPricingPanel.tsx:113 #: src/pages/part/pricing/VariantPricingPanel.tsx:95 #: src/tables/part/PartTable.tsx:161 msgid "Price Range" msgstr "" -#: src/pages/part/PartDetail.tsx:423 -#: src/pages/stock/StockDetail.tsx:135 +#: src/pages/part/PartDetail.tsx:462 +msgid "Latest Serial Number" +msgstr "" + +#: src/pages/part/PartDetail.tsx:472 +#: src/pages/stock/StockDetail.tsx:151 msgid "Last Stocktake" msgstr "" -#: src/pages/part/PartDetail.tsx:462 +#: src/pages/part/PartDetail.tsx:511 msgid "Stocktake By" msgstr "" -#: src/pages/part/PartDetail.tsx:526 -msgid "Part Details" -msgstr "" - -#: src/pages/part/PartDetail.tsx:557 +#: src/pages/part/PartDetail.tsx:611 msgid "Variants" msgstr "" -#: src/pages/part/PartDetail.tsx:564 -#: src/pages/stock/StockDetail.tsx:307 +#: src/pages/part/PartDetail.tsx:618 +#: src/pages/stock/StockDetail.tsx:430 msgid "Allocations" msgstr "" -#: src/pages/part/PartDetail.tsx:575 -#: src/pages/stock/StockDetail.tsx:318 -#: src/tables/part/PartTable.tsx:99 -msgid "Build Order Allocations" -msgstr "" - -#: src/pages/part/PartDetail.tsx:590 -#: src/pages/stock/StockDetail.tsx:333 -#: src/tables/part/PartTable.tsx:108 -msgid "Sales Order Allocations" -msgstr "" - -#: src/pages/part/PartDetail.tsx:607 +#: src/pages/part/PartDetail.tsx:625 msgid "Bill of Materials" msgstr "" -#: src/pages/part/PartDetail.tsx:623 +#: src/pages/part/PartDetail.tsx:643 msgid "Used In" msgstr "" -#: src/pages/part/PartDetail.tsx:630 +#: src/pages/part/PartDetail.tsx:650 msgid "Part Pricing" msgstr "" -#: src/pages/part/PartDetail.tsx:636 +#: src/pages/part/PartDetail.tsx:656 #: src/pages/purchasing/PurchasingIndex.tsx:42 msgid "Manufacturers" msgstr "" -#: src/pages/part/PartDetail.tsx:676 +#: src/pages/part/PartDetail.tsx:722 msgid "Scheduling" msgstr "" -#: src/pages/part/PartDetail.tsx:688 +#: src/pages/part/PartDetail.tsx:729 msgid "Test Templates" msgstr "" -#: src/pages/part/PartDetail.tsx:715 +#: src/pages/part/PartDetail.tsx:756 msgid "Related Parts" msgstr "" -#: src/pages/part/PartDetail.tsx:849 -#: src/pages/stock/StockDetail.tsx:156 -#: src/pages/stock/StockDetail.tsx:593 -#: src/tables/build/BuildLineTable.tsx:48 +#: src/pages/part/PartDetail.tsx:881 +#: src/pages/stock/StockDetail.tsx:172 +#: src/pages/stock/StockDetail.tsx:783 +#: src/tables/build/BuildLineTable.tsx:179 #: src/tables/part/PartTable.tsx:117 -#: src/tables/stock/StockItemTable.tsx:177 -#: src/tables/stock/StockItemTable.tsx:310 +#: src/tables/stock/StockItemTable.tsx:166 +#: src/tables/stock/StockItemTable.tsx:314 msgid "Available" msgstr "" -#: src/pages/part/PartDetail.tsx:855 +#: src/pages/part/PartDetail.tsx:887 msgid "No Stock" msgstr "" -#: src/pages/part/PartDetail.tsx:861 +#: src/pages/part/PartDetail.tsx:893 +#: src/tables/part/PartTestTemplateTable.tsx:106 +#: src/tables/stock/StockItemTestResultTable.tsx:383 +msgid "Required" +msgstr "" + +#: src/pages/part/PartDetail.tsx:899 #: src/tables/bom/BomTable.tsx:325 #: src/tables/part/PartTable.tsx:86 msgid "On Order" msgstr "" -#: src/pages/part/PartDetail.tsx:867 -#: src/pages/stock/StockDetail.tsx:576 -#: src/tables/build/BuildOrderTestTable.tsx:219 -#: src/tables/stock/StockItemTable.tsx:330 -msgid "In Production" -msgstr "" - -#: src/pages/part/PartDetail.tsx:892 +#: src/pages/part/PartDetail.tsx:924 msgid "Edit Part" msgstr "" -#: src/pages/part/PartDetail.tsx:927 +#: src/pages/part/PartDetail.tsx:959 #: src/tables/part/PartTable.tsx:331 -#: src/tables/part/PartTable.tsx:342 +#: src/tables/part/PartTable.tsx:343 msgid "Add Part" msgstr "" -#: src/pages/part/PartDetail.tsx:941 +#: src/pages/part/PartDetail.tsx:973 msgid "Delete Part" msgstr "" -#: src/pages/part/PartDetail.tsx:950 +#: src/pages/part/PartDetail.tsx:982 msgid "Deleting this part cannot be reversed" msgstr "" -#: src/pages/part/PartDetail.tsx:999 -#: src/pages/stock/LocationDetail.tsx:324 -#: src/tables/stock/StockItemTable.tsx:444 +#: src/pages/part/PartDetail.tsx:1021 +#: src/pages/stock/LocationDetail.tsx:310 +#: src/tables/stock/StockItemTable.tsx:449 msgid "Stock Actions" msgstr "" -#: src/pages/part/PartDetail.tsx:1007 +#: src/pages/part/PartDetail.tsx:1029 msgid "Count part stock" msgstr "" -#: src/pages/part/PartDetail.tsx:1018 +#: src/pages/part/PartDetail.tsx:1040 msgid "Transfer part stock" msgstr "" -#: src/pages/part/PartDetail.tsx:1027 +#: src/pages/part/PartDetail.tsx:1049 msgid "Part Actions" msgstr "" -#: src/pages/part/PartDetail.tsx:1087 +#: src/pages/part/PartDetail.tsx:1113 msgid "Select Part Revision" msgstr "" @@ -4862,113 +5621,214 @@ msgstr "" #~ msgid "Categories" #~ msgstr "Categories" -#: src/pages/part/PartPricingPanel.tsx:68 +#: src/pages/part/PartPricingPanel.tsx:72 msgid "No pricing data found for this part." msgstr "" -#: src/pages/part/PartPricingPanel.tsx:82 -#: src/pages/part/pricing/PricingOverviewPanel.tsx:190 +#: src/pages/part/PartPricingPanel.tsx:87 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:293 msgid "Pricing Overview" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:88 +#: src/pages/part/PartPricingPanel.tsx:93 msgid "Purchase History" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:102 -#: src/pages/part/pricing/PricingOverviewPanel.tsx:100 +#: src/pages/part/PartPricingPanel.tsx:107 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:174 msgid "Internal Pricing" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:120 -#: src/pages/part/pricing/PricingOverviewPanel.tsx:107 +#: src/pages/part/PartPricingPanel.tsx:125 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:181 msgid "BOM Pricing" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:127 -#: src/pages/part/pricing/PricingOverviewPanel.tsx:128 +#: src/pages/part/PartPricingPanel.tsx:132 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:202 msgid "Variant Pricing" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:139 -#: src/pages/part/pricing/PricingOverviewPanel.tsx:135 +#: src/pages/part/PartPricingPanel.tsx:144 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:209 msgid "Sale Pricing" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:146 -#: src/pages/part/pricing/PricingOverviewPanel.tsx:142 +#: src/pages/part/PartPricingPanel.tsx:151 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:216 msgid "Sale History" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:58 -#: src/pages/part/pricing/BomPricingPanel.tsx:138 -#: src/tables/ColumnRenderers.tsx:262 +#: src/pages/part/PartSchedulingDetail.tsx:47 +#: src/pages/part/PartSchedulingDetail.tsx:299 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:156 +msgid "Maximum" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:50 +#: src/pages/part/PartSchedulingDetail.tsx:289 +msgid "Scheduled" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:53 +#: src/pages/part/PartSchedulingDetail.tsx:294 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:144 +msgid "Minimum" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:68 +msgid "Order" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:92 +msgid "Quantity is speculative" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:101 +msgid "No date available for provided quantity" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:105 +msgid "Date is in the past" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:112 +msgid "Scheduled Quantity" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:240 +msgid "No information available" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:241 +msgid "There is no scheduling information available for the selected part" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:276 +msgid "Expected Quantity" +msgstr "" + +#: src/pages/part/PartStocktakeDetail.tsx:63 +#: src/tables/FilterSelectDrawer.tsx:167 +#: src/tables/FilterSelectDrawer.tsx:174 +#: src/tables/build/BuildOrderTestTable.tsx:135 +#: src/tables/purchasing/ManufacturerPartParameterTable.tsx:38 +#: src/tables/stock/StockItemTestResultTable.tsx:192 +msgid "Value" +msgstr "" + +#: src/pages/part/PartStocktakeDetail.tsx:82 +msgid "Edit Stocktake Entry" +msgstr "" + +#: src/pages/part/PartStocktakeDetail.tsx:90 +msgid "Delete Stocktake Entry" +msgstr "" + +#: src/pages/part/PartStocktakeDetail.tsx:96 +#: src/tables/settings/StocktakeReportTable.tsx:69 +msgid "Generate Stocktake Report" +msgstr "" + +#: src/pages/part/PartStocktakeDetail.tsx:101 +#: src/tables/settings/StocktakeReportTable.tsx:71 +msgid "Stocktake report scheduled" +msgstr "" + +#: src/pages/part/PartStocktakeDetail.tsx:119 +#: src/pages/part/PartStocktakeDetail.tsx:235 +#: src/pages/stock/StockDetail.tsx:303 +#: src/tables/stock/StockItemTable.tsx:249 +msgid "Stock Value" +msgstr "" + +#: src/pages/part/PartStocktakeDetail.tsx:139 +#: src/tables/settings/StocktakeReportTable.tsx:77 +msgid "New Stocktake Report" +msgstr "" + +#: src/pages/part/PartStocktakeDetail.tsx:258 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:295 +msgid "Minimum Value" +msgstr "" + +#: src/pages/part/PartStocktakeDetail.tsx:264 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:296 +msgid "Maximum Value" +msgstr "" + +#: src/pages/part/pricing/BomPricingPanel.tsx:87 +#: src/pages/part/pricing/BomPricingPanel.tsx:177 +#: src/tables/ColumnRenderers.tsx:276 #: src/tables/bom/BomTable.tsx:185 #: src/tables/general/ExtraLineItemTable.tsx:64 -#: src/tables/purchasing/PurchaseOrderTable.tsx:112 -#: src/tables/sales/ReturnOrderTable.tsx:104 -#: src/tables/sales/SalesOrderLineItemTable.tsx:89 -#: src/tables/sales/SalesOrderTable.tsx:136 +#: src/tables/purchasing/PurchaseOrderTable.tsx:113 +#: src/tables/sales/ReturnOrderTable.tsx:127 +#: src/tables/sales/SalesOrderLineItemTable.tsx:97 +#: src/tables/sales/SalesOrderTable.tsx:149 msgid "Total Price" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:78 -#: src/pages/part/pricing/BomPricingPanel.tsx:102 +#: src/pages/part/pricing/BomPricingPanel.tsx:112 +#: src/pages/part/pricing/BomPricingPanel.tsx:141 #: src/tables/bom/UsedInTable.tsx:49 +#: src/tables/build/BuildLineTable.tsx:296 #: src/tables/part/PartTable.tsx:202 msgid "Component" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:81 -#: src/pages/part/pricing/VariantPricingPanel.tsx:37 -#: src/pages/part/pricing/VariantPricingPanel.tsx:97 -msgid "Minimum Price" -msgstr "" - -#: src/pages/part/pricing/BomPricingPanel.tsx:82 -#: src/pages/part/pricing/VariantPricingPanel.tsx:45 -#: src/pages/part/pricing/VariantPricingPanel.tsx:98 -msgid "Maximum Price" -msgstr "" - #: src/pages/part/pricing/BomPricingPanel.tsx:112 #~ msgid "Minimum Total Price" #~ msgstr "Minimum Total Price" +#: src/pages/part/pricing/BomPricingPanel.tsx:115 +#: src/pages/part/pricing/VariantPricingPanel.tsx:37 +#: src/pages/part/pricing/VariantPricingPanel.tsx:97 +msgid "Minimum Price" +msgstr "" + +#: src/pages/part/pricing/BomPricingPanel.tsx:116 +#: src/pages/part/pricing/VariantPricingPanel.tsx:45 +#: src/pages/part/pricing/VariantPricingPanel.tsx:98 +msgid "Maximum Price" +msgstr "" + #: src/pages/part/pricing/BomPricingPanel.tsx:117 #~ msgid "Maximum Total Price" #~ msgstr "Maximum Total Price" -#: src/pages/part/pricing/BomPricingPanel.tsx:129 -#: src/pages/part/pricing/PriceBreakPanel.tsx:172 -#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:67 -#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:128 -#: src/pages/part/pricing/SupplierPricingPanel.tsx:62 +#: src/pages/part/pricing/BomPricingPanel.tsx:168 +#: src/pages/part/pricing/PriceBreakPanel.tsx:173 +#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:70 +#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:125 +#: src/pages/part/pricing/SupplierPricingPanel.tsx:66 +#: src/pages/stock/StockDetail.tsx:291 #: src/tables/bom/BomTable.tsx:176 #: src/tables/general/ExtraLineItemTable.tsx:56 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:223 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:225 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:92 +#: src/tables/stock/StockItemTable.tsx:239 msgid "Unit Price" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:154 +#: src/pages/part/pricing/BomPricingPanel.tsx:193 #: src/pages/part/pricing/VariantPricingPanel.tsx:53 -#: src/tables/purchasing/SupplierPartTable.tsx:148 +#: src/tables/purchasing/SupplierPartTable.tsx:150 msgid "Updated" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:219 +#: src/pages/part/pricing/BomPricingPanel.tsx:258 msgid "Pie Chart" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:220 +#: src/pages/part/pricing/BomPricingPanel.tsx:259 msgid "Bar Chart" msgstr "" #: src/pages/part/pricing/PriceBreakPanel.tsx:58 -#: src/pages/part/pricing/PriceBreakPanel.tsx:110 +#: src/pages/part/pricing/PriceBreakPanel.tsx:111 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:142 -#: src/tables/purchasing/SupplierPriceBreakTable.tsx:168 +#: src/tables/purchasing/SupplierPriceBreakTable.tsx:169 msgid "Add Price Break" msgstr "" @@ -4986,46 +5846,70 @@ msgstr "" msgid "Price Break" msgstr "" -#: src/pages/part/pricing/PriceBreakPanel.tsx:170 +#: src/pages/part/pricing/PriceBreakPanel.tsx:171 msgid "Price" msgstr "" -#: src/pages/part/pricing/PricingOverviewPanel.tsx:51 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:68 +msgid "Refreshing pricing data" +msgstr "" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:88 +msgid "Pricing data updated" +msgstr "" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:95 +msgid "Failed to update pricing data" +msgstr "" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:104 +msgid "Edit Pricing" +msgstr "" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:125 msgid "Pricing Category" msgstr "" -#: src/pages/part/pricing/PricingOverviewPanel.tsx:70 -msgid "Minimum" -msgstr "" - -#: src/pages/part/pricing/PricingOverviewPanel.tsx:82 -msgid "Maximum" -msgstr "" - -#: src/pages/part/pricing/PricingOverviewPanel.tsx:114 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:188 msgid "Purchase Pricing" msgstr "" -#: src/pages/part/pricing/PricingOverviewPanel.tsx:149 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:223 msgid "Override Pricing" msgstr "" -#: src/pages/part/pricing/PricingOverviewPanel.tsx:156 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:230 msgid "Overall Pricing" msgstr "" -#: src/pages/part/pricing/PricingOverviewPanel.tsx:175 -#: src/pages/stock/StockDetail.tsx:129 -#: src/tables/stock/StockItemTable.tsx:240 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:249 +#: src/pages/stock/StockDetail.tsx:145 +#: src/tables/stock/StockItemTable.tsx:275 msgid "Last Updated" msgstr "" -#: src/pages/part/pricing/PricingOverviewPanel.tsx:192 -msgid "Minimum Value" +#: src/pages/part/pricing/PricingOverviewPanel.tsx:253 +msgid "Pricing Not Set" msgstr "" -#: src/pages/part/pricing/PricingOverviewPanel.tsx:193 -msgid "Maximum Value" +#: src/pages/part/pricing/PricingOverviewPanel.tsx:254 +msgid "Pricing data has not been calculated for this part" +msgstr "" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:258 +msgid "Pricing Actions" +msgstr "" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:261 +msgid "Refresh" +msgstr "" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:262 +msgid "Refresh pricing data" +msgstr "" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:277 +msgid "Edit pricing data" msgstr "" #: src/pages/part/pricing/PricingPanel.tsx:24 @@ -5044,28 +5928,20 @@ msgstr "" msgid "Loading pricing data" msgstr "" -#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:40 -#: src/pages/part/pricing/SaleHistoryPanel.tsx:36 -#: src/tables/ColumnRenderers.tsx:201 -#: src/tables/build/BuildOrderTestTable.tsx:150 -#: src/tables/plugin/PluginListTable.tsx:139 -msgid "Date" -msgstr "" - #: src/pages/part/pricing/PurchaseHistoryPanel.tsx:47 msgid "Purchase Price" msgstr "" -#: src/pages/part/pricing/SaleHistoryPanel.tsx:22 -msgid "Sale Order" -msgstr "" +#: src/pages/part/pricing/SaleHistoryPanel.tsx:24 +#~ msgid "Sale Order" +#~ msgstr "Sale Order" -#: src/pages/part/pricing/SaleHistoryPanel.tsx:42 -#: src/pages/part/pricing/SaleHistoryPanel.tsx:92 +#: src/pages/part/pricing/SaleHistoryPanel.tsx:44 +#: src/pages/part/pricing/SaleHistoryPanel.tsx:87 msgid "Sale Price" msgstr "" -#: src/pages/part/pricing/SupplierPricingPanel.tsx:65 +#: src/pages/part/pricing/SupplierPricingPanel.tsx:69 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:83 msgid "Supplier Price" msgstr "" @@ -5075,23 +5951,23 @@ msgstr "" msgid "Variant Part" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:93 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:87 msgid "Edit Purchase Order" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:102 -#: src/tables/purchasing/PurchaseOrderTable.tsx:128 -#: src/tables/purchasing/PurchaseOrderTable.tsx:140 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:96 +#: src/tables/purchasing/PurchaseOrderTable.tsx:129 +#: src/tables/purchasing/PurchaseOrderTable.tsx:142 msgid "Add Purchase Order" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:127 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:121 msgid "Supplier Reference" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:158 -#: src/pages/sales/ReturnOrderDetail.tsx:137 -#: src/pages/sales/SalesOrderDetail.tsx:137 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:152 +#: src/pages/sales/ReturnOrderDetail.tsx:129 +#: src/pages/sales/SalesOrderDetail.tsx:132 msgid "Completed Line Items" msgstr "" @@ -5101,91 +5977,112 @@ msgstr "" #~ msgid "Order Currency," #~ msgstr "Order Currency," -#: src/pages/purchasing/PurchaseOrderDetail.tsx:165 -#: src/pages/sales/ReturnOrderDetail.tsx:144 -#: src/pages/sales/SalesOrderDetail.tsx:153 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:161 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:231 +msgid "Destination" +msgstr "" + +#: src/pages/purchasing/PurchaseOrderDetail.tsx:167 +#: src/pages/sales/ReturnOrderDetail.tsx:136 +#: src/pages/sales/SalesOrderDetail.tsx:148 msgid "Order Currency" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:172 -#: src/pages/sales/ReturnOrderDetail.tsx:151 -#: src/pages/sales/SalesOrderDetail.tsx:160 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:173 +#: src/pages/sales/ReturnOrderDetail.tsx:143 +#: src/pages/sales/SalesOrderDetail.tsx:155 msgid "Total Cost" msgstr "" #: src/pages/purchasing/PurchaseOrderDetail.tsx:207 -#: src/pages/sales/ReturnOrderDetail.tsx:186 -#: src/pages/sales/SalesOrderDetail.tsx:195 -msgid "Created On" +#: src/pages/sales/ReturnOrderDetail.tsx:183 +#: src/pages/sales/SalesOrderDetail.tsx:191 +#~ msgid "Created On" +#~ msgstr "Created On" + +#: src/pages/purchasing/PurchaseOrderDetail.tsx:221 +#: src/pages/sales/ReturnOrderDetail.tsx:193 +#: src/pages/sales/SalesOrderDetail.tsx:204 +msgid "Issue Date" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:252 -#: src/pages/sales/ReturnOrderDetail.tsx:231 -#: src/pages/sales/SalesOrderDetail.tsx:266 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:237 +#: src/pages/sales/ReturnOrderDetail.tsx:209 +#: src/pages/sales/SalesOrderDetail.tsx:219 +#: src/tables/build/BuildOrderTable.tsx:98 +#: src/tables/part/PartPurchaseOrdersTable.tsx:105 +#: src/tables/sales/ReturnOrderTable.tsx:122 +msgid "Completion Date" +msgstr "" + +#: src/pages/purchasing/PurchaseOrderDetail.tsx:276 +#: src/pages/sales/ReturnOrderDetail.tsx:248 +#: src/pages/sales/SalesOrderDetail.tsx:288 msgid "Order Details" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:280 -#: src/pages/sales/ReturnOrderDetail.tsx:258 -#: src/pages/sales/SalesOrderDetail.tsx:297 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:304 +#: src/pages/sales/ReturnOrderDetail.tsx:276 +#: src/pages/sales/SalesOrderDetail.tsx:319 msgid "Extra Line Items" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:337 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:346 msgid "Issue Purchase Order" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:345 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:354 msgid "Cancel Purchase Order" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:353 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:362 msgid "Hold Purchase Order" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:361 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:370 msgid "Complete Purchase Order" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:427 -#: src/pages/sales/ReturnOrderDetail.tsx:428 -#: src/pages/sales/SalesOrderDetail.tsx:468 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:425 +#: src/pages/sales/ReturnOrderDetail.tsx:424 +#: src/pages/sales/SalesOrderDetail.tsx:464 msgid "Order Actions" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:101 -#: src/pages/sales/SalesOrderDetail.tsx:107 -#: src/tables/sales/SalesOrderTable.tsx:124 +#: src/pages/sales/ReturnOrderDetail.tsx:92 +#: src/pages/sales/SalesOrderDetail.tsx:101 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:109 +#: src/tables/sales/SalesOrderTable.tsx:137 msgid "Customer Reference" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:315 +#: src/pages/sales/ReturnOrderDetail.tsx:322 msgid "Edit Return Order" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:324 -#: src/tables/sales/ReturnOrderTable.tsx:119 -#: src/tables/sales/ReturnOrderTable.tsx:128 +#: src/pages/sales/ReturnOrderDetail.tsx:331 +#: src/tables/sales/ReturnOrderTable.tsx:142 +#: src/tables/sales/ReturnOrderTable.tsx:152 msgid "Add Return Order" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:336 +#: src/pages/sales/ReturnOrderDetail.tsx:343 msgid "Issue Return Order" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:344 +#: src/pages/sales/ReturnOrderDetail.tsx:349 +#~ msgid "Order canceled" +#~ msgstr "Order canceled" + +#: src/pages/sales/ReturnOrderDetail.tsx:351 msgid "Cancel Return Order" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:347 -msgid "Order canceled" -msgstr "" - -#: src/pages/sales/ReturnOrderDetail.tsx:352 +#: src/pages/sales/ReturnOrderDetail.tsx:359 msgid "Hold Return Order" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:360 +#: src/pages/sales/ReturnOrderDetail.tsx:367 msgid "Complete Return Order" msgstr "" @@ -5193,117 +6090,193 @@ msgstr "" msgid "Customers" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:145 +#: src/pages/sales/SalesOrderDetail.tsx:140 msgid "Completed Shipments" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:243 -msgid "Edit Sales Order" -msgstr "" - -#: src/pages/sales/SalesOrderDetail.tsx:252 -#: src/tables/sales/SalesOrderTable.tsx:84 -#: src/tables/sales/SalesOrderTable.tsx:96 -msgid "Add Sales Order" -msgstr "" - #: src/pages/sales/SalesOrderDetail.tsx:256 #~ msgid "Pending Shipments" #~ msgstr "Pending Shipments" -#: src/pages/sales/SalesOrderDetail.tsx:313 +#: src/pages/sales/SalesOrderDetail.tsx:261 +msgid "Edit Sales Order" +msgstr "" + +#: src/pages/sales/SalesOrderDetail.tsx:274 +#: src/tables/sales/SalesOrderTable.tsx:96 +#: src/tables/sales/SalesOrderTable.tsx:109 +msgid "Add Sales Order" +msgstr "" + +#: src/pages/sales/SalesOrderDetail.tsx:335 msgid "Shipments" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:369 +#: src/pages/sales/SalesOrderDetail.tsx:376 msgid "Issue Sales Order" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:377 +#: src/pages/sales/SalesOrderDetail.tsx:384 msgid "Cancel Sales Order" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:385 +#: src/pages/sales/SalesOrderDetail.tsx:392 msgid "Hold Sales Order" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:393 +#: src/pages/sales/SalesOrderDetail.tsx:400 msgid "Complete Sales Order" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:432 +#: src/pages/sales/SalesOrderDetail.tsx:439 msgid "Ship Order" msgstr "" -#: src/pages/stock/LocationDetail.tsx:117 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:117 +#: src/tables/sales/SalesOrderShipmentTable.tsx:96 +msgid "Shipment Reference" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:124 +msgid "Allocated Items" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:133 +msgid "Tracking Number" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:141 +msgid "Invoice Number" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:149 +#: src/tables/ColumnRenderers.tsx:242 +#: src/tables/sales/SalesOrderAllocationTable.tsx:142 +#: src/tables/sales/SalesOrderShipmentTable.tsx:115 +msgid "Shipment Date" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:157 +#: src/tables/sales/SalesOrderShipmentTable.tsx:119 +msgid "Delivery Date" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:204 +msgid "Shipment Details" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:210 +msgid "Assigned Items" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:241 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:317 +#: src/tables/sales/SalesOrderShipmentTable.tsx:75 +msgid "Edit Shipment" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:248 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:322 +#: src/tables/sales/SalesOrderShipmentTable.tsx:67 +msgid "Cancel Shipment" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:261 +#: src/tables/sales/SalesOrderShipmentTable.tsx:83 +#: src/tables/sales/SalesOrderShipmentTable.tsx:151 +msgid "Complete Shipment" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:276 +#: src/tables/part/PartPurchaseOrdersTable.tsx:121 +msgid "Pending" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:277 +#: src/tables/sales/SalesOrderAllocationTable.tsx:148 +#: src/tables/sales/SalesOrderShipmentTable.tsx:108 +#: src/tables/sales/SalesOrderShipmentTable.tsx:197 +msgid "Shipped" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:279 +#: src/tables/sales/SalesOrderShipmentTable.tsx:202 +msgid "Delivered" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:293 +msgid "Send Shipment" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:312 +msgid "Shipment Actions" +msgstr "" + +#: src/pages/stock/LocationDetail.tsx:111 msgid "Parent Location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:135 +#: src/pages/stock/LocationDetail.tsx:129 msgid "Sublocations" msgstr "" -#: src/pages/stock/LocationDetail.tsx:147 +#: src/pages/stock/LocationDetail.tsx:141 #: src/tables/stock/StockLocationTable.tsx:54 msgid "External" msgstr "" -#: src/pages/stock/LocationDetail.tsx:153 +#: src/pages/stock/LocationDetail.tsx:147 #: src/tables/stock/StockLocationTable.tsx:63 msgid "Location Type" msgstr "" -#: src/pages/stock/LocationDetail.tsx:164 +#: src/pages/stock/LocationDetail.tsx:158 msgid "Top level stock location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:175 +#: src/pages/stock/LocationDetail.tsx:169 msgid "Location Details" msgstr "" -#: src/pages/stock/LocationDetail.tsx:201 +#: src/pages/stock/LocationDetail.tsx:195 msgid "Default Parts" msgstr "" -#: src/pages/stock/LocationDetail.tsx:220 -#: src/pages/stock/LocationDetail.tsx:351 +#: src/pages/stock/LocationDetail.tsx:214 +#: src/pages/stock/LocationDetail.tsx:336 #: src/tables/stock/StockLocationTable.tsx:123 msgid "Edit Stock Location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:241 -#: src/pages/stock/LocationDetail.tsx:356 +#: src/pages/stock/LocationDetail.tsx:235 +#: src/pages/stock/LocationDetail.tsx:341 msgid "Delete Stock Location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:244 +#: src/pages/stock/LocationDetail.tsx:238 msgid "Items Action" msgstr "" -#: src/pages/stock/LocationDetail.tsx:245 +#: src/pages/stock/LocationDetail.tsx:239 msgid "Action for stock items in this location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:250 +#: src/pages/stock/LocationDetail.tsx:244 msgid "Child Locations Action" msgstr "" -#: src/pages/stock/LocationDetail.tsx:251 +#: src/pages/stock/LocationDetail.tsx:245 msgid "Action for child locations in this location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:346 +#: src/pages/stock/LocationDetail.tsx:332 msgid "Location Actions" msgstr "" -#: src/pages/stock/StockDetail.tsx:108 +#: src/pages/stock/StockDetail.tsx:116 msgid "Base Part" msgstr "" -#: src/pages/stock/StockDetail.tsx:115 -msgid "Stock Status" -msgstr "" - #: src/pages/stock/StockDetail.tsx:155 #~ msgid "Link custom barcode to stock item" #~ msgstr "Link custom barcode to stock item" @@ -5312,113 +6285,179 @@ msgstr "" #~ msgid "Unlink custom barcode from stock item" #~ msgstr "Unlink custom barcode from stock item" -#: src/pages/stock/StockDetail.tsx:188 -msgid "Installed In" -msgstr "" - -#: src/pages/stock/StockDetail.tsx:204 -msgid "Consumed By" +#: src/pages/stock/StockDetail.tsx:178 +msgid "Allocated to Orders" msgstr "" #: src/pages/stock/StockDetail.tsx:205 #~ msgid "Edit stock item" #~ msgstr "Edit stock item" -#: src/pages/stock/StockDetail.tsx:213 -#: src/tables/build/BuildAllocatedStockTable.tsx:64 -#: src/tables/stock/StockTrackingTable.tsx:96 -msgid "Build Order" +#: src/pages/stock/StockDetail.tsx:209 +msgid "Installed In" msgstr "" #: src/pages/stock/StockDetail.tsx:217 #~ msgid "Delete stock item" #~ msgstr "Delete stock item" -#: src/pages/stock/StockDetail.tsx:291 +#: src/pages/stock/StockDetail.tsx:226 +msgid "Parent Item" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:230 +msgid "Parent stock item" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:236 +msgid "Consumed By" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:245 +#: src/tables/build/BuildAllocatedStockTable.tsx:77 +#: src/tables/stock/StockTrackingTable.tsx:100 +msgid "Build Order" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:283 +#: src/tables/stock/StockItemTable.tsx:270 +msgid "Expiry Date" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:414 msgid "Stock Details" msgstr "" -#: src/pages/stock/StockDetail.tsx:297 +#: src/pages/stock/StockDetail.tsx:420 msgid "Stock Tracking" msgstr "" -#: src/pages/stock/StockDetail.tsx:350 -msgid "Test Data" -msgstr "" - -#: src/pages/stock/StockDetail.tsx:364 -msgid "Installed Items" -msgstr "" - -#: src/pages/stock/StockDetail.tsx:371 -msgid "Child Items" -msgstr "" - -#: src/pages/stock/StockDetail.tsx:425 -msgid "Edit Stock Item" -msgstr "" - #: src/pages/stock/StockDetail.tsx:433 #~ msgid "Duplicate stock item" #~ msgstr "Duplicate stock item" -#: src/pages/stock/StockDetail.tsx:452 +#: src/pages/stock/StockDetail.tsx:475 +msgid "Test Data" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:489 +msgid "Installed Items" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:496 +msgid "Child Items" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:545 +msgid "Edit Stock Item" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:572 msgid "Delete Stock Item" msgstr "" -#: src/pages/stock/StockDetail.tsx:504 +#: src/pages/stock/StockDetail.tsx:604 +msgid "Serialize Stock Item" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:617 +msgid "Stock item serialized" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:623 +msgid "Return Stock Item" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:626 +msgid "Return this item into stock. This will remove the customer assignment." +msgstr "" + +#: src/pages/stock/StockDetail.tsx:636 +msgid "Item returned to stock" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:666 msgid "Stock Operations" msgstr "" -#: src/pages/stock/StockDetail.tsx:509 +#: src/pages/stock/StockDetail.tsx:671 msgid "Count stock" msgstr "" -#: src/pages/stock/StockDetail.tsx:519 -#: src/tables/stock/StockItemTable.tsx:449 -msgid "Add stock" +#: src/pages/stock/StockDetail.tsx:671 +#: src/tables/stock/StockItemTable.tsx:452 +#~ msgid "Add stock" +#~ msgstr "Add stock" + +#: src/pages/stock/StockDetail.tsx:680 +#: src/tables/stock/StockItemTable.tsx:461 +#~ msgid "Remove stock" +#~ msgstr "Remove stock" + +#: src/pages/stock/StockDetail.tsx:698 +#: src/tables/stock/StockItemTable.tsx:481 +#~ msgid "Transfer stock" +#~ msgstr "Transfer stock" + +#: src/pages/stock/StockDetail.tsx:699 +msgid "Serialize" msgstr "" -#: src/pages/stock/StockDetail.tsx:527 -#: src/tables/stock/StockItemTable.tsx:458 -msgid "Remove stock" +#: src/pages/stock/StockDetail.tsx:700 +msgid "Serialize stock" msgstr "" -#: src/pages/stock/StockDetail.tsx:534 +#: src/pages/stock/StockDetail.tsx:711 msgid "Transfer" msgstr "" -#: src/pages/stock/StockDetail.tsx:535 -#: src/tables/stock/StockItemTable.tsx:478 -msgid "Transfer stock" +#: src/pages/stock/StockDetail.tsx:722 +msgid "Return" msgstr "" -#: src/pages/stock/StockDetail.tsx:546 +#: src/pages/stock/StockDetail.tsx:723 +msgid "Return from customer" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:738 msgid "Stock Item Actions" msgstr "" -#: src/tables/ColumnRenderers.tsx:30 +#: src/pages/stock/StockDetail.tsx:808 +msgid "Stale" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:814 +msgid "Expired" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:820 +msgid "Unavailable" +msgstr "" + +#: src/tables/ColumnRenderers.tsx:36 msgid "Part is not active" msgstr "" -#: src/tables/ColumnRenderers.tsx:35 -msgid "Part is locked" +#: src/tables/ColumnRenderers.tsx:41 +#: src/tables/bom/BomTable.tsx:542 +#: src/tables/part/PartParameterTable.tsx:193 +#: src/tables/part/PartTestTemplateTable.tsx:253 +msgid "Part is Locked" msgstr "" -#: src/tables/ColumnRenderers.tsx:57 +#: src/tables/ColumnRenderers.tsx:41 +#~ msgid "Part is locked" +#~ msgstr "Part is locked" + +#: src/tables/ColumnRenderers.tsx:46 +msgid "You are subscribed to notifications for this part" +msgstr "" + +#: src/tables/ColumnRenderers.tsx:68 msgid "No location set" msgstr "" -#: src/tables/ColumnRenderers.tsx:228 -#: src/tables/sales/SalesOrderShipmentTable.tsx:79 -msgid "Shipment Date" -msgstr "" - -#: src/tables/ColumnRenderers.tsx:248 -#: src/tables/settings/CurrencyTable.tsx:23 -msgid "Currency" -msgstr "" - #: src/tables/ColumnSelect.tsx:16 #: src/tables/ColumnSelect.tsx:23 msgid "Select Columns" @@ -5452,91 +6491,116 @@ msgstr "" msgid "Download Data" msgstr "" -#: src/tables/Filter.tsx:89 -#: src/tables/build/BuildOrderTable.tsx:135 +#: src/tables/Filter.tsx:101 msgid "Assigned to me" msgstr "" -#: src/tables/Filter.tsx:90 -#: src/tables/build/BuildOrderTable.tsx:136 +#: src/tables/Filter.tsx:102 msgid "Show orders assigned to me" msgstr "" -#: src/tables/Filter.tsx:97 +#: src/tables/Filter.tsx:106 +#~ msgid "Show overdue orders" +#~ msgstr "Show overdue orders" + +#: src/tables/Filter.tsx:109 +#: src/tables/build/BuildOrderTable.tsx:120 +#: src/tables/sales/SalesOrderAllocationTable.tsx:59 msgid "Outstanding" msgstr "" -#: src/tables/Filter.tsx:98 -msgid "Show outstanding orders" +#: src/tables/Filter.tsx:110 +msgid "Show outstanding items" msgstr "" -#: src/tables/Filter.tsx:105 -#: src/tables/build/BuildOrderTable.tsx:128 +#: src/tables/Filter.tsx:117 msgid "Overdue" msgstr "" -#: src/tables/Filter.tsx:106 -msgid "Show overdue orders" +#: src/tables/Filter.tsx:118 +msgid "Show overdue items" msgstr "" -#: src/tables/FilterSelectDrawer.tsx:51 +#: src/tables/Filter.tsx:125 +msgid "Minimum Date" +msgstr "" + +#: src/tables/Filter.tsx:126 +msgid "Show items after this date" +msgstr "" + +#: src/tables/Filter.tsx:134 +msgid "Maximum Date" +msgstr "" + +#: src/tables/Filter.tsx:135 +msgid "Show items before this date" +msgstr "" + +#: src/tables/Filter.tsx:144 +msgid "Has Project Code" +msgstr "" + +#: src/tables/Filter.tsx:145 +msgid "Show orders with an assigned project code" +msgstr "" + +#: src/tables/FilterSelectDrawer.tsx:55 msgid "Remove filter" msgstr "" -#: src/tables/FilterSelectDrawer.tsx:130 +#: src/tables/FilterSelectDrawer.tsx:159 msgid "Select filter" msgstr "" -#: src/tables/FilterSelectDrawer.tsx:131 +#: src/tables/FilterSelectDrawer.tsx:160 msgid "Filter" msgstr "" -#: src/tables/FilterSelectDrawer.tsx:138 -#: src/tables/build/BuildOrderTestTable.tsx:134 -#: src/tables/purchasing/ManufacturerPartParameterTable.tsx:38 -#: src/tables/stock/StockItemTestResultTable.tsx:186 -msgid "Value" +#: src/tables/FilterSelectDrawer.tsx:168 +msgid "Select date value" msgstr "" -#: src/tables/FilterSelectDrawer.tsx:140 +#: src/tables/FilterSelectDrawer.tsx:176 msgid "Select filter value" msgstr "" -#: src/tables/FilterSelectDrawer.tsx:183 +#: src/tables/FilterSelectDrawer.tsx:219 +#: src/tables/InvenTreeTableHeader.tsx:214 msgid "Table Filters" msgstr "" -#: src/tables/FilterSelectDrawer.tsx:215 +#: src/tables/FilterSelectDrawer.tsx:251 msgid "Add Filter" msgstr "" -#: src/tables/FilterSelectDrawer.tsx:224 +#: src/tables/FilterSelectDrawer.tsx:260 msgid "Clear Filters" msgstr "" -#: src/tables/InvenTreeTable.tsx:123 -#: src/tables/InvenTreeTable.tsx:431 -#: src/tables/InvenTreeTable.tsx:455 +#: src/tables/InvenTreeTable.tsx:96 +#: src/tables/InvenTreeTable.tsx:417 +#: src/tables/InvenTreeTable.tsx:441 msgid "No records found" msgstr "" -#: src/tables/InvenTreeTable.tsx:466 +#: src/tables/InvenTreeTable.tsx:452 msgid "Server returned incorrect data type" msgstr "" -#: src/tables/InvenTreeTable.tsx:474 +#: src/tables/InvenTreeTable.tsx:460 msgid "Bad request" msgstr "" -#: src/tables/InvenTreeTable.tsx:477 +#: src/tables/InvenTreeTable.tsx:463 msgid "Unauthorized" msgstr "" -#: src/tables/InvenTreeTable.tsx:480 +#: src/tables/InvenTreeTable.tsx:466 msgid "Forbidden" msgstr "" -#: src/tables/InvenTreeTable.tsx:483 +#: src/tables/InvenTreeTable.tsx:469 msgid "Not found" msgstr "" @@ -5544,18 +6608,6 @@ msgstr "" #~ msgid "Are you sure you want to delete the selected records?" #~ msgstr "Are you sure you want to delete the selected records?" -#: src/tables/InvenTreeTable.tsx:525 -msgid "Delete Selected Items" -msgstr "" - -#: src/tables/InvenTreeTable.tsx:529 -msgid "Are you sure you want to delete the selected items?" -msgstr "" - -#: src/tables/InvenTreeTable.tsx:531 -msgid "This action cannot be undone!" -msgstr "" - #: src/tables/InvenTreeTable.tsx:535 #~ msgid "Deleted records" #~ msgstr "Deleted records" @@ -5568,31 +6620,56 @@ msgstr "" #~ msgid "Failed to delete records" #~ msgstr "Failed to delete records" +#: src/tables/InvenTreeTable.tsx:552 +#~ msgid "This action cannot be undone!" +#~ msgstr "This action cannot be undone!" + #: src/tables/InvenTreeTable.tsx:594 #: src/tables/InvenTreeTable.tsx:595 #~ msgid "Print actions" #~ msgstr "Print actions" -#: src/tables/InvenTreeTable.tsx:618 -#: src/tables/InvenTreeTable.tsx:619 -msgid "Barcode actions" +#: src/tables/InvenTreeTable.tsx:655 +#: src/tables/InvenTreeTable.tsx:656 +#~ msgid "Barcode actions" +#~ msgstr "Barcode actions" + +#: src/tables/InvenTreeTable.tsx:712 +#~ msgid "Table filters" +#~ msgstr "Table filters" + +#: src/tables/InvenTreeTable.tsx:725 +#~ msgid "Clear custom query filters" +#~ msgstr "Clear custom query filters" + +#: src/tables/InvenTreeTableHeader.tsx:98 +msgid "Delete Selected Items" msgstr "" -#: src/tables/InvenTreeTable.tsx:628 +#: src/tables/InvenTreeTableHeader.tsx:102 +msgid "Are you sure you want to delete the selected items?" +msgstr "" + +#: src/tables/InvenTreeTableHeader.tsx:104 +#: src/tables/plugin/PluginListTable.tsx:305 +msgid "This action cannot be undone" +msgstr "" + +#: src/tables/InvenTreeTableHeader.tsx:142 +msgid "Custom table filters are active" +msgstr "" + +#: src/tables/InvenTreeTableHeader.tsx:169 msgid "Delete selected records" msgstr "" -#: src/tables/InvenTreeTable.tsx:649 +#: src/tables/InvenTreeTableHeader.tsx:188 msgid "Refresh data" msgstr "" -#: src/tables/InvenTreeTable.tsx:675 -msgid "Table filters" -msgstr "" - #: src/tables/TableHoverCard.tsx:35 -msgid "item-{idx}" -msgstr "" +#~ msgid "item-{idx}" +#~ msgstr "item-{idx}" #: src/tables/UploadAction.tsx:7 #~ msgid "Upload Data" @@ -5607,31 +6684,36 @@ msgid "Part Information" msgstr "" #: src/tables/bom/BomTable.tsx:212 -#: src/tables/build/BuildLineTable.tsx:126 +#: src/tables/build/BuildLineTable.tsx:257 #: src/tables/part/PartTable.tsx:125 msgid "External stock" msgstr "" #: src/tables/bom/BomTable.tsx:220 -#: src/tables/build/BuildLineTable.tsx:89 +#: src/tables/build/BuildLineTable.tsx:220 msgid "Includes substitute stock" msgstr "" #: src/tables/bom/BomTable.tsx:229 -#: src/tables/build/BuildLineTable.tsx:99 -#: src/tables/sales/SalesOrderLineItemTable.tsx:127 +#: src/tables/build/BuildLineTable.tsx:230 +#: src/tables/sales/SalesOrderLineItemTable.tsx:135 msgid "Includes variant stock" msgstr "" +#: src/tables/bom/BomTable.tsx:245 +#: src/tables/part/PartTable.tsx:92 +msgid "Building" +msgstr "" + #: src/tables/bom/BomTable.tsx:254 #: src/tables/part/PartTable.tsx:153 -#: src/tables/sales/SalesOrderLineItemTable.tsx:150 -#: src/tables/stock/StockItemTable.tsx:216 +#: src/tables/sales/SalesOrderLineItemTable.tsx:158 +#: src/tables/stock/StockItemTable.tsx:206 msgid "Stock Information" msgstr "" #: src/tables/bom/BomTable.tsx:285 -#: src/tables/build/BuildLineTable.tsx:248 +#: src/tables/build/BuildLineTable.tsx:409 msgid "Consumable item" msgstr "" @@ -5644,7 +6726,7 @@ msgstr "" #~ msgstr "Create BOM Item" #: src/tables/bom/BomTable.tsx:306 -#: src/tables/build/BuildLineTable.tsx:69 +#: src/tables/build/BuildLineTable.tsx:200 msgid "Show testable items" msgstr "" @@ -5657,11 +6739,12 @@ msgid "Show trackable items" msgstr "" #: src/tables/bom/BomTable.tsx:316 -#: src/tables/build/BuildLineTable.tsx:64 +#: src/tables/build/BuildLineTable.tsx:195 msgid "Show assembled items" msgstr "" #: src/tables/bom/BomTable.tsx:321 +#: src/tables/build/BuildLineTable.tsx:180 msgid "Show items with available stock" msgstr "" @@ -5705,7 +6788,7 @@ msgstr "" #: src/tables/bom/BomTable.tsx:345 #: src/tables/bom/UsedInTable.tsx:79 -#: src/tables/build/BuildLineTable.tsx:58 +#: src/tables/build/BuildLineTable.tsx:189 msgid "Optional" msgstr "" @@ -5723,7 +6806,7 @@ msgstr "" #~ msgstr "Bom item deleted" #: src/tables/bom/BomTable.tsx:350 -#: src/tables/build/BuildLineTable.tsx:53 +#: src/tables/build/BuildLineTable.tsx:184 msgid "Consumable" msgstr "" @@ -5749,12 +6832,12 @@ msgid "Show items with pricing" msgstr "" #: src/tables/bom/BomTable.tsx:378 -#: src/tables/bom/BomTable.tsx:511 +#: src/tables/bom/BomTable.tsx:512 msgid "Import BOM Data" msgstr "" #: src/tables/bom/BomTable.tsx:388 -#: src/tables/bom/BomTable.tsx:523 +#: src/tables/bom/BomTable.tsx:526 msgid "Add BOM Item" msgstr "" @@ -5780,7 +6863,7 @@ msgstr "" #: src/tables/bom/BomTable.tsx:423 #: src/tables/bom/BomTable.tsx:426 -#: src/tables/bom/BomTable.tsx:517 +#: src/tables/bom/BomTable.tsx:519 msgid "Validate BOM" msgstr "" @@ -5812,21 +6895,15 @@ msgstr "" msgid "Edit Substitutes" msgstr "" -#: src/tables/bom/BomTable.tsx:539 -#: src/tables/part/PartParameterTable.tsx:193 -#: src/tables/part/PartTestTemplateTable.tsx:252 -msgid "Part is Locked" -msgstr "" - -#: src/tables/bom/BomTable.tsx:544 +#: src/tables/bom/BomTable.tsx:547 msgid "Bill of materials cannot be edited, as the part is locked" msgstr "" #: src/tables/bom/UsedInTable.tsx:33 -#: src/tables/build/BuildLineTable.tsx:63 +#: src/tables/build/BuildLineTable.tsx:194 #: src/tables/part/ParametricPartTable.tsx:233 #: src/tables/part/PartTable.tsx:190 -#: src/tables/stock/StockItemTable.tsx:300 +#: src/tables/stock/StockItemTable.tsx:304 msgid "Assembly" msgstr "" @@ -5844,285 +6921,347 @@ msgstr "" msgid "Show trackable assemblies" msgstr "" -#: src/tables/build/BuildAllocatedStockTable.tsx:54 +#: src/tables/build/BuildAllocatedStockTable.tsx:56 msgid "Allocated to Output" msgstr "" -#: src/tables/build/BuildAllocatedStockTable.tsx:55 +#: src/tables/build/BuildAllocatedStockTable.tsx:57 msgid "Show items allocated to a build output" msgstr "" -#: src/tables/build/BuildAllocatedStockTable.tsx:76 -#: src/tables/part/PartPurchaseOrdersTable.tsx:125 -#: src/tables/sales/SalesOrderAllocationTable.tsx:62 +#: src/tables/build/BuildAllocatedStockTable.tsx:65 +#: src/tables/build/BuildOrderTable.tsx:159 +#: src/tables/part/PartParameterTable.tsx:212 +#: src/tables/part/PartPurchaseOrdersTable.tsx:138 +#: src/tables/sales/ReturnOrderTable.tsx:84 +#: src/tables/sales/SalesOrderAllocationTable.tsx:68 +#: src/tables/sales/SalesOrderTable.tsx:84 +#: src/tables/stock/StockItemTable.tsx:339 +msgid "Include Variants" +msgstr "" + +#: src/tables/build/BuildAllocatedStockTable.tsx:66 +#: src/tables/build/BuildOrderTable.tsx:160 +#: src/tables/part/PartPurchaseOrdersTable.tsx:139 +#: src/tables/sales/ReturnOrderTable.tsx:85 +#: src/tables/sales/SalesOrderAllocationTable.tsx:69 +#: src/tables/sales/SalesOrderTable.tsx:85 +msgid "Include orders for part variants" +msgstr "" + +#: src/tables/build/BuildAllocatedStockTable.tsx:89 +#: src/tables/part/PartPurchaseOrdersTable.tsx:131 +#: src/tables/sales/SalesOrderAllocationTable.tsx:93 msgid "Order Status" msgstr "" -#: src/tables/build/BuildAllocatedStockTable.tsx:96 -#: src/tables/sales/SalesOrderAllocationTable.tsx:75 +#: src/tables/build/BuildAllocatedStockTable.tsx:117 +#: src/tables/sales/SalesOrderAllocationTable.tsx:126 msgid "Allocated Quantity" msgstr "" -#: src/tables/build/BuildAllocatedStockTable.tsx:116 -#: src/tables/sales/SalesOrderAllocationTable.tsx:94 +#: src/tables/build/BuildAllocatedStockTable.tsx:137 +#: src/tables/sales/SalesOrderAllocationTable.tsx:120 msgid "Available Quantity" msgstr "" -#: src/tables/build/BuildAllocatedStockTable.tsx:126 -#: src/tables/build/BuildOrderTestTable.tsx:176 -#: src/tables/build/BuildOrderTestTable.tsx:200 -#: src/tables/build/BuildOutputTable.tsx:312 -msgid "Build Output" +#: src/tables/build/BuildAllocatedStockTable.tsx:164 +#: src/tables/build/BuildLineTable.tsx:513 +msgid "Edit Stock Allocation" msgstr "" -#: src/tables/build/BuildAllocatedStockTable.tsx:143 -msgid "Edit Build Item" -msgstr "" +#: src/tables/build/BuildAllocatedStockTable.tsx:164 +#~ msgid "Edit Build Item" +#~ msgstr "Edit Build Item" -#: src/tables/build/BuildAllocatedStockTable.tsx:153 -msgid "Delete Build Item" -msgstr "" +#: src/tables/build/BuildAllocatedStockTable.tsx:174 +#~ msgid "Delete Build Item" +#~ msgstr "Delete Build Item" -#: src/tables/build/BuildLineTable.tsx:43 -#: src/tables/stock/StockItemTable.tsx:305 -msgid "Allocated" -msgstr "" - -#: src/tables/build/BuildLineTable.tsx:44 -msgid "Show allocated lines" -msgstr "" - -#: src/tables/build/BuildLineTable.tsx:49 -msgid "Show lines with available stock" -msgstr "" - -#: src/tables/build/BuildLineTable.tsx:54 -msgid "Show consumable lines" +#: src/tables/build/BuildAllocatedStockTable.tsx:177 +#: src/tables/build/BuildLineTable.tsx:526 +msgid "Delete Stock Allocation" msgstr "" #: src/tables/build/BuildLineTable.tsx:59 +#~ msgid "Show lines with available stock" +#~ msgstr "Show lines with available stock" + +#: src/tables/build/BuildLineTable.tsx:175 +msgid "Show allocated lines" +msgstr "" + +#: src/tables/build/BuildLineTable.tsx:185 +msgid "Show consumable lines" +msgstr "" + +#: src/tables/build/BuildLineTable.tsx:190 msgid "Show optional lines" msgstr "" -#: src/tables/build/BuildLineTable.tsx:68 +#: src/tables/build/BuildLineTable.tsx:199 #: src/tables/part/PartTable.tsx:208 msgid "Testable" msgstr "" -#: src/tables/build/BuildLineTable.tsx:73 -#: src/tables/stock/StockItemTable.tsx:364 +#: src/tables/build/BuildLineTable.tsx:204 +#: src/tables/stock/StockItemTable.tsx:368 msgid "Tracked" msgstr "" -#: src/tables/build/BuildLineTable.tsx:74 +#: src/tables/build/BuildLineTable.tsx:205 msgid "Show tracked lines" msgstr "" -#: src/tables/build/BuildLineTable.tsx:108 -#: src/tables/sales/SalesOrderLineItemTable.tsx:133 +#: src/tables/build/BuildLineTable.tsx:239 +#: src/tables/sales/SalesOrderLineItemTable.tsx:141 msgid "In production" msgstr "" -#: src/tables/build/BuildLineTable.tsx:136 +#: src/tables/build/BuildLineTable.tsx:267 msgid "Insufficient stock" msgstr "" -#: src/tables/build/BuildLineTable.tsx:152 -#: src/tables/sales/SalesOrderLineItemTable.tsx:121 -#: src/tables/stock/StockItemTable.tsx:186 +#: src/tables/build/BuildLineTable.tsx:283 +#: src/tables/sales/SalesOrderLineItemTable.tsx:129 +#: src/tables/stock/StockItemTable.tsx:175 msgid "No stock available" msgstr "" -#: src/tables/build/BuildLineTable.tsx:201 +#: src/tables/build/BuildLineTable.tsx:355 msgid "Gets Inherited" msgstr "" -#: src/tables/build/BuildLineTable.tsx:210 +#: src/tables/build/BuildLineTable.tsx:366 msgid "Unit Quantity" msgstr "" -#: src/tables/build/BuildLineTable.tsx:267 -#: src/tables/sales/SalesOrderLineItemTable.tsx:230 +#: src/tables/build/BuildLineTable.tsx:381 +msgid "Required Quantity" +msgstr "" + +#: src/tables/build/BuildLineTable.tsx:432 +#: src/tables/sales/SalesOrderLineItemTable.tsx:254 msgid "Create Build Order" msgstr "" -#: src/tables/build/BuildLineTable.tsx:298 -msgid "Allocate Stock" +#: src/tables/build/BuildLineTable.tsx:460 +msgid "Auto allocation in progress" msgstr "" -#: src/tables/build/BuildLineTable.tsx:305 +#: src/tables/build/BuildLineTable.tsx:463 +#: src/tables/build/BuildLineTable.tsx:632 +msgid "Auto Allocate Stock" +msgstr "" + +#: src/tables/build/BuildLineTable.tsx:464 +msgid "Automatically allocate stock to this build according to the selected options" +msgstr "" + +#: src/tables/build/BuildLineTable.tsx:482 +#: src/tables/build/BuildLineTable.tsx:496 +#: src/tables/build/BuildLineTable.tsx:579 +#: src/tables/build/BuildLineTable.tsx:664 +#: src/tables/build/BuildOutputTable.tsx:314 +#: src/tables/build/BuildOutputTable.tsx:319 +msgid "Deallocate Stock" +msgstr "" + +#: src/tables/build/BuildLineTable.tsx:498 +msgid "Deallocate all untracked stock for this build order" +msgstr "" + +#: src/tables/build/BuildLineTable.tsx:500 +msgid "Deallocate stock from the selected line item" +msgstr "" + +#: src/tables/build/BuildLineTable.tsx:504 +msgid "Stock has been deallocated" +msgstr "" + +#: src/tables/build/BuildLineTable.tsx:589 msgid "Order Stock" msgstr "" -#: src/tables/build/BuildLineTable.tsx:312 +#: src/tables/build/BuildLineTable.tsx:596 msgid "Build Stock" msgstr "" -#: src/tables/build/BuildOrderTable.tsx:111 -msgid "Show active orders" +#: src/tables/build/BuildLineTable.tsx:610 +msgid "View Part" msgstr "" #: src/tables/build/BuildOrderTable.tsx:116 -msgid "Cascade" -msgstr "" +#~ msgid "Cascade" +#~ msgstr "Cascade" #: src/tables/build/BuildOrderTable.tsx:117 -msgid "Display recursive child orders" +#~ msgid "Display recursive child orders" +#~ msgstr "Display recursive child orders" + +#: src/tables/build/BuildOrderTable.tsx:121 +msgid "Show outstanding orders" msgstr "" -#: src/tables/build/BuildOrderTable.tsx:123 -#: src/tables/part/PartPurchaseOrdersTable.tsx:126 -#: src/tables/purchasing/PurchaseOrderTable.tsx:56 -#: src/tables/sales/ReturnOrderTable.tsx:47 -#: src/tables/sales/SalesOrderTable.tsx:54 +#: src/tables/build/BuildOrderTable.tsx:121 +#~ msgid "Show active orders" +#~ msgstr "Show active orders" + +#: src/tables/build/BuildOrderTable.tsx:122 +#~ msgid "Show overdue status" +#~ msgstr "Show overdue status" + +#: src/tables/build/BuildOrderTable.tsx:126 +#: src/tables/part/PartPurchaseOrdersTable.tsx:132 +#: src/tables/purchasing/PurchaseOrderTable.tsx:59 +#: src/tables/sales/ReturnOrderTable.tsx:57 +#: src/tables/sales/SalesOrderTable.tsx:57 msgid "Filter by order status" msgstr "" -#: src/tables/build/BuildOrderTable.tsx:130 -msgid "Show overdue status" -msgstr "" - -#: src/tables/build/BuildOrderTable.tsx:141 -#: src/tables/purchasing/PurchaseOrderTable.tsx:65 -#: src/tables/sales/ReturnOrderTable.tsx:56 -#: src/tables/sales/SalesOrderTable.tsx:63 +#: src/tables/build/BuildOrderTable.tsx:136 +#: src/tables/purchasing/PurchaseOrderTable.tsx:70 +#: src/tables/sales/ReturnOrderTable.tsx:68 +#: src/tables/sales/SalesOrderTable.tsx:68 msgid "Filter by project code" msgstr "" -#: src/tables/build/BuildOrderTable.tsx:146 -#: src/tables/purchasing/PurchaseOrderTable.tsx:70 -#: src/tables/sales/ReturnOrderTable.tsx:61 -#: src/tables/sales/SalesOrderTable.tsx:68 -msgid "Has Project Code" -msgstr "" - -#: src/tables/build/BuildOrderTable.tsx:147 +#: src/tables/build/BuildOrderTable.tsx:139 #: src/tables/purchasing/PurchaseOrderTable.tsx:71 #: src/tables/sales/ReturnOrderTable.tsx:62 #: src/tables/sales/SalesOrderTable.tsx:69 -msgid "Filter by whether the purchase order has a project code" -msgstr "" +#~ msgid "Filter by whether the purchase order has a project code" +#~ msgstr "Filter by whether the purchase order has a project code" -#: src/tables/build/BuildOrderTable.tsx:152 +#: src/tables/build/BuildOrderTable.tsx:143 msgid "Filter by user who issued this order" msgstr "" -#: src/tables/build/BuildOrderTable.tsx:158 -#: src/tables/purchasing/PurchaseOrderTable.tsx:76 -#: src/tables/sales/ReturnOrderTable.tsx:67 -#: src/tables/sales/SalesOrderTable.tsx:74 +#: src/tables/build/BuildOrderTable.tsx:149 +#: src/tables/purchasing/PurchaseOrderTable.tsx:77 +#: src/tables/sales/ReturnOrderTable.tsx:75 +#: src/tables/sales/SalesOrderTable.tsx:75 msgid "Filter by responsible owner" msgstr "" -#: src/tables/build/BuildOrderTestTable.tsx:75 -#: src/tables/build/BuildOrderTestTable.tsx:111 -#: src/tables/stock/StockItemTestResultTable.tsx:257 -#: src/tables/stock/StockItemTestResultTable.tsx:329 -#: src/tables/stock/StockItemTestResultTable.tsx:384 +#: src/tables/build/BuildOrderTestTable.tsx:76 +#: src/tables/build/BuildOrderTestTable.tsx:112 +#: src/tables/stock/StockItemTestResultTable.tsx:275 +#: src/tables/stock/StockItemTestResultTable.tsx:347 +#: src/tables/stock/StockItemTestResultTable.tsx:403 msgid "Add Test Result" msgstr "" -#: src/tables/build/BuildOrderTestTable.tsx:82 -#: src/tables/stock/StockItemTestResultTable.tsx:259 +#: src/tables/build/BuildOrderTestTable.tsx:83 +#: src/tables/stock/StockItemTestResultTable.tsx:277 msgid "Test result added" msgstr "" -#: src/tables/build/BuildOrderTestTable.tsx:110 -#: src/tables/stock/StockItemTestResultTable.tsx:174 +#: src/tables/build/BuildOrderTestTable.tsx:111 +#: src/tables/stock/StockItemTestResultTable.tsx:180 msgid "No Result" msgstr "" -#: src/tables/build/BuildOrderTestTable.tsx:220 +#: src/tables/build/BuildOrderTestTable.tsx:221 msgid "Show build outputs currently in production" msgstr "" +#: src/tables/build/BuildOutputTable.tsx:76 +msgid "Build Output Stock Allocation" +msgstr "" + #: src/tables/build/BuildOutputTable.tsx:161 #~ msgid "Delete build output" #~ msgstr "Delete build output" -#: src/tables/build/BuildOutputTable.tsx:173 -#: src/tables/build/BuildOutputTable.tsx:211 +#: src/tables/build/BuildOutputTable.tsx:258 +#: src/tables/build/BuildOutputTable.tsx:374 msgid "Add Build Output" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:216 +#: src/tables/build/BuildOutputTable.tsx:304 +#~ msgid "Edit build output" +#~ msgstr "Edit build output" + +#: src/tables/build/BuildOutputTable.tsx:306 +#: src/tables/build/BuildOutputTable.tsx:417 +msgid "Edit Build Output" +msgstr "" + +#: src/tables/build/BuildOutputTable.tsx:321 +msgid "This action will deallocate all stock from the selected build output" +msgstr "" + +#: src/tables/build/BuildOutputTable.tsx:341 msgid "Complete selected outputs" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:226 +#: src/tables/build/BuildOutputTable.tsx:352 msgid "Scrap selected outputs" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:236 +#: src/tables/build/BuildOutputTable.tsx:363 msgid "Cancel selected outputs" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:252 +#: src/tables/build/BuildOutputTable.tsx:385 msgid "Allocate" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:253 +#: src/tables/build/BuildOutputTable.tsx:386 msgid "Allocate stock to build output" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:259 +#: src/tables/build/BuildOutputTable.tsx:396 msgid "Deallocate" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:260 +#: src/tables/build/BuildOutputTable.tsx:397 msgid "Deallocate stock from build output" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:267 +#: src/tables/build/BuildOutputTable.tsx:408 msgid "Complete build output" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:276 +#: src/tables/build/BuildOutputTable.tsx:424 msgid "Scrap" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:277 +#: src/tables/build/BuildOutputTable.tsx:425 msgid "Scrap build output" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:280 -#~ msgid "Allocated Items" -#~ msgstr "Allocated Items" - -#: src/tables/build/BuildOutputTable.tsx:287 +#: src/tables/build/BuildOutputTable.tsx:435 msgid "Cancel build output" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:325 -msgid "Batch" -msgstr "" - -#: src/tables/build/BuildOutputTable.tsx:340 +#: src/tables/build/BuildOutputTable.tsx:488 msgid "Allocated Lines" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:355 +#: src/tables/build/BuildOutputTable.tsx:503 msgid "Required Tests" msgstr "" -#: src/tables/company/AddressTable.tsx:121 -#: src/tables/company/AddressTable.tsx:185 +#: src/tables/company/AddressTable.tsx:118 +#: src/tables/company/AddressTable.tsx:183 msgid "Add Address" msgstr "" -#: src/tables/company/AddressTable.tsx:126 +#: src/tables/company/AddressTable.tsx:123 msgid "Address created" msgstr "" -#: src/tables/company/AddressTable.tsx:135 +#: src/tables/company/AddressTable.tsx:132 msgid "Edit Address" msgstr "" -#: src/tables/company/AddressTable.tsx:143 +#: src/tables/company/AddressTable.tsx:140 msgid "Delete Address" msgstr "" -#: src/tables/company/AddressTable.tsx:144 +#: src/tables/company/AddressTable.tsx:141 msgid "Are you sure you want to delete this address?" msgstr "" @@ -6130,24 +7269,24 @@ msgstr "" #~ msgid "New Company" #~ msgstr "New Company" -#: src/tables/company/CompanyTable.tsx:74 -#: src/tables/company/CompanyTable.tsx:123 +#: src/tables/company/CompanyTable.tsx:75 +#: src/tables/company/CompanyTable.tsx:125 msgid "Add Company" msgstr "" -#: src/tables/company/CompanyTable.tsx:96 +#: src/tables/company/CompanyTable.tsx:97 msgid "Show active companies" msgstr "" -#: src/tables/company/CompanyTable.tsx:101 +#: src/tables/company/CompanyTable.tsx:102 msgid "Show companies which are suppliers" msgstr "" -#: src/tables/company/CompanyTable.tsx:106 +#: src/tables/company/CompanyTable.tsx:107 msgid "Show companies which are manufacturers" msgstr "" -#: src/tables/company/CompanyTable.tsx:111 +#: src/tables/company/CompanyTable.tsx:112 msgid "Show companies which are customers" msgstr "" @@ -6163,96 +7302,99 @@ msgstr "" msgid "Delete Contact" msgstr "" -#: src/tables/company/ContactTable.tsx:129 +#: src/tables/company/ContactTable.tsx:130 msgid "Add contact" msgstr "" -#: src/tables/general/AttachmentTable.tsx:130 +#: src/tables/general/AttachmentTable.tsx:135 msgid "File uploaded" msgstr "" -#: src/tables/general/AttachmentTable.tsx:131 +#: src/tables/general/AttachmentTable.tsx:136 msgid "File {0} uploaded successfully" msgstr "" -#: src/tables/general/AttachmentTable.tsx:142 +#: src/tables/general/AttachmentTable.tsx:147 msgid "Upload Error" msgstr "" -#: src/tables/general/AttachmentTable.tsx:143 +#: src/tables/general/AttachmentTable.tsx:148 msgid "File could not be uploaded" msgstr "" -#: src/tables/general/AttachmentTable.tsx:191 +#: src/tables/general/AttachmentTable.tsx:196 msgid "Upload Attachment" msgstr "" -#: src/tables/general/AttachmentTable.tsx:201 +#: src/tables/general/AttachmentTable.tsx:206 msgid "Edit Attachment" msgstr "" -#: src/tables/general/AttachmentTable.tsx:215 +#: src/tables/general/AttachmentTable.tsx:220 msgid "Delete Attachment" msgstr "" -#: src/tables/general/AttachmentTable.tsx:225 +#: src/tables/general/AttachmentTable.tsx:230 msgid "Is Link" msgstr "" -#: src/tables/general/AttachmentTable.tsx:226 +#: src/tables/general/AttachmentTable.tsx:231 msgid "Show link attachments" msgstr "" -#: src/tables/general/AttachmentTable.tsx:230 +#: src/tables/general/AttachmentTable.tsx:235 msgid "Is File" msgstr "" -#: src/tables/general/AttachmentTable.tsx:231 +#: src/tables/general/AttachmentTable.tsx:236 msgid "Show file attachments" msgstr "" -#: src/tables/general/AttachmentTable.tsx:240 +#: src/tables/general/AttachmentTable.tsx:245 msgid "Add attachment" msgstr "" -#: src/tables/general/AttachmentTable.tsx:251 -msgid "Add external link" -msgstr "" - #: src/tables/general/AttachmentTable.tsx:254 #~ msgid "Upload attachment" #~ msgstr "Upload attachment" -#: src/tables/general/AttachmentTable.tsx:299 +#: src/tables/general/AttachmentTable.tsx:256 +msgid "Add external link" +msgstr "" + +#: src/tables/general/AttachmentTable.tsx:304 msgid "No attachments found" msgstr "" -#: src/tables/general/AttachmentTable.tsx:337 +#: src/tables/general/AttachmentTable.tsx:343 msgid "Drag attachment file here to upload" msgstr "" #: src/tables/general/ExtraLineItemTable.tsx:86 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:251 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:60 -#: src/tables/sales/SalesOrderLineItemTable.tsx:196 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:263 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:362 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:72 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:168 +#: src/tables/sales/SalesOrderLineItemTable.tsx:206 +#: src/tables/sales/SalesOrderLineItemTable.tsx:291 msgid "Add Line Item" msgstr "" #: src/tables/general/ExtraLineItemTable.tsx:98 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:271 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:72 -#: src/tables/sales/SalesOrderLineItemTable.tsx:214 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:283 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:84 +#: src/tables/sales/SalesOrderLineItemTable.tsx:224 msgid "Edit Line Item" msgstr "" #: src/tables/general/ExtraLineItemTable.tsx:106 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:279 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:80 -#: src/tables/sales/SalesOrderLineItemTable.tsx:222 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:291 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:92 +#: src/tables/sales/SalesOrderLineItemTable.tsx:232 msgid "Delete Line Item" msgstr "" -#: src/tables/general/ExtraLineItemTable.tsx:142 +#: src/tables/general/ExtraLineItemTable.tsx:143 msgid "Add Extra Line Item" msgstr "" @@ -6261,12 +7403,12 @@ msgid "Machine restarted" msgstr "" #: src/tables/machine/MachineListTable.tsx:212 -#: src/tables/machine/MachineListTable.tsx:263 +#: src/tables/machine/MachineListTable.tsx:261 msgid "Edit machine" msgstr "" #: src/tables/machine/MachineListTable.tsx:226 -#: src/tables/machine/MachineListTable.tsx:267 +#: src/tables/machine/MachineListTable.tsx:265 msgid "Delete machine" msgstr "" @@ -6278,51 +7420,50 @@ msgstr "" msgid "Are you sure you want to remove the machine \"{0}\"?" msgstr "" -#: src/tables/machine/MachineListTable.tsx:255 -#: src/tables/machine/MachineListTable.tsx:432 +#: src/tables/machine/MachineListTable.tsx:254 +#: src/tables/machine/MachineListTable.tsx:442 msgid "Restart required" msgstr "" -#: src/tables/machine/MachineListTable.tsx:259 +#: src/tables/machine/MachineListTable.tsx:258 msgid "Machine Actions" msgstr "" -#: src/tables/machine/MachineListTable.tsx:272 +#: src/tables/machine/MachineListTable.tsx:270 msgid "Restart" msgstr "" -#: src/tables/machine/MachineListTable.tsx:274 +#: src/tables/machine/MachineListTable.tsx:272 msgid "Restart machine" msgstr "" -#: src/tables/machine/MachineListTable.tsx:276 +#: src/tables/machine/MachineListTable.tsx:274 msgid "manual restart required" msgstr "" +#: src/tables/machine/MachineListTable.tsx:291 +#~ msgid "Machine information" +#~ msgstr "Machine information" + #: src/tables/machine/MachineListTable.tsx:292 -msgid "Machine information" +msgid "Machine Information" msgstr "" -#: src/tables/machine/MachineListTable.tsx:303 -#: src/tables/machine/MachineListTable.tsx:599 +#: src/tables/machine/MachineListTable.tsx:302 +#: src/tables/machine/MachineListTable.tsx:610 msgid "Machine Type" msgstr "" -#: src/tables/machine/MachineListTable.tsx:316 +#: src/tables/machine/MachineListTable.tsx:315 msgid "Machine Driver" msgstr "" -#: src/tables/machine/MachineListTable.tsx:329 +#: src/tables/machine/MachineListTable.tsx:330 msgid "Initialized" msgstr "" -#: src/tables/machine/MachineListTable.tsx:350 -#: src/tables/machine/MachineTypeTable.tsx:261 -msgid "Errors" -msgstr "" - -#: src/tables/machine/MachineListTable.tsx:358 -#: src/tables/machine/MachineTypeTable.tsx:269 +#: src/tables/machine/MachineListTable.tsx:359 +#: src/tables/machine/MachineTypeTable.tsx:290 msgid "No errors reported" msgstr "" @@ -6330,7 +7471,7 @@ msgstr "" msgid "Machine Settings" msgstr "" -#: src/tables/machine/MachineListTable.tsx:389 +#: src/tables/machine/MachineListTable.tsx:394 msgid "Driver Settings" msgstr "" @@ -6338,86 +7479,109 @@ msgstr "" #~ msgid "Create machine" #~ msgstr "Create machine" -#: src/tables/machine/MachineListTable.tsx:506 +#: src/tables/machine/MachineListTable.tsx:516 +#: src/tables/machine/MachineListTable.tsx:558 msgid "Add machine" msgstr "" #: src/tables/machine/MachineListTable.tsx:561 -msgid "Machine detail" +#~ msgid "Machine detail" +#~ msgstr "Machine detail" + +#: src/tables/machine/MachineListTable.tsx:572 +msgid "Machine Detail" msgstr "" -#: src/tables/machine/MachineListTable.tsx:608 +#: src/tables/machine/MachineListTable.tsx:619 msgid "Driver" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:73 +#: src/tables/machine/MachineTypeTable.tsx:78 msgid "Builtin driver" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:89 +#: src/tables/machine/MachineTypeTable.tsx:96 +msgid "Not Found" +msgstr "" + +#: src/tables/machine/MachineTypeTable.tsx:99 msgid "Machine type not found." msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:97 -msgid "Machine type information" +#: src/tables/machine/MachineTypeTable.tsx:99 +#~ msgid "Machine type information" +#~ msgstr "Machine type information" + +#: src/tables/machine/MachineTypeTable.tsx:109 +msgid "Machine Type Information" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:110 -#: src/tables/machine/MachineTypeTable.tsx:217 +#: src/tables/machine/MachineTypeTable.tsx:124 +#: src/tables/machine/MachineTypeTable.tsx:238 msgid "Slug" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:118 -#: src/tables/machine/MachineTypeTable.tsx:238 +#: src/tables/machine/MachineTypeTable.tsx:135 +#: src/tables/machine/MachineTypeTable.tsx:259 msgid "Provider plugin" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:130 -#: src/tables/machine/MachineTypeTable.tsx:250 +#: src/tables/machine/MachineTypeTable.tsx:147 +#: src/tables/machine/MachineTypeTable.tsx:271 msgid "Provider file" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:135 -#: src/tables/machine/MachineTypeTable.tsx:255 -#: src/tables/plugin/PluginListTable.tsx:180 -#: src/tables/plugin/PluginListTable.tsx:568 -msgid "Builtin" +#: src/tables/machine/MachineTypeTable.tsx:148 +#~ msgid "Available drivers" +#~ msgstr "Available drivers" + +#: src/tables/machine/MachineTypeTable.tsx:162 +msgid "Available Drivers" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:146 -msgid "Available drivers" -msgstr "" - -#: src/tables/machine/MachineTypeTable.tsx:196 +#: src/tables/machine/MachineTypeTable.tsx:217 msgid "Machine driver not found." msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:204 +#: src/tables/machine/MachineTypeTable.tsx:225 msgid "Machine driver information" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:224 +#: src/tables/machine/MachineTypeTable.tsx:245 msgid "Machine type" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:327 +#: src/tables/machine/MachineTypeTable.tsx:338 +#~ msgid "Machine type detail" +#~ msgstr "Machine type detail" + +#: src/tables/machine/MachineTypeTable.tsx:348 msgid "Builtin type" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:336 -msgid "Machine type detail" +#: src/tables/machine/MachineTypeTable.tsx:348 +#~ msgid "Machine driver detail" +#~ msgstr "Machine driver detail" + +#: src/tables/machine/MachineTypeTable.tsx:357 +msgid "Machine Type Detail" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:346 -msgid "Machine driver detail" +#: src/tables/machine/MachineTypeTable.tsx:367 +msgid "Machine Driver Detail" msgstr "" #: src/tables/notifications/NotificationsTable.tsx:26 msgid "Age" msgstr "" +#: src/tables/notifications/NotificationsTable.tsx:36 +msgid "Notification" +msgstr "" + #: src/tables/notifications/NotificationsTable.tsx:40 #: src/tables/plugin/PluginErrorTable.tsx:37 +#: src/tables/settings/ErrorTable.tsx:50 msgid "Message" msgstr "" @@ -6451,33 +7615,32 @@ msgstr "" msgid "Show assembly parts" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:68 +#: src/tables/part/PartCategoryTable.tsx:48 +msgid "You are subscribed to notifications for this category" +msgstr "" + +#: src/tables/part/PartCategoryTable.tsx:80 #: src/tables/part/PartTable.tsx:196 msgid "Include Subcategories" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:69 +#: src/tables/part/PartCategoryTable.tsx:81 msgid "Include subcategories in results" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:74 +#: src/tables/part/PartCategoryTable.tsx:86 msgid "Show structural categories" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:78 -#: src/tables/part/PartTable.tsx:294 -msgid "Subscribed" -msgstr "" - -#: src/tables/part/PartCategoryTable.tsx:79 +#: src/tables/part/PartCategoryTable.tsx:91 msgid "Show categories to which the user is subscribed" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:86 +#: src/tables/part/PartCategoryTable.tsx:100 msgid "New Part Category" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:112 +#: src/tables/part/PartCategoryTable.tsx:129 msgid "Add Part Category" msgstr "" @@ -6523,11 +7686,6 @@ msgstr "" msgid "Part parameters cannot be edited, as the part is locked" msgstr "" -#: src/tables/part/PartParameterTable.tsx:212 -#: src/tables/stock/StockItemTable.tsx:335 -msgid "Include Variants" -msgstr "" - #: src/tables/part/PartParameterTemplateTable.tsx:31 msgid "Checkbox" msgstr "" @@ -6554,6 +7712,7 @@ msgid "Show templates with units" msgstr "" #: src/tables/part/PartParameterTemplateTable.tsx:85 +#: src/tables/part/PartParameterTemplateTable.tsx:141 msgid "Add Parameter Template" msgstr "" @@ -6566,23 +7725,19 @@ msgid "Delete Parameter Template" msgstr "" #: src/tables/part/PartParameterTemplateTable.tsx:141 -msgid "Add parameter template" -msgstr "" +#~ msgid "Add parameter template" +#~ msgstr "Add parameter template" -#: src/tables/part/PartPurchaseOrdersTable.tsx:77 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:162 +#: src/tables/part/PartPurchaseOrdersTable.tsx:78 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:168 msgid "Total Quantity" msgstr "" -#: src/tables/part/PartPurchaseOrdersTable.tsx:115 -msgid "Pending" -msgstr "" - -#: src/tables/part/PartPurchaseOrdersTable.tsx:116 +#: src/tables/part/PartPurchaseOrdersTable.tsx:122 msgid "Show pending orders" msgstr "" -#: src/tables/part/PartPurchaseOrdersTable.tsx:121 +#: src/tables/part/PartPurchaseOrdersTable.tsx:127 msgid "Show received items" msgstr "" @@ -6728,22 +7883,13 @@ msgstr "" msgid "Results" msgstr "" -#: src/tables/part/PartTestTemplateTable.tsx:76 -msgid "No Results" -msgstr "" - -#: src/tables/part/PartTestTemplateTable.tsx:106 -#: src/tables/stock/StockItemTestResultTable.tsx:365 -msgid "Required" -msgstr "" - #: src/tables/part/PartTestTemplateTable.tsx:107 msgid "Show required tests" msgstr "" #: src/tables/part/PartTestTemplateTable.tsx:111 -#: src/tables/settings/TemplateTable.tsx:167 -#: src/tables/settings/TemplateTable.tsx:283 +#: src/tables/settings/TemplateTable.tsx:247 +#: src/tables/settings/TemplateTable.tsx:363 msgid "Enabled" msgstr "" @@ -6784,7 +7930,7 @@ msgid "Show tests which have recorded results" msgstr "" #: src/tables/part/PartTestTemplateTable.tsx:154 -#: src/tables/part/PartTestTemplateTable.tsx:237 +#: src/tables/part/PartTestTemplateTable.tsx:238 msgid "Add Test Template" msgstr "" @@ -6808,7 +7954,7 @@ msgstr "" msgid "View Parent Part" msgstr "" -#: src/tables/part/PartTestTemplateTable.tsx:257 +#: src/tables/part/PartTestTemplateTable.tsx:258 msgid "Part templates cannot be edited, as the part is locked" msgstr "" @@ -6836,28 +7982,49 @@ msgstr "" msgid "Show trackable variants" msgstr "" -#: src/tables/part/RelatedPartTable.tsx:84 +#: src/tables/part/RelatedPartTable.tsx:86 +#: src/tables/part/RelatedPartTable.tsx:109 msgid "Add Related Part" msgstr "" -#: src/tables/part/RelatedPartTable.tsx:99 +#: src/tables/part/RelatedPartTable.tsx:101 msgid "Delete Related Part" msgstr "" -#: src/tables/part/RelatedPartTable.tsx:106 -msgid "Add related part" -msgstr "" +#: src/tables/part/RelatedPartTable.tsx:109 +#~ msgid "Add related part" +#~ msgstr "Add related part" #: src/tables/plugin/PluginErrorTable.tsx:29 msgid "Stage" msgstr "" -#: src/tables/plugin/PluginListTable.tsx:95 -msgid "Plugin with key {pluginKey} not found" +#: src/tables/plugin/PluginListTable.tsx:42 +msgid "Plugin is active" msgstr "" +#: src/tables/plugin/PluginListTable.tsx:48 +msgid "Plugin is inactive" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:55 +msgid "Plugin is not installed" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:76 +msgid "Plugin" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:95 +#~ msgid "Plugin with key {pluginKey} not found" +#~ msgstr "Plugin with key {pluginKey} not found" + #: src/tables/plugin/PluginListTable.tsx:97 -msgid "An error occurred while fetching plugin details" +#~ msgid "An error occurred while fetching plugin details" +#~ msgstr "An error occurred while fetching plugin details" + +#: src/tables/plugin/PluginListTable.tsx:109 +msgid "Description not available" msgstr "" #: src/tables/plugin/PluginListTable.tsx:113 @@ -6865,12 +8032,8 @@ msgstr "" #~ msgstr "Plugin with id {id} not found" #: src/tables/plugin/PluginListTable.tsx:122 -msgid "Plugin information" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:134 -msgid "Author" -msgstr "" +#~ msgid "Plugin information" +#~ msgstr "Plugin information" #: src/tables/plugin/PluginListTable.tsx:134 #~ msgid "Plugin Actions" @@ -6881,79 +8044,124 @@ msgstr "" #~ msgid "Edit plugin" #~ msgstr "Edit plugin" +#: src/tables/plugin/PluginListTable.tsx:144 +msgid "Confirm plugin activation" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:145 +msgid "Confirm plugin deactivation" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:150 +msgid "The selected plugin will be activated" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:151 +msgid "The selected plugin will be deactivated" +msgstr "" + #: src/tables/plugin/PluginListTable.tsx:152 #: src/tables/plugin/PluginListTable.tsx:153 #~ msgid "Reload" #~ msgstr "Reload" -#: src/tables/plugin/PluginListTable.tsx:154 -msgid "Plugin is not active" -msgstr "" - #: src/tables/plugin/PluginListTable.tsx:163 -msgid "Package information" -msgstr "" +#~ msgid "Package information" +#~ msgstr "Package information" #: src/tables/plugin/PluginListTable.tsx:169 -msgid "Package Name" +msgid "Deactivate" msgstr "" -#: src/tables/plugin/PluginListTable.tsx:175 -msgid "Installation Path" +#: src/tables/plugin/PluginListTable.tsx:183 +msgid "Activate" msgstr "" -#: src/tables/plugin/PluginListTable.tsx:185 -msgid "Package" +#: src/tables/plugin/PluginListTable.tsx:184 +msgid "Activate selected plugin" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:196 +msgid "Update selected plugin" msgstr "" #: src/tables/plugin/PluginListTable.tsx:197 -msgid "Plugin settings" -msgstr "" +#~ msgid "Plugin settings" +#~ msgstr "Plugin settings" #: src/tables/plugin/PluginListTable.tsx:214 -msgid "Plugin is active" +#: src/tables/stock/InstalledItemsTable.tsx:107 +msgid "Uninstall" msgstr "" -#: src/tables/plugin/PluginListTable.tsx:220 -msgid "Plugin is inactive" +#: src/tables/plugin/PluginListTable.tsx:215 +msgid "Uninstall selected plugin" msgstr "" -#: src/tables/plugin/PluginListTable.tsx:227 -msgid "Plugin is not installed" +#: src/tables/plugin/PluginListTable.tsx:233 +msgid "Delete selected plugin configuration" msgstr "" -#: src/tables/plugin/PluginListTable.tsx:253 -msgid "Plugin" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:287 -msgid "Description not available" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:319 -msgid "Confirm plugin activation" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:320 -msgid "Confirm plugin deactivation" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:325 -msgid "The selected plugin will be activated" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:326 -msgid "The selected plugin will be deactivated" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:334 +#: src/tables/plugin/PluginListTable.tsx:249 msgid "Activate Plugin" msgstr "" +#: src/tables/plugin/PluginListTable.tsx:270 +msgid "Install plugin" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:283 +msgid "Install" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:284 +msgid "Plugin installed successfully" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:289 +msgid "Uninstall Plugin" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:301 +msgid "Confirm plugin uninstall" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:304 +msgid "The selected plugin will be uninstalled." +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:308 +#~ msgid "This action cannot be undone." +#~ msgstr "This action cannot be undone." + +#: src/tables/plugin/PluginListTable.tsx:309 +msgid "Plugin uninstalled successfully" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:317 +msgid "Delete Plugin" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:318 +msgid "Deleting this plugin configuration will remove all associated settings and data. Are you sure you want to delete this plugin?" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:331 +msgid "Plugins reloaded" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:332 +msgid "Plugins were reloaded successfully" +msgstr "" + #: src/tables/plugin/PluginListTable.tsx:338 #~ msgid "Deactivate Plugin" #~ msgstr "Deactivate Plugin" +#: src/tables/plugin/PluginListTable.tsx:350 +msgid "Reload Plugins" +msgstr "" + #: src/tables/plugin/PluginListTable.tsx:354 #~ msgid "The following plugin will be activated" #~ msgstr "The following plugin will be activated" @@ -6962,16 +8170,16 @@ msgstr "" #~ msgid "The following plugin will be deactivated" #~ msgstr "The following plugin will be deactivated" -#: src/tables/plugin/PluginListTable.tsx:362 -msgid "Deactivate" +#: src/tables/plugin/PluginListTable.tsx:357 +msgid "Install Plugin" msgstr "" #: src/tables/plugin/PluginListTable.tsx:366 #~ msgid "Confirm" #~ msgstr "Confirm" -#: src/tables/plugin/PluginListTable.tsx:373 -msgid "Activate" +#: src/tables/plugin/PluginListTable.tsx:374 +msgid "Plugin Detail" msgstr "" #: src/tables/plugin/PluginListTable.tsx:376 @@ -6998,76 +8206,12 @@ msgstr "" #~ msgid "Error updating plugin" #~ msgstr "Error updating plugin" -#: src/tables/plugin/PluginListTable.tsx:406 -msgid "Uninstall" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:438 -msgid "Install plugin" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:451 -msgid "Install" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:452 -msgid "Plugin installed successfully" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:457 -msgid "Uninstall Plugin" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:469 -msgid "Confirm plugin uninstall" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:472 -msgid "The selected plugin will be uninstalled." -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:473 -msgid "This action cannot be undone." -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:477 -msgid "Plugin uninstalled successfully" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:484 -msgid "Delete Plugin" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:485 -msgid "Deleting this plugin configuration will remove all associated settings and data. Are you sure you want to delete this plugin?" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:498 -msgid "Plugins reloaded" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:499 -msgid "Plugins were reloaded successfully" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:515 -msgid "Reload Plugins" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:524 -msgid "Install Plugin" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:544 -msgid "Plugin Detail" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:573 +#: src/tables/plugin/PluginListTable.tsx:411 msgid "Sample" msgstr "" -#: src/tables/plugin/PluginListTable.tsx:578 -#: src/tables/stock/StockItemTable.tsx:340 +#: src/tables/plugin/PluginListTable.tsx:416 +#: src/tables/stock/StockItemTable.tsx:344 msgid "Installed" msgstr "" @@ -7116,82 +8260,78 @@ msgstr "" #~ msgid "Are you sure you want to remove this manufacturer part?" #~ msgstr "Are you sure you want to remove this manufacturer part?" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:102 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:339 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:103 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:356 msgid "Import Line Items" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:135 -msgid "Part Description" -msgstr "" - -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:201 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:207 msgid "Supplier Code" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:208 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:214 msgid "Supplier Link" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:215 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:220 msgid "Manufacturer Code" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:229 -msgid "Destination" +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:248 +msgid "Show line items which have been received" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:300 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:316 msgid "Receive line item" msgstr "" #: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:344 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:142 -#: src/tables/sales/SalesOrderLineItemTable.tsx:240 -msgid "Add line item" -msgstr "" +#: src/tables/sales/ReturnOrderLineItemTable.tsx:160 +#: src/tables/sales/SalesOrderLineItemTable.tsx:258 +#~ msgid "Add line item" +#~ msgstr "Add line item" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:354 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:373 msgid "Receive items" msgstr "" -#: src/tables/purchasing/SupplierPartTable.tsx:93 +#: src/tables/purchasing/SupplierPartTable.tsx:95 msgid "MPN" msgstr "" -#: src/tables/purchasing/SupplierPartTable.tsx:122 +#: src/tables/purchasing/SupplierPartTable.tsx:124 msgid "Base units" msgstr "" -#: src/tables/purchasing/SupplierPartTable.tsx:170 +#: src/tables/purchasing/SupplierPartTable.tsx:172 msgid "Supplier part created" msgstr "" -#: src/tables/purchasing/SupplierPartTable.tsx:176 +#: src/tables/purchasing/SupplierPartTable.tsx:179 msgid "Add supplier part" msgstr "" -#: src/tables/purchasing/SupplierPartTable.tsx:188 +#: src/tables/purchasing/SupplierPartTable.tsx:191 msgid "Show active supplier parts" msgstr "" -#: src/tables/purchasing/SupplierPartTable.tsx:192 -msgid "Active Part" -msgstr "" - -#: src/tables/purchasing/SupplierPartTable.tsx:193 -msgid "Show active internal parts" -msgstr "" - #: src/tables/purchasing/SupplierPartTable.tsx:193 #~ msgid "Supplier part updated" #~ msgstr "Supplier part updated" -#: src/tables/purchasing/SupplierPartTable.tsx:197 +#: src/tables/purchasing/SupplierPartTable.tsx:195 +msgid "Active Part" +msgstr "" + +#: src/tables/purchasing/SupplierPartTable.tsx:196 +msgid "Show active internal parts" +msgstr "" + +#: src/tables/purchasing/SupplierPartTable.tsx:200 msgid "Active Supplier" msgstr "" -#: src/tables/purchasing/SupplierPartTable.tsx:198 +#: src/tables/purchasing/SupplierPartTable.tsx:201 msgid "Show active suppliers" msgstr "" @@ -7203,99 +8343,187 @@ msgstr "" #~ msgid "Are you sure you want to remove this supplier part?" #~ msgstr "Are you sure you want to remove this supplier part?" -#: src/tables/sales/ReturnOrderLineItemTable.tsx:114 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:139 msgid "Received Date" msgstr "" -#: src/tables/sales/ReturnOrderLineItemTable.tsx:128 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:153 msgid "Show items which have been received" msgstr "" -#: src/tables/sales/ReturnOrderLineItemTable.tsx:133 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:158 msgid "Filter by line item status" msgstr "" -#: src/tables/sales/ReturnOrderLineItemTable.tsx:158 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:176 +msgid "Receive selected items" +msgstr "" + +#: src/tables/sales/ReturnOrderLineItemTable.tsx:205 msgid "Receive Item" msgstr "" -#: src/tables/sales/SalesOrderLineItemTable.tsx:262 -msgid "Allocate stock" +#: src/tables/sales/SalesOrderAllocationTable.tsx:60 +msgid "Show outstanding allocations" msgstr "" -#: src/tables/sales/SalesOrderLineItemTable.tsx:272 +#: src/tables/sales/SalesOrderAllocationTable.tsx:168 +#: src/tables/sales/SalesOrderAllocationTable.tsx:190 +msgid "Edit Allocation" +msgstr "" + +#: src/tables/sales/SalesOrderAllocationTable.tsx:175 +#: src/tables/sales/SalesOrderAllocationTable.tsx:197 +msgid "Delete Allocation" +msgstr "" + +#: src/tables/sales/SalesOrderLineItemTable.tsx:244 +msgid "Allocate Serial Numbers" +msgstr "" + +#: src/tables/sales/SalesOrderLineItemTable.tsx:277 +msgid "Show lines which are fully allocated" +msgstr "" + +#: src/tables/sales/SalesOrderLineItemTable.tsx:280 +#~ msgid "Allocate stock" +#~ msgstr "Allocate stock" + +#: src/tables/sales/SalesOrderLineItemTable.tsx:282 +msgid "Show lines which are completed" +msgstr "" + +#: src/tables/sales/SalesOrderLineItemTable.tsx:291 +#~ msgid "Allocate Serials" +#~ msgstr "Allocate Serials" + +#: src/tables/sales/SalesOrderLineItemTable.tsx:340 +msgid "Allocate serials" +msgstr "" + +#: src/tables/sales/SalesOrderLineItemTable.tsx:356 msgid "Build stock" msgstr "" -#: src/tables/sales/SalesOrderLineItemTable.tsx:289 -#: src/tables/stock/StockItemTable.tsx:507 +#: src/tables/sales/SalesOrderLineItemTable.tsx:373 +#: src/tables/stock/StockItemTable.tsx:512 msgid "Order stock" msgstr "" -#: src/tables/sales/SalesOrderShipmentTable.tsx:40 +#: src/tables/sales/SalesOrderShipmentTable.tsx:51 +#~ msgid "Delete Shipment" +#~ msgstr "Delete Shipment" + +#: src/tables/sales/SalesOrderShipmentTable.tsx:57 msgid "Create Shipment" msgstr "" -#: src/tables/sales/SalesOrderShipmentTable.tsx:50 -msgid "Delete Shipment" -msgstr "" - -#: src/tables/sales/SalesOrderShipmentTable.tsx:58 -msgid "Edit Shipment" -msgstr "" - -#: src/tables/sales/SalesOrderShipmentTable.tsx:66 -msgid "Shipment Reference" -msgstr "" - -#: src/tables/sales/SalesOrderShipmentTable.tsx:71 +#: src/tables/sales/SalesOrderShipmentTable.tsx:104 msgid "Items" msgstr "" -#: src/tables/sales/SalesOrderShipmentTable.tsx:83 -msgid "Delivery Date" +#: src/tables/sales/SalesOrderShipmentTable.tsx:139 +msgid "View Shipment" msgstr "" -#: src/tables/sales/SalesOrderShipmentTable.tsx:107 -msgid "Complete Shipment" +#: src/tables/sales/SalesOrderShipmentTable.tsx:161 +msgid "Edit shipment" msgstr "" -#: src/tables/sales/SalesOrderShipmentTable.tsx:133 +#: src/tables/sales/SalesOrderShipmentTable.tsx:169 +msgid "Cancel shipment" +msgstr "" + +#: src/tables/sales/SalesOrderShipmentTable.tsx:184 msgid "Add shipment" msgstr "" -#: src/tables/sales/SalesOrderShipmentTable.tsx:146 -msgid "Shipped" -msgstr "" - -#: src/tables/sales/SalesOrderShipmentTable.tsx:147 +#: src/tables/sales/SalesOrderShipmentTable.tsx:198 msgid "Show shipments which have been shipped" msgstr "" -#: src/tables/sales/SalesOrderShipmentTable.tsx:151 -msgid "Delivered" -msgstr "" - -#: src/tables/sales/SalesOrderShipmentTable.tsx:152 +#: src/tables/sales/SalesOrderShipmentTable.tsx:203 msgid "Show shipments which have been delivered" msgstr "" -#: src/tables/settings/CurrencyTable.tsx:28 -msgid "Rate" +#: src/tables/settings/BarcodeScanHistoryTable.tsx:61 +msgid "Barcode Information" msgstr "" -#: src/tables/settings/CurrencyTable.tsx:40 -msgid "Exchange rates updated" +#: src/tables/settings/BarcodeScanHistoryTable.tsx:76 +#: src/tables/settings/ErrorTable.tsx:59 +msgid "Timestamp" msgstr "" -#: src/tables/settings/CurrencyTable.tsx:46 -msgid "Exchange rate update error" +#: src/tables/settings/BarcodeScanHistoryTable.tsx:86 +msgid "Endpoint" msgstr "" -#: src/tables/settings/CurrencyTable.tsx:57 -msgid "Refresh currency exchange rates" +#: src/tables/settings/BarcodeScanHistoryTable.tsx:90 +#: src/tables/settings/BarcodeScanHistoryTable.tsx:217 +#: src/tables/stock/StockItemTestResultTable.tsx:174 +msgid "Result" msgstr "" +#: src/tables/settings/BarcodeScanHistoryTable.tsx:98 +msgid "Context" +msgstr "" + +#: src/tables/settings/BarcodeScanHistoryTable.tsx:119 +msgid "Response" +msgstr "" + +#: src/tables/settings/BarcodeScanHistoryTable.tsx:213 +#: src/tables/settings/ImportSessionTable.tsx:121 +#: src/tables/stock/StockTrackingTable.tsx:183 +msgid "Filter by user" +msgstr "" + +#: src/tables/settings/BarcodeScanHistoryTable.tsx:218 +msgid "Filter by result" +msgstr "" + +#: src/tables/settings/BarcodeScanHistoryTable.tsx:232 +msgid "Delete Barcode Scan Record" +msgstr "" + +#: src/tables/settings/BarcodeScanHistoryTable.tsx:258 +msgid "Barcode Scan Details" +msgstr "" + +#: src/tables/settings/BarcodeScanHistoryTable.tsx:268 +msgid "Logging Disabled" +msgstr "" + +#: src/tables/settings/BarcodeScanHistoryTable.tsx:270 +msgid "Barcode logging is not enabled" +msgstr "" + +#: src/tables/settings/CustomStateTable.tsx:36 +msgid "Display Name" +msgstr "" + +#: src/tables/settings/CustomStateTable.tsx:52 +msgid "Model" +msgstr "" + +#: src/tables/settings/CustomStateTable.tsx:65 +#: src/tables/settings/CustomStateTable.tsx:115 +msgid "Add State" +msgstr "" + +#: src/tables/settings/CustomStateTable.tsx:77 +msgid "Edit State" +msgstr "" + +#: src/tables/settings/CustomStateTable.tsx:85 +msgid "Delete State" +msgstr "" + +#: src/tables/settings/CustomStateTable.tsx:115 +#~ msgid "Add state" +#~ msgstr "Add state" + #: src/tables/settings/CustomUnitsTable.tsx:50 msgid "Add Custom Unit" msgstr "" @@ -7312,59 +8540,71 @@ msgstr "" msgid "Add custom unit" msgstr "" -#: src/tables/settings/ErrorTable.tsx:31 -msgid "When" -msgstr "" - -#: src/tables/settings/ErrorTable.tsx:41 -msgid "Error Information" -msgstr "" - #: src/tables/settings/ErrorTable.tsx:51 #~ msgid "Delete error report" #~ msgstr "Delete error report" -#: src/tables/settings/ErrorTable.tsx:53 +#: src/tables/settings/ErrorTable.tsx:67 +msgid "Traceback" +msgstr "" + +#: src/tables/settings/ErrorTable.tsx:103 +msgid "When" +msgstr "" + +#: src/tables/settings/ErrorTable.tsx:113 +msgid "Error Information" +msgstr "" + +#: src/tables/settings/ErrorTable.tsx:123 msgid "Delete Error Report" msgstr "" -#: src/tables/settings/ErrorTable.tsx:55 +#: src/tables/settings/ErrorTable.tsx:125 msgid "Are you sure you want to delete this error report?" msgstr "" -#: src/tables/settings/ErrorTable.tsx:57 +#: src/tables/settings/ErrorTable.tsx:127 msgid "Error report deleted" msgstr "" -#: src/tables/settings/ErrorTable.tsx:79 -#: src/tables/settings/FailedTasksTable.tsx:59 +#: src/tables/settings/ErrorTable.tsx:146 +#: src/tables/settings/FailedTasksTable.tsx:65 msgid "Error Details" msgstr "" -#: src/tables/settings/FailedTasksTable.tsx:26 -#: src/tables/settings/PendingTasksTable.tsx:19 +#: src/tables/settings/FailedTasksTable.tsx:32 +#: src/tables/settings/PendingTasksTable.tsx:23 #: src/tables/settings/ScheduledTasksTable.tsx:19 msgid "Task" msgstr "" -#: src/tables/settings/FailedTasksTable.tsx:32 -#: src/tables/settings/PendingTasksTable.tsx:24 +#: src/tables/settings/FailedTasksTable.tsx:38 +#: src/tables/settings/PendingTasksTable.tsx:28 msgid "Task ID" msgstr "" -#: src/tables/settings/FailedTasksTable.tsx:36 -#: src/tables/stock/StockItemTestResultTable.tsx:211 +#: src/tables/settings/FailedTasksTable.tsx:42 +#: src/tables/stock/StockItemTestResultTable.tsx:218 msgid "Started" msgstr "" -#: src/tables/settings/FailedTasksTable.tsx:42 +#: src/tables/settings/FailedTasksTable.tsx:48 msgid "Stopped" msgstr "" -#: src/tables/settings/FailedTasksTable.tsx:48 +#: src/tables/settings/FailedTasksTable.tsx:54 msgid "Attempts" msgstr "" +#: src/tables/settings/FailedTasksTable.tsx:92 +msgid "No Information" +msgstr "" + +#: src/tables/settings/FailedTasksTable.tsx:93 +msgid "No error details are available for this task" +msgstr "" + #: src/tables/settings/GroupTable.tsx:90 msgid "Group with id {id} not found" msgstr "" @@ -7398,42 +8638,34 @@ msgstr "" msgid "Edit group" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:38 +#: src/tables/settings/ImportSessionTable.tsx:37 msgid "Delete Import Session" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:44 +#: src/tables/settings/ImportSessionTable.tsx:43 #: src/tables/settings/ImportSessionTable.tsx:131 msgid "Create Import Session" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:69 +#: src/tables/settings/ImportSessionTable.tsx:68 msgid "Uploaded" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:79 -msgid "Imported Rows" -msgstr "" - -#: src/tables/settings/ImportSessionTable.tsx:109 -#: src/tables/settings/TemplateTable.tsx:289 +#: src/tables/settings/ImportSessionTable.tsx:108 +#: src/tables/settings/TemplateTable.tsx:369 msgid "Model Type" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:110 -#: src/tables/settings/TemplateTable.tsx:290 +#: src/tables/settings/ImportSessionTable.tsx:109 +#: src/tables/settings/TemplateTable.tsx:370 msgid "Filter by target model type" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:116 +#: src/tables/settings/ImportSessionTable.tsx:115 msgid "Filter by import session status" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:122 -msgid "Filter by user" -msgstr "" - -#: src/tables/settings/PendingTasksTable.tsx:38 +#: src/tables/settings/PendingTasksTable.tsx:42 msgid "Arguments" msgstr "" @@ -7461,12 +8693,16 @@ msgstr "" msgid "Next Run" msgstr "" -#: src/tables/settings/TemplateTable.tsx:85 -msgid "Template not found" +#: src/tables/settings/StocktakeReportTable.tsx:28 +msgid "Report" msgstr "" -#: src/tables/settings/TemplateTable.tsx:87 -msgid "An error occurred while fetching template details" +#: src/tables/settings/StocktakeReportTable.tsx:35 +msgid "Part Count" +msgstr "" + +#: src/tables/settings/StocktakeReportTable.tsx:58 +msgid "Delete Report" msgstr "" #: src/tables/settings/TemplateTable.tsx:120 @@ -7481,21 +8717,12 @@ msgstr "" #~ msgid "actions" #~ msgstr "actions" -#: src/tables/settings/TemplateTable.tsx:177 -msgid "Modify" +#: src/tables/settings/TemplateTable.tsx:162 +msgid "Template not found" msgstr "" -#: src/tables/settings/TemplateTable.tsx:178 -msgid "Modify template file" -msgstr "" - -#: src/tables/settings/TemplateTable.tsx:234 -#: src/tables/settings/TemplateTable.tsx:302 -msgid "Edit Template" -msgstr "" - -#: src/tables/settings/TemplateTable.tsx:242 -msgid "Delete template" +#: src/tables/settings/TemplateTable.tsx:164 +msgid "An error occurred while fetching template details" msgstr "" #: src/tables/settings/TemplateTable.tsx:243 @@ -7506,103 +8733,137 @@ msgstr "" #~ msgid "Create new" #~ msgstr "Create new" -#: src/tables/settings/TemplateTable.tsx:248 +#: src/tables/settings/TemplateTable.tsx:257 +msgid "Modify" +msgstr "" + +#: src/tables/settings/TemplateTable.tsx:258 +msgid "Modify template file" +msgstr "" + +#: src/tables/settings/TemplateTable.tsx:314 +#: src/tables/settings/TemplateTable.tsx:382 +msgid "Edit Template" +msgstr "" + +#: src/tables/settings/TemplateTable.tsx:322 +msgid "Delete template" +msgstr "" + +#: src/tables/settings/TemplateTable.tsx:328 msgid "Add Template" msgstr "" -#: src/tables/settings/TemplateTable.tsx:261 +#: src/tables/settings/TemplateTable.tsx:341 msgid "Add template" msgstr "" -#: src/tables/settings/TemplateTable.tsx:284 +#: src/tables/settings/TemplateTable.tsx:364 msgid "Filter by enabled status" msgstr "" -#: src/tables/settings/UserTable.tsx:82 +#: src/tables/settings/UserTable.tsx:81 msgid "User with id {id} not found" msgstr "" -#: src/tables/settings/UserTable.tsx:84 +#: src/tables/settings/UserTable.tsx:83 msgid "An error occurred while fetching user details" msgstr "" -#: src/tables/settings/UserTable.tsx:102 +#: src/tables/settings/UserTable.tsx:101 msgid "Is Active" msgstr "" -#: src/tables/settings/UserTable.tsx:103 +#: src/tables/settings/UserTable.tsx:102 msgid "Designates whether this user should be treated as active. Unselect this instead of deleting accounts." msgstr "" -#: src/tables/settings/UserTable.tsx:107 +#: src/tables/settings/UserTable.tsx:106 msgid "Is Staff" msgstr "" -#: src/tables/settings/UserTable.tsx:108 +#: src/tables/settings/UserTable.tsx:107 msgid "Designates whether the user can log into the django admin site." msgstr "" -#: src/tables/settings/UserTable.tsx:112 +#: src/tables/settings/UserTable.tsx:111 msgid "Is Superuser" msgstr "" -#: src/tables/settings/UserTable.tsx:113 +#: src/tables/settings/UserTable.tsx:112 msgid "Designates that this user has all permissions without explicitly assigning them." msgstr "" -#: src/tables/settings/UserTable.tsx:123 +#: src/tables/settings/UserTable.tsx:122 msgid "You cannot edit the rights for the currently logged-in user." msgstr "" -#: src/tables/settings/UserTable.tsx:154 +#: src/tables/settings/UserTable.tsx:153 msgid "No groups" msgstr "" -#: src/tables/settings/UserTable.tsx:245 +#: src/tables/settings/UserTable.tsx:244 msgid "Delete user" msgstr "" -#: src/tables/settings/UserTable.tsx:246 +#: src/tables/settings/UserTable.tsx:245 msgid "User deleted" msgstr "" -#: src/tables/settings/UserTable.tsx:248 +#: src/tables/settings/UserTable.tsx:247 msgid "Are you sure you want to delete this user?" msgstr "" -#: src/tables/settings/UserTable.tsx:254 -#: src/tables/settings/UserTable.tsx:272 +#: src/tables/settings/UserTable.tsx:253 +#: src/tables/settings/UserTable.tsx:271 msgid "Add user" msgstr "" -#: src/tables/settings/UserTable.tsx:262 +#: src/tables/settings/UserTable.tsx:261 msgid "Added user" msgstr "" -#: src/tables/settings/UserTable.tsx:285 +#: src/tables/settings/UserTable.tsx:284 msgid "Show active users" msgstr "" -#: src/tables/settings/UserTable.tsx:289 +#: src/tables/settings/UserTable.tsx:288 msgid "Staff" msgstr "" -#: src/tables/settings/UserTable.tsx:290 +#: src/tables/settings/UserTable.tsx:289 msgid "Show staff users" msgstr "" #: src/tables/settings/UserTable.tsx:294 -msgid "Superuser" -msgstr "" - -#: src/tables/settings/UserTable.tsx:295 msgid "Show superusers" msgstr "" -#: src/tables/settings/UserTable.tsx:305 +#: src/tables/settings/UserTable.tsx:304 msgid "Edit user" msgstr "" +#: src/tables/stock/InstalledItemsTable.tsx:37 +#: src/tables/stock/InstalledItemsTable.tsx:90 +msgid "Install Item" +msgstr "" + +#: src/tables/stock/InstalledItemsTable.tsx:39 +msgid "Item installed" +msgstr "" + +#: src/tables/stock/InstalledItemsTable.tsx:50 +msgid "Uninstall Item" +msgstr "" + +#: src/tables/stock/InstalledItemsTable.tsx:52 +msgid "Item uninstalled" +msgstr "" + +#: src/tables/stock/InstalledItemsTable.tsx:108 +msgid "Uninstall stock item" +msgstr "" + #: src/tables/stock/LocationTypesTable.tsx:39 #: src/tables/stock/LocationTypesTable.tsx:109 msgid "Add Location Type" @@ -7620,276 +8881,272 @@ msgstr "" msgid "Icon" msgstr "" -#: src/tables/stock/StockItemTable.tsx:101 +#: src/tables/stock/StockItemTable.tsx:90 msgid "This stock item is in production" msgstr "" -#: src/tables/stock/StockItemTable.tsx:110 +#: src/tables/stock/StockItemTable.tsx:97 msgid "This stock item has been assigned to a sales order" msgstr "" -#: src/tables/stock/StockItemTable.tsx:119 +#: src/tables/stock/StockItemTable.tsx:104 msgid "This stock item has been assigned to a customer" msgstr "" -#: src/tables/stock/StockItemTable.tsx:128 +#: src/tables/stock/StockItemTable.tsx:111 msgid "This stock item is installed in another stock item" msgstr "" -#: src/tables/stock/StockItemTable.tsx:137 +#: src/tables/stock/StockItemTable.tsx:118 msgid "This stock item has been consumed by a build order" msgstr "" -#: src/tables/stock/StockItemTable.tsx:146 +#: src/tables/stock/StockItemTable.tsx:125 +msgid "This stock item is unavailable" +msgstr "" + +#: src/tables/stock/StockItemTable.tsx:134 msgid "This stock item has expired" msgstr "" -#: src/tables/stock/StockItemTable.tsx:150 +#: src/tables/stock/StockItemTable.tsx:138 msgid "This stock item is stale" msgstr "" -#: src/tables/stock/StockItemTable.tsx:161 +#: src/tables/stock/StockItemTable.tsx:150 msgid "This stock item is fully allocated" msgstr "" -#: src/tables/stock/StockItemTable.tsx:168 +#: src/tables/stock/StockItemTable.tsx:157 msgid "This stock item is partially allocated" msgstr "" -#: src/tables/stock/StockItemTable.tsx:196 +#: src/tables/stock/StockItemTable.tsx:185 msgid "This stock item has been depleted" msgstr "" -#: src/tables/stock/StockItemTable.tsx:232 +#: src/tables/stock/StockItemTable.tsx:280 msgid "Stocktake Date" msgstr "" -#: src/tables/stock/StockItemTable.tsx:236 -msgid "Expiry Date" -msgstr "" - -#: src/tables/stock/StockItemTable.tsx:260 -msgid "Stock Value" -msgstr "" - -#: src/tables/stock/StockItemTable.tsx:290 +#: src/tables/stock/StockItemTable.tsx:294 msgid "Show stock for active parts" msgstr "" -#: src/tables/stock/StockItemTable.tsx:295 +#: src/tables/stock/StockItemTable.tsx:299 msgid "Filter by stock status" msgstr "" #: src/tables/stock/StockItemTable.tsx:301 -msgid "Show stock for assmebled parts" +#~ msgid "Show stock for assmebled parts" +#~ msgstr "Show stock for assmebled parts" + +#: src/tables/stock/StockItemTable.tsx:305 +msgid "Show stock for assembled parts" msgstr "" -#: src/tables/stock/StockItemTable.tsx:306 +#: src/tables/stock/StockItemTable.tsx:310 msgid "Show items which have been allocated" msgstr "" -#: src/tables/stock/StockItemTable.tsx:311 +#: src/tables/stock/StockItemTable.tsx:315 msgid "Show items which are available" msgstr "" -#: src/tables/stock/StockItemTable.tsx:315 +#: src/tables/stock/StockItemTable.tsx:319 #: src/tables/stock/StockLocationTable.tsx:44 msgid "Include Sublocations" msgstr "" -#: src/tables/stock/StockItemTable.tsx:316 +#: src/tables/stock/StockItemTable.tsx:320 msgid "Include stock in sublocations" msgstr "" -#: src/tables/stock/StockItemTable.tsx:320 +#: src/tables/stock/StockItemTable.tsx:324 msgid "Depleted" msgstr "" -#: src/tables/stock/StockItemTable.tsx:321 +#: src/tables/stock/StockItemTable.tsx:325 msgid "Show depleted stock items" msgstr "" -#: src/tables/stock/StockItemTable.tsx:326 +#: src/tables/stock/StockItemTable.tsx:330 msgid "Show items which are in stock" msgstr "" -#: src/tables/stock/StockItemTable.tsx:331 +#: src/tables/stock/StockItemTable.tsx:335 msgid "Show items which are in production" msgstr "" -#: src/tables/stock/StockItemTable.tsx:336 +#: src/tables/stock/StockItemTable.tsx:340 msgid "Include stock items for variant parts" msgstr "" -#: src/tables/stock/StockItemTable.tsx:341 +#: src/tables/stock/StockItemTable.tsx:345 msgid "Show stock items which are installed in other items" msgstr "" -#: src/tables/stock/StockItemTable.tsx:345 +#: src/tables/stock/StockItemTable.tsx:349 msgid "Sent to Customer" msgstr "" -#: src/tables/stock/StockItemTable.tsx:346 +#: src/tables/stock/StockItemTable.tsx:350 msgid "Show items which have been sent to a customer" msgstr "" -#: src/tables/stock/StockItemTable.tsx:350 +#: src/tables/stock/StockItemTable.tsx:354 msgid "Is Serialized" msgstr "" -#: src/tables/stock/StockItemTable.tsx:351 +#: src/tables/stock/StockItemTable.tsx:355 msgid "Show items which have a serial number" msgstr "" -#: src/tables/stock/StockItemTable.tsx:358 +#: src/tables/stock/StockItemTable.tsx:362 msgid "Has Batch Code" msgstr "" -#: src/tables/stock/StockItemTable.tsx:359 +#: src/tables/stock/StockItemTable.tsx:363 msgid "Show items which have a batch code" msgstr "" -#: src/tables/stock/StockItemTable.tsx:365 +#: src/tables/stock/StockItemTable.tsx:369 msgid "Show tracked items" msgstr "" -#: src/tables/stock/StockItemTable.tsx:369 +#: src/tables/stock/StockItemTable.tsx:373 msgid "Has Purchase Price" msgstr "" -#: src/tables/stock/StockItemTable.tsx:370 +#: src/tables/stock/StockItemTable.tsx:374 msgid "Show items which have a purchase price" msgstr "" -#: src/tables/stock/StockItemTable.tsx:378 +#: src/tables/stock/StockItemTable.tsx:382 msgid "External Location" msgstr "" -#: src/tables/stock/StockItemTable.tsx:379 +#: src/tables/stock/StockItemTable.tsx:383 msgid "Show items in an external location" msgstr "" -#: src/tables/stock/StockItemTable.tsx:451 +#: src/tables/stock/StockItemTable.tsx:456 msgid "Add a new stock item" msgstr "" -#: src/tables/stock/StockItemTable.tsx:460 +#: src/tables/stock/StockItemTable.tsx:465 msgid "Remove some quantity from a stock item" msgstr "" -#: src/tables/stock/StockItemTable.tsx:482 +#: src/tables/stock/StockItemTable.tsx:487 msgid "Move Stock items to new locations" msgstr "" -#: src/tables/stock/StockItemTable.tsx:489 +#: src/tables/stock/StockItemTable.tsx:494 msgid "Change stock status" msgstr "" -#: src/tables/stock/StockItemTable.tsx:491 +#: src/tables/stock/StockItemTable.tsx:496 msgid "Change the status of stock items" msgstr "" -#: src/tables/stock/StockItemTable.tsx:498 +#: src/tables/stock/StockItemTable.tsx:503 msgid "Merge stock" msgstr "" -#: src/tables/stock/StockItemTable.tsx:500 +#: src/tables/stock/StockItemTable.tsx:505 msgid "Merge stock items" msgstr "" -#: src/tables/stock/StockItemTable.tsx:509 -#: src/tables/stock/StockItemTable.tsx:516 +#: src/tables/stock/StockItemTable.tsx:514 +#: src/tables/stock/StockItemTable.tsx:521 msgid "Order new stock" msgstr "" -#: src/tables/stock/StockItemTable.tsx:514 +#: src/tables/stock/StockItemTable.tsx:519 msgid "Assign to customer" msgstr "" -#: src/tables/stock/StockItemTable.tsx:523 +#: src/tables/stock/StockItemTable.tsx:528 msgid "Delete stock" msgstr "" -#: src/tables/stock/StockItemTable.tsx:525 -msgid "Delete stock items" -msgstr "" +#: src/tables/stock/StockItemTable.tsx:528 +#~ msgid "Delete stock items" +#~ msgstr "Delete stock items" -#: src/tables/stock/StockItemTestResultTable.tsx:131 +#: src/tables/stock/StockItemTestResultTable.tsx:137 msgid "Test" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:157 +#: src/tables/stock/StockItemTestResultTable.tsx:163 msgid "Test result for installed stock item" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:168 -msgid "Result" -msgstr "" - -#: src/tables/stock/StockItemTestResultTable.tsx:190 +#: src/tables/stock/StockItemTestResultTable.tsx:196 msgid "Attachment" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:206 +#: src/tables/stock/StockItemTestResultTable.tsx:212 msgid "Test station" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:226 +#: src/tables/stock/StockItemTestResultTable.tsx:234 msgid "Finished" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:268 -#: src/tables/stock/StockItemTestResultTable.tsx:339 +#: src/tables/stock/StockItemTestResultTable.tsx:286 +#: src/tables/stock/StockItemTestResultTable.tsx:357 msgid "Edit Test Result" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:270 +#: src/tables/stock/StockItemTestResultTable.tsx:288 msgid "Test result updated" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:276 -#: src/tables/stock/StockItemTestResultTable.tsx:348 +#: src/tables/stock/StockItemTestResultTable.tsx:294 +#: src/tables/stock/StockItemTestResultTable.tsx:366 msgid "Delete Test Result" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:278 +#: src/tables/stock/StockItemTestResultTable.tsx:296 msgid "Test result deleted" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:292 +#: src/tables/stock/StockItemTestResultTable.tsx:310 msgid "Test Passed" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:293 +#: src/tables/stock/StockItemTestResultTable.tsx:311 msgid "Test result has been recorded" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:300 +#: src/tables/stock/StockItemTestResultTable.tsx:318 msgid "Failed to record test result" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:317 +#: src/tables/stock/StockItemTestResultTable.tsx:335 msgid "Pass Test" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:366 +#: src/tables/stock/StockItemTestResultTable.tsx:384 msgid "Show results for required tests" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:370 +#: src/tables/stock/StockItemTestResultTable.tsx:388 msgid "Include Installed" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:371 +#: src/tables/stock/StockItemTestResultTable.tsx:389 msgid "Show results for installed stock items" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:375 -#: src/tables/stock/TestStatisticsTable.tsx:74 +#: src/tables/stock/StockItemTestResultTable.tsx:393 +#: src/tables/stock/TestStatisticsTable.tsx:62 msgid "Passed" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:376 +#: src/tables/stock/StockItemTestResultTable.tsx:394 msgid "Show only passed tests" msgstr "" @@ -7922,28 +9179,32 @@ msgid "Filter by location type" msgstr "" #: src/tables/stock/StockLocationTable.tsx:107 -#: src/tables/stock/StockLocationTable.tsx:133 +#: src/tables/stock/StockLocationTable.tsx:134 msgid "Add Stock Location" msgstr "" -#: src/tables/stock/StockTrackingTable.tsx:64 +#: src/tables/stock/StockTrackingTable.tsx:68 msgid "Added" msgstr "" -#: src/tables/stock/StockTrackingTable.tsx:69 +#: src/tables/stock/StockTrackingTable.tsx:73 msgid "Removed" msgstr "" #: src/tables/stock/StockTrackingTable.tsx:198 +msgid "Details" +msgstr "" + +#: src/tables/stock/StockTrackingTable.tsx:213 msgid "No user information" msgstr "" -#: src/tables/stock/TestStatisticsTable.tsx:46 -#: src/tables/stock/TestStatisticsTable.tsx:76 +#: src/tables/stock/TestStatisticsTable.tsx:34 +#: src/tables/stock/TestStatisticsTable.tsx:64 msgid "Total" msgstr "" -#: src/tables/stock/TestStatisticsTable.tsx:75 +#: src/tables/stock/TestStatisticsTable.tsx:63 msgid "Failed" msgstr "" diff --git a/src/frontend/src/locales/fr/messages.po b/src/frontend/src/locales/fr/messages.po index 747914f2ca..bd4d6b79f6 100644 --- a/src/frontend/src/locales/fr/messages.po +++ b/src/frontend/src/locales/fr/messages.po @@ -8,15 +8,15 @@ msgstr "" "Language: fr\n" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"PO-Revision-Date: 2024-08-20 19:49\n" +"PO-Revision-Date: 2024-11-04 10:27\n" "Last-Translator: \n" "Language-Team: French\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" "X-Crowdin-Project: inventree\n" "X-Crowdin-Project-ID: 452300\n" "X-Crowdin-Language: fr\n" -"X-Crowdin-File: /[inventree.InvenTree] l10/src/frontend/src/locales/en/messages.po\n" -"X-Crowdin-File-ID: 205\n" +"X-Crowdin-File: /src/frontend/src/locales/en/messages.po\n" +"X-Crowdin-File-ID: 252\n" #: src/components/Boundary.tsx:12 msgid "Error rendering component" @@ -27,8 +27,8 @@ msgid "An error occurred while rendering this component. Refer to the console fo msgstr "Une erreur s'est produite lors du rendu de ce composant. Reportez-vous à la console pour plus d'informations." #: src/components/DashboardItemProxy.tsx:34 -msgid "Title" -msgstr "Titre" +#~ msgid "Title" +#~ msgstr "Title" #: src/components/buttons/AdminButton.tsx:80 msgid "Open in admin interface" @@ -38,82 +38,99 @@ msgstr "Ouvrir dans l'interface d'administration" #~ msgid "Copy to clipboard" #~ msgstr "Copy to clipboard" -#: src/components/buttons/CopyButton.tsx:24 +#: src/components/buttons/CopyButton.tsx:29 msgid "Copied" msgstr "Copié" -#: src/components/buttons/CopyButton.tsx:24 +#: src/components/buttons/CopyButton.tsx:29 msgid "Copy" msgstr "Copier" -#: src/components/buttons/PrintingActions.tsx:93 +#: src/components/buttons/PrintingActions.tsx:97 msgid "Print Label" msgstr "Imprimer l'étiquette" -#: src/components/buttons/PrintingActions.tsx:99 +#: src/components/buttons/PrintingActions.tsx:103 msgid "Print" msgstr "Imprimer" -#: src/components/buttons/PrintingActions.tsx:100 +#: src/components/buttons/PrintingActions.tsx:104 msgid "Label printing completed successfully" msgstr "Impression terminée avec succès" -#: src/components/buttons/PrintingActions.tsx:106 -#: src/components/buttons/PrintingActions.tsx:144 -#: src/components/editors/NotesEditor.tsx:65 -#: src/components/editors/NotesEditor.tsx:165 -#: src/components/forms/fields/ApiFormField.tsx:319 +#: src/components/buttons/PrintingActions.tsx:110 +#: src/components/buttons/PrintingActions.tsx:148 +#: src/components/editors/NotesEditor.tsx:73 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:154 +#: src/components/forms/fields/ApiFormField.tsx:328 +#: src/components/forms/fields/TableField.tsx:43 #: src/components/importer/ImportDataSelector.tsx:187 -#: src/components/importer/ImporterColumnSelector.tsx:207 +#: src/components/importer/ImporterColumnSelector.tsx:210 #: src/components/modals/LicenseModal.tsx:75 -#: src/components/nav/SearchDrawer.tsx:448 +#: src/components/nav/SearchDrawer.tsx:458 +#: src/components/render/ModelType.tsx:290 #: src/pages/ErrorPage.tsx:11 -#: src/pages/part/PartPricingPanel.tsx:67 -#: src/tables/InvenTreeTable.tsx:495 +#: src/pages/part/PartPricingPanel.tsx:71 +#: src/tables/InvenTreeTable.tsx:481 #: src/tables/bom/BomTable.tsx:450 -#: src/tables/stock/StockItemTestResultTable.tsx:299 +#: src/tables/stock/StockItemTestResultTable.tsx:317 msgid "Error" msgstr "Erreur" -#: src/components/buttons/PrintingActions.tsx:107 +#: src/components/buttons/PrintingActions.tsx:111 msgid "The label could not be generated" msgstr "L'étiquette n'a pas pu être générée" -#: src/components/buttons/PrintingActions.tsx:122 +#: src/components/buttons/PrintingActions.tsx:126 msgid "Print Report" msgstr "Imprimer le rapport" -#: src/components/buttons/PrintingActions.tsx:138 +#: src/components/buttons/PrintingActions.tsx:142 msgid "Generate" msgstr "Générer" -#: src/components/buttons/PrintingActions.tsx:139 +#: src/components/buttons/PrintingActions.tsx:143 msgid "Report printing completed successfully" msgstr "Impression terminée avec succès" -#: src/components/buttons/PrintingActions.tsx:145 +#: src/components/buttons/PrintingActions.tsx:149 msgid "The report could not be generated" msgstr "Le rapport n'a pas pu être généré" -#: src/components/buttons/PrintingActions.tsx:173 +#: src/components/buttons/PrintingActions.tsx:177 msgid "Printing Actions" msgstr "Options d'impression" -#: src/components/buttons/PrintingActions.tsx:178 +#: src/components/buttons/PrintingActions.tsx:182 msgid "Print Labels" msgstr "Imprimer les étiquettes" -#: src/components/buttons/PrintingActions.tsx:184 +#: src/components/buttons/PrintingActions.tsx:188 msgid "Print Reports" msgstr "Imprimer les rapports" +#: src/components/buttons/RemoveRowButton.tsx:8 +msgid "Remove this row" +msgstr "Supprimer cette ligne" + #: src/components/buttons/ScanButton.tsx:15 -msgid "Scan QR code" -msgstr "Scanner le QR code" +#: src/components/nav/NavigationDrawer.tsx:117 +#: src/forms/PurchaseOrderForms.tsx:379 +#: src/forms/PurchaseOrderForms.tsx:473 +msgid "Scan Barcode" +msgstr "Scanner le code-barres" + +#: src/components/buttons/ScanButton.tsx:15 +#~ msgid "Scan QR code" +#~ msgstr "Scan QR code" #: src/components/buttons/ScanButton.tsx:20 -msgid "Open QR code scanner" -msgstr "Ouvrir le scanner de code QR" +msgid "Open Barcode Scanner" +msgstr "Ouvrir le lecteur de code-barres" + +#: src/components/buttons/ScanButton.tsx:20 +#~ msgid "Open QR code scanner" +#~ msgstr "Open QR code scanner" #: src/components/buttons/SpotlightButton.tsx:14 msgid "Open spotlight" @@ -128,85 +145,347 @@ msgid "Fail" msgstr "Échec" #: src/components/buttons/YesNoButton.tsx:33 -#: src/tables/Filter.tsx:52 +#: src/tables/Filter.tsx:61 msgid "Yes" msgstr "Oui" #: src/components/buttons/YesNoButton.tsx:33 -#: src/tables/Filter.tsx:53 +#: src/tables/Filter.tsx:62 msgid "No" msgstr "Non" -#: src/components/details/Details.tsx:301 +#: src/components/dashboard/DashboardLayout.tsx:286 +msgid "No Widgets Selected" +msgstr "Aucun gadget sélectionné" + +#: src/components/dashboard/DashboardLayout.tsx:289 +msgid "Use the menu to add widgets to the dashboard" +msgstr "" + +#: src/components/dashboard/DashboardMenu.tsx:59 +#: src/components/dashboard/DashboardMenu.tsx:126 +msgid "Accept Layout" +msgstr "" + +#: src/components/dashboard/DashboardMenu.tsx:91 +#: src/components/nav/NavigationDrawer.tsx:71 +#: src/defaults/actions.tsx:17 +#: src/defaults/links.tsx:9 +#: src/pages/Index/Settings/UserSettings.tsx:47 +msgid "Dashboard" +msgstr "Tableau de bord" + +#: src/components/dashboard/DashboardMenu.tsx:99 +msgid "Edit Layout" +msgstr "Modifier la mise en page" + +#: src/components/dashboard/DashboardMenu.tsx:108 +msgid "Add Widget" +msgstr "Ajouter le Gadget" + +#: src/components/dashboard/DashboardMenu.tsx:117 +msgid "Remove Widgets" +msgstr "" + +#: src/components/dashboard/DashboardWidget.tsx:65 +msgid "Remove this widget from the dashboard" +msgstr "" + +#: src/components/dashboard/DashboardWidgetDrawer.tsx:77 +msgid "Filter dashboard widgets" +msgstr "" + +#: src/components/dashboard/DashboardWidgetDrawer.tsx:98 +msgid "Add this widget to the dashboard" +msgstr "" + +#: src/components/dashboard/DashboardWidgetDrawer.tsx:123 +msgid "No Widgets Available" +msgstr "" + +#: src/components/dashboard/DashboardWidgetDrawer.tsx:124 +msgid "There are no more widgets available for the dashboard" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:19 +msgid "Subscribed Parts" +msgstr "Pièces suivies" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:20 +msgid "Show the number of parts which you have subscribed to" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:26 +msgid "Subscribed Categories" +msgstr "Catégories suivies" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:27 +msgid "Show the number of part categories which you have subscribed to" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:35 +#: src/pages/part/PartSchedulingDetail.tsx:304 +#: src/tables/part/PartTable.tsx:238 +msgid "Low Stock" +msgstr "Stock faible" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:37 +msgid "Show the number of parts which are low on stock" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:43 +msgid "Expired Stock Items" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:45 +msgid "Show the number of stock items which have expired" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:51 +msgid "Stale Stock Items" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:53 +msgid "Show the number of stock items which are stale" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:59 +msgid "Active Build Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:61 +msgid "Show the number of build orders which are currently active" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:66 +msgid "Overdue Build Orders" +msgstr "Ordres de construction en retard" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:68 +msgid "Show the number of build orders which are overdue" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:73 +msgid "Assigned Build Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:75 +msgid "Show the number of build orders which are assigned to you" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:80 +msgid "Active Sales Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:82 +msgid "Show the number of sales orders which are currently active" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:87 +msgid "Overdue Sales Orders" +msgstr "Vente en retard" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:89 +msgid "Show the number of sales orders which are overdue" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:94 +msgid "Assigned Sales Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:96 +msgid "Show the number of sales orders which are assigned to you" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:101 +msgid "Active Purchase Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:103 +msgid "Show the number of purchase orders which are currently active" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:108 +msgid "Overdue Purchase Orders" +msgstr "Commandes d'achat en retard" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:110 +msgid "Show the number of purchase orders which are overdue" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:115 +msgid "Assigned Purchase Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:117 +msgid "Show the number of purchase orders which are assigned to you" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:122 +msgid "Active Return Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:124 +msgid "Show the number of return orders which are currently active" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:129 +msgid "Overdue Return Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:131 +msgid "Show the number of return orders which are overdue" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:136 +msgid "Assigned Return Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:138 +msgid "Show the number of return orders which are assigned to you" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:149 +#: src/components/dashboard/widgets/GetStartedWidget.tsx:15 +#: src/defaults/links.tsx:38 +msgid "Getting Started" +msgstr "Premiers Pas" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:150 +#: src/defaults/links.tsx:41 +msgid "Getting started with InvenTree" +msgstr "Démarrer avec InvenTree" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:157 +#: src/components/dashboard/widgets/NewsWidget.tsx:123 +msgid "News Updates" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:158 +msgid "The latest news from InvenTree" +msgstr "" + +#: src/components/dashboard/widgets/ColorToggleWidget.tsx:18 +#: src/components/nav/MainMenu.tsx:77 +msgid "Change Color Mode" +msgstr "Changer le thème de couleur" + +#: src/components/dashboard/widgets/ColorToggleWidget.tsx:23 +msgid "Change the color mode of the user interface" +msgstr "" + +#: src/components/dashboard/widgets/LanguageSelectWidget.tsx:18 +msgid "Change Language" +msgstr "" + +#: src/components/dashboard/widgets/LanguageSelectWidget.tsx:23 +msgid "Change the language of the user interface" +msgstr "" + +#: src/components/dashboard/widgets/NewsWidget.tsx:61 +#: src/components/nav/NotificationDrawer.tsx:88 +#: src/pages/Notifications.tsx:73 +msgid "Mark as read" +msgstr "Marqué comme lu" + +#: src/components/dashboard/widgets/NewsWidget.tsx:115 +msgid "Requires Superuser" +msgstr "" + +#: src/components/dashboard/widgets/NewsWidget.tsx:116 +msgid "This widget requires superuser permissions" +msgstr "" + +#: src/components/dashboard/widgets/NewsWidget.tsx:133 +msgid "No News" +msgstr "" + +#: src/components/dashboard/widgets/NewsWidget.tsx:134 +msgid "There are no unread news items" +msgstr "" + +#: src/components/details/Details.tsx:300 msgid "No name defined" msgstr "Aucun nom défini" -#: src/components/details/DetailsImage.tsx:65 +#: src/components/details/DetailsImage.tsx:69 msgid "Remove Image" msgstr "Supprimer l'image" -#: src/components/details/DetailsImage.tsx:68 +#: src/components/details/DetailsImage.tsx:72 msgid "Remove the associated image from this item?" msgstr "Supprimer l'image associée de cet élément ?" -#: src/components/details/DetailsImage.tsx:71 -#: src/forms/StockForms.tsx:533 +#: src/components/details/DetailsImage.tsx:75 +#: src/forms/StockForms.tsx:651 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:199 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:306 -#: src/pages/stock/StockDetail.tsx:526 +#: src/pages/stock/StockDetail.tsx:690 msgid "Remove" msgstr "Supprimer" -#: src/components/details/DetailsImage.tsx:71 -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:158 -#: src/components/items/ActionDropdown.tsx:215 -#: src/components/items/ActionDropdown.tsx:216 -#: src/contexts/ThemeContext.tsx:43 +#: src/components/details/DetailsImage.tsx:75 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:184 +#: src/components/items/ActionDropdown.tsx:268 +#: src/components/items/ActionDropdown.tsx:269 +#: src/contexts/ThemeContext.tsx:45 #: src/hooks/UseForm.tsx:40 -#: src/tables/FilterSelectDrawer.tsx:205 -#: src/tables/build/BuildOutputTable.tsx:286 +#: src/tables/FilterSelectDrawer.tsx:241 +#: src/tables/RowActions.tsx:59 +#: src/tables/build/BuildOutputTable.tsx:434 msgid "Cancel" msgstr "Annuler" -#: src/components/details/DetailsImage.tsx:97 +#: src/components/details/DetailsImage.tsx:101 msgid "Drag and drop to upload" msgstr "Glisser et déposer pour télécharger" -#: src/components/details/DetailsImage.tsx:100 +#: src/components/details/DetailsImage.tsx:104 msgid "Click to select file(s)" msgstr "Cliquer pour sélectionner le(s) fichier(s)" -#: src/components/details/DetailsImage.tsx:226 +#: src/components/details/DetailsImage.tsx:230 msgid "Clear" msgstr "Effacer" -#: src/components/details/DetailsImage.tsx:232 -#: src/components/forms/ApiForm.tsx:627 -#: src/contexts/ThemeContext.tsx:43 -#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:60 +#: src/components/details/DetailsImage.tsx:236 +#: src/components/forms/ApiForm.tsx:660 +#: src/contexts/ThemeContext.tsx:45 msgid "Submit" msgstr "Envoyer" -#: src/components/details/DetailsImage.tsx:272 +#: src/components/details/DetailsImage.tsx:280 msgid "Select from existing images" msgstr "Sélectionner parmi les images existantes" -#: src/components/details/DetailsImage.tsx:280 +#: src/components/details/DetailsImage.tsx:288 msgid "Select Image" msgstr "Sélectionner une Image" -#: src/components/details/DetailsImage.tsx:292 +#: src/components/details/DetailsImage.tsx:304 +msgid "Download remote image" +msgstr "" + +#: src/components/details/DetailsImage.tsx:319 msgid "Upload new image" msgstr "Téléverser une nouvelle image" -#: src/components/details/DetailsImage.tsx:299 +#: src/components/details/DetailsImage.tsx:326 msgid "Upload Image" msgstr "Charger une image" -#: src/components/details/DetailsImage.tsx:312 +#: src/components/details/DetailsImage.tsx:339 msgid "Delete image" msgstr "Supprimer l'image" +#: src/components/details/DetailsImage.tsx:373 +msgid "Download Image" +msgstr "" + +#: src/components/details/DetailsImage.tsx:378 +msgid "Image downloaded successfully" +msgstr "" + #: src/components/details/PartIcons.tsx:43 #~ msgid "Part is a template part (variants can be made from this part)" #~ msgstr "Part is a template part (variants can be made from this part)" @@ -235,36 +514,57 @@ msgstr "Supprimer l'image" #~ msgid "Part is virtual (not a physical part)" #~ msgstr "Part is virtual (not a physical part)" -#: src/components/editors/NotesEditor.tsx:66 +#: src/components/editors/NotesEditor.tsx:74 msgid "Image upload failed" msgstr "Le téléchargement de l'image a échoué" -#: src/components/editors/NotesEditor.tsx:156 -#: src/components/forms/ApiForm.tsx:467 +#: src/components/editors/NotesEditor.tsx:83 +#: src/components/editors/NotesEditor.tsx:119 +#: src/components/forms/ApiForm.tsx:475 #: src/tables/bom/BomTable.tsx:441 msgid "Success" msgstr "Succès" -#: src/components/editors/NotesEditor.tsx:157 +#: src/components/editors/NotesEditor.tsx:84 +msgid "Image uploaded successfully" +msgstr "Image téléchargée avec succès" + +#: src/components/editors/NotesEditor.tsx:120 msgid "Notes saved successfully" msgstr "Notes enregistrées avec succès" -#: src/components/editors/NotesEditor.tsx:166 +#: src/components/editors/NotesEditor.tsx:131 msgid "Failed to save notes" msgstr "Échec de l'enregistrement des notes" -#: src/components/editors/NotesEditor.tsx:198 -msgid "Preview Notes" -msgstr "Aperçu des Notes" +#: src/components/editors/NotesEditor.tsx:134 +msgid "Error Saving Notes" +msgstr "" -#: src/components/editors/NotesEditor.tsx:198 -msgid "Edit Notes" -msgstr "Modifier les notes" +#: src/components/editors/NotesEditor.tsx:151 +#~ msgid "Disable Editing" +#~ msgstr "Disable Editing" -#: src/components/editors/NotesEditor.tsx:212 +#: src/components/editors/NotesEditor.tsx:154 msgid "Save Notes" msgstr "Enregistrer les notes" +#: src/components/editors/NotesEditor.tsx:173 +msgid "Close Editor" +msgstr "Fermer l'éditeur" + +#: src/components/editors/NotesEditor.tsx:180 +msgid "Enable Editing" +msgstr "Activer le mode édition" + +#: src/components/editors/NotesEditor.tsx:198 +#~ msgid "Preview Notes" +#~ msgstr "Preview Notes" + +#: src/components/editors/NotesEditor.tsx:198 +#~ msgid "Edit Notes" +#~ msgstr "Edit Notes" + #: src/components/editors/TemplateEditor/CodeEditor/index.tsx:9 msgid "Code" msgstr "Code" @@ -281,40 +581,44 @@ msgstr "Aperçu non disponible, cliquez sur \"Recharger l'aperçu\"." msgid "PDF Preview" msgstr "Prévisualisation PDF" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:104 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:115 msgid "Error loading template" msgstr "Erreur lors du chargement du modèle" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:116 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:127 msgid "Error saving template" msgstr "Erreur lors de l'enregistrement du modèle" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:146 -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:274 -msgid "Save & Reload Preview" -msgstr "Enregistrer & Recharger l'aperçu" - -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:151 -msgid "Are you sure you want to Save & Reload the preview?" -msgstr "Êtes-vous sûr de vouloir enregistrer et recharger l'aperçu ?" - #: src/components/editors/TemplateEditor/TemplateEditor.tsx:151 #~ msgid "Save & Reload preview?" #~ msgstr "Save & Reload preview?" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:153 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:155 +msgid "Could not load the template from the server." +msgstr "Impossible de charger le modèle depuis le serveur." + +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:172 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:303 +msgid "Save & Reload Preview" +msgstr "Enregistrer & Recharger l'aperçu" + +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:177 +msgid "Are you sure you want to Save & Reload the preview?" +msgstr "Êtes-vous sûr de vouloir enregistrer et recharger l'aperçu ?" + +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:179 msgid "To render the preview the current template needs to be replaced on the server with your modifications which may break the label if it is under active use. Do you want to proceed?" msgstr "Pour afficher l'aperçu, le modèle actuel doit être remplacé sur le serveur par vos modifications qui peuvent casser l'étiquette s'il est en cours d'utilisation. Voulez-vous continuer ?" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:157 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:183 msgid "Save & Reload" msgstr "Sauvegarder et Actualiser" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:189 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:215 msgid "Preview updated" msgstr "Aperçu mis à jour" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:190 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:216 msgid "The preview has been updated successfully." msgstr "L'aperçu a été mis à jour avec succès." @@ -322,15 +626,15 @@ msgstr "L'aperçu a été mis à jour avec succès." #~ msgid "Save & Reload preview" #~ msgstr "Save & Reload preview" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:266 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:295 msgid "Reload preview" msgstr "Recharger l’aperçu" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:267 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:296 msgid "Use the currently stored template from the server" msgstr "Utiliser le modèle actuellement stocké sur le serveur" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:275 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:304 msgid "Save the current template and reload the preview" msgstr "Enregistrer le modèle actuel et recharger l'aperçu" @@ -338,11 +642,11 @@ msgstr "Enregistrer le modèle actuel et recharger l'aperçu" #~ msgid "to preview" #~ msgstr "to preview" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:333 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:365 msgid "Select instance to preview" msgstr "Sélectionner l'instance à prévisualiser" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:377 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:409 msgid "Error rendering template" msgstr "Erreur de rendu du modèle" @@ -379,6 +683,7 @@ msgid "This page does not exist" msgstr "Cette page n'existe pas" #: src/components/errors/PermissionDenied.tsx:8 +#: src/functions/notifications.tsx:24 msgid "Permission Denied" msgstr "Permission refusée" @@ -394,8 +699,8 @@ msgstr "Erreur serveur" msgid "A server error occurred" msgstr "Une erreur serveur s'est produite" -#: src/components/forms/ApiForm.tsx:151 -#: src/components/forms/ApiForm.tsx:555 +#: src/components/forms/ApiForm.tsx:154 +#: src/components/forms/ApiForm.tsx:579 msgid "Form Error" msgstr "Erreur de formulaire" @@ -403,22 +708,22 @@ msgstr "Erreur de formulaire" #~ msgid "Form Errors Exist" #~ msgstr "Form Errors Exist" -#: src/components/forms/ApiForm.tsx:563 +#: src/components/forms/ApiForm.tsx:587 msgid "Errors exist for one or more form fields" msgstr "Il existe des erreurs pour un ou plusieurs champs du formulaire" -#: src/components/forms/ApiForm.tsx:665 -#: src/tables/plugin/PluginListTable.tsx:388 +#: src/components/forms/ApiForm.tsx:698 +#: src/tables/plugin/PluginListTable.tsx:195 msgid "Update" msgstr "Mise à jour" -#: src/components/forms/ApiForm.tsx:685 -#: src/components/items/ActionDropdown.tsx:195 +#: src/components/forms/ApiForm.tsx:718 +#: src/components/items/ActionDropdown.tsx:248 #: src/hooks/UseForm.tsx:122 -#: src/pages/Index/Scan.tsx:343 +#: src/pages/Index/Scan.tsx:357 #: src/pages/Notifications.tsx:123 -#: src/tables/RowActions.tsx:43 -#: src/tables/plugin/PluginListTable.tsx:420 +#: src/tables/RowActions.tsx:49 +#: src/tables/plugin/PluginListTable.tsx:232 msgid "Delete" msgstr "Supprimer" @@ -428,14 +733,6 @@ msgstr "Supprimer" #~ msgid "Check your your input and try again." #~ msgstr "Check your your input and try again." -#: src/components/forms/AuthenticationForm.tsx:51 -msgid "Login successful" -msgstr "Connexion réussie" - -#: src/components/forms/AuthenticationForm.tsx:52 -msgid "Logged in successfully" -msgstr "Connexion réussie" - #: src/components/forms/AuthenticationForm.tsx:52 #~ msgid "Welcome back!" #~ msgstr "Welcome back!" @@ -444,14 +741,22 @@ msgstr "Connexion réussie" #~ msgid "Login successfull" #~ msgstr "Login successfull" -#: src/components/forms/AuthenticationForm.tsx:58 +#: src/components/forms/AuthenticationForm.tsx:55 +msgid "Login successful" +msgstr "Connexion réussie" + +#: src/components/forms/AuthenticationForm.tsx:56 +msgid "Logged in successfully" +msgstr "Connexion réussie" + +#: src/components/forms/AuthenticationForm.tsx:61 msgid "Login failed" msgstr "Login invalide" -#: src/components/forms/AuthenticationForm.tsx:59 -#: src/components/forms/AuthenticationForm.tsx:76 -#: src/components/forms/AuthenticationForm.tsx:211 -#: src/functions/auth.tsx:164 +#: src/components/forms/AuthenticationForm.tsx:62 +#: src/components/forms/AuthenticationForm.tsx:79 +#: src/components/forms/AuthenticationForm.tsx:214 +#: src/functions/auth.tsx:175 msgid "Check your input and try again." msgstr "Vérifiez votre saisie et réessayez." @@ -460,45 +765,46 @@ msgstr "Vérifiez votre saisie et réessayez." #~ msgid "Mail delivery successfull" #~ msgstr "Mail delivery successfull" -#: src/components/forms/AuthenticationForm.tsx:70 -#: src/functions/auth.tsx:155 +#: src/components/forms/AuthenticationForm.tsx:73 +#: src/functions/auth.tsx:166 msgid "Mail delivery successful" msgstr "Envoi du mail réussi" -#: src/components/forms/AuthenticationForm.tsx:71 +#: src/components/forms/AuthenticationForm.tsx:74 msgid "Check your inbox for the login link. If you have an account, you will receive a login link. Check in spam too." msgstr "Vérifiez votre boîte de réception pour le lien de connexion. Si vous avez un compte, vous recevrez un lien de connexion. Vérifiez également dans le courrier indésirable." -#: src/components/forms/AuthenticationForm.tsx:75 +#: src/components/forms/AuthenticationForm.tsx:78 msgid "Mail delivery failed" msgstr "L'envoi du mail a échoué" -#: src/components/forms/AuthenticationForm.tsx:95 +#: src/components/forms/AuthenticationForm.tsx:98 msgid "Or continue with other methods" msgstr "Ou continuer avec d'autres méthodes" -#: src/components/forms/AuthenticationForm.tsx:106 -#: src/components/forms/AuthenticationForm.tsx:227 +#: src/components/forms/AuthenticationForm.tsx:109 +#: src/components/forms/AuthenticationForm.tsx:230 +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:67 msgid "Username" msgstr "Nom d'utilisateur" -#: src/components/forms/AuthenticationForm.tsx:107 -#: src/components/forms/AuthenticationForm.tsx:228 +#: src/components/forms/AuthenticationForm.tsx:110 +#: src/components/forms/AuthenticationForm.tsx:231 msgid "Your username" msgstr "Votre nom d'utilisateur" -#: src/components/forms/AuthenticationForm.tsx:112 -#: src/components/forms/AuthenticationForm.tsx:240 -#: src/pages/Auth/Set-Password.tsx:106 +#: src/components/forms/AuthenticationForm.tsx:115 +#: src/components/forms/AuthenticationForm.tsx:243 +#: src/pages/Auth/Set-Password.tsx:101 msgid "Password" msgstr "Mot de passe" -#: src/components/forms/AuthenticationForm.tsx:113 -#: src/components/forms/AuthenticationForm.tsx:241 +#: src/components/forms/AuthenticationForm.tsx:116 +#: src/components/forms/AuthenticationForm.tsx:244 msgid "Your password" msgstr "Mot de passe" -#: src/components/forms/AuthenticationForm.tsx:125 +#: src/components/forms/AuthenticationForm.tsx:128 #: src/pages/Auth/Reset.tsx:26 msgid "Reset password" msgstr "Réinitialiser le mot de passe" @@ -507,77 +813,79 @@ msgstr "Réinitialiser le mot de passe" #~ msgid "Log in" #~ msgstr "Log in" -#: src/components/forms/AuthenticationForm.tsx:134 -#: src/components/forms/AuthenticationForm.tsx:233 +#: src/components/forms/AuthenticationForm.tsx:136 +#~ msgid "I will use username and password" +#~ msgstr "I will use username and password" + +#: src/components/forms/AuthenticationForm.tsx:137 +#: src/components/forms/AuthenticationForm.tsx:236 #: src/pages/Auth/Reset.tsx:31 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:51 msgid "Email" msgstr "Email" -#: src/components/forms/AuthenticationForm.tsx:135 +#: src/components/forms/AuthenticationForm.tsx:138 #: src/pages/Auth/Reset.tsx:32 -#: src/pages/Auth/Set-Password.tsx:107 +#: src/pages/Auth/Set-Password.tsx:102 msgid "We will send you a link to login - if you are registered" msgstr "Nous vous enverrons un lien pour vous connecter - si vous êtes déjà inscrit" -#: src/components/forms/AuthenticationForm.tsx:136 -#~ msgid "I will use username and password" -#~ msgstr "I will use username and password" - -#: src/components/forms/AuthenticationForm.tsx:151 +#: src/components/forms/AuthenticationForm.tsx:154 msgid "Send me an email" msgstr "Envoyez-moi un e-mail" -#: src/components/forms/AuthenticationForm.tsx:153 +#: src/components/forms/AuthenticationForm.tsx:156 msgid "Use username and password" msgstr "Utilisez votre nom d'utilisateur et votre mot de passe" -#: src/components/forms/AuthenticationForm.tsx:162 +#: src/components/forms/AuthenticationForm.tsx:165 msgid "Log In" msgstr "Se connecter" -#: src/components/forms/AuthenticationForm.tsx:164 +#: src/components/forms/AuthenticationForm.tsx:167 +#: src/pages/Auth/Reset.tsx:41 +#: src/pages/Auth/Set-Password.tsx:107 msgid "Send Email" msgstr "Envoyer l'e-mail" -#: src/components/forms/AuthenticationForm.tsx:193 +#: src/components/forms/AuthenticationForm.tsx:196 msgid "Registration successful" msgstr "Inscription réussie" -#: src/components/forms/AuthenticationForm.tsx:194 +#: src/components/forms/AuthenticationForm.tsx:197 msgid "Please confirm your email address to complete the registration" msgstr "Veuillez confirmer votre adresse e-mail pour finaliser l'inscription" -#: src/components/forms/AuthenticationForm.tsx:210 +#: src/components/forms/AuthenticationForm.tsx:213 msgid "Input error" msgstr "Erreur d'entrée" -#: src/components/forms/AuthenticationForm.tsx:234 +#: src/components/forms/AuthenticationForm.tsx:237 msgid "This will be used for a confirmation" msgstr "Ceci sera utilisé pour une confirmation" -#: src/components/forms/AuthenticationForm.tsx:246 +#: src/components/forms/AuthenticationForm.tsx:249 msgid "Password repeat" msgstr "Répétition du mot de passe" -#: src/components/forms/AuthenticationForm.tsx:247 +#: src/components/forms/AuthenticationForm.tsx:250 msgid "Repeat password" msgstr "Répéter le mot de passe" -#: src/components/forms/AuthenticationForm.tsx:259 -#: src/components/forms/AuthenticationForm.tsx:304 +#: src/components/forms/AuthenticationForm.tsx:262 +#: src/components/forms/AuthenticationForm.tsx:307 msgid "Register" msgstr "S'enregistrer" -#: src/components/forms/AuthenticationForm.tsx:265 +#: src/components/forms/AuthenticationForm.tsx:268 msgid "Or use SSO" msgstr "Ou utiliser SSO" -#: src/components/forms/AuthenticationForm.tsx:296 +#: src/components/forms/AuthenticationForm.tsx:299 msgid "Don't have an account?" msgstr "Pas encore de compte ?" -#: src/components/forms/AuthenticationForm.tsx:315 +#: src/components/forms/AuthenticationForm.tsx:318 msgid "Go back to login" msgstr "Retourner au login" @@ -588,19 +896,20 @@ msgstr "Serveur" #: src/components/forms/HostOptionsForm.tsx:42 #: src/components/forms/HostOptionsForm.tsx:70 +#: src/components/plugins/PluginDrawer.tsx:69 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:410 +#: src/pages/Index/Settings/AdminCenter/UnitManagmentPanel.tsx:19 #: src/pages/part/CategoryDetail.tsx:81 -#: src/pages/part/PartDetail.tsx:143 -#: src/pages/stock/LocationDetail.tsx:89 -#: src/tables/machine/MachineTypeTable.tsx:65 -#: src/tables/machine/MachineTypeTable.tsx:109 -#: src/tables/machine/MachineTypeTable.tsx:216 -#: src/tables/machine/MachineTypeTable.tsx:319 +#: src/pages/part/PartDetail.tsx:164 +#: src/pages/stock/LocationDetail.tsx:83 +#: src/tables/machine/MachineTypeTable.tsx:70 +#: src/tables/machine/MachineTypeTable.tsx:119 +#: src/tables/machine/MachineTypeTable.tsx:237 +#: src/tables/machine/MachineTypeTable.tsx:340 #: src/tables/plugin/PluginErrorTable.tsx:33 -#: src/tables/plugin/PluginListTable.tsx:126 #: src/tables/purchasing/ManufacturerPartParameterTable.tsx:32 #: src/tables/settings/GroupTable.tsx:147 -#: src/tables/settings/PendingTasksTable.tsx:28 +#: src/tables/settings/PendingTasksTable.tsx:32 #: src/tables/stock/LocationTypesTable.tsx:69 msgid "Name" msgstr "Nom" @@ -650,7 +959,7 @@ msgid "Uncategorized" msgstr "Non catégorisé" #: src/components/forms/fields/IconField.tsx:209 -#: src/components/nav/Layout.tsx:70 +#: src/components/nav/Layout.tsx:77 #: src/tables/part/PartThumbTable.tsx:192 msgid "Search..." msgstr "Rechercher..." @@ -667,28 +976,27 @@ msgstr "Sélectionnez le pack" msgid "{0} icons" msgstr "Icônes {0}" -#: src/components/forms/fields/RelatedModelField.tsx:318 -#: src/pages/Index/Settings/UserSettings.tsx:96 +#: src/components/forms/fields/RelatedModelField.tsx:319 +#: src/pages/Index/Settings/UserSettings.tsx:97 #: src/tables/Search.tsx:23 msgid "Search" msgstr "Rechercher" -#: src/components/forms/fields/RelatedModelField.tsx:319 +#: src/components/forms/fields/RelatedModelField.tsx:320 #: src/components/modals/AboutInvenTreeModal.tsx:81 -#: src/components/widgets/WidgetLayout.tsx:120 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:316 msgid "Loading" msgstr "Chargement" -#: src/components/forms/fields/RelatedModelField.tsx:321 +#: src/components/forms/fields/RelatedModelField.tsx:322 msgid "No results found" msgstr "Aucun résultat trouvé" -#: src/components/forms/fields/TableField.tsx:52 -msgid "modelRenderer entry required for tables" -msgstr "Entrée modelRenderer requise pour les tables" +#: src/components/forms/fields/TableField.tsx:72 +#~ msgid "modelRenderer entry required for tables" +#~ msgstr "modelRenderer entry required for tables" -#: src/components/forms/fields/TableField.tsx:76 +#: src/components/forms/fields/TableField.tsx:167 msgid "No entries available" msgstr "Aucune entrée n'est disponible" @@ -741,7 +1049,7 @@ msgid "Filter by row validation status" msgstr "Filtrer par état de validation de ligne" #: src/components/importer/ImportDataSelector.tsx:365 -#: src/tables/build/BuildOutputTable.tsx:266 +#: src/tables/build/BuildOutputTable.tsx:407 msgid "Complete" msgstr "Complet" @@ -749,20 +1057,21 @@ msgstr "Complet" msgid "Filter by row completion status" msgstr "Filtrer par statut de complétion de ligne" -#: src/components/importer/ImportDataSelector.tsx:383 +#: src/components/importer/ImportDataSelector.tsx:384 msgid "Import selected rows" msgstr "Importer les lignes sélectionnées" -#: src/components/importer/ImportDataSelector.tsx:398 +#: src/components/importer/ImportDataSelector.tsx:399 msgid "Processing Data" -msgstr "Traitement des données..." +msgstr "Traitement des données" -#: src/components/importer/ImporterColumnSelector.tsx:50 -#: src/components/importer/ImporterColumnSelector.tsx:176 +#: src/components/importer/ImporterColumnSelector.tsx:53 +#: src/components/importer/ImporterColumnSelector.tsx:179 +#: src/components/items/ErrorItem.tsx:12 msgid "An error occurred" msgstr "Une erreur s'est produite" -#: src/components/importer/ImporterColumnSelector.tsx:62 +#: src/components/importer/ImporterColumnSelector.tsx:65 msgid "Select column, or leave blank to ignore this field." msgstr "Sélectionnez la colonne, ou laissez vide pour ignorer ce champ." @@ -778,51 +1087,51 @@ msgstr "Sélectionnez la colonne, ou laissez vide pour ignorer ce champ." #~ msgid "Imported Column Name" #~ msgstr "Imported Column Name" -#: src/components/importer/ImporterColumnSelector.tsx:182 +#: src/components/importer/ImporterColumnSelector.tsx:185 msgid "Ignore this field" msgstr "Ignorer ce champ" -#: src/components/importer/ImporterColumnSelector.tsx:196 +#: src/components/importer/ImporterColumnSelector.tsx:199 msgid "Mapping data columns to database fields" msgstr "Mappage des colonnes de données aux champs de la base de données" -#: src/components/importer/ImporterColumnSelector.tsx:201 +#: src/components/importer/ImporterColumnSelector.tsx:204 msgid "Accept Column Mapping" msgstr "Accepter le mappage des colonnes" -#: src/components/importer/ImporterColumnSelector.tsx:214 +#: src/components/importer/ImporterColumnSelector.tsx:217 msgid "Database Field" msgstr "Champ de base de données" -#: src/components/importer/ImporterColumnSelector.tsx:215 +#: src/components/importer/ImporterColumnSelector.tsx:218 msgid "Field Description" -msgstr "Description du champs" +msgstr "Description du champ" -#: src/components/importer/ImporterColumnSelector.tsx:216 +#: src/components/importer/ImporterColumnSelector.tsx:219 msgid "Imported Column" msgstr "Colonne importée" -#: src/components/importer/ImporterColumnSelector.tsx:217 +#: src/components/importer/ImporterColumnSelector.tsx:220 msgid "Default Value" msgstr "Valeur par Défaut" -#: src/components/importer/ImporterDrawer.tsx:44 +#: src/components/importer/ImporterDrawer.tsx:46 msgid "Upload File" msgstr "Transférer un fichier" -#: src/components/importer/ImporterDrawer.tsx:45 +#: src/components/importer/ImporterDrawer.tsx:47 msgid "Map Columns" msgstr "Mapper les colonnes" -#: src/components/importer/ImporterDrawer.tsx:46 +#: src/components/importer/ImporterDrawer.tsx:48 msgid "Import Data" msgstr "Importer les données" -#: src/components/importer/ImporterDrawer.tsx:47 +#: src/components/importer/ImporterDrawer.tsx:49 msgid "Process Data" msgstr "Traiter les données" -#: src/components/importer/ImporterDrawer.tsx:48 +#: src/components/importer/ImporterDrawer.tsx:50 msgid "Complete Import" msgstr "Finaliser l’importation" @@ -830,115 +1139,145 @@ msgstr "Finaliser l’importation" #~ msgid "Cancel import session" #~ msgstr "Cancel import session" -#: src/components/importer/ImporterDrawer.tsx:104 +#: src/components/importer/ImporterDrawer.tsx:106 msgid "Import Complete" -msgstr "" - -#: src/components/importer/ImporterDrawer.tsx:107 -msgid "Data has been imported successfully" -msgstr "" +msgstr "Importation Complète" #: src/components/importer/ImporterDrawer.tsx:109 -#: src/components/importer/ImporterDrawer.tsx:118 +msgid "Data has been imported successfully" +msgstr "Les données on était correctement importés" + +#: src/components/importer/ImporterDrawer.tsx:111 +#: src/components/importer/ImporterDrawer.tsx:120 msgid "Close" msgstr "Fermer" -#: src/components/importer/ImporterDrawer.tsx:115 +#: src/components/importer/ImporterDrawer.tsx:117 msgid "Unknown Status" -msgstr "" +msgstr "Statut inconnu" -#: src/components/importer/ImporterDrawer.tsx:116 +#: src/components/importer/ImporterDrawer.tsx:118 msgid "Import session has unknown status" -msgstr "" +msgstr "La session d'importation a un état inconnu" -#: src/components/importer/ImporterDrawer.tsx:135 +#: src/components/importer/ImporterDrawer.tsx:137 msgid "Importing Data" -msgstr "" +msgstr "Importation de données" #: src/components/importer/ImporterImportProgress.tsx:36 msgid "Importing Records" -msgstr "" +msgstr "Importation des enregistrements" #: src/components/importer/ImporterImportProgress.tsx:39 -msgid "Imported rows" -msgstr "" +#: src/tables/settings/ImportSessionTable.tsx:78 +msgid "Imported Rows" +msgstr "Lignes importées" -#: src/components/items/ActionDropdown.tsx:121 +#: src/components/importer/ImporterImportProgress.tsx:39 +#~ msgid "Imported rows" +#~ msgstr "Imported rows" + +#: src/components/items/ActionDropdown.tsx:126 +msgid "Options" +msgstr "Options" + +#: src/components/items/ActionDropdown.tsx:140 +#~ msgid "View Barcode" +#~ msgstr "View Barcode" + +#: src/components/items/ActionDropdown.tsx:162 +#: src/tables/InvenTreeTableHeader.tsx:159 +#: src/tables/InvenTreeTableHeader.tsx:160 msgid "Barcode Actions" msgstr "Actions de code-barres" -#: src/components/items/ActionDropdown.tsx:140 -msgid "View Barcode" -msgstr "" +#: src/components/items/ActionDropdown.tsx:162 +#~ msgid "Link custom barcode" +#~ msgstr "Link custom barcode" -#: src/components/items/ActionDropdown.tsx:147 +#: src/components/items/ActionDropdown.tsx:167 msgid "View" msgstr "Vue" -#: src/components/items/ActionDropdown.tsx:148 +#: src/components/items/ActionDropdown.tsx:169 msgid "View barcode" msgstr "Voir le code-barre" -#: src/components/items/ActionDropdown.tsx:161 +#: src/components/items/ActionDropdown.tsx:175 msgid "Link Barcode" msgstr "Lier le code-barre" -#: src/components/items/ActionDropdown.tsx:162 -msgid "Link custom barcode" -msgstr "Lier un code-barre personnalisé" +#: src/components/items/ActionDropdown.tsx:177 +msgid "Link a custom barcode to this item" +msgstr "Lier un code-barres personnalisé à cet article" -#: src/components/items/ActionDropdown.tsx:173 -#: src/forms/PurchaseOrderForms.tsx:426 +#: src/components/items/ActionDropdown.tsx:183 +#: src/components/items/QRCode.tsx:193 +#: src/forms/PurchaseOrderForms.tsx:464 msgid "Unlink Barcode" msgstr "Délier le code-barre" -#: src/components/items/ActionDropdown.tsx:174 +#: src/components/items/ActionDropdown.tsx:185 msgid "Unlink custom barcode" msgstr "Délier le code-barres personnalisé" -#: src/components/items/ActionDropdown.tsx:183 -#: src/tables/RowActions.tsx:33 +#: src/components/items/ActionDropdown.tsx:236 +#: src/tables/RowActions.tsx:39 msgid "Edit" msgstr "Éditer" -#: src/components/items/ActionDropdown.tsx:184 +#: src/components/items/ActionDropdown.tsx:237 msgid "Edit item" -msgstr "" +msgstr "Modifier l’article" -#: src/components/items/ActionDropdown.tsx:196 +#: src/components/items/ActionDropdown.tsx:249 msgid "Delete item" msgstr "Supprimer l’article" -#: src/components/items/ActionDropdown.tsx:204 -#: src/components/items/ActionDropdown.tsx:205 +#: src/components/items/ActionDropdown.tsx:257 +#: src/components/items/ActionDropdown.tsx:258 msgid "Hold" -msgstr "" +msgstr "Mis en attente" -#: src/components/items/ActionDropdown.tsx:227 -#: src/tables/RowActions.tsx:23 +#: src/components/items/ActionDropdown.tsx:280 +#: src/tables/RowActions.tsx:29 msgid "Duplicate" msgstr "Dupliquer" -#: src/components/items/ActionDropdown.tsx:228 +#: src/components/items/ActionDropdown.tsx:281 msgid "Duplicate item" msgstr "Dupliquer l'article" +#: src/components/items/BarcodeInput.tsx:23 +msgid "Scan barcode data here using barcode scanner" +msgstr "Scanner les données du code-barres ici à l'aide du scanner" + +#: src/components/items/BarcodeInput.tsx:24 +#: src/tables/settings/BarcodeScanHistoryTable.tsx:65 +msgid "Barcode" +msgstr "Code-barres" + +#: src/components/items/BarcodeInput.tsx:25 +msgid "Scan" +msgstr "Scanner" + #: src/components/items/DocTooltip.tsx:92 +#: src/components/items/GettingStartedCarousel.tsx:20 msgid "Read More" msgstr "En Savoir Plus" -#: src/components/items/ErrorItem.tsx:5 -#: src/tables/InvenTreeTable.tsx:487 +#: src/components/items/ErrorItem.tsx:8 +#: src/tables/InvenTreeTable.tsx:473 msgid "Unknown error" msgstr "Erreur inconnue" -#: src/components/items/ErrorItem.tsx:10 -msgid "An error occurred:" -msgstr "Une erreur s'est produite :" +#: src/components/items/ErrorItem.tsx:13 +#~ msgid "An error occurred:" +#~ msgstr "An error occurred:" #: src/components/items/GettingStartedCarousel.tsx:27 -msgid "Read more" -msgstr "En savoir plus" +#~ msgid "Read more" +#~ msgstr "Read more" #: src/components/items/InfoItem.tsx:27 msgid "None" @@ -965,29 +1304,50 @@ msgstr "PLH" msgid "This panel is a placeholder." msgstr "" -#: src/components/items/QRCode.tsx:87 -msgid "Low (7%)" -msgstr "" - -#: src/components/items/QRCode.tsx:88 -msgid "Medium (15%)" -msgstr "" - #: src/components/items/QRCode.tsx:89 -msgid "Quartile (25%)" -msgstr "" +msgid "Low (7%)" +msgstr "Faible (7%)" #: src/components/items/QRCode.tsx:90 -msgid "High (30%)" -msgstr "" +msgid "Medium (15%)" +msgstr "Moyen (15%)" -#: src/components/items/QRCode.tsx:107 -msgid "Barcode Data:" -msgstr "" +#: src/components/items/QRCode.tsx:91 +msgid "Quartile (25%)" +msgstr "Quartile (25%)" + +#: src/components/items/QRCode.tsx:92 +msgid "High (30%)" +msgstr "Élevé (30%)" + +#: src/components/items/QRCode.tsx:100 +msgid "Custom barcode" +msgstr "Code-barres personnalisé" + +#: src/components/items/QRCode.tsx:101 +msgid "A custom barcode is registered for this item. The shown code is not that custom barcode." +msgstr "Un code-barres personnalisé est enregistré pour cet article. Le code affiché n'est pas ce code-barres personnalisé." #: src/components/items/QRCode.tsx:118 +msgid "Barcode Data:" +msgstr "Données du code-barres :" + +#: src/components/items/QRCode.tsx:129 msgid "Select Error Correction Level" -msgstr "" +msgstr "Sélectionnez le niveau de correction d'erreurs" + +#: src/components/items/QRCode.tsx:171 +#: src/pages/part/PartDetail.tsx:239 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:187 +#: src/pages/sales/ReturnOrderDetail.tsx:157 +#: src/pages/sales/SalesOrderDetail.tsx:169 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:166 +msgid "Link" +msgstr "Lien" + +#: src/components/items/QRCode.tsx:190 +msgid "This will remove the link to the associated barcode" +msgstr "Ceci supprimera le lien vers le code-barres associé" #: src/components/modals/AboutInvenTreeModal.tsx:99 msgid "Version Information" @@ -1062,11 +1422,11 @@ msgstr "Application Mobile" msgid "Submit Bug Report" msgstr "Soumettre un rapport de Bug" -#: src/components/modals/AboutInvenTreeModal.tsx:183 +#: src/components/modals/AboutInvenTreeModal.tsx:181 msgid "Copy version information" msgstr "Copier les informations de version" -#: src/components/modals/AboutInvenTreeModal.tsx:192 +#: src/components/modals/AboutInvenTreeModal.tsx:189 #: src/components/modals/ServerInfoModal.tsx:147 msgid "Dismiss" msgstr "Abandonner" @@ -1089,63 +1449,22 @@ msgstr "Impossible de récupérer les informations de licence" #: src/components/modals/LicenseModal.tsx:85 msgid "{key} Packages" -msgstr "" +msgstr "Packages {key}" -#: src/components/modals/QrCodeModal.tsx:72 +#: src/components/modals/QrCodeModal.tsx:24 msgid "Unknown response" msgstr "Réponse inconnue" -#: src/components/modals/QrCodeModal.tsx:102 -#: src/pages/Index/Scan.tsx:636 -msgid "Error while getting camera" -msgstr "Erreur lors de l’activation de la caméra" - -#: src/components/modals/QrCodeModal.tsx:125 -#: src/pages/Index/Scan.tsx:659 -msgid "Error while scanning" -msgstr "Erreur lors du scan" - -#: src/components/modals/QrCodeModal.tsx:139 -#: src/pages/Index/Scan.tsx:673 -msgid "Error while stopping" -msgstr "Erreur lors de l'arrêt" - -#: src/components/modals/QrCodeModal.tsx:154 -#: src/defaults/menuItems.tsx:21 -#: src/pages/Index/Scan.tsx:746 -msgid "Scanning" -msgstr "Analyse en cours" - -#: src/components/modals/QrCodeModal.tsx:154 -#: src/pages/Index/Scan.tsx:746 -msgid "Not scanning" -msgstr "Pas de scan en cours" - -#: src/components/modals/QrCodeModal.tsx:159 -#: src/pages/Index/Scan.tsx:752 -msgid "Select Camera" -msgstr "Sélectionner la caméra" - -#: src/components/modals/QrCodeModal.tsx:169 -#: src/pages/Index/Scan.tsx:737 -msgid "Start scanning" -msgstr "Commencer le scan" - -#: src/components/modals/QrCodeModal.tsx:176 -#: src/pages/Index/Scan.tsx:729 -msgid "Stop scanning" -msgstr "Arrêter le scan" - -#: src/components/modals/QrCodeModal.tsx:181 +#: src/components/modals/QrCodeModal.tsx:39 msgid "No scans yet!" msgstr "Aucun scan pour le moment !" -#: src/components/modals/QrCodeModal.tsx:201 +#: src/components/modals/QrCodeModal.tsx:57 msgid "Close modal" msgstr "Fermer" #: src/components/modals/ServerInfoModal.tsx:26 -#: src/pages/Index/Settings/SystemSettings.tsx:38 +#: src/pages/Index/Settings/SystemSettings.tsx:37 msgid "Server" msgstr "Serveur" @@ -1206,6 +1525,7 @@ msgid "Background Worker" msgstr "Travail en arrière-plan" #: src/components/modals/ServerInfoModal.tsx:101 +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:29 msgid "Background worker not running" msgstr "Travail en arrière-plan à l'arrêt" @@ -1218,8 +1538,8 @@ msgid "Email settings not configured" msgstr "Configuration mail non effectuée" #: src/components/modals/ServerInfoModal.tsx:121 -#: src/tables/plugin/PluginListTable.tsx:144 -#: src/tables/plugin/PluginListTable.tsx:294 +#: src/components/plugins/PluginDrawer.tsx:89 +#: src/tables/plugin/PluginListTable.tsx:116 msgid "Version" msgstr "Version" @@ -1227,7 +1547,7 @@ msgstr "Version" msgid "Server Version" msgstr "Version du serveur" -#: src/components/nav/Layout.tsx:73 +#: src/components/nav/Layout.tsx:80 msgid "Nothing found..." msgstr "Aucun résultat trouvé..." @@ -1237,18 +1557,26 @@ msgstr "Aucun résultat trouvé..." #~ msgstr "Profile" #: src/components/nav/MainMenu.tsx:52 +#: src/components/nav/NavigationDrawer.tsx:178 #: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:28 msgid "Settings" msgstr "Paramètres" #: src/components/nav/MainMenu.tsx:59 -#: src/defaults/menuItems.tsx:15 -msgid "Account settings" +#: src/pages/Index/Settings/UserSettings.tsx:152 +msgid "Account Settings" msgstr "Paramètres du compte" +#: src/components/nav/MainMenu.tsx:59 +#: src/defaults/menuItems.tsx:15 +#~ msgid "Account settings" +#~ msgstr "Account settings" + #: src/components/nav/MainMenu.tsx:67 -#: src/defaults/menuItems.tsx:58 -#: src/pages/Index/Settings/SystemSettings.tsx:315 +#: src/components/nav/NavigationDrawer.tsx:141 +#: src/components/nav/SettingsHeader.tsx:49 +#: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:37 +#: src/pages/Index/Settings/SystemSettings.tsx:310 msgid "System Settings" msgstr "Les paramètres du système" @@ -1260,14 +1588,11 @@ msgstr "Les paramètres du système" #~ msgid "Switch to pseudo language" #~ msgstr "Switch to pseudo language" -#: src/components/nav/MainMenu.tsx:77 -msgid "Change Color Mode" -msgstr "" - #: src/components/nav/MainMenu.tsx:86 -#: src/defaults/actions.tsx:71 -#: src/defaults/menuItems.tsx:63 -#: src/pages/Index/Settings/AdminCenter/Index.tsx:221 +#: src/components/nav/NavigationDrawer.tsx:148 +#: src/components/nav/SettingsHeader.tsx:50 +#: src/defaults/actions.tsx:63 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:251 msgid "Admin Center" msgstr "Centre Admin" @@ -1275,458 +1600,732 @@ msgstr "Centre Admin" msgid "Logout" msgstr "Se déconnecter" -#: src/components/nav/NavHoverMenu.tsx:65 -#: src/defaults/actions.tsx:60 -msgid "Open Navigation" -msgstr "Ouvrir la navigation" - #: src/components/nav/NavHoverMenu.tsx:84 -msgid "View all" -msgstr "Tout afficher" +#~ msgid "View all" +#~ msgstr "View all" #: src/components/nav/NavHoverMenu.tsx:100 #: src/components/nav/NavHoverMenu.tsx:110 -msgid "Get started" -msgstr "Commencez" +#~ msgid "Get started" +#~ msgstr "Get started" #: src/components/nav/NavHoverMenu.tsx:103 -msgid "Overview over high-level objects, functions and possible usecases." -msgstr "Aperçu des objets de haut niveau, des fonctions et des cas d'usages." - -#: src/components/nav/NavigationDrawer.tsx:57 -msgid "Navigation" -msgstr "Navigation" +#~ msgid "Overview over high-level objects, functions and possible usecases." +#~ msgstr "Overview over high-level objects, functions and possible usecases." #: src/components/nav/NavigationDrawer.tsx:60 -msgid "Pages" -msgstr "Pages" +#~ msgid "Pages" +#~ msgstr "Pages" -#: src/components/nav/NavigationDrawer.tsx:65 -#: src/pages/Index/Settings/AdminCenter/Index.tsx:176 -#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:41 -msgid "Plugins" -msgstr "Extensions" +#: src/components/nav/NavigationDrawer.tsx:77 +#: src/components/render/ModelType.tsx:31 +#: src/defaults/links.tsx:10 +#: src/pages/Index/Settings/SystemSettings.tsx:172 +#: src/pages/part/CategoryDetail.tsx:125 +#: src/pages/part/CategoryDetail.tsx:249 +#: src/pages/part/CategoryDetail.tsx:279 +#: src/pages/part/PartDetail.tsx:856 +msgid "Parts" +msgstr "Composants" -#: src/components/nav/NavigationDrawer.tsx:75 -#: src/defaults/actions.tsx:32 -msgid "Documentation" -msgstr "Documentation" +#: src/components/nav/NavigationDrawer.tsx:84 +#: src/components/render/Part.tsx:30 +#: src/defaults/links.tsx:11 +#: src/pages/Index/Settings/SystemSettings.tsx:205 +#: src/pages/part/PartDetail.tsx:593 +#: src/pages/stock/LocationDetail.tsx:352 +#: src/pages/stock/StockDetail.tsx:528 +#: src/tables/stock/StockItemTable.tsx:69 +msgid "Stock" +msgstr "Stock" -#: src/components/nav/NavigationDrawer.tsx:78 -msgid "About" -msgstr "À propos" +#: src/components/nav/NavigationDrawer.tsx:91 +#: src/defaults/links.tsx:13 +#: src/pages/build/BuildDetail.tsx:530 +#: src/pages/build/BuildIndex.tsx:36 +msgid "Manufacturing" +msgstr "" -#: src/components/nav/NotificationDrawer.tsx:92 -#: src/pages/Index/Settings/SystemSettings.tsx:109 -#: src/pages/Index/Settings/UserSettings.tsx:126 +#: src/components/nav/NavigationDrawer.tsx:98 +#: src/defaults/links.tsx:18 +#: src/pages/company/ManufacturerDetail.tsx:9 +#: src/pages/company/ManufacturerPartDetail.tsx:258 +#: src/pages/company/SupplierDetail.tsx:9 +#: src/pages/company/SupplierPartDetail.tsx:336 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:480 +#: src/pages/purchasing/PurchasingIndex.tsx:60 +msgid "Purchasing" +msgstr "Achat en cours" + +#: src/components/nav/NavigationDrawer.tsx:105 +#: src/defaults/links.tsx:22 +#: src/pages/company/CustomerDetail.tsx:9 +#: src/pages/sales/ReturnOrderDetail.tsx:469 +#: src/pages/sales/SalesIndex.tsx:53 +#: src/pages/sales/SalesOrderDetail.tsx:520 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:343 +msgid "Sales" +msgstr "Ventes" + +#: src/components/nav/NavigationDrawer.tsx:129 +#: src/components/nav/NotificationDrawer.tsx:178 +#: src/pages/Index/Settings/SystemSettings.tsx:110 +#: src/pages/Index/Settings/UserSettings.tsx:127 #: src/pages/Notifications.tsx:65 #: src/pages/Notifications.tsx:151 msgid "Notifications" msgstr "Notifications" -#: src/components/nav/NotificationDrawer.tsx:94 +#: src/components/nav/NavigationDrawer.tsx:135 +#: src/components/nav/SettingsHeader.tsx:48 +msgid "User Settings" +msgstr "Paramètres de l'utilisateur" + +#: src/components/nav/NavigationDrawer.tsx:173 +msgid "Navigation" +msgstr "Navigation" + +#: src/components/nav/NavigationDrawer.tsx:183 +#: src/forms/PurchaseOrderForms.tsx:689 +#: src/forms/StockForms.tsx:614 +#: src/forms/StockForms.tsx:651 +#: src/forms/StockForms.tsx:677 +#: src/forms/StockForms.tsx:705 +#: src/forms/StockForms.tsx:736 +#: src/forms/StockForms.tsx:771 +#: src/forms/StockForms.tsx:813 +#: src/forms/StockForms.tsx:851 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:413 +#: src/tables/RowActions.tsx:129 +#: src/tables/build/BuildLineTable.tsx:101 +msgid "Actions" +msgstr "Actions" + +#: src/components/nav/NavigationDrawer.tsx:191 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:205 +#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:44 +msgid "Plugins" +msgstr "Extensions" + +#: src/components/nav/NavigationDrawer.tsx:204 +#: src/defaults/actions.tsx:24 +msgid "Documentation" +msgstr "Documentation" + +#: src/components/nav/NavigationDrawer.tsx:210 +msgid "About" +msgstr "À propos" + +#: src/components/nav/NotificationDrawer.tsx:180 msgid "Mark all as read" -msgstr "" +msgstr "Marquer tous comme lu" -#: src/components/nav/NotificationDrawer.tsx:104 +#: src/components/nav/NotificationDrawer.tsx:190 msgid "View all notifications" -msgstr "" +msgstr "Voir toutes les notifications" -#: src/components/nav/NotificationDrawer.tsx:123 +#: src/components/nav/NotificationDrawer.tsx:210 msgid "You have no unread notifications." msgstr "Vous n'avez pas de notifications non lues." -#: src/components/nav/NotificationDrawer.tsx:139 -#: src/components/nav/NotificationDrawer.tsx:145 -#: src/tables/notifications/NotificationsTable.tsx:36 -msgid "Notification" -msgstr "Notification" - -#: src/components/nav/NotificationDrawer.tsx:168 -#: src/pages/Notifications.tsx:73 -msgid "Mark as read" -msgstr "Marqué comme lu" - -#: src/components/nav/SearchDrawer.tsx:78 +#: src/components/nav/SearchDrawer.tsx:85 msgid "results" msgstr "résultats" -#: src/components/nav/SearchDrawer.tsx:370 +#: src/components/nav/SearchDrawer.tsx:380 msgid "Enter search text" msgstr "Entrez un texte à rechercher" -#: src/components/nav/SearchDrawer.tsx:397 +#: src/components/nav/SearchDrawer.tsx:391 +msgid "Refresh search results" +msgstr "" + +#: src/components/nav/SearchDrawer.tsx:402 +#: src/components/nav/SearchDrawer.tsx:409 msgid "Search Options" msgstr "Options de recherche" -#: src/components/nav/SearchDrawer.tsx:400 +#: src/components/nav/SearchDrawer.tsx:412 msgid "Regex search" msgstr "Recherche par regex" -#: src/components/nav/SearchDrawer.tsx:410 +#: src/components/nav/SearchDrawer.tsx:421 msgid "Whole word search" msgstr "Recherche par mot entier" -#: src/components/nav/SearchDrawer.tsx:451 +#: src/components/nav/SearchDrawer.tsx:461 msgid "An error occurred during search query" msgstr "Une erreur s'est produite lors de la recherche" #: src/components/nav/SearchDrawer.tsx:462 -msgid "No results" +#~ msgid "No results" +#~ msgstr "No results" + +#: src/components/nav/SearchDrawer.tsx:472 +#: src/tables/part/PartTestTemplateTable.tsx:76 +msgid "No Results" msgstr "Aucun résultat" -#: src/components/nav/SearchDrawer.tsx:465 +#: src/components/nav/SearchDrawer.tsx:475 msgid "No results available for search query" msgstr "Aucun résultat disponible pour la requête" -#: src/components/render/Instance.tsx:217 +#: src/components/panels/AttachmentPanel.tsx:18 +msgid "Attachments" +msgstr "Fichiers joints" + +#: src/components/panels/NotesPanel.tsx:24 +#: src/tables/build/BuildOrderTestTable.tsx:143 +#: src/tables/stock/StockTrackingTable.tsx:204 +msgid "Notes" +msgstr "Notes" + +#: src/components/plugins/PluginDrawer.tsx:47 +msgid "Plugin Inactive" +msgstr "Plugin inactif" + +#: src/components/plugins/PluginDrawer.tsx:50 +msgid "Plugin is not active" +msgstr "Le plugin n'est pas actif" + +#: src/components/plugins/PluginDrawer.tsx:60 +msgid "Plugin Information" +msgstr "Informations sur le plugin" + +#: src/components/plugins/PluginDrawer.tsx:74 +#: src/pages/build/BuildDetail.tsx:116 +#: src/pages/company/CompanyDetail.tsx:89 +#: src/pages/company/ManufacturerPartDetail.tsx:89 +#: src/pages/company/ManufacturerPartDetail.tsx:116 +#: src/pages/company/SupplierPartDetail.tsx:140 +#: src/pages/part/CategoryDetail.tsx:101 +#: src/pages/part/PartDetail.tsx:178 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:136 +#: src/pages/sales/ReturnOrderDetail.tsx:107 +#: src/pages/sales/SalesOrderDetail.tsx:116 +#: src/pages/stock/LocationDetail.tsx:103 +#: src/tables/ColumnRenderers.tsx:92 +#: src/tables/bom/UsedInTable.tsx:44 +#: src/tables/build/BuildAllocatedStockTable.tsx:83 +#: src/tables/build/BuildLineTable.tsx:329 +#: src/tables/machine/MachineTypeTable.tsx:74 +#: src/tables/machine/MachineTypeTable.tsx:129 +#: src/tables/machine/MachineTypeTable.tsx:240 +#: src/tables/machine/MachineTypeTable.tsx:344 +#: src/tables/part/RelatedPartTable.tsx:66 +#: src/tables/plugin/PluginListTable.tsx:99 +#: src/tables/sales/SalesOrderAllocationTable.tsx:87 +#: src/tables/sales/SalesOrderLineItemTable.tsx:75 +#: src/tables/stock/LocationTypesTable.tsx:74 +msgid "Description" +msgstr "Description" + +#: src/components/plugins/PluginDrawer.tsx:79 +msgid "Author" +msgstr "Auteur" + +#: src/components/plugins/PluginDrawer.tsx:84 +#: src/pages/part/PartSchedulingDetail.tsx:277 +#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:40 +#: src/pages/part/pricing/SaleHistoryPanel.tsx:38 +#: src/tables/ColumnRenderers.tsx:215 +#: src/tables/build/BuildOrderTestTable.tsx:151 +#: src/tables/settings/StocktakeReportTable.tsx:40 +msgid "Date" +msgstr "Date" + +#: src/components/plugins/PluginDrawer.tsx:94 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:398 +#: src/pages/part/PartDetail.tsx:331 +#: src/tables/bom/UsedInTable.tsx:84 +#: src/tables/company/CompanyTable.tsx:62 +#: src/tables/company/CompanyTable.tsx:96 +#: src/tables/machine/MachineListTable.tsx:333 +#: src/tables/machine/MachineListTable.tsx:605 +#: src/tables/part/ParametricPartTable.tsx:223 +#: src/tables/part/PartTable.tsx:178 +#: src/tables/part/PartVariantTable.tsx:15 +#: src/tables/plugin/PluginListTable.tsx:94 +#: src/tables/plugin/PluginListTable.tsx:401 +#: src/tables/purchasing/SupplierPartTable.tsx:100 +#: src/tables/purchasing/SupplierPartTable.tsx:190 +#: src/tables/settings/UserTable.tsx:283 +#: src/tables/stock/StockItemTable.tsx:293 +msgid "Active" +msgstr "Actif" + +#: src/components/plugins/PluginDrawer.tsx:106 +msgid "Package Name" +msgstr "Nom du paquet" + +#: src/components/plugins/PluginDrawer.tsx:112 +msgid "Installation Path" +msgstr "Chemin d'installation" + +#: src/components/plugins/PluginDrawer.tsx:117 +#: src/tables/machine/MachineTypeTable.tsx:152 +#: src/tables/machine/MachineTypeTable.tsx:276 +#: src/tables/plugin/PluginListTable.tsx:406 +msgid "Builtin" +msgstr "Intégré" + +#: src/components/plugins/PluginDrawer.tsx:122 +msgid "Package" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:134 +#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:53 +msgid "Plugin Settings" +msgstr "Paramètres du plug-in" + +#: src/components/plugins/PluginDrawer.tsx:146 +#: src/components/render/ModelType.tsx:276 +msgid "Plugin Configuration" +msgstr "Configuration du plugin" + +#: src/components/plugins/PluginPanel.tsx:87 +#~ msgid "Error occurred while rendering plugin content" +#~ msgstr "Error occurred while rendering plugin content" + +#: src/components/plugins/PluginPanel.tsx:91 +#~ msgid "Plugin did not provide panel rendering function" +#~ msgstr "Plugin did not provide panel rendering function" + +#: src/components/plugins/PluginPanel.tsx:103 +#~ msgid "No content provided for this plugin" +#~ msgstr "No content provided for this plugin" + +#: src/components/plugins/PluginPanel.tsx:116 +#: src/components/plugins/PluginSettingsPanel.tsx:76 +#~ msgid "Error Loading Plugin" +#~ msgstr "Error Loading Plugin" + +#: src/components/plugins/PluginSettingsPanel.tsx:51 +#~ msgid "Error occurred while rendering plugin settings" +#~ msgstr "Error occurred while rendering plugin settings" + +#: src/components/plugins/PluginSettingsPanel.tsx:55 +#~ msgid "Plugin did not provide settings rendering function" +#~ msgstr "Plugin did not provide settings rendering function" + +#: src/components/plugins/PluginUIFeature.tsx:100 +msgid "Error occurred while rendering the template editor." +msgstr "Une erreur est survenue lors du rendu de l'éditeur de modèle." + +#: src/components/plugins/PluginUIFeature.tsx:111 +msgid "Error Loading Plugin Editor" +msgstr "Erreur de chargement de l'éditeur de plugin" + +#: src/components/plugins/PluginUIFeature.tsx:147 +msgid "Error occurred while rendering the template preview." +msgstr "Une erreur est survenue lors du rendu de l'aperçu du modèle." + +#: src/components/plugins/PluginUIFeature.tsx:158 +msgid "Error Loading Plugin Preview" +msgstr "Erreur de chargement de l'aperçu du plugin" + +#: src/components/plugins/RemoteComponent.tsx:70 +msgid "Invalid source or function name" +msgstr "" + +#: src/components/plugins/RemoteComponent.tsx:91 +msgid "Error Loading Content" +msgstr "" + +#: src/components/plugins/RemoteComponent.tsx:95 +msgid "Error occurred while loading plugin content" +msgstr "" + +#: src/components/render/Instance.tsx:224 msgid "Unknown model: {model}" msgstr "Modèle inconnu : {model}" -#: src/components/render/ModelType.tsx:22 -#: src/forms/BuildForms.tsx:213 -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/forms/StockForms.tsx:499 -#: src/forms/StockForms.tsx:533 -#: src/forms/StockForms.tsx:562 -#: src/forms/StockForms.tsx:590 -#: src/forms/StockForms.tsx:621 -#: src/forms/StockForms.tsx:656 -#: src/forms/StockForms.tsx:698 -#: src/forms/StockForms.tsx:734 -#: src/pages/build/BuildDetail.tsx:95 -#: src/pages/part/PartDetail.tsx:1073 -#: src/tables/build/BuildAllocatedStockTable.tsx:82 +#: src/components/render/ModelType.tsx:30 +#: src/forms/BuildForms.tsx:269 +#: src/forms/BuildForms.tsx:337 +#: src/forms/BuildForms.tsx:385 +#: src/forms/BuildForms.tsx:515 +#: src/forms/PurchaseOrderForms.tsx:689 +#: src/forms/ReturnOrderForms.tsx:190 +#: src/forms/SalesOrderForms.tsx:248 +#: src/forms/StockForms.tsx:261 +#: src/forms/StockForms.tsx:614 +#: src/forms/StockForms.tsx:651 +#: src/forms/StockForms.tsx:677 +#: src/forms/StockForms.tsx:705 +#: src/forms/StockForms.tsx:736 +#: src/forms/StockForms.tsx:771 +#: src/forms/StockForms.tsx:813 +#: src/forms/StockForms.tsx:851 +#: src/pages/build/BuildDetail.tsx:90 +#: src/pages/part/PartDetail.tsx:1094 +#: src/tables/build/BuildAllocatedStockTable.tsx:95 +#: src/tables/build/BuildLineTable.tsx:72 #: src/tables/part/PartTable.tsx:28 -#: src/tables/part/RelatedPartTable.tsx:45 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:88 -#: src/tables/sales/SalesOrderAllocationTable.tsx:68 -#: src/tables/stock/StockTrackingTable.tsx:74 +#: src/tables/part/RelatedPartTable.tsx:47 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:130 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:100 +#: src/tables/sales/SalesOrderAllocationTable.tsx:99 +#: src/tables/stock/StockTrackingTable.tsx:78 msgid "Part" msgstr "Pièce" -#: src/components/render/ModelType.tsx:23 -#: src/defaults/links.tsx:29 -#: src/defaults/menuItems.tsx:33 -#: src/pages/Index/Settings/SystemSettings.tsx:173 -#: src/pages/part/CategoryDetail.tsx:119 -#: src/pages/part/CategoryDetail.tsx:244 -#: src/pages/part/CategoryDetail.tsx:274 -#: src/pages/part/PartDetail.tsx:827 -msgid "Parts" -msgstr "Composants" - -#: src/components/render/ModelType.tsx:31 +#: src/components/render/ModelType.tsx:40 msgid "Part Parameter Template" msgstr "Modèle de paramètre de pièce" -#: src/components/render/ModelType.tsx:32 +#: src/components/render/ModelType.tsx:41 msgid "Part Parameter Templates" msgstr "Modèles de paramètres de pièce" -#: src/components/render/ModelType.tsx:38 +#: src/components/render/ModelType.tsx:48 msgid "Part Test Template" msgstr "Modèle de test de pièce" -#: src/components/render/ModelType.tsx:39 +#: src/components/render/ModelType.tsx:49 msgid "Part Test Templates" msgstr "Modèles de test de pièces" -#: src/components/render/ModelType.tsx:45 -#: src/pages/company/SupplierPartDetail.tsx:203 -#: src/pages/company/SupplierPartDetail.tsx:375 -#: src/pages/stock/StockDetail.tsx:173 -#: src/tables/build/BuildAllocatedStockTable.tsx:131 +#: src/components/render/ModelType.tsx:56 +#: src/pages/company/SupplierPartDetail.tsx:364 +#: src/pages/stock/StockDetail.tsx:194 +#: src/tables/build/BuildAllocatedStockTable.tsx:152 #: src/tables/part/PartPurchaseOrdersTable.tsx:49 -#: src/tables/purchasing/SupplierPartTable.tsx:68 +#: src/tables/purchasing/SupplierPartTable.tsx:70 +#: src/tables/stock/StockItemTable.tsx:229 msgid "Supplier Part" msgstr "Pièce fournisseur" -#: src/components/render/ModelType.tsx:46 +#: src/components/render/ModelType.tsx:57 msgid "Supplier Parts" msgstr "Pièces du fournisseur" -#: src/components/render/ModelType.tsx:54 -#: src/pages/company/ManufacturerPartDetail.tsx:132 +#: src/components/render/ModelType.tsx:66 #: src/tables/part/PartPurchaseOrdersTable.tsx:55 +#: src/tables/stock/StockItemTable.tsx:234 msgid "Manufacturer Part" msgstr "Pièces du fabricant" -#: src/components/render/ModelType.tsx:55 +#: src/components/render/ModelType.tsx:67 msgid "Manufacturer Parts" msgstr "Pièces du fabricant" -#: src/components/render/ModelType.tsx:63 -#: src/pages/part/CategoryDetail.tsx:305 +#: src/components/render/ModelType.tsx:76 +#: src/pages/part/CategoryDetail.tsx:310 msgid "Part Category" msgstr "Catégorie de composant" -#: src/components/render/ModelType.tsx:64 -#: src/pages/part/CategoryDetail.tsx:258 -#: src/pages/part/CategoryDetail.tsx:296 -#: src/pages/part/PartDetail.tsx:1063 +#: src/components/render/ModelType.tsx:77 +#: src/pages/part/CategoryDetail.tsx:263 +#: src/pages/part/CategoryDetail.tsx:301 +#: src/pages/part/PartDetail.tsx:1084 msgid "Part Categories" msgstr "Catégories de composants" -#: src/components/render/ModelType.tsx:72 -#: src/pages/stock/StockDetail.tsx:624 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:94 -#: src/tables/stock/StockTrackingTable.tsx:45 +#: src/components/render/ModelType.tsx:86 +#: src/forms/BuildForms.tsx:337 +#: src/forms/BuildForms.tsx:385 +#: src/forms/BuildForms.tsx:515 +#: src/forms/SalesOrderForms.tsx:248 +#: src/pages/stock/StockDetail.tsx:839 +#: src/tables/stock/StockTrackingTable.tsx:49 msgid "Stock Item" msgstr "Article en stock" -#: src/components/render/ModelType.tsx:73 +#: src/components/render/ModelType.tsx:87 #: src/pages/company/CompanyDetail.tsx:203 -#: src/pages/stock/LocationDetail.tsx:128 -#: src/pages/stock/LocationDetail.tsx:181 -#: src/pages/stock/LocationDetail.tsx:395 +#: src/pages/part/PartStocktakeDetail.tsx:113 +#: src/pages/stock/LocationDetail.tsx:122 +#: src/pages/stock/LocationDetail.tsx:175 +#: src/pages/stock/LocationDetail.tsx:380 msgid "Stock Items" msgstr "Articles en stock" -#: src/components/render/ModelType.tsx:81 +#: src/components/render/ModelType.tsx:96 msgid "Stock Location" msgstr "Emplacement du stock" -#: src/components/render/ModelType.tsx:82 -#: src/pages/stock/LocationDetail.tsx:195 -#: src/pages/stock/LocationDetail.tsx:387 -#: src/pages/stock/StockDetail.tsx:616 +#: src/components/render/ModelType.tsx:97 +#: src/pages/stock/LocationDetail.tsx:189 +#: src/pages/stock/LocationDetail.tsx:372 +#: src/pages/stock/StockDetail.tsx:831 msgid "Stock Locations" msgstr "Emplacements de stock" -#: src/components/render/ModelType.tsx:90 +#: src/components/render/ModelType.tsx:106 msgid "Stock Location Type" -msgstr "" +msgstr "Emplacements du stock" -#: src/components/render/ModelType.tsx:91 +#: src/components/render/ModelType.tsx:107 msgid "Stock Location Types" -msgstr "" +msgstr "Emplacements des stocks" -#: src/components/render/ModelType.tsx:95 +#: src/components/render/ModelType.tsx:112 +#: src/pages/part/PartDetail.tsx:712 msgid "Stock History" msgstr "Historique du stock" -#: src/components/render/ModelType.tsx:96 +#: src/components/render/ModelType.tsx:113 msgid "Stock Histories" msgstr "Historique du stock" -#: src/components/render/ModelType.tsx:100 -#: src/defaults/links.tsx:31 -#: src/defaults/menuItems.tsx:43 +#: src/components/render/ModelType.tsx:118 msgid "Build" msgstr "Construction" -#: src/components/render/ModelType.tsx:101 +#: src/components/render/ModelType.tsx:119 msgid "Builds" msgstr "Construction" -#: src/components/render/ModelType.tsx:109 +#: src/components/render/ModelType.tsx:128 msgid "Build Line" -msgstr "" +msgstr "Chaîne d'assemblage" -#: src/components/render/ModelType.tsx:110 +#: src/components/render/ModelType.tsx:129 msgid "Build Lines" -msgstr "" +msgstr "Chaîne d'assemblage" -#: src/components/render/ModelType.tsx:117 +#: src/components/render/ModelType.tsx:137 msgid "Build Item" -msgstr "" +msgstr "Construire un élément" -#: src/components/render/ModelType.tsx:118 +#: src/components/render/ModelType.tsx:138 msgid "Build Items" -msgstr "" +msgstr "Construire des éléments" -#: src/components/render/ModelType.tsx:122 -#: src/pages/company/CompanyDetail.tsx:339 +#: src/components/render/ModelType.tsx:143 +#: src/pages/company/CompanyDetail.tsx:321 msgid "Company" msgstr "Société" -#: src/components/render/ModelType.tsx:123 +#: src/components/render/ModelType.tsx:144 msgid "Companies" msgstr "Sociétés" -#: src/components/render/ModelType.tsx:131 +#: src/components/render/ModelType.tsx:153 +#: src/pages/build/BuildDetail.tsx:195 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:204 +#: src/pages/sales/ReturnOrderDetail.tsx:174 +#: src/pages/sales/SalesOrderDetail.tsx:186 #: src/tables/TableHoverCard.tsx:81 -#: src/tables/build/BuildOrderTable.tsx:140 -#: src/tables/purchasing/PurchaseOrderTable.tsx:64 -#: src/tables/sales/ReturnOrderTable.tsx:55 -#: src/tables/sales/SalesOrderTable.tsx:62 +#: src/tables/build/BuildOrderTable.tsx:135 +#: src/tables/purchasing/PurchaseOrderTable.tsx:69 +#: src/tables/sales/ReturnOrderTable.tsx:67 +#: src/tables/sales/SalesOrderTable.tsx:67 msgid "Project Code" msgstr "Code du projet" -#: src/components/render/ModelType.tsx:132 -#: src/pages/Index/Settings/AdminCenter/Index.tsx:128 +#: src/components/render/ModelType.tsx:154 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:145 msgid "Project Codes" msgstr "Codes du projet" -#: src/components/render/ModelType.tsx:138 +#: src/components/render/ModelType.tsx:161 #: src/pages/part/pricing/PurchaseHistoryPanel.tsx:32 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:480 -#: src/tables/part/PartPurchaseOrdersTable.tsx:32 -#: src/tables/stock/StockTrackingTable.tsx:107 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:477 +#: src/pages/stock/StockDetail.tsx:253 +#: src/tables/part/PartPurchaseOrdersTable.tsx:31 +#: src/tables/stock/StockItemTable.tsx:222 +#: src/tables/stock/StockTrackingTable.tsx:111 msgid "Purchase Order" msgstr "Commande d’achat" -#: src/components/render/ModelType.tsx:139 -#: src/pages/Index/Settings/SystemSettings.tsx:255 +#: src/components/render/ModelType.tsx:162 +#: src/pages/Index/Settings/SystemSettings.tsx:249 #: src/pages/company/CompanyDetail.tsx:196 -#: src/pages/company/SupplierPartDetail.tsx:237 -#: src/pages/part/PartDetail.tsx:662 +#: src/pages/company/SupplierPartDetail.tsx:249 +#: src/pages/part/PartDetail.tsx:683 #: src/pages/purchasing/PurchasingIndex.tsx:25 msgid "Purchase Orders" msgstr "Ordres d'achat" -#: src/components/render/ModelType.tsx:147 +#: src/components/render/ModelType.tsx:171 msgid "Purchase Order Line" msgstr "Ligne de commande d'achat" -#: src/components/render/ModelType.tsx:148 +#: src/components/render/ModelType.tsx:172 msgid "Purchase Order Lines" msgstr "Lignes de commande d'achat" -#: src/components/render/ModelType.tsx:152 -#: src/pages/build/BuildDetail.tsx:153 -#: src/pages/sales/SalesOrderDetail.tsx:520 -#: src/pages/stock/StockDetail.tsx:221 -#: src/tables/sales/SalesOrderAllocationTable.tsx:50 -#: src/tables/stock/StockTrackingTable.tsx:118 +#: src/components/render/ModelType.tsx:177 +#: src/pages/build/BuildDetail.tsx:148 +#: src/pages/part/pricing/SaleHistoryPanel.tsx:24 +#: src/pages/sales/SalesOrderDetail.tsx:515 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:92 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:341 +#: src/pages/stock/StockDetail.tsx:262 +#: src/tables/sales/SalesOrderAllocationTable.tsx:80 +#: src/tables/stock/StockTrackingTable.tsx:122 msgid "Sales Order" msgstr "Ventes" -#: src/components/render/ModelType.tsx:153 -#: src/pages/Index/Settings/SystemSettings.tsx:270 +#: src/components/render/ModelType.tsx:178 +#: src/pages/Index/Settings/SystemSettings.tsx:264 #: src/pages/company/CompanyDetail.tsx:216 -#: src/pages/part/PartDetail.tsx:669 +#: src/pages/part/PartDetail.tsx:695 #: src/pages/sales/SalesIndex.tsx:26 msgid "Sales Orders" msgstr "Ordres de vente" -#: src/components/render/ModelType.tsx:161 +#: src/components/render/ModelType.tsx:187 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:340 msgid "Sales Order Shipment" msgstr "Expédition de la commande" -#: src/components/render/ModelType.tsx:162 +#: src/components/render/ModelType.tsx:188 msgid "Sales Order Shipments" msgstr "Expéditions de la commande" -#: src/components/render/ModelType.tsx:168 -#: src/pages/sales/ReturnOrderDetail.tsx:469 -#: src/tables/stock/StockTrackingTable.tsx:129 +#: src/components/render/ModelType.tsx:195 +#: src/pages/sales/ReturnOrderDetail.tsx:464 +#: src/tables/stock/StockTrackingTable.tsx:133 msgid "Return Order" msgstr "Retour de commande" -#: src/components/render/ModelType.tsx:169 -#: src/pages/Index/Settings/SystemSettings.tsx:286 +#: src/components/render/ModelType.tsx:196 +#: src/pages/Index/Settings/SystemSettings.tsx:280 #: src/pages/company/CompanyDetail.tsx:223 +#: src/pages/part/PartDetail.tsx:702 #: src/pages/sales/SalesIndex.tsx:32 msgid "Return Orders" msgstr "Retours" -#: src/components/render/ModelType.tsx:177 +#: src/components/render/ModelType.tsx:205 msgid "Return Order Line Item" -msgstr "" +msgstr "Ligne de retour de commande" -#: src/components/render/ModelType.tsx:178 +#: src/components/render/ModelType.tsx:206 msgid "Return Order Line Items" -msgstr "" +msgstr "Ligne de retour de commande" -#: src/components/render/ModelType.tsx:182 -#: src/tables/company/AddressTable.tsx:47 +#: src/components/render/ModelType.tsx:211 +#: src/tables/company/AddressTable.tsx:48 msgid "Address" msgstr "Adresse" -#: src/components/render/ModelType.tsx:183 -#: src/pages/company/CompanyDetail.tsx:253 +#: src/components/render/ModelType.tsx:212 +#: src/pages/company/CompanyDetail.tsx:255 msgid "Addresses" msgstr "Adresses" -#: src/components/render/ModelType.tsx:189 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:195 -#: src/pages/sales/ReturnOrderDetail.tsx:174 -#: src/pages/sales/SalesOrderDetail.tsx:183 +#: src/components/render/ModelType.tsx:219 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:196 +#: src/pages/sales/ReturnOrderDetail.tsx:166 +#: src/pages/sales/SalesOrderDetail.tsx:178 msgid "Contact" msgstr "Contact" -#: src/components/render/ModelType.tsx:190 -#: src/pages/company/CompanyDetail.tsx:247 +#: src/components/render/ModelType.tsx:220 +#: src/pages/company/CompanyDetail.tsx:249 msgid "Contacts" msgstr "Contacts" -#: src/components/render/ModelType.tsx:196 +#: src/components/render/ModelType.tsx:227 msgid "Owner" msgstr "Propriétaire" -#: src/components/render/ModelType.tsx:197 +#: src/components/render/ModelType.tsx:228 msgid "Owners" -msgstr "" +msgstr "Propriétaires" -#: src/components/render/ModelType.tsx:203 -#: src/tables/settings/ImportSessionTable.tsx:121 -#: src/tables/stock/StockItemTestResultTable.tsx:198 -#: src/tables/stock/StockTrackingTable.tsx:195 +#: src/components/render/ModelType.tsx:234 +#~ msgid "Purchase Order Line Item" +#~ msgstr "Purchase Order Line Item" + +#: src/components/render/ModelType.tsx:235 +#: src/tables/settings/BarcodeScanHistoryTable.tsx:80 +#: src/tables/settings/BarcodeScanHistoryTable.tsx:211 +#: src/tables/settings/ImportSessionTable.tsx:120 +#: src/tables/settings/StocktakeReportTable.tsx:44 +#: src/tables/stock/StockItemTestResultTable.tsx:204 +#: src/tables/stock/StockTrackingTable.tsx:181 +#: src/tables/stock/StockTrackingTable.tsx:210 msgid "User" msgstr "Utilisateur" -#: src/components/render/ModelType.tsx:204 -#: src/pages/Index/Settings/AdminCenter/Index.tsx:98 +#: src/components/render/ModelType.tsx:236 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:109 #: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:13 msgid "Users" msgstr "Utilisateurs" -#: src/components/render/ModelType.tsx:210 +#: src/components/render/ModelType.tsx:243 msgid "Group" -msgstr "" +msgstr "Groupes" -#: src/components/render/ModelType.tsx:211 +#: src/components/render/ModelType.tsx:244 #: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:20 -#: src/tables/settings/UserTable.tsx:138 -#: src/tables/settings/UserTable.tsx:201 +#: src/tables/settings/UserTable.tsx:137 +#: src/tables/settings/UserTable.tsx:200 msgid "Groups" msgstr "Groupes" -#: src/components/render/ModelType.tsx:218 +#: src/components/render/ModelType.tsx:252 msgid "Import Session" -msgstr "" +msgstr "Importer la session" -#: src/components/render/ModelType.tsx:219 +#: src/components/render/ModelType.tsx:253 msgid "Import Sessions" -msgstr "" +msgstr "Importer les sessions" -#: src/components/render/ModelType.tsx:225 +#: src/components/render/ModelType.tsx:260 msgid "Label Template" -msgstr "" +msgstr "Modèle d'étiquette" -#: src/components/render/ModelType.tsx:226 -#: src/pages/Index/Settings/AdminCenter/Index.tsx:158 +#: src/components/render/ModelType.tsx:261 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:187 msgid "Label Templates" -msgstr "" +msgstr "Modèles d'étiquettes" -#: src/components/render/ModelType.tsx:232 +#: src/components/render/ModelType.tsx:264 +#~ msgid "Unknown Model" +#~ msgstr "Unknown Model" + +#: src/components/render/ModelType.tsx:268 msgid "Report Template" -msgstr "" +msgstr "Modèle de rapport" -#: src/components/render/ModelType.tsx:233 -#: src/pages/Index/Settings/AdminCenter/Index.tsx:164 +#: src/components/render/ModelType.tsx:269 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:193 msgid "Report Templates" -msgstr "" +msgstr "Modèles des rapports" -#: src/components/render/ModelType.tsx:239 -msgid "Plugin Configuration" -msgstr "" - -#: src/components/render/ModelType.tsx:240 +#: src/components/render/ModelType.tsx:277 msgid "Plugin Configurations" +msgstr "Configurations des plugins" + +#: src/components/render/ModelType.tsx:284 +msgid "Content Type" +msgstr "Type de contenu" + +#: src/components/render/ModelType.tsx:285 +msgid "Content Types" +msgstr "Types de contenu" + +#: src/components/render/ModelType.tsx:291 +#: src/tables/machine/MachineListTable.tsx:351 +#: src/tables/machine/MachineTypeTable.tsx:282 +msgid "Errors" msgstr "" +#: src/components/render/ModelType.tsx:307 +#~ msgid "Purchase Order Line Items" +#~ msgstr "Purchase Order Line Items" + +#: src/components/render/ModelType.tsx:337 +#~ msgid "Unknown Models" +#~ msgstr "Unknown Models" + #: src/components/render/Order.tsx:121 +#: src/tables/sales/SalesOrderAllocationTable.tsx:136 msgid "Shipment" -msgstr "" +msgstr "Livraison" #: src/components/render/Part.tsx:25 #: src/components/render/Plugin.tsx:17 -#: src/pages/company/CompanyDetail.tsx:325 -#: src/pages/company/SupplierPartDetail.tsx:360 -#: src/pages/part/PartDetail.tsx:879 +#: src/pages/company/CompanyDetail.tsx:307 +#: src/pages/company/SupplierPartDetail.tsx:349 +#: src/pages/part/PartDetail.tsx:911 msgid "Inactive" msgstr "Inactif" @@ -1736,39 +2335,38 @@ msgstr "Inactif" msgid "No stock" msgstr "Aucun stock" -#: src/components/render/Part.tsx:30 -#: src/defaults/links.tsx:30 -#: src/defaults/menuItems.tsx:38 -#: src/pages/Index/Settings/SystemSettings.tsx:206 -#: src/pages/part/PartDetail.tsx:543 -#: src/pages/stock/LocationDetail.tsx:367 -#: src/pages/stock/StockDetail.tsx:411 -#: src/tables/stock/StockItemTable.tsx:68 -msgid "Stock" -msgstr "Stock" - -#: src/components/render/Stock.tsx:60 -#: src/pages/stock/StockDetail.tsx:150 -#: src/pages/stock/StockDetail.tsx:581 -#: src/tables/build/BuildAllocatedStockTable.tsx:102 -#: src/tables/sales/SalesOrderAllocationTable.tsx:80 +#: src/components/render/Stock.tsx:61 +#: src/forms/ReturnOrderForms.tsx:190 +#: src/pages/stock/StockDetail.tsx:166 +#: src/pages/stock/StockDetail.tsx:771 +#: src/tables/build/BuildAllocatedStockTable.tsx:123 +#: src/tables/build/BuildOutputTable.tsx:81 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:114 +#: src/tables/sales/SalesOrderAllocationTable.tsx:106 msgid "Serial Number" msgstr "Numéro de série" -#: src/components/render/Stock.tsx:62 -#: src/forms/BuildForms.tsx:218 -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/pages/part/pricing/BomPricingPanel.tsx:109 +#: src/components/render/Stock.tsx:63 +#: src/forms/BuildForms.tsx:206 +#: src/forms/BuildForms.tsx:515 +#: src/forms/PurchaseOrderForms.tsx:689 +#: src/forms/SalesOrderForms.tsx:248 +#: src/pages/part/PartSchedulingDetail.tsx:80 +#: src/pages/part/PartStocktakeDetail.tsx:60 +#: src/pages/part/PartStocktakeDetail.tsx:234 +#: src/pages/part/PartStocktakeDetail.tsx:252 +#: src/pages/part/pricing/BomPricingPanel.tsx:148 #: src/pages/part/pricing/PriceBreakPanel.tsx:89 -#: src/pages/part/pricing/PriceBreakPanel.tsx:171 -#: src/pages/stock/StockDetail.tsx:145 -#: src/pages/stock/StockDetail.tsx:587 -#: src/tables/build/BuildOrderTestTable.tsx:197 -#: src/tables/part/PartPurchaseOrdersTable.tsx:92 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:143 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:171 +#: src/pages/part/pricing/PriceBreakPanel.tsx:172 +#: src/pages/stock/StockDetail.tsx:161 +#: src/pages/stock/StockDetail.tsx:777 +#: src/tables/build/BuildLineTable.tsx:79 +#: src/tables/build/BuildOrderTestTable.tsx:198 +#: src/tables/part/PartPurchaseOrdersTable.tsx:93 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:146 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:177 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:77 -#: src/tables/stock/StockTrackingTable.tsx:59 +#: src/tables/stock/StockTrackingTable.tsx:63 msgid "Quantity" msgstr "Quantité" @@ -1792,11 +2390,11 @@ msgstr "Paramètre mis à jour" #: src/components/settings/SettingList.tsx:117 msgid "Error editing setting" -msgstr "" +msgstr "Erreur lors de la modification des paramètres" #: src/components/settings/SettingList.tsx:162 msgid "No settings specified" -msgstr "" +msgstr "Aucun paramètre spécifié" #: src/components/tables/FilterGroup.tsx:29 #~ msgid "Add table filter" @@ -1842,10 +2440,6 @@ msgstr "" #~ msgid "Required Part" #~ msgstr "Required Part" -#: src/components/tables/build/BuildLineTable.tsx:152 -#~ msgid "Required Quantity" -#~ msgstr "Required Quantity" - #: src/components/tables/build/BuildOrderTable.tsx:52 #~ msgid "Progress" #~ msgstr "Progress" @@ -2126,14 +2720,6 @@ msgstr "" #~ msgid "user deleted" #~ msgstr "user deleted" -#: src/components/tables/settings/UserTable.tsx:168 -#~ msgid "First Name" -#~ msgstr "First Name" - -#: src/components/tables/settings/UserTable.tsx:173 -#~ msgid "Last Name" -#~ msgstr "Last Name" - #: src/components/tables/stock/StockItemTable.tsx:247 #~ msgid "Test Filter" #~ msgstr "Test Filter" @@ -2146,36 +2732,21 @@ msgstr "" #~ msgid "Stock location updated" #~ msgstr "Stock location updated" -#: src/components/widgets/DisplayWidget.tsx:11 -#: src/pages/Index/Settings/AccountSettings/DisplaySettingsPanel.tsx:17 -msgid "Display Settings" -msgstr "Paramètres d'Affichage" - -#: src/components/widgets/DisplayWidget.tsx:15 -#: src/pages/Index/Settings/AccountSettings/DisplaySettingsPanel.tsx:23 -msgid "Color Mode" -msgstr "Mode de couleur" - -#: src/components/widgets/DisplayWidget.tsx:21 -#: src/pages/Index/Settings/AccountSettings/DisplaySettingsPanel.tsx:33 -msgid "Language" -msgstr "Langue" - #: src/components/widgets/FeedbackWidget.tsx:19 -msgid "Something is new: Platform UI" -msgstr "" +#~ msgid "Something is new: Platform UI" +#~ msgstr "Something is new: Platform UI" #: src/components/widgets/FeedbackWidget.tsx:21 -msgid "We are building a new UI with a modern stack. What you currently see is not fixed and will be redesigned but demonstrates the UI/UX possibilities we will have going forward." -msgstr "" +#~ msgid "We are building a new UI with a modern stack. What you currently see is not fixed and will be redesigned but demonstrates the UI/UX possibilities we will have going forward." +#~ msgstr "We are building a new UI with a modern stack. What you currently see is not fixed and will be redesigned but demonstrates the UI/UX possibilities we will have going forward." #: src/components/widgets/FeedbackWidget.tsx:32 -msgid "Provide Feedback" -msgstr "" +#~ msgid "Provide Feedback" +#~ msgstr "Provide Feedback" #: src/components/widgets/GetStartedWidget.tsx:11 -msgid "Getting started" -msgstr "" +#~ msgid "Getting started" +#~ msgstr "Getting started" #: src/components/widgets/MarkdownEditor.tsx:108 #~ msgid "Failed to upload image" @@ -2186,28 +2757,24 @@ msgstr "" #~ msgstr "Notes saved" #: src/components/widgets/WidgetLayout.tsx:166 -msgid "Layout" -msgstr "" +#~ msgid "Layout" +#~ msgstr "Layout" #: src/components/widgets/WidgetLayout.tsx:172 -msgid "Reset Layout" -msgstr "" +#~ msgid "Reset Layout" +#~ msgstr "Reset Layout" #: src/components/widgets/WidgetLayout.tsx:185 -msgid "Stop Edit" -msgstr "" - -#: src/components/widgets/WidgetLayout.tsx:185 -msgid "Edit Layout" -msgstr "" +#~ msgid "Stop Edit" +#~ msgstr "Stop Edit" #: src/components/widgets/WidgetLayout.tsx:191 -msgid "Appearance" -msgstr "" +#~ msgid "Appearance" +#~ msgstr "Appearance" #: src/components/widgets/WidgetLayout.tsx:203 -msgid "Show Boxes" -msgstr "" +#~ msgid "Show Boxes" +#~ msgstr "Show Boxes" #: src/contexts/LanguageContext.tsx:20 msgid "Arabic" @@ -2227,7 +2794,7 @@ msgstr "Danois" #: src/contexts/LanguageContext.tsx:24 msgid "German" -msgstr "" +msgstr "Allemand" #: src/contexts/LanguageContext.tsx:25 msgid "Greek" @@ -2259,23 +2826,23 @@ msgstr "Finlandais" #: src/contexts/LanguageContext.tsx:32 msgid "French" -msgstr "Francais" +msgstr "Français" #: src/contexts/LanguageContext.tsx:33 msgid "Hebrew" -msgstr "" +msgstr "Hébreu" #: src/contexts/LanguageContext.tsx:34 msgid "Hindi" -msgstr "" +msgstr "Hindi" #: src/contexts/LanguageContext.tsx:35 msgid "Hungarian" -msgstr "" +msgstr "Hongrois" #: src/contexts/LanguageContext.tsx:36 msgid "Italian" -msgstr "" +msgstr "Italien" #: src/contexts/LanguageContext.tsx:37 msgid "Japanese" @@ -2283,204 +2850,178 @@ msgstr "Japonais" #: src/contexts/LanguageContext.tsx:38 msgid "Korean" -msgstr "Corean" +msgstr "Coréen" #: src/contexts/LanguageContext.tsx:39 +msgid "Lithuanian" +msgstr "Lituanien" + +#: src/contexts/LanguageContext.tsx:40 msgid "Latvian" msgstr "Letton" -#: src/contexts/LanguageContext.tsx:40 +#: src/contexts/LanguageContext.tsx:41 msgid "Dutch" msgstr "Néerlandais" -#: src/contexts/LanguageContext.tsx:41 -msgid "Norwegian" -msgstr "" - #: src/contexts/LanguageContext.tsx:42 -msgid "Polish" -msgstr "" +msgid "Norwegian" +msgstr "Norvégien" #: src/contexts/LanguageContext.tsx:43 -msgid "Portuguese" -msgstr "" +msgid "Polish" +msgstr "Polonais" #: src/contexts/LanguageContext.tsx:44 -msgid "Portuguese (Brazilian)" -msgstr "" +msgid "Portuguese" +msgstr "Portugais" #: src/contexts/LanguageContext.tsx:45 -msgid "Romanian" -msgstr "" +msgid "Portuguese (Brazilian)" +msgstr "Portugais (Brésilien)" #: src/contexts/LanguageContext.tsx:46 -msgid "Russian" -msgstr "" +msgid "Romanian" +msgstr "Roumain" #: src/contexts/LanguageContext.tsx:47 -msgid "Slovak" -msgstr "" +msgid "Russian" +msgstr "Russe" #: src/contexts/LanguageContext.tsx:48 -msgid "Slovenian" -msgstr "" +msgid "Slovak" +msgstr "Slovaque" #: src/contexts/LanguageContext.tsx:49 -msgid "Swedish" -msgstr "" +msgid "Slovenian" +msgstr "Slovénie" #: src/contexts/LanguageContext.tsx:50 -msgid "Thai" -msgstr "" +msgid "Swedish" +msgstr "Suédois" #: src/contexts/LanguageContext.tsx:51 +msgid "Thai" +msgstr "Thaïlandais" + +#: src/contexts/LanguageContext.tsx:52 msgid "Turkish" msgstr "Turc" -#: src/contexts/LanguageContext.tsx:52 -msgid "Ukrainian" -msgstr "" - #: src/contexts/LanguageContext.tsx:53 +msgid "Ukrainian" +msgstr "Ukrainien" + +#: src/contexts/LanguageContext.tsx:54 msgid "Vietnamese" msgstr "Vietnamien" -#: src/contexts/LanguageContext.tsx:54 +#: src/contexts/LanguageContext.tsx:55 msgid "Chinese (Simplified)" msgstr "Chinois (Simplifié)" -#: src/contexts/LanguageContext.tsx:55 +#: src/contexts/LanguageContext.tsx:56 msgid "Chinese (Traditional)" msgstr "Chinois (Traditionnel)" +#: src/defaults/actions.tsx:18 +msgid "Go to the InvenTree dashboard" +msgstr "Accéder au tableau de bord InvenTree" + #: src/defaults/actions.tsx:18 #: src/defaults/links.tsx:27 #: src/defaults/menuItems.tsx:9 -msgid "Home" -msgstr "Page d’accueil" +#~ msgid "Home" +#~ msgstr "Home" #: src/defaults/actions.tsx:25 -#: src/defaults/links.tsx:28 -#: src/defaults/menuItems.tsx:28 -#: src/pages/Index/Dashboard.tsx:19 -#: src/pages/Index/Settings/UserSettings.tsx:46 -msgid "Dashboard" -msgstr "Tableau de bord" - -#: src/defaults/actions.tsx:26 -msgid "Go to the InvenTree dashboard" -msgstr "" - -#: src/defaults/actions.tsx:33 msgid "Visit the documentation to learn more about InvenTree" -msgstr "" +msgstr "Consultez la documentation pour en savoir plus sur InvenTree" -#: src/defaults/actions.tsx:39 -#: src/defaults/links.tsx:98 -#: src/defaults/links.tsx:128 +#: src/defaults/actions.tsx:31 +#: src/defaults/links.tsx:92 +#: src/defaults/links.tsx:124 msgid "About InvenTree" msgstr "À propos d'InvenTree" -#: src/defaults/actions.tsx:40 -#: src/defaults/links.tsx:129 +#: src/defaults/actions.tsx:32 msgid "About the InvenTree org" msgstr "À propos d'InvenTree" -#: src/defaults/actions.tsx:46 +#: src/defaults/actions.tsx:38 msgid "Server Information" -msgstr "" +msgstr "Information serveur" -#: src/defaults/actions.tsx:47 -#: src/defaults/links.tsx:123 +#: src/defaults/actions.tsx:39 +#: src/defaults/links.tsx:118 msgid "About this Inventree instance" msgstr "À propos de cette instance Inventree" -#: src/defaults/actions.tsx:53 -#: src/defaults/links.tsx:111 +#: src/defaults/actions.tsx:45 +#: src/defaults/links.tsx:105 +#: src/defaults/links.tsx:131 msgid "License Information" msgstr "Informations de licence" -#: src/defaults/actions.tsx:54 -#: src/defaults/links.tsx:135 +#: src/defaults/actions.tsx:46 msgid "Licenses for dependencies of the service" -msgstr "" +msgstr "Licences des dépendances du service" -#: src/defaults/actions.tsx:61 +#: src/defaults/actions.tsx:52 +msgid "Open Navigation" +msgstr "Ouvrir la navigation" + +#: src/defaults/actions.tsx:53 msgid "Open the main navigation menu" -msgstr "" +msgstr "Ouvrir le menu principal de navigation" -#: src/defaults/actions.tsx:72 +#: src/defaults/actions.tsx:64 msgid "Go to the Admin Center" -msgstr "" - -#: src/defaults/dashboardItems.tsx:15 -msgid "Subscribed Parts" -msgstr "Pièces suivies" - -#: src/defaults/dashboardItems.tsx:22 -msgid "Subscribed Categories" -msgstr "Catégories suivies" +msgstr "Accéder au centre d'administration" #: src/defaults/dashboardItems.tsx:29 -msgid "Latest Parts" -msgstr "Dernières pièces" +#~ msgid "Latest Parts" +#~ msgstr "Latest Parts" #: src/defaults/dashboardItems.tsx:36 -msgid "BOM Waiting Validation" -msgstr "BOM en attente de validation" +#~ msgid "BOM Waiting Validation" +#~ msgstr "BOM Waiting Validation" #: src/defaults/dashboardItems.tsx:43 -msgid "Recently Updated" -msgstr "Mis à jour récemment" - -#: src/defaults/dashboardItems.tsx:50 -#: src/tables/part/PartTable.tsx:238 -msgid "Low Stock" -msgstr "Stock faible" +#~ msgid "Recently Updated" +#~ msgstr "Recently Updated" #: src/defaults/dashboardItems.tsx:57 -msgid "Depleted Stock" -msgstr "Stock épuisé" +#~ msgid "Depleted Stock" +#~ msgstr "Depleted Stock" #: src/defaults/dashboardItems.tsx:64 -msgid "Required for Build Orders" -msgstr "Requis pour les commandes de construction" +#~ msgid "Required for Build Orders" +#~ msgstr "Required for Build Orders" #: src/defaults/dashboardItems.tsx:71 -msgid "Expired Stock" -msgstr "Stock expiré" +#~ msgid "Expired Stock" +#~ msgstr "Expired Stock" #: src/defaults/dashboardItems.tsx:78 -msgid "Stale Stock" -msgstr "" +#~ msgid "Stale Stock" +#~ msgstr "Stale Stock" #: src/defaults/dashboardItems.tsx:85 -msgid "Build Orders In Progress" -msgstr "Ordre de construction en cours" - -#: src/defaults/dashboardItems.tsx:92 -msgid "Overdue Build Orders" -msgstr "Ordres de construction en retard" +#~ msgid "Build Orders In Progress" +#~ msgstr "Build Orders In Progress" #: src/defaults/dashboardItems.tsx:99 -msgid "Outstanding Purchase Orders" -msgstr "" - -#: src/defaults/dashboardItems.tsx:106 -msgid "Overdue Purchase Orders" -msgstr "Commandes d'achat en retard" +#~ msgid "Outstanding Purchase Orders" +#~ msgstr "Outstanding Purchase Orders" #: src/defaults/dashboardItems.tsx:113 -msgid "Outstanding Sales Orders" -msgstr "" - -#: src/defaults/dashboardItems.tsx:120 -msgid "Overdue Sales Orders" -msgstr "Vente en retard" +#~ msgid "Outstanding Sales Orders" +#~ msgstr "Outstanding Sales Orders" #: src/defaults/dashboardItems.tsx:127 -msgid "Current News" -msgstr "Actualités en cours" +#~ msgid "Current News" +#~ msgstr "Current News" #: src/defaults/defaultHostList.tsx:8 #~ msgid "InvenTree Demo" @@ -2490,97 +3031,80 @@ msgstr "Actualités en cours" #~ msgid "Local Server" #~ msgstr "Local Server" -#: src/defaults/links.tsx:12 -#: src/pages/company/CompanyDetail.tsx:96 -msgid "Website" -msgstr "Site web" - #: src/defaults/links.tsx:17 -msgid "GitHub" -msgstr "GitHub" +#~ msgid "GitHub" +#~ msgstr "GitHub" #: src/defaults/links.tsx:22 -msgid "Demo" -msgstr "Démo" - -#: src/defaults/links.tsx:33 -#: src/defaults/menuItems.tsx:48 -#: src/pages/company/ManufacturerDetail.tsx:9 -#: src/pages/company/ManufacturerPartDetail.tsx:263 -#: src/pages/company/SupplierDetail.tsx:9 -#: src/pages/company/SupplierPartDetail.tsx:347 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:483 -#: src/pages/purchasing/PurchasingIndex.tsx:60 -msgid "Purchasing" -msgstr "Achat en cours" - -#: src/defaults/links.tsx:37 -#: src/defaults/menuItems.tsx:53 -#: src/pages/company/CustomerDetail.tsx:9 -#: src/pages/sales/ReturnOrderDetail.tsx:474 -#: src/pages/sales/SalesIndex.tsx:53 -#: src/pages/sales/SalesOrderDetail.tsx:525 -msgid "Sales" -msgstr "Ventes" +#~ msgid "Demo" +#~ msgstr "Demo" #: src/defaults/links.tsx:41 #: src/defaults/menuItems.tsx:71 #: src/pages/Index/Playground.tsx:217 -msgid "Playground" -msgstr "Le terrain de jeux" +#~ msgid "Playground" +#~ msgstr "Playground" -#: src/defaults/links.tsx:55 -msgid "Getting Started" -msgstr "Premiers Pas" - -#: src/defaults/links.tsx:56 -msgid "Getting started with InvenTree" -msgstr "Démarrer avec InvenTree" - -#: src/defaults/links.tsx:62 +#: src/defaults/links.tsx:45 msgid "API" msgstr "API" -#: src/defaults/links.tsx:63 +#: src/defaults/links.tsx:48 msgid "InvenTree API documentation" msgstr "Documentation de l'API d'InvenTree" -#: src/defaults/links.tsx:68 +#: src/defaults/links.tsx:52 msgid "Developer Manual" msgstr "Manuel du développeur" -#: src/defaults/links.tsx:69 +#: src/defaults/links.tsx:55 msgid "InvenTree developer manual" msgstr "Manuel du développeur InvenTree" -#: src/defaults/links.tsx:74 +#: src/defaults/links.tsx:59 msgid "FAQ" msgstr "FAQ" -#: src/defaults/links.tsx:75 +#: src/defaults/links.tsx:62 msgid "Frequently asked questions" msgstr "Foire aux questions" +#: src/defaults/links.tsx:66 +msgid "GitHub Repository" +msgstr "" + +#: src/defaults/links.tsx:69 +msgid "InvenTree source code on GitHub" +msgstr "" + #: src/defaults/links.tsx:76 #~ msgid "Instance" #~ msgstr "Instance" +#: src/defaults/links.tsx:79 +#: src/defaults/links.tsx:117 +msgid "System Information" +msgstr "Informations système" + #: src/defaults/links.tsx:83 #~ msgid "InvenTree" #~ msgstr "InvenTree" -#: src/defaults/links.tsx:85 -#: src/defaults/links.tsx:122 -msgid "System Information" -msgstr "Informations système" - #: src/defaults/links.tsx:117 #~ msgid "Licenses for packages used by InvenTree" #~ msgstr "Licenses for packages used by InvenTree" +#: src/defaults/links.tsx:125 +msgid "About the InvenTree Project" +msgstr "" + +#: src/defaults/links.tsx:132 +msgid "Licenses for dependencies of the InvenTree software" +msgstr "" + #: src/defaults/links.tsx:134 -msgid "Licenses" -msgstr "Licences" +#~ msgid "Licenses" +#~ msgstr "Licenses" #: src/defaults/menuItems.tsx:7 #~ msgid "Open sourcea" @@ -2607,8 +3131,8 @@ msgstr "Licences" #~ msgstr "Profile page" #: src/defaults/menuItems.tsx:17 -msgid "User attributes and design settings." -msgstr "Attributs utilisateur et paramètres de conception." +#~ msgid "User attributes and design settings." +#~ msgstr "User attributes and design settings." #: src/defaults/menuItems.tsx:21 #~ msgid "Free for everyone" @@ -2619,8 +3143,8 @@ msgstr "Attributs utilisateur et paramètres de conception." #~ msgstr "The fluid of Smeargle’s tail secretions changes" #: src/defaults/menuItems.tsx:23 -msgid "View for interactive scanning and multiple actions." -msgstr "" +#~ msgid "View for interactive scanning and multiple actions." +#~ msgstr "View for interactive scanning and multiple actions." #: src/defaults/menuItems.tsx:24 #~ msgid "The fluid of Smeargle’s tail secretions changes in the intensity" @@ -2698,51 +3222,130 @@ msgstr "" #~ msgid "Are you sure you want to delete this attachment?" #~ msgstr "Are you sure you want to delete this attachment?" -#: src/forms/BuildForms.tsx:158 -msgid "Next serial number" +#: src/forms/BuildForms.tsx:248 +#~ msgid "Remove output" +#~ msgstr "Remove output" + +#: src/forms/BuildForms.tsx:269 +#: src/tables/build/BuildAllocatedStockTable.tsx:147 +#: src/tables/build/BuildOrderTestTable.tsx:177 +#: src/tables/build/BuildOrderTestTable.tsx:201 +#: src/tables/build/BuildOutputTable.tsx:460 +msgid "Build Output" msgstr "" -#: src/forms/BuildForms.tsx:162 -msgid "Latest serial number" -msgstr "Dernier numéro de série" - -#: src/forms/BuildForms.tsx:234 -msgid "Remove output" +#: src/forms/BuildForms.tsx:269 +#: src/forms/BuildForms.tsx:337 +#: src/forms/BuildForms.tsx:385 +#: src/tables/build/BuildLineTable.tsx:89 +msgid "Batch" msgstr "" -#: src/forms/BuildForms.tsx:316 +#: src/forms/BuildForms.tsx:269 +#: src/forms/BuildForms.tsx:337 +#: src/forms/BuildForms.tsx:385 +#: src/forms/PurchaseOrderForms.tsx:603 +#: src/pages/build/BuildDetail.tsx:104 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:142 +#: src/pages/sales/ReturnOrderDetail.tsx:113 +#: src/pages/sales/SalesOrderDetail.tsx:122 +#: src/tables/build/BuildOrderTable.tsx:125 +#: src/tables/machine/MachineListTable.tsx:336 +#: src/tables/part/PartPurchaseOrdersTable.tsx:37 +#: src/tables/purchasing/PurchaseOrderTable.tsx:58 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:157 +#: src/tables/sales/ReturnOrderTable.tsx:56 +#: src/tables/sales/SalesOrderTable.tsx:56 +#: src/tables/settings/CustomStateTable.tsx:57 +#: src/tables/settings/ImportSessionTable.tsx:114 +#: src/tables/stock/StockItemTable.tsx:298 +#: src/tables/stock/StockTrackingTable.tsx:56 +msgid "Status" +msgstr "Status" + +#: src/forms/BuildForms.tsx:289 msgid "Complete Build Outputs" -msgstr "" +msgstr "Sorties de Fabrication terminées" -#: src/forms/BuildForms.tsx:320 +#: src/forms/BuildForms.tsx:292 msgid "Build outputs have been completed" msgstr "" -#: src/forms/BuildForms.tsx:389 +#: src/forms/BuildForms.tsx:353 msgid "Scrap Build Outputs" -msgstr "" +msgstr "Éliminer les résultats de construction" + +#: src/forms/BuildForms.tsx:356 +msgid "Build outputs have been scrapped" +msgstr "Les résultats de construction ont été supprimé" #: src/forms/BuildForms.tsx:393 -msgid "Build outputs have been scrapped" -msgstr "" - -#: src/forms/BuildForms.tsx:425 -#: src/forms/BuildForms.tsx:449 msgid "Cancel Build Outputs" -msgstr "" +msgstr "Annuler les résultats de construction" -#: src/forms/BuildForms.tsx:426 -msgid "Selected build outputs will be deleted" -msgstr "" - -#: src/forms/BuildForms.tsx:453 +#: src/forms/BuildForms.tsx:396 msgid "Build outputs have been cancelled" +msgstr "Les résultats de construction ont été annulés" + +#: src/forms/BuildForms.tsx:408 +#~ msgid "Selected build outputs will be deleted" +#~ msgstr "Selected build outputs will be deleted" + +#: src/forms/BuildForms.tsx:470 +#~ msgid "Remove line" +#~ msgstr "Remove line" + +#: src/forms/BuildForms.tsx:515 +#: src/forms/SalesOrderForms.tsx:248 +#: src/tables/build/BuildLineTable.tsx:174 +#: src/tables/sales/SalesOrderLineItemTable.tsx:276 +#: src/tables/stock/StockItemTable.tsx:309 +msgid "Allocated" +msgstr "Allouée" + +#: src/forms/BuildForms.tsx:545 +#: src/forms/SalesOrderForms.tsx:239 +#: src/pages/build/BuildDetail.tsx:208 +msgid "Source Location" +msgstr "Emplacement d'origine" + +#: src/forms/BuildForms.tsx:546 +#: src/forms/SalesOrderForms.tsx:240 +msgid "Select the source location for the stock allocation" +msgstr "Sélectionnez l'emplacement de la source pour l'allocation du stock" + +#: src/forms/BuildForms.tsx:566 +#: src/forms/SalesOrderForms.tsx:274 +#: src/tables/build/BuildLineTable.tsx:442 +#: src/tables/build/BuildLineTable.tsx:569 +#: src/tables/build/BuildLineTable.tsx:642 +#: src/tables/sales/SalesOrderLineItemTable.tsx:302 +#: src/tables/sales/SalesOrderLineItemTable.tsx:326 +msgid "Allocate Stock" msgstr "" +#: src/forms/BuildForms.tsx:569 +#: src/forms/SalesOrderForms.tsx:279 +msgid "Stock items allocated" +msgstr "Éléments du stock alloués" + #: src/forms/CompanyForms.tsx:150 #~ msgid "Company updated" #~ msgstr "Company updated" +#: src/forms/PartForms.tsx:67 +#: src/forms/PartForms.tsx:154 +#: src/pages/part/CategoryDetail.tsx:117 +#: src/pages/part/PartDetail.tsx:384 +#: src/tables/part/PartCategoryTable.tsx:90 +#: src/tables/part/PartTable.tsx:294 +msgid "Subscribed" +msgstr "" + +#: src/forms/PartForms.tsx:68 +msgid "Subscribe to notifications for this part" +msgstr "" + #: src/forms/PartForms.tsx:106 #~ msgid "Create Part" #~ msgstr "Create Part" @@ -2751,191 +3354,190 @@ msgstr "" #~ msgid "Part created" #~ msgstr "Part created" -#: src/forms/PartForms.tsx:124 -msgid "Parent part category" -msgstr "Catégorie de pièce parente" - #: src/forms/PartForms.tsx:129 #~ msgid "Part updated" #~ msgstr "Part updated" -#: src/forms/PurchaseOrderForms.tsx:300 +#: src/forms/PartForms.tsx:140 +msgid "Parent part category" +msgstr "Catégorie de pièce parente" + +#: src/forms/PartForms.tsx:155 +msgid "Subscribe to notifications for this category" +msgstr "" + +#: src/forms/PurchaseOrderForms.tsx:314 +msgid "Assign Batch Code and Serial Numbers" +msgstr "" + +#: src/forms/PurchaseOrderForms.tsx:316 +msgid "Assign Batch Code" +msgstr "" + +#: src/forms/PurchaseOrderForms.tsx:336 msgid "Choose Location" -msgstr "" +msgstr "Choisir l'emplacement" -#: src/forms/PurchaseOrderForms.tsx:308 +#: src/forms/PurchaseOrderForms.tsx:344 msgid "Item Destination selected" -msgstr "" +msgstr "Destination de l'élément sélectionné" -#: src/forms/PurchaseOrderForms.tsx:317 +#: src/forms/PurchaseOrderForms.tsx:353 msgid "Part category default location selected" -msgstr "" +msgstr "Emplacement par défaut de la catégorie" -#: src/forms/PurchaseOrderForms.tsx:327 +#: src/forms/PurchaseOrderForms.tsx:363 msgid "Received stock location selected" -msgstr "" +msgstr "Emplacement de stock reçu" -#: src/forms/PurchaseOrderForms.tsx:332 +#: src/forms/PurchaseOrderForms.tsx:368 msgid "Default location selected" -msgstr "" +msgstr "Emplacement par défaut" -#: src/forms/PurchaseOrderForms.tsx:343 -#: src/forms/PurchaseOrderForms.tsx:435 -msgid "Scan Barcode" -msgstr "" +#: src/forms/PurchaseOrderForms.tsx:421 +#~ msgid "Assign Batch Code{0}" +#~ msgstr "Assign Batch Code{0}" -#: src/forms/PurchaseOrderForms.tsx:388 +#: src/forms/PurchaseOrderForms.tsx:427 msgid "Set Location" -msgstr "" +msgstr "Définir l'emplacement" -#: src/forms/PurchaseOrderForms.tsx:396 -msgid "Assign Batch Code{0}" -msgstr "" - -#: src/forms/PurchaseOrderForms.tsx:405 -#: src/forms/StockForms.tsx:420 +#: src/forms/PurchaseOrderForms.tsx:442 +#: src/forms/StockForms.tsx:539 msgid "Adjust Packaging" -msgstr "" - -#: src/forms/PurchaseOrderForms.tsx:412 -msgid "Change Status" -msgstr "" - -#: src/forms/PurchaseOrderForms.tsx:418 -msgid "Add Note" -msgstr "" +msgstr "Ajuster le conditionnement" #: src/forms/PurchaseOrderForms.tsx:444 #: src/forms/StockForms.tsx:428 -msgid "Remove item from list" -msgstr "" +#~ msgid "Remove item from list" +#~ msgstr "Remove item from list" -#: src/forms/PurchaseOrderForms.tsx:471 -#: src/forms/StockForms.tsx:499 -#: src/forms/StockForms.tsx:533 -#: src/forms/StockForms.tsx:562 -#: src/forms/StockForms.tsx:590 -#: src/forms/StockForms.tsx:621 -#: src/forms/StockForms.tsx:656 -#: src/forms/StockForms.tsx:698 -#: src/forms/StockForms.tsx:734 -#: src/pages/stock/StockDetail.tsx:181 -#: src/tables/ColumnRenderers.tsx:49 -#: src/tables/stock/StockTrackingTable.tsx:85 +#: src/forms/PurchaseOrderForms.tsx:450 +msgid "Change Status" +msgstr "Changer le statut" + +#: src/forms/PurchaseOrderForms.tsx:456 +msgid "Add Note" +msgstr "Ajouter une note" + +#: src/forms/PurchaseOrderForms.tsx:503 +#: src/forms/StockForms.tsx:614 +#: src/forms/StockForms.tsx:651 +#: src/forms/StockForms.tsx:677 +#: src/forms/StockForms.tsx:705 +#: src/forms/StockForms.tsx:736 +#: src/forms/StockForms.tsx:771 +#: src/forms/StockForms.tsx:813 +#: src/forms/StockForms.tsx:851 +#: src/pages/stock/StockDetail.tsx:202 +#: src/tables/ColumnRenderers.tsx:60 +#: src/tables/stock/StockTrackingTable.tsx:89 msgid "Location" -msgstr "" +msgstr "Emplacement" -#: src/forms/PurchaseOrderForms.tsx:486 +#: src/forms/PurchaseOrderForms.tsx:518 msgid "Store at default location" -msgstr "" +msgstr "Stocker à l'emplacement par défaut" -#: src/forms/PurchaseOrderForms.tsx:499 +#: src/forms/PurchaseOrderForms.tsx:533 msgid "Store at line item destination" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:509 +#: src/forms/PurchaseOrderForms.tsx:545 msgid "Store with already received stock" -msgstr "" +msgstr "Stocker avec le stock déjà reçu" -#: src/forms/PurchaseOrderForms.tsx:524 -#: src/pages/build/BuildDetail.tsx:219 -#: src/pages/stock/StockDetail.tsx:162 -#: src/pages/stock/StockDetail.tsx:599 -#: src/tables/build/BuildAllocatedStockTable.tsx:109 -#: src/tables/build/BuildOrderTestTable.tsx:188 -#: src/tables/sales/SalesOrderAllocationTable.tsx:87 +#: src/forms/PurchaseOrderForms.tsx:566 +#: src/pages/build/BuildDetail.tsx:222 +#: src/pages/stock/StockDetail.tsx:185 +#: src/pages/stock/StockDetail.tsx:793 +#: src/tables/build/BuildAllocatedStockTable.tsx:130 +#: src/tables/build/BuildOrderTestTable.tsx:189 +#: src/tables/build/BuildOutputTable.tsx:86 +#: src/tables/sales/SalesOrderAllocationTable.tsx:113 msgid "Batch Code" +msgstr "Barre-code" + +#: src/forms/PurchaseOrderForms.tsx:566 +#~ msgid "Serial numbers" +#~ msgstr "Serial numbers" + +#: src/forms/PurchaseOrderForms.tsx:567 +msgid "Enter batch code for received items" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:535 -msgid "Serial numbers" +#: src/forms/PurchaseOrderForms.tsx:579 +#: src/forms/StockForms.tsx:152 +msgid "Serial Numbers" +msgstr "Numéros de Série" + +#: src/forms/PurchaseOrderForms.tsx:580 +msgid "Enter serial numbers for received items" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:544 -#: src/forms/StockForms.tsx:443 -#: src/pages/company/SupplierPartDetail.tsx:156 -#: src/pages/company/SupplierPartDetail.tsx:207 -#: src/pages/stock/StockDetail.tsx:244 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:192 +#: src/forms/PurchaseOrderForms.tsx:590 +#: src/forms/StockForms.tsx:556 +#: src/pages/company/SupplierPartDetail.tsx:168 +#: src/pages/company/SupplierPartDetail.tsx:219 +#: src/pages/stock/StockDetail.tsx:320 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:198 msgid "Packaging" -msgstr "" +msgstr "Conditionnement" -#: src/forms/PurchaseOrderForms.tsx:556 -#: src/pages/build/BuildDetail.tsx:109 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:148 -#: src/pages/sales/ReturnOrderDetail.tsx:121 -#: src/pages/sales/SalesOrderDetail.tsx:127 -#: src/tables/build/BuildOrderTable.tsx:122 -#: src/tables/machine/MachineListTable.tsx:335 -#: src/tables/part/PartPurchaseOrdersTable.tsx:37 -#: src/tables/purchasing/PurchaseOrderTable.tsx:55 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:132 -#: src/tables/sales/ReturnOrderTable.tsx:46 -#: src/tables/sales/SalesOrderTable.tsx:53 -#: src/tables/settings/ImportSessionTable.tsx:115 -#: src/tables/stock/StockItemTable.tsx:294 -#: src/tables/stock/StockTrackingTable.tsx:52 -msgid "Status" -msgstr "Status" - -#: src/forms/PurchaseOrderForms.tsx:564 -#: src/pages/company/SupplierPartDetail.tsx:110 -#: src/tables/ColumnRenderers.tsx:132 +#: src/forms/PurchaseOrderForms.tsx:612 +#: src/pages/company/SupplierPartDetail.tsx:115 +#: src/tables/ColumnRenderers.tsx:143 msgid "Note" -msgstr "" - -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/pages/company/SupplierPartDetail.tsx:128 -#: src/tables/purchasing/SupplierPriceBreakTable.tsx:57 -msgid "SKU" -msgstr "" - -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/tables/part/PartPurchaseOrdersTable.tsx:120 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:178 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:127 -msgid "Received" -msgstr "" - -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/forms/StockForms.tsx:499 -#: src/forms/StockForms.tsx:533 -#: src/forms/StockForms.tsx:562 -#: src/forms/StockForms.tsx:590 -#: src/forms/StockForms.tsx:621 -#: src/forms/StockForms.tsx:656 -#: src/forms/StockForms.tsx:698 -#: src/forms/StockForms.tsx:734 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:413 -#: src/tables/RowActions.tsx:113 -msgid "Actions" -msgstr "Actions" - -#: src/forms/PurchaseOrderForms.tsx:655 -msgid "Receive Line Items" -msgstr "" +msgstr "Note" #: src/forms/PurchaseOrderForms.tsx:658 #~ msgid "Receive line items" #~ msgstr "Receive line items" -#: src/forms/StockForms.tsx:104 -msgid "Add given quantity as packs instead of individual items" -msgstr "Ajouter une quantité en paquet au lieu de pièces individuelles" +#: src/forms/PurchaseOrderForms.tsx:689 +#: src/pages/company/SupplierPartDetail.tsx:133 +#: src/tables/purchasing/SupplierPriceBreakTable.tsx:57 +msgid "SKU" +msgstr "SKU" + +#: src/forms/PurchaseOrderForms.tsx:689 +#: src/tables/part/PartPurchaseOrdersTable.tsx:126 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:184 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:247 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:152 +msgid "Received" +msgstr "Réceptionnée" + +#: src/forms/PurchaseOrderForms.tsx:701 +msgid "Receive Line Items" +msgstr "Articles reçus" + +#: src/forms/ReturnOrderForms.tsx:201 +msgid "Receive Items" +msgstr "Articles reçus" + +#: src/forms/ReturnOrderForms.tsx:208 +msgid "Item received into stock" +msgstr "Article reçu en stock" + +#: src/forms/StockForms.tsx:80 +#: src/hooks/UsePlaceholder.tsx:57 +msgid "Next serial number" +msgstr "Numéro de série suivant" #: src/forms/StockForms.tsx:110 #~ msgid "Create Stock Item" #~ msgstr "Create Stock Item" -#: src/forms/StockForms.tsx:117 +#: src/forms/StockForms.tsx:131 +msgid "Add given quantity as packs instead of individual items" +msgstr "Ajouter une quantité en paquet au lieu de pièces individuelles" + +#: src/forms/StockForms.tsx:145 msgid "Enter initial quantity for this stock item" msgstr "Entrez la quantité initiale pour cet article en stock" -#: src/forms/StockForms.tsx:124 -msgid "Serial Numbers" -msgstr "Numéros de Série" - -#: src/forms/StockForms.tsx:125 +#: src/forms/StockForms.tsx:154 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "Entrez les numéros de série pour le nouveau stock (ou laisser vide)" @@ -2943,84 +3545,104 @@ msgstr "Entrez les numéros de série pour le nouveau stock (ou laisser vide)" #~ msgid "Stock item updated" #~ msgstr "Stock item updated" -#: src/forms/StockForms.tsx:179 -#: src/pages/stock/StockDetail.tsx:434 -#: src/tables/stock/StockItemTable.tsx:417 -#: src/tables/stock/StockItemTable.tsx:535 +#: src/forms/StockForms.tsx:169 +#: src/pages/stock/StockDetail.tsx:131 +msgid "Stock Status" +msgstr "État du stock" + +#: src/forms/StockForms.tsx:218 +#: src/pages/stock/StockDetail.tsx:554 +#: src/tables/stock/StockItemTable.tsx:421 +#: src/tables/stock/StockItemTable.tsx:541 msgid "Add Stock Item" msgstr "Ajouter un article en stock" -#: src/forms/StockForms.tsx:362 +#: src/forms/StockForms.tsx:262 +msgid "Select the part to install" +msgstr "Sélectionnez la partie à installer" + +#: src/forms/StockForms.tsx:480 msgid "Loading..." -msgstr "" +msgstr "Chargement..." -#: src/forms/StockForms.tsx:408 +#: src/forms/StockForms.tsx:527 msgid "Move to default location" -msgstr "" +msgstr "Déplacer vers l'emplacement par défaut" -#: src/forms/StockForms.tsx:499 -#: src/forms/StockForms.tsx:533 -#: src/forms/StockForms.tsx:562 -#: src/forms/StockForms.tsx:590 -#: src/forms/StockForms.tsx:621 -#: src/forms/StockForms.tsx:656 -#: src/forms/StockForms.tsx:698 -#: src/forms/StockForms.tsx:734 -#: src/pages/part/PartDetail.tsx:230 -#: src/pages/part/PartDetail.tsx:843 -#: src/tables/stock/StockItemTable.tsx:325 +#: src/forms/StockForms.tsx:614 +#: src/forms/StockForms.tsx:651 +#: src/forms/StockForms.tsx:677 +#: src/forms/StockForms.tsx:705 +#: src/forms/StockForms.tsx:736 +#: src/forms/StockForms.tsx:771 +#: src/forms/StockForms.tsx:813 +#: src/forms/StockForms.tsx:851 +#: src/pages/part/PartDetail.tsx:251 +#: src/pages/part/PartDetail.tsx:875 +#: src/tables/stock/StockItemTable.tsx:329 msgid "In Stock" -msgstr "" +msgstr "En Stock" -#: src/forms/StockForms.tsx:499 +#: src/forms/StockForms.tsx:614 msgid "Move" -msgstr "" +msgstr "Déplacer" -#: src/forms/StockForms.tsx:562 -#: src/pages/stock/StockDetail.tsx:518 -#: src/tables/stock/StockItemTestResultTable.tsx:328 +#: src/forms/StockForms.tsx:677 +#: src/pages/stock/StockDetail.tsx:681 +#: src/tables/stock/StockItemTestResultTable.tsx:346 msgid "Add" -msgstr "" +msgstr "Ajouter" -#: src/forms/StockForms.tsx:590 -#: src/pages/Index/Scan.tsx:266 -#: src/pages/stock/StockDetail.tsx:508 +#: src/forms/StockForms.tsx:705 +#: src/pages/Index/Scan.tsx:280 +#: src/pages/stock/StockDetail.tsx:670 msgid "Count" -msgstr "" +msgstr "Compter" -#: src/forms/StockForms.tsx:835 +#: src/forms/StockForms.tsx:953 +#: src/pages/stock/StockDetail.tsx:682 +#: src/tables/stock/StockItemTable.tsx:454 msgid "Add Stock" -msgstr "" +msgstr "Ajouter du stock" -#: src/forms/StockForms.tsx:844 +#: src/forms/StockForms.tsx:962 +#: src/pages/stock/StockDetail.tsx:691 +#: src/tables/stock/StockItemTable.tsx:463 msgid "Remove Stock" -msgstr "" +msgstr "Supprimer du stock" -#: src/forms/StockForms.tsx:853 -#: src/pages/part/PartDetail.tsx:1017 +#: src/forms/StockForms.tsx:971 +#: src/pages/part/PartDetail.tsx:1039 +#: src/pages/stock/StockDetail.tsx:712 +#: src/tables/stock/StockItemTable.tsx:483 msgid "Transfer Stock" -msgstr "" +msgstr "Transférer le stock" -#: src/forms/StockForms.tsx:862 -#: src/pages/part/PartDetail.tsx:1006 +#: src/forms/StockForms.tsx:980 +#: src/pages/part/PartDetail.tsx:1028 +#: src/pages/stock/LocationDetail.tsx:314 +#: src/pages/stock/LocationDetail.tsx:318 +#: src/tables/stock/StockItemTable.tsx:472 +#: src/tables/stock/StockItemTable.tsx:476 msgid "Count Stock" -msgstr "" +msgstr "Compter le stock" -#: src/forms/StockForms.tsx:871 +#: src/forms/StockForms.tsx:989 msgid "Change Stock Status" -msgstr "" +msgstr "Changer l'état du stock" -#: src/forms/StockForms.tsx:880 +#: src/forms/StockForms.tsx:998 msgid "Merge Stock" -msgstr "" +msgstr "Fusionner le stock" -#: src/forms/StockForms.tsx:899 +#: src/forms/StockForms.tsx:1017 +#: src/tables/stock/StockItemTable.tsx:530 msgid "Delete Stock Items" -msgstr "" +msgstr "Supprimer l'article du stock" -#: src/forms/StockForms.tsx:906 +#: src/forms/StockForms.tsx:1024 msgid "Parent stock location" -msgstr "" +msgstr "Localisation Parente du stock" #: src/functions/auth.tsx:34 #~ msgid "Error fetching token from server." @@ -3042,13 +3664,13 @@ msgstr "" #~ msgid "You have been logged out" #~ msgstr "You have been logged out" -#: src/functions/auth.tsx:117 +#: src/functions/auth.tsx:128 msgid "Logged Out" -msgstr "" +msgstr "Déconnexion" -#: src/functions/auth.tsx:118 +#: src/functions/auth.tsx:129 msgid "Successfully logged out" -msgstr "" +msgstr "Déconnexion réussie !" #: src/functions/auth.tsx:141 #~ msgid "Already logged in" @@ -3062,22 +3684,22 @@ msgstr "" #~ msgid "Found an existing login - welcome back!" #~ msgstr "Found an existing login - welcome back!" -#: src/functions/auth.tsx:156 +#: src/functions/auth.tsx:167 msgid "Check your inbox for a reset link. This only works if you have an account. Check in spam too." msgstr "Vérifiez votre boîte de réception pour un lien de réinitialisation. Cela ne fonctionne que si vous avez un compte. Vérifiez également dans le spam." -#: src/functions/auth.tsx:163 +#: src/functions/auth.tsx:174 #: src/pages/Auth/Set-Password.tsx:39 msgid "Reset failed" msgstr "Échec de la réinitialisation" -#: src/functions/auth.tsx:194 +#: src/functions/auth.tsx:205 msgid "Logged In" -msgstr "" +msgstr "Connecté" -#: src/functions/auth.tsx:195 +#: src/functions/auth.tsx:206 msgid "Successfully logged in" -msgstr "" +msgstr "Vous êtes connecté(e)" #: src/functions/forms.tsx:50 #~ msgid "Form method not provided" @@ -3095,62 +3717,74 @@ msgstr "" #~ msgid "method parameter not supplied" #~ msgstr "method parameter not supplied" -#: src/functions/notifications.tsx:10 +#: src/functions/notifications.tsx:12 msgid "Not implemented" -msgstr "" +msgstr "Non implémenté" -#: src/functions/notifications.tsx:11 +#: src/functions/notifications.tsx:13 msgid "This feature is not yet implemented" -msgstr "" +msgstr "Cette fonctionnalité n’a pas encore été mise en œuvre." -#: src/functions/notifications.tsx:21 -msgid "Permission denied" -msgstr "" +#: src/functions/notifications.tsx:24 +#~ msgid "Permission denied" +#~ msgstr "Permission denied" -#: src/functions/notifications.tsx:22 +#: src/functions/notifications.tsx:25 msgid "You do not have permission to perform this action" -msgstr "" +msgstr "Vous n'êtes pas autorisé à effectuer cette action" -#: src/functions/notifications.tsx:33 +#: src/functions/notifications.tsx:36 msgid "Invalid Return Code" -msgstr "" +msgstr "Code de retour invalide" -#: src/functions/notifications.tsx:34 +#: src/functions/notifications.tsx:37 msgid "Server returned status {returnCode}" msgstr "" +#: src/functions/notifications.tsx:47 +msgid "Timeout" +msgstr "Temps d'attente dépassé" + +#: src/functions/notifications.tsx:48 +msgid "The request timed out" +msgstr "La requête a expiré" + #: src/hooks/UseForm.tsx:88 msgid "Item Created" -msgstr "" +msgstr "Élément créé" #: src/hooks/UseForm.tsx:105 msgid "Item Updated" -msgstr "" +msgstr "Élément mis à jour" #: src/hooks/UseForm.tsx:124 msgid "Item Deleted" -msgstr "" +msgstr "Élément supprimé" #: src/hooks/UseForm.tsx:128 msgid "Are you sure you want to delete this item?" -msgstr "" +msgstr "Êtes-vous certain de vouloir supprimer cet élément?" + +#: src/hooks/UsePlaceholder.tsx:59 +msgid "Latest serial number" +msgstr "Dernier numéro de série" #: src/pages/Auth/Logged-In.tsx:22 msgid "Checking if you are already logged in" msgstr "Vérifier si vous êtes déjà connecté" -#: src/pages/Auth/Login.tsx:31 -#: src/pages/Index/Scan.tsx:329 +#: src/pages/Auth/Login.tsx:35 +#: src/pages/Index/Scan.tsx:343 msgid "No selection" msgstr "Aucune sélection" -#: src/pages/Auth/Login.tsx:87 +#: src/pages/Auth/Login.tsx:91 msgid "Welcome, log in below" msgstr "Bienvenue, connectez-vous ci-dessous" -#: src/pages/Auth/Login.tsx:89 +#: src/pages/Auth/Login.tsx:93 msgid "Register below" -msgstr "" +msgstr "S'inscrire ci-dessous" #: src/pages/Auth/Login.tsx:121 #~ msgid "Edit host options" @@ -3158,12 +3792,12 @@ msgstr "" #: src/pages/Auth/Logout.tsx:22 msgid "Logging out" -msgstr "" +msgstr "Déconnexion en cours" #: src/pages/Auth/Reset.tsx:41 #: src/pages/Auth/Set-Password.tsx:112 -msgid "Send mail" -msgstr "Envoyer un e-mail" +#~ msgid "Send mail" +#~ msgstr "Send mail" #: src/pages/Auth/Set-Password.tsx:30 msgid "Token invalid" @@ -3171,25 +3805,25 @@ msgstr "Jeton invalide" #: src/pages/Auth/Set-Password.tsx:31 msgid "You need to provide a valid token to set a new password. Check your inbox for a reset link." -msgstr "" +msgstr "Vous devez fournir un jeton valide pour définir un nouveau mot de passe. Vérifiez votre boîte de réception pour un lien de réinitialisation." #: src/pages/Auth/Set-Password.tsx:49 -msgid "No token provided" -msgstr "Aucun jeton fourni" +#~ msgid "No token provided" +#~ msgstr "No token provided" #: src/pages/Auth/Set-Password.tsx:50 -msgid "You need to provide a token to set a new password. Check your inbox for a reset link." -msgstr "Vous devez fournir un jeton pour définir un nouveau mot de passe. Vérifiez votre boîte de réception pour un lien de réinitialisation." +#~ msgid "You need to provide a token to set a new password. Check your inbox for a reset link." +#~ msgstr "You need to provide a token to set a new password. Check your inbox for a reset link." -#: src/pages/Auth/Set-Password.tsx:73 +#: src/pages/Auth/Set-Password.tsx:68 msgid "Password set" -msgstr "" +msgstr "Mot de passe défini" -#: src/pages/Auth/Set-Password.tsx:74 +#: src/pages/Auth/Set-Password.tsx:69 msgid "The password was set successfully. You can now login with your new password" msgstr "Votre mot de passe a été modifié avec succès. Vous pouvez maintenant vous connecter avec votre nouveau mot de passe" -#: src/pages/Auth/Set-Password.tsx:101 +#: src/pages/Auth/Set-Password.tsx:96 msgid "Set new password" msgstr "Définir un nouveau mot de passe" @@ -3199,27 +3833,27 @@ msgstr "Erreur : {0}" #: src/pages/ErrorPage.tsx:23 msgid "An unexpected error has occurred" -msgstr "" +msgstr "Une erreur inattendue est survenue" #: src/pages/ErrorPage.tsx:28 #~ msgid "Sorry, an unexpected error has occurred." #~ msgstr "Sorry, an unexpected error has occurred." #: src/pages/Index/Dashboard.tsx:22 -msgid "Autoupdate" -msgstr "" +#~ msgid "Autoupdate" +#~ msgstr "Autoupdate" #: src/pages/Index/Dashboard.tsx:26 -msgid "This page is a replacement for the old start page with the same information. This page will be deprecated and replaced by the home page." -msgstr "" +#~ msgid "This page is a replacement for the old start page with the same information. This page will be deprecated and replaced by the home page." +#~ msgstr "This page is a replacement for the old start page with the same information. This page will be deprecated and replaced by the home page." #: src/pages/Index/Home.tsx:58 -msgid "Welcome to your Dashboard{0}" -msgstr "" +#~ msgid "Welcome to your Dashboard{0}" +#~ msgstr "Welcome to your Dashboard{0}" #: src/pages/Index/Playground.tsx:222 -msgid "This page is a showcase for the possibilities of Platform UI." -msgstr "" +#~ msgid "This page is a showcase for the possibilities of Platform UI." +#~ msgstr "This page is a showcase for the possibilities of Platform UI." #: src/pages/Index/Profile/Profile.tsx:30 #: src/pages/Index/Profile/Profile.tsx:141 @@ -3359,132 +3993,197 @@ msgstr "" #: src/pages/Index/Scan.tsx:216 msgid "Manual input" -msgstr "" +msgstr "Saisie manuelle" #: src/pages/Index/Scan.tsx:217 msgid "Image Barcode" -msgstr "" - -#: src/pages/Index/Scan.tsx:247 -msgid "Selected elements are not known" -msgstr "" - -#: src/pages/Index/Scan.tsx:254 -msgid "Multiple object types selected" -msgstr "" +msgstr "Image du code-barre" #: src/pages/Index/Scan.tsx:261 +msgid "Selected elements are not known" +msgstr "Les éléments sélectionnés ne sont pas connus" + +#: src/pages/Index/Scan.tsx:268 +msgid "Multiple object types selected" +msgstr "Plusieurs types d'objets sélectionnés" + +#: src/pages/Index/Scan.tsx:275 msgid "Actions for {0}" -msgstr "" +msgstr "Actions pour {0}" -#: src/pages/Index/Scan.tsx:282 +#: src/pages/Index/Scan.tsx:296 msgid "Scan Page" -msgstr "" +msgstr "Numériser une page" -#: src/pages/Index/Scan.tsx:285 +#: src/pages/Index/Scan.tsx:299 msgid "This page can be used for continuously scanning items and taking actions on them." msgstr "" -#: src/pages/Index/Scan.tsx:292 +#: src/pages/Index/Scan.tsx:306 msgid "Toggle Fullscreen" -msgstr "" +msgstr "Basculer en Plein Écran" -#: src/pages/Index/Scan.tsx:305 +#: src/pages/Index/Scan.tsx:319 msgid "Select the input method you want to use to scan items." -msgstr "" +msgstr "Sélectionnez la méthode de saisie que vous souhaitez utiliser pour scanner les éléments." -#: src/pages/Index/Scan.tsx:307 +#: src/pages/Index/Scan.tsx:321 msgid "Input" -msgstr "" +msgstr "Entrée" -#: src/pages/Index/Scan.tsx:314 +#: src/pages/Index/Scan.tsx:328 msgid "Select input method" -msgstr "" +msgstr "Sélectionner un mode de saisie." -#: src/pages/Index/Scan.tsx:315 +#: src/pages/Index/Scan.tsx:329 msgid "Nothing found" -msgstr "" - -#: src/pages/Index/Scan.tsx:323 -msgid "Depending on the selected parts actions will be shown here. Not all barcode types are supported currently." -msgstr "" - -#: src/pages/Index/Scan.tsx:325 -msgid "Action" -msgstr "" - -#: src/pages/Index/Scan.tsx:334 -msgid "{0} items selected" -msgstr "" +msgstr "Aucun résultat" #: src/pages/Index/Scan.tsx:337 -msgid "General Actions" -msgstr "" +msgid "Depending on the selected parts actions will be shown here. Not all barcode types are supported currently." +msgstr "Selon les pièces sélectionnées, les actions seront affichées ici. Tous les types de code-barre ne sont pas pris en charge" + +#: src/pages/Index/Scan.tsx:339 +msgid "Action" +msgstr "Action" + +#: src/pages/Index/Scan.tsx:348 +msgid "{0} items selected" +msgstr "{0} articles sélectionnés" #: src/pages/Index/Scan.tsx:351 +msgid "General Actions" +msgstr "Actions Générale" + +#: src/pages/Index/Scan.tsx:365 msgid "Lookup part" -msgstr "" +msgstr "Rechercher une pièce" -#: src/pages/Index/Scan.tsx:359 +#: src/pages/Index/Scan.tsx:373 msgid "Open Link" -msgstr "" +msgstr "Ouvrir le lien" -#: src/pages/Index/Scan.tsx:375 +#: src/pages/Index/Scan.tsx:389 msgid "History is locally kept in this browser." -msgstr "" +msgstr "L'historique est conservé localement dans ce navigateur." -#: src/pages/Index/Scan.tsx:376 +#: src/pages/Index/Scan.tsx:390 msgid "The history is kept in this browser's local storage. So it won't be shared with other users or other devices but is persistent through reloads. You can select items in the history to perform actions on them. To add items, scan/enter them in the Input area." -msgstr "" +msgstr "L'historique de navigation est conservée dans le stockage local du navigateur. Il ne sera donc pas partagé avec les autres utilisateurs ou autres périphériques mais il sera persistent en rafraichissant. Vous pouvez sélectionner les éléments dans l'historique pour effectuer des actions sur eux. Pour ajouter des éléments, recherchez/entrez les dans la zone de saisie." -#: src/pages/Index/Scan.tsx:378 +#: src/pages/Index/Scan.tsx:392 #: src/pages/Notifications.tsx:100 msgid "History" -msgstr "" +msgstr "Historique" -#: src/pages/Index/Scan.tsx:384 +#: src/pages/Index/Scan.tsx:398 msgid "Delete History" -msgstr "" +msgstr "Supprimer l'Historique" -#: src/pages/Index/Scan.tsx:449 +#: src/pages/Index/Scan.tsx:463 msgid "No history" msgstr "Aucun historique" -#: src/pages/Index/Scan.tsx:467 +#: src/pages/Index/Scan.tsx:481 msgid "Item" msgstr "Élément" -#: src/pages/Index/Scan.tsx:470 +#: src/pages/Index/Scan.tsx:484 msgid "Type" msgstr "Type" -#: src/pages/Index/Scan.tsx:473 +#: src/pages/Index/Scan.tsx:487 msgid "Source" msgstr "Source" -#: src/pages/Index/Scan.tsx:476 +#: src/pages/Index/Scan.tsx:490 msgid "Scanned at" msgstr "Scanné le" -#: src/pages/Index/Scan.tsx:528 +#: src/pages/Index/Scan.tsx:547 msgid "Enter item serial or data" msgstr "Entrez le numéro de série ou les données de l'élément" -#: src/pages/Index/Scan.tsx:540 +#: src/pages/Index/Scan.tsx:559 msgid "Add dummy item" msgstr "Ajouter un élément factice" +#: src/pages/Index/Scan.tsx:569 +msgid "Start scanning by selecting a camera and pressing the play button." +msgstr "Commencez à scanner en sélectionnant une caméra et en appuyant sur le bouton de lecture." + +#: src/pages/Index/Scan.tsx:650 +msgid "Error while getting camera" +msgstr "Erreur lors de l’activation de la caméra" + +#: src/pages/Index/Scan.tsx:673 +msgid "Error while scanning" +msgstr "Erreur lors du scan" + +#: src/pages/Index/Scan.tsx:687 +msgid "Error while stopping" +msgstr "Erreur lors de l'arrêt" + +#: src/pages/Index/Scan.tsx:745 +msgid "Stop scanning" +msgstr "Arrêter le scan" + +#: src/pages/Index/Scan.tsx:754 +msgid "Start scanning" +msgstr "Commencer le scan" + +#: src/pages/Index/Scan.tsx:763 +msgid "Scanning" +msgstr "Analyse en cours" + +#: src/pages/Index/Scan.tsx:763 +msgid "Not scanning" +msgstr "Pas de scan en cours" + +#: src/pages/Index/Scan.tsx:775 +msgid "Select Camera" +msgstr "Sélectionner la caméra" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:28 +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:50 +msgid "Edit User Information" +msgstr "Modifier les informations utilisateur" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:32 +msgid "User details updated" +msgstr "Détails de l'utilisateur mis à jour" + #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:41 -msgid "Account Details" -msgstr "Détails du compte" +msgid "User Details" +msgstr "Détails de l'utilisateur" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:41 +#~ msgid "Account Details" +#~ msgstr "Account Details" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:44 +msgid "User Actions" +msgstr "Actions de l'utilisateur" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:48 +msgid "Edit User" +msgstr "Modifier l'utilisateur" #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:50 -msgid "First name" -msgstr "Prénom" +#~ msgid "First name" +#~ msgstr "First name" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:54 +msgid "Set Password" +msgstr "Définir le mot de passe" #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:55 -msgid "Last name" -msgstr "Nom de famille" +#~ msgid "Last name" +#~ msgstr "Last name" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:56 +msgid "Set User Password" +msgstr "Définir le mot de passe pour l'utilisateur" #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:58 #~ msgid "First name: {0}" @@ -3495,20 +4194,33 @@ msgstr "Nom de famille" #~ msgstr "Last name: {0}" #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:67 -msgid "First name:" -msgstr "Prénom:" +#~ msgid "First name:" +#~ msgstr "First name:" #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:71 -msgid "Last name:" -msgstr "Nom de famille:" +#~ msgid "Last name:" +#~ msgstr "Last name:" -#: src/pages/Index/Settings/AccountSettings/DisplaySettingsPanel.tsx:41 -msgid "Use pseudo language" -msgstr "Utiliser une pseudo langue" +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:73 +msgid "First Name" +msgstr "Prénom" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:79 +msgid "Last Name" +msgstr "Nom" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:85 +msgid "Staff Access" +msgstr "Accès du personnel" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:93 +#: src/tables/settings/UserTable.tsx:293 +msgid "Superuser" +msgstr "Super-utilisateur" #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:55 msgid "Single Sign On Accounts" -msgstr "" +msgstr "Comptes d'authentification unique" #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:62 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:80 @@ -3517,7 +4229,7 @@ msgstr "Non activé" #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:65 msgid "Single Sign On is not enabled for this server" -msgstr "" +msgstr "L'authentification unique n'est pas activée pour ce serveur" #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:69 msgid "Multifactor" @@ -3530,7 +4242,7 @@ msgstr "L'authentification multifacteurs n'est pas configurée pour votre compte #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:92 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:407 msgid "Token" -msgstr "" +msgstr "Jeton" #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:139 msgid "The following email addresses are associated with your account:" @@ -3590,78 +4302,93 @@ msgstr "Vous pouvez vous connecter à votre compte, utilisez l’un des comptes #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:368 msgid "Token is used - no actions" -msgstr "" +msgstr "Le jeton est utilisé - aucune action" #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:375 msgid "Revoke" -msgstr "" +msgstr "Révoquer" #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:389 msgid "No tokens configured" -msgstr "" - -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:398 -#: src/pages/part/PartDetail.tsx:297 -#: src/tables/bom/UsedInTable.tsx:84 -#: src/tables/build/BuildOrderTable.tsx:110 -#: src/tables/company/CompanyTable.tsx:61 -#: src/tables/company/CompanyTable.tsx:95 -#: src/tables/machine/MachineListTable.tsx:332 -#: src/tables/machine/MachineListTable.tsx:594 -#: src/tables/part/ParametricPartTable.tsx:223 -#: src/tables/part/PartTable.tsx:178 -#: src/tables/part/PartVariantTable.tsx:15 -#: src/tables/plugin/PluginListTable.tsx:149 -#: src/tables/plugin/PluginListTable.tsx:271 -#: src/tables/plugin/PluginListTable.tsx:563 -#: src/tables/purchasing/SupplierPartTable.tsx:98 -#: src/tables/purchasing/SupplierPartTable.tsx:187 -#: src/tables/settings/UserTable.tsx:284 -#: src/tables/stock/StockItemTable.tsx:289 -msgid "Active" -msgstr "" +msgstr "Aucun jeton configuré" #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:401 msgid "Expiry" -msgstr "" +msgstr "Expiré" #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:404 msgid "Last Seen" -msgstr "" +msgstr "Dernière visite" #: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:65 -msgid "bars" -msgstr "barres" +#~ msgid "bars" +#~ msgstr "bars" #: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:66 -msgid "oval" -msgstr "ovale" +#~ msgid "oval" +#~ msgstr "oval" #: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:67 -msgid "dots" -msgstr "points" +#~ msgid "dots" +#~ msgstr "dots" #: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:81 -msgid "Theme" -msgstr "Thème" +#~ msgid "Theme" +#~ msgstr "Theme" #: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:87 -msgid "Primary color" -msgstr "Couleur Principale" +#~ msgid "Primary color" +#~ msgstr "Primary color" -#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:100 +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:88 +msgid "Bars" +msgstr "Barres" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:89 +msgid "Oval" +msgstr "Ovale" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:90 +msgid "Dots" +msgstr "Points" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:101 +msgid "Display Settings" +msgstr "Paramètres d'Affichage" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:107 +msgid "Language" +msgstr "Langue" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:115 +msgid "Use pseudo language" +msgstr "Utiliser une pseudo langue" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:122 +msgid "Color Mode" +msgstr "Mode de couleur" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:133 +msgid "Highlight color" +msgstr "Couleur de surbrillance" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:145 +msgid "Example" +msgstr "Exemple" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:151 msgid "White color" msgstr "Couleur blanche" -#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:108 +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:167 msgid "Black color" msgstr "Couleur noire" -#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:116 +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:183 msgid "Border Radius" msgstr "Rayon de bordure" -#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:132 +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:199 msgid "Loader" msgstr "Chargeur" @@ -3673,89 +4400,156 @@ msgstr "Chargeur" #~ msgid "Advanced Amininistrative Options for InvenTree" #~ msgstr "Advanced Amininistrative Options for InvenTree" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:104 -msgid "Data Import" +#: src/pages/Index/Settings/AdminCenter/CurrencyManagmentPanel.tsx:27 +#: src/tables/ColumnRenderers.tsx:262 +msgid "Currency" +msgstr "Devise" + +#: src/pages/Index/Settings/AdminCenter/CurrencyManagmentPanel.tsx:32 +msgid "Rate" msgstr "" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:110 +#: src/pages/Index/Settings/AdminCenter/CurrencyManagmentPanel.tsx:44 +msgid "Exchange rates updated" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/CurrencyManagmentPanel.tsx:50 +msgid "Exchange rate update error" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/CurrencyManagmentPanel.tsx:62 +msgid "Refresh currency exchange rates" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/CurrencyManagmentPanel.tsx:99 +msgid "Last fetched" +msgstr "Dernière récupération" + +#: src/pages/Index/Settings/AdminCenter/CurrencyManagmentPanel.tsx:100 +msgid "Base currency" +msgstr "Devise par défaut" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:115 +msgid "Data Import" +msgstr "Importation de données" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:121 +msgid "Barcode Scans" +msgstr "Scans de code-barres" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:127 msgid "Background Tasks" msgstr "Tâches en arrière plan" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:116 -msgid "Error Reports" -msgstr "Rapports d'erreur" - -#: src/pages/Index/Settings/AdminCenter/Index.tsx:122 -msgid "Currencies" -msgstr "" - #: src/pages/Index/Settings/AdminCenter/Index.tsx:127 #~ msgid "Templates" #~ msgstr "Templates" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:140 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:133 +msgid "Error Reports" +msgstr "Rapports d'erreur" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:139 +msgid "Currencies" +msgstr "Devise" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:157 +msgid "Custom States" +msgstr "Statut personnalisé" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:163 +#: src/pages/Index/Settings/AdminCenter/UnitManagmentPanel.tsx:58 msgid "Custom Units" msgstr "Unités personnalisées" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:146 -#: src/pages/part/CategoryDetail.tsx:264 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:169 +#: src/pages/part/CategoryDetail.tsx:269 msgid "Part Parameters" msgstr "Paramètres de la pièce" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:152 -msgid "Category Parameters" -msgstr "" - -#: src/pages/Index/Settings/AdminCenter/Index.tsx:170 -msgid "Location Types" -msgstr "" - #: src/pages/Index/Settings/AdminCenter/Index.tsx:170 #~ msgid "Location types" #~ msgstr "Location types" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:182 -#: src/tables/machine/MachineTypeTable.tsx:287 -msgid "Machines" -msgstr "" +#: src/pages/Index/Settings/AdminCenter/Index.tsx:175 +msgid "Category Parameters" +msgstr "Paramètres de catégorie" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:192 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:181 +msgid "Stocktake" +msgstr "Prise d'inventaire" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:199 +msgid "Location Types" +msgstr "Types d'emplacement" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:211 +#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:48 +#: src/tables/machine/MachineTypeTable.tsx:308 +msgid "Machines" +msgstr "Équipements" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:221 msgid "Quick Actions" msgstr "Actions rapides" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:197 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:226 msgid "Add a new user" msgstr "Ajouter un utilisateur" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:222 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:252 msgid "Advanced Options" msgstr "Options avancées" #: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:43 -msgid "Machine types" -msgstr "" +#~ msgid "Machine types" +#~ msgstr "Machine types" #: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:53 -msgid "Machine Error Stack" +#~ msgid "Machine Error Stack" +#~ msgstr "Machine Error Stack" + +#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:56 +msgid "Machine Types" msgstr "" #: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:62 -msgid "There are no machine registry errors." +#~ msgid "There are no machine registry errors." +#~ msgstr "There are no machine registry errors." + +#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:64 +msgid "Machine Errors" msgstr "" -#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:28 -#: src/tables/settings/UserTable.tsx:119 +#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:77 +msgid "Registry Registry Errors" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:80 +msgid "There are machine registry errors" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:86 +msgid "Machine Registry Errors" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:89 +msgid "There are no machine registry errors" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:31 +#: src/tables/settings/UserTable.tsx:118 msgid "Info" msgstr "Info" -#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:32 -msgid "External plugins are not enabled for this InvenTree installation." -msgstr "Les extensions tierces ne sont pas activées pour cette installation d'InvenTree." - #: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:33 #~ msgid "Plugin Error Stack" #~ msgstr "Plugin Error Stack" +#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:35 +msgid "External plugins are not enabled for this InvenTree installation." +msgstr "Les extensions tierces ne sont pas activées pour cette installation d'InvenTree." + #: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:45 #~ msgid "Warning" #~ msgstr "Warning" @@ -3764,34 +4558,46 @@ msgstr "Les extensions tierces ne sont pas activées pour cette installation d'I #~ msgid "Changing the settings below require you to immediately restart the server. Do not change this while under active usage." #~ msgstr "Changing the settings below require you to immediately restart the server. Do not change this while under active usage." -#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:50 +#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:73 msgid "Plugin Errors" msgstr "Erreurs du plugin" -#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:59 -msgid "Plugin Settings" -msgstr "Paramètres du plug-in" +#: src/pages/Index/Settings/AdminCenter/ReportTemplatePanel.tsx:17 +msgid "Page Size" +msgstr "Taille de la page" -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:53 -msgid "Background Worker Not Running" +#: src/pages/Index/Settings/AdminCenter/ReportTemplatePanel.tsx:20 +msgid "Landscape" +msgstr "Paysage" + +#: src/pages/Index/Settings/AdminCenter/ReportTemplatePanel.tsx:26 +msgid "Attach to Model" +msgstr "Joindre au modèle" + +#: src/pages/Index/Settings/AdminCenter/StocktakePanel.tsx:25 +msgid "Stocktake Reports" msgstr "" -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:54 +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:30 msgid "The background task manager service is not running. Contact your system administrator." msgstr "" -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:60 -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:76 +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:35 +#~ msgid "Background Worker Not Running" +#~ msgstr "Background Worker Not Running" + +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:36 +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:45 msgid "Pending Tasks" msgstr "Tâches en attente" -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:64 -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:84 +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:37 +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:53 msgid "Scheduled Tasks" msgstr "Tâches planifiées" -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:68 -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:92 +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:38 +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:61 msgid "Failed Tasks" msgstr "Tâches en échec" @@ -3811,11 +4617,6 @@ msgstr "Tâches en échec" #~ msgid "Reports" #~ msgstr "Reports" -#: src/pages/Index/Settings/AdminCenter/TemplateManagementPanel.tsx:89 -#: src/pages/build/BuildDetail.tsx:373 -#~ msgid "Report" -#~ msgstr "Report" - #: src/pages/Index/Settings/AdminCenter/TemplateManagementPanel.tsx:99 #~ msgid "Purchase order" #~ msgstr "Purchase order" @@ -3836,25 +4637,37 @@ msgstr "Tâches en échec" #~ msgid "Stock location" #~ msgstr "Stock location" +#: src/pages/Index/Settings/AdminCenter/UnitManagmentPanel.tsx:21 +msgid "Alias" +msgstr "Alias" + +#: src/pages/Index/Settings/AdminCenter/UnitManagmentPanel.tsx:22 +msgid "Dimensionless" +msgstr "Sans dimensions" + +#: src/pages/Index/Settings/AdminCenter/UnitManagmentPanel.tsx:66 +msgid "All units" +msgstr "Toutes les unités" + #: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:32 msgid "Select settings relevant for user lifecycle. More available in" msgstr "" #: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:37 -msgid "System settings" -msgstr "" +#~ msgid "System settings" +#~ msgstr "System settings" -#: src/pages/Index/Settings/SystemSettings.tsx:67 +#: src/pages/Index/Settings/SystemSettings.tsx:66 msgid "Login" -msgstr "" +msgstr "Se connecter" -#: src/pages/Index/Settings/SystemSettings.tsx:93 +#: src/pages/Index/Settings/SystemSettings.tsx:92 msgid "Barcodes" -msgstr "" +msgstr "Code-barres" -#: src/pages/Index/Settings/SystemSettings.tsx:115 +#: src/pages/Index/Settings/SystemSettings.tsx:116 msgid "Pricing" -msgstr "" +msgstr "Tarifs" #: src/pages/Index/Settings/SystemSettings.tsx:118 #~ msgid "Physical Units" @@ -3864,64 +4677,46 @@ msgstr "" #~ msgid "Exchange Rates" #~ msgstr "Exchange Rates" -#: src/pages/Index/Settings/SystemSettings.tsx:150 +#: src/pages/Index/Settings/SystemSettings.tsx:151 msgid "Labels" -msgstr "" +msgstr "Étiquettes" -#: src/pages/Index/Settings/SystemSettings.tsx:156 -#: src/pages/Index/Settings/UserSettings.tsx:132 +#: src/pages/Index/Settings/SystemSettings.tsx:157 +#: src/pages/Index/Settings/UserSettings.tsx:133 msgid "Reporting" -msgstr "" +msgstr "Rapports" #: src/pages/Index/Settings/SystemSettings.tsx:231 -#: src/pages/part/PartDetail.tsx:682 -msgid "Stocktake" -msgstr "" - -#: src/pages/Index/Settings/SystemSettings.tsx:237 -#: src/pages/build/BuildDetail.tsx:554 -#: src/pages/build/BuildIndex.tsx:22 -#: src/pages/part/PartDetail.tsx:616 -#: src/pages/sales/SalesOrderDetail.tsx:333 +#: src/pages/build/BuildIndex.tsx:27 +#: src/pages/part/PartDetail.tsx:636 +#: src/pages/sales/SalesOrderDetail.tsx:355 msgid "Build Orders" msgstr "Ordres de fabrication" -#: src/pages/Index/Settings/SystemSettings.tsx:318 -msgid "Switch to User Setting" -msgstr "" +#: src/pages/Index/Settings/SystemSettings.tsx:317 +#~ msgid "Switch to User Setting" +#~ msgstr "Switch to User Setting" -#: src/pages/Index/Settings/UserSettings.tsx:34 +#: src/pages/Index/Settings/UserSettings.tsx:35 msgid "Account" msgstr "Compte" -#: src/pages/Index/Settings/UserSettings.tsx:40 +#: src/pages/Index/Settings/UserSettings.tsx:41 msgid "Security" -msgstr "" +msgstr "Sécurité" -#: src/pages/Index/Settings/UserSettings.tsx:78 +#: src/pages/Index/Settings/UserSettings.tsx:79 msgid "Display Options" msgstr "Options d’affichage" -#: src/pages/Index/Settings/UserSettings.tsx:150 -msgid "Account Settings" -msgstr "Paramètres du compte" - -#: src/pages/Index/Settings/UserSettings.tsx:158 -msgid "Switch to System Setting" -msgstr "" - -#: src/pages/Index/UserSettings.tsx:103 -#~ msgid "User Settings" -#~ msgstr "User Settings" +#: src/pages/Index/Settings/UserSettings.tsx:159 +#~ msgid "Switch to System Setting" +#~ msgstr "Switch to System Setting" #: src/pages/Logged-In.tsx:24 #~ msgid "Found an exsisting login - using it to log you in." #~ msgstr "Found an exsisting login - using it to log you in." -#: src/pages/NotFound.tsx:17 -#~ msgid "Not Found" -#~ msgstr "Not Found" - #: src/pages/NotFound.tsx:20 #~ msgid "Sorry, this page is not known or was moved." #~ msgstr "Sorry, this page is not known or was moved." @@ -3932,98 +4727,86 @@ msgstr "" #: src/pages/Notifications.tsx:43 msgid "Delete Notifications" -msgstr "" +msgstr "Supprimer les notifications" #: src/pages/Notifications.tsx:108 msgid "Mark as unread" -msgstr "" +msgstr "Marquer comme non lu" #: src/pages/build/BuildDetail.tsx:80 #~ msgid "Build Status" #~ msgstr "Build Status" -#: src/pages/build/BuildDetail.tsx:102 -#: src/pages/part/PartDetail.tsx:150 +#: src/pages/build/BuildDetail.tsx:97 +#: src/pages/company/ManufacturerPartDetail.tsx:81 +#: src/pages/company/SupplierPartDetail.tsx:91 +#: src/pages/part/PartDetail.tsx:171 +#: src/pages/stock/StockDetail.tsx:122 #: src/tables/bom/BomTable.tsx:118 #: src/tables/bom/UsedInTable.tsx:39 -#: src/tables/build/BuildLineTable.tsx:173 -#: src/tables/build/BuildOrderTable.tsx:55 -#: src/tables/sales/SalesOrderLineItemTable.tsx:62 -#: src/tables/stock/StockItemTable.tsx:53 +#: src/tables/build/BuildAllocatedStockTable.tsx:104 +#: src/tables/build/BuildLineTable.tsx:324 +#: src/tables/build/BuildOrderTable.tsx:64 +#: src/tables/sales/SalesOrderLineItemTable.tsx:70 +#: src/tables/stock/StockItemTable.tsx:54 msgid "IPN" -msgstr "" +msgstr "IPN" -#: src/pages/build/BuildDetail.tsx:115 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:121 -#: src/pages/sales/ReturnOrderDetail.tsx:95 -#: src/pages/sales/SalesOrderDetail.tsx:101 -#: src/tables/ColumnRenderers.tsx:121 -#: src/tables/build/BuildAllocatedStockTable.tsx:90 -#: src/tables/build/BuildLineTable.tsx:184 +#: src/pages/build/BuildDetail.tsx:110 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:115 +#: src/pages/sales/ReturnOrderDetail.tsx:86 +#: src/pages/sales/SalesOrderDetail.tsx:95 +#: src/tables/ColumnRenderers.tsx:132 +#: src/tables/build/BuildAllocatedStockTable.tsx:111 +#: src/tables/build/BuildLineTable.tsx:335 msgid "Reference" -msgstr "" +msgstr "Référence" -#: src/pages/build/BuildDetail.tsx:121 -#: src/pages/company/CompanyDetail.tsx:90 -#: src/pages/company/ManufacturerPartDetail.tsx:83 -#: src/pages/company/SupplierPartDetail.tsx:96 -#: src/pages/part/CategoryDetail.tsx:101 -#: src/pages/part/PartDetail.tsx:157 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:142 -#: src/pages/sales/ReturnOrderDetail.tsx:115 -#: src/pages/sales/SalesOrderDetail.tsx:121 -#: src/pages/stock/LocationDetail.tsx:109 -#: src/tables/ColumnRenderers.tsx:81 -#: src/tables/bom/UsedInTable.tsx:44 -#: src/tables/build/BuildAllocatedStockTable.tsx:70 -#: src/tables/build/BuildLineTable.tsx:178 -#: src/tables/machine/MachineTypeTable.tsx:69 -#: src/tables/machine/MachineTypeTable.tsx:112 -#: src/tables/machine/MachineTypeTable.tsx:219 -#: src/tables/machine/MachineTypeTable.tsx:323 -#: src/tables/part/RelatedPartTable.tsx:64 -#: src/tables/plugin/PluginListTable.tsx:129 -#: src/tables/plugin/PluginListTable.tsx:276 -#: src/tables/sales/SalesOrderAllocationTable.tsx:56 -#: src/tables/sales/SalesOrderLineItemTable.tsx:67 -#: src/tables/stock/LocationTypesTable.tsx:74 -msgid "Description" -msgstr "" - -#: src/pages/build/BuildDetail.tsx:129 +#: src/pages/build/BuildDetail.tsx:124 msgid "Parent Build" -msgstr "" +msgstr "Fabrication parente" -#: src/pages/build/BuildDetail.tsx:140 +#: src/pages/build/BuildDetail.tsx:135 msgid "Build Quantity" -msgstr "" +msgstr "Quantité de fabrication" -#: src/pages/build/BuildDetail.tsx:148 -#: src/pages/build/BuildDetail.tsx:274 +#: src/pages/build/BuildDetail.tsx:143 +#: src/pages/build/BuildDetail.tsx:277 msgid "Completed Outputs" msgstr "" -#: src/pages/build/BuildDetail.tsx:165 -#: src/tables/build/BuildOrderTable.tsx:151 +#: src/pages/build/BuildDetail.tsx:160 +#: src/tables/build/BuildOrderTable.tsx:142 msgid "Issued By" -msgstr "" +msgstr "Émis par" -#: src/pages/build/BuildDetail.tsx:172 -#: src/pages/part/PartDetail.tsx:365 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:220 -#: src/pages/sales/ReturnOrderDetail.tsx:199 -#: src/pages/sales/SalesOrderDetail.tsx:208 -#: src/tables/build/BuildOrderTable.tsx:157 -#: src/tables/purchasing/PurchaseOrderTable.tsx:75 -#: src/tables/sales/ReturnOrderTable.tsx:66 -#: src/tables/sales/SalesOrderTable.tsx:73 +#: src/pages/build/BuildDetail.tsx:167 +#: src/pages/part/PartDetail.tsx:406 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:244 +#: src/pages/sales/ReturnOrderDetail.tsx:216 +#: src/pages/sales/SalesOrderDetail.tsx:226 +#: src/tables/build/BuildOrderTable.tsx:148 +#: src/tables/purchasing/PurchaseOrderTable.tsx:76 +#: src/tables/sales/ReturnOrderTable.tsx:74 +#: src/tables/sales/SalesOrderTable.tsx:74 msgid "Responsible" msgstr "Responsable" -#: src/pages/build/BuildDetail.tsx:179 -#: src/tables/settings/PendingTasksTable.tsx:32 +#: src/pages/build/BuildDetail.tsx:174 +#: src/tables/settings/PendingTasksTable.tsx:36 msgid "Created" -msgstr "" +msgstr "Créé" + +#: src/pages/build/BuildDetail.tsx:181 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:229 +#: src/pages/sales/ReturnOrderDetail.tsx:201 +#: src/pages/sales/SalesOrderDetail.tsx:212 +#: src/tables/ColumnRenderers.tsx:226 +#: src/tables/part/PartPurchaseOrdersTable.tsx:100 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:135 +#: src/tables/sales/SalesOrderLineItemTable.tsx:107 +msgid "Target Date" +msgstr "Date cible" #: src/pages/build/BuildDetail.tsx:185 #: src/pages/part/PartDetail.tsx:269 @@ -4031,26 +4814,16 @@ msgstr "" #~ msgid "View part barcode" #~ msgstr "View part barcode" -#: src/pages/build/BuildDetail.tsx:186 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:213 -#: src/pages/sales/ReturnOrderDetail.tsx:192 -#: src/pages/sales/SalesOrderDetail.tsx:201 -#: src/tables/ColumnRenderers.tsx:212 -#: src/tables/part/PartPurchaseOrdersTable.tsx:99 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:110 -#: src/tables/sales/SalesOrderLineItemTable.tsx:99 -msgid "Target Date" -msgstr "Date cible" +#: src/pages/build/BuildDetail.tsx:188 +#: src/tables/sales/SalesOrderLineItemTable.tsx:281 +msgid "Completed" +msgstr "Complété" #: src/pages/build/BuildDetail.tsx:190 #: src/pages/part/PartDetail.tsx:274 #~ msgid "Link custom barcode to part" #~ msgstr "Link custom barcode to part" -#: src/pages/build/BuildDetail.tsx:193 -msgid "Completed" -msgstr "" - #: src/pages/build/BuildDetail.tsx:196 #: src/pages/part/PartDetail.tsx:280 #~ msgid "Unlink custom barcode from part" @@ -4060,17 +4833,13 @@ msgstr "" #~ msgid "Build Order updated" #~ msgstr "Build Order updated" -#: src/pages/build/BuildDetail.tsx:205 -msgid "Source Location" -msgstr "" - -#: src/pages/build/BuildDetail.tsx:206 +#: src/pages/build/BuildDetail.tsx:209 msgid "Any location" -msgstr "" +msgstr "Tous les emplacements" -#: src/pages/build/BuildDetail.tsx:213 +#: src/pages/build/BuildDetail.tsx:216 msgid "Destination Location" -msgstr "" +msgstr "Emplacement cible" #: src/pages/build/BuildDetail.tsx:221 #~ msgid "Edit build order" @@ -4084,208 +4853,184 @@ msgstr "" #~ msgid "Delete build order" #~ msgstr "Delete build order" -#: src/pages/build/BuildDetail.tsx:251 +#: src/pages/build/BuildDetail.tsx:254 msgid "Build Details" -msgstr "" +msgstr "Détails de fabrication" -#: src/pages/build/BuildDetail.tsx:257 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:258 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:267 -#: src/pages/sales/ReturnOrderDetail.tsx:130 -#: src/pages/sales/ReturnOrderDetail.tsx:237 -#: src/pages/sales/ReturnOrderDetail.tsx:246 -#: src/pages/sales/SalesOrderDetail.tsx:272 -#: src/pages/sales/SalesOrderDetail.tsx:281 +#: src/pages/build/BuildDetail.tsx:260 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:282 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:291 +#: src/pages/sales/ReturnOrderDetail.tsx:122 +#: src/pages/sales/ReturnOrderDetail.tsx:254 +#: src/pages/sales/ReturnOrderDetail.tsx:263 +#: src/pages/sales/SalesOrderDetail.tsx:294 +#: src/pages/sales/SalesOrderDetail.tsx:303 msgid "Line Items" -msgstr "" +msgstr "Éléments de la ligne" -#: src/pages/build/BuildDetail.tsx:267 +#: src/pages/build/BuildDetail.tsx:266 msgid "Incomplete Outputs" msgstr "" -#: src/pages/build/BuildDetail.tsx:289 -#: src/pages/sales/SalesOrderDetail.tsx:319 +#: src/pages/build/BuildDetail.tsx:292 +#: src/pages/sales/SalesOrderDetail.tsx:341 msgid "Allocated Stock" -msgstr "" +msgstr "Stock alloué" -#: src/pages/build/BuildDetail.tsx:299 +#: src/pages/build/BuildDetail.tsx:302 msgid "Consumed Stock" -msgstr "" +msgstr "Stock utilisé" -#: src/pages/build/BuildDetail.tsx:313 +#: src/pages/build/BuildDetail.tsx:316 msgid "Child Build Orders" -msgstr "" +msgstr "Ordre de fabrication enfant" #: src/pages/build/BuildDetail.tsx:326 -#: src/tables/build/BuildOutputTable.tsx:384 -#: src/tables/stock/StockItemTestResultTable.tsx:150 +#: src/tables/build/BuildOutputTable.tsx:532 +#: src/tables/stock/StockItemTestResultTable.tsx:156 msgid "Test Results" -msgstr "" +msgstr "Résultats des Tests" #: src/pages/build/BuildDetail.tsx:337 -#: src/pages/part/PartDetail.tsx:699 +#: src/pages/part/PartDetail.tsx:740 msgid "Test Statistics" -msgstr "" +msgstr "Statistiques des tests" -#: src/pages/build/BuildDetail.tsx:351 -#: src/pages/company/CompanyDetail.tsx:259 -#: src/pages/company/ManufacturerPartDetail.tsx:179 -#: src/pages/part/PartDetail.tsx:721 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:309 -#: src/pages/sales/ReturnOrderDetail.tsx:274 -#: src/pages/sales/SalesOrderDetail.tsx:343 -#: src/pages/stock/StockDetail.tsx:385 -msgid "Attachments" -msgstr "" - -#: src/pages/build/BuildDetail.tsx:359 -#: src/pages/company/CompanyDetail.tsx:270 -#: src/pages/company/ManufacturerPartDetail.tsx:190 -#: src/pages/company/SupplierPartDetail.tsx:257 -#: src/pages/part/PartDetail.tsx:729 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:320 -#: src/pages/sales/ReturnOrderDetail.tsx:285 -#: src/pages/sales/SalesOrderDetail.tsx:354 -#: src/pages/stock/StockDetail.tsx:396 -#: src/tables/build/BuildOrderTestTable.tsx:142 -#: src/tables/stock/StockTrackingTable.tsx:189 -msgid "Notes" -msgstr "" +#: src/pages/build/BuildDetail.tsx:365 +msgid "Edit Build Order" +msgstr "Éditer l'ordre de fabrication" #: src/pages/build/BuildDetail.tsx:368 #~ msgid "Reporting Actions" #~ msgstr "Reporting Actions" +#: src/pages/build/BuildDetail.tsx:372 +#: src/tables/build/BuildOrderTable.tsx:173 +#: src/tables/build/BuildOrderTable.tsx:188 +msgid "Add Build Order" +msgstr "Ajouter un ordre de fabrication" + #: src/pages/build/BuildDetail.tsx:374 #~ msgid "Print build report" #~ msgstr "Print build report" -#: src/pages/build/BuildDetail.tsx:377 -msgid "Edit Build Order" -msgstr "" - -#: src/pages/build/BuildDetail.tsx:384 -#: src/tables/build/BuildOrderTable.tsx:172 -#: src/tables/build/BuildOrderTable.tsx:187 -msgid "Add Build Order" -msgstr "" - -#: src/pages/build/BuildDetail.tsx:398 +#: src/pages/build/BuildDetail.tsx:386 msgid "Cancel Build Order" -msgstr "" +msgstr "Annuler l'ordre de fabrication" -#: src/pages/build/BuildDetail.tsx:400 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:348 -#: src/pages/sales/SalesOrderDetail.tsx:380 -msgid "Order cancelled" -msgstr "" - -#: src/pages/build/BuildDetail.tsx:401 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:347 -#: src/pages/sales/ReturnOrderDetail.tsx:346 -#: src/pages/sales/SalesOrderDetail.tsx:379 -msgid "Cancel this order" -msgstr "" - -#: src/pages/build/BuildDetail.tsx:410 -msgid "Hold Build Order" -msgstr "" - -#: src/pages/build/BuildDetail.tsx:412 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:355 +#: src/pages/build/BuildDetail.tsx:388 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:357 #: src/pages/sales/ReturnOrderDetail.tsx:354 #: src/pages/sales/SalesOrderDetail.tsx:387 -msgid "Place this order on hold" -msgstr "" +msgid "Order cancelled" +msgstr "Commande annulée" -#: src/pages/build/BuildDetail.tsx:413 +#: src/pages/build/BuildDetail.tsx:389 #: src/pages/purchasing/PurchaseOrderDetail.tsx:356 -#: src/pages/sales/ReturnOrderDetail.tsx:355 -#: src/pages/sales/SalesOrderDetail.tsx:388 -msgid "Order placed on hold" -msgstr "" +#: src/pages/sales/ReturnOrderDetail.tsx:353 +#: src/pages/sales/SalesOrderDetail.tsx:386 +msgid "Cancel this order" +msgstr "Annuler cette commande" -#: src/pages/build/BuildDetail.tsx:418 +#: src/pages/build/BuildDetail.tsx:398 +msgid "Hold Build Order" +msgstr "Suspendre l'ordre de fabrication" + +#: src/pages/build/BuildDetail.tsx:400 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:364 +#: src/pages/sales/ReturnOrderDetail.tsx:361 +#: src/pages/sales/SalesOrderDetail.tsx:394 +msgid "Place this order on hold" +msgstr "Mettre cet ordre en suspens" + +#: src/pages/build/BuildDetail.tsx:401 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:365 +#: src/pages/sales/ReturnOrderDetail.tsx:362 +#: src/pages/sales/SalesOrderDetail.tsx:395 +msgid "Order placed on hold" +msgstr "Cet ordre a été mis en suspens" + +#: src/pages/build/BuildDetail.tsx:406 msgid "Issue Build Order" msgstr "" -#: src/pages/build/BuildDetail.tsx:420 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:339 -#: src/pages/sales/ReturnOrderDetail.tsx:338 -#: src/pages/sales/SalesOrderDetail.tsx:371 +#: src/pages/build/BuildDetail.tsx:408 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:348 +#: src/pages/sales/ReturnOrderDetail.tsx:345 +#: src/pages/sales/SalesOrderDetail.tsx:378 msgid "Issue this order" msgstr "" -#: src/pages/build/BuildDetail.tsx:421 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:340 -#: src/pages/sales/ReturnOrderDetail.tsx:339 -#: src/pages/sales/SalesOrderDetail.tsx:372 +#: src/pages/build/BuildDetail.tsx:409 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:349 +#: src/pages/sales/ReturnOrderDetail.tsx:346 +#: src/pages/sales/SalesOrderDetail.tsx:379 msgid "Order issued" msgstr "" -#: src/pages/build/BuildDetail.tsx:426 +#: src/pages/build/BuildDetail.tsx:414 msgid "Complete Build Order" -msgstr "" +msgstr "Compléter l'ordre de fabrication" -#: src/pages/build/BuildDetail.tsx:428 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:368 -#: src/pages/sales/ReturnOrderDetail.tsx:362 -#: src/pages/sales/SalesOrderDetail.tsx:395 +#: src/pages/build/BuildDetail.tsx:416 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:377 +#: src/pages/sales/ReturnOrderDetail.tsx:369 +#: src/pages/sales/SalesOrderDetail.tsx:402 msgid "Mark this order as complete" -msgstr "" +msgstr "Marquer cet ordre comme complété" -#: src/pages/build/BuildDetail.tsx:429 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:362 -#: src/pages/sales/ReturnOrderDetail.tsx:363 -#: src/pages/sales/SalesOrderDetail.tsx:396 +#: src/pages/build/BuildDetail.tsx:417 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:371 +#: src/pages/sales/ReturnOrderDetail.tsx:370 +#: src/pages/sales/SalesOrderDetail.tsx:403 msgid "Order completed" -msgstr "" +msgstr "Ordre complété" -#: src/pages/build/BuildDetail.tsx:460 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:391 -#: src/pages/sales/ReturnOrderDetail.tsx:392 -#: src/pages/sales/SalesOrderDetail.tsx:425 +#: src/pages/build/BuildDetail.tsx:448 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:400 +#: src/pages/sales/ReturnOrderDetail.tsx:399 +#: src/pages/sales/SalesOrderDetail.tsx:432 msgid "Issue Order" msgstr "" -#: src/pages/build/BuildDetail.tsx:467 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:398 -#: src/pages/sales/ReturnOrderDetail.tsx:399 -#: src/pages/sales/SalesOrderDetail.tsx:439 +#: src/pages/build/BuildDetail.tsx:455 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:407 +#: src/pages/sales/ReturnOrderDetail.tsx:406 +#: src/pages/sales/SalesOrderDetail.tsx:446 msgid "Complete Order" -msgstr "" +msgstr "Compléter l'ordre" -#: src/pages/build/BuildDetail.tsx:496 +#: src/pages/build/BuildDetail.tsx:473 msgid "Build Order Actions" -msgstr "" +msgstr "Actions de l'ordre de fabrication" -#: src/pages/build/BuildDetail.tsx:502 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:432 -#: src/pages/sales/ReturnOrderDetail.tsx:433 -#: src/pages/sales/SalesOrderDetail.tsx:474 +#: src/pages/build/BuildDetail.tsx:478 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:429 +#: src/pages/sales/ReturnOrderDetail.tsx:428 +#: src/pages/sales/SalesOrderDetail.tsx:469 msgid "Edit order" -msgstr "" +msgstr "Modifier la commande" -#: src/pages/build/BuildDetail.tsx:506 +#: src/pages/build/BuildDetail.tsx:482 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:437 +#: src/pages/sales/ReturnOrderDetail.tsx:434 +#: src/pages/sales/SalesOrderDetail.tsx:474 +msgid "Duplicate order" +msgstr "Dupliquer la commande" + +#: src/pages/build/BuildDetail.tsx:486 #: src/pages/purchasing/PurchaseOrderDetail.tsx:440 #: src/pages/sales/ReturnOrderDetail.tsx:439 -#: src/pages/sales/SalesOrderDetail.tsx:479 -msgid "Duplicate order" -msgstr "" +#: src/pages/sales/SalesOrderDetail.tsx:477 +msgid "Hold order" +msgstr "Retenir la commande" -#: src/pages/build/BuildDetail.tsx:510 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:443 +#: src/pages/build/BuildDetail.tsx:491 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:445 #: src/pages/sales/ReturnOrderDetail.tsx:444 #: src/pages/sales/SalesOrderDetail.tsx:482 -msgid "Hold order" -msgstr "" - -#: src/pages/build/BuildDetail.tsx:515 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:448 -#: src/pages/sales/ReturnOrderDetail.tsx:449 -#: src/pages/sales/SalesOrderDetail.tsx:487 msgid "Cancel order" -msgstr "" +msgstr "Annuler la commande" #: src/pages/build/BuildIndex.tsx:23 #~ msgid "Build order created" @@ -4295,57 +5040,61 @@ msgstr "" #~ msgid "New Build Order" #~ msgstr "New Build Order" -#: src/pages/company/CompanyDetail.tsx:104 +#: src/pages/company/CompanyDetail.tsx:95 +msgid "Website" +msgstr "Site web" + +#: src/pages/company/CompanyDetail.tsx:103 msgid "Phone Number" -msgstr "" +msgstr "Numéro de téléphone" -#: src/pages/company/CompanyDetail.tsx:111 +#: src/pages/company/CompanyDetail.tsx:110 msgid "Email Address" -msgstr "" +msgstr "Adresse email" -#: src/pages/company/CompanyDetail.tsx:121 +#: src/pages/company/CompanyDetail.tsx:120 msgid "Default Currency" -msgstr "" +msgstr "Devise par défaut" -#: src/pages/company/CompanyDetail.tsx:126 +#: src/pages/company/CompanyDetail.tsx:125 #: src/pages/company/SupplierDetail.tsx:8 -#: src/pages/company/SupplierPartDetail.tsx:120 -#: src/pages/company/SupplierPartDetail.tsx:206 -#: src/pages/company/SupplierPartDetail.tsx:351 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:136 -#: src/tables/company/CompanyTable.tsx:100 +#: src/pages/company/SupplierPartDetail.tsx:125 +#: src/pages/company/SupplierPartDetail.tsx:218 +#: src/pages/company/SupplierPartDetail.tsx:340 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:130 +#: src/tables/company/CompanyTable.tsx:101 #: src/tables/part/PartPurchaseOrdersTable.tsx:42 -#: src/tables/purchasing/PurchaseOrderTable.tsx:88 +#: src/tables/purchasing/PurchaseOrderTable.tsx:89 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:36 msgid "Supplier" -msgstr "" +msgstr "Fournisseur" -#: src/pages/company/CompanyDetail.tsx:132 +#: src/pages/company/CompanyDetail.tsx:131 #: src/pages/company/ManufacturerDetail.tsx:8 -#: src/pages/company/ManufacturerPartDetail.tsx:101 -#: src/pages/company/ManufacturerPartDetail.tsx:267 -#: src/pages/company/SupplierPartDetail.tsx:135 -#: src/tables/company/CompanyTable.tsx:105 +#: src/pages/company/ManufacturerPartDetail.tsx:100 +#: src/pages/company/ManufacturerPartDetail.tsx:262 +#: src/pages/company/SupplierPartDetail.tsx:147 +#: src/tables/company/CompanyTable.tsx:106 msgid "Manufacturer" -msgstr "" +msgstr "Fabricant" -#: src/pages/company/CompanyDetail.tsx:138 +#: src/pages/company/CompanyDetail.tsx:137 #: src/pages/company/CustomerDetail.tsx:8 -#: src/pages/part/pricing/SaleHistoryPanel.tsx:29 -#: src/pages/sales/ReturnOrderDetail.tsx:109 -#: src/pages/sales/SalesOrderDetail.tsx:115 -#: src/pages/stock/StockDetail.tsx:230 -#: src/tables/company/CompanyTable.tsx:110 -#: src/tables/sales/ReturnOrderTable.tsx:78 -#: src/tables/sales/SalesOrderTable.tsx:108 -#: src/tables/stock/StockTrackingTable.tsx:140 +#: src/pages/part/pricing/SaleHistoryPanel.tsx:31 +#: src/pages/sales/ReturnOrderDetail.tsx:101 +#: src/pages/sales/SalesOrderDetail.tsx:110 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:100 +#: src/pages/stock/StockDetail.tsx:271 +#: src/tables/company/CompanyTable.tsx:111 +#: src/tables/sales/ReturnOrderTable.tsx:97 +#: src/tables/sales/SalesOrderTable.tsx:121 +#: src/tables/stock/StockTrackingTable.tsx:144 msgid "Customer" -msgstr "" +msgstr "Client" #: src/pages/company/CompanyDetail.tsx:172 -#: src/tables/stock/StockTrackingTable.tsx:183 -msgid "Details" -msgstr "" +msgid "Company Details" +msgstr "Détails de l'entreprise" #: src/pages/company/CompanyDetail.tsx:175 #~ msgid "Edit company" @@ -4353,508 +5102,518 @@ msgstr "" #: src/pages/company/CompanyDetail.tsx:178 msgid "Manufactured Parts" -msgstr "" +msgstr "Pièces du fabricant" #: src/pages/company/CompanyDetail.tsx:187 msgid "Supplied Parts" -msgstr "" +msgstr "Pièce fournisseur" #: src/pages/company/CompanyDetail.tsx:189 #~ msgid "Delete company" #~ msgstr "Delete company" -#: src/pages/company/CompanyDetail.tsx:232 +#: src/pages/company/CompanyDetail.tsx:234 msgid "Assigned Stock" -msgstr "" +msgstr "Stock attribué" -#: src/pages/company/CompanyDetail.tsx:290 -#: src/tables/company/CompanyTable.tsx:86 +#: src/pages/company/CompanyDetail.tsx:273 +#: src/tables/company/CompanyTable.tsx:87 msgid "Edit Company" -msgstr "" +msgstr "Modifier la société" -#: src/pages/company/CompanyDetail.tsx:298 +#: src/pages/company/CompanyDetail.tsx:281 msgid "Delete Company" -msgstr "" +msgstr "Supprimer la société" -#: src/pages/company/CompanyDetail.tsx:306 +#: src/pages/company/CompanyDetail.tsx:289 msgid "Company Actions" -msgstr "" +msgstr "Actions de la société" -#: src/pages/company/ManufacturerPartDetail.tsx:76 -#: src/pages/company/SupplierPartDetail.tsx:89 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:128 +#: src/pages/company/ManufacturerPartDetail.tsx:74 +#: src/pages/company/SupplierPartDetail.tsx:84 msgid "Internal Part" -msgstr "" +msgstr "Pièce interne" -#: src/pages/company/ManufacturerPartDetail.tsx:91 -#: src/pages/company/SupplierPartDetail.tsx:103 -msgid "External Link" -msgstr "" - -#: src/pages/company/ManufacturerPartDetail.tsx:109 -#: src/pages/company/SupplierPartDetail.tsx:144 -#: src/tables/purchasing/ManufacturerPartTable.tsx:56 +#: src/pages/company/ManufacturerPartDetail.tsx:108 +#: src/pages/company/SupplierPartDetail.tsx:156 +#: src/tables/purchasing/ManufacturerPartTable.tsx:58 msgid "Manufacturer Part Number" -msgstr "" +msgstr "Numéro de pièce du fabricant" -#: src/pages/company/ManufacturerPartDetail.tsx:138 +#: src/pages/company/ManufacturerPartDetail.tsx:125 +#: src/pages/company/SupplierPartDetail.tsx:108 +msgid "External Link" +msgstr "Lien externe" + +#: src/pages/company/ManufacturerPartDetail.tsx:146 +#: src/pages/company/SupplierPartDetail.tsx:215 +#: src/pages/part/PartDetail.tsx:576 +msgid "Part Details" +msgstr "Détails de la pièce" + +#: src/pages/company/ManufacturerPartDetail.tsx:149 msgid "Manufacturer Details" -msgstr "" +msgstr "Informations sur le fabricant" -#: src/pages/company/ManufacturerPartDetail.tsx:147 +#: src/pages/company/ManufacturerPartDetail.tsx:158 msgid "Manufacturer Part Details" -msgstr "" +msgstr "Détails de la pièce du fabricant" -#: src/pages/company/ManufacturerPartDetail.tsx:153 -#: src/pages/part/PartDetail.tsx:532 +#: src/pages/company/ManufacturerPartDetail.tsx:164 +#: src/pages/part/PartDetail.tsx:582 msgid "Parameters" -msgstr "" +msgstr "Paramètres" -#: src/pages/company/ManufacturerPartDetail.tsx:165 -#: src/pages/part/PartDetail.tsx:649 +#: src/pages/company/ManufacturerPartDetail.tsx:176 +#: src/pages/part/PartDetail.tsx:669 #: src/pages/purchasing/PurchasingIndex.tsx:31 msgid "Suppliers" -msgstr "" +msgstr "Fournisseurs" -#: src/pages/company/ManufacturerPartDetail.tsx:208 -#: src/tables/purchasing/ManufacturerPartTable.tsx:84 +#: src/pages/company/ManufacturerPartDetail.tsx:204 +#: src/tables/purchasing/ManufacturerPartTable.tsx:86 msgid "Edit Manufacturer Part" -msgstr "" +msgstr "Modifier la pièce du fabricant" -#: src/pages/company/ManufacturerPartDetail.tsx:215 -#: src/tables/purchasing/ManufacturerPartTable.tsx:72 -#: src/tables/purchasing/ManufacturerPartTable.tsx:103 +#: src/pages/company/ManufacturerPartDetail.tsx:211 +#: src/tables/purchasing/ManufacturerPartTable.tsx:74 +#: src/tables/purchasing/ManufacturerPartTable.tsx:106 msgid "Add Manufacturer Part" -msgstr "" +msgstr "Nouvelle pièce de fabricant" -#: src/pages/company/ManufacturerPartDetail.tsx:227 -#: src/tables/purchasing/ManufacturerPartTable.tsx:92 +#: src/pages/company/ManufacturerPartDetail.tsx:223 +#: src/tables/purchasing/ManufacturerPartTable.tsx:94 msgid "Delete Manufacturer Part" -msgstr "" +msgstr "Supprimer la pièce de fabricant" -#: src/pages/company/ManufacturerPartDetail.tsx:240 +#: src/pages/company/ManufacturerPartDetail.tsx:236 msgid "Manufacturer Part Actions" -msgstr "" +msgstr "Détails de la pièce du fabricant" -#: src/pages/company/ManufacturerPartDetail.tsx:281 +#: src/pages/company/ManufacturerPartDetail.tsx:276 msgid "ManufacturerPart" +msgstr "Pièce du fabricant" + +#: src/pages/company/SupplierPartDetail.tsx:99 +msgid "Part Description" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:163 -#: src/tables/part/PartPurchaseOrdersTable.tsx:71 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:156 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:197 -#: src/tables/purchasing/SupplierPartTable.tsx:131 +#: src/pages/company/SupplierPartDetail.tsx:175 +#: src/tables/part/PartPurchaseOrdersTable.tsx:72 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:162 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:203 +#: src/tables/purchasing/SupplierPartTable.tsx:133 msgid "Pack Quantity" -msgstr "" +msgstr "Quantité du paquet" -#: src/pages/company/SupplierPartDetail.tsx:174 +#: src/pages/company/SupplierPartDetail.tsx:186 msgid "Supplier Availability" -msgstr "" +msgstr "Disponibilité du fournisseur" -#: src/pages/company/SupplierPartDetail.tsx:181 +#: src/pages/company/SupplierPartDetail.tsx:193 msgid "Availability Updated" -msgstr "" +msgstr "Disponibilité mise à jour" -#: src/pages/company/SupplierPartDetail.tsx:208 +#: src/pages/company/SupplierPartDetail.tsx:220 msgid "Availability" -msgstr "" +msgstr "Disponibilité" -#: src/pages/company/SupplierPartDetail.tsx:217 +#: src/pages/company/SupplierPartDetail.tsx:229 msgid "Supplier Part Details" -msgstr "" +msgstr "Détails de la pièce du fournisseur" -#: src/pages/company/SupplierPartDetail.tsx:223 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:296 +#: src/pages/company/SupplierPartDetail.tsx:235 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:320 msgid "Received Stock" -msgstr "" +msgstr "Stock reçu" -#: src/pages/company/SupplierPartDetail.tsx:247 -#: src/pages/part/PartPricingPanel.tsx:111 -#: src/pages/part/pricing/PricingOverviewPanel.tsx:121 +#: src/pages/company/SupplierPartDetail.tsx:259 +#: src/pages/part/PartPricingPanel.tsx:116 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:195 msgid "Supplier Pricing" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:294 +#: src/pages/company/SupplierPartDetail.tsx:284 msgid "Supplier Part Actions" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:319 -#: src/tables/purchasing/SupplierPartTable.tsx:210 +#: src/pages/company/SupplierPartDetail.tsx:308 +#: src/tables/purchasing/SupplierPartTable.tsx:213 msgid "Edit Supplier Part" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:327 -#: src/tables/purchasing/SupplierPartTable.tsx:218 +#: src/pages/company/SupplierPartDetail.tsx:316 +#: src/tables/purchasing/SupplierPartTable.tsx:221 msgid "Delete Supplier Part" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:335 -#: src/tables/purchasing/SupplierPartTable.tsx:163 +#: src/pages/company/SupplierPartDetail.tsx:324 +#: src/tables/purchasing/SupplierPartTable.tsx:165 msgid "Add Supplier Part" -msgstr "" +msgstr "Ajouter la pièce du fournisseur" #: src/pages/part/CategoryDetail.tsx:93 -#: src/pages/stock/LocationDetail.tsx:101 -#: src/tables/settings/ErrorTable.tsx:36 +#: src/pages/stock/LocationDetail.tsx:95 +#: src/tables/settings/ErrorTable.tsx:63 +#: src/tables/settings/ErrorTable.tsx:108 msgid "Path" -msgstr "" +msgstr "Chemin d'accès" #: src/pages/part/CategoryDetail.tsx:109 msgid "Parent Category" -msgstr "" +msgstr "Catégorie parente" -#: src/pages/part/CategoryDetail.tsx:126 +#: src/pages/part/CategoryDetail.tsx:132 msgid "Subcategories" -msgstr "" - -#: src/pages/part/CategoryDetail.tsx:133 -#: src/pages/stock/LocationDetail.tsx:141 -#: src/tables/part/PartCategoryTable.tsx:73 -#: src/tables/stock/StockLocationTable.tsx:49 -msgid "Structural" -msgstr "" +msgstr "Sous-catégories" #: src/pages/part/CategoryDetail.tsx:139 +#: src/pages/stock/LocationDetail.tsx:135 +#: src/tables/part/PartCategoryTable.tsx:85 +#: src/tables/stock/StockLocationTable.tsx:49 +msgid "Structural" +msgstr "Structure" + +#: src/pages/part/CategoryDetail.tsx:145 msgid "Parent default location" -msgstr "" +msgstr "Emplacement par défaut du parent" -#: src/pages/part/CategoryDetail.tsx:146 +#: src/pages/part/CategoryDetail.tsx:152 msgid "Default location" -msgstr "" +msgstr "Emplacement par défaut" -#: src/pages/part/CategoryDetail.tsx:157 +#: src/pages/part/CategoryDetail.tsx:163 msgid "Top level part category" -msgstr "" +msgstr "Catégorie de pièce de niveau supérieur" -#: src/pages/part/CategoryDetail.tsx:167 -#: src/pages/part/CategoryDetail.tsx:221 -#: src/tables/part/PartCategoryTable.tsx:102 -msgid "Edit Part Category" -msgstr "" - -#: src/pages/part/CategoryDetail.tsx:180 -#: src/pages/stock/LocationDetail.tsx:233 -msgid "Delete items" -msgstr "" - -#: src/pages/part/CategoryDetail.tsx:188 +#: src/pages/part/CategoryDetail.tsx:173 #: src/pages/part/CategoryDetail.tsx:226 +#: src/tables/part/PartCategoryTable.tsx:118 +msgid "Edit Part Category" +msgstr "Modifier la catégorie" + +#: src/pages/part/CategoryDetail.tsx:186 +#: src/pages/stock/LocationDetail.tsx:227 +msgid "Delete items" +msgstr "Supprimer l’élément" + +#: src/pages/part/CategoryDetail.tsx:194 +#: src/pages/part/CategoryDetail.tsx:231 msgid "Delete Part Category" -msgstr "" - -#: src/pages/part/CategoryDetail.tsx:191 -msgid "Parts Action" -msgstr "" - -#: src/pages/part/CategoryDetail.tsx:192 -msgid "Action for parts in this category" -msgstr "" +msgstr "Supprimer la catégorie" #: src/pages/part/CategoryDetail.tsx:197 -msgid "Child Categories Action" -msgstr "" +msgid "Parts Action" +msgstr "Action sur les pièces" #: src/pages/part/CategoryDetail.tsx:198 +msgid "Action for parts in this category" +msgstr "Action pour les pièces de cette catégorie" + +#: src/pages/part/CategoryDetail.tsx:203 +msgid "Child Categories Action" +msgstr "Action sur les catégories enfants" + +#: src/pages/part/CategoryDetail.tsx:204 msgid "Action for child categories in this category" -msgstr "" +msgstr "Action pour les sous-catégories de cette catégorie" -#: src/pages/part/CategoryDetail.tsx:216 +#: src/pages/part/CategoryDetail.tsx:222 msgid "Category Actions" -msgstr "" +msgstr "Paramètres de Catégorie" -#: src/pages/part/CategoryDetail.tsx:238 +#: src/pages/part/CategoryDetail.tsx:243 msgid "Category Details" +msgstr "Détails de la catégorie" + +#: src/pages/part/PartAllocationPanel.tsx:23 +#: src/pages/stock/StockDetail.tsx:443 +#: src/tables/part/PartTable.tsx:99 +msgid "Build Order Allocations" msgstr "" -#: src/pages/part/PartDetail.tsx:163 +#: src/pages/part/PartAllocationPanel.tsx:40 +#: src/pages/stock/StockDetail.tsx:458 +#: src/tables/part/PartTable.tsx:108 +msgid "Sales Order Allocations" +msgstr "" + +#: src/pages/part/PartDetail.tsx:184 msgid "Variant of" -msgstr "" +msgstr "Variante de" -#: src/pages/part/PartDetail.tsx:170 +#: src/pages/part/PartDetail.tsx:191 msgid "Revision of" -msgstr "" +msgstr "Révision de" -#: src/pages/part/PartDetail.tsx:177 -#: src/tables/stock/StockItemTable.tsx:58 +#: src/pages/part/PartDetail.tsx:198 +#: src/tables/stock/StockItemTable.tsx:59 msgid "Revision" msgstr "Révision" -#: src/pages/part/PartDetail.tsx:184 +#: src/pages/part/PartDetail.tsx:205 #: src/tables/notifications/NotificationsTable.tsx:31 #: src/tables/part/PartCategoryTemplateTable.tsx:67 msgid "Category" msgstr "Catégorie" -#: src/pages/part/PartDetail.tsx:190 +#: src/pages/part/PartDetail.tsx:211 msgid "Default Location" msgstr "Emplacement par défaut" -#: src/pages/part/PartDetail.tsx:197 +#: src/pages/part/PartDetail.tsx:218 msgid "Category Default Location" -msgstr "" +msgstr "Emplacement par défaut de la catégorie" -#: src/pages/part/PartDetail.tsx:204 +#: src/pages/part/PartDetail.tsx:225 #: src/tables/purchasing/ManufacturerPartParameterTable.tsx:44 msgid "Units" msgstr "Unités" -#: src/pages/part/PartDetail.tsx:211 -#: src/tables/settings/PendingTasksTable.tsx:42 +#: src/pages/part/PartDetail.tsx:232 +#: src/tables/settings/PendingTasksTable.tsx:46 msgid "Keywords" msgstr "Mots-clés" -#: src/pages/part/PartDetail.tsx:218 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:186 -#: src/pages/sales/ReturnOrderDetail.tsx:165 -#: src/pages/sales/SalesOrderDetail.tsx:174 -msgid "Link" -msgstr "Lien" - -#: src/pages/part/PartDetail.tsx:236 +#: src/pages/part/PartDetail.tsx:257 #: src/tables/bom/BomTable.tsx:320 -#: src/tables/build/BuildLineTable.tsx:155 +#: src/tables/build/BuildLineTable.tsx:286 #: src/tables/part/PartTable.tsx:288 -#: src/tables/sales/SalesOrderLineItemTable.tsx:103 +#: src/tables/sales/SalesOrderLineItemTable.tsx:111 msgid "Available Stock" -msgstr "" +msgstr "Stock disponible" -#: src/pages/part/PartDetail.tsx:243 +#: src/pages/part/PartDetail.tsx:264 msgid "Variant Stock" msgstr "" -#: src/pages/part/PartDetail.tsx:251 +#: src/pages/part/PartDetail.tsx:272 msgid "Minimum Stock" msgstr "Stock Minimum" -#: src/pages/part/PartDetail.tsx:257 +#: src/pages/part/PartDetail.tsx:278 #: src/tables/bom/BomTable.tsx:237 -#: src/tables/build/BuildLineTable.tsx:117 -#: src/tables/sales/SalesOrderLineItemTable.tsx:141 +#: src/tables/build/BuildLineTable.tsx:248 +#: src/tables/sales/SalesOrderLineItemTable.tsx:149 msgid "On order" msgstr "Sur commande" -#: src/pages/part/PartDetail.tsx:266 +#: src/pages/part/PartDetail.tsx:285 +msgid "Required for Orders" +msgstr "Requis pour les commandes" + +#: src/pages/part/PartDetail.tsx:294 msgid "Allocated to Build Orders" msgstr "Alloué à l'ordre de construction" -#: src/pages/part/PartDetail.tsx:274 +#: src/pages/part/PartDetail.tsx:305 msgid "Allocated to Sales Orders" msgstr "Alloué aux ordres de ventes" -#: src/pages/part/PartDetail.tsx:281 -#: src/tables/bom/BomTable.tsx:261 -#: src/tables/bom/BomTable.tsx:293 -msgid "Can Build" -msgstr "Peut être construit" - -#: src/pages/part/PartDetail.tsx:288 -#: src/tables/bom/BomTable.tsx:245 -#: src/tables/part/PartTable.tsx:92 -msgid "Building" -msgstr "Construire" - -#: src/pages/part/PartDetail.tsx:302 -#: src/pages/part/PartDetail.tsx:873 -#: src/tables/part/ParametricPartTable.tsx:228 -#: src/tables/part/PartTable.tsx:184 -msgid "Locked" -msgstr "" - -#: src/pages/part/PartDetail.tsx:308 -msgid "Template Part" -msgstr "" - #: src/pages/part/PartDetail.tsx:310 #~ msgid "Edit part" #~ msgstr "Edit part" -#: src/pages/part/PartDetail.tsx:313 -#: src/tables/bom/BomTable.tsx:315 -msgid "Assembled Part" -msgstr "" +#: src/pages/part/PartDetail.tsx:315 +#: src/tables/bom/BomTable.tsx:261 +#: src/tables/bom/BomTable.tsx:293 +msgid "Can Build" +msgstr "Peut être construit" -#: src/pages/part/PartDetail.tsx:318 -msgid "Component Part" -msgstr "" +#: src/pages/part/PartDetail.tsx:322 +#: src/pages/part/PartDetail.tsx:905 +#: src/pages/stock/StockDetail.tsx:766 +#: src/tables/build/BuildOrderTestTable.tsx:220 +#: src/tables/stock/StockItemTable.tsx:334 +msgid "In Production" +msgstr "En Production" #: src/pages/part/PartDetail.tsx:322 #~ msgid "Duplicate part" #~ msgstr "Duplicate part" -#: src/pages/part/PartDetail.tsx:323 -#: src/tables/bom/BomTable.tsx:305 -msgid "Testable Part" -msgstr "" - #: src/pages/part/PartDetail.tsx:327 #~ msgid "Delete part" #~ msgstr "Delete part" -#: src/pages/part/PartDetail.tsx:329 +#: src/pages/part/PartDetail.tsx:336 +#: src/tables/part/ParametricPartTable.tsx:228 +#: src/tables/part/PartTable.tsx:184 +msgid "Locked" +msgstr "Verrouillé" + +#: src/pages/part/PartDetail.tsx:342 +msgid "Template Part" +msgstr "" + +#: src/pages/part/PartDetail.tsx:347 +#: src/tables/bom/BomTable.tsx:315 +msgid "Assembled Part" +msgstr "" + +#: src/pages/part/PartDetail.tsx:352 +msgid "Component Part" +msgstr "" + +#: src/pages/part/PartDetail.tsx:357 +#: src/tables/bom/BomTable.tsx:305 +msgid "Testable Part" +msgstr "" + +#: src/pages/part/PartDetail.tsx:363 #: src/tables/bom/BomTable.tsx:310 msgid "Trackable Part" msgstr "" -#: src/pages/part/PartDetail.tsx:334 +#: src/pages/part/PartDetail.tsx:368 msgid "Purchaseable Part" msgstr "" -#: src/pages/part/PartDetail.tsx:339 +#: src/pages/part/PartDetail.tsx:374 msgid "Saleable Part" msgstr "" -#: src/pages/part/PartDetail.tsx:344 +#: src/pages/part/PartDetail.tsx:379 msgid "Virtual Part" -msgstr "" +msgstr "Pièce virtuelle" -#: src/pages/part/PartDetail.tsx:352 -#: src/tables/ColumnRenderers.tsx:220 +#: src/pages/part/PartDetail.tsx:393 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:215 +#: src/pages/sales/ReturnOrderDetail.tsx:185 +#: src/pages/sales/SalesOrderDetail.tsx:197 +#: src/tables/ColumnRenderers.tsx:234 msgid "Creation Date" msgstr "Date de création" -#: src/pages/part/PartDetail.tsx:357 +#: src/pages/part/PartDetail.tsx:398 msgid "Created By" -msgstr "" +msgstr "Créé par" -#: src/pages/part/PartDetail.tsx:372 +#: src/pages/part/PartDetail.tsx:413 msgid "Default Supplier" msgstr "Fournisseur par Défaut" -#: src/pages/part/PartDetail.tsx:383 -#: src/pages/part/pricing/BomPricingPanel.tsx:79 +#: src/pages/part/PartDetail.tsx:424 +#: src/pages/part/pricing/BomPricingPanel.tsx:113 #: src/pages/part/pricing/VariantPricingPanel.tsx:95 #: src/tables/part/PartTable.tsx:161 msgid "Price Range" msgstr "Échelle des prix" -#: src/pages/part/PartDetail.tsx:423 -#: src/pages/stock/StockDetail.tsx:135 +#: src/pages/part/PartDetail.tsx:462 +msgid "Latest Serial Number" +msgstr "" + +#: src/pages/part/PartDetail.tsx:472 +#: src/pages/stock/StockDetail.tsx:151 msgid "Last Stocktake" msgstr "Dernier inventaire" -#: src/pages/part/PartDetail.tsx:462 +#: src/pages/part/PartDetail.tsx:511 msgid "Stocktake By" msgstr "" -#: src/pages/part/PartDetail.tsx:526 -msgid "Part Details" -msgstr "" - -#: src/pages/part/PartDetail.tsx:557 +#: src/pages/part/PartDetail.tsx:611 msgid "Variants" msgstr "Variants" -#: src/pages/part/PartDetail.tsx:564 -#: src/pages/stock/StockDetail.tsx:307 +#: src/pages/part/PartDetail.tsx:618 +#: src/pages/stock/StockDetail.tsx:430 msgid "Allocations" msgstr "Allocations" -#: src/pages/part/PartDetail.tsx:575 -#: src/pages/stock/StockDetail.tsx:318 -#: src/tables/part/PartTable.tsx:99 -msgid "Build Order Allocations" -msgstr "" - -#: src/pages/part/PartDetail.tsx:590 -#: src/pages/stock/StockDetail.tsx:333 -#: src/tables/part/PartTable.tsx:108 -msgid "Sales Order Allocations" -msgstr "" - -#: src/pages/part/PartDetail.tsx:607 +#: src/pages/part/PartDetail.tsx:625 msgid "Bill of Materials" -msgstr "" +msgstr "Liste des matériaux" -#: src/pages/part/PartDetail.tsx:623 +#: src/pages/part/PartDetail.tsx:643 msgid "Used In" -msgstr "" +msgstr "Utilisé pour" -#: src/pages/part/PartDetail.tsx:630 +#: src/pages/part/PartDetail.tsx:650 msgid "Part Pricing" msgstr "" -#: src/pages/part/PartDetail.tsx:636 +#: src/pages/part/PartDetail.tsx:656 #: src/pages/purchasing/PurchasingIndex.tsx:42 msgid "Manufacturers" msgstr "" -#: src/pages/part/PartDetail.tsx:676 +#: src/pages/part/PartDetail.tsx:722 msgid "Scheduling" -msgstr "" +msgstr "Planification" -#: src/pages/part/PartDetail.tsx:688 +#: src/pages/part/PartDetail.tsx:729 msgid "Test Templates" -msgstr "" +msgstr "Modèles de test" -#: src/pages/part/PartDetail.tsx:715 +#: src/pages/part/PartDetail.tsx:756 msgid "Related Parts" -msgstr "" +msgstr "Pièces associées" -#: src/pages/part/PartDetail.tsx:849 -#: src/pages/stock/StockDetail.tsx:156 -#: src/pages/stock/StockDetail.tsx:593 -#: src/tables/build/BuildLineTable.tsx:48 +#: src/pages/part/PartDetail.tsx:881 +#: src/pages/stock/StockDetail.tsx:172 +#: src/pages/stock/StockDetail.tsx:783 +#: src/tables/build/BuildLineTable.tsx:179 #: src/tables/part/PartTable.tsx:117 -#: src/tables/stock/StockItemTable.tsx:177 -#: src/tables/stock/StockItemTable.tsx:310 +#: src/tables/stock/StockItemTable.tsx:166 +#: src/tables/stock/StockItemTable.tsx:314 msgid "Available" msgstr "Disponible" -#: src/pages/part/PartDetail.tsx:855 +#: src/pages/part/PartDetail.tsx:887 msgid "No Stock" -msgstr "" +msgstr "Aucun stock" -#: src/pages/part/PartDetail.tsx:861 +#: src/pages/part/PartDetail.tsx:893 +#: src/tables/part/PartTestTemplateTable.tsx:106 +#: src/tables/stock/StockItemTestResultTable.tsx:383 +msgid "Required" +msgstr "Requis" + +#: src/pages/part/PartDetail.tsx:899 #: src/tables/bom/BomTable.tsx:325 #: src/tables/part/PartTable.tsx:86 msgid "On Order" -msgstr "" +msgstr "En Commande" -#: src/pages/part/PartDetail.tsx:867 -#: src/pages/stock/StockDetail.tsx:576 -#: src/tables/build/BuildOrderTestTable.tsx:219 -#: src/tables/stock/StockItemTable.tsx:330 -msgid "In Production" -msgstr "" - -#: src/pages/part/PartDetail.tsx:892 +#: src/pages/part/PartDetail.tsx:924 msgid "Edit Part" -msgstr "" +msgstr "Modifier la pièce" -#: src/pages/part/PartDetail.tsx:927 +#: src/pages/part/PartDetail.tsx:959 #: src/tables/part/PartTable.tsx:331 -#: src/tables/part/PartTable.tsx:342 +#: src/tables/part/PartTable.tsx:343 msgid "Add Part" -msgstr "" +msgstr "Ajouter Pièce" -#: src/pages/part/PartDetail.tsx:941 +#: src/pages/part/PartDetail.tsx:973 msgid "Delete Part" -msgstr "" +msgstr "Supprimer la pièce" -#: src/pages/part/PartDetail.tsx:950 +#: src/pages/part/PartDetail.tsx:982 msgid "Deleting this part cannot be reversed" -msgstr "" +msgstr "La suppression de cette pièce est irréversible" -#: src/pages/part/PartDetail.tsx:999 -#: src/pages/stock/LocationDetail.tsx:324 -#: src/tables/stock/StockItemTable.tsx:444 +#: src/pages/part/PartDetail.tsx:1021 +#: src/pages/stock/LocationDetail.tsx:310 +#: src/tables/stock/StockItemTable.tsx:449 msgid "Stock Actions" msgstr "" -#: src/pages/part/PartDetail.tsx:1007 +#: src/pages/part/PartDetail.tsx:1029 msgid "Count part stock" -msgstr "" +msgstr "Décompte du stock de pièces" -#: src/pages/part/PartDetail.tsx:1018 +#: src/pages/part/PartDetail.tsx:1040 msgid "Transfer part stock" -msgstr "" +msgstr "Transférer le stock de pièces" -#: src/pages/part/PartDetail.tsx:1027 +#: src/pages/part/PartDetail.tsx:1049 msgid "Part Actions" msgstr "" -#: src/pages/part/PartDetail.tsx:1087 +#: src/pages/part/PartDetail.tsx:1113 msgid "Select Part Revision" msgstr "" @@ -4862,113 +5621,214 @@ msgstr "" #~ msgid "Categories" #~ msgstr "Categories" -#: src/pages/part/PartPricingPanel.tsx:68 +#: src/pages/part/PartPricingPanel.tsx:72 msgid "No pricing data found for this part." msgstr "" -#: src/pages/part/PartPricingPanel.tsx:82 -#: src/pages/part/pricing/PricingOverviewPanel.tsx:190 +#: src/pages/part/PartPricingPanel.tsx:87 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:293 msgid "Pricing Overview" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:88 +#: src/pages/part/PartPricingPanel.tsx:93 msgid "Purchase History" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:102 -#: src/pages/part/pricing/PricingOverviewPanel.tsx:100 +#: src/pages/part/PartPricingPanel.tsx:107 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:174 msgid "Internal Pricing" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:120 -#: src/pages/part/pricing/PricingOverviewPanel.tsx:107 +#: src/pages/part/PartPricingPanel.tsx:125 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:181 msgid "BOM Pricing" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:127 -#: src/pages/part/pricing/PricingOverviewPanel.tsx:128 +#: src/pages/part/PartPricingPanel.tsx:132 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:202 msgid "Variant Pricing" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:139 -#: src/pages/part/pricing/PricingOverviewPanel.tsx:135 +#: src/pages/part/PartPricingPanel.tsx:144 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:209 msgid "Sale Pricing" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:146 -#: src/pages/part/pricing/PricingOverviewPanel.tsx:142 +#: src/pages/part/PartPricingPanel.tsx:151 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:216 msgid "Sale History" +msgstr "Historique des ventes" + +#: src/pages/part/PartSchedulingDetail.tsx:47 +#: src/pages/part/PartSchedulingDetail.tsx:299 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:156 +msgid "Maximum" +msgstr "Maximum" + +#: src/pages/part/PartSchedulingDetail.tsx:50 +#: src/pages/part/PartSchedulingDetail.tsx:289 +msgid "Scheduled" +msgstr "Planifié" + +#: src/pages/part/PartSchedulingDetail.tsx:53 +#: src/pages/part/PartSchedulingDetail.tsx:294 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:144 +msgid "Minimum" +msgstr "Minimum" + +#: src/pages/part/PartSchedulingDetail.tsx:68 +msgid "Order" +msgstr "Commande" + +#: src/pages/part/PartSchedulingDetail.tsx:92 +msgid "Quantity is speculative" +msgstr "La quantité est spéculative" + +#: src/pages/part/PartSchedulingDetail.tsx:101 +msgid "No date available for provided quantity" +msgstr "Aucune date disponible pour la quantité fournie" + +#: src/pages/part/PartSchedulingDetail.tsx:105 +msgid "Date is in the past" +msgstr "Date de péremption" + +#: src/pages/part/PartSchedulingDetail.tsx:112 +msgid "Scheduled Quantity" +msgstr "Quantité prévue" + +#: src/pages/part/PartSchedulingDetail.tsx:240 +msgid "No information available" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:58 -#: src/pages/part/pricing/BomPricingPanel.tsx:138 -#: src/tables/ColumnRenderers.tsx:262 +#: src/pages/part/PartSchedulingDetail.tsx:241 +msgid "There is no scheduling information available for the selected part" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:276 +msgid "Expected Quantity" +msgstr "Quantité attendue" + +#: src/pages/part/PartStocktakeDetail.tsx:63 +#: src/tables/FilterSelectDrawer.tsx:167 +#: src/tables/FilterSelectDrawer.tsx:174 +#: src/tables/build/BuildOrderTestTable.tsx:135 +#: src/tables/purchasing/ManufacturerPartParameterTable.tsx:38 +#: src/tables/stock/StockItemTestResultTable.tsx:192 +msgid "Value" +msgstr "Valeur" + +#: src/pages/part/PartStocktakeDetail.tsx:82 +msgid "Edit Stocktake Entry" +msgstr "" + +#: src/pages/part/PartStocktakeDetail.tsx:90 +msgid "Delete Stocktake Entry" +msgstr "" + +#: src/pages/part/PartStocktakeDetail.tsx:96 +#: src/tables/settings/StocktakeReportTable.tsx:69 +msgid "Generate Stocktake Report" +msgstr "" + +#: src/pages/part/PartStocktakeDetail.tsx:101 +#: src/tables/settings/StocktakeReportTable.tsx:71 +msgid "Stocktake report scheduled" +msgstr "" + +#: src/pages/part/PartStocktakeDetail.tsx:119 +#: src/pages/part/PartStocktakeDetail.tsx:235 +#: src/pages/stock/StockDetail.tsx:303 +#: src/tables/stock/StockItemTable.tsx:249 +msgid "Stock Value" +msgstr "" + +#: src/pages/part/PartStocktakeDetail.tsx:139 +#: src/tables/settings/StocktakeReportTable.tsx:77 +msgid "New Stocktake Report" +msgstr "" + +#: src/pages/part/PartStocktakeDetail.tsx:258 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:295 +msgid "Minimum Value" +msgstr "Valeur minimum" + +#: src/pages/part/PartStocktakeDetail.tsx:264 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:296 +msgid "Maximum Value" +msgstr "Valeur maximale" + +#: src/pages/part/pricing/BomPricingPanel.tsx:87 +#: src/pages/part/pricing/BomPricingPanel.tsx:177 +#: src/tables/ColumnRenderers.tsx:276 #: src/tables/bom/BomTable.tsx:185 #: src/tables/general/ExtraLineItemTable.tsx:64 -#: src/tables/purchasing/PurchaseOrderTable.tsx:112 -#: src/tables/sales/ReturnOrderTable.tsx:104 -#: src/tables/sales/SalesOrderLineItemTable.tsx:89 -#: src/tables/sales/SalesOrderTable.tsx:136 +#: src/tables/purchasing/PurchaseOrderTable.tsx:113 +#: src/tables/sales/ReturnOrderTable.tsx:127 +#: src/tables/sales/SalesOrderLineItemTable.tsx:97 +#: src/tables/sales/SalesOrderTable.tsx:149 msgid "Total Price" msgstr "Prix total" -#: src/pages/part/pricing/BomPricingPanel.tsx:78 -#: src/pages/part/pricing/BomPricingPanel.tsx:102 +#: src/pages/part/pricing/BomPricingPanel.tsx:112 +#: src/pages/part/pricing/BomPricingPanel.tsx:141 #: src/tables/bom/UsedInTable.tsx:49 +#: src/tables/build/BuildLineTable.tsx:296 #: src/tables/part/PartTable.tsx:202 msgid "Component" -msgstr "" - -#: src/pages/part/pricing/BomPricingPanel.tsx:81 -#: src/pages/part/pricing/VariantPricingPanel.tsx:37 -#: src/pages/part/pricing/VariantPricingPanel.tsx:97 -msgid "Minimum Price" -msgstr "" - -#: src/pages/part/pricing/BomPricingPanel.tsx:82 -#: src/pages/part/pricing/VariantPricingPanel.tsx:45 -#: src/pages/part/pricing/VariantPricingPanel.tsx:98 -msgid "Maximum Price" -msgstr "" +msgstr "Composant" #: src/pages/part/pricing/BomPricingPanel.tsx:112 #~ msgid "Minimum Total Price" #~ msgstr "Minimum Total Price" +#: src/pages/part/pricing/BomPricingPanel.tsx:115 +#: src/pages/part/pricing/VariantPricingPanel.tsx:37 +#: src/pages/part/pricing/VariantPricingPanel.tsx:97 +msgid "Minimum Price" +msgstr "Prix Minimum" + +#: src/pages/part/pricing/BomPricingPanel.tsx:116 +#: src/pages/part/pricing/VariantPricingPanel.tsx:45 +#: src/pages/part/pricing/VariantPricingPanel.tsx:98 +msgid "Maximum Price" +msgstr "Prix Maximum" + #: src/pages/part/pricing/BomPricingPanel.tsx:117 #~ msgid "Maximum Total Price" #~ msgstr "Maximum Total Price" -#: src/pages/part/pricing/BomPricingPanel.tsx:129 -#: src/pages/part/pricing/PriceBreakPanel.tsx:172 -#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:67 -#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:128 -#: src/pages/part/pricing/SupplierPricingPanel.tsx:62 +#: src/pages/part/pricing/BomPricingPanel.tsx:168 +#: src/pages/part/pricing/PriceBreakPanel.tsx:173 +#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:70 +#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:125 +#: src/pages/part/pricing/SupplierPricingPanel.tsx:66 +#: src/pages/stock/StockDetail.tsx:291 #: src/tables/bom/BomTable.tsx:176 #: src/tables/general/ExtraLineItemTable.tsx:56 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:223 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:225 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:92 +#: src/tables/stock/StockItemTable.tsx:239 msgid "Unit Price" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:154 +#: src/pages/part/pricing/BomPricingPanel.tsx:193 #: src/pages/part/pricing/VariantPricingPanel.tsx:53 -#: src/tables/purchasing/SupplierPartTable.tsx:148 +#: src/tables/purchasing/SupplierPartTable.tsx:150 msgid "Updated" -msgstr "" +msgstr "Mis à jour" -#: src/pages/part/pricing/BomPricingPanel.tsx:219 +#: src/pages/part/pricing/BomPricingPanel.tsx:258 msgid "Pie Chart" -msgstr "" +msgstr "Graphique en secteurs" -#: src/pages/part/pricing/BomPricingPanel.tsx:220 +#: src/pages/part/pricing/BomPricingPanel.tsx:259 msgid "Bar Chart" -msgstr "" +msgstr "Graphique en barres" #: src/pages/part/pricing/PriceBreakPanel.tsx:58 -#: src/pages/part/pricing/PriceBreakPanel.tsx:110 +#: src/pages/part/pricing/PriceBreakPanel.tsx:111 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:142 -#: src/tables/purchasing/SupplierPriceBreakTable.tsx:168 +#: src/tables/purchasing/SupplierPriceBreakTable.tsx:169 msgid "Add Price Break" msgstr "" @@ -4986,55 +5846,79 @@ msgstr "" msgid "Price Break" msgstr "" -#: src/pages/part/pricing/PriceBreakPanel.tsx:170 +#: src/pages/part/pricing/PriceBreakPanel.tsx:171 msgid "Price" +msgstr "Prix" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:68 +msgid "Refreshing pricing data" msgstr "" -#: src/pages/part/pricing/PricingOverviewPanel.tsx:51 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:88 +msgid "Pricing data updated" +msgstr "" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:95 +msgid "Failed to update pricing data" +msgstr "" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:104 +msgid "Edit Pricing" +msgstr "Modifier la tarification" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:125 msgid "Pricing Category" -msgstr "" +msgstr "Catégorie de tarif" -#: src/pages/part/pricing/PricingOverviewPanel.tsx:70 -msgid "Minimum" -msgstr "" - -#: src/pages/part/pricing/PricingOverviewPanel.tsx:82 -msgid "Maximum" -msgstr "" - -#: src/pages/part/pricing/PricingOverviewPanel.tsx:114 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:188 msgid "Purchase Pricing" -msgstr "" +msgstr "Tarif d'achat" -#: src/pages/part/pricing/PricingOverviewPanel.tsx:149 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:223 msgid "Override Pricing" msgstr "" -#: src/pages/part/pricing/PricingOverviewPanel.tsx:156 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:230 msgid "Overall Pricing" msgstr "" -#: src/pages/part/pricing/PricingOverviewPanel.tsx:175 -#: src/pages/stock/StockDetail.tsx:129 -#: src/tables/stock/StockItemTable.tsx:240 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:249 +#: src/pages/stock/StockDetail.tsx:145 +#: src/tables/stock/StockItemTable.tsx:275 msgid "Last Updated" +msgstr "Dernière mise à jour" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:253 +msgid "Pricing Not Set" +msgstr "Tarification non définie" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:254 +msgid "Pricing data has not been calculated for this part" msgstr "" -#: src/pages/part/pricing/PricingOverviewPanel.tsx:192 -msgid "Minimum Value" +#: src/pages/part/pricing/PricingOverviewPanel.tsx:258 +msgid "Pricing Actions" msgstr "" -#: src/pages/part/pricing/PricingOverviewPanel.tsx:193 -msgid "Maximum Value" -msgstr "" +#: src/pages/part/pricing/PricingOverviewPanel.tsx:261 +msgid "Refresh" +msgstr "Actualiser" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:262 +msgid "Refresh pricing data" +msgstr "Rafraîchir les données de tarification" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:277 +msgid "Edit pricing data" +msgstr "Modifier les données de tarification" #: src/pages/part/pricing/PricingPanel.tsx:24 msgid "No data available" -msgstr "" +msgstr "Aucune donnée disponible" #: src/pages/part/pricing/PricingPanel.tsx:65 msgid "No Data" -msgstr "" +msgstr "Aucune donnée" #: src/pages/part/pricing/PricingPanel.tsx:66 msgid "No pricing data available" @@ -5044,28 +5928,20 @@ msgstr "" msgid "Loading pricing data" msgstr "" -#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:40 -#: src/pages/part/pricing/SaleHistoryPanel.tsx:36 -#: src/tables/ColumnRenderers.tsx:201 -#: src/tables/build/BuildOrderTestTable.tsx:150 -#: src/tables/plugin/PluginListTable.tsx:139 -msgid "Date" -msgstr "" - #: src/pages/part/pricing/PurchaseHistoryPanel.tsx:47 msgid "Purchase Price" msgstr "" -#: src/pages/part/pricing/SaleHistoryPanel.tsx:22 -msgid "Sale Order" -msgstr "" +#: src/pages/part/pricing/SaleHistoryPanel.tsx:24 +#~ msgid "Sale Order" +#~ msgstr "Sale Order" -#: src/pages/part/pricing/SaleHistoryPanel.tsx:42 -#: src/pages/part/pricing/SaleHistoryPanel.tsx:92 +#: src/pages/part/pricing/SaleHistoryPanel.tsx:44 +#: src/pages/part/pricing/SaleHistoryPanel.tsx:87 msgid "Sale Price" msgstr "" -#: src/pages/part/pricing/SupplierPricingPanel.tsx:65 +#: src/pages/part/pricing/SupplierPricingPanel.tsx:69 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:83 msgid "Supplier Price" msgstr "" @@ -5075,23 +5951,23 @@ msgstr "" msgid "Variant Part" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:93 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:87 msgid "Edit Purchase Order" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:102 -#: src/tables/purchasing/PurchaseOrderTable.tsx:128 -#: src/tables/purchasing/PurchaseOrderTable.tsx:140 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:96 +#: src/tables/purchasing/PurchaseOrderTable.tsx:129 +#: src/tables/purchasing/PurchaseOrderTable.tsx:142 msgid "Add Purchase Order" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:127 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:121 msgid "Supplier Reference" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:158 -#: src/pages/sales/ReturnOrderDetail.tsx:137 -#: src/pages/sales/SalesOrderDetail.tsx:137 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:152 +#: src/pages/sales/ReturnOrderDetail.tsx:129 +#: src/pages/sales/SalesOrderDetail.tsx:132 msgid "Completed Line Items" msgstr "" @@ -5101,208 +5977,305 @@ msgstr "" #~ msgid "Order Currency," #~ msgstr "Order Currency," -#: src/pages/purchasing/PurchaseOrderDetail.tsx:165 -#: src/pages/sales/ReturnOrderDetail.tsx:144 -#: src/pages/sales/SalesOrderDetail.tsx:153 -msgid "Order Currency" -msgstr "" +#: src/pages/purchasing/PurchaseOrderDetail.tsx:161 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:231 +msgid "Destination" +msgstr "Destination" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:172 -#: src/pages/sales/ReturnOrderDetail.tsx:151 -#: src/pages/sales/SalesOrderDetail.tsx:160 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:167 +#: src/pages/sales/ReturnOrderDetail.tsx:136 +#: src/pages/sales/SalesOrderDetail.tsx:148 +msgid "Order Currency" +msgstr "Devise de la commande" + +#: src/pages/purchasing/PurchaseOrderDetail.tsx:173 +#: src/pages/sales/ReturnOrderDetail.tsx:143 +#: src/pages/sales/SalesOrderDetail.tsx:155 msgid "Total Cost" -msgstr "" +msgstr "Coût total" #: src/pages/purchasing/PurchaseOrderDetail.tsx:207 -#: src/pages/sales/ReturnOrderDetail.tsx:186 -#: src/pages/sales/SalesOrderDetail.tsx:195 -msgid "Created On" +#: src/pages/sales/ReturnOrderDetail.tsx:183 +#: src/pages/sales/SalesOrderDetail.tsx:191 +#~ msgid "Created On" +#~ msgstr "Created On" + +#: src/pages/purchasing/PurchaseOrderDetail.tsx:221 +#: src/pages/sales/ReturnOrderDetail.tsx:193 +#: src/pages/sales/SalesOrderDetail.tsx:204 +msgid "Issue Date" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:252 -#: src/pages/sales/ReturnOrderDetail.tsx:231 -#: src/pages/sales/SalesOrderDetail.tsx:266 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:237 +#: src/pages/sales/ReturnOrderDetail.tsx:209 +#: src/pages/sales/SalesOrderDetail.tsx:219 +#: src/tables/build/BuildOrderTable.tsx:98 +#: src/tables/part/PartPurchaseOrdersTable.tsx:105 +#: src/tables/sales/ReturnOrderTable.tsx:122 +msgid "Completion Date" +msgstr "" + +#: src/pages/purchasing/PurchaseOrderDetail.tsx:276 +#: src/pages/sales/ReturnOrderDetail.tsx:248 +#: src/pages/sales/SalesOrderDetail.tsx:288 msgid "Order Details" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:280 -#: src/pages/sales/ReturnOrderDetail.tsx:258 -#: src/pages/sales/SalesOrderDetail.tsx:297 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:304 +#: src/pages/sales/ReturnOrderDetail.tsx:276 +#: src/pages/sales/SalesOrderDetail.tsx:319 msgid "Extra Line Items" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:337 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:346 msgid "Issue Purchase Order" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:345 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:354 msgid "Cancel Purchase Order" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:353 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:362 msgid "Hold Purchase Order" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:361 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:370 msgid "Complete Purchase Order" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:427 -#: src/pages/sales/ReturnOrderDetail.tsx:428 -#: src/pages/sales/SalesOrderDetail.tsx:468 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:425 +#: src/pages/sales/ReturnOrderDetail.tsx:424 +#: src/pages/sales/SalesOrderDetail.tsx:464 msgid "Order Actions" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:101 -#: src/pages/sales/SalesOrderDetail.tsx:107 -#: src/tables/sales/SalesOrderTable.tsx:124 +#: src/pages/sales/ReturnOrderDetail.tsx:92 +#: src/pages/sales/SalesOrderDetail.tsx:101 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:109 +#: src/tables/sales/SalesOrderTable.tsx:137 msgid "Customer Reference" -msgstr "" +msgstr "Référence client" -#: src/pages/sales/ReturnOrderDetail.tsx:315 +#: src/pages/sales/ReturnOrderDetail.tsx:322 msgid "Edit Return Order" -msgstr "" +msgstr "Modifier l'ordre de retour" -#: src/pages/sales/ReturnOrderDetail.tsx:324 -#: src/tables/sales/ReturnOrderTable.tsx:119 -#: src/tables/sales/ReturnOrderTable.tsx:128 +#: src/pages/sales/ReturnOrderDetail.tsx:331 +#: src/tables/sales/ReturnOrderTable.tsx:142 +#: src/tables/sales/ReturnOrderTable.tsx:152 msgid "Add Return Order" -msgstr "" +msgstr "Ajouter un ordre de retour" -#: src/pages/sales/ReturnOrderDetail.tsx:336 +#: src/pages/sales/ReturnOrderDetail.tsx:343 msgid "Issue Return Order" -msgstr "" +msgstr "Émettre un ordre de retour" -#: src/pages/sales/ReturnOrderDetail.tsx:344 +#: src/pages/sales/ReturnOrderDetail.tsx:349 +#~ msgid "Order canceled" +#~ msgstr "Order canceled" + +#: src/pages/sales/ReturnOrderDetail.tsx:351 msgid "Cancel Return Order" -msgstr "" +msgstr "Annuler l'ordre de retour" -#: src/pages/sales/ReturnOrderDetail.tsx:347 -msgid "Order canceled" -msgstr "" - -#: src/pages/sales/ReturnOrderDetail.tsx:352 +#: src/pages/sales/ReturnOrderDetail.tsx:359 msgid "Hold Return Order" -msgstr "" +msgstr "Suspendre l'ordre de retour" -#: src/pages/sales/ReturnOrderDetail.tsx:360 +#: src/pages/sales/ReturnOrderDetail.tsx:367 msgid "Complete Return Order" msgstr "" #: src/pages/sales/SalesIndex.tsx:38 msgid "Customers" -msgstr "" +msgstr "Clients" -#: src/pages/sales/SalesOrderDetail.tsx:145 +#: src/pages/sales/SalesOrderDetail.tsx:140 msgid "Completed Shipments" -msgstr "" - -#: src/pages/sales/SalesOrderDetail.tsx:243 -msgid "Edit Sales Order" -msgstr "" - -#: src/pages/sales/SalesOrderDetail.tsx:252 -#: src/tables/sales/SalesOrderTable.tsx:84 -#: src/tables/sales/SalesOrderTable.tsx:96 -msgid "Add Sales Order" -msgstr "" +msgstr "Livraisons réalisées" #: src/pages/sales/SalesOrderDetail.tsx:256 #~ msgid "Pending Shipments" #~ msgstr "Pending Shipments" -#: src/pages/sales/SalesOrderDetail.tsx:313 -msgid "Shipments" +#: src/pages/sales/SalesOrderDetail.tsx:261 +msgid "Edit Sales Order" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:369 +#: src/pages/sales/SalesOrderDetail.tsx:274 +#: src/tables/sales/SalesOrderTable.tsx:96 +#: src/tables/sales/SalesOrderTable.tsx:109 +msgid "Add Sales Order" +msgstr "" + +#: src/pages/sales/SalesOrderDetail.tsx:335 +msgid "Shipments" +msgstr "Livraisons" + +#: src/pages/sales/SalesOrderDetail.tsx:376 msgid "Issue Sales Order" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:377 +#: src/pages/sales/SalesOrderDetail.tsx:384 msgid "Cancel Sales Order" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:385 +#: src/pages/sales/SalesOrderDetail.tsx:392 msgid "Hold Sales Order" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:393 +#: src/pages/sales/SalesOrderDetail.tsx:400 msgid "Complete Sales Order" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:432 +#: src/pages/sales/SalesOrderDetail.tsx:439 msgid "Ship Order" msgstr "" -#: src/pages/stock/LocationDetail.tsx:117 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:117 +#: src/tables/sales/SalesOrderShipmentTable.tsx:96 +msgid "Shipment Reference" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:124 +msgid "Allocated Items" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:133 +msgid "Tracking Number" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:141 +msgid "Invoice Number" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:149 +#: src/tables/ColumnRenderers.tsx:242 +#: src/tables/sales/SalesOrderAllocationTable.tsx:142 +#: src/tables/sales/SalesOrderShipmentTable.tsx:115 +msgid "Shipment Date" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:157 +#: src/tables/sales/SalesOrderShipmentTable.tsx:119 +msgid "Delivery Date" +msgstr "Date de Livraison" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:204 +msgid "Shipment Details" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:210 +msgid "Assigned Items" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:241 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:317 +#: src/tables/sales/SalesOrderShipmentTable.tsx:75 +msgid "Edit Shipment" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:248 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:322 +#: src/tables/sales/SalesOrderShipmentTable.tsx:67 +msgid "Cancel Shipment" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:261 +#: src/tables/sales/SalesOrderShipmentTable.tsx:83 +#: src/tables/sales/SalesOrderShipmentTable.tsx:151 +msgid "Complete Shipment" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:276 +#: src/tables/part/PartPurchaseOrdersTable.tsx:121 +msgid "Pending" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:277 +#: src/tables/sales/SalesOrderAllocationTable.tsx:148 +#: src/tables/sales/SalesOrderShipmentTable.tsx:108 +#: src/tables/sales/SalesOrderShipmentTable.tsx:197 +msgid "Shipped" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:279 +#: src/tables/sales/SalesOrderShipmentTable.tsx:202 +msgid "Delivered" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:293 +msgid "Send Shipment" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:312 +msgid "Shipment Actions" +msgstr "" + +#: src/pages/stock/LocationDetail.tsx:111 msgid "Parent Location" -msgstr "" +msgstr "Emplacement parent" -#: src/pages/stock/LocationDetail.tsx:135 +#: src/pages/stock/LocationDetail.tsx:129 msgid "Sublocations" -msgstr "" +msgstr "Sous-emplacements" -#: src/pages/stock/LocationDetail.tsx:147 +#: src/pages/stock/LocationDetail.tsx:141 #: src/tables/stock/StockLocationTable.tsx:54 msgid "External" -msgstr "" +msgstr "Externe" -#: src/pages/stock/LocationDetail.tsx:153 +#: src/pages/stock/LocationDetail.tsx:147 #: src/tables/stock/StockLocationTable.tsx:63 msgid "Location Type" -msgstr "" +msgstr "Types d'emplacement" -#: src/pages/stock/LocationDetail.tsx:164 +#: src/pages/stock/LocationDetail.tsx:158 msgid "Top level stock location" -msgstr "" +msgstr "Emplacement de stock de premier niveau" -#: src/pages/stock/LocationDetail.tsx:175 +#: src/pages/stock/LocationDetail.tsx:169 msgid "Location Details" -msgstr "" +msgstr "Détails de l’emplacement" -#: src/pages/stock/LocationDetail.tsx:201 +#: src/pages/stock/LocationDetail.tsx:195 msgid "Default Parts" -msgstr "" +msgstr "Pièces par défaut" -#: src/pages/stock/LocationDetail.tsx:220 -#: src/pages/stock/LocationDetail.tsx:351 +#: src/pages/stock/LocationDetail.tsx:214 +#: src/pages/stock/LocationDetail.tsx:336 #: src/tables/stock/StockLocationTable.tsx:123 msgid "Edit Stock Location" -msgstr "" +msgstr "Modifier l'emplacement du stock" -#: src/pages/stock/LocationDetail.tsx:241 -#: src/pages/stock/LocationDetail.tsx:356 +#: src/pages/stock/LocationDetail.tsx:235 +#: src/pages/stock/LocationDetail.tsx:341 msgid "Delete Stock Location" -msgstr "" +msgstr "Supprimer l'emplacement du stock" + +#: src/pages/stock/LocationDetail.tsx:238 +msgid "Items Action" +msgstr "Action sur les éléments" + +#: src/pages/stock/LocationDetail.tsx:239 +msgid "Action for stock items in this location" +msgstr "Action pour les articles en stock à cet emplacement" #: src/pages/stock/LocationDetail.tsx:244 -msgid "Items Action" -msgstr "" +msgid "Child Locations Action" +msgstr "Action sur les emplacements enfants" #: src/pages/stock/LocationDetail.tsx:245 -msgid "Action for stock items in this location" -msgstr "" - -#: src/pages/stock/LocationDetail.tsx:250 -msgid "Child Locations Action" -msgstr "" - -#: src/pages/stock/LocationDetail.tsx:251 msgid "Action for child locations in this location" -msgstr "" +msgstr "Action pour les emplacements enfants à cet emplacement" -#: src/pages/stock/LocationDetail.tsx:346 +#: src/pages/stock/LocationDetail.tsx:332 msgid "Location Actions" -msgstr "" +msgstr "Actions de l'emplacement" -#: src/pages/stock/StockDetail.tsx:108 +#: src/pages/stock/StockDetail.tsx:116 msgid "Base Part" -msgstr "" - -#: src/pages/stock/StockDetail.tsx:115 -msgid "Stock Status" -msgstr "" +msgstr "Pièce de base" #: src/pages/stock/StockDetail.tsx:155 #~ msgid "Link custom barcode to stock item" @@ -5312,112 +6285,178 @@ msgstr "" #~ msgid "Unlink custom barcode from stock item" #~ msgstr "Unlink custom barcode from stock item" -#: src/pages/stock/StockDetail.tsx:188 -msgid "Installed In" -msgstr "" - -#: src/pages/stock/StockDetail.tsx:204 -msgid "Consumed By" -msgstr "" +#: src/pages/stock/StockDetail.tsx:178 +msgid "Allocated to Orders" +msgstr "Alloué aux commandes" #: src/pages/stock/StockDetail.tsx:205 #~ msgid "Edit stock item" #~ msgstr "Edit stock item" -#: src/pages/stock/StockDetail.tsx:213 -#: src/tables/build/BuildAllocatedStockTable.tsx:64 -#: src/tables/stock/StockTrackingTable.tsx:96 -msgid "Build Order" -msgstr "" +#: src/pages/stock/StockDetail.tsx:209 +msgid "Installed In" +msgstr "Installé dans" #: src/pages/stock/StockDetail.tsx:217 #~ msgid "Delete stock item" #~ msgstr "Delete stock item" -#: src/pages/stock/StockDetail.tsx:291 +#: src/pages/stock/StockDetail.tsx:226 +msgid "Parent Item" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:230 +msgid "Parent stock item" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:236 +msgid "Consumed By" +msgstr "Consommé par" + +#: src/pages/stock/StockDetail.tsx:245 +#: src/tables/build/BuildAllocatedStockTable.tsx:77 +#: src/tables/stock/StockTrackingTable.tsx:100 +msgid "Build Order" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:283 +#: src/tables/stock/StockItemTable.tsx:270 +msgid "Expiry Date" +msgstr "Date d'expiration" + +#: src/pages/stock/StockDetail.tsx:414 msgid "Stock Details" -msgstr "" +msgstr "Détails du stock" -#: src/pages/stock/StockDetail.tsx:297 +#: src/pages/stock/StockDetail.tsx:420 msgid "Stock Tracking" -msgstr "" - -#: src/pages/stock/StockDetail.tsx:350 -msgid "Test Data" -msgstr "" - -#: src/pages/stock/StockDetail.tsx:364 -msgid "Installed Items" -msgstr "" - -#: src/pages/stock/StockDetail.tsx:371 -msgid "Child Items" -msgstr "" - -#: src/pages/stock/StockDetail.tsx:425 -msgid "Edit Stock Item" -msgstr "" +msgstr "Suivi du stock" #: src/pages/stock/StockDetail.tsx:433 #~ msgid "Duplicate stock item" #~ msgstr "Duplicate stock item" -#: src/pages/stock/StockDetail.tsx:452 -msgid "Delete Stock Item" +#: src/pages/stock/StockDetail.tsx:475 +msgid "Test Data" +msgstr "Données de test" + +#: src/pages/stock/StockDetail.tsx:489 +msgid "Installed Items" msgstr "" -#: src/pages/stock/StockDetail.tsx:504 +#: src/pages/stock/StockDetail.tsx:496 +msgid "Child Items" +msgstr "Éléments enfants" + +#: src/pages/stock/StockDetail.tsx:545 +msgid "Edit Stock Item" +msgstr "Modifier l'élément du stock" + +#: src/pages/stock/StockDetail.tsx:572 +msgid "Delete Stock Item" +msgstr "Supprimer l'élément du stock" + +#: src/pages/stock/StockDetail.tsx:604 +msgid "Serialize Stock Item" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:617 +msgid "Stock item serialized" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:623 +msgid "Return Stock Item" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:626 +msgid "Return this item into stock. This will remove the customer assignment." +msgstr "" + +#: src/pages/stock/StockDetail.tsx:636 +msgid "Item returned to stock" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:666 msgid "Stock Operations" msgstr "" -#: src/pages/stock/StockDetail.tsx:509 +#: src/pages/stock/StockDetail.tsx:671 msgid "Count stock" -msgstr "" +msgstr "Compter le stock" -#: src/pages/stock/StockDetail.tsx:519 -#: src/tables/stock/StockItemTable.tsx:449 -msgid "Add stock" -msgstr "" +#: src/pages/stock/StockDetail.tsx:671 +#: src/tables/stock/StockItemTable.tsx:452 +#~ msgid "Add stock" +#~ msgstr "Add stock" -#: src/pages/stock/StockDetail.tsx:527 -#: src/tables/stock/StockItemTable.tsx:458 -msgid "Remove stock" -msgstr "" +#: src/pages/stock/StockDetail.tsx:680 +#: src/tables/stock/StockItemTable.tsx:461 +#~ msgid "Remove stock" +#~ msgstr "Remove stock" -#: src/pages/stock/StockDetail.tsx:534 +#: src/pages/stock/StockDetail.tsx:698 +#: src/tables/stock/StockItemTable.tsx:481 +#~ msgid "Transfer stock" +#~ msgstr "Transfer stock" + +#: src/pages/stock/StockDetail.tsx:699 +msgid "Serialize" +msgstr "Sérialiser" + +#: src/pages/stock/StockDetail.tsx:700 +msgid "Serialize stock" +msgstr "Sérialiser le stock" + +#: src/pages/stock/StockDetail.tsx:711 msgid "Transfer" -msgstr "" +msgstr "Transférer" -#: src/pages/stock/StockDetail.tsx:535 -#: src/tables/stock/StockItemTable.tsx:478 -msgid "Transfer stock" -msgstr "" +#: src/pages/stock/StockDetail.tsx:722 +msgid "Return" +msgstr "Retour" -#: src/pages/stock/StockDetail.tsx:546 +#: src/pages/stock/StockDetail.tsx:723 +msgid "Return from customer" +msgstr "Retour du client" + +#: src/pages/stock/StockDetail.tsx:738 msgid "Stock Item Actions" +msgstr "Actions de l'article de stock" + +#: src/pages/stock/StockDetail.tsx:808 +msgid "Stale" msgstr "" -#: src/tables/ColumnRenderers.tsx:30 +#: src/pages/stock/StockDetail.tsx:814 +msgid "Expired" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:820 +msgid "Unavailable" +msgstr "" + +#: src/tables/ColumnRenderers.tsx:36 msgid "Part is not active" msgstr "La pièce n'est pas active" -#: src/tables/ColumnRenderers.tsx:35 -msgid "Part is locked" +#: src/tables/ColumnRenderers.tsx:41 +#: src/tables/bom/BomTable.tsx:542 +#: src/tables/part/PartParameterTable.tsx:193 +#: src/tables/part/PartTestTemplateTable.tsx:253 +msgid "Part is Locked" msgstr "" -#: src/tables/ColumnRenderers.tsx:57 +#: src/tables/ColumnRenderers.tsx:41 +#~ msgid "Part is locked" +#~ msgstr "Part is locked" + +#: src/tables/ColumnRenderers.tsx:46 +msgid "You are subscribed to notifications for this part" +msgstr "" + +#: src/tables/ColumnRenderers.tsx:68 msgid "No location set" -msgstr "" - -#: src/tables/ColumnRenderers.tsx:228 -#: src/tables/sales/SalesOrderShipmentTable.tsx:79 -msgid "Shipment Date" -msgstr "" - -#: src/tables/ColumnRenderers.tsx:248 -#: src/tables/settings/CurrencyTable.tsx:23 -msgid "Currency" -msgstr "Devise" +msgstr "Aucun emplacement défini" #: src/tables/ColumnSelect.tsx:16 #: src/tables/ColumnSelect.tsx:23 @@ -5442,7 +6481,7 @@ msgstr "TSV" #: src/tables/DownloadAction.tsx:23 msgid "Excel (.xlsx)" -msgstr "" +msgstr "Excel (.xlsx)" #: src/tables/DownloadAction.tsx:24 #~ msgid "Excel (.xls)" @@ -5450,93 +6489,118 @@ msgstr "" #: src/tables/DownloadAction.tsx:36 msgid "Download Data" -msgstr "" +msgstr "Télécharger les données" -#: src/tables/Filter.tsx:89 -#: src/tables/build/BuildOrderTable.tsx:135 +#: src/tables/Filter.tsx:101 msgid "Assigned to me" msgstr "Assigné à moi" -#: src/tables/Filter.tsx:90 -#: src/tables/build/BuildOrderTable.tsx:136 +#: src/tables/Filter.tsx:102 msgid "Show orders assigned to me" msgstr "Monter mes commandes" -#: src/tables/Filter.tsx:97 +#: src/tables/Filter.tsx:106 +#~ msgid "Show overdue orders" +#~ msgstr "Show overdue orders" + +#: src/tables/Filter.tsx:109 +#: src/tables/build/BuildOrderTable.tsx:120 +#: src/tables/sales/SalesOrderAllocationTable.tsx:59 msgid "Outstanding" msgstr "Remarquable" -#: src/tables/Filter.tsx:98 -msgid "Show outstanding orders" -msgstr "Afficher les commandes en cours" +#: src/tables/Filter.tsx:110 +msgid "Show outstanding items" +msgstr "" -#: src/tables/Filter.tsx:105 -#: src/tables/build/BuildOrderTable.tsx:128 +#: src/tables/Filter.tsx:117 msgid "Overdue" msgstr "En retard" -#: src/tables/Filter.tsx:106 -msgid "Show overdue orders" -msgstr "Afficher les commandes en retard" +#: src/tables/Filter.tsx:118 +msgid "Show overdue items" +msgstr "" -#: src/tables/FilterSelectDrawer.tsx:51 +#: src/tables/Filter.tsx:125 +msgid "Minimum Date" +msgstr "" + +#: src/tables/Filter.tsx:126 +msgid "Show items after this date" +msgstr "" + +#: src/tables/Filter.tsx:134 +msgid "Maximum Date" +msgstr "" + +#: src/tables/Filter.tsx:135 +msgid "Show items before this date" +msgstr "" + +#: src/tables/Filter.tsx:144 +msgid "Has Project Code" +msgstr "Possède un code projet" + +#: src/tables/Filter.tsx:145 +msgid "Show orders with an assigned project code" +msgstr "" + +#: src/tables/FilterSelectDrawer.tsx:55 msgid "Remove filter" msgstr "Supprimer le filtre" -#: src/tables/FilterSelectDrawer.tsx:130 +#: src/tables/FilterSelectDrawer.tsx:159 msgid "Select filter" msgstr "Sélection du filtre" -#: src/tables/FilterSelectDrawer.tsx:131 +#: src/tables/FilterSelectDrawer.tsx:160 msgid "Filter" msgstr "Filtrer" -#: src/tables/FilterSelectDrawer.tsx:138 -#: src/tables/build/BuildOrderTestTable.tsx:134 -#: src/tables/purchasing/ManufacturerPartParameterTable.tsx:38 -#: src/tables/stock/StockItemTestResultTable.tsx:186 -msgid "Value" -msgstr "Valeur" +#: src/tables/FilterSelectDrawer.tsx:168 +msgid "Select date value" +msgstr "" -#: src/tables/FilterSelectDrawer.tsx:140 +#: src/tables/FilterSelectDrawer.tsx:176 msgid "Select filter value" msgstr "Sélection de la valeur du filtre" -#: src/tables/FilterSelectDrawer.tsx:183 +#: src/tables/FilterSelectDrawer.tsx:219 +#: src/tables/InvenTreeTableHeader.tsx:214 msgid "Table Filters" msgstr "Filtres des tables" -#: src/tables/FilterSelectDrawer.tsx:215 +#: src/tables/FilterSelectDrawer.tsx:251 msgid "Add Filter" msgstr "Ajouter un filtre" -#: src/tables/FilterSelectDrawer.tsx:224 +#: src/tables/FilterSelectDrawer.tsx:260 msgid "Clear Filters" msgstr "Effacer filtres" -#: src/tables/InvenTreeTable.tsx:123 -#: src/tables/InvenTreeTable.tsx:431 -#: src/tables/InvenTreeTable.tsx:455 +#: src/tables/InvenTreeTable.tsx:96 +#: src/tables/InvenTreeTable.tsx:417 +#: src/tables/InvenTreeTable.tsx:441 msgid "No records found" msgstr "Pas d'enregistrement trouvé" -#: src/tables/InvenTreeTable.tsx:466 +#: src/tables/InvenTreeTable.tsx:452 msgid "Server returned incorrect data type" msgstr "Le serveur à retourner un type de donnée incorrect" -#: src/tables/InvenTreeTable.tsx:474 +#: src/tables/InvenTreeTable.tsx:460 msgid "Bad request" msgstr "Requête invalide" -#: src/tables/InvenTreeTable.tsx:477 +#: src/tables/InvenTreeTable.tsx:463 msgid "Unauthorized" msgstr "Non autorisé" -#: src/tables/InvenTreeTable.tsx:480 +#: src/tables/InvenTreeTable.tsx:466 msgid "Forbidden" msgstr "Accès interdit" -#: src/tables/InvenTreeTable.tsx:483 +#: src/tables/InvenTreeTable.tsx:469 msgid "Not found" msgstr "Elément non trouvé" @@ -5544,18 +6608,6 @@ msgstr "Elément non trouvé" #~ msgid "Are you sure you want to delete the selected records?" #~ msgstr "Are you sure you want to delete the selected records?" -#: src/tables/InvenTreeTable.tsx:525 -msgid "Delete Selected Items" -msgstr "" - -#: src/tables/InvenTreeTable.tsx:529 -msgid "Are you sure you want to delete the selected items?" -msgstr "" - -#: src/tables/InvenTreeTable.tsx:531 -msgid "This action cannot be undone!" -msgstr "Cette action ne peut pas être annulée !" - #: src/tables/InvenTreeTable.tsx:535 #~ msgid "Deleted records" #~ msgstr "Deleted records" @@ -5568,31 +6620,56 @@ msgstr "Cette action ne peut pas être annulée !" #~ msgid "Failed to delete records" #~ msgstr "Failed to delete records" +#: src/tables/InvenTreeTable.tsx:552 +#~ msgid "This action cannot be undone!" +#~ msgstr "This action cannot be undone!" + #: src/tables/InvenTreeTable.tsx:594 #: src/tables/InvenTreeTable.tsx:595 #~ msgid "Print actions" #~ msgstr "Print actions" -#: src/tables/InvenTreeTable.tsx:618 -#: src/tables/InvenTreeTable.tsx:619 -msgid "Barcode actions" -msgstr "Actions de code-barres" +#: src/tables/InvenTreeTable.tsx:655 +#: src/tables/InvenTreeTable.tsx:656 +#~ msgid "Barcode actions" +#~ msgstr "Barcode actions" -#: src/tables/InvenTreeTable.tsx:628 +#: src/tables/InvenTreeTable.tsx:712 +#~ msgid "Table filters" +#~ msgstr "Table filters" + +#: src/tables/InvenTreeTable.tsx:725 +#~ msgid "Clear custom query filters" +#~ msgstr "Clear custom query filters" + +#: src/tables/InvenTreeTableHeader.tsx:98 +msgid "Delete Selected Items" +msgstr "Supprimer les éléments sélectionnés" + +#: src/tables/InvenTreeTableHeader.tsx:102 +msgid "Are you sure you want to delete the selected items?" +msgstr "Êtes-vous sûr de vouloir supprimer les éléments sélectionnés ?" + +#: src/tables/InvenTreeTableHeader.tsx:104 +#: src/tables/plugin/PluginListTable.tsx:305 +msgid "This action cannot be undone" +msgstr "" + +#: src/tables/InvenTreeTableHeader.tsx:142 +msgid "Custom table filters are active" +msgstr "" + +#: src/tables/InvenTreeTableHeader.tsx:169 msgid "Delete selected records" msgstr "Supprimer les enregistrements sélectionnés" -#: src/tables/InvenTreeTable.tsx:649 +#: src/tables/InvenTreeTableHeader.tsx:188 msgid "Refresh data" msgstr "Actualiser les données" -#: src/tables/InvenTreeTable.tsx:675 -msgid "Table filters" -msgstr "Filtres de tableau" - #: src/tables/TableHoverCard.tsx:35 -msgid "item-{idx}" -msgstr "" +#~ msgid "item-{idx}" +#~ msgstr "item-{idx}" #: src/tables/UploadAction.tsx:7 #~ msgid "Upload Data" @@ -5607,44 +6684,49 @@ msgid "Part Information" msgstr "Information de pièce" #: src/tables/bom/BomTable.tsx:212 -#: src/tables/build/BuildLineTable.tsx:126 +#: src/tables/build/BuildLineTable.tsx:257 #: src/tables/part/PartTable.tsx:125 msgid "External stock" -msgstr "" +msgstr "Stockage externe" #: src/tables/bom/BomTable.tsx:220 -#: src/tables/build/BuildLineTable.tsx:89 +#: src/tables/build/BuildLineTable.tsx:220 msgid "Includes substitute stock" msgstr "Comprend un stock de remplacement" #: src/tables/bom/BomTable.tsx:229 -#: src/tables/build/BuildLineTable.tsx:99 -#: src/tables/sales/SalesOrderLineItemTable.tsx:127 +#: src/tables/build/BuildLineTable.tsx:230 +#: src/tables/sales/SalesOrderLineItemTable.tsx:135 msgid "Includes variant stock" msgstr "Inclut le stock de variantes" +#: src/tables/bom/BomTable.tsx:245 +#: src/tables/part/PartTable.tsx:92 +msgid "Building" +msgstr "Construire" + #: src/tables/bom/BomTable.tsx:254 #: src/tables/part/PartTable.tsx:153 -#: src/tables/sales/SalesOrderLineItemTable.tsx:150 -#: src/tables/stock/StockItemTable.tsx:216 +#: src/tables/sales/SalesOrderLineItemTable.tsx:158 +#: src/tables/stock/StockItemTable.tsx:206 msgid "Stock Information" msgstr "Information de stock" #: src/tables/bom/BomTable.tsx:285 -#: src/tables/build/BuildLineTable.tsx:248 +#: src/tables/build/BuildLineTable.tsx:409 msgid "Consumable item" msgstr "Article consommable" #: src/tables/bom/BomTable.tsx:288 msgid "No available stock" -msgstr "" +msgstr "Pas de stock disponible" #: src/tables/bom/BomTable.tsx:301 #~ msgid "Create BOM Item" #~ msgstr "Create BOM Item" #: src/tables/bom/BomTable.tsx:306 -#: src/tables/build/BuildLineTable.tsx:69 +#: src/tables/build/BuildLineTable.tsx:200 msgid "Show testable items" msgstr "" @@ -5657,11 +6739,12 @@ msgid "Show trackable items" msgstr "" #: src/tables/bom/BomTable.tsx:316 -#: src/tables/build/BuildLineTable.tsx:64 +#: src/tables/build/BuildLineTable.tsx:195 msgid "Show assembled items" -msgstr "" +msgstr "Afficher les articles assemblés" #: src/tables/bom/BomTable.tsx:321 +#: src/tables/build/BuildLineTable.tsx:180 msgid "Show items with available stock" msgstr "" @@ -5671,7 +6754,7 @@ msgstr "" #: src/tables/bom/BomTable.tsx:330 msgid "Validated" -msgstr "" +msgstr "Validée" #: src/tables/bom/BomTable.tsx:331 msgid "Show validated items" @@ -5705,7 +6788,7 @@ msgstr "" #: src/tables/bom/BomTable.tsx:345 #: src/tables/bom/UsedInTable.tsx:79 -#: src/tables/build/BuildLineTable.tsx:58 +#: src/tables/build/BuildLineTable.tsx:189 msgid "Optional" msgstr "Optionnel" @@ -5723,7 +6806,7 @@ msgstr "" #~ msgstr "Bom item deleted" #: src/tables/bom/BomTable.tsx:350 -#: src/tables/build/BuildLineTable.tsx:53 +#: src/tables/build/BuildLineTable.tsx:184 msgid "Consumable" msgstr "Consommable" @@ -5742,19 +6825,19 @@ msgstr "" #: src/tables/bom/BomTable.tsx:355 #: src/tables/part/PartTable.tsx:282 msgid "Has Pricing" -msgstr "" +msgstr "Possède un Tarif" #: src/tables/bom/BomTable.tsx:356 msgid "Show items with pricing" msgstr "" #: src/tables/bom/BomTable.tsx:378 -#: src/tables/bom/BomTable.tsx:511 +#: src/tables/bom/BomTable.tsx:512 msgid "Import BOM Data" msgstr "" #: src/tables/bom/BomTable.tsx:388 -#: src/tables/bom/BomTable.tsx:523 +#: src/tables/bom/BomTable.tsx:526 msgid "Add BOM Item" msgstr "" @@ -5780,7 +6863,7 @@ msgstr "" #: src/tables/bom/BomTable.tsx:423 #: src/tables/bom/BomTable.tsx:426 -#: src/tables/bom/BomTable.tsx:517 +#: src/tables/bom/BomTable.tsx:519 msgid "Validate BOM" msgstr "" @@ -5812,21 +6895,15 @@ msgstr "" msgid "Edit Substitutes" msgstr "" -#: src/tables/bom/BomTable.tsx:539 -#: src/tables/part/PartParameterTable.tsx:193 -#: src/tables/part/PartTestTemplateTable.tsx:252 -msgid "Part is Locked" -msgstr "" - -#: src/tables/bom/BomTable.tsx:544 +#: src/tables/bom/BomTable.tsx:547 msgid "Bill of materials cannot be edited, as the part is locked" msgstr "" #: src/tables/bom/UsedInTable.tsx:33 -#: src/tables/build/BuildLineTable.tsx:63 +#: src/tables/build/BuildLineTable.tsx:194 #: src/tables/part/ParametricPartTable.tsx:233 #: src/tables/part/PartTable.tsx:190 -#: src/tables/stock/StockItemTable.tsx:300 +#: src/tables/stock/StockItemTable.tsx:304 msgid "Assembly" msgstr "" @@ -5844,485 +6921,549 @@ msgstr "" msgid "Show trackable assemblies" msgstr "" -#: src/tables/build/BuildAllocatedStockTable.tsx:54 +#: src/tables/build/BuildAllocatedStockTable.tsx:56 msgid "Allocated to Output" msgstr "" -#: src/tables/build/BuildAllocatedStockTable.tsx:55 +#: src/tables/build/BuildAllocatedStockTable.tsx:57 msgid "Show items allocated to a build output" msgstr "" -#: src/tables/build/BuildAllocatedStockTable.tsx:76 -#: src/tables/part/PartPurchaseOrdersTable.tsx:125 -#: src/tables/sales/SalesOrderAllocationTable.tsx:62 +#: src/tables/build/BuildAllocatedStockTable.tsx:65 +#: src/tables/build/BuildOrderTable.tsx:159 +#: src/tables/part/PartParameterTable.tsx:212 +#: src/tables/part/PartPurchaseOrdersTable.tsx:138 +#: src/tables/sales/ReturnOrderTable.tsx:84 +#: src/tables/sales/SalesOrderAllocationTable.tsx:68 +#: src/tables/sales/SalesOrderTable.tsx:84 +#: src/tables/stock/StockItemTable.tsx:339 +msgid "Include Variants" +msgstr "" + +#: src/tables/build/BuildAllocatedStockTable.tsx:66 +#: src/tables/build/BuildOrderTable.tsx:160 +#: src/tables/part/PartPurchaseOrdersTable.tsx:139 +#: src/tables/sales/ReturnOrderTable.tsx:85 +#: src/tables/sales/SalesOrderAllocationTable.tsx:69 +#: src/tables/sales/SalesOrderTable.tsx:85 +msgid "Include orders for part variants" +msgstr "" + +#: src/tables/build/BuildAllocatedStockTable.tsx:89 +#: src/tables/part/PartPurchaseOrdersTable.tsx:131 +#: src/tables/sales/SalesOrderAllocationTable.tsx:93 msgid "Order Status" msgstr "" -#: src/tables/build/BuildAllocatedStockTable.tsx:96 -#: src/tables/sales/SalesOrderAllocationTable.tsx:75 +#: src/tables/build/BuildAllocatedStockTable.tsx:117 +#: src/tables/sales/SalesOrderAllocationTable.tsx:126 msgid "Allocated Quantity" -msgstr "" +msgstr "Quantité Allouée" -#: src/tables/build/BuildAllocatedStockTable.tsx:116 -#: src/tables/sales/SalesOrderAllocationTable.tsx:94 +#: src/tables/build/BuildAllocatedStockTable.tsx:137 +#: src/tables/sales/SalesOrderAllocationTable.tsx:120 msgid "Available Quantity" +msgstr "Quantités disponibles" + +#: src/tables/build/BuildAllocatedStockTable.tsx:164 +#: src/tables/build/BuildLineTable.tsx:513 +msgid "Edit Stock Allocation" msgstr "" -#: src/tables/build/BuildAllocatedStockTable.tsx:126 -#: src/tables/build/BuildOrderTestTable.tsx:176 -#: src/tables/build/BuildOrderTestTable.tsx:200 -#: src/tables/build/BuildOutputTable.tsx:312 -msgid "Build Output" -msgstr "" +#: src/tables/build/BuildAllocatedStockTable.tsx:164 +#~ msgid "Edit Build Item" +#~ msgstr "Edit Build Item" -#: src/tables/build/BuildAllocatedStockTable.tsx:143 -msgid "Edit Build Item" -msgstr "" +#: src/tables/build/BuildAllocatedStockTable.tsx:174 +#~ msgid "Delete Build Item" +#~ msgstr "Delete Build Item" -#: src/tables/build/BuildAllocatedStockTable.tsx:153 -msgid "Delete Build Item" -msgstr "" - -#: src/tables/build/BuildLineTable.tsx:43 -#: src/tables/stock/StockItemTable.tsx:305 -msgid "Allocated" -msgstr "" - -#: src/tables/build/BuildLineTable.tsx:44 -msgid "Show allocated lines" -msgstr "" - -#: src/tables/build/BuildLineTable.tsx:49 -msgid "Show lines with available stock" -msgstr "" - -#: src/tables/build/BuildLineTable.tsx:54 -msgid "Show consumable lines" +#: src/tables/build/BuildAllocatedStockTable.tsx:177 +#: src/tables/build/BuildLineTable.tsx:526 +msgid "Delete Stock Allocation" msgstr "" #: src/tables/build/BuildLineTable.tsx:59 +#~ msgid "Show lines with available stock" +#~ msgstr "Show lines with available stock" + +#: src/tables/build/BuildLineTable.tsx:175 +msgid "Show allocated lines" +msgstr "" + +#: src/tables/build/BuildLineTable.tsx:185 +msgid "Show consumable lines" +msgstr "" + +#: src/tables/build/BuildLineTable.tsx:190 msgid "Show optional lines" msgstr "" -#: src/tables/build/BuildLineTable.tsx:68 +#: src/tables/build/BuildLineTable.tsx:199 #: src/tables/part/PartTable.tsx:208 msgid "Testable" -msgstr "" +msgstr "Testable" -#: src/tables/build/BuildLineTable.tsx:73 -#: src/tables/stock/StockItemTable.tsx:364 +#: src/tables/build/BuildLineTable.tsx:204 +#: src/tables/stock/StockItemTable.tsx:368 msgid "Tracked" msgstr "" -#: src/tables/build/BuildLineTable.tsx:74 +#: src/tables/build/BuildLineTable.tsx:205 msgid "Show tracked lines" msgstr "" -#: src/tables/build/BuildLineTable.tsx:108 -#: src/tables/sales/SalesOrderLineItemTable.tsx:133 +#: src/tables/build/BuildLineTable.tsx:239 +#: src/tables/sales/SalesOrderLineItemTable.tsx:141 msgid "In production" msgstr "" -#: src/tables/build/BuildLineTable.tsx:136 +#: src/tables/build/BuildLineTable.tsx:267 msgid "Insufficient stock" -msgstr "" +msgstr "Rupture de stock" -#: src/tables/build/BuildLineTable.tsx:152 -#: src/tables/sales/SalesOrderLineItemTable.tsx:121 -#: src/tables/stock/StockItemTable.tsx:186 +#: src/tables/build/BuildLineTable.tsx:283 +#: src/tables/sales/SalesOrderLineItemTable.tsx:129 +#: src/tables/stock/StockItemTable.tsx:175 msgid "No stock available" msgstr "" -#: src/tables/build/BuildLineTable.tsx:201 +#: src/tables/build/BuildLineTable.tsx:355 msgid "Gets Inherited" msgstr "" -#: src/tables/build/BuildLineTable.tsx:210 +#: src/tables/build/BuildLineTable.tsx:366 msgid "Unit Quantity" msgstr "" -#: src/tables/build/BuildLineTable.tsx:267 -#: src/tables/sales/SalesOrderLineItemTable.tsx:230 +#: src/tables/build/BuildLineTable.tsx:381 +msgid "Required Quantity" +msgstr "" + +#: src/tables/build/BuildLineTable.tsx:432 +#: src/tables/sales/SalesOrderLineItemTable.tsx:254 msgid "Create Build Order" msgstr "" -#: src/tables/build/BuildLineTable.tsx:298 -msgid "Allocate Stock" +#: src/tables/build/BuildLineTable.tsx:460 +msgid "Auto allocation in progress" +msgstr "Attribution automatique en cours" + +#: src/tables/build/BuildLineTable.tsx:463 +#: src/tables/build/BuildLineTable.tsx:632 +msgid "Auto Allocate Stock" +msgstr "Allocation automatique du stock" + +#: src/tables/build/BuildLineTable.tsx:464 +msgid "Automatically allocate stock to this build according to the selected options" msgstr "" -#: src/tables/build/BuildLineTable.tsx:305 +#: src/tables/build/BuildLineTable.tsx:482 +#: src/tables/build/BuildLineTable.tsx:496 +#: src/tables/build/BuildLineTable.tsx:579 +#: src/tables/build/BuildLineTable.tsx:664 +#: src/tables/build/BuildOutputTable.tsx:314 +#: src/tables/build/BuildOutputTable.tsx:319 +msgid "Deallocate Stock" +msgstr "Désallouer le stock" + +#: src/tables/build/BuildLineTable.tsx:498 +msgid "Deallocate all untracked stock for this build order" +msgstr "" + +#: src/tables/build/BuildLineTable.tsx:500 +msgid "Deallocate stock from the selected line item" +msgstr "Désallouer le stock de la ligne sélectionné" + +#: src/tables/build/BuildLineTable.tsx:504 +msgid "Stock has been deallocated" +msgstr "Le stock à état désallouer" + +#: src/tables/build/BuildLineTable.tsx:589 msgid "Order Stock" msgstr "" -#: src/tables/build/BuildLineTable.tsx:312 +#: src/tables/build/BuildLineTable.tsx:596 msgid "Build Stock" msgstr "" -#: src/tables/build/BuildOrderTable.tsx:111 -msgid "Show active orders" +#: src/tables/build/BuildLineTable.tsx:610 +msgid "View Part" msgstr "" #: src/tables/build/BuildOrderTable.tsx:116 -msgid "Cascade" -msgstr "" +#~ msgid "Cascade" +#~ msgstr "Cascade" #: src/tables/build/BuildOrderTable.tsx:117 -msgid "Display recursive child orders" -msgstr "" +#~ msgid "Display recursive child orders" +#~ msgstr "Display recursive child orders" -#: src/tables/build/BuildOrderTable.tsx:123 -#: src/tables/part/PartPurchaseOrdersTable.tsx:126 -#: src/tables/purchasing/PurchaseOrderTable.tsx:56 -#: src/tables/sales/ReturnOrderTable.tsx:47 -#: src/tables/sales/SalesOrderTable.tsx:54 +#: src/tables/build/BuildOrderTable.tsx:121 +msgid "Show outstanding orders" +msgstr "Afficher les commandes en cours" + +#: src/tables/build/BuildOrderTable.tsx:121 +#~ msgid "Show active orders" +#~ msgstr "Show active orders" + +#: src/tables/build/BuildOrderTable.tsx:122 +#~ msgid "Show overdue status" +#~ msgstr "Show overdue status" + +#: src/tables/build/BuildOrderTable.tsx:126 +#: src/tables/part/PartPurchaseOrdersTable.tsx:132 +#: src/tables/purchasing/PurchaseOrderTable.tsx:59 +#: src/tables/sales/ReturnOrderTable.tsx:57 +#: src/tables/sales/SalesOrderTable.tsx:57 msgid "Filter by order status" msgstr "" -#: src/tables/build/BuildOrderTable.tsx:130 -msgid "Show overdue status" -msgstr "" - -#: src/tables/build/BuildOrderTable.tsx:141 -#: src/tables/purchasing/PurchaseOrderTable.tsx:65 -#: src/tables/sales/ReturnOrderTable.tsx:56 -#: src/tables/sales/SalesOrderTable.tsx:63 +#: src/tables/build/BuildOrderTable.tsx:136 +#: src/tables/purchasing/PurchaseOrderTable.tsx:70 +#: src/tables/sales/ReturnOrderTable.tsx:68 +#: src/tables/sales/SalesOrderTable.tsx:68 msgid "Filter by project code" msgstr "" -#: src/tables/build/BuildOrderTable.tsx:146 -#: src/tables/purchasing/PurchaseOrderTable.tsx:70 -#: src/tables/sales/ReturnOrderTable.tsx:61 -#: src/tables/sales/SalesOrderTable.tsx:68 -msgid "Has Project Code" -msgstr "" - -#: src/tables/build/BuildOrderTable.tsx:147 +#: src/tables/build/BuildOrderTable.tsx:139 #: src/tables/purchasing/PurchaseOrderTable.tsx:71 #: src/tables/sales/ReturnOrderTable.tsx:62 #: src/tables/sales/SalesOrderTable.tsx:69 -msgid "Filter by whether the purchase order has a project code" -msgstr "" +#~ msgid "Filter by whether the purchase order has a project code" +#~ msgstr "Filter by whether the purchase order has a project code" -#: src/tables/build/BuildOrderTable.tsx:152 +#: src/tables/build/BuildOrderTable.tsx:143 msgid "Filter by user who issued this order" msgstr "" -#: src/tables/build/BuildOrderTable.tsx:158 -#: src/tables/purchasing/PurchaseOrderTable.tsx:76 -#: src/tables/sales/ReturnOrderTable.tsx:67 -#: src/tables/sales/SalesOrderTable.tsx:74 +#: src/tables/build/BuildOrderTable.tsx:149 +#: src/tables/purchasing/PurchaseOrderTable.tsx:77 +#: src/tables/sales/ReturnOrderTable.tsx:75 +#: src/tables/sales/SalesOrderTable.tsx:75 msgid "Filter by responsible owner" msgstr "" -#: src/tables/build/BuildOrderTestTable.tsx:75 -#: src/tables/build/BuildOrderTestTable.tsx:111 -#: src/tables/stock/StockItemTestResultTable.tsx:257 -#: src/tables/stock/StockItemTestResultTable.tsx:329 -#: src/tables/stock/StockItemTestResultTable.tsx:384 +#: src/tables/build/BuildOrderTestTable.tsx:76 +#: src/tables/build/BuildOrderTestTable.tsx:112 +#: src/tables/stock/StockItemTestResultTable.tsx:275 +#: src/tables/stock/StockItemTestResultTable.tsx:347 +#: src/tables/stock/StockItemTestResultTable.tsx:403 msgid "Add Test Result" msgstr "" -#: src/tables/build/BuildOrderTestTable.tsx:82 -#: src/tables/stock/StockItemTestResultTable.tsx:259 +#: src/tables/build/BuildOrderTestTable.tsx:83 +#: src/tables/stock/StockItemTestResultTable.tsx:277 msgid "Test result added" msgstr "" -#: src/tables/build/BuildOrderTestTable.tsx:110 -#: src/tables/stock/StockItemTestResultTable.tsx:174 +#: src/tables/build/BuildOrderTestTable.tsx:111 +#: src/tables/stock/StockItemTestResultTable.tsx:180 msgid "No Result" +msgstr "Aucun résultat" + +#: src/tables/build/BuildOrderTestTable.tsx:221 +msgid "Show build outputs currently in production" msgstr "" -#: src/tables/build/BuildOrderTestTable.tsx:220 -msgid "Show build outputs currently in production" +#: src/tables/build/BuildOutputTable.tsx:76 +msgid "Build Output Stock Allocation" msgstr "" #: src/tables/build/BuildOutputTable.tsx:161 #~ msgid "Delete build output" #~ msgstr "Delete build output" -#: src/tables/build/BuildOutputTable.tsx:173 -#: src/tables/build/BuildOutputTable.tsx:211 +#: src/tables/build/BuildOutputTable.tsx:258 +#: src/tables/build/BuildOutputTable.tsx:374 msgid "Add Build Output" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:216 +#: src/tables/build/BuildOutputTable.tsx:304 +#~ msgid "Edit build output" +#~ msgstr "Edit build output" + +#: src/tables/build/BuildOutputTable.tsx:306 +#: src/tables/build/BuildOutputTable.tsx:417 +msgid "Edit Build Output" +msgstr "" + +#: src/tables/build/BuildOutputTable.tsx:321 +msgid "This action will deallocate all stock from the selected build output" +msgstr "" + +#: src/tables/build/BuildOutputTable.tsx:341 msgid "Complete selected outputs" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:226 +#: src/tables/build/BuildOutputTable.tsx:352 msgid "Scrap selected outputs" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:236 +#: src/tables/build/BuildOutputTable.tsx:363 msgid "Cancel selected outputs" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:252 +#: src/tables/build/BuildOutputTable.tsx:385 msgid "Allocate" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:253 +#: src/tables/build/BuildOutputTable.tsx:386 msgid "Allocate stock to build output" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:259 +#: src/tables/build/BuildOutputTable.tsx:396 msgid "Deallocate" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:260 +#: src/tables/build/BuildOutputTable.tsx:397 msgid "Deallocate stock from build output" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:267 +#: src/tables/build/BuildOutputTable.tsx:408 msgid "Complete build output" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:276 +#: src/tables/build/BuildOutputTable.tsx:424 msgid "Scrap" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:277 +#: src/tables/build/BuildOutputTable.tsx:425 msgid "Scrap build output" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:280 -#~ msgid "Allocated Items" -#~ msgstr "Allocated Items" - -#: src/tables/build/BuildOutputTable.tsx:287 +#: src/tables/build/BuildOutputTable.tsx:435 msgid "Cancel build output" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:325 -msgid "Batch" -msgstr "" - -#: src/tables/build/BuildOutputTable.tsx:340 +#: src/tables/build/BuildOutputTable.tsx:488 msgid "Allocated Lines" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:355 +#: src/tables/build/BuildOutputTable.tsx:503 msgid "Required Tests" msgstr "" -#: src/tables/company/AddressTable.tsx:121 -#: src/tables/company/AddressTable.tsx:185 +#: src/tables/company/AddressTable.tsx:118 +#: src/tables/company/AddressTable.tsx:183 msgid "Add Address" -msgstr "" +msgstr "Ajouter une adresse" -#: src/tables/company/AddressTable.tsx:126 +#: src/tables/company/AddressTable.tsx:123 msgid "Address created" -msgstr "" +msgstr "Adresse créée" -#: src/tables/company/AddressTable.tsx:135 +#: src/tables/company/AddressTable.tsx:132 msgid "Edit Address" -msgstr "" +msgstr "Éditer l'adresse" -#: src/tables/company/AddressTable.tsx:143 +#: src/tables/company/AddressTable.tsx:140 msgid "Delete Address" -msgstr "" +msgstr "Supprimer l'adresse" -#: src/tables/company/AddressTable.tsx:144 +#: src/tables/company/AddressTable.tsx:141 msgid "Are you sure you want to delete this address?" -msgstr "" +msgstr "Êtes-vous certain de vouloir supprimer cette adresse ?" #: src/tables/company/CompanyTable.tsx:71 #~ msgid "New Company" #~ msgstr "New Company" -#: src/tables/company/CompanyTable.tsx:74 -#: src/tables/company/CompanyTable.tsx:123 +#: src/tables/company/CompanyTable.tsx:75 +#: src/tables/company/CompanyTable.tsx:125 msgid "Add Company" -msgstr "" +msgstr "Ajouter une entreprise" -#: src/tables/company/CompanyTable.tsx:96 +#: src/tables/company/CompanyTable.tsx:97 msgid "Show active companies" msgstr "" -#: src/tables/company/CompanyTable.tsx:101 +#: src/tables/company/CompanyTable.tsx:102 msgid "Show companies which are suppliers" msgstr "" -#: src/tables/company/CompanyTable.tsx:106 +#: src/tables/company/CompanyTable.tsx:107 msgid "Show companies which are manufacturers" msgstr "" -#: src/tables/company/CompanyTable.tsx:111 +#: src/tables/company/CompanyTable.tsx:112 msgid "Show companies which are customers" msgstr "" #: src/tables/company/ContactTable.tsx:71 msgid "Edit Contact" -msgstr "" +msgstr "Modifier le contact" #: src/tables/company/ContactTable.tsx:78 msgid "Add Contact" -msgstr "" +msgstr "Ajouter un contact" #: src/tables/company/ContactTable.tsx:89 msgid "Delete Contact" -msgstr "" +msgstr "Supprimer le contact" -#: src/tables/company/ContactTable.tsx:129 +#: src/tables/company/ContactTable.tsx:130 msgid "Add contact" -msgstr "" +msgstr "Ajouter un contact" -#: src/tables/general/AttachmentTable.tsx:130 +#: src/tables/general/AttachmentTable.tsx:135 msgid "File uploaded" msgstr "" -#: src/tables/general/AttachmentTable.tsx:131 +#: src/tables/general/AttachmentTable.tsx:136 msgid "File {0} uploaded successfully" -msgstr "" +msgstr "Le fichier {0} a été chargé sur le serveur avec succès" -#: src/tables/general/AttachmentTable.tsx:142 +#: src/tables/general/AttachmentTable.tsx:147 msgid "Upload Error" msgstr "" -#: src/tables/general/AttachmentTable.tsx:143 +#: src/tables/general/AttachmentTable.tsx:148 msgid "File could not be uploaded" msgstr "" -#: src/tables/general/AttachmentTable.tsx:191 +#: src/tables/general/AttachmentTable.tsx:196 msgid "Upload Attachment" msgstr "" -#: src/tables/general/AttachmentTable.tsx:201 +#: src/tables/general/AttachmentTable.tsx:206 msgid "Edit Attachment" msgstr "" -#: src/tables/general/AttachmentTable.tsx:215 +#: src/tables/general/AttachmentTable.tsx:220 msgid "Delete Attachment" msgstr "Supprimer la pièce jointe" -#: src/tables/general/AttachmentTable.tsx:225 +#: src/tables/general/AttachmentTable.tsx:230 msgid "Is Link" msgstr "" -#: src/tables/general/AttachmentTable.tsx:226 +#: src/tables/general/AttachmentTable.tsx:231 msgid "Show link attachments" msgstr "" -#: src/tables/general/AttachmentTable.tsx:230 +#: src/tables/general/AttachmentTable.tsx:235 msgid "Is File" msgstr "" -#: src/tables/general/AttachmentTable.tsx:231 +#: src/tables/general/AttachmentTable.tsx:236 msgid "Show file attachments" msgstr "" -#: src/tables/general/AttachmentTable.tsx:240 +#: src/tables/general/AttachmentTable.tsx:245 msgid "Add attachment" msgstr "" -#: src/tables/general/AttachmentTable.tsx:251 -msgid "Add external link" -msgstr "" - #: src/tables/general/AttachmentTable.tsx:254 #~ msgid "Upload attachment" #~ msgstr "Upload attachment" -#: src/tables/general/AttachmentTable.tsx:299 +#: src/tables/general/AttachmentTable.tsx:256 +msgid "Add external link" +msgstr "" + +#: src/tables/general/AttachmentTable.tsx:304 msgid "No attachments found" msgstr "" -#: src/tables/general/AttachmentTable.tsx:337 +#: src/tables/general/AttachmentTable.tsx:343 msgid "Drag attachment file here to upload" msgstr "" #: src/tables/general/ExtraLineItemTable.tsx:86 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:251 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:60 -#: src/tables/sales/SalesOrderLineItemTable.tsx:196 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:263 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:362 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:72 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:168 +#: src/tables/sales/SalesOrderLineItemTable.tsx:206 +#: src/tables/sales/SalesOrderLineItemTable.tsx:291 msgid "Add Line Item" msgstr "" #: src/tables/general/ExtraLineItemTable.tsx:98 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:271 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:72 -#: src/tables/sales/SalesOrderLineItemTable.tsx:214 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:283 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:84 +#: src/tables/sales/SalesOrderLineItemTable.tsx:224 msgid "Edit Line Item" msgstr "" #: src/tables/general/ExtraLineItemTable.tsx:106 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:279 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:80 -#: src/tables/sales/SalesOrderLineItemTable.tsx:222 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:291 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:92 +#: src/tables/sales/SalesOrderLineItemTable.tsx:232 msgid "Delete Line Item" msgstr "" -#: src/tables/general/ExtraLineItemTable.tsx:142 +#: src/tables/general/ExtraLineItemTable.tsx:143 msgid "Add Extra Line Item" msgstr "" #: src/tables/machine/MachineListTable.tsx:202 msgid "Machine restarted" -msgstr "" +msgstr "Équipement redémarré" #: src/tables/machine/MachineListTable.tsx:212 -#: src/tables/machine/MachineListTable.tsx:263 +#: src/tables/machine/MachineListTable.tsx:261 msgid "Edit machine" -msgstr "" +msgstr "Modifier l'équipement" #: src/tables/machine/MachineListTable.tsx:226 -#: src/tables/machine/MachineListTable.tsx:267 +#: src/tables/machine/MachineListTable.tsx:265 msgid "Delete machine" -msgstr "" +msgstr "Supprimer l'équipement" #: src/tables/machine/MachineListTable.tsx:227 msgid "Machine successfully deleted." -msgstr "" +msgstr "L'équipement a bien été supprimée." #: src/tables/machine/MachineListTable.tsx:231 msgid "Are you sure you want to remove the machine \"{0}\"?" -msgstr "" +msgstr "Êtes-vous sûr de vouloir supprimer l'équipement \"{0} \" ?" -#: src/tables/machine/MachineListTable.tsx:255 -#: src/tables/machine/MachineListTable.tsx:432 +#: src/tables/machine/MachineListTable.tsx:254 +#: src/tables/machine/MachineListTable.tsx:442 msgid "Restart required" -msgstr "" +msgstr "Redémarrage nécessaire" -#: src/tables/machine/MachineListTable.tsx:259 +#: src/tables/machine/MachineListTable.tsx:258 msgid "Machine Actions" msgstr "" -#: src/tables/machine/MachineListTable.tsx:272 +#: src/tables/machine/MachineListTable.tsx:270 msgid "Restart" -msgstr "" +msgstr "Redémarrer" + +#: src/tables/machine/MachineListTable.tsx:272 +msgid "Restart machine" +msgstr "Redémarrer la machine" #: src/tables/machine/MachineListTable.tsx:274 -msgid "Restart machine" -msgstr "" - -#: src/tables/machine/MachineListTable.tsx:276 msgid "manual restart required" -msgstr "" +msgstr "redémarrage manuel nécessaire" + +#: src/tables/machine/MachineListTable.tsx:291 +#~ msgid "Machine information" +#~ msgstr "Machine information" #: src/tables/machine/MachineListTable.tsx:292 -msgid "Machine information" +msgid "Machine Information" msgstr "" -#: src/tables/machine/MachineListTable.tsx:303 -#: src/tables/machine/MachineListTable.tsx:599 +#: src/tables/machine/MachineListTable.tsx:302 +#: src/tables/machine/MachineListTable.tsx:610 msgid "Machine Type" msgstr "" -#: src/tables/machine/MachineListTable.tsx:316 +#: src/tables/machine/MachineListTable.tsx:315 msgid "Machine Driver" msgstr "" -#: src/tables/machine/MachineListTable.tsx:329 +#: src/tables/machine/MachineListTable.tsx:330 msgid "Initialized" msgstr "" -#: src/tables/machine/MachineListTable.tsx:350 -#: src/tables/machine/MachineTypeTable.tsx:261 -msgid "Errors" -msgstr "" - -#: src/tables/machine/MachineListTable.tsx:358 -#: src/tables/machine/MachineTypeTable.tsx:269 +#: src/tables/machine/MachineListTable.tsx:359 +#: src/tables/machine/MachineTypeTable.tsx:290 msgid "No errors reported" msgstr "" @@ -6330,7 +7471,7 @@ msgstr "" msgid "Machine Settings" msgstr "" -#: src/tables/machine/MachineListTable.tsx:389 +#: src/tables/machine/MachineListTable.tsx:394 msgid "Driver Settings" msgstr "" @@ -6338,86 +7479,109 @@ msgstr "" #~ msgid "Create machine" #~ msgstr "Create machine" -#: src/tables/machine/MachineListTable.tsx:506 +#: src/tables/machine/MachineListTable.tsx:516 +#: src/tables/machine/MachineListTable.tsx:558 msgid "Add machine" msgstr "" #: src/tables/machine/MachineListTable.tsx:561 -msgid "Machine detail" +#~ msgid "Machine detail" +#~ msgstr "Machine detail" + +#: src/tables/machine/MachineListTable.tsx:572 +msgid "Machine Detail" msgstr "" -#: src/tables/machine/MachineListTable.tsx:608 +#: src/tables/machine/MachineListTable.tsx:619 msgid "Driver" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:73 +#: src/tables/machine/MachineTypeTable.tsx:78 msgid "Builtin driver" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:89 +#: src/tables/machine/MachineTypeTable.tsx:96 +msgid "Not Found" +msgstr "" + +#: src/tables/machine/MachineTypeTable.tsx:99 msgid "Machine type not found." msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:97 -msgid "Machine type information" +#: src/tables/machine/MachineTypeTable.tsx:99 +#~ msgid "Machine type information" +#~ msgstr "Machine type information" + +#: src/tables/machine/MachineTypeTable.tsx:109 +msgid "Machine Type Information" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:110 -#: src/tables/machine/MachineTypeTable.tsx:217 +#: src/tables/machine/MachineTypeTable.tsx:124 +#: src/tables/machine/MachineTypeTable.tsx:238 msgid "Slug" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:118 -#: src/tables/machine/MachineTypeTable.tsx:238 +#: src/tables/machine/MachineTypeTable.tsx:135 +#: src/tables/machine/MachineTypeTable.tsx:259 msgid "Provider plugin" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:130 -#: src/tables/machine/MachineTypeTable.tsx:250 +#: src/tables/machine/MachineTypeTable.tsx:147 +#: src/tables/machine/MachineTypeTable.tsx:271 msgid "Provider file" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:135 -#: src/tables/machine/MachineTypeTable.tsx:255 -#: src/tables/plugin/PluginListTable.tsx:180 -#: src/tables/plugin/PluginListTable.tsx:568 -msgid "Builtin" +#: src/tables/machine/MachineTypeTable.tsx:148 +#~ msgid "Available drivers" +#~ msgstr "Available drivers" + +#: src/tables/machine/MachineTypeTable.tsx:162 +msgid "Available Drivers" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:146 -msgid "Available drivers" -msgstr "" - -#: src/tables/machine/MachineTypeTable.tsx:196 +#: src/tables/machine/MachineTypeTable.tsx:217 msgid "Machine driver not found." -msgstr "" +msgstr "Pilote d'équipement non trouvé." -#: src/tables/machine/MachineTypeTable.tsx:204 +#: src/tables/machine/MachineTypeTable.tsx:225 msgid "Machine driver information" -msgstr "" +msgstr "Informations sur le pilote de l'équipement" -#: src/tables/machine/MachineTypeTable.tsx:224 +#: src/tables/machine/MachineTypeTable.tsx:245 msgid "Machine type" -msgstr "" +msgstr "Type d'équipement" -#: src/tables/machine/MachineTypeTable.tsx:327 +#: src/tables/machine/MachineTypeTable.tsx:338 +#~ msgid "Machine type detail" +#~ msgstr "Machine type detail" + +#: src/tables/machine/MachineTypeTable.tsx:348 msgid "Builtin type" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:336 -msgid "Machine type detail" +#: src/tables/machine/MachineTypeTable.tsx:348 +#~ msgid "Machine driver detail" +#~ msgstr "Machine driver detail" + +#: src/tables/machine/MachineTypeTable.tsx:357 +msgid "Machine Type Detail" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:346 -msgid "Machine driver detail" +#: src/tables/machine/MachineTypeTable.tsx:367 +msgid "Machine Driver Detail" msgstr "" #: src/tables/notifications/NotificationsTable.tsx:26 msgid "Age" msgstr "" +#: src/tables/notifications/NotificationsTable.tsx:36 +msgid "Notification" +msgstr "Notification" + #: src/tables/notifications/NotificationsTable.tsx:40 #: src/tables/plugin/PluginErrorTable.tsx:37 +#: src/tables/settings/ErrorTable.tsx:50 msgid "Message" msgstr "" @@ -6451,33 +7615,32 @@ msgstr "" msgid "Show assembly parts" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:68 +#: src/tables/part/PartCategoryTable.tsx:48 +msgid "You are subscribed to notifications for this category" +msgstr "" + +#: src/tables/part/PartCategoryTable.tsx:80 #: src/tables/part/PartTable.tsx:196 msgid "Include Subcategories" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:69 +#: src/tables/part/PartCategoryTable.tsx:81 msgid "Include subcategories in results" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:74 +#: src/tables/part/PartCategoryTable.tsx:86 msgid "Show structural categories" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:78 -#: src/tables/part/PartTable.tsx:294 -msgid "Subscribed" -msgstr "" - -#: src/tables/part/PartCategoryTable.tsx:79 +#: src/tables/part/PartCategoryTable.tsx:91 msgid "Show categories to which the user is subscribed" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:86 +#: src/tables/part/PartCategoryTable.tsx:100 msgid "New Part Category" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:112 +#: src/tables/part/PartCategoryTable.tsx:129 msgid "Add Part Category" msgstr "" @@ -6523,11 +7686,6 @@ msgstr "" msgid "Part parameters cannot be edited, as the part is locked" msgstr "" -#: src/tables/part/PartParameterTable.tsx:212 -#: src/tables/stock/StockItemTable.tsx:335 -msgid "Include Variants" -msgstr "" - #: src/tables/part/PartParameterTemplateTable.tsx:31 msgid "Checkbox" msgstr "" @@ -6554,6 +7712,7 @@ msgid "Show templates with units" msgstr "" #: src/tables/part/PartParameterTemplateTable.tsx:85 +#: src/tables/part/PartParameterTemplateTable.tsx:141 msgid "Add Parameter Template" msgstr "" @@ -6566,23 +7725,19 @@ msgid "Delete Parameter Template" msgstr "" #: src/tables/part/PartParameterTemplateTable.tsx:141 -msgid "Add parameter template" -msgstr "" +#~ msgid "Add parameter template" +#~ msgstr "Add parameter template" -#: src/tables/part/PartPurchaseOrdersTable.tsx:77 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:162 +#: src/tables/part/PartPurchaseOrdersTable.tsx:78 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:168 msgid "Total Quantity" msgstr "" -#: src/tables/part/PartPurchaseOrdersTable.tsx:115 -msgid "Pending" -msgstr "" - -#: src/tables/part/PartPurchaseOrdersTable.tsx:116 +#: src/tables/part/PartPurchaseOrdersTable.tsx:122 msgid "Show pending orders" msgstr "" -#: src/tables/part/PartPurchaseOrdersTable.tsx:121 +#: src/tables/part/PartPurchaseOrdersTable.tsx:127 msgid "Show received items" msgstr "" @@ -6682,7 +7837,7 @@ msgstr "" #: src/tables/part/PartTable.tsx:272 msgid "Is Revision" -msgstr "" +msgstr "Est une révision" #: src/tables/part/PartTable.tsx:273 msgid "Filter by parts which are revisions" @@ -6690,7 +7845,7 @@ msgstr "" #: src/tables/part/PartTable.tsx:277 msgid "Has Revisions" -msgstr "" +msgstr "Possède des révisions" #: src/tables/part/PartTable.tsx:278 msgid "Filter by parts which have revisions" @@ -6726,26 +7881,17 @@ msgstr "" #: src/tables/part/PartTestTemplateTable.tsx:74 msgid "Results" -msgstr "" - -#: src/tables/part/PartTestTemplateTable.tsx:76 -msgid "No Results" -msgstr "" - -#: src/tables/part/PartTestTemplateTable.tsx:106 -#: src/tables/stock/StockItemTestResultTable.tsx:365 -msgid "Required" -msgstr "" +msgstr "Résultats" #: src/tables/part/PartTestTemplateTable.tsx:107 msgid "Show required tests" msgstr "" #: src/tables/part/PartTestTemplateTable.tsx:111 -#: src/tables/settings/TemplateTable.tsx:167 -#: src/tables/settings/TemplateTable.tsx:283 +#: src/tables/settings/TemplateTable.tsx:247 +#: src/tables/settings/TemplateTable.tsx:363 msgid "Enabled" -msgstr "" +msgstr "Activé" #: src/tables/part/PartTestTemplateTable.tsx:112 msgid "Show enabled tests" @@ -6753,7 +7899,7 @@ msgstr "" #: src/tables/part/PartTestTemplateTable.tsx:116 msgid "Requires Value" -msgstr "" +msgstr "La valeur est obligatoire" #: src/tables/part/PartTestTemplateTable.tsx:117 msgid "Show tests that require a value" @@ -6777,14 +7923,14 @@ msgstr "" #: src/tables/part/PartTestTemplateTable.tsx:131 msgid "Has Results" -msgstr "" +msgstr "Possède des résultats" #: src/tables/part/PartTestTemplateTable.tsx:132 msgid "Show tests which have recorded results" msgstr "" #: src/tables/part/PartTestTemplateTable.tsx:154 -#: src/tables/part/PartTestTemplateTable.tsx:237 +#: src/tables/part/PartTestTemplateTable.tsx:238 msgid "Add Test Template" msgstr "" @@ -6808,13 +7954,13 @@ msgstr "" msgid "View Parent Part" msgstr "" -#: src/tables/part/PartTestTemplateTable.tsx:257 +#: src/tables/part/PartTestTemplateTable.tsx:258 msgid "Part templates cannot be edited, as the part is locked" msgstr "" #: src/tables/part/PartThumbTable.tsx:201 msgid "Select" -msgstr "" +msgstr "Sélectionner" #: src/tables/part/PartVariantTable.tsx:16 msgid "Show active variants" @@ -6836,28 +7982,49 @@ msgstr "" msgid "Show trackable variants" msgstr "" -#: src/tables/part/RelatedPartTable.tsx:84 +#: src/tables/part/RelatedPartTable.tsx:86 +#: src/tables/part/RelatedPartTable.tsx:109 msgid "Add Related Part" msgstr "" -#: src/tables/part/RelatedPartTable.tsx:99 +#: src/tables/part/RelatedPartTable.tsx:101 msgid "Delete Related Part" msgstr "" -#: src/tables/part/RelatedPartTable.tsx:106 -msgid "Add related part" -msgstr "" +#: src/tables/part/RelatedPartTable.tsx:109 +#~ msgid "Add related part" +#~ msgstr "Add related part" #: src/tables/plugin/PluginErrorTable.tsx:29 msgid "Stage" msgstr "" -#: src/tables/plugin/PluginListTable.tsx:95 -msgid "Plugin with key {pluginKey} not found" +#: src/tables/plugin/PluginListTable.tsx:42 +msgid "Plugin is active" msgstr "" +#: src/tables/plugin/PluginListTable.tsx:48 +msgid "Plugin is inactive" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:55 +msgid "Plugin is not installed" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:76 +msgid "Plugin" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:95 +#~ msgid "Plugin with key {pluginKey} not found" +#~ msgstr "Plugin with key {pluginKey} not found" + #: src/tables/plugin/PluginListTable.tsx:97 -msgid "An error occurred while fetching plugin details" +#~ msgid "An error occurred while fetching plugin details" +#~ msgstr "An error occurred while fetching plugin details" + +#: src/tables/plugin/PluginListTable.tsx:109 +msgid "Description not available" msgstr "" #: src/tables/plugin/PluginListTable.tsx:113 @@ -6865,12 +8032,8 @@ msgstr "" #~ msgstr "Plugin with id {id} not found" #: src/tables/plugin/PluginListTable.tsx:122 -msgid "Plugin information" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:134 -msgid "Author" -msgstr "" +#~ msgid "Plugin information" +#~ msgstr "Plugin information" #: src/tables/plugin/PluginListTable.tsx:134 #~ msgid "Plugin Actions" @@ -6881,79 +8044,124 @@ msgstr "" #~ msgid "Edit plugin" #~ msgstr "Edit plugin" +#: src/tables/plugin/PluginListTable.tsx:144 +msgid "Confirm plugin activation" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:145 +msgid "Confirm plugin deactivation" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:150 +msgid "The selected plugin will be activated" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:151 +msgid "The selected plugin will be deactivated" +msgstr "" + #: src/tables/plugin/PluginListTable.tsx:152 #: src/tables/plugin/PluginListTable.tsx:153 #~ msgid "Reload" #~ msgstr "Reload" -#: src/tables/plugin/PluginListTable.tsx:154 -msgid "Plugin is not active" -msgstr "" - #: src/tables/plugin/PluginListTable.tsx:163 -msgid "Package information" -msgstr "" +#~ msgid "Package information" +#~ msgstr "Package information" #: src/tables/plugin/PluginListTable.tsx:169 -msgid "Package Name" +msgid "Deactivate" msgstr "" -#: src/tables/plugin/PluginListTable.tsx:175 -msgid "Installation Path" +#: src/tables/plugin/PluginListTable.tsx:183 +msgid "Activate" msgstr "" -#: src/tables/plugin/PluginListTable.tsx:185 -msgid "Package" -msgstr "" +#: src/tables/plugin/PluginListTable.tsx:184 +msgid "Activate selected plugin" +msgstr "Activer le plugin sélectionné" + +#: src/tables/plugin/PluginListTable.tsx:196 +msgid "Update selected plugin" +msgstr "Mettre à jour le plugin sélectionné" #: src/tables/plugin/PluginListTable.tsx:197 -msgid "Plugin settings" -msgstr "" +#~ msgid "Plugin settings" +#~ msgstr "Plugin settings" #: src/tables/plugin/PluginListTable.tsx:214 -msgid "Plugin is active" +#: src/tables/stock/InstalledItemsTable.tsx:107 +msgid "Uninstall" +msgstr "Désinstaller" + +#: src/tables/plugin/PluginListTable.tsx:215 +msgid "Uninstall selected plugin" +msgstr "Désinstaller le plugin sélectionné" + +#: src/tables/plugin/PluginListTable.tsx:233 +msgid "Delete selected plugin configuration" msgstr "" -#: src/tables/plugin/PluginListTable.tsx:220 -msgid "Plugin is inactive" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:227 -msgid "Plugin is not installed" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:253 -msgid "Plugin" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:287 -msgid "Description not available" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:319 -msgid "Confirm plugin activation" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:320 -msgid "Confirm plugin deactivation" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:325 -msgid "The selected plugin will be activated" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:326 -msgid "The selected plugin will be deactivated" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:334 +#: src/tables/plugin/PluginListTable.tsx:249 msgid "Activate Plugin" msgstr "" +#: src/tables/plugin/PluginListTable.tsx:270 +msgid "Install plugin" +msgstr "Installer le plugin" + +#: src/tables/plugin/PluginListTable.tsx:283 +msgid "Install" +msgstr "Installer" + +#: src/tables/plugin/PluginListTable.tsx:284 +msgid "Plugin installed successfully" +msgstr "Plugin installé avec succès" + +#: src/tables/plugin/PluginListTable.tsx:289 +msgid "Uninstall Plugin" +msgstr "Désinstaller le plugin" + +#: src/tables/plugin/PluginListTable.tsx:301 +msgid "Confirm plugin uninstall" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:304 +msgid "The selected plugin will be uninstalled." +msgstr "Le plugin sélectionné sera désinstallé." + +#: src/tables/plugin/PluginListTable.tsx:308 +#~ msgid "This action cannot be undone." +#~ msgstr "This action cannot be undone." + +#: src/tables/plugin/PluginListTable.tsx:309 +msgid "Plugin uninstalled successfully" +msgstr "Plugin désinstallé avec succès" + +#: src/tables/plugin/PluginListTable.tsx:317 +msgid "Delete Plugin" +msgstr "Supprimer le plugin" + +#: src/tables/plugin/PluginListTable.tsx:318 +msgid "Deleting this plugin configuration will remove all associated settings and data. Are you sure you want to delete this plugin?" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:331 +msgid "Plugins reloaded" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:332 +msgid "Plugins were reloaded successfully" +msgstr "" + #: src/tables/plugin/PluginListTable.tsx:338 #~ msgid "Deactivate Plugin" #~ msgstr "Deactivate Plugin" +#: src/tables/plugin/PluginListTable.tsx:350 +msgid "Reload Plugins" +msgstr "" + #: src/tables/plugin/PluginListTable.tsx:354 #~ msgid "The following plugin will be activated" #~ msgstr "The following plugin will be activated" @@ -6962,16 +8170,16 @@ msgstr "" #~ msgid "The following plugin will be deactivated" #~ msgstr "The following plugin will be deactivated" -#: src/tables/plugin/PluginListTable.tsx:362 -msgid "Deactivate" +#: src/tables/plugin/PluginListTable.tsx:357 +msgid "Install Plugin" msgstr "" #: src/tables/plugin/PluginListTable.tsx:366 #~ msgid "Confirm" #~ msgstr "Confirm" -#: src/tables/plugin/PluginListTable.tsx:373 -msgid "Activate" +#: src/tables/plugin/PluginListTable.tsx:374 +msgid "Plugin Detail" msgstr "" #: src/tables/plugin/PluginListTable.tsx:376 @@ -6998,76 +8206,12 @@ msgstr "" #~ msgid "Error updating plugin" #~ msgstr "Error updating plugin" -#: src/tables/plugin/PluginListTable.tsx:406 -msgid "Uninstall" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:438 -msgid "Install plugin" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:451 -msgid "Install" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:452 -msgid "Plugin installed successfully" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:457 -msgid "Uninstall Plugin" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:469 -msgid "Confirm plugin uninstall" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:472 -msgid "The selected plugin will be uninstalled." -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:473 -msgid "This action cannot be undone." -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:477 -msgid "Plugin uninstalled successfully" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:484 -msgid "Delete Plugin" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:485 -msgid "Deleting this plugin configuration will remove all associated settings and data. Are you sure you want to delete this plugin?" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:498 -msgid "Plugins reloaded" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:499 -msgid "Plugins were reloaded successfully" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:515 -msgid "Reload Plugins" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:524 -msgid "Install Plugin" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:544 -msgid "Plugin Detail" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:573 +#: src/tables/plugin/PluginListTable.tsx:411 msgid "Sample" msgstr "" -#: src/tables/plugin/PluginListTable.tsx:578 -#: src/tables/stock/StockItemTable.tsx:340 +#: src/tables/plugin/PluginListTable.tsx:416 +#: src/tables/stock/StockItemTable.tsx:344 msgid "Installed" msgstr "" @@ -7086,7 +8230,7 @@ msgstr "" #: src/tables/purchasing/ManufacturerPartParameterTable.tsx:70 msgid "Edit Parameter" -msgstr "" +msgstr "Modifier le paramètre" #: src/tables/purchasing/ManufacturerPartParameterTable.tsx:73 #~ msgid "Parameter deleted" @@ -7098,7 +8242,7 @@ msgstr "" #: src/tables/purchasing/ManufacturerPartParameterTable.tsx:78 msgid "Delete Parameter" -msgstr "" +msgstr "Supprimer le paramètre" #: src/tables/purchasing/ManufacturerPartTable.tsx:63 #~ msgid "Create Manufacturer Part" @@ -7116,82 +8260,78 @@ msgstr "" #~ msgid "Are you sure you want to remove this manufacturer part?" #~ msgstr "Are you sure you want to remove this manufacturer part?" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:102 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:339 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:103 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:356 msgid "Import Line Items" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:135 -msgid "Part Description" -msgstr "" - -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:201 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:207 msgid "Supplier Code" -msgstr "" +msgstr "Code fournisseur" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:208 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:214 msgid "Supplier Link" -msgstr "" +msgstr "Lien du fournisseur" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:215 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:220 msgid "Manufacturer Code" +msgstr "Code du fabricant" + +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:248 +msgid "Show line items which have been received" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:229 -msgid "Destination" -msgstr "" - -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:300 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:316 msgid "Receive line item" msgstr "" #: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:344 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:142 -#: src/tables/sales/SalesOrderLineItemTable.tsx:240 -msgid "Add line item" -msgstr "" +#: src/tables/sales/ReturnOrderLineItemTable.tsx:160 +#: src/tables/sales/SalesOrderLineItemTable.tsx:258 +#~ msgid "Add line item" +#~ msgstr "Add line item" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:354 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:373 msgid "Receive items" msgstr "" -#: src/tables/purchasing/SupplierPartTable.tsx:93 +#: src/tables/purchasing/SupplierPartTable.tsx:95 msgid "MPN" msgstr "" -#: src/tables/purchasing/SupplierPartTable.tsx:122 +#: src/tables/purchasing/SupplierPartTable.tsx:124 msgid "Base units" msgstr "" -#: src/tables/purchasing/SupplierPartTable.tsx:170 +#: src/tables/purchasing/SupplierPartTable.tsx:172 msgid "Supplier part created" msgstr "" -#: src/tables/purchasing/SupplierPartTable.tsx:176 +#: src/tables/purchasing/SupplierPartTable.tsx:179 msgid "Add supplier part" msgstr "" -#: src/tables/purchasing/SupplierPartTable.tsx:188 +#: src/tables/purchasing/SupplierPartTable.tsx:191 msgid "Show active supplier parts" msgstr "" -#: src/tables/purchasing/SupplierPartTable.tsx:192 -msgid "Active Part" -msgstr "" - -#: src/tables/purchasing/SupplierPartTable.tsx:193 -msgid "Show active internal parts" -msgstr "" - #: src/tables/purchasing/SupplierPartTable.tsx:193 #~ msgid "Supplier part updated" #~ msgstr "Supplier part updated" -#: src/tables/purchasing/SupplierPartTable.tsx:197 +#: src/tables/purchasing/SupplierPartTable.tsx:195 +msgid "Active Part" +msgstr "" + +#: src/tables/purchasing/SupplierPartTable.tsx:196 +msgid "Show active internal parts" +msgstr "" + +#: src/tables/purchasing/SupplierPartTable.tsx:200 msgid "Active Supplier" msgstr "" -#: src/tables/purchasing/SupplierPartTable.tsx:198 +#: src/tables/purchasing/SupplierPartTable.tsx:201 msgid "Show active suppliers" msgstr "" @@ -7203,99 +8343,187 @@ msgstr "" #~ msgid "Are you sure you want to remove this supplier part?" #~ msgstr "Are you sure you want to remove this supplier part?" -#: src/tables/sales/ReturnOrderLineItemTable.tsx:114 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:139 msgid "Received Date" msgstr "" -#: src/tables/sales/ReturnOrderLineItemTable.tsx:128 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:153 msgid "Show items which have been received" msgstr "" -#: src/tables/sales/ReturnOrderLineItemTable.tsx:133 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:158 msgid "Filter by line item status" msgstr "" -#: src/tables/sales/ReturnOrderLineItemTable.tsx:158 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:176 +msgid "Receive selected items" +msgstr "Recevoir les éléments sélectionnés" + +#: src/tables/sales/ReturnOrderLineItemTable.tsx:205 msgid "Receive Item" msgstr "" -#: src/tables/sales/SalesOrderLineItemTable.tsx:262 -msgid "Allocate stock" +#: src/tables/sales/SalesOrderAllocationTable.tsx:60 +msgid "Show outstanding allocations" msgstr "" -#: src/tables/sales/SalesOrderLineItemTable.tsx:272 +#: src/tables/sales/SalesOrderAllocationTable.tsx:168 +#: src/tables/sales/SalesOrderAllocationTable.tsx:190 +msgid "Edit Allocation" +msgstr "" + +#: src/tables/sales/SalesOrderAllocationTable.tsx:175 +#: src/tables/sales/SalesOrderAllocationTable.tsx:197 +msgid "Delete Allocation" +msgstr "" + +#: src/tables/sales/SalesOrderLineItemTable.tsx:244 +msgid "Allocate Serial Numbers" +msgstr "Allouer les numéros de série" + +#: src/tables/sales/SalesOrderLineItemTable.tsx:277 +msgid "Show lines which are fully allocated" +msgstr "" + +#: src/tables/sales/SalesOrderLineItemTable.tsx:280 +#~ msgid "Allocate stock" +#~ msgstr "Allocate stock" + +#: src/tables/sales/SalesOrderLineItemTable.tsx:282 +msgid "Show lines which are completed" +msgstr "" + +#: src/tables/sales/SalesOrderLineItemTable.tsx:291 +#~ msgid "Allocate Serials" +#~ msgstr "Allocate Serials" + +#: src/tables/sales/SalesOrderLineItemTable.tsx:340 +msgid "Allocate serials" +msgstr "" + +#: src/tables/sales/SalesOrderLineItemTable.tsx:356 msgid "Build stock" msgstr "" -#: src/tables/sales/SalesOrderLineItemTable.tsx:289 -#: src/tables/stock/StockItemTable.tsx:507 +#: src/tables/sales/SalesOrderLineItemTable.tsx:373 +#: src/tables/stock/StockItemTable.tsx:512 msgid "Order stock" msgstr "" -#: src/tables/sales/SalesOrderShipmentTable.tsx:40 +#: src/tables/sales/SalesOrderShipmentTable.tsx:51 +#~ msgid "Delete Shipment" +#~ msgstr "Delete Shipment" + +#: src/tables/sales/SalesOrderShipmentTable.tsx:57 msgid "Create Shipment" msgstr "" -#: src/tables/sales/SalesOrderShipmentTable.tsx:50 -msgid "Delete Shipment" -msgstr "" - -#: src/tables/sales/SalesOrderShipmentTable.tsx:58 -msgid "Edit Shipment" -msgstr "" - -#: src/tables/sales/SalesOrderShipmentTable.tsx:66 -msgid "Shipment Reference" -msgstr "" - -#: src/tables/sales/SalesOrderShipmentTable.tsx:71 +#: src/tables/sales/SalesOrderShipmentTable.tsx:104 msgid "Items" msgstr "" -#: src/tables/sales/SalesOrderShipmentTable.tsx:83 -msgid "Delivery Date" +#: src/tables/sales/SalesOrderShipmentTable.tsx:139 +msgid "View Shipment" msgstr "" -#: src/tables/sales/SalesOrderShipmentTable.tsx:107 -msgid "Complete Shipment" +#: src/tables/sales/SalesOrderShipmentTable.tsx:161 +msgid "Edit shipment" msgstr "" -#: src/tables/sales/SalesOrderShipmentTable.tsx:133 +#: src/tables/sales/SalesOrderShipmentTable.tsx:169 +msgid "Cancel shipment" +msgstr "" + +#: src/tables/sales/SalesOrderShipmentTable.tsx:184 msgid "Add shipment" msgstr "" -#: src/tables/sales/SalesOrderShipmentTable.tsx:146 -msgid "Shipped" -msgstr "" - -#: src/tables/sales/SalesOrderShipmentTable.tsx:147 +#: src/tables/sales/SalesOrderShipmentTable.tsx:198 msgid "Show shipments which have been shipped" msgstr "" -#: src/tables/sales/SalesOrderShipmentTable.tsx:151 -msgid "Delivered" -msgstr "" - -#: src/tables/sales/SalesOrderShipmentTable.tsx:152 +#: src/tables/sales/SalesOrderShipmentTable.tsx:203 msgid "Show shipments which have been delivered" msgstr "" -#: src/tables/settings/CurrencyTable.tsx:28 -msgid "Rate" +#: src/tables/settings/BarcodeScanHistoryTable.tsx:61 +msgid "Barcode Information" +msgstr "Informations du code-barres" + +#: src/tables/settings/BarcodeScanHistoryTable.tsx:76 +#: src/tables/settings/ErrorTable.tsx:59 +msgid "Timestamp" +msgstr "Horodatage" + +#: src/tables/settings/BarcodeScanHistoryTable.tsx:86 +msgid "Endpoint" msgstr "" -#: src/tables/settings/CurrencyTable.tsx:40 -msgid "Exchange rates updated" +#: src/tables/settings/BarcodeScanHistoryTable.tsx:90 +#: src/tables/settings/BarcodeScanHistoryTable.tsx:217 +#: src/tables/stock/StockItemTestResultTable.tsx:174 +msgid "Result" +msgstr "Résultat" + +#: src/tables/settings/BarcodeScanHistoryTable.tsx:98 +msgid "Context" +msgstr "Contexte" + +#: src/tables/settings/BarcodeScanHistoryTable.tsx:119 +msgid "Response" +msgstr "Réponse" + +#: src/tables/settings/BarcodeScanHistoryTable.tsx:213 +#: src/tables/settings/ImportSessionTable.tsx:121 +#: src/tables/stock/StockTrackingTable.tsx:183 +msgid "Filter by user" +msgstr "Filtrer par utilisateur" + +#: src/tables/settings/BarcodeScanHistoryTable.tsx:218 +msgid "Filter by result" msgstr "" -#: src/tables/settings/CurrencyTable.tsx:46 -msgid "Exchange rate update error" +#: src/tables/settings/BarcodeScanHistoryTable.tsx:232 +msgid "Delete Barcode Scan Record" msgstr "" -#: src/tables/settings/CurrencyTable.tsx:57 -msgid "Refresh currency exchange rates" +#: src/tables/settings/BarcodeScanHistoryTable.tsx:258 +msgid "Barcode Scan Details" msgstr "" +#: src/tables/settings/BarcodeScanHistoryTable.tsx:268 +msgid "Logging Disabled" +msgstr "" + +#: src/tables/settings/BarcodeScanHistoryTable.tsx:270 +msgid "Barcode logging is not enabled" +msgstr "" + +#: src/tables/settings/CustomStateTable.tsx:36 +msgid "Display Name" +msgstr "Nom affiché" + +#: src/tables/settings/CustomStateTable.tsx:52 +msgid "Model" +msgstr "Modèle" + +#: src/tables/settings/CustomStateTable.tsx:65 +#: src/tables/settings/CustomStateTable.tsx:115 +msgid "Add State" +msgstr "" + +#: src/tables/settings/CustomStateTable.tsx:77 +msgid "Edit State" +msgstr "" + +#: src/tables/settings/CustomStateTable.tsx:85 +msgid "Delete State" +msgstr "" + +#: src/tables/settings/CustomStateTable.tsx:115 +#~ msgid "Add state" +#~ msgstr "Add state" + #: src/tables/settings/CustomUnitsTable.tsx:50 msgid "Add Custom Unit" msgstr "" @@ -7312,57 +8540,69 @@ msgstr "" msgid "Add custom unit" msgstr "" -#: src/tables/settings/ErrorTable.tsx:31 -msgid "When" -msgstr "" - -#: src/tables/settings/ErrorTable.tsx:41 -msgid "Error Information" -msgstr "" - #: src/tables/settings/ErrorTable.tsx:51 #~ msgid "Delete error report" #~ msgstr "Delete error report" -#: src/tables/settings/ErrorTable.tsx:53 +#: src/tables/settings/ErrorTable.tsx:67 +msgid "Traceback" +msgstr "" + +#: src/tables/settings/ErrorTable.tsx:103 +msgid "When" +msgstr "Quand" + +#: src/tables/settings/ErrorTable.tsx:113 +msgid "Error Information" +msgstr "" + +#: src/tables/settings/ErrorTable.tsx:123 msgid "Delete Error Report" msgstr "" -#: src/tables/settings/ErrorTable.tsx:55 +#: src/tables/settings/ErrorTable.tsx:125 msgid "Are you sure you want to delete this error report?" msgstr "" -#: src/tables/settings/ErrorTable.tsx:57 +#: src/tables/settings/ErrorTable.tsx:127 msgid "Error report deleted" msgstr "" -#: src/tables/settings/ErrorTable.tsx:79 -#: src/tables/settings/FailedTasksTable.tsx:59 +#: src/tables/settings/ErrorTable.tsx:146 +#: src/tables/settings/FailedTasksTable.tsx:65 msgid "Error Details" msgstr "" -#: src/tables/settings/FailedTasksTable.tsx:26 -#: src/tables/settings/PendingTasksTable.tsx:19 +#: src/tables/settings/FailedTasksTable.tsx:32 +#: src/tables/settings/PendingTasksTable.tsx:23 #: src/tables/settings/ScheduledTasksTable.tsx:19 msgid "Task" msgstr "" -#: src/tables/settings/FailedTasksTable.tsx:32 -#: src/tables/settings/PendingTasksTable.tsx:24 +#: src/tables/settings/FailedTasksTable.tsx:38 +#: src/tables/settings/PendingTasksTable.tsx:28 msgid "Task ID" msgstr "" -#: src/tables/settings/FailedTasksTable.tsx:36 -#: src/tables/stock/StockItemTestResultTable.tsx:211 -msgid "Started" -msgstr "" - #: src/tables/settings/FailedTasksTable.tsx:42 -msgid "Stopped" -msgstr "" +#: src/tables/stock/StockItemTestResultTable.tsx:218 +msgid "Started" +msgstr "Commencé" #: src/tables/settings/FailedTasksTable.tsx:48 +msgid "Stopped" +msgstr "Arrêté" + +#: src/tables/settings/FailedTasksTable.tsx:54 msgid "Attempts" +msgstr "Tentatives" + +#: src/tables/settings/FailedTasksTable.tsx:92 +msgid "No Information" +msgstr "" + +#: src/tables/settings/FailedTasksTable.tsx:93 +msgid "No error details are available for this task" msgstr "" #: src/tables/settings/GroupTable.tsx:90 @@ -7379,63 +8619,55 @@ msgstr "" #: src/tables/settings/GroupTable.tsx:177 msgid "Delete group" -msgstr "" +msgstr "Supprimer le groupe" #: src/tables/settings/GroupTable.tsx:178 msgid "Group deleted" -msgstr "" +msgstr "Groupe supprimé" #: src/tables/settings/GroupTable.tsx:180 msgid "Are you sure you want to delete this group?" -msgstr "" +msgstr "Êtes-vous sûr de vouloir supprimer ce groupe ?" #: src/tables/settings/GroupTable.tsx:185 #: src/tables/settings/GroupTable.tsx:197 msgid "Add group" -msgstr "" +msgstr "Ajouter un groupe" #: src/tables/settings/GroupTable.tsx:210 msgid "Edit group" -msgstr "" +msgstr "Modifier le groupe" -#: src/tables/settings/ImportSessionTable.tsx:38 +#: src/tables/settings/ImportSessionTable.tsx:37 msgid "Delete Import Session" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:44 +#: src/tables/settings/ImportSessionTable.tsx:43 #: src/tables/settings/ImportSessionTable.tsx:131 msgid "Create Import Session" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:69 +#: src/tables/settings/ImportSessionTable.tsx:68 msgid "Uploaded" -msgstr "" +msgstr "Envoyé" -#: src/tables/settings/ImportSessionTable.tsx:79 -msgid "Imported Rows" -msgstr "" - -#: src/tables/settings/ImportSessionTable.tsx:109 -#: src/tables/settings/TemplateTable.tsx:289 +#: src/tables/settings/ImportSessionTable.tsx:108 +#: src/tables/settings/TemplateTable.tsx:369 msgid "Model Type" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:110 -#: src/tables/settings/TemplateTable.tsx:290 +#: src/tables/settings/ImportSessionTable.tsx:109 +#: src/tables/settings/TemplateTable.tsx:370 msgid "Filter by target model type" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:116 +#: src/tables/settings/ImportSessionTable.tsx:115 msgid "Filter by import session status" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:122 -msgid "Filter by user" -msgstr "" - -#: src/tables/settings/PendingTasksTable.tsx:38 +#: src/tables/settings/PendingTasksTable.tsx:42 msgid "Arguments" -msgstr "" +msgstr "Arguments" #: src/tables/settings/ProjectCodeTable.tsx:42 msgid "Add Project Code" @@ -7455,19 +8687,23 @@ msgstr "" #: src/tables/settings/ScheduledTasksTable.tsx:25 msgid "Last Run" -msgstr "" +msgstr "Dernière exécution" #: src/tables/settings/ScheduledTasksTable.tsx:47 msgid "Next Run" +msgstr "Prochaine exécution" + +#: src/tables/settings/StocktakeReportTable.tsx:28 +msgid "Report" +msgstr "Rapport" + +#: src/tables/settings/StocktakeReportTable.tsx:35 +msgid "Part Count" msgstr "" -#: src/tables/settings/TemplateTable.tsx:85 -msgid "Template not found" -msgstr "" - -#: src/tables/settings/TemplateTable.tsx:87 -msgid "An error occurred while fetching template details" -msgstr "" +#: src/tables/settings/StocktakeReportTable.tsx:58 +msgid "Delete Report" +msgstr "Supprimer le rapport" #: src/tables/settings/TemplateTable.tsx:120 #~ msgid "{templateTypeTranslation} with id {id} not found" @@ -7481,21 +8717,12 @@ msgstr "" #~ msgid "actions" #~ msgstr "actions" -#: src/tables/settings/TemplateTable.tsx:177 -msgid "Modify" +#: src/tables/settings/TemplateTable.tsx:162 +msgid "Template not found" msgstr "" -#: src/tables/settings/TemplateTable.tsx:178 -msgid "Modify template file" -msgstr "" - -#: src/tables/settings/TemplateTable.tsx:234 -#: src/tables/settings/TemplateTable.tsx:302 -msgid "Edit Template" -msgstr "" - -#: src/tables/settings/TemplateTable.tsx:242 -msgid "Delete template" +#: src/tables/settings/TemplateTable.tsx:164 +msgid "An error occurred while fetching template details" msgstr "" #: src/tables/settings/TemplateTable.tsx:243 @@ -7506,392 +8733,422 @@ msgstr "" #~ msgid "Create new" #~ msgstr "Create new" -#: src/tables/settings/TemplateTable.tsx:248 +#: src/tables/settings/TemplateTable.tsx:257 +msgid "Modify" +msgstr "" + +#: src/tables/settings/TemplateTable.tsx:258 +msgid "Modify template file" +msgstr "" + +#: src/tables/settings/TemplateTable.tsx:314 +#: src/tables/settings/TemplateTable.tsx:382 +msgid "Edit Template" +msgstr "" + +#: src/tables/settings/TemplateTable.tsx:322 +msgid "Delete template" +msgstr "" + +#: src/tables/settings/TemplateTable.tsx:328 msgid "Add Template" msgstr "" -#: src/tables/settings/TemplateTable.tsx:261 +#: src/tables/settings/TemplateTable.tsx:341 msgid "Add template" msgstr "" -#: src/tables/settings/TemplateTable.tsx:284 +#: src/tables/settings/TemplateTable.tsx:364 msgid "Filter by enabled status" msgstr "" -#: src/tables/settings/UserTable.tsx:82 +#: src/tables/settings/UserTable.tsx:81 msgid "User with id {id} not found" msgstr "" -#: src/tables/settings/UserTable.tsx:84 +#: src/tables/settings/UserTable.tsx:83 msgid "An error occurred while fetching user details" msgstr "" -#: src/tables/settings/UserTable.tsx:102 +#: src/tables/settings/UserTable.tsx:101 msgid "Is Active" msgstr "" -#: src/tables/settings/UserTable.tsx:103 +#: src/tables/settings/UserTable.tsx:102 msgid "Designates whether this user should be treated as active. Unselect this instead of deleting accounts." msgstr "" -#: src/tables/settings/UserTable.tsx:107 +#: src/tables/settings/UserTable.tsx:106 msgid "Is Staff" msgstr "" -#: src/tables/settings/UserTable.tsx:108 +#: src/tables/settings/UserTable.tsx:107 msgid "Designates whether the user can log into the django admin site." msgstr "" -#: src/tables/settings/UserTable.tsx:112 +#: src/tables/settings/UserTable.tsx:111 msgid "Is Superuser" msgstr "" -#: src/tables/settings/UserTable.tsx:113 +#: src/tables/settings/UserTable.tsx:112 msgid "Designates that this user has all permissions without explicitly assigning them." msgstr "" -#: src/tables/settings/UserTable.tsx:123 +#: src/tables/settings/UserTable.tsx:122 msgid "You cannot edit the rights for the currently logged-in user." msgstr "" -#: src/tables/settings/UserTable.tsx:154 +#: src/tables/settings/UserTable.tsx:153 msgid "No groups" msgstr "" -#: src/tables/settings/UserTable.tsx:245 +#: src/tables/settings/UserTable.tsx:244 msgid "Delete user" msgstr "" -#: src/tables/settings/UserTable.tsx:246 +#: src/tables/settings/UserTable.tsx:245 msgid "User deleted" -msgstr "" +msgstr "Utilisateur supprimé" -#: src/tables/settings/UserTable.tsx:248 +#: src/tables/settings/UserTable.tsx:247 msgid "Are you sure you want to delete this user?" -msgstr "" +msgstr "Êtes-vous sûr de vouloir supprimer cet utilisateur ?" -#: src/tables/settings/UserTable.tsx:254 -#: src/tables/settings/UserTable.tsx:272 +#: src/tables/settings/UserTable.tsx:253 +#: src/tables/settings/UserTable.tsx:271 msgid "Add user" -msgstr "" +msgstr "Ajouter un utilisateur" -#: src/tables/settings/UserTable.tsx:262 +#: src/tables/settings/UserTable.tsx:261 msgid "Added user" -msgstr "" +msgstr "Utilisateur ajouté" -#: src/tables/settings/UserTable.tsx:285 +#: src/tables/settings/UserTable.tsx:284 msgid "Show active users" -msgstr "" +msgstr "Afficher les utilisateurs actifs" -#: src/tables/settings/UserTable.tsx:289 +#: src/tables/settings/UserTable.tsx:288 msgid "Staff" msgstr "" -#: src/tables/settings/UserTable.tsx:290 +#: src/tables/settings/UserTable.tsx:289 msgid "Show staff users" msgstr "" #: src/tables/settings/UserTable.tsx:294 -msgid "Superuser" -msgstr "" - -#: src/tables/settings/UserTable.tsx:295 msgid "Show superusers" -msgstr "" +msgstr "Afficher les super-utilisateurs" -#: src/tables/settings/UserTable.tsx:305 +#: src/tables/settings/UserTable.tsx:304 msgid "Edit user" -msgstr "" +msgstr "Modifier l’utilisateur" + +#: src/tables/stock/InstalledItemsTable.tsx:37 +#: src/tables/stock/InstalledItemsTable.tsx:90 +msgid "Install Item" +msgstr "Installer un élément" + +#: src/tables/stock/InstalledItemsTable.tsx:39 +msgid "Item installed" +msgstr "Élément installé" + +#: src/tables/stock/InstalledItemsTable.tsx:50 +msgid "Uninstall Item" +msgstr "Désinstaller l'élément" + +#: src/tables/stock/InstalledItemsTable.tsx:52 +msgid "Item uninstalled" +msgstr "Élément désinstallé" + +#: src/tables/stock/InstalledItemsTable.tsx:108 +msgid "Uninstall stock item" +msgstr "Désinstaller l'article en stock" #: src/tables/stock/LocationTypesTable.tsx:39 #: src/tables/stock/LocationTypesTable.tsx:109 msgid "Add Location Type" -msgstr "" +msgstr "Ajouter un type d'emplacement" #: src/tables/stock/LocationTypesTable.tsx:47 msgid "Edit Location Type" -msgstr "" +msgstr "Modifier le type d'emplacement" #: src/tables/stock/LocationTypesTable.tsx:55 msgid "Delete Location Type" -msgstr "" +msgstr "Supprimer le type d'emplacement" #: src/tables/stock/LocationTypesTable.tsx:63 msgid "Icon" -msgstr "" +msgstr "Icône" -#: src/tables/stock/StockItemTable.tsx:101 +#: src/tables/stock/StockItemTable.tsx:90 msgid "This stock item is in production" msgstr "" -#: src/tables/stock/StockItemTable.tsx:110 +#: src/tables/stock/StockItemTable.tsx:97 msgid "This stock item has been assigned to a sales order" msgstr "" -#: src/tables/stock/StockItemTable.tsx:119 +#: src/tables/stock/StockItemTable.tsx:104 msgid "This stock item has been assigned to a customer" msgstr "" -#: src/tables/stock/StockItemTable.tsx:128 +#: src/tables/stock/StockItemTable.tsx:111 msgid "This stock item is installed in another stock item" msgstr "" -#: src/tables/stock/StockItemTable.tsx:137 +#: src/tables/stock/StockItemTable.tsx:118 msgid "This stock item has been consumed by a build order" msgstr "" -#: src/tables/stock/StockItemTable.tsx:146 +#: src/tables/stock/StockItemTable.tsx:125 +msgid "This stock item is unavailable" +msgstr "" + +#: src/tables/stock/StockItemTable.tsx:134 msgid "This stock item has expired" msgstr "" -#: src/tables/stock/StockItemTable.tsx:150 +#: src/tables/stock/StockItemTable.tsx:138 msgid "This stock item is stale" msgstr "" -#: src/tables/stock/StockItemTable.tsx:161 +#: src/tables/stock/StockItemTable.tsx:150 msgid "This stock item is fully allocated" msgstr "" -#: src/tables/stock/StockItemTable.tsx:168 +#: src/tables/stock/StockItemTable.tsx:157 msgid "This stock item is partially allocated" msgstr "" -#: src/tables/stock/StockItemTable.tsx:196 +#: src/tables/stock/StockItemTable.tsx:185 msgid "This stock item has been depleted" msgstr "" -#: src/tables/stock/StockItemTable.tsx:232 +#: src/tables/stock/StockItemTable.tsx:280 msgid "Stocktake Date" msgstr "" -#: src/tables/stock/StockItemTable.tsx:236 -msgid "Expiry Date" -msgstr "" - -#: src/tables/stock/StockItemTable.tsx:260 -msgid "Stock Value" -msgstr "" - -#: src/tables/stock/StockItemTable.tsx:290 +#: src/tables/stock/StockItemTable.tsx:294 msgid "Show stock for active parts" msgstr "" -#: src/tables/stock/StockItemTable.tsx:295 +#: src/tables/stock/StockItemTable.tsx:299 msgid "Filter by stock status" -msgstr "" +msgstr "Filtrer par état du stock" #: src/tables/stock/StockItemTable.tsx:301 -msgid "Show stock for assmebled parts" -msgstr "" +#~ msgid "Show stock for assmebled parts" +#~ msgstr "Show stock for assmebled parts" -#: src/tables/stock/StockItemTable.tsx:306 +#: src/tables/stock/StockItemTable.tsx:305 +msgid "Show stock for assembled parts" +msgstr "Afficher le stock pour les pièces actives" + +#: src/tables/stock/StockItemTable.tsx:310 msgid "Show items which have been allocated" msgstr "" -#: src/tables/stock/StockItemTable.tsx:311 +#: src/tables/stock/StockItemTable.tsx:315 msgid "Show items which are available" msgstr "" -#: src/tables/stock/StockItemTable.tsx:315 +#: src/tables/stock/StockItemTable.tsx:319 #: src/tables/stock/StockLocationTable.tsx:44 msgid "Include Sublocations" msgstr "" -#: src/tables/stock/StockItemTable.tsx:316 +#: src/tables/stock/StockItemTable.tsx:320 msgid "Include stock in sublocations" msgstr "" -#: src/tables/stock/StockItemTable.tsx:320 +#: src/tables/stock/StockItemTable.tsx:324 msgid "Depleted" -msgstr "" +msgstr "Epuisé" -#: src/tables/stock/StockItemTable.tsx:321 +#: src/tables/stock/StockItemTable.tsx:325 msgid "Show depleted stock items" msgstr "" -#: src/tables/stock/StockItemTable.tsx:326 +#: src/tables/stock/StockItemTable.tsx:330 msgid "Show items which are in stock" msgstr "" -#: src/tables/stock/StockItemTable.tsx:331 +#: src/tables/stock/StockItemTable.tsx:335 msgid "Show items which are in production" msgstr "" -#: src/tables/stock/StockItemTable.tsx:336 +#: src/tables/stock/StockItemTable.tsx:340 msgid "Include stock items for variant parts" msgstr "" -#: src/tables/stock/StockItemTable.tsx:341 +#: src/tables/stock/StockItemTable.tsx:345 msgid "Show stock items which are installed in other items" msgstr "" -#: src/tables/stock/StockItemTable.tsx:345 +#: src/tables/stock/StockItemTable.tsx:349 msgid "Sent to Customer" -msgstr "" - -#: src/tables/stock/StockItemTable.tsx:346 -msgid "Show items which have been sent to a customer" -msgstr "" +msgstr "Envoyer au client" #: src/tables/stock/StockItemTable.tsx:350 +msgid "Show items which have been sent to a customer" +msgstr "Montrer les articles envoyés au client" + +#: src/tables/stock/StockItemTable.tsx:354 msgid "Is Serialized" msgstr "" -#: src/tables/stock/StockItemTable.tsx:351 +#: src/tables/stock/StockItemTable.tsx:355 msgid "Show items which have a serial number" msgstr "" -#: src/tables/stock/StockItemTable.tsx:358 +#: src/tables/stock/StockItemTable.tsx:362 msgid "Has Batch Code" msgstr "" -#: src/tables/stock/StockItemTable.tsx:359 +#: src/tables/stock/StockItemTable.tsx:363 msgid "Show items which have a batch code" msgstr "" -#: src/tables/stock/StockItemTable.tsx:365 +#: src/tables/stock/StockItemTable.tsx:369 msgid "Show tracked items" msgstr "" -#: src/tables/stock/StockItemTable.tsx:369 +#: src/tables/stock/StockItemTable.tsx:373 msgid "Has Purchase Price" msgstr "" -#: src/tables/stock/StockItemTable.tsx:370 +#: src/tables/stock/StockItemTable.tsx:374 msgid "Show items which have a purchase price" msgstr "" -#: src/tables/stock/StockItemTable.tsx:378 +#: src/tables/stock/StockItemTable.tsx:382 msgid "External Location" msgstr "" -#: src/tables/stock/StockItemTable.tsx:379 +#: src/tables/stock/StockItemTable.tsx:383 msgid "Show items in an external location" msgstr "" -#: src/tables/stock/StockItemTable.tsx:451 +#: src/tables/stock/StockItemTable.tsx:456 msgid "Add a new stock item" msgstr "" -#: src/tables/stock/StockItemTable.tsx:460 +#: src/tables/stock/StockItemTable.tsx:465 msgid "Remove some quantity from a stock item" msgstr "" -#: src/tables/stock/StockItemTable.tsx:482 +#: src/tables/stock/StockItemTable.tsx:487 msgid "Move Stock items to new locations" msgstr "" -#: src/tables/stock/StockItemTable.tsx:489 +#: src/tables/stock/StockItemTable.tsx:494 msgid "Change stock status" msgstr "" -#: src/tables/stock/StockItemTable.tsx:491 +#: src/tables/stock/StockItemTable.tsx:496 msgid "Change the status of stock items" msgstr "" -#: src/tables/stock/StockItemTable.tsx:498 +#: src/tables/stock/StockItemTable.tsx:503 msgid "Merge stock" msgstr "" -#: src/tables/stock/StockItemTable.tsx:500 +#: src/tables/stock/StockItemTable.tsx:505 msgid "Merge stock items" msgstr "" -#: src/tables/stock/StockItemTable.tsx:509 -#: src/tables/stock/StockItemTable.tsx:516 +#: src/tables/stock/StockItemTable.tsx:514 +#: src/tables/stock/StockItemTable.tsx:521 msgid "Order new stock" msgstr "" -#: src/tables/stock/StockItemTable.tsx:514 +#: src/tables/stock/StockItemTable.tsx:519 msgid "Assign to customer" msgstr "" -#: src/tables/stock/StockItemTable.tsx:523 +#: src/tables/stock/StockItemTable.tsx:528 msgid "Delete stock" msgstr "" -#: src/tables/stock/StockItemTable.tsx:525 -msgid "Delete stock items" -msgstr "" +#: src/tables/stock/StockItemTable.tsx:528 +#~ msgid "Delete stock items" +#~ msgstr "Delete stock items" -#: src/tables/stock/StockItemTestResultTable.tsx:131 +#: src/tables/stock/StockItemTestResultTable.tsx:137 msgid "Test" -msgstr "" +msgstr "Test" -#: src/tables/stock/StockItemTestResultTable.tsx:157 +#: src/tables/stock/StockItemTestResultTable.tsx:163 msgid "Test result for installed stock item" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:168 -msgid "Result" -msgstr "" - -#: src/tables/stock/StockItemTestResultTable.tsx:190 +#: src/tables/stock/StockItemTestResultTable.tsx:196 msgid "Attachment" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:206 +#: src/tables/stock/StockItemTestResultTable.tsx:212 msgid "Test station" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:226 +#: src/tables/stock/StockItemTestResultTable.tsx:234 msgid "Finished" -msgstr "" +msgstr "Terminé" -#: src/tables/stock/StockItemTestResultTable.tsx:268 -#: src/tables/stock/StockItemTestResultTable.tsx:339 +#: src/tables/stock/StockItemTestResultTable.tsx:286 +#: src/tables/stock/StockItemTestResultTable.tsx:357 msgid "Edit Test Result" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:270 +#: src/tables/stock/StockItemTestResultTable.tsx:288 msgid "Test result updated" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:276 -#: src/tables/stock/StockItemTestResultTable.tsx:348 +#: src/tables/stock/StockItemTestResultTable.tsx:294 +#: src/tables/stock/StockItemTestResultTable.tsx:366 msgid "Delete Test Result" -msgstr "" +msgstr "Supprimer le résultat du test" -#: src/tables/stock/StockItemTestResultTable.tsx:278 +#: src/tables/stock/StockItemTestResultTable.tsx:296 msgid "Test result deleted" -msgstr "" +msgstr "Résultat du test supprimé" -#: src/tables/stock/StockItemTestResultTable.tsx:292 +#: src/tables/stock/StockItemTestResultTable.tsx:310 msgid "Test Passed" -msgstr "" +msgstr "Test validé" -#: src/tables/stock/StockItemTestResultTable.tsx:293 +#: src/tables/stock/StockItemTestResultTable.tsx:311 msgid "Test result has been recorded" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:300 +#: src/tables/stock/StockItemTestResultTable.tsx:318 msgid "Failed to record test result" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:317 +#: src/tables/stock/StockItemTestResultTable.tsx:335 msgid "Pass Test" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:366 +#: src/tables/stock/StockItemTestResultTable.tsx:384 msgid "Show results for required tests" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:370 +#: src/tables/stock/StockItemTestResultTable.tsx:388 msgid "Include Installed" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:371 +#: src/tables/stock/StockItemTestResultTable.tsx:389 msgid "Show results for installed stock items" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:375 -#: src/tables/stock/TestStatisticsTable.tsx:74 +#: src/tables/stock/StockItemTestResultTable.tsx:393 +#: src/tables/stock/TestStatisticsTable.tsx:62 msgid "Passed" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:376 +#: src/tables/stock/StockItemTestResultTable.tsx:394 msgid "Show only passed tests" -msgstr "" +msgstr "Montrer uniquement les tests réussis" #: src/tables/stock/StockLocationTable.tsx:38 #~ msgid "structural" @@ -7911,41 +9168,45 @@ msgstr "" #: src/tables/stock/StockLocationTable.tsx:55 msgid "Show external locations" -msgstr "" +msgstr "Montrer les stockages externes" #: src/tables/stock/StockLocationTable.tsx:59 msgid "Has location type" -msgstr "" +msgstr "Possède un type d'emplacement" #: src/tables/stock/StockLocationTable.tsx:64 msgid "Filter by location type" -msgstr "" +msgstr "Filtrer par type d'emplacement" #: src/tables/stock/StockLocationTable.tsx:107 -#: src/tables/stock/StockLocationTable.tsx:133 +#: src/tables/stock/StockLocationTable.tsx:134 msgid "Add Stock Location" -msgstr "" +msgstr "Ajouter l'emplacement du stock" -#: src/tables/stock/StockTrackingTable.tsx:64 +#: src/tables/stock/StockTrackingTable.tsx:68 msgid "Added" -msgstr "" +msgstr "Ajouté" -#: src/tables/stock/StockTrackingTable.tsx:69 +#: src/tables/stock/StockTrackingTable.tsx:73 msgid "Removed" -msgstr "" +msgstr "Supprimé" #: src/tables/stock/StockTrackingTable.tsx:198 +msgid "Details" +msgstr "Détails" + +#: src/tables/stock/StockTrackingTable.tsx:213 msgid "No user information" -msgstr "" +msgstr "Pas d'informations sur l'utilisateur" -#: src/tables/stock/TestStatisticsTable.tsx:46 -#: src/tables/stock/TestStatisticsTable.tsx:76 +#: src/tables/stock/TestStatisticsTable.tsx:34 +#: src/tables/stock/TestStatisticsTable.tsx:64 msgid "Total" -msgstr "" +msgstr "Total" -#: src/tables/stock/TestStatisticsTable.tsx:75 +#: src/tables/stock/TestStatisticsTable.tsx:63 msgid "Failed" -msgstr "" +msgstr "Échec" #: src/views/MobileAppView.tsx:22 msgid "Mobile viewport detected" diff --git a/src/frontend/src/locales/he/messages.po b/src/frontend/src/locales/he/messages.po index d15ce8a5a3..0357751c7c 100644 --- a/src/frontend/src/locales/he/messages.po +++ b/src/frontend/src/locales/he/messages.po @@ -8,203 +8,482 @@ msgstr "" "Language: he\n" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"PO-Revision-Date: 2024-08-20 19:50\n" +"PO-Revision-Date: 2024-11-04 03:14\n" "Last-Translator: \n" "Language-Team: Hebrew\n" "Plural-Forms: nplurals=4; plural=n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3;\n" "X-Crowdin-Project: inventree\n" "X-Crowdin-Project-ID: 452300\n" "X-Crowdin-Language: he\n" -"X-Crowdin-File: /[inventree.InvenTree] l10/src/frontend/src/locales/en/messages.po\n" -"X-Crowdin-File-ID: 205\n" +"X-Crowdin-File: /src/frontend/src/locales/en/messages.po\n" +"X-Crowdin-File-ID: 252\n" #: src/components/Boundary.tsx:12 msgid "Error rendering component" -msgstr "" +msgstr "שגיאה בעיבוד הרכיב" #: src/components/Boundary.tsx:14 msgid "An error occurred while rendering this component. Refer to the console for more information." -msgstr "" +msgstr "אירעה שגיאה בעת עיבוד רכיב זה. עיין במסוף למידע נוסף." #: src/components/DashboardItemProxy.tsx:34 -msgid "Title" -msgstr "" +#~ msgid "Title" +#~ msgstr "Title" #: src/components/buttons/AdminButton.tsx:80 msgid "Open in admin interface" -msgstr "" +msgstr "פתח בממשק הניהול" #: src/components/buttons/CopyButton.tsx:18 #~ msgid "Copy to clipboard" #~ msgstr "Copy to clipboard" -#: src/components/buttons/CopyButton.tsx:24 +#: src/components/buttons/CopyButton.tsx:29 msgid "Copied" -msgstr "" +msgstr "מועתק" -#: src/components/buttons/CopyButton.tsx:24 +#: src/components/buttons/CopyButton.tsx:29 msgid "Copy" -msgstr "" +msgstr "העתק" -#: src/components/buttons/PrintingActions.tsx:93 +#: src/components/buttons/PrintingActions.tsx:97 msgid "Print Label" -msgstr "" +msgstr "הדפס תווית" -#: src/components/buttons/PrintingActions.tsx:99 +#: src/components/buttons/PrintingActions.tsx:103 msgid "Print" -msgstr "" +msgstr "הדפס" -#: src/components/buttons/PrintingActions.tsx:100 +#: src/components/buttons/PrintingActions.tsx:104 msgid "Label printing completed successfully" -msgstr "" +msgstr "הדפסת התווית הושלמה בהצלחה" -#: src/components/buttons/PrintingActions.tsx:106 -#: src/components/buttons/PrintingActions.tsx:144 -#: src/components/editors/NotesEditor.tsx:65 -#: src/components/editors/NotesEditor.tsx:165 -#: src/components/forms/fields/ApiFormField.tsx:319 +#: src/components/buttons/PrintingActions.tsx:110 +#: src/components/buttons/PrintingActions.tsx:148 +#: src/components/editors/NotesEditor.tsx:73 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:154 +#: src/components/forms/fields/ApiFormField.tsx:328 +#: src/components/forms/fields/TableField.tsx:43 #: src/components/importer/ImportDataSelector.tsx:187 -#: src/components/importer/ImporterColumnSelector.tsx:207 +#: src/components/importer/ImporterColumnSelector.tsx:210 #: src/components/modals/LicenseModal.tsx:75 -#: src/components/nav/SearchDrawer.tsx:448 +#: src/components/nav/SearchDrawer.tsx:458 +#: src/components/render/ModelType.tsx:290 #: src/pages/ErrorPage.tsx:11 -#: src/pages/part/PartPricingPanel.tsx:67 -#: src/tables/InvenTreeTable.tsx:495 +#: src/pages/part/PartPricingPanel.tsx:71 +#: src/tables/InvenTreeTable.tsx:481 #: src/tables/bom/BomTable.tsx:450 -#: src/tables/stock/StockItemTestResultTable.tsx:299 +#: src/tables/stock/StockItemTestResultTable.tsx:317 msgid "Error" -msgstr "" +msgstr "שגיאה" -#: src/components/buttons/PrintingActions.tsx:107 +#: src/components/buttons/PrintingActions.tsx:111 msgid "The label could not be generated" -msgstr "" +msgstr "לא היה ניתן ליצור את התווית" -#: src/components/buttons/PrintingActions.tsx:122 +#: src/components/buttons/PrintingActions.tsx:126 msgid "Print Report" -msgstr "" +msgstr "דוח הדפסה" -#: src/components/buttons/PrintingActions.tsx:138 +#: src/components/buttons/PrintingActions.tsx:142 msgid "Generate" -msgstr "" +msgstr "ליצור" -#: src/components/buttons/PrintingActions.tsx:139 +#: src/components/buttons/PrintingActions.tsx:143 msgid "Report printing completed successfully" -msgstr "" +msgstr "הדפסת הדוח הושלמה בהצלחה" -#: src/components/buttons/PrintingActions.tsx:145 +#: src/components/buttons/PrintingActions.tsx:149 msgid "The report could not be generated" msgstr "" -#: src/components/buttons/PrintingActions.tsx:173 +#: src/components/buttons/PrintingActions.tsx:177 msgid "Printing Actions" -msgstr "" +msgstr "פעולות הדפסה" -#: src/components/buttons/PrintingActions.tsx:178 +#: src/components/buttons/PrintingActions.tsx:182 msgid "Print Labels" -msgstr "" +msgstr "הדפס תווית" -#: src/components/buttons/PrintingActions.tsx:184 +#: src/components/buttons/PrintingActions.tsx:188 msgid "Print Reports" +msgstr "הדפס דוחות" + +#: src/components/buttons/RemoveRowButton.tsx:8 +msgid "Remove this row" msgstr "" #: src/components/buttons/ScanButton.tsx:15 -msgid "Scan QR code" +#: src/components/nav/NavigationDrawer.tsx:117 +#: src/forms/PurchaseOrderForms.tsx:379 +#: src/forms/PurchaseOrderForms.tsx:473 +msgid "Scan Barcode" +msgstr "" + +#: src/components/buttons/ScanButton.tsx:15 +#~ msgid "Scan QR code" +#~ msgstr "Scan QR code" + +#: src/components/buttons/ScanButton.tsx:20 +msgid "Open Barcode Scanner" msgstr "" #: src/components/buttons/ScanButton.tsx:20 -msgid "Open QR code scanner" -msgstr "" +#~ msgid "Open QR code scanner" +#~ msgstr "Open QR code scanner" #: src/components/buttons/SpotlightButton.tsx:14 msgid "Open spotlight" -msgstr "" +msgstr "פתח זרקור" #: src/components/buttons/YesNoButton.tsx:16 msgid "Pass" -msgstr "" +msgstr "עבר" #: src/components/buttons/YesNoButton.tsx:17 msgid "Fail" -msgstr "" +msgstr "כשל" #: src/components/buttons/YesNoButton.tsx:33 -#: src/tables/Filter.tsx:52 +#: src/tables/Filter.tsx:61 msgid "Yes" -msgstr "" +msgstr "כו" #: src/components/buttons/YesNoButton.tsx:33 -#: src/tables/Filter.tsx:53 +#: src/tables/Filter.tsx:62 msgid "No" +msgstr "לא" + +#: src/components/dashboard/DashboardLayout.tsx:286 +msgid "No Widgets Selected" msgstr "" -#: src/components/details/Details.tsx:301 +#: src/components/dashboard/DashboardLayout.tsx:289 +msgid "Use the menu to add widgets to the dashboard" +msgstr "" + +#: src/components/dashboard/DashboardMenu.tsx:59 +#: src/components/dashboard/DashboardMenu.tsx:126 +msgid "Accept Layout" +msgstr "" + +#: src/components/dashboard/DashboardMenu.tsx:91 +#: src/components/nav/NavigationDrawer.tsx:71 +#: src/defaults/actions.tsx:17 +#: src/defaults/links.tsx:9 +#: src/pages/Index/Settings/UserSettings.tsx:47 +msgid "Dashboard" +msgstr "דאשבורד" + +#: src/components/dashboard/DashboardMenu.tsx:99 +msgid "Edit Layout" +msgstr "ערוך פריסה" + +#: src/components/dashboard/DashboardMenu.tsx:108 +msgid "Add Widget" +msgstr "" + +#: src/components/dashboard/DashboardMenu.tsx:117 +msgid "Remove Widgets" +msgstr "" + +#: src/components/dashboard/DashboardWidget.tsx:65 +msgid "Remove this widget from the dashboard" +msgstr "" + +#: src/components/dashboard/DashboardWidgetDrawer.tsx:77 +msgid "Filter dashboard widgets" +msgstr "" + +#: src/components/dashboard/DashboardWidgetDrawer.tsx:98 +msgid "Add this widget to the dashboard" +msgstr "" + +#: src/components/dashboard/DashboardWidgetDrawer.tsx:123 +msgid "No Widgets Available" +msgstr "" + +#: src/components/dashboard/DashboardWidgetDrawer.tsx:124 +msgid "There are no more widgets available for the dashboard" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:19 +msgid "Subscribed Parts" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:20 +msgid "Show the number of parts which you have subscribed to" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:26 +msgid "Subscribed Categories" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:27 +msgid "Show the number of part categories which you have subscribed to" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:35 +#: src/pages/part/PartSchedulingDetail.tsx:304 +#: src/tables/part/PartTable.tsx:238 +msgid "Low Stock" +msgstr "מלאי נמוך" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:37 +msgid "Show the number of parts which are low on stock" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:43 +msgid "Expired Stock Items" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:45 +msgid "Show the number of stock items which have expired" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:51 +msgid "Stale Stock Items" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:53 +msgid "Show the number of stock items which are stale" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:59 +msgid "Active Build Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:61 +msgid "Show the number of build orders which are currently active" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:66 +msgid "Overdue Build Orders" +msgstr "הכנת הזמנות באיחור" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:68 +msgid "Show the number of build orders which are overdue" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:73 +msgid "Assigned Build Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:75 +msgid "Show the number of build orders which are assigned to you" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:80 +msgid "Active Sales Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:82 +msgid "Show the number of sales orders which are currently active" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:87 +msgid "Overdue Sales Orders" +msgstr "איחור בהזמנות מכירה" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:89 +msgid "Show the number of sales orders which are overdue" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:94 +msgid "Assigned Sales Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:96 +msgid "Show the number of sales orders which are assigned to you" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:101 +msgid "Active Purchase Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:103 +msgid "Show the number of purchase orders which are currently active" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:108 +msgid "Overdue Purchase Orders" +msgstr "הזמנות רכש באיחור" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:110 +msgid "Show the number of purchase orders which are overdue" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:115 +msgid "Assigned Purchase Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:117 +msgid "Show the number of purchase orders which are assigned to you" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:122 +msgid "Active Return Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:124 +msgid "Show the number of return orders which are currently active" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:129 +msgid "Overdue Return Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:131 +msgid "Show the number of return orders which are overdue" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:136 +msgid "Assigned Return Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:138 +msgid "Show the number of return orders which are assigned to you" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:149 +#: src/components/dashboard/widgets/GetStartedWidget.tsx:15 +#: src/defaults/links.tsx:38 +msgid "Getting Started" +msgstr "תחילת עבודה" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:150 +#: src/defaults/links.tsx:41 +msgid "Getting started with InvenTree" +msgstr "תחילת העבודה עם InvenTree" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:157 +#: src/components/dashboard/widgets/NewsWidget.tsx:123 +msgid "News Updates" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:158 +msgid "The latest news from InvenTree" +msgstr "" + +#: src/components/dashboard/widgets/ColorToggleWidget.tsx:18 +#: src/components/nav/MainMenu.tsx:77 +msgid "Change Color Mode" +msgstr "שנה מצב צבע" + +#: src/components/dashboard/widgets/ColorToggleWidget.tsx:23 +msgid "Change the color mode of the user interface" +msgstr "" + +#: src/components/dashboard/widgets/LanguageSelectWidget.tsx:18 +msgid "Change Language" +msgstr "" + +#: src/components/dashboard/widgets/LanguageSelectWidget.tsx:23 +msgid "Change the language of the user interface" +msgstr "" + +#: src/components/dashboard/widgets/NewsWidget.tsx:61 +#: src/components/nav/NotificationDrawer.tsx:88 +#: src/pages/Notifications.tsx:73 +msgid "Mark as read" +msgstr "סמן כנקרא" + +#: src/components/dashboard/widgets/NewsWidget.tsx:115 +msgid "Requires Superuser" +msgstr "" + +#: src/components/dashboard/widgets/NewsWidget.tsx:116 +msgid "This widget requires superuser permissions" +msgstr "" + +#: src/components/dashboard/widgets/NewsWidget.tsx:133 +msgid "No News" +msgstr "" + +#: src/components/dashboard/widgets/NewsWidget.tsx:134 +msgid "There are no unread news items" +msgstr "" + +#: src/components/details/Details.tsx:300 msgid "No name defined" -msgstr "" +msgstr "לא הוגדר שם" -#: src/components/details/DetailsImage.tsx:65 +#: src/components/details/DetailsImage.tsx:69 msgid "Remove Image" -msgstr "" +msgstr "הסר תמונה" -#: src/components/details/DetailsImage.tsx:68 +#: src/components/details/DetailsImage.tsx:72 msgid "Remove the associated image from this item?" -msgstr "" +msgstr "האם להסיר את התמונה המשויכת מפריט זה?" -#: src/components/details/DetailsImage.tsx:71 -#: src/forms/StockForms.tsx:533 +#: src/components/details/DetailsImage.tsx:75 +#: src/forms/StockForms.tsx:651 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:199 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:306 -#: src/pages/stock/StockDetail.tsx:526 +#: src/pages/stock/StockDetail.tsx:690 msgid "Remove" -msgstr "" +msgstr "הסר" -#: src/components/details/DetailsImage.tsx:71 -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:158 -#: src/components/items/ActionDropdown.tsx:215 -#: src/components/items/ActionDropdown.tsx:216 -#: src/contexts/ThemeContext.tsx:43 +#: src/components/details/DetailsImage.tsx:75 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:184 +#: src/components/items/ActionDropdown.tsx:268 +#: src/components/items/ActionDropdown.tsx:269 +#: src/contexts/ThemeContext.tsx:45 #: src/hooks/UseForm.tsx:40 -#: src/tables/FilterSelectDrawer.tsx:205 -#: src/tables/build/BuildOutputTable.tsx:286 +#: src/tables/FilterSelectDrawer.tsx:241 +#: src/tables/RowActions.tsx:59 +#: src/tables/build/BuildOutputTable.tsx:434 msgid "Cancel" -msgstr "" +msgstr "בטל" -#: src/components/details/DetailsImage.tsx:97 +#: src/components/details/DetailsImage.tsx:101 msgid "Drag and drop to upload" -msgstr "" +msgstr "גרור ושחרר כדי להעלות" -#: src/components/details/DetailsImage.tsx:100 +#: src/components/details/DetailsImage.tsx:104 msgid "Click to select file(s)" -msgstr "" +msgstr "לחץ כדי לבחור קובץ/ים" -#: src/components/details/DetailsImage.tsx:226 +#: src/components/details/DetailsImage.tsx:230 msgid "Clear" -msgstr "" +msgstr "נקה" -#: src/components/details/DetailsImage.tsx:232 -#: src/components/forms/ApiForm.tsx:627 -#: src/contexts/ThemeContext.tsx:43 -#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:60 +#: src/components/details/DetailsImage.tsx:236 +#: src/components/forms/ApiForm.tsx:660 +#: src/contexts/ThemeContext.tsx:45 msgid "Submit" -msgstr "" - -#: src/components/details/DetailsImage.tsx:272 -msgid "Select from existing images" -msgstr "" +msgstr "שלח" #: src/components/details/DetailsImage.tsx:280 +msgid "Select from existing images" +msgstr "בחר מתוך תמונות קיימות" + +#: src/components/details/DetailsImage.tsx:288 msgid "Select Image" +msgstr "בחר תמונה" + +#: src/components/details/DetailsImage.tsx:304 +msgid "Download remote image" msgstr "" -#: src/components/details/DetailsImage.tsx:292 +#: src/components/details/DetailsImage.tsx:319 msgid "Upload new image" -msgstr "" +msgstr "העלה תמונה חדשה" -#: src/components/details/DetailsImage.tsx:299 +#: src/components/details/DetailsImage.tsx:326 msgid "Upload Image" +msgstr "העלה תמונה" + +#: src/components/details/DetailsImage.tsx:339 +msgid "Delete image" +msgstr "מחק תמונה" + +#: src/components/details/DetailsImage.tsx:373 +msgid "Download Image" msgstr "" -#: src/components/details/DetailsImage.tsx:312 -msgid "Delete image" +#: src/components/details/DetailsImage.tsx:378 +msgid "Image downloaded successfully" msgstr "" #: src/components/details/PartIcons.tsx:43 @@ -235,39 +514,60 @@ msgstr "" #~ msgid "Part is virtual (not a physical part)" #~ msgstr "Part is virtual (not a physical part)" -#: src/components/editors/NotesEditor.tsx:66 +#: src/components/editors/NotesEditor.tsx:74 msgid "Image upload failed" -msgstr "" +msgstr "העלאת התמונה נכשלה" -#: src/components/editors/NotesEditor.tsx:156 -#: src/components/forms/ApiForm.tsx:467 +#: src/components/editors/NotesEditor.tsx:83 +#: src/components/editors/NotesEditor.tsx:119 +#: src/components/forms/ApiForm.tsx:475 #: src/tables/bom/BomTable.tsx:441 msgid "Success" +msgstr "הצלחה" + +#: src/components/editors/NotesEditor.tsx:84 +msgid "Image uploaded successfully" msgstr "" -#: src/components/editors/NotesEditor.tsx:157 +#: src/components/editors/NotesEditor.tsx:120 msgid "Notes saved successfully" -msgstr "" +msgstr "ההערות נשמרו בהצלחה" -#: src/components/editors/NotesEditor.tsx:166 +#: src/components/editors/NotesEditor.tsx:131 msgid "Failed to save notes" +msgstr "שמירת ההערות נכשלה" + +#: src/components/editors/NotesEditor.tsx:134 +msgid "Error Saving Notes" msgstr "" -#: src/components/editors/NotesEditor.tsx:198 -msgid "Preview Notes" -msgstr "" +#: src/components/editors/NotesEditor.tsx:151 +#~ msgid "Disable Editing" +#~ msgstr "Disable Editing" -#: src/components/editors/NotesEditor.tsx:198 -msgid "Edit Notes" -msgstr "" - -#: src/components/editors/NotesEditor.tsx:212 +#: src/components/editors/NotesEditor.tsx:154 msgid "Save Notes" +msgstr "שמור הערות" + +#: src/components/editors/NotesEditor.tsx:173 +msgid "Close Editor" msgstr "" +#: src/components/editors/NotesEditor.tsx:180 +msgid "Enable Editing" +msgstr "" + +#: src/components/editors/NotesEditor.tsx:198 +#~ msgid "Preview Notes" +#~ msgstr "Preview Notes" + +#: src/components/editors/NotesEditor.tsx:198 +#~ msgid "Edit Notes" +#~ msgstr "Edit Notes" + #: src/components/editors/TemplateEditor/CodeEditor/index.tsx:9 msgid "Code" -msgstr "" +msgstr "קוד" #: src/components/editors/TemplateEditor/PdfPreview/PdfPreview.tsx:44 #~ msgid "Failed to parse error response from server." @@ -275,152 +575,157 @@ msgstr "" #: src/components/editors/TemplateEditor/PdfPreview/PdfPreview.tsx:81 msgid "Preview not available, click \"Reload Preview\"." -msgstr "" +msgstr "תצוגה מקדימה אינה זמינה, לחץ/י \"טען מחדש תצוגה מקדימה\". " #: src/components/editors/TemplateEditor/PdfPreview/index.tsx:9 msgid "PDF Preview" -msgstr "" +msgstr "תצוגה מקדימה של פי.די.אף [pdf]" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:104 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:115 msgid "Error loading template" -msgstr "" +msgstr "שגיאה בטעינת התבנית" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:116 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:127 msgid "Error saving template" -msgstr "" - -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:146 -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:274 -msgid "Save & Reload Preview" -msgstr "" - -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:151 -msgid "Are you sure you want to Save & Reload the preview?" -msgstr "" +msgstr "שגיאה בשמירת התבנית" #: src/components/editors/TemplateEditor/TemplateEditor.tsx:151 #~ msgid "Save & Reload preview?" #~ msgstr "Save & Reload preview?" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:153 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:155 +msgid "Could not load the template from the server." +msgstr "" + +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:172 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:303 +msgid "Save & Reload Preview" +msgstr "שמור וטען מחדש תצוגה מקדימה" + +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:177 +msgid "Are you sure you want to Save & Reload the preview?" +msgstr "האם את/ה בטוח/ה שברצונך לשמור ולטעון מחדש את התצוגה המקדימה? " + +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:179 msgid "To render the preview the current template needs to be replaced on the server with your modifications which may break the label if it is under active use. Do you want to proceed?" -msgstr "" +msgstr "כדי להציג את התצוגה המקדימה יש להחליף את התבנית הנוכחית בשרת בתבנית שעברה שינויים אשר עלולים לשבור את התווית אם היא בשימוש פעיל. האם את/ה רוצה להמשיך?" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:157 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:183 msgid "Save & Reload" -msgstr "" +msgstr "שמור וטען מחדש" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:189 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:215 msgid "Preview updated" -msgstr "" +msgstr "התצוגה המקדימה עודכנה" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:190 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:216 msgid "The preview has been updated successfully." -msgstr "" +msgstr "התצוגה המקדימה עודכנה בהצלחה." #: src/components/editors/TemplateEditor/TemplateEditor.tsx:263 #~ msgid "Save & Reload preview" #~ msgstr "Save & Reload preview" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:266 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:295 msgid "Reload preview" -msgstr "" +msgstr "טען מחדש תצוגה מקדימה" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:267 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:296 msgid "Use the currently stored template from the server" -msgstr "" +msgstr "השתמש בתבנית המאוחסנת כעת מהשרת" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:275 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:304 msgid "Save the current template and reload the preview" -msgstr "" +msgstr "שמור את התבנית הנוכחית וטען מחדש את התצוגה המקדימה" #: src/components/editors/TemplateEditor/TemplateEditor.tsx:322 #~ msgid "to preview" #~ msgstr "to preview" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:333 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:365 msgid "Select instance to preview" -msgstr "" +msgstr "בחר מופע לתצוגה מקדימה" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:377 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:409 msgid "Error rendering template" -msgstr "" +msgstr "שגיאה בעיבוד התבנית" #: src/components/errors/ClientError.tsx:23 msgid "Client Error" -msgstr "" +msgstr "שגיאת לקוח [שגיאה בקליינט]" #: src/components/errors/ClientError.tsx:24 msgid "Client error occurred" -msgstr "" +msgstr "אירעה שגיאת לקוח [שגיאה בקליינט]" #: src/components/errors/GenericErrorPage.tsx:50 msgid "Status Code" -msgstr "" +msgstr "סטטוס קוד" #: src/components/errors/GenericErrorPage.tsx:63 msgid "Return to the index page" -msgstr "" +msgstr "חזור לדף האינדקס" #: src/components/errors/NotAuthenticated.tsx:8 msgid "Not Authenticated" -msgstr "" +msgstr "לא מאומת" #: src/components/errors/NotAuthenticated.tsx:9 msgid "You are not logged in." -msgstr "" +msgstr "את/ה לא מחובר/ת." #: src/components/errors/NotFound.tsx:8 msgid "Page Not Found" -msgstr "" +msgstr "הדף לא נמצא" #: src/components/errors/NotFound.tsx:9 msgid "This page does not exist" -msgstr "" +msgstr "הדף הזה לא קיים" #: src/components/errors/PermissionDenied.tsx:8 +#: src/functions/notifications.tsx:24 msgid "Permission Denied" -msgstr "" +msgstr "הרשאה נדחתה" #: src/components/errors/PermissionDenied.tsx:9 msgid "You do not have permission to view this page." -msgstr "" +msgstr "אין לך הרשאה לצפות בדף זה." #: src/components/errors/ServerError.tsx:8 msgid "Server Error" -msgstr "" +msgstr "שגיאת שרת" #: src/components/errors/ServerError.tsx:9 msgid "A server error occurred" -msgstr "" +msgstr "אירעה שגיאת שרת" -#: src/components/forms/ApiForm.tsx:151 -#: src/components/forms/ApiForm.tsx:555 +#: src/components/forms/ApiForm.tsx:154 +#: src/components/forms/ApiForm.tsx:579 msgid "Form Error" -msgstr "" +msgstr "שגיאת טופס" #: src/components/forms/ApiForm.tsx:487 #~ msgid "Form Errors Exist" #~ msgstr "Form Errors Exist" -#: src/components/forms/ApiForm.tsx:563 +#: src/components/forms/ApiForm.tsx:587 msgid "Errors exist for one or more form fields" -msgstr "" +msgstr "קיימות שגיאות עבור שדה טופס אחד או יותר" -#: src/components/forms/ApiForm.tsx:665 -#: src/tables/plugin/PluginListTable.tsx:388 +#: src/components/forms/ApiForm.tsx:698 +#: src/tables/plugin/PluginListTable.tsx:195 msgid "Update" -msgstr "" +msgstr "עדכן" -#: src/components/forms/ApiForm.tsx:685 -#: src/components/items/ActionDropdown.tsx:195 +#: src/components/forms/ApiForm.tsx:718 +#: src/components/items/ActionDropdown.tsx:248 #: src/hooks/UseForm.tsx:122 -#: src/pages/Index/Scan.tsx:343 +#: src/pages/Index/Scan.tsx:357 #: src/pages/Notifications.tsx:123 -#: src/tables/RowActions.tsx:43 -#: src/tables/plugin/PluginListTable.tsx:420 +#: src/tables/RowActions.tsx:49 +#: src/tables/plugin/PluginListTable.tsx:232 msgid "Delete" -msgstr "" +msgstr "מחק" #: src/components/forms/AuthenticationForm.tsx:48 #: src/components/forms/AuthenticationForm.tsx:74 @@ -428,14 +733,6 @@ msgstr "" #~ msgid "Check your your input and try again." #~ msgstr "Check your your input and try again." -#: src/components/forms/AuthenticationForm.tsx:51 -msgid "Login successful" -msgstr "" - -#: src/components/forms/AuthenticationForm.tsx:52 -msgid "Logged in successfully" -msgstr "" - #: src/components/forms/AuthenticationForm.tsx:52 #~ msgid "Welcome back!" #~ msgstr "Welcome back!" @@ -444,253 +741,264 @@ msgstr "" #~ msgid "Login successfull" #~ msgstr "Login successfull" -#: src/components/forms/AuthenticationForm.tsx:58 -msgid "Login failed" -msgstr "" +#: src/components/forms/AuthenticationForm.tsx:55 +msgid "Login successful" +msgstr "התחברות מוצלחת" -#: src/components/forms/AuthenticationForm.tsx:59 -#: src/components/forms/AuthenticationForm.tsx:76 -#: src/components/forms/AuthenticationForm.tsx:211 -#: src/functions/auth.tsx:164 +#: src/components/forms/AuthenticationForm.tsx:56 +msgid "Logged in successfully" +msgstr "התחברת בהצלחה" + +#: src/components/forms/AuthenticationForm.tsx:61 +msgid "Login failed" +msgstr "הכניסה נכשלה" + +#: src/components/forms/AuthenticationForm.tsx:62 +#: src/components/forms/AuthenticationForm.tsx:79 +#: src/components/forms/AuthenticationForm.tsx:214 +#: src/functions/auth.tsx:175 msgid "Check your input and try again." -msgstr "" +msgstr "בדוק את הקלט שלך ונסה שוב." #: src/components/forms/AuthenticationForm.tsx:65 #: src/functions/auth.tsx:74 #~ msgid "Mail delivery successfull" #~ msgstr "Mail delivery successfull" -#: src/components/forms/AuthenticationForm.tsx:70 -#: src/functions/auth.tsx:155 +#: src/components/forms/AuthenticationForm.tsx:73 +#: src/functions/auth.tsx:166 msgid "Mail delivery successful" -msgstr "" +msgstr "הדואר נשלח בהצלחה" -#: src/components/forms/AuthenticationForm.tsx:71 +#: src/components/forms/AuthenticationForm.tsx:74 msgid "Check your inbox for the login link. If you have an account, you will receive a login link. Check in spam too." -msgstr "" +msgstr "בדוק/י בתיבת הדואר הנכנס שלך את קישור הכניסה. אם יש לך חשבון, תקבל/י קישור כניסה. מומלץ לבדוק גם ספאם." -#: src/components/forms/AuthenticationForm.tsx:75 +#: src/components/forms/AuthenticationForm.tsx:78 msgid "Mail delivery failed" -msgstr "" +msgstr "שליחת הדואר נכשלה" -#: src/components/forms/AuthenticationForm.tsx:95 +#: src/components/forms/AuthenticationForm.tsx:98 msgid "Or continue with other methods" -msgstr "" +msgstr "או להמשיך בשיטות אחרות" -#: src/components/forms/AuthenticationForm.tsx:106 -#: src/components/forms/AuthenticationForm.tsx:227 +#: src/components/forms/AuthenticationForm.tsx:109 +#: src/components/forms/AuthenticationForm.tsx:230 +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:67 msgid "Username" -msgstr "" +msgstr "שם משתמש" -#: src/components/forms/AuthenticationForm.tsx:107 -#: src/components/forms/AuthenticationForm.tsx:228 +#: src/components/forms/AuthenticationForm.tsx:110 +#: src/components/forms/AuthenticationForm.tsx:231 msgid "Your username" -msgstr "" +msgstr "שם המשתמש שלך" -#: src/components/forms/AuthenticationForm.tsx:112 -#: src/components/forms/AuthenticationForm.tsx:240 -#: src/pages/Auth/Set-Password.tsx:106 +#: src/components/forms/AuthenticationForm.tsx:115 +#: src/components/forms/AuthenticationForm.tsx:243 +#: src/pages/Auth/Set-Password.tsx:101 msgid "Password" -msgstr "" +msgstr "סיסמה" -#: src/components/forms/AuthenticationForm.tsx:113 -#: src/components/forms/AuthenticationForm.tsx:241 +#: src/components/forms/AuthenticationForm.tsx:116 +#: src/components/forms/AuthenticationForm.tsx:244 msgid "Your password" -msgstr "" +msgstr "הסיסמה שלך" -#: src/components/forms/AuthenticationForm.tsx:125 +#: src/components/forms/AuthenticationForm.tsx:128 #: src/pages/Auth/Reset.tsx:26 msgid "Reset password" -msgstr "" +msgstr "איפוס סיסמה" #: src/components/forms/AuthenticationForm.tsx:131 #~ msgid "Log in" #~ msgstr "Log in" -#: src/components/forms/AuthenticationForm.tsx:134 -#: src/components/forms/AuthenticationForm.tsx:233 -#: src/pages/Auth/Reset.tsx:31 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:51 -msgid "Email" -msgstr "" - -#: src/components/forms/AuthenticationForm.tsx:135 -#: src/pages/Auth/Reset.tsx:32 -#: src/pages/Auth/Set-Password.tsx:107 -msgid "We will send you a link to login - if you are registered" -msgstr "" - #: src/components/forms/AuthenticationForm.tsx:136 #~ msgid "I will use username and password" #~ msgstr "I will use username and password" -#: src/components/forms/AuthenticationForm.tsx:151 +#: src/components/forms/AuthenticationForm.tsx:137 +#: src/components/forms/AuthenticationForm.tsx:236 +#: src/pages/Auth/Reset.tsx:31 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:51 +msgid "Email" +msgstr "אימייל" + +#: src/components/forms/AuthenticationForm.tsx:138 +#: src/pages/Auth/Reset.tsx:32 +#: src/pages/Auth/Set-Password.tsx:102 +msgid "We will send you a link to login - if you are registered" +msgstr "אנו נשלח לך קישור לכניסה - אם את/ה רשום/ה" + +#: src/components/forms/AuthenticationForm.tsx:154 msgid "Send me an email" -msgstr "" +msgstr "שלח לי מייל" -#: src/components/forms/AuthenticationForm.tsx:153 +#: src/components/forms/AuthenticationForm.tsx:156 msgid "Use username and password" -msgstr "" +msgstr "השתמש בשם משתמש וסיסמה" -#: src/components/forms/AuthenticationForm.tsx:162 +#: src/components/forms/AuthenticationForm.tsx:165 msgid "Log In" -msgstr "" +msgstr "התחבר" -#: src/components/forms/AuthenticationForm.tsx:164 +#: src/components/forms/AuthenticationForm.tsx:167 +#: src/pages/Auth/Reset.tsx:41 +#: src/pages/Auth/Set-Password.tsx:107 msgid "Send Email" -msgstr "" +msgstr "שלח אימייל" -#: src/components/forms/AuthenticationForm.tsx:193 +#: src/components/forms/AuthenticationForm.tsx:196 msgid "Registration successful" -msgstr "" +msgstr "הרישום עבר בהצלחה" -#: src/components/forms/AuthenticationForm.tsx:194 +#: src/components/forms/AuthenticationForm.tsx:197 msgid "Please confirm your email address to complete the registration" -msgstr "" +msgstr "אנא אשר/י את כתובת הדוא\"ל שלך כדי להשלים את ההרשמה" -#: src/components/forms/AuthenticationForm.tsx:210 +#: src/components/forms/AuthenticationForm.tsx:213 msgid "Input error" -msgstr "" +msgstr "שגיאת קלט" -#: src/components/forms/AuthenticationForm.tsx:234 +#: src/components/forms/AuthenticationForm.tsx:237 msgid "This will be used for a confirmation" -msgstr "" +msgstr "זה ישמש לאישור" -#: src/components/forms/AuthenticationForm.tsx:246 +#: src/components/forms/AuthenticationForm.tsx:249 msgid "Password repeat" -msgstr "" +msgstr "חזרה על הסיסמה" -#: src/components/forms/AuthenticationForm.tsx:247 +#: src/components/forms/AuthenticationForm.tsx:250 msgid "Repeat password" -msgstr "" +msgstr "חזור/י על הסיסמה" -#: src/components/forms/AuthenticationForm.tsx:259 -#: src/components/forms/AuthenticationForm.tsx:304 +#: src/components/forms/AuthenticationForm.tsx:262 +#: src/components/forms/AuthenticationForm.tsx:307 msgid "Register" -msgstr "" +msgstr "הרשמה" -#: src/components/forms/AuthenticationForm.tsx:265 +#: src/components/forms/AuthenticationForm.tsx:268 msgid "Or use SSO" -msgstr "" +msgstr "או השתמש ב - SSO [שיטת הזדהות אחת Single Sign On]" -#: src/components/forms/AuthenticationForm.tsx:296 +#: src/components/forms/AuthenticationForm.tsx:299 msgid "Don't have an account?" -msgstr "" +msgstr "אין לך חשבון?" -#: src/components/forms/AuthenticationForm.tsx:315 +#: src/components/forms/AuthenticationForm.tsx:318 msgid "Go back to login" -msgstr "" +msgstr "חזור/י לכניסה" #: src/components/forms/HostOptionsForm.tsx:36 #: src/components/forms/HostOptionsForm.tsx:67 msgid "Host" -msgstr "" +msgstr "מארח" #: src/components/forms/HostOptionsForm.tsx:42 #: src/components/forms/HostOptionsForm.tsx:70 +#: src/components/plugins/PluginDrawer.tsx:69 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:410 +#: src/pages/Index/Settings/AdminCenter/UnitManagmentPanel.tsx:19 #: src/pages/part/CategoryDetail.tsx:81 -#: src/pages/part/PartDetail.tsx:143 -#: src/pages/stock/LocationDetail.tsx:89 -#: src/tables/machine/MachineTypeTable.tsx:65 -#: src/tables/machine/MachineTypeTable.tsx:109 -#: src/tables/machine/MachineTypeTable.tsx:216 -#: src/tables/machine/MachineTypeTable.tsx:319 +#: src/pages/part/PartDetail.tsx:164 +#: src/pages/stock/LocationDetail.tsx:83 +#: src/tables/machine/MachineTypeTable.tsx:70 +#: src/tables/machine/MachineTypeTable.tsx:119 +#: src/tables/machine/MachineTypeTable.tsx:237 +#: src/tables/machine/MachineTypeTable.tsx:340 #: src/tables/plugin/PluginErrorTable.tsx:33 -#: src/tables/plugin/PluginListTable.tsx:126 #: src/tables/purchasing/ManufacturerPartParameterTable.tsx:32 #: src/tables/settings/GroupTable.tsx:147 -#: src/tables/settings/PendingTasksTable.tsx:28 +#: src/tables/settings/PendingTasksTable.tsx:32 #: src/tables/stock/LocationTypesTable.tsx:69 msgid "Name" -msgstr "" +msgstr "שם" #: src/components/forms/HostOptionsForm.tsx:75 msgid "No one here..." -msgstr "" +msgstr "אף אחד כאן ... " #: src/components/forms/HostOptionsForm.tsx:86 msgid "Add Host" -msgstr "" +msgstr "הוסף מארח" #: src/components/forms/HostOptionsForm.tsx:90 msgid "Save" -msgstr "" +msgstr "שמירה" #: src/components/forms/InstanceOptions.tsx:43 msgid "Select destination instance" -msgstr "" +msgstr "בחר מופע יעד" #: src/components/forms/InstanceOptions.tsx:71 msgid "Edit possible host options" -msgstr "" +msgstr "ערוך אפשרויות מארח אפשריות" #: src/components/forms/InstanceOptions.tsx:98 msgid "Version: {0}" -msgstr "" +msgstr "גרסה: {0}" #: src/components/forms/InstanceOptions.tsx:100 msgid "API:{0}" -msgstr "" +msgstr "API" #: src/components/forms/InstanceOptions.tsx:102 msgid "Name: {0}" -msgstr "" +msgstr "שם: {0}" #: src/components/forms/InstanceOptions.tsx:104 msgid "State: <0>worker ({0}), <1>plugins{1}" -msgstr "" +msgstr "מדינה: <0>עובד ({0}), <1>תוספים{1}" #: src/components/forms/fields/IconField.tsx:81 msgid "No icon selected" -msgstr "" +msgstr "לא נבחר סמל" #: src/components/forms/fields/IconField.tsx:159 msgid "Uncategorized" -msgstr "" +msgstr "לא מסווג" #: src/components/forms/fields/IconField.tsx:209 -#: src/components/nav/Layout.tsx:70 +#: src/components/nav/Layout.tsx:77 #: src/tables/part/PartThumbTable.tsx:192 msgid "Search..." -msgstr "" +msgstr "חפש..." #: src/components/forms/fields/IconField.tsx:223 msgid "Select category" -msgstr "" +msgstr "בחר קטגוריה" #: src/components/forms/fields/IconField.tsx:232 msgid "Select pack" -msgstr "" +msgstr "בחר חבילה" #: src/components/forms/fields/IconField.tsx:237 msgid "{0} icons" -msgstr "" - -#: src/components/forms/fields/RelatedModelField.tsx:318 -#: src/pages/Index/Settings/UserSettings.tsx:96 -#: src/tables/Search.tsx:23 -msgid "Search" -msgstr "" +msgstr "{0} סמלים" #: src/components/forms/fields/RelatedModelField.tsx:319 +#: src/pages/Index/Settings/UserSettings.tsx:97 +#: src/tables/Search.tsx:23 +msgid "Search" +msgstr "חפש" + +#: src/components/forms/fields/RelatedModelField.tsx:320 #: src/components/modals/AboutInvenTreeModal.tsx:81 -#: src/components/widgets/WidgetLayout.tsx:120 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:316 msgid "Loading" -msgstr "" +msgstr "טוען" -#: src/components/forms/fields/RelatedModelField.tsx:321 +#: src/components/forms/fields/RelatedModelField.tsx:322 msgid "No results found" -msgstr "" +msgstr "לא נמצאו תוצאות" -#: src/components/forms/fields/TableField.tsx:52 -msgid "modelRenderer entry required for tables" -msgstr "" +#: src/components/forms/fields/TableField.tsx:72 +#~ msgid "modelRenderer entry required for tables" +#~ msgstr "modelRenderer entry required for tables" -#: src/components/forms/fields/TableField.tsx:76 +#: src/components/forms/fields/TableField.tsx:167 msgid "No entries available" -msgstr "" +msgstr "אין ערכים זמינים" #: src/components/images/DetailsImage.tsx:252 #~ msgid "Select image" @@ -698,73 +1006,74 @@ msgstr "" #: src/components/images/Thumbnail.tsx:12 msgid "Thumbnail" -msgstr "" +msgstr "תמונה ממוזערת" #: src/components/importer/ImportDataSelector.tsx:170 msgid "Importing Rows" -msgstr "" +msgstr "ייבוא ​​שורות" #: src/components/importer/ImportDataSelector.tsx:171 msgid "Please wait while the data is imported" -msgstr "" +msgstr "המתן בזמן שהנתונים מיובאים" #: src/components/importer/ImportDataSelector.tsx:188 msgid "An error occurred while importing data" -msgstr "" +msgstr "אירעה שגיאה בעת ייבוא ​​נתונים" #: src/components/importer/ImportDataSelector.tsx:209 msgid "Edit Data" -msgstr "" +msgstr "ערוך נתונים" #: src/components/importer/ImportDataSelector.tsx:237 msgid "Delete Row" -msgstr "" +msgstr "מחק שורה" #: src/components/importer/ImportDataSelector.tsx:267 msgid "Row" -msgstr "" +msgstr "שורה" #: src/components/importer/ImportDataSelector.tsx:285 msgid "Row contains errors" -msgstr "" +msgstr "שורה מכילה שגיאות" #: src/components/importer/ImportDataSelector.tsx:326 msgid "Accept" -msgstr "" +msgstr "קבל" #: src/components/importer/ImportDataSelector.tsx:359 msgid "Valid" -msgstr "" +msgstr "תקף" #: src/components/importer/ImportDataSelector.tsx:360 msgid "Filter by row validation status" -msgstr "" +msgstr "סנן לפי סטטוס אימות שורה" #: src/components/importer/ImportDataSelector.tsx:365 -#: src/tables/build/BuildOutputTable.tsx:266 +#: src/tables/build/BuildOutputTable.tsx:407 msgid "Complete" -msgstr "" +msgstr "הושלם" #: src/components/importer/ImportDataSelector.tsx:366 msgid "Filter by row completion status" -msgstr "" +msgstr "סנן לפי סטטוס השלמת שורה" -#: src/components/importer/ImportDataSelector.tsx:383 +#: src/components/importer/ImportDataSelector.tsx:384 msgid "Import selected rows" -msgstr "" +msgstr "ייבא שורות נבחרות" -#: src/components/importer/ImportDataSelector.tsx:398 +#: src/components/importer/ImportDataSelector.tsx:399 msgid "Processing Data" -msgstr "" +msgstr "מעבד נתונים" -#: src/components/importer/ImporterColumnSelector.tsx:50 -#: src/components/importer/ImporterColumnSelector.tsx:176 +#: src/components/importer/ImporterColumnSelector.tsx:53 +#: src/components/importer/ImporterColumnSelector.tsx:179 +#: src/components/items/ErrorItem.tsx:12 msgid "An error occurred" -msgstr "" +msgstr "אירעה שגיאה" -#: src/components/importer/ImporterColumnSelector.tsx:62 +#: src/components/importer/ImporterColumnSelector.tsx:65 msgid "Select column, or leave blank to ignore this field." -msgstr "" +msgstr "בחר עמודה, או השאר ריק כדי להתעלם משדה זה." #: src/components/importer/ImporterColumnSelector.tsx:91 #~ msgid "Select a column from the data file" @@ -778,167 +1087,197 @@ msgstr "" #~ msgid "Imported Column Name" #~ msgstr "Imported Column Name" -#: src/components/importer/ImporterColumnSelector.tsx:182 +#: src/components/importer/ImporterColumnSelector.tsx:185 msgid "Ignore this field" -msgstr "" +msgstr "התעלם מהשדה הזה" -#: src/components/importer/ImporterColumnSelector.tsx:196 +#: src/components/importer/ImporterColumnSelector.tsx:199 msgid "Mapping data columns to database fields" -msgstr "" +msgstr "מיפוי עמודות נתונים לשדות מסד נתונים" -#: src/components/importer/ImporterColumnSelector.tsx:201 +#: src/components/importer/ImporterColumnSelector.tsx:204 msgid "Accept Column Mapping" -msgstr "" - -#: src/components/importer/ImporterColumnSelector.tsx:214 -msgid "Database Field" -msgstr "" - -#: src/components/importer/ImporterColumnSelector.tsx:215 -msgid "Field Description" -msgstr "" - -#: src/components/importer/ImporterColumnSelector.tsx:216 -msgid "Imported Column" -msgstr "" +msgstr "קבל מיפוי עמודות" #: src/components/importer/ImporterColumnSelector.tsx:217 +msgid "Database Field" +msgstr "שדה מסד נתונים" + +#: src/components/importer/ImporterColumnSelector.tsx:218 +msgid "Field Description" +msgstr "תיאור שדה" + +#: src/components/importer/ImporterColumnSelector.tsx:219 +msgid "Imported Column" +msgstr "עמודה מיובאת" + +#: src/components/importer/ImporterColumnSelector.tsx:220 msgid "Default Value" -msgstr "" - -#: src/components/importer/ImporterDrawer.tsx:44 -msgid "Upload File" -msgstr "" - -#: src/components/importer/ImporterDrawer.tsx:45 -msgid "Map Columns" -msgstr "" +msgstr "ערך ברירת מחדל" #: src/components/importer/ImporterDrawer.tsx:46 -msgid "Import Data" -msgstr "" +msgid "Upload File" +msgstr "העלה קובץ" #: src/components/importer/ImporterDrawer.tsx:47 -msgid "Process Data" -msgstr "" +msgid "Map Columns" +msgstr "עמודות מפה" #: src/components/importer/ImporterDrawer.tsx:48 +msgid "Import Data" +msgstr "ייבוא נתונים" + +#: src/components/importer/ImporterDrawer.tsx:49 +msgid "Process Data" +msgstr "עיבוד נתונים" + +#: src/components/importer/ImporterDrawer.tsx:50 msgid "Complete Import" -msgstr "" +msgstr "יבוא מלא" #: src/components/importer/ImporterDrawer.tsx:97 #~ msgid "Cancel import session" #~ msgstr "Cancel import session" -#: src/components/importer/ImporterDrawer.tsx:104 +#: src/components/importer/ImporterDrawer.tsx:106 msgid "Import Complete" -msgstr "" - -#: src/components/importer/ImporterDrawer.tsx:107 -msgid "Data has been imported successfully" -msgstr "" +msgstr "הייבוא הושלם" #: src/components/importer/ImporterDrawer.tsx:109 -#: src/components/importer/ImporterDrawer.tsx:118 +msgid "Data has been imported successfully" +msgstr "הנתונים יובאו בהצלחה" + +#: src/components/importer/ImporterDrawer.tsx:111 +#: src/components/importer/ImporterDrawer.tsx:120 msgid "Close" -msgstr "" +msgstr "סגור" -#: src/components/importer/ImporterDrawer.tsx:115 +#: src/components/importer/ImporterDrawer.tsx:117 msgid "Unknown Status" -msgstr "" +msgstr "סטטוס לא ידוע" -#: src/components/importer/ImporterDrawer.tsx:116 +#: src/components/importer/ImporterDrawer.tsx:118 msgid "Import session has unknown status" -msgstr "" +msgstr "לסשן הייבוא ​​יש סטטוס לא ידוע" -#: src/components/importer/ImporterDrawer.tsx:135 +#: src/components/importer/ImporterDrawer.tsx:137 msgid "Importing Data" -msgstr "" +msgstr "ייבוא נתונים" #: src/components/importer/ImporterImportProgress.tsx:36 msgid "Importing Records" +msgstr "ייבוא רשומות" + +#: src/components/importer/ImporterImportProgress.tsx:39 +#: src/tables/settings/ImportSessionTable.tsx:78 +msgid "Imported Rows" msgstr "" #: src/components/importer/ImporterImportProgress.tsx:39 -msgid "Imported rows" -msgstr "" +#~ msgid "Imported rows" +#~ msgstr "Imported rows" -#: src/components/items/ActionDropdown.tsx:121 -msgid "Barcode Actions" +#: src/components/items/ActionDropdown.tsx:126 +msgid "Options" msgstr "" #: src/components/items/ActionDropdown.tsx:140 -msgid "View Barcode" -msgstr "" - -#: src/components/items/ActionDropdown.tsx:147 -msgid "View" -msgstr "" - -#: src/components/items/ActionDropdown.tsx:148 -msgid "View barcode" -msgstr "" - -#: src/components/items/ActionDropdown.tsx:161 -msgid "Link Barcode" -msgstr "" +#~ msgid "View Barcode" +#~ msgstr "View Barcode" #: src/components/items/ActionDropdown.tsx:162 -msgid "Link custom barcode" -msgstr "" +#: src/tables/InvenTreeTableHeader.tsx:159 +#: src/tables/InvenTreeTableHeader.tsx:160 +msgid "Barcode Actions" +msgstr "פעולות ברקוד" -#: src/components/items/ActionDropdown.tsx:173 -#: src/forms/PurchaseOrderForms.tsx:426 -msgid "Unlink Barcode" -msgstr "" +#: src/components/items/ActionDropdown.tsx:162 +#~ msgid "Link custom barcode" +#~ msgstr "Link custom barcode" -#: src/components/items/ActionDropdown.tsx:174 -msgid "Unlink custom barcode" -msgstr "" +#: src/components/items/ActionDropdown.tsx:167 +msgid "View" +msgstr "הצג" + +#: src/components/items/ActionDropdown.tsx:169 +msgid "View barcode" +msgstr "הצג ברקוד" + +#: src/components/items/ActionDropdown.tsx:175 +msgid "Link Barcode" +msgstr "קישור ברקוד" + +#: src/components/items/ActionDropdown.tsx:177 +msgid "Link a custom barcode to this item" +msgstr "קשר ברקוד מותאם אישית לפריט זה" #: src/components/items/ActionDropdown.tsx:183 -#: src/tables/RowActions.tsx:33 +#: src/components/items/QRCode.tsx:193 +#: src/forms/PurchaseOrderForms.tsx:464 +msgid "Unlink Barcode" +msgstr "בטל קישור של ברקוד" + +#: src/components/items/ActionDropdown.tsx:185 +msgid "Unlink custom barcode" +msgstr "בטל קישור של ברקוד מותאם אישית" + +#: src/components/items/ActionDropdown.tsx:236 +#: src/tables/RowActions.tsx:39 msgid "Edit" -msgstr "" +msgstr "ערוך" -#: src/components/items/ActionDropdown.tsx:184 +#: src/components/items/ActionDropdown.tsx:237 msgid "Edit item" -msgstr "" +msgstr "ערוך פריט" -#: src/components/items/ActionDropdown.tsx:196 +#: src/components/items/ActionDropdown.tsx:249 msgid "Delete item" -msgstr "" +msgstr "מחק פריט" -#: src/components/items/ActionDropdown.tsx:204 -#: src/components/items/ActionDropdown.tsx:205 +#: src/components/items/ActionDropdown.tsx:257 +#: src/components/items/ActionDropdown.tsx:258 msgid "Hold" -msgstr "" +msgstr "בהחזק [המתנה]" -#: src/components/items/ActionDropdown.tsx:227 -#: src/tables/RowActions.tsx:23 +#: src/components/items/ActionDropdown.tsx:280 +#: src/tables/RowActions.tsx:29 msgid "Duplicate" -msgstr "" +msgstr "Duplicate" -#: src/components/items/ActionDropdown.tsx:228 +#: src/components/items/ActionDropdown.tsx:281 msgid "Duplicate item" +msgstr "פריט משוכפל" + +#: src/components/items/BarcodeInput.tsx:23 +msgid "Scan barcode data here using barcode scanner" +msgstr "סרוק נתוני ברקוד כאן באמצעות סורק ברקוד" + +#: src/components/items/BarcodeInput.tsx:24 +#: src/tables/settings/BarcodeScanHistoryTable.tsx:65 +msgid "Barcode" +msgstr "בחר רמת תיקון שגיאות" + +#: src/components/items/BarcodeInput.tsx:25 +msgid "Scan" msgstr "" #: src/components/items/DocTooltip.tsx:92 +#: src/components/items/GettingStartedCarousel.tsx:20 msgid "Read More" -msgstr "" +msgstr "קרא עוד" -#: src/components/items/ErrorItem.tsx:5 -#: src/tables/InvenTreeTable.tsx:487 +#: src/components/items/ErrorItem.tsx:8 +#: src/tables/InvenTreeTable.tsx:473 msgid "Unknown error" -msgstr "" +msgstr "שגיאה לא ידועה" -#: src/components/items/ErrorItem.tsx:10 -msgid "An error occurred:" -msgstr "" +#: src/components/items/ErrorItem.tsx:13 +#~ msgid "An error occurred:" +#~ msgstr "An error occurred:" #: src/components/items/GettingStartedCarousel.tsx:27 -msgid "Read more" -msgstr "" +#~ msgid "Read more" +#~ msgstr "Read more" #: src/components/items/InfoItem.tsx:27 msgid "None" @@ -946,16 +1285,16 @@ msgstr "" #: src/components/items/InvenTreeLogo.tsx:23 msgid "InvenTree Logo" -msgstr "" +msgstr "לוגו InvenTree" #: src/components/items/OnlyStaff.tsx:9 #: src/components/modals/AboutInvenTreeModal.tsx:44 msgid "This information is only available for staff users" -msgstr "" +msgstr "מידע זה זמין רק עבור משתמשי צוות [צוות Staff]" #: src/components/items/Placeholder.tsx:14 msgid "This feature/button/site is a placeholder for a feature that is not implemented, only partial or intended for testing." -msgstr "" +msgstr "תכונה/לחצן/אתר זה מציין מיקום לתכונה שאינה מיושמת, חלקי בלבד או מיועד לבדיקה." #: src/components/items/Placeholder.tsx:17 msgid "PLH" @@ -963,59 +1302,80 @@ msgstr "" #: src/components/items/Placeholder.tsx:31 msgid "This panel is a placeholder." -msgstr "" - -#: src/components/items/QRCode.tsx:87 -msgid "Low (7%)" -msgstr "" - -#: src/components/items/QRCode.tsx:88 -msgid "Medium (15%)" -msgstr "" +msgstr "לוח זה הוא מציין מיקום." #: src/components/items/QRCode.tsx:89 -msgid "Quartile (25%)" -msgstr "" +msgid "Low (7%)" +msgstr "נמוך (7%)" #: src/components/items/QRCode.tsx:90 +msgid "Medium (15%)" +msgstr "בינוני (15%)" + +#: src/components/items/QRCode.tsx:91 +msgid "Quartile (25%)" +msgstr "רבעון (25%)" + +#: src/components/items/QRCode.tsx:92 msgid "High (30%)" +msgstr "גבוה (30%)" + +#: src/components/items/QRCode.tsx:100 +msgid "Custom barcode" msgstr "" -#: src/components/items/QRCode.tsx:107 -msgid "Barcode Data:" -msgstr "" +#: src/components/items/QRCode.tsx:101 +msgid "A custom barcode is registered for this item. The shown code is not that custom barcode." +msgstr "ברקוד מותאם אישית נרשם עבור פריט זה. הקוד המוצג הזה אינו הברקוד המותאם אישית." #: src/components/items/QRCode.tsx:118 +msgid "Barcode Data:" +msgstr "נתוני ברקוד:" + +#: src/components/items/QRCode.tsx:129 msgid "Select Error Correction Level" -msgstr "" +msgstr "בחר רמת תיקון שגיאות" + +#: src/components/items/QRCode.tsx:171 +#: src/pages/part/PartDetail.tsx:239 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:187 +#: src/pages/sales/ReturnOrderDetail.tsx:157 +#: src/pages/sales/SalesOrderDetail.tsx:169 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:166 +msgid "Link" +msgstr "קישור" + +#: src/components/items/QRCode.tsx:190 +msgid "This will remove the link to the associated barcode" +msgstr "פעולה זו תסיר את הקישור לברקוד המשויך" #: src/components/modals/AboutInvenTreeModal.tsx:99 msgid "Version Information" -msgstr "" +msgstr "מידע גרסה" #: src/components/modals/AboutInvenTreeModal.tsx:103 msgid "Your InvenTree version status is" -msgstr "" +msgstr "סטטוס גרסת InvenTree שלך ​​הוא" #: src/components/modals/AboutInvenTreeModal.tsx:107 msgid "Development Version" -msgstr "" +msgstr "גרסת פיתוח" #: src/components/modals/AboutInvenTreeModal.tsx:111 msgid "Up to Date" -msgstr "" +msgstr "עדכני" #: src/components/modals/AboutInvenTreeModal.tsx:115 msgid "Update Available" -msgstr "" +msgstr "עדכון זמין" #: src/components/modals/AboutInvenTreeModal.tsx:125 msgid "InvenTree Version" -msgstr "" +msgstr "גרסת InvenTree" #: src/components/modals/AboutInvenTreeModal.tsx:131 msgid "Commit Hash" -msgstr "" +msgstr "בצע Hash" #: src/components/modals/AboutInvenTreeModal.tsx:136 msgid "Commit Date" @@ -1028,134 +1388,93 @@ msgstr "" #: src/components/modals/AboutInvenTreeModal.tsx:146 #: src/components/modals/ServerInfoModal.tsx:133 msgid "API Version" -msgstr "" +msgstr "גרסת API" #: src/components/modals/AboutInvenTreeModal.tsx:149 msgid "Python Version" -msgstr "" +msgstr "גרסת פייתון" #: src/components/modals/AboutInvenTreeModal.tsx:152 msgid "Django Version" -msgstr "" +msgstr "גרסת ג'נגו" #: src/components/modals/AboutInvenTreeModal.tsx:162 msgid "Links" -msgstr "" +msgstr "קישורים" #: src/components/modals/AboutInvenTreeModal.tsx:168 msgid "InvenTree Documentation" -msgstr "" +msgstr "תיעוד InvenTree" #: src/components/modals/AboutInvenTreeModal.tsx:169 msgid "View Code on GitHub" -msgstr "" +msgstr "צפה בקוד ב-GitHub" #: src/components/modals/AboutInvenTreeModal.tsx:170 msgid "Credits" -msgstr "" +msgstr "קרדיטים" #: src/components/modals/AboutInvenTreeModal.tsx:171 msgid "Mobile App" -msgstr "" +msgstr "אפליקציה לנייד" #: src/components/modals/AboutInvenTreeModal.tsx:172 msgid "Submit Bug Report" -msgstr "" +msgstr "שלח דוח באג" -#: src/components/modals/AboutInvenTreeModal.tsx:183 +#: src/components/modals/AboutInvenTreeModal.tsx:181 msgid "Copy version information" -msgstr "" +msgstr "העתק את פרטי הגרסה" -#: src/components/modals/AboutInvenTreeModal.tsx:192 +#: src/components/modals/AboutInvenTreeModal.tsx:189 #: src/components/modals/ServerInfoModal.tsx:147 msgid "Dismiss" msgstr "" #: src/components/modals/LicenseModal.tsx:39 msgid "No license text available" -msgstr "" +msgstr "אין טקסט רישיון זמין" #: src/components/modals/LicenseModal.tsx:46 msgid "No Information provided - this is likely a server issue" -msgstr "" +msgstr "לא מסופק מידע - סביר להניח שזו בעיה בשרת" #: src/components/modals/LicenseModal.tsx:71 msgid "Loading license information" -msgstr "" +msgstr "טוען מידע על רישיון" #: src/components/modals/LicenseModal.tsx:77 msgid "Failed to fetch license information" -msgstr "" +msgstr "אחזור פרטי הרישיון נכשל" #: src/components/modals/LicenseModal.tsx:85 msgid "{key} Packages" -msgstr "" +msgstr "{key} חבילות" -#: src/components/modals/QrCodeModal.tsx:72 +#: src/components/modals/QrCodeModal.tsx:24 msgid "Unknown response" -msgstr "" +msgstr "תגובה לא ידועה" -#: src/components/modals/QrCodeModal.tsx:102 -#: src/pages/Index/Scan.tsx:636 -msgid "Error while getting camera" -msgstr "" - -#: src/components/modals/QrCodeModal.tsx:125 -#: src/pages/Index/Scan.tsx:659 -msgid "Error while scanning" -msgstr "" - -#: src/components/modals/QrCodeModal.tsx:139 -#: src/pages/Index/Scan.tsx:673 -msgid "Error while stopping" -msgstr "" - -#: src/components/modals/QrCodeModal.tsx:154 -#: src/defaults/menuItems.tsx:21 -#: src/pages/Index/Scan.tsx:746 -msgid "Scanning" -msgstr "" - -#: src/components/modals/QrCodeModal.tsx:154 -#: src/pages/Index/Scan.tsx:746 -msgid "Not scanning" -msgstr "" - -#: src/components/modals/QrCodeModal.tsx:159 -#: src/pages/Index/Scan.tsx:752 -msgid "Select Camera" -msgstr "" - -#: src/components/modals/QrCodeModal.tsx:169 -#: src/pages/Index/Scan.tsx:737 -msgid "Start scanning" -msgstr "" - -#: src/components/modals/QrCodeModal.tsx:176 -#: src/pages/Index/Scan.tsx:729 -msgid "Stop scanning" -msgstr "" - -#: src/components/modals/QrCodeModal.tsx:181 +#: src/components/modals/QrCodeModal.tsx:39 msgid "No scans yet!" -msgstr "" +msgstr "עדיין אין סריקות!" -#: src/components/modals/QrCodeModal.tsx:201 +#: src/components/modals/QrCodeModal.tsx:57 msgid "Close modal" -msgstr "" +msgstr "מודאל סגור" #: src/components/modals/ServerInfoModal.tsx:26 -#: src/pages/Index/Settings/SystemSettings.tsx:38 +#: src/pages/Index/Settings/SystemSettings.tsx:37 msgid "Server" -msgstr "" +msgstr "שרת" #: src/components/modals/ServerInfoModal.tsx:32 msgid "Instance Name" -msgstr "" +msgstr "שם מופע" #: src/components/modals/ServerInfoModal.tsx:38 msgid "Database" -msgstr "" +msgstr "מסד נתונים" #: src/components/modals/ServerInfoModal.tsx:38 #~ msgid "Bebug Mode" @@ -1163,73 +1482,74 @@ msgstr "" #: src/components/modals/ServerInfoModal.tsx:47 msgid "Debug Mode" -msgstr "" +msgstr "מצב ניפוי באגים" #: src/components/modals/ServerInfoModal.tsx:50 msgid "Server is running in debug mode" -msgstr "" +msgstr "השרת פועל במצב ניפוי באגים" #: src/components/modals/ServerInfoModal.tsx:57 msgid "Docker Mode" -msgstr "" +msgstr "מצב דוקר" #: src/components/modals/ServerInfoModal.tsx:60 msgid "Server is deployed using docker" -msgstr "" +msgstr "השרת נפרס באמצעות docker" #: src/components/modals/ServerInfoModal.tsx:66 msgid "Plugin Support" -msgstr "" +msgstr "תמיכה בפלאגין" #: src/components/modals/ServerInfoModal.tsx:71 msgid "Plugin support enabled" -msgstr "" +msgstr "תמיכה בפלאגין מופעלת" #: src/components/modals/ServerInfoModal.tsx:73 msgid "Plugin support disabled" -msgstr "" +msgstr "תמיכת פלאגין מושבתת" #: src/components/modals/ServerInfoModal.tsx:80 msgid "Server status" -msgstr "" +msgstr "מצב השרת" #: src/components/modals/ServerInfoModal.tsx:86 msgid "Healthy" -msgstr "" +msgstr "בריא" #: src/components/modals/ServerInfoModal.tsx:88 msgid "Issues detected" -msgstr "" +msgstr "זוהו בעיות" #: src/components/modals/ServerInfoModal.tsx:97 msgid "Background Worker" -msgstr "" +msgstr "באקגראונד-וורקר" #: src/components/modals/ServerInfoModal.tsx:101 +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:29 msgid "Background worker not running" -msgstr "" +msgstr "באקגראונד-וורקר לא פעיל" #: src/components/modals/ServerInfoModal.tsx:109 msgid "Email Settings" -msgstr "" +msgstr "הגדרות אימייל" #: src/components/modals/ServerInfoModal.tsx:113 msgid "Email settings not configured" -msgstr "" +msgstr "לא הוגדרוו הגדרות אימייל" #: src/components/modals/ServerInfoModal.tsx:121 -#: src/tables/plugin/PluginListTable.tsx:144 -#: src/tables/plugin/PluginListTable.tsx:294 +#: src/components/plugins/PluginDrawer.tsx:89 +#: src/tables/plugin/PluginListTable.tsx:116 msgid "Version" -msgstr "" +msgstr "גרסה" #: src/components/modals/ServerInfoModal.tsx:127 msgid "Server Version" -msgstr "" +msgstr "גרסת שרת" -#: src/components/nav/Layout.tsx:73 +#: src/components/nav/Layout.tsx:80 msgid "Nothing found..." -msgstr "" +msgstr "לא נמצא כלום..." #: src/components/nav/MainMenu.tsx:40 #: src/pages/Index/Profile/Profile.tsx:15 @@ -1237,20 +1557,28 @@ msgstr "" #~ msgstr "Profile" #: src/components/nav/MainMenu.tsx:52 +#: src/components/nav/NavigationDrawer.tsx:178 #: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:28 msgid "Settings" +msgstr "הגדרות" + +#: src/components/nav/MainMenu.tsx:59 +#: src/pages/Index/Settings/UserSettings.tsx:152 +msgid "Account Settings" msgstr "" #: src/components/nav/MainMenu.tsx:59 #: src/defaults/menuItems.tsx:15 -msgid "Account settings" -msgstr "" +#~ msgid "Account settings" +#~ msgstr "Account settings" #: src/components/nav/MainMenu.tsx:67 -#: src/defaults/menuItems.tsx:58 -#: src/pages/Index/Settings/SystemSettings.tsx:315 +#: src/components/nav/NavigationDrawer.tsx:141 +#: src/components/nav/SettingsHeader.tsx:49 +#: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:37 +#: src/pages/Index/Settings/SystemSettings.tsx:310 msgid "System Settings" -msgstr "" +msgstr "הגדרות מערכת" #: src/components/nav/MainMenu.tsx:68 #~ msgid "Current language {locale}" @@ -1260,517 +1588,787 @@ msgstr "" #~ msgid "Switch to pseudo language" #~ msgstr "Switch to pseudo language" -#: src/components/nav/MainMenu.tsx:77 -msgid "Change Color Mode" -msgstr "" - #: src/components/nav/MainMenu.tsx:86 -#: src/defaults/actions.tsx:71 -#: src/defaults/menuItems.tsx:63 -#: src/pages/Index/Settings/AdminCenter/Index.tsx:221 +#: src/components/nav/NavigationDrawer.tsx:148 +#: src/components/nav/SettingsHeader.tsx:50 +#: src/defaults/actions.tsx:63 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:251 msgid "Admin Center" -msgstr "" +msgstr "מרכז ניהול" #: src/components/nav/MainMenu.tsx:96 msgid "Logout" -msgstr "" - -#: src/components/nav/NavHoverMenu.tsx:65 -#: src/defaults/actions.tsx:60 -msgid "Open Navigation" -msgstr "" +msgstr "התנתק" #: src/components/nav/NavHoverMenu.tsx:84 -msgid "View all" -msgstr "" +#~ msgid "View all" +#~ msgstr "View all" #: src/components/nav/NavHoverMenu.tsx:100 #: src/components/nav/NavHoverMenu.tsx:110 -msgid "Get started" -msgstr "" +#~ msgid "Get started" +#~ msgstr "Get started" #: src/components/nav/NavHoverMenu.tsx:103 -msgid "Overview over high-level objects, functions and possible usecases." -msgstr "" - -#: src/components/nav/NavigationDrawer.tsx:57 -msgid "Navigation" -msgstr "" +#~ msgid "Overview over high-level objects, functions and possible usecases." +#~ msgstr "Overview over high-level objects, functions and possible usecases." #: src/components/nav/NavigationDrawer.tsx:60 -msgid "Pages" +#~ msgid "Pages" +#~ msgstr "Pages" + +#: src/components/nav/NavigationDrawer.tsx:77 +#: src/components/render/ModelType.tsx:31 +#: src/defaults/links.tsx:10 +#: src/pages/Index/Settings/SystemSettings.tsx:172 +#: src/pages/part/CategoryDetail.tsx:125 +#: src/pages/part/CategoryDetail.tsx:249 +#: src/pages/part/CategoryDetail.tsx:279 +#: src/pages/part/PartDetail.tsx:856 +msgid "Parts" +msgstr "פריטים" + +#: src/components/nav/NavigationDrawer.tsx:84 +#: src/components/render/Part.tsx:30 +#: src/defaults/links.tsx:11 +#: src/pages/Index/Settings/SystemSettings.tsx:205 +#: src/pages/part/PartDetail.tsx:593 +#: src/pages/stock/LocationDetail.tsx:352 +#: src/pages/stock/StockDetail.tsx:528 +#: src/tables/stock/StockItemTable.tsx:69 +msgid "Stock" +msgstr "מלאי" + +#: src/components/nav/NavigationDrawer.tsx:91 +#: src/defaults/links.tsx:13 +#: src/pages/build/BuildDetail.tsx:530 +#: src/pages/build/BuildIndex.tsx:36 +msgid "Manufacturing" msgstr "" -#: src/components/nav/NavigationDrawer.tsx:65 -#: src/pages/Index/Settings/AdminCenter/Index.tsx:176 -#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:41 -msgid "Plugins" -msgstr "" +#: src/components/nav/NavigationDrawer.tsx:98 +#: src/defaults/links.tsx:18 +#: src/pages/company/ManufacturerDetail.tsx:9 +#: src/pages/company/ManufacturerPartDetail.tsx:258 +#: src/pages/company/SupplierDetail.tsx:9 +#: src/pages/company/SupplierPartDetail.tsx:336 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:480 +#: src/pages/purchasing/PurchasingIndex.tsx:60 +msgid "Purchasing" +msgstr "רכישה" -#: src/components/nav/NavigationDrawer.tsx:75 -#: src/defaults/actions.tsx:32 -msgid "Documentation" -msgstr "" +#: src/components/nav/NavigationDrawer.tsx:105 +#: src/defaults/links.tsx:22 +#: src/pages/company/CustomerDetail.tsx:9 +#: src/pages/sales/ReturnOrderDetail.tsx:469 +#: src/pages/sales/SalesIndex.tsx:53 +#: src/pages/sales/SalesOrderDetail.tsx:520 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:343 +msgid "Sales" +msgstr "מכירות" -#: src/components/nav/NavigationDrawer.tsx:78 -msgid "About" -msgstr "" - -#: src/components/nav/NotificationDrawer.tsx:92 -#: src/pages/Index/Settings/SystemSettings.tsx:109 -#: src/pages/Index/Settings/UserSettings.tsx:126 +#: src/components/nav/NavigationDrawer.tsx:129 +#: src/components/nav/NotificationDrawer.tsx:178 +#: src/pages/Index/Settings/SystemSettings.tsx:110 +#: src/pages/Index/Settings/UserSettings.tsx:127 #: src/pages/Notifications.tsx:65 #: src/pages/Notifications.tsx:151 msgid "Notifications" +msgstr "התראות" + +#: src/components/nav/NavigationDrawer.tsx:135 +#: src/components/nav/SettingsHeader.tsx:48 +msgid "User Settings" msgstr "" -#: src/components/nav/NotificationDrawer.tsx:94 +#: src/components/nav/NavigationDrawer.tsx:173 +msgid "Navigation" +msgstr "ניווט" + +#: src/components/nav/NavigationDrawer.tsx:183 +#: src/forms/PurchaseOrderForms.tsx:689 +#: src/forms/StockForms.tsx:614 +#: src/forms/StockForms.tsx:651 +#: src/forms/StockForms.tsx:677 +#: src/forms/StockForms.tsx:705 +#: src/forms/StockForms.tsx:736 +#: src/forms/StockForms.tsx:771 +#: src/forms/StockForms.tsx:813 +#: src/forms/StockForms.tsx:851 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:413 +#: src/tables/RowActions.tsx:129 +#: src/tables/build/BuildLineTable.tsx:101 +msgid "Actions" +msgstr "" + +#: src/components/nav/NavigationDrawer.tsx:191 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:205 +#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:44 +msgid "Plugins" +msgstr "תוספים" + +#: src/components/nav/NavigationDrawer.tsx:204 +#: src/defaults/actions.tsx:24 +msgid "Documentation" +msgstr "תיעוד" + +#: src/components/nav/NavigationDrawer.tsx:210 +msgid "About" +msgstr "אודות" + +#: src/components/nav/NotificationDrawer.tsx:180 msgid "Mark all as read" -msgstr "" +msgstr "סמן הכל כנקראו" -#: src/components/nav/NotificationDrawer.tsx:104 +#: src/components/nav/NotificationDrawer.tsx:190 msgid "View all notifications" -msgstr "" +msgstr "הצג את כל ההתראות" -#: src/components/nav/NotificationDrawer.tsx:123 +#: src/components/nav/NotificationDrawer.tsx:210 msgid "You have no unread notifications." -msgstr "" +msgstr "אין לך התראות שלא נקראו." -#: src/components/nav/NotificationDrawer.tsx:139 -#: src/components/nav/NotificationDrawer.tsx:145 -#: src/tables/notifications/NotificationsTable.tsx:36 -msgid "Notification" -msgstr "" - -#: src/components/nav/NotificationDrawer.tsx:168 -#: src/pages/Notifications.tsx:73 -msgid "Mark as read" -msgstr "" - -#: src/components/nav/SearchDrawer.tsx:78 +#: src/components/nav/SearchDrawer.tsx:85 msgid "results" -msgstr "" +msgstr "תוצאות" -#: src/components/nav/SearchDrawer.tsx:370 +#: src/components/nav/SearchDrawer.tsx:380 msgid "Enter search text" +msgstr "הזן טקסט חיפוש" + +#: src/components/nav/SearchDrawer.tsx:391 +msgid "Refresh search results" msgstr "" -#: src/components/nav/SearchDrawer.tsx:397 +#: src/components/nav/SearchDrawer.tsx:402 +#: src/components/nav/SearchDrawer.tsx:409 msgid "Search Options" -msgstr "" +msgstr "אפשרויות חיפוש" -#: src/components/nav/SearchDrawer.tsx:400 +#: src/components/nav/SearchDrawer.tsx:412 msgid "Regex search" -msgstr "" +msgstr "חיפוש רגולרי" -#: src/components/nav/SearchDrawer.tsx:410 +#: src/components/nav/SearchDrawer.tsx:421 msgid "Whole word search" -msgstr "" +msgstr "חיפוש מילה שלמה" -#: src/components/nav/SearchDrawer.tsx:451 +#: src/components/nav/SearchDrawer.tsx:461 msgid "An error occurred during search query" -msgstr "" +msgstr "אירעה שגיאה במהלך שאילתת החיפוש" #: src/components/nav/SearchDrawer.tsx:462 -msgid "No results" +#~ msgid "No results" +#~ msgstr "No results" + +#: src/components/nav/SearchDrawer.tsx:472 +#: src/tables/part/PartTestTemplateTable.tsx:76 +msgid "No Results" msgstr "" -#: src/components/nav/SearchDrawer.tsx:465 +#: src/components/nav/SearchDrawer.tsx:475 msgid "No results available for search query" +msgstr "אין תוצאות זמינות עבור שאילתת חיפוש" + +#: src/components/panels/AttachmentPanel.tsx:18 +msgid "Attachments" msgstr "" -#: src/components/render/Instance.tsx:217 +#: src/components/panels/NotesPanel.tsx:24 +#: src/tables/build/BuildOrderTestTable.tsx:143 +#: src/tables/stock/StockTrackingTable.tsx:204 +msgid "Notes" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:47 +msgid "Plugin Inactive" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:50 +msgid "Plugin is not active" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:60 +msgid "Plugin Information" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:74 +#: src/pages/build/BuildDetail.tsx:116 +#: src/pages/company/CompanyDetail.tsx:89 +#: src/pages/company/ManufacturerPartDetail.tsx:89 +#: src/pages/company/ManufacturerPartDetail.tsx:116 +#: src/pages/company/SupplierPartDetail.tsx:140 +#: src/pages/part/CategoryDetail.tsx:101 +#: src/pages/part/PartDetail.tsx:178 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:136 +#: src/pages/sales/ReturnOrderDetail.tsx:107 +#: src/pages/sales/SalesOrderDetail.tsx:116 +#: src/pages/stock/LocationDetail.tsx:103 +#: src/tables/ColumnRenderers.tsx:92 +#: src/tables/bom/UsedInTable.tsx:44 +#: src/tables/build/BuildAllocatedStockTable.tsx:83 +#: src/tables/build/BuildLineTable.tsx:329 +#: src/tables/machine/MachineTypeTable.tsx:74 +#: src/tables/machine/MachineTypeTable.tsx:129 +#: src/tables/machine/MachineTypeTable.tsx:240 +#: src/tables/machine/MachineTypeTable.tsx:344 +#: src/tables/part/RelatedPartTable.tsx:66 +#: src/tables/plugin/PluginListTable.tsx:99 +#: src/tables/sales/SalesOrderAllocationTable.tsx:87 +#: src/tables/sales/SalesOrderLineItemTable.tsx:75 +#: src/tables/stock/LocationTypesTable.tsx:74 +msgid "Description" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:79 +msgid "Author" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:84 +#: src/pages/part/PartSchedulingDetail.tsx:277 +#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:40 +#: src/pages/part/pricing/SaleHistoryPanel.tsx:38 +#: src/tables/ColumnRenderers.tsx:215 +#: src/tables/build/BuildOrderTestTable.tsx:151 +#: src/tables/settings/StocktakeReportTable.tsx:40 +msgid "Date" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:94 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:398 +#: src/pages/part/PartDetail.tsx:331 +#: src/tables/bom/UsedInTable.tsx:84 +#: src/tables/company/CompanyTable.tsx:62 +#: src/tables/company/CompanyTable.tsx:96 +#: src/tables/machine/MachineListTable.tsx:333 +#: src/tables/machine/MachineListTable.tsx:605 +#: src/tables/part/ParametricPartTable.tsx:223 +#: src/tables/part/PartTable.tsx:178 +#: src/tables/part/PartVariantTable.tsx:15 +#: src/tables/plugin/PluginListTable.tsx:94 +#: src/tables/plugin/PluginListTable.tsx:401 +#: src/tables/purchasing/SupplierPartTable.tsx:100 +#: src/tables/purchasing/SupplierPartTable.tsx:190 +#: src/tables/settings/UserTable.tsx:283 +#: src/tables/stock/StockItemTable.tsx:293 +msgid "Active" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:106 +msgid "Package Name" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:112 +msgid "Installation Path" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:117 +#: src/tables/machine/MachineTypeTable.tsx:152 +#: src/tables/machine/MachineTypeTable.tsx:276 +#: src/tables/plugin/PluginListTable.tsx:406 +msgid "Builtin" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:122 +msgid "Package" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:134 +#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:53 +msgid "Plugin Settings" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:146 +#: src/components/render/ModelType.tsx:276 +msgid "Plugin Configuration" +msgstr "תצורת תוסף" + +#: src/components/plugins/PluginPanel.tsx:87 +#~ msgid "Error occurred while rendering plugin content" +#~ msgstr "Error occurred while rendering plugin content" + +#: src/components/plugins/PluginPanel.tsx:91 +#~ msgid "Plugin did not provide panel rendering function" +#~ msgstr "Plugin did not provide panel rendering function" + +#: src/components/plugins/PluginPanel.tsx:103 +#~ msgid "No content provided for this plugin" +#~ msgstr "No content provided for this plugin" + +#: src/components/plugins/PluginPanel.tsx:116 +#: src/components/plugins/PluginSettingsPanel.tsx:76 +#~ msgid "Error Loading Plugin" +#~ msgstr "Error Loading Plugin" + +#: src/components/plugins/PluginSettingsPanel.tsx:51 +#~ msgid "Error occurred while rendering plugin settings" +#~ msgstr "Error occurred while rendering plugin settings" + +#: src/components/plugins/PluginSettingsPanel.tsx:55 +#~ msgid "Plugin did not provide settings rendering function" +#~ msgstr "Plugin did not provide settings rendering function" + +#: src/components/plugins/PluginUIFeature.tsx:100 +msgid "Error occurred while rendering the template editor." +msgstr "" + +#: src/components/plugins/PluginUIFeature.tsx:111 +msgid "Error Loading Plugin Editor" +msgstr "" + +#: src/components/plugins/PluginUIFeature.tsx:147 +msgid "Error occurred while rendering the template preview." +msgstr "" + +#: src/components/plugins/PluginUIFeature.tsx:158 +msgid "Error Loading Plugin Preview" +msgstr "" + +#: src/components/plugins/RemoteComponent.tsx:70 +msgid "Invalid source or function name" +msgstr "" + +#: src/components/plugins/RemoteComponent.tsx:91 +msgid "Error Loading Content" +msgstr "" + +#: src/components/plugins/RemoteComponent.tsx:95 +msgid "Error occurred while loading plugin content" +msgstr "" + +#: src/components/render/Instance.tsx:224 msgid "Unknown model: {model}" -msgstr "" +msgstr "דגם לא ידוע: {model}" -#: src/components/render/ModelType.tsx:22 -#: src/forms/BuildForms.tsx:213 -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/forms/StockForms.tsx:499 -#: src/forms/StockForms.tsx:533 -#: src/forms/StockForms.tsx:562 -#: src/forms/StockForms.tsx:590 -#: src/forms/StockForms.tsx:621 -#: src/forms/StockForms.tsx:656 -#: src/forms/StockForms.tsx:698 -#: src/forms/StockForms.tsx:734 -#: src/pages/build/BuildDetail.tsx:95 -#: src/pages/part/PartDetail.tsx:1073 -#: src/tables/build/BuildAllocatedStockTable.tsx:82 +#: src/components/render/ModelType.tsx:30 +#: src/forms/BuildForms.tsx:269 +#: src/forms/BuildForms.tsx:337 +#: src/forms/BuildForms.tsx:385 +#: src/forms/BuildForms.tsx:515 +#: src/forms/PurchaseOrderForms.tsx:689 +#: src/forms/ReturnOrderForms.tsx:190 +#: src/forms/SalesOrderForms.tsx:248 +#: src/forms/StockForms.tsx:261 +#: src/forms/StockForms.tsx:614 +#: src/forms/StockForms.tsx:651 +#: src/forms/StockForms.tsx:677 +#: src/forms/StockForms.tsx:705 +#: src/forms/StockForms.tsx:736 +#: src/forms/StockForms.tsx:771 +#: src/forms/StockForms.tsx:813 +#: src/forms/StockForms.tsx:851 +#: src/pages/build/BuildDetail.tsx:90 +#: src/pages/part/PartDetail.tsx:1094 +#: src/tables/build/BuildAllocatedStockTable.tsx:95 +#: src/tables/build/BuildLineTable.tsx:72 #: src/tables/part/PartTable.tsx:28 -#: src/tables/part/RelatedPartTable.tsx:45 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:88 -#: src/tables/sales/SalesOrderAllocationTable.tsx:68 -#: src/tables/stock/StockTrackingTable.tsx:74 +#: src/tables/part/RelatedPartTable.tsx:47 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:130 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:100 +#: src/tables/sales/SalesOrderAllocationTable.tsx:99 +#: src/tables/stock/StockTrackingTable.tsx:78 msgid "Part" -msgstr "" +msgstr "פריט" -#: src/components/render/ModelType.tsx:23 -#: src/defaults/links.tsx:29 -#: src/defaults/menuItems.tsx:33 -#: src/pages/Index/Settings/SystemSettings.tsx:173 -#: src/pages/part/CategoryDetail.tsx:119 -#: src/pages/part/CategoryDetail.tsx:244 -#: src/pages/part/CategoryDetail.tsx:274 -#: src/pages/part/PartDetail.tsx:827 -msgid "Parts" -msgstr "" - -#: src/components/render/ModelType.tsx:31 +#: src/components/render/ModelType.tsx:40 msgid "Part Parameter Template" -msgstr "" +msgstr "תבנית פרמטר פריט" -#: src/components/render/ModelType.tsx:32 +#: src/components/render/ModelType.tsx:41 msgid "Part Parameter Templates" msgstr "" -#: src/components/render/ModelType.tsx:38 +#: src/components/render/ModelType.tsx:48 msgid "Part Test Template" msgstr "" -#: src/components/render/ModelType.tsx:39 +#: src/components/render/ModelType.tsx:49 msgid "Part Test Templates" msgstr "" -#: src/components/render/ModelType.tsx:45 -#: src/pages/company/SupplierPartDetail.tsx:203 -#: src/pages/company/SupplierPartDetail.tsx:375 -#: src/pages/stock/StockDetail.tsx:173 -#: src/tables/build/BuildAllocatedStockTable.tsx:131 +#: src/components/render/ModelType.tsx:56 +#: src/pages/company/SupplierPartDetail.tsx:364 +#: src/pages/stock/StockDetail.tsx:194 +#: src/tables/build/BuildAllocatedStockTable.tsx:152 #: src/tables/part/PartPurchaseOrdersTable.tsx:49 -#: src/tables/purchasing/SupplierPartTable.tsx:68 +#: src/tables/purchasing/SupplierPartTable.tsx:70 +#: src/tables/stock/StockItemTable.tsx:229 msgid "Supplier Part" msgstr "" -#: src/components/render/ModelType.tsx:46 +#: src/components/render/ModelType.tsx:57 msgid "Supplier Parts" msgstr "" -#: src/components/render/ModelType.tsx:54 -#: src/pages/company/ManufacturerPartDetail.tsx:132 +#: src/components/render/ModelType.tsx:66 #: src/tables/part/PartPurchaseOrdersTable.tsx:55 +#: src/tables/stock/StockItemTable.tsx:234 msgid "Manufacturer Part" msgstr "" -#: src/components/render/ModelType.tsx:55 +#: src/components/render/ModelType.tsx:67 msgid "Manufacturer Parts" msgstr "" -#: src/components/render/ModelType.tsx:63 -#: src/pages/part/CategoryDetail.tsx:305 +#: src/components/render/ModelType.tsx:76 +#: src/pages/part/CategoryDetail.tsx:310 msgid "Part Category" -msgstr "" +msgstr "קטגוריית פריט" -#: src/components/render/ModelType.tsx:64 -#: src/pages/part/CategoryDetail.tsx:258 -#: src/pages/part/CategoryDetail.tsx:296 -#: src/pages/part/PartDetail.tsx:1063 +#: src/components/render/ModelType.tsx:77 +#: src/pages/part/CategoryDetail.tsx:263 +#: src/pages/part/CategoryDetail.tsx:301 +#: src/pages/part/PartDetail.tsx:1084 msgid "Part Categories" -msgstr "" +msgstr "קטגוריית פריטים" -#: src/components/render/ModelType.tsx:72 -#: src/pages/stock/StockDetail.tsx:624 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:94 -#: src/tables/stock/StockTrackingTable.tsx:45 +#: src/components/render/ModelType.tsx:86 +#: src/forms/BuildForms.tsx:337 +#: src/forms/BuildForms.tsx:385 +#: src/forms/BuildForms.tsx:515 +#: src/forms/SalesOrderForms.tsx:248 +#: src/pages/stock/StockDetail.tsx:839 +#: src/tables/stock/StockTrackingTable.tsx:49 msgid "Stock Item" -msgstr "" +msgstr "פריט במלאי" -#: src/components/render/ModelType.tsx:73 +#: src/components/render/ModelType.tsx:87 #: src/pages/company/CompanyDetail.tsx:203 -#: src/pages/stock/LocationDetail.tsx:128 -#: src/pages/stock/LocationDetail.tsx:181 -#: src/pages/stock/LocationDetail.tsx:395 +#: src/pages/part/PartStocktakeDetail.tsx:113 +#: src/pages/stock/LocationDetail.tsx:122 +#: src/pages/stock/LocationDetail.tsx:175 +#: src/pages/stock/LocationDetail.tsx:380 msgid "Stock Items" -msgstr "" - -#: src/components/render/ModelType.tsx:81 -msgid "Stock Location" -msgstr "" - -#: src/components/render/ModelType.tsx:82 -#: src/pages/stock/LocationDetail.tsx:195 -#: src/pages/stock/LocationDetail.tsx:387 -#: src/pages/stock/StockDetail.tsx:616 -msgid "Stock Locations" -msgstr "" - -#: src/components/render/ModelType.tsx:90 -msgid "Stock Location Type" -msgstr "" - -#: src/components/render/ModelType.tsx:91 -msgid "Stock Location Types" -msgstr "" - -#: src/components/render/ModelType.tsx:95 -msgid "Stock History" -msgstr "" +msgstr "פריטים במלאי" #: src/components/render/ModelType.tsx:96 -msgid "Stock Histories" -msgstr "" +msgid "Stock Location" +msgstr "מיקום מלאי" -#: src/components/render/ModelType.tsx:100 -#: src/defaults/links.tsx:31 -#: src/defaults/menuItems.tsx:43 +#: src/components/render/ModelType.tsx:97 +#: src/pages/stock/LocationDetail.tsx:189 +#: src/pages/stock/LocationDetail.tsx:372 +#: src/pages/stock/StockDetail.tsx:831 +msgid "Stock Locations" +msgstr "מיקומי מלאי" + +#: src/components/render/ModelType.tsx:106 +msgid "Stock Location Type" +msgstr "סוג מיקום מלאי" + +#: src/components/render/ModelType.tsx:107 +msgid "Stock Location Types" +msgstr "סוגי מיקום מלאי" + +#: src/components/render/ModelType.tsx:112 +#: src/pages/part/PartDetail.tsx:712 +msgid "Stock History" +msgstr "היסטוריית מלאי" + +#: src/components/render/ModelType.tsx:113 +msgid "Stock Histories" +msgstr "הסטוריית מלאים" + +#: src/components/render/ModelType.tsx:118 msgid "Build" msgstr "" -#: src/components/render/ModelType.tsx:101 +#: src/components/render/ModelType.tsx:119 msgid "Builds" msgstr "" -#: src/components/render/ModelType.tsx:109 +#: src/components/render/ModelType.tsx:128 msgid "Build Line" -msgstr "" +msgstr "בניית קו" -#: src/components/render/ModelType.tsx:110 +#: src/components/render/ModelType.tsx:129 msgid "Build Lines" -msgstr "" +msgstr "בניית קווים" -#: src/components/render/ModelType.tsx:117 +#: src/components/render/ModelType.tsx:137 msgid "Build Item" -msgstr "" - -#: src/components/render/ModelType.tsx:118 -msgid "Build Items" -msgstr "" - -#: src/components/render/ModelType.tsx:122 -#: src/pages/company/CompanyDetail.tsx:339 -msgid "Company" -msgstr "" - -#: src/components/render/ModelType.tsx:123 -msgid "Companies" -msgstr "" - -#: src/components/render/ModelType.tsx:131 -#: src/tables/TableHoverCard.tsx:81 -#: src/tables/build/BuildOrderTable.tsx:140 -#: src/tables/purchasing/PurchaseOrderTable.tsx:64 -#: src/tables/sales/ReturnOrderTable.tsx:55 -#: src/tables/sales/SalesOrderTable.tsx:62 -msgid "Project Code" -msgstr "" - -#: src/components/render/ModelType.tsx:132 -#: src/pages/Index/Settings/AdminCenter/Index.tsx:128 -msgid "Project Codes" -msgstr "" +msgstr "בניית פריט" #: src/components/render/ModelType.tsx:138 -#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:32 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:480 -#: src/tables/part/PartPurchaseOrdersTable.tsx:32 -#: src/tables/stock/StockTrackingTable.tsx:107 -msgid "Purchase Order" -msgstr "" +msgid "Build Items" +msgstr "בניית פריטים" -#: src/components/render/ModelType.tsx:139 -#: src/pages/Index/Settings/SystemSettings.tsx:255 -#: src/pages/company/CompanyDetail.tsx:196 -#: src/pages/company/SupplierPartDetail.tsx:237 -#: src/pages/part/PartDetail.tsx:662 -#: src/pages/purchasing/PurchasingIndex.tsx:25 -msgid "Purchase Orders" -msgstr "" +#: src/components/render/ModelType.tsx:143 +#: src/pages/company/CompanyDetail.tsx:321 +msgid "Company" +msgstr "חברה" -#: src/components/render/ModelType.tsx:147 -msgid "Purchase Order Line" -msgstr "" - -#: src/components/render/ModelType.tsx:148 -msgid "Purchase Order Lines" -msgstr "" - -#: src/components/render/ModelType.tsx:152 -#: src/pages/build/BuildDetail.tsx:153 -#: src/pages/sales/SalesOrderDetail.tsx:520 -#: src/pages/stock/StockDetail.tsx:221 -#: src/tables/sales/SalesOrderAllocationTable.tsx:50 -#: src/tables/stock/StockTrackingTable.tsx:118 -msgid "Sales Order" -msgstr "" +#: src/components/render/ModelType.tsx:144 +msgid "Companies" +msgstr "חברות" #: src/components/render/ModelType.tsx:153 -#: src/pages/Index/Settings/SystemSettings.tsx:270 -#: src/pages/company/CompanyDetail.tsx:216 -#: src/pages/part/PartDetail.tsx:669 -#: src/pages/sales/SalesIndex.tsx:26 -msgid "Sales Orders" -msgstr "" +#: src/pages/build/BuildDetail.tsx:195 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:204 +#: src/pages/sales/ReturnOrderDetail.tsx:174 +#: src/pages/sales/SalesOrderDetail.tsx:186 +#: src/tables/TableHoverCard.tsx:81 +#: src/tables/build/BuildOrderTable.tsx:135 +#: src/tables/purchasing/PurchaseOrderTable.tsx:69 +#: src/tables/sales/ReturnOrderTable.tsx:67 +#: src/tables/sales/SalesOrderTable.tsx:67 +msgid "Project Code" +msgstr "קוד פרוייקט" + +#: src/components/render/ModelType.tsx:154 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:145 +msgid "Project Codes" +msgstr "קוד פרויקט" #: src/components/render/ModelType.tsx:161 -msgid "Sales Order Shipment" -msgstr "" +#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:32 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:477 +#: src/pages/stock/StockDetail.tsx:253 +#: src/tables/part/PartPurchaseOrdersTable.tsx:31 +#: src/tables/stock/StockItemTable.tsx:222 +#: src/tables/stock/StockTrackingTable.tsx:111 +msgid "Purchase Order" +msgstr "הזמנות רכש" #: src/components/render/ModelType.tsx:162 -msgid "Sales Order Shipments" -msgstr "" +#: src/pages/Index/Settings/SystemSettings.tsx:249 +#: src/pages/company/CompanyDetail.tsx:196 +#: src/pages/company/SupplierPartDetail.tsx:249 +#: src/pages/part/PartDetail.tsx:683 +#: src/pages/purchasing/PurchasingIndex.tsx:25 +msgid "Purchase Orders" +msgstr "הזמנת רכש" -#: src/components/render/ModelType.tsx:168 -#: src/pages/sales/ReturnOrderDetail.tsx:469 -#: src/tables/stock/StockTrackingTable.tsx:129 -msgid "Return Order" -msgstr "" +#: src/components/render/ModelType.tsx:171 +msgid "Purchase Order Line" +msgstr "שורת הזמנת רכש" -#: src/components/render/ModelType.tsx:169 -#: src/pages/Index/Settings/SystemSettings.tsx:286 -#: src/pages/company/CompanyDetail.tsx:223 -#: src/pages/sales/SalesIndex.tsx:32 -msgid "Return Orders" -msgstr "" +#: src/components/render/ModelType.tsx:172 +msgid "Purchase Order Lines" +msgstr "שורות הזמנת רכש" #: src/components/render/ModelType.tsx:177 -msgid "Return Order Line Item" -msgstr "" +#: src/pages/build/BuildDetail.tsx:148 +#: src/pages/part/pricing/SaleHistoryPanel.tsx:24 +#: src/pages/sales/SalesOrderDetail.tsx:515 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:92 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:341 +#: src/pages/stock/StockDetail.tsx:262 +#: src/tables/sales/SalesOrderAllocationTable.tsx:80 +#: src/tables/stock/StockTrackingTable.tsx:122 +msgid "Sales Order" +msgstr "הזמנת מכירה" #: src/components/render/ModelType.tsx:178 -msgid "Return Order Line Items" -msgstr "" +#: src/pages/Index/Settings/SystemSettings.tsx:264 +#: src/pages/company/CompanyDetail.tsx:216 +#: src/pages/part/PartDetail.tsx:695 +#: src/pages/sales/SalesIndex.tsx:26 +msgid "Sales Orders" +msgstr "הזמנות מכירה" -#: src/components/render/ModelType.tsx:182 -#: src/tables/company/AddressTable.tsx:47 -msgid "Address" -msgstr "" +#: src/components/render/ModelType.tsx:187 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:340 +msgid "Sales Order Shipment" +msgstr "משלוח הזמנת מכירות" -#: src/components/render/ModelType.tsx:183 -#: src/pages/company/CompanyDetail.tsx:253 -msgid "Addresses" -msgstr "" +#: src/components/render/ModelType.tsx:188 +msgid "Sales Order Shipments" +msgstr "משלוחי הזמנת מכירות" -#: src/components/render/ModelType.tsx:189 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:195 -#: src/pages/sales/ReturnOrderDetail.tsx:174 -#: src/pages/sales/SalesOrderDetail.tsx:183 -msgid "Contact" -msgstr "" - -#: src/components/render/ModelType.tsx:190 -#: src/pages/company/CompanyDetail.tsx:247 -msgid "Contacts" -msgstr "" +#: src/components/render/ModelType.tsx:195 +#: src/pages/sales/ReturnOrderDetail.tsx:464 +#: src/tables/stock/StockTrackingTable.tsx:133 +msgid "Return Order" +msgstr "החזרת הזמנה" #: src/components/render/ModelType.tsx:196 -msgid "Owner" -msgstr "" +#: src/pages/Index/Settings/SystemSettings.tsx:280 +#: src/pages/company/CompanyDetail.tsx:223 +#: src/pages/part/PartDetail.tsx:702 +#: src/pages/sales/SalesIndex.tsx:32 +msgid "Return Orders" +msgstr "החזרת הזמנות" -#: src/components/render/ModelType.tsx:197 -msgid "Owners" -msgstr "" +#: src/components/render/ModelType.tsx:205 +msgid "Return Order Line Item" +msgstr "שורת החזרת פריטי הזמנה" -#: src/components/render/ModelType.tsx:203 -#: src/tables/settings/ImportSessionTable.tsx:121 -#: src/tables/stock/StockItemTestResultTable.tsx:198 -#: src/tables/stock/StockTrackingTable.tsx:195 -msgid "User" -msgstr "" - -#: src/components/render/ModelType.tsx:204 -#: src/pages/Index/Settings/AdminCenter/Index.tsx:98 -#: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:13 -msgid "Users" -msgstr "" - -#: src/components/render/ModelType.tsx:210 -msgid "Group" -msgstr "" +#: src/components/render/ModelType.tsx:206 +msgid "Return Order Line Items" +msgstr "שורת החזרת פריט הזמנה" #: src/components/render/ModelType.tsx:211 -#: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:20 -#: src/tables/settings/UserTable.tsx:138 -#: src/tables/settings/UserTable.tsx:201 -msgid "Groups" -msgstr "" +#: src/tables/company/AddressTable.tsx:48 +msgid "Address" +msgstr "כתובת" -#: src/components/render/ModelType.tsx:218 -msgid "Import Session" -msgstr "" +#: src/components/render/ModelType.tsx:212 +#: src/pages/company/CompanyDetail.tsx:255 +msgid "Addresses" +msgstr "כתובות" #: src/components/render/ModelType.tsx:219 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:196 +#: src/pages/sales/ReturnOrderDetail.tsx:166 +#: src/pages/sales/SalesOrderDetail.tsx:178 +msgid "Contact" +msgstr "איש קשר" + +#: src/components/render/ModelType.tsx:220 +#: src/pages/company/CompanyDetail.tsx:249 +msgid "Contacts" +msgstr "אנשי קשר" + +#: src/components/render/ModelType.tsx:227 +msgid "Owner" +msgstr "בעלים" + +#: src/components/render/ModelType.tsx:228 +msgid "Owners" +msgstr "בעלים" + +#: src/components/render/ModelType.tsx:234 +#~ msgid "Purchase Order Line Item" +#~ msgstr "Purchase Order Line Item" + +#: src/components/render/ModelType.tsx:235 +#: src/tables/settings/BarcodeScanHistoryTable.tsx:80 +#: src/tables/settings/BarcodeScanHistoryTable.tsx:211 +#: src/tables/settings/ImportSessionTable.tsx:120 +#: src/tables/settings/StocktakeReportTable.tsx:44 +#: src/tables/stock/StockItemTestResultTable.tsx:204 +#: src/tables/stock/StockTrackingTable.tsx:181 +#: src/tables/stock/StockTrackingTable.tsx:210 +msgid "User" +msgstr "משתמש" + +#: src/components/render/ModelType.tsx:236 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:109 +#: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:13 +msgid "Users" +msgstr "משתמשים" + +#: src/components/render/ModelType.tsx:243 +msgid "Group" +msgstr "קבוצה" + +#: src/components/render/ModelType.tsx:244 +#: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:20 +#: src/tables/settings/UserTable.tsx:137 +#: src/tables/settings/UserTable.tsx:200 +msgid "Groups" +msgstr "קבוצות" + +#: src/components/render/ModelType.tsx:252 +msgid "Import Session" +msgstr "ייבוא הפעלה" + +#: src/components/render/ModelType.tsx:253 msgid "Import Sessions" -msgstr "" +msgstr "ייבוא הפעלות" -#: src/components/render/ModelType.tsx:225 +#: src/components/render/ModelType.tsx:260 msgid "Label Template" -msgstr "" +msgstr "תבנית תווית" -#: src/components/render/ModelType.tsx:226 -#: src/pages/Index/Settings/AdminCenter/Index.tsx:158 +#: src/components/render/ModelType.tsx:261 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:187 msgid "Label Templates" -msgstr "" +msgstr "תבניות תוויות" -#: src/components/render/ModelType.tsx:232 +#: src/components/render/ModelType.tsx:264 +#~ msgid "Unknown Model" +#~ msgstr "Unknown Model" + +#: src/components/render/ModelType.tsx:268 msgid "Report Template" -msgstr "" +msgstr "תבנית דוח" -#: src/components/render/ModelType.tsx:233 -#: src/pages/Index/Settings/AdminCenter/Index.tsx:164 +#: src/components/render/ModelType.tsx:269 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:193 msgid "Report Templates" -msgstr "" +msgstr "תבניות דווח" -#: src/components/render/ModelType.tsx:239 -msgid "Plugin Configuration" -msgstr "" - -#: src/components/render/ModelType.tsx:240 +#: src/components/render/ModelType.tsx:277 msgid "Plugin Configurations" +msgstr "תצורת פלאגין" + +#: src/components/render/ModelType.tsx:284 +msgid "Content Type" +msgstr "סוג תוכן" + +#: src/components/render/ModelType.tsx:285 +msgid "Content Types" +msgstr "סוגי תוכן" + +#: src/components/render/ModelType.tsx:291 +#: src/tables/machine/MachineListTable.tsx:351 +#: src/tables/machine/MachineTypeTable.tsx:282 +msgid "Errors" msgstr "" +#: src/components/render/ModelType.tsx:307 +#~ msgid "Purchase Order Line Items" +#~ msgstr "Purchase Order Line Items" + +#: src/components/render/ModelType.tsx:337 +#~ msgid "Unknown Models" +#~ msgstr "Unknown Models" + #: src/components/render/Order.tsx:121 +#: src/tables/sales/SalesOrderAllocationTable.tsx:136 msgid "Shipment" -msgstr "" +msgstr "משלוח" #: src/components/render/Part.tsx:25 #: src/components/render/Plugin.tsx:17 -#: src/pages/company/CompanyDetail.tsx:325 -#: src/pages/company/SupplierPartDetail.tsx:360 -#: src/pages/part/PartDetail.tsx:879 +#: src/pages/company/CompanyDetail.tsx:307 +#: src/pages/company/SupplierPartDetail.tsx:349 +#: src/pages/part/PartDetail.tsx:911 msgid "Inactive" -msgstr "" +msgstr "לא פעיל" #: src/components/render/Part.tsx:28 #: src/tables/bom/BomTable.tsx:204 #: src/tables/part/PartTable.tsx:134 msgid "No stock" -msgstr "" +msgstr "אין מלאי" -#: src/components/render/Part.tsx:30 -#: src/defaults/links.tsx:30 -#: src/defaults/menuItems.tsx:38 -#: src/pages/Index/Settings/SystemSettings.tsx:206 -#: src/pages/part/PartDetail.tsx:543 -#: src/pages/stock/LocationDetail.tsx:367 -#: src/pages/stock/StockDetail.tsx:411 -#: src/tables/stock/StockItemTable.tsx:68 -msgid "Stock" -msgstr "" - -#: src/components/render/Stock.tsx:60 -#: src/pages/stock/StockDetail.tsx:150 -#: src/pages/stock/StockDetail.tsx:581 -#: src/tables/build/BuildAllocatedStockTable.tsx:102 -#: src/tables/sales/SalesOrderAllocationTable.tsx:80 +#: src/components/render/Stock.tsx:61 +#: src/forms/ReturnOrderForms.tsx:190 +#: src/pages/stock/StockDetail.tsx:166 +#: src/pages/stock/StockDetail.tsx:771 +#: src/tables/build/BuildAllocatedStockTable.tsx:123 +#: src/tables/build/BuildOutputTable.tsx:81 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:114 +#: src/tables/sales/SalesOrderAllocationTable.tsx:106 msgid "Serial Number" -msgstr "" +msgstr "מספר סידורי" -#: src/components/render/Stock.tsx:62 -#: src/forms/BuildForms.tsx:218 -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/pages/part/pricing/BomPricingPanel.tsx:109 +#: src/components/render/Stock.tsx:63 +#: src/forms/BuildForms.tsx:206 +#: src/forms/BuildForms.tsx:515 +#: src/forms/PurchaseOrderForms.tsx:689 +#: src/forms/SalesOrderForms.tsx:248 +#: src/pages/part/PartSchedulingDetail.tsx:80 +#: src/pages/part/PartStocktakeDetail.tsx:60 +#: src/pages/part/PartStocktakeDetail.tsx:234 +#: src/pages/part/PartStocktakeDetail.tsx:252 +#: src/pages/part/pricing/BomPricingPanel.tsx:148 #: src/pages/part/pricing/PriceBreakPanel.tsx:89 -#: src/pages/part/pricing/PriceBreakPanel.tsx:171 -#: src/pages/stock/StockDetail.tsx:145 -#: src/pages/stock/StockDetail.tsx:587 -#: src/tables/build/BuildOrderTestTable.tsx:197 -#: src/tables/part/PartPurchaseOrdersTable.tsx:92 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:143 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:171 +#: src/pages/part/pricing/PriceBreakPanel.tsx:172 +#: src/pages/stock/StockDetail.tsx:161 +#: src/pages/stock/StockDetail.tsx:777 +#: src/tables/build/BuildLineTable.tsx:79 +#: src/tables/build/BuildOrderTestTable.tsx:198 +#: src/tables/part/PartPurchaseOrdersTable.tsx:93 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:146 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:177 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:77 -#: src/tables/stock/StockTrackingTable.tsx:59 +#: src/tables/stock/StockTrackingTable.tsx:63 msgid "Quantity" -msgstr "" +msgstr "כמות" #: src/components/settings/SettingItem.tsx:47 #: src/components/settings/SettingItem.tsx:100 @@ -1779,24 +2377,24 @@ msgstr "" #: src/components/settings/SettingList.tsx:67 msgid "Edit Setting" -msgstr "" +msgstr "ערוך הגדרה" #: src/components/settings/SettingList.tsx:78 #: src/components/settings/SettingList.tsx:108 msgid "Setting {0} updated successfully" -msgstr "" +msgstr "ההגדרה {0} עודכנה בהצלחה" #: src/components/settings/SettingList.tsx:107 msgid "Setting updated" -msgstr "" +msgstr "ההגדרה עודכנה" #: src/components/settings/SettingList.tsx:117 msgid "Error editing setting" -msgstr "" +msgstr "שגיאה בעריכת ההגדרה" #: src/components/settings/SettingList.tsx:162 msgid "No settings specified" -msgstr "" +msgstr "לא צוינו הגדרות" #: src/components/tables/FilterGroup.tsx:29 #~ msgid "Add table filter" @@ -1842,10 +2440,6 @@ msgstr "" #~ msgid "Required Part" #~ msgstr "Required Part" -#: src/components/tables/build/BuildLineTable.tsx:152 -#~ msgid "Required Quantity" -#~ msgstr "Required Quantity" - #: src/components/tables/build/BuildOrderTable.tsx:52 #~ msgid "Progress" #~ msgstr "Progress" @@ -2126,14 +2720,6 @@ msgstr "" #~ msgid "user deleted" #~ msgstr "user deleted" -#: src/components/tables/settings/UserTable.tsx:168 -#~ msgid "First Name" -#~ msgstr "First Name" - -#: src/components/tables/settings/UserTable.tsx:173 -#~ msgid "Last Name" -#~ msgstr "Last Name" - #: src/components/tables/stock/StockItemTable.tsx:247 #~ msgid "Test Filter" #~ msgstr "Test Filter" @@ -2146,36 +2732,21 @@ msgstr "" #~ msgid "Stock location updated" #~ msgstr "Stock location updated" -#: src/components/widgets/DisplayWidget.tsx:11 -#: src/pages/Index/Settings/AccountSettings/DisplaySettingsPanel.tsx:17 -msgid "Display Settings" -msgstr "" - -#: src/components/widgets/DisplayWidget.tsx:15 -#: src/pages/Index/Settings/AccountSettings/DisplaySettingsPanel.tsx:23 -msgid "Color Mode" -msgstr "" - -#: src/components/widgets/DisplayWidget.tsx:21 -#: src/pages/Index/Settings/AccountSettings/DisplaySettingsPanel.tsx:33 -msgid "Language" -msgstr "" - #: src/components/widgets/FeedbackWidget.tsx:19 -msgid "Something is new: Platform UI" -msgstr "" +#~ msgid "Something is new: Platform UI" +#~ msgstr "Something is new: Platform UI" #: src/components/widgets/FeedbackWidget.tsx:21 -msgid "We are building a new UI with a modern stack. What you currently see is not fixed and will be redesigned but demonstrates the UI/UX possibilities we will have going forward." -msgstr "" +#~ msgid "We are building a new UI with a modern stack. What you currently see is not fixed and will be redesigned but demonstrates the UI/UX possibilities we will have going forward." +#~ msgstr "We are building a new UI with a modern stack. What you currently see is not fixed and will be redesigned but demonstrates the UI/UX possibilities we will have going forward." #: src/components/widgets/FeedbackWidget.tsx:32 -msgid "Provide Feedback" -msgstr "" +#~ msgid "Provide Feedback" +#~ msgstr "Provide Feedback" #: src/components/widgets/GetStartedWidget.tsx:11 -msgid "Getting started" -msgstr "" +#~ msgid "Getting started" +#~ msgstr "Getting started" #: src/components/widgets/MarkdownEditor.tsx:108 #~ msgid "Failed to upload image" @@ -2186,301 +2757,271 @@ msgstr "" #~ msgstr "Notes saved" #: src/components/widgets/WidgetLayout.tsx:166 -msgid "Layout" -msgstr "" +#~ msgid "Layout" +#~ msgstr "Layout" #: src/components/widgets/WidgetLayout.tsx:172 -msgid "Reset Layout" -msgstr "" +#~ msgid "Reset Layout" +#~ msgstr "Reset Layout" #: src/components/widgets/WidgetLayout.tsx:185 -msgid "Stop Edit" -msgstr "" - -#: src/components/widgets/WidgetLayout.tsx:185 -msgid "Edit Layout" -msgstr "" +#~ msgid "Stop Edit" +#~ msgstr "Stop Edit" #: src/components/widgets/WidgetLayout.tsx:191 -msgid "Appearance" -msgstr "" +#~ msgid "Appearance" +#~ msgstr "Appearance" #: src/components/widgets/WidgetLayout.tsx:203 -msgid "Show Boxes" -msgstr "" +#~ msgid "Show Boxes" +#~ msgstr "Show Boxes" #: src/contexts/LanguageContext.tsx:20 msgid "Arabic" -msgstr "" +msgstr "ערבית" #: src/contexts/LanguageContext.tsx:21 msgid "Bulgarian" -msgstr "" +msgstr "בולגרית" #: src/contexts/LanguageContext.tsx:22 msgid "Czech" -msgstr "" +msgstr "צ'כית" #: src/contexts/LanguageContext.tsx:23 msgid "Danish" -msgstr "" +msgstr "דנית" #: src/contexts/LanguageContext.tsx:24 msgid "German" -msgstr "" +msgstr "גרמנית" #: src/contexts/LanguageContext.tsx:25 msgid "Greek" -msgstr "" +msgstr "יוונית" #: src/contexts/LanguageContext.tsx:26 msgid "English" -msgstr "" +msgstr "אנגלית" #: src/contexts/LanguageContext.tsx:27 msgid "Spanish" -msgstr "" +msgstr "ספרדית" #: src/contexts/LanguageContext.tsx:28 msgid "Spanish (Mexican)" -msgstr "" +msgstr "ספרדית (מקסיקני)" #: src/contexts/LanguageContext.tsx:29 msgid "Estonian" -msgstr "" +msgstr "אסטונית" #: src/contexts/LanguageContext.tsx:30 msgid "Farsi / Persian" -msgstr "" +msgstr "פרסית" #: src/contexts/LanguageContext.tsx:31 msgid "Finnish" -msgstr "" +msgstr "פינית" #: src/contexts/LanguageContext.tsx:32 msgid "French" -msgstr "" +msgstr "צרפתית" #: src/contexts/LanguageContext.tsx:33 msgid "Hebrew" -msgstr "" +msgstr "עברית" #: src/contexts/LanguageContext.tsx:34 msgid "Hindi" -msgstr "" +msgstr "הינדי" #: src/contexts/LanguageContext.tsx:35 msgid "Hungarian" -msgstr "" +msgstr "הונגרית" #: src/contexts/LanguageContext.tsx:36 msgid "Italian" -msgstr "" +msgstr "איטלקית" #: src/contexts/LanguageContext.tsx:37 msgid "Japanese" -msgstr "" +msgstr "יפנית" #: src/contexts/LanguageContext.tsx:38 msgid "Korean" -msgstr "" +msgstr "קוריאנית" #: src/contexts/LanguageContext.tsx:39 -msgid "Latvian" +msgid "Lithuanian" msgstr "" #: src/contexts/LanguageContext.tsx:40 -msgid "Dutch" -msgstr "" +msgid "Latvian" +msgstr "לאבית" #: src/contexts/LanguageContext.tsx:41 -msgid "Norwegian" -msgstr "" +msgid "Dutch" +msgstr "הולנדית" #: src/contexts/LanguageContext.tsx:42 -msgid "Polish" -msgstr "" +msgid "Norwegian" +msgstr "נורבגית" #: src/contexts/LanguageContext.tsx:43 -msgid "Portuguese" -msgstr "" +msgid "Polish" +msgstr "פולנית" #: src/contexts/LanguageContext.tsx:44 -msgid "Portuguese (Brazilian)" -msgstr "" +msgid "Portuguese" +msgstr "פורטוגזית" #: src/contexts/LanguageContext.tsx:45 -msgid "Romanian" -msgstr "" +msgid "Portuguese (Brazilian)" +msgstr "פורטוגזית (ברזילאית)" #: src/contexts/LanguageContext.tsx:46 -msgid "Russian" -msgstr "" +msgid "Romanian" +msgstr "רומנית" #: src/contexts/LanguageContext.tsx:47 -msgid "Slovak" -msgstr "" +msgid "Russian" +msgstr "רוסית" #: src/contexts/LanguageContext.tsx:48 -msgid "Slovenian" -msgstr "" +msgid "Slovak" +msgstr "סלובקית" #: src/contexts/LanguageContext.tsx:49 -msgid "Swedish" -msgstr "" +msgid "Slovenian" +msgstr "סלובנית" #: src/contexts/LanguageContext.tsx:50 -msgid "Thai" -msgstr "" +msgid "Swedish" +msgstr "שוודית" #: src/contexts/LanguageContext.tsx:51 -msgid "Turkish" -msgstr "" +msgid "Thai" +msgstr "תאילנדית" #: src/contexts/LanguageContext.tsx:52 -msgid "Ukrainian" -msgstr "" +msgid "Turkish" +msgstr "טורקית" #: src/contexts/LanguageContext.tsx:53 -msgid "Vietnamese" -msgstr "" +msgid "Ukrainian" +msgstr "אוקראינית" #: src/contexts/LanguageContext.tsx:54 -msgid "Chinese (Simplified)" -msgstr "" +msgid "Vietnamese" +msgstr "וייטנאמית" #: src/contexts/LanguageContext.tsx:55 +msgid "Chinese (Simplified)" +msgstr "סינית (פשוטה)" + +#: src/contexts/LanguageContext.tsx:56 msgid "Chinese (Traditional)" -msgstr "" +msgstr "סינית (מסורתית)" + +#: src/defaults/actions.tsx:18 +msgid "Go to the InvenTree dashboard" +msgstr "עבור אל לוח המחוונים של InvenTree" #: src/defaults/actions.tsx:18 #: src/defaults/links.tsx:27 #: src/defaults/menuItems.tsx:9 -msgid "Home" -msgstr "" +#~ msgid "Home" +#~ msgstr "Home" #: src/defaults/actions.tsx:25 -#: src/defaults/links.tsx:28 -#: src/defaults/menuItems.tsx:28 -#: src/pages/Index/Dashboard.tsx:19 -#: src/pages/Index/Settings/UserSettings.tsx:46 -msgid "Dashboard" -msgstr "" - -#: src/defaults/actions.tsx:26 -msgid "Go to the InvenTree dashboard" -msgstr "" - -#: src/defaults/actions.tsx:33 msgid "Visit the documentation to learn more about InvenTree" -msgstr "" +msgstr "בקר בתיעוד כדי ללמוד עוד על InvenTree" + +#: src/defaults/actions.tsx:31 +#: src/defaults/links.tsx:92 +#: src/defaults/links.tsx:124 +msgid "About InvenTree" +msgstr "אודות InvenTree" + +#: src/defaults/actions.tsx:32 +msgid "About the InvenTree org" +msgstr "אודות ארגון InvenTree" + +#: src/defaults/actions.tsx:38 +msgid "Server Information" +msgstr "מידע שרת" #: src/defaults/actions.tsx:39 -#: src/defaults/links.tsx:98 -#: src/defaults/links.tsx:128 -msgid "About InvenTree" -msgstr "" +#: src/defaults/links.tsx:118 +msgid "About this Inventree instance" +msgstr "על מופע Inventree זה" -#: src/defaults/actions.tsx:40 -#: src/defaults/links.tsx:129 -msgid "About the InvenTree org" -msgstr "" +#: src/defaults/actions.tsx:45 +#: src/defaults/links.tsx:105 +#: src/defaults/links.tsx:131 +msgid "License Information" +msgstr "מידע על רישיון" #: src/defaults/actions.tsx:46 -msgid "Server Information" -msgstr "" +msgid "Licenses for dependencies of the service" +msgstr "רישיונות לתלות בשירות" -#: src/defaults/actions.tsx:47 -#: src/defaults/links.tsx:123 -msgid "About this Inventree instance" -msgstr "" +#: src/defaults/actions.tsx:52 +msgid "Open Navigation" +msgstr "פתח את הניווט" #: src/defaults/actions.tsx:53 -#: src/defaults/links.tsx:111 -msgid "License Information" -msgstr "" - -#: src/defaults/actions.tsx:54 -#: src/defaults/links.tsx:135 -msgid "Licenses for dependencies of the service" -msgstr "" - -#: src/defaults/actions.tsx:61 msgid "Open the main navigation menu" -msgstr "" +msgstr "פתח את תפריט הניווט הראשי" -#: src/defaults/actions.tsx:72 +#: src/defaults/actions.tsx:64 msgid "Go to the Admin Center" -msgstr "" - -#: src/defaults/dashboardItems.tsx:15 -msgid "Subscribed Parts" -msgstr "" - -#: src/defaults/dashboardItems.tsx:22 -msgid "Subscribed Categories" -msgstr "" +msgstr "עבור אל מרכז הניהול" #: src/defaults/dashboardItems.tsx:29 -msgid "Latest Parts" -msgstr "" +#~ msgid "Latest Parts" +#~ msgstr "Latest Parts" #: src/defaults/dashboardItems.tsx:36 -msgid "BOM Waiting Validation" -msgstr "" +#~ msgid "BOM Waiting Validation" +#~ msgstr "BOM Waiting Validation" #: src/defaults/dashboardItems.tsx:43 -msgid "Recently Updated" -msgstr "" - -#: src/defaults/dashboardItems.tsx:50 -#: src/tables/part/PartTable.tsx:238 -msgid "Low Stock" -msgstr "" +#~ msgid "Recently Updated" +#~ msgstr "Recently Updated" #: src/defaults/dashboardItems.tsx:57 -msgid "Depleted Stock" -msgstr "" +#~ msgid "Depleted Stock" +#~ msgstr "Depleted Stock" #: src/defaults/dashboardItems.tsx:64 -msgid "Required for Build Orders" -msgstr "" +#~ msgid "Required for Build Orders" +#~ msgstr "Required for Build Orders" #: src/defaults/dashboardItems.tsx:71 -msgid "Expired Stock" -msgstr "" +#~ msgid "Expired Stock" +#~ msgstr "Expired Stock" #: src/defaults/dashboardItems.tsx:78 -msgid "Stale Stock" -msgstr "" +#~ msgid "Stale Stock" +#~ msgstr "Stale Stock" #: src/defaults/dashboardItems.tsx:85 -msgid "Build Orders In Progress" -msgstr "" - -#: src/defaults/dashboardItems.tsx:92 -msgid "Overdue Build Orders" -msgstr "" +#~ msgid "Build Orders In Progress" +#~ msgstr "Build Orders In Progress" #: src/defaults/dashboardItems.tsx:99 -msgid "Outstanding Purchase Orders" -msgstr "" - -#: src/defaults/dashboardItems.tsx:106 -msgid "Overdue Purchase Orders" -msgstr "" +#~ msgid "Outstanding Purchase Orders" +#~ msgstr "Outstanding Purchase Orders" #: src/defaults/dashboardItems.tsx:113 -msgid "Outstanding Sales Orders" -msgstr "" - -#: src/defaults/dashboardItems.tsx:120 -msgid "Overdue Sales Orders" -msgstr "" +#~ msgid "Outstanding Sales Orders" +#~ msgstr "Outstanding Sales Orders" #: src/defaults/dashboardItems.tsx:127 -msgid "Current News" -msgstr "" +#~ msgid "Current News" +#~ msgstr "Current News" #: src/defaults/defaultHostList.tsx:8 #~ msgid "InvenTree Demo" @@ -2490,98 +3031,81 @@ msgstr "" #~ msgid "Local Server" #~ msgstr "Local Server" -#: src/defaults/links.tsx:12 -#: src/pages/company/CompanyDetail.tsx:96 -msgid "Website" -msgstr "" - #: src/defaults/links.tsx:17 -msgid "GitHub" -msgstr "" +#~ msgid "GitHub" +#~ msgstr "GitHub" #: src/defaults/links.tsx:22 -msgid "Demo" -msgstr "" - -#: src/defaults/links.tsx:33 -#: src/defaults/menuItems.tsx:48 -#: src/pages/company/ManufacturerDetail.tsx:9 -#: src/pages/company/ManufacturerPartDetail.tsx:263 -#: src/pages/company/SupplierDetail.tsx:9 -#: src/pages/company/SupplierPartDetail.tsx:347 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:483 -#: src/pages/purchasing/PurchasingIndex.tsx:60 -msgid "Purchasing" -msgstr "" - -#: src/defaults/links.tsx:37 -#: src/defaults/menuItems.tsx:53 -#: src/pages/company/CustomerDetail.tsx:9 -#: src/pages/sales/ReturnOrderDetail.tsx:474 -#: src/pages/sales/SalesIndex.tsx:53 -#: src/pages/sales/SalesOrderDetail.tsx:525 -msgid "Sales" -msgstr "" +#~ msgid "Demo" +#~ msgstr "Demo" #: src/defaults/links.tsx:41 #: src/defaults/menuItems.tsx:71 #: src/pages/Index/Playground.tsx:217 -msgid "Playground" -msgstr "" +#~ msgid "Playground" +#~ msgstr "Playground" + +#: src/defaults/links.tsx:45 +msgid "API" +msgstr "API" + +#: src/defaults/links.tsx:48 +msgid "InvenTree API documentation" +msgstr "תיעוד InvenTree API" + +#: src/defaults/links.tsx:52 +msgid "Developer Manual" +msgstr "מדריך למפתחים" #: src/defaults/links.tsx:55 -msgid "Getting Started" -msgstr "" +msgid "InvenTree developer manual" +msgstr "מדריך למפתחים של InvenTree" -#: src/defaults/links.tsx:56 -msgid "Getting started with InvenTree" -msgstr "" +#: src/defaults/links.tsx:59 +msgid "FAQ" +msgstr "שאלות נפוצות" #: src/defaults/links.tsx:62 -msgid "API" -msgstr "" +msgid "Frequently asked questions" +msgstr "שאלות נפוצות" -#: src/defaults/links.tsx:63 -msgid "InvenTree API documentation" -msgstr "" - -#: src/defaults/links.tsx:68 -msgid "Developer Manual" +#: src/defaults/links.tsx:66 +msgid "GitHub Repository" msgstr "" #: src/defaults/links.tsx:69 -msgid "InvenTree developer manual" -msgstr "" - -#: src/defaults/links.tsx:74 -msgid "FAQ" -msgstr "" - -#: src/defaults/links.tsx:75 -msgid "Frequently asked questions" +msgid "InvenTree source code on GitHub" msgstr "" #: src/defaults/links.tsx:76 #~ msgid "Instance" #~ msgstr "Instance" +#: src/defaults/links.tsx:79 +#: src/defaults/links.tsx:117 +msgid "System Information" +msgstr "מידע מערכת" + #: src/defaults/links.tsx:83 #~ msgid "InvenTree" #~ msgstr "InvenTree" -#: src/defaults/links.tsx:85 -#: src/defaults/links.tsx:122 -msgid "System Information" -msgstr "" - #: src/defaults/links.tsx:117 #~ msgid "Licenses for packages used by InvenTree" #~ msgstr "Licenses for packages used by InvenTree" -#: src/defaults/links.tsx:134 -msgid "Licenses" +#: src/defaults/links.tsx:125 +msgid "About the InvenTree Project" msgstr "" +#: src/defaults/links.tsx:132 +msgid "Licenses for dependencies of the InvenTree software" +msgstr "" + +#: src/defaults/links.tsx:134 +#~ msgid "Licenses" +#~ msgstr "Licenses" + #: src/defaults/menuItems.tsx:7 #~ msgid "Open sourcea" #~ msgstr "Open sourcea" @@ -2607,8 +3131,8 @@ msgstr "" #~ msgstr "Profile page" #: src/defaults/menuItems.tsx:17 -msgid "User attributes and design settings." -msgstr "" +#~ msgid "User attributes and design settings." +#~ msgstr "User attributes and design settings." #: src/defaults/menuItems.tsx:21 #~ msgid "Free for everyone" @@ -2619,8 +3143,8 @@ msgstr "" #~ msgstr "The fluid of Smeargle’s tail secretions changes" #: src/defaults/menuItems.tsx:23 -msgid "View for interactive scanning and multiple actions." -msgstr "" +#~ msgid "View for interactive scanning and multiple actions." +#~ msgstr "View for interactive scanning and multiple actions." #: src/defaults/menuItems.tsx:24 #~ msgid "The fluid of Smeargle’s tail secretions changes in the intensity" @@ -2698,51 +3222,130 @@ msgstr "" #~ msgid "Are you sure you want to delete this attachment?" #~ msgstr "Are you sure you want to delete this attachment?" -#: src/forms/BuildForms.tsx:158 -msgid "Next serial number" +#: src/forms/BuildForms.tsx:248 +#~ msgid "Remove output" +#~ msgstr "Remove output" + +#: src/forms/BuildForms.tsx:269 +#: src/tables/build/BuildAllocatedStockTable.tsx:147 +#: src/tables/build/BuildOrderTestTable.tsx:177 +#: src/tables/build/BuildOrderTestTable.tsx:201 +#: src/tables/build/BuildOutputTable.tsx:460 +msgid "Build Output" msgstr "" -#: src/forms/BuildForms.tsx:162 -msgid "Latest serial number" +#: src/forms/BuildForms.tsx:269 +#: src/forms/BuildForms.tsx:337 +#: src/forms/BuildForms.tsx:385 +#: src/tables/build/BuildLineTable.tsx:89 +msgid "Batch" msgstr "" -#: src/forms/BuildForms.tsx:234 -msgid "Remove output" +#: src/forms/BuildForms.tsx:269 +#: src/forms/BuildForms.tsx:337 +#: src/forms/BuildForms.tsx:385 +#: src/forms/PurchaseOrderForms.tsx:603 +#: src/pages/build/BuildDetail.tsx:104 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:142 +#: src/pages/sales/ReturnOrderDetail.tsx:113 +#: src/pages/sales/SalesOrderDetail.tsx:122 +#: src/tables/build/BuildOrderTable.tsx:125 +#: src/tables/machine/MachineListTable.tsx:336 +#: src/tables/part/PartPurchaseOrdersTable.tsx:37 +#: src/tables/purchasing/PurchaseOrderTable.tsx:58 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:157 +#: src/tables/sales/ReturnOrderTable.tsx:56 +#: src/tables/sales/SalesOrderTable.tsx:56 +#: src/tables/settings/CustomStateTable.tsx:57 +#: src/tables/settings/ImportSessionTable.tsx:114 +#: src/tables/stock/StockItemTable.tsx:298 +#: src/tables/stock/StockTrackingTable.tsx:56 +msgid "Status" msgstr "" -#: src/forms/BuildForms.tsx:316 +#: src/forms/BuildForms.tsx:289 msgid "Complete Build Outputs" msgstr "" -#: src/forms/BuildForms.tsx:320 +#: src/forms/BuildForms.tsx:292 msgid "Build outputs have been completed" msgstr "" -#: src/forms/BuildForms.tsx:389 +#: src/forms/BuildForms.tsx:353 msgid "Scrap Build Outputs" msgstr "" -#: src/forms/BuildForms.tsx:393 +#: src/forms/BuildForms.tsx:356 msgid "Build outputs have been scrapped" msgstr "" -#: src/forms/BuildForms.tsx:425 -#: src/forms/BuildForms.tsx:449 +#: src/forms/BuildForms.tsx:393 msgid "Cancel Build Outputs" msgstr "" -#: src/forms/BuildForms.tsx:426 -msgid "Selected build outputs will be deleted" +#: src/forms/BuildForms.tsx:396 +msgid "Build outputs have been cancelled" msgstr "" -#: src/forms/BuildForms.tsx:453 -msgid "Build outputs have been cancelled" +#: src/forms/BuildForms.tsx:408 +#~ msgid "Selected build outputs will be deleted" +#~ msgstr "Selected build outputs will be deleted" + +#: src/forms/BuildForms.tsx:470 +#~ msgid "Remove line" +#~ msgstr "Remove line" + +#: src/forms/BuildForms.tsx:515 +#: src/forms/SalesOrderForms.tsx:248 +#: src/tables/build/BuildLineTable.tsx:174 +#: src/tables/sales/SalesOrderLineItemTable.tsx:276 +#: src/tables/stock/StockItemTable.tsx:309 +msgid "Allocated" +msgstr "" + +#: src/forms/BuildForms.tsx:545 +#: src/forms/SalesOrderForms.tsx:239 +#: src/pages/build/BuildDetail.tsx:208 +msgid "Source Location" +msgstr "" + +#: src/forms/BuildForms.tsx:546 +#: src/forms/SalesOrderForms.tsx:240 +msgid "Select the source location for the stock allocation" +msgstr "" + +#: src/forms/BuildForms.tsx:566 +#: src/forms/SalesOrderForms.tsx:274 +#: src/tables/build/BuildLineTable.tsx:442 +#: src/tables/build/BuildLineTable.tsx:569 +#: src/tables/build/BuildLineTable.tsx:642 +#: src/tables/sales/SalesOrderLineItemTable.tsx:302 +#: src/tables/sales/SalesOrderLineItemTable.tsx:326 +msgid "Allocate Stock" +msgstr "" + +#: src/forms/BuildForms.tsx:569 +#: src/forms/SalesOrderForms.tsx:279 +msgid "Stock items allocated" msgstr "" #: src/forms/CompanyForms.tsx:150 #~ msgid "Company updated" #~ msgstr "Company updated" +#: src/forms/PartForms.tsx:67 +#: src/forms/PartForms.tsx:154 +#: src/pages/part/CategoryDetail.tsx:117 +#: src/pages/part/PartDetail.tsx:384 +#: src/tables/part/PartCategoryTable.tsx:90 +#: src/tables/part/PartTable.tsx:294 +msgid "Subscribed" +msgstr "" + +#: src/forms/PartForms.tsx:68 +msgid "Subscribe to notifications for this part" +msgstr "" + #: src/forms/PartForms.tsx:106 #~ msgid "Create Part" #~ msgstr "Create Part" @@ -2751,191 +3354,190 @@ msgstr "" #~ msgid "Part created" #~ msgstr "Part created" -#: src/forms/PartForms.tsx:124 -msgid "Parent part category" -msgstr "" - #: src/forms/PartForms.tsx:129 #~ msgid "Part updated" #~ msgstr "Part updated" -#: src/forms/PurchaseOrderForms.tsx:300 +#: src/forms/PartForms.tsx:140 +msgid "Parent part category" +msgstr "" + +#: src/forms/PartForms.tsx:155 +msgid "Subscribe to notifications for this category" +msgstr "" + +#: src/forms/PurchaseOrderForms.tsx:314 +msgid "Assign Batch Code and Serial Numbers" +msgstr "" + +#: src/forms/PurchaseOrderForms.tsx:316 +msgid "Assign Batch Code" +msgstr "" + +#: src/forms/PurchaseOrderForms.tsx:336 msgid "Choose Location" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:308 +#: src/forms/PurchaseOrderForms.tsx:344 msgid "Item Destination selected" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:317 +#: src/forms/PurchaseOrderForms.tsx:353 msgid "Part category default location selected" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:327 +#: src/forms/PurchaseOrderForms.tsx:363 msgid "Received stock location selected" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:332 +#: src/forms/PurchaseOrderForms.tsx:368 msgid "Default location selected" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:343 -#: src/forms/PurchaseOrderForms.tsx:435 -msgid "Scan Barcode" -msgstr "" +#: src/forms/PurchaseOrderForms.tsx:421 +#~ msgid "Assign Batch Code{0}" +#~ msgstr "Assign Batch Code{0}" -#: src/forms/PurchaseOrderForms.tsx:388 +#: src/forms/PurchaseOrderForms.tsx:427 msgid "Set Location" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:396 -msgid "Assign Batch Code{0}" -msgstr "" - -#: src/forms/PurchaseOrderForms.tsx:405 -#: src/forms/StockForms.tsx:420 +#: src/forms/PurchaseOrderForms.tsx:442 +#: src/forms/StockForms.tsx:539 msgid "Adjust Packaging" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:412 -msgid "Change Status" -msgstr "" - -#: src/forms/PurchaseOrderForms.tsx:418 -msgid "Add Note" -msgstr "" - #: src/forms/PurchaseOrderForms.tsx:444 #: src/forms/StockForms.tsx:428 -msgid "Remove item from list" +#~ msgid "Remove item from list" +#~ msgstr "Remove item from list" + +#: src/forms/PurchaseOrderForms.tsx:450 +msgid "Change Status" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:471 -#: src/forms/StockForms.tsx:499 -#: src/forms/StockForms.tsx:533 -#: src/forms/StockForms.tsx:562 -#: src/forms/StockForms.tsx:590 -#: src/forms/StockForms.tsx:621 -#: src/forms/StockForms.tsx:656 -#: src/forms/StockForms.tsx:698 -#: src/forms/StockForms.tsx:734 -#: src/pages/stock/StockDetail.tsx:181 -#: src/tables/ColumnRenderers.tsx:49 -#: src/tables/stock/StockTrackingTable.tsx:85 +#: src/forms/PurchaseOrderForms.tsx:456 +msgid "Add Note" +msgstr "" + +#: src/forms/PurchaseOrderForms.tsx:503 +#: src/forms/StockForms.tsx:614 +#: src/forms/StockForms.tsx:651 +#: src/forms/StockForms.tsx:677 +#: src/forms/StockForms.tsx:705 +#: src/forms/StockForms.tsx:736 +#: src/forms/StockForms.tsx:771 +#: src/forms/StockForms.tsx:813 +#: src/forms/StockForms.tsx:851 +#: src/pages/stock/StockDetail.tsx:202 +#: src/tables/ColumnRenderers.tsx:60 +#: src/tables/stock/StockTrackingTable.tsx:89 msgid "Location" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:486 +#: src/forms/PurchaseOrderForms.tsx:518 msgid "Store at default location" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:499 +#: src/forms/PurchaseOrderForms.tsx:533 msgid "Store at line item destination" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:509 +#: src/forms/PurchaseOrderForms.tsx:545 msgid "Store with already received stock" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:524 -#: src/pages/build/BuildDetail.tsx:219 -#: src/pages/stock/StockDetail.tsx:162 -#: src/pages/stock/StockDetail.tsx:599 -#: src/tables/build/BuildAllocatedStockTable.tsx:109 -#: src/tables/build/BuildOrderTestTable.tsx:188 -#: src/tables/sales/SalesOrderAllocationTable.tsx:87 +#: src/forms/PurchaseOrderForms.tsx:566 +#: src/pages/build/BuildDetail.tsx:222 +#: src/pages/stock/StockDetail.tsx:185 +#: src/pages/stock/StockDetail.tsx:793 +#: src/tables/build/BuildAllocatedStockTable.tsx:130 +#: src/tables/build/BuildOrderTestTable.tsx:189 +#: src/tables/build/BuildOutputTable.tsx:86 +#: src/tables/sales/SalesOrderAllocationTable.tsx:113 msgid "Batch Code" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:535 -msgid "Serial numbers" +#: src/forms/PurchaseOrderForms.tsx:566 +#~ msgid "Serial numbers" +#~ msgstr "Serial numbers" + +#: src/forms/PurchaseOrderForms.tsx:567 +msgid "Enter batch code for received items" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:544 -#: src/forms/StockForms.tsx:443 -#: src/pages/company/SupplierPartDetail.tsx:156 -#: src/pages/company/SupplierPartDetail.tsx:207 -#: src/pages/stock/StockDetail.tsx:244 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:192 +#: src/forms/PurchaseOrderForms.tsx:579 +#: src/forms/StockForms.tsx:152 +msgid "Serial Numbers" +msgstr "" + +#: src/forms/PurchaseOrderForms.tsx:580 +msgid "Enter serial numbers for received items" +msgstr "" + +#: src/forms/PurchaseOrderForms.tsx:590 +#: src/forms/StockForms.tsx:556 +#: src/pages/company/SupplierPartDetail.tsx:168 +#: src/pages/company/SupplierPartDetail.tsx:219 +#: src/pages/stock/StockDetail.tsx:320 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:198 msgid "Packaging" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:556 -#: src/pages/build/BuildDetail.tsx:109 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:148 -#: src/pages/sales/ReturnOrderDetail.tsx:121 -#: src/pages/sales/SalesOrderDetail.tsx:127 -#: src/tables/build/BuildOrderTable.tsx:122 -#: src/tables/machine/MachineListTable.tsx:335 -#: src/tables/part/PartPurchaseOrdersTable.tsx:37 -#: src/tables/purchasing/PurchaseOrderTable.tsx:55 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:132 -#: src/tables/sales/ReturnOrderTable.tsx:46 -#: src/tables/sales/SalesOrderTable.tsx:53 -#: src/tables/settings/ImportSessionTable.tsx:115 -#: src/tables/stock/StockItemTable.tsx:294 -#: src/tables/stock/StockTrackingTable.tsx:52 -msgid "Status" -msgstr "" - -#: src/forms/PurchaseOrderForms.tsx:564 -#: src/pages/company/SupplierPartDetail.tsx:110 -#: src/tables/ColumnRenderers.tsx:132 +#: src/forms/PurchaseOrderForms.tsx:612 +#: src/pages/company/SupplierPartDetail.tsx:115 +#: src/tables/ColumnRenderers.tsx:143 msgid "Note" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/pages/company/SupplierPartDetail.tsx:128 -#: src/tables/purchasing/SupplierPriceBreakTable.tsx:57 -msgid "SKU" -msgstr "" - -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/tables/part/PartPurchaseOrdersTable.tsx:120 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:178 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:127 -msgid "Received" -msgstr "" - -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/forms/StockForms.tsx:499 -#: src/forms/StockForms.tsx:533 -#: src/forms/StockForms.tsx:562 -#: src/forms/StockForms.tsx:590 -#: src/forms/StockForms.tsx:621 -#: src/forms/StockForms.tsx:656 -#: src/forms/StockForms.tsx:698 -#: src/forms/StockForms.tsx:734 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:413 -#: src/tables/RowActions.tsx:113 -msgid "Actions" -msgstr "" - -#: src/forms/PurchaseOrderForms.tsx:655 -msgid "Receive Line Items" -msgstr "" - #: src/forms/PurchaseOrderForms.tsx:658 #~ msgid "Receive line items" #~ msgstr "Receive line items" -#: src/forms/StockForms.tsx:104 -msgid "Add given quantity as packs instead of individual items" +#: src/forms/PurchaseOrderForms.tsx:689 +#: src/pages/company/SupplierPartDetail.tsx:133 +#: src/tables/purchasing/SupplierPriceBreakTable.tsx:57 +msgid "SKU" +msgstr "" + +#: src/forms/PurchaseOrderForms.tsx:689 +#: src/tables/part/PartPurchaseOrdersTable.tsx:126 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:184 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:247 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:152 +msgid "Received" +msgstr "" + +#: src/forms/PurchaseOrderForms.tsx:701 +msgid "Receive Line Items" +msgstr "" + +#: src/forms/ReturnOrderForms.tsx:201 +msgid "Receive Items" +msgstr "" + +#: src/forms/ReturnOrderForms.tsx:208 +msgid "Item received into stock" +msgstr "" + +#: src/forms/StockForms.tsx:80 +#: src/hooks/UsePlaceholder.tsx:57 +msgid "Next serial number" msgstr "" #: src/forms/StockForms.tsx:110 #~ msgid "Create Stock Item" #~ msgstr "Create Stock Item" -#: src/forms/StockForms.tsx:117 +#: src/forms/StockForms.tsx:131 +msgid "Add given quantity as packs instead of individual items" +msgstr "" + +#: src/forms/StockForms.tsx:145 msgid "Enter initial quantity for this stock item" msgstr "" -#: src/forms/StockForms.tsx:124 -msgid "Serial Numbers" -msgstr "" - -#: src/forms/StockForms.tsx:125 +#: src/forms/StockForms.tsx:154 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" @@ -2943,82 +3545,102 @@ msgstr "" #~ msgid "Stock item updated" #~ msgstr "Stock item updated" -#: src/forms/StockForms.tsx:179 -#: src/pages/stock/StockDetail.tsx:434 -#: src/tables/stock/StockItemTable.tsx:417 -#: src/tables/stock/StockItemTable.tsx:535 +#: src/forms/StockForms.tsx:169 +#: src/pages/stock/StockDetail.tsx:131 +msgid "Stock Status" +msgstr "" + +#: src/forms/StockForms.tsx:218 +#: src/pages/stock/StockDetail.tsx:554 +#: src/tables/stock/StockItemTable.tsx:421 +#: src/tables/stock/StockItemTable.tsx:541 msgid "Add Stock Item" msgstr "" -#: src/forms/StockForms.tsx:362 +#: src/forms/StockForms.tsx:262 +msgid "Select the part to install" +msgstr "" + +#: src/forms/StockForms.tsx:480 msgid "Loading..." msgstr "" -#: src/forms/StockForms.tsx:408 +#: src/forms/StockForms.tsx:527 msgid "Move to default location" msgstr "" -#: src/forms/StockForms.tsx:499 -#: src/forms/StockForms.tsx:533 -#: src/forms/StockForms.tsx:562 -#: src/forms/StockForms.tsx:590 -#: src/forms/StockForms.tsx:621 -#: src/forms/StockForms.tsx:656 -#: src/forms/StockForms.tsx:698 -#: src/forms/StockForms.tsx:734 -#: src/pages/part/PartDetail.tsx:230 -#: src/pages/part/PartDetail.tsx:843 -#: src/tables/stock/StockItemTable.tsx:325 +#: src/forms/StockForms.tsx:614 +#: src/forms/StockForms.tsx:651 +#: src/forms/StockForms.tsx:677 +#: src/forms/StockForms.tsx:705 +#: src/forms/StockForms.tsx:736 +#: src/forms/StockForms.tsx:771 +#: src/forms/StockForms.tsx:813 +#: src/forms/StockForms.tsx:851 +#: src/pages/part/PartDetail.tsx:251 +#: src/pages/part/PartDetail.tsx:875 +#: src/tables/stock/StockItemTable.tsx:329 msgid "In Stock" msgstr "" -#: src/forms/StockForms.tsx:499 +#: src/forms/StockForms.tsx:614 msgid "Move" msgstr "" -#: src/forms/StockForms.tsx:562 -#: src/pages/stock/StockDetail.tsx:518 -#: src/tables/stock/StockItemTestResultTable.tsx:328 +#: src/forms/StockForms.tsx:677 +#: src/pages/stock/StockDetail.tsx:681 +#: src/tables/stock/StockItemTestResultTable.tsx:346 msgid "Add" msgstr "" -#: src/forms/StockForms.tsx:590 -#: src/pages/Index/Scan.tsx:266 -#: src/pages/stock/StockDetail.tsx:508 +#: src/forms/StockForms.tsx:705 +#: src/pages/Index/Scan.tsx:280 +#: src/pages/stock/StockDetail.tsx:670 msgid "Count" msgstr "" -#: src/forms/StockForms.tsx:835 +#: src/forms/StockForms.tsx:953 +#: src/pages/stock/StockDetail.tsx:682 +#: src/tables/stock/StockItemTable.tsx:454 msgid "Add Stock" msgstr "" -#: src/forms/StockForms.tsx:844 +#: src/forms/StockForms.tsx:962 +#: src/pages/stock/StockDetail.tsx:691 +#: src/tables/stock/StockItemTable.tsx:463 msgid "Remove Stock" msgstr "" -#: src/forms/StockForms.tsx:853 -#: src/pages/part/PartDetail.tsx:1017 +#: src/forms/StockForms.tsx:971 +#: src/pages/part/PartDetail.tsx:1039 +#: src/pages/stock/StockDetail.tsx:712 +#: src/tables/stock/StockItemTable.tsx:483 msgid "Transfer Stock" msgstr "" -#: src/forms/StockForms.tsx:862 -#: src/pages/part/PartDetail.tsx:1006 +#: src/forms/StockForms.tsx:980 +#: src/pages/part/PartDetail.tsx:1028 +#: src/pages/stock/LocationDetail.tsx:314 +#: src/pages/stock/LocationDetail.tsx:318 +#: src/tables/stock/StockItemTable.tsx:472 +#: src/tables/stock/StockItemTable.tsx:476 msgid "Count Stock" msgstr "" -#: src/forms/StockForms.tsx:871 +#: src/forms/StockForms.tsx:989 msgid "Change Stock Status" msgstr "" -#: src/forms/StockForms.tsx:880 +#: src/forms/StockForms.tsx:998 msgid "Merge Stock" msgstr "" -#: src/forms/StockForms.tsx:899 +#: src/forms/StockForms.tsx:1017 +#: src/tables/stock/StockItemTable.tsx:530 msgid "Delete Stock Items" msgstr "" -#: src/forms/StockForms.tsx:906 +#: src/forms/StockForms.tsx:1024 msgid "Parent stock location" msgstr "" @@ -3042,11 +3664,11 @@ msgstr "" #~ msgid "You have been logged out" #~ msgstr "You have been logged out" -#: src/functions/auth.tsx:117 +#: src/functions/auth.tsx:128 msgid "Logged Out" msgstr "" -#: src/functions/auth.tsx:118 +#: src/functions/auth.tsx:129 msgid "Successfully logged out" msgstr "" @@ -3062,20 +3684,20 @@ msgstr "" #~ msgid "Found an existing login - welcome back!" #~ msgstr "Found an existing login - welcome back!" -#: src/functions/auth.tsx:156 +#: src/functions/auth.tsx:167 msgid "Check your inbox for a reset link. This only works if you have an account. Check in spam too." msgstr "" -#: src/functions/auth.tsx:163 +#: src/functions/auth.tsx:174 #: src/pages/Auth/Set-Password.tsx:39 msgid "Reset failed" msgstr "" -#: src/functions/auth.tsx:194 +#: src/functions/auth.tsx:205 msgid "Logged In" msgstr "" -#: src/functions/auth.tsx:195 +#: src/functions/auth.tsx:206 msgid "Successfully logged in" msgstr "" @@ -3095,30 +3717,38 @@ msgstr "" #~ msgid "method parameter not supplied" #~ msgstr "method parameter not supplied" -#: src/functions/notifications.tsx:10 +#: src/functions/notifications.tsx:12 msgid "Not implemented" msgstr "" -#: src/functions/notifications.tsx:11 +#: src/functions/notifications.tsx:13 msgid "This feature is not yet implemented" msgstr "" -#: src/functions/notifications.tsx:21 -msgid "Permission denied" -msgstr "" +#: src/functions/notifications.tsx:24 +#~ msgid "Permission denied" +#~ msgstr "Permission denied" -#: src/functions/notifications.tsx:22 +#: src/functions/notifications.tsx:25 msgid "You do not have permission to perform this action" msgstr "" -#: src/functions/notifications.tsx:33 +#: src/functions/notifications.tsx:36 msgid "Invalid Return Code" msgstr "" -#: src/functions/notifications.tsx:34 +#: src/functions/notifications.tsx:37 msgid "Server returned status {returnCode}" msgstr "" +#: src/functions/notifications.tsx:47 +msgid "Timeout" +msgstr "" + +#: src/functions/notifications.tsx:48 +msgid "The request timed out" +msgstr "" + #: src/hooks/UseForm.tsx:88 msgid "Item Created" msgstr "" @@ -3135,20 +3765,24 @@ msgstr "" msgid "Are you sure you want to delete this item?" msgstr "" +#: src/hooks/UsePlaceholder.tsx:59 +msgid "Latest serial number" +msgstr "" + #: src/pages/Auth/Logged-In.tsx:22 msgid "Checking if you are already logged in" msgstr "" -#: src/pages/Auth/Login.tsx:31 -#: src/pages/Index/Scan.tsx:329 +#: src/pages/Auth/Login.tsx:35 +#: src/pages/Index/Scan.tsx:343 msgid "No selection" msgstr "" -#: src/pages/Auth/Login.tsx:87 +#: src/pages/Auth/Login.tsx:91 msgid "Welcome, log in below" msgstr "" -#: src/pages/Auth/Login.tsx:89 +#: src/pages/Auth/Login.tsx:93 msgid "Register below" msgstr "" @@ -3162,8 +3796,8 @@ msgstr "" #: src/pages/Auth/Reset.tsx:41 #: src/pages/Auth/Set-Password.tsx:112 -msgid "Send mail" -msgstr "" +#~ msgid "Send mail" +#~ msgstr "Send mail" #: src/pages/Auth/Set-Password.tsx:30 msgid "Token invalid" @@ -3174,22 +3808,22 @@ msgid "You need to provide a valid token to set a new password. Check your inbox msgstr "" #: src/pages/Auth/Set-Password.tsx:49 -msgid "No token provided" -msgstr "" +#~ msgid "No token provided" +#~ msgstr "No token provided" #: src/pages/Auth/Set-Password.tsx:50 -msgid "You need to provide a token to set a new password. Check your inbox for a reset link." -msgstr "" +#~ msgid "You need to provide a token to set a new password. Check your inbox for a reset link." +#~ msgstr "You need to provide a token to set a new password. Check your inbox for a reset link." -#: src/pages/Auth/Set-Password.tsx:73 +#: src/pages/Auth/Set-Password.tsx:68 msgid "Password set" msgstr "" -#: src/pages/Auth/Set-Password.tsx:74 +#: src/pages/Auth/Set-Password.tsx:69 msgid "The password was set successfully. You can now login with your new password" msgstr "" -#: src/pages/Auth/Set-Password.tsx:101 +#: src/pages/Auth/Set-Password.tsx:96 msgid "Set new password" msgstr "" @@ -3206,20 +3840,20 @@ msgstr "" #~ msgstr "Sorry, an unexpected error has occurred." #: src/pages/Index/Dashboard.tsx:22 -msgid "Autoupdate" -msgstr "" +#~ msgid "Autoupdate" +#~ msgstr "Autoupdate" #: src/pages/Index/Dashboard.tsx:26 -msgid "This page is a replacement for the old start page with the same information. This page will be deprecated and replaced by the home page." -msgstr "" +#~ msgid "This page is a replacement for the old start page with the same information. This page will be deprecated and replaced by the home page." +#~ msgstr "This page is a replacement for the old start page with the same information. This page will be deprecated and replaced by the home page." #: src/pages/Index/Home.tsx:58 -msgid "Welcome to your Dashboard{0}" -msgstr "" +#~ msgid "Welcome to your Dashboard{0}" +#~ msgstr "Welcome to your Dashboard{0}" #: src/pages/Index/Playground.tsx:222 -msgid "This page is a showcase for the possibilities of Platform UI." -msgstr "" +#~ msgid "This page is a showcase for the possibilities of Platform UI." +#~ msgstr "This page is a showcase for the possibilities of Platform UI." #: src/pages/Index/Profile/Profile.tsx:30 #: src/pages/Index/Profile/Profile.tsx:141 @@ -3365,125 +3999,190 @@ msgstr "" msgid "Image Barcode" msgstr "" -#: src/pages/Index/Scan.tsx:247 +#: src/pages/Index/Scan.tsx:261 msgid "Selected elements are not known" msgstr "" -#: src/pages/Index/Scan.tsx:254 +#: src/pages/Index/Scan.tsx:268 msgid "Multiple object types selected" msgstr "" -#: src/pages/Index/Scan.tsx:261 +#: src/pages/Index/Scan.tsx:275 msgid "Actions for {0}" msgstr "" -#: src/pages/Index/Scan.tsx:282 +#: src/pages/Index/Scan.tsx:296 msgid "Scan Page" msgstr "" -#: src/pages/Index/Scan.tsx:285 +#: src/pages/Index/Scan.tsx:299 msgid "This page can be used for continuously scanning items and taking actions on them." msgstr "" -#: src/pages/Index/Scan.tsx:292 +#: src/pages/Index/Scan.tsx:306 msgid "Toggle Fullscreen" msgstr "" -#: src/pages/Index/Scan.tsx:305 +#: src/pages/Index/Scan.tsx:319 msgid "Select the input method you want to use to scan items." msgstr "" -#: src/pages/Index/Scan.tsx:307 +#: src/pages/Index/Scan.tsx:321 msgid "Input" msgstr "" -#: src/pages/Index/Scan.tsx:314 +#: src/pages/Index/Scan.tsx:328 msgid "Select input method" msgstr "" -#: src/pages/Index/Scan.tsx:315 +#: src/pages/Index/Scan.tsx:329 msgid "Nothing found" msgstr "" -#: src/pages/Index/Scan.tsx:323 +#: src/pages/Index/Scan.tsx:337 msgid "Depending on the selected parts actions will be shown here. Not all barcode types are supported currently." msgstr "" -#: src/pages/Index/Scan.tsx:325 +#: src/pages/Index/Scan.tsx:339 msgid "Action" msgstr "" -#: src/pages/Index/Scan.tsx:334 +#: src/pages/Index/Scan.tsx:348 msgid "{0} items selected" msgstr "" -#: src/pages/Index/Scan.tsx:337 +#: src/pages/Index/Scan.tsx:351 msgid "General Actions" msgstr "" -#: src/pages/Index/Scan.tsx:351 +#: src/pages/Index/Scan.tsx:365 msgid "Lookup part" msgstr "" -#: src/pages/Index/Scan.tsx:359 +#: src/pages/Index/Scan.tsx:373 msgid "Open Link" msgstr "" -#: src/pages/Index/Scan.tsx:375 +#: src/pages/Index/Scan.tsx:389 msgid "History is locally kept in this browser." msgstr "" -#: src/pages/Index/Scan.tsx:376 +#: src/pages/Index/Scan.tsx:390 msgid "The history is kept in this browser's local storage. So it won't be shared with other users or other devices but is persistent through reloads. You can select items in the history to perform actions on them. To add items, scan/enter them in the Input area." msgstr "" -#: src/pages/Index/Scan.tsx:378 +#: src/pages/Index/Scan.tsx:392 #: src/pages/Notifications.tsx:100 msgid "History" msgstr "" -#: src/pages/Index/Scan.tsx:384 +#: src/pages/Index/Scan.tsx:398 msgid "Delete History" msgstr "" -#: src/pages/Index/Scan.tsx:449 +#: src/pages/Index/Scan.tsx:463 msgid "No history" msgstr "" -#: src/pages/Index/Scan.tsx:467 +#: src/pages/Index/Scan.tsx:481 msgid "Item" msgstr "" -#: src/pages/Index/Scan.tsx:470 +#: src/pages/Index/Scan.tsx:484 msgid "Type" msgstr "" -#: src/pages/Index/Scan.tsx:473 +#: src/pages/Index/Scan.tsx:487 msgid "Source" msgstr "" -#: src/pages/Index/Scan.tsx:476 +#: src/pages/Index/Scan.tsx:490 msgid "Scanned at" msgstr "" -#: src/pages/Index/Scan.tsx:528 +#: src/pages/Index/Scan.tsx:547 msgid "Enter item serial or data" msgstr "" -#: src/pages/Index/Scan.tsx:540 +#: src/pages/Index/Scan.tsx:559 msgid "Add dummy item" msgstr "" +#: src/pages/Index/Scan.tsx:569 +msgid "Start scanning by selecting a camera and pressing the play button." +msgstr "" + +#: src/pages/Index/Scan.tsx:650 +msgid "Error while getting camera" +msgstr "שגיאה בעת קבלת המצלמה" + +#: src/pages/Index/Scan.tsx:673 +msgid "Error while scanning" +msgstr "שגיאה בעת סריקה" + +#: src/pages/Index/Scan.tsx:687 +msgid "Error while stopping" +msgstr "שגיאה בעת עצירה" + +#: src/pages/Index/Scan.tsx:745 +msgid "Stop scanning" +msgstr "הפסק לסרוק" + +#: src/pages/Index/Scan.tsx:754 +msgid "Start scanning" +msgstr "התחל לסרוק" + +#: src/pages/Index/Scan.tsx:763 +msgid "Scanning" +msgstr "סורק" + +#: src/pages/Index/Scan.tsx:763 +msgid "Not scanning" +msgstr "לא סורק" + +#: src/pages/Index/Scan.tsx:775 +msgid "Select Camera" +msgstr "בחר מצלמה" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:28 +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:50 +msgid "Edit User Information" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:32 +msgid "User details updated" +msgstr "" + #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:41 -msgid "Account Details" +msgid "User Details" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:41 +#~ msgid "Account Details" +#~ msgstr "Account Details" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:44 +msgid "User Actions" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:48 +msgid "Edit User" msgstr "" #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:50 -msgid "First name" +#~ msgid "First name" +#~ msgstr "First name" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:54 +msgid "Set Password" msgstr "" #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:55 -msgid "Last name" +#~ msgid "Last name" +#~ msgstr "Last name" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:56 +msgid "Set User Password" msgstr "" #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:58 @@ -3495,15 +4194,28 @@ msgstr "" #~ msgstr "Last name: {0}" #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:67 -msgid "First name:" -msgstr "" +#~ msgid "First name:" +#~ msgstr "First name:" #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:71 -msgid "Last name:" +#~ msgid "Last name:" +#~ msgstr "Last name:" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:73 +msgid "First Name" msgstr "" -#: src/pages/Index/Settings/AccountSettings/DisplaySettingsPanel.tsx:41 -msgid "Use pseudo language" +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:79 +msgid "Last Name" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:85 +msgid "Staff Access" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:93 +#: src/tables/settings/UserTable.tsx:293 +msgid "Superuser" msgstr "" #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:55 @@ -3600,27 +4312,6 @@ msgstr "" msgid "No tokens configured" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:398 -#: src/pages/part/PartDetail.tsx:297 -#: src/tables/bom/UsedInTable.tsx:84 -#: src/tables/build/BuildOrderTable.tsx:110 -#: src/tables/company/CompanyTable.tsx:61 -#: src/tables/company/CompanyTable.tsx:95 -#: src/tables/machine/MachineListTable.tsx:332 -#: src/tables/machine/MachineListTable.tsx:594 -#: src/tables/part/ParametricPartTable.tsx:223 -#: src/tables/part/PartTable.tsx:178 -#: src/tables/part/PartVariantTable.tsx:15 -#: src/tables/plugin/PluginListTable.tsx:149 -#: src/tables/plugin/PluginListTable.tsx:271 -#: src/tables/plugin/PluginListTable.tsx:563 -#: src/tables/purchasing/SupplierPartTable.tsx:98 -#: src/tables/purchasing/SupplierPartTable.tsx:187 -#: src/tables/settings/UserTable.tsx:284 -#: src/tables/stock/StockItemTable.tsx:289 -msgid "Active" -msgstr "" - #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:401 msgid "Expiry" msgstr "" @@ -3630,38 +4321,74 @@ msgid "Last Seen" msgstr "" #: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:65 -msgid "bars" -msgstr "" +#~ msgid "bars" +#~ msgstr "bars" #: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:66 -msgid "oval" -msgstr "" +#~ msgid "oval" +#~ msgstr "oval" #: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:67 -msgid "dots" -msgstr "" +#~ msgid "dots" +#~ msgstr "dots" #: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:81 -msgid "Theme" -msgstr "" +#~ msgid "Theme" +#~ msgstr "Theme" #: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:87 -msgid "Primary color" +#~ msgid "Primary color" +#~ msgstr "Primary color" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:88 +msgid "Bars" msgstr "" -#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:100 +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:89 +msgid "Oval" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:90 +msgid "Dots" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:101 +msgid "Display Settings" +msgstr "הגדרות תצוגה" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:107 +msgid "Language" +msgstr "שפה" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:115 +msgid "Use pseudo language" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:122 +msgid "Color Mode" +msgstr "מצב צבע" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:133 +msgid "Highlight color" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:145 +msgid "Example" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:151 msgid "White color" msgstr "" -#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:108 +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:167 msgid "Black color" msgstr "" -#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:116 +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:183 msgid "Border Radius" msgstr "" -#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:132 +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:199 msgid "Loader" msgstr "" @@ -3673,89 +4400,156 @@ msgstr "" #~ msgid "Advanced Amininistrative Options for InvenTree" #~ msgstr "Advanced Amininistrative Options for InvenTree" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:104 +#: src/pages/Index/Settings/AdminCenter/CurrencyManagmentPanel.tsx:27 +#: src/tables/ColumnRenderers.tsx:262 +msgid "Currency" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/CurrencyManagmentPanel.tsx:32 +msgid "Rate" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/CurrencyManagmentPanel.tsx:44 +msgid "Exchange rates updated" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/CurrencyManagmentPanel.tsx:50 +msgid "Exchange rate update error" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/CurrencyManagmentPanel.tsx:62 +msgid "Refresh currency exchange rates" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/CurrencyManagmentPanel.tsx:99 +msgid "Last fetched" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/CurrencyManagmentPanel.tsx:100 +msgid "Base currency" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:115 msgid "Data Import" msgstr "" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:110 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:121 +msgid "Barcode Scans" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:127 msgid "Background Tasks" msgstr "" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:116 -msgid "Error Reports" -msgstr "" - -#: src/pages/Index/Settings/AdminCenter/Index.tsx:122 -msgid "Currencies" -msgstr "" - #: src/pages/Index/Settings/AdminCenter/Index.tsx:127 #~ msgid "Templates" #~ msgstr "Templates" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:140 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:133 +msgid "Error Reports" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:139 +msgid "Currencies" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:157 +msgid "Custom States" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:163 +#: src/pages/Index/Settings/AdminCenter/UnitManagmentPanel.tsx:58 msgid "Custom Units" msgstr "" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:146 -#: src/pages/part/CategoryDetail.tsx:264 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:169 +#: src/pages/part/CategoryDetail.tsx:269 msgid "Part Parameters" msgstr "" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:152 -msgid "Category Parameters" -msgstr "" - -#: src/pages/Index/Settings/AdminCenter/Index.tsx:170 -msgid "Location Types" -msgstr "" - #: src/pages/Index/Settings/AdminCenter/Index.tsx:170 #~ msgid "Location types" #~ msgstr "Location types" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:182 -#: src/tables/machine/MachineTypeTable.tsx:287 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:175 +msgid "Category Parameters" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:181 +msgid "Stocktake" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:199 +msgid "Location Types" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:211 +#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:48 +#: src/tables/machine/MachineTypeTable.tsx:308 msgid "Machines" msgstr "" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:192 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:221 msgid "Quick Actions" msgstr "" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:197 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:226 msgid "Add a new user" msgstr "" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:222 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:252 msgid "Advanced Options" msgstr "" #: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:43 -msgid "Machine types" -msgstr "" +#~ msgid "Machine types" +#~ msgstr "Machine types" #: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:53 -msgid "Machine Error Stack" +#~ msgid "Machine Error Stack" +#~ msgstr "Machine Error Stack" + +#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:56 +msgid "Machine Types" msgstr "" #: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:62 -msgid "There are no machine registry errors." +#~ msgid "There are no machine registry errors." +#~ msgstr "There are no machine registry errors." + +#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:64 +msgid "Machine Errors" msgstr "" -#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:28 -#: src/tables/settings/UserTable.tsx:119 +#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:77 +msgid "Registry Registry Errors" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:80 +msgid "There are machine registry errors" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:86 +msgid "Machine Registry Errors" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:89 +msgid "There are no machine registry errors" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:31 +#: src/tables/settings/UserTable.tsx:118 msgid "Info" msgstr "" -#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:32 -msgid "External plugins are not enabled for this InvenTree installation." -msgstr "" - #: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:33 #~ msgid "Plugin Error Stack" #~ msgstr "Plugin Error Stack" +#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:35 +msgid "External plugins are not enabled for this InvenTree installation." +msgstr "" + #: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:45 #~ msgid "Warning" #~ msgstr "Warning" @@ -3764,34 +4558,46 @@ msgstr "" #~ msgid "Changing the settings below require you to immediately restart the server. Do not change this while under active usage." #~ msgstr "Changing the settings below require you to immediately restart the server. Do not change this while under active usage." -#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:50 +#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:73 msgid "Plugin Errors" msgstr "" -#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:59 -msgid "Plugin Settings" +#: src/pages/Index/Settings/AdminCenter/ReportTemplatePanel.tsx:17 +msgid "Page Size" msgstr "" -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:53 -msgid "Background Worker Not Running" +#: src/pages/Index/Settings/AdminCenter/ReportTemplatePanel.tsx:20 +msgid "Landscape" msgstr "" -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:54 +#: src/pages/Index/Settings/AdminCenter/ReportTemplatePanel.tsx:26 +msgid "Attach to Model" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/StocktakePanel.tsx:25 +msgid "Stocktake Reports" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:30 msgid "The background task manager service is not running. Contact your system administrator." msgstr "" -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:60 -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:76 +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:35 +#~ msgid "Background Worker Not Running" +#~ msgstr "Background Worker Not Running" + +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:36 +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:45 msgid "Pending Tasks" msgstr "" -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:64 -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:84 +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:37 +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:53 msgid "Scheduled Tasks" msgstr "" -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:68 -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:92 +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:38 +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:61 msgid "Failed Tasks" msgstr "" @@ -3811,11 +4617,6 @@ msgstr "" #~ msgid "Reports" #~ msgstr "Reports" -#: src/pages/Index/Settings/AdminCenter/TemplateManagementPanel.tsx:89 -#: src/pages/build/BuildDetail.tsx:373 -#~ msgid "Report" -#~ msgstr "Report" - #: src/pages/Index/Settings/AdminCenter/TemplateManagementPanel.tsx:99 #~ msgid "Purchase order" #~ msgstr "Purchase order" @@ -3836,23 +4637,35 @@ msgstr "" #~ msgid "Stock location" #~ msgstr "Stock location" +#: src/pages/Index/Settings/AdminCenter/UnitManagmentPanel.tsx:21 +msgid "Alias" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/UnitManagmentPanel.tsx:22 +msgid "Dimensionless" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/UnitManagmentPanel.tsx:66 +msgid "All units" +msgstr "" + #: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:32 msgid "Select settings relevant for user lifecycle. More available in" msgstr "" #: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:37 -msgid "System settings" -msgstr "" +#~ msgid "System settings" +#~ msgstr "System settings" -#: src/pages/Index/Settings/SystemSettings.tsx:67 +#: src/pages/Index/Settings/SystemSettings.tsx:66 msgid "Login" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:93 +#: src/pages/Index/Settings/SystemSettings.tsx:92 msgid "Barcodes" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:115 +#: src/pages/Index/Settings/SystemSettings.tsx:116 msgid "Pricing" msgstr "" @@ -3864,64 +4677,46 @@ msgstr "" #~ msgid "Exchange Rates" #~ msgstr "Exchange Rates" -#: src/pages/Index/Settings/SystemSettings.tsx:150 +#: src/pages/Index/Settings/SystemSettings.tsx:151 msgid "Labels" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:156 -#: src/pages/Index/Settings/UserSettings.tsx:132 +#: src/pages/Index/Settings/SystemSettings.tsx:157 +#: src/pages/Index/Settings/UserSettings.tsx:133 msgid "Reporting" msgstr "" #: src/pages/Index/Settings/SystemSettings.tsx:231 -#: src/pages/part/PartDetail.tsx:682 -msgid "Stocktake" -msgstr "" - -#: src/pages/Index/Settings/SystemSettings.tsx:237 -#: src/pages/build/BuildDetail.tsx:554 -#: src/pages/build/BuildIndex.tsx:22 -#: src/pages/part/PartDetail.tsx:616 -#: src/pages/sales/SalesOrderDetail.tsx:333 +#: src/pages/build/BuildIndex.tsx:27 +#: src/pages/part/PartDetail.tsx:636 +#: src/pages/sales/SalesOrderDetail.tsx:355 msgid "Build Orders" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:318 -msgid "Switch to User Setting" -msgstr "" +#: src/pages/Index/Settings/SystemSettings.tsx:317 +#~ msgid "Switch to User Setting" +#~ msgstr "Switch to User Setting" -#: src/pages/Index/Settings/UserSettings.tsx:34 +#: src/pages/Index/Settings/UserSettings.tsx:35 msgid "Account" msgstr "" -#: src/pages/Index/Settings/UserSettings.tsx:40 +#: src/pages/Index/Settings/UserSettings.tsx:41 msgid "Security" msgstr "" -#: src/pages/Index/Settings/UserSettings.tsx:78 +#: src/pages/Index/Settings/UserSettings.tsx:79 msgid "Display Options" msgstr "" -#: src/pages/Index/Settings/UserSettings.tsx:150 -msgid "Account Settings" -msgstr "" - -#: src/pages/Index/Settings/UserSettings.tsx:158 -msgid "Switch to System Setting" -msgstr "" - -#: src/pages/Index/UserSettings.tsx:103 -#~ msgid "User Settings" -#~ msgstr "User Settings" +#: src/pages/Index/Settings/UserSettings.tsx:159 +#~ msgid "Switch to System Setting" +#~ msgstr "Switch to System Setting" #: src/pages/Logged-In.tsx:24 #~ msgid "Found an exsisting login - using it to log you in." #~ msgstr "Found an exsisting login - using it to log you in." -#: src/pages/NotFound.tsx:17 -#~ msgid "Not Found" -#~ msgstr "Not Found" - #: src/pages/NotFound.tsx:20 #~ msgid "Sorry, this page is not known or was moved." #~ msgstr "Sorry, this page is not known or was moved." @@ -3942,104 +4737,86 @@ msgstr "" #~ msgid "Build Status" #~ msgstr "Build Status" -#: src/pages/build/BuildDetail.tsx:102 -#: src/pages/part/PartDetail.tsx:150 +#: src/pages/build/BuildDetail.tsx:97 +#: src/pages/company/ManufacturerPartDetail.tsx:81 +#: src/pages/company/SupplierPartDetail.tsx:91 +#: src/pages/part/PartDetail.tsx:171 +#: src/pages/stock/StockDetail.tsx:122 #: src/tables/bom/BomTable.tsx:118 #: src/tables/bom/UsedInTable.tsx:39 -#: src/tables/build/BuildLineTable.tsx:173 -#: src/tables/build/BuildOrderTable.tsx:55 -#: src/tables/sales/SalesOrderLineItemTable.tsx:62 -#: src/tables/stock/StockItemTable.tsx:53 +#: src/tables/build/BuildAllocatedStockTable.tsx:104 +#: src/tables/build/BuildLineTable.tsx:324 +#: src/tables/build/BuildOrderTable.tsx:64 +#: src/tables/sales/SalesOrderLineItemTable.tsx:70 +#: src/tables/stock/StockItemTable.tsx:54 msgid "IPN" msgstr "" -#: src/pages/build/BuildDetail.tsx:115 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:121 -#: src/pages/sales/ReturnOrderDetail.tsx:95 -#: src/pages/sales/SalesOrderDetail.tsx:101 -#: src/tables/ColumnRenderers.tsx:121 -#: src/tables/build/BuildAllocatedStockTable.tsx:90 -#: src/tables/build/BuildLineTable.tsx:184 +#: src/pages/build/BuildDetail.tsx:110 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:115 +#: src/pages/sales/ReturnOrderDetail.tsx:86 +#: src/pages/sales/SalesOrderDetail.tsx:95 +#: src/tables/ColumnRenderers.tsx:132 +#: src/tables/build/BuildAllocatedStockTable.tsx:111 +#: src/tables/build/BuildLineTable.tsx:335 msgid "Reference" msgstr "" -#: src/pages/build/BuildDetail.tsx:121 -#: src/pages/company/CompanyDetail.tsx:90 -#: src/pages/company/ManufacturerPartDetail.tsx:83 -#: src/pages/company/SupplierPartDetail.tsx:96 -#: src/pages/part/CategoryDetail.tsx:101 -#: src/pages/part/PartDetail.tsx:157 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:142 -#: src/pages/sales/ReturnOrderDetail.tsx:115 -#: src/pages/sales/SalesOrderDetail.tsx:121 -#: src/pages/stock/LocationDetail.tsx:109 -#: src/tables/ColumnRenderers.tsx:81 -#: src/tables/bom/UsedInTable.tsx:44 -#: src/tables/build/BuildAllocatedStockTable.tsx:70 -#: src/tables/build/BuildLineTable.tsx:178 -#: src/tables/machine/MachineTypeTable.tsx:69 -#: src/tables/machine/MachineTypeTable.tsx:112 -#: src/tables/machine/MachineTypeTable.tsx:219 -#: src/tables/machine/MachineTypeTable.tsx:323 -#: src/tables/part/RelatedPartTable.tsx:64 -#: src/tables/plugin/PluginListTable.tsx:129 -#: src/tables/plugin/PluginListTable.tsx:276 -#: src/tables/sales/SalesOrderAllocationTable.tsx:56 -#: src/tables/sales/SalesOrderLineItemTable.tsx:67 -#: src/tables/stock/LocationTypesTable.tsx:74 -msgid "Description" -msgstr "" - -#: src/pages/build/BuildDetail.tsx:129 +#: src/pages/build/BuildDetail.tsx:124 msgid "Parent Build" msgstr "" -#: src/pages/build/BuildDetail.tsx:140 +#: src/pages/build/BuildDetail.tsx:135 msgid "Build Quantity" msgstr "" -#: src/pages/build/BuildDetail.tsx:148 -#: src/pages/build/BuildDetail.tsx:274 +#: src/pages/build/BuildDetail.tsx:143 +#: src/pages/build/BuildDetail.tsx:277 msgid "Completed Outputs" msgstr "" -#: src/pages/build/BuildDetail.tsx:165 -#: src/tables/build/BuildOrderTable.tsx:151 +#: src/pages/build/BuildDetail.tsx:160 +#: src/tables/build/BuildOrderTable.tsx:142 msgid "Issued By" msgstr "" -#: src/pages/build/BuildDetail.tsx:172 -#: src/pages/part/PartDetail.tsx:365 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:220 -#: src/pages/sales/ReturnOrderDetail.tsx:199 -#: src/pages/sales/SalesOrderDetail.tsx:208 -#: src/tables/build/BuildOrderTable.tsx:157 -#: src/tables/purchasing/PurchaseOrderTable.tsx:75 -#: src/tables/sales/ReturnOrderTable.tsx:66 -#: src/tables/sales/SalesOrderTable.tsx:73 +#: src/pages/build/BuildDetail.tsx:167 +#: src/pages/part/PartDetail.tsx:406 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:244 +#: src/pages/sales/ReturnOrderDetail.tsx:216 +#: src/pages/sales/SalesOrderDetail.tsx:226 +#: src/tables/build/BuildOrderTable.tsx:148 +#: src/tables/purchasing/PurchaseOrderTable.tsx:76 +#: src/tables/sales/ReturnOrderTable.tsx:74 +#: src/tables/sales/SalesOrderTable.tsx:74 msgid "Responsible" msgstr "" -#: src/pages/build/BuildDetail.tsx:179 -#: src/tables/settings/PendingTasksTable.tsx:32 +#: src/pages/build/BuildDetail.tsx:174 +#: src/tables/settings/PendingTasksTable.tsx:36 msgid "Created" msgstr "" +#: src/pages/build/BuildDetail.tsx:181 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:229 +#: src/pages/sales/ReturnOrderDetail.tsx:201 +#: src/pages/sales/SalesOrderDetail.tsx:212 +#: src/tables/ColumnRenderers.tsx:226 +#: src/tables/part/PartPurchaseOrdersTable.tsx:100 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:135 +#: src/tables/sales/SalesOrderLineItemTable.tsx:107 +msgid "Target Date" +msgstr "" + #: src/pages/build/BuildDetail.tsx:185 #: src/pages/part/PartDetail.tsx:269 #: src/pages/stock/StockDetail.tsx:150 #~ msgid "View part barcode" #~ msgstr "View part barcode" -#: src/pages/build/BuildDetail.tsx:186 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:213 -#: src/pages/sales/ReturnOrderDetail.tsx:192 -#: src/pages/sales/SalesOrderDetail.tsx:201 -#: src/tables/ColumnRenderers.tsx:212 -#: src/tables/part/PartPurchaseOrdersTable.tsx:99 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:110 -#: src/tables/sales/SalesOrderLineItemTable.tsx:99 -msgid "Target Date" +#: src/pages/build/BuildDetail.tsx:188 +#: src/tables/sales/SalesOrderLineItemTable.tsx:281 +msgid "Completed" msgstr "" #: src/pages/build/BuildDetail.tsx:190 @@ -4047,10 +4824,6 @@ msgstr "" #~ msgid "Link custom barcode to part" #~ msgstr "Link custom barcode to part" -#: src/pages/build/BuildDetail.tsx:193 -msgid "Completed" -msgstr "" - #: src/pages/build/BuildDetail.tsx:196 #: src/pages/part/PartDetail.tsx:280 #~ msgid "Unlink custom barcode from part" @@ -4060,15 +4833,11 @@ msgstr "" #~ msgid "Build Order updated" #~ msgstr "Build Order updated" -#: src/pages/build/BuildDetail.tsx:205 -msgid "Source Location" -msgstr "" - -#: src/pages/build/BuildDetail.tsx:206 +#: src/pages/build/BuildDetail.tsx:209 msgid "Any location" msgstr "" -#: src/pages/build/BuildDetail.tsx:213 +#: src/pages/build/BuildDetail.tsx:216 msgid "Destination Location" msgstr "" @@ -4084,206 +4853,182 @@ msgstr "" #~ msgid "Delete build order" #~ msgstr "Delete build order" -#: src/pages/build/BuildDetail.tsx:251 +#: src/pages/build/BuildDetail.tsx:254 msgid "Build Details" msgstr "" -#: src/pages/build/BuildDetail.tsx:257 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:258 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:267 -#: src/pages/sales/ReturnOrderDetail.tsx:130 -#: src/pages/sales/ReturnOrderDetail.tsx:237 -#: src/pages/sales/ReturnOrderDetail.tsx:246 -#: src/pages/sales/SalesOrderDetail.tsx:272 -#: src/pages/sales/SalesOrderDetail.tsx:281 +#: src/pages/build/BuildDetail.tsx:260 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:282 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:291 +#: src/pages/sales/ReturnOrderDetail.tsx:122 +#: src/pages/sales/ReturnOrderDetail.tsx:254 +#: src/pages/sales/ReturnOrderDetail.tsx:263 +#: src/pages/sales/SalesOrderDetail.tsx:294 +#: src/pages/sales/SalesOrderDetail.tsx:303 msgid "Line Items" msgstr "" -#: src/pages/build/BuildDetail.tsx:267 +#: src/pages/build/BuildDetail.tsx:266 msgid "Incomplete Outputs" msgstr "" -#: src/pages/build/BuildDetail.tsx:289 -#: src/pages/sales/SalesOrderDetail.tsx:319 +#: src/pages/build/BuildDetail.tsx:292 +#: src/pages/sales/SalesOrderDetail.tsx:341 msgid "Allocated Stock" msgstr "" -#: src/pages/build/BuildDetail.tsx:299 +#: src/pages/build/BuildDetail.tsx:302 msgid "Consumed Stock" msgstr "" -#: src/pages/build/BuildDetail.tsx:313 +#: src/pages/build/BuildDetail.tsx:316 msgid "Child Build Orders" msgstr "" #: src/pages/build/BuildDetail.tsx:326 -#: src/tables/build/BuildOutputTable.tsx:384 -#: src/tables/stock/StockItemTestResultTable.tsx:150 +#: src/tables/build/BuildOutputTable.tsx:532 +#: src/tables/stock/StockItemTestResultTable.tsx:156 msgid "Test Results" msgstr "" #: src/pages/build/BuildDetail.tsx:337 -#: src/pages/part/PartDetail.tsx:699 +#: src/pages/part/PartDetail.tsx:740 msgid "Test Statistics" msgstr "" -#: src/pages/build/BuildDetail.tsx:351 -#: src/pages/company/CompanyDetail.tsx:259 -#: src/pages/company/ManufacturerPartDetail.tsx:179 -#: src/pages/part/PartDetail.tsx:721 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:309 -#: src/pages/sales/ReturnOrderDetail.tsx:274 -#: src/pages/sales/SalesOrderDetail.tsx:343 -#: src/pages/stock/StockDetail.tsx:385 -msgid "Attachments" -msgstr "" - -#: src/pages/build/BuildDetail.tsx:359 -#: src/pages/company/CompanyDetail.tsx:270 -#: src/pages/company/ManufacturerPartDetail.tsx:190 -#: src/pages/company/SupplierPartDetail.tsx:257 -#: src/pages/part/PartDetail.tsx:729 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:320 -#: src/pages/sales/ReturnOrderDetail.tsx:285 -#: src/pages/sales/SalesOrderDetail.tsx:354 -#: src/pages/stock/StockDetail.tsx:396 -#: src/tables/build/BuildOrderTestTable.tsx:142 -#: src/tables/stock/StockTrackingTable.tsx:189 -msgid "Notes" +#: src/pages/build/BuildDetail.tsx:365 +msgid "Edit Build Order" msgstr "" #: src/pages/build/BuildDetail.tsx:368 #~ msgid "Reporting Actions" #~ msgstr "Reporting Actions" +#: src/pages/build/BuildDetail.tsx:372 +#: src/tables/build/BuildOrderTable.tsx:173 +#: src/tables/build/BuildOrderTable.tsx:188 +msgid "Add Build Order" +msgstr "" + #: src/pages/build/BuildDetail.tsx:374 #~ msgid "Print build report" #~ msgstr "Print build report" -#: src/pages/build/BuildDetail.tsx:377 -msgid "Edit Build Order" -msgstr "" - -#: src/pages/build/BuildDetail.tsx:384 -#: src/tables/build/BuildOrderTable.tsx:172 -#: src/tables/build/BuildOrderTable.tsx:187 -msgid "Add Build Order" -msgstr "" - -#: src/pages/build/BuildDetail.tsx:398 +#: src/pages/build/BuildDetail.tsx:386 msgid "Cancel Build Order" msgstr "" -#: src/pages/build/BuildDetail.tsx:400 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:348 -#: src/pages/sales/SalesOrderDetail.tsx:380 +#: src/pages/build/BuildDetail.tsx:388 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:357 +#: src/pages/sales/ReturnOrderDetail.tsx:354 +#: src/pages/sales/SalesOrderDetail.tsx:387 msgid "Order cancelled" msgstr "" -#: src/pages/build/BuildDetail.tsx:401 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:347 -#: src/pages/sales/ReturnOrderDetail.tsx:346 -#: src/pages/sales/SalesOrderDetail.tsx:379 +#: src/pages/build/BuildDetail.tsx:389 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:356 +#: src/pages/sales/ReturnOrderDetail.tsx:353 +#: src/pages/sales/SalesOrderDetail.tsx:386 msgid "Cancel this order" msgstr "" -#: src/pages/build/BuildDetail.tsx:410 +#: src/pages/build/BuildDetail.tsx:398 msgid "Hold Build Order" msgstr "" -#: src/pages/build/BuildDetail.tsx:412 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:355 -#: src/pages/sales/ReturnOrderDetail.tsx:354 -#: src/pages/sales/SalesOrderDetail.tsx:387 +#: src/pages/build/BuildDetail.tsx:400 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:364 +#: src/pages/sales/ReturnOrderDetail.tsx:361 +#: src/pages/sales/SalesOrderDetail.tsx:394 msgid "Place this order on hold" msgstr "" -#: src/pages/build/BuildDetail.tsx:413 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:356 -#: src/pages/sales/ReturnOrderDetail.tsx:355 -#: src/pages/sales/SalesOrderDetail.tsx:388 +#: src/pages/build/BuildDetail.tsx:401 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:365 +#: src/pages/sales/ReturnOrderDetail.tsx:362 +#: src/pages/sales/SalesOrderDetail.tsx:395 msgid "Order placed on hold" msgstr "" -#: src/pages/build/BuildDetail.tsx:418 +#: src/pages/build/BuildDetail.tsx:406 msgid "Issue Build Order" msgstr "" -#: src/pages/build/BuildDetail.tsx:420 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:339 -#: src/pages/sales/ReturnOrderDetail.tsx:338 -#: src/pages/sales/SalesOrderDetail.tsx:371 +#: src/pages/build/BuildDetail.tsx:408 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:348 +#: src/pages/sales/ReturnOrderDetail.tsx:345 +#: src/pages/sales/SalesOrderDetail.tsx:378 msgid "Issue this order" msgstr "" -#: src/pages/build/BuildDetail.tsx:421 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:340 -#: src/pages/sales/ReturnOrderDetail.tsx:339 -#: src/pages/sales/SalesOrderDetail.tsx:372 +#: src/pages/build/BuildDetail.tsx:409 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:349 +#: src/pages/sales/ReturnOrderDetail.tsx:346 +#: src/pages/sales/SalesOrderDetail.tsx:379 msgid "Order issued" msgstr "" -#: src/pages/build/BuildDetail.tsx:426 +#: src/pages/build/BuildDetail.tsx:414 msgid "Complete Build Order" msgstr "" -#: src/pages/build/BuildDetail.tsx:428 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:368 -#: src/pages/sales/ReturnOrderDetail.tsx:362 -#: src/pages/sales/SalesOrderDetail.tsx:395 +#: src/pages/build/BuildDetail.tsx:416 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:377 +#: src/pages/sales/ReturnOrderDetail.tsx:369 +#: src/pages/sales/SalesOrderDetail.tsx:402 msgid "Mark this order as complete" msgstr "" -#: src/pages/build/BuildDetail.tsx:429 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:362 -#: src/pages/sales/ReturnOrderDetail.tsx:363 -#: src/pages/sales/SalesOrderDetail.tsx:396 +#: src/pages/build/BuildDetail.tsx:417 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:371 +#: src/pages/sales/ReturnOrderDetail.tsx:370 +#: src/pages/sales/SalesOrderDetail.tsx:403 msgid "Order completed" msgstr "" -#: src/pages/build/BuildDetail.tsx:460 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:391 -#: src/pages/sales/ReturnOrderDetail.tsx:392 -#: src/pages/sales/SalesOrderDetail.tsx:425 +#: src/pages/build/BuildDetail.tsx:448 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:400 +#: src/pages/sales/ReturnOrderDetail.tsx:399 +#: src/pages/sales/SalesOrderDetail.tsx:432 msgid "Issue Order" msgstr "" -#: src/pages/build/BuildDetail.tsx:467 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:398 -#: src/pages/sales/ReturnOrderDetail.tsx:399 -#: src/pages/sales/SalesOrderDetail.tsx:439 +#: src/pages/build/BuildDetail.tsx:455 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:407 +#: src/pages/sales/ReturnOrderDetail.tsx:406 +#: src/pages/sales/SalesOrderDetail.tsx:446 msgid "Complete Order" msgstr "" -#: src/pages/build/BuildDetail.tsx:496 +#: src/pages/build/BuildDetail.tsx:473 msgid "Build Order Actions" msgstr "" -#: src/pages/build/BuildDetail.tsx:502 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:432 -#: src/pages/sales/ReturnOrderDetail.tsx:433 -#: src/pages/sales/SalesOrderDetail.tsx:474 +#: src/pages/build/BuildDetail.tsx:478 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:429 +#: src/pages/sales/ReturnOrderDetail.tsx:428 +#: src/pages/sales/SalesOrderDetail.tsx:469 msgid "Edit order" msgstr "" -#: src/pages/build/BuildDetail.tsx:506 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:440 -#: src/pages/sales/ReturnOrderDetail.tsx:439 -#: src/pages/sales/SalesOrderDetail.tsx:479 +#: src/pages/build/BuildDetail.tsx:482 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:437 +#: src/pages/sales/ReturnOrderDetail.tsx:434 +#: src/pages/sales/SalesOrderDetail.tsx:474 msgid "Duplicate order" msgstr "" -#: src/pages/build/BuildDetail.tsx:510 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:443 -#: src/pages/sales/ReturnOrderDetail.tsx:444 -#: src/pages/sales/SalesOrderDetail.tsx:482 +#: src/pages/build/BuildDetail.tsx:486 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:440 +#: src/pages/sales/ReturnOrderDetail.tsx:439 +#: src/pages/sales/SalesOrderDetail.tsx:477 msgid "Hold order" msgstr "" -#: src/pages/build/BuildDetail.tsx:515 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:448 -#: src/pages/sales/ReturnOrderDetail.tsx:449 -#: src/pages/sales/SalesOrderDetail.tsx:487 +#: src/pages/build/BuildDetail.tsx:491 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:445 +#: src/pages/sales/ReturnOrderDetail.tsx:444 +#: src/pages/sales/SalesOrderDetail.tsx:482 msgid "Cancel order" msgstr "" @@ -4295,56 +5040,60 @@ msgstr "" #~ msgid "New Build Order" #~ msgstr "New Build Order" -#: src/pages/company/CompanyDetail.tsx:104 +#: src/pages/company/CompanyDetail.tsx:95 +msgid "Website" +msgstr "אתר אינטרנט" + +#: src/pages/company/CompanyDetail.tsx:103 msgid "Phone Number" msgstr "" -#: src/pages/company/CompanyDetail.tsx:111 +#: src/pages/company/CompanyDetail.tsx:110 msgid "Email Address" msgstr "" -#: src/pages/company/CompanyDetail.tsx:121 +#: src/pages/company/CompanyDetail.tsx:120 msgid "Default Currency" msgstr "" -#: src/pages/company/CompanyDetail.tsx:126 +#: src/pages/company/CompanyDetail.tsx:125 #: src/pages/company/SupplierDetail.tsx:8 -#: src/pages/company/SupplierPartDetail.tsx:120 -#: src/pages/company/SupplierPartDetail.tsx:206 -#: src/pages/company/SupplierPartDetail.tsx:351 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:136 -#: src/tables/company/CompanyTable.tsx:100 +#: src/pages/company/SupplierPartDetail.tsx:125 +#: src/pages/company/SupplierPartDetail.tsx:218 +#: src/pages/company/SupplierPartDetail.tsx:340 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:130 +#: src/tables/company/CompanyTable.tsx:101 #: src/tables/part/PartPurchaseOrdersTable.tsx:42 -#: src/tables/purchasing/PurchaseOrderTable.tsx:88 +#: src/tables/purchasing/PurchaseOrderTable.tsx:89 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:36 msgid "Supplier" msgstr "" -#: src/pages/company/CompanyDetail.tsx:132 +#: src/pages/company/CompanyDetail.tsx:131 #: src/pages/company/ManufacturerDetail.tsx:8 -#: src/pages/company/ManufacturerPartDetail.tsx:101 -#: src/pages/company/ManufacturerPartDetail.tsx:267 -#: src/pages/company/SupplierPartDetail.tsx:135 -#: src/tables/company/CompanyTable.tsx:105 +#: src/pages/company/ManufacturerPartDetail.tsx:100 +#: src/pages/company/ManufacturerPartDetail.tsx:262 +#: src/pages/company/SupplierPartDetail.tsx:147 +#: src/tables/company/CompanyTable.tsx:106 msgid "Manufacturer" msgstr "" -#: src/pages/company/CompanyDetail.tsx:138 +#: src/pages/company/CompanyDetail.tsx:137 #: src/pages/company/CustomerDetail.tsx:8 -#: src/pages/part/pricing/SaleHistoryPanel.tsx:29 -#: src/pages/sales/ReturnOrderDetail.tsx:109 -#: src/pages/sales/SalesOrderDetail.tsx:115 -#: src/pages/stock/StockDetail.tsx:230 -#: src/tables/company/CompanyTable.tsx:110 -#: src/tables/sales/ReturnOrderTable.tsx:78 -#: src/tables/sales/SalesOrderTable.tsx:108 -#: src/tables/stock/StockTrackingTable.tsx:140 +#: src/pages/part/pricing/SaleHistoryPanel.tsx:31 +#: src/pages/sales/ReturnOrderDetail.tsx:101 +#: src/pages/sales/SalesOrderDetail.tsx:110 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:100 +#: src/pages/stock/StockDetail.tsx:271 +#: src/tables/company/CompanyTable.tsx:111 +#: src/tables/sales/ReturnOrderTable.tsx:97 +#: src/tables/sales/SalesOrderTable.tsx:121 +#: src/tables/stock/StockTrackingTable.tsx:144 msgid "Customer" msgstr "" #: src/pages/company/CompanyDetail.tsx:172 -#: src/tables/stock/StockTrackingTable.tsx:183 -msgid "Details" +msgid "Company Details" msgstr "" #: src/pages/company/CompanyDetail.tsx:175 @@ -4363,140 +5112,150 @@ msgstr "" #~ msgid "Delete company" #~ msgstr "Delete company" -#: src/pages/company/CompanyDetail.tsx:232 +#: src/pages/company/CompanyDetail.tsx:234 msgid "Assigned Stock" msgstr "" -#: src/pages/company/CompanyDetail.tsx:290 -#: src/tables/company/CompanyTable.tsx:86 +#: src/pages/company/CompanyDetail.tsx:273 +#: src/tables/company/CompanyTable.tsx:87 msgid "Edit Company" msgstr "" -#: src/pages/company/CompanyDetail.tsx:298 +#: src/pages/company/CompanyDetail.tsx:281 msgid "Delete Company" msgstr "" -#: src/pages/company/CompanyDetail.tsx:306 +#: src/pages/company/CompanyDetail.tsx:289 msgid "Company Actions" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:76 -#: src/pages/company/SupplierPartDetail.tsx:89 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:128 +#: src/pages/company/ManufacturerPartDetail.tsx:74 +#: src/pages/company/SupplierPartDetail.tsx:84 msgid "Internal Part" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:91 -#: src/pages/company/SupplierPartDetail.tsx:103 -msgid "External Link" -msgstr "" - -#: src/pages/company/ManufacturerPartDetail.tsx:109 -#: src/pages/company/SupplierPartDetail.tsx:144 -#: src/tables/purchasing/ManufacturerPartTable.tsx:56 +#: src/pages/company/ManufacturerPartDetail.tsx:108 +#: src/pages/company/SupplierPartDetail.tsx:156 +#: src/tables/purchasing/ManufacturerPartTable.tsx:58 msgid "Manufacturer Part Number" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:138 +#: src/pages/company/ManufacturerPartDetail.tsx:125 +#: src/pages/company/SupplierPartDetail.tsx:108 +msgid "External Link" +msgstr "" + +#: src/pages/company/ManufacturerPartDetail.tsx:146 +#: src/pages/company/SupplierPartDetail.tsx:215 +#: src/pages/part/PartDetail.tsx:576 +msgid "Part Details" +msgstr "" + +#: src/pages/company/ManufacturerPartDetail.tsx:149 msgid "Manufacturer Details" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:147 +#: src/pages/company/ManufacturerPartDetail.tsx:158 msgid "Manufacturer Part Details" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:153 -#: src/pages/part/PartDetail.tsx:532 +#: src/pages/company/ManufacturerPartDetail.tsx:164 +#: src/pages/part/PartDetail.tsx:582 msgid "Parameters" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:165 -#: src/pages/part/PartDetail.tsx:649 +#: src/pages/company/ManufacturerPartDetail.tsx:176 +#: src/pages/part/PartDetail.tsx:669 #: src/pages/purchasing/PurchasingIndex.tsx:31 msgid "Suppliers" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:208 -#: src/tables/purchasing/ManufacturerPartTable.tsx:84 +#: src/pages/company/ManufacturerPartDetail.tsx:204 +#: src/tables/purchasing/ManufacturerPartTable.tsx:86 msgid "Edit Manufacturer Part" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:215 -#: src/tables/purchasing/ManufacturerPartTable.tsx:72 -#: src/tables/purchasing/ManufacturerPartTable.tsx:103 +#: src/pages/company/ManufacturerPartDetail.tsx:211 +#: src/tables/purchasing/ManufacturerPartTable.tsx:74 +#: src/tables/purchasing/ManufacturerPartTable.tsx:106 msgid "Add Manufacturer Part" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:227 -#: src/tables/purchasing/ManufacturerPartTable.tsx:92 +#: src/pages/company/ManufacturerPartDetail.tsx:223 +#: src/tables/purchasing/ManufacturerPartTable.tsx:94 msgid "Delete Manufacturer Part" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:240 +#: src/pages/company/ManufacturerPartDetail.tsx:236 msgid "Manufacturer Part Actions" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:281 +#: src/pages/company/ManufacturerPartDetail.tsx:276 msgid "ManufacturerPart" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:163 -#: src/tables/part/PartPurchaseOrdersTable.tsx:71 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:156 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:197 -#: src/tables/purchasing/SupplierPartTable.tsx:131 +#: src/pages/company/SupplierPartDetail.tsx:99 +msgid "Part Description" +msgstr "" + +#: src/pages/company/SupplierPartDetail.tsx:175 +#: src/tables/part/PartPurchaseOrdersTable.tsx:72 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:162 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:203 +#: src/tables/purchasing/SupplierPartTable.tsx:133 msgid "Pack Quantity" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:174 +#: src/pages/company/SupplierPartDetail.tsx:186 msgid "Supplier Availability" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:181 +#: src/pages/company/SupplierPartDetail.tsx:193 msgid "Availability Updated" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:208 +#: src/pages/company/SupplierPartDetail.tsx:220 msgid "Availability" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:217 +#: src/pages/company/SupplierPartDetail.tsx:229 msgid "Supplier Part Details" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:223 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:296 +#: src/pages/company/SupplierPartDetail.tsx:235 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:320 msgid "Received Stock" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:247 -#: src/pages/part/PartPricingPanel.tsx:111 -#: src/pages/part/pricing/PricingOverviewPanel.tsx:121 +#: src/pages/company/SupplierPartDetail.tsx:259 +#: src/pages/part/PartPricingPanel.tsx:116 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:195 msgid "Supplier Pricing" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:294 +#: src/pages/company/SupplierPartDetail.tsx:284 msgid "Supplier Part Actions" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:319 -#: src/tables/purchasing/SupplierPartTable.tsx:210 +#: src/pages/company/SupplierPartDetail.tsx:308 +#: src/tables/purchasing/SupplierPartTable.tsx:213 msgid "Edit Supplier Part" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:327 -#: src/tables/purchasing/SupplierPartTable.tsx:218 +#: src/pages/company/SupplierPartDetail.tsx:316 +#: src/tables/purchasing/SupplierPartTable.tsx:221 msgid "Delete Supplier Part" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:335 -#: src/tables/purchasing/SupplierPartTable.tsx:163 +#: src/pages/company/SupplierPartDetail.tsx:324 +#: src/tables/purchasing/SupplierPartTable.tsx:165 msgid "Add Supplier Part" msgstr "" #: src/pages/part/CategoryDetail.tsx:93 -#: src/pages/stock/LocationDetail.tsx:101 -#: src/tables/settings/ErrorTable.tsx:36 +#: src/pages/stock/LocationDetail.tsx:95 +#: src/tables/settings/ErrorTable.tsx:63 +#: src/tables/settings/ErrorTable.tsx:108 msgid "Path" msgstr "" @@ -4504,357 +5263,357 @@ msgstr "" msgid "Parent Category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:126 +#: src/pages/part/CategoryDetail.tsx:132 msgid "Subcategories" msgstr "" -#: src/pages/part/CategoryDetail.tsx:133 -#: src/pages/stock/LocationDetail.tsx:141 -#: src/tables/part/PartCategoryTable.tsx:73 +#: src/pages/part/CategoryDetail.tsx:139 +#: src/pages/stock/LocationDetail.tsx:135 +#: src/tables/part/PartCategoryTable.tsx:85 #: src/tables/stock/StockLocationTable.tsx:49 msgid "Structural" msgstr "" -#: src/pages/part/CategoryDetail.tsx:139 +#: src/pages/part/CategoryDetail.tsx:145 msgid "Parent default location" msgstr "" -#: src/pages/part/CategoryDetail.tsx:146 +#: src/pages/part/CategoryDetail.tsx:152 msgid "Default location" msgstr "" -#: src/pages/part/CategoryDetail.tsx:157 +#: src/pages/part/CategoryDetail.tsx:163 msgid "Top level part category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:167 -#: src/pages/part/CategoryDetail.tsx:221 -#: src/tables/part/PartCategoryTable.tsx:102 +#: src/pages/part/CategoryDetail.tsx:173 +#: src/pages/part/CategoryDetail.tsx:226 +#: src/tables/part/PartCategoryTable.tsx:118 msgid "Edit Part Category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:180 -#: src/pages/stock/LocationDetail.tsx:233 +#: src/pages/part/CategoryDetail.tsx:186 +#: src/pages/stock/LocationDetail.tsx:227 msgid "Delete items" msgstr "" -#: src/pages/part/CategoryDetail.tsx:188 -#: src/pages/part/CategoryDetail.tsx:226 +#: src/pages/part/CategoryDetail.tsx:194 +#: src/pages/part/CategoryDetail.tsx:231 msgid "Delete Part Category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:191 +#: src/pages/part/CategoryDetail.tsx:197 msgid "Parts Action" msgstr "" -#: src/pages/part/CategoryDetail.tsx:192 +#: src/pages/part/CategoryDetail.tsx:198 msgid "Action for parts in this category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:197 +#: src/pages/part/CategoryDetail.tsx:203 msgid "Child Categories Action" msgstr "" -#: src/pages/part/CategoryDetail.tsx:198 +#: src/pages/part/CategoryDetail.tsx:204 msgid "Action for child categories in this category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:216 +#: src/pages/part/CategoryDetail.tsx:222 msgid "Category Actions" msgstr "" -#: src/pages/part/CategoryDetail.tsx:238 +#: src/pages/part/CategoryDetail.tsx:243 msgid "Category Details" msgstr "" -#: src/pages/part/PartDetail.tsx:163 -msgid "Variant of" +#: src/pages/part/PartAllocationPanel.tsx:23 +#: src/pages/stock/StockDetail.tsx:443 +#: src/tables/part/PartTable.tsx:99 +msgid "Build Order Allocations" msgstr "" -#: src/pages/part/PartDetail.tsx:170 -msgid "Revision of" -msgstr "" - -#: src/pages/part/PartDetail.tsx:177 -#: src/tables/stock/StockItemTable.tsx:58 -msgid "Revision" +#: src/pages/part/PartAllocationPanel.tsx:40 +#: src/pages/stock/StockDetail.tsx:458 +#: src/tables/part/PartTable.tsx:108 +msgid "Sales Order Allocations" msgstr "" #: src/pages/part/PartDetail.tsx:184 +msgid "Variant of" +msgstr "" + +#: src/pages/part/PartDetail.tsx:191 +msgid "Revision of" +msgstr "" + +#: src/pages/part/PartDetail.tsx:198 +#: src/tables/stock/StockItemTable.tsx:59 +msgid "Revision" +msgstr "" + +#: src/pages/part/PartDetail.tsx:205 #: src/tables/notifications/NotificationsTable.tsx:31 #: src/tables/part/PartCategoryTemplateTable.tsx:67 msgid "Category" msgstr "" -#: src/pages/part/PartDetail.tsx:190 +#: src/pages/part/PartDetail.tsx:211 msgid "Default Location" msgstr "" -#: src/pages/part/PartDetail.tsx:197 +#: src/pages/part/PartDetail.tsx:218 msgid "Category Default Location" msgstr "" -#: src/pages/part/PartDetail.tsx:204 +#: src/pages/part/PartDetail.tsx:225 #: src/tables/purchasing/ManufacturerPartParameterTable.tsx:44 msgid "Units" msgstr "" -#: src/pages/part/PartDetail.tsx:211 -#: src/tables/settings/PendingTasksTable.tsx:42 +#: src/pages/part/PartDetail.tsx:232 +#: src/tables/settings/PendingTasksTable.tsx:46 msgid "Keywords" msgstr "" -#: src/pages/part/PartDetail.tsx:218 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:186 -#: src/pages/sales/ReturnOrderDetail.tsx:165 -#: src/pages/sales/SalesOrderDetail.tsx:174 -msgid "Link" -msgstr "" - -#: src/pages/part/PartDetail.tsx:236 +#: src/pages/part/PartDetail.tsx:257 #: src/tables/bom/BomTable.tsx:320 -#: src/tables/build/BuildLineTable.tsx:155 +#: src/tables/build/BuildLineTable.tsx:286 #: src/tables/part/PartTable.tsx:288 -#: src/tables/sales/SalesOrderLineItemTable.tsx:103 +#: src/tables/sales/SalesOrderLineItemTable.tsx:111 msgid "Available Stock" msgstr "" -#: src/pages/part/PartDetail.tsx:243 +#: src/pages/part/PartDetail.tsx:264 msgid "Variant Stock" msgstr "" -#: src/pages/part/PartDetail.tsx:251 +#: src/pages/part/PartDetail.tsx:272 msgid "Minimum Stock" msgstr "" -#: src/pages/part/PartDetail.tsx:257 +#: src/pages/part/PartDetail.tsx:278 #: src/tables/bom/BomTable.tsx:237 -#: src/tables/build/BuildLineTable.tsx:117 -#: src/tables/sales/SalesOrderLineItemTable.tsx:141 +#: src/tables/build/BuildLineTable.tsx:248 +#: src/tables/sales/SalesOrderLineItemTable.tsx:149 msgid "On order" msgstr "" -#: src/pages/part/PartDetail.tsx:266 +#: src/pages/part/PartDetail.tsx:285 +msgid "Required for Orders" +msgstr "" + +#: src/pages/part/PartDetail.tsx:294 msgid "Allocated to Build Orders" msgstr "" -#: src/pages/part/PartDetail.tsx:274 +#: src/pages/part/PartDetail.tsx:305 msgid "Allocated to Sales Orders" msgstr "" -#: src/pages/part/PartDetail.tsx:281 -#: src/tables/bom/BomTable.tsx:261 -#: src/tables/bom/BomTable.tsx:293 -msgid "Can Build" -msgstr "" - -#: src/pages/part/PartDetail.tsx:288 -#: src/tables/bom/BomTable.tsx:245 -#: src/tables/part/PartTable.tsx:92 -msgid "Building" -msgstr "" - -#: src/pages/part/PartDetail.tsx:302 -#: src/pages/part/PartDetail.tsx:873 -#: src/tables/part/ParametricPartTable.tsx:228 -#: src/tables/part/PartTable.tsx:184 -msgid "Locked" -msgstr "" - -#: src/pages/part/PartDetail.tsx:308 -msgid "Template Part" -msgstr "" - #: src/pages/part/PartDetail.tsx:310 #~ msgid "Edit part" #~ msgstr "Edit part" -#: src/pages/part/PartDetail.tsx:313 -#: src/tables/bom/BomTable.tsx:315 -msgid "Assembled Part" +#: src/pages/part/PartDetail.tsx:315 +#: src/tables/bom/BomTable.tsx:261 +#: src/tables/bom/BomTable.tsx:293 +msgid "Can Build" msgstr "" -#: src/pages/part/PartDetail.tsx:318 -msgid "Component Part" +#: src/pages/part/PartDetail.tsx:322 +#: src/pages/part/PartDetail.tsx:905 +#: src/pages/stock/StockDetail.tsx:766 +#: src/tables/build/BuildOrderTestTable.tsx:220 +#: src/tables/stock/StockItemTable.tsx:334 +msgid "In Production" msgstr "" #: src/pages/part/PartDetail.tsx:322 #~ msgid "Duplicate part" #~ msgstr "Duplicate part" -#: src/pages/part/PartDetail.tsx:323 -#: src/tables/bom/BomTable.tsx:305 -msgid "Testable Part" -msgstr "" - #: src/pages/part/PartDetail.tsx:327 #~ msgid "Delete part" #~ msgstr "Delete part" -#: src/pages/part/PartDetail.tsx:329 +#: src/pages/part/PartDetail.tsx:336 +#: src/tables/part/ParametricPartTable.tsx:228 +#: src/tables/part/PartTable.tsx:184 +msgid "Locked" +msgstr "" + +#: src/pages/part/PartDetail.tsx:342 +msgid "Template Part" +msgstr "" + +#: src/pages/part/PartDetail.tsx:347 +#: src/tables/bom/BomTable.tsx:315 +msgid "Assembled Part" +msgstr "" + +#: src/pages/part/PartDetail.tsx:352 +msgid "Component Part" +msgstr "" + +#: src/pages/part/PartDetail.tsx:357 +#: src/tables/bom/BomTable.tsx:305 +msgid "Testable Part" +msgstr "" + +#: src/pages/part/PartDetail.tsx:363 #: src/tables/bom/BomTable.tsx:310 msgid "Trackable Part" msgstr "" -#: src/pages/part/PartDetail.tsx:334 +#: src/pages/part/PartDetail.tsx:368 msgid "Purchaseable Part" msgstr "" -#: src/pages/part/PartDetail.tsx:339 +#: src/pages/part/PartDetail.tsx:374 msgid "Saleable Part" msgstr "" -#: src/pages/part/PartDetail.tsx:344 +#: src/pages/part/PartDetail.tsx:379 msgid "Virtual Part" msgstr "" -#: src/pages/part/PartDetail.tsx:352 -#: src/tables/ColumnRenderers.tsx:220 +#: src/pages/part/PartDetail.tsx:393 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:215 +#: src/pages/sales/ReturnOrderDetail.tsx:185 +#: src/pages/sales/SalesOrderDetail.tsx:197 +#: src/tables/ColumnRenderers.tsx:234 msgid "Creation Date" msgstr "" -#: src/pages/part/PartDetail.tsx:357 +#: src/pages/part/PartDetail.tsx:398 msgid "Created By" msgstr "" -#: src/pages/part/PartDetail.tsx:372 +#: src/pages/part/PartDetail.tsx:413 msgid "Default Supplier" msgstr "" -#: src/pages/part/PartDetail.tsx:383 -#: src/pages/part/pricing/BomPricingPanel.tsx:79 +#: src/pages/part/PartDetail.tsx:424 +#: src/pages/part/pricing/BomPricingPanel.tsx:113 #: src/pages/part/pricing/VariantPricingPanel.tsx:95 #: src/tables/part/PartTable.tsx:161 msgid "Price Range" msgstr "" -#: src/pages/part/PartDetail.tsx:423 -#: src/pages/stock/StockDetail.tsx:135 +#: src/pages/part/PartDetail.tsx:462 +msgid "Latest Serial Number" +msgstr "" + +#: src/pages/part/PartDetail.tsx:472 +#: src/pages/stock/StockDetail.tsx:151 msgid "Last Stocktake" msgstr "" -#: src/pages/part/PartDetail.tsx:462 +#: src/pages/part/PartDetail.tsx:511 msgid "Stocktake By" msgstr "" -#: src/pages/part/PartDetail.tsx:526 -msgid "Part Details" -msgstr "" - -#: src/pages/part/PartDetail.tsx:557 +#: src/pages/part/PartDetail.tsx:611 msgid "Variants" msgstr "" -#: src/pages/part/PartDetail.tsx:564 -#: src/pages/stock/StockDetail.tsx:307 +#: src/pages/part/PartDetail.tsx:618 +#: src/pages/stock/StockDetail.tsx:430 msgid "Allocations" msgstr "" -#: src/pages/part/PartDetail.tsx:575 -#: src/pages/stock/StockDetail.tsx:318 -#: src/tables/part/PartTable.tsx:99 -msgid "Build Order Allocations" -msgstr "" - -#: src/pages/part/PartDetail.tsx:590 -#: src/pages/stock/StockDetail.tsx:333 -#: src/tables/part/PartTable.tsx:108 -msgid "Sales Order Allocations" -msgstr "" - -#: src/pages/part/PartDetail.tsx:607 +#: src/pages/part/PartDetail.tsx:625 msgid "Bill of Materials" msgstr "" -#: src/pages/part/PartDetail.tsx:623 +#: src/pages/part/PartDetail.tsx:643 msgid "Used In" msgstr "" -#: src/pages/part/PartDetail.tsx:630 +#: src/pages/part/PartDetail.tsx:650 msgid "Part Pricing" msgstr "" -#: src/pages/part/PartDetail.tsx:636 +#: src/pages/part/PartDetail.tsx:656 #: src/pages/purchasing/PurchasingIndex.tsx:42 msgid "Manufacturers" msgstr "" -#: src/pages/part/PartDetail.tsx:676 +#: src/pages/part/PartDetail.tsx:722 msgid "Scheduling" msgstr "" -#: src/pages/part/PartDetail.tsx:688 +#: src/pages/part/PartDetail.tsx:729 msgid "Test Templates" msgstr "" -#: src/pages/part/PartDetail.tsx:715 +#: src/pages/part/PartDetail.tsx:756 msgid "Related Parts" msgstr "" -#: src/pages/part/PartDetail.tsx:849 -#: src/pages/stock/StockDetail.tsx:156 -#: src/pages/stock/StockDetail.tsx:593 -#: src/tables/build/BuildLineTable.tsx:48 +#: src/pages/part/PartDetail.tsx:881 +#: src/pages/stock/StockDetail.tsx:172 +#: src/pages/stock/StockDetail.tsx:783 +#: src/tables/build/BuildLineTable.tsx:179 #: src/tables/part/PartTable.tsx:117 -#: src/tables/stock/StockItemTable.tsx:177 -#: src/tables/stock/StockItemTable.tsx:310 +#: src/tables/stock/StockItemTable.tsx:166 +#: src/tables/stock/StockItemTable.tsx:314 msgid "Available" msgstr "" -#: src/pages/part/PartDetail.tsx:855 +#: src/pages/part/PartDetail.tsx:887 msgid "No Stock" msgstr "" -#: src/pages/part/PartDetail.tsx:861 +#: src/pages/part/PartDetail.tsx:893 +#: src/tables/part/PartTestTemplateTable.tsx:106 +#: src/tables/stock/StockItemTestResultTable.tsx:383 +msgid "Required" +msgstr "" + +#: src/pages/part/PartDetail.tsx:899 #: src/tables/bom/BomTable.tsx:325 #: src/tables/part/PartTable.tsx:86 msgid "On Order" msgstr "" -#: src/pages/part/PartDetail.tsx:867 -#: src/pages/stock/StockDetail.tsx:576 -#: src/tables/build/BuildOrderTestTable.tsx:219 -#: src/tables/stock/StockItemTable.tsx:330 -msgid "In Production" -msgstr "" - -#: src/pages/part/PartDetail.tsx:892 +#: src/pages/part/PartDetail.tsx:924 msgid "Edit Part" msgstr "" -#: src/pages/part/PartDetail.tsx:927 +#: src/pages/part/PartDetail.tsx:959 #: src/tables/part/PartTable.tsx:331 -#: src/tables/part/PartTable.tsx:342 +#: src/tables/part/PartTable.tsx:343 msgid "Add Part" msgstr "" -#: src/pages/part/PartDetail.tsx:941 +#: src/pages/part/PartDetail.tsx:973 msgid "Delete Part" msgstr "" -#: src/pages/part/PartDetail.tsx:950 +#: src/pages/part/PartDetail.tsx:982 msgid "Deleting this part cannot be reversed" msgstr "" -#: src/pages/part/PartDetail.tsx:999 -#: src/pages/stock/LocationDetail.tsx:324 -#: src/tables/stock/StockItemTable.tsx:444 +#: src/pages/part/PartDetail.tsx:1021 +#: src/pages/stock/LocationDetail.tsx:310 +#: src/tables/stock/StockItemTable.tsx:449 msgid "Stock Actions" msgstr "" -#: src/pages/part/PartDetail.tsx:1007 +#: src/pages/part/PartDetail.tsx:1029 msgid "Count part stock" msgstr "" -#: src/pages/part/PartDetail.tsx:1018 +#: src/pages/part/PartDetail.tsx:1040 msgid "Transfer part stock" msgstr "" -#: src/pages/part/PartDetail.tsx:1027 +#: src/pages/part/PartDetail.tsx:1049 msgid "Part Actions" msgstr "" -#: src/pages/part/PartDetail.tsx:1087 +#: src/pages/part/PartDetail.tsx:1113 msgid "Select Part Revision" msgstr "" @@ -4862,113 +5621,214 @@ msgstr "" #~ msgid "Categories" #~ msgstr "Categories" -#: src/pages/part/PartPricingPanel.tsx:68 +#: src/pages/part/PartPricingPanel.tsx:72 msgid "No pricing data found for this part." msgstr "" -#: src/pages/part/PartPricingPanel.tsx:82 -#: src/pages/part/pricing/PricingOverviewPanel.tsx:190 +#: src/pages/part/PartPricingPanel.tsx:87 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:293 msgid "Pricing Overview" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:88 +#: src/pages/part/PartPricingPanel.tsx:93 msgid "Purchase History" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:102 -#: src/pages/part/pricing/PricingOverviewPanel.tsx:100 +#: src/pages/part/PartPricingPanel.tsx:107 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:174 msgid "Internal Pricing" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:120 -#: src/pages/part/pricing/PricingOverviewPanel.tsx:107 +#: src/pages/part/PartPricingPanel.tsx:125 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:181 msgid "BOM Pricing" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:127 -#: src/pages/part/pricing/PricingOverviewPanel.tsx:128 +#: src/pages/part/PartPricingPanel.tsx:132 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:202 msgid "Variant Pricing" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:139 -#: src/pages/part/pricing/PricingOverviewPanel.tsx:135 +#: src/pages/part/PartPricingPanel.tsx:144 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:209 msgid "Sale Pricing" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:146 -#: src/pages/part/pricing/PricingOverviewPanel.tsx:142 +#: src/pages/part/PartPricingPanel.tsx:151 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:216 msgid "Sale History" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:58 -#: src/pages/part/pricing/BomPricingPanel.tsx:138 -#: src/tables/ColumnRenderers.tsx:262 +#: src/pages/part/PartSchedulingDetail.tsx:47 +#: src/pages/part/PartSchedulingDetail.tsx:299 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:156 +msgid "Maximum" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:50 +#: src/pages/part/PartSchedulingDetail.tsx:289 +msgid "Scheduled" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:53 +#: src/pages/part/PartSchedulingDetail.tsx:294 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:144 +msgid "Minimum" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:68 +msgid "Order" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:92 +msgid "Quantity is speculative" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:101 +msgid "No date available for provided quantity" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:105 +msgid "Date is in the past" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:112 +msgid "Scheduled Quantity" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:240 +msgid "No information available" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:241 +msgid "There is no scheduling information available for the selected part" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:276 +msgid "Expected Quantity" +msgstr "" + +#: src/pages/part/PartStocktakeDetail.tsx:63 +#: src/tables/FilterSelectDrawer.tsx:167 +#: src/tables/FilterSelectDrawer.tsx:174 +#: src/tables/build/BuildOrderTestTable.tsx:135 +#: src/tables/purchasing/ManufacturerPartParameterTable.tsx:38 +#: src/tables/stock/StockItemTestResultTable.tsx:192 +msgid "Value" +msgstr "" + +#: src/pages/part/PartStocktakeDetail.tsx:82 +msgid "Edit Stocktake Entry" +msgstr "" + +#: src/pages/part/PartStocktakeDetail.tsx:90 +msgid "Delete Stocktake Entry" +msgstr "" + +#: src/pages/part/PartStocktakeDetail.tsx:96 +#: src/tables/settings/StocktakeReportTable.tsx:69 +msgid "Generate Stocktake Report" +msgstr "" + +#: src/pages/part/PartStocktakeDetail.tsx:101 +#: src/tables/settings/StocktakeReportTable.tsx:71 +msgid "Stocktake report scheduled" +msgstr "" + +#: src/pages/part/PartStocktakeDetail.tsx:119 +#: src/pages/part/PartStocktakeDetail.tsx:235 +#: src/pages/stock/StockDetail.tsx:303 +#: src/tables/stock/StockItemTable.tsx:249 +msgid "Stock Value" +msgstr "" + +#: src/pages/part/PartStocktakeDetail.tsx:139 +#: src/tables/settings/StocktakeReportTable.tsx:77 +msgid "New Stocktake Report" +msgstr "" + +#: src/pages/part/PartStocktakeDetail.tsx:258 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:295 +msgid "Minimum Value" +msgstr "" + +#: src/pages/part/PartStocktakeDetail.tsx:264 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:296 +msgid "Maximum Value" +msgstr "" + +#: src/pages/part/pricing/BomPricingPanel.tsx:87 +#: src/pages/part/pricing/BomPricingPanel.tsx:177 +#: src/tables/ColumnRenderers.tsx:276 #: src/tables/bom/BomTable.tsx:185 #: src/tables/general/ExtraLineItemTable.tsx:64 -#: src/tables/purchasing/PurchaseOrderTable.tsx:112 -#: src/tables/sales/ReturnOrderTable.tsx:104 -#: src/tables/sales/SalesOrderLineItemTable.tsx:89 -#: src/tables/sales/SalesOrderTable.tsx:136 +#: src/tables/purchasing/PurchaseOrderTable.tsx:113 +#: src/tables/sales/ReturnOrderTable.tsx:127 +#: src/tables/sales/SalesOrderLineItemTable.tsx:97 +#: src/tables/sales/SalesOrderTable.tsx:149 msgid "Total Price" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:78 -#: src/pages/part/pricing/BomPricingPanel.tsx:102 +#: src/pages/part/pricing/BomPricingPanel.tsx:112 +#: src/pages/part/pricing/BomPricingPanel.tsx:141 #: src/tables/bom/UsedInTable.tsx:49 +#: src/tables/build/BuildLineTable.tsx:296 #: src/tables/part/PartTable.tsx:202 msgid "Component" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:81 -#: src/pages/part/pricing/VariantPricingPanel.tsx:37 -#: src/pages/part/pricing/VariantPricingPanel.tsx:97 -msgid "Minimum Price" -msgstr "" - -#: src/pages/part/pricing/BomPricingPanel.tsx:82 -#: src/pages/part/pricing/VariantPricingPanel.tsx:45 -#: src/pages/part/pricing/VariantPricingPanel.tsx:98 -msgid "Maximum Price" -msgstr "" - #: src/pages/part/pricing/BomPricingPanel.tsx:112 #~ msgid "Minimum Total Price" #~ msgstr "Minimum Total Price" +#: src/pages/part/pricing/BomPricingPanel.tsx:115 +#: src/pages/part/pricing/VariantPricingPanel.tsx:37 +#: src/pages/part/pricing/VariantPricingPanel.tsx:97 +msgid "Minimum Price" +msgstr "" + +#: src/pages/part/pricing/BomPricingPanel.tsx:116 +#: src/pages/part/pricing/VariantPricingPanel.tsx:45 +#: src/pages/part/pricing/VariantPricingPanel.tsx:98 +msgid "Maximum Price" +msgstr "" + #: src/pages/part/pricing/BomPricingPanel.tsx:117 #~ msgid "Maximum Total Price" #~ msgstr "Maximum Total Price" -#: src/pages/part/pricing/BomPricingPanel.tsx:129 -#: src/pages/part/pricing/PriceBreakPanel.tsx:172 -#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:67 -#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:128 -#: src/pages/part/pricing/SupplierPricingPanel.tsx:62 +#: src/pages/part/pricing/BomPricingPanel.tsx:168 +#: src/pages/part/pricing/PriceBreakPanel.tsx:173 +#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:70 +#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:125 +#: src/pages/part/pricing/SupplierPricingPanel.tsx:66 +#: src/pages/stock/StockDetail.tsx:291 #: src/tables/bom/BomTable.tsx:176 #: src/tables/general/ExtraLineItemTable.tsx:56 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:223 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:225 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:92 +#: src/tables/stock/StockItemTable.tsx:239 msgid "Unit Price" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:154 +#: src/pages/part/pricing/BomPricingPanel.tsx:193 #: src/pages/part/pricing/VariantPricingPanel.tsx:53 -#: src/tables/purchasing/SupplierPartTable.tsx:148 +#: src/tables/purchasing/SupplierPartTable.tsx:150 msgid "Updated" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:219 +#: src/pages/part/pricing/BomPricingPanel.tsx:258 msgid "Pie Chart" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:220 +#: src/pages/part/pricing/BomPricingPanel.tsx:259 msgid "Bar Chart" msgstr "" #: src/pages/part/pricing/PriceBreakPanel.tsx:58 -#: src/pages/part/pricing/PriceBreakPanel.tsx:110 +#: src/pages/part/pricing/PriceBreakPanel.tsx:111 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:142 -#: src/tables/purchasing/SupplierPriceBreakTable.tsx:168 +#: src/tables/purchasing/SupplierPriceBreakTable.tsx:169 msgid "Add Price Break" msgstr "" @@ -4986,46 +5846,70 @@ msgstr "" msgid "Price Break" msgstr "" -#: src/pages/part/pricing/PriceBreakPanel.tsx:170 +#: src/pages/part/pricing/PriceBreakPanel.tsx:171 msgid "Price" msgstr "" -#: src/pages/part/pricing/PricingOverviewPanel.tsx:51 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:68 +msgid "Refreshing pricing data" +msgstr "" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:88 +msgid "Pricing data updated" +msgstr "" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:95 +msgid "Failed to update pricing data" +msgstr "" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:104 +msgid "Edit Pricing" +msgstr "" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:125 msgid "Pricing Category" msgstr "" -#: src/pages/part/pricing/PricingOverviewPanel.tsx:70 -msgid "Minimum" -msgstr "" - -#: src/pages/part/pricing/PricingOverviewPanel.tsx:82 -msgid "Maximum" -msgstr "" - -#: src/pages/part/pricing/PricingOverviewPanel.tsx:114 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:188 msgid "Purchase Pricing" msgstr "" -#: src/pages/part/pricing/PricingOverviewPanel.tsx:149 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:223 msgid "Override Pricing" msgstr "" -#: src/pages/part/pricing/PricingOverviewPanel.tsx:156 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:230 msgid "Overall Pricing" msgstr "" -#: src/pages/part/pricing/PricingOverviewPanel.tsx:175 -#: src/pages/stock/StockDetail.tsx:129 -#: src/tables/stock/StockItemTable.tsx:240 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:249 +#: src/pages/stock/StockDetail.tsx:145 +#: src/tables/stock/StockItemTable.tsx:275 msgid "Last Updated" msgstr "" -#: src/pages/part/pricing/PricingOverviewPanel.tsx:192 -msgid "Minimum Value" +#: src/pages/part/pricing/PricingOverviewPanel.tsx:253 +msgid "Pricing Not Set" msgstr "" -#: src/pages/part/pricing/PricingOverviewPanel.tsx:193 -msgid "Maximum Value" +#: src/pages/part/pricing/PricingOverviewPanel.tsx:254 +msgid "Pricing data has not been calculated for this part" +msgstr "" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:258 +msgid "Pricing Actions" +msgstr "" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:261 +msgid "Refresh" +msgstr "" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:262 +msgid "Refresh pricing data" +msgstr "" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:277 +msgid "Edit pricing data" msgstr "" #: src/pages/part/pricing/PricingPanel.tsx:24 @@ -5044,28 +5928,20 @@ msgstr "" msgid "Loading pricing data" msgstr "" -#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:40 -#: src/pages/part/pricing/SaleHistoryPanel.tsx:36 -#: src/tables/ColumnRenderers.tsx:201 -#: src/tables/build/BuildOrderTestTable.tsx:150 -#: src/tables/plugin/PluginListTable.tsx:139 -msgid "Date" -msgstr "" - #: src/pages/part/pricing/PurchaseHistoryPanel.tsx:47 msgid "Purchase Price" msgstr "" -#: src/pages/part/pricing/SaleHistoryPanel.tsx:22 -msgid "Sale Order" -msgstr "" +#: src/pages/part/pricing/SaleHistoryPanel.tsx:24 +#~ msgid "Sale Order" +#~ msgstr "Sale Order" -#: src/pages/part/pricing/SaleHistoryPanel.tsx:42 -#: src/pages/part/pricing/SaleHistoryPanel.tsx:92 +#: src/pages/part/pricing/SaleHistoryPanel.tsx:44 +#: src/pages/part/pricing/SaleHistoryPanel.tsx:87 msgid "Sale Price" msgstr "" -#: src/pages/part/pricing/SupplierPricingPanel.tsx:65 +#: src/pages/part/pricing/SupplierPricingPanel.tsx:69 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:83 msgid "Supplier Price" msgstr "" @@ -5075,23 +5951,23 @@ msgstr "" msgid "Variant Part" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:93 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:87 msgid "Edit Purchase Order" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:102 -#: src/tables/purchasing/PurchaseOrderTable.tsx:128 -#: src/tables/purchasing/PurchaseOrderTable.tsx:140 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:96 +#: src/tables/purchasing/PurchaseOrderTable.tsx:129 +#: src/tables/purchasing/PurchaseOrderTable.tsx:142 msgid "Add Purchase Order" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:127 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:121 msgid "Supplier Reference" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:158 -#: src/pages/sales/ReturnOrderDetail.tsx:137 -#: src/pages/sales/SalesOrderDetail.tsx:137 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:152 +#: src/pages/sales/ReturnOrderDetail.tsx:129 +#: src/pages/sales/SalesOrderDetail.tsx:132 msgid "Completed Line Items" msgstr "" @@ -5101,91 +5977,112 @@ msgstr "" #~ msgid "Order Currency," #~ msgstr "Order Currency," -#: src/pages/purchasing/PurchaseOrderDetail.tsx:165 -#: src/pages/sales/ReturnOrderDetail.tsx:144 -#: src/pages/sales/SalesOrderDetail.tsx:153 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:161 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:231 +msgid "Destination" +msgstr "" + +#: src/pages/purchasing/PurchaseOrderDetail.tsx:167 +#: src/pages/sales/ReturnOrderDetail.tsx:136 +#: src/pages/sales/SalesOrderDetail.tsx:148 msgid "Order Currency" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:172 -#: src/pages/sales/ReturnOrderDetail.tsx:151 -#: src/pages/sales/SalesOrderDetail.tsx:160 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:173 +#: src/pages/sales/ReturnOrderDetail.tsx:143 +#: src/pages/sales/SalesOrderDetail.tsx:155 msgid "Total Cost" msgstr "" #: src/pages/purchasing/PurchaseOrderDetail.tsx:207 -#: src/pages/sales/ReturnOrderDetail.tsx:186 -#: src/pages/sales/SalesOrderDetail.tsx:195 -msgid "Created On" +#: src/pages/sales/ReturnOrderDetail.tsx:183 +#: src/pages/sales/SalesOrderDetail.tsx:191 +#~ msgid "Created On" +#~ msgstr "Created On" + +#: src/pages/purchasing/PurchaseOrderDetail.tsx:221 +#: src/pages/sales/ReturnOrderDetail.tsx:193 +#: src/pages/sales/SalesOrderDetail.tsx:204 +msgid "Issue Date" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:252 -#: src/pages/sales/ReturnOrderDetail.tsx:231 -#: src/pages/sales/SalesOrderDetail.tsx:266 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:237 +#: src/pages/sales/ReturnOrderDetail.tsx:209 +#: src/pages/sales/SalesOrderDetail.tsx:219 +#: src/tables/build/BuildOrderTable.tsx:98 +#: src/tables/part/PartPurchaseOrdersTable.tsx:105 +#: src/tables/sales/ReturnOrderTable.tsx:122 +msgid "Completion Date" +msgstr "" + +#: src/pages/purchasing/PurchaseOrderDetail.tsx:276 +#: src/pages/sales/ReturnOrderDetail.tsx:248 +#: src/pages/sales/SalesOrderDetail.tsx:288 msgid "Order Details" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:280 -#: src/pages/sales/ReturnOrderDetail.tsx:258 -#: src/pages/sales/SalesOrderDetail.tsx:297 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:304 +#: src/pages/sales/ReturnOrderDetail.tsx:276 +#: src/pages/sales/SalesOrderDetail.tsx:319 msgid "Extra Line Items" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:337 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:346 msgid "Issue Purchase Order" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:345 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:354 msgid "Cancel Purchase Order" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:353 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:362 msgid "Hold Purchase Order" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:361 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:370 msgid "Complete Purchase Order" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:427 -#: src/pages/sales/ReturnOrderDetail.tsx:428 -#: src/pages/sales/SalesOrderDetail.tsx:468 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:425 +#: src/pages/sales/ReturnOrderDetail.tsx:424 +#: src/pages/sales/SalesOrderDetail.tsx:464 msgid "Order Actions" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:101 -#: src/pages/sales/SalesOrderDetail.tsx:107 -#: src/tables/sales/SalesOrderTable.tsx:124 +#: src/pages/sales/ReturnOrderDetail.tsx:92 +#: src/pages/sales/SalesOrderDetail.tsx:101 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:109 +#: src/tables/sales/SalesOrderTable.tsx:137 msgid "Customer Reference" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:315 +#: src/pages/sales/ReturnOrderDetail.tsx:322 msgid "Edit Return Order" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:324 -#: src/tables/sales/ReturnOrderTable.tsx:119 -#: src/tables/sales/ReturnOrderTable.tsx:128 +#: src/pages/sales/ReturnOrderDetail.tsx:331 +#: src/tables/sales/ReturnOrderTable.tsx:142 +#: src/tables/sales/ReturnOrderTable.tsx:152 msgid "Add Return Order" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:336 +#: src/pages/sales/ReturnOrderDetail.tsx:343 msgid "Issue Return Order" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:344 +#: src/pages/sales/ReturnOrderDetail.tsx:349 +#~ msgid "Order canceled" +#~ msgstr "Order canceled" + +#: src/pages/sales/ReturnOrderDetail.tsx:351 msgid "Cancel Return Order" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:347 -msgid "Order canceled" -msgstr "" - -#: src/pages/sales/ReturnOrderDetail.tsx:352 +#: src/pages/sales/ReturnOrderDetail.tsx:359 msgid "Hold Return Order" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:360 +#: src/pages/sales/ReturnOrderDetail.tsx:367 msgid "Complete Return Order" msgstr "" @@ -5193,117 +6090,193 @@ msgstr "" msgid "Customers" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:145 +#: src/pages/sales/SalesOrderDetail.tsx:140 msgid "Completed Shipments" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:243 -msgid "Edit Sales Order" -msgstr "" - -#: src/pages/sales/SalesOrderDetail.tsx:252 -#: src/tables/sales/SalesOrderTable.tsx:84 -#: src/tables/sales/SalesOrderTable.tsx:96 -msgid "Add Sales Order" -msgstr "" - #: src/pages/sales/SalesOrderDetail.tsx:256 #~ msgid "Pending Shipments" #~ msgstr "Pending Shipments" -#: src/pages/sales/SalesOrderDetail.tsx:313 +#: src/pages/sales/SalesOrderDetail.tsx:261 +msgid "Edit Sales Order" +msgstr "" + +#: src/pages/sales/SalesOrderDetail.tsx:274 +#: src/tables/sales/SalesOrderTable.tsx:96 +#: src/tables/sales/SalesOrderTable.tsx:109 +msgid "Add Sales Order" +msgstr "" + +#: src/pages/sales/SalesOrderDetail.tsx:335 msgid "Shipments" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:369 +#: src/pages/sales/SalesOrderDetail.tsx:376 msgid "Issue Sales Order" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:377 +#: src/pages/sales/SalesOrderDetail.tsx:384 msgid "Cancel Sales Order" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:385 +#: src/pages/sales/SalesOrderDetail.tsx:392 msgid "Hold Sales Order" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:393 +#: src/pages/sales/SalesOrderDetail.tsx:400 msgid "Complete Sales Order" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:432 +#: src/pages/sales/SalesOrderDetail.tsx:439 msgid "Ship Order" msgstr "" -#: src/pages/stock/LocationDetail.tsx:117 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:117 +#: src/tables/sales/SalesOrderShipmentTable.tsx:96 +msgid "Shipment Reference" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:124 +msgid "Allocated Items" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:133 +msgid "Tracking Number" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:141 +msgid "Invoice Number" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:149 +#: src/tables/ColumnRenderers.tsx:242 +#: src/tables/sales/SalesOrderAllocationTable.tsx:142 +#: src/tables/sales/SalesOrderShipmentTable.tsx:115 +msgid "Shipment Date" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:157 +#: src/tables/sales/SalesOrderShipmentTable.tsx:119 +msgid "Delivery Date" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:204 +msgid "Shipment Details" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:210 +msgid "Assigned Items" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:241 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:317 +#: src/tables/sales/SalesOrderShipmentTable.tsx:75 +msgid "Edit Shipment" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:248 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:322 +#: src/tables/sales/SalesOrderShipmentTable.tsx:67 +msgid "Cancel Shipment" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:261 +#: src/tables/sales/SalesOrderShipmentTable.tsx:83 +#: src/tables/sales/SalesOrderShipmentTable.tsx:151 +msgid "Complete Shipment" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:276 +#: src/tables/part/PartPurchaseOrdersTable.tsx:121 +msgid "Pending" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:277 +#: src/tables/sales/SalesOrderAllocationTable.tsx:148 +#: src/tables/sales/SalesOrderShipmentTable.tsx:108 +#: src/tables/sales/SalesOrderShipmentTable.tsx:197 +msgid "Shipped" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:279 +#: src/tables/sales/SalesOrderShipmentTable.tsx:202 +msgid "Delivered" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:293 +msgid "Send Shipment" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:312 +msgid "Shipment Actions" +msgstr "" + +#: src/pages/stock/LocationDetail.tsx:111 msgid "Parent Location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:135 +#: src/pages/stock/LocationDetail.tsx:129 msgid "Sublocations" msgstr "" -#: src/pages/stock/LocationDetail.tsx:147 +#: src/pages/stock/LocationDetail.tsx:141 #: src/tables/stock/StockLocationTable.tsx:54 msgid "External" msgstr "" -#: src/pages/stock/LocationDetail.tsx:153 +#: src/pages/stock/LocationDetail.tsx:147 #: src/tables/stock/StockLocationTable.tsx:63 msgid "Location Type" msgstr "" -#: src/pages/stock/LocationDetail.tsx:164 +#: src/pages/stock/LocationDetail.tsx:158 msgid "Top level stock location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:175 +#: src/pages/stock/LocationDetail.tsx:169 msgid "Location Details" msgstr "" -#: src/pages/stock/LocationDetail.tsx:201 +#: src/pages/stock/LocationDetail.tsx:195 msgid "Default Parts" msgstr "" -#: src/pages/stock/LocationDetail.tsx:220 -#: src/pages/stock/LocationDetail.tsx:351 +#: src/pages/stock/LocationDetail.tsx:214 +#: src/pages/stock/LocationDetail.tsx:336 #: src/tables/stock/StockLocationTable.tsx:123 msgid "Edit Stock Location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:241 -#: src/pages/stock/LocationDetail.tsx:356 +#: src/pages/stock/LocationDetail.tsx:235 +#: src/pages/stock/LocationDetail.tsx:341 msgid "Delete Stock Location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:244 +#: src/pages/stock/LocationDetail.tsx:238 msgid "Items Action" msgstr "" -#: src/pages/stock/LocationDetail.tsx:245 +#: src/pages/stock/LocationDetail.tsx:239 msgid "Action for stock items in this location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:250 +#: src/pages/stock/LocationDetail.tsx:244 msgid "Child Locations Action" msgstr "" -#: src/pages/stock/LocationDetail.tsx:251 +#: src/pages/stock/LocationDetail.tsx:245 msgid "Action for child locations in this location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:346 +#: src/pages/stock/LocationDetail.tsx:332 msgid "Location Actions" msgstr "" -#: src/pages/stock/StockDetail.tsx:108 +#: src/pages/stock/StockDetail.tsx:116 msgid "Base Part" msgstr "" -#: src/pages/stock/StockDetail.tsx:115 -msgid "Stock Status" -msgstr "" - #: src/pages/stock/StockDetail.tsx:155 #~ msgid "Link custom barcode to stock item" #~ msgstr "Link custom barcode to stock item" @@ -5312,113 +6285,179 @@ msgstr "" #~ msgid "Unlink custom barcode from stock item" #~ msgstr "Unlink custom barcode from stock item" -#: src/pages/stock/StockDetail.tsx:188 -msgid "Installed In" -msgstr "" - -#: src/pages/stock/StockDetail.tsx:204 -msgid "Consumed By" +#: src/pages/stock/StockDetail.tsx:178 +msgid "Allocated to Orders" msgstr "" #: src/pages/stock/StockDetail.tsx:205 #~ msgid "Edit stock item" #~ msgstr "Edit stock item" -#: src/pages/stock/StockDetail.tsx:213 -#: src/tables/build/BuildAllocatedStockTable.tsx:64 -#: src/tables/stock/StockTrackingTable.tsx:96 -msgid "Build Order" +#: src/pages/stock/StockDetail.tsx:209 +msgid "Installed In" msgstr "" #: src/pages/stock/StockDetail.tsx:217 #~ msgid "Delete stock item" #~ msgstr "Delete stock item" -#: src/pages/stock/StockDetail.tsx:291 +#: src/pages/stock/StockDetail.tsx:226 +msgid "Parent Item" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:230 +msgid "Parent stock item" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:236 +msgid "Consumed By" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:245 +#: src/tables/build/BuildAllocatedStockTable.tsx:77 +#: src/tables/stock/StockTrackingTable.tsx:100 +msgid "Build Order" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:283 +#: src/tables/stock/StockItemTable.tsx:270 +msgid "Expiry Date" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:414 msgid "Stock Details" msgstr "" -#: src/pages/stock/StockDetail.tsx:297 +#: src/pages/stock/StockDetail.tsx:420 msgid "Stock Tracking" msgstr "" -#: src/pages/stock/StockDetail.tsx:350 -msgid "Test Data" -msgstr "" - -#: src/pages/stock/StockDetail.tsx:364 -msgid "Installed Items" -msgstr "" - -#: src/pages/stock/StockDetail.tsx:371 -msgid "Child Items" -msgstr "" - -#: src/pages/stock/StockDetail.tsx:425 -msgid "Edit Stock Item" -msgstr "" - #: src/pages/stock/StockDetail.tsx:433 #~ msgid "Duplicate stock item" #~ msgstr "Duplicate stock item" -#: src/pages/stock/StockDetail.tsx:452 +#: src/pages/stock/StockDetail.tsx:475 +msgid "Test Data" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:489 +msgid "Installed Items" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:496 +msgid "Child Items" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:545 +msgid "Edit Stock Item" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:572 msgid "Delete Stock Item" msgstr "" -#: src/pages/stock/StockDetail.tsx:504 +#: src/pages/stock/StockDetail.tsx:604 +msgid "Serialize Stock Item" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:617 +msgid "Stock item serialized" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:623 +msgid "Return Stock Item" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:626 +msgid "Return this item into stock. This will remove the customer assignment." +msgstr "" + +#: src/pages/stock/StockDetail.tsx:636 +msgid "Item returned to stock" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:666 msgid "Stock Operations" msgstr "" -#: src/pages/stock/StockDetail.tsx:509 +#: src/pages/stock/StockDetail.tsx:671 msgid "Count stock" msgstr "" -#: src/pages/stock/StockDetail.tsx:519 -#: src/tables/stock/StockItemTable.tsx:449 -msgid "Add stock" +#: src/pages/stock/StockDetail.tsx:671 +#: src/tables/stock/StockItemTable.tsx:452 +#~ msgid "Add stock" +#~ msgstr "Add stock" + +#: src/pages/stock/StockDetail.tsx:680 +#: src/tables/stock/StockItemTable.tsx:461 +#~ msgid "Remove stock" +#~ msgstr "Remove stock" + +#: src/pages/stock/StockDetail.tsx:698 +#: src/tables/stock/StockItemTable.tsx:481 +#~ msgid "Transfer stock" +#~ msgstr "Transfer stock" + +#: src/pages/stock/StockDetail.tsx:699 +msgid "Serialize" msgstr "" -#: src/pages/stock/StockDetail.tsx:527 -#: src/tables/stock/StockItemTable.tsx:458 -msgid "Remove stock" +#: src/pages/stock/StockDetail.tsx:700 +msgid "Serialize stock" msgstr "" -#: src/pages/stock/StockDetail.tsx:534 +#: src/pages/stock/StockDetail.tsx:711 msgid "Transfer" msgstr "" -#: src/pages/stock/StockDetail.tsx:535 -#: src/tables/stock/StockItemTable.tsx:478 -msgid "Transfer stock" +#: src/pages/stock/StockDetail.tsx:722 +msgid "Return" msgstr "" -#: src/pages/stock/StockDetail.tsx:546 +#: src/pages/stock/StockDetail.tsx:723 +msgid "Return from customer" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:738 msgid "Stock Item Actions" msgstr "" -#: src/tables/ColumnRenderers.tsx:30 +#: src/pages/stock/StockDetail.tsx:808 +msgid "Stale" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:814 +msgid "Expired" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:820 +msgid "Unavailable" +msgstr "" + +#: src/tables/ColumnRenderers.tsx:36 msgid "Part is not active" msgstr "" -#: src/tables/ColumnRenderers.tsx:35 -msgid "Part is locked" +#: src/tables/ColumnRenderers.tsx:41 +#: src/tables/bom/BomTable.tsx:542 +#: src/tables/part/PartParameterTable.tsx:193 +#: src/tables/part/PartTestTemplateTable.tsx:253 +msgid "Part is Locked" msgstr "" -#: src/tables/ColumnRenderers.tsx:57 +#: src/tables/ColumnRenderers.tsx:41 +#~ msgid "Part is locked" +#~ msgstr "Part is locked" + +#: src/tables/ColumnRenderers.tsx:46 +msgid "You are subscribed to notifications for this part" +msgstr "" + +#: src/tables/ColumnRenderers.tsx:68 msgid "No location set" msgstr "" -#: src/tables/ColumnRenderers.tsx:228 -#: src/tables/sales/SalesOrderShipmentTable.tsx:79 -msgid "Shipment Date" -msgstr "" - -#: src/tables/ColumnRenderers.tsx:248 -#: src/tables/settings/CurrencyTable.tsx:23 -msgid "Currency" -msgstr "" - #: src/tables/ColumnSelect.tsx:16 #: src/tables/ColumnSelect.tsx:23 msgid "Select Columns" @@ -5452,91 +6491,116 @@ msgstr "" msgid "Download Data" msgstr "" -#: src/tables/Filter.tsx:89 -#: src/tables/build/BuildOrderTable.tsx:135 +#: src/tables/Filter.tsx:101 msgid "Assigned to me" msgstr "" -#: src/tables/Filter.tsx:90 -#: src/tables/build/BuildOrderTable.tsx:136 +#: src/tables/Filter.tsx:102 msgid "Show orders assigned to me" msgstr "" -#: src/tables/Filter.tsx:97 +#: src/tables/Filter.tsx:106 +#~ msgid "Show overdue orders" +#~ msgstr "Show overdue orders" + +#: src/tables/Filter.tsx:109 +#: src/tables/build/BuildOrderTable.tsx:120 +#: src/tables/sales/SalesOrderAllocationTable.tsx:59 msgid "Outstanding" msgstr "" -#: src/tables/Filter.tsx:98 -msgid "Show outstanding orders" +#: src/tables/Filter.tsx:110 +msgid "Show outstanding items" msgstr "" -#: src/tables/Filter.tsx:105 -#: src/tables/build/BuildOrderTable.tsx:128 +#: src/tables/Filter.tsx:117 msgid "Overdue" msgstr "" -#: src/tables/Filter.tsx:106 -msgid "Show overdue orders" +#: src/tables/Filter.tsx:118 +msgid "Show overdue items" msgstr "" -#: src/tables/FilterSelectDrawer.tsx:51 +#: src/tables/Filter.tsx:125 +msgid "Minimum Date" +msgstr "" + +#: src/tables/Filter.tsx:126 +msgid "Show items after this date" +msgstr "" + +#: src/tables/Filter.tsx:134 +msgid "Maximum Date" +msgstr "" + +#: src/tables/Filter.tsx:135 +msgid "Show items before this date" +msgstr "" + +#: src/tables/Filter.tsx:144 +msgid "Has Project Code" +msgstr "" + +#: src/tables/Filter.tsx:145 +msgid "Show orders with an assigned project code" +msgstr "" + +#: src/tables/FilterSelectDrawer.tsx:55 msgid "Remove filter" msgstr "" -#: src/tables/FilterSelectDrawer.tsx:130 +#: src/tables/FilterSelectDrawer.tsx:159 msgid "Select filter" msgstr "" -#: src/tables/FilterSelectDrawer.tsx:131 +#: src/tables/FilterSelectDrawer.tsx:160 msgid "Filter" msgstr "" -#: src/tables/FilterSelectDrawer.tsx:138 -#: src/tables/build/BuildOrderTestTable.tsx:134 -#: src/tables/purchasing/ManufacturerPartParameterTable.tsx:38 -#: src/tables/stock/StockItemTestResultTable.tsx:186 -msgid "Value" +#: src/tables/FilterSelectDrawer.tsx:168 +msgid "Select date value" msgstr "" -#: src/tables/FilterSelectDrawer.tsx:140 +#: src/tables/FilterSelectDrawer.tsx:176 msgid "Select filter value" msgstr "" -#: src/tables/FilterSelectDrawer.tsx:183 +#: src/tables/FilterSelectDrawer.tsx:219 +#: src/tables/InvenTreeTableHeader.tsx:214 msgid "Table Filters" msgstr "" -#: src/tables/FilterSelectDrawer.tsx:215 +#: src/tables/FilterSelectDrawer.tsx:251 msgid "Add Filter" msgstr "" -#: src/tables/FilterSelectDrawer.tsx:224 +#: src/tables/FilterSelectDrawer.tsx:260 msgid "Clear Filters" msgstr "" -#: src/tables/InvenTreeTable.tsx:123 -#: src/tables/InvenTreeTable.tsx:431 -#: src/tables/InvenTreeTable.tsx:455 +#: src/tables/InvenTreeTable.tsx:96 +#: src/tables/InvenTreeTable.tsx:417 +#: src/tables/InvenTreeTable.tsx:441 msgid "No records found" msgstr "" -#: src/tables/InvenTreeTable.tsx:466 +#: src/tables/InvenTreeTable.tsx:452 msgid "Server returned incorrect data type" msgstr "" -#: src/tables/InvenTreeTable.tsx:474 +#: src/tables/InvenTreeTable.tsx:460 msgid "Bad request" msgstr "" -#: src/tables/InvenTreeTable.tsx:477 +#: src/tables/InvenTreeTable.tsx:463 msgid "Unauthorized" msgstr "" -#: src/tables/InvenTreeTable.tsx:480 +#: src/tables/InvenTreeTable.tsx:466 msgid "Forbidden" msgstr "" -#: src/tables/InvenTreeTable.tsx:483 +#: src/tables/InvenTreeTable.tsx:469 msgid "Not found" msgstr "" @@ -5544,18 +6608,6 @@ msgstr "" #~ msgid "Are you sure you want to delete the selected records?" #~ msgstr "Are you sure you want to delete the selected records?" -#: src/tables/InvenTreeTable.tsx:525 -msgid "Delete Selected Items" -msgstr "" - -#: src/tables/InvenTreeTable.tsx:529 -msgid "Are you sure you want to delete the selected items?" -msgstr "" - -#: src/tables/InvenTreeTable.tsx:531 -msgid "This action cannot be undone!" -msgstr "" - #: src/tables/InvenTreeTable.tsx:535 #~ msgid "Deleted records" #~ msgstr "Deleted records" @@ -5568,31 +6620,56 @@ msgstr "" #~ msgid "Failed to delete records" #~ msgstr "Failed to delete records" +#: src/tables/InvenTreeTable.tsx:552 +#~ msgid "This action cannot be undone!" +#~ msgstr "This action cannot be undone!" + #: src/tables/InvenTreeTable.tsx:594 #: src/tables/InvenTreeTable.tsx:595 #~ msgid "Print actions" #~ msgstr "Print actions" -#: src/tables/InvenTreeTable.tsx:618 -#: src/tables/InvenTreeTable.tsx:619 -msgid "Barcode actions" +#: src/tables/InvenTreeTable.tsx:655 +#: src/tables/InvenTreeTable.tsx:656 +#~ msgid "Barcode actions" +#~ msgstr "Barcode actions" + +#: src/tables/InvenTreeTable.tsx:712 +#~ msgid "Table filters" +#~ msgstr "Table filters" + +#: src/tables/InvenTreeTable.tsx:725 +#~ msgid "Clear custom query filters" +#~ msgstr "Clear custom query filters" + +#: src/tables/InvenTreeTableHeader.tsx:98 +msgid "Delete Selected Items" msgstr "" -#: src/tables/InvenTreeTable.tsx:628 +#: src/tables/InvenTreeTableHeader.tsx:102 +msgid "Are you sure you want to delete the selected items?" +msgstr "" + +#: src/tables/InvenTreeTableHeader.tsx:104 +#: src/tables/plugin/PluginListTable.tsx:305 +msgid "This action cannot be undone" +msgstr "" + +#: src/tables/InvenTreeTableHeader.tsx:142 +msgid "Custom table filters are active" +msgstr "" + +#: src/tables/InvenTreeTableHeader.tsx:169 msgid "Delete selected records" msgstr "" -#: src/tables/InvenTreeTable.tsx:649 +#: src/tables/InvenTreeTableHeader.tsx:188 msgid "Refresh data" msgstr "" -#: src/tables/InvenTreeTable.tsx:675 -msgid "Table filters" -msgstr "" - #: src/tables/TableHoverCard.tsx:35 -msgid "item-{idx}" -msgstr "" +#~ msgid "item-{idx}" +#~ msgstr "item-{idx}" #: src/tables/UploadAction.tsx:7 #~ msgid "Upload Data" @@ -5607,31 +6684,36 @@ msgid "Part Information" msgstr "" #: src/tables/bom/BomTable.tsx:212 -#: src/tables/build/BuildLineTable.tsx:126 +#: src/tables/build/BuildLineTable.tsx:257 #: src/tables/part/PartTable.tsx:125 msgid "External stock" msgstr "" #: src/tables/bom/BomTable.tsx:220 -#: src/tables/build/BuildLineTable.tsx:89 +#: src/tables/build/BuildLineTable.tsx:220 msgid "Includes substitute stock" msgstr "" #: src/tables/bom/BomTable.tsx:229 -#: src/tables/build/BuildLineTable.tsx:99 -#: src/tables/sales/SalesOrderLineItemTable.tsx:127 +#: src/tables/build/BuildLineTable.tsx:230 +#: src/tables/sales/SalesOrderLineItemTable.tsx:135 msgid "Includes variant stock" msgstr "" +#: src/tables/bom/BomTable.tsx:245 +#: src/tables/part/PartTable.tsx:92 +msgid "Building" +msgstr "" + #: src/tables/bom/BomTable.tsx:254 #: src/tables/part/PartTable.tsx:153 -#: src/tables/sales/SalesOrderLineItemTable.tsx:150 -#: src/tables/stock/StockItemTable.tsx:216 +#: src/tables/sales/SalesOrderLineItemTable.tsx:158 +#: src/tables/stock/StockItemTable.tsx:206 msgid "Stock Information" msgstr "" #: src/tables/bom/BomTable.tsx:285 -#: src/tables/build/BuildLineTable.tsx:248 +#: src/tables/build/BuildLineTable.tsx:409 msgid "Consumable item" msgstr "" @@ -5644,7 +6726,7 @@ msgstr "" #~ msgstr "Create BOM Item" #: src/tables/bom/BomTable.tsx:306 -#: src/tables/build/BuildLineTable.tsx:69 +#: src/tables/build/BuildLineTable.tsx:200 msgid "Show testable items" msgstr "" @@ -5657,11 +6739,12 @@ msgid "Show trackable items" msgstr "" #: src/tables/bom/BomTable.tsx:316 -#: src/tables/build/BuildLineTable.tsx:64 +#: src/tables/build/BuildLineTable.tsx:195 msgid "Show assembled items" msgstr "" #: src/tables/bom/BomTable.tsx:321 +#: src/tables/build/BuildLineTable.tsx:180 msgid "Show items with available stock" msgstr "" @@ -5705,7 +6788,7 @@ msgstr "" #: src/tables/bom/BomTable.tsx:345 #: src/tables/bom/UsedInTable.tsx:79 -#: src/tables/build/BuildLineTable.tsx:58 +#: src/tables/build/BuildLineTable.tsx:189 msgid "Optional" msgstr "" @@ -5723,7 +6806,7 @@ msgstr "" #~ msgstr "Bom item deleted" #: src/tables/bom/BomTable.tsx:350 -#: src/tables/build/BuildLineTable.tsx:53 +#: src/tables/build/BuildLineTable.tsx:184 msgid "Consumable" msgstr "" @@ -5749,12 +6832,12 @@ msgid "Show items with pricing" msgstr "" #: src/tables/bom/BomTable.tsx:378 -#: src/tables/bom/BomTable.tsx:511 +#: src/tables/bom/BomTable.tsx:512 msgid "Import BOM Data" msgstr "" #: src/tables/bom/BomTable.tsx:388 -#: src/tables/bom/BomTable.tsx:523 +#: src/tables/bom/BomTable.tsx:526 msgid "Add BOM Item" msgstr "" @@ -5780,7 +6863,7 @@ msgstr "" #: src/tables/bom/BomTable.tsx:423 #: src/tables/bom/BomTable.tsx:426 -#: src/tables/bom/BomTable.tsx:517 +#: src/tables/bom/BomTable.tsx:519 msgid "Validate BOM" msgstr "" @@ -5812,21 +6895,15 @@ msgstr "" msgid "Edit Substitutes" msgstr "" -#: src/tables/bom/BomTable.tsx:539 -#: src/tables/part/PartParameterTable.tsx:193 -#: src/tables/part/PartTestTemplateTable.tsx:252 -msgid "Part is Locked" -msgstr "" - -#: src/tables/bom/BomTable.tsx:544 +#: src/tables/bom/BomTable.tsx:547 msgid "Bill of materials cannot be edited, as the part is locked" -msgstr "" +msgstr "לא ניתן לערוך את כתב החומרים, מכיוון שהפריט נעול" #: src/tables/bom/UsedInTable.tsx:33 -#: src/tables/build/BuildLineTable.tsx:63 +#: src/tables/build/BuildLineTable.tsx:194 #: src/tables/part/ParametricPartTable.tsx:233 #: src/tables/part/PartTable.tsx:190 -#: src/tables/stock/StockItemTable.tsx:300 +#: src/tables/stock/StockItemTable.tsx:304 msgid "Assembly" msgstr "" @@ -5838,291 +6915,353 @@ msgstr "" #: src/tables/part/PartTable.tsx:214 #: src/tables/part/PartVariantTable.tsx:30 msgid "Trackable" -msgstr "" +msgstr "ניתן למעקב" #: src/tables/bom/UsedInTable.tsx:90 msgid "Show trackable assemblies" msgstr "" -#: src/tables/build/BuildAllocatedStockTable.tsx:54 +#: src/tables/build/BuildAllocatedStockTable.tsx:56 msgid "Allocated to Output" msgstr "" -#: src/tables/build/BuildAllocatedStockTable.tsx:55 +#: src/tables/build/BuildAllocatedStockTable.tsx:57 msgid "Show items allocated to a build output" +msgstr "הצג מכלולים שניתנים למעקב" + +#: src/tables/build/BuildAllocatedStockTable.tsx:65 +#: src/tables/build/BuildOrderTable.tsx:159 +#: src/tables/part/PartParameterTable.tsx:212 +#: src/tables/part/PartPurchaseOrdersTable.tsx:138 +#: src/tables/sales/ReturnOrderTable.tsx:84 +#: src/tables/sales/SalesOrderAllocationTable.tsx:68 +#: src/tables/sales/SalesOrderTable.tsx:84 +#: src/tables/stock/StockItemTable.tsx:339 +msgid "Include Variants" msgstr "" -#: src/tables/build/BuildAllocatedStockTable.tsx:76 -#: src/tables/part/PartPurchaseOrdersTable.tsx:125 -#: src/tables/sales/SalesOrderAllocationTable.tsx:62 +#: src/tables/build/BuildAllocatedStockTable.tsx:66 +#: src/tables/build/BuildOrderTable.tsx:160 +#: src/tables/part/PartPurchaseOrdersTable.tsx:139 +#: src/tables/sales/ReturnOrderTable.tsx:85 +#: src/tables/sales/SalesOrderAllocationTable.tsx:69 +#: src/tables/sales/SalesOrderTable.tsx:85 +msgid "Include orders for part variants" +msgstr "" + +#: src/tables/build/BuildAllocatedStockTable.tsx:89 +#: src/tables/part/PartPurchaseOrdersTable.tsx:131 +#: src/tables/sales/SalesOrderAllocationTable.tsx:93 msgid "Order Status" msgstr "" -#: src/tables/build/BuildAllocatedStockTable.tsx:96 -#: src/tables/sales/SalesOrderAllocationTable.tsx:75 +#: src/tables/build/BuildAllocatedStockTable.tsx:117 +#: src/tables/sales/SalesOrderAllocationTable.tsx:126 msgid "Allocated Quantity" msgstr "" -#: src/tables/build/BuildAllocatedStockTable.tsx:116 -#: src/tables/sales/SalesOrderAllocationTable.tsx:94 +#: src/tables/build/BuildAllocatedStockTable.tsx:137 +#: src/tables/sales/SalesOrderAllocationTable.tsx:120 msgid "Available Quantity" msgstr "" -#: src/tables/build/BuildAllocatedStockTable.tsx:126 -#: src/tables/build/BuildOrderTestTable.tsx:176 -#: src/tables/build/BuildOrderTestTable.tsx:200 -#: src/tables/build/BuildOutputTable.tsx:312 -msgid "Build Output" +#: src/tables/build/BuildAllocatedStockTable.tsx:164 +#: src/tables/build/BuildLineTable.tsx:513 +msgid "Edit Stock Allocation" msgstr "" -#: src/tables/build/BuildAllocatedStockTable.tsx:143 -msgid "Edit Build Item" -msgstr "" +#: src/tables/build/BuildAllocatedStockTable.tsx:164 +#~ msgid "Edit Build Item" +#~ msgstr "Edit Build Item" -#: src/tables/build/BuildAllocatedStockTable.tsx:153 -msgid "Delete Build Item" -msgstr "" +#: src/tables/build/BuildAllocatedStockTable.tsx:174 +#~ msgid "Delete Build Item" +#~ msgstr "Delete Build Item" -#: src/tables/build/BuildLineTable.tsx:43 -#: src/tables/stock/StockItemTable.tsx:305 -msgid "Allocated" -msgstr "" - -#: src/tables/build/BuildLineTable.tsx:44 -msgid "Show allocated lines" -msgstr "" - -#: src/tables/build/BuildLineTable.tsx:49 -msgid "Show lines with available stock" -msgstr "" - -#: src/tables/build/BuildLineTable.tsx:54 -msgid "Show consumable lines" +#: src/tables/build/BuildAllocatedStockTable.tsx:177 +#: src/tables/build/BuildLineTable.tsx:526 +msgid "Delete Stock Allocation" msgstr "" #: src/tables/build/BuildLineTable.tsx:59 +#~ msgid "Show lines with available stock" +#~ msgstr "Show lines with available stock" + +#: src/tables/build/BuildLineTable.tsx:175 +msgid "Show allocated lines" +msgstr "" + +#: src/tables/build/BuildLineTable.tsx:185 +msgid "Show consumable lines" +msgstr "" + +#: src/tables/build/BuildLineTable.tsx:190 msgid "Show optional lines" msgstr "" -#: src/tables/build/BuildLineTable.tsx:68 +#: src/tables/build/BuildLineTable.tsx:199 #: src/tables/part/PartTable.tsx:208 msgid "Testable" msgstr "" -#: src/tables/build/BuildLineTable.tsx:73 -#: src/tables/stock/StockItemTable.tsx:364 +#: src/tables/build/BuildLineTable.tsx:204 +#: src/tables/stock/StockItemTable.tsx:368 msgid "Tracked" msgstr "" -#: src/tables/build/BuildLineTable.tsx:74 +#: src/tables/build/BuildLineTable.tsx:205 msgid "Show tracked lines" msgstr "" -#: src/tables/build/BuildLineTable.tsx:108 -#: src/tables/sales/SalesOrderLineItemTable.tsx:133 +#: src/tables/build/BuildLineTable.tsx:239 +#: src/tables/sales/SalesOrderLineItemTable.tsx:141 msgid "In production" msgstr "" -#: src/tables/build/BuildLineTable.tsx:136 +#: src/tables/build/BuildLineTable.tsx:267 msgid "Insufficient stock" msgstr "" -#: src/tables/build/BuildLineTable.tsx:152 -#: src/tables/sales/SalesOrderLineItemTable.tsx:121 -#: src/tables/stock/StockItemTable.tsx:186 +#: src/tables/build/BuildLineTable.tsx:283 +#: src/tables/sales/SalesOrderLineItemTable.tsx:129 +#: src/tables/stock/StockItemTable.tsx:175 msgid "No stock available" msgstr "" -#: src/tables/build/BuildLineTable.tsx:201 +#: src/tables/build/BuildLineTable.tsx:355 msgid "Gets Inherited" msgstr "" -#: src/tables/build/BuildLineTable.tsx:210 +#: src/tables/build/BuildLineTable.tsx:366 msgid "Unit Quantity" msgstr "" -#: src/tables/build/BuildLineTable.tsx:267 -#: src/tables/sales/SalesOrderLineItemTable.tsx:230 +#: src/tables/build/BuildLineTable.tsx:381 +msgid "Required Quantity" +msgstr "" + +#: src/tables/build/BuildLineTable.tsx:432 +#: src/tables/sales/SalesOrderLineItemTable.tsx:254 msgid "Create Build Order" msgstr "" -#: src/tables/build/BuildLineTable.tsx:298 -msgid "Allocate Stock" +#: src/tables/build/BuildLineTable.tsx:460 +msgid "Auto allocation in progress" msgstr "" -#: src/tables/build/BuildLineTable.tsx:305 +#: src/tables/build/BuildLineTable.tsx:463 +#: src/tables/build/BuildLineTable.tsx:632 +msgid "Auto Allocate Stock" +msgstr "" + +#: src/tables/build/BuildLineTable.tsx:464 +msgid "Automatically allocate stock to this build according to the selected options" +msgstr "" + +#: src/tables/build/BuildLineTable.tsx:482 +#: src/tables/build/BuildLineTable.tsx:496 +#: src/tables/build/BuildLineTable.tsx:579 +#: src/tables/build/BuildLineTable.tsx:664 +#: src/tables/build/BuildOutputTable.tsx:314 +#: src/tables/build/BuildOutputTable.tsx:319 +msgid "Deallocate Stock" +msgstr "" + +#: src/tables/build/BuildLineTable.tsx:498 +msgid "Deallocate all untracked stock for this build order" +msgstr "" + +#: src/tables/build/BuildLineTable.tsx:500 +msgid "Deallocate stock from the selected line item" +msgstr "" + +#: src/tables/build/BuildLineTable.tsx:504 +msgid "Stock has been deallocated" +msgstr "" + +#: src/tables/build/BuildLineTable.tsx:589 msgid "Order Stock" msgstr "" -#: src/tables/build/BuildLineTable.tsx:312 +#: src/tables/build/BuildLineTable.tsx:596 msgid "Build Stock" msgstr "" -#: src/tables/build/BuildOrderTable.tsx:111 -msgid "Show active orders" +#: src/tables/build/BuildLineTable.tsx:610 +msgid "View Part" msgstr "" #: src/tables/build/BuildOrderTable.tsx:116 -msgid "Cascade" -msgstr "" +#~ msgid "Cascade" +#~ msgstr "Cascade" #: src/tables/build/BuildOrderTable.tsx:117 -msgid "Display recursive child orders" +#~ msgid "Display recursive child orders" +#~ msgstr "Display recursive child orders" + +#: src/tables/build/BuildOrderTable.tsx:121 +msgid "Show outstanding orders" msgstr "" -#: src/tables/build/BuildOrderTable.tsx:123 -#: src/tables/part/PartPurchaseOrdersTable.tsx:126 -#: src/tables/purchasing/PurchaseOrderTable.tsx:56 -#: src/tables/sales/ReturnOrderTable.tsx:47 -#: src/tables/sales/SalesOrderTable.tsx:54 +#: src/tables/build/BuildOrderTable.tsx:121 +#~ msgid "Show active orders" +#~ msgstr "Show active orders" + +#: src/tables/build/BuildOrderTable.tsx:122 +#~ msgid "Show overdue status" +#~ msgstr "Show overdue status" + +#: src/tables/build/BuildOrderTable.tsx:126 +#: src/tables/part/PartPurchaseOrdersTable.tsx:132 +#: src/tables/purchasing/PurchaseOrderTable.tsx:59 +#: src/tables/sales/ReturnOrderTable.tsx:57 +#: src/tables/sales/SalesOrderTable.tsx:57 msgid "Filter by order status" msgstr "" -#: src/tables/build/BuildOrderTable.tsx:130 -msgid "Show overdue status" -msgstr "" - -#: src/tables/build/BuildOrderTable.tsx:141 -#: src/tables/purchasing/PurchaseOrderTable.tsx:65 -#: src/tables/sales/ReturnOrderTable.tsx:56 -#: src/tables/sales/SalesOrderTable.tsx:63 +#: src/tables/build/BuildOrderTable.tsx:136 +#: src/tables/purchasing/PurchaseOrderTable.tsx:70 +#: src/tables/sales/ReturnOrderTable.tsx:68 +#: src/tables/sales/SalesOrderTable.tsx:68 msgid "Filter by project code" msgstr "" -#: src/tables/build/BuildOrderTable.tsx:146 -#: src/tables/purchasing/PurchaseOrderTable.tsx:70 -#: src/tables/sales/ReturnOrderTable.tsx:61 -#: src/tables/sales/SalesOrderTable.tsx:68 -msgid "Has Project Code" -msgstr "" - -#: src/tables/build/BuildOrderTable.tsx:147 +#: src/tables/build/BuildOrderTable.tsx:139 #: src/tables/purchasing/PurchaseOrderTable.tsx:71 #: src/tables/sales/ReturnOrderTable.tsx:62 #: src/tables/sales/SalesOrderTable.tsx:69 -msgid "Filter by whether the purchase order has a project code" -msgstr "" +#~ msgid "Filter by whether the purchase order has a project code" +#~ msgstr "Filter by whether the purchase order has a project code" -#: src/tables/build/BuildOrderTable.tsx:152 +#: src/tables/build/BuildOrderTable.tsx:143 msgid "Filter by user who issued this order" msgstr "" -#: src/tables/build/BuildOrderTable.tsx:158 -#: src/tables/purchasing/PurchaseOrderTable.tsx:76 -#: src/tables/sales/ReturnOrderTable.tsx:67 -#: src/tables/sales/SalesOrderTable.tsx:74 +#: src/tables/build/BuildOrderTable.tsx:149 +#: src/tables/purchasing/PurchaseOrderTable.tsx:77 +#: src/tables/sales/ReturnOrderTable.tsx:75 +#: src/tables/sales/SalesOrderTable.tsx:75 msgid "Filter by responsible owner" msgstr "" -#: src/tables/build/BuildOrderTestTable.tsx:75 -#: src/tables/build/BuildOrderTestTable.tsx:111 -#: src/tables/stock/StockItemTestResultTable.tsx:257 -#: src/tables/stock/StockItemTestResultTable.tsx:329 -#: src/tables/stock/StockItemTestResultTable.tsx:384 +#: src/tables/build/BuildOrderTestTable.tsx:76 +#: src/tables/build/BuildOrderTestTable.tsx:112 +#: src/tables/stock/StockItemTestResultTable.tsx:275 +#: src/tables/stock/StockItemTestResultTable.tsx:347 +#: src/tables/stock/StockItemTestResultTable.tsx:403 msgid "Add Test Result" msgstr "" -#: src/tables/build/BuildOrderTestTable.tsx:82 -#: src/tables/stock/StockItemTestResultTable.tsx:259 +#: src/tables/build/BuildOrderTestTable.tsx:83 +#: src/tables/stock/StockItemTestResultTable.tsx:277 msgid "Test result added" msgstr "" -#: src/tables/build/BuildOrderTestTable.tsx:110 -#: src/tables/stock/StockItemTestResultTable.tsx:174 +#: src/tables/build/BuildOrderTestTable.tsx:111 +#: src/tables/stock/StockItemTestResultTable.tsx:180 msgid "No Result" msgstr "" -#: src/tables/build/BuildOrderTestTable.tsx:220 +#: src/tables/build/BuildOrderTestTable.tsx:221 msgid "Show build outputs currently in production" msgstr "" +#: src/tables/build/BuildOutputTable.tsx:76 +msgid "Build Output Stock Allocation" +msgstr "" + #: src/tables/build/BuildOutputTable.tsx:161 #~ msgid "Delete build output" #~ msgstr "Delete build output" -#: src/tables/build/BuildOutputTable.tsx:173 -#: src/tables/build/BuildOutputTable.tsx:211 +#: src/tables/build/BuildOutputTable.tsx:258 +#: src/tables/build/BuildOutputTable.tsx:374 msgid "Add Build Output" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:216 +#: src/tables/build/BuildOutputTable.tsx:304 +#~ msgid "Edit build output" +#~ msgstr "Edit build output" + +#: src/tables/build/BuildOutputTable.tsx:306 +#: src/tables/build/BuildOutputTable.tsx:417 +msgid "Edit Build Output" +msgstr "" + +#: src/tables/build/BuildOutputTable.tsx:321 +msgid "This action will deallocate all stock from the selected build output" +msgstr "" + +#: src/tables/build/BuildOutputTable.tsx:341 msgid "Complete selected outputs" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:226 +#: src/tables/build/BuildOutputTable.tsx:352 msgid "Scrap selected outputs" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:236 +#: src/tables/build/BuildOutputTable.tsx:363 msgid "Cancel selected outputs" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:252 +#: src/tables/build/BuildOutputTable.tsx:385 msgid "Allocate" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:253 +#: src/tables/build/BuildOutputTable.tsx:386 msgid "Allocate stock to build output" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:259 +#: src/tables/build/BuildOutputTable.tsx:396 msgid "Deallocate" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:260 +#: src/tables/build/BuildOutputTable.tsx:397 msgid "Deallocate stock from build output" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:267 +#: src/tables/build/BuildOutputTable.tsx:408 msgid "Complete build output" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:276 +#: src/tables/build/BuildOutputTable.tsx:424 msgid "Scrap" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:277 +#: src/tables/build/BuildOutputTable.tsx:425 msgid "Scrap build output" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:280 -#~ msgid "Allocated Items" -#~ msgstr "Allocated Items" - -#: src/tables/build/BuildOutputTable.tsx:287 +#: src/tables/build/BuildOutputTable.tsx:435 msgid "Cancel build output" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:325 -msgid "Batch" -msgstr "" - -#: src/tables/build/BuildOutputTable.tsx:340 +#: src/tables/build/BuildOutputTable.tsx:488 msgid "Allocated Lines" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:355 +#: src/tables/build/BuildOutputTable.tsx:503 msgid "Required Tests" msgstr "" -#: src/tables/company/AddressTable.tsx:121 -#: src/tables/company/AddressTable.tsx:185 +#: src/tables/company/AddressTable.tsx:118 +#: src/tables/company/AddressTable.tsx:183 msgid "Add Address" msgstr "" -#: src/tables/company/AddressTable.tsx:126 +#: src/tables/company/AddressTable.tsx:123 msgid "Address created" msgstr "" -#: src/tables/company/AddressTable.tsx:135 +#: src/tables/company/AddressTable.tsx:132 msgid "Edit Address" msgstr "" -#: src/tables/company/AddressTable.tsx:143 +#: src/tables/company/AddressTable.tsx:140 msgid "Delete Address" msgstr "" -#: src/tables/company/AddressTable.tsx:144 +#: src/tables/company/AddressTable.tsx:141 msgid "Are you sure you want to delete this address?" msgstr "" @@ -6130,24 +7269,24 @@ msgstr "" #~ msgid "New Company" #~ msgstr "New Company" -#: src/tables/company/CompanyTable.tsx:74 -#: src/tables/company/CompanyTable.tsx:123 +#: src/tables/company/CompanyTable.tsx:75 +#: src/tables/company/CompanyTable.tsx:125 msgid "Add Company" msgstr "" -#: src/tables/company/CompanyTable.tsx:96 +#: src/tables/company/CompanyTable.tsx:97 msgid "Show active companies" msgstr "" -#: src/tables/company/CompanyTable.tsx:101 +#: src/tables/company/CompanyTable.tsx:102 msgid "Show companies which are suppliers" msgstr "" -#: src/tables/company/CompanyTable.tsx:106 +#: src/tables/company/CompanyTable.tsx:107 msgid "Show companies which are manufacturers" msgstr "" -#: src/tables/company/CompanyTable.tsx:111 +#: src/tables/company/CompanyTable.tsx:112 msgid "Show companies which are customers" msgstr "" @@ -6163,96 +7302,99 @@ msgstr "" msgid "Delete Contact" msgstr "" -#: src/tables/company/ContactTable.tsx:129 +#: src/tables/company/ContactTable.tsx:130 msgid "Add contact" msgstr "" -#: src/tables/general/AttachmentTable.tsx:130 +#: src/tables/general/AttachmentTable.tsx:135 msgid "File uploaded" msgstr "" -#: src/tables/general/AttachmentTable.tsx:131 +#: src/tables/general/AttachmentTable.tsx:136 msgid "File {0} uploaded successfully" msgstr "" -#: src/tables/general/AttachmentTable.tsx:142 +#: src/tables/general/AttachmentTable.tsx:147 msgid "Upload Error" msgstr "" -#: src/tables/general/AttachmentTable.tsx:143 +#: src/tables/general/AttachmentTable.tsx:148 msgid "File could not be uploaded" msgstr "" -#: src/tables/general/AttachmentTable.tsx:191 +#: src/tables/general/AttachmentTable.tsx:196 msgid "Upload Attachment" msgstr "" -#: src/tables/general/AttachmentTable.tsx:201 +#: src/tables/general/AttachmentTable.tsx:206 msgid "Edit Attachment" msgstr "" -#: src/tables/general/AttachmentTable.tsx:215 +#: src/tables/general/AttachmentTable.tsx:220 msgid "Delete Attachment" msgstr "" -#: src/tables/general/AttachmentTable.tsx:225 +#: src/tables/general/AttachmentTable.tsx:230 msgid "Is Link" msgstr "" -#: src/tables/general/AttachmentTable.tsx:226 +#: src/tables/general/AttachmentTable.tsx:231 msgid "Show link attachments" msgstr "" -#: src/tables/general/AttachmentTable.tsx:230 +#: src/tables/general/AttachmentTable.tsx:235 msgid "Is File" msgstr "" -#: src/tables/general/AttachmentTable.tsx:231 +#: src/tables/general/AttachmentTable.tsx:236 msgid "Show file attachments" msgstr "" -#: src/tables/general/AttachmentTable.tsx:240 +#: src/tables/general/AttachmentTable.tsx:245 msgid "Add attachment" msgstr "" -#: src/tables/general/AttachmentTable.tsx:251 -msgid "Add external link" -msgstr "" - #: src/tables/general/AttachmentTable.tsx:254 #~ msgid "Upload attachment" #~ msgstr "Upload attachment" -#: src/tables/general/AttachmentTable.tsx:299 +#: src/tables/general/AttachmentTable.tsx:256 +msgid "Add external link" +msgstr "" + +#: src/tables/general/AttachmentTable.tsx:304 msgid "No attachments found" msgstr "" -#: src/tables/general/AttachmentTable.tsx:337 +#: src/tables/general/AttachmentTable.tsx:343 msgid "Drag attachment file here to upload" msgstr "" #: src/tables/general/ExtraLineItemTable.tsx:86 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:251 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:60 -#: src/tables/sales/SalesOrderLineItemTable.tsx:196 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:263 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:362 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:72 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:168 +#: src/tables/sales/SalesOrderLineItemTable.tsx:206 +#: src/tables/sales/SalesOrderLineItemTable.tsx:291 msgid "Add Line Item" msgstr "" #: src/tables/general/ExtraLineItemTable.tsx:98 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:271 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:72 -#: src/tables/sales/SalesOrderLineItemTable.tsx:214 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:283 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:84 +#: src/tables/sales/SalesOrderLineItemTable.tsx:224 msgid "Edit Line Item" msgstr "" #: src/tables/general/ExtraLineItemTable.tsx:106 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:279 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:80 -#: src/tables/sales/SalesOrderLineItemTable.tsx:222 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:291 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:92 +#: src/tables/sales/SalesOrderLineItemTable.tsx:232 msgid "Delete Line Item" msgstr "" -#: src/tables/general/ExtraLineItemTable.tsx:142 +#: src/tables/general/ExtraLineItemTable.tsx:143 msgid "Add Extra Line Item" msgstr "" @@ -6261,12 +7403,12 @@ msgid "Machine restarted" msgstr "" #: src/tables/machine/MachineListTable.tsx:212 -#: src/tables/machine/MachineListTable.tsx:263 +#: src/tables/machine/MachineListTable.tsx:261 msgid "Edit machine" msgstr "" #: src/tables/machine/MachineListTable.tsx:226 -#: src/tables/machine/MachineListTable.tsx:267 +#: src/tables/machine/MachineListTable.tsx:265 msgid "Delete machine" msgstr "" @@ -6278,51 +7420,50 @@ msgstr "" msgid "Are you sure you want to remove the machine \"{0}\"?" msgstr "" -#: src/tables/machine/MachineListTable.tsx:255 -#: src/tables/machine/MachineListTable.tsx:432 +#: src/tables/machine/MachineListTable.tsx:254 +#: src/tables/machine/MachineListTable.tsx:442 msgid "Restart required" msgstr "" -#: src/tables/machine/MachineListTable.tsx:259 +#: src/tables/machine/MachineListTable.tsx:258 msgid "Machine Actions" msgstr "" -#: src/tables/machine/MachineListTable.tsx:272 +#: src/tables/machine/MachineListTable.tsx:270 msgid "Restart" msgstr "" -#: src/tables/machine/MachineListTable.tsx:274 +#: src/tables/machine/MachineListTable.tsx:272 msgid "Restart machine" msgstr "" -#: src/tables/machine/MachineListTable.tsx:276 +#: src/tables/machine/MachineListTable.tsx:274 msgid "manual restart required" msgstr "" +#: src/tables/machine/MachineListTable.tsx:291 +#~ msgid "Machine information" +#~ msgstr "Machine information" + #: src/tables/machine/MachineListTable.tsx:292 -msgid "Machine information" +msgid "Machine Information" msgstr "" -#: src/tables/machine/MachineListTable.tsx:303 -#: src/tables/machine/MachineListTable.tsx:599 +#: src/tables/machine/MachineListTable.tsx:302 +#: src/tables/machine/MachineListTable.tsx:610 msgid "Machine Type" msgstr "" -#: src/tables/machine/MachineListTable.tsx:316 +#: src/tables/machine/MachineListTable.tsx:315 msgid "Machine Driver" msgstr "" -#: src/tables/machine/MachineListTable.tsx:329 +#: src/tables/machine/MachineListTable.tsx:330 msgid "Initialized" msgstr "" -#: src/tables/machine/MachineListTable.tsx:350 -#: src/tables/machine/MachineTypeTable.tsx:261 -msgid "Errors" -msgstr "" - -#: src/tables/machine/MachineListTable.tsx:358 -#: src/tables/machine/MachineTypeTable.tsx:269 +#: src/tables/machine/MachineListTable.tsx:359 +#: src/tables/machine/MachineTypeTable.tsx:290 msgid "No errors reported" msgstr "" @@ -6330,7 +7471,7 @@ msgstr "" msgid "Machine Settings" msgstr "" -#: src/tables/machine/MachineListTable.tsx:389 +#: src/tables/machine/MachineListTable.tsx:394 msgid "Driver Settings" msgstr "" @@ -6338,86 +7479,109 @@ msgstr "" #~ msgid "Create machine" #~ msgstr "Create machine" -#: src/tables/machine/MachineListTable.tsx:506 +#: src/tables/machine/MachineListTable.tsx:516 +#: src/tables/machine/MachineListTable.tsx:558 msgid "Add machine" msgstr "" #: src/tables/machine/MachineListTable.tsx:561 -msgid "Machine detail" +#~ msgid "Machine detail" +#~ msgstr "Machine detail" + +#: src/tables/machine/MachineListTable.tsx:572 +msgid "Machine Detail" msgstr "" -#: src/tables/machine/MachineListTable.tsx:608 +#: src/tables/machine/MachineListTable.tsx:619 msgid "Driver" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:73 +#: src/tables/machine/MachineTypeTable.tsx:78 msgid "Builtin driver" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:89 +#: src/tables/machine/MachineTypeTable.tsx:96 +msgid "Not Found" +msgstr "" + +#: src/tables/machine/MachineTypeTable.tsx:99 msgid "Machine type not found." msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:97 -msgid "Machine type information" +#: src/tables/machine/MachineTypeTable.tsx:99 +#~ msgid "Machine type information" +#~ msgstr "Machine type information" + +#: src/tables/machine/MachineTypeTable.tsx:109 +msgid "Machine Type Information" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:110 -#: src/tables/machine/MachineTypeTable.tsx:217 +#: src/tables/machine/MachineTypeTable.tsx:124 +#: src/tables/machine/MachineTypeTable.tsx:238 msgid "Slug" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:118 -#: src/tables/machine/MachineTypeTable.tsx:238 +#: src/tables/machine/MachineTypeTable.tsx:135 +#: src/tables/machine/MachineTypeTable.tsx:259 msgid "Provider plugin" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:130 -#: src/tables/machine/MachineTypeTable.tsx:250 +#: src/tables/machine/MachineTypeTable.tsx:147 +#: src/tables/machine/MachineTypeTable.tsx:271 msgid "Provider file" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:135 -#: src/tables/machine/MachineTypeTable.tsx:255 -#: src/tables/plugin/PluginListTable.tsx:180 -#: src/tables/plugin/PluginListTable.tsx:568 -msgid "Builtin" +#: src/tables/machine/MachineTypeTable.tsx:148 +#~ msgid "Available drivers" +#~ msgstr "Available drivers" + +#: src/tables/machine/MachineTypeTable.tsx:162 +msgid "Available Drivers" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:146 -msgid "Available drivers" -msgstr "" - -#: src/tables/machine/MachineTypeTable.tsx:196 +#: src/tables/machine/MachineTypeTable.tsx:217 msgid "Machine driver not found." msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:204 +#: src/tables/machine/MachineTypeTable.tsx:225 msgid "Machine driver information" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:224 +#: src/tables/machine/MachineTypeTable.tsx:245 msgid "Machine type" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:327 +#: src/tables/machine/MachineTypeTable.tsx:338 +#~ msgid "Machine type detail" +#~ msgstr "Machine type detail" + +#: src/tables/machine/MachineTypeTable.tsx:348 msgid "Builtin type" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:336 -msgid "Machine type detail" +#: src/tables/machine/MachineTypeTable.tsx:348 +#~ msgid "Machine driver detail" +#~ msgstr "Machine driver detail" + +#: src/tables/machine/MachineTypeTable.tsx:357 +msgid "Machine Type Detail" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:346 -msgid "Machine driver detail" +#: src/tables/machine/MachineTypeTable.tsx:367 +msgid "Machine Driver Detail" msgstr "" #: src/tables/notifications/NotificationsTable.tsx:26 msgid "Age" msgstr "" +#: src/tables/notifications/NotificationsTable.tsx:36 +msgid "Notification" +msgstr "הודעה" + #: src/tables/notifications/NotificationsTable.tsx:40 #: src/tables/plugin/PluginErrorTable.tsx:37 +#: src/tables/settings/ErrorTable.tsx:50 msgid "Message" msgstr "" @@ -6451,33 +7615,32 @@ msgstr "" msgid "Show assembly parts" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:68 +#: src/tables/part/PartCategoryTable.tsx:48 +msgid "You are subscribed to notifications for this category" +msgstr "" + +#: src/tables/part/PartCategoryTable.tsx:80 #: src/tables/part/PartTable.tsx:196 msgid "Include Subcategories" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:69 +#: src/tables/part/PartCategoryTable.tsx:81 msgid "Include subcategories in results" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:74 +#: src/tables/part/PartCategoryTable.tsx:86 msgid "Show structural categories" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:78 -#: src/tables/part/PartTable.tsx:294 -msgid "Subscribed" -msgstr "" - -#: src/tables/part/PartCategoryTable.tsx:79 +#: src/tables/part/PartCategoryTable.tsx:91 msgid "Show categories to which the user is subscribed" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:86 +#: src/tables/part/PartCategoryTable.tsx:100 msgid "New Part Category" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:112 +#: src/tables/part/PartCategoryTable.tsx:129 msgid "Add Part Category" msgstr "" @@ -6523,11 +7686,6 @@ msgstr "" msgid "Part parameters cannot be edited, as the part is locked" msgstr "" -#: src/tables/part/PartParameterTable.tsx:212 -#: src/tables/stock/StockItemTable.tsx:335 -msgid "Include Variants" -msgstr "" - #: src/tables/part/PartParameterTemplateTable.tsx:31 msgid "Checkbox" msgstr "" @@ -6554,6 +7712,7 @@ msgid "Show templates with units" msgstr "" #: src/tables/part/PartParameterTemplateTable.tsx:85 +#: src/tables/part/PartParameterTemplateTable.tsx:141 msgid "Add Parameter Template" msgstr "" @@ -6566,23 +7725,19 @@ msgid "Delete Parameter Template" msgstr "" #: src/tables/part/PartParameterTemplateTable.tsx:141 -msgid "Add parameter template" -msgstr "" +#~ msgid "Add parameter template" +#~ msgstr "Add parameter template" -#: src/tables/part/PartPurchaseOrdersTable.tsx:77 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:162 +#: src/tables/part/PartPurchaseOrdersTable.tsx:78 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:168 msgid "Total Quantity" msgstr "" -#: src/tables/part/PartPurchaseOrdersTable.tsx:115 -msgid "Pending" -msgstr "" - -#: src/tables/part/PartPurchaseOrdersTable.tsx:116 +#: src/tables/part/PartPurchaseOrdersTable.tsx:122 msgid "Show pending orders" msgstr "" -#: src/tables/part/PartPurchaseOrdersTable.tsx:121 +#: src/tables/part/PartPurchaseOrdersTable.tsx:127 msgid "Show received items" msgstr "" @@ -6728,22 +7883,13 @@ msgstr "" msgid "Results" msgstr "" -#: src/tables/part/PartTestTemplateTable.tsx:76 -msgid "No Results" -msgstr "" - -#: src/tables/part/PartTestTemplateTable.tsx:106 -#: src/tables/stock/StockItemTestResultTable.tsx:365 -msgid "Required" -msgstr "" - #: src/tables/part/PartTestTemplateTable.tsx:107 msgid "Show required tests" msgstr "" #: src/tables/part/PartTestTemplateTable.tsx:111 -#: src/tables/settings/TemplateTable.tsx:167 -#: src/tables/settings/TemplateTable.tsx:283 +#: src/tables/settings/TemplateTable.tsx:247 +#: src/tables/settings/TemplateTable.tsx:363 msgid "Enabled" msgstr "" @@ -6784,7 +7930,7 @@ msgid "Show tests which have recorded results" msgstr "" #: src/tables/part/PartTestTemplateTable.tsx:154 -#: src/tables/part/PartTestTemplateTable.tsx:237 +#: src/tables/part/PartTestTemplateTable.tsx:238 msgid "Add Test Template" msgstr "" @@ -6808,7 +7954,7 @@ msgstr "" msgid "View Parent Part" msgstr "" -#: src/tables/part/PartTestTemplateTable.tsx:257 +#: src/tables/part/PartTestTemplateTable.tsx:258 msgid "Part templates cannot be edited, as the part is locked" msgstr "" @@ -6836,28 +7982,49 @@ msgstr "" msgid "Show trackable variants" msgstr "" -#: src/tables/part/RelatedPartTable.tsx:84 +#: src/tables/part/RelatedPartTable.tsx:86 +#: src/tables/part/RelatedPartTable.tsx:109 msgid "Add Related Part" msgstr "" -#: src/tables/part/RelatedPartTable.tsx:99 +#: src/tables/part/RelatedPartTable.tsx:101 msgid "Delete Related Part" msgstr "" -#: src/tables/part/RelatedPartTable.tsx:106 -msgid "Add related part" -msgstr "" +#: src/tables/part/RelatedPartTable.tsx:109 +#~ msgid "Add related part" +#~ msgstr "Add related part" #: src/tables/plugin/PluginErrorTable.tsx:29 msgid "Stage" msgstr "" -#: src/tables/plugin/PluginListTable.tsx:95 -msgid "Plugin with key {pluginKey} not found" +#: src/tables/plugin/PluginListTable.tsx:42 +msgid "Plugin is active" msgstr "" +#: src/tables/plugin/PluginListTable.tsx:48 +msgid "Plugin is inactive" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:55 +msgid "Plugin is not installed" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:76 +msgid "Plugin" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:95 +#~ msgid "Plugin with key {pluginKey} not found" +#~ msgstr "Plugin with key {pluginKey} not found" + #: src/tables/plugin/PluginListTable.tsx:97 -msgid "An error occurred while fetching plugin details" +#~ msgid "An error occurred while fetching plugin details" +#~ msgstr "An error occurred while fetching plugin details" + +#: src/tables/plugin/PluginListTable.tsx:109 +msgid "Description not available" msgstr "" #: src/tables/plugin/PluginListTable.tsx:113 @@ -6865,12 +8032,8 @@ msgstr "" #~ msgstr "Plugin with id {id} not found" #: src/tables/plugin/PluginListTable.tsx:122 -msgid "Plugin information" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:134 -msgid "Author" -msgstr "" +#~ msgid "Plugin information" +#~ msgstr "Plugin information" #: src/tables/plugin/PluginListTable.tsx:134 #~ msgid "Plugin Actions" @@ -6881,79 +8044,124 @@ msgstr "" #~ msgid "Edit plugin" #~ msgstr "Edit plugin" +#: src/tables/plugin/PluginListTable.tsx:144 +msgid "Confirm plugin activation" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:145 +msgid "Confirm plugin deactivation" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:150 +msgid "The selected plugin will be activated" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:151 +msgid "The selected plugin will be deactivated" +msgstr "" + #: src/tables/plugin/PluginListTable.tsx:152 #: src/tables/plugin/PluginListTable.tsx:153 #~ msgid "Reload" #~ msgstr "Reload" -#: src/tables/plugin/PluginListTable.tsx:154 -msgid "Plugin is not active" -msgstr "" - #: src/tables/plugin/PluginListTable.tsx:163 -msgid "Package information" -msgstr "" +#~ msgid "Package information" +#~ msgstr "Package information" #: src/tables/plugin/PluginListTable.tsx:169 -msgid "Package Name" +msgid "Deactivate" msgstr "" -#: src/tables/plugin/PluginListTable.tsx:175 -msgid "Installation Path" +#: src/tables/plugin/PluginListTable.tsx:183 +msgid "Activate" msgstr "" -#: src/tables/plugin/PluginListTable.tsx:185 -msgid "Package" +#: src/tables/plugin/PluginListTable.tsx:184 +msgid "Activate selected plugin" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:196 +msgid "Update selected plugin" msgstr "" #: src/tables/plugin/PluginListTable.tsx:197 -msgid "Plugin settings" -msgstr "" +#~ msgid "Plugin settings" +#~ msgstr "Plugin settings" #: src/tables/plugin/PluginListTable.tsx:214 -msgid "Plugin is active" +#: src/tables/stock/InstalledItemsTable.tsx:107 +msgid "Uninstall" msgstr "" -#: src/tables/plugin/PluginListTable.tsx:220 -msgid "Plugin is inactive" +#: src/tables/plugin/PluginListTable.tsx:215 +msgid "Uninstall selected plugin" msgstr "" -#: src/tables/plugin/PluginListTable.tsx:227 -msgid "Plugin is not installed" +#: src/tables/plugin/PluginListTable.tsx:233 +msgid "Delete selected plugin configuration" msgstr "" -#: src/tables/plugin/PluginListTable.tsx:253 -msgid "Plugin" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:287 -msgid "Description not available" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:319 -msgid "Confirm plugin activation" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:320 -msgid "Confirm plugin deactivation" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:325 -msgid "The selected plugin will be activated" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:326 -msgid "The selected plugin will be deactivated" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:334 +#: src/tables/plugin/PluginListTable.tsx:249 msgid "Activate Plugin" msgstr "" +#: src/tables/plugin/PluginListTable.tsx:270 +msgid "Install plugin" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:283 +msgid "Install" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:284 +msgid "Plugin installed successfully" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:289 +msgid "Uninstall Plugin" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:301 +msgid "Confirm plugin uninstall" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:304 +msgid "The selected plugin will be uninstalled." +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:308 +#~ msgid "This action cannot be undone." +#~ msgstr "This action cannot be undone." + +#: src/tables/plugin/PluginListTable.tsx:309 +msgid "Plugin uninstalled successfully" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:317 +msgid "Delete Plugin" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:318 +msgid "Deleting this plugin configuration will remove all associated settings and data. Are you sure you want to delete this plugin?" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:331 +msgid "Plugins reloaded" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:332 +msgid "Plugins were reloaded successfully" +msgstr "" + #: src/tables/plugin/PluginListTable.tsx:338 #~ msgid "Deactivate Plugin" #~ msgstr "Deactivate Plugin" +#: src/tables/plugin/PluginListTable.tsx:350 +msgid "Reload Plugins" +msgstr "" + #: src/tables/plugin/PluginListTable.tsx:354 #~ msgid "The following plugin will be activated" #~ msgstr "The following plugin will be activated" @@ -6962,16 +8170,16 @@ msgstr "" #~ msgid "The following plugin will be deactivated" #~ msgstr "The following plugin will be deactivated" -#: src/tables/plugin/PluginListTable.tsx:362 -msgid "Deactivate" +#: src/tables/plugin/PluginListTable.tsx:357 +msgid "Install Plugin" msgstr "" #: src/tables/plugin/PluginListTable.tsx:366 #~ msgid "Confirm" #~ msgstr "Confirm" -#: src/tables/plugin/PluginListTable.tsx:373 -msgid "Activate" +#: src/tables/plugin/PluginListTable.tsx:374 +msgid "Plugin Detail" msgstr "" #: src/tables/plugin/PluginListTable.tsx:376 @@ -6998,76 +8206,12 @@ msgstr "" #~ msgid "Error updating plugin" #~ msgstr "Error updating plugin" -#: src/tables/plugin/PluginListTable.tsx:406 -msgid "Uninstall" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:438 -msgid "Install plugin" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:451 -msgid "Install" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:452 -msgid "Plugin installed successfully" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:457 -msgid "Uninstall Plugin" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:469 -msgid "Confirm plugin uninstall" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:472 -msgid "The selected plugin will be uninstalled." -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:473 -msgid "This action cannot be undone." -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:477 -msgid "Plugin uninstalled successfully" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:484 -msgid "Delete Plugin" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:485 -msgid "Deleting this plugin configuration will remove all associated settings and data. Are you sure you want to delete this plugin?" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:498 -msgid "Plugins reloaded" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:499 -msgid "Plugins were reloaded successfully" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:515 -msgid "Reload Plugins" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:524 -msgid "Install Plugin" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:544 -msgid "Plugin Detail" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:573 +#: src/tables/plugin/PluginListTable.tsx:411 msgid "Sample" msgstr "" -#: src/tables/plugin/PluginListTable.tsx:578 -#: src/tables/stock/StockItemTable.tsx:340 +#: src/tables/plugin/PluginListTable.tsx:416 +#: src/tables/stock/StockItemTable.tsx:344 msgid "Installed" msgstr "" @@ -7116,82 +8260,78 @@ msgstr "" #~ msgid "Are you sure you want to remove this manufacturer part?" #~ msgstr "Are you sure you want to remove this manufacturer part?" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:102 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:339 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:103 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:356 msgid "Import Line Items" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:135 -msgid "Part Description" -msgstr "" - -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:201 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:207 msgid "Supplier Code" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:208 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:214 msgid "Supplier Link" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:215 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:220 msgid "Manufacturer Code" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:229 -msgid "Destination" +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:248 +msgid "Show line items which have been received" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:300 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:316 msgid "Receive line item" msgstr "" #: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:344 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:142 -#: src/tables/sales/SalesOrderLineItemTable.tsx:240 -msgid "Add line item" -msgstr "" +#: src/tables/sales/ReturnOrderLineItemTable.tsx:160 +#: src/tables/sales/SalesOrderLineItemTable.tsx:258 +#~ msgid "Add line item" +#~ msgstr "Add line item" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:354 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:373 msgid "Receive items" msgstr "" -#: src/tables/purchasing/SupplierPartTable.tsx:93 +#: src/tables/purchasing/SupplierPartTable.tsx:95 msgid "MPN" msgstr "" -#: src/tables/purchasing/SupplierPartTable.tsx:122 +#: src/tables/purchasing/SupplierPartTable.tsx:124 msgid "Base units" msgstr "" -#: src/tables/purchasing/SupplierPartTable.tsx:170 +#: src/tables/purchasing/SupplierPartTable.tsx:172 msgid "Supplier part created" msgstr "" -#: src/tables/purchasing/SupplierPartTable.tsx:176 +#: src/tables/purchasing/SupplierPartTable.tsx:179 msgid "Add supplier part" msgstr "" -#: src/tables/purchasing/SupplierPartTable.tsx:188 +#: src/tables/purchasing/SupplierPartTable.tsx:191 msgid "Show active supplier parts" msgstr "" -#: src/tables/purchasing/SupplierPartTable.tsx:192 -msgid "Active Part" -msgstr "" - -#: src/tables/purchasing/SupplierPartTable.tsx:193 -msgid "Show active internal parts" -msgstr "" - #: src/tables/purchasing/SupplierPartTable.tsx:193 #~ msgid "Supplier part updated" #~ msgstr "Supplier part updated" -#: src/tables/purchasing/SupplierPartTable.tsx:197 +#: src/tables/purchasing/SupplierPartTable.tsx:195 +msgid "Active Part" +msgstr "" + +#: src/tables/purchasing/SupplierPartTable.tsx:196 +msgid "Show active internal parts" +msgstr "" + +#: src/tables/purchasing/SupplierPartTable.tsx:200 msgid "Active Supplier" msgstr "" -#: src/tables/purchasing/SupplierPartTable.tsx:198 +#: src/tables/purchasing/SupplierPartTable.tsx:201 msgid "Show active suppliers" msgstr "" @@ -7203,99 +8343,187 @@ msgstr "" #~ msgid "Are you sure you want to remove this supplier part?" #~ msgstr "Are you sure you want to remove this supplier part?" -#: src/tables/sales/ReturnOrderLineItemTable.tsx:114 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:139 msgid "Received Date" msgstr "" -#: src/tables/sales/ReturnOrderLineItemTable.tsx:128 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:153 msgid "Show items which have been received" msgstr "" -#: src/tables/sales/ReturnOrderLineItemTable.tsx:133 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:158 msgid "Filter by line item status" msgstr "" -#: src/tables/sales/ReturnOrderLineItemTable.tsx:158 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:176 +msgid "Receive selected items" +msgstr "" + +#: src/tables/sales/ReturnOrderLineItemTable.tsx:205 msgid "Receive Item" msgstr "" -#: src/tables/sales/SalesOrderLineItemTable.tsx:262 -msgid "Allocate stock" +#: src/tables/sales/SalesOrderAllocationTable.tsx:60 +msgid "Show outstanding allocations" msgstr "" -#: src/tables/sales/SalesOrderLineItemTable.tsx:272 +#: src/tables/sales/SalesOrderAllocationTable.tsx:168 +#: src/tables/sales/SalesOrderAllocationTable.tsx:190 +msgid "Edit Allocation" +msgstr "" + +#: src/tables/sales/SalesOrderAllocationTable.tsx:175 +#: src/tables/sales/SalesOrderAllocationTable.tsx:197 +msgid "Delete Allocation" +msgstr "" + +#: src/tables/sales/SalesOrderLineItemTable.tsx:244 +msgid "Allocate Serial Numbers" +msgstr "" + +#: src/tables/sales/SalesOrderLineItemTable.tsx:277 +msgid "Show lines which are fully allocated" +msgstr "" + +#: src/tables/sales/SalesOrderLineItemTable.tsx:280 +#~ msgid "Allocate stock" +#~ msgstr "Allocate stock" + +#: src/tables/sales/SalesOrderLineItemTable.tsx:282 +msgid "Show lines which are completed" +msgstr "" + +#: src/tables/sales/SalesOrderLineItemTable.tsx:291 +#~ msgid "Allocate Serials" +#~ msgstr "Allocate Serials" + +#: src/tables/sales/SalesOrderLineItemTable.tsx:340 +msgid "Allocate serials" +msgstr "" + +#: src/tables/sales/SalesOrderLineItemTable.tsx:356 msgid "Build stock" msgstr "" -#: src/tables/sales/SalesOrderLineItemTable.tsx:289 -#: src/tables/stock/StockItemTable.tsx:507 +#: src/tables/sales/SalesOrderLineItemTable.tsx:373 +#: src/tables/stock/StockItemTable.tsx:512 msgid "Order stock" msgstr "" -#: src/tables/sales/SalesOrderShipmentTable.tsx:40 +#: src/tables/sales/SalesOrderShipmentTable.tsx:51 +#~ msgid "Delete Shipment" +#~ msgstr "Delete Shipment" + +#: src/tables/sales/SalesOrderShipmentTable.tsx:57 msgid "Create Shipment" msgstr "" -#: src/tables/sales/SalesOrderShipmentTable.tsx:50 -msgid "Delete Shipment" -msgstr "" - -#: src/tables/sales/SalesOrderShipmentTable.tsx:58 -msgid "Edit Shipment" -msgstr "" - -#: src/tables/sales/SalesOrderShipmentTable.tsx:66 -msgid "Shipment Reference" -msgstr "" - -#: src/tables/sales/SalesOrderShipmentTable.tsx:71 +#: src/tables/sales/SalesOrderShipmentTable.tsx:104 msgid "Items" msgstr "" -#: src/tables/sales/SalesOrderShipmentTable.tsx:83 -msgid "Delivery Date" +#: src/tables/sales/SalesOrderShipmentTable.tsx:139 +msgid "View Shipment" msgstr "" -#: src/tables/sales/SalesOrderShipmentTable.tsx:107 -msgid "Complete Shipment" +#: src/tables/sales/SalesOrderShipmentTable.tsx:161 +msgid "Edit shipment" msgstr "" -#: src/tables/sales/SalesOrderShipmentTable.tsx:133 +#: src/tables/sales/SalesOrderShipmentTable.tsx:169 +msgid "Cancel shipment" +msgstr "" + +#: src/tables/sales/SalesOrderShipmentTable.tsx:184 msgid "Add shipment" msgstr "" -#: src/tables/sales/SalesOrderShipmentTable.tsx:146 -msgid "Shipped" -msgstr "" - -#: src/tables/sales/SalesOrderShipmentTable.tsx:147 +#: src/tables/sales/SalesOrderShipmentTable.tsx:198 msgid "Show shipments which have been shipped" msgstr "" -#: src/tables/sales/SalesOrderShipmentTable.tsx:151 -msgid "Delivered" -msgstr "" - -#: src/tables/sales/SalesOrderShipmentTable.tsx:152 +#: src/tables/sales/SalesOrderShipmentTable.tsx:203 msgid "Show shipments which have been delivered" msgstr "" -#: src/tables/settings/CurrencyTable.tsx:28 -msgid "Rate" +#: src/tables/settings/BarcodeScanHistoryTable.tsx:61 +msgid "Barcode Information" msgstr "" -#: src/tables/settings/CurrencyTable.tsx:40 -msgid "Exchange rates updated" +#: src/tables/settings/BarcodeScanHistoryTable.tsx:76 +#: src/tables/settings/ErrorTable.tsx:59 +msgid "Timestamp" msgstr "" -#: src/tables/settings/CurrencyTable.tsx:46 -msgid "Exchange rate update error" +#: src/tables/settings/BarcodeScanHistoryTable.tsx:86 +msgid "Endpoint" msgstr "" -#: src/tables/settings/CurrencyTable.tsx:57 -msgid "Refresh currency exchange rates" +#: src/tables/settings/BarcodeScanHistoryTable.tsx:90 +#: src/tables/settings/BarcodeScanHistoryTable.tsx:217 +#: src/tables/stock/StockItemTestResultTable.tsx:174 +msgid "Result" msgstr "" +#: src/tables/settings/BarcodeScanHistoryTable.tsx:98 +msgid "Context" +msgstr "" + +#: src/tables/settings/BarcodeScanHistoryTable.tsx:119 +msgid "Response" +msgstr "" + +#: src/tables/settings/BarcodeScanHistoryTable.tsx:213 +#: src/tables/settings/ImportSessionTable.tsx:121 +#: src/tables/stock/StockTrackingTable.tsx:183 +msgid "Filter by user" +msgstr "" + +#: src/tables/settings/BarcodeScanHistoryTable.tsx:218 +msgid "Filter by result" +msgstr "" + +#: src/tables/settings/BarcodeScanHistoryTable.tsx:232 +msgid "Delete Barcode Scan Record" +msgstr "" + +#: src/tables/settings/BarcodeScanHistoryTable.tsx:258 +msgid "Barcode Scan Details" +msgstr "" + +#: src/tables/settings/BarcodeScanHistoryTable.tsx:268 +msgid "Logging Disabled" +msgstr "" + +#: src/tables/settings/BarcodeScanHistoryTable.tsx:270 +msgid "Barcode logging is not enabled" +msgstr "" + +#: src/tables/settings/CustomStateTable.tsx:36 +msgid "Display Name" +msgstr "" + +#: src/tables/settings/CustomStateTable.tsx:52 +msgid "Model" +msgstr "" + +#: src/tables/settings/CustomStateTable.tsx:65 +#: src/tables/settings/CustomStateTable.tsx:115 +msgid "Add State" +msgstr "" + +#: src/tables/settings/CustomStateTable.tsx:77 +msgid "Edit State" +msgstr "" + +#: src/tables/settings/CustomStateTable.tsx:85 +msgid "Delete State" +msgstr "" + +#: src/tables/settings/CustomStateTable.tsx:115 +#~ msgid "Add state" +#~ msgstr "Add state" + #: src/tables/settings/CustomUnitsTable.tsx:50 msgid "Add Custom Unit" msgstr "" @@ -7312,59 +8540,71 @@ msgstr "" msgid "Add custom unit" msgstr "" -#: src/tables/settings/ErrorTable.tsx:31 -msgid "When" -msgstr "" - -#: src/tables/settings/ErrorTable.tsx:41 -msgid "Error Information" -msgstr "" - #: src/tables/settings/ErrorTable.tsx:51 #~ msgid "Delete error report" #~ msgstr "Delete error report" -#: src/tables/settings/ErrorTable.tsx:53 +#: src/tables/settings/ErrorTable.tsx:67 +msgid "Traceback" +msgstr "" + +#: src/tables/settings/ErrorTable.tsx:103 +msgid "When" +msgstr "" + +#: src/tables/settings/ErrorTable.tsx:113 +msgid "Error Information" +msgstr "" + +#: src/tables/settings/ErrorTable.tsx:123 msgid "Delete Error Report" msgstr "" -#: src/tables/settings/ErrorTable.tsx:55 +#: src/tables/settings/ErrorTable.tsx:125 msgid "Are you sure you want to delete this error report?" msgstr "" -#: src/tables/settings/ErrorTable.tsx:57 +#: src/tables/settings/ErrorTable.tsx:127 msgid "Error report deleted" msgstr "" -#: src/tables/settings/ErrorTable.tsx:79 -#: src/tables/settings/FailedTasksTable.tsx:59 +#: src/tables/settings/ErrorTable.tsx:146 +#: src/tables/settings/FailedTasksTable.tsx:65 msgid "Error Details" msgstr "" -#: src/tables/settings/FailedTasksTable.tsx:26 -#: src/tables/settings/PendingTasksTable.tsx:19 +#: src/tables/settings/FailedTasksTable.tsx:32 +#: src/tables/settings/PendingTasksTable.tsx:23 #: src/tables/settings/ScheduledTasksTable.tsx:19 msgid "Task" msgstr "" -#: src/tables/settings/FailedTasksTable.tsx:32 -#: src/tables/settings/PendingTasksTable.tsx:24 +#: src/tables/settings/FailedTasksTable.tsx:38 +#: src/tables/settings/PendingTasksTable.tsx:28 msgid "Task ID" msgstr "" -#: src/tables/settings/FailedTasksTable.tsx:36 -#: src/tables/stock/StockItemTestResultTable.tsx:211 +#: src/tables/settings/FailedTasksTable.tsx:42 +#: src/tables/stock/StockItemTestResultTable.tsx:218 msgid "Started" msgstr "" -#: src/tables/settings/FailedTasksTable.tsx:42 +#: src/tables/settings/FailedTasksTable.tsx:48 msgid "Stopped" msgstr "" -#: src/tables/settings/FailedTasksTable.tsx:48 +#: src/tables/settings/FailedTasksTable.tsx:54 msgid "Attempts" msgstr "" +#: src/tables/settings/FailedTasksTable.tsx:92 +msgid "No Information" +msgstr "" + +#: src/tables/settings/FailedTasksTable.tsx:93 +msgid "No error details are available for this task" +msgstr "" + #: src/tables/settings/GroupTable.tsx:90 msgid "Group with id {id} not found" msgstr "" @@ -7398,42 +8638,34 @@ msgstr "" msgid "Edit group" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:38 +#: src/tables/settings/ImportSessionTable.tsx:37 msgid "Delete Import Session" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:44 +#: src/tables/settings/ImportSessionTable.tsx:43 #: src/tables/settings/ImportSessionTable.tsx:131 msgid "Create Import Session" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:69 +#: src/tables/settings/ImportSessionTable.tsx:68 msgid "Uploaded" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:79 -msgid "Imported Rows" -msgstr "" - -#: src/tables/settings/ImportSessionTable.tsx:109 -#: src/tables/settings/TemplateTable.tsx:289 +#: src/tables/settings/ImportSessionTable.tsx:108 +#: src/tables/settings/TemplateTable.tsx:369 msgid "Model Type" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:110 -#: src/tables/settings/TemplateTable.tsx:290 +#: src/tables/settings/ImportSessionTable.tsx:109 +#: src/tables/settings/TemplateTable.tsx:370 msgid "Filter by target model type" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:116 +#: src/tables/settings/ImportSessionTable.tsx:115 msgid "Filter by import session status" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:122 -msgid "Filter by user" -msgstr "" - -#: src/tables/settings/PendingTasksTable.tsx:38 +#: src/tables/settings/PendingTasksTable.tsx:42 msgid "Arguments" msgstr "" @@ -7461,12 +8693,16 @@ msgstr "" msgid "Next Run" msgstr "" -#: src/tables/settings/TemplateTable.tsx:85 -msgid "Template not found" +#: src/tables/settings/StocktakeReportTable.tsx:28 +msgid "Report" msgstr "" -#: src/tables/settings/TemplateTable.tsx:87 -msgid "An error occurred while fetching template details" +#: src/tables/settings/StocktakeReportTable.tsx:35 +msgid "Part Count" +msgstr "" + +#: src/tables/settings/StocktakeReportTable.tsx:58 +msgid "Delete Report" msgstr "" #: src/tables/settings/TemplateTable.tsx:120 @@ -7481,21 +8717,12 @@ msgstr "" #~ msgid "actions" #~ msgstr "actions" -#: src/tables/settings/TemplateTable.tsx:177 -msgid "Modify" +#: src/tables/settings/TemplateTable.tsx:162 +msgid "Template not found" msgstr "" -#: src/tables/settings/TemplateTable.tsx:178 -msgid "Modify template file" -msgstr "" - -#: src/tables/settings/TemplateTable.tsx:234 -#: src/tables/settings/TemplateTable.tsx:302 -msgid "Edit Template" -msgstr "" - -#: src/tables/settings/TemplateTable.tsx:242 -msgid "Delete template" +#: src/tables/settings/TemplateTable.tsx:164 +msgid "An error occurred while fetching template details" msgstr "" #: src/tables/settings/TemplateTable.tsx:243 @@ -7506,103 +8733,137 @@ msgstr "" #~ msgid "Create new" #~ msgstr "Create new" -#: src/tables/settings/TemplateTable.tsx:248 +#: src/tables/settings/TemplateTable.tsx:257 +msgid "Modify" +msgstr "" + +#: src/tables/settings/TemplateTable.tsx:258 +msgid "Modify template file" +msgstr "" + +#: src/tables/settings/TemplateTable.tsx:314 +#: src/tables/settings/TemplateTable.tsx:382 +msgid "Edit Template" +msgstr "" + +#: src/tables/settings/TemplateTable.tsx:322 +msgid "Delete template" +msgstr "" + +#: src/tables/settings/TemplateTable.tsx:328 msgid "Add Template" msgstr "" -#: src/tables/settings/TemplateTable.tsx:261 +#: src/tables/settings/TemplateTable.tsx:341 msgid "Add template" msgstr "" -#: src/tables/settings/TemplateTable.tsx:284 +#: src/tables/settings/TemplateTable.tsx:364 msgid "Filter by enabled status" msgstr "" -#: src/tables/settings/UserTable.tsx:82 +#: src/tables/settings/UserTable.tsx:81 msgid "User with id {id} not found" msgstr "" -#: src/tables/settings/UserTable.tsx:84 +#: src/tables/settings/UserTable.tsx:83 msgid "An error occurred while fetching user details" msgstr "" -#: src/tables/settings/UserTable.tsx:102 +#: src/tables/settings/UserTable.tsx:101 msgid "Is Active" msgstr "" -#: src/tables/settings/UserTable.tsx:103 +#: src/tables/settings/UserTable.tsx:102 msgid "Designates whether this user should be treated as active. Unselect this instead of deleting accounts." msgstr "" -#: src/tables/settings/UserTable.tsx:107 +#: src/tables/settings/UserTable.tsx:106 msgid "Is Staff" msgstr "" -#: src/tables/settings/UserTable.tsx:108 +#: src/tables/settings/UserTable.tsx:107 msgid "Designates whether the user can log into the django admin site." msgstr "" -#: src/tables/settings/UserTable.tsx:112 +#: src/tables/settings/UserTable.tsx:111 msgid "Is Superuser" msgstr "" -#: src/tables/settings/UserTable.tsx:113 +#: src/tables/settings/UserTable.tsx:112 msgid "Designates that this user has all permissions without explicitly assigning them." msgstr "" -#: src/tables/settings/UserTable.tsx:123 +#: src/tables/settings/UserTable.tsx:122 msgid "You cannot edit the rights for the currently logged-in user." msgstr "" -#: src/tables/settings/UserTable.tsx:154 +#: src/tables/settings/UserTable.tsx:153 msgid "No groups" msgstr "" -#: src/tables/settings/UserTable.tsx:245 +#: src/tables/settings/UserTable.tsx:244 msgid "Delete user" msgstr "" -#: src/tables/settings/UserTable.tsx:246 +#: src/tables/settings/UserTable.tsx:245 msgid "User deleted" msgstr "" -#: src/tables/settings/UserTable.tsx:248 +#: src/tables/settings/UserTable.tsx:247 msgid "Are you sure you want to delete this user?" msgstr "" -#: src/tables/settings/UserTable.tsx:254 -#: src/tables/settings/UserTable.tsx:272 +#: src/tables/settings/UserTable.tsx:253 +#: src/tables/settings/UserTable.tsx:271 msgid "Add user" msgstr "" -#: src/tables/settings/UserTable.tsx:262 +#: src/tables/settings/UserTable.tsx:261 msgid "Added user" msgstr "" -#: src/tables/settings/UserTable.tsx:285 +#: src/tables/settings/UserTable.tsx:284 msgid "Show active users" msgstr "" -#: src/tables/settings/UserTable.tsx:289 +#: src/tables/settings/UserTable.tsx:288 msgid "Staff" msgstr "" -#: src/tables/settings/UserTable.tsx:290 +#: src/tables/settings/UserTable.tsx:289 msgid "Show staff users" msgstr "" #: src/tables/settings/UserTable.tsx:294 -msgid "Superuser" -msgstr "" - -#: src/tables/settings/UserTable.tsx:295 msgid "Show superusers" msgstr "" -#: src/tables/settings/UserTable.tsx:305 +#: src/tables/settings/UserTable.tsx:304 msgid "Edit user" msgstr "" +#: src/tables/stock/InstalledItemsTable.tsx:37 +#: src/tables/stock/InstalledItemsTable.tsx:90 +msgid "Install Item" +msgstr "" + +#: src/tables/stock/InstalledItemsTable.tsx:39 +msgid "Item installed" +msgstr "" + +#: src/tables/stock/InstalledItemsTable.tsx:50 +msgid "Uninstall Item" +msgstr "" + +#: src/tables/stock/InstalledItemsTable.tsx:52 +msgid "Item uninstalled" +msgstr "" + +#: src/tables/stock/InstalledItemsTable.tsx:108 +msgid "Uninstall stock item" +msgstr "" + #: src/tables/stock/LocationTypesTable.tsx:39 #: src/tables/stock/LocationTypesTable.tsx:109 msgid "Add Location Type" @@ -7620,276 +8881,272 @@ msgstr "" msgid "Icon" msgstr "" -#: src/tables/stock/StockItemTable.tsx:101 +#: src/tables/stock/StockItemTable.tsx:90 msgid "This stock item is in production" msgstr "" -#: src/tables/stock/StockItemTable.tsx:110 +#: src/tables/stock/StockItemTable.tsx:97 msgid "This stock item has been assigned to a sales order" msgstr "" -#: src/tables/stock/StockItemTable.tsx:119 +#: src/tables/stock/StockItemTable.tsx:104 msgid "This stock item has been assigned to a customer" msgstr "" -#: src/tables/stock/StockItemTable.tsx:128 +#: src/tables/stock/StockItemTable.tsx:111 msgid "This stock item is installed in another stock item" msgstr "" -#: src/tables/stock/StockItemTable.tsx:137 +#: src/tables/stock/StockItemTable.tsx:118 msgid "This stock item has been consumed by a build order" msgstr "" -#: src/tables/stock/StockItemTable.tsx:146 +#: src/tables/stock/StockItemTable.tsx:125 +msgid "This stock item is unavailable" +msgstr "" + +#: src/tables/stock/StockItemTable.tsx:134 msgid "This stock item has expired" msgstr "" -#: src/tables/stock/StockItemTable.tsx:150 +#: src/tables/stock/StockItemTable.tsx:138 msgid "This stock item is stale" msgstr "" -#: src/tables/stock/StockItemTable.tsx:161 +#: src/tables/stock/StockItemTable.tsx:150 msgid "This stock item is fully allocated" msgstr "" -#: src/tables/stock/StockItemTable.tsx:168 +#: src/tables/stock/StockItemTable.tsx:157 msgid "This stock item is partially allocated" msgstr "" -#: src/tables/stock/StockItemTable.tsx:196 +#: src/tables/stock/StockItemTable.tsx:185 msgid "This stock item has been depleted" msgstr "" -#: src/tables/stock/StockItemTable.tsx:232 +#: src/tables/stock/StockItemTable.tsx:280 msgid "Stocktake Date" msgstr "" -#: src/tables/stock/StockItemTable.tsx:236 -msgid "Expiry Date" -msgstr "" - -#: src/tables/stock/StockItemTable.tsx:260 -msgid "Stock Value" -msgstr "" - -#: src/tables/stock/StockItemTable.tsx:290 +#: src/tables/stock/StockItemTable.tsx:294 msgid "Show stock for active parts" msgstr "" -#: src/tables/stock/StockItemTable.tsx:295 +#: src/tables/stock/StockItemTable.tsx:299 msgid "Filter by stock status" msgstr "" #: src/tables/stock/StockItemTable.tsx:301 -msgid "Show stock for assmebled parts" +#~ msgid "Show stock for assmebled parts" +#~ msgstr "Show stock for assmebled parts" + +#: src/tables/stock/StockItemTable.tsx:305 +msgid "Show stock for assembled parts" msgstr "" -#: src/tables/stock/StockItemTable.tsx:306 +#: src/tables/stock/StockItemTable.tsx:310 msgid "Show items which have been allocated" msgstr "" -#: src/tables/stock/StockItemTable.tsx:311 +#: src/tables/stock/StockItemTable.tsx:315 msgid "Show items which are available" msgstr "" -#: src/tables/stock/StockItemTable.tsx:315 +#: src/tables/stock/StockItemTable.tsx:319 #: src/tables/stock/StockLocationTable.tsx:44 msgid "Include Sublocations" msgstr "" -#: src/tables/stock/StockItemTable.tsx:316 +#: src/tables/stock/StockItemTable.tsx:320 msgid "Include stock in sublocations" msgstr "" -#: src/tables/stock/StockItemTable.tsx:320 +#: src/tables/stock/StockItemTable.tsx:324 msgid "Depleted" msgstr "" -#: src/tables/stock/StockItemTable.tsx:321 +#: src/tables/stock/StockItemTable.tsx:325 msgid "Show depleted stock items" msgstr "" -#: src/tables/stock/StockItemTable.tsx:326 +#: src/tables/stock/StockItemTable.tsx:330 msgid "Show items which are in stock" msgstr "" -#: src/tables/stock/StockItemTable.tsx:331 +#: src/tables/stock/StockItemTable.tsx:335 msgid "Show items which are in production" msgstr "" -#: src/tables/stock/StockItemTable.tsx:336 +#: src/tables/stock/StockItemTable.tsx:340 msgid "Include stock items for variant parts" msgstr "" -#: src/tables/stock/StockItemTable.tsx:341 +#: src/tables/stock/StockItemTable.tsx:345 msgid "Show stock items which are installed in other items" msgstr "" -#: src/tables/stock/StockItemTable.tsx:345 +#: src/tables/stock/StockItemTable.tsx:349 msgid "Sent to Customer" msgstr "" -#: src/tables/stock/StockItemTable.tsx:346 +#: src/tables/stock/StockItemTable.tsx:350 msgid "Show items which have been sent to a customer" msgstr "" -#: src/tables/stock/StockItemTable.tsx:350 +#: src/tables/stock/StockItemTable.tsx:354 msgid "Is Serialized" msgstr "" -#: src/tables/stock/StockItemTable.tsx:351 +#: src/tables/stock/StockItemTable.tsx:355 msgid "Show items which have a serial number" msgstr "" -#: src/tables/stock/StockItemTable.tsx:358 +#: src/tables/stock/StockItemTable.tsx:362 msgid "Has Batch Code" msgstr "" -#: src/tables/stock/StockItemTable.tsx:359 +#: src/tables/stock/StockItemTable.tsx:363 msgid "Show items which have a batch code" msgstr "" -#: src/tables/stock/StockItemTable.tsx:365 +#: src/tables/stock/StockItemTable.tsx:369 msgid "Show tracked items" msgstr "" -#: src/tables/stock/StockItemTable.tsx:369 +#: src/tables/stock/StockItemTable.tsx:373 msgid "Has Purchase Price" msgstr "" -#: src/tables/stock/StockItemTable.tsx:370 +#: src/tables/stock/StockItemTable.tsx:374 msgid "Show items which have a purchase price" msgstr "" -#: src/tables/stock/StockItemTable.tsx:378 +#: src/tables/stock/StockItemTable.tsx:382 msgid "External Location" msgstr "" -#: src/tables/stock/StockItemTable.tsx:379 +#: src/tables/stock/StockItemTable.tsx:383 msgid "Show items in an external location" msgstr "" -#: src/tables/stock/StockItemTable.tsx:451 +#: src/tables/stock/StockItemTable.tsx:456 msgid "Add a new stock item" msgstr "" -#: src/tables/stock/StockItemTable.tsx:460 +#: src/tables/stock/StockItemTable.tsx:465 msgid "Remove some quantity from a stock item" msgstr "" -#: src/tables/stock/StockItemTable.tsx:482 +#: src/tables/stock/StockItemTable.tsx:487 msgid "Move Stock items to new locations" msgstr "" -#: src/tables/stock/StockItemTable.tsx:489 +#: src/tables/stock/StockItemTable.tsx:494 msgid "Change stock status" msgstr "" -#: src/tables/stock/StockItemTable.tsx:491 +#: src/tables/stock/StockItemTable.tsx:496 msgid "Change the status of stock items" msgstr "" -#: src/tables/stock/StockItemTable.tsx:498 +#: src/tables/stock/StockItemTable.tsx:503 msgid "Merge stock" msgstr "" -#: src/tables/stock/StockItemTable.tsx:500 +#: src/tables/stock/StockItemTable.tsx:505 msgid "Merge stock items" msgstr "" -#: src/tables/stock/StockItemTable.tsx:509 -#: src/tables/stock/StockItemTable.tsx:516 +#: src/tables/stock/StockItemTable.tsx:514 +#: src/tables/stock/StockItemTable.tsx:521 msgid "Order new stock" msgstr "" -#: src/tables/stock/StockItemTable.tsx:514 +#: src/tables/stock/StockItemTable.tsx:519 msgid "Assign to customer" msgstr "" -#: src/tables/stock/StockItemTable.tsx:523 +#: src/tables/stock/StockItemTable.tsx:528 msgid "Delete stock" msgstr "" -#: src/tables/stock/StockItemTable.tsx:525 -msgid "Delete stock items" -msgstr "" +#: src/tables/stock/StockItemTable.tsx:528 +#~ msgid "Delete stock items" +#~ msgstr "Delete stock items" -#: src/tables/stock/StockItemTestResultTable.tsx:131 +#: src/tables/stock/StockItemTestResultTable.tsx:137 msgid "Test" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:157 +#: src/tables/stock/StockItemTestResultTable.tsx:163 msgid "Test result for installed stock item" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:168 -msgid "Result" -msgstr "" - -#: src/tables/stock/StockItemTestResultTable.tsx:190 +#: src/tables/stock/StockItemTestResultTable.tsx:196 msgid "Attachment" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:206 +#: src/tables/stock/StockItemTestResultTable.tsx:212 msgid "Test station" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:226 +#: src/tables/stock/StockItemTestResultTable.tsx:234 msgid "Finished" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:268 -#: src/tables/stock/StockItemTestResultTable.tsx:339 +#: src/tables/stock/StockItemTestResultTable.tsx:286 +#: src/tables/stock/StockItemTestResultTable.tsx:357 msgid "Edit Test Result" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:270 +#: src/tables/stock/StockItemTestResultTable.tsx:288 msgid "Test result updated" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:276 -#: src/tables/stock/StockItemTestResultTable.tsx:348 +#: src/tables/stock/StockItemTestResultTable.tsx:294 +#: src/tables/stock/StockItemTestResultTable.tsx:366 msgid "Delete Test Result" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:278 +#: src/tables/stock/StockItemTestResultTable.tsx:296 msgid "Test result deleted" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:292 +#: src/tables/stock/StockItemTestResultTable.tsx:310 msgid "Test Passed" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:293 +#: src/tables/stock/StockItemTestResultTable.tsx:311 msgid "Test result has been recorded" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:300 +#: src/tables/stock/StockItemTestResultTable.tsx:318 msgid "Failed to record test result" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:317 +#: src/tables/stock/StockItemTestResultTable.tsx:335 msgid "Pass Test" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:366 +#: src/tables/stock/StockItemTestResultTable.tsx:384 msgid "Show results for required tests" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:370 +#: src/tables/stock/StockItemTestResultTable.tsx:388 msgid "Include Installed" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:371 +#: src/tables/stock/StockItemTestResultTable.tsx:389 msgid "Show results for installed stock items" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:375 -#: src/tables/stock/TestStatisticsTable.tsx:74 +#: src/tables/stock/StockItemTestResultTable.tsx:393 +#: src/tables/stock/TestStatisticsTable.tsx:62 msgid "Passed" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:376 +#: src/tables/stock/StockItemTestResultTable.tsx:394 msgid "Show only passed tests" msgstr "" @@ -7922,28 +9179,32 @@ msgid "Filter by location type" msgstr "" #: src/tables/stock/StockLocationTable.tsx:107 -#: src/tables/stock/StockLocationTable.tsx:133 +#: src/tables/stock/StockLocationTable.tsx:134 msgid "Add Stock Location" msgstr "" -#: src/tables/stock/StockTrackingTable.tsx:64 +#: src/tables/stock/StockTrackingTable.tsx:68 msgid "Added" msgstr "" -#: src/tables/stock/StockTrackingTable.tsx:69 +#: src/tables/stock/StockTrackingTable.tsx:73 msgid "Removed" msgstr "" #: src/tables/stock/StockTrackingTable.tsx:198 +msgid "Details" +msgstr "" + +#: src/tables/stock/StockTrackingTable.tsx:213 msgid "No user information" msgstr "" -#: src/tables/stock/TestStatisticsTable.tsx:46 -#: src/tables/stock/TestStatisticsTable.tsx:76 +#: src/tables/stock/TestStatisticsTable.tsx:34 +#: src/tables/stock/TestStatisticsTable.tsx:64 msgid "Total" msgstr "" -#: src/tables/stock/TestStatisticsTable.tsx:75 +#: src/tables/stock/TestStatisticsTable.tsx:63 msgid "Failed" msgstr "" diff --git a/src/frontend/src/locales/hi/messages.po b/src/frontend/src/locales/hi/messages.po index 4e78547035..b66e9e4964 100644 --- a/src/frontend/src/locales/hi/messages.po +++ b/src/frontend/src/locales/hi/messages.po @@ -8,15 +8,15 @@ msgstr "" "Language: hi\n" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"PO-Revision-Date: 2024-08-20 19:51\n" +"PO-Revision-Date: 2024-11-04 03:14\n" "Last-Translator: \n" "Language-Team: Hindi\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Crowdin-Project: inventree\n" "X-Crowdin-Project-ID: 452300\n" "X-Crowdin-Language: hi\n" -"X-Crowdin-File: /[inventree.InvenTree] l10/src/frontend/src/locales/en/messages.po\n" -"X-Crowdin-File-ID: 205\n" +"X-Crowdin-File: /src/frontend/src/locales/en/messages.po\n" +"X-Crowdin-File-ID: 252\n" #: src/components/Boundary.tsx:12 msgid "Error rendering component" @@ -27,8 +27,8 @@ msgid "An error occurred while rendering this component. Refer to the console fo msgstr "" #: src/components/DashboardItemProxy.tsx:34 -msgid "Title" -msgstr "शीर्षक" +#~ msgid "Title" +#~ msgstr "Title" #: src/components/buttons/AdminButton.tsx:80 msgid "Open in admin interface" @@ -38,83 +38,100 @@ msgstr "" #~ msgid "Copy to clipboard" #~ msgstr "Copy to clipboard" -#: src/components/buttons/CopyButton.tsx:24 +#: src/components/buttons/CopyButton.tsx:29 msgid "Copied" msgstr "" -#: src/components/buttons/CopyButton.tsx:24 +#: src/components/buttons/CopyButton.tsx:29 msgid "Copy" msgstr "" -#: src/components/buttons/PrintingActions.tsx:93 +#: src/components/buttons/PrintingActions.tsx:97 msgid "Print Label" msgstr "" -#: src/components/buttons/PrintingActions.tsx:99 +#: src/components/buttons/PrintingActions.tsx:103 msgid "Print" msgstr "" -#: src/components/buttons/PrintingActions.tsx:100 +#: src/components/buttons/PrintingActions.tsx:104 msgid "Label printing completed successfully" msgstr "" -#: src/components/buttons/PrintingActions.tsx:106 -#: src/components/buttons/PrintingActions.tsx:144 -#: src/components/editors/NotesEditor.tsx:65 -#: src/components/editors/NotesEditor.tsx:165 -#: src/components/forms/fields/ApiFormField.tsx:319 +#: src/components/buttons/PrintingActions.tsx:110 +#: src/components/buttons/PrintingActions.tsx:148 +#: src/components/editors/NotesEditor.tsx:73 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:154 +#: src/components/forms/fields/ApiFormField.tsx:328 +#: src/components/forms/fields/TableField.tsx:43 #: src/components/importer/ImportDataSelector.tsx:187 -#: src/components/importer/ImporterColumnSelector.tsx:207 +#: src/components/importer/ImporterColumnSelector.tsx:210 #: src/components/modals/LicenseModal.tsx:75 -#: src/components/nav/SearchDrawer.tsx:448 +#: src/components/nav/SearchDrawer.tsx:458 +#: src/components/render/ModelType.tsx:290 #: src/pages/ErrorPage.tsx:11 -#: src/pages/part/PartPricingPanel.tsx:67 -#: src/tables/InvenTreeTable.tsx:495 +#: src/pages/part/PartPricingPanel.tsx:71 +#: src/tables/InvenTreeTable.tsx:481 #: src/tables/bom/BomTable.tsx:450 -#: src/tables/stock/StockItemTestResultTable.tsx:299 +#: src/tables/stock/StockItemTestResultTable.tsx:317 msgid "Error" msgstr "" -#: src/components/buttons/PrintingActions.tsx:107 +#: src/components/buttons/PrintingActions.tsx:111 msgid "The label could not be generated" msgstr "" -#: src/components/buttons/PrintingActions.tsx:122 +#: src/components/buttons/PrintingActions.tsx:126 msgid "Print Report" msgstr "" -#: src/components/buttons/PrintingActions.tsx:138 +#: src/components/buttons/PrintingActions.tsx:142 msgid "Generate" msgstr "" -#: src/components/buttons/PrintingActions.tsx:139 +#: src/components/buttons/PrintingActions.tsx:143 msgid "Report printing completed successfully" msgstr "" -#: src/components/buttons/PrintingActions.tsx:145 +#: src/components/buttons/PrintingActions.tsx:149 msgid "The report could not be generated" msgstr "" -#: src/components/buttons/PrintingActions.tsx:173 +#: src/components/buttons/PrintingActions.tsx:177 msgid "Printing Actions" msgstr "" -#: src/components/buttons/PrintingActions.tsx:178 +#: src/components/buttons/PrintingActions.tsx:182 msgid "Print Labels" msgstr "" -#: src/components/buttons/PrintingActions.tsx:184 +#: src/components/buttons/PrintingActions.tsx:188 msgid "Print Reports" msgstr "" +#: src/components/buttons/RemoveRowButton.tsx:8 +msgid "Remove this row" +msgstr "" + #: src/components/buttons/ScanButton.tsx:15 -msgid "Scan QR code" -msgstr "क्यूआर कोड स्कैन करें" +#: src/components/nav/NavigationDrawer.tsx:117 +#: src/forms/PurchaseOrderForms.tsx:379 +#: src/forms/PurchaseOrderForms.tsx:473 +msgid "Scan Barcode" +msgstr "" + +#: src/components/buttons/ScanButton.tsx:15 +#~ msgid "Scan QR code" +#~ msgstr "Scan QR code" #: src/components/buttons/ScanButton.tsx:20 -msgid "Open QR code scanner" +msgid "Open Barcode Scanner" msgstr "" +#: src/components/buttons/ScanButton.tsx:20 +#~ msgid "Open QR code scanner" +#~ msgstr "Open QR code scanner" + #: src/components/buttons/SpotlightButton.tsx:14 msgid "Open spotlight" msgstr "" @@ -128,85 +145,347 @@ msgid "Fail" msgstr "" #: src/components/buttons/YesNoButton.tsx:33 -#: src/tables/Filter.tsx:52 +#: src/tables/Filter.tsx:61 msgid "Yes" msgstr "हाँ" #: src/components/buttons/YesNoButton.tsx:33 -#: src/tables/Filter.tsx:53 +#: src/tables/Filter.tsx:62 msgid "No" msgstr "" -#: src/components/details/Details.tsx:301 +#: src/components/dashboard/DashboardLayout.tsx:286 +msgid "No Widgets Selected" +msgstr "" + +#: src/components/dashboard/DashboardLayout.tsx:289 +msgid "Use the menu to add widgets to the dashboard" +msgstr "" + +#: src/components/dashboard/DashboardMenu.tsx:59 +#: src/components/dashboard/DashboardMenu.tsx:126 +msgid "Accept Layout" +msgstr "" + +#: src/components/dashboard/DashboardMenu.tsx:91 +#: src/components/nav/NavigationDrawer.tsx:71 +#: src/defaults/actions.tsx:17 +#: src/defaults/links.tsx:9 +#: src/pages/Index/Settings/UserSettings.tsx:47 +msgid "Dashboard" +msgstr "" + +#: src/components/dashboard/DashboardMenu.tsx:99 +msgid "Edit Layout" +msgstr "" + +#: src/components/dashboard/DashboardMenu.tsx:108 +msgid "Add Widget" +msgstr "" + +#: src/components/dashboard/DashboardMenu.tsx:117 +msgid "Remove Widgets" +msgstr "" + +#: src/components/dashboard/DashboardWidget.tsx:65 +msgid "Remove this widget from the dashboard" +msgstr "" + +#: src/components/dashboard/DashboardWidgetDrawer.tsx:77 +msgid "Filter dashboard widgets" +msgstr "" + +#: src/components/dashboard/DashboardWidgetDrawer.tsx:98 +msgid "Add this widget to the dashboard" +msgstr "" + +#: src/components/dashboard/DashboardWidgetDrawer.tsx:123 +msgid "No Widgets Available" +msgstr "" + +#: src/components/dashboard/DashboardWidgetDrawer.tsx:124 +msgid "There are no more widgets available for the dashboard" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:19 +msgid "Subscribed Parts" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:20 +msgid "Show the number of parts which you have subscribed to" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:26 +msgid "Subscribed Categories" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:27 +msgid "Show the number of part categories which you have subscribed to" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:35 +#: src/pages/part/PartSchedulingDetail.tsx:304 +#: src/tables/part/PartTable.tsx:238 +msgid "Low Stock" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:37 +msgid "Show the number of parts which are low on stock" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:43 +msgid "Expired Stock Items" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:45 +msgid "Show the number of stock items which have expired" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:51 +msgid "Stale Stock Items" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:53 +msgid "Show the number of stock items which are stale" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:59 +msgid "Active Build Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:61 +msgid "Show the number of build orders which are currently active" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:66 +msgid "Overdue Build Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:68 +msgid "Show the number of build orders which are overdue" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:73 +msgid "Assigned Build Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:75 +msgid "Show the number of build orders which are assigned to you" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:80 +msgid "Active Sales Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:82 +msgid "Show the number of sales orders which are currently active" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:87 +msgid "Overdue Sales Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:89 +msgid "Show the number of sales orders which are overdue" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:94 +msgid "Assigned Sales Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:96 +msgid "Show the number of sales orders which are assigned to you" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:101 +msgid "Active Purchase Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:103 +msgid "Show the number of purchase orders which are currently active" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:108 +msgid "Overdue Purchase Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:110 +msgid "Show the number of purchase orders which are overdue" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:115 +msgid "Assigned Purchase Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:117 +msgid "Show the number of purchase orders which are assigned to you" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:122 +msgid "Active Return Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:124 +msgid "Show the number of return orders which are currently active" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:129 +msgid "Overdue Return Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:131 +msgid "Show the number of return orders which are overdue" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:136 +msgid "Assigned Return Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:138 +msgid "Show the number of return orders which are assigned to you" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:149 +#: src/components/dashboard/widgets/GetStartedWidget.tsx:15 +#: src/defaults/links.tsx:38 +msgid "Getting Started" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:150 +#: src/defaults/links.tsx:41 +msgid "Getting started with InvenTree" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:157 +#: src/components/dashboard/widgets/NewsWidget.tsx:123 +msgid "News Updates" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:158 +msgid "The latest news from InvenTree" +msgstr "" + +#: src/components/dashboard/widgets/ColorToggleWidget.tsx:18 +#: src/components/nav/MainMenu.tsx:77 +msgid "Change Color Mode" +msgstr "" + +#: src/components/dashboard/widgets/ColorToggleWidget.tsx:23 +msgid "Change the color mode of the user interface" +msgstr "" + +#: src/components/dashboard/widgets/LanguageSelectWidget.tsx:18 +msgid "Change Language" +msgstr "" + +#: src/components/dashboard/widgets/LanguageSelectWidget.tsx:23 +msgid "Change the language of the user interface" +msgstr "" + +#: src/components/dashboard/widgets/NewsWidget.tsx:61 +#: src/components/nav/NotificationDrawer.tsx:88 +#: src/pages/Notifications.tsx:73 +msgid "Mark as read" +msgstr "" + +#: src/components/dashboard/widgets/NewsWidget.tsx:115 +msgid "Requires Superuser" +msgstr "" + +#: src/components/dashboard/widgets/NewsWidget.tsx:116 +msgid "This widget requires superuser permissions" +msgstr "" + +#: src/components/dashboard/widgets/NewsWidget.tsx:133 +msgid "No News" +msgstr "" + +#: src/components/dashboard/widgets/NewsWidget.tsx:134 +msgid "There are no unread news items" +msgstr "" + +#: src/components/details/Details.tsx:300 msgid "No name defined" msgstr "" -#: src/components/details/DetailsImage.tsx:65 +#: src/components/details/DetailsImage.tsx:69 msgid "Remove Image" msgstr "" -#: src/components/details/DetailsImage.tsx:68 +#: src/components/details/DetailsImage.tsx:72 msgid "Remove the associated image from this item?" msgstr "" -#: src/components/details/DetailsImage.tsx:71 -#: src/forms/StockForms.tsx:533 +#: src/components/details/DetailsImage.tsx:75 +#: src/forms/StockForms.tsx:651 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:199 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:306 -#: src/pages/stock/StockDetail.tsx:526 +#: src/pages/stock/StockDetail.tsx:690 msgid "Remove" msgstr "" -#: src/components/details/DetailsImage.tsx:71 -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:158 -#: src/components/items/ActionDropdown.tsx:215 -#: src/components/items/ActionDropdown.tsx:216 -#: src/contexts/ThemeContext.tsx:43 +#: src/components/details/DetailsImage.tsx:75 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:184 +#: src/components/items/ActionDropdown.tsx:268 +#: src/components/items/ActionDropdown.tsx:269 +#: src/contexts/ThemeContext.tsx:45 #: src/hooks/UseForm.tsx:40 -#: src/tables/FilterSelectDrawer.tsx:205 -#: src/tables/build/BuildOutputTable.tsx:286 +#: src/tables/FilterSelectDrawer.tsx:241 +#: src/tables/RowActions.tsx:59 +#: src/tables/build/BuildOutputTable.tsx:434 msgid "Cancel" msgstr "" -#: src/components/details/DetailsImage.tsx:97 +#: src/components/details/DetailsImage.tsx:101 msgid "Drag and drop to upload" msgstr "" -#: src/components/details/DetailsImage.tsx:100 +#: src/components/details/DetailsImage.tsx:104 msgid "Click to select file(s)" msgstr "" -#: src/components/details/DetailsImage.tsx:226 +#: src/components/details/DetailsImage.tsx:230 msgid "Clear" msgstr "" -#: src/components/details/DetailsImage.tsx:232 -#: src/components/forms/ApiForm.tsx:627 -#: src/contexts/ThemeContext.tsx:43 -#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:60 +#: src/components/details/DetailsImage.tsx:236 +#: src/components/forms/ApiForm.tsx:660 +#: src/contexts/ThemeContext.tsx:45 msgid "Submit" msgstr "" -#: src/components/details/DetailsImage.tsx:272 +#: src/components/details/DetailsImage.tsx:280 msgid "Select from existing images" msgstr "" -#: src/components/details/DetailsImage.tsx:280 +#: src/components/details/DetailsImage.tsx:288 msgid "Select Image" msgstr "" -#: src/components/details/DetailsImage.tsx:292 +#: src/components/details/DetailsImage.tsx:304 +msgid "Download remote image" +msgstr "" + +#: src/components/details/DetailsImage.tsx:319 msgid "Upload new image" msgstr "" -#: src/components/details/DetailsImage.tsx:299 +#: src/components/details/DetailsImage.tsx:326 msgid "Upload Image" msgstr "" -#: src/components/details/DetailsImage.tsx:312 +#: src/components/details/DetailsImage.tsx:339 msgid "Delete image" msgstr "" +#: src/components/details/DetailsImage.tsx:373 +msgid "Download Image" +msgstr "" + +#: src/components/details/DetailsImage.tsx:378 +msgid "Image downloaded successfully" +msgstr "" + #: src/components/details/PartIcons.tsx:43 #~ msgid "Part is a template part (variants can be made from this part)" #~ msgstr "Part is a template part (variants can be made from this part)" @@ -235,36 +514,57 @@ msgstr "" #~ msgid "Part is virtual (not a physical part)" #~ msgstr "Part is virtual (not a physical part)" -#: src/components/editors/NotesEditor.tsx:66 +#: src/components/editors/NotesEditor.tsx:74 msgid "Image upload failed" msgstr "" -#: src/components/editors/NotesEditor.tsx:156 -#: src/components/forms/ApiForm.tsx:467 +#: src/components/editors/NotesEditor.tsx:83 +#: src/components/editors/NotesEditor.tsx:119 +#: src/components/forms/ApiForm.tsx:475 #: src/tables/bom/BomTable.tsx:441 msgid "Success" msgstr "" -#: src/components/editors/NotesEditor.tsx:157 +#: src/components/editors/NotesEditor.tsx:84 +msgid "Image uploaded successfully" +msgstr "" + +#: src/components/editors/NotesEditor.tsx:120 msgid "Notes saved successfully" msgstr "" -#: src/components/editors/NotesEditor.tsx:166 +#: src/components/editors/NotesEditor.tsx:131 msgid "Failed to save notes" msgstr "" -#: src/components/editors/NotesEditor.tsx:198 -msgid "Preview Notes" +#: src/components/editors/NotesEditor.tsx:134 +msgid "Error Saving Notes" msgstr "" -#: src/components/editors/NotesEditor.tsx:198 -msgid "Edit Notes" -msgstr "" +#: src/components/editors/NotesEditor.tsx:151 +#~ msgid "Disable Editing" +#~ msgstr "Disable Editing" -#: src/components/editors/NotesEditor.tsx:212 +#: src/components/editors/NotesEditor.tsx:154 msgid "Save Notes" msgstr "" +#: src/components/editors/NotesEditor.tsx:173 +msgid "Close Editor" +msgstr "" + +#: src/components/editors/NotesEditor.tsx:180 +msgid "Enable Editing" +msgstr "" + +#: src/components/editors/NotesEditor.tsx:198 +#~ msgid "Preview Notes" +#~ msgstr "Preview Notes" + +#: src/components/editors/NotesEditor.tsx:198 +#~ msgid "Edit Notes" +#~ msgstr "Edit Notes" + #: src/components/editors/TemplateEditor/CodeEditor/index.tsx:9 msgid "Code" msgstr "" @@ -281,40 +581,44 @@ msgstr "" msgid "PDF Preview" msgstr "" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:104 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:115 msgid "Error loading template" msgstr "" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:116 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:127 msgid "Error saving template" msgstr "" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:146 -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:274 -msgid "Save & Reload Preview" -msgstr "" - -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:151 -msgid "Are you sure you want to Save & Reload the preview?" -msgstr "" - #: src/components/editors/TemplateEditor/TemplateEditor.tsx:151 #~ msgid "Save & Reload preview?" #~ msgstr "Save & Reload preview?" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:153 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:155 +msgid "Could not load the template from the server." +msgstr "" + +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:172 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:303 +msgid "Save & Reload Preview" +msgstr "" + +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:177 +msgid "Are you sure you want to Save & Reload the preview?" +msgstr "" + +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:179 msgid "To render the preview the current template needs to be replaced on the server with your modifications which may break the label if it is under active use. Do you want to proceed?" msgstr "" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:157 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:183 msgid "Save & Reload" msgstr "" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:189 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:215 msgid "Preview updated" msgstr "" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:190 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:216 msgid "The preview has been updated successfully." msgstr "" @@ -322,15 +626,15 @@ msgstr "" #~ msgid "Save & Reload preview" #~ msgstr "Save & Reload preview" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:266 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:295 msgid "Reload preview" msgstr "" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:267 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:296 msgid "Use the currently stored template from the server" msgstr "" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:275 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:304 msgid "Save the current template and reload the preview" msgstr "" @@ -338,11 +642,11 @@ msgstr "" #~ msgid "to preview" #~ msgstr "to preview" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:333 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:365 msgid "Select instance to preview" msgstr "" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:377 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:409 msgid "Error rendering template" msgstr "" @@ -379,6 +683,7 @@ msgid "This page does not exist" msgstr "" #: src/components/errors/PermissionDenied.tsx:8 +#: src/functions/notifications.tsx:24 msgid "Permission Denied" msgstr "" @@ -394,8 +699,8 @@ msgstr "" msgid "A server error occurred" msgstr "" -#: src/components/forms/ApiForm.tsx:151 -#: src/components/forms/ApiForm.tsx:555 +#: src/components/forms/ApiForm.tsx:154 +#: src/components/forms/ApiForm.tsx:579 msgid "Form Error" msgstr "" @@ -403,22 +708,22 @@ msgstr "" #~ msgid "Form Errors Exist" #~ msgstr "Form Errors Exist" -#: src/components/forms/ApiForm.tsx:563 +#: src/components/forms/ApiForm.tsx:587 msgid "Errors exist for one or more form fields" msgstr "" -#: src/components/forms/ApiForm.tsx:665 -#: src/tables/plugin/PluginListTable.tsx:388 +#: src/components/forms/ApiForm.tsx:698 +#: src/tables/plugin/PluginListTable.tsx:195 msgid "Update" msgstr "" -#: src/components/forms/ApiForm.tsx:685 -#: src/components/items/ActionDropdown.tsx:195 +#: src/components/forms/ApiForm.tsx:718 +#: src/components/items/ActionDropdown.tsx:248 #: src/hooks/UseForm.tsx:122 -#: src/pages/Index/Scan.tsx:343 +#: src/pages/Index/Scan.tsx:357 #: src/pages/Notifications.tsx:123 -#: src/tables/RowActions.tsx:43 -#: src/tables/plugin/PluginListTable.tsx:420 +#: src/tables/RowActions.tsx:49 +#: src/tables/plugin/PluginListTable.tsx:232 msgid "Delete" msgstr "" @@ -428,14 +733,6 @@ msgstr "" #~ msgid "Check your your input and try again." #~ msgstr "Check your your input and try again." -#: src/components/forms/AuthenticationForm.tsx:51 -msgid "Login successful" -msgstr "लॉगिन सफल" - -#: src/components/forms/AuthenticationForm.tsx:52 -msgid "Logged in successfully" -msgstr "" - #: src/components/forms/AuthenticationForm.tsx:52 #~ msgid "Welcome back!" #~ msgstr "Welcome back!" @@ -444,14 +741,22 @@ msgstr "" #~ msgid "Login successfull" #~ msgstr "Login successfull" -#: src/components/forms/AuthenticationForm.tsx:58 +#: src/components/forms/AuthenticationForm.tsx:55 +msgid "Login successful" +msgstr "लॉगिन सफल" + +#: src/components/forms/AuthenticationForm.tsx:56 +msgid "Logged in successfully" +msgstr "" + +#: src/components/forms/AuthenticationForm.tsx:61 msgid "Login failed" msgstr "लॉगिन असफल" -#: src/components/forms/AuthenticationForm.tsx:59 -#: src/components/forms/AuthenticationForm.tsx:76 -#: src/components/forms/AuthenticationForm.tsx:211 -#: src/functions/auth.tsx:164 +#: src/components/forms/AuthenticationForm.tsx:62 +#: src/components/forms/AuthenticationForm.tsx:79 +#: src/components/forms/AuthenticationForm.tsx:214 +#: src/functions/auth.tsx:175 msgid "Check your input and try again." msgstr "" @@ -460,45 +765,46 @@ msgstr "" #~ msgid "Mail delivery successfull" #~ msgstr "Mail delivery successfull" -#: src/components/forms/AuthenticationForm.tsx:70 -#: src/functions/auth.tsx:155 +#: src/components/forms/AuthenticationForm.tsx:73 +#: src/functions/auth.tsx:166 msgid "Mail delivery successful" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:71 +#: src/components/forms/AuthenticationForm.tsx:74 msgid "Check your inbox for the login link. If you have an account, you will receive a login link. Check in spam too." msgstr "" -#: src/components/forms/AuthenticationForm.tsx:75 +#: src/components/forms/AuthenticationForm.tsx:78 msgid "Mail delivery failed" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:95 +#: src/components/forms/AuthenticationForm.tsx:98 msgid "Or continue with other methods" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:106 -#: src/components/forms/AuthenticationForm.tsx:227 +#: src/components/forms/AuthenticationForm.tsx:109 +#: src/components/forms/AuthenticationForm.tsx:230 +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:67 msgid "Username" msgstr "उपयोगकर्ता नाम" -#: src/components/forms/AuthenticationForm.tsx:107 -#: src/components/forms/AuthenticationForm.tsx:228 +#: src/components/forms/AuthenticationForm.tsx:110 +#: src/components/forms/AuthenticationForm.tsx:231 msgid "Your username" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:112 -#: src/components/forms/AuthenticationForm.tsx:240 -#: src/pages/Auth/Set-Password.tsx:106 +#: src/components/forms/AuthenticationForm.tsx:115 +#: src/components/forms/AuthenticationForm.tsx:243 +#: src/pages/Auth/Set-Password.tsx:101 msgid "Password" msgstr "पासवर्ड" -#: src/components/forms/AuthenticationForm.tsx:113 -#: src/components/forms/AuthenticationForm.tsx:241 +#: src/components/forms/AuthenticationForm.tsx:116 +#: src/components/forms/AuthenticationForm.tsx:244 msgid "Your password" msgstr "आपका पासवर्ड" -#: src/components/forms/AuthenticationForm.tsx:125 +#: src/components/forms/AuthenticationForm.tsx:128 #: src/pages/Auth/Reset.tsx:26 msgid "Reset password" msgstr "पासवर्ड रीसेट करें" @@ -507,77 +813,79 @@ msgstr "पासवर्ड रीसेट करें" #~ msgid "Log in" #~ msgstr "Log in" -#: src/components/forms/AuthenticationForm.tsx:134 -#: src/components/forms/AuthenticationForm.tsx:233 +#: src/components/forms/AuthenticationForm.tsx:136 +#~ msgid "I will use username and password" +#~ msgstr "I will use username and password" + +#: src/components/forms/AuthenticationForm.tsx:137 +#: src/components/forms/AuthenticationForm.tsx:236 #: src/pages/Auth/Reset.tsx:31 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:51 msgid "Email" msgstr "ई-मेल" -#: src/components/forms/AuthenticationForm.tsx:135 +#: src/components/forms/AuthenticationForm.tsx:138 #: src/pages/Auth/Reset.tsx:32 -#: src/pages/Auth/Set-Password.tsx:107 +#: src/pages/Auth/Set-Password.tsx:102 msgid "We will send you a link to login - if you are registered" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:136 -#~ msgid "I will use username and password" -#~ msgstr "I will use username and password" - -#: src/components/forms/AuthenticationForm.tsx:151 +#: src/components/forms/AuthenticationForm.tsx:154 msgid "Send me an email" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:153 +#: src/components/forms/AuthenticationForm.tsx:156 msgid "Use username and password" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:162 +#: src/components/forms/AuthenticationForm.tsx:165 msgid "Log In" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:164 +#: src/components/forms/AuthenticationForm.tsx:167 +#: src/pages/Auth/Reset.tsx:41 +#: src/pages/Auth/Set-Password.tsx:107 msgid "Send Email" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:193 +#: src/components/forms/AuthenticationForm.tsx:196 msgid "Registration successful" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:194 +#: src/components/forms/AuthenticationForm.tsx:197 msgid "Please confirm your email address to complete the registration" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:210 +#: src/components/forms/AuthenticationForm.tsx:213 msgid "Input error" msgstr "इनपुट त्रुटि" -#: src/components/forms/AuthenticationForm.tsx:234 +#: src/components/forms/AuthenticationForm.tsx:237 msgid "This will be used for a confirmation" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:246 +#: src/components/forms/AuthenticationForm.tsx:249 msgid "Password repeat" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:247 +#: src/components/forms/AuthenticationForm.tsx:250 msgid "Repeat password" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:259 -#: src/components/forms/AuthenticationForm.tsx:304 +#: src/components/forms/AuthenticationForm.tsx:262 +#: src/components/forms/AuthenticationForm.tsx:307 msgid "Register" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:265 +#: src/components/forms/AuthenticationForm.tsx:268 msgid "Or use SSO" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:296 +#: src/components/forms/AuthenticationForm.tsx:299 msgid "Don't have an account?" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:315 +#: src/components/forms/AuthenticationForm.tsx:318 msgid "Go back to login" msgstr "" @@ -588,19 +896,20 @@ msgstr "" #: src/components/forms/HostOptionsForm.tsx:42 #: src/components/forms/HostOptionsForm.tsx:70 +#: src/components/plugins/PluginDrawer.tsx:69 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:410 +#: src/pages/Index/Settings/AdminCenter/UnitManagmentPanel.tsx:19 #: src/pages/part/CategoryDetail.tsx:81 -#: src/pages/part/PartDetail.tsx:143 -#: src/pages/stock/LocationDetail.tsx:89 -#: src/tables/machine/MachineTypeTable.tsx:65 -#: src/tables/machine/MachineTypeTable.tsx:109 -#: src/tables/machine/MachineTypeTable.tsx:216 -#: src/tables/machine/MachineTypeTable.tsx:319 +#: src/pages/part/PartDetail.tsx:164 +#: src/pages/stock/LocationDetail.tsx:83 +#: src/tables/machine/MachineTypeTable.tsx:70 +#: src/tables/machine/MachineTypeTable.tsx:119 +#: src/tables/machine/MachineTypeTable.tsx:237 +#: src/tables/machine/MachineTypeTable.tsx:340 #: src/tables/plugin/PluginErrorTable.tsx:33 -#: src/tables/plugin/PluginListTable.tsx:126 #: src/tables/purchasing/ManufacturerPartParameterTable.tsx:32 #: src/tables/settings/GroupTable.tsx:147 -#: src/tables/settings/PendingTasksTable.tsx:28 +#: src/tables/settings/PendingTasksTable.tsx:32 #: src/tables/stock/LocationTypesTable.tsx:69 msgid "Name" msgstr "नाम" @@ -650,7 +959,7 @@ msgid "Uncategorized" msgstr "" #: src/components/forms/fields/IconField.tsx:209 -#: src/components/nav/Layout.tsx:70 +#: src/components/nav/Layout.tsx:77 #: src/tables/part/PartThumbTable.tsx:192 msgid "Search..." msgstr "" @@ -667,28 +976,27 @@ msgstr "" msgid "{0} icons" msgstr "" -#: src/components/forms/fields/RelatedModelField.tsx:318 -#: src/pages/Index/Settings/UserSettings.tsx:96 +#: src/components/forms/fields/RelatedModelField.tsx:319 +#: src/pages/Index/Settings/UserSettings.tsx:97 #: src/tables/Search.tsx:23 msgid "Search" msgstr "" -#: src/components/forms/fields/RelatedModelField.tsx:319 +#: src/components/forms/fields/RelatedModelField.tsx:320 #: src/components/modals/AboutInvenTreeModal.tsx:81 -#: src/components/widgets/WidgetLayout.tsx:120 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:316 msgid "Loading" msgstr "" -#: src/components/forms/fields/RelatedModelField.tsx:321 +#: src/components/forms/fields/RelatedModelField.tsx:322 msgid "No results found" msgstr "" -#: src/components/forms/fields/TableField.tsx:52 -msgid "modelRenderer entry required for tables" -msgstr "" +#: src/components/forms/fields/TableField.tsx:72 +#~ msgid "modelRenderer entry required for tables" +#~ msgstr "modelRenderer entry required for tables" -#: src/components/forms/fields/TableField.tsx:76 +#: src/components/forms/fields/TableField.tsx:167 msgid "No entries available" msgstr "" @@ -741,7 +1049,7 @@ msgid "Filter by row validation status" msgstr "" #: src/components/importer/ImportDataSelector.tsx:365 -#: src/tables/build/BuildOutputTable.tsx:266 +#: src/tables/build/BuildOutputTable.tsx:407 msgid "Complete" msgstr "" @@ -749,20 +1057,21 @@ msgstr "" msgid "Filter by row completion status" msgstr "" -#: src/components/importer/ImportDataSelector.tsx:383 +#: src/components/importer/ImportDataSelector.tsx:384 msgid "Import selected rows" msgstr "" -#: src/components/importer/ImportDataSelector.tsx:398 +#: src/components/importer/ImportDataSelector.tsx:399 msgid "Processing Data" msgstr "" -#: src/components/importer/ImporterColumnSelector.tsx:50 -#: src/components/importer/ImporterColumnSelector.tsx:176 +#: src/components/importer/ImporterColumnSelector.tsx:53 +#: src/components/importer/ImporterColumnSelector.tsx:179 +#: src/components/items/ErrorItem.tsx:12 msgid "An error occurred" msgstr "" -#: src/components/importer/ImporterColumnSelector.tsx:62 +#: src/components/importer/ImporterColumnSelector.tsx:65 msgid "Select column, or leave blank to ignore this field." msgstr "" @@ -778,51 +1087,51 @@ msgstr "" #~ msgid "Imported Column Name" #~ msgstr "Imported Column Name" -#: src/components/importer/ImporterColumnSelector.tsx:182 +#: src/components/importer/ImporterColumnSelector.tsx:185 msgid "Ignore this field" msgstr "" -#: src/components/importer/ImporterColumnSelector.tsx:196 +#: src/components/importer/ImporterColumnSelector.tsx:199 msgid "Mapping data columns to database fields" msgstr "" -#: src/components/importer/ImporterColumnSelector.tsx:201 +#: src/components/importer/ImporterColumnSelector.tsx:204 msgid "Accept Column Mapping" msgstr "" -#: src/components/importer/ImporterColumnSelector.tsx:214 +#: src/components/importer/ImporterColumnSelector.tsx:217 msgid "Database Field" msgstr "" -#: src/components/importer/ImporterColumnSelector.tsx:215 +#: src/components/importer/ImporterColumnSelector.tsx:218 msgid "Field Description" msgstr "" -#: src/components/importer/ImporterColumnSelector.tsx:216 +#: src/components/importer/ImporterColumnSelector.tsx:219 msgid "Imported Column" msgstr "" -#: src/components/importer/ImporterColumnSelector.tsx:217 +#: src/components/importer/ImporterColumnSelector.tsx:220 msgid "Default Value" msgstr "" -#: src/components/importer/ImporterDrawer.tsx:44 +#: src/components/importer/ImporterDrawer.tsx:46 msgid "Upload File" msgstr "" -#: src/components/importer/ImporterDrawer.tsx:45 +#: src/components/importer/ImporterDrawer.tsx:47 msgid "Map Columns" msgstr "" -#: src/components/importer/ImporterDrawer.tsx:46 +#: src/components/importer/ImporterDrawer.tsx:48 msgid "Import Data" msgstr "" -#: src/components/importer/ImporterDrawer.tsx:47 +#: src/components/importer/ImporterDrawer.tsx:49 msgid "Process Data" msgstr "" -#: src/components/importer/ImporterDrawer.tsx:48 +#: src/components/importer/ImporterDrawer.tsx:50 msgid "Complete Import" msgstr "" @@ -830,28 +1139,28 @@ msgstr "" #~ msgid "Cancel import session" #~ msgstr "Cancel import session" -#: src/components/importer/ImporterDrawer.tsx:104 +#: src/components/importer/ImporterDrawer.tsx:106 msgid "Import Complete" msgstr "" -#: src/components/importer/ImporterDrawer.tsx:107 +#: src/components/importer/ImporterDrawer.tsx:109 msgid "Data has been imported successfully" msgstr "" -#: src/components/importer/ImporterDrawer.tsx:109 -#: src/components/importer/ImporterDrawer.tsx:118 +#: src/components/importer/ImporterDrawer.tsx:111 +#: src/components/importer/ImporterDrawer.tsx:120 msgid "Close" msgstr "" -#: src/components/importer/ImporterDrawer.tsx:115 +#: src/components/importer/ImporterDrawer.tsx:117 msgid "Unknown Status" msgstr "" -#: src/components/importer/ImporterDrawer.tsx:116 +#: src/components/importer/ImporterDrawer.tsx:118 msgid "Import session has unknown status" msgstr "" -#: src/components/importer/ImporterDrawer.tsx:135 +#: src/components/importer/ImporterDrawer.tsx:137 msgid "Importing Data" msgstr "" @@ -860,85 +1169,115 @@ msgid "Importing Records" msgstr "" #: src/components/importer/ImporterImportProgress.tsx:39 -msgid "Imported rows" +#: src/tables/settings/ImportSessionTable.tsx:78 +msgid "Imported Rows" msgstr "" -#: src/components/items/ActionDropdown.tsx:121 -msgid "Barcode Actions" +#: src/components/importer/ImporterImportProgress.tsx:39 +#~ msgid "Imported rows" +#~ msgstr "Imported rows" + +#: src/components/items/ActionDropdown.tsx:126 +msgid "Options" msgstr "" #: src/components/items/ActionDropdown.tsx:140 -msgid "View Barcode" -msgstr "" +#~ msgid "View Barcode" +#~ msgstr "View Barcode" -#: src/components/items/ActionDropdown.tsx:147 -msgid "View" -msgstr "" - -#: src/components/items/ActionDropdown.tsx:148 -msgid "View barcode" -msgstr "" - -#: src/components/items/ActionDropdown.tsx:161 -msgid "Link Barcode" +#: src/components/items/ActionDropdown.tsx:162 +#: src/tables/InvenTreeTableHeader.tsx:159 +#: src/tables/InvenTreeTableHeader.tsx:160 +msgid "Barcode Actions" msgstr "" #: src/components/items/ActionDropdown.tsx:162 -msgid "Link custom barcode" +#~ msgid "Link custom barcode" +#~ msgstr "Link custom barcode" + +#: src/components/items/ActionDropdown.tsx:167 +msgid "View" msgstr "" -#: src/components/items/ActionDropdown.tsx:173 -#: src/forms/PurchaseOrderForms.tsx:426 -msgid "Unlink Barcode" +#: src/components/items/ActionDropdown.tsx:169 +msgid "View barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:174 -msgid "Unlink custom barcode" +#: src/components/items/ActionDropdown.tsx:175 +msgid "Link Barcode" +msgstr "" + +#: src/components/items/ActionDropdown.tsx:177 +msgid "Link a custom barcode to this item" msgstr "" #: src/components/items/ActionDropdown.tsx:183 -#: src/tables/RowActions.tsx:33 +#: src/components/items/QRCode.tsx:193 +#: src/forms/PurchaseOrderForms.tsx:464 +msgid "Unlink Barcode" +msgstr "" + +#: src/components/items/ActionDropdown.tsx:185 +msgid "Unlink custom barcode" +msgstr "" + +#: src/components/items/ActionDropdown.tsx:236 +#: src/tables/RowActions.tsx:39 msgid "Edit" msgstr "" -#: src/components/items/ActionDropdown.tsx:184 +#: src/components/items/ActionDropdown.tsx:237 msgid "Edit item" msgstr "" -#: src/components/items/ActionDropdown.tsx:196 +#: src/components/items/ActionDropdown.tsx:249 msgid "Delete item" msgstr "" -#: src/components/items/ActionDropdown.tsx:204 -#: src/components/items/ActionDropdown.tsx:205 +#: src/components/items/ActionDropdown.tsx:257 +#: src/components/items/ActionDropdown.tsx:258 msgid "Hold" msgstr "" -#: src/components/items/ActionDropdown.tsx:227 -#: src/tables/RowActions.tsx:23 +#: src/components/items/ActionDropdown.tsx:280 +#: src/tables/RowActions.tsx:29 msgid "Duplicate" msgstr "" -#: src/components/items/ActionDropdown.tsx:228 +#: src/components/items/ActionDropdown.tsx:281 msgid "Duplicate item" msgstr "" +#: src/components/items/BarcodeInput.tsx:23 +msgid "Scan barcode data here using barcode scanner" +msgstr "" + +#: src/components/items/BarcodeInput.tsx:24 +#: src/tables/settings/BarcodeScanHistoryTable.tsx:65 +msgid "Barcode" +msgstr "" + +#: src/components/items/BarcodeInput.tsx:25 +msgid "Scan" +msgstr "" + #: src/components/items/DocTooltip.tsx:92 +#: src/components/items/GettingStartedCarousel.tsx:20 msgid "Read More" msgstr "" -#: src/components/items/ErrorItem.tsx:5 -#: src/tables/InvenTreeTable.tsx:487 +#: src/components/items/ErrorItem.tsx:8 +#: src/tables/InvenTreeTable.tsx:473 msgid "Unknown error" msgstr "" -#: src/components/items/ErrorItem.tsx:10 -msgid "An error occurred:" -msgstr "" +#: src/components/items/ErrorItem.tsx:13 +#~ msgid "An error occurred:" +#~ msgstr "An error occurred:" #: src/components/items/GettingStartedCarousel.tsx:27 -msgid "Read more" -msgstr "" +#~ msgid "Read more" +#~ msgstr "Read more" #: src/components/items/InfoItem.tsx:27 msgid "None" @@ -965,30 +1304,51 @@ msgstr "" msgid "This panel is a placeholder." msgstr "" -#: src/components/items/QRCode.tsx:87 +#: src/components/items/QRCode.tsx:89 msgid "Low (7%)" msgstr "" -#: src/components/items/QRCode.tsx:88 +#: src/components/items/QRCode.tsx:90 msgid "Medium (15%)" msgstr "" -#: src/components/items/QRCode.tsx:89 +#: src/components/items/QRCode.tsx:91 msgid "Quartile (25%)" msgstr "" -#: src/components/items/QRCode.tsx:90 +#: src/components/items/QRCode.tsx:92 msgid "High (30%)" msgstr "" -#: src/components/items/QRCode.tsx:107 -msgid "Barcode Data:" +#: src/components/items/QRCode.tsx:100 +msgid "Custom barcode" +msgstr "" + +#: src/components/items/QRCode.tsx:101 +msgid "A custom barcode is registered for this item. The shown code is not that custom barcode." msgstr "" #: src/components/items/QRCode.tsx:118 +msgid "Barcode Data:" +msgstr "" + +#: src/components/items/QRCode.tsx:129 msgid "Select Error Correction Level" msgstr "" +#: src/components/items/QRCode.tsx:171 +#: src/pages/part/PartDetail.tsx:239 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:187 +#: src/pages/sales/ReturnOrderDetail.tsx:157 +#: src/pages/sales/SalesOrderDetail.tsx:169 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:166 +msgid "Link" +msgstr "" + +#: src/components/items/QRCode.tsx:190 +msgid "This will remove the link to the associated barcode" +msgstr "" + #: src/components/modals/AboutInvenTreeModal.tsx:99 msgid "Version Information" msgstr "" @@ -1062,11 +1422,11 @@ msgstr "" msgid "Submit Bug Report" msgstr "" -#: src/components/modals/AboutInvenTreeModal.tsx:183 +#: src/components/modals/AboutInvenTreeModal.tsx:181 msgid "Copy version information" msgstr "" -#: src/components/modals/AboutInvenTreeModal.tsx:192 +#: src/components/modals/AboutInvenTreeModal.tsx:189 #: src/components/modals/ServerInfoModal.tsx:147 msgid "Dismiss" msgstr "" @@ -1091,61 +1451,20 @@ msgstr "" msgid "{key} Packages" msgstr "" -#: src/components/modals/QrCodeModal.tsx:72 +#: src/components/modals/QrCodeModal.tsx:24 msgid "Unknown response" msgstr "" -#: src/components/modals/QrCodeModal.tsx:102 -#: src/pages/Index/Scan.tsx:636 -msgid "Error while getting camera" -msgstr "" - -#: src/components/modals/QrCodeModal.tsx:125 -#: src/pages/Index/Scan.tsx:659 -msgid "Error while scanning" -msgstr "" - -#: src/components/modals/QrCodeModal.tsx:139 -#: src/pages/Index/Scan.tsx:673 -msgid "Error while stopping" -msgstr "" - -#: src/components/modals/QrCodeModal.tsx:154 -#: src/defaults/menuItems.tsx:21 -#: src/pages/Index/Scan.tsx:746 -msgid "Scanning" -msgstr "" - -#: src/components/modals/QrCodeModal.tsx:154 -#: src/pages/Index/Scan.tsx:746 -msgid "Not scanning" -msgstr "" - -#: src/components/modals/QrCodeModal.tsx:159 -#: src/pages/Index/Scan.tsx:752 -msgid "Select Camera" -msgstr "कैमरा चुनें" - -#: src/components/modals/QrCodeModal.tsx:169 -#: src/pages/Index/Scan.tsx:737 -msgid "Start scanning" -msgstr "" - -#: src/components/modals/QrCodeModal.tsx:176 -#: src/pages/Index/Scan.tsx:729 -msgid "Stop scanning" -msgstr "" - -#: src/components/modals/QrCodeModal.tsx:181 +#: src/components/modals/QrCodeModal.tsx:39 msgid "No scans yet!" msgstr "" -#: src/components/modals/QrCodeModal.tsx:201 +#: src/components/modals/QrCodeModal.tsx:57 msgid "Close modal" msgstr "" #: src/components/modals/ServerInfoModal.tsx:26 -#: src/pages/Index/Settings/SystemSettings.tsx:38 +#: src/pages/Index/Settings/SystemSettings.tsx:37 msgid "Server" msgstr "" @@ -1206,6 +1525,7 @@ msgid "Background Worker" msgstr "" #: src/components/modals/ServerInfoModal.tsx:101 +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:29 msgid "Background worker not running" msgstr "" @@ -1218,8 +1538,8 @@ msgid "Email settings not configured" msgstr "" #: src/components/modals/ServerInfoModal.tsx:121 -#: src/tables/plugin/PluginListTable.tsx:144 -#: src/tables/plugin/PluginListTable.tsx:294 +#: src/components/plugins/PluginDrawer.tsx:89 +#: src/tables/plugin/PluginListTable.tsx:116 msgid "Version" msgstr "" @@ -1227,7 +1547,7 @@ msgstr "" msgid "Server Version" msgstr "" -#: src/components/nav/Layout.tsx:73 +#: src/components/nav/Layout.tsx:80 msgid "Nothing found..." msgstr "" @@ -1237,18 +1557,26 @@ msgstr "" #~ msgstr "Profile" #: src/components/nav/MainMenu.tsx:52 +#: src/components/nav/NavigationDrawer.tsx:178 #: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:28 msgid "Settings" msgstr "" #: src/components/nav/MainMenu.tsx:59 -#: src/defaults/menuItems.tsx:15 -msgid "Account settings" +#: src/pages/Index/Settings/UserSettings.tsx:152 +msgid "Account Settings" msgstr "" +#: src/components/nav/MainMenu.tsx:59 +#: src/defaults/menuItems.tsx:15 +#~ msgid "Account settings" +#~ msgstr "Account settings" + #: src/components/nav/MainMenu.tsx:67 -#: src/defaults/menuItems.tsx:58 -#: src/pages/Index/Settings/SystemSettings.tsx:315 +#: src/components/nav/NavigationDrawer.tsx:141 +#: src/components/nav/SettingsHeader.tsx:49 +#: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:37 +#: src/pages/Index/Settings/SystemSettings.tsx:310 msgid "System Settings" msgstr "" @@ -1260,14 +1588,11 @@ msgstr "" #~ msgid "Switch to pseudo language" #~ msgstr "Switch to pseudo language" -#: src/components/nav/MainMenu.tsx:77 -msgid "Change Color Mode" -msgstr "" - #: src/components/nav/MainMenu.tsx:86 -#: src/defaults/actions.tsx:71 -#: src/defaults/menuItems.tsx:63 -#: src/pages/Index/Settings/AdminCenter/Index.tsx:221 +#: src/components/nav/NavigationDrawer.tsx:148 +#: src/components/nav/SettingsHeader.tsx:50 +#: src/defaults/actions.tsx:63 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:251 msgid "Admin Center" msgstr "" @@ -1275,458 +1600,732 @@ msgstr "" msgid "Logout" msgstr "" -#: src/components/nav/NavHoverMenu.tsx:65 -#: src/defaults/actions.tsx:60 -msgid "Open Navigation" -msgstr "" - #: src/components/nav/NavHoverMenu.tsx:84 -msgid "View all" -msgstr "" +#~ msgid "View all" +#~ msgstr "View all" #: src/components/nav/NavHoverMenu.tsx:100 #: src/components/nav/NavHoverMenu.tsx:110 -msgid "Get started" -msgstr "" +#~ msgid "Get started" +#~ msgstr "Get started" #: src/components/nav/NavHoverMenu.tsx:103 -msgid "Overview over high-level objects, functions and possible usecases." -msgstr "" - -#: src/components/nav/NavigationDrawer.tsx:57 -msgid "Navigation" -msgstr "" +#~ msgid "Overview over high-level objects, functions and possible usecases." +#~ msgstr "Overview over high-level objects, functions and possible usecases." #: src/components/nav/NavigationDrawer.tsx:60 -msgid "Pages" +#~ msgid "Pages" +#~ msgstr "Pages" + +#: src/components/nav/NavigationDrawer.tsx:77 +#: src/components/render/ModelType.tsx:31 +#: src/defaults/links.tsx:10 +#: src/pages/Index/Settings/SystemSettings.tsx:172 +#: src/pages/part/CategoryDetail.tsx:125 +#: src/pages/part/CategoryDetail.tsx:249 +#: src/pages/part/CategoryDetail.tsx:279 +#: src/pages/part/PartDetail.tsx:856 +msgid "Parts" msgstr "" -#: src/components/nav/NavigationDrawer.tsx:65 -#: src/pages/Index/Settings/AdminCenter/Index.tsx:176 -#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:41 -msgid "Plugins" +#: src/components/nav/NavigationDrawer.tsx:84 +#: src/components/render/Part.tsx:30 +#: src/defaults/links.tsx:11 +#: src/pages/Index/Settings/SystemSettings.tsx:205 +#: src/pages/part/PartDetail.tsx:593 +#: src/pages/stock/LocationDetail.tsx:352 +#: src/pages/stock/StockDetail.tsx:528 +#: src/tables/stock/StockItemTable.tsx:69 +msgid "Stock" msgstr "" -#: src/components/nav/NavigationDrawer.tsx:75 -#: src/defaults/actions.tsx:32 -msgid "Documentation" +#: src/components/nav/NavigationDrawer.tsx:91 +#: src/defaults/links.tsx:13 +#: src/pages/build/BuildDetail.tsx:530 +#: src/pages/build/BuildIndex.tsx:36 +msgid "Manufacturing" msgstr "" -#: src/components/nav/NavigationDrawer.tsx:78 -msgid "About" +#: src/components/nav/NavigationDrawer.tsx:98 +#: src/defaults/links.tsx:18 +#: src/pages/company/ManufacturerDetail.tsx:9 +#: src/pages/company/ManufacturerPartDetail.tsx:258 +#: src/pages/company/SupplierDetail.tsx:9 +#: src/pages/company/SupplierPartDetail.tsx:336 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:480 +#: src/pages/purchasing/PurchasingIndex.tsx:60 +msgid "Purchasing" msgstr "" -#: src/components/nav/NotificationDrawer.tsx:92 -#: src/pages/Index/Settings/SystemSettings.tsx:109 -#: src/pages/Index/Settings/UserSettings.tsx:126 +#: src/components/nav/NavigationDrawer.tsx:105 +#: src/defaults/links.tsx:22 +#: src/pages/company/CustomerDetail.tsx:9 +#: src/pages/sales/ReturnOrderDetail.tsx:469 +#: src/pages/sales/SalesIndex.tsx:53 +#: src/pages/sales/SalesOrderDetail.tsx:520 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:343 +msgid "Sales" +msgstr "" + +#: src/components/nav/NavigationDrawer.tsx:129 +#: src/components/nav/NotificationDrawer.tsx:178 +#: src/pages/Index/Settings/SystemSettings.tsx:110 +#: src/pages/Index/Settings/UserSettings.tsx:127 #: src/pages/Notifications.tsx:65 #: src/pages/Notifications.tsx:151 msgid "Notifications" msgstr "" -#: src/components/nav/NotificationDrawer.tsx:94 +#: src/components/nav/NavigationDrawer.tsx:135 +#: src/components/nav/SettingsHeader.tsx:48 +msgid "User Settings" +msgstr "" + +#: src/components/nav/NavigationDrawer.tsx:173 +msgid "Navigation" +msgstr "" + +#: src/components/nav/NavigationDrawer.tsx:183 +#: src/forms/PurchaseOrderForms.tsx:689 +#: src/forms/StockForms.tsx:614 +#: src/forms/StockForms.tsx:651 +#: src/forms/StockForms.tsx:677 +#: src/forms/StockForms.tsx:705 +#: src/forms/StockForms.tsx:736 +#: src/forms/StockForms.tsx:771 +#: src/forms/StockForms.tsx:813 +#: src/forms/StockForms.tsx:851 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:413 +#: src/tables/RowActions.tsx:129 +#: src/tables/build/BuildLineTable.tsx:101 +msgid "Actions" +msgstr "" + +#: src/components/nav/NavigationDrawer.tsx:191 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:205 +#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:44 +msgid "Plugins" +msgstr "" + +#: src/components/nav/NavigationDrawer.tsx:204 +#: src/defaults/actions.tsx:24 +msgid "Documentation" +msgstr "" + +#: src/components/nav/NavigationDrawer.tsx:210 +msgid "About" +msgstr "" + +#: src/components/nav/NotificationDrawer.tsx:180 msgid "Mark all as read" msgstr "" -#: src/components/nav/NotificationDrawer.tsx:104 +#: src/components/nav/NotificationDrawer.tsx:190 msgid "View all notifications" msgstr "" -#: src/components/nav/NotificationDrawer.tsx:123 +#: src/components/nav/NotificationDrawer.tsx:210 msgid "You have no unread notifications." msgstr "" -#: src/components/nav/NotificationDrawer.tsx:139 -#: src/components/nav/NotificationDrawer.tsx:145 -#: src/tables/notifications/NotificationsTable.tsx:36 -msgid "Notification" -msgstr "" - -#: src/components/nav/NotificationDrawer.tsx:168 -#: src/pages/Notifications.tsx:73 -msgid "Mark as read" -msgstr "" - -#: src/components/nav/SearchDrawer.tsx:78 +#: src/components/nav/SearchDrawer.tsx:85 msgid "results" msgstr "" -#: src/components/nav/SearchDrawer.tsx:370 +#: src/components/nav/SearchDrawer.tsx:380 msgid "Enter search text" msgstr "" -#: src/components/nav/SearchDrawer.tsx:397 +#: src/components/nav/SearchDrawer.tsx:391 +msgid "Refresh search results" +msgstr "" + +#: src/components/nav/SearchDrawer.tsx:402 +#: src/components/nav/SearchDrawer.tsx:409 msgid "Search Options" msgstr "" -#: src/components/nav/SearchDrawer.tsx:400 +#: src/components/nav/SearchDrawer.tsx:412 msgid "Regex search" msgstr "" -#: src/components/nav/SearchDrawer.tsx:410 +#: src/components/nav/SearchDrawer.tsx:421 msgid "Whole word search" msgstr "" -#: src/components/nav/SearchDrawer.tsx:451 +#: src/components/nav/SearchDrawer.tsx:461 msgid "An error occurred during search query" msgstr "" #: src/components/nav/SearchDrawer.tsx:462 -msgid "No results" +#~ msgid "No results" +#~ msgstr "No results" + +#: src/components/nav/SearchDrawer.tsx:472 +#: src/tables/part/PartTestTemplateTable.tsx:76 +msgid "No Results" msgstr "" -#: src/components/nav/SearchDrawer.tsx:465 +#: src/components/nav/SearchDrawer.tsx:475 msgid "No results available for search query" msgstr "" -#: src/components/render/Instance.tsx:217 +#: src/components/panels/AttachmentPanel.tsx:18 +msgid "Attachments" +msgstr "" + +#: src/components/panels/NotesPanel.tsx:24 +#: src/tables/build/BuildOrderTestTable.tsx:143 +#: src/tables/stock/StockTrackingTable.tsx:204 +msgid "Notes" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:47 +msgid "Plugin Inactive" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:50 +msgid "Plugin is not active" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:60 +msgid "Plugin Information" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:74 +#: src/pages/build/BuildDetail.tsx:116 +#: src/pages/company/CompanyDetail.tsx:89 +#: src/pages/company/ManufacturerPartDetail.tsx:89 +#: src/pages/company/ManufacturerPartDetail.tsx:116 +#: src/pages/company/SupplierPartDetail.tsx:140 +#: src/pages/part/CategoryDetail.tsx:101 +#: src/pages/part/PartDetail.tsx:178 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:136 +#: src/pages/sales/ReturnOrderDetail.tsx:107 +#: src/pages/sales/SalesOrderDetail.tsx:116 +#: src/pages/stock/LocationDetail.tsx:103 +#: src/tables/ColumnRenderers.tsx:92 +#: src/tables/bom/UsedInTable.tsx:44 +#: src/tables/build/BuildAllocatedStockTable.tsx:83 +#: src/tables/build/BuildLineTable.tsx:329 +#: src/tables/machine/MachineTypeTable.tsx:74 +#: src/tables/machine/MachineTypeTable.tsx:129 +#: src/tables/machine/MachineTypeTable.tsx:240 +#: src/tables/machine/MachineTypeTable.tsx:344 +#: src/tables/part/RelatedPartTable.tsx:66 +#: src/tables/plugin/PluginListTable.tsx:99 +#: src/tables/sales/SalesOrderAllocationTable.tsx:87 +#: src/tables/sales/SalesOrderLineItemTable.tsx:75 +#: src/tables/stock/LocationTypesTable.tsx:74 +msgid "Description" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:79 +msgid "Author" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:84 +#: src/pages/part/PartSchedulingDetail.tsx:277 +#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:40 +#: src/pages/part/pricing/SaleHistoryPanel.tsx:38 +#: src/tables/ColumnRenderers.tsx:215 +#: src/tables/build/BuildOrderTestTable.tsx:151 +#: src/tables/settings/StocktakeReportTable.tsx:40 +msgid "Date" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:94 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:398 +#: src/pages/part/PartDetail.tsx:331 +#: src/tables/bom/UsedInTable.tsx:84 +#: src/tables/company/CompanyTable.tsx:62 +#: src/tables/company/CompanyTable.tsx:96 +#: src/tables/machine/MachineListTable.tsx:333 +#: src/tables/machine/MachineListTable.tsx:605 +#: src/tables/part/ParametricPartTable.tsx:223 +#: src/tables/part/PartTable.tsx:178 +#: src/tables/part/PartVariantTable.tsx:15 +#: src/tables/plugin/PluginListTable.tsx:94 +#: src/tables/plugin/PluginListTable.tsx:401 +#: src/tables/purchasing/SupplierPartTable.tsx:100 +#: src/tables/purchasing/SupplierPartTable.tsx:190 +#: src/tables/settings/UserTable.tsx:283 +#: src/tables/stock/StockItemTable.tsx:293 +msgid "Active" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:106 +msgid "Package Name" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:112 +msgid "Installation Path" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:117 +#: src/tables/machine/MachineTypeTable.tsx:152 +#: src/tables/machine/MachineTypeTable.tsx:276 +#: src/tables/plugin/PluginListTable.tsx:406 +msgid "Builtin" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:122 +msgid "Package" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:134 +#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:53 +msgid "Plugin Settings" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:146 +#: src/components/render/ModelType.tsx:276 +msgid "Plugin Configuration" +msgstr "" + +#: src/components/plugins/PluginPanel.tsx:87 +#~ msgid "Error occurred while rendering plugin content" +#~ msgstr "Error occurred while rendering plugin content" + +#: src/components/plugins/PluginPanel.tsx:91 +#~ msgid "Plugin did not provide panel rendering function" +#~ msgstr "Plugin did not provide panel rendering function" + +#: src/components/plugins/PluginPanel.tsx:103 +#~ msgid "No content provided for this plugin" +#~ msgstr "No content provided for this plugin" + +#: src/components/plugins/PluginPanel.tsx:116 +#: src/components/plugins/PluginSettingsPanel.tsx:76 +#~ msgid "Error Loading Plugin" +#~ msgstr "Error Loading Plugin" + +#: src/components/plugins/PluginSettingsPanel.tsx:51 +#~ msgid "Error occurred while rendering plugin settings" +#~ msgstr "Error occurred while rendering plugin settings" + +#: src/components/plugins/PluginSettingsPanel.tsx:55 +#~ msgid "Plugin did not provide settings rendering function" +#~ msgstr "Plugin did not provide settings rendering function" + +#: src/components/plugins/PluginUIFeature.tsx:100 +msgid "Error occurred while rendering the template editor." +msgstr "" + +#: src/components/plugins/PluginUIFeature.tsx:111 +msgid "Error Loading Plugin Editor" +msgstr "" + +#: src/components/plugins/PluginUIFeature.tsx:147 +msgid "Error occurred while rendering the template preview." +msgstr "" + +#: src/components/plugins/PluginUIFeature.tsx:158 +msgid "Error Loading Plugin Preview" +msgstr "" + +#: src/components/plugins/RemoteComponent.tsx:70 +msgid "Invalid source or function name" +msgstr "" + +#: src/components/plugins/RemoteComponent.tsx:91 +msgid "Error Loading Content" +msgstr "" + +#: src/components/plugins/RemoteComponent.tsx:95 +msgid "Error occurred while loading plugin content" +msgstr "" + +#: src/components/render/Instance.tsx:224 msgid "Unknown model: {model}" msgstr "" -#: src/components/render/ModelType.tsx:22 -#: src/forms/BuildForms.tsx:213 -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/forms/StockForms.tsx:499 -#: src/forms/StockForms.tsx:533 -#: src/forms/StockForms.tsx:562 -#: src/forms/StockForms.tsx:590 -#: src/forms/StockForms.tsx:621 -#: src/forms/StockForms.tsx:656 -#: src/forms/StockForms.tsx:698 -#: src/forms/StockForms.tsx:734 -#: src/pages/build/BuildDetail.tsx:95 -#: src/pages/part/PartDetail.tsx:1073 -#: src/tables/build/BuildAllocatedStockTable.tsx:82 +#: src/components/render/ModelType.tsx:30 +#: src/forms/BuildForms.tsx:269 +#: src/forms/BuildForms.tsx:337 +#: src/forms/BuildForms.tsx:385 +#: src/forms/BuildForms.tsx:515 +#: src/forms/PurchaseOrderForms.tsx:689 +#: src/forms/ReturnOrderForms.tsx:190 +#: src/forms/SalesOrderForms.tsx:248 +#: src/forms/StockForms.tsx:261 +#: src/forms/StockForms.tsx:614 +#: src/forms/StockForms.tsx:651 +#: src/forms/StockForms.tsx:677 +#: src/forms/StockForms.tsx:705 +#: src/forms/StockForms.tsx:736 +#: src/forms/StockForms.tsx:771 +#: src/forms/StockForms.tsx:813 +#: src/forms/StockForms.tsx:851 +#: src/pages/build/BuildDetail.tsx:90 +#: src/pages/part/PartDetail.tsx:1094 +#: src/tables/build/BuildAllocatedStockTable.tsx:95 +#: src/tables/build/BuildLineTable.tsx:72 #: src/tables/part/PartTable.tsx:28 -#: src/tables/part/RelatedPartTable.tsx:45 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:88 -#: src/tables/sales/SalesOrderAllocationTable.tsx:68 -#: src/tables/stock/StockTrackingTable.tsx:74 +#: src/tables/part/RelatedPartTable.tsx:47 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:130 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:100 +#: src/tables/sales/SalesOrderAllocationTable.tsx:99 +#: src/tables/stock/StockTrackingTable.tsx:78 msgid "Part" msgstr "" -#: src/components/render/ModelType.tsx:23 -#: src/defaults/links.tsx:29 -#: src/defaults/menuItems.tsx:33 -#: src/pages/Index/Settings/SystemSettings.tsx:173 -#: src/pages/part/CategoryDetail.tsx:119 -#: src/pages/part/CategoryDetail.tsx:244 -#: src/pages/part/CategoryDetail.tsx:274 -#: src/pages/part/PartDetail.tsx:827 -msgid "Parts" -msgstr "" - -#: src/components/render/ModelType.tsx:31 +#: src/components/render/ModelType.tsx:40 msgid "Part Parameter Template" msgstr "" -#: src/components/render/ModelType.tsx:32 +#: src/components/render/ModelType.tsx:41 msgid "Part Parameter Templates" msgstr "" -#: src/components/render/ModelType.tsx:38 +#: src/components/render/ModelType.tsx:48 msgid "Part Test Template" msgstr "" -#: src/components/render/ModelType.tsx:39 +#: src/components/render/ModelType.tsx:49 msgid "Part Test Templates" msgstr "" -#: src/components/render/ModelType.tsx:45 -#: src/pages/company/SupplierPartDetail.tsx:203 -#: src/pages/company/SupplierPartDetail.tsx:375 -#: src/pages/stock/StockDetail.tsx:173 -#: src/tables/build/BuildAllocatedStockTable.tsx:131 +#: src/components/render/ModelType.tsx:56 +#: src/pages/company/SupplierPartDetail.tsx:364 +#: src/pages/stock/StockDetail.tsx:194 +#: src/tables/build/BuildAllocatedStockTable.tsx:152 #: src/tables/part/PartPurchaseOrdersTable.tsx:49 -#: src/tables/purchasing/SupplierPartTable.tsx:68 +#: src/tables/purchasing/SupplierPartTable.tsx:70 +#: src/tables/stock/StockItemTable.tsx:229 msgid "Supplier Part" msgstr "" -#: src/components/render/ModelType.tsx:46 +#: src/components/render/ModelType.tsx:57 msgid "Supplier Parts" msgstr "" -#: src/components/render/ModelType.tsx:54 -#: src/pages/company/ManufacturerPartDetail.tsx:132 +#: src/components/render/ModelType.tsx:66 #: src/tables/part/PartPurchaseOrdersTable.tsx:55 +#: src/tables/stock/StockItemTable.tsx:234 msgid "Manufacturer Part" msgstr "" -#: src/components/render/ModelType.tsx:55 +#: src/components/render/ModelType.tsx:67 msgid "Manufacturer Parts" msgstr "" -#: src/components/render/ModelType.tsx:63 -#: src/pages/part/CategoryDetail.tsx:305 +#: src/components/render/ModelType.tsx:76 +#: src/pages/part/CategoryDetail.tsx:310 msgid "Part Category" msgstr "" -#: src/components/render/ModelType.tsx:64 -#: src/pages/part/CategoryDetail.tsx:258 -#: src/pages/part/CategoryDetail.tsx:296 -#: src/pages/part/PartDetail.tsx:1063 +#: src/components/render/ModelType.tsx:77 +#: src/pages/part/CategoryDetail.tsx:263 +#: src/pages/part/CategoryDetail.tsx:301 +#: src/pages/part/PartDetail.tsx:1084 msgid "Part Categories" msgstr "" -#: src/components/render/ModelType.tsx:72 -#: src/pages/stock/StockDetail.tsx:624 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:94 -#: src/tables/stock/StockTrackingTable.tsx:45 +#: src/components/render/ModelType.tsx:86 +#: src/forms/BuildForms.tsx:337 +#: src/forms/BuildForms.tsx:385 +#: src/forms/BuildForms.tsx:515 +#: src/forms/SalesOrderForms.tsx:248 +#: src/pages/stock/StockDetail.tsx:839 +#: src/tables/stock/StockTrackingTable.tsx:49 msgid "Stock Item" msgstr "" -#: src/components/render/ModelType.tsx:73 +#: src/components/render/ModelType.tsx:87 #: src/pages/company/CompanyDetail.tsx:203 -#: src/pages/stock/LocationDetail.tsx:128 -#: src/pages/stock/LocationDetail.tsx:181 -#: src/pages/stock/LocationDetail.tsx:395 +#: src/pages/part/PartStocktakeDetail.tsx:113 +#: src/pages/stock/LocationDetail.tsx:122 +#: src/pages/stock/LocationDetail.tsx:175 +#: src/pages/stock/LocationDetail.tsx:380 msgid "Stock Items" msgstr "" -#: src/components/render/ModelType.tsx:81 +#: src/components/render/ModelType.tsx:96 msgid "Stock Location" msgstr "" -#: src/components/render/ModelType.tsx:82 -#: src/pages/stock/LocationDetail.tsx:195 -#: src/pages/stock/LocationDetail.tsx:387 -#: src/pages/stock/StockDetail.tsx:616 +#: src/components/render/ModelType.tsx:97 +#: src/pages/stock/LocationDetail.tsx:189 +#: src/pages/stock/LocationDetail.tsx:372 +#: src/pages/stock/StockDetail.tsx:831 msgid "Stock Locations" msgstr "" -#: src/components/render/ModelType.tsx:90 +#: src/components/render/ModelType.tsx:106 msgid "Stock Location Type" msgstr "" -#: src/components/render/ModelType.tsx:91 +#: src/components/render/ModelType.tsx:107 msgid "Stock Location Types" msgstr "" -#: src/components/render/ModelType.tsx:95 +#: src/components/render/ModelType.tsx:112 +#: src/pages/part/PartDetail.tsx:712 msgid "Stock History" msgstr "" -#: src/components/render/ModelType.tsx:96 +#: src/components/render/ModelType.tsx:113 msgid "Stock Histories" msgstr "" -#: src/components/render/ModelType.tsx:100 -#: src/defaults/links.tsx:31 -#: src/defaults/menuItems.tsx:43 +#: src/components/render/ModelType.tsx:118 msgid "Build" msgstr "" -#: src/components/render/ModelType.tsx:101 +#: src/components/render/ModelType.tsx:119 msgid "Builds" msgstr "" -#: src/components/render/ModelType.tsx:109 +#: src/components/render/ModelType.tsx:128 msgid "Build Line" msgstr "" -#: src/components/render/ModelType.tsx:110 +#: src/components/render/ModelType.tsx:129 msgid "Build Lines" msgstr "" -#: src/components/render/ModelType.tsx:117 +#: src/components/render/ModelType.tsx:137 msgid "Build Item" msgstr "" -#: src/components/render/ModelType.tsx:118 +#: src/components/render/ModelType.tsx:138 msgid "Build Items" msgstr "" -#: src/components/render/ModelType.tsx:122 -#: src/pages/company/CompanyDetail.tsx:339 +#: src/components/render/ModelType.tsx:143 +#: src/pages/company/CompanyDetail.tsx:321 msgid "Company" msgstr "" -#: src/components/render/ModelType.tsx:123 +#: src/components/render/ModelType.tsx:144 msgid "Companies" msgstr "" -#: src/components/render/ModelType.tsx:131 +#: src/components/render/ModelType.tsx:153 +#: src/pages/build/BuildDetail.tsx:195 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:204 +#: src/pages/sales/ReturnOrderDetail.tsx:174 +#: src/pages/sales/SalesOrderDetail.tsx:186 #: src/tables/TableHoverCard.tsx:81 -#: src/tables/build/BuildOrderTable.tsx:140 -#: src/tables/purchasing/PurchaseOrderTable.tsx:64 -#: src/tables/sales/ReturnOrderTable.tsx:55 -#: src/tables/sales/SalesOrderTable.tsx:62 +#: src/tables/build/BuildOrderTable.tsx:135 +#: src/tables/purchasing/PurchaseOrderTable.tsx:69 +#: src/tables/sales/ReturnOrderTable.tsx:67 +#: src/tables/sales/SalesOrderTable.tsx:67 msgid "Project Code" msgstr "" -#: src/components/render/ModelType.tsx:132 -#: src/pages/Index/Settings/AdminCenter/Index.tsx:128 +#: src/components/render/ModelType.tsx:154 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:145 msgid "Project Codes" msgstr "" -#: src/components/render/ModelType.tsx:138 +#: src/components/render/ModelType.tsx:161 #: src/pages/part/pricing/PurchaseHistoryPanel.tsx:32 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:480 -#: src/tables/part/PartPurchaseOrdersTable.tsx:32 -#: src/tables/stock/StockTrackingTable.tsx:107 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:477 +#: src/pages/stock/StockDetail.tsx:253 +#: src/tables/part/PartPurchaseOrdersTable.tsx:31 +#: src/tables/stock/StockItemTable.tsx:222 +#: src/tables/stock/StockTrackingTable.tsx:111 msgid "Purchase Order" msgstr "" -#: src/components/render/ModelType.tsx:139 -#: src/pages/Index/Settings/SystemSettings.tsx:255 +#: src/components/render/ModelType.tsx:162 +#: src/pages/Index/Settings/SystemSettings.tsx:249 #: src/pages/company/CompanyDetail.tsx:196 -#: src/pages/company/SupplierPartDetail.tsx:237 -#: src/pages/part/PartDetail.tsx:662 +#: src/pages/company/SupplierPartDetail.tsx:249 +#: src/pages/part/PartDetail.tsx:683 #: src/pages/purchasing/PurchasingIndex.tsx:25 msgid "Purchase Orders" msgstr "" -#: src/components/render/ModelType.tsx:147 +#: src/components/render/ModelType.tsx:171 msgid "Purchase Order Line" msgstr "" -#: src/components/render/ModelType.tsx:148 +#: src/components/render/ModelType.tsx:172 msgid "Purchase Order Lines" msgstr "" -#: src/components/render/ModelType.tsx:152 -#: src/pages/build/BuildDetail.tsx:153 -#: src/pages/sales/SalesOrderDetail.tsx:520 -#: src/pages/stock/StockDetail.tsx:221 -#: src/tables/sales/SalesOrderAllocationTable.tsx:50 -#: src/tables/stock/StockTrackingTable.tsx:118 +#: src/components/render/ModelType.tsx:177 +#: src/pages/build/BuildDetail.tsx:148 +#: src/pages/part/pricing/SaleHistoryPanel.tsx:24 +#: src/pages/sales/SalesOrderDetail.tsx:515 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:92 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:341 +#: src/pages/stock/StockDetail.tsx:262 +#: src/tables/sales/SalesOrderAllocationTable.tsx:80 +#: src/tables/stock/StockTrackingTable.tsx:122 msgid "Sales Order" msgstr "" -#: src/components/render/ModelType.tsx:153 -#: src/pages/Index/Settings/SystemSettings.tsx:270 +#: src/components/render/ModelType.tsx:178 +#: src/pages/Index/Settings/SystemSettings.tsx:264 #: src/pages/company/CompanyDetail.tsx:216 -#: src/pages/part/PartDetail.tsx:669 +#: src/pages/part/PartDetail.tsx:695 #: src/pages/sales/SalesIndex.tsx:26 msgid "Sales Orders" msgstr "" -#: src/components/render/ModelType.tsx:161 +#: src/components/render/ModelType.tsx:187 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:340 msgid "Sales Order Shipment" msgstr "" -#: src/components/render/ModelType.tsx:162 +#: src/components/render/ModelType.tsx:188 msgid "Sales Order Shipments" msgstr "" -#: src/components/render/ModelType.tsx:168 -#: src/pages/sales/ReturnOrderDetail.tsx:469 -#: src/tables/stock/StockTrackingTable.tsx:129 +#: src/components/render/ModelType.tsx:195 +#: src/pages/sales/ReturnOrderDetail.tsx:464 +#: src/tables/stock/StockTrackingTable.tsx:133 msgid "Return Order" msgstr "" -#: src/components/render/ModelType.tsx:169 -#: src/pages/Index/Settings/SystemSettings.tsx:286 +#: src/components/render/ModelType.tsx:196 +#: src/pages/Index/Settings/SystemSettings.tsx:280 #: src/pages/company/CompanyDetail.tsx:223 +#: src/pages/part/PartDetail.tsx:702 #: src/pages/sales/SalesIndex.tsx:32 msgid "Return Orders" msgstr "" -#: src/components/render/ModelType.tsx:177 +#: src/components/render/ModelType.tsx:205 msgid "Return Order Line Item" msgstr "" -#: src/components/render/ModelType.tsx:178 +#: src/components/render/ModelType.tsx:206 msgid "Return Order Line Items" msgstr "" -#: src/components/render/ModelType.tsx:182 -#: src/tables/company/AddressTable.tsx:47 +#: src/components/render/ModelType.tsx:211 +#: src/tables/company/AddressTable.tsx:48 msgid "Address" msgstr "" -#: src/components/render/ModelType.tsx:183 -#: src/pages/company/CompanyDetail.tsx:253 +#: src/components/render/ModelType.tsx:212 +#: src/pages/company/CompanyDetail.tsx:255 msgid "Addresses" msgstr "" -#: src/components/render/ModelType.tsx:189 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:195 -#: src/pages/sales/ReturnOrderDetail.tsx:174 -#: src/pages/sales/SalesOrderDetail.tsx:183 +#: src/components/render/ModelType.tsx:219 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:196 +#: src/pages/sales/ReturnOrderDetail.tsx:166 +#: src/pages/sales/SalesOrderDetail.tsx:178 msgid "Contact" msgstr "" -#: src/components/render/ModelType.tsx:190 -#: src/pages/company/CompanyDetail.tsx:247 +#: src/components/render/ModelType.tsx:220 +#: src/pages/company/CompanyDetail.tsx:249 msgid "Contacts" msgstr "" -#: src/components/render/ModelType.tsx:196 +#: src/components/render/ModelType.tsx:227 msgid "Owner" msgstr "" -#: src/components/render/ModelType.tsx:197 +#: src/components/render/ModelType.tsx:228 msgid "Owners" msgstr "" -#: src/components/render/ModelType.tsx:203 -#: src/tables/settings/ImportSessionTable.tsx:121 -#: src/tables/stock/StockItemTestResultTable.tsx:198 -#: src/tables/stock/StockTrackingTable.tsx:195 +#: src/components/render/ModelType.tsx:234 +#~ msgid "Purchase Order Line Item" +#~ msgstr "Purchase Order Line Item" + +#: src/components/render/ModelType.tsx:235 +#: src/tables/settings/BarcodeScanHistoryTable.tsx:80 +#: src/tables/settings/BarcodeScanHistoryTable.tsx:211 +#: src/tables/settings/ImportSessionTable.tsx:120 +#: src/tables/settings/StocktakeReportTable.tsx:44 +#: src/tables/stock/StockItemTestResultTable.tsx:204 +#: src/tables/stock/StockTrackingTable.tsx:181 +#: src/tables/stock/StockTrackingTable.tsx:210 msgid "User" msgstr "" -#: src/components/render/ModelType.tsx:204 -#: src/pages/Index/Settings/AdminCenter/Index.tsx:98 +#: src/components/render/ModelType.tsx:236 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:109 #: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:13 msgid "Users" msgstr "" -#: src/components/render/ModelType.tsx:210 +#: src/components/render/ModelType.tsx:243 msgid "Group" msgstr "" -#: src/components/render/ModelType.tsx:211 +#: src/components/render/ModelType.tsx:244 #: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:20 -#: src/tables/settings/UserTable.tsx:138 -#: src/tables/settings/UserTable.tsx:201 +#: src/tables/settings/UserTable.tsx:137 +#: src/tables/settings/UserTable.tsx:200 msgid "Groups" msgstr "" -#: src/components/render/ModelType.tsx:218 +#: src/components/render/ModelType.tsx:252 msgid "Import Session" msgstr "" -#: src/components/render/ModelType.tsx:219 +#: src/components/render/ModelType.tsx:253 msgid "Import Sessions" msgstr "" -#: src/components/render/ModelType.tsx:225 +#: src/components/render/ModelType.tsx:260 msgid "Label Template" msgstr "" -#: src/components/render/ModelType.tsx:226 -#: src/pages/Index/Settings/AdminCenter/Index.tsx:158 +#: src/components/render/ModelType.tsx:261 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:187 msgid "Label Templates" msgstr "" -#: src/components/render/ModelType.tsx:232 +#: src/components/render/ModelType.tsx:264 +#~ msgid "Unknown Model" +#~ msgstr "Unknown Model" + +#: src/components/render/ModelType.tsx:268 msgid "Report Template" msgstr "" -#: src/components/render/ModelType.tsx:233 -#: src/pages/Index/Settings/AdminCenter/Index.tsx:164 +#: src/components/render/ModelType.tsx:269 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:193 msgid "Report Templates" msgstr "" -#: src/components/render/ModelType.tsx:239 -msgid "Plugin Configuration" -msgstr "" - -#: src/components/render/ModelType.tsx:240 +#: src/components/render/ModelType.tsx:277 msgid "Plugin Configurations" msgstr "" +#: src/components/render/ModelType.tsx:284 +msgid "Content Type" +msgstr "" + +#: src/components/render/ModelType.tsx:285 +msgid "Content Types" +msgstr "" + +#: src/components/render/ModelType.tsx:291 +#: src/tables/machine/MachineListTable.tsx:351 +#: src/tables/machine/MachineTypeTable.tsx:282 +msgid "Errors" +msgstr "" + +#: src/components/render/ModelType.tsx:307 +#~ msgid "Purchase Order Line Items" +#~ msgstr "Purchase Order Line Items" + +#: src/components/render/ModelType.tsx:337 +#~ msgid "Unknown Models" +#~ msgstr "Unknown Models" + #: src/components/render/Order.tsx:121 +#: src/tables/sales/SalesOrderAllocationTable.tsx:136 msgid "Shipment" msgstr "" #: src/components/render/Part.tsx:25 #: src/components/render/Plugin.tsx:17 -#: src/pages/company/CompanyDetail.tsx:325 -#: src/pages/company/SupplierPartDetail.tsx:360 -#: src/pages/part/PartDetail.tsx:879 +#: src/pages/company/CompanyDetail.tsx:307 +#: src/pages/company/SupplierPartDetail.tsx:349 +#: src/pages/part/PartDetail.tsx:911 msgid "Inactive" msgstr "" @@ -1736,39 +2335,38 @@ msgstr "" msgid "No stock" msgstr "" -#: src/components/render/Part.tsx:30 -#: src/defaults/links.tsx:30 -#: src/defaults/menuItems.tsx:38 -#: src/pages/Index/Settings/SystemSettings.tsx:206 -#: src/pages/part/PartDetail.tsx:543 -#: src/pages/stock/LocationDetail.tsx:367 -#: src/pages/stock/StockDetail.tsx:411 -#: src/tables/stock/StockItemTable.tsx:68 -msgid "Stock" -msgstr "" - -#: src/components/render/Stock.tsx:60 -#: src/pages/stock/StockDetail.tsx:150 -#: src/pages/stock/StockDetail.tsx:581 -#: src/tables/build/BuildAllocatedStockTable.tsx:102 -#: src/tables/sales/SalesOrderAllocationTable.tsx:80 +#: src/components/render/Stock.tsx:61 +#: src/forms/ReturnOrderForms.tsx:190 +#: src/pages/stock/StockDetail.tsx:166 +#: src/pages/stock/StockDetail.tsx:771 +#: src/tables/build/BuildAllocatedStockTable.tsx:123 +#: src/tables/build/BuildOutputTable.tsx:81 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:114 +#: src/tables/sales/SalesOrderAllocationTable.tsx:106 msgid "Serial Number" msgstr "" -#: src/components/render/Stock.tsx:62 -#: src/forms/BuildForms.tsx:218 -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/pages/part/pricing/BomPricingPanel.tsx:109 +#: src/components/render/Stock.tsx:63 +#: src/forms/BuildForms.tsx:206 +#: src/forms/BuildForms.tsx:515 +#: src/forms/PurchaseOrderForms.tsx:689 +#: src/forms/SalesOrderForms.tsx:248 +#: src/pages/part/PartSchedulingDetail.tsx:80 +#: src/pages/part/PartStocktakeDetail.tsx:60 +#: src/pages/part/PartStocktakeDetail.tsx:234 +#: src/pages/part/PartStocktakeDetail.tsx:252 +#: src/pages/part/pricing/BomPricingPanel.tsx:148 #: src/pages/part/pricing/PriceBreakPanel.tsx:89 -#: src/pages/part/pricing/PriceBreakPanel.tsx:171 -#: src/pages/stock/StockDetail.tsx:145 -#: src/pages/stock/StockDetail.tsx:587 -#: src/tables/build/BuildOrderTestTable.tsx:197 -#: src/tables/part/PartPurchaseOrdersTable.tsx:92 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:143 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:171 +#: src/pages/part/pricing/PriceBreakPanel.tsx:172 +#: src/pages/stock/StockDetail.tsx:161 +#: src/pages/stock/StockDetail.tsx:777 +#: src/tables/build/BuildLineTable.tsx:79 +#: src/tables/build/BuildOrderTestTable.tsx:198 +#: src/tables/part/PartPurchaseOrdersTable.tsx:93 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:146 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:177 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:77 -#: src/tables/stock/StockTrackingTable.tsx:59 +#: src/tables/stock/StockTrackingTable.tsx:63 msgid "Quantity" msgstr "" @@ -1842,10 +2440,6 @@ msgstr "" #~ msgid "Required Part" #~ msgstr "Required Part" -#: src/components/tables/build/BuildLineTable.tsx:152 -#~ msgid "Required Quantity" -#~ msgstr "Required Quantity" - #: src/components/tables/build/BuildOrderTable.tsx:52 #~ msgid "Progress" #~ msgstr "Progress" @@ -2126,14 +2720,6 @@ msgstr "" #~ msgid "user deleted" #~ msgstr "user deleted" -#: src/components/tables/settings/UserTable.tsx:168 -#~ msgid "First Name" -#~ msgstr "First Name" - -#: src/components/tables/settings/UserTable.tsx:173 -#~ msgid "Last Name" -#~ msgstr "Last Name" - #: src/components/tables/stock/StockItemTable.tsx:247 #~ msgid "Test Filter" #~ msgstr "Test Filter" @@ -2146,36 +2732,21 @@ msgstr "" #~ msgid "Stock location updated" #~ msgstr "Stock location updated" -#: src/components/widgets/DisplayWidget.tsx:11 -#: src/pages/Index/Settings/AccountSettings/DisplaySettingsPanel.tsx:17 -msgid "Display Settings" -msgstr "" - -#: src/components/widgets/DisplayWidget.tsx:15 -#: src/pages/Index/Settings/AccountSettings/DisplaySettingsPanel.tsx:23 -msgid "Color Mode" -msgstr "" - -#: src/components/widgets/DisplayWidget.tsx:21 -#: src/pages/Index/Settings/AccountSettings/DisplaySettingsPanel.tsx:33 -msgid "Language" -msgstr "" - #: src/components/widgets/FeedbackWidget.tsx:19 -msgid "Something is new: Platform UI" -msgstr "" +#~ msgid "Something is new: Platform UI" +#~ msgstr "Something is new: Platform UI" #: src/components/widgets/FeedbackWidget.tsx:21 -msgid "We are building a new UI with a modern stack. What you currently see is not fixed and will be redesigned but demonstrates the UI/UX possibilities we will have going forward." -msgstr "" +#~ msgid "We are building a new UI with a modern stack. What you currently see is not fixed and will be redesigned but demonstrates the UI/UX possibilities we will have going forward." +#~ msgstr "We are building a new UI with a modern stack. What you currently see is not fixed and will be redesigned but demonstrates the UI/UX possibilities we will have going forward." #: src/components/widgets/FeedbackWidget.tsx:32 -msgid "Provide Feedback" -msgstr "" +#~ msgid "Provide Feedback" +#~ msgstr "Provide Feedback" #: src/components/widgets/GetStartedWidget.tsx:11 -msgid "Getting started" -msgstr "" +#~ msgid "Getting started" +#~ msgstr "Getting started" #: src/components/widgets/MarkdownEditor.tsx:108 #~ msgid "Failed to upload image" @@ -2186,28 +2757,24 @@ msgstr "" #~ msgstr "Notes saved" #: src/components/widgets/WidgetLayout.tsx:166 -msgid "Layout" -msgstr "" +#~ msgid "Layout" +#~ msgstr "Layout" #: src/components/widgets/WidgetLayout.tsx:172 -msgid "Reset Layout" -msgstr "" +#~ msgid "Reset Layout" +#~ msgstr "Reset Layout" #: src/components/widgets/WidgetLayout.tsx:185 -msgid "Stop Edit" -msgstr "" - -#: src/components/widgets/WidgetLayout.tsx:185 -msgid "Edit Layout" -msgstr "" +#~ msgid "Stop Edit" +#~ msgstr "Stop Edit" #: src/components/widgets/WidgetLayout.tsx:191 -msgid "Appearance" -msgstr "" +#~ msgid "Appearance" +#~ msgstr "Appearance" #: src/components/widgets/WidgetLayout.tsx:203 -msgid "Show Boxes" -msgstr "" +#~ msgid "Show Boxes" +#~ msgstr "Show Boxes" #: src/contexts/LanguageContext.tsx:20 msgid "Arabic" @@ -2286,201 +2853,175 @@ msgid "Korean" msgstr "" #: src/contexts/LanguageContext.tsx:39 -msgid "Latvian" +msgid "Lithuanian" msgstr "" #: src/contexts/LanguageContext.tsx:40 -msgid "Dutch" +msgid "Latvian" msgstr "" #: src/contexts/LanguageContext.tsx:41 -msgid "Norwegian" +msgid "Dutch" msgstr "" #: src/contexts/LanguageContext.tsx:42 -msgid "Polish" +msgid "Norwegian" msgstr "" #: src/contexts/LanguageContext.tsx:43 -msgid "Portuguese" +msgid "Polish" msgstr "" #: src/contexts/LanguageContext.tsx:44 -msgid "Portuguese (Brazilian)" +msgid "Portuguese" msgstr "" #: src/contexts/LanguageContext.tsx:45 -msgid "Romanian" +msgid "Portuguese (Brazilian)" msgstr "" #: src/contexts/LanguageContext.tsx:46 -msgid "Russian" +msgid "Romanian" msgstr "" #: src/contexts/LanguageContext.tsx:47 -msgid "Slovak" +msgid "Russian" msgstr "" #: src/contexts/LanguageContext.tsx:48 -msgid "Slovenian" +msgid "Slovak" msgstr "" #: src/contexts/LanguageContext.tsx:49 -msgid "Swedish" +msgid "Slovenian" msgstr "" #: src/contexts/LanguageContext.tsx:50 -msgid "Thai" +msgid "Swedish" msgstr "" #: src/contexts/LanguageContext.tsx:51 -msgid "Turkish" +msgid "Thai" msgstr "" #: src/contexts/LanguageContext.tsx:52 -msgid "Ukrainian" +msgid "Turkish" msgstr "" #: src/contexts/LanguageContext.tsx:53 -msgid "Vietnamese" +msgid "Ukrainian" msgstr "" #: src/contexts/LanguageContext.tsx:54 -msgid "Chinese (Simplified)" +msgid "Vietnamese" msgstr "" #: src/contexts/LanguageContext.tsx:55 +msgid "Chinese (Simplified)" +msgstr "" + +#: src/contexts/LanguageContext.tsx:56 msgid "Chinese (Traditional)" msgstr "" +#: src/defaults/actions.tsx:18 +msgid "Go to the InvenTree dashboard" +msgstr "" + #: src/defaults/actions.tsx:18 #: src/defaults/links.tsx:27 #: src/defaults/menuItems.tsx:9 -msgid "Home" -msgstr "" +#~ msgid "Home" +#~ msgstr "Home" #: src/defaults/actions.tsx:25 -#: src/defaults/links.tsx:28 -#: src/defaults/menuItems.tsx:28 -#: src/pages/Index/Dashboard.tsx:19 -#: src/pages/Index/Settings/UserSettings.tsx:46 -msgid "Dashboard" -msgstr "" - -#: src/defaults/actions.tsx:26 -msgid "Go to the InvenTree dashboard" -msgstr "" - -#: src/defaults/actions.tsx:33 msgid "Visit the documentation to learn more about InvenTree" msgstr "" -#: src/defaults/actions.tsx:39 -#: src/defaults/links.tsx:98 -#: src/defaults/links.tsx:128 +#: src/defaults/actions.tsx:31 +#: src/defaults/links.tsx:92 +#: src/defaults/links.tsx:124 msgid "About InvenTree" msgstr "" -#: src/defaults/actions.tsx:40 -#: src/defaults/links.tsx:129 +#: src/defaults/actions.tsx:32 msgid "About the InvenTree org" msgstr "" -#: src/defaults/actions.tsx:46 +#: src/defaults/actions.tsx:38 msgid "Server Information" msgstr "" -#: src/defaults/actions.tsx:47 -#: src/defaults/links.tsx:123 +#: src/defaults/actions.tsx:39 +#: src/defaults/links.tsx:118 msgid "About this Inventree instance" msgstr "" -#: src/defaults/actions.tsx:53 -#: src/defaults/links.tsx:111 +#: src/defaults/actions.tsx:45 +#: src/defaults/links.tsx:105 +#: src/defaults/links.tsx:131 msgid "License Information" msgstr "" -#: src/defaults/actions.tsx:54 -#: src/defaults/links.tsx:135 +#: src/defaults/actions.tsx:46 msgid "Licenses for dependencies of the service" msgstr "" -#: src/defaults/actions.tsx:61 +#: src/defaults/actions.tsx:52 +msgid "Open Navigation" +msgstr "" + +#: src/defaults/actions.tsx:53 msgid "Open the main navigation menu" msgstr "" -#: src/defaults/actions.tsx:72 +#: src/defaults/actions.tsx:64 msgid "Go to the Admin Center" msgstr "" -#: src/defaults/dashboardItems.tsx:15 -msgid "Subscribed Parts" -msgstr "" - -#: src/defaults/dashboardItems.tsx:22 -msgid "Subscribed Categories" -msgstr "" - #: src/defaults/dashboardItems.tsx:29 -msgid "Latest Parts" -msgstr "" +#~ msgid "Latest Parts" +#~ msgstr "Latest Parts" #: src/defaults/dashboardItems.tsx:36 -msgid "BOM Waiting Validation" -msgstr "" +#~ msgid "BOM Waiting Validation" +#~ msgstr "BOM Waiting Validation" #: src/defaults/dashboardItems.tsx:43 -msgid "Recently Updated" -msgstr "" - -#: src/defaults/dashboardItems.tsx:50 -#: src/tables/part/PartTable.tsx:238 -msgid "Low Stock" -msgstr "" +#~ msgid "Recently Updated" +#~ msgstr "Recently Updated" #: src/defaults/dashboardItems.tsx:57 -msgid "Depleted Stock" -msgstr "" +#~ msgid "Depleted Stock" +#~ msgstr "Depleted Stock" #: src/defaults/dashboardItems.tsx:64 -msgid "Required for Build Orders" -msgstr "" +#~ msgid "Required for Build Orders" +#~ msgstr "Required for Build Orders" #: src/defaults/dashboardItems.tsx:71 -msgid "Expired Stock" -msgstr "" +#~ msgid "Expired Stock" +#~ msgstr "Expired Stock" #: src/defaults/dashboardItems.tsx:78 -msgid "Stale Stock" -msgstr "" +#~ msgid "Stale Stock" +#~ msgstr "Stale Stock" #: src/defaults/dashboardItems.tsx:85 -msgid "Build Orders In Progress" -msgstr "" - -#: src/defaults/dashboardItems.tsx:92 -msgid "Overdue Build Orders" -msgstr "" +#~ msgid "Build Orders In Progress" +#~ msgstr "Build Orders In Progress" #: src/defaults/dashboardItems.tsx:99 -msgid "Outstanding Purchase Orders" -msgstr "" - -#: src/defaults/dashboardItems.tsx:106 -msgid "Overdue Purchase Orders" -msgstr "" +#~ msgid "Outstanding Purchase Orders" +#~ msgstr "Outstanding Purchase Orders" #: src/defaults/dashboardItems.tsx:113 -msgid "Outstanding Sales Orders" -msgstr "" - -#: src/defaults/dashboardItems.tsx:120 -msgid "Overdue Sales Orders" -msgstr "" +#~ msgid "Outstanding Sales Orders" +#~ msgstr "Outstanding Sales Orders" #: src/defaults/dashboardItems.tsx:127 -msgid "Current News" -msgstr "" +#~ msgid "Current News" +#~ msgstr "Current News" #: src/defaults/defaultHostList.tsx:8 #~ msgid "InvenTree Demo" @@ -2490,98 +3031,81 @@ msgstr "" #~ msgid "Local Server" #~ msgstr "Local Server" -#: src/defaults/links.tsx:12 -#: src/pages/company/CompanyDetail.tsx:96 -msgid "Website" -msgstr "" - #: src/defaults/links.tsx:17 -msgid "GitHub" -msgstr "" +#~ msgid "GitHub" +#~ msgstr "GitHub" #: src/defaults/links.tsx:22 -msgid "Demo" -msgstr "" - -#: src/defaults/links.tsx:33 -#: src/defaults/menuItems.tsx:48 -#: src/pages/company/ManufacturerDetail.tsx:9 -#: src/pages/company/ManufacturerPartDetail.tsx:263 -#: src/pages/company/SupplierDetail.tsx:9 -#: src/pages/company/SupplierPartDetail.tsx:347 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:483 -#: src/pages/purchasing/PurchasingIndex.tsx:60 -msgid "Purchasing" -msgstr "" - -#: src/defaults/links.tsx:37 -#: src/defaults/menuItems.tsx:53 -#: src/pages/company/CustomerDetail.tsx:9 -#: src/pages/sales/ReturnOrderDetail.tsx:474 -#: src/pages/sales/SalesIndex.tsx:53 -#: src/pages/sales/SalesOrderDetail.tsx:525 -msgid "Sales" -msgstr "" +#~ msgid "Demo" +#~ msgstr "Demo" #: src/defaults/links.tsx:41 #: src/defaults/menuItems.tsx:71 #: src/pages/Index/Playground.tsx:217 -msgid "Playground" -msgstr "" +#~ msgid "Playground" +#~ msgstr "Playground" -#: src/defaults/links.tsx:55 -msgid "Getting Started" -msgstr "" - -#: src/defaults/links.tsx:56 -msgid "Getting started with InvenTree" -msgstr "" - -#: src/defaults/links.tsx:62 +#: src/defaults/links.tsx:45 msgid "API" msgstr "" -#: src/defaults/links.tsx:63 +#: src/defaults/links.tsx:48 msgid "InvenTree API documentation" msgstr "" -#: src/defaults/links.tsx:68 +#: src/defaults/links.tsx:52 msgid "Developer Manual" msgstr "" -#: src/defaults/links.tsx:69 +#: src/defaults/links.tsx:55 msgid "InvenTree developer manual" msgstr "" -#: src/defaults/links.tsx:74 +#: src/defaults/links.tsx:59 msgid "FAQ" msgstr "" -#: src/defaults/links.tsx:75 +#: src/defaults/links.tsx:62 msgid "Frequently asked questions" msgstr "" +#: src/defaults/links.tsx:66 +msgid "GitHub Repository" +msgstr "" + +#: src/defaults/links.tsx:69 +msgid "InvenTree source code on GitHub" +msgstr "" + #: src/defaults/links.tsx:76 #~ msgid "Instance" #~ msgstr "Instance" +#: src/defaults/links.tsx:79 +#: src/defaults/links.tsx:117 +msgid "System Information" +msgstr "" + #: src/defaults/links.tsx:83 #~ msgid "InvenTree" #~ msgstr "InvenTree" -#: src/defaults/links.tsx:85 -#: src/defaults/links.tsx:122 -msgid "System Information" -msgstr "" - #: src/defaults/links.tsx:117 #~ msgid "Licenses for packages used by InvenTree" #~ msgstr "Licenses for packages used by InvenTree" -#: src/defaults/links.tsx:134 -msgid "Licenses" +#: src/defaults/links.tsx:125 +msgid "About the InvenTree Project" msgstr "" +#: src/defaults/links.tsx:132 +msgid "Licenses for dependencies of the InvenTree software" +msgstr "" + +#: src/defaults/links.tsx:134 +#~ msgid "Licenses" +#~ msgstr "Licenses" + #: src/defaults/menuItems.tsx:7 #~ msgid "Open sourcea" #~ msgstr "Open sourcea" @@ -2607,8 +3131,8 @@ msgstr "" #~ msgstr "Profile page" #: src/defaults/menuItems.tsx:17 -msgid "User attributes and design settings." -msgstr "" +#~ msgid "User attributes and design settings." +#~ msgstr "User attributes and design settings." #: src/defaults/menuItems.tsx:21 #~ msgid "Free for everyone" @@ -2619,8 +3143,8 @@ msgstr "" #~ msgstr "The fluid of Smeargle’s tail secretions changes" #: src/defaults/menuItems.tsx:23 -msgid "View for interactive scanning and multiple actions." -msgstr "" +#~ msgid "View for interactive scanning and multiple actions." +#~ msgstr "View for interactive scanning and multiple actions." #: src/defaults/menuItems.tsx:24 #~ msgid "The fluid of Smeargle’s tail secretions changes in the intensity" @@ -2698,51 +3222,130 @@ msgstr "" #~ msgid "Are you sure you want to delete this attachment?" #~ msgstr "Are you sure you want to delete this attachment?" -#: src/forms/BuildForms.tsx:158 -msgid "Next serial number" +#: src/forms/BuildForms.tsx:248 +#~ msgid "Remove output" +#~ msgstr "Remove output" + +#: src/forms/BuildForms.tsx:269 +#: src/tables/build/BuildAllocatedStockTable.tsx:147 +#: src/tables/build/BuildOrderTestTable.tsx:177 +#: src/tables/build/BuildOrderTestTable.tsx:201 +#: src/tables/build/BuildOutputTable.tsx:460 +msgid "Build Output" msgstr "" -#: src/forms/BuildForms.tsx:162 -msgid "Latest serial number" +#: src/forms/BuildForms.tsx:269 +#: src/forms/BuildForms.tsx:337 +#: src/forms/BuildForms.tsx:385 +#: src/tables/build/BuildLineTable.tsx:89 +msgid "Batch" msgstr "" -#: src/forms/BuildForms.tsx:234 -msgid "Remove output" +#: src/forms/BuildForms.tsx:269 +#: src/forms/BuildForms.tsx:337 +#: src/forms/BuildForms.tsx:385 +#: src/forms/PurchaseOrderForms.tsx:603 +#: src/pages/build/BuildDetail.tsx:104 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:142 +#: src/pages/sales/ReturnOrderDetail.tsx:113 +#: src/pages/sales/SalesOrderDetail.tsx:122 +#: src/tables/build/BuildOrderTable.tsx:125 +#: src/tables/machine/MachineListTable.tsx:336 +#: src/tables/part/PartPurchaseOrdersTable.tsx:37 +#: src/tables/purchasing/PurchaseOrderTable.tsx:58 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:157 +#: src/tables/sales/ReturnOrderTable.tsx:56 +#: src/tables/sales/SalesOrderTable.tsx:56 +#: src/tables/settings/CustomStateTable.tsx:57 +#: src/tables/settings/ImportSessionTable.tsx:114 +#: src/tables/stock/StockItemTable.tsx:298 +#: src/tables/stock/StockTrackingTable.tsx:56 +msgid "Status" msgstr "" -#: src/forms/BuildForms.tsx:316 +#: src/forms/BuildForms.tsx:289 msgid "Complete Build Outputs" msgstr "" -#: src/forms/BuildForms.tsx:320 +#: src/forms/BuildForms.tsx:292 msgid "Build outputs have been completed" msgstr "" -#: src/forms/BuildForms.tsx:389 +#: src/forms/BuildForms.tsx:353 msgid "Scrap Build Outputs" msgstr "" -#: src/forms/BuildForms.tsx:393 +#: src/forms/BuildForms.tsx:356 msgid "Build outputs have been scrapped" msgstr "" -#: src/forms/BuildForms.tsx:425 -#: src/forms/BuildForms.tsx:449 +#: src/forms/BuildForms.tsx:393 msgid "Cancel Build Outputs" msgstr "" -#: src/forms/BuildForms.tsx:426 -msgid "Selected build outputs will be deleted" +#: src/forms/BuildForms.tsx:396 +msgid "Build outputs have been cancelled" msgstr "" -#: src/forms/BuildForms.tsx:453 -msgid "Build outputs have been cancelled" +#: src/forms/BuildForms.tsx:408 +#~ msgid "Selected build outputs will be deleted" +#~ msgstr "Selected build outputs will be deleted" + +#: src/forms/BuildForms.tsx:470 +#~ msgid "Remove line" +#~ msgstr "Remove line" + +#: src/forms/BuildForms.tsx:515 +#: src/forms/SalesOrderForms.tsx:248 +#: src/tables/build/BuildLineTable.tsx:174 +#: src/tables/sales/SalesOrderLineItemTable.tsx:276 +#: src/tables/stock/StockItemTable.tsx:309 +msgid "Allocated" +msgstr "" + +#: src/forms/BuildForms.tsx:545 +#: src/forms/SalesOrderForms.tsx:239 +#: src/pages/build/BuildDetail.tsx:208 +msgid "Source Location" +msgstr "" + +#: src/forms/BuildForms.tsx:546 +#: src/forms/SalesOrderForms.tsx:240 +msgid "Select the source location for the stock allocation" +msgstr "" + +#: src/forms/BuildForms.tsx:566 +#: src/forms/SalesOrderForms.tsx:274 +#: src/tables/build/BuildLineTable.tsx:442 +#: src/tables/build/BuildLineTable.tsx:569 +#: src/tables/build/BuildLineTable.tsx:642 +#: src/tables/sales/SalesOrderLineItemTable.tsx:302 +#: src/tables/sales/SalesOrderLineItemTable.tsx:326 +msgid "Allocate Stock" +msgstr "" + +#: src/forms/BuildForms.tsx:569 +#: src/forms/SalesOrderForms.tsx:279 +msgid "Stock items allocated" msgstr "" #: src/forms/CompanyForms.tsx:150 #~ msgid "Company updated" #~ msgstr "Company updated" +#: src/forms/PartForms.tsx:67 +#: src/forms/PartForms.tsx:154 +#: src/pages/part/CategoryDetail.tsx:117 +#: src/pages/part/PartDetail.tsx:384 +#: src/tables/part/PartCategoryTable.tsx:90 +#: src/tables/part/PartTable.tsx:294 +msgid "Subscribed" +msgstr "" + +#: src/forms/PartForms.tsx:68 +msgid "Subscribe to notifications for this part" +msgstr "" + #: src/forms/PartForms.tsx:106 #~ msgid "Create Part" #~ msgstr "Create Part" @@ -2751,191 +3354,190 @@ msgstr "" #~ msgid "Part created" #~ msgstr "Part created" -#: src/forms/PartForms.tsx:124 -msgid "Parent part category" -msgstr "" - #: src/forms/PartForms.tsx:129 #~ msgid "Part updated" #~ msgstr "Part updated" -#: src/forms/PurchaseOrderForms.tsx:300 +#: src/forms/PartForms.tsx:140 +msgid "Parent part category" +msgstr "" + +#: src/forms/PartForms.tsx:155 +msgid "Subscribe to notifications for this category" +msgstr "" + +#: src/forms/PurchaseOrderForms.tsx:314 +msgid "Assign Batch Code and Serial Numbers" +msgstr "" + +#: src/forms/PurchaseOrderForms.tsx:316 +msgid "Assign Batch Code" +msgstr "" + +#: src/forms/PurchaseOrderForms.tsx:336 msgid "Choose Location" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:308 +#: src/forms/PurchaseOrderForms.tsx:344 msgid "Item Destination selected" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:317 +#: src/forms/PurchaseOrderForms.tsx:353 msgid "Part category default location selected" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:327 +#: src/forms/PurchaseOrderForms.tsx:363 msgid "Received stock location selected" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:332 +#: src/forms/PurchaseOrderForms.tsx:368 msgid "Default location selected" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:343 -#: src/forms/PurchaseOrderForms.tsx:435 -msgid "Scan Barcode" -msgstr "" +#: src/forms/PurchaseOrderForms.tsx:421 +#~ msgid "Assign Batch Code{0}" +#~ msgstr "Assign Batch Code{0}" -#: src/forms/PurchaseOrderForms.tsx:388 +#: src/forms/PurchaseOrderForms.tsx:427 msgid "Set Location" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:396 -msgid "Assign Batch Code{0}" -msgstr "" - -#: src/forms/PurchaseOrderForms.tsx:405 -#: src/forms/StockForms.tsx:420 +#: src/forms/PurchaseOrderForms.tsx:442 +#: src/forms/StockForms.tsx:539 msgid "Adjust Packaging" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:412 -msgid "Change Status" -msgstr "" - -#: src/forms/PurchaseOrderForms.tsx:418 -msgid "Add Note" -msgstr "" - #: src/forms/PurchaseOrderForms.tsx:444 #: src/forms/StockForms.tsx:428 -msgid "Remove item from list" +#~ msgid "Remove item from list" +#~ msgstr "Remove item from list" + +#: src/forms/PurchaseOrderForms.tsx:450 +msgid "Change Status" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:471 -#: src/forms/StockForms.tsx:499 -#: src/forms/StockForms.tsx:533 -#: src/forms/StockForms.tsx:562 -#: src/forms/StockForms.tsx:590 -#: src/forms/StockForms.tsx:621 -#: src/forms/StockForms.tsx:656 -#: src/forms/StockForms.tsx:698 -#: src/forms/StockForms.tsx:734 -#: src/pages/stock/StockDetail.tsx:181 -#: src/tables/ColumnRenderers.tsx:49 -#: src/tables/stock/StockTrackingTable.tsx:85 +#: src/forms/PurchaseOrderForms.tsx:456 +msgid "Add Note" +msgstr "" + +#: src/forms/PurchaseOrderForms.tsx:503 +#: src/forms/StockForms.tsx:614 +#: src/forms/StockForms.tsx:651 +#: src/forms/StockForms.tsx:677 +#: src/forms/StockForms.tsx:705 +#: src/forms/StockForms.tsx:736 +#: src/forms/StockForms.tsx:771 +#: src/forms/StockForms.tsx:813 +#: src/forms/StockForms.tsx:851 +#: src/pages/stock/StockDetail.tsx:202 +#: src/tables/ColumnRenderers.tsx:60 +#: src/tables/stock/StockTrackingTable.tsx:89 msgid "Location" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:486 +#: src/forms/PurchaseOrderForms.tsx:518 msgid "Store at default location" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:499 +#: src/forms/PurchaseOrderForms.tsx:533 msgid "Store at line item destination" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:509 +#: src/forms/PurchaseOrderForms.tsx:545 msgid "Store with already received stock" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:524 -#: src/pages/build/BuildDetail.tsx:219 -#: src/pages/stock/StockDetail.tsx:162 -#: src/pages/stock/StockDetail.tsx:599 -#: src/tables/build/BuildAllocatedStockTable.tsx:109 -#: src/tables/build/BuildOrderTestTable.tsx:188 -#: src/tables/sales/SalesOrderAllocationTable.tsx:87 +#: src/forms/PurchaseOrderForms.tsx:566 +#: src/pages/build/BuildDetail.tsx:222 +#: src/pages/stock/StockDetail.tsx:185 +#: src/pages/stock/StockDetail.tsx:793 +#: src/tables/build/BuildAllocatedStockTable.tsx:130 +#: src/tables/build/BuildOrderTestTable.tsx:189 +#: src/tables/build/BuildOutputTable.tsx:86 +#: src/tables/sales/SalesOrderAllocationTable.tsx:113 msgid "Batch Code" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:535 -msgid "Serial numbers" +#: src/forms/PurchaseOrderForms.tsx:566 +#~ msgid "Serial numbers" +#~ msgstr "Serial numbers" + +#: src/forms/PurchaseOrderForms.tsx:567 +msgid "Enter batch code for received items" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:544 -#: src/forms/StockForms.tsx:443 -#: src/pages/company/SupplierPartDetail.tsx:156 -#: src/pages/company/SupplierPartDetail.tsx:207 -#: src/pages/stock/StockDetail.tsx:244 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:192 +#: src/forms/PurchaseOrderForms.tsx:579 +#: src/forms/StockForms.tsx:152 +msgid "Serial Numbers" +msgstr "" + +#: src/forms/PurchaseOrderForms.tsx:580 +msgid "Enter serial numbers for received items" +msgstr "" + +#: src/forms/PurchaseOrderForms.tsx:590 +#: src/forms/StockForms.tsx:556 +#: src/pages/company/SupplierPartDetail.tsx:168 +#: src/pages/company/SupplierPartDetail.tsx:219 +#: src/pages/stock/StockDetail.tsx:320 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:198 msgid "Packaging" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:556 -#: src/pages/build/BuildDetail.tsx:109 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:148 -#: src/pages/sales/ReturnOrderDetail.tsx:121 -#: src/pages/sales/SalesOrderDetail.tsx:127 -#: src/tables/build/BuildOrderTable.tsx:122 -#: src/tables/machine/MachineListTable.tsx:335 -#: src/tables/part/PartPurchaseOrdersTable.tsx:37 -#: src/tables/purchasing/PurchaseOrderTable.tsx:55 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:132 -#: src/tables/sales/ReturnOrderTable.tsx:46 -#: src/tables/sales/SalesOrderTable.tsx:53 -#: src/tables/settings/ImportSessionTable.tsx:115 -#: src/tables/stock/StockItemTable.tsx:294 -#: src/tables/stock/StockTrackingTable.tsx:52 -msgid "Status" -msgstr "" - -#: src/forms/PurchaseOrderForms.tsx:564 -#: src/pages/company/SupplierPartDetail.tsx:110 -#: src/tables/ColumnRenderers.tsx:132 +#: src/forms/PurchaseOrderForms.tsx:612 +#: src/pages/company/SupplierPartDetail.tsx:115 +#: src/tables/ColumnRenderers.tsx:143 msgid "Note" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/pages/company/SupplierPartDetail.tsx:128 -#: src/tables/purchasing/SupplierPriceBreakTable.tsx:57 -msgid "SKU" -msgstr "" - -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/tables/part/PartPurchaseOrdersTable.tsx:120 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:178 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:127 -msgid "Received" -msgstr "" - -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/forms/StockForms.tsx:499 -#: src/forms/StockForms.tsx:533 -#: src/forms/StockForms.tsx:562 -#: src/forms/StockForms.tsx:590 -#: src/forms/StockForms.tsx:621 -#: src/forms/StockForms.tsx:656 -#: src/forms/StockForms.tsx:698 -#: src/forms/StockForms.tsx:734 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:413 -#: src/tables/RowActions.tsx:113 -msgid "Actions" -msgstr "" - -#: src/forms/PurchaseOrderForms.tsx:655 -msgid "Receive Line Items" -msgstr "" - #: src/forms/PurchaseOrderForms.tsx:658 #~ msgid "Receive line items" #~ msgstr "Receive line items" -#: src/forms/StockForms.tsx:104 -msgid "Add given quantity as packs instead of individual items" +#: src/forms/PurchaseOrderForms.tsx:689 +#: src/pages/company/SupplierPartDetail.tsx:133 +#: src/tables/purchasing/SupplierPriceBreakTable.tsx:57 +msgid "SKU" +msgstr "" + +#: src/forms/PurchaseOrderForms.tsx:689 +#: src/tables/part/PartPurchaseOrdersTable.tsx:126 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:184 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:247 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:152 +msgid "Received" +msgstr "" + +#: src/forms/PurchaseOrderForms.tsx:701 +msgid "Receive Line Items" +msgstr "" + +#: src/forms/ReturnOrderForms.tsx:201 +msgid "Receive Items" +msgstr "" + +#: src/forms/ReturnOrderForms.tsx:208 +msgid "Item received into stock" +msgstr "" + +#: src/forms/StockForms.tsx:80 +#: src/hooks/UsePlaceholder.tsx:57 +msgid "Next serial number" msgstr "" #: src/forms/StockForms.tsx:110 #~ msgid "Create Stock Item" #~ msgstr "Create Stock Item" -#: src/forms/StockForms.tsx:117 +#: src/forms/StockForms.tsx:131 +msgid "Add given quantity as packs instead of individual items" +msgstr "" + +#: src/forms/StockForms.tsx:145 msgid "Enter initial quantity for this stock item" msgstr "" -#: src/forms/StockForms.tsx:124 -msgid "Serial Numbers" -msgstr "" - -#: src/forms/StockForms.tsx:125 +#: src/forms/StockForms.tsx:154 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" @@ -2943,82 +3545,102 @@ msgstr "" #~ msgid "Stock item updated" #~ msgstr "Stock item updated" -#: src/forms/StockForms.tsx:179 -#: src/pages/stock/StockDetail.tsx:434 -#: src/tables/stock/StockItemTable.tsx:417 -#: src/tables/stock/StockItemTable.tsx:535 +#: src/forms/StockForms.tsx:169 +#: src/pages/stock/StockDetail.tsx:131 +msgid "Stock Status" +msgstr "" + +#: src/forms/StockForms.tsx:218 +#: src/pages/stock/StockDetail.tsx:554 +#: src/tables/stock/StockItemTable.tsx:421 +#: src/tables/stock/StockItemTable.tsx:541 msgid "Add Stock Item" msgstr "" -#: src/forms/StockForms.tsx:362 +#: src/forms/StockForms.tsx:262 +msgid "Select the part to install" +msgstr "" + +#: src/forms/StockForms.tsx:480 msgid "Loading..." msgstr "" -#: src/forms/StockForms.tsx:408 +#: src/forms/StockForms.tsx:527 msgid "Move to default location" msgstr "" -#: src/forms/StockForms.tsx:499 -#: src/forms/StockForms.tsx:533 -#: src/forms/StockForms.tsx:562 -#: src/forms/StockForms.tsx:590 -#: src/forms/StockForms.tsx:621 -#: src/forms/StockForms.tsx:656 -#: src/forms/StockForms.tsx:698 -#: src/forms/StockForms.tsx:734 -#: src/pages/part/PartDetail.tsx:230 -#: src/pages/part/PartDetail.tsx:843 -#: src/tables/stock/StockItemTable.tsx:325 +#: src/forms/StockForms.tsx:614 +#: src/forms/StockForms.tsx:651 +#: src/forms/StockForms.tsx:677 +#: src/forms/StockForms.tsx:705 +#: src/forms/StockForms.tsx:736 +#: src/forms/StockForms.tsx:771 +#: src/forms/StockForms.tsx:813 +#: src/forms/StockForms.tsx:851 +#: src/pages/part/PartDetail.tsx:251 +#: src/pages/part/PartDetail.tsx:875 +#: src/tables/stock/StockItemTable.tsx:329 msgid "In Stock" msgstr "" -#: src/forms/StockForms.tsx:499 +#: src/forms/StockForms.tsx:614 msgid "Move" msgstr "" -#: src/forms/StockForms.tsx:562 -#: src/pages/stock/StockDetail.tsx:518 -#: src/tables/stock/StockItemTestResultTable.tsx:328 +#: src/forms/StockForms.tsx:677 +#: src/pages/stock/StockDetail.tsx:681 +#: src/tables/stock/StockItemTestResultTable.tsx:346 msgid "Add" msgstr "" -#: src/forms/StockForms.tsx:590 -#: src/pages/Index/Scan.tsx:266 -#: src/pages/stock/StockDetail.tsx:508 +#: src/forms/StockForms.tsx:705 +#: src/pages/Index/Scan.tsx:280 +#: src/pages/stock/StockDetail.tsx:670 msgid "Count" msgstr "" -#: src/forms/StockForms.tsx:835 +#: src/forms/StockForms.tsx:953 +#: src/pages/stock/StockDetail.tsx:682 +#: src/tables/stock/StockItemTable.tsx:454 msgid "Add Stock" msgstr "" -#: src/forms/StockForms.tsx:844 +#: src/forms/StockForms.tsx:962 +#: src/pages/stock/StockDetail.tsx:691 +#: src/tables/stock/StockItemTable.tsx:463 msgid "Remove Stock" msgstr "" -#: src/forms/StockForms.tsx:853 -#: src/pages/part/PartDetail.tsx:1017 +#: src/forms/StockForms.tsx:971 +#: src/pages/part/PartDetail.tsx:1039 +#: src/pages/stock/StockDetail.tsx:712 +#: src/tables/stock/StockItemTable.tsx:483 msgid "Transfer Stock" msgstr "" -#: src/forms/StockForms.tsx:862 -#: src/pages/part/PartDetail.tsx:1006 +#: src/forms/StockForms.tsx:980 +#: src/pages/part/PartDetail.tsx:1028 +#: src/pages/stock/LocationDetail.tsx:314 +#: src/pages/stock/LocationDetail.tsx:318 +#: src/tables/stock/StockItemTable.tsx:472 +#: src/tables/stock/StockItemTable.tsx:476 msgid "Count Stock" msgstr "" -#: src/forms/StockForms.tsx:871 +#: src/forms/StockForms.tsx:989 msgid "Change Stock Status" msgstr "" -#: src/forms/StockForms.tsx:880 +#: src/forms/StockForms.tsx:998 msgid "Merge Stock" msgstr "" -#: src/forms/StockForms.tsx:899 +#: src/forms/StockForms.tsx:1017 +#: src/tables/stock/StockItemTable.tsx:530 msgid "Delete Stock Items" msgstr "" -#: src/forms/StockForms.tsx:906 +#: src/forms/StockForms.tsx:1024 msgid "Parent stock location" msgstr "" @@ -3042,11 +3664,11 @@ msgstr "" #~ msgid "You have been logged out" #~ msgstr "You have been logged out" -#: src/functions/auth.tsx:117 +#: src/functions/auth.tsx:128 msgid "Logged Out" msgstr "" -#: src/functions/auth.tsx:118 +#: src/functions/auth.tsx:129 msgid "Successfully logged out" msgstr "" @@ -3062,20 +3684,20 @@ msgstr "" #~ msgid "Found an existing login - welcome back!" #~ msgstr "Found an existing login - welcome back!" -#: src/functions/auth.tsx:156 +#: src/functions/auth.tsx:167 msgid "Check your inbox for a reset link. This only works if you have an account. Check in spam too." msgstr "" -#: src/functions/auth.tsx:163 +#: src/functions/auth.tsx:174 #: src/pages/Auth/Set-Password.tsx:39 msgid "Reset failed" msgstr "" -#: src/functions/auth.tsx:194 +#: src/functions/auth.tsx:205 msgid "Logged In" msgstr "" -#: src/functions/auth.tsx:195 +#: src/functions/auth.tsx:206 msgid "Successfully logged in" msgstr "" @@ -3095,30 +3717,38 @@ msgstr "" #~ msgid "method parameter not supplied" #~ msgstr "method parameter not supplied" -#: src/functions/notifications.tsx:10 +#: src/functions/notifications.tsx:12 msgid "Not implemented" msgstr "" -#: src/functions/notifications.tsx:11 +#: src/functions/notifications.tsx:13 msgid "This feature is not yet implemented" msgstr "" -#: src/functions/notifications.tsx:21 -msgid "Permission denied" -msgstr "" +#: src/functions/notifications.tsx:24 +#~ msgid "Permission denied" +#~ msgstr "Permission denied" -#: src/functions/notifications.tsx:22 +#: src/functions/notifications.tsx:25 msgid "You do not have permission to perform this action" msgstr "" -#: src/functions/notifications.tsx:33 +#: src/functions/notifications.tsx:36 msgid "Invalid Return Code" msgstr "" -#: src/functions/notifications.tsx:34 +#: src/functions/notifications.tsx:37 msgid "Server returned status {returnCode}" msgstr "" +#: src/functions/notifications.tsx:47 +msgid "Timeout" +msgstr "" + +#: src/functions/notifications.tsx:48 +msgid "The request timed out" +msgstr "" + #: src/hooks/UseForm.tsx:88 msgid "Item Created" msgstr "" @@ -3135,20 +3765,24 @@ msgstr "" msgid "Are you sure you want to delete this item?" msgstr "" +#: src/hooks/UsePlaceholder.tsx:59 +msgid "Latest serial number" +msgstr "" + #: src/pages/Auth/Logged-In.tsx:22 msgid "Checking if you are already logged in" msgstr "" -#: src/pages/Auth/Login.tsx:31 -#: src/pages/Index/Scan.tsx:329 +#: src/pages/Auth/Login.tsx:35 +#: src/pages/Index/Scan.tsx:343 msgid "No selection" msgstr "" -#: src/pages/Auth/Login.tsx:87 +#: src/pages/Auth/Login.tsx:91 msgid "Welcome, log in below" msgstr "" -#: src/pages/Auth/Login.tsx:89 +#: src/pages/Auth/Login.tsx:93 msgid "Register below" msgstr "" @@ -3162,8 +3796,8 @@ msgstr "" #: src/pages/Auth/Reset.tsx:41 #: src/pages/Auth/Set-Password.tsx:112 -msgid "Send mail" -msgstr "" +#~ msgid "Send mail" +#~ msgstr "Send mail" #: src/pages/Auth/Set-Password.tsx:30 msgid "Token invalid" @@ -3174,22 +3808,22 @@ msgid "You need to provide a valid token to set a new password. Check your inbox msgstr "" #: src/pages/Auth/Set-Password.tsx:49 -msgid "No token provided" -msgstr "" +#~ msgid "No token provided" +#~ msgstr "No token provided" #: src/pages/Auth/Set-Password.tsx:50 -msgid "You need to provide a token to set a new password. Check your inbox for a reset link." -msgstr "" +#~ msgid "You need to provide a token to set a new password. Check your inbox for a reset link." +#~ msgstr "You need to provide a token to set a new password. Check your inbox for a reset link." -#: src/pages/Auth/Set-Password.tsx:73 +#: src/pages/Auth/Set-Password.tsx:68 msgid "Password set" msgstr "" -#: src/pages/Auth/Set-Password.tsx:74 +#: src/pages/Auth/Set-Password.tsx:69 msgid "The password was set successfully. You can now login with your new password" msgstr "" -#: src/pages/Auth/Set-Password.tsx:101 +#: src/pages/Auth/Set-Password.tsx:96 msgid "Set new password" msgstr "" @@ -3206,20 +3840,20 @@ msgstr "" #~ msgstr "Sorry, an unexpected error has occurred." #: src/pages/Index/Dashboard.tsx:22 -msgid "Autoupdate" -msgstr "" +#~ msgid "Autoupdate" +#~ msgstr "Autoupdate" #: src/pages/Index/Dashboard.tsx:26 -msgid "This page is a replacement for the old start page with the same information. This page will be deprecated and replaced by the home page." -msgstr "" +#~ msgid "This page is a replacement for the old start page with the same information. This page will be deprecated and replaced by the home page." +#~ msgstr "This page is a replacement for the old start page with the same information. This page will be deprecated and replaced by the home page." #: src/pages/Index/Home.tsx:58 -msgid "Welcome to your Dashboard{0}" -msgstr "" +#~ msgid "Welcome to your Dashboard{0}" +#~ msgstr "Welcome to your Dashboard{0}" #: src/pages/Index/Playground.tsx:222 -msgid "This page is a showcase for the possibilities of Platform UI." -msgstr "" +#~ msgid "This page is a showcase for the possibilities of Platform UI." +#~ msgstr "This page is a showcase for the possibilities of Platform UI." #: src/pages/Index/Profile/Profile.tsx:30 #: src/pages/Index/Profile/Profile.tsx:141 @@ -3365,125 +3999,190 @@ msgstr "" msgid "Image Barcode" msgstr "" -#: src/pages/Index/Scan.tsx:247 +#: src/pages/Index/Scan.tsx:261 msgid "Selected elements are not known" msgstr "" -#: src/pages/Index/Scan.tsx:254 +#: src/pages/Index/Scan.tsx:268 msgid "Multiple object types selected" msgstr "" -#: src/pages/Index/Scan.tsx:261 +#: src/pages/Index/Scan.tsx:275 msgid "Actions for {0}" msgstr "" -#: src/pages/Index/Scan.tsx:282 +#: src/pages/Index/Scan.tsx:296 msgid "Scan Page" msgstr "" -#: src/pages/Index/Scan.tsx:285 +#: src/pages/Index/Scan.tsx:299 msgid "This page can be used for continuously scanning items and taking actions on them." msgstr "" -#: src/pages/Index/Scan.tsx:292 +#: src/pages/Index/Scan.tsx:306 msgid "Toggle Fullscreen" msgstr "" -#: src/pages/Index/Scan.tsx:305 +#: src/pages/Index/Scan.tsx:319 msgid "Select the input method you want to use to scan items." msgstr "" -#: src/pages/Index/Scan.tsx:307 +#: src/pages/Index/Scan.tsx:321 msgid "Input" msgstr "" -#: src/pages/Index/Scan.tsx:314 +#: src/pages/Index/Scan.tsx:328 msgid "Select input method" msgstr "" -#: src/pages/Index/Scan.tsx:315 +#: src/pages/Index/Scan.tsx:329 msgid "Nothing found" msgstr "" -#: src/pages/Index/Scan.tsx:323 +#: src/pages/Index/Scan.tsx:337 msgid "Depending on the selected parts actions will be shown here. Not all barcode types are supported currently." msgstr "" -#: src/pages/Index/Scan.tsx:325 +#: src/pages/Index/Scan.tsx:339 msgid "Action" msgstr "" -#: src/pages/Index/Scan.tsx:334 +#: src/pages/Index/Scan.tsx:348 msgid "{0} items selected" msgstr "" -#: src/pages/Index/Scan.tsx:337 +#: src/pages/Index/Scan.tsx:351 msgid "General Actions" msgstr "" -#: src/pages/Index/Scan.tsx:351 +#: src/pages/Index/Scan.tsx:365 msgid "Lookup part" msgstr "" -#: src/pages/Index/Scan.tsx:359 +#: src/pages/Index/Scan.tsx:373 msgid "Open Link" msgstr "" -#: src/pages/Index/Scan.tsx:375 +#: src/pages/Index/Scan.tsx:389 msgid "History is locally kept in this browser." msgstr "" -#: src/pages/Index/Scan.tsx:376 +#: src/pages/Index/Scan.tsx:390 msgid "The history is kept in this browser's local storage. So it won't be shared with other users or other devices but is persistent through reloads. You can select items in the history to perform actions on them. To add items, scan/enter them in the Input area." msgstr "" -#: src/pages/Index/Scan.tsx:378 +#: src/pages/Index/Scan.tsx:392 #: src/pages/Notifications.tsx:100 msgid "History" msgstr "" -#: src/pages/Index/Scan.tsx:384 +#: src/pages/Index/Scan.tsx:398 msgid "Delete History" msgstr "" -#: src/pages/Index/Scan.tsx:449 +#: src/pages/Index/Scan.tsx:463 msgid "No history" msgstr "" -#: src/pages/Index/Scan.tsx:467 +#: src/pages/Index/Scan.tsx:481 msgid "Item" msgstr "" -#: src/pages/Index/Scan.tsx:470 +#: src/pages/Index/Scan.tsx:484 msgid "Type" msgstr "" -#: src/pages/Index/Scan.tsx:473 +#: src/pages/Index/Scan.tsx:487 msgid "Source" msgstr "" -#: src/pages/Index/Scan.tsx:476 +#: src/pages/Index/Scan.tsx:490 msgid "Scanned at" msgstr "" -#: src/pages/Index/Scan.tsx:528 +#: src/pages/Index/Scan.tsx:547 msgid "Enter item serial or data" msgstr "" -#: src/pages/Index/Scan.tsx:540 +#: src/pages/Index/Scan.tsx:559 msgid "Add dummy item" msgstr "" +#: src/pages/Index/Scan.tsx:569 +msgid "Start scanning by selecting a camera and pressing the play button." +msgstr "" + +#: src/pages/Index/Scan.tsx:650 +msgid "Error while getting camera" +msgstr "" + +#: src/pages/Index/Scan.tsx:673 +msgid "Error while scanning" +msgstr "" + +#: src/pages/Index/Scan.tsx:687 +msgid "Error while stopping" +msgstr "" + +#: src/pages/Index/Scan.tsx:745 +msgid "Stop scanning" +msgstr "" + +#: src/pages/Index/Scan.tsx:754 +msgid "Start scanning" +msgstr "" + +#: src/pages/Index/Scan.tsx:763 +msgid "Scanning" +msgstr "" + +#: src/pages/Index/Scan.tsx:763 +msgid "Not scanning" +msgstr "" + +#: src/pages/Index/Scan.tsx:775 +msgid "Select Camera" +msgstr "कैमरा चुनें" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:28 +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:50 +msgid "Edit User Information" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:32 +msgid "User details updated" +msgstr "" + #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:41 -msgid "Account Details" +msgid "User Details" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:41 +#~ msgid "Account Details" +#~ msgstr "Account Details" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:44 +msgid "User Actions" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:48 +msgid "Edit User" msgstr "" #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:50 -msgid "First name" +#~ msgid "First name" +#~ msgstr "First name" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:54 +msgid "Set Password" msgstr "" #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:55 -msgid "Last name" +#~ msgid "Last name" +#~ msgstr "Last name" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:56 +msgid "Set User Password" msgstr "" #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:58 @@ -3495,15 +4194,28 @@ msgstr "" #~ msgstr "Last name: {0}" #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:67 -msgid "First name:" -msgstr "" +#~ msgid "First name:" +#~ msgstr "First name:" #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:71 -msgid "Last name:" +#~ msgid "Last name:" +#~ msgstr "Last name:" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:73 +msgid "First Name" msgstr "" -#: src/pages/Index/Settings/AccountSettings/DisplaySettingsPanel.tsx:41 -msgid "Use pseudo language" +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:79 +msgid "Last Name" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:85 +msgid "Staff Access" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:93 +#: src/tables/settings/UserTable.tsx:293 +msgid "Superuser" msgstr "" #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:55 @@ -3600,27 +4312,6 @@ msgstr "" msgid "No tokens configured" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:398 -#: src/pages/part/PartDetail.tsx:297 -#: src/tables/bom/UsedInTable.tsx:84 -#: src/tables/build/BuildOrderTable.tsx:110 -#: src/tables/company/CompanyTable.tsx:61 -#: src/tables/company/CompanyTable.tsx:95 -#: src/tables/machine/MachineListTable.tsx:332 -#: src/tables/machine/MachineListTable.tsx:594 -#: src/tables/part/ParametricPartTable.tsx:223 -#: src/tables/part/PartTable.tsx:178 -#: src/tables/part/PartVariantTable.tsx:15 -#: src/tables/plugin/PluginListTable.tsx:149 -#: src/tables/plugin/PluginListTable.tsx:271 -#: src/tables/plugin/PluginListTable.tsx:563 -#: src/tables/purchasing/SupplierPartTable.tsx:98 -#: src/tables/purchasing/SupplierPartTable.tsx:187 -#: src/tables/settings/UserTable.tsx:284 -#: src/tables/stock/StockItemTable.tsx:289 -msgid "Active" -msgstr "" - #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:401 msgid "Expiry" msgstr "" @@ -3630,38 +4321,74 @@ msgid "Last Seen" msgstr "" #: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:65 -msgid "bars" -msgstr "" +#~ msgid "bars" +#~ msgstr "bars" #: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:66 -msgid "oval" -msgstr "" +#~ msgid "oval" +#~ msgstr "oval" #: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:67 -msgid "dots" -msgstr "" +#~ msgid "dots" +#~ msgstr "dots" #: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:81 -msgid "Theme" -msgstr "" +#~ msgid "Theme" +#~ msgstr "Theme" #: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:87 -msgid "Primary color" +#~ msgid "Primary color" +#~ msgstr "Primary color" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:88 +msgid "Bars" msgstr "" -#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:100 +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:89 +msgid "Oval" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:90 +msgid "Dots" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:101 +msgid "Display Settings" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:107 +msgid "Language" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:115 +msgid "Use pseudo language" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:122 +msgid "Color Mode" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:133 +msgid "Highlight color" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:145 +msgid "Example" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:151 msgid "White color" msgstr "" -#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:108 +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:167 msgid "Black color" msgstr "" -#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:116 +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:183 msgid "Border Radius" msgstr "" -#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:132 +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:199 msgid "Loader" msgstr "" @@ -3673,89 +4400,156 @@ msgstr "" #~ msgid "Advanced Amininistrative Options for InvenTree" #~ msgstr "Advanced Amininistrative Options for InvenTree" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:104 +#: src/pages/Index/Settings/AdminCenter/CurrencyManagmentPanel.tsx:27 +#: src/tables/ColumnRenderers.tsx:262 +msgid "Currency" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/CurrencyManagmentPanel.tsx:32 +msgid "Rate" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/CurrencyManagmentPanel.tsx:44 +msgid "Exchange rates updated" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/CurrencyManagmentPanel.tsx:50 +msgid "Exchange rate update error" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/CurrencyManagmentPanel.tsx:62 +msgid "Refresh currency exchange rates" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/CurrencyManagmentPanel.tsx:99 +msgid "Last fetched" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/CurrencyManagmentPanel.tsx:100 +msgid "Base currency" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:115 msgid "Data Import" msgstr "" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:110 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:121 +msgid "Barcode Scans" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:127 msgid "Background Tasks" msgstr "" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:116 -msgid "Error Reports" -msgstr "" - -#: src/pages/Index/Settings/AdminCenter/Index.tsx:122 -msgid "Currencies" -msgstr "" - #: src/pages/Index/Settings/AdminCenter/Index.tsx:127 #~ msgid "Templates" #~ msgstr "Templates" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:140 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:133 +msgid "Error Reports" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:139 +msgid "Currencies" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:157 +msgid "Custom States" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:163 +#: src/pages/Index/Settings/AdminCenter/UnitManagmentPanel.tsx:58 msgid "Custom Units" msgstr "" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:146 -#: src/pages/part/CategoryDetail.tsx:264 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:169 +#: src/pages/part/CategoryDetail.tsx:269 msgid "Part Parameters" msgstr "" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:152 -msgid "Category Parameters" -msgstr "" - -#: src/pages/Index/Settings/AdminCenter/Index.tsx:170 -msgid "Location Types" -msgstr "" - #: src/pages/Index/Settings/AdminCenter/Index.tsx:170 #~ msgid "Location types" #~ msgstr "Location types" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:182 -#: src/tables/machine/MachineTypeTable.tsx:287 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:175 +msgid "Category Parameters" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:181 +msgid "Stocktake" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:199 +msgid "Location Types" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:211 +#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:48 +#: src/tables/machine/MachineTypeTable.tsx:308 msgid "Machines" msgstr "" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:192 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:221 msgid "Quick Actions" msgstr "" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:197 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:226 msgid "Add a new user" msgstr "" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:222 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:252 msgid "Advanced Options" msgstr "" #: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:43 -msgid "Machine types" -msgstr "" +#~ msgid "Machine types" +#~ msgstr "Machine types" #: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:53 -msgid "Machine Error Stack" +#~ msgid "Machine Error Stack" +#~ msgstr "Machine Error Stack" + +#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:56 +msgid "Machine Types" msgstr "" #: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:62 -msgid "There are no machine registry errors." +#~ msgid "There are no machine registry errors." +#~ msgstr "There are no machine registry errors." + +#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:64 +msgid "Machine Errors" msgstr "" -#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:28 -#: src/tables/settings/UserTable.tsx:119 +#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:77 +msgid "Registry Registry Errors" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:80 +msgid "There are machine registry errors" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:86 +msgid "Machine Registry Errors" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:89 +msgid "There are no machine registry errors" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:31 +#: src/tables/settings/UserTable.tsx:118 msgid "Info" msgstr "" -#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:32 -msgid "External plugins are not enabled for this InvenTree installation." -msgstr "" - #: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:33 #~ msgid "Plugin Error Stack" #~ msgstr "Plugin Error Stack" +#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:35 +msgid "External plugins are not enabled for this InvenTree installation." +msgstr "" + #: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:45 #~ msgid "Warning" #~ msgstr "Warning" @@ -3764,34 +4558,46 @@ msgstr "" #~ msgid "Changing the settings below require you to immediately restart the server. Do not change this while under active usage." #~ msgstr "Changing the settings below require you to immediately restart the server. Do not change this while under active usage." -#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:50 +#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:73 msgid "Plugin Errors" msgstr "" -#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:59 -msgid "Plugin Settings" +#: src/pages/Index/Settings/AdminCenter/ReportTemplatePanel.tsx:17 +msgid "Page Size" msgstr "" -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:53 -msgid "Background Worker Not Running" +#: src/pages/Index/Settings/AdminCenter/ReportTemplatePanel.tsx:20 +msgid "Landscape" msgstr "" -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:54 +#: src/pages/Index/Settings/AdminCenter/ReportTemplatePanel.tsx:26 +msgid "Attach to Model" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/StocktakePanel.tsx:25 +msgid "Stocktake Reports" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:30 msgid "The background task manager service is not running. Contact your system administrator." msgstr "" -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:60 -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:76 +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:35 +#~ msgid "Background Worker Not Running" +#~ msgstr "Background Worker Not Running" + +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:36 +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:45 msgid "Pending Tasks" msgstr "" -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:64 -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:84 +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:37 +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:53 msgid "Scheduled Tasks" msgstr "" -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:68 -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:92 +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:38 +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:61 msgid "Failed Tasks" msgstr "" @@ -3811,11 +4617,6 @@ msgstr "" #~ msgid "Reports" #~ msgstr "Reports" -#: src/pages/Index/Settings/AdminCenter/TemplateManagementPanel.tsx:89 -#: src/pages/build/BuildDetail.tsx:373 -#~ msgid "Report" -#~ msgstr "Report" - #: src/pages/Index/Settings/AdminCenter/TemplateManagementPanel.tsx:99 #~ msgid "Purchase order" #~ msgstr "Purchase order" @@ -3836,23 +4637,35 @@ msgstr "" #~ msgid "Stock location" #~ msgstr "Stock location" +#: src/pages/Index/Settings/AdminCenter/UnitManagmentPanel.tsx:21 +msgid "Alias" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/UnitManagmentPanel.tsx:22 +msgid "Dimensionless" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/UnitManagmentPanel.tsx:66 +msgid "All units" +msgstr "" + #: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:32 msgid "Select settings relevant for user lifecycle. More available in" msgstr "" #: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:37 -msgid "System settings" -msgstr "" +#~ msgid "System settings" +#~ msgstr "System settings" -#: src/pages/Index/Settings/SystemSettings.tsx:67 +#: src/pages/Index/Settings/SystemSettings.tsx:66 msgid "Login" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:93 +#: src/pages/Index/Settings/SystemSettings.tsx:92 msgid "Barcodes" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:115 +#: src/pages/Index/Settings/SystemSettings.tsx:116 msgid "Pricing" msgstr "" @@ -3864,64 +4677,46 @@ msgstr "" #~ msgid "Exchange Rates" #~ msgstr "Exchange Rates" -#: src/pages/Index/Settings/SystemSettings.tsx:150 +#: src/pages/Index/Settings/SystemSettings.tsx:151 msgid "Labels" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:156 -#: src/pages/Index/Settings/UserSettings.tsx:132 +#: src/pages/Index/Settings/SystemSettings.tsx:157 +#: src/pages/Index/Settings/UserSettings.tsx:133 msgid "Reporting" msgstr "" #: src/pages/Index/Settings/SystemSettings.tsx:231 -#: src/pages/part/PartDetail.tsx:682 -msgid "Stocktake" -msgstr "" - -#: src/pages/Index/Settings/SystemSettings.tsx:237 -#: src/pages/build/BuildDetail.tsx:554 -#: src/pages/build/BuildIndex.tsx:22 -#: src/pages/part/PartDetail.tsx:616 -#: src/pages/sales/SalesOrderDetail.tsx:333 +#: src/pages/build/BuildIndex.tsx:27 +#: src/pages/part/PartDetail.tsx:636 +#: src/pages/sales/SalesOrderDetail.tsx:355 msgid "Build Orders" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:318 -msgid "Switch to User Setting" -msgstr "" +#: src/pages/Index/Settings/SystemSettings.tsx:317 +#~ msgid "Switch to User Setting" +#~ msgstr "Switch to User Setting" -#: src/pages/Index/Settings/UserSettings.tsx:34 +#: src/pages/Index/Settings/UserSettings.tsx:35 msgid "Account" msgstr "" -#: src/pages/Index/Settings/UserSettings.tsx:40 +#: src/pages/Index/Settings/UserSettings.tsx:41 msgid "Security" msgstr "" -#: src/pages/Index/Settings/UserSettings.tsx:78 +#: src/pages/Index/Settings/UserSettings.tsx:79 msgid "Display Options" msgstr "" -#: src/pages/Index/Settings/UserSettings.tsx:150 -msgid "Account Settings" -msgstr "" - -#: src/pages/Index/Settings/UserSettings.tsx:158 -msgid "Switch to System Setting" -msgstr "" - -#: src/pages/Index/UserSettings.tsx:103 -#~ msgid "User Settings" -#~ msgstr "User Settings" +#: src/pages/Index/Settings/UserSettings.tsx:159 +#~ msgid "Switch to System Setting" +#~ msgstr "Switch to System Setting" #: src/pages/Logged-In.tsx:24 #~ msgid "Found an exsisting login - using it to log you in." #~ msgstr "Found an exsisting login - using it to log you in." -#: src/pages/NotFound.tsx:17 -#~ msgid "Not Found" -#~ msgstr "Not Found" - #: src/pages/NotFound.tsx:20 #~ msgid "Sorry, this page is not known or was moved." #~ msgstr "Sorry, this page is not known or was moved." @@ -3942,104 +4737,86 @@ msgstr "" #~ msgid "Build Status" #~ msgstr "Build Status" -#: src/pages/build/BuildDetail.tsx:102 -#: src/pages/part/PartDetail.tsx:150 +#: src/pages/build/BuildDetail.tsx:97 +#: src/pages/company/ManufacturerPartDetail.tsx:81 +#: src/pages/company/SupplierPartDetail.tsx:91 +#: src/pages/part/PartDetail.tsx:171 +#: src/pages/stock/StockDetail.tsx:122 #: src/tables/bom/BomTable.tsx:118 #: src/tables/bom/UsedInTable.tsx:39 -#: src/tables/build/BuildLineTable.tsx:173 -#: src/tables/build/BuildOrderTable.tsx:55 -#: src/tables/sales/SalesOrderLineItemTable.tsx:62 -#: src/tables/stock/StockItemTable.tsx:53 +#: src/tables/build/BuildAllocatedStockTable.tsx:104 +#: src/tables/build/BuildLineTable.tsx:324 +#: src/tables/build/BuildOrderTable.tsx:64 +#: src/tables/sales/SalesOrderLineItemTable.tsx:70 +#: src/tables/stock/StockItemTable.tsx:54 msgid "IPN" msgstr "" -#: src/pages/build/BuildDetail.tsx:115 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:121 -#: src/pages/sales/ReturnOrderDetail.tsx:95 -#: src/pages/sales/SalesOrderDetail.tsx:101 -#: src/tables/ColumnRenderers.tsx:121 -#: src/tables/build/BuildAllocatedStockTable.tsx:90 -#: src/tables/build/BuildLineTable.tsx:184 +#: src/pages/build/BuildDetail.tsx:110 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:115 +#: src/pages/sales/ReturnOrderDetail.tsx:86 +#: src/pages/sales/SalesOrderDetail.tsx:95 +#: src/tables/ColumnRenderers.tsx:132 +#: src/tables/build/BuildAllocatedStockTable.tsx:111 +#: src/tables/build/BuildLineTable.tsx:335 msgid "Reference" msgstr "" -#: src/pages/build/BuildDetail.tsx:121 -#: src/pages/company/CompanyDetail.tsx:90 -#: src/pages/company/ManufacturerPartDetail.tsx:83 -#: src/pages/company/SupplierPartDetail.tsx:96 -#: src/pages/part/CategoryDetail.tsx:101 -#: src/pages/part/PartDetail.tsx:157 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:142 -#: src/pages/sales/ReturnOrderDetail.tsx:115 -#: src/pages/sales/SalesOrderDetail.tsx:121 -#: src/pages/stock/LocationDetail.tsx:109 -#: src/tables/ColumnRenderers.tsx:81 -#: src/tables/bom/UsedInTable.tsx:44 -#: src/tables/build/BuildAllocatedStockTable.tsx:70 -#: src/tables/build/BuildLineTable.tsx:178 -#: src/tables/machine/MachineTypeTable.tsx:69 -#: src/tables/machine/MachineTypeTable.tsx:112 -#: src/tables/machine/MachineTypeTable.tsx:219 -#: src/tables/machine/MachineTypeTable.tsx:323 -#: src/tables/part/RelatedPartTable.tsx:64 -#: src/tables/plugin/PluginListTable.tsx:129 -#: src/tables/plugin/PluginListTable.tsx:276 -#: src/tables/sales/SalesOrderAllocationTable.tsx:56 -#: src/tables/sales/SalesOrderLineItemTable.tsx:67 -#: src/tables/stock/LocationTypesTable.tsx:74 -msgid "Description" -msgstr "" - -#: src/pages/build/BuildDetail.tsx:129 +#: src/pages/build/BuildDetail.tsx:124 msgid "Parent Build" msgstr "" -#: src/pages/build/BuildDetail.tsx:140 +#: src/pages/build/BuildDetail.tsx:135 msgid "Build Quantity" msgstr "" -#: src/pages/build/BuildDetail.tsx:148 -#: src/pages/build/BuildDetail.tsx:274 +#: src/pages/build/BuildDetail.tsx:143 +#: src/pages/build/BuildDetail.tsx:277 msgid "Completed Outputs" msgstr "" -#: src/pages/build/BuildDetail.tsx:165 -#: src/tables/build/BuildOrderTable.tsx:151 +#: src/pages/build/BuildDetail.tsx:160 +#: src/tables/build/BuildOrderTable.tsx:142 msgid "Issued By" msgstr "" -#: src/pages/build/BuildDetail.tsx:172 -#: src/pages/part/PartDetail.tsx:365 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:220 -#: src/pages/sales/ReturnOrderDetail.tsx:199 -#: src/pages/sales/SalesOrderDetail.tsx:208 -#: src/tables/build/BuildOrderTable.tsx:157 -#: src/tables/purchasing/PurchaseOrderTable.tsx:75 -#: src/tables/sales/ReturnOrderTable.tsx:66 -#: src/tables/sales/SalesOrderTable.tsx:73 +#: src/pages/build/BuildDetail.tsx:167 +#: src/pages/part/PartDetail.tsx:406 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:244 +#: src/pages/sales/ReturnOrderDetail.tsx:216 +#: src/pages/sales/SalesOrderDetail.tsx:226 +#: src/tables/build/BuildOrderTable.tsx:148 +#: src/tables/purchasing/PurchaseOrderTable.tsx:76 +#: src/tables/sales/ReturnOrderTable.tsx:74 +#: src/tables/sales/SalesOrderTable.tsx:74 msgid "Responsible" msgstr "" -#: src/pages/build/BuildDetail.tsx:179 -#: src/tables/settings/PendingTasksTable.tsx:32 +#: src/pages/build/BuildDetail.tsx:174 +#: src/tables/settings/PendingTasksTable.tsx:36 msgid "Created" msgstr "" +#: src/pages/build/BuildDetail.tsx:181 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:229 +#: src/pages/sales/ReturnOrderDetail.tsx:201 +#: src/pages/sales/SalesOrderDetail.tsx:212 +#: src/tables/ColumnRenderers.tsx:226 +#: src/tables/part/PartPurchaseOrdersTable.tsx:100 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:135 +#: src/tables/sales/SalesOrderLineItemTable.tsx:107 +msgid "Target Date" +msgstr "" + #: src/pages/build/BuildDetail.tsx:185 #: src/pages/part/PartDetail.tsx:269 #: src/pages/stock/StockDetail.tsx:150 #~ msgid "View part barcode" #~ msgstr "View part barcode" -#: src/pages/build/BuildDetail.tsx:186 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:213 -#: src/pages/sales/ReturnOrderDetail.tsx:192 -#: src/pages/sales/SalesOrderDetail.tsx:201 -#: src/tables/ColumnRenderers.tsx:212 -#: src/tables/part/PartPurchaseOrdersTable.tsx:99 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:110 -#: src/tables/sales/SalesOrderLineItemTable.tsx:99 -msgid "Target Date" +#: src/pages/build/BuildDetail.tsx:188 +#: src/tables/sales/SalesOrderLineItemTable.tsx:281 +msgid "Completed" msgstr "" #: src/pages/build/BuildDetail.tsx:190 @@ -4047,10 +4824,6 @@ msgstr "" #~ msgid "Link custom barcode to part" #~ msgstr "Link custom barcode to part" -#: src/pages/build/BuildDetail.tsx:193 -msgid "Completed" -msgstr "" - #: src/pages/build/BuildDetail.tsx:196 #: src/pages/part/PartDetail.tsx:280 #~ msgid "Unlink custom barcode from part" @@ -4060,15 +4833,11 @@ msgstr "" #~ msgid "Build Order updated" #~ msgstr "Build Order updated" -#: src/pages/build/BuildDetail.tsx:205 -msgid "Source Location" -msgstr "" - -#: src/pages/build/BuildDetail.tsx:206 +#: src/pages/build/BuildDetail.tsx:209 msgid "Any location" msgstr "" -#: src/pages/build/BuildDetail.tsx:213 +#: src/pages/build/BuildDetail.tsx:216 msgid "Destination Location" msgstr "" @@ -4084,206 +4853,182 @@ msgstr "" #~ msgid "Delete build order" #~ msgstr "Delete build order" -#: src/pages/build/BuildDetail.tsx:251 +#: src/pages/build/BuildDetail.tsx:254 msgid "Build Details" msgstr "" -#: src/pages/build/BuildDetail.tsx:257 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:258 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:267 -#: src/pages/sales/ReturnOrderDetail.tsx:130 -#: src/pages/sales/ReturnOrderDetail.tsx:237 -#: src/pages/sales/ReturnOrderDetail.tsx:246 -#: src/pages/sales/SalesOrderDetail.tsx:272 -#: src/pages/sales/SalesOrderDetail.tsx:281 +#: src/pages/build/BuildDetail.tsx:260 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:282 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:291 +#: src/pages/sales/ReturnOrderDetail.tsx:122 +#: src/pages/sales/ReturnOrderDetail.tsx:254 +#: src/pages/sales/ReturnOrderDetail.tsx:263 +#: src/pages/sales/SalesOrderDetail.tsx:294 +#: src/pages/sales/SalesOrderDetail.tsx:303 msgid "Line Items" msgstr "" -#: src/pages/build/BuildDetail.tsx:267 +#: src/pages/build/BuildDetail.tsx:266 msgid "Incomplete Outputs" msgstr "" -#: src/pages/build/BuildDetail.tsx:289 -#: src/pages/sales/SalesOrderDetail.tsx:319 +#: src/pages/build/BuildDetail.tsx:292 +#: src/pages/sales/SalesOrderDetail.tsx:341 msgid "Allocated Stock" msgstr "" -#: src/pages/build/BuildDetail.tsx:299 +#: src/pages/build/BuildDetail.tsx:302 msgid "Consumed Stock" msgstr "" -#: src/pages/build/BuildDetail.tsx:313 +#: src/pages/build/BuildDetail.tsx:316 msgid "Child Build Orders" msgstr "" #: src/pages/build/BuildDetail.tsx:326 -#: src/tables/build/BuildOutputTable.tsx:384 -#: src/tables/stock/StockItemTestResultTable.tsx:150 +#: src/tables/build/BuildOutputTable.tsx:532 +#: src/tables/stock/StockItemTestResultTable.tsx:156 msgid "Test Results" msgstr "" #: src/pages/build/BuildDetail.tsx:337 -#: src/pages/part/PartDetail.tsx:699 +#: src/pages/part/PartDetail.tsx:740 msgid "Test Statistics" msgstr "" -#: src/pages/build/BuildDetail.tsx:351 -#: src/pages/company/CompanyDetail.tsx:259 -#: src/pages/company/ManufacturerPartDetail.tsx:179 -#: src/pages/part/PartDetail.tsx:721 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:309 -#: src/pages/sales/ReturnOrderDetail.tsx:274 -#: src/pages/sales/SalesOrderDetail.tsx:343 -#: src/pages/stock/StockDetail.tsx:385 -msgid "Attachments" -msgstr "" - -#: src/pages/build/BuildDetail.tsx:359 -#: src/pages/company/CompanyDetail.tsx:270 -#: src/pages/company/ManufacturerPartDetail.tsx:190 -#: src/pages/company/SupplierPartDetail.tsx:257 -#: src/pages/part/PartDetail.tsx:729 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:320 -#: src/pages/sales/ReturnOrderDetail.tsx:285 -#: src/pages/sales/SalesOrderDetail.tsx:354 -#: src/pages/stock/StockDetail.tsx:396 -#: src/tables/build/BuildOrderTestTable.tsx:142 -#: src/tables/stock/StockTrackingTable.tsx:189 -msgid "Notes" +#: src/pages/build/BuildDetail.tsx:365 +msgid "Edit Build Order" msgstr "" #: src/pages/build/BuildDetail.tsx:368 #~ msgid "Reporting Actions" #~ msgstr "Reporting Actions" +#: src/pages/build/BuildDetail.tsx:372 +#: src/tables/build/BuildOrderTable.tsx:173 +#: src/tables/build/BuildOrderTable.tsx:188 +msgid "Add Build Order" +msgstr "" + #: src/pages/build/BuildDetail.tsx:374 #~ msgid "Print build report" #~ msgstr "Print build report" -#: src/pages/build/BuildDetail.tsx:377 -msgid "Edit Build Order" -msgstr "" - -#: src/pages/build/BuildDetail.tsx:384 -#: src/tables/build/BuildOrderTable.tsx:172 -#: src/tables/build/BuildOrderTable.tsx:187 -msgid "Add Build Order" -msgstr "" - -#: src/pages/build/BuildDetail.tsx:398 +#: src/pages/build/BuildDetail.tsx:386 msgid "Cancel Build Order" msgstr "" -#: src/pages/build/BuildDetail.tsx:400 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:348 -#: src/pages/sales/SalesOrderDetail.tsx:380 +#: src/pages/build/BuildDetail.tsx:388 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:357 +#: src/pages/sales/ReturnOrderDetail.tsx:354 +#: src/pages/sales/SalesOrderDetail.tsx:387 msgid "Order cancelled" msgstr "" -#: src/pages/build/BuildDetail.tsx:401 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:347 -#: src/pages/sales/ReturnOrderDetail.tsx:346 -#: src/pages/sales/SalesOrderDetail.tsx:379 +#: src/pages/build/BuildDetail.tsx:389 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:356 +#: src/pages/sales/ReturnOrderDetail.tsx:353 +#: src/pages/sales/SalesOrderDetail.tsx:386 msgid "Cancel this order" msgstr "" -#: src/pages/build/BuildDetail.tsx:410 +#: src/pages/build/BuildDetail.tsx:398 msgid "Hold Build Order" msgstr "" -#: src/pages/build/BuildDetail.tsx:412 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:355 -#: src/pages/sales/ReturnOrderDetail.tsx:354 -#: src/pages/sales/SalesOrderDetail.tsx:387 +#: src/pages/build/BuildDetail.tsx:400 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:364 +#: src/pages/sales/ReturnOrderDetail.tsx:361 +#: src/pages/sales/SalesOrderDetail.tsx:394 msgid "Place this order on hold" msgstr "" -#: src/pages/build/BuildDetail.tsx:413 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:356 -#: src/pages/sales/ReturnOrderDetail.tsx:355 -#: src/pages/sales/SalesOrderDetail.tsx:388 +#: src/pages/build/BuildDetail.tsx:401 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:365 +#: src/pages/sales/ReturnOrderDetail.tsx:362 +#: src/pages/sales/SalesOrderDetail.tsx:395 msgid "Order placed on hold" msgstr "" -#: src/pages/build/BuildDetail.tsx:418 +#: src/pages/build/BuildDetail.tsx:406 msgid "Issue Build Order" msgstr "" -#: src/pages/build/BuildDetail.tsx:420 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:339 -#: src/pages/sales/ReturnOrderDetail.tsx:338 -#: src/pages/sales/SalesOrderDetail.tsx:371 +#: src/pages/build/BuildDetail.tsx:408 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:348 +#: src/pages/sales/ReturnOrderDetail.tsx:345 +#: src/pages/sales/SalesOrderDetail.tsx:378 msgid "Issue this order" msgstr "" -#: src/pages/build/BuildDetail.tsx:421 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:340 -#: src/pages/sales/ReturnOrderDetail.tsx:339 -#: src/pages/sales/SalesOrderDetail.tsx:372 +#: src/pages/build/BuildDetail.tsx:409 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:349 +#: src/pages/sales/ReturnOrderDetail.tsx:346 +#: src/pages/sales/SalesOrderDetail.tsx:379 msgid "Order issued" msgstr "" -#: src/pages/build/BuildDetail.tsx:426 +#: src/pages/build/BuildDetail.tsx:414 msgid "Complete Build Order" msgstr "" -#: src/pages/build/BuildDetail.tsx:428 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:368 -#: src/pages/sales/ReturnOrderDetail.tsx:362 -#: src/pages/sales/SalesOrderDetail.tsx:395 +#: src/pages/build/BuildDetail.tsx:416 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:377 +#: src/pages/sales/ReturnOrderDetail.tsx:369 +#: src/pages/sales/SalesOrderDetail.tsx:402 msgid "Mark this order as complete" msgstr "" -#: src/pages/build/BuildDetail.tsx:429 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:362 -#: src/pages/sales/ReturnOrderDetail.tsx:363 -#: src/pages/sales/SalesOrderDetail.tsx:396 +#: src/pages/build/BuildDetail.tsx:417 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:371 +#: src/pages/sales/ReturnOrderDetail.tsx:370 +#: src/pages/sales/SalesOrderDetail.tsx:403 msgid "Order completed" msgstr "" -#: src/pages/build/BuildDetail.tsx:460 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:391 -#: src/pages/sales/ReturnOrderDetail.tsx:392 -#: src/pages/sales/SalesOrderDetail.tsx:425 +#: src/pages/build/BuildDetail.tsx:448 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:400 +#: src/pages/sales/ReturnOrderDetail.tsx:399 +#: src/pages/sales/SalesOrderDetail.tsx:432 msgid "Issue Order" msgstr "" -#: src/pages/build/BuildDetail.tsx:467 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:398 -#: src/pages/sales/ReturnOrderDetail.tsx:399 -#: src/pages/sales/SalesOrderDetail.tsx:439 +#: src/pages/build/BuildDetail.tsx:455 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:407 +#: src/pages/sales/ReturnOrderDetail.tsx:406 +#: src/pages/sales/SalesOrderDetail.tsx:446 msgid "Complete Order" msgstr "" -#: src/pages/build/BuildDetail.tsx:496 +#: src/pages/build/BuildDetail.tsx:473 msgid "Build Order Actions" msgstr "" -#: src/pages/build/BuildDetail.tsx:502 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:432 -#: src/pages/sales/ReturnOrderDetail.tsx:433 -#: src/pages/sales/SalesOrderDetail.tsx:474 +#: src/pages/build/BuildDetail.tsx:478 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:429 +#: src/pages/sales/ReturnOrderDetail.tsx:428 +#: src/pages/sales/SalesOrderDetail.tsx:469 msgid "Edit order" msgstr "" -#: src/pages/build/BuildDetail.tsx:506 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:440 -#: src/pages/sales/ReturnOrderDetail.tsx:439 -#: src/pages/sales/SalesOrderDetail.tsx:479 +#: src/pages/build/BuildDetail.tsx:482 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:437 +#: src/pages/sales/ReturnOrderDetail.tsx:434 +#: src/pages/sales/SalesOrderDetail.tsx:474 msgid "Duplicate order" msgstr "" -#: src/pages/build/BuildDetail.tsx:510 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:443 -#: src/pages/sales/ReturnOrderDetail.tsx:444 -#: src/pages/sales/SalesOrderDetail.tsx:482 +#: src/pages/build/BuildDetail.tsx:486 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:440 +#: src/pages/sales/ReturnOrderDetail.tsx:439 +#: src/pages/sales/SalesOrderDetail.tsx:477 msgid "Hold order" msgstr "" -#: src/pages/build/BuildDetail.tsx:515 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:448 -#: src/pages/sales/ReturnOrderDetail.tsx:449 -#: src/pages/sales/SalesOrderDetail.tsx:487 +#: src/pages/build/BuildDetail.tsx:491 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:445 +#: src/pages/sales/ReturnOrderDetail.tsx:444 +#: src/pages/sales/SalesOrderDetail.tsx:482 msgid "Cancel order" msgstr "" @@ -4295,56 +5040,60 @@ msgstr "" #~ msgid "New Build Order" #~ msgstr "New Build Order" -#: src/pages/company/CompanyDetail.tsx:104 +#: src/pages/company/CompanyDetail.tsx:95 +msgid "Website" +msgstr "" + +#: src/pages/company/CompanyDetail.tsx:103 msgid "Phone Number" msgstr "" -#: src/pages/company/CompanyDetail.tsx:111 +#: src/pages/company/CompanyDetail.tsx:110 msgid "Email Address" msgstr "" -#: src/pages/company/CompanyDetail.tsx:121 +#: src/pages/company/CompanyDetail.tsx:120 msgid "Default Currency" msgstr "" -#: src/pages/company/CompanyDetail.tsx:126 +#: src/pages/company/CompanyDetail.tsx:125 #: src/pages/company/SupplierDetail.tsx:8 -#: src/pages/company/SupplierPartDetail.tsx:120 -#: src/pages/company/SupplierPartDetail.tsx:206 -#: src/pages/company/SupplierPartDetail.tsx:351 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:136 -#: src/tables/company/CompanyTable.tsx:100 +#: src/pages/company/SupplierPartDetail.tsx:125 +#: src/pages/company/SupplierPartDetail.tsx:218 +#: src/pages/company/SupplierPartDetail.tsx:340 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:130 +#: src/tables/company/CompanyTable.tsx:101 #: src/tables/part/PartPurchaseOrdersTable.tsx:42 -#: src/tables/purchasing/PurchaseOrderTable.tsx:88 +#: src/tables/purchasing/PurchaseOrderTable.tsx:89 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:36 msgid "Supplier" msgstr "" -#: src/pages/company/CompanyDetail.tsx:132 +#: src/pages/company/CompanyDetail.tsx:131 #: src/pages/company/ManufacturerDetail.tsx:8 -#: src/pages/company/ManufacturerPartDetail.tsx:101 -#: src/pages/company/ManufacturerPartDetail.tsx:267 -#: src/pages/company/SupplierPartDetail.tsx:135 -#: src/tables/company/CompanyTable.tsx:105 +#: src/pages/company/ManufacturerPartDetail.tsx:100 +#: src/pages/company/ManufacturerPartDetail.tsx:262 +#: src/pages/company/SupplierPartDetail.tsx:147 +#: src/tables/company/CompanyTable.tsx:106 msgid "Manufacturer" msgstr "" -#: src/pages/company/CompanyDetail.tsx:138 +#: src/pages/company/CompanyDetail.tsx:137 #: src/pages/company/CustomerDetail.tsx:8 -#: src/pages/part/pricing/SaleHistoryPanel.tsx:29 -#: src/pages/sales/ReturnOrderDetail.tsx:109 -#: src/pages/sales/SalesOrderDetail.tsx:115 -#: src/pages/stock/StockDetail.tsx:230 -#: src/tables/company/CompanyTable.tsx:110 -#: src/tables/sales/ReturnOrderTable.tsx:78 -#: src/tables/sales/SalesOrderTable.tsx:108 -#: src/tables/stock/StockTrackingTable.tsx:140 +#: src/pages/part/pricing/SaleHistoryPanel.tsx:31 +#: src/pages/sales/ReturnOrderDetail.tsx:101 +#: src/pages/sales/SalesOrderDetail.tsx:110 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:100 +#: src/pages/stock/StockDetail.tsx:271 +#: src/tables/company/CompanyTable.tsx:111 +#: src/tables/sales/ReturnOrderTable.tsx:97 +#: src/tables/sales/SalesOrderTable.tsx:121 +#: src/tables/stock/StockTrackingTable.tsx:144 msgid "Customer" msgstr "" #: src/pages/company/CompanyDetail.tsx:172 -#: src/tables/stock/StockTrackingTable.tsx:183 -msgid "Details" +msgid "Company Details" msgstr "" #: src/pages/company/CompanyDetail.tsx:175 @@ -4363,140 +5112,150 @@ msgstr "" #~ msgid "Delete company" #~ msgstr "Delete company" -#: src/pages/company/CompanyDetail.tsx:232 +#: src/pages/company/CompanyDetail.tsx:234 msgid "Assigned Stock" msgstr "" -#: src/pages/company/CompanyDetail.tsx:290 -#: src/tables/company/CompanyTable.tsx:86 +#: src/pages/company/CompanyDetail.tsx:273 +#: src/tables/company/CompanyTable.tsx:87 msgid "Edit Company" msgstr "" -#: src/pages/company/CompanyDetail.tsx:298 +#: src/pages/company/CompanyDetail.tsx:281 msgid "Delete Company" msgstr "" -#: src/pages/company/CompanyDetail.tsx:306 +#: src/pages/company/CompanyDetail.tsx:289 msgid "Company Actions" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:76 -#: src/pages/company/SupplierPartDetail.tsx:89 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:128 +#: src/pages/company/ManufacturerPartDetail.tsx:74 +#: src/pages/company/SupplierPartDetail.tsx:84 msgid "Internal Part" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:91 -#: src/pages/company/SupplierPartDetail.tsx:103 -msgid "External Link" -msgstr "" - -#: src/pages/company/ManufacturerPartDetail.tsx:109 -#: src/pages/company/SupplierPartDetail.tsx:144 -#: src/tables/purchasing/ManufacturerPartTable.tsx:56 +#: src/pages/company/ManufacturerPartDetail.tsx:108 +#: src/pages/company/SupplierPartDetail.tsx:156 +#: src/tables/purchasing/ManufacturerPartTable.tsx:58 msgid "Manufacturer Part Number" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:138 +#: src/pages/company/ManufacturerPartDetail.tsx:125 +#: src/pages/company/SupplierPartDetail.tsx:108 +msgid "External Link" +msgstr "" + +#: src/pages/company/ManufacturerPartDetail.tsx:146 +#: src/pages/company/SupplierPartDetail.tsx:215 +#: src/pages/part/PartDetail.tsx:576 +msgid "Part Details" +msgstr "" + +#: src/pages/company/ManufacturerPartDetail.tsx:149 msgid "Manufacturer Details" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:147 +#: src/pages/company/ManufacturerPartDetail.tsx:158 msgid "Manufacturer Part Details" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:153 -#: src/pages/part/PartDetail.tsx:532 +#: src/pages/company/ManufacturerPartDetail.tsx:164 +#: src/pages/part/PartDetail.tsx:582 msgid "Parameters" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:165 -#: src/pages/part/PartDetail.tsx:649 +#: src/pages/company/ManufacturerPartDetail.tsx:176 +#: src/pages/part/PartDetail.tsx:669 #: src/pages/purchasing/PurchasingIndex.tsx:31 msgid "Suppliers" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:208 -#: src/tables/purchasing/ManufacturerPartTable.tsx:84 +#: src/pages/company/ManufacturerPartDetail.tsx:204 +#: src/tables/purchasing/ManufacturerPartTable.tsx:86 msgid "Edit Manufacturer Part" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:215 -#: src/tables/purchasing/ManufacturerPartTable.tsx:72 -#: src/tables/purchasing/ManufacturerPartTable.tsx:103 +#: src/pages/company/ManufacturerPartDetail.tsx:211 +#: src/tables/purchasing/ManufacturerPartTable.tsx:74 +#: src/tables/purchasing/ManufacturerPartTable.tsx:106 msgid "Add Manufacturer Part" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:227 -#: src/tables/purchasing/ManufacturerPartTable.tsx:92 +#: src/pages/company/ManufacturerPartDetail.tsx:223 +#: src/tables/purchasing/ManufacturerPartTable.tsx:94 msgid "Delete Manufacturer Part" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:240 +#: src/pages/company/ManufacturerPartDetail.tsx:236 msgid "Manufacturer Part Actions" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:281 +#: src/pages/company/ManufacturerPartDetail.tsx:276 msgid "ManufacturerPart" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:163 -#: src/tables/part/PartPurchaseOrdersTable.tsx:71 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:156 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:197 -#: src/tables/purchasing/SupplierPartTable.tsx:131 +#: src/pages/company/SupplierPartDetail.tsx:99 +msgid "Part Description" +msgstr "" + +#: src/pages/company/SupplierPartDetail.tsx:175 +#: src/tables/part/PartPurchaseOrdersTable.tsx:72 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:162 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:203 +#: src/tables/purchasing/SupplierPartTable.tsx:133 msgid "Pack Quantity" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:174 +#: src/pages/company/SupplierPartDetail.tsx:186 msgid "Supplier Availability" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:181 +#: src/pages/company/SupplierPartDetail.tsx:193 msgid "Availability Updated" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:208 +#: src/pages/company/SupplierPartDetail.tsx:220 msgid "Availability" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:217 +#: src/pages/company/SupplierPartDetail.tsx:229 msgid "Supplier Part Details" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:223 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:296 +#: src/pages/company/SupplierPartDetail.tsx:235 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:320 msgid "Received Stock" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:247 -#: src/pages/part/PartPricingPanel.tsx:111 -#: src/pages/part/pricing/PricingOverviewPanel.tsx:121 +#: src/pages/company/SupplierPartDetail.tsx:259 +#: src/pages/part/PartPricingPanel.tsx:116 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:195 msgid "Supplier Pricing" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:294 +#: src/pages/company/SupplierPartDetail.tsx:284 msgid "Supplier Part Actions" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:319 -#: src/tables/purchasing/SupplierPartTable.tsx:210 +#: src/pages/company/SupplierPartDetail.tsx:308 +#: src/tables/purchasing/SupplierPartTable.tsx:213 msgid "Edit Supplier Part" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:327 -#: src/tables/purchasing/SupplierPartTable.tsx:218 +#: src/pages/company/SupplierPartDetail.tsx:316 +#: src/tables/purchasing/SupplierPartTable.tsx:221 msgid "Delete Supplier Part" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:335 -#: src/tables/purchasing/SupplierPartTable.tsx:163 +#: src/pages/company/SupplierPartDetail.tsx:324 +#: src/tables/purchasing/SupplierPartTable.tsx:165 msgid "Add Supplier Part" msgstr "" #: src/pages/part/CategoryDetail.tsx:93 -#: src/pages/stock/LocationDetail.tsx:101 -#: src/tables/settings/ErrorTable.tsx:36 +#: src/pages/stock/LocationDetail.tsx:95 +#: src/tables/settings/ErrorTable.tsx:63 +#: src/tables/settings/ErrorTable.tsx:108 msgid "Path" msgstr "" @@ -4504,357 +5263,357 @@ msgstr "" msgid "Parent Category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:126 +#: src/pages/part/CategoryDetail.tsx:132 msgid "Subcategories" msgstr "" -#: src/pages/part/CategoryDetail.tsx:133 -#: src/pages/stock/LocationDetail.tsx:141 -#: src/tables/part/PartCategoryTable.tsx:73 +#: src/pages/part/CategoryDetail.tsx:139 +#: src/pages/stock/LocationDetail.tsx:135 +#: src/tables/part/PartCategoryTable.tsx:85 #: src/tables/stock/StockLocationTable.tsx:49 msgid "Structural" msgstr "" -#: src/pages/part/CategoryDetail.tsx:139 +#: src/pages/part/CategoryDetail.tsx:145 msgid "Parent default location" msgstr "" -#: src/pages/part/CategoryDetail.tsx:146 +#: src/pages/part/CategoryDetail.tsx:152 msgid "Default location" msgstr "" -#: src/pages/part/CategoryDetail.tsx:157 +#: src/pages/part/CategoryDetail.tsx:163 msgid "Top level part category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:167 -#: src/pages/part/CategoryDetail.tsx:221 -#: src/tables/part/PartCategoryTable.tsx:102 +#: src/pages/part/CategoryDetail.tsx:173 +#: src/pages/part/CategoryDetail.tsx:226 +#: src/tables/part/PartCategoryTable.tsx:118 msgid "Edit Part Category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:180 -#: src/pages/stock/LocationDetail.tsx:233 +#: src/pages/part/CategoryDetail.tsx:186 +#: src/pages/stock/LocationDetail.tsx:227 msgid "Delete items" msgstr "" -#: src/pages/part/CategoryDetail.tsx:188 -#: src/pages/part/CategoryDetail.tsx:226 +#: src/pages/part/CategoryDetail.tsx:194 +#: src/pages/part/CategoryDetail.tsx:231 msgid "Delete Part Category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:191 +#: src/pages/part/CategoryDetail.tsx:197 msgid "Parts Action" msgstr "" -#: src/pages/part/CategoryDetail.tsx:192 +#: src/pages/part/CategoryDetail.tsx:198 msgid "Action for parts in this category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:197 +#: src/pages/part/CategoryDetail.tsx:203 msgid "Child Categories Action" msgstr "" -#: src/pages/part/CategoryDetail.tsx:198 +#: src/pages/part/CategoryDetail.tsx:204 msgid "Action for child categories in this category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:216 +#: src/pages/part/CategoryDetail.tsx:222 msgid "Category Actions" msgstr "" -#: src/pages/part/CategoryDetail.tsx:238 +#: src/pages/part/CategoryDetail.tsx:243 msgid "Category Details" msgstr "" -#: src/pages/part/PartDetail.tsx:163 -msgid "Variant of" +#: src/pages/part/PartAllocationPanel.tsx:23 +#: src/pages/stock/StockDetail.tsx:443 +#: src/tables/part/PartTable.tsx:99 +msgid "Build Order Allocations" msgstr "" -#: src/pages/part/PartDetail.tsx:170 -msgid "Revision of" -msgstr "" - -#: src/pages/part/PartDetail.tsx:177 -#: src/tables/stock/StockItemTable.tsx:58 -msgid "Revision" +#: src/pages/part/PartAllocationPanel.tsx:40 +#: src/pages/stock/StockDetail.tsx:458 +#: src/tables/part/PartTable.tsx:108 +msgid "Sales Order Allocations" msgstr "" #: src/pages/part/PartDetail.tsx:184 +msgid "Variant of" +msgstr "" + +#: src/pages/part/PartDetail.tsx:191 +msgid "Revision of" +msgstr "" + +#: src/pages/part/PartDetail.tsx:198 +#: src/tables/stock/StockItemTable.tsx:59 +msgid "Revision" +msgstr "" + +#: src/pages/part/PartDetail.tsx:205 #: src/tables/notifications/NotificationsTable.tsx:31 #: src/tables/part/PartCategoryTemplateTable.tsx:67 msgid "Category" msgstr "" -#: src/pages/part/PartDetail.tsx:190 +#: src/pages/part/PartDetail.tsx:211 msgid "Default Location" msgstr "" -#: src/pages/part/PartDetail.tsx:197 +#: src/pages/part/PartDetail.tsx:218 msgid "Category Default Location" msgstr "" -#: src/pages/part/PartDetail.tsx:204 +#: src/pages/part/PartDetail.tsx:225 #: src/tables/purchasing/ManufacturerPartParameterTable.tsx:44 msgid "Units" msgstr "" -#: src/pages/part/PartDetail.tsx:211 -#: src/tables/settings/PendingTasksTable.tsx:42 +#: src/pages/part/PartDetail.tsx:232 +#: src/tables/settings/PendingTasksTable.tsx:46 msgid "Keywords" msgstr "" -#: src/pages/part/PartDetail.tsx:218 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:186 -#: src/pages/sales/ReturnOrderDetail.tsx:165 -#: src/pages/sales/SalesOrderDetail.tsx:174 -msgid "Link" -msgstr "" - -#: src/pages/part/PartDetail.tsx:236 +#: src/pages/part/PartDetail.tsx:257 #: src/tables/bom/BomTable.tsx:320 -#: src/tables/build/BuildLineTable.tsx:155 +#: src/tables/build/BuildLineTable.tsx:286 #: src/tables/part/PartTable.tsx:288 -#: src/tables/sales/SalesOrderLineItemTable.tsx:103 +#: src/tables/sales/SalesOrderLineItemTable.tsx:111 msgid "Available Stock" msgstr "" -#: src/pages/part/PartDetail.tsx:243 +#: src/pages/part/PartDetail.tsx:264 msgid "Variant Stock" msgstr "" -#: src/pages/part/PartDetail.tsx:251 +#: src/pages/part/PartDetail.tsx:272 msgid "Minimum Stock" msgstr "" -#: src/pages/part/PartDetail.tsx:257 +#: src/pages/part/PartDetail.tsx:278 #: src/tables/bom/BomTable.tsx:237 -#: src/tables/build/BuildLineTable.tsx:117 -#: src/tables/sales/SalesOrderLineItemTable.tsx:141 +#: src/tables/build/BuildLineTable.tsx:248 +#: src/tables/sales/SalesOrderLineItemTable.tsx:149 msgid "On order" msgstr "" -#: src/pages/part/PartDetail.tsx:266 +#: src/pages/part/PartDetail.tsx:285 +msgid "Required for Orders" +msgstr "" + +#: src/pages/part/PartDetail.tsx:294 msgid "Allocated to Build Orders" msgstr "" -#: src/pages/part/PartDetail.tsx:274 +#: src/pages/part/PartDetail.tsx:305 msgid "Allocated to Sales Orders" msgstr "" -#: src/pages/part/PartDetail.tsx:281 -#: src/tables/bom/BomTable.tsx:261 -#: src/tables/bom/BomTable.tsx:293 -msgid "Can Build" -msgstr "" - -#: src/pages/part/PartDetail.tsx:288 -#: src/tables/bom/BomTable.tsx:245 -#: src/tables/part/PartTable.tsx:92 -msgid "Building" -msgstr "" - -#: src/pages/part/PartDetail.tsx:302 -#: src/pages/part/PartDetail.tsx:873 -#: src/tables/part/ParametricPartTable.tsx:228 -#: src/tables/part/PartTable.tsx:184 -msgid "Locked" -msgstr "" - -#: src/pages/part/PartDetail.tsx:308 -msgid "Template Part" -msgstr "" - #: src/pages/part/PartDetail.tsx:310 #~ msgid "Edit part" #~ msgstr "Edit part" -#: src/pages/part/PartDetail.tsx:313 -#: src/tables/bom/BomTable.tsx:315 -msgid "Assembled Part" +#: src/pages/part/PartDetail.tsx:315 +#: src/tables/bom/BomTable.tsx:261 +#: src/tables/bom/BomTable.tsx:293 +msgid "Can Build" msgstr "" -#: src/pages/part/PartDetail.tsx:318 -msgid "Component Part" +#: src/pages/part/PartDetail.tsx:322 +#: src/pages/part/PartDetail.tsx:905 +#: src/pages/stock/StockDetail.tsx:766 +#: src/tables/build/BuildOrderTestTable.tsx:220 +#: src/tables/stock/StockItemTable.tsx:334 +msgid "In Production" msgstr "" #: src/pages/part/PartDetail.tsx:322 #~ msgid "Duplicate part" #~ msgstr "Duplicate part" -#: src/pages/part/PartDetail.tsx:323 -#: src/tables/bom/BomTable.tsx:305 -msgid "Testable Part" -msgstr "" - #: src/pages/part/PartDetail.tsx:327 #~ msgid "Delete part" #~ msgstr "Delete part" -#: src/pages/part/PartDetail.tsx:329 +#: src/pages/part/PartDetail.tsx:336 +#: src/tables/part/ParametricPartTable.tsx:228 +#: src/tables/part/PartTable.tsx:184 +msgid "Locked" +msgstr "" + +#: src/pages/part/PartDetail.tsx:342 +msgid "Template Part" +msgstr "" + +#: src/pages/part/PartDetail.tsx:347 +#: src/tables/bom/BomTable.tsx:315 +msgid "Assembled Part" +msgstr "" + +#: src/pages/part/PartDetail.tsx:352 +msgid "Component Part" +msgstr "" + +#: src/pages/part/PartDetail.tsx:357 +#: src/tables/bom/BomTable.tsx:305 +msgid "Testable Part" +msgstr "" + +#: src/pages/part/PartDetail.tsx:363 #: src/tables/bom/BomTable.tsx:310 msgid "Trackable Part" msgstr "" -#: src/pages/part/PartDetail.tsx:334 +#: src/pages/part/PartDetail.tsx:368 msgid "Purchaseable Part" msgstr "" -#: src/pages/part/PartDetail.tsx:339 +#: src/pages/part/PartDetail.tsx:374 msgid "Saleable Part" msgstr "" -#: src/pages/part/PartDetail.tsx:344 +#: src/pages/part/PartDetail.tsx:379 msgid "Virtual Part" msgstr "" -#: src/pages/part/PartDetail.tsx:352 -#: src/tables/ColumnRenderers.tsx:220 +#: src/pages/part/PartDetail.tsx:393 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:215 +#: src/pages/sales/ReturnOrderDetail.tsx:185 +#: src/pages/sales/SalesOrderDetail.tsx:197 +#: src/tables/ColumnRenderers.tsx:234 msgid "Creation Date" msgstr "" -#: src/pages/part/PartDetail.tsx:357 +#: src/pages/part/PartDetail.tsx:398 msgid "Created By" msgstr "" -#: src/pages/part/PartDetail.tsx:372 +#: src/pages/part/PartDetail.tsx:413 msgid "Default Supplier" msgstr "" -#: src/pages/part/PartDetail.tsx:383 -#: src/pages/part/pricing/BomPricingPanel.tsx:79 +#: src/pages/part/PartDetail.tsx:424 +#: src/pages/part/pricing/BomPricingPanel.tsx:113 #: src/pages/part/pricing/VariantPricingPanel.tsx:95 #: src/tables/part/PartTable.tsx:161 msgid "Price Range" msgstr "" -#: src/pages/part/PartDetail.tsx:423 -#: src/pages/stock/StockDetail.tsx:135 +#: src/pages/part/PartDetail.tsx:462 +msgid "Latest Serial Number" +msgstr "" + +#: src/pages/part/PartDetail.tsx:472 +#: src/pages/stock/StockDetail.tsx:151 msgid "Last Stocktake" msgstr "" -#: src/pages/part/PartDetail.tsx:462 +#: src/pages/part/PartDetail.tsx:511 msgid "Stocktake By" msgstr "" -#: src/pages/part/PartDetail.tsx:526 -msgid "Part Details" -msgstr "" - -#: src/pages/part/PartDetail.tsx:557 +#: src/pages/part/PartDetail.tsx:611 msgid "Variants" msgstr "" -#: src/pages/part/PartDetail.tsx:564 -#: src/pages/stock/StockDetail.tsx:307 +#: src/pages/part/PartDetail.tsx:618 +#: src/pages/stock/StockDetail.tsx:430 msgid "Allocations" msgstr "" -#: src/pages/part/PartDetail.tsx:575 -#: src/pages/stock/StockDetail.tsx:318 -#: src/tables/part/PartTable.tsx:99 -msgid "Build Order Allocations" -msgstr "" - -#: src/pages/part/PartDetail.tsx:590 -#: src/pages/stock/StockDetail.tsx:333 -#: src/tables/part/PartTable.tsx:108 -msgid "Sales Order Allocations" -msgstr "" - -#: src/pages/part/PartDetail.tsx:607 +#: src/pages/part/PartDetail.tsx:625 msgid "Bill of Materials" msgstr "" -#: src/pages/part/PartDetail.tsx:623 +#: src/pages/part/PartDetail.tsx:643 msgid "Used In" msgstr "" -#: src/pages/part/PartDetail.tsx:630 +#: src/pages/part/PartDetail.tsx:650 msgid "Part Pricing" msgstr "" -#: src/pages/part/PartDetail.tsx:636 +#: src/pages/part/PartDetail.tsx:656 #: src/pages/purchasing/PurchasingIndex.tsx:42 msgid "Manufacturers" msgstr "" -#: src/pages/part/PartDetail.tsx:676 +#: src/pages/part/PartDetail.tsx:722 msgid "Scheduling" msgstr "" -#: src/pages/part/PartDetail.tsx:688 +#: src/pages/part/PartDetail.tsx:729 msgid "Test Templates" msgstr "" -#: src/pages/part/PartDetail.tsx:715 +#: src/pages/part/PartDetail.tsx:756 msgid "Related Parts" msgstr "" -#: src/pages/part/PartDetail.tsx:849 -#: src/pages/stock/StockDetail.tsx:156 -#: src/pages/stock/StockDetail.tsx:593 -#: src/tables/build/BuildLineTable.tsx:48 +#: src/pages/part/PartDetail.tsx:881 +#: src/pages/stock/StockDetail.tsx:172 +#: src/pages/stock/StockDetail.tsx:783 +#: src/tables/build/BuildLineTable.tsx:179 #: src/tables/part/PartTable.tsx:117 -#: src/tables/stock/StockItemTable.tsx:177 -#: src/tables/stock/StockItemTable.tsx:310 +#: src/tables/stock/StockItemTable.tsx:166 +#: src/tables/stock/StockItemTable.tsx:314 msgid "Available" msgstr "" -#: src/pages/part/PartDetail.tsx:855 +#: src/pages/part/PartDetail.tsx:887 msgid "No Stock" msgstr "" -#: src/pages/part/PartDetail.tsx:861 +#: src/pages/part/PartDetail.tsx:893 +#: src/tables/part/PartTestTemplateTable.tsx:106 +#: src/tables/stock/StockItemTestResultTable.tsx:383 +msgid "Required" +msgstr "" + +#: src/pages/part/PartDetail.tsx:899 #: src/tables/bom/BomTable.tsx:325 #: src/tables/part/PartTable.tsx:86 msgid "On Order" msgstr "" -#: src/pages/part/PartDetail.tsx:867 -#: src/pages/stock/StockDetail.tsx:576 -#: src/tables/build/BuildOrderTestTable.tsx:219 -#: src/tables/stock/StockItemTable.tsx:330 -msgid "In Production" -msgstr "" - -#: src/pages/part/PartDetail.tsx:892 +#: src/pages/part/PartDetail.tsx:924 msgid "Edit Part" msgstr "" -#: src/pages/part/PartDetail.tsx:927 +#: src/pages/part/PartDetail.tsx:959 #: src/tables/part/PartTable.tsx:331 -#: src/tables/part/PartTable.tsx:342 +#: src/tables/part/PartTable.tsx:343 msgid "Add Part" msgstr "" -#: src/pages/part/PartDetail.tsx:941 +#: src/pages/part/PartDetail.tsx:973 msgid "Delete Part" msgstr "" -#: src/pages/part/PartDetail.tsx:950 +#: src/pages/part/PartDetail.tsx:982 msgid "Deleting this part cannot be reversed" msgstr "" -#: src/pages/part/PartDetail.tsx:999 -#: src/pages/stock/LocationDetail.tsx:324 -#: src/tables/stock/StockItemTable.tsx:444 +#: src/pages/part/PartDetail.tsx:1021 +#: src/pages/stock/LocationDetail.tsx:310 +#: src/tables/stock/StockItemTable.tsx:449 msgid "Stock Actions" msgstr "" -#: src/pages/part/PartDetail.tsx:1007 +#: src/pages/part/PartDetail.tsx:1029 msgid "Count part stock" msgstr "" -#: src/pages/part/PartDetail.tsx:1018 +#: src/pages/part/PartDetail.tsx:1040 msgid "Transfer part stock" msgstr "" -#: src/pages/part/PartDetail.tsx:1027 +#: src/pages/part/PartDetail.tsx:1049 msgid "Part Actions" msgstr "" -#: src/pages/part/PartDetail.tsx:1087 +#: src/pages/part/PartDetail.tsx:1113 msgid "Select Part Revision" msgstr "" @@ -4862,113 +5621,214 @@ msgstr "" #~ msgid "Categories" #~ msgstr "Categories" -#: src/pages/part/PartPricingPanel.tsx:68 +#: src/pages/part/PartPricingPanel.tsx:72 msgid "No pricing data found for this part." msgstr "" -#: src/pages/part/PartPricingPanel.tsx:82 -#: src/pages/part/pricing/PricingOverviewPanel.tsx:190 +#: src/pages/part/PartPricingPanel.tsx:87 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:293 msgid "Pricing Overview" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:88 +#: src/pages/part/PartPricingPanel.tsx:93 msgid "Purchase History" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:102 -#: src/pages/part/pricing/PricingOverviewPanel.tsx:100 +#: src/pages/part/PartPricingPanel.tsx:107 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:174 msgid "Internal Pricing" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:120 -#: src/pages/part/pricing/PricingOverviewPanel.tsx:107 +#: src/pages/part/PartPricingPanel.tsx:125 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:181 msgid "BOM Pricing" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:127 -#: src/pages/part/pricing/PricingOverviewPanel.tsx:128 +#: src/pages/part/PartPricingPanel.tsx:132 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:202 msgid "Variant Pricing" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:139 -#: src/pages/part/pricing/PricingOverviewPanel.tsx:135 +#: src/pages/part/PartPricingPanel.tsx:144 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:209 msgid "Sale Pricing" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:146 -#: src/pages/part/pricing/PricingOverviewPanel.tsx:142 +#: src/pages/part/PartPricingPanel.tsx:151 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:216 msgid "Sale History" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:58 -#: src/pages/part/pricing/BomPricingPanel.tsx:138 -#: src/tables/ColumnRenderers.tsx:262 +#: src/pages/part/PartSchedulingDetail.tsx:47 +#: src/pages/part/PartSchedulingDetail.tsx:299 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:156 +msgid "Maximum" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:50 +#: src/pages/part/PartSchedulingDetail.tsx:289 +msgid "Scheduled" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:53 +#: src/pages/part/PartSchedulingDetail.tsx:294 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:144 +msgid "Minimum" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:68 +msgid "Order" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:92 +msgid "Quantity is speculative" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:101 +msgid "No date available for provided quantity" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:105 +msgid "Date is in the past" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:112 +msgid "Scheduled Quantity" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:240 +msgid "No information available" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:241 +msgid "There is no scheduling information available for the selected part" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:276 +msgid "Expected Quantity" +msgstr "" + +#: src/pages/part/PartStocktakeDetail.tsx:63 +#: src/tables/FilterSelectDrawer.tsx:167 +#: src/tables/FilterSelectDrawer.tsx:174 +#: src/tables/build/BuildOrderTestTable.tsx:135 +#: src/tables/purchasing/ManufacturerPartParameterTable.tsx:38 +#: src/tables/stock/StockItemTestResultTable.tsx:192 +msgid "Value" +msgstr "" + +#: src/pages/part/PartStocktakeDetail.tsx:82 +msgid "Edit Stocktake Entry" +msgstr "" + +#: src/pages/part/PartStocktakeDetail.tsx:90 +msgid "Delete Stocktake Entry" +msgstr "" + +#: src/pages/part/PartStocktakeDetail.tsx:96 +#: src/tables/settings/StocktakeReportTable.tsx:69 +msgid "Generate Stocktake Report" +msgstr "" + +#: src/pages/part/PartStocktakeDetail.tsx:101 +#: src/tables/settings/StocktakeReportTable.tsx:71 +msgid "Stocktake report scheduled" +msgstr "" + +#: src/pages/part/PartStocktakeDetail.tsx:119 +#: src/pages/part/PartStocktakeDetail.tsx:235 +#: src/pages/stock/StockDetail.tsx:303 +#: src/tables/stock/StockItemTable.tsx:249 +msgid "Stock Value" +msgstr "" + +#: src/pages/part/PartStocktakeDetail.tsx:139 +#: src/tables/settings/StocktakeReportTable.tsx:77 +msgid "New Stocktake Report" +msgstr "" + +#: src/pages/part/PartStocktakeDetail.tsx:258 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:295 +msgid "Minimum Value" +msgstr "" + +#: src/pages/part/PartStocktakeDetail.tsx:264 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:296 +msgid "Maximum Value" +msgstr "" + +#: src/pages/part/pricing/BomPricingPanel.tsx:87 +#: src/pages/part/pricing/BomPricingPanel.tsx:177 +#: src/tables/ColumnRenderers.tsx:276 #: src/tables/bom/BomTable.tsx:185 #: src/tables/general/ExtraLineItemTable.tsx:64 -#: src/tables/purchasing/PurchaseOrderTable.tsx:112 -#: src/tables/sales/ReturnOrderTable.tsx:104 -#: src/tables/sales/SalesOrderLineItemTable.tsx:89 -#: src/tables/sales/SalesOrderTable.tsx:136 +#: src/tables/purchasing/PurchaseOrderTable.tsx:113 +#: src/tables/sales/ReturnOrderTable.tsx:127 +#: src/tables/sales/SalesOrderLineItemTable.tsx:97 +#: src/tables/sales/SalesOrderTable.tsx:149 msgid "Total Price" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:78 -#: src/pages/part/pricing/BomPricingPanel.tsx:102 +#: src/pages/part/pricing/BomPricingPanel.tsx:112 +#: src/pages/part/pricing/BomPricingPanel.tsx:141 #: src/tables/bom/UsedInTable.tsx:49 +#: src/tables/build/BuildLineTable.tsx:296 #: src/tables/part/PartTable.tsx:202 msgid "Component" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:81 -#: src/pages/part/pricing/VariantPricingPanel.tsx:37 -#: src/pages/part/pricing/VariantPricingPanel.tsx:97 -msgid "Minimum Price" -msgstr "" - -#: src/pages/part/pricing/BomPricingPanel.tsx:82 -#: src/pages/part/pricing/VariantPricingPanel.tsx:45 -#: src/pages/part/pricing/VariantPricingPanel.tsx:98 -msgid "Maximum Price" -msgstr "" - #: src/pages/part/pricing/BomPricingPanel.tsx:112 #~ msgid "Minimum Total Price" #~ msgstr "Minimum Total Price" +#: src/pages/part/pricing/BomPricingPanel.tsx:115 +#: src/pages/part/pricing/VariantPricingPanel.tsx:37 +#: src/pages/part/pricing/VariantPricingPanel.tsx:97 +msgid "Minimum Price" +msgstr "" + +#: src/pages/part/pricing/BomPricingPanel.tsx:116 +#: src/pages/part/pricing/VariantPricingPanel.tsx:45 +#: src/pages/part/pricing/VariantPricingPanel.tsx:98 +msgid "Maximum Price" +msgstr "" + #: src/pages/part/pricing/BomPricingPanel.tsx:117 #~ msgid "Maximum Total Price" #~ msgstr "Maximum Total Price" -#: src/pages/part/pricing/BomPricingPanel.tsx:129 -#: src/pages/part/pricing/PriceBreakPanel.tsx:172 -#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:67 -#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:128 -#: src/pages/part/pricing/SupplierPricingPanel.tsx:62 +#: src/pages/part/pricing/BomPricingPanel.tsx:168 +#: src/pages/part/pricing/PriceBreakPanel.tsx:173 +#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:70 +#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:125 +#: src/pages/part/pricing/SupplierPricingPanel.tsx:66 +#: src/pages/stock/StockDetail.tsx:291 #: src/tables/bom/BomTable.tsx:176 #: src/tables/general/ExtraLineItemTable.tsx:56 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:223 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:225 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:92 +#: src/tables/stock/StockItemTable.tsx:239 msgid "Unit Price" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:154 +#: src/pages/part/pricing/BomPricingPanel.tsx:193 #: src/pages/part/pricing/VariantPricingPanel.tsx:53 -#: src/tables/purchasing/SupplierPartTable.tsx:148 +#: src/tables/purchasing/SupplierPartTable.tsx:150 msgid "Updated" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:219 +#: src/pages/part/pricing/BomPricingPanel.tsx:258 msgid "Pie Chart" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:220 +#: src/pages/part/pricing/BomPricingPanel.tsx:259 msgid "Bar Chart" msgstr "" #: src/pages/part/pricing/PriceBreakPanel.tsx:58 -#: src/pages/part/pricing/PriceBreakPanel.tsx:110 +#: src/pages/part/pricing/PriceBreakPanel.tsx:111 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:142 -#: src/tables/purchasing/SupplierPriceBreakTable.tsx:168 +#: src/tables/purchasing/SupplierPriceBreakTable.tsx:169 msgid "Add Price Break" msgstr "" @@ -4986,46 +5846,70 @@ msgstr "" msgid "Price Break" msgstr "" -#: src/pages/part/pricing/PriceBreakPanel.tsx:170 +#: src/pages/part/pricing/PriceBreakPanel.tsx:171 msgid "Price" msgstr "" -#: src/pages/part/pricing/PricingOverviewPanel.tsx:51 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:68 +msgid "Refreshing pricing data" +msgstr "" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:88 +msgid "Pricing data updated" +msgstr "" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:95 +msgid "Failed to update pricing data" +msgstr "" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:104 +msgid "Edit Pricing" +msgstr "" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:125 msgid "Pricing Category" msgstr "" -#: src/pages/part/pricing/PricingOverviewPanel.tsx:70 -msgid "Minimum" -msgstr "" - -#: src/pages/part/pricing/PricingOverviewPanel.tsx:82 -msgid "Maximum" -msgstr "" - -#: src/pages/part/pricing/PricingOverviewPanel.tsx:114 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:188 msgid "Purchase Pricing" msgstr "" -#: src/pages/part/pricing/PricingOverviewPanel.tsx:149 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:223 msgid "Override Pricing" msgstr "" -#: src/pages/part/pricing/PricingOverviewPanel.tsx:156 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:230 msgid "Overall Pricing" msgstr "" -#: src/pages/part/pricing/PricingOverviewPanel.tsx:175 -#: src/pages/stock/StockDetail.tsx:129 -#: src/tables/stock/StockItemTable.tsx:240 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:249 +#: src/pages/stock/StockDetail.tsx:145 +#: src/tables/stock/StockItemTable.tsx:275 msgid "Last Updated" msgstr "" -#: src/pages/part/pricing/PricingOverviewPanel.tsx:192 -msgid "Minimum Value" +#: src/pages/part/pricing/PricingOverviewPanel.tsx:253 +msgid "Pricing Not Set" msgstr "" -#: src/pages/part/pricing/PricingOverviewPanel.tsx:193 -msgid "Maximum Value" +#: src/pages/part/pricing/PricingOverviewPanel.tsx:254 +msgid "Pricing data has not been calculated for this part" +msgstr "" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:258 +msgid "Pricing Actions" +msgstr "" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:261 +msgid "Refresh" +msgstr "" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:262 +msgid "Refresh pricing data" +msgstr "" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:277 +msgid "Edit pricing data" msgstr "" #: src/pages/part/pricing/PricingPanel.tsx:24 @@ -5044,28 +5928,20 @@ msgstr "" msgid "Loading pricing data" msgstr "" -#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:40 -#: src/pages/part/pricing/SaleHistoryPanel.tsx:36 -#: src/tables/ColumnRenderers.tsx:201 -#: src/tables/build/BuildOrderTestTable.tsx:150 -#: src/tables/plugin/PluginListTable.tsx:139 -msgid "Date" -msgstr "" - #: src/pages/part/pricing/PurchaseHistoryPanel.tsx:47 msgid "Purchase Price" msgstr "" -#: src/pages/part/pricing/SaleHistoryPanel.tsx:22 -msgid "Sale Order" -msgstr "" +#: src/pages/part/pricing/SaleHistoryPanel.tsx:24 +#~ msgid "Sale Order" +#~ msgstr "Sale Order" -#: src/pages/part/pricing/SaleHistoryPanel.tsx:42 -#: src/pages/part/pricing/SaleHistoryPanel.tsx:92 +#: src/pages/part/pricing/SaleHistoryPanel.tsx:44 +#: src/pages/part/pricing/SaleHistoryPanel.tsx:87 msgid "Sale Price" msgstr "" -#: src/pages/part/pricing/SupplierPricingPanel.tsx:65 +#: src/pages/part/pricing/SupplierPricingPanel.tsx:69 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:83 msgid "Supplier Price" msgstr "" @@ -5075,23 +5951,23 @@ msgstr "" msgid "Variant Part" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:93 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:87 msgid "Edit Purchase Order" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:102 -#: src/tables/purchasing/PurchaseOrderTable.tsx:128 -#: src/tables/purchasing/PurchaseOrderTable.tsx:140 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:96 +#: src/tables/purchasing/PurchaseOrderTable.tsx:129 +#: src/tables/purchasing/PurchaseOrderTable.tsx:142 msgid "Add Purchase Order" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:127 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:121 msgid "Supplier Reference" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:158 -#: src/pages/sales/ReturnOrderDetail.tsx:137 -#: src/pages/sales/SalesOrderDetail.tsx:137 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:152 +#: src/pages/sales/ReturnOrderDetail.tsx:129 +#: src/pages/sales/SalesOrderDetail.tsx:132 msgid "Completed Line Items" msgstr "" @@ -5101,91 +5977,112 @@ msgstr "" #~ msgid "Order Currency," #~ msgstr "Order Currency," -#: src/pages/purchasing/PurchaseOrderDetail.tsx:165 -#: src/pages/sales/ReturnOrderDetail.tsx:144 -#: src/pages/sales/SalesOrderDetail.tsx:153 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:161 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:231 +msgid "Destination" +msgstr "" + +#: src/pages/purchasing/PurchaseOrderDetail.tsx:167 +#: src/pages/sales/ReturnOrderDetail.tsx:136 +#: src/pages/sales/SalesOrderDetail.tsx:148 msgid "Order Currency" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:172 -#: src/pages/sales/ReturnOrderDetail.tsx:151 -#: src/pages/sales/SalesOrderDetail.tsx:160 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:173 +#: src/pages/sales/ReturnOrderDetail.tsx:143 +#: src/pages/sales/SalesOrderDetail.tsx:155 msgid "Total Cost" msgstr "" #: src/pages/purchasing/PurchaseOrderDetail.tsx:207 -#: src/pages/sales/ReturnOrderDetail.tsx:186 -#: src/pages/sales/SalesOrderDetail.tsx:195 -msgid "Created On" +#: src/pages/sales/ReturnOrderDetail.tsx:183 +#: src/pages/sales/SalesOrderDetail.tsx:191 +#~ msgid "Created On" +#~ msgstr "Created On" + +#: src/pages/purchasing/PurchaseOrderDetail.tsx:221 +#: src/pages/sales/ReturnOrderDetail.tsx:193 +#: src/pages/sales/SalesOrderDetail.tsx:204 +msgid "Issue Date" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:252 -#: src/pages/sales/ReturnOrderDetail.tsx:231 -#: src/pages/sales/SalesOrderDetail.tsx:266 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:237 +#: src/pages/sales/ReturnOrderDetail.tsx:209 +#: src/pages/sales/SalesOrderDetail.tsx:219 +#: src/tables/build/BuildOrderTable.tsx:98 +#: src/tables/part/PartPurchaseOrdersTable.tsx:105 +#: src/tables/sales/ReturnOrderTable.tsx:122 +msgid "Completion Date" +msgstr "" + +#: src/pages/purchasing/PurchaseOrderDetail.tsx:276 +#: src/pages/sales/ReturnOrderDetail.tsx:248 +#: src/pages/sales/SalesOrderDetail.tsx:288 msgid "Order Details" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:280 -#: src/pages/sales/ReturnOrderDetail.tsx:258 -#: src/pages/sales/SalesOrderDetail.tsx:297 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:304 +#: src/pages/sales/ReturnOrderDetail.tsx:276 +#: src/pages/sales/SalesOrderDetail.tsx:319 msgid "Extra Line Items" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:337 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:346 msgid "Issue Purchase Order" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:345 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:354 msgid "Cancel Purchase Order" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:353 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:362 msgid "Hold Purchase Order" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:361 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:370 msgid "Complete Purchase Order" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:427 -#: src/pages/sales/ReturnOrderDetail.tsx:428 -#: src/pages/sales/SalesOrderDetail.tsx:468 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:425 +#: src/pages/sales/ReturnOrderDetail.tsx:424 +#: src/pages/sales/SalesOrderDetail.tsx:464 msgid "Order Actions" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:101 -#: src/pages/sales/SalesOrderDetail.tsx:107 -#: src/tables/sales/SalesOrderTable.tsx:124 +#: src/pages/sales/ReturnOrderDetail.tsx:92 +#: src/pages/sales/SalesOrderDetail.tsx:101 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:109 +#: src/tables/sales/SalesOrderTable.tsx:137 msgid "Customer Reference" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:315 +#: src/pages/sales/ReturnOrderDetail.tsx:322 msgid "Edit Return Order" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:324 -#: src/tables/sales/ReturnOrderTable.tsx:119 -#: src/tables/sales/ReturnOrderTable.tsx:128 +#: src/pages/sales/ReturnOrderDetail.tsx:331 +#: src/tables/sales/ReturnOrderTable.tsx:142 +#: src/tables/sales/ReturnOrderTable.tsx:152 msgid "Add Return Order" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:336 +#: src/pages/sales/ReturnOrderDetail.tsx:343 msgid "Issue Return Order" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:344 +#: src/pages/sales/ReturnOrderDetail.tsx:349 +#~ msgid "Order canceled" +#~ msgstr "Order canceled" + +#: src/pages/sales/ReturnOrderDetail.tsx:351 msgid "Cancel Return Order" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:347 -msgid "Order canceled" -msgstr "" - -#: src/pages/sales/ReturnOrderDetail.tsx:352 +#: src/pages/sales/ReturnOrderDetail.tsx:359 msgid "Hold Return Order" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:360 +#: src/pages/sales/ReturnOrderDetail.tsx:367 msgid "Complete Return Order" msgstr "" @@ -5193,117 +6090,193 @@ msgstr "" msgid "Customers" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:145 +#: src/pages/sales/SalesOrderDetail.tsx:140 msgid "Completed Shipments" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:243 -msgid "Edit Sales Order" -msgstr "" - -#: src/pages/sales/SalesOrderDetail.tsx:252 -#: src/tables/sales/SalesOrderTable.tsx:84 -#: src/tables/sales/SalesOrderTable.tsx:96 -msgid "Add Sales Order" -msgstr "" - #: src/pages/sales/SalesOrderDetail.tsx:256 #~ msgid "Pending Shipments" #~ msgstr "Pending Shipments" -#: src/pages/sales/SalesOrderDetail.tsx:313 +#: src/pages/sales/SalesOrderDetail.tsx:261 +msgid "Edit Sales Order" +msgstr "" + +#: src/pages/sales/SalesOrderDetail.tsx:274 +#: src/tables/sales/SalesOrderTable.tsx:96 +#: src/tables/sales/SalesOrderTable.tsx:109 +msgid "Add Sales Order" +msgstr "" + +#: src/pages/sales/SalesOrderDetail.tsx:335 msgid "Shipments" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:369 +#: src/pages/sales/SalesOrderDetail.tsx:376 msgid "Issue Sales Order" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:377 +#: src/pages/sales/SalesOrderDetail.tsx:384 msgid "Cancel Sales Order" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:385 +#: src/pages/sales/SalesOrderDetail.tsx:392 msgid "Hold Sales Order" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:393 +#: src/pages/sales/SalesOrderDetail.tsx:400 msgid "Complete Sales Order" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:432 +#: src/pages/sales/SalesOrderDetail.tsx:439 msgid "Ship Order" msgstr "" -#: src/pages/stock/LocationDetail.tsx:117 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:117 +#: src/tables/sales/SalesOrderShipmentTable.tsx:96 +msgid "Shipment Reference" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:124 +msgid "Allocated Items" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:133 +msgid "Tracking Number" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:141 +msgid "Invoice Number" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:149 +#: src/tables/ColumnRenderers.tsx:242 +#: src/tables/sales/SalesOrderAllocationTable.tsx:142 +#: src/tables/sales/SalesOrderShipmentTable.tsx:115 +msgid "Shipment Date" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:157 +#: src/tables/sales/SalesOrderShipmentTable.tsx:119 +msgid "Delivery Date" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:204 +msgid "Shipment Details" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:210 +msgid "Assigned Items" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:241 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:317 +#: src/tables/sales/SalesOrderShipmentTable.tsx:75 +msgid "Edit Shipment" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:248 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:322 +#: src/tables/sales/SalesOrderShipmentTable.tsx:67 +msgid "Cancel Shipment" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:261 +#: src/tables/sales/SalesOrderShipmentTable.tsx:83 +#: src/tables/sales/SalesOrderShipmentTable.tsx:151 +msgid "Complete Shipment" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:276 +#: src/tables/part/PartPurchaseOrdersTable.tsx:121 +msgid "Pending" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:277 +#: src/tables/sales/SalesOrderAllocationTable.tsx:148 +#: src/tables/sales/SalesOrderShipmentTable.tsx:108 +#: src/tables/sales/SalesOrderShipmentTable.tsx:197 +msgid "Shipped" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:279 +#: src/tables/sales/SalesOrderShipmentTable.tsx:202 +msgid "Delivered" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:293 +msgid "Send Shipment" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:312 +msgid "Shipment Actions" +msgstr "" + +#: src/pages/stock/LocationDetail.tsx:111 msgid "Parent Location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:135 +#: src/pages/stock/LocationDetail.tsx:129 msgid "Sublocations" msgstr "" -#: src/pages/stock/LocationDetail.tsx:147 +#: src/pages/stock/LocationDetail.tsx:141 #: src/tables/stock/StockLocationTable.tsx:54 msgid "External" msgstr "" -#: src/pages/stock/LocationDetail.tsx:153 +#: src/pages/stock/LocationDetail.tsx:147 #: src/tables/stock/StockLocationTable.tsx:63 msgid "Location Type" msgstr "" -#: src/pages/stock/LocationDetail.tsx:164 +#: src/pages/stock/LocationDetail.tsx:158 msgid "Top level stock location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:175 +#: src/pages/stock/LocationDetail.tsx:169 msgid "Location Details" msgstr "" -#: src/pages/stock/LocationDetail.tsx:201 +#: src/pages/stock/LocationDetail.tsx:195 msgid "Default Parts" msgstr "" -#: src/pages/stock/LocationDetail.tsx:220 -#: src/pages/stock/LocationDetail.tsx:351 +#: src/pages/stock/LocationDetail.tsx:214 +#: src/pages/stock/LocationDetail.tsx:336 #: src/tables/stock/StockLocationTable.tsx:123 msgid "Edit Stock Location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:241 -#: src/pages/stock/LocationDetail.tsx:356 +#: src/pages/stock/LocationDetail.tsx:235 +#: src/pages/stock/LocationDetail.tsx:341 msgid "Delete Stock Location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:244 +#: src/pages/stock/LocationDetail.tsx:238 msgid "Items Action" msgstr "" -#: src/pages/stock/LocationDetail.tsx:245 +#: src/pages/stock/LocationDetail.tsx:239 msgid "Action for stock items in this location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:250 +#: src/pages/stock/LocationDetail.tsx:244 msgid "Child Locations Action" msgstr "" -#: src/pages/stock/LocationDetail.tsx:251 +#: src/pages/stock/LocationDetail.tsx:245 msgid "Action for child locations in this location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:346 +#: src/pages/stock/LocationDetail.tsx:332 msgid "Location Actions" msgstr "" -#: src/pages/stock/StockDetail.tsx:108 +#: src/pages/stock/StockDetail.tsx:116 msgid "Base Part" msgstr "" -#: src/pages/stock/StockDetail.tsx:115 -msgid "Stock Status" -msgstr "" - #: src/pages/stock/StockDetail.tsx:155 #~ msgid "Link custom barcode to stock item" #~ msgstr "Link custom barcode to stock item" @@ -5312,113 +6285,179 @@ msgstr "" #~ msgid "Unlink custom barcode from stock item" #~ msgstr "Unlink custom barcode from stock item" -#: src/pages/stock/StockDetail.tsx:188 -msgid "Installed In" -msgstr "" - -#: src/pages/stock/StockDetail.tsx:204 -msgid "Consumed By" +#: src/pages/stock/StockDetail.tsx:178 +msgid "Allocated to Orders" msgstr "" #: src/pages/stock/StockDetail.tsx:205 #~ msgid "Edit stock item" #~ msgstr "Edit stock item" -#: src/pages/stock/StockDetail.tsx:213 -#: src/tables/build/BuildAllocatedStockTable.tsx:64 -#: src/tables/stock/StockTrackingTable.tsx:96 -msgid "Build Order" +#: src/pages/stock/StockDetail.tsx:209 +msgid "Installed In" msgstr "" #: src/pages/stock/StockDetail.tsx:217 #~ msgid "Delete stock item" #~ msgstr "Delete stock item" -#: src/pages/stock/StockDetail.tsx:291 +#: src/pages/stock/StockDetail.tsx:226 +msgid "Parent Item" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:230 +msgid "Parent stock item" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:236 +msgid "Consumed By" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:245 +#: src/tables/build/BuildAllocatedStockTable.tsx:77 +#: src/tables/stock/StockTrackingTable.tsx:100 +msgid "Build Order" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:283 +#: src/tables/stock/StockItemTable.tsx:270 +msgid "Expiry Date" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:414 msgid "Stock Details" msgstr "" -#: src/pages/stock/StockDetail.tsx:297 +#: src/pages/stock/StockDetail.tsx:420 msgid "Stock Tracking" msgstr "" -#: src/pages/stock/StockDetail.tsx:350 -msgid "Test Data" -msgstr "" - -#: src/pages/stock/StockDetail.tsx:364 -msgid "Installed Items" -msgstr "" - -#: src/pages/stock/StockDetail.tsx:371 -msgid "Child Items" -msgstr "" - -#: src/pages/stock/StockDetail.tsx:425 -msgid "Edit Stock Item" -msgstr "" - #: src/pages/stock/StockDetail.tsx:433 #~ msgid "Duplicate stock item" #~ msgstr "Duplicate stock item" -#: src/pages/stock/StockDetail.tsx:452 +#: src/pages/stock/StockDetail.tsx:475 +msgid "Test Data" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:489 +msgid "Installed Items" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:496 +msgid "Child Items" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:545 +msgid "Edit Stock Item" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:572 msgid "Delete Stock Item" msgstr "" -#: src/pages/stock/StockDetail.tsx:504 +#: src/pages/stock/StockDetail.tsx:604 +msgid "Serialize Stock Item" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:617 +msgid "Stock item serialized" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:623 +msgid "Return Stock Item" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:626 +msgid "Return this item into stock. This will remove the customer assignment." +msgstr "" + +#: src/pages/stock/StockDetail.tsx:636 +msgid "Item returned to stock" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:666 msgid "Stock Operations" msgstr "" -#: src/pages/stock/StockDetail.tsx:509 +#: src/pages/stock/StockDetail.tsx:671 msgid "Count stock" msgstr "" -#: src/pages/stock/StockDetail.tsx:519 -#: src/tables/stock/StockItemTable.tsx:449 -msgid "Add stock" +#: src/pages/stock/StockDetail.tsx:671 +#: src/tables/stock/StockItemTable.tsx:452 +#~ msgid "Add stock" +#~ msgstr "Add stock" + +#: src/pages/stock/StockDetail.tsx:680 +#: src/tables/stock/StockItemTable.tsx:461 +#~ msgid "Remove stock" +#~ msgstr "Remove stock" + +#: src/pages/stock/StockDetail.tsx:698 +#: src/tables/stock/StockItemTable.tsx:481 +#~ msgid "Transfer stock" +#~ msgstr "Transfer stock" + +#: src/pages/stock/StockDetail.tsx:699 +msgid "Serialize" msgstr "" -#: src/pages/stock/StockDetail.tsx:527 -#: src/tables/stock/StockItemTable.tsx:458 -msgid "Remove stock" +#: src/pages/stock/StockDetail.tsx:700 +msgid "Serialize stock" msgstr "" -#: src/pages/stock/StockDetail.tsx:534 +#: src/pages/stock/StockDetail.tsx:711 msgid "Transfer" msgstr "" -#: src/pages/stock/StockDetail.tsx:535 -#: src/tables/stock/StockItemTable.tsx:478 -msgid "Transfer stock" +#: src/pages/stock/StockDetail.tsx:722 +msgid "Return" msgstr "" -#: src/pages/stock/StockDetail.tsx:546 +#: src/pages/stock/StockDetail.tsx:723 +msgid "Return from customer" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:738 msgid "Stock Item Actions" msgstr "" -#: src/tables/ColumnRenderers.tsx:30 +#: src/pages/stock/StockDetail.tsx:808 +msgid "Stale" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:814 +msgid "Expired" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:820 +msgid "Unavailable" +msgstr "" + +#: src/tables/ColumnRenderers.tsx:36 msgid "Part is not active" msgstr "" -#: src/tables/ColumnRenderers.tsx:35 -msgid "Part is locked" +#: src/tables/ColumnRenderers.tsx:41 +#: src/tables/bom/BomTable.tsx:542 +#: src/tables/part/PartParameterTable.tsx:193 +#: src/tables/part/PartTestTemplateTable.tsx:253 +msgid "Part is Locked" msgstr "" -#: src/tables/ColumnRenderers.tsx:57 +#: src/tables/ColumnRenderers.tsx:41 +#~ msgid "Part is locked" +#~ msgstr "Part is locked" + +#: src/tables/ColumnRenderers.tsx:46 +msgid "You are subscribed to notifications for this part" +msgstr "" + +#: src/tables/ColumnRenderers.tsx:68 msgid "No location set" msgstr "" -#: src/tables/ColumnRenderers.tsx:228 -#: src/tables/sales/SalesOrderShipmentTable.tsx:79 -msgid "Shipment Date" -msgstr "" - -#: src/tables/ColumnRenderers.tsx:248 -#: src/tables/settings/CurrencyTable.tsx:23 -msgid "Currency" -msgstr "" - #: src/tables/ColumnSelect.tsx:16 #: src/tables/ColumnSelect.tsx:23 msgid "Select Columns" @@ -5452,91 +6491,116 @@ msgstr "" msgid "Download Data" msgstr "" -#: src/tables/Filter.tsx:89 -#: src/tables/build/BuildOrderTable.tsx:135 +#: src/tables/Filter.tsx:101 msgid "Assigned to me" msgstr "" -#: src/tables/Filter.tsx:90 -#: src/tables/build/BuildOrderTable.tsx:136 +#: src/tables/Filter.tsx:102 msgid "Show orders assigned to me" msgstr "" -#: src/tables/Filter.tsx:97 +#: src/tables/Filter.tsx:106 +#~ msgid "Show overdue orders" +#~ msgstr "Show overdue orders" + +#: src/tables/Filter.tsx:109 +#: src/tables/build/BuildOrderTable.tsx:120 +#: src/tables/sales/SalesOrderAllocationTable.tsx:59 msgid "Outstanding" msgstr "" -#: src/tables/Filter.tsx:98 -msgid "Show outstanding orders" +#: src/tables/Filter.tsx:110 +msgid "Show outstanding items" msgstr "" -#: src/tables/Filter.tsx:105 -#: src/tables/build/BuildOrderTable.tsx:128 +#: src/tables/Filter.tsx:117 msgid "Overdue" msgstr "" -#: src/tables/Filter.tsx:106 -msgid "Show overdue orders" +#: src/tables/Filter.tsx:118 +msgid "Show overdue items" msgstr "" -#: src/tables/FilterSelectDrawer.tsx:51 +#: src/tables/Filter.tsx:125 +msgid "Minimum Date" +msgstr "" + +#: src/tables/Filter.tsx:126 +msgid "Show items after this date" +msgstr "" + +#: src/tables/Filter.tsx:134 +msgid "Maximum Date" +msgstr "" + +#: src/tables/Filter.tsx:135 +msgid "Show items before this date" +msgstr "" + +#: src/tables/Filter.tsx:144 +msgid "Has Project Code" +msgstr "" + +#: src/tables/Filter.tsx:145 +msgid "Show orders with an assigned project code" +msgstr "" + +#: src/tables/FilterSelectDrawer.tsx:55 msgid "Remove filter" msgstr "" -#: src/tables/FilterSelectDrawer.tsx:130 +#: src/tables/FilterSelectDrawer.tsx:159 msgid "Select filter" msgstr "" -#: src/tables/FilterSelectDrawer.tsx:131 +#: src/tables/FilterSelectDrawer.tsx:160 msgid "Filter" msgstr "" -#: src/tables/FilterSelectDrawer.tsx:138 -#: src/tables/build/BuildOrderTestTable.tsx:134 -#: src/tables/purchasing/ManufacturerPartParameterTable.tsx:38 -#: src/tables/stock/StockItemTestResultTable.tsx:186 -msgid "Value" +#: src/tables/FilterSelectDrawer.tsx:168 +msgid "Select date value" msgstr "" -#: src/tables/FilterSelectDrawer.tsx:140 +#: src/tables/FilterSelectDrawer.tsx:176 msgid "Select filter value" msgstr "" -#: src/tables/FilterSelectDrawer.tsx:183 +#: src/tables/FilterSelectDrawer.tsx:219 +#: src/tables/InvenTreeTableHeader.tsx:214 msgid "Table Filters" msgstr "" -#: src/tables/FilterSelectDrawer.tsx:215 +#: src/tables/FilterSelectDrawer.tsx:251 msgid "Add Filter" msgstr "" -#: src/tables/FilterSelectDrawer.tsx:224 +#: src/tables/FilterSelectDrawer.tsx:260 msgid "Clear Filters" msgstr "" -#: src/tables/InvenTreeTable.tsx:123 -#: src/tables/InvenTreeTable.tsx:431 -#: src/tables/InvenTreeTable.tsx:455 +#: src/tables/InvenTreeTable.tsx:96 +#: src/tables/InvenTreeTable.tsx:417 +#: src/tables/InvenTreeTable.tsx:441 msgid "No records found" msgstr "" -#: src/tables/InvenTreeTable.tsx:466 +#: src/tables/InvenTreeTable.tsx:452 msgid "Server returned incorrect data type" msgstr "" -#: src/tables/InvenTreeTable.tsx:474 +#: src/tables/InvenTreeTable.tsx:460 msgid "Bad request" msgstr "" -#: src/tables/InvenTreeTable.tsx:477 +#: src/tables/InvenTreeTable.tsx:463 msgid "Unauthorized" msgstr "" -#: src/tables/InvenTreeTable.tsx:480 +#: src/tables/InvenTreeTable.tsx:466 msgid "Forbidden" msgstr "" -#: src/tables/InvenTreeTable.tsx:483 +#: src/tables/InvenTreeTable.tsx:469 msgid "Not found" msgstr "" @@ -5544,18 +6608,6 @@ msgstr "" #~ msgid "Are you sure you want to delete the selected records?" #~ msgstr "Are you sure you want to delete the selected records?" -#: src/tables/InvenTreeTable.tsx:525 -msgid "Delete Selected Items" -msgstr "" - -#: src/tables/InvenTreeTable.tsx:529 -msgid "Are you sure you want to delete the selected items?" -msgstr "" - -#: src/tables/InvenTreeTable.tsx:531 -msgid "This action cannot be undone!" -msgstr "" - #: src/tables/InvenTreeTable.tsx:535 #~ msgid "Deleted records" #~ msgstr "Deleted records" @@ -5568,31 +6620,56 @@ msgstr "" #~ msgid "Failed to delete records" #~ msgstr "Failed to delete records" +#: src/tables/InvenTreeTable.tsx:552 +#~ msgid "This action cannot be undone!" +#~ msgstr "This action cannot be undone!" + #: src/tables/InvenTreeTable.tsx:594 #: src/tables/InvenTreeTable.tsx:595 #~ msgid "Print actions" #~ msgstr "Print actions" -#: src/tables/InvenTreeTable.tsx:618 -#: src/tables/InvenTreeTable.tsx:619 -msgid "Barcode actions" +#: src/tables/InvenTreeTable.tsx:655 +#: src/tables/InvenTreeTable.tsx:656 +#~ msgid "Barcode actions" +#~ msgstr "Barcode actions" + +#: src/tables/InvenTreeTable.tsx:712 +#~ msgid "Table filters" +#~ msgstr "Table filters" + +#: src/tables/InvenTreeTable.tsx:725 +#~ msgid "Clear custom query filters" +#~ msgstr "Clear custom query filters" + +#: src/tables/InvenTreeTableHeader.tsx:98 +msgid "Delete Selected Items" msgstr "" -#: src/tables/InvenTreeTable.tsx:628 +#: src/tables/InvenTreeTableHeader.tsx:102 +msgid "Are you sure you want to delete the selected items?" +msgstr "" + +#: src/tables/InvenTreeTableHeader.tsx:104 +#: src/tables/plugin/PluginListTable.tsx:305 +msgid "This action cannot be undone" +msgstr "" + +#: src/tables/InvenTreeTableHeader.tsx:142 +msgid "Custom table filters are active" +msgstr "" + +#: src/tables/InvenTreeTableHeader.tsx:169 msgid "Delete selected records" msgstr "" -#: src/tables/InvenTreeTable.tsx:649 +#: src/tables/InvenTreeTableHeader.tsx:188 msgid "Refresh data" msgstr "" -#: src/tables/InvenTreeTable.tsx:675 -msgid "Table filters" -msgstr "" - #: src/tables/TableHoverCard.tsx:35 -msgid "item-{idx}" -msgstr "" +#~ msgid "item-{idx}" +#~ msgstr "item-{idx}" #: src/tables/UploadAction.tsx:7 #~ msgid "Upload Data" @@ -5607,31 +6684,36 @@ msgid "Part Information" msgstr "" #: src/tables/bom/BomTable.tsx:212 -#: src/tables/build/BuildLineTable.tsx:126 +#: src/tables/build/BuildLineTable.tsx:257 #: src/tables/part/PartTable.tsx:125 msgid "External stock" msgstr "" #: src/tables/bom/BomTable.tsx:220 -#: src/tables/build/BuildLineTable.tsx:89 +#: src/tables/build/BuildLineTable.tsx:220 msgid "Includes substitute stock" msgstr "" #: src/tables/bom/BomTable.tsx:229 -#: src/tables/build/BuildLineTable.tsx:99 -#: src/tables/sales/SalesOrderLineItemTable.tsx:127 +#: src/tables/build/BuildLineTable.tsx:230 +#: src/tables/sales/SalesOrderLineItemTable.tsx:135 msgid "Includes variant stock" msgstr "" +#: src/tables/bom/BomTable.tsx:245 +#: src/tables/part/PartTable.tsx:92 +msgid "Building" +msgstr "" + #: src/tables/bom/BomTable.tsx:254 #: src/tables/part/PartTable.tsx:153 -#: src/tables/sales/SalesOrderLineItemTable.tsx:150 -#: src/tables/stock/StockItemTable.tsx:216 +#: src/tables/sales/SalesOrderLineItemTable.tsx:158 +#: src/tables/stock/StockItemTable.tsx:206 msgid "Stock Information" msgstr "" #: src/tables/bom/BomTable.tsx:285 -#: src/tables/build/BuildLineTable.tsx:248 +#: src/tables/build/BuildLineTable.tsx:409 msgid "Consumable item" msgstr "" @@ -5644,7 +6726,7 @@ msgstr "" #~ msgstr "Create BOM Item" #: src/tables/bom/BomTable.tsx:306 -#: src/tables/build/BuildLineTable.tsx:69 +#: src/tables/build/BuildLineTable.tsx:200 msgid "Show testable items" msgstr "" @@ -5657,11 +6739,12 @@ msgid "Show trackable items" msgstr "" #: src/tables/bom/BomTable.tsx:316 -#: src/tables/build/BuildLineTable.tsx:64 +#: src/tables/build/BuildLineTable.tsx:195 msgid "Show assembled items" msgstr "" #: src/tables/bom/BomTable.tsx:321 +#: src/tables/build/BuildLineTable.tsx:180 msgid "Show items with available stock" msgstr "" @@ -5705,7 +6788,7 @@ msgstr "" #: src/tables/bom/BomTable.tsx:345 #: src/tables/bom/UsedInTable.tsx:79 -#: src/tables/build/BuildLineTable.tsx:58 +#: src/tables/build/BuildLineTable.tsx:189 msgid "Optional" msgstr "" @@ -5723,7 +6806,7 @@ msgstr "" #~ msgstr "Bom item deleted" #: src/tables/bom/BomTable.tsx:350 -#: src/tables/build/BuildLineTable.tsx:53 +#: src/tables/build/BuildLineTable.tsx:184 msgid "Consumable" msgstr "" @@ -5749,12 +6832,12 @@ msgid "Show items with pricing" msgstr "" #: src/tables/bom/BomTable.tsx:378 -#: src/tables/bom/BomTable.tsx:511 +#: src/tables/bom/BomTable.tsx:512 msgid "Import BOM Data" msgstr "" #: src/tables/bom/BomTable.tsx:388 -#: src/tables/bom/BomTable.tsx:523 +#: src/tables/bom/BomTable.tsx:526 msgid "Add BOM Item" msgstr "" @@ -5780,7 +6863,7 @@ msgstr "" #: src/tables/bom/BomTable.tsx:423 #: src/tables/bom/BomTable.tsx:426 -#: src/tables/bom/BomTable.tsx:517 +#: src/tables/bom/BomTable.tsx:519 msgid "Validate BOM" msgstr "" @@ -5812,21 +6895,15 @@ msgstr "" msgid "Edit Substitutes" msgstr "" -#: src/tables/bom/BomTable.tsx:539 -#: src/tables/part/PartParameterTable.tsx:193 -#: src/tables/part/PartTestTemplateTable.tsx:252 -msgid "Part is Locked" -msgstr "" - -#: src/tables/bom/BomTable.tsx:544 +#: src/tables/bom/BomTable.tsx:547 msgid "Bill of materials cannot be edited, as the part is locked" msgstr "" #: src/tables/bom/UsedInTable.tsx:33 -#: src/tables/build/BuildLineTable.tsx:63 +#: src/tables/build/BuildLineTable.tsx:194 #: src/tables/part/ParametricPartTable.tsx:233 #: src/tables/part/PartTable.tsx:190 -#: src/tables/stock/StockItemTable.tsx:300 +#: src/tables/stock/StockItemTable.tsx:304 msgid "Assembly" msgstr "" @@ -5844,285 +6921,347 @@ msgstr "" msgid "Show trackable assemblies" msgstr "" -#: src/tables/build/BuildAllocatedStockTable.tsx:54 +#: src/tables/build/BuildAllocatedStockTable.tsx:56 msgid "Allocated to Output" msgstr "" -#: src/tables/build/BuildAllocatedStockTable.tsx:55 +#: src/tables/build/BuildAllocatedStockTable.tsx:57 msgid "Show items allocated to a build output" msgstr "" -#: src/tables/build/BuildAllocatedStockTable.tsx:76 -#: src/tables/part/PartPurchaseOrdersTable.tsx:125 -#: src/tables/sales/SalesOrderAllocationTable.tsx:62 +#: src/tables/build/BuildAllocatedStockTable.tsx:65 +#: src/tables/build/BuildOrderTable.tsx:159 +#: src/tables/part/PartParameterTable.tsx:212 +#: src/tables/part/PartPurchaseOrdersTable.tsx:138 +#: src/tables/sales/ReturnOrderTable.tsx:84 +#: src/tables/sales/SalesOrderAllocationTable.tsx:68 +#: src/tables/sales/SalesOrderTable.tsx:84 +#: src/tables/stock/StockItemTable.tsx:339 +msgid "Include Variants" +msgstr "" + +#: src/tables/build/BuildAllocatedStockTable.tsx:66 +#: src/tables/build/BuildOrderTable.tsx:160 +#: src/tables/part/PartPurchaseOrdersTable.tsx:139 +#: src/tables/sales/ReturnOrderTable.tsx:85 +#: src/tables/sales/SalesOrderAllocationTable.tsx:69 +#: src/tables/sales/SalesOrderTable.tsx:85 +msgid "Include orders for part variants" +msgstr "" + +#: src/tables/build/BuildAllocatedStockTable.tsx:89 +#: src/tables/part/PartPurchaseOrdersTable.tsx:131 +#: src/tables/sales/SalesOrderAllocationTable.tsx:93 msgid "Order Status" msgstr "" -#: src/tables/build/BuildAllocatedStockTable.tsx:96 -#: src/tables/sales/SalesOrderAllocationTable.tsx:75 +#: src/tables/build/BuildAllocatedStockTable.tsx:117 +#: src/tables/sales/SalesOrderAllocationTable.tsx:126 msgid "Allocated Quantity" msgstr "" -#: src/tables/build/BuildAllocatedStockTable.tsx:116 -#: src/tables/sales/SalesOrderAllocationTable.tsx:94 +#: src/tables/build/BuildAllocatedStockTable.tsx:137 +#: src/tables/sales/SalesOrderAllocationTable.tsx:120 msgid "Available Quantity" msgstr "" -#: src/tables/build/BuildAllocatedStockTable.tsx:126 -#: src/tables/build/BuildOrderTestTable.tsx:176 -#: src/tables/build/BuildOrderTestTable.tsx:200 -#: src/tables/build/BuildOutputTable.tsx:312 -msgid "Build Output" +#: src/tables/build/BuildAllocatedStockTable.tsx:164 +#: src/tables/build/BuildLineTable.tsx:513 +msgid "Edit Stock Allocation" msgstr "" -#: src/tables/build/BuildAllocatedStockTable.tsx:143 -msgid "Edit Build Item" -msgstr "" +#: src/tables/build/BuildAllocatedStockTable.tsx:164 +#~ msgid "Edit Build Item" +#~ msgstr "Edit Build Item" -#: src/tables/build/BuildAllocatedStockTable.tsx:153 -msgid "Delete Build Item" -msgstr "" +#: src/tables/build/BuildAllocatedStockTable.tsx:174 +#~ msgid "Delete Build Item" +#~ msgstr "Delete Build Item" -#: src/tables/build/BuildLineTable.tsx:43 -#: src/tables/stock/StockItemTable.tsx:305 -msgid "Allocated" -msgstr "" - -#: src/tables/build/BuildLineTable.tsx:44 -msgid "Show allocated lines" -msgstr "" - -#: src/tables/build/BuildLineTable.tsx:49 -msgid "Show lines with available stock" -msgstr "" - -#: src/tables/build/BuildLineTable.tsx:54 -msgid "Show consumable lines" +#: src/tables/build/BuildAllocatedStockTable.tsx:177 +#: src/tables/build/BuildLineTable.tsx:526 +msgid "Delete Stock Allocation" msgstr "" #: src/tables/build/BuildLineTable.tsx:59 +#~ msgid "Show lines with available stock" +#~ msgstr "Show lines with available stock" + +#: src/tables/build/BuildLineTable.tsx:175 +msgid "Show allocated lines" +msgstr "" + +#: src/tables/build/BuildLineTable.tsx:185 +msgid "Show consumable lines" +msgstr "" + +#: src/tables/build/BuildLineTable.tsx:190 msgid "Show optional lines" msgstr "" -#: src/tables/build/BuildLineTable.tsx:68 +#: src/tables/build/BuildLineTable.tsx:199 #: src/tables/part/PartTable.tsx:208 msgid "Testable" msgstr "" -#: src/tables/build/BuildLineTable.tsx:73 -#: src/tables/stock/StockItemTable.tsx:364 +#: src/tables/build/BuildLineTable.tsx:204 +#: src/tables/stock/StockItemTable.tsx:368 msgid "Tracked" msgstr "" -#: src/tables/build/BuildLineTable.tsx:74 +#: src/tables/build/BuildLineTable.tsx:205 msgid "Show tracked lines" msgstr "" -#: src/tables/build/BuildLineTable.tsx:108 -#: src/tables/sales/SalesOrderLineItemTable.tsx:133 +#: src/tables/build/BuildLineTable.tsx:239 +#: src/tables/sales/SalesOrderLineItemTable.tsx:141 msgid "In production" msgstr "" -#: src/tables/build/BuildLineTable.tsx:136 +#: src/tables/build/BuildLineTable.tsx:267 msgid "Insufficient stock" msgstr "" -#: src/tables/build/BuildLineTable.tsx:152 -#: src/tables/sales/SalesOrderLineItemTable.tsx:121 -#: src/tables/stock/StockItemTable.tsx:186 +#: src/tables/build/BuildLineTable.tsx:283 +#: src/tables/sales/SalesOrderLineItemTable.tsx:129 +#: src/tables/stock/StockItemTable.tsx:175 msgid "No stock available" msgstr "" -#: src/tables/build/BuildLineTable.tsx:201 +#: src/tables/build/BuildLineTable.tsx:355 msgid "Gets Inherited" msgstr "" -#: src/tables/build/BuildLineTable.tsx:210 +#: src/tables/build/BuildLineTable.tsx:366 msgid "Unit Quantity" msgstr "" -#: src/tables/build/BuildLineTable.tsx:267 -#: src/tables/sales/SalesOrderLineItemTable.tsx:230 +#: src/tables/build/BuildLineTable.tsx:381 +msgid "Required Quantity" +msgstr "" + +#: src/tables/build/BuildLineTable.tsx:432 +#: src/tables/sales/SalesOrderLineItemTable.tsx:254 msgid "Create Build Order" msgstr "" -#: src/tables/build/BuildLineTable.tsx:298 -msgid "Allocate Stock" +#: src/tables/build/BuildLineTable.tsx:460 +msgid "Auto allocation in progress" msgstr "" -#: src/tables/build/BuildLineTable.tsx:305 +#: src/tables/build/BuildLineTable.tsx:463 +#: src/tables/build/BuildLineTable.tsx:632 +msgid "Auto Allocate Stock" +msgstr "" + +#: src/tables/build/BuildLineTable.tsx:464 +msgid "Automatically allocate stock to this build according to the selected options" +msgstr "" + +#: src/tables/build/BuildLineTable.tsx:482 +#: src/tables/build/BuildLineTable.tsx:496 +#: src/tables/build/BuildLineTable.tsx:579 +#: src/tables/build/BuildLineTable.tsx:664 +#: src/tables/build/BuildOutputTable.tsx:314 +#: src/tables/build/BuildOutputTable.tsx:319 +msgid "Deallocate Stock" +msgstr "" + +#: src/tables/build/BuildLineTable.tsx:498 +msgid "Deallocate all untracked stock for this build order" +msgstr "" + +#: src/tables/build/BuildLineTable.tsx:500 +msgid "Deallocate stock from the selected line item" +msgstr "" + +#: src/tables/build/BuildLineTable.tsx:504 +msgid "Stock has been deallocated" +msgstr "" + +#: src/tables/build/BuildLineTable.tsx:589 msgid "Order Stock" msgstr "" -#: src/tables/build/BuildLineTable.tsx:312 +#: src/tables/build/BuildLineTable.tsx:596 msgid "Build Stock" msgstr "" -#: src/tables/build/BuildOrderTable.tsx:111 -msgid "Show active orders" +#: src/tables/build/BuildLineTable.tsx:610 +msgid "View Part" msgstr "" #: src/tables/build/BuildOrderTable.tsx:116 -msgid "Cascade" -msgstr "" +#~ msgid "Cascade" +#~ msgstr "Cascade" #: src/tables/build/BuildOrderTable.tsx:117 -msgid "Display recursive child orders" +#~ msgid "Display recursive child orders" +#~ msgstr "Display recursive child orders" + +#: src/tables/build/BuildOrderTable.tsx:121 +msgid "Show outstanding orders" msgstr "" -#: src/tables/build/BuildOrderTable.tsx:123 -#: src/tables/part/PartPurchaseOrdersTable.tsx:126 -#: src/tables/purchasing/PurchaseOrderTable.tsx:56 -#: src/tables/sales/ReturnOrderTable.tsx:47 -#: src/tables/sales/SalesOrderTable.tsx:54 +#: src/tables/build/BuildOrderTable.tsx:121 +#~ msgid "Show active orders" +#~ msgstr "Show active orders" + +#: src/tables/build/BuildOrderTable.tsx:122 +#~ msgid "Show overdue status" +#~ msgstr "Show overdue status" + +#: src/tables/build/BuildOrderTable.tsx:126 +#: src/tables/part/PartPurchaseOrdersTable.tsx:132 +#: src/tables/purchasing/PurchaseOrderTable.tsx:59 +#: src/tables/sales/ReturnOrderTable.tsx:57 +#: src/tables/sales/SalesOrderTable.tsx:57 msgid "Filter by order status" msgstr "" -#: src/tables/build/BuildOrderTable.tsx:130 -msgid "Show overdue status" -msgstr "" - -#: src/tables/build/BuildOrderTable.tsx:141 -#: src/tables/purchasing/PurchaseOrderTable.tsx:65 -#: src/tables/sales/ReturnOrderTable.tsx:56 -#: src/tables/sales/SalesOrderTable.tsx:63 +#: src/tables/build/BuildOrderTable.tsx:136 +#: src/tables/purchasing/PurchaseOrderTable.tsx:70 +#: src/tables/sales/ReturnOrderTable.tsx:68 +#: src/tables/sales/SalesOrderTable.tsx:68 msgid "Filter by project code" msgstr "" -#: src/tables/build/BuildOrderTable.tsx:146 -#: src/tables/purchasing/PurchaseOrderTable.tsx:70 -#: src/tables/sales/ReturnOrderTable.tsx:61 -#: src/tables/sales/SalesOrderTable.tsx:68 -msgid "Has Project Code" -msgstr "" - -#: src/tables/build/BuildOrderTable.tsx:147 +#: src/tables/build/BuildOrderTable.tsx:139 #: src/tables/purchasing/PurchaseOrderTable.tsx:71 #: src/tables/sales/ReturnOrderTable.tsx:62 #: src/tables/sales/SalesOrderTable.tsx:69 -msgid "Filter by whether the purchase order has a project code" -msgstr "" +#~ msgid "Filter by whether the purchase order has a project code" +#~ msgstr "Filter by whether the purchase order has a project code" -#: src/tables/build/BuildOrderTable.tsx:152 +#: src/tables/build/BuildOrderTable.tsx:143 msgid "Filter by user who issued this order" msgstr "" -#: src/tables/build/BuildOrderTable.tsx:158 -#: src/tables/purchasing/PurchaseOrderTable.tsx:76 -#: src/tables/sales/ReturnOrderTable.tsx:67 -#: src/tables/sales/SalesOrderTable.tsx:74 +#: src/tables/build/BuildOrderTable.tsx:149 +#: src/tables/purchasing/PurchaseOrderTable.tsx:77 +#: src/tables/sales/ReturnOrderTable.tsx:75 +#: src/tables/sales/SalesOrderTable.tsx:75 msgid "Filter by responsible owner" msgstr "" -#: src/tables/build/BuildOrderTestTable.tsx:75 -#: src/tables/build/BuildOrderTestTable.tsx:111 -#: src/tables/stock/StockItemTestResultTable.tsx:257 -#: src/tables/stock/StockItemTestResultTable.tsx:329 -#: src/tables/stock/StockItemTestResultTable.tsx:384 +#: src/tables/build/BuildOrderTestTable.tsx:76 +#: src/tables/build/BuildOrderTestTable.tsx:112 +#: src/tables/stock/StockItemTestResultTable.tsx:275 +#: src/tables/stock/StockItemTestResultTable.tsx:347 +#: src/tables/stock/StockItemTestResultTable.tsx:403 msgid "Add Test Result" msgstr "" -#: src/tables/build/BuildOrderTestTable.tsx:82 -#: src/tables/stock/StockItemTestResultTable.tsx:259 +#: src/tables/build/BuildOrderTestTable.tsx:83 +#: src/tables/stock/StockItemTestResultTable.tsx:277 msgid "Test result added" msgstr "" -#: src/tables/build/BuildOrderTestTable.tsx:110 -#: src/tables/stock/StockItemTestResultTable.tsx:174 +#: src/tables/build/BuildOrderTestTable.tsx:111 +#: src/tables/stock/StockItemTestResultTable.tsx:180 msgid "No Result" msgstr "" -#: src/tables/build/BuildOrderTestTable.tsx:220 +#: src/tables/build/BuildOrderTestTable.tsx:221 msgid "Show build outputs currently in production" msgstr "" +#: src/tables/build/BuildOutputTable.tsx:76 +msgid "Build Output Stock Allocation" +msgstr "" + #: src/tables/build/BuildOutputTable.tsx:161 #~ msgid "Delete build output" #~ msgstr "Delete build output" -#: src/tables/build/BuildOutputTable.tsx:173 -#: src/tables/build/BuildOutputTable.tsx:211 +#: src/tables/build/BuildOutputTable.tsx:258 +#: src/tables/build/BuildOutputTable.tsx:374 msgid "Add Build Output" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:216 +#: src/tables/build/BuildOutputTable.tsx:304 +#~ msgid "Edit build output" +#~ msgstr "Edit build output" + +#: src/tables/build/BuildOutputTable.tsx:306 +#: src/tables/build/BuildOutputTable.tsx:417 +msgid "Edit Build Output" +msgstr "" + +#: src/tables/build/BuildOutputTable.tsx:321 +msgid "This action will deallocate all stock from the selected build output" +msgstr "" + +#: src/tables/build/BuildOutputTable.tsx:341 msgid "Complete selected outputs" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:226 +#: src/tables/build/BuildOutputTable.tsx:352 msgid "Scrap selected outputs" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:236 +#: src/tables/build/BuildOutputTable.tsx:363 msgid "Cancel selected outputs" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:252 +#: src/tables/build/BuildOutputTable.tsx:385 msgid "Allocate" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:253 +#: src/tables/build/BuildOutputTable.tsx:386 msgid "Allocate stock to build output" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:259 +#: src/tables/build/BuildOutputTable.tsx:396 msgid "Deallocate" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:260 +#: src/tables/build/BuildOutputTable.tsx:397 msgid "Deallocate stock from build output" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:267 +#: src/tables/build/BuildOutputTable.tsx:408 msgid "Complete build output" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:276 +#: src/tables/build/BuildOutputTable.tsx:424 msgid "Scrap" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:277 +#: src/tables/build/BuildOutputTable.tsx:425 msgid "Scrap build output" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:280 -#~ msgid "Allocated Items" -#~ msgstr "Allocated Items" - -#: src/tables/build/BuildOutputTable.tsx:287 +#: src/tables/build/BuildOutputTable.tsx:435 msgid "Cancel build output" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:325 -msgid "Batch" -msgstr "" - -#: src/tables/build/BuildOutputTable.tsx:340 +#: src/tables/build/BuildOutputTable.tsx:488 msgid "Allocated Lines" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:355 +#: src/tables/build/BuildOutputTable.tsx:503 msgid "Required Tests" msgstr "" -#: src/tables/company/AddressTable.tsx:121 -#: src/tables/company/AddressTable.tsx:185 +#: src/tables/company/AddressTable.tsx:118 +#: src/tables/company/AddressTable.tsx:183 msgid "Add Address" msgstr "" -#: src/tables/company/AddressTable.tsx:126 +#: src/tables/company/AddressTable.tsx:123 msgid "Address created" msgstr "" -#: src/tables/company/AddressTable.tsx:135 +#: src/tables/company/AddressTable.tsx:132 msgid "Edit Address" msgstr "" -#: src/tables/company/AddressTable.tsx:143 +#: src/tables/company/AddressTable.tsx:140 msgid "Delete Address" msgstr "" -#: src/tables/company/AddressTable.tsx:144 +#: src/tables/company/AddressTable.tsx:141 msgid "Are you sure you want to delete this address?" msgstr "" @@ -6130,24 +7269,24 @@ msgstr "" #~ msgid "New Company" #~ msgstr "New Company" -#: src/tables/company/CompanyTable.tsx:74 -#: src/tables/company/CompanyTable.tsx:123 +#: src/tables/company/CompanyTable.tsx:75 +#: src/tables/company/CompanyTable.tsx:125 msgid "Add Company" msgstr "" -#: src/tables/company/CompanyTable.tsx:96 +#: src/tables/company/CompanyTable.tsx:97 msgid "Show active companies" msgstr "" -#: src/tables/company/CompanyTable.tsx:101 +#: src/tables/company/CompanyTable.tsx:102 msgid "Show companies which are suppliers" msgstr "" -#: src/tables/company/CompanyTable.tsx:106 +#: src/tables/company/CompanyTable.tsx:107 msgid "Show companies which are manufacturers" msgstr "" -#: src/tables/company/CompanyTable.tsx:111 +#: src/tables/company/CompanyTable.tsx:112 msgid "Show companies which are customers" msgstr "" @@ -6163,96 +7302,99 @@ msgstr "" msgid "Delete Contact" msgstr "" -#: src/tables/company/ContactTable.tsx:129 +#: src/tables/company/ContactTable.tsx:130 msgid "Add contact" msgstr "" -#: src/tables/general/AttachmentTable.tsx:130 +#: src/tables/general/AttachmentTable.tsx:135 msgid "File uploaded" msgstr "" -#: src/tables/general/AttachmentTable.tsx:131 +#: src/tables/general/AttachmentTable.tsx:136 msgid "File {0} uploaded successfully" msgstr "" -#: src/tables/general/AttachmentTable.tsx:142 +#: src/tables/general/AttachmentTable.tsx:147 msgid "Upload Error" msgstr "" -#: src/tables/general/AttachmentTable.tsx:143 +#: src/tables/general/AttachmentTable.tsx:148 msgid "File could not be uploaded" msgstr "" -#: src/tables/general/AttachmentTable.tsx:191 +#: src/tables/general/AttachmentTable.tsx:196 msgid "Upload Attachment" msgstr "" -#: src/tables/general/AttachmentTable.tsx:201 +#: src/tables/general/AttachmentTable.tsx:206 msgid "Edit Attachment" msgstr "" -#: src/tables/general/AttachmentTable.tsx:215 +#: src/tables/general/AttachmentTable.tsx:220 msgid "Delete Attachment" msgstr "" -#: src/tables/general/AttachmentTable.tsx:225 +#: src/tables/general/AttachmentTable.tsx:230 msgid "Is Link" msgstr "" -#: src/tables/general/AttachmentTable.tsx:226 +#: src/tables/general/AttachmentTable.tsx:231 msgid "Show link attachments" msgstr "" -#: src/tables/general/AttachmentTable.tsx:230 +#: src/tables/general/AttachmentTable.tsx:235 msgid "Is File" msgstr "" -#: src/tables/general/AttachmentTable.tsx:231 +#: src/tables/general/AttachmentTable.tsx:236 msgid "Show file attachments" msgstr "" -#: src/tables/general/AttachmentTable.tsx:240 +#: src/tables/general/AttachmentTable.tsx:245 msgid "Add attachment" msgstr "" -#: src/tables/general/AttachmentTable.tsx:251 -msgid "Add external link" -msgstr "" - #: src/tables/general/AttachmentTable.tsx:254 #~ msgid "Upload attachment" #~ msgstr "Upload attachment" -#: src/tables/general/AttachmentTable.tsx:299 +#: src/tables/general/AttachmentTable.tsx:256 +msgid "Add external link" +msgstr "" + +#: src/tables/general/AttachmentTable.tsx:304 msgid "No attachments found" msgstr "" -#: src/tables/general/AttachmentTable.tsx:337 +#: src/tables/general/AttachmentTable.tsx:343 msgid "Drag attachment file here to upload" msgstr "" #: src/tables/general/ExtraLineItemTable.tsx:86 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:251 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:60 -#: src/tables/sales/SalesOrderLineItemTable.tsx:196 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:263 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:362 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:72 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:168 +#: src/tables/sales/SalesOrderLineItemTable.tsx:206 +#: src/tables/sales/SalesOrderLineItemTable.tsx:291 msgid "Add Line Item" msgstr "" #: src/tables/general/ExtraLineItemTable.tsx:98 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:271 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:72 -#: src/tables/sales/SalesOrderLineItemTable.tsx:214 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:283 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:84 +#: src/tables/sales/SalesOrderLineItemTable.tsx:224 msgid "Edit Line Item" msgstr "" #: src/tables/general/ExtraLineItemTable.tsx:106 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:279 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:80 -#: src/tables/sales/SalesOrderLineItemTable.tsx:222 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:291 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:92 +#: src/tables/sales/SalesOrderLineItemTable.tsx:232 msgid "Delete Line Item" msgstr "" -#: src/tables/general/ExtraLineItemTable.tsx:142 +#: src/tables/general/ExtraLineItemTable.tsx:143 msgid "Add Extra Line Item" msgstr "" @@ -6261,12 +7403,12 @@ msgid "Machine restarted" msgstr "" #: src/tables/machine/MachineListTable.tsx:212 -#: src/tables/machine/MachineListTable.tsx:263 +#: src/tables/machine/MachineListTable.tsx:261 msgid "Edit machine" msgstr "" #: src/tables/machine/MachineListTable.tsx:226 -#: src/tables/machine/MachineListTable.tsx:267 +#: src/tables/machine/MachineListTable.tsx:265 msgid "Delete machine" msgstr "" @@ -6278,51 +7420,50 @@ msgstr "" msgid "Are you sure you want to remove the machine \"{0}\"?" msgstr "" -#: src/tables/machine/MachineListTable.tsx:255 -#: src/tables/machine/MachineListTable.tsx:432 +#: src/tables/machine/MachineListTable.tsx:254 +#: src/tables/machine/MachineListTable.tsx:442 msgid "Restart required" msgstr "" -#: src/tables/machine/MachineListTable.tsx:259 +#: src/tables/machine/MachineListTable.tsx:258 msgid "Machine Actions" msgstr "" -#: src/tables/machine/MachineListTable.tsx:272 +#: src/tables/machine/MachineListTable.tsx:270 msgid "Restart" msgstr "" -#: src/tables/machine/MachineListTable.tsx:274 +#: src/tables/machine/MachineListTable.tsx:272 msgid "Restart machine" msgstr "" -#: src/tables/machine/MachineListTable.tsx:276 +#: src/tables/machine/MachineListTable.tsx:274 msgid "manual restart required" msgstr "" +#: src/tables/machine/MachineListTable.tsx:291 +#~ msgid "Machine information" +#~ msgstr "Machine information" + #: src/tables/machine/MachineListTable.tsx:292 -msgid "Machine information" +msgid "Machine Information" msgstr "" -#: src/tables/machine/MachineListTable.tsx:303 -#: src/tables/machine/MachineListTable.tsx:599 +#: src/tables/machine/MachineListTable.tsx:302 +#: src/tables/machine/MachineListTable.tsx:610 msgid "Machine Type" msgstr "" -#: src/tables/machine/MachineListTable.tsx:316 +#: src/tables/machine/MachineListTable.tsx:315 msgid "Machine Driver" msgstr "" -#: src/tables/machine/MachineListTable.tsx:329 +#: src/tables/machine/MachineListTable.tsx:330 msgid "Initialized" msgstr "" -#: src/tables/machine/MachineListTable.tsx:350 -#: src/tables/machine/MachineTypeTable.tsx:261 -msgid "Errors" -msgstr "" - -#: src/tables/machine/MachineListTable.tsx:358 -#: src/tables/machine/MachineTypeTable.tsx:269 +#: src/tables/machine/MachineListTable.tsx:359 +#: src/tables/machine/MachineTypeTable.tsx:290 msgid "No errors reported" msgstr "" @@ -6330,7 +7471,7 @@ msgstr "" msgid "Machine Settings" msgstr "" -#: src/tables/machine/MachineListTable.tsx:389 +#: src/tables/machine/MachineListTable.tsx:394 msgid "Driver Settings" msgstr "" @@ -6338,86 +7479,109 @@ msgstr "" #~ msgid "Create machine" #~ msgstr "Create machine" -#: src/tables/machine/MachineListTable.tsx:506 +#: src/tables/machine/MachineListTable.tsx:516 +#: src/tables/machine/MachineListTable.tsx:558 msgid "Add machine" msgstr "" #: src/tables/machine/MachineListTable.tsx:561 -msgid "Machine detail" +#~ msgid "Machine detail" +#~ msgstr "Machine detail" + +#: src/tables/machine/MachineListTable.tsx:572 +msgid "Machine Detail" msgstr "" -#: src/tables/machine/MachineListTable.tsx:608 +#: src/tables/machine/MachineListTable.tsx:619 msgid "Driver" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:73 +#: src/tables/machine/MachineTypeTable.tsx:78 msgid "Builtin driver" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:89 +#: src/tables/machine/MachineTypeTable.tsx:96 +msgid "Not Found" +msgstr "" + +#: src/tables/machine/MachineTypeTable.tsx:99 msgid "Machine type not found." msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:97 -msgid "Machine type information" +#: src/tables/machine/MachineTypeTable.tsx:99 +#~ msgid "Machine type information" +#~ msgstr "Machine type information" + +#: src/tables/machine/MachineTypeTable.tsx:109 +msgid "Machine Type Information" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:110 -#: src/tables/machine/MachineTypeTable.tsx:217 +#: src/tables/machine/MachineTypeTable.tsx:124 +#: src/tables/machine/MachineTypeTable.tsx:238 msgid "Slug" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:118 -#: src/tables/machine/MachineTypeTable.tsx:238 +#: src/tables/machine/MachineTypeTable.tsx:135 +#: src/tables/machine/MachineTypeTable.tsx:259 msgid "Provider plugin" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:130 -#: src/tables/machine/MachineTypeTable.tsx:250 +#: src/tables/machine/MachineTypeTable.tsx:147 +#: src/tables/machine/MachineTypeTable.tsx:271 msgid "Provider file" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:135 -#: src/tables/machine/MachineTypeTable.tsx:255 -#: src/tables/plugin/PluginListTable.tsx:180 -#: src/tables/plugin/PluginListTable.tsx:568 -msgid "Builtin" +#: src/tables/machine/MachineTypeTable.tsx:148 +#~ msgid "Available drivers" +#~ msgstr "Available drivers" + +#: src/tables/machine/MachineTypeTable.tsx:162 +msgid "Available Drivers" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:146 -msgid "Available drivers" -msgstr "" - -#: src/tables/machine/MachineTypeTable.tsx:196 +#: src/tables/machine/MachineTypeTable.tsx:217 msgid "Machine driver not found." msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:204 +#: src/tables/machine/MachineTypeTable.tsx:225 msgid "Machine driver information" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:224 +#: src/tables/machine/MachineTypeTable.tsx:245 msgid "Machine type" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:327 +#: src/tables/machine/MachineTypeTable.tsx:338 +#~ msgid "Machine type detail" +#~ msgstr "Machine type detail" + +#: src/tables/machine/MachineTypeTable.tsx:348 msgid "Builtin type" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:336 -msgid "Machine type detail" +#: src/tables/machine/MachineTypeTable.tsx:348 +#~ msgid "Machine driver detail" +#~ msgstr "Machine driver detail" + +#: src/tables/machine/MachineTypeTable.tsx:357 +msgid "Machine Type Detail" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:346 -msgid "Machine driver detail" +#: src/tables/machine/MachineTypeTable.tsx:367 +msgid "Machine Driver Detail" msgstr "" #: src/tables/notifications/NotificationsTable.tsx:26 msgid "Age" msgstr "" +#: src/tables/notifications/NotificationsTable.tsx:36 +msgid "Notification" +msgstr "" + #: src/tables/notifications/NotificationsTable.tsx:40 #: src/tables/plugin/PluginErrorTable.tsx:37 +#: src/tables/settings/ErrorTable.tsx:50 msgid "Message" msgstr "" @@ -6451,33 +7615,32 @@ msgstr "" msgid "Show assembly parts" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:68 +#: src/tables/part/PartCategoryTable.tsx:48 +msgid "You are subscribed to notifications for this category" +msgstr "" + +#: src/tables/part/PartCategoryTable.tsx:80 #: src/tables/part/PartTable.tsx:196 msgid "Include Subcategories" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:69 +#: src/tables/part/PartCategoryTable.tsx:81 msgid "Include subcategories in results" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:74 +#: src/tables/part/PartCategoryTable.tsx:86 msgid "Show structural categories" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:78 -#: src/tables/part/PartTable.tsx:294 -msgid "Subscribed" -msgstr "" - -#: src/tables/part/PartCategoryTable.tsx:79 +#: src/tables/part/PartCategoryTable.tsx:91 msgid "Show categories to which the user is subscribed" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:86 +#: src/tables/part/PartCategoryTable.tsx:100 msgid "New Part Category" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:112 +#: src/tables/part/PartCategoryTable.tsx:129 msgid "Add Part Category" msgstr "" @@ -6523,11 +7686,6 @@ msgstr "" msgid "Part parameters cannot be edited, as the part is locked" msgstr "" -#: src/tables/part/PartParameterTable.tsx:212 -#: src/tables/stock/StockItemTable.tsx:335 -msgid "Include Variants" -msgstr "" - #: src/tables/part/PartParameterTemplateTable.tsx:31 msgid "Checkbox" msgstr "" @@ -6554,6 +7712,7 @@ msgid "Show templates with units" msgstr "" #: src/tables/part/PartParameterTemplateTable.tsx:85 +#: src/tables/part/PartParameterTemplateTable.tsx:141 msgid "Add Parameter Template" msgstr "" @@ -6566,23 +7725,19 @@ msgid "Delete Parameter Template" msgstr "" #: src/tables/part/PartParameterTemplateTable.tsx:141 -msgid "Add parameter template" -msgstr "" +#~ msgid "Add parameter template" +#~ msgstr "Add parameter template" -#: src/tables/part/PartPurchaseOrdersTable.tsx:77 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:162 +#: src/tables/part/PartPurchaseOrdersTable.tsx:78 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:168 msgid "Total Quantity" msgstr "" -#: src/tables/part/PartPurchaseOrdersTable.tsx:115 -msgid "Pending" -msgstr "" - -#: src/tables/part/PartPurchaseOrdersTable.tsx:116 +#: src/tables/part/PartPurchaseOrdersTable.tsx:122 msgid "Show pending orders" msgstr "" -#: src/tables/part/PartPurchaseOrdersTable.tsx:121 +#: src/tables/part/PartPurchaseOrdersTable.tsx:127 msgid "Show received items" msgstr "" @@ -6728,22 +7883,13 @@ msgstr "" msgid "Results" msgstr "" -#: src/tables/part/PartTestTemplateTable.tsx:76 -msgid "No Results" -msgstr "" - -#: src/tables/part/PartTestTemplateTable.tsx:106 -#: src/tables/stock/StockItemTestResultTable.tsx:365 -msgid "Required" -msgstr "" - #: src/tables/part/PartTestTemplateTable.tsx:107 msgid "Show required tests" msgstr "" #: src/tables/part/PartTestTemplateTable.tsx:111 -#: src/tables/settings/TemplateTable.tsx:167 -#: src/tables/settings/TemplateTable.tsx:283 +#: src/tables/settings/TemplateTable.tsx:247 +#: src/tables/settings/TemplateTable.tsx:363 msgid "Enabled" msgstr "" @@ -6784,7 +7930,7 @@ msgid "Show tests which have recorded results" msgstr "" #: src/tables/part/PartTestTemplateTable.tsx:154 -#: src/tables/part/PartTestTemplateTable.tsx:237 +#: src/tables/part/PartTestTemplateTable.tsx:238 msgid "Add Test Template" msgstr "" @@ -6808,7 +7954,7 @@ msgstr "" msgid "View Parent Part" msgstr "" -#: src/tables/part/PartTestTemplateTable.tsx:257 +#: src/tables/part/PartTestTemplateTable.tsx:258 msgid "Part templates cannot be edited, as the part is locked" msgstr "" @@ -6836,28 +7982,49 @@ msgstr "" msgid "Show trackable variants" msgstr "" -#: src/tables/part/RelatedPartTable.tsx:84 +#: src/tables/part/RelatedPartTable.tsx:86 +#: src/tables/part/RelatedPartTable.tsx:109 msgid "Add Related Part" msgstr "" -#: src/tables/part/RelatedPartTable.tsx:99 +#: src/tables/part/RelatedPartTable.tsx:101 msgid "Delete Related Part" msgstr "" -#: src/tables/part/RelatedPartTable.tsx:106 -msgid "Add related part" -msgstr "" +#: src/tables/part/RelatedPartTable.tsx:109 +#~ msgid "Add related part" +#~ msgstr "Add related part" #: src/tables/plugin/PluginErrorTable.tsx:29 msgid "Stage" msgstr "" -#: src/tables/plugin/PluginListTable.tsx:95 -msgid "Plugin with key {pluginKey} not found" +#: src/tables/plugin/PluginListTable.tsx:42 +msgid "Plugin is active" msgstr "" +#: src/tables/plugin/PluginListTable.tsx:48 +msgid "Plugin is inactive" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:55 +msgid "Plugin is not installed" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:76 +msgid "Plugin" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:95 +#~ msgid "Plugin with key {pluginKey} not found" +#~ msgstr "Plugin with key {pluginKey} not found" + #: src/tables/plugin/PluginListTable.tsx:97 -msgid "An error occurred while fetching plugin details" +#~ msgid "An error occurred while fetching plugin details" +#~ msgstr "An error occurred while fetching plugin details" + +#: src/tables/plugin/PluginListTable.tsx:109 +msgid "Description not available" msgstr "" #: src/tables/plugin/PluginListTable.tsx:113 @@ -6865,12 +8032,8 @@ msgstr "" #~ msgstr "Plugin with id {id} not found" #: src/tables/plugin/PluginListTable.tsx:122 -msgid "Plugin information" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:134 -msgid "Author" -msgstr "" +#~ msgid "Plugin information" +#~ msgstr "Plugin information" #: src/tables/plugin/PluginListTable.tsx:134 #~ msgid "Plugin Actions" @@ -6881,79 +8044,124 @@ msgstr "" #~ msgid "Edit plugin" #~ msgstr "Edit plugin" +#: src/tables/plugin/PluginListTable.tsx:144 +msgid "Confirm plugin activation" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:145 +msgid "Confirm plugin deactivation" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:150 +msgid "The selected plugin will be activated" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:151 +msgid "The selected plugin will be deactivated" +msgstr "" + #: src/tables/plugin/PluginListTable.tsx:152 #: src/tables/plugin/PluginListTable.tsx:153 #~ msgid "Reload" #~ msgstr "Reload" -#: src/tables/plugin/PluginListTable.tsx:154 -msgid "Plugin is not active" -msgstr "" - #: src/tables/plugin/PluginListTable.tsx:163 -msgid "Package information" -msgstr "" +#~ msgid "Package information" +#~ msgstr "Package information" #: src/tables/plugin/PluginListTable.tsx:169 -msgid "Package Name" +msgid "Deactivate" msgstr "" -#: src/tables/plugin/PluginListTable.tsx:175 -msgid "Installation Path" +#: src/tables/plugin/PluginListTable.tsx:183 +msgid "Activate" msgstr "" -#: src/tables/plugin/PluginListTable.tsx:185 -msgid "Package" +#: src/tables/plugin/PluginListTable.tsx:184 +msgid "Activate selected plugin" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:196 +msgid "Update selected plugin" msgstr "" #: src/tables/plugin/PluginListTable.tsx:197 -msgid "Plugin settings" -msgstr "" +#~ msgid "Plugin settings" +#~ msgstr "Plugin settings" #: src/tables/plugin/PluginListTable.tsx:214 -msgid "Plugin is active" +#: src/tables/stock/InstalledItemsTable.tsx:107 +msgid "Uninstall" msgstr "" -#: src/tables/plugin/PluginListTable.tsx:220 -msgid "Plugin is inactive" +#: src/tables/plugin/PluginListTable.tsx:215 +msgid "Uninstall selected plugin" msgstr "" -#: src/tables/plugin/PluginListTable.tsx:227 -msgid "Plugin is not installed" +#: src/tables/plugin/PluginListTable.tsx:233 +msgid "Delete selected plugin configuration" msgstr "" -#: src/tables/plugin/PluginListTable.tsx:253 -msgid "Plugin" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:287 -msgid "Description not available" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:319 -msgid "Confirm plugin activation" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:320 -msgid "Confirm plugin deactivation" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:325 -msgid "The selected plugin will be activated" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:326 -msgid "The selected plugin will be deactivated" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:334 +#: src/tables/plugin/PluginListTable.tsx:249 msgid "Activate Plugin" msgstr "" +#: src/tables/plugin/PluginListTable.tsx:270 +msgid "Install plugin" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:283 +msgid "Install" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:284 +msgid "Plugin installed successfully" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:289 +msgid "Uninstall Plugin" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:301 +msgid "Confirm plugin uninstall" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:304 +msgid "The selected plugin will be uninstalled." +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:308 +#~ msgid "This action cannot be undone." +#~ msgstr "This action cannot be undone." + +#: src/tables/plugin/PluginListTable.tsx:309 +msgid "Plugin uninstalled successfully" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:317 +msgid "Delete Plugin" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:318 +msgid "Deleting this plugin configuration will remove all associated settings and data. Are you sure you want to delete this plugin?" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:331 +msgid "Plugins reloaded" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:332 +msgid "Plugins were reloaded successfully" +msgstr "" + #: src/tables/plugin/PluginListTable.tsx:338 #~ msgid "Deactivate Plugin" #~ msgstr "Deactivate Plugin" +#: src/tables/plugin/PluginListTable.tsx:350 +msgid "Reload Plugins" +msgstr "" + #: src/tables/plugin/PluginListTable.tsx:354 #~ msgid "The following plugin will be activated" #~ msgstr "The following plugin will be activated" @@ -6962,16 +8170,16 @@ msgstr "" #~ msgid "The following plugin will be deactivated" #~ msgstr "The following plugin will be deactivated" -#: src/tables/plugin/PluginListTable.tsx:362 -msgid "Deactivate" +#: src/tables/plugin/PluginListTable.tsx:357 +msgid "Install Plugin" msgstr "" #: src/tables/plugin/PluginListTable.tsx:366 #~ msgid "Confirm" #~ msgstr "Confirm" -#: src/tables/plugin/PluginListTable.tsx:373 -msgid "Activate" +#: src/tables/plugin/PluginListTable.tsx:374 +msgid "Plugin Detail" msgstr "" #: src/tables/plugin/PluginListTable.tsx:376 @@ -6998,76 +8206,12 @@ msgstr "" #~ msgid "Error updating plugin" #~ msgstr "Error updating plugin" -#: src/tables/plugin/PluginListTable.tsx:406 -msgid "Uninstall" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:438 -msgid "Install plugin" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:451 -msgid "Install" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:452 -msgid "Plugin installed successfully" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:457 -msgid "Uninstall Plugin" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:469 -msgid "Confirm plugin uninstall" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:472 -msgid "The selected plugin will be uninstalled." -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:473 -msgid "This action cannot be undone." -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:477 -msgid "Plugin uninstalled successfully" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:484 -msgid "Delete Plugin" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:485 -msgid "Deleting this plugin configuration will remove all associated settings and data. Are you sure you want to delete this plugin?" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:498 -msgid "Plugins reloaded" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:499 -msgid "Plugins were reloaded successfully" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:515 -msgid "Reload Plugins" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:524 -msgid "Install Plugin" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:544 -msgid "Plugin Detail" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:573 +#: src/tables/plugin/PluginListTable.tsx:411 msgid "Sample" msgstr "" -#: src/tables/plugin/PluginListTable.tsx:578 -#: src/tables/stock/StockItemTable.tsx:340 +#: src/tables/plugin/PluginListTable.tsx:416 +#: src/tables/stock/StockItemTable.tsx:344 msgid "Installed" msgstr "" @@ -7116,82 +8260,78 @@ msgstr "" #~ msgid "Are you sure you want to remove this manufacturer part?" #~ msgstr "Are you sure you want to remove this manufacturer part?" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:102 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:339 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:103 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:356 msgid "Import Line Items" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:135 -msgid "Part Description" -msgstr "" - -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:201 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:207 msgid "Supplier Code" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:208 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:214 msgid "Supplier Link" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:215 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:220 msgid "Manufacturer Code" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:229 -msgid "Destination" +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:248 +msgid "Show line items which have been received" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:300 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:316 msgid "Receive line item" msgstr "" #: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:344 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:142 -#: src/tables/sales/SalesOrderLineItemTable.tsx:240 -msgid "Add line item" -msgstr "" +#: src/tables/sales/ReturnOrderLineItemTable.tsx:160 +#: src/tables/sales/SalesOrderLineItemTable.tsx:258 +#~ msgid "Add line item" +#~ msgstr "Add line item" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:354 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:373 msgid "Receive items" msgstr "" -#: src/tables/purchasing/SupplierPartTable.tsx:93 +#: src/tables/purchasing/SupplierPartTable.tsx:95 msgid "MPN" msgstr "" -#: src/tables/purchasing/SupplierPartTable.tsx:122 +#: src/tables/purchasing/SupplierPartTable.tsx:124 msgid "Base units" msgstr "" -#: src/tables/purchasing/SupplierPartTable.tsx:170 +#: src/tables/purchasing/SupplierPartTable.tsx:172 msgid "Supplier part created" msgstr "" -#: src/tables/purchasing/SupplierPartTable.tsx:176 +#: src/tables/purchasing/SupplierPartTable.tsx:179 msgid "Add supplier part" msgstr "" -#: src/tables/purchasing/SupplierPartTable.tsx:188 +#: src/tables/purchasing/SupplierPartTable.tsx:191 msgid "Show active supplier parts" msgstr "" -#: src/tables/purchasing/SupplierPartTable.tsx:192 -msgid "Active Part" -msgstr "" - -#: src/tables/purchasing/SupplierPartTable.tsx:193 -msgid "Show active internal parts" -msgstr "" - #: src/tables/purchasing/SupplierPartTable.tsx:193 #~ msgid "Supplier part updated" #~ msgstr "Supplier part updated" -#: src/tables/purchasing/SupplierPartTable.tsx:197 +#: src/tables/purchasing/SupplierPartTable.tsx:195 +msgid "Active Part" +msgstr "" + +#: src/tables/purchasing/SupplierPartTable.tsx:196 +msgid "Show active internal parts" +msgstr "" + +#: src/tables/purchasing/SupplierPartTable.tsx:200 msgid "Active Supplier" msgstr "" -#: src/tables/purchasing/SupplierPartTable.tsx:198 +#: src/tables/purchasing/SupplierPartTable.tsx:201 msgid "Show active suppliers" msgstr "" @@ -7203,99 +8343,187 @@ msgstr "" #~ msgid "Are you sure you want to remove this supplier part?" #~ msgstr "Are you sure you want to remove this supplier part?" -#: src/tables/sales/ReturnOrderLineItemTable.tsx:114 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:139 msgid "Received Date" msgstr "" -#: src/tables/sales/ReturnOrderLineItemTable.tsx:128 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:153 msgid "Show items which have been received" msgstr "" -#: src/tables/sales/ReturnOrderLineItemTable.tsx:133 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:158 msgid "Filter by line item status" msgstr "" -#: src/tables/sales/ReturnOrderLineItemTable.tsx:158 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:176 +msgid "Receive selected items" +msgstr "" + +#: src/tables/sales/ReturnOrderLineItemTable.tsx:205 msgid "Receive Item" msgstr "" -#: src/tables/sales/SalesOrderLineItemTable.tsx:262 -msgid "Allocate stock" +#: src/tables/sales/SalesOrderAllocationTable.tsx:60 +msgid "Show outstanding allocations" msgstr "" -#: src/tables/sales/SalesOrderLineItemTable.tsx:272 +#: src/tables/sales/SalesOrderAllocationTable.tsx:168 +#: src/tables/sales/SalesOrderAllocationTable.tsx:190 +msgid "Edit Allocation" +msgstr "" + +#: src/tables/sales/SalesOrderAllocationTable.tsx:175 +#: src/tables/sales/SalesOrderAllocationTable.tsx:197 +msgid "Delete Allocation" +msgstr "" + +#: src/tables/sales/SalesOrderLineItemTable.tsx:244 +msgid "Allocate Serial Numbers" +msgstr "" + +#: src/tables/sales/SalesOrderLineItemTable.tsx:277 +msgid "Show lines which are fully allocated" +msgstr "" + +#: src/tables/sales/SalesOrderLineItemTable.tsx:280 +#~ msgid "Allocate stock" +#~ msgstr "Allocate stock" + +#: src/tables/sales/SalesOrderLineItemTable.tsx:282 +msgid "Show lines which are completed" +msgstr "" + +#: src/tables/sales/SalesOrderLineItemTable.tsx:291 +#~ msgid "Allocate Serials" +#~ msgstr "Allocate Serials" + +#: src/tables/sales/SalesOrderLineItemTable.tsx:340 +msgid "Allocate serials" +msgstr "" + +#: src/tables/sales/SalesOrderLineItemTable.tsx:356 msgid "Build stock" msgstr "" -#: src/tables/sales/SalesOrderLineItemTable.tsx:289 -#: src/tables/stock/StockItemTable.tsx:507 +#: src/tables/sales/SalesOrderLineItemTable.tsx:373 +#: src/tables/stock/StockItemTable.tsx:512 msgid "Order stock" msgstr "" -#: src/tables/sales/SalesOrderShipmentTable.tsx:40 +#: src/tables/sales/SalesOrderShipmentTable.tsx:51 +#~ msgid "Delete Shipment" +#~ msgstr "Delete Shipment" + +#: src/tables/sales/SalesOrderShipmentTable.tsx:57 msgid "Create Shipment" msgstr "" -#: src/tables/sales/SalesOrderShipmentTable.tsx:50 -msgid "Delete Shipment" -msgstr "" - -#: src/tables/sales/SalesOrderShipmentTable.tsx:58 -msgid "Edit Shipment" -msgstr "" - -#: src/tables/sales/SalesOrderShipmentTable.tsx:66 -msgid "Shipment Reference" -msgstr "" - -#: src/tables/sales/SalesOrderShipmentTable.tsx:71 +#: src/tables/sales/SalesOrderShipmentTable.tsx:104 msgid "Items" msgstr "" -#: src/tables/sales/SalesOrderShipmentTable.tsx:83 -msgid "Delivery Date" +#: src/tables/sales/SalesOrderShipmentTable.tsx:139 +msgid "View Shipment" msgstr "" -#: src/tables/sales/SalesOrderShipmentTable.tsx:107 -msgid "Complete Shipment" +#: src/tables/sales/SalesOrderShipmentTable.tsx:161 +msgid "Edit shipment" msgstr "" -#: src/tables/sales/SalesOrderShipmentTable.tsx:133 +#: src/tables/sales/SalesOrderShipmentTable.tsx:169 +msgid "Cancel shipment" +msgstr "" + +#: src/tables/sales/SalesOrderShipmentTable.tsx:184 msgid "Add shipment" msgstr "" -#: src/tables/sales/SalesOrderShipmentTable.tsx:146 -msgid "Shipped" -msgstr "" - -#: src/tables/sales/SalesOrderShipmentTable.tsx:147 +#: src/tables/sales/SalesOrderShipmentTable.tsx:198 msgid "Show shipments which have been shipped" msgstr "" -#: src/tables/sales/SalesOrderShipmentTable.tsx:151 -msgid "Delivered" -msgstr "" - -#: src/tables/sales/SalesOrderShipmentTable.tsx:152 +#: src/tables/sales/SalesOrderShipmentTable.tsx:203 msgid "Show shipments which have been delivered" msgstr "" -#: src/tables/settings/CurrencyTable.tsx:28 -msgid "Rate" +#: src/tables/settings/BarcodeScanHistoryTable.tsx:61 +msgid "Barcode Information" msgstr "" -#: src/tables/settings/CurrencyTable.tsx:40 -msgid "Exchange rates updated" +#: src/tables/settings/BarcodeScanHistoryTable.tsx:76 +#: src/tables/settings/ErrorTable.tsx:59 +msgid "Timestamp" msgstr "" -#: src/tables/settings/CurrencyTable.tsx:46 -msgid "Exchange rate update error" +#: src/tables/settings/BarcodeScanHistoryTable.tsx:86 +msgid "Endpoint" msgstr "" -#: src/tables/settings/CurrencyTable.tsx:57 -msgid "Refresh currency exchange rates" +#: src/tables/settings/BarcodeScanHistoryTable.tsx:90 +#: src/tables/settings/BarcodeScanHistoryTable.tsx:217 +#: src/tables/stock/StockItemTestResultTable.tsx:174 +msgid "Result" msgstr "" +#: src/tables/settings/BarcodeScanHistoryTable.tsx:98 +msgid "Context" +msgstr "" + +#: src/tables/settings/BarcodeScanHistoryTable.tsx:119 +msgid "Response" +msgstr "" + +#: src/tables/settings/BarcodeScanHistoryTable.tsx:213 +#: src/tables/settings/ImportSessionTable.tsx:121 +#: src/tables/stock/StockTrackingTable.tsx:183 +msgid "Filter by user" +msgstr "" + +#: src/tables/settings/BarcodeScanHistoryTable.tsx:218 +msgid "Filter by result" +msgstr "" + +#: src/tables/settings/BarcodeScanHistoryTable.tsx:232 +msgid "Delete Barcode Scan Record" +msgstr "" + +#: src/tables/settings/BarcodeScanHistoryTable.tsx:258 +msgid "Barcode Scan Details" +msgstr "" + +#: src/tables/settings/BarcodeScanHistoryTable.tsx:268 +msgid "Logging Disabled" +msgstr "" + +#: src/tables/settings/BarcodeScanHistoryTable.tsx:270 +msgid "Barcode logging is not enabled" +msgstr "" + +#: src/tables/settings/CustomStateTable.tsx:36 +msgid "Display Name" +msgstr "" + +#: src/tables/settings/CustomStateTable.tsx:52 +msgid "Model" +msgstr "" + +#: src/tables/settings/CustomStateTable.tsx:65 +#: src/tables/settings/CustomStateTable.tsx:115 +msgid "Add State" +msgstr "" + +#: src/tables/settings/CustomStateTable.tsx:77 +msgid "Edit State" +msgstr "" + +#: src/tables/settings/CustomStateTable.tsx:85 +msgid "Delete State" +msgstr "" + +#: src/tables/settings/CustomStateTable.tsx:115 +#~ msgid "Add state" +#~ msgstr "Add state" + #: src/tables/settings/CustomUnitsTable.tsx:50 msgid "Add Custom Unit" msgstr "" @@ -7312,59 +8540,71 @@ msgstr "" msgid "Add custom unit" msgstr "" -#: src/tables/settings/ErrorTable.tsx:31 -msgid "When" -msgstr "" - -#: src/tables/settings/ErrorTable.tsx:41 -msgid "Error Information" -msgstr "" - #: src/tables/settings/ErrorTable.tsx:51 #~ msgid "Delete error report" #~ msgstr "Delete error report" -#: src/tables/settings/ErrorTable.tsx:53 +#: src/tables/settings/ErrorTable.tsx:67 +msgid "Traceback" +msgstr "" + +#: src/tables/settings/ErrorTable.tsx:103 +msgid "When" +msgstr "" + +#: src/tables/settings/ErrorTable.tsx:113 +msgid "Error Information" +msgstr "" + +#: src/tables/settings/ErrorTable.tsx:123 msgid "Delete Error Report" msgstr "" -#: src/tables/settings/ErrorTable.tsx:55 +#: src/tables/settings/ErrorTable.tsx:125 msgid "Are you sure you want to delete this error report?" msgstr "" -#: src/tables/settings/ErrorTable.tsx:57 +#: src/tables/settings/ErrorTable.tsx:127 msgid "Error report deleted" msgstr "" -#: src/tables/settings/ErrorTable.tsx:79 -#: src/tables/settings/FailedTasksTable.tsx:59 +#: src/tables/settings/ErrorTable.tsx:146 +#: src/tables/settings/FailedTasksTable.tsx:65 msgid "Error Details" msgstr "" -#: src/tables/settings/FailedTasksTable.tsx:26 -#: src/tables/settings/PendingTasksTable.tsx:19 +#: src/tables/settings/FailedTasksTable.tsx:32 +#: src/tables/settings/PendingTasksTable.tsx:23 #: src/tables/settings/ScheduledTasksTable.tsx:19 msgid "Task" msgstr "" -#: src/tables/settings/FailedTasksTable.tsx:32 -#: src/tables/settings/PendingTasksTable.tsx:24 +#: src/tables/settings/FailedTasksTable.tsx:38 +#: src/tables/settings/PendingTasksTable.tsx:28 msgid "Task ID" msgstr "" -#: src/tables/settings/FailedTasksTable.tsx:36 -#: src/tables/stock/StockItemTestResultTable.tsx:211 +#: src/tables/settings/FailedTasksTable.tsx:42 +#: src/tables/stock/StockItemTestResultTable.tsx:218 msgid "Started" msgstr "" -#: src/tables/settings/FailedTasksTable.tsx:42 +#: src/tables/settings/FailedTasksTable.tsx:48 msgid "Stopped" msgstr "" -#: src/tables/settings/FailedTasksTable.tsx:48 +#: src/tables/settings/FailedTasksTable.tsx:54 msgid "Attempts" msgstr "" +#: src/tables/settings/FailedTasksTable.tsx:92 +msgid "No Information" +msgstr "" + +#: src/tables/settings/FailedTasksTable.tsx:93 +msgid "No error details are available for this task" +msgstr "" + #: src/tables/settings/GroupTable.tsx:90 msgid "Group with id {id} not found" msgstr "" @@ -7398,42 +8638,34 @@ msgstr "" msgid "Edit group" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:38 +#: src/tables/settings/ImportSessionTable.tsx:37 msgid "Delete Import Session" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:44 +#: src/tables/settings/ImportSessionTable.tsx:43 #: src/tables/settings/ImportSessionTable.tsx:131 msgid "Create Import Session" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:69 +#: src/tables/settings/ImportSessionTable.tsx:68 msgid "Uploaded" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:79 -msgid "Imported Rows" -msgstr "" - -#: src/tables/settings/ImportSessionTable.tsx:109 -#: src/tables/settings/TemplateTable.tsx:289 +#: src/tables/settings/ImportSessionTable.tsx:108 +#: src/tables/settings/TemplateTable.tsx:369 msgid "Model Type" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:110 -#: src/tables/settings/TemplateTable.tsx:290 +#: src/tables/settings/ImportSessionTable.tsx:109 +#: src/tables/settings/TemplateTable.tsx:370 msgid "Filter by target model type" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:116 +#: src/tables/settings/ImportSessionTable.tsx:115 msgid "Filter by import session status" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:122 -msgid "Filter by user" -msgstr "" - -#: src/tables/settings/PendingTasksTable.tsx:38 +#: src/tables/settings/PendingTasksTable.tsx:42 msgid "Arguments" msgstr "" @@ -7461,12 +8693,16 @@ msgstr "" msgid "Next Run" msgstr "" -#: src/tables/settings/TemplateTable.tsx:85 -msgid "Template not found" +#: src/tables/settings/StocktakeReportTable.tsx:28 +msgid "Report" msgstr "" -#: src/tables/settings/TemplateTable.tsx:87 -msgid "An error occurred while fetching template details" +#: src/tables/settings/StocktakeReportTable.tsx:35 +msgid "Part Count" +msgstr "" + +#: src/tables/settings/StocktakeReportTable.tsx:58 +msgid "Delete Report" msgstr "" #: src/tables/settings/TemplateTable.tsx:120 @@ -7481,21 +8717,12 @@ msgstr "" #~ msgid "actions" #~ msgstr "actions" -#: src/tables/settings/TemplateTable.tsx:177 -msgid "Modify" +#: src/tables/settings/TemplateTable.tsx:162 +msgid "Template not found" msgstr "" -#: src/tables/settings/TemplateTable.tsx:178 -msgid "Modify template file" -msgstr "" - -#: src/tables/settings/TemplateTable.tsx:234 -#: src/tables/settings/TemplateTable.tsx:302 -msgid "Edit Template" -msgstr "" - -#: src/tables/settings/TemplateTable.tsx:242 -msgid "Delete template" +#: src/tables/settings/TemplateTable.tsx:164 +msgid "An error occurred while fetching template details" msgstr "" #: src/tables/settings/TemplateTable.tsx:243 @@ -7506,103 +8733,137 @@ msgstr "" #~ msgid "Create new" #~ msgstr "Create new" -#: src/tables/settings/TemplateTable.tsx:248 +#: src/tables/settings/TemplateTable.tsx:257 +msgid "Modify" +msgstr "" + +#: src/tables/settings/TemplateTable.tsx:258 +msgid "Modify template file" +msgstr "" + +#: src/tables/settings/TemplateTable.tsx:314 +#: src/tables/settings/TemplateTable.tsx:382 +msgid "Edit Template" +msgstr "" + +#: src/tables/settings/TemplateTable.tsx:322 +msgid "Delete template" +msgstr "" + +#: src/tables/settings/TemplateTable.tsx:328 msgid "Add Template" msgstr "" -#: src/tables/settings/TemplateTable.tsx:261 +#: src/tables/settings/TemplateTable.tsx:341 msgid "Add template" msgstr "" -#: src/tables/settings/TemplateTable.tsx:284 +#: src/tables/settings/TemplateTable.tsx:364 msgid "Filter by enabled status" msgstr "" -#: src/tables/settings/UserTable.tsx:82 +#: src/tables/settings/UserTable.tsx:81 msgid "User with id {id} not found" msgstr "" -#: src/tables/settings/UserTable.tsx:84 +#: src/tables/settings/UserTable.tsx:83 msgid "An error occurred while fetching user details" msgstr "" -#: src/tables/settings/UserTable.tsx:102 +#: src/tables/settings/UserTable.tsx:101 msgid "Is Active" msgstr "" -#: src/tables/settings/UserTable.tsx:103 +#: src/tables/settings/UserTable.tsx:102 msgid "Designates whether this user should be treated as active. Unselect this instead of deleting accounts." msgstr "" -#: src/tables/settings/UserTable.tsx:107 +#: src/tables/settings/UserTable.tsx:106 msgid "Is Staff" msgstr "" -#: src/tables/settings/UserTable.tsx:108 +#: src/tables/settings/UserTable.tsx:107 msgid "Designates whether the user can log into the django admin site." msgstr "" -#: src/tables/settings/UserTable.tsx:112 +#: src/tables/settings/UserTable.tsx:111 msgid "Is Superuser" msgstr "" -#: src/tables/settings/UserTable.tsx:113 +#: src/tables/settings/UserTable.tsx:112 msgid "Designates that this user has all permissions without explicitly assigning them." msgstr "" -#: src/tables/settings/UserTable.tsx:123 +#: src/tables/settings/UserTable.tsx:122 msgid "You cannot edit the rights for the currently logged-in user." msgstr "" -#: src/tables/settings/UserTable.tsx:154 +#: src/tables/settings/UserTable.tsx:153 msgid "No groups" msgstr "" -#: src/tables/settings/UserTable.tsx:245 +#: src/tables/settings/UserTable.tsx:244 msgid "Delete user" msgstr "" -#: src/tables/settings/UserTable.tsx:246 +#: src/tables/settings/UserTable.tsx:245 msgid "User deleted" msgstr "" -#: src/tables/settings/UserTable.tsx:248 +#: src/tables/settings/UserTable.tsx:247 msgid "Are you sure you want to delete this user?" msgstr "" -#: src/tables/settings/UserTable.tsx:254 -#: src/tables/settings/UserTable.tsx:272 +#: src/tables/settings/UserTable.tsx:253 +#: src/tables/settings/UserTable.tsx:271 msgid "Add user" msgstr "" -#: src/tables/settings/UserTable.tsx:262 +#: src/tables/settings/UserTable.tsx:261 msgid "Added user" msgstr "" -#: src/tables/settings/UserTable.tsx:285 +#: src/tables/settings/UserTable.tsx:284 msgid "Show active users" msgstr "" -#: src/tables/settings/UserTable.tsx:289 +#: src/tables/settings/UserTable.tsx:288 msgid "Staff" msgstr "" -#: src/tables/settings/UserTable.tsx:290 +#: src/tables/settings/UserTable.tsx:289 msgid "Show staff users" msgstr "" #: src/tables/settings/UserTable.tsx:294 -msgid "Superuser" -msgstr "" - -#: src/tables/settings/UserTable.tsx:295 msgid "Show superusers" msgstr "" -#: src/tables/settings/UserTable.tsx:305 +#: src/tables/settings/UserTable.tsx:304 msgid "Edit user" msgstr "" +#: src/tables/stock/InstalledItemsTable.tsx:37 +#: src/tables/stock/InstalledItemsTable.tsx:90 +msgid "Install Item" +msgstr "" + +#: src/tables/stock/InstalledItemsTable.tsx:39 +msgid "Item installed" +msgstr "" + +#: src/tables/stock/InstalledItemsTable.tsx:50 +msgid "Uninstall Item" +msgstr "" + +#: src/tables/stock/InstalledItemsTable.tsx:52 +msgid "Item uninstalled" +msgstr "" + +#: src/tables/stock/InstalledItemsTable.tsx:108 +msgid "Uninstall stock item" +msgstr "" + #: src/tables/stock/LocationTypesTable.tsx:39 #: src/tables/stock/LocationTypesTable.tsx:109 msgid "Add Location Type" @@ -7620,276 +8881,272 @@ msgstr "" msgid "Icon" msgstr "" -#: src/tables/stock/StockItemTable.tsx:101 +#: src/tables/stock/StockItemTable.tsx:90 msgid "This stock item is in production" msgstr "" -#: src/tables/stock/StockItemTable.tsx:110 +#: src/tables/stock/StockItemTable.tsx:97 msgid "This stock item has been assigned to a sales order" msgstr "" -#: src/tables/stock/StockItemTable.tsx:119 +#: src/tables/stock/StockItemTable.tsx:104 msgid "This stock item has been assigned to a customer" msgstr "" -#: src/tables/stock/StockItemTable.tsx:128 +#: src/tables/stock/StockItemTable.tsx:111 msgid "This stock item is installed in another stock item" msgstr "" -#: src/tables/stock/StockItemTable.tsx:137 +#: src/tables/stock/StockItemTable.tsx:118 msgid "This stock item has been consumed by a build order" msgstr "" -#: src/tables/stock/StockItemTable.tsx:146 +#: src/tables/stock/StockItemTable.tsx:125 +msgid "This stock item is unavailable" +msgstr "" + +#: src/tables/stock/StockItemTable.tsx:134 msgid "This stock item has expired" msgstr "" -#: src/tables/stock/StockItemTable.tsx:150 +#: src/tables/stock/StockItemTable.tsx:138 msgid "This stock item is stale" msgstr "" -#: src/tables/stock/StockItemTable.tsx:161 +#: src/tables/stock/StockItemTable.tsx:150 msgid "This stock item is fully allocated" msgstr "" -#: src/tables/stock/StockItemTable.tsx:168 +#: src/tables/stock/StockItemTable.tsx:157 msgid "This stock item is partially allocated" msgstr "" -#: src/tables/stock/StockItemTable.tsx:196 +#: src/tables/stock/StockItemTable.tsx:185 msgid "This stock item has been depleted" msgstr "" -#: src/tables/stock/StockItemTable.tsx:232 +#: src/tables/stock/StockItemTable.tsx:280 msgid "Stocktake Date" msgstr "" -#: src/tables/stock/StockItemTable.tsx:236 -msgid "Expiry Date" -msgstr "" - -#: src/tables/stock/StockItemTable.tsx:260 -msgid "Stock Value" -msgstr "" - -#: src/tables/stock/StockItemTable.tsx:290 +#: src/tables/stock/StockItemTable.tsx:294 msgid "Show stock for active parts" msgstr "" -#: src/tables/stock/StockItemTable.tsx:295 +#: src/tables/stock/StockItemTable.tsx:299 msgid "Filter by stock status" msgstr "" #: src/tables/stock/StockItemTable.tsx:301 -msgid "Show stock for assmebled parts" +#~ msgid "Show stock for assmebled parts" +#~ msgstr "Show stock for assmebled parts" + +#: src/tables/stock/StockItemTable.tsx:305 +msgid "Show stock for assembled parts" msgstr "" -#: src/tables/stock/StockItemTable.tsx:306 +#: src/tables/stock/StockItemTable.tsx:310 msgid "Show items which have been allocated" msgstr "" -#: src/tables/stock/StockItemTable.tsx:311 +#: src/tables/stock/StockItemTable.tsx:315 msgid "Show items which are available" msgstr "" -#: src/tables/stock/StockItemTable.tsx:315 +#: src/tables/stock/StockItemTable.tsx:319 #: src/tables/stock/StockLocationTable.tsx:44 msgid "Include Sublocations" msgstr "" -#: src/tables/stock/StockItemTable.tsx:316 +#: src/tables/stock/StockItemTable.tsx:320 msgid "Include stock in sublocations" msgstr "" -#: src/tables/stock/StockItemTable.tsx:320 +#: src/tables/stock/StockItemTable.tsx:324 msgid "Depleted" msgstr "" -#: src/tables/stock/StockItemTable.tsx:321 +#: src/tables/stock/StockItemTable.tsx:325 msgid "Show depleted stock items" msgstr "" -#: src/tables/stock/StockItemTable.tsx:326 +#: src/tables/stock/StockItemTable.tsx:330 msgid "Show items which are in stock" msgstr "" -#: src/tables/stock/StockItemTable.tsx:331 +#: src/tables/stock/StockItemTable.tsx:335 msgid "Show items which are in production" msgstr "" -#: src/tables/stock/StockItemTable.tsx:336 +#: src/tables/stock/StockItemTable.tsx:340 msgid "Include stock items for variant parts" msgstr "" -#: src/tables/stock/StockItemTable.tsx:341 +#: src/tables/stock/StockItemTable.tsx:345 msgid "Show stock items which are installed in other items" msgstr "" -#: src/tables/stock/StockItemTable.tsx:345 +#: src/tables/stock/StockItemTable.tsx:349 msgid "Sent to Customer" msgstr "" -#: src/tables/stock/StockItemTable.tsx:346 +#: src/tables/stock/StockItemTable.tsx:350 msgid "Show items which have been sent to a customer" msgstr "" -#: src/tables/stock/StockItemTable.tsx:350 +#: src/tables/stock/StockItemTable.tsx:354 msgid "Is Serialized" msgstr "" -#: src/tables/stock/StockItemTable.tsx:351 +#: src/tables/stock/StockItemTable.tsx:355 msgid "Show items which have a serial number" msgstr "" -#: src/tables/stock/StockItemTable.tsx:358 +#: src/tables/stock/StockItemTable.tsx:362 msgid "Has Batch Code" msgstr "" -#: src/tables/stock/StockItemTable.tsx:359 +#: src/tables/stock/StockItemTable.tsx:363 msgid "Show items which have a batch code" msgstr "" -#: src/tables/stock/StockItemTable.tsx:365 +#: src/tables/stock/StockItemTable.tsx:369 msgid "Show tracked items" msgstr "" -#: src/tables/stock/StockItemTable.tsx:369 +#: src/tables/stock/StockItemTable.tsx:373 msgid "Has Purchase Price" msgstr "" -#: src/tables/stock/StockItemTable.tsx:370 +#: src/tables/stock/StockItemTable.tsx:374 msgid "Show items which have a purchase price" msgstr "" -#: src/tables/stock/StockItemTable.tsx:378 +#: src/tables/stock/StockItemTable.tsx:382 msgid "External Location" msgstr "" -#: src/tables/stock/StockItemTable.tsx:379 +#: src/tables/stock/StockItemTable.tsx:383 msgid "Show items in an external location" msgstr "" -#: src/tables/stock/StockItemTable.tsx:451 +#: src/tables/stock/StockItemTable.tsx:456 msgid "Add a new stock item" msgstr "" -#: src/tables/stock/StockItemTable.tsx:460 +#: src/tables/stock/StockItemTable.tsx:465 msgid "Remove some quantity from a stock item" msgstr "" -#: src/tables/stock/StockItemTable.tsx:482 +#: src/tables/stock/StockItemTable.tsx:487 msgid "Move Stock items to new locations" msgstr "" -#: src/tables/stock/StockItemTable.tsx:489 +#: src/tables/stock/StockItemTable.tsx:494 msgid "Change stock status" msgstr "" -#: src/tables/stock/StockItemTable.tsx:491 +#: src/tables/stock/StockItemTable.tsx:496 msgid "Change the status of stock items" msgstr "" -#: src/tables/stock/StockItemTable.tsx:498 +#: src/tables/stock/StockItemTable.tsx:503 msgid "Merge stock" msgstr "" -#: src/tables/stock/StockItemTable.tsx:500 +#: src/tables/stock/StockItemTable.tsx:505 msgid "Merge stock items" msgstr "" -#: src/tables/stock/StockItemTable.tsx:509 -#: src/tables/stock/StockItemTable.tsx:516 +#: src/tables/stock/StockItemTable.tsx:514 +#: src/tables/stock/StockItemTable.tsx:521 msgid "Order new stock" msgstr "" -#: src/tables/stock/StockItemTable.tsx:514 +#: src/tables/stock/StockItemTable.tsx:519 msgid "Assign to customer" msgstr "" -#: src/tables/stock/StockItemTable.tsx:523 +#: src/tables/stock/StockItemTable.tsx:528 msgid "Delete stock" msgstr "" -#: src/tables/stock/StockItemTable.tsx:525 -msgid "Delete stock items" -msgstr "" +#: src/tables/stock/StockItemTable.tsx:528 +#~ msgid "Delete stock items" +#~ msgstr "Delete stock items" -#: src/tables/stock/StockItemTestResultTable.tsx:131 +#: src/tables/stock/StockItemTestResultTable.tsx:137 msgid "Test" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:157 +#: src/tables/stock/StockItemTestResultTable.tsx:163 msgid "Test result for installed stock item" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:168 -msgid "Result" -msgstr "" - -#: src/tables/stock/StockItemTestResultTable.tsx:190 +#: src/tables/stock/StockItemTestResultTable.tsx:196 msgid "Attachment" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:206 +#: src/tables/stock/StockItemTestResultTable.tsx:212 msgid "Test station" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:226 +#: src/tables/stock/StockItemTestResultTable.tsx:234 msgid "Finished" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:268 -#: src/tables/stock/StockItemTestResultTable.tsx:339 +#: src/tables/stock/StockItemTestResultTable.tsx:286 +#: src/tables/stock/StockItemTestResultTable.tsx:357 msgid "Edit Test Result" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:270 +#: src/tables/stock/StockItemTestResultTable.tsx:288 msgid "Test result updated" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:276 -#: src/tables/stock/StockItemTestResultTable.tsx:348 +#: src/tables/stock/StockItemTestResultTable.tsx:294 +#: src/tables/stock/StockItemTestResultTable.tsx:366 msgid "Delete Test Result" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:278 +#: src/tables/stock/StockItemTestResultTable.tsx:296 msgid "Test result deleted" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:292 +#: src/tables/stock/StockItemTestResultTable.tsx:310 msgid "Test Passed" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:293 +#: src/tables/stock/StockItemTestResultTable.tsx:311 msgid "Test result has been recorded" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:300 +#: src/tables/stock/StockItemTestResultTable.tsx:318 msgid "Failed to record test result" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:317 +#: src/tables/stock/StockItemTestResultTable.tsx:335 msgid "Pass Test" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:366 +#: src/tables/stock/StockItemTestResultTable.tsx:384 msgid "Show results for required tests" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:370 +#: src/tables/stock/StockItemTestResultTable.tsx:388 msgid "Include Installed" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:371 +#: src/tables/stock/StockItemTestResultTable.tsx:389 msgid "Show results for installed stock items" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:375 -#: src/tables/stock/TestStatisticsTable.tsx:74 +#: src/tables/stock/StockItemTestResultTable.tsx:393 +#: src/tables/stock/TestStatisticsTable.tsx:62 msgid "Passed" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:376 +#: src/tables/stock/StockItemTestResultTable.tsx:394 msgid "Show only passed tests" msgstr "" @@ -7922,28 +9179,32 @@ msgid "Filter by location type" msgstr "" #: src/tables/stock/StockLocationTable.tsx:107 -#: src/tables/stock/StockLocationTable.tsx:133 +#: src/tables/stock/StockLocationTable.tsx:134 msgid "Add Stock Location" msgstr "" -#: src/tables/stock/StockTrackingTable.tsx:64 +#: src/tables/stock/StockTrackingTable.tsx:68 msgid "Added" msgstr "" -#: src/tables/stock/StockTrackingTable.tsx:69 +#: src/tables/stock/StockTrackingTable.tsx:73 msgid "Removed" msgstr "" #: src/tables/stock/StockTrackingTable.tsx:198 +msgid "Details" +msgstr "" + +#: src/tables/stock/StockTrackingTable.tsx:213 msgid "No user information" msgstr "" -#: src/tables/stock/TestStatisticsTable.tsx:46 -#: src/tables/stock/TestStatisticsTable.tsx:76 +#: src/tables/stock/TestStatisticsTable.tsx:34 +#: src/tables/stock/TestStatisticsTable.tsx:64 msgid "Total" msgstr "" -#: src/tables/stock/TestStatisticsTable.tsx:75 +#: src/tables/stock/TestStatisticsTable.tsx:63 msgid "Failed" msgstr "" diff --git a/src/frontend/src/locales/hu/messages.po b/src/frontend/src/locales/hu/messages.po index 74d4846e02..d477d3e7f7 100644 --- a/src/frontend/src/locales/hu/messages.po +++ b/src/frontend/src/locales/hu/messages.po @@ -8,15 +8,15 @@ msgstr "" "Language: hu\n" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"PO-Revision-Date: 2024-08-20 19:50\n" +"PO-Revision-Date: 2024-11-04 03:14\n" "Last-Translator: \n" "Language-Team: Hungarian\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Crowdin-Project: inventree\n" "X-Crowdin-Project-ID: 452300\n" "X-Crowdin-Language: hu\n" -"X-Crowdin-File: /[inventree.InvenTree] l10/src/frontend/src/locales/en/messages.po\n" -"X-Crowdin-File-ID: 205\n" +"X-Crowdin-File: /src/frontend/src/locales/en/messages.po\n" +"X-Crowdin-File-ID: 252\n" #: src/components/Boundary.tsx:12 msgid "Error rendering component" @@ -27,8 +27,8 @@ msgid "An error occurred while rendering this component. Refer to the console fo msgstr "Hiba történt ennek a komponensnek a renderelése közben. Nézze a konzolt további információkért." #: src/components/DashboardItemProxy.tsx:34 -msgid "Title" -msgstr "Cím" +#~ msgid "Title" +#~ msgstr "Title" #: src/components/buttons/AdminButton.tsx:80 msgid "Open in admin interface" @@ -38,82 +38,99 @@ msgstr "Megnyitás adminisztrátori felületen" #~ msgid "Copy to clipboard" #~ msgstr "Copy to clipboard" -#: src/components/buttons/CopyButton.tsx:24 +#: src/components/buttons/CopyButton.tsx:29 msgid "Copied" msgstr "Másolva" -#: src/components/buttons/CopyButton.tsx:24 +#: src/components/buttons/CopyButton.tsx:29 msgid "Copy" msgstr "Másolás" -#: src/components/buttons/PrintingActions.tsx:93 +#: src/components/buttons/PrintingActions.tsx:97 msgid "Print Label" -msgstr "" +msgstr "Címke Nyomtatás" -#: src/components/buttons/PrintingActions.tsx:99 +#: src/components/buttons/PrintingActions.tsx:103 msgid "Print" -msgstr "" +msgstr "Nyomtatás" -#: src/components/buttons/PrintingActions.tsx:100 +#: src/components/buttons/PrintingActions.tsx:104 msgid "Label printing completed successfully" -msgstr "" +msgstr "Címke nyomtatás sikeres" -#: src/components/buttons/PrintingActions.tsx:106 -#: src/components/buttons/PrintingActions.tsx:144 -#: src/components/editors/NotesEditor.tsx:65 -#: src/components/editors/NotesEditor.tsx:165 -#: src/components/forms/fields/ApiFormField.tsx:319 +#: src/components/buttons/PrintingActions.tsx:110 +#: src/components/buttons/PrintingActions.tsx:148 +#: src/components/editors/NotesEditor.tsx:73 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:154 +#: src/components/forms/fields/ApiFormField.tsx:328 +#: src/components/forms/fields/TableField.tsx:43 #: src/components/importer/ImportDataSelector.tsx:187 -#: src/components/importer/ImporterColumnSelector.tsx:207 +#: src/components/importer/ImporterColumnSelector.tsx:210 #: src/components/modals/LicenseModal.tsx:75 -#: src/components/nav/SearchDrawer.tsx:448 +#: src/components/nav/SearchDrawer.tsx:458 +#: src/components/render/ModelType.tsx:290 #: src/pages/ErrorPage.tsx:11 -#: src/pages/part/PartPricingPanel.tsx:67 -#: src/tables/InvenTreeTable.tsx:495 +#: src/pages/part/PartPricingPanel.tsx:71 +#: src/tables/InvenTreeTable.tsx:481 #: src/tables/bom/BomTable.tsx:450 -#: src/tables/stock/StockItemTestResultTable.tsx:299 +#: src/tables/stock/StockItemTestResultTable.tsx:317 msgid "Error" msgstr "Hiba" -#: src/components/buttons/PrintingActions.tsx:107 +#: src/components/buttons/PrintingActions.tsx:111 msgid "The label could not be generated" -msgstr "" +msgstr "Címkét nem sikerült generálni" -#: src/components/buttons/PrintingActions.tsx:122 +#: src/components/buttons/PrintingActions.tsx:126 msgid "Print Report" -msgstr "" +msgstr "Jelentés Nyomtatása" -#: src/components/buttons/PrintingActions.tsx:138 +#: src/components/buttons/PrintingActions.tsx:142 msgid "Generate" -msgstr "" +msgstr "Generálás" -#: src/components/buttons/PrintingActions.tsx:139 +#: src/components/buttons/PrintingActions.tsx:143 msgid "Report printing completed successfully" -msgstr "" +msgstr "Jelentés nyomtatása sikeres" -#: src/components/buttons/PrintingActions.tsx:145 +#: src/components/buttons/PrintingActions.tsx:149 msgid "The report could not be generated" -msgstr "" +msgstr "Jelentés generálása sikertelen" -#: src/components/buttons/PrintingActions.tsx:173 +#: src/components/buttons/PrintingActions.tsx:177 msgid "Printing Actions" -msgstr "" +msgstr "Nyomtatási műveletek" -#: src/components/buttons/PrintingActions.tsx:178 +#: src/components/buttons/PrintingActions.tsx:182 msgid "Print Labels" -msgstr "" +msgstr "Címkék Nyomtatása" -#: src/components/buttons/PrintingActions.tsx:184 +#: src/components/buttons/PrintingActions.tsx:188 msgid "Print Reports" +msgstr "Jelentések nyomtatása" + +#: src/components/buttons/RemoveRowButton.tsx:8 +msgid "Remove this row" +msgstr "Sor eltávolítása" + +#: src/components/buttons/ScanButton.tsx:15 +#: src/components/nav/NavigationDrawer.tsx:117 +#: src/forms/PurchaseOrderForms.tsx:379 +#: src/forms/PurchaseOrderForms.tsx:473 +msgid "Scan Barcode" msgstr "" #: src/components/buttons/ScanButton.tsx:15 -msgid "Scan QR code" -msgstr "QR kód beolvasása" +#~ msgid "Scan QR code" +#~ msgstr "Scan QR code" #: src/components/buttons/ScanButton.tsx:20 -msgid "Open QR code scanner" -msgstr "QR kód olvasó megnyitása" +msgid "Open Barcode Scanner" +msgstr "" + +#: src/components/buttons/ScanButton.tsx:20 +#~ msgid "Open QR code scanner" +#~ msgstr "Open QR code scanner" #: src/components/buttons/SpotlightButton.tsx:14 msgid "Open spotlight" @@ -128,85 +145,347 @@ msgid "Fail" msgstr "Megbukott" #: src/components/buttons/YesNoButton.tsx:33 -#: src/tables/Filter.tsx:52 +#: src/tables/Filter.tsx:61 msgid "Yes" msgstr "Igen" #: src/components/buttons/YesNoButton.tsx:33 -#: src/tables/Filter.tsx:53 +#: src/tables/Filter.tsx:62 msgid "No" msgstr "Nem" -#: src/components/details/Details.tsx:301 -msgid "No name defined" +#: src/components/dashboard/DashboardLayout.tsx:286 +msgid "No Widgets Selected" msgstr "" -#: src/components/details/DetailsImage.tsx:65 +#: src/components/dashboard/DashboardLayout.tsx:289 +msgid "Use the menu to add widgets to the dashboard" +msgstr "" + +#: src/components/dashboard/DashboardMenu.tsx:59 +#: src/components/dashboard/DashboardMenu.tsx:126 +msgid "Accept Layout" +msgstr "" + +#: src/components/dashboard/DashboardMenu.tsx:91 +#: src/components/nav/NavigationDrawer.tsx:71 +#: src/defaults/actions.tsx:17 +#: src/defaults/links.tsx:9 +#: src/pages/Index/Settings/UserSettings.tsx:47 +msgid "Dashboard" +msgstr "Irányítópult" + +#: src/components/dashboard/DashboardMenu.tsx:99 +msgid "Edit Layout" +msgstr "Elrendezés szerkesztése" + +#: src/components/dashboard/DashboardMenu.tsx:108 +msgid "Add Widget" +msgstr "" + +#: src/components/dashboard/DashboardMenu.tsx:117 +msgid "Remove Widgets" +msgstr "" + +#: src/components/dashboard/DashboardWidget.tsx:65 +msgid "Remove this widget from the dashboard" +msgstr "" + +#: src/components/dashboard/DashboardWidgetDrawer.tsx:77 +msgid "Filter dashboard widgets" +msgstr "" + +#: src/components/dashboard/DashboardWidgetDrawer.tsx:98 +msgid "Add this widget to the dashboard" +msgstr "" + +#: src/components/dashboard/DashboardWidgetDrawer.tsx:123 +msgid "No Widgets Available" +msgstr "" + +#: src/components/dashboard/DashboardWidgetDrawer.tsx:124 +msgid "There are no more widgets available for the dashboard" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:19 +msgid "Subscribed Parts" +msgstr "Értesítésre beállított alkatrészek" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:20 +msgid "Show the number of parts which you have subscribed to" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:26 +msgid "Subscribed Categories" +msgstr "Értesítésre beállított kategóriák" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:27 +msgid "Show the number of part categories which you have subscribed to" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:35 +#: src/pages/part/PartSchedulingDetail.tsx:304 +#: src/tables/part/PartTable.tsx:238 +msgid "Low Stock" +msgstr "Alacsony készlet" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:37 +msgid "Show the number of parts which are low on stock" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:43 +msgid "Expired Stock Items" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:45 +msgid "Show the number of stock items which have expired" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:51 +msgid "Stale Stock Items" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:53 +msgid "Show the number of stock items which are stale" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:59 +msgid "Active Build Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:61 +msgid "Show the number of build orders which are currently active" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:66 +msgid "Overdue Build Orders" +msgstr "Késésben lévő gyártások" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:68 +msgid "Show the number of build orders which are overdue" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:73 +msgid "Assigned Build Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:75 +msgid "Show the number of build orders which are assigned to you" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:80 +msgid "Active Sales Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:82 +msgid "Show the number of sales orders which are currently active" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:87 +msgid "Overdue Sales Orders" +msgstr "Késésben lévő vevői rendelések" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:89 +msgid "Show the number of sales orders which are overdue" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:94 +msgid "Assigned Sales Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:96 +msgid "Show the number of sales orders which are assigned to you" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:101 +msgid "Active Purchase Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:103 +msgid "Show the number of purchase orders which are currently active" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:108 +msgid "Overdue Purchase Orders" +msgstr "Késésben lévő beszerzések" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:110 +msgid "Show the number of purchase orders which are overdue" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:115 +msgid "Assigned Purchase Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:117 +msgid "Show the number of purchase orders which are assigned to you" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:122 +msgid "Active Return Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:124 +msgid "Show the number of return orders which are currently active" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:129 +msgid "Overdue Return Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:131 +msgid "Show the number of return orders which are overdue" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:136 +msgid "Assigned Return Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:138 +msgid "Show the number of return orders which are assigned to you" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:149 +#: src/components/dashboard/widgets/GetStartedWidget.tsx:15 +#: src/defaults/links.tsx:38 +msgid "Getting Started" +msgstr "Első lépések" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:150 +#: src/defaults/links.tsx:41 +msgid "Getting started with InvenTree" +msgstr "Első lépések az InvenTree-vel" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:157 +#: src/components/dashboard/widgets/NewsWidget.tsx:123 +msgid "News Updates" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:158 +msgid "The latest news from InvenTree" +msgstr "" + +#: src/components/dashboard/widgets/ColorToggleWidget.tsx:18 +#: src/components/nav/MainMenu.tsx:77 +msgid "Change Color Mode" +msgstr "" + +#: src/components/dashboard/widgets/ColorToggleWidget.tsx:23 +msgid "Change the color mode of the user interface" +msgstr "" + +#: src/components/dashboard/widgets/LanguageSelectWidget.tsx:18 +msgid "Change Language" +msgstr "" + +#: src/components/dashboard/widgets/LanguageSelectWidget.tsx:23 +msgid "Change the language of the user interface" +msgstr "" + +#: src/components/dashboard/widgets/NewsWidget.tsx:61 +#: src/components/nav/NotificationDrawer.tsx:88 +#: src/pages/Notifications.tsx:73 +msgid "Mark as read" +msgstr "Megjelölés olvasottként" + +#: src/components/dashboard/widgets/NewsWidget.tsx:115 +msgid "Requires Superuser" +msgstr "" + +#: src/components/dashboard/widgets/NewsWidget.tsx:116 +msgid "This widget requires superuser permissions" +msgstr "" + +#: src/components/dashboard/widgets/NewsWidget.tsx:133 +msgid "No News" +msgstr "" + +#: src/components/dashboard/widgets/NewsWidget.tsx:134 +msgid "There are no unread news items" +msgstr "" + +#: src/components/details/Details.tsx:300 +msgid "No name defined" +msgstr "Nincs név megadva" + +#: src/components/details/DetailsImage.tsx:69 msgid "Remove Image" msgstr "Kép eltávolítása" -#: src/components/details/DetailsImage.tsx:68 +#: src/components/details/DetailsImage.tsx:72 msgid "Remove the associated image from this item?" msgstr "Tételhez rendelt kép eltávolítása?" -#: src/components/details/DetailsImage.tsx:71 -#: src/forms/StockForms.tsx:533 +#: src/components/details/DetailsImage.tsx:75 +#: src/forms/StockForms.tsx:651 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:199 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:306 -#: src/pages/stock/StockDetail.tsx:526 +#: src/pages/stock/StockDetail.tsx:690 msgid "Remove" msgstr "Eltávolítás" -#: src/components/details/DetailsImage.tsx:71 -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:158 -#: src/components/items/ActionDropdown.tsx:215 -#: src/components/items/ActionDropdown.tsx:216 -#: src/contexts/ThemeContext.tsx:43 +#: src/components/details/DetailsImage.tsx:75 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:184 +#: src/components/items/ActionDropdown.tsx:268 +#: src/components/items/ActionDropdown.tsx:269 +#: src/contexts/ThemeContext.tsx:45 #: src/hooks/UseForm.tsx:40 -#: src/tables/FilterSelectDrawer.tsx:205 -#: src/tables/build/BuildOutputTable.tsx:286 +#: src/tables/FilterSelectDrawer.tsx:241 +#: src/tables/RowActions.tsx:59 +#: src/tables/build/BuildOutputTable.tsx:434 msgid "Cancel" msgstr "Mégsem" -#: src/components/details/DetailsImage.tsx:97 +#: src/components/details/DetailsImage.tsx:101 msgid "Drag and drop to upload" msgstr "Húzd ide a feltöltéshez" -#: src/components/details/DetailsImage.tsx:100 +#: src/components/details/DetailsImage.tsx:104 msgid "Click to select file(s)" msgstr "Kattintson a file(ok) kiválasztásához" -#: src/components/details/DetailsImage.tsx:226 +#: src/components/details/DetailsImage.tsx:230 msgid "Clear" msgstr "Törlés" -#: src/components/details/DetailsImage.tsx:232 -#: src/components/forms/ApiForm.tsx:627 -#: src/contexts/ThemeContext.tsx:43 -#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:60 +#: src/components/details/DetailsImage.tsx:236 +#: src/components/forms/ApiForm.tsx:660 +#: src/contexts/ThemeContext.tsx:45 msgid "Submit" msgstr "Küldés" -#: src/components/details/DetailsImage.tsx:272 +#: src/components/details/DetailsImage.tsx:280 msgid "Select from existing images" msgstr "Válassz a meglévő képek közül" -#: src/components/details/DetailsImage.tsx:280 +#: src/components/details/DetailsImage.tsx:288 msgid "Select Image" msgstr "Válassz képet" -#: src/components/details/DetailsImage.tsx:292 +#: src/components/details/DetailsImage.tsx:304 +msgid "Download remote image" +msgstr "" + +#: src/components/details/DetailsImage.tsx:319 msgid "Upload new image" msgstr "Új kép feltöltése" -#: src/components/details/DetailsImage.tsx:299 +#: src/components/details/DetailsImage.tsx:326 msgid "Upload Image" msgstr "Kép feltöltése" -#: src/components/details/DetailsImage.tsx:312 +#: src/components/details/DetailsImage.tsx:339 msgid "Delete image" msgstr "Kép törlése" +#: src/components/details/DetailsImage.tsx:373 +msgid "Download Image" +msgstr "" + +#: src/components/details/DetailsImage.tsx:378 +msgid "Image downloaded successfully" +msgstr "" + #: src/components/details/PartIcons.tsx:43 #~ msgid "Part is a template part (variants can be made from this part)" #~ msgstr "Part is a template part (variants can be made from this part)" @@ -235,36 +514,57 @@ msgstr "Kép törlése" #~ msgid "Part is virtual (not a physical part)" #~ msgstr "Part is virtual (not a physical part)" -#: src/components/editors/NotesEditor.tsx:66 +#: src/components/editors/NotesEditor.tsx:74 msgid "Image upload failed" -msgstr "" +msgstr "Képfeltöltés sikertelen" -#: src/components/editors/NotesEditor.tsx:156 -#: src/components/forms/ApiForm.tsx:467 +#: src/components/editors/NotesEditor.tsx:83 +#: src/components/editors/NotesEditor.tsx:119 +#: src/components/forms/ApiForm.tsx:475 #: src/tables/bom/BomTable.tsx:441 msgid "Success" msgstr "Siker" -#: src/components/editors/NotesEditor.tsx:157 -msgid "Notes saved successfully" +#: src/components/editors/NotesEditor.tsx:84 +msgid "Image uploaded successfully" msgstr "" -#: src/components/editors/NotesEditor.tsx:166 +#: src/components/editors/NotesEditor.tsx:120 +msgid "Notes saved successfully" +msgstr "Jegyzet mentés sikeres" + +#: src/components/editors/NotesEditor.tsx:131 msgid "Failed to save notes" msgstr "Megjegyzések mentése nem sikerült" -#: src/components/editors/NotesEditor.tsx:198 -msgid "Preview Notes" +#: src/components/editors/NotesEditor.tsx:134 +msgid "Error Saving Notes" msgstr "" -#: src/components/editors/NotesEditor.tsx:198 -msgid "Edit Notes" -msgstr "" +#: src/components/editors/NotesEditor.tsx:151 +#~ msgid "Disable Editing" +#~ msgstr "Disable Editing" -#: src/components/editors/NotesEditor.tsx:212 +#: src/components/editors/NotesEditor.tsx:154 msgid "Save Notes" +msgstr "Jegyzet Mentése" + +#: src/components/editors/NotesEditor.tsx:173 +msgid "Close Editor" msgstr "" +#: src/components/editors/NotesEditor.tsx:180 +msgid "Enable Editing" +msgstr "" + +#: src/components/editors/NotesEditor.tsx:198 +#~ msgid "Preview Notes" +#~ msgstr "Preview Notes" + +#: src/components/editors/NotesEditor.tsx:198 +#~ msgid "Edit Notes" +#~ msgstr "Edit Notes" + #: src/components/editors/TemplateEditor/CodeEditor/index.tsx:9 msgid "Code" msgstr "Kód" @@ -281,40 +581,44 @@ msgstr "Előnézet nem elérhető, kattintson az \"Előnézet Frissítés\"-re." msgid "PDF Preview" msgstr "PDF előnézet" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:104 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:115 msgid "Error loading template" msgstr "Hiba a sablon betöltése közben" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:116 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:127 msgid "Error saving template" msgstr "Hiba a sablon mentése közben" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:146 -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:274 -msgid "Save & Reload Preview" -msgstr "" - -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:151 -msgid "Are you sure you want to Save & Reload the preview?" -msgstr "Biztosan elmented és frissíted az előnézetet?" - #: src/components/editors/TemplateEditor/TemplateEditor.tsx:151 #~ msgid "Save & Reload preview?" #~ msgstr "Save & Reload preview?" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:153 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:155 +msgid "Could not load the template from the server." +msgstr "" + +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:172 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:303 +msgid "Save & Reload Preview" +msgstr "Mentés és előnézet frissítése" + +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:177 +msgid "Are you sure you want to Save & Reload the preview?" +msgstr "Biztosan elmented és frissíted az előnézetet?" + +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:179 msgid "To render the preview the current template needs to be replaced on the server with your modifications which may break the label if it is under active use. Do you want to proceed?" msgstr "Az aktuális sablon előnézetének megjelenítéséhez a módosításaid el kell küldeni a szervernek ami elronthajta a címkét ha éppen használják. Biztosan akarod?" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:157 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:183 msgid "Save & Reload" msgstr "Mentés és újratöltés" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:189 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:215 msgid "Preview updated" msgstr "Előnézet frissítve" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:190 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:216 msgid "The preview has been updated successfully." msgstr "A előnézet sikeresen frissitve." @@ -322,15 +626,15 @@ msgstr "A előnézet sikeresen frissitve." #~ msgid "Save & Reload preview" #~ msgstr "Save & Reload preview" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:266 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:295 msgid "Reload preview" msgstr "Előnézet frissítése" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:267 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:296 msgid "Use the currently stored template from the server" msgstr "A szerveren tárolt sablon használata" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:275 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:304 msgid "Save the current template and reload the preview" msgstr "Aktuális sablon elmentése és előnézet frissítése" @@ -338,64 +642,65 @@ msgstr "Aktuális sablon elmentése és előnézet frissítése" #~ msgid "to preview" #~ msgstr "to preview" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:333 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:365 msgid "Select instance to preview" -msgstr "" +msgstr "Az előnézet példány kiválasztása" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:377 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:409 msgid "Error rendering template" msgstr "Hiba a sablon megjelenítésekor" #: src/components/errors/ClientError.tsx:23 msgid "Client Error" -msgstr "" +msgstr "Kliens Hiba" #: src/components/errors/ClientError.tsx:24 msgid "Client error occurred" -msgstr "" +msgstr "Kliens hiba történt" #: src/components/errors/GenericErrorPage.tsx:50 msgid "Status Code" -msgstr "" +msgstr "Állapotkód" #: src/components/errors/GenericErrorPage.tsx:63 msgid "Return to the index page" -msgstr "" +msgstr "Főoldalra visszatérés" #: src/components/errors/NotAuthenticated.tsx:8 msgid "Not Authenticated" -msgstr "" +msgstr "Nem Azonosított" #: src/components/errors/NotAuthenticated.tsx:9 msgid "You are not logged in." -msgstr "" +msgstr "Ön nincs bejelentkezve." #: src/components/errors/NotFound.tsx:8 msgid "Page Not Found" -msgstr "" +msgstr "Oldal nem található" #: src/components/errors/NotFound.tsx:9 msgid "This page does not exist" -msgstr "" +msgstr "Ez az oldal nem létezik" #: src/components/errors/PermissionDenied.tsx:8 +#: src/functions/notifications.tsx:24 msgid "Permission Denied" -msgstr "" +msgstr "Nem jogosult" #: src/components/errors/PermissionDenied.tsx:9 msgid "You do not have permission to view this page." -msgstr "" +msgstr "Önnek nincs jogosultsága megnézni ezt az oldalt." #: src/components/errors/ServerError.tsx:8 msgid "Server Error" -msgstr "" +msgstr "Szerver hiba" #: src/components/errors/ServerError.tsx:9 msgid "A server error occurred" -msgstr "" +msgstr "Szerver hiba történt" -#: src/components/forms/ApiForm.tsx:151 -#: src/components/forms/ApiForm.tsx:555 +#: src/components/forms/ApiForm.tsx:154 +#: src/components/forms/ApiForm.tsx:579 msgid "Form Error" msgstr "Form hiba" @@ -403,22 +708,22 @@ msgstr "Form hiba" #~ msgid "Form Errors Exist" #~ msgstr "Form Errors Exist" -#: src/components/forms/ApiForm.tsx:563 +#: src/components/forms/ApiForm.tsx:587 msgid "Errors exist for one or more form fields" -msgstr "" +msgstr "Egy vagy több mező hibát jelez" -#: src/components/forms/ApiForm.tsx:665 -#: src/tables/plugin/PluginListTable.tsx:388 +#: src/components/forms/ApiForm.tsx:698 +#: src/tables/plugin/PluginListTable.tsx:195 msgid "Update" msgstr "Frissítés" -#: src/components/forms/ApiForm.tsx:685 -#: src/components/items/ActionDropdown.tsx:195 +#: src/components/forms/ApiForm.tsx:718 +#: src/components/items/ActionDropdown.tsx:248 #: src/hooks/UseForm.tsx:122 -#: src/pages/Index/Scan.tsx:343 +#: src/pages/Index/Scan.tsx:357 #: src/pages/Notifications.tsx:123 -#: src/tables/RowActions.tsx:43 -#: src/tables/plugin/PluginListTable.tsx:420 +#: src/tables/RowActions.tsx:49 +#: src/tables/plugin/PluginListTable.tsx:232 msgid "Delete" msgstr "Törlés" @@ -428,14 +733,6 @@ msgstr "Törlés" #~ msgid "Check your your input and try again." #~ msgstr "Check your your input and try again." -#: src/components/forms/AuthenticationForm.tsx:51 -msgid "Login successful" -msgstr "Sikeres bejelentkezés" - -#: src/components/forms/AuthenticationForm.tsx:52 -msgid "Logged in successfully" -msgstr "Sikeres bejelentkezés" - #: src/components/forms/AuthenticationForm.tsx:52 #~ msgid "Welcome back!" #~ msgstr "Welcome back!" @@ -444,14 +741,22 @@ msgstr "Sikeres bejelentkezés" #~ msgid "Login successfull" #~ msgstr "Login successfull" -#: src/components/forms/AuthenticationForm.tsx:58 +#: src/components/forms/AuthenticationForm.tsx:55 +msgid "Login successful" +msgstr "Sikeres bejelentkezés" + +#: src/components/forms/AuthenticationForm.tsx:56 +msgid "Logged in successfully" +msgstr "Sikeres bejelentkezés" + +#: src/components/forms/AuthenticationForm.tsx:61 msgid "Login failed" msgstr "Belépés sikertelen" -#: src/components/forms/AuthenticationForm.tsx:59 -#: src/components/forms/AuthenticationForm.tsx:76 -#: src/components/forms/AuthenticationForm.tsx:211 -#: src/functions/auth.tsx:164 +#: src/components/forms/AuthenticationForm.tsx:62 +#: src/components/forms/AuthenticationForm.tsx:79 +#: src/components/forms/AuthenticationForm.tsx:214 +#: src/functions/auth.tsx:175 msgid "Check your input and try again." msgstr "Ellenőrizd amit beírtál és próbáld újra." @@ -460,45 +765,46 @@ msgstr "Ellenőrizd amit beírtál és próbáld újra." #~ msgid "Mail delivery successfull" #~ msgstr "Mail delivery successfull" -#: src/components/forms/AuthenticationForm.tsx:70 -#: src/functions/auth.tsx:155 +#: src/components/forms/AuthenticationForm.tsx:73 +#: src/functions/auth.tsx:166 msgid "Mail delivery successful" msgstr "Levél kézbesítése sikeres" -#: src/components/forms/AuthenticationForm.tsx:71 +#: src/components/forms/AuthenticationForm.tsx:74 msgid "Check your inbox for the login link. If you have an account, you will receive a login link. Check in spam too." msgstr "A bejelentkezési linket keresd a bejövő email fiókodban. Ellenőrizd a spameket is." -#: src/components/forms/AuthenticationForm.tsx:75 +#: src/components/forms/AuthenticationForm.tsx:78 msgid "Mail delivery failed" msgstr "Sikertelen a levél kézbesítése" -#: src/components/forms/AuthenticationForm.tsx:95 +#: src/components/forms/AuthenticationForm.tsx:98 msgid "Or continue with other methods" msgstr "Vagy próbáljon más módszert" -#: src/components/forms/AuthenticationForm.tsx:106 -#: src/components/forms/AuthenticationForm.tsx:227 +#: src/components/forms/AuthenticationForm.tsx:109 +#: src/components/forms/AuthenticationForm.tsx:230 +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:67 msgid "Username" msgstr "Felhasználónév" -#: src/components/forms/AuthenticationForm.tsx:107 -#: src/components/forms/AuthenticationForm.tsx:228 +#: src/components/forms/AuthenticationForm.tsx:110 +#: src/components/forms/AuthenticationForm.tsx:231 msgid "Your username" msgstr "Felhasználónév" -#: src/components/forms/AuthenticationForm.tsx:112 -#: src/components/forms/AuthenticationForm.tsx:240 -#: src/pages/Auth/Set-Password.tsx:106 +#: src/components/forms/AuthenticationForm.tsx:115 +#: src/components/forms/AuthenticationForm.tsx:243 +#: src/pages/Auth/Set-Password.tsx:101 msgid "Password" msgstr "Jelszó" -#: src/components/forms/AuthenticationForm.tsx:113 -#: src/components/forms/AuthenticationForm.tsx:241 +#: src/components/forms/AuthenticationForm.tsx:116 +#: src/components/forms/AuthenticationForm.tsx:244 msgid "Your password" msgstr "Jelszó" -#: src/components/forms/AuthenticationForm.tsx:125 +#: src/components/forms/AuthenticationForm.tsx:128 #: src/pages/Auth/Reset.tsx:26 msgid "Reset password" msgstr "Jelszó visszaállítása" @@ -507,79 +813,81 @@ msgstr "Jelszó visszaállítása" #~ msgid "Log in" #~ msgstr "Log in" -#: src/components/forms/AuthenticationForm.tsx:134 -#: src/components/forms/AuthenticationForm.tsx:233 +#: src/components/forms/AuthenticationForm.tsx:136 +#~ msgid "I will use username and password" +#~ msgstr "I will use username and password" + +#: src/components/forms/AuthenticationForm.tsx:137 +#: src/components/forms/AuthenticationForm.tsx:236 #: src/pages/Auth/Reset.tsx:31 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:51 msgid "Email" msgstr "Email" -#: src/components/forms/AuthenticationForm.tsx:135 +#: src/components/forms/AuthenticationForm.tsx:138 #: src/pages/Auth/Reset.tsx:32 -#: src/pages/Auth/Set-Password.tsx:107 +#: src/pages/Auth/Set-Password.tsx:102 msgid "We will send you a link to login - if you are registered" msgstr "Küldünk bejelentkezési linket - ha regisztrálva vagy" -#: src/components/forms/AuthenticationForm.tsx:136 -#~ msgid "I will use username and password" -#~ msgstr "I will use username and password" - -#: src/components/forms/AuthenticationForm.tsx:151 +#: src/components/forms/AuthenticationForm.tsx:154 msgid "Send me an email" msgstr "Email küldés" -#: src/components/forms/AuthenticationForm.tsx:153 +#: src/components/forms/AuthenticationForm.tsx:156 msgid "Use username and password" msgstr "Felhasználónév és jelszó megadása" -#: src/components/forms/AuthenticationForm.tsx:162 +#: src/components/forms/AuthenticationForm.tsx:165 msgid "Log In" msgstr "Bejelentkezés" -#: src/components/forms/AuthenticationForm.tsx:164 +#: src/components/forms/AuthenticationForm.tsx:167 +#: src/pages/Auth/Reset.tsx:41 +#: src/pages/Auth/Set-Password.tsx:107 msgid "Send Email" msgstr "Email küldés" -#: src/components/forms/AuthenticationForm.tsx:193 +#: src/components/forms/AuthenticationForm.tsx:196 msgid "Registration successful" msgstr "Regisztráció sikeres" -#: src/components/forms/AuthenticationForm.tsx:194 +#: src/components/forms/AuthenticationForm.tsx:197 msgid "Please confirm your email address to complete the registration" msgstr "Kérjük erősítse meg az email címét a regisztráció befejezéséhez" -#: src/components/forms/AuthenticationForm.tsx:210 +#: src/components/forms/AuthenticationForm.tsx:213 msgid "Input error" msgstr "Beviteli hiba" -#: src/components/forms/AuthenticationForm.tsx:234 +#: src/components/forms/AuthenticationForm.tsx:237 msgid "This will be used for a confirmation" msgstr "Megerősítéshez szükséges" -#: src/components/forms/AuthenticationForm.tsx:246 +#: src/components/forms/AuthenticationForm.tsx:249 msgid "Password repeat" msgstr "Jelszó ismét" -#: src/components/forms/AuthenticationForm.tsx:247 +#: src/components/forms/AuthenticationForm.tsx:250 msgid "Repeat password" -msgstr "" +msgstr "Jelszó megismétlése" -#: src/components/forms/AuthenticationForm.tsx:259 -#: src/components/forms/AuthenticationForm.tsx:304 +#: src/components/forms/AuthenticationForm.tsx:262 +#: src/components/forms/AuthenticationForm.tsx:307 msgid "Register" -msgstr "" +msgstr "Regisztráció" -#: src/components/forms/AuthenticationForm.tsx:265 +#: src/components/forms/AuthenticationForm.tsx:268 msgid "Or use SSO" -msgstr "" +msgstr "Vagy használj SSO-t" -#: src/components/forms/AuthenticationForm.tsx:296 +#: src/components/forms/AuthenticationForm.tsx:299 msgid "Don't have an account?" -msgstr "" +msgstr "Nincsen felhasználóneve?" -#: src/components/forms/AuthenticationForm.tsx:315 +#: src/components/forms/AuthenticationForm.tsx:318 msgid "Go back to login" -msgstr "" +msgstr "Vissza a bejelentkezéshez" #: src/components/forms/HostOptionsForm.tsx:36 #: src/components/forms/HostOptionsForm.tsx:67 @@ -588,19 +896,20 @@ msgstr "Kiszolgáló" #: src/components/forms/HostOptionsForm.tsx:42 #: src/components/forms/HostOptionsForm.tsx:70 +#: src/components/plugins/PluginDrawer.tsx:69 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:410 +#: src/pages/Index/Settings/AdminCenter/UnitManagmentPanel.tsx:19 #: src/pages/part/CategoryDetail.tsx:81 -#: src/pages/part/PartDetail.tsx:143 -#: src/pages/stock/LocationDetail.tsx:89 -#: src/tables/machine/MachineTypeTable.tsx:65 -#: src/tables/machine/MachineTypeTable.tsx:109 -#: src/tables/machine/MachineTypeTable.tsx:216 -#: src/tables/machine/MachineTypeTable.tsx:319 +#: src/pages/part/PartDetail.tsx:164 +#: src/pages/stock/LocationDetail.tsx:83 +#: src/tables/machine/MachineTypeTable.tsx:70 +#: src/tables/machine/MachineTypeTable.tsx:119 +#: src/tables/machine/MachineTypeTable.tsx:237 +#: src/tables/machine/MachineTypeTable.tsx:340 #: src/tables/plugin/PluginErrorTable.tsx:33 -#: src/tables/plugin/PluginListTable.tsx:126 #: src/tables/purchasing/ManufacturerPartParameterTable.tsx:32 #: src/tables/settings/GroupTable.tsx:147 -#: src/tables/settings/PendingTasksTable.tsx:28 +#: src/tables/settings/PendingTasksTable.tsx:32 #: src/tables/stock/LocationTypesTable.tsx:69 msgid "Name" msgstr "Név" @@ -643,54 +952,53 @@ msgstr "Státusz: <0>worker ({0}), <1>plugins{1}" #: src/components/forms/fields/IconField.tsx:81 msgid "No icon selected" -msgstr "" +msgstr "Nincsen ikon kiválasztva" #: src/components/forms/fields/IconField.tsx:159 msgid "Uncategorized" -msgstr "" +msgstr "Kategorizálatlan" #: src/components/forms/fields/IconField.tsx:209 -#: src/components/nav/Layout.tsx:70 +#: src/components/nav/Layout.tsx:77 #: src/tables/part/PartThumbTable.tsx:192 msgid "Search..." -msgstr "" +msgstr "Keresés..." #: src/components/forms/fields/IconField.tsx:223 msgid "Select category" -msgstr "" +msgstr "Válassz kategóriát" #: src/components/forms/fields/IconField.tsx:232 msgid "Select pack" -msgstr "" +msgstr "Csomag választás" #: src/components/forms/fields/IconField.tsx:237 msgid "{0} icons" -msgstr "" +msgstr "{0} db" -#: src/components/forms/fields/RelatedModelField.tsx:318 -#: src/pages/Index/Settings/UserSettings.tsx:96 +#: src/components/forms/fields/RelatedModelField.tsx:319 +#: src/pages/Index/Settings/UserSettings.tsx:97 #: src/tables/Search.tsx:23 msgid "Search" msgstr "Keresés" -#: src/components/forms/fields/RelatedModelField.tsx:319 +#: src/components/forms/fields/RelatedModelField.tsx:320 #: src/components/modals/AboutInvenTreeModal.tsx:81 -#: src/components/widgets/WidgetLayout.tsx:120 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:316 msgid "Loading" msgstr "Betöltés" -#: src/components/forms/fields/RelatedModelField.tsx:321 +#: src/components/forms/fields/RelatedModelField.tsx:322 msgid "No results found" msgstr "Nincs találat" -#: src/components/forms/fields/TableField.tsx:52 -msgid "modelRenderer entry required for tables" -msgstr "" +#: src/components/forms/fields/TableField.tsx:72 +#~ msgid "modelRenderer entry required for tables" +#~ msgstr "modelRenderer entry required for tables" -#: src/components/forms/fields/TableField.tsx:76 +#: src/components/forms/fields/TableField.tsx:167 msgid "No entries available" -msgstr "" +msgstr "Nincs elérhető bejegyzés" #: src/components/images/DetailsImage.tsx:252 #~ msgid "Select image" @@ -702,27 +1010,27 @@ msgstr "Bélyegkép" #: src/components/importer/ImportDataSelector.tsx:170 msgid "Importing Rows" -msgstr "" +msgstr "Sorok importálása" #: src/components/importer/ImportDataSelector.tsx:171 msgid "Please wait while the data is imported" -msgstr "" +msgstr "Kérem várjon az importálás végéig" #: src/components/importer/ImportDataSelector.tsx:188 msgid "An error occurred while importing data" -msgstr "" +msgstr "Importálás közben hiba keletkezett" #: src/components/importer/ImportDataSelector.tsx:209 msgid "Edit Data" -msgstr "" +msgstr "Adat szerkesztése" #: src/components/importer/ImportDataSelector.tsx:237 msgid "Delete Row" -msgstr "" +msgstr "Sor törlése" #: src/components/importer/ImportDataSelector.tsx:267 msgid "Row" -msgstr "" +msgstr "Sor" #: src/components/importer/ImportDataSelector.tsx:285 msgid "Row contains errors" @@ -730,18 +1038,18 @@ msgstr "" #: src/components/importer/ImportDataSelector.tsx:326 msgid "Accept" -msgstr "" +msgstr "Elfogad" #: src/components/importer/ImportDataSelector.tsx:359 msgid "Valid" -msgstr "" +msgstr "Érvényes" #: src/components/importer/ImportDataSelector.tsx:360 msgid "Filter by row validation status" msgstr "" #: src/components/importer/ImportDataSelector.tsx:365 -#: src/tables/build/BuildOutputTable.tsx:266 +#: src/tables/build/BuildOutputTable.tsx:407 msgid "Complete" msgstr "Kész" @@ -749,20 +1057,21 @@ msgstr "Kész" msgid "Filter by row completion status" msgstr "" -#: src/components/importer/ImportDataSelector.tsx:383 +#: src/components/importer/ImportDataSelector.tsx:384 msgid "Import selected rows" msgstr "" -#: src/components/importer/ImportDataSelector.tsx:398 +#: src/components/importer/ImportDataSelector.tsx:399 msgid "Processing Data" -msgstr "" +msgstr "Adatok feldolgozása" -#: src/components/importer/ImporterColumnSelector.tsx:50 -#: src/components/importer/ImporterColumnSelector.tsx:176 +#: src/components/importer/ImporterColumnSelector.tsx:53 +#: src/components/importer/ImporterColumnSelector.tsx:179 +#: src/components/items/ErrorItem.tsx:12 msgid "An error occurred" -msgstr "" +msgstr "Hiba történt" -#: src/components/importer/ImporterColumnSelector.tsx:62 +#: src/components/importer/ImporterColumnSelector.tsx:65 msgid "Select column, or leave blank to ignore this field." msgstr "" @@ -778,51 +1087,51 @@ msgstr "" #~ msgid "Imported Column Name" #~ msgstr "Imported Column Name" -#: src/components/importer/ImporterColumnSelector.tsx:182 +#: src/components/importer/ImporterColumnSelector.tsx:185 msgid "Ignore this field" -msgstr "" +msgstr "Figyelmen kívül hagyja ezt a mezőt" -#: src/components/importer/ImporterColumnSelector.tsx:196 +#: src/components/importer/ImporterColumnSelector.tsx:199 msgid "Mapping data columns to database fields" msgstr "" -#: src/components/importer/ImporterColumnSelector.tsx:201 +#: src/components/importer/ImporterColumnSelector.tsx:204 msgid "Accept Column Mapping" msgstr "" -#: src/components/importer/ImporterColumnSelector.tsx:214 +#: src/components/importer/ImporterColumnSelector.tsx:217 msgid "Database Field" -msgstr "" +msgstr "Adatbázismező" -#: src/components/importer/ImporterColumnSelector.tsx:215 +#: src/components/importer/ImporterColumnSelector.tsx:218 msgid "Field Description" -msgstr "" +msgstr "Mező leírás" -#: src/components/importer/ImporterColumnSelector.tsx:216 +#: src/components/importer/ImporterColumnSelector.tsx:219 msgid "Imported Column" msgstr "" -#: src/components/importer/ImporterColumnSelector.tsx:217 +#: src/components/importer/ImporterColumnSelector.tsx:220 msgid "Default Value" -msgstr "" - -#: src/components/importer/ImporterDrawer.tsx:44 -msgid "Upload File" -msgstr "" - -#: src/components/importer/ImporterDrawer.tsx:45 -msgid "Map Columns" -msgstr "" +msgstr "Alapértelmezett érték" #: src/components/importer/ImporterDrawer.tsx:46 -msgid "Import Data" -msgstr "" +msgid "Upload File" +msgstr "Fájl feltöltése" #: src/components/importer/ImporterDrawer.tsx:47 -msgid "Process Data" -msgstr "" +msgid "Map Columns" +msgstr "Oszlopok leképezése" #: src/components/importer/ImporterDrawer.tsx:48 +msgid "Import Data" +msgstr "Adat importálása" + +#: src/components/importer/ImporterDrawer.tsx:49 +msgid "Process Data" +msgstr "Adatok feldolgozása" + +#: src/components/importer/ImporterDrawer.tsx:50 msgid "Complete Import" msgstr "" @@ -830,119 +1139,149 @@ msgstr "" #~ msgid "Cancel import session" #~ msgstr "Cancel import session" -#: src/components/importer/ImporterDrawer.tsx:104 +#: src/components/importer/ImporterDrawer.tsx:106 msgid "Import Complete" -msgstr "" +msgstr "Importálás befejezve" -#: src/components/importer/ImporterDrawer.tsx:107 +#: src/components/importer/ImporterDrawer.tsx:109 msgid "Data has been imported successfully" msgstr "" -#: src/components/importer/ImporterDrawer.tsx:109 -#: src/components/importer/ImporterDrawer.tsx:118 +#: src/components/importer/ImporterDrawer.tsx:111 +#: src/components/importer/ImporterDrawer.tsx:120 msgid "Close" -msgstr "" +msgstr "Bezárás" -#: src/components/importer/ImporterDrawer.tsx:115 +#: src/components/importer/ImporterDrawer.tsx:117 msgid "Unknown Status" -msgstr "" +msgstr "Ismeretlen állapot" -#: src/components/importer/ImporterDrawer.tsx:116 +#: src/components/importer/ImporterDrawer.tsx:118 msgid "Import session has unknown status" msgstr "" -#: src/components/importer/ImporterDrawer.tsx:135 +#: src/components/importer/ImporterDrawer.tsx:137 msgid "Importing Data" -msgstr "" +msgstr "Adatok importálása" #: src/components/importer/ImporterImportProgress.tsx:36 msgid "Importing Records" +msgstr "Sorok importálása" + +#: src/components/importer/ImporterImportProgress.tsx:39 +#: src/tables/settings/ImportSessionTable.tsx:78 +msgid "Imported Rows" msgstr "" #: src/components/importer/ImporterImportProgress.tsx:39 -msgid "Imported rows" +#~ msgid "Imported rows" +#~ msgstr "Imported rows" + +#: src/components/items/ActionDropdown.tsx:126 +msgid "Options" msgstr "" -#: src/components/items/ActionDropdown.tsx:121 +#: src/components/items/ActionDropdown.tsx:140 +#~ msgid "View Barcode" +#~ msgstr "View Barcode" + +#: src/components/items/ActionDropdown.tsx:162 +#: src/tables/InvenTreeTableHeader.tsx:159 +#: src/tables/InvenTreeTableHeader.tsx:160 msgid "Barcode Actions" msgstr "Vonalkód műveletek" -#: src/components/items/ActionDropdown.tsx:140 -msgid "View Barcode" -msgstr "" +#: src/components/items/ActionDropdown.tsx:162 +#~ msgid "Link custom barcode" +#~ msgstr "Link custom barcode" -#: src/components/items/ActionDropdown.tsx:147 +#: src/components/items/ActionDropdown.tsx:167 msgid "View" msgstr "Megtekintés" -#: src/components/items/ActionDropdown.tsx:148 +#: src/components/items/ActionDropdown.tsx:169 msgid "View barcode" msgstr "Vonalkód megtekintése" -#: src/components/items/ActionDropdown.tsx:161 +#: src/components/items/ActionDropdown.tsx:175 msgid "Link Barcode" msgstr "Vonalkód hozzárendelése" -#: src/components/items/ActionDropdown.tsx:162 -msgid "Link custom barcode" -msgstr "Egyedi vonalkód hozzárendelése" +#: src/components/items/ActionDropdown.tsx:177 +msgid "Link a custom barcode to this item" +msgstr "" -#: src/components/items/ActionDropdown.tsx:173 -#: src/forms/PurchaseOrderForms.tsx:426 +#: src/components/items/ActionDropdown.tsx:183 +#: src/components/items/QRCode.tsx:193 +#: src/forms/PurchaseOrderForms.tsx:464 msgid "Unlink Barcode" msgstr "Vonalkód leválasztása" -#: src/components/items/ActionDropdown.tsx:174 +#: src/components/items/ActionDropdown.tsx:185 msgid "Unlink custom barcode" msgstr "Egyedi vonalkód leválasztása" -#: src/components/items/ActionDropdown.tsx:183 -#: src/tables/RowActions.tsx:33 +#: src/components/items/ActionDropdown.tsx:236 +#: src/tables/RowActions.tsx:39 msgid "Edit" msgstr "Szerkesztés" -#: src/components/items/ActionDropdown.tsx:184 +#: src/components/items/ActionDropdown.tsx:237 msgid "Edit item" -msgstr "" +msgstr "Elem szerkesztése" -#: src/components/items/ActionDropdown.tsx:196 +#: src/components/items/ActionDropdown.tsx:249 msgid "Delete item" msgstr "Tétel törlése" -#: src/components/items/ActionDropdown.tsx:204 -#: src/components/items/ActionDropdown.tsx:205 +#: src/components/items/ActionDropdown.tsx:257 +#: src/components/items/ActionDropdown.tsx:258 msgid "Hold" -msgstr "" +msgstr "Tartás" -#: src/components/items/ActionDropdown.tsx:227 -#: src/tables/RowActions.tsx:23 +#: src/components/items/ActionDropdown.tsx:280 +#: src/tables/RowActions.tsx:29 msgid "Duplicate" msgstr "Másolás" -#: src/components/items/ActionDropdown.tsx:228 +#: src/components/items/ActionDropdown.tsx:281 msgid "Duplicate item" msgstr "Elem másolása" +#: src/components/items/BarcodeInput.tsx:23 +msgid "Scan barcode data here using barcode scanner" +msgstr "" + +#: src/components/items/BarcodeInput.tsx:24 +#: src/tables/settings/BarcodeScanHistoryTable.tsx:65 +msgid "Barcode" +msgstr "Vonalkód" + +#: src/components/items/BarcodeInput.tsx:25 +msgid "Scan" +msgstr "Szkennelés" + #: src/components/items/DocTooltip.tsx:92 +#: src/components/items/GettingStartedCarousel.tsx:20 msgid "Read More" msgstr "Tudj meg többet" -#: src/components/items/ErrorItem.tsx:5 -#: src/tables/InvenTreeTable.tsx:487 +#: src/components/items/ErrorItem.tsx:8 +#: src/tables/InvenTreeTable.tsx:473 msgid "Unknown error" msgstr "Ismeretlen hiba" -#: src/components/items/ErrorItem.tsx:10 -msgid "An error occurred:" -msgstr "Hiba történt:" +#: src/components/items/ErrorItem.tsx:13 +#~ msgid "An error occurred:" +#~ msgstr "An error occurred:" #: src/components/items/GettingStartedCarousel.tsx:27 -msgid "Read more" -msgstr "Tovább" +#~ msgid "Read more" +#~ msgstr "Read more" #: src/components/items/InfoItem.tsx:27 msgid "None" -msgstr "" +msgstr "Nincs" #: src/components/items/InvenTreeLogo.tsx:23 msgid "InvenTree Logo" @@ -965,30 +1304,51 @@ msgstr "PLH" msgid "This panel is a placeholder." msgstr "Ez egy helykitöltő panel." -#: src/components/items/QRCode.tsx:87 +#: src/components/items/QRCode.tsx:89 msgid "Low (7%)" msgstr "" -#: src/components/items/QRCode.tsx:88 +#: src/components/items/QRCode.tsx:90 msgid "Medium (15%)" msgstr "" -#: src/components/items/QRCode.tsx:89 +#: src/components/items/QRCode.tsx:91 msgid "Quartile (25%)" msgstr "" -#: src/components/items/QRCode.tsx:90 +#: src/components/items/QRCode.tsx:92 msgid "High (30%)" msgstr "" -#: src/components/items/QRCode.tsx:107 -msgid "Barcode Data:" +#: src/components/items/QRCode.tsx:100 +msgid "Custom barcode" +msgstr "Egyedi vonalkód" + +#: src/components/items/QRCode.tsx:101 +msgid "A custom barcode is registered for this item. The shown code is not that custom barcode." msgstr "" #: src/components/items/QRCode.tsx:118 +msgid "Barcode Data:" +msgstr "" + +#: src/components/items/QRCode.tsx:129 msgid "Select Error Correction Level" msgstr "" +#: src/components/items/QRCode.tsx:171 +#: src/pages/part/PartDetail.tsx:239 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:187 +#: src/pages/sales/ReturnOrderDetail.tsx:157 +#: src/pages/sales/SalesOrderDetail.tsx:169 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:166 +msgid "Link" +msgstr "Link" + +#: src/components/items/QRCode.tsx:190 +msgid "This will remove the link to the associated barcode" +msgstr "" + #: src/components/modals/AboutInvenTreeModal.tsx:99 msgid "Version Information" msgstr "Verzióinformáció" @@ -1062,14 +1422,14 @@ msgstr "MobilApp" msgid "Submit Bug Report" msgstr "Hibajegy beküldése" -#: src/components/modals/AboutInvenTreeModal.tsx:183 +#: src/components/modals/AboutInvenTreeModal.tsx:181 msgid "Copy version information" msgstr "Verzió információk másolása" -#: src/components/modals/AboutInvenTreeModal.tsx:192 +#: src/components/modals/AboutInvenTreeModal.tsx:189 #: src/components/modals/ServerInfoModal.tsx:147 msgid "Dismiss" -msgstr "" +msgstr "Elvetés" #: src/components/modals/LicenseModal.tsx:39 msgid "No license text available" @@ -1091,61 +1451,20 @@ msgstr "" msgid "{key} Packages" msgstr "" -#: src/components/modals/QrCodeModal.tsx:72 +#: src/components/modals/QrCodeModal.tsx:24 msgid "Unknown response" msgstr "Ismeretlen válasz" -#: src/components/modals/QrCodeModal.tsx:102 -#: src/pages/Index/Scan.tsx:636 -msgid "Error while getting camera" -msgstr "Hiba a kamera megnyitása közben" - -#: src/components/modals/QrCodeModal.tsx:125 -#: src/pages/Index/Scan.tsx:659 -msgid "Error while scanning" -msgstr "Hiba a kódolvasás közben" - -#: src/components/modals/QrCodeModal.tsx:139 -#: src/pages/Index/Scan.tsx:673 -msgid "Error while stopping" -msgstr "Hiba a leállítás közben" - -#: src/components/modals/QrCodeModal.tsx:154 -#: src/defaults/menuItems.tsx:21 -#: src/pages/Index/Scan.tsx:746 -msgid "Scanning" -msgstr "Kódolvasás" - -#: src/components/modals/QrCodeModal.tsx:154 -#: src/pages/Index/Scan.tsx:746 -msgid "Not scanning" -msgstr "Nincs kódolvasás" - -#: src/components/modals/QrCodeModal.tsx:159 -#: src/pages/Index/Scan.tsx:752 -msgid "Select Camera" -msgstr "Kamera kiválasztása" - -#: src/components/modals/QrCodeModal.tsx:169 -#: src/pages/Index/Scan.tsx:737 -msgid "Start scanning" -msgstr "Kódolvasás indítása" - -#: src/components/modals/QrCodeModal.tsx:176 -#: src/pages/Index/Scan.tsx:729 -msgid "Stop scanning" -msgstr "Kódolvasás leállítása" - -#: src/components/modals/QrCodeModal.tsx:181 +#: src/components/modals/QrCodeModal.tsx:39 msgid "No scans yet!" msgstr "Még nincs meg a kód!" -#: src/components/modals/QrCodeModal.tsx:201 +#: src/components/modals/QrCodeModal.tsx:57 msgid "Close modal" msgstr "Felugró ablak bezárása" #: src/components/modals/ServerInfoModal.tsx:26 -#: src/pages/Index/Settings/SystemSettings.tsx:38 +#: src/pages/Index/Settings/SystemSettings.tsx:37 msgid "Server" msgstr "Szerver" @@ -1206,6 +1525,7 @@ msgid "Background Worker" msgstr "Háttér munkavégző" #: src/components/modals/ServerInfoModal.tsx:101 +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:29 msgid "Background worker not running" msgstr "Háttér munkavégző nem fut" @@ -1218,8 +1538,8 @@ msgid "Email settings not configured" msgstr "Email beállítások hiányoznak" #: src/components/modals/ServerInfoModal.tsx:121 -#: src/tables/plugin/PluginListTable.tsx:144 -#: src/tables/plugin/PluginListTable.tsx:294 +#: src/components/plugins/PluginDrawer.tsx:89 +#: src/tables/plugin/PluginListTable.tsx:116 msgid "Version" msgstr "Verzió" @@ -1227,7 +1547,7 @@ msgstr "Verzió" msgid "Server Version" msgstr "Szerver verziója" -#: src/components/nav/Layout.tsx:73 +#: src/components/nav/Layout.tsx:80 msgid "Nothing found..." msgstr "" @@ -1237,18 +1557,26 @@ msgstr "" #~ msgstr "Profile" #: src/components/nav/MainMenu.tsx:52 +#: src/components/nav/NavigationDrawer.tsx:178 #: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:28 msgid "Settings" msgstr "Beállítások" #: src/components/nav/MainMenu.tsx:59 -#: src/defaults/menuItems.tsx:15 -msgid "Account settings" +#: src/pages/Index/Settings/UserSettings.tsx:152 +msgid "Account Settings" msgstr "Fiókbeállítások" +#: src/components/nav/MainMenu.tsx:59 +#: src/defaults/menuItems.tsx:15 +#~ msgid "Account settings" +#~ msgstr "Account settings" + #: src/components/nav/MainMenu.tsx:67 -#: src/defaults/menuItems.tsx:58 -#: src/pages/Index/Settings/SystemSettings.tsx:315 +#: src/components/nav/NavigationDrawer.tsx:141 +#: src/components/nav/SettingsHeader.tsx:49 +#: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:37 +#: src/pages/Index/Settings/SystemSettings.tsx:310 msgid "System Settings" msgstr "Rendszerbeállítások" @@ -1260,14 +1588,11 @@ msgstr "Rendszerbeállítások" #~ msgid "Switch to pseudo language" #~ msgstr "Switch to pseudo language" -#: src/components/nav/MainMenu.tsx:77 -msgid "Change Color Mode" -msgstr "" - #: src/components/nav/MainMenu.tsx:86 -#: src/defaults/actions.tsx:71 -#: src/defaults/menuItems.tsx:63 -#: src/pages/Index/Settings/AdminCenter/Index.tsx:221 +#: src/components/nav/NavigationDrawer.tsx:148 +#: src/components/nav/SettingsHeader.tsx:50 +#: src/defaults/actions.tsx:63 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:251 msgid "Admin Center" msgstr "Admin központ" @@ -1275,458 +1600,732 @@ msgstr "Admin központ" msgid "Logout" msgstr "Kijelentkezés" -#: src/components/nav/NavHoverMenu.tsx:65 -#: src/defaults/actions.tsx:60 -msgid "Open Navigation" -msgstr "Navigáció megnyitása" - #: src/components/nav/NavHoverMenu.tsx:84 -msgid "View all" -msgstr "Összes megtekintése" +#~ msgid "View all" +#~ msgstr "View all" #: src/components/nav/NavHoverMenu.tsx:100 #: src/components/nav/NavHoverMenu.tsx:110 -msgid "Get started" -msgstr "Kezdés" +#~ msgid "Get started" +#~ msgstr "Get started" #: src/components/nav/NavHoverMenu.tsx:103 -msgid "Overview over high-level objects, functions and possible usecases." -msgstr "Magas szintű objektumok, funkciók és lehetséges használati esetek áttekintése." - -#: src/components/nav/NavigationDrawer.tsx:57 -msgid "Navigation" -msgstr "Navigáció" +#~ msgid "Overview over high-level objects, functions and possible usecases." +#~ msgstr "Overview over high-level objects, functions and possible usecases." #: src/components/nav/NavigationDrawer.tsx:60 -msgid "Pages" -msgstr "Oldalak" +#~ msgid "Pages" +#~ msgstr "Pages" -#: src/components/nav/NavigationDrawer.tsx:65 -#: src/pages/Index/Settings/AdminCenter/Index.tsx:176 -#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:41 -msgid "Plugins" -msgstr "Pluginok" +#: src/components/nav/NavigationDrawer.tsx:77 +#: src/components/render/ModelType.tsx:31 +#: src/defaults/links.tsx:10 +#: src/pages/Index/Settings/SystemSettings.tsx:172 +#: src/pages/part/CategoryDetail.tsx:125 +#: src/pages/part/CategoryDetail.tsx:249 +#: src/pages/part/CategoryDetail.tsx:279 +#: src/pages/part/PartDetail.tsx:856 +msgid "Parts" +msgstr "Alkatrészek" -#: src/components/nav/NavigationDrawer.tsx:75 -#: src/defaults/actions.tsx:32 -msgid "Documentation" -msgstr "Dokumentáció" +#: src/components/nav/NavigationDrawer.tsx:84 +#: src/components/render/Part.tsx:30 +#: src/defaults/links.tsx:11 +#: src/pages/Index/Settings/SystemSettings.tsx:205 +#: src/pages/part/PartDetail.tsx:593 +#: src/pages/stock/LocationDetail.tsx:352 +#: src/pages/stock/StockDetail.tsx:528 +#: src/tables/stock/StockItemTable.tsx:69 +msgid "Stock" +msgstr "Készlet" -#: src/components/nav/NavigationDrawer.tsx:78 -msgid "About" -msgstr "Névjegy" +#: src/components/nav/NavigationDrawer.tsx:91 +#: src/defaults/links.tsx:13 +#: src/pages/build/BuildDetail.tsx:530 +#: src/pages/build/BuildIndex.tsx:36 +msgid "Manufacturing" +msgstr "" -#: src/components/nav/NotificationDrawer.tsx:92 -#: src/pages/Index/Settings/SystemSettings.tsx:109 -#: src/pages/Index/Settings/UserSettings.tsx:126 +#: src/components/nav/NavigationDrawer.tsx:98 +#: src/defaults/links.tsx:18 +#: src/pages/company/ManufacturerDetail.tsx:9 +#: src/pages/company/ManufacturerPartDetail.tsx:258 +#: src/pages/company/SupplierDetail.tsx:9 +#: src/pages/company/SupplierPartDetail.tsx:336 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:480 +#: src/pages/purchasing/PurchasingIndex.tsx:60 +msgid "Purchasing" +msgstr "Beszerzés" + +#: src/components/nav/NavigationDrawer.tsx:105 +#: src/defaults/links.tsx:22 +#: src/pages/company/CustomerDetail.tsx:9 +#: src/pages/sales/ReturnOrderDetail.tsx:469 +#: src/pages/sales/SalesIndex.tsx:53 +#: src/pages/sales/SalesOrderDetail.tsx:520 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:343 +msgid "Sales" +msgstr "Eladás" + +#: src/components/nav/NavigationDrawer.tsx:129 +#: src/components/nav/NotificationDrawer.tsx:178 +#: src/pages/Index/Settings/SystemSettings.tsx:110 +#: src/pages/Index/Settings/UserSettings.tsx:127 #: src/pages/Notifications.tsx:65 #: src/pages/Notifications.tsx:151 msgid "Notifications" msgstr "Értesítések" -#: src/components/nav/NotificationDrawer.tsx:94 +#: src/components/nav/NavigationDrawer.tsx:135 +#: src/components/nav/SettingsHeader.tsx:48 +msgid "User Settings" +msgstr "" + +#: src/components/nav/NavigationDrawer.tsx:173 +msgid "Navigation" +msgstr "Navigáció" + +#: src/components/nav/NavigationDrawer.tsx:183 +#: src/forms/PurchaseOrderForms.tsx:689 +#: src/forms/StockForms.tsx:614 +#: src/forms/StockForms.tsx:651 +#: src/forms/StockForms.tsx:677 +#: src/forms/StockForms.tsx:705 +#: src/forms/StockForms.tsx:736 +#: src/forms/StockForms.tsx:771 +#: src/forms/StockForms.tsx:813 +#: src/forms/StockForms.tsx:851 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:413 +#: src/tables/RowActions.tsx:129 +#: src/tables/build/BuildLineTable.tsx:101 +msgid "Actions" +msgstr "Műveletek" + +#: src/components/nav/NavigationDrawer.tsx:191 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:205 +#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:44 +msgid "Plugins" +msgstr "Pluginok" + +#: src/components/nav/NavigationDrawer.tsx:204 +#: src/defaults/actions.tsx:24 +msgid "Documentation" +msgstr "Dokumentáció" + +#: src/components/nav/NavigationDrawer.tsx:210 +msgid "About" +msgstr "Névjegy" + +#: src/components/nav/NotificationDrawer.tsx:180 msgid "Mark all as read" msgstr "" -#: src/components/nav/NotificationDrawer.tsx:104 +#: src/components/nav/NotificationDrawer.tsx:190 msgid "View all notifications" msgstr "" -#: src/components/nav/NotificationDrawer.tsx:123 +#: src/components/nav/NotificationDrawer.tsx:210 msgid "You have no unread notifications." msgstr "Nincs olvasatlan értesítésed." -#: src/components/nav/NotificationDrawer.tsx:139 -#: src/components/nav/NotificationDrawer.tsx:145 -#: src/tables/notifications/NotificationsTable.tsx:36 -msgid "Notification" -msgstr "Értesítés" - -#: src/components/nav/NotificationDrawer.tsx:168 -#: src/pages/Notifications.tsx:73 -msgid "Mark as read" -msgstr "Megjelölés olvasottként" - -#: src/components/nav/SearchDrawer.tsx:78 +#: src/components/nav/SearchDrawer.tsx:85 msgid "results" msgstr "eredmények" -#: src/components/nav/SearchDrawer.tsx:370 +#: src/components/nav/SearchDrawer.tsx:380 msgid "Enter search text" msgstr "Írd be a keresett szöveget" -#: src/components/nav/SearchDrawer.tsx:397 +#: src/components/nav/SearchDrawer.tsx:391 +msgid "Refresh search results" +msgstr "" + +#: src/components/nav/SearchDrawer.tsx:402 +#: src/components/nav/SearchDrawer.tsx:409 msgid "Search Options" msgstr "Keresési opciók" -#: src/components/nav/SearchDrawer.tsx:400 +#: src/components/nav/SearchDrawer.tsx:412 msgid "Regex search" msgstr "Regex keresés" -#: src/components/nav/SearchDrawer.tsx:410 +#: src/components/nav/SearchDrawer.tsx:421 msgid "Whole word search" msgstr "Teljes szó keresés" -#: src/components/nav/SearchDrawer.tsx:451 +#: src/components/nav/SearchDrawer.tsx:461 msgid "An error occurred during search query" msgstr "Hiba történt a keresés közben" #: src/components/nav/SearchDrawer.tsx:462 -msgid "No results" +#~ msgid "No results" +#~ msgstr "No results" + +#: src/components/nav/SearchDrawer.tsx:472 +#: src/tables/part/PartTestTemplateTable.tsx:76 +msgid "No Results" msgstr "Nincs találat" -#: src/components/nav/SearchDrawer.tsx:465 +#: src/components/nav/SearchDrawer.tsx:475 msgid "No results available for search query" msgstr "Nincs találat a keresésre" -#: src/components/render/Instance.tsx:217 +#: src/components/panels/AttachmentPanel.tsx:18 +msgid "Attachments" +msgstr "Mellékletek" + +#: src/components/panels/NotesPanel.tsx:24 +#: src/tables/build/BuildOrderTestTable.tsx:143 +#: src/tables/stock/StockTrackingTable.tsx:204 +msgid "Notes" +msgstr "Megjegyzések" + +#: src/components/plugins/PluginDrawer.tsx:47 +msgid "Plugin Inactive" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:50 +msgid "Plugin is not active" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:60 +msgid "Plugin Information" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:74 +#: src/pages/build/BuildDetail.tsx:116 +#: src/pages/company/CompanyDetail.tsx:89 +#: src/pages/company/ManufacturerPartDetail.tsx:89 +#: src/pages/company/ManufacturerPartDetail.tsx:116 +#: src/pages/company/SupplierPartDetail.tsx:140 +#: src/pages/part/CategoryDetail.tsx:101 +#: src/pages/part/PartDetail.tsx:178 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:136 +#: src/pages/sales/ReturnOrderDetail.tsx:107 +#: src/pages/sales/SalesOrderDetail.tsx:116 +#: src/pages/stock/LocationDetail.tsx:103 +#: src/tables/ColumnRenderers.tsx:92 +#: src/tables/bom/UsedInTable.tsx:44 +#: src/tables/build/BuildAllocatedStockTable.tsx:83 +#: src/tables/build/BuildLineTable.tsx:329 +#: src/tables/machine/MachineTypeTable.tsx:74 +#: src/tables/machine/MachineTypeTable.tsx:129 +#: src/tables/machine/MachineTypeTable.tsx:240 +#: src/tables/machine/MachineTypeTable.tsx:344 +#: src/tables/part/RelatedPartTable.tsx:66 +#: src/tables/plugin/PluginListTable.tsx:99 +#: src/tables/sales/SalesOrderAllocationTable.tsx:87 +#: src/tables/sales/SalesOrderLineItemTable.tsx:75 +#: src/tables/stock/LocationTypesTable.tsx:74 +msgid "Description" +msgstr "Leírás" + +#: src/components/plugins/PluginDrawer.tsx:79 +msgid "Author" +msgstr "Szerző" + +#: src/components/plugins/PluginDrawer.tsx:84 +#: src/pages/part/PartSchedulingDetail.tsx:277 +#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:40 +#: src/pages/part/pricing/SaleHistoryPanel.tsx:38 +#: src/tables/ColumnRenderers.tsx:215 +#: src/tables/build/BuildOrderTestTable.tsx:151 +#: src/tables/settings/StocktakeReportTable.tsx:40 +msgid "Date" +msgstr "Dátum" + +#: src/components/plugins/PluginDrawer.tsx:94 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:398 +#: src/pages/part/PartDetail.tsx:331 +#: src/tables/bom/UsedInTable.tsx:84 +#: src/tables/company/CompanyTable.tsx:62 +#: src/tables/company/CompanyTable.tsx:96 +#: src/tables/machine/MachineListTable.tsx:333 +#: src/tables/machine/MachineListTable.tsx:605 +#: src/tables/part/ParametricPartTable.tsx:223 +#: src/tables/part/PartTable.tsx:178 +#: src/tables/part/PartVariantTable.tsx:15 +#: src/tables/plugin/PluginListTable.tsx:94 +#: src/tables/plugin/PluginListTable.tsx:401 +#: src/tables/purchasing/SupplierPartTable.tsx:100 +#: src/tables/purchasing/SupplierPartTable.tsx:190 +#: src/tables/settings/UserTable.tsx:283 +#: src/tables/stock/StockItemTable.tsx:293 +msgid "Active" +msgstr "Aktív" + +#: src/components/plugins/PluginDrawer.tsx:106 +msgid "Package Name" +msgstr "Csomag neve" + +#: src/components/plugins/PluginDrawer.tsx:112 +msgid "Installation Path" +msgstr "Telepítési útvonal" + +#: src/components/plugins/PluginDrawer.tsx:117 +#: src/tables/machine/MachineTypeTable.tsx:152 +#: src/tables/machine/MachineTypeTable.tsx:276 +#: src/tables/plugin/PluginListTable.tsx:406 +msgid "Builtin" +msgstr "Beépített" + +#: src/components/plugins/PluginDrawer.tsx:122 +msgid "Package" +msgstr "Csomag" + +#: src/components/plugins/PluginDrawer.tsx:134 +#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:53 +msgid "Plugin Settings" +msgstr "Plugin beállítások" + +#: src/components/plugins/PluginDrawer.tsx:146 +#: src/components/render/ModelType.tsx:276 +msgid "Plugin Configuration" +msgstr "" + +#: src/components/plugins/PluginPanel.tsx:87 +#~ msgid "Error occurred while rendering plugin content" +#~ msgstr "Error occurred while rendering plugin content" + +#: src/components/plugins/PluginPanel.tsx:91 +#~ msgid "Plugin did not provide panel rendering function" +#~ msgstr "Plugin did not provide panel rendering function" + +#: src/components/plugins/PluginPanel.tsx:103 +#~ msgid "No content provided for this plugin" +#~ msgstr "No content provided for this plugin" + +#: src/components/plugins/PluginPanel.tsx:116 +#: src/components/plugins/PluginSettingsPanel.tsx:76 +#~ msgid "Error Loading Plugin" +#~ msgstr "Error Loading Plugin" + +#: src/components/plugins/PluginSettingsPanel.tsx:51 +#~ msgid "Error occurred while rendering plugin settings" +#~ msgstr "Error occurred while rendering plugin settings" + +#: src/components/plugins/PluginSettingsPanel.tsx:55 +#~ msgid "Plugin did not provide settings rendering function" +#~ msgstr "Plugin did not provide settings rendering function" + +#: src/components/plugins/PluginUIFeature.tsx:100 +msgid "Error occurred while rendering the template editor." +msgstr "" + +#: src/components/plugins/PluginUIFeature.tsx:111 +msgid "Error Loading Plugin Editor" +msgstr "" + +#: src/components/plugins/PluginUIFeature.tsx:147 +msgid "Error occurred while rendering the template preview." +msgstr "" + +#: src/components/plugins/PluginUIFeature.tsx:158 +msgid "Error Loading Plugin Preview" +msgstr "" + +#: src/components/plugins/RemoteComponent.tsx:70 +msgid "Invalid source or function name" +msgstr "" + +#: src/components/plugins/RemoteComponent.tsx:91 +msgid "Error Loading Content" +msgstr "" + +#: src/components/plugins/RemoteComponent.tsx:95 +msgid "Error occurred while loading plugin content" +msgstr "" + +#: src/components/render/Instance.tsx:224 msgid "Unknown model: {model}" msgstr "Ismeretlen model: {model}" -#: src/components/render/ModelType.tsx:22 -#: src/forms/BuildForms.tsx:213 -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/forms/StockForms.tsx:499 -#: src/forms/StockForms.tsx:533 -#: src/forms/StockForms.tsx:562 -#: src/forms/StockForms.tsx:590 -#: src/forms/StockForms.tsx:621 -#: src/forms/StockForms.tsx:656 -#: src/forms/StockForms.tsx:698 -#: src/forms/StockForms.tsx:734 -#: src/pages/build/BuildDetail.tsx:95 -#: src/pages/part/PartDetail.tsx:1073 -#: src/tables/build/BuildAllocatedStockTable.tsx:82 +#: src/components/render/ModelType.tsx:30 +#: src/forms/BuildForms.tsx:269 +#: src/forms/BuildForms.tsx:337 +#: src/forms/BuildForms.tsx:385 +#: src/forms/BuildForms.tsx:515 +#: src/forms/PurchaseOrderForms.tsx:689 +#: src/forms/ReturnOrderForms.tsx:190 +#: src/forms/SalesOrderForms.tsx:248 +#: src/forms/StockForms.tsx:261 +#: src/forms/StockForms.tsx:614 +#: src/forms/StockForms.tsx:651 +#: src/forms/StockForms.tsx:677 +#: src/forms/StockForms.tsx:705 +#: src/forms/StockForms.tsx:736 +#: src/forms/StockForms.tsx:771 +#: src/forms/StockForms.tsx:813 +#: src/forms/StockForms.tsx:851 +#: src/pages/build/BuildDetail.tsx:90 +#: src/pages/part/PartDetail.tsx:1094 +#: src/tables/build/BuildAllocatedStockTable.tsx:95 +#: src/tables/build/BuildLineTable.tsx:72 #: src/tables/part/PartTable.tsx:28 -#: src/tables/part/RelatedPartTable.tsx:45 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:88 -#: src/tables/sales/SalesOrderAllocationTable.tsx:68 -#: src/tables/stock/StockTrackingTable.tsx:74 +#: src/tables/part/RelatedPartTable.tsx:47 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:130 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:100 +#: src/tables/sales/SalesOrderAllocationTable.tsx:99 +#: src/tables/stock/StockTrackingTable.tsx:78 msgid "Part" msgstr "Alkatrész" -#: src/components/render/ModelType.tsx:23 -#: src/defaults/links.tsx:29 -#: src/defaults/menuItems.tsx:33 -#: src/pages/Index/Settings/SystemSettings.tsx:173 -#: src/pages/part/CategoryDetail.tsx:119 -#: src/pages/part/CategoryDetail.tsx:244 -#: src/pages/part/CategoryDetail.tsx:274 -#: src/pages/part/PartDetail.tsx:827 -msgid "Parts" -msgstr "Alkatrészek" - -#: src/components/render/ModelType.tsx:31 +#: src/components/render/ModelType.tsx:40 msgid "Part Parameter Template" msgstr "Alkatrész paraméter sablon" -#: src/components/render/ModelType.tsx:32 +#: src/components/render/ModelType.tsx:41 msgid "Part Parameter Templates" msgstr "Alkatrész paraméter sablonok" -#: src/components/render/ModelType.tsx:38 +#: src/components/render/ModelType.tsx:48 msgid "Part Test Template" msgstr "" -#: src/components/render/ModelType.tsx:39 +#: src/components/render/ModelType.tsx:49 msgid "Part Test Templates" msgstr "" -#: src/components/render/ModelType.tsx:45 -#: src/pages/company/SupplierPartDetail.tsx:203 -#: src/pages/company/SupplierPartDetail.tsx:375 -#: src/pages/stock/StockDetail.tsx:173 -#: src/tables/build/BuildAllocatedStockTable.tsx:131 +#: src/components/render/ModelType.tsx:56 +#: src/pages/company/SupplierPartDetail.tsx:364 +#: src/pages/stock/StockDetail.tsx:194 +#: src/tables/build/BuildAllocatedStockTable.tsx:152 #: src/tables/part/PartPurchaseOrdersTable.tsx:49 -#: src/tables/purchasing/SupplierPartTable.tsx:68 +#: src/tables/purchasing/SupplierPartTable.tsx:70 +#: src/tables/stock/StockItemTable.tsx:229 msgid "Supplier Part" msgstr "Beszállítói alkatrész" -#: src/components/render/ModelType.tsx:46 +#: src/components/render/ModelType.tsx:57 msgid "Supplier Parts" msgstr "Beszállítói alkatrészek" -#: src/components/render/ModelType.tsx:54 -#: src/pages/company/ManufacturerPartDetail.tsx:132 +#: src/components/render/ModelType.tsx:66 #: src/tables/part/PartPurchaseOrdersTable.tsx:55 +#: src/tables/stock/StockItemTable.tsx:234 msgid "Manufacturer Part" msgstr "Gyártói alkatrész" -#: src/components/render/ModelType.tsx:55 +#: src/components/render/ModelType.tsx:67 msgid "Manufacturer Parts" msgstr "Gyártói alkatrészek" -#: src/components/render/ModelType.tsx:63 -#: src/pages/part/CategoryDetail.tsx:305 +#: src/components/render/ModelType.tsx:76 +#: src/pages/part/CategoryDetail.tsx:310 msgid "Part Category" msgstr "Alkatrész kategória" -#: src/components/render/ModelType.tsx:64 -#: src/pages/part/CategoryDetail.tsx:258 -#: src/pages/part/CategoryDetail.tsx:296 -#: src/pages/part/PartDetail.tsx:1063 +#: src/components/render/ModelType.tsx:77 +#: src/pages/part/CategoryDetail.tsx:263 +#: src/pages/part/CategoryDetail.tsx:301 +#: src/pages/part/PartDetail.tsx:1084 msgid "Part Categories" msgstr "Alkatrész kategóriák" -#: src/components/render/ModelType.tsx:72 -#: src/pages/stock/StockDetail.tsx:624 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:94 -#: src/tables/stock/StockTrackingTable.tsx:45 +#: src/components/render/ModelType.tsx:86 +#: src/forms/BuildForms.tsx:337 +#: src/forms/BuildForms.tsx:385 +#: src/forms/BuildForms.tsx:515 +#: src/forms/SalesOrderForms.tsx:248 +#: src/pages/stock/StockDetail.tsx:839 +#: src/tables/stock/StockTrackingTable.tsx:49 msgid "Stock Item" msgstr "Készlet tétel" -#: src/components/render/ModelType.tsx:73 +#: src/components/render/ModelType.tsx:87 #: src/pages/company/CompanyDetail.tsx:203 -#: src/pages/stock/LocationDetail.tsx:128 -#: src/pages/stock/LocationDetail.tsx:181 -#: src/pages/stock/LocationDetail.tsx:395 +#: src/pages/part/PartStocktakeDetail.tsx:113 +#: src/pages/stock/LocationDetail.tsx:122 +#: src/pages/stock/LocationDetail.tsx:175 +#: src/pages/stock/LocationDetail.tsx:380 msgid "Stock Items" msgstr "Készlet tételek" -#: src/components/render/ModelType.tsx:81 +#: src/components/render/ModelType.tsx:96 msgid "Stock Location" msgstr "Készlet hely" -#: src/components/render/ModelType.tsx:82 -#: src/pages/stock/LocationDetail.tsx:195 -#: src/pages/stock/LocationDetail.tsx:387 -#: src/pages/stock/StockDetail.tsx:616 +#: src/components/render/ModelType.tsx:97 +#: src/pages/stock/LocationDetail.tsx:189 +#: src/pages/stock/LocationDetail.tsx:372 +#: src/pages/stock/StockDetail.tsx:831 msgid "Stock Locations" msgstr "Készlethelyek" -#: src/components/render/ModelType.tsx:90 +#: src/components/render/ModelType.tsx:106 msgid "Stock Location Type" msgstr "" -#: src/components/render/ModelType.tsx:91 +#: src/components/render/ModelType.tsx:107 msgid "Stock Location Types" msgstr "" -#: src/components/render/ModelType.tsx:95 +#: src/components/render/ModelType.tsx:112 +#: src/pages/part/PartDetail.tsx:712 msgid "Stock History" msgstr "Készlettörténet" -#: src/components/render/ModelType.tsx:96 +#: src/components/render/ModelType.tsx:113 msgid "Stock Histories" msgstr "Készlettörténet" -#: src/components/render/ModelType.tsx:100 -#: src/defaults/links.tsx:31 -#: src/defaults/menuItems.tsx:43 +#: src/components/render/ModelType.tsx:118 msgid "Build" msgstr "Gyártás" -#: src/components/render/ModelType.tsx:101 +#: src/components/render/ModelType.tsx:119 msgid "Builds" msgstr "Gyártások" -#: src/components/render/ModelType.tsx:109 +#: src/components/render/ModelType.tsx:128 msgid "Build Line" msgstr "" -#: src/components/render/ModelType.tsx:110 +#: src/components/render/ModelType.tsx:129 msgid "Build Lines" msgstr "" -#: src/components/render/ModelType.tsx:117 +#: src/components/render/ModelType.tsx:137 msgid "Build Item" msgstr "" -#: src/components/render/ModelType.tsx:118 +#: src/components/render/ModelType.tsx:138 msgid "Build Items" msgstr "" -#: src/components/render/ModelType.tsx:122 -#: src/pages/company/CompanyDetail.tsx:339 +#: src/components/render/ModelType.tsx:143 +#: src/pages/company/CompanyDetail.tsx:321 msgid "Company" msgstr "Cég" -#: src/components/render/ModelType.tsx:123 +#: src/components/render/ModelType.tsx:144 msgid "Companies" msgstr "Cégek" -#: src/components/render/ModelType.tsx:131 +#: src/components/render/ModelType.tsx:153 +#: src/pages/build/BuildDetail.tsx:195 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:204 +#: src/pages/sales/ReturnOrderDetail.tsx:174 +#: src/pages/sales/SalesOrderDetail.tsx:186 #: src/tables/TableHoverCard.tsx:81 -#: src/tables/build/BuildOrderTable.tsx:140 -#: src/tables/purchasing/PurchaseOrderTable.tsx:64 -#: src/tables/sales/ReturnOrderTable.tsx:55 -#: src/tables/sales/SalesOrderTable.tsx:62 +#: src/tables/build/BuildOrderTable.tsx:135 +#: src/tables/purchasing/PurchaseOrderTable.tsx:69 +#: src/tables/sales/ReturnOrderTable.tsx:67 +#: src/tables/sales/SalesOrderTable.tsx:67 msgid "Project Code" msgstr "Projektszám" -#: src/components/render/ModelType.tsx:132 -#: src/pages/Index/Settings/AdminCenter/Index.tsx:128 +#: src/components/render/ModelType.tsx:154 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:145 msgid "Project Codes" msgstr "Projektszámok" -#: src/components/render/ModelType.tsx:138 +#: src/components/render/ModelType.tsx:161 #: src/pages/part/pricing/PurchaseHistoryPanel.tsx:32 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:480 -#: src/tables/part/PartPurchaseOrdersTable.tsx:32 -#: src/tables/stock/StockTrackingTable.tsx:107 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:477 +#: src/pages/stock/StockDetail.tsx:253 +#: src/tables/part/PartPurchaseOrdersTable.tsx:31 +#: src/tables/stock/StockItemTable.tsx:222 +#: src/tables/stock/StockTrackingTable.tsx:111 msgid "Purchase Order" msgstr "Beszerzési rendelés" -#: src/components/render/ModelType.tsx:139 -#: src/pages/Index/Settings/SystemSettings.tsx:255 +#: src/components/render/ModelType.tsx:162 +#: src/pages/Index/Settings/SystemSettings.tsx:249 #: src/pages/company/CompanyDetail.tsx:196 -#: src/pages/company/SupplierPartDetail.tsx:237 -#: src/pages/part/PartDetail.tsx:662 +#: src/pages/company/SupplierPartDetail.tsx:249 +#: src/pages/part/PartDetail.tsx:683 #: src/pages/purchasing/PurchasingIndex.tsx:25 msgid "Purchase Orders" msgstr "Beszerzési rendelések" -#: src/components/render/ModelType.tsx:147 +#: src/components/render/ModelType.tsx:171 msgid "Purchase Order Line" msgstr "Beszerzési rendelés tétel" -#: src/components/render/ModelType.tsx:148 +#: src/components/render/ModelType.tsx:172 msgid "Purchase Order Lines" msgstr "Beszerzési rendelés tételei" -#: src/components/render/ModelType.tsx:152 -#: src/pages/build/BuildDetail.tsx:153 -#: src/pages/sales/SalesOrderDetail.tsx:520 -#: src/pages/stock/StockDetail.tsx:221 -#: src/tables/sales/SalesOrderAllocationTable.tsx:50 -#: src/tables/stock/StockTrackingTable.tsx:118 +#: src/components/render/ModelType.tsx:177 +#: src/pages/build/BuildDetail.tsx:148 +#: src/pages/part/pricing/SaleHistoryPanel.tsx:24 +#: src/pages/sales/SalesOrderDetail.tsx:515 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:92 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:341 +#: src/pages/stock/StockDetail.tsx:262 +#: src/tables/sales/SalesOrderAllocationTable.tsx:80 +#: src/tables/stock/StockTrackingTable.tsx:122 msgid "Sales Order" msgstr "Vevői rendelés" -#: src/components/render/ModelType.tsx:153 -#: src/pages/Index/Settings/SystemSettings.tsx:270 +#: src/components/render/ModelType.tsx:178 +#: src/pages/Index/Settings/SystemSettings.tsx:264 #: src/pages/company/CompanyDetail.tsx:216 -#: src/pages/part/PartDetail.tsx:669 +#: src/pages/part/PartDetail.tsx:695 #: src/pages/sales/SalesIndex.tsx:26 msgid "Sales Orders" msgstr "Vevői rendelések" -#: src/components/render/ModelType.tsx:161 +#: src/components/render/ModelType.tsx:187 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:340 msgid "Sales Order Shipment" msgstr "Vevői rendelés szállítmány" -#: src/components/render/ModelType.tsx:162 +#: src/components/render/ModelType.tsx:188 msgid "Sales Order Shipments" msgstr "Vevői rendelés szállítmányok" -#: src/components/render/ModelType.tsx:168 -#: src/pages/sales/ReturnOrderDetail.tsx:469 -#: src/tables/stock/StockTrackingTable.tsx:129 +#: src/components/render/ModelType.tsx:195 +#: src/pages/sales/ReturnOrderDetail.tsx:464 +#: src/tables/stock/StockTrackingTable.tsx:133 msgid "Return Order" msgstr "Visszavétel" -#: src/components/render/ModelType.tsx:169 -#: src/pages/Index/Settings/SystemSettings.tsx:286 +#: src/components/render/ModelType.tsx:196 +#: src/pages/Index/Settings/SystemSettings.tsx:280 #: src/pages/company/CompanyDetail.tsx:223 +#: src/pages/part/PartDetail.tsx:702 #: src/pages/sales/SalesIndex.tsx:32 msgid "Return Orders" msgstr "Visszavételek" -#: src/components/render/ModelType.tsx:177 +#: src/components/render/ModelType.tsx:205 msgid "Return Order Line Item" msgstr "" -#: src/components/render/ModelType.tsx:178 +#: src/components/render/ModelType.tsx:206 msgid "Return Order Line Items" msgstr "" -#: src/components/render/ModelType.tsx:182 -#: src/tables/company/AddressTable.tsx:47 +#: src/components/render/ModelType.tsx:211 +#: src/tables/company/AddressTable.tsx:48 msgid "Address" msgstr "Cím" -#: src/components/render/ModelType.tsx:183 -#: src/pages/company/CompanyDetail.tsx:253 +#: src/components/render/ModelType.tsx:212 +#: src/pages/company/CompanyDetail.tsx:255 msgid "Addresses" msgstr "Címek" -#: src/components/render/ModelType.tsx:189 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:195 -#: src/pages/sales/ReturnOrderDetail.tsx:174 -#: src/pages/sales/SalesOrderDetail.tsx:183 +#: src/components/render/ModelType.tsx:219 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:196 +#: src/pages/sales/ReturnOrderDetail.tsx:166 +#: src/pages/sales/SalesOrderDetail.tsx:178 msgid "Contact" msgstr "Kapcsolat" -#: src/components/render/ModelType.tsx:190 -#: src/pages/company/CompanyDetail.tsx:247 +#: src/components/render/ModelType.tsx:220 +#: src/pages/company/CompanyDetail.tsx:249 msgid "Contacts" msgstr "Kapcsolatok" -#: src/components/render/ModelType.tsx:196 +#: src/components/render/ModelType.tsx:227 msgid "Owner" msgstr "Tulajdonos" -#: src/components/render/ModelType.tsx:197 +#: src/components/render/ModelType.tsx:228 msgid "Owners" msgstr "Tulajdonosok" -#: src/components/render/ModelType.tsx:203 -#: src/tables/settings/ImportSessionTable.tsx:121 -#: src/tables/stock/StockItemTestResultTable.tsx:198 -#: src/tables/stock/StockTrackingTable.tsx:195 +#: src/components/render/ModelType.tsx:234 +#~ msgid "Purchase Order Line Item" +#~ msgstr "Purchase Order Line Item" + +#: src/components/render/ModelType.tsx:235 +#: src/tables/settings/BarcodeScanHistoryTable.tsx:80 +#: src/tables/settings/BarcodeScanHistoryTable.tsx:211 +#: src/tables/settings/ImportSessionTable.tsx:120 +#: src/tables/settings/StocktakeReportTable.tsx:44 +#: src/tables/stock/StockItemTestResultTable.tsx:204 +#: src/tables/stock/StockTrackingTable.tsx:181 +#: src/tables/stock/StockTrackingTable.tsx:210 msgid "User" msgstr "Felhasználó" -#: src/components/render/ModelType.tsx:204 -#: src/pages/Index/Settings/AdminCenter/Index.tsx:98 +#: src/components/render/ModelType.tsx:236 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:109 #: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:13 msgid "Users" msgstr "Felhasználók" -#: src/components/render/ModelType.tsx:210 +#: src/components/render/ModelType.tsx:243 msgid "Group" msgstr "" -#: src/components/render/ModelType.tsx:211 +#: src/components/render/ModelType.tsx:244 #: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:20 -#: src/tables/settings/UserTable.tsx:138 -#: src/tables/settings/UserTable.tsx:201 +#: src/tables/settings/UserTable.tsx:137 +#: src/tables/settings/UserTable.tsx:200 msgid "Groups" msgstr "Csoportok" -#: src/components/render/ModelType.tsx:218 +#: src/components/render/ModelType.tsx:252 msgid "Import Session" msgstr "" -#: src/components/render/ModelType.tsx:219 +#: src/components/render/ModelType.tsx:253 msgid "Import Sessions" msgstr "" -#: src/components/render/ModelType.tsx:225 +#: src/components/render/ModelType.tsx:260 msgid "Label Template" msgstr "" -#: src/components/render/ModelType.tsx:226 -#: src/pages/Index/Settings/AdminCenter/Index.tsx:158 +#: src/components/render/ModelType.tsx:261 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:187 msgid "Label Templates" msgstr "" -#: src/components/render/ModelType.tsx:232 +#: src/components/render/ModelType.tsx:264 +#~ msgid "Unknown Model" +#~ msgstr "Unknown Model" + +#: src/components/render/ModelType.tsx:268 msgid "Report Template" msgstr "" -#: src/components/render/ModelType.tsx:233 -#: src/pages/Index/Settings/AdminCenter/Index.tsx:164 +#: src/components/render/ModelType.tsx:269 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:193 msgid "Report Templates" msgstr "" -#: src/components/render/ModelType.tsx:239 -msgid "Plugin Configuration" -msgstr "" - -#: src/components/render/ModelType.tsx:240 +#: src/components/render/ModelType.tsx:277 msgid "Plugin Configurations" msgstr "" +#: src/components/render/ModelType.tsx:284 +msgid "Content Type" +msgstr "" + +#: src/components/render/ModelType.tsx:285 +msgid "Content Types" +msgstr "" + +#: src/components/render/ModelType.tsx:291 +#: src/tables/machine/MachineListTable.tsx:351 +#: src/tables/machine/MachineTypeTable.tsx:282 +msgid "Errors" +msgstr "" + +#: src/components/render/ModelType.tsx:307 +#~ msgid "Purchase Order Line Items" +#~ msgstr "Purchase Order Line Items" + +#: src/components/render/ModelType.tsx:337 +#~ msgid "Unknown Models" +#~ msgstr "Unknown Models" + #: src/components/render/Order.tsx:121 +#: src/tables/sales/SalesOrderAllocationTable.tsx:136 msgid "Shipment" msgstr "Szállítmány" #: src/components/render/Part.tsx:25 #: src/components/render/Plugin.tsx:17 -#: src/pages/company/CompanyDetail.tsx:325 -#: src/pages/company/SupplierPartDetail.tsx:360 -#: src/pages/part/PartDetail.tsx:879 +#: src/pages/company/CompanyDetail.tsx:307 +#: src/pages/company/SupplierPartDetail.tsx:349 +#: src/pages/part/PartDetail.tsx:911 msgid "Inactive" msgstr "Inaktív" @@ -1736,39 +2335,38 @@ msgstr "Inaktív" msgid "No stock" msgstr "Nincs készlet" -#: src/components/render/Part.tsx:30 -#: src/defaults/links.tsx:30 -#: src/defaults/menuItems.tsx:38 -#: src/pages/Index/Settings/SystemSettings.tsx:206 -#: src/pages/part/PartDetail.tsx:543 -#: src/pages/stock/LocationDetail.tsx:367 -#: src/pages/stock/StockDetail.tsx:411 -#: src/tables/stock/StockItemTable.tsx:68 -msgid "Stock" -msgstr "Készlet" - -#: src/components/render/Stock.tsx:60 -#: src/pages/stock/StockDetail.tsx:150 -#: src/pages/stock/StockDetail.tsx:581 -#: src/tables/build/BuildAllocatedStockTable.tsx:102 -#: src/tables/sales/SalesOrderAllocationTable.tsx:80 +#: src/components/render/Stock.tsx:61 +#: src/forms/ReturnOrderForms.tsx:190 +#: src/pages/stock/StockDetail.tsx:166 +#: src/pages/stock/StockDetail.tsx:771 +#: src/tables/build/BuildAllocatedStockTable.tsx:123 +#: src/tables/build/BuildOutputTable.tsx:81 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:114 +#: src/tables/sales/SalesOrderAllocationTable.tsx:106 msgid "Serial Number" msgstr "Sorozatszám" -#: src/components/render/Stock.tsx:62 -#: src/forms/BuildForms.tsx:218 -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/pages/part/pricing/BomPricingPanel.tsx:109 +#: src/components/render/Stock.tsx:63 +#: src/forms/BuildForms.tsx:206 +#: src/forms/BuildForms.tsx:515 +#: src/forms/PurchaseOrderForms.tsx:689 +#: src/forms/SalesOrderForms.tsx:248 +#: src/pages/part/PartSchedulingDetail.tsx:80 +#: src/pages/part/PartStocktakeDetail.tsx:60 +#: src/pages/part/PartStocktakeDetail.tsx:234 +#: src/pages/part/PartStocktakeDetail.tsx:252 +#: src/pages/part/pricing/BomPricingPanel.tsx:148 #: src/pages/part/pricing/PriceBreakPanel.tsx:89 -#: src/pages/part/pricing/PriceBreakPanel.tsx:171 -#: src/pages/stock/StockDetail.tsx:145 -#: src/pages/stock/StockDetail.tsx:587 -#: src/tables/build/BuildOrderTestTable.tsx:197 -#: src/tables/part/PartPurchaseOrdersTable.tsx:92 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:143 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:171 +#: src/pages/part/pricing/PriceBreakPanel.tsx:172 +#: src/pages/stock/StockDetail.tsx:161 +#: src/pages/stock/StockDetail.tsx:777 +#: src/tables/build/BuildLineTable.tsx:79 +#: src/tables/build/BuildOrderTestTable.tsx:198 +#: src/tables/part/PartPurchaseOrdersTable.tsx:93 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:146 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:177 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:77 -#: src/tables/stock/StockTrackingTable.tsx:59 +#: src/tables/stock/StockTrackingTable.tsx:63 msgid "Quantity" msgstr "Mennyiség" @@ -1842,10 +2440,6 @@ msgstr "" #~ msgid "Required Part" #~ msgstr "Required Part" -#: src/components/tables/build/BuildLineTable.tsx:152 -#~ msgid "Required Quantity" -#~ msgstr "Required Quantity" - #: src/components/tables/build/BuildOrderTable.tsx:52 #~ msgid "Progress" #~ msgstr "Progress" @@ -2126,14 +2720,6 @@ msgstr "" #~ msgid "user deleted" #~ msgstr "user deleted" -#: src/components/tables/settings/UserTable.tsx:168 -#~ msgid "First Name" -#~ msgstr "First Name" - -#: src/components/tables/settings/UserTable.tsx:173 -#~ msgid "Last Name" -#~ msgstr "Last Name" - #: src/components/tables/stock/StockItemTable.tsx:247 #~ msgid "Test Filter" #~ msgstr "Test Filter" @@ -2146,36 +2732,21 @@ msgstr "" #~ msgid "Stock location updated" #~ msgstr "Stock location updated" -#: src/components/widgets/DisplayWidget.tsx:11 -#: src/pages/Index/Settings/AccountSettings/DisplaySettingsPanel.tsx:17 -msgid "Display Settings" -msgstr "Megjelenítési beállítások" - -#: src/components/widgets/DisplayWidget.tsx:15 -#: src/pages/Index/Settings/AccountSettings/DisplaySettingsPanel.tsx:23 -msgid "Color Mode" -msgstr "Megjelenítési mód" - -#: src/components/widgets/DisplayWidget.tsx:21 -#: src/pages/Index/Settings/AccountSettings/DisplaySettingsPanel.tsx:33 -msgid "Language" -msgstr "Nyelv" - #: src/components/widgets/FeedbackWidget.tsx:19 -msgid "Something is new: Platform UI" -msgstr "Újdonság: Felhasználói felület" +#~ msgid "Something is new: Platform UI" +#~ msgstr "Something is new: Platform UI" #: src/components/widgets/FeedbackWidget.tsx:21 -msgid "We are building a new UI with a modern stack. What you currently see is not fixed and will be redesigned but demonstrates the UI/UX possibilities we will have going forward." -msgstr "Új felhasználói felületet készítünk modern alapokon. Ugyan a jelenlegi állapot nem végleges és még át is lesz alakítva, de szemlélteti a felhasználói felület és élmény jövőbeli lehetőségeit." +#~ msgid "We are building a new UI with a modern stack. What you currently see is not fixed and will be redesigned but demonstrates the UI/UX possibilities we will have going forward." +#~ msgstr "We are building a new UI with a modern stack. What you currently see is not fixed and will be redesigned but demonstrates the UI/UX possibilities we will have going forward." #: src/components/widgets/FeedbackWidget.tsx:32 -msgid "Provide Feedback" -msgstr "Visszajelzés küldése" +#~ msgid "Provide Feedback" +#~ msgstr "Provide Feedback" #: src/components/widgets/GetStartedWidget.tsx:11 -msgid "Getting started" -msgstr "Első lépések" +#~ msgid "Getting started" +#~ msgstr "Getting started" #: src/components/widgets/MarkdownEditor.tsx:108 #~ msgid "Failed to upload image" @@ -2186,28 +2757,24 @@ msgstr "Első lépések" #~ msgstr "Notes saved" #: src/components/widgets/WidgetLayout.tsx:166 -msgid "Layout" -msgstr "Elrendezés" +#~ msgid "Layout" +#~ msgstr "Layout" #: src/components/widgets/WidgetLayout.tsx:172 -msgid "Reset Layout" -msgstr "Elrendezés visszaállítása" +#~ msgid "Reset Layout" +#~ msgstr "Reset Layout" #: src/components/widgets/WidgetLayout.tsx:185 -msgid "Stop Edit" -msgstr "Szerkesztés befejezése" - -#: src/components/widgets/WidgetLayout.tsx:185 -msgid "Edit Layout" -msgstr "Elrendezés szerkesztése" +#~ msgid "Stop Edit" +#~ msgstr "Stop Edit" #: src/components/widgets/WidgetLayout.tsx:191 -msgid "Appearance" -msgstr "Megjelenítés" +#~ msgid "Appearance" +#~ msgstr "Appearance" #: src/components/widgets/WidgetLayout.tsx:203 -msgid "Show Boxes" -msgstr "Dobozok megjelenítése" +#~ msgid "Show Boxes" +#~ msgstr "Show Boxes" #: src/contexts/LanguageContext.tsx:20 msgid "Arabic" @@ -2286,201 +2853,175 @@ msgid "Korean" msgstr "Koreai" #: src/contexts/LanguageContext.tsx:39 -msgid "Latvian" +msgid "Lithuanian" msgstr "" #: src/contexts/LanguageContext.tsx:40 +msgid "Latvian" +msgstr "" + +#: src/contexts/LanguageContext.tsx:41 msgid "Dutch" msgstr "Holland" -#: src/contexts/LanguageContext.tsx:41 +#: src/contexts/LanguageContext.tsx:42 msgid "Norwegian" msgstr "Norvég" -#: src/contexts/LanguageContext.tsx:42 +#: src/contexts/LanguageContext.tsx:43 msgid "Polish" msgstr "Lengyel" -#: src/contexts/LanguageContext.tsx:43 +#: src/contexts/LanguageContext.tsx:44 msgid "Portuguese" msgstr "Portugál" -#: src/contexts/LanguageContext.tsx:44 +#: src/contexts/LanguageContext.tsx:45 msgid "Portuguese (Brazilian)" msgstr "Portugál (Brazíliai)" -#: src/contexts/LanguageContext.tsx:45 +#: src/contexts/LanguageContext.tsx:46 msgid "Romanian" msgstr "" -#: src/contexts/LanguageContext.tsx:46 +#: src/contexts/LanguageContext.tsx:47 msgid "Russian" msgstr "Orosz" -#: src/contexts/LanguageContext.tsx:47 +#: src/contexts/LanguageContext.tsx:48 msgid "Slovak" msgstr "" -#: src/contexts/LanguageContext.tsx:48 +#: src/contexts/LanguageContext.tsx:49 msgid "Slovenian" msgstr "Szlovén" -#: src/contexts/LanguageContext.tsx:49 +#: src/contexts/LanguageContext.tsx:50 msgid "Swedish" msgstr "Svéd" -#: src/contexts/LanguageContext.tsx:50 +#: src/contexts/LanguageContext.tsx:51 msgid "Thai" msgstr "Tháj" -#: src/contexts/LanguageContext.tsx:51 +#: src/contexts/LanguageContext.tsx:52 msgid "Turkish" msgstr "Török" -#: src/contexts/LanguageContext.tsx:52 +#: src/contexts/LanguageContext.tsx:53 msgid "Ukrainian" msgstr "" -#: src/contexts/LanguageContext.tsx:53 +#: src/contexts/LanguageContext.tsx:54 msgid "Vietnamese" msgstr "Vietnámi" -#: src/contexts/LanguageContext.tsx:54 +#: src/contexts/LanguageContext.tsx:55 msgid "Chinese (Simplified)" msgstr "Kínai (egyszerűsített)" -#: src/contexts/LanguageContext.tsx:55 +#: src/contexts/LanguageContext.tsx:56 msgid "Chinese (Traditional)" msgstr "Kínai (Hagyományos)" #: src/defaults/actions.tsx:18 -#: src/defaults/links.tsx:27 -#: src/defaults/menuItems.tsx:9 -msgid "Home" -msgstr "Főoldal" - -#: src/defaults/actions.tsx:25 -#: src/defaults/links.tsx:28 -#: src/defaults/menuItems.tsx:28 -#: src/pages/Index/Dashboard.tsx:19 -#: src/pages/Index/Settings/UserSettings.tsx:46 -msgid "Dashboard" -msgstr "Irányítópult" - -#: src/defaults/actions.tsx:26 msgid "Go to the InvenTree dashboard" msgstr "" -#: src/defaults/actions.tsx:33 +#: src/defaults/actions.tsx:18 +#: src/defaults/links.tsx:27 +#: src/defaults/menuItems.tsx:9 +#~ msgid "Home" +#~ msgstr "Home" + +#: src/defaults/actions.tsx:25 msgid "Visit the documentation to learn more about InvenTree" msgstr "" -#: src/defaults/actions.tsx:39 -#: src/defaults/links.tsx:98 -#: src/defaults/links.tsx:128 +#: src/defaults/actions.tsx:31 +#: src/defaults/links.tsx:92 +#: src/defaults/links.tsx:124 msgid "About InvenTree" msgstr "InvenTree névjegy" -#: src/defaults/actions.tsx:40 -#: src/defaults/links.tsx:129 +#: src/defaults/actions.tsx:32 msgid "About the InvenTree org" msgstr "Az inventree.org-ról" -#: src/defaults/actions.tsx:46 +#: src/defaults/actions.tsx:38 msgid "Server Information" msgstr "" -#: src/defaults/actions.tsx:47 -#: src/defaults/links.tsx:123 +#: src/defaults/actions.tsx:39 +#: src/defaults/links.tsx:118 msgid "About this Inventree instance" msgstr "InvenTree példány névjegye" -#: src/defaults/actions.tsx:53 -#: src/defaults/links.tsx:111 +#: src/defaults/actions.tsx:45 +#: src/defaults/links.tsx:105 +#: src/defaults/links.tsx:131 msgid "License Information" msgstr "" -#: src/defaults/actions.tsx:54 -#: src/defaults/links.tsx:135 +#: src/defaults/actions.tsx:46 msgid "Licenses for dependencies of the service" msgstr "" -#: src/defaults/actions.tsx:61 +#: src/defaults/actions.tsx:52 +msgid "Open Navigation" +msgstr "Navigáció megnyitása" + +#: src/defaults/actions.tsx:53 msgid "Open the main navigation menu" msgstr "" -#: src/defaults/actions.tsx:72 +#: src/defaults/actions.tsx:64 msgid "Go to the Admin Center" msgstr "" -#: src/defaults/dashboardItems.tsx:15 -msgid "Subscribed Parts" -msgstr "Értesítésre beállított alkatrészek" - -#: src/defaults/dashboardItems.tsx:22 -msgid "Subscribed Categories" -msgstr "Értesítésre beállított kategóriák" - #: src/defaults/dashboardItems.tsx:29 -msgid "Latest Parts" -msgstr "Legújabb alkatrészek" +#~ msgid "Latest Parts" +#~ msgstr "Latest Parts" #: src/defaults/dashboardItems.tsx:36 -msgid "BOM Waiting Validation" -msgstr "Jóváhagyásra váró alkatrészjegyzék" +#~ msgid "BOM Waiting Validation" +#~ msgstr "BOM Waiting Validation" #: src/defaults/dashboardItems.tsx:43 -msgid "Recently Updated" -msgstr "Nemrég frissítve" - -#: src/defaults/dashboardItems.tsx:50 -#: src/tables/part/PartTable.tsx:238 -msgid "Low Stock" -msgstr "Alacsony készlet" +#~ msgid "Recently Updated" +#~ msgstr "Recently Updated" #: src/defaults/dashboardItems.tsx:57 -msgid "Depleted Stock" -msgstr "Kimerült készlet" +#~ msgid "Depleted Stock" +#~ msgstr "Depleted Stock" #: src/defaults/dashboardItems.tsx:64 -msgid "Required for Build Orders" -msgstr "Gyártáshoz szükséges" +#~ msgid "Required for Build Orders" +#~ msgstr "Required for Build Orders" #: src/defaults/dashboardItems.tsx:71 -msgid "Expired Stock" -msgstr "Lejárt készlet" +#~ msgid "Expired Stock" +#~ msgstr "Expired Stock" #: src/defaults/dashboardItems.tsx:78 -msgid "Stale Stock" -msgstr "Állott készlet" +#~ msgid "Stale Stock" +#~ msgstr "Stale Stock" #: src/defaults/dashboardItems.tsx:85 -msgid "Build Orders In Progress" -msgstr "Folyamatban lévő gyártások" - -#: src/defaults/dashboardItems.tsx:92 -msgid "Overdue Build Orders" -msgstr "Késésben lévő gyártások" +#~ msgid "Build Orders In Progress" +#~ msgstr "Build Orders In Progress" #: src/defaults/dashboardItems.tsx:99 -msgid "Outstanding Purchase Orders" -msgstr "Kintlévő beszerzési rendelések" - -#: src/defaults/dashboardItems.tsx:106 -msgid "Overdue Purchase Orders" -msgstr "Késésben lévő beszerzések" +#~ msgid "Outstanding Purchase Orders" +#~ msgstr "Outstanding Purchase Orders" #: src/defaults/dashboardItems.tsx:113 -msgid "Outstanding Sales Orders" -msgstr "Függő vevői rendelések" - -#: src/defaults/dashboardItems.tsx:120 -msgid "Overdue Sales Orders" -msgstr "Késésben lévő vevői rendelések" +#~ msgid "Outstanding Sales Orders" +#~ msgstr "Outstanding Sales Orders" #: src/defaults/dashboardItems.tsx:127 -msgid "Current News" -msgstr "Jelenlegi hírek" +#~ msgid "Current News" +#~ msgstr "Current News" #: src/defaults/defaultHostList.tsx:8 #~ msgid "InvenTree Demo" @@ -2490,97 +3031,80 @@ msgstr "Jelenlegi hírek" #~ msgid "Local Server" #~ msgstr "Local Server" -#: src/defaults/links.tsx:12 -#: src/pages/company/CompanyDetail.tsx:96 -msgid "Website" -msgstr "Weboldal" - #: src/defaults/links.tsx:17 -msgid "GitHub" -msgstr "GitHub" +#~ msgid "GitHub" +#~ msgstr "GitHub" #: src/defaults/links.tsx:22 -msgid "Demo" -msgstr "Demó" - -#: src/defaults/links.tsx:33 -#: src/defaults/menuItems.tsx:48 -#: src/pages/company/ManufacturerDetail.tsx:9 -#: src/pages/company/ManufacturerPartDetail.tsx:263 -#: src/pages/company/SupplierDetail.tsx:9 -#: src/pages/company/SupplierPartDetail.tsx:347 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:483 -#: src/pages/purchasing/PurchasingIndex.tsx:60 -msgid "Purchasing" -msgstr "Beszerzés" - -#: src/defaults/links.tsx:37 -#: src/defaults/menuItems.tsx:53 -#: src/pages/company/CustomerDetail.tsx:9 -#: src/pages/sales/ReturnOrderDetail.tsx:474 -#: src/pages/sales/SalesIndex.tsx:53 -#: src/pages/sales/SalesOrderDetail.tsx:525 -msgid "Sales" -msgstr "Eladás" +#~ msgid "Demo" +#~ msgstr "Demo" #: src/defaults/links.tsx:41 #: src/defaults/menuItems.tsx:71 #: src/pages/Index/Playground.tsx:217 -msgid "Playground" -msgstr "Játszótér" +#~ msgid "Playground" +#~ msgstr "Playground" -#: src/defaults/links.tsx:55 -msgid "Getting Started" -msgstr "Első lépések" - -#: src/defaults/links.tsx:56 -msgid "Getting started with InvenTree" -msgstr "Első lépések az InvenTree-vel" - -#: src/defaults/links.tsx:62 +#: src/defaults/links.tsx:45 msgid "API" msgstr "API" -#: src/defaults/links.tsx:63 +#: src/defaults/links.tsx:48 msgid "InvenTree API documentation" msgstr "InvenTree API dokumentáció" -#: src/defaults/links.tsx:68 +#: src/defaults/links.tsx:52 msgid "Developer Manual" msgstr "Fejlesztői dokumentáció" -#: src/defaults/links.tsx:69 +#: src/defaults/links.tsx:55 msgid "InvenTree developer manual" msgstr "InvenTree fejlesztői dokumentáció" -#: src/defaults/links.tsx:74 +#: src/defaults/links.tsx:59 msgid "FAQ" msgstr "GYIK" -#: src/defaults/links.tsx:75 +#: src/defaults/links.tsx:62 msgid "Frequently asked questions" msgstr "Gyakran ismételt kérdések" +#: src/defaults/links.tsx:66 +msgid "GitHub Repository" +msgstr "" + +#: src/defaults/links.tsx:69 +msgid "InvenTree source code on GitHub" +msgstr "" + #: src/defaults/links.tsx:76 #~ msgid "Instance" #~ msgstr "Instance" +#: src/defaults/links.tsx:79 +#: src/defaults/links.tsx:117 +msgid "System Information" +msgstr "Rendszerinformáció" + #: src/defaults/links.tsx:83 #~ msgid "InvenTree" #~ msgstr "InvenTree" -#: src/defaults/links.tsx:85 -#: src/defaults/links.tsx:122 -msgid "System Information" -msgstr "Rendszerinformáció" - #: src/defaults/links.tsx:117 #~ msgid "Licenses for packages used by InvenTree" #~ msgstr "Licenses for packages used by InvenTree" +#: src/defaults/links.tsx:125 +msgid "About the InvenTree Project" +msgstr "" + +#: src/defaults/links.tsx:132 +msgid "Licenses for dependencies of the InvenTree software" +msgstr "" + #: src/defaults/links.tsx:134 -msgid "Licenses" -msgstr "Licencek" +#~ msgid "Licenses" +#~ msgstr "Licenses" #: src/defaults/menuItems.tsx:7 #~ msgid "Open sourcea" @@ -2607,8 +3131,8 @@ msgstr "Licencek" #~ msgstr "Profile page" #: src/defaults/menuItems.tsx:17 -msgid "User attributes and design settings." -msgstr "Felhasználói beállítások" +#~ msgid "User attributes and design settings." +#~ msgstr "User attributes and design settings." #: src/defaults/menuItems.tsx:21 #~ msgid "Free for everyone" @@ -2619,8 +3143,8 @@ msgstr "Felhasználói beállítások" #~ msgstr "The fluid of Smeargle’s tail secretions changes" #: src/defaults/menuItems.tsx:23 -msgid "View for interactive scanning and multiple actions." -msgstr "Nézet interaktív szkenneléshez és más műveletekhez." +#~ msgid "View for interactive scanning and multiple actions." +#~ msgstr "View for interactive scanning and multiple actions." #: src/defaults/menuItems.tsx:24 #~ msgid "The fluid of Smeargle’s tail secretions changes in the intensity" @@ -2698,51 +3222,130 @@ msgstr "Nézet interaktív szkenneléshez és más műveletekhez." #~ msgid "Are you sure you want to delete this attachment?" #~ msgstr "Are you sure you want to delete this attachment?" -#: src/forms/BuildForms.tsx:158 -msgid "Next serial number" -msgstr "" +#: src/forms/BuildForms.tsx:248 +#~ msgid "Remove output" +#~ msgstr "Remove output" -#: src/forms/BuildForms.tsx:162 -msgid "Latest serial number" -msgstr "" +#: src/forms/BuildForms.tsx:269 +#: src/tables/build/BuildAllocatedStockTable.tsx:147 +#: src/tables/build/BuildOrderTestTable.tsx:177 +#: src/tables/build/BuildOrderTestTable.tsx:201 +#: src/tables/build/BuildOutputTable.tsx:460 +msgid "Build Output" +msgstr "Gyártás kimenet" -#: src/forms/BuildForms.tsx:234 -msgid "Remove output" -msgstr "" +#: src/forms/BuildForms.tsx:269 +#: src/forms/BuildForms.tsx:337 +#: src/forms/BuildForms.tsx:385 +#: src/tables/build/BuildLineTable.tsx:89 +msgid "Batch" +msgstr "Köteg" -#: src/forms/BuildForms.tsx:316 +#: src/forms/BuildForms.tsx:269 +#: src/forms/BuildForms.tsx:337 +#: src/forms/BuildForms.tsx:385 +#: src/forms/PurchaseOrderForms.tsx:603 +#: src/pages/build/BuildDetail.tsx:104 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:142 +#: src/pages/sales/ReturnOrderDetail.tsx:113 +#: src/pages/sales/SalesOrderDetail.tsx:122 +#: src/tables/build/BuildOrderTable.tsx:125 +#: src/tables/machine/MachineListTable.tsx:336 +#: src/tables/part/PartPurchaseOrdersTable.tsx:37 +#: src/tables/purchasing/PurchaseOrderTable.tsx:58 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:157 +#: src/tables/sales/ReturnOrderTable.tsx:56 +#: src/tables/sales/SalesOrderTable.tsx:56 +#: src/tables/settings/CustomStateTable.tsx:57 +#: src/tables/settings/ImportSessionTable.tsx:114 +#: src/tables/stock/StockItemTable.tsx:298 +#: src/tables/stock/StockTrackingTable.tsx:56 +msgid "Status" +msgstr "Állapot" + +#: src/forms/BuildForms.tsx:289 msgid "Complete Build Outputs" msgstr "" -#: src/forms/BuildForms.tsx:320 +#: src/forms/BuildForms.tsx:292 msgid "Build outputs have been completed" msgstr "" -#: src/forms/BuildForms.tsx:389 +#: src/forms/BuildForms.tsx:353 msgid "Scrap Build Outputs" msgstr "" -#: src/forms/BuildForms.tsx:393 +#: src/forms/BuildForms.tsx:356 msgid "Build outputs have been scrapped" msgstr "" -#: src/forms/BuildForms.tsx:425 -#: src/forms/BuildForms.tsx:449 +#: src/forms/BuildForms.tsx:393 msgid "Cancel Build Outputs" msgstr "" -#: src/forms/BuildForms.tsx:426 -msgid "Selected build outputs will be deleted" -msgstr "" - -#: src/forms/BuildForms.tsx:453 +#: src/forms/BuildForms.tsx:396 msgid "Build outputs have been cancelled" msgstr "" +#: src/forms/BuildForms.tsx:408 +#~ msgid "Selected build outputs will be deleted" +#~ msgstr "Selected build outputs will be deleted" + +#: src/forms/BuildForms.tsx:470 +#~ msgid "Remove line" +#~ msgstr "Remove line" + +#: src/forms/BuildForms.tsx:515 +#: src/forms/SalesOrderForms.tsx:248 +#: src/tables/build/BuildLineTable.tsx:174 +#: src/tables/sales/SalesOrderLineItemTable.tsx:276 +#: src/tables/stock/StockItemTable.tsx:309 +msgid "Allocated" +msgstr "" + +#: src/forms/BuildForms.tsx:545 +#: src/forms/SalesOrderForms.tsx:239 +#: src/pages/build/BuildDetail.tsx:208 +msgid "Source Location" +msgstr "" + +#: src/forms/BuildForms.tsx:546 +#: src/forms/SalesOrderForms.tsx:240 +msgid "Select the source location for the stock allocation" +msgstr "A készlet hozzárendelés forrás készlethelyének kiválasztása" + +#: src/forms/BuildForms.tsx:566 +#: src/forms/SalesOrderForms.tsx:274 +#: src/tables/build/BuildLineTable.tsx:442 +#: src/tables/build/BuildLineTable.tsx:569 +#: src/tables/build/BuildLineTable.tsx:642 +#: src/tables/sales/SalesOrderLineItemTable.tsx:302 +#: src/tables/sales/SalesOrderLineItemTable.tsx:326 +msgid "Allocate Stock" +msgstr "Készlet foglalása" + +#: src/forms/BuildForms.tsx:569 +#: src/forms/SalesOrderForms.tsx:279 +msgid "Stock items allocated" +msgstr "Készlet lefoglalva" + #: src/forms/CompanyForms.tsx:150 #~ msgid "Company updated" #~ msgstr "Company updated" +#: src/forms/PartForms.tsx:67 +#: src/forms/PartForms.tsx:154 +#: src/pages/part/CategoryDetail.tsx:117 +#: src/pages/part/PartDetail.tsx:384 +#: src/tables/part/PartCategoryTable.tsx:90 +#: src/tables/part/PartTable.tsx:294 +msgid "Subscribed" +msgstr "" + +#: src/forms/PartForms.tsx:68 +msgid "Subscribe to notifications for this part" +msgstr "" + #: src/forms/PartForms.tsx:106 #~ msgid "Create Part" #~ msgstr "Create Part" @@ -2751,191 +3354,190 @@ msgstr "" #~ msgid "Part created" #~ msgstr "Part created" -#: src/forms/PartForms.tsx:124 -msgid "Parent part category" -msgstr "Felsőbb szintű alkatrész kategória" - #: src/forms/PartForms.tsx:129 #~ msgid "Part updated" #~ msgstr "Part updated" -#: src/forms/PurchaseOrderForms.tsx:300 +#: src/forms/PartForms.tsx:140 +msgid "Parent part category" +msgstr "Felsőbb szintű alkatrész kategória" + +#: src/forms/PartForms.tsx:155 +msgid "Subscribe to notifications for this category" +msgstr "" + +#: src/forms/PurchaseOrderForms.tsx:314 +msgid "Assign Batch Code and Serial Numbers" +msgstr "" + +#: src/forms/PurchaseOrderForms.tsx:316 +msgid "Assign Batch Code" +msgstr "" + +#: src/forms/PurchaseOrderForms.tsx:336 msgid "Choose Location" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:308 +#: src/forms/PurchaseOrderForms.tsx:344 msgid "Item Destination selected" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:317 +#: src/forms/PurchaseOrderForms.tsx:353 msgid "Part category default location selected" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:327 +#: src/forms/PurchaseOrderForms.tsx:363 msgid "Received stock location selected" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:332 +#: src/forms/PurchaseOrderForms.tsx:368 msgid "Default location selected" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:343 -#: src/forms/PurchaseOrderForms.tsx:435 -msgid "Scan Barcode" -msgstr "" +#: src/forms/PurchaseOrderForms.tsx:421 +#~ msgid "Assign Batch Code{0}" +#~ msgstr "Assign Batch Code{0}" -#: src/forms/PurchaseOrderForms.tsx:388 +#: src/forms/PurchaseOrderForms.tsx:427 msgid "Set Location" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:396 -msgid "Assign Batch Code{0}" -msgstr "" - -#: src/forms/PurchaseOrderForms.tsx:405 -#: src/forms/StockForms.tsx:420 +#: src/forms/PurchaseOrderForms.tsx:442 +#: src/forms/StockForms.tsx:539 msgid "Adjust Packaging" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:412 -msgid "Change Status" -msgstr "" - -#: src/forms/PurchaseOrderForms.tsx:418 -msgid "Add Note" -msgstr "" - #: src/forms/PurchaseOrderForms.tsx:444 #: src/forms/StockForms.tsx:428 -msgid "Remove item from list" +#~ msgid "Remove item from list" +#~ msgstr "Remove item from list" + +#: src/forms/PurchaseOrderForms.tsx:450 +msgid "Change Status" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:471 -#: src/forms/StockForms.tsx:499 -#: src/forms/StockForms.tsx:533 -#: src/forms/StockForms.tsx:562 -#: src/forms/StockForms.tsx:590 -#: src/forms/StockForms.tsx:621 -#: src/forms/StockForms.tsx:656 -#: src/forms/StockForms.tsx:698 -#: src/forms/StockForms.tsx:734 -#: src/pages/stock/StockDetail.tsx:181 -#: src/tables/ColumnRenderers.tsx:49 -#: src/tables/stock/StockTrackingTable.tsx:85 +#: src/forms/PurchaseOrderForms.tsx:456 +msgid "Add Note" +msgstr "" + +#: src/forms/PurchaseOrderForms.tsx:503 +#: src/forms/StockForms.tsx:614 +#: src/forms/StockForms.tsx:651 +#: src/forms/StockForms.tsx:677 +#: src/forms/StockForms.tsx:705 +#: src/forms/StockForms.tsx:736 +#: src/forms/StockForms.tsx:771 +#: src/forms/StockForms.tsx:813 +#: src/forms/StockForms.tsx:851 +#: src/pages/stock/StockDetail.tsx:202 +#: src/tables/ColumnRenderers.tsx:60 +#: src/tables/stock/StockTrackingTable.tsx:89 msgid "Location" msgstr "Hely" -#: src/forms/PurchaseOrderForms.tsx:486 +#: src/forms/PurchaseOrderForms.tsx:518 msgid "Store at default location" msgstr "Alapértelmezett helyre tárolás" -#: src/forms/PurchaseOrderForms.tsx:499 +#: src/forms/PurchaseOrderForms.tsx:533 msgid "Store at line item destination" msgstr "Tárolás a tétel sor célhelyén" -#: src/forms/PurchaseOrderForms.tsx:509 +#: src/forms/PurchaseOrderForms.tsx:545 msgid "Store with already received stock" msgstr "Tárolás a már megérkezett készlettel" -#: src/forms/PurchaseOrderForms.tsx:524 -#: src/pages/build/BuildDetail.tsx:219 -#: src/pages/stock/StockDetail.tsx:162 -#: src/pages/stock/StockDetail.tsx:599 -#: src/tables/build/BuildAllocatedStockTable.tsx:109 -#: src/tables/build/BuildOrderTestTable.tsx:188 -#: src/tables/sales/SalesOrderAllocationTable.tsx:87 +#: src/forms/PurchaseOrderForms.tsx:566 +#: src/pages/build/BuildDetail.tsx:222 +#: src/pages/stock/StockDetail.tsx:185 +#: src/pages/stock/StockDetail.tsx:793 +#: src/tables/build/BuildAllocatedStockTable.tsx:130 +#: src/tables/build/BuildOrderTestTable.tsx:189 +#: src/tables/build/BuildOutputTable.tsx:86 +#: src/tables/sales/SalesOrderAllocationTable.tsx:113 msgid "Batch Code" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:535 -msgid "Serial numbers" +#: src/forms/PurchaseOrderForms.tsx:566 +#~ msgid "Serial numbers" +#~ msgstr "Serial numbers" + +#: src/forms/PurchaseOrderForms.tsx:567 +msgid "Enter batch code for received items" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:544 -#: src/forms/StockForms.tsx:443 -#: src/pages/company/SupplierPartDetail.tsx:156 -#: src/pages/company/SupplierPartDetail.tsx:207 -#: src/pages/stock/StockDetail.tsx:244 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:192 +#: src/forms/PurchaseOrderForms.tsx:579 +#: src/forms/StockForms.tsx:152 +msgid "Serial Numbers" +msgstr "Sorozatszámok" + +#: src/forms/PurchaseOrderForms.tsx:580 +msgid "Enter serial numbers for received items" +msgstr "" + +#: src/forms/PurchaseOrderForms.tsx:590 +#: src/forms/StockForms.tsx:556 +#: src/pages/company/SupplierPartDetail.tsx:168 +#: src/pages/company/SupplierPartDetail.tsx:219 +#: src/pages/stock/StockDetail.tsx:320 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:198 msgid "Packaging" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:556 -#: src/pages/build/BuildDetail.tsx:109 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:148 -#: src/pages/sales/ReturnOrderDetail.tsx:121 -#: src/pages/sales/SalesOrderDetail.tsx:127 -#: src/tables/build/BuildOrderTable.tsx:122 -#: src/tables/machine/MachineListTable.tsx:335 -#: src/tables/part/PartPurchaseOrdersTable.tsx:37 -#: src/tables/purchasing/PurchaseOrderTable.tsx:55 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:132 -#: src/tables/sales/ReturnOrderTable.tsx:46 -#: src/tables/sales/SalesOrderTable.tsx:53 -#: src/tables/settings/ImportSessionTable.tsx:115 -#: src/tables/stock/StockItemTable.tsx:294 -#: src/tables/stock/StockTrackingTable.tsx:52 -msgid "Status" -msgstr "Állapot" - -#: src/forms/PurchaseOrderForms.tsx:564 -#: src/pages/company/SupplierPartDetail.tsx:110 -#: src/tables/ColumnRenderers.tsx:132 +#: src/forms/PurchaseOrderForms.tsx:612 +#: src/pages/company/SupplierPartDetail.tsx:115 +#: src/tables/ColumnRenderers.tsx:143 msgid "Note" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/pages/company/SupplierPartDetail.tsx:128 -#: src/tables/purchasing/SupplierPriceBreakTable.tsx:57 -msgid "SKU" -msgstr "" - -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/tables/part/PartPurchaseOrdersTable.tsx:120 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:178 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:127 -msgid "Received" -msgstr "Fogadott" - -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/forms/StockForms.tsx:499 -#: src/forms/StockForms.tsx:533 -#: src/forms/StockForms.tsx:562 -#: src/forms/StockForms.tsx:590 -#: src/forms/StockForms.tsx:621 -#: src/forms/StockForms.tsx:656 -#: src/forms/StockForms.tsx:698 -#: src/forms/StockForms.tsx:734 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:413 -#: src/tables/RowActions.tsx:113 -msgid "Actions" -msgstr "Műveletek" - -#: src/forms/PurchaseOrderForms.tsx:655 -msgid "Receive Line Items" -msgstr "" - #: src/forms/PurchaseOrderForms.tsx:658 #~ msgid "Receive line items" #~ msgstr "Receive line items" -#: src/forms/StockForms.tsx:104 -msgid "Add given quantity as packs instead of individual items" -msgstr "Mennyiség hozzáadása csomagolási egységenként egyedi tételek helyett" +#: src/forms/PurchaseOrderForms.tsx:689 +#: src/pages/company/SupplierPartDetail.tsx:133 +#: src/tables/purchasing/SupplierPriceBreakTable.tsx:57 +msgid "SKU" +msgstr "" + +#: src/forms/PurchaseOrderForms.tsx:689 +#: src/tables/part/PartPurchaseOrdersTable.tsx:126 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:184 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:247 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:152 +msgid "Received" +msgstr "Fogadott" + +#: src/forms/PurchaseOrderForms.tsx:701 +msgid "Receive Line Items" +msgstr "" + +#: src/forms/ReturnOrderForms.tsx:201 +msgid "Receive Items" +msgstr "" + +#: src/forms/ReturnOrderForms.tsx:208 +msgid "Item received into stock" +msgstr "" + +#: src/forms/StockForms.tsx:80 +#: src/hooks/UsePlaceholder.tsx:57 +msgid "Next serial number" +msgstr "" #: src/forms/StockForms.tsx:110 #~ msgid "Create Stock Item" #~ msgstr "Create Stock Item" -#: src/forms/StockForms.tsx:117 +#: src/forms/StockForms.tsx:131 +msgid "Add given quantity as packs instead of individual items" +msgstr "Mennyiség hozzáadása csomagolási egységenként egyedi tételek helyett" + +#: src/forms/StockForms.tsx:145 msgid "Enter initial quantity for this stock item" msgstr "Add meg a kezdeti mennyiséget ehhez a készlet tételhez" -#: src/forms/StockForms.tsx:124 -msgid "Serial Numbers" -msgstr "Sorozatszámok" - -#: src/forms/StockForms.tsx:125 +#: src/forms/StockForms.tsx:154 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "Add meg az új készlet tételhez tartozó sorozatszámokat (vagy hagyd üresen)" @@ -2943,82 +3545,102 @@ msgstr "Add meg az új készlet tételhez tartozó sorozatszámokat (vagy hagyd #~ msgid "Stock item updated" #~ msgstr "Stock item updated" -#: src/forms/StockForms.tsx:179 -#: src/pages/stock/StockDetail.tsx:434 -#: src/tables/stock/StockItemTable.tsx:417 -#: src/tables/stock/StockItemTable.tsx:535 +#: src/forms/StockForms.tsx:169 +#: src/pages/stock/StockDetail.tsx:131 +msgid "Stock Status" +msgstr "" + +#: src/forms/StockForms.tsx:218 +#: src/pages/stock/StockDetail.tsx:554 +#: src/tables/stock/StockItemTable.tsx:421 +#: src/tables/stock/StockItemTable.tsx:541 msgid "Add Stock Item" msgstr "Új készlet tétel" -#: src/forms/StockForms.tsx:362 +#: src/forms/StockForms.tsx:262 +msgid "Select the part to install" +msgstr "" + +#: src/forms/StockForms.tsx:480 msgid "Loading..." msgstr "" -#: src/forms/StockForms.tsx:408 +#: src/forms/StockForms.tsx:527 msgid "Move to default location" msgstr "Mozgatás az alapértelmezett helyre" -#: src/forms/StockForms.tsx:499 -#: src/forms/StockForms.tsx:533 -#: src/forms/StockForms.tsx:562 -#: src/forms/StockForms.tsx:590 -#: src/forms/StockForms.tsx:621 -#: src/forms/StockForms.tsx:656 -#: src/forms/StockForms.tsx:698 -#: src/forms/StockForms.tsx:734 -#: src/pages/part/PartDetail.tsx:230 -#: src/pages/part/PartDetail.tsx:843 -#: src/tables/stock/StockItemTable.tsx:325 +#: src/forms/StockForms.tsx:614 +#: src/forms/StockForms.tsx:651 +#: src/forms/StockForms.tsx:677 +#: src/forms/StockForms.tsx:705 +#: src/forms/StockForms.tsx:736 +#: src/forms/StockForms.tsx:771 +#: src/forms/StockForms.tsx:813 +#: src/forms/StockForms.tsx:851 +#: src/pages/part/PartDetail.tsx:251 +#: src/pages/part/PartDetail.tsx:875 +#: src/tables/stock/StockItemTable.tsx:329 msgid "In Stock" msgstr "Készleten" -#: src/forms/StockForms.tsx:499 +#: src/forms/StockForms.tsx:614 msgid "Move" msgstr "Áthelyezés" -#: src/forms/StockForms.tsx:562 -#: src/pages/stock/StockDetail.tsx:518 -#: src/tables/stock/StockItemTestResultTable.tsx:328 +#: src/forms/StockForms.tsx:677 +#: src/pages/stock/StockDetail.tsx:681 +#: src/tables/stock/StockItemTestResultTable.tsx:346 msgid "Add" msgstr "Hozzáadás" -#: src/forms/StockForms.tsx:590 -#: src/pages/Index/Scan.tsx:266 -#: src/pages/stock/StockDetail.tsx:508 +#: src/forms/StockForms.tsx:705 +#: src/pages/Index/Scan.tsx:280 +#: src/pages/stock/StockDetail.tsx:670 msgid "Count" msgstr "Mennyiség" -#: src/forms/StockForms.tsx:835 +#: src/forms/StockForms.tsx:953 +#: src/pages/stock/StockDetail.tsx:682 +#: src/tables/stock/StockItemTable.tsx:454 msgid "Add Stock" msgstr "Készlethez ad" -#: src/forms/StockForms.tsx:844 +#: src/forms/StockForms.tsx:962 +#: src/pages/stock/StockDetail.tsx:691 +#: src/tables/stock/StockItemTable.tsx:463 msgid "Remove Stock" msgstr "Készlet csökkentése" -#: src/forms/StockForms.tsx:853 -#: src/pages/part/PartDetail.tsx:1017 +#: src/forms/StockForms.tsx:971 +#: src/pages/part/PartDetail.tsx:1039 +#: src/pages/stock/StockDetail.tsx:712 +#: src/tables/stock/StockItemTable.tsx:483 msgid "Transfer Stock" msgstr "Készlet áthelyezése" -#: src/forms/StockForms.tsx:862 -#: src/pages/part/PartDetail.tsx:1006 +#: src/forms/StockForms.tsx:980 +#: src/pages/part/PartDetail.tsx:1028 +#: src/pages/stock/LocationDetail.tsx:314 +#: src/pages/stock/LocationDetail.tsx:318 +#: src/tables/stock/StockItemTable.tsx:472 +#: src/tables/stock/StockItemTable.tsx:476 msgid "Count Stock" msgstr "Leltározás" -#: src/forms/StockForms.tsx:871 +#: src/forms/StockForms.tsx:989 msgid "Change Stock Status" msgstr "Készlet állapot módosítása" -#: src/forms/StockForms.tsx:880 +#: src/forms/StockForms.tsx:998 msgid "Merge Stock" msgstr "Készlet összevonása" -#: src/forms/StockForms.tsx:899 +#: src/forms/StockForms.tsx:1017 +#: src/tables/stock/StockItemTable.tsx:530 msgid "Delete Stock Items" msgstr "Készlet tétel törlése" -#: src/forms/StockForms.tsx:906 +#: src/forms/StockForms.tsx:1024 msgid "Parent stock location" msgstr "Szülő készlet hely" @@ -3042,11 +3664,11 @@ msgstr "Szülő készlet hely" #~ msgid "You have been logged out" #~ msgstr "You have been logged out" -#: src/functions/auth.tsx:117 +#: src/functions/auth.tsx:128 msgid "Logged Out" msgstr "Kijelentkezve" -#: src/functions/auth.tsx:118 +#: src/functions/auth.tsx:129 msgid "Successfully logged out" msgstr "Sikeresen kijelentkeztél" @@ -3062,20 +3684,20 @@ msgstr "Sikeresen kijelentkeztél" #~ msgid "Found an existing login - welcome back!" #~ msgstr "Found an existing login - welcome back!" -#: src/functions/auth.tsx:156 +#: src/functions/auth.tsx:167 msgid "Check your inbox for a reset link. This only works if you have an account. Check in spam too." msgstr "Nézd meg a beérkező levelek mappájában a visszaállítási linket. Ez csak akkor működik, ha van fiókod. Ellenőrizd a spameket is." -#: src/functions/auth.tsx:163 +#: src/functions/auth.tsx:174 #: src/pages/Auth/Set-Password.tsx:39 msgid "Reset failed" msgstr "Visszaállítás sikertelen" -#: src/functions/auth.tsx:194 +#: src/functions/auth.tsx:205 msgid "Logged In" msgstr "Bejelentkezve" -#: src/functions/auth.tsx:195 +#: src/functions/auth.tsx:206 msgid "Successfully logged in" msgstr "Sikeres bejelentkezés" @@ -3095,30 +3717,38 @@ msgstr "Sikeres bejelentkezés" #~ msgid "method parameter not supplied" #~ msgstr "method parameter not supplied" -#: src/functions/notifications.tsx:10 +#: src/functions/notifications.tsx:12 msgid "Not implemented" msgstr "Nincs implementálva" -#: src/functions/notifications.tsx:11 +#: src/functions/notifications.tsx:13 msgid "This feature is not yet implemented" msgstr "Ez a funkció még nem készült el" -#: src/functions/notifications.tsx:21 -msgid "Permission denied" -msgstr "Engedély megtagadva" +#: src/functions/notifications.tsx:24 +#~ msgid "Permission denied" +#~ msgstr "Permission denied" -#: src/functions/notifications.tsx:22 +#: src/functions/notifications.tsx:25 msgid "You do not have permission to perform this action" msgstr "Nincs jogosultságod ehhez a művelethez" -#: src/functions/notifications.tsx:33 +#: src/functions/notifications.tsx:36 msgid "Invalid Return Code" msgstr "Érvénytelen visszatérési kód" -#: src/functions/notifications.tsx:34 +#: src/functions/notifications.tsx:37 msgid "Server returned status {returnCode}" msgstr "Szerver válaszkódja {returnCode}" +#: src/functions/notifications.tsx:47 +msgid "Timeout" +msgstr "" + +#: src/functions/notifications.tsx:48 +msgid "The request timed out" +msgstr "" + #: src/hooks/UseForm.tsx:88 msgid "Item Created" msgstr "Elem létrehozva" @@ -3135,20 +3765,24 @@ msgstr "Elem törölve" msgid "Are you sure you want to delete this item?" msgstr "Biztosan törli ezt az elemet?" +#: src/hooks/UsePlaceholder.tsx:59 +msgid "Latest serial number" +msgstr "" + #: src/pages/Auth/Logged-In.tsx:22 msgid "Checking if you are already logged in" msgstr "Ellenőrzöm hogy be vagy-e már jelentkezve" -#: src/pages/Auth/Login.tsx:31 -#: src/pages/Index/Scan.tsx:329 +#: src/pages/Auth/Login.tsx:35 +#: src/pages/Index/Scan.tsx:343 msgid "No selection" msgstr "Nincs kijelölés" -#: src/pages/Auth/Login.tsx:87 +#: src/pages/Auth/Login.tsx:91 msgid "Welcome, log in below" msgstr "Üdvözlet, bejelentkezés lent" -#: src/pages/Auth/Login.tsx:89 +#: src/pages/Auth/Login.tsx:93 msgid "Register below" msgstr "Regisztráljon alább" @@ -3162,8 +3796,8 @@ msgstr "Kijelentkezés" #: src/pages/Auth/Reset.tsx:41 #: src/pages/Auth/Set-Password.tsx:112 -msgid "Send mail" -msgstr "Email küldése" +#~ msgid "Send mail" +#~ msgstr "Send mail" #: src/pages/Auth/Set-Password.tsx:30 msgid "Token invalid" @@ -3174,22 +3808,22 @@ msgid "You need to provide a valid token to set a new password. Check your inbox msgstr "Új jelszó beállításához meg kell adnod egy érvényes tokent. Nézd meg a beérkező levelek mappájában a visszaállítási linket." #: src/pages/Auth/Set-Password.tsx:49 -msgid "No token provided" -msgstr "Nincs token megadva" +#~ msgid "No token provided" +#~ msgstr "No token provided" #: src/pages/Auth/Set-Password.tsx:50 -msgid "You need to provide a token to set a new password. Check your inbox for a reset link." -msgstr "Új jelszó beállításához meg kell adnod egy tokent. Nézd meg a beérkező levelek mappájában a visszaállítási linket." +#~ msgid "You need to provide a token to set a new password. Check your inbox for a reset link." +#~ msgstr "You need to provide a token to set a new password. Check your inbox for a reset link." -#: src/pages/Auth/Set-Password.tsx:73 +#: src/pages/Auth/Set-Password.tsx:68 msgid "Password set" msgstr "Jelszó beállítva" -#: src/pages/Auth/Set-Password.tsx:74 +#: src/pages/Auth/Set-Password.tsx:69 msgid "The password was set successfully. You can now login with your new password" msgstr "A jelszó beállítása sikeresen megtörtént. Most már bejelentkezhetsz az új jelszavaddal" -#: src/pages/Auth/Set-Password.tsx:101 +#: src/pages/Auth/Set-Password.tsx:96 msgid "Set new password" msgstr "Új jelszó beállítása" @@ -3206,20 +3840,20 @@ msgstr "" #~ msgstr "Sorry, an unexpected error has occurred." #: src/pages/Index/Dashboard.tsx:22 -msgid "Autoupdate" -msgstr "Automatikus frissítés" +#~ msgid "Autoupdate" +#~ msgstr "Autoupdate" #: src/pages/Index/Dashboard.tsx:26 -msgid "This page is a replacement for the old start page with the same information. This page will be deprecated and replaced by the home page." -msgstr "Ez az oldal helyettesíti a régi kezdőoldalt, ugyanazokkal az információkkal. Ez az oldal hamarosan elavulttá válik, és helyébe a kezdőlap lép." +#~ msgid "This page is a replacement for the old start page with the same information. This page will be deprecated and replaced by the home page." +#~ msgstr "This page is a replacement for the old start page with the same information. This page will be deprecated and replaced by the home page." #: src/pages/Index/Home.tsx:58 -msgid "Welcome to your Dashboard{0}" -msgstr "Irányítópult: {0}" +#~ msgid "Welcome to your Dashboard{0}" +#~ msgstr "Welcome to your Dashboard{0}" #: src/pages/Index/Playground.tsx:222 -msgid "This page is a showcase for the possibilities of Platform UI." -msgstr "Ez az oldal a Platform UI lehetőségeit mutatja be." +#~ msgid "This page is a showcase for the possibilities of Platform UI." +#~ msgstr "This page is a showcase for the possibilities of Platform UI." #: src/pages/Index/Profile/Profile.tsx:30 #: src/pages/Index/Profile/Profile.tsx:141 @@ -3365,126 +3999,191 @@ msgstr "Kézi bevitel" msgid "Image Barcode" msgstr "Vonalkód képe" -#: src/pages/Index/Scan.tsx:247 +#: src/pages/Index/Scan.tsx:261 msgid "Selected elements are not known" msgstr "Kiválasztott elemek ismeretlenek" -#: src/pages/Index/Scan.tsx:254 +#: src/pages/Index/Scan.tsx:268 msgid "Multiple object types selected" msgstr "Többféle objektum típus lett kiválasztva" -#: src/pages/Index/Scan.tsx:261 +#: src/pages/Index/Scan.tsx:275 msgid "Actions for {0}" msgstr "{0} műveletei" -#: src/pages/Index/Scan.tsx:282 +#: src/pages/Index/Scan.tsx:296 msgid "Scan Page" msgstr "Kódolvasó lap" -#: src/pages/Index/Scan.tsx:285 +#: src/pages/Index/Scan.tsx:299 msgid "This page can be used for continuously scanning items and taking actions on them." msgstr "Lap a tételek folyamatos kódolvasására és műveleteire." -#: src/pages/Index/Scan.tsx:292 +#: src/pages/Index/Scan.tsx:306 msgid "Toggle Fullscreen" msgstr "" -#: src/pages/Index/Scan.tsx:305 +#: src/pages/Index/Scan.tsx:319 msgid "Select the input method you want to use to scan items." msgstr "Válassz beviteli módot a tételek beolvasásához." -#: src/pages/Index/Scan.tsx:307 +#: src/pages/Index/Scan.tsx:321 msgid "Input" msgstr "Bevitel" -#: src/pages/Index/Scan.tsx:314 +#: src/pages/Index/Scan.tsx:328 msgid "Select input method" msgstr "Beviteli mód kiválasztása" -#: src/pages/Index/Scan.tsx:315 +#: src/pages/Index/Scan.tsx:329 msgid "Nothing found" msgstr "Nincs találat" -#: src/pages/Index/Scan.tsx:323 +#: src/pages/Index/Scan.tsx:337 msgid "Depending on the selected parts actions will be shown here. Not all barcode types are supported currently." msgstr "A kiválasztott alkatrészektől függő műveletek jelennek meg itt. Jelenleg nem minden vonalkód támogatott." -#: src/pages/Index/Scan.tsx:325 +#: src/pages/Index/Scan.tsx:339 msgid "Action" msgstr "Művelet" -#: src/pages/Index/Scan.tsx:334 +#: src/pages/Index/Scan.tsx:348 msgid "{0} items selected" msgstr "{0} kiválasztott tétel" -#: src/pages/Index/Scan.tsx:337 +#: src/pages/Index/Scan.tsx:351 msgid "General Actions" msgstr "Általános műveletek" -#: src/pages/Index/Scan.tsx:351 +#: src/pages/Index/Scan.tsx:365 msgid "Lookup part" msgstr "Alkatrész keresés" -#: src/pages/Index/Scan.tsx:359 +#: src/pages/Index/Scan.tsx:373 msgid "Open Link" msgstr "Link megnyitása" -#: src/pages/Index/Scan.tsx:375 +#: src/pages/Index/Scan.tsx:389 msgid "History is locally kept in this browser." msgstr "Az előzmények lokálisan a böngészőben tárolódnak." -#: src/pages/Index/Scan.tsx:376 +#: src/pages/Index/Scan.tsx:390 msgid "The history is kept in this browser's local storage. So it won't be shared with other users or other devices but is persistent through reloads. You can select items in the history to perform actions on them. To add items, scan/enter them in the Input area." msgstr "Az előzmények a böngésző helyi tárhelyén tárolódnak. Így nem lesz megosztva más felhasználókkal vagy más eszközökkel, de az újratöltések során megmarad. Kijelölhetsz elemeket az előzményekből, hogy műveleteket hajts végre rajtuk. Elemek hozzáadásához szkennelje be/írja be azokat a beviteli területen." -#: src/pages/Index/Scan.tsx:378 +#: src/pages/Index/Scan.tsx:392 #: src/pages/Notifications.tsx:100 msgid "History" msgstr "Előzmények" -#: src/pages/Index/Scan.tsx:384 +#: src/pages/Index/Scan.tsx:398 msgid "Delete History" msgstr "" -#: src/pages/Index/Scan.tsx:449 +#: src/pages/Index/Scan.tsx:463 msgid "No history" msgstr "Nincs előzmény" -#: src/pages/Index/Scan.tsx:467 +#: src/pages/Index/Scan.tsx:481 msgid "Item" msgstr "Tétel" -#: src/pages/Index/Scan.tsx:470 +#: src/pages/Index/Scan.tsx:484 msgid "Type" msgstr "Típus" -#: src/pages/Index/Scan.tsx:473 +#: src/pages/Index/Scan.tsx:487 msgid "Source" msgstr "Forrás" -#: src/pages/Index/Scan.tsx:476 +#: src/pages/Index/Scan.tsx:490 msgid "Scanned at" msgstr "Szkennelve ekkor" -#: src/pages/Index/Scan.tsx:528 +#: src/pages/Index/Scan.tsx:547 msgid "Enter item serial or data" msgstr "Add meg a tétel szériaszámát vagy adatát" -#: src/pages/Index/Scan.tsx:540 +#: src/pages/Index/Scan.tsx:559 msgid "Add dummy item" msgstr "Ál-tétel hozzáadása" +#: src/pages/Index/Scan.tsx:569 +msgid "Start scanning by selecting a camera and pressing the play button." +msgstr "Kezdd a leolvasást a kamera kiválasztással és nyomd meg a lejátszás gombot." + +#: src/pages/Index/Scan.tsx:650 +msgid "Error while getting camera" +msgstr "Hiba a kamera megnyitása közben" + +#: src/pages/Index/Scan.tsx:673 +msgid "Error while scanning" +msgstr "Hiba a kódolvasás közben" + +#: src/pages/Index/Scan.tsx:687 +msgid "Error while stopping" +msgstr "Hiba a leállítás közben" + +#: src/pages/Index/Scan.tsx:745 +msgid "Stop scanning" +msgstr "Kódolvasás leállítása" + +#: src/pages/Index/Scan.tsx:754 +msgid "Start scanning" +msgstr "Kódolvasás indítása" + +#: src/pages/Index/Scan.tsx:763 +msgid "Scanning" +msgstr "Kódolvasás" + +#: src/pages/Index/Scan.tsx:763 +msgid "Not scanning" +msgstr "Nincs kódolvasás" + +#: src/pages/Index/Scan.tsx:775 +msgid "Select Camera" +msgstr "Kamera kiválasztása" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:28 +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:50 +msgid "Edit User Information" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:32 +msgid "User details updated" +msgstr "" + #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:41 -msgid "Account Details" -msgstr "Felhasználó adatok" +msgid "User Details" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:41 +#~ msgid "Account Details" +#~ msgstr "Account Details" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:44 +msgid "User Actions" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:48 +msgid "Edit User" +msgstr "" #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:50 -msgid "First name" -msgstr "Keresztnév" +#~ msgid "First name" +#~ msgstr "First name" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:54 +msgid "Set Password" +msgstr "" #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:55 -msgid "Last name" -msgstr "Vezetéknév" +#~ msgid "Last name" +#~ msgstr "Last name" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:56 +msgid "Set User Password" +msgstr "" #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:58 #~ msgid "First name: {0}" @@ -3495,16 +4194,29 @@ msgstr "Vezetéknév" #~ msgstr "Last name: {0}" #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:67 -msgid "First name:" -msgstr "Keresztnév:" +#~ msgid "First name:" +#~ msgstr "First name:" #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:71 -msgid "Last name:" -msgstr "Vezetéknév:" +#~ msgid "Last name:" +#~ msgstr "Last name:" -#: src/pages/Index/Settings/AccountSettings/DisplaySettingsPanel.tsx:41 -msgid "Use pseudo language" -msgstr "Használj pszeudo nyelvet" +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:73 +msgid "First Name" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:79 +msgid "Last Name" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:85 +msgid "Staff Access" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:93 +#: src/tables/settings/UserTable.tsx:293 +msgid "Superuser" +msgstr "" #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:55 msgid "Single Sign On Accounts" @@ -3600,27 +4312,6 @@ msgstr "" msgid "No tokens configured" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:398 -#: src/pages/part/PartDetail.tsx:297 -#: src/tables/bom/UsedInTable.tsx:84 -#: src/tables/build/BuildOrderTable.tsx:110 -#: src/tables/company/CompanyTable.tsx:61 -#: src/tables/company/CompanyTable.tsx:95 -#: src/tables/machine/MachineListTable.tsx:332 -#: src/tables/machine/MachineListTable.tsx:594 -#: src/tables/part/ParametricPartTable.tsx:223 -#: src/tables/part/PartTable.tsx:178 -#: src/tables/part/PartVariantTable.tsx:15 -#: src/tables/plugin/PluginListTable.tsx:149 -#: src/tables/plugin/PluginListTable.tsx:271 -#: src/tables/plugin/PluginListTable.tsx:563 -#: src/tables/purchasing/SupplierPartTable.tsx:98 -#: src/tables/purchasing/SupplierPartTable.tsx:187 -#: src/tables/settings/UserTable.tsx:284 -#: src/tables/stock/StockItemTable.tsx:289 -msgid "Active" -msgstr "Aktív" - #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:401 msgid "Expiry" msgstr "" @@ -3630,38 +4321,74 @@ msgid "Last Seen" msgstr "" #: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:65 -msgid "bars" -msgstr "oszlopok" +#~ msgid "bars" +#~ msgstr "bars" #: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:66 -msgid "oval" -msgstr "ovális" +#~ msgid "oval" +#~ msgstr "oval" #: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:67 -msgid "dots" -msgstr "pontok" +#~ msgid "dots" +#~ msgstr "dots" #: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:81 -msgid "Theme" -msgstr "Téma" +#~ msgid "Theme" +#~ msgstr "Theme" #: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:87 -msgid "Primary color" -msgstr "Elsődleges szín" +#~ msgid "Primary color" +#~ msgstr "Primary color" -#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:100 +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:88 +msgid "Bars" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:89 +msgid "Oval" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:90 +msgid "Dots" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:101 +msgid "Display Settings" +msgstr "Megjelenítési beállítások" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:107 +msgid "Language" +msgstr "Nyelv" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:115 +msgid "Use pseudo language" +msgstr "Használj pszeudo nyelvet" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:122 +msgid "Color Mode" +msgstr "Megjelenítési mód" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:133 +msgid "Highlight color" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:145 +msgid "Example" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:151 msgid "White color" msgstr "Fehér szín" -#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:108 +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:167 msgid "Black color" msgstr "Fekete szín" -#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:116 +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:183 msgid "Border Radius" msgstr "Szegély sugár" -#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:132 +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:199 msgid "Loader" msgstr "Betöltő" @@ -3673,89 +4400,156 @@ msgstr "Betöltő" #~ msgid "Advanced Amininistrative Options for InvenTree" #~ msgstr "Advanced Amininistrative Options for InvenTree" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:104 +#: src/pages/Index/Settings/AdminCenter/CurrencyManagmentPanel.tsx:27 +#: src/tables/ColumnRenderers.tsx:262 +msgid "Currency" +msgstr "Pénznem" + +#: src/pages/Index/Settings/AdminCenter/CurrencyManagmentPanel.tsx:32 +msgid "Rate" +msgstr "Árfolyam" + +#: src/pages/Index/Settings/AdminCenter/CurrencyManagmentPanel.tsx:44 +msgid "Exchange rates updated" +msgstr "Árfolyamok frissítve" + +#: src/pages/Index/Settings/AdminCenter/CurrencyManagmentPanel.tsx:50 +msgid "Exchange rate update error" +msgstr "Árfolyam frissítési hiba" + +#: src/pages/Index/Settings/AdminCenter/CurrencyManagmentPanel.tsx:62 +msgid "Refresh currency exchange rates" +msgstr "Árfolyam frissítés" + +#: src/pages/Index/Settings/AdminCenter/CurrencyManagmentPanel.tsx:99 +msgid "Last fetched" +msgstr "Utoljára betöltve" + +#: src/pages/Index/Settings/AdminCenter/CurrencyManagmentPanel.tsx:100 +msgid "Base currency" +msgstr "Alapvaluta" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:115 msgid "Data Import" msgstr "" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:110 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:121 +msgid "Barcode Scans" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:127 msgid "Background Tasks" msgstr "Háttér műveletek" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:116 -msgid "Error Reports" -msgstr "Hibajelentések" - -#: src/pages/Index/Settings/AdminCenter/Index.tsx:122 -msgid "Currencies" -msgstr "Pénznemek" - #: src/pages/Index/Settings/AdminCenter/Index.tsx:127 #~ msgid "Templates" #~ msgstr "Templates" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:140 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:133 +msgid "Error Reports" +msgstr "Hibajelentések" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:139 +msgid "Currencies" +msgstr "Pénznemek" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:157 +msgid "Custom States" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:163 +#: src/pages/Index/Settings/AdminCenter/UnitManagmentPanel.tsx:58 msgid "Custom Units" msgstr "Egyedi mértékegységek" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:146 -#: src/pages/part/CategoryDetail.tsx:264 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:169 +#: src/pages/part/CategoryDetail.tsx:269 msgid "Part Parameters" msgstr "Alkatrész paraméterek" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:152 -msgid "Category Parameters" -msgstr "Kategória paraméterek" - -#: src/pages/Index/Settings/AdminCenter/Index.tsx:170 -msgid "Location Types" -msgstr "" - #: src/pages/Index/Settings/AdminCenter/Index.tsx:170 #~ msgid "Location types" #~ msgstr "Location types" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:182 -#: src/tables/machine/MachineTypeTable.tsx:287 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:175 +msgid "Category Parameters" +msgstr "Kategória paraméterek" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:181 +msgid "Stocktake" +msgstr "Leltár" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:199 +msgid "Location Types" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:211 +#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:48 +#: src/tables/machine/MachineTypeTable.tsx:308 msgid "Machines" msgstr "Berendezések" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:192 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:221 msgid "Quick Actions" msgstr "Gyors műveletek" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:197 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:226 msgid "Add a new user" msgstr "Új felhasználó hozzáadása" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:222 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:252 msgid "Advanced Options" msgstr "További beállítások" #: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:43 -msgid "Machine types" -msgstr "Berendezés típusok" +#~ msgid "Machine types" +#~ msgstr "Machine types" #: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:53 -msgid "Machine Error Stack" -msgstr "Berendezés hibatároló" +#~ msgid "Machine Error Stack" +#~ msgstr "Machine Error Stack" + +#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:56 +msgid "Machine Types" +msgstr "" #: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:62 -msgid "There are no machine registry errors." -msgstr "Nincsenek berendezés katalógus hibák." +#~ msgid "There are no machine registry errors." +#~ msgstr "There are no machine registry errors." -#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:28 -#: src/tables/settings/UserTable.tsx:119 +#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:64 +msgid "Machine Errors" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:77 +msgid "Registry Registry Errors" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:80 +msgid "There are machine registry errors" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:86 +msgid "Machine Registry Errors" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:89 +msgid "There are no machine registry errors" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:31 +#: src/tables/settings/UserTable.tsx:118 msgid "Info" msgstr "Infó" -#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:32 -msgid "External plugins are not enabled for this InvenTree installation." -msgstr "Külső pluginok nincsenek engedélyezve ebben az InvenTree példányban." - #: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:33 #~ msgid "Plugin Error Stack" #~ msgstr "Plugin Error Stack" +#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:35 +msgid "External plugins are not enabled for this InvenTree installation." +msgstr "Külső pluginok nincsenek engedélyezve ebben az InvenTree példányban." + #: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:45 #~ msgid "Warning" #~ msgstr "Warning" @@ -3764,34 +4558,46 @@ msgstr "Külső pluginok nincsenek engedélyezve ebben az InvenTree példányban #~ msgid "Changing the settings below require you to immediately restart the server. Do not change this while under active usage." #~ msgstr "Changing the settings below require you to immediately restart the server. Do not change this while under active usage." -#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:50 +#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:73 msgid "Plugin Errors" msgstr "Bővítmény Hibák" -#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:59 -msgid "Plugin Settings" -msgstr "Plugin beállítások" +#: src/pages/Index/Settings/AdminCenter/ReportTemplatePanel.tsx:17 +msgid "Page Size" +msgstr "Lapméret" -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:53 -msgid "Background Worker Not Running" +#: src/pages/Index/Settings/AdminCenter/ReportTemplatePanel.tsx:20 +msgid "Landscape" +msgstr "Fekvő" + +#: src/pages/Index/Settings/AdminCenter/ReportTemplatePanel.tsx:26 +msgid "Attach to Model" msgstr "" -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:54 +#: src/pages/Index/Settings/AdminCenter/StocktakePanel.tsx:25 +msgid "Stocktake Reports" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:30 msgid "The background task manager service is not running. Contact your system administrator." msgstr "" -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:60 -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:76 +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:35 +#~ msgid "Background Worker Not Running" +#~ msgstr "Background Worker Not Running" + +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:36 +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:45 msgid "Pending Tasks" msgstr "Folyamatban lévő feladatok" -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:64 -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:84 +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:37 +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:53 msgid "Scheduled Tasks" msgstr "Ütemezett Feladatok" -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:68 -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:92 +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:38 +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:61 msgid "Failed Tasks" msgstr "Hibás feladatok" @@ -3811,11 +4617,6 @@ msgstr "Hibás feladatok" #~ msgid "Reports" #~ msgstr "Reports" -#: src/pages/Index/Settings/AdminCenter/TemplateManagementPanel.tsx:89 -#: src/pages/build/BuildDetail.tsx:373 -#~ msgid "Report" -#~ msgstr "Report" - #: src/pages/Index/Settings/AdminCenter/TemplateManagementPanel.tsx:99 #~ msgid "Purchase order" #~ msgstr "Purchase order" @@ -3836,23 +4637,35 @@ msgstr "Hibás feladatok" #~ msgid "Stock location" #~ msgstr "Stock location" +#: src/pages/Index/Settings/AdminCenter/UnitManagmentPanel.tsx:21 +msgid "Alias" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/UnitManagmentPanel.tsx:22 +msgid "Dimensionless" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/UnitManagmentPanel.tsx:66 +msgid "All units" +msgstr "" + #: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:32 msgid "Select settings relevant for user lifecycle. More available in" msgstr "Válassza ki a felhasználói életciklusre vonatkozó beállításokat. További információ" #: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:37 -msgid "System settings" -msgstr "Rendszerbeállítások" +#~ msgid "System settings" +#~ msgstr "System settings" -#: src/pages/Index/Settings/SystemSettings.tsx:67 +#: src/pages/Index/Settings/SystemSettings.tsx:66 msgid "Login" msgstr "Bejelentkezés" -#: src/pages/Index/Settings/SystemSettings.tsx:93 +#: src/pages/Index/Settings/SystemSettings.tsx:92 msgid "Barcodes" msgstr "Vonalkódok" -#: src/pages/Index/Settings/SystemSettings.tsx:115 +#: src/pages/Index/Settings/SystemSettings.tsx:116 msgid "Pricing" msgstr "Árazás" @@ -3864,64 +4677,46 @@ msgstr "Árazás" #~ msgid "Exchange Rates" #~ msgstr "Exchange Rates" -#: src/pages/Index/Settings/SystemSettings.tsx:150 +#: src/pages/Index/Settings/SystemSettings.tsx:151 msgid "Labels" msgstr "Címkék" -#: src/pages/Index/Settings/SystemSettings.tsx:156 -#: src/pages/Index/Settings/UserSettings.tsx:132 +#: src/pages/Index/Settings/SystemSettings.tsx:157 +#: src/pages/Index/Settings/UserSettings.tsx:133 msgid "Reporting" msgstr "Riportolás" #: src/pages/Index/Settings/SystemSettings.tsx:231 -#: src/pages/part/PartDetail.tsx:682 -msgid "Stocktake" -msgstr "Leltár" - -#: src/pages/Index/Settings/SystemSettings.tsx:237 -#: src/pages/build/BuildDetail.tsx:554 -#: src/pages/build/BuildIndex.tsx:22 -#: src/pages/part/PartDetail.tsx:616 -#: src/pages/sales/SalesOrderDetail.tsx:333 +#: src/pages/build/BuildIndex.tsx:27 +#: src/pages/part/PartDetail.tsx:636 +#: src/pages/sales/SalesOrderDetail.tsx:355 msgid "Build Orders" msgstr "Gyártási utasítások" -#: src/pages/Index/Settings/SystemSettings.tsx:318 -msgid "Switch to User Setting" -msgstr "Felhasználói beállításra váltás" +#: src/pages/Index/Settings/SystemSettings.tsx:317 +#~ msgid "Switch to User Setting" +#~ msgstr "Switch to User Setting" -#: src/pages/Index/Settings/UserSettings.tsx:34 +#: src/pages/Index/Settings/UserSettings.tsx:35 msgid "Account" msgstr "Fiók" -#: src/pages/Index/Settings/UserSettings.tsx:40 +#: src/pages/Index/Settings/UserSettings.tsx:41 msgid "Security" msgstr "Biztonság" -#: src/pages/Index/Settings/UserSettings.tsx:78 +#: src/pages/Index/Settings/UserSettings.tsx:79 msgid "Display Options" msgstr "Megjelenítési beállítások" -#: src/pages/Index/Settings/UserSettings.tsx:150 -msgid "Account Settings" -msgstr "Fiókbeállítások" - -#: src/pages/Index/Settings/UserSettings.tsx:158 -msgid "Switch to System Setting" -msgstr "Rendszer beállításra váltás" - -#: src/pages/Index/UserSettings.tsx:103 -#~ msgid "User Settings" -#~ msgstr "User Settings" +#: src/pages/Index/Settings/UserSettings.tsx:159 +#~ msgid "Switch to System Setting" +#~ msgstr "Switch to System Setting" #: src/pages/Logged-In.tsx:24 #~ msgid "Found an exsisting login - using it to log you in." #~ msgstr "Found an exsisting login - using it to log you in." -#: src/pages/NotFound.tsx:17 -#~ msgid "Not Found" -#~ msgstr "Not Found" - #: src/pages/NotFound.tsx:20 #~ msgid "Sorry, this page is not known or was moved." #~ msgstr "Sorry, this page is not known or was moved." @@ -3942,115 +4737,93 @@ msgstr "Megjelölés olvasatlanként" #~ msgid "Build Status" #~ msgstr "Build Status" -#: src/pages/build/BuildDetail.tsx:102 -#: src/pages/part/PartDetail.tsx:150 +#: src/pages/build/BuildDetail.tsx:97 +#: src/pages/company/ManufacturerPartDetail.tsx:81 +#: src/pages/company/SupplierPartDetail.tsx:91 +#: src/pages/part/PartDetail.tsx:171 +#: src/pages/stock/StockDetail.tsx:122 #: src/tables/bom/BomTable.tsx:118 #: src/tables/bom/UsedInTable.tsx:39 -#: src/tables/build/BuildLineTable.tsx:173 -#: src/tables/build/BuildOrderTable.tsx:55 -#: src/tables/sales/SalesOrderLineItemTable.tsx:62 -#: src/tables/stock/StockItemTable.tsx:53 +#: src/tables/build/BuildAllocatedStockTable.tsx:104 +#: src/tables/build/BuildLineTable.tsx:324 +#: src/tables/build/BuildOrderTable.tsx:64 +#: src/tables/sales/SalesOrderLineItemTable.tsx:70 +#: src/tables/stock/StockItemTable.tsx:54 msgid "IPN" msgstr "IPN" -#: src/pages/build/BuildDetail.tsx:115 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:121 -#: src/pages/sales/ReturnOrderDetail.tsx:95 -#: src/pages/sales/SalesOrderDetail.tsx:101 -#: src/tables/ColumnRenderers.tsx:121 -#: src/tables/build/BuildAllocatedStockTable.tsx:90 -#: src/tables/build/BuildLineTable.tsx:184 +#: src/pages/build/BuildDetail.tsx:110 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:115 +#: src/pages/sales/ReturnOrderDetail.tsx:86 +#: src/pages/sales/SalesOrderDetail.tsx:95 +#: src/tables/ColumnRenderers.tsx:132 +#: src/tables/build/BuildAllocatedStockTable.tsx:111 +#: src/tables/build/BuildLineTable.tsx:335 msgid "Reference" msgstr "Hivatkozás" -#: src/pages/build/BuildDetail.tsx:121 -#: src/pages/company/CompanyDetail.tsx:90 -#: src/pages/company/ManufacturerPartDetail.tsx:83 -#: src/pages/company/SupplierPartDetail.tsx:96 -#: src/pages/part/CategoryDetail.tsx:101 -#: src/pages/part/PartDetail.tsx:157 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:142 -#: src/pages/sales/ReturnOrderDetail.tsx:115 -#: src/pages/sales/SalesOrderDetail.tsx:121 -#: src/pages/stock/LocationDetail.tsx:109 -#: src/tables/ColumnRenderers.tsx:81 -#: src/tables/bom/UsedInTable.tsx:44 -#: src/tables/build/BuildAllocatedStockTable.tsx:70 -#: src/tables/build/BuildLineTable.tsx:178 -#: src/tables/machine/MachineTypeTable.tsx:69 -#: src/tables/machine/MachineTypeTable.tsx:112 -#: src/tables/machine/MachineTypeTable.tsx:219 -#: src/tables/machine/MachineTypeTable.tsx:323 -#: src/tables/part/RelatedPartTable.tsx:64 -#: src/tables/plugin/PluginListTable.tsx:129 -#: src/tables/plugin/PluginListTable.tsx:276 -#: src/tables/sales/SalesOrderAllocationTable.tsx:56 -#: src/tables/sales/SalesOrderLineItemTable.tsx:67 -#: src/tables/stock/LocationTypesTable.tsx:74 -msgid "Description" -msgstr "Leírás" - -#: src/pages/build/BuildDetail.tsx:129 +#: src/pages/build/BuildDetail.tsx:124 msgid "Parent Build" msgstr "Szülő gyártás" -#: src/pages/build/BuildDetail.tsx:140 +#: src/pages/build/BuildDetail.tsx:135 msgid "Build Quantity" msgstr "Gyártási mennyiség" -#: src/pages/build/BuildDetail.tsx:148 -#: src/pages/build/BuildDetail.tsx:274 +#: src/pages/build/BuildDetail.tsx:143 +#: src/pages/build/BuildDetail.tsx:277 msgid "Completed Outputs" msgstr "Befejezett kimenetek" -#: src/pages/build/BuildDetail.tsx:165 -#: src/tables/build/BuildOrderTable.tsx:151 +#: src/pages/build/BuildDetail.tsx:160 +#: src/tables/build/BuildOrderTable.tsx:142 msgid "Issued By" msgstr "" -#: src/pages/build/BuildDetail.tsx:172 -#: src/pages/part/PartDetail.tsx:365 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:220 -#: src/pages/sales/ReturnOrderDetail.tsx:199 -#: src/pages/sales/SalesOrderDetail.tsx:208 -#: src/tables/build/BuildOrderTable.tsx:157 -#: src/tables/purchasing/PurchaseOrderTable.tsx:75 -#: src/tables/sales/ReturnOrderTable.tsx:66 -#: src/tables/sales/SalesOrderTable.tsx:73 +#: src/pages/build/BuildDetail.tsx:167 +#: src/pages/part/PartDetail.tsx:406 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:244 +#: src/pages/sales/ReturnOrderDetail.tsx:216 +#: src/pages/sales/SalesOrderDetail.tsx:226 +#: src/tables/build/BuildOrderTable.tsx:148 +#: src/tables/purchasing/PurchaseOrderTable.tsx:76 +#: src/tables/sales/ReturnOrderTable.tsx:74 +#: src/tables/sales/SalesOrderTable.tsx:74 msgid "Responsible" msgstr "Felelős" -#: src/pages/build/BuildDetail.tsx:179 -#: src/tables/settings/PendingTasksTable.tsx:32 +#: src/pages/build/BuildDetail.tsx:174 +#: src/tables/settings/PendingTasksTable.tsx:36 msgid "Created" msgstr "" +#: src/pages/build/BuildDetail.tsx:181 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:229 +#: src/pages/sales/ReturnOrderDetail.tsx:201 +#: src/pages/sales/SalesOrderDetail.tsx:212 +#: src/tables/ColumnRenderers.tsx:226 +#: src/tables/part/PartPurchaseOrdersTable.tsx:100 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:135 +#: src/tables/sales/SalesOrderLineItemTable.tsx:107 +msgid "Target Date" +msgstr "Cél dátum" + #: src/pages/build/BuildDetail.tsx:185 #: src/pages/part/PartDetail.tsx:269 #: src/pages/stock/StockDetail.tsx:150 #~ msgid "View part barcode" #~ msgstr "View part barcode" -#: src/pages/build/BuildDetail.tsx:186 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:213 -#: src/pages/sales/ReturnOrderDetail.tsx:192 -#: src/pages/sales/SalesOrderDetail.tsx:201 -#: src/tables/ColumnRenderers.tsx:212 -#: src/tables/part/PartPurchaseOrdersTable.tsx:99 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:110 -#: src/tables/sales/SalesOrderLineItemTable.tsx:99 -msgid "Target Date" -msgstr "Cél dátum" +#: src/pages/build/BuildDetail.tsx:188 +#: src/tables/sales/SalesOrderLineItemTable.tsx:281 +msgid "Completed" +msgstr "" #: src/pages/build/BuildDetail.tsx:190 #: src/pages/part/PartDetail.tsx:274 #~ msgid "Link custom barcode to part" #~ msgstr "Link custom barcode to part" -#: src/pages/build/BuildDetail.tsx:193 -msgid "Completed" -msgstr "" - #: src/pages/build/BuildDetail.tsx:196 #: src/pages/part/PartDetail.tsx:280 #~ msgid "Unlink custom barcode from part" @@ -4060,15 +4833,11 @@ msgstr "" #~ msgid "Build Order updated" #~ msgstr "Build Order updated" -#: src/pages/build/BuildDetail.tsx:205 -msgid "Source Location" -msgstr "" - -#: src/pages/build/BuildDetail.tsx:206 +#: src/pages/build/BuildDetail.tsx:209 msgid "Any location" msgstr "" -#: src/pages/build/BuildDetail.tsx:213 +#: src/pages/build/BuildDetail.tsx:216 msgid "Destination Location" msgstr "" @@ -4084,206 +4853,182 @@ msgstr "" #~ msgid "Delete build order" #~ msgstr "Delete build order" -#: src/pages/build/BuildDetail.tsx:251 +#: src/pages/build/BuildDetail.tsx:254 msgid "Build Details" msgstr "Gyártás részletei" -#: src/pages/build/BuildDetail.tsx:257 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:258 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:267 -#: src/pages/sales/ReturnOrderDetail.tsx:130 -#: src/pages/sales/ReturnOrderDetail.tsx:237 -#: src/pages/sales/ReturnOrderDetail.tsx:246 -#: src/pages/sales/SalesOrderDetail.tsx:272 -#: src/pages/sales/SalesOrderDetail.tsx:281 +#: src/pages/build/BuildDetail.tsx:260 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:282 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:291 +#: src/pages/sales/ReturnOrderDetail.tsx:122 +#: src/pages/sales/ReturnOrderDetail.tsx:254 +#: src/pages/sales/ReturnOrderDetail.tsx:263 +#: src/pages/sales/SalesOrderDetail.tsx:294 +#: src/pages/sales/SalesOrderDetail.tsx:303 msgid "Line Items" msgstr "Sortételek" -#: src/pages/build/BuildDetail.tsx:267 +#: src/pages/build/BuildDetail.tsx:266 msgid "Incomplete Outputs" msgstr "Befejezetlen kimenetek" -#: src/pages/build/BuildDetail.tsx:289 -#: src/pages/sales/SalesOrderDetail.tsx:319 +#: src/pages/build/BuildDetail.tsx:292 +#: src/pages/sales/SalesOrderDetail.tsx:341 msgid "Allocated Stock" msgstr "" -#: src/pages/build/BuildDetail.tsx:299 +#: src/pages/build/BuildDetail.tsx:302 msgid "Consumed Stock" msgstr "Felhasznált készlet" -#: src/pages/build/BuildDetail.tsx:313 +#: src/pages/build/BuildDetail.tsx:316 msgid "Child Build Orders" msgstr "Alárendelt gyártások" #: src/pages/build/BuildDetail.tsx:326 -#: src/tables/build/BuildOutputTable.tsx:384 -#: src/tables/stock/StockItemTestResultTable.tsx:150 +#: src/tables/build/BuildOutputTable.tsx:532 +#: src/tables/stock/StockItemTestResultTable.tsx:156 msgid "Test Results" msgstr "Teszt eredmények" #: src/pages/build/BuildDetail.tsx:337 -#: src/pages/part/PartDetail.tsx:699 +#: src/pages/part/PartDetail.tsx:740 msgid "Test Statistics" msgstr "" -#: src/pages/build/BuildDetail.tsx:351 -#: src/pages/company/CompanyDetail.tsx:259 -#: src/pages/company/ManufacturerPartDetail.tsx:179 -#: src/pages/part/PartDetail.tsx:721 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:309 -#: src/pages/sales/ReturnOrderDetail.tsx:274 -#: src/pages/sales/SalesOrderDetail.tsx:343 -#: src/pages/stock/StockDetail.tsx:385 -msgid "Attachments" -msgstr "Mellékletek" - -#: src/pages/build/BuildDetail.tsx:359 -#: src/pages/company/CompanyDetail.tsx:270 -#: src/pages/company/ManufacturerPartDetail.tsx:190 -#: src/pages/company/SupplierPartDetail.tsx:257 -#: src/pages/part/PartDetail.tsx:729 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:320 -#: src/pages/sales/ReturnOrderDetail.tsx:285 -#: src/pages/sales/SalesOrderDetail.tsx:354 -#: src/pages/stock/StockDetail.tsx:396 -#: src/tables/build/BuildOrderTestTable.tsx:142 -#: src/tables/stock/StockTrackingTable.tsx:189 -msgid "Notes" -msgstr "Megjegyzések" +#: src/pages/build/BuildDetail.tsx:365 +msgid "Edit Build Order" +msgstr "Gyártási utasítás szerkesztése" #: src/pages/build/BuildDetail.tsx:368 #~ msgid "Reporting Actions" #~ msgstr "Reporting Actions" +#: src/pages/build/BuildDetail.tsx:372 +#: src/tables/build/BuildOrderTable.tsx:173 +#: src/tables/build/BuildOrderTable.tsx:188 +msgid "Add Build Order" +msgstr "Gyártási utasítás létrehozása" + #: src/pages/build/BuildDetail.tsx:374 #~ msgid "Print build report" #~ msgstr "Print build report" -#: src/pages/build/BuildDetail.tsx:377 -msgid "Edit Build Order" -msgstr "Gyártási utasítás szerkesztése" - -#: src/pages/build/BuildDetail.tsx:384 -#: src/tables/build/BuildOrderTable.tsx:172 -#: src/tables/build/BuildOrderTable.tsx:187 -msgid "Add Build Order" -msgstr "Gyártási utasítás létrehozása" - -#: src/pages/build/BuildDetail.tsx:398 +#: src/pages/build/BuildDetail.tsx:386 msgid "Cancel Build Order" msgstr "" -#: src/pages/build/BuildDetail.tsx:400 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:348 -#: src/pages/sales/SalesOrderDetail.tsx:380 +#: src/pages/build/BuildDetail.tsx:388 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:357 +#: src/pages/sales/ReturnOrderDetail.tsx:354 +#: src/pages/sales/SalesOrderDetail.tsx:387 msgid "Order cancelled" msgstr "" -#: src/pages/build/BuildDetail.tsx:401 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:347 -#: src/pages/sales/ReturnOrderDetail.tsx:346 -#: src/pages/sales/SalesOrderDetail.tsx:379 +#: src/pages/build/BuildDetail.tsx:389 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:356 +#: src/pages/sales/ReturnOrderDetail.tsx:353 +#: src/pages/sales/SalesOrderDetail.tsx:386 msgid "Cancel this order" msgstr "" -#: src/pages/build/BuildDetail.tsx:410 +#: src/pages/build/BuildDetail.tsx:398 msgid "Hold Build Order" msgstr "" -#: src/pages/build/BuildDetail.tsx:412 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:355 -#: src/pages/sales/ReturnOrderDetail.tsx:354 -#: src/pages/sales/SalesOrderDetail.tsx:387 +#: src/pages/build/BuildDetail.tsx:400 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:364 +#: src/pages/sales/ReturnOrderDetail.tsx:361 +#: src/pages/sales/SalesOrderDetail.tsx:394 msgid "Place this order on hold" msgstr "" -#: src/pages/build/BuildDetail.tsx:413 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:356 -#: src/pages/sales/ReturnOrderDetail.tsx:355 -#: src/pages/sales/SalesOrderDetail.tsx:388 +#: src/pages/build/BuildDetail.tsx:401 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:365 +#: src/pages/sales/ReturnOrderDetail.tsx:362 +#: src/pages/sales/SalesOrderDetail.tsx:395 msgid "Order placed on hold" msgstr "" -#: src/pages/build/BuildDetail.tsx:418 +#: src/pages/build/BuildDetail.tsx:406 msgid "Issue Build Order" msgstr "" -#: src/pages/build/BuildDetail.tsx:420 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:339 -#: src/pages/sales/ReturnOrderDetail.tsx:338 -#: src/pages/sales/SalesOrderDetail.tsx:371 +#: src/pages/build/BuildDetail.tsx:408 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:348 +#: src/pages/sales/ReturnOrderDetail.tsx:345 +#: src/pages/sales/SalesOrderDetail.tsx:378 msgid "Issue this order" msgstr "" -#: src/pages/build/BuildDetail.tsx:421 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:340 -#: src/pages/sales/ReturnOrderDetail.tsx:339 -#: src/pages/sales/SalesOrderDetail.tsx:372 +#: src/pages/build/BuildDetail.tsx:409 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:349 +#: src/pages/sales/ReturnOrderDetail.tsx:346 +#: src/pages/sales/SalesOrderDetail.tsx:379 msgid "Order issued" msgstr "" -#: src/pages/build/BuildDetail.tsx:426 +#: src/pages/build/BuildDetail.tsx:414 msgid "Complete Build Order" msgstr "" -#: src/pages/build/BuildDetail.tsx:428 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:368 -#: src/pages/sales/ReturnOrderDetail.tsx:362 -#: src/pages/sales/SalesOrderDetail.tsx:395 +#: src/pages/build/BuildDetail.tsx:416 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:377 +#: src/pages/sales/ReturnOrderDetail.tsx:369 +#: src/pages/sales/SalesOrderDetail.tsx:402 msgid "Mark this order as complete" msgstr "" -#: src/pages/build/BuildDetail.tsx:429 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:362 -#: src/pages/sales/ReturnOrderDetail.tsx:363 -#: src/pages/sales/SalesOrderDetail.tsx:396 +#: src/pages/build/BuildDetail.tsx:417 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:371 +#: src/pages/sales/ReturnOrderDetail.tsx:370 +#: src/pages/sales/SalesOrderDetail.tsx:403 msgid "Order completed" msgstr "" -#: src/pages/build/BuildDetail.tsx:460 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:391 -#: src/pages/sales/ReturnOrderDetail.tsx:392 -#: src/pages/sales/SalesOrderDetail.tsx:425 +#: src/pages/build/BuildDetail.tsx:448 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:400 +#: src/pages/sales/ReturnOrderDetail.tsx:399 +#: src/pages/sales/SalesOrderDetail.tsx:432 msgid "Issue Order" msgstr "" -#: src/pages/build/BuildDetail.tsx:467 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:398 -#: src/pages/sales/ReturnOrderDetail.tsx:399 -#: src/pages/sales/SalesOrderDetail.tsx:439 +#: src/pages/build/BuildDetail.tsx:455 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:407 +#: src/pages/sales/ReturnOrderDetail.tsx:406 +#: src/pages/sales/SalesOrderDetail.tsx:446 msgid "Complete Order" msgstr "" -#: src/pages/build/BuildDetail.tsx:496 +#: src/pages/build/BuildDetail.tsx:473 msgid "Build Order Actions" msgstr "Gyártáshoz foglalások" -#: src/pages/build/BuildDetail.tsx:502 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:432 -#: src/pages/sales/ReturnOrderDetail.tsx:433 -#: src/pages/sales/SalesOrderDetail.tsx:474 +#: src/pages/build/BuildDetail.tsx:478 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:429 +#: src/pages/sales/ReturnOrderDetail.tsx:428 +#: src/pages/sales/SalesOrderDetail.tsx:469 msgid "Edit order" msgstr "" -#: src/pages/build/BuildDetail.tsx:506 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:440 -#: src/pages/sales/ReturnOrderDetail.tsx:439 -#: src/pages/sales/SalesOrderDetail.tsx:479 +#: src/pages/build/BuildDetail.tsx:482 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:437 +#: src/pages/sales/ReturnOrderDetail.tsx:434 +#: src/pages/sales/SalesOrderDetail.tsx:474 msgid "Duplicate order" msgstr "" -#: src/pages/build/BuildDetail.tsx:510 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:443 -#: src/pages/sales/ReturnOrderDetail.tsx:444 -#: src/pages/sales/SalesOrderDetail.tsx:482 +#: src/pages/build/BuildDetail.tsx:486 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:440 +#: src/pages/sales/ReturnOrderDetail.tsx:439 +#: src/pages/sales/SalesOrderDetail.tsx:477 msgid "Hold order" msgstr "" -#: src/pages/build/BuildDetail.tsx:515 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:448 -#: src/pages/sales/ReturnOrderDetail.tsx:449 -#: src/pages/sales/SalesOrderDetail.tsx:487 +#: src/pages/build/BuildDetail.tsx:491 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:445 +#: src/pages/sales/ReturnOrderDetail.tsx:444 +#: src/pages/sales/SalesOrderDetail.tsx:482 msgid "Cancel order" msgstr "" @@ -4295,57 +5040,61 @@ msgstr "" #~ msgid "New Build Order" #~ msgstr "New Build Order" -#: src/pages/company/CompanyDetail.tsx:104 +#: src/pages/company/CompanyDetail.tsx:95 +msgid "Website" +msgstr "Weboldal" + +#: src/pages/company/CompanyDetail.tsx:103 msgid "Phone Number" msgstr "" -#: src/pages/company/CompanyDetail.tsx:111 +#: src/pages/company/CompanyDetail.tsx:110 msgid "Email Address" msgstr "" -#: src/pages/company/CompanyDetail.tsx:121 +#: src/pages/company/CompanyDetail.tsx:120 msgid "Default Currency" msgstr "" -#: src/pages/company/CompanyDetail.tsx:126 +#: src/pages/company/CompanyDetail.tsx:125 #: src/pages/company/SupplierDetail.tsx:8 -#: src/pages/company/SupplierPartDetail.tsx:120 -#: src/pages/company/SupplierPartDetail.tsx:206 -#: src/pages/company/SupplierPartDetail.tsx:351 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:136 -#: src/tables/company/CompanyTable.tsx:100 +#: src/pages/company/SupplierPartDetail.tsx:125 +#: src/pages/company/SupplierPartDetail.tsx:218 +#: src/pages/company/SupplierPartDetail.tsx:340 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:130 +#: src/tables/company/CompanyTable.tsx:101 #: src/tables/part/PartPurchaseOrdersTable.tsx:42 -#: src/tables/purchasing/PurchaseOrderTable.tsx:88 +#: src/tables/purchasing/PurchaseOrderTable.tsx:89 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:36 msgid "Supplier" msgstr "Beszállító" -#: src/pages/company/CompanyDetail.tsx:132 +#: src/pages/company/CompanyDetail.tsx:131 #: src/pages/company/ManufacturerDetail.tsx:8 -#: src/pages/company/ManufacturerPartDetail.tsx:101 -#: src/pages/company/ManufacturerPartDetail.tsx:267 -#: src/pages/company/SupplierPartDetail.tsx:135 -#: src/tables/company/CompanyTable.tsx:105 +#: src/pages/company/ManufacturerPartDetail.tsx:100 +#: src/pages/company/ManufacturerPartDetail.tsx:262 +#: src/pages/company/SupplierPartDetail.tsx:147 +#: src/tables/company/CompanyTable.tsx:106 msgid "Manufacturer" msgstr "Gyártó" -#: src/pages/company/CompanyDetail.tsx:138 +#: src/pages/company/CompanyDetail.tsx:137 #: src/pages/company/CustomerDetail.tsx:8 -#: src/pages/part/pricing/SaleHistoryPanel.tsx:29 -#: src/pages/sales/ReturnOrderDetail.tsx:109 -#: src/pages/sales/SalesOrderDetail.tsx:115 -#: src/pages/stock/StockDetail.tsx:230 -#: src/tables/company/CompanyTable.tsx:110 -#: src/tables/sales/ReturnOrderTable.tsx:78 -#: src/tables/sales/SalesOrderTable.tsx:108 -#: src/tables/stock/StockTrackingTable.tsx:140 +#: src/pages/part/pricing/SaleHistoryPanel.tsx:31 +#: src/pages/sales/ReturnOrderDetail.tsx:101 +#: src/pages/sales/SalesOrderDetail.tsx:110 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:100 +#: src/pages/stock/StockDetail.tsx:271 +#: src/tables/company/CompanyTable.tsx:111 +#: src/tables/sales/ReturnOrderTable.tsx:97 +#: src/tables/sales/SalesOrderTable.tsx:121 +#: src/tables/stock/StockTrackingTable.tsx:144 msgid "Customer" msgstr "Vevő" #: src/pages/company/CompanyDetail.tsx:172 -#: src/tables/stock/StockTrackingTable.tsx:183 -msgid "Details" -msgstr "Részletek" +msgid "Company Details" +msgstr "" #: src/pages/company/CompanyDetail.tsx:175 #~ msgid "Edit company" @@ -4363,140 +5112,150 @@ msgstr "Szállított alkatrészek" #~ msgid "Delete company" #~ msgstr "Delete company" -#: src/pages/company/CompanyDetail.tsx:232 +#: src/pages/company/CompanyDetail.tsx:234 msgid "Assigned Stock" msgstr "Hozzárendelt készlet" -#: src/pages/company/CompanyDetail.tsx:290 -#: src/tables/company/CompanyTable.tsx:86 +#: src/pages/company/CompanyDetail.tsx:273 +#: src/tables/company/CompanyTable.tsx:87 msgid "Edit Company" msgstr "Cég szerkesztése" -#: src/pages/company/CompanyDetail.tsx:298 +#: src/pages/company/CompanyDetail.tsx:281 msgid "Delete Company" msgstr "" -#: src/pages/company/CompanyDetail.tsx:306 +#: src/pages/company/CompanyDetail.tsx:289 msgid "Company Actions" msgstr "Cég műveletek" -#: src/pages/company/ManufacturerPartDetail.tsx:76 -#: src/pages/company/SupplierPartDetail.tsx:89 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:128 +#: src/pages/company/ManufacturerPartDetail.tsx:74 +#: src/pages/company/SupplierPartDetail.tsx:84 msgid "Internal Part" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:91 -#: src/pages/company/SupplierPartDetail.tsx:103 -msgid "External Link" -msgstr "" - -#: src/pages/company/ManufacturerPartDetail.tsx:109 -#: src/pages/company/SupplierPartDetail.tsx:144 -#: src/tables/purchasing/ManufacturerPartTable.tsx:56 +#: src/pages/company/ManufacturerPartDetail.tsx:108 +#: src/pages/company/SupplierPartDetail.tsx:156 +#: src/tables/purchasing/ManufacturerPartTable.tsx:58 msgid "Manufacturer Part Number" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:138 +#: src/pages/company/ManufacturerPartDetail.tsx:125 +#: src/pages/company/SupplierPartDetail.tsx:108 +msgid "External Link" +msgstr "" + +#: src/pages/company/ManufacturerPartDetail.tsx:146 +#: src/pages/company/SupplierPartDetail.tsx:215 +#: src/pages/part/PartDetail.tsx:576 +msgid "Part Details" +msgstr "Alkatrész részletei" + +#: src/pages/company/ManufacturerPartDetail.tsx:149 msgid "Manufacturer Details" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:147 +#: src/pages/company/ManufacturerPartDetail.tsx:158 msgid "Manufacturer Part Details" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:153 -#: src/pages/part/PartDetail.tsx:532 +#: src/pages/company/ManufacturerPartDetail.tsx:164 +#: src/pages/part/PartDetail.tsx:582 msgid "Parameters" msgstr "Paraméterek" -#: src/pages/company/ManufacturerPartDetail.tsx:165 -#: src/pages/part/PartDetail.tsx:649 +#: src/pages/company/ManufacturerPartDetail.tsx:176 +#: src/pages/part/PartDetail.tsx:669 #: src/pages/purchasing/PurchasingIndex.tsx:31 msgid "Suppliers" msgstr "Beszállítók" -#: src/pages/company/ManufacturerPartDetail.tsx:208 -#: src/tables/purchasing/ManufacturerPartTable.tsx:84 +#: src/pages/company/ManufacturerPartDetail.tsx:204 +#: src/tables/purchasing/ManufacturerPartTable.tsx:86 msgid "Edit Manufacturer Part" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:215 -#: src/tables/purchasing/ManufacturerPartTable.tsx:72 -#: src/tables/purchasing/ManufacturerPartTable.tsx:103 +#: src/pages/company/ManufacturerPartDetail.tsx:211 +#: src/tables/purchasing/ManufacturerPartTable.tsx:74 +#: src/tables/purchasing/ManufacturerPartTable.tsx:106 msgid "Add Manufacturer Part" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:227 -#: src/tables/purchasing/ManufacturerPartTable.tsx:92 +#: src/pages/company/ManufacturerPartDetail.tsx:223 +#: src/tables/purchasing/ManufacturerPartTable.tsx:94 msgid "Delete Manufacturer Part" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:240 +#: src/pages/company/ManufacturerPartDetail.tsx:236 msgid "Manufacturer Part Actions" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:281 +#: src/pages/company/ManufacturerPartDetail.tsx:276 msgid "ManufacturerPart" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:163 -#: src/tables/part/PartPurchaseOrdersTable.tsx:71 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:156 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:197 -#: src/tables/purchasing/SupplierPartTable.tsx:131 +#: src/pages/company/SupplierPartDetail.tsx:99 +msgid "Part Description" +msgstr "Alkatrész leírása" + +#: src/pages/company/SupplierPartDetail.tsx:175 +#: src/tables/part/PartPurchaseOrdersTable.tsx:72 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:162 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:203 +#: src/tables/purchasing/SupplierPartTable.tsx:133 msgid "Pack Quantity" msgstr "Csomagolási mennyiség" -#: src/pages/company/SupplierPartDetail.tsx:174 +#: src/pages/company/SupplierPartDetail.tsx:186 msgid "Supplier Availability" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:181 +#: src/pages/company/SupplierPartDetail.tsx:193 msgid "Availability Updated" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:208 +#: src/pages/company/SupplierPartDetail.tsx:220 msgid "Availability" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:217 +#: src/pages/company/SupplierPartDetail.tsx:229 msgid "Supplier Part Details" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:223 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:296 +#: src/pages/company/SupplierPartDetail.tsx:235 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:320 msgid "Received Stock" msgstr "Beérkezett készlet" -#: src/pages/company/SupplierPartDetail.tsx:247 -#: src/pages/part/PartPricingPanel.tsx:111 -#: src/pages/part/pricing/PricingOverviewPanel.tsx:121 +#: src/pages/company/SupplierPartDetail.tsx:259 +#: src/pages/part/PartPricingPanel.tsx:116 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:195 msgid "Supplier Pricing" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:294 +#: src/pages/company/SupplierPartDetail.tsx:284 msgid "Supplier Part Actions" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:319 -#: src/tables/purchasing/SupplierPartTable.tsx:210 +#: src/pages/company/SupplierPartDetail.tsx:308 +#: src/tables/purchasing/SupplierPartTable.tsx:213 msgid "Edit Supplier Part" msgstr "Beszállítói alkatrész szerkesztése" -#: src/pages/company/SupplierPartDetail.tsx:327 -#: src/tables/purchasing/SupplierPartTable.tsx:218 +#: src/pages/company/SupplierPartDetail.tsx:316 +#: src/tables/purchasing/SupplierPartTable.tsx:221 msgid "Delete Supplier Part" msgstr "Beszállítói alkatrész törlése" -#: src/pages/company/SupplierPartDetail.tsx:335 -#: src/tables/purchasing/SupplierPartTable.tsx:163 +#: src/pages/company/SupplierPartDetail.tsx:324 +#: src/tables/purchasing/SupplierPartTable.tsx:165 msgid "Add Supplier Part" msgstr "Beszállítói alkatrész hozzáadása" #: src/pages/part/CategoryDetail.tsx:93 -#: src/pages/stock/LocationDetail.tsx:101 -#: src/tables/settings/ErrorTable.tsx:36 +#: src/pages/stock/LocationDetail.tsx:95 +#: src/tables/settings/ErrorTable.tsx:63 +#: src/tables/settings/ErrorTable.tsx:108 msgid "Path" msgstr "Elérési út" @@ -4504,357 +5263,357 @@ msgstr "Elérési út" msgid "Parent Category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:126 +#: src/pages/part/CategoryDetail.tsx:132 msgid "Subcategories" msgstr "" -#: src/pages/part/CategoryDetail.tsx:133 -#: src/pages/stock/LocationDetail.tsx:141 -#: src/tables/part/PartCategoryTable.tsx:73 +#: src/pages/part/CategoryDetail.tsx:139 +#: src/pages/stock/LocationDetail.tsx:135 +#: src/tables/part/PartCategoryTable.tsx:85 #: src/tables/stock/StockLocationTable.tsx:49 msgid "Structural" msgstr "Szerkezeti" -#: src/pages/part/CategoryDetail.tsx:139 +#: src/pages/part/CategoryDetail.tsx:145 msgid "Parent default location" msgstr "" -#: src/pages/part/CategoryDetail.tsx:146 +#: src/pages/part/CategoryDetail.tsx:152 msgid "Default location" msgstr "" -#: src/pages/part/CategoryDetail.tsx:157 +#: src/pages/part/CategoryDetail.tsx:163 msgid "Top level part category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:167 -#: src/pages/part/CategoryDetail.tsx:221 -#: src/tables/part/PartCategoryTable.tsx:102 +#: src/pages/part/CategoryDetail.tsx:173 +#: src/pages/part/CategoryDetail.tsx:226 +#: src/tables/part/PartCategoryTable.tsx:118 msgid "Edit Part Category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:180 -#: src/pages/stock/LocationDetail.tsx:233 +#: src/pages/part/CategoryDetail.tsx:186 +#: src/pages/stock/LocationDetail.tsx:227 msgid "Delete items" msgstr "" -#: src/pages/part/CategoryDetail.tsx:188 -#: src/pages/part/CategoryDetail.tsx:226 +#: src/pages/part/CategoryDetail.tsx:194 +#: src/pages/part/CategoryDetail.tsx:231 msgid "Delete Part Category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:191 +#: src/pages/part/CategoryDetail.tsx:197 msgid "Parts Action" msgstr "" -#: src/pages/part/CategoryDetail.tsx:192 +#: src/pages/part/CategoryDetail.tsx:198 msgid "Action for parts in this category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:197 +#: src/pages/part/CategoryDetail.tsx:203 msgid "Child Categories Action" msgstr "" -#: src/pages/part/CategoryDetail.tsx:198 +#: src/pages/part/CategoryDetail.tsx:204 msgid "Action for child categories in this category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:216 +#: src/pages/part/CategoryDetail.tsx:222 msgid "Category Actions" msgstr "" -#: src/pages/part/CategoryDetail.tsx:238 +#: src/pages/part/CategoryDetail.tsx:243 msgid "Category Details" msgstr "" -#: src/pages/part/PartDetail.tsx:163 +#: src/pages/part/PartAllocationPanel.tsx:23 +#: src/pages/stock/StockDetail.tsx:443 +#: src/tables/part/PartTable.tsx:99 +msgid "Build Order Allocations" +msgstr "Gyártáshoz foglalások" + +#: src/pages/part/PartAllocationPanel.tsx:40 +#: src/pages/stock/StockDetail.tsx:458 +#: src/tables/part/PartTable.tsx:108 +msgid "Sales Order Allocations" +msgstr "Vevői rendeléshez foglalások" + +#: src/pages/part/PartDetail.tsx:184 msgid "Variant of" msgstr "" -#: src/pages/part/PartDetail.tsx:170 +#: src/pages/part/PartDetail.tsx:191 msgid "Revision of" msgstr "" -#: src/pages/part/PartDetail.tsx:177 -#: src/tables/stock/StockItemTable.tsx:58 +#: src/pages/part/PartDetail.tsx:198 +#: src/tables/stock/StockItemTable.tsx:59 msgid "Revision" msgstr "" -#: src/pages/part/PartDetail.tsx:184 +#: src/pages/part/PartDetail.tsx:205 #: src/tables/notifications/NotificationsTable.tsx:31 #: src/tables/part/PartCategoryTemplateTable.tsx:67 msgid "Category" msgstr "Kategória" -#: src/pages/part/PartDetail.tsx:190 +#: src/pages/part/PartDetail.tsx:211 msgid "Default Location" msgstr "" -#: src/pages/part/PartDetail.tsx:197 +#: src/pages/part/PartDetail.tsx:218 msgid "Category Default Location" msgstr "" -#: src/pages/part/PartDetail.tsx:204 +#: src/pages/part/PartDetail.tsx:225 #: src/tables/purchasing/ManufacturerPartParameterTable.tsx:44 msgid "Units" msgstr "Mértékegységek" -#: src/pages/part/PartDetail.tsx:211 -#: src/tables/settings/PendingTasksTable.tsx:42 +#: src/pages/part/PartDetail.tsx:232 +#: src/tables/settings/PendingTasksTable.tsx:46 msgid "Keywords" msgstr "" -#: src/pages/part/PartDetail.tsx:218 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:186 -#: src/pages/sales/ReturnOrderDetail.tsx:165 -#: src/pages/sales/SalesOrderDetail.tsx:174 -msgid "Link" -msgstr "Link" - -#: src/pages/part/PartDetail.tsx:236 +#: src/pages/part/PartDetail.tsx:257 #: src/tables/bom/BomTable.tsx:320 -#: src/tables/build/BuildLineTable.tsx:155 +#: src/tables/build/BuildLineTable.tsx:286 #: src/tables/part/PartTable.tsx:288 -#: src/tables/sales/SalesOrderLineItemTable.tsx:103 +#: src/tables/sales/SalesOrderLineItemTable.tsx:111 msgid "Available Stock" msgstr "" -#: src/pages/part/PartDetail.tsx:243 +#: src/pages/part/PartDetail.tsx:264 msgid "Variant Stock" msgstr "" -#: src/pages/part/PartDetail.tsx:251 +#: src/pages/part/PartDetail.tsx:272 msgid "Minimum Stock" msgstr "" -#: src/pages/part/PartDetail.tsx:257 +#: src/pages/part/PartDetail.tsx:278 #: src/tables/bom/BomTable.tsx:237 -#: src/tables/build/BuildLineTable.tsx:117 -#: src/tables/sales/SalesOrderLineItemTable.tsx:141 +#: src/tables/build/BuildLineTable.tsx:248 +#: src/tables/sales/SalesOrderLineItemTable.tsx:149 msgid "On order" msgstr "Rendelve" -#: src/pages/part/PartDetail.tsx:266 +#: src/pages/part/PartDetail.tsx:285 +msgid "Required for Orders" +msgstr "" + +#: src/pages/part/PartDetail.tsx:294 msgid "Allocated to Build Orders" msgstr "" -#: src/pages/part/PartDetail.tsx:274 +#: src/pages/part/PartDetail.tsx:305 msgid "Allocated to Sales Orders" msgstr "" -#: src/pages/part/PartDetail.tsx:281 -#: src/tables/bom/BomTable.tsx:261 -#: src/tables/bom/BomTable.tsx:293 -msgid "Can Build" -msgstr "Gyártható" - -#: src/pages/part/PartDetail.tsx:288 -#: src/tables/bom/BomTable.tsx:245 -#: src/tables/part/PartTable.tsx:92 -msgid "Building" -msgstr "Gyártásban" - -#: src/pages/part/PartDetail.tsx:302 -#: src/pages/part/PartDetail.tsx:873 -#: src/tables/part/ParametricPartTable.tsx:228 -#: src/tables/part/PartTable.tsx:184 -msgid "Locked" -msgstr "" - -#: src/pages/part/PartDetail.tsx:308 -msgid "Template Part" -msgstr "" - #: src/pages/part/PartDetail.tsx:310 #~ msgid "Edit part" #~ msgstr "Edit part" -#: src/pages/part/PartDetail.tsx:313 -#: src/tables/bom/BomTable.tsx:315 -msgid "Assembled Part" -msgstr "Gyártmány alkatrész" +#: src/pages/part/PartDetail.tsx:315 +#: src/tables/bom/BomTable.tsx:261 +#: src/tables/bom/BomTable.tsx:293 +msgid "Can Build" +msgstr "Gyártható" -#: src/pages/part/PartDetail.tsx:318 -msgid "Component Part" -msgstr "" +#: src/pages/part/PartDetail.tsx:322 +#: src/pages/part/PartDetail.tsx:905 +#: src/pages/stock/StockDetail.tsx:766 +#: src/tables/build/BuildOrderTestTable.tsx:220 +#: src/tables/stock/StockItemTable.tsx:334 +msgid "In Production" +msgstr "Gyártásban" #: src/pages/part/PartDetail.tsx:322 #~ msgid "Duplicate part" #~ msgstr "Duplicate part" -#: src/pages/part/PartDetail.tsx:323 -#: src/tables/bom/BomTable.tsx:305 -msgid "Testable Part" -msgstr "" - #: src/pages/part/PartDetail.tsx:327 #~ msgid "Delete part" #~ msgstr "Delete part" -#: src/pages/part/PartDetail.tsx:329 +#: src/pages/part/PartDetail.tsx:336 +#: src/tables/part/ParametricPartTable.tsx:228 +#: src/tables/part/PartTable.tsx:184 +msgid "Locked" +msgstr "" + +#: src/pages/part/PartDetail.tsx:342 +msgid "Template Part" +msgstr "" + +#: src/pages/part/PartDetail.tsx:347 +#: src/tables/bom/BomTable.tsx:315 +msgid "Assembled Part" +msgstr "Gyártmány alkatrész" + +#: src/pages/part/PartDetail.tsx:352 +msgid "Component Part" +msgstr "" + +#: src/pages/part/PartDetail.tsx:357 +#: src/tables/bom/BomTable.tsx:305 +msgid "Testable Part" +msgstr "" + +#: src/pages/part/PartDetail.tsx:363 #: src/tables/bom/BomTable.tsx:310 msgid "Trackable Part" msgstr "" -#: src/pages/part/PartDetail.tsx:334 +#: src/pages/part/PartDetail.tsx:368 msgid "Purchaseable Part" msgstr "" -#: src/pages/part/PartDetail.tsx:339 +#: src/pages/part/PartDetail.tsx:374 msgid "Saleable Part" msgstr "" -#: src/pages/part/PartDetail.tsx:344 +#: src/pages/part/PartDetail.tsx:379 msgid "Virtual Part" msgstr "" -#: src/pages/part/PartDetail.tsx:352 -#: src/tables/ColumnRenderers.tsx:220 +#: src/pages/part/PartDetail.tsx:393 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:215 +#: src/pages/sales/ReturnOrderDetail.tsx:185 +#: src/pages/sales/SalesOrderDetail.tsx:197 +#: src/tables/ColumnRenderers.tsx:234 msgid "Creation Date" msgstr "Létrehozás dátuma" -#: src/pages/part/PartDetail.tsx:357 +#: src/pages/part/PartDetail.tsx:398 msgid "Created By" msgstr "Készítette" -#: src/pages/part/PartDetail.tsx:372 +#: src/pages/part/PartDetail.tsx:413 msgid "Default Supplier" msgstr "Alapértelmezett beszállító" -#: src/pages/part/PartDetail.tsx:383 -#: src/pages/part/pricing/BomPricingPanel.tsx:79 +#: src/pages/part/PartDetail.tsx:424 +#: src/pages/part/pricing/BomPricingPanel.tsx:113 #: src/pages/part/pricing/VariantPricingPanel.tsx:95 #: src/tables/part/PartTable.tsx:161 msgid "Price Range" msgstr "Ártartomány" -#: src/pages/part/PartDetail.tsx:423 -#: src/pages/stock/StockDetail.tsx:135 +#: src/pages/part/PartDetail.tsx:462 +msgid "Latest Serial Number" +msgstr "" + +#: src/pages/part/PartDetail.tsx:472 +#: src/pages/stock/StockDetail.tsx:151 msgid "Last Stocktake" msgstr "Utolsó leltár" -#: src/pages/part/PartDetail.tsx:462 +#: src/pages/part/PartDetail.tsx:511 msgid "Stocktake By" msgstr "Leltárazta" -#: src/pages/part/PartDetail.tsx:526 -msgid "Part Details" -msgstr "Alkatrész részletei" - -#: src/pages/part/PartDetail.tsx:557 +#: src/pages/part/PartDetail.tsx:611 msgid "Variants" msgstr "Változatok" -#: src/pages/part/PartDetail.tsx:564 -#: src/pages/stock/StockDetail.tsx:307 +#: src/pages/part/PartDetail.tsx:618 +#: src/pages/stock/StockDetail.tsx:430 msgid "Allocations" msgstr "Foglalások" -#: src/pages/part/PartDetail.tsx:575 -#: src/pages/stock/StockDetail.tsx:318 -#: src/tables/part/PartTable.tsx:99 -msgid "Build Order Allocations" -msgstr "Gyártáshoz foglalások" - -#: src/pages/part/PartDetail.tsx:590 -#: src/pages/stock/StockDetail.tsx:333 -#: src/tables/part/PartTable.tsx:108 -msgid "Sales Order Allocations" -msgstr "Vevői rendeléshez foglalások" - -#: src/pages/part/PartDetail.tsx:607 +#: src/pages/part/PartDetail.tsx:625 msgid "Bill of Materials" msgstr "Alkatrészjegyzék" -#: src/pages/part/PartDetail.tsx:623 +#: src/pages/part/PartDetail.tsx:643 msgid "Used In" msgstr "Felhasználva ebben" -#: src/pages/part/PartDetail.tsx:630 +#: src/pages/part/PartDetail.tsx:650 msgid "Part Pricing" msgstr "Alkatrész árak" -#: src/pages/part/PartDetail.tsx:636 +#: src/pages/part/PartDetail.tsx:656 #: src/pages/purchasing/PurchasingIndex.tsx:42 msgid "Manufacturers" msgstr "Gyártók" -#: src/pages/part/PartDetail.tsx:676 +#: src/pages/part/PartDetail.tsx:722 msgid "Scheduling" msgstr "Ütemezés" -#: src/pages/part/PartDetail.tsx:688 +#: src/pages/part/PartDetail.tsx:729 msgid "Test Templates" msgstr "Teszt sablonok" -#: src/pages/part/PartDetail.tsx:715 +#: src/pages/part/PartDetail.tsx:756 msgid "Related Parts" msgstr "Kapcsolódó alkatrészek" -#: src/pages/part/PartDetail.tsx:849 -#: src/pages/stock/StockDetail.tsx:156 -#: src/pages/stock/StockDetail.tsx:593 -#: src/tables/build/BuildLineTable.tsx:48 +#: src/pages/part/PartDetail.tsx:881 +#: src/pages/stock/StockDetail.tsx:172 +#: src/pages/stock/StockDetail.tsx:783 +#: src/tables/build/BuildLineTable.tsx:179 #: src/tables/part/PartTable.tsx:117 -#: src/tables/stock/StockItemTable.tsx:177 -#: src/tables/stock/StockItemTable.tsx:310 +#: src/tables/stock/StockItemTable.tsx:166 +#: src/tables/stock/StockItemTable.tsx:314 msgid "Available" msgstr "Elérhető" -#: src/pages/part/PartDetail.tsx:855 +#: src/pages/part/PartDetail.tsx:887 msgid "No Stock" msgstr "Nincs készlet" -#: src/pages/part/PartDetail.tsx:861 +#: src/pages/part/PartDetail.tsx:893 +#: src/tables/part/PartTestTemplateTable.tsx:106 +#: src/tables/stock/StockItemTestResultTable.tsx:383 +msgid "Required" +msgstr "" + +#: src/pages/part/PartDetail.tsx:899 #: src/tables/bom/BomTable.tsx:325 #: src/tables/part/PartTable.tsx:86 msgid "On Order" msgstr "Rendelve" -#: src/pages/part/PartDetail.tsx:867 -#: src/pages/stock/StockDetail.tsx:576 -#: src/tables/build/BuildOrderTestTable.tsx:219 -#: src/tables/stock/StockItemTable.tsx:330 -msgid "In Production" -msgstr "Gyártásban" - -#: src/pages/part/PartDetail.tsx:892 +#: src/pages/part/PartDetail.tsx:924 msgid "Edit Part" msgstr "Alkatrész szerkesztése" -#: src/pages/part/PartDetail.tsx:927 +#: src/pages/part/PartDetail.tsx:959 #: src/tables/part/PartTable.tsx:331 -#: src/tables/part/PartTable.tsx:342 +#: src/tables/part/PartTable.tsx:343 msgid "Add Part" msgstr "Alkatrész hozzáadása" -#: src/pages/part/PartDetail.tsx:941 +#: src/pages/part/PartDetail.tsx:973 msgid "Delete Part" msgstr "" -#: src/pages/part/PartDetail.tsx:950 +#: src/pages/part/PartDetail.tsx:982 msgid "Deleting this part cannot be reversed" msgstr "" -#: src/pages/part/PartDetail.tsx:999 -#: src/pages/stock/LocationDetail.tsx:324 -#: src/tables/stock/StockItemTable.tsx:444 +#: src/pages/part/PartDetail.tsx:1021 +#: src/pages/stock/LocationDetail.tsx:310 +#: src/tables/stock/StockItemTable.tsx:449 msgid "Stock Actions" msgstr "Készlet műveletek" -#: src/pages/part/PartDetail.tsx:1007 +#: src/pages/part/PartDetail.tsx:1029 msgid "Count part stock" msgstr "Készlet számolása" -#: src/pages/part/PartDetail.tsx:1018 +#: src/pages/part/PartDetail.tsx:1040 msgid "Transfer part stock" msgstr "Készlet áthelyezése" -#: src/pages/part/PartDetail.tsx:1027 +#: src/pages/part/PartDetail.tsx:1049 msgid "Part Actions" msgstr "Alkatrész műveletek" -#: src/pages/part/PartDetail.tsx:1087 +#: src/pages/part/PartDetail.tsx:1113 msgid "Select Part Revision" msgstr "" @@ -4862,113 +5621,214 @@ msgstr "" #~ msgid "Categories" #~ msgstr "Categories" -#: src/pages/part/PartPricingPanel.tsx:68 +#: src/pages/part/PartPricingPanel.tsx:72 msgid "No pricing data found for this part." msgstr "Nincs árazási információ ehhez az alkatrészhez." -#: src/pages/part/PartPricingPanel.tsx:82 -#: src/pages/part/pricing/PricingOverviewPanel.tsx:190 +#: src/pages/part/PartPricingPanel.tsx:87 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:293 msgid "Pricing Overview" msgstr "Árazás áttekintés" -#: src/pages/part/PartPricingPanel.tsx:88 +#: src/pages/part/PartPricingPanel.tsx:93 msgid "Purchase History" msgstr "Beszerzési előzmények" -#: src/pages/part/PartPricingPanel.tsx:102 -#: src/pages/part/pricing/PricingOverviewPanel.tsx:100 +#: src/pages/part/PartPricingPanel.tsx:107 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:174 msgid "Internal Pricing" msgstr "Belső árazás" -#: src/pages/part/PartPricingPanel.tsx:120 -#: src/pages/part/pricing/PricingOverviewPanel.tsx:107 +#: src/pages/part/PartPricingPanel.tsx:125 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:181 msgid "BOM Pricing" msgstr "Alkatrészjegyzék árazás" -#: src/pages/part/PartPricingPanel.tsx:127 -#: src/pages/part/pricing/PricingOverviewPanel.tsx:128 +#: src/pages/part/PartPricingPanel.tsx:132 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:202 msgid "Variant Pricing" msgstr "Alkatrészváltozat árazás" -#: src/pages/part/PartPricingPanel.tsx:139 -#: src/pages/part/pricing/PricingOverviewPanel.tsx:135 +#: src/pages/part/PartPricingPanel.tsx:144 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:209 msgid "Sale Pricing" msgstr "Eladási ár" -#: src/pages/part/PartPricingPanel.tsx:146 -#: src/pages/part/pricing/PricingOverviewPanel.tsx:142 +#: src/pages/part/PartPricingPanel.tsx:151 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:216 msgid "Sale History" msgstr "Eladási előzmények" -#: src/pages/part/pricing/BomPricingPanel.tsx:58 -#: src/pages/part/pricing/BomPricingPanel.tsx:138 -#: src/tables/ColumnRenderers.tsx:262 +#: src/pages/part/PartSchedulingDetail.tsx:47 +#: src/pages/part/PartSchedulingDetail.tsx:299 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:156 +msgid "Maximum" +msgstr "Maximum" + +#: src/pages/part/PartSchedulingDetail.tsx:50 +#: src/pages/part/PartSchedulingDetail.tsx:289 +msgid "Scheduled" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:53 +#: src/pages/part/PartSchedulingDetail.tsx:294 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:144 +msgid "Minimum" +msgstr "Minimum" + +#: src/pages/part/PartSchedulingDetail.tsx:68 +msgid "Order" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:92 +msgid "Quantity is speculative" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:101 +msgid "No date available for provided quantity" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:105 +msgid "Date is in the past" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:112 +msgid "Scheduled Quantity" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:240 +msgid "No information available" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:241 +msgid "There is no scheduling information available for the selected part" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:276 +msgid "Expected Quantity" +msgstr "" + +#: src/pages/part/PartStocktakeDetail.tsx:63 +#: src/tables/FilterSelectDrawer.tsx:167 +#: src/tables/FilterSelectDrawer.tsx:174 +#: src/tables/build/BuildOrderTestTable.tsx:135 +#: src/tables/purchasing/ManufacturerPartParameterTable.tsx:38 +#: src/tables/stock/StockItemTestResultTable.tsx:192 +msgid "Value" +msgstr "Érték" + +#: src/pages/part/PartStocktakeDetail.tsx:82 +msgid "Edit Stocktake Entry" +msgstr "" + +#: src/pages/part/PartStocktakeDetail.tsx:90 +msgid "Delete Stocktake Entry" +msgstr "" + +#: src/pages/part/PartStocktakeDetail.tsx:96 +#: src/tables/settings/StocktakeReportTable.tsx:69 +msgid "Generate Stocktake Report" +msgstr "" + +#: src/pages/part/PartStocktakeDetail.tsx:101 +#: src/tables/settings/StocktakeReportTable.tsx:71 +msgid "Stocktake report scheduled" +msgstr "" + +#: src/pages/part/PartStocktakeDetail.tsx:119 +#: src/pages/part/PartStocktakeDetail.tsx:235 +#: src/pages/stock/StockDetail.tsx:303 +#: src/tables/stock/StockItemTable.tsx:249 +msgid "Stock Value" +msgstr "" + +#: src/pages/part/PartStocktakeDetail.tsx:139 +#: src/tables/settings/StocktakeReportTable.tsx:77 +msgid "New Stocktake Report" +msgstr "" + +#: src/pages/part/PartStocktakeDetail.tsx:258 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:295 +msgid "Minimum Value" +msgstr "" + +#: src/pages/part/PartStocktakeDetail.tsx:264 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:296 +msgid "Maximum Value" +msgstr "" + +#: src/pages/part/pricing/BomPricingPanel.tsx:87 +#: src/pages/part/pricing/BomPricingPanel.tsx:177 +#: src/tables/ColumnRenderers.tsx:276 #: src/tables/bom/BomTable.tsx:185 #: src/tables/general/ExtraLineItemTable.tsx:64 -#: src/tables/purchasing/PurchaseOrderTable.tsx:112 -#: src/tables/sales/ReturnOrderTable.tsx:104 -#: src/tables/sales/SalesOrderLineItemTable.tsx:89 -#: src/tables/sales/SalesOrderTable.tsx:136 +#: src/tables/purchasing/PurchaseOrderTable.tsx:113 +#: src/tables/sales/ReturnOrderTable.tsx:127 +#: src/tables/sales/SalesOrderLineItemTable.tsx:97 +#: src/tables/sales/SalesOrderTable.tsx:149 msgid "Total Price" msgstr "Teljes ár" -#: src/pages/part/pricing/BomPricingPanel.tsx:78 -#: src/pages/part/pricing/BomPricingPanel.tsx:102 +#: src/pages/part/pricing/BomPricingPanel.tsx:112 +#: src/pages/part/pricing/BomPricingPanel.tsx:141 #: src/tables/bom/UsedInTable.tsx:49 +#: src/tables/build/BuildLineTable.tsx:296 #: src/tables/part/PartTable.tsx:202 msgid "Component" msgstr "Összetevő" -#: src/pages/part/pricing/BomPricingPanel.tsx:81 -#: src/pages/part/pricing/VariantPricingPanel.tsx:37 -#: src/pages/part/pricing/VariantPricingPanel.tsx:97 -msgid "Minimum Price" -msgstr "Minimum ár" - -#: src/pages/part/pricing/BomPricingPanel.tsx:82 -#: src/pages/part/pricing/VariantPricingPanel.tsx:45 -#: src/pages/part/pricing/VariantPricingPanel.tsx:98 -msgid "Maximum Price" -msgstr "Maximum ár" - #: src/pages/part/pricing/BomPricingPanel.tsx:112 #~ msgid "Minimum Total Price" #~ msgstr "Minimum Total Price" +#: src/pages/part/pricing/BomPricingPanel.tsx:115 +#: src/pages/part/pricing/VariantPricingPanel.tsx:37 +#: src/pages/part/pricing/VariantPricingPanel.tsx:97 +msgid "Minimum Price" +msgstr "Minimum ár" + +#: src/pages/part/pricing/BomPricingPanel.tsx:116 +#: src/pages/part/pricing/VariantPricingPanel.tsx:45 +#: src/pages/part/pricing/VariantPricingPanel.tsx:98 +msgid "Maximum Price" +msgstr "Maximum ár" + #: src/pages/part/pricing/BomPricingPanel.tsx:117 #~ msgid "Maximum Total Price" #~ msgstr "Maximum Total Price" -#: src/pages/part/pricing/BomPricingPanel.tsx:129 -#: src/pages/part/pricing/PriceBreakPanel.tsx:172 -#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:67 -#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:128 -#: src/pages/part/pricing/SupplierPricingPanel.tsx:62 +#: src/pages/part/pricing/BomPricingPanel.tsx:168 +#: src/pages/part/pricing/PriceBreakPanel.tsx:173 +#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:70 +#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:125 +#: src/pages/part/pricing/SupplierPricingPanel.tsx:66 +#: src/pages/stock/StockDetail.tsx:291 #: src/tables/bom/BomTable.tsx:176 #: src/tables/general/ExtraLineItemTable.tsx:56 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:223 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:225 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:92 +#: src/tables/stock/StockItemTable.tsx:239 msgid "Unit Price" msgstr "Egységár" -#: src/pages/part/pricing/BomPricingPanel.tsx:154 +#: src/pages/part/pricing/BomPricingPanel.tsx:193 #: src/pages/part/pricing/VariantPricingPanel.tsx:53 -#: src/tables/purchasing/SupplierPartTable.tsx:148 +#: src/tables/purchasing/SupplierPartTable.tsx:150 msgid "Updated" msgstr "Frissítve" -#: src/pages/part/pricing/BomPricingPanel.tsx:219 +#: src/pages/part/pricing/BomPricingPanel.tsx:258 msgid "Pie Chart" msgstr "Kördiagram" -#: src/pages/part/pricing/BomPricingPanel.tsx:220 +#: src/pages/part/pricing/BomPricingPanel.tsx:259 msgid "Bar Chart" msgstr "Oszlopdiagram" #: src/pages/part/pricing/PriceBreakPanel.tsx:58 -#: src/pages/part/pricing/PriceBreakPanel.tsx:110 +#: src/pages/part/pricing/PriceBreakPanel.tsx:111 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:142 -#: src/tables/purchasing/SupplierPriceBreakTable.tsx:168 +#: src/tables/purchasing/SupplierPriceBreakTable.tsx:169 msgid "Add Price Break" msgstr "Ársáv hozzáadása" @@ -4986,46 +5846,70 @@ msgstr "Ársáv törlése" msgid "Price Break" msgstr "Árlépcső" -#: src/pages/part/pricing/PriceBreakPanel.tsx:170 +#: src/pages/part/pricing/PriceBreakPanel.tsx:171 msgid "Price" msgstr "" -#: src/pages/part/pricing/PricingOverviewPanel.tsx:51 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:68 +msgid "Refreshing pricing data" +msgstr "" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:88 +msgid "Pricing data updated" +msgstr "" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:95 +msgid "Failed to update pricing data" +msgstr "" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:104 +msgid "Edit Pricing" +msgstr "" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:125 msgid "Pricing Category" msgstr "Árkategória" -#: src/pages/part/pricing/PricingOverviewPanel.tsx:70 -msgid "Minimum" -msgstr "Minimum" - -#: src/pages/part/pricing/PricingOverviewPanel.tsx:82 -msgid "Maximum" -msgstr "Maximum" - -#: src/pages/part/pricing/PricingOverviewPanel.tsx:114 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:188 msgid "Purchase Pricing" msgstr "Beszerzési ár" -#: src/pages/part/pricing/PricingOverviewPanel.tsx:149 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:223 msgid "Override Pricing" msgstr "Alkatrész árazás felülbírálása" -#: src/pages/part/pricing/PricingOverviewPanel.tsx:156 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:230 msgid "Overall Pricing" msgstr "Általános árazás" -#: src/pages/part/pricing/PricingOverviewPanel.tsx:175 -#: src/pages/stock/StockDetail.tsx:129 -#: src/tables/stock/StockItemTable.tsx:240 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:249 +#: src/pages/stock/StockDetail.tsx:145 +#: src/tables/stock/StockItemTable.tsx:275 msgid "Last Updated" msgstr "Legutóbb frissítve" -#: src/pages/part/pricing/PricingOverviewPanel.tsx:192 -msgid "Minimum Value" +#: src/pages/part/pricing/PricingOverviewPanel.tsx:253 +msgid "Pricing Not Set" msgstr "" -#: src/pages/part/pricing/PricingOverviewPanel.tsx:193 -msgid "Maximum Value" +#: src/pages/part/pricing/PricingOverviewPanel.tsx:254 +msgid "Pricing data has not been calculated for this part" +msgstr "" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:258 +msgid "Pricing Actions" +msgstr "" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:261 +msgid "Refresh" +msgstr "" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:262 +msgid "Refresh pricing data" +msgstr "" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:277 +msgid "Edit pricing data" msgstr "" #: src/pages/part/pricing/PricingPanel.tsx:24 @@ -5044,28 +5928,20 @@ msgstr "Ár adatok nem elérhetőek" msgid "Loading pricing data" msgstr "" -#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:40 -#: src/pages/part/pricing/SaleHistoryPanel.tsx:36 -#: src/tables/ColumnRenderers.tsx:201 -#: src/tables/build/BuildOrderTestTable.tsx:150 -#: src/tables/plugin/PluginListTable.tsx:139 -msgid "Date" -msgstr "Dátum" - #: src/pages/part/pricing/PurchaseHistoryPanel.tsx:47 msgid "Purchase Price" msgstr "Beszerzési ár" -#: src/pages/part/pricing/SaleHistoryPanel.tsx:22 -msgid "Sale Order" -msgstr "Megrendelések" +#: src/pages/part/pricing/SaleHistoryPanel.tsx:24 +#~ msgid "Sale Order" +#~ msgstr "Sale Order" -#: src/pages/part/pricing/SaleHistoryPanel.tsx:42 -#: src/pages/part/pricing/SaleHistoryPanel.tsx:92 +#: src/pages/part/pricing/SaleHistoryPanel.tsx:44 +#: src/pages/part/pricing/SaleHistoryPanel.tsx:87 msgid "Sale Price" msgstr "Eladási ár" -#: src/pages/part/pricing/SupplierPricingPanel.tsx:65 +#: src/pages/part/pricing/SupplierPricingPanel.tsx:69 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:83 msgid "Supplier Price" msgstr "Beszállítói ár" @@ -5075,23 +5951,23 @@ msgstr "Beszállítói ár" msgid "Variant Part" msgstr "Alkatrészváltozat" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:93 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:87 msgid "Edit Purchase Order" msgstr "Beszerzési rendelés szerkesztése" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:102 -#: src/tables/purchasing/PurchaseOrderTable.tsx:128 -#: src/tables/purchasing/PurchaseOrderTable.tsx:140 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:96 +#: src/tables/purchasing/PurchaseOrderTable.tsx:129 +#: src/tables/purchasing/PurchaseOrderTable.tsx:142 msgid "Add Purchase Order" msgstr "Beszerzés hozzáadása" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:127 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:121 msgid "Supplier Reference" msgstr "Beszállítói azonosító" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:158 -#: src/pages/sales/ReturnOrderDetail.tsx:137 -#: src/pages/sales/SalesOrderDetail.tsx:137 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:152 +#: src/pages/sales/ReturnOrderDetail.tsx:129 +#: src/pages/sales/SalesOrderDetail.tsx:132 msgid "Completed Line Items" msgstr "Kész sortételek" @@ -5101,91 +5977,112 @@ msgstr "Kész sortételek" #~ msgid "Order Currency," #~ msgstr "Order Currency," -#: src/pages/purchasing/PurchaseOrderDetail.tsx:165 -#: src/pages/sales/ReturnOrderDetail.tsx:144 -#: src/pages/sales/SalesOrderDetail.tsx:153 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:161 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:231 +msgid "Destination" +msgstr "Cél" + +#: src/pages/purchasing/PurchaseOrderDetail.tsx:167 +#: src/pages/sales/ReturnOrderDetail.tsx:136 +#: src/pages/sales/SalesOrderDetail.tsx:148 msgid "Order Currency" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:172 -#: src/pages/sales/ReturnOrderDetail.tsx:151 -#: src/pages/sales/SalesOrderDetail.tsx:160 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:173 +#: src/pages/sales/ReturnOrderDetail.tsx:143 +#: src/pages/sales/SalesOrderDetail.tsx:155 msgid "Total Cost" msgstr "Teljes költség" #: src/pages/purchasing/PurchaseOrderDetail.tsx:207 -#: src/pages/sales/ReturnOrderDetail.tsx:186 -#: src/pages/sales/SalesOrderDetail.tsx:195 -msgid "Created On" -msgstr "Létrehozva" +#: src/pages/sales/ReturnOrderDetail.tsx:183 +#: src/pages/sales/SalesOrderDetail.tsx:191 +#~ msgid "Created On" +#~ msgstr "Created On" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:252 -#: src/pages/sales/ReturnOrderDetail.tsx:231 -#: src/pages/sales/SalesOrderDetail.tsx:266 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:221 +#: src/pages/sales/ReturnOrderDetail.tsx:193 +#: src/pages/sales/SalesOrderDetail.tsx:204 +msgid "Issue Date" +msgstr "" + +#: src/pages/purchasing/PurchaseOrderDetail.tsx:237 +#: src/pages/sales/ReturnOrderDetail.tsx:209 +#: src/pages/sales/SalesOrderDetail.tsx:219 +#: src/tables/build/BuildOrderTable.tsx:98 +#: src/tables/part/PartPurchaseOrdersTable.tsx:105 +#: src/tables/sales/ReturnOrderTable.tsx:122 +msgid "Completion Date" +msgstr "" + +#: src/pages/purchasing/PurchaseOrderDetail.tsx:276 +#: src/pages/sales/ReturnOrderDetail.tsx:248 +#: src/pages/sales/SalesOrderDetail.tsx:288 msgid "Order Details" msgstr "Rendelés részletei" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:280 -#: src/pages/sales/ReturnOrderDetail.tsx:258 -#: src/pages/sales/SalesOrderDetail.tsx:297 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:304 +#: src/pages/sales/ReturnOrderDetail.tsx:276 +#: src/pages/sales/SalesOrderDetail.tsx:319 msgid "Extra Line Items" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:337 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:346 msgid "Issue Purchase Order" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:345 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:354 msgid "Cancel Purchase Order" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:353 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:362 msgid "Hold Purchase Order" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:361 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:370 msgid "Complete Purchase Order" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:427 -#: src/pages/sales/ReturnOrderDetail.tsx:428 -#: src/pages/sales/SalesOrderDetail.tsx:468 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:425 +#: src/pages/sales/ReturnOrderDetail.tsx:424 +#: src/pages/sales/SalesOrderDetail.tsx:464 msgid "Order Actions" msgstr "Rendelés műveletek" -#: src/pages/sales/ReturnOrderDetail.tsx:101 -#: src/pages/sales/SalesOrderDetail.tsx:107 -#: src/tables/sales/SalesOrderTable.tsx:124 +#: src/pages/sales/ReturnOrderDetail.tsx:92 +#: src/pages/sales/SalesOrderDetail.tsx:101 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:109 +#: src/tables/sales/SalesOrderTable.tsx:137 msgid "Customer Reference" msgstr "Vevői azonosító" -#: src/pages/sales/ReturnOrderDetail.tsx:315 +#: src/pages/sales/ReturnOrderDetail.tsx:322 msgid "Edit Return Order" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:324 -#: src/tables/sales/ReturnOrderTable.tsx:119 -#: src/tables/sales/ReturnOrderTable.tsx:128 +#: src/pages/sales/ReturnOrderDetail.tsx:331 +#: src/tables/sales/ReturnOrderTable.tsx:142 +#: src/tables/sales/ReturnOrderTable.tsx:152 msgid "Add Return Order" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:336 +#: src/pages/sales/ReturnOrderDetail.tsx:343 msgid "Issue Return Order" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:344 +#: src/pages/sales/ReturnOrderDetail.tsx:349 +#~ msgid "Order canceled" +#~ msgstr "Order canceled" + +#: src/pages/sales/ReturnOrderDetail.tsx:351 msgid "Cancel Return Order" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:347 -msgid "Order canceled" -msgstr "" - -#: src/pages/sales/ReturnOrderDetail.tsx:352 +#: src/pages/sales/ReturnOrderDetail.tsx:359 msgid "Hold Return Order" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:360 +#: src/pages/sales/ReturnOrderDetail.tsx:367 msgid "Complete Return Order" msgstr "" @@ -5193,117 +6090,193 @@ msgstr "" msgid "Customers" msgstr "Vevők" -#: src/pages/sales/SalesOrderDetail.tsx:145 +#: src/pages/sales/SalesOrderDetail.tsx:140 msgid "Completed Shipments" msgstr "Kész szállítmányok" -#: src/pages/sales/SalesOrderDetail.tsx:243 -msgid "Edit Sales Order" -msgstr "" - -#: src/pages/sales/SalesOrderDetail.tsx:252 -#: src/tables/sales/SalesOrderTable.tsx:84 -#: src/tables/sales/SalesOrderTable.tsx:96 -msgid "Add Sales Order" -msgstr "" - #: src/pages/sales/SalesOrderDetail.tsx:256 #~ msgid "Pending Shipments" #~ msgstr "Pending Shipments" -#: src/pages/sales/SalesOrderDetail.tsx:313 +#: src/pages/sales/SalesOrderDetail.tsx:261 +msgid "Edit Sales Order" +msgstr "" + +#: src/pages/sales/SalesOrderDetail.tsx:274 +#: src/tables/sales/SalesOrderTable.tsx:96 +#: src/tables/sales/SalesOrderTable.tsx:109 +msgid "Add Sales Order" +msgstr "" + +#: src/pages/sales/SalesOrderDetail.tsx:335 msgid "Shipments" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:369 +#: src/pages/sales/SalesOrderDetail.tsx:376 msgid "Issue Sales Order" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:377 +#: src/pages/sales/SalesOrderDetail.tsx:384 msgid "Cancel Sales Order" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:385 +#: src/pages/sales/SalesOrderDetail.tsx:392 msgid "Hold Sales Order" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:393 +#: src/pages/sales/SalesOrderDetail.tsx:400 msgid "Complete Sales Order" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:432 +#: src/pages/sales/SalesOrderDetail.tsx:439 msgid "Ship Order" msgstr "" -#: src/pages/stock/LocationDetail.tsx:117 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:117 +#: src/tables/sales/SalesOrderShipmentTable.tsx:96 +msgid "Shipment Reference" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:124 +msgid "Allocated Items" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:133 +msgid "Tracking Number" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:141 +msgid "Invoice Number" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:149 +#: src/tables/ColumnRenderers.tsx:242 +#: src/tables/sales/SalesOrderAllocationTable.tsx:142 +#: src/tables/sales/SalesOrderShipmentTable.tsx:115 +msgid "Shipment Date" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:157 +#: src/tables/sales/SalesOrderShipmentTable.tsx:119 +msgid "Delivery Date" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:204 +msgid "Shipment Details" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:210 +msgid "Assigned Items" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:241 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:317 +#: src/tables/sales/SalesOrderShipmentTable.tsx:75 +msgid "Edit Shipment" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:248 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:322 +#: src/tables/sales/SalesOrderShipmentTable.tsx:67 +msgid "Cancel Shipment" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:261 +#: src/tables/sales/SalesOrderShipmentTable.tsx:83 +#: src/tables/sales/SalesOrderShipmentTable.tsx:151 +msgid "Complete Shipment" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:276 +#: src/tables/part/PartPurchaseOrdersTable.tsx:121 +msgid "Pending" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:277 +#: src/tables/sales/SalesOrderAllocationTable.tsx:148 +#: src/tables/sales/SalesOrderShipmentTable.tsx:108 +#: src/tables/sales/SalesOrderShipmentTable.tsx:197 +msgid "Shipped" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:279 +#: src/tables/sales/SalesOrderShipmentTable.tsx:202 +msgid "Delivered" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:293 +msgid "Send Shipment" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:312 +msgid "Shipment Actions" +msgstr "" + +#: src/pages/stock/LocationDetail.tsx:111 msgid "Parent Location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:135 +#: src/pages/stock/LocationDetail.tsx:129 msgid "Sublocations" msgstr "" -#: src/pages/stock/LocationDetail.tsx:147 +#: src/pages/stock/LocationDetail.tsx:141 #: src/tables/stock/StockLocationTable.tsx:54 msgid "External" msgstr "" -#: src/pages/stock/LocationDetail.tsx:153 +#: src/pages/stock/LocationDetail.tsx:147 #: src/tables/stock/StockLocationTable.tsx:63 msgid "Location Type" msgstr "" -#: src/pages/stock/LocationDetail.tsx:164 +#: src/pages/stock/LocationDetail.tsx:158 msgid "Top level stock location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:175 +#: src/pages/stock/LocationDetail.tsx:169 msgid "Location Details" msgstr "" -#: src/pages/stock/LocationDetail.tsx:201 +#: src/pages/stock/LocationDetail.tsx:195 msgid "Default Parts" msgstr "" -#: src/pages/stock/LocationDetail.tsx:220 -#: src/pages/stock/LocationDetail.tsx:351 +#: src/pages/stock/LocationDetail.tsx:214 +#: src/pages/stock/LocationDetail.tsx:336 #: src/tables/stock/StockLocationTable.tsx:123 msgid "Edit Stock Location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:241 -#: src/pages/stock/LocationDetail.tsx:356 +#: src/pages/stock/LocationDetail.tsx:235 +#: src/pages/stock/LocationDetail.tsx:341 msgid "Delete Stock Location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:244 +#: src/pages/stock/LocationDetail.tsx:238 msgid "Items Action" msgstr "" -#: src/pages/stock/LocationDetail.tsx:245 +#: src/pages/stock/LocationDetail.tsx:239 msgid "Action for stock items in this location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:250 +#: src/pages/stock/LocationDetail.tsx:244 msgid "Child Locations Action" msgstr "" -#: src/pages/stock/LocationDetail.tsx:251 +#: src/pages/stock/LocationDetail.tsx:245 msgid "Action for child locations in this location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:346 +#: src/pages/stock/LocationDetail.tsx:332 msgid "Location Actions" msgstr "" -#: src/pages/stock/StockDetail.tsx:108 +#: src/pages/stock/StockDetail.tsx:116 msgid "Base Part" msgstr "Kiindulási alkatrész" -#: src/pages/stock/StockDetail.tsx:115 -msgid "Stock Status" -msgstr "" - #: src/pages/stock/StockDetail.tsx:155 #~ msgid "Link custom barcode to stock item" #~ msgstr "Link custom barcode to stock item" @@ -5312,113 +6285,179 @@ msgstr "" #~ msgid "Unlink custom barcode from stock item" #~ msgstr "Unlink custom barcode from stock item" -#: src/pages/stock/StockDetail.tsx:188 -msgid "Installed In" -msgstr "" - -#: src/pages/stock/StockDetail.tsx:204 -msgid "Consumed By" +#: src/pages/stock/StockDetail.tsx:178 +msgid "Allocated to Orders" msgstr "" #: src/pages/stock/StockDetail.tsx:205 #~ msgid "Edit stock item" #~ msgstr "Edit stock item" -#: src/pages/stock/StockDetail.tsx:213 -#: src/tables/build/BuildAllocatedStockTable.tsx:64 -#: src/tables/stock/StockTrackingTable.tsx:96 -msgid "Build Order" +#: src/pages/stock/StockDetail.tsx:209 +msgid "Installed In" msgstr "" #: src/pages/stock/StockDetail.tsx:217 #~ msgid "Delete stock item" #~ msgstr "Delete stock item" -#: src/pages/stock/StockDetail.tsx:291 +#: src/pages/stock/StockDetail.tsx:226 +msgid "Parent Item" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:230 +msgid "Parent stock item" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:236 +msgid "Consumed By" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:245 +#: src/tables/build/BuildAllocatedStockTable.tsx:77 +#: src/tables/stock/StockTrackingTable.tsx:100 +msgid "Build Order" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:283 +#: src/tables/stock/StockItemTable.tsx:270 +msgid "Expiry Date" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:414 msgid "Stock Details" msgstr "" -#: src/pages/stock/StockDetail.tsx:297 +#: src/pages/stock/StockDetail.tsx:420 msgid "Stock Tracking" msgstr "Készlettörténet" -#: src/pages/stock/StockDetail.tsx:350 -msgid "Test Data" -msgstr "Teszt adatok" - -#: src/pages/stock/StockDetail.tsx:364 -msgid "Installed Items" -msgstr "Beépített tételek" - -#: src/pages/stock/StockDetail.tsx:371 -msgid "Child Items" -msgstr "Gyermek tételek" - -#: src/pages/stock/StockDetail.tsx:425 -msgid "Edit Stock Item" -msgstr "Készlet tétel szerkesztése" - #: src/pages/stock/StockDetail.tsx:433 #~ msgid "Duplicate stock item" #~ msgstr "Duplicate stock item" -#: src/pages/stock/StockDetail.tsx:452 +#: src/pages/stock/StockDetail.tsx:475 +msgid "Test Data" +msgstr "Teszt adatok" + +#: src/pages/stock/StockDetail.tsx:489 +msgid "Installed Items" +msgstr "Beépített tételek" + +#: src/pages/stock/StockDetail.tsx:496 +msgid "Child Items" +msgstr "Gyermek tételek" + +#: src/pages/stock/StockDetail.tsx:545 +msgid "Edit Stock Item" +msgstr "Készlet tétel szerkesztése" + +#: src/pages/stock/StockDetail.tsx:572 msgid "Delete Stock Item" msgstr "" -#: src/pages/stock/StockDetail.tsx:504 +#: src/pages/stock/StockDetail.tsx:604 +msgid "Serialize Stock Item" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:617 +msgid "Stock item serialized" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:623 +msgid "Return Stock Item" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:626 +msgid "Return this item into stock. This will remove the customer assignment." +msgstr "" + +#: src/pages/stock/StockDetail.tsx:636 +msgid "Item returned to stock" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:666 msgid "Stock Operations" msgstr "Készlet műveletek" -#: src/pages/stock/StockDetail.tsx:509 +#: src/pages/stock/StockDetail.tsx:671 msgid "Count stock" msgstr "Leltározás" -#: src/pages/stock/StockDetail.tsx:519 -#: src/tables/stock/StockItemTable.tsx:449 -msgid "Add stock" -msgstr "Készlethez ad" +#: src/pages/stock/StockDetail.tsx:671 +#: src/tables/stock/StockItemTable.tsx:452 +#~ msgid "Add stock" +#~ msgstr "Add stock" -#: src/pages/stock/StockDetail.tsx:527 -#: src/tables/stock/StockItemTable.tsx:458 -msgid "Remove stock" -msgstr "Készlet csökkentése" +#: src/pages/stock/StockDetail.tsx:680 +#: src/tables/stock/StockItemTable.tsx:461 +#~ msgid "Remove stock" +#~ msgstr "Remove stock" -#: src/pages/stock/StockDetail.tsx:534 +#: src/pages/stock/StockDetail.tsx:698 +#: src/tables/stock/StockItemTable.tsx:481 +#~ msgid "Transfer stock" +#~ msgstr "Transfer stock" + +#: src/pages/stock/StockDetail.tsx:699 +msgid "Serialize" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:700 +msgid "Serialize stock" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:711 msgid "Transfer" msgstr "Áthelyezés" -#: src/pages/stock/StockDetail.tsx:535 -#: src/tables/stock/StockItemTable.tsx:478 -msgid "Transfer stock" -msgstr "Készlet áthelyezése" +#: src/pages/stock/StockDetail.tsx:722 +msgid "Return" +msgstr "" -#: src/pages/stock/StockDetail.tsx:546 +#: src/pages/stock/StockDetail.tsx:723 +msgid "Return from customer" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:738 msgid "Stock Item Actions" msgstr "" -#: src/tables/ColumnRenderers.tsx:30 +#: src/pages/stock/StockDetail.tsx:808 +msgid "Stale" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:814 +msgid "Expired" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:820 +msgid "Unavailable" +msgstr "" + +#: src/tables/ColumnRenderers.tsx:36 msgid "Part is not active" msgstr "Az alkatrész nem aktív" -#: src/tables/ColumnRenderers.tsx:35 -msgid "Part is locked" +#: src/tables/ColumnRenderers.tsx:41 +#: src/tables/bom/BomTable.tsx:542 +#: src/tables/part/PartParameterTable.tsx:193 +#: src/tables/part/PartTestTemplateTable.tsx:253 +msgid "Part is Locked" msgstr "" -#: src/tables/ColumnRenderers.tsx:57 +#: src/tables/ColumnRenderers.tsx:41 +#~ msgid "Part is locked" +#~ msgstr "Part is locked" + +#: src/tables/ColumnRenderers.tsx:46 +msgid "You are subscribed to notifications for this part" +msgstr "" + +#: src/tables/ColumnRenderers.tsx:68 msgid "No location set" msgstr "" -#: src/tables/ColumnRenderers.tsx:228 -#: src/tables/sales/SalesOrderShipmentTable.tsx:79 -msgid "Shipment Date" -msgstr "" - -#: src/tables/ColumnRenderers.tsx:248 -#: src/tables/settings/CurrencyTable.tsx:23 -msgid "Currency" -msgstr "Pénznem" - #: src/tables/ColumnSelect.tsx:16 #: src/tables/ColumnSelect.tsx:23 msgid "Select Columns" @@ -5452,91 +6491,116 @@ msgstr "" msgid "Download Data" msgstr "" -#: src/tables/Filter.tsx:89 -#: src/tables/build/BuildOrderTable.tsx:135 +#: src/tables/Filter.tsx:101 msgid "Assigned to me" msgstr "Hozzám rendelt" -#: src/tables/Filter.tsx:90 -#: src/tables/build/BuildOrderTable.tsx:136 +#: src/tables/Filter.tsx:102 msgid "Show orders assigned to me" msgstr "" -#: src/tables/Filter.tsx:97 +#: src/tables/Filter.tsx:106 +#~ msgid "Show overdue orders" +#~ msgstr "Show overdue orders" + +#: src/tables/Filter.tsx:109 +#: src/tables/build/BuildOrderTable.tsx:120 +#: src/tables/sales/SalesOrderAllocationTable.tsx:59 msgid "Outstanding" msgstr "" -#: src/tables/Filter.tsx:98 -msgid "Show outstanding orders" +#: src/tables/Filter.tsx:110 +msgid "Show outstanding items" msgstr "" -#: src/tables/Filter.tsx:105 -#: src/tables/build/BuildOrderTable.tsx:128 +#: src/tables/Filter.tsx:117 msgid "Overdue" msgstr "Késésben" -#: src/tables/Filter.tsx:106 -msgid "Show overdue orders" +#: src/tables/Filter.tsx:118 +msgid "Show overdue items" msgstr "" -#: src/tables/FilterSelectDrawer.tsx:51 +#: src/tables/Filter.tsx:125 +msgid "Minimum Date" +msgstr "" + +#: src/tables/Filter.tsx:126 +msgid "Show items after this date" +msgstr "" + +#: src/tables/Filter.tsx:134 +msgid "Maximum Date" +msgstr "" + +#: src/tables/Filter.tsx:135 +msgid "Show items before this date" +msgstr "" + +#: src/tables/Filter.tsx:144 +msgid "Has Project Code" +msgstr "Van projektszáma" + +#: src/tables/Filter.tsx:145 +msgid "Show orders with an assigned project code" +msgstr "" + +#: src/tables/FilterSelectDrawer.tsx:55 msgid "Remove filter" msgstr "Szűrő eltávolítása" -#: src/tables/FilterSelectDrawer.tsx:130 +#: src/tables/FilterSelectDrawer.tsx:159 msgid "Select filter" msgstr "Szűrő kiválasztása" -#: src/tables/FilterSelectDrawer.tsx:131 +#: src/tables/FilterSelectDrawer.tsx:160 msgid "Filter" msgstr "Szűrő" -#: src/tables/FilterSelectDrawer.tsx:138 -#: src/tables/build/BuildOrderTestTable.tsx:134 -#: src/tables/purchasing/ManufacturerPartParameterTable.tsx:38 -#: src/tables/stock/StockItemTestResultTable.tsx:186 -msgid "Value" -msgstr "Érték" +#: src/tables/FilterSelectDrawer.tsx:168 +msgid "Select date value" +msgstr "" -#: src/tables/FilterSelectDrawer.tsx:140 +#: src/tables/FilterSelectDrawer.tsx:176 msgid "Select filter value" msgstr "Szűrő érték kiválasztása" -#: src/tables/FilterSelectDrawer.tsx:183 +#: src/tables/FilterSelectDrawer.tsx:219 +#: src/tables/InvenTreeTableHeader.tsx:214 msgid "Table Filters" msgstr "" -#: src/tables/FilterSelectDrawer.tsx:215 +#: src/tables/FilterSelectDrawer.tsx:251 msgid "Add Filter" msgstr "Szűrő hozzáadása" -#: src/tables/FilterSelectDrawer.tsx:224 +#: src/tables/FilterSelectDrawer.tsx:260 msgid "Clear Filters" msgstr "" -#: src/tables/InvenTreeTable.tsx:123 -#: src/tables/InvenTreeTable.tsx:431 -#: src/tables/InvenTreeTable.tsx:455 +#: src/tables/InvenTreeTable.tsx:96 +#: src/tables/InvenTreeTable.tsx:417 +#: src/tables/InvenTreeTable.tsx:441 msgid "No records found" msgstr "Nincs találat" -#: src/tables/InvenTreeTable.tsx:466 +#: src/tables/InvenTreeTable.tsx:452 msgid "Server returned incorrect data type" msgstr "A szerver hibás adattípust küldött vissza" -#: src/tables/InvenTreeTable.tsx:474 +#: src/tables/InvenTreeTable.tsx:460 msgid "Bad request" msgstr "Hibás kérés" -#: src/tables/InvenTreeTable.tsx:477 +#: src/tables/InvenTreeTable.tsx:463 msgid "Unauthorized" msgstr "Jogosulatlan" -#: src/tables/InvenTreeTable.tsx:480 +#: src/tables/InvenTreeTable.tsx:466 msgid "Forbidden" msgstr "Tiltott" -#: src/tables/InvenTreeTable.tsx:483 +#: src/tables/InvenTreeTable.tsx:469 msgid "Not found" msgstr "Nem található" @@ -5544,18 +6608,6 @@ msgstr "Nem található" #~ msgid "Are you sure you want to delete the selected records?" #~ msgstr "Are you sure you want to delete the selected records?" -#: src/tables/InvenTreeTable.tsx:525 -msgid "Delete Selected Items" -msgstr "" - -#: src/tables/InvenTreeTable.tsx:529 -msgid "Are you sure you want to delete the selected items?" -msgstr "" - -#: src/tables/InvenTreeTable.tsx:531 -msgid "This action cannot be undone!" -msgstr "" - #: src/tables/InvenTreeTable.tsx:535 #~ msgid "Deleted records" #~ msgstr "Deleted records" @@ -5568,31 +6620,56 @@ msgstr "" #~ msgid "Failed to delete records" #~ msgstr "Failed to delete records" +#: src/tables/InvenTreeTable.tsx:552 +#~ msgid "This action cannot be undone!" +#~ msgstr "This action cannot be undone!" + #: src/tables/InvenTreeTable.tsx:594 #: src/tables/InvenTreeTable.tsx:595 #~ msgid "Print actions" #~ msgstr "Print actions" -#: src/tables/InvenTreeTable.tsx:618 -#: src/tables/InvenTreeTable.tsx:619 -msgid "Barcode actions" -msgstr "Vonalkód műveletek" +#: src/tables/InvenTreeTable.tsx:655 +#: src/tables/InvenTreeTable.tsx:656 +#~ msgid "Barcode actions" +#~ msgstr "Barcode actions" -#: src/tables/InvenTreeTable.tsx:628 +#: src/tables/InvenTreeTable.tsx:712 +#~ msgid "Table filters" +#~ msgstr "Table filters" + +#: src/tables/InvenTreeTable.tsx:725 +#~ msgid "Clear custom query filters" +#~ msgstr "Clear custom query filters" + +#: src/tables/InvenTreeTableHeader.tsx:98 +msgid "Delete Selected Items" +msgstr "" + +#: src/tables/InvenTreeTableHeader.tsx:102 +msgid "Are you sure you want to delete the selected items?" +msgstr "" + +#: src/tables/InvenTreeTableHeader.tsx:104 +#: src/tables/plugin/PluginListTable.tsx:305 +msgid "This action cannot be undone" +msgstr "" + +#: src/tables/InvenTreeTableHeader.tsx:142 +msgid "Custom table filters are active" +msgstr "" + +#: src/tables/InvenTreeTableHeader.tsx:169 msgid "Delete selected records" msgstr "" -#: src/tables/InvenTreeTable.tsx:649 +#: src/tables/InvenTreeTableHeader.tsx:188 msgid "Refresh data" msgstr "Adatok frissítése" -#: src/tables/InvenTreeTable.tsx:675 -msgid "Table filters" -msgstr "Táblaszűrők" - #: src/tables/TableHoverCard.tsx:35 -msgid "item-{idx}" -msgstr "" +#~ msgid "item-{idx}" +#~ msgstr "item-{idx}" #: src/tables/UploadAction.tsx:7 #~ msgid "Upload Data" @@ -5607,31 +6684,36 @@ msgid "Part Information" msgstr "Alkatrész információ" #: src/tables/bom/BomTable.tsx:212 -#: src/tables/build/BuildLineTable.tsx:126 +#: src/tables/build/BuildLineTable.tsx:257 #: src/tables/part/PartTable.tsx:125 msgid "External stock" msgstr "" #: src/tables/bom/BomTable.tsx:220 -#: src/tables/build/BuildLineTable.tsx:89 +#: src/tables/build/BuildLineTable.tsx:220 msgid "Includes substitute stock" msgstr "Helyettesítőkkel együtt" #: src/tables/bom/BomTable.tsx:229 -#: src/tables/build/BuildLineTable.tsx:99 -#: src/tables/sales/SalesOrderLineItemTable.tsx:127 +#: src/tables/build/BuildLineTable.tsx:230 +#: src/tables/sales/SalesOrderLineItemTable.tsx:135 msgid "Includes variant stock" msgstr "Változatokkal együtt" +#: src/tables/bom/BomTable.tsx:245 +#: src/tables/part/PartTable.tsx:92 +msgid "Building" +msgstr "Gyártásban" + #: src/tables/bom/BomTable.tsx:254 #: src/tables/part/PartTable.tsx:153 -#: src/tables/sales/SalesOrderLineItemTable.tsx:150 -#: src/tables/stock/StockItemTable.tsx:216 +#: src/tables/sales/SalesOrderLineItemTable.tsx:158 +#: src/tables/stock/StockItemTable.tsx:206 msgid "Stock Information" msgstr "Készlet adatok" #: src/tables/bom/BomTable.tsx:285 -#: src/tables/build/BuildLineTable.tsx:248 +#: src/tables/build/BuildLineTable.tsx:409 msgid "Consumable item" msgstr "Fogyóeszköz tétel" @@ -5644,7 +6726,7 @@ msgstr "" #~ msgstr "Create BOM Item" #: src/tables/bom/BomTable.tsx:306 -#: src/tables/build/BuildLineTable.tsx:69 +#: src/tables/build/BuildLineTable.tsx:200 msgid "Show testable items" msgstr "" @@ -5657,11 +6739,12 @@ msgid "Show trackable items" msgstr "" #: src/tables/bom/BomTable.tsx:316 -#: src/tables/build/BuildLineTable.tsx:64 +#: src/tables/build/BuildLineTable.tsx:195 msgid "Show assembled items" msgstr "" #: src/tables/bom/BomTable.tsx:321 +#: src/tables/build/BuildLineTable.tsx:180 msgid "Show items with available stock" msgstr "" @@ -5705,7 +6788,7 @@ msgstr "" #: src/tables/bom/BomTable.tsx:345 #: src/tables/bom/UsedInTable.tsx:79 -#: src/tables/build/BuildLineTable.tsx:58 +#: src/tables/build/BuildLineTable.tsx:189 msgid "Optional" msgstr "Opcionális" @@ -5723,7 +6806,7 @@ msgstr "" #~ msgstr "Bom item deleted" #: src/tables/bom/BomTable.tsx:350 -#: src/tables/build/BuildLineTable.tsx:53 +#: src/tables/build/BuildLineTable.tsx:184 msgid "Consumable" msgstr "Fogyóeszköz" @@ -5749,12 +6832,12 @@ msgid "Show items with pricing" msgstr "" #: src/tables/bom/BomTable.tsx:378 -#: src/tables/bom/BomTable.tsx:511 +#: src/tables/bom/BomTable.tsx:512 msgid "Import BOM Data" msgstr "" #: src/tables/bom/BomTable.tsx:388 -#: src/tables/bom/BomTable.tsx:523 +#: src/tables/bom/BomTable.tsx:526 msgid "Add BOM Item" msgstr "" @@ -5780,7 +6863,7 @@ msgstr "" #: src/tables/bom/BomTable.tsx:423 #: src/tables/bom/BomTable.tsx:426 -#: src/tables/bom/BomTable.tsx:517 +#: src/tables/bom/BomTable.tsx:519 msgid "Validate BOM" msgstr "" @@ -5812,21 +6895,15 @@ msgstr "" msgid "Edit Substitutes" msgstr "Helyettesítő alkatrészek szerkesztése" -#: src/tables/bom/BomTable.tsx:539 -#: src/tables/part/PartParameterTable.tsx:193 -#: src/tables/part/PartTestTemplateTable.tsx:252 -msgid "Part is Locked" -msgstr "" - -#: src/tables/bom/BomTable.tsx:544 +#: src/tables/bom/BomTable.tsx:547 msgid "Bill of materials cannot be edited, as the part is locked" msgstr "" #: src/tables/bom/UsedInTable.tsx:33 -#: src/tables/build/BuildLineTable.tsx:63 +#: src/tables/build/BuildLineTable.tsx:194 #: src/tables/part/ParametricPartTable.tsx:233 #: src/tables/part/PartTable.tsx:190 -#: src/tables/stock/StockItemTable.tsx:300 +#: src/tables/stock/StockItemTable.tsx:304 msgid "Assembly" msgstr "Gyártmány" @@ -5844,285 +6921,347 @@ msgstr "Követésre kötelezett" msgid "Show trackable assemblies" msgstr "Nyomonkövethető gyártmányok mutatása" -#: src/tables/build/BuildAllocatedStockTable.tsx:54 +#: src/tables/build/BuildAllocatedStockTable.tsx:56 msgid "Allocated to Output" msgstr "" -#: src/tables/build/BuildAllocatedStockTable.tsx:55 +#: src/tables/build/BuildAllocatedStockTable.tsx:57 msgid "Show items allocated to a build output" msgstr "" -#: src/tables/build/BuildAllocatedStockTable.tsx:76 -#: src/tables/part/PartPurchaseOrdersTable.tsx:125 -#: src/tables/sales/SalesOrderAllocationTable.tsx:62 +#: src/tables/build/BuildAllocatedStockTable.tsx:65 +#: src/tables/build/BuildOrderTable.tsx:159 +#: src/tables/part/PartParameterTable.tsx:212 +#: src/tables/part/PartPurchaseOrdersTable.tsx:138 +#: src/tables/sales/ReturnOrderTable.tsx:84 +#: src/tables/sales/SalesOrderAllocationTable.tsx:68 +#: src/tables/sales/SalesOrderTable.tsx:84 +#: src/tables/stock/StockItemTable.tsx:339 +msgid "Include Variants" +msgstr "Változatok is" + +#: src/tables/build/BuildAllocatedStockTable.tsx:66 +#: src/tables/build/BuildOrderTable.tsx:160 +#: src/tables/part/PartPurchaseOrdersTable.tsx:139 +#: src/tables/sales/ReturnOrderTable.tsx:85 +#: src/tables/sales/SalesOrderAllocationTable.tsx:69 +#: src/tables/sales/SalesOrderTable.tsx:85 +msgid "Include orders for part variants" +msgstr "" + +#: src/tables/build/BuildAllocatedStockTable.tsx:89 +#: src/tables/part/PartPurchaseOrdersTable.tsx:131 +#: src/tables/sales/SalesOrderAllocationTable.tsx:93 msgid "Order Status" msgstr "" -#: src/tables/build/BuildAllocatedStockTable.tsx:96 -#: src/tables/sales/SalesOrderAllocationTable.tsx:75 +#: src/tables/build/BuildAllocatedStockTable.tsx:117 +#: src/tables/sales/SalesOrderAllocationTable.tsx:126 msgid "Allocated Quantity" msgstr "" -#: src/tables/build/BuildAllocatedStockTable.tsx:116 -#: src/tables/sales/SalesOrderAllocationTable.tsx:94 +#: src/tables/build/BuildAllocatedStockTable.tsx:137 +#: src/tables/sales/SalesOrderAllocationTable.tsx:120 msgid "Available Quantity" msgstr "" -#: src/tables/build/BuildAllocatedStockTable.tsx:126 -#: src/tables/build/BuildOrderTestTable.tsx:176 -#: src/tables/build/BuildOrderTestTable.tsx:200 -#: src/tables/build/BuildOutputTable.tsx:312 -msgid "Build Output" -msgstr "Gyártás kimenet" - -#: src/tables/build/BuildAllocatedStockTable.tsx:143 -msgid "Edit Build Item" +#: src/tables/build/BuildAllocatedStockTable.tsx:164 +#: src/tables/build/BuildLineTable.tsx:513 +msgid "Edit Stock Allocation" msgstr "" -#: src/tables/build/BuildAllocatedStockTable.tsx:153 -msgid "Delete Build Item" +#: src/tables/build/BuildAllocatedStockTable.tsx:164 +#~ msgid "Edit Build Item" +#~ msgstr "Edit Build Item" + +#: src/tables/build/BuildAllocatedStockTable.tsx:174 +#~ msgid "Delete Build Item" +#~ msgstr "Delete Build Item" + +#: src/tables/build/BuildAllocatedStockTable.tsx:177 +#: src/tables/build/BuildLineTable.tsx:526 +msgid "Delete Stock Allocation" msgstr "" -#: src/tables/build/BuildLineTable.tsx:43 -#: src/tables/stock/StockItemTable.tsx:305 -msgid "Allocated" -msgstr "" +#: src/tables/build/BuildLineTable.tsx:59 +#~ msgid "Show lines with available stock" +#~ msgstr "Show lines with available stock" -#: src/tables/build/BuildLineTable.tsx:44 +#: src/tables/build/BuildLineTable.tsx:175 msgid "Show allocated lines" msgstr "Lefoglalt tételek mutatása" -#: src/tables/build/BuildLineTable.tsx:49 -msgid "Show lines with available stock" -msgstr "Elérhető készlettel rendelkező sorok mutatása" - -#: src/tables/build/BuildLineTable.tsx:54 +#: src/tables/build/BuildLineTable.tsx:185 msgid "Show consumable lines" msgstr "Felhasználható sorok mutatása" -#: src/tables/build/BuildLineTable.tsx:59 +#: src/tables/build/BuildLineTable.tsx:190 msgid "Show optional lines" msgstr "Opcionális sorok mutatása" -#: src/tables/build/BuildLineTable.tsx:68 +#: src/tables/build/BuildLineTable.tsx:199 #: src/tables/part/PartTable.tsx:208 msgid "Testable" msgstr "" -#: src/tables/build/BuildLineTable.tsx:73 -#: src/tables/stock/StockItemTable.tsx:364 +#: src/tables/build/BuildLineTable.tsx:204 +#: src/tables/stock/StockItemTable.tsx:368 msgid "Tracked" msgstr "Követett" -#: src/tables/build/BuildLineTable.tsx:74 +#: src/tables/build/BuildLineTable.tsx:205 msgid "Show tracked lines" msgstr "Követett tételek mutatása" -#: src/tables/build/BuildLineTable.tsx:108 -#: src/tables/sales/SalesOrderLineItemTable.tsx:133 +#: src/tables/build/BuildLineTable.tsx:239 +#: src/tables/sales/SalesOrderLineItemTable.tsx:141 msgid "In production" msgstr "Gyártásban" -#: src/tables/build/BuildLineTable.tsx:136 +#: src/tables/build/BuildLineTable.tsx:267 msgid "Insufficient stock" msgstr "" -#: src/tables/build/BuildLineTable.tsx:152 -#: src/tables/sales/SalesOrderLineItemTable.tsx:121 -#: src/tables/stock/StockItemTable.tsx:186 +#: src/tables/build/BuildLineTable.tsx:283 +#: src/tables/sales/SalesOrderLineItemTable.tsx:129 +#: src/tables/stock/StockItemTable.tsx:175 msgid "No stock available" msgstr "Nincs elérhető készlet" -#: src/tables/build/BuildLineTable.tsx:201 +#: src/tables/build/BuildLineTable.tsx:355 msgid "Gets Inherited" msgstr "" -#: src/tables/build/BuildLineTable.tsx:210 +#: src/tables/build/BuildLineTable.tsx:366 msgid "Unit Quantity" msgstr "Mennyiségi egység" -#: src/tables/build/BuildLineTable.tsx:267 -#: src/tables/sales/SalesOrderLineItemTable.tsx:230 +#: src/tables/build/BuildLineTable.tsx:381 +msgid "Required Quantity" +msgstr "" + +#: src/tables/build/BuildLineTable.tsx:432 +#: src/tables/sales/SalesOrderLineItemTable.tsx:254 msgid "Create Build Order" msgstr "" -#: src/tables/build/BuildLineTable.tsx:298 -msgid "Allocate Stock" -msgstr "Készlet foglalása" +#: src/tables/build/BuildLineTable.tsx:460 +msgid "Auto allocation in progress" +msgstr "Automatikus foglalás folyamatban" -#: src/tables/build/BuildLineTable.tsx:305 +#: src/tables/build/BuildLineTable.tsx:463 +#: src/tables/build/BuildLineTable.tsx:632 +msgid "Auto Allocate Stock" +msgstr "Készlet Automatikus Foglalása" + +#: src/tables/build/BuildLineTable.tsx:464 +msgid "Automatically allocate stock to this build according to the selected options" +msgstr "Gyártáshoz szükséges készlet automatikus lefoglalása a beállítások szerint" + +#: src/tables/build/BuildLineTable.tsx:482 +#: src/tables/build/BuildLineTable.tsx:496 +#: src/tables/build/BuildLineTable.tsx:579 +#: src/tables/build/BuildLineTable.tsx:664 +#: src/tables/build/BuildOutputTable.tsx:314 +#: src/tables/build/BuildOutputTable.tsx:319 +msgid "Deallocate Stock" +msgstr "Foglalás feloldása" + +#: src/tables/build/BuildLineTable.tsx:498 +msgid "Deallocate all untracked stock for this build order" +msgstr "Összes nem egyedi sorszámos készlet felszabadítása ebből a gyártási rendelésből" + +#: src/tables/build/BuildLineTable.tsx:500 +msgid "Deallocate stock from the selected line item" +msgstr "Készlet felszabadítsa a kiválasztott tételekhez" + +#: src/tables/build/BuildLineTable.tsx:504 +msgid "Stock has been deallocated" +msgstr "Készlet felszabadítva" + +#: src/tables/build/BuildLineTable.tsx:589 msgid "Order Stock" msgstr "Készlet rendelés" -#: src/tables/build/BuildLineTable.tsx:312 +#: src/tables/build/BuildLineTable.tsx:596 msgid "Build Stock" msgstr "Gyártási készlet" -#: src/tables/build/BuildOrderTable.tsx:111 -msgid "Show active orders" -msgstr "Aktív megrendelések megjelenítése" +#: src/tables/build/BuildLineTable.tsx:610 +msgid "View Part" +msgstr "" #: src/tables/build/BuildOrderTable.tsx:116 -msgid "Cascade" -msgstr "" +#~ msgid "Cascade" +#~ msgstr "Cascade" #: src/tables/build/BuildOrderTable.tsx:117 -msgid "Display recursive child orders" +#~ msgid "Display recursive child orders" +#~ msgstr "Display recursive child orders" + +#: src/tables/build/BuildOrderTable.tsx:121 +msgid "Show outstanding orders" msgstr "" -#: src/tables/build/BuildOrderTable.tsx:123 -#: src/tables/part/PartPurchaseOrdersTable.tsx:126 -#: src/tables/purchasing/PurchaseOrderTable.tsx:56 -#: src/tables/sales/ReturnOrderTable.tsx:47 -#: src/tables/sales/SalesOrderTable.tsx:54 +#: src/tables/build/BuildOrderTable.tsx:121 +#~ msgid "Show active orders" +#~ msgstr "Show active orders" + +#: src/tables/build/BuildOrderTable.tsx:122 +#~ msgid "Show overdue status" +#~ msgstr "Show overdue status" + +#: src/tables/build/BuildOrderTable.tsx:126 +#: src/tables/part/PartPurchaseOrdersTable.tsx:132 +#: src/tables/purchasing/PurchaseOrderTable.tsx:59 +#: src/tables/sales/ReturnOrderTable.tsx:57 +#: src/tables/sales/SalesOrderTable.tsx:57 msgid "Filter by order status" msgstr "Rendelési állapot szűrés" -#: src/tables/build/BuildOrderTable.tsx:130 -msgid "Show overdue status" -msgstr "Lejártság megjelenítése" - -#: src/tables/build/BuildOrderTable.tsx:141 -#: src/tables/purchasing/PurchaseOrderTable.tsx:65 -#: src/tables/sales/ReturnOrderTable.tsx:56 -#: src/tables/sales/SalesOrderTable.tsx:63 +#: src/tables/build/BuildOrderTable.tsx:136 +#: src/tables/purchasing/PurchaseOrderTable.tsx:70 +#: src/tables/sales/ReturnOrderTable.tsx:68 +#: src/tables/sales/SalesOrderTable.tsx:68 msgid "Filter by project code" msgstr "Projekt kódra szűrés" -#: src/tables/build/BuildOrderTable.tsx:146 -#: src/tables/purchasing/PurchaseOrderTable.tsx:70 -#: src/tables/sales/ReturnOrderTable.tsx:61 -#: src/tables/sales/SalesOrderTable.tsx:68 -msgid "Has Project Code" -msgstr "Van projektszáma" - -#: src/tables/build/BuildOrderTable.tsx:147 +#: src/tables/build/BuildOrderTable.tsx:139 #: src/tables/purchasing/PurchaseOrderTable.tsx:71 #: src/tables/sales/ReturnOrderTable.tsx:62 #: src/tables/sales/SalesOrderTable.tsx:69 -msgid "Filter by whether the purchase order has a project code" -msgstr "Szűrés aszerint, hogy az Értékesítési rendelésnek van-e projekt kódja" +#~ msgid "Filter by whether the purchase order has a project code" +#~ msgstr "Filter by whether the purchase order has a project code" -#: src/tables/build/BuildOrderTable.tsx:152 +#: src/tables/build/BuildOrderTable.tsx:143 msgid "Filter by user who issued this order" msgstr "Szűrés a rendelést rögzítő felhasználóra" -#: src/tables/build/BuildOrderTable.tsx:158 -#: src/tables/purchasing/PurchaseOrderTable.tsx:76 -#: src/tables/sales/ReturnOrderTable.tsx:67 -#: src/tables/sales/SalesOrderTable.tsx:74 +#: src/tables/build/BuildOrderTable.tsx:149 +#: src/tables/purchasing/PurchaseOrderTable.tsx:77 +#: src/tables/sales/ReturnOrderTable.tsx:75 +#: src/tables/sales/SalesOrderTable.tsx:75 msgid "Filter by responsible owner" msgstr "Szűrés a felelős tulajdonosra" -#: src/tables/build/BuildOrderTestTable.tsx:75 -#: src/tables/build/BuildOrderTestTable.tsx:111 -#: src/tables/stock/StockItemTestResultTable.tsx:257 -#: src/tables/stock/StockItemTestResultTable.tsx:329 -#: src/tables/stock/StockItemTestResultTable.tsx:384 +#: src/tables/build/BuildOrderTestTable.tsx:76 +#: src/tables/build/BuildOrderTestTable.tsx:112 +#: src/tables/stock/StockItemTestResultTable.tsx:275 +#: src/tables/stock/StockItemTestResultTable.tsx:347 +#: src/tables/stock/StockItemTestResultTable.tsx:403 msgid "Add Test Result" msgstr "" -#: src/tables/build/BuildOrderTestTable.tsx:82 -#: src/tables/stock/StockItemTestResultTable.tsx:259 +#: src/tables/build/BuildOrderTestTable.tsx:83 +#: src/tables/stock/StockItemTestResultTable.tsx:277 msgid "Test result added" msgstr "" -#: src/tables/build/BuildOrderTestTable.tsx:110 -#: src/tables/stock/StockItemTestResultTable.tsx:174 +#: src/tables/build/BuildOrderTestTable.tsx:111 +#: src/tables/stock/StockItemTestResultTable.tsx:180 msgid "No Result" msgstr "" -#: src/tables/build/BuildOrderTestTable.tsx:220 +#: src/tables/build/BuildOrderTestTable.tsx:221 msgid "Show build outputs currently in production" msgstr "" +#: src/tables/build/BuildOutputTable.tsx:76 +msgid "Build Output Stock Allocation" +msgstr "" + #: src/tables/build/BuildOutputTable.tsx:161 #~ msgid "Delete build output" #~ msgstr "Delete build output" -#: src/tables/build/BuildOutputTable.tsx:173 -#: src/tables/build/BuildOutputTable.tsx:211 +#: src/tables/build/BuildOutputTable.tsx:258 +#: src/tables/build/BuildOutputTable.tsx:374 msgid "Add Build Output" msgstr "Gyártási kimenet hozzáadása" -#: src/tables/build/BuildOutputTable.tsx:216 +#: src/tables/build/BuildOutputTable.tsx:304 +#~ msgid "Edit build output" +#~ msgstr "Edit build output" + +#: src/tables/build/BuildOutputTable.tsx:306 +#: src/tables/build/BuildOutputTable.tsx:417 +msgid "Edit Build Output" +msgstr "" + +#: src/tables/build/BuildOutputTable.tsx:321 +msgid "This action will deallocate all stock from the selected build output" +msgstr "" + +#: src/tables/build/BuildOutputTable.tsx:341 msgid "Complete selected outputs" msgstr "Kiválasztott kimenetek befejezése" -#: src/tables/build/BuildOutputTable.tsx:226 +#: src/tables/build/BuildOutputTable.tsx:352 msgid "Scrap selected outputs" msgstr "Kiválasztott kimenetek selejtezése" -#: src/tables/build/BuildOutputTable.tsx:236 +#: src/tables/build/BuildOutputTable.tsx:363 msgid "Cancel selected outputs" msgstr "Kiválasztott kimenetek visszavonása" -#: src/tables/build/BuildOutputTable.tsx:252 +#: src/tables/build/BuildOutputTable.tsx:385 msgid "Allocate" msgstr "Lefoglalva" -#: src/tables/build/BuildOutputTable.tsx:253 +#: src/tables/build/BuildOutputTable.tsx:386 msgid "Allocate stock to build output" msgstr "Készlet foglalása a gyártási kimenethez" -#: src/tables/build/BuildOutputTable.tsx:259 +#: src/tables/build/BuildOutputTable.tsx:396 msgid "Deallocate" msgstr "Foglalás felszabadítása" -#: src/tables/build/BuildOutputTable.tsx:260 +#: src/tables/build/BuildOutputTable.tsx:397 msgid "Deallocate stock from build output" msgstr "Készlet felszabadítása a gyártási kimenetből" -#: src/tables/build/BuildOutputTable.tsx:267 +#: src/tables/build/BuildOutputTable.tsx:408 msgid "Complete build output" msgstr "Gyártási kimenet befejezése" -#: src/tables/build/BuildOutputTable.tsx:276 +#: src/tables/build/BuildOutputTable.tsx:424 msgid "Scrap" msgstr "Selejt" -#: src/tables/build/BuildOutputTable.tsx:277 +#: src/tables/build/BuildOutputTable.tsx:425 msgid "Scrap build output" msgstr "Gyártási kimenet selejtezése" -#: src/tables/build/BuildOutputTable.tsx:280 -#~ msgid "Allocated Items" -#~ msgstr "Allocated Items" - -#: src/tables/build/BuildOutputTable.tsx:287 +#: src/tables/build/BuildOutputTable.tsx:435 msgid "Cancel build output" msgstr "Gyártási kimenet visszavonása" -#: src/tables/build/BuildOutputTable.tsx:325 -msgid "Batch" -msgstr "Köteg" - -#: src/tables/build/BuildOutputTable.tsx:340 +#: src/tables/build/BuildOutputTable.tsx:488 msgid "Allocated Lines" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:355 +#: src/tables/build/BuildOutputTable.tsx:503 msgid "Required Tests" msgstr "Szükséges tesztek" -#: src/tables/company/AddressTable.tsx:121 -#: src/tables/company/AddressTable.tsx:185 +#: src/tables/company/AddressTable.tsx:118 +#: src/tables/company/AddressTable.tsx:183 msgid "Add Address" msgstr "Cím hozzáadása" -#: src/tables/company/AddressTable.tsx:126 +#: src/tables/company/AddressTable.tsx:123 msgid "Address created" msgstr "Cím létrehozva" -#: src/tables/company/AddressTable.tsx:135 +#: src/tables/company/AddressTable.tsx:132 msgid "Edit Address" msgstr "Cím szerkesztése" -#: src/tables/company/AddressTable.tsx:143 +#: src/tables/company/AddressTable.tsx:140 msgid "Delete Address" msgstr "Cím törlése" -#: src/tables/company/AddressTable.tsx:144 +#: src/tables/company/AddressTable.tsx:141 msgid "Are you sure you want to delete this address?" msgstr "Biztos, hogy törli ezt a címet?" @@ -6130,24 +7269,24 @@ msgstr "Biztos, hogy törli ezt a címet?" #~ msgid "New Company" #~ msgstr "New Company" -#: src/tables/company/CompanyTable.tsx:74 -#: src/tables/company/CompanyTable.tsx:123 +#: src/tables/company/CompanyTable.tsx:75 +#: src/tables/company/CompanyTable.tsx:125 msgid "Add Company" msgstr "Cég hozzáadása" -#: src/tables/company/CompanyTable.tsx:96 +#: src/tables/company/CompanyTable.tsx:97 msgid "Show active companies" msgstr "Aktív cégek megjelenítése" -#: src/tables/company/CompanyTable.tsx:101 +#: src/tables/company/CompanyTable.tsx:102 msgid "Show companies which are suppliers" msgstr "Beszállító cégek megjelenítése" -#: src/tables/company/CompanyTable.tsx:106 +#: src/tables/company/CompanyTable.tsx:107 msgid "Show companies which are manufacturers" msgstr "Gyártó cégek megjelenítése" -#: src/tables/company/CompanyTable.tsx:111 +#: src/tables/company/CompanyTable.tsx:112 msgid "Show companies which are customers" msgstr "Vevő cégek megjelenítése" @@ -6163,96 +7302,99 @@ msgstr "Névjegy hozzáadása" msgid "Delete Contact" msgstr "Névjegy törlése" -#: src/tables/company/ContactTable.tsx:129 +#: src/tables/company/ContactTable.tsx:130 msgid "Add contact" msgstr "" -#: src/tables/general/AttachmentTable.tsx:130 +#: src/tables/general/AttachmentTable.tsx:135 msgid "File uploaded" msgstr "Fájl feltöltve" -#: src/tables/general/AttachmentTable.tsx:131 +#: src/tables/general/AttachmentTable.tsx:136 msgid "File {0} uploaded successfully" msgstr "A {0} fájl sikeresen feltöltve" -#: src/tables/general/AttachmentTable.tsx:142 +#: src/tables/general/AttachmentTable.tsx:147 msgid "Upload Error" msgstr "Feltöltési Hiba" -#: src/tables/general/AttachmentTable.tsx:143 +#: src/tables/general/AttachmentTable.tsx:148 msgid "File could not be uploaded" msgstr "A fájlt nem sikerült feltölteni" -#: src/tables/general/AttachmentTable.tsx:191 +#: src/tables/general/AttachmentTable.tsx:196 msgid "Upload Attachment" msgstr "" -#: src/tables/general/AttachmentTable.tsx:201 +#: src/tables/general/AttachmentTable.tsx:206 msgid "Edit Attachment" msgstr "" -#: src/tables/general/AttachmentTable.tsx:215 +#: src/tables/general/AttachmentTable.tsx:220 msgid "Delete Attachment" msgstr "Melléklet törlése" -#: src/tables/general/AttachmentTable.tsx:225 +#: src/tables/general/AttachmentTable.tsx:230 msgid "Is Link" msgstr "" -#: src/tables/general/AttachmentTable.tsx:226 +#: src/tables/general/AttachmentTable.tsx:231 msgid "Show link attachments" msgstr "" -#: src/tables/general/AttachmentTable.tsx:230 +#: src/tables/general/AttachmentTable.tsx:235 msgid "Is File" msgstr "" -#: src/tables/general/AttachmentTable.tsx:231 +#: src/tables/general/AttachmentTable.tsx:236 msgid "Show file attachments" msgstr "" -#: src/tables/general/AttachmentTable.tsx:240 +#: src/tables/general/AttachmentTable.tsx:245 msgid "Add attachment" msgstr "Melléklet hozzáadása" -#: src/tables/general/AttachmentTable.tsx:251 -msgid "Add external link" -msgstr "Külső hivatkozás hozzáadása" - #: src/tables/general/AttachmentTable.tsx:254 #~ msgid "Upload attachment" #~ msgstr "Upload attachment" -#: src/tables/general/AttachmentTable.tsx:299 +#: src/tables/general/AttachmentTable.tsx:256 +msgid "Add external link" +msgstr "Külső hivatkozás hozzáadása" + +#: src/tables/general/AttachmentTable.tsx:304 msgid "No attachments found" msgstr "Nem találhatók mellékletek" -#: src/tables/general/AttachmentTable.tsx:337 +#: src/tables/general/AttachmentTable.tsx:343 msgid "Drag attachment file here to upload" msgstr "" #: src/tables/general/ExtraLineItemTable.tsx:86 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:251 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:60 -#: src/tables/sales/SalesOrderLineItemTable.tsx:196 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:263 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:362 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:72 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:168 +#: src/tables/sales/SalesOrderLineItemTable.tsx:206 +#: src/tables/sales/SalesOrderLineItemTable.tsx:291 msgid "Add Line Item" msgstr "Sortétel hozzáadása" #: src/tables/general/ExtraLineItemTable.tsx:98 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:271 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:72 -#: src/tables/sales/SalesOrderLineItemTable.tsx:214 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:283 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:84 +#: src/tables/sales/SalesOrderLineItemTable.tsx:224 msgid "Edit Line Item" msgstr "Sortétel szerkesztése" #: src/tables/general/ExtraLineItemTable.tsx:106 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:279 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:80 -#: src/tables/sales/SalesOrderLineItemTable.tsx:222 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:291 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:92 +#: src/tables/sales/SalesOrderLineItemTable.tsx:232 msgid "Delete Line Item" msgstr "" -#: src/tables/general/ExtraLineItemTable.tsx:142 +#: src/tables/general/ExtraLineItemTable.tsx:143 msgid "Add Extra Line Item" msgstr "" @@ -6261,12 +7403,12 @@ msgid "Machine restarted" msgstr "" #: src/tables/machine/MachineListTable.tsx:212 -#: src/tables/machine/MachineListTable.tsx:263 +#: src/tables/machine/MachineListTable.tsx:261 msgid "Edit machine" msgstr "" #: src/tables/machine/MachineListTable.tsx:226 -#: src/tables/machine/MachineListTable.tsx:267 +#: src/tables/machine/MachineListTable.tsx:265 msgid "Delete machine" msgstr "" @@ -6278,51 +7420,50 @@ msgstr "" msgid "Are you sure you want to remove the machine \"{0}\"?" msgstr "" -#: src/tables/machine/MachineListTable.tsx:255 -#: src/tables/machine/MachineListTable.tsx:432 +#: src/tables/machine/MachineListTable.tsx:254 +#: src/tables/machine/MachineListTable.tsx:442 msgid "Restart required" msgstr "" -#: src/tables/machine/MachineListTable.tsx:259 +#: src/tables/machine/MachineListTable.tsx:258 msgid "Machine Actions" msgstr "" -#: src/tables/machine/MachineListTable.tsx:272 +#: src/tables/machine/MachineListTable.tsx:270 msgid "Restart" msgstr "" -#: src/tables/machine/MachineListTable.tsx:274 +#: src/tables/machine/MachineListTable.tsx:272 msgid "Restart machine" msgstr "" -#: src/tables/machine/MachineListTable.tsx:276 +#: src/tables/machine/MachineListTable.tsx:274 msgid "manual restart required" msgstr "" +#: src/tables/machine/MachineListTable.tsx:291 +#~ msgid "Machine information" +#~ msgstr "Machine information" + #: src/tables/machine/MachineListTable.tsx:292 -msgid "Machine information" +msgid "Machine Information" msgstr "" -#: src/tables/machine/MachineListTable.tsx:303 -#: src/tables/machine/MachineListTable.tsx:599 +#: src/tables/machine/MachineListTable.tsx:302 +#: src/tables/machine/MachineListTable.tsx:610 msgid "Machine Type" msgstr "" -#: src/tables/machine/MachineListTable.tsx:316 +#: src/tables/machine/MachineListTable.tsx:315 msgid "Machine Driver" msgstr "" -#: src/tables/machine/MachineListTable.tsx:329 +#: src/tables/machine/MachineListTable.tsx:330 msgid "Initialized" msgstr "" -#: src/tables/machine/MachineListTable.tsx:350 -#: src/tables/machine/MachineTypeTable.tsx:261 -msgid "Errors" -msgstr "" - -#: src/tables/machine/MachineListTable.tsx:358 -#: src/tables/machine/MachineTypeTable.tsx:269 +#: src/tables/machine/MachineListTable.tsx:359 +#: src/tables/machine/MachineTypeTable.tsx:290 msgid "No errors reported" msgstr "" @@ -6330,7 +7471,7 @@ msgstr "" msgid "Machine Settings" msgstr "" -#: src/tables/machine/MachineListTable.tsx:389 +#: src/tables/machine/MachineListTable.tsx:394 msgid "Driver Settings" msgstr "" @@ -6338,86 +7479,109 @@ msgstr "" #~ msgid "Create machine" #~ msgstr "Create machine" -#: src/tables/machine/MachineListTable.tsx:506 +#: src/tables/machine/MachineListTable.tsx:516 +#: src/tables/machine/MachineListTable.tsx:558 msgid "Add machine" msgstr "" #: src/tables/machine/MachineListTable.tsx:561 -msgid "Machine detail" +#~ msgid "Machine detail" +#~ msgstr "Machine detail" + +#: src/tables/machine/MachineListTable.tsx:572 +msgid "Machine Detail" msgstr "" -#: src/tables/machine/MachineListTable.tsx:608 +#: src/tables/machine/MachineListTable.tsx:619 msgid "Driver" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:73 +#: src/tables/machine/MachineTypeTable.tsx:78 msgid "Builtin driver" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:89 +#: src/tables/machine/MachineTypeTable.tsx:96 +msgid "Not Found" +msgstr "" + +#: src/tables/machine/MachineTypeTable.tsx:99 msgid "Machine type not found." msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:97 -msgid "Machine type information" +#: src/tables/machine/MachineTypeTable.tsx:99 +#~ msgid "Machine type information" +#~ msgstr "Machine type information" + +#: src/tables/machine/MachineTypeTable.tsx:109 +msgid "Machine Type Information" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:110 -#: src/tables/machine/MachineTypeTable.tsx:217 +#: src/tables/machine/MachineTypeTable.tsx:124 +#: src/tables/machine/MachineTypeTable.tsx:238 msgid "Slug" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:118 -#: src/tables/machine/MachineTypeTable.tsx:238 +#: src/tables/machine/MachineTypeTable.tsx:135 +#: src/tables/machine/MachineTypeTable.tsx:259 msgid "Provider plugin" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:130 -#: src/tables/machine/MachineTypeTable.tsx:250 +#: src/tables/machine/MachineTypeTable.tsx:147 +#: src/tables/machine/MachineTypeTable.tsx:271 msgid "Provider file" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:135 -#: src/tables/machine/MachineTypeTable.tsx:255 -#: src/tables/plugin/PluginListTable.tsx:180 -#: src/tables/plugin/PluginListTable.tsx:568 -msgid "Builtin" -msgstr "Beépített" +#: src/tables/machine/MachineTypeTable.tsx:148 +#~ msgid "Available drivers" +#~ msgstr "Available drivers" -#: src/tables/machine/MachineTypeTable.tsx:146 -msgid "Available drivers" +#: src/tables/machine/MachineTypeTable.tsx:162 +msgid "Available Drivers" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:196 +#: src/tables/machine/MachineTypeTable.tsx:217 msgid "Machine driver not found." msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:204 +#: src/tables/machine/MachineTypeTable.tsx:225 msgid "Machine driver information" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:224 +#: src/tables/machine/MachineTypeTable.tsx:245 msgid "Machine type" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:327 +#: src/tables/machine/MachineTypeTable.tsx:338 +#~ msgid "Machine type detail" +#~ msgstr "Machine type detail" + +#: src/tables/machine/MachineTypeTable.tsx:348 msgid "Builtin type" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:336 -msgid "Machine type detail" +#: src/tables/machine/MachineTypeTable.tsx:348 +#~ msgid "Machine driver detail" +#~ msgstr "Machine driver detail" + +#: src/tables/machine/MachineTypeTable.tsx:357 +msgid "Machine Type Detail" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:346 -msgid "Machine driver detail" +#: src/tables/machine/MachineTypeTable.tsx:367 +msgid "Machine Driver Detail" msgstr "" #: src/tables/notifications/NotificationsTable.tsx:26 msgid "Age" msgstr "Életkor" +#: src/tables/notifications/NotificationsTable.tsx:36 +msgid "Notification" +msgstr "Értesítés" + #: src/tables/notifications/NotificationsTable.tsx:40 #: src/tables/plugin/PluginErrorTable.tsx:37 +#: src/tables/settings/ErrorTable.tsx:50 msgid "Message" msgstr "Üzenet" @@ -6451,33 +7615,32 @@ msgstr "" msgid "Show assembly parts" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:68 +#: src/tables/part/PartCategoryTable.tsx:48 +msgid "You are subscribed to notifications for this category" +msgstr "" + +#: src/tables/part/PartCategoryTable.tsx:80 #: src/tables/part/PartTable.tsx:196 msgid "Include Subcategories" msgstr "Alkategóriákkal együtt" -#: src/tables/part/PartCategoryTable.tsx:69 +#: src/tables/part/PartCategoryTable.tsx:81 msgid "Include subcategories in results" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:74 +#: src/tables/part/PartCategoryTable.tsx:86 msgid "Show structural categories" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:78 -#: src/tables/part/PartTable.tsx:294 -msgid "Subscribed" -msgstr "" - -#: src/tables/part/PartCategoryTable.tsx:79 +#: src/tables/part/PartCategoryTable.tsx:91 msgid "Show categories to which the user is subscribed" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:86 +#: src/tables/part/PartCategoryTable.tsx:100 msgid "New Part Category" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:112 +#: src/tables/part/PartCategoryTable.tsx:129 msgid "Add Part Category" msgstr "" @@ -6523,11 +7686,6 @@ msgstr "Paraméter hozzáadás" msgid "Part parameters cannot be edited, as the part is locked" msgstr "" -#: src/tables/part/PartParameterTable.tsx:212 -#: src/tables/stock/StockItemTable.tsx:335 -msgid "Include Variants" -msgstr "Változatok is" - #: src/tables/part/PartParameterTemplateTable.tsx:31 msgid "Checkbox" msgstr "Jelölőnégyzet" @@ -6554,6 +7712,7 @@ msgid "Show templates with units" msgstr "" #: src/tables/part/PartParameterTemplateTable.tsx:85 +#: src/tables/part/PartParameterTemplateTable.tsx:141 msgid "Add Parameter Template" msgstr "Paraméter sablon létrehozás" @@ -6566,23 +7725,19 @@ msgid "Delete Parameter Template" msgstr "Paraméter sablon törlés" #: src/tables/part/PartParameterTemplateTable.tsx:141 -msgid "Add parameter template" -msgstr "Paraméter sablon létrehozás" +#~ msgid "Add parameter template" +#~ msgstr "Add parameter template" -#: src/tables/part/PartPurchaseOrdersTable.tsx:77 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:162 +#: src/tables/part/PartPurchaseOrdersTable.tsx:78 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:168 msgid "Total Quantity" msgstr "Teljes mennyiség" -#: src/tables/part/PartPurchaseOrdersTable.tsx:115 -msgid "Pending" -msgstr "" - -#: src/tables/part/PartPurchaseOrdersTable.tsx:116 +#: src/tables/part/PartPurchaseOrdersTable.tsx:122 msgid "Show pending orders" msgstr "" -#: src/tables/part/PartPurchaseOrdersTable.tsx:121 +#: src/tables/part/PartPurchaseOrdersTable.tsx:127 msgid "Show received items" msgstr "" @@ -6728,22 +7883,13 @@ msgstr "" msgid "Results" msgstr "Eredmények" -#: src/tables/part/PartTestTemplateTable.tsx:76 -msgid "No Results" -msgstr "Nincs találat" - -#: src/tables/part/PartTestTemplateTable.tsx:106 -#: src/tables/stock/StockItemTestResultTable.tsx:365 -msgid "Required" -msgstr "" - #: src/tables/part/PartTestTemplateTable.tsx:107 msgid "Show required tests" msgstr "Szükséges tesztek megjelenítése" #: src/tables/part/PartTestTemplateTable.tsx:111 -#: src/tables/settings/TemplateTable.tsx:167 -#: src/tables/settings/TemplateTable.tsx:283 +#: src/tables/settings/TemplateTable.tsx:247 +#: src/tables/settings/TemplateTable.tsx:363 msgid "Enabled" msgstr "" @@ -6784,7 +7930,7 @@ msgid "Show tests which have recorded results" msgstr "Rögzített eredményes tesztek megjelenítése" #: src/tables/part/PartTestTemplateTable.tsx:154 -#: src/tables/part/PartTestTemplateTable.tsx:237 +#: src/tables/part/PartTestTemplateTable.tsx:238 msgid "Add Test Template" msgstr "Teszt sablon hozzáadása" @@ -6808,7 +7954,7 @@ msgstr "Minden teszt eredmény amit ehhez a sablonhoz rögzítettek elvész" msgid "View Parent Part" msgstr "" -#: src/tables/part/PartTestTemplateTable.tsx:257 +#: src/tables/part/PartTestTemplateTable.tsx:258 msgid "Part templates cannot be edited, as the part is locked" msgstr "" @@ -6836,41 +7982,58 @@ msgstr "Virtuális változatok megjelenítése" msgid "Show trackable variants" msgstr "Követhető változatok megjelenítése" -#: src/tables/part/RelatedPartTable.tsx:84 +#: src/tables/part/RelatedPartTable.tsx:86 +#: src/tables/part/RelatedPartTable.tsx:109 msgid "Add Related Part" msgstr "Kapcsolódó alkatrész hozzáadása" -#: src/tables/part/RelatedPartTable.tsx:99 +#: src/tables/part/RelatedPartTable.tsx:101 msgid "Delete Related Part" msgstr "Kapcsolódó alkatrész törlése" -#: src/tables/part/RelatedPartTable.tsx:106 -msgid "Add related part" -msgstr "Kapcsolódó alkatrész hozzáadása" +#: src/tables/part/RelatedPartTable.tsx:109 +#~ msgid "Add related part" +#~ msgstr "Add related part" #: src/tables/plugin/PluginErrorTable.tsx:29 msgid "Stage" msgstr "Munkafázis" +#: src/tables/plugin/PluginListTable.tsx:42 +msgid "Plugin is active" +msgstr "Ez a plugin aktív" + +#: src/tables/plugin/PluginListTable.tsx:48 +msgid "Plugin is inactive" +msgstr "Ez a plugin nem aktív" + +#: src/tables/plugin/PluginListTable.tsx:55 +msgid "Plugin is not installed" +msgstr "Ez a plugin nincs telepítve" + +#: src/tables/plugin/PluginListTable.tsx:76 +msgid "Plugin" +msgstr "Plugin" + #: src/tables/plugin/PluginListTable.tsx:95 -msgid "Plugin with key {pluginKey} not found" -msgstr "" +#~ msgid "Plugin with key {pluginKey} not found" +#~ msgstr "Plugin with key {pluginKey} not found" #: src/tables/plugin/PluginListTable.tsx:97 -msgid "An error occurred while fetching plugin details" -msgstr "Hiba történt a bővítmény részleteinek letöltése közben" +#~ msgid "An error occurred while fetching plugin details" +#~ msgstr "An error occurred while fetching plugin details" + +#: src/tables/plugin/PluginListTable.tsx:109 +msgid "Description not available" +msgstr "Leírás nem elérhető" #: src/tables/plugin/PluginListTable.tsx:113 #~ msgid "Plugin with id {id} not found" #~ msgstr "Plugin with id {id} not found" #: src/tables/plugin/PluginListTable.tsx:122 -msgid "Plugin information" -msgstr "Plugin információ" - -#: src/tables/plugin/PluginListTable.tsx:134 -msgid "Author" -msgstr "Szerző" +#~ msgid "Plugin information" +#~ msgstr "Plugin information" #: src/tables/plugin/PluginListTable.tsx:134 #~ msgid "Plugin Actions" @@ -6881,79 +8044,124 @@ msgstr "Szerző" #~ msgid "Edit plugin" #~ msgstr "Edit plugin" +#: src/tables/plugin/PluginListTable.tsx:144 +msgid "Confirm plugin activation" +msgstr "Plugin telepítésének megerősítése" + +#: src/tables/plugin/PluginListTable.tsx:145 +msgid "Confirm plugin deactivation" +msgstr "Plugin kikapcsolásának megerősítése" + +#: src/tables/plugin/PluginListTable.tsx:150 +msgid "The selected plugin will be activated" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:151 +msgid "The selected plugin will be deactivated" +msgstr "" + #: src/tables/plugin/PluginListTable.tsx:152 #: src/tables/plugin/PluginListTable.tsx:153 #~ msgid "Reload" #~ msgstr "Reload" -#: src/tables/plugin/PluginListTable.tsx:154 -msgid "Plugin is not active" -msgstr "" - #: src/tables/plugin/PluginListTable.tsx:163 -msgid "Package information" -msgstr "Csomag információ" +#~ msgid "Package information" +#~ msgstr "Package information" #: src/tables/plugin/PluginListTable.tsx:169 -msgid "Package Name" -msgstr "Csomag neve" +msgid "Deactivate" +msgstr "Kikapcsolás" -#: src/tables/plugin/PluginListTable.tsx:175 -msgid "Installation Path" -msgstr "Telepítési útvonal" +#: src/tables/plugin/PluginListTable.tsx:183 +msgid "Activate" +msgstr "Bekapcsolás" -#: src/tables/plugin/PluginListTable.tsx:185 -msgid "Package" -msgstr "Csomag" +#: src/tables/plugin/PluginListTable.tsx:184 +msgid "Activate selected plugin" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:196 +msgid "Update selected plugin" +msgstr "" #: src/tables/plugin/PluginListTable.tsx:197 -msgid "Plugin settings" -msgstr "Plugin beállítások" +#~ msgid "Plugin settings" +#~ msgstr "Plugin settings" #: src/tables/plugin/PluginListTable.tsx:214 -msgid "Plugin is active" -msgstr "Ez a plugin aktív" +#: src/tables/stock/InstalledItemsTable.tsx:107 +msgid "Uninstall" +msgstr "Eltávolítás" -#: src/tables/plugin/PluginListTable.tsx:220 -msgid "Plugin is inactive" -msgstr "Ez a plugin nem aktív" - -#: src/tables/plugin/PluginListTable.tsx:227 -msgid "Plugin is not installed" -msgstr "Ez a plugin nincs telepítve" - -#: src/tables/plugin/PluginListTable.tsx:253 -msgid "Plugin" -msgstr "Plugin" - -#: src/tables/plugin/PluginListTable.tsx:287 -msgid "Description not available" -msgstr "Leírás nem elérhető" - -#: src/tables/plugin/PluginListTable.tsx:319 -msgid "Confirm plugin activation" -msgstr "Plugin telepítésének megerősítése" - -#: src/tables/plugin/PluginListTable.tsx:320 -msgid "Confirm plugin deactivation" -msgstr "Plugin kikapcsolásának megerősítése" - -#: src/tables/plugin/PluginListTable.tsx:325 -msgid "The selected plugin will be activated" +#: src/tables/plugin/PluginListTable.tsx:215 +msgid "Uninstall selected plugin" msgstr "" -#: src/tables/plugin/PluginListTable.tsx:326 -msgid "The selected plugin will be deactivated" +#: src/tables/plugin/PluginListTable.tsx:233 +msgid "Delete selected plugin configuration" msgstr "" -#: src/tables/plugin/PluginListTable.tsx:334 +#: src/tables/plugin/PluginListTable.tsx:249 msgid "Activate Plugin" msgstr "Plugin aktiválása" +#: src/tables/plugin/PluginListTable.tsx:270 +msgid "Install plugin" +msgstr "Plugin telepítése" + +#: src/tables/plugin/PluginListTable.tsx:283 +msgid "Install" +msgstr "Telepítés" + +#: src/tables/plugin/PluginListTable.tsx:284 +msgid "Plugin installed successfully" +msgstr "A bővítmény sikeresen telepítve" + +#: src/tables/plugin/PluginListTable.tsx:289 +msgid "Uninstall Plugin" +msgstr "Bővítmény eltávolítása" + +#: src/tables/plugin/PluginListTable.tsx:301 +msgid "Confirm plugin uninstall" +msgstr "Bővítmény eltávolítás megerősítése" + +#: src/tables/plugin/PluginListTable.tsx:304 +msgid "The selected plugin will be uninstalled." +msgstr "A kiválasztott bővítmény el lesz távolítva." + +#: src/tables/plugin/PluginListTable.tsx:308 +#~ msgid "This action cannot be undone." +#~ msgstr "This action cannot be undone." + +#: src/tables/plugin/PluginListTable.tsx:309 +msgid "Plugin uninstalled successfully" +msgstr "A bővítmény sikeresen eltávolítva" + +#: src/tables/plugin/PluginListTable.tsx:317 +msgid "Delete Plugin" +msgstr "Plugin törlése" + +#: src/tables/plugin/PluginListTable.tsx:318 +msgid "Deleting this plugin configuration will remove all associated settings and data. Are you sure you want to delete this plugin?" +msgstr "A bővítmény konfiguráció törlése eltávolít minden beállítást és adatot. Biztos benne, hogy törölni akarja ezt a bővítményt?" + +#: src/tables/plugin/PluginListTable.tsx:331 +msgid "Plugins reloaded" +msgstr "Bővítmények újratöltve" + +#: src/tables/plugin/PluginListTable.tsx:332 +msgid "Plugins were reloaded successfully" +msgstr "Bővítmények újratöltése sikeres" + #: src/tables/plugin/PluginListTable.tsx:338 #~ msgid "Deactivate Plugin" #~ msgstr "Deactivate Plugin" +#: src/tables/plugin/PluginListTable.tsx:350 +msgid "Reload Plugins" +msgstr "Bővítmények újratöltése" + #: src/tables/plugin/PluginListTable.tsx:354 #~ msgid "The following plugin will be activated" #~ msgstr "The following plugin will be activated" @@ -6962,17 +8170,17 @@ msgstr "Plugin aktiválása" #~ msgid "The following plugin will be deactivated" #~ msgstr "The following plugin will be deactivated" -#: src/tables/plugin/PluginListTable.tsx:362 -msgid "Deactivate" -msgstr "Kikapcsolás" +#: src/tables/plugin/PluginListTable.tsx:357 +msgid "Install Plugin" +msgstr "Bővítmény telepítése" #: src/tables/plugin/PluginListTable.tsx:366 #~ msgid "Confirm" #~ msgstr "Confirm" -#: src/tables/plugin/PluginListTable.tsx:373 -msgid "Activate" -msgstr "Bekapcsolás" +#: src/tables/plugin/PluginListTable.tsx:374 +msgid "Plugin Detail" +msgstr "Bővítmény részletek" #: src/tables/plugin/PluginListTable.tsx:376 #~ msgid "Activating plugin" @@ -6998,76 +8206,12 @@ msgstr "Bekapcsolás" #~ msgid "Error updating plugin" #~ msgstr "Error updating plugin" -#: src/tables/plugin/PluginListTable.tsx:406 -msgid "Uninstall" -msgstr "Eltávolítás" - -#: src/tables/plugin/PluginListTable.tsx:438 -msgid "Install plugin" -msgstr "Plugin telepítése" - -#: src/tables/plugin/PluginListTable.tsx:451 -msgid "Install" -msgstr "Telepítés" - -#: src/tables/plugin/PluginListTable.tsx:452 -msgid "Plugin installed successfully" -msgstr "A bővítmény sikeresen telepítve" - -#: src/tables/plugin/PluginListTable.tsx:457 -msgid "Uninstall Plugin" -msgstr "Bővítmény eltávolítása" - -#: src/tables/plugin/PluginListTable.tsx:469 -msgid "Confirm plugin uninstall" -msgstr "Bővítmény eltávolítás megerősítése" - -#: src/tables/plugin/PluginListTable.tsx:472 -msgid "The selected plugin will be uninstalled." -msgstr "A kiválasztott bővítmény el lesz távolítva." - -#: src/tables/plugin/PluginListTable.tsx:473 -msgid "This action cannot be undone." -msgstr "Ez a művelet nem vonható vissza." - -#: src/tables/plugin/PluginListTable.tsx:477 -msgid "Plugin uninstalled successfully" -msgstr "A bővítmény sikeresen eltávolítva" - -#: src/tables/plugin/PluginListTable.tsx:484 -msgid "Delete Plugin" -msgstr "Plugin törlése" - -#: src/tables/plugin/PluginListTable.tsx:485 -msgid "Deleting this plugin configuration will remove all associated settings and data. Are you sure you want to delete this plugin?" -msgstr "A bővítmény konfiguráció törlése eltávolít minden beállítást és adatot. Biztos benne, hogy törölni akarja ezt a bővítményt?" - -#: src/tables/plugin/PluginListTable.tsx:498 -msgid "Plugins reloaded" -msgstr "Bővítmények újratöltve" - -#: src/tables/plugin/PluginListTable.tsx:499 -msgid "Plugins were reloaded successfully" -msgstr "Bővítmények újratöltése sikeres" - -#: src/tables/plugin/PluginListTable.tsx:515 -msgid "Reload Plugins" -msgstr "Bővítmények újratöltése" - -#: src/tables/plugin/PluginListTable.tsx:524 -msgid "Install Plugin" -msgstr "Bővítmény telepítése" - -#: src/tables/plugin/PluginListTable.tsx:544 -msgid "Plugin Detail" -msgstr "Bővítmény részletek" - -#: src/tables/plugin/PluginListTable.tsx:573 +#: src/tables/plugin/PluginListTable.tsx:411 msgid "Sample" msgstr "Minta" -#: src/tables/plugin/PluginListTable.tsx:578 -#: src/tables/stock/StockItemTable.tsx:340 +#: src/tables/plugin/PluginListTable.tsx:416 +#: src/tables/stock/StockItemTable.tsx:344 msgid "Installed" msgstr "Telepítve" @@ -7116,82 +8260,78 @@ msgstr "" #~ msgid "Are you sure you want to remove this manufacturer part?" #~ msgstr "Are you sure you want to remove this manufacturer part?" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:102 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:339 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:103 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:356 msgid "Import Line Items" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:135 -msgid "Part Description" -msgstr "Alkatrész leírása" - -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:201 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:207 msgid "Supplier Code" msgstr "Beszállítói kód" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:208 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:214 msgid "Supplier Link" msgstr "Beszállítói link" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:215 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:220 msgid "Manufacturer Code" msgstr "Gyártói kód" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:229 -msgid "Destination" -msgstr "Cél" +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:248 +msgid "Show line items which have been received" +msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:300 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:316 msgid "Receive line item" msgstr "Sortétel bevételezése" #: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:344 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:142 -#: src/tables/sales/SalesOrderLineItemTable.tsx:240 -msgid "Add line item" -msgstr "Sortétel hozzáadása" +#: src/tables/sales/ReturnOrderLineItemTable.tsx:160 +#: src/tables/sales/SalesOrderLineItemTable.tsx:258 +#~ msgid "Add line item" +#~ msgstr "Add line item" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:354 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:373 msgid "Receive items" msgstr "Bevételezés" -#: src/tables/purchasing/SupplierPartTable.tsx:93 +#: src/tables/purchasing/SupplierPartTable.tsx:95 msgid "MPN" msgstr "MPN (Gyártói cikkszám)" -#: src/tables/purchasing/SupplierPartTable.tsx:122 +#: src/tables/purchasing/SupplierPartTable.tsx:124 msgid "Base units" msgstr "Egység" -#: src/tables/purchasing/SupplierPartTable.tsx:170 +#: src/tables/purchasing/SupplierPartTable.tsx:172 msgid "Supplier part created" msgstr "Beszállítói alkatrész létrehozva" -#: src/tables/purchasing/SupplierPartTable.tsx:176 +#: src/tables/purchasing/SupplierPartTable.tsx:179 msgid "Add supplier part" msgstr "Beszállítói alkatrész hozzáadása" -#: src/tables/purchasing/SupplierPartTable.tsx:188 +#: src/tables/purchasing/SupplierPartTable.tsx:191 msgid "Show active supplier parts" msgstr "" -#: src/tables/purchasing/SupplierPartTable.tsx:192 -msgid "Active Part" -msgstr "" - -#: src/tables/purchasing/SupplierPartTable.tsx:193 -msgid "Show active internal parts" -msgstr "" - #: src/tables/purchasing/SupplierPartTable.tsx:193 #~ msgid "Supplier part updated" #~ msgstr "Supplier part updated" -#: src/tables/purchasing/SupplierPartTable.tsx:197 +#: src/tables/purchasing/SupplierPartTable.tsx:195 +msgid "Active Part" +msgstr "" + +#: src/tables/purchasing/SupplierPartTable.tsx:196 +msgid "Show active internal parts" +msgstr "" + +#: src/tables/purchasing/SupplierPartTable.tsx:200 msgid "Active Supplier" msgstr "" -#: src/tables/purchasing/SupplierPartTable.tsx:198 +#: src/tables/purchasing/SupplierPartTable.tsx:201 msgid "Show active suppliers" msgstr "" @@ -7203,98 +8343,186 @@ msgstr "" #~ msgid "Are you sure you want to remove this supplier part?" #~ msgstr "Are you sure you want to remove this supplier part?" -#: src/tables/sales/ReturnOrderLineItemTable.tsx:114 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:139 msgid "Received Date" msgstr "" -#: src/tables/sales/ReturnOrderLineItemTable.tsx:128 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:153 msgid "Show items which have been received" msgstr "" -#: src/tables/sales/ReturnOrderLineItemTable.tsx:133 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:158 msgid "Filter by line item status" msgstr "" -#: src/tables/sales/ReturnOrderLineItemTable.tsx:158 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:176 +msgid "Receive selected items" +msgstr "" + +#: src/tables/sales/ReturnOrderLineItemTable.tsx:205 msgid "Receive Item" msgstr "" -#: src/tables/sales/SalesOrderLineItemTable.tsx:262 -msgid "Allocate stock" +#: src/tables/sales/SalesOrderAllocationTable.tsx:60 +msgid "Show outstanding allocations" msgstr "" -#: src/tables/sales/SalesOrderLineItemTable.tsx:272 +#: src/tables/sales/SalesOrderAllocationTable.tsx:168 +#: src/tables/sales/SalesOrderAllocationTable.tsx:190 +msgid "Edit Allocation" +msgstr "" + +#: src/tables/sales/SalesOrderAllocationTable.tsx:175 +#: src/tables/sales/SalesOrderAllocationTable.tsx:197 +msgid "Delete Allocation" +msgstr "" + +#: src/tables/sales/SalesOrderLineItemTable.tsx:244 +msgid "Allocate Serial Numbers" +msgstr "" + +#: src/tables/sales/SalesOrderLineItemTable.tsx:277 +msgid "Show lines which are fully allocated" +msgstr "" + +#: src/tables/sales/SalesOrderLineItemTable.tsx:280 +#~ msgid "Allocate stock" +#~ msgstr "Allocate stock" + +#: src/tables/sales/SalesOrderLineItemTable.tsx:282 +msgid "Show lines which are completed" +msgstr "" + +#: src/tables/sales/SalesOrderLineItemTable.tsx:291 +#~ msgid "Allocate Serials" +#~ msgstr "Allocate Serials" + +#: src/tables/sales/SalesOrderLineItemTable.tsx:340 +msgid "Allocate serials" +msgstr "" + +#: src/tables/sales/SalesOrderLineItemTable.tsx:356 msgid "Build stock" msgstr "" -#: src/tables/sales/SalesOrderLineItemTable.tsx:289 -#: src/tables/stock/StockItemTable.tsx:507 +#: src/tables/sales/SalesOrderLineItemTable.tsx:373 +#: src/tables/stock/StockItemTable.tsx:512 msgid "Order stock" msgstr "" -#: src/tables/sales/SalesOrderShipmentTable.tsx:40 +#: src/tables/sales/SalesOrderShipmentTable.tsx:51 +#~ msgid "Delete Shipment" +#~ msgstr "Delete Shipment" + +#: src/tables/sales/SalesOrderShipmentTable.tsx:57 msgid "Create Shipment" msgstr "" -#: src/tables/sales/SalesOrderShipmentTable.tsx:50 -msgid "Delete Shipment" -msgstr "" - -#: src/tables/sales/SalesOrderShipmentTable.tsx:58 -msgid "Edit Shipment" -msgstr "" - -#: src/tables/sales/SalesOrderShipmentTable.tsx:66 -msgid "Shipment Reference" -msgstr "" - -#: src/tables/sales/SalesOrderShipmentTable.tsx:71 +#: src/tables/sales/SalesOrderShipmentTable.tsx:104 msgid "Items" msgstr "" -#: src/tables/sales/SalesOrderShipmentTable.tsx:83 -msgid "Delivery Date" +#: src/tables/sales/SalesOrderShipmentTable.tsx:139 +msgid "View Shipment" msgstr "" -#: src/tables/sales/SalesOrderShipmentTable.tsx:107 -msgid "Complete Shipment" +#: src/tables/sales/SalesOrderShipmentTable.tsx:161 +msgid "Edit shipment" msgstr "" -#: src/tables/sales/SalesOrderShipmentTable.tsx:133 +#: src/tables/sales/SalesOrderShipmentTable.tsx:169 +msgid "Cancel shipment" +msgstr "" + +#: src/tables/sales/SalesOrderShipmentTable.tsx:184 msgid "Add shipment" msgstr "" -#: src/tables/sales/SalesOrderShipmentTable.tsx:146 -msgid "Shipped" -msgstr "" - -#: src/tables/sales/SalesOrderShipmentTable.tsx:147 +#: src/tables/sales/SalesOrderShipmentTable.tsx:198 msgid "Show shipments which have been shipped" msgstr "" -#: src/tables/sales/SalesOrderShipmentTable.tsx:151 -msgid "Delivered" -msgstr "" - -#: src/tables/sales/SalesOrderShipmentTable.tsx:152 +#: src/tables/sales/SalesOrderShipmentTable.tsx:203 msgid "Show shipments which have been delivered" msgstr "" -#: src/tables/settings/CurrencyTable.tsx:28 -msgid "Rate" -msgstr "Árfolyam" +#: src/tables/settings/BarcodeScanHistoryTable.tsx:61 +msgid "Barcode Information" +msgstr "" -#: src/tables/settings/CurrencyTable.tsx:40 -msgid "Exchange rates updated" -msgstr "Árfolyamok frissítve" +#: src/tables/settings/BarcodeScanHistoryTable.tsx:76 +#: src/tables/settings/ErrorTable.tsx:59 +msgid "Timestamp" +msgstr "" -#: src/tables/settings/CurrencyTable.tsx:46 -msgid "Exchange rate update error" -msgstr "Árfolyam frissítési hiba" +#: src/tables/settings/BarcodeScanHistoryTable.tsx:86 +msgid "Endpoint" +msgstr "" -#: src/tables/settings/CurrencyTable.tsx:57 -msgid "Refresh currency exchange rates" -msgstr "Árfolyam frissítés" +#: src/tables/settings/BarcodeScanHistoryTable.tsx:90 +#: src/tables/settings/BarcodeScanHistoryTable.tsx:217 +#: src/tables/stock/StockItemTestResultTable.tsx:174 +msgid "Result" +msgstr "" + +#: src/tables/settings/BarcodeScanHistoryTable.tsx:98 +msgid "Context" +msgstr "" + +#: src/tables/settings/BarcodeScanHistoryTable.tsx:119 +msgid "Response" +msgstr "" + +#: src/tables/settings/BarcodeScanHistoryTable.tsx:213 +#: src/tables/settings/ImportSessionTable.tsx:121 +#: src/tables/stock/StockTrackingTable.tsx:183 +msgid "Filter by user" +msgstr "" + +#: src/tables/settings/BarcodeScanHistoryTable.tsx:218 +msgid "Filter by result" +msgstr "" + +#: src/tables/settings/BarcodeScanHistoryTable.tsx:232 +msgid "Delete Barcode Scan Record" +msgstr "" + +#: src/tables/settings/BarcodeScanHistoryTable.tsx:258 +msgid "Barcode Scan Details" +msgstr "" + +#: src/tables/settings/BarcodeScanHistoryTable.tsx:268 +msgid "Logging Disabled" +msgstr "" + +#: src/tables/settings/BarcodeScanHistoryTable.tsx:270 +msgid "Barcode logging is not enabled" +msgstr "" + +#: src/tables/settings/CustomStateTable.tsx:36 +msgid "Display Name" +msgstr "" + +#: src/tables/settings/CustomStateTable.tsx:52 +msgid "Model" +msgstr "" + +#: src/tables/settings/CustomStateTable.tsx:65 +#: src/tables/settings/CustomStateTable.tsx:115 +msgid "Add State" +msgstr "" + +#: src/tables/settings/CustomStateTable.tsx:77 +msgid "Edit State" +msgstr "" + +#: src/tables/settings/CustomStateTable.tsx:85 +msgid "Delete State" +msgstr "" + +#: src/tables/settings/CustomStateTable.tsx:115 +#~ msgid "Add state" +#~ msgstr "Add state" #: src/tables/settings/CustomUnitsTable.tsx:50 msgid "Add Custom Unit" @@ -7312,59 +8540,71 @@ msgstr "" msgid "Add custom unit" msgstr "Egyedi mértékegység hozzáadása" -#: src/tables/settings/ErrorTable.tsx:31 -msgid "When" -msgstr "" - -#: src/tables/settings/ErrorTable.tsx:41 -msgid "Error Information" -msgstr "" - #: src/tables/settings/ErrorTable.tsx:51 #~ msgid "Delete error report" #~ msgstr "Delete error report" -#: src/tables/settings/ErrorTable.tsx:53 +#: src/tables/settings/ErrorTable.tsx:67 +msgid "Traceback" +msgstr "" + +#: src/tables/settings/ErrorTable.tsx:103 +msgid "When" +msgstr "" + +#: src/tables/settings/ErrorTable.tsx:113 +msgid "Error Information" +msgstr "" + +#: src/tables/settings/ErrorTable.tsx:123 msgid "Delete Error Report" msgstr "" -#: src/tables/settings/ErrorTable.tsx:55 +#: src/tables/settings/ErrorTable.tsx:125 msgid "Are you sure you want to delete this error report?" msgstr "" -#: src/tables/settings/ErrorTable.tsx:57 +#: src/tables/settings/ErrorTable.tsx:127 msgid "Error report deleted" msgstr "" -#: src/tables/settings/ErrorTable.tsx:79 -#: src/tables/settings/FailedTasksTable.tsx:59 +#: src/tables/settings/ErrorTable.tsx:146 +#: src/tables/settings/FailedTasksTable.tsx:65 msgid "Error Details" msgstr "" -#: src/tables/settings/FailedTasksTable.tsx:26 -#: src/tables/settings/PendingTasksTable.tsx:19 +#: src/tables/settings/FailedTasksTable.tsx:32 +#: src/tables/settings/PendingTasksTable.tsx:23 #: src/tables/settings/ScheduledTasksTable.tsx:19 msgid "Task" msgstr "" -#: src/tables/settings/FailedTasksTable.tsx:32 -#: src/tables/settings/PendingTasksTable.tsx:24 +#: src/tables/settings/FailedTasksTable.tsx:38 +#: src/tables/settings/PendingTasksTable.tsx:28 msgid "Task ID" msgstr "" -#: src/tables/settings/FailedTasksTable.tsx:36 -#: src/tables/stock/StockItemTestResultTable.tsx:211 +#: src/tables/settings/FailedTasksTable.tsx:42 +#: src/tables/stock/StockItemTestResultTable.tsx:218 msgid "Started" msgstr "" -#: src/tables/settings/FailedTasksTable.tsx:42 +#: src/tables/settings/FailedTasksTable.tsx:48 msgid "Stopped" msgstr "" -#: src/tables/settings/FailedTasksTable.tsx:48 +#: src/tables/settings/FailedTasksTable.tsx:54 msgid "Attempts" msgstr "" +#: src/tables/settings/FailedTasksTable.tsx:92 +msgid "No Information" +msgstr "" + +#: src/tables/settings/FailedTasksTable.tsx:93 +msgid "No error details are available for this task" +msgstr "" + #: src/tables/settings/GroupTable.tsx:90 msgid "Group with id {id} not found" msgstr "" @@ -7398,42 +8638,34 @@ msgstr "Csoport hozzáadása" msgid "Edit group" msgstr "Csoport szerkesztése" -#: src/tables/settings/ImportSessionTable.tsx:38 +#: src/tables/settings/ImportSessionTable.tsx:37 msgid "Delete Import Session" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:44 +#: src/tables/settings/ImportSessionTable.tsx:43 #: src/tables/settings/ImportSessionTable.tsx:131 msgid "Create Import Session" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:69 +#: src/tables/settings/ImportSessionTable.tsx:68 msgid "Uploaded" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:79 -msgid "Imported Rows" -msgstr "" - -#: src/tables/settings/ImportSessionTable.tsx:109 -#: src/tables/settings/TemplateTable.tsx:289 +#: src/tables/settings/ImportSessionTable.tsx:108 +#: src/tables/settings/TemplateTable.tsx:369 msgid "Model Type" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:110 -#: src/tables/settings/TemplateTable.tsx:290 +#: src/tables/settings/ImportSessionTable.tsx:109 +#: src/tables/settings/TemplateTable.tsx:370 msgid "Filter by target model type" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:116 +#: src/tables/settings/ImportSessionTable.tsx:115 msgid "Filter by import session status" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:122 -msgid "Filter by user" -msgstr "" - -#: src/tables/settings/PendingTasksTable.tsx:38 +#: src/tables/settings/PendingTasksTable.tsx:42 msgid "Arguments" msgstr "" @@ -7461,12 +8693,16 @@ msgstr "" msgid "Next Run" msgstr "" -#: src/tables/settings/TemplateTable.tsx:85 -msgid "Template not found" +#: src/tables/settings/StocktakeReportTable.tsx:28 +msgid "Report" msgstr "" -#: src/tables/settings/TemplateTable.tsx:87 -msgid "An error occurred while fetching template details" +#: src/tables/settings/StocktakeReportTable.tsx:35 +msgid "Part Count" +msgstr "" + +#: src/tables/settings/StocktakeReportTable.tsx:58 +msgid "Delete Report" msgstr "" #: src/tables/settings/TemplateTable.tsx:120 @@ -7481,21 +8717,12 @@ msgstr "" #~ msgid "actions" #~ msgstr "actions" -#: src/tables/settings/TemplateTable.tsx:177 -msgid "Modify" +#: src/tables/settings/TemplateTable.tsx:162 +msgid "Template not found" msgstr "" -#: src/tables/settings/TemplateTable.tsx:178 -msgid "Modify template file" -msgstr "" - -#: src/tables/settings/TemplateTable.tsx:234 -#: src/tables/settings/TemplateTable.tsx:302 -msgid "Edit Template" -msgstr "" - -#: src/tables/settings/TemplateTable.tsx:242 -msgid "Delete template" +#: src/tables/settings/TemplateTable.tsx:164 +msgid "An error occurred while fetching template details" msgstr "" #: src/tables/settings/TemplateTable.tsx:243 @@ -7506,103 +8733,137 @@ msgstr "" #~ msgid "Create new" #~ msgstr "Create new" -#: src/tables/settings/TemplateTable.tsx:248 +#: src/tables/settings/TemplateTable.tsx:257 +msgid "Modify" +msgstr "" + +#: src/tables/settings/TemplateTable.tsx:258 +msgid "Modify template file" +msgstr "" + +#: src/tables/settings/TemplateTable.tsx:314 +#: src/tables/settings/TemplateTable.tsx:382 +msgid "Edit Template" +msgstr "" + +#: src/tables/settings/TemplateTable.tsx:322 +msgid "Delete template" +msgstr "" + +#: src/tables/settings/TemplateTable.tsx:328 msgid "Add Template" msgstr "" -#: src/tables/settings/TemplateTable.tsx:261 +#: src/tables/settings/TemplateTable.tsx:341 msgid "Add template" msgstr "" -#: src/tables/settings/TemplateTable.tsx:284 +#: src/tables/settings/TemplateTable.tsx:364 msgid "Filter by enabled status" msgstr "" -#: src/tables/settings/UserTable.tsx:82 +#: src/tables/settings/UserTable.tsx:81 msgid "User with id {id} not found" msgstr "" -#: src/tables/settings/UserTable.tsx:84 +#: src/tables/settings/UserTable.tsx:83 msgid "An error occurred while fetching user details" msgstr "" -#: src/tables/settings/UserTable.tsx:102 +#: src/tables/settings/UserTable.tsx:101 msgid "Is Active" msgstr "" -#: src/tables/settings/UserTable.tsx:103 +#: src/tables/settings/UserTable.tsx:102 msgid "Designates whether this user should be treated as active. Unselect this instead of deleting accounts." msgstr "" -#: src/tables/settings/UserTable.tsx:107 +#: src/tables/settings/UserTable.tsx:106 msgid "Is Staff" msgstr "" -#: src/tables/settings/UserTable.tsx:108 +#: src/tables/settings/UserTable.tsx:107 msgid "Designates whether the user can log into the django admin site." msgstr "Megadja, hogy a felhasználó bejelentkezhet-e erre a django adminisztrátor webhelyre." -#: src/tables/settings/UserTable.tsx:112 +#: src/tables/settings/UserTable.tsx:111 msgid "Is Superuser" msgstr "Rendszergazda" -#: src/tables/settings/UserTable.tsx:113 +#: src/tables/settings/UserTable.tsx:112 msgid "Designates that this user has all permissions without explicitly assigning them." msgstr "" -#: src/tables/settings/UserTable.tsx:123 +#: src/tables/settings/UserTable.tsx:122 msgid "You cannot edit the rights for the currently logged-in user." msgstr "" -#: src/tables/settings/UserTable.tsx:154 +#: src/tables/settings/UserTable.tsx:153 msgid "No groups" msgstr "Nincsenek csoportok" -#: src/tables/settings/UserTable.tsx:245 +#: src/tables/settings/UserTable.tsx:244 msgid "Delete user" msgstr "Felhasználó törlése" -#: src/tables/settings/UserTable.tsx:246 +#: src/tables/settings/UserTable.tsx:245 msgid "User deleted" msgstr "Felhasználó törölve" -#: src/tables/settings/UserTable.tsx:248 +#: src/tables/settings/UserTable.tsx:247 msgid "Are you sure you want to delete this user?" msgstr "Biztosan törli ezt a felhasználót?" -#: src/tables/settings/UserTable.tsx:254 -#: src/tables/settings/UserTable.tsx:272 +#: src/tables/settings/UserTable.tsx:253 +#: src/tables/settings/UserTable.tsx:271 msgid "Add user" msgstr "Felhasználó hozzáadása" -#: src/tables/settings/UserTable.tsx:262 +#: src/tables/settings/UserTable.tsx:261 msgid "Added user" msgstr "Felhasználó hozzáadása sikeres" -#: src/tables/settings/UserTable.tsx:285 +#: src/tables/settings/UserTable.tsx:284 msgid "Show active users" msgstr "" -#: src/tables/settings/UserTable.tsx:289 +#: src/tables/settings/UserTable.tsx:288 msgid "Staff" msgstr "" -#: src/tables/settings/UserTable.tsx:290 +#: src/tables/settings/UserTable.tsx:289 msgid "Show staff users" msgstr "" #: src/tables/settings/UserTable.tsx:294 -msgid "Superuser" -msgstr "" - -#: src/tables/settings/UserTable.tsx:295 msgid "Show superusers" msgstr "" -#: src/tables/settings/UserTable.tsx:305 +#: src/tables/settings/UserTable.tsx:304 msgid "Edit user" msgstr "Felhasználó szerkesztése" +#: src/tables/stock/InstalledItemsTable.tsx:37 +#: src/tables/stock/InstalledItemsTable.tsx:90 +msgid "Install Item" +msgstr "" + +#: src/tables/stock/InstalledItemsTable.tsx:39 +msgid "Item installed" +msgstr "" + +#: src/tables/stock/InstalledItemsTable.tsx:50 +msgid "Uninstall Item" +msgstr "" + +#: src/tables/stock/InstalledItemsTable.tsx:52 +msgid "Item uninstalled" +msgstr "" + +#: src/tables/stock/InstalledItemsTable.tsx:108 +msgid "Uninstall stock item" +msgstr "" + #: src/tables/stock/LocationTypesTable.tsx:39 #: src/tables/stock/LocationTypesTable.tsx:109 msgid "Add Location Type" @@ -7620,276 +8881,272 @@ msgstr "" msgid "Icon" msgstr "" -#: src/tables/stock/StockItemTable.tsx:101 +#: src/tables/stock/StockItemTable.tsx:90 msgid "This stock item is in production" msgstr "Ez a készlet tétel gyártásban van" -#: src/tables/stock/StockItemTable.tsx:110 +#: src/tables/stock/StockItemTable.tsx:97 msgid "This stock item has been assigned to a sales order" msgstr "Készlet tétel hozzárendelve egy vevői rendeléshez" -#: src/tables/stock/StockItemTable.tsx:119 +#: src/tables/stock/StockItemTable.tsx:104 msgid "This stock item has been assigned to a customer" msgstr "Készlet tétel hozzárendelve egy vevőhöz" -#: src/tables/stock/StockItemTable.tsx:128 +#: src/tables/stock/StockItemTable.tsx:111 msgid "This stock item is installed in another stock item" msgstr "Készlet tétel beépült egy másikba" -#: src/tables/stock/StockItemTable.tsx:137 +#: src/tables/stock/StockItemTable.tsx:118 msgid "This stock item has been consumed by a build order" msgstr "Készlet tétel fel lett használva egy gyártásban" -#: src/tables/stock/StockItemTable.tsx:146 +#: src/tables/stock/StockItemTable.tsx:125 +msgid "This stock item is unavailable" +msgstr "" + +#: src/tables/stock/StockItemTable.tsx:134 msgid "This stock item has expired" msgstr "Készlet tétel lejárt" -#: src/tables/stock/StockItemTable.tsx:150 +#: src/tables/stock/StockItemTable.tsx:138 msgid "This stock item is stale" msgstr "Készlet tétel lejárt" -#: src/tables/stock/StockItemTable.tsx:161 +#: src/tables/stock/StockItemTable.tsx:150 msgid "This stock item is fully allocated" msgstr "Készlet tétel teljesen foglalva" -#: src/tables/stock/StockItemTable.tsx:168 +#: src/tables/stock/StockItemTable.tsx:157 msgid "This stock item is partially allocated" msgstr "Készlet tétel részlegesen foglalva" -#: src/tables/stock/StockItemTable.tsx:196 +#: src/tables/stock/StockItemTable.tsx:185 msgid "This stock item has been depleted" msgstr "Készlet tétel elfogyott" -#: src/tables/stock/StockItemTable.tsx:232 +#: src/tables/stock/StockItemTable.tsx:280 msgid "Stocktake Date" msgstr "" -#: src/tables/stock/StockItemTable.tsx:236 -msgid "Expiry Date" -msgstr "" - -#: src/tables/stock/StockItemTable.tsx:260 -msgid "Stock Value" -msgstr "" - -#: src/tables/stock/StockItemTable.tsx:290 +#: src/tables/stock/StockItemTable.tsx:294 msgid "Show stock for active parts" msgstr "" -#: src/tables/stock/StockItemTable.tsx:295 +#: src/tables/stock/StockItemTable.tsx:299 msgid "Filter by stock status" msgstr "" #: src/tables/stock/StockItemTable.tsx:301 -msgid "Show stock for assmebled parts" +#~ msgid "Show stock for assmebled parts" +#~ msgstr "Show stock for assmebled parts" + +#: src/tables/stock/StockItemTable.tsx:305 +msgid "Show stock for assembled parts" msgstr "" -#: src/tables/stock/StockItemTable.tsx:306 +#: src/tables/stock/StockItemTable.tsx:310 msgid "Show items which have been allocated" msgstr "" -#: src/tables/stock/StockItemTable.tsx:311 +#: src/tables/stock/StockItemTable.tsx:315 msgid "Show items which are available" msgstr "" -#: src/tables/stock/StockItemTable.tsx:315 +#: src/tables/stock/StockItemTable.tsx:319 #: src/tables/stock/StockLocationTable.tsx:44 msgid "Include Sublocations" msgstr "" -#: src/tables/stock/StockItemTable.tsx:316 +#: src/tables/stock/StockItemTable.tsx:320 msgid "Include stock in sublocations" msgstr "" -#: src/tables/stock/StockItemTable.tsx:320 +#: src/tables/stock/StockItemTable.tsx:324 msgid "Depleted" msgstr "" -#: src/tables/stock/StockItemTable.tsx:321 +#: src/tables/stock/StockItemTable.tsx:325 msgid "Show depleted stock items" msgstr "" -#: src/tables/stock/StockItemTable.tsx:326 +#: src/tables/stock/StockItemTable.tsx:330 msgid "Show items which are in stock" msgstr "" -#: src/tables/stock/StockItemTable.tsx:331 +#: src/tables/stock/StockItemTable.tsx:335 msgid "Show items which are in production" msgstr "" -#: src/tables/stock/StockItemTable.tsx:336 +#: src/tables/stock/StockItemTable.tsx:340 msgid "Include stock items for variant parts" msgstr "" -#: src/tables/stock/StockItemTable.tsx:341 +#: src/tables/stock/StockItemTable.tsx:345 msgid "Show stock items which are installed in other items" msgstr "" -#: src/tables/stock/StockItemTable.tsx:345 +#: src/tables/stock/StockItemTable.tsx:349 msgid "Sent to Customer" msgstr "" -#: src/tables/stock/StockItemTable.tsx:346 +#: src/tables/stock/StockItemTable.tsx:350 msgid "Show items which have been sent to a customer" msgstr "" -#: src/tables/stock/StockItemTable.tsx:350 +#: src/tables/stock/StockItemTable.tsx:354 msgid "Is Serialized" msgstr "" -#: src/tables/stock/StockItemTable.tsx:351 +#: src/tables/stock/StockItemTable.tsx:355 msgid "Show items which have a serial number" msgstr "" -#: src/tables/stock/StockItemTable.tsx:358 +#: src/tables/stock/StockItemTable.tsx:362 msgid "Has Batch Code" msgstr "" -#: src/tables/stock/StockItemTable.tsx:359 +#: src/tables/stock/StockItemTable.tsx:363 msgid "Show items which have a batch code" msgstr "" -#: src/tables/stock/StockItemTable.tsx:365 +#: src/tables/stock/StockItemTable.tsx:369 msgid "Show tracked items" msgstr "" -#: src/tables/stock/StockItemTable.tsx:369 +#: src/tables/stock/StockItemTable.tsx:373 msgid "Has Purchase Price" msgstr "" -#: src/tables/stock/StockItemTable.tsx:370 +#: src/tables/stock/StockItemTable.tsx:374 msgid "Show items which have a purchase price" msgstr "" -#: src/tables/stock/StockItemTable.tsx:378 +#: src/tables/stock/StockItemTable.tsx:382 msgid "External Location" msgstr "" -#: src/tables/stock/StockItemTable.tsx:379 +#: src/tables/stock/StockItemTable.tsx:383 msgid "Show items in an external location" msgstr "" -#: src/tables/stock/StockItemTable.tsx:451 +#: src/tables/stock/StockItemTable.tsx:456 msgid "Add a new stock item" msgstr "" -#: src/tables/stock/StockItemTable.tsx:460 +#: src/tables/stock/StockItemTable.tsx:465 msgid "Remove some quantity from a stock item" msgstr "" -#: src/tables/stock/StockItemTable.tsx:482 +#: src/tables/stock/StockItemTable.tsx:487 msgid "Move Stock items to new locations" msgstr "" -#: src/tables/stock/StockItemTable.tsx:489 +#: src/tables/stock/StockItemTable.tsx:494 msgid "Change stock status" msgstr "" -#: src/tables/stock/StockItemTable.tsx:491 +#: src/tables/stock/StockItemTable.tsx:496 msgid "Change the status of stock items" msgstr "" -#: src/tables/stock/StockItemTable.tsx:498 +#: src/tables/stock/StockItemTable.tsx:503 msgid "Merge stock" msgstr "" -#: src/tables/stock/StockItemTable.tsx:500 +#: src/tables/stock/StockItemTable.tsx:505 msgid "Merge stock items" msgstr "" -#: src/tables/stock/StockItemTable.tsx:509 -#: src/tables/stock/StockItemTable.tsx:516 +#: src/tables/stock/StockItemTable.tsx:514 +#: src/tables/stock/StockItemTable.tsx:521 msgid "Order new stock" msgstr "" -#: src/tables/stock/StockItemTable.tsx:514 +#: src/tables/stock/StockItemTable.tsx:519 msgid "Assign to customer" msgstr "" -#: src/tables/stock/StockItemTable.tsx:523 +#: src/tables/stock/StockItemTable.tsx:528 msgid "Delete stock" msgstr "" -#: src/tables/stock/StockItemTable.tsx:525 -msgid "Delete stock items" -msgstr "" +#: src/tables/stock/StockItemTable.tsx:528 +#~ msgid "Delete stock items" +#~ msgstr "Delete stock items" -#: src/tables/stock/StockItemTestResultTable.tsx:131 +#: src/tables/stock/StockItemTestResultTable.tsx:137 msgid "Test" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:157 +#: src/tables/stock/StockItemTestResultTable.tsx:163 msgid "Test result for installed stock item" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:168 -msgid "Result" -msgstr "" - -#: src/tables/stock/StockItemTestResultTable.tsx:190 +#: src/tables/stock/StockItemTestResultTable.tsx:196 msgid "Attachment" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:206 +#: src/tables/stock/StockItemTestResultTable.tsx:212 msgid "Test station" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:226 +#: src/tables/stock/StockItemTestResultTable.tsx:234 msgid "Finished" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:268 -#: src/tables/stock/StockItemTestResultTable.tsx:339 +#: src/tables/stock/StockItemTestResultTable.tsx:286 +#: src/tables/stock/StockItemTestResultTable.tsx:357 msgid "Edit Test Result" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:270 +#: src/tables/stock/StockItemTestResultTable.tsx:288 msgid "Test result updated" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:276 -#: src/tables/stock/StockItemTestResultTable.tsx:348 +#: src/tables/stock/StockItemTestResultTable.tsx:294 +#: src/tables/stock/StockItemTestResultTable.tsx:366 msgid "Delete Test Result" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:278 +#: src/tables/stock/StockItemTestResultTable.tsx:296 msgid "Test result deleted" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:292 +#: src/tables/stock/StockItemTestResultTable.tsx:310 msgid "Test Passed" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:293 +#: src/tables/stock/StockItemTestResultTable.tsx:311 msgid "Test result has been recorded" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:300 +#: src/tables/stock/StockItemTestResultTable.tsx:318 msgid "Failed to record test result" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:317 +#: src/tables/stock/StockItemTestResultTable.tsx:335 msgid "Pass Test" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:366 +#: src/tables/stock/StockItemTestResultTable.tsx:384 msgid "Show results for required tests" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:370 +#: src/tables/stock/StockItemTestResultTable.tsx:388 msgid "Include Installed" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:371 +#: src/tables/stock/StockItemTestResultTable.tsx:389 msgid "Show results for installed stock items" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:375 -#: src/tables/stock/TestStatisticsTable.tsx:74 +#: src/tables/stock/StockItemTestResultTable.tsx:393 +#: src/tables/stock/TestStatisticsTable.tsx:62 msgid "Passed" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:376 +#: src/tables/stock/StockItemTestResultTable.tsx:394 msgid "Show only passed tests" msgstr "" @@ -7922,28 +9179,32 @@ msgid "Filter by location type" msgstr "" #: src/tables/stock/StockLocationTable.tsx:107 -#: src/tables/stock/StockLocationTable.tsx:133 +#: src/tables/stock/StockLocationTable.tsx:134 msgid "Add Stock Location" msgstr "" -#: src/tables/stock/StockTrackingTable.tsx:64 +#: src/tables/stock/StockTrackingTable.tsx:68 msgid "Added" msgstr "" -#: src/tables/stock/StockTrackingTable.tsx:69 +#: src/tables/stock/StockTrackingTable.tsx:73 msgid "Removed" msgstr "" #: src/tables/stock/StockTrackingTable.tsx:198 +msgid "Details" +msgstr "Részletek" + +#: src/tables/stock/StockTrackingTable.tsx:213 msgid "No user information" msgstr "" -#: src/tables/stock/TestStatisticsTable.tsx:46 -#: src/tables/stock/TestStatisticsTable.tsx:76 +#: src/tables/stock/TestStatisticsTable.tsx:34 +#: src/tables/stock/TestStatisticsTable.tsx:64 msgid "Total" msgstr "" -#: src/tables/stock/TestStatisticsTable.tsx:75 +#: src/tables/stock/TestStatisticsTable.tsx:63 msgid "Failed" msgstr "" diff --git a/src/frontend/src/locales/id/messages.po b/src/frontend/src/locales/id/messages.po index 0fdd20a1e2..22e0cd29fd 100644 --- a/src/frontend/src/locales/id/messages.po +++ b/src/frontend/src/locales/id/messages.po @@ -8,27 +8,27 @@ msgstr "" "Language: id\n" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"PO-Revision-Date: 2024-08-20 19:50\n" +"PO-Revision-Date: 2024-11-04 03:14\n" "Last-Translator: \n" "Language-Team: Indonesian\n" "Plural-Forms: nplurals=1; plural=0;\n" "X-Crowdin-Project: inventree\n" "X-Crowdin-Project-ID: 452300\n" "X-Crowdin-Language: id\n" -"X-Crowdin-File: /[inventree.InvenTree] l10/src/frontend/src/locales/en/messages.po\n" -"X-Crowdin-File-ID: 205\n" +"X-Crowdin-File: /src/frontend/src/locales/en/messages.po\n" +"X-Crowdin-File-ID: 252\n" #: src/components/Boundary.tsx:12 msgid "Error rendering component" -msgstr "" +msgstr "Komponen Rendering Galat" #: src/components/Boundary.tsx:14 msgid "An error occurred while rendering this component. Refer to the console for more information." msgstr "" #: src/components/DashboardItemProxy.tsx:34 -msgid "Title" -msgstr "" +#~ msgid "Title" +#~ msgstr "Title" #: src/components/buttons/AdminButton.tsx:80 msgid "Open in admin interface" @@ -38,82 +38,99 @@ msgstr "" #~ msgid "Copy to clipboard" #~ msgstr "Copy to clipboard" -#: src/components/buttons/CopyButton.tsx:24 +#: src/components/buttons/CopyButton.tsx:29 msgid "Copied" -msgstr "" +msgstr "Tersalin" -#: src/components/buttons/CopyButton.tsx:24 +#: src/components/buttons/CopyButton.tsx:29 msgid "Copy" -msgstr "" +msgstr "Salin" -#: src/components/buttons/PrintingActions.tsx:93 +#: src/components/buttons/PrintingActions.tsx:97 msgid "Print Label" -msgstr "" +msgstr "Cetak label" -#: src/components/buttons/PrintingActions.tsx:99 +#: src/components/buttons/PrintingActions.tsx:103 msgid "Print" -msgstr "" +msgstr "Cetak" -#: src/components/buttons/PrintingActions.tsx:100 +#: src/components/buttons/PrintingActions.tsx:104 msgid "Label printing completed successfully" -msgstr "" +msgstr "Label telah tercetak secara penuh" -#: src/components/buttons/PrintingActions.tsx:106 -#: src/components/buttons/PrintingActions.tsx:144 -#: src/components/editors/NotesEditor.tsx:65 -#: src/components/editors/NotesEditor.tsx:165 -#: src/components/forms/fields/ApiFormField.tsx:319 +#: src/components/buttons/PrintingActions.tsx:110 +#: src/components/buttons/PrintingActions.tsx:148 +#: src/components/editors/NotesEditor.tsx:73 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:154 +#: src/components/forms/fields/ApiFormField.tsx:328 +#: src/components/forms/fields/TableField.tsx:43 #: src/components/importer/ImportDataSelector.tsx:187 -#: src/components/importer/ImporterColumnSelector.tsx:207 +#: src/components/importer/ImporterColumnSelector.tsx:210 #: src/components/modals/LicenseModal.tsx:75 -#: src/components/nav/SearchDrawer.tsx:448 +#: src/components/nav/SearchDrawer.tsx:458 +#: src/components/render/ModelType.tsx:290 #: src/pages/ErrorPage.tsx:11 -#: src/pages/part/PartPricingPanel.tsx:67 -#: src/tables/InvenTreeTable.tsx:495 +#: src/pages/part/PartPricingPanel.tsx:71 +#: src/tables/InvenTreeTable.tsx:481 #: src/tables/bom/BomTable.tsx:450 -#: src/tables/stock/StockItemTestResultTable.tsx:299 +#: src/tables/stock/StockItemTestResultTable.tsx:317 msgid "Error" -msgstr "" +msgstr "Galat" -#: src/components/buttons/PrintingActions.tsx:107 +#: src/components/buttons/PrintingActions.tsx:111 msgid "The label could not be generated" msgstr "" -#: src/components/buttons/PrintingActions.tsx:122 +#: src/components/buttons/PrintingActions.tsx:126 msgid "Print Report" -msgstr "" +msgstr "Cetak Laporan" -#: src/components/buttons/PrintingActions.tsx:138 +#: src/components/buttons/PrintingActions.tsx:142 msgid "Generate" -msgstr "" +msgstr "Hasilkan" -#: src/components/buttons/PrintingActions.tsx:139 +#: src/components/buttons/PrintingActions.tsx:143 msgid "Report printing completed successfully" msgstr "" -#: src/components/buttons/PrintingActions.tsx:145 +#: src/components/buttons/PrintingActions.tsx:149 msgid "The report could not be generated" msgstr "" -#: src/components/buttons/PrintingActions.tsx:173 +#: src/components/buttons/PrintingActions.tsx:177 msgid "Printing Actions" msgstr "" -#: src/components/buttons/PrintingActions.tsx:178 +#: src/components/buttons/PrintingActions.tsx:182 msgid "Print Labels" -msgstr "" +msgstr "Cetak label" -#: src/components/buttons/PrintingActions.tsx:184 +#: src/components/buttons/PrintingActions.tsx:188 msgid "Print Reports" +msgstr "Cetak Laporan" + +#: src/components/buttons/RemoveRowButton.tsx:8 +msgid "Remove this row" +msgstr "Hapus Baris ini" + +#: src/components/buttons/ScanButton.tsx:15 +#: src/components/nav/NavigationDrawer.tsx:117 +#: src/forms/PurchaseOrderForms.tsx:379 +#: src/forms/PurchaseOrderForms.tsx:473 +msgid "Scan Barcode" msgstr "" #: src/components/buttons/ScanButton.tsx:15 -msgid "Scan QR code" +#~ msgid "Scan QR code" +#~ msgstr "Scan QR code" + +#: src/components/buttons/ScanButton.tsx:20 +msgid "Open Barcode Scanner" msgstr "" #: src/components/buttons/ScanButton.tsx:20 -msgid "Open QR code scanner" -msgstr "" +#~ msgid "Open QR code scanner" +#~ msgstr "Open QR code scanner" #: src/components/buttons/SpotlightButton.tsx:14 msgid "Open spotlight" @@ -125,86 +142,348 @@ msgstr "" #: src/components/buttons/YesNoButton.tsx:17 msgid "Fail" -msgstr "" +msgstr "Gagal" #: src/components/buttons/YesNoButton.tsx:33 -#: src/tables/Filter.tsx:52 +#: src/tables/Filter.tsx:61 msgid "Yes" -msgstr "" +msgstr "Ya" #: src/components/buttons/YesNoButton.tsx:33 -#: src/tables/Filter.tsx:53 +#: src/tables/Filter.tsx:62 msgid "No" +msgstr "Tidak" + +#: src/components/dashboard/DashboardLayout.tsx:286 +msgid "No Widgets Selected" msgstr "" -#: src/components/details/Details.tsx:301 +#: src/components/dashboard/DashboardLayout.tsx:289 +msgid "Use the menu to add widgets to the dashboard" +msgstr "" + +#: src/components/dashboard/DashboardMenu.tsx:59 +#: src/components/dashboard/DashboardMenu.tsx:126 +msgid "Accept Layout" +msgstr "" + +#: src/components/dashboard/DashboardMenu.tsx:91 +#: src/components/nav/NavigationDrawer.tsx:71 +#: src/defaults/actions.tsx:17 +#: src/defaults/links.tsx:9 +#: src/pages/Index/Settings/UserSettings.tsx:47 +msgid "Dashboard" +msgstr "" + +#: src/components/dashboard/DashboardMenu.tsx:99 +msgid "Edit Layout" +msgstr "" + +#: src/components/dashboard/DashboardMenu.tsx:108 +msgid "Add Widget" +msgstr "" + +#: src/components/dashboard/DashboardMenu.tsx:117 +msgid "Remove Widgets" +msgstr "" + +#: src/components/dashboard/DashboardWidget.tsx:65 +msgid "Remove this widget from the dashboard" +msgstr "" + +#: src/components/dashboard/DashboardWidgetDrawer.tsx:77 +msgid "Filter dashboard widgets" +msgstr "" + +#: src/components/dashboard/DashboardWidgetDrawer.tsx:98 +msgid "Add this widget to the dashboard" +msgstr "" + +#: src/components/dashboard/DashboardWidgetDrawer.tsx:123 +msgid "No Widgets Available" +msgstr "" + +#: src/components/dashboard/DashboardWidgetDrawer.tsx:124 +msgid "There are no more widgets available for the dashboard" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:19 +msgid "Subscribed Parts" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:20 +msgid "Show the number of parts which you have subscribed to" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:26 +msgid "Subscribed Categories" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:27 +msgid "Show the number of part categories which you have subscribed to" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:35 +#: src/pages/part/PartSchedulingDetail.tsx:304 +#: src/tables/part/PartTable.tsx:238 +msgid "Low Stock" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:37 +msgid "Show the number of parts which are low on stock" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:43 +msgid "Expired Stock Items" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:45 +msgid "Show the number of stock items which have expired" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:51 +msgid "Stale Stock Items" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:53 +msgid "Show the number of stock items which are stale" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:59 +msgid "Active Build Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:61 +msgid "Show the number of build orders which are currently active" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:66 +msgid "Overdue Build Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:68 +msgid "Show the number of build orders which are overdue" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:73 +msgid "Assigned Build Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:75 +msgid "Show the number of build orders which are assigned to you" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:80 +msgid "Active Sales Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:82 +msgid "Show the number of sales orders which are currently active" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:87 +msgid "Overdue Sales Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:89 +msgid "Show the number of sales orders which are overdue" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:94 +msgid "Assigned Sales Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:96 +msgid "Show the number of sales orders which are assigned to you" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:101 +msgid "Active Purchase Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:103 +msgid "Show the number of purchase orders which are currently active" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:108 +msgid "Overdue Purchase Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:110 +msgid "Show the number of purchase orders which are overdue" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:115 +msgid "Assigned Purchase Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:117 +msgid "Show the number of purchase orders which are assigned to you" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:122 +msgid "Active Return Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:124 +msgid "Show the number of return orders which are currently active" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:129 +msgid "Overdue Return Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:131 +msgid "Show the number of return orders which are overdue" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:136 +msgid "Assigned Return Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:138 +msgid "Show the number of return orders which are assigned to you" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:149 +#: src/components/dashboard/widgets/GetStartedWidget.tsx:15 +#: src/defaults/links.tsx:38 +msgid "Getting Started" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:150 +#: src/defaults/links.tsx:41 +msgid "Getting started with InvenTree" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:157 +#: src/components/dashboard/widgets/NewsWidget.tsx:123 +msgid "News Updates" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:158 +msgid "The latest news from InvenTree" +msgstr "" + +#: src/components/dashboard/widgets/ColorToggleWidget.tsx:18 +#: src/components/nav/MainMenu.tsx:77 +msgid "Change Color Mode" +msgstr "" + +#: src/components/dashboard/widgets/ColorToggleWidget.tsx:23 +msgid "Change the color mode of the user interface" +msgstr "" + +#: src/components/dashboard/widgets/LanguageSelectWidget.tsx:18 +msgid "Change Language" +msgstr "" + +#: src/components/dashboard/widgets/LanguageSelectWidget.tsx:23 +msgid "Change the language of the user interface" +msgstr "" + +#: src/components/dashboard/widgets/NewsWidget.tsx:61 +#: src/components/nav/NotificationDrawer.tsx:88 +#: src/pages/Notifications.tsx:73 +msgid "Mark as read" +msgstr "" + +#: src/components/dashboard/widgets/NewsWidget.tsx:115 +msgid "Requires Superuser" +msgstr "" + +#: src/components/dashboard/widgets/NewsWidget.tsx:116 +msgid "This widget requires superuser permissions" +msgstr "" + +#: src/components/dashboard/widgets/NewsWidget.tsx:133 +msgid "No News" +msgstr "" + +#: src/components/dashboard/widgets/NewsWidget.tsx:134 +msgid "There are no unread news items" +msgstr "" + +#: src/components/details/Details.tsx:300 msgid "No name defined" msgstr "" -#: src/components/details/DetailsImage.tsx:65 +#: src/components/details/DetailsImage.tsx:69 msgid "Remove Image" -msgstr "" +msgstr "Hapus Gambar" -#: src/components/details/DetailsImage.tsx:68 +#: src/components/details/DetailsImage.tsx:72 msgid "Remove the associated image from this item?" msgstr "" -#: src/components/details/DetailsImage.tsx:71 -#: src/forms/StockForms.tsx:533 +#: src/components/details/DetailsImage.tsx:75 +#: src/forms/StockForms.tsx:651 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:199 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:306 -#: src/pages/stock/StockDetail.tsx:526 +#: src/pages/stock/StockDetail.tsx:690 msgid "Remove" -msgstr "" +msgstr "Hapus" -#: src/components/details/DetailsImage.tsx:71 -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:158 -#: src/components/items/ActionDropdown.tsx:215 -#: src/components/items/ActionDropdown.tsx:216 -#: src/contexts/ThemeContext.tsx:43 +#: src/components/details/DetailsImage.tsx:75 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:184 +#: src/components/items/ActionDropdown.tsx:268 +#: src/components/items/ActionDropdown.tsx:269 +#: src/contexts/ThemeContext.tsx:45 #: src/hooks/UseForm.tsx:40 -#: src/tables/FilterSelectDrawer.tsx:205 -#: src/tables/build/BuildOutputTable.tsx:286 +#: src/tables/FilterSelectDrawer.tsx:241 +#: src/tables/RowActions.tsx:59 +#: src/tables/build/BuildOutputTable.tsx:434 msgid "Cancel" -msgstr "" +msgstr "Batal" -#: src/components/details/DetailsImage.tsx:97 +#: src/components/details/DetailsImage.tsx:101 msgid "Drag and drop to upload" -msgstr "" +msgstr "Geser dan Lepas untuk unggah file" -#: src/components/details/DetailsImage.tsx:100 +#: src/components/details/DetailsImage.tsx:104 msgid "Click to select file(s)" msgstr "" -#: src/components/details/DetailsImage.tsx:226 +#: src/components/details/DetailsImage.tsx:230 msgid "Clear" msgstr "" -#: src/components/details/DetailsImage.tsx:232 -#: src/components/forms/ApiForm.tsx:627 -#: src/contexts/ThemeContext.tsx:43 -#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:60 +#: src/components/details/DetailsImage.tsx:236 +#: src/components/forms/ApiForm.tsx:660 +#: src/contexts/ThemeContext.tsx:45 msgid "Submit" msgstr "" -#: src/components/details/DetailsImage.tsx:272 +#: src/components/details/DetailsImage.tsx:280 msgid "Select from existing images" msgstr "" -#: src/components/details/DetailsImage.tsx:280 +#: src/components/details/DetailsImage.tsx:288 msgid "Select Image" +msgstr "Pilih gambar" + +#: src/components/details/DetailsImage.tsx:304 +msgid "Download remote image" msgstr "" -#: src/components/details/DetailsImage.tsx:292 +#: src/components/details/DetailsImage.tsx:319 msgid "Upload new image" -msgstr "" +msgstr "Unggah gambar baru" -#: src/components/details/DetailsImage.tsx:299 +#: src/components/details/DetailsImage.tsx:326 msgid "Upload Image" +msgstr "Unggah Gambar" + +#: src/components/details/DetailsImage.tsx:339 +msgid "Delete image" +msgstr "Hapus gambar" + +#: src/components/details/DetailsImage.tsx:373 +msgid "Download Image" msgstr "" -#: src/components/details/DetailsImage.tsx:312 -msgid "Delete image" +#: src/components/details/DetailsImage.tsx:378 +msgid "Image downloaded successfully" msgstr "" #: src/components/details/PartIcons.tsx:43 @@ -235,39 +514,60 @@ msgstr "" #~ msgid "Part is virtual (not a physical part)" #~ msgstr "Part is virtual (not a physical part)" -#: src/components/editors/NotesEditor.tsx:66 +#: src/components/editors/NotesEditor.tsx:74 msgid "Image upload failed" -msgstr "" +msgstr "Pengunggahan gambar gagal" -#: src/components/editors/NotesEditor.tsx:156 -#: src/components/forms/ApiForm.tsx:467 +#: src/components/editors/NotesEditor.tsx:83 +#: src/components/editors/NotesEditor.tsx:119 +#: src/components/forms/ApiForm.tsx:475 #: src/tables/bom/BomTable.tsx:441 msgid "Success" +msgstr "Berhasil" + +#: src/components/editors/NotesEditor.tsx:84 +msgid "Image uploaded successfully" msgstr "" -#: src/components/editors/NotesEditor.tsx:157 +#: src/components/editors/NotesEditor.tsx:120 msgid "Notes saved successfully" -msgstr "" +msgstr "Catatan berhasil tersimpan" -#: src/components/editors/NotesEditor.tsx:166 +#: src/components/editors/NotesEditor.tsx:131 msgid "Failed to save notes" +msgstr "Gagal untuk menyimpan catatan" + +#: src/components/editors/NotesEditor.tsx:134 +msgid "Error Saving Notes" msgstr "" -#: src/components/editors/NotesEditor.tsx:198 -msgid "Preview Notes" -msgstr "" +#: src/components/editors/NotesEditor.tsx:151 +#~ msgid "Disable Editing" +#~ msgstr "Disable Editing" -#: src/components/editors/NotesEditor.tsx:198 -msgid "Edit Notes" -msgstr "" - -#: src/components/editors/NotesEditor.tsx:212 +#: src/components/editors/NotesEditor.tsx:154 msgid "Save Notes" +msgstr "Simpan catatan" + +#: src/components/editors/NotesEditor.tsx:173 +msgid "Close Editor" msgstr "" +#: src/components/editors/NotesEditor.tsx:180 +msgid "Enable Editing" +msgstr "" + +#: src/components/editors/NotesEditor.tsx:198 +#~ msgid "Preview Notes" +#~ msgstr "Preview Notes" + +#: src/components/editors/NotesEditor.tsx:198 +#~ msgid "Edit Notes" +#~ msgstr "Edit Notes" + #: src/components/editors/TemplateEditor/CodeEditor/index.tsx:9 msgid "Code" -msgstr "" +msgstr "Kode" #: src/components/editors/TemplateEditor/PdfPreview/PdfPreview.tsx:44 #~ msgid "Failed to parse error response from server." @@ -279,42 +579,46 @@ msgstr "" #: src/components/editors/TemplateEditor/PdfPreview/index.tsx:9 msgid "PDF Preview" -msgstr "" +msgstr "Tinjau Berkas PDF" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:104 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:115 msgid "Error loading template" msgstr "" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:116 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:127 msgid "Error saving template" msgstr "" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:146 -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:274 -msgid "Save & Reload Preview" -msgstr "" - -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:151 -msgid "Are you sure you want to Save & Reload the preview?" -msgstr "" - #: src/components/editors/TemplateEditor/TemplateEditor.tsx:151 #~ msgid "Save & Reload preview?" #~ msgstr "Save & Reload preview?" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:153 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:155 +msgid "Could not load the template from the server." +msgstr "" + +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:172 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:303 +msgid "Save & Reload Preview" +msgstr "Simpan & Muat Ulang Pranala" + +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:177 +msgid "Are you sure you want to Save & Reload the preview?" +msgstr "" + +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:179 msgid "To render the preview the current template needs to be replaced on the server with your modifications which may break the label if it is under active use. Do you want to proceed?" msgstr "" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:157 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:183 msgid "Save & Reload" -msgstr "" +msgstr "Simpan & Muat ulang" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:189 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:215 msgid "Preview updated" -msgstr "" +msgstr "Tinjau telah diperbarui" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:190 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:216 msgid "The preview has been updated successfully." msgstr "" @@ -322,15 +626,15 @@ msgstr "" #~ msgid "Save & Reload preview" #~ msgstr "Save & Reload preview" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:266 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:295 msgid "Reload preview" -msgstr "" +msgstr "Memuat Ulang Pratinjau" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:267 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:296 msgid "Use the currently stored template from the server" msgstr "" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:275 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:304 msgid "Save the current template and reload the preview" msgstr "" @@ -338,11 +642,11 @@ msgstr "" #~ msgid "to preview" #~ msgstr "to preview" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:333 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:365 msgid "Select instance to preview" msgstr "" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:377 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:409 msgid "Error rendering template" msgstr "" @@ -356,7 +660,7 @@ msgstr "" #: src/components/errors/GenericErrorPage.tsx:50 msgid "Status Code" -msgstr "" +msgstr "Kode Status" #: src/components/errors/GenericErrorPage.tsx:63 msgid "Return to the index page" @@ -372,30 +676,31 @@ msgstr "" #: src/components/errors/NotFound.tsx:8 msgid "Page Not Found" -msgstr "" +msgstr "Halaman tidak ditemukan" #: src/components/errors/NotFound.tsx:9 msgid "This page does not exist" msgstr "" #: src/components/errors/PermissionDenied.tsx:8 +#: src/functions/notifications.tsx:24 msgid "Permission Denied" -msgstr "" +msgstr "Izin Ditolak" #: src/components/errors/PermissionDenied.tsx:9 msgid "You do not have permission to view this page." -msgstr "" +msgstr "Anda tidak memiliki izin untuk melihat halaman ini." #: src/components/errors/ServerError.tsx:8 msgid "Server Error" -msgstr "" +msgstr "Galat Server" #: src/components/errors/ServerError.tsx:9 msgid "A server error occurred" msgstr "" -#: src/components/forms/ApiForm.tsx:151 -#: src/components/forms/ApiForm.tsx:555 +#: src/components/forms/ApiForm.tsx:154 +#: src/components/forms/ApiForm.tsx:579 msgid "Form Error" msgstr "" @@ -403,24 +708,24 @@ msgstr "" #~ msgid "Form Errors Exist" #~ msgstr "Form Errors Exist" -#: src/components/forms/ApiForm.tsx:563 +#: src/components/forms/ApiForm.tsx:587 msgid "Errors exist for one or more form fields" msgstr "" -#: src/components/forms/ApiForm.tsx:665 -#: src/tables/plugin/PluginListTable.tsx:388 +#: src/components/forms/ApiForm.tsx:698 +#: src/tables/plugin/PluginListTable.tsx:195 msgid "Update" -msgstr "" +msgstr "Pembaruan" -#: src/components/forms/ApiForm.tsx:685 -#: src/components/items/ActionDropdown.tsx:195 +#: src/components/forms/ApiForm.tsx:718 +#: src/components/items/ActionDropdown.tsx:248 #: src/hooks/UseForm.tsx:122 -#: src/pages/Index/Scan.tsx:343 +#: src/pages/Index/Scan.tsx:357 #: src/pages/Notifications.tsx:123 -#: src/tables/RowActions.tsx:43 -#: src/tables/plugin/PluginListTable.tsx:420 +#: src/tables/RowActions.tsx:49 +#: src/tables/plugin/PluginListTable.tsx:232 msgid "Delete" -msgstr "" +msgstr "Hapus" #: src/components/forms/AuthenticationForm.tsx:48 #: src/components/forms/AuthenticationForm.tsx:74 @@ -428,14 +733,6 @@ msgstr "" #~ msgid "Check your your input and try again." #~ msgstr "Check your your input and try again." -#: src/components/forms/AuthenticationForm.tsx:51 -msgid "Login successful" -msgstr "" - -#: src/components/forms/AuthenticationForm.tsx:52 -msgid "Logged in successfully" -msgstr "" - #: src/components/forms/AuthenticationForm.tsx:52 #~ msgid "Welcome back!" #~ msgstr "Welcome back!" @@ -444,14 +741,22 @@ msgstr "" #~ msgid "Login successfull" #~ msgstr "Login successfull" -#: src/components/forms/AuthenticationForm.tsx:58 -msgid "Login failed" +#: src/components/forms/AuthenticationForm.tsx:55 +msgid "Login successful" +msgstr "Berhasil Login" + +#: src/components/forms/AuthenticationForm.tsx:56 +msgid "Logged in successfully" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:59 -#: src/components/forms/AuthenticationForm.tsx:76 -#: src/components/forms/AuthenticationForm.tsx:211 -#: src/functions/auth.tsx:164 +#: src/components/forms/AuthenticationForm.tsx:61 +msgid "Login failed" +msgstr "Gagal Login" + +#: src/components/forms/AuthenticationForm.tsx:62 +#: src/components/forms/AuthenticationForm.tsx:79 +#: src/components/forms/AuthenticationForm.tsx:214 +#: src/functions/auth.tsx:175 msgid "Check your input and try again." msgstr "" @@ -460,124 +765,127 @@ msgstr "" #~ msgid "Mail delivery successfull" #~ msgstr "Mail delivery successfull" -#: src/components/forms/AuthenticationForm.tsx:70 -#: src/functions/auth.tsx:155 +#: src/components/forms/AuthenticationForm.tsx:73 +#: src/functions/auth.tsx:166 msgid "Mail delivery successful" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:71 +#: src/components/forms/AuthenticationForm.tsx:74 msgid "Check your inbox for the login link. If you have an account, you will receive a login link. Check in spam too." msgstr "" -#: src/components/forms/AuthenticationForm.tsx:75 +#: src/components/forms/AuthenticationForm.tsx:78 msgid "Mail delivery failed" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:95 +#: src/components/forms/AuthenticationForm.tsx:98 msgid "Or continue with other methods" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:106 -#: src/components/forms/AuthenticationForm.tsx:227 +#: src/components/forms/AuthenticationForm.tsx:109 +#: src/components/forms/AuthenticationForm.tsx:230 +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:67 msgid "Username" -msgstr "" +msgstr "Nama Pengguna" -#: src/components/forms/AuthenticationForm.tsx:107 -#: src/components/forms/AuthenticationForm.tsx:228 +#: src/components/forms/AuthenticationForm.tsx:110 +#: src/components/forms/AuthenticationForm.tsx:231 msgid "Your username" -msgstr "" +msgstr "Nama Anda" -#: src/components/forms/AuthenticationForm.tsx:112 -#: src/components/forms/AuthenticationForm.tsx:240 -#: src/pages/Auth/Set-Password.tsx:106 +#: src/components/forms/AuthenticationForm.tsx:115 +#: src/components/forms/AuthenticationForm.tsx:243 +#: src/pages/Auth/Set-Password.tsx:101 msgid "Password" -msgstr "" +msgstr "Kata Sandi" -#: src/components/forms/AuthenticationForm.tsx:113 -#: src/components/forms/AuthenticationForm.tsx:241 +#: src/components/forms/AuthenticationForm.tsx:116 +#: src/components/forms/AuthenticationForm.tsx:244 msgid "Your password" -msgstr "" +msgstr "Kata Sandi Anda" -#: src/components/forms/AuthenticationForm.tsx:125 +#: src/components/forms/AuthenticationForm.tsx:128 #: src/pages/Auth/Reset.tsx:26 msgid "Reset password" -msgstr "" +msgstr "Reset Kata Sandi" #: src/components/forms/AuthenticationForm.tsx:131 #~ msgid "Log in" #~ msgstr "Log in" -#: src/components/forms/AuthenticationForm.tsx:134 -#: src/components/forms/AuthenticationForm.tsx:233 -#: src/pages/Auth/Reset.tsx:31 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:51 -msgid "Email" -msgstr "" - -#: src/components/forms/AuthenticationForm.tsx:135 -#: src/pages/Auth/Reset.tsx:32 -#: src/pages/Auth/Set-Password.tsx:107 -msgid "We will send you a link to login - if you are registered" -msgstr "" - #: src/components/forms/AuthenticationForm.tsx:136 #~ msgid "I will use username and password" #~ msgstr "I will use username and password" -#: src/components/forms/AuthenticationForm.tsx:151 +#: src/components/forms/AuthenticationForm.tsx:137 +#: src/components/forms/AuthenticationForm.tsx:236 +#: src/pages/Auth/Reset.tsx:31 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:51 +msgid "Email" +msgstr "Surel" + +#: src/components/forms/AuthenticationForm.tsx:138 +#: src/pages/Auth/Reset.tsx:32 +#: src/pages/Auth/Set-Password.tsx:102 +msgid "We will send you a link to login - if you are registered" +msgstr "" + +#: src/components/forms/AuthenticationForm.tsx:154 msgid "Send me an email" -msgstr "" +msgstr "Kirimkan pada saya sebuah surel" -#: src/components/forms/AuthenticationForm.tsx:153 +#: src/components/forms/AuthenticationForm.tsx:156 msgid "Use username and password" -msgstr "" +msgstr "Gunakan Nama Pengguna dan Kata Sandi" -#: src/components/forms/AuthenticationForm.tsx:162 +#: src/components/forms/AuthenticationForm.tsx:165 msgid "Log In" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:164 +#: src/components/forms/AuthenticationForm.tsx:167 +#: src/pages/Auth/Reset.tsx:41 +#: src/pages/Auth/Set-Password.tsx:107 msgid "Send Email" -msgstr "" +msgstr "Kirim Surel" -#: src/components/forms/AuthenticationForm.tsx:193 +#: src/components/forms/AuthenticationForm.tsx:196 msgid "Registration successful" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:194 +#: src/components/forms/AuthenticationForm.tsx:197 msgid "Please confirm your email address to complete the registration" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:210 +#: src/components/forms/AuthenticationForm.tsx:213 msgid "Input error" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:234 +#: src/components/forms/AuthenticationForm.tsx:237 msgid "This will be used for a confirmation" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:246 +#: src/components/forms/AuthenticationForm.tsx:249 msgid "Password repeat" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:247 +#: src/components/forms/AuthenticationForm.tsx:250 msgid "Repeat password" -msgstr "" +msgstr "Ulangi kata sandi" -#: src/components/forms/AuthenticationForm.tsx:259 -#: src/components/forms/AuthenticationForm.tsx:304 +#: src/components/forms/AuthenticationForm.tsx:262 +#: src/components/forms/AuthenticationForm.tsx:307 msgid "Register" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:265 +#: src/components/forms/AuthenticationForm.tsx:268 msgid "Or use SSO" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:296 +#: src/components/forms/AuthenticationForm.tsx:299 msgid "Don't have an account?" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:315 +#: src/components/forms/AuthenticationForm.tsx:318 msgid "Go back to login" msgstr "" @@ -588,22 +896,23 @@ msgstr "" #: src/components/forms/HostOptionsForm.tsx:42 #: src/components/forms/HostOptionsForm.tsx:70 +#: src/components/plugins/PluginDrawer.tsx:69 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:410 +#: src/pages/Index/Settings/AdminCenter/UnitManagmentPanel.tsx:19 #: src/pages/part/CategoryDetail.tsx:81 -#: src/pages/part/PartDetail.tsx:143 -#: src/pages/stock/LocationDetail.tsx:89 -#: src/tables/machine/MachineTypeTable.tsx:65 -#: src/tables/machine/MachineTypeTable.tsx:109 -#: src/tables/machine/MachineTypeTable.tsx:216 -#: src/tables/machine/MachineTypeTable.tsx:319 +#: src/pages/part/PartDetail.tsx:164 +#: src/pages/stock/LocationDetail.tsx:83 +#: src/tables/machine/MachineTypeTable.tsx:70 +#: src/tables/machine/MachineTypeTable.tsx:119 +#: src/tables/machine/MachineTypeTable.tsx:237 +#: src/tables/machine/MachineTypeTable.tsx:340 #: src/tables/plugin/PluginErrorTable.tsx:33 -#: src/tables/plugin/PluginListTable.tsx:126 #: src/tables/purchasing/ManufacturerPartParameterTable.tsx:32 #: src/tables/settings/GroupTable.tsx:147 -#: src/tables/settings/PendingTasksTable.tsx:28 +#: src/tables/settings/PendingTasksTable.tsx:32 #: src/tables/stock/LocationTypesTable.tsx:69 msgid "Name" -msgstr "" +msgstr "Nama" #: src/components/forms/HostOptionsForm.tsx:75 msgid "No one here..." @@ -615,7 +924,7 @@ msgstr "" #: src/components/forms/HostOptionsForm.tsx:90 msgid "Save" -msgstr "" +msgstr "Simpan" #: src/components/forms/InstanceOptions.tsx:43 msgid "Select destination instance" @@ -627,15 +936,15 @@ msgstr "" #: src/components/forms/InstanceOptions.tsx:98 msgid "Version: {0}" -msgstr "" +msgstr "Versi: {0}" #: src/components/forms/InstanceOptions.tsx:100 msgid "API:{0}" -msgstr "" +msgstr "API:{0}" #: src/components/forms/InstanceOptions.tsx:102 msgid "Name: {0}" -msgstr "" +msgstr "Nama: {0}" #: src/components/forms/InstanceOptions.tsx:104 msgid "State: <0>worker ({0}), <1>plugins{1}" @@ -647,17 +956,17 @@ msgstr "" #: src/components/forms/fields/IconField.tsx:159 msgid "Uncategorized" -msgstr "" +msgstr "Tidak terkategori" #: src/components/forms/fields/IconField.tsx:209 -#: src/components/nav/Layout.tsx:70 +#: src/components/nav/Layout.tsx:77 #: src/tables/part/PartThumbTable.tsx:192 msgid "Search..." -msgstr "" +msgstr "Cari..." #: src/components/forms/fields/IconField.tsx:223 msgid "Select category" -msgstr "" +msgstr "Pilih Kategori" #: src/components/forms/fields/IconField.tsx:232 msgid "Select pack" @@ -665,30 +974,29 @@ msgstr "" #: src/components/forms/fields/IconField.tsx:237 msgid "{0} icons" -msgstr "" - -#: src/components/forms/fields/RelatedModelField.tsx:318 -#: src/pages/Index/Settings/UserSettings.tsx:96 -#: src/tables/Search.tsx:23 -msgid "Search" -msgstr "" +msgstr "{0} icon" #: src/components/forms/fields/RelatedModelField.tsx:319 +#: src/pages/Index/Settings/UserSettings.tsx:97 +#: src/tables/Search.tsx:23 +msgid "Search" +msgstr "Cari" + +#: src/components/forms/fields/RelatedModelField.tsx:320 #: src/components/modals/AboutInvenTreeModal.tsx:81 -#: src/components/widgets/WidgetLayout.tsx:120 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:316 msgid "Loading" -msgstr "" +msgstr "Memuat" -#: src/components/forms/fields/RelatedModelField.tsx:321 +#: src/components/forms/fields/RelatedModelField.tsx:322 msgid "No results found" -msgstr "" +msgstr "Tidak ada hasil yang ditemukan" -#: src/components/forms/fields/TableField.tsx:52 -msgid "modelRenderer entry required for tables" -msgstr "" +#: src/components/forms/fields/TableField.tsx:72 +#~ msgid "modelRenderer entry required for tables" +#~ msgstr "modelRenderer entry required for tables" -#: src/components/forms/fields/TableField.tsx:76 +#: src/components/forms/fields/TableField.tsx:167 msgid "No entries available" msgstr "" @@ -714,15 +1022,15 @@ msgstr "" #: src/components/importer/ImportDataSelector.tsx:209 msgid "Edit Data" -msgstr "" +msgstr "Ubah Data" #: src/components/importer/ImportDataSelector.tsx:237 msgid "Delete Row" -msgstr "" +msgstr "Hapus baris" #: src/components/importer/ImportDataSelector.tsx:267 msgid "Row" -msgstr "" +msgstr "Baris" #: src/components/importer/ImportDataSelector.tsx:285 msgid "Row contains errors" @@ -730,7 +1038,7 @@ msgstr "" #: src/components/importer/ImportDataSelector.tsx:326 msgid "Accept" -msgstr "" +msgstr "Terima" #: src/components/importer/ImportDataSelector.tsx:359 msgid "Valid" @@ -741,28 +1049,29 @@ msgid "Filter by row validation status" msgstr "" #: src/components/importer/ImportDataSelector.tsx:365 -#: src/tables/build/BuildOutputTable.tsx:266 +#: src/tables/build/BuildOutputTable.tsx:407 msgid "Complete" -msgstr "" +msgstr "Lengkap" #: src/components/importer/ImportDataSelector.tsx:366 msgid "Filter by row completion status" msgstr "" -#: src/components/importer/ImportDataSelector.tsx:383 +#: src/components/importer/ImportDataSelector.tsx:384 msgid "Import selected rows" msgstr "" -#: src/components/importer/ImportDataSelector.tsx:398 +#: src/components/importer/ImportDataSelector.tsx:399 msgid "Processing Data" msgstr "" -#: src/components/importer/ImporterColumnSelector.tsx:50 -#: src/components/importer/ImporterColumnSelector.tsx:176 +#: src/components/importer/ImporterColumnSelector.tsx:53 +#: src/components/importer/ImporterColumnSelector.tsx:179 +#: src/components/items/ErrorItem.tsx:12 msgid "An error occurred" msgstr "" -#: src/components/importer/ImporterColumnSelector.tsx:62 +#: src/components/importer/ImporterColumnSelector.tsx:65 msgid "Select column, or leave blank to ignore this field." msgstr "" @@ -778,51 +1087,51 @@ msgstr "" #~ msgid "Imported Column Name" #~ msgstr "Imported Column Name" -#: src/components/importer/ImporterColumnSelector.tsx:182 +#: src/components/importer/ImporterColumnSelector.tsx:185 msgid "Ignore this field" msgstr "" -#: src/components/importer/ImporterColumnSelector.tsx:196 +#: src/components/importer/ImporterColumnSelector.tsx:199 msgid "Mapping data columns to database fields" msgstr "" -#: src/components/importer/ImporterColumnSelector.tsx:201 +#: src/components/importer/ImporterColumnSelector.tsx:204 msgid "Accept Column Mapping" msgstr "" -#: src/components/importer/ImporterColumnSelector.tsx:214 +#: src/components/importer/ImporterColumnSelector.tsx:217 msgid "Database Field" msgstr "" -#: src/components/importer/ImporterColumnSelector.tsx:215 +#: src/components/importer/ImporterColumnSelector.tsx:218 msgid "Field Description" msgstr "" -#: src/components/importer/ImporterColumnSelector.tsx:216 +#: src/components/importer/ImporterColumnSelector.tsx:219 msgid "Imported Column" msgstr "" -#: src/components/importer/ImporterColumnSelector.tsx:217 +#: src/components/importer/ImporterColumnSelector.tsx:220 msgid "Default Value" msgstr "" -#: src/components/importer/ImporterDrawer.tsx:44 +#: src/components/importer/ImporterDrawer.tsx:46 msgid "Upload File" -msgstr "" +msgstr "Unggah berkas" -#: src/components/importer/ImporterDrawer.tsx:45 +#: src/components/importer/ImporterDrawer.tsx:47 msgid "Map Columns" msgstr "" -#: src/components/importer/ImporterDrawer.tsx:46 +#: src/components/importer/ImporterDrawer.tsx:48 msgid "Import Data" msgstr "" -#: src/components/importer/ImporterDrawer.tsx:47 +#: src/components/importer/ImporterDrawer.tsx:49 msgid "Process Data" msgstr "" -#: src/components/importer/ImporterDrawer.tsx:48 +#: src/components/importer/ImporterDrawer.tsx:50 msgid "Complete Import" msgstr "" @@ -830,28 +1139,28 @@ msgstr "" #~ msgid "Cancel import session" #~ msgstr "Cancel import session" -#: src/components/importer/ImporterDrawer.tsx:104 +#: src/components/importer/ImporterDrawer.tsx:106 msgid "Import Complete" msgstr "" -#: src/components/importer/ImporterDrawer.tsx:107 +#: src/components/importer/ImporterDrawer.tsx:109 msgid "Data has been imported successfully" msgstr "" -#: src/components/importer/ImporterDrawer.tsx:109 -#: src/components/importer/ImporterDrawer.tsx:118 +#: src/components/importer/ImporterDrawer.tsx:111 +#: src/components/importer/ImporterDrawer.tsx:120 msgid "Close" -msgstr "" +msgstr "Tutup" -#: src/components/importer/ImporterDrawer.tsx:115 +#: src/components/importer/ImporterDrawer.tsx:117 msgid "Unknown Status" -msgstr "" +msgstr "Status tidak diketahui" -#: src/components/importer/ImporterDrawer.tsx:116 +#: src/components/importer/ImporterDrawer.tsx:118 msgid "Import session has unknown status" msgstr "" -#: src/components/importer/ImporterDrawer.tsx:135 +#: src/components/importer/ImporterDrawer.tsx:137 msgid "Importing Data" msgstr "" @@ -860,93 +1169,123 @@ msgid "Importing Records" msgstr "" #: src/components/importer/ImporterImportProgress.tsx:39 -msgid "Imported rows" +#: src/tables/settings/ImportSessionTable.tsx:78 +msgid "Imported Rows" msgstr "" -#: src/components/items/ActionDropdown.tsx:121 +#: src/components/importer/ImporterImportProgress.tsx:39 +#~ msgid "Imported rows" +#~ msgstr "Imported rows" + +#: src/components/items/ActionDropdown.tsx:126 +msgid "Options" +msgstr "Pilihan" + +#: src/components/items/ActionDropdown.tsx:140 +#~ msgid "View Barcode" +#~ msgstr "View Barcode" + +#: src/components/items/ActionDropdown.tsx:162 +#: src/tables/InvenTreeTableHeader.tsx:159 +#: src/tables/InvenTreeTableHeader.tsx:160 msgid "Barcode Actions" msgstr "" -#: src/components/items/ActionDropdown.tsx:140 -msgid "View Barcode" -msgstr "" +#: src/components/items/ActionDropdown.tsx:162 +#~ msgid "Link custom barcode" +#~ msgstr "Link custom barcode" -#: src/components/items/ActionDropdown.tsx:147 +#: src/components/items/ActionDropdown.tsx:167 msgid "View" msgstr "" -#: src/components/items/ActionDropdown.tsx:148 +#: src/components/items/ActionDropdown.tsx:169 msgid "View barcode" -msgstr "" +msgstr "Lihat Barcode" -#: src/components/items/ActionDropdown.tsx:161 +#: src/components/items/ActionDropdown.tsx:175 msgid "Link Barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:162 -msgid "Link custom barcode" -msgstr "" - -#: src/components/items/ActionDropdown.tsx:173 -#: src/forms/PurchaseOrderForms.tsx:426 -msgid "Unlink Barcode" -msgstr "" - -#: src/components/items/ActionDropdown.tsx:174 -msgid "Unlink custom barcode" +#: src/components/items/ActionDropdown.tsx:177 +msgid "Link a custom barcode to this item" msgstr "" #: src/components/items/ActionDropdown.tsx:183 -#: src/tables/RowActions.tsx:33 +#: src/components/items/QRCode.tsx:193 +#: src/forms/PurchaseOrderForms.tsx:464 +msgid "Unlink Barcode" +msgstr "" + +#: src/components/items/ActionDropdown.tsx:185 +msgid "Unlink custom barcode" +msgstr "" + +#: src/components/items/ActionDropdown.tsx:236 +#: src/tables/RowActions.tsx:39 msgid "Edit" -msgstr "" +msgstr "Sunting" -#: src/components/items/ActionDropdown.tsx:184 +#: src/components/items/ActionDropdown.tsx:237 msgid "Edit item" -msgstr "" +msgstr "Sunting Item" -#: src/components/items/ActionDropdown.tsx:196 +#: src/components/items/ActionDropdown.tsx:249 msgid "Delete item" -msgstr "" +msgstr "Hapus item" -#: src/components/items/ActionDropdown.tsx:204 -#: src/components/items/ActionDropdown.tsx:205 +#: src/components/items/ActionDropdown.tsx:257 +#: src/components/items/ActionDropdown.tsx:258 msgid "Hold" -msgstr "" +msgstr "Tahan" -#: src/components/items/ActionDropdown.tsx:227 -#: src/tables/RowActions.tsx:23 +#: src/components/items/ActionDropdown.tsx:280 +#: src/tables/RowActions.tsx:29 msgid "Duplicate" msgstr "" -#: src/components/items/ActionDropdown.tsx:228 +#: src/components/items/ActionDropdown.tsx:281 msgid "Duplicate item" msgstr "" +#: src/components/items/BarcodeInput.tsx:23 +msgid "Scan barcode data here using barcode scanner" +msgstr "" + +#: src/components/items/BarcodeInput.tsx:24 +#: src/tables/settings/BarcodeScanHistoryTable.tsx:65 +msgid "Barcode" +msgstr "" + +#: src/components/items/BarcodeInput.tsx:25 +msgid "Scan" +msgstr "Pindai" + #: src/components/items/DocTooltip.tsx:92 +#: src/components/items/GettingStartedCarousel.tsx:20 msgid "Read More" msgstr "" -#: src/components/items/ErrorItem.tsx:5 -#: src/tables/InvenTreeTable.tsx:487 +#: src/components/items/ErrorItem.tsx:8 +#: src/tables/InvenTreeTable.tsx:473 msgid "Unknown error" msgstr "" -#: src/components/items/ErrorItem.tsx:10 -msgid "An error occurred:" -msgstr "" +#: src/components/items/ErrorItem.tsx:13 +#~ msgid "An error occurred:" +#~ msgstr "An error occurred:" #: src/components/items/GettingStartedCarousel.tsx:27 -msgid "Read more" -msgstr "" +#~ msgid "Read more" +#~ msgstr "Read more" #: src/components/items/InfoItem.tsx:27 msgid "None" -msgstr "" +msgstr "Tidak ada" #: src/components/items/InvenTreeLogo.tsx:23 msgid "InvenTree Logo" -msgstr "" +msgstr "InvenTree " #: src/components/items/OnlyStaff.tsx:9 #: src/components/modals/AboutInvenTreeModal.tsx:44 @@ -965,33 +1304,54 @@ msgstr "" msgid "This panel is a placeholder." msgstr "" -#: src/components/items/QRCode.tsx:87 +#: src/components/items/QRCode.tsx:89 msgid "Low (7%)" -msgstr "" +msgstr "Low(7%)" -#: src/components/items/QRCode.tsx:88 +#: src/components/items/QRCode.tsx:90 msgid "Medium (15%)" msgstr "" -#: src/components/items/QRCode.tsx:89 +#: src/components/items/QRCode.tsx:91 msgid "Quartile (25%)" msgstr "" -#: src/components/items/QRCode.tsx:90 +#: src/components/items/QRCode.tsx:92 msgid "High (30%)" msgstr "" -#: src/components/items/QRCode.tsx:107 -msgid "Barcode Data:" +#: src/components/items/QRCode.tsx:100 +msgid "Custom barcode" +msgstr "" + +#: src/components/items/QRCode.tsx:101 +msgid "A custom barcode is registered for this item. The shown code is not that custom barcode." msgstr "" #: src/components/items/QRCode.tsx:118 +msgid "Barcode Data:" +msgstr "" + +#: src/components/items/QRCode.tsx:129 msgid "Select Error Correction Level" msgstr "" +#: src/components/items/QRCode.tsx:171 +#: src/pages/part/PartDetail.tsx:239 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:187 +#: src/pages/sales/ReturnOrderDetail.tsx:157 +#: src/pages/sales/SalesOrderDetail.tsx:169 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:166 +msgid "Link" +msgstr "Tautan" + +#: src/components/items/QRCode.tsx:190 +msgid "This will remove the link to the associated barcode" +msgstr "" + #: src/components/modals/AboutInvenTreeModal.tsx:99 msgid "Version Information" -msgstr "" +msgstr "Informasi Versi" #: src/components/modals/AboutInvenTreeModal.tsx:103 msgid "Your InvenTree version status is" @@ -1003,15 +1363,15 @@ msgstr "" #: src/components/modals/AboutInvenTreeModal.tsx:111 msgid "Up to Date" -msgstr "" +msgstr "Terbaru" #: src/components/modals/AboutInvenTreeModal.tsx:115 msgid "Update Available" -msgstr "" +msgstr "Pembaruan tersedia" #: src/components/modals/AboutInvenTreeModal.tsx:125 msgid "InvenTree Version" -msgstr "" +msgstr "Versi InvenTree" #: src/components/modals/AboutInvenTreeModal.tsx:131 msgid "Commit Hash" @@ -1028,23 +1388,23 @@ msgstr "" #: src/components/modals/AboutInvenTreeModal.tsx:146 #: src/components/modals/ServerInfoModal.tsx:133 msgid "API Version" -msgstr "" +msgstr "Versi API" #: src/components/modals/AboutInvenTreeModal.tsx:149 msgid "Python Version" -msgstr "" +msgstr "Versi Python" #: src/components/modals/AboutInvenTreeModal.tsx:152 msgid "Django Version" -msgstr "" +msgstr "Versi Django" #: src/components/modals/AboutInvenTreeModal.tsx:162 msgid "Links" -msgstr "" +msgstr "Tautan" #: src/components/modals/AboutInvenTreeModal.tsx:168 msgid "InvenTree Documentation" -msgstr "" +msgstr "Dokumentasi InvenTree" #: src/components/modals/AboutInvenTreeModal.tsx:169 msgid "View Code on GitHub" @@ -1056,17 +1416,17 @@ msgstr "" #: src/components/modals/AboutInvenTreeModal.tsx:171 msgid "Mobile App" -msgstr "" +msgstr "Aplikasi Seluler" #: src/components/modals/AboutInvenTreeModal.tsx:172 msgid "Submit Bug Report" msgstr "" -#: src/components/modals/AboutInvenTreeModal.tsx:183 +#: src/components/modals/AboutInvenTreeModal.tsx:181 msgid "Copy version information" msgstr "" -#: src/components/modals/AboutInvenTreeModal.tsx:192 +#: src/components/modals/AboutInvenTreeModal.tsx:189 #: src/components/modals/ServerInfoModal.tsx:147 msgid "Dismiss" msgstr "" @@ -1091,61 +1451,20 @@ msgstr "" msgid "{key} Packages" msgstr "" -#: src/components/modals/QrCodeModal.tsx:72 +#: src/components/modals/QrCodeModal.tsx:24 msgid "Unknown response" msgstr "" -#: src/components/modals/QrCodeModal.tsx:102 -#: src/pages/Index/Scan.tsx:636 -msgid "Error while getting camera" -msgstr "" - -#: src/components/modals/QrCodeModal.tsx:125 -#: src/pages/Index/Scan.tsx:659 -msgid "Error while scanning" -msgstr "" - -#: src/components/modals/QrCodeModal.tsx:139 -#: src/pages/Index/Scan.tsx:673 -msgid "Error while stopping" -msgstr "" - -#: src/components/modals/QrCodeModal.tsx:154 -#: src/defaults/menuItems.tsx:21 -#: src/pages/Index/Scan.tsx:746 -msgid "Scanning" -msgstr "" - -#: src/components/modals/QrCodeModal.tsx:154 -#: src/pages/Index/Scan.tsx:746 -msgid "Not scanning" -msgstr "" - -#: src/components/modals/QrCodeModal.tsx:159 -#: src/pages/Index/Scan.tsx:752 -msgid "Select Camera" -msgstr "" - -#: src/components/modals/QrCodeModal.tsx:169 -#: src/pages/Index/Scan.tsx:737 -msgid "Start scanning" -msgstr "" - -#: src/components/modals/QrCodeModal.tsx:176 -#: src/pages/Index/Scan.tsx:729 -msgid "Stop scanning" -msgstr "" - -#: src/components/modals/QrCodeModal.tsx:181 +#: src/components/modals/QrCodeModal.tsx:39 msgid "No scans yet!" msgstr "" -#: src/components/modals/QrCodeModal.tsx:201 +#: src/components/modals/QrCodeModal.tsx:57 msgid "Close modal" msgstr "" #: src/components/modals/ServerInfoModal.tsx:26 -#: src/pages/Index/Settings/SystemSettings.tsx:38 +#: src/pages/Index/Settings/SystemSettings.tsx:37 msgid "Server" msgstr "" @@ -1155,7 +1474,7 @@ msgstr "" #: src/components/modals/ServerInfoModal.tsx:38 msgid "Database" -msgstr "" +msgstr "Basis Data" #: src/components/modals/ServerInfoModal.tsx:38 #~ msgid "Bebug Mode" @@ -1206,28 +1525,29 @@ msgid "Background Worker" msgstr "" #: src/components/modals/ServerInfoModal.tsx:101 +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:29 msgid "Background worker not running" msgstr "" #: src/components/modals/ServerInfoModal.tsx:109 msgid "Email Settings" -msgstr "" +msgstr "Pengaturan Surel" #: src/components/modals/ServerInfoModal.tsx:113 msgid "Email settings not configured" msgstr "" #: src/components/modals/ServerInfoModal.tsx:121 -#: src/tables/plugin/PluginListTable.tsx:144 -#: src/tables/plugin/PluginListTable.tsx:294 +#: src/components/plugins/PluginDrawer.tsx:89 +#: src/tables/plugin/PluginListTable.tsx:116 msgid "Version" -msgstr "" +msgstr "Versi" #: src/components/modals/ServerInfoModal.tsx:127 msgid "Server Version" -msgstr "" +msgstr "Versi Server" -#: src/components/nav/Layout.tsx:73 +#: src/components/nav/Layout.tsx:80 msgid "Nothing found..." msgstr "" @@ -1237,20 +1557,28 @@ msgstr "" #~ msgstr "Profile" #: src/components/nav/MainMenu.tsx:52 +#: src/components/nav/NavigationDrawer.tsx:178 #: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:28 msgid "Settings" +msgstr "Pengaturan" + +#: src/components/nav/MainMenu.tsx:59 +#: src/pages/Index/Settings/UserSettings.tsx:152 +msgid "Account Settings" msgstr "" #: src/components/nav/MainMenu.tsx:59 #: src/defaults/menuItems.tsx:15 -msgid "Account settings" -msgstr "" +#~ msgid "Account settings" +#~ msgstr "Account settings" #: src/components/nav/MainMenu.tsx:67 -#: src/defaults/menuItems.tsx:58 -#: src/pages/Index/Settings/SystemSettings.tsx:315 +#: src/components/nav/NavigationDrawer.tsx:141 +#: src/components/nav/SettingsHeader.tsx:49 +#: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:37 +#: src/pages/Index/Settings/SystemSettings.tsx:310 msgid "System Settings" -msgstr "" +msgstr "Pengaturan Sistem" #: src/components/nav/MainMenu.tsx:68 #~ msgid "Current language {locale}" @@ -1260,14 +1588,11 @@ msgstr "" #~ msgid "Switch to pseudo language" #~ msgstr "Switch to pseudo language" -#: src/components/nav/MainMenu.tsx:77 -msgid "Change Color Mode" -msgstr "" - #: src/components/nav/MainMenu.tsx:86 -#: src/defaults/actions.tsx:71 -#: src/defaults/menuItems.tsx:63 -#: src/pages/Index/Settings/AdminCenter/Index.tsx:221 +#: src/components/nav/NavigationDrawer.tsx:148 +#: src/components/nav/SettingsHeader.tsx:50 +#: src/defaults/actions.tsx:63 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:251 msgid "Admin Center" msgstr "" @@ -1275,502 +1600,775 @@ msgstr "" msgid "Logout" msgstr "" -#: src/components/nav/NavHoverMenu.tsx:65 -#: src/defaults/actions.tsx:60 -msgid "Open Navigation" -msgstr "" - #: src/components/nav/NavHoverMenu.tsx:84 -msgid "View all" -msgstr "" +#~ msgid "View all" +#~ msgstr "View all" #: src/components/nav/NavHoverMenu.tsx:100 #: src/components/nav/NavHoverMenu.tsx:110 -msgid "Get started" -msgstr "" +#~ msgid "Get started" +#~ msgstr "Get started" #: src/components/nav/NavHoverMenu.tsx:103 -msgid "Overview over high-level objects, functions and possible usecases." -msgstr "" - -#: src/components/nav/NavigationDrawer.tsx:57 -msgid "Navigation" -msgstr "" +#~ msgid "Overview over high-level objects, functions and possible usecases." +#~ msgstr "Overview over high-level objects, functions and possible usecases." #: src/components/nav/NavigationDrawer.tsx:60 -msgid "Pages" +#~ msgid "Pages" +#~ msgstr "Pages" + +#: src/components/nav/NavigationDrawer.tsx:77 +#: src/components/render/ModelType.tsx:31 +#: src/defaults/links.tsx:10 +#: src/pages/Index/Settings/SystemSettings.tsx:172 +#: src/pages/part/CategoryDetail.tsx:125 +#: src/pages/part/CategoryDetail.tsx:249 +#: src/pages/part/CategoryDetail.tsx:279 +#: src/pages/part/PartDetail.tsx:856 +msgid "Parts" msgstr "" -#: src/components/nav/NavigationDrawer.tsx:65 -#: src/pages/Index/Settings/AdminCenter/Index.tsx:176 -#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:41 -msgid "Plugins" +#: src/components/nav/NavigationDrawer.tsx:84 +#: src/components/render/Part.tsx:30 +#: src/defaults/links.tsx:11 +#: src/pages/Index/Settings/SystemSettings.tsx:205 +#: src/pages/part/PartDetail.tsx:593 +#: src/pages/stock/LocationDetail.tsx:352 +#: src/pages/stock/StockDetail.tsx:528 +#: src/tables/stock/StockItemTable.tsx:69 +msgid "Stock" +msgstr "Persediaan" + +#: src/components/nav/NavigationDrawer.tsx:91 +#: src/defaults/links.tsx:13 +#: src/pages/build/BuildDetail.tsx:530 +#: src/pages/build/BuildIndex.tsx:36 +msgid "Manufacturing" msgstr "" -#: src/components/nav/NavigationDrawer.tsx:75 -#: src/defaults/actions.tsx:32 -msgid "Documentation" +#: src/components/nav/NavigationDrawer.tsx:98 +#: src/defaults/links.tsx:18 +#: src/pages/company/ManufacturerDetail.tsx:9 +#: src/pages/company/ManufacturerPartDetail.tsx:258 +#: src/pages/company/SupplierDetail.tsx:9 +#: src/pages/company/SupplierPartDetail.tsx:336 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:480 +#: src/pages/purchasing/PurchasingIndex.tsx:60 +msgid "Purchasing" msgstr "" -#: src/components/nav/NavigationDrawer.tsx:78 -msgid "About" -msgstr "" +#: src/components/nav/NavigationDrawer.tsx:105 +#: src/defaults/links.tsx:22 +#: src/pages/company/CustomerDetail.tsx:9 +#: src/pages/sales/ReturnOrderDetail.tsx:469 +#: src/pages/sales/SalesIndex.tsx:53 +#: src/pages/sales/SalesOrderDetail.tsx:520 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:343 +msgid "Sales" +msgstr "Penjualan" -#: src/components/nav/NotificationDrawer.tsx:92 -#: src/pages/Index/Settings/SystemSettings.tsx:109 -#: src/pages/Index/Settings/UserSettings.tsx:126 +#: src/components/nav/NavigationDrawer.tsx:129 +#: src/components/nav/NotificationDrawer.tsx:178 +#: src/pages/Index/Settings/SystemSettings.tsx:110 +#: src/pages/Index/Settings/UserSettings.tsx:127 #: src/pages/Notifications.tsx:65 #: src/pages/Notifications.tsx:151 msgid "Notifications" +msgstr "Notifikasi" + +#: src/components/nav/NavigationDrawer.tsx:135 +#: src/components/nav/SettingsHeader.tsx:48 +msgid "User Settings" msgstr "" -#: src/components/nav/NotificationDrawer.tsx:94 +#: src/components/nav/NavigationDrawer.tsx:173 +msgid "Navigation" +msgstr "" + +#: src/components/nav/NavigationDrawer.tsx:183 +#: src/forms/PurchaseOrderForms.tsx:689 +#: src/forms/StockForms.tsx:614 +#: src/forms/StockForms.tsx:651 +#: src/forms/StockForms.tsx:677 +#: src/forms/StockForms.tsx:705 +#: src/forms/StockForms.tsx:736 +#: src/forms/StockForms.tsx:771 +#: src/forms/StockForms.tsx:813 +#: src/forms/StockForms.tsx:851 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:413 +#: src/tables/RowActions.tsx:129 +#: src/tables/build/BuildLineTable.tsx:101 +msgid "Actions" +msgstr "" + +#: src/components/nav/NavigationDrawer.tsx:191 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:205 +#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:44 +msgid "Plugins" +msgstr "" + +#: src/components/nav/NavigationDrawer.tsx:204 +#: src/defaults/actions.tsx:24 +msgid "Documentation" +msgstr "Dokumentasi" + +#: src/components/nav/NavigationDrawer.tsx:210 +msgid "About" +msgstr "Tentang" + +#: src/components/nav/NotificationDrawer.tsx:180 msgid "Mark all as read" msgstr "" -#: src/components/nav/NotificationDrawer.tsx:104 +#: src/components/nav/NotificationDrawer.tsx:190 msgid "View all notifications" -msgstr "" +msgstr "Lihat semua notifikasi" -#: src/components/nav/NotificationDrawer.tsx:123 +#: src/components/nav/NotificationDrawer.tsx:210 msgid "You have no unread notifications." msgstr "" -#: src/components/nav/NotificationDrawer.tsx:139 -#: src/components/nav/NotificationDrawer.tsx:145 -#: src/tables/notifications/NotificationsTable.tsx:36 -msgid "Notification" -msgstr "" - -#: src/components/nav/NotificationDrawer.tsx:168 -#: src/pages/Notifications.tsx:73 -msgid "Mark as read" -msgstr "" - -#: src/components/nav/SearchDrawer.tsx:78 +#: src/components/nav/SearchDrawer.tsx:85 msgid "results" msgstr "" -#: src/components/nav/SearchDrawer.tsx:370 +#: src/components/nav/SearchDrawer.tsx:380 msgid "Enter search text" msgstr "" -#: src/components/nav/SearchDrawer.tsx:397 +#: src/components/nav/SearchDrawer.tsx:391 +msgid "Refresh search results" +msgstr "" + +#: src/components/nav/SearchDrawer.tsx:402 +#: src/components/nav/SearchDrawer.tsx:409 msgid "Search Options" msgstr "" -#: src/components/nav/SearchDrawer.tsx:400 +#: src/components/nav/SearchDrawer.tsx:412 msgid "Regex search" msgstr "" -#: src/components/nav/SearchDrawer.tsx:410 +#: src/components/nav/SearchDrawer.tsx:421 msgid "Whole word search" msgstr "" -#: src/components/nav/SearchDrawer.tsx:451 +#: src/components/nav/SearchDrawer.tsx:461 msgid "An error occurred during search query" msgstr "" #: src/components/nav/SearchDrawer.tsx:462 -msgid "No results" -msgstr "" +#~ msgid "No results" +#~ msgstr "No results" -#: src/components/nav/SearchDrawer.tsx:465 +#: src/components/nav/SearchDrawer.tsx:472 +#: src/tables/part/PartTestTemplateTable.tsx:76 +msgid "No Results" +msgstr "Tidak ada hasil" + +#: src/components/nav/SearchDrawer.tsx:475 msgid "No results available for search query" msgstr "" -#: src/components/render/Instance.tsx:217 -msgid "Unknown model: {model}" +#: src/components/panels/AttachmentPanel.tsx:18 +msgid "Attachments" msgstr "" -#: src/components/render/ModelType.tsx:22 -#: src/forms/BuildForms.tsx:213 -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/forms/StockForms.tsx:499 -#: src/forms/StockForms.tsx:533 -#: src/forms/StockForms.tsx:562 -#: src/forms/StockForms.tsx:590 -#: src/forms/StockForms.tsx:621 -#: src/forms/StockForms.tsx:656 -#: src/forms/StockForms.tsx:698 -#: src/forms/StockForms.tsx:734 -#: src/pages/build/BuildDetail.tsx:95 -#: src/pages/part/PartDetail.tsx:1073 -#: src/tables/build/BuildAllocatedStockTable.tsx:82 +#: src/components/panels/NotesPanel.tsx:24 +#: src/tables/build/BuildOrderTestTable.tsx:143 +#: src/tables/stock/StockTrackingTable.tsx:204 +msgid "Notes" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:47 +msgid "Plugin Inactive" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:50 +msgid "Plugin is not active" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:60 +msgid "Plugin Information" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:74 +#: src/pages/build/BuildDetail.tsx:116 +#: src/pages/company/CompanyDetail.tsx:89 +#: src/pages/company/ManufacturerPartDetail.tsx:89 +#: src/pages/company/ManufacturerPartDetail.tsx:116 +#: src/pages/company/SupplierPartDetail.tsx:140 +#: src/pages/part/CategoryDetail.tsx:101 +#: src/pages/part/PartDetail.tsx:178 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:136 +#: src/pages/sales/ReturnOrderDetail.tsx:107 +#: src/pages/sales/SalesOrderDetail.tsx:116 +#: src/pages/stock/LocationDetail.tsx:103 +#: src/tables/ColumnRenderers.tsx:92 +#: src/tables/bom/UsedInTable.tsx:44 +#: src/tables/build/BuildAllocatedStockTable.tsx:83 +#: src/tables/build/BuildLineTable.tsx:329 +#: src/tables/machine/MachineTypeTable.tsx:74 +#: src/tables/machine/MachineTypeTable.tsx:129 +#: src/tables/machine/MachineTypeTable.tsx:240 +#: src/tables/machine/MachineTypeTable.tsx:344 +#: src/tables/part/RelatedPartTable.tsx:66 +#: src/tables/plugin/PluginListTable.tsx:99 +#: src/tables/sales/SalesOrderAllocationTable.tsx:87 +#: src/tables/sales/SalesOrderLineItemTable.tsx:75 +#: src/tables/stock/LocationTypesTable.tsx:74 +msgid "Description" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:79 +msgid "Author" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:84 +#: src/pages/part/PartSchedulingDetail.tsx:277 +#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:40 +#: src/pages/part/pricing/SaleHistoryPanel.tsx:38 +#: src/tables/ColumnRenderers.tsx:215 +#: src/tables/build/BuildOrderTestTable.tsx:151 +#: src/tables/settings/StocktakeReportTable.tsx:40 +msgid "Date" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:94 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:398 +#: src/pages/part/PartDetail.tsx:331 +#: src/tables/bom/UsedInTable.tsx:84 +#: src/tables/company/CompanyTable.tsx:62 +#: src/tables/company/CompanyTable.tsx:96 +#: src/tables/machine/MachineListTable.tsx:333 +#: src/tables/machine/MachineListTable.tsx:605 +#: src/tables/part/ParametricPartTable.tsx:223 +#: src/tables/part/PartTable.tsx:178 +#: src/tables/part/PartVariantTable.tsx:15 +#: src/tables/plugin/PluginListTable.tsx:94 +#: src/tables/plugin/PluginListTable.tsx:401 +#: src/tables/purchasing/SupplierPartTable.tsx:100 +#: src/tables/purchasing/SupplierPartTable.tsx:190 +#: src/tables/settings/UserTable.tsx:283 +#: src/tables/stock/StockItemTable.tsx:293 +msgid "Active" +msgstr "Aktif" + +#: src/components/plugins/PluginDrawer.tsx:106 +msgid "Package Name" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:112 +msgid "Installation Path" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:117 +#: src/tables/machine/MachineTypeTable.tsx:152 +#: src/tables/machine/MachineTypeTable.tsx:276 +#: src/tables/plugin/PluginListTable.tsx:406 +msgid "Builtin" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:122 +msgid "Package" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:134 +#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:53 +msgid "Plugin Settings" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:146 +#: src/components/render/ModelType.tsx:276 +msgid "Plugin Configuration" +msgstr "" + +#: src/components/plugins/PluginPanel.tsx:87 +#~ msgid "Error occurred while rendering plugin content" +#~ msgstr "Error occurred while rendering plugin content" + +#: src/components/plugins/PluginPanel.tsx:91 +#~ msgid "Plugin did not provide panel rendering function" +#~ msgstr "Plugin did not provide panel rendering function" + +#: src/components/plugins/PluginPanel.tsx:103 +#~ msgid "No content provided for this plugin" +#~ msgstr "No content provided for this plugin" + +#: src/components/plugins/PluginPanel.tsx:116 +#: src/components/plugins/PluginSettingsPanel.tsx:76 +#~ msgid "Error Loading Plugin" +#~ msgstr "Error Loading Plugin" + +#: src/components/plugins/PluginSettingsPanel.tsx:51 +#~ msgid "Error occurred while rendering plugin settings" +#~ msgstr "Error occurred while rendering plugin settings" + +#: src/components/plugins/PluginSettingsPanel.tsx:55 +#~ msgid "Plugin did not provide settings rendering function" +#~ msgstr "Plugin did not provide settings rendering function" + +#: src/components/plugins/PluginUIFeature.tsx:100 +msgid "Error occurred while rendering the template editor." +msgstr "" + +#: src/components/plugins/PluginUIFeature.tsx:111 +msgid "Error Loading Plugin Editor" +msgstr "" + +#: src/components/plugins/PluginUIFeature.tsx:147 +msgid "Error occurred while rendering the template preview." +msgstr "" + +#: src/components/plugins/PluginUIFeature.tsx:158 +msgid "Error Loading Plugin Preview" +msgstr "" + +#: src/components/plugins/RemoteComponent.tsx:70 +msgid "Invalid source or function name" +msgstr "" + +#: src/components/plugins/RemoteComponent.tsx:91 +msgid "Error Loading Content" +msgstr "" + +#: src/components/plugins/RemoteComponent.tsx:95 +msgid "Error occurred while loading plugin content" +msgstr "" + +#: src/components/render/Instance.tsx:224 +msgid "Unknown model: {model}" +msgstr "Model Tidak diketahui: {model}" + +#: src/components/render/ModelType.tsx:30 +#: src/forms/BuildForms.tsx:269 +#: src/forms/BuildForms.tsx:337 +#: src/forms/BuildForms.tsx:385 +#: src/forms/BuildForms.tsx:515 +#: src/forms/PurchaseOrderForms.tsx:689 +#: src/forms/ReturnOrderForms.tsx:190 +#: src/forms/SalesOrderForms.tsx:248 +#: src/forms/StockForms.tsx:261 +#: src/forms/StockForms.tsx:614 +#: src/forms/StockForms.tsx:651 +#: src/forms/StockForms.tsx:677 +#: src/forms/StockForms.tsx:705 +#: src/forms/StockForms.tsx:736 +#: src/forms/StockForms.tsx:771 +#: src/forms/StockForms.tsx:813 +#: src/forms/StockForms.tsx:851 +#: src/pages/build/BuildDetail.tsx:90 +#: src/pages/part/PartDetail.tsx:1094 +#: src/tables/build/BuildAllocatedStockTable.tsx:95 +#: src/tables/build/BuildLineTable.tsx:72 #: src/tables/part/PartTable.tsx:28 -#: src/tables/part/RelatedPartTable.tsx:45 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:88 -#: src/tables/sales/SalesOrderAllocationTable.tsx:68 -#: src/tables/stock/StockTrackingTable.tsx:74 +#: src/tables/part/RelatedPartTable.tsx:47 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:130 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:100 +#: src/tables/sales/SalesOrderAllocationTable.tsx:99 +#: src/tables/stock/StockTrackingTable.tsx:78 msgid "Part" msgstr "" -#: src/components/render/ModelType.tsx:23 -#: src/defaults/links.tsx:29 -#: src/defaults/menuItems.tsx:33 -#: src/pages/Index/Settings/SystemSettings.tsx:173 -#: src/pages/part/CategoryDetail.tsx:119 -#: src/pages/part/CategoryDetail.tsx:244 -#: src/pages/part/CategoryDetail.tsx:274 -#: src/pages/part/PartDetail.tsx:827 -msgid "Parts" -msgstr "" - -#: src/components/render/ModelType.tsx:31 +#: src/components/render/ModelType.tsx:40 msgid "Part Parameter Template" msgstr "" -#: src/components/render/ModelType.tsx:32 +#: src/components/render/ModelType.tsx:41 msgid "Part Parameter Templates" msgstr "" -#: src/components/render/ModelType.tsx:38 +#: src/components/render/ModelType.tsx:48 msgid "Part Test Template" msgstr "" -#: src/components/render/ModelType.tsx:39 +#: src/components/render/ModelType.tsx:49 msgid "Part Test Templates" msgstr "" -#: src/components/render/ModelType.tsx:45 -#: src/pages/company/SupplierPartDetail.tsx:203 -#: src/pages/company/SupplierPartDetail.tsx:375 -#: src/pages/stock/StockDetail.tsx:173 -#: src/tables/build/BuildAllocatedStockTable.tsx:131 +#: src/components/render/ModelType.tsx:56 +#: src/pages/company/SupplierPartDetail.tsx:364 +#: src/pages/stock/StockDetail.tsx:194 +#: src/tables/build/BuildAllocatedStockTable.tsx:152 #: src/tables/part/PartPurchaseOrdersTable.tsx:49 -#: src/tables/purchasing/SupplierPartTable.tsx:68 +#: src/tables/purchasing/SupplierPartTable.tsx:70 +#: src/tables/stock/StockItemTable.tsx:229 msgid "Supplier Part" msgstr "" -#: src/components/render/ModelType.tsx:46 +#: src/components/render/ModelType.tsx:57 msgid "Supplier Parts" msgstr "" -#: src/components/render/ModelType.tsx:54 -#: src/pages/company/ManufacturerPartDetail.tsx:132 +#: src/components/render/ModelType.tsx:66 #: src/tables/part/PartPurchaseOrdersTable.tsx:55 +#: src/tables/stock/StockItemTable.tsx:234 msgid "Manufacturer Part" msgstr "" -#: src/components/render/ModelType.tsx:55 +#: src/components/render/ModelType.tsx:67 msgid "Manufacturer Parts" msgstr "" -#: src/components/render/ModelType.tsx:63 -#: src/pages/part/CategoryDetail.tsx:305 +#: src/components/render/ModelType.tsx:76 +#: src/pages/part/CategoryDetail.tsx:310 msgid "Part Category" msgstr "" -#: src/components/render/ModelType.tsx:64 -#: src/pages/part/CategoryDetail.tsx:258 -#: src/pages/part/CategoryDetail.tsx:296 -#: src/pages/part/PartDetail.tsx:1063 +#: src/components/render/ModelType.tsx:77 +#: src/pages/part/CategoryDetail.tsx:263 +#: src/pages/part/CategoryDetail.tsx:301 +#: src/pages/part/PartDetail.tsx:1084 msgid "Part Categories" msgstr "" -#: src/components/render/ModelType.tsx:72 -#: src/pages/stock/StockDetail.tsx:624 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:94 -#: src/tables/stock/StockTrackingTable.tsx:45 +#: src/components/render/ModelType.tsx:86 +#: src/forms/BuildForms.tsx:337 +#: src/forms/BuildForms.tsx:385 +#: src/forms/BuildForms.tsx:515 +#: src/forms/SalesOrderForms.tsx:248 +#: src/pages/stock/StockDetail.tsx:839 +#: src/tables/stock/StockTrackingTable.tsx:49 msgid "Stock Item" msgstr "" -#: src/components/render/ModelType.tsx:73 +#: src/components/render/ModelType.tsx:87 #: src/pages/company/CompanyDetail.tsx:203 -#: src/pages/stock/LocationDetail.tsx:128 -#: src/pages/stock/LocationDetail.tsx:181 -#: src/pages/stock/LocationDetail.tsx:395 +#: src/pages/part/PartStocktakeDetail.tsx:113 +#: src/pages/stock/LocationDetail.tsx:122 +#: src/pages/stock/LocationDetail.tsx:175 +#: src/pages/stock/LocationDetail.tsx:380 msgid "Stock Items" msgstr "" -#: src/components/render/ModelType.tsx:81 +#: src/components/render/ModelType.tsx:96 msgid "Stock Location" msgstr "" -#: src/components/render/ModelType.tsx:82 -#: src/pages/stock/LocationDetail.tsx:195 -#: src/pages/stock/LocationDetail.tsx:387 -#: src/pages/stock/StockDetail.tsx:616 +#: src/components/render/ModelType.tsx:97 +#: src/pages/stock/LocationDetail.tsx:189 +#: src/pages/stock/LocationDetail.tsx:372 +#: src/pages/stock/StockDetail.tsx:831 msgid "Stock Locations" msgstr "" -#: src/components/render/ModelType.tsx:90 +#: src/components/render/ModelType.tsx:106 msgid "Stock Location Type" msgstr "" -#: src/components/render/ModelType.tsx:91 +#: src/components/render/ModelType.tsx:107 msgid "Stock Location Types" msgstr "" -#: src/components/render/ModelType.tsx:95 +#: src/components/render/ModelType.tsx:112 +#: src/pages/part/PartDetail.tsx:712 msgid "Stock History" msgstr "" -#: src/components/render/ModelType.tsx:96 +#: src/components/render/ModelType.tsx:113 msgid "Stock Histories" msgstr "" -#: src/components/render/ModelType.tsx:100 -#: src/defaults/links.tsx:31 -#: src/defaults/menuItems.tsx:43 +#: src/components/render/ModelType.tsx:118 msgid "Build" msgstr "" -#: src/components/render/ModelType.tsx:101 +#: src/components/render/ModelType.tsx:119 msgid "Builds" msgstr "" -#: src/components/render/ModelType.tsx:109 +#: src/components/render/ModelType.tsx:128 msgid "Build Line" msgstr "" -#: src/components/render/ModelType.tsx:110 +#: src/components/render/ModelType.tsx:129 msgid "Build Lines" msgstr "" -#: src/components/render/ModelType.tsx:117 +#: src/components/render/ModelType.tsx:137 msgid "Build Item" msgstr "" -#: src/components/render/ModelType.tsx:118 +#: src/components/render/ModelType.tsx:138 msgid "Build Items" msgstr "" -#: src/components/render/ModelType.tsx:122 -#: src/pages/company/CompanyDetail.tsx:339 +#: src/components/render/ModelType.tsx:143 +#: src/pages/company/CompanyDetail.tsx:321 msgid "Company" -msgstr "" +msgstr "Perusahaan" -#: src/components/render/ModelType.tsx:123 +#: src/components/render/ModelType.tsx:144 msgid "Companies" -msgstr "" +msgstr "Perusahaan" -#: src/components/render/ModelType.tsx:131 +#: src/components/render/ModelType.tsx:153 +#: src/pages/build/BuildDetail.tsx:195 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:204 +#: src/pages/sales/ReturnOrderDetail.tsx:174 +#: src/pages/sales/SalesOrderDetail.tsx:186 #: src/tables/TableHoverCard.tsx:81 -#: src/tables/build/BuildOrderTable.tsx:140 -#: src/tables/purchasing/PurchaseOrderTable.tsx:64 -#: src/tables/sales/ReturnOrderTable.tsx:55 -#: src/tables/sales/SalesOrderTable.tsx:62 +#: src/tables/build/BuildOrderTable.tsx:135 +#: src/tables/purchasing/PurchaseOrderTable.tsx:69 +#: src/tables/sales/ReturnOrderTable.tsx:67 +#: src/tables/sales/SalesOrderTable.tsx:67 msgid "Project Code" msgstr "" -#: src/components/render/ModelType.tsx:132 -#: src/pages/Index/Settings/AdminCenter/Index.tsx:128 +#: src/components/render/ModelType.tsx:154 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:145 msgid "Project Codes" msgstr "" -#: src/components/render/ModelType.tsx:138 +#: src/components/render/ModelType.tsx:161 #: src/pages/part/pricing/PurchaseHistoryPanel.tsx:32 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:480 -#: src/tables/part/PartPurchaseOrdersTable.tsx:32 -#: src/tables/stock/StockTrackingTable.tsx:107 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:477 +#: src/pages/stock/StockDetail.tsx:253 +#: src/tables/part/PartPurchaseOrdersTable.tsx:31 +#: src/tables/stock/StockItemTable.tsx:222 +#: src/tables/stock/StockTrackingTable.tsx:111 msgid "Purchase Order" msgstr "" -#: src/components/render/ModelType.tsx:139 -#: src/pages/Index/Settings/SystemSettings.tsx:255 +#: src/components/render/ModelType.tsx:162 +#: src/pages/Index/Settings/SystemSettings.tsx:249 #: src/pages/company/CompanyDetail.tsx:196 -#: src/pages/company/SupplierPartDetail.tsx:237 -#: src/pages/part/PartDetail.tsx:662 +#: src/pages/company/SupplierPartDetail.tsx:249 +#: src/pages/part/PartDetail.tsx:683 #: src/pages/purchasing/PurchasingIndex.tsx:25 msgid "Purchase Orders" msgstr "" -#: src/components/render/ModelType.tsx:147 +#: src/components/render/ModelType.tsx:171 msgid "Purchase Order Line" msgstr "" -#: src/components/render/ModelType.tsx:148 +#: src/components/render/ModelType.tsx:172 msgid "Purchase Order Lines" msgstr "" -#: src/components/render/ModelType.tsx:152 -#: src/pages/build/BuildDetail.tsx:153 -#: src/pages/sales/SalesOrderDetail.tsx:520 -#: src/pages/stock/StockDetail.tsx:221 -#: src/tables/sales/SalesOrderAllocationTable.tsx:50 -#: src/tables/stock/StockTrackingTable.tsx:118 +#: src/components/render/ModelType.tsx:177 +#: src/pages/build/BuildDetail.tsx:148 +#: src/pages/part/pricing/SaleHistoryPanel.tsx:24 +#: src/pages/sales/SalesOrderDetail.tsx:515 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:92 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:341 +#: src/pages/stock/StockDetail.tsx:262 +#: src/tables/sales/SalesOrderAllocationTable.tsx:80 +#: src/tables/stock/StockTrackingTable.tsx:122 msgid "Sales Order" msgstr "" -#: src/components/render/ModelType.tsx:153 -#: src/pages/Index/Settings/SystemSettings.tsx:270 +#: src/components/render/ModelType.tsx:178 +#: src/pages/Index/Settings/SystemSettings.tsx:264 #: src/pages/company/CompanyDetail.tsx:216 -#: src/pages/part/PartDetail.tsx:669 +#: src/pages/part/PartDetail.tsx:695 #: src/pages/sales/SalesIndex.tsx:26 msgid "Sales Orders" msgstr "" -#: src/components/render/ModelType.tsx:161 +#: src/components/render/ModelType.tsx:187 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:340 msgid "Sales Order Shipment" msgstr "" -#: src/components/render/ModelType.tsx:162 +#: src/components/render/ModelType.tsx:188 msgid "Sales Order Shipments" msgstr "" -#: src/components/render/ModelType.tsx:168 -#: src/pages/sales/ReturnOrderDetail.tsx:469 -#: src/tables/stock/StockTrackingTable.tsx:129 +#: src/components/render/ModelType.tsx:195 +#: src/pages/sales/ReturnOrderDetail.tsx:464 +#: src/tables/stock/StockTrackingTable.tsx:133 msgid "Return Order" msgstr "" -#: src/components/render/ModelType.tsx:169 -#: src/pages/Index/Settings/SystemSettings.tsx:286 +#: src/components/render/ModelType.tsx:196 +#: src/pages/Index/Settings/SystemSettings.tsx:280 #: src/pages/company/CompanyDetail.tsx:223 +#: src/pages/part/PartDetail.tsx:702 #: src/pages/sales/SalesIndex.tsx:32 msgid "Return Orders" msgstr "" -#: src/components/render/ModelType.tsx:177 +#: src/components/render/ModelType.tsx:205 msgid "Return Order Line Item" msgstr "" -#: src/components/render/ModelType.tsx:178 +#: src/components/render/ModelType.tsx:206 msgid "Return Order Line Items" msgstr "" -#: src/components/render/ModelType.tsx:182 -#: src/tables/company/AddressTable.tsx:47 +#: src/components/render/ModelType.tsx:211 +#: src/tables/company/AddressTable.tsx:48 msgid "Address" -msgstr "" +msgstr "Alamat" -#: src/components/render/ModelType.tsx:183 -#: src/pages/company/CompanyDetail.tsx:253 +#: src/components/render/ModelType.tsx:212 +#: src/pages/company/CompanyDetail.tsx:255 msgid "Addresses" msgstr "" -#: src/components/render/ModelType.tsx:189 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:195 -#: src/pages/sales/ReturnOrderDetail.tsx:174 -#: src/pages/sales/SalesOrderDetail.tsx:183 +#: src/components/render/ModelType.tsx:219 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:196 +#: src/pages/sales/ReturnOrderDetail.tsx:166 +#: src/pages/sales/SalesOrderDetail.tsx:178 msgid "Contact" -msgstr "" +msgstr "Kontak" -#: src/components/render/ModelType.tsx:190 -#: src/pages/company/CompanyDetail.tsx:247 +#: src/components/render/ModelType.tsx:220 +#: src/pages/company/CompanyDetail.tsx:249 msgid "Contacts" -msgstr "" +msgstr "Kontak" -#: src/components/render/ModelType.tsx:196 +#: src/components/render/ModelType.tsx:227 msgid "Owner" -msgstr "" +msgstr "Pemilik" -#: src/components/render/ModelType.tsx:197 +#: src/components/render/ModelType.tsx:228 msgid "Owners" -msgstr "" +msgstr "Pemilik" -#: src/components/render/ModelType.tsx:203 -#: src/tables/settings/ImportSessionTable.tsx:121 -#: src/tables/stock/StockItemTestResultTable.tsx:198 -#: src/tables/stock/StockTrackingTable.tsx:195 +#: src/components/render/ModelType.tsx:234 +#~ msgid "Purchase Order Line Item" +#~ msgstr "Purchase Order Line Item" + +#: src/components/render/ModelType.tsx:235 +#: src/tables/settings/BarcodeScanHistoryTable.tsx:80 +#: src/tables/settings/BarcodeScanHistoryTable.tsx:211 +#: src/tables/settings/ImportSessionTable.tsx:120 +#: src/tables/settings/StocktakeReportTable.tsx:44 +#: src/tables/stock/StockItemTestResultTable.tsx:204 +#: src/tables/stock/StockTrackingTable.tsx:181 +#: src/tables/stock/StockTrackingTable.tsx:210 msgid "User" -msgstr "" +msgstr "Pengguna" -#: src/components/render/ModelType.tsx:204 -#: src/pages/Index/Settings/AdminCenter/Index.tsx:98 +#: src/components/render/ModelType.tsx:236 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:109 #: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:13 msgid "Users" -msgstr "" +msgstr "Pengguna" -#: src/components/render/ModelType.tsx:210 +#: src/components/render/ModelType.tsx:243 msgid "Group" msgstr "" -#: src/components/render/ModelType.tsx:211 +#: src/components/render/ModelType.tsx:244 #: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:20 -#: src/tables/settings/UserTable.tsx:138 -#: src/tables/settings/UserTable.tsx:201 +#: src/tables/settings/UserTable.tsx:137 +#: src/tables/settings/UserTable.tsx:200 msgid "Groups" msgstr "" -#: src/components/render/ModelType.tsx:218 +#: src/components/render/ModelType.tsx:252 msgid "Import Session" msgstr "" -#: src/components/render/ModelType.tsx:219 +#: src/components/render/ModelType.tsx:253 msgid "Import Sessions" msgstr "" -#: src/components/render/ModelType.tsx:225 +#: src/components/render/ModelType.tsx:260 msgid "Label Template" msgstr "" -#: src/components/render/ModelType.tsx:226 -#: src/pages/Index/Settings/AdminCenter/Index.tsx:158 +#: src/components/render/ModelType.tsx:261 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:187 msgid "Label Templates" msgstr "" -#: src/components/render/ModelType.tsx:232 +#: src/components/render/ModelType.tsx:264 +#~ msgid "Unknown Model" +#~ msgstr "Unknown Model" + +#: src/components/render/ModelType.tsx:268 msgid "Report Template" msgstr "" -#: src/components/render/ModelType.tsx:233 -#: src/pages/Index/Settings/AdminCenter/Index.tsx:164 +#: src/components/render/ModelType.tsx:269 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:193 msgid "Report Templates" msgstr "" -#: src/components/render/ModelType.tsx:239 -msgid "Plugin Configuration" -msgstr "" - -#: src/components/render/ModelType.tsx:240 +#: src/components/render/ModelType.tsx:277 msgid "Plugin Configurations" msgstr "" +#: src/components/render/ModelType.tsx:284 +msgid "Content Type" +msgstr "" + +#: src/components/render/ModelType.tsx:285 +msgid "Content Types" +msgstr "" + +#: src/components/render/ModelType.tsx:291 +#: src/tables/machine/MachineListTable.tsx:351 +#: src/tables/machine/MachineTypeTable.tsx:282 +msgid "Errors" +msgstr "" + +#: src/components/render/ModelType.tsx:307 +#~ msgid "Purchase Order Line Items" +#~ msgstr "Purchase Order Line Items" + +#: src/components/render/ModelType.tsx:337 +#~ msgid "Unknown Models" +#~ msgstr "Unknown Models" + #: src/components/render/Order.tsx:121 +#: src/tables/sales/SalesOrderAllocationTable.tsx:136 msgid "Shipment" msgstr "" #: src/components/render/Part.tsx:25 #: src/components/render/Plugin.tsx:17 -#: src/pages/company/CompanyDetail.tsx:325 -#: src/pages/company/SupplierPartDetail.tsx:360 -#: src/pages/part/PartDetail.tsx:879 +#: src/pages/company/CompanyDetail.tsx:307 +#: src/pages/company/SupplierPartDetail.tsx:349 +#: src/pages/part/PartDetail.tsx:911 msgid "Inactive" -msgstr "" +msgstr "Tidak Aktif" #: src/components/render/Part.tsx:28 #: src/tables/bom/BomTable.tsx:204 #: src/tables/part/PartTable.tsx:134 msgid "No stock" -msgstr "" +msgstr "Tidak ada persediaan" -#: src/components/render/Part.tsx:30 -#: src/defaults/links.tsx:30 -#: src/defaults/menuItems.tsx:38 -#: src/pages/Index/Settings/SystemSettings.tsx:206 -#: src/pages/part/PartDetail.tsx:543 -#: src/pages/stock/LocationDetail.tsx:367 -#: src/pages/stock/StockDetail.tsx:411 -#: src/tables/stock/StockItemTable.tsx:68 -msgid "Stock" -msgstr "" - -#: src/components/render/Stock.tsx:60 -#: src/pages/stock/StockDetail.tsx:150 -#: src/pages/stock/StockDetail.tsx:581 -#: src/tables/build/BuildAllocatedStockTable.tsx:102 -#: src/tables/sales/SalesOrderAllocationTable.tsx:80 +#: src/components/render/Stock.tsx:61 +#: src/forms/ReturnOrderForms.tsx:190 +#: src/pages/stock/StockDetail.tsx:166 +#: src/pages/stock/StockDetail.tsx:771 +#: src/tables/build/BuildAllocatedStockTable.tsx:123 +#: src/tables/build/BuildOutputTable.tsx:81 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:114 +#: src/tables/sales/SalesOrderAllocationTable.tsx:106 msgid "Serial Number" -msgstr "" +msgstr "Nomor Seri" -#: src/components/render/Stock.tsx:62 -#: src/forms/BuildForms.tsx:218 -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/pages/part/pricing/BomPricingPanel.tsx:109 +#: src/components/render/Stock.tsx:63 +#: src/forms/BuildForms.tsx:206 +#: src/forms/BuildForms.tsx:515 +#: src/forms/PurchaseOrderForms.tsx:689 +#: src/forms/SalesOrderForms.tsx:248 +#: src/pages/part/PartSchedulingDetail.tsx:80 +#: src/pages/part/PartStocktakeDetail.tsx:60 +#: src/pages/part/PartStocktakeDetail.tsx:234 +#: src/pages/part/PartStocktakeDetail.tsx:252 +#: src/pages/part/pricing/BomPricingPanel.tsx:148 #: src/pages/part/pricing/PriceBreakPanel.tsx:89 -#: src/pages/part/pricing/PriceBreakPanel.tsx:171 -#: src/pages/stock/StockDetail.tsx:145 -#: src/pages/stock/StockDetail.tsx:587 -#: src/tables/build/BuildOrderTestTable.tsx:197 -#: src/tables/part/PartPurchaseOrdersTable.tsx:92 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:143 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:171 +#: src/pages/part/pricing/PriceBreakPanel.tsx:172 +#: src/pages/stock/StockDetail.tsx:161 +#: src/pages/stock/StockDetail.tsx:777 +#: src/tables/build/BuildLineTable.tsx:79 +#: src/tables/build/BuildOrderTestTable.tsx:198 +#: src/tables/part/PartPurchaseOrdersTable.tsx:93 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:146 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:177 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:77 -#: src/tables/stock/StockTrackingTable.tsx:59 +#: src/tables/stock/StockTrackingTable.tsx:63 msgid "Quantity" -msgstr "" +msgstr "Jumlah" #: src/components/settings/SettingItem.tsx:47 #: src/components/settings/SettingItem.tsx:100 @@ -1842,10 +2440,6 @@ msgstr "" #~ msgid "Required Part" #~ msgstr "Required Part" -#: src/components/tables/build/BuildLineTable.tsx:152 -#~ msgid "Required Quantity" -#~ msgstr "Required Quantity" - #: src/components/tables/build/BuildOrderTable.tsx:52 #~ msgid "Progress" #~ msgstr "Progress" @@ -2126,14 +2720,6 @@ msgstr "" #~ msgid "user deleted" #~ msgstr "user deleted" -#: src/components/tables/settings/UserTable.tsx:168 -#~ msgid "First Name" -#~ msgstr "First Name" - -#: src/components/tables/settings/UserTable.tsx:173 -#~ msgid "Last Name" -#~ msgstr "Last Name" - #: src/components/tables/stock/StockItemTable.tsx:247 #~ msgid "Test Filter" #~ msgstr "Test Filter" @@ -2146,36 +2732,21 @@ msgstr "" #~ msgid "Stock location updated" #~ msgstr "Stock location updated" -#: src/components/widgets/DisplayWidget.tsx:11 -#: src/pages/Index/Settings/AccountSettings/DisplaySettingsPanel.tsx:17 -msgid "Display Settings" -msgstr "" - -#: src/components/widgets/DisplayWidget.tsx:15 -#: src/pages/Index/Settings/AccountSettings/DisplaySettingsPanel.tsx:23 -msgid "Color Mode" -msgstr "" - -#: src/components/widgets/DisplayWidget.tsx:21 -#: src/pages/Index/Settings/AccountSettings/DisplaySettingsPanel.tsx:33 -msgid "Language" -msgstr "" - #: src/components/widgets/FeedbackWidget.tsx:19 -msgid "Something is new: Platform UI" -msgstr "" +#~ msgid "Something is new: Platform UI" +#~ msgstr "Something is new: Platform UI" #: src/components/widgets/FeedbackWidget.tsx:21 -msgid "We are building a new UI with a modern stack. What you currently see is not fixed and will be redesigned but demonstrates the UI/UX possibilities we will have going forward." -msgstr "" +#~ msgid "We are building a new UI with a modern stack. What you currently see is not fixed and will be redesigned but demonstrates the UI/UX possibilities we will have going forward." +#~ msgstr "We are building a new UI with a modern stack. What you currently see is not fixed and will be redesigned but demonstrates the UI/UX possibilities we will have going forward." #: src/components/widgets/FeedbackWidget.tsx:32 -msgid "Provide Feedback" -msgstr "" +#~ msgid "Provide Feedback" +#~ msgstr "Provide Feedback" #: src/components/widgets/GetStartedWidget.tsx:11 -msgid "Getting started" -msgstr "" +#~ msgid "Getting started" +#~ msgstr "Getting started" #: src/components/widgets/MarkdownEditor.tsx:108 #~ msgid "Failed to upload image" @@ -2186,68 +2757,64 @@ msgstr "" #~ msgstr "Notes saved" #: src/components/widgets/WidgetLayout.tsx:166 -msgid "Layout" -msgstr "" +#~ msgid "Layout" +#~ msgstr "Layout" #: src/components/widgets/WidgetLayout.tsx:172 -msgid "Reset Layout" -msgstr "" +#~ msgid "Reset Layout" +#~ msgstr "Reset Layout" #: src/components/widgets/WidgetLayout.tsx:185 -msgid "Stop Edit" -msgstr "" - -#: src/components/widgets/WidgetLayout.tsx:185 -msgid "Edit Layout" -msgstr "" +#~ msgid "Stop Edit" +#~ msgstr "Stop Edit" #: src/components/widgets/WidgetLayout.tsx:191 -msgid "Appearance" -msgstr "" +#~ msgid "Appearance" +#~ msgstr "Appearance" #: src/components/widgets/WidgetLayout.tsx:203 -msgid "Show Boxes" -msgstr "" +#~ msgid "Show Boxes" +#~ msgstr "Show Boxes" #: src/contexts/LanguageContext.tsx:20 msgid "Arabic" -msgstr "" +msgstr "Bahasa Arab" #: src/contexts/LanguageContext.tsx:21 msgid "Bulgarian" -msgstr "" +msgstr "Bahasa Bulgaria" #: src/contexts/LanguageContext.tsx:22 msgid "Czech" -msgstr "" +msgstr "Bahasa Ceko" #: src/contexts/LanguageContext.tsx:23 msgid "Danish" -msgstr "" +msgstr "Bahasa Denmark" #: src/contexts/LanguageContext.tsx:24 msgid "German" -msgstr "" +msgstr "Bahasa Jerman" #: src/contexts/LanguageContext.tsx:25 msgid "Greek" -msgstr "" +msgstr "Bahasa Yunani" #: src/contexts/LanguageContext.tsx:26 msgid "English" -msgstr "" +msgstr "Bahasa Inggris" #: src/contexts/LanguageContext.tsx:27 msgid "Spanish" -msgstr "" +msgstr "Bahasa Spanyol" #: src/contexts/LanguageContext.tsx:28 msgid "Spanish (Mexican)" -msgstr "" +msgstr "Bahasa Spanyol (Mexico)" #: src/contexts/LanguageContext.tsx:29 msgid "Estonian" -msgstr "" +msgstr "Bahasa Estonia" #: src/contexts/LanguageContext.tsx:30 msgid "Farsi / Persian" @@ -2255,232 +2822,206 @@ msgstr "" #: src/contexts/LanguageContext.tsx:31 msgid "Finnish" -msgstr "" +msgstr "Bahasa Finlandia" #: src/contexts/LanguageContext.tsx:32 msgid "French" -msgstr "" +msgstr "Bahasa Prancis" #: src/contexts/LanguageContext.tsx:33 msgid "Hebrew" -msgstr "" +msgstr "Bahasa Hebrew" #: src/contexts/LanguageContext.tsx:34 msgid "Hindi" -msgstr "" +msgstr "Bahasa India" #: src/contexts/LanguageContext.tsx:35 msgid "Hungarian" -msgstr "" +msgstr "Bahasa Hungaria" #: src/contexts/LanguageContext.tsx:36 msgid "Italian" -msgstr "" +msgstr "Bahasa Italia" #: src/contexts/LanguageContext.tsx:37 msgid "Japanese" -msgstr "" +msgstr "Bahasa Jepang" #: src/contexts/LanguageContext.tsx:38 msgid "Korean" -msgstr "" +msgstr "Bahasa Korea" #: src/contexts/LanguageContext.tsx:39 -msgid "Latvian" -msgstr "" +msgid "Lithuanian" +msgstr "Bahasa Lithuania" #: src/contexts/LanguageContext.tsx:40 -msgid "Dutch" -msgstr "" +msgid "Latvian" +msgstr "Bahasa Latvia" #: src/contexts/LanguageContext.tsx:41 -msgid "Norwegian" -msgstr "" +msgid "Dutch" +msgstr "Bahasa Belanda" #: src/contexts/LanguageContext.tsx:42 -msgid "Polish" -msgstr "" +msgid "Norwegian" +msgstr "Bahasa Norwegia" #: src/contexts/LanguageContext.tsx:43 -msgid "Portuguese" -msgstr "" +msgid "Polish" +msgstr "Bahasa Polandia" #: src/contexts/LanguageContext.tsx:44 +msgid "Portuguese" +msgstr "Bahasa Portugal" + +#: src/contexts/LanguageContext.tsx:45 msgid "Portuguese (Brazilian)" msgstr "" -#: src/contexts/LanguageContext.tsx:45 +#: src/contexts/LanguageContext.tsx:46 msgid "Romanian" msgstr "" -#: src/contexts/LanguageContext.tsx:46 -msgid "Russian" -msgstr "" - #: src/contexts/LanguageContext.tsx:47 -msgid "Slovak" -msgstr "" +msgid "Russian" +msgstr "Bahasa Rusia" #: src/contexts/LanguageContext.tsx:48 +msgid "Slovak" +msgstr "Bahasa Slovakia" + +#: src/contexts/LanguageContext.tsx:49 msgid "Slovenian" msgstr "" -#: src/contexts/LanguageContext.tsx:49 -msgid "Swedish" -msgstr "" - #: src/contexts/LanguageContext.tsx:50 -msgid "Thai" -msgstr "" +msgid "Swedish" +msgstr "Bahasa Swedia" #: src/contexts/LanguageContext.tsx:51 -msgid "Turkish" -msgstr "" +msgid "Thai" +msgstr "Bahasa Thailand" #: src/contexts/LanguageContext.tsx:52 -msgid "Ukrainian" -msgstr "" +msgid "Turkish" +msgstr "Bahasa Turki" #: src/contexts/LanguageContext.tsx:53 +msgid "Ukrainian" +msgstr "Bahasa Ukraina" + +#: src/contexts/LanguageContext.tsx:54 msgid "Vietnamese" msgstr "" -#: src/contexts/LanguageContext.tsx:54 +#: src/contexts/LanguageContext.tsx:55 msgid "Chinese (Simplified)" msgstr "" -#: src/contexts/LanguageContext.tsx:55 +#: src/contexts/LanguageContext.tsx:56 msgid "Chinese (Traditional)" msgstr "" +#: src/defaults/actions.tsx:18 +msgid "Go to the InvenTree dashboard" +msgstr "" + #: src/defaults/actions.tsx:18 #: src/defaults/links.tsx:27 #: src/defaults/menuItems.tsx:9 -msgid "Home" -msgstr "" +#~ msgid "Home" +#~ msgstr "Home" #: src/defaults/actions.tsx:25 -#: src/defaults/links.tsx:28 -#: src/defaults/menuItems.tsx:28 -#: src/pages/Index/Dashboard.tsx:19 -#: src/pages/Index/Settings/UserSettings.tsx:46 -msgid "Dashboard" -msgstr "" - -#: src/defaults/actions.tsx:26 -msgid "Go to the InvenTree dashboard" -msgstr "" - -#: src/defaults/actions.tsx:33 msgid "Visit the documentation to learn more about InvenTree" msgstr "" -#: src/defaults/actions.tsx:39 -#: src/defaults/links.tsx:98 -#: src/defaults/links.tsx:128 +#: src/defaults/actions.tsx:31 +#: src/defaults/links.tsx:92 +#: src/defaults/links.tsx:124 msgid "About InvenTree" -msgstr "" +msgstr "Tentang InvenTree" -#: src/defaults/actions.tsx:40 -#: src/defaults/links.tsx:129 +#: src/defaults/actions.tsx:32 msgid "About the InvenTree org" msgstr "" -#: src/defaults/actions.tsx:46 +#: src/defaults/actions.tsx:38 msgid "Server Information" -msgstr "" +msgstr "Informasi Server" -#: src/defaults/actions.tsx:47 -#: src/defaults/links.tsx:123 +#: src/defaults/actions.tsx:39 +#: src/defaults/links.tsx:118 msgid "About this Inventree instance" msgstr "" -#: src/defaults/actions.tsx:53 -#: src/defaults/links.tsx:111 +#: src/defaults/actions.tsx:45 +#: src/defaults/links.tsx:105 +#: src/defaults/links.tsx:131 msgid "License Information" -msgstr "" +msgstr "Informasi Lisensi" -#: src/defaults/actions.tsx:54 -#: src/defaults/links.tsx:135 +#: src/defaults/actions.tsx:46 msgid "Licenses for dependencies of the service" msgstr "" -#: src/defaults/actions.tsx:61 +#: src/defaults/actions.tsx:52 +msgid "Open Navigation" +msgstr "" + +#: src/defaults/actions.tsx:53 msgid "Open the main navigation menu" msgstr "" -#: src/defaults/actions.tsx:72 +#: src/defaults/actions.tsx:64 msgid "Go to the Admin Center" msgstr "" -#: src/defaults/dashboardItems.tsx:15 -msgid "Subscribed Parts" -msgstr "" - -#: src/defaults/dashboardItems.tsx:22 -msgid "Subscribed Categories" -msgstr "" - #: src/defaults/dashboardItems.tsx:29 -msgid "Latest Parts" -msgstr "" +#~ msgid "Latest Parts" +#~ msgstr "Latest Parts" #: src/defaults/dashboardItems.tsx:36 -msgid "BOM Waiting Validation" -msgstr "" +#~ msgid "BOM Waiting Validation" +#~ msgstr "BOM Waiting Validation" #: src/defaults/dashboardItems.tsx:43 -msgid "Recently Updated" -msgstr "" - -#: src/defaults/dashboardItems.tsx:50 -#: src/tables/part/PartTable.tsx:238 -msgid "Low Stock" -msgstr "" +#~ msgid "Recently Updated" +#~ msgstr "Recently Updated" #: src/defaults/dashboardItems.tsx:57 -msgid "Depleted Stock" -msgstr "" +#~ msgid "Depleted Stock" +#~ msgstr "Depleted Stock" #: src/defaults/dashboardItems.tsx:64 -msgid "Required for Build Orders" -msgstr "" +#~ msgid "Required for Build Orders" +#~ msgstr "Required for Build Orders" #: src/defaults/dashboardItems.tsx:71 -msgid "Expired Stock" -msgstr "" +#~ msgid "Expired Stock" +#~ msgstr "Expired Stock" #: src/defaults/dashboardItems.tsx:78 -msgid "Stale Stock" -msgstr "" +#~ msgid "Stale Stock" +#~ msgstr "Stale Stock" #: src/defaults/dashboardItems.tsx:85 -msgid "Build Orders In Progress" -msgstr "" - -#: src/defaults/dashboardItems.tsx:92 -msgid "Overdue Build Orders" -msgstr "" +#~ msgid "Build Orders In Progress" +#~ msgstr "Build Orders In Progress" #: src/defaults/dashboardItems.tsx:99 -msgid "Outstanding Purchase Orders" -msgstr "" - -#: src/defaults/dashboardItems.tsx:106 -msgid "Overdue Purchase Orders" -msgstr "" +#~ msgid "Outstanding Purchase Orders" +#~ msgstr "Outstanding Purchase Orders" #: src/defaults/dashboardItems.tsx:113 -msgid "Outstanding Sales Orders" -msgstr "" - -#: src/defaults/dashboardItems.tsx:120 -msgid "Overdue Sales Orders" -msgstr "" +#~ msgid "Outstanding Sales Orders" +#~ msgstr "Outstanding Sales Orders" #: src/defaults/dashboardItems.tsx:127 -msgid "Current News" -msgstr "" +#~ msgid "Current News" +#~ msgstr "Current News" #: src/defaults/defaultHostList.tsx:8 #~ msgid "InvenTree Demo" @@ -2490,98 +3031,81 @@ msgstr "" #~ msgid "Local Server" #~ msgstr "Local Server" -#: src/defaults/links.tsx:12 -#: src/pages/company/CompanyDetail.tsx:96 -msgid "Website" -msgstr "" - #: src/defaults/links.tsx:17 -msgid "GitHub" -msgstr "" +#~ msgid "GitHub" +#~ msgstr "GitHub" #: src/defaults/links.tsx:22 -msgid "Demo" -msgstr "" - -#: src/defaults/links.tsx:33 -#: src/defaults/menuItems.tsx:48 -#: src/pages/company/ManufacturerDetail.tsx:9 -#: src/pages/company/ManufacturerPartDetail.tsx:263 -#: src/pages/company/SupplierDetail.tsx:9 -#: src/pages/company/SupplierPartDetail.tsx:347 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:483 -#: src/pages/purchasing/PurchasingIndex.tsx:60 -msgid "Purchasing" -msgstr "" - -#: src/defaults/links.tsx:37 -#: src/defaults/menuItems.tsx:53 -#: src/pages/company/CustomerDetail.tsx:9 -#: src/pages/sales/ReturnOrderDetail.tsx:474 -#: src/pages/sales/SalesIndex.tsx:53 -#: src/pages/sales/SalesOrderDetail.tsx:525 -msgid "Sales" -msgstr "" +#~ msgid "Demo" +#~ msgstr "Demo" #: src/defaults/links.tsx:41 #: src/defaults/menuItems.tsx:71 #: src/pages/Index/Playground.tsx:217 -msgid "Playground" -msgstr "" +#~ msgid "Playground" +#~ msgstr "Playground" -#: src/defaults/links.tsx:55 -msgid "Getting Started" -msgstr "" - -#: src/defaults/links.tsx:56 -msgid "Getting started with InvenTree" -msgstr "" - -#: src/defaults/links.tsx:62 +#: src/defaults/links.tsx:45 msgid "API" msgstr "" -#: src/defaults/links.tsx:63 +#: src/defaults/links.tsx:48 msgid "InvenTree API documentation" msgstr "" -#: src/defaults/links.tsx:68 +#: src/defaults/links.tsx:52 msgid "Developer Manual" msgstr "" -#: src/defaults/links.tsx:69 +#: src/defaults/links.tsx:55 msgid "InvenTree developer manual" msgstr "" -#: src/defaults/links.tsx:74 +#: src/defaults/links.tsx:59 msgid "FAQ" msgstr "" -#: src/defaults/links.tsx:75 +#: src/defaults/links.tsx:62 msgid "Frequently asked questions" msgstr "" +#: src/defaults/links.tsx:66 +msgid "GitHub Repository" +msgstr "" + +#: src/defaults/links.tsx:69 +msgid "InvenTree source code on GitHub" +msgstr "" + #: src/defaults/links.tsx:76 #~ msgid "Instance" #~ msgstr "Instance" +#: src/defaults/links.tsx:79 +#: src/defaults/links.tsx:117 +msgid "System Information" +msgstr "Informasi sistem" + #: src/defaults/links.tsx:83 #~ msgid "InvenTree" #~ msgstr "InvenTree" -#: src/defaults/links.tsx:85 -#: src/defaults/links.tsx:122 -msgid "System Information" -msgstr "" - #: src/defaults/links.tsx:117 #~ msgid "Licenses for packages used by InvenTree" #~ msgstr "Licenses for packages used by InvenTree" -#: src/defaults/links.tsx:134 -msgid "Licenses" +#: src/defaults/links.tsx:125 +msgid "About the InvenTree Project" msgstr "" +#: src/defaults/links.tsx:132 +msgid "Licenses for dependencies of the InvenTree software" +msgstr "" + +#: src/defaults/links.tsx:134 +#~ msgid "Licenses" +#~ msgstr "Licenses" + #: src/defaults/menuItems.tsx:7 #~ msgid "Open sourcea" #~ msgstr "Open sourcea" @@ -2607,8 +3131,8 @@ msgstr "" #~ msgstr "Profile page" #: src/defaults/menuItems.tsx:17 -msgid "User attributes and design settings." -msgstr "" +#~ msgid "User attributes and design settings." +#~ msgstr "User attributes and design settings." #: src/defaults/menuItems.tsx:21 #~ msgid "Free for everyone" @@ -2619,8 +3143,8 @@ msgstr "" #~ msgstr "The fluid of Smeargle’s tail secretions changes" #: src/defaults/menuItems.tsx:23 -msgid "View for interactive scanning and multiple actions." -msgstr "" +#~ msgid "View for interactive scanning and multiple actions." +#~ msgstr "View for interactive scanning and multiple actions." #: src/defaults/menuItems.tsx:24 #~ msgid "The fluid of Smeargle’s tail secretions changes in the intensity" @@ -2698,51 +3222,130 @@ msgstr "" #~ msgid "Are you sure you want to delete this attachment?" #~ msgstr "Are you sure you want to delete this attachment?" -#: src/forms/BuildForms.tsx:158 -msgid "Next serial number" +#: src/forms/BuildForms.tsx:248 +#~ msgid "Remove output" +#~ msgstr "Remove output" + +#: src/forms/BuildForms.tsx:269 +#: src/tables/build/BuildAllocatedStockTable.tsx:147 +#: src/tables/build/BuildOrderTestTable.tsx:177 +#: src/tables/build/BuildOrderTestTable.tsx:201 +#: src/tables/build/BuildOutputTable.tsx:460 +msgid "Build Output" msgstr "" -#: src/forms/BuildForms.tsx:162 -msgid "Latest serial number" +#: src/forms/BuildForms.tsx:269 +#: src/forms/BuildForms.tsx:337 +#: src/forms/BuildForms.tsx:385 +#: src/tables/build/BuildLineTable.tsx:89 +msgid "Batch" msgstr "" -#: src/forms/BuildForms.tsx:234 -msgid "Remove output" +#: src/forms/BuildForms.tsx:269 +#: src/forms/BuildForms.tsx:337 +#: src/forms/BuildForms.tsx:385 +#: src/forms/PurchaseOrderForms.tsx:603 +#: src/pages/build/BuildDetail.tsx:104 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:142 +#: src/pages/sales/ReturnOrderDetail.tsx:113 +#: src/pages/sales/SalesOrderDetail.tsx:122 +#: src/tables/build/BuildOrderTable.tsx:125 +#: src/tables/machine/MachineListTable.tsx:336 +#: src/tables/part/PartPurchaseOrdersTable.tsx:37 +#: src/tables/purchasing/PurchaseOrderTable.tsx:58 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:157 +#: src/tables/sales/ReturnOrderTable.tsx:56 +#: src/tables/sales/SalesOrderTable.tsx:56 +#: src/tables/settings/CustomStateTable.tsx:57 +#: src/tables/settings/ImportSessionTable.tsx:114 +#: src/tables/stock/StockItemTable.tsx:298 +#: src/tables/stock/StockTrackingTable.tsx:56 +msgid "Status" msgstr "" -#: src/forms/BuildForms.tsx:316 +#: src/forms/BuildForms.tsx:289 msgid "Complete Build Outputs" msgstr "" -#: src/forms/BuildForms.tsx:320 +#: src/forms/BuildForms.tsx:292 msgid "Build outputs have been completed" msgstr "" -#: src/forms/BuildForms.tsx:389 +#: src/forms/BuildForms.tsx:353 msgid "Scrap Build Outputs" msgstr "" -#: src/forms/BuildForms.tsx:393 +#: src/forms/BuildForms.tsx:356 msgid "Build outputs have been scrapped" msgstr "" -#: src/forms/BuildForms.tsx:425 -#: src/forms/BuildForms.tsx:449 +#: src/forms/BuildForms.tsx:393 msgid "Cancel Build Outputs" msgstr "" -#: src/forms/BuildForms.tsx:426 -msgid "Selected build outputs will be deleted" +#: src/forms/BuildForms.tsx:396 +msgid "Build outputs have been cancelled" msgstr "" -#: src/forms/BuildForms.tsx:453 -msgid "Build outputs have been cancelled" +#: src/forms/BuildForms.tsx:408 +#~ msgid "Selected build outputs will be deleted" +#~ msgstr "Selected build outputs will be deleted" + +#: src/forms/BuildForms.tsx:470 +#~ msgid "Remove line" +#~ msgstr "Remove line" + +#: src/forms/BuildForms.tsx:515 +#: src/forms/SalesOrderForms.tsx:248 +#: src/tables/build/BuildLineTable.tsx:174 +#: src/tables/sales/SalesOrderLineItemTable.tsx:276 +#: src/tables/stock/StockItemTable.tsx:309 +msgid "Allocated" +msgstr "" + +#: src/forms/BuildForms.tsx:545 +#: src/forms/SalesOrderForms.tsx:239 +#: src/pages/build/BuildDetail.tsx:208 +msgid "Source Location" +msgstr "" + +#: src/forms/BuildForms.tsx:546 +#: src/forms/SalesOrderForms.tsx:240 +msgid "Select the source location for the stock allocation" +msgstr "" + +#: src/forms/BuildForms.tsx:566 +#: src/forms/SalesOrderForms.tsx:274 +#: src/tables/build/BuildLineTable.tsx:442 +#: src/tables/build/BuildLineTable.tsx:569 +#: src/tables/build/BuildLineTable.tsx:642 +#: src/tables/sales/SalesOrderLineItemTable.tsx:302 +#: src/tables/sales/SalesOrderLineItemTable.tsx:326 +msgid "Allocate Stock" +msgstr "" + +#: src/forms/BuildForms.tsx:569 +#: src/forms/SalesOrderForms.tsx:279 +msgid "Stock items allocated" msgstr "" #: src/forms/CompanyForms.tsx:150 #~ msgid "Company updated" #~ msgstr "Company updated" +#: src/forms/PartForms.tsx:67 +#: src/forms/PartForms.tsx:154 +#: src/pages/part/CategoryDetail.tsx:117 +#: src/pages/part/PartDetail.tsx:384 +#: src/tables/part/PartCategoryTable.tsx:90 +#: src/tables/part/PartTable.tsx:294 +msgid "Subscribed" +msgstr "" + +#: src/forms/PartForms.tsx:68 +msgid "Subscribe to notifications for this part" +msgstr "" + #: src/forms/PartForms.tsx:106 #~ msgid "Create Part" #~ msgstr "Create Part" @@ -2751,191 +3354,190 @@ msgstr "" #~ msgid "Part created" #~ msgstr "Part created" -#: src/forms/PartForms.tsx:124 -msgid "Parent part category" -msgstr "" - #: src/forms/PartForms.tsx:129 #~ msgid "Part updated" #~ msgstr "Part updated" -#: src/forms/PurchaseOrderForms.tsx:300 +#: src/forms/PartForms.tsx:140 +msgid "Parent part category" +msgstr "" + +#: src/forms/PartForms.tsx:155 +msgid "Subscribe to notifications for this category" +msgstr "" + +#: src/forms/PurchaseOrderForms.tsx:314 +msgid "Assign Batch Code and Serial Numbers" +msgstr "" + +#: src/forms/PurchaseOrderForms.tsx:316 +msgid "Assign Batch Code" +msgstr "" + +#: src/forms/PurchaseOrderForms.tsx:336 msgid "Choose Location" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:308 +#: src/forms/PurchaseOrderForms.tsx:344 msgid "Item Destination selected" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:317 +#: src/forms/PurchaseOrderForms.tsx:353 msgid "Part category default location selected" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:327 +#: src/forms/PurchaseOrderForms.tsx:363 msgid "Received stock location selected" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:332 +#: src/forms/PurchaseOrderForms.tsx:368 msgid "Default location selected" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:343 -#: src/forms/PurchaseOrderForms.tsx:435 -msgid "Scan Barcode" -msgstr "" +#: src/forms/PurchaseOrderForms.tsx:421 +#~ msgid "Assign Batch Code{0}" +#~ msgstr "Assign Batch Code{0}" -#: src/forms/PurchaseOrderForms.tsx:388 +#: src/forms/PurchaseOrderForms.tsx:427 msgid "Set Location" -msgstr "" +msgstr "Atur Lokasi" -#: src/forms/PurchaseOrderForms.tsx:396 -msgid "Assign Batch Code{0}" -msgstr "" - -#: src/forms/PurchaseOrderForms.tsx:405 -#: src/forms/StockForms.tsx:420 +#: src/forms/PurchaseOrderForms.tsx:442 +#: src/forms/StockForms.tsx:539 msgid "Adjust Packaging" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:412 -msgid "Change Status" -msgstr "" - -#: src/forms/PurchaseOrderForms.tsx:418 -msgid "Add Note" -msgstr "" - #: src/forms/PurchaseOrderForms.tsx:444 #: src/forms/StockForms.tsx:428 -msgid "Remove item from list" +#~ msgid "Remove item from list" +#~ msgstr "Remove item from list" + +#: src/forms/PurchaseOrderForms.tsx:450 +msgid "Change Status" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:471 -#: src/forms/StockForms.tsx:499 -#: src/forms/StockForms.tsx:533 -#: src/forms/StockForms.tsx:562 -#: src/forms/StockForms.tsx:590 -#: src/forms/StockForms.tsx:621 -#: src/forms/StockForms.tsx:656 -#: src/forms/StockForms.tsx:698 -#: src/forms/StockForms.tsx:734 -#: src/pages/stock/StockDetail.tsx:181 -#: src/tables/ColumnRenderers.tsx:49 -#: src/tables/stock/StockTrackingTable.tsx:85 +#: src/forms/PurchaseOrderForms.tsx:456 +msgid "Add Note" +msgstr "Tambah Catatan" + +#: src/forms/PurchaseOrderForms.tsx:503 +#: src/forms/StockForms.tsx:614 +#: src/forms/StockForms.tsx:651 +#: src/forms/StockForms.tsx:677 +#: src/forms/StockForms.tsx:705 +#: src/forms/StockForms.tsx:736 +#: src/forms/StockForms.tsx:771 +#: src/forms/StockForms.tsx:813 +#: src/forms/StockForms.tsx:851 +#: src/pages/stock/StockDetail.tsx:202 +#: src/tables/ColumnRenderers.tsx:60 +#: src/tables/stock/StockTrackingTable.tsx:89 msgid "Location" -msgstr "" +msgstr "Lokasi" -#: src/forms/PurchaseOrderForms.tsx:486 +#: src/forms/PurchaseOrderForms.tsx:518 msgid "Store at default location" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:499 +#: src/forms/PurchaseOrderForms.tsx:533 msgid "Store at line item destination" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:509 +#: src/forms/PurchaseOrderForms.tsx:545 msgid "Store with already received stock" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:524 -#: src/pages/build/BuildDetail.tsx:219 -#: src/pages/stock/StockDetail.tsx:162 -#: src/pages/stock/StockDetail.tsx:599 -#: src/tables/build/BuildAllocatedStockTable.tsx:109 -#: src/tables/build/BuildOrderTestTable.tsx:188 -#: src/tables/sales/SalesOrderAllocationTable.tsx:87 +#: src/forms/PurchaseOrderForms.tsx:566 +#: src/pages/build/BuildDetail.tsx:222 +#: src/pages/stock/StockDetail.tsx:185 +#: src/pages/stock/StockDetail.tsx:793 +#: src/tables/build/BuildAllocatedStockTable.tsx:130 +#: src/tables/build/BuildOrderTestTable.tsx:189 +#: src/tables/build/BuildOutputTable.tsx:86 +#: src/tables/sales/SalesOrderAllocationTable.tsx:113 msgid "Batch Code" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:535 -msgid "Serial numbers" +#: src/forms/PurchaseOrderForms.tsx:566 +#~ msgid "Serial numbers" +#~ msgstr "Serial numbers" + +#: src/forms/PurchaseOrderForms.tsx:567 +msgid "Enter batch code for received items" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:544 -#: src/forms/StockForms.tsx:443 -#: src/pages/company/SupplierPartDetail.tsx:156 -#: src/pages/company/SupplierPartDetail.tsx:207 -#: src/pages/stock/StockDetail.tsx:244 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:192 +#: src/forms/PurchaseOrderForms.tsx:579 +#: src/forms/StockForms.tsx:152 +msgid "Serial Numbers" +msgstr "Nomor Seri" + +#: src/forms/PurchaseOrderForms.tsx:580 +msgid "Enter serial numbers for received items" +msgstr "" + +#: src/forms/PurchaseOrderForms.tsx:590 +#: src/forms/StockForms.tsx:556 +#: src/pages/company/SupplierPartDetail.tsx:168 +#: src/pages/company/SupplierPartDetail.tsx:219 +#: src/pages/stock/StockDetail.tsx:320 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:198 msgid "Packaging" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:556 -#: src/pages/build/BuildDetail.tsx:109 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:148 -#: src/pages/sales/ReturnOrderDetail.tsx:121 -#: src/pages/sales/SalesOrderDetail.tsx:127 -#: src/tables/build/BuildOrderTable.tsx:122 -#: src/tables/machine/MachineListTable.tsx:335 -#: src/tables/part/PartPurchaseOrdersTable.tsx:37 -#: src/tables/purchasing/PurchaseOrderTable.tsx:55 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:132 -#: src/tables/sales/ReturnOrderTable.tsx:46 -#: src/tables/sales/SalesOrderTable.tsx:53 -#: src/tables/settings/ImportSessionTable.tsx:115 -#: src/tables/stock/StockItemTable.tsx:294 -#: src/tables/stock/StockTrackingTable.tsx:52 -msgid "Status" -msgstr "" - -#: src/forms/PurchaseOrderForms.tsx:564 -#: src/pages/company/SupplierPartDetail.tsx:110 -#: src/tables/ColumnRenderers.tsx:132 +#: src/forms/PurchaseOrderForms.tsx:612 +#: src/pages/company/SupplierPartDetail.tsx:115 +#: src/tables/ColumnRenderers.tsx:143 msgid "Note" -msgstr "" - -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/pages/company/SupplierPartDetail.tsx:128 -#: src/tables/purchasing/SupplierPriceBreakTable.tsx:57 -msgid "SKU" -msgstr "" - -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/tables/part/PartPurchaseOrdersTable.tsx:120 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:178 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:127 -msgid "Received" -msgstr "" - -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/forms/StockForms.tsx:499 -#: src/forms/StockForms.tsx:533 -#: src/forms/StockForms.tsx:562 -#: src/forms/StockForms.tsx:590 -#: src/forms/StockForms.tsx:621 -#: src/forms/StockForms.tsx:656 -#: src/forms/StockForms.tsx:698 -#: src/forms/StockForms.tsx:734 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:413 -#: src/tables/RowActions.tsx:113 -msgid "Actions" -msgstr "" - -#: src/forms/PurchaseOrderForms.tsx:655 -msgid "Receive Line Items" -msgstr "" +msgstr "Catatan" #: src/forms/PurchaseOrderForms.tsx:658 #~ msgid "Receive line items" #~ msgstr "Receive line items" -#: src/forms/StockForms.tsx:104 -msgid "Add given quantity as packs instead of individual items" +#: src/forms/PurchaseOrderForms.tsx:689 +#: src/pages/company/SupplierPartDetail.tsx:133 +#: src/tables/purchasing/SupplierPriceBreakTable.tsx:57 +msgid "SKU" msgstr "" +#: src/forms/PurchaseOrderForms.tsx:689 +#: src/tables/part/PartPurchaseOrdersTable.tsx:126 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:184 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:247 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:152 +msgid "Received" +msgstr "Telah diterima" + +#: src/forms/PurchaseOrderForms.tsx:701 +msgid "Receive Line Items" +msgstr "" + +#: src/forms/ReturnOrderForms.tsx:201 +msgid "Receive Items" +msgstr "" + +#: src/forms/ReturnOrderForms.tsx:208 +msgid "Item received into stock" +msgstr "" + +#: src/forms/StockForms.tsx:80 +#: src/hooks/UsePlaceholder.tsx:57 +msgid "Next serial number" +msgstr "Nomor Seri selanjutnya" + #: src/forms/StockForms.tsx:110 #~ msgid "Create Stock Item" #~ msgstr "Create Stock Item" -#: src/forms/StockForms.tsx:117 +#: src/forms/StockForms.tsx:131 +msgid "Add given quantity as packs instead of individual items" +msgstr "" + +#: src/forms/StockForms.tsx:145 msgid "Enter initial quantity for this stock item" msgstr "" -#: src/forms/StockForms.tsx:124 -msgid "Serial Numbers" -msgstr "" - -#: src/forms/StockForms.tsx:125 +#: src/forms/StockForms.tsx:154 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" @@ -2943,82 +3545,102 @@ msgstr "" #~ msgid "Stock item updated" #~ msgstr "Stock item updated" -#: src/forms/StockForms.tsx:179 -#: src/pages/stock/StockDetail.tsx:434 -#: src/tables/stock/StockItemTable.tsx:417 -#: src/tables/stock/StockItemTable.tsx:535 +#: src/forms/StockForms.tsx:169 +#: src/pages/stock/StockDetail.tsx:131 +msgid "Stock Status" +msgstr "" + +#: src/forms/StockForms.tsx:218 +#: src/pages/stock/StockDetail.tsx:554 +#: src/tables/stock/StockItemTable.tsx:421 +#: src/tables/stock/StockItemTable.tsx:541 msgid "Add Stock Item" msgstr "" -#: src/forms/StockForms.tsx:362 -msgid "Loading..." +#: src/forms/StockForms.tsx:262 +msgid "Select the part to install" msgstr "" -#: src/forms/StockForms.tsx:408 +#: src/forms/StockForms.tsx:480 +msgid "Loading..." +msgstr "Memuat..." + +#: src/forms/StockForms.tsx:527 msgid "Move to default location" msgstr "" -#: src/forms/StockForms.tsx:499 -#: src/forms/StockForms.tsx:533 -#: src/forms/StockForms.tsx:562 -#: src/forms/StockForms.tsx:590 -#: src/forms/StockForms.tsx:621 -#: src/forms/StockForms.tsx:656 -#: src/forms/StockForms.tsx:698 -#: src/forms/StockForms.tsx:734 -#: src/pages/part/PartDetail.tsx:230 -#: src/pages/part/PartDetail.tsx:843 -#: src/tables/stock/StockItemTable.tsx:325 +#: src/forms/StockForms.tsx:614 +#: src/forms/StockForms.tsx:651 +#: src/forms/StockForms.tsx:677 +#: src/forms/StockForms.tsx:705 +#: src/forms/StockForms.tsx:736 +#: src/forms/StockForms.tsx:771 +#: src/forms/StockForms.tsx:813 +#: src/forms/StockForms.tsx:851 +#: src/pages/part/PartDetail.tsx:251 +#: src/pages/part/PartDetail.tsx:875 +#: src/tables/stock/StockItemTable.tsx:329 msgid "In Stock" msgstr "" -#: src/forms/StockForms.tsx:499 +#: src/forms/StockForms.tsx:614 msgid "Move" msgstr "" -#: src/forms/StockForms.tsx:562 -#: src/pages/stock/StockDetail.tsx:518 -#: src/tables/stock/StockItemTestResultTable.tsx:328 +#: src/forms/StockForms.tsx:677 +#: src/pages/stock/StockDetail.tsx:681 +#: src/tables/stock/StockItemTestResultTable.tsx:346 msgid "Add" -msgstr "" +msgstr "Tambah" -#: src/forms/StockForms.tsx:590 -#: src/pages/Index/Scan.tsx:266 -#: src/pages/stock/StockDetail.tsx:508 +#: src/forms/StockForms.tsx:705 +#: src/pages/Index/Scan.tsx:280 +#: src/pages/stock/StockDetail.tsx:670 msgid "Count" msgstr "" -#: src/forms/StockForms.tsx:835 +#: src/forms/StockForms.tsx:953 +#: src/pages/stock/StockDetail.tsx:682 +#: src/tables/stock/StockItemTable.tsx:454 msgid "Add Stock" msgstr "" -#: src/forms/StockForms.tsx:844 +#: src/forms/StockForms.tsx:962 +#: src/pages/stock/StockDetail.tsx:691 +#: src/tables/stock/StockItemTable.tsx:463 msgid "Remove Stock" msgstr "" -#: src/forms/StockForms.tsx:853 -#: src/pages/part/PartDetail.tsx:1017 +#: src/forms/StockForms.tsx:971 +#: src/pages/part/PartDetail.tsx:1039 +#: src/pages/stock/StockDetail.tsx:712 +#: src/tables/stock/StockItemTable.tsx:483 msgid "Transfer Stock" msgstr "" -#: src/forms/StockForms.tsx:862 -#: src/pages/part/PartDetail.tsx:1006 +#: src/forms/StockForms.tsx:980 +#: src/pages/part/PartDetail.tsx:1028 +#: src/pages/stock/LocationDetail.tsx:314 +#: src/pages/stock/LocationDetail.tsx:318 +#: src/tables/stock/StockItemTable.tsx:472 +#: src/tables/stock/StockItemTable.tsx:476 msgid "Count Stock" msgstr "" -#: src/forms/StockForms.tsx:871 +#: src/forms/StockForms.tsx:989 msgid "Change Stock Status" msgstr "" -#: src/forms/StockForms.tsx:880 +#: src/forms/StockForms.tsx:998 msgid "Merge Stock" msgstr "" -#: src/forms/StockForms.tsx:899 +#: src/forms/StockForms.tsx:1017 +#: src/tables/stock/StockItemTable.tsx:530 msgid "Delete Stock Items" msgstr "" -#: src/forms/StockForms.tsx:906 +#: src/forms/StockForms.tsx:1024 msgid "Parent stock location" msgstr "" @@ -3042,11 +3664,11 @@ msgstr "" #~ msgid "You have been logged out" #~ msgstr "You have been logged out" -#: src/functions/auth.tsx:117 +#: src/functions/auth.tsx:128 msgid "Logged Out" msgstr "" -#: src/functions/auth.tsx:118 +#: src/functions/auth.tsx:129 msgid "Successfully logged out" msgstr "" @@ -3062,20 +3684,20 @@ msgstr "" #~ msgid "Found an existing login - welcome back!" #~ msgstr "Found an existing login - welcome back!" -#: src/functions/auth.tsx:156 +#: src/functions/auth.tsx:167 msgid "Check your inbox for a reset link. This only works if you have an account. Check in spam too." msgstr "" -#: src/functions/auth.tsx:163 +#: src/functions/auth.tsx:174 #: src/pages/Auth/Set-Password.tsx:39 msgid "Reset failed" msgstr "" -#: src/functions/auth.tsx:194 +#: src/functions/auth.tsx:205 msgid "Logged In" msgstr "" -#: src/functions/auth.tsx:195 +#: src/functions/auth.tsx:206 msgid "Successfully logged in" msgstr "" @@ -3095,30 +3717,38 @@ msgstr "" #~ msgid "method parameter not supplied" #~ msgstr "method parameter not supplied" -#: src/functions/notifications.tsx:10 +#: src/functions/notifications.tsx:12 msgid "Not implemented" msgstr "" -#: src/functions/notifications.tsx:11 +#: src/functions/notifications.tsx:13 msgid "This feature is not yet implemented" msgstr "" -#: src/functions/notifications.tsx:21 -msgid "Permission denied" -msgstr "" +#: src/functions/notifications.tsx:24 +#~ msgid "Permission denied" +#~ msgstr "Permission denied" -#: src/functions/notifications.tsx:22 +#: src/functions/notifications.tsx:25 msgid "You do not have permission to perform this action" msgstr "" -#: src/functions/notifications.tsx:33 +#: src/functions/notifications.tsx:36 msgid "Invalid Return Code" msgstr "" -#: src/functions/notifications.tsx:34 +#: src/functions/notifications.tsx:37 msgid "Server returned status {returnCode}" msgstr "" +#: src/functions/notifications.tsx:47 +msgid "Timeout" +msgstr "" + +#: src/functions/notifications.tsx:48 +msgid "The request timed out" +msgstr "" + #: src/hooks/UseForm.tsx:88 msgid "Item Created" msgstr "" @@ -3135,20 +3765,24 @@ msgstr "" msgid "Are you sure you want to delete this item?" msgstr "" +#: src/hooks/UsePlaceholder.tsx:59 +msgid "Latest serial number" +msgstr "" + #: src/pages/Auth/Logged-In.tsx:22 msgid "Checking if you are already logged in" msgstr "" -#: src/pages/Auth/Login.tsx:31 -#: src/pages/Index/Scan.tsx:329 +#: src/pages/Auth/Login.tsx:35 +#: src/pages/Index/Scan.tsx:343 msgid "No selection" -msgstr "" +msgstr "Tidak ada pilihan" -#: src/pages/Auth/Login.tsx:87 +#: src/pages/Auth/Login.tsx:91 msgid "Welcome, log in below" msgstr "" -#: src/pages/Auth/Login.tsx:89 +#: src/pages/Auth/Login.tsx:93 msgid "Register below" msgstr "" @@ -3162,8 +3796,8 @@ msgstr "" #: src/pages/Auth/Reset.tsx:41 #: src/pages/Auth/Set-Password.tsx:112 -msgid "Send mail" -msgstr "" +#~ msgid "Send mail" +#~ msgstr "Send mail" #: src/pages/Auth/Set-Password.tsx:30 msgid "Token invalid" @@ -3174,22 +3808,22 @@ msgid "You need to provide a valid token to set a new password. Check your inbox msgstr "" #: src/pages/Auth/Set-Password.tsx:49 -msgid "No token provided" -msgstr "" +#~ msgid "No token provided" +#~ msgstr "No token provided" #: src/pages/Auth/Set-Password.tsx:50 -msgid "You need to provide a token to set a new password. Check your inbox for a reset link." -msgstr "" +#~ msgid "You need to provide a token to set a new password. Check your inbox for a reset link." +#~ msgstr "You need to provide a token to set a new password. Check your inbox for a reset link." -#: src/pages/Auth/Set-Password.tsx:73 +#: src/pages/Auth/Set-Password.tsx:68 msgid "Password set" msgstr "" -#: src/pages/Auth/Set-Password.tsx:74 +#: src/pages/Auth/Set-Password.tsx:69 msgid "The password was set successfully. You can now login with your new password" msgstr "" -#: src/pages/Auth/Set-Password.tsx:101 +#: src/pages/Auth/Set-Password.tsx:96 msgid "Set new password" msgstr "" @@ -3206,20 +3840,20 @@ msgstr "" #~ msgstr "Sorry, an unexpected error has occurred." #: src/pages/Index/Dashboard.tsx:22 -msgid "Autoupdate" -msgstr "" +#~ msgid "Autoupdate" +#~ msgstr "Autoupdate" #: src/pages/Index/Dashboard.tsx:26 -msgid "This page is a replacement for the old start page with the same information. This page will be deprecated and replaced by the home page." -msgstr "" +#~ msgid "This page is a replacement for the old start page with the same information. This page will be deprecated and replaced by the home page." +#~ msgstr "This page is a replacement for the old start page with the same information. This page will be deprecated and replaced by the home page." #: src/pages/Index/Home.tsx:58 -msgid "Welcome to your Dashboard{0}" -msgstr "" +#~ msgid "Welcome to your Dashboard{0}" +#~ msgstr "Welcome to your Dashboard{0}" #: src/pages/Index/Playground.tsx:222 -msgid "This page is a showcase for the possibilities of Platform UI." -msgstr "" +#~ msgid "This page is a showcase for the possibilities of Platform UI." +#~ msgstr "This page is a showcase for the possibilities of Platform UI." #: src/pages/Index/Profile/Profile.tsx:30 #: src/pages/Index/Profile/Profile.tsx:141 @@ -3365,126 +3999,191 @@ msgstr "" msgid "Image Barcode" msgstr "" -#: src/pages/Index/Scan.tsx:247 +#: src/pages/Index/Scan.tsx:261 msgid "Selected elements are not known" msgstr "" -#: src/pages/Index/Scan.tsx:254 +#: src/pages/Index/Scan.tsx:268 msgid "Multiple object types selected" msgstr "" -#: src/pages/Index/Scan.tsx:261 +#: src/pages/Index/Scan.tsx:275 msgid "Actions for {0}" msgstr "" -#: src/pages/Index/Scan.tsx:282 +#: src/pages/Index/Scan.tsx:296 msgid "Scan Page" -msgstr "" +msgstr "Pindai Halaman" -#: src/pages/Index/Scan.tsx:285 +#: src/pages/Index/Scan.tsx:299 msgid "This page can be used for continuously scanning items and taking actions on them." msgstr "" -#: src/pages/Index/Scan.tsx:292 +#: src/pages/Index/Scan.tsx:306 msgid "Toggle Fullscreen" msgstr "" -#: src/pages/Index/Scan.tsx:305 +#: src/pages/Index/Scan.tsx:319 msgid "Select the input method you want to use to scan items." msgstr "" -#: src/pages/Index/Scan.tsx:307 +#: src/pages/Index/Scan.tsx:321 msgid "Input" msgstr "" -#: src/pages/Index/Scan.tsx:314 +#: src/pages/Index/Scan.tsx:328 msgid "Select input method" msgstr "" -#: src/pages/Index/Scan.tsx:315 +#: src/pages/Index/Scan.tsx:329 msgid "Nothing found" msgstr "" -#: src/pages/Index/Scan.tsx:323 +#: src/pages/Index/Scan.tsx:337 msgid "Depending on the selected parts actions will be shown here. Not all barcode types are supported currently." msgstr "" -#: src/pages/Index/Scan.tsx:325 +#: src/pages/Index/Scan.tsx:339 msgid "Action" -msgstr "" +msgstr "Aksi" -#: src/pages/Index/Scan.tsx:334 +#: src/pages/Index/Scan.tsx:348 msgid "{0} items selected" msgstr "" -#: src/pages/Index/Scan.tsx:337 +#: src/pages/Index/Scan.tsx:351 msgid "General Actions" msgstr "" -#: src/pages/Index/Scan.tsx:351 +#: src/pages/Index/Scan.tsx:365 msgid "Lookup part" msgstr "" -#: src/pages/Index/Scan.tsx:359 +#: src/pages/Index/Scan.tsx:373 msgid "Open Link" msgstr "" -#: src/pages/Index/Scan.tsx:375 +#: src/pages/Index/Scan.tsx:389 msgid "History is locally kept in this browser." msgstr "" -#: src/pages/Index/Scan.tsx:376 +#: src/pages/Index/Scan.tsx:390 msgid "The history is kept in this browser's local storage. So it won't be shared with other users or other devices but is persistent through reloads. You can select items in the history to perform actions on them. To add items, scan/enter them in the Input area." msgstr "" -#: src/pages/Index/Scan.tsx:378 +#: src/pages/Index/Scan.tsx:392 #: src/pages/Notifications.tsx:100 msgid "History" -msgstr "" +msgstr "Riwayat" -#: src/pages/Index/Scan.tsx:384 +#: src/pages/Index/Scan.tsx:398 msgid "Delete History" -msgstr "" +msgstr "Hapus Riwayat" -#: src/pages/Index/Scan.tsx:449 +#: src/pages/Index/Scan.tsx:463 msgid "No history" -msgstr "" +msgstr "Tidak ada riwayat" -#: src/pages/Index/Scan.tsx:467 +#: src/pages/Index/Scan.tsx:481 msgid "Item" msgstr "" -#: src/pages/Index/Scan.tsx:470 +#: src/pages/Index/Scan.tsx:484 msgid "Type" msgstr "" -#: src/pages/Index/Scan.tsx:473 +#: src/pages/Index/Scan.tsx:487 msgid "Source" -msgstr "" +msgstr "Sumber" -#: src/pages/Index/Scan.tsx:476 +#: src/pages/Index/Scan.tsx:490 msgid "Scanned at" msgstr "" -#: src/pages/Index/Scan.tsx:528 +#: src/pages/Index/Scan.tsx:547 msgid "Enter item serial or data" msgstr "" -#: src/pages/Index/Scan.tsx:540 +#: src/pages/Index/Scan.tsx:559 msgid "Add dummy item" msgstr "" -#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:41 -msgid "Account Details" +#: src/pages/Index/Scan.tsx:569 +msgid "Start scanning by selecting a camera and pressing the play button." msgstr "" +#: src/pages/Index/Scan.tsx:650 +msgid "Error while getting camera" +msgstr "" + +#: src/pages/Index/Scan.tsx:673 +msgid "Error while scanning" +msgstr "" + +#: src/pages/Index/Scan.tsx:687 +msgid "Error while stopping" +msgstr "" + +#: src/pages/Index/Scan.tsx:745 +msgid "Stop scanning" +msgstr "Berhenti Memindai" + +#: src/pages/Index/Scan.tsx:754 +msgid "Start scanning" +msgstr "Mulai Memindai" + +#: src/pages/Index/Scan.tsx:763 +msgid "Scanning" +msgstr "Memindai" + +#: src/pages/Index/Scan.tsx:763 +msgid "Not scanning" +msgstr "Tidak Terpindai" + +#: src/pages/Index/Scan.tsx:775 +msgid "Select Camera" +msgstr "Pilih Kamera" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:28 +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:50 +msgid "Edit User Information" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:32 +msgid "User details updated" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:41 +msgid "User Details" +msgstr "Rincian Pengguna" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:41 +#~ msgid "Account Details" +#~ msgstr "Account Details" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:44 +msgid "User Actions" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:48 +msgid "Edit User" +msgstr "Ubah Pengguna" + #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:50 -msgid "First name" -msgstr "" +#~ msgid "First name" +#~ msgstr "First name" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:54 +msgid "Set Password" +msgstr "Atur Kata Sandi" #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:55 -msgid "Last name" -msgstr "" +#~ msgid "Last name" +#~ msgstr "Last name" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:56 +msgid "Set User Password" +msgstr "Atur Kata Sandi Pengguna" #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:58 #~ msgid "First name: {0}" @@ -3495,15 +4194,28 @@ msgstr "" #~ msgstr "Last name: {0}" #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:67 -msgid "First name:" -msgstr "" +#~ msgid "First name:" +#~ msgstr "First name:" #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:71 -msgid "Last name:" +#~ msgid "Last name:" +#~ msgstr "Last name:" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:73 +msgid "First Name" +msgstr "Nama Depan" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:79 +msgid "Last Name" +msgstr "Nama Belakang" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:85 +msgid "Staff Access" msgstr "" -#: src/pages/Index/Settings/AccountSettings/DisplaySettingsPanel.tsx:41 -msgid "Use pseudo language" +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:93 +#: src/tables/settings/UserTable.tsx:293 +msgid "Superuser" msgstr "" #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:55 @@ -3542,23 +4254,23 @@ msgstr "" #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:156 msgid "Verified" -msgstr "" +msgstr "Terverifikasi" #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:160 msgid "Unverified" -msgstr "" +msgstr "Tidak Terverifikasi" #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:173 msgid "Add Email Address" -msgstr "" +msgstr "Tambah Alamat Surel" #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:176 msgid "E-Mail" -msgstr "" +msgstr "Surel" #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:177 msgid "E-Mail address" -msgstr "" +msgstr "Alamat Surel" #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:189 msgid "Make Primary" @@ -3570,7 +4282,7 @@ msgstr "" #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:205 msgid "Add Email" -msgstr "" +msgstr "Tambah Surel" #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:270 msgid "Provider has not been configured" @@ -3600,27 +4312,6 @@ msgstr "" msgid "No tokens configured" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:398 -#: src/pages/part/PartDetail.tsx:297 -#: src/tables/bom/UsedInTable.tsx:84 -#: src/tables/build/BuildOrderTable.tsx:110 -#: src/tables/company/CompanyTable.tsx:61 -#: src/tables/company/CompanyTable.tsx:95 -#: src/tables/machine/MachineListTable.tsx:332 -#: src/tables/machine/MachineListTable.tsx:594 -#: src/tables/part/ParametricPartTable.tsx:223 -#: src/tables/part/PartTable.tsx:178 -#: src/tables/part/PartVariantTable.tsx:15 -#: src/tables/plugin/PluginListTable.tsx:149 -#: src/tables/plugin/PluginListTable.tsx:271 -#: src/tables/plugin/PluginListTable.tsx:563 -#: src/tables/purchasing/SupplierPartTable.tsx:98 -#: src/tables/purchasing/SupplierPartTable.tsx:187 -#: src/tables/settings/UserTable.tsx:284 -#: src/tables/stock/StockItemTable.tsx:289 -msgid "Active" -msgstr "" - #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:401 msgid "Expiry" msgstr "" @@ -3630,38 +4321,74 @@ msgid "Last Seen" msgstr "" #: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:65 -msgid "bars" -msgstr "" +#~ msgid "bars" +#~ msgstr "bars" #: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:66 -msgid "oval" -msgstr "" +#~ msgid "oval" +#~ msgstr "oval" #: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:67 -msgid "dots" -msgstr "" +#~ msgid "dots" +#~ msgstr "dots" #: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:81 -msgid "Theme" -msgstr "" +#~ msgid "Theme" +#~ msgstr "Theme" #: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:87 -msgid "Primary color" +#~ msgid "Primary color" +#~ msgstr "Primary color" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:88 +msgid "Bars" msgstr "" -#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:100 +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:89 +msgid "Oval" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:90 +msgid "Dots" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:101 +msgid "Display Settings" +msgstr "Pengaturan Tampilan" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:107 +msgid "Language" +msgstr "Bahasa" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:115 +msgid "Use pseudo language" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:122 +msgid "Color Mode" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:133 +msgid "Highlight color" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:145 +msgid "Example" +msgstr "Contoh" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:151 msgid "White color" -msgstr "" +msgstr "Warna Putih" -#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:108 +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:167 msgid "Black color" -msgstr "" +msgstr "Warna Hitam" -#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:116 +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:183 msgid "Border Radius" msgstr "" -#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:132 +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:199 msgid "Loader" msgstr "" @@ -3673,89 +4400,156 @@ msgstr "" #~ msgid "Advanced Amininistrative Options for InvenTree" #~ msgstr "Advanced Amininistrative Options for InvenTree" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:104 +#: src/pages/Index/Settings/AdminCenter/CurrencyManagmentPanel.tsx:27 +#: src/tables/ColumnRenderers.tsx:262 +msgid "Currency" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/CurrencyManagmentPanel.tsx:32 +msgid "Rate" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/CurrencyManagmentPanel.tsx:44 +msgid "Exchange rates updated" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/CurrencyManagmentPanel.tsx:50 +msgid "Exchange rate update error" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/CurrencyManagmentPanel.tsx:62 +msgid "Refresh currency exchange rates" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/CurrencyManagmentPanel.tsx:99 +msgid "Last fetched" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/CurrencyManagmentPanel.tsx:100 +msgid "Base currency" +msgstr "Mata uang utama" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:115 msgid "Data Import" msgstr "" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:110 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:121 +msgid "Barcode Scans" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:127 msgid "Background Tasks" msgstr "" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:116 -msgid "Error Reports" -msgstr "" - -#: src/pages/Index/Settings/AdminCenter/Index.tsx:122 -msgid "Currencies" -msgstr "" - #: src/pages/Index/Settings/AdminCenter/Index.tsx:127 #~ msgid "Templates" #~ msgstr "Templates" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:140 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:133 +msgid "Error Reports" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:139 +msgid "Currencies" +msgstr "Mata Uang" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:157 +msgid "Custom States" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:163 +#: src/pages/Index/Settings/AdminCenter/UnitManagmentPanel.tsx:58 msgid "Custom Units" msgstr "" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:146 -#: src/pages/part/CategoryDetail.tsx:264 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:169 +#: src/pages/part/CategoryDetail.tsx:269 msgid "Part Parameters" msgstr "" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:152 -msgid "Category Parameters" -msgstr "" - -#: src/pages/Index/Settings/AdminCenter/Index.tsx:170 -msgid "Location Types" -msgstr "" - #: src/pages/Index/Settings/AdminCenter/Index.tsx:170 #~ msgid "Location types" #~ msgstr "Location types" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:182 -#: src/tables/machine/MachineTypeTable.tsx:287 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:175 +msgid "Category Parameters" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:181 +msgid "Stocktake" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:199 +msgid "Location Types" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:211 +#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:48 +#: src/tables/machine/MachineTypeTable.tsx:308 msgid "Machines" msgstr "" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:192 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:221 msgid "Quick Actions" msgstr "" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:197 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:226 msgid "Add a new user" msgstr "" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:222 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:252 msgid "Advanced Options" msgstr "" #: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:43 -msgid "Machine types" -msgstr "" +#~ msgid "Machine types" +#~ msgstr "Machine types" #: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:53 -msgid "Machine Error Stack" +#~ msgid "Machine Error Stack" +#~ msgstr "Machine Error Stack" + +#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:56 +msgid "Machine Types" msgstr "" #: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:62 -msgid "There are no machine registry errors." +#~ msgid "There are no machine registry errors." +#~ msgstr "There are no machine registry errors." + +#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:64 +msgid "Machine Errors" msgstr "" -#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:28 -#: src/tables/settings/UserTable.tsx:119 +#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:77 +msgid "Registry Registry Errors" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:80 +msgid "There are machine registry errors" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:86 +msgid "Machine Registry Errors" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:89 +msgid "There are no machine registry errors" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:31 +#: src/tables/settings/UserTable.tsx:118 msgid "Info" -msgstr "" - -#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:32 -msgid "External plugins are not enabled for this InvenTree installation." -msgstr "" +msgstr "Info" #: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:33 #~ msgid "Plugin Error Stack" #~ msgstr "Plugin Error Stack" +#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:35 +msgid "External plugins are not enabled for this InvenTree installation." +msgstr "" + #: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:45 #~ msgid "Warning" #~ msgstr "Warning" @@ -3764,34 +4558,46 @@ msgstr "" #~ msgid "Changing the settings below require you to immediately restart the server. Do not change this while under active usage." #~ msgstr "Changing the settings below require you to immediately restart the server. Do not change this while under active usage." -#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:50 +#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:73 msgid "Plugin Errors" msgstr "" -#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:59 -msgid "Plugin Settings" +#: src/pages/Index/Settings/AdminCenter/ReportTemplatePanel.tsx:17 +msgid "Page Size" +msgstr "Ukuran Halaman" + +#: src/pages/Index/Settings/AdminCenter/ReportTemplatePanel.tsx:20 +msgid "Landscape" msgstr "" -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:53 -msgid "Background Worker Not Running" +#: src/pages/Index/Settings/AdminCenter/ReportTemplatePanel.tsx:26 +msgid "Attach to Model" msgstr "" -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:54 +#: src/pages/Index/Settings/AdminCenter/StocktakePanel.tsx:25 +msgid "Stocktake Reports" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:30 msgid "The background task manager service is not running. Contact your system administrator." msgstr "" -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:60 -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:76 +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:35 +#~ msgid "Background Worker Not Running" +#~ msgstr "Background Worker Not Running" + +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:36 +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:45 msgid "Pending Tasks" msgstr "" -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:64 -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:84 +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:37 +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:53 msgid "Scheduled Tasks" msgstr "" -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:68 -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:92 +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:38 +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:61 msgid "Failed Tasks" msgstr "" @@ -3811,11 +4617,6 @@ msgstr "" #~ msgid "Reports" #~ msgstr "Reports" -#: src/pages/Index/Settings/AdminCenter/TemplateManagementPanel.tsx:89 -#: src/pages/build/BuildDetail.tsx:373 -#~ msgid "Report" -#~ msgstr "Report" - #: src/pages/Index/Settings/AdminCenter/TemplateManagementPanel.tsx:99 #~ msgid "Purchase order" #~ msgstr "Purchase order" @@ -3836,23 +4637,35 @@ msgstr "" #~ msgid "Stock location" #~ msgstr "Stock location" +#: src/pages/Index/Settings/AdminCenter/UnitManagmentPanel.tsx:21 +msgid "Alias" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/UnitManagmentPanel.tsx:22 +msgid "Dimensionless" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/UnitManagmentPanel.tsx:66 +msgid "All units" +msgstr "" + #: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:32 msgid "Select settings relevant for user lifecycle. More available in" msgstr "" #: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:37 -msgid "System settings" -msgstr "" +#~ msgid "System settings" +#~ msgstr "System settings" -#: src/pages/Index/Settings/SystemSettings.tsx:67 +#: src/pages/Index/Settings/SystemSettings.tsx:66 msgid "Login" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:93 +#: src/pages/Index/Settings/SystemSettings.tsx:92 msgid "Barcodes" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:115 +#: src/pages/Index/Settings/SystemSettings.tsx:116 msgid "Pricing" msgstr "" @@ -3864,64 +4677,46 @@ msgstr "" #~ msgid "Exchange Rates" #~ msgstr "Exchange Rates" -#: src/pages/Index/Settings/SystemSettings.tsx:150 +#: src/pages/Index/Settings/SystemSettings.tsx:151 msgid "Labels" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:156 -#: src/pages/Index/Settings/UserSettings.tsx:132 +#: src/pages/Index/Settings/SystemSettings.tsx:157 +#: src/pages/Index/Settings/UserSettings.tsx:133 msgid "Reporting" msgstr "" #: src/pages/Index/Settings/SystemSettings.tsx:231 -#: src/pages/part/PartDetail.tsx:682 -msgid "Stocktake" -msgstr "" - -#: src/pages/Index/Settings/SystemSettings.tsx:237 -#: src/pages/build/BuildDetail.tsx:554 -#: src/pages/build/BuildIndex.tsx:22 -#: src/pages/part/PartDetail.tsx:616 -#: src/pages/sales/SalesOrderDetail.tsx:333 +#: src/pages/build/BuildIndex.tsx:27 +#: src/pages/part/PartDetail.tsx:636 +#: src/pages/sales/SalesOrderDetail.tsx:355 msgid "Build Orders" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:318 -msgid "Switch to User Setting" -msgstr "" +#: src/pages/Index/Settings/SystemSettings.tsx:317 +#~ msgid "Switch to User Setting" +#~ msgstr "Switch to User Setting" -#: src/pages/Index/Settings/UserSettings.tsx:34 +#: src/pages/Index/Settings/UserSettings.tsx:35 msgid "Account" msgstr "" -#: src/pages/Index/Settings/UserSettings.tsx:40 +#: src/pages/Index/Settings/UserSettings.tsx:41 msgid "Security" msgstr "" -#: src/pages/Index/Settings/UserSettings.tsx:78 +#: src/pages/Index/Settings/UserSettings.tsx:79 msgid "Display Options" msgstr "" -#: src/pages/Index/Settings/UserSettings.tsx:150 -msgid "Account Settings" -msgstr "" - -#: src/pages/Index/Settings/UserSettings.tsx:158 -msgid "Switch to System Setting" -msgstr "" - -#: src/pages/Index/UserSettings.tsx:103 -#~ msgid "User Settings" -#~ msgstr "User Settings" +#: src/pages/Index/Settings/UserSettings.tsx:159 +#~ msgid "Switch to System Setting" +#~ msgstr "Switch to System Setting" #: src/pages/Logged-In.tsx:24 #~ msgid "Found an exsisting login - using it to log you in." #~ msgstr "Found an exsisting login - using it to log you in." -#: src/pages/NotFound.tsx:17 -#~ msgid "Not Found" -#~ msgstr "Not Found" - #: src/pages/NotFound.tsx:20 #~ msgid "Sorry, this page is not known or was moved." #~ msgstr "Sorry, this page is not known or was moved." @@ -3942,104 +4737,86 @@ msgstr "" #~ msgid "Build Status" #~ msgstr "Build Status" -#: src/pages/build/BuildDetail.tsx:102 -#: src/pages/part/PartDetail.tsx:150 +#: src/pages/build/BuildDetail.tsx:97 +#: src/pages/company/ManufacturerPartDetail.tsx:81 +#: src/pages/company/SupplierPartDetail.tsx:91 +#: src/pages/part/PartDetail.tsx:171 +#: src/pages/stock/StockDetail.tsx:122 #: src/tables/bom/BomTable.tsx:118 #: src/tables/bom/UsedInTable.tsx:39 -#: src/tables/build/BuildLineTable.tsx:173 -#: src/tables/build/BuildOrderTable.tsx:55 -#: src/tables/sales/SalesOrderLineItemTable.tsx:62 -#: src/tables/stock/StockItemTable.tsx:53 +#: src/tables/build/BuildAllocatedStockTable.tsx:104 +#: src/tables/build/BuildLineTable.tsx:324 +#: src/tables/build/BuildOrderTable.tsx:64 +#: src/tables/sales/SalesOrderLineItemTable.tsx:70 +#: src/tables/stock/StockItemTable.tsx:54 msgid "IPN" msgstr "" -#: src/pages/build/BuildDetail.tsx:115 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:121 -#: src/pages/sales/ReturnOrderDetail.tsx:95 -#: src/pages/sales/SalesOrderDetail.tsx:101 -#: src/tables/ColumnRenderers.tsx:121 -#: src/tables/build/BuildAllocatedStockTable.tsx:90 -#: src/tables/build/BuildLineTable.tsx:184 +#: src/pages/build/BuildDetail.tsx:110 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:115 +#: src/pages/sales/ReturnOrderDetail.tsx:86 +#: src/pages/sales/SalesOrderDetail.tsx:95 +#: src/tables/ColumnRenderers.tsx:132 +#: src/tables/build/BuildAllocatedStockTable.tsx:111 +#: src/tables/build/BuildLineTable.tsx:335 msgid "Reference" msgstr "" -#: src/pages/build/BuildDetail.tsx:121 -#: src/pages/company/CompanyDetail.tsx:90 -#: src/pages/company/ManufacturerPartDetail.tsx:83 -#: src/pages/company/SupplierPartDetail.tsx:96 -#: src/pages/part/CategoryDetail.tsx:101 -#: src/pages/part/PartDetail.tsx:157 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:142 -#: src/pages/sales/ReturnOrderDetail.tsx:115 -#: src/pages/sales/SalesOrderDetail.tsx:121 -#: src/pages/stock/LocationDetail.tsx:109 -#: src/tables/ColumnRenderers.tsx:81 -#: src/tables/bom/UsedInTable.tsx:44 -#: src/tables/build/BuildAllocatedStockTable.tsx:70 -#: src/tables/build/BuildLineTable.tsx:178 -#: src/tables/machine/MachineTypeTable.tsx:69 -#: src/tables/machine/MachineTypeTable.tsx:112 -#: src/tables/machine/MachineTypeTable.tsx:219 -#: src/tables/machine/MachineTypeTable.tsx:323 -#: src/tables/part/RelatedPartTable.tsx:64 -#: src/tables/plugin/PluginListTable.tsx:129 -#: src/tables/plugin/PluginListTable.tsx:276 -#: src/tables/sales/SalesOrderAllocationTable.tsx:56 -#: src/tables/sales/SalesOrderLineItemTable.tsx:67 -#: src/tables/stock/LocationTypesTable.tsx:74 -msgid "Description" -msgstr "" - -#: src/pages/build/BuildDetail.tsx:129 +#: src/pages/build/BuildDetail.tsx:124 msgid "Parent Build" msgstr "" -#: src/pages/build/BuildDetail.tsx:140 +#: src/pages/build/BuildDetail.tsx:135 msgid "Build Quantity" msgstr "" -#: src/pages/build/BuildDetail.tsx:148 -#: src/pages/build/BuildDetail.tsx:274 +#: src/pages/build/BuildDetail.tsx:143 +#: src/pages/build/BuildDetail.tsx:277 msgid "Completed Outputs" msgstr "" -#: src/pages/build/BuildDetail.tsx:165 -#: src/tables/build/BuildOrderTable.tsx:151 +#: src/pages/build/BuildDetail.tsx:160 +#: src/tables/build/BuildOrderTable.tsx:142 msgid "Issued By" msgstr "" -#: src/pages/build/BuildDetail.tsx:172 -#: src/pages/part/PartDetail.tsx:365 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:220 -#: src/pages/sales/ReturnOrderDetail.tsx:199 -#: src/pages/sales/SalesOrderDetail.tsx:208 -#: src/tables/build/BuildOrderTable.tsx:157 -#: src/tables/purchasing/PurchaseOrderTable.tsx:75 -#: src/tables/sales/ReturnOrderTable.tsx:66 -#: src/tables/sales/SalesOrderTable.tsx:73 +#: src/pages/build/BuildDetail.tsx:167 +#: src/pages/part/PartDetail.tsx:406 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:244 +#: src/pages/sales/ReturnOrderDetail.tsx:216 +#: src/pages/sales/SalesOrderDetail.tsx:226 +#: src/tables/build/BuildOrderTable.tsx:148 +#: src/tables/purchasing/PurchaseOrderTable.tsx:76 +#: src/tables/sales/ReturnOrderTable.tsx:74 +#: src/tables/sales/SalesOrderTable.tsx:74 msgid "Responsible" msgstr "" -#: src/pages/build/BuildDetail.tsx:179 -#: src/tables/settings/PendingTasksTable.tsx:32 +#: src/pages/build/BuildDetail.tsx:174 +#: src/tables/settings/PendingTasksTable.tsx:36 msgid "Created" msgstr "" +#: src/pages/build/BuildDetail.tsx:181 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:229 +#: src/pages/sales/ReturnOrderDetail.tsx:201 +#: src/pages/sales/SalesOrderDetail.tsx:212 +#: src/tables/ColumnRenderers.tsx:226 +#: src/tables/part/PartPurchaseOrdersTable.tsx:100 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:135 +#: src/tables/sales/SalesOrderLineItemTable.tsx:107 +msgid "Target Date" +msgstr "" + #: src/pages/build/BuildDetail.tsx:185 #: src/pages/part/PartDetail.tsx:269 #: src/pages/stock/StockDetail.tsx:150 #~ msgid "View part barcode" #~ msgstr "View part barcode" -#: src/pages/build/BuildDetail.tsx:186 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:213 -#: src/pages/sales/ReturnOrderDetail.tsx:192 -#: src/pages/sales/SalesOrderDetail.tsx:201 -#: src/tables/ColumnRenderers.tsx:212 -#: src/tables/part/PartPurchaseOrdersTable.tsx:99 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:110 -#: src/tables/sales/SalesOrderLineItemTable.tsx:99 -msgid "Target Date" +#: src/pages/build/BuildDetail.tsx:188 +#: src/tables/sales/SalesOrderLineItemTable.tsx:281 +msgid "Completed" msgstr "" #: src/pages/build/BuildDetail.tsx:190 @@ -4047,10 +4824,6 @@ msgstr "" #~ msgid "Link custom barcode to part" #~ msgstr "Link custom barcode to part" -#: src/pages/build/BuildDetail.tsx:193 -msgid "Completed" -msgstr "" - #: src/pages/build/BuildDetail.tsx:196 #: src/pages/part/PartDetail.tsx:280 #~ msgid "Unlink custom barcode from part" @@ -4060,15 +4833,11 @@ msgstr "" #~ msgid "Build Order updated" #~ msgstr "Build Order updated" -#: src/pages/build/BuildDetail.tsx:205 -msgid "Source Location" -msgstr "" - -#: src/pages/build/BuildDetail.tsx:206 +#: src/pages/build/BuildDetail.tsx:209 msgid "Any location" msgstr "" -#: src/pages/build/BuildDetail.tsx:213 +#: src/pages/build/BuildDetail.tsx:216 msgid "Destination Location" msgstr "" @@ -4084,206 +4853,182 @@ msgstr "" #~ msgid "Delete build order" #~ msgstr "Delete build order" -#: src/pages/build/BuildDetail.tsx:251 +#: src/pages/build/BuildDetail.tsx:254 msgid "Build Details" msgstr "" -#: src/pages/build/BuildDetail.tsx:257 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:258 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:267 -#: src/pages/sales/ReturnOrderDetail.tsx:130 -#: src/pages/sales/ReturnOrderDetail.tsx:237 -#: src/pages/sales/ReturnOrderDetail.tsx:246 -#: src/pages/sales/SalesOrderDetail.tsx:272 -#: src/pages/sales/SalesOrderDetail.tsx:281 +#: src/pages/build/BuildDetail.tsx:260 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:282 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:291 +#: src/pages/sales/ReturnOrderDetail.tsx:122 +#: src/pages/sales/ReturnOrderDetail.tsx:254 +#: src/pages/sales/ReturnOrderDetail.tsx:263 +#: src/pages/sales/SalesOrderDetail.tsx:294 +#: src/pages/sales/SalesOrderDetail.tsx:303 msgid "Line Items" msgstr "" -#: src/pages/build/BuildDetail.tsx:267 +#: src/pages/build/BuildDetail.tsx:266 msgid "Incomplete Outputs" msgstr "" -#: src/pages/build/BuildDetail.tsx:289 -#: src/pages/sales/SalesOrderDetail.tsx:319 +#: src/pages/build/BuildDetail.tsx:292 +#: src/pages/sales/SalesOrderDetail.tsx:341 msgid "Allocated Stock" msgstr "" -#: src/pages/build/BuildDetail.tsx:299 +#: src/pages/build/BuildDetail.tsx:302 msgid "Consumed Stock" msgstr "" -#: src/pages/build/BuildDetail.tsx:313 +#: src/pages/build/BuildDetail.tsx:316 msgid "Child Build Orders" msgstr "" #: src/pages/build/BuildDetail.tsx:326 -#: src/tables/build/BuildOutputTable.tsx:384 -#: src/tables/stock/StockItemTestResultTable.tsx:150 +#: src/tables/build/BuildOutputTable.tsx:532 +#: src/tables/stock/StockItemTestResultTable.tsx:156 msgid "Test Results" msgstr "" #: src/pages/build/BuildDetail.tsx:337 -#: src/pages/part/PartDetail.tsx:699 +#: src/pages/part/PartDetail.tsx:740 msgid "Test Statistics" msgstr "" -#: src/pages/build/BuildDetail.tsx:351 -#: src/pages/company/CompanyDetail.tsx:259 -#: src/pages/company/ManufacturerPartDetail.tsx:179 -#: src/pages/part/PartDetail.tsx:721 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:309 -#: src/pages/sales/ReturnOrderDetail.tsx:274 -#: src/pages/sales/SalesOrderDetail.tsx:343 -#: src/pages/stock/StockDetail.tsx:385 -msgid "Attachments" -msgstr "" - -#: src/pages/build/BuildDetail.tsx:359 -#: src/pages/company/CompanyDetail.tsx:270 -#: src/pages/company/ManufacturerPartDetail.tsx:190 -#: src/pages/company/SupplierPartDetail.tsx:257 -#: src/pages/part/PartDetail.tsx:729 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:320 -#: src/pages/sales/ReturnOrderDetail.tsx:285 -#: src/pages/sales/SalesOrderDetail.tsx:354 -#: src/pages/stock/StockDetail.tsx:396 -#: src/tables/build/BuildOrderTestTable.tsx:142 -#: src/tables/stock/StockTrackingTable.tsx:189 -msgid "Notes" +#: src/pages/build/BuildDetail.tsx:365 +msgid "Edit Build Order" msgstr "" #: src/pages/build/BuildDetail.tsx:368 #~ msgid "Reporting Actions" #~ msgstr "Reporting Actions" +#: src/pages/build/BuildDetail.tsx:372 +#: src/tables/build/BuildOrderTable.tsx:173 +#: src/tables/build/BuildOrderTable.tsx:188 +msgid "Add Build Order" +msgstr "" + #: src/pages/build/BuildDetail.tsx:374 #~ msgid "Print build report" #~ msgstr "Print build report" -#: src/pages/build/BuildDetail.tsx:377 -msgid "Edit Build Order" -msgstr "" - -#: src/pages/build/BuildDetail.tsx:384 -#: src/tables/build/BuildOrderTable.tsx:172 -#: src/tables/build/BuildOrderTable.tsx:187 -msgid "Add Build Order" -msgstr "" - -#: src/pages/build/BuildDetail.tsx:398 +#: src/pages/build/BuildDetail.tsx:386 msgid "Cancel Build Order" msgstr "" -#: src/pages/build/BuildDetail.tsx:400 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:348 -#: src/pages/sales/SalesOrderDetail.tsx:380 +#: src/pages/build/BuildDetail.tsx:388 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:357 +#: src/pages/sales/ReturnOrderDetail.tsx:354 +#: src/pages/sales/SalesOrderDetail.tsx:387 msgid "Order cancelled" msgstr "" -#: src/pages/build/BuildDetail.tsx:401 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:347 -#: src/pages/sales/ReturnOrderDetail.tsx:346 -#: src/pages/sales/SalesOrderDetail.tsx:379 +#: src/pages/build/BuildDetail.tsx:389 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:356 +#: src/pages/sales/ReturnOrderDetail.tsx:353 +#: src/pages/sales/SalesOrderDetail.tsx:386 msgid "Cancel this order" msgstr "" -#: src/pages/build/BuildDetail.tsx:410 +#: src/pages/build/BuildDetail.tsx:398 msgid "Hold Build Order" msgstr "" -#: src/pages/build/BuildDetail.tsx:412 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:355 -#: src/pages/sales/ReturnOrderDetail.tsx:354 -#: src/pages/sales/SalesOrderDetail.tsx:387 +#: src/pages/build/BuildDetail.tsx:400 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:364 +#: src/pages/sales/ReturnOrderDetail.tsx:361 +#: src/pages/sales/SalesOrderDetail.tsx:394 msgid "Place this order on hold" msgstr "" -#: src/pages/build/BuildDetail.tsx:413 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:356 -#: src/pages/sales/ReturnOrderDetail.tsx:355 -#: src/pages/sales/SalesOrderDetail.tsx:388 +#: src/pages/build/BuildDetail.tsx:401 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:365 +#: src/pages/sales/ReturnOrderDetail.tsx:362 +#: src/pages/sales/SalesOrderDetail.tsx:395 msgid "Order placed on hold" msgstr "" -#: src/pages/build/BuildDetail.tsx:418 +#: src/pages/build/BuildDetail.tsx:406 msgid "Issue Build Order" msgstr "" -#: src/pages/build/BuildDetail.tsx:420 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:339 -#: src/pages/sales/ReturnOrderDetail.tsx:338 -#: src/pages/sales/SalesOrderDetail.tsx:371 +#: src/pages/build/BuildDetail.tsx:408 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:348 +#: src/pages/sales/ReturnOrderDetail.tsx:345 +#: src/pages/sales/SalesOrderDetail.tsx:378 msgid "Issue this order" msgstr "" -#: src/pages/build/BuildDetail.tsx:421 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:340 -#: src/pages/sales/ReturnOrderDetail.tsx:339 -#: src/pages/sales/SalesOrderDetail.tsx:372 +#: src/pages/build/BuildDetail.tsx:409 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:349 +#: src/pages/sales/ReturnOrderDetail.tsx:346 +#: src/pages/sales/SalesOrderDetail.tsx:379 msgid "Order issued" msgstr "" -#: src/pages/build/BuildDetail.tsx:426 +#: src/pages/build/BuildDetail.tsx:414 msgid "Complete Build Order" msgstr "" -#: src/pages/build/BuildDetail.tsx:428 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:368 -#: src/pages/sales/ReturnOrderDetail.tsx:362 -#: src/pages/sales/SalesOrderDetail.tsx:395 +#: src/pages/build/BuildDetail.tsx:416 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:377 +#: src/pages/sales/ReturnOrderDetail.tsx:369 +#: src/pages/sales/SalesOrderDetail.tsx:402 msgid "Mark this order as complete" msgstr "" -#: src/pages/build/BuildDetail.tsx:429 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:362 -#: src/pages/sales/ReturnOrderDetail.tsx:363 -#: src/pages/sales/SalesOrderDetail.tsx:396 +#: src/pages/build/BuildDetail.tsx:417 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:371 +#: src/pages/sales/ReturnOrderDetail.tsx:370 +#: src/pages/sales/SalesOrderDetail.tsx:403 msgid "Order completed" msgstr "" -#: src/pages/build/BuildDetail.tsx:460 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:391 -#: src/pages/sales/ReturnOrderDetail.tsx:392 -#: src/pages/sales/SalesOrderDetail.tsx:425 +#: src/pages/build/BuildDetail.tsx:448 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:400 +#: src/pages/sales/ReturnOrderDetail.tsx:399 +#: src/pages/sales/SalesOrderDetail.tsx:432 msgid "Issue Order" msgstr "" -#: src/pages/build/BuildDetail.tsx:467 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:398 -#: src/pages/sales/ReturnOrderDetail.tsx:399 -#: src/pages/sales/SalesOrderDetail.tsx:439 +#: src/pages/build/BuildDetail.tsx:455 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:407 +#: src/pages/sales/ReturnOrderDetail.tsx:406 +#: src/pages/sales/SalesOrderDetail.tsx:446 msgid "Complete Order" msgstr "" -#: src/pages/build/BuildDetail.tsx:496 +#: src/pages/build/BuildDetail.tsx:473 msgid "Build Order Actions" msgstr "" -#: src/pages/build/BuildDetail.tsx:502 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:432 -#: src/pages/sales/ReturnOrderDetail.tsx:433 -#: src/pages/sales/SalesOrderDetail.tsx:474 +#: src/pages/build/BuildDetail.tsx:478 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:429 +#: src/pages/sales/ReturnOrderDetail.tsx:428 +#: src/pages/sales/SalesOrderDetail.tsx:469 msgid "Edit order" msgstr "" -#: src/pages/build/BuildDetail.tsx:506 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:440 -#: src/pages/sales/ReturnOrderDetail.tsx:439 -#: src/pages/sales/SalesOrderDetail.tsx:479 +#: src/pages/build/BuildDetail.tsx:482 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:437 +#: src/pages/sales/ReturnOrderDetail.tsx:434 +#: src/pages/sales/SalesOrderDetail.tsx:474 msgid "Duplicate order" msgstr "" -#: src/pages/build/BuildDetail.tsx:510 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:443 -#: src/pages/sales/ReturnOrderDetail.tsx:444 -#: src/pages/sales/SalesOrderDetail.tsx:482 +#: src/pages/build/BuildDetail.tsx:486 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:440 +#: src/pages/sales/ReturnOrderDetail.tsx:439 +#: src/pages/sales/SalesOrderDetail.tsx:477 msgid "Hold order" msgstr "" -#: src/pages/build/BuildDetail.tsx:515 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:448 -#: src/pages/sales/ReturnOrderDetail.tsx:449 -#: src/pages/sales/SalesOrderDetail.tsx:487 +#: src/pages/build/BuildDetail.tsx:491 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:445 +#: src/pages/sales/ReturnOrderDetail.tsx:444 +#: src/pages/sales/SalesOrderDetail.tsx:482 msgid "Cancel order" msgstr "" @@ -4295,56 +5040,60 @@ msgstr "" #~ msgid "New Build Order" #~ msgstr "New Build Order" -#: src/pages/company/CompanyDetail.tsx:104 +#: src/pages/company/CompanyDetail.tsx:95 +msgid "Website" +msgstr "Laman" + +#: src/pages/company/CompanyDetail.tsx:103 msgid "Phone Number" -msgstr "" +msgstr "Nomor Telepon" -#: src/pages/company/CompanyDetail.tsx:111 +#: src/pages/company/CompanyDetail.tsx:110 msgid "Email Address" -msgstr "" +msgstr "Alamat Surel" -#: src/pages/company/CompanyDetail.tsx:121 +#: src/pages/company/CompanyDetail.tsx:120 msgid "Default Currency" -msgstr "" +msgstr "Mata Uang Utama" -#: src/pages/company/CompanyDetail.tsx:126 +#: src/pages/company/CompanyDetail.tsx:125 #: src/pages/company/SupplierDetail.tsx:8 -#: src/pages/company/SupplierPartDetail.tsx:120 -#: src/pages/company/SupplierPartDetail.tsx:206 -#: src/pages/company/SupplierPartDetail.tsx:351 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:136 -#: src/tables/company/CompanyTable.tsx:100 +#: src/pages/company/SupplierPartDetail.tsx:125 +#: src/pages/company/SupplierPartDetail.tsx:218 +#: src/pages/company/SupplierPartDetail.tsx:340 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:130 +#: src/tables/company/CompanyTable.tsx:101 #: src/tables/part/PartPurchaseOrdersTable.tsx:42 -#: src/tables/purchasing/PurchaseOrderTable.tsx:88 +#: src/tables/purchasing/PurchaseOrderTable.tsx:89 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:36 msgid "Supplier" msgstr "" -#: src/pages/company/CompanyDetail.tsx:132 +#: src/pages/company/CompanyDetail.tsx:131 #: src/pages/company/ManufacturerDetail.tsx:8 -#: src/pages/company/ManufacturerPartDetail.tsx:101 -#: src/pages/company/ManufacturerPartDetail.tsx:267 -#: src/pages/company/SupplierPartDetail.tsx:135 -#: src/tables/company/CompanyTable.tsx:105 +#: src/pages/company/ManufacturerPartDetail.tsx:100 +#: src/pages/company/ManufacturerPartDetail.tsx:262 +#: src/pages/company/SupplierPartDetail.tsx:147 +#: src/tables/company/CompanyTable.tsx:106 msgid "Manufacturer" msgstr "" -#: src/pages/company/CompanyDetail.tsx:138 +#: src/pages/company/CompanyDetail.tsx:137 #: src/pages/company/CustomerDetail.tsx:8 -#: src/pages/part/pricing/SaleHistoryPanel.tsx:29 -#: src/pages/sales/ReturnOrderDetail.tsx:109 -#: src/pages/sales/SalesOrderDetail.tsx:115 -#: src/pages/stock/StockDetail.tsx:230 -#: src/tables/company/CompanyTable.tsx:110 -#: src/tables/sales/ReturnOrderTable.tsx:78 -#: src/tables/sales/SalesOrderTable.tsx:108 -#: src/tables/stock/StockTrackingTable.tsx:140 +#: src/pages/part/pricing/SaleHistoryPanel.tsx:31 +#: src/pages/sales/ReturnOrderDetail.tsx:101 +#: src/pages/sales/SalesOrderDetail.tsx:110 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:100 +#: src/pages/stock/StockDetail.tsx:271 +#: src/tables/company/CompanyTable.tsx:111 +#: src/tables/sales/ReturnOrderTable.tsx:97 +#: src/tables/sales/SalesOrderTable.tsx:121 +#: src/tables/stock/StockTrackingTable.tsx:144 msgid "Customer" msgstr "" #: src/pages/company/CompanyDetail.tsx:172 -#: src/tables/stock/StockTrackingTable.tsx:183 -msgid "Details" +msgid "Company Details" msgstr "" #: src/pages/company/CompanyDetail.tsx:175 @@ -4363,140 +5112,150 @@ msgstr "" #~ msgid "Delete company" #~ msgstr "Delete company" -#: src/pages/company/CompanyDetail.tsx:232 +#: src/pages/company/CompanyDetail.tsx:234 msgid "Assigned Stock" msgstr "" -#: src/pages/company/CompanyDetail.tsx:290 -#: src/tables/company/CompanyTable.tsx:86 +#: src/pages/company/CompanyDetail.tsx:273 +#: src/tables/company/CompanyTable.tsx:87 msgid "Edit Company" msgstr "" -#: src/pages/company/CompanyDetail.tsx:298 +#: src/pages/company/CompanyDetail.tsx:281 msgid "Delete Company" msgstr "" -#: src/pages/company/CompanyDetail.tsx:306 +#: src/pages/company/CompanyDetail.tsx:289 msgid "Company Actions" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:76 -#: src/pages/company/SupplierPartDetail.tsx:89 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:128 +#: src/pages/company/ManufacturerPartDetail.tsx:74 +#: src/pages/company/SupplierPartDetail.tsx:84 msgid "Internal Part" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:91 -#: src/pages/company/SupplierPartDetail.tsx:103 -msgid "External Link" -msgstr "" - -#: src/pages/company/ManufacturerPartDetail.tsx:109 -#: src/pages/company/SupplierPartDetail.tsx:144 -#: src/tables/purchasing/ManufacturerPartTable.tsx:56 +#: src/pages/company/ManufacturerPartDetail.tsx:108 +#: src/pages/company/SupplierPartDetail.tsx:156 +#: src/tables/purchasing/ManufacturerPartTable.tsx:58 msgid "Manufacturer Part Number" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:138 +#: src/pages/company/ManufacturerPartDetail.tsx:125 +#: src/pages/company/SupplierPartDetail.tsx:108 +msgid "External Link" +msgstr "" + +#: src/pages/company/ManufacturerPartDetail.tsx:146 +#: src/pages/company/SupplierPartDetail.tsx:215 +#: src/pages/part/PartDetail.tsx:576 +msgid "Part Details" +msgstr "" + +#: src/pages/company/ManufacturerPartDetail.tsx:149 msgid "Manufacturer Details" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:147 +#: src/pages/company/ManufacturerPartDetail.tsx:158 msgid "Manufacturer Part Details" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:153 -#: src/pages/part/PartDetail.tsx:532 +#: src/pages/company/ManufacturerPartDetail.tsx:164 +#: src/pages/part/PartDetail.tsx:582 msgid "Parameters" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:165 -#: src/pages/part/PartDetail.tsx:649 +#: src/pages/company/ManufacturerPartDetail.tsx:176 +#: src/pages/part/PartDetail.tsx:669 #: src/pages/purchasing/PurchasingIndex.tsx:31 msgid "Suppliers" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:208 -#: src/tables/purchasing/ManufacturerPartTable.tsx:84 +#: src/pages/company/ManufacturerPartDetail.tsx:204 +#: src/tables/purchasing/ManufacturerPartTable.tsx:86 msgid "Edit Manufacturer Part" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:215 -#: src/tables/purchasing/ManufacturerPartTable.tsx:72 -#: src/tables/purchasing/ManufacturerPartTable.tsx:103 +#: src/pages/company/ManufacturerPartDetail.tsx:211 +#: src/tables/purchasing/ManufacturerPartTable.tsx:74 +#: src/tables/purchasing/ManufacturerPartTable.tsx:106 msgid "Add Manufacturer Part" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:227 -#: src/tables/purchasing/ManufacturerPartTable.tsx:92 +#: src/pages/company/ManufacturerPartDetail.tsx:223 +#: src/tables/purchasing/ManufacturerPartTable.tsx:94 msgid "Delete Manufacturer Part" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:240 +#: src/pages/company/ManufacturerPartDetail.tsx:236 msgid "Manufacturer Part Actions" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:281 +#: src/pages/company/ManufacturerPartDetail.tsx:276 msgid "ManufacturerPart" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:163 -#: src/tables/part/PartPurchaseOrdersTable.tsx:71 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:156 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:197 -#: src/tables/purchasing/SupplierPartTable.tsx:131 +#: src/pages/company/SupplierPartDetail.tsx:99 +msgid "Part Description" +msgstr "" + +#: src/pages/company/SupplierPartDetail.tsx:175 +#: src/tables/part/PartPurchaseOrdersTable.tsx:72 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:162 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:203 +#: src/tables/purchasing/SupplierPartTable.tsx:133 msgid "Pack Quantity" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:174 +#: src/pages/company/SupplierPartDetail.tsx:186 msgid "Supplier Availability" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:181 +#: src/pages/company/SupplierPartDetail.tsx:193 msgid "Availability Updated" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:208 +#: src/pages/company/SupplierPartDetail.tsx:220 msgid "Availability" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:217 +#: src/pages/company/SupplierPartDetail.tsx:229 msgid "Supplier Part Details" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:223 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:296 +#: src/pages/company/SupplierPartDetail.tsx:235 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:320 msgid "Received Stock" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:247 -#: src/pages/part/PartPricingPanel.tsx:111 -#: src/pages/part/pricing/PricingOverviewPanel.tsx:121 +#: src/pages/company/SupplierPartDetail.tsx:259 +#: src/pages/part/PartPricingPanel.tsx:116 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:195 msgid "Supplier Pricing" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:294 +#: src/pages/company/SupplierPartDetail.tsx:284 msgid "Supplier Part Actions" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:319 -#: src/tables/purchasing/SupplierPartTable.tsx:210 +#: src/pages/company/SupplierPartDetail.tsx:308 +#: src/tables/purchasing/SupplierPartTable.tsx:213 msgid "Edit Supplier Part" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:327 -#: src/tables/purchasing/SupplierPartTable.tsx:218 +#: src/pages/company/SupplierPartDetail.tsx:316 +#: src/tables/purchasing/SupplierPartTable.tsx:221 msgid "Delete Supplier Part" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:335 -#: src/tables/purchasing/SupplierPartTable.tsx:163 +#: src/pages/company/SupplierPartDetail.tsx:324 +#: src/tables/purchasing/SupplierPartTable.tsx:165 msgid "Add Supplier Part" msgstr "" #: src/pages/part/CategoryDetail.tsx:93 -#: src/pages/stock/LocationDetail.tsx:101 -#: src/tables/settings/ErrorTable.tsx:36 +#: src/pages/stock/LocationDetail.tsx:95 +#: src/tables/settings/ErrorTable.tsx:63 +#: src/tables/settings/ErrorTable.tsx:108 msgid "Path" msgstr "" @@ -4504,357 +5263,357 @@ msgstr "" msgid "Parent Category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:126 +#: src/pages/part/CategoryDetail.tsx:132 msgid "Subcategories" msgstr "" -#: src/pages/part/CategoryDetail.tsx:133 -#: src/pages/stock/LocationDetail.tsx:141 -#: src/tables/part/PartCategoryTable.tsx:73 +#: src/pages/part/CategoryDetail.tsx:139 +#: src/pages/stock/LocationDetail.tsx:135 +#: src/tables/part/PartCategoryTable.tsx:85 #: src/tables/stock/StockLocationTable.tsx:49 msgid "Structural" msgstr "" -#: src/pages/part/CategoryDetail.tsx:139 +#: src/pages/part/CategoryDetail.tsx:145 msgid "Parent default location" msgstr "" -#: src/pages/part/CategoryDetail.tsx:146 +#: src/pages/part/CategoryDetail.tsx:152 msgid "Default location" msgstr "" -#: src/pages/part/CategoryDetail.tsx:157 +#: src/pages/part/CategoryDetail.tsx:163 msgid "Top level part category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:167 -#: src/pages/part/CategoryDetail.tsx:221 -#: src/tables/part/PartCategoryTable.tsx:102 +#: src/pages/part/CategoryDetail.tsx:173 +#: src/pages/part/CategoryDetail.tsx:226 +#: src/tables/part/PartCategoryTable.tsx:118 msgid "Edit Part Category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:180 -#: src/pages/stock/LocationDetail.tsx:233 +#: src/pages/part/CategoryDetail.tsx:186 +#: src/pages/stock/LocationDetail.tsx:227 msgid "Delete items" msgstr "" -#: src/pages/part/CategoryDetail.tsx:188 -#: src/pages/part/CategoryDetail.tsx:226 +#: src/pages/part/CategoryDetail.tsx:194 +#: src/pages/part/CategoryDetail.tsx:231 msgid "Delete Part Category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:191 +#: src/pages/part/CategoryDetail.tsx:197 msgid "Parts Action" msgstr "" -#: src/pages/part/CategoryDetail.tsx:192 +#: src/pages/part/CategoryDetail.tsx:198 msgid "Action for parts in this category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:197 +#: src/pages/part/CategoryDetail.tsx:203 msgid "Child Categories Action" msgstr "" -#: src/pages/part/CategoryDetail.tsx:198 +#: src/pages/part/CategoryDetail.tsx:204 msgid "Action for child categories in this category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:216 +#: src/pages/part/CategoryDetail.tsx:222 msgid "Category Actions" msgstr "" -#: src/pages/part/CategoryDetail.tsx:238 +#: src/pages/part/CategoryDetail.tsx:243 msgid "Category Details" msgstr "" -#: src/pages/part/PartDetail.tsx:163 -msgid "Variant of" +#: src/pages/part/PartAllocationPanel.tsx:23 +#: src/pages/stock/StockDetail.tsx:443 +#: src/tables/part/PartTable.tsx:99 +msgid "Build Order Allocations" msgstr "" -#: src/pages/part/PartDetail.tsx:170 -msgid "Revision of" -msgstr "" - -#: src/pages/part/PartDetail.tsx:177 -#: src/tables/stock/StockItemTable.tsx:58 -msgid "Revision" +#: src/pages/part/PartAllocationPanel.tsx:40 +#: src/pages/stock/StockDetail.tsx:458 +#: src/tables/part/PartTable.tsx:108 +msgid "Sales Order Allocations" msgstr "" #: src/pages/part/PartDetail.tsx:184 +msgid "Variant of" +msgstr "" + +#: src/pages/part/PartDetail.tsx:191 +msgid "Revision of" +msgstr "" + +#: src/pages/part/PartDetail.tsx:198 +#: src/tables/stock/StockItemTable.tsx:59 +msgid "Revision" +msgstr "" + +#: src/pages/part/PartDetail.tsx:205 #: src/tables/notifications/NotificationsTable.tsx:31 #: src/tables/part/PartCategoryTemplateTable.tsx:67 msgid "Category" msgstr "" -#: src/pages/part/PartDetail.tsx:190 +#: src/pages/part/PartDetail.tsx:211 msgid "Default Location" msgstr "" -#: src/pages/part/PartDetail.tsx:197 +#: src/pages/part/PartDetail.tsx:218 msgid "Category Default Location" msgstr "" -#: src/pages/part/PartDetail.tsx:204 +#: src/pages/part/PartDetail.tsx:225 #: src/tables/purchasing/ManufacturerPartParameterTable.tsx:44 msgid "Units" msgstr "" -#: src/pages/part/PartDetail.tsx:211 -#: src/tables/settings/PendingTasksTable.tsx:42 +#: src/pages/part/PartDetail.tsx:232 +#: src/tables/settings/PendingTasksTable.tsx:46 msgid "Keywords" msgstr "" -#: src/pages/part/PartDetail.tsx:218 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:186 -#: src/pages/sales/ReturnOrderDetail.tsx:165 -#: src/pages/sales/SalesOrderDetail.tsx:174 -msgid "Link" -msgstr "" - -#: src/pages/part/PartDetail.tsx:236 +#: src/pages/part/PartDetail.tsx:257 #: src/tables/bom/BomTable.tsx:320 -#: src/tables/build/BuildLineTable.tsx:155 +#: src/tables/build/BuildLineTable.tsx:286 #: src/tables/part/PartTable.tsx:288 -#: src/tables/sales/SalesOrderLineItemTable.tsx:103 +#: src/tables/sales/SalesOrderLineItemTable.tsx:111 msgid "Available Stock" msgstr "" -#: src/pages/part/PartDetail.tsx:243 +#: src/pages/part/PartDetail.tsx:264 msgid "Variant Stock" msgstr "" -#: src/pages/part/PartDetail.tsx:251 +#: src/pages/part/PartDetail.tsx:272 msgid "Minimum Stock" msgstr "" -#: src/pages/part/PartDetail.tsx:257 +#: src/pages/part/PartDetail.tsx:278 #: src/tables/bom/BomTable.tsx:237 -#: src/tables/build/BuildLineTable.tsx:117 -#: src/tables/sales/SalesOrderLineItemTable.tsx:141 +#: src/tables/build/BuildLineTable.tsx:248 +#: src/tables/sales/SalesOrderLineItemTable.tsx:149 msgid "On order" msgstr "" -#: src/pages/part/PartDetail.tsx:266 +#: src/pages/part/PartDetail.tsx:285 +msgid "Required for Orders" +msgstr "" + +#: src/pages/part/PartDetail.tsx:294 msgid "Allocated to Build Orders" msgstr "" -#: src/pages/part/PartDetail.tsx:274 +#: src/pages/part/PartDetail.tsx:305 msgid "Allocated to Sales Orders" msgstr "" -#: src/pages/part/PartDetail.tsx:281 -#: src/tables/bom/BomTable.tsx:261 -#: src/tables/bom/BomTable.tsx:293 -msgid "Can Build" -msgstr "" - -#: src/pages/part/PartDetail.tsx:288 -#: src/tables/bom/BomTable.tsx:245 -#: src/tables/part/PartTable.tsx:92 -msgid "Building" -msgstr "" - -#: src/pages/part/PartDetail.tsx:302 -#: src/pages/part/PartDetail.tsx:873 -#: src/tables/part/ParametricPartTable.tsx:228 -#: src/tables/part/PartTable.tsx:184 -msgid "Locked" -msgstr "" - -#: src/pages/part/PartDetail.tsx:308 -msgid "Template Part" -msgstr "" - #: src/pages/part/PartDetail.tsx:310 #~ msgid "Edit part" #~ msgstr "Edit part" -#: src/pages/part/PartDetail.tsx:313 -#: src/tables/bom/BomTable.tsx:315 -msgid "Assembled Part" +#: src/pages/part/PartDetail.tsx:315 +#: src/tables/bom/BomTable.tsx:261 +#: src/tables/bom/BomTable.tsx:293 +msgid "Can Build" msgstr "" -#: src/pages/part/PartDetail.tsx:318 -msgid "Component Part" +#: src/pages/part/PartDetail.tsx:322 +#: src/pages/part/PartDetail.tsx:905 +#: src/pages/stock/StockDetail.tsx:766 +#: src/tables/build/BuildOrderTestTable.tsx:220 +#: src/tables/stock/StockItemTable.tsx:334 +msgid "In Production" msgstr "" #: src/pages/part/PartDetail.tsx:322 #~ msgid "Duplicate part" #~ msgstr "Duplicate part" -#: src/pages/part/PartDetail.tsx:323 -#: src/tables/bom/BomTable.tsx:305 -msgid "Testable Part" -msgstr "" - #: src/pages/part/PartDetail.tsx:327 #~ msgid "Delete part" #~ msgstr "Delete part" -#: src/pages/part/PartDetail.tsx:329 +#: src/pages/part/PartDetail.tsx:336 +#: src/tables/part/ParametricPartTable.tsx:228 +#: src/tables/part/PartTable.tsx:184 +msgid "Locked" +msgstr "" + +#: src/pages/part/PartDetail.tsx:342 +msgid "Template Part" +msgstr "" + +#: src/pages/part/PartDetail.tsx:347 +#: src/tables/bom/BomTable.tsx:315 +msgid "Assembled Part" +msgstr "" + +#: src/pages/part/PartDetail.tsx:352 +msgid "Component Part" +msgstr "" + +#: src/pages/part/PartDetail.tsx:357 +#: src/tables/bom/BomTable.tsx:305 +msgid "Testable Part" +msgstr "" + +#: src/pages/part/PartDetail.tsx:363 #: src/tables/bom/BomTable.tsx:310 msgid "Trackable Part" msgstr "" -#: src/pages/part/PartDetail.tsx:334 +#: src/pages/part/PartDetail.tsx:368 msgid "Purchaseable Part" msgstr "" -#: src/pages/part/PartDetail.tsx:339 +#: src/pages/part/PartDetail.tsx:374 msgid "Saleable Part" msgstr "" -#: src/pages/part/PartDetail.tsx:344 +#: src/pages/part/PartDetail.tsx:379 msgid "Virtual Part" msgstr "" -#: src/pages/part/PartDetail.tsx:352 -#: src/tables/ColumnRenderers.tsx:220 +#: src/pages/part/PartDetail.tsx:393 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:215 +#: src/pages/sales/ReturnOrderDetail.tsx:185 +#: src/pages/sales/SalesOrderDetail.tsx:197 +#: src/tables/ColumnRenderers.tsx:234 msgid "Creation Date" msgstr "" -#: src/pages/part/PartDetail.tsx:357 +#: src/pages/part/PartDetail.tsx:398 msgid "Created By" msgstr "" -#: src/pages/part/PartDetail.tsx:372 +#: src/pages/part/PartDetail.tsx:413 msgid "Default Supplier" msgstr "" -#: src/pages/part/PartDetail.tsx:383 -#: src/pages/part/pricing/BomPricingPanel.tsx:79 +#: src/pages/part/PartDetail.tsx:424 +#: src/pages/part/pricing/BomPricingPanel.tsx:113 #: src/pages/part/pricing/VariantPricingPanel.tsx:95 #: src/tables/part/PartTable.tsx:161 msgid "Price Range" msgstr "" -#: src/pages/part/PartDetail.tsx:423 -#: src/pages/stock/StockDetail.tsx:135 +#: src/pages/part/PartDetail.tsx:462 +msgid "Latest Serial Number" +msgstr "" + +#: src/pages/part/PartDetail.tsx:472 +#: src/pages/stock/StockDetail.tsx:151 msgid "Last Stocktake" msgstr "" -#: src/pages/part/PartDetail.tsx:462 +#: src/pages/part/PartDetail.tsx:511 msgid "Stocktake By" msgstr "" -#: src/pages/part/PartDetail.tsx:526 -msgid "Part Details" -msgstr "" - -#: src/pages/part/PartDetail.tsx:557 +#: src/pages/part/PartDetail.tsx:611 msgid "Variants" msgstr "" -#: src/pages/part/PartDetail.tsx:564 -#: src/pages/stock/StockDetail.tsx:307 +#: src/pages/part/PartDetail.tsx:618 +#: src/pages/stock/StockDetail.tsx:430 msgid "Allocations" msgstr "" -#: src/pages/part/PartDetail.tsx:575 -#: src/pages/stock/StockDetail.tsx:318 -#: src/tables/part/PartTable.tsx:99 -msgid "Build Order Allocations" -msgstr "" - -#: src/pages/part/PartDetail.tsx:590 -#: src/pages/stock/StockDetail.tsx:333 -#: src/tables/part/PartTable.tsx:108 -msgid "Sales Order Allocations" -msgstr "" - -#: src/pages/part/PartDetail.tsx:607 +#: src/pages/part/PartDetail.tsx:625 msgid "Bill of Materials" msgstr "" -#: src/pages/part/PartDetail.tsx:623 +#: src/pages/part/PartDetail.tsx:643 msgid "Used In" msgstr "" -#: src/pages/part/PartDetail.tsx:630 +#: src/pages/part/PartDetail.tsx:650 msgid "Part Pricing" msgstr "" -#: src/pages/part/PartDetail.tsx:636 +#: src/pages/part/PartDetail.tsx:656 #: src/pages/purchasing/PurchasingIndex.tsx:42 msgid "Manufacturers" msgstr "" -#: src/pages/part/PartDetail.tsx:676 +#: src/pages/part/PartDetail.tsx:722 msgid "Scheduling" msgstr "" -#: src/pages/part/PartDetail.tsx:688 +#: src/pages/part/PartDetail.tsx:729 msgid "Test Templates" msgstr "" -#: src/pages/part/PartDetail.tsx:715 +#: src/pages/part/PartDetail.tsx:756 msgid "Related Parts" msgstr "" -#: src/pages/part/PartDetail.tsx:849 -#: src/pages/stock/StockDetail.tsx:156 -#: src/pages/stock/StockDetail.tsx:593 -#: src/tables/build/BuildLineTable.tsx:48 +#: src/pages/part/PartDetail.tsx:881 +#: src/pages/stock/StockDetail.tsx:172 +#: src/pages/stock/StockDetail.tsx:783 +#: src/tables/build/BuildLineTable.tsx:179 #: src/tables/part/PartTable.tsx:117 -#: src/tables/stock/StockItemTable.tsx:177 -#: src/tables/stock/StockItemTable.tsx:310 +#: src/tables/stock/StockItemTable.tsx:166 +#: src/tables/stock/StockItemTable.tsx:314 msgid "Available" msgstr "" -#: src/pages/part/PartDetail.tsx:855 +#: src/pages/part/PartDetail.tsx:887 msgid "No Stock" msgstr "" -#: src/pages/part/PartDetail.tsx:861 +#: src/pages/part/PartDetail.tsx:893 +#: src/tables/part/PartTestTemplateTable.tsx:106 +#: src/tables/stock/StockItemTestResultTable.tsx:383 +msgid "Required" +msgstr "" + +#: src/pages/part/PartDetail.tsx:899 #: src/tables/bom/BomTable.tsx:325 #: src/tables/part/PartTable.tsx:86 msgid "On Order" msgstr "" -#: src/pages/part/PartDetail.tsx:867 -#: src/pages/stock/StockDetail.tsx:576 -#: src/tables/build/BuildOrderTestTable.tsx:219 -#: src/tables/stock/StockItemTable.tsx:330 -msgid "In Production" -msgstr "" - -#: src/pages/part/PartDetail.tsx:892 +#: src/pages/part/PartDetail.tsx:924 msgid "Edit Part" msgstr "" -#: src/pages/part/PartDetail.tsx:927 +#: src/pages/part/PartDetail.tsx:959 #: src/tables/part/PartTable.tsx:331 -#: src/tables/part/PartTable.tsx:342 +#: src/tables/part/PartTable.tsx:343 msgid "Add Part" msgstr "" -#: src/pages/part/PartDetail.tsx:941 +#: src/pages/part/PartDetail.tsx:973 msgid "Delete Part" msgstr "" -#: src/pages/part/PartDetail.tsx:950 +#: src/pages/part/PartDetail.tsx:982 msgid "Deleting this part cannot be reversed" msgstr "" -#: src/pages/part/PartDetail.tsx:999 -#: src/pages/stock/LocationDetail.tsx:324 -#: src/tables/stock/StockItemTable.tsx:444 +#: src/pages/part/PartDetail.tsx:1021 +#: src/pages/stock/LocationDetail.tsx:310 +#: src/tables/stock/StockItemTable.tsx:449 msgid "Stock Actions" msgstr "" -#: src/pages/part/PartDetail.tsx:1007 +#: src/pages/part/PartDetail.tsx:1029 msgid "Count part stock" msgstr "" -#: src/pages/part/PartDetail.tsx:1018 +#: src/pages/part/PartDetail.tsx:1040 msgid "Transfer part stock" msgstr "" -#: src/pages/part/PartDetail.tsx:1027 +#: src/pages/part/PartDetail.tsx:1049 msgid "Part Actions" msgstr "" -#: src/pages/part/PartDetail.tsx:1087 +#: src/pages/part/PartDetail.tsx:1113 msgid "Select Part Revision" msgstr "" @@ -4862,113 +5621,214 @@ msgstr "" #~ msgid "Categories" #~ msgstr "Categories" -#: src/pages/part/PartPricingPanel.tsx:68 +#: src/pages/part/PartPricingPanel.tsx:72 msgid "No pricing data found for this part." msgstr "" -#: src/pages/part/PartPricingPanel.tsx:82 -#: src/pages/part/pricing/PricingOverviewPanel.tsx:190 +#: src/pages/part/PartPricingPanel.tsx:87 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:293 msgid "Pricing Overview" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:88 +#: src/pages/part/PartPricingPanel.tsx:93 msgid "Purchase History" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:102 -#: src/pages/part/pricing/PricingOverviewPanel.tsx:100 +#: src/pages/part/PartPricingPanel.tsx:107 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:174 msgid "Internal Pricing" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:120 -#: src/pages/part/pricing/PricingOverviewPanel.tsx:107 +#: src/pages/part/PartPricingPanel.tsx:125 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:181 msgid "BOM Pricing" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:127 -#: src/pages/part/pricing/PricingOverviewPanel.tsx:128 +#: src/pages/part/PartPricingPanel.tsx:132 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:202 msgid "Variant Pricing" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:139 -#: src/pages/part/pricing/PricingOverviewPanel.tsx:135 +#: src/pages/part/PartPricingPanel.tsx:144 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:209 msgid "Sale Pricing" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:146 -#: src/pages/part/pricing/PricingOverviewPanel.tsx:142 +#: src/pages/part/PartPricingPanel.tsx:151 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:216 msgid "Sale History" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:58 -#: src/pages/part/pricing/BomPricingPanel.tsx:138 -#: src/tables/ColumnRenderers.tsx:262 +#: src/pages/part/PartSchedulingDetail.tsx:47 +#: src/pages/part/PartSchedulingDetail.tsx:299 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:156 +msgid "Maximum" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:50 +#: src/pages/part/PartSchedulingDetail.tsx:289 +msgid "Scheduled" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:53 +#: src/pages/part/PartSchedulingDetail.tsx:294 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:144 +msgid "Minimum" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:68 +msgid "Order" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:92 +msgid "Quantity is speculative" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:101 +msgid "No date available for provided quantity" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:105 +msgid "Date is in the past" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:112 +msgid "Scheduled Quantity" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:240 +msgid "No information available" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:241 +msgid "There is no scheduling information available for the selected part" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:276 +msgid "Expected Quantity" +msgstr "" + +#: src/pages/part/PartStocktakeDetail.tsx:63 +#: src/tables/FilterSelectDrawer.tsx:167 +#: src/tables/FilterSelectDrawer.tsx:174 +#: src/tables/build/BuildOrderTestTable.tsx:135 +#: src/tables/purchasing/ManufacturerPartParameterTable.tsx:38 +#: src/tables/stock/StockItemTestResultTable.tsx:192 +msgid "Value" +msgstr "" + +#: src/pages/part/PartStocktakeDetail.tsx:82 +msgid "Edit Stocktake Entry" +msgstr "" + +#: src/pages/part/PartStocktakeDetail.tsx:90 +msgid "Delete Stocktake Entry" +msgstr "" + +#: src/pages/part/PartStocktakeDetail.tsx:96 +#: src/tables/settings/StocktakeReportTable.tsx:69 +msgid "Generate Stocktake Report" +msgstr "" + +#: src/pages/part/PartStocktakeDetail.tsx:101 +#: src/tables/settings/StocktakeReportTable.tsx:71 +msgid "Stocktake report scheduled" +msgstr "" + +#: src/pages/part/PartStocktakeDetail.tsx:119 +#: src/pages/part/PartStocktakeDetail.tsx:235 +#: src/pages/stock/StockDetail.tsx:303 +#: src/tables/stock/StockItemTable.tsx:249 +msgid "Stock Value" +msgstr "" + +#: src/pages/part/PartStocktakeDetail.tsx:139 +#: src/tables/settings/StocktakeReportTable.tsx:77 +msgid "New Stocktake Report" +msgstr "" + +#: src/pages/part/PartStocktakeDetail.tsx:258 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:295 +msgid "Minimum Value" +msgstr "" + +#: src/pages/part/PartStocktakeDetail.tsx:264 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:296 +msgid "Maximum Value" +msgstr "" + +#: src/pages/part/pricing/BomPricingPanel.tsx:87 +#: src/pages/part/pricing/BomPricingPanel.tsx:177 +#: src/tables/ColumnRenderers.tsx:276 #: src/tables/bom/BomTable.tsx:185 #: src/tables/general/ExtraLineItemTable.tsx:64 -#: src/tables/purchasing/PurchaseOrderTable.tsx:112 -#: src/tables/sales/ReturnOrderTable.tsx:104 -#: src/tables/sales/SalesOrderLineItemTable.tsx:89 -#: src/tables/sales/SalesOrderTable.tsx:136 +#: src/tables/purchasing/PurchaseOrderTable.tsx:113 +#: src/tables/sales/ReturnOrderTable.tsx:127 +#: src/tables/sales/SalesOrderLineItemTable.tsx:97 +#: src/tables/sales/SalesOrderTable.tsx:149 msgid "Total Price" -msgstr "" +msgstr "Total Harga" -#: src/pages/part/pricing/BomPricingPanel.tsx:78 -#: src/pages/part/pricing/BomPricingPanel.tsx:102 +#: src/pages/part/pricing/BomPricingPanel.tsx:112 +#: src/pages/part/pricing/BomPricingPanel.tsx:141 #: src/tables/bom/UsedInTable.tsx:49 +#: src/tables/build/BuildLineTable.tsx:296 #: src/tables/part/PartTable.tsx:202 msgid "Component" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:81 -#: src/pages/part/pricing/VariantPricingPanel.tsx:37 -#: src/pages/part/pricing/VariantPricingPanel.tsx:97 -msgid "Minimum Price" -msgstr "" - -#: src/pages/part/pricing/BomPricingPanel.tsx:82 -#: src/pages/part/pricing/VariantPricingPanel.tsx:45 -#: src/pages/part/pricing/VariantPricingPanel.tsx:98 -msgid "Maximum Price" -msgstr "" - #: src/pages/part/pricing/BomPricingPanel.tsx:112 #~ msgid "Minimum Total Price" #~ msgstr "Minimum Total Price" +#: src/pages/part/pricing/BomPricingPanel.tsx:115 +#: src/pages/part/pricing/VariantPricingPanel.tsx:37 +#: src/pages/part/pricing/VariantPricingPanel.tsx:97 +msgid "Minimum Price" +msgstr "" + +#: src/pages/part/pricing/BomPricingPanel.tsx:116 +#: src/pages/part/pricing/VariantPricingPanel.tsx:45 +#: src/pages/part/pricing/VariantPricingPanel.tsx:98 +msgid "Maximum Price" +msgstr "" + #: src/pages/part/pricing/BomPricingPanel.tsx:117 #~ msgid "Maximum Total Price" #~ msgstr "Maximum Total Price" -#: src/pages/part/pricing/BomPricingPanel.tsx:129 -#: src/pages/part/pricing/PriceBreakPanel.tsx:172 -#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:67 -#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:128 -#: src/pages/part/pricing/SupplierPricingPanel.tsx:62 +#: src/pages/part/pricing/BomPricingPanel.tsx:168 +#: src/pages/part/pricing/PriceBreakPanel.tsx:173 +#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:70 +#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:125 +#: src/pages/part/pricing/SupplierPricingPanel.tsx:66 +#: src/pages/stock/StockDetail.tsx:291 #: src/tables/bom/BomTable.tsx:176 #: src/tables/general/ExtraLineItemTable.tsx:56 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:223 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:225 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:92 +#: src/tables/stock/StockItemTable.tsx:239 msgid "Unit Price" -msgstr "" +msgstr "Harga Per buah" -#: src/pages/part/pricing/BomPricingPanel.tsx:154 +#: src/pages/part/pricing/BomPricingPanel.tsx:193 #: src/pages/part/pricing/VariantPricingPanel.tsx:53 -#: src/tables/purchasing/SupplierPartTable.tsx:148 +#: src/tables/purchasing/SupplierPartTable.tsx:150 msgid "Updated" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:219 +#: src/pages/part/pricing/BomPricingPanel.tsx:258 msgid "Pie Chart" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:220 +#: src/pages/part/pricing/BomPricingPanel.tsx:259 msgid "Bar Chart" msgstr "" #: src/pages/part/pricing/PriceBreakPanel.tsx:58 -#: src/pages/part/pricing/PriceBreakPanel.tsx:110 +#: src/pages/part/pricing/PriceBreakPanel.tsx:111 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:142 -#: src/tables/purchasing/SupplierPriceBreakTable.tsx:168 +#: src/tables/purchasing/SupplierPriceBreakTable.tsx:169 msgid "Add Price Break" msgstr "" @@ -4986,46 +5846,70 @@ msgstr "" msgid "Price Break" msgstr "" -#: src/pages/part/pricing/PriceBreakPanel.tsx:170 +#: src/pages/part/pricing/PriceBreakPanel.tsx:171 msgid "Price" +msgstr "Harga" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:68 +msgid "Refreshing pricing data" msgstr "" -#: src/pages/part/pricing/PricingOverviewPanel.tsx:51 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:88 +msgid "Pricing data updated" +msgstr "" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:95 +msgid "Failed to update pricing data" +msgstr "" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:104 +msgid "Edit Pricing" +msgstr "Ubah Harga" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:125 msgid "Pricing Category" msgstr "" -#: src/pages/part/pricing/PricingOverviewPanel.tsx:70 -msgid "Minimum" -msgstr "" - -#: src/pages/part/pricing/PricingOverviewPanel.tsx:82 -msgid "Maximum" -msgstr "" - -#: src/pages/part/pricing/PricingOverviewPanel.tsx:114 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:188 msgid "Purchase Pricing" msgstr "" -#: src/pages/part/pricing/PricingOverviewPanel.tsx:149 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:223 msgid "Override Pricing" msgstr "" -#: src/pages/part/pricing/PricingOverviewPanel.tsx:156 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:230 msgid "Overall Pricing" msgstr "" -#: src/pages/part/pricing/PricingOverviewPanel.tsx:175 -#: src/pages/stock/StockDetail.tsx:129 -#: src/tables/stock/StockItemTable.tsx:240 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:249 +#: src/pages/stock/StockDetail.tsx:145 +#: src/tables/stock/StockItemTable.tsx:275 msgid "Last Updated" msgstr "" -#: src/pages/part/pricing/PricingOverviewPanel.tsx:192 -msgid "Minimum Value" +#: src/pages/part/pricing/PricingOverviewPanel.tsx:253 +msgid "Pricing Not Set" +msgstr "Harga tidak diatur" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:254 +msgid "Pricing data has not been calculated for this part" msgstr "" -#: src/pages/part/pricing/PricingOverviewPanel.tsx:193 -msgid "Maximum Value" +#: src/pages/part/pricing/PricingOverviewPanel.tsx:258 +msgid "Pricing Actions" +msgstr "" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:261 +msgid "Refresh" +msgstr "Muat Ulang" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:262 +msgid "Refresh pricing data" +msgstr "" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:277 +msgid "Edit pricing data" msgstr "" #: src/pages/part/pricing/PricingPanel.tsx:24 @@ -5044,28 +5928,20 @@ msgstr "" msgid "Loading pricing data" msgstr "" -#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:40 -#: src/pages/part/pricing/SaleHistoryPanel.tsx:36 -#: src/tables/ColumnRenderers.tsx:201 -#: src/tables/build/BuildOrderTestTable.tsx:150 -#: src/tables/plugin/PluginListTable.tsx:139 -msgid "Date" -msgstr "" - #: src/pages/part/pricing/PurchaseHistoryPanel.tsx:47 msgid "Purchase Price" msgstr "" -#: src/pages/part/pricing/SaleHistoryPanel.tsx:22 -msgid "Sale Order" -msgstr "" +#: src/pages/part/pricing/SaleHistoryPanel.tsx:24 +#~ msgid "Sale Order" +#~ msgstr "Sale Order" -#: src/pages/part/pricing/SaleHistoryPanel.tsx:42 -#: src/pages/part/pricing/SaleHistoryPanel.tsx:92 +#: src/pages/part/pricing/SaleHistoryPanel.tsx:44 +#: src/pages/part/pricing/SaleHistoryPanel.tsx:87 msgid "Sale Price" msgstr "" -#: src/pages/part/pricing/SupplierPricingPanel.tsx:65 +#: src/pages/part/pricing/SupplierPricingPanel.tsx:69 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:83 msgid "Supplier Price" msgstr "" @@ -5075,23 +5951,23 @@ msgstr "" msgid "Variant Part" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:93 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:87 msgid "Edit Purchase Order" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:102 -#: src/tables/purchasing/PurchaseOrderTable.tsx:128 -#: src/tables/purchasing/PurchaseOrderTable.tsx:140 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:96 +#: src/tables/purchasing/PurchaseOrderTable.tsx:129 +#: src/tables/purchasing/PurchaseOrderTable.tsx:142 msgid "Add Purchase Order" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:127 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:121 msgid "Supplier Reference" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:158 -#: src/pages/sales/ReturnOrderDetail.tsx:137 -#: src/pages/sales/SalesOrderDetail.tsx:137 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:152 +#: src/pages/sales/ReturnOrderDetail.tsx:129 +#: src/pages/sales/SalesOrderDetail.tsx:132 msgid "Completed Line Items" msgstr "" @@ -5101,209 +5977,306 @@ msgstr "" #~ msgid "Order Currency," #~ msgstr "Order Currency," -#: src/pages/purchasing/PurchaseOrderDetail.tsx:165 -#: src/pages/sales/ReturnOrderDetail.tsx:144 -#: src/pages/sales/SalesOrderDetail.tsx:153 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:161 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:231 +msgid "Destination" +msgstr "" + +#: src/pages/purchasing/PurchaseOrderDetail.tsx:167 +#: src/pages/sales/ReturnOrderDetail.tsx:136 +#: src/pages/sales/SalesOrderDetail.tsx:148 msgid "Order Currency" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:172 -#: src/pages/sales/ReturnOrderDetail.tsx:151 -#: src/pages/sales/SalesOrderDetail.tsx:160 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:173 +#: src/pages/sales/ReturnOrderDetail.tsx:143 +#: src/pages/sales/SalesOrderDetail.tsx:155 msgid "Total Cost" msgstr "" #: src/pages/purchasing/PurchaseOrderDetail.tsx:207 -#: src/pages/sales/ReturnOrderDetail.tsx:186 -#: src/pages/sales/SalesOrderDetail.tsx:195 -msgid "Created On" +#: src/pages/sales/ReturnOrderDetail.tsx:183 +#: src/pages/sales/SalesOrderDetail.tsx:191 +#~ msgid "Created On" +#~ msgstr "Created On" + +#: src/pages/purchasing/PurchaseOrderDetail.tsx:221 +#: src/pages/sales/ReturnOrderDetail.tsx:193 +#: src/pages/sales/SalesOrderDetail.tsx:204 +msgid "Issue Date" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:252 -#: src/pages/sales/ReturnOrderDetail.tsx:231 -#: src/pages/sales/SalesOrderDetail.tsx:266 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:237 +#: src/pages/sales/ReturnOrderDetail.tsx:209 +#: src/pages/sales/SalesOrderDetail.tsx:219 +#: src/tables/build/BuildOrderTable.tsx:98 +#: src/tables/part/PartPurchaseOrdersTable.tsx:105 +#: src/tables/sales/ReturnOrderTable.tsx:122 +msgid "Completion Date" +msgstr "" + +#: src/pages/purchasing/PurchaseOrderDetail.tsx:276 +#: src/pages/sales/ReturnOrderDetail.tsx:248 +#: src/pages/sales/SalesOrderDetail.tsx:288 msgid "Order Details" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:280 -#: src/pages/sales/ReturnOrderDetail.tsx:258 -#: src/pages/sales/SalesOrderDetail.tsx:297 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:304 +#: src/pages/sales/ReturnOrderDetail.tsx:276 +#: src/pages/sales/SalesOrderDetail.tsx:319 msgid "Extra Line Items" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:337 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:346 msgid "Issue Purchase Order" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:345 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:354 msgid "Cancel Purchase Order" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:353 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:362 msgid "Hold Purchase Order" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:361 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:370 msgid "Complete Purchase Order" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:427 -#: src/pages/sales/ReturnOrderDetail.tsx:428 -#: src/pages/sales/SalesOrderDetail.tsx:468 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:425 +#: src/pages/sales/ReturnOrderDetail.tsx:424 +#: src/pages/sales/SalesOrderDetail.tsx:464 msgid "Order Actions" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:101 -#: src/pages/sales/SalesOrderDetail.tsx:107 -#: src/tables/sales/SalesOrderTable.tsx:124 +#: src/pages/sales/ReturnOrderDetail.tsx:92 +#: src/pages/sales/SalesOrderDetail.tsx:101 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:109 +#: src/tables/sales/SalesOrderTable.tsx:137 msgid "Customer Reference" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:315 +#: src/pages/sales/ReturnOrderDetail.tsx:322 msgid "Edit Return Order" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:324 -#: src/tables/sales/ReturnOrderTable.tsx:119 -#: src/tables/sales/ReturnOrderTable.tsx:128 +#: src/pages/sales/ReturnOrderDetail.tsx:331 +#: src/tables/sales/ReturnOrderTable.tsx:142 +#: src/tables/sales/ReturnOrderTable.tsx:152 msgid "Add Return Order" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:336 +#: src/pages/sales/ReturnOrderDetail.tsx:343 msgid "Issue Return Order" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:344 +#: src/pages/sales/ReturnOrderDetail.tsx:349 +#~ msgid "Order canceled" +#~ msgstr "Order canceled" + +#: src/pages/sales/ReturnOrderDetail.tsx:351 msgid "Cancel Return Order" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:347 -msgid "Order canceled" -msgstr "" - -#: src/pages/sales/ReturnOrderDetail.tsx:352 +#: src/pages/sales/ReturnOrderDetail.tsx:359 msgid "Hold Return Order" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:360 +#: src/pages/sales/ReturnOrderDetail.tsx:367 msgid "Complete Return Order" msgstr "" #: src/pages/sales/SalesIndex.tsx:38 msgid "Customers" -msgstr "" +msgstr "Pelanggan" -#: src/pages/sales/SalesOrderDetail.tsx:145 +#: src/pages/sales/SalesOrderDetail.tsx:140 msgid "Completed Shipments" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:243 -msgid "Edit Sales Order" -msgstr "" - -#: src/pages/sales/SalesOrderDetail.tsx:252 -#: src/tables/sales/SalesOrderTable.tsx:84 -#: src/tables/sales/SalesOrderTable.tsx:96 -msgid "Add Sales Order" -msgstr "" - #: src/pages/sales/SalesOrderDetail.tsx:256 #~ msgid "Pending Shipments" #~ msgstr "Pending Shipments" -#: src/pages/sales/SalesOrderDetail.tsx:313 +#: src/pages/sales/SalesOrderDetail.tsx:261 +msgid "Edit Sales Order" +msgstr "" + +#: src/pages/sales/SalesOrderDetail.tsx:274 +#: src/tables/sales/SalesOrderTable.tsx:96 +#: src/tables/sales/SalesOrderTable.tsx:109 +msgid "Add Sales Order" +msgstr "" + +#: src/pages/sales/SalesOrderDetail.tsx:335 msgid "Shipments" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:369 +#: src/pages/sales/SalesOrderDetail.tsx:376 msgid "Issue Sales Order" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:377 +#: src/pages/sales/SalesOrderDetail.tsx:384 msgid "Cancel Sales Order" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:385 +#: src/pages/sales/SalesOrderDetail.tsx:392 msgid "Hold Sales Order" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:393 +#: src/pages/sales/SalesOrderDetail.tsx:400 msgid "Complete Sales Order" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:432 +#: src/pages/sales/SalesOrderDetail.tsx:439 msgid "Ship Order" msgstr "" -#: src/pages/stock/LocationDetail.tsx:117 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:117 +#: src/tables/sales/SalesOrderShipmentTable.tsx:96 +msgid "Shipment Reference" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:124 +msgid "Allocated Items" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:133 +msgid "Tracking Number" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:141 +msgid "Invoice Number" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:149 +#: src/tables/ColumnRenderers.tsx:242 +#: src/tables/sales/SalesOrderAllocationTable.tsx:142 +#: src/tables/sales/SalesOrderShipmentTable.tsx:115 +msgid "Shipment Date" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:157 +#: src/tables/sales/SalesOrderShipmentTable.tsx:119 +msgid "Delivery Date" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:204 +msgid "Shipment Details" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:210 +msgid "Assigned Items" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:241 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:317 +#: src/tables/sales/SalesOrderShipmentTable.tsx:75 +msgid "Edit Shipment" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:248 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:322 +#: src/tables/sales/SalesOrderShipmentTable.tsx:67 +msgid "Cancel Shipment" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:261 +#: src/tables/sales/SalesOrderShipmentTable.tsx:83 +#: src/tables/sales/SalesOrderShipmentTable.tsx:151 +msgid "Complete Shipment" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:276 +#: src/tables/part/PartPurchaseOrdersTable.tsx:121 +msgid "Pending" +msgstr "Tertunda" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:277 +#: src/tables/sales/SalesOrderAllocationTable.tsx:148 +#: src/tables/sales/SalesOrderShipmentTable.tsx:108 +#: src/tables/sales/SalesOrderShipmentTable.tsx:197 +msgid "Shipped" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:279 +#: src/tables/sales/SalesOrderShipmentTable.tsx:202 +msgid "Delivered" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:293 +msgid "Send Shipment" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:312 +msgid "Shipment Actions" +msgstr "" + +#: src/pages/stock/LocationDetail.tsx:111 msgid "Parent Location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:135 +#: src/pages/stock/LocationDetail.tsx:129 msgid "Sublocations" msgstr "" -#: src/pages/stock/LocationDetail.tsx:147 +#: src/pages/stock/LocationDetail.tsx:141 #: src/tables/stock/StockLocationTable.tsx:54 msgid "External" msgstr "" -#: src/pages/stock/LocationDetail.tsx:153 +#: src/pages/stock/LocationDetail.tsx:147 #: src/tables/stock/StockLocationTable.tsx:63 msgid "Location Type" msgstr "" -#: src/pages/stock/LocationDetail.tsx:164 +#: src/pages/stock/LocationDetail.tsx:158 msgid "Top level stock location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:175 +#: src/pages/stock/LocationDetail.tsx:169 msgid "Location Details" msgstr "" -#: src/pages/stock/LocationDetail.tsx:201 +#: src/pages/stock/LocationDetail.tsx:195 msgid "Default Parts" msgstr "" -#: src/pages/stock/LocationDetail.tsx:220 -#: src/pages/stock/LocationDetail.tsx:351 +#: src/pages/stock/LocationDetail.tsx:214 +#: src/pages/stock/LocationDetail.tsx:336 #: src/tables/stock/StockLocationTable.tsx:123 msgid "Edit Stock Location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:241 -#: src/pages/stock/LocationDetail.tsx:356 +#: src/pages/stock/LocationDetail.tsx:235 +#: src/pages/stock/LocationDetail.tsx:341 msgid "Delete Stock Location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:244 +#: src/pages/stock/LocationDetail.tsx:238 msgid "Items Action" msgstr "" -#: src/pages/stock/LocationDetail.tsx:245 +#: src/pages/stock/LocationDetail.tsx:239 msgid "Action for stock items in this location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:250 +#: src/pages/stock/LocationDetail.tsx:244 msgid "Child Locations Action" msgstr "" -#: src/pages/stock/LocationDetail.tsx:251 +#: src/pages/stock/LocationDetail.tsx:245 msgid "Action for child locations in this location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:346 +#: src/pages/stock/LocationDetail.tsx:332 msgid "Location Actions" msgstr "" -#: src/pages/stock/StockDetail.tsx:108 +#: src/pages/stock/StockDetail.tsx:116 msgid "Base Part" msgstr "" -#: src/pages/stock/StockDetail.tsx:115 -msgid "Stock Status" -msgstr "" - #: src/pages/stock/StockDetail.tsx:155 #~ msgid "Link custom barcode to stock item" #~ msgstr "Link custom barcode to stock item" @@ -5312,113 +6285,179 @@ msgstr "" #~ msgid "Unlink custom barcode from stock item" #~ msgstr "Unlink custom barcode from stock item" -#: src/pages/stock/StockDetail.tsx:188 -msgid "Installed In" -msgstr "" - -#: src/pages/stock/StockDetail.tsx:204 -msgid "Consumed By" +#: src/pages/stock/StockDetail.tsx:178 +msgid "Allocated to Orders" msgstr "" #: src/pages/stock/StockDetail.tsx:205 #~ msgid "Edit stock item" #~ msgstr "Edit stock item" -#: src/pages/stock/StockDetail.tsx:213 -#: src/tables/build/BuildAllocatedStockTable.tsx:64 -#: src/tables/stock/StockTrackingTable.tsx:96 -msgid "Build Order" +#: src/pages/stock/StockDetail.tsx:209 +msgid "Installed In" msgstr "" #: src/pages/stock/StockDetail.tsx:217 #~ msgid "Delete stock item" #~ msgstr "Delete stock item" -#: src/pages/stock/StockDetail.tsx:291 +#: src/pages/stock/StockDetail.tsx:226 +msgid "Parent Item" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:230 +msgid "Parent stock item" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:236 +msgid "Consumed By" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:245 +#: src/tables/build/BuildAllocatedStockTable.tsx:77 +#: src/tables/stock/StockTrackingTable.tsx:100 +msgid "Build Order" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:283 +#: src/tables/stock/StockItemTable.tsx:270 +msgid "Expiry Date" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:414 msgid "Stock Details" msgstr "" -#: src/pages/stock/StockDetail.tsx:297 +#: src/pages/stock/StockDetail.tsx:420 msgid "Stock Tracking" msgstr "" -#: src/pages/stock/StockDetail.tsx:350 -msgid "Test Data" -msgstr "" - -#: src/pages/stock/StockDetail.tsx:364 -msgid "Installed Items" -msgstr "" - -#: src/pages/stock/StockDetail.tsx:371 -msgid "Child Items" -msgstr "" - -#: src/pages/stock/StockDetail.tsx:425 -msgid "Edit Stock Item" -msgstr "" - #: src/pages/stock/StockDetail.tsx:433 #~ msgid "Duplicate stock item" #~ msgstr "Duplicate stock item" -#: src/pages/stock/StockDetail.tsx:452 +#: src/pages/stock/StockDetail.tsx:475 +msgid "Test Data" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:489 +msgid "Installed Items" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:496 +msgid "Child Items" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:545 +msgid "Edit Stock Item" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:572 msgid "Delete Stock Item" msgstr "" -#: src/pages/stock/StockDetail.tsx:504 +#: src/pages/stock/StockDetail.tsx:604 +msgid "Serialize Stock Item" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:617 +msgid "Stock item serialized" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:623 +msgid "Return Stock Item" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:626 +msgid "Return this item into stock. This will remove the customer assignment." +msgstr "" + +#: src/pages/stock/StockDetail.tsx:636 +msgid "Item returned to stock" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:666 msgid "Stock Operations" msgstr "" -#: src/pages/stock/StockDetail.tsx:509 +#: src/pages/stock/StockDetail.tsx:671 msgid "Count stock" msgstr "" -#: src/pages/stock/StockDetail.tsx:519 -#: src/tables/stock/StockItemTable.tsx:449 -msgid "Add stock" +#: src/pages/stock/StockDetail.tsx:671 +#: src/tables/stock/StockItemTable.tsx:452 +#~ msgid "Add stock" +#~ msgstr "Add stock" + +#: src/pages/stock/StockDetail.tsx:680 +#: src/tables/stock/StockItemTable.tsx:461 +#~ msgid "Remove stock" +#~ msgstr "Remove stock" + +#: src/pages/stock/StockDetail.tsx:698 +#: src/tables/stock/StockItemTable.tsx:481 +#~ msgid "Transfer stock" +#~ msgstr "Transfer stock" + +#: src/pages/stock/StockDetail.tsx:699 +msgid "Serialize" msgstr "" -#: src/pages/stock/StockDetail.tsx:527 -#: src/tables/stock/StockItemTable.tsx:458 -msgid "Remove stock" +#: src/pages/stock/StockDetail.tsx:700 +msgid "Serialize stock" msgstr "" -#: src/pages/stock/StockDetail.tsx:534 +#: src/pages/stock/StockDetail.tsx:711 msgid "Transfer" msgstr "" -#: src/pages/stock/StockDetail.tsx:535 -#: src/tables/stock/StockItemTable.tsx:478 -msgid "Transfer stock" +#: src/pages/stock/StockDetail.tsx:722 +msgid "Return" msgstr "" -#: src/pages/stock/StockDetail.tsx:546 +#: src/pages/stock/StockDetail.tsx:723 +msgid "Return from customer" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:738 msgid "Stock Item Actions" msgstr "" -#: src/tables/ColumnRenderers.tsx:30 +#: src/pages/stock/StockDetail.tsx:808 +msgid "Stale" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:814 +msgid "Expired" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:820 +msgid "Unavailable" +msgstr "" + +#: src/tables/ColumnRenderers.tsx:36 msgid "Part is not active" msgstr "" -#: src/tables/ColumnRenderers.tsx:35 -msgid "Part is locked" +#: src/tables/ColumnRenderers.tsx:41 +#: src/tables/bom/BomTable.tsx:542 +#: src/tables/part/PartParameterTable.tsx:193 +#: src/tables/part/PartTestTemplateTable.tsx:253 +msgid "Part is Locked" msgstr "" -#: src/tables/ColumnRenderers.tsx:57 +#: src/tables/ColumnRenderers.tsx:41 +#~ msgid "Part is locked" +#~ msgstr "Part is locked" + +#: src/tables/ColumnRenderers.tsx:46 +msgid "You are subscribed to notifications for this part" +msgstr "" + +#: src/tables/ColumnRenderers.tsx:68 msgid "No location set" msgstr "" -#: src/tables/ColumnRenderers.tsx:228 -#: src/tables/sales/SalesOrderShipmentTable.tsx:79 -msgid "Shipment Date" -msgstr "" - -#: src/tables/ColumnRenderers.tsx:248 -#: src/tables/settings/CurrencyTable.tsx:23 -msgid "Currency" -msgstr "" - #: src/tables/ColumnSelect.tsx:16 #: src/tables/ColumnSelect.tsx:23 msgid "Select Columns" @@ -5430,7 +6469,7 @@ msgstr "" #: src/tables/DownloadAction.tsx:21 msgid "CSV" -msgstr "" +msgstr "CSV" #: src/tables/DownloadAction.tsx:21 #~ msgid "Download selected data" @@ -5438,11 +6477,11 @@ msgstr "" #: src/tables/DownloadAction.tsx:22 msgid "TSV" -msgstr "" +msgstr "TSV" #: src/tables/DownloadAction.tsx:23 msgid "Excel (.xlsx)" -msgstr "" +msgstr "Excel (.xlsx)" #: src/tables/DownloadAction.tsx:24 #~ msgid "Excel (.xls)" @@ -5452,91 +6491,116 @@ msgstr "" msgid "Download Data" msgstr "" -#: src/tables/Filter.tsx:89 -#: src/tables/build/BuildOrderTable.tsx:135 +#: src/tables/Filter.tsx:101 msgid "Assigned to me" msgstr "" -#: src/tables/Filter.tsx:90 -#: src/tables/build/BuildOrderTable.tsx:136 +#: src/tables/Filter.tsx:102 msgid "Show orders assigned to me" msgstr "" -#: src/tables/Filter.tsx:97 +#: src/tables/Filter.tsx:106 +#~ msgid "Show overdue orders" +#~ msgstr "Show overdue orders" + +#: src/tables/Filter.tsx:109 +#: src/tables/build/BuildOrderTable.tsx:120 +#: src/tables/sales/SalesOrderAllocationTable.tsx:59 msgid "Outstanding" msgstr "" -#: src/tables/Filter.tsx:98 -msgid "Show outstanding orders" +#: src/tables/Filter.tsx:110 +msgid "Show outstanding items" msgstr "" -#: src/tables/Filter.tsx:105 -#: src/tables/build/BuildOrderTable.tsx:128 +#: src/tables/Filter.tsx:117 msgid "Overdue" msgstr "" -#: src/tables/Filter.tsx:106 -msgid "Show overdue orders" +#: src/tables/Filter.tsx:118 +msgid "Show overdue items" msgstr "" -#: src/tables/FilterSelectDrawer.tsx:51 +#: src/tables/Filter.tsx:125 +msgid "Minimum Date" +msgstr "" + +#: src/tables/Filter.tsx:126 +msgid "Show items after this date" +msgstr "" + +#: src/tables/Filter.tsx:134 +msgid "Maximum Date" +msgstr "" + +#: src/tables/Filter.tsx:135 +msgid "Show items before this date" +msgstr "" + +#: src/tables/Filter.tsx:144 +msgid "Has Project Code" +msgstr "" + +#: src/tables/Filter.tsx:145 +msgid "Show orders with an assigned project code" +msgstr "" + +#: src/tables/FilterSelectDrawer.tsx:55 msgid "Remove filter" msgstr "" -#: src/tables/FilterSelectDrawer.tsx:130 +#: src/tables/FilterSelectDrawer.tsx:159 msgid "Select filter" msgstr "" -#: src/tables/FilterSelectDrawer.tsx:131 +#: src/tables/FilterSelectDrawer.tsx:160 msgid "Filter" msgstr "" -#: src/tables/FilterSelectDrawer.tsx:138 -#: src/tables/build/BuildOrderTestTable.tsx:134 -#: src/tables/purchasing/ManufacturerPartParameterTable.tsx:38 -#: src/tables/stock/StockItemTestResultTable.tsx:186 -msgid "Value" +#: src/tables/FilterSelectDrawer.tsx:168 +msgid "Select date value" msgstr "" -#: src/tables/FilterSelectDrawer.tsx:140 +#: src/tables/FilterSelectDrawer.tsx:176 msgid "Select filter value" msgstr "" -#: src/tables/FilterSelectDrawer.tsx:183 +#: src/tables/FilterSelectDrawer.tsx:219 +#: src/tables/InvenTreeTableHeader.tsx:214 msgid "Table Filters" msgstr "" -#: src/tables/FilterSelectDrawer.tsx:215 +#: src/tables/FilterSelectDrawer.tsx:251 msgid "Add Filter" msgstr "" -#: src/tables/FilterSelectDrawer.tsx:224 +#: src/tables/FilterSelectDrawer.tsx:260 msgid "Clear Filters" msgstr "" -#: src/tables/InvenTreeTable.tsx:123 -#: src/tables/InvenTreeTable.tsx:431 -#: src/tables/InvenTreeTable.tsx:455 +#: src/tables/InvenTreeTable.tsx:96 +#: src/tables/InvenTreeTable.tsx:417 +#: src/tables/InvenTreeTable.tsx:441 msgid "No records found" msgstr "" -#: src/tables/InvenTreeTable.tsx:466 +#: src/tables/InvenTreeTable.tsx:452 msgid "Server returned incorrect data type" msgstr "" -#: src/tables/InvenTreeTable.tsx:474 +#: src/tables/InvenTreeTable.tsx:460 msgid "Bad request" msgstr "" -#: src/tables/InvenTreeTable.tsx:477 +#: src/tables/InvenTreeTable.tsx:463 msgid "Unauthorized" msgstr "" -#: src/tables/InvenTreeTable.tsx:480 +#: src/tables/InvenTreeTable.tsx:466 msgid "Forbidden" msgstr "" -#: src/tables/InvenTreeTable.tsx:483 +#: src/tables/InvenTreeTable.tsx:469 msgid "Not found" msgstr "" @@ -5544,18 +6608,6 @@ msgstr "" #~ msgid "Are you sure you want to delete the selected records?" #~ msgstr "Are you sure you want to delete the selected records?" -#: src/tables/InvenTreeTable.tsx:525 -msgid "Delete Selected Items" -msgstr "" - -#: src/tables/InvenTreeTable.tsx:529 -msgid "Are you sure you want to delete the selected items?" -msgstr "" - -#: src/tables/InvenTreeTable.tsx:531 -msgid "This action cannot be undone!" -msgstr "" - #: src/tables/InvenTreeTable.tsx:535 #~ msgid "Deleted records" #~ msgstr "Deleted records" @@ -5568,31 +6620,56 @@ msgstr "" #~ msgid "Failed to delete records" #~ msgstr "Failed to delete records" +#: src/tables/InvenTreeTable.tsx:552 +#~ msgid "This action cannot be undone!" +#~ msgstr "This action cannot be undone!" + #: src/tables/InvenTreeTable.tsx:594 #: src/tables/InvenTreeTable.tsx:595 #~ msgid "Print actions" #~ msgstr "Print actions" -#: src/tables/InvenTreeTable.tsx:618 -#: src/tables/InvenTreeTable.tsx:619 -msgid "Barcode actions" +#: src/tables/InvenTreeTable.tsx:655 +#: src/tables/InvenTreeTable.tsx:656 +#~ msgid "Barcode actions" +#~ msgstr "Barcode actions" + +#: src/tables/InvenTreeTable.tsx:712 +#~ msgid "Table filters" +#~ msgstr "Table filters" + +#: src/tables/InvenTreeTable.tsx:725 +#~ msgid "Clear custom query filters" +#~ msgstr "Clear custom query filters" + +#: src/tables/InvenTreeTableHeader.tsx:98 +msgid "Delete Selected Items" msgstr "" -#: src/tables/InvenTreeTable.tsx:628 +#: src/tables/InvenTreeTableHeader.tsx:102 +msgid "Are you sure you want to delete the selected items?" +msgstr "" + +#: src/tables/InvenTreeTableHeader.tsx:104 +#: src/tables/plugin/PluginListTable.tsx:305 +msgid "This action cannot be undone" +msgstr "" + +#: src/tables/InvenTreeTableHeader.tsx:142 +msgid "Custom table filters are active" +msgstr "" + +#: src/tables/InvenTreeTableHeader.tsx:169 msgid "Delete selected records" msgstr "" -#: src/tables/InvenTreeTable.tsx:649 +#: src/tables/InvenTreeTableHeader.tsx:188 msgid "Refresh data" msgstr "" -#: src/tables/InvenTreeTable.tsx:675 -msgid "Table filters" -msgstr "" - #: src/tables/TableHoverCard.tsx:35 -msgid "item-{idx}" -msgstr "" +#~ msgid "item-{idx}" +#~ msgstr "item-{idx}" #: src/tables/UploadAction.tsx:7 #~ msgid "Upload Data" @@ -5607,31 +6684,36 @@ msgid "Part Information" msgstr "" #: src/tables/bom/BomTable.tsx:212 -#: src/tables/build/BuildLineTable.tsx:126 +#: src/tables/build/BuildLineTable.tsx:257 #: src/tables/part/PartTable.tsx:125 msgid "External stock" msgstr "" #: src/tables/bom/BomTable.tsx:220 -#: src/tables/build/BuildLineTable.tsx:89 +#: src/tables/build/BuildLineTable.tsx:220 msgid "Includes substitute stock" msgstr "" #: src/tables/bom/BomTable.tsx:229 -#: src/tables/build/BuildLineTable.tsx:99 -#: src/tables/sales/SalesOrderLineItemTable.tsx:127 +#: src/tables/build/BuildLineTable.tsx:230 +#: src/tables/sales/SalesOrderLineItemTable.tsx:135 msgid "Includes variant stock" msgstr "" +#: src/tables/bom/BomTable.tsx:245 +#: src/tables/part/PartTable.tsx:92 +msgid "Building" +msgstr "" + #: src/tables/bom/BomTable.tsx:254 #: src/tables/part/PartTable.tsx:153 -#: src/tables/sales/SalesOrderLineItemTable.tsx:150 -#: src/tables/stock/StockItemTable.tsx:216 +#: src/tables/sales/SalesOrderLineItemTable.tsx:158 +#: src/tables/stock/StockItemTable.tsx:206 msgid "Stock Information" msgstr "" #: src/tables/bom/BomTable.tsx:285 -#: src/tables/build/BuildLineTable.tsx:248 +#: src/tables/build/BuildLineTable.tsx:409 msgid "Consumable item" msgstr "" @@ -5644,7 +6726,7 @@ msgstr "" #~ msgstr "Create BOM Item" #: src/tables/bom/BomTable.tsx:306 -#: src/tables/build/BuildLineTable.tsx:69 +#: src/tables/build/BuildLineTable.tsx:200 msgid "Show testable items" msgstr "" @@ -5657,11 +6739,12 @@ msgid "Show trackable items" msgstr "" #: src/tables/bom/BomTable.tsx:316 -#: src/tables/build/BuildLineTable.tsx:64 +#: src/tables/build/BuildLineTable.tsx:195 msgid "Show assembled items" msgstr "" #: src/tables/bom/BomTable.tsx:321 +#: src/tables/build/BuildLineTable.tsx:180 msgid "Show items with available stock" msgstr "" @@ -5705,7 +6788,7 @@ msgstr "" #: src/tables/bom/BomTable.tsx:345 #: src/tables/bom/UsedInTable.tsx:79 -#: src/tables/build/BuildLineTable.tsx:58 +#: src/tables/build/BuildLineTable.tsx:189 msgid "Optional" msgstr "" @@ -5723,7 +6806,7 @@ msgstr "" #~ msgstr "Bom item deleted" #: src/tables/bom/BomTable.tsx:350 -#: src/tables/build/BuildLineTable.tsx:53 +#: src/tables/build/BuildLineTable.tsx:184 msgid "Consumable" msgstr "" @@ -5749,12 +6832,12 @@ msgid "Show items with pricing" msgstr "" #: src/tables/bom/BomTable.tsx:378 -#: src/tables/bom/BomTable.tsx:511 +#: src/tables/bom/BomTable.tsx:512 msgid "Import BOM Data" msgstr "" #: src/tables/bom/BomTable.tsx:388 -#: src/tables/bom/BomTable.tsx:523 +#: src/tables/bom/BomTable.tsx:526 msgid "Add BOM Item" msgstr "" @@ -5780,7 +6863,7 @@ msgstr "" #: src/tables/bom/BomTable.tsx:423 #: src/tables/bom/BomTable.tsx:426 -#: src/tables/bom/BomTable.tsx:517 +#: src/tables/bom/BomTable.tsx:519 msgid "Validate BOM" msgstr "" @@ -5812,21 +6895,15 @@ msgstr "" msgid "Edit Substitutes" msgstr "" -#: src/tables/bom/BomTable.tsx:539 -#: src/tables/part/PartParameterTable.tsx:193 -#: src/tables/part/PartTestTemplateTable.tsx:252 -msgid "Part is Locked" -msgstr "" - -#: src/tables/bom/BomTable.tsx:544 +#: src/tables/bom/BomTable.tsx:547 msgid "Bill of materials cannot be edited, as the part is locked" msgstr "" #: src/tables/bom/UsedInTable.tsx:33 -#: src/tables/build/BuildLineTable.tsx:63 +#: src/tables/build/BuildLineTable.tsx:194 #: src/tables/part/ParametricPartTable.tsx:233 #: src/tables/part/PartTable.tsx:190 -#: src/tables/stock/StockItemTable.tsx:300 +#: src/tables/stock/StockItemTable.tsx:304 msgid "Assembly" msgstr "" @@ -5844,415 +6921,480 @@ msgstr "" msgid "Show trackable assemblies" msgstr "" -#: src/tables/build/BuildAllocatedStockTable.tsx:54 +#: src/tables/build/BuildAllocatedStockTable.tsx:56 msgid "Allocated to Output" msgstr "" -#: src/tables/build/BuildAllocatedStockTable.tsx:55 +#: src/tables/build/BuildAllocatedStockTable.tsx:57 msgid "Show items allocated to a build output" msgstr "" -#: src/tables/build/BuildAllocatedStockTable.tsx:76 -#: src/tables/part/PartPurchaseOrdersTable.tsx:125 -#: src/tables/sales/SalesOrderAllocationTable.tsx:62 +#: src/tables/build/BuildAllocatedStockTable.tsx:65 +#: src/tables/build/BuildOrderTable.tsx:159 +#: src/tables/part/PartParameterTable.tsx:212 +#: src/tables/part/PartPurchaseOrdersTable.tsx:138 +#: src/tables/sales/ReturnOrderTable.tsx:84 +#: src/tables/sales/SalesOrderAllocationTable.tsx:68 +#: src/tables/sales/SalesOrderTable.tsx:84 +#: src/tables/stock/StockItemTable.tsx:339 +msgid "Include Variants" +msgstr "" + +#: src/tables/build/BuildAllocatedStockTable.tsx:66 +#: src/tables/build/BuildOrderTable.tsx:160 +#: src/tables/part/PartPurchaseOrdersTable.tsx:139 +#: src/tables/sales/ReturnOrderTable.tsx:85 +#: src/tables/sales/SalesOrderAllocationTable.tsx:69 +#: src/tables/sales/SalesOrderTable.tsx:85 +msgid "Include orders for part variants" +msgstr "" + +#: src/tables/build/BuildAllocatedStockTable.tsx:89 +#: src/tables/part/PartPurchaseOrdersTable.tsx:131 +#: src/tables/sales/SalesOrderAllocationTable.tsx:93 msgid "Order Status" msgstr "" -#: src/tables/build/BuildAllocatedStockTable.tsx:96 -#: src/tables/sales/SalesOrderAllocationTable.tsx:75 +#: src/tables/build/BuildAllocatedStockTable.tsx:117 +#: src/tables/sales/SalesOrderAllocationTable.tsx:126 msgid "Allocated Quantity" msgstr "" -#: src/tables/build/BuildAllocatedStockTable.tsx:116 -#: src/tables/sales/SalesOrderAllocationTable.tsx:94 +#: src/tables/build/BuildAllocatedStockTable.tsx:137 +#: src/tables/sales/SalesOrderAllocationTable.tsx:120 msgid "Available Quantity" msgstr "" -#: src/tables/build/BuildAllocatedStockTable.tsx:126 -#: src/tables/build/BuildOrderTestTable.tsx:176 -#: src/tables/build/BuildOrderTestTable.tsx:200 -#: src/tables/build/BuildOutputTable.tsx:312 -msgid "Build Output" +#: src/tables/build/BuildAllocatedStockTable.tsx:164 +#: src/tables/build/BuildLineTable.tsx:513 +msgid "Edit Stock Allocation" msgstr "" -#: src/tables/build/BuildAllocatedStockTable.tsx:143 -msgid "Edit Build Item" -msgstr "" +#: src/tables/build/BuildAllocatedStockTable.tsx:164 +#~ msgid "Edit Build Item" +#~ msgstr "Edit Build Item" -#: src/tables/build/BuildAllocatedStockTable.tsx:153 -msgid "Delete Build Item" -msgstr "" +#: src/tables/build/BuildAllocatedStockTable.tsx:174 +#~ msgid "Delete Build Item" +#~ msgstr "Delete Build Item" -#: src/tables/build/BuildLineTable.tsx:43 -#: src/tables/stock/StockItemTable.tsx:305 -msgid "Allocated" -msgstr "" - -#: src/tables/build/BuildLineTable.tsx:44 -msgid "Show allocated lines" -msgstr "" - -#: src/tables/build/BuildLineTable.tsx:49 -msgid "Show lines with available stock" -msgstr "" - -#: src/tables/build/BuildLineTable.tsx:54 -msgid "Show consumable lines" +#: src/tables/build/BuildAllocatedStockTable.tsx:177 +#: src/tables/build/BuildLineTable.tsx:526 +msgid "Delete Stock Allocation" msgstr "" #: src/tables/build/BuildLineTable.tsx:59 +#~ msgid "Show lines with available stock" +#~ msgstr "Show lines with available stock" + +#: src/tables/build/BuildLineTable.tsx:175 +msgid "Show allocated lines" +msgstr "" + +#: src/tables/build/BuildLineTable.tsx:185 +msgid "Show consumable lines" +msgstr "" + +#: src/tables/build/BuildLineTable.tsx:190 msgid "Show optional lines" msgstr "" -#: src/tables/build/BuildLineTable.tsx:68 +#: src/tables/build/BuildLineTable.tsx:199 #: src/tables/part/PartTable.tsx:208 msgid "Testable" msgstr "" -#: src/tables/build/BuildLineTable.tsx:73 -#: src/tables/stock/StockItemTable.tsx:364 +#: src/tables/build/BuildLineTable.tsx:204 +#: src/tables/stock/StockItemTable.tsx:368 msgid "Tracked" msgstr "" -#: src/tables/build/BuildLineTable.tsx:74 +#: src/tables/build/BuildLineTable.tsx:205 msgid "Show tracked lines" msgstr "" -#: src/tables/build/BuildLineTable.tsx:108 -#: src/tables/sales/SalesOrderLineItemTable.tsx:133 +#: src/tables/build/BuildLineTable.tsx:239 +#: src/tables/sales/SalesOrderLineItemTable.tsx:141 msgid "In production" msgstr "" -#: src/tables/build/BuildLineTable.tsx:136 +#: src/tables/build/BuildLineTable.tsx:267 msgid "Insufficient stock" msgstr "" -#: src/tables/build/BuildLineTable.tsx:152 -#: src/tables/sales/SalesOrderLineItemTable.tsx:121 -#: src/tables/stock/StockItemTable.tsx:186 +#: src/tables/build/BuildLineTable.tsx:283 +#: src/tables/sales/SalesOrderLineItemTable.tsx:129 +#: src/tables/stock/StockItemTable.tsx:175 msgid "No stock available" msgstr "" -#: src/tables/build/BuildLineTable.tsx:201 +#: src/tables/build/BuildLineTable.tsx:355 msgid "Gets Inherited" msgstr "" -#: src/tables/build/BuildLineTable.tsx:210 +#: src/tables/build/BuildLineTable.tsx:366 msgid "Unit Quantity" msgstr "" -#: src/tables/build/BuildLineTable.tsx:267 -#: src/tables/sales/SalesOrderLineItemTable.tsx:230 +#: src/tables/build/BuildLineTable.tsx:381 +msgid "Required Quantity" +msgstr "" + +#: src/tables/build/BuildLineTable.tsx:432 +#: src/tables/sales/SalesOrderLineItemTable.tsx:254 msgid "Create Build Order" msgstr "" -#: src/tables/build/BuildLineTable.tsx:298 -msgid "Allocate Stock" +#: src/tables/build/BuildLineTable.tsx:460 +msgid "Auto allocation in progress" msgstr "" -#: src/tables/build/BuildLineTable.tsx:305 +#: src/tables/build/BuildLineTable.tsx:463 +#: src/tables/build/BuildLineTable.tsx:632 +msgid "Auto Allocate Stock" +msgstr "" + +#: src/tables/build/BuildLineTable.tsx:464 +msgid "Automatically allocate stock to this build according to the selected options" +msgstr "" + +#: src/tables/build/BuildLineTable.tsx:482 +#: src/tables/build/BuildLineTable.tsx:496 +#: src/tables/build/BuildLineTable.tsx:579 +#: src/tables/build/BuildLineTable.tsx:664 +#: src/tables/build/BuildOutputTable.tsx:314 +#: src/tables/build/BuildOutputTable.tsx:319 +msgid "Deallocate Stock" +msgstr "" + +#: src/tables/build/BuildLineTable.tsx:498 +msgid "Deallocate all untracked stock for this build order" +msgstr "" + +#: src/tables/build/BuildLineTable.tsx:500 +msgid "Deallocate stock from the selected line item" +msgstr "" + +#: src/tables/build/BuildLineTable.tsx:504 +msgid "Stock has been deallocated" +msgstr "" + +#: src/tables/build/BuildLineTable.tsx:589 msgid "Order Stock" msgstr "" -#: src/tables/build/BuildLineTable.tsx:312 +#: src/tables/build/BuildLineTable.tsx:596 msgid "Build Stock" msgstr "" -#: src/tables/build/BuildOrderTable.tsx:111 -msgid "Show active orders" +#: src/tables/build/BuildLineTable.tsx:610 +msgid "View Part" msgstr "" #: src/tables/build/BuildOrderTable.tsx:116 -msgid "Cascade" -msgstr "" +#~ msgid "Cascade" +#~ msgstr "Cascade" #: src/tables/build/BuildOrderTable.tsx:117 -msgid "Display recursive child orders" +#~ msgid "Display recursive child orders" +#~ msgstr "Display recursive child orders" + +#: src/tables/build/BuildOrderTable.tsx:121 +msgid "Show outstanding orders" msgstr "" -#: src/tables/build/BuildOrderTable.tsx:123 -#: src/tables/part/PartPurchaseOrdersTable.tsx:126 -#: src/tables/purchasing/PurchaseOrderTable.tsx:56 -#: src/tables/sales/ReturnOrderTable.tsx:47 -#: src/tables/sales/SalesOrderTable.tsx:54 +#: src/tables/build/BuildOrderTable.tsx:121 +#~ msgid "Show active orders" +#~ msgstr "Show active orders" + +#: src/tables/build/BuildOrderTable.tsx:122 +#~ msgid "Show overdue status" +#~ msgstr "Show overdue status" + +#: src/tables/build/BuildOrderTable.tsx:126 +#: src/tables/part/PartPurchaseOrdersTable.tsx:132 +#: src/tables/purchasing/PurchaseOrderTable.tsx:59 +#: src/tables/sales/ReturnOrderTable.tsx:57 +#: src/tables/sales/SalesOrderTable.tsx:57 msgid "Filter by order status" msgstr "" -#: src/tables/build/BuildOrderTable.tsx:130 -msgid "Show overdue status" -msgstr "" - -#: src/tables/build/BuildOrderTable.tsx:141 -#: src/tables/purchasing/PurchaseOrderTable.tsx:65 -#: src/tables/sales/ReturnOrderTable.tsx:56 -#: src/tables/sales/SalesOrderTable.tsx:63 +#: src/tables/build/BuildOrderTable.tsx:136 +#: src/tables/purchasing/PurchaseOrderTable.tsx:70 +#: src/tables/sales/ReturnOrderTable.tsx:68 +#: src/tables/sales/SalesOrderTable.tsx:68 msgid "Filter by project code" msgstr "" -#: src/tables/build/BuildOrderTable.tsx:146 -#: src/tables/purchasing/PurchaseOrderTable.tsx:70 -#: src/tables/sales/ReturnOrderTable.tsx:61 -#: src/tables/sales/SalesOrderTable.tsx:68 -msgid "Has Project Code" -msgstr "" - -#: src/tables/build/BuildOrderTable.tsx:147 +#: src/tables/build/BuildOrderTable.tsx:139 #: src/tables/purchasing/PurchaseOrderTable.tsx:71 #: src/tables/sales/ReturnOrderTable.tsx:62 #: src/tables/sales/SalesOrderTable.tsx:69 -msgid "Filter by whether the purchase order has a project code" -msgstr "" +#~ msgid "Filter by whether the purchase order has a project code" +#~ msgstr "Filter by whether the purchase order has a project code" -#: src/tables/build/BuildOrderTable.tsx:152 +#: src/tables/build/BuildOrderTable.tsx:143 msgid "Filter by user who issued this order" msgstr "" -#: src/tables/build/BuildOrderTable.tsx:158 -#: src/tables/purchasing/PurchaseOrderTable.tsx:76 -#: src/tables/sales/ReturnOrderTable.tsx:67 -#: src/tables/sales/SalesOrderTable.tsx:74 +#: src/tables/build/BuildOrderTable.tsx:149 +#: src/tables/purchasing/PurchaseOrderTable.tsx:77 +#: src/tables/sales/ReturnOrderTable.tsx:75 +#: src/tables/sales/SalesOrderTable.tsx:75 msgid "Filter by responsible owner" msgstr "" -#: src/tables/build/BuildOrderTestTable.tsx:75 -#: src/tables/build/BuildOrderTestTable.tsx:111 -#: src/tables/stock/StockItemTestResultTable.tsx:257 -#: src/tables/stock/StockItemTestResultTable.tsx:329 -#: src/tables/stock/StockItemTestResultTable.tsx:384 +#: src/tables/build/BuildOrderTestTable.tsx:76 +#: src/tables/build/BuildOrderTestTable.tsx:112 +#: src/tables/stock/StockItemTestResultTable.tsx:275 +#: src/tables/stock/StockItemTestResultTable.tsx:347 +#: src/tables/stock/StockItemTestResultTable.tsx:403 msgid "Add Test Result" msgstr "" -#: src/tables/build/BuildOrderTestTable.tsx:82 -#: src/tables/stock/StockItemTestResultTable.tsx:259 +#: src/tables/build/BuildOrderTestTable.tsx:83 +#: src/tables/stock/StockItemTestResultTable.tsx:277 msgid "Test result added" msgstr "" -#: src/tables/build/BuildOrderTestTable.tsx:110 -#: src/tables/stock/StockItemTestResultTable.tsx:174 +#: src/tables/build/BuildOrderTestTable.tsx:111 +#: src/tables/stock/StockItemTestResultTable.tsx:180 msgid "No Result" msgstr "" -#: src/tables/build/BuildOrderTestTable.tsx:220 +#: src/tables/build/BuildOrderTestTable.tsx:221 msgid "Show build outputs currently in production" msgstr "" +#: src/tables/build/BuildOutputTable.tsx:76 +msgid "Build Output Stock Allocation" +msgstr "" + #: src/tables/build/BuildOutputTable.tsx:161 #~ msgid "Delete build output" #~ msgstr "Delete build output" -#: src/tables/build/BuildOutputTable.tsx:173 -#: src/tables/build/BuildOutputTable.tsx:211 +#: src/tables/build/BuildOutputTable.tsx:258 +#: src/tables/build/BuildOutputTable.tsx:374 msgid "Add Build Output" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:216 +#: src/tables/build/BuildOutputTable.tsx:304 +#~ msgid "Edit build output" +#~ msgstr "Edit build output" + +#: src/tables/build/BuildOutputTable.tsx:306 +#: src/tables/build/BuildOutputTable.tsx:417 +msgid "Edit Build Output" +msgstr "" + +#: src/tables/build/BuildOutputTable.tsx:321 +msgid "This action will deallocate all stock from the selected build output" +msgstr "" + +#: src/tables/build/BuildOutputTable.tsx:341 msgid "Complete selected outputs" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:226 +#: src/tables/build/BuildOutputTable.tsx:352 msgid "Scrap selected outputs" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:236 +#: src/tables/build/BuildOutputTable.tsx:363 msgid "Cancel selected outputs" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:252 +#: src/tables/build/BuildOutputTable.tsx:385 msgid "Allocate" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:253 +#: src/tables/build/BuildOutputTable.tsx:386 msgid "Allocate stock to build output" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:259 +#: src/tables/build/BuildOutputTable.tsx:396 msgid "Deallocate" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:260 +#: src/tables/build/BuildOutputTable.tsx:397 msgid "Deallocate stock from build output" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:267 +#: src/tables/build/BuildOutputTable.tsx:408 msgid "Complete build output" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:276 +#: src/tables/build/BuildOutputTable.tsx:424 msgid "Scrap" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:277 +#: src/tables/build/BuildOutputTable.tsx:425 msgid "Scrap build output" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:280 -#~ msgid "Allocated Items" -#~ msgstr "Allocated Items" - -#: src/tables/build/BuildOutputTable.tsx:287 +#: src/tables/build/BuildOutputTable.tsx:435 msgid "Cancel build output" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:325 -msgid "Batch" -msgstr "" - -#: src/tables/build/BuildOutputTable.tsx:340 +#: src/tables/build/BuildOutputTable.tsx:488 msgid "Allocated Lines" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:355 +#: src/tables/build/BuildOutputTable.tsx:503 msgid "Required Tests" msgstr "" -#: src/tables/company/AddressTable.tsx:121 -#: src/tables/company/AddressTable.tsx:185 +#: src/tables/company/AddressTable.tsx:118 +#: src/tables/company/AddressTable.tsx:183 msgid "Add Address" -msgstr "" +msgstr "Tambah Alamat" -#: src/tables/company/AddressTable.tsx:126 +#: src/tables/company/AddressTable.tsx:123 msgid "Address created" -msgstr "" +msgstr "Alamat telah dibuat" -#: src/tables/company/AddressTable.tsx:135 +#: src/tables/company/AddressTable.tsx:132 msgid "Edit Address" -msgstr "" +msgstr "Ubah Alamat" -#: src/tables/company/AddressTable.tsx:143 +#: src/tables/company/AddressTable.tsx:140 msgid "Delete Address" -msgstr "" +msgstr "Hapus Alamat" -#: src/tables/company/AddressTable.tsx:144 +#: src/tables/company/AddressTable.tsx:141 msgid "Are you sure you want to delete this address?" -msgstr "" +msgstr "Apakah kamu ingin menghapus alamat ini?" #: src/tables/company/CompanyTable.tsx:71 #~ msgid "New Company" #~ msgstr "New Company" -#: src/tables/company/CompanyTable.tsx:74 -#: src/tables/company/CompanyTable.tsx:123 +#: src/tables/company/CompanyTable.tsx:75 +#: src/tables/company/CompanyTable.tsx:125 msgid "Add Company" -msgstr "" +msgstr "Tambah Perusahaan" -#: src/tables/company/CompanyTable.tsx:96 +#: src/tables/company/CompanyTable.tsx:97 msgid "Show active companies" msgstr "" -#: src/tables/company/CompanyTable.tsx:101 +#: src/tables/company/CompanyTable.tsx:102 msgid "Show companies which are suppliers" msgstr "" -#: src/tables/company/CompanyTable.tsx:106 +#: src/tables/company/CompanyTable.tsx:107 msgid "Show companies which are manufacturers" msgstr "" -#: src/tables/company/CompanyTable.tsx:111 +#: src/tables/company/CompanyTable.tsx:112 msgid "Show companies which are customers" msgstr "" #: src/tables/company/ContactTable.tsx:71 msgid "Edit Contact" -msgstr "" +msgstr "Ubah Kontak" #: src/tables/company/ContactTable.tsx:78 msgid "Add Contact" -msgstr "" +msgstr "Tambah Kontak" #: src/tables/company/ContactTable.tsx:89 msgid "Delete Contact" -msgstr "" +msgstr "Hapus Kontak" -#: src/tables/company/ContactTable.tsx:129 +#: src/tables/company/ContactTable.tsx:130 msgid "Add contact" -msgstr "" +msgstr "Tambah Kontak" -#: src/tables/general/AttachmentTable.tsx:130 +#: src/tables/general/AttachmentTable.tsx:135 msgid "File uploaded" -msgstr "" +msgstr "Berkas telah diunggah" -#: src/tables/general/AttachmentTable.tsx:131 +#: src/tables/general/AttachmentTable.tsx:136 msgid "File {0} uploaded successfully" msgstr "" -#: src/tables/general/AttachmentTable.tsx:142 +#: src/tables/general/AttachmentTable.tsx:147 msgid "Upload Error" msgstr "" -#: src/tables/general/AttachmentTable.tsx:143 +#: src/tables/general/AttachmentTable.tsx:148 msgid "File could not be uploaded" msgstr "" -#: src/tables/general/AttachmentTable.tsx:191 +#: src/tables/general/AttachmentTable.tsx:196 msgid "Upload Attachment" msgstr "" -#: src/tables/general/AttachmentTable.tsx:201 +#: src/tables/general/AttachmentTable.tsx:206 msgid "Edit Attachment" msgstr "" -#: src/tables/general/AttachmentTable.tsx:215 +#: src/tables/general/AttachmentTable.tsx:220 msgid "Delete Attachment" msgstr "" -#: src/tables/general/AttachmentTable.tsx:225 +#: src/tables/general/AttachmentTable.tsx:230 msgid "Is Link" msgstr "" -#: src/tables/general/AttachmentTable.tsx:226 +#: src/tables/general/AttachmentTable.tsx:231 msgid "Show link attachments" msgstr "" -#: src/tables/general/AttachmentTable.tsx:230 +#: src/tables/general/AttachmentTable.tsx:235 msgid "Is File" msgstr "" -#: src/tables/general/AttachmentTable.tsx:231 +#: src/tables/general/AttachmentTable.tsx:236 msgid "Show file attachments" msgstr "" -#: src/tables/general/AttachmentTable.tsx:240 +#: src/tables/general/AttachmentTable.tsx:245 msgid "Add attachment" msgstr "" -#: src/tables/general/AttachmentTable.tsx:251 -msgid "Add external link" -msgstr "" - #: src/tables/general/AttachmentTable.tsx:254 #~ msgid "Upload attachment" #~ msgstr "Upload attachment" -#: src/tables/general/AttachmentTable.tsx:299 +#: src/tables/general/AttachmentTable.tsx:256 +msgid "Add external link" +msgstr "" + +#: src/tables/general/AttachmentTable.tsx:304 msgid "No attachments found" msgstr "" -#: src/tables/general/AttachmentTable.tsx:337 +#: src/tables/general/AttachmentTable.tsx:343 msgid "Drag attachment file here to upload" msgstr "" #: src/tables/general/ExtraLineItemTable.tsx:86 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:251 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:60 -#: src/tables/sales/SalesOrderLineItemTable.tsx:196 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:263 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:362 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:72 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:168 +#: src/tables/sales/SalesOrderLineItemTable.tsx:206 +#: src/tables/sales/SalesOrderLineItemTable.tsx:291 msgid "Add Line Item" msgstr "" #: src/tables/general/ExtraLineItemTable.tsx:98 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:271 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:72 -#: src/tables/sales/SalesOrderLineItemTable.tsx:214 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:283 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:84 +#: src/tables/sales/SalesOrderLineItemTable.tsx:224 msgid "Edit Line Item" msgstr "" #: src/tables/general/ExtraLineItemTable.tsx:106 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:279 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:80 -#: src/tables/sales/SalesOrderLineItemTable.tsx:222 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:291 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:92 +#: src/tables/sales/SalesOrderLineItemTable.tsx:232 msgid "Delete Line Item" msgstr "" -#: src/tables/general/ExtraLineItemTable.tsx:142 +#: src/tables/general/ExtraLineItemTable.tsx:143 msgid "Add Extra Line Item" msgstr "" @@ -6261,12 +7403,12 @@ msgid "Machine restarted" msgstr "" #: src/tables/machine/MachineListTable.tsx:212 -#: src/tables/machine/MachineListTable.tsx:263 +#: src/tables/machine/MachineListTable.tsx:261 msgid "Edit machine" msgstr "" #: src/tables/machine/MachineListTable.tsx:226 -#: src/tables/machine/MachineListTable.tsx:267 +#: src/tables/machine/MachineListTable.tsx:265 msgid "Delete machine" msgstr "" @@ -6278,51 +7420,50 @@ msgstr "" msgid "Are you sure you want to remove the machine \"{0}\"?" msgstr "" -#: src/tables/machine/MachineListTable.tsx:255 -#: src/tables/machine/MachineListTable.tsx:432 +#: src/tables/machine/MachineListTable.tsx:254 +#: src/tables/machine/MachineListTable.tsx:442 msgid "Restart required" msgstr "" -#: src/tables/machine/MachineListTable.tsx:259 +#: src/tables/machine/MachineListTable.tsx:258 msgid "Machine Actions" msgstr "" -#: src/tables/machine/MachineListTable.tsx:272 +#: src/tables/machine/MachineListTable.tsx:270 msgid "Restart" msgstr "" -#: src/tables/machine/MachineListTable.tsx:274 +#: src/tables/machine/MachineListTable.tsx:272 msgid "Restart machine" msgstr "" -#: src/tables/machine/MachineListTable.tsx:276 +#: src/tables/machine/MachineListTable.tsx:274 msgid "manual restart required" msgstr "" +#: src/tables/machine/MachineListTable.tsx:291 +#~ msgid "Machine information" +#~ msgstr "Machine information" + #: src/tables/machine/MachineListTable.tsx:292 -msgid "Machine information" +msgid "Machine Information" msgstr "" -#: src/tables/machine/MachineListTable.tsx:303 -#: src/tables/machine/MachineListTable.tsx:599 +#: src/tables/machine/MachineListTable.tsx:302 +#: src/tables/machine/MachineListTable.tsx:610 msgid "Machine Type" msgstr "" -#: src/tables/machine/MachineListTable.tsx:316 +#: src/tables/machine/MachineListTable.tsx:315 msgid "Machine Driver" msgstr "" -#: src/tables/machine/MachineListTable.tsx:329 +#: src/tables/machine/MachineListTable.tsx:330 msgid "Initialized" msgstr "" -#: src/tables/machine/MachineListTable.tsx:350 -#: src/tables/machine/MachineTypeTable.tsx:261 -msgid "Errors" -msgstr "" - -#: src/tables/machine/MachineListTable.tsx:358 -#: src/tables/machine/MachineTypeTable.tsx:269 +#: src/tables/machine/MachineListTable.tsx:359 +#: src/tables/machine/MachineTypeTable.tsx:290 msgid "No errors reported" msgstr "" @@ -6330,7 +7471,7 @@ msgstr "" msgid "Machine Settings" msgstr "" -#: src/tables/machine/MachineListTable.tsx:389 +#: src/tables/machine/MachineListTable.tsx:394 msgid "Driver Settings" msgstr "" @@ -6338,86 +7479,109 @@ msgstr "" #~ msgid "Create machine" #~ msgstr "Create machine" -#: src/tables/machine/MachineListTable.tsx:506 +#: src/tables/machine/MachineListTable.tsx:516 +#: src/tables/machine/MachineListTable.tsx:558 msgid "Add machine" msgstr "" #: src/tables/machine/MachineListTable.tsx:561 -msgid "Machine detail" +#~ msgid "Machine detail" +#~ msgstr "Machine detail" + +#: src/tables/machine/MachineListTable.tsx:572 +msgid "Machine Detail" msgstr "" -#: src/tables/machine/MachineListTable.tsx:608 +#: src/tables/machine/MachineListTable.tsx:619 msgid "Driver" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:73 +#: src/tables/machine/MachineTypeTable.tsx:78 msgid "Builtin driver" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:89 +#: src/tables/machine/MachineTypeTable.tsx:96 +msgid "Not Found" +msgstr "" + +#: src/tables/machine/MachineTypeTable.tsx:99 msgid "Machine type not found." msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:97 -msgid "Machine type information" +#: src/tables/machine/MachineTypeTable.tsx:99 +#~ msgid "Machine type information" +#~ msgstr "Machine type information" + +#: src/tables/machine/MachineTypeTable.tsx:109 +msgid "Machine Type Information" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:110 -#: src/tables/machine/MachineTypeTable.tsx:217 +#: src/tables/machine/MachineTypeTable.tsx:124 +#: src/tables/machine/MachineTypeTable.tsx:238 msgid "Slug" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:118 -#: src/tables/machine/MachineTypeTable.tsx:238 +#: src/tables/machine/MachineTypeTable.tsx:135 +#: src/tables/machine/MachineTypeTable.tsx:259 msgid "Provider plugin" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:130 -#: src/tables/machine/MachineTypeTable.tsx:250 +#: src/tables/machine/MachineTypeTable.tsx:147 +#: src/tables/machine/MachineTypeTable.tsx:271 msgid "Provider file" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:135 -#: src/tables/machine/MachineTypeTable.tsx:255 -#: src/tables/plugin/PluginListTable.tsx:180 -#: src/tables/plugin/PluginListTable.tsx:568 -msgid "Builtin" +#: src/tables/machine/MachineTypeTable.tsx:148 +#~ msgid "Available drivers" +#~ msgstr "Available drivers" + +#: src/tables/machine/MachineTypeTable.tsx:162 +msgid "Available Drivers" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:146 -msgid "Available drivers" -msgstr "" - -#: src/tables/machine/MachineTypeTable.tsx:196 +#: src/tables/machine/MachineTypeTable.tsx:217 msgid "Machine driver not found." msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:204 +#: src/tables/machine/MachineTypeTable.tsx:225 msgid "Machine driver information" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:224 +#: src/tables/machine/MachineTypeTable.tsx:245 msgid "Machine type" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:327 +#: src/tables/machine/MachineTypeTable.tsx:338 +#~ msgid "Machine type detail" +#~ msgstr "Machine type detail" + +#: src/tables/machine/MachineTypeTable.tsx:348 msgid "Builtin type" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:336 -msgid "Machine type detail" +#: src/tables/machine/MachineTypeTable.tsx:348 +#~ msgid "Machine driver detail" +#~ msgstr "Machine driver detail" + +#: src/tables/machine/MachineTypeTable.tsx:357 +msgid "Machine Type Detail" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:346 -msgid "Machine driver detail" +#: src/tables/machine/MachineTypeTable.tsx:367 +msgid "Machine Driver Detail" msgstr "" #: src/tables/notifications/NotificationsTable.tsx:26 msgid "Age" -msgstr "" +msgstr "Usia" + +#: src/tables/notifications/NotificationsTable.tsx:36 +msgid "Notification" +msgstr "Notifikasi" #: src/tables/notifications/NotificationsTable.tsx:40 #: src/tables/plugin/PluginErrorTable.tsx:37 +#: src/tables/settings/ErrorTable.tsx:50 msgid "Message" msgstr "" @@ -6451,33 +7615,32 @@ msgstr "" msgid "Show assembly parts" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:68 +#: src/tables/part/PartCategoryTable.tsx:48 +msgid "You are subscribed to notifications for this category" +msgstr "" + +#: src/tables/part/PartCategoryTable.tsx:80 #: src/tables/part/PartTable.tsx:196 msgid "Include Subcategories" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:69 +#: src/tables/part/PartCategoryTable.tsx:81 msgid "Include subcategories in results" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:74 +#: src/tables/part/PartCategoryTable.tsx:86 msgid "Show structural categories" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:78 -#: src/tables/part/PartTable.tsx:294 -msgid "Subscribed" -msgstr "" - -#: src/tables/part/PartCategoryTable.tsx:79 +#: src/tables/part/PartCategoryTable.tsx:91 msgid "Show categories to which the user is subscribed" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:86 +#: src/tables/part/PartCategoryTable.tsx:100 msgid "New Part Category" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:112 +#: src/tables/part/PartCategoryTable.tsx:129 msgid "Add Part Category" msgstr "" @@ -6523,11 +7686,6 @@ msgstr "" msgid "Part parameters cannot be edited, as the part is locked" msgstr "" -#: src/tables/part/PartParameterTable.tsx:212 -#: src/tables/stock/StockItemTable.tsx:335 -msgid "Include Variants" -msgstr "" - #: src/tables/part/PartParameterTemplateTable.tsx:31 msgid "Checkbox" msgstr "" @@ -6554,6 +7712,7 @@ msgid "Show templates with units" msgstr "" #: src/tables/part/PartParameterTemplateTable.tsx:85 +#: src/tables/part/PartParameterTemplateTable.tsx:141 msgid "Add Parameter Template" msgstr "" @@ -6566,23 +7725,19 @@ msgid "Delete Parameter Template" msgstr "" #: src/tables/part/PartParameterTemplateTable.tsx:141 -msgid "Add parameter template" -msgstr "" +#~ msgid "Add parameter template" +#~ msgstr "Add parameter template" -#: src/tables/part/PartPurchaseOrdersTable.tsx:77 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:162 +#: src/tables/part/PartPurchaseOrdersTable.tsx:78 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:168 msgid "Total Quantity" -msgstr "" +msgstr "Jumlah Total" -#: src/tables/part/PartPurchaseOrdersTable.tsx:115 -msgid "Pending" -msgstr "" - -#: src/tables/part/PartPurchaseOrdersTable.tsx:116 +#: src/tables/part/PartPurchaseOrdersTable.tsx:122 msgid "Show pending orders" msgstr "" -#: src/tables/part/PartPurchaseOrdersTable.tsx:121 +#: src/tables/part/PartPurchaseOrdersTable.tsx:127 msgid "Show received items" msgstr "" @@ -6726,24 +7881,15 @@ msgstr "" #: src/tables/part/PartTestTemplateTable.tsx:74 msgid "Results" -msgstr "" - -#: src/tables/part/PartTestTemplateTable.tsx:76 -msgid "No Results" -msgstr "" - -#: src/tables/part/PartTestTemplateTable.tsx:106 -#: src/tables/stock/StockItemTestResultTable.tsx:365 -msgid "Required" -msgstr "" +msgstr "Hasil" #: src/tables/part/PartTestTemplateTable.tsx:107 msgid "Show required tests" msgstr "" #: src/tables/part/PartTestTemplateTable.tsx:111 -#: src/tables/settings/TemplateTable.tsx:167 -#: src/tables/settings/TemplateTable.tsx:283 +#: src/tables/settings/TemplateTable.tsx:247 +#: src/tables/settings/TemplateTable.tsx:363 msgid "Enabled" msgstr "" @@ -6784,7 +7930,7 @@ msgid "Show tests which have recorded results" msgstr "" #: src/tables/part/PartTestTemplateTable.tsx:154 -#: src/tables/part/PartTestTemplateTable.tsx:237 +#: src/tables/part/PartTestTemplateTable.tsx:238 msgid "Add Test Template" msgstr "" @@ -6808,7 +7954,7 @@ msgstr "" msgid "View Parent Part" msgstr "" -#: src/tables/part/PartTestTemplateTable.tsx:257 +#: src/tables/part/PartTestTemplateTable.tsx:258 msgid "Part templates cannot be edited, as the part is locked" msgstr "" @@ -6836,28 +7982,49 @@ msgstr "" msgid "Show trackable variants" msgstr "" -#: src/tables/part/RelatedPartTable.tsx:84 +#: src/tables/part/RelatedPartTable.tsx:86 +#: src/tables/part/RelatedPartTable.tsx:109 msgid "Add Related Part" msgstr "" -#: src/tables/part/RelatedPartTable.tsx:99 +#: src/tables/part/RelatedPartTable.tsx:101 msgid "Delete Related Part" msgstr "" -#: src/tables/part/RelatedPartTable.tsx:106 -msgid "Add related part" -msgstr "" +#: src/tables/part/RelatedPartTable.tsx:109 +#~ msgid "Add related part" +#~ msgstr "Add related part" #: src/tables/plugin/PluginErrorTable.tsx:29 msgid "Stage" msgstr "" -#: src/tables/plugin/PluginListTable.tsx:95 -msgid "Plugin with key {pluginKey} not found" +#: src/tables/plugin/PluginListTable.tsx:42 +msgid "Plugin is active" msgstr "" +#: src/tables/plugin/PluginListTable.tsx:48 +msgid "Plugin is inactive" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:55 +msgid "Plugin is not installed" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:76 +msgid "Plugin" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:95 +#~ msgid "Plugin with key {pluginKey} not found" +#~ msgstr "Plugin with key {pluginKey} not found" + #: src/tables/plugin/PluginListTable.tsx:97 -msgid "An error occurred while fetching plugin details" +#~ msgid "An error occurred while fetching plugin details" +#~ msgstr "An error occurred while fetching plugin details" + +#: src/tables/plugin/PluginListTable.tsx:109 +msgid "Description not available" msgstr "" #: src/tables/plugin/PluginListTable.tsx:113 @@ -6865,12 +8032,8 @@ msgstr "" #~ msgstr "Plugin with id {id} not found" #: src/tables/plugin/PluginListTable.tsx:122 -msgid "Plugin information" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:134 -msgid "Author" -msgstr "" +#~ msgid "Plugin information" +#~ msgstr "Plugin information" #: src/tables/plugin/PluginListTable.tsx:134 #~ msgid "Plugin Actions" @@ -6881,79 +8044,124 @@ msgstr "" #~ msgid "Edit plugin" #~ msgstr "Edit plugin" +#: src/tables/plugin/PluginListTable.tsx:144 +msgid "Confirm plugin activation" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:145 +msgid "Confirm plugin deactivation" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:150 +msgid "The selected plugin will be activated" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:151 +msgid "The selected plugin will be deactivated" +msgstr "" + #: src/tables/plugin/PluginListTable.tsx:152 #: src/tables/plugin/PluginListTable.tsx:153 #~ msgid "Reload" #~ msgstr "Reload" -#: src/tables/plugin/PluginListTable.tsx:154 -msgid "Plugin is not active" -msgstr "" - #: src/tables/plugin/PluginListTable.tsx:163 -msgid "Package information" -msgstr "" +#~ msgid "Package information" +#~ msgstr "Package information" #: src/tables/plugin/PluginListTable.tsx:169 -msgid "Package Name" +msgid "Deactivate" msgstr "" -#: src/tables/plugin/PluginListTable.tsx:175 -msgid "Installation Path" +#: src/tables/plugin/PluginListTable.tsx:183 +msgid "Activate" msgstr "" -#: src/tables/plugin/PluginListTable.tsx:185 -msgid "Package" +#: src/tables/plugin/PluginListTable.tsx:184 +msgid "Activate selected plugin" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:196 +msgid "Update selected plugin" msgstr "" #: src/tables/plugin/PluginListTable.tsx:197 -msgid "Plugin settings" -msgstr "" +#~ msgid "Plugin settings" +#~ msgstr "Plugin settings" #: src/tables/plugin/PluginListTable.tsx:214 -msgid "Plugin is active" +#: src/tables/stock/InstalledItemsTable.tsx:107 +msgid "Uninstall" msgstr "" -#: src/tables/plugin/PluginListTable.tsx:220 -msgid "Plugin is inactive" +#: src/tables/plugin/PluginListTable.tsx:215 +msgid "Uninstall selected plugin" msgstr "" -#: src/tables/plugin/PluginListTable.tsx:227 -msgid "Plugin is not installed" +#: src/tables/plugin/PluginListTable.tsx:233 +msgid "Delete selected plugin configuration" msgstr "" -#: src/tables/plugin/PluginListTable.tsx:253 -msgid "Plugin" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:287 -msgid "Description not available" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:319 -msgid "Confirm plugin activation" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:320 -msgid "Confirm plugin deactivation" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:325 -msgid "The selected plugin will be activated" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:326 -msgid "The selected plugin will be deactivated" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:334 +#: src/tables/plugin/PluginListTable.tsx:249 msgid "Activate Plugin" msgstr "" +#: src/tables/plugin/PluginListTable.tsx:270 +msgid "Install plugin" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:283 +msgid "Install" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:284 +msgid "Plugin installed successfully" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:289 +msgid "Uninstall Plugin" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:301 +msgid "Confirm plugin uninstall" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:304 +msgid "The selected plugin will be uninstalled." +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:308 +#~ msgid "This action cannot be undone." +#~ msgstr "This action cannot be undone." + +#: src/tables/plugin/PluginListTable.tsx:309 +msgid "Plugin uninstalled successfully" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:317 +msgid "Delete Plugin" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:318 +msgid "Deleting this plugin configuration will remove all associated settings and data. Are you sure you want to delete this plugin?" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:331 +msgid "Plugins reloaded" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:332 +msgid "Plugins were reloaded successfully" +msgstr "" + #: src/tables/plugin/PluginListTable.tsx:338 #~ msgid "Deactivate Plugin" #~ msgstr "Deactivate Plugin" +#: src/tables/plugin/PluginListTable.tsx:350 +msgid "Reload Plugins" +msgstr "" + #: src/tables/plugin/PluginListTable.tsx:354 #~ msgid "The following plugin will be activated" #~ msgstr "The following plugin will be activated" @@ -6962,16 +8170,16 @@ msgstr "" #~ msgid "The following plugin will be deactivated" #~ msgstr "The following plugin will be deactivated" -#: src/tables/plugin/PluginListTable.tsx:362 -msgid "Deactivate" +#: src/tables/plugin/PluginListTable.tsx:357 +msgid "Install Plugin" msgstr "" #: src/tables/plugin/PluginListTable.tsx:366 #~ msgid "Confirm" #~ msgstr "Confirm" -#: src/tables/plugin/PluginListTable.tsx:373 -msgid "Activate" +#: src/tables/plugin/PluginListTable.tsx:374 +msgid "Plugin Detail" msgstr "" #: src/tables/plugin/PluginListTable.tsx:376 @@ -6998,76 +8206,12 @@ msgstr "" #~ msgid "Error updating plugin" #~ msgstr "Error updating plugin" -#: src/tables/plugin/PluginListTable.tsx:406 -msgid "Uninstall" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:438 -msgid "Install plugin" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:451 -msgid "Install" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:452 -msgid "Plugin installed successfully" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:457 -msgid "Uninstall Plugin" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:469 -msgid "Confirm plugin uninstall" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:472 -msgid "The selected plugin will be uninstalled." -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:473 -msgid "This action cannot be undone." -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:477 -msgid "Plugin uninstalled successfully" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:484 -msgid "Delete Plugin" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:485 -msgid "Deleting this plugin configuration will remove all associated settings and data. Are you sure you want to delete this plugin?" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:498 -msgid "Plugins reloaded" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:499 -msgid "Plugins were reloaded successfully" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:515 -msgid "Reload Plugins" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:524 -msgid "Install Plugin" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:544 -msgid "Plugin Detail" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:573 +#: src/tables/plugin/PluginListTable.tsx:411 msgid "Sample" msgstr "" -#: src/tables/plugin/PluginListTable.tsx:578 -#: src/tables/stock/StockItemTable.tsx:340 +#: src/tables/plugin/PluginListTable.tsx:416 +#: src/tables/stock/StockItemTable.tsx:344 msgid "Installed" msgstr "" @@ -7116,82 +8260,78 @@ msgstr "" #~ msgid "Are you sure you want to remove this manufacturer part?" #~ msgstr "Are you sure you want to remove this manufacturer part?" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:102 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:339 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:103 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:356 msgid "Import Line Items" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:135 -msgid "Part Description" -msgstr "" - -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:201 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:207 msgid "Supplier Code" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:208 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:214 msgid "Supplier Link" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:215 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:220 msgid "Manufacturer Code" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:229 -msgid "Destination" +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:248 +msgid "Show line items which have been received" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:300 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:316 msgid "Receive line item" msgstr "" #: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:344 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:142 -#: src/tables/sales/SalesOrderLineItemTable.tsx:240 -msgid "Add line item" -msgstr "" +#: src/tables/sales/ReturnOrderLineItemTable.tsx:160 +#: src/tables/sales/SalesOrderLineItemTable.tsx:258 +#~ msgid "Add line item" +#~ msgstr "Add line item" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:354 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:373 msgid "Receive items" msgstr "" -#: src/tables/purchasing/SupplierPartTable.tsx:93 +#: src/tables/purchasing/SupplierPartTable.tsx:95 msgid "MPN" msgstr "" -#: src/tables/purchasing/SupplierPartTable.tsx:122 +#: src/tables/purchasing/SupplierPartTable.tsx:124 msgid "Base units" msgstr "" -#: src/tables/purchasing/SupplierPartTable.tsx:170 +#: src/tables/purchasing/SupplierPartTable.tsx:172 msgid "Supplier part created" msgstr "" -#: src/tables/purchasing/SupplierPartTable.tsx:176 +#: src/tables/purchasing/SupplierPartTable.tsx:179 msgid "Add supplier part" msgstr "" -#: src/tables/purchasing/SupplierPartTable.tsx:188 +#: src/tables/purchasing/SupplierPartTable.tsx:191 msgid "Show active supplier parts" msgstr "" -#: src/tables/purchasing/SupplierPartTable.tsx:192 -msgid "Active Part" -msgstr "" - -#: src/tables/purchasing/SupplierPartTable.tsx:193 -msgid "Show active internal parts" -msgstr "" - #: src/tables/purchasing/SupplierPartTable.tsx:193 #~ msgid "Supplier part updated" #~ msgstr "Supplier part updated" -#: src/tables/purchasing/SupplierPartTable.tsx:197 +#: src/tables/purchasing/SupplierPartTable.tsx:195 +msgid "Active Part" +msgstr "" + +#: src/tables/purchasing/SupplierPartTable.tsx:196 +msgid "Show active internal parts" +msgstr "" + +#: src/tables/purchasing/SupplierPartTable.tsx:200 msgid "Active Supplier" msgstr "" -#: src/tables/purchasing/SupplierPartTable.tsx:198 +#: src/tables/purchasing/SupplierPartTable.tsx:201 msgid "Show active suppliers" msgstr "" @@ -7203,99 +8343,187 @@ msgstr "" #~ msgid "Are you sure you want to remove this supplier part?" #~ msgstr "Are you sure you want to remove this supplier part?" -#: src/tables/sales/ReturnOrderLineItemTable.tsx:114 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:139 msgid "Received Date" msgstr "" -#: src/tables/sales/ReturnOrderLineItemTable.tsx:128 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:153 msgid "Show items which have been received" msgstr "" -#: src/tables/sales/ReturnOrderLineItemTable.tsx:133 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:158 msgid "Filter by line item status" msgstr "" -#: src/tables/sales/ReturnOrderLineItemTable.tsx:158 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:176 +msgid "Receive selected items" +msgstr "" + +#: src/tables/sales/ReturnOrderLineItemTable.tsx:205 msgid "Receive Item" msgstr "" -#: src/tables/sales/SalesOrderLineItemTable.tsx:262 -msgid "Allocate stock" +#: src/tables/sales/SalesOrderAllocationTable.tsx:60 +msgid "Show outstanding allocations" msgstr "" -#: src/tables/sales/SalesOrderLineItemTable.tsx:272 +#: src/tables/sales/SalesOrderAllocationTable.tsx:168 +#: src/tables/sales/SalesOrderAllocationTable.tsx:190 +msgid "Edit Allocation" +msgstr "" + +#: src/tables/sales/SalesOrderAllocationTable.tsx:175 +#: src/tables/sales/SalesOrderAllocationTable.tsx:197 +msgid "Delete Allocation" +msgstr "" + +#: src/tables/sales/SalesOrderLineItemTable.tsx:244 +msgid "Allocate Serial Numbers" +msgstr "" + +#: src/tables/sales/SalesOrderLineItemTable.tsx:277 +msgid "Show lines which are fully allocated" +msgstr "" + +#: src/tables/sales/SalesOrderLineItemTable.tsx:280 +#~ msgid "Allocate stock" +#~ msgstr "Allocate stock" + +#: src/tables/sales/SalesOrderLineItemTable.tsx:282 +msgid "Show lines which are completed" +msgstr "" + +#: src/tables/sales/SalesOrderLineItemTable.tsx:291 +#~ msgid "Allocate Serials" +#~ msgstr "Allocate Serials" + +#: src/tables/sales/SalesOrderLineItemTable.tsx:340 +msgid "Allocate serials" +msgstr "" + +#: src/tables/sales/SalesOrderLineItemTable.tsx:356 msgid "Build stock" msgstr "" -#: src/tables/sales/SalesOrderLineItemTable.tsx:289 -#: src/tables/stock/StockItemTable.tsx:507 +#: src/tables/sales/SalesOrderLineItemTable.tsx:373 +#: src/tables/stock/StockItemTable.tsx:512 msgid "Order stock" msgstr "" -#: src/tables/sales/SalesOrderShipmentTable.tsx:40 +#: src/tables/sales/SalesOrderShipmentTable.tsx:51 +#~ msgid "Delete Shipment" +#~ msgstr "Delete Shipment" + +#: src/tables/sales/SalesOrderShipmentTable.tsx:57 msgid "Create Shipment" msgstr "" -#: src/tables/sales/SalesOrderShipmentTable.tsx:50 -msgid "Delete Shipment" -msgstr "" - -#: src/tables/sales/SalesOrderShipmentTable.tsx:58 -msgid "Edit Shipment" -msgstr "" - -#: src/tables/sales/SalesOrderShipmentTable.tsx:66 -msgid "Shipment Reference" -msgstr "" - -#: src/tables/sales/SalesOrderShipmentTable.tsx:71 +#: src/tables/sales/SalesOrderShipmentTable.tsx:104 msgid "Items" msgstr "" -#: src/tables/sales/SalesOrderShipmentTable.tsx:83 -msgid "Delivery Date" +#: src/tables/sales/SalesOrderShipmentTable.tsx:139 +msgid "View Shipment" msgstr "" -#: src/tables/sales/SalesOrderShipmentTable.tsx:107 -msgid "Complete Shipment" +#: src/tables/sales/SalesOrderShipmentTable.tsx:161 +msgid "Edit shipment" msgstr "" -#: src/tables/sales/SalesOrderShipmentTable.tsx:133 +#: src/tables/sales/SalesOrderShipmentTable.tsx:169 +msgid "Cancel shipment" +msgstr "" + +#: src/tables/sales/SalesOrderShipmentTable.tsx:184 msgid "Add shipment" msgstr "" -#: src/tables/sales/SalesOrderShipmentTable.tsx:146 -msgid "Shipped" -msgstr "" - -#: src/tables/sales/SalesOrderShipmentTable.tsx:147 +#: src/tables/sales/SalesOrderShipmentTable.tsx:198 msgid "Show shipments which have been shipped" msgstr "" -#: src/tables/sales/SalesOrderShipmentTable.tsx:151 -msgid "Delivered" -msgstr "" - -#: src/tables/sales/SalesOrderShipmentTable.tsx:152 +#: src/tables/sales/SalesOrderShipmentTable.tsx:203 msgid "Show shipments which have been delivered" msgstr "" -#: src/tables/settings/CurrencyTable.tsx:28 -msgid "Rate" +#: src/tables/settings/BarcodeScanHistoryTable.tsx:61 +msgid "Barcode Information" msgstr "" -#: src/tables/settings/CurrencyTable.tsx:40 -msgid "Exchange rates updated" +#: src/tables/settings/BarcodeScanHistoryTable.tsx:76 +#: src/tables/settings/ErrorTable.tsx:59 +msgid "Timestamp" msgstr "" -#: src/tables/settings/CurrencyTable.tsx:46 -msgid "Exchange rate update error" +#: src/tables/settings/BarcodeScanHistoryTable.tsx:86 +msgid "Endpoint" msgstr "" -#: src/tables/settings/CurrencyTable.tsx:57 -msgid "Refresh currency exchange rates" +#: src/tables/settings/BarcodeScanHistoryTable.tsx:90 +#: src/tables/settings/BarcodeScanHistoryTable.tsx:217 +#: src/tables/stock/StockItemTestResultTable.tsx:174 +msgid "Result" msgstr "" +#: src/tables/settings/BarcodeScanHistoryTable.tsx:98 +msgid "Context" +msgstr "" + +#: src/tables/settings/BarcodeScanHistoryTable.tsx:119 +msgid "Response" +msgstr "Respon" + +#: src/tables/settings/BarcodeScanHistoryTable.tsx:213 +#: src/tables/settings/ImportSessionTable.tsx:121 +#: src/tables/stock/StockTrackingTable.tsx:183 +msgid "Filter by user" +msgstr "" + +#: src/tables/settings/BarcodeScanHistoryTable.tsx:218 +msgid "Filter by result" +msgstr "" + +#: src/tables/settings/BarcodeScanHistoryTable.tsx:232 +msgid "Delete Barcode Scan Record" +msgstr "" + +#: src/tables/settings/BarcodeScanHistoryTable.tsx:258 +msgid "Barcode Scan Details" +msgstr "" + +#: src/tables/settings/BarcodeScanHistoryTable.tsx:268 +msgid "Logging Disabled" +msgstr "" + +#: src/tables/settings/BarcodeScanHistoryTable.tsx:270 +msgid "Barcode logging is not enabled" +msgstr "" + +#: src/tables/settings/CustomStateTable.tsx:36 +msgid "Display Name" +msgstr "" + +#: src/tables/settings/CustomStateTable.tsx:52 +msgid "Model" +msgstr "" + +#: src/tables/settings/CustomStateTable.tsx:65 +#: src/tables/settings/CustomStateTable.tsx:115 +msgid "Add State" +msgstr "" + +#: src/tables/settings/CustomStateTable.tsx:77 +msgid "Edit State" +msgstr "" + +#: src/tables/settings/CustomStateTable.tsx:85 +msgid "Delete State" +msgstr "" + +#: src/tables/settings/CustomStateTable.tsx:115 +#~ msgid "Add state" +#~ msgstr "Add state" + #: src/tables/settings/CustomUnitsTable.tsx:50 msgid "Add Custom Unit" msgstr "" @@ -7312,59 +8540,71 @@ msgstr "" msgid "Add custom unit" msgstr "" -#: src/tables/settings/ErrorTable.tsx:31 -msgid "When" -msgstr "" - -#: src/tables/settings/ErrorTable.tsx:41 -msgid "Error Information" -msgstr "" - #: src/tables/settings/ErrorTable.tsx:51 #~ msgid "Delete error report" #~ msgstr "Delete error report" -#: src/tables/settings/ErrorTable.tsx:53 +#: src/tables/settings/ErrorTable.tsx:67 +msgid "Traceback" +msgstr "" + +#: src/tables/settings/ErrorTable.tsx:103 +msgid "When" +msgstr "" + +#: src/tables/settings/ErrorTable.tsx:113 +msgid "Error Information" +msgstr "" + +#: src/tables/settings/ErrorTable.tsx:123 msgid "Delete Error Report" msgstr "" -#: src/tables/settings/ErrorTable.tsx:55 +#: src/tables/settings/ErrorTable.tsx:125 msgid "Are you sure you want to delete this error report?" msgstr "" -#: src/tables/settings/ErrorTable.tsx:57 +#: src/tables/settings/ErrorTable.tsx:127 msgid "Error report deleted" msgstr "" -#: src/tables/settings/ErrorTable.tsx:79 -#: src/tables/settings/FailedTasksTable.tsx:59 +#: src/tables/settings/ErrorTable.tsx:146 +#: src/tables/settings/FailedTasksTable.tsx:65 msgid "Error Details" msgstr "" -#: src/tables/settings/FailedTasksTable.tsx:26 -#: src/tables/settings/PendingTasksTable.tsx:19 +#: src/tables/settings/FailedTasksTable.tsx:32 +#: src/tables/settings/PendingTasksTable.tsx:23 #: src/tables/settings/ScheduledTasksTable.tsx:19 msgid "Task" msgstr "" -#: src/tables/settings/FailedTasksTable.tsx:32 -#: src/tables/settings/PendingTasksTable.tsx:24 +#: src/tables/settings/FailedTasksTable.tsx:38 +#: src/tables/settings/PendingTasksTable.tsx:28 msgid "Task ID" msgstr "" -#: src/tables/settings/FailedTasksTable.tsx:36 -#: src/tables/stock/StockItemTestResultTable.tsx:211 +#: src/tables/settings/FailedTasksTable.tsx:42 +#: src/tables/stock/StockItemTestResultTable.tsx:218 msgid "Started" msgstr "" -#: src/tables/settings/FailedTasksTable.tsx:42 +#: src/tables/settings/FailedTasksTable.tsx:48 msgid "Stopped" msgstr "" -#: src/tables/settings/FailedTasksTable.tsx:48 +#: src/tables/settings/FailedTasksTable.tsx:54 msgid "Attempts" msgstr "" +#: src/tables/settings/FailedTasksTable.tsx:92 +msgid "No Information" +msgstr "" + +#: src/tables/settings/FailedTasksTable.tsx:93 +msgid "No error details are available for this task" +msgstr "" + #: src/tables/settings/GroupTable.tsx:90 msgid "Group with id {id} not found" msgstr "" @@ -7398,42 +8638,34 @@ msgstr "" msgid "Edit group" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:38 +#: src/tables/settings/ImportSessionTable.tsx:37 msgid "Delete Import Session" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:44 +#: src/tables/settings/ImportSessionTable.tsx:43 #: src/tables/settings/ImportSessionTable.tsx:131 msgid "Create Import Session" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:69 +#: src/tables/settings/ImportSessionTable.tsx:68 msgid "Uploaded" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:79 -msgid "Imported Rows" -msgstr "" - -#: src/tables/settings/ImportSessionTable.tsx:109 -#: src/tables/settings/TemplateTable.tsx:289 +#: src/tables/settings/ImportSessionTable.tsx:108 +#: src/tables/settings/TemplateTable.tsx:369 msgid "Model Type" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:110 -#: src/tables/settings/TemplateTable.tsx:290 +#: src/tables/settings/ImportSessionTable.tsx:109 +#: src/tables/settings/TemplateTable.tsx:370 msgid "Filter by target model type" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:116 +#: src/tables/settings/ImportSessionTable.tsx:115 msgid "Filter by import session status" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:122 -msgid "Filter by user" -msgstr "" - -#: src/tables/settings/PendingTasksTable.tsx:38 +#: src/tables/settings/PendingTasksTable.tsx:42 msgid "Arguments" msgstr "" @@ -7461,12 +8693,16 @@ msgstr "" msgid "Next Run" msgstr "" -#: src/tables/settings/TemplateTable.tsx:85 -msgid "Template not found" +#: src/tables/settings/StocktakeReportTable.tsx:28 +msgid "Report" +msgstr "Laporkan" + +#: src/tables/settings/StocktakeReportTable.tsx:35 +msgid "Part Count" msgstr "" -#: src/tables/settings/TemplateTable.tsx:87 -msgid "An error occurred while fetching template details" +#: src/tables/settings/StocktakeReportTable.tsx:58 +msgid "Delete Report" msgstr "" #: src/tables/settings/TemplateTable.tsx:120 @@ -7481,21 +8717,12 @@ msgstr "" #~ msgid "actions" #~ msgstr "actions" -#: src/tables/settings/TemplateTable.tsx:177 -msgid "Modify" +#: src/tables/settings/TemplateTable.tsx:162 +msgid "Template not found" msgstr "" -#: src/tables/settings/TemplateTable.tsx:178 -msgid "Modify template file" -msgstr "" - -#: src/tables/settings/TemplateTable.tsx:234 -#: src/tables/settings/TemplateTable.tsx:302 -msgid "Edit Template" -msgstr "" - -#: src/tables/settings/TemplateTable.tsx:242 -msgid "Delete template" +#: src/tables/settings/TemplateTable.tsx:164 +msgid "An error occurred while fetching template details" msgstr "" #: src/tables/settings/TemplateTable.tsx:243 @@ -7506,103 +8733,137 @@ msgstr "" #~ msgid "Create new" #~ msgstr "Create new" -#: src/tables/settings/TemplateTable.tsx:248 +#: src/tables/settings/TemplateTable.tsx:257 +msgid "Modify" +msgstr "" + +#: src/tables/settings/TemplateTable.tsx:258 +msgid "Modify template file" +msgstr "" + +#: src/tables/settings/TemplateTable.tsx:314 +#: src/tables/settings/TemplateTable.tsx:382 +msgid "Edit Template" +msgstr "" + +#: src/tables/settings/TemplateTable.tsx:322 +msgid "Delete template" +msgstr "" + +#: src/tables/settings/TemplateTable.tsx:328 msgid "Add Template" msgstr "" -#: src/tables/settings/TemplateTable.tsx:261 +#: src/tables/settings/TemplateTable.tsx:341 msgid "Add template" msgstr "" -#: src/tables/settings/TemplateTable.tsx:284 +#: src/tables/settings/TemplateTable.tsx:364 msgid "Filter by enabled status" msgstr "" -#: src/tables/settings/UserTable.tsx:82 +#: src/tables/settings/UserTable.tsx:81 msgid "User with id {id} not found" msgstr "" -#: src/tables/settings/UserTable.tsx:84 +#: src/tables/settings/UserTable.tsx:83 msgid "An error occurred while fetching user details" msgstr "" -#: src/tables/settings/UserTable.tsx:102 +#: src/tables/settings/UserTable.tsx:101 msgid "Is Active" msgstr "" -#: src/tables/settings/UserTable.tsx:103 +#: src/tables/settings/UserTable.tsx:102 msgid "Designates whether this user should be treated as active. Unselect this instead of deleting accounts." msgstr "" -#: src/tables/settings/UserTable.tsx:107 +#: src/tables/settings/UserTable.tsx:106 msgid "Is Staff" msgstr "" -#: src/tables/settings/UserTable.tsx:108 +#: src/tables/settings/UserTable.tsx:107 msgid "Designates whether the user can log into the django admin site." msgstr "" -#: src/tables/settings/UserTable.tsx:112 +#: src/tables/settings/UserTable.tsx:111 msgid "Is Superuser" msgstr "" -#: src/tables/settings/UserTable.tsx:113 +#: src/tables/settings/UserTable.tsx:112 msgid "Designates that this user has all permissions without explicitly assigning them." msgstr "" -#: src/tables/settings/UserTable.tsx:123 +#: src/tables/settings/UserTable.tsx:122 msgid "You cannot edit the rights for the currently logged-in user." msgstr "" -#: src/tables/settings/UserTable.tsx:154 +#: src/tables/settings/UserTable.tsx:153 msgid "No groups" msgstr "" -#: src/tables/settings/UserTable.tsx:245 +#: src/tables/settings/UserTable.tsx:244 msgid "Delete user" msgstr "" -#: src/tables/settings/UserTable.tsx:246 +#: src/tables/settings/UserTable.tsx:245 msgid "User deleted" msgstr "" -#: src/tables/settings/UserTable.tsx:248 +#: src/tables/settings/UserTable.tsx:247 msgid "Are you sure you want to delete this user?" msgstr "" -#: src/tables/settings/UserTable.tsx:254 -#: src/tables/settings/UserTable.tsx:272 +#: src/tables/settings/UserTable.tsx:253 +#: src/tables/settings/UserTable.tsx:271 msgid "Add user" msgstr "" -#: src/tables/settings/UserTable.tsx:262 +#: src/tables/settings/UserTable.tsx:261 msgid "Added user" msgstr "" -#: src/tables/settings/UserTable.tsx:285 +#: src/tables/settings/UserTable.tsx:284 msgid "Show active users" msgstr "" -#: src/tables/settings/UserTable.tsx:289 +#: src/tables/settings/UserTable.tsx:288 msgid "Staff" msgstr "" -#: src/tables/settings/UserTable.tsx:290 +#: src/tables/settings/UserTable.tsx:289 msgid "Show staff users" msgstr "" #: src/tables/settings/UserTable.tsx:294 -msgid "Superuser" -msgstr "" - -#: src/tables/settings/UserTable.tsx:295 msgid "Show superusers" msgstr "" -#: src/tables/settings/UserTable.tsx:305 +#: src/tables/settings/UserTable.tsx:304 msgid "Edit user" msgstr "" +#: src/tables/stock/InstalledItemsTable.tsx:37 +#: src/tables/stock/InstalledItemsTable.tsx:90 +msgid "Install Item" +msgstr "" + +#: src/tables/stock/InstalledItemsTable.tsx:39 +msgid "Item installed" +msgstr "" + +#: src/tables/stock/InstalledItemsTable.tsx:50 +msgid "Uninstall Item" +msgstr "" + +#: src/tables/stock/InstalledItemsTable.tsx:52 +msgid "Item uninstalled" +msgstr "" + +#: src/tables/stock/InstalledItemsTable.tsx:108 +msgid "Uninstall stock item" +msgstr "" + #: src/tables/stock/LocationTypesTable.tsx:39 #: src/tables/stock/LocationTypesTable.tsx:109 msgid "Add Location Type" @@ -7620,276 +8881,272 @@ msgstr "" msgid "Icon" msgstr "" -#: src/tables/stock/StockItemTable.tsx:101 +#: src/tables/stock/StockItemTable.tsx:90 msgid "This stock item is in production" msgstr "" -#: src/tables/stock/StockItemTable.tsx:110 +#: src/tables/stock/StockItemTable.tsx:97 msgid "This stock item has been assigned to a sales order" msgstr "" -#: src/tables/stock/StockItemTable.tsx:119 +#: src/tables/stock/StockItemTable.tsx:104 msgid "This stock item has been assigned to a customer" msgstr "" -#: src/tables/stock/StockItemTable.tsx:128 +#: src/tables/stock/StockItemTable.tsx:111 msgid "This stock item is installed in another stock item" msgstr "" -#: src/tables/stock/StockItemTable.tsx:137 +#: src/tables/stock/StockItemTable.tsx:118 msgid "This stock item has been consumed by a build order" msgstr "" -#: src/tables/stock/StockItemTable.tsx:146 +#: src/tables/stock/StockItemTable.tsx:125 +msgid "This stock item is unavailable" +msgstr "" + +#: src/tables/stock/StockItemTable.tsx:134 msgid "This stock item has expired" msgstr "" -#: src/tables/stock/StockItemTable.tsx:150 +#: src/tables/stock/StockItemTable.tsx:138 msgid "This stock item is stale" msgstr "" -#: src/tables/stock/StockItemTable.tsx:161 +#: src/tables/stock/StockItemTable.tsx:150 msgid "This stock item is fully allocated" msgstr "" -#: src/tables/stock/StockItemTable.tsx:168 +#: src/tables/stock/StockItemTable.tsx:157 msgid "This stock item is partially allocated" msgstr "" -#: src/tables/stock/StockItemTable.tsx:196 +#: src/tables/stock/StockItemTable.tsx:185 msgid "This stock item has been depleted" msgstr "" -#: src/tables/stock/StockItemTable.tsx:232 +#: src/tables/stock/StockItemTable.tsx:280 msgid "Stocktake Date" msgstr "" -#: src/tables/stock/StockItemTable.tsx:236 -msgid "Expiry Date" -msgstr "" - -#: src/tables/stock/StockItemTable.tsx:260 -msgid "Stock Value" -msgstr "" - -#: src/tables/stock/StockItemTable.tsx:290 +#: src/tables/stock/StockItemTable.tsx:294 msgid "Show stock for active parts" msgstr "" -#: src/tables/stock/StockItemTable.tsx:295 +#: src/tables/stock/StockItemTable.tsx:299 msgid "Filter by stock status" msgstr "" #: src/tables/stock/StockItemTable.tsx:301 -msgid "Show stock for assmebled parts" +#~ msgid "Show stock for assmebled parts" +#~ msgstr "Show stock for assmebled parts" + +#: src/tables/stock/StockItemTable.tsx:305 +msgid "Show stock for assembled parts" msgstr "" -#: src/tables/stock/StockItemTable.tsx:306 +#: src/tables/stock/StockItemTable.tsx:310 msgid "Show items which have been allocated" msgstr "" -#: src/tables/stock/StockItemTable.tsx:311 +#: src/tables/stock/StockItemTable.tsx:315 msgid "Show items which are available" msgstr "" -#: src/tables/stock/StockItemTable.tsx:315 +#: src/tables/stock/StockItemTable.tsx:319 #: src/tables/stock/StockLocationTable.tsx:44 msgid "Include Sublocations" msgstr "" -#: src/tables/stock/StockItemTable.tsx:316 +#: src/tables/stock/StockItemTable.tsx:320 msgid "Include stock in sublocations" msgstr "" -#: src/tables/stock/StockItemTable.tsx:320 +#: src/tables/stock/StockItemTable.tsx:324 msgid "Depleted" msgstr "" -#: src/tables/stock/StockItemTable.tsx:321 +#: src/tables/stock/StockItemTable.tsx:325 msgid "Show depleted stock items" msgstr "" -#: src/tables/stock/StockItemTable.tsx:326 +#: src/tables/stock/StockItemTable.tsx:330 msgid "Show items which are in stock" msgstr "" -#: src/tables/stock/StockItemTable.tsx:331 +#: src/tables/stock/StockItemTable.tsx:335 msgid "Show items which are in production" msgstr "" -#: src/tables/stock/StockItemTable.tsx:336 +#: src/tables/stock/StockItemTable.tsx:340 msgid "Include stock items for variant parts" msgstr "" -#: src/tables/stock/StockItemTable.tsx:341 +#: src/tables/stock/StockItemTable.tsx:345 msgid "Show stock items which are installed in other items" msgstr "" -#: src/tables/stock/StockItemTable.tsx:345 +#: src/tables/stock/StockItemTable.tsx:349 msgid "Sent to Customer" msgstr "" -#: src/tables/stock/StockItemTable.tsx:346 +#: src/tables/stock/StockItemTable.tsx:350 msgid "Show items which have been sent to a customer" msgstr "" -#: src/tables/stock/StockItemTable.tsx:350 +#: src/tables/stock/StockItemTable.tsx:354 msgid "Is Serialized" msgstr "" -#: src/tables/stock/StockItemTable.tsx:351 +#: src/tables/stock/StockItemTable.tsx:355 msgid "Show items which have a serial number" msgstr "" -#: src/tables/stock/StockItemTable.tsx:358 +#: src/tables/stock/StockItemTable.tsx:362 msgid "Has Batch Code" msgstr "" -#: src/tables/stock/StockItemTable.tsx:359 +#: src/tables/stock/StockItemTable.tsx:363 msgid "Show items which have a batch code" msgstr "" -#: src/tables/stock/StockItemTable.tsx:365 +#: src/tables/stock/StockItemTable.tsx:369 msgid "Show tracked items" msgstr "" -#: src/tables/stock/StockItemTable.tsx:369 +#: src/tables/stock/StockItemTable.tsx:373 msgid "Has Purchase Price" msgstr "" -#: src/tables/stock/StockItemTable.tsx:370 +#: src/tables/stock/StockItemTable.tsx:374 msgid "Show items which have a purchase price" msgstr "" -#: src/tables/stock/StockItemTable.tsx:378 +#: src/tables/stock/StockItemTable.tsx:382 msgid "External Location" msgstr "" -#: src/tables/stock/StockItemTable.tsx:379 +#: src/tables/stock/StockItemTable.tsx:383 msgid "Show items in an external location" msgstr "" -#: src/tables/stock/StockItemTable.tsx:451 +#: src/tables/stock/StockItemTable.tsx:456 msgid "Add a new stock item" msgstr "" -#: src/tables/stock/StockItemTable.tsx:460 +#: src/tables/stock/StockItemTable.tsx:465 msgid "Remove some quantity from a stock item" msgstr "" -#: src/tables/stock/StockItemTable.tsx:482 +#: src/tables/stock/StockItemTable.tsx:487 msgid "Move Stock items to new locations" msgstr "" -#: src/tables/stock/StockItemTable.tsx:489 +#: src/tables/stock/StockItemTable.tsx:494 msgid "Change stock status" msgstr "" -#: src/tables/stock/StockItemTable.tsx:491 +#: src/tables/stock/StockItemTable.tsx:496 msgid "Change the status of stock items" msgstr "" -#: src/tables/stock/StockItemTable.tsx:498 +#: src/tables/stock/StockItemTable.tsx:503 msgid "Merge stock" msgstr "" -#: src/tables/stock/StockItemTable.tsx:500 +#: src/tables/stock/StockItemTable.tsx:505 msgid "Merge stock items" msgstr "" -#: src/tables/stock/StockItemTable.tsx:509 -#: src/tables/stock/StockItemTable.tsx:516 +#: src/tables/stock/StockItemTable.tsx:514 +#: src/tables/stock/StockItemTable.tsx:521 msgid "Order new stock" msgstr "" -#: src/tables/stock/StockItemTable.tsx:514 +#: src/tables/stock/StockItemTable.tsx:519 msgid "Assign to customer" msgstr "" -#: src/tables/stock/StockItemTable.tsx:523 +#: src/tables/stock/StockItemTable.tsx:528 msgid "Delete stock" msgstr "" -#: src/tables/stock/StockItemTable.tsx:525 -msgid "Delete stock items" -msgstr "" +#: src/tables/stock/StockItemTable.tsx:528 +#~ msgid "Delete stock items" +#~ msgstr "Delete stock items" -#: src/tables/stock/StockItemTestResultTable.tsx:131 +#: src/tables/stock/StockItemTestResultTable.tsx:137 msgid "Test" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:157 +#: src/tables/stock/StockItemTestResultTable.tsx:163 msgid "Test result for installed stock item" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:168 -msgid "Result" -msgstr "" - -#: src/tables/stock/StockItemTestResultTable.tsx:190 +#: src/tables/stock/StockItemTestResultTable.tsx:196 msgid "Attachment" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:206 +#: src/tables/stock/StockItemTestResultTable.tsx:212 msgid "Test station" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:226 +#: src/tables/stock/StockItemTestResultTable.tsx:234 msgid "Finished" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:268 -#: src/tables/stock/StockItemTestResultTable.tsx:339 +#: src/tables/stock/StockItemTestResultTable.tsx:286 +#: src/tables/stock/StockItemTestResultTable.tsx:357 msgid "Edit Test Result" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:270 +#: src/tables/stock/StockItemTestResultTable.tsx:288 msgid "Test result updated" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:276 -#: src/tables/stock/StockItemTestResultTable.tsx:348 +#: src/tables/stock/StockItemTestResultTable.tsx:294 +#: src/tables/stock/StockItemTestResultTable.tsx:366 msgid "Delete Test Result" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:278 +#: src/tables/stock/StockItemTestResultTable.tsx:296 msgid "Test result deleted" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:292 +#: src/tables/stock/StockItemTestResultTable.tsx:310 msgid "Test Passed" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:293 +#: src/tables/stock/StockItemTestResultTable.tsx:311 msgid "Test result has been recorded" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:300 +#: src/tables/stock/StockItemTestResultTable.tsx:318 msgid "Failed to record test result" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:317 +#: src/tables/stock/StockItemTestResultTable.tsx:335 msgid "Pass Test" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:366 +#: src/tables/stock/StockItemTestResultTable.tsx:384 msgid "Show results for required tests" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:370 +#: src/tables/stock/StockItemTestResultTable.tsx:388 msgid "Include Installed" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:371 +#: src/tables/stock/StockItemTestResultTable.tsx:389 msgid "Show results for installed stock items" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:375 -#: src/tables/stock/TestStatisticsTable.tsx:74 +#: src/tables/stock/StockItemTestResultTable.tsx:393 +#: src/tables/stock/TestStatisticsTable.tsx:62 msgid "Passed" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:376 +#: src/tables/stock/StockItemTestResultTable.tsx:394 msgid "Show only passed tests" msgstr "" @@ -7922,28 +9179,32 @@ msgid "Filter by location type" msgstr "" #: src/tables/stock/StockLocationTable.tsx:107 -#: src/tables/stock/StockLocationTable.tsx:133 +#: src/tables/stock/StockLocationTable.tsx:134 msgid "Add Stock Location" msgstr "" -#: src/tables/stock/StockTrackingTable.tsx:64 +#: src/tables/stock/StockTrackingTable.tsx:68 msgid "Added" msgstr "" -#: src/tables/stock/StockTrackingTable.tsx:69 +#: src/tables/stock/StockTrackingTable.tsx:73 msgid "Removed" msgstr "" #: src/tables/stock/StockTrackingTable.tsx:198 +msgid "Details" +msgstr "Rincian" + +#: src/tables/stock/StockTrackingTable.tsx:213 msgid "No user information" msgstr "" -#: src/tables/stock/TestStatisticsTable.tsx:46 -#: src/tables/stock/TestStatisticsTable.tsx:76 +#: src/tables/stock/TestStatisticsTable.tsx:34 +#: src/tables/stock/TestStatisticsTable.tsx:64 msgid "Total" msgstr "" -#: src/tables/stock/TestStatisticsTable.tsx:75 +#: src/tables/stock/TestStatisticsTable.tsx:63 msgid "Failed" msgstr "" diff --git a/src/frontend/src/locales/it/messages.po b/src/frontend/src/locales/it/messages.po index 2c48cf92ad..598c209278 100644 --- a/src/frontend/src/locales/it/messages.po +++ b/src/frontend/src/locales/it/messages.po @@ -8,15 +8,15 @@ msgstr "" "Language: it\n" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"PO-Revision-Date: 2024-08-20 19:50\n" +"PO-Revision-Date: 2024-11-04 03:14\n" "Last-Translator: \n" "Language-Team: Italian\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Crowdin-Project: inventree\n" "X-Crowdin-Project-ID: 452300\n" "X-Crowdin-Language: it\n" -"X-Crowdin-File: /[inventree.InvenTree] l10/src/frontend/src/locales/en/messages.po\n" -"X-Crowdin-File-ID: 205\n" +"X-Crowdin-File: /src/frontend/src/locales/en/messages.po\n" +"X-Crowdin-File-ID: 252\n" #: src/components/Boundary.tsx:12 msgid "Error rendering component" @@ -27,8 +27,8 @@ msgid "An error occurred while rendering this component. Refer to the console fo msgstr "Si è verificato un errore durante il rendering di questo componente. Fare riferimento alla console per maggiori informazioni." #: src/components/DashboardItemProxy.tsx:34 -msgid "Title" -msgstr "Titolo" +#~ msgid "Title" +#~ msgstr "Title" #: src/components/buttons/AdminButton.tsx:80 msgid "Open in admin interface" @@ -38,82 +38,99 @@ msgstr "Apri nell'interfaccia di amministrazione" #~ msgid "Copy to clipboard" #~ msgstr "Copy to clipboard" -#: src/components/buttons/CopyButton.tsx:24 +#: src/components/buttons/CopyButton.tsx:29 msgid "Copied" msgstr "Copiato" -#: src/components/buttons/CopyButton.tsx:24 +#: src/components/buttons/CopyButton.tsx:29 msgid "Copy" msgstr "Copia" -#: src/components/buttons/PrintingActions.tsx:93 +#: src/components/buttons/PrintingActions.tsx:97 msgid "Print Label" msgstr "Stampa Etichetta" -#: src/components/buttons/PrintingActions.tsx:99 +#: src/components/buttons/PrintingActions.tsx:103 msgid "Print" msgstr "Stampa" -#: src/components/buttons/PrintingActions.tsx:100 +#: src/components/buttons/PrintingActions.tsx:104 msgid "Label printing completed successfully" msgstr "Stampa dell'etichetta completata con successo" -#: src/components/buttons/PrintingActions.tsx:106 -#: src/components/buttons/PrintingActions.tsx:144 -#: src/components/editors/NotesEditor.tsx:65 -#: src/components/editors/NotesEditor.tsx:165 -#: src/components/forms/fields/ApiFormField.tsx:319 +#: src/components/buttons/PrintingActions.tsx:110 +#: src/components/buttons/PrintingActions.tsx:148 +#: src/components/editors/NotesEditor.tsx:73 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:154 +#: src/components/forms/fields/ApiFormField.tsx:328 +#: src/components/forms/fields/TableField.tsx:43 #: src/components/importer/ImportDataSelector.tsx:187 -#: src/components/importer/ImporterColumnSelector.tsx:207 +#: src/components/importer/ImporterColumnSelector.tsx:210 #: src/components/modals/LicenseModal.tsx:75 -#: src/components/nav/SearchDrawer.tsx:448 +#: src/components/nav/SearchDrawer.tsx:458 +#: src/components/render/ModelType.tsx:290 #: src/pages/ErrorPage.tsx:11 -#: src/pages/part/PartPricingPanel.tsx:67 -#: src/tables/InvenTreeTable.tsx:495 +#: src/pages/part/PartPricingPanel.tsx:71 +#: src/tables/InvenTreeTable.tsx:481 #: src/tables/bom/BomTable.tsx:450 -#: src/tables/stock/StockItemTestResultTable.tsx:299 +#: src/tables/stock/StockItemTestResultTable.tsx:317 msgid "Error" msgstr "Errore" -#: src/components/buttons/PrintingActions.tsx:107 +#: src/components/buttons/PrintingActions.tsx:111 msgid "The label could not be generated" msgstr "Impossibile generare l'etichetta" -#: src/components/buttons/PrintingActions.tsx:122 +#: src/components/buttons/PrintingActions.tsx:126 msgid "Print Report" msgstr "Stampa report" -#: src/components/buttons/PrintingActions.tsx:138 +#: src/components/buttons/PrintingActions.tsx:142 msgid "Generate" msgstr "Genera" -#: src/components/buttons/PrintingActions.tsx:139 +#: src/components/buttons/PrintingActions.tsx:143 msgid "Report printing completed successfully" msgstr "Stampa del report completata con successo" -#: src/components/buttons/PrintingActions.tsx:145 +#: src/components/buttons/PrintingActions.tsx:149 msgid "The report could not be generated" msgstr "Non è stato possibile generare il report" -#: src/components/buttons/PrintingActions.tsx:173 +#: src/components/buttons/PrintingActions.tsx:177 msgid "Printing Actions" msgstr "Azioni di stampa" -#: src/components/buttons/PrintingActions.tsx:178 +#: src/components/buttons/PrintingActions.tsx:182 msgid "Print Labels" msgstr "Stampa Etichette" -#: src/components/buttons/PrintingActions.tsx:184 +#: src/components/buttons/PrintingActions.tsx:188 msgid "Print Reports" msgstr "Stampa report" +#: src/components/buttons/RemoveRowButton.tsx:8 +msgid "Remove this row" +msgstr "" + #: src/components/buttons/ScanButton.tsx:15 -msgid "Scan QR code" -msgstr "Scansiona il codice QR" +#: src/components/nav/NavigationDrawer.tsx:117 +#: src/forms/PurchaseOrderForms.tsx:379 +#: src/forms/PurchaseOrderForms.tsx:473 +msgid "Scan Barcode" +msgstr "" + +#: src/components/buttons/ScanButton.tsx:15 +#~ msgid "Scan QR code" +#~ msgstr "Scan QR code" #: src/components/buttons/ScanButton.tsx:20 -msgid "Open QR code scanner" -msgstr "Apri scanner di codice QR" +msgid "Open Barcode Scanner" +msgstr "" + +#: src/components/buttons/ScanButton.tsx:20 +#~ msgid "Open QR code scanner" +#~ msgstr "Open QR code scanner" #: src/components/buttons/SpotlightButton.tsx:14 msgid "Open spotlight" @@ -121,92 +138,354 @@ msgstr "Accendi torcia" #: src/components/buttons/YesNoButton.tsx:16 msgid "Pass" -msgstr "" +msgstr "Salta / Ignora" #: src/components/buttons/YesNoButton.tsx:17 msgid "Fail" msgstr "Errore" #: src/components/buttons/YesNoButton.tsx:33 -#: src/tables/Filter.tsx:52 +#: src/tables/Filter.tsx:61 msgid "Yes" msgstr "Si" #: src/components/buttons/YesNoButton.tsx:33 -#: src/tables/Filter.tsx:53 +#: src/tables/Filter.tsx:62 msgid "No" msgstr "No" -#: src/components/details/Details.tsx:301 +#: src/components/dashboard/DashboardLayout.tsx:286 +msgid "No Widgets Selected" +msgstr "" + +#: src/components/dashboard/DashboardLayout.tsx:289 +msgid "Use the menu to add widgets to the dashboard" +msgstr "" + +#: src/components/dashboard/DashboardMenu.tsx:59 +#: src/components/dashboard/DashboardMenu.tsx:126 +msgid "Accept Layout" +msgstr "" + +#: src/components/dashboard/DashboardMenu.tsx:91 +#: src/components/nav/NavigationDrawer.tsx:71 +#: src/defaults/actions.tsx:17 +#: src/defaults/links.tsx:9 +#: src/pages/Index/Settings/UserSettings.tsx:47 +msgid "Dashboard" +msgstr "Bacheca" + +#: src/components/dashboard/DashboardMenu.tsx:99 +msgid "Edit Layout" +msgstr "" + +#: src/components/dashboard/DashboardMenu.tsx:108 +msgid "Add Widget" +msgstr "" + +#: src/components/dashboard/DashboardMenu.tsx:117 +msgid "Remove Widgets" +msgstr "" + +#: src/components/dashboard/DashboardWidget.tsx:65 +msgid "Remove this widget from the dashboard" +msgstr "" + +#: src/components/dashboard/DashboardWidgetDrawer.tsx:77 +msgid "Filter dashboard widgets" +msgstr "" + +#: src/components/dashboard/DashboardWidgetDrawer.tsx:98 +msgid "Add this widget to the dashboard" +msgstr "" + +#: src/components/dashboard/DashboardWidgetDrawer.tsx:123 +msgid "No Widgets Available" +msgstr "" + +#: src/components/dashboard/DashboardWidgetDrawer.tsx:124 +msgid "There are no more widgets available for the dashboard" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:19 +msgid "Subscribed Parts" +msgstr "Articoli Sottoscritti" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:20 +msgid "Show the number of parts which you have subscribed to" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:26 +msgid "Subscribed Categories" +msgstr "Categoria sottoscritta" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:27 +msgid "Show the number of part categories which you have subscribed to" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:35 +#: src/pages/part/PartSchedulingDetail.tsx:304 +#: src/tables/part/PartTable.tsx:238 +msgid "Low Stock" +msgstr "Disponibilità scarsa" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:37 +msgid "Show the number of parts which are low on stock" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:43 +msgid "Expired Stock Items" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:45 +msgid "Show the number of stock items which have expired" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:51 +msgid "Stale Stock Items" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:53 +msgid "Show the number of stock items which are stale" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:59 +msgid "Active Build Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:61 +msgid "Show the number of build orders which are currently active" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:66 +msgid "Overdue Build Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:68 +msgid "Show the number of build orders which are overdue" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:73 +msgid "Assigned Build Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:75 +msgid "Show the number of build orders which are assigned to you" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:80 +msgid "Active Sales Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:82 +msgid "Show the number of sales orders which are currently active" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:87 +msgid "Overdue Sales Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:89 +msgid "Show the number of sales orders which are overdue" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:94 +msgid "Assigned Sales Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:96 +msgid "Show the number of sales orders which are assigned to you" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:101 +msgid "Active Purchase Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:103 +msgid "Show the number of purchase orders which are currently active" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:108 +msgid "Overdue Purchase Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:110 +msgid "Show the number of purchase orders which are overdue" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:115 +msgid "Assigned Purchase Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:117 +msgid "Show the number of purchase orders which are assigned to you" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:122 +msgid "Active Return Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:124 +msgid "Show the number of return orders which are currently active" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:129 +msgid "Overdue Return Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:131 +msgid "Show the number of return orders which are overdue" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:136 +msgid "Assigned Return Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:138 +msgid "Show the number of return orders which are assigned to you" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:149 +#: src/components/dashboard/widgets/GetStartedWidget.tsx:15 +#: src/defaults/links.tsx:38 +msgid "Getting Started" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:150 +#: src/defaults/links.tsx:41 +msgid "Getting started with InvenTree" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:157 +#: src/components/dashboard/widgets/NewsWidget.tsx:123 +msgid "News Updates" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:158 +msgid "The latest news from InvenTree" +msgstr "" + +#: src/components/dashboard/widgets/ColorToggleWidget.tsx:18 +#: src/components/nav/MainMenu.tsx:77 +msgid "Change Color Mode" +msgstr "" + +#: src/components/dashboard/widgets/ColorToggleWidget.tsx:23 +msgid "Change the color mode of the user interface" +msgstr "" + +#: src/components/dashboard/widgets/LanguageSelectWidget.tsx:18 +msgid "Change Language" +msgstr "" + +#: src/components/dashboard/widgets/LanguageSelectWidget.tsx:23 +msgid "Change the language of the user interface" +msgstr "" + +#: src/components/dashboard/widgets/NewsWidget.tsx:61 +#: src/components/nav/NotificationDrawer.tsx:88 +#: src/pages/Notifications.tsx:73 +msgid "Mark as read" +msgstr "" + +#: src/components/dashboard/widgets/NewsWidget.tsx:115 +msgid "Requires Superuser" +msgstr "" + +#: src/components/dashboard/widgets/NewsWidget.tsx:116 +msgid "This widget requires superuser permissions" +msgstr "" + +#: src/components/dashboard/widgets/NewsWidget.tsx:133 +msgid "No News" +msgstr "" + +#: src/components/dashboard/widgets/NewsWidget.tsx:134 +msgid "There are no unread news items" +msgstr "" + +#: src/components/details/Details.tsx:300 msgid "No name defined" msgstr "Nessun nome definito" -#: src/components/details/DetailsImage.tsx:65 +#: src/components/details/DetailsImage.tsx:69 msgid "Remove Image" msgstr "Rimuovi l'immagine" -#: src/components/details/DetailsImage.tsx:68 +#: src/components/details/DetailsImage.tsx:72 msgid "Remove the associated image from this item?" msgstr "Rimuovi l'immagine associata all'articolo?" -#: src/components/details/DetailsImage.tsx:71 -#: src/forms/StockForms.tsx:533 +#: src/components/details/DetailsImage.tsx:75 +#: src/forms/StockForms.tsx:651 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:199 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:306 -#: src/pages/stock/StockDetail.tsx:526 +#: src/pages/stock/StockDetail.tsx:690 msgid "Remove" msgstr "Rimuovi" -#: src/components/details/DetailsImage.tsx:71 -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:158 -#: src/components/items/ActionDropdown.tsx:215 -#: src/components/items/ActionDropdown.tsx:216 -#: src/contexts/ThemeContext.tsx:43 +#: src/components/details/DetailsImage.tsx:75 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:184 +#: src/components/items/ActionDropdown.tsx:268 +#: src/components/items/ActionDropdown.tsx:269 +#: src/contexts/ThemeContext.tsx:45 #: src/hooks/UseForm.tsx:40 -#: src/tables/FilterSelectDrawer.tsx:205 -#: src/tables/build/BuildOutputTable.tsx:286 +#: src/tables/FilterSelectDrawer.tsx:241 +#: src/tables/RowActions.tsx:59 +#: src/tables/build/BuildOutputTable.tsx:434 msgid "Cancel" msgstr "Annulla" -#: src/components/details/DetailsImage.tsx:97 +#: src/components/details/DetailsImage.tsx:101 msgid "Drag and drop to upload" msgstr "Trascina e rilascia per caricare" -#: src/components/details/DetailsImage.tsx:100 +#: src/components/details/DetailsImage.tsx:104 msgid "Click to select file(s)" msgstr "Fare clic per selezionare i file(s)" -#: src/components/details/DetailsImage.tsx:226 +#: src/components/details/DetailsImage.tsx:230 msgid "Clear" msgstr "Elimina" -#: src/components/details/DetailsImage.tsx:232 -#: src/components/forms/ApiForm.tsx:627 -#: src/contexts/ThemeContext.tsx:43 -#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:60 +#: src/components/details/DetailsImage.tsx:236 +#: src/components/forms/ApiForm.tsx:660 +#: src/contexts/ThemeContext.tsx:45 msgid "Submit" msgstr "Invia" -#: src/components/details/DetailsImage.tsx:272 +#: src/components/details/DetailsImage.tsx:280 msgid "Select from existing images" msgstr "Seleziona da immagini esistenti" -#: src/components/details/DetailsImage.tsx:280 +#: src/components/details/DetailsImage.tsx:288 msgid "Select Image" msgstr "Seleziona un'immagine" -#: src/components/details/DetailsImage.tsx:292 +#: src/components/details/DetailsImage.tsx:304 +msgid "Download remote image" +msgstr "" + +#: src/components/details/DetailsImage.tsx:319 msgid "Upload new image" msgstr "Carica nuova immagine" -#: src/components/details/DetailsImage.tsx:299 +#: src/components/details/DetailsImage.tsx:326 msgid "Upload Image" msgstr "Carica immagine" -#: src/components/details/DetailsImage.tsx:312 +#: src/components/details/DetailsImage.tsx:339 msgid "Delete image" msgstr "Elimina immagine" +#: src/components/details/DetailsImage.tsx:373 +msgid "Download Image" +msgstr "" + +#: src/components/details/DetailsImage.tsx:378 +msgid "Image downloaded successfully" +msgstr "" + #: src/components/details/PartIcons.tsx:43 #~ msgid "Part is a template part (variants can be made from this part)" #~ msgstr "Part is a template part (variants can be made from this part)" @@ -235,36 +514,57 @@ msgstr "Elimina immagine" #~ msgid "Part is virtual (not a physical part)" #~ msgstr "Part is virtual (not a physical part)" -#: src/components/editors/NotesEditor.tsx:66 +#: src/components/editors/NotesEditor.tsx:74 msgid "Image upload failed" msgstr "Il caricamento della foto è fallito" -#: src/components/editors/NotesEditor.tsx:156 -#: src/components/forms/ApiForm.tsx:467 +#: src/components/editors/NotesEditor.tsx:83 +#: src/components/editors/NotesEditor.tsx:119 +#: src/components/forms/ApiForm.tsx:475 #: src/tables/bom/BomTable.tsx:441 msgid "Success" msgstr "Operazione completata" -#: src/components/editors/NotesEditor.tsx:157 +#: src/components/editors/NotesEditor.tsx:84 +msgid "Image uploaded successfully" +msgstr "" + +#: src/components/editors/NotesEditor.tsx:120 msgid "Notes saved successfully" msgstr "Note salvate con successo" -#: src/components/editors/NotesEditor.tsx:166 +#: src/components/editors/NotesEditor.tsx:131 msgid "Failed to save notes" msgstr "Salvataggio delle note non riuscito" -#: src/components/editors/NotesEditor.tsx:198 -msgid "Preview Notes" -msgstr "Anteprima Note" - -#: src/components/editors/NotesEditor.tsx:198 -msgid "Edit Notes" +#: src/components/editors/NotesEditor.tsx:134 +msgid "Error Saving Notes" msgstr "" -#: src/components/editors/NotesEditor.tsx:212 +#: src/components/editors/NotesEditor.tsx:151 +#~ msgid "Disable Editing" +#~ msgstr "Disable Editing" + +#: src/components/editors/NotesEditor.tsx:154 msgid "Save Notes" +msgstr "Salva note" + +#: src/components/editors/NotesEditor.tsx:173 +msgid "Close Editor" msgstr "" +#: src/components/editors/NotesEditor.tsx:180 +msgid "Enable Editing" +msgstr "" + +#: src/components/editors/NotesEditor.tsx:198 +#~ msgid "Preview Notes" +#~ msgstr "Preview Notes" + +#: src/components/editors/NotesEditor.tsx:198 +#~ msgid "Edit Notes" +#~ msgstr "Edit Notes" + #: src/components/editors/TemplateEditor/CodeEditor/index.tsx:9 msgid "Code" msgstr "Codice" @@ -281,146 +581,151 @@ msgstr "Anteprima non disponibile, clicca su \"Ricarica anteprima\"." msgid "PDF Preview" msgstr "Anteprima PDF" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:104 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:115 msgid "Error loading template" msgstr "Errore durante il caricamento del modello" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:116 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:127 msgid "Error saving template" -msgstr "" - -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:146 -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:274 -msgid "Save & Reload Preview" -msgstr "" - -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:151 -msgid "Are you sure you want to Save & Reload the preview?" -msgstr "" +msgstr "Errore durante il salvataggio del modello" #: src/components/editors/TemplateEditor/TemplateEditor.tsx:151 #~ msgid "Save & Reload preview?" #~ msgstr "Save & Reload preview?" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:153 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:155 +msgid "Could not load the template from the server." +msgstr "" + +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:172 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:303 +msgid "Save & Reload Preview" +msgstr "Salva & ricarica l'anteprima" + +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:177 +msgid "Are you sure you want to Save & Reload the preview?" +msgstr "Sei sicuro di voler salvare e ricaricare l'anteprima?" + +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:179 msgid "To render the preview the current template needs to be replaced on the server with your modifications which may break the label if it is under active use. Do you want to proceed?" -msgstr "" +msgstr "Per visualizzare l'anteprima, il modello attuale deve essere sostituito sul server con le modifiche apportate, il che potrebbe interrompere l'etichetta se è in uso attivo. Volete procedere?" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:157 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:183 msgid "Save & Reload" -msgstr "" +msgstr "Salva & ricarica" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:189 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:215 msgid "Preview updated" -msgstr "" +msgstr "Anteprima aggiornata" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:190 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:216 msgid "The preview has been updated successfully." -msgstr "" +msgstr "L' anteprima è stata aggiornata con successo." #: src/components/editors/TemplateEditor/TemplateEditor.tsx:263 #~ msgid "Save & Reload preview" #~ msgstr "Save & Reload preview" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:266 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:295 msgid "Reload preview" -msgstr "" +msgstr "Ricarica anteprima" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:267 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:296 msgid "Use the currently stored template from the server" -msgstr "" +msgstr "Utilizzare il modello attualmente memorizzato dal server" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:275 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:304 msgid "Save the current template and reload the preview" -msgstr "" +msgstr "Salva il modello corrente e ricarica l'anteprima" #: src/components/editors/TemplateEditor/TemplateEditor.tsx:322 #~ msgid "to preview" #~ msgstr "to preview" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:333 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:365 msgid "Select instance to preview" -msgstr "" +msgstr "Selezionare l'istanza da visualizzare in anteprima" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:377 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:409 msgid "Error rendering template" -msgstr "" +msgstr "Errore nel visualizzare il modello" #: src/components/errors/ClientError.tsx:23 msgid "Client Error" -msgstr "" +msgstr "Errore Client" #: src/components/errors/ClientError.tsx:24 msgid "Client error occurred" -msgstr "" +msgstr "Si è verificato un errore del client" #: src/components/errors/GenericErrorPage.tsx:50 msgid "Status Code" -msgstr "" +msgstr "Codici di stato" #: src/components/errors/GenericErrorPage.tsx:63 msgid "Return to the index page" -msgstr "" +msgstr "Ritorno alla pagina dell'indice" #: src/components/errors/NotAuthenticated.tsx:8 msgid "Not Authenticated" -msgstr "" +msgstr "Non autenticato" #: src/components/errors/NotAuthenticated.tsx:9 msgid "You are not logged in." -msgstr "" +msgstr "Non hai effettuato l'accesso." #: src/components/errors/NotFound.tsx:8 msgid "Page Not Found" -msgstr "" +msgstr "Pagina Non Trovata" #: src/components/errors/NotFound.tsx:9 msgid "This page does not exist" -msgstr "" +msgstr "Questa pagina non esiste" #: src/components/errors/PermissionDenied.tsx:8 +#: src/functions/notifications.tsx:24 msgid "Permission Denied" -msgstr "" +msgstr "Permesso negato" #: src/components/errors/PermissionDenied.tsx:9 msgid "You do not have permission to view this page." -msgstr "" +msgstr "Non ha i permessi per visualizzare questa pagina." #: src/components/errors/ServerError.tsx:8 msgid "Server Error" -msgstr "" +msgstr "Errore del server" #: src/components/errors/ServerError.tsx:9 msgid "A server error occurred" -msgstr "" +msgstr "Si è verificato un errore del server" -#: src/components/forms/ApiForm.tsx:151 -#: src/components/forms/ApiForm.tsx:555 +#: src/components/forms/ApiForm.tsx:154 +#: src/components/forms/ApiForm.tsx:579 msgid "Form Error" -msgstr "" +msgstr "Errore Modulo" #: src/components/forms/ApiForm.tsx:487 #~ msgid "Form Errors Exist" #~ msgstr "Form Errors Exist" -#: src/components/forms/ApiForm.tsx:563 +#: src/components/forms/ApiForm.tsx:587 msgid "Errors exist for one or more form fields" -msgstr "" +msgstr "Esistono errori per uno o più campi del modulo" -#: src/components/forms/ApiForm.tsx:665 -#: src/tables/plugin/PluginListTable.tsx:388 +#: src/components/forms/ApiForm.tsx:698 +#: src/tables/plugin/PluginListTable.tsx:195 msgid "Update" -msgstr "" +msgstr "Aggiorna" -#: src/components/forms/ApiForm.tsx:685 -#: src/components/items/ActionDropdown.tsx:195 +#: src/components/forms/ApiForm.tsx:718 +#: src/components/items/ActionDropdown.tsx:248 #: src/hooks/UseForm.tsx:122 -#: src/pages/Index/Scan.tsx:343 +#: src/pages/Index/Scan.tsx:357 #: src/pages/Notifications.tsx:123 -#: src/tables/RowActions.tsx:43 -#: src/tables/plugin/PluginListTable.tsx:420 +#: src/tables/RowActions.tsx:49 +#: src/tables/plugin/PluginListTable.tsx:232 msgid "Delete" -msgstr "" +msgstr "Elimina" #: src/components/forms/AuthenticationForm.tsx:48 #: src/components/forms/AuthenticationForm.tsx:74 @@ -428,14 +733,6 @@ msgstr "" #~ msgid "Check your your input and try again." #~ msgstr "Check your your input and try again." -#: src/components/forms/AuthenticationForm.tsx:51 -msgid "Login successful" -msgstr "" - -#: src/components/forms/AuthenticationForm.tsx:52 -msgid "Logged in successfully" -msgstr "" - #: src/components/forms/AuthenticationForm.tsx:52 #~ msgid "Welcome back!" #~ msgstr "Welcome back!" @@ -444,253 +741,264 @@ msgstr "" #~ msgid "Login successfull" #~ msgstr "Login successfull" -#: src/components/forms/AuthenticationForm.tsx:58 -msgid "Login failed" -msgstr "" +#: src/components/forms/AuthenticationForm.tsx:55 +msgid "Login successful" +msgstr "Accesso riuscito" -#: src/components/forms/AuthenticationForm.tsx:59 -#: src/components/forms/AuthenticationForm.tsx:76 -#: src/components/forms/AuthenticationForm.tsx:211 -#: src/functions/auth.tsx:164 +#: src/components/forms/AuthenticationForm.tsx:56 +msgid "Logged in successfully" +msgstr "Accesso effettuato con successo" + +#: src/components/forms/AuthenticationForm.tsx:61 +msgid "Login failed" +msgstr "Accesso non riuscito" + +#: src/components/forms/AuthenticationForm.tsx:62 +#: src/components/forms/AuthenticationForm.tsx:79 +#: src/components/forms/AuthenticationForm.tsx:214 +#: src/functions/auth.tsx:175 msgid "Check your input and try again." -msgstr "" +msgstr "Controllare i dati inseriti e riprovare." #: src/components/forms/AuthenticationForm.tsx:65 #: src/functions/auth.tsx:74 #~ msgid "Mail delivery successfull" #~ msgstr "Mail delivery successfull" -#: src/components/forms/AuthenticationForm.tsx:70 -#: src/functions/auth.tsx:155 +#: src/components/forms/AuthenticationForm.tsx:73 +#: src/functions/auth.tsx:166 msgid "Mail delivery successful" -msgstr "" +msgstr "Spedizione email riuscita" -#: src/components/forms/AuthenticationForm.tsx:71 +#: src/components/forms/AuthenticationForm.tsx:74 msgid "Check your inbox for the login link. If you have an account, you will receive a login link. Check in spam too." -msgstr "" +msgstr "Controlla la tua casella di posta per il link di accesso. Se hai un account, riceverai un link di accesso. Controlla anche lo spam." -#: src/components/forms/AuthenticationForm.tsx:75 +#: src/components/forms/AuthenticationForm.tsx:78 msgid "Mail delivery failed" -msgstr "" +msgstr "Invio della posta non riuscito" -#: src/components/forms/AuthenticationForm.tsx:95 +#: src/components/forms/AuthenticationForm.tsx:98 msgid "Or continue with other methods" -msgstr "" +msgstr "Oppure proseguire con altri metodi" -#: src/components/forms/AuthenticationForm.tsx:106 -#: src/components/forms/AuthenticationForm.tsx:227 +#: src/components/forms/AuthenticationForm.tsx:109 +#: src/components/forms/AuthenticationForm.tsx:230 +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:67 msgid "Username" -msgstr "" +msgstr "Nome utente" -#: src/components/forms/AuthenticationForm.tsx:107 -#: src/components/forms/AuthenticationForm.tsx:228 +#: src/components/forms/AuthenticationForm.tsx:110 +#: src/components/forms/AuthenticationForm.tsx:231 msgid "Your username" -msgstr "" +msgstr "Il tuo nome utente" -#: src/components/forms/AuthenticationForm.tsx:112 -#: src/components/forms/AuthenticationForm.tsx:240 -#: src/pages/Auth/Set-Password.tsx:106 +#: src/components/forms/AuthenticationForm.tsx:115 +#: src/components/forms/AuthenticationForm.tsx:243 +#: src/pages/Auth/Set-Password.tsx:101 msgid "Password" -msgstr "" +msgstr "Password" -#: src/components/forms/AuthenticationForm.tsx:113 -#: src/components/forms/AuthenticationForm.tsx:241 +#: src/components/forms/AuthenticationForm.tsx:116 +#: src/components/forms/AuthenticationForm.tsx:244 msgid "Your password" -msgstr "" +msgstr "La tua password" -#: src/components/forms/AuthenticationForm.tsx:125 +#: src/components/forms/AuthenticationForm.tsx:128 #: src/pages/Auth/Reset.tsx:26 msgid "Reset password" -msgstr "" +msgstr "Reimposta password" #: src/components/forms/AuthenticationForm.tsx:131 #~ msgid "Log in" #~ msgstr "Log in" -#: src/components/forms/AuthenticationForm.tsx:134 -#: src/components/forms/AuthenticationForm.tsx:233 -#: src/pages/Auth/Reset.tsx:31 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:51 -msgid "Email" -msgstr "" - -#: src/components/forms/AuthenticationForm.tsx:135 -#: src/pages/Auth/Reset.tsx:32 -#: src/pages/Auth/Set-Password.tsx:107 -msgid "We will send you a link to login - if you are registered" -msgstr "" - #: src/components/forms/AuthenticationForm.tsx:136 #~ msgid "I will use username and password" #~ msgstr "I will use username and password" -#: src/components/forms/AuthenticationForm.tsx:151 +#: src/components/forms/AuthenticationForm.tsx:137 +#: src/components/forms/AuthenticationForm.tsx:236 +#: src/pages/Auth/Reset.tsx:31 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:51 +msgid "Email" +msgstr "Email" + +#: src/components/forms/AuthenticationForm.tsx:138 +#: src/pages/Auth/Reset.tsx:32 +#: src/pages/Auth/Set-Password.tsx:102 +msgid "We will send you a link to login - if you are registered" +msgstr "Ti invieremo un link per accedere - se sei registrato" + +#: src/components/forms/AuthenticationForm.tsx:154 msgid "Send me an email" -msgstr "" +msgstr "Inviami una email" -#: src/components/forms/AuthenticationForm.tsx:153 +#: src/components/forms/AuthenticationForm.tsx:156 msgid "Use username and password" -msgstr "" +msgstr "Usa nome utente e password" -#: src/components/forms/AuthenticationForm.tsx:162 +#: src/components/forms/AuthenticationForm.tsx:165 msgid "Log In" -msgstr "" +msgstr "Accedi" -#: src/components/forms/AuthenticationForm.tsx:164 +#: src/components/forms/AuthenticationForm.tsx:167 +#: src/pages/Auth/Reset.tsx:41 +#: src/pages/Auth/Set-Password.tsx:107 msgid "Send Email" -msgstr "" +msgstr "Invia email" -#: src/components/forms/AuthenticationForm.tsx:193 +#: src/components/forms/AuthenticationForm.tsx:196 msgid "Registration successful" -msgstr "" +msgstr "Registrazione completata con successo" -#: src/components/forms/AuthenticationForm.tsx:194 +#: src/components/forms/AuthenticationForm.tsx:197 msgid "Please confirm your email address to complete the registration" -msgstr "" +msgstr "Per favore conferma il tuo indirizzo email per completare la registrazione" -#: src/components/forms/AuthenticationForm.tsx:210 +#: src/components/forms/AuthenticationForm.tsx:213 msgid "Input error" -msgstr "" +msgstr "Errore d'inserimento dati" -#: src/components/forms/AuthenticationForm.tsx:234 +#: src/components/forms/AuthenticationForm.tsx:237 msgid "This will be used for a confirmation" -msgstr "" +msgstr "Questo verrà utilizzato per una conferma" -#: src/components/forms/AuthenticationForm.tsx:246 +#: src/components/forms/AuthenticationForm.tsx:249 msgid "Password repeat" -msgstr "" +msgstr "Ripeti password" -#: src/components/forms/AuthenticationForm.tsx:247 +#: src/components/forms/AuthenticationForm.tsx:250 msgid "Repeat password" -msgstr "" +msgstr "Ripeti password" -#: src/components/forms/AuthenticationForm.tsx:259 -#: src/components/forms/AuthenticationForm.tsx:304 +#: src/components/forms/AuthenticationForm.tsx:262 +#: src/components/forms/AuthenticationForm.tsx:307 msgid "Register" -msgstr "" +msgstr "Registrati" -#: src/components/forms/AuthenticationForm.tsx:265 +#: src/components/forms/AuthenticationForm.tsx:268 msgid "Or use SSO" -msgstr "" +msgstr "Oppure usa SSO" -#: src/components/forms/AuthenticationForm.tsx:296 +#: src/components/forms/AuthenticationForm.tsx:299 msgid "Don't have an account?" -msgstr "" +msgstr "Non hai un account?" -#: src/components/forms/AuthenticationForm.tsx:315 +#: src/components/forms/AuthenticationForm.tsx:318 msgid "Go back to login" -msgstr "" +msgstr "Torna alla pagina di accesso" #: src/components/forms/HostOptionsForm.tsx:36 #: src/components/forms/HostOptionsForm.tsx:67 msgid "Host" -msgstr "" +msgstr "Host" #: src/components/forms/HostOptionsForm.tsx:42 #: src/components/forms/HostOptionsForm.tsx:70 +#: src/components/plugins/PluginDrawer.tsx:69 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:410 +#: src/pages/Index/Settings/AdminCenter/UnitManagmentPanel.tsx:19 #: src/pages/part/CategoryDetail.tsx:81 -#: src/pages/part/PartDetail.tsx:143 -#: src/pages/stock/LocationDetail.tsx:89 -#: src/tables/machine/MachineTypeTable.tsx:65 -#: src/tables/machine/MachineTypeTable.tsx:109 -#: src/tables/machine/MachineTypeTable.tsx:216 -#: src/tables/machine/MachineTypeTable.tsx:319 +#: src/pages/part/PartDetail.tsx:164 +#: src/pages/stock/LocationDetail.tsx:83 +#: src/tables/machine/MachineTypeTable.tsx:70 +#: src/tables/machine/MachineTypeTable.tsx:119 +#: src/tables/machine/MachineTypeTable.tsx:237 +#: src/tables/machine/MachineTypeTable.tsx:340 #: src/tables/plugin/PluginErrorTable.tsx:33 -#: src/tables/plugin/PluginListTable.tsx:126 #: src/tables/purchasing/ManufacturerPartParameterTable.tsx:32 #: src/tables/settings/GroupTable.tsx:147 -#: src/tables/settings/PendingTasksTable.tsx:28 +#: src/tables/settings/PendingTasksTable.tsx:32 #: src/tables/stock/LocationTypesTable.tsx:69 msgid "Name" -msgstr "" +msgstr "Nome" #: src/components/forms/HostOptionsForm.tsx:75 msgid "No one here..." -msgstr "" +msgstr "Non c'è nessuno qui..." #: src/components/forms/HostOptionsForm.tsx:86 msgid "Add Host" -msgstr "" +msgstr "Aggiungi Host" #: src/components/forms/HostOptionsForm.tsx:90 msgid "Save" -msgstr "" +msgstr "Salva" #: src/components/forms/InstanceOptions.tsx:43 msgid "Select destination instance" -msgstr "" +msgstr "Selezionare l'istanza di destinazione" #: src/components/forms/InstanceOptions.tsx:71 msgid "Edit possible host options" -msgstr "" +msgstr "Modifica delle opzioni di host possibili" #: src/components/forms/InstanceOptions.tsx:98 msgid "Version: {0}" -msgstr "" +msgstr "Versione: {0}" #: src/components/forms/InstanceOptions.tsx:100 msgid "API:{0}" -msgstr "" +msgstr "API:{0}" #: src/components/forms/InstanceOptions.tsx:102 msgid "Name: {0}" -msgstr "" +msgstr "Nome: {0}" #: src/components/forms/InstanceOptions.tsx:104 msgid "State: <0>worker ({0}), <1>plugins{1}" -msgstr "" +msgstr "Stato: <0>worker ({0}), <1>plugins{1}" #: src/components/forms/fields/IconField.tsx:81 msgid "No icon selected" -msgstr "" +msgstr "Nessuna icona selezionata" #: src/components/forms/fields/IconField.tsx:159 msgid "Uncategorized" -msgstr "" +msgstr "Non categorizzato" #: src/components/forms/fields/IconField.tsx:209 -#: src/components/nav/Layout.tsx:70 +#: src/components/nav/Layout.tsx:77 #: src/tables/part/PartThumbTable.tsx:192 msgid "Search..." -msgstr "" +msgstr "Ricerca..." #: src/components/forms/fields/IconField.tsx:223 msgid "Select category" -msgstr "" +msgstr "Seleziona categoria" #: src/components/forms/fields/IconField.tsx:232 msgid "Select pack" -msgstr "" +msgstr "Seleziona la confezione" #: src/components/forms/fields/IconField.tsx:237 msgid "{0} icons" -msgstr "" - -#: src/components/forms/fields/RelatedModelField.tsx:318 -#: src/pages/Index/Settings/UserSettings.tsx:96 -#: src/tables/Search.tsx:23 -msgid "Search" -msgstr "" +msgstr "{0} icone" #: src/components/forms/fields/RelatedModelField.tsx:319 +#: src/pages/Index/Settings/UserSettings.tsx:97 +#: src/tables/Search.tsx:23 +msgid "Search" +msgstr "Ricerca" + +#: src/components/forms/fields/RelatedModelField.tsx:320 #: src/components/modals/AboutInvenTreeModal.tsx:81 -#: src/components/widgets/WidgetLayout.tsx:120 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:316 msgid "Loading" -msgstr "" +msgstr "Caricamento" -#: src/components/forms/fields/RelatedModelField.tsx:321 +#: src/components/forms/fields/RelatedModelField.tsx:322 msgid "No results found" -msgstr "" +msgstr "Nessun risultato trovato" -#: src/components/forms/fields/TableField.tsx:52 -msgid "modelRenderer entry required for tables" -msgstr "" +#: src/components/forms/fields/TableField.tsx:72 +#~ msgid "modelRenderer entry required for tables" +#~ msgstr "modelRenderer entry required for tables" -#: src/components/forms/fields/TableField.tsx:76 +#: src/components/forms/fields/TableField.tsx:167 msgid "No entries available" -msgstr "" +msgstr "Nessuna voce disponibile" #: src/components/images/DetailsImage.tsx:252 #~ msgid "Select image" @@ -698,73 +1006,74 @@ msgstr "" #: src/components/images/Thumbnail.tsx:12 msgid "Thumbnail" -msgstr "" +msgstr "Miniatura" #: src/components/importer/ImportDataSelector.tsx:170 msgid "Importing Rows" -msgstr "" +msgstr "Importa Righe" #: src/components/importer/ImportDataSelector.tsx:171 msgid "Please wait while the data is imported" -msgstr "" +msgstr "Si prega di attendere mentre i dati vengono importati" #: src/components/importer/ImportDataSelector.tsx:188 msgid "An error occurred while importing data" -msgstr "" +msgstr "Si è verificato un errore durante l'importazione dei dati" #: src/components/importer/ImportDataSelector.tsx:209 msgid "Edit Data" -msgstr "" +msgstr "Modifica dati" #: src/components/importer/ImportDataSelector.tsx:237 msgid "Delete Row" -msgstr "" +msgstr "Elimina riga" #: src/components/importer/ImportDataSelector.tsx:267 msgid "Row" -msgstr "" +msgstr "Riga" #: src/components/importer/ImportDataSelector.tsx:285 msgid "Row contains errors" -msgstr "" +msgstr "La riga contiene errori" #: src/components/importer/ImportDataSelector.tsx:326 msgid "Accept" -msgstr "" +msgstr "Accetta" #: src/components/importer/ImportDataSelector.tsx:359 msgid "Valid" -msgstr "" +msgstr "Valido" #: src/components/importer/ImportDataSelector.tsx:360 msgid "Filter by row validation status" -msgstr "" +msgstr "Filtra per stato di convalida della riga" #: src/components/importer/ImportDataSelector.tsx:365 -#: src/tables/build/BuildOutputTable.tsx:266 +#: src/tables/build/BuildOutputTable.tsx:407 msgid "Complete" -msgstr "" +msgstr "Completato" #: src/components/importer/ImportDataSelector.tsx:366 msgid "Filter by row completion status" -msgstr "" +msgstr "Filtra per stato completamento riga" -#: src/components/importer/ImportDataSelector.tsx:383 +#: src/components/importer/ImportDataSelector.tsx:384 msgid "Import selected rows" -msgstr "" +msgstr "Importa righe selezionate" -#: src/components/importer/ImportDataSelector.tsx:398 +#: src/components/importer/ImportDataSelector.tsx:399 msgid "Processing Data" -msgstr "" +msgstr "Elaborazione dati" -#: src/components/importer/ImporterColumnSelector.tsx:50 -#: src/components/importer/ImporterColumnSelector.tsx:176 +#: src/components/importer/ImporterColumnSelector.tsx:53 +#: src/components/importer/ImporterColumnSelector.tsx:179 +#: src/components/items/ErrorItem.tsx:12 msgid "An error occurred" -msgstr "" +msgstr "Si è verificato un errore" -#: src/components/importer/ImporterColumnSelector.tsx:62 +#: src/components/importer/ImporterColumnSelector.tsx:65 msgid "Select column, or leave blank to ignore this field." -msgstr "" +msgstr "Seleziona la colonna o lascia vuoto per ignorare questo campo." #: src/components/importer/ImporterColumnSelector.tsx:91 #~ msgid "Select a column from the data file" @@ -778,374 +1087,384 @@ msgstr "" #~ msgid "Imported Column Name" #~ msgstr "Imported Column Name" -#: src/components/importer/ImporterColumnSelector.tsx:182 +#: src/components/importer/ImporterColumnSelector.tsx:185 msgid "Ignore this field" -msgstr "" +msgstr "Ignora questo campo" -#: src/components/importer/ImporterColumnSelector.tsx:196 +#: src/components/importer/ImporterColumnSelector.tsx:199 msgid "Mapping data columns to database fields" -msgstr "" +msgstr "Mappatura colonne di dati ai campi del database" -#: src/components/importer/ImporterColumnSelector.tsx:201 +#: src/components/importer/ImporterColumnSelector.tsx:204 msgid "Accept Column Mapping" -msgstr "" - -#: src/components/importer/ImporterColumnSelector.tsx:214 -msgid "Database Field" -msgstr "" - -#: src/components/importer/ImporterColumnSelector.tsx:215 -msgid "Field Description" -msgstr "" - -#: src/components/importer/ImporterColumnSelector.tsx:216 -msgid "Imported Column" -msgstr "" +msgstr "Accetta Mappatura Colonna" #: src/components/importer/ImporterColumnSelector.tsx:217 +msgid "Database Field" +msgstr "Campo Database" + +#: src/components/importer/ImporterColumnSelector.tsx:218 +msgid "Field Description" +msgstr "Campo descrizione" + +#: src/components/importer/ImporterColumnSelector.tsx:219 +msgid "Imported Column" +msgstr "Colonna Importata" + +#: src/components/importer/ImporterColumnSelector.tsx:220 msgid "Default Value" -msgstr "" - -#: src/components/importer/ImporterDrawer.tsx:44 -msgid "Upload File" -msgstr "" - -#: src/components/importer/ImporterDrawer.tsx:45 -msgid "Map Columns" -msgstr "" +msgstr "Valore Predefinito" #: src/components/importer/ImporterDrawer.tsx:46 -msgid "Import Data" -msgstr "" +msgid "Upload File" +msgstr "Carica file" #: src/components/importer/ImporterDrawer.tsx:47 -msgid "Process Data" -msgstr "" +msgid "Map Columns" +msgstr "Mappa colonne" #: src/components/importer/ImporterDrawer.tsx:48 +msgid "Import Data" +msgstr "Importa dati" + +#: src/components/importer/ImporterDrawer.tsx:49 +msgid "Process Data" +msgstr "Elaborazione dati" + +#: src/components/importer/ImporterDrawer.tsx:50 msgid "Complete Import" -msgstr "" +msgstr "Importazione Completata" #: src/components/importer/ImporterDrawer.tsx:97 #~ msgid "Cancel import session" #~ msgstr "Cancel import session" -#: src/components/importer/ImporterDrawer.tsx:104 +#: src/components/importer/ImporterDrawer.tsx:106 msgid "Import Complete" -msgstr "" - -#: src/components/importer/ImporterDrawer.tsx:107 -msgid "Data has been imported successfully" -msgstr "" +msgstr "Importazione Completata" #: src/components/importer/ImporterDrawer.tsx:109 -#: src/components/importer/ImporterDrawer.tsx:118 +msgid "Data has been imported successfully" +msgstr "I dati sono stati importati correttamente" + +#: src/components/importer/ImporterDrawer.tsx:111 +#: src/components/importer/ImporterDrawer.tsx:120 msgid "Close" -msgstr "" +msgstr "Chiudi" -#: src/components/importer/ImporterDrawer.tsx:115 +#: src/components/importer/ImporterDrawer.tsx:117 msgid "Unknown Status" -msgstr "" +msgstr "Stato sconosciuto" -#: src/components/importer/ImporterDrawer.tsx:116 +#: src/components/importer/ImporterDrawer.tsx:118 msgid "Import session has unknown status" -msgstr "" +msgstr "La sessione d'importazione ha uno stato sconosciuto" -#: src/components/importer/ImporterDrawer.tsx:135 +#: src/components/importer/ImporterDrawer.tsx:137 msgid "Importing Data" -msgstr "" +msgstr "Importazione dei dati" #: src/components/importer/ImporterImportProgress.tsx:36 msgid "Importing Records" +msgstr "Importazione Record" + +#: src/components/importer/ImporterImportProgress.tsx:39 +#: src/tables/settings/ImportSessionTable.tsx:78 +msgid "Imported Rows" msgstr "" #: src/components/importer/ImporterImportProgress.tsx:39 -msgid "Imported rows" -msgstr "" +#~ msgid "Imported rows" +#~ msgstr "Imported rows" -#: src/components/items/ActionDropdown.tsx:121 -msgid "Barcode Actions" +#: src/components/items/ActionDropdown.tsx:126 +msgid "Options" msgstr "" #: src/components/items/ActionDropdown.tsx:140 -msgid "View Barcode" -msgstr "" - -#: src/components/items/ActionDropdown.tsx:147 -msgid "View" -msgstr "" - -#: src/components/items/ActionDropdown.tsx:148 -msgid "View barcode" -msgstr "" - -#: src/components/items/ActionDropdown.tsx:161 -msgid "Link Barcode" -msgstr "" +#~ msgid "View Barcode" +#~ msgstr "View Barcode" #: src/components/items/ActionDropdown.tsx:162 -msgid "Link custom barcode" -msgstr "" +#: src/tables/InvenTreeTableHeader.tsx:159 +#: src/tables/InvenTreeTableHeader.tsx:160 +msgid "Barcode Actions" +msgstr "Azioni Codice A Barre" -#: src/components/items/ActionDropdown.tsx:173 -#: src/forms/PurchaseOrderForms.tsx:426 -msgid "Unlink Barcode" -msgstr "" +#: src/components/items/ActionDropdown.tsx:162 +#~ msgid "Link custom barcode" +#~ msgstr "Link custom barcode" -#: src/components/items/ActionDropdown.tsx:174 -msgid "Unlink custom barcode" -msgstr "" +#: src/components/items/ActionDropdown.tsx:167 +msgid "View" +msgstr "Vista" + +#: src/components/items/ActionDropdown.tsx:169 +msgid "View barcode" +msgstr "Visualizza codice a barre" + +#: src/components/items/ActionDropdown.tsx:175 +msgid "Link Barcode" +msgstr "Collega Codice a Barre" + +#: src/components/items/ActionDropdown.tsx:177 +msgid "Link a custom barcode to this item" +msgstr "Collega un codice a barre personalizzato a questo articolo" #: src/components/items/ActionDropdown.tsx:183 -#: src/tables/RowActions.tsx:33 +#: src/components/items/QRCode.tsx:193 +#: src/forms/PurchaseOrderForms.tsx:464 +msgid "Unlink Barcode" +msgstr "Scollega Codice a Barre" + +#: src/components/items/ActionDropdown.tsx:185 +msgid "Unlink custom barcode" +msgstr "Scollega codice a barre personalizzato" + +#: src/components/items/ActionDropdown.tsx:236 +#: src/tables/RowActions.tsx:39 msgid "Edit" -msgstr "" +msgstr "Modifica" -#: src/components/items/ActionDropdown.tsx:184 +#: src/components/items/ActionDropdown.tsx:237 msgid "Edit item" -msgstr "" +msgstr "Modifica articolo" -#: src/components/items/ActionDropdown.tsx:196 +#: src/components/items/ActionDropdown.tsx:249 msgid "Delete item" -msgstr "" +msgstr "Elimina articolo" -#: src/components/items/ActionDropdown.tsx:204 -#: src/components/items/ActionDropdown.tsx:205 +#: src/components/items/ActionDropdown.tsx:257 +#: src/components/items/ActionDropdown.tsx:258 msgid "Hold" -msgstr "" +msgstr "Trattenuto" -#: src/components/items/ActionDropdown.tsx:227 -#: src/tables/RowActions.tsx:23 +#: src/components/items/ActionDropdown.tsx:280 +#: src/tables/RowActions.tsx:29 msgid "Duplicate" -msgstr "" +msgstr "Duplica" -#: src/components/items/ActionDropdown.tsx:228 +#: src/components/items/ActionDropdown.tsx:281 msgid "Duplicate item" +msgstr "Duplica articolo" + +#: src/components/items/BarcodeInput.tsx:23 +msgid "Scan barcode data here using barcode scanner" +msgstr "Scansiona qui i dati del codice a barre utilizzando lo scanner di codici a barre" + +#: src/components/items/BarcodeInput.tsx:24 +#: src/tables/settings/BarcodeScanHistoryTable.tsx:65 +msgid "Barcode" +msgstr "Codice a barre" + +#: src/components/items/BarcodeInput.tsx:25 +msgid "Scan" msgstr "" #: src/components/items/DocTooltip.tsx:92 +#: src/components/items/GettingStartedCarousel.tsx:20 msgid "Read More" -msgstr "" +msgstr "Approfondisci" -#: src/components/items/ErrorItem.tsx:5 -#: src/tables/InvenTreeTable.tsx:487 +#: src/components/items/ErrorItem.tsx:8 +#: src/tables/InvenTreeTable.tsx:473 msgid "Unknown error" -msgstr "" +msgstr "Errore sconosciuto" -#: src/components/items/ErrorItem.tsx:10 -msgid "An error occurred:" -msgstr "" +#: src/components/items/ErrorItem.tsx:13 +#~ msgid "An error occurred:" +#~ msgstr "An error occurred:" #: src/components/items/GettingStartedCarousel.tsx:27 -msgid "Read more" -msgstr "" +#~ msgid "Read more" +#~ msgstr "Read more" #: src/components/items/InfoItem.tsx:27 msgid "None" -msgstr "" +msgstr "Vuoto" #: src/components/items/InvenTreeLogo.tsx:23 msgid "InvenTree Logo" -msgstr "" +msgstr "Logo InvenTree" #: src/components/items/OnlyStaff.tsx:9 #: src/components/modals/AboutInvenTreeModal.tsx:44 msgid "This information is only available for staff users" -msgstr "" +msgstr "Questa informazione è disponibile solo per gli utenti del personale" #: src/components/items/Placeholder.tsx:14 msgid "This feature/button/site is a placeholder for a feature that is not implemented, only partial or intended for testing." -msgstr "" +msgstr "Questa funzione/pulsante/sito è un segnaposto per una funzione che non è implementata, solo parziale o destinata al test." #: src/components/items/Placeholder.tsx:17 msgid "PLH" -msgstr "" +msgstr "PLH" #: src/components/items/Placeholder.tsx:31 msgid "This panel is a placeholder." -msgstr "" - -#: src/components/items/QRCode.tsx:87 -msgid "Low (7%)" -msgstr "" - -#: src/components/items/QRCode.tsx:88 -msgid "Medium (15%)" -msgstr "" +msgstr "Questo pannello è un segnaposto." #: src/components/items/QRCode.tsx:89 -msgid "Quartile (25%)" -msgstr "" +msgid "Low (7%)" +msgstr "Basso (7%)" #: src/components/items/QRCode.tsx:90 +msgid "Medium (15%)" +msgstr "Medio (15%)" + +#: src/components/items/QRCode.tsx:91 +msgid "Quartile (25%)" +msgstr "Quartile (25%)" + +#: src/components/items/QRCode.tsx:92 msgid "High (30%)" +msgstr "Alto (30%)" + +#: src/components/items/QRCode.tsx:100 +msgid "Custom barcode" msgstr "" -#: src/components/items/QRCode.tsx:107 -msgid "Barcode Data:" -msgstr "" +#: src/components/items/QRCode.tsx:101 +msgid "A custom barcode is registered for this item. The shown code is not that custom barcode." +msgstr "Per questo articolo è registrato un codice a barre personalizzato. Il codice visualizzato non è quello personalizzato." #: src/components/items/QRCode.tsx:118 +msgid "Barcode Data:" +msgstr "Dati codice a barre:" + +#: src/components/items/QRCode.tsx:129 msgid "Select Error Correction Level" -msgstr "" +msgstr "Seleziona Livello Correzione Errori" + +#: src/components/items/QRCode.tsx:171 +#: src/pages/part/PartDetail.tsx:239 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:187 +#: src/pages/sales/ReturnOrderDetail.tsx:157 +#: src/pages/sales/SalesOrderDetail.tsx:169 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:166 +msgid "Link" +msgstr "Collegamento" + +#: src/components/items/QRCode.tsx:190 +msgid "This will remove the link to the associated barcode" +msgstr "Questo rimuoverà il collegamento al codice a barre associato" #: src/components/modals/AboutInvenTreeModal.tsx:99 msgid "Version Information" -msgstr "" +msgstr "Informazioni sulla versione" #: src/components/modals/AboutInvenTreeModal.tsx:103 msgid "Your InvenTree version status is" -msgstr "" +msgstr "Lo stato della tua versione InvenTree è" #: src/components/modals/AboutInvenTreeModal.tsx:107 msgid "Development Version" -msgstr "" +msgstr "Versione di sviluppo" #: src/components/modals/AboutInvenTreeModal.tsx:111 msgid "Up to Date" -msgstr "" +msgstr "Aggiornato" #: src/components/modals/AboutInvenTreeModal.tsx:115 msgid "Update Available" -msgstr "" +msgstr "Aggiornamento disponibile" #: src/components/modals/AboutInvenTreeModal.tsx:125 msgid "InvenTree Version" -msgstr "" +msgstr "Versione di InvenTree" #: src/components/modals/AboutInvenTreeModal.tsx:131 msgid "Commit Hash" -msgstr "" +msgstr "Hash del Commit" #: src/components/modals/AboutInvenTreeModal.tsx:136 msgid "Commit Date" -msgstr "" +msgstr "Data del Commit" #: src/components/modals/AboutInvenTreeModal.tsx:141 msgid "Commit Branch" -msgstr "" +msgstr "Branch del commit" #: src/components/modals/AboutInvenTreeModal.tsx:146 #: src/components/modals/ServerInfoModal.tsx:133 msgid "API Version" -msgstr "" +msgstr "Versione API" #: src/components/modals/AboutInvenTreeModal.tsx:149 msgid "Python Version" -msgstr "" +msgstr "Versione Python" #: src/components/modals/AboutInvenTreeModal.tsx:152 msgid "Django Version" -msgstr "" +msgstr "Versione Django" #: src/components/modals/AboutInvenTreeModal.tsx:162 msgid "Links" -msgstr "" +msgstr "Collegamenti" #: src/components/modals/AboutInvenTreeModal.tsx:168 msgid "InvenTree Documentation" -msgstr "" +msgstr "Documentazione InvenTree" #: src/components/modals/AboutInvenTreeModal.tsx:169 msgid "View Code on GitHub" -msgstr "" +msgstr "Visualizza codice sorgente su GitHub" #: src/components/modals/AboutInvenTreeModal.tsx:170 msgid "Credits" -msgstr "" +msgstr "Riconoscimenti" #: src/components/modals/AboutInvenTreeModal.tsx:171 msgid "Mobile App" -msgstr "" +msgstr "App Mobile" #: src/components/modals/AboutInvenTreeModal.tsx:172 msgid "Submit Bug Report" -msgstr "" +msgstr "Invia Segnalazione Bug" -#: src/components/modals/AboutInvenTreeModal.tsx:183 +#: src/components/modals/AboutInvenTreeModal.tsx:181 msgid "Copy version information" -msgstr "" +msgstr "Copia informazioni versione" -#: src/components/modals/AboutInvenTreeModal.tsx:192 +#: src/components/modals/AboutInvenTreeModal.tsx:189 #: src/components/modals/ServerInfoModal.tsx:147 msgid "Dismiss" -msgstr "" +msgstr "Chiudi" #: src/components/modals/LicenseModal.tsx:39 msgid "No license text available" -msgstr "" +msgstr "Nessun testo di licenza disponibile" #: src/components/modals/LicenseModal.tsx:46 msgid "No Information provided - this is likely a server issue" -msgstr "" +msgstr "Nessuna informazione fornita - questo è probabilmente un problema del server" #: src/components/modals/LicenseModal.tsx:71 msgid "Loading license information" -msgstr "" +msgstr "Caricamento delle informazioni sulla licenza" #: src/components/modals/LicenseModal.tsx:77 msgid "Failed to fetch license information" -msgstr "" +msgstr "Recupero delle informazioni sulla licenza non riuscito" #: src/components/modals/LicenseModal.tsx:85 msgid "{key} Packages" -msgstr "" +msgstr "{key} Pacchetti" -#: src/components/modals/QrCodeModal.tsx:72 +#: src/components/modals/QrCodeModal.tsx:24 msgid "Unknown response" -msgstr "" +msgstr "Risposta sconosciuta" -#: src/components/modals/QrCodeModal.tsx:102 -#: src/pages/Index/Scan.tsx:636 -msgid "Error while getting camera" -msgstr "" - -#: src/components/modals/QrCodeModal.tsx:125 -#: src/pages/Index/Scan.tsx:659 -msgid "Error while scanning" -msgstr "" - -#: src/components/modals/QrCodeModal.tsx:139 -#: src/pages/Index/Scan.tsx:673 -msgid "Error while stopping" -msgstr "" - -#: src/components/modals/QrCodeModal.tsx:154 -#: src/defaults/menuItems.tsx:21 -#: src/pages/Index/Scan.tsx:746 -msgid "Scanning" -msgstr "" - -#: src/components/modals/QrCodeModal.tsx:154 -#: src/pages/Index/Scan.tsx:746 -msgid "Not scanning" -msgstr "" - -#: src/components/modals/QrCodeModal.tsx:159 -#: src/pages/Index/Scan.tsx:752 -msgid "Select Camera" -msgstr "" - -#: src/components/modals/QrCodeModal.tsx:169 -#: src/pages/Index/Scan.tsx:737 -msgid "Start scanning" -msgstr "" - -#: src/components/modals/QrCodeModal.tsx:176 -#: src/pages/Index/Scan.tsx:729 -msgid "Stop scanning" -msgstr "" - -#: src/components/modals/QrCodeModal.tsx:181 +#: src/components/modals/QrCodeModal.tsx:39 msgid "No scans yet!" msgstr "" -#: src/components/modals/QrCodeModal.tsx:201 +#: src/components/modals/QrCodeModal.tsx:57 msgid "Close modal" msgstr "" #: src/components/modals/ServerInfoModal.tsx:26 -#: src/pages/Index/Settings/SystemSettings.tsx:38 +#: src/pages/Index/Settings/SystemSettings.tsx:37 msgid "Server" msgstr "" @@ -1206,6 +1525,7 @@ msgid "Background Worker" msgstr "" #: src/components/modals/ServerInfoModal.tsx:101 +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:29 msgid "Background worker not running" msgstr "" @@ -1218,8 +1538,8 @@ msgid "Email settings not configured" msgstr "" #: src/components/modals/ServerInfoModal.tsx:121 -#: src/tables/plugin/PluginListTable.tsx:144 -#: src/tables/plugin/PluginListTable.tsx:294 +#: src/components/plugins/PluginDrawer.tsx:89 +#: src/tables/plugin/PluginListTable.tsx:116 msgid "Version" msgstr "" @@ -1227,7 +1547,7 @@ msgstr "" msgid "Server Version" msgstr "" -#: src/components/nav/Layout.tsx:73 +#: src/components/nav/Layout.tsx:80 msgid "Nothing found..." msgstr "" @@ -1237,18 +1557,26 @@ msgstr "" #~ msgstr "Profile" #: src/components/nav/MainMenu.tsx:52 +#: src/components/nav/NavigationDrawer.tsx:178 #: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:28 msgid "Settings" msgstr "" #: src/components/nav/MainMenu.tsx:59 -#: src/defaults/menuItems.tsx:15 -msgid "Account settings" +#: src/pages/Index/Settings/UserSettings.tsx:152 +msgid "Account Settings" msgstr "" +#: src/components/nav/MainMenu.tsx:59 +#: src/defaults/menuItems.tsx:15 +#~ msgid "Account settings" +#~ msgstr "Account settings" + #: src/components/nav/MainMenu.tsx:67 -#: src/defaults/menuItems.tsx:58 -#: src/pages/Index/Settings/SystemSettings.tsx:315 +#: src/components/nav/NavigationDrawer.tsx:141 +#: src/components/nav/SettingsHeader.tsx:49 +#: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:37 +#: src/pages/Index/Settings/SystemSettings.tsx:310 msgid "System Settings" msgstr "" @@ -1260,14 +1588,11 @@ msgstr "" #~ msgid "Switch to pseudo language" #~ msgstr "Switch to pseudo language" -#: src/components/nav/MainMenu.tsx:77 -msgid "Change Color Mode" -msgstr "" - #: src/components/nav/MainMenu.tsx:86 -#: src/defaults/actions.tsx:71 -#: src/defaults/menuItems.tsx:63 -#: src/pages/Index/Settings/AdminCenter/Index.tsx:221 +#: src/components/nav/NavigationDrawer.tsx:148 +#: src/components/nav/SettingsHeader.tsx:50 +#: src/defaults/actions.tsx:63 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:251 msgid "Admin Center" msgstr "" @@ -1275,458 +1600,732 @@ msgstr "" msgid "Logout" msgstr "" -#: src/components/nav/NavHoverMenu.tsx:65 -#: src/defaults/actions.tsx:60 -msgid "Open Navigation" -msgstr "" - #: src/components/nav/NavHoverMenu.tsx:84 -msgid "View all" -msgstr "" +#~ msgid "View all" +#~ msgstr "View all" #: src/components/nav/NavHoverMenu.tsx:100 #: src/components/nav/NavHoverMenu.tsx:110 -msgid "Get started" -msgstr "" +#~ msgid "Get started" +#~ msgstr "Get started" #: src/components/nav/NavHoverMenu.tsx:103 -msgid "Overview over high-level objects, functions and possible usecases." -msgstr "" - -#: src/components/nav/NavigationDrawer.tsx:57 -msgid "Navigation" -msgstr "" +#~ msgid "Overview over high-level objects, functions and possible usecases." +#~ msgstr "Overview over high-level objects, functions and possible usecases." #: src/components/nav/NavigationDrawer.tsx:60 -msgid "Pages" +#~ msgid "Pages" +#~ msgstr "Pages" + +#: src/components/nav/NavigationDrawer.tsx:77 +#: src/components/render/ModelType.tsx:31 +#: src/defaults/links.tsx:10 +#: src/pages/Index/Settings/SystemSettings.tsx:172 +#: src/pages/part/CategoryDetail.tsx:125 +#: src/pages/part/CategoryDetail.tsx:249 +#: src/pages/part/CategoryDetail.tsx:279 +#: src/pages/part/PartDetail.tsx:856 +msgid "Parts" +msgstr "Articoli" + +#: src/components/nav/NavigationDrawer.tsx:84 +#: src/components/render/Part.tsx:30 +#: src/defaults/links.tsx:11 +#: src/pages/Index/Settings/SystemSettings.tsx:205 +#: src/pages/part/PartDetail.tsx:593 +#: src/pages/stock/LocationDetail.tsx:352 +#: src/pages/stock/StockDetail.tsx:528 +#: src/tables/stock/StockItemTable.tsx:69 +msgid "Stock" msgstr "" -#: src/components/nav/NavigationDrawer.tsx:65 -#: src/pages/Index/Settings/AdminCenter/Index.tsx:176 -#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:41 -msgid "Plugins" +#: src/components/nav/NavigationDrawer.tsx:91 +#: src/defaults/links.tsx:13 +#: src/pages/build/BuildDetail.tsx:530 +#: src/pages/build/BuildIndex.tsx:36 +msgid "Manufacturing" msgstr "" -#: src/components/nav/NavigationDrawer.tsx:75 -#: src/defaults/actions.tsx:32 -msgid "Documentation" +#: src/components/nav/NavigationDrawer.tsx:98 +#: src/defaults/links.tsx:18 +#: src/pages/company/ManufacturerDetail.tsx:9 +#: src/pages/company/ManufacturerPartDetail.tsx:258 +#: src/pages/company/SupplierDetail.tsx:9 +#: src/pages/company/SupplierPartDetail.tsx:336 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:480 +#: src/pages/purchasing/PurchasingIndex.tsx:60 +msgid "Purchasing" msgstr "" -#: src/components/nav/NavigationDrawer.tsx:78 -msgid "About" +#: src/components/nav/NavigationDrawer.tsx:105 +#: src/defaults/links.tsx:22 +#: src/pages/company/CustomerDetail.tsx:9 +#: src/pages/sales/ReturnOrderDetail.tsx:469 +#: src/pages/sales/SalesIndex.tsx:53 +#: src/pages/sales/SalesOrderDetail.tsx:520 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:343 +msgid "Sales" msgstr "" -#: src/components/nav/NotificationDrawer.tsx:92 -#: src/pages/Index/Settings/SystemSettings.tsx:109 -#: src/pages/Index/Settings/UserSettings.tsx:126 +#: src/components/nav/NavigationDrawer.tsx:129 +#: src/components/nav/NotificationDrawer.tsx:178 +#: src/pages/Index/Settings/SystemSettings.tsx:110 +#: src/pages/Index/Settings/UserSettings.tsx:127 #: src/pages/Notifications.tsx:65 #: src/pages/Notifications.tsx:151 msgid "Notifications" msgstr "" -#: src/components/nav/NotificationDrawer.tsx:94 +#: src/components/nav/NavigationDrawer.tsx:135 +#: src/components/nav/SettingsHeader.tsx:48 +msgid "User Settings" +msgstr "" + +#: src/components/nav/NavigationDrawer.tsx:173 +msgid "Navigation" +msgstr "" + +#: src/components/nav/NavigationDrawer.tsx:183 +#: src/forms/PurchaseOrderForms.tsx:689 +#: src/forms/StockForms.tsx:614 +#: src/forms/StockForms.tsx:651 +#: src/forms/StockForms.tsx:677 +#: src/forms/StockForms.tsx:705 +#: src/forms/StockForms.tsx:736 +#: src/forms/StockForms.tsx:771 +#: src/forms/StockForms.tsx:813 +#: src/forms/StockForms.tsx:851 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:413 +#: src/tables/RowActions.tsx:129 +#: src/tables/build/BuildLineTable.tsx:101 +msgid "Actions" +msgstr "" + +#: src/components/nav/NavigationDrawer.tsx:191 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:205 +#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:44 +msgid "Plugins" +msgstr "" + +#: src/components/nav/NavigationDrawer.tsx:204 +#: src/defaults/actions.tsx:24 +msgid "Documentation" +msgstr "" + +#: src/components/nav/NavigationDrawer.tsx:210 +msgid "About" +msgstr "" + +#: src/components/nav/NotificationDrawer.tsx:180 msgid "Mark all as read" msgstr "" -#: src/components/nav/NotificationDrawer.tsx:104 +#: src/components/nav/NotificationDrawer.tsx:190 msgid "View all notifications" msgstr "" -#: src/components/nav/NotificationDrawer.tsx:123 +#: src/components/nav/NotificationDrawer.tsx:210 msgid "You have no unread notifications." msgstr "" -#: src/components/nav/NotificationDrawer.tsx:139 -#: src/components/nav/NotificationDrawer.tsx:145 -#: src/tables/notifications/NotificationsTable.tsx:36 -msgid "Notification" -msgstr "" - -#: src/components/nav/NotificationDrawer.tsx:168 -#: src/pages/Notifications.tsx:73 -msgid "Mark as read" -msgstr "" - -#: src/components/nav/SearchDrawer.tsx:78 +#: src/components/nav/SearchDrawer.tsx:85 msgid "results" msgstr "" -#: src/components/nav/SearchDrawer.tsx:370 +#: src/components/nav/SearchDrawer.tsx:380 msgid "Enter search text" msgstr "" -#: src/components/nav/SearchDrawer.tsx:397 +#: src/components/nav/SearchDrawer.tsx:391 +msgid "Refresh search results" +msgstr "" + +#: src/components/nav/SearchDrawer.tsx:402 +#: src/components/nav/SearchDrawer.tsx:409 msgid "Search Options" -msgstr "" +msgstr "Opzioni di Ricerca" -#: src/components/nav/SearchDrawer.tsx:400 +#: src/components/nav/SearchDrawer.tsx:412 msgid "Regex search" -msgstr "" +msgstr "Ricerca con regex" -#: src/components/nav/SearchDrawer.tsx:410 +#: src/components/nav/SearchDrawer.tsx:421 msgid "Whole word search" -msgstr "" +msgstr "Ricerca parole intere" -#: src/components/nav/SearchDrawer.tsx:451 +#: src/components/nav/SearchDrawer.tsx:461 msgid "An error occurred during search query" -msgstr "" +msgstr "Si è verificato un errore durante la ricerca" #: src/components/nav/SearchDrawer.tsx:462 -msgid "No results" +#~ msgid "No results" +#~ msgstr "No results" + +#: src/components/nav/SearchDrawer.tsx:472 +#: src/tables/part/PartTestTemplateTable.tsx:76 +msgid "No Results" msgstr "" -#: src/components/nav/SearchDrawer.tsx:465 +#: src/components/nav/SearchDrawer.tsx:475 msgid "No results available for search query" +msgstr "Nessun risultato disponibile per la ricerca" + +#: src/components/panels/AttachmentPanel.tsx:18 +msgid "Attachments" msgstr "" -#: src/components/render/Instance.tsx:217 +#: src/components/panels/NotesPanel.tsx:24 +#: src/tables/build/BuildOrderTestTable.tsx:143 +#: src/tables/stock/StockTrackingTable.tsx:204 +msgid "Notes" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:47 +msgid "Plugin Inactive" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:50 +msgid "Plugin is not active" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:60 +msgid "Plugin Information" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:74 +#: src/pages/build/BuildDetail.tsx:116 +#: src/pages/company/CompanyDetail.tsx:89 +#: src/pages/company/ManufacturerPartDetail.tsx:89 +#: src/pages/company/ManufacturerPartDetail.tsx:116 +#: src/pages/company/SupplierPartDetail.tsx:140 +#: src/pages/part/CategoryDetail.tsx:101 +#: src/pages/part/PartDetail.tsx:178 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:136 +#: src/pages/sales/ReturnOrderDetail.tsx:107 +#: src/pages/sales/SalesOrderDetail.tsx:116 +#: src/pages/stock/LocationDetail.tsx:103 +#: src/tables/ColumnRenderers.tsx:92 +#: src/tables/bom/UsedInTable.tsx:44 +#: src/tables/build/BuildAllocatedStockTable.tsx:83 +#: src/tables/build/BuildLineTable.tsx:329 +#: src/tables/machine/MachineTypeTable.tsx:74 +#: src/tables/machine/MachineTypeTable.tsx:129 +#: src/tables/machine/MachineTypeTable.tsx:240 +#: src/tables/machine/MachineTypeTable.tsx:344 +#: src/tables/part/RelatedPartTable.tsx:66 +#: src/tables/plugin/PluginListTable.tsx:99 +#: src/tables/sales/SalesOrderAllocationTable.tsx:87 +#: src/tables/sales/SalesOrderLineItemTable.tsx:75 +#: src/tables/stock/LocationTypesTable.tsx:74 +msgid "Description" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:79 +msgid "Author" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:84 +#: src/pages/part/PartSchedulingDetail.tsx:277 +#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:40 +#: src/pages/part/pricing/SaleHistoryPanel.tsx:38 +#: src/tables/ColumnRenderers.tsx:215 +#: src/tables/build/BuildOrderTestTable.tsx:151 +#: src/tables/settings/StocktakeReportTable.tsx:40 +msgid "Date" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:94 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:398 +#: src/pages/part/PartDetail.tsx:331 +#: src/tables/bom/UsedInTable.tsx:84 +#: src/tables/company/CompanyTable.tsx:62 +#: src/tables/company/CompanyTable.tsx:96 +#: src/tables/machine/MachineListTable.tsx:333 +#: src/tables/machine/MachineListTable.tsx:605 +#: src/tables/part/ParametricPartTable.tsx:223 +#: src/tables/part/PartTable.tsx:178 +#: src/tables/part/PartVariantTable.tsx:15 +#: src/tables/plugin/PluginListTable.tsx:94 +#: src/tables/plugin/PluginListTable.tsx:401 +#: src/tables/purchasing/SupplierPartTable.tsx:100 +#: src/tables/purchasing/SupplierPartTable.tsx:190 +#: src/tables/settings/UserTable.tsx:283 +#: src/tables/stock/StockItemTable.tsx:293 +msgid "Active" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:106 +msgid "Package Name" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:112 +msgid "Installation Path" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:117 +#: src/tables/machine/MachineTypeTable.tsx:152 +#: src/tables/machine/MachineTypeTable.tsx:276 +#: src/tables/plugin/PluginListTable.tsx:406 +msgid "Builtin" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:122 +msgid "Package" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:134 +#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:53 +msgid "Plugin Settings" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:146 +#: src/components/render/ModelType.tsx:276 +msgid "Plugin Configuration" +msgstr "" + +#: src/components/plugins/PluginPanel.tsx:87 +#~ msgid "Error occurred while rendering plugin content" +#~ msgstr "Error occurred while rendering plugin content" + +#: src/components/plugins/PluginPanel.tsx:91 +#~ msgid "Plugin did not provide panel rendering function" +#~ msgstr "Plugin did not provide panel rendering function" + +#: src/components/plugins/PluginPanel.tsx:103 +#~ msgid "No content provided for this plugin" +#~ msgstr "No content provided for this plugin" + +#: src/components/plugins/PluginPanel.tsx:116 +#: src/components/plugins/PluginSettingsPanel.tsx:76 +#~ msgid "Error Loading Plugin" +#~ msgstr "Error Loading Plugin" + +#: src/components/plugins/PluginSettingsPanel.tsx:51 +#~ msgid "Error occurred while rendering plugin settings" +#~ msgstr "Error occurred while rendering plugin settings" + +#: src/components/plugins/PluginSettingsPanel.tsx:55 +#~ msgid "Plugin did not provide settings rendering function" +#~ msgstr "Plugin did not provide settings rendering function" + +#: src/components/plugins/PluginUIFeature.tsx:100 +msgid "Error occurred while rendering the template editor." +msgstr "" + +#: src/components/plugins/PluginUIFeature.tsx:111 +msgid "Error Loading Plugin Editor" +msgstr "" + +#: src/components/plugins/PluginUIFeature.tsx:147 +msgid "Error occurred while rendering the template preview." +msgstr "" + +#: src/components/plugins/PluginUIFeature.tsx:158 +msgid "Error Loading Plugin Preview" +msgstr "" + +#: src/components/plugins/RemoteComponent.tsx:70 +msgid "Invalid source or function name" +msgstr "" + +#: src/components/plugins/RemoteComponent.tsx:91 +msgid "Error Loading Content" +msgstr "" + +#: src/components/plugins/RemoteComponent.tsx:95 +msgid "Error occurred while loading plugin content" +msgstr "" + +#: src/components/render/Instance.tsx:224 msgid "Unknown model: {model}" -msgstr "" +msgstr "Modello sconosciuto: {model}" -#: src/components/render/ModelType.tsx:22 -#: src/forms/BuildForms.tsx:213 -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/forms/StockForms.tsx:499 -#: src/forms/StockForms.tsx:533 -#: src/forms/StockForms.tsx:562 -#: src/forms/StockForms.tsx:590 -#: src/forms/StockForms.tsx:621 -#: src/forms/StockForms.tsx:656 -#: src/forms/StockForms.tsx:698 -#: src/forms/StockForms.tsx:734 -#: src/pages/build/BuildDetail.tsx:95 -#: src/pages/part/PartDetail.tsx:1073 -#: src/tables/build/BuildAllocatedStockTable.tsx:82 +#: src/components/render/ModelType.tsx:30 +#: src/forms/BuildForms.tsx:269 +#: src/forms/BuildForms.tsx:337 +#: src/forms/BuildForms.tsx:385 +#: src/forms/BuildForms.tsx:515 +#: src/forms/PurchaseOrderForms.tsx:689 +#: src/forms/ReturnOrderForms.tsx:190 +#: src/forms/SalesOrderForms.tsx:248 +#: src/forms/StockForms.tsx:261 +#: src/forms/StockForms.tsx:614 +#: src/forms/StockForms.tsx:651 +#: src/forms/StockForms.tsx:677 +#: src/forms/StockForms.tsx:705 +#: src/forms/StockForms.tsx:736 +#: src/forms/StockForms.tsx:771 +#: src/forms/StockForms.tsx:813 +#: src/forms/StockForms.tsx:851 +#: src/pages/build/BuildDetail.tsx:90 +#: src/pages/part/PartDetail.tsx:1094 +#: src/tables/build/BuildAllocatedStockTable.tsx:95 +#: src/tables/build/BuildLineTable.tsx:72 #: src/tables/part/PartTable.tsx:28 -#: src/tables/part/RelatedPartTable.tsx:45 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:88 -#: src/tables/sales/SalesOrderAllocationTable.tsx:68 -#: src/tables/stock/StockTrackingTable.tsx:74 +#: src/tables/part/RelatedPartTable.tsx:47 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:130 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:100 +#: src/tables/sales/SalesOrderAllocationTable.tsx:99 +#: src/tables/stock/StockTrackingTable.tsx:78 msgid "Part" -msgstr "" +msgstr "Articolo" -#: src/components/render/ModelType.tsx:23 -#: src/defaults/links.tsx:29 -#: src/defaults/menuItems.tsx:33 -#: src/pages/Index/Settings/SystemSettings.tsx:173 -#: src/pages/part/CategoryDetail.tsx:119 -#: src/pages/part/CategoryDetail.tsx:244 -#: src/pages/part/CategoryDetail.tsx:274 -#: src/pages/part/PartDetail.tsx:827 -msgid "Parts" -msgstr "" - -#: src/components/render/ModelType.tsx:31 +#: src/components/render/ModelType.tsx:40 msgid "Part Parameter Template" -msgstr "" +msgstr "Modello parametro articolo" -#: src/components/render/ModelType.tsx:32 +#: src/components/render/ModelType.tsx:41 msgid "Part Parameter Templates" -msgstr "" +msgstr "Modelli parametro articolo" -#: src/components/render/ModelType.tsx:38 +#: src/components/render/ModelType.tsx:48 msgid "Part Test Template" -msgstr "" +msgstr "Modello Test Articolo" -#: src/components/render/ModelType.tsx:39 +#: src/components/render/ModelType.tsx:49 msgid "Part Test Templates" -msgstr "" +msgstr "Modelli Test Articolo" -#: src/components/render/ModelType.tsx:45 -#: src/pages/company/SupplierPartDetail.tsx:203 -#: src/pages/company/SupplierPartDetail.tsx:375 -#: src/pages/stock/StockDetail.tsx:173 -#: src/tables/build/BuildAllocatedStockTable.tsx:131 +#: src/components/render/ModelType.tsx:56 +#: src/pages/company/SupplierPartDetail.tsx:364 +#: src/pages/stock/StockDetail.tsx:194 +#: src/tables/build/BuildAllocatedStockTable.tsx:152 #: src/tables/part/PartPurchaseOrdersTable.tsx:49 -#: src/tables/purchasing/SupplierPartTable.tsx:68 +#: src/tables/purchasing/SupplierPartTable.tsx:70 +#: src/tables/stock/StockItemTable.tsx:229 msgid "Supplier Part" -msgstr "" +msgstr "Articolo Fornitore" -#: src/components/render/ModelType.tsx:46 +#: src/components/render/ModelType.tsx:57 msgid "Supplier Parts" -msgstr "" +msgstr "Articoli fornitore" -#: src/components/render/ModelType.tsx:54 -#: src/pages/company/ManufacturerPartDetail.tsx:132 +#: src/components/render/ModelType.tsx:66 #: src/tables/part/PartPurchaseOrdersTable.tsx:55 +#: src/tables/stock/StockItemTable.tsx:234 msgid "Manufacturer Part" -msgstr "" +msgstr "Articolo Produttore" -#: src/components/render/ModelType.tsx:55 +#: src/components/render/ModelType.tsx:67 msgid "Manufacturer Parts" -msgstr "" +msgstr "Articoli Produttore" -#: src/components/render/ModelType.tsx:63 -#: src/pages/part/CategoryDetail.tsx:305 +#: src/components/render/ModelType.tsx:76 +#: src/pages/part/CategoryDetail.tsx:310 msgid "Part Category" -msgstr "" +msgstr "Categoria Articolo" -#: src/components/render/ModelType.tsx:64 -#: src/pages/part/CategoryDetail.tsx:258 -#: src/pages/part/CategoryDetail.tsx:296 -#: src/pages/part/PartDetail.tsx:1063 +#: src/components/render/ModelType.tsx:77 +#: src/pages/part/CategoryDetail.tsx:263 +#: src/pages/part/CategoryDetail.tsx:301 +#: src/pages/part/PartDetail.tsx:1084 msgid "Part Categories" -msgstr "" +msgstr "Categorie Articolo" -#: src/components/render/ModelType.tsx:72 -#: src/pages/stock/StockDetail.tsx:624 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:94 -#: src/tables/stock/StockTrackingTable.tsx:45 +#: src/components/render/ModelType.tsx:86 +#: src/forms/BuildForms.tsx:337 +#: src/forms/BuildForms.tsx:385 +#: src/forms/BuildForms.tsx:515 +#: src/forms/SalesOrderForms.tsx:248 +#: src/pages/stock/StockDetail.tsx:839 +#: src/tables/stock/StockTrackingTable.tsx:49 msgid "Stock Item" -msgstr "" +msgstr "Articolo in magazzino" -#: src/components/render/ModelType.tsx:73 +#: src/components/render/ModelType.tsx:87 #: src/pages/company/CompanyDetail.tsx:203 -#: src/pages/stock/LocationDetail.tsx:128 -#: src/pages/stock/LocationDetail.tsx:181 -#: src/pages/stock/LocationDetail.tsx:395 +#: src/pages/part/PartStocktakeDetail.tsx:113 +#: src/pages/stock/LocationDetail.tsx:122 +#: src/pages/stock/LocationDetail.tsx:175 +#: src/pages/stock/LocationDetail.tsx:380 msgid "Stock Items" -msgstr "" - -#: src/components/render/ModelType.tsx:81 -msgid "Stock Location" -msgstr "" - -#: src/components/render/ModelType.tsx:82 -#: src/pages/stock/LocationDetail.tsx:195 -#: src/pages/stock/LocationDetail.tsx:387 -#: src/pages/stock/StockDetail.tsx:616 -msgid "Stock Locations" -msgstr "" - -#: src/components/render/ModelType.tsx:90 -msgid "Stock Location Type" -msgstr "" - -#: src/components/render/ModelType.tsx:91 -msgid "Stock Location Types" -msgstr "" - -#: src/components/render/ModelType.tsx:95 -msgid "Stock History" -msgstr "" +msgstr "Articoli in magazzino" #: src/components/render/ModelType.tsx:96 +msgid "Stock Location" +msgstr "Ubicazione articolo" + +#: src/components/render/ModelType.tsx:97 +#: src/pages/stock/LocationDetail.tsx:189 +#: src/pages/stock/LocationDetail.tsx:372 +#: src/pages/stock/StockDetail.tsx:831 +msgid "Stock Locations" +msgstr "Ubicazioni articolo" + +#: src/components/render/ModelType.tsx:106 +msgid "Stock Location Type" +msgstr "Tipo ubicazione articolo" + +#: src/components/render/ModelType.tsx:107 +msgid "Stock Location Types" +msgstr "Tipi ubicazione articolo" + +#: src/components/render/ModelType.tsx:112 +#: src/pages/part/PartDetail.tsx:712 +msgid "Stock History" +msgstr "Cronologia Magazzino" + +#: src/components/render/ModelType.tsx:113 msgid "Stock Histories" -msgstr "" - -#: src/components/render/ModelType.tsx:100 -#: src/defaults/links.tsx:31 -#: src/defaults/menuItems.tsx:43 -msgid "Build" -msgstr "" - -#: src/components/render/ModelType.tsx:101 -msgid "Builds" -msgstr "" - -#: src/components/render/ModelType.tsx:109 -msgid "Build Line" -msgstr "" - -#: src/components/render/ModelType.tsx:110 -msgid "Build Lines" -msgstr "" - -#: src/components/render/ModelType.tsx:117 -msgid "Build Item" -msgstr "" +msgstr "Cronologie Magazzino" #: src/components/render/ModelType.tsx:118 -msgid "Build Items" -msgstr "" +msgid "Build" +msgstr "Produzione" -#: src/components/render/ModelType.tsx:122 -#: src/pages/company/CompanyDetail.tsx:339 -msgid "Company" -msgstr "" +#: src/components/render/ModelType.tsx:119 +msgid "Builds" +msgstr "Produzione" -#: src/components/render/ModelType.tsx:123 -msgid "Companies" -msgstr "" +#: src/components/render/ModelType.tsx:128 +msgid "Build Line" +msgstr "Linea di produzione" -#: src/components/render/ModelType.tsx:131 -#: src/tables/TableHoverCard.tsx:81 -#: src/tables/build/BuildOrderTable.tsx:140 -#: src/tables/purchasing/PurchaseOrderTable.tsx:64 -#: src/tables/sales/ReturnOrderTable.tsx:55 -#: src/tables/sales/SalesOrderTable.tsx:62 -msgid "Project Code" -msgstr "" +#: src/components/render/ModelType.tsx:129 +msgid "Build Lines" +msgstr "Linee di produzione" -#: src/components/render/ModelType.tsx:132 -#: src/pages/Index/Settings/AdminCenter/Index.tsx:128 -msgid "Project Codes" -msgstr "" +#: src/components/render/ModelType.tsx:137 +msgid "Build Item" +msgstr "Costruisci articolo" #: src/components/render/ModelType.tsx:138 -#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:32 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:480 -#: src/tables/part/PartPurchaseOrdersTable.tsx:32 -#: src/tables/stock/StockTrackingTable.tsx:107 -msgid "Purchase Order" -msgstr "" +msgid "Build Items" +msgstr "Costruisci articoli" -#: src/components/render/ModelType.tsx:139 -#: src/pages/Index/Settings/SystemSettings.tsx:255 -#: src/pages/company/CompanyDetail.tsx:196 -#: src/pages/company/SupplierPartDetail.tsx:237 -#: src/pages/part/PartDetail.tsx:662 -#: src/pages/purchasing/PurchasingIndex.tsx:25 -msgid "Purchase Orders" -msgstr "" +#: src/components/render/ModelType.tsx:143 +#: src/pages/company/CompanyDetail.tsx:321 +msgid "Company" +msgstr "Azienda" -#: src/components/render/ModelType.tsx:147 -msgid "Purchase Order Line" -msgstr "" - -#: src/components/render/ModelType.tsx:148 -msgid "Purchase Order Lines" -msgstr "" - -#: src/components/render/ModelType.tsx:152 -#: src/pages/build/BuildDetail.tsx:153 -#: src/pages/sales/SalesOrderDetail.tsx:520 -#: src/pages/stock/StockDetail.tsx:221 -#: src/tables/sales/SalesOrderAllocationTable.tsx:50 -#: src/tables/stock/StockTrackingTable.tsx:118 -msgid "Sales Order" -msgstr "" +#: src/components/render/ModelType.tsx:144 +msgid "Companies" +msgstr "Aziende" #: src/components/render/ModelType.tsx:153 -#: src/pages/Index/Settings/SystemSettings.tsx:270 -#: src/pages/company/CompanyDetail.tsx:216 -#: src/pages/part/PartDetail.tsx:669 -#: src/pages/sales/SalesIndex.tsx:26 -msgid "Sales Orders" -msgstr "" +#: src/pages/build/BuildDetail.tsx:195 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:204 +#: src/pages/sales/ReturnOrderDetail.tsx:174 +#: src/pages/sales/SalesOrderDetail.tsx:186 +#: src/tables/TableHoverCard.tsx:81 +#: src/tables/build/BuildOrderTable.tsx:135 +#: src/tables/purchasing/PurchaseOrderTable.tsx:69 +#: src/tables/sales/ReturnOrderTable.tsx:67 +#: src/tables/sales/SalesOrderTable.tsx:67 +msgid "Project Code" +msgstr "Codice del progetto" + +#: src/components/render/ModelType.tsx:154 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:145 +msgid "Project Codes" +msgstr "Codici del progetto" #: src/components/render/ModelType.tsx:161 -msgid "Sales Order Shipment" -msgstr "" +#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:32 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:477 +#: src/pages/stock/StockDetail.tsx:253 +#: src/tables/part/PartPurchaseOrdersTable.tsx:31 +#: src/tables/stock/StockItemTable.tsx:222 +#: src/tables/stock/StockTrackingTable.tsx:111 +msgid "Purchase Order" +msgstr "Ordine d'acquisto" #: src/components/render/ModelType.tsx:162 -msgid "Sales Order Shipments" -msgstr "" +#: src/pages/Index/Settings/SystemSettings.tsx:249 +#: src/pages/company/CompanyDetail.tsx:196 +#: src/pages/company/SupplierPartDetail.tsx:249 +#: src/pages/part/PartDetail.tsx:683 +#: src/pages/purchasing/PurchasingIndex.tsx:25 +msgid "Purchase Orders" +msgstr "Ordini d'acquisto" -#: src/components/render/ModelType.tsx:168 -#: src/pages/sales/ReturnOrderDetail.tsx:469 -#: src/tables/stock/StockTrackingTable.tsx:129 -msgid "Return Order" -msgstr "" +#: src/components/render/ModelType.tsx:171 +msgid "Purchase Order Line" +msgstr "Riga ordine di acquisto" -#: src/components/render/ModelType.tsx:169 -#: src/pages/Index/Settings/SystemSettings.tsx:286 -#: src/pages/company/CompanyDetail.tsx:223 -#: src/pages/sales/SalesIndex.tsx:32 -msgid "Return Orders" -msgstr "" +#: src/components/render/ModelType.tsx:172 +msgid "Purchase Order Lines" +msgstr "Righe ordine di acquisto" #: src/components/render/ModelType.tsx:177 -msgid "Return Order Line Item" -msgstr "" +#: src/pages/build/BuildDetail.tsx:148 +#: src/pages/part/pricing/SaleHistoryPanel.tsx:24 +#: src/pages/sales/SalesOrderDetail.tsx:515 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:92 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:341 +#: src/pages/stock/StockDetail.tsx:262 +#: src/tables/sales/SalesOrderAllocationTable.tsx:80 +#: src/tables/stock/StockTrackingTable.tsx:122 +msgid "Sales Order" +msgstr "Ordine di Vendita" #: src/components/render/ModelType.tsx:178 +#: src/pages/Index/Settings/SystemSettings.tsx:264 +#: src/pages/company/CompanyDetail.tsx:216 +#: src/pages/part/PartDetail.tsx:695 +#: src/pages/sales/SalesIndex.tsx:26 +msgid "Sales Orders" +msgstr "Ordini di Vendita" + +#: src/components/render/ModelType.tsx:187 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:340 +msgid "Sales Order Shipment" +msgstr "Spedizione dell'ordine di vendita" + +#: src/components/render/ModelType.tsx:188 +msgid "Sales Order Shipments" +msgstr "Spedizioni dell'ordine di vendita" + +#: src/components/render/ModelType.tsx:195 +#: src/pages/sales/ReturnOrderDetail.tsx:464 +#: src/tables/stock/StockTrackingTable.tsx:133 +msgid "Return Order" +msgstr "Ordine di reso" + +#: src/components/render/ModelType.tsx:196 +#: src/pages/Index/Settings/SystemSettings.tsx:280 +#: src/pages/company/CompanyDetail.tsx:223 +#: src/pages/part/PartDetail.tsx:702 +#: src/pages/sales/SalesIndex.tsx:32 +msgid "Return Orders" +msgstr "Ordini di reso" + +#: src/components/render/ModelType.tsx:205 +msgid "Return Order Line Item" +msgstr "Articolo Linea Ordine Reso" + +#: src/components/render/ModelType.tsx:206 msgid "Return Order Line Items" -msgstr "" +msgstr "Articoli Linea Ordine Reso" -#: src/components/render/ModelType.tsx:182 -#: src/tables/company/AddressTable.tsx:47 +#: src/components/render/ModelType.tsx:211 +#: src/tables/company/AddressTable.tsx:48 msgid "Address" -msgstr "" +msgstr "Indirizzo" -#: src/components/render/ModelType.tsx:183 -#: src/pages/company/CompanyDetail.tsx:253 +#: src/components/render/ModelType.tsx:212 +#: src/pages/company/CompanyDetail.tsx:255 msgid "Addresses" -msgstr "" +msgstr "Indirizzi" -#: src/components/render/ModelType.tsx:189 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:195 -#: src/pages/sales/ReturnOrderDetail.tsx:174 -#: src/pages/sales/SalesOrderDetail.tsx:183 +#: src/components/render/ModelType.tsx:219 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:196 +#: src/pages/sales/ReturnOrderDetail.tsx:166 +#: src/pages/sales/SalesOrderDetail.tsx:178 msgid "Contact" msgstr "" -#: src/components/render/ModelType.tsx:190 -#: src/pages/company/CompanyDetail.tsx:247 +#: src/components/render/ModelType.tsx:220 +#: src/pages/company/CompanyDetail.tsx:249 msgid "Contacts" msgstr "" -#: src/components/render/ModelType.tsx:196 +#: src/components/render/ModelType.tsx:227 msgid "Owner" msgstr "" -#: src/components/render/ModelType.tsx:197 +#: src/components/render/ModelType.tsx:228 msgid "Owners" msgstr "" -#: src/components/render/ModelType.tsx:203 -#: src/tables/settings/ImportSessionTable.tsx:121 -#: src/tables/stock/StockItemTestResultTable.tsx:198 -#: src/tables/stock/StockTrackingTable.tsx:195 +#: src/components/render/ModelType.tsx:234 +#~ msgid "Purchase Order Line Item" +#~ msgstr "Purchase Order Line Item" + +#: src/components/render/ModelType.tsx:235 +#: src/tables/settings/BarcodeScanHistoryTable.tsx:80 +#: src/tables/settings/BarcodeScanHistoryTable.tsx:211 +#: src/tables/settings/ImportSessionTable.tsx:120 +#: src/tables/settings/StocktakeReportTable.tsx:44 +#: src/tables/stock/StockItemTestResultTable.tsx:204 +#: src/tables/stock/StockTrackingTable.tsx:181 +#: src/tables/stock/StockTrackingTable.tsx:210 msgid "User" msgstr "" -#: src/components/render/ModelType.tsx:204 -#: src/pages/Index/Settings/AdminCenter/Index.tsx:98 +#: src/components/render/ModelType.tsx:236 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:109 #: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:13 msgid "Users" msgstr "" -#: src/components/render/ModelType.tsx:210 +#: src/components/render/ModelType.tsx:243 msgid "Group" msgstr "" -#: src/components/render/ModelType.tsx:211 +#: src/components/render/ModelType.tsx:244 #: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:20 -#: src/tables/settings/UserTable.tsx:138 -#: src/tables/settings/UserTable.tsx:201 +#: src/tables/settings/UserTable.tsx:137 +#: src/tables/settings/UserTable.tsx:200 msgid "Groups" msgstr "" -#: src/components/render/ModelType.tsx:218 +#: src/components/render/ModelType.tsx:252 msgid "Import Session" msgstr "" -#: src/components/render/ModelType.tsx:219 +#: src/components/render/ModelType.tsx:253 msgid "Import Sessions" msgstr "" -#: src/components/render/ModelType.tsx:225 +#: src/components/render/ModelType.tsx:260 msgid "Label Template" msgstr "" -#: src/components/render/ModelType.tsx:226 -#: src/pages/Index/Settings/AdminCenter/Index.tsx:158 +#: src/components/render/ModelType.tsx:261 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:187 msgid "Label Templates" msgstr "" -#: src/components/render/ModelType.tsx:232 +#: src/components/render/ModelType.tsx:264 +#~ msgid "Unknown Model" +#~ msgstr "Unknown Model" + +#: src/components/render/ModelType.tsx:268 msgid "Report Template" msgstr "" -#: src/components/render/ModelType.tsx:233 -#: src/pages/Index/Settings/AdminCenter/Index.tsx:164 +#: src/components/render/ModelType.tsx:269 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:193 msgid "Report Templates" msgstr "" -#: src/components/render/ModelType.tsx:239 -msgid "Plugin Configuration" -msgstr "" - -#: src/components/render/ModelType.tsx:240 +#: src/components/render/ModelType.tsx:277 msgid "Plugin Configurations" msgstr "" +#: src/components/render/ModelType.tsx:284 +msgid "Content Type" +msgstr "" + +#: src/components/render/ModelType.tsx:285 +msgid "Content Types" +msgstr "" + +#: src/components/render/ModelType.tsx:291 +#: src/tables/machine/MachineListTable.tsx:351 +#: src/tables/machine/MachineTypeTable.tsx:282 +msgid "Errors" +msgstr "" + +#: src/components/render/ModelType.tsx:307 +#~ msgid "Purchase Order Line Items" +#~ msgstr "Purchase Order Line Items" + +#: src/components/render/ModelType.tsx:337 +#~ msgid "Unknown Models" +#~ msgstr "Unknown Models" + #: src/components/render/Order.tsx:121 +#: src/tables/sales/SalesOrderAllocationTable.tsx:136 msgid "Shipment" msgstr "" #: src/components/render/Part.tsx:25 #: src/components/render/Plugin.tsx:17 -#: src/pages/company/CompanyDetail.tsx:325 -#: src/pages/company/SupplierPartDetail.tsx:360 -#: src/pages/part/PartDetail.tsx:879 +#: src/pages/company/CompanyDetail.tsx:307 +#: src/pages/company/SupplierPartDetail.tsx:349 +#: src/pages/part/PartDetail.tsx:911 msgid "Inactive" msgstr "" @@ -1736,39 +2335,38 @@ msgstr "" msgid "No stock" msgstr "" -#: src/components/render/Part.tsx:30 -#: src/defaults/links.tsx:30 -#: src/defaults/menuItems.tsx:38 -#: src/pages/Index/Settings/SystemSettings.tsx:206 -#: src/pages/part/PartDetail.tsx:543 -#: src/pages/stock/LocationDetail.tsx:367 -#: src/pages/stock/StockDetail.tsx:411 -#: src/tables/stock/StockItemTable.tsx:68 -msgid "Stock" -msgstr "" - -#: src/components/render/Stock.tsx:60 -#: src/pages/stock/StockDetail.tsx:150 -#: src/pages/stock/StockDetail.tsx:581 -#: src/tables/build/BuildAllocatedStockTable.tsx:102 -#: src/tables/sales/SalesOrderAllocationTable.tsx:80 +#: src/components/render/Stock.tsx:61 +#: src/forms/ReturnOrderForms.tsx:190 +#: src/pages/stock/StockDetail.tsx:166 +#: src/pages/stock/StockDetail.tsx:771 +#: src/tables/build/BuildAllocatedStockTable.tsx:123 +#: src/tables/build/BuildOutputTable.tsx:81 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:114 +#: src/tables/sales/SalesOrderAllocationTable.tsx:106 msgid "Serial Number" msgstr "" -#: src/components/render/Stock.tsx:62 -#: src/forms/BuildForms.tsx:218 -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/pages/part/pricing/BomPricingPanel.tsx:109 +#: src/components/render/Stock.tsx:63 +#: src/forms/BuildForms.tsx:206 +#: src/forms/BuildForms.tsx:515 +#: src/forms/PurchaseOrderForms.tsx:689 +#: src/forms/SalesOrderForms.tsx:248 +#: src/pages/part/PartSchedulingDetail.tsx:80 +#: src/pages/part/PartStocktakeDetail.tsx:60 +#: src/pages/part/PartStocktakeDetail.tsx:234 +#: src/pages/part/PartStocktakeDetail.tsx:252 +#: src/pages/part/pricing/BomPricingPanel.tsx:148 #: src/pages/part/pricing/PriceBreakPanel.tsx:89 -#: src/pages/part/pricing/PriceBreakPanel.tsx:171 -#: src/pages/stock/StockDetail.tsx:145 -#: src/pages/stock/StockDetail.tsx:587 -#: src/tables/build/BuildOrderTestTable.tsx:197 -#: src/tables/part/PartPurchaseOrdersTable.tsx:92 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:143 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:171 +#: src/pages/part/pricing/PriceBreakPanel.tsx:172 +#: src/pages/stock/StockDetail.tsx:161 +#: src/pages/stock/StockDetail.tsx:777 +#: src/tables/build/BuildLineTable.tsx:79 +#: src/tables/build/BuildOrderTestTable.tsx:198 +#: src/tables/part/PartPurchaseOrdersTable.tsx:93 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:146 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:177 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:77 -#: src/tables/stock/StockTrackingTable.tsx:59 +#: src/tables/stock/StockTrackingTable.tsx:63 msgid "Quantity" msgstr "" @@ -1842,10 +2440,6 @@ msgstr "" #~ msgid "Required Part" #~ msgstr "Required Part" -#: src/components/tables/build/BuildLineTable.tsx:152 -#~ msgid "Required Quantity" -#~ msgstr "Required Quantity" - #: src/components/tables/build/BuildOrderTable.tsx:52 #~ msgid "Progress" #~ msgstr "Progress" @@ -2126,14 +2720,6 @@ msgstr "" #~ msgid "user deleted" #~ msgstr "user deleted" -#: src/components/tables/settings/UserTable.tsx:168 -#~ msgid "First Name" -#~ msgstr "First Name" - -#: src/components/tables/settings/UserTable.tsx:173 -#~ msgid "Last Name" -#~ msgstr "Last Name" - #: src/components/tables/stock/StockItemTable.tsx:247 #~ msgid "Test Filter" #~ msgstr "Test Filter" @@ -2146,36 +2732,21 @@ msgstr "" #~ msgid "Stock location updated" #~ msgstr "Stock location updated" -#: src/components/widgets/DisplayWidget.tsx:11 -#: src/pages/Index/Settings/AccountSettings/DisplaySettingsPanel.tsx:17 -msgid "Display Settings" -msgstr "" - -#: src/components/widgets/DisplayWidget.tsx:15 -#: src/pages/Index/Settings/AccountSettings/DisplaySettingsPanel.tsx:23 -msgid "Color Mode" -msgstr "" - -#: src/components/widgets/DisplayWidget.tsx:21 -#: src/pages/Index/Settings/AccountSettings/DisplaySettingsPanel.tsx:33 -msgid "Language" -msgstr "" - #: src/components/widgets/FeedbackWidget.tsx:19 -msgid "Something is new: Platform UI" -msgstr "" +#~ msgid "Something is new: Platform UI" +#~ msgstr "Something is new: Platform UI" #: src/components/widgets/FeedbackWidget.tsx:21 -msgid "We are building a new UI with a modern stack. What you currently see is not fixed and will be redesigned but demonstrates the UI/UX possibilities we will have going forward." -msgstr "" +#~ msgid "We are building a new UI with a modern stack. What you currently see is not fixed and will be redesigned but demonstrates the UI/UX possibilities we will have going forward." +#~ msgstr "We are building a new UI with a modern stack. What you currently see is not fixed and will be redesigned but demonstrates the UI/UX possibilities we will have going forward." #: src/components/widgets/FeedbackWidget.tsx:32 -msgid "Provide Feedback" -msgstr "" +#~ msgid "Provide Feedback" +#~ msgstr "Provide Feedback" #: src/components/widgets/GetStartedWidget.tsx:11 -msgid "Getting started" -msgstr "" +#~ msgid "Getting started" +#~ msgstr "Getting started" #: src/components/widgets/MarkdownEditor.tsx:108 #~ msgid "Failed to upload image" @@ -2186,28 +2757,24 @@ msgstr "" #~ msgstr "Notes saved" #: src/components/widgets/WidgetLayout.tsx:166 -msgid "Layout" -msgstr "" +#~ msgid "Layout" +#~ msgstr "Layout" #: src/components/widgets/WidgetLayout.tsx:172 -msgid "Reset Layout" -msgstr "" +#~ msgid "Reset Layout" +#~ msgstr "Reset Layout" #: src/components/widgets/WidgetLayout.tsx:185 -msgid "Stop Edit" -msgstr "" - -#: src/components/widgets/WidgetLayout.tsx:185 -msgid "Edit Layout" -msgstr "" +#~ msgid "Stop Edit" +#~ msgstr "Stop Edit" #: src/components/widgets/WidgetLayout.tsx:191 -msgid "Appearance" -msgstr "" +#~ msgid "Appearance" +#~ msgstr "Appearance" #: src/components/widgets/WidgetLayout.tsx:203 -msgid "Show Boxes" -msgstr "" +#~ msgid "Show Boxes" +#~ msgstr "Show Boxes" #: src/contexts/LanguageContext.tsx:20 msgid "Arabic" @@ -2243,244 +2810,218 @@ msgstr "" #: src/contexts/LanguageContext.tsx:28 msgid "Spanish (Mexican)" -msgstr "" +msgstr "Spagnolo (Messicano)" #: src/contexts/LanguageContext.tsx:29 msgid "Estonian" -msgstr "" +msgstr "Estone" #: src/contexts/LanguageContext.tsx:30 msgid "Farsi / Persian" -msgstr "" +msgstr "Farsi / Persiano" #: src/contexts/LanguageContext.tsx:31 msgid "Finnish" -msgstr "" +msgstr "Finlandese" #: src/contexts/LanguageContext.tsx:32 msgid "French" -msgstr "" +msgstr "Francese" #: src/contexts/LanguageContext.tsx:33 msgid "Hebrew" -msgstr "" +msgstr "Ebraico" #: src/contexts/LanguageContext.tsx:34 msgid "Hindi" -msgstr "" +msgstr "Hindi" #: src/contexts/LanguageContext.tsx:35 msgid "Hungarian" -msgstr "" +msgstr "Ungherese" #: src/contexts/LanguageContext.tsx:36 msgid "Italian" -msgstr "" +msgstr "Italiano" #: src/contexts/LanguageContext.tsx:37 msgid "Japanese" -msgstr "" +msgstr "Giapponese" #: src/contexts/LanguageContext.tsx:38 msgid "Korean" -msgstr "" +msgstr "Coreano" #: src/contexts/LanguageContext.tsx:39 -msgid "Latvian" +msgid "Lithuanian" msgstr "" #: src/contexts/LanguageContext.tsx:40 -msgid "Dutch" -msgstr "" +msgid "Latvian" +msgstr "Lettone" #: src/contexts/LanguageContext.tsx:41 -msgid "Norwegian" -msgstr "" +msgid "Dutch" +msgstr "Olandese" #: src/contexts/LanguageContext.tsx:42 -msgid "Polish" -msgstr "" +msgid "Norwegian" +msgstr "Norvegese" #: src/contexts/LanguageContext.tsx:43 -msgid "Portuguese" -msgstr "" +msgid "Polish" +msgstr "Polacco" #: src/contexts/LanguageContext.tsx:44 -msgid "Portuguese (Brazilian)" -msgstr "" +msgid "Portuguese" +msgstr "Portoghese" #: src/contexts/LanguageContext.tsx:45 -msgid "Romanian" -msgstr "" +msgid "Portuguese (Brazilian)" +msgstr "Portoghese (Brasiliano)" #: src/contexts/LanguageContext.tsx:46 -msgid "Russian" -msgstr "" +msgid "Romanian" +msgstr "Rumeno" #: src/contexts/LanguageContext.tsx:47 -msgid "Slovak" -msgstr "" +msgid "Russian" +msgstr "Russo" #: src/contexts/LanguageContext.tsx:48 -msgid "Slovenian" -msgstr "" +msgid "Slovak" +msgstr "Slovacco" #: src/contexts/LanguageContext.tsx:49 -msgid "Swedish" -msgstr "" +msgid "Slovenian" +msgstr "Sloveno" #: src/contexts/LanguageContext.tsx:50 -msgid "Thai" -msgstr "" +msgid "Swedish" +msgstr "Svedese" #: src/contexts/LanguageContext.tsx:51 -msgid "Turkish" -msgstr "" +msgid "Thai" +msgstr "Thailandese" #: src/contexts/LanguageContext.tsx:52 -msgid "Ukrainian" -msgstr "" +msgid "Turkish" +msgstr "Turco" #: src/contexts/LanguageContext.tsx:53 -msgid "Vietnamese" -msgstr "" +msgid "Ukrainian" +msgstr "Ucraino" #: src/contexts/LanguageContext.tsx:54 -msgid "Chinese (Simplified)" -msgstr "" +msgid "Vietnamese" +msgstr "Vietnamese" #: src/contexts/LanguageContext.tsx:55 +msgid "Chinese (Simplified)" +msgstr "Cinese (Semplificato)" + +#: src/contexts/LanguageContext.tsx:56 msgid "Chinese (Traditional)" -msgstr "" +msgstr "Cinese (Tradizionale)" + +#: src/defaults/actions.tsx:18 +msgid "Go to the InvenTree dashboard" +msgstr "Vai alla bacheca InvenTree" #: src/defaults/actions.tsx:18 #: src/defaults/links.tsx:27 #: src/defaults/menuItems.tsx:9 -msgid "Home" -msgstr "" +#~ msgid "Home" +#~ msgstr "Home" #: src/defaults/actions.tsx:25 -#: src/defaults/links.tsx:28 -#: src/defaults/menuItems.tsx:28 -#: src/pages/Index/Dashboard.tsx:19 -#: src/pages/Index/Settings/UserSettings.tsx:46 -msgid "Dashboard" -msgstr "" - -#: src/defaults/actions.tsx:26 -msgid "Go to the InvenTree dashboard" -msgstr "" - -#: src/defaults/actions.tsx:33 msgid "Visit the documentation to learn more about InvenTree" -msgstr "" +msgstr "Visita la documentazione per saperne di più su InvenTree" + +#: src/defaults/actions.tsx:31 +#: src/defaults/links.tsx:92 +#: src/defaults/links.tsx:124 +msgid "About InvenTree" +msgstr "Informazioni su InvenTree" + +#: src/defaults/actions.tsx:32 +msgid "About the InvenTree org" +msgstr "Informazioni su InvenTree org" + +#: src/defaults/actions.tsx:38 +msgid "Server Information" +msgstr "Informazioni sul Server" #: src/defaults/actions.tsx:39 -#: src/defaults/links.tsx:98 -#: src/defaults/links.tsx:128 -msgid "About InvenTree" -msgstr "" +#: src/defaults/links.tsx:118 +msgid "About this Inventree instance" +msgstr "Informazioni su questa istanza di Inventree" -#: src/defaults/actions.tsx:40 -#: src/defaults/links.tsx:129 -msgid "About the InvenTree org" -msgstr "" +#: src/defaults/actions.tsx:45 +#: src/defaults/links.tsx:105 +#: src/defaults/links.tsx:131 +msgid "License Information" +msgstr "Informazioni sulla licenza" #: src/defaults/actions.tsx:46 -msgid "Server Information" -msgstr "" +msgid "Licenses for dependencies of the service" +msgstr "Licenze per dipendenze del servizio" -#: src/defaults/actions.tsx:47 -#: src/defaults/links.tsx:123 -msgid "About this Inventree instance" +#: src/defaults/actions.tsx:52 +msgid "Open Navigation" msgstr "" #: src/defaults/actions.tsx:53 -#: src/defaults/links.tsx:111 -msgid "License Information" -msgstr "" - -#: src/defaults/actions.tsx:54 -#: src/defaults/links.tsx:135 -msgid "Licenses for dependencies of the service" -msgstr "" - -#: src/defaults/actions.tsx:61 msgid "Open the main navigation menu" -msgstr "" +msgstr "Apri il menu di navigazione principale" -#: src/defaults/actions.tsx:72 +#: src/defaults/actions.tsx:64 msgid "Go to the Admin Center" -msgstr "" - -#: src/defaults/dashboardItems.tsx:15 -msgid "Subscribed Parts" -msgstr "" - -#: src/defaults/dashboardItems.tsx:22 -msgid "Subscribed Categories" -msgstr "" +msgstr "Vai al centro di amministrazione" #: src/defaults/dashboardItems.tsx:29 -msgid "Latest Parts" -msgstr "" +#~ msgid "Latest Parts" +#~ msgstr "Latest Parts" #: src/defaults/dashboardItems.tsx:36 -msgid "BOM Waiting Validation" -msgstr "" +#~ msgid "BOM Waiting Validation" +#~ msgstr "BOM Waiting Validation" #: src/defaults/dashboardItems.tsx:43 -msgid "Recently Updated" -msgstr "" - -#: src/defaults/dashboardItems.tsx:50 -#: src/tables/part/PartTable.tsx:238 -msgid "Low Stock" -msgstr "" +#~ msgid "Recently Updated" +#~ msgstr "Recently Updated" #: src/defaults/dashboardItems.tsx:57 -msgid "Depleted Stock" -msgstr "" +#~ msgid "Depleted Stock" +#~ msgstr "Depleted Stock" #: src/defaults/dashboardItems.tsx:64 -msgid "Required for Build Orders" -msgstr "" +#~ msgid "Required for Build Orders" +#~ msgstr "Required for Build Orders" #: src/defaults/dashboardItems.tsx:71 -msgid "Expired Stock" -msgstr "" +#~ msgid "Expired Stock" +#~ msgstr "Expired Stock" #: src/defaults/dashboardItems.tsx:78 -msgid "Stale Stock" -msgstr "" +#~ msgid "Stale Stock" +#~ msgstr "Stale Stock" #: src/defaults/dashboardItems.tsx:85 -msgid "Build Orders In Progress" -msgstr "" - -#: src/defaults/dashboardItems.tsx:92 -msgid "Overdue Build Orders" -msgstr "" +#~ msgid "Build Orders In Progress" +#~ msgstr "Build Orders In Progress" #: src/defaults/dashboardItems.tsx:99 -msgid "Outstanding Purchase Orders" -msgstr "" - -#: src/defaults/dashboardItems.tsx:106 -msgid "Overdue Purchase Orders" -msgstr "" +#~ msgid "Outstanding Purchase Orders" +#~ msgstr "Outstanding Purchase Orders" #: src/defaults/dashboardItems.tsx:113 -msgid "Outstanding Sales Orders" -msgstr "" - -#: src/defaults/dashboardItems.tsx:120 -msgid "Overdue Sales Orders" -msgstr "" +#~ msgid "Outstanding Sales Orders" +#~ msgstr "Outstanding Sales Orders" #: src/defaults/dashboardItems.tsx:127 -msgid "Current News" -msgstr "" +#~ msgid "Current News" +#~ msgstr "Current News" #: src/defaults/defaultHostList.tsx:8 #~ msgid "InvenTree Demo" @@ -2490,98 +3031,81 @@ msgstr "" #~ msgid "Local Server" #~ msgstr "Local Server" -#: src/defaults/links.tsx:12 -#: src/pages/company/CompanyDetail.tsx:96 -msgid "Website" -msgstr "" - #: src/defaults/links.tsx:17 -msgid "GitHub" -msgstr "" +#~ msgid "GitHub" +#~ msgstr "GitHub" #: src/defaults/links.tsx:22 -msgid "Demo" -msgstr "" - -#: src/defaults/links.tsx:33 -#: src/defaults/menuItems.tsx:48 -#: src/pages/company/ManufacturerDetail.tsx:9 -#: src/pages/company/ManufacturerPartDetail.tsx:263 -#: src/pages/company/SupplierDetail.tsx:9 -#: src/pages/company/SupplierPartDetail.tsx:347 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:483 -#: src/pages/purchasing/PurchasingIndex.tsx:60 -msgid "Purchasing" -msgstr "" - -#: src/defaults/links.tsx:37 -#: src/defaults/menuItems.tsx:53 -#: src/pages/company/CustomerDetail.tsx:9 -#: src/pages/sales/ReturnOrderDetail.tsx:474 -#: src/pages/sales/SalesIndex.tsx:53 -#: src/pages/sales/SalesOrderDetail.tsx:525 -msgid "Sales" -msgstr "" +#~ msgid "Demo" +#~ msgstr "Demo" #: src/defaults/links.tsx:41 #: src/defaults/menuItems.tsx:71 #: src/pages/Index/Playground.tsx:217 -msgid "Playground" -msgstr "" +#~ msgid "Playground" +#~ msgstr "Playground" -#: src/defaults/links.tsx:55 -msgid "Getting Started" -msgstr "" - -#: src/defaults/links.tsx:56 -msgid "Getting started with InvenTree" -msgstr "" - -#: src/defaults/links.tsx:62 +#: src/defaults/links.tsx:45 msgid "API" msgstr "" -#: src/defaults/links.tsx:63 +#: src/defaults/links.tsx:48 msgid "InvenTree API documentation" msgstr "" -#: src/defaults/links.tsx:68 +#: src/defaults/links.tsx:52 msgid "Developer Manual" msgstr "" -#: src/defaults/links.tsx:69 +#: src/defaults/links.tsx:55 msgid "InvenTree developer manual" msgstr "" -#: src/defaults/links.tsx:74 +#: src/defaults/links.tsx:59 msgid "FAQ" msgstr "" -#: src/defaults/links.tsx:75 +#: src/defaults/links.tsx:62 msgid "Frequently asked questions" msgstr "" +#: src/defaults/links.tsx:66 +msgid "GitHub Repository" +msgstr "" + +#: src/defaults/links.tsx:69 +msgid "InvenTree source code on GitHub" +msgstr "" + #: src/defaults/links.tsx:76 #~ msgid "Instance" #~ msgstr "Instance" +#: src/defaults/links.tsx:79 +#: src/defaults/links.tsx:117 +msgid "System Information" +msgstr "" + #: src/defaults/links.tsx:83 #~ msgid "InvenTree" #~ msgstr "InvenTree" -#: src/defaults/links.tsx:85 -#: src/defaults/links.tsx:122 -msgid "System Information" -msgstr "" - #: src/defaults/links.tsx:117 #~ msgid "Licenses for packages used by InvenTree" #~ msgstr "Licenses for packages used by InvenTree" -#: src/defaults/links.tsx:134 -msgid "Licenses" +#: src/defaults/links.tsx:125 +msgid "About the InvenTree Project" msgstr "" +#: src/defaults/links.tsx:132 +msgid "Licenses for dependencies of the InvenTree software" +msgstr "" + +#: src/defaults/links.tsx:134 +#~ msgid "Licenses" +#~ msgstr "Licenses" + #: src/defaults/menuItems.tsx:7 #~ msgid "Open sourcea" #~ msgstr "Open sourcea" @@ -2607,8 +3131,8 @@ msgstr "" #~ msgstr "Profile page" #: src/defaults/menuItems.tsx:17 -msgid "User attributes and design settings." -msgstr "" +#~ msgid "User attributes and design settings." +#~ msgstr "User attributes and design settings." #: src/defaults/menuItems.tsx:21 #~ msgid "Free for everyone" @@ -2619,8 +3143,8 @@ msgstr "" #~ msgstr "The fluid of Smeargle’s tail secretions changes" #: src/defaults/menuItems.tsx:23 -msgid "View for interactive scanning and multiple actions." -msgstr "" +#~ msgid "View for interactive scanning and multiple actions." +#~ msgstr "View for interactive scanning and multiple actions." #: src/defaults/menuItems.tsx:24 #~ msgid "The fluid of Smeargle’s tail secretions changes in the intensity" @@ -2698,51 +3222,130 @@ msgstr "" #~ msgid "Are you sure you want to delete this attachment?" #~ msgstr "Are you sure you want to delete this attachment?" -#: src/forms/BuildForms.tsx:158 -msgid "Next serial number" +#: src/forms/BuildForms.tsx:248 +#~ msgid "Remove output" +#~ msgstr "Remove output" + +#: src/forms/BuildForms.tsx:269 +#: src/tables/build/BuildAllocatedStockTable.tsx:147 +#: src/tables/build/BuildOrderTestTable.tsx:177 +#: src/tables/build/BuildOrderTestTable.tsx:201 +#: src/tables/build/BuildOutputTable.tsx:460 +msgid "Build Output" msgstr "" -#: src/forms/BuildForms.tsx:162 -msgid "Latest serial number" +#: src/forms/BuildForms.tsx:269 +#: src/forms/BuildForms.tsx:337 +#: src/forms/BuildForms.tsx:385 +#: src/tables/build/BuildLineTable.tsx:89 +msgid "Batch" msgstr "" -#: src/forms/BuildForms.tsx:234 -msgid "Remove output" +#: src/forms/BuildForms.tsx:269 +#: src/forms/BuildForms.tsx:337 +#: src/forms/BuildForms.tsx:385 +#: src/forms/PurchaseOrderForms.tsx:603 +#: src/pages/build/BuildDetail.tsx:104 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:142 +#: src/pages/sales/ReturnOrderDetail.tsx:113 +#: src/pages/sales/SalesOrderDetail.tsx:122 +#: src/tables/build/BuildOrderTable.tsx:125 +#: src/tables/machine/MachineListTable.tsx:336 +#: src/tables/part/PartPurchaseOrdersTable.tsx:37 +#: src/tables/purchasing/PurchaseOrderTable.tsx:58 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:157 +#: src/tables/sales/ReturnOrderTable.tsx:56 +#: src/tables/sales/SalesOrderTable.tsx:56 +#: src/tables/settings/CustomStateTable.tsx:57 +#: src/tables/settings/ImportSessionTable.tsx:114 +#: src/tables/stock/StockItemTable.tsx:298 +#: src/tables/stock/StockTrackingTable.tsx:56 +msgid "Status" msgstr "" -#: src/forms/BuildForms.tsx:316 +#: src/forms/BuildForms.tsx:289 msgid "Complete Build Outputs" msgstr "" -#: src/forms/BuildForms.tsx:320 +#: src/forms/BuildForms.tsx:292 msgid "Build outputs have been completed" msgstr "" -#: src/forms/BuildForms.tsx:389 +#: src/forms/BuildForms.tsx:353 msgid "Scrap Build Outputs" msgstr "" -#: src/forms/BuildForms.tsx:393 +#: src/forms/BuildForms.tsx:356 msgid "Build outputs have been scrapped" msgstr "" -#: src/forms/BuildForms.tsx:425 -#: src/forms/BuildForms.tsx:449 +#: src/forms/BuildForms.tsx:393 msgid "Cancel Build Outputs" msgstr "" -#: src/forms/BuildForms.tsx:426 -msgid "Selected build outputs will be deleted" +#: src/forms/BuildForms.tsx:396 +msgid "Build outputs have been cancelled" msgstr "" -#: src/forms/BuildForms.tsx:453 -msgid "Build outputs have been cancelled" +#: src/forms/BuildForms.tsx:408 +#~ msgid "Selected build outputs will be deleted" +#~ msgstr "Selected build outputs will be deleted" + +#: src/forms/BuildForms.tsx:470 +#~ msgid "Remove line" +#~ msgstr "Remove line" + +#: src/forms/BuildForms.tsx:515 +#: src/forms/SalesOrderForms.tsx:248 +#: src/tables/build/BuildLineTable.tsx:174 +#: src/tables/sales/SalesOrderLineItemTable.tsx:276 +#: src/tables/stock/StockItemTable.tsx:309 +msgid "Allocated" +msgstr "" + +#: src/forms/BuildForms.tsx:545 +#: src/forms/SalesOrderForms.tsx:239 +#: src/pages/build/BuildDetail.tsx:208 +msgid "Source Location" +msgstr "" + +#: src/forms/BuildForms.tsx:546 +#: src/forms/SalesOrderForms.tsx:240 +msgid "Select the source location for the stock allocation" +msgstr "" + +#: src/forms/BuildForms.tsx:566 +#: src/forms/SalesOrderForms.tsx:274 +#: src/tables/build/BuildLineTable.tsx:442 +#: src/tables/build/BuildLineTable.tsx:569 +#: src/tables/build/BuildLineTable.tsx:642 +#: src/tables/sales/SalesOrderLineItemTable.tsx:302 +#: src/tables/sales/SalesOrderLineItemTable.tsx:326 +msgid "Allocate Stock" +msgstr "" + +#: src/forms/BuildForms.tsx:569 +#: src/forms/SalesOrderForms.tsx:279 +msgid "Stock items allocated" msgstr "" #: src/forms/CompanyForms.tsx:150 #~ msgid "Company updated" #~ msgstr "Company updated" +#: src/forms/PartForms.tsx:67 +#: src/forms/PartForms.tsx:154 +#: src/pages/part/CategoryDetail.tsx:117 +#: src/pages/part/PartDetail.tsx:384 +#: src/tables/part/PartCategoryTable.tsx:90 +#: src/tables/part/PartTable.tsx:294 +msgid "Subscribed" +msgstr "" + +#: src/forms/PartForms.tsx:68 +msgid "Subscribe to notifications for this part" +msgstr "" + #: src/forms/PartForms.tsx:106 #~ msgid "Create Part" #~ msgstr "Create Part" @@ -2751,191 +3354,190 @@ msgstr "" #~ msgid "Part created" #~ msgstr "Part created" -#: src/forms/PartForms.tsx:124 -msgid "Parent part category" -msgstr "" - #: src/forms/PartForms.tsx:129 #~ msgid "Part updated" #~ msgstr "Part updated" -#: src/forms/PurchaseOrderForms.tsx:300 +#: src/forms/PartForms.tsx:140 +msgid "Parent part category" +msgstr "" + +#: src/forms/PartForms.tsx:155 +msgid "Subscribe to notifications for this category" +msgstr "" + +#: src/forms/PurchaseOrderForms.tsx:314 +msgid "Assign Batch Code and Serial Numbers" +msgstr "" + +#: src/forms/PurchaseOrderForms.tsx:316 +msgid "Assign Batch Code" +msgstr "" + +#: src/forms/PurchaseOrderForms.tsx:336 msgid "Choose Location" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:308 +#: src/forms/PurchaseOrderForms.tsx:344 msgid "Item Destination selected" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:317 +#: src/forms/PurchaseOrderForms.tsx:353 msgid "Part category default location selected" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:327 +#: src/forms/PurchaseOrderForms.tsx:363 msgid "Received stock location selected" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:332 +#: src/forms/PurchaseOrderForms.tsx:368 msgid "Default location selected" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:343 -#: src/forms/PurchaseOrderForms.tsx:435 -msgid "Scan Barcode" -msgstr "" +#: src/forms/PurchaseOrderForms.tsx:421 +#~ msgid "Assign Batch Code{0}" +#~ msgstr "Assign Batch Code{0}" -#: src/forms/PurchaseOrderForms.tsx:388 +#: src/forms/PurchaseOrderForms.tsx:427 msgid "Set Location" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:396 -msgid "Assign Batch Code{0}" -msgstr "" - -#: src/forms/PurchaseOrderForms.tsx:405 -#: src/forms/StockForms.tsx:420 +#: src/forms/PurchaseOrderForms.tsx:442 +#: src/forms/StockForms.tsx:539 msgid "Adjust Packaging" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:412 -msgid "Change Status" -msgstr "" - -#: src/forms/PurchaseOrderForms.tsx:418 -msgid "Add Note" -msgstr "" - #: src/forms/PurchaseOrderForms.tsx:444 #: src/forms/StockForms.tsx:428 -msgid "Remove item from list" +#~ msgid "Remove item from list" +#~ msgstr "Remove item from list" + +#: src/forms/PurchaseOrderForms.tsx:450 +msgid "Change Status" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:471 -#: src/forms/StockForms.tsx:499 -#: src/forms/StockForms.tsx:533 -#: src/forms/StockForms.tsx:562 -#: src/forms/StockForms.tsx:590 -#: src/forms/StockForms.tsx:621 -#: src/forms/StockForms.tsx:656 -#: src/forms/StockForms.tsx:698 -#: src/forms/StockForms.tsx:734 -#: src/pages/stock/StockDetail.tsx:181 -#: src/tables/ColumnRenderers.tsx:49 -#: src/tables/stock/StockTrackingTable.tsx:85 +#: src/forms/PurchaseOrderForms.tsx:456 +msgid "Add Note" +msgstr "" + +#: src/forms/PurchaseOrderForms.tsx:503 +#: src/forms/StockForms.tsx:614 +#: src/forms/StockForms.tsx:651 +#: src/forms/StockForms.tsx:677 +#: src/forms/StockForms.tsx:705 +#: src/forms/StockForms.tsx:736 +#: src/forms/StockForms.tsx:771 +#: src/forms/StockForms.tsx:813 +#: src/forms/StockForms.tsx:851 +#: src/pages/stock/StockDetail.tsx:202 +#: src/tables/ColumnRenderers.tsx:60 +#: src/tables/stock/StockTrackingTable.tsx:89 msgid "Location" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:486 +#: src/forms/PurchaseOrderForms.tsx:518 msgid "Store at default location" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:499 +#: src/forms/PurchaseOrderForms.tsx:533 msgid "Store at line item destination" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:509 +#: src/forms/PurchaseOrderForms.tsx:545 msgid "Store with already received stock" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:524 -#: src/pages/build/BuildDetail.tsx:219 -#: src/pages/stock/StockDetail.tsx:162 -#: src/pages/stock/StockDetail.tsx:599 -#: src/tables/build/BuildAllocatedStockTable.tsx:109 -#: src/tables/build/BuildOrderTestTable.tsx:188 -#: src/tables/sales/SalesOrderAllocationTable.tsx:87 +#: src/forms/PurchaseOrderForms.tsx:566 +#: src/pages/build/BuildDetail.tsx:222 +#: src/pages/stock/StockDetail.tsx:185 +#: src/pages/stock/StockDetail.tsx:793 +#: src/tables/build/BuildAllocatedStockTable.tsx:130 +#: src/tables/build/BuildOrderTestTable.tsx:189 +#: src/tables/build/BuildOutputTable.tsx:86 +#: src/tables/sales/SalesOrderAllocationTable.tsx:113 msgid "Batch Code" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:535 -msgid "Serial numbers" +#: src/forms/PurchaseOrderForms.tsx:566 +#~ msgid "Serial numbers" +#~ msgstr "Serial numbers" + +#: src/forms/PurchaseOrderForms.tsx:567 +msgid "Enter batch code for received items" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:544 -#: src/forms/StockForms.tsx:443 -#: src/pages/company/SupplierPartDetail.tsx:156 -#: src/pages/company/SupplierPartDetail.tsx:207 -#: src/pages/stock/StockDetail.tsx:244 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:192 +#: src/forms/PurchaseOrderForms.tsx:579 +#: src/forms/StockForms.tsx:152 +msgid "Serial Numbers" +msgstr "" + +#: src/forms/PurchaseOrderForms.tsx:580 +msgid "Enter serial numbers for received items" +msgstr "" + +#: src/forms/PurchaseOrderForms.tsx:590 +#: src/forms/StockForms.tsx:556 +#: src/pages/company/SupplierPartDetail.tsx:168 +#: src/pages/company/SupplierPartDetail.tsx:219 +#: src/pages/stock/StockDetail.tsx:320 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:198 msgid "Packaging" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:556 -#: src/pages/build/BuildDetail.tsx:109 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:148 -#: src/pages/sales/ReturnOrderDetail.tsx:121 -#: src/pages/sales/SalesOrderDetail.tsx:127 -#: src/tables/build/BuildOrderTable.tsx:122 -#: src/tables/machine/MachineListTable.tsx:335 -#: src/tables/part/PartPurchaseOrdersTable.tsx:37 -#: src/tables/purchasing/PurchaseOrderTable.tsx:55 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:132 -#: src/tables/sales/ReturnOrderTable.tsx:46 -#: src/tables/sales/SalesOrderTable.tsx:53 -#: src/tables/settings/ImportSessionTable.tsx:115 -#: src/tables/stock/StockItemTable.tsx:294 -#: src/tables/stock/StockTrackingTable.tsx:52 -msgid "Status" -msgstr "" - -#: src/forms/PurchaseOrderForms.tsx:564 -#: src/pages/company/SupplierPartDetail.tsx:110 -#: src/tables/ColumnRenderers.tsx:132 +#: src/forms/PurchaseOrderForms.tsx:612 +#: src/pages/company/SupplierPartDetail.tsx:115 +#: src/tables/ColumnRenderers.tsx:143 msgid "Note" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/pages/company/SupplierPartDetail.tsx:128 -#: src/tables/purchasing/SupplierPriceBreakTable.tsx:57 -msgid "SKU" -msgstr "" - -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/tables/part/PartPurchaseOrdersTable.tsx:120 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:178 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:127 -msgid "Received" -msgstr "" - -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/forms/StockForms.tsx:499 -#: src/forms/StockForms.tsx:533 -#: src/forms/StockForms.tsx:562 -#: src/forms/StockForms.tsx:590 -#: src/forms/StockForms.tsx:621 -#: src/forms/StockForms.tsx:656 -#: src/forms/StockForms.tsx:698 -#: src/forms/StockForms.tsx:734 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:413 -#: src/tables/RowActions.tsx:113 -msgid "Actions" -msgstr "" - -#: src/forms/PurchaseOrderForms.tsx:655 -msgid "Receive Line Items" -msgstr "" - #: src/forms/PurchaseOrderForms.tsx:658 #~ msgid "Receive line items" #~ msgstr "Receive line items" -#: src/forms/StockForms.tsx:104 -msgid "Add given quantity as packs instead of individual items" +#: src/forms/PurchaseOrderForms.tsx:689 +#: src/pages/company/SupplierPartDetail.tsx:133 +#: src/tables/purchasing/SupplierPriceBreakTable.tsx:57 +msgid "SKU" +msgstr "" + +#: src/forms/PurchaseOrderForms.tsx:689 +#: src/tables/part/PartPurchaseOrdersTable.tsx:126 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:184 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:247 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:152 +msgid "Received" +msgstr "" + +#: src/forms/PurchaseOrderForms.tsx:701 +msgid "Receive Line Items" +msgstr "" + +#: src/forms/ReturnOrderForms.tsx:201 +msgid "Receive Items" +msgstr "" + +#: src/forms/ReturnOrderForms.tsx:208 +msgid "Item received into stock" +msgstr "" + +#: src/forms/StockForms.tsx:80 +#: src/hooks/UsePlaceholder.tsx:57 +msgid "Next serial number" msgstr "" #: src/forms/StockForms.tsx:110 #~ msgid "Create Stock Item" #~ msgstr "Create Stock Item" -#: src/forms/StockForms.tsx:117 +#: src/forms/StockForms.tsx:131 +msgid "Add given quantity as packs instead of individual items" +msgstr "" + +#: src/forms/StockForms.tsx:145 msgid "Enter initial quantity for this stock item" msgstr "" -#: src/forms/StockForms.tsx:124 -msgid "Serial Numbers" -msgstr "" - -#: src/forms/StockForms.tsx:125 +#: src/forms/StockForms.tsx:154 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" @@ -2943,82 +3545,102 @@ msgstr "" #~ msgid "Stock item updated" #~ msgstr "Stock item updated" -#: src/forms/StockForms.tsx:179 -#: src/pages/stock/StockDetail.tsx:434 -#: src/tables/stock/StockItemTable.tsx:417 -#: src/tables/stock/StockItemTable.tsx:535 +#: src/forms/StockForms.tsx:169 +#: src/pages/stock/StockDetail.tsx:131 +msgid "Stock Status" +msgstr "" + +#: src/forms/StockForms.tsx:218 +#: src/pages/stock/StockDetail.tsx:554 +#: src/tables/stock/StockItemTable.tsx:421 +#: src/tables/stock/StockItemTable.tsx:541 msgid "Add Stock Item" msgstr "" -#: src/forms/StockForms.tsx:362 +#: src/forms/StockForms.tsx:262 +msgid "Select the part to install" +msgstr "" + +#: src/forms/StockForms.tsx:480 msgid "Loading..." msgstr "" -#: src/forms/StockForms.tsx:408 +#: src/forms/StockForms.tsx:527 msgid "Move to default location" msgstr "" -#: src/forms/StockForms.tsx:499 -#: src/forms/StockForms.tsx:533 -#: src/forms/StockForms.tsx:562 -#: src/forms/StockForms.tsx:590 -#: src/forms/StockForms.tsx:621 -#: src/forms/StockForms.tsx:656 -#: src/forms/StockForms.tsx:698 -#: src/forms/StockForms.tsx:734 -#: src/pages/part/PartDetail.tsx:230 -#: src/pages/part/PartDetail.tsx:843 -#: src/tables/stock/StockItemTable.tsx:325 +#: src/forms/StockForms.tsx:614 +#: src/forms/StockForms.tsx:651 +#: src/forms/StockForms.tsx:677 +#: src/forms/StockForms.tsx:705 +#: src/forms/StockForms.tsx:736 +#: src/forms/StockForms.tsx:771 +#: src/forms/StockForms.tsx:813 +#: src/forms/StockForms.tsx:851 +#: src/pages/part/PartDetail.tsx:251 +#: src/pages/part/PartDetail.tsx:875 +#: src/tables/stock/StockItemTable.tsx:329 msgid "In Stock" msgstr "" -#: src/forms/StockForms.tsx:499 +#: src/forms/StockForms.tsx:614 msgid "Move" msgstr "" -#: src/forms/StockForms.tsx:562 -#: src/pages/stock/StockDetail.tsx:518 -#: src/tables/stock/StockItemTestResultTable.tsx:328 +#: src/forms/StockForms.tsx:677 +#: src/pages/stock/StockDetail.tsx:681 +#: src/tables/stock/StockItemTestResultTable.tsx:346 msgid "Add" msgstr "" -#: src/forms/StockForms.tsx:590 -#: src/pages/Index/Scan.tsx:266 -#: src/pages/stock/StockDetail.tsx:508 +#: src/forms/StockForms.tsx:705 +#: src/pages/Index/Scan.tsx:280 +#: src/pages/stock/StockDetail.tsx:670 msgid "Count" msgstr "" -#: src/forms/StockForms.tsx:835 +#: src/forms/StockForms.tsx:953 +#: src/pages/stock/StockDetail.tsx:682 +#: src/tables/stock/StockItemTable.tsx:454 msgid "Add Stock" msgstr "" -#: src/forms/StockForms.tsx:844 +#: src/forms/StockForms.tsx:962 +#: src/pages/stock/StockDetail.tsx:691 +#: src/tables/stock/StockItemTable.tsx:463 msgid "Remove Stock" msgstr "" -#: src/forms/StockForms.tsx:853 -#: src/pages/part/PartDetail.tsx:1017 +#: src/forms/StockForms.tsx:971 +#: src/pages/part/PartDetail.tsx:1039 +#: src/pages/stock/StockDetail.tsx:712 +#: src/tables/stock/StockItemTable.tsx:483 msgid "Transfer Stock" msgstr "" -#: src/forms/StockForms.tsx:862 -#: src/pages/part/PartDetail.tsx:1006 +#: src/forms/StockForms.tsx:980 +#: src/pages/part/PartDetail.tsx:1028 +#: src/pages/stock/LocationDetail.tsx:314 +#: src/pages/stock/LocationDetail.tsx:318 +#: src/tables/stock/StockItemTable.tsx:472 +#: src/tables/stock/StockItemTable.tsx:476 msgid "Count Stock" msgstr "" -#: src/forms/StockForms.tsx:871 +#: src/forms/StockForms.tsx:989 msgid "Change Stock Status" msgstr "" -#: src/forms/StockForms.tsx:880 +#: src/forms/StockForms.tsx:998 msgid "Merge Stock" msgstr "" -#: src/forms/StockForms.tsx:899 +#: src/forms/StockForms.tsx:1017 +#: src/tables/stock/StockItemTable.tsx:530 msgid "Delete Stock Items" msgstr "" -#: src/forms/StockForms.tsx:906 +#: src/forms/StockForms.tsx:1024 msgid "Parent stock location" msgstr "" @@ -3042,11 +3664,11 @@ msgstr "" #~ msgid "You have been logged out" #~ msgstr "You have been logged out" -#: src/functions/auth.tsx:117 +#: src/functions/auth.tsx:128 msgid "Logged Out" msgstr "" -#: src/functions/auth.tsx:118 +#: src/functions/auth.tsx:129 msgid "Successfully logged out" msgstr "" @@ -3062,20 +3684,20 @@ msgstr "" #~ msgid "Found an existing login - welcome back!" #~ msgstr "Found an existing login - welcome back!" -#: src/functions/auth.tsx:156 +#: src/functions/auth.tsx:167 msgid "Check your inbox for a reset link. This only works if you have an account. Check in spam too." msgstr "" -#: src/functions/auth.tsx:163 +#: src/functions/auth.tsx:174 #: src/pages/Auth/Set-Password.tsx:39 msgid "Reset failed" msgstr "" -#: src/functions/auth.tsx:194 +#: src/functions/auth.tsx:205 msgid "Logged In" msgstr "" -#: src/functions/auth.tsx:195 +#: src/functions/auth.tsx:206 msgid "Successfully logged in" msgstr "" @@ -3095,30 +3717,38 @@ msgstr "" #~ msgid "method parameter not supplied" #~ msgstr "method parameter not supplied" -#: src/functions/notifications.tsx:10 +#: src/functions/notifications.tsx:12 msgid "Not implemented" msgstr "" -#: src/functions/notifications.tsx:11 +#: src/functions/notifications.tsx:13 msgid "This feature is not yet implemented" msgstr "" -#: src/functions/notifications.tsx:21 -msgid "Permission denied" -msgstr "" +#: src/functions/notifications.tsx:24 +#~ msgid "Permission denied" +#~ msgstr "Permission denied" -#: src/functions/notifications.tsx:22 +#: src/functions/notifications.tsx:25 msgid "You do not have permission to perform this action" msgstr "" -#: src/functions/notifications.tsx:33 +#: src/functions/notifications.tsx:36 msgid "Invalid Return Code" msgstr "" -#: src/functions/notifications.tsx:34 +#: src/functions/notifications.tsx:37 msgid "Server returned status {returnCode}" msgstr "" +#: src/functions/notifications.tsx:47 +msgid "Timeout" +msgstr "" + +#: src/functions/notifications.tsx:48 +msgid "The request timed out" +msgstr "" + #: src/hooks/UseForm.tsx:88 msgid "Item Created" msgstr "" @@ -3135,20 +3765,24 @@ msgstr "" msgid "Are you sure you want to delete this item?" msgstr "" +#: src/hooks/UsePlaceholder.tsx:59 +msgid "Latest serial number" +msgstr "" + #: src/pages/Auth/Logged-In.tsx:22 msgid "Checking if you are already logged in" msgstr "" -#: src/pages/Auth/Login.tsx:31 -#: src/pages/Index/Scan.tsx:329 +#: src/pages/Auth/Login.tsx:35 +#: src/pages/Index/Scan.tsx:343 msgid "No selection" msgstr "" -#: src/pages/Auth/Login.tsx:87 +#: src/pages/Auth/Login.tsx:91 msgid "Welcome, log in below" msgstr "" -#: src/pages/Auth/Login.tsx:89 +#: src/pages/Auth/Login.tsx:93 msgid "Register below" msgstr "" @@ -3162,8 +3796,8 @@ msgstr "" #: src/pages/Auth/Reset.tsx:41 #: src/pages/Auth/Set-Password.tsx:112 -msgid "Send mail" -msgstr "" +#~ msgid "Send mail" +#~ msgstr "Send mail" #: src/pages/Auth/Set-Password.tsx:30 msgid "Token invalid" @@ -3174,22 +3808,22 @@ msgid "You need to provide a valid token to set a new password. Check your inbox msgstr "" #: src/pages/Auth/Set-Password.tsx:49 -msgid "No token provided" -msgstr "" +#~ msgid "No token provided" +#~ msgstr "No token provided" #: src/pages/Auth/Set-Password.tsx:50 -msgid "You need to provide a token to set a new password. Check your inbox for a reset link." -msgstr "" +#~ msgid "You need to provide a token to set a new password. Check your inbox for a reset link." +#~ msgstr "You need to provide a token to set a new password. Check your inbox for a reset link." -#: src/pages/Auth/Set-Password.tsx:73 +#: src/pages/Auth/Set-Password.tsx:68 msgid "Password set" msgstr "" -#: src/pages/Auth/Set-Password.tsx:74 +#: src/pages/Auth/Set-Password.tsx:69 msgid "The password was set successfully. You can now login with your new password" msgstr "" -#: src/pages/Auth/Set-Password.tsx:101 +#: src/pages/Auth/Set-Password.tsx:96 msgid "Set new password" msgstr "" @@ -3206,20 +3840,20 @@ msgstr "" #~ msgstr "Sorry, an unexpected error has occurred." #: src/pages/Index/Dashboard.tsx:22 -msgid "Autoupdate" -msgstr "" +#~ msgid "Autoupdate" +#~ msgstr "Autoupdate" #: src/pages/Index/Dashboard.tsx:26 -msgid "This page is a replacement for the old start page with the same information. This page will be deprecated and replaced by the home page." -msgstr "" +#~ msgid "This page is a replacement for the old start page with the same information. This page will be deprecated and replaced by the home page." +#~ msgstr "This page is a replacement for the old start page with the same information. This page will be deprecated and replaced by the home page." #: src/pages/Index/Home.tsx:58 -msgid "Welcome to your Dashboard{0}" -msgstr "" +#~ msgid "Welcome to your Dashboard{0}" +#~ msgstr "Welcome to your Dashboard{0}" #: src/pages/Index/Playground.tsx:222 -msgid "This page is a showcase for the possibilities of Platform UI." -msgstr "" +#~ msgid "This page is a showcase for the possibilities of Platform UI." +#~ msgstr "This page is a showcase for the possibilities of Platform UI." #: src/pages/Index/Profile/Profile.tsx:30 #: src/pages/Index/Profile/Profile.tsx:141 @@ -3365,125 +3999,190 @@ msgstr "" msgid "Image Barcode" msgstr "" -#: src/pages/Index/Scan.tsx:247 +#: src/pages/Index/Scan.tsx:261 msgid "Selected elements are not known" msgstr "" -#: src/pages/Index/Scan.tsx:254 +#: src/pages/Index/Scan.tsx:268 msgid "Multiple object types selected" msgstr "" -#: src/pages/Index/Scan.tsx:261 +#: src/pages/Index/Scan.tsx:275 msgid "Actions for {0}" msgstr "" -#: src/pages/Index/Scan.tsx:282 +#: src/pages/Index/Scan.tsx:296 msgid "Scan Page" msgstr "" -#: src/pages/Index/Scan.tsx:285 +#: src/pages/Index/Scan.tsx:299 msgid "This page can be used for continuously scanning items and taking actions on them." msgstr "" -#: src/pages/Index/Scan.tsx:292 +#: src/pages/Index/Scan.tsx:306 msgid "Toggle Fullscreen" msgstr "" -#: src/pages/Index/Scan.tsx:305 +#: src/pages/Index/Scan.tsx:319 msgid "Select the input method you want to use to scan items." msgstr "" -#: src/pages/Index/Scan.tsx:307 +#: src/pages/Index/Scan.tsx:321 msgid "Input" msgstr "" -#: src/pages/Index/Scan.tsx:314 +#: src/pages/Index/Scan.tsx:328 msgid "Select input method" msgstr "" -#: src/pages/Index/Scan.tsx:315 +#: src/pages/Index/Scan.tsx:329 msgid "Nothing found" msgstr "" -#: src/pages/Index/Scan.tsx:323 +#: src/pages/Index/Scan.tsx:337 msgid "Depending on the selected parts actions will be shown here. Not all barcode types are supported currently." msgstr "" -#: src/pages/Index/Scan.tsx:325 +#: src/pages/Index/Scan.tsx:339 msgid "Action" msgstr "" -#: src/pages/Index/Scan.tsx:334 +#: src/pages/Index/Scan.tsx:348 msgid "{0} items selected" msgstr "" -#: src/pages/Index/Scan.tsx:337 +#: src/pages/Index/Scan.tsx:351 msgid "General Actions" msgstr "" -#: src/pages/Index/Scan.tsx:351 +#: src/pages/Index/Scan.tsx:365 msgid "Lookup part" msgstr "" -#: src/pages/Index/Scan.tsx:359 +#: src/pages/Index/Scan.tsx:373 msgid "Open Link" msgstr "" -#: src/pages/Index/Scan.tsx:375 +#: src/pages/Index/Scan.tsx:389 msgid "History is locally kept in this browser." msgstr "" -#: src/pages/Index/Scan.tsx:376 +#: src/pages/Index/Scan.tsx:390 msgid "The history is kept in this browser's local storage. So it won't be shared with other users or other devices but is persistent through reloads. You can select items in the history to perform actions on them. To add items, scan/enter them in the Input area." -msgstr "" +msgstr "La cronologia è conservata nella memoria locale di questo browser. Quindi non sarà condivisa con altri utenti o altri dispositivi, ma è persistente attraverso le ricariche. È possibile selezionare gli elementi nella cronologia per eseguire azioni su di essi. Per aggiungere elementi, scandisci/immettere nell'area di ingresso." -#: src/pages/Index/Scan.tsx:378 +#: src/pages/Index/Scan.tsx:392 #: src/pages/Notifications.tsx:100 msgid "History" msgstr "" -#: src/pages/Index/Scan.tsx:384 +#: src/pages/Index/Scan.tsx:398 msgid "Delete History" msgstr "" -#: src/pages/Index/Scan.tsx:449 +#: src/pages/Index/Scan.tsx:463 msgid "No history" msgstr "" -#: src/pages/Index/Scan.tsx:467 +#: src/pages/Index/Scan.tsx:481 msgid "Item" msgstr "" -#: src/pages/Index/Scan.tsx:470 +#: src/pages/Index/Scan.tsx:484 msgid "Type" msgstr "" -#: src/pages/Index/Scan.tsx:473 +#: src/pages/Index/Scan.tsx:487 msgid "Source" msgstr "" -#: src/pages/Index/Scan.tsx:476 +#: src/pages/Index/Scan.tsx:490 msgid "Scanned at" msgstr "" -#: src/pages/Index/Scan.tsx:528 +#: src/pages/Index/Scan.tsx:547 msgid "Enter item serial or data" msgstr "" -#: src/pages/Index/Scan.tsx:540 +#: src/pages/Index/Scan.tsx:559 msgid "Add dummy item" msgstr "" +#: src/pages/Index/Scan.tsx:569 +msgid "Start scanning by selecting a camera and pressing the play button." +msgstr "" + +#: src/pages/Index/Scan.tsx:650 +msgid "Error while getting camera" +msgstr "Errore durante l'acquisizione della fotocamera" + +#: src/pages/Index/Scan.tsx:673 +msgid "Error while scanning" +msgstr "Errore durante la scansione" + +#: src/pages/Index/Scan.tsx:687 +msgid "Error while stopping" +msgstr "Errore durante l'arresto" + +#: src/pages/Index/Scan.tsx:745 +msgid "Stop scanning" +msgstr "" + +#: src/pages/Index/Scan.tsx:754 +msgid "Start scanning" +msgstr "" + +#: src/pages/Index/Scan.tsx:763 +msgid "Scanning" +msgstr "Scansione" + +#: src/pages/Index/Scan.tsx:763 +msgid "Not scanning" +msgstr "" + +#: src/pages/Index/Scan.tsx:775 +msgid "Select Camera" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:28 +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:50 +msgid "Edit User Information" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:32 +msgid "User details updated" +msgstr "" + #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:41 -msgid "Account Details" +msgid "User Details" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:41 +#~ msgid "Account Details" +#~ msgstr "Account Details" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:44 +msgid "User Actions" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:48 +msgid "Edit User" msgstr "" #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:50 -msgid "First name" +#~ msgid "First name" +#~ msgstr "First name" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:54 +msgid "Set Password" msgstr "" #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:55 -msgid "Last name" +#~ msgid "Last name" +#~ msgstr "Last name" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:56 +msgid "Set User Password" msgstr "" #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:58 @@ -3495,15 +4194,28 @@ msgstr "" #~ msgstr "Last name: {0}" #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:67 -msgid "First name:" -msgstr "" +#~ msgid "First name:" +#~ msgstr "First name:" #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:71 -msgid "Last name:" +#~ msgid "Last name:" +#~ msgstr "Last name:" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:73 +msgid "First Name" msgstr "" -#: src/pages/Index/Settings/AccountSettings/DisplaySettingsPanel.tsx:41 -msgid "Use pseudo language" +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:79 +msgid "Last Name" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:85 +msgid "Staff Access" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:93 +#: src/tables/settings/UserTable.tsx:293 +msgid "Superuser" msgstr "" #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:55 @@ -3600,27 +4312,6 @@ msgstr "" msgid "No tokens configured" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:398 -#: src/pages/part/PartDetail.tsx:297 -#: src/tables/bom/UsedInTable.tsx:84 -#: src/tables/build/BuildOrderTable.tsx:110 -#: src/tables/company/CompanyTable.tsx:61 -#: src/tables/company/CompanyTable.tsx:95 -#: src/tables/machine/MachineListTable.tsx:332 -#: src/tables/machine/MachineListTable.tsx:594 -#: src/tables/part/ParametricPartTable.tsx:223 -#: src/tables/part/PartTable.tsx:178 -#: src/tables/part/PartVariantTable.tsx:15 -#: src/tables/plugin/PluginListTable.tsx:149 -#: src/tables/plugin/PluginListTable.tsx:271 -#: src/tables/plugin/PluginListTable.tsx:563 -#: src/tables/purchasing/SupplierPartTable.tsx:98 -#: src/tables/purchasing/SupplierPartTable.tsx:187 -#: src/tables/settings/UserTable.tsx:284 -#: src/tables/stock/StockItemTable.tsx:289 -msgid "Active" -msgstr "" - #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:401 msgid "Expiry" msgstr "" @@ -3630,38 +4321,74 @@ msgid "Last Seen" msgstr "" #: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:65 -msgid "bars" -msgstr "" +#~ msgid "bars" +#~ msgstr "bars" #: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:66 -msgid "oval" -msgstr "" +#~ msgid "oval" +#~ msgstr "oval" #: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:67 -msgid "dots" -msgstr "" +#~ msgid "dots" +#~ msgstr "dots" #: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:81 -msgid "Theme" -msgstr "" +#~ msgid "Theme" +#~ msgstr "Theme" #: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:87 -msgid "Primary color" +#~ msgid "Primary color" +#~ msgstr "Primary color" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:88 +msgid "Bars" msgstr "" -#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:100 +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:89 +msgid "Oval" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:90 +msgid "Dots" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:101 +msgid "Display Settings" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:107 +msgid "Language" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:115 +msgid "Use pseudo language" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:122 +msgid "Color Mode" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:133 +msgid "Highlight color" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:145 +msgid "Example" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:151 msgid "White color" msgstr "" -#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:108 +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:167 msgid "Black color" msgstr "" -#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:116 +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:183 msgid "Border Radius" msgstr "" -#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:132 +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:199 msgid "Loader" msgstr "" @@ -3673,89 +4400,156 @@ msgstr "" #~ msgid "Advanced Amininistrative Options for InvenTree" #~ msgstr "Advanced Amininistrative Options for InvenTree" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:104 +#: src/pages/Index/Settings/AdminCenter/CurrencyManagmentPanel.tsx:27 +#: src/tables/ColumnRenderers.tsx:262 +msgid "Currency" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/CurrencyManagmentPanel.tsx:32 +msgid "Rate" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/CurrencyManagmentPanel.tsx:44 +msgid "Exchange rates updated" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/CurrencyManagmentPanel.tsx:50 +msgid "Exchange rate update error" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/CurrencyManagmentPanel.tsx:62 +msgid "Refresh currency exchange rates" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/CurrencyManagmentPanel.tsx:99 +msgid "Last fetched" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/CurrencyManagmentPanel.tsx:100 +msgid "Base currency" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:115 msgid "Data Import" msgstr "" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:110 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:121 +msgid "Barcode Scans" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:127 msgid "Background Tasks" msgstr "" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:116 -msgid "Error Reports" -msgstr "" - -#: src/pages/Index/Settings/AdminCenter/Index.tsx:122 -msgid "Currencies" -msgstr "" - #: src/pages/Index/Settings/AdminCenter/Index.tsx:127 #~ msgid "Templates" #~ msgstr "Templates" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:140 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:133 +msgid "Error Reports" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:139 +msgid "Currencies" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:157 +msgid "Custom States" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:163 +#: src/pages/Index/Settings/AdminCenter/UnitManagmentPanel.tsx:58 msgid "Custom Units" msgstr "" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:146 -#: src/pages/part/CategoryDetail.tsx:264 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:169 +#: src/pages/part/CategoryDetail.tsx:269 msgid "Part Parameters" msgstr "" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:152 -msgid "Category Parameters" -msgstr "" - -#: src/pages/Index/Settings/AdminCenter/Index.tsx:170 -msgid "Location Types" -msgstr "" - #: src/pages/Index/Settings/AdminCenter/Index.tsx:170 #~ msgid "Location types" #~ msgstr "Location types" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:182 -#: src/tables/machine/MachineTypeTable.tsx:287 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:175 +msgid "Category Parameters" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:181 +msgid "Stocktake" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:199 +msgid "Location Types" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:211 +#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:48 +#: src/tables/machine/MachineTypeTable.tsx:308 msgid "Machines" msgstr "" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:192 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:221 msgid "Quick Actions" msgstr "" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:197 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:226 msgid "Add a new user" msgstr "" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:222 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:252 msgid "Advanced Options" msgstr "" #: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:43 -msgid "Machine types" -msgstr "" +#~ msgid "Machine types" +#~ msgstr "Machine types" #: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:53 -msgid "Machine Error Stack" +#~ msgid "Machine Error Stack" +#~ msgstr "Machine Error Stack" + +#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:56 +msgid "Machine Types" msgstr "" #: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:62 -msgid "There are no machine registry errors." +#~ msgid "There are no machine registry errors." +#~ msgstr "There are no machine registry errors." + +#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:64 +msgid "Machine Errors" msgstr "" -#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:28 -#: src/tables/settings/UserTable.tsx:119 +#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:77 +msgid "Registry Registry Errors" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:80 +msgid "There are machine registry errors" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:86 +msgid "Machine Registry Errors" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:89 +msgid "There are no machine registry errors" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:31 +#: src/tables/settings/UserTable.tsx:118 msgid "Info" msgstr "" -#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:32 -msgid "External plugins are not enabled for this InvenTree installation." -msgstr "" - #: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:33 #~ msgid "Plugin Error Stack" #~ msgstr "Plugin Error Stack" +#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:35 +msgid "External plugins are not enabled for this InvenTree installation." +msgstr "" + #: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:45 #~ msgid "Warning" #~ msgstr "Warning" @@ -3764,34 +4558,46 @@ msgstr "" #~ msgid "Changing the settings below require you to immediately restart the server. Do not change this while under active usage." #~ msgstr "Changing the settings below require you to immediately restart the server. Do not change this while under active usage." -#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:50 +#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:73 msgid "Plugin Errors" msgstr "" -#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:59 -msgid "Plugin Settings" +#: src/pages/Index/Settings/AdminCenter/ReportTemplatePanel.tsx:17 +msgid "Page Size" msgstr "" -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:53 -msgid "Background Worker Not Running" +#: src/pages/Index/Settings/AdminCenter/ReportTemplatePanel.tsx:20 +msgid "Landscape" msgstr "" -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:54 +#: src/pages/Index/Settings/AdminCenter/ReportTemplatePanel.tsx:26 +msgid "Attach to Model" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/StocktakePanel.tsx:25 +msgid "Stocktake Reports" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:30 msgid "The background task manager service is not running. Contact your system administrator." msgstr "" -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:60 -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:76 +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:35 +#~ msgid "Background Worker Not Running" +#~ msgstr "Background Worker Not Running" + +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:36 +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:45 msgid "Pending Tasks" msgstr "" -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:64 -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:84 +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:37 +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:53 msgid "Scheduled Tasks" msgstr "" -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:68 -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:92 +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:38 +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:61 msgid "Failed Tasks" msgstr "" @@ -3811,11 +4617,6 @@ msgstr "" #~ msgid "Reports" #~ msgstr "Reports" -#: src/pages/Index/Settings/AdminCenter/TemplateManagementPanel.tsx:89 -#: src/pages/build/BuildDetail.tsx:373 -#~ msgid "Report" -#~ msgstr "Report" - #: src/pages/Index/Settings/AdminCenter/TemplateManagementPanel.tsx:99 #~ msgid "Purchase order" #~ msgstr "Purchase order" @@ -3836,23 +4637,35 @@ msgstr "" #~ msgid "Stock location" #~ msgstr "Stock location" +#: src/pages/Index/Settings/AdminCenter/UnitManagmentPanel.tsx:21 +msgid "Alias" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/UnitManagmentPanel.tsx:22 +msgid "Dimensionless" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/UnitManagmentPanel.tsx:66 +msgid "All units" +msgstr "" + #: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:32 msgid "Select settings relevant for user lifecycle. More available in" msgstr "" #: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:37 -msgid "System settings" -msgstr "" +#~ msgid "System settings" +#~ msgstr "System settings" -#: src/pages/Index/Settings/SystemSettings.tsx:67 +#: src/pages/Index/Settings/SystemSettings.tsx:66 msgid "Login" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:93 +#: src/pages/Index/Settings/SystemSettings.tsx:92 msgid "Barcodes" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:115 +#: src/pages/Index/Settings/SystemSettings.tsx:116 msgid "Pricing" msgstr "" @@ -3864,64 +4677,46 @@ msgstr "" #~ msgid "Exchange Rates" #~ msgstr "Exchange Rates" -#: src/pages/Index/Settings/SystemSettings.tsx:150 +#: src/pages/Index/Settings/SystemSettings.tsx:151 msgid "Labels" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:156 -#: src/pages/Index/Settings/UserSettings.tsx:132 +#: src/pages/Index/Settings/SystemSettings.tsx:157 +#: src/pages/Index/Settings/UserSettings.tsx:133 msgid "Reporting" msgstr "" #: src/pages/Index/Settings/SystemSettings.tsx:231 -#: src/pages/part/PartDetail.tsx:682 -msgid "Stocktake" -msgstr "" - -#: src/pages/Index/Settings/SystemSettings.tsx:237 -#: src/pages/build/BuildDetail.tsx:554 -#: src/pages/build/BuildIndex.tsx:22 -#: src/pages/part/PartDetail.tsx:616 -#: src/pages/sales/SalesOrderDetail.tsx:333 +#: src/pages/build/BuildIndex.tsx:27 +#: src/pages/part/PartDetail.tsx:636 +#: src/pages/sales/SalesOrderDetail.tsx:355 msgid "Build Orders" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:318 -msgid "Switch to User Setting" -msgstr "" +#: src/pages/Index/Settings/SystemSettings.tsx:317 +#~ msgid "Switch to User Setting" +#~ msgstr "Switch to User Setting" -#: src/pages/Index/Settings/UserSettings.tsx:34 +#: src/pages/Index/Settings/UserSettings.tsx:35 msgid "Account" msgstr "" -#: src/pages/Index/Settings/UserSettings.tsx:40 +#: src/pages/Index/Settings/UserSettings.tsx:41 msgid "Security" msgstr "" -#: src/pages/Index/Settings/UserSettings.tsx:78 +#: src/pages/Index/Settings/UserSettings.tsx:79 msgid "Display Options" msgstr "" -#: src/pages/Index/Settings/UserSettings.tsx:150 -msgid "Account Settings" -msgstr "" - -#: src/pages/Index/Settings/UserSettings.tsx:158 -msgid "Switch to System Setting" -msgstr "" - -#: src/pages/Index/UserSettings.tsx:103 -#~ msgid "User Settings" -#~ msgstr "User Settings" +#: src/pages/Index/Settings/UserSettings.tsx:159 +#~ msgid "Switch to System Setting" +#~ msgstr "Switch to System Setting" #: src/pages/Logged-In.tsx:24 #~ msgid "Found an exsisting login - using it to log you in." #~ msgstr "Found an exsisting login - using it to log you in." -#: src/pages/NotFound.tsx:17 -#~ msgid "Not Found" -#~ msgstr "Not Found" - #: src/pages/NotFound.tsx:20 #~ msgid "Sorry, this page is not known or was moved." #~ msgstr "Sorry, this page is not known or was moved." @@ -3942,104 +4737,86 @@ msgstr "" #~ msgid "Build Status" #~ msgstr "Build Status" -#: src/pages/build/BuildDetail.tsx:102 -#: src/pages/part/PartDetail.tsx:150 +#: src/pages/build/BuildDetail.tsx:97 +#: src/pages/company/ManufacturerPartDetail.tsx:81 +#: src/pages/company/SupplierPartDetail.tsx:91 +#: src/pages/part/PartDetail.tsx:171 +#: src/pages/stock/StockDetail.tsx:122 #: src/tables/bom/BomTable.tsx:118 #: src/tables/bom/UsedInTable.tsx:39 -#: src/tables/build/BuildLineTable.tsx:173 -#: src/tables/build/BuildOrderTable.tsx:55 -#: src/tables/sales/SalesOrderLineItemTable.tsx:62 -#: src/tables/stock/StockItemTable.tsx:53 +#: src/tables/build/BuildAllocatedStockTable.tsx:104 +#: src/tables/build/BuildLineTable.tsx:324 +#: src/tables/build/BuildOrderTable.tsx:64 +#: src/tables/sales/SalesOrderLineItemTable.tsx:70 +#: src/tables/stock/StockItemTable.tsx:54 msgid "IPN" msgstr "" -#: src/pages/build/BuildDetail.tsx:115 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:121 -#: src/pages/sales/ReturnOrderDetail.tsx:95 -#: src/pages/sales/SalesOrderDetail.tsx:101 -#: src/tables/ColumnRenderers.tsx:121 -#: src/tables/build/BuildAllocatedStockTable.tsx:90 -#: src/tables/build/BuildLineTable.tsx:184 +#: src/pages/build/BuildDetail.tsx:110 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:115 +#: src/pages/sales/ReturnOrderDetail.tsx:86 +#: src/pages/sales/SalesOrderDetail.tsx:95 +#: src/tables/ColumnRenderers.tsx:132 +#: src/tables/build/BuildAllocatedStockTable.tsx:111 +#: src/tables/build/BuildLineTable.tsx:335 msgid "Reference" msgstr "" -#: src/pages/build/BuildDetail.tsx:121 -#: src/pages/company/CompanyDetail.tsx:90 -#: src/pages/company/ManufacturerPartDetail.tsx:83 -#: src/pages/company/SupplierPartDetail.tsx:96 -#: src/pages/part/CategoryDetail.tsx:101 -#: src/pages/part/PartDetail.tsx:157 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:142 -#: src/pages/sales/ReturnOrderDetail.tsx:115 -#: src/pages/sales/SalesOrderDetail.tsx:121 -#: src/pages/stock/LocationDetail.tsx:109 -#: src/tables/ColumnRenderers.tsx:81 -#: src/tables/bom/UsedInTable.tsx:44 -#: src/tables/build/BuildAllocatedStockTable.tsx:70 -#: src/tables/build/BuildLineTable.tsx:178 -#: src/tables/machine/MachineTypeTable.tsx:69 -#: src/tables/machine/MachineTypeTable.tsx:112 -#: src/tables/machine/MachineTypeTable.tsx:219 -#: src/tables/machine/MachineTypeTable.tsx:323 -#: src/tables/part/RelatedPartTable.tsx:64 -#: src/tables/plugin/PluginListTable.tsx:129 -#: src/tables/plugin/PluginListTable.tsx:276 -#: src/tables/sales/SalesOrderAllocationTable.tsx:56 -#: src/tables/sales/SalesOrderLineItemTable.tsx:67 -#: src/tables/stock/LocationTypesTable.tsx:74 -msgid "Description" -msgstr "" - -#: src/pages/build/BuildDetail.tsx:129 +#: src/pages/build/BuildDetail.tsx:124 msgid "Parent Build" msgstr "" -#: src/pages/build/BuildDetail.tsx:140 +#: src/pages/build/BuildDetail.tsx:135 msgid "Build Quantity" msgstr "" -#: src/pages/build/BuildDetail.tsx:148 -#: src/pages/build/BuildDetail.tsx:274 +#: src/pages/build/BuildDetail.tsx:143 +#: src/pages/build/BuildDetail.tsx:277 msgid "Completed Outputs" msgstr "" -#: src/pages/build/BuildDetail.tsx:165 -#: src/tables/build/BuildOrderTable.tsx:151 +#: src/pages/build/BuildDetail.tsx:160 +#: src/tables/build/BuildOrderTable.tsx:142 msgid "Issued By" msgstr "" -#: src/pages/build/BuildDetail.tsx:172 -#: src/pages/part/PartDetail.tsx:365 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:220 -#: src/pages/sales/ReturnOrderDetail.tsx:199 -#: src/pages/sales/SalesOrderDetail.tsx:208 -#: src/tables/build/BuildOrderTable.tsx:157 -#: src/tables/purchasing/PurchaseOrderTable.tsx:75 -#: src/tables/sales/ReturnOrderTable.tsx:66 -#: src/tables/sales/SalesOrderTable.tsx:73 +#: src/pages/build/BuildDetail.tsx:167 +#: src/pages/part/PartDetail.tsx:406 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:244 +#: src/pages/sales/ReturnOrderDetail.tsx:216 +#: src/pages/sales/SalesOrderDetail.tsx:226 +#: src/tables/build/BuildOrderTable.tsx:148 +#: src/tables/purchasing/PurchaseOrderTable.tsx:76 +#: src/tables/sales/ReturnOrderTable.tsx:74 +#: src/tables/sales/SalesOrderTable.tsx:74 msgid "Responsible" msgstr "" -#: src/pages/build/BuildDetail.tsx:179 -#: src/tables/settings/PendingTasksTable.tsx:32 +#: src/pages/build/BuildDetail.tsx:174 +#: src/tables/settings/PendingTasksTable.tsx:36 msgid "Created" msgstr "" +#: src/pages/build/BuildDetail.tsx:181 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:229 +#: src/pages/sales/ReturnOrderDetail.tsx:201 +#: src/pages/sales/SalesOrderDetail.tsx:212 +#: src/tables/ColumnRenderers.tsx:226 +#: src/tables/part/PartPurchaseOrdersTable.tsx:100 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:135 +#: src/tables/sales/SalesOrderLineItemTable.tsx:107 +msgid "Target Date" +msgstr "" + #: src/pages/build/BuildDetail.tsx:185 #: src/pages/part/PartDetail.tsx:269 #: src/pages/stock/StockDetail.tsx:150 #~ msgid "View part barcode" #~ msgstr "View part barcode" -#: src/pages/build/BuildDetail.tsx:186 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:213 -#: src/pages/sales/ReturnOrderDetail.tsx:192 -#: src/pages/sales/SalesOrderDetail.tsx:201 -#: src/tables/ColumnRenderers.tsx:212 -#: src/tables/part/PartPurchaseOrdersTable.tsx:99 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:110 -#: src/tables/sales/SalesOrderLineItemTable.tsx:99 -msgid "Target Date" +#: src/pages/build/BuildDetail.tsx:188 +#: src/tables/sales/SalesOrderLineItemTable.tsx:281 +msgid "Completed" msgstr "" #: src/pages/build/BuildDetail.tsx:190 @@ -4047,10 +4824,6 @@ msgstr "" #~ msgid "Link custom barcode to part" #~ msgstr "Link custom barcode to part" -#: src/pages/build/BuildDetail.tsx:193 -msgid "Completed" -msgstr "" - #: src/pages/build/BuildDetail.tsx:196 #: src/pages/part/PartDetail.tsx:280 #~ msgid "Unlink custom barcode from part" @@ -4060,15 +4833,11 @@ msgstr "" #~ msgid "Build Order updated" #~ msgstr "Build Order updated" -#: src/pages/build/BuildDetail.tsx:205 -msgid "Source Location" -msgstr "" - -#: src/pages/build/BuildDetail.tsx:206 +#: src/pages/build/BuildDetail.tsx:209 msgid "Any location" msgstr "" -#: src/pages/build/BuildDetail.tsx:213 +#: src/pages/build/BuildDetail.tsx:216 msgid "Destination Location" msgstr "" @@ -4084,206 +4853,182 @@ msgstr "" #~ msgid "Delete build order" #~ msgstr "Delete build order" -#: src/pages/build/BuildDetail.tsx:251 +#: src/pages/build/BuildDetail.tsx:254 msgid "Build Details" msgstr "" -#: src/pages/build/BuildDetail.tsx:257 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:258 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:267 -#: src/pages/sales/ReturnOrderDetail.tsx:130 -#: src/pages/sales/ReturnOrderDetail.tsx:237 -#: src/pages/sales/ReturnOrderDetail.tsx:246 -#: src/pages/sales/SalesOrderDetail.tsx:272 -#: src/pages/sales/SalesOrderDetail.tsx:281 +#: src/pages/build/BuildDetail.tsx:260 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:282 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:291 +#: src/pages/sales/ReturnOrderDetail.tsx:122 +#: src/pages/sales/ReturnOrderDetail.tsx:254 +#: src/pages/sales/ReturnOrderDetail.tsx:263 +#: src/pages/sales/SalesOrderDetail.tsx:294 +#: src/pages/sales/SalesOrderDetail.tsx:303 msgid "Line Items" msgstr "" -#: src/pages/build/BuildDetail.tsx:267 +#: src/pages/build/BuildDetail.tsx:266 msgid "Incomplete Outputs" msgstr "" -#: src/pages/build/BuildDetail.tsx:289 -#: src/pages/sales/SalesOrderDetail.tsx:319 +#: src/pages/build/BuildDetail.tsx:292 +#: src/pages/sales/SalesOrderDetail.tsx:341 msgid "Allocated Stock" msgstr "" -#: src/pages/build/BuildDetail.tsx:299 +#: src/pages/build/BuildDetail.tsx:302 msgid "Consumed Stock" msgstr "" -#: src/pages/build/BuildDetail.tsx:313 +#: src/pages/build/BuildDetail.tsx:316 msgid "Child Build Orders" msgstr "" #: src/pages/build/BuildDetail.tsx:326 -#: src/tables/build/BuildOutputTable.tsx:384 -#: src/tables/stock/StockItemTestResultTable.tsx:150 +#: src/tables/build/BuildOutputTable.tsx:532 +#: src/tables/stock/StockItemTestResultTable.tsx:156 msgid "Test Results" msgstr "" #: src/pages/build/BuildDetail.tsx:337 -#: src/pages/part/PartDetail.tsx:699 +#: src/pages/part/PartDetail.tsx:740 msgid "Test Statistics" msgstr "" -#: src/pages/build/BuildDetail.tsx:351 -#: src/pages/company/CompanyDetail.tsx:259 -#: src/pages/company/ManufacturerPartDetail.tsx:179 -#: src/pages/part/PartDetail.tsx:721 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:309 -#: src/pages/sales/ReturnOrderDetail.tsx:274 -#: src/pages/sales/SalesOrderDetail.tsx:343 -#: src/pages/stock/StockDetail.tsx:385 -msgid "Attachments" -msgstr "" - -#: src/pages/build/BuildDetail.tsx:359 -#: src/pages/company/CompanyDetail.tsx:270 -#: src/pages/company/ManufacturerPartDetail.tsx:190 -#: src/pages/company/SupplierPartDetail.tsx:257 -#: src/pages/part/PartDetail.tsx:729 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:320 -#: src/pages/sales/ReturnOrderDetail.tsx:285 -#: src/pages/sales/SalesOrderDetail.tsx:354 -#: src/pages/stock/StockDetail.tsx:396 -#: src/tables/build/BuildOrderTestTable.tsx:142 -#: src/tables/stock/StockTrackingTable.tsx:189 -msgid "Notes" +#: src/pages/build/BuildDetail.tsx:365 +msgid "Edit Build Order" msgstr "" #: src/pages/build/BuildDetail.tsx:368 #~ msgid "Reporting Actions" #~ msgstr "Reporting Actions" +#: src/pages/build/BuildDetail.tsx:372 +#: src/tables/build/BuildOrderTable.tsx:173 +#: src/tables/build/BuildOrderTable.tsx:188 +msgid "Add Build Order" +msgstr "" + #: src/pages/build/BuildDetail.tsx:374 #~ msgid "Print build report" #~ msgstr "Print build report" -#: src/pages/build/BuildDetail.tsx:377 -msgid "Edit Build Order" -msgstr "" - -#: src/pages/build/BuildDetail.tsx:384 -#: src/tables/build/BuildOrderTable.tsx:172 -#: src/tables/build/BuildOrderTable.tsx:187 -msgid "Add Build Order" -msgstr "" - -#: src/pages/build/BuildDetail.tsx:398 +#: src/pages/build/BuildDetail.tsx:386 msgid "Cancel Build Order" msgstr "" -#: src/pages/build/BuildDetail.tsx:400 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:348 -#: src/pages/sales/SalesOrderDetail.tsx:380 +#: src/pages/build/BuildDetail.tsx:388 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:357 +#: src/pages/sales/ReturnOrderDetail.tsx:354 +#: src/pages/sales/SalesOrderDetail.tsx:387 msgid "Order cancelled" msgstr "" -#: src/pages/build/BuildDetail.tsx:401 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:347 -#: src/pages/sales/ReturnOrderDetail.tsx:346 -#: src/pages/sales/SalesOrderDetail.tsx:379 +#: src/pages/build/BuildDetail.tsx:389 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:356 +#: src/pages/sales/ReturnOrderDetail.tsx:353 +#: src/pages/sales/SalesOrderDetail.tsx:386 msgid "Cancel this order" msgstr "" -#: src/pages/build/BuildDetail.tsx:410 +#: src/pages/build/BuildDetail.tsx:398 msgid "Hold Build Order" msgstr "" -#: src/pages/build/BuildDetail.tsx:412 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:355 -#: src/pages/sales/ReturnOrderDetail.tsx:354 -#: src/pages/sales/SalesOrderDetail.tsx:387 +#: src/pages/build/BuildDetail.tsx:400 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:364 +#: src/pages/sales/ReturnOrderDetail.tsx:361 +#: src/pages/sales/SalesOrderDetail.tsx:394 msgid "Place this order on hold" msgstr "" -#: src/pages/build/BuildDetail.tsx:413 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:356 -#: src/pages/sales/ReturnOrderDetail.tsx:355 -#: src/pages/sales/SalesOrderDetail.tsx:388 +#: src/pages/build/BuildDetail.tsx:401 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:365 +#: src/pages/sales/ReturnOrderDetail.tsx:362 +#: src/pages/sales/SalesOrderDetail.tsx:395 msgid "Order placed on hold" msgstr "" -#: src/pages/build/BuildDetail.tsx:418 +#: src/pages/build/BuildDetail.tsx:406 msgid "Issue Build Order" msgstr "" -#: src/pages/build/BuildDetail.tsx:420 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:339 -#: src/pages/sales/ReturnOrderDetail.tsx:338 -#: src/pages/sales/SalesOrderDetail.tsx:371 +#: src/pages/build/BuildDetail.tsx:408 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:348 +#: src/pages/sales/ReturnOrderDetail.tsx:345 +#: src/pages/sales/SalesOrderDetail.tsx:378 msgid "Issue this order" msgstr "" -#: src/pages/build/BuildDetail.tsx:421 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:340 -#: src/pages/sales/ReturnOrderDetail.tsx:339 -#: src/pages/sales/SalesOrderDetail.tsx:372 +#: src/pages/build/BuildDetail.tsx:409 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:349 +#: src/pages/sales/ReturnOrderDetail.tsx:346 +#: src/pages/sales/SalesOrderDetail.tsx:379 msgid "Order issued" msgstr "" -#: src/pages/build/BuildDetail.tsx:426 +#: src/pages/build/BuildDetail.tsx:414 msgid "Complete Build Order" msgstr "" -#: src/pages/build/BuildDetail.tsx:428 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:368 -#: src/pages/sales/ReturnOrderDetail.tsx:362 -#: src/pages/sales/SalesOrderDetail.tsx:395 +#: src/pages/build/BuildDetail.tsx:416 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:377 +#: src/pages/sales/ReturnOrderDetail.tsx:369 +#: src/pages/sales/SalesOrderDetail.tsx:402 msgid "Mark this order as complete" msgstr "" -#: src/pages/build/BuildDetail.tsx:429 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:362 -#: src/pages/sales/ReturnOrderDetail.tsx:363 -#: src/pages/sales/SalesOrderDetail.tsx:396 +#: src/pages/build/BuildDetail.tsx:417 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:371 +#: src/pages/sales/ReturnOrderDetail.tsx:370 +#: src/pages/sales/SalesOrderDetail.tsx:403 msgid "Order completed" msgstr "" -#: src/pages/build/BuildDetail.tsx:460 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:391 -#: src/pages/sales/ReturnOrderDetail.tsx:392 -#: src/pages/sales/SalesOrderDetail.tsx:425 +#: src/pages/build/BuildDetail.tsx:448 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:400 +#: src/pages/sales/ReturnOrderDetail.tsx:399 +#: src/pages/sales/SalesOrderDetail.tsx:432 msgid "Issue Order" msgstr "" -#: src/pages/build/BuildDetail.tsx:467 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:398 -#: src/pages/sales/ReturnOrderDetail.tsx:399 -#: src/pages/sales/SalesOrderDetail.tsx:439 +#: src/pages/build/BuildDetail.tsx:455 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:407 +#: src/pages/sales/ReturnOrderDetail.tsx:406 +#: src/pages/sales/SalesOrderDetail.tsx:446 msgid "Complete Order" msgstr "" -#: src/pages/build/BuildDetail.tsx:496 +#: src/pages/build/BuildDetail.tsx:473 msgid "Build Order Actions" msgstr "" -#: src/pages/build/BuildDetail.tsx:502 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:432 -#: src/pages/sales/ReturnOrderDetail.tsx:433 -#: src/pages/sales/SalesOrderDetail.tsx:474 +#: src/pages/build/BuildDetail.tsx:478 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:429 +#: src/pages/sales/ReturnOrderDetail.tsx:428 +#: src/pages/sales/SalesOrderDetail.tsx:469 msgid "Edit order" msgstr "" -#: src/pages/build/BuildDetail.tsx:506 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:440 -#: src/pages/sales/ReturnOrderDetail.tsx:439 -#: src/pages/sales/SalesOrderDetail.tsx:479 +#: src/pages/build/BuildDetail.tsx:482 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:437 +#: src/pages/sales/ReturnOrderDetail.tsx:434 +#: src/pages/sales/SalesOrderDetail.tsx:474 msgid "Duplicate order" msgstr "" -#: src/pages/build/BuildDetail.tsx:510 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:443 -#: src/pages/sales/ReturnOrderDetail.tsx:444 -#: src/pages/sales/SalesOrderDetail.tsx:482 +#: src/pages/build/BuildDetail.tsx:486 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:440 +#: src/pages/sales/ReturnOrderDetail.tsx:439 +#: src/pages/sales/SalesOrderDetail.tsx:477 msgid "Hold order" msgstr "" -#: src/pages/build/BuildDetail.tsx:515 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:448 -#: src/pages/sales/ReturnOrderDetail.tsx:449 -#: src/pages/sales/SalesOrderDetail.tsx:487 +#: src/pages/build/BuildDetail.tsx:491 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:445 +#: src/pages/sales/ReturnOrderDetail.tsx:444 +#: src/pages/sales/SalesOrderDetail.tsx:482 msgid "Cancel order" msgstr "" @@ -4295,56 +5040,60 @@ msgstr "" #~ msgid "New Build Order" #~ msgstr "New Build Order" -#: src/pages/company/CompanyDetail.tsx:104 +#: src/pages/company/CompanyDetail.tsx:95 +msgid "Website" +msgstr "" + +#: src/pages/company/CompanyDetail.tsx:103 msgid "Phone Number" msgstr "" -#: src/pages/company/CompanyDetail.tsx:111 +#: src/pages/company/CompanyDetail.tsx:110 msgid "Email Address" msgstr "" -#: src/pages/company/CompanyDetail.tsx:121 +#: src/pages/company/CompanyDetail.tsx:120 msgid "Default Currency" msgstr "" -#: src/pages/company/CompanyDetail.tsx:126 +#: src/pages/company/CompanyDetail.tsx:125 #: src/pages/company/SupplierDetail.tsx:8 -#: src/pages/company/SupplierPartDetail.tsx:120 -#: src/pages/company/SupplierPartDetail.tsx:206 -#: src/pages/company/SupplierPartDetail.tsx:351 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:136 -#: src/tables/company/CompanyTable.tsx:100 +#: src/pages/company/SupplierPartDetail.tsx:125 +#: src/pages/company/SupplierPartDetail.tsx:218 +#: src/pages/company/SupplierPartDetail.tsx:340 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:130 +#: src/tables/company/CompanyTable.tsx:101 #: src/tables/part/PartPurchaseOrdersTable.tsx:42 -#: src/tables/purchasing/PurchaseOrderTable.tsx:88 +#: src/tables/purchasing/PurchaseOrderTable.tsx:89 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:36 msgid "Supplier" msgstr "" -#: src/pages/company/CompanyDetail.tsx:132 +#: src/pages/company/CompanyDetail.tsx:131 #: src/pages/company/ManufacturerDetail.tsx:8 -#: src/pages/company/ManufacturerPartDetail.tsx:101 -#: src/pages/company/ManufacturerPartDetail.tsx:267 -#: src/pages/company/SupplierPartDetail.tsx:135 -#: src/tables/company/CompanyTable.tsx:105 +#: src/pages/company/ManufacturerPartDetail.tsx:100 +#: src/pages/company/ManufacturerPartDetail.tsx:262 +#: src/pages/company/SupplierPartDetail.tsx:147 +#: src/tables/company/CompanyTable.tsx:106 msgid "Manufacturer" msgstr "" -#: src/pages/company/CompanyDetail.tsx:138 +#: src/pages/company/CompanyDetail.tsx:137 #: src/pages/company/CustomerDetail.tsx:8 -#: src/pages/part/pricing/SaleHistoryPanel.tsx:29 -#: src/pages/sales/ReturnOrderDetail.tsx:109 -#: src/pages/sales/SalesOrderDetail.tsx:115 -#: src/pages/stock/StockDetail.tsx:230 -#: src/tables/company/CompanyTable.tsx:110 -#: src/tables/sales/ReturnOrderTable.tsx:78 -#: src/tables/sales/SalesOrderTable.tsx:108 -#: src/tables/stock/StockTrackingTable.tsx:140 +#: src/pages/part/pricing/SaleHistoryPanel.tsx:31 +#: src/pages/sales/ReturnOrderDetail.tsx:101 +#: src/pages/sales/SalesOrderDetail.tsx:110 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:100 +#: src/pages/stock/StockDetail.tsx:271 +#: src/tables/company/CompanyTable.tsx:111 +#: src/tables/sales/ReturnOrderTable.tsx:97 +#: src/tables/sales/SalesOrderTable.tsx:121 +#: src/tables/stock/StockTrackingTable.tsx:144 msgid "Customer" msgstr "" #: src/pages/company/CompanyDetail.tsx:172 -#: src/tables/stock/StockTrackingTable.tsx:183 -msgid "Details" +msgid "Company Details" msgstr "" #: src/pages/company/CompanyDetail.tsx:175 @@ -4363,140 +5112,150 @@ msgstr "" #~ msgid "Delete company" #~ msgstr "Delete company" -#: src/pages/company/CompanyDetail.tsx:232 +#: src/pages/company/CompanyDetail.tsx:234 msgid "Assigned Stock" msgstr "" -#: src/pages/company/CompanyDetail.tsx:290 -#: src/tables/company/CompanyTable.tsx:86 +#: src/pages/company/CompanyDetail.tsx:273 +#: src/tables/company/CompanyTable.tsx:87 msgid "Edit Company" msgstr "" -#: src/pages/company/CompanyDetail.tsx:298 +#: src/pages/company/CompanyDetail.tsx:281 msgid "Delete Company" msgstr "" -#: src/pages/company/CompanyDetail.tsx:306 +#: src/pages/company/CompanyDetail.tsx:289 msgid "Company Actions" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:76 -#: src/pages/company/SupplierPartDetail.tsx:89 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:128 +#: src/pages/company/ManufacturerPartDetail.tsx:74 +#: src/pages/company/SupplierPartDetail.tsx:84 msgid "Internal Part" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:91 -#: src/pages/company/SupplierPartDetail.tsx:103 -msgid "External Link" -msgstr "" - -#: src/pages/company/ManufacturerPartDetail.tsx:109 -#: src/pages/company/SupplierPartDetail.tsx:144 -#: src/tables/purchasing/ManufacturerPartTable.tsx:56 +#: src/pages/company/ManufacturerPartDetail.tsx:108 +#: src/pages/company/SupplierPartDetail.tsx:156 +#: src/tables/purchasing/ManufacturerPartTable.tsx:58 msgid "Manufacturer Part Number" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:138 +#: src/pages/company/ManufacturerPartDetail.tsx:125 +#: src/pages/company/SupplierPartDetail.tsx:108 +msgid "External Link" +msgstr "" + +#: src/pages/company/ManufacturerPartDetail.tsx:146 +#: src/pages/company/SupplierPartDetail.tsx:215 +#: src/pages/part/PartDetail.tsx:576 +msgid "Part Details" +msgstr "" + +#: src/pages/company/ManufacturerPartDetail.tsx:149 msgid "Manufacturer Details" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:147 +#: src/pages/company/ManufacturerPartDetail.tsx:158 msgid "Manufacturer Part Details" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:153 -#: src/pages/part/PartDetail.tsx:532 +#: src/pages/company/ManufacturerPartDetail.tsx:164 +#: src/pages/part/PartDetail.tsx:582 msgid "Parameters" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:165 -#: src/pages/part/PartDetail.tsx:649 +#: src/pages/company/ManufacturerPartDetail.tsx:176 +#: src/pages/part/PartDetail.tsx:669 #: src/pages/purchasing/PurchasingIndex.tsx:31 msgid "Suppliers" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:208 -#: src/tables/purchasing/ManufacturerPartTable.tsx:84 +#: src/pages/company/ManufacturerPartDetail.tsx:204 +#: src/tables/purchasing/ManufacturerPartTable.tsx:86 msgid "Edit Manufacturer Part" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:215 -#: src/tables/purchasing/ManufacturerPartTable.tsx:72 -#: src/tables/purchasing/ManufacturerPartTable.tsx:103 +#: src/pages/company/ManufacturerPartDetail.tsx:211 +#: src/tables/purchasing/ManufacturerPartTable.tsx:74 +#: src/tables/purchasing/ManufacturerPartTable.tsx:106 msgid "Add Manufacturer Part" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:227 -#: src/tables/purchasing/ManufacturerPartTable.tsx:92 +#: src/pages/company/ManufacturerPartDetail.tsx:223 +#: src/tables/purchasing/ManufacturerPartTable.tsx:94 msgid "Delete Manufacturer Part" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:240 +#: src/pages/company/ManufacturerPartDetail.tsx:236 msgid "Manufacturer Part Actions" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:281 +#: src/pages/company/ManufacturerPartDetail.tsx:276 msgid "ManufacturerPart" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:163 -#: src/tables/part/PartPurchaseOrdersTable.tsx:71 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:156 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:197 -#: src/tables/purchasing/SupplierPartTable.tsx:131 +#: src/pages/company/SupplierPartDetail.tsx:99 +msgid "Part Description" +msgstr "" + +#: src/pages/company/SupplierPartDetail.tsx:175 +#: src/tables/part/PartPurchaseOrdersTable.tsx:72 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:162 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:203 +#: src/tables/purchasing/SupplierPartTable.tsx:133 msgid "Pack Quantity" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:174 +#: src/pages/company/SupplierPartDetail.tsx:186 msgid "Supplier Availability" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:181 +#: src/pages/company/SupplierPartDetail.tsx:193 msgid "Availability Updated" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:208 +#: src/pages/company/SupplierPartDetail.tsx:220 msgid "Availability" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:217 +#: src/pages/company/SupplierPartDetail.tsx:229 msgid "Supplier Part Details" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:223 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:296 +#: src/pages/company/SupplierPartDetail.tsx:235 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:320 msgid "Received Stock" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:247 -#: src/pages/part/PartPricingPanel.tsx:111 -#: src/pages/part/pricing/PricingOverviewPanel.tsx:121 +#: src/pages/company/SupplierPartDetail.tsx:259 +#: src/pages/part/PartPricingPanel.tsx:116 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:195 msgid "Supplier Pricing" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:294 +#: src/pages/company/SupplierPartDetail.tsx:284 msgid "Supplier Part Actions" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:319 -#: src/tables/purchasing/SupplierPartTable.tsx:210 +#: src/pages/company/SupplierPartDetail.tsx:308 +#: src/tables/purchasing/SupplierPartTable.tsx:213 msgid "Edit Supplier Part" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:327 -#: src/tables/purchasing/SupplierPartTable.tsx:218 +#: src/pages/company/SupplierPartDetail.tsx:316 +#: src/tables/purchasing/SupplierPartTable.tsx:221 msgid "Delete Supplier Part" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:335 -#: src/tables/purchasing/SupplierPartTable.tsx:163 +#: src/pages/company/SupplierPartDetail.tsx:324 +#: src/tables/purchasing/SupplierPartTable.tsx:165 msgid "Add Supplier Part" msgstr "" #: src/pages/part/CategoryDetail.tsx:93 -#: src/pages/stock/LocationDetail.tsx:101 -#: src/tables/settings/ErrorTable.tsx:36 +#: src/pages/stock/LocationDetail.tsx:95 +#: src/tables/settings/ErrorTable.tsx:63 +#: src/tables/settings/ErrorTable.tsx:108 msgid "Path" msgstr "" @@ -4504,357 +5263,357 @@ msgstr "" msgid "Parent Category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:126 +#: src/pages/part/CategoryDetail.tsx:132 msgid "Subcategories" msgstr "" -#: src/pages/part/CategoryDetail.tsx:133 -#: src/pages/stock/LocationDetail.tsx:141 -#: src/tables/part/PartCategoryTable.tsx:73 +#: src/pages/part/CategoryDetail.tsx:139 +#: src/pages/stock/LocationDetail.tsx:135 +#: src/tables/part/PartCategoryTable.tsx:85 #: src/tables/stock/StockLocationTable.tsx:49 msgid "Structural" msgstr "" -#: src/pages/part/CategoryDetail.tsx:139 +#: src/pages/part/CategoryDetail.tsx:145 msgid "Parent default location" msgstr "" -#: src/pages/part/CategoryDetail.tsx:146 +#: src/pages/part/CategoryDetail.tsx:152 msgid "Default location" msgstr "" -#: src/pages/part/CategoryDetail.tsx:157 +#: src/pages/part/CategoryDetail.tsx:163 msgid "Top level part category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:167 -#: src/pages/part/CategoryDetail.tsx:221 -#: src/tables/part/PartCategoryTable.tsx:102 +#: src/pages/part/CategoryDetail.tsx:173 +#: src/pages/part/CategoryDetail.tsx:226 +#: src/tables/part/PartCategoryTable.tsx:118 msgid "Edit Part Category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:180 -#: src/pages/stock/LocationDetail.tsx:233 +#: src/pages/part/CategoryDetail.tsx:186 +#: src/pages/stock/LocationDetail.tsx:227 msgid "Delete items" msgstr "" -#: src/pages/part/CategoryDetail.tsx:188 -#: src/pages/part/CategoryDetail.tsx:226 +#: src/pages/part/CategoryDetail.tsx:194 +#: src/pages/part/CategoryDetail.tsx:231 msgid "Delete Part Category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:191 +#: src/pages/part/CategoryDetail.tsx:197 msgid "Parts Action" msgstr "" -#: src/pages/part/CategoryDetail.tsx:192 +#: src/pages/part/CategoryDetail.tsx:198 msgid "Action for parts in this category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:197 +#: src/pages/part/CategoryDetail.tsx:203 msgid "Child Categories Action" msgstr "" -#: src/pages/part/CategoryDetail.tsx:198 +#: src/pages/part/CategoryDetail.tsx:204 msgid "Action for child categories in this category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:216 +#: src/pages/part/CategoryDetail.tsx:222 msgid "Category Actions" msgstr "" -#: src/pages/part/CategoryDetail.tsx:238 +#: src/pages/part/CategoryDetail.tsx:243 msgid "Category Details" msgstr "" -#: src/pages/part/PartDetail.tsx:163 -msgid "Variant of" +#: src/pages/part/PartAllocationPanel.tsx:23 +#: src/pages/stock/StockDetail.tsx:443 +#: src/tables/part/PartTable.tsx:99 +msgid "Build Order Allocations" msgstr "" -#: src/pages/part/PartDetail.tsx:170 -msgid "Revision of" -msgstr "" - -#: src/pages/part/PartDetail.tsx:177 -#: src/tables/stock/StockItemTable.tsx:58 -msgid "Revision" +#: src/pages/part/PartAllocationPanel.tsx:40 +#: src/pages/stock/StockDetail.tsx:458 +#: src/tables/part/PartTable.tsx:108 +msgid "Sales Order Allocations" msgstr "" #: src/pages/part/PartDetail.tsx:184 +msgid "Variant of" +msgstr "" + +#: src/pages/part/PartDetail.tsx:191 +msgid "Revision of" +msgstr "" + +#: src/pages/part/PartDetail.tsx:198 +#: src/tables/stock/StockItemTable.tsx:59 +msgid "Revision" +msgstr "" + +#: src/pages/part/PartDetail.tsx:205 #: src/tables/notifications/NotificationsTable.tsx:31 #: src/tables/part/PartCategoryTemplateTable.tsx:67 msgid "Category" msgstr "" -#: src/pages/part/PartDetail.tsx:190 +#: src/pages/part/PartDetail.tsx:211 msgid "Default Location" msgstr "" -#: src/pages/part/PartDetail.tsx:197 +#: src/pages/part/PartDetail.tsx:218 msgid "Category Default Location" msgstr "" -#: src/pages/part/PartDetail.tsx:204 +#: src/pages/part/PartDetail.tsx:225 #: src/tables/purchasing/ManufacturerPartParameterTable.tsx:44 msgid "Units" msgstr "" -#: src/pages/part/PartDetail.tsx:211 -#: src/tables/settings/PendingTasksTable.tsx:42 +#: src/pages/part/PartDetail.tsx:232 +#: src/tables/settings/PendingTasksTable.tsx:46 msgid "Keywords" msgstr "" -#: src/pages/part/PartDetail.tsx:218 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:186 -#: src/pages/sales/ReturnOrderDetail.tsx:165 -#: src/pages/sales/SalesOrderDetail.tsx:174 -msgid "Link" -msgstr "" - -#: src/pages/part/PartDetail.tsx:236 +#: src/pages/part/PartDetail.tsx:257 #: src/tables/bom/BomTable.tsx:320 -#: src/tables/build/BuildLineTable.tsx:155 +#: src/tables/build/BuildLineTable.tsx:286 #: src/tables/part/PartTable.tsx:288 -#: src/tables/sales/SalesOrderLineItemTable.tsx:103 +#: src/tables/sales/SalesOrderLineItemTable.tsx:111 msgid "Available Stock" msgstr "" -#: src/pages/part/PartDetail.tsx:243 +#: src/pages/part/PartDetail.tsx:264 msgid "Variant Stock" msgstr "" -#: src/pages/part/PartDetail.tsx:251 +#: src/pages/part/PartDetail.tsx:272 msgid "Minimum Stock" msgstr "" -#: src/pages/part/PartDetail.tsx:257 +#: src/pages/part/PartDetail.tsx:278 #: src/tables/bom/BomTable.tsx:237 -#: src/tables/build/BuildLineTable.tsx:117 -#: src/tables/sales/SalesOrderLineItemTable.tsx:141 +#: src/tables/build/BuildLineTable.tsx:248 +#: src/tables/sales/SalesOrderLineItemTable.tsx:149 msgid "On order" msgstr "" -#: src/pages/part/PartDetail.tsx:266 +#: src/pages/part/PartDetail.tsx:285 +msgid "Required for Orders" +msgstr "" + +#: src/pages/part/PartDetail.tsx:294 msgid "Allocated to Build Orders" msgstr "" -#: src/pages/part/PartDetail.tsx:274 +#: src/pages/part/PartDetail.tsx:305 msgid "Allocated to Sales Orders" msgstr "" -#: src/pages/part/PartDetail.tsx:281 -#: src/tables/bom/BomTable.tsx:261 -#: src/tables/bom/BomTable.tsx:293 -msgid "Can Build" -msgstr "" - -#: src/pages/part/PartDetail.tsx:288 -#: src/tables/bom/BomTable.tsx:245 -#: src/tables/part/PartTable.tsx:92 -msgid "Building" -msgstr "" - -#: src/pages/part/PartDetail.tsx:302 -#: src/pages/part/PartDetail.tsx:873 -#: src/tables/part/ParametricPartTable.tsx:228 -#: src/tables/part/PartTable.tsx:184 -msgid "Locked" -msgstr "" - -#: src/pages/part/PartDetail.tsx:308 -msgid "Template Part" -msgstr "" - #: src/pages/part/PartDetail.tsx:310 #~ msgid "Edit part" #~ msgstr "Edit part" -#: src/pages/part/PartDetail.tsx:313 -#: src/tables/bom/BomTable.tsx:315 -msgid "Assembled Part" +#: src/pages/part/PartDetail.tsx:315 +#: src/tables/bom/BomTable.tsx:261 +#: src/tables/bom/BomTable.tsx:293 +msgid "Can Build" msgstr "" -#: src/pages/part/PartDetail.tsx:318 -msgid "Component Part" +#: src/pages/part/PartDetail.tsx:322 +#: src/pages/part/PartDetail.tsx:905 +#: src/pages/stock/StockDetail.tsx:766 +#: src/tables/build/BuildOrderTestTable.tsx:220 +#: src/tables/stock/StockItemTable.tsx:334 +msgid "In Production" msgstr "" #: src/pages/part/PartDetail.tsx:322 #~ msgid "Duplicate part" #~ msgstr "Duplicate part" -#: src/pages/part/PartDetail.tsx:323 -#: src/tables/bom/BomTable.tsx:305 -msgid "Testable Part" -msgstr "" - #: src/pages/part/PartDetail.tsx:327 #~ msgid "Delete part" #~ msgstr "Delete part" -#: src/pages/part/PartDetail.tsx:329 +#: src/pages/part/PartDetail.tsx:336 +#: src/tables/part/ParametricPartTable.tsx:228 +#: src/tables/part/PartTable.tsx:184 +msgid "Locked" +msgstr "" + +#: src/pages/part/PartDetail.tsx:342 +msgid "Template Part" +msgstr "" + +#: src/pages/part/PartDetail.tsx:347 +#: src/tables/bom/BomTable.tsx:315 +msgid "Assembled Part" +msgstr "" + +#: src/pages/part/PartDetail.tsx:352 +msgid "Component Part" +msgstr "" + +#: src/pages/part/PartDetail.tsx:357 +#: src/tables/bom/BomTable.tsx:305 +msgid "Testable Part" +msgstr "" + +#: src/pages/part/PartDetail.tsx:363 #: src/tables/bom/BomTable.tsx:310 msgid "Trackable Part" msgstr "" -#: src/pages/part/PartDetail.tsx:334 +#: src/pages/part/PartDetail.tsx:368 msgid "Purchaseable Part" msgstr "" -#: src/pages/part/PartDetail.tsx:339 +#: src/pages/part/PartDetail.tsx:374 msgid "Saleable Part" msgstr "" -#: src/pages/part/PartDetail.tsx:344 +#: src/pages/part/PartDetail.tsx:379 msgid "Virtual Part" msgstr "" -#: src/pages/part/PartDetail.tsx:352 -#: src/tables/ColumnRenderers.tsx:220 +#: src/pages/part/PartDetail.tsx:393 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:215 +#: src/pages/sales/ReturnOrderDetail.tsx:185 +#: src/pages/sales/SalesOrderDetail.tsx:197 +#: src/tables/ColumnRenderers.tsx:234 msgid "Creation Date" msgstr "" -#: src/pages/part/PartDetail.tsx:357 +#: src/pages/part/PartDetail.tsx:398 msgid "Created By" msgstr "" -#: src/pages/part/PartDetail.tsx:372 +#: src/pages/part/PartDetail.tsx:413 msgid "Default Supplier" msgstr "" -#: src/pages/part/PartDetail.tsx:383 -#: src/pages/part/pricing/BomPricingPanel.tsx:79 +#: src/pages/part/PartDetail.tsx:424 +#: src/pages/part/pricing/BomPricingPanel.tsx:113 #: src/pages/part/pricing/VariantPricingPanel.tsx:95 #: src/tables/part/PartTable.tsx:161 msgid "Price Range" msgstr "" -#: src/pages/part/PartDetail.tsx:423 -#: src/pages/stock/StockDetail.tsx:135 +#: src/pages/part/PartDetail.tsx:462 +msgid "Latest Serial Number" +msgstr "" + +#: src/pages/part/PartDetail.tsx:472 +#: src/pages/stock/StockDetail.tsx:151 msgid "Last Stocktake" msgstr "" -#: src/pages/part/PartDetail.tsx:462 +#: src/pages/part/PartDetail.tsx:511 msgid "Stocktake By" msgstr "" -#: src/pages/part/PartDetail.tsx:526 -msgid "Part Details" -msgstr "" - -#: src/pages/part/PartDetail.tsx:557 +#: src/pages/part/PartDetail.tsx:611 msgid "Variants" msgstr "" -#: src/pages/part/PartDetail.tsx:564 -#: src/pages/stock/StockDetail.tsx:307 +#: src/pages/part/PartDetail.tsx:618 +#: src/pages/stock/StockDetail.tsx:430 msgid "Allocations" msgstr "" -#: src/pages/part/PartDetail.tsx:575 -#: src/pages/stock/StockDetail.tsx:318 -#: src/tables/part/PartTable.tsx:99 -msgid "Build Order Allocations" -msgstr "" - -#: src/pages/part/PartDetail.tsx:590 -#: src/pages/stock/StockDetail.tsx:333 -#: src/tables/part/PartTable.tsx:108 -msgid "Sales Order Allocations" -msgstr "" - -#: src/pages/part/PartDetail.tsx:607 +#: src/pages/part/PartDetail.tsx:625 msgid "Bill of Materials" msgstr "" -#: src/pages/part/PartDetail.tsx:623 +#: src/pages/part/PartDetail.tsx:643 msgid "Used In" msgstr "" -#: src/pages/part/PartDetail.tsx:630 +#: src/pages/part/PartDetail.tsx:650 msgid "Part Pricing" msgstr "" -#: src/pages/part/PartDetail.tsx:636 +#: src/pages/part/PartDetail.tsx:656 #: src/pages/purchasing/PurchasingIndex.tsx:42 msgid "Manufacturers" msgstr "" -#: src/pages/part/PartDetail.tsx:676 +#: src/pages/part/PartDetail.tsx:722 msgid "Scheduling" msgstr "" -#: src/pages/part/PartDetail.tsx:688 +#: src/pages/part/PartDetail.tsx:729 msgid "Test Templates" msgstr "" -#: src/pages/part/PartDetail.tsx:715 +#: src/pages/part/PartDetail.tsx:756 msgid "Related Parts" msgstr "" -#: src/pages/part/PartDetail.tsx:849 -#: src/pages/stock/StockDetail.tsx:156 -#: src/pages/stock/StockDetail.tsx:593 -#: src/tables/build/BuildLineTable.tsx:48 +#: src/pages/part/PartDetail.tsx:881 +#: src/pages/stock/StockDetail.tsx:172 +#: src/pages/stock/StockDetail.tsx:783 +#: src/tables/build/BuildLineTable.tsx:179 #: src/tables/part/PartTable.tsx:117 -#: src/tables/stock/StockItemTable.tsx:177 -#: src/tables/stock/StockItemTable.tsx:310 +#: src/tables/stock/StockItemTable.tsx:166 +#: src/tables/stock/StockItemTable.tsx:314 msgid "Available" msgstr "" -#: src/pages/part/PartDetail.tsx:855 +#: src/pages/part/PartDetail.tsx:887 msgid "No Stock" msgstr "" -#: src/pages/part/PartDetail.tsx:861 +#: src/pages/part/PartDetail.tsx:893 +#: src/tables/part/PartTestTemplateTable.tsx:106 +#: src/tables/stock/StockItemTestResultTable.tsx:383 +msgid "Required" +msgstr "" + +#: src/pages/part/PartDetail.tsx:899 #: src/tables/bom/BomTable.tsx:325 #: src/tables/part/PartTable.tsx:86 msgid "On Order" msgstr "" -#: src/pages/part/PartDetail.tsx:867 -#: src/pages/stock/StockDetail.tsx:576 -#: src/tables/build/BuildOrderTestTable.tsx:219 -#: src/tables/stock/StockItemTable.tsx:330 -msgid "In Production" -msgstr "" - -#: src/pages/part/PartDetail.tsx:892 +#: src/pages/part/PartDetail.tsx:924 msgid "Edit Part" msgstr "" -#: src/pages/part/PartDetail.tsx:927 +#: src/pages/part/PartDetail.tsx:959 #: src/tables/part/PartTable.tsx:331 -#: src/tables/part/PartTable.tsx:342 +#: src/tables/part/PartTable.tsx:343 msgid "Add Part" msgstr "" -#: src/pages/part/PartDetail.tsx:941 +#: src/pages/part/PartDetail.tsx:973 msgid "Delete Part" msgstr "" -#: src/pages/part/PartDetail.tsx:950 +#: src/pages/part/PartDetail.tsx:982 msgid "Deleting this part cannot be reversed" msgstr "" -#: src/pages/part/PartDetail.tsx:999 -#: src/pages/stock/LocationDetail.tsx:324 -#: src/tables/stock/StockItemTable.tsx:444 +#: src/pages/part/PartDetail.tsx:1021 +#: src/pages/stock/LocationDetail.tsx:310 +#: src/tables/stock/StockItemTable.tsx:449 msgid "Stock Actions" msgstr "" -#: src/pages/part/PartDetail.tsx:1007 +#: src/pages/part/PartDetail.tsx:1029 msgid "Count part stock" msgstr "" -#: src/pages/part/PartDetail.tsx:1018 +#: src/pages/part/PartDetail.tsx:1040 msgid "Transfer part stock" msgstr "" -#: src/pages/part/PartDetail.tsx:1027 +#: src/pages/part/PartDetail.tsx:1049 msgid "Part Actions" msgstr "" -#: src/pages/part/PartDetail.tsx:1087 +#: src/pages/part/PartDetail.tsx:1113 msgid "Select Part Revision" msgstr "" @@ -4862,113 +5621,214 @@ msgstr "" #~ msgid "Categories" #~ msgstr "Categories" -#: src/pages/part/PartPricingPanel.tsx:68 +#: src/pages/part/PartPricingPanel.tsx:72 msgid "No pricing data found for this part." msgstr "" -#: src/pages/part/PartPricingPanel.tsx:82 -#: src/pages/part/pricing/PricingOverviewPanel.tsx:190 +#: src/pages/part/PartPricingPanel.tsx:87 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:293 msgid "Pricing Overview" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:88 +#: src/pages/part/PartPricingPanel.tsx:93 msgid "Purchase History" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:102 -#: src/pages/part/pricing/PricingOverviewPanel.tsx:100 +#: src/pages/part/PartPricingPanel.tsx:107 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:174 msgid "Internal Pricing" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:120 -#: src/pages/part/pricing/PricingOverviewPanel.tsx:107 +#: src/pages/part/PartPricingPanel.tsx:125 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:181 msgid "BOM Pricing" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:127 -#: src/pages/part/pricing/PricingOverviewPanel.tsx:128 +#: src/pages/part/PartPricingPanel.tsx:132 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:202 msgid "Variant Pricing" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:139 -#: src/pages/part/pricing/PricingOverviewPanel.tsx:135 +#: src/pages/part/PartPricingPanel.tsx:144 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:209 msgid "Sale Pricing" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:146 -#: src/pages/part/pricing/PricingOverviewPanel.tsx:142 +#: src/pages/part/PartPricingPanel.tsx:151 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:216 msgid "Sale History" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:58 -#: src/pages/part/pricing/BomPricingPanel.tsx:138 -#: src/tables/ColumnRenderers.tsx:262 +#: src/pages/part/PartSchedulingDetail.tsx:47 +#: src/pages/part/PartSchedulingDetail.tsx:299 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:156 +msgid "Maximum" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:50 +#: src/pages/part/PartSchedulingDetail.tsx:289 +msgid "Scheduled" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:53 +#: src/pages/part/PartSchedulingDetail.tsx:294 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:144 +msgid "Minimum" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:68 +msgid "Order" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:92 +msgid "Quantity is speculative" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:101 +msgid "No date available for provided quantity" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:105 +msgid "Date is in the past" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:112 +msgid "Scheduled Quantity" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:240 +msgid "No information available" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:241 +msgid "There is no scheduling information available for the selected part" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:276 +msgid "Expected Quantity" +msgstr "" + +#: src/pages/part/PartStocktakeDetail.tsx:63 +#: src/tables/FilterSelectDrawer.tsx:167 +#: src/tables/FilterSelectDrawer.tsx:174 +#: src/tables/build/BuildOrderTestTable.tsx:135 +#: src/tables/purchasing/ManufacturerPartParameterTable.tsx:38 +#: src/tables/stock/StockItemTestResultTable.tsx:192 +msgid "Value" +msgstr "" + +#: src/pages/part/PartStocktakeDetail.tsx:82 +msgid "Edit Stocktake Entry" +msgstr "" + +#: src/pages/part/PartStocktakeDetail.tsx:90 +msgid "Delete Stocktake Entry" +msgstr "" + +#: src/pages/part/PartStocktakeDetail.tsx:96 +#: src/tables/settings/StocktakeReportTable.tsx:69 +msgid "Generate Stocktake Report" +msgstr "" + +#: src/pages/part/PartStocktakeDetail.tsx:101 +#: src/tables/settings/StocktakeReportTable.tsx:71 +msgid "Stocktake report scheduled" +msgstr "" + +#: src/pages/part/PartStocktakeDetail.tsx:119 +#: src/pages/part/PartStocktakeDetail.tsx:235 +#: src/pages/stock/StockDetail.tsx:303 +#: src/tables/stock/StockItemTable.tsx:249 +msgid "Stock Value" +msgstr "" + +#: src/pages/part/PartStocktakeDetail.tsx:139 +#: src/tables/settings/StocktakeReportTable.tsx:77 +msgid "New Stocktake Report" +msgstr "" + +#: src/pages/part/PartStocktakeDetail.tsx:258 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:295 +msgid "Minimum Value" +msgstr "" + +#: src/pages/part/PartStocktakeDetail.tsx:264 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:296 +msgid "Maximum Value" +msgstr "" + +#: src/pages/part/pricing/BomPricingPanel.tsx:87 +#: src/pages/part/pricing/BomPricingPanel.tsx:177 +#: src/tables/ColumnRenderers.tsx:276 #: src/tables/bom/BomTable.tsx:185 #: src/tables/general/ExtraLineItemTable.tsx:64 -#: src/tables/purchasing/PurchaseOrderTable.tsx:112 -#: src/tables/sales/ReturnOrderTable.tsx:104 -#: src/tables/sales/SalesOrderLineItemTable.tsx:89 -#: src/tables/sales/SalesOrderTable.tsx:136 +#: src/tables/purchasing/PurchaseOrderTable.tsx:113 +#: src/tables/sales/ReturnOrderTable.tsx:127 +#: src/tables/sales/SalesOrderLineItemTable.tsx:97 +#: src/tables/sales/SalesOrderTable.tsx:149 msgid "Total Price" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:78 -#: src/pages/part/pricing/BomPricingPanel.tsx:102 +#: src/pages/part/pricing/BomPricingPanel.tsx:112 +#: src/pages/part/pricing/BomPricingPanel.tsx:141 #: src/tables/bom/UsedInTable.tsx:49 +#: src/tables/build/BuildLineTable.tsx:296 #: src/tables/part/PartTable.tsx:202 msgid "Component" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:81 -#: src/pages/part/pricing/VariantPricingPanel.tsx:37 -#: src/pages/part/pricing/VariantPricingPanel.tsx:97 -msgid "Minimum Price" -msgstr "" - -#: src/pages/part/pricing/BomPricingPanel.tsx:82 -#: src/pages/part/pricing/VariantPricingPanel.tsx:45 -#: src/pages/part/pricing/VariantPricingPanel.tsx:98 -msgid "Maximum Price" -msgstr "" - #: src/pages/part/pricing/BomPricingPanel.tsx:112 #~ msgid "Minimum Total Price" #~ msgstr "Minimum Total Price" +#: src/pages/part/pricing/BomPricingPanel.tsx:115 +#: src/pages/part/pricing/VariantPricingPanel.tsx:37 +#: src/pages/part/pricing/VariantPricingPanel.tsx:97 +msgid "Minimum Price" +msgstr "" + +#: src/pages/part/pricing/BomPricingPanel.tsx:116 +#: src/pages/part/pricing/VariantPricingPanel.tsx:45 +#: src/pages/part/pricing/VariantPricingPanel.tsx:98 +msgid "Maximum Price" +msgstr "" + #: src/pages/part/pricing/BomPricingPanel.tsx:117 #~ msgid "Maximum Total Price" #~ msgstr "Maximum Total Price" -#: src/pages/part/pricing/BomPricingPanel.tsx:129 -#: src/pages/part/pricing/PriceBreakPanel.tsx:172 -#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:67 -#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:128 -#: src/pages/part/pricing/SupplierPricingPanel.tsx:62 +#: src/pages/part/pricing/BomPricingPanel.tsx:168 +#: src/pages/part/pricing/PriceBreakPanel.tsx:173 +#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:70 +#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:125 +#: src/pages/part/pricing/SupplierPricingPanel.tsx:66 +#: src/pages/stock/StockDetail.tsx:291 #: src/tables/bom/BomTable.tsx:176 #: src/tables/general/ExtraLineItemTable.tsx:56 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:223 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:225 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:92 +#: src/tables/stock/StockItemTable.tsx:239 msgid "Unit Price" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:154 +#: src/pages/part/pricing/BomPricingPanel.tsx:193 #: src/pages/part/pricing/VariantPricingPanel.tsx:53 -#: src/tables/purchasing/SupplierPartTable.tsx:148 +#: src/tables/purchasing/SupplierPartTable.tsx:150 msgid "Updated" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:219 +#: src/pages/part/pricing/BomPricingPanel.tsx:258 msgid "Pie Chart" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:220 +#: src/pages/part/pricing/BomPricingPanel.tsx:259 msgid "Bar Chart" msgstr "" #: src/pages/part/pricing/PriceBreakPanel.tsx:58 -#: src/pages/part/pricing/PriceBreakPanel.tsx:110 +#: src/pages/part/pricing/PriceBreakPanel.tsx:111 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:142 -#: src/tables/purchasing/SupplierPriceBreakTable.tsx:168 +#: src/tables/purchasing/SupplierPriceBreakTable.tsx:169 msgid "Add Price Break" msgstr "" @@ -4986,46 +5846,70 @@ msgstr "" msgid "Price Break" msgstr "" -#: src/pages/part/pricing/PriceBreakPanel.tsx:170 +#: src/pages/part/pricing/PriceBreakPanel.tsx:171 msgid "Price" msgstr "" -#: src/pages/part/pricing/PricingOverviewPanel.tsx:51 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:68 +msgid "Refreshing pricing data" +msgstr "" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:88 +msgid "Pricing data updated" +msgstr "" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:95 +msgid "Failed to update pricing data" +msgstr "" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:104 +msgid "Edit Pricing" +msgstr "" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:125 msgid "Pricing Category" msgstr "" -#: src/pages/part/pricing/PricingOverviewPanel.tsx:70 -msgid "Minimum" -msgstr "" - -#: src/pages/part/pricing/PricingOverviewPanel.tsx:82 -msgid "Maximum" -msgstr "" - -#: src/pages/part/pricing/PricingOverviewPanel.tsx:114 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:188 msgid "Purchase Pricing" msgstr "" -#: src/pages/part/pricing/PricingOverviewPanel.tsx:149 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:223 msgid "Override Pricing" msgstr "" -#: src/pages/part/pricing/PricingOverviewPanel.tsx:156 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:230 msgid "Overall Pricing" msgstr "" -#: src/pages/part/pricing/PricingOverviewPanel.tsx:175 -#: src/pages/stock/StockDetail.tsx:129 -#: src/tables/stock/StockItemTable.tsx:240 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:249 +#: src/pages/stock/StockDetail.tsx:145 +#: src/tables/stock/StockItemTable.tsx:275 msgid "Last Updated" msgstr "" -#: src/pages/part/pricing/PricingOverviewPanel.tsx:192 -msgid "Minimum Value" +#: src/pages/part/pricing/PricingOverviewPanel.tsx:253 +msgid "Pricing Not Set" msgstr "" -#: src/pages/part/pricing/PricingOverviewPanel.tsx:193 -msgid "Maximum Value" +#: src/pages/part/pricing/PricingOverviewPanel.tsx:254 +msgid "Pricing data has not been calculated for this part" +msgstr "" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:258 +msgid "Pricing Actions" +msgstr "" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:261 +msgid "Refresh" +msgstr "" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:262 +msgid "Refresh pricing data" +msgstr "" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:277 +msgid "Edit pricing data" msgstr "" #: src/pages/part/pricing/PricingPanel.tsx:24 @@ -5044,28 +5928,20 @@ msgstr "" msgid "Loading pricing data" msgstr "" -#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:40 -#: src/pages/part/pricing/SaleHistoryPanel.tsx:36 -#: src/tables/ColumnRenderers.tsx:201 -#: src/tables/build/BuildOrderTestTable.tsx:150 -#: src/tables/plugin/PluginListTable.tsx:139 -msgid "Date" -msgstr "" - #: src/pages/part/pricing/PurchaseHistoryPanel.tsx:47 msgid "Purchase Price" msgstr "" -#: src/pages/part/pricing/SaleHistoryPanel.tsx:22 -msgid "Sale Order" -msgstr "" +#: src/pages/part/pricing/SaleHistoryPanel.tsx:24 +#~ msgid "Sale Order" +#~ msgstr "Sale Order" -#: src/pages/part/pricing/SaleHistoryPanel.tsx:42 -#: src/pages/part/pricing/SaleHistoryPanel.tsx:92 +#: src/pages/part/pricing/SaleHistoryPanel.tsx:44 +#: src/pages/part/pricing/SaleHistoryPanel.tsx:87 msgid "Sale Price" msgstr "" -#: src/pages/part/pricing/SupplierPricingPanel.tsx:65 +#: src/pages/part/pricing/SupplierPricingPanel.tsx:69 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:83 msgid "Supplier Price" msgstr "" @@ -5075,23 +5951,23 @@ msgstr "" msgid "Variant Part" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:93 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:87 msgid "Edit Purchase Order" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:102 -#: src/tables/purchasing/PurchaseOrderTable.tsx:128 -#: src/tables/purchasing/PurchaseOrderTable.tsx:140 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:96 +#: src/tables/purchasing/PurchaseOrderTable.tsx:129 +#: src/tables/purchasing/PurchaseOrderTable.tsx:142 msgid "Add Purchase Order" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:127 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:121 msgid "Supplier Reference" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:158 -#: src/pages/sales/ReturnOrderDetail.tsx:137 -#: src/pages/sales/SalesOrderDetail.tsx:137 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:152 +#: src/pages/sales/ReturnOrderDetail.tsx:129 +#: src/pages/sales/SalesOrderDetail.tsx:132 msgid "Completed Line Items" msgstr "" @@ -5101,91 +5977,112 @@ msgstr "" #~ msgid "Order Currency," #~ msgstr "Order Currency," -#: src/pages/purchasing/PurchaseOrderDetail.tsx:165 -#: src/pages/sales/ReturnOrderDetail.tsx:144 -#: src/pages/sales/SalesOrderDetail.tsx:153 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:161 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:231 +msgid "Destination" +msgstr "" + +#: src/pages/purchasing/PurchaseOrderDetail.tsx:167 +#: src/pages/sales/ReturnOrderDetail.tsx:136 +#: src/pages/sales/SalesOrderDetail.tsx:148 msgid "Order Currency" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:172 -#: src/pages/sales/ReturnOrderDetail.tsx:151 -#: src/pages/sales/SalesOrderDetail.tsx:160 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:173 +#: src/pages/sales/ReturnOrderDetail.tsx:143 +#: src/pages/sales/SalesOrderDetail.tsx:155 msgid "Total Cost" msgstr "" #: src/pages/purchasing/PurchaseOrderDetail.tsx:207 -#: src/pages/sales/ReturnOrderDetail.tsx:186 -#: src/pages/sales/SalesOrderDetail.tsx:195 -msgid "Created On" +#: src/pages/sales/ReturnOrderDetail.tsx:183 +#: src/pages/sales/SalesOrderDetail.tsx:191 +#~ msgid "Created On" +#~ msgstr "Created On" + +#: src/pages/purchasing/PurchaseOrderDetail.tsx:221 +#: src/pages/sales/ReturnOrderDetail.tsx:193 +#: src/pages/sales/SalesOrderDetail.tsx:204 +msgid "Issue Date" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:252 -#: src/pages/sales/ReturnOrderDetail.tsx:231 -#: src/pages/sales/SalesOrderDetail.tsx:266 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:237 +#: src/pages/sales/ReturnOrderDetail.tsx:209 +#: src/pages/sales/SalesOrderDetail.tsx:219 +#: src/tables/build/BuildOrderTable.tsx:98 +#: src/tables/part/PartPurchaseOrdersTable.tsx:105 +#: src/tables/sales/ReturnOrderTable.tsx:122 +msgid "Completion Date" +msgstr "" + +#: src/pages/purchasing/PurchaseOrderDetail.tsx:276 +#: src/pages/sales/ReturnOrderDetail.tsx:248 +#: src/pages/sales/SalesOrderDetail.tsx:288 msgid "Order Details" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:280 -#: src/pages/sales/ReturnOrderDetail.tsx:258 -#: src/pages/sales/SalesOrderDetail.tsx:297 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:304 +#: src/pages/sales/ReturnOrderDetail.tsx:276 +#: src/pages/sales/SalesOrderDetail.tsx:319 msgid "Extra Line Items" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:337 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:346 msgid "Issue Purchase Order" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:345 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:354 msgid "Cancel Purchase Order" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:353 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:362 msgid "Hold Purchase Order" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:361 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:370 msgid "Complete Purchase Order" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:427 -#: src/pages/sales/ReturnOrderDetail.tsx:428 -#: src/pages/sales/SalesOrderDetail.tsx:468 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:425 +#: src/pages/sales/ReturnOrderDetail.tsx:424 +#: src/pages/sales/SalesOrderDetail.tsx:464 msgid "Order Actions" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:101 -#: src/pages/sales/SalesOrderDetail.tsx:107 -#: src/tables/sales/SalesOrderTable.tsx:124 +#: src/pages/sales/ReturnOrderDetail.tsx:92 +#: src/pages/sales/SalesOrderDetail.tsx:101 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:109 +#: src/tables/sales/SalesOrderTable.tsx:137 msgid "Customer Reference" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:315 +#: src/pages/sales/ReturnOrderDetail.tsx:322 msgid "Edit Return Order" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:324 -#: src/tables/sales/ReturnOrderTable.tsx:119 -#: src/tables/sales/ReturnOrderTable.tsx:128 +#: src/pages/sales/ReturnOrderDetail.tsx:331 +#: src/tables/sales/ReturnOrderTable.tsx:142 +#: src/tables/sales/ReturnOrderTable.tsx:152 msgid "Add Return Order" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:336 +#: src/pages/sales/ReturnOrderDetail.tsx:343 msgid "Issue Return Order" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:344 +#: src/pages/sales/ReturnOrderDetail.tsx:349 +#~ msgid "Order canceled" +#~ msgstr "Order canceled" + +#: src/pages/sales/ReturnOrderDetail.tsx:351 msgid "Cancel Return Order" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:347 -msgid "Order canceled" -msgstr "" - -#: src/pages/sales/ReturnOrderDetail.tsx:352 +#: src/pages/sales/ReturnOrderDetail.tsx:359 msgid "Hold Return Order" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:360 +#: src/pages/sales/ReturnOrderDetail.tsx:367 msgid "Complete Return Order" msgstr "" @@ -5193,117 +6090,193 @@ msgstr "" msgid "Customers" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:145 +#: src/pages/sales/SalesOrderDetail.tsx:140 msgid "Completed Shipments" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:243 -msgid "Edit Sales Order" -msgstr "" - -#: src/pages/sales/SalesOrderDetail.tsx:252 -#: src/tables/sales/SalesOrderTable.tsx:84 -#: src/tables/sales/SalesOrderTable.tsx:96 -msgid "Add Sales Order" -msgstr "" - #: src/pages/sales/SalesOrderDetail.tsx:256 #~ msgid "Pending Shipments" #~ msgstr "Pending Shipments" -#: src/pages/sales/SalesOrderDetail.tsx:313 +#: src/pages/sales/SalesOrderDetail.tsx:261 +msgid "Edit Sales Order" +msgstr "" + +#: src/pages/sales/SalesOrderDetail.tsx:274 +#: src/tables/sales/SalesOrderTable.tsx:96 +#: src/tables/sales/SalesOrderTable.tsx:109 +msgid "Add Sales Order" +msgstr "" + +#: src/pages/sales/SalesOrderDetail.tsx:335 msgid "Shipments" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:369 +#: src/pages/sales/SalesOrderDetail.tsx:376 msgid "Issue Sales Order" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:377 +#: src/pages/sales/SalesOrderDetail.tsx:384 msgid "Cancel Sales Order" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:385 +#: src/pages/sales/SalesOrderDetail.tsx:392 msgid "Hold Sales Order" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:393 +#: src/pages/sales/SalesOrderDetail.tsx:400 msgid "Complete Sales Order" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:432 +#: src/pages/sales/SalesOrderDetail.tsx:439 msgid "Ship Order" msgstr "" -#: src/pages/stock/LocationDetail.tsx:117 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:117 +#: src/tables/sales/SalesOrderShipmentTable.tsx:96 +msgid "Shipment Reference" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:124 +msgid "Allocated Items" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:133 +msgid "Tracking Number" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:141 +msgid "Invoice Number" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:149 +#: src/tables/ColumnRenderers.tsx:242 +#: src/tables/sales/SalesOrderAllocationTable.tsx:142 +#: src/tables/sales/SalesOrderShipmentTable.tsx:115 +msgid "Shipment Date" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:157 +#: src/tables/sales/SalesOrderShipmentTable.tsx:119 +msgid "Delivery Date" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:204 +msgid "Shipment Details" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:210 +msgid "Assigned Items" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:241 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:317 +#: src/tables/sales/SalesOrderShipmentTable.tsx:75 +msgid "Edit Shipment" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:248 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:322 +#: src/tables/sales/SalesOrderShipmentTable.tsx:67 +msgid "Cancel Shipment" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:261 +#: src/tables/sales/SalesOrderShipmentTable.tsx:83 +#: src/tables/sales/SalesOrderShipmentTable.tsx:151 +msgid "Complete Shipment" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:276 +#: src/tables/part/PartPurchaseOrdersTable.tsx:121 +msgid "Pending" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:277 +#: src/tables/sales/SalesOrderAllocationTable.tsx:148 +#: src/tables/sales/SalesOrderShipmentTable.tsx:108 +#: src/tables/sales/SalesOrderShipmentTable.tsx:197 +msgid "Shipped" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:279 +#: src/tables/sales/SalesOrderShipmentTable.tsx:202 +msgid "Delivered" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:293 +msgid "Send Shipment" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:312 +msgid "Shipment Actions" +msgstr "" + +#: src/pages/stock/LocationDetail.tsx:111 msgid "Parent Location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:135 +#: src/pages/stock/LocationDetail.tsx:129 msgid "Sublocations" msgstr "" -#: src/pages/stock/LocationDetail.tsx:147 +#: src/pages/stock/LocationDetail.tsx:141 #: src/tables/stock/StockLocationTable.tsx:54 msgid "External" msgstr "" -#: src/pages/stock/LocationDetail.tsx:153 +#: src/pages/stock/LocationDetail.tsx:147 #: src/tables/stock/StockLocationTable.tsx:63 msgid "Location Type" msgstr "" -#: src/pages/stock/LocationDetail.tsx:164 +#: src/pages/stock/LocationDetail.tsx:158 msgid "Top level stock location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:175 +#: src/pages/stock/LocationDetail.tsx:169 msgid "Location Details" msgstr "" -#: src/pages/stock/LocationDetail.tsx:201 +#: src/pages/stock/LocationDetail.tsx:195 msgid "Default Parts" msgstr "" -#: src/pages/stock/LocationDetail.tsx:220 -#: src/pages/stock/LocationDetail.tsx:351 +#: src/pages/stock/LocationDetail.tsx:214 +#: src/pages/stock/LocationDetail.tsx:336 #: src/tables/stock/StockLocationTable.tsx:123 msgid "Edit Stock Location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:241 -#: src/pages/stock/LocationDetail.tsx:356 +#: src/pages/stock/LocationDetail.tsx:235 +#: src/pages/stock/LocationDetail.tsx:341 msgid "Delete Stock Location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:244 +#: src/pages/stock/LocationDetail.tsx:238 msgid "Items Action" msgstr "" -#: src/pages/stock/LocationDetail.tsx:245 +#: src/pages/stock/LocationDetail.tsx:239 msgid "Action for stock items in this location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:250 +#: src/pages/stock/LocationDetail.tsx:244 msgid "Child Locations Action" msgstr "" -#: src/pages/stock/LocationDetail.tsx:251 +#: src/pages/stock/LocationDetail.tsx:245 msgid "Action for child locations in this location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:346 +#: src/pages/stock/LocationDetail.tsx:332 msgid "Location Actions" msgstr "" -#: src/pages/stock/StockDetail.tsx:108 +#: src/pages/stock/StockDetail.tsx:116 msgid "Base Part" msgstr "" -#: src/pages/stock/StockDetail.tsx:115 -msgid "Stock Status" -msgstr "" - #: src/pages/stock/StockDetail.tsx:155 #~ msgid "Link custom barcode to stock item" #~ msgstr "Link custom barcode to stock item" @@ -5312,113 +6285,179 @@ msgstr "" #~ msgid "Unlink custom barcode from stock item" #~ msgstr "Unlink custom barcode from stock item" -#: src/pages/stock/StockDetail.tsx:188 -msgid "Installed In" -msgstr "" - -#: src/pages/stock/StockDetail.tsx:204 -msgid "Consumed By" +#: src/pages/stock/StockDetail.tsx:178 +msgid "Allocated to Orders" msgstr "" #: src/pages/stock/StockDetail.tsx:205 #~ msgid "Edit stock item" #~ msgstr "Edit stock item" -#: src/pages/stock/StockDetail.tsx:213 -#: src/tables/build/BuildAllocatedStockTable.tsx:64 -#: src/tables/stock/StockTrackingTable.tsx:96 -msgid "Build Order" +#: src/pages/stock/StockDetail.tsx:209 +msgid "Installed In" msgstr "" #: src/pages/stock/StockDetail.tsx:217 #~ msgid "Delete stock item" #~ msgstr "Delete stock item" -#: src/pages/stock/StockDetail.tsx:291 +#: src/pages/stock/StockDetail.tsx:226 +msgid "Parent Item" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:230 +msgid "Parent stock item" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:236 +msgid "Consumed By" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:245 +#: src/tables/build/BuildAllocatedStockTable.tsx:77 +#: src/tables/stock/StockTrackingTable.tsx:100 +msgid "Build Order" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:283 +#: src/tables/stock/StockItemTable.tsx:270 +msgid "Expiry Date" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:414 msgid "Stock Details" msgstr "" -#: src/pages/stock/StockDetail.tsx:297 +#: src/pages/stock/StockDetail.tsx:420 msgid "Stock Tracking" msgstr "" -#: src/pages/stock/StockDetail.tsx:350 -msgid "Test Data" -msgstr "" - -#: src/pages/stock/StockDetail.tsx:364 -msgid "Installed Items" -msgstr "" - -#: src/pages/stock/StockDetail.tsx:371 -msgid "Child Items" -msgstr "" - -#: src/pages/stock/StockDetail.tsx:425 -msgid "Edit Stock Item" -msgstr "" - #: src/pages/stock/StockDetail.tsx:433 #~ msgid "Duplicate stock item" #~ msgstr "Duplicate stock item" -#: src/pages/stock/StockDetail.tsx:452 +#: src/pages/stock/StockDetail.tsx:475 +msgid "Test Data" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:489 +msgid "Installed Items" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:496 +msgid "Child Items" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:545 +msgid "Edit Stock Item" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:572 msgid "Delete Stock Item" msgstr "" -#: src/pages/stock/StockDetail.tsx:504 +#: src/pages/stock/StockDetail.tsx:604 +msgid "Serialize Stock Item" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:617 +msgid "Stock item serialized" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:623 +msgid "Return Stock Item" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:626 +msgid "Return this item into stock. This will remove the customer assignment." +msgstr "" + +#: src/pages/stock/StockDetail.tsx:636 +msgid "Item returned to stock" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:666 msgid "Stock Operations" msgstr "" -#: src/pages/stock/StockDetail.tsx:509 +#: src/pages/stock/StockDetail.tsx:671 msgid "Count stock" msgstr "" -#: src/pages/stock/StockDetail.tsx:519 -#: src/tables/stock/StockItemTable.tsx:449 -msgid "Add stock" +#: src/pages/stock/StockDetail.tsx:671 +#: src/tables/stock/StockItemTable.tsx:452 +#~ msgid "Add stock" +#~ msgstr "Add stock" + +#: src/pages/stock/StockDetail.tsx:680 +#: src/tables/stock/StockItemTable.tsx:461 +#~ msgid "Remove stock" +#~ msgstr "Remove stock" + +#: src/pages/stock/StockDetail.tsx:698 +#: src/tables/stock/StockItemTable.tsx:481 +#~ msgid "Transfer stock" +#~ msgstr "Transfer stock" + +#: src/pages/stock/StockDetail.tsx:699 +msgid "Serialize" msgstr "" -#: src/pages/stock/StockDetail.tsx:527 -#: src/tables/stock/StockItemTable.tsx:458 -msgid "Remove stock" +#: src/pages/stock/StockDetail.tsx:700 +msgid "Serialize stock" msgstr "" -#: src/pages/stock/StockDetail.tsx:534 +#: src/pages/stock/StockDetail.tsx:711 msgid "Transfer" msgstr "" -#: src/pages/stock/StockDetail.tsx:535 -#: src/tables/stock/StockItemTable.tsx:478 -msgid "Transfer stock" +#: src/pages/stock/StockDetail.tsx:722 +msgid "Return" msgstr "" -#: src/pages/stock/StockDetail.tsx:546 +#: src/pages/stock/StockDetail.tsx:723 +msgid "Return from customer" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:738 msgid "Stock Item Actions" msgstr "" -#: src/tables/ColumnRenderers.tsx:30 +#: src/pages/stock/StockDetail.tsx:808 +msgid "Stale" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:814 +msgid "Expired" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:820 +msgid "Unavailable" +msgstr "" + +#: src/tables/ColumnRenderers.tsx:36 msgid "Part is not active" msgstr "" -#: src/tables/ColumnRenderers.tsx:35 -msgid "Part is locked" +#: src/tables/ColumnRenderers.tsx:41 +#: src/tables/bom/BomTable.tsx:542 +#: src/tables/part/PartParameterTable.tsx:193 +#: src/tables/part/PartTestTemplateTable.tsx:253 +msgid "Part is Locked" msgstr "" -#: src/tables/ColumnRenderers.tsx:57 +#: src/tables/ColumnRenderers.tsx:41 +#~ msgid "Part is locked" +#~ msgstr "Part is locked" + +#: src/tables/ColumnRenderers.tsx:46 +msgid "You are subscribed to notifications for this part" +msgstr "" + +#: src/tables/ColumnRenderers.tsx:68 msgid "No location set" msgstr "" -#: src/tables/ColumnRenderers.tsx:228 -#: src/tables/sales/SalesOrderShipmentTable.tsx:79 -msgid "Shipment Date" -msgstr "" - -#: src/tables/ColumnRenderers.tsx:248 -#: src/tables/settings/CurrencyTable.tsx:23 -msgid "Currency" -msgstr "" - #: src/tables/ColumnSelect.tsx:16 #: src/tables/ColumnSelect.tsx:23 msgid "Select Columns" @@ -5452,91 +6491,116 @@ msgstr "" msgid "Download Data" msgstr "" -#: src/tables/Filter.tsx:89 -#: src/tables/build/BuildOrderTable.tsx:135 +#: src/tables/Filter.tsx:101 msgid "Assigned to me" msgstr "" -#: src/tables/Filter.tsx:90 -#: src/tables/build/BuildOrderTable.tsx:136 +#: src/tables/Filter.tsx:102 msgid "Show orders assigned to me" msgstr "" -#: src/tables/Filter.tsx:97 +#: src/tables/Filter.tsx:106 +#~ msgid "Show overdue orders" +#~ msgstr "Show overdue orders" + +#: src/tables/Filter.tsx:109 +#: src/tables/build/BuildOrderTable.tsx:120 +#: src/tables/sales/SalesOrderAllocationTable.tsx:59 msgid "Outstanding" msgstr "" -#: src/tables/Filter.tsx:98 -msgid "Show outstanding orders" +#: src/tables/Filter.tsx:110 +msgid "Show outstanding items" msgstr "" -#: src/tables/Filter.tsx:105 -#: src/tables/build/BuildOrderTable.tsx:128 +#: src/tables/Filter.tsx:117 msgid "Overdue" msgstr "" -#: src/tables/Filter.tsx:106 -msgid "Show overdue orders" +#: src/tables/Filter.tsx:118 +msgid "Show overdue items" msgstr "" -#: src/tables/FilterSelectDrawer.tsx:51 +#: src/tables/Filter.tsx:125 +msgid "Minimum Date" +msgstr "" + +#: src/tables/Filter.tsx:126 +msgid "Show items after this date" +msgstr "" + +#: src/tables/Filter.tsx:134 +msgid "Maximum Date" +msgstr "" + +#: src/tables/Filter.tsx:135 +msgid "Show items before this date" +msgstr "" + +#: src/tables/Filter.tsx:144 +msgid "Has Project Code" +msgstr "" + +#: src/tables/Filter.tsx:145 +msgid "Show orders with an assigned project code" +msgstr "" + +#: src/tables/FilterSelectDrawer.tsx:55 msgid "Remove filter" msgstr "" -#: src/tables/FilterSelectDrawer.tsx:130 +#: src/tables/FilterSelectDrawer.tsx:159 msgid "Select filter" msgstr "" -#: src/tables/FilterSelectDrawer.tsx:131 +#: src/tables/FilterSelectDrawer.tsx:160 msgid "Filter" msgstr "" -#: src/tables/FilterSelectDrawer.tsx:138 -#: src/tables/build/BuildOrderTestTable.tsx:134 -#: src/tables/purchasing/ManufacturerPartParameterTable.tsx:38 -#: src/tables/stock/StockItemTestResultTable.tsx:186 -msgid "Value" +#: src/tables/FilterSelectDrawer.tsx:168 +msgid "Select date value" msgstr "" -#: src/tables/FilterSelectDrawer.tsx:140 +#: src/tables/FilterSelectDrawer.tsx:176 msgid "Select filter value" msgstr "" -#: src/tables/FilterSelectDrawer.tsx:183 +#: src/tables/FilterSelectDrawer.tsx:219 +#: src/tables/InvenTreeTableHeader.tsx:214 msgid "Table Filters" msgstr "" -#: src/tables/FilterSelectDrawer.tsx:215 +#: src/tables/FilterSelectDrawer.tsx:251 msgid "Add Filter" msgstr "" -#: src/tables/FilterSelectDrawer.tsx:224 +#: src/tables/FilterSelectDrawer.tsx:260 msgid "Clear Filters" msgstr "" -#: src/tables/InvenTreeTable.tsx:123 -#: src/tables/InvenTreeTable.tsx:431 -#: src/tables/InvenTreeTable.tsx:455 +#: src/tables/InvenTreeTable.tsx:96 +#: src/tables/InvenTreeTable.tsx:417 +#: src/tables/InvenTreeTable.tsx:441 msgid "No records found" msgstr "" -#: src/tables/InvenTreeTable.tsx:466 +#: src/tables/InvenTreeTable.tsx:452 msgid "Server returned incorrect data type" msgstr "" -#: src/tables/InvenTreeTable.tsx:474 +#: src/tables/InvenTreeTable.tsx:460 msgid "Bad request" msgstr "" -#: src/tables/InvenTreeTable.tsx:477 +#: src/tables/InvenTreeTable.tsx:463 msgid "Unauthorized" msgstr "" -#: src/tables/InvenTreeTable.tsx:480 +#: src/tables/InvenTreeTable.tsx:466 msgid "Forbidden" msgstr "" -#: src/tables/InvenTreeTable.tsx:483 +#: src/tables/InvenTreeTable.tsx:469 msgid "Not found" msgstr "" @@ -5544,18 +6608,6 @@ msgstr "" #~ msgid "Are you sure you want to delete the selected records?" #~ msgstr "Are you sure you want to delete the selected records?" -#: src/tables/InvenTreeTable.tsx:525 -msgid "Delete Selected Items" -msgstr "" - -#: src/tables/InvenTreeTable.tsx:529 -msgid "Are you sure you want to delete the selected items?" -msgstr "" - -#: src/tables/InvenTreeTable.tsx:531 -msgid "This action cannot be undone!" -msgstr "" - #: src/tables/InvenTreeTable.tsx:535 #~ msgid "Deleted records" #~ msgstr "Deleted records" @@ -5568,31 +6620,56 @@ msgstr "" #~ msgid "Failed to delete records" #~ msgstr "Failed to delete records" +#: src/tables/InvenTreeTable.tsx:552 +#~ msgid "This action cannot be undone!" +#~ msgstr "This action cannot be undone!" + #: src/tables/InvenTreeTable.tsx:594 #: src/tables/InvenTreeTable.tsx:595 #~ msgid "Print actions" #~ msgstr "Print actions" -#: src/tables/InvenTreeTable.tsx:618 -#: src/tables/InvenTreeTable.tsx:619 -msgid "Barcode actions" +#: src/tables/InvenTreeTable.tsx:655 +#: src/tables/InvenTreeTable.tsx:656 +#~ msgid "Barcode actions" +#~ msgstr "Barcode actions" + +#: src/tables/InvenTreeTable.tsx:712 +#~ msgid "Table filters" +#~ msgstr "Table filters" + +#: src/tables/InvenTreeTable.tsx:725 +#~ msgid "Clear custom query filters" +#~ msgstr "Clear custom query filters" + +#: src/tables/InvenTreeTableHeader.tsx:98 +msgid "Delete Selected Items" msgstr "" -#: src/tables/InvenTreeTable.tsx:628 +#: src/tables/InvenTreeTableHeader.tsx:102 +msgid "Are you sure you want to delete the selected items?" +msgstr "" + +#: src/tables/InvenTreeTableHeader.tsx:104 +#: src/tables/plugin/PluginListTable.tsx:305 +msgid "This action cannot be undone" +msgstr "" + +#: src/tables/InvenTreeTableHeader.tsx:142 +msgid "Custom table filters are active" +msgstr "" + +#: src/tables/InvenTreeTableHeader.tsx:169 msgid "Delete selected records" msgstr "" -#: src/tables/InvenTreeTable.tsx:649 +#: src/tables/InvenTreeTableHeader.tsx:188 msgid "Refresh data" msgstr "" -#: src/tables/InvenTreeTable.tsx:675 -msgid "Table filters" -msgstr "" - #: src/tables/TableHoverCard.tsx:35 -msgid "item-{idx}" -msgstr "" +#~ msgid "item-{idx}" +#~ msgstr "item-{idx}" #: src/tables/UploadAction.tsx:7 #~ msgid "Upload Data" @@ -5607,31 +6684,36 @@ msgid "Part Information" msgstr "" #: src/tables/bom/BomTable.tsx:212 -#: src/tables/build/BuildLineTable.tsx:126 +#: src/tables/build/BuildLineTable.tsx:257 #: src/tables/part/PartTable.tsx:125 msgid "External stock" msgstr "" #: src/tables/bom/BomTable.tsx:220 -#: src/tables/build/BuildLineTable.tsx:89 +#: src/tables/build/BuildLineTable.tsx:220 msgid "Includes substitute stock" msgstr "" #: src/tables/bom/BomTable.tsx:229 -#: src/tables/build/BuildLineTable.tsx:99 -#: src/tables/sales/SalesOrderLineItemTable.tsx:127 +#: src/tables/build/BuildLineTable.tsx:230 +#: src/tables/sales/SalesOrderLineItemTable.tsx:135 msgid "Includes variant stock" msgstr "" +#: src/tables/bom/BomTable.tsx:245 +#: src/tables/part/PartTable.tsx:92 +msgid "Building" +msgstr "" + #: src/tables/bom/BomTable.tsx:254 #: src/tables/part/PartTable.tsx:153 -#: src/tables/sales/SalesOrderLineItemTable.tsx:150 -#: src/tables/stock/StockItemTable.tsx:216 +#: src/tables/sales/SalesOrderLineItemTable.tsx:158 +#: src/tables/stock/StockItemTable.tsx:206 msgid "Stock Information" msgstr "" #: src/tables/bom/BomTable.tsx:285 -#: src/tables/build/BuildLineTable.tsx:248 +#: src/tables/build/BuildLineTable.tsx:409 msgid "Consumable item" msgstr "" @@ -5644,7 +6726,7 @@ msgstr "" #~ msgstr "Create BOM Item" #: src/tables/bom/BomTable.tsx:306 -#: src/tables/build/BuildLineTable.tsx:69 +#: src/tables/build/BuildLineTable.tsx:200 msgid "Show testable items" msgstr "" @@ -5657,11 +6739,12 @@ msgid "Show trackable items" msgstr "" #: src/tables/bom/BomTable.tsx:316 -#: src/tables/build/BuildLineTable.tsx:64 +#: src/tables/build/BuildLineTable.tsx:195 msgid "Show assembled items" msgstr "" #: src/tables/bom/BomTable.tsx:321 +#: src/tables/build/BuildLineTable.tsx:180 msgid "Show items with available stock" msgstr "" @@ -5705,7 +6788,7 @@ msgstr "" #: src/tables/bom/BomTable.tsx:345 #: src/tables/bom/UsedInTable.tsx:79 -#: src/tables/build/BuildLineTable.tsx:58 +#: src/tables/build/BuildLineTable.tsx:189 msgid "Optional" msgstr "" @@ -5723,7 +6806,7 @@ msgstr "" #~ msgstr "Bom item deleted" #: src/tables/bom/BomTable.tsx:350 -#: src/tables/build/BuildLineTable.tsx:53 +#: src/tables/build/BuildLineTable.tsx:184 msgid "Consumable" msgstr "" @@ -5749,12 +6832,12 @@ msgid "Show items with pricing" msgstr "" #: src/tables/bom/BomTable.tsx:378 -#: src/tables/bom/BomTable.tsx:511 +#: src/tables/bom/BomTable.tsx:512 msgid "Import BOM Data" msgstr "" #: src/tables/bom/BomTable.tsx:388 -#: src/tables/bom/BomTable.tsx:523 +#: src/tables/bom/BomTable.tsx:526 msgid "Add BOM Item" msgstr "" @@ -5780,7 +6863,7 @@ msgstr "" #: src/tables/bom/BomTable.tsx:423 #: src/tables/bom/BomTable.tsx:426 -#: src/tables/bom/BomTable.tsx:517 +#: src/tables/bom/BomTable.tsx:519 msgid "Validate BOM" msgstr "" @@ -5812,21 +6895,15 @@ msgstr "" msgid "Edit Substitutes" msgstr "" -#: src/tables/bom/BomTable.tsx:539 -#: src/tables/part/PartParameterTable.tsx:193 -#: src/tables/part/PartTestTemplateTable.tsx:252 -msgid "Part is Locked" -msgstr "" - -#: src/tables/bom/BomTable.tsx:544 +#: src/tables/bom/BomTable.tsx:547 msgid "Bill of materials cannot be edited, as the part is locked" msgstr "" #: src/tables/bom/UsedInTable.tsx:33 -#: src/tables/build/BuildLineTable.tsx:63 +#: src/tables/build/BuildLineTable.tsx:194 #: src/tables/part/ParametricPartTable.tsx:233 #: src/tables/part/PartTable.tsx:190 -#: src/tables/stock/StockItemTable.tsx:300 +#: src/tables/stock/StockItemTable.tsx:304 msgid "Assembly" msgstr "" @@ -5844,285 +6921,347 @@ msgstr "" msgid "Show trackable assemblies" msgstr "" -#: src/tables/build/BuildAllocatedStockTable.tsx:54 +#: src/tables/build/BuildAllocatedStockTable.tsx:56 msgid "Allocated to Output" msgstr "" -#: src/tables/build/BuildAllocatedStockTable.tsx:55 +#: src/tables/build/BuildAllocatedStockTable.tsx:57 msgid "Show items allocated to a build output" msgstr "" -#: src/tables/build/BuildAllocatedStockTable.tsx:76 -#: src/tables/part/PartPurchaseOrdersTable.tsx:125 -#: src/tables/sales/SalesOrderAllocationTable.tsx:62 +#: src/tables/build/BuildAllocatedStockTable.tsx:65 +#: src/tables/build/BuildOrderTable.tsx:159 +#: src/tables/part/PartParameterTable.tsx:212 +#: src/tables/part/PartPurchaseOrdersTable.tsx:138 +#: src/tables/sales/ReturnOrderTable.tsx:84 +#: src/tables/sales/SalesOrderAllocationTable.tsx:68 +#: src/tables/sales/SalesOrderTable.tsx:84 +#: src/tables/stock/StockItemTable.tsx:339 +msgid "Include Variants" +msgstr "" + +#: src/tables/build/BuildAllocatedStockTable.tsx:66 +#: src/tables/build/BuildOrderTable.tsx:160 +#: src/tables/part/PartPurchaseOrdersTable.tsx:139 +#: src/tables/sales/ReturnOrderTable.tsx:85 +#: src/tables/sales/SalesOrderAllocationTable.tsx:69 +#: src/tables/sales/SalesOrderTable.tsx:85 +msgid "Include orders for part variants" +msgstr "" + +#: src/tables/build/BuildAllocatedStockTable.tsx:89 +#: src/tables/part/PartPurchaseOrdersTable.tsx:131 +#: src/tables/sales/SalesOrderAllocationTable.tsx:93 msgid "Order Status" msgstr "" -#: src/tables/build/BuildAllocatedStockTable.tsx:96 -#: src/tables/sales/SalesOrderAllocationTable.tsx:75 +#: src/tables/build/BuildAllocatedStockTable.tsx:117 +#: src/tables/sales/SalesOrderAllocationTable.tsx:126 msgid "Allocated Quantity" msgstr "" -#: src/tables/build/BuildAllocatedStockTable.tsx:116 -#: src/tables/sales/SalesOrderAllocationTable.tsx:94 +#: src/tables/build/BuildAllocatedStockTable.tsx:137 +#: src/tables/sales/SalesOrderAllocationTable.tsx:120 msgid "Available Quantity" msgstr "" -#: src/tables/build/BuildAllocatedStockTable.tsx:126 -#: src/tables/build/BuildOrderTestTable.tsx:176 -#: src/tables/build/BuildOrderTestTable.tsx:200 -#: src/tables/build/BuildOutputTable.tsx:312 -msgid "Build Output" +#: src/tables/build/BuildAllocatedStockTable.tsx:164 +#: src/tables/build/BuildLineTable.tsx:513 +msgid "Edit Stock Allocation" msgstr "" -#: src/tables/build/BuildAllocatedStockTable.tsx:143 -msgid "Edit Build Item" -msgstr "" +#: src/tables/build/BuildAllocatedStockTable.tsx:164 +#~ msgid "Edit Build Item" +#~ msgstr "Edit Build Item" -#: src/tables/build/BuildAllocatedStockTable.tsx:153 -msgid "Delete Build Item" -msgstr "" +#: src/tables/build/BuildAllocatedStockTable.tsx:174 +#~ msgid "Delete Build Item" +#~ msgstr "Delete Build Item" -#: src/tables/build/BuildLineTable.tsx:43 -#: src/tables/stock/StockItemTable.tsx:305 -msgid "Allocated" -msgstr "" - -#: src/tables/build/BuildLineTable.tsx:44 -msgid "Show allocated lines" -msgstr "" - -#: src/tables/build/BuildLineTable.tsx:49 -msgid "Show lines with available stock" -msgstr "" - -#: src/tables/build/BuildLineTable.tsx:54 -msgid "Show consumable lines" +#: src/tables/build/BuildAllocatedStockTable.tsx:177 +#: src/tables/build/BuildLineTable.tsx:526 +msgid "Delete Stock Allocation" msgstr "" #: src/tables/build/BuildLineTable.tsx:59 +#~ msgid "Show lines with available stock" +#~ msgstr "Show lines with available stock" + +#: src/tables/build/BuildLineTable.tsx:175 +msgid "Show allocated lines" +msgstr "" + +#: src/tables/build/BuildLineTable.tsx:185 +msgid "Show consumable lines" +msgstr "" + +#: src/tables/build/BuildLineTable.tsx:190 msgid "Show optional lines" msgstr "" -#: src/tables/build/BuildLineTable.tsx:68 +#: src/tables/build/BuildLineTable.tsx:199 #: src/tables/part/PartTable.tsx:208 msgid "Testable" msgstr "" -#: src/tables/build/BuildLineTable.tsx:73 -#: src/tables/stock/StockItemTable.tsx:364 +#: src/tables/build/BuildLineTable.tsx:204 +#: src/tables/stock/StockItemTable.tsx:368 msgid "Tracked" msgstr "" -#: src/tables/build/BuildLineTable.tsx:74 +#: src/tables/build/BuildLineTable.tsx:205 msgid "Show tracked lines" msgstr "" -#: src/tables/build/BuildLineTable.tsx:108 -#: src/tables/sales/SalesOrderLineItemTable.tsx:133 +#: src/tables/build/BuildLineTable.tsx:239 +#: src/tables/sales/SalesOrderLineItemTable.tsx:141 msgid "In production" msgstr "" -#: src/tables/build/BuildLineTable.tsx:136 +#: src/tables/build/BuildLineTable.tsx:267 msgid "Insufficient stock" msgstr "" -#: src/tables/build/BuildLineTable.tsx:152 -#: src/tables/sales/SalesOrderLineItemTable.tsx:121 -#: src/tables/stock/StockItemTable.tsx:186 +#: src/tables/build/BuildLineTable.tsx:283 +#: src/tables/sales/SalesOrderLineItemTable.tsx:129 +#: src/tables/stock/StockItemTable.tsx:175 msgid "No stock available" msgstr "" -#: src/tables/build/BuildLineTable.tsx:201 +#: src/tables/build/BuildLineTable.tsx:355 msgid "Gets Inherited" msgstr "" -#: src/tables/build/BuildLineTable.tsx:210 +#: src/tables/build/BuildLineTable.tsx:366 msgid "Unit Quantity" msgstr "" -#: src/tables/build/BuildLineTable.tsx:267 -#: src/tables/sales/SalesOrderLineItemTable.tsx:230 +#: src/tables/build/BuildLineTable.tsx:381 +msgid "Required Quantity" +msgstr "" + +#: src/tables/build/BuildLineTable.tsx:432 +#: src/tables/sales/SalesOrderLineItemTable.tsx:254 msgid "Create Build Order" msgstr "" -#: src/tables/build/BuildLineTable.tsx:298 -msgid "Allocate Stock" +#: src/tables/build/BuildLineTable.tsx:460 +msgid "Auto allocation in progress" msgstr "" -#: src/tables/build/BuildLineTable.tsx:305 +#: src/tables/build/BuildLineTable.tsx:463 +#: src/tables/build/BuildLineTable.tsx:632 +msgid "Auto Allocate Stock" +msgstr "" + +#: src/tables/build/BuildLineTable.tsx:464 +msgid "Automatically allocate stock to this build according to the selected options" +msgstr "" + +#: src/tables/build/BuildLineTable.tsx:482 +#: src/tables/build/BuildLineTable.tsx:496 +#: src/tables/build/BuildLineTable.tsx:579 +#: src/tables/build/BuildLineTable.tsx:664 +#: src/tables/build/BuildOutputTable.tsx:314 +#: src/tables/build/BuildOutputTable.tsx:319 +msgid "Deallocate Stock" +msgstr "" + +#: src/tables/build/BuildLineTable.tsx:498 +msgid "Deallocate all untracked stock for this build order" +msgstr "" + +#: src/tables/build/BuildLineTable.tsx:500 +msgid "Deallocate stock from the selected line item" +msgstr "" + +#: src/tables/build/BuildLineTable.tsx:504 +msgid "Stock has been deallocated" +msgstr "" + +#: src/tables/build/BuildLineTable.tsx:589 msgid "Order Stock" msgstr "" -#: src/tables/build/BuildLineTable.tsx:312 +#: src/tables/build/BuildLineTable.tsx:596 msgid "Build Stock" msgstr "" -#: src/tables/build/BuildOrderTable.tsx:111 -msgid "Show active orders" +#: src/tables/build/BuildLineTable.tsx:610 +msgid "View Part" msgstr "" #: src/tables/build/BuildOrderTable.tsx:116 -msgid "Cascade" -msgstr "" +#~ msgid "Cascade" +#~ msgstr "Cascade" #: src/tables/build/BuildOrderTable.tsx:117 -msgid "Display recursive child orders" +#~ msgid "Display recursive child orders" +#~ msgstr "Display recursive child orders" + +#: src/tables/build/BuildOrderTable.tsx:121 +msgid "Show outstanding orders" msgstr "" -#: src/tables/build/BuildOrderTable.tsx:123 -#: src/tables/part/PartPurchaseOrdersTable.tsx:126 -#: src/tables/purchasing/PurchaseOrderTable.tsx:56 -#: src/tables/sales/ReturnOrderTable.tsx:47 -#: src/tables/sales/SalesOrderTable.tsx:54 +#: src/tables/build/BuildOrderTable.tsx:121 +#~ msgid "Show active orders" +#~ msgstr "Show active orders" + +#: src/tables/build/BuildOrderTable.tsx:122 +#~ msgid "Show overdue status" +#~ msgstr "Show overdue status" + +#: src/tables/build/BuildOrderTable.tsx:126 +#: src/tables/part/PartPurchaseOrdersTable.tsx:132 +#: src/tables/purchasing/PurchaseOrderTable.tsx:59 +#: src/tables/sales/ReturnOrderTable.tsx:57 +#: src/tables/sales/SalesOrderTable.tsx:57 msgid "Filter by order status" msgstr "" -#: src/tables/build/BuildOrderTable.tsx:130 -msgid "Show overdue status" -msgstr "" - -#: src/tables/build/BuildOrderTable.tsx:141 -#: src/tables/purchasing/PurchaseOrderTable.tsx:65 -#: src/tables/sales/ReturnOrderTable.tsx:56 -#: src/tables/sales/SalesOrderTable.tsx:63 +#: src/tables/build/BuildOrderTable.tsx:136 +#: src/tables/purchasing/PurchaseOrderTable.tsx:70 +#: src/tables/sales/ReturnOrderTable.tsx:68 +#: src/tables/sales/SalesOrderTable.tsx:68 msgid "Filter by project code" msgstr "" -#: src/tables/build/BuildOrderTable.tsx:146 -#: src/tables/purchasing/PurchaseOrderTable.tsx:70 -#: src/tables/sales/ReturnOrderTable.tsx:61 -#: src/tables/sales/SalesOrderTable.tsx:68 -msgid "Has Project Code" -msgstr "" - -#: src/tables/build/BuildOrderTable.tsx:147 +#: src/tables/build/BuildOrderTable.tsx:139 #: src/tables/purchasing/PurchaseOrderTable.tsx:71 #: src/tables/sales/ReturnOrderTable.tsx:62 #: src/tables/sales/SalesOrderTable.tsx:69 -msgid "Filter by whether the purchase order has a project code" -msgstr "" +#~ msgid "Filter by whether the purchase order has a project code" +#~ msgstr "Filter by whether the purchase order has a project code" -#: src/tables/build/BuildOrderTable.tsx:152 +#: src/tables/build/BuildOrderTable.tsx:143 msgid "Filter by user who issued this order" msgstr "" -#: src/tables/build/BuildOrderTable.tsx:158 -#: src/tables/purchasing/PurchaseOrderTable.tsx:76 -#: src/tables/sales/ReturnOrderTable.tsx:67 -#: src/tables/sales/SalesOrderTable.tsx:74 +#: src/tables/build/BuildOrderTable.tsx:149 +#: src/tables/purchasing/PurchaseOrderTable.tsx:77 +#: src/tables/sales/ReturnOrderTable.tsx:75 +#: src/tables/sales/SalesOrderTable.tsx:75 msgid "Filter by responsible owner" msgstr "" -#: src/tables/build/BuildOrderTestTable.tsx:75 -#: src/tables/build/BuildOrderTestTable.tsx:111 -#: src/tables/stock/StockItemTestResultTable.tsx:257 -#: src/tables/stock/StockItemTestResultTable.tsx:329 -#: src/tables/stock/StockItemTestResultTable.tsx:384 +#: src/tables/build/BuildOrderTestTable.tsx:76 +#: src/tables/build/BuildOrderTestTable.tsx:112 +#: src/tables/stock/StockItemTestResultTable.tsx:275 +#: src/tables/stock/StockItemTestResultTable.tsx:347 +#: src/tables/stock/StockItemTestResultTable.tsx:403 msgid "Add Test Result" msgstr "" -#: src/tables/build/BuildOrderTestTable.tsx:82 -#: src/tables/stock/StockItemTestResultTable.tsx:259 +#: src/tables/build/BuildOrderTestTable.tsx:83 +#: src/tables/stock/StockItemTestResultTable.tsx:277 msgid "Test result added" msgstr "" -#: src/tables/build/BuildOrderTestTable.tsx:110 -#: src/tables/stock/StockItemTestResultTable.tsx:174 +#: src/tables/build/BuildOrderTestTable.tsx:111 +#: src/tables/stock/StockItemTestResultTable.tsx:180 msgid "No Result" msgstr "" -#: src/tables/build/BuildOrderTestTable.tsx:220 +#: src/tables/build/BuildOrderTestTable.tsx:221 msgid "Show build outputs currently in production" msgstr "" +#: src/tables/build/BuildOutputTable.tsx:76 +msgid "Build Output Stock Allocation" +msgstr "" + #: src/tables/build/BuildOutputTable.tsx:161 #~ msgid "Delete build output" #~ msgstr "Delete build output" -#: src/tables/build/BuildOutputTable.tsx:173 -#: src/tables/build/BuildOutputTable.tsx:211 +#: src/tables/build/BuildOutputTable.tsx:258 +#: src/tables/build/BuildOutputTable.tsx:374 msgid "Add Build Output" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:216 +#: src/tables/build/BuildOutputTable.tsx:304 +#~ msgid "Edit build output" +#~ msgstr "Edit build output" + +#: src/tables/build/BuildOutputTable.tsx:306 +#: src/tables/build/BuildOutputTable.tsx:417 +msgid "Edit Build Output" +msgstr "" + +#: src/tables/build/BuildOutputTable.tsx:321 +msgid "This action will deallocate all stock from the selected build output" +msgstr "" + +#: src/tables/build/BuildOutputTable.tsx:341 msgid "Complete selected outputs" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:226 +#: src/tables/build/BuildOutputTable.tsx:352 msgid "Scrap selected outputs" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:236 +#: src/tables/build/BuildOutputTable.tsx:363 msgid "Cancel selected outputs" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:252 +#: src/tables/build/BuildOutputTable.tsx:385 msgid "Allocate" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:253 +#: src/tables/build/BuildOutputTable.tsx:386 msgid "Allocate stock to build output" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:259 +#: src/tables/build/BuildOutputTable.tsx:396 msgid "Deallocate" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:260 +#: src/tables/build/BuildOutputTable.tsx:397 msgid "Deallocate stock from build output" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:267 +#: src/tables/build/BuildOutputTable.tsx:408 msgid "Complete build output" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:276 +#: src/tables/build/BuildOutputTable.tsx:424 msgid "Scrap" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:277 +#: src/tables/build/BuildOutputTable.tsx:425 msgid "Scrap build output" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:280 -#~ msgid "Allocated Items" -#~ msgstr "Allocated Items" - -#: src/tables/build/BuildOutputTable.tsx:287 +#: src/tables/build/BuildOutputTable.tsx:435 msgid "Cancel build output" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:325 -msgid "Batch" -msgstr "" - -#: src/tables/build/BuildOutputTable.tsx:340 +#: src/tables/build/BuildOutputTable.tsx:488 msgid "Allocated Lines" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:355 +#: src/tables/build/BuildOutputTable.tsx:503 msgid "Required Tests" msgstr "" -#: src/tables/company/AddressTable.tsx:121 -#: src/tables/company/AddressTable.tsx:185 +#: src/tables/company/AddressTable.tsx:118 +#: src/tables/company/AddressTable.tsx:183 msgid "Add Address" msgstr "" -#: src/tables/company/AddressTable.tsx:126 +#: src/tables/company/AddressTable.tsx:123 msgid "Address created" msgstr "" -#: src/tables/company/AddressTable.tsx:135 +#: src/tables/company/AddressTable.tsx:132 msgid "Edit Address" msgstr "" -#: src/tables/company/AddressTable.tsx:143 +#: src/tables/company/AddressTable.tsx:140 msgid "Delete Address" msgstr "" -#: src/tables/company/AddressTable.tsx:144 +#: src/tables/company/AddressTable.tsx:141 msgid "Are you sure you want to delete this address?" msgstr "" @@ -6130,24 +7269,24 @@ msgstr "" #~ msgid "New Company" #~ msgstr "New Company" -#: src/tables/company/CompanyTable.tsx:74 -#: src/tables/company/CompanyTable.tsx:123 +#: src/tables/company/CompanyTable.tsx:75 +#: src/tables/company/CompanyTable.tsx:125 msgid "Add Company" msgstr "" -#: src/tables/company/CompanyTable.tsx:96 +#: src/tables/company/CompanyTable.tsx:97 msgid "Show active companies" msgstr "" -#: src/tables/company/CompanyTable.tsx:101 +#: src/tables/company/CompanyTable.tsx:102 msgid "Show companies which are suppliers" msgstr "" -#: src/tables/company/CompanyTable.tsx:106 +#: src/tables/company/CompanyTable.tsx:107 msgid "Show companies which are manufacturers" msgstr "" -#: src/tables/company/CompanyTable.tsx:111 +#: src/tables/company/CompanyTable.tsx:112 msgid "Show companies which are customers" msgstr "" @@ -6163,96 +7302,99 @@ msgstr "" msgid "Delete Contact" msgstr "" -#: src/tables/company/ContactTable.tsx:129 +#: src/tables/company/ContactTable.tsx:130 msgid "Add contact" msgstr "" -#: src/tables/general/AttachmentTable.tsx:130 +#: src/tables/general/AttachmentTable.tsx:135 msgid "File uploaded" msgstr "" -#: src/tables/general/AttachmentTable.tsx:131 +#: src/tables/general/AttachmentTable.tsx:136 msgid "File {0} uploaded successfully" msgstr "" -#: src/tables/general/AttachmentTable.tsx:142 +#: src/tables/general/AttachmentTable.tsx:147 msgid "Upload Error" msgstr "" -#: src/tables/general/AttachmentTable.tsx:143 +#: src/tables/general/AttachmentTable.tsx:148 msgid "File could not be uploaded" msgstr "" -#: src/tables/general/AttachmentTable.tsx:191 +#: src/tables/general/AttachmentTable.tsx:196 msgid "Upload Attachment" msgstr "" -#: src/tables/general/AttachmentTable.tsx:201 +#: src/tables/general/AttachmentTable.tsx:206 msgid "Edit Attachment" msgstr "" -#: src/tables/general/AttachmentTable.tsx:215 +#: src/tables/general/AttachmentTable.tsx:220 msgid "Delete Attachment" msgstr "" -#: src/tables/general/AttachmentTable.tsx:225 +#: src/tables/general/AttachmentTable.tsx:230 msgid "Is Link" msgstr "" -#: src/tables/general/AttachmentTable.tsx:226 +#: src/tables/general/AttachmentTable.tsx:231 msgid "Show link attachments" msgstr "" -#: src/tables/general/AttachmentTable.tsx:230 +#: src/tables/general/AttachmentTable.tsx:235 msgid "Is File" msgstr "" -#: src/tables/general/AttachmentTable.tsx:231 +#: src/tables/general/AttachmentTable.tsx:236 msgid "Show file attachments" msgstr "" -#: src/tables/general/AttachmentTable.tsx:240 +#: src/tables/general/AttachmentTable.tsx:245 msgid "Add attachment" msgstr "" -#: src/tables/general/AttachmentTable.tsx:251 -msgid "Add external link" -msgstr "" - #: src/tables/general/AttachmentTable.tsx:254 #~ msgid "Upload attachment" #~ msgstr "Upload attachment" -#: src/tables/general/AttachmentTable.tsx:299 +#: src/tables/general/AttachmentTable.tsx:256 +msgid "Add external link" +msgstr "" + +#: src/tables/general/AttachmentTable.tsx:304 msgid "No attachments found" msgstr "" -#: src/tables/general/AttachmentTable.tsx:337 +#: src/tables/general/AttachmentTable.tsx:343 msgid "Drag attachment file here to upload" msgstr "" #: src/tables/general/ExtraLineItemTable.tsx:86 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:251 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:60 -#: src/tables/sales/SalesOrderLineItemTable.tsx:196 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:263 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:362 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:72 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:168 +#: src/tables/sales/SalesOrderLineItemTable.tsx:206 +#: src/tables/sales/SalesOrderLineItemTable.tsx:291 msgid "Add Line Item" msgstr "" #: src/tables/general/ExtraLineItemTable.tsx:98 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:271 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:72 -#: src/tables/sales/SalesOrderLineItemTable.tsx:214 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:283 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:84 +#: src/tables/sales/SalesOrderLineItemTable.tsx:224 msgid "Edit Line Item" msgstr "" #: src/tables/general/ExtraLineItemTable.tsx:106 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:279 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:80 -#: src/tables/sales/SalesOrderLineItemTable.tsx:222 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:291 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:92 +#: src/tables/sales/SalesOrderLineItemTable.tsx:232 msgid "Delete Line Item" msgstr "" -#: src/tables/general/ExtraLineItemTable.tsx:142 +#: src/tables/general/ExtraLineItemTable.tsx:143 msgid "Add Extra Line Item" msgstr "" @@ -6261,12 +7403,12 @@ msgid "Machine restarted" msgstr "" #: src/tables/machine/MachineListTable.tsx:212 -#: src/tables/machine/MachineListTable.tsx:263 +#: src/tables/machine/MachineListTable.tsx:261 msgid "Edit machine" msgstr "" #: src/tables/machine/MachineListTable.tsx:226 -#: src/tables/machine/MachineListTable.tsx:267 +#: src/tables/machine/MachineListTable.tsx:265 msgid "Delete machine" msgstr "" @@ -6278,51 +7420,50 @@ msgstr "" msgid "Are you sure you want to remove the machine \"{0}\"?" msgstr "" -#: src/tables/machine/MachineListTable.tsx:255 -#: src/tables/machine/MachineListTable.tsx:432 +#: src/tables/machine/MachineListTable.tsx:254 +#: src/tables/machine/MachineListTable.tsx:442 msgid "Restart required" msgstr "" -#: src/tables/machine/MachineListTable.tsx:259 +#: src/tables/machine/MachineListTable.tsx:258 msgid "Machine Actions" msgstr "" -#: src/tables/machine/MachineListTable.tsx:272 +#: src/tables/machine/MachineListTable.tsx:270 msgid "Restart" msgstr "" -#: src/tables/machine/MachineListTable.tsx:274 +#: src/tables/machine/MachineListTable.tsx:272 msgid "Restart machine" msgstr "" -#: src/tables/machine/MachineListTable.tsx:276 +#: src/tables/machine/MachineListTable.tsx:274 msgid "manual restart required" msgstr "" +#: src/tables/machine/MachineListTable.tsx:291 +#~ msgid "Machine information" +#~ msgstr "Machine information" + #: src/tables/machine/MachineListTable.tsx:292 -msgid "Machine information" +msgid "Machine Information" msgstr "" -#: src/tables/machine/MachineListTable.tsx:303 -#: src/tables/machine/MachineListTable.tsx:599 +#: src/tables/machine/MachineListTable.tsx:302 +#: src/tables/machine/MachineListTable.tsx:610 msgid "Machine Type" msgstr "" -#: src/tables/machine/MachineListTable.tsx:316 +#: src/tables/machine/MachineListTable.tsx:315 msgid "Machine Driver" msgstr "" -#: src/tables/machine/MachineListTable.tsx:329 +#: src/tables/machine/MachineListTable.tsx:330 msgid "Initialized" msgstr "" -#: src/tables/machine/MachineListTable.tsx:350 -#: src/tables/machine/MachineTypeTable.tsx:261 -msgid "Errors" -msgstr "" - -#: src/tables/machine/MachineListTable.tsx:358 -#: src/tables/machine/MachineTypeTable.tsx:269 +#: src/tables/machine/MachineListTable.tsx:359 +#: src/tables/machine/MachineTypeTable.tsx:290 msgid "No errors reported" msgstr "" @@ -6330,7 +7471,7 @@ msgstr "" msgid "Machine Settings" msgstr "" -#: src/tables/machine/MachineListTable.tsx:389 +#: src/tables/machine/MachineListTable.tsx:394 msgid "Driver Settings" msgstr "" @@ -6338,86 +7479,109 @@ msgstr "" #~ msgid "Create machine" #~ msgstr "Create machine" -#: src/tables/machine/MachineListTable.tsx:506 +#: src/tables/machine/MachineListTable.tsx:516 +#: src/tables/machine/MachineListTable.tsx:558 msgid "Add machine" msgstr "" #: src/tables/machine/MachineListTable.tsx:561 -msgid "Machine detail" +#~ msgid "Machine detail" +#~ msgstr "Machine detail" + +#: src/tables/machine/MachineListTable.tsx:572 +msgid "Machine Detail" msgstr "" -#: src/tables/machine/MachineListTable.tsx:608 +#: src/tables/machine/MachineListTable.tsx:619 msgid "Driver" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:73 +#: src/tables/machine/MachineTypeTable.tsx:78 msgid "Builtin driver" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:89 +#: src/tables/machine/MachineTypeTable.tsx:96 +msgid "Not Found" +msgstr "" + +#: src/tables/machine/MachineTypeTable.tsx:99 msgid "Machine type not found." msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:97 -msgid "Machine type information" +#: src/tables/machine/MachineTypeTable.tsx:99 +#~ msgid "Machine type information" +#~ msgstr "Machine type information" + +#: src/tables/machine/MachineTypeTable.tsx:109 +msgid "Machine Type Information" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:110 -#: src/tables/machine/MachineTypeTable.tsx:217 +#: src/tables/machine/MachineTypeTable.tsx:124 +#: src/tables/machine/MachineTypeTable.tsx:238 msgid "Slug" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:118 -#: src/tables/machine/MachineTypeTable.tsx:238 +#: src/tables/machine/MachineTypeTable.tsx:135 +#: src/tables/machine/MachineTypeTable.tsx:259 msgid "Provider plugin" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:130 -#: src/tables/machine/MachineTypeTable.tsx:250 +#: src/tables/machine/MachineTypeTable.tsx:147 +#: src/tables/machine/MachineTypeTable.tsx:271 msgid "Provider file" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:135 -#: src/tables/machine/MachineTypeTable.tsx:255 -#: src/tables/plugin/PluginListTable.tsx:180 -#: src/tables/plugin/PluginListTable.tsx:568 -msgid "Builtin" +#: src/tables/machine/MachineTypeTable.tsx:148 +#~ msgid "Available drivers" +#~ msgstr "Available drivers" + +#: src/tables/machine/MachineTypeTable.tsx:162 +msgid "Available Drivers" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:146 -msgid "Available drivers" -msgstr "" - -#: src/tables/machine/MachineTypeTable.tsx:196 +#: src/tables/machine/MachineTypeTable.tsx:217 msgid "Machine driver not found." msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:204 +#: src/tables/machine/MachineTypeTable.tsx:225 msgid "Machine driver information" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:224 +#: src/tables/machine/MachineTypeTable.tsx:245 msgid "Machine type" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:327 +#: src/tables/machine/MachineTypeTable.tsx:338 +#~ msgid "Machine type detail" +#~ msgstr "Machine type detail" + +#: src/tables/machine/MachineTypeTable.tsx:348 msgid "Builtin type" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:336 -msgid "Machine type detail" +#: src/tables/machine/MachineTypeTable.tsx:348 +#~ msgid "Machine driver detail" +#~ msgstr "Machine driver detail" + +#: src/tables/machine/MachineTypeTable.tsx:357 +msgid "Machine Type Detail" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:346 -msgid "Machine driver detail" +#: src/tables/machine/MachineTypeTable.tsx:367 +msgid "Machine Driver Detail" msgstr "" #: src/tables/notifications/NotificationsTable.tsx:26 msgid "Age" msgstr "" +#: src/tables/notifications/NotificationsTable.tsx:36 +msgid "Notification" +msgstr "" + #: src/tables/notifications/NotificationsTable.tsx:40 #: src/tables/plugin/PluginErrorTable.tsx:37 +#: src/tables/settings/ErrorTable.tsx:50 msgid "Message" msgstr "" @@ -6451,33 +7615,32 @@ msgstr "" msgid "Show assembly parts" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:68 +#: src/tables/part/PartCategoryTable.tsx:48 +msgid "You are subscribed to notifications for this category" +msgstr "" + +#: src/tables/part/PartCategoryTable.tsx:80 #: src/tables/part/PartTable.tsx:196 msgid "Include Subcategories" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:69 +#: src/tables/part/PartCategoryTable.tsx:81 msgid "Include subcategories in results" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:74 +#: src/tables/part/PartCategoryTable.tsx:86 msgid "Show structural categories" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:78 -#: src/tables/part/PartTable.tsx:294 -msgid "Subscribed" -msgstr "" - -#: src/tables/part/PartCategoryTable.tsx:79 +#: src/tables/part/PartCategoryTable.tsx:91 msgid "Show categories to which the user is subscribed" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:86 +#: src/tables/part/PartCategoryTable.tsx:100 msgid "New Part Category" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:112 +#: src/tables/part/PartCategoryTable.tsx:129 msgid "Add Part Category" msgstr "" @@ -6523,11 +7686,6 @@ msgstr "" msgid "Part parameters cannot be edited, as the part is locked" msgstr "" -#: src/tables/part/PartParameterTable.tsx:212 -#: src/tables/stock/StockItemTable.tsx:335 -msgid "Include Variants" -msgstr "" - #: src/tables/part/PartParameterTemplateTable.tsx:31 msgid "Checkbox" msgstr "" @@ -6554,6 +7712,7 @@ msgid "Show templates with units" msgstr "" #: src/tables/part/PartParameterTemplateTable.tsx:85 +#: src/tables/part/PartParameterTemplateTable.tsx:141 msgid "Add Parameter Template" msgstr "" @@ -6566,23 +7725,19 @@ msgid "Delete Parameter Template" msgstr "" #: src/tables/part/PartParameterTemplateTable.tsx:141 -msgid "Add parameter template" -msgstr "" +#~ msgid "Add parameter template" +#~ msgstr "Add parameter template" -#: src/tables/part/PartPurchaseOrdersTable.tsx:77 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:162 +#: src/tables/part/PartPurchaseOrdersTable.tsx:78 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:168 msgid "Total Quantity" msgstr "" -#: src/tables/part/PartPurchaseOrdersTable.tsx:115 -msgid "Pending" -msgstr "" - -#: src/tables/part/PartPurchaseOrdersTable.tsx:116 +#: src/tables/part/PartPurchaseOrdersTable.tsx:122 msgid "Show pending orders" msgstr "" -#: src/tables/part/PartPurchaseOrdersTable.tsx:121 +#: src/tables/part/PartPurchaseOrdersTable.tsx:127 msgid "Show received items" msgstr "" @@ -6728,22 +7883,13 @@ msgstr "" msgid "Results" msgstr "" -#: src/tables/part/PartTestTemplateTable.tsx:76 -msgid "No Results" -msgstr "" - -#: src/tables/part/PartTestTemplateTable.tsx:106 -#: src/tables/stock/StockItemTestResultTable.tsx:365 -msgid "Required" -msgstr "" - #: src/tables/part/PartTestTemplateTable.tsx:107 msgid "Show required tests" msgstr "" #: src/tables/part/PartTestTemplateTable.tsx:111 -#: src/tables/settings/TemplateTable.tsx:167 -#: src/tables/settings/TemplateTable.tsx:283 +#: src/tables/settings/TemplateTable.tsx:247 +#: src/tables/settings/TemplateTable.tsx:363 msgid "Enabled" msgstr "" @@ -6784,7 +7930,7 @@ msgid "Show tests which have recorded results" msgstr "" #: src/tables/part/PartTestTemplateTable.tsx:154 -#: src/tables/part/PartTestTemplateTable.tsx:237 +#: src/tables/part/PartTestTemplateTable.tsx:238 msgid "Add Test Template" msgstr "" @@ -6808,7 +7954,7 @@ msgstr "" msgid "View Parent Part" msgstr "" -#: src/tables/part/PartTestTemplateTable.tsx:257 +#: src/tables/part/PartTestTemplateTable.tsx:258 msgid "Part templates cannot be edited, as the part is locked" msgstr "" @@ -6836,28 +7982,49 @@ msgstr "" msgid "Show trackable variants" msgstr "" -#: src/tables/part/RelatedPartTable.tsx:84 +#: src/tables/part/RelatedPartTable.tsx:86 +#: src/tables/part/RelatedPartTable.tsx:109 msgid "Add Related Part" msgstr "" -#: src/tables/part/RelatedPartTable.tsx:99 +#: src/tables/part/RelatedPartTable.tsx:101 msgid "Delete Related Part" msgstr "" -#: src/tables/part/RelatedPartTable.tsx:106 -msgid "Add related part" -msgstr "" +#: src/tables/part/RelatedPartTable.tsx:109 +#~ msgid "Add related part" +#~ msgstr "Add related part" #: src/tables/plugin/PluginErrorTable.tsx:29 msgid "Stage" msgstr "" -#: src/tables/plugin/PluginListTable.tsx:95 -msgid "Plugin with key {pluginKey} not found" +#: src/tables/plugin/PluginListTable.tsx:42 +msgid "Plugin is active" msgstr "" +#: src/tables/plugin/PluginListTable.tsx:48 +msgid "Plugin is inactive" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:55 +msgid "Plugin is not installed" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:76 +msgid "Plugin" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:95 +#~ msgid "Plugin with key {pluginKey} not found" +#~ msgstr "Plugin with key {pluginKey} not found" + #: src/tables/plugin/PluginListTable.tsx:97 -msgid "An error occurred while fetching plugin details" +#~ msgid "An error occurred while fetching plugin details" +#~ msgstr "An error occurred while fetching plugin details" + +#: src/tables/plugin/PluginListTable.tsx:109 +msgid "Description not available" msgstr "" #: src/tables/plugin/PluginListTable.tsx:113 @@ -6865,12 +8032,8 @@ msgstr "" #~ msgstr "Plugin with id {id} not found" #: src/tables/plugin/PluginListTable.tsx:122 -msgid "Plugin information" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:134 -msgid "Author" -msgstr "" +#~ msgid "Plugin information" +#~ msgstr "Plugin information" #: src/tables/plugin/PluginListTable.tsx:134 #~ msgid "Plugin Actions" @@ -6881,79 +8044,124 @@ msgstr "" #~ msgid "Edit plugin" #~ msgstr "Edit plugin" +#: src/tables/plugin/PluginListTable.tsx:144 +msgid "Confirm plugin activation" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:145 +msgid "Confirm plugin deactivation" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:150 +msgid "The selected plugin will be activated" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:151 +msgid "The selected plugin will be deactivated" +msgstr "" + #: src/tables/plugin/PluginListTable.tsx:152 #: src/tables/plugin/PluginListTable.tsx:153 #~ msgid "Reload" #~ msgstr "Reload" -#: src/tables/plugin/PluginListTable.tsx:154 -msgid "Plugin is not active" -msgstr "" - #: src/tables/plugin/PluginListTable.tsx:163 -msgid "Package information" -msgstr "" +#~ msgid "Package information" +#~ msgstr "Package information" #: src/tables/plugin/PluginListTable.tsx:169 -msgid "Package Name" +msgid "Deactivate" msgstr "" -#: src/tables/plugin/PluginListTable.tsx:175 -msgid "Installation Path" +#: src/tables/plugin/PluginListTable.tsx:183 +msgid "Activate" msgstr "" -#: src/tables/plugin/PluginListTable.tsx:185 -msgid "Package" +#: src/tables/plugin/PluginListTable.tsx:184 +msgid "Activate selected plugin" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:196 +msgid "Update selected plugin" msgstr "" #: src/tables/plugin/PluginListTable.tsx:197 -msgid "Plugin settings" -msgstr "" +#~ msgid "Plugin settings" +#~ msgstr "Plugin settings" #: src/tables/plugin/PluginListTable.tsx:214 -msgid "Plugin is active" +#: src/tables/stock/InstalledItemsTable.tsx:107 +msgid "Uninstall" msgstr "" -#: src/tables/plugin/PluginListTable.tsx:220 -msgid "Plugin is inactive" +#: src/tables/plugin/PluginListTable.tsx:215 +msgid "Uninstall selected plugin" msgstr "" -#: src/tables/plugin/PluginListTable.tsx:227 -msgid "Plugin is not installed" +#: src/tables/plugin/PluginListTable.tsx:233 +msgid "Delete selected plugin configuration" msgstr "" -#: src/tables/plugin/PluginListTable.tsx:253 -msgid "Plugin" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:287 -msgid "Description not available" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:319 -msgid "Confirm plugin activation" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:320 -msgid "Confirm plugin deactivation" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:325 -msgid "The selected plugin will be activated" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:326 -msgid "The selected plugin will be deactivated" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:334 +#: src/tables/plugin/PluginListTable.tsx:249 msgid "Activate Plugin" msgstr "" +#: src/tables/plugin/PluginListTable.tsx:270 +msgid "Install plugin" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:283 +msgid "Install" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:284 +msgid "Plugin installed successfully" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:289 +msgid "Uninstall Plugin" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:301 +msgid "Confirm plugin uninstall" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:304 +msgid "The selected plugin will be uninstalled." +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:308 +#~ msgid "This action cannot be undone." +#~ msgstr "This action cannot be undone." + +#: src/tables/plugin/PluginListTable.tsx:309 +msgid "Plugin uninstalled successfully" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:317 +msgid "Delete Plugin" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:318 +msgid "Deleting this plugin configuration will remove all associated settings and data. Are you sure you want to delete this plugin?" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:331 +msgid "Plugins reloaded" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:332 +msgid "Plugins were reloaded successfully" +msgstr "" + #: src/tables/plugin/PluginListTable.tsx:338 #~ msgid "Deactivate Plugin" #~ msgstr "Deactivate Plugin" +#: src/tables/plugin/PluginListTable.tsx:350 +msgid "Reload Plugins" +msgstr "" + #: src/tables/plugin/PluginListTable.tsx:354 #~ msgid "The following plugin will be activated" #~ msgstr "The following plugin will be activated" @@ -6962,16 +8170,16 @@ msgstr "" #~ msgid "The following plugin will be deactivated" #~ msgstr "The following plugin will be deactivated" -#: src/tables/plugin/PluginListTable.tsx:362 -msgid "Deactivate" +#: src/tables/plugin/PluginListTable.tsx:357 +msgid "Install Plugin" msgstr "" #: src/tables/plugin/PluginListTable.tsx:366 #~ msgid "Confirm" #~ msgstr "Confirm" -#: src/tables/plugin/PluginListTable.tsx:373 -msgid "Activate" +#: src/tables/plugin/PluginListTable.tsx:374 +msgid "Plugin Detail" msgstr "" #: src/tables/plugin/PluginListTable.tsx:376 @@ -6998,76 +8206,12 @@ msgstr "" #~ msgid "Error updating plugin" #~ msgstr "Error updating plugin" -#: src/tables/plugin/PluginListTable.tsx:406 -msgid "Uninstall" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:438 -msgid "Install plugin" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:451 -msgid "Install" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:452 -msgid "Plugin installed successfully" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:457 -msgid "Uninstall Plugin" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:469 -msgid "Confirm plugin uninstall" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:472 -msgid "The selected plugin will be uninstalled." -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:473 -msgid "This action cannot be undone." -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:477 -msgid "Plugin uninstalled successfully" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:484 -msgid "Delete Plugin" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:485 -msgid "Deleting this plugin configuration will remove all associated settings and data. Are you sure you want to delete this plugin?" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:498 -msgid "Plugins reloaded" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:499 -msgid "Plugins were reloaded successfully" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:515 -msgid "Reload Plugins" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:524 -msgid "Install Plugin" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:544 -msgid "Plugin Detail" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:573 +#: src/tables/plugin/PluginListTable.tsx:411 msgid "Sample" msgstr "" -#: src/tables/plugin/PluginListTable.tsx:578 -#: src/tables/stock/StockItemTable.tsx:340 +#: src/tables/plugin/PluginListTable.tsx:416 +#: src/tables/stock/StockItemTable.tsx:344 msgid "Installed" msgstr "" @@ -7116,82 +8260,78 @@ msgstr "" #~ msgid "Are you sure you want to remove this manufacturer part?" #~ msgstr "Are you sure you want to remove this manufacturer part?" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:102 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:339 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:103 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:356 msgid "Import Line Items" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:135 -msgid "Part Description" -msgstr "" - -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:201 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:207 msgid "Supplier Code" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:208 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:214 msgid "Supplier Link" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:215 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:220 msgid "Manufacturer Code" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:229 -msgid "Destination" +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:248 +msgid "Show line items which have been received" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:300 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:316 msgid "Receive line item" msgstr "" #: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:344 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:142 -#: src/tables/sales/SalesOrderLineItemTable.tsx:240 -msgid "Add line item" -msgstr "" +#: src/tables/sales/ReturnOrderLineItemTable.tsx:160 +#: src/tables/sales/SalesOrderLineItemTable.tsx:258 +#~ msgid "Add line item" +#~ msgstr "Add line item" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:354 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:373 msgid "Receive items" msgstr "" -#: src/tables/purchasing/SupplierPartTable.tsx:93 +#: src/tables/purchasing/SupplierPartTable.tsx:95 msgid "MPN" msgstr "" -#: src/tables/purchasing/SupplierPartTable.tsx:122 +#: src/tables/purchasing/SupplierPartTable.tsx:124 msgid "Base units" msgstr "" -#: src/tables/purchasing/SupplierPartTable.tsx:170 +#: src/tables/purchasing/SupplierPartTable.tsx:172 msgid "Supplier part created" msgstr "" -#: src/tables/purchasing/SupplierPartTable.tsx:176 +#: src/tables/purchasing/SupplierPartTable.tsx:179 msgid "Add supplier part" msgstr "" -#: src/tables/purchasing/SupplierPartTable.tsx:188 +#: src/tables/purchasing/SupplierPartTable.tsx:191 msgid "Show active supplier parts" msgstr "" -#: src/tables/purchasing/SupplierPartTable.tsx:192 -msgid "Active Part" -msgstr "" - -#: src/tables/purchasing/SupplierPartTable.tsx:193 -msgid "Show active internal parts" -msgstr "" - #: src/tables/purchasing/SupplierPartTable.tsx:193 #~ msgid "Supplier part updated" #~ msgstr "Supplier part updated" -#: src/tables/purchasing/SupplierPartTable.tsx:197 +#: src/tables/purchasing/SupplierPartTable.tsx:195 +msgid "Active Part" +msgstr "" + +#: src/tables/purchasing/SupplierPartTable.tsx:196 +msgid "Show active internal parts" +msgstr "" + +#: src/tables/purchasing/SupplierPartTable.tsx:200 msgid "Active Supplier" msgstr "" -#: src/tables/purchasing/SupplierPartTable.tsx:198 +#: src/tables/purchasing/SupplierPartTable.tsx:201 msgid "Show active suppliers" msgstr "" @@ -7203,99 +8343,187 @@ msgstr "" #~ msgid "Are you sure you want to remove this supplier part?" #~ msgstr "Are you sure you want to remove this supplier part?" -#: src/tables/sales/ReturnOrderLineItemTable.tsx:114 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:139 msgid "Received Date" msgstr "" -#: src/tables/sales/ReturnOrderLineItemTable.tsx:128 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:153 msgid "Show items which have been received" msgstr "" -#: src/tables/sales/ReturnOrderLineItemTable.tsx:133 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:158 msgid "Filter by line item status" msgstr "" -#: src/tables/sales/ReturnOrderLineItemTable.tsx:158 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:176 +msgid "Receive selected items" +msgstr "" + +#: src/tables/sales/ReturnOrderLineItemTable.tsx:205 msgid "Receive Item" msgstr "" -#: src/tables/sales/SalesOrderLineItemTable.tsx:262 -msgid "Allocate stock" +#: src/tables/sales/SalesOrderAllocationTable.tsx:60 +msgid "Show outstanding allocations" msgstr "" -#: src/tables/sales/SalesOrderLineItemTable.tsx:272 +#: src/tables/sales/SalesOrderAllocationTable.tsx:168 +#: src/tables/sales/SalesOrderAllocationTable.tsx:190 +msgid "Edit Allocation" +msgstr "" + +#: src/tables/sales/SalesOrderAllocationTable.tsx:175 +#: src/tables/sales/SalesOrderAllocationTable.tsx:197 +msgid "Delete Allocation" +msgstr "" + +#: src/tables/sales/SalesOrderLineItemTable.tsx:244 +msgid "Allocate Serial Numbers" +msgstr "" + +#: src/tables/sales/SalesOrderLineItemTable.tsx:277 +msgid "Show lines which are fully allocated" +msgstr "" + +#: src/tables/sales/SalesOrderLineItemTable.tsx:280 +#~ msgid "Allocate stock" +#~ msgstr "Allocate stock" + +#: src/tables/sales/SalesOrderLineItemTable.tsx:282 +msgid "Show lines which are completed" +msgstr "" + +#: src/tables/sales/SalesOrderLineItemTable.tsx:291 +#~ msgid "Allocate Serials" +#~ msgstr "Allocate Serials" + +#: src/tables/sales/SalesOrderLineItemTable.tsx:340 +msgid "Allocate serials" +msgstr "" + +#: src/tables/sales/SalesOrderLineItemTable.tsx:356 msgid "Build stock" msgstr "" -#: src/tables/sales/SalesOrderLineItemTable.tsx:289 -#: src/tables/stock/StockItemTable.tsx:507 +#: src/tables/sales/SalesOrderLineItemTable.tsx:373 +#: src/tables/stock/StockItemTable.tsx:512 msgid "Order stock" msgstr "" -#: src/tables/sales/SalesOrderShipmentTable.tsx:40 +#: src/tables/sales/SalesOrderShipmentTable.tsx:51 +#~ msgid "Delete Shipment" +#~ msgstr "Delete Shipment" + +#: src/tables/sales/SalesOrderShipmentTable.tsx:57 msgid "Create Shipment" msgstr "" -#: src/tables/sales/SalesOrderShipmentTable.tsx:50 -msgid "Delete Shipment" -msgstr "" - -#: src/tables/sales/SalesOrderShipmentTable.tsx:58 -msgid "Edit Shipment" -msgstr "" - -#: src/tables/sales/SalesOrderShipmentTable.tsx:66 -msgid "Shipment Reference" -msgstr "" - -#: src/tables/sales/SalesOrderShipmentTable.tsx:71 +#: src/tables/sales/SalesOrderShipmentTable.tsx:104 msgid "Items" msgstr "" -#: src/tables/sales/SalesOrderShipmentTable.tsx:83 -msgid "Delivery Date" +#: src/tables/sales/SalesOrderShipmentTable.tsx:139 +msgid "View Shipment" msgstr "" -#: src/tables/sales/SalesOrderShipmentTable.tsx:107 -msgid "Complete Shipment" +#: src/tables/sales/SalesOrderShipmentTable.tsx:161 +msgid "Edit shipment" msgstr "" -#: src/tables/sales/SalesOrderShipmentTable.tsx:133 +#: src/tables/sales/SalesOrderShipmentTable.tsx:169 +msgid "Cancel shipment" +msgstr "" + +#: src/tables/sales/SalesOrderShipmentTable.tsx:184 msgid "Add shipment" msgstr "" -#: src/tables/sales/SalesOrderShipmentTable.tsx:146 -msgid "Shipped" -msgstr "" - -#: src/tables/sales/SalesOrderShipmentTable.tsx:147 +#: src/tables/sales/SalesOrderShipmentTable.tsx:198 msgid "Show shipments which have been shipped" msgstr "" -#: src/tables/sales/SalesOrderShipmentTable.tsx:151 -msgid "Delivered" -msgstr "" - -#: src/tables/sales/SalesOrderShipmentTable.tsx:152 +#: src/tables/sales/SalesOrderShipmentTable.tsx:203 msgid "Show shipments which have been delivered" msgstr "" -#: src/tables/settings/CurrencyTable.tsx:28 -msgid "Rate" +#: src/tables/settings/BarcodeScanHistoryTable.tsx:61 +msgid "Barcode Information" msgstr "" -#: src/tables/settings/CurrencyTable.tsx:40 -msgid "Exchange rates updated" +#: src/tables/settings/BarcodeScanHistoryTable.tsx:76 +#: src/tables/settings/ErrorTable.tsx:59 +msgid "Timestamp" msgstr "" -#: src/tables/settings/CurrencyTable.tsx:46 -msgid "Exchange rate update error" +#: src/tables/settings/BarcodeScanHistoryTable.tsx:86 +msgid "Endpoint" msgstr "" -#: src/tables/settings/CurrencyTable.tsx:57 -msgid "Refresh currency exchange rates" +#: src/tables/settings/BarcodeScanHistoryTable.tsx:90 +#: src/tables/settings/BarcodeScanHistoryTable.tsx:217 +#: src/tables/stock/StockItemTestResultTable.tsx:174 +msgid "Result" msgstr "" +#: src/tables/settings/BarcodeScanHistoryTable.tsx:98 +msgid "Context" +msgstr "" + +#: src/tables/settings/BarcodeScanHistoryTable.tsx:119 +msgid "Response" +msgstr "" + +#: src/tables/settings/BarcodeScanHistoryTable.tsx:213 +#: src/tables/settings/ImportSessionTable.tsx:121 +#: src/tables/stock/StockTrackingTable.tsx:183 +msgid "Filter by user" +msgstr "" + +#: src/tables/settings/BarcodeScanHistoryTable.tsx:218 +msgid "Filter by result" +msgstr "" + +#: src/tables/settings/BarcodeScanHistoryTable.tsx:232 +msgid "Delete Barcode Scan Record" +msgstr "" + +#: src/tables/settings/BarcodeScanHistoryTable.tsx:258 +msgid "Barcode Scan Details" +msgstr "" + +#: src/tables/settings/BarcodeScanHistoryTable.tsx:268 +msgid "Logging Disabled" +msgstr "" + +#: src/tables/settings/BarcodeScanHistoryTable.tsx:270 +msgid "Barcode logging is not enabled" +msgstr "" + +#: src/tables/settings/CustomStateTable.tsx:36 +msgid "Display Name" +msgstr "" + +#: src/tables/settings/CustomStateTable.tsx:52 +msgid "Model" +msgstr "" + +#: src/tables/settings/CustomStateTable.tsx:65 +#: src/tables/settings/CustomStateTable.tsx:115 +msgid "Add State" +msgstr "" + +#: src/tables/settings/CustomStateTable.tsx:77 +msgid "Edit State" +msgstr "" + +#: src/tables/settings/CustomStateTable.tsx:85 +msgid "Delete State" +msgstr "" + +#: src/tables/settings/CustomStateTable.tsx:115 +#~ msgid "Add state" +#~ msgstr "Add state" + #: src/tables/settings/CustomUnitsTable.tsx:50 msgid "Add Custom Unit" msgstr "" @@ -7312,59 +8540,71 @@ msgstr "" msgid "Add custom unit" msgstr "" -#: src/tables/settings/ErrorTable.tsx:31 -msgid "When" -msgstr "" - -#: src/tables/settings/ErrorTable.tsx:41 -msgid "Error Information" -msgstr "" - #: src/tables/settings/ErrorTable.tsx:51 #~ msgid "Delete error report" #~ msgstr "Delete error report" -#: src/tables/settings/ErrorTable.tsx:53 +#: src/tables/settings/ErrorTable.tsx:67 +msgid "Traceback" +msgstr "" + +#: src/tables/settings/ErrorTable.tsx:103 +msgid "When" +msgstr "" + +#: src/tables/settings/ErrorTable.tsx:113 +msgid "Error Information" +msgstr "" + +#: src/tables/settings/ErrorTable.tsx:123 msgid "Delete Error Report" msgstr "" -#: src/tables/settings/ErrorTable.tsx:55 +#: src/tables/settings/ErrorTable.tsx:125 msgid "Are you sure you want to delete this error report?" msgstr "" -#: src/tables/settings/ErrorTable.tsx:57 +#: src/tables/settings/ErrorTable.tsx:127 msgid "Error report deleted" msgstr "" -#: src/tables/settings/ErrorTable.tsx:79 -#: src/tables/settings/FailedTasksTable.tsx:59 +#: src/tables/settings/ErrorTable.tsx:146 +#: src/tables/settings/FailedTasksTable.tsx:65 msgid "Error Details" msgstr "" -#: src/tables/settings/FailedTasksTable.tsx:26 -#: src/tables/settings/PendingTasksTable.tsx:19 +#: src/tables/settings/FailedTasksTable.tsx:32 +#: src/tables/settings/PendingTasksTable.tsx:23 #: src/tables/settings/ScheduledTasksTable.tsx:19 msgid "Task" msgstr "" -#: src/tables/settings/FailedTasksTable.tsx:32 -#: src/tables/settings/PendingTasksTable.tsx:24 +#: src/tables/settings/FailedTasksTable.tsx:38 +#: src/tables/settings/PendingTasksTable.tsx:28 msgid "Task ID" msgstr "" -#: src/tables/settings/FailedTasksTable.tsx:36 -#: src/tables/stock/StockItemTestResultTable.tsx:211 +#: src/tables/settings/FailedTasksTable.tsx:42 +#: src/tables/stock/StockItemTestResultTable.tsx:218 msgid "Started" msgstr "" -#: src/tables/settings/FailedTasksTable.tsx:42 +#: src/tables/settings/FailedTasksTable.tsx:48 msgid "Stopped" msgstr "" -#: src/tables/settings/FailedTasksTable.tsx:48 +#: src/tables/settings/FailedTasksTable.tsx:54 msgid "Attempts" msgstr "" +#: src/tables/settings/FailedTasksTable.tsx:92 +msgid "No Information" +msgstr "" + +#: src/tables/settings/FailedTasksTable.tsx:93 +msgid "No error details are available for this task" +msgstr "" + #: src/tables/settings/GroupTable.tsx:90 msgid "Group with id {id} not found" msgstr "" @@ -7398,42 +8638,34 @@ msgstr "" msgid "Edit group" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:38 +#: src/tables/settings/ImportSessionTable.tsx:37 msgid "Delete Import Session" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:44 +#: src/tables/settings/ImportSessionTable.tsx:43 #: src/tables/settings/ImportSessionTable.tsx:131 msgid "Create Import Session" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:69 +#: src/tables/settings/ImportSessionTable.tsx:68 msgid "Uploaded" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:79 -msgid "Imported Rows" -msgstr "" - -#: src/tables/settings/ImportSessionTable.tsx:109 -#: src/tables/settings/TemplateTable.tsx:289 +#: src/tables/settings/ImportSessionTable.tsx:108 +#: src/tables/settings/TemplateTable.tsx:369 msgid "Model Type" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:110 -#: src/tables/settings/TemplateTable.tsx:290 +#: src/tables/settings/ImportSessionTable.tsx:109 +#: src/tables/settings/TemplateTable.tsx:370 msgid "Filter by target model type" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:116 +#: src/tables/settings/ImportSessionTable.tsx:115 msgid "Filter by import session status" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:122 -msgid "Filter by user" -msgstr "" - -#: src/tables/settings/PendingTasksTable.tsx:38 +#: src/tables/settings/PendingTasksTable.tsx:42 msgid "Arguments" msgstr "" @@ -7461,12 +8693,16 @@ msgstr "" msgid "Next Run" msgstr "" -#: src/tables/settings/TemplateTable.tsx:85 -msgid "Template not found" +#: src/tables/settings/StocktakeReportTable.tsx:28 +msgid "Report" msgstr "" -#: src/tables/settings/TemplateTable.tsx:87 -msgid "An error occurred while fetching template details" +#: src/tables/settings/StocktakeReportTable.tsx:35 +msgid "Part Count" +msgstr "" + +#: src/tables/settings/StocktakeReportTable.tsx:58 +msgid "Delete Report" msgstr "" #: src/tables/settings/TemplateTable.tsx:120 @@ -7481,21 +8717,12 @@ msgstr "" #~ msgid "actions" #~ msgstr "actions" -#: src/tables/settings/TemplateTable.tsx:177 -msgid "Modify" +#: src/tables/settings/TemplateTable.tsx:162 +msgid "Template not found" msgstr "" -#: src/tables/settings/TemplateTable.tsx:178 -msgid "Modify template file" -msgstr "" - -#: src/tables/settings/TemplateTable.tsx:234 -#: src/tables/settings/TemplateTable.tsx:302 -msgid "Edit Template" -msgstr "" - -#: src/tables/settings/TemplateTable.tsx:242 -msgid "Delete template" +#: src/tables/settings/TemplateTable.tsx:164 +msgid "An error occurred while fetching template details" msgstr "" #: src/tables/settings/TemplateTable.tsx:243 @@ -7506,103 +8733,137 @@ msgstr "" #~ msgid "Create new" #~ msgstr "Create new" -#: src/tables/settings/TemplateTable.tsx:248 +#: src/tables/settings/TemplateTable.tsx:257 +msgid "Modify" +msgstr "" + +#: src/tables/settings/TemplateTable.tsx:258 +msgid "Modify template file" +msgstr "" + +#: src/tables/settings/TemplateTable.tsx:314 +#: src/tables/settings/TemplateTable.tsx:382 +msgid "Edit Template" +msgstr "" + +#: src/tables/settings/TemplateTable.tsx:322 +msgid "Delete template" +msgstr "" + +#: src/tables/settings/TemplateTable.tsx:328 msgid "Add Template" msgstr "" -#: src/tables/settings/TemplateTable.tsx:261 +#: src/tables/settings/TemplateTable.tsx:341 msgid "Add template" msgstr "" -#: src/tables/settings/TemplateTable.tsx:284 +#: src/tables/settings/TemplateTable.tsx:364 msgid "Filter by enabled status" msgstr "" -#: src/tables/settings/UserTable.tsx:82 +#: src/tables/settings/UserTable.tsx:81 msgid "User with id {id} not found" msgstr "" -#: src/tables/settings/UserTable.tsx:84 +#: src/tables/settings/UserTable.tsx:83 msgid "An error occurred while fetching user details" msgstr "" -#: src/tables/settings/UserTable.tsx:102 +#: src/tables/settings/UserTable.tsx:101 msgid "Is Active" msgstr "" -#: src/tables/settings/UserTable.tsx:103 +#: src/tables/settings/UserTable.tsx:102 msgid "Designates whether this user should be treated as active. Unselect this instead of deleting accounts." msgstr "" -#: src/tables/settings/UserTable.tsx:107 +#: src/tables/settings/UserTable.tsx:106 msgid "Is Staff" msgstr "" -#: src/tables/settings/UserTable.tsx:108 +#: src/tables/settings/UserTable.tsx:107 msgid "Designates whether the user can log into the django admin site." msgstr "" -#: src/tables/settings/UserTable.tsx:112 +#: src/tables/settings/UserTable.tsx:111 msgid "Is Superuser" msgstr "" -#: src/tables/settings/UserTable.tsx:113 +#: src/tables/settings/UserTable.tsx:112 msgid "Designates that this user has all permissions without explicitly assigning them." msgstr "" -#: src/tables/settings/UserTable.tsx:123 +#: src/tables/settings/UserTable.tsx:122 msgid "You cannot edit the rights for the currently logged-in user." msgstr "" -#: src/tables/settings/UserTable.tsx:154 +#: src/tables/settings/UserTable.tsx:153 msgid "No groups" msgstr "" -#: src/tables/settings/UserTable.tsx:245 +#: src/tables/settings/UserTable.tsx:244 msgid "Delete user" msgstr "" -#: src/tables/settings/UserTable.tsx:246 +#: src/tables/settings/UserTable.tsx:245 msgid "User deleted" msgstr "" -#: src/tables/settings/UserTable.tsx:248 +#: src/tables/settings/UserTable.tsx:247 msgid "Are you sure you want to delete this user?" msgstr "" -#: src/tables/settings/UserTable.tsx:254 -#: src/tables/settings/UserTable.tsx:272 +#: src/tables/settings/UserTable.tsx:253 +#: src/tables/settings/UserTable.tsx:271 msgid "Add user" msgstr "" -#: src/tables/settings/UserTable.tsx:262 +#: src/tables/settings/UserTable.tsx:261 msgid "Added user" msgstr "" -#: src/tables/settings/UserTable.tsx:285 +#: src/tables/settings/UserTable.tsx:284 msgid "Show active users" msgstr "" -#: src/tables/settings/UserTable.tsx:289 +#: src/tables/settings/UserTable.tsx:288 msgid "Staff" msgstr "" -#: src/tables/settings/UserTable.tsx:290 +#: src/tables/settings/UserTable.tsx:289 msgid "Show staff users" msgstr "" #: src/tables/settings/UserTable.tsx:294 -msgid "Superuser" -msgstr "" - -#: src/tables/settings/UserTable.tsx:295 msgid "Show superusers" msgstr "" -#: src/tables/settings/UserTable.tsx:305 +#: src/tables/settings/UserTable.tsx:304 msgid "Edit user" msgstr "" +#: src/tables/stock/InstalledItemsTable.tsx:37 +#: src/tables/stock/InstalledItemsTable.tsx:90 +msgid "Install Item" +msgstr "" + +#: src/tables/stock/InstalledItemsTable.tsx:39 +msgid "Item installed" +msgstr "" + +#: src/tables/stock/InstalledItemsTable.tsx:50 +msgid "Uninstall Item" +msgstr "" + +#: src/tables/stock/InstalledItemsTable.tsx:52 +msgid "Item uninstalled" +msgstr "" + +#: src/tables/stock/InstalledItemsTable.tsx:108 +msgid "Uninstall stock item" +msgstr "" + #: src/tables/stock/LocationTypesTable.tsx:39 #: src/tables/stock/LocationTypesTable.tsx:109 msgid "Add Location Type" @@ -7620,276 +8881,272 @@ msgstr "" msgid "Icon" msgstr "" -#: src/tables/stock/StockItemTable.tsx:101 +#: src/tables/stock/StockItemTable.tsx:90 msgid "This stock item is in production" msgstr "" -#: src/tables/stock/StockItemTable.tsx:110 +#: src/tables/stock/StockItemTable.tsx:97 msgid "This stock item has been assigned to a sales order" msgstr "" -#: src/tables/stock/StockItemTable.tsx:119 +#: src/tables/stock/StockItemTable.tsx:104 msgid "This stock item has been assigned to a customer" msgstr "" -#: src/tables/stock/StockItemTable.tsx:128 +#: src/tables/stock/StockItemTable.tsx:111 msgid "This stock item is installed in another stock item" msgstr "" -#: src/tables/stock/StockItemTable.tsx:137 +#: src/tables/stock/StockItemTable.tsx:118 msgid "This stock item has been consumed by a build order" msgstr "" -#: src/tables/stock/StockItemTable.tsx:146 +#: src/tables/stock/StockItemTable.tsx:125 +msgid "This stock item is unavailable" +msgstr "" + +#: src/tables/stock/StockItemTable.tsx:134 msgid "This stock item has expired" msgstr "" -#: src/tables/stock/StockItemTable.tsx:150 +#: src/tables/stock/StockItemTable.tsx:138 msgid "This stock item is stale" msgstr "" -#: src/tables/stock/StockItemTable.tsx:161 +#: src/tables/stock/StockItemTable.tsx:150 msgid "This stock item is fully allocated" msgstr "" -#: src/tables/stock/StockItemTable.tsx:168 +#: src/tables/stock/StockItemTable.tsx:157 msgid "This stock item is partially allocated" msgstr "" -#: src/tables/stock/StockItemTable.tsx:196 +#: src/tables/stock/StockItemTable.tsx:185 msgid "This stock item has been depleted" msgstr "" -#: src/tables/stock/StockItemTable.tsx:232 +#: src/tables/stock/StockItemTable.tsx:280 msgid "Stocktake Date" msgstr "" -#: src/tables/stock/StockItemTable.tsx:236 -msgid "Expiry Date" -msgstr "" - -#: src/tables/stock/StockItemTable.tsx:260 -msgid "Stock Value" -msgstr "" - -#: src/tables/stock/StockItemTable.tsx:290 +#: src/tables/stock/StockItemTable.tsx:294 msgid "Show stock for active parts" msgstr "" -#: src/tables/stock/StockItemTable.tsx:295 +#: src/tables/stock/StockItemTable.tsx:299 msgid "Filter by stock status" msgstr "" #: src/tables/stock/StockItemTable.tsx:301 -msgid "Show stock for assmebled parts" +#~ msgid "Show stock for assmebled parts" +#~ msgstr "Show stock for assmebled parts" + +#: src/tables/stock/StockItemTable.tsx:305 +msgid "Show stock for assembled parts" msgstr "" -#: src/tables/stock/StockItemTable.tsx:306 +#: src/tables/stock/StockItemTable.tsx:310 msgid "Show items which have been allocated" msgstr "" -#: src/tables/stock/StockItemTable.tsx:311 +#: src/tables/stock/StockItemTable.tsx:315 msgid "Show items which are available" msgstr "" -#: src/tables/stock/StockItemTable.tsx:315 +#: src/tables/stock/StockItemTable.tsx:319 #: src/tables/stock/StockLocationTable.tsx:44 msgid "Include Sublocations" msgstr "" -#: src/tables/stock/StockItemTable.tsx:316 +#: src/tables/stock/StockItemTable.tsx:320 msgid "Include stock in sublocations" msgstr "" -#: src/tables/stock/StockItemTable.tsx:320 +#: src/tables/stock/StockItemTable.tsx:324 msgid "Depleted" msgstr "" -#: src/tables/stock/StockItemTable.tsx:321 +#: src/tables/stock/StockItemTable.tsx:325 msgid "Show depleted stock items" msgstr "" -#: src/tables/stock/StockItemTable.tsx:326 +#: src/tables/stock/StockItemTable.tsx:330 msgid "Show items which are in stock" msgstr "" -#: src/tables/stock/StockItemTable.tsx:331 +#: src/tables/stock/StockItemTable.tsx:335 msgid "Show items which are in production" msgstr "" -#: src/tables/stock/StockItemTable.tsx:336 +#: src/tables/stock/StockItemTable.tsx:340 msgid "Include stock items for variant parts" msgstr "" -#: src/tables/stock/StockItemTable.tsx:341 +#: src/tables/stock/StockItemTable.tsx:345 msgid "Show stock items which are installed in other items" msgstr "" -#: src/tables/stock/StockItemTable.tsx:345 +#: src/tables/stock/StockItemTable.tsx:349 msgid "Sent to Customer" msgstr "" -#: src/tables/stock/StockItemTable.tsx:346 +#: src/tables/stock/StockItemTable.tsx:350 msgid "Show items which have been sent to a customer" msgstr "" -#: src/tables/stock/StockItemTable.tsx:350 +#: src/tables/stock/StockItemTable.tsx:354 msgid "Is Serialized" msgstr "" -#: src/tables/stock/StockItemTable.tsx:351 +#: src/tables/stock/StockItemTable.tsx:355 msgid "Show items which have a serial number" msgstr "" -#: src/tables/stock/StockItemTable.tsx:358 +#: src/tables/stock/StockItemTable.tsx:362 msgid "Has Batch Code" msgstr "" -#: src/tables/stock/StockItemTable.tsx:359 +#: src/tables/stock/StockItemTable.tsx:363 msgid "Show items which have a batch code" msgstr "" -#: src/tables/stock/StockItemTable.tsx:365 +#: src/tables/stock/StockItemTable.tsx:369 msgid "Show tracked items" msgstr "" -#: src/tables/stock/StockItemTable.tsx:369 +#: src/tables/stock/StockItemTable.tsx:373 msgid "Has Purchase Price" msgstr "" -#: src/tables/stock/StockItemTable.tsx:370 +#: src/tables/stock/StockItemTable.tsx:374 msgid "Show items which have a purchase price" msgstr "" -#: src/tables/stock/StockItemTable.tsx:378 +#: src/tables/stock/StockItemTable.tsx:382 msgid "External Location" msgstr "" -#: src/tables/stock/StockItemTable.tsx:379 +#: src/tables/stock/StockItemTable.tsx:383 msgid "Show items in an external location" msgstr "" -#: src/tables/stock/StockItemTable.tsx:451 +#: src/tables/stock/StockItemTable.tsx:456 msgid "Add a new stock item" msgstr "" -#: src/tables/stock/StockItemTable.tsx:460 +#: src/tables/stock/StockItemTable.tsx:465 msgid "Remove some quantity from a stock item" msgstr "" -#: src/tables/stock/StockItemTable.tsx:482 +#: src/tables/stock/StockItemTable.tsx:487 msgid "Move Stock items to new locations" msgstr "" -#: src/tables/stock/StockItemTable.tsx:489 +#: src/tables/stock/StockItemTable.tsx:494 msgid "Change stock status" msgstr "" -#: src/tables/stock/StockItemTable.tsx:491 +#: src/tables/stock/StockItemTable.tsx:496 msgid "Change the status of stock items" msgstr "" -#: src/tables/stock/StockItemTable.tsx:498 +#: src/tables/stock/StockItemTable.tsx:503 msgid "Merge stock" msgstr "" -#: src/tables/stock/StockItemTable.tsx:500 +#: src/tables/stock/StockItemTable.tsx:505 msgid "Merge stock items" msgstr "" -#: src/tables/stock/StockItemTable.tsx:509 -#: src/tables/stock/StockItemTable.tsx:516 +#: src/tables/stock/StockItemTable.tsx:514 +#: src/tables/stock/StockItemTable.tsx:521 msgid "Order new stock" msgstr "" -#: src/tables/stock/StockItemTable.tsx:514 +#: src/tables/stock/StockItemTable.tsx:519 msgid "Assign to customer" msgstr "" -#: src/tables/stock/StockItemTable.tsx:523 +#: src/tables/stock/StockItemTable.tsx:528 msgid "Delete stock" msgstr "" -#: src/tables/stock/StockItemTable.tsx:525 -msgid "Delete stock items" -msgstr "" +#: src/tables/stock/StockItemTable.tsx:528 +#~ msgid "Delete stock items" +#~ msgstr "Delete stock items" -#: src/tables/stock/StockItemTestResultTable.tsx:131 +#: src/tables/stock/StockItemTestResultTable.tsx:137 msgid "Test" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:157 +#: src/tables/stock/StockItemTestResultTable.tsx:163 msgid "Test result for installed stock item" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:168 -msgid "Result" -msgstr "" - -#: src/tables/stock/StockItemTestResultTable.tsx:190 +#: src/tables/stock/StockItemTestResultTable.tsx:196 msgid "Attachment" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:206 +#: src/tables/stock/StockItemTestResultTable.tsx:212 msgid "Test station" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:226 +#: src/tables/stock/StockItemTestResultTable.tsx:234 msgid "Finished" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:268 -#: src/tables/stock/StockItemTestResultTable.tsx:339 +#: src/tables/stock/StockItemTestResultTable.tsx:286 +#: src/tables/stock/StockItemTestResultTable.tsx:357 msgid "Edit Test Result" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:270 +#: src/tables/stock/StockItemTestResultTable.tsx:288 msgid "Test result updated" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:276 -#: src/tables/stock/StockItemTestResultTable.tsx:348 +#: src/tables/stock/StockItemTestResultTable.tsx:294 +#: src/tables/stock/StockItemTestResultTable.tsx:366 msgid "Delete Test Result" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:278 +#: src/tables/stock/StockItemTestResultTable.tsx:296 msgid "Test result deleted" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:292 +#: src/tables/stock/StockItemTestResultTable.tsx:310 msgid "Test Passed" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:293 +#: src/tables/stock/StockItemTestResultTable.tsx:311 msgid "Test result has been recorded" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:300 +#: src/tables/stock/StockItemTestResultTable.tsx:318 msgid "Failed to record test result" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:317 +#: src/tables/stock/StockItemTestResultTable.tsx:335 msgid "Pass Test" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:366 +#: src/tables/stock/StockItemTestResultTable.tsx:384 msgid "Show results for required tests" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:370 +#: src/tables/stock/StockItemTestResultTable.tsx:388 msgid "Include Installed" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:371 +#: src/tables/stock/StockItemTestResultTable.tsx:389 msgid "Show results for installed stock items" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:375 -#: src/tables/stock/TestStatisticsTable.tsx:74 +#: src/tables/stock/StockItemTestResultTable.tsx:393 +#: src/tables/stock/TestStatisticsTable.tsx:62 msgid "Passed" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:376 +#: src/tables/stock/StockItemTestResultTable.tsx:394 msgid "Show only passed tests" msgstr "" @@ -7922,28 +9179,32 @@ msgid "Filter by location type" msgstr "" #: src/tables/stock/StockLocationTable.tsx:107 -#: src/tables/stock/StockLocationTable.tsx:133 +#: src/tables/stock/StockLocationTable.tsx:134 msgid "Add Stock Location" msgstr "" -#: src/tables/stock/StockTrackingTable.tsx:64 +#: src/tables/stock/StockTrackingTable.tsx:68 msgid "Added" msgstr "" -#: src/tables/stock/StockTrackingTable.tsx:69 +#: src/tables/stock/StockTrackingTable.tsx:73 msgid "Removed" msgstr "" #: src/tables/stock/StockTrackingTable.tsx:198 +msgid "Details" +msgstr "" + +#: src/tables/stock/StockTrackingTable.tsx:213 msgid "No user information" msgstr "" -#: src/tables/stock/TestStatisticsTable.tsx:46 -#: src/tables/stock/TestStatisticsTable.tsx:76 +#: src/tables/stock/TestStatisticsTable.tsx:34 +#: src/tables/stock/TestStatisticsTable.tsx:64 msgid "Total" msgstr "" -#: src/tables/stock/TestStatisticsTable.tsx:75 +#: src/tables/stock/TestStatisticsTable.tsx:63 msgid "Failed" msgstr "" diff --git a/src/frontend/src/locales/ja/messages.po b/src/frontend/src/locales/ja/messages.po index 14a8b0c5f4..503ae7ac5c 100644 --- a/src/frontend/src/locales/ja/messages.po +++ b/src/frontend/src/locales/ja/messages.po @@ -8,15 +8,15 @@ msgstr "" "Language: ja\n" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"PO-Revision-Date: 2024-08-20 19:50\n" +"PO-Revision-Date: 2024-11-04 03:14\n" "Last-Translator: \n" "Language-Team: Japanese\n" "Plural-Forms: nplurals=1; plural=0;\n" "X-Crowdin-Project: inventree\n" "X-Crowdin-Project-ID: 452300\n" "X-Crowdin-Language: ja\n" -"X-Crowdin-File: /[inventree.InvenTree] l10/src/frontend/src/locales/en/messages.po\n" -"X-Crowdin-File-ID: 205\n" +"X-Crowdin-File: /src/frontend/src/locales/en/messages.po\n" +"X-Crowdin-File-ID: 252\n" #: src/components/Boundary.tsx:12 msgid "Error rendering component" @@ -27,8 +27,8 @@ msgid "An error occurred while rendering this component. Refer to the console fo msgstr "" #: src/components/DashboardItemProxy.tsx:34 -msgid "Title" -msgstr "タイトル" +#~ msgid "Title" +#~ msgstr "Title" #: src/components/buttons/AdminButton.tsx:80 msgid "Open in admin interface" @@ -38,82 +38,99 @@ msgstr "" #~ msgid "Copy to clipboard" #~ msgstr "Copy to clipboard" -#: src/components/buttons/CopyButton.tsx:24 +#: src/components/buttons/CopyButton.tsx:29 msgid "Copied" msgstr "" -#: src/components/buttons/CopyButton.tsx:24 +#: src/components/buttons/CopyButton.tsx:29 msgid "Copy" msgstr "" -#: src/components/buttons/PrintingActions.tsx:93 +#: src/components/buttons/PrintingActions.tsx:97 msgid "Print Label" msgstr "" -#: src/components/buttons/PrintingActions.tsx:99 +#: src/components/buttons/PrintingActions.tsx:103 msgid "Print" msgstr "" -#: src/components/buttons/PrintingActions.tsx:100 +#: src/components/buttons/PrintingActions.tsx:104 msgid "Label printing completed successfully" msgstr "" -#: src/components/buttons/PrintingActions.tsx:106 -#: src/components/buttons/PrintingActions.tsx:144 -#: src/components/editors/NotesEditor.tsx:65 -#: src/components/editors/NotesEditor.tsx:165 -#: src/components/forms/fields/ApiFormField.tsx:319 +#: src/components/buttons/PrintingActions.tsx:110 +#: src/components/buttons/PrintingActions.tsx:148 +#: src/components/editors/NotesEditor.tsx:73 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:154 +#: src/components/forms/fields/ApiFormField.tsx:328 +#: src/components/forms/fields/TableField.tsx:43 #: src/components/importer/ImportDataSelector.tsx:187 -#: src/components/importer/ImporterColumnSelector.tsx:207 +#: src/components/importer/ImporterColumnSelector.tsx:210 #: src/components/modals/LicenseModal.tsx:75 -#: src/components/nav/SearchDrawer.tsx:448 +#: src/components/nav/SearchDrawer.tsx:458 +#: src/components/render/ModelType.tsx:290 #: src/pages/ErrorPage.tsx:11 -#: src/pages/part/PartPricingPanel.tsx:67 -#: src/tables/InvenTreeTable.tsx:495 +#: src/pages/part/PartPricingPanel.tsx:71 +#: src/tables/InvenTreeTable.tsx:481 #: src/tables/bom/BomTable.tsx:450 -#: src/tables/stock/StockItemTestResultTable.tsx:299 +#: src/tables/stock/StockItemTestResultTable.tsx:317 msgid "Error" msgstr "エラー" -#: src/components/buttons/PrintingActions.tsx:107 +#: src/components/buttons/PrintingActions.tsx:111 msgid "The label could not be generated" msgstr "" -#: src/components/buttons/PrintingActions.tsx:122 +#: src/components/buttons/PrintingActions.tsx:126 msgid "Print Report" msgstr "" -#: src/components/buttons/PrintingActions.tsx:138 +#: src/components/buttons/PrintingActions.tsx:142 msgid "Generate" msgstr "" -#: src/components/buttons/PrintingActions.tsx:139 +#: src/components/buttons/PrintingActions.tsx:143 msgid "Report printing completed successfully" msgstr "" -#: src/components/buttons/PrintingActions.tsx:145 +#: src/components/buttons/PrintingActions.tsx:149 msgid "The report could not be generated" msgstr "" -#: src/components/buttons/PrintingActions.tsx:173 +#: src/components/buttons/PrintingActions.tsx:177 msgid "Printing Actions" msgstr "" -#: src/components/buttons/PrintingActions.tsx:178 +#: src/components/buttons/PrintingActions.tsx:182 msgid "Print Labels" msgstr "" -#: src/components/buttons/PrintingActions.tsx:184 +#: src/components/buttons/PrintingActions.tsx:188 msgid "Print Reports" msgstr "" +#: src/components/buttons/RemoveRowButton.tsx:8 +msgid "Remove this row" +msgstr "" + #: src/components/buttons/ScanButton.tsx:15 -msgid "Scan QR code" +#: src/components/nav/NavigationDrawer.tsx:117 +#: src/forms/PurchaseOrderForms.tsx:379 +#: src/forms/PurchaseOrderForms.tsx:473 +msgid "Scan Barcode" +msgstr "" + +#: src/components/buttons/ScanButton.tsx:15 +#~ msgid "Scan QR code" +#~ msgstr "Scan QR code" + +#: src/components/buttons/ScanButton.tsx:20 +msgid "Open Barcode Scanner" msgstr "" #: src/components/buttons/ScanButton.tsx:20 -msgid "Open QR code scanner" -msgstr "" +#~ msgid "Open QR code scanner" +#~ msgstr "Open QR code scanner" #: src/components/buttons/SpotlightButton.tsx:14 msgid "Open spotlight" @@ -128,85 +145,347 @@ msgid "Fail" msgstr "" #: src/components/buttons/YesNoButton.tsx:33 -#: src/tables/Filter.tsx:52 +#: src/tables/Filter.tsx:61 msgid "Yes" msgstr "" #: src/components/buttons/YesNoButton.tsx:33 -#: src/tables/Filter.tsx:53 +#: src/tables/Filter.tsx:62 msgid "No" msgstr "" -#: src/components/details/Details.tsx:301 +#: src/components/dashboard/DashboardLayout.tsx:286 +msgid "No Widgets Selected" +msgstr "" + +#: src/components/dashboard/DashboardLayout.tsx:289 +msgid "Use the menu to add widgets to the dashboard" +msgstr "" + +#: src/components/dashboard/DashboardMenu.tsx:59 +#: src/components/dashboard/DashboardMenu.tsx:126 +msgid "Accept Layout" +msgstr "" + +#: src/components/dashboard/DashboardMenu.tsx:91 +#: src/components/nav/NavigationDrawer.tsx:71 +#: src/defaults/actions.tsx:17 +#: src/defaults/links.tsx:9 +#: src/pages/Index/Settings/UserSettings.tsx:47 +msgid "Dashboard" +msgstr "" + +#: src/components/dashboard/DashboardMenu.tsx:99 +msgid "Edit Layout" +msgstr "" + +#: src/components/dashboard/DashboardMenu.tsx:108 +msgid "Add Widget" +msgstr "" + +#: src/components/dashboard/DashboardMenu.tsx:117 +msgid "Remove Widgets" +msgstr "" + +#: src/components/dashboard/DashboardWidget.tsx:65 +msgid "Remove this widget from the dashboard" +msgstr "" + +#: src/components/dashboard/DashboardWidgetDrawer.tsx:77 +msgid "Filter dashboard widgets" +msgstr "" + +#: src/components/dashboard/DashboardWidgetDrawer.tsx:98 +msgid "Add this widget to the dashboard" +msgstr "" + +#: src/components/dashboard/DashboardWidgetDrawer.tsx:123 +msgid "No Widgets Available" +msgstr "" + +#: src/components/dashboard/DashboardWidgetDrawer.tsx:124 +msgid "There are no more widgets available for the dashboard" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:19 +msgid "Subscribed Parts" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:20 +msgid "Show the number of parts which you have subscribed to" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:26 +msgid "Subscribed Categories" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:27 +msgid "Show the number of part categories which you have subscribed to" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:35 +#: src/pages/part/PartSchedulingDetail.tsx:304 +#: src/tables/part/PartTable.tsx:238 +msgid "Low Stock" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:37 +msgid "Show the number of parts which are low on stock" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:43 +msgid "Expired Stock Items" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:45 +msgid "Show the number of stock items which have expired" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:51 +msgid "Stale Stock Items" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:53 +msgid "Show the number of stock items which are stale" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:59 +msgid "Active Build Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:61 +msgid "Show the number of build orders which are currently active" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:66 +msgid "Overdue Build Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:68 +msgid "Show the number of build orders which are overdue" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:73 +msgid "Assigned Build Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:75 +msgid "Show the number of build orders which are assigned to you" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:80 +msgid "Active Sales Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:82 +msgid "Show the number of sales orders which are currently active" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:87 +msgid "Overdue Sales Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:89 +msgid "Show the number of sales orders which are overdue" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:94 +msgid "Assigned Sales Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:96 +msgid "Show the number of sales orders which are assigned to you" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:101 +msgid "Active Purchase Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:103 +msgid "Show the number of purchase orders which are currently active" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:108 +msgid "Overdue Purchase Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:110 +msgid "Show the number of purchase orders which are overdue" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:115 +msgid "Assigned Purchase Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:117 +msgid "Show the number of purchase orders which are assigned to you" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:122 +msgid "Active Return Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:124 +msgid "Show the number of return orders which are currently active" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:129 +msgid "Overdue Return Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:131 +msgid "Show the number of return orders which are overdue" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:136 +msgid "Assigned Return Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:138 +msgid "Show the number of return orders which are assigned to you" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:149 +#: src/components/dashboard/widgets/GetStartedWidget.tsx:15 +#: src/defaults/links.tsx:38 +msgid "Getting Started" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:150 +#: src/defaults/links.tsx:41 +msgid "Getting started with InvenTree" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:157 +#: src/components/dashboard/widgets/NewsWidget.tsx:123 +msgid "News Updates" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:158 +msgid "The latest news from InvenTree" +msgstr "" + +#: src/components/dashboard/widgets/ColorToggleWidget.tsx:18 +#: src/components/nav/MainMenu.tsx:77 +msgid "Change Color Mode" +msgstr "" + +#: src/components/dashboard/widgets/ColorToggleWidget.tsx:23 +msgid "Change the color mode of the user interface" +msgstr "" + +#: src/components/dashboard/widgets/LanguageSelectWidget.tsx:18 +msgid "Change Language" +msgstr "" + +#: src/components/dashboard/widgets/LanguageSelectWidget.tsx:23 +msgid "Change the language of the user interface" +msgstr "" + +#: src/components/dashboard/widgets/NewsWidget.tsx:61 +#: src/components/nav/NotificationDrawer.tsx:88 +#: src/pages/Notifications.tsx:73 +msgid "Mark as read" +msgstr "既読にする" + +#: src/components/dashboard/widgets/NewsWidget.tsx:115 +msgid "Requires Superuser" +msgstr "" + +#: src/components/dashboard/widgets/NewsWidget.tsx:116 +msgid "This widget requires superuser permissions" +msgstr "" + +#: src/components/dashboard/widgets/NewsWidget.tsx:133 +msgid "No News" +msgstr "" + +#: src/components/dashboard/widgets/NewsWidget.tsx:134 +msgid "There are no unread news items" +msgstr "" + +#: src/components/details/Details.tsx:300 msgid "No name defined" msgstr "" -#: src/components/details/DetailsImage.tsx:65 +#: src/components/details/DetailsImage.tsx:69 msgid "Remove Image" msgstr "" -#: src/components/details/DetailsImage.tsx:68 +#: src/components/details/DetailsImage.tsx:72 msgid "Remove the associated image from this item?" msgstr "" -#: src/components/details/DetailsImage.tsx:71 -#: src/forms/StockForms.tsx:533 +#: src/components/details/DetailsImage.tsx:75 +#: src/forms/StockForms.tsx:651 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:199 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:306 -#: src/pages/stock/StockDetail.tsx:526 +#: src/pages/stock/StockDetail.tsx:690 msgid "Remove" msgstr "" -#: src/components/details/DetailsImage.tsx:71 -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:158 -#: src/components/items/ActionDropdown.tsx:215 -#: src/components/items/ActionDropdown.tsx:216 -#: src/contexts/ThemeContext.tsx:43 +#: src/components/details/DetailsImage.tsx:75 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:184 +#: src/components/items/ActionDropdown.tsx:268 +#: src/components/items/ActionDropdown.tsx:269 +#: src/contexts/ThemeContext.tsx:45 #: src/hooks/UseForm.tsx:40 -#: src/tables/FilterSelectDrawer.tsx:205 -#: src/tables/build/BuildOutputTable.tsx:286 +#: src/tables/FilterSelectDrawer.tsx:241 +#: src/tables/RowActions.tsx:59 +#: src/tables/build/BuildOutputTable.tsx:434 msgid "Cancel" msgstr "キャンセル" -#: src/components/details/DetailsImage.tsx:97 +#: src/components/details/DetailsImage.tsx:101 msgid "Drag and drop to upload" msgstr "" -#: src/components/details/DetailsImage.tsx:100 +#: src/components/details/DetailsImage.tsx:104 msgid "Click to select file(s)" msgstr "" -#: src/components/details/DetailsImage.tsx:226 +#: src/components/details/DetailsImage.tsx:230 msgid "Clear" msgstr "" -#: src/components/details/DetailsImage.tsx:232 -#: src/components/forms/ApiForm.tsx:627 -#: src/contexts/ThemeContext.tsx:43 -#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:60 +#: src/components/details/DetailsImage.tsx:236 +#: src/components/forms/ApiForm.tsx:660 +#: src/contexts/ThemeContext.tsx:45 msgid "Submit" msgstr "" -#: src/components/details/DetailsImage.tsx:272 +#: src/components/details/DetailsImage.tsx:280 msgid "Select from existing images" msgstr "" -#: src/components/details/DetailsImage.tsx:280 +#: src/components/details/DetailsImage.tsx:288 msgid "Select Image" msgstr "" -#: src/components/details/DetailsImage.tsx:292 +#: src/components/details/DetailsImage.tsx:304 +msgid "Download remote image" +msgstr "" + +#: src/components/details/DetailsImage.tsx:319 msgid "Upload new image" msgstr "" -#: src/components/details/DetailsImage.tsx:299 +#: src/components/details/DetailsImage.tsx:326 msgid "Upload Image" msgstr "" -#: src/components/details/DetailsImage.tsx:312 +#: src/components/details/DetailsImage.tsx:339 msgid "Delete image" msgstr "" +#: src/components/details/DetailsImage.tsx:373 +msgid "Download Image" +msgstr "" + +#: src/components/details/DetailsImage.tsx:378 +msgid "Image downloaded successfully" +msgstr "" + #: src/components/details/PartIcons.tsx:43 #~ msgid "Part is a template part (variants can be made from this part)" #~ msgstr "Part is a template part (variants can be made from this part)" @@ -235,36 +514,57 @@ msgstr "" #~ msgid "Part is virtual (not a physical part)" #~ msgstr "Part is virtual (not a physical part)" -#: src/components/editors/NotesEditor.tsx:66 +#: src/components/editors/NotesEditor.tsx:74 msgid "Image upload failed" msgstr "" -#: src/components/editors/NotesEditor.tsx:156 -#: src/components/forms/ApiForm.tsx:467 +#: src/components/editors/NotesEditor.tsx:83 +#: src/components/editors/NotesEditor.tsx:119 +#: src/components/forms/ApiForm.tsx:475 #: src/tables/bom/BomTable.tsx:441 msgid "Success" msgstr "" -#: src/components/editors/NotesEditor.tsx:157 +#: src/components/editors/NotesEditor.tsx:84 +msgid "Image uploaded successfully" +msgstr "" + +#: src/components/editors/NotesEditor.tsx:120 msgid "Notes saved successfully" msgstr "" -#: src/components/editors/NotesEditor.tsx:166 +#: src/components/editors/NotesEditor.tsx:131 msgid "Failed to save notes" msgstr "" -#: src/components/editors/NotesEditor.tsx:198 -msgid "Preview Notes" +#: src/components/editors/NotesEditor.tsx:134 +msgid "Error Saving Notes" msgstr "" -#: src/components/editors/NotesEditor.tsx:198 -msgid "Edit Notes" -msgstr "" +#: src/components/editors/NotesEditor.tsx:151 +#~ msgid "Disable Editing" +#~ msgstr "Disable Editing" -#: src/components/editors/NotesEditor.tsx:212 +#: src/components/editors/NotesEditor.tsx:154 msgid "Save Notes" msgstr "" +#: src/components/editors/NotesEditor.tsx:173 +msgid "Close Editor" +msgstr "" + +#: src/components/editors/NotesEditor.tsx:180 +msgid "Enable Editing" +msgstr "" + +#: src/components/editors/NotesEditor.tsx:198 +#~ msgid "Preview Notes" +#~ msgstr "Preview Notes" + +#: src/components/editors/NotesEditor.tsx:198 +#~ msgid "Edit Notes" +#~ msgstr "Edit Notes" + #: src/components/editors/TemplateEditor/CodeEditor/index.tsx:9 msgid "Code" msgstr "" @@ -281,40 +581,44 @@ msgstr "" msgid "PDF Preview" msgstr "" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:104 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:115 msgid "Error loading template" msgstr "" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:116 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:127 msgid "Error saving template" msgstr "" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:146 -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:274 -msgid "Save & Reload Preview" -msgstr "" - -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:151 -msgid "Are you sure you want to Save & Reload the preview?" -msgstr "" - #: src/components/editors/TemplateEditor/TemplateEditor.tsx:151 #~ msgid "Save & Reload preview?" #~ msgstr "Save & Reload preview?" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:153 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:155 +msgid "Could not load the template from the server." +msgstr "" + +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:172 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:303 +msgid "Save & Reload Preview" +msgstr "" + +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:177 +msgid "Are you sure you want to Save & Reload the preview?" +msgstr "" + +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:179 msgid "To render the preview the current template needs to be replaced on the server with your modifications which may break the label if it is under active use. Do you want to proceed?" msgstr "" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:157 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:183 msgid "Save & Reload" msgstr "" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:189 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:215 msgid "Preview updated" msgstr "" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:190 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:216 msgid "The preview has been updated successfully." msgstr "" @@ -322,15 +626,15 @@ msgstr "" #~ msgid "Save & Reload preview" #~ msgstr "Save & Reload preview" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:266 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:295 msgid "Reload preview" msgstr "" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:267 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:296 msgid "Use the currently stored template from the server" msgstr "" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:275 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:304 msgid "Save the current template and reload the preview" msgstr "" @@ -338,11 +642,11 @@ msgstr "" #~ msgid "to preview" #~ msgstr "to preview" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:333 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:365 msgid "Select instance to preview" msgstr "" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:377 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:409 msgid "Error rendering template" msgstr "" @@ -379,6 +683,7 @@ msgid "This page does not exist" msgstr "" #: src/components/errors/PermissionDenied.tsx:8 +#: src/functions/notifications.tsx:24 msgid "Permission Denied" msgstr "" @@ -394,8 +699,8 @@ msgstr "" msgid "A server error occurred" msgstr "" -#: src/components/forms/ApiForm.tsx:151 -#: src/components/forms/ApiForm.tsx:555 +#: src/components/forms/ApiForm.tsx:154 +#: src/components/forms/ApiForm.tsx:579 msgid "Form Error" msgstr "" @@ -403,22 +708,22 @@ msgstr "" #~ msgid "Form Errors Exist" #~ msgstr "Form Errors Exist" -#: src/components/forms/ApiForm.tsx:563 +#: src/components/forms/ApiForm.tsx:587 msgid "Errors exist for one or more form fields" msgstr "" -#: src/components/forms/ApiForm.tsx:665 -#: src/tables/plugin/PluginListTable.tsx:388 +#: src/components/forms/ApiForm.tsx:698 +#: src/tables/plugin/PluginListTable.tsx:195 msgid "Update" msgstr "" -#: src/components/forms/ApiForm.tsx:685 -#: src/components/items/ActionDropdown.tsx:195 +#: src/components/forms/ApiForm.tsx:718 +#: src/components/items/ActionDropdown.tsx:248 #: src/hooks/UseForm.tsx:122 -#: src/pages/Index/Scan.tsx:343 +#: src/pages/Index/Scan.tsx:357 #: src/pages/Notifications.tsx:123 -#: src/tables/RowActions.tsx:43 -#: src/tables/plugin/PluginListTable.tsx:420 +#: src/tables/RowActions.tsx:49 +#: src/tables/plugin/PluginListTable.tsx:232 msgid "Delete" msgstr "削除" @@ -428,14 +733,6 @@ msgstr "削除" #~ msgid "Check your your input and try again." #~ msgstr "Check your your input and try again." -#: src/components/forms/AuthenticationForm.tsx:51 -msgid "Login successful" -msgstr "" - -#: src/components/forms/AuthenticationForm.tsx:52 -msgid "Logged in successfully" -msgstr "" - #: src/components/forms/AuthenticationForm.tsx:52 #~ msgid "Welcome back!" #~ msgstr "Welcome back!" @@ -444,14 +741,22 @@ msgstr "" #~ msgid "Login successfull" #~ msgstr "Login successfull" -#: src/components/forms/AuthenticationForm.tsx:58 +#: src/components/forms/AuthenticationForm.tsx:55 +msgid "Login successful" +msgstr "" + +#: src/components/forms/AuthenticationForm.tsx:56 +msgid "Logged in successfully" +msgstr "" + +#: src/components/forms/AuthenticationForm.tsx:61 msgid "Login failed" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:59 -#: src/components/forms/AuthenticationForm.tsx:76 -#: src/components/forms/AuthenticationForm.tsx:211 -#: src/functions/auth.tsx:164 +#: src/components/forms/AuthenticationForm.tsx:62 +#: src/components/forms/AuthenticationForm.tsx:79 +#: src/components/forms/AuthenticationForm.tsx:214 +#: src/functions/auth.tsx:175 msgid "Check your input and try again." msgstr "" @@ -460,45 +765,46 @@ msgstr "" #~ msgid "Mail delivery successfull" #~ msgstr "Mail delivery successfull" -#: src/components/forms/AuthenticationForm.tsx:70 -#: src/functions/auth.tsx:155 +#: src/components/forms/AuthenticationForm.tsx:73 +#: src/functions/auth.tsx:166 msgid "Mail delivery successful" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:71 +#: src/components/forms/AuthenticationForm.tsx:74 msgid "Check your inbox for the login link. If you have an account, you will receive a login link. Check in spam too." msgstr "" -#: src/components/forms/AuthenticationForm.tsx:75 +#: src/components/forms/AuthenticationForm.tsx:78 msgid "Mail delivery failed" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:95 +#: src/components/forms/AuthenticationForm.tsx:98 msgid "Or continue with other methods" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:106 -#: src/components/forms/AuthenticationForm.tsx:227 +#: src/components/forms/AuthenticationForm.tsx:109 +#: src/components/forms/AuthenticationForm.tsx:230 +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:67 msgid "Username" msgstr "ユーザー名" -#: src/components/forms/AuthenticationForm.tsx:107 -#: src/components/forms/AuthenticationForm.tsx:228 +#: src/components/forms/AuthenticationForm.tsx:110 +#: src/components/forms/AuthenticationForm.tsx:231 msgid "Your username" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:112 -#: src/components/forms/AuthenticationForm.tsx:240 -#: src/pages/Auth/Set-Password.tsx:106 +#: src/components/forms/AuthenticationForm.tsx:115 +#: src/components/forms/AuthenticationForm.tsx:243 +#: src/pages/Auth/Set-Password.tsx:101 msgid "Password" msgstr "パスワード" -#: src/components/forms/AuthenticationForm.tsx:113 -#: src/components/forms/AuthenticationForm.tsx:241 +#: src/components/forms/AuthenticationForm.tsx:116 +#: src/components/forms/AuthenticationForm.tsx:244 msgid "Your password" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:125 +#: src/components/forms/AuthenticationForm.tsx:128 #: src/pages/Auth/Reset.tsx:26 msgid "Reset password" msgstr "パスワードを再設定" @@ -507,77 +813,79 @@ msgstr "パスワードを再設定" #~ msgid "Log in" #~ msgstr "Log in" -#: src/components/forms/AuthenticationForm.tsx:134 -#: src/components/forms/AuthenticationForm.tsx:233 +#: src/components/forms/AuthenticationForm.tsx:136 +#~ msgid "I will use username and password" +#~ msgstr "I will use username and password" + +#: src/components/forms/AuthenticationForm.tsx:137 +#: src/components/forms/AuthenticationForm.tsx:236 #: src/pages/Auth/Reset.tsx:31 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:51 msgid "Email" msgstr "メールアドレス" -#: src/components/forms/AuthenticationForm.tsx:135 +#: src/components/forms/AuthenticationForm.tsx:138 #: src/pages/Auth/Reset.tsx:32 -#: src/pages/Auth/Set-Password.tsx:107 +#: src/pages/Auth/Set-Password.tsx:102 msgid "We will send you a link to login - if you are registered" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:136 -#~ msgid "I will use username and password" -#~ msgstr "I will use username and password" - -#: src/components/forms/AuthenticationForm.tsx:151 +#: src/components/forms/AuthenticationForm.tsx:154 msgid "Send me an email" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:153 +#: src/components/forms/AuthenticationForm.tsx:156 msgid "Use username and password" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:162 +#: src/components/forms/AuthenticationForm.tsx:165 msgid "Log In" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:164 +#: src/components/forms/AuthenticationForm.tsx:167 +#: src/pages/Auth/Reset.tsx:41 +#: src/pages/Auth/Set-Password.tsx:107 msgid "Send Email" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:193 +#: src/components/forms/AuthenticationForm.tsx:196 msgid "Registration successful" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:194 +#: src/components/forms/AuthenticationForm.tsx:197 msgid "Please confirm your email address to complete the registration" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:210 +#: src/components/forms/AuthenticationForm.tsx:213 msgid "Input error" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:234 +#: src/components/forms/AuthenticationForm.tsx:237 msgid "This will be used for a confirmation" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:246 +#: src/components/forms/AuthenticationForm.tsx:249 msgid "Password repeat" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:247 +#: src/components/forms/AuthenticationForm.tsx:250 msgid "Repeat password" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:259 -#: src/components/forms/AuthenticationForm.tsx:304 +#: src/components/forms/AuthenticationForm.tsx:262 +#: src/components/forms/AuthenticationForm.tsx:307 msgid "Register" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:265 +#: src/components/forms/AuthenticationForm.tsx:268 msgid "Or use SSO" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:296 +#: src/components/forms/AuthenticationForm.tsx:299 msgid "Don't have an account?" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:315 +#: src/components/forms/AuthenticationForm.tsx:318 msgid "Go back to login" msgstr "" @@ -588,19 +896,20 @@ msgstr "" #: src/components/forms/HostOptionsForm.tsx:42 #: src/components/forms/HostOptionsForm.tsx:70 +#: src/components/plugins/PluginDrawer.tsx:69 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:410 +#: src/pages/Index/Settings/AdminCenter/UnitManagmentPanel.tsx:19 #: src/pages/part/CategoryDetail.tsx:81 -#: src/pages/part/PartDetail.tsx:143 -#: src/pages/stock/LocationDetail.tsx:89 -#: src/tables/machine/MachineTypeTable.tsx:65 -#: src/tables/machine/MachineTypeTable.tsx:109 -#: src/tables/machine/MachineTypeTable.tsx:216 -#: src/tables/machine/MachineTypeTable.tsx:319 +#: src/pages/part/PartDetail.tsx:164 +#: src/pages/stock/LocationDetail.tsx:83 +#: src/tables/machine/MachineTypeTable.tsx:70 +#: src/tables/machine/MachineTypeTable.tsx:119 +#: src/tables/machine/MachineTypeTable.tsx:237 +#: src/tables/machine/MachineTypeTable.tsx:340 #: src/tables/plugin/PluginErrorTable.tsx:33 -#: src/tables/plugin/PluginListTable.tsx:126 #: src/tables/purchasing/ManufacturerPartParameterTable.tsx:32 #: src/tables/settings/GroupTable.tsx:147 -#: src/tables/settings/PendingTasksTable.tsx:28 +#: src/tables/settings/PendingTasksTable.tsx:32 #: src/tables/stock/LocationTypesTable.tsx:69 msgid "Name" msgstr "名前" @@ -650,7 +959,7 @@ msgid "Uncategorized" msgstr "" #: src/components/forms/fields/IconField.tsx:209 -#: src/components/nav/Layout.tsx:70 +#: src/components/nav/Layout.tsx:77 #: src/tables/part/PartThumbTable.tsx:192 msgid "Search..." msgstr "" @@ -667,28 +976,27 @@ msgstr "" msgid "{0} icons" msgstr "" -#: src/components/forms/fields/RelatedModelField.tsx:318 -#: src/pages/Index/Settings/UserSettings.tsx:96 +#: src/components/forms/fields/RelatedModelField.tsx:319 +#: src/pages/Index/Settings/UserSettings.tsx:97 #: src/tables/Search.tsx:23 msgid "Search" msgstr "" -#: src/components/forms/fields/RelatedModelField.tsx:319 +#: src/components/forms/fields/RelatedModelField.tsx:320 #: src/components/modals/AboutInvenTreeModal.tsx:81 -#: src/components/widgets/WidgetLayout.tsx:120 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:316 msgid "Loading" msgstr "読み込み中" -#: src/components/forms/fields/RelatedModelField.tsx:321 +#: src/components/forms/fields/RelatedModelField.tsx:322 msgid "No results found" msgstr "" -#: src/components/forms/fields/TableField.tsx:52 -msgid "modelRenderer entry required for tables" -msgstr "" +#: src/components/forms/fields/TableField.tsx:72 +#~ msgid "modelRenderer entry required for tables" +#~ msgstr "modelRenderer entry required for tables" -#: src/components/forms/fields/TableField.tsx:76 +#: src/components/forms/fields/TableField.tsx:167 msgid "No entries available" msgstr "" @@ -741,7 +1049,7 @@ msgid "Filter by row validation status" msgstr "" #: src/components/importer/ImportDataSelector.tsx:365 -#: src/tables/build/BuildOutputTable.tsx:266 +#: src/tables/build/BuildOutputTable.tsx:407 msgid "Complete" msgstr "" @@ -749,20 +1057,21 @@ msgstr "" msgid "Filter by row completion status" msgstr "" -#: src/components/importer/ImportDataSelector.tsx:383 +#: src/components/importer/ImportDataSelector.tsx:384 msgid "Import selected rows" msgstr "" -#: src/components/importer/ImportDataSelector.tsx:398 +#: src/components/importer/ImportDataSelector.tsx:399 msgid "Processing Data" msgstr "" -#: src/components/importer/ImporterColumnSelector.tsx:50 -#: src/components/importer/ImporterColumnSelector.tsx:176 +#: src/components/importer/ImporterColumnSelector.tsx:53 +#: src/components/importer/ImporterColumnSelector.tsx:179 +#: src/components/items/ErrorItem.tsx:12 msgid "An error occurred" msgstr "" -#: src/components/importer/ImporterColumnSelector.tsx:62 +#: src/components/importer/ImporterColumnSelector.tsx:65 msgid "Select column, or leave blank to ignore this field." msgstr "" @@ -778,51 +1087,51 @@ msgstr "" #~ msgid "Imported Column Name" #~ msgstr "Imported Column Name" -#: src/components/importer/ImporterColumnSelector.tsx:182 +#: src/components/importer/ImporterColumnSelector.tsx:185 msgid "Ignore this field" msgstr "" -#: src/components/importer/ImporterColumnSelector.tsx:196 +#: src/components/importer/ImporterColumnSelector.tsx:199 msgid "Mapping data columns to database fields" msgstr "" -#: src/components/importer/ImporterColumnSelector.tsx:201 +#: src/components/importer/ImporterColumnSelector.tsx:204 msgid "Accept Column Mapping" msgstr "" -#: src/components/importer/ImporterColumnSelector.tsx:214 +#: src/components/importer/ImporterColumnSelector.tsx:217 msgid "Database Field" msgstr "" -#: src/components/importer/ImporterColumnSelector.tsx:215 +#: src/components/importer/ImporterColumnSelector.tsx:218 msgid "Field Description" msgstr "" -#: src/components/importer/ImporterColumnSelector.tsx:216 +#: src/components/importer/ImporterColumnSelector.tsx:219 msgid "Imported Column" msgstr "" -#: src/components/importer/ImporterColumnSelector.tsx:217 +#: src/components/importer/ImporterColumnSelector.tsx:220 msgid "Default Value" msgstr "" -#: src/components/importer/ImporterDrawer.tsx:44 +#: src/components/importer/ImporterDrawer.tsx:46 msgid "Upload File" msgstr "" -#: src/components/importer/ImporterDrawer.tsx:45 +#: src/components/importer/ImporterDrawer.tsx:47 msgid "Map Columns" msgstr "" -#: src/components/importer/ImporterDrawer.tsx:46 +#: src/components/importer/ImporterDrawer.tsx:48 msgid "Import Data" msgstr "" -#: src/components/importer/ImporterDrawer.tsx:47 +#: src/components/importer/ImporterDrawer.tsx:49 msgid "Process Data" msgstr "" -#: src/components/importer/ImporterDrawer.tsx:48 +#: src/components/importer/ImporterDrawer.tsx:50 msgid "Complete Import" msgstr "" @@ -830,28 +1139,28 @@ msgstr "" #~ msgid "Cancel import session" #~ msgstr "Cancel import session" -#: src/components/importer/ImporterDrawer.tsx:104 +#: src/components/importer/ImporterDrawer.tsx:106 msgid "Import Complete" msgstr "" -#: src/components/importer/ImporterDrawer.tsx:107 +#: src/components/importer/ImporterDrawer.tsx:109 msgid "Data has been imported successfully" msgstr "" -#: src/components/importer/ImporterDrawer.tsx:109 -#: src/components/importer/ImporterDrawer.tsx:118 +#: src/components/importer/ImporterDrawer.tsx:111 +#: src/components/importer/ImporterDrawer.tsx:120 msgid "Close" msgstr "" -#: src/components/importer/ImporterDrawer.tsx:115 +#: src/components/importer/ImporterDrawer.tsx:117 msgid "Unknown Status" msgstr "" -#: src/components/importer/ImporterDrawer.tsx:116 +#: src/components/importer/ImporterDrawer.tsx:118 msgid "Import session has unknown status" msgstr "" -#: src/components/importer/ImporterDrawer.tsx:135 +#: src/components/importer/ImporterDrawer.tsx:137 msgid "Importing Data" msgstr "" @@ -860,85 +1169,115 @@ msgid "Importing Records" msgstr "" #: src/components/importer/ImporterImportProgress.tsx:39 -msgid "Imported rows" +#: src/tables/settings/ImportSessionTable.tsx:78 +msgid "Imported Rows" msgstr "" -#: src/components/items/ActionDropdown.tsx:121 -msgid "Barcode Actions" +#: src/components/importer/ImporterImportProgress.tsx:39 +#~ msgid "Imported rows" +#~ msgstr "Imported rows" + +#: src/components/items/ActionDropdown.tsx:126 +msgid "Options" msgstr "" #: src/components/items/ActionDropdown.tsx:140 -msgid "View Barcode" -msgstr "" +#~ msgid "View Barcode" +#~ msgstr "View Barcode" -#: src/components/items/ActionDropdown.tsx:147 -msgid "View" -msgstr "" - -#: src/components/items/ActionDropdown.tsx:148 -msgid "View barcode" -msgstr "" - -#: src/components/items/ActionDropdown.tsx:161 -msgid "Link Barcode" +#: src/components/items/ActionDropdown.tsx:162 +#: src/tables/InvenTreeTableHeader.tsx:159 +#: src/tables/InvenTreeTableHeader.tsx:160 +msgid "Barcode Actions" msgstr "" #: src/components/items/ActionDropdown.tsx:162 -msgid "Link custom barcode" +#~ msgid "Link custom barcode" +#~ msgstr "Link custom barcode" + +#: src/components/items/ActionDropdown.tsx:167 +msgid "View" msgstr "" -#: src/components/items/ActionDropdown.tsx:173 -#: src/forms/PurchaseOrderForms.tsx:426 -msgid "Unlink Barcode" +#: src/components/items/ActionDropdown.tsx:169 +msgid "View barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:174 -msgid "Unlink custom barcode" +#: src/components/items/ActionDropdown.tsx:175 +msgid "Link Barcode" +msgstr "" + +#: src/components/items/ActionDropdown.tsx:177 +msgid "Link a custom barcode to this item" msgstr "" #: src/components/items/ActionDropdown.tsx:183 -#: src/tables/RowActions.tsx:33 +#: src/components/items/QRCode.tsx:193 +#: src/forms/PurchaseOrderForms.tsx:464 +msgid "Unlink Barcode" +msgstr "" + +#: src/components/items/ActionDropdown.tsx:185 +msgid "Unlink custom barcode" +msgstr "" + +#: src/components/items/ActionDropdown.tsx:236 +#: src/tables/RowActions.tsx:39 msgid "Edit" msgstr "編集" -#: src/components/items/ActionDropdown.tsx:184 +#: src/components/items/ActionDropdown.tsx:237 msgid "Edit item" msgstr "" -#: src/components/items/ActionDropdown.tsx:196 +#: src/components/items/ActionDropdown.tsx:249 msgid "Delete item" msgstr "" -#: src/components/items/ActionDropdown.tsx:204 -#: src/components/items/ActionDropdown.tsx:205 +#: src/components/items/ActionDropdown.tsx:257 +#: src/components/items/ActionDropdown.tsx:258 msgid "Hold" msgstr "" -#: src/components/items/ActionDropdown.tsx:227 -#: src/tables/RowActions.tsx:23 +#: src/components/items/ActionDropdown.tsx:280 +#: src/tables/RowActions.tsx:29 msgid "Duplicate" msgstr "" -#: src/components/items/ActionDropdown.tsx:228 +#: src/components/items/ActionDropdown.tsx:281 msgid "Duplicate item" msgstr "" +#: src/components/items/BarcodeInput.tsx:23 +msgid "Scan barcode data here using barcode scanner" +msgstr "" + +#: src/components/items/BarcodeInput.tsx:24 +#: src/tables/settings/BarcodeScanHistoryTable.tsx:65 +msgid "Barcode" +msgstr "" + +#: src/components/items/BarcodeInput.tsx:25 +msgid "Scan" +msgstr "" + #: src/components/items/DocTooltip.tsx:92 +#: src/components/items/GettingStartedCarousel.tsx:20 msgid "Read More" msgstr "続きを読む" -#: src/components/items/ErrorItem.tsx:5 -#: src/tables/InvenTreeTable.tsx:487 +#: src/components/items/ErrorItem.tsx:8 +#: src/tables/InvenTreeTable.tsx:473 msgid "Unknown error" msgstr "" -#: src/components/items/ErrorItem.tsx:10 -msgid "An error occurred:" -msgstr "" +#: src/components/items/ErrorItem.tsx:13 +#~ msgid "An error occurred:" +#~ msgstr "An error occurred:" #: src/components/items/GettingStartedCarousel.tsx:27 -msgid "Read more" -msgstr "" +#~ msgid "Read more" +#~ msgstr "Read more" #: src/components/items/InfoItem.tsx:27 msgid "None" @@ -965,30 +1304,51 @@ msgstr "" msgid "This panel is a placeholder." msgstr "" -#: src/components/items/QRCode.tsx:87 +#: src/components/items/QRCode.tsx:89 msgid "Low (7%)" msgstr "" -#: src/components/items/QRCode.tsx:88 +#: src/components/items/QRCode.tsx:90 msgid "Medium (15%)" msgstr "" -#: src/components/items/QRCode.tsx:89 +#: src/components/items/QRCode.tsx:91 msgid "Quartile (25%)" msgstr "" -#: src/components/items/QRCode.tsx:90 +#: src/components/items/QRCode.tsx:92 msgid "High (30%)" msgstr "" -#: src/components/items/QRCode.tsx:107 -msgid "Barcode Data:" +#: src/components/items/QRCode.tsx:100 +msgid "Custom barcode" +msgstr "" + +#: src/components/items/QRCode.tsx:101 +msgid "A custom barcode is registered for this item. The shown code is not that custom barcode." msgstr "" #: src/components/items/QRCode.tsx:118 +msgid "Barcode Data:" +msgstr "" + +#: src/components/items/QRCode.tsx:129 msgid "Select Error Correction Level" msgstr "" +#: src/components/items/QRCode.tsx:171 +#: src/pages/part/PartDetail.tsx:239 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:187 +#: src/pages/sales/ReturnOrderDetail.tsx:157 +#: src/pages/sales/SalesOrderDetail.tsx:169 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:166 +msgid "Link" +msgstr "" + +#: src/components/items/QRCode.tsx:190 +msgid "This will remove the link to the associated barcode" +msgstr "" + #: src/components/modals/AboutInvenTreeModal.tsx:99 msgid "Version Information" msgstr "" @@ -1062,11 +1422,11 @@ msgstr "" msgid "Submit Bug Report" msgstr "" -#: src/components/modals/AboutInvenTreeModal.tsx:183 +#: src/components/modals/AboutInvenTreeModal.tsx:181 msgid "Copy version information" msgstr "" -#: src/components/modals/AboutInvenTreeModal.tsx:192 +#: src/components/modals/AboutInvenTreeModal.tsx:189 #: src/components/modals/ServerInfoModal.tsx:147 msgid "Dismiss" msgstr "" @@ -1091,61 +1451,20 @@ msgstr "" msgid "{key} Packages" msgstr "" -#: src/components/modals/QrCodeModal.tsx:72 +#: src/components/modals/QrCodeModal.tsx:24 msgid "Unknown response" msgstr "" -#: src/components/modals/QrCodeModal.tsx:102 -#: src/pages/Index/Scan.tsx:636 -msgid "Error while getting camera" -msgstr "" - -#: src/components/modals/QrCodeModal.tsx:125 -#: src/pages/Index/Scan.tsx:659 -msgid "Error while scanning" -msgstr "" - -#: src/components/modals/QrCodeModal.tsx:139 -#: src/pages/Index/Scan.tsx:673 -msgid "Error while stopping" -msgstr "" - -#: src/components/modals/QrCodeModal.tsx:154 -#: src/defaults/menuItems.tsx:21 -#: src/pages/Index/Scan.tsx:746 -msgid "Scanning" -msgstr "" - -#: src/components/modals/QrCodeModal.tsx:154 -#: src/pages/Index/Scan.tsx:746 -msgid "Not scanning" -msgstr "" - -#: src/components/modals/QrCodeModal.tsx:159 -#: src/pages/Index/Scan.tsx:752 -msgid "Select Camera" -msgstr "" - -#: src/components/modals/QrCodeModal.tsx:169 -#: src/pages/Index/Scan.tsx:737 -msgid "Start scanning" -msgstr "" - -#: src/components/modals/QrCodeModal.tsx:176 -#: src/pages/Index/Scan.tsx:729 -msgid "Stop scanning" -msgstr "" - -#: src/components/modals/QrCodeModal.tsx:181 +#: src/components/modals/QrCodeModal.tsx:39 msgid "No scans yet!" msgstr "" -#: src/components/modals/QrCodeModal.tsx:201 +#: src/components/modals/QrCodeModal.tsx:57 msgid "Close modal" msgstr "" #: src/components/modals/ServerInfoModal.tsx:26 -#: src/pages/Index/Settings/SystemSettings.tsx:38 +#: src/pages/Index/Settings/SystemSettings.tsx:37 msgid "Server" msgstr "" @@ -1206,6 +1525,7 @@ msgid "Background Worker" msgstr "" #: src/components/modals/ServerInfoModal.tsx:101 +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:29 msgid "Background worker not running" msgstr "" @@ -1218,8 +1538,8 @@ msgid "Email settings not configured" msgstr "" #: src/components/modals/ServerInfoModal.tsx:121 -#: src/tables/plugin/PluginListTable.tsx:144 -#: src/tables/plugin/PluginListTable.tsx:294 +#: src/components/plugins/PluginDrawer.tsx:89 +#: src/tables/plugin/PluginListTable.tsx:116 msgid "Version" msgstr "" @@ -1227,7 +1547,7 @@ msgstr "" msgid "Server Version" msgstr "" -#: src/components/nav/Layout.tsx:73 +#: src/components/nav/Layout.tsx:80 msgid "Nothing found..." msgstr "" @@ -1237,18 +1557,26 @@ msgstr "" #~ msgstr "Profile" #: src/components/nav/MainMenu.tsx:52 +#: src/components/nav/NavigationDrawer.tsx:178 #: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:28 msgid "Settings" msgstr "設定" #: src/components/nav/MainMenu.tsx:59 -#: src/defaults/menuItems.tsx:15 -msgid "Account settings" +#: src/pages/Index/Settings/UserSettings.tsx:152 +msgid "Account Settings" msgstr "" +#: src/components/nav/MainMenu.tsx:59 +#: src/defaults/menuItems.tsx:15 +#~ msgid "Account settings" +#~ msgstr "Account settings" + #: src/components/nav/MainMenu.tsx:67 -#: src/defaults/menuItems.tsx:58 -#: src/pages/Index/Settings/SystemSettings.tsx:315 +#: src/components/nav/NavigationDrawer.tsx:141 +#: src/components/nav/SettingsHeader.tsx:49 +#: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:37 +#: src/pages/Index/Settings/SystemSettings.tsx:310 msgid "System Settings" msgstr "" @@ -1260,14 +1588,11 @@ msgstr "" #~ msgid "Switch to pseudo language" #~ msgstr "Switch to pseudo language" -#: src/components/nav/MainMenu.tsx:77 -msgid "Change Color Mode" -msgstr "" - #: src/components/nav/MainMenu.tsx:86 -#: src/defaults/actions.tsx:71 -#: src/defaults/menuItems.tsx:63 -#: src/pages/Index/Settings/AdminCenter/Index.tsx:221 +#: src/components/nav/NavigationDrawer.tsx:148 +#: src/components/nav/SettingsHeader.tsx:50 +#: src/defaults/actions.tsx:63 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:251 msgid "Admin Center" msgstr "" @@ -1275,458 +1600,732 @@ msgstr "" msgid "Logout" msgstr "ログアウト" -#: src/components/nav/NavHoverMenu.tsx:65 -#: src/defaults/actions.tsx:60 -msgid "Open Navigation" -msgstr "" - #: src/components/nav/NavHoverMenu.tsx:84 -msgid "View all" -msgstr "" +#~ msgid "View all" +#~ msgstr "View all" #: src/components/nav/NavHoverMenu.tsx:100 #: src/components/nav/NavHoverMenu.tsx:110 -msgid "Get started" -msgstr "" +#~ msgid "Get started" +#~ msgstr "Get started" #: src/components/nav/NavHoverMenu.tsx:103 -msgid "Overview over high-level objects, functions and possible usecases." -msgstr "" - -#: src/components/nav/NavigationDrawer.tsx:57 -msgid "Navigation" -msgstr "" +#~ msgid "Overview over high-level objects, functions and possible usecases." +#~ msgstr "Overview over high-level objects, functions and possible usecases." #: src/components/nav/NavigationDrawer.tsx:60 -msgid "Pages" +#~ msgid "Pages" +#~ msgstr "Pages" + +#: src/components/nav/NavigationDrawer.tsx:77 +#: src/components/render/ModelType.tsx:31 +#: src/defaults/links.tsx:10 +#: src/pages/Index/Settings/SystemSettings.tsx:172 +#: src/pages/part/CategoryDetail.tsx:125 +#: src/pages/part/CategoryDetail.tsx:249 +#: src/pages/part/CategoryDetail.tsx:279 +#: src/pages/part/PartDetail.tsx:856 +msgid "Parts" +msgstr "パーツ" + +#: src/components/nav/NavigationDrawer.tsx:84 +#: src/components/render/Part.tsx:30 +#: src/defaults/links.tsx:11 +#: src/pages/Index/Settings/SystemSettings.tsx:205 +#: src/pages/part/PartDetail.tsx:593 +#: src/pages/stock/LocationDetail.tsx:352 +#: src/pages/stock/StockDetail.tsx:528 +#: src/tables/stock/StockItemTable.tsx:69 +msgid "Stock" +msgstr "在庫" + +#: src/components/nav/NavigationDrawer.tsx:91 +#: src/defaults/links.tsx:13 +#: src/pages/build/BuildDetail.tsx:530 +#: src/pages/build/BuildIndex.tsx:36 +msgid "Manufacturing" msgstr "" -#: src/components/nav/NavigationDrawer.tsx:65 -#: src/pages/Index/Settings/AdminCenter/Index.tsx:176 -#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:41 -msgid "Plugins" +#: src/components/nav/NavigationDrawer.tsx:98 +#: src/defaults/links.tsx:18 +#: src/pages/company/ManufacturerDetail.tsx:9 +#: src/pages/company/ManufacturerPartDetail.tsx:258 +#: src/pages/company/SupplierDetail.tsx:9 +#: src/pages/company/SupplierPartDetail.tsx:336 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:480 +#: src/pages/purchasing/PurchasingIndex.tsx:60 +msgid "Purchasing" msgstr "" -#: src/components/nav/NavigationDrawer.tsx:75 -#: src/defaults/actions.tsx:32 -msgid "Documentation" +#: src/components/nav/NavigationDrawer.tsx:105 +#: src/defaults/links.tsx:22 +#: src/pages/company/CustomerDetail.tsx:9 +#: src/pages/sales/ReturnOrderDetail.tsx:469 +#: src/pages/sales/SalesIndex.tsx:53 +#: src/pages/sales/SalesOrderDetail.tsx:520 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:343 +msgid "Sales" msgstr "" -#: src/components/nav/NavigationDrawer.tsx:78 -msgid "About" -msgstr "" - -#: src/components/nav/NotificationDrawer.tsx:92 -#: src/pages/Index/Settings/SystemSettings.tsx:109 -#: src/pages/Index/Settings/UserSettings.tsx:126 +#: src/components/nav/NavigationDrawer.tsx:129 +#: src/components/nav/NotificationDrawer.tsx:178 +#: src/pages/Index/Settings/SystemSettings.tsx:110 +#: src/pages/Index/Settings/UserSettings.tsx:127 #: src/pages/Notifications.tsx:65 #: src/pages/Notifications.tsx:151 msgid "Notifications" msgstr "" -#: src/components/nav/NotificationDrawer.tsx:94 +#: src/components/nav/NavigationDrawer.tsx:135 +#: src/components/nav/SettingsHeader.tsx:48 +msgid "User Settings" +msgstr "" + +#: src/components/nav/NavigationDrawer.tsx:173 +msgid "Navigation" +msgstr "" + +#: src/components/nav/NavigationDrawer.tsx:183 +#: src/forms/PurchaseOrderForms.tsx:689 +#: src/forms/StockForms.tsx:614 +#: src/forms/StockForms.tsx:651 +#: src/forms/StockForms.tsx:677 +#: src/forms/StockForms.tsx:705 +#: src/forms/StockForms.tsx:736 +#: src/forms/StockForms.tsx:771 +#: src/forms/StockForms.tsx:813 +#: src/forms/StockForms.tsx:851 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:413 +#: src/tables/RowActions.tsx:129 +#: src/tables/build/BuildLineTable.tsx:101 +msgid "Actions" +msgstr "" + +#: src/components/nav/NavigationDrawer.tsx:191 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:205 +#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:44 +msgid "Plugins" +msgstr "" + +#: src/components/nav/NavigationDrawer.tsx:204 +#: src/defaults/actions.tsx:24 +msgid "Documentation" +msgstr "" + +#: src/components/nav/NavigationDrawer.tsx:210 +msgid "About" +msgstr "" + +#: src/components/nav/NotificationDrawer.tsx:180 msgid "Mark all as read" msgstr "" -#: src/components/nav/NotificationDrawer.tsx:104 +#: src/components/nav/NotificationDrawer.tsx:190 msgid "View all notifications" msgstr "" -#: src/components/nav/NotificationDrawer.tsx:123 +#: src/components/nav/NotificationDrawer.tsx:210 msgid "You have no unread notifications." msgstr "" -#: src/components/nav/NotificationDrawer.tsx:139 -#: src/components/nav/NotificationDrawer.tsx:145 -#: src/tables/notifications/NotificationsTable.tsx:36 -msgid "Notification" -msgstr "" - -#: src/components/nav/NotificationDrawer.tsx:168 -#: src/pages/Notifications.tsx:73 -msgid "Mark as read" -msgstr "既読にする" - -#: src/components/nav/SearchDrawer.tsx:78 +#: src/components/nav/SearchDrawer.tsx:85 msgid "results" msgstr "" -#: src/components/nav/SearchDrawer.tsx:370 +#: src/components/nav/SearchDrawer.tsx:380 msgid "Enter search text" msgstr "" -#: src/components/nav/SearchDrawer.tsx:397 +#: src/components/nav/SearchDrawer.tsx:391 +msgid "Refresh search results" +msgstr "" + +#: src/components/nav/SearchDrawer.tsx:402 +#: src/components/nav/SearchDrawer.tsx:409 msgid "Search Options" msgstr "" -#: src/components/nav/SearchDrawer.tsx:400 +#: src/components/nav/SearchDrawer.tsx:412 msgid "Regex search" msgstr "" -#: src/components/nav/SearchDrawer.tsx:410 +#: src/components/nav/SearchDrawer.tsx:421 msgid "Whole word search" msgstr "" -#: src/components/nav/SearchDrawer.tsx:451 +#: src/components/nav/SearchDrawer.tsx:461 msgid "An error occurred during search query" msgstr "" #: src/components/nav/SearchDrawer.tsx:462 -msgid "No results" +#~ msgid "No results" +#~ msgstr "No results" + +#: src/components/nav/SearchDrawer.tsx:472 +#: src/tables/part/PartTestTemplateTable.tsx:76 +msgid "No Results" msgstr "" -#: src/components/nav/SearchDrawer.tsx:465 +#: src/components/nav/SearchDrawer.tsx:475 msgid "No results available for search query" msgstr "" -#: src/components/render/Instance.tsx:217 +#: src/components/panels/AttachmentPanel.tsx:18 +msgid "Attachments" +msgstr "添付ファイル" + +#: src/components/panels/NotesPanel.tsx:24 +#: src/tables/build/BuildOrderTestTable.tsx:143 +#: src/tables/stock/StockTrackingTable.tsx:204 +msgid "Notes" +msgstr "メモ" + +#: src/components/plugins/PluginDrawer.tsx:47 +msgid "Plugin Inactive" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:50 +msgid "Plugin is not active" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:60 +msgid "Plugin Information" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:74 +#: src/pages/build/BuildDetail.tsx:116 +#: src/pages/company/CompanyDetail.tsx:89 +#: src/pages/company/ManufacturerPartDetail.tsx:89 +#: src/pages/company/ManufacturerPartDetail.tsx:116 +#: src/pages/company/SupplierPartDetail.tsx:140 +#: src/pages/part/CategoryDetail.tsx:101 +#: src/pages/part/PartDetail.tsx:178 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:136 +#: src/pages/sales/ReturnOrderDetail.tsx:107 +#: src/pages/sales/SalesOrderDetail.tsx:116 +#: src/pages/stock/LocationDetail.tsx:103 +#: src/tables/ColumnRenderers.tsx:92 +#: src/tables/bom/UsedInTable.tsx:44 +#: src/tables/build/BuildAllocatedStockTable.tsx:83 +#: src/tables/build/BuildLineTable.tsx:329 +#: src/tables/machine/MachineTypeTable.tsx:74 +#: src/tables/machine/MachineTypeTable.tsx:129 +#: src/tables/machine/MachineTypeTable.tsx:240 +#: src/tables/machine/MachineTypeTable.tsx:344 +#: src/tables/part/RelatedPartTable.tsx:66 +#: src/tables/plugin/PluginListTable.tsx:99 +#: src/tables/sales/SalesOrderAllocationTable.tsx:87 +#: src/tables/sales/SalesOrderLineItemTable.tsx:75 +#: src/tables/stock/LocationTypesTable.tsx:74 +msgid "Description" +msgstr "説明" + +#: src/components/plugins/PluginDrawer.tsx:79 +msgid "Author" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:84 +#: src/pages/part/PartSchedulingDetail.tsx:277 +#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:40 +#: src/pages/part/pricing/SaleHistoryPanel.tsx:38 +#: src/tables/ColumnRenderers.tsx:215 +#: src/tables/build/BuildOrderTestTable.tsx:151 +#: src/tables/settings/StocktakeReportTable.tsx:40 +msgid "Date" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:94 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:398 +#: src/pages/part/PartDetail.tsx:331 +#: src/tables/bom/UsedInTable.tsx:84 +#: src/tables/company/CompanyTable.tsx:62 +#: src/tables/company/CompanyTable.tsx:96 +#: src/tables/machine/MachineListTable.tsx:333 +#: src/tables/machine/MachineListTable.tsx:605 +#: src/tables/part/ParametricPartTable.tsx:223 +#: src/tables/part/PartTable.tsx:178 +#: src/tables/part/PartVariantTable.tsx:15 +#: src/tables/plugin/PluginListTable.tsx:94 +#: src/tables/plugin/PluginListTable.tsx:401 +#: src/tables/purchasing/SupplierPartTable.tsx:100 +#: src/tables/purchasing/SupplierPartTable.tsx:190 +#: src/tables/settings/UserTable.tsx:283 +#: src/tables/stock/StockItemTable.tsx:293 +msgid "Active" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:106 +msgid "Package Name" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:112 +msgid "Installation Path" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:117 +#: src/tables/machine/MachineTypeTable.tsx:152 +#: src/tables/machine/MachineTypeTable.tsx:276 +#: src/tables/plugin/PluginListTable.tsx:406 +msgid "Builtin" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:122 +msgid "Package" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:134 +#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:53 +msgid "Plugin Settings" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:146 +#: src/components/render/ModelType.tsx:276 +msgid "Plugin Configuration" +msgstr "" + +#: src/components/plugins/PluginPanel.tsx:87 +#~ msgid "Error occurred while rendering plugin content" +#~ msgstr "Error occurred while rendering plugin content" + +#: src/components/plugins/PluginPanel.tsx:91 +#~ msgid "Plugin did not provide panel rendering function" +#~ msgstr "Plugin did not provide panel rendering function" + +#: src/components/plugins/PluginPanel.tsx:103 +#~ msgid "No content provided for this plugin" +#~ msgstr "No content provided for this plugin" + +#: src/components/plugins/PluginPanel.tsx:116 +#: src/components/plugins/PluginSettingsPanel.tsx:76 +#~ msgid "Error Loading Plugin" +#~ msgstr "Error Loading Plugin" + +#: src/components/plugins/PluginSettingsPanel.tsx:51 +#~ msgid "Error occurred while rendering plugin settings" +#~ msgstr "Error occurred while rendering plugin settings" + +#: src/components/plugins/PluginSettingsPanel.tsx:55 +#~ msgid "Plugin did not provide settings rendering function" +#~ msgstr "Plugin did not provide settings rendering function" + +#: src/components/plugins/PluginUIFeature.tsx:100 +msgid "Error occurred while rendering the template editor." +msgstr "" + +#: src/components/plugins/PluginUIFeature.tsx:111 +msgid "Error Loading Plugin Editor" +msgstr "" + +#: src/components/plugins/PluginUIFeature.tsx:147 +msgid "Error occurred while rendering the template preview." +msgstr "" + +#: src/components/plugins/PluginUIFeature.tsx:158 +msgid "Error Loading Plugin Preview" +msgstr "" + +#: src/components/plugins/RemoteComponent.tsx:70 +msgid "Invalid source or function name" +msgstr "" + +#: src/components/plugins/RemoteComponent.tsx:91 +msgid "Error Loading Content" +msgstr "" + +#: src/components/plugins/RemoteComponent.tsx:95 +msgid "Error occurred while loading plugin content" +msgstr "" + +#: src/components/render/Instance.tsx:224 msgid "Unknown model: {model}" msgstr "" -#: src/components/render/ModelType.tsx:22 -#: src/forms/BuildForms.tsx:213 -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/forms/StockForms.tsx:499 -#: src/forms/StockForms.tsx:533 -#: src/forms/StockForms.tsx:562 -#: src/forms/StockForms.tsx:590 -#: src/forms/StockForms.tsx:621 -#: src/forms/StockForms.tsx:656 -#: src/forms/StockForms.tsx:698 -#: src/forms/StockForms.tsx:734 -#: src/pages/build/BuildDetail.tsx:95 -#: src/pages/part/PartDetail.tsx:1073 -#: src/tables/build/BuildAllocatedStockTable.tsx:82 +#: src/components/render/ModelType.tsx:30 +#: src/forms/BuildForms.tsx:269 +#: src/forms/BuildForms.tsx:337 +#: src/forms/BuildForms.tsx:385 +#: src/forms/BuildForms.tsx:515 +#: src/forms/PurchaseOrderForms.tsx:689 +#: src/forms/ReturnOrderForms.tsx:190 +#: src/forms/SalesOrderForms.tsx:248 +#: src/forms/StockForms.tsx:261 +#: src/forms/StockForms.tsx:614 +#: src/forms/StockForms.tsx:651 +#: src/forms/StockForms.tsx:677 +#: src/forms/StockForms.tsx:705 +#: src/forms/StockForms.tsx:736 +#: src/forms/StockForms.tsx:771 +#: src/forms/StockForms.tsx:813 +#: src/forms/StockForms.tsx:851 +#: src/pages/build/BuildDetail.tsx:90 +#: src/pages/part/PartDetail.tsx:1094 +#: src/tables/build/BuildAllocatedStockTable.tsx:95 +#: src/tables/build/BuildLineTable.tsx:72 #: src/tables/part/PartTable.tsx:28 -#: src/tables/part/RelatedPartTable.tsx:45 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:88 -#: src/tables/sales/SalesOrderAllocationTable.tsx:68 -#: src/tables/stock/StockTrackingTable.tsx:74 +#: src/tables/part/RelatedPartTable.tsx:47 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:130 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:100 +#: src/tables/sales/SalesOrderAllocationTable.tsx:99 +#: src/tables/stock/StockTrackingTable.tsx:78 msgid "Part" msgstr "パーツ" -#: src/components/render/ModelType.tsx:23 -#: src/defaults/links.tsx:29 -#: src/defaults/menuItems.tsx:33 -#: src/pages/Index/Settings/SystemSettings.tsx:173 -#: src/pages/part/CategoryDetail.tsx:119 -#: src/pages/part/CategoryDetail.tsx:244 -#: src/pages/part/CategoryDetail.tsx:274 -#: src/pages/part/PartDetail.tsx:827 -msgid "Parts" -msgstr "パーツ" - -#: src/components/render/ModelType.tsx:31 +#: src/components/render/ModelType.tsx:40 msgid "Part Parameter Template" msgstr "" -#: src/components/render/ModelType.tsx:32 +#: src/components/render/ModelType.tsx:41 msgid "Part Parameter Templates" msgstr "" -#: src/components/render/ModelType.tsx:38 +#: src/components/render/ModelType.tsx:48 msgid "Part Test Template" msgstr "" -#: src/components/render/ModelType.tsx:39 +#: src/components/render/ModelType.tsx:49 msgid "Part Test Templates" msgstr "" -#: src/components/render/ModelType.tsx:45 -#: src/pages/company/SupplierPartDetail.tsx:203 -#: src/pages/company/SupplierPartDetail.tsx:375 -#: src/pages/stock/StockDetail.tsx:173 -#: src/tables/build/BuildAllocatedStockTable.tsx:131 +#: src/components/render/ModelType.tsx:56 +#: src/pages/company/SupplierPartDetail.tsx:364 +#: src/pages/stock/StockDetail.tsx:194 +#: src/tables/build/BuildAllocatedStockTable.tsx:152 #: src/tables/part/PartPurchaseOrdersTable.tsx:49 -#: src/tables/purchasing/SupplierPartTable.tsx:68 +#: src/tables/purchasing/SupplierPartTable.tsx:70 +#: src/tables/stock/StockItemTable.tsx:229 msgid "Supplier Part" msgstr "" -#: src/components/render/ModelType.tsx:46 +#: src/components/render/ModelType.tsx:57 msgid "Supplier Parts" msgstr "" -#: src/components/render/ModelType.tsx:54 -#: src/pages/company/ManufacturerPartDetail.tsx:132 +#: src/components/render/ModelType.tsx:66 #: src/tables/part/PartPurchaseOrdersTable.tsx:55 +#: src/tables/stock/StockItemTable.tsx:234 msgid "Manufacturer Part" msgstr "" -#: src/components/render/ModelType.tsx:55 +#: src/components/render/ModelType.tsx:67 msgid "Manufacturer Parts" msgstr "" -#: src/components/render/ModelType.tsx:63 -#: src/pages/part/CategoryDetail.tsx:305 +#: src/components/render/ModelType.tsx:76 +#: src/pages/part/CategoryDetail.tsx:310 msgid "Part Category" msgstr "" -#: src/components/render/ModelType.tsx:64 -#: src/pages/part/CategoryDetail.tsx:258 -#: src/pages/part/CategoryDetail.tsx:296 -#: src/pages/part/PartDetail.tsx:1063 +#: src/components/render/ModelType.tsx:77 +#: src/pages/part/CategoryDetail.tsx:263 +#: src/pages/part/CategoryDetail.tsx:301 +#: src/pages/part/PartDetail.tsx:1084 msgid "Part Categories" msgstr "" -#: src/components/render/ModelType.tsx:72 -#: src/pages/stock/StockDetail.tsx:624 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:94 -#: src/tables/stock/StockTrackingTable.tsx:45 +#: src/components/render/ModelType.tsx:86 +#: src/forms/BuildForms.tsx:337 +#: src/forms/BuildForms.tsx:385 +#: src/forms/BuildForms.tsx:515 +#: src/forms/SalesOrderForms.tsx:248 +#: src/pages/stock/StockDetail.tsx:839 +#: src/tables/stock/StockTrackingTable.tsx:49 msgid "Stock Item" msgstr "在庫商品" -#: src/components/render/ModelType.tsx:73 +#: src/components/render/ModelType.tsx:87 #: src/pages/company/CompanyDetail.tsx:203 -#: src/pages/stock/LocationDetail.tsx:128 -#: src/pages/stock/LocationDetail.tsx:181 -#: src/pages/stock/LocationDetail.tsx:395 +#: src/pages/part/PartStocktakeDetail.tsx:113 +#: src/pages/stock/LocationDetail.tsx:122 +#: src/pages/stock/LocationDetail.tsx:175 +#: src/pages/stock/LocationDetail.tsx:380 msgid "Stock Items" msgstr "在庫商品" -#: src/components/render/ModelType.tsx:81 +#: src/components/render/ModelType.tsx:96 msgid "Stock Location" msgstr "在庫場所" -#: src/components/render/ModelType.tsx:82 -#: src/pages/stock/LocationDetail.tsx:195 -#: src/pages/stock/LocationDetail.tsx:387 -#: src/pages/stock/StockDetail.tsx:616 +#: src/components/render/ModelType.tsx:97 +#: src/pages/stock/LocationDetail.tsx:189 +#: src/pages/stock/LocationDetail.tsx:372 +#: src/pages/stock/StockDetail.tsx:831 msgid "Stock Locations" msgstr "在庫場所" -#: src/components/render/ModelType.tsx:90 +#: src/components/render/ModelType.tsx:106 msgid "Stock Location Type" msgstr "" -#: src/components/render/ModelType.tsx:91 +#: src/components/render/ModelType.tsx:107 msgid "Stock Location Types" msgstr "" -#: src/components/render/ModelType.tsx:95 +#: src/components/render/ModelType.tsx:112 +#: src/pages/part/PartDetail.tsx:712 msgid "Stock History" msgstr "" -#: src/components/render/ModelType.tsx:96 +#: src/components/render/ModelType.tsx:113 msgid "Stock Histories" msgstr "" -#: src/components/render/ModelType.tsx:100 -#: src/defaults/links.tsx:31 -#: src/defaults/menuItems.tsx:43 +#: src/components/render/ModelType.tsx:118 msgid "Build" msgstr "" -#: src/components/render/ModelType.tsx:101 +#: src/components/render/ModelType.tsx:119 msgid "Builds" msgstr "" -#: src/components/render/ModelType.tsx:109 +#: src/components/render/ModelType.tsx:128 msgid "Build Line" msgstr "" -#: src/components/render/ModelType.tsx:110 +#: src/components/render/ModelType.tsx:129 msgid "Build Lines" msgstr "" -#: src/components/render/ModelType.tsx:117 +#: src/components/render/ModelType.tsx:137 msgid "Build Item" msgstr "" -#: src/components/render/ModelType.tsx:118 +#: src/components/render/ModelType.tsx:138 msgid "Build Items" msgstr "" -#: src/components/render/ModelType.tsx:122 -#: src/pages/company/CompanyDetail.tsx:339 +#: src/components/render/ModelType.tsx:143 +#: src/pages/company/CompanyDetail.tsx:321 msgid "Company" msgstr "" -#: src/components/render/ModelType.tsx:123 +#: src/components/render/ModelType.tsx:144 msgid "Companies" msgstr "" -#: src/components/render/ModelType.tsx:131 +#: src/components/render/ModelType.tsx:153 +#: src/pages/build/BuildDetail.tsx:195 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:204 +#: src/pages/sales/ReturnOrderDetail.tsx:174 +#: src/pages/sales/SalesOrderDetail.tsx:186 #: src/tables/TableHoverCard.tsx:81 -#: src/tables/build/BuildOrderTable.tsx:140 -#: src/tables/purchasing/PurchaseOrderTable.tsx:64 -#: src/tables/sales/ReturnOrderTable.tsx:55 -#: src/tables/sales/SalesOrderTable.tsx:62 +#: src/tables/build/BuildOrderTable.tsx:135 +#: src/tables/purchasing/PurchaseOrderTable.tsx:69 +#: src/tables/sales/ReturnOrderTable.tsx:67 +#: src/tables/sales/SalesOrderTable.tsx:67 msgid "Project Code" msgstr "" -#: src/components/render/ModelType.tsx:132 -#: src/pages/Index/Settings/AdminCenter/Index.tsx:128 +#: src/components/render/ModelType.tsx:154 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:145 msgid "Project Codes" msgstr "" -#: src/components/render/ModelType.tsx:138 +#: src/components/render/ModelType.tsx:161 #: src/pages/part/pricing/PurchaseHistoryPanel.tsx:32 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:480 -#: src/tables/part/PartPurchaseOrdersTable.tsx:32 -#: src/tables/stock/StockTrackingTable.tsx:107 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:477 +#: src/pages/stock/StockDetail.tsx:253 +#: src/tables/part/PartPurchaseOrdersTable.tsx:31 +#: src/tables/stock/StockItemTable.tsx:222 +#: src/tables/stock/StockTrackingTable.tsx:111 msgid "Purchase Order" msgstr "" -#: src/components/render/ModelType.tsx:139 -#: src/pages/Index/Settings/SystemSettings.tsx:255 +#: src/components/render/ModelType.tsx:162 +#: src/pages/Index/Settings/SystemSettings.tsx:249 #: src/pages/company/CompanyDetail.tsx:196 -#: src/pages/company/SupplierPartDetail.tsx:237 -#: src/pages/part/PartDetail.tsx:662 +#: src/pages/company/SupplierPartDetail.tsx:249 +#: src/pages/part/PartDetail.tsx:683 #: src/pages/purchasing/PurchasingIndex.tsx:25 msgid "Purchase Orders" msgstr "" -#: src/components/render/ModelType.tsx:147 +#: src/components/render/ModelType.tsx:171 msgid "Purchase Order Line" msgstr "" -#: src/components/render/ModelType.tsx:148 +#: src/components/render/ModelType.tsx:172 msgid "Purchase Order Lines" msgstr "" -#: src/components/render/ModelType.tsx:152 -#: src/pages/build/BuildDetail.tsx:153 -#: src/pages/sales/SalesOrderDetail.tsx:520 -#: src/pages/stock/StockDetail.tsx:221 -#: src/tables/sales/SalesOrderAllocationTable.tsx:50 -#: src/tables/stock/StockTrackingTable.tsx:118 +#: src/components/render/ModelType.tsx:177 +#: src/pages/build/BuildDetail.tsx:148 +#: src/pages/part/pricing/SaleHistoryPanel.tsx:24 +#: src/pages/sales/SalesOrderDetail.tsx:515 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:92 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:341 +#: src/pages/stock/StockDetail.tsx:262 +#: src/tables/sales/SalesOrderAllocationTable.tsx:80 +#: src/tables/stock/StockTrackingTable.tsx:122 msgid "Sales Order" msgstr "" -#: src/components/render/ModelType.tsx:153 -#: src/pages/Index/Settings/SystemSettings.tsx:270 +#: src/components/render/ModelType.tsx:178 +#: src/pages/Index/Settings/SystemSettings.tsx:264 #: src/pages/company/CompanyDetail.tsx:216 -#: src/pages/part/PartDetail.tsx:669 +#: src/pages/part/PartDetail.tsx:695 #: src/pages/sales/SalesIndex.tsx:26 msgid "Sales Orders" msgstr "" -#: src/components/render/ModelType.tsx:161 +#: src/components/render/ModelType.tsx:187 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:340 msgid "Sales Order Shipment" msgstr "" -#: src/components/render/ModelType.tsx:162 +#: src/components/render/ModelType.tsx:188 msgid "Sales Order Shipments" msgstr "" -#: src/components/render/ModelType.tsx:168 -#: src/pages/sales/ReturnOrderDetail.tsx:469 -#: src/tables/stock/StockTrackingTable.tsx:129 +#: src/components/render/ModelType.tsx:195 +#: src/pages/sales/ReturnOrderDetail.tsx:464 +#: src/tables/stock/StockTrackingTable.tsx:133 msgid "Return Order" msgstr "" -#: src/components/render/ModelType.tsx:169 -#: src/pages/Index/Settings/SystemSettings.tsx:286 +#: src/components/render/ModelType.tsx:196 +#: src/pages/Index/Settings/SystemSettings.tsx:280 #: src/pages/company/CompanyDetail.tsx:223 +#: src/pages/part/PartDetail.tsx:702 #: src/pages/sales/SalesIndex.tsx:32 msgid "Return Orders" msgstr "" -#: src/components/render/ModelType.tsx:177 +#: src/components/render/ModelType.tsx:205 msgid "Return Order Line Item" msgstr "" -#: src/components/render/ModelType.tsx:178 +#: src/components/render/ModelType.tsx:206 msgid "Return Order Line Items" msgstr "" -#: src/components/render/ModelType.tsx:182 -#: src/tables/company/AddressTable.tsx:47 +#: src/components/render/ModelType.tsx:211 +#: src/tables/company/AddressTable.tsx:48 msgid "Address" msgstr "" -#: src/components/render/ModelType.tsx:183 -#: src/pages/company/CompanyDetail.tsx:253 +#: src/components/render/ModelType.tsx:212 +#: src/pages/company/CompanyDetail.tsx:255 msgid "Addresses" msgstr "" -#: src/components/render/ModelType.tsx:189 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:195 -#: src/pages/sales/ReturnOrderDetail.tsx:174 -#: src/pages/sales/SalesOrderDetail.tsx:183 +#: src/components/render/ModelType.tsx:219 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:196 +#: src/pages/sales/ReturnOrderDetail.tsx:166 +#: src/pages/sales/SalesOrderDetail.tsx:178 msgid "Contact" msgstr "" -#: src/components/render/ModelType.tsx:190 -#: src/pages/company/CompanyDetail.tsx:247 +#: src/components/render/ModelType.tsx:220 +#: src/pages/company/CompanyDetail.tsx:249 msgid "Contacts" msgstr "" -#: src/components/render/ModelType.tsx:196 +#: src/components/render/ModelType.tsx:227 msgid "Owner" msgstr "" -#: src/components/render/ModelType.tsx:197 +#: src/components/render/ModelType.tsx:228 msgid "Owners" msgstr "" -#: src/components/render/ModelType.tsx:203 -#: src/tables/settings/ImportSessionTable.tsx:121 -#: src/tables/stock/StockItemTestResultTable.tsx:198 -#: src/tables/stock/StockTrackingTable.tsx:195 +#: src/components/render/ModelType.tsx:234 +#~ msgid "Purchase Order Line Item" +#~ msgstr "Purchase Order Line Item" + +#: src/components/render/ModelType.tsx:235 +#: src/tables/settings/BarcodeScanHistoryTable.tsx:80 +#: src/tables/settings/BarcodeScanHistoryTable.tsx:211 +#: src/tables/settings/ImportSessionTable.tsx:120 +#: src/tables/settings/StocktakeReportTable.tsx:44 +#: src/tables/stock/StockItemTestResultTable.tsx:204 +#: src/tables/stock/StockTrackingTable.tsx:181 +#: src/tables/stock/StockTrackingTable.tsx:210 msgid "User" msgstr "ユーザー" -#: src/components/render/ModelType.tsx:204 -#: src/pages/Index/Settings/AdminCenter/Index.tsx:98 +#: src/components/render/ModelType.tsx:236 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:109 #: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:13 msgid "Users" msgstr "" -#: src/components/render/ModelType.tsx:210 +#: src/components/render/ModelType.tsx:243 msgid "Group" msgstr "" -#: src/components/render/ModelType.tsx:211 +#: src/components/render/ModelType.tsx:244 #: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:20 -#: src/tables/settings/UserTable.tsx:138 -#: src/tables/settings/UserTable.tsx:201 +#: src/tables/settings/UserTable.tsx:137 +#: src/tables/settings/UserTable.tsx:200 msgid "Groups" msgstr "" -#: src/components/render/ModelType.tsx:218 +#: src/components/render/ModelType.tsx:252 msgid "Import Session" msgstr "" -#: src/components/render/ModelType.tsx:219 +#: src/components/render/ModelType.tsx:253 msgid "Import Sessions" msgstr "" -#: src/components/render/ModelType.tsx:225 +#: src/components/render/ModelType.tsx:260 msgid "Label Template" msgstr "" -#: src/components/render/ModelType.tsx:226 -#: src/pages/Index/Settings/AdminCenter/Index.tsx:158 +#: src/components/render/ModelType.tsx:261 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:187 msgid "Label Templates" msgstr "" -#: src/components/render/ModelType.tsx:232 +#: src/components/render/ModelType.tsx:264 +#~ msgid "Unknown Model" +#~ msgstr "Unknown Model" + +#: src/components/render/ModelType.tsx:268 msgid "Report Template" msgstr "" -#: src/components/render/ModelType.tsx:233 -#: src/pages/Index/Settings/AdminCenter/Index.tsx:164 +#: src/components/render/ModelType.tsx:269 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:193 msgid "Report Templates" msgstr "" -#: src/components/render/ModelType.tsx:239 -msgid "Plugin Configuration" -msgstr "" - -#: src/components/render/ModelType.tsx:240 +#: src/components/render/ModelType.tsx:277 msgid "Plugin Configurations" msgstr "" +#: src/components/render/ModelType.tsx:284 +msgid "Content Type" +msgstr "" + +#: src/components/render/ModelType.tsx:285 +msgid "Content Types" +msgstr "" + +#: src/components/render/ModelType.tsx:291 +#: src/tables/machine/MachineListTable.tsx:351 +#: src/tables/machine/MachineTypeTable.tsx:282 +msgid "Errors" +msgstr "" + +#: src/components/render/ModelType.tsx:307 +#~ msgid "Purchase Order Line Items" +#~ msgstr "Purchase Order Line Items" + +#: src/components/render/ModelType.tsx:337 +#~ msgid "Unknown Models" +#~ msgstr "Unknown Models" + #: src/components/render/Order.tsx:121 +#: src/tables/sales/SalesOrderAllocationTable.tsx:136 msgid "Shipment" msgstr "" #: src/components/render/Part.tsx:25 #: src/components/render/Plugin.tsx:17 -#: src/pages/company/CompanyDetail.tsx:325 -#: src/pages/company/SupplierPartDetail.tsx:360 -#: src/pages/part/PartDetail.tsx:879 +#: src/pages/company/CompanyDetail.tsx:307 +#: src/pages/company/SupplierPartDetail.tsx:349 +#: src/pages/part/PartDetail.tsx:911 msgid "Inactive" msgstr "" @@ -1736,39 +2335,38 @@ msgstr "" msgid "No stock" msgstr "" -#: src/components/render/Part.tsx:30 -#: src/defaults/links.tsx:30 -#: src/defaults/menuItems.tsx:38 -#: src/pages/Index/Settings/SystemSettings.tsx:206 -#: src/pages/part/PartDetail.tsx:543 -#: src/pages/stock/LocationDetail.tsx:367 -#: src/pages/stock/StockDetail.tsx:411 -#: src/tables/stock/StockItemTable.tsx:68 -msgid "Stock" -msgstr "在庫" - -#: src/components/render/Stock.tsx:60 -#: src/pages/stock/StockDetail.tsx:150 -#: src/pages/stock/StockDetail.tsx:581 -#: src/tables/build/BuildAllocatedStockTable.tsx:102 -#: src/tables/sales/SalesOrderAllocationTable.tsx:80 +#: src/components/render/Stock.tsx:61 +#: src/forms/ReturnOrderForms.tsx:190 +#: src/pages/stock/StockDetail.tsx:166 +#: src/pages/stock/StockDetail.tsx:771 +#: src/tables/build/BuildAllocatedStockTable.tsx:123 +#: src/tables/build/BuildOutputTable.tsx:81 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:114 +#: src/tables/sales/SalesOrderAllocationTable.tsx:106 msgid "Serial Number" msgstr "" -#: src/components/render/Stock.tsx:62 -#: src/forms/BuildForms.tsx:218 -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/pages/part/pricing/BomPricingPanel.tsx:109 +#: src/components/render/Stock.tsx:63 +#: src/forms/BuildForms.tsx:206 +#: src/forms/BuildForms.tsx:515 +#: src/forms/PurchaseOrderForms.tsx:689 +#: src/forms/SalesOrderForms.tsx:248 +#: src/pages/part/PartSchedulingDetail.tsx:80 +#: src/pages/part/PartStocktakeDetail.tsx:60 +#: src/pages/part/PartStocktakeDetail.tsx:234 +#: src/pages/part/PartStocktakeDetail.tsx:252 +#: src/pages/part/pricing/BomPricingPanel.tsx:148 #: src/pages/part/pricing/PriceBreakPanel.tsx:89 -#: src/pages/part/pricing/PriceBreakPanel.tsx:171 -#: src/pages/stock/StockDetail.tsx:145 -#: src/pages/stock/StockDetail.tsx:587 -#: src/tables/build/BuildOrderTestTable.tsx:197 -#: src/tables/part/PartPurchaseOrdersTable.tsx:92 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:143 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:171 +#: src/pages/part/pricing/PriceBreakPanel.tsx:172 +#: src/pages/stock/StockDetail.tsx:161 +#: src/pages/stock/StockDetail.tsx:777 +#: src/tables/build/BuildLineTable.tsx:79 +#: src/tables/build/BuildOrderTestTable.tsx:198 +#: src/tables/part/PartPurchaseOrdersTable.tsx:93 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:146 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:177 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:77 -#: src/tables/stock/StockTrackingTable.tsx:59 +#: src/tables/stock/StockTrackingTable.tsx:63 msgid "Quantity" msgstr "" @@ -1842,10 +2440,6 @@ msgstr "" #~ msgid "Required Part" #~ msgstr "Required Part" -#: src/components/tables/build/BuildLineTable.tsx:152 -#~ msgid "Required Quantity" -#~ msgstr "Required Quantity" - #: src/components/tables/build/BuildOrderTable.tsx:52 #~ msgid "Progress" #~ msgstr "Progress" @@ -2126,14 +2720,6 @@ msgstr "" #~ msgid "user deleted" #~ msgstr "user deleted" -#: src/components/tables/settings/UserTable.tsx:168 -#~ msgid "First Name" -#~ msgstr "First Name" - -#: src/components/tables/settings/UserTable.tsx:173 -#~ msgid "Last Name" -#~ msgstr "Last Name" - #: src/components/tables/stock/StockItemTable.tsx:247 #~ msgid "Test Filter" #~ msgstr "Test Filter" @@ -2146,36 +2732,21 @@ msgstr "" #~ msgid "Stock location updated" #~ msgstr "Stock location updated" -#: src/components/widgets/DisplayWidget.tsx:11 -#: src/pages/Index/Settings/AccountSettings/DisplaySettingsPanel.tsx:17 -msgid "Display Settings" -msgstr "" - -#: src/components/widgets/DisplayWidget.tsx:15 -#: src/pages/Index/Settings/AccountSettings/DisplaySettingsPanel.tsx:23 -msgid "Color Mode" -msgstr "" - -#: src/components/widgets/DisplayWidget.tsx:21 -#: src/pages/Index/Settings/AccountSettings/DisplaySettingsPanel.tsx:33 -msgid "Language" -msgstr "言語" - #: src/components/widgets/FeedbackWidget.tsx:19 -msgid "Something is new: Platform UI" -msgstr "" +#~ msgid "Something is new: Platform UI" +#~ msgstr "Something is new: Platform UI" #: src/components/widgets/FeedbackWidget.tsx:21 -msgid "We are building a new UI with a modern stack. What you currently see is not fixed and will be redesigned but demonstrates the UI/UX possibilities we will have going forward." -msgstr "" +#~ msgid "We are building a new UI with a modern stack. What you currently see is not fixed and will be redesigned but demonstrates the UI/UX possibilities we will have going forward." +#~ msgstr "We are building a new UI with a modern stack. What you currently see is not fixed and will be redesigned but demonstrates the UI/UX possibilities we will have going forward." #: src/components/widgets/FeedbackWidget.tsx:32 -msgid "Provide Feedback" -msgstr "" +#~ msgid "Provide Feedback" +#~ msgstr "Provide Feedback" #: src/components/widgets/GetStartedWidget.tsx:11 -msgid "Getting started" -msgstr "" +#~ msgid "Getting started" +#~ msgstr "Getting started" #: src/components/widgets/MarkdownEditor.tsx:108 #~ msgid "Failed to upload image" @@ -2186,28 +2757,24 @@ msgstr "" #~ msgstr "Notes saved" #: src/components/widgets/WidgetLayout.tsx:166 -msgid "Layout" -msgstr "" +#~ msgid "Layout" +#~ msgstr "Layout" #: src/components/widgets/WidgetLayout.tsx:172 -msgid "Reset Layout" -msgstr "" +#~ msgid "Reset Layout" +#~ msgstr "Reset Layout" #: src/components/widgets/WidgetLayout.tsx:185 -msgid "Stop Edit" -msgstr "" - -#: src/components/widgets/WidgetLayout.tsx:185 -msgid "Edit Layout" -msgstr "" +#~ msgid "Stop Edit" +#~ msgstr "Stop Edit" #: src/components/widgets/WidgetLayout.tsx:191 -msgid "Appearance" -msgstr "" +#~ msgid "Appearance" +#~ msgstr "Appearance" #: src/components/widgets/WidgetLayout.tsx:203 -msgid "Show Boxes" -msgstr "" +#~ msgid "Show Boxes" +#~ msgstr "Show Boxes" #: src/contexts/LanguageContext.tsx:20 msgid "Arabic" @@ -2286,201 +2853,175 @@ msgid "Korean" msgstr "" #: src/contexts/LanguageContext.tsx:39 -msgid "Latvian" +msgid "Lithuanian" msgstr "" #: src/contexts/LanguageContext.tsx:40 -msgid "Dutch" +msgid "Latvian" msgstr "" #: src/contexts/LanguageContext.tsx:41 -msgid "Norwegian" +msgid "Dutch" msgstr "" #: src/contexts/LanguageContext.tsx:42 -msgid "Polish" +msgid "Norwegian" msgstr "" #: src/contexts/LanguageContext.tsx:43 -msgid "Portuguese" +msgid "Polish" msgstr "" #: src/contexts/LanguageContext.tsx:44 -msgid "Portuguese (Brazilian)" +msgid "Portuguese" msgstr "" #: src/contexts/LanguageContext.tsx:45 -msgid "Romanian" +msgid "Portuguese (Brazilian)" msgstr "" #: src/contexts/LanguageContext.tsx:46 -msgid "Russian" +msgid "Romanian" msgstr "" #: src/contexts/LanguageContext.tsx:47 -msgid "Slovak" +msgid "Russian" msgstr "" #: src/contexts/LanguageContext.tsx:48 -msgid "Slovenian" +msgid "Slovak" msgstr "" #: src/contexts/LanguageContext.tsx:49 -msgid "Swedish" +msgid "Slovenian" msgstr "" #: src/contexts/LanguageContext.tsx:50 -msgid "Thai" +msgid "Swedish" msgstr "" #: src/contexts/LanguageContext.tsx:51 -msgid "Turkish" +msgid "Thai" msgstr "" #: src/contexts/LanguageContext.tsx:52 -msgid "Ukrainian" +msgid "Turkish" msgstr "" #: src/contexts/LanguageContext.tsx:53 -msgid "Vietnamese" +msgid "Ukrainian" msgstr "" #: src/contexts/LanguageContext.tsx:54 -msgid "Chinese (Simplified)" +msgid "Vietnamese" msgstr "" #: src/contexts/LanguageContext.tsx:55 +msgid "Chinese (Simplified)" +msgstr "" + +#: src/contexts/LanguageContext.tsx:56 msgid "Chinese (Traditional)" msgstr "" +#: src/defaults/actions.tsx:18 +msgid "Go to the InvenTree dashboard" +msgstr "" + #: src/defaults/actions.tsx:18 #: src/defaults/links.tsx:27 #: src/defaults/menuItems.tsx:9 -msgid "Home" -msgstr "" +#~ msgid "Home" +#~ msgstr "Home" #: src/defaults/actions.tsx:25 -#: src/defaults/links.tsx:28 -#: src/defaults/menuItems.tsx:28 -#: src/pages/Index/Dashboard.tsx:19 -#: src/pages/Index/Settings/UserSettings.tsx:46 -msgid "Dashboard" -msgstr "" - -#: src/defaults/actions.tsx:26 -msgid "Go to the InvenTree dashboard" -msgstr "" - -#: src/defaults/actions.tsx:33 msgid "Visit the documentation to learn more about InvenTree" msgstr "" -#: src/defaults/actions.tsx:39 -#: src/defaults/links.tsx:98 -#: src/defaults/links.tsx:128 +#: src/defaults/actions.tsx:31 +#: src/defaults/links.tsx:92 +#: src/defaults/links.tsx:124 msgid "About InvenTree" msgstr "" -#: src/defaults/actions.tsx:40 -#: src/defaults/links.tsx:129 +#: src/defaults/actions.tsx:32 msgid "About the InvenTree org" msgstr "" -#: src/defaults/actions.tsx:46 +#: src/defaults/actions.tsx:38 msgid "Server Information" msgstr "" -#: src/defaults/actions.tsx:47 -#: src/defaults/links.tsx:123 +#: src/defaults/actions.tsx:39 +#: src/defaults/links.tsx:118 msgid "About this Inventree instance" msgstr "" -#: src/defaults/actions.tsx:53 -#: src/defaults/links.tsx:111 +#: src/defaults/actions.tsx:45 +#: src/defaults/links.tsx:105 +#: src/defaults/links.tsx:131 msgid "License Information" msgstr "" -#: src/defaults/actions.tsx:54 -#: src/defaults/links.tsx:135 +#: src/defaults/actions.tsx:46 msgid "Licenses for dependencies of the service" msgstr "" -#: src/defaults/actions.tsx:61 +#: src/defaults/actions.tsx:52 +msgid "Open Navigation" +msgstr "" + +#: src/defaults/actions.tsx:53 msgid "Open the main navigation menu" msgstr "" -#: src/defaults/actions.tsx:72 +#: src/defaults/actions.tsx:64 msgid "Go to the Admin Center" msgstr "" -#: src/defaults/dashboardItems.tsx:15 -msgid "Subscribed Parts" -msgstr "" - -#: src/defaults/dashboardItems.tsx:22 -msgid "Subscribed Categories" -msgstr "" - #: src/defaults/dashboardItems.tsx:29 -msgid "Latest Parts" -msgstr "" +#~ msgid "Latest Parts" +#~ msgstr "Latest Parts" #: src/defaults/dashboardItems.tsx:36 -msgid "BOM Waiting Validation" -msgstr "" +#~ msgid "BOM Waiting Validation" +#~ msgstr "BOM Waiting Validation" #: src/defaults/dashboardItems.tsx:43 -msgid "Recently Updated" -msgstr "" - -#: src/defaults/dashboardItems.tsx:50 -#: src/tables/part/PartTable.tsx:238 -msgid "Low Stock" -msgstr "" +#~ msgid "Recently Updated" +#~ msgstr "Recently Updated" #: src/defaults/dashboardItems.tsx:57 -msgid "Depleted Stock" -msgstr "" +#~ msgid "Depleted Stock" +#~ msgstr "Depleted Stock" #: src/defaults/dashboardItems.tsx:64 -msgid "Required for Build Orders" -msgstr "" +#~ msgid "Required for Build Orders" +#~ msgstr "Required for Build Orders" #: src/defaults/dashboardItems.tsx:71 -msgid "Expired Stock" -msgstr "" +#~ msgid "Expired Stock" +#~ msgstr "Expired Stock" #: src/defaults/dashboardItems.tsx:78 -msgid "Stale Stock" -msgstr "" +#~ msgid "Stale Stock" +#~ msgstr "Stale Stock" #: src/defaults/dashboardItems.tsx:85 -msgid "Build Orders In Progress" -msgstr "" - -#: src/defaults/dashboardItems.tsx:92 -msgid "Overdue Build Orders" -msgstr "" +#~ msgid "Build Orders In Progress" +#~ msgstr "Build Orders In Progress" #: src/defaults/dashboardItems.tsx:99 -msgid "Outstanding Purchase Orders" -msgstr "" - -#: src/defaults/dashboardItems.tsx:106 -msgid "Overdue Purchase Orders" -msgstr "" +#~ msgid "Outstanding Purchase Orders" +#~ msgstr "Outstanding Purchase Orders" #: src/defaults/dashboardItems.tsx:113 -msgid "Outstanding Sales Orders" -msgstr "" - -#: src/defaults/dashboardItems.tsx:120 -msgid "Overdue Sales Orders" -msgstr "" +#~ msgid "Outstanding Sales Orders" +#~ msgstr "Outstanding Sales Orders" #: src/defaults/dashboardItems.tsx:127 -msgid "Current News" -msgstr "" +#~ msgid "Current News" +#~ msgstr "Current News" #: src/defaults/defaultHostList.tsx:8 #~ msgid "InvenTree Demo" @@ -2490,97 +3031,80 @@ msgstr "" #~ msgid "Local Server" #~ msgstr "Local Server" -#: src/defaults/links.tsx:12 -#: src/pages/company/CompanyDetail.tsx:96 -msgid "Website" -msgstr "" - #: src/defaults/links.tsx:17 -msgid "GitHub" -msgstr "" +#~ msgid "GitHub" +#~ msgstr "GitHub" #: src/defaults/links.tsx:22 -msgid "Demo" -msgstr "" - -#: src/defaults/links.tsx:33 -#: src/defaults/menuItems.tsx:48 -#: src/pages/company/ManufacturerDetail.tsx:9 -#: src/pages/company/ManufacturerPartDetail.tsx:263 -#: src/pages/company/SupplierDetail.tsx:9 -#: src/pages/company/SupplierPartDetail.tsx:347 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:483 -#: src/pages/purchasing/PurchasingIndex.tsx:60 -msgid "Purchasing" -msgstr "" - -#: src/defaults/links.tsx:37 -#: src/defaults/menuItems.tsx:53 -#: src/pages/company/CustomerDetail.tsx:9 -#: src/pages/sales/ReturnOrderDetail.tsx:474 -#: src/pages/sales/SalesIndex.tsx:53 -#: src/pages/sales/SalesOrderDetail.tsx:525 -msgid "Sales" -msgstr "" +#~ msgid "Demo" +#~ msgstr "Demo" #: src/defaults/links.tsx:41 #: src/defaults/menuItems.tsx:71 #: src/pages/Index/Playground.tsx:217 -msgid "Playground" -msgstr "" +#~ msgid "Playground" +#~ msgstr "Playground" -#: src/defaults/links.tsx:55 -msgid "Getting Started" -msgstr "" - -#: src/defaults/links.tsx:56 -msgid "Getting started with InvenTree" -msgstr "" - -#: src/defaults/links.tsx:62 +#: src/defaults/links.tsx:45 msgid "API" msgstr "" -#: src/defaults/links.tsx:63 +#: src/defaults/links.tsx:48 msgid "InvenTree API documentation" msgstr "" -#: src/defaults/links.tsx:68 +#: src/defaults/links.tsx:52 msgid "Developer Manual" msgstr "" -#: src/defaults/links.tsx:69 +#: src/defaults/links.tsx:55 msgid "InvenTree developer manual" msgstr "" -#: src/defaults/links.tsx:74 +#: src/defaults/links.tsx:59 msgid "FAQ" msgstr "よくある質問" -#: src/defaults/links.tsx:75 +#: src/defaults/links.tsx:62 msgid "Frequently asked questions" msgstr "" +#: src/defaults/links.tsx:66 +msgid "GitHub Repository" +msgstr "" + +#: src/defaults/links.tsx:69 +msgid "InvenTree source code on GitHub" +msgstr "" + #: src/defaults/links.tsx:76 #~ msgid "Instance" #~ msgstr "Instance" +#: src/defaults/links.tsx:79 +#: src/defaults/links.tsx:117 +msgid "System Information" +msgstr "" + #: src/defaults/links.tsx:83 #~ msgid "InvenTree" #~ msgstr "InvenTree" -#: src/defaults/links.tsx:85 -#: src/defaults/links.tsx:122 -msgid "System Information" -msgstr "" - #: src/defaults/links.tsx:117 #~ msgid "Licenses for packages used by InvenTree" #~ msgstr "Licenses for packages used by InvenTree" +#: src/defaults/links.tsx:125 +msgid "About the InvenTree Project" +msgstr "" + +#: src/defaults/links.tsx:132 +msgid "Licenses for dependencies of the InvenTree software" +msgstr "" + #: src/defaults/links.tsx:134 -msgid "Licenses" -msgstr "ライセンス" +#~ msgid "Licenses" +#~ msgstr "Licenses" #: src/defaults/menuItems.tsx:7 #~ msgid "Open sourcea" @@ -2607,8 +3131,8 @@ msgstr "ライセンス" #~ msgstr "Profile page" #: src/defaults/menuItems.tsx:17 -msgid "User attributes and design settings." -msgstr "" +#~ msgid "User attributes and design settings." +#~ msgstr "User attributes and design settings." #: src/defaults/menuItems.tsx:21 #~ msgid "Free for everyone" @@ -2619,8 +3143,8 @@ msgstr "" #~ msgstr "The fluid of Smeargle’s tail secretions changes" #: src/defaults/menuItems.tsx:23 -msgid "View for interactive scanning and multiple actions." -msgstr "" +#~ msgid "View for interactive scanning and multiple actions." +#~ msgstr "View for interactive scanning and multiple actions." #: src/defaults/menuItems.tsx:24 #~ msgid "The fluid of Smeargle’s tail secretions changes in the intensity" @@ -2698,51 +3222,130 @@ msgstr "" #~ msgid "Are you sure you want to delete this attachment?" #~ msgstr "Are you sure you want to delete this attachment?" -#: src/forms/BuildForms.tsx:158 -msgid "Next serial number" +#: src/forms/BuildForms.tsx:248 +#~ msgid "Remove output" +#~ msgstr "Remove output" + +#: src/forms/BuildForms.tsx:269 +#: src/tables/build/BuildAllocatedStockTable.tsx:147 +#: src/tables/build/BuildOrderTestTable.tsx:177 +#: src/tables/build/BuildOrderTestTable.tsx:201 +#: src/tables/build/BuildOutputTable.tsx:460 +msgid "Build Output" msgstr "" -#: src/forms/BuildForms.tsx:162 -msgid "Latest serial number" +#: src/forms/BuildForms.tsx:269 +#: src/forms/BuildForms.tsx:337 +#: src/forms/BuildForms.tsx:385 +#: src/tables/build/BuildLineTable.tsx:89 +msgid "Batch" msgstr "" -#: src/forms/BuildForms.tsx:234 -msgid "Remove output" +#: src/forms/BuildForms.tsx:269 +#: src/forms/BuildForms.tsx:337 +#: src/forms/BuildForms.tsx:385 +#: src/forms/PurchaseOrderForms.tsx:603 +#: src/pages/build/BuildDetail.tsx:104 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:142 +#: src/pages/sales/ReturnOrderDetail.tsx:113 +#: src/pages/sales/SalesOrderDetail.tsx:122 +#: src/tables/build/BuildOrderTable.tsx:125 +#: src/tables/machine/MachineListTable.tsx:336 +#: src/tables/part/PartPurchaseOrdersTable.tsx:37 +#: src/tables/purchasing/PurchaseOrderTable.tsx:58 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:157 +#: src/tables/sales/ReturnOrderTable.tsx:56 +#: src/tables/sales/SalesOrderTable.tsx:56 +#: src/tables/settings/CustomStateTable.tsx:57 +#: src/tables/settings/ImportSessionTable.tsx:114 +#: src/tables/stock/StockItemTable.tsx:298 +#: src/tables/stock/StockTrackingTable.tsx:56 +msgid "Status" msgstr "" -#: src/forms/BuildForms.tsx:316 +#: src/forms/BuildForms.tsx:289 msgid "Complete Build Outputs" msgstr "" -#: src/forms/BuildForms.tsx:320 +#: src/forms/BuildForms.tsx:292 msgid "Build outputs have been completed" msgstr "" -#: src/forms/BuildForms.tsx:389 +#: src/forms/BuildForms.tsx:353 msgid "Scrap Build Outputs" msgstr "" -#: src/forms/BuildForms.tsx:393 +#: src/forms/BuildForms.tsx:356 msgid "Build outputs have been scrapped" msgstr "" -#: src/forms/BuildForms.tsx:425 -#: src/forms/BuildForms.tsx:449 +#: src/forms/BuildForms.tsx:393 msgid "Cancel Build Outputs" msgstr "" -#: src/forms/BuildForms.tsx:426 -msgid "Selected build outputs will be deleted" +#: src/forms/BuildForms.tsx:396 +msgid "Build outputs have been cancelled" msgstr "" -#: src/forms/BuildForms.tsx:453 -msgid "Build outputs have been cancelled" +#: src/forms/BuildForms.tsx:408 +#~ msgid "Selected build outputs will be deleted" +#~ msgstr "Selected build outputs will be deleted" + +#: src/forms/BuildForms.tsx:470 +#~ msgid "Remove line" +#~ msgstr "Remove line" + +#: src/forms/BuildForms.tsx:515 +#: src/forms/SalesOrderForms.tsx:248 +#: src/tables/build/BuildLineTable.tsx:174 +#: src/tables/sales/SalesOrderLineItemTable.tsx:276 +#: src/tables/stock/StockItemTable.tsx:309 +msgid "Allocated" +msgstr "" + +#: src/forms/BuildForms.tsx:545 +#: src/forms/SalesOrderForms.tsx:239 +#: src/pages/build/BuildDetail.tsx:208 +msgid "Source Location" +msgstr "" + +#: src/forms/BuildForms.tsx:546 +#: src/forms/SalesOrderForms.tsx:240 +msgid "Select the source location for the stock allocation" +msgstr "" + +#: src/forms/BuildForms.tsx:566 +#: src/forms/SalesOrderForms.tsx:274 +#: src/tables/build/BuildLineTable.tsx:442 +#: src/tables/build/BuildLineTable.tsx:569 +#: src/tables/build/BuildLineTable.tsx:642 +#: src/tables/sales/SalesOrderLineItemTable.tsx:302 +#: src/tables/sales/SalesOrderLineItemTable.tsx:326 +msgid "Allocate Stock" +msgstr "" + +#: src/forms/BuildForms.tsx:569 +#: src/forms/SalesOrderForms.tsx:279 +msgid "Stock items allocated" msgstr "" #: src/forms/CompanyForms.tsx:150 #~ msgid "Company updated" #~ msgstr "Company updated" +#: src/forms/PartForms.tsx:67 +#: src/forms/PartForms.tsx:154 +#: src/pages/part/CategoryDetail.tsx:117 +#: src/pages/part/PartDetail.tsx:384 +#: src/tables/part/PartCategoryTable.tsx:90 +#: src/tables/part/PartTable.tsx:294 +msgid "Subscribed" +msgstr "" + +#: src/forms/PartForms.tsx:68 +msgid "Subscribe to notifications for this part" +msgstr "" + #: src/forms/PartForms.tsx:106 #~ msgid "Create Part" #~ msgstr "Create Part" @@ -2751,191 +3354,190 @@ msgstr "" #~ msgid "Part created" #~ msgstr "Part created" -#: src/forms/PartForms.tsx:124 -msgid "Parent part category" -msgstr "" - #: src/forms/PartForms.tsx:129 #~ msgid "Part updated" #~ msgstr "Part updated" -#: src/forms/PurchaseOrderForms.tsx:300 +#: src/forms/PartForms.tsx:140 +msgid "Parent part category" +msgstr "" + +#: src/forms/PartForms.tsx:155 +msgid "Subscribe to notifications for this category" +msgstr "" + +#: src/forms/PurchaseOrderForms.tsx:314 +msgid "Assign Batch Code and Serial Numbers" +msgstr "" + +#: src/forms/PurchaseOrderForms.tsx:316 +msgid "Assign Batch Code" +msgstr "" + +#: src/forms/PurchaseOrderForms.tsx:336 msgid "Choose Location" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:308 +#: src/forms/PurchaseOrderForms.tsx:344 msgid "Item Destination selected" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:317 +#: src/forms/PurchaseOrderForms.tsx:353 msgid "Part category default location selected" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:327 +#: src/forms/PurchaseOrderForms.tsx:363 msgid "Received stock location selected" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:332 +#: src/forms/PurchaseOrderForms.tsx:368 msgid "Default location selected" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:343 -#: src/forms/PurchaseOrderForms.tsx:435 -msgid "Scan Barcode" -msgstr "" +#: src/forms/PurchaseOrderForms.tsx:421 +#~ msgid "Assign Batch Code{0}" +#~ msgstr "Assign Batch Code{0}" -#: src/forms/PurchaseOrderForms.tsx:388 +#: src/forms/PurchaseOrderForms.tsx:427 msgid "Set Location" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:396 -msgid "Assign Batch Code{0}" -msgstr "" - -#: src/forms/PurchaseOrderForms.tsx:405 -#: src/forms/StockForms.tsx:420 +#: src/forms/PurchaseOrderForms.tsx:442 +#: src/forms/StockForms.tsx:539 msgid "Adjust Packaging" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:412 -msgid "Change Status" -msgstr "" - -#: src/forms/PurchaseOrderForms.tsx:418 -msgid "Add Note" -msgstr "" - #: src/forms/PurchaseOrderForms.tsx:444 #: src/forms/StockForms.tsx:428 -msgid "Remove item from list" +#~ msgid "Remove item from list" +#~ msgstr "Remove item from list" + +#: src/forms/PurchaseOrderForms.tsx:450 +msgid "Change Status" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:471 -#: src/forms/StockForms.tsx:499 -#: src/forms/StockForms.tsx:533 -#: src/forms/StockForms.tsx:562 -#: src/forms/StockForms.tsx:590 -#: src/forms/StockForms.tsx:621 -#: src/forms/StockForms.tsx:656 -#: src/forms/StockForms.tsx:698 -#: src/forms/StockForms.tsx:734 -#: src/pages/stock/StockDetail.tsx:181 -#: src/tables/ColumnRenderers.tsx:49 -#: src/tables/stock/StockTrackingTable.tsx:85 +#: src/forms/PurchaseOrderForms.tsx:456 +msgid "Add Note" +msgstr "" + +#: src/forms/PurchaseOrderForms.tsx:503 +#: src/forms/StockForms.tsx:614 +#: src/forms/StockForms.tsx:651 +#: src/forms/StockForms.tsx:677 +#: src/forms/StockForms.tsx:705 +#: src/forms/StockForms.tsx:736 +#: src/forms/StockForms.tsx:771 +#: src/forms/StockForms.tsx:813 +#: src/forms/StockForms.tsx:851 +#: src/pages/stock/StockDetail.tsx:202 +#: src/tables/ColumnRenderers.tsx:60 +#: src/tables/stock/StockTrackingTable.tsx:89 msgid "Location" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:486 +#: src/forms/PurchaseOrderForms.tsx:518 msgid "Store at default location" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:499 +#: src/forms/PurchaseOrderForms.tsx:533 msgid "Store at line item destination" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:509 +#: src/forms/PurchaseOrderForms.tsx:545 msgid "Store with already received stock" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:524 -#: src/pages/build/BuildDetail.tsx:219 -#: src/pages/stock/StockDetail.tsx:162 -#: src/pages/stock/StockDetail.tsx:599 -#: src/tables/build/BuildAllocatedStockTable.tsx:109 -#: src/tables/build/BuildOrderTestTable.tsx:188 -#: src/tables/sales/SalesOrderAllocationTable.tsx:87 +#: src/forms/PurchaseOrderForms.tsx:566 +#: src/pages/build/BuildDetail.tsx:222 +#: src/pages/stock/StockDetail.tsx:185 +#: src/pages/stock/StockDetail.tsx:793 +#: src/tables/build/BuildAllocatedStockTable.tsx:130 +#: src/tables/build/BuildOrderTestTable.tsx:189 +#: src/tables/build/BuildOutputTable.tsx:86 +#: src/tables/sales/SalesOrderAllocationTable.tsx:113 msgid "Batch Code" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:535 -msgid "Serial numbers" +#: src/forms/PurchaseOrderForms.tsx:566 +#~ msgid "Serial numbers" +#~ msgstr "Serial numbers" + +#: src/forms/PurchaseOrderForms.tsx:567 +msgid "Enter batch code for received items" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:544 -#: src/forms/StockForms.tsx:443 -#: src/pages/company/SupplierPartDetail.tsx:156 -#: src/pages/company/SupplierPartDetail.tsx:207 -#: src/pages/stock/StockDetail.tsx:244 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:192 +#: src/forms/PurchaseOrderForms.tsx:579 +#: src/forms/StockForms.tsx:152 +msgid "Serial Numbers" +msgstr "" + +#: src/forms/PurchaseOrderForms.tsx:580 +msgid "Enter serial numbers for received items" +msgstr "" + +#: src/forms/PurchaseOrderForms.tsx:590 +#: src/forms/StockForms.tsx:556 +#: src/pages/company/SupplierPartDetail.tsx:168 +#: src/pages/company/SupplierPartDetail.tsx:219 +#: src/pages/stock/StockDetail.tsx:320 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:198 msgid "Packaging" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:556 -#: src/pages/build/BuildDetail.tsx:109 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:148 -#: src/pages/sales/ReturnOrderDetail.tsx:121 -#: src/pages/sales/SalesOrderDetail.tsx:127 -#: src/tables/build/BuildOrderTable.tsx:122 -#: src/tables/machine/MachineListTable.tsx:335 -#: src/tables/part/PartPurchaseOrdersTable.tsx:37 -#: src/tables/purchasing/PurchaseOrderTable.tsx:55 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:132 -#: src/tables/sales/ReturnOrderTable.tsx:46 -#: src/tables/sales/SalesOrderTable.tsx:53 -#: src/tables/settings/ImportSessionTable.tsx:115 -#: src/tables/stock/StockItemTable.tsx:294 -#: src/tables/stock/StockTrackingTable.tsx:52 -msgid "Status" -msgstr "" - -#: src/forms/PurchaseOrderForms.tsx:564 -#: src/pages/company/SupplierPartDetail.tsx:110 -#: src/tables/ColumnRenderers.tsx:132 +#: src/forms/PurchaseOrderForms.tsx:612 +#: src/pages/company/SupplierPartDetail.tsx:115 +#: src/tables/ColumnRenderers.tsx:143 msgid "Note" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/pages/company/SupplierPartDetail.tsx:128 -#: src/tables/purchasing/SupplierPriceBreakTable.tsx:57 -msgid "SKU" -msgstr "" - -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/tables/part/PartPurchaseOrdersTable.tsx:120 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:178 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:127 -msgid "Received" -msgstr "" - -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/forms/StockForms.tsx:499 -#: src/forms/StockForms.tsx:533 -#: src/forms/StockForms.tsx:562 -#: src/forms/StockForms.tsx:590 -#: src/forms/StockForms.tsx:621 -#: src/forms/StockForms.tsx:656 -#: src/forms/StockForms.tsx:698 -#: src/forms/StockForms.tsx:734 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:413 -#: src/tables/RowActions.tsx:113 -msgid "Actions" -msgstr "" - -#: src/forms/PurchaseOrderForms.tsx:655 -msgid "Receive Line Items" -msgstr "" - #: src/forms/PurchaseOrderForms.tsx:658 #~ msgid "Receive line items" #~ msgstr "Receive line items" -#: src/forms/StockForms.tsx:104 -msgid "Add given quantity as packs instead of individual items" +#: src/forms/PurchaseOrderForms.tsx:689 +#: src/pages/company/SupplierPartDetail.tsx:133 +#: src/tables/purchasing/SupplierPriceBreakTable.tsx:57 +msgid "SKU" +msgstr "" + +#: src/forms/PurchaseOrderForms.tsx:689 +#: src/tables/part/PartPurchaseOrdersTable.tsx:126 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:184 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:247 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:152 +msgid "Received" +msgstr "" + +#: src/forms/PurchaseOrderForms.tsx:701 +msgid "Receive Line Items" +msgstr "" + +#: src/forms/ReturnOrderForms.tsx:201 +msgid "Receive Items" +msgstr "" + +#: src/forms/ReturnOrderForms.tsx:208 +msgid "Item received into stock" +msgstr "" + +#: src/forms/StockForms.tsx:80 +#: src/hooks/UsePlaceholder.tsx:57 +msgid "Next serial number" msgstr "" #: src/forms/StockForms.tsx:110 #~ msgid "Create Stock Item" #~ msgstr "Create Stock Item" -#: src/forms/StockForms.tsx:117 +#: src/forms/StockForms.tsx:131 +msgid "Add given quantity as packs instead of individual items" +msgstr "" + +#: src/forms/StockForms.tsx:145 msgid "Enter initial quantity for this stock item" msgstr "この商品の初期数量を入力" -#: src/forms/StockForms.tsx:124 -msgid "Serial Numbers" -msgstr "" - -#: src/forms/StockForms.tsx:125 +#: src/forms/StockForms.tsx:154 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" @@ -2943,82 +3545,102 @@ msgstr "" #~ msgid "Stock item updated" #~ msgstr "Stock item updated" -#: src/forms/StockForms.tsx:179 -#: src/pages/stock/StockDetail.tsx:434 -#: src/tables/stock/StockItemTable.tsx:417 -#: src/tables/stock/StockItemTable.tsx:535 +#: src/forms/StockForms.tsx:169 +#: src/pages/stock/StockDetail.tsx:131 +msgid "Stock Status" +msgstr "" + +#: src/forms/StockForms.tsx:218 +#: src/pages/stock/StockDetail.tsx:554 +#: src/tables/stock/StockItemTable.tsx:421 +#: src/tables/stock/StockItemTable.tsx:541 msgid "Add Stock Item" msgstr "" -#: src/forms/StockForms.tsx:362 +#: src/forms/StockForms.tsx:262 +msgid "Select the part to install" +msgstr "" + +#: src/forms/StockForms.tsx:480 msgid "Loading..." msgstr "" -#: src/forms/StockForms.tsx:408 +#: src/forms/StockForms.tsx:527 msgid "Move to default location" msgstr "" -#: src/forms/StockForms.tsx:499 -#: src/forms/StockForms.tsx:533 -#: src/forms/StockForms.tsx:562 -#: src/forms/StockForms.tsx:590 -#: src/forms/StockForms.tsx:621 -#: src/forms/StockForms.tsx:656 -#: src/forms/StockForms.tsx:698 -#: src/forms/StockForms.tsx:734 -#: src/pages/part/PartDetail.tsx:230 -#: src/pages/part/PartDetail.tsx:843 -#: src/tables/stock/StockItemTable.tsx:325 +#: src/forms/StockForms.tsx:614 +#: src/forms/StockForms.tsx:651 +#: src/forms/StockForms.tsx:677 +#: src/forms/StockForms.tsx:705 +#: src/forms/StockForms.tsx:736 +#: src/forms/StockForms.tsx:771 +#: src/forms/StockForms.tsx:813 +#: src/forms/StockForms.tsx:851 +#: src/pages/part/PartDetail.tsx:251 +#: src/pages/part/PartDetail.tsx:875 +#: src/tables/stock/StockItemTable.tsx:329 msgid "In Stock" msgstr "" -#: src/forms/StockForms.tsx:499 +#: src/forms/StockForms.tsx:614 msgid "Move" msgstr "" -#: src/forms/StockForms.tsx:562 -#: src/pages/stock/StockDetail.tsx:518 -#: src/tables/stock/StockItemTestResultTable.tsx:328 +#: src/forms/StockForms.tsx:677 +#: src/pages/stock/StockDetail.tsx:681 +#: src/tables/stock/StockItemTestResultTable.tsx:346 msgid "Add" msgstr "" -#: src/forms/StockForms.tsx:590 -#: src/pages/Index/Scan.tsx:266 -#: src/pages/stock/StockDetail.tsx:508 +#: src/forms/StockForms.tsx:705 +#: src/pages/Index/Scan.tsx:280 +#: src/pages/stock/StockDetail.tsx:670 msgid "Count" msgstr "" -#: src/forms/StockForms.tsx:835 +#: src/forms/StockForms.tsx:953 +#: src/pages/stock/StockDetail.tsx:682 +#: src/tables/stock/StockItemTable.tsx:454 msgid "Add Stock" msgstr "" -#: src/forms/StockForms.tsx:844 +#: src/forms/StockForms.tsx:962 +#: src/pages/stock/StockDetail.tsx:691 +#: src/tables/stock/StockItemTable.tsx:463 msgid "Remove Stock" msgstr "" -#: src/forms/StockForms.tsx:853 -#: src/pages/part/PartDetail.tsx:1017 +#: src/forms/StockForms.tsx:971 +#: src/pages/part/PartDetail.tsx:1039 +#: src/pages/stock/StockDetail.tsx:712 +#: src/tables/stock/StockItemTable.tsx:483 msgid "Transfer Stock" msgstr "" -#: src/forms/StockForms.tsx:862 -#: src/pages/part/PartDetail.tsx:1006 +#: src/forms/StockForms.tsx:980 +#: src/pages/part/PartDetail.tsx:1028 +#: src/pages/stock/LocationDetail.tsx:314 +#: src/pages/stock/LocationDetail.tsx:318 +#: src/tables/stock/StockItemTable.tsx:472 +#: src/tables/stock/StockItemTable.tsx:476 msgid "Count Stock" msgstr "" -#: src/forms/StockForms.tsx:871 +#: src/forms/StockForms.tsx:989 msgid "Change Stock Status" msgstr "" -#: src/forms/StockForms.tsx:880 +#: src/forms/StockForms.tsx:998 msgid "Merge Stock" msgstr "" -#: src/forms/StockForms.tsx:899 +#: src/forms/StockForms.tsx:1017 +#: src/tables/stock/StockItemTable.tsx:530 msgid "Delete Stock Items" msgstr "" -#: src/forms/StockForms.tsx:906 +#: src/forms/StockForms.tsx:1024 msgid "Parent stock location" msgstr "" @@ -3042,11 +3664,11 @@ msgstr "" #~ msgid "You have been logged out" #~ msgstr "You have been logged out" -#: src/functions/auth.tsx:117 +#: src/functions/auth.tsx:128 msgid "Logged Out" msgstr "" -#: src/functions/auth.tsx:118 +#: src/functions/auth.tsx:129 msgid "Successfully logged out" msgstr "" @@ -3062,20 +3684,20 @@ msgstr "" #~ msgid "Found an existing login - welcome back!" #~ msgstr "Found an existing login - welcome back!" -#: src/functions/auth.tsx:156 +#: src/functions/auth.tsx:167 msgid "Check your inbox for a reset link. This only works if you have an account. Check in spam too." msgstr "" -#: src/functions/auth.tsx:163 +#: src/functions/auth.tsx:174 #: src/pages/Auth/Set-Password.tsx:39 msgid "Reset failed" msgstr "" -#: src/functions/auth.tsx:194 +#: src/functions/auth.tsx:205 msgid "Logged In" msgstr "" -#: src/functions/auth.tsx:195 +#: src/functions/auth.tsx:206 msgid "Successfully logged in" msgstr "" @@ -3095,30 +3717,38 @@ msgstr "" #~ msgid "method parameter not supplied" #~ msgstr "method parameter not supplied" -#: src/functions/notifications.tsx:10 +#: src/functions/notifications.tsx:12 msgid "Not implemented" msgstr "" -#: src/functions/notifications.tsx:11 +#: src/functions/notifications.tsx:13 msgid "This feature is not yet implemented" msgstr "" -#: src/functions/notifications.tsx:21 -msgid "Permission denied" -msgstr "" +#: src/functions/notifications.tsx:24 +#~ msgid "Permission denied" +#~ msgstr "Permission denied" -#: src/functions/notifications.tsx:22 +#: src/functions/notifications.tsx:25 msgid "You do not have permission to perform this action" msgstr "" -#: src/functions/notifications.tsx:33 +#: src/functions/notifications.tsx:36 msgid "Invalid Return Code" msgstr "" -#: src/functions/notifications.tsx:34 +#: src/functions/notifications.tsx:37 msgid "Server returned status {returnCode}" msgstr "" +#: src/functions/notifications.tsx:47 +msgid "Timeout" +msgstr "" + +#: src/functions/notifications.tsx:48 +msgid "The request timed out" +msgstr "" + #: src/hooks/UseForm.tsx:88 msgid "Item Created" msgstr "" @@ -3135,20 +3765,24 @@ msgstr "" msgid "Are you sure you want to delete this item?" msgstr "" +#: src/hooks/UsePlaceholder.tsx:59 +msgid "Latest serial number" +msgstr "" + #: src/pages/Auth/Logged-In.tsx:22 msgid "Checking if you are already logged in" msgstr "" -#: src/pages/Auth/Login.tsx:31 -#: src/pages/Index/Scan.tsx:329 +#: src/pages/Auth/Login.tsx:35 +#: src/pages/Index/Scan.tsx:343 msgid "No selection" msgstr "" -#: src/pages/Auth/Login.tsx:87 +#: src/pages/Auth/Login.tsx:91 msgid "Welcome, log in below" msgstr "" -#: src/pages/Auth/Login.tsx:89 +#: src/pages/Auth/Login.tsx:93 msgid "Register below" msgstr "" @@ -3162,8 +3796,8 @@ msgstr "" #: src/pages/Auth/Reset.tsx:41 #: src/pages/Auth/Set-Password.tsx:112 -msgid "Send mail" -msgstr "" +#~ msgid "Send mail" +#~ msgstr "Send mail" #: src/pages/Auth/Set-Password.tsx:30 msgid "Token invalid" @@ -3174,22 +3808,22 @@ msgid "You need to provide a valid token to set a new password. Check your inbox msgstr "" #: src/pages/Auth/Set-Password.tsx:49 -msgid "No token provided" -msgstr "" +#~ msgid "No token provided" +#~ msgstr "No token provided" #: src/pages/Auth/Set-Password.tsx:50 -msgid "You need to provide a token to set a new password. Check your inbox for a reset link." -msgstr "" +#~ msgid "You need to provide a token to set a new password. Check your inbox for a reset link." +#~ msgstr "You need to provide a token to set a new password. Check your inbox for a reset link." -#: src/pages/Auth/Set-Password.tsx:73 +#: src/pages/Auth/Set-Password.tsx:68 msgid "Password set" msgstr "" -#: src/pages/Auth/Set-Password.tsx:74 +#: src/pages/Auth/Set-Password.tsx:69 msgid "The password was set successfully. You can now login with your new password" msgstr "" -#: src/pages/Auth/Set-Password.tsx:101 +#: src/pages/Auth/Set-Password.tsx:96 msgid "Set new password" msgstr "新しいパスワードを設定" @@ -3206,20 +3840,20 @@ msgstr "" #~ msgstr "Sorry, an unexpected error has occurred." #: src/pages/Index/Dashboard.tsx:22 -msgid "Autoupdate" -msgstr "" +#~ msgid "Autoupdate" +#~ msgstr "Autoupdate" #: src/pages/Index/Dashboard.tsx:26 -msgid "This page is a replacement for the old start page with the same information. This page will be deprecated and replaced by the home page." -msgstr "" +#~ msgid "This page is a replacement for the old start page with the same information. This page will be deprecated and replaced by the home page." +#~ msgstr "This page is a replacement for the old start page with the same information. This page will be deprecated and replaced by the home page." #: src/pages/Index/Home.tsx:58 -msgid "Welcome to your Dashboard{0}" -msgstr "" +#~ msgid "Welcome to your Dashboard{0}" +#~ msgstr "Welcome to your Dashboard{0}" #: src/pages/Index/Playground.tsx:222 -msgid "This page is a showcase for the possibilities of Platform UI." -msgstr "" +#~ msgid "This page is a showcase for the possibilities of Platform UI." +#~ msgstr "This page is a showcase for the possibilities of Platform UI." #: src/pages/Index/Profile/Profile.tsx:30 #: src/pages/Index/Profile/Profile.tsx:141 @@ -3365,125 +3999,190 @@ msgstr "" msgid "Image Barcode" msgstr "" -#: src/pages/Index/Scan.tsx:247 +#: src/pages/Index/Scan.tsx:261 msgid "Selected elements are not known" msgstr "" -#: src/pages/Index/Scan.tsx:254 +#: src/pages/Index/Scan.tsx:268 msgid "Multiple object types selected" msgstr "" -#: src/pages/Index/Scan.tsx:261 +#: src/pages/Index/Scan.tsx:275 msgid "Actions for {0}" msgstr "" -#: src/pages/Index/Scan.tsx:282 +#: src/pages/Index/Scan.tsx:296 msgid "Scan Page" msgstr "" -#: src/pages/Index/Scan.tsx:285 +#: src/pages/Index/Scan.tsx:299 msgid "This page can be used for continuously scanning items and taking actions on them." msgstr "" -#: src/pages/Index/Scan.tsx:292 +#: src/pages/Index/Scan.tsx:306 msgid "Toggle Fullscreen" msgstr "" -#: src/pages/Index/Scan.tsx:305 +#: src/pages/Index/Scan.tsx:319 msgid "Select the input method you want to use to scan items." msgstr "" -#: src/pages/Index/Scan.tsx:307 +#: src/pages/Index/Scan.tsx:321 msgid "Input" msgstr "" -#: src/pages/Index/Scan.tsx:314 +#: src/pages/Index/Scan.tsx:328 msgid "Select input method" msgstr "" -#: src/pages/Index/Scan.tsx:315 +#: src/pages/Index/Scan.tsx:329 msgid "Nothing found" msgstr "" -#: src/pages/Index/Scan.tsx:323 +#: src/pages/Index/Scan.tsx:337 msgid "Depending on the selected parts actions will be shown here. Not all barcode types are supported currently." msgstr "" -#: src/pages/Index/Scan.tsx:325 +#: src/pages/Index/Scan.tsx:339 msgid "Action" msgstr "" -#: src/pages/Index/Scan.tsx:334 +#: src/pages/Index/Scan.tsx:348 msgid "{0} items selected" msgstr "" -#: src/pages/Index/Scan.tsx:337 +#: src/pages/Index/Scan.tsx:351 msgid "General Actions" msgstr "" -#: src/pages/Index/Scan.tsx:351 +#: src/pages/Index/Scan.tsx:365 msgid "Lookup part" msgstr "" -#: src/pages/Index/Scan.tsx:359 +#: src/pages/Index/Scan.tsx:373 msgid "Open Link" msgstr "リンクを開く" -#: src/pages/Index/Scan.tsx:375 +#: src/pages/Index/Scan.tsx:389 msgid "History is locally kept in this browser." msgstr "" -#: src/pages/Index/Scan.tsx:376 +#: src/pages/Index/Scan.tsx:390 msgid "The history is kept in this browser's local storage. So it won't be shared with other users or other devices but is persistent through reloads. You can select items in the history to perform actions on them. To add items, scan/enter them in the Input area." msgstr "" -#: src/pages/Index/Scan.tsx:378 +#: src/pages/Index/Scan.tsx:392 #: src/pages/Notifications.tsx:100 msgid "History" msgstr "" -#: src/pages/Index/Scan.tsx:384 +#: src/pages/Index/Scan.tsx:398 msgid "Delete History" msgstr "" -#: src/pages/Index/Scan.tsx:449 +#: src/pages/Index/Scan.tsx:463 msgid "No history" msgstr "" -#: src/pages/Index/Scan.tsx:467 +#: src/pages/Index/Scan.tsx:481 msgid "Item" msgstr "" -#: src/pages/Index/Scan.tsx:470 +#: src/pages/Index/Scan.tsx:484 msgid "Type" msgstr "" -#: src/pages/Index/Scan.tsx:473 +#: src/pages/Index/Scan.tsx:487 msgid "Source" msgstr "" -#: src/pages/Index/Scan.tsx:476 +#: src/pages/Index/Scan.tsx:490 msgid "Scanned at" msgstr "" -#: src/pages/Index/Scan.tsx:528 +#: src/pages/Index/Scan.tsx:547 msgid "Enter item serial or data" msgstr "" -#: src/pages/Index/Scan.tsx:540 +#: src/pages/Index/Scan.tsx:559 msgid "Add dummy item" msgstr "" +#: src/pages/Index/Scan.tsx:569 +msgid "Start scanning by selecting a camera and pressing the play button." +msgstr "" + +#: src/pages/Index/Scan.tsx:650 +msgid "Error while getting camera" +msgstr "" + +#: src/pages/Index/Scan.tsx:673 +msgid "Error while scanning" +msgstr "" + +#: src/pages/Index/Scan.tsx:687 +msgid "Error while stopping" +msgstr "" + +#: src/pages/Index/Scan.tsx:745 +msgid "Stop scanning" +msgstr "" + +#: src/pages/Index/Scan.tsx:754 +msgid "Start scanning" +msgstr "" + +#: src/pages/Index/Scan.tsx:763 +msgid "Scanning" +msgstr "" + +#: src/pages/Index/Scan.tsx:763 +msgid "Not scanning" +msgstr "" + +#: src/pages/Index/Scan.tsx:775 +msgid "Select Camera" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:28 +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:50 +msgid "Edit User Information" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:32 +msgid "User details updated" +msgstr "" + #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:41 -msgid "Account Details" +msgid "User Details" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:41 +#~ msgid "Account Details" +#~ msgstr "Account Details" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:44 +msgid "User Actions" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:48 +msgid "Edit User" msgstr "" #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:50 -msgid "First name" +#~ msgid "First name" +#~ msgstr "First name" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:54 +msgid "Set Password" msgstr "" #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:55 -msgid "Last name" +#~ msgid "Last name" +#~ msgstr "Last name" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:56 +msgid "Set User Password" msgstr "" #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:58 @@ -3495,15 +4194,28 @@ msgstr "" #~ msgstr "Last name: {0}" #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:67 -msgid "First name:" -msgstr "" +#~ msgid "First name:" +#~ msgstr "First name:" #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:71 -msgid "Last name:" +#~ msgid "Last name:" +#~ msgstr "Last name:" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:73 +msgid "First Name" msgstr "" -#: src/pages/Index/Settings/AccountSettings/DisplaySettingsPanel.tsx:41 -msgid "Use pseudo language" +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:79 +msgid "Last Name" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:85 +msgid "Staff Access" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:93 +#: src/tables/settings/UserTable.tsx:293 +msgid "Superuser" msgstr "" #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:55 @@ -3600,27 +4312,6 @@ msgstr "" msgid "No tokens configured" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:398 -#: src/pages/part/PartDetail.tsx:297 -#: src/tables/bom/UsedInTable.tsx:84 -#: src/tables/build/BuildOrderTable.tsx:110 -#: src/tables/company/CompanyTable.tsx:61 -#: src/tables/company/CompanyTable.tsx:95 -#: src/tables/machine/MachineListTable.tsx:332 -#: src/tables/machine/MachineListTable.tsx:594 -#: src/tables/part/ParametricPartTable.tsx:223 -#: src/tables/part/PartTable.tsx:178 -#: src/tables/part/PartVariantTable.tsx:15 -#: src/tables/plugin/PluginListTable.tsx:149 -#: src/tables/plugin/PluginListTable.tsx:271 -#: src/tables/plugin/PluginListTable.tsx:563 -#: src/tables/purchasing/SupplierPartTable.tsx:98 -#: src/tables/purchasing/SupplierPartTable.tsx:187 -#: src/tables/settings/UserTable.tsx:284 -#: src/tables/stock/StockItemTable.tsx:289 -msgid "Active" -msgstr "" - #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:401 msgid "Expiry" msgstr "" @@ -3630,38 +4321,74 @@ msgid "Last Seen" msgstr "" #: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:65 -msgid "bars" -msgstr "" +#~ msgid "bars" +#~ msgstr "bars" #: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:66 -msgid "oval" -msgstr "" +#~ msgid "oval" +#~ msgstr "oval" #: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:67 -msgid "dots" -msgstr "" +#~ msgid "dots" +#~ msgstr "dots" #: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:81 -msgid "Theme" -msgstr "" +#~ msgid "Theme" +#~ msgstr "Theme" #: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:87 -msgid "Primary color" +#~ msgid "Primary color" +#~ msgstr "Primary color" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:88 +msgid "Bars" msgstr "" -#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:100 +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:89 +msgid "Oval" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:90 +msgid "Dots" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:101 +msgid "Display Settings" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:107 +msgid "Language" +msgstr "言語" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:115 +msgid "Use pseudo language" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:122 +msgid "Color Mode" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:133 +msgid "Highlight color" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:145 +msgid "Example" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:151 msgid "White color" msgstr "" -#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:108 +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:167 msgid "Black color" msgstr "" -#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:116 +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:183 msgid "Border Radius" msgstr "" -#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:132 +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:199 msgid "Loader" msgstr "" @@ -3673,89 +4400,156 @@ msgstr "" #~ msgid "Advanced Amininistrative Options for InvenTree" #~ msgstr "Advanced Amininistrative Options for InvenTree" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:104 +#: src/pages/Index/Settings/AdminCenter/CurrencyManagmentPanel.tsx:27 +#: src/tables/ColumnRenderers.tsx:262 +msgid "Currency" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/CurrencyManagmentPanel.tsx:32 +msgid "Rate" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/CurrencyManagmentPanel.tsx:44 +msgid "Exchange rates updated" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/CurrencyManagmentPanel.tsx:50 +msgid "Exchange rate update error" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/CurrencyManagmentPanel.tsx:62 +msgid "Refresh currency exchange rates" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/CurrencyManagmentPanel.tsx:99 +msgid "Last fetched" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/CurrencyManagmentPanel.tsx:100 +msgid "Base currency" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:115 msgid "Data Import" msgstr "" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:110 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:121 +msgid "Barcode Scans" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:127 msgid "Background Tasks" msgstr "" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:116 -msgid "Error Reports" -msgstr "" - -#: src/pages/Index/Settings/AdminCenter/Index.tsx:122 -msgid "Currencies" -msgstr "" - #: src/pages/Index/Settings/AdminCenter/Index.tsx:127 #~ msgid "Templates" #~ msgstr "Templates" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:140 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:133 +msgid "Error Reports" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:139 +msgid "Currencies" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:157 +msgid "Custom States" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:163 +#: src/pages/Index/Settings/AdminCenter/UnitManagmentPanel.tsx:58 msgid "Custom Units" msgstr "" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:146 -#: src/pages/part/CategoryDetail.tsx:264 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:169 +#: src/pages/part/CategoryDetail.tsx:269 msgid "Part Parameters" msgstr "" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:152 -msgid "Category Parameters" -msgstr "" - -#: src/pages/Index/Settings/AdminCenter/Index.tsx:170 -msgid "Location Types" -msgstr "" - #: src/pages/Index/Settings/AdminCenter/Index.tsx:170 #~ msgid "Location types" #~ msgstr "Location types" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:182 -#: src/tables/machine/MachineTypeTable.tsx:287 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:175 +msgid "Category Parameters" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:181 +msgid "Stocktake" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:199 +msgid "Location Types" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:211 +#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:48 +#: src/tables/machine/MachineTypeTable.tsx:308 msgid "Machines" msgstr "" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:192 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:221 msgid "Quick Actions" msgstr "" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:197 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:226 msgid "Add a new user" msgstr "" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:222 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:252 msgid "Advanced Options" msgstr "" #: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:43 -msgid "Machine types" -msgstr "" +#~ msgid "Machine types" +#~ msgstr "Machine types" #: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:53 -msgid "Machine Error Stack" +#~ msgid "Machine Error Stack" +#~ msgstr "Machine Error Stack" + +#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:56 +msgid "Machine Types" msgstr "" #: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:62 -msgid "There are no machine registry errors." +#~ msgid "There are no machine registry errors." +#~ msgstr "There are no machine registry errors." + +#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:64 +msgid "Machine Errors" msgstr "" -#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:28 -#: src/tables/settings/UserTable.tsx:119 +#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:77 +msgid "Registry Registry Errors" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:80 +msgid "There are machine registry errors" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:86 +msgid "Machine Registry Errors" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:89 +msgid "There are no machine registry errors" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:31 +#: src/tables/settings/UserTable.tsx:118 msgid "Info" msgstr "" -#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:32 -msgid "External plugins are not enabled for this InvenTree installation." -msgstr "" - #: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:33 #~ msgid "Plugin Error Stack" #~ msgstr "Plugin Error Stack" +#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:35 +msgid "External plugins are not enabled for this InvenTree installation." +msgstr "" + #: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:45 #~ msgid "Warning" #~ msgstr "Warning" @@ -3764,34 +4558,46 @@ msgstr "" #~ msgid "Changing the settings below require you to immediately restart the server. Do not change this while under active usage." #~ msgstr "Changing the settings below require you to immediately restart the server. Do not change this while under active usage." -#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:50 +#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:73 msgid "Plugin Errors" msgstr "" -#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:59 -msgid "Plugin Settings" +#: src/pages/Index/Settings/AdminCenter/ReportTemplatePanel.tsx:17 +msgid "Page Size" msgstr "" -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:53 -msgid "Background Worker Not Running" +#: src/pages/Index/Settings/AdminCenter/ReportTemplatePanel.tsx:20 +msgid "Landscape" msgstr "" -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:54 +#: src/pages/Index/Settings/AdminCenter/ReportTemplatePanel.tsx:26 +msgid "Attach to Model" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/StocktakePanel.tsx:25 +msgid "Stocktake Reports" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:30 msgid "The background task manager service is not running. Contact your system administrator." msgstr "" -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:60 -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:76 +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:35 +#~ msgid "Background Worker Not Running" +#~ msgstr "Background Worker Not Running" + +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:36 +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:45 msgid "Pending Tasks" msgstr "" -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:64 -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:84 +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:37 +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:53 msgid "Scheduled Tasks" msgstr "" -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:68 -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:92 +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:38 +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:61 msgid "Failed Tasks" msgstr "" @@ -3811,11 +4617,6 @@ msgstr "" #~ msgid "Reports" #~ msgstr "Reports" -#: src/pages/Index/Settings/AdminCenter/TemplateManagementPanel.tsx:89 -#: src/pages/build/BuildDetail.tsx:373 -#~ msgid "Report" -#~ msgstr "Report" - #: src/pages/Index/Settings/AdminCenter/TemplateManagementPanel.tsx:99 #~ msgid "Purchase order" #~ msgstr "Purchase order" @@ -3836,23 +4637,35 @@ msgstr "" #~ msgid "Stock location" #~ msgstr "Stock location" +#: src/pages/Index/Settings/AdminCenter/UnitManagmentPanel.tsx:21 +msgid "Alias" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/UnitManagmentPanel.tsx:22 +msgid "Dimensionless" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/UnitManagmentPanel.tsx:66 +msgid "All units" +msgstr "" + #: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:32 msgid "Select settings relevant for user lifecycle. More available in" msgstr "" #: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:37 -msgid "System settings" -msgstr "" +#~ msgid "System settings" +#~ msgstr "System settings" -#: src/pages/Index/Settings/SystemSettings.tsx:67 +#: src/pages/Index/Settings/SystemSettings.tsx:66 msgid "Login" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:93 +#: src/pages/Index/Settings/SystemSettings.tsx:92 msgid "Barcodes" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:115 +#: src/pages/Index/Settings/SystemSettings.tsx:116 msgid "Pricing" msgstr "価格" @@ -3864,64 +4677,46 @@ msgstr "価格" #~ msgid "Exchange Rates" #~ msgstr "Exchange Rates" -#: src/pages/Index/Settings/SystemSettings.tsx:150 +#: src/pages/Index/Settings/SystemSettings.tsx:151 msgid "Labels" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:156 -#: src/pages/Index/Settings/UserSettings.tsx:132 +#: src/pages/Index/Settings/SystemSettings.tsx:157 +#: src/pages/Index/Settings/UserSettings.tsx:133 msgid "Reporting" msgstr "" #: src/pages/Index/Settings/SystemSettings.tsx:231 -#: src/pages/part/PartDetail.tsx:682 -msgid "Stocktake" -msgstr "" - -#: src/pages/Index/Settings/SystemSettings.tsx:237 -#: src/pages/build/BuildDetail.tsx:554 -#: src/pages/build/BuildIndex.tsx:22 -#: src/pages/part/PartDetail.tsx:616 -#: src/pages/sales/SalesOrderDetail.tsx:333 +#: src/pages/build/BuildIndex.tsx:27 +#: src/pages/part/PartDetail.tsx:636 +#: src/pages/sales/SalesOrderDetail.tsx:355 msgid "Build Orders" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:318 -msgid "Switch to User Setting" -msgstr "" +#: src/pages/Index/Settings/SystemSettings.tsx:317 +#~ msgid "Switch to User Setting" +#~ msgstr "Switch to User Setting" -#: src/pages/Index/Settings/UserSettings.tsx:34 +#: src/pages/Index/Settings/UserSettings.tsx:35 msgid "Account" msgstr "" -#: src/pages/Index/Settings/UserSettings.tsx:40 +#: src/pages/Index/Settings/UserSettings.tsx:41 msgid "Security" msgstr "" -#: src/pages/Index/Settings/UserSettings.tsx:78 +#: src/pages/Index/Settings/UserSettings.tsx:79 msgid "Display Options" msgstr "" -#: src/pages/Index/Settings/UserSettings.tsx:150 -msgid "Account Settings" -msgstr "" - -#: src/pages/Index/Settings/UserSettings.tsx:158 -msgid "Switch to System Setting" -msgstr "" - -#: src/pages/Index/UserSettings.tsx:103 -#~ msgid "User Settings" -#~ msgstr "User Settings" +#: src/pages/Index/Settings/UserSettings.tsx:159 +#~ msgid "Switch to System Setting" +#~ msgstr "Switch to System Setting" #: src/pages/Logged-In.tsx:24 #~ msgid "Found an exsisting login - using it to log you in." #~ msgstr "Found an exsisting login - using it to log you in." -#: src/pages/NotFound.tsx:17 -#~ msgid "Not Found" -#~ msgstr "Not Found" - #: src/pages/NotFound.tsx:20 #~ msgid "Sorry, this page is not known or was moved." #~ msgstr "Sorry, this page is not known or was moved." @@ -3942,104 +4737,86 @@ msgstr "未読にする" #~ msgid "Build Status" #~ msgstr "Build Status" -#: src/pages/build/BuildDetail.tsx:102 -#: src/pages/part/PartDetail.tsx:150 +#: src/pages/build/BuildDetail.tsx:97 +#: src/pages/company/ManufacturerPartDetail.tsx:81 +#: src/pages/company/SupplierPartDetail.tsx:91 +#: src/pages/part/PartDetail.tsx:171 +#: src/pages/stock/StockDetail.tsx:122 #: src/tables/bom/BomTable.tsx:118 #: src/tables/bom/UsedInTable.tsx:39 -#: src/tables/build/BuildLineTable.tsx:173 -#: src/tables/build/BuildOrderTable.tsx:55 -#: src/tables/sales/SalesOrderLineItemTable.tsx:62 -#: src/tables/stock/StockItemTable.tsx:53 +#: src/tables/build/BuildAllocatedStockTable.tsx:104 +#: src/tables/build/BuildLineTable.tsx:324 +#: src/tables/build/BuildOrderTable.tsx:64 +#: src/tables/sales/SalesOrderLineItemTable.tsx:70 +#: src/tables/stock/StockItemTable.tsx:54 msgid "IPN" msgstr "" -#: src/pages/build/BuildDetail.tsx:115 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:121 -#: src/pages/sales/ReturnOrderDetail.tsx:95 -#: src/pages/sales/SalesOrderDetail.tsx:101 -#: src/tables/ColumnRenderers.tsx:121 -#: src/tables/build/BuildAllocatedStockTable.tsx:90 -#: src/tables/build/BuildLineTable.tsx:184 +#: src/pages/build/BuildDetail.tsx:110 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:115 +#: src/pages/sales/ReturnOrderDetail.tsx:86 +#: src/pages/sales/SalesOrderDetail.tsx:95 +#: src/tables/ColumnRenderers.tsx:132 +#: src/tables/build/BuildAllocatedStockTable.tsx:111 +#: src/tables/build/BuildLineTable.tsx:335 msgid "Reference" msgstr "" -#: src/pages/build/BuildDetail.tsx:121 -#: src/pages/company/CompanyDetail.tsx:90 -#: src/pages/company/ManufacturerPartDetail.tsx:83 -#: src/pages/company/SupplierPartDetail.tsx:96 -#: src/pages/part/CategoryDetail.tsx:101 -#: src/pages/part/PartDetail.tsx:157 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:142 -#: src/pages/sales/ReturnOrderDetail.tsx:115 -#: src/pages/sales/SalesOrderDetail.tsx:121 -#: src/pages/stock/LocationDetail.tsx:109 -#: src/tables/ColumnRenderers.tsx:81 -#: src/tables/bom/UsedInTable.tsx:44 -#: src/tables/build/BuildAllocatedStockTable.tsx:70 -#: src/tables/build/BuildLineTable.tsx:178 -#: src/tables/machine/MachineTypeTable.tsx:69 -#: src/tables/machine/MachineTypeTable.tsx:112 -#: src/tables/machine/MachineTypeTable.tsx:219 -#: src/tables/machine/MachineTypeTable.tsx:323 -#: src/tables/part/RelatedPartTable.tsx:64 -#: src/tables/plugin/PluginListTable.tsx:129 -#: src/tables/plugin/PluginListTable.tsx:276 -#: src/tables/sales/SalesOrderAllocationTable.tsx:56 -#: src/tables/sales/SalesOrderLineItemTable.tsx:67 -#: src/tables/stock/LocationTypesTable.tsx:74 -msgid "Description" -msgstr "説明" - -#: src/pages/build/BuildDetail.tsx:129 +#: src/pages/build/BuildDetail.tsx:124 msgid "Parent Build" msgstr "" -#: src/pages/build/BuildDetail.tsx:140 +#: src/pages/build/BuildDetail.tsx:135 msgid "Build Quantity" msgstr "" -#: src/pages/build/BuildDetail.tsx:148 -#: src/pages/build/BuildDetail.tsx:274 +#: src/pages/build/BuildDetail.tsx:143 +#: src/pages/build/BuildDetail.tsx:277 msgid "Completed Outputs" msgstr "" -#: src/pages/build/BuildDetail.tsx:165 -#: src/tables/build/BuildOrderTable.tsx:151 +#: src/pages/build/BuildDetail.tsx:160 +#: src/tables/build/BuildOrderTable.tsx:142 msgid "Issued By" msgstr "" -#: src/pages/build/BuildDetail.tsx:172 -#: src/pages/part/PartDetail.tsx:365 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:220 -#: src/pages/sales/ReturnOrderDetail.tsx:199 -#: src/pages/sales/SalesOrderDetail.tsx:208 -#: src/tables/build/BuildOrderTable.tsx:157 -#: src/tables/purchasing/PurchaseOrderTable.tsx:75 -#: src/tables/sales/ReturnOrderTable.tsx:66 -#: src/tables/sales/SalesOrderTable.tsx:73 +#: src/pages/build/BuildDetail.tsx:167 +#: src/pages/part/PartDetail.tsx:406 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:244 +#: src/pages/sales/ReturnOrderDetail.tsx:216 +#: src/pages/sales/SalesOrderDetail.tsx:226 +#: src/tables/build/BuildOrderTable.tsx:148 +#: src/tables/purchasing/PurchaseOrderTable.tsx:76 +#: src/tables/sales/ReturnOrderTable.tsx:74 +#: src/tables/sales/SalesOrderTable.tsx:74 msgid "Responsible" msgstr "" -#: src/pages/build/BuildDetail.tsx:179 -#: src/tables/settings/PendingTasksTable.tsx:32 +#: src/pages/build/BuildDetail.tsx:174 +#: src/tables/settings/PendingTasksTable.tsx:36 msgid "Created" msgstr "" +#: src/pages/build/BuildDetail.tsx:181 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:229 +#: src/pages/sales/ReturnOrderDetail.tsx:201 +#: src/pages/sales/SalesOrderDetail.tsx:212 +#: src/tables/ColumnRenderers.tsx:226 +#: src/tables/part/PartPurchaseOrdersTable.tsx:100 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:135 +#: src/tables/sales/SalesOrderLineItemTable.tsx:107 +msgid "Target Date" +msgstr "" + #: src/pages/build/BuildDetail.tsx:185 #: src/pages/part/PartDetail.tsx:269 #: src/pages/stock/StockDetail.tsx:150 #~ msgid "View part barcode" #~ msgstr "View part barcode" -#: src/pages/build/BuildDetail.tsx:186 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:213 -#: src/pages/sales/ReturnOrderDetail.tsx:192 -#: src/pages/sales/SalesOrderDetail.tsx:201 -#: src/tables/ColumnRenderers.tsx:212 -#: src/tables/part/PartPurchaseOrdersTable.tsx:99 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:110 -#: src/tables/sales/SalesOrderLineItemTable.tsx:99 -msgid "Target Date" +#: src/pages/build/BuildDetail.tsx:188 +#: src/tables/sales/SalesOrderLineItemTable.tsx:281 +msgid "Completed" msgstr "" #: src/pages/build/BuildDetail.tsx:190 @@ -4047,10 +4824,6 @@ msgstr "" #~ msgid "Link custom barcode to part" #~ msgstr "Link custom barcode to part" -#: src/pages/build/BuildDetail.tsx:193 -msgid "Completed" -msgstr "" - #: src/pages/build/BuildDetail.tsx:196 #: src/pages/part/PartDetail.tsx:280 #~ msgid "Unlink custom barcode from part" @@ -4060,15 +4833,11 @@ msgstr "" #~ msgid "Build Order updated" #~ msgstr "Build Order updated" -#: src/pages/build/BuildDetail.tsx:205 -msgid "Source Location" -msgstr "" - -#: src/pages/build/BuildDetail.tsx:206 +#: src/pages/build/BuildDetail.tsx:209 msgid "Any location" msgstr "" -#: src/pages/build/BuildDetail.tsx:213 +#: src/pages/build/BuildDetail.tsx:216 msgid "Destination Location" msgstr "" @@ -4084,206 +4853,182 @@ msgstr "" #~ msgid "Delete build order" #~ msgstr "Delete build order" -#: src/pages/build/BuildDetail.tsx:251 +#: src/pages/build/BuildDetail.tsx:254 msgid "Build Details" msgstr "" -#: src/pages/build/BuildDetail.tsx:257 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:258 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:267 -#: src/pages/sales/ReturnOrderDetail.tsx:130 -#: src/pages/sales/ReturnOrderDetail.tsx:237 -#: src/pages/sales/ReturnOrderDetail.tsx:246 -#: src/pages/sales/SalesOrderDetail.tsx:272 -#: src/pages/sales/SalesOrderDetail.tsx:281 +#: src/pages/build/BuildDetail.tsx:260 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:282 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:291 +#: src/pages/sales/ReturnOrderDetail.tsx:122 +#: src/pages/sales/ReturnOrderDetail.tsx:254 +#: src/pages/sales/ReturnOrderDetail.tsx:263 +#: src/pages/sales/SalesOrderDetail.tsx:294 +#: src/pages/sales/SalesOrderDetail.tsx:303 msgid "Line Items" msgstr "" -#: src/pages/build/BuildDetail.tsx:267 +#: src/pages/build/BuildDetail.tsx:266 msgid "Incomplete Outputs" msgstr "" -#: src/pages/build/BuildDetail.tsx:289 -#: src/pages/sales/SalesOrderDetail.tsx:319 +#: src/pages/build/BuildDetail.tsx:292 +#: src/pages/sales/SalesOrderDetail.tsx:341 msgid "Allocated Stock" msgstr "" -#: src/pages/build/BuildDetail.tsx:299 +#: src/pages/build/BuildDetail.tsx:302 msgid "Consumed Stock" msgstr "" -#: src/pages/build/BuildDetail.tsx:313 +#: src/pages/build/BuildDetail.tsx:316 msgid "Child Build Orders" msgstr "" #: src/pages/build/BuildDetail.tsx:326 -#: src/tables/build/BuildOutputTable.tsx:384 -#: src/tables/stock/StockItemTestResultTable.tsx:150 +#: src/tables/build/BuildOutputTable.tsx:532 +#: src/tables/stock/StockItemTestResultTable.tsx:156 msgid "Test Results" msgstr "" #: src/pages/build/BuildDetail.tsx:337 -#: src/pages/part/PartDetail.tsx:699 +#: src/pages/part/PartDetail.tsx:740 msgid "Test Statistics" msgstr "" -#: src/pages/build/BuildDetail.tsx:351 -#: src/pages/company/CompanyDetail.tsx:259 -#: src/pages/company/ManufacturerPartDetail.tsx:179 -#: src/pages/part/PartDetail.tsx:721 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:309 -#: src/pages/sales/ReturnOrderDetail.tsx:274 -#: src/pages/sales/SalesOrderDetail.tsx:343 -#: src/pages/stock/StockDetail.tsx:385 -msgid "Attachments" -msgstr "添付ファイル" - -#: src/pages/build/BuildDetail.tsx:359 -#: src/pages/company/CompanyDetail.tsx:270 -#: src/pages/company/ManufacturerPartDetail.tsx:190 -#: src/pages/company/SupplierPartDetail.tsx:257 -#: src/pages/part/PartDetail.tsx:729 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:320 -#: src/pages/sales/ReturnOrderDetail.tsx:285 -#: src/pages/sales/SalesOrderDetail.tsx:354 -#: src/pages/stock/StockDetail.tsx:396 -#: src/tables/build/BuildOrderTestTable.tsx:142 -#: src/tables/stock/StockTrackingTable.tsx:189 -msgid "Notes" -msgstr "メモ" +#: src/pages/build/BuildDetail.tsx:365 +msgid "Edit Build Order" +msgstr "" #: src/pages/build/BuildDetail.tsx:368 #~ msgid "Reporting Actions" #~ msgstr "Reporting Actions" +#: src/pages/build/BuildDetail.tsx:372 +#: src/tables/build/BuildOrderTable.tsx:173 +#: src/tables/build/BuildOrderTable.tsx:188 +msgid "Add Build Order" +msgstr "" + #: src/pages/build/BuildDetail.tsx:374 #~ msgid "Print build report" #~ msgstr "Print build report" -#: src/pages/build/BuildDetail.tsx:377 -msgid "Edit Build Order" -msgstr "" - -#: src/pages/build/BuildDetail.tsx:384 -#: src/tables/build/BuildOrderTable.tsx:172 -#: src/tables/build/BuildOrderTable.tsx:187 -msgid "Add Build Order" -msgstr "" - -#: src/pages/build/BuildDetail.tsx:398 +#: src/pages/build/BuildDetail.tsx:386 msgid "Cancel Build Order" msgstr "" -#: src/pages/build/BuildDetail.tsx:400 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:348 -#: src/pages/sales/SalesOrderDetail.tsx:380 +#: src/pages/build/BuildDetail.tsx:388 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:357 +#: src/pages/sales/ReturnOrderDetail.tsx:354 +#: src/pages/sales/SalesOrderDetail.tsx:387 msgid "Order cancelled" msgstr "" -#: src/pages/build/BuildDetail.tsx:401 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:347 -#: src/pages/sales/ReturnOrderDetail.tsx:346 -#: src/pages/sales/SalesOrderDetail.tsx:379 +#: src/pages/build/BuildDetail.tsx:389 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:356 +#: src/pages/sales/ReturnOrderDetail.tsx:353 +#: src/pages/sales/SalesOrderDetail.tsx:386 msgid "Cancel this order" msgstr "" -#: src/pages/build/BuildDetail.tsx:410 +#: src/pages/build/BuildDetail.tsx:398 msgid "Hold Build Order" msgstr "" -#: src/pages/build/BuildDetail.tsx:412 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:355 -#: src/pages/sales/ReturnOrderDetail.tsx:354 -#: src/pages/sales/SalesOrderDetail.tsx:387 +#: src/pages/build/BuildDetail.tsx:400 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:364 +#: src/pages/sales/ReturnOrderDetail.tsx:361 +#: src/pages/sales/SalesOrderDetail.tsx:394 msgid "Place this order on hold" msgstr "" -#: src/pages/build/BuildDetail.tsx:413 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:356 -#: src/pages/sales/ReturnOrderDetail.tsx:355 -#: src/pages/sales/SalesOrderDetail.tsx:388 +#: src/pages/build/BuildDetail.tsx:401 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:365 +#: src/pages/sales/ReturnOrderDetail.tsx:362 +#: src/pages/sales/SalesOrderDetail.tsx:395 msgid "Order placed on hold" msgstr "" -#: src/pages/build/BuildDetail.tsx:418 +#: src/pages/build/BuildDetail.tsx:406 msgid "Issue Build Order" msgstr "" -#: src/pages/build/BuildDetail.tsx:420 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:339 -#: src/pages/sales/ReturnOrderDetail.tsx:338 -#: src/pages/sales/SalesOrderDetail.tsx:371 +#: src/pages/build/BuildDetail.tsx:408 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:348 +#: src/pages/sales/ReturnOrderDetail.tsx:345 +#: src/pages/sales/SalesOrderDetail.tsx:378 msgid "Issue this order" msgstr "" -#: src/pages/build/BuildDetail.tsx:421 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:340 -#: src/pages/sales/ReturnOrderDetail.tsx:339 -#: src/pages/sales/SalesOrderDetail.tsx:372 +#: src/pages/build/BuildDetail.tsx:409 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:349 +#: src/pages/sales/ReturnOrderDetail.tsx:346 +#: src/pages/sales/SalesOrderDetail.tsx:379 msgid "Order issued" msgstr "" -#: src/pages/build/BuildDetail.tsx:426 +#: src/pages/build/BuildDetail.tsx:414 msgid "Complete Build Order" msgstr "" -#: src/pages/build/BuildDetail.tsx:428 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:368 -#: src/pages/sales/ReturnOrderDetail.tsx:362 -#: src/pages/sales/SalesOrderDetail.tsx:395 +#: src/pages/build/BuildDetail.tsx:416 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:377 +#: src/pages/sales/ReturnOrderDetail.tsx:369 +#: src/pages/sales/SalesOrderDetail.tsx:402 msgid "Mark this order as complete" msgstr "" -#: src/pages/build/BuildDetail.tsx:429 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:362 -#: src/pages/sales/ReturnOrderDetail.tsx:363 -#: src/pages/sales/SalesOrderDetail.tsx:396 +#: src/pages/build/BuildDetail.tsx:417 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:371 +#: src/pages/sales/ReturnOrderDetail.tsx:370 +#: src/pages/sales/SalesOrderDetail.tsx:403 msgid "Order completed" msgstr "" -#: src/pages/build/BuildDetail.tsx:460 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:391 -#: src/pages/sales/ReturnOrderDetail.tsx:392 -#: src/pages/sales/SalesOrderDetail.tsx:425 +#: src/pages/build/BuildDetail.tsx:448 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:400 +#: src/pages/sales/ReturnOrderDetail.tsx:399 +#: src/pages/sales/SalesOrderDetail.tsx:432 msgid "Issue Order" msgstr "" -#: src/pages/build/BuildDetail.tsx:467 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:398 -#: src/pages/sales/ReturnOrderDetail.tsx:399 -#: src/pages/sales/SalesOrderDetail.tsx:439 +#: src/pages/build/BuildDetail.tsx:455 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:407 +#: src/pages/sales/ReturnOrderDetail.tsx:406 +#: src/pages/sales/SalesOrderDetail.tsx:446 msgid "Complete Order" msgstr "" -#: src/pages/build/BuildDetail.tsx:496 +#: src/pages/build/BuildDetail.tsx:473 msgid "Build Order Actions" msgstr "" -#: src/pages/build/BuildDetail.tsx:502 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:432 -#: src/pages/sales/ReturnOrderDetail.tsx:433 -#: src/pages/sales/SalesOrderDetail.tsx:474 +#: src/pages/build/BuildDetail.tsx:478 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:429 +#: src/pages/sales/ReturnOrderDetail.tsx:428 +#: src/pages/sales/SalesOrderDetail.tsx:469 msgid "Edit order" msgstr "" -#: src/pages/build/BuildDetail.tsx:506 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:440 -#: src/pages/sales/ReturnOrderDetail.tsx:439 -#: src/pages/sales/SalesOrderDetail.tsx:479 +#: src/pages/build/BuildDetail.tsx:482 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:437 +#: src/pages/sales/ReturnOrderDetail.tsx:434 +#: src/pages/sales/SalesOrderDetail.tsx:474 msgid "Duplicate order" msgstr "" -#: src/pages/build/BuildDetail.tsx:510 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:443 -#: src/pages/sales/ReturnOrderDetail.tsx:444 -#: src/pages/sales/SalesOrderDetail.tsx:482 +#: src/pages/build/BuildDetail.tsx:486 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:440 +#: src/pages/sales/ReturnOrderDetail.tsx:439 +#: src/pages/sales/SalesOrderDetail.tsx:477 msgid "Hold order" msgstr "" -#: src/pages/build/BuildDetail.tsx:515 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:448 -#: src/pages/sales/ReturnOrderDetail.tsx:449 -#: src/pages/sales/SalesOrderDetail.tsx:487 +#: src/pages/build/BuildDetail.tsx:491 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:445 +#: src/pages/sales/ReturnOrderDetail.tsx:444 +#: src/pages/sales/SalesOrderDetail.tsx:482 msgid "Cancel order" msgstr "" @@ -4295,57 +5040,61 @@ msgstr "" #~ msgid "New Build Order" #~ msgstr "New Build Order" -#: src/pages/company/CompanyDetail.tsx:104 +#: src/pages/company/CompanyDetail.tsx:95 +msgid "Website" +msgstr "" + +#: src/pages/company/CompanyDetail.tsx:103 msgid "Phone Number" msgstr "" -#: src/pages/company/CompanyDetail.tsx:111 +#: src/pages/company/CompanyDetail.tsx:110 msgid "Email Address" msgstr "" -#: src/pages/company/CompanyDetail.tsx:121 +#: src/pages/company/CompanyDetail.tsx:120 msgid "Default Currency" msgstr "" -#: src/pages/company/CompanyDetail.tsx:126 +#: src/pages/company/CompanyDetail.tsx:125 #: src/pages/company/SupplierDetail.tsx:8 -#: src/pages/company/SupplierPartDetail.tsx:120 -#: src/pages/company/SupplierPartDetail.tsx:206 -#: src/pages/company/SupplierPartDetail.tsx:351 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:136 -#: src/tables/company/CompanyTable.tsx:100 +#: src/pages/company/SupplierPartDetail.tsx:125 +#: src/pages/company/SupplierPartDetail.tsx:218 +#: src/pages/company/SupplierPartDetail.tsx:340 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:130 +#: src/tables/company/CompanyTable.tsx:101 #: src/tables/part/PartPurchaseOrdersTable.tsx:42 -#: src/tables/purchasing/PurchaseOrderTable.tsx:88 +#: src/tables/purchasing/PurchaseOrderTable.tsx:89 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:36 msgid "Supplier" msgstr "" -#: src/pages/company/CompanyDetail.tsx:132 +#: src/pages/company/CompanyDetail.tsx:131 #: src/pages/company/ManufacturerDetail.tsx:8 -#: src/pages/company/ManufacturerPartDetail.tsx:101 -#: src/pages/company/ManufacturerPartDetail.tsx:267 -#: src/pages/company/SupplierPartDetail.tsx:135 -#: src/tables/company/CompanyTable.tsx:105 +#: src/pages/company/ManufacturerPartDetail.tsx:100 +#: src/pages/company/ManufacturerPartDetail.tsx:262 +#: src/pages/company/SupplierPartDetail.tsx:147 +#: src/tables/company/CompanyTable.tsx:106 msgid "Manufacturer" msgstr "" -#: src/pages/company/CompanyDetail.tsx:138 +#: src/pages/company/CompanyDetail.tsx:137 #: src/pages/company/CustomerDetail.tsx:8 -#: src/pages/part/pricing/SaleHistoryPanel.tsx:29 -#: src/pages/sales/ReturnOrderDetail.tsx:109 -#: src/pages/sales/SalesOrderDetail.tsx:115 -#: src/pages/stock/StockDetail.tsx:230 -#: src/tables/company/CompanyTable.tsx:110 -#: src/tables/sales/ReturnOrderTable.tsx:78 -#: src/tables/sales/SalesOrderTable.tsx:108 -#: src/tables/stock/StockTrackingTable.tsx:140 +#: src/pages/part/pricing/SaleHistoryPanel.tsx:31 +#: src/pages/sales/ReturnOrderDetail.tsx:101 +#: src/pages/sales/SalesOrderDetail.tsx:110 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:100 +#: src/pages/stock/StockDetail.tsx:271 +#: src/tables/company/CompanyTable.tsx:111 +#: src/tables/sales/ReturnOrderTable.tsx:97 +#: src/tables/sales/SalesOrderTable.tsx:121 +#: src/tables/stock/StockTrackingTable.tsx:144 msgid "Customer" msgstr "" #: src/pages/company/CompanyDetail.tsx:172 -#: src/tables/stock/StockTrackingTable.tsx:183 -msgid "Details" -msgstr "詳細" +msgid "Company Details" +msgstr "" #: src/pages/company/CompanyDetail.tsx:175 #~ msgid "Edit company" @@ -4363,140 +5112,150 @@ msgstr "" #~ msgid "Delete company" #~ msgstr "Delete company" -#: src/pages/company/CompanyDetail.tsx:232 +#: src/pages/company/CompanyDetail.tsx:234 msgid "Assigned Stock" msgstr "" -#: src/pages/company/CompanyDetail.tsx:290 -#: src/tables/company/CompanyTable.tsx:86 +#: src/pages/company/CompanyDetail.tsx:273 +#: src/tables/company/CompanyTable.tsx:87 msgid "Edit Company" msgstr "" -#: src/pages/company/CompanyDetail.tsx:298 +#: src/pages/company/CompanyDetail.tsx:281 msgid "Delete Company" msgstr "" -#: src/pages/company/CompanyDetail.tsx:306 +#: src/pages/company/CompanyDetail.tsx:289 msgid "Company Actions" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:76 -#: src/pages/company/SupplierPartDetail.tsx:89 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:128 +#: src/pages/company/ManufacturerPartDetail.tsx:74 +#: src/pages/company/SupplierPartDetail.tsx:84 msgid "Internal Part" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:91 -#: src/pages/company/SupplierPartDetail.tsx:103 -msgid "External Link" -msgstr "" - -#: src/pages/company/ManufacturerPartDetail.tsx:109 -#: src/pages/company/SupplierPartDetail.tsx:144 -#: src/tables/purchasing/ManufacturerPartTable.tsx:56 +#: src/pages/company/ManufacturerPartDetail.tsx:108 +#: src/pages/company/SupplierPartDetail.tsx:156 +#: src/tables/purchasing/ManufacturerPartTable.tsx:58 msgid "Manufacturer Part Number" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:138 +#: src/pages/company/ManufacturerPartDetail.tsx:125 +#: src/pages/company/SupplierPartDetail.tsx:108 +msgid "External Link" +msgstr "" + +#: src/pages/company/ManufacturerPartDetail.tsx:146 +#: src/pages/company/SupplierPartDetail.tsx:215 +#: src/pages/part/PartDetail.tsx:576 +msgid "Part Details" +msgstr "" + +#: src/pages/company/ManufacturerPartDetail.tsx:149 msgid "Manufacturer Details" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:147 +#: src/pages/company/ManufacturerPartDetail.tsx:158 msgid "Manufacturer Part Details" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:153 -#: src/pages/part/PartDetail.tsx:532 +#: src/pages/company/ManufacturerPartDetail.tsx:164 +#: src/pages/part/PartDetail.tsx:582 msgid "Parameters" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:165 -#: src/pages/part/PartDetail.tsx:649 +#: src/pages/company/ManufacturerPartDetail.tsx:176 +#: src/pages/part/PartDetail.tsx:669 #: src/pages/purchasing/PurchasingIndex.tsx:31 msgid "Suppliers" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:208 -#: src/tables/purchasing/ManufacturerPartTable.tsx:84 +#: src/pages/company/ManufacturerPartDetail.tsx:204 +#: src/tables/purchasing/ManufacturerPartTable.tsx:86 msgid "Edit Manufacturer Part" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:215 -#: src/tables/purchasing/ManufacturerPartTable.tsx:72 -#: src/tables/purchasing/ManufacturerPartTable.tsx:103 +#: src/pages/company/ManufacturerPartDetail.tsx:211 +#: src/tables/purchasing/ManufacturerPartTable.tsx:74 +#: src/tables/purchasing/ManufacturerPartTable.tsx:106 msgid "Add Manufacturer Part" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:227 -#: src/tables/purchasing/ManufacturerPartTable.tsx:92 +#: src/pages/company/ManufacturerPartDetail.tsx:223 +#: src/tables/purchasing/ManufacturerPartTable.tsx:94 msgid "Delete Manufacturer Part" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:240 +#: src/pages/company/ManufacturerPartDetail.tsx:236 msgid "Manufacturer Part Actions" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:281 +#: src/pages/company/ManufacturerPartDetail.tsx:276 msgid "ManufacturerPart" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:163 -#: src/tables/part/PartPurchaseOrdersTable.tsx:71 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:156 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:197 -#: src/tables/purchasing/SupplierPartTable.tsx:131 +#: src/pages/company/SupplierPartDetail.tsx:99 +msgid "Part Description" +msgstr "" + +#: src/pages/company/SupplierPartDetail.tsx:175 +#: src/tables/part/PartPurchaseOrdersTable.tsx:72 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:162 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:203 +#: src/tables/purchasing/SupplierPartTable.tsx:133 msgid "Pack Quantity" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:174 +#: src/pages/company/SupplierPartDetail.tsx:186 msgid "Supplier Availability" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:181 +#: src/pages/company/SupplierPartDetail.tsx:193 msgid "Availability Updated" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:208 +#: src/pages/company/SupplierPartDetail.tsx:220 msgid "Availability" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:217 +#: src/pages/company/SupplierPartDetail.tsx:229 msgid "Supplier Part Details" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:223 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:296 +#: src/pages/company/SupplierPartDetail.tsx:235 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:320 msgid "Received Stock" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:247 -#: src/pages/part/PartPricingPanel.tsx:111 -#: src/pages/part/pricing/PricingOverviewPanel.tsx:121 +#: src/pages/company/SupplierPartDetail.tsx:259 +#: src/pages/part/PartPricingPanel.tsx:116 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:195 msgid "Supplier Pricing" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:294 +#: src/pages/company/SupplierPartDetail.tsx:284 msgid "Supplier Part Actions" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:319 -#: src/tables/purchasing/SupplierPartTable.tsx:210 +#: src/pages/company/SupplierPartDetail.tsx:308 +#: src/tables/purchasing/SupplierPartTable.tsx:213 msgid "Edit Supplier Part" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:327 -#: src/tables/purchasing/SupplierPartTable.tsx:218 +#: src/pages/company/SupplierPartDetail.tsx:316 +#: src/tables/purchasing/SupplierPartTable.tsx:221 msgid "Delete Supplier Part" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:335 -#: src/tables/purchasing/SupplierPartTable.tsx:163 +#: src/pages/company/SupplierPartDetail.tsx:324 +#: src/tables/purchasing/SupplierPartTable.tsx:165 msgid "Add Supplier Part" msgstr "" #: src/pages/part/CategoryDetail.tsx:93 -#: src/pages/stock/LocationDetail.tsx:101 -#: src/tables/settings/ErrorTable.tsx:36 +#: src/pages/stock/LocationDetail.tsx:95 +#: src/tables/settings/ErrorTable.tsx:63 +#: src/tables/settings/ErrorTable.tsx:108 msgid "Path" msgstr "" @@ -4504,357 +5263,357 @@ msgstr "" msgid "Parent Category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:126 +#: src/pages/part/CategoryDetail.tsx:132 msgid "Subcategories" msgstr "" -#: src/pages/part/CategoryDetail.tsx:133 -#: src/pages/stock/LocationDetail.tsx:141 -#: src/tables/part/PartCategoryTable.tsx:73 +#: src/pages/part/CategoryDetail.tsx:139 +#: src/pages/stock/LocationDetail.tsx:135 +#: src/tables/part/PartCategoryTable.tsx:85 #: src/tables/stock/StockLocationTable.tsx:49 msgid "Structural" msgstr "" -#: src/pages/part/CategoryDetail.tsx:139 +#: src/pages/part/CategoryDetail.tsx:145 msgid "Parent default location" msgstr "" -#: src/pages/part/CategoryDetail.tsx:146 +#: src/pages/part/CategoryDetail.tsx:152 msgid "Default location" msgstr "" -#: src/pages/part/CategoryDetail.tsx:157 +#: src/pages/part/CategoryDetail.tsx:163 msgid "Top level part category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:167 -#: src/pages/part/CategoryDetail.tsx:221 -#: src/tables/part/PartCategoryTable.tsx:102 +#: src/pages/part/CategoryDetail.tsx:173 +#: src/pages/part/CategoryDetail.tsx:226 +#: src/tables/part/PartCategoryTable.tsx:118 msgid "Edit Part Category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:180 -#: src/pages/stock/LocationDetail.tsx:233 +#: src/pages/part/CategoryDetail.tsx:186 +#: src/pages/stock/LocationDetail.tsx:227 msgid "Delete items" msgstr "" -#: src/pages/part/CategoryDetail.tsx:188 -#: src/pages/part/CategoryDetail.tsx:226 +#: src/pages/part/CategoryDetail.tsx:194 +#: src/pages/part/CategoryDetail.tsx:231 msgid "Delete Part Category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:191 +#: src/pages/part/CategoryDetail.tsx:197 msgid "Parts Action" msgstr "" -#: src/pages/part/CategoryDetail.tsx:192 +#: src/pages/part/CategoryDetail.tsx:198 msgid "Action for parts in this category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:197 +#: src/pages/part/CategoryDetail.tsx:203 msgid "Child Categories Action" msgstr "" -#: src/pages/part/CategoryDetail.tsx:198 +#: src/pages/part/CategoryDetail.tsx:204 msgid "Action for child categories in this category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:216 +#: src/pages/part/CategoryDetail.tsx:222 msgid "Category Actions" msgstr "" -#: src/pages/part/CategoryDetail.tsx:238 +#: src/pages/part/CategoryDetail.tsx:243 msgid "Category Details" msgstr "" -#: src/pages/part/PartDetail.tsx:163 -msgid "Variant of" +#: src/pages/part/PartAllocationPanel.tsx:23 +#: src/pages/stock/StockDetail.tsx:443 +#: src/tables/part/PartTable.tsx:99 +msgid "Build Order Allocations" msgstr "" -#: src/pages/part/PartDetail.tsx:170 -msgid "Revision of" -msgstr "" - -#: src/pages/part/PartDetail.tsx:177 -#: src/tables/stock/StockItemTable.tsx:58 -msgid "Revision" +#: src/pages/part/PartAllocationPanel.tsx:40 +#: src/pages/stock/StockDetail.tsx:458 +#: src/tables/part/PartTable.tsx:108 +msgid "Sales Order Allocations" msgstr "" #: src/pages/part/PartDetail.tsx:184 +msgid "Variant of" +msgstr "" + +#: src/pages/part/PartDetail.tsx:191 +msgid "Revision of" +msgstr "" + +#: src/pages/part/PartDetail.tsx:198 +#: src/tables/stock/StockItemTable.tsx:59 +msgid "Revision" +msgstr "" + +#: src/pages/part/PartDetail.tsx:205 #: src/tables/notifications/NotificationsTable.tsx:31 #: src/tables/part/PartCategoryTemplateTable.tsx:67 msgid "Category" msgstr "" -#: src/pages/part/PartDetail.tsx:190 +#: src/pages/part/PartDetail.tsx:211 msgid "Default Location" msgstr "" -#: src/pages/part/PartDetail.tsx:197 +#: src/pages/part/PartDetail.tsx:218 msgid "Category Default Location" msgstr "" -#: src/pages/part/PartDetail.tsx:204 +#: src/pages/part/PartDetail.tsx:225 #: src/tables/purchasing/ManufacturerPartParameterTable.tsx:44 msgid "Units" msgstr "" -#: src/pages/part/PartDetail.tsx:211 -#: src/tables/settings/PendingTasksTable.tsx:42 +#: src/pages/part/PartDetail.tsx:232 +#: src/tables/settings/PendingTasksTable.tsx:46 msgid "Keywords" msgstr "" -#: src/pages/part/PartDetail.tsx:218 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:186 -#: src/pages/sales/ReturnOrderDetail.tsx:165 -#: src/pages/sales/SalesOrderDetail.tsx:174 -msgid "Link" -msgstr "" - -#: src/pages/part/PartDetail.tsx:236 +#: src/pages/part/PartDetail.tsx:257 #: src/tables/bom/BomTable.tsx:320 -#: src/tables/build/BuildLineTable.tsx:155 +#: src/tables/build/BuildLineTable.tsx:286 #: src/tables/part/PartTable.tsx:288 -#: src/tables/sales/SalesOrderLineItemTable.tsx:103 +#: src/tables/sales/SalesOrderLineItemTable.tsx:111 msgid "Available Stock" msgstr "" -#: src/pages/part/PartDetail.tsx:243 +#: src/pages/part/PartDetail.tsx:264 msgid "Variant Stock" msgstr "" -#: src/pages/part/PartDetail.tsx:251 +#: src/pages/part/PartDetail.tsx:272 msgid "Minimum Stock" msgstr "" -#: src/pages/part/PartDetail.tsx:257 +#: src/pages/part/PartDetail.tsx:278 #: src/tables/bom/BomTable.tsx:237 -#: src/tables/build/BuildLineTable.tsx:117 -#: src/tables/sales/SalesOrderLineItemTable.tsx:141 +#: src/tables/build/BuildLineTable.tsx:248 +#: src/tables/sales/SalesOrderLineItemTable.tsx:149 msgid "On order" msgstr "" -#: src/pages/part/PartDetail.tsx:266 +#: src/pages/part/PartDetail.tsx:285 +msgid "Required for Orders" +msgstr "" + +#: src/pages/part/PartDetail.tsx:294 msgid "Allocated to Build Orders" msgstr "" -#: src/pages/part/PartDetail.tsx:274 +#: src/pages/part/PartDetail.tsx:305 msgid "Allocated to Sales Orders" msgstr "" -#: src/pages/part/PartDetail.tsx:281 -#: src/tables/bom/BomTable.tsx:261 -#: src/tables/bom/BomTable.tsx:293 -msgid "Can Build" -msgstr "" - -#: src/pages/part/PartDetail.tsx:288 -#: src/tables/bom/BomTable.tsx:245 -#: src/tables/part/PartTable.tsx:92 -msgid "Building" -msgstr "" - -#: src/pages/part/PartDetail.tsx:302 -#: src/pages/part/PartDetail.tsx:873 -#: src/tables/part/ParametricPartTable.tsx:228 -#: src/tables/part/PartTable.tsx:184 -msgid "Locked" -msgstr "" - -#: src/pages/part/PartDetail.tsx:308 -msgid "Template Part" -msgstr "" - #: src/pages/part/PartDetail.tsx:310 #~ msgid "Edit part" #~ msgstr "Edit part" -#: src/pages/part/PartDetail.tsx:313 -#: src/tables/bom/BomTable.tsx:315 -msgid "Assembled Part" +#: src/pages/part/PartDetail.tsx:315 +#: src/tables/bom/BomTable.tsx:261 +#: src/tables/bom/BomTable.tsx:293 +msgid "Can Build" msgstr "" -#: src/pages/part/PartDetail.tsx:318 -msgid "Component Part" +#: src/pages/part/PartDetail.tsx:322 +#: src/pages/part/PartDetail.tsx:905 +#: src/pages/stock/StockDetail.tsx:766 +#: src/tables/build/BuildOrderTestTable.tsx:220 +#: src/tables/stock/StockItemTable.tsx:334 +msgid "In Production" msgstr "" #: src/pages/part/PartDetail.tsx:322 #~ msgid "Duplicate part" #~ msgstr "Duplicate part" -#: src/pages/part/PartDetail.tsx:323 -#: src/tables/bom/BomTable.tsx:305 -msgid "Testable Part" -msgstr "" - #: src/pages/part/PartDetail.tsx:327 #~ msgid "Delete part" #~ msgstr "Delete part" -#: src/pages/part/PartDetail.tsx:329 +#: src/pages/part/PartDetail.tsx:336 +#: src/tables/part/ParametricPartTable.tsx:228 +#: src/tables/part/PartTable.tsx:184 +msgid "Locked" +msgstr "" + +#: src/pages/part/PartDetail.tsx:342 +msgid "Template Part" +msgstr "" + +#: src/pages/part/PartDetail.tsx:347 +#: src/tables/bom/BomTable.tsx:315 +msgid "Assembled Part" +msgstr "" + +#: src/pages/part/PartDetail.tsx:352 +msgid "Component Part" +msgstr "" + +#: src/pages/part/PartDetail.tsx:357 +#: src/tables/bom/BomTable.tsx:305 +msgid "Testable Part" +msgstr "" + +#: src/pages/part/PartDetail.tsx:363 #: src/tables/bom/BomTable.tsx:310 msgid "Trackable Part" msgstr "" -#: src/pages/part/PartDetail.tsx:334 +#: src/pages/part/PartDetail.tsx:368 msgid "Purchaseable Part" msgstr "" -#: src/pages/part/PartDetail.tsx:339 +#: src/pages/part/PartDetail.tsx:374 msgid "Saleable Part" msgstr "" -#: src/pages/part/PartDetail.tsx:344 +#: src/pages/part/PartDetail.tsx:379 msgid "Virtual Part" msgstr "" -#: src/pages/part/PartDetail.tsx:352 -#: src/tables/ColumnRenderers.tsx:220 +#: src/pages/part/PartDetail.tsx:393 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:215 +#: src/pages/sales/ReturnOrderDetail.tsx:185 +#: src/pages/sales/SalesOrderDetail.tsx:197 +#: src/tables/ColumnRenderers.tsx:234 msgid "Creation Date" msgstr "" -#: src/pages/part/PartDetail.tsx:357 +#: src/pages/part/PartDetail.tsx:398 msgid "Created By" msgstr "" -#: src/pages/part/PartDetail.tsx:372 +#: src/pages/part/PartDetail.tsx:413 msgid "Default Supplier" msgstr "" -#: src/pages/part/PartDetail.tsx:383 -#: src/pages/part/pricing/BomPricingPanel.tsx:79 +#: src/pages/part/PartDetail.tsx:424 +#: src/pages/part/pricing/BomPricingPanel.tsx:113 #: src/pages/part/pricing/VariantPricingPanel.tsx:95 #: src/tables/part/PartTable.tsx:161 msgid "Price Range" msgstr "" -#: src/pages/part/PartDetail.tsx:423 -#: src/pages/stock/StockDetail.tsx:135 +#: src/pages/part/PartDetail.tsx:462 +msgid "Latest Serial Number" +msgstr "" + +#: src/pages/part/PartDetail.tsx:472 +#: src/pages/stock/StockDetail.tsx:151 msgid "Last Stocktake" msgstr "" -#: src/pages/part/PartDetail.tsx:462 +#: src/pages/part/PartDetail.tsx:511 msgid "Stocktake By" msgstr "" -#: src/pages/part/PartDetail.tsx:526 -msgid "Part Details" -msgstr "" - -#: src/pages/part/PartDetail.tsx:557 +#: src/pages/part/PartDetail.tsx:611 msgid "Variants" msgstr "" -#: src/pages/part/PartDetail.tsx:564 -#: src/pages/stock/StockDetail.tsx:307 +#: src/pages/part/PartDetail.tsx:618 +#: src/pages/stock/StockDetail.tsx:430 msgid "Allocations" msgstr "" -#: src/pages/part/PartDetail.tsx:575 -#: src/pages/stock/StockDetail.tsx:318 -#: src/tables/part/PartTable.tsx:99 -msgid "Build Order Allocations" -msgstr "" - -#: src/pages/part/PartDetail.tsx:590 -#: src/pages/stock/StockDetail.tsx:333 -#: src/tables/part/PartTable.tsx:108 -msgid "Sales Order Allocations" -msgstr "" - -#: src/pages/part/PartDetail.tsx:607 +#: src/pages/part/PartDetail.tsx:625 msgid "Bill of Materials" msgstr "" -#: src/pages/part/PartDetail.tsx:623 +#: src/pages/part/PartDetail.tsx:643 msgid "Used In" msgstr "" -#: src/pages/part/PartDetail.tsx:630 +#: src/pages/part/PartDetail.tsx:650 msgid "Part Pricing" msgstr "" -#: src/pages/part/PartDetail.tsx:636 +#: src/pages/part/PartDetail.tsx:656 #: src/pages/purchasing/PurchasingIndex.tsx:42 msgid "Manufacturers" msgstr "" -#: src/pages/part/PartDetail.tsx:676 +#: src/pages/part/PartDetail.tsx:722 msgid "Scheduling" msgstr "" -#: src/pages/part/PartDetail.tsx:688 +#: src/pages/part/PartDetail.tsx:729 msgid "Test Templates" msgstr "" -#: src/pages/part/PartDetail.tsx:715 +#: src/pages/part/PartDetail.tsx:756 msgid "Related Parts" msgstr "" -#: src/pages/part/PartDetail.tsx:849 -#: src/pages/stock/StockDetail.tsx:156 -#: src/pages/stock/StockDetail.tsx:593 -#: src/tables/build/BuildLineTable.tsx:48 +#: src/pages/part/PartDetail.tsx:881 +#: src/pages/stock/StockDetail.tsx:172 +#: src/pages/stock/StockDetail.tsx:783 +#: src/tables/build/BuildLineTable.tsx:179 #: src/tables/part/PartTable.tsx:117 -#: src/tables/stock/StockItemTable.tsx:177 -#: src/tables/stock/StockItemTable.tsx:310 +#: src/tables/stock/StockItemTable.tsx:166 +#: src/tables/stock/StockItemTable.tsx:314 msgid "Available" msgstr "" -#: src/pages/part/PartDetail.tsx:855 +#: src/pages/part/PartDetail.tsx:887 msgid "No Stock" msgstr "" -#: src/pages/part/PartDetail.tsx:861 +#: src/pages/part/PartDetail.tsx:893 +#: src/tables/part/PartTestTemplateTable.tsx:106 +#: src/tables/stock/StockItemTestResultTable.tsx:383 +msgid "Required" +msgstr "" + +#: src/pages/part/PartDetail.tsx:899 #: src/tables/bom/BomTable.tsx:325 #: src/tables/part/PartTable.tsx:86 msgid "On Order" msgstr "" -#: src/pages/part/PartDetail.tsx:867 -#: src/pages/stock/StockDetail.tsx:576 -#: src/tables/build/BuildOrderTestTable.tsx:219 -#: src/tables/stock/StockItemTable.tsx:330 -msgid "In Production" -msgstr "" - -#: src/pages/part/PartDetail.tsx:892 +#: src/pages/part/PartDetail.tsx:924 msgid "Edit Part" msgstr "" -#: src/pages/part/PartDetail.tsx:927 +#: src/pages/part/PartDetail.tsx:959 #: src/tables/part/PartTable.tsx:331 -#: src/tables/part/PartTable.tsx:342 +#: src/tables/part/PartTable.tsx:343 msgid "Add Part" msgstr "" -#: src/pages/part/PartDetail.tsx:941 +#: src/pages/part/PartDetail.tsx:973 msgid "Delete Part" msgstr "" -#: src/pages/part/PartDetail.tsx:950 +#: src/pages/part/PartDetail.tsx:982 msgid "Deleting this part cannot be reversed" msgstr "" -#: src/pages/part/PartDetail.tsx:999 -#: src/pages/stock/LocationDetail.tsx:324 -#: src/tables/stock/StockItemTable.tsx:444 +#: src/pages/part/PartDetail.tsx:1021 +#: src/pages/stock/LocationDetail.tsx:310 +#: src/tables/stock/StockItemTable.tsx:449 msgid "Stock Actions" msgstr "" -#: src/pages/part/PartDetail.tsx:1007 +#: src/pages/part/PartDetail.tsx:1029 msgid "Count part stock" msgstr "" -#: src/pages/part/PartDetail.tsx:1018 +#: src/pages/part/PartDetail.tsx:1040 msgid "Transfer part stock" msgstr "" -#: src/pages/part/PartDetail.tsx:1027 +#: src/pages/part/PartDetail.tsx:1049 msgid "Part Actions" msgstr "" -#: src/pages/part/PartDetail.tsx:1087 +#: src/pages/part/PartDetail.tsx:1113 msgid "Select Part Revision" msgstr "" @@ -4862,113 +5621,214 @@ msgstr "" #~ msgid "Categories" #~ msgstr "Categories" -#: src/pages/part/PartPricingPanel.tsx:68 +#: src/pages/part/PartPricingPanel.tsx:72 msgid "No pricing data found for this part." msgstr "" -#: src/pages/part/PartPricingPanel.tsx:82 -#: src/pages/part/pricing/PricingOverviewPanel.tsx:190 +#: src/pages/part/PartPricingPanel.tsx:87 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:293 msgid "Pricing Overview" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:88 +#: src/pages/part/PartPricingPanel.tsx:93 msgid "Purchase History" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:102 -#: src/pages/part/pricing/PricingOverviewPanel.tsx:100 +#: src/pages/part/PartPricingPanel.tsx:107 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:174 msgid "Internal Pricing" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:120 -#: src/pages/part/pricing/PricingOverviewPanel.tsx:107 +#: src/pages/part/PartPricingPanel.tsx:125 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:181 msgid "BOM Pricing" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:127 -#: src/pages/part/pricing/PricingOverviewPanel.tsx:128 +#: src/pages/part/PartPricingPanel.tsx:132 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:202 msgid "Variant Pricing" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:139 -#: src/pages/part/pricing/PricingOverviewPanel.tsx:135 +#: src/pages/part/PartPricingPanel.tsx:144 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:209 msgid "Sale Pricing" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:146 -#: src/pages/part/pricing/PricingOverviewPanel.tsx:142 +#: src/pages/part/PartPricingPanel.tsx:151 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:216 msgid "Sale History" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:58 -#: src/pages/part/pricing/BomPricingPanel.tsx:138 -#: src/tables/ColumnRenderers.tsx:262 +#: src/pages/part/PartSchedulingDetail.tsx:47 +#: src/pages/part/PartSchedulingDetail.tsx:299 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:156 +msgid "Maximum" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:50 +#: src/pages/part/PartSchedulingDetail.tsx:289 +msgid "Scheduled" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:53 +#: src/pages/part/PartSchedulingDetail.tsx:294 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:144 +msgid "Minimum" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:68 +msgid "Order" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:92 +msgid "Quantity is speculative" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:101 +msgid "No date available for provided quantity" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:105 +msgid "Date is in the past" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:112 +msgid "Scheduled Quantity" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:240 +msgid "No information available" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:241 +msgid "There is no scheduling information available for the selected part" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:276 +msgid "Expected Quantity" +msgstr "" + +#: src/pages/part/PartStocktakeDetail.tsx:63 +#: src/tables/FilterSelectDrawer.tsx:167 +#: src/tables/FilterSelectDrawer.tsx:174 +#: src/tables/build/BuildOrderTestTable.tsx:135 +#: src/tables/purchasing/ManufacturerPartParameterTable.tsx:38 +#: src/tables/stock/StockItemTestResultTable.tsx:192 +msgid "Value" +msgstr "値" + +#: src/pages/part/PartStocktakeDetail.tsx:82 +msgid "Edit Stocktake Entry" +msgstr "" + +#: src/pages/part/PartStocktakeDetail.tsx:90 +msgid "Delete Stocktake Entry" +msgstr "" + +#: src/pages/part/PartStocktakeDetail.tsx:96 +#: src/tables/settings/StocktakeReportTable.tsx:69 +msgid "Generate Stocktake Report" +msgstr "" + +#: src/pages/part/PartStocktakeDetail.tsx:101 +#: src/tables/settings/StocktakeReportTable.tsx:71 +msgid "Stocktake report scheduled" +msgstr "" + +#: src/pages/part/PartStocktakeDetail.tsx:119 +#: src/pages/part/PartStocktakeDetail.tsx:235 +#: src/pages/stock/StockDetail.tsx:303 +#: src/tables/stock/StockItemTable.tsx:249 +msgid "Stock Value" +msgstr "" + +#: src/pages/part/PartStocktakeDetail.tsx:139 +#: src/tables/settings/StocktakeReportTable.tsx:77 +msgid "New Stocktake Report" +msgstr "" + +#: src/pages/part/PartStocktakeDetail.tsx:258 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:295 +msgid "Minimum Value" +msgstr "" + +#: src/pages/part/PartStocktakeDetail.tsx:264 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:296 +msgid "Maximum Value" +msgstr "" + +#: src/pages/part/pricing/BomPricingPanel.tsx:87 +#: src/pages/part/pricing/BomPricingPanel.tsx:177 +#: src/tables/ColumnRenderers.tsx:276 #: src/tables/bom/BomTable.tsx:185 #: src/tables/general/ExtraLineItemTable.tsx:64 -#: src/tables/purchasing/PurchaseOrderTable.tsx:112 -#: src/tables/sales/ReturnOrderTable.tsx:104 -#: src/tables/sales/SalesOrderLineItemTable.tsx:89 -#: src/tables/sales/SalesOrderTable.tsx:136 +#: src/tables/purchasing/PurchaseOrderTable.tsx:113 +#: src/tables/sales/ReturnOrderTable.tsx:127 +#: src/tables/sales/SalesOrderLineItemTable.tsx:97 +#: src/tables/sales/SalesOrderTable.tsx:149 msgid "Total Price" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:78 -#: src/pages/part/pricing/BomPricingPanel.tsx:102 +#: src/pages/part/pricing/BomPricingPanel.tsx:112 +#: src/pages/part/pricing/BomPricingPanel.tsx:141 #: src/tables/bom/UsedInTable.tsx:49 +#: src/tables/build/BuildLineTable.tsx:296 #: src/tables/part/PartTable.tsx:202 msgid "Component" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:81 -#: src/pages/part/pricing/VariantPricingPanel.tsx:37 -#: src/pages/part/pricing/VariantPricingPanel.tsx:97 -msgid "Minimum Price" -msgstr "" - -#: src/pages/part/pricing/BomPricingPanel.tsx:82 -#: src/pages/part/pricing/VariantPricingPanel.tsx:45 -#: src/pages/part/pricing/VariantPricingPanel.tsx:98 -msgid "Maximum Price" -msgstr "" - #: src/pages/part/pricing/BomPricingPanel.tsx:112 #~ msgid "Minimum Total Price" #~ msgstr "Minimum Total Price" +#: src/pages/part/pricing/BomPricingPanel.tsx:115 +#: src/pages/part/pricing/VariantPricingPanel.tsx:37 +#: src/pages/part/pricing/VariantPricingPanel.tsx:97 +msgid "Minimum Price" +msgstr "" + +#: src/pages/part/pricing/BomPricingPanel.tsx:116 +#: src/pages/part/pricing/VariantPricingPanel.tsx:45 +#: src/pages/part/pricing/VariantPricingPanel.tsx:98 +msgid "Maximum Price" +msgstr "" + #: src/pages/part/pricing/BomPricingPanel.tsx:117 #~ msgid "Maximum Total Price" #~ msgstr "Maximum Total Price" -#: src/pages/part/pricing/BomPricingPanel.tsx:129 -#: src/pages/part/pricing/PriceBreakPanel.tsx:172 -#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:67 -#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:128 -#: src/pages/part/pricing/SupplierPricingPanel.tsx:62 +#: src/pages/part/pricing/BomPricingPanel.tsx:168 +#: src/pages/part/pricing/PriceBreakPanel.tsx:173 +#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:70 +#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:125 +#: src/pages/part/pricing/SupplierPricingPanel.tsx:66 +#: src/pages/stock/StockDetail.tsx:291 #: src/tables/bom/BomTable.tsx:176 #: src/tables/general/ExtraLineItemTable.tsx:56 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:223 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:225 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:92 +#: src/tables/stock/StockItemTable.tsx:239 msgid "Unit Price" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:154 +#: src/pages/part/pricing/BomPricingPanel.tsx:193 #: src/pages/part/pricing/VariantPricingPanel.tsx:53 -#: src/tables/purchasing/SupplierPartTable.tsx:148 +#: src/tables/purchasing/SupplierPartTable.tsx:150 msgid "Updated" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:219 +#: src/pages/part/pricing/BomPricingPanel.tsx:258 msgid "Pie Chart" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:220 +#: src/pages/part/pricing/BomPricingPanel.tsx:259 msgid "Bar Chart" msgstr "" #: src/pages/part/pricing/PriceBreakPanel.tsx:58 -#: src/pages/part/pricing/PriceBreakPanel.tsx:110 +#: src/pages/part/pricing/PriceBreakPanel.tsx:111 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:142 -#: src/tables/purchasing/SupplierPriceBreakTable.tsx:168 +#: src/tables/purchasing/SupplierPriceBreakTable.tsx:169 msgid "Add Price Break" msgstr "" @@ -4986,46 +5846,70 @@ msgstr "" msgid "Price Break" msgstr "" -#: src/pages/part/pricing/PriceBreakPanel.tsx:170 +#: src/pages/part/pricing/PriceBreakPanel.tsx:171 msgid "Price" msgstr "" -#: src/pages/part/pricing/PricingOverviewPanel.tsx:51 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:68 +msgid "Refreshing pricing data" +msgstr "" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:88 +msgid "Pricing data updated" +msgstr "" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:95 +msgid "Failed to update pricing data" +msgstr "" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:104 +msgid "Edit Pricing" +msgstr "" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:125 msgid "Pricing Category" msgstr "" -#: src/pages/part/pricing/PricingOverviewPanel.tsx:70 -msgid "Minimum" -msgstr "" - -#: src/pages/part/pricing/PricingOverviewPanel.tsx:82 -msgid "Maximum" -msgstr "" - -#: src/pages/part/pricing/PricingOverviewPanel.tsx:114 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:188 msgid "Purchase Pricing" msgstr "" -#: src/pages/part/pricing/PricingOverviewPanel.tsx:149 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:223 msgid "Override Pricing" msgstr "" -#: src/pages/part/pricing/PricingOverviewPanel.tsx:156 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:230 msgid "Overall Pricing" msgstr "" -#: src/pages/part/pricing/PricingOverviewPanel.tsx:175 -#: src/pages/stock/StockDetail.tsx:129 -#: src/tables/stock/StockItemTable.tsx:240 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:249 +#: src/pages/stock/StockDetail.tsx:145 +#: src/tables/stock/StockItemTable.tsx:275 msgid "Last Updated" msgstr "" -#: src/pages/part/pricing/PricingOverviewPanel.tsx:192 -msgid "Minimum Value" +#: src/pages/part/pricing/PricingOverviewPanel.tsx:253 +msgid "Pricing Not Set" msgstr "" -#: src/pages/part/pricing/PricingOverviewPanel.tsx:193 -msgid "Maximum Value" +#: src/pages/part/pricing/PricingOverviewPanel.tsx:254 +msgid "Pricing data has not been calculated for this part" +msgstr "" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:258 +msgid "Pricing Actions" +msgstr "" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:261 +msgid "Refresh" +msgstr "" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:262 +msgid "Refresh pricing data" +msgstr "" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:277 +msgid "Edit pricing data" msgstr "" #: src/pages/part/pricing/PricingPanel.tsx:24 @@ -5044,28 +5928,20 @@ msgstr "" msgid "Loading pricing data" msgstr "" -#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:40 -#: src/pages/part/pricing/SaleHistoryPanel.tsx:36 -#: src/tables/ColumnRenderers.tsx:201 -#: src/tables/build/BuildOrderTestTable.tsx:150 -#: src/tables/plugin/PluginListTable.tsx:139 -msgid "Date" -msgstr "" - #: src/pages/part/pricing/PurchaseHistoryPanel.tsx:47 msgid "Purchase Price" msgstr "" -#: src/pages/part/pricing/SaleHistoryPanel.tsx:22 -msgid "Sale Order" -msgstr "" +#: src/pages/part/pricing/SaleHistoryPanel.tsx:24 +#~ msgid "Sale Order" +#~ msgstr "Sale Order" -#: src/pages/part/pricing/SaleHistoryPanel.tsx:42 -#: src/pages/part/pricing/SaleHistoryPanel.tsx:92 +#: src/pages/part/pricing/SaleHistoryPanel.tsx:44 +#: src/pages/part/pricing/SaleHistoryPanel.tsx:87 msgid "Sale Price" msgstr "" -#: src/pages/part/pricing/SupplierPricingPanel.tsx:65 +#: src/pages/part/pricing/SupplierPricingPanel.tsx:69 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:83 msgid "Supplier Price" msgstr "" @@ -5075,23 +5951,23 @@ msgstr "" msgid "Variant Part" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:93 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:87 msgid "Edit Purchase Order" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:102 -#: src/tables/purchasing/PurchaseOrderTable.tsx:128 -#: src/tables/purchasing/PurchaseOrderTable.tsx:140 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:96 +#: src/tables/purchasing/PurchaseOrderTable.tsx:129 +#: src/tables/purchasing/PurchaseOrderTable.tsx:142 msgid "Add Purchase Order" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:127 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:121 msgid "Supplier Reference" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:158 -#: src/pages/sales/ReturnOrderDetail.tsx:137 -#: src/pages/sales/SalesOrderDetail.tsx:137 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:152 +#: src/pages/sales/ReturnOrderDetail.tsx:129 +#: src/pages/sales/SalesOrderDetail.tsx:132 msgid "Completed Line Items" msgstr "" @@ -5101,91 +5977,112 @@ msgstr "" #~ msgid "Order Currency," #~ msgstr "Order Currency," -#: src/pages/purchasing/PurchaseOrderDetail.tsx:165 -#: src/pages/sales/ReturnOrderDetail.tsx:144 -#: src/pages/sales/SalesOrderDetail.tsx:153 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:161 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:231 +msgid "Destination" +msgstr "" + +#: src/pages/purchasing/PurchaseOrderDetail.tsx:167 +#: src/pages/sales/ReturnOrderDetail.tsx:136 +#: src/pages/sales/SalesOrderDetail.tsx:148 msgid "Order Currency" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:172 -#: src/pages/sales/ReturnOrderDetail.tsx:151 -#: src/pages/sales/SalesOrderDetail.tsx:160 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:173 +#: src/pages/sales/ReturnOrderDetail.tsx:143 +#: src/pages/sales/SalesOrderDetail.tsx:155 msgid "Total Cost" msgstr "" #: src/pages/purchasing/PurchaseOrderDetail.tsx:207 -#: src/pages/sales/ReturnOrderDetail.tsx:186 -#: src/pages/sales/SalesOrderDetail.tsx:195 -msgid "Created On" +#: src/pages/sales/ReturnOrderDetail.tsx:183 +#: src/pages/sales/SalesOrderDetail.tsx:191 +#~ msgid "Created On" +#~ msgstr "Created On" + +#: src/pages/purchasing/PurchaseOrderDetail.tsx:221 +#: src/pages/sales/ReturnOrderDetail.tsx:193 +#: src/pages/sales/SalesOrderDetail.tsx:204 +msgid "Issue Date" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:252 -#: src/pages/sales/ReturnOrderDetail.tsx:231 -#: src/pages/sales/SalesOrderDetail.tsx:266 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:237 +#: src/pages/sales/ReturnOrderDetail.tsx:209 +#: src/pages/sales/SalesOrderDetail.tsx:219 +#: src/tables/build/BuildOrderTable.tsx:98 +#: src/tables/part/PartPurchaseOrdersTable.tsx:105 +#: src/tables/sales/ReturnOrderTable.tsx:122 +msgid "Completion Date" +msgstr "" + +#: src/pages/purchasing/PurchaseOrderDetail.tsx:276 +#: src/pages/sales/ReturnOrderDetail.tsx:248 +#: src/pages/sales/SalesOrderDetail.tsx:288 msgid "Order Details" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:280 -#: src/pages/sales/ReturnOrderDetail.tsx:258 -#: src/pages/sales/SalesOrderDetail.tsx:297 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:304 +#: src/pages/sales/ReturnOrderDetail.tsx:276 +#: src/pages/sales/SalesOrderDetail.tsx:319 msgid "Extra Line Items" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:337 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:346 msgid "Issue Purchase Order" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:345 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:354 msgid "Cancel Purchase Order" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:353 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:362 msgid "Hold Purchase Order" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:361 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:370 msgid "Complete Purchase Order" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:427 -#: src/pages/sales/ReturnOrderDetail.tsx:428 -#: src/pages/sales/SalesOrderDetail.tsx:468 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:425 +#: src/pages/sales/ReturnOrderDetail.tsx:424 +#: src/pages/sales/SalesOrderDetail.tsx:464 msgid "Order Actions" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:101 -#: src/pages/sales/SalesOrderDetail.tsx:107 -#: src/tables/sales/SalesOrderTable.tsx:124 +#: src/pages/sales/ReturnOrderDetail.tsx:92 +#: src/pages/sales/SalesOrderDetail.tsx:101 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:109 +#: src/tables/sales/SalesOrderTable.tsx:137 msgid "Customer Reference" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:315 +#: src/pages/sales/ReturnOrderDetail.tsx:322 msgid "Edit Return Order" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:324 -#: src/tables/sales/ReturnOrderTable.tsx:119 -#: src/tables/sales/ReturnOrderTable.tsx:128 +#: src/pages/sales/ReturnOrderDetail.tsx:331 +#: src/tables/sales/ReturnOrderTable.tsx:142 +#: src/tables/sales/ReturnOrderTable.tsx:152 msgid "Add Return Order" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:336 +#: src/pages/sales/ReturnOrderDetail.tsx:343 msgid "Issue Return Order" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:344 +#: src/pages/sales/ReturnOrderDetail.tsx:349 +#~ msgid "Order canceled" +#~ msgstr "Order canceled" + +#: src/pages/sales/ReturnOrderDetail.tsx:351 msgid "Cancel Return Order" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:347 -msgid "Order canceled" -msgstr "" - -#: src/pages/sales/ReturnOrderDetail.tsx:352 +#: src/pages/sales/ReturnOrderDetail.tsx:359 msgid "Hold Return Order" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:360 +#: src/pages/sales/ReturnOrderDetail.tsx:367 msgid "Complete Return Order" msgstr "" @@ -5193,117 +6090,193 @@ msgstr "" msgid "Customers" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:145 +#: src/pages/sales/SalesOrderDetail.tsx:140 msgid "Completed Shipments" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:243 -msgid "Edit Sales Order" -msgstr "" - -#: src/pages/sales/SalesOrderDetail.tsx:252 -#: src/tables/sales/SalesOrderTable.tsx:84 -#: src/tables/sales/SalesOrderTable.tsx:96 -msgid "Add Sales Order" -msgstr "" - #: src/pages/sales/SalesOrderDetail.tsx:256 #~ msgid "Pending Shipments" #~ msgstr "Pending Shipments" -#: src/pages/sales/SalesOrderDetail.tsx:313 +#: src/pages/sales/SalesOrderDetail.tsx:261 +msgid "Edit Sales Order" +msgstr "" + +#: src/pages/sales/SalesOrderDetail.tsx:274 +#: src/tables/sales/SalesOrderTable.tsx:96 +#: src/tables/sales/SalesOrderTable.tsx:109 +msgid "Add Sales Order" +msgstr "" + +#: src/pages/sales/SalesOrderDetail.tsx:335 msgid "Shipments" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:369 +#: src/pages/sales/SalesOrderDetail.tsx:376 msgid "Issue Sales Order" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:377 +#: src/pages/sales/SalesOrderDetail.tsx:384 msgid "Cancel Sales Order" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:385 +#: src/pages/sales/SalesOrderDetail.tsx:392 msgid "Hold Sales Order" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:393 +#: src/pages/sales/SalesOrderDetail.tsx:400 msgid "Complete Sales Order" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:432 +#: src/pages/sales/SalesOrderDetail.tsx:439 msgid "Ship Order" msgstr "" -#: src/pages/stock/LocationDetail.tsx:117 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:117 +#: src/tables/sales/SalesOrderShipmentTable.tsx:96 +msgid "Shipment Reference" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:124 +msgid "Allocated Items" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:133 +msgid "Tracking Number" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:141 +msgid "Invoice Number" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:149 +#: src/tables/ColumnRenderers.tsx:242 +#: src/tables/sales/SalesOrderAllocationTable.tsx:142 +#: src/tables/sales/SalesOrderShipmentTable.tsx:115 +msgid "Shipment Date" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:157 +#: src/tables/sales/SalesOrderShipmentTable.tsx:119 +msgid "Delivery Date" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:204 +msgid "Shipment Details" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:210 +msgid "Assigned Items" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:241 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:317 +#: src/tables/sales/SalesOrderShipmentTable.tsx:75 +msgid "Edit Shipment" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:248 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:322 +#: src/tables/sales/SalesOrderShipmentTable.tsx:67 +msgid "Cancel Shipment" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:261 +#: src/tables/sales/SalesOrderShipmentTable.tsx:83 +#: src/tables/sales/SalesOrderShipmentTable.tsx:151 +msgid "Complete Shipment" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:276 +#: src/tables/part/PartPurchaseOrdersTable.tsx:121 +msgid "Pending" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:277 +#: src/tables/sales/SalesOrderAllocationTable.tsx:148 +#: src/tables/sales/SalesOrderShipmentTable.tsx:108 +#: src/tables/sales/SalesOrderShipmentTable.tsx:197 +msgid "Shipped" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:279 +#: src/tables/sales/SalesOrderShipmentTable.tsx:202 +msgid "Delivered" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:293 +msgid "Send Shipment" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:312 +msgid "Shipment Actions" +msgstr "" + +#: src/pages/stock/LocationDetail.tsx:111 msgid "Parent Location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:135 +#: src/pages/stock/LocationDetail.tsx:129 msgid "Sublocations" msgstr "" -#: src/pages/stock/LocationDetail.tsx:147 +#: src/pages/stock/LocationDetail.tsx:141 #: src/tables/stock/StockLocationTable.tsx:54 msgid "External" msgstr "" -#: src/pages/stock/LocationDetail.tsx:153 +#: src/pages/stock/LocationDetail.tsx:147 #: src/tables/stock/StockLocationTable.tsx:63 msgid "Location Type" msgstr "" -#: src/pages/stock/LocationDetail.tsx:164 +#: src/pages/stock/LocationDetail.tsx:158 msgid "Top level stock location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:175 +#: src/pages/stock/LocationDetail.tsx:169 msgid "Location Details" msgstr "" -#: src/pages/stock/LocationDetail.tsx:201 +#: src/pages/stock/LocationDetail.tsx:195 msgid "Default Parts" msgstr "" -#: src/pages/stock/LocationDetail.tsx:220 -#: src/pages/stock/LocationDetail.tsx:351 +#: src/pages/stock/LocationDetail.tsx:214 +#: src/pages/stock/LocationDetail.tsx:336 #: src/tables/stock/StockLocationTable.tsx:123 msgid "Edit Stock Location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:241 -#: src/pages/stock/LocationDetail.tsx:356 +#: src/pages/stock/LocationDetail.tsx:235 +#: src/pages/stock/LocationDetail.tsx:341 msgid "Delete Stock Location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:244 +#: src/pages/stock/LocationDetail.tsx:238 msgid "Items Action" msgstr "" -#: src/pages/stock/LocationDetail.tsx:245 +#: src/pages/stock/LocationDetail.tsx:239 msgid "Action for stock items in this location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:250 +#: src/pages/stock/LocationDetail.tsx:244 msgid "Child Locations Action" msgstr "" -#: src/pages/stock/LocationDetail.tsx:251 +#: src/pages/stock/LocationDetail.tsx:245 msgid "Action for child locations in this location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:346 +#: src/pages/stock/LocationDetail.tsx:332 msgid "Location Actions" msgstr "" -#: src/pages/stock/StockDetail.tsx:108 +#: src/pages/stock/StockDetail.tsx:116 msgid "Base Part" msgstr "" -#: src/pages/stock/StockDetail.tsx:115 -msgid "Stock Status" -msgstr "" - #: src/pages/stock/StockDetail.tsx:155 #~ msgid "Link custom barcode to stock item" #~ msgstr "Link custom barcode to stock item" @@ -5312,113 +6285,179 @@ msgstr "" #~ msgid "Unlink custom barcode from stock item" #~ msgstr "Unlink custom barcode from stock item" -#: src/pages/stock/StockDetail.tsx:188 -msgid "Installed In" -msgstr "" - -#: src/pages/stock/StockDetail.tsx:204 -msgid "Consumed By" +#: src/pages/stock/StockDetail.tsx:178 +msgid "Allocated to Orders" msgstr "" #: src/pages/stock/StockDetail.tsx:205 #~ msgid "Edit stock item" #~ msgstr "Edit stock item" -#: src/pages/stock/StockDetail.tsx:213 -#: src/tables/build/BuildAllocatedStockTable.tsx:64 -#: src/tables/stock/StockTrackingTable.tsx:96 -msgid "Build Order" +#: src/pages/stock/StockDetail.tsx:209 +msgid "Installed In" msgstr "" #: src/pages/stock/StockDetail.tsx:217 #~ msgid "Delete stock item" #~ msgstr "Delete stock item" -#: src/pages/stock/StockDetail.tsx:291 +#: src/pages/stock/StockDetail.tsx:226 +msgid "Parent Item" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:230 +msgid "Parent stock item" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:236 +msgid "Consumed By" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:245 +#: src/tables/build/BuildAllocatedStockTable.tsx:77 +#: src/tables/stock/StockTrackingTable.tsx:100 +msgid "Build Order" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:283 +#: src/tables/stock/StockItemTable.tsx:270 +msgid "Expiry Date" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:414 msgid "Stock Details" msgstr "" -#: src/pages/stock/StockDetail.tsx:297 +#: src/pages/stock/StockDetail.tsx:420 msgid "Stock Tracking" msgstr "" -#: src/pages/stock/StockDetail.tsx:350 -msgid "Test Data" -msgstr "" - -#: src/pages/stock/StockDetail.tsx:364 -msgid "Installed Items" -msgstr "" - -#: src/pages/stock/StockDetail.tsx:371 -msgid "Child Items" -msgstr "" - -#: src/pages/stock/StockDetail.tsx:425 -msgid "Edit Stock Item" -msgstr "在庫商品を編集" - #: src/pages/stock/StockDetail.tsx:433 #~ msgid "Duplicate stock item" #~ msgstr "Duplicate stock item" -#: src/pages/stock/StockDetail.tsx:452 +#: src/pages/stock/StockDetail.tsx:475 +msgid "Test Data" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:489 +msgid "Installed Items" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:496 +msgid "Child Items" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:545 +msgid "Edit Stock Item" +msgstr "在庫商品を編集" + +#: src/pages/stock/StockDetail.tsx:572 msgid "Delete Stock Item" msgstr "" -#: src/pages/stock/StockDetail.tsx:504 +#: src/pages/stock/StockDetail.tsx:604 +msgid "Serialize Stock Item" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:617 +msgid "Stock item serialized" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:623 +msgid "Return Stock Item" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:626 +msgid "Return this item into stock. This will remove the customer assignment." +msgstr "" + +#: src/pages/stock/StockDetail.tsx:636 +msgid "Item returned to stock" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:666 msgid "Stock Operations" msgstr "" -#: src/pages/stock/StockDetail.tsx:509 +#: src/pages/stock/StockDetail.tsx:671 msgid "Count stock" msgstr "" -#: src/pages/stock/StockDetail.tsx:519 -#: src/tables/stock/StockItemTable.tsx:449 -msgid "Add stock" +#: src/pages/stock/StockDetail.tsx:671 +#: src/tables/stock/StockItemTable.tsx:452 +#~ msgid "Add stock" +#~ msgstr "Add stock" + +#: src/pages/stock/StockDetail.tsx:680 +#: src/tables/stock/StockItemTable.tsx:461 +#~ msgid "Remove stock" +#~ msgstr "Remove stock" + +#: src/pages/stock/StockDetail.tsx:698 +#: src/tables/stock/StockItemTable.tsx:481 +#~ msgid "Transfer stock" +#~ msgstr "Transfer stock" + +#: src/pages/stock/StockDetail.tsx:699 +msgid "Serialize" msgstr "" -#: src/pages/stock/StockDetail.tsx:527 -#: src/tables/stock/StockItemTable.tsx:458 -msgid "Remove stock" +#: src/pages/stock/StockDetail.tsx:700 +msgid "Serialize stock" msgstr "" -#: src/pages/stock/StockDetail.tsx:534 +#: src/pages/stock/StockDetail.tsx:711 msgid "Transfer" msgstr "" -#: src/pages/stock/StockDetail.tsx:535 -#: src/tables/stock/StockItemTable.tsx:478 -msgid "Transfer stock" +#: src/pages/stock/StockDetail.tsx:722 +msgid "Return" msgstr "" -#: src/pages/stock/StockDetail.tsx:546 +#: src/pages/stock/StockDetail.tsx:723 +msgid "Return from customer" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:738 msgid "Stock Item Actions" msgstr "" -#: src/tables/ColumnRenderers.tsx:30 +#: src/pages/stock/StockDetail.tsx:808 +msgid "Stale" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:814 +msgid "Expired" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:820 +msgid "Unavailable" +msgstr "" + +#: src/tables/ColumnRenderers.tsx:36 msgid "Part is not active" msgstr "" -#: src/tables/ColumnRenderers.tsx:35 -msgid "Part is locked" +#: src/tables/ColumnRenderers.tsx:41 +#: src/tables/bom/BomTable.tsx:542 +#: src/tables/part/PartParameterTable.tsx:193 +#: src/tables/part/PartTestTemplateTable.tsx:253 +msgid "Part is Locked" msgstr "" -#: src/tables/ColumnRenderers.tsx:57 +#: src/tables/ColumnRenderers.tsx:41 +#~ msgid "Part is locked" +#~ msgstr "Part is locked" + +#: src/tables/ColumnRenderers.tsx:46 +msgid "You are subscribed to notifications for this part" +msgstr "" + +#: src/tables/ColumnRenderers.tsx:68 msgid "No location set" msgstr "" -#: src/tables/ColumnRenderers.tsx:228 -#: src/tables/sales/SalesOrderShipmentTable.tsx:79 -msgid "Shipment Date" -msgstr "" - -#: src/tables/ColumnRenderers.tsx:248 -#: src/tables/settings/CurrencyTable.tsx:23 -msgid "Currency" -msgstr "" - #: src/tables/ColumnSelect.tsx:16 #: src/tables/ColumnSelect.tsx:23 msgid "Select Columns" @@ -5452,91 +6491,116 @@ msgstr "" msgid "Download Data" msgstr "" -#: src/tables/Filter.tsx:89 -#: src/tables/build/BuildOrderTable.tsx:135 +#: src/tables/Filter.tsx:101 msgid "Assigned to me" msgstr "" -#: src/tables/Filter.tsx:90 -#: src/tables/build/BuildOrderTable.tsx:136 +#: src/tables/Filter.tsx:102 msgid "Show orders assigned to me" msgstr "" -#: src/tables/Filter.tsx:97 +#: src/tables/Filter.tsx:106 +#~ msgid "Show overdue orders" +#~ msgstr "Show overdue orders" + +#: src/tables/Filter.tsx:109 +#: src/tables/build/BuildOrderTable.tsx:120 +#: src/tables/sales/SalesOrderAllocationTable.tsx:59 msgid "Outstanding" msgstr "" -#: src/tables/Filter.tsx:98 -msgid "Show outstanding orders" +#: src/tables/Filter.tsx:110 +msgid "Show outstanding items" msgstr "" -#: src/tables/Filter.tsx:105 -#: src/tables/build/BuildOrderTable.tsx:128 +#: src/tables/Filter.tsx:117 msgid "Overdue" msgstr "" -#: src/tables/Filter.tsx:106 -msgid "Show overdue orders" +#: src/tables/Filter.tsx:118 +msgid "Show overdue items" msgstr "" -#: src/tables/FilterSelectDrawer.tsx:51 +#: src/tables/Filter.tsx:125 +msgid "Minimum Date" +msgstr "" + +#: src/tables/Filter.tsx:126 +msgid "Show items after this date" +msgstr "" + +#: src/tables/Filter.tsx:134 +msgid "Maximum Date" +msgstr "" + +#: src/tables/Filter.tsx:135 +msgid "Show items before this date" +msgstr "" + +#: src/tables/Filter.tsx:144 +msgid "Has Project Code" +msgstr "" + +#: src/tables/Filter.tsx:145 +msgid "Show orders with an assigned project code" +msgstr "" + +#: src/tables/FilterSelectDrawer.tsx:55 msgid "Remove filter" msgstr "フィルタを削除" -#: src/tables/FilterSelectDrawer.tsx:130 +#: src/tables/FilterSelectDrawer.tsx:159 msgid "Select filter" msgstr "フィルタを選択" -#: src/tables/FilterSelectDrawer.tsx:131 +#: src/tables/FilterSelectDrawer.tsx:160 msgid "Filter" msgstr "フィルタ" -#: src/tables/FilterSelectDrawer.tsx:138 -#: src/tables/build/BuildOrderTestTable.tsx:134 -#: src/tables/purchasing/ManufacturerPartParameterTable.tsx:38 -#: src/tables/stock/StockItemTestResultTable.tsx:186 -msgid "Value" -msgstr "値" +#: src/tables/FilterSelectDrawer.tsx:168 +msgid "Select date value" +msgstr "" -#: src/tables/FilterSelectDrawer.tsx:140 +#: src/tables/FilterSelectDrawer.tsx:176 msgid "Select filter value" msgstr "フィルタの値を選択" -#: src/tables/FilterSelectDrawer.tsx:183 +#: src/tables/FilterSelectDrawer.tsx:219 +#: src/tables/InvenTreeTableHeader.tsx:214 msgid "Table Filters" msgstr "" -#: src/tables/FilterSelectDrawer.tsx:215 +#: src/tables/FilterSelectDrawer.tsx:251 msgid "Add Filter" msgstr "フィルタを追加" -#: src/tables/FilterSelectDrawer.tsx:224 +#: src/tables/FilterSelectDrawer.tsx:260 msgid "Clear Filters" msgstr "" -#: src/tables/InvenTreeTable.tsx:123 -#: src/tables/InvenTreeTable.tsx:431 -#: src/tables/InvenTreeTable.tsx:455 +#: src/tables/InvenTreeTable.tsx:96 +#: src/tables/InvenTreeTable.tsx:417 +#: src/tables/InvenTreeTable.tsx:441 msgid "No records found" msgstr "" -#: src/tables/InvenTreeTable.tsx:466 +#: src/tables/InvenTreeTable.tsx:452 msgid "Server returned incorrect data type" msgstr "" -#: src/tables/InvenTreeTable.tsx:474 +#: src/tables/InvenTreeTable.tsx:460 msgid "Bad request" msgstr "" -#: src/tables/InvenTreeTable.tsx:477 +#: src/tables/InvenTreeTable.tsx:463 msgid "Unauthorized" msgstr "" -#: src/tables/InvenTreeTable.tsx:480 +#: src/tables/InvenTreeTable.tsx:466 msgid "Forbidden" msgstr "" -#: src/tables/InvenTreeTable.tsx:483 +#: src/tables/InvenTreeTable.tsx:469 msgid "Not found" msgstr "" @@ -5544,18 +6608,6 @@ msgstr "" #~ msgid "Are you sure you want to delete the selected records?" #~ msgstr "Are you sure you want to delete the selected records?" -#: src/tables/InvenTreeTable.tsx:525 -msgid "Delete Selected Items" -msgstr "" - -#: src/tables/InvenTreeTable.tsx:529 -msgid "Are you sure you want to delete the selected items?" -msgstr "" - -#: src/tables/InvenTreeTable.tsx:531 -msgid "This action cannot be undone!" -msgstr "" - #: src/tables/InvenTreeTable.tsx:535 #~ msgid "Deleted records" #~ msgstr "Deleted records" @@ -5568,31 +6620,56 @@ msgstr "" #~ msgid "Failed to delete records" #~ msgstr "Failed to delete records" +#: src/tables/InvenTreeTable.tsx:552 +#~ msgid "This action cannot be undone!" +#~ msgstr "This action cannot be undone!" + #: src/tables/InvenTreeTable.tsx:594 #: src/tables/InvenTreeTable.tsx:595 #~ msgid "Print actions" #~ msgstr "Print actions" -#: src/tables/InvenTreeTable.tsx:618 -#: src/tables/InvenTreeTable.tsx:619 -msgid "Barcode actions" +#: src/tables/InvenTreeTable.tsx:655 +#: src/tables/InvenTreeTable.tsx:656 +#~ msgid "Barcode actions" +#~ msgstr "Barcode actions" + +#: src/tables/InvenTreeTable.tsx:712 +#~ msgid "Table filters" +#~ msgstr "Table filters" + +#: src/tables/InvenTreeTable.tsx:725 +#~ msgid "Clear custom query filters" +#~ msgstr "Clear custom query filters" + +#: src/tables/InvenTreeTableHeader.tsx:98 +msgid "Delete Selected Items" msgstr "" -#: src/tables/InvenTreeTable.tsx:628 +#: src/tables/InvenTreeTableHeader.tsx:102 +msgid "Are you sure you want to delete the selected items?" +msgstr "" + +#: src/tables/InvenTreeTableHeader.tsx:104 +#: src/tables/plugin/PluginListTable.tsx:305 +msgid "This action cannot be undone" +msgstr "" + +#: src/tables/InvenTreeTableHeader.tsx:142 +msgid "Custom table filters are active" +msgstr "" + +#: src/tables/InvenTreeTableHeader.tsx:169 msgid "Delete selected records" msgstr "" -#: src/tables/InvenTreeTable.tsx:649 +#: src/tables/InvenTreeTableHeader.tsx:188 msgid "Refresh data" msgstr "" -#: src/tables/InvenTreeTable.tsx:675 -msgid "Table filters" -msgstr "表フィルタ" - #: src/tables/TableHoverCard.tsx:35 -msgid "item-{idx}" -msgstr "" +#~ msgid "item-{idx}" +#~ msgstr "item-{idx}" #: src/tables/UploadAction.tsx:7 #~ msgid "Upload Data" @@ -5607,31 +6684,36 @@ msgid "Part Information" msgstr "" #: src/tables/bom/BomTable.tsx:212 -#: src/tables/build/BuildLineTable.tsx:126 +#: src/tables/build/BuildLineTable.tsx:257 #: src/tables/part/PartTable.tsx:125 msgid "External stock" msgstr "" #: src/tables/bom/BomTable.tsx:220 -#: src/tables/build/BuildLineTable.tsx:89 +#: src/tables/build/BuildLineTable.tsx:220 msgid "Includes substitute stock" msgstr "" #: src/tables/bom/BomTable.tsx:229 -#: src/tables/build/BuildLineTable.tsx:99 -#: src/tables/sales/SalesOrderLineItemTable.tsx:127 +#: src/tables/build/BuildLineTable.tsx:230 +#: src/tables/sales/SalesOrderLineItemTable.tsx:135 msgid "Includes variant stock" msgstr "" +#: src/tables/bom/BomTable.tsx:245 +#: src/tables/part/PartTable.tsx:92 +msgid "Building" +msgstr "" + #: src/tables/bom/BomTable.tsx:254 #: src/tables/part/PartTable.tsx:153 -#: src/tables/sales/SalesOrderLineItemTable.tsx:150 -#: src/tables/stock/StockItemTable.tsx:216 +#: src/tables/sales/SalesOrderLineItemTable.tsx:158 +#: src/tables/stock/StockItemTable.tsx:206 msgid "Stock Information" msgstr "" #: src/tables/bom/BomTable.tsx:285 -#: src/tables/build/BuildLineTable.tsx:248 +#: src/tables/build/BuildLineTable.tsx:409 msgid "Consumable item" msgstr "" @@ -5644,7 +6726,7 @@ msgstr "" #~ msgstr "Create BOM Item" #: src/tables/bom/BomTable.tsx:306 -#: src/tables/build/BuildLineTable.tsx:69 +#: src/tables/build/BuildLineTable.tsx:200 msgid "Show testable items" msgstr "" @@ -5657,11 +6739,12 @@ msgid "Show trackable items" msgstr "" #: src/tables/bom/BomTable.tsx:316 -#: src/tables/build/BuildLineTable.tsx:64 +#: src/tables/build/BuildLineTable.tsx:195 msgid "Show assembled items" msgstr "" #: src/tables/bom/BomTable.tsx:321 +#: src/tables/build/BuildLineTable.tsx:180 msgid "Show items with available stock" msgstr "" @@ -5705,7 +6788,7 @@ msgstr "" #: src/tables/bom/BomTable.tsx:345 #: src/tables/bom/UsedInTable.tsx:79 -#: src/tables/build/BuildLineTable.tsx:58 +#: src/tables/build/BuildLineTable.tsx:189 msgid "Optional" msgstr "" @@ -5723,7 +6806,7 @@ msgstr "" #~ msgstr "Bom item deleted" #: src/tables/bom/BomTable.tsx:350 -#: src/tables/build/BuildLineTable.tsx:53 +#: src/tables/build/BuildLineTable.tsx:184 msgid "Consumable" msgstr "" @@ -5749,12 +6832,12 @@ msgid "Show items with pricing" msgstr "" #: src/tables/bom/BomTable.tsx:378 -#: src/tables/bom/BomTable.tsx:511 +#: src/tables/bom/BomTable.tsx:512 msgid "Import BOM Data" msgstr "" #: src/tables/bom/BomTable.tsx:388 -#: src/tables/bom/BomTable.tsx:523 +#: src/tables/bom/BomTable.tsx:526 msgid "Add BOM Item" msgstr "" @@ -5780,7 +6863,7 @@ msgstr "" #: src/tables/bom/BomTable.tsx:423 #: src/tables/bom/BomTable.tsx:426 -#: src/tables/bom/BomTable.tsx:517 +#: src/tables/bom/BomTable.tsx:519 msgid "Validate BOM" msgstr "" @@ -5812,21 +6895,15 @@ msgstr "" msgid "Edit Substitutes" msgstr "" -#: src/tables/bom/BomTable.tsx:539 -#: src/tables/part/PartParameterTable.tsx:193 -#: src/tables/part/PartTestTemplateTable.tsx:252 -msgid "Part is Locked" -msgstr "" - -#: src/tables/bom/BomTable.tsx:544 +#: src/tables/bom/BomTable.tsx:547 msgid "Bill of materials cannot be edited, as the part is locked" msgstr "" #: src/tables/bom/UsedInTable.tsx:33 -#: src/tables/build/BuildLineTable.tsx:63 +#: src/tables/build/BuildLineTable.tsx:194 #: src/tables/part/ParametricPartTable.tsx:233 #: src/tables/part/PartTable.tsx:190 -#: src/tables/stock/StockItemTable.tsx:300 +#: src/tables/stock/StockItemTable.tsx:304 msgid "Assembly" msgstr "" @@ -5844,285 +6921,347 @@ msgstr "" msgid "Show trackable assemblies" msgstr "" -#: src/tables/build/BuildAllocatedStockTable.tsx:54 +#: src/tables/build/BuildAllocatedStockTable.tsx:56 msgid "Allocated to Output" msgstr "" -#: src/tables/build/BuildAllocatedStockTable.tsx:55 +#: src/tables/build/BuildAllocatedStockTable.tsx:57 msgid "Show items allocated to a build output" msgstr "" -#: src/tables/build/BuildAllocatedStockTable.tsx:76 -#: src/tables/part/PartPurchaseOrdersTable.tsx:125 -#: src/tables/sales/SalesOrderAllocationTable.tsx:62 +#: src/tables/build/BuildAllocatedStockTable.tsx:65 +#: src/tables/build/BuildOrderTable.tsx:159 +#: src/tables/part/PartParameterTable.tsx:212 +#: src/tables/part/PartPurchaseOrdersTable.tsx:138 +#: src/tables/sales/ReturnOrderTable.tsx:84 +#: src/tables/sales/SalesOrderAllocationTable.tsx:68 +#: src/tables/sales/SalesOrderTable.tsx:84 +#: src/tables/stock/StockItemTable.tsx:339 +msgid "Include Variants" +msgstr "" + +#: src/tables/build/BuildAllocatedStockTable.tsx:66 +#: src/tables/build/BuildOrderTable.tsx:160 +#: src/tables/part/PartPurchaseOrdersTable.tsx:139 +#: src/tables/sales/ReturnOrderTable.tsx:85 +#: src/tables/sales/SalesOrderAllocationTable.tsx:69 +#: src/tables/sales/SalesOrderTable.tsx:85 +msgid "Include orders for part variants" +msgstr "" + +#: src/tables/build/BuildAllocatedStockTable.tsx:89 +#: src/tables/part/PartPurchaseOrdersTable.tsx:131 +#: src/tables/sales/SalesOrderAllocationTable.tsx:93 msgid "Order Status" msgstr "" -#: src/tables/build/BuildAllocatedStockTable.tsx:96 -#: src/tables/sales/SalesOrderAllocationTable.tsx:75 +#: src/tables/build/BuildAllocatedStockTable.tsx:117 +#: src/tables/sales/SalesOrderAllocationTable.tsx:126 msgid "Allocated Quantity" msgstr "" -#: src/tables/build/BuildAllocatedStockTable.tsx:116 -#: src/tables/sales/SalesOrderAllocationTable.tsx:94 +#: src/tables/build/BuildAllocatedStockTable.tsx:137 +#: src/tables/sales/SalesOrderAllocationTable.tsx:120 msgid "Available Quantity" msgstr "" -#: src/tables/build/BuildAllocatedStockTable.tsx:126 -#: src/tables/build/BuildOrderTestTable.tsx:176 -#: src/tables/build/BuildOrderTestTable.tsx:200 -#: src/tables/build/BuildOutputTable.tsx:312 -msgid "Build Output" +#: src/tables/build/BuildAllocatedStockTable.tsx:164 +#: src/tables/build/BuildLineTable.tsx:513 +msgid "Edit Stock Allocation" msgstr "" -#: src/tables/build/BuildAllocatedStockTable.tsx:143 -msgid "Edit Build Item" -msgstr "" +#: src/tables/build/BuildAllocatedStockTable.tsx:164 +#~ msgid "Edit Build Item" +#~ msgstr "Edit Build Item" -#: src/tables/build/BuildAllocatedStockTable.tsx:153 -msgid "Delete Build Item" -msgstr "" +#: src/tables/build/BuildAllocatedStockTable.tsx:174 +#~ msgid "Delete Build Item" +#~ msgstr "Delete Build Item" -#: src/tables/build/BuildLineTable.tsx:43 -#: src/tables/stock/StockItemTable.tsx:305 -msgid "Allocated" -msgstr "" - -#: src/tables/build/BuildLineTable.tsx:44 -msgid "Show allocated lines" -msgstr "" - -#: src/tables/build/BuildLineTable.tsx:49 -msgid "Show lines with available stock" -msgstr "" - -#: src/tables/build/BuildLineTable.tsx:54 -msgid "Show consumable lines" +#: src/tables/build/BuildAllocatedStockTable.tsx:177 +#: src/tables/build/BuildLineTable.tsx:526 +msgid "Delete Stock Allocation" msgstr "" #: src/tables/build/BuildLineTable.tsx:59 +#~ msgid "Show lines with available stock" +#~ msgstr "Show lines with available stock" + +#: src/tables/build/BuildLineTable.tsx:175 +msgid "Show allocated lines" +msgstr "" + +#: src/tables/build/BuildLineTable.tsx:185 +msgid "Show consumable lines" +msgstr "" + +#: src/tables/build/BuildLineTable.tsx:190 msgid "Show optional lines" msgstr "" -#: src/tables/build/BuildLineTable.tsx:68 +#: src/tables/build/BuildLineTable.tsx:199 #: src/tables/part/PartTable.tsx:208 msgid "Testable" msgstr "" -#: src/tables/build/BuildLineTable.tsx:73 -#: src/tables/stock/StockItemTable.tsx:364 +#: src/tables/build/BuildLineTable.tsx:204 +#: src/tables/stock/StockItemTable.tsx:368 msgid "Tracked" msgstr "" -#: src/tables/build/BuildLineTable.tsx:74 +#: src/tables/build/BuildLineTable.tsx:205 msgid "Show tracked lines" msgstr "" -#: src/tables/build/BuildLineTable.tsx:108 -#: src/tables/sales/SalesOrderLineItemTable.tsx:133 +#: src/tables/build/BuildLineTable.tsx:239 +#: src/tables/sales/SalesOrderLineItemTable.tsx:141 msgid "In production" msgstr "" -#: src/tables/build/BuildLineTable.tsx:136 +#: src/tables/build/BuildLineTable.tsx:267 msgid "Insufficient stock" msgstr "" -#: src/tables/build/BuildLineTable.tsx:152 -#: src/tables/sales/SalesOrderLineItemTable.tsx:121 -#: src/tables/stock/StockItemTable.tsx:186 +#: src/tables/build/BuildLineTable.tsx:283 +#: src/tables/sales/SalesOrderLineItemTable.tsx:129 +#: src/tables/stock/StockItemTable.tsx:175 msgid "No stock available" msgstr "" -#: src/tables/build/BuildLineTable.tsx:201 +#: src/tables/build/BuildLineTable.tsx:355 msgid "Gets Inherited" msgstr "" -#: src/tables/build/BuildLineTable.tsx:210 +#: src/tables/build/BuildLineTable.tsx:366 msgid "Unit Quantity" msgstr "" -#: src/tables/build/BuildLineTable.tsx:267 -#: src/tables/sales/SalesOrderLineItemTable.tsx:230 +#: src/tables/build/BuildLineTable.tsx:381 +msgid "Required Quantity" +msgstr "" + +#: src/tables/build/BuildLineTable.tsx:432 +#: src/tables/sales/SalesOrderLineItemTable.tsx:254 msgid "Create Build Order" msgstr "" -#: src/tables/build/BuildLineTable.tsx:298 -msgid "Allocate Stock" +#: src/tables/build/BuildLineTable.tsx:460 +msgid "Auto allocation in progress" msgstr "" -#: src/tables/build/BuildLineTable.tsx:305 +#: src/tables/build/BuildLineTable.tsx:463 +#: src/tables/build/BuildLineTable.tsx:632 +msgid "Auto Allocate Stock" +msgstr "" + +#: src/tables/build/BuildLineTable.tsx:464 +msgid "Automatically allocate stock to this build according to the selected options" +msgstr "" + +#: src/tables/build/BuildLineTable.tsx:482 +#: src/tables/build/BuildLineTable.tsx:496 +#: src/tables/build/BuildLineTable.tsx:579 +#: src/tables/build/BuildLineTable.tsx:664 +#: src/tables/build/BuildOutputTable.tsx:314 +#: src/tables/build/BuildOutputTable.tsx:319 +msgid "Deallocate Stock" +msgstr "" + +#: src/tables/build/BuildLineTable.tsx:498 +msgid "Deallocate all untracked stock for this build order" +msgstr "" + +#: src/tables/build/BuildLineTable.tsx:500 +msgid "Deallocate stock from the selected line item" +msgstr "" + +#: src/tables/build/BuildLineTable.tsx:504 +msgid "Stock has been deallocated" +msgstr "" + +#: src/tables/build/BuildLineTable.tsx:589 msgid "Order Stock" msgstr "" -#: src/tables/build/BuildLineTable.tsx:312 +#: src/tables/build/BuildLineTable.tsx:596 msgid "Build Stock" msgstr "" -#: src/tables/build/BuildOrderTable.tsx:111 -msgid "Show active orders" +#: src/tables/build/BuildLineTable.tsx:610 +msgid "View Part" msgstr "" #: src/tables/build/BuildOrderTable.tsx:116 -msgid "Cascade" -msgstr "" +#~ msgid "Cascade" +#~ msgstr "Cascade" #: src/tables/build/BuildOrderTable.tsx:117 -msgid "Display recursive child orders" +#~ msgid "Display recursive child orders" +#~ msgstr "Display recursive child orders" + +#: src/tables/build/BuildOrderTable.tsx:121 +msgid "Show outstanding orders" msgstr "" -#: src/tables/build/BuildOrderTable.tsx:123 -#: src/tables/part/PartPurchaseOrdersTable.tsx:126 -#: src/tables/purchasing/PurchaseOrderTable.tsx:56 -#: src/tables/sales/ReturnOrderTable.tsx:47 -#: src/tables/sales/SalesOrderTable.tsx:54 +#: src/tables/build/BuildOrderTable.tsx:121 +#~ msgid "Show active orders" +#~ msgstr "Show active orders" + +#: src/tables/build/BuildOrderTable.tsx:122 +#~ msgid "Show overdue status" +#~ msgstr "Show overdue status" + +#: src/tables/build/BuildOrderTable.tsx:126 +#: src/tables/part/PartPurchaseOrdersTable.tsx:132 +#: src/tables/purchasing/PurchaseOrderTable.tsx:59 +#: src/tables/sales/ReturnOrderTable.tsx:57 +#: src/tables/sales/SalesOrderTable.tsx:57 msgid "Filter by order status" msgstr "" -#: src/tables/build/BuildOrderTable.tsx:130 -msgid "Show overdue status" -msgstr "" - -#: src/tables/build/BuildOrderTable.tsx:141 -#: src/tables/purchasing/PurchaseOrderTable.tsx:65 -#: src/tables/sales/ReturnOrderTable.tsx:56 -#: src/tables/sales/SalesOrderTable.tsx:63 +#: src/tables/build/BuildOrderTable.tsx:136 +#: src/tables/purchasing/PurchaseOrderTable.tsx:70 +#: src/tables/sales/ReturnOrderTable.tsx:68 +#: src/tables/sales/SalesOrderTable.tsx:68 msgid "Filter by project code" msgstr "" -#: src/tables/build/BuildOrderTable.tsx:146 -#: src/tables/purchasing/PurchaseOrderTable.tsx:70 -#: src/tables/sales/ReturnOrderTable.tsx:61 -#: src/tables/sales/SalesOrderTable.tsx:68 -msgid "Has Project Code" -msgstr "" - -#: src/tables/build/BuildOrderTable.tsx:147 +#: src/tables/build/BuildOrderTable.tsx:139 #: src/tables/purchasing/PurchaseOrderTable.tsx:71 #: src/tables/sales/ReturnOrderTable.tsx:62 #: src/tables/sales/SalesOrderTable.tsx:69 -msgid "Filter by whether the purchase order has a project code" -msgstr "" +#~ msgid "Filter by whether the purchase order has a project code" +#~ msgstr "Filter by whether the purchase order has a project code" -#: src/tables/build/BuildOrderTable.tsx:152 +#: src/tables/build/BuildOrderTable.tsx:143 msgid "Filter by user who issued this order" msgstr "" -#: src/tables/build/BuildOrderTable.tsx:158 -#: src/tables/purchasing/PurchaseOrderTable.tsx:76 -#: src/tables/sales/ReturnOrderTable.tsx:67 -#: src/tables/sales/SalesOrderTable.tsx:74 +#: src/tables/build/BuildOrderTable.tsx:149 +#: src/tables/purchasing/PurchaseOrderTable.tsx:77 +#: src/tables/sales/ReturnOrderTable.tsx:75 +#: src/tables/sales/SalesOrderTable.tsx:75 msgid "Filter by responsible owner" msgstr "" -#: src/tables/build/BuildOrderTestTable.tsx:75 -#: src/tables/build/BuildOrderTestTable.tsx:111 -#: src/tables/stock/StockItemTestResultTable.tsx:257 -#: src/tables/stock/StockItemTestResultTable.tsx:329 -#: src/tables/stock/StockItemTestResultTable.tsx:384 +#: src/tables/build/BuildOrderTestTable.tsx:76 +#: src/tables/build/BuildOrderTestTable.tsx:112 +#: src/tables/stock/StockItemTestResultTable.tsx:275 +#: src/tables/stock/StockItemTestResultTable.tsx:347 +#: src/tables/stock/StockItemTestResultTable.tsx:403 msgid "Add Test Result" msgstr "" -#: src/tables/build/BuildOrderTestTable.tsx:82 -#: src/tables/stock/StockItemTestResultTable.tsx:259 +#: src/tables/build/BuildOrderTestTable.tsx:83 +#: src/tables/stock/StockItemTestResultTable.tsx:277 msgid "Test result added" msgstr "" -#: src/tables/build/BuildOrderTestTable.tsx:110 -#: src/tables/stock/StockItemTestResultTable.tsx:174 +#: src/tables/build/BuildOrderTestTable.tsx:111 +#: src/tables/stock/StockItemTestResultTable.tsx:180 msgid "No Result" msgstr "" -#: src/tables/build/BuildOrderTestTable.tsx:220 +#: src/tables/build/BuildOrderTestTable.tsx:221 msgid "Show build outputs currently in production" msgstr "" +#: src/tables/build/BuildOutputTable.tsx:76 +msgid "Build Output Stock Allocation" +msgstr "" + #: src/tables/build/BuildOutputTable.tsx:161 #~ msgid "Delete build output" #~ msgstr "Delete build output" -#: src/tables/build/BuildOutputTable.tsx:173 -#: src/tables/build/BuildOutputTable.tsx:211 +#: src/tables/build/BuildOutputTable.tsx:258 +#: src/tables/build/BuildOutputTable.tsx:374 msgid "Add Build Output" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:216 +#: src/tables/build/BuildOutputTable.tsx:304 +#~ msgid "Edit build output" +#~ msgstr "Edit build output" + +#: src/tables/build/BuildOutputTable.tsx:306 +#: src/tables/build/BuildOutputTable.tsx:417 +msgid "Edit Build Output" +msgstr "" + +#: src/tables/build/BuildOutputTable.tsx:321 +msgid "This action will deallocate all stock from the selected build output" +msgstr "" + +#: src/tables/build/BuildOutputTable.tsx:341 msgid "Complete selected outputs" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:226 +#: src/tables/build/BuildOutputTable.tsx:352 msgid "Scrap selected outputs" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:236 +#: src/tables/build/BuildOutputTable.tsx:363 msgid "Cancel selected outputs" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:252 +#: src/tables/build/BuildOutputTable.tsx:385 msgid "Allocate" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:253 +#: src/tables/build/BuildOutputTable.tsx:386 msgid "Allocate stock to build output" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:259 +#: src/tables/build/BuildOutputTable.tsx:396 msgid "Deallocate" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:260 +#: src/tables/build/BuildOutputTable.tsx:397 msgid "Deallocate stock from build output" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:267 +#: src/tables/build/BuildOutputTable.tsx:408 msgid "Complete build output" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:276 +#: src/tables/build/BuildOutputTable.tsx:424 msgid "Scrap" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:277 +#: src/tables/build/BuildOutputTable.tsx:425 msgid "Scrap build output" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:280 -#~ msgid "Allocated Items" -#~ msgstr "Allocated Items" - -#: src/tables/build/BuildOutputTable.tsx:287 +#: src/tables/build/BuildOutputTable.tsx:435 msgid "Cancel build output" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:325 -msgid "Batch" -msgstr "" - -#: src/tables/build/BuildOutputTable.tsx:340 +#: src/tables/build/BuildOutputTable.tsx:488 msgid "Allocated Lines" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:355 +#: src/tables/build/BuildOutputTable.tsx:503 msgid "Required Tests" msgstr "" -#: src/tables/company/AddressTable.tsx:121 -#: src/tables/company/AddressTable.tsx:185 +#: src/tables/company/AddressTable.tsx:118 +#: src/tables/company/AddressTable.tsx:183 msgid "Add Address" msgstr "" -#: src/tables/company/AddressTable.tsx:126 +#: src/tables/company/AddressTable.tsx:123 msgid "Address created" msgstr "" -#: src/tables/company/AddressTable.tsx:135 +#: src/tables/company/AddressTable.tsx:132 msgid "Edit Address" msgstr "" -#: src/tables/company/AddressTable.tsx:143 +#: src/tables/company/AddressTable.tsx:140 msgid "Delete Address" msgstr "" -#: src/tables/company/AddressTable.tsx:144 +#: src/tables/company/AddressTable.tsx:141 msgid "Are you sure you want to delete this address?" msgstr "" @@ -6130,24 +7269,24 @@ msgstr "" #~ msgid "New Company" #~ msgstr "New Company" -#: src/tables/company/CompanyTable.tsx:74 -#: src/tables/company/CompanyTable.tsx:123 +#: src/tables/company/CompanyTable.tsx:75 +#: src/tables/company/CompanyTable.tsx:125 msgid "Add Company" msgstr "" -#: src/tables/company/CompanyTable.tsx:96 +#: src/tables/company/CompanyTable.tsx:97 msgid "Show active companies" msgstr "" -#: src/tables/company/CompanyTable.tsx:101 +#: src/tables/company/CompanyTable.tsx:102 msgid "Show companies which are suppliers" msgstr "" -#: src/tables/company/CompanyTable.tsx:106 +#: src/tables/company/CompanyTable.tsx:107 msgid "Show companies which are manufacturers" msgstr "" -#: src/tables/company/CompanyTable.tsx:111 +#: src/tables/company/CompanyTable.tsx:112 msgid "Show companies which are customers" msgstr "" @@ -6163,96 +7302,99 @@ msgstr "" msgid "Delete Contact" msgstr "" -#: src/tables/company/ContactTable.tsx:129 +#: src/tables/company/ContactTable.tsx:130 msgid "Add contact" msgstr "" -#: src/tables/general/AttachmentTable.tsx:130 +#: src/tables/general/AttachmentTable.tsx:135 msgid "File uploaded" msgstr "" -#: src/tables/general/AttachmentTable.tsx:131 +#: src/tables/general/AttachmentTable.tsx:136 msgid "File {0} uploaded successfully" msgstr "" -#: src/tables/general/AttachmentTable.tsx:142 +#: src/tables/general/AttachmentTable.tsx:147 msgid "Upload Error" msgstr "" -#: src/tables/general/AttachmentTable.tsx:143 +#: src/tables/general/AttachmentTable.tsx:148 msgid "File could not be uploaded" msgstr "" -#: src/tables/general/AttachmentTable.tsx:191 +#: src/tables/general/AttachmentTable.tsx:196 msgid "Upload Attachment" msgstr "" -#: src/tables/general/AttachmentTable.tsx:201 +#: src/tables/general/AttachmentTable.tsx:206 msgid "Edit Attachment" msgstr "" -#: src/tables/general/AttachmentTable.tsx:215 +#: src/tables/general/AttachmentTable.tsx:220 msgid "Delete Attachment" msgstr "" -#: src/tables/general/AttachmentTable.tsx:225 +#: src/tables/general/AttachmentTable.tsx:230 msgid "Is Link" msgstr "" -#: src/tables/general/AttachmentTable.tsx:226 +#: src/tables/general/AttachmentTable.tsx:231 msgid "Show link attachments" msgstr "" -#: src/tables/general/AttachmentTable.tsx:230 +#: src/tables/general/AttachmentTable.tsx:235 msgid "Is File" msgstr "" -#: src/tables/general/AttachmentTable.tsx:231 +#: src/tables/general/AttachmentTable.tsx:236 msgid "Show file attachments" msgstr "" -#: src/tables/general/AttachmentTable.tsx:240 +#: src/tables/general/AttachmentTable.tsx:245 msgid "Add attachment" msgstr "" -#: src/tables/general/AttachmentTable.tsx:251 -msgid "Add external link" -msgstr "" - #: src/tables/general/AttachmentTable.tsx:254 #~ msgid "Upload attachment" #~ msgstr "Upload attachment" -#: src/tables/general/AttachmentTable.tsx:299 +#: src/tables/general/AttachmentTable.tsx:256 +msgid "Add external link" +msgstr "" + +#: src/tables/general/AttachmentTable.tsx:304 msgid "No attachments found" msgstr "" -#: src/tables/general/AttachmentTable.tsx:337 +#: src/tables/general/AttachmentTable.tsx:343 msgid "Drag attachment file here to upload" msgstr "" #: src/tables/general/ExtraLineItemTable.tsx:86 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:251 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:60 -#: src/tables/sales/SalesOrderLineItemTable.tsx:196 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:263 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:362 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:72 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:168 +#: src/tables/sales/SalesOrderLineItemTable.tsx:206 +#: src/tables/sales/SalesOrderLineItemTable.tsx:291 msgid "Add Line Item" msgstr "" #: src/tables/general/ExtraLineItemTable.tsx:98 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:271 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:72 -#: src/tables/sales/SalesOrderLineItemTable.tsx:214 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:283 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:84 +#: src/tables/sales/SalesOrderLineItemTable.tsx:224 msgid "Edit Line Item" msgstr "" #: src/tables/general/ExtraLineItemTable.tsx:106 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:279 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:80 -#: src/tables/sales/SalesOrderLineItemTable.tsx:222 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:291 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:92 +#: src/tables/sales/SalesOrderLineItemTable.tsx:232 msgid "Delete Line Item" msgstr "" -#: src/tables/general/ExtraLineItemTable.tsx:142 +#: src/tables/general/ExtraLineItemTable.tsx:143 msgid "Add Extra Line Item" msgstr "" @@ -6261,12 +7403,12 @@ msgid "Machine restarted" msgstr "" #: src/tables/machine/MachineListTable.tsx:212 -#: src/tables/machine/MachineListTable.tsx:263 +#: src/tables/machine/MachineListTable.tsx:261 msgid "Edit machine" msgstr "" #: src/tables/machine/MachineListTable.tsx:226 -#: src/tables/machine/MachineListTable.tsx:267 +#: src/tables/machine/MachineListTable.tsx:265 msgid "Delete machine" msgstr "" @@ -6278,51 +7420,50 @@ msgstr "" msgid "Are you sure you want to remove the machine \"{0}\"?" msgstr "" -#: src/tables/machine/MachineListTable.tsx:255 -#: src/tables/machine/MachineListTable.tsx:432 +#: src/tables/machine/MachineListTable.tsx:254 +#: src/tables/machine/MachineListTable.tsx:442 msgid "Restart required" msgstr "" -#: src/tables/machine/MachineListTable.tsx:259 +#: src/tables/machine/MachineListTable.tsx:258 msgid "Machine Actions" msgstr "" -#: src/tables/machine/MachineListTable.tsx:272 +#: src/tables/machine/MachineListTable.tsx:270 msgid "Restart" msgstr "" -#: src/tables/machine/MachineListTable.tsx:274 +#: src/tables/machine/MachineListTable.tsx:272 msgid "Restart machine" msgstr "" -#: src/tables/machine/MachineListTable.tsx:276 +#: src/tables/machine/MachineListTable.tsx:274 msgid "manual restart required" msgstr "" +#: src/tables/machine/MachineListTable.tsx:291 +#~ msgid "Machine information" +#~ msgstr "Machine information" + #: src/tables/machine/MachineListTable.tsx:292 -msgid "Machine information" +msgid "Machine Information" msgstr "" -#: src/tables/machine/MachineListTable.tsx:303 -#: src/tables/machine/MachineListTable.tsx:599 +#: src/tables/machine/MachineListTable.tsx:302 +#: src/tables/machine/MachineListTable.tsx:610 msgid "Machine Type" msgstr "" -#: src/tables/machine/MachineListTable.tsx:316 +#: src/tables/machine/MachineListTable.tsx:315 msgid "Machine Driver" msgstr "" -#: src/tables/machine/MachineListTable.tsx:329 +#: src/tables/machine/MachineListTable.tsx:330 msgid "Initialized" msgstr "" -#: src/tables/machine/MachineListTable.tsx:350 -#: src/tables/machine/MachineTypeTable.tsx:261 -msgid "Errors" -msgstr "" - -#: src/tables/machine/MachineListTable.tsx:358 -#: src/tables/machine/MachineTypeTable.tsx:269 +#: src/tables/machine/MachineListTable.tsx:359 +#: src/tables/machine/MachineTypeTable.tsx:290 msgid "No errors reported" msgstr "" @@ -6330,7 +7471,7 @@ msgstr "" msgid "Machine Settings" msgstr "" -#: src/tables/machine/MachineListTable.tsx:389 +#: src/tables/machine/MachineListTable.tsx:394 msgid "Driver Settings" msgstr "" @@ -6338,86 +7479,109 @@ msgstr "" #~ msgid "Create machine" #~ msgstr "Create machine" -#: src/tables/machine/MachineListTable.tsx:506 +#: src/tables/machine/MachineListTable.tsx:516 +#: src/tables/machine/MachineListTable.tsx:558 msgid "Add machine" msgstr "" #: src/tables/machine/MachineListTable.tsx:561 -msgid "Machine detail" +#~ msgid "Machine detail" +#~ msgstr "Machine detail" + +#: src/tables/machine/MachineListTable.tsx:572 +msgid "Machine Detail" msgstr "" -#: src/tables/machine/MachineListTable.tsx:608 +#: src/tables/machine/MachineListTable.tsx:619 msgid "Driver" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:73 +#: src/tables/machine/MachineTypeTable.tsx:78 msgid "Builtin driver" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:89 +#: src/tables/machine/MachineTypeTable.tsx:96 +msgid "Not Found" +msgstr "" + +#: src/tables/machine/MachineTypeTable.tsx:99 msgid "Machine type not found." msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:97 -msgid "Machine type information" +#: src/tables/machine/MachineTypeTable.tsx:99 +#~ msgid "Machine type information" +#~ msgstr "Machine type information" + +#: src/tables/machine/MachineTypeTable.tsx:109 +msgid "Machine Type Information" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:110 -#: src/tables/machine/MachineTypeTable.tsx:217 +#: src/tables/machine/MachineTypeTable.tsx:124 +#: src/tables/machine/MachineTypeTable.tsx:238 msgid "Slug" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:118 -#: src/tables/machine/MachineTypeTable.tsx:238 +#: src/tables/machine/MachineTypeTable.tsx:135 +#: src/tables/machine/MachineTypeTable.tsx:259 msgid "Provider plugin" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:130 -#: src/tables/machine/MachineTypeTable.tsx:250 +#: src/tables/machine/MachineTypeTable.tsx:147 +#: src/tables/machine/MachineTypeTable.tsx:271 msgid "Provider file" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:135 -#: src/tables/machine/MachineTypeTable.tsx:255 -#: src/tables/plugin/PluginListTable.tsx:180 -#: src/tables/plugin/PluginListTable.tsx:568 -msgid "Builtin" +#: src/tables/machine/MachineTypeTable.tsx:148 +#~ msgid "Available drivers" +#~ msgstr "Available drivers" + +#: src/tables/machine/MachineTypeTable.tsx:162 +msgid "Available Drivers" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:146 -msgid "Available drivers" -msgstr "" - -#: src/tables/machine/MachineTypeTable.tsx:196 +#: src/tables/machine/MachineTypeTable.tsx:217 msgid "Machine driver not found." msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:204 +#: src/tables/machine/MachineTypeTable.tsx:225 msgid "Machine driver information" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:224 +#: src/tables/machine/MachineTypeTable.tsx:245 msgid "Machine type" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:327 +#: src/tables/machine/MachineTypeTable.tsx:338 +#~ msgid "Machine type detail" +#~ msgstr "Machine type detail" + +#: src/tables/machine/MachineTypeTable.tsx:348 msgid "Builtin type" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:336 -msgid "Machine type detail" +#: src/tables/machine/MachineTypeTable.tsx:348 +#~ msgid "Machine driver detail" +#~ msgstr "Machine driver detail" + +#: src/tables/machine/MachineTypeTable.tsx:357 +msgid "Machine Type Detail" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:346 -msgid "Machine driver detail" +#: src/tables/machine/MachineTypeTable.tsx:367 +msgid "Machine Driver Detail" msgstr "" #: src/tables/notifications/NotificationsTable.tsx:26 msgid "Age" msgstr "" +#: src/tables/notifications/NotificationsTable.tsx:36 +msgid "Notification" +msgstr "" + #: src/tables/notifications/NotificationsTable.tsx:40 #: src/tables/plugin/PluginErrorTable.tsx:37 +#: src/tables/settings/ErrorTable.tsx:50 msgid "Message" msgstr "" @@ -6451,33 +7615,32 @@ msgstr "" msgid "Show assembly parts" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:68 +#: src/tables/part/PartCategoryTable.tsx:48 +msgid "You are subscribed to notifications for this category" +msgstr "" + +#: src/tables/part/PartCategoryTable.tsx:80 #: src/tables/part/PartTable.tsx:196 msgid "Include Subcategories" msgstr "サブカテゴリを含む" -#: src/tables/part/PartCategoryTable.tsx:69 +#: src/tables/part/PartCategoryTable.tsx:81 msgid "Include subcategories in results" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:74 +#: src/tables/part/PartCategoryTable.tsx:86 msgid "Show structural categories" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:78 -#: src/tables/part/PartTable.tsx:294 -msgid "Subscribed" -msgstr "" - -#: src/tables/part/PartCategoryTable.tsx:79 +#: src/tables/part/PartCategoryTable.tsx:91 msgid "Show categories to which the user is subscribed" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:86 +#: src/tables/part/PartCategoryTable.tsx:100 msgid "New Part Category" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:112 +#: src/tables/part/PartCategoryTable.tsx:129 msgid "Add Part Category" msgstr "" @@ -6523,11 +7686,6 @@ msgstr "" msgid "Part parameters cannot be edited, as the part is locked" msgstr "" -#: src/tables/part/PartParameterTable.tsx:212 -#: src/tables/stock/StockItemTable.tsx:335 -msgid "Include Variants" -msgstr "" - #: src/tables/part/PartParameterTemplateTable.tsx:31 msgid "Checkbox" msgstr "" @@ -6554,6 +7712,7 @@ msgid "Show templates with units" msgstr "" #: src/tables/part/PartParameterTemplateTable.tsx:85 +#: src/tables/part/PartParameterTemplateTable.tsx:141 msgid "Add Parameter Template" msgstr "" @@ -6566,23 +7725,19 @@ msgid "Delete Parameter Template" msgstr "" #: src/tables/part/PartParameterTemplateTable.tsx:141 -msgid "Add parameter template" -msgstr "" +#~ msgid "Add parameter template" +#~ msgstr "Add parameter template" -#: src/tables/part/PartPurchaseOrdersTable.tsx:77 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:162 +#: src/tables/part/PartPurchaseOrdersTable.tsx:78 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:168 msgid "Total Quantity" msgstr "" -#: src/tables/part/PartPurchaseOrdersTable.tsx:115 -msgid "Pending" -msgstr "" - -#: src/tables/part/PartPurchaseOrdersTable.tsx:116 +#: src/tables/part/PartPurchaseOrdersTable.tsx:122 msgid "Show pending orders" msgstr "" -#: src/tables/part/PartPurchaseOrdersTable.tsx:121 +#: src/tables/part/PartPurchaseOrdersTable.tsx:127 msgid "Show received items" msgstr "" @@ -6728,22 +7883,13 @@ msgstr "" msgid "Results" msgstr "" -#: src/tables/part/PartTestTemplateTable.tsx:76 -msgid "No Results" -msgstr "" - -#: src/tables/part/PartTestTemplateTable.tsx:106 -#: src/tables/stock/StockItemTestResultTable.tsx:365 -msgid "Required" -msgstr "" - #: src/tables/part/PartTestTemplateTable.tsx:107 msgid "Show required tests" msgstr "" #: src/tables/part/PartTestTemplateTable.tsx:111 -#: src/tables/settings/TemplateTable.tsx:167 -#: src/tables/settings/TemplateTable.tsx:283 +#: src/tables/settings/TemplateTable.tsx:247 +#: src/tables/settings/TemplateTable.tsx:363 msgid "Enabled" msgstr "" @@ -6784,7 +7930,7 @@ msgid "Show tests which have recorded results" msgstr "" #: src/tables/part/PartTestTemplateTable.tsx:154 -#: src/tables/part/PartTestTemplateTable.tsx:237 +#: src/tables/part/PartTestTemplateTable.tsx:238 msgid "Add Test Template" msgstr "" @@ -6808,7 +7954,7 @@ msgstr "" msgid "View Parent Part" msgstr "" -#: src/tables/part/PartTestTemplateTable.tsx:257 +#: src/tables/part/PartTestTemplateTable.tsx:258 msgid "Part templates cannot be edited, as the part is locked" msgstr "" @@ -6836,28 +7982,49 @@ msgstr "" msgid "Show trackable variants" msgstr "" -#: src/tables/part/RelatedPartTable.tsx:84 +#: src/tables/part/RelatedPartTable.tsx:86 +#: src/tables/part/RelatedPartTable.tsx:109 msgid "Add Related Part" msgstr "" -#: src/tables/part/RelatedPartTable.tsx:99 +#: src/tables/part/RelatedPartTable.tsx:101 msgid "Delete Related Part" msgstr "" -#: src/tables/part/RelatedPartTable.tsx:106 -msgid "Add related part" -msgstr "" +#: src/tables/part/RelatedPartTable.tsx:109 +#~ msgid "Add related part" +#~ msgstr "Add related part" #: src/tables/plugin/PluginErrorTable.tsx:29 msgid "Stage" msgstr "" -#: src/tables/plugin/PluginListTable.tsx:95 -msgid "Plugin with key {pluginKey} not found" +#: src/tables/plugin/PluginListTable.tsx:42 +msgid "Plugin is active" msgstr "" +#: src/tables/plugin/PluginListTable.tsx:48 +msgid "Plugin is inactive" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:55 +msgid "Plugin is not installed" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:76 +msgid "Plugin" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:95 +#~ msgid "Plugin with key {pluginKey} not found" +#~ msgstr "Plugin with key {pluginKey} not found" + #: src/tables/plugin/PluginListTable.tsx:97 -msgid "An error occurred while fetching plugin details" +#~ msgid "An error occurred while fetching plugin details" +#~ msgstr "An error occurred while fetching plugin details" + +#: src/tables/plugin/PluginListTable.tsx:109 +msgid "Description not available" msgstr "" #: src/tables/plugin/PluginListTable.tsx:113 @@ -6865,12 +8032,8 @@ msgstr "" #~ msgstr "Plugin with id {id} not found" #: src/tables/plugin/PluginListTable.tsx:122 -msgid "Plugin information" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:134 -msgid "Author" -msgstr "" +#~ msgid "Plugin information" +#~ msgstr "Plugin information" #: src/tables/plugin/PluginListTable.tsx:134 #~ msgid "Plugin Actions" @@ -6881,79 +8044,124 @@ msgstr "" #~ msgid "Edit plugin" #~ msgstr "Edit plugin" +#: src/tables/plugin/PluginListTable.tsx:144 +msgid "Confirm plugin activation" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:145 +msgid "Confirm plugin deactivation" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:150 +msgid "The selected plugin will be activated" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:151 +msgid "The selected plugin will be deactivated" +msgstr "" + #: src/tables/plugin/PluginListTable.tsx:152 #: src/tables/plugin/PluginListTable.tsx:153 #~ msgid "Reload" #~ msgstr "Reload" -#: src/tables/plugin/PluginListTable.tsx:154 -msgid "Plugin is not active" -msgstr "" - #: src/tables/plugin/PluginListTable.tsx:163 -msgid "Package information" -msgstr "" +#~ msgid "Package information" +#~ msgstr "Package information" #: src/tables/plugin/PluginListTable.tsx:169 -msgid "Package Name" +msgid "Deactivate" msgstr "" -#: src/tables/plugin/PluginListTable.tsx:175 -msgid "Installation Path" +#: src/tables/plugin/PluginListTable.tsx:183 +msgid "Activate" msgstr "" -#: src/tables/plugin/PluginListTable.tsx:185 -msgid "Package" +#: src/tables/plugin/PluginListTable.tsx:184 +msgid "Activate selected plugin" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:196 +msgid "Update selected plugin" msgstr "" #: src/tables/plugin/PluginListTable.tsx:197 -msgid "Plugin settings" -msgstr "" +#~ msgid "Plugin settings" +#~ msgstr "Plugin settings" #: src/tables/plugin/PluginListTable.tsx:214 -msgid "Plugin is active" +#: src/tables/stock/InstalledItemsTable.tsx:107 +msgid "Uninstall" msgstr "" -#: src/tables/plugin/PluginListTable.tsx:220 -msgid "Plugin is inactive" +#: src/tables/plugin/PluginListTable.tsx:215 +msgid "Uninstall selected plugin" msgstr "" -#: src/tables/plugin/PluginListTable.tsx:227 -msgid "Plugin is not installed" +#: src/tables/plugin/PluginListTable.tsx:233 +msgid "Delete selected plugin configuration" msgstr "" -#: src/tables/plugin/PluginListTable.tsx:253 -msgid "Plugin" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:287 -msgid "Description not available" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:319 -msgid "Confirm plugin activation" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:320 -msgid "Confirm plugin deactivation" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:325 -msgid "The selected plugin will be activated" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:326 -msgid "The selected plugin will be deactivated" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:334 +#: src/tables/plugin/PluginListTable.tsx:249 msgid "Activate Plugin" msgstr "" +#: src/tables/plugin/PluginListTable.tsx:270 +msgid "Install plugin" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:283 +msgid "Install" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:284 +msgid "Plugin installed successfully" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:289 +msgid "Uninstall Plugin" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:301 +msgid "Confirm plugin uninstall" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:304 +msgid "The selected plugin will be uninstalled." +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:308 +#~ msgid "This action cannot be undone." +#~ msgstr "This action cannot be undone." + +#: src/tables/plugin/PluginListTable.tsx:309 +msgid "Plugin uninstalled successfully" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:317 +msgid "Delete Plugin" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:318 +msgid "Deleting this plugin configuration will remove all associated settings and data. Are you sure you want to delete this plugin?" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:331 +msgid "Plugins reloaded" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:332 +msgid "Plugins were reloaded successfully" +msgstr "" + #: src/tables/plugin/PluginListTable.tsx:338 #~ msgid "Deactivate Plugin" #~ msgstr "Deactivate Plugin" +#: src/tables/plugin/PluginListTable.tsx:350 +msgid "Reload Plugins" +msgstr "" + #: src/tables/plugin/PluginListTable.tsx:354 #~ msgid "The following plugin will be activated" #~ msgstr "The following plugin will be activated" @@ -6962,16 +8170,16 @@ msgstr "" #~ msgid "The following plugin will be deactivated" #~ msgstr "The following plugin will be deactivated" -#: src/tables/plugin/PluginListTable.tsx:362 -msgid "Deactivate" +#: src/tables/plugin/PluginListTable.tsx:357 +msgid "Install Plugin" msgstr "" #: src/tables/plugin/PluginListTable.tsx:366 #~ msgid "Confirm" #~ msgstr "Confirm" -#: src/tables/plugin/PluginListTable.tsx:373 -msgid "Activate" +#: src/tables/plugin/PluginListTable.tsx:374 +msgid "Plugin Detail" msgstr "" #: src/tables/plugin/PluginListTable.tsx:376 @@ -6998,76 +8206,12 @@ msgstr "" #~ msgid "Error updating plugin" #~ msgstr "Error updating plugin" -#: src/tables/plugin/PluginListTable.tsx:406 -msgid "Uninstall" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:438 -msgid "Install plugin" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:451 -msgid "Install" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:452 -msgid "Plugin installed successfully" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:457 -msgid "Uninstall Plugin" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:469 -msgid "Confirm plugin uninstall" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:472 -msgid "The selected plugin will be uninstalled." -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:473 -msgid "This action cannot be undone." -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:477 -msgid "Plugin uninstalled successfully" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:484 -msgid "Delete Plugin" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:485 -msgid "Deleting this plugin configuration will remove all associated settings and data. Are you sure you want to delete this plugin?" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:498 -msgid "Plugins reloaded" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:499 -msgid "Plugins were reloaded successfully" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:515 -msgid "Reload Plugins" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:524 -msgid "Install Plugin" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:544 -msgid "Plugin Detail" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:573 +#: src/tables/plugin/PluginListTable.tsx:411 msgid "Sample" msgstr "" -#: src/tables/plugin/PluginListTable.tsx:578 -#: src/tables/stock/StockItemTable.tsx:340 +#: src/tables/plugin/PluginListTable.tsx:416 +#: src/tables/stock/StockItemTable.tsx:344 msgid "Installed" msgstr "" @@ -7116,82 +8260,78 @@ msgstr "" #~ msgid "Are you sure you want to remove this manufacturer part?" #~ msgstr "Are you sure you want to remove this manufacturer part?" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:102 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:339 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:103 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:356 msgid "Import Line Items" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:135 -msgid "Part Description" -msgstr "" - -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:201 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:207 msgid "Supplier Code" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:208 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:214 msgid "Supplier Link" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:215 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:220 msgid "Manufacturer Code" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:229 -msgid "Destination" +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:248 +msgid "Show line items which have been received" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:300 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:316 msgid "Receive line item" msgstr "" #: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:344 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:142 -#: src/tables/sales/SalesOrderLineItemTable.tsx:240 -msgid "Add line item" -msgstr "" +#: src/tables/sales/ReturnOrderLineItemTable.tsx:160 +#: src/tables/sales/SalesOrderLineItemTable.tsx:258 +#~ msgid "Add line item" +#~ msgstr "Add line item" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:354 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:373 msgid "Receive items" msgstr "" -#: src/tables/purchasing/SupplierPartTable.tsx:93 +#: src/tables/purchasing/SupplierPartTable.tsx:95 msgid "MPN" msgstr "" -#: src/tables/purchasing/SupplierPartTable.tsx:122 +#: src/tables/purchasing/SupplierPartTable.tsx:124 msgid "Base units" msgstr "" -#: src/tables/purchasing/SupplierPartTable.tsx:170 +#: src/tables/purchasing/SupplierPartTable.tsx:172 msgid "Supplier part created" msgstr "" -#: src/tables/purchasing/SupplierPartTable.tsx:176 +#: src/tables/purchasing/SupplierPartTable.tsx:179 msgid "Add supplier part" msgstr "" -#: src/tables/purchasing/SupplierPartTable.tsx:188 +#: src/tables/purchasing/SupplierPartTable.tsx:191 msgid "Show active supplier parts" msgstr "" -#: src/tables/purchasing/SupplierPartTable.tsx:192 -msgid "Active Part" -msgstr "" - -#: src/tables/purchasing/SupplierPartTable.tsx:193 -msgid "Show active internal parts" -msgstr "" - #: src/tables/purchasing/SupplierPartTable.tsx:193 #~ msgid "Supplier part updated" #~ msgstr "Supplier part updated" -#: src/tables/purchasing/SupplierPartTable.tsx:197 +#: src/tables/purchasing/SupplierPartTable.tsx:195 +msgid "Active Part" +msgstr "" + +#: src/tables/purchasing/SupplierPartTable.tsx:196 +msgid "Show active internal parts" +msgstr "" + +#: src/tables/purchasing/SupplierPartTable.tsx:200 msgid "Active Supplier" msgstr "" -#: src/tables/purchasing/SupplierPartTable.tsx:198 +#: src/tables/purchasing/SupplierPartTable.tsx:201 msgid "Show active suppliers" msgstr "" @@ -7203,99 +8343,187 @@ msgstr "" #~ msgid "Are you sure you want to remove this supplier part?" #~ msgstr "Are you sure you want to remove this supplier part?" -#: src/tables/sales/ReturnOrderLineItemTable.tsx:114 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:139 msgid "Received Date" msgstr "" -#: src/tables/sales/ReturnOrderLineItemTable.tsx:128 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:153 msgid "Show items which have been received" msgstr "" -#: src/tables/sales/ReturnOrderLineItemTable.tsx:133 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:158 msgid "Filter by line item status" msgstr "" -#: src/tables/sales/ReturnOrderLineItemTable.tsx:158 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:176 +msgid "Receive selected items" +msgstr "" + +#: src/tables/sales/ReturnOrderLineItemTable.tsx:205 msgid "Receive Item" msgstr "" -#: src/tables/sales/SalesOrderLineItemTable.tsx:262 -msgid "Allocate stock" +#: src/tables/sales/SalesOrderAllocationTable.tsx:60 +msgid "Show outstanding allocations" msgstr "" -#: src/tables/sales/SalesOrderLineItemTable.tsx:272 +#: src/tables/sales/SalesOrderAllocationTable.tsx:168 +#: src/tables/sales/SalesOrderAllocationTable.tsx:190 +msgid "Edit Allocation" +msgstr "" + +#: src/tables/sales/SalesOrderAllocationTable.tsx:175 +#: src/tables/sales/SalesOrderAllocationTable.tsx:197 +msgid "Delete Allocation" +msgstr "" + +#: src/tables/sales/SalesOrderLineItemTable.tsx:244 +msgid "Allocate Serial Numbers" +msgstr "" + +#: src/tables/sales/SalesOrderLineItemTable.tsx:277 +msgid "Show lines which are fully allocated" +msgstr "" + +#: src/tables/sales/SalesOrderLineItemTable.tsx:280 +#~ msgid "Allocate stock" +#~ msgstr "Allocate stock" + +#: src/tables/sales/SalesOrderLineItemTable.tsx:282 +msgid "Show lines which are completed" +msgstr "" + +#: src/tables/sales/SalesOrderLineItemTable.tsx:291 +#~ msgid "Allocate Serials" +#~ msgstr "Allocate Serials" + +#: src/tables/sales/SalesOrderLineItemTable.tsx:340 +msgid "Allocate serials" +msgstr "" + +#: src/tables/sales/SalesOrderLineItemTable.tsx:356 msgid "Build stock" msgstr "" -#: src/tables/sales/SalesOrderLineItemTable.tsx:289 -#: src/tables/stock/StockItemTable.tsx:507 +#: src/tables/sales/SalesOrderLineItemTable.tsx:373 +#: src/tables/stock/StockItemTable.tsx:512 msgid "Order stock" msgstr "" -#: src/tables/sales/SalesOrderShipmentTable.tsx:40 +#: src/tables/sales/SalesOrderShipmentTable.tsx:51 +#~ msgid "Delete Shipment" +#~ msgstr "Delete Shipment" + +#: src/tables/sales/SalesOrderShipmentTable.tsx:57 msgid "Create Shipment" msgstr "" -#: src/tables/sales/SalesOrderShipmentTable.tsx:50 -msgid "Delete Shipment" -msgstr "" - -#: src/tables/sales/SalesOrderShipmentTable.tsx:58 -msgid "Edit Shipment" -msgstr "" - -#: src/tables/sales/SalesOrderShipmentTable.tsx:66 -msgid "Shipment Reference" -msgstr "" - -#: src/tables/sales/SalesOrderShipmentTable.tsx:71 +#: src/tables/sales/SalesOrderShipmentTable.tsx:104 msgid "Items" msgstr "" -#: src/tables/sales/SalesOrderShipmentTable.tsx:83 -msgid "Delivery Date" +#: src/tables/sales/SalesOrderShipmentTable.tsx:139 +msgid "View Shipment" msgstr "" -#: src/tables/sales/SalesOrderShipmentTable.tsx:107 -msgid "Complete Shipment" +#: src/tables/sales/SalesOrderShipmentTable.tsx:161 +msgid "Edit shipment" msgstr "" -#: src/tables/sales/SalesOrderShipmentTable.tsx:133 +#: src/tables/sales/SalesOrderShipmentTable.tsx:169 +msgid "Cancel shipment" +msgstr "" + +#: src/tables/sales/SalesOrderShipmentTable.tsx:184 msgid "Add shipment" msgstr "" -#: src/tables/sales/SalesOrderShipmentTable.tsx:146 -msgid "Shipped" -msgstr "" - -#: src/tables/sales/SalesOrderShipmentTable.tsx:147 +#: src/tables/sales/SalesOrderShipmentTable.tsx:198 msgid "Show shipments which have been shipped" msgstr "" -#: src/tables/sales/SalesOrderShipmentTable.tsx:151 -msgid "Delivered" -msgstr "" - -#: src/tables/sales/SalesOrderShipmentTable.tsx:152 +#: src/tables/sales/SalesOrderShipmentTable.tsx:203 msgid "Show shipments which have been delivered" msgstr "" -#: src/tables/settings/CurrencyTable.tsx:28 -msgid "Rate" +#: src/tables/settings/BarcodeScanHistoryTable.tsx:61 +msgid "Barcode Information" msgstr "" -#: src/tables/settings/CurrencyTable.tsx:40 -msgid "Exchange rates updated" +#: src/tables/settings/BarcodeScanHistoryTable.tsx:76 +#: src/tables/settings/ErrorTable.tsx:59 +msgid "Timestamp" msgstr "" -#: src/tables/settings/CurrencyTable.tsx:46 -msgid "Exchange rate update error" +#: src/tables/settings/BarcodeScanHistoryTable.tsx:86 +msgid "Endpoint" msgstr "" -#: src/tables/settings/CurrencyTable.tsx:57 -msgid "Refresh currency exchange rates" +#: src/tables/settings/BarcodeScanHistoryTable.tsx:90 +#: src/tables/settings/BarcodeScanHistoryTable.tsx:217 +#: src/tables/stock/StockItemTestResultTable.tsx:174 +msgid "Result" msgstr "" +#: src/tables/settings/BarcodeScanHistoryTable.tsx:98 +msgid "Context" +msgstr "" + +#: src/tables/settings/BarcodeScanHistoryTable.tsx:119 +msgid "Response" +msgstr "" + +#: src/tables/settings/BarcodeScanHistoryTable.tsx:213 +#: src/tables/settings/ImportSessionTable.tsx:121 +#: src/tables/stock/StockTrackingTable.tsx:183 +msgid "Filter by user" +msgstr "" + +#: src/tables/settings/BarcodeScanHistoryTable.tsx:218 +msgid "Filter by result" +msgstr "" + +#: src/tables/settings/BarcodeScanHistoryTable.tsx:232 +msgid "Delete Barcode Scan Record" +msgstr "" + +#: src/tables/settings/BarcodeScanHistoryTable.tsx:258 +msgid "Barcode Scan Details" +msgstr "" + +#: src/tables/settings/BarcodeScanHistoryTable.tsx:268 +msgid "Logging Disabled" +msgstr "" + +#: src/tables/settings/BarcodeScanHistoryTable.tsx:270 +msgid "Barcode logging is not enabled" +msgstr "" + +#: src/tables/settings/CustomStateTable.tsx:36 +msgid "Display Name" +msgstr "" + +#: src/tables/settings/CustomStateTable.tsx:52 +msgid "Model" +msgstr "" + +#: src/tables/settings/CustomStateTable.tsx:65 +#: src/tables/settings/CustomStateTable.tsx:115 +msgid "Add State" +msgstr "" + +#: src/tables/settings/CustomStateTable.tsx:77 +msgid "Edit State" +msgstr "" + +#: src/tables/settings/CustomStateTable.tsx:85 +msgid "Delete State" +msgstr "" + +#: src/tables/settings/CustomStateTable.tsx:115 +#~ msgid "Add state" +#~ msgstr "Add state" + #: src/tables/settings/CustomUnitsTable.tsx:50 msgid "Add Custom Unit" msgstr "" @@ -7312,59 +8540,71 @@ msgstr "" msgid "Add custom unit" msgstr "" -#: src/tables/settings/ErrorTable.tsx:31 -msgid "When" -msgstr "" - -#: src/tables/settings/ErrorTable.tsx:41 -msgid "Error Information" -msgstr "" - #: src/tables/settings/ErrorTable.tsx:51 #~ msgid "Delete error report" #~ msgstr "Delete error report" -#: src/tables/settings/ErrorTable.tsx:53 +#: src/tables/settings/ErrorTable.tsx:67 +msgid "Traceback" +msgstr "" + +#: src/tables/settings/ErrorTable.tsx:103 +msgid "When" +msgstr "" + +#: src/tables/settings/ErrorTable.tsx:113 +msgid "Error Information" +msgstr "" + +#: src/tables/settings/ErrorTable.tsx:123 msgid "Delete Error Report" msgstr "" -#: src/tables/settings/ErrorTable.tsx:55 +#: src/tables/settings/ErrorTable.tsx:125 msgid "Are you sure you want to delete this error report?" msgstr "" -#: src/tables/settings/ErrorTable.tsx:57 +#: src/tables/settings/ErrorTable.tsx:127 msgid "Error report deleted" msgstr "" -#: src/tables/settings/ErrorTable.tsx:79 -#: src/tables/settings/FailedTasksTable.tsx:59 +#: src/tables/settings/ErrorTable.tsx:146 +#: src/tables/settings/FailedTasksTable.tsx:65 msgid "Error Details" msgstr "" -#: src/tables/settings/FailedTasksTable.tsx:26 -#: src/tables/settings/PendingTasksTable.tsx:19 +#: src/tables/settings/FailedTasksTable.tsx:32 +#: src/tables/settings/PendingTasksTable.tsx:23 #: src/tables/settings/ScheduledTasksTable.tsx:19 msgid "Task" msgstr "" -#: src/tables/settings/FailedTasksTable.tsx:32 -#: src/tables/settings/PendingTasksTable.tsx:24 +#: src/tables/settings/FailedTasksTable.tsx:38 +#: src/tables/settings/PendingTasksTable.tsx:28 msgid "Task ID" msgstr "" -#: src/tables/settings/FailedTasksTable.tsx:36 -#: src/tables/stock/StockItemTestResultTable.tsx:211 +#: src/tables/settings/FailedTasksTable.tsx:42 +#: src/tables/stock/StockItemTestResultTable.tsx:218 msgid "Started" msgstr "" -#: src/tables/settings/FailedTasksTable.tsx:42 +#: src/tables/settings/FailedTasksTable.tsx:48 msgid "Stopped" msgstr "" -#: src/tables/settings/FailedTasksTable.tsx:48 +#: src/tables/settings/FailedTasksTable.tsx:54 msgid "Attempts" msgstr "" +#: src/tables/settings/FailedTasksTable.tsx:92 +msgid "No Information" +msgstr "" + +#: src/tables/settings/FailedTasksTable.tsx:93 +msgid "No error details are available for this task" +msgstr "" + #: src/tables/settings/GroupTable.tsx:90 msgid "Group with id {id} not found" msgstr "" @@ -7398,42 +8638,34 @@ msgstr "" msgid "Edit group" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:38 +#: src/tables/settings/ImportSessionTable.tsx:37 msgid "Delete Import Session" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:44 +#: src/tables/settings/ImportSessionTable.tsx:43 #: src/tables/settings/ImportSessionTable.tsx:131 msgid "Create Import Session" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:69 +#: src/tables/settings/ImportSessionTable.tsx:68 msgid "Uploaded" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:79 -msgid "Imported Rows" -msgstr "" - -#: src/tables/settings/ImportSessionTable.tsx:109 -#: src/tables/settings/TemplateTable.tsx:289 +#: src/tables/settings/ImportSessionTable.tsx:108 +#: src/tables/settings/TemplateTable.tsx:369 msgid "Model Type" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:110 -#: src/tables/settings/TemplateTable.tsx:290 +#: src/tables/settings/ImportSessionTable.tsx:109 +#: src/tables/settings/TemplateTable.tsx:370 msgid "Filter by target model type" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:116 +#: src/tables/settings/ImportSessionTable.tsx:115 msgid "Filter by import session status" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:122 -msgid "Filter by user" -msgstr "" - -#: src/tables/settings/PendingTasksTable.tsx:38 +#: src/tables/settings/PendingTasksTable.tsx:42 msgid "Arguments" msgstr "" @@ -7461,12 +8693,16 @@ msgstr "" msgid "Next Run" msgstr "" -#: src/tables/settings/TemplateTable.tsx:85 -msgid "Template not found" +#: src/tables/settings/StocktakeReportTable.tsx:28 +msgid "Report" msgstr "" -#: src/tables/settings/TemplateTable.tsx:87 -msgid "An error occurred while fetching template details" +#: src/tables/settings/StocktakeReportTable.tsx:35 +msgid "Part Count" +msgstr "" + +#: src/tables/settings/StocktakeReportTable.tsx:58 +msgid "Delete Report" msgstr "" #: src/tables/settings/TemplateTable.tsx:120 @@ -7481,21 +8717,12 @@ msgstr "" #~ msgid "actions" #~ msgstr "actions" -#: src/tables/settings/TemplateTable.tsx:177 -msgid "Modify" +#: src/tables/settings/TemplateTable.tsx:162 +msgid "Template not found" msgstr "" -#: src/tables/settings/TemplateTable.tsx:178 -msgid "Modify template file" -msgstr "" - -#: src/tables/settings/TemplateTable.tsx:234 -#: src/tables/settings/TemplateTable.tsx:302 -msgid "Edit Template" -msgstr "" - -#: src/tables/settings/TemplateTable.tsx:242 -msgid "Delete template" +#: src/tables/settings/TemplateTable.tsx:164 +msgid "An error occurred while fetching template details" msgstr "" #: src/tables/settings/TemplateTable.tsx:243 @@ -7506,103 +8733,137 @@ msgstr "" #~ msgid "Create new" #~ msgstr "Create new" -#: src/tables/settings/TemplateTable.tsx:248 +#: src/tables/settings/TemplateTable.tsx:257 +msgid "Modify" +msgstr "" + +#: src/tables/settings/TemplateTable.tsx:258 +msgid "Modify template file" +msgstr "" + +#: src/tables/settings/TemplateTable.tsx:314 +#: src/tables/settings/TemplateTable.tsx:382 +msgid "Edit Template" +msgstr "" + +#: src/tables/settings/TemplateTable.tsx:322 +msgid "Delete template" +msgstr "" + +#: src/tables/settings/TemplateTable.tsx:328 msgid "Add Template" msgstr "" -#: src/tables/settings/TemplateTable.tsx:261 +#: src/tables/settings/TemplateTable.tsx:341 msgid "Add template" msgstr "" -#: src/tables/settings/TemplateTable.tsx:284 +#: src/tables/settings/TemplateTable.tsx:364 msgid "Filter by enabled status" msgstr "" -#: src/tables/settings/UserTable.tsx:82 +#: src/tables/settings/UserTable.tsx:81 msgid "User with id {id} not found" msgstr "" -#: src/tables/settings/UserTable.tsx:84 +#: src/tables/settings/UserTable.tsx:83 msgid "An error occurred while fetching user details" msgstr "" -#: src/tables/settings/UserTable.tsx:102 +#: src/tables/settings/UserTable.tsx:101 msgid "Is Active" msgstr "" -#: src/tables/settings/UserTable.tsx:103 +#: src/tables/settings/UserTable.tsx:102 msgid "Designates whether this user should be treated as active. Unselect this instead of deleting accounts." msgstr "" -#: src/tables/settings/UserTable.tsx:107 +#: src/tables/settings/UserTable.tsx:106 msgid "Is Staff" msgstr "" -#: src/tables/settings/UserTable.tsx:108 +#: src/tables/settings/UserTable.tsx:107 msgid "Designates whether the user can log into the django admin site." msgstr "" -#: src/tables/settings/UserTable.tsx:112 +#: src/tables/settings/UserTable.tsx:111 msgid "Is Superuser" msgstr "" -#: src/tables/settings/UserTable.tsx:113 +#: src/tables/settings/UserTable.tsx:112 msgid "Designates that this user has all permissions without explicitly assigning them." msgstr "" -#: src/tables/settings/UserTable.tsx:123 +#: src/tables/settings/UserTable.tsx:122 msgid "You cannot edit the rights for the currently logged-in user." msgstr "" -#: src/tables/settings/UserTable.tsx:154 +#: src/tables/settings/UserTable.tsx:153 msgid "No groups" msgstr "" -#: src/tables/settings/UserTable.tsx:245 +#: src/tables/settings/UserTable.tsx:244 msgid "Delete user" msgstr "" -#: src/tables/settings/UserTable.tsx:246 +#: src/tables/settings/UserTable.tsx:245 msgid "User deleted" msgstr "" -#: src/tables/settings/UserTable.tsx:248 +#: src/tables/settings/UserTable.tsx:247 msgid "Are you sure you want to delete this user?" msgstr "" -#: src/tables/settings/UserTable.tsx:254 -#: src/tables/settings/UserTable.tsx:272 +#: src/tables/settings/UserTable.tsx:253 +#: src/tables/settings/UserTable.tsx:271 msgid "Add user" msgstr "" -#: src/tables/settings/UserTable.tsx:262 +#: src/tables/settings/UserTable.tsx:261 msgid "Added user" msgstr "" -#: src/tables/settings/UserTable.tsx:285 +#: src/tables/settings/UserTable.tsx:284 msgid "Show active users" msgstr "" -#: src/tables/settings/UserTable.tsx:289 +#: src/tables/settings/UserTable.tsx:288 msgid "Staff" msgstr "" -#: src/tables/settings/UserTable.tsx:290 +#: src/tables/settings/UserTable.tsx:289 msgid "Show staff users" msgstr "" #: src/tables/settings/UserTable.tsx:294 -msgid "Superuser" -msgstr "" - -#: src/tables/settings/UserTable.tsx:295 msgid "Show superusers" msgstr "" -#: src/tables/settings/UserTable.tsx:305 +#: src/tables/settings/UserTable.tsx:304 msgid "Edit user" msgstr "" +#: src/tables/stock/InstalledItemsTable.tsx:37 +#: src/tables/stock/InstalledItemsTable.tsx:90 +msgid "Install Item" +msgstr "" + +#: src/tables/stock/InstalledItemsTable.tsx:39 +msgid "Item installed" +msgstr "" + +#: src/tables/stock/InstalledItemsTable.tsx:50 +msgid "Uninstall Item" +msgstr "" + +#: src/tables/stock/InstalledItemsTable.tsx:52 +msgid "Item uninstalled" +msgstr "" + +#: src/tables/stock/InstalledItemsTable.tsx:108 +msgid "Uninstall stock item" +msgstr "" + #: src/tables/stock/LocationTypesTable.tsx:39 #: src/tables/stock/LocationTypesTable.tsx:109 msgid "Add Location Type" @@ -7620,276 +8881,272 @@ msgstr "" msgid "Icon" msgstr "" -#: src/tables/stock/StockItemTable.tsx:101 +#: src/tables/stock/StockItemTable.tsx:90 msgid "This stock item is in production" msgstr "" -#: src/tables/stock/StockItemTable.tsx:110 +#: src/tables/stock/StockItemTable.tsx:97 msgid "This stock item has been assigned to a sales order" msgstr "" -#: src/tables/stock/StockItemTable.tsx:119 +#: src/tables/stock/StockItemTable.tsx:104 msgid "This stock item has been assigned to a customer" msgstr "" -#: src/tables/stock/StockItemTable.tsx:128 +#: src/tables/stock/StockItemTable.tsx:111 msgid "This stock item is installed in another stock item" msgstr "" -#: src/tables/stock/StockItemTable.tsx:137 +#: src/tables/stock/StockItemTable.tsx:118 msgid "This stock item has been consumed by a build order" msgstr "" -#: src/tables/stock/StockItemTable.tsx:146 +#: src/tables/stock/StockItemTable.tsx:125 +msgid "This stock item is unavailable" +msgstr "" + +#: src/tables/stock/StockItemTable.tsx:134 msgid "This stock item has expired" msgstr "" -#: src/tables/stock/StockItemTable.tsx:150 +#: src/tables/stock/StockItemTable.tsx:138 msgid "This stock item is stale" msgstr "" -#: src/tables/stock/StockItemTable.tsx:161 +#: src/tables/stock/StockItemTable.tsx:150 msgid "This stock item is fully allocated" msgstr "" -#: src/tables/stock/StockItemTable.tsx:168 +#: src/tables/stock/StockItemTable.tsx:157 msgid "This stock item is partially allocated" msgstr "" -#: src/tables/stock/StockItemTable.tsx:196 +#: src/tables/stock/StockItemTable.tsx:185 msgid "This stock item has been depleted" msgstr "" -#: src/tables/stock/StockItemTable.tsx:232 +#: src/tables/stock/StockItemTable.tsx:280 msgid "Stocktake Date" msgstr "" -#: src/tables/stock/StockItemTable.tsx:236 -msgid "Expiry Date" -msgstr "" - -#: src/tables/stock/StockItemTable.tsx:260 -msgid "Stock Value" -msgstr "" - -#: src/tables/stock/StockItemTable.tsx:290 +#: src/tables/stock/StockItemTable.tsx:294 msgid "Show stock for active parts" msgstr "" -#: src/tables/stock/StockItemTable.tsx:295 +#: src/tables/stock/StockItemTable.tsx:299 msgid "Filter by stock status" msgstr "" #: src/tables/stock/StockItemTable.tsx:301 -msgid "Show stock for assmebled parts" +#~ msgid "Show stock for assmebled parts" +#~ msgstr "Show stock for assmebled parts" + +#: src/tables/stock/StockItemTable.tsx:305 +msgid "Show stock for assembled parts" msgstr "" -#: src/tables/stock/StockItemTable.tsx:306 +#: src/tables/stock/StockItemTable.tsx:310 msgid "Show items which have been allocated" msgstr "" -#: src/tables/stock/StockItemTable.tsx:311 +#: src/tables/stock/StockItemTable.tsx:315 msgid "Show items which are available" msgstr "" -#: src/tables/stock/StockItemTable.tsx:315 +#: src/tables/stock/StockItemTable.tsx:319 #: src/tables/stock/StockLocationTable.tsx:44 msgid "Include Sublocations" msgstr "" -#: src/tables/stock/StockItemTable.tsx:316 +#: src/tables/stock/StockItemTable.tsx:320 msgid "Include stock in sublocations" msgstr "" -#: src/tables/stock/StockItemTable.tsx:320 +#: src/tables/stock/StockItemTable.tsx:324 msgid "Depleted" msgstr "" -#: src/tables/stock/StockItemTable.tsx:321 +#: src/tables/stock/StockItemTable.tsx:325 msgid "Show depleted stock items" msgstr "" -#: src/tables/stock/StockItemTable.tsx:326 +#: src/tables/stock/StockItemTable.tsx:330 msgid "Show items which are in stock" msgstr "" -#: src/tables/stock/StockItemTable.tsx:331 +#: src/tables/stock/StockItemTable.tsx:335 msgid "Show items which are in production" msgstr "" -#: src/tables/stock/StockItemTable.tsx:336 +#: src/tables/stock/StockItemTable.tsx:340 msgid "Include stock items for variant parts" msgstr "" -#: src/tables/stock/StockItemTable.tsx:341 +#: src/tables/stock/StockItemTable.tsx:345 msgid "Show stock items which are installed in other items" msgstr "" -#: src/tables/stock/StockItemTable.tsx:345 +#: src/tables/stock/StockItemTable.tsx:349 msgid "Sent to Customer" msgstr "" -#: src/tables/stock/StockItemTable.tsx:346 +#: src/tables/stock/StockItemTable.tsx:350 msgid "Show items which have been sent to a customer" msgstr "" -#: src/tables/stock/StockItemTable.tsx:350 +#: src/tables/stock/StockItemTable.tsx:354 msgid "Is Serialized" msgstr "" -#: src/tables/stock/StockItemTable.tsx:351 +#: src/tables/stock/StockItemTable.tsx:355 msgid "Show items which have a serial number" msgstr "" -#: src/tables/stock/StockItemTable.tsx:358 +#: src/tables/stock/StockItemTable.tsx:362 msgid "Has Batch Code" msgstr "" -#: src/tables/stock/StockItemTable.tsx:359 +#: src/tables/stock/StockItemTable.tsx:363 msgid "Show items which have a batch code" msgstr "" -#: src/tables/stock/StockItemTable.tsx:365 +#: src/tables/stock/StockItemTable.tsx:369 msgid "Show tracked items" msgstr "" -#: src/tables/stock/StockItemTable.tsx:369 +#: src/tables/stock/StockItemTable.tsx:373 msgid "Has Purchase Price" msgstr "" -#: src/tables/stock/StockItemTable.tsx:370 +#: src/tables/stock/StockItemTable.tsx:374 msgid "Show items which have a purchase price" msgstr "" -#: src/tables/stock/StockItemTable.tsx:378 +#: src/tables/stock/StockItemTable.tsx:382 msgid "External Location" msgstr "" -#: src/tables/stock/StockItemTable.tsx:379 +#: src/tables/stock/StockItemTable.tsx:383 msgid "Show items in an external location" msgstr "" -#: src/tables/stock/StockItemTable.tsx:451 +#: src/tables/stock/StockItemTable.tsx:456 msgid "Add a new stock item" msgstr "" -#: src/tables/stock/StockItemTable.tsx:460 +#: src/tables/stock/StockItemTable.tsx:465 msgid "Remove some quantity from a stock item" msgstr "" -#: src/tables/stock/StockItemTable.tsx:482 +#: src/tables/stock/StockItemTable.tsx:487 msgid "Move Stock items to new locations" msgstr "" -#: src/tables/stock/StockItemTable.tsx:489 +#: src/tables/stock/StockItemTable.tsx:494 msgid "Change stock status" msgstr "" -#: src/tables/stock/StockItemTable.tsx:491 +#: src/tables/stock/StockItemTable.tsx:496 msgid "Change the status of stock items" msgstr "" -#: src/tables/stock/StockItemTable.tsx:498 +#: src/tables/stock/StockItemTable.tsx:503 msgid "Merge stock" msgstr "" -#: src/tables/stock/StockItemTable.tsx:500 +#: src/tables/stock/StockItemTable.tsx:505 msgid "Merge stock items" msgstr "" -#: src/tables/stock/StockItemTable.tsx:509 -#: src/tables/stock/StockItemTable.tsx:516 +#: src/tables/stock/StockItemTable.tsx:514 +#: src/tables/stock/StockItemTable.tsx:521 msgid "Order new stock" msgstr "" -#: src/tables/stock/StockItemTable.tsx:514 +#: src/tables/stock/StockItemTable.tsx:519 msgid "Assign to customer" msgstr "" -#: src/tables/stock/StockItemTable.tsx:523 +#: src/tables/stock/StockItemTable.tsx:528 msgid "Delete stock" msgstr "" -#: src/tables/stock/StockItemTable.tsx:525 -msgid "Delete stock items" -msgstr "" +#: src/tables/stock/StockItemTable.tsx:528 +#~ msgid "Delete stock items" +#~ msgstr "Delete stock items" -#: src/tables/stock/StockItemTestResultTable.tsx:131 +#: src/tables/stock/StockItemTestResultTable.tsx:137 msgid "Test" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:157 +#: src/tables/stock/StockItemTestResultTable.tsx:163 msgid "Test result for installed stock item" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:168 -msgid "Result" -msgstr "" - -#: src/tables/stock/StockItemTestResultTable.tsx:190 +#: src/tables/stock/StockItemTestResultTable.tsx:196 msgid "Attachment" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:206 +#: src/tables/stock/StockItemTestResultTable.tsx:212 msgid "Test station" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:226 +#: src/tables/stock/StockItemTestResultTable.tsx:234 msgid "Finished" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:268 -#: src/tables/stock/StockItemTestResultTable.tsx:339 +#: src/tables/stock/StockItemTestResultTable.tsx:286 +#: src/tables/stock/StockItemTestResultTable.tsx:357 msgid "Edit Test Result" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:270 +#: src/tables/stock/StockItemTestResultTable.tsx:288 msgid "Test result updated" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:276 -#: src/tables/stock/StockItemTestResultTable.tsx:348 +#: src/tables/stock/StockItemTestResultTable.tsx:294 +#: src/tables/stock/StockItemTestResultTable.tsx:366 msgid "Delete Test Result" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:278 +#: src/tables/stock/StockItemTestResultTable.tsx:296 msgid "Test result deleted" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:292 +#: src/tables/stock/StockItemTestResultTable.tsx:310 msgid "Test Passed" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:293 +#: src/tables/stock/StockItemTestResultTable.tsx:311 msgid "Test result has been recorded" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:300 +#: src/tables/stock/StockItemTestResultTable.tsx:318 msgid "Failed to record test result" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:317 +#: src/tables/stock/StockItemTestResultTable.tsx:335 msgid "Pass Test" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:366 +#: src/tables/stock/StockItemTestResultTable.tsx:384 msgid "Show results for required tests" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:370 +#: src/tables/stock/StockItemTestResultTable.tsx:388 msgid "Include Installed" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:371 +#: src/tables/stock/StockItemTestResultTable.tsx:389 msgid "Show results for installed stock items" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:375 -#: src/tables/stock/TestStatisticsTable.tsx:74 +#: src/tables/stock/StockItemTestResultTable.tsx:393 +#: src/tables/stock/TestStatisticsTable.tsx:62 msgid "Passed" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:376 +#: src/tables/stock/StockItemTestResultTable.tsx:394 msgid "Show only passed tests" msgstr "" @@ -7922,28 +9179,32 @@ msgid "Filter by location type" msgstr "" #: src/tables/stock/StockLocationTable.tsx:107 -#: src/tables/stock/StockLocationTable.tsx:133 +#: src/tables/stock/StockLocationTable.tsx:134 msgid "Add Stock Location" msgstr "" -#: src/tables/stock/StockTrackingTable.tsx:64 +#: src/tables/stock/StockTrackingTable.tsx:68 msgid "Added" msgstr "" -#: src/tables/stock/StockTrackingTable.tsx:69 +#: src/tables/stock/StockTrackingTable.tsx:73 msgid "Removed" msgstr "" #: src/tables/stock/StockTrackingTable.tsx:198 +msgid "Details" +msgstr "詳細" + +#: src/tables/stock/StockTrackingTable.tsx:213 msgid "No user information" msgstr "" -#: src/tables/stock/TestStatisticsTable.tsx:46 -#: src/tables/stock/TestStatisticsTable.tsx:76 +#: src/tables/stock/TestStatisticsTable.tsx:34 +#: src/tables/stock/TestStatisticsTable.tsx:64 msgid "Total" msgstr "" -#: src/tables/stock/TestStatisticsTable.tsx:75 +#: src/tables/stock/TestStatisticsTable.tsx:63 msgid "Failed" msgstr "" diff --git a/src/frontend/src/locales/ko/messages.po b/src/frontend/src/locales/ko/messages.po index edfa7801ca..f9e8e17f2b 100644 --- a/src/frontend/src/locales/ko/messages.po +++ b/src/frontend/src/locales/ko/messages.po @@ -8,15 +8,15 @@ msgstr "" "Language: ko\n" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"PO-Revision-Date: 2024-08-20 19:50\n" +"PO-Revision-Date: 2024-11-04 03:14\n" "Last-Translator: \n" "Language-Team: Korean\n" "Plural-Forms: nplurals=1; plural=0;\n" "X-Crowdin-Project: inventree\n" "X-Crowdin-Project-ID: 452300\n" "X-Crowdin-Language: ko\n" -"X-Crowdin-File: /[inventree.InvenTree] l10/src/frontend/src/locales/en/messages.po\n" -"X-Crowdin-File-ID: 205\n" +"X-Crowdin-File: /src/frontend/src/locales/en/messages.po\n" +"X-Crowdin-File-ID: 252\n" #: src/components/Boundary.tsx:12 msgid "Error rendering component" @@ -27,8 +27,8 @@ msgid "An error occurred while rendering this component. Refer to the console fo msgstr "" #: src/components/DashboardItemProxy.tsx:34 -msgid "Title" -msgstr "" +#~ msgid "Title" +#~ msgstr "Title" #: src/components/buttons/AdminButton.tsx:80 msgid "Open in admin interface" @@ -38,82 +38,99 @@ msgstr "" #~ msgid "Copy to clipboard" #~ msgstr "Copy to clipboard" -#: src/components/buttons/CopyButton.tsx:24 +#: src/components/buttons/CopyButton.tsx:29 msgid "Copied" msgstr "" -#: src/components/buttons/CopyButton.tsx:24 +#: src/components/buttons/CopyButton.tsx:29 msgid "Copy" msgstr "" -#: src/components/buttons/PrintingActions.tsx:93 +#: src/components/buttons/PrintingActions.tsx:97 msgid "Print Label" msgstr "" -#: src/components/buttons/PrintingActions.tsx:99 +#: src/components/buttons/PrintingActions.tsx:103 msgid "Print" msgstr "" -#: src/components/buttons/PrintingActions.tsx:100 +#: src/components/buttons/PrintingActions.tsx:104 msgid "Label printing completed successfully" msgstr "" -#: src/components/buttons/PrintingActions.tsx:106 -#: src/components/buttons/PrintingActions.tsx:144 -#: src/components/editors/NotesEditor.tsx:65 -#: src/components/editors/NotesEditor.tsx:165 -#: src/components/forms/fields/ApiFormField.tsx:319 +#: src/components/buttons/PrintingActions.tsx:110 +#: src/components/buttons/PrintingActions.tsx:148 +#: src/components/editors/NotesEditor.tsx:73 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:154 +#: src/components/forms/fields/ApiFormField.tsx:328 +#: src/components/forms/fields/TableField.tsx:43 #: src/components/importer/ImportDataSelector.tsx:187 -#: src/components/importer/ImporterColumnSelector.tsx:207 +#: src/components/importer/ImporterColumnSelector.tsx:210 #: src/components/modals/LicenseModal.tsx:75 -#: src/components/nav/SearchDrawer.tsx:448 +#: src/components/nav/SearchDrawer.tsx:458 +#: src/components/render/ModelType.tsx:290 #: src/pages/ErrorPage.tsx:11 -#: src/pages/part/PartPricingPanel.tsx:67 -#: src/tables/InvenTreeTable.tsx:495 +#: src/pages/part/PartPricingPanel.tsx:71 +#: src/tables/InvenTreeTable.tsx:481 #: src/tables/bom/BomTable.tsx:450 -#: src/tables/stock/StockItemTestResultTable.tsx:299 +#: src/tables/stock/StockItemTestResultTable.tsx:317 msgid "Error" msgstr "" -#: src/components/buttons/PrintingActions.tsx:107 +#: src/components/buttons/PrintingActions.tsx:111 msgid "The label could not be generated" msgstr "" -#: src/components/buttons/PrintingActions.tsx:122 +#: src/components/buttons/PrintingActions.tsx:126 msgid "Print Report" msgstr "" -#: src/components/buttons/PrintingActions.tsx:138 +#: src/components/buttons/PrintingActions.tsx:142 msgid "Generate" msgstr "" -#: src/components/buttons/PrintingActions.tsx:139 +#: src/components/buttons/PrintingActions.tsx:143 msgid "Report printing completed successfully" msgstr "" -#: src/components/buttons/PrintingActions.tsx:145 +#: src/components/buttons/PrintingActions.tsx:149 msgid "The report could not be generated" msgstr "" -#: src/components/buttons/PrintingActions.tsx:173 +#: src/components/buttons/PrintingActions.tsx:177 msgid "Printing Actions" msgstr "" -#: src/components/buttons/PrintingActions.tsx:178 +#: src/components/buttons/PrintingActions.tsx:182 msgid "Print Labels" msgstr "" -#: src/components/buttons/PrintingActions.tsx:184 +#: src/components/buttons/PrintingActions.tsx:188 msgid "Print Reports" msgstr "" +#: src/components/buttons/RemoveRowButton.tsx:8 +msgid "Remove this row" +msgstr "" + #: src/components/buttons/ScanButton.tsx:15 -msgid "Scan QR code" +#: src/components/nav/NavigationDrawer.tsx:117 +#: src/forms/PurchaseOrderForms.tsx:379 +#: src/forms/PurchaseOrderForms.tsx:473 +msgid "Scan Barcode" +msgstr "" + +#: src/components/buttons/ScanButton.tsx:15 +#~ msgid "Scan QR code" +#~ msgstr "Scan QR code" + +#: src/components/buttons/ScanButton.tsx:20 +msgid "Open Barcode Scanner" msgstr "" #: src/components/buttons/ScanButton.tsx:20 -msgid "Open QR code scanner" -msgstr "" +#~ msgid "Open QR code scanner" +#~ msgstr "Open QR code scanner" #: src/components/buttons/SpotlightButton.tsx:14 msgid "Open spotlight" @@ -128,85 +145,347 @@ msgid "Fail" msgstr "" #: src/components/buttons/YesNoButton.tsx:33 -#: src/tables/Filter.tsx:52 +#: src/tables/Filter.tsx:61 msgid "Yes" msgstr "" #: src/components/buttons/YesNoButton.tsx:33 -#: src/tables/Filter.tsx:53 +#: src/tables/Filter.tsx:62 msgid "No" msgstr "" -#: src/components/details/Details.tsx:301 +#: src/components/dashboard/DashboardLayout.tsx:286 +msgid "No Widgets Selected" +msgstr "" + +#: src/components/dashboard/DashboardLayout.tsx:289 +msgid "Use the menu to add widgets to the dashboard" +msgstr "" + +#: src/components/dashboard/DashboardMenu.tsx:59 +#: src/components/dashboard/DashboardMenu.tsx:126 +msgid "Accept Layout" +msgstr "" + +#: src/components/dashboard/DashboardMenu.tsx:91 +#: src/components/nav/NavigationDrawer.tsx:71 +#: src/defaults/actions.tsx:17 +#: src/defaults/links.tsx:9 +#: src/pages/Index/Settings/UserSettings.tsx:47 +msgid "Dashboard" +msgstr "" + +#: src/components/dashboard/DashboardMenu.tsx:99 +msgid "Edit Layout" +msgstr "" + +#: src/components/dashboard/DashboardMenu.tsx:108 +msgid "Add Widget" +msgstr "" + +#: src/components/dashboard/DashboardMenu.tsx:117 +msgid "Remove Widgets" +msgstr "" + +#: src/components/dashboard/DashboardWidget.tsx:65 +msgid "Remove this widget from the dashboard" +msgstr "" + +#: src/components/dashboard/DashboardWidgetDrawer.tsx:77 +msgid "Filter dashboard widgets" +msgstr "" + +#: src/components/dashboard/DashboardWidgetDrawer.tsx:98 +msgid "Add this widget to the dashboard" +msgstr "" + +#: src/components/dashboard/DashboardWidgetDrawer.tsx:123 +msgid "No Widgets Available" +msgstr "" + +#: src/components/dashboard/DashboardWidgetDrawer.tsx:124 +msgid "There are no more widgets available for the dashboard" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:19 +msgid "Subscribed Parts" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:20 +msgid "Show the number of parts which you have subscribed to" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:26 +msgid "Subscribed Categories" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:27 +msgid "Show the number of part categories which you have subscribed to" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:35 +#: src/pages/part/PartSchedulingDetail.tsx:304 +#: src/tables/part/PartTable.tsx:238 +msgid "Low Stock" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:37 +msgid "Show the number of parts which are low on stock" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:43 +msgid "Expired Stock Items" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:45 +msgid "Show the number of stock items which have expired" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:51 +msgid "Stale Stock Items" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:53 +msgid "Show the number of stock items which are stale" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:59 +msgid "Active Build Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:61 +msgid "Show the number of build orders which are currently active" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:66 +msgid "Overdue Build Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:68 +msgid "Show the number of build orders which are overdue" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:73 +msgid "Assigned Build Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:75 +msgid "Show the number of build orders which are assigned to you" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:80 +msgid "Active Sales Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:82 +msgid "Show the number of sales orders which are currently active" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:87 +msgid "Overdue Sales Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:89 +msgid "Show the number of sales orders which are overdue" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:94 +msgid "Assigned Sales Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:96 +msgid "Show the number of sales orders which are assigned to you" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:101 +msgid "Active Purchase Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:103 +msgid "Show the number of purchase orders which are currently active" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:108 +msgid "Overdue Purchase Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:110 +msgid "Show the number of purchase orders which are overdue" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:115 +msgid "Assigned Purchase Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:117 +msgid "Show the number of purchase orders which are assigned to you" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:122 +msgid "Active Return Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:124 +msgid "Show the number of return orders which are currently active" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:129 +msgid "Overdue Return Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:131 +msgid "Show the number of return orders which are overdue" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:136 +msgid "Assigned Return Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:138 +msgid "Show the number of return orders which are assigned to you" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:149 +#: src/components/dashboard/widgets/GetStartedWidget.tsx:15 +#: src/defaults/links.tsx:38 +msgid "Getting Started" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:150 +#: src/defaults/links.tsx:41 +msgid "Getting started with InvenTree" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:157 +#: src/components/dashboard/widgets/NewsWidget.tsx:123 +msgid "News Updates" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:158 +msgid "The latest news from InvenTree" +msgstr "" + +#: src/components/dashboard/widgets/ColorToggleWidget.tsx:18 +#: src/components/nav/MainMenu.tsx:77 +msgid "Change Color Mode" +msgstr "" + +#: src/components/dashboard/widgets/ColorToggleWidget.tsx:23 +msgid "Change the color mode of the user interface" +msgstr "" + +#: src/components/dashboard/widgets/LanguageSelectWidget.tsx:18 +msgid "Change Language" +msgstr "" + +#: src/components/dashboard/widgets/LanguageSelectWidget.tsx:23 +msgid "Change the language of the user interface" +msgstr "" + +#: src/components/dashboard/widgets/NewsWidget.tsx:61 +#: src/components/nav/NotificationDrawer.tsx:88 +#: src/pages/Notifications.tsx:73 +msgid "Mark as read" +msgstr "" + +#: src/components/dashboard/widgets/NewsWidget.tsx:115 +msgid "Requires Superuser" +msgstr "" + +#: src/components/dashboard/widgets/NewsWidget.tsx:116 +msgid "This widget requires superuser permissions" +msgstr "" + +#: src/components/dashboard/widgets/NewsWidget.tsx:133 +msgid "No News" +msgstr "" + +#: src/components/dashboard/widgets/NewsWidget.tsx:134 +msgid "There are no unread news items" +msgstr "" + +#: src/components/details/Details.tsx:300 msgid "No name defined" msgstr "" -#: src/components/details/DetailsImage.tsx:65 +#: src/components/details/DetailsImage.tsx:69 msgid "Remove Image" msgstr "" -#: src/components/details/DetailsImage.tsx:68 +#: src/components/details/DetailsImage.tsx:72 msgid "Remove the associated image from this item?" msgstr "" -#: src/components/details/DetailsImage.tsx:71 -#: src/forms/StockForms.tsx:533 +#: src/components/details/DetailsImage.tsx:75 +#: src/forms/StockForms.tsx:651 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:199 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:306 -#: src/pages/stock/StockDetail.tsx:526 +#: src/pages/stock/StockDetail.tsx:690 msgid "Remove" msgstr "" -#: src/components/details/DetailsImage.tsx:71 -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:158 -#: src/components/items/ActionDropdown.tsx:215 -#: src/components/items/ActionDropdown.tsx:216 -#: src/contexts/ThemeContext.tsx:43 +#: src/components/details/DetailsImage.tsx:75 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:184 +#: src/components/items/ActionDropdown.tsx:268 +#: src/components/items/ActionDropdown.tsx:269 +#: src/contexts/ThemeContext.tsx:45 #: src/hooks/UseForm.tsx:40 -#: src/tables/FilterSelectDrawer.tsx:205 -#: src/tables/build/BuildOutputTable.tsx:286 +#: src/tables/FilterSelectDrawer.tsx:241 +#: src/tables/RowActions.tsx:59 +#: src/tables/build/BuildOutputTable.tsx:434 msgid "Cancel" msgstr "" -#: src/components/details/DetailsImage.tsx:97 +#: src/components/details/DetailsImage.tsx:101 msgid "Drag and drop to upload" msgstr "" -#: src/components/details/DetailsImage.tsx:100 +#: src/components/details/DetailsImage.tsx:104 msgid "Click to select file(s)" msgstr "" -#: src/components/details/DetailsImage.tsx:226 +#: src/components/details/DetailsImage.tsx:230 msgid "Clear" msgstr "" -#: src/components/details/DetailsImage.tsx:232 -#: src/components/forms/ApiForm.tsx:627 -#: src/contexts/ThemeContext.tsx:43 -#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:60 +#: src/components/details/DetailsImage.tsx:236 +#: src/components/forms/ApiForm.tsx:660 +#: src/contexts/ThemeContext.tsx:45 msgid "Submit" msgstr "" -#: src/components/details/DetailsImage.tsx:272 +#: src/components/details/DetailsImage.tsx:280 msgid "Select from existing images" msgstr "" -#: src/components/details/DetailsImage.tsx:280 +#: src/components/details/DetailsImage.tsx:288 msgid "Select Image" msgstr "" -#: src/components/details/DetailsImage.tsx:292 +#: src/components/details/DetailsImage.tsx:304 +msgid "Download remote image" +msgstr "" + +#: src/components/details/DetailsImage.tsx:319 msgid "Upload new image" msgstr "" -#: src/components/details/DetailsImage.tsx:299 +#: src/components/details/DetailsImage.tsx:326 msgid "Upload Image" msgstr "" -#: src/components/details/DetailsImage.tsx:312 +#: src/components/details/DetailsImage.tsx:339 msgid "Delete image" msgstr "" +#: src/components/details/DetailsImage.tsx:373 +msgid "Download Image" +msgstr "" + +#: src/components/details/DetailsImage.tsx:378 +msgid "Image downloaded successfully" +msgstr "" + #: src/components/details/PartIcons.tsx:43 #~ msgid "Part is a template part (variants can be made from this part)" #~ msgstr "Part is a template part (variants can be made from this part)" @@ -235,36 +514,57 @@ msgstr "" #~ msgid "Part is virtual (not a physical part)" #~ msgstr "Part is virtual (not a physical part)" -#: src/components/editors/NotesEditor.tsx:66 +#: src/components/editors/NotesEditor.tsx:74 msgid "Image upload failed" msgstr "" -#: src/components/editors/NotesEditor.tsx:156 -#: src/components/forms/ApiForm.tsx:467 +#: src/components/editors/NotesEditor.tsx:83 +#: src/components/editors/NotesEditor.tsx:119 +#: src/components/forms/ApiForm.tsx:475 #: src/tables/bom/BomTable.tsx:441 msgid "Success" msgstr "" -#: src/components/editors/NotesEditor.tsx:157 +#: src/components/editors/NotesEditor.tsx:84 +msgid "Image uploaded successfully" +msgstr "" + +#: src/components/editors/NotesEditor.tsx:120 msgid "Notes saved successfully" msgstr "" -#: src/components/editors/NotesEditor.tsx:166 +#: src/components/editors/NotesEditor.tsx:131 msgid "Failed to save notes" msgstr "" -#: src/components/editors/NotesEditor.tsx:198 -msgid "Preview Notes" +#: src/components/editors/NotesEditor.tsx:134 +msgid "Error Saving Notes" msgstr "" -#: src/components/editors/NotesEditor.tsx:198 -msgid "Edit Notes" -msgstr "" +#: src/components/editors/NotesEditor.tsx:151 +#~ msgid "Disable Editing" +#~ msgstr "Disable Editing" -#: src/components/editors/NotesEditor.tsx:212 +#: src/components/editors/NotesEditor.tsx:154 msgid "Save Notes" msgstr "" +#: src/components/editors/NotesEditor.tsx:173 +msgid "Close Editor" +msgstr "" + +#: src/components/editors/NotesEditor.tsx:180 +msgid "Enable Editing" +msgstr "" + +#: src/components/editors/NotesEditor.tsx:198 +#~ msgid "Preview Notes" +#~ msgstr "Preview Notes" + +#: src/components/editors/NotesEditor.tsx:198 +#~ msgid "Edit Notes" +#~ msgstr "Edit Notes" + #: src/components/editors/TemplateEditor/CodeEditor/index.tsx:9 msgid "Code" msgstr "" @@ -281,40 +581,44 @@ msgstr "" msgid "PDF Preview" msgstr "" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:104 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:115 msgid "Error loading template" msgstr "" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:116 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:127 msgid "Error saving template" msgstr "" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:146 -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:274 -msgid "Save & Reload Preview" -msgstr "" - -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:151 -msgid "Are you sure you want to Save & Reload the preview?" -msgstr "" - #: src/components/editors/TemplateEditor/TemplateEditor.tsx:151 #~ msgid "Save & Reload preview?" #~ msgstr "Save & Reload preview?" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:153 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:155 +msgid "Could not load the template from the server." +msgstr "" + +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:172 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:303 +msgid "Save & Reload Preview" +msgstr "" + +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:177 +msgid "Are you sure you want to Save & Reload the preview?" +msgstr "" + +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:179 msgid "To render the preview the current template needs to be replaced on the server with your modifications which may break the label if it is under active use. Do you want to proceed?" msgstr "" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:157 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:183 msgid "Save & Reload" msgstr "" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:189 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:215 msgid "Preview updated" msgstr "" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:190 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:216 msgid "The preview has been updated successfully." msgstr "" @@ -322,15 +626,15 @@ msgstr "" #~ msgid "Save & Reload preview" #~ msgstr "Save & Reload preview" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:266 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:295 msgid "Reload preview" msgstr "" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:267 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:296 msgid "Use the currently stored template from the server" msgstr "" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:275 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:304 msgid "Save the current template and reload the preview" msgstr "" @@ -338,11 +642,11 @@ msgstr "" #~ msgid "to preview" #~ msgstr "to preview" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:333 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:365 msgid "Select instance to preview" msgstr "" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:377 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:409 msgid "Error rendering template" msgstr "" @@ -379,6 +683,7 @@ msgid "This page does not exist" msgstr "" #: src/components/errors/PermissionDenied.tsx:8 +#: src/functions/notifications.tsx:24 msgid "Permission Denied" msgstr "" @@ -394,8 +699,8 @@ msgstr "" msgid "A server error occurred" msgstr "" -#: src/components/forms/ApiForm.tsx:151 -#: src/components/forms/ApiForm.tsx:555 +#: src/components/forms/ApiForm.tsx:154 +#: src/components/forms/ApiForm.tsx:579 msgid "Form Error" msgstr "" @@ -403,22 +708,22 @@ msgstr "" #~ msgid "Form Errors Exist" #~ msgstr "Form Errors Exist" -#: src/components/forms/ApiForm.tsx:563 +#: src/components/forms/ApiForm.tsx:587 msgid "Errors exist for one or more form fields" msgstr "" -#: src/components/forms/ApiForm.tsx:665 -#: src/tables/plugin/PluginListTable.tsx:388 +#: src/components/forms/ApiForm.tsx:698 +#: src/tables/plugin/PluginListTable.tsx:195 msgid "Update" msgstr "" -#: src/components/forms/ApiForm.tsx:685 -#: src/components/items/ActionDropdown.tsx:195 +#: src/components/forms/ApiForm.tsx:718 +#: src/components/items/ActionDropdown.tsx:248 #: src/hooks/UseForm.tsx:122 -#: src/pages/Index/Scan.tsx:343 +#: src/pages/Index/Scan.tsx:357 #: src/pages/Notifications.tsx:123 -#: src/tables/RowActions.tsx:43 -#: src/tables/plugin/PluginListTable.tsx:420 +#: src/tables/RowActions.tsx:49 +#: src/tables/plugin/PluginListTable.tsx:232 msgid "Delete" msgstr "" @@ -428,14 +733,6 @@ msgstr "" #~ msgid "Check your your input and try again." #~ msgstr "Check your your input and try again." -#: src/components/forms/AuthenticationForm.tsx:51 -msgid "Login successful" -msgstr "" - -#: src/components/forms/AuthenticationForm.tsx:52 -msgid "Logged in successfully" -msgstr "" - #: src/components/forms/AuthenticationForm.tsx:52 #~ msgid "Welcome back!" #~ msgstr "Welcome back!" @@ -444,14 +741,22 @@ msgstr "" #~ msgid "Login successfull" #~ msgstr "Login successfull" -#: src/components/forms/AuthenticationForm.tsx:58 +#: src/components/forms/AuthenticationForm.tsx:55 +msgid "Login successful" +msgstr "" + +#: src/components/forms/AuthenticationForm.tsx:56 +msgid "Logged in successfully" +msgstr "" + +#: src/components/forms/AuthenticationForm.tsx:61 msgid "Login failed" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:59 -#: src/components/forms/AuthenticationForm.tsx:76 -#: src/components/forms/AuthenticationForm.tsx:211 -#: src/functions/auth.tsx:164 +#: src/components/forms/AuthenticationForm.tsx:62 +#: src/components/forms/AuthenticationForm.tsx:79 +#: src/components/forms/AuthenticationForm.tsx:214 +#: src/functions/auth.tsx:175 msgid "Check your input and try again." msgstr "" @@ -460,45 +765,46 @@ msgstr "" #~ msgid "Mail delivery successfull" #~ msgstr "Mail delivery successfull" -#: src/components/forms/AuthenticationForm.tsx:70 -#: src/functions/auth.tsx:155 +#: src/components/forms/AuthenticationForm.tsx:73 +#: src/functions/auth.tsx:166 msgid "Mail delivery successful" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:71 +#: src/components/forms/AuthenticationForm.tsx:74 msgid "Check your inbox for the login link. If you have an account, you will receive a login link. Check in spam too." msgstr "" -#: src/components/forms/AuthenticationForm.tsx:75 +#: src/components/forms/AuthenticationForm.tsx:78 msgid "Mail delivery failed" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:95 +#: src/components/forms/AuthenticationForm.tsx:98 msgid "Or continue with other methods" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:106 -#: src/components/forms/AuthenticationForm.tsx:227 +#: src/components/forms/AuthenticationForm.tsx:109 +#: src/components/forms/AuthenticationForm.tsx:230 +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:67 msgid "Username" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:107 -#: src/components/forms/AuthenticationForm.tsx:228 +#: src/components/forms/AuthenticationForm.tsx:110 +#: src/components/forms/AuthenticationForm.tsx:231 msgid "Your username" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:112 -#: src/components/forms/AuthenticationForm.tsx:240 -#: src/pages/Auth/Set-Password.tsx:106 +#: src/components/forms/AuthenticationForm.tsx:115 +#: src/components/forms/AuthenticationForm.tsx:243 +#: src/pages/Auth/Set-Password.tsx:101 msgid "Password" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:113 -#: src/components/forms/AuthenticationForm.tsx:241 +#: src/components/forms/AuthenticationForm.tsx:116 +#: src/components/forms/AuthenticationForm.tsx:244 msgid "Your password" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:125 +#: src/components/forms/AuthenticationForm.tsx:128 #: src/pages/Auth/Reset.tsx:26 msgid "Reset password" msgstr "" @@ -507,77 +813,79 @@ msgstr "" #~ msgid "Log in" #~ msgstr "Log in" -#: src/components/forms/AuthenticationForm.tsx:134 -#: src/components/forms/AuthenticationForm.tsx:233 +#: src/components/forms/AuthenticationForm.tsx:136 +#~ msgid "I will use username and password" +#~ msgstr "I will use username and password" + +#: src/components/forms/AuthenticationForm.tsx:137 +#: src/components/forms/AuthenticationForm.tsx:236 #: src/pages/Auth/Reset.tsx:31 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:51 msgid "Email" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:135 +#: src/components/forms/AuthenticationForm.tsx:138 #: src/pages/Auth/Reset.tsx:32 -#: src/pages/Auth/Set-Password.tsx:107 +#: src/pages/Auth/Set-Password.tsx:102 msgid "We will send you a link to login - if you are registered" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:136 -#~ msgid "I will use username and password" -#~ msgstr "I will use username and password" - -#: src/components/forms/AuthenticationForm.tsx:151 +#: src/components/forms/AuthenticationForm.tsx:154 msgid "Send me an email" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:153 +#: src/components/forms/AuthenticationForm.tsx:156 msgid "Use username and password" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:162 +#: src/components/forms/AuthenticationForm.tsx:165 msgid "Log In" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:164 +#: src/components/forms/AuthenticationForm.tsx:167 +#: src/pages/Auth/Reset.tsx:41 +#: src/pages/Auth/Set-Password.tsx:107 msgid "Send Email" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:193 +#: src/components/forms/AuthenticationForm.tsx:196 msgid "Registration successful" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:194 +#: src/components/forms/AuthenticationForm.tsx:197 msgid "Please confirm your email address to complete the registration" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:210 +#: src/components/forms/AuthenticationForm.tsx:213 msgid "Input error" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:234 +#: src/components/forms/AuthenticationForm.tsx:237 msgid "This will be used for a confirmation" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:246 +#: src/components/forms/AuthenticationForm.tsx:249 msgid "Password repeat" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:247 +#: src/components/forms/AuthenticationForm.tsx:250 msgid "Repeat password" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:259 -#: src/components/forms/AuthenticationForm.tsx:304 +#: src/components/forms/AuthenticationForm.tsx:262 +#: src/components/forms/AuthenticationForm.tsx:307 msgid "Register" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:265 +#: src/components/forms/AuthenticationForm.tsx:268 msgid "Or use SSO" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:296 +#: src/components/forms/AuthenticationForm.tsx:299 msgid "Don't have an account?" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:315 +#: src/components/forms/AuthenticationForm.tsx:318 msgid "Go back to login" msgstr "" @@ -588,19 +896,20 @@ msgstr "" #: src/components/forms/HostOptionsForm.tsx:42 #: src/components/forms/HostOptionsForm.tsx:70 +#: src/components/plugins/PluginDrawer.tsx:69 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:410 +#: src/pages/Index/Settings/AdminCenter/UnitManagmentPanel.tsx:19 #: src/pages/part/CategoryDetail.tsx:81 -#: src/pages/part/PartDetail.tsx:143 -#: src/pages/stock/LocationDetail.tsx:89 -#: src/tables/machine/MachineTypeTable.tsx:65 -#: src/tables/machine/MachineTypeTable.tsx:109 -#: src/tables/machine/MachineTypeTable.tsx:216 -#: src/tables/machine/MachineTypeTable.tsx:319 +#: src/pages/part/PartDetail.tsx:164 +#: src/pages/stock/LocationDetail.tsx:83 +#: src/tables/machine/MachineTypeTable.tsx:70 +#: src/tables/machine/MachineTypeTable.tsx:119 +#: src/tables/machine/MachineTypeTable.tsx:237 +#: src/tables/machine/MachineTypeTable.tsx:340 #: src/tables/plugin/PluginErrorTable.tsx:33 -#: src/tables/plugin/PluginListTable.tsx:126 #: src/tables/purchasing/ManufacturerPartParameterTable.tsx:32 #: src/tables/settings/GroupTable.tsx:147 -#: src/tables/settings/PendingTasksTable.tsx:28 +#: src/tables/settings/PendingTasksTable.tsx:32 #: src/tables/stock/LocationTypesTable.tsx:69 msgid "Name" msgstr "" @@ -650,7 +959,7 @@ msgid "Uncategorized" msgstr "" #: src/components/forms/fields/IconField.tsx:209 -#: src/components/nav/Layout.tsx:70 +#: src/components/nav/Layout.tsx:77 #: src/tables/part/PartThumbTable.tsx:192 msgid "Search..." msgstr "" @@ -667,28 +976,27 @@ msgstr "" msgid "{0} icons" msgstr "" -#: src/components/forms/fields/RelatedModelField.tsx:318 -#: src/pages/Index/Settings/UserSettings.tsx:96 +#: src/components/forms/fields/RelatedModelField.tsx:319 +#: src/pages/Index/Settings/UserSettings.tsx:97 #: src/tables/Search.tsx:23 msgid "Search" msgstr "" -#: src/components/forms/fields/RelatedModelField.tsx:319 +#: src/components/forms/fields/RelatedModelField.tsx:320 #: src/components/modals/AboutInvenTreeModal.tsx:81 -#: src/components/widgets/WidgetLayout.tsx:120 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:316 msgid "Loading" msgstr "" -#: src/components/forms/fields/RelatedModelField.tsx:321 +#: src/components/forms/fields/RelatedModelField.tsx:322 msgid "No results found" msgstr "" -#: src/components/forms/fields/TableField.tsx:52 -msgid "modelRenderer entry required for tables" -msgstr "" +#: src/components/forms/fields/TableField.tsx:72 +#~ msgid "modelRenderer entry required for tables" +#~ msgstr "modelRenderer entry required for tables" -#: src/components/forms/fields/TableField.tsx:76 +#: src/components/forms/fields/TableField.tsx:167 msgid "No entries available" msgstr "" @@ -741,7 +1049,7 @@ msgid "Filter by row validation status" msgstr "" #: src/components/importer/ImportDataSelector.tsx:365 -#: src/tables/build/BuildOutputTable.tsx:266 +#: src/tables/build/BuildOutputTable.tsx:407 msgid "Complete" msgstr "" @@ -749,20 +1057,21 @@ msgstr "" msgid "Filter by row completion status" msgstr "" -#: src/components/importer/ImportDataSelector.tsx:383 +#: src/components/importer/ImportDataSelector.tsx:384 msgid "Import selected rows" msgstr "" -#: src/components/importer/ImportDataSelector.tsx:398 +#: src/components/importer/ImportDataSelector.tsx:399 msgid "Processing Data" msgstr "" -#: src/components/importer/ImporterColumnSelector.tsx:50 -#: src/components/importer/ImporterColumnSelector.tsx:176 +#: src/components/importer/ImporterColumnSelector.tsx:53 +#: src/components/importer/ImporterColumnSelector.tsx:179 +#: src/components/items/ErrorItem.tsx:12 msgid "An error occurred" msgstr "" -#: src/components/importer/ImporterColumnSelector.tsx:62 +#: src/components/importer/ImporterColumnSelector.tsx:65 msgid "Select column, or leave blank to ignore this field." msgstr "" @@ -778,51 +1087,51 @@ msgstr "" #~ msgid "Imported Column Name" #~ msgstr "Imported Column Name" -#: src/components/importer/ImporterColumnSelector.tsx:182 +#: src/components/importer/ImporterColumnSelector.tsx:185 msgid "Ignore this field" msgstr "" -#: src/components/importer/ImporterColumnSelector.tsx:196 +#: src/components/importer/ImporterColumnSelector.tsx:199 msgid "Mapping data columns to database fields" msgstr "" -#: src/components/importer/ImporterColumnSelector.tsx:201 +#: src/components/importer/ImporterColumnSelector.tsx:204 msgid "Accept Column Mapping" msgstr "" -#: src/components/importer/ImporterColumnSelector.tsx:214 +#: src/components/importer/ImporterColumnSelector.tsx:217 msgid "Database Field" msgstr "" -#: src/components/importer/ImporterColumnSelector.tsx:215 +#: src/components/importer/ImporterColumnSelector.tsx:218 msgid "Field Description" msgstr "" -#: src/components/importer/ImporterColumnSelector.tsx:216 +#: src/components/importer/ImporterColumnSelector.tsx:219 msgid "Imported Column" msgstr "" -#: src/components/importer/ImporterColumnSelector.tsx:217 +#: src/components/importer/ImporterColumnSelector.tsx:220 msgid "Default Value" msgstr "" -#: src/components/importer/ImporterDrawer.tsx:44 +#: src/components/importer/ImporterDrawer.tsx:46 msgid "Upload File" msgstr "" -#: src/components/importer/ImporterDrawer.tsx:45 +#: src/components/importer/ImporterDrawer.tsx:47 msgid "Map Columns" msgstr "" -#: src/components/importer/ImporterDrawer.tsx:46 +#: src/components/importer/ImporterDrawer.tsx:48 msgid "Import Data" msgstr "" -#: src/components/importer/ImporterDrawer.tsx:47 +#: src/components/importer/ImporterDrawer.tsx:49 msgid "Process Data" msgstr "" -#: src/components/importer/ImporterDrawer.tsx:48 +#: src/components/importer/ImporterDrawer.tsx:50 msgid "Complete Import" msgstr "" @@ -830,28 +1139,28 @@ msgstr "" #~ msgid "Cancel import session" #~ msgstr "Cancel import session" -#: src/components/importer/ImporterDrawer.tsx:104 +#: src/components/importer/ImporterDrawer.tsx:106 msgid "Import Complete" msgstr "" -#: src/components/importer/ImporterDrawer.tsx:107 +#: src/components/importer/ImporterDrawer.tsx:109 msgid "Data has been imported successfully" msgstr "" -#: src/components/importer/ImporterDrawer.tsx:109 -#: src/components/importer/ImporterDrawer.tsx:118 +#: src/components/importer/ImporterDrawer.tsx:111 +#: src/components/importer/ImporterDrawer.tsx:120 msgid "Close" msgstr "" -#: src/components/importer/ImporterDrawer.tsx:115 +#: src/components/importer/ImporterDrawer.tsx:117 msgid "Unknown Status" msgstr "" -#: src/components/importer/ImporterDrawer.tsx:116 +#: src/components/importer/ImporterDrawer.tsx:118 msgid "Import session has unknown status" msgstr "" -#: src/components/importer/ImporterDrawer.tsx:135 +#: src/components/importer/ImporterDrawer.tsx:137 msgid "Importing Data" msgstr "" @@ -860,85 +1169,115 @@ msgid "Importing Records" msgstr "" #: src/components/importer/ImporterImportProgress.tsx:39 -msgid "Imported rows" +#: src/tables/settings/ImportSessionTable.tsx:78 +msgid "Imported Rows" msgstr "" -#: src/components/items/ActionDropdown.tsx:121 -msgid "Barcode Actions" +#: src/components/importer/ImporterImportProgress.tsx:39 +#~ msgid "Imported rows" +#~ msgstr "Imported rows" + +#: src/components/items/ActionDropdown.tsx:126 +msgid "Options" msgstr "" #: src/components/items/ActionDropdown.tsx:140 -msgid "View Barcode" -msgstr "" +#~ msgid "View Barcode" +#~ msgstr "View Barcode" -#: src/components/items/ActionDropdown.tsx:147 -msgid "View" -msgstr "" - -#: src/components/items/ActionDropdown.tsx:148 -msgid "View barcode" -msgstr "" - -#: src/components/items/ActionDropdown.tsx:161 -msgid "Link Barcode" +#: src/components/items/ActionDropdown.tsx:162 +#: src/tables/InvenTreeTableHeader.tsx:159 +#: src/tables/InvenTreeTableHeader.tsx:160 +msgid "Barcode Actions" msgstr "" #: src/components/items/ActionDropdown.tsx:162 -msgid "Link custom barcode" +#~ msgid "Link custom barcode" +#~ msgstr "Link custom barcode" + +#: src/components/items/ActionDropdown.tsx:167 +msgid "View" msgstr "" -#: src/components/items/ActionDropdown.tsx:173 -#: src/forms/PurchaseOrderForms.tsx:426 -msgid "Unlink Barcode" +#: src/components/items/ActionDropdown.tsx:169 +msgid "View barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:174 -msgid "Unlink custom barcode" +#: src/components/items/ActionDropdown.tsx:175 +msgid "Link Barcode" +msgstr "" + +#: src/components/items/ActionDropdown.tsx:177 +msgid "Link a custom barcode to this item" msgstr "" #: src/components/items/ActionDropdown.tsx:183 -#: src/tables/RowActions.tsx:33 +#: src/components/items/QRCode.tsx:193 +#: src/forms/PurchaseOrderForms.tsx:464 +msgid "Unlink Barcode" +msgstr "" + +#: src/components/items/ActionDropdown.tsx:185 +msgid "Unlink custom barcode" +msgstr "" + +#: src/components/items/ActionDropdown.tsx:236 +#: src/tables/RowActions.tsx:39 msgid "Edit" msgstr "" -#: src/components/items/ActionDropdown.tsx:184 +#: src/components/items/ActionDropdown.tsx:237 msgid "Edit item" msgstr "" -#: src/components/items/ActionDropdown.tsx:196 +#: src/components/items/ActionDropdown.tsx:249 msgid "Delete item" msgstr "" -#: src/components/items/ActionDropdown.tsx:204 -#: src/components/items/ActionDropdown.tsx:205 +#: src/components/items/ActionDropdown.tsx:257 +#: src/components/items/ActionDropdown.tsx:258 msgid "Hold" msgstr "" -#: src/components/items/ActionDropdown.tsx:227 -#: src/tables/RowActions.tsx:23 +#: src/components/items/ActionDropdown.tsx:280 +#: src/tables/RowActions.tsx:29 msgid "Duplicate" msgstr "" -#: src/components/items/ActionDropdown.tsx:228 +#: src/components/items/ActionDropdown.tsx:281 msgid "Duplicate item" msgstr "" +#: src/components/items/BarcodeInput.tsx:23 +msgid "Scan barcode data here using barcode scanner" +msgstr "" + +#: src/components/items/BarcodeInput.tsx:24 +#: src/tables/settings/BarcodeScanHistoryTable.tsx:65 +msgid "Barcode" +msgstr "" + +#: src/components/items/BarcodeInput.tsx:25 +msgid "Scan" +msgstr "" + #: src/components/items/DocTooltip.tsx:92 +#: src/components/items/GettingStartedCarousel.tsx:20 msgid "Read More" msgstr "" -#: src/components/items/ErrorItem.tsx:5 -#: src/tables/InvenTreeTable.tsx:487 +#: src/components/items/ErrorItem.tsx:8 +#: src/tables/InvenTreeTable.tsx:473 msgid "Unknown error" msgstr "" -#: src/components/items/ErrorItem.tsx:10 -msgid "An error occurred:" -msgstr "" +#: src/components/items/ErrorItem.tsx:13 +#~ msgid "An error occurred:" +#~ msgstr "An error occurred:" #: src/components/items/GettingStartedCarousel.tsx:27 -msgid "Read more" -msgstr "" +#~ msgid "Read more" +#~ msgstr "Read more" #: src/components/items/InfoItem.tsx:27 msgid "None" @@ -965,30 +1304,51 @@ msgstr "" msgid "This panel is a placeholder." msgstr "" -#: src/components/items/QRCode.tsx:87 +#: src/components/items/QRCode.tsx:89 msgid "Low (7%)" msgstr "" -#: src/components/items/QRCode.tsx:88 +#: src/components/items/QRCode.tsx:90 msgid "Medium (15%)" msgstr "" -#: src/components/items/QRCode.tsx:89 +#: src/components/items/QRCode.tsx:91 msgid "Quartile (25%)" msgstr "" -#: src/components/items/QRCode.tsx:90 +#: src/components/items/QRCode.tsx:92 msgid "High (30%)" msgstr "" -#: src/components/items/QRCode.tsx:107 -msgid "Barcode Data:" +#: src/components/items/QRCode.tsx:100 +msgid "Custom barcode" +msgstr "" + +#: src/components/items/QRCode.tsx:101 +msgid "A custom barcode is registered for this item. The shown code is not that custom barcode." msgstr "" #: src/components/items/QRCode.tsx:118 +msgid "Barcode Data:" +msgstr "" + +#: src/components/items/QRCode.tsx:129 msgid "Select Error Correction Level" msgstr "" +#: src/components/items/QRCode.tsx:171 +#: src/pages/part/PartDetail.tsx:239 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:187 +#: src/pages/sales/ReturnOrderDetail.tsx:157 +#: src/pages/sales/SalesOrderDetail.tsx:169 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:166 +msgid "Link" +msgstr "" + +#: src/components/items/QRCode.tsx:190 +msgid "This will remove the link to the associated barcode" +msgstr "" + #: src/components/modals/AboutInvenTreeModal.tsx:99 msgid "Version Information" msgstr "" @@ -1062,11 +1422,11 @@ msgstr "" msgid "Submit Bug Report" msgstr "" -#: src/components/modals/AboutInvenTreeModal.tsx:183 +#: src/components/modals/AboutInvenTreeModal.tsx:181 msgid "Copy version information" msgstr "" -#: src/components/modals/AboutInvenTreeModal.tsx:192 +#: src/components/modals/AboutInvenTreeModal.tsx:189 #: src/components/modals/ServerInfoModal.tsx:147 msgid "Dismiss" msgstr "" @@ -1091,61 +1451,20 @@ msgstr "" msgid "{key} Packages" msgstr "" -#: src/components/modals/QrCodeModal.tsx:72 +#: src/components/modals/QrCodeModal.tsx:24 msgid "Unknown response" msgstr "" -#: src/components/modals/QrCodeModal.tsx:102 -#: src/pages/Index/Scan.tsx:636 -msgid "Error while getting camera" -msgstr "" - -#: src/components/modals/QrCodeModal.tsx:125 -#: src/pages/Index/Scan.tsx:659 -msgid "Error while scanning" -msgstr "" - -#: src/components/modals/QrCodeModal.tsx:139 -#: src/pages/Index/Scan.tsx:673 -msgid "Error while stopping" -msgstr "" - -#: src/components/modals/QrCodeModal.tsx:154 -#: src/defaults/menuItems.tsx:21 -#: src/pages/Index/Scan.tsx:746 -msgid "Scanning" -msgstr "" - -#: src/components/modals/QrCodeModal.tsx:154 -#: src/pages/Index/Scan.tsx:746 -msgid "Not scanning" -msgstr "" - -#: src/components/modals/QrCodeModal.tsx:159 -#: src/pages/Index/Scan.tsx:752 -msgid "Select Camera" -msgstr "" - -#: src/components/modals/QrCodeModal.tsx:169 -#: src/pages/Index/Scan.tsx:737 -msgid "Start scanning" -msgstr "" - -#: src/components/modals/QrCodeModal.tsx:176 -#: src/pages/Index/Scan.tsx:729 -msgid "Stop scanning" -msgstr "" - -#: src/components/modals/QrCodeModal.tsx:181 +#: src/components/modals/QrCodeModal.tsx:39 msgid "No scans yet!" msgstr "" -#: src/components/modals/QrCodeModal.tsx:201 +#: src/components/modals/QrCodeModal.tsx:57 msgid "Close modal" msgstr "" #: src/components/modals/ServerInfoModal.tsx:26 -#: src/pages/Index/Settings/SystemSettings.tsx:38 +#: src/pages/Index/Settings/SystemSettings.tsx:37 msgid "Server" msgstr "" @@ -1206,6 +1525,7 @@ msgid "Background Worker" msgstr "" #: src/components/modals/ServerInfoModal.tsx:101 +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:29 msgid "Background worker not running" msgstr "" @@ -1218,8 +1538,8 @@ msgid "Email settings not configured" msgstr "" #: src/components/modals/ServerInfoModal.tsx:121 -#: src/tables/plugin/PluginListTable.tsx:144 -#: src/tables/plugin/PluginListTable.tsx:294 +#: src/components/plugins/PluginDrawer.tsx:89 +#: src/tables/plugin/PluginListTable.tsx:116 msgid "Version" msgstr "" @@ -1227,7 +1547,7 @@ msgstr "" msgid "Server Version" msgstr "" -#: src/components/nav/Layout.tsx:73 +#: src/components/nav/Layout.tsx:80 msgid "Nothing found..." msgstr "" @@ -1237,18 +1557,26 @@ msgstr "" #~ msgstr "Profile" #: src/components/nav/MainMenu.tsx:52 +#: src/components/nav/NavigationDrawer.tsx:178 #: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:28 msgid "Settings" msgstr "" #: src/components/nav/MainMenu.tsx:59 -#: src/defaults/menuItems.tsx:15 -msgid "Account settings" +#: src/pages/Index/Settings/UserSettings.tsx:152 +msgid "Account Settings" msgstr "" +#: src/components/nav/MainMenu.tsx:59 +#: src/defaults/menuItems.tsx:15 +#~ msgid "Account settings" +#~ msgstr "Account settings" + #: src/components/nav/MainMenu.tsx:67 -#: src/defaults/menuItems.tsx:58 -#: src/pages/Index/Settings/SystemSettings.tsx:315 +#: src/components/nav/NavigationDrawer.tsx:141 +#: src/components/nav/SettingsHeader.tsx:49 +#: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:37 +#: src/pages/Index/Settings/SystemSettings.tsx:310 msgid "System Settings" msgstr "" @@ -1260,14 +1588,11 @@ msgstr "" #~ msgid "Switch to pseudo language" #~ msgstr "Switch to pseudo language" -#: src/components/nav/MainMenu.tsx:77 -msgid "Change Color Mode" -msgstr "" - #: src/components/nav/MainMenu.tsx:86 -#: src/defaults/actions.tsx:71 -#: src/defaults/menuItems.tsx:63 -#: src/pages/Index/Settings/AdminCenter/Index.tsx:221 +#: src/components/nav/NavigationDrawer.tsx:148 +#: src/components/nav/SettingsHeader.tsx:50 +#: src/defaults/actions.tsx:63 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:251 msgid "Admin Center" msgstr "" @@ -1275,458 +1600,732 @@ msgstr "" msgid "Logout" msgstr "" -#: src/components/nav/NavHoverMenu.tsx:65 -#: src/defaults/actions.tsx:60 -msgid "Open Navigation" -msgstr "" - #: src/components/nav/NavHoverMenu.tsx:84 -msgid "View all" -msgstr "" +#~ msgid "View all" +#~ msgstr "View all" #: src/components/nav/NavHoverMenu.tsx:100 #: src/components/nav/NavHoverMenu.tsx:110 -msgid "Get started" -msgstr "" +#~ msgid "Get started" +#~ msgstr "Get started" #: src/components/nav/NavHoverMenu.tsx:103 -msgid "Overview over high-level objects, functions and possible usecases." -msgstr "" - -#: src/components/nav/NavigationDrawer.tsx:57 -msgid "Navigation" -msgstr "" +#~ msgid "Overview over high-level objects, functions and possible usecases." +#~ msgstr "Overview over high-level objects, functions and possible usecases." #: src/components/nav/NavigationDrawer.tsx:60 -msgid "Pages" +#~ msgid "Pages" +#~ msgstr "Pages" + +#: src/components/nav/NavigationDrawer.tsx:77 +#: src/components/render/ModelType.tsx:31 +#: src/defaults/links.tsx:10 +#: src/pages/Index/Settings/SystemSettings.tsx:172 +#: src/pages/part/CategoryDetail.tsx:125 +#: src/pages/part/CategoryDetail.tsx:249 +#: src/pages/part/CategoryDetail.tsx:279 +#: src/pages/part/PartDetail.tsx:856 +msgid "Parts" msgstr "" -#: src/components/nav/NavigationDrawer.tsx:65 -#: src/pages/Index/Settings/AdminCenter/Index.tsx:176 -#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:41 -msgid "Plugins" +#: src/components/nav/NavigationDrawer.tsx:84 +#: src/components/render/Part.tsx:30 +#: src/defaults/links.tsx:11 +#: src/pages/Index/Settings/SystemSettings.tsx:205 +#: src/pages/part/PartDetail.tsx:593 +#: src/pages/stock/LocationDetail.tsx:352 +#: src/pages/stock/StockDetail.tsx:528 +#: src/tables/stock/StockItemTable.tsx:69 +msgid "Stock" msgstr "" -#: src/components/nav/NavigationDrawer.tsx:75 -#: src/defaults/actions.tsx:32 -msgid "Documentation" +#: src/components/nav/NavigationDrawer.tsx:91 +#: src/defaults/links.tsx:13 +#: src/pages/build/BuildDetail.tsx:530 +#: src/pages/build/BuildIndex.tsx:36 +msgid "Manufacturing" msgstr "" -#: src/components/nav/NavigationDrawer.tsx:78 -msgid "About" +#: src/components/nav/NavigationDrawer.tsx:98 +#: src/defaults/links.tsx:18 +#: src/pages/company/ManufacturerDetail.tsx:9 +#: src/pages/company/ManufacturerPartDetail.tsx:258 +#: src/pages/company/SupplierDetail.tsx:9 +#: src/pages/company/SupplierPartDetail.tsx:336 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:480 +#: src/pages/purchasing/PurchasingIndex.tsx:60 +msgid "Purchasing" msgstr "" -#: src/components/nav/NotificationDrawer.tsx:92 -#: src/pages/Index/Settings/SystemSettings.tsx:109 -#: src/pages/Index/Settings/UserSettings.tsx:126 +#: src/components/nav/NavigationDrawer.tsx:105 +#: src/defaults/links.tsx:22 +#: src/pages/company/CustomerDetail.tsx:9 +#: src/pages/sales/ReturnOrderDetail.tsx:469 +#: src/pages/sales/SalesIndex.tsx:53 +#: src/pages/sales/SalesOrderDetail.tsx:520 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:343 +msgid "Sales" +msgstr "" + +#: src/components/nav/NavigationDrawer.tsx:129 +#: src/components/nav/NotificationDrawer.tsx:178 +#: src/pages/Index/Settings/SystemSettings.tsx:110 +#: src/pages/Index/Settings/UserSettings.tsx:127 #: src/pages/Notifications.tsx:65 #: src/pages/Notifications.tsx:151 msgid "Notifications" msgstr "" -#: src/components/nav/NotificationDrawer.tsx:94 +#: src/components/nav/NavigationDrawer.tsx:135 +#: src/components/nav/SettingsHeader.tsx:48 +msgid "User Settings" +msgstr "" + +#: src/components/nav/NavigationDrawer.tsx:173 +msgid "Navigation" +msgstr "" + +#: src/components/nav/NavigationDrawer.tsx:183 +#: src/forms/PurchaseOrderForms.tsx:689 +#: src/forms/StockForms.tsx:614 +#: src/forms/StockForms.tsx:651 +#: src/forms/StockForms.tsx:677 +#: src/forms/StockForms.tsx:705 +#: src/forms/StockForms.tsx:736 +#: src/forms/StockForms.tsx:771 +#: src/forms/StockForms.tsx:813 +#: src/forms/StockForms.tsx:851 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:413 +#: src/tables/RowActions.tsx:129 +#: src/tables/build/BuildLineTable.tsx:101 +msgid "Actions" +msgstr "" + +#: src/components/nav/NavigationDrawer.tsx:191 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:205 +#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:44 +msgid "Plugins" +msgstr "" + +#: src/components/nav/NavigationDrawer.tsx:204 +#: src/defaults/actions.tsx:24 +msgid "Documentation" +msgstr "" + +#: src/components/nav/NavigationDrawer.tsx:210 +msgid "About" +msgstr "" + +#: src/components/nav/NotificationDrawer.tsx:180 msgid "Mark all as read" msgstr "" -#: src/components/nav/NotificationDrawer.tsx:104 +#: src/components/nav/NotificationDrawer.tsx:190 msgid "View all notifications" msgstr "" -#: src/components/nav/NotificationDrawer.tsx:123 +#: src/components/nav/NotificationDrawer.tsx:210 msgid "You have no unread notifications." msgstr "" -#: src/components/nav/NotificationDrawer.tsx:139 -#: src/components/nav/NotificationDrawer.tsx:145 -#: src/tables/notifications/NotificationsTable.tsx:36 -msgid "Notification" -msgstr "" - -#: src/components/nav/NotificationDrawer.tsx:168 -#: src/pages/Notifications.tsx:73 -msgid "Mark as read" -msgstr "" - -#: src/components/nav/SearchDrawer.tsx:78 +#: src/components/nav/SearchDrawer.tsx:85 msgid "results" msgstr "" -#: src/components/nav/SearchDrawer.tsx:370 +#: src/components/nav/SearchDrawer.tsx:380 msgid "Enter search text" msgstr "" -#: src/components/nav/SearchDrawer.tsx:397 +#: src/components/nav/SearchDrawer.tsx:391 +msgid "Refresh search results" +msgstr "" + +#: src/components/nav/SearchDrawer.tsx:402 +#: src/components/nav/SearchDrawer.tsx:409 msgid "Search Options" msgstr "" -#: src/components/nav/SearchDrawer.tsx:400 +#: src/components/nav/SearchDrawer.tsx:412 msgid "Regex search" msgstr "" -#: src/components/nav/SearchDrawer.tsx:410 +#: src/components/nav/SearchDrawer.tsx:421 msgid "Whole word search" msgstr "" -#: src/components/nav/SearchDrawer.tsx:451 +#: src/components/nav/SearchDrawer.tsx:461 msgid "An error occurred during search query" msgstr "" #: src/components/nav/SearchDrawer.tsx:462 -msgid "No results" +#~ msgid "No results" +#~ msgstr "No results" + +#: src/components/nav/SearchDrawer.tsx:472 +#: src/tables/part/PartTestTemplateTable.tsx:76 +msgid "No Results" msgstr "" -#: src/components/nav/SearchDrawer.tsx:465 +#: src/components/nav/SearchDrawer.tsx:475 msgid "No results available for search query" msgstr "" -#: src/components/render/Instance.tsx:217 +#: src/components/panels/AttachmentPanel.tsx:18 +msgid "Attachments" +msgstr "" + +#: src/components/panels/NotesPanel.tsx:24 +#: src/tables/build/BuildOrderTestTable.tsx:143 +#: src/tables/stock/StockTrackingTable.tsx:204 +msgid "Notes" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:47 +msgid "Plugin Inactive" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:50 +msgid "Plugin is not active" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:60 +msgid "Plugin Information" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:74 +#: src/pages/build/BuildDetail.tsx:116 +#: src/pages/company/CompanyDetail.tsx:89 +#: src/pages/company/ManufacturerPartDetail.tsx:89 +#: src/pages/company/ManufacturerPartDetail.tsx:116 +#: src/pages/company/SupplierPartDetail.tsx:140 +#: src/pages/part/CategoryDetail.tsx:101 +#: src/pages/part/PartDetail.tsx:178 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:136 +#: src/pages/sales/ReturnOrderDetail.tsx:107 +#: src/pages/sales/SalesOrderDetail.tsx:116 +#: src/pages/stock/LocationDetail.tsx:103 +#: src/tables/ColumnRenderers.tsx:92 +#: src/tables/bom/UsedInTable.tsx:44 +#: src/tables/build/BuildAllocatedStockTable.tsx:83 +#: src/tables/build/BuildLineTable.tsx:329 +#: src/tables/machine/MachineTypeTable.tsx:74 +#: src/tables/machine/MachineTypeTable.tsx:129 +#: src/tables/machine/MachineTypeTable.tsx:240 +#: src/tables/machine/MachineTypeTable.tsx:344 +#: src/tables/part/RelatedPartTable.tsx:66 +#: src/tables/plugin/PluginListTable.tsx:99 +#: src/tables/sales/SalesOrderAllocationTable.tsx:87 +#: src/tables/sales/SalesOrderLineItemTable.tsx:75 +#: src/tables/stock/LocationTypesTable.tsx:74 +msgid "Description" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:79 +msgid "Author" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:84 +#: src/pages/part/PartSchedulingDetail.tsx:277 +#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:40 +#: src/pages/part/pricing/SaleHistoryPanel.tsx:38 +#: src/tables/ColumnRenderers.tsx:215 +#: src/tables/build/BuildOrderTestTable.tsx:151 +#: src/tables/settings/StocktakeReportTable.tsx:40 +msgid "Date" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:94 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:398 +#: src/pages/part/PartDetail.tsx:331 +#: src/tables/bom/UsedInTable.tsx:84 +#: src/tables/company/CompanyTable.tsx:62 +#: src/tables/company/CompanyTable.tsx:96 +#: src/tables/machine/MachineListTable.tsx:333 +#: src/tables/machine/MachineListTable.tsx:605 +#: src/tables/part/ParametricPartTable.tsx:223 +#: src/tables/part/PartTable.tsx:178 +#: src/tables/part/PartVariantTable.tsx:15 +#: src/tables/plugin/PluginListTable.tsx:94 +#: src/tables/plugin/PluginListTable.tsx:401 +#: src/tables/purchasing/SupplierPartTable.tsx:100 +#: src/tables/purchasing/SupplierPartTable.tsx:190 +#: src/tables/settings/UserTable.tsx:283 +#: src/tables/stock/StockItemTable.tsx:293 +msgid "Active" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:106 +msgid "Package Name" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:112 +msgid "Installation Path" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:117 +#: src/tables/machine/MachineTypeTable.tsx:152 +#: src/tables/machine/MachineTypeTable.tsx:276 +#: src/tables/plugin/PluginListTable.tsx:406 +msgid "Builtin" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:122 +msgid "Package" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:134 +#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:53 +msgid "Plugin Settings" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:146 +#: src/components/render/ModelType.tsx:276 +msgid "Plugin Configuration" +msgstr "" + +#: src/components/plugins/PluginPanel.tsx:87 +#~ msgid "Error occurred while rendering plugin content" +#~ msgstr "Error occurred while rendering plugin content" + +#: src/components/plugins/PluginPanel.tsx:91 +#~ msgid "Plugin did not provide panel rendering function" +#~ msgstr "Plugin did not provide panel rendering function" + +#: src/components/plugins/PluginPanel.tsx:103 +#~ msgid "No content provided for this plugin" +#~ msgstr "No content provided for this plugin" + +#: src/components/plugins/PluginPanel.tsx:116 +#: src/components/plugins/PluginSettingsPanel.tsx:76 +#~ msgid "Error Loading Plugin" +#~ msgstr "Error Loading Plugin" + +#: src/components/plugins/PluginSettingsPanel.tsx:51 +#~ msgid "Error occurred while rendering plugin settings" +#~ msgstr "Error occurred while rendering plugin settings" + +#: src/components/plugins/PluginSettingsPanel.tsx:55 +#~ msgid "Plugin did not provide settings rendering function" +#~ msgstr "Plugin did not provide settings rendering function" + +#: src/components/plugins/PluginUIFeature.tsx:100 +msgid "Error occurred while rendering the template editor." +msgstr "" + +#: src/components/plugins/PluginUIFeature.tsx:111 +msgid "Error Loading Plugin Editor" +msgstr "" + +#: src/components/plugins/PluginUIFeature.tsx:147 +msgid "Error occurred while rendering the template preview." +msgstr "" + +#: src/components/plugins/PluginUIFeature.tsx:158 +msgid "Error Loading Plugin Preview" +msgstr "" + +#: src/components/plugins/RemoteComponent.tsx:70 +msgid "Invalid source or function name" +msgstr "" + +#: src/components/plugins/RemoteComponent.tsx:91 +msgid "Error Loading Content" +msgstr "" + +#: src/components/plugins/RemoteComponent.tsx:95 +msgid "Error occurred while loading plugin content" +msgstr "" + +#: src/components/render/Instance.tsx:224 msgid "Unknown model: {model}" msgstr "" -#: src/components/render/ModelType.tsx:22 -#: src/forms/BuildForms.tsx:213 -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/forms/StockForms.tsx:499 -#: src/forms/StockForms.tsx:533 -#: src/forms/StockForms.tsx:562 -#: src/forms/StockForms.tsx:590 -#: src/forms/StockForms.tsx:621 -#: src/forms/StockForms.tsx:656 -#: src/forms/StockForms.tsx:698 -#: src/forms/StockForms.tsx:734 -#: src/pages/build/BuildDetail.tsx:95 -#: src/pages/part/PartDetail.tsx:1073 -#: src/tables/build/BuildAllocatedStockTable.tsx:82 +#: src/components/render/ModelType.tsx:30 +#: src/forms/BuildForms.tsx:269 +#: src/forms/BuildForms.tsx:337 +#: src/forms/BuildForms.tsx:385 +#: src/forms/BuildForms.tsx:515 +#: src/forms/PurchaseOrderForms.tsx:689 +#: src/forms/ReturnOrderForms.tsx:190 +#: src/forms/SalesOrderForms.tsx:248 +#: src/forms/StockForms.tsx:261 +#: src/forms/StockForms.tsx:614 +#: src/forms/StockForms.tsx:651 +#: src/forms/StockForms.tsx:677 +#: src/forms/StockForms.tsx:705 +#: src/forms/StockForms.tsx:736 +#: src/forms/StockForms.tsx:771 +#: src/forms/StockForms.tsx:813 +#: src/forms/StockForms.tsx:851 +#: src/pages/build/BuildDetail.tsx:90 +#: src/pages/part/PartDetail.tsx:1094 +#: src/tables/build/BuildAllocatedStockTable.tsx:95 +#: src/tables/build/BuildLineTable.tsx:72 #: src/tables/part/PartTable.tsx:28 -#: src/tables/part/RelatedPartTable.tsx:45 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:88 -#: src/tables/sales/SalesOrderAllocationTable.tsx:68 -#: src/tables/stock/StockTrackingTable.tsx:74 +#: src/tables/part/RelatedPartTable.tsx:47 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:130 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:100 +#: src/tables/sales/SalesOrderAllocationTable.tsx:99 +#: src/tables/stock/StockTrackingTable.tsx:78 msgid "Part" msgstr "" -#: src/components/render/ModelType.tsx:23 -#: src/defaults/links.tsx:29 -#: src/defaults/menuItems.tsx:33 -#: src/pages/Index/Settings/SystemSettings.tsx:173 -#: src/pages/part/CategoryDetail.tsx:119 -#: src/pages/part/CategoryDetail.tsx:244 -#: src/pages/part/CategoryDetail.tsx:274 -#: src/pages/part/PartDetail.tsx:827 -msgid "Parts" -msgstr "" - -#: src/components/render/ModelType.tsx:31 +#: src/components/render/ModelType.tsx:40 msgid "Part Parameter Template" msgstr "" -#: src/components/render/ModelType.tsx:32 +#: src/components/render/ModelType.tsx:41 msgid "Part Parameter Templates" msgstr "" -#: src/components/render/ModelType.tsx:38 +#: src/components/render/ModelType.tsx:48 msgid "Part Test Template" msgstr "" -#: src/components/render/ModelType.tsx:39 +#: src/components/render/ModelType.tsx:49 msgid "Part Test Templates" msgstr "" -#: src/components/render/ModelType.tsx:45 -#: src/pages/company/SupplierPartDetail.tsx:203 -#: src/pages/company/SupplierPartDetail.tsx:375 -#: src/pages/stock/StockDetail.tsx:173 -#: src/tables/build/BuildAllocatedStockTable.tsx:131 +#: src/components/render/ModelType.tsx:56 +#: src/pages/company/SupplierPartDetail.tsx:364 +#: src/pages/stock/StockDetail.tsx:194 +#: src/tables/build/BuildAllocatedStockTable.tsx:152 #: src/tables/part/PartPurchaseOrdersTable.tsx:49 -#: src/tables/purchasing/SupplierPartTable.tsx:68 +#: src/tables/purchasing/SupplierPartTable.tsx:70 +#: src/tables/stock/StockItemTable.tsx:229 msgid "Supplier Part" msgstr "" -#: src/components/render/ModelType.tsx:46 +#: src/components/render/ModelType.tsx:57 msgid "Supplier Parts" msgstr "" -#: src/components/render/ModelType.tsx:54 -#: src/pages/company/ManufacturerPartDetail.tsx:132 +#: src/components/render/ModelType.tsx:66 #: src/tables/part/PartPurchaseOrdersTable.tsx:55 +#: src/tables/stock/StockItemTable.tsx:234 msgid "Manufacturer Part" msgstr "" -#: src/components/render/ModelType.tsx:55 +#: src/components/render/ModelType.tsx:67 msgid "Manufacturer Parts" msgstr "" -#: src/components/render/ModelType.tsx:63 -#: src/pages/part/CategoryDetail.tsx:305 +#: src/components/render/ModelType.tsx:76 +#: src/pages/part/CategoryDetail.tsx:310 msgid "Part Category" msgstr "" -#: src/components/render/ModelType.tsx:64 -#: src/pages/part/CategoryDetail.tsx:258 -#: src/pages/part/CategoryDetail.tsx:296 -#: src/pages/part/PartDetail.tsx:1063 +#: src/components/render/ModelType.tsx:77 +#: src/pages/part/CategoryDetail.tsx:263 +#: src/pages/part/CategoryDetail.tsx:301 +#: src/pages/part/PartDetail.tsx:1084 msgid "Part Categories" msgstr "" -#: src/components/render/ModelType.tsx:72 -#: src/pages/stock/StockDetail.tsx:624 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:94 -#: src/tables/stock/StockTrackingTable.tsx:45 +#: src/components/render/ModelType.tsx:86 +#: src/forms/BuildForms.tsx:337 +#: src/forms/BuildForms.tsx:385 +#: src/forms/BuildForms.tsx:515 +#: src/forms/SalesOrderForms.tsx:248 +#: src/pages/stock/StockDetail.tsx:839 +#: src/tables/stock/StockTrackingTable.tsx:49 msgid "Stock Item" msgstr "" -#: src/components/render/ModelType.tsx:73 +#: src/components/render/ModelType.tsx:87 #: src/pages/company/CompanyDetail.tsx:203 -#: src/pages/stock/LocationDetail.tsx:128 -#: src/pages/stock/LocationDetail.tsx:181 -#: src/pages/stock/LocationDetail.tsx:395 +#: src/pages/part/PartStocktakeDetail.tsx:113 +#: src/pages/stock/LocationDetail.tsx:122 +#: src/pages/stock/LocationDetail.tsx:175 +#: src/pages/stock/LocationDetail.tsx:380 msgid "Stock Items" msgstr "" -#: src/components/render/ModelType.tsx:81 +#: src/components/render/ModelType.tsx:96 msgid "Stock Location" msgstr "" -#: src/components/render/ModelType.tsx:82 -#: src/pages/stock/LocationDetail.tsx:195 -#: src/pages/stock/LocationDetail.tsx:387 -#: src/pages/stock/StockDetail.tsx:616 +#: src/components/render/ModelType.tsx:97 +#: src/pages/stock/LocationDetail.tsx:189 +#: src/pages/stock/LocationDetail.tsx:372 +#: src/pages/stock/StockDetail.tsx:831 msgid "Stock Locations" msgstr "" -#: src/components/render/ModelType.tsx:90 +#: src/components/render/ModelType.tsx:106 msgid "Stock Location Type" msgstr "" -#: src/components/render/ModelType.tsx:91 +#: src/components/render/ModelType.tsx:107 msgid "Stock Location Types" msgstr "" -#: src/components/render/ModelType.tsx:95 +#: src/components/render/ModelType.tsx:112 +#: src/pages/part/PartDetail.tsx:712 msgid "Stock History" msgstr "" -#: src/components/render/ModelType.tsx:96 +#: src/components/render/ModelType.tsx:113 msgid "Stock Histories" msgstr "" -#: src/components/render/ModelType.tsx:100 -#: src/defaults/links.tsx:31 -#: src/defaults/menuItems.tsx:43 +#: src/components/render/ModelType.tsx:118 msgid "Build" msgstr "" -#: src/components/render/ModelType.tsx:101 +#: src/components/render/ModelType.tsx:119 msgid "Builds" msgstr "" -#: src/components/render/ModelType.tsx:109 +#: src/components/render/ModelType.tsx:128 msgid "Build Line" msgstr "" -#: src/components/render/ModelType.tsx:110 +#: src/components/render/ModelType.tsx:129 msgid "Build Lines" msgstr "" -#: src/components/render/ModelType.tsx:117 +#: src/components/render/ModelType.tsx:137 msgid "Build Item" msgstr "" -#: src/components/render/ModelType.tsx:118 +#: src/components/render/ModelType.tsx:138 msgid "Build Items" msgstr "" -#: src/components/render/ModelType.tsx:122 -#: src/pages/company/CompanyDetail.tsx:339 +#: src/components/render/ModelType.tsx:143 +#: src/pages/company/CompanyDetail.tsx:321 msgid "Company" msgstr "" -#: src/components/render/ModelType.tsx:123 +#: src/components/render/ModelType.tsx:144 msgid "Companies" msgstr "" -#: src/components/render/ModelType.tsx:131 +#: src/components/render/ModelType.tsx:153 +#: src/pages/build/BuildDetail.tsx:195 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:204 +#: src/pages/sales/ReturnOrderDetail.tsx:174 +#: src/pages/sales/SalesOrderDetail.tsx:186 #: src/tables/TableHoverCard.tsx:81 -#: src/tables/build/BuildOrderTable.tsx:140 -#: src/tables/purchasing/PurchaseOrderTable.tsx:64 -#: src/tables/sales/ReturnOrderTable.tsx:55 -#: src/tables/sales/SalesOrderTable.tsx:62 +#: src/tables/build/BuildOrderTable.tsx:135 +#: src/tables/purchasing/PurchaseOrderTable.tsx:69 +#: src/tables/sales/ReturnOrderTable.tsx:67 +#: src/tables/sales/SalesOrderTable.tsx:67 msgid "Project Code" msgstr "" -#: src/components/render/ModelType.tsx:132 -#: src/pages/Index/Settings/AdminCenter/Index.tsx:128 +#: src/components/render/ModelType.tsx:154 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:145 msgid "Project Codes" msgstr "" -#: src/components/render/ModelType.tsx:138 +#: src/components/render/ModelType.tsx:161 #: src/pages/part/pricing/PurchaseHistoryPanel.tsx:32 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:480 -#: src/tables/part/PartPurchaseOrdersTable.tsx:32 -#: src/tables/stock/StockTrackingTable.tsx:107 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:477 +#: src/pages/stock/StockDetail.tsx:253 +#: src/tables/part/PartPurchaseOrdersTable.tsx:31 +#: src/tables/stock/StockItemTable.tsx:222 +#: src/tables/stock/StockTrackingTable.tsx:111 msgid "Purchase Order" msgstr "" -#: src/components/render/ModelType.tsx:139 -#: src/pages/Index/Settings/SystemSettings.tsx:255 +#: src/components/render/ModelType.tsx:162 +#: src/pages/Index/Settings/SystemSettings.tsx:249 #: src/pages/company/CompanyDetail.tsx:196 -#: src/pages/company/SupplierPartDetail.tsx:237 -#: src/pages/part/PartDetail.tsx:662 +#: src/pages/company/SupplierPartDetail.tsx:249 +#: src/pages/part/PartDetail.tsx:683 #: src/pages/purchasing/PurchasingIndex.tsx:25 msgid "Purchase Orders" msgstr "" -#: src/components/render/ModelType.tsx:147 +#: src/components/render/ModelType.tsx:171 msgid "Purchase Order Line" msgstr "" -#: src/components/render/ModelType.tsx:148 +#: src/components/render/ModelType.tsx:172 msgid "Purchase Order Lines" msgstr "" -#: src/components/render/ModelType.tsx:152 -#: src/pages/build/BuildDetail.tsx:153 -#: src/pages/sales/SalesOrderDetail.tsx:520 -#: src/pages/stock/StockDetail.tsx:221 -#: src/tables/sales/SalesOrderAllocationTable.tsx:50 -#: src/tables/stock/StockTrackingTable.tsx:118 +#: src/components/render/ModelType.tsx:177 +#: src/pages/build/BuildDetail.tsx:148 +#: src/pages/part/pricing/SaleHistoryPanel.tsx:24 +#: src/pages/sales/SalesOrderDetail.tsx:515 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:92 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:341 +#: src/pages/stock/StockDetail.tsx:262 +#: src/tables/sales/SalesOrderAllocationTable.tsx:80 +#: src/tables/stock/StockTrackingTable.tsx:122 msgid "Sales Order" msgstr "" -#: src/components/render/ModelType.tsx:153 -#: src/pages/Index/Settings/SystemSettings.tsx:270 +#: src/components/render/ModelType.tsx:178 +#: src/pages/Index/Settings/SystemSettings.tsx:264 #: src/pages/company/CompanyDetail.tsx:216 -#: src/pages/part/PartDetail.tsx:669 +#: src/pages/part/PartDetail.tsx:695 #: src/pages/sales/SalesIndex.tsx:26 msgid "Sales Orders" msgstr "" -#: src/components/render/ModelType.tsx:161 +#: src/components/render/ModelType.tsx:187 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:340 msgid "Sales Order Shipment" msgstr "" -#: src/components/render/ModelType.tsx:162 +#: src/components/render/ModelType.tsx:188 msgid "Sales Order Shipments" msgstr "" -#: src/components/render/ModelType.tsx:168 -#: src/pages/sales/ReturnOrderDetail.tsx:469 -#: src/tables/stock/StockTrackingTable.tsx:129 +#: src/components/render/ModelType.tsx:195 +#: src/pages/sales/ReturnOrderDetail.tsx:464 +#: src/tables/stock/StockTrackingTable.tsx:133 msgid "Return Order" msgstr "" -#: src/components/render/ModelType.tsx:169 -#: src/pages/Index/Settings/SystemSettings.tsx:286 +#: src/components/render/ModelType.tsx:196 +#: src/pages/Index/Settings/SystemSettings.tsx:280 #: src/pages/company/CompanyDetail.tsx:223 +#: src/pages/part/PartDetail.tsx:702 #: src/pages/sales/SalesIndex.tsx:32 msgid "Return Orders" msgstr "" -#: src/components/render/ModelType.tsx:177 +#: src/components/render/ModelType.tsx:205 msgid "Return Order Line Item" msgstr "" -#: src/components/render/ModelType.tsx:178 +#: src/components/render/ModelType.tsx:206 msgid "Return Order Line Items" msgstr "" -#: src/components/render/ModelType.tsx:182 -#: src/tables/company/AddressTable.tsx:47 +#: src/components/render/ModelType.tsx:211 +#: src/tables/company/AddressTable.tsx:48 msgid "Address" msgstr "" -#: src/components/render/ModelType.tsx:183 -#: src/pages/company/CompanyDetail.tsx:253 +#: src/components/render/ModelType.tsx:212 +#: src/pages/company/CompanyDetail.tsx:255 msgid "Addresses" msgstr "" -#: src/components/render/ModelType.tsx:189 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:195 -#: src/pages/sales/ReturnOrderDetail.tsx:174 -#: src/pages/sales/SalesOrderDetail.tsx:183 +#: src/components/render/ModelType.tsx:219 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:196 +#: src/pages/sales/ReturnOrderDetail.tsx:166 +#: src/pages/sales/SalesOrderDetail.tsx:178 msgid "Contact" msgstr "" -#: src/components/render/ModelType.tsx:190 -#: src/pages/company/CompanyDetail.tsx:247 +#: src/components/render/ModelType.tsx:220 +#: src/pages/company/CompanyDetail.tsx:249 msgid "Contacts" msgstr "" -#: src/components/render/ModelType.tsx:196 +#: src/components/render/ModelType.tsx:227 msgid "Owner" msgstr "" -#: src/components/render/ModelType.tsx:197 +#: src/components/render/ModelType.tsx:228 msgid "Owners" msgstr "" -#: src/components/render/ModelType.tsx:203 -#: src/tables/settings/ImportSessionTable.tsx:121 -#: src/tables/stock/StockItemTestResultTable.tsx:198 -#: src/tables/stock/StockTrackingTable.tsx:195 +#: src/components/render/ModelType.tsx:234 +#~ msgid "Purchase Order Line Item" +#~ msgstr "Purchase Order Line Item" + +#: src/components/render/ModelType.tsx:235 +#: src/tables/settings/BarcodeScanHistoryTable.tsx:80 +#: src/tables/settings/BarcodeScanHistoryTable.tsx:211 +#: src/tables/settings/ImportSessionTable.tsx:120 +#: src/tables/settings/StocktakeReportTable.tsx:44 +#: src/tables/stock/StockItemTestResultTable.tsx:204 +#: src/tables/stock/StockTrackingTable.tsx:181 +#: src/tables/stock/StockTrackingTable.tsx:210 msgid "User" msgstr "" -#: src/components/render/ModelType.tsx:204 -#: src/pages/Index/Settings/AdminCenter/Index.tsx:98 +#: src/components/render/ModelType.tsx:236 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:109 #: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:13 msgid "Users" msgstr "" -#: src/components/render/ModelType.tsx:210 +#: src/components/render/ModelType.tsx:243 msgid "Group" msgstr "" -#: src/components/render/ModelType.tsx:211 +#: src/components/render/ModelType.tsx:244 #: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:20 -#: src/tables/settings/UserTable.tsx:138 -#: src/tables/settings/UserTable.tsx:201 +#: src/tables/settings/UserTable.tsx:137 +#: src/tables/settings/UserTable.tsx:200 msgid "Groups" msgstr "" -#: src/components/render/ModelType.tsx:218 +#: src/components/render/ModelType.tsx:252 msgid "Import Session" msgstr "" -#: src/components/render/ModelType.tsx:219 +#: src/components/render/ModelType.tsx:253 msgid "Import Sessions" msgstr "" -#: src/components/render/ModelType.tsx:225 +#: src/components/render/ModelType.tsx:260 msgid "Label Template" msgstr "" -#: src/components/render/ModelType.tsx:226 -#: src/pages/Index/Settings/AdminCenter/Index.tsx:158 +#: src/components/render/ModelType.tsx:261 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:187 msgid "Label Templates" msgstr "" -#: src/components/render/ModelType.tsx:232 +#: src/components/render/ModelType.tsx:264 +#~ msgid "Unknown Model" +#~ msgstr "Unknown Model" + +#: src/components/render/ModelType.tsx:268 msgid "Report Template" msgstr "" -#: src/components/render/ModelType.tsx:233 -#: src/pages/Index/Settings/AdminCenter/Index.tsx:164 +#: src/components/render/ModelType.tsx:269 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:193 msgid "Report Templates" msgstr "" -#: src/components/render/ModelType.tsx:239 -msgid "Plugin Configuration" -msgstr "" - -#: src/components/render/ModelType.tsx:240 +#: src/components/render/ModelType.tsx:277 msgid "Plugin Configurations" msgstr "" +#: src/components/render/ModelType.tsx:284 +msgid "Content Type" +msgstr "" + +#: src/components/render/ModelType.tsx:285 +msgid "Content Types" +msgstr "" + +#: src/components/render/ModelType.tsx:291 +#: src/tables/machine/MachineListTable.tsx:351 +#: src/tables/machine/MachineTypeTable.tsx:282 +msgid "Errors" +msgstr "" + +#: src/components/render/ModelType.tsx:307 +#~ msgid "Purchase Order Line Items" +#~ msgstr "Purchase Order Line Items" + +#: src/components/render/ModelType.tsx:337 +#~ msgid "Unknown Models" +#~ msgstr "Unknown Models" + #: src/components/render/Order.tsx:121 +#: src/tables/sales/SalesOrderAllocationTable.tsx:136 msgid "Shipment" msgstr "" #: src/components/render/Part.tsx:25 #: src/components/render/Plugin.tsx:17 -#: src/pages/company/CompanyDetail.tsx:325 -#: src/pages/company/SupplierPartDetail.tsx:360 -#: src/pages/part/PartDetail.tsx:879 +#: src/pages/company/CompanyDetail.tsx:307 +#: src/pages/company/SupplierPartDetail.tsx:349 +#: src/pages/part/PartDetail.tsx:911 msgid "Inactive" msgstr "" @@ -1736,39 +2335,38 @@ msgstr "" msgid "No stock" msgstr "" -#: src/components/render/Part.tsx:30 -#: src/defaults/links.tsx:30 -#: src/defaults/menuItems.tsx:38 -#: src/pages/Index/Settings/SystemSettings.tsx:206 -#: src/pages/part/PartDetail.tsx:543 -#: src/pages/stock/LocationDetail.tsx:367 -#: src/pages/stock/StockDetail.tsx:411 -#: src/tables/stock/StockItemTable.tsx:68 -msgid "Stock" -msgstr "" - -#: src/components/render/Stock.tsx:60 -#: src/pages/stock/StockDetail.tsx:150 -#: src/pages/stock/StockDetail.tsx:581 -#: src/tables/build/BuildAllocatedStockTable.tsx:102 -#: src/tables/sales/SalesOrderAllocationTable.tsx:80 +#: src/components/render/Stock.tsx:61 +#: src/forms/ReturnOrderForms.tsx:190 +#: src/pages/stock/StockDetail.tsx:166 +#: src/pages/stock/StockDetail.tsx:771 +#: src/tables/build/BuildAllocatedStockTable.tsx:123 +#: src/tables/build/BuildOutputTable.tsx:81 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:114 +#: src/tables/sales/SalesOrderAllocationTable.tsx:106 msgid "Serial Number" msgstr "" -#: src/components/render/Stock.tsx:62 -#: src/forms/BuildForms.tsx:218 -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/pages/part/pricing/BomPricingPanel.tsx:109 +#: src/components/render/Stock.tsx:63 +#: src/forms/BuildForms.tsx:206 +#: src/forms/BuildForms.tsx:515 +#: src/forms/PurchaseOrderForms.tsx:689 +#: src/forms/SalesOrderForms.tsx:248 +#: src/pages/part/PartSchedulingDetail.tsx:80 +#: src/pages/part/PartStocktakeDetail.tsx:60 +#: src/pages/part/PartStocktakeDetail.tsx:234 +#: src/pages/part/PartStocktakeDetail.tsx:252 +#: src/pages/part/pricing/BomPricingPanel.tsx:148 #: src/pages/part/pricing/PriceBreakPanel.tsx:89 -#: src/pages/part/pricing/PriceBreakPanel.tsx:171 -#: src/pages/stock/StockDetail.tsx:145 -#: src/pages/stock/StockDetail.tsx:587 -#: src/tables/build/BuildOrderTestTable.tsx:197 -#: src/tables/part/PartPurchaseOrdersTable.tsx:92 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:143 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:171 +#: src/pages/part/pricing/PriceBreakPanel.tsx:172 +#: src/pages/stock/StockDetail.tsx:161 +#: src/pages/stock/StockDetail.tsx:777 +#: src/tables/build/BuildLineTable.tsx:79 +#: src/tables/build/BuildOrderTestTable.tsx:198 +#: src/tables/part/PartPurchaseOrdersTable.tsx:93 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:146 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:177 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:77 -#: src/tables/stock/StockTrackingTable.tsx:59 +#: src/tables/stock/StockTrackingTable.tsx:63 msgid "Quantity" msgstr "" @@ -1842,10 +2440,6 @@ msgstr "" #~ msgid "Required Part" #~ msgstr "Required Part" -#: src/components/tables/build/BuildLineTable.tsx:152 -#~ msgid "Required Quantity" -#~ msgstr "Required Quantity" - #: src/components/tables/build/BuildOrderTable.tsx:52 #~ msgid "Progress" #~ msgstr "Progress" @@ -2126,14 +2720,6 @@ msgstr "" #~ msgid "user deleted" #~ msgstr "user deleted" -#: src/components/tables/settings/UserTable.tsx:168 -#~ msgid "First Name" -#~ msgstr "First Name" - -#: src/components/tables/settings/UserTable.tsx:173 -#~ msgid "Last Name" -#~ msgstr "Last Name" - #: src/components/tables/stock/StockItemTable.tsx:247 #~ msgid "Test Filter" #~ msgstr "Test Filter" @@ -2146,36 +2732,21 @@ msgstr "" #~ msgid "Stock location updated" #~ msgstr "Stock location updated" -#: src/components/widgets/DisplayWidget.tsx:11 -#: src/pages/Index/Settings/AccountSettings/DisplaySettingsPanel.tsx:17 -msgid "Display Settings" -msgstr "" - -#: src/components/widgets/DisplayWidget.tsx:15 -#: src/pages/Index/Settings/AccountSettings/DisplaySettingsPanel.tsx:23 -msgid "Color Mode" -msgstr "" - -#: src/components/widgets/DisplayWidget.tsx:21 -#: src/pages/Index/Settings/AccountSettings/DisplaySettingsPanel.tsx:33 -msgid "Language" -msgstr "" - #: src/components/widgets/FeedbackWidget.tsx:19 -msgid "Something is new: Platform UI" -msgstr "" +#~ msgid "Something is new: Platform UI" +#~ msgstr "Something is new: Platform UI" #: src/components/widgets/FeedbackWidget.tsx:21 -msgid "We are building a new UI with a modern stack. What you currently see is not fixed and will be redesigned but demonstrates the UI/UX possibilities we will have going forward." -msgstr "" +#~ msgid "We are building a new UI with a modern stack. What you currently see is not fixed and will be redesigned but demonstrates the UI/UX possibilities we will have going forward." +#~ msgstr "We are building a new UI with a modern stack. What you currently see is not fixed and will be redesigned but demonstrates the UI/UX possibilities we will have going forward." #: src/components/widgets/FeedbackWidget.tsx:32 -msgid "Provide Feedback" -msgstr "" +#~ msgid "Provide Feedback" +#~ msgstr "Provide Feedback" #: src/components/widgets/GetStartedWidget.tsx:11 -msgid "Getting started" -msgstr "" +#~ msgid "Getting started" +#~ msgstr "Getting started" #: src/components/widgets/MarkdownEditor.tsx:108 #~ msgid "Failed to upload image" @@ -2186,28 +2757,24 @@ msgstr "" #~ msgstr "Notes saved" #: src/components/widgets/WidgetLayout.tsx:166 -msgid "Layout" -msgstr "" +#~ msgid "Layout" +#~ msgstr "Layout" #: src/components/widgets/WidgetLayout.tsx:172 -msgid "Reset Layout" -msgstr "" +#~ msgid "Reset Layout" +#~ msgstr "Reset Layout" #: src/components/widgets/WidgetLayout.tsx:185 -msgid "Stop Edit" -msgstr "" - -#: src/components/widgets/WidgetLayout.tsx:185 -msgid "Edit Layout" -msgstr "" +#~ msgid "Stop Edit" +#~ msgstr "Stop Edit" #: src/components/widgets/WidgetLayout.tsx:191 -msgid "Appearance" -msgstr "" +#~ msgid "Appearance" +#~ msgstr "Appearance" #: src/components/widgets/WidgetLayout.tsx:203 -msgid "Show Boxes" -msgstr "" +#~ msgid "Show Boxes" +#~ msgstr "Show Boxes" #: src/contexts/LanguageContext.tsx:20 msgid "Arabic" @@ -2286,201 +2853,175 @@ msgid "Korean" msgstr "" #: src/contexts/LanguageContext.tsx:39 -msgid "Latvian" +msgid "Lithuanian" msgstr "" #: src/contexts/LanguageContext.tsx:40 -msgid "Dutch" +msgid "Latvian" msgstr "" #: src/contexts/LanguageContext.tsx:41 -msgid "Norwegian" +msgid "Dutch" msgstr "" #: src/contexts/LanguageContext.tsx:42 -msgid "Polish" +msgid "Norwegian" msgstr "" #: src/contexts/LanguageContext.tsx:43 -msgid "Portuguese" +msgid "Polish" msgstr "" #: src/contexts/LanguageContext.tsx:44 -msgid "Portuguese (Brazilian)" +msgid "Portuguese" msgstr "" #: src/contexts/LanguageContext.tsx:45 -msgid "Romanian" +msgid "Portuguese (Brazilian)" msgstr "" #: src/contexts/LanguageContext.tsx:46 -msgid "Russian" +msgid "Romanian" msgstr "" #: src/contexts/LanguageContext.tsx:47 -msgid "Slovak" +msgid "Russian" msgstr "" #: src/contexts/LanguageContext.tsx:48 -msgid "Slovenian" +msgid "Slovak" msgstr "" #: src/contexts/LanguageContext.tsx:49 -msgid "Swedish" +msgid "Slovenian" msgstr "" #: src/contexts/LanguageContext.tsx:50 -msgid "Thai" +msgid "Swedish" msgstr "" #: src/contexts/LanguageContext.tsx:51 -msgid "Turkish" +msgid "Thai" msgstr "" #: src/contexts/LanguageContext.tsx:52 -msgid "Ukrainian" +msgid "Turkish" msgstr "" #: src/contexts/LanguageContext.tsx:53 -msgid "Vietnamese" +msgid "Ukrainian" msgstr "" #: src/contexts/LanguageContext.tsx:54 -msgid "Chinese (Simplified)" +msgid "Vietnamese" msgstr "" #: src/contexts/LanguageContext.tsx:55 +msgid "Chinese (Simplified)" +msgstr "" + +#: src/contexts/LanguageContext.tsx:56 msgid "Chinese (Traditional)" msgstr "" +#: src/defaults/actions.tsx:18 +msgid "Go to the InvenTree dashboard" +msgstr "" + #: src/defaults/actions.tsx:18 #: src/defaults/links.tsx:27 #: src/defaults/menuItems.tsx:9 -msgid "Home" -msgstr "" +#~ msgid "Home" +#~ msgstr "Home" #: src/defaults/actions.tsx:25 -#: src/defaults/links.tsx:28 -#: src/defaults/menuItems.tsx:28 -#: src/pages/Index/Dashboard.tsx:19 -#: src/pages/Index/Settings/UserSettings.tsx:46 -msgid "Dashboard" -msgstr "" - -#: src/defaults/actions.tsx:26 -msgid "Go to the InvenTree dashboard" -msgstr "" - -#: src/defaults/actions.tsx:33 msgid "Visit the documentation to learn more about InvenTree" msgstr "" -#: src/defaults/actions.tsx:39 -#: src/defaults/links.tsx:98 -#: src/defaults/links.tsx:128 +#: src/defaults/actions.tsx:31 +#: src/defaults/links.tsx:92 +#: src/defaults/links.tsx:124 msgid "About InvenTree" msgstr "" -#: src/defaults/actions.tsx:40 -#: src/defaults/links.tsx:129 +#: src/defaults/actions.tsx:32 msgid "About the InvenTree org" msgstr "" -#: src/defaults/actions.tsx:46 +#: src/defaults/actions.tsx:38 msgid "Server Information" msgstr "" -#: src/defaults/actions.tsx:47 -#: src/defaults/links.tsx:123 +#: src/defaults/actions.tsx:39 +#: src/defaults/links.tsx:118 msgid "About this Inventree instance" msgstr "" -#: src/defaults/actions.tsx:53 -#: src/defaults/links.tsx:111 +#: src/defaults/actions.tsx:45 +#: src/defaults/links.tsx:105 +#: src/defaults/links.tsx:131 msgid "License Information" msgstr "" -#: src/defaults/actions.tsx:54 -#: src/defaults/links.tsx:135 +#: src/defaults/actions.tsx:46 msgid "Licenses for dependencies of the service" msgstr "" -#: src/defaults/actions.tsx:61 +#: src/defaults/actions.tsx:52 +msgid "Open Navigation" +msgstr "" + +#: src/defaults/actions.tsx:53 msgid "Open the main navigation menu" msgstr "" -#: src/defaults/actions.tsx:72 +#: src/defaults/actions.tsx:64 msgid "Go to the Admin Center" msgstr "" -#: src/defaults/dashboardItems.tsx:15 -msgid "Subscribed Parts" -msgstr "" - -#: src/defaults/dashboardItems.tsx:22 -msgid "Subscribed Categories" -msgstr "" - #: src/defaults/dashboardItems.tsx:29 -msgid "Latest Parts" -msgstr "" +#~ msgid "Latest Parts" +#~ msgstr "Latest Parts" #: src/defaults/dashboardItems.tsx:36 -msgid "BOM Waiting Validation" -msgstr "" +#~ msgid "BOM Waiting Validation" +#~ msgstr "BOM Waiting Validation" #: src/defaults/dashboardItems.tsx:43 -msgid "Recently Updated" -msgstr "" - -#: src/defaults/dashboardItems.tsx:50 -#: src/tables/part/PartTable.tsx:238 -msgid "Low Stock" -msgstr "" +#~ msgid "Recently Updated" +#~ msgstr "Recently Updated" #: src/defaults/dashboardItems.tsx:57 -msgid "Depleted Stock" -msgstr "" +#~ msgid "Depleted Stock" +#~ msgstr "Depleted Stock" #: src/defaults/dashboardItems.tsx:64 -msgid "Required for Build Orders" -msgstr "" +#~ msgid "Required for Build Orders" +#~ msgstr "Required for Build Orders" #: src/defaults/dashboardItems.tsx:71 -msgid "Expired Stock" -msgstr "" +#~ msgid "Expired Stock" +#~ msgstr "Expired Stock" #: src/defaults/dashboardItems.tsx:78 -msgid "Stale Stock" -msgstr "" +#~ msgid "Stale Stock" +#~ msgstr "Stale Stock" #: src/defaults/dashboardItems.tsx:85 -msgid "Build Orders In Progress" -msgstr "" - -#: src/defaults/dashboardItems.tsx:92 -msgid "Overdue Build Orders" -msgstr "" +#~ msgid "Build Orders In Progress" +#~ msgstr "Build Orders In Progress" #: src/defaults/dashboardItems.tsx:99 -msgid "Outstanding Purchase Orders" -msgstr "" - -#: src/defaults/dashboardItems.tsx:106 -msgid "Overdue Purchase Orders" -msgstr "" +#~ msgid "Outstanding Purchase Orders" +#~ msgstr "Outstanding Purchase Orders" #: src/defaults/dashboardItems.tsx:113 -msgid "Outstanding Sales Orders" -msgstr "" - -#: src/defaults/dashboardItems.tsx:120 -msgid "Overdue Sales Orders" -msgstr "" +#~ msgid "Outstanding Sales Orders" +#~ msgstr "Outstanding Sales Orders" #: src/defaults/dashboardItems.tsx:127 -msgid "Current News" -msgstr "" +#~ msgid "Current News" +#~ msgstr "Current News" #: src/defaults/defaultHostList.tsx:8 #~ msgid "InvenTree Demo" @@ -2490,98 +3031,81 @@ msgstr "" #~ msgid "Local Server" #~ msgstr "Local Server" -#: src/defaults/links.tsx:12 -#: src/pages/company/CompanyDetail.tsx:96 -msgid "Website" -msgstr "" - #: src/defaults/links.tsx:17 -msgid "GitHub" -msgstr "" +#~ msgid "GitHub" +#~ msgstr "GitHub" #: src/defaults/links.tsx:22 -msgid "Demo" -msgstr "" - -#: src/defaults/links.tsx:33 -#: src/defaults/menuItems.tsx:48 -#: src/pages/company/ManufacturerDetail.tsx:9 -#: src/pages/company/ManufacturerPartDetail.tsx:263 -#: src/pages/company/SupplierDetail.tsx:9 -#: src/pages/company/SupplierPartDetail.tsx:347 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:483 -#: src/pages/purchasing/PurchasingIndex.tsx:60 -msgid "Purchasing" -msgstr "" - -#: src/defaults/links.tsx:37 -#: src/defaults/menuItems.tsx:53 -#: src/pages/company/CustomerDetail.tsx:9 -#: src/pages/sales/ReturnOrderDetail.tsx:474 -#: src/pages/sales/SalesIndex.tsx:53 -#: src/pages/sales/SalesOrderDetail.tsx:525 -msgid "Sales" -msgstr "" +#~ msgid "Demo" +#~ msgstr "Demo" #: src/defaults/links.tsx:41 #: src/defaults/menuItems.tsx:71 #: src/pages/Index/Playground.tsx:217 -msgid "Playground" -msgstr "" +#~ msgid "Playground" +#~ msgstr "Playground" -#: src/defaults/links.tsx:55 -msgid "Getting Started" -msgstr "" - -#: src/defaults/links.tsx:56 -msgid "Getting started with InvenTree" -msgstr "" - -#: src/defaults/links.tsx:62 +#: src/defaults/links.tsx:45 msgid "API" msgstr "" -#: src/defaults/links.tsx:63 +#: src/defaults/links.tsx:48 msgid "InvenTree API documentation" msgstr "" -#: src/defaults/links.tsx:68 +#: src/defaults/links.tsx:52 msgid "Developer Manual" msgstr "" -#: src/defaults/links.tsx:69 +#: src/defaults/links.tsx:55 msgid "InvenTree developer manual" msgstr "" -#: src/defaults/links.tsx:74 +#: src/defaults/links.tsx:59 msgid "FAQ" msgstr "" -#: src/defaults/links.tsx:75 +#: src/defaults/links.tsx:62 msgid "Frequently asked questions" msgstr "" +#: src/defaults/links.tsx:66 +msgid "GitHub Repository" +msgstr "" + +#: src/defaults/links.tsx:69 +msgid "InvenTree source code on GitHub" +msgstr "" + #: src/defaults/links.tsx:76 #~ msgid "Instance" #~ msgstr "Instance" +#: src/defaults/links.tsx:79 +#: src/defaults/links.tsx:117 +msgid "System Information" +msgstr "" + #: src/defaults/links.tsx:83 #~ msgid "InvenTree" #~ msgstr "InvenTree" -#: src/defaults/links.tsx:85 -#: src/defaults/links.tsx:122 -msgid "System Information" -msgstr "" - #: src/defaults/links.tsx:117 #~ msgid "Licenses for packages used by InvenTree" #~ msgstr "Licenses for packages used by InvenTree" -#: src/defaults/links.tsx:134 -msgid "Licenses" +#: src/defaults/links.tsx:125 +msgid "About the InvenTree Project" msgstr "" +#: src/defaults/links.tsx:132 +msgid "Licenses for dependencies of the InvenTree software" +msgstr "" + +#: src/defaults/links.tsx:134 +#~ msgid "Licenses" +#~ msgstr "Licenses" + #: src/defaults/menuItems.tsx:7 #~ msgid "Open sourcea" #~ msgstr "Open sourcea" @@ -2607,8 +3131,8 @@ msgstr "" #~ msgstr "Profile page" #: src/defaults/menuItems.tsx:17 -msgid "User attributes and design settings." -msgstr "" +#~ msgid "User attributes and design settings." +#~ msgstr "User attributes and design settings." #: src/defaults/menuItems.tsx:21 #~ msgid "Free for everyone" @@ -2619,8 +3143,8 @@ msgstr "" #~ msgstr "The fluid of Smeargle’s tail secretions changes" #: src/defaults/menuItems.tsx:23 -msgid "View for interactive scanning and multiple actions." -msgstr "" +#~ msgid "View for interactive scanning and multiple actions." +#~ msgstr "View for interactive scanning and multiple actions." #: src/defaults/menuItems.tsx:24 #~ msgid "The fluid of Smeargle’s tail secretions changes in the intensity" @@ -2698,51 +3222,130 @@ msgstr "" #~ msgid "Are you sure you want to delete this attachment?" #~ msgstr "Are you sure you want to delete this attachment?" -#: src/forms/BuildForms.tsx:158 -msgid "Next serial number" +#: src/forms/BuildForms.tsx:248 +#~ msgid "Remove output" +#~ msgstr "Remove output" + +#: src/forms/BuildForms.tsx:269 +#: src/tables/build/BuildAllocatedStockTable.tsx:147 +#: src/tables/build/BuildOrderTestTable.tsx:177 +#: src/tables/build/BuildOrderTestTable.tsx:201 +#: src/tables/build/BuildOutputTable.tsx:460 +msgid "Build Output" msgstr "" -#: src/forms/BuildForms.tsx:162 -msgid "Latest serial number" +#: src/forms/BuildForms.tsx:269 +#: src/forms/BuildForms.tsx:337 +#: src/forms/BuildForms.tsx:385 +#: src/tables/build/BuildLineTable.tsx:89 +msgid "Batch" msgstr "" -#: src/forms/BuildForms.tsx:234 -msgid "Remove output" +#: src/forms/BuildForms.tsx:269 +#: src/forms/BuildForms.tsx:337 +#: src/forms/BuildForms.tsx:385 +#: src/forms/PurchaseOrderForms.tsx:603 +#: src/pages/build/BuildDetail.tsx:104 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:142 +#: src/pages/sales/ReturnOrderDetail.tsx:113 +#: src/pages/sales/SalesOrderDetail.tsx:122 +#: src/tables/build/BuildOrderTable.tsx:125 +#: src/tables/machine/MachineListTable.tsx:336 +#: src/tables/part/PartPurchaseOrdersTable.tsx:37 +#: src/tables/purchasing/PurchaseOrderTable.tsx:58 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:157 +#: src/tables/sales/ReturnOrderTable.tsx:56 +#: src/tables/sales/SalesOrderTable.tsx:56 +#: src/tables/settings/CustomStateTable.tsx:57 +#: src/tables/settings/ImportSessionTable.tsx:114 +#: src/tables/stock/StockItemTable.tsx:298 +#: src/tables/stock/StockTrackingTable.tsx:56 +msgid "Status" msgstr "" -#: src/forms/BuildForms.tsx:316 +#: src/forms/BuildForms.tsx:289 msgid "Complete Build Outputs" msgstr "" -#: src/forms/BuildForms.tsx:320 +#: src/forms/BuildForms.tsx:292 msgid "Build outputs have been completed" msgstr "" -#: src/forms/BuildForms.tsx:389 +#: src/forms/BuildForms.tsx:353 msgid "Scrap Build Outputs" msgstr "" -#: src/forms/BuildForms.tsx:393 +#: src/forms/BuildForms.tsx:356 msgid "Build outputs have been scrapped" msgstr "" -#: src/forms/BuildForms.tsx:425 -#: src/forms/BuildForms.tsx:449 +#: src/forms/BuildForms.tsx:393 msgid "Cancel Build Outputs" msgstr "" -#: src/forms/BuildForms.tsx:426 -msgid "Selected build outputs will be deleted" +#: src/forms/BuildForms.tsx:396 +msgid "Build outputs have been cancelled" msgstr "" -#: src/forms/BuildForms.tsx:453 -msgid "Build outputs have been cancelled" +#: src/forms/BuildForms.tsx:408 +#~ msgid "Selected build outputs will be deleted" +#~ msgstr "Selected build outputs will be deleted" + +#: src/forms/BuildForms.tsx:470 +#~ msgid "Remove line" +#~ msgstr "Remove line" + +#: src/forms/BuildForms.tsx:515 +#: src/forms/SalesOrderForms.tsx:248 +#: src/tables/build/BuildLineTable.tsx:174 +#: src/tables/sales/SalesOrderLineItemTable.tsx:276 +#: src/tables/stock/StockItemTable.tsx:309 +msgid "Allocated" +msgstr "" + +#: src/forms/BuildForms.tsx:545 +#: src/forms/SalesOrderForms.tsx:239 +#: src/pages/build/BuildDetail.tsx:208 +msgid "Source Location" +msgstr "" + +#: src/forms/BuildForms.tsx:546 +#: src/forms/SalesOrderForms.tsx:240 +msgid "Select the source location for the stock allocation" +msgstr "" + +#: src/forms/BuildForms.tsx:566 +#: src/forms/SalesOrderForms.tsx:274 +#: src/tables/build/BuildLineTable.tsx:442 +#: src/tables/build/BuildLineTable.tsx:569 +#: src/tables/build/BuildLineTable.tsx:642 +#: src/tables/sales/SalesOrderLineItemTable.tsx:302 +#: src/tables/sales/SalesOrderLineItemTable.tsx:326 +msgid "Allocate Stock" +msgstr "" + +#: src/forms/BuildForms.tsx:569 +#: src/forms/SalesOrderForms.tsx:279 +msgid "Stock items allocated" msgstr "" #: src/forms/CompanyForms.tsx:150 #~ msgid "Company updated" #~ msgstr "Company updated" +#: src/forms/PartForms.tsx:67 +#: src/forms/PartForms.tsx:154 +#: src/pages/part/CategoryDetail.tsx:117 +#: src/pages/part/PartDetail.tsx:384 +#: src/tables/part/PartCategoryTable.tsx:90 +#: src/tables/part/PartTable.tsx:294 +msgid "Subscribed" +msgstr "" + +#: src/forms/PartForms.tsx:68 +msgid "Subscribe to notifications for this part" +msgstr "" + #: src/forms/PartForms.tsx:106 #~ msgid "Create Part" #~ msgstr "Create Part" @@ -2751,191 +3354,190 @@ msgstr "" #~ msgid "Part created" #~ msgstr "Part created" -#: src/forms/PartForms.tsx:124 -msgid "Parent part category" -msgstr "" - #: src/forms/PartForms.tsx:129 #~ msgid "Part updated" #~ msgstr "Part updated" -#: src/forms/PurchaseOrderForms.tsx:300 +#: src/forms/PartForms.tsx:140 +msgid "Parent part category" +msgstr "" + +#: src/forms/PartForms.tsx:155 +msgid "Subscribe to notifications for this category" +msgstr "" + +#: src/forms/PurchaseOrderForms.tsx:314 +msgid "Assign Batch Code and Serial Numbers" +msgstr "" + +#: src/forms/PurchaseOrderForms.tsx:316 +msgid "Assign Batch Code" +msgstr "" + +#: src/forms/PurchaseOrderForms.tsx:336 msgid "Choose Location" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:308 +#: src/forms/PurchaseOrderForms.tsx:344 msgid "Item Destination selected" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:317 +#: src/forms/PurchaseOrderForms.tsx:353 msgid "Part category default location selected" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:327 +#: src/forms/PurchaseOrderForms.tsx:363 msgid "Received stock location selected" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:332 +#: src/forms/PurchaseOrderForms.tsx:368 msgid "Default location selected" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:343 -#: src/forms/PurchaseOrderForms.tsx:435 -msgid "Scan Barcode" -msgstr "" +#: src/forms/PurchaseOrderForms.tsx:421 +#~ msgid "Assign Batch Code{0}" +#~ msgstr "Assign Batch Code{0}" -#: src/forms/PurchaseOrderForms.tsx:388 +#: src/forms/PurchaseOrderForms.tsx:427 msgid "Set Location" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:396 -msgid "Assign Batch Code{0}" -msgstr "" - -#: src/forms/PurchaseOrderForms.tsx:405 -#: src/forms/StockForms.tsx:420 +#: src/forms/PurchaseOrderForms.tsx:442 +#: src/forms/StockForms.tsx:539 msgid "Adjust Packaging" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:412 -msgid "Change Status" -msgstr "" - -#: src/forms/PurchaseOrderForms.tsx:418 -msgid "Add Note" -msgstr "" - #: src/forms/PurchaseOrderForms.tsx:444 #: src/forms/StockForms.tsx:428 -msgid "Remove item from list" +#~ msgid "Remove item from list" +#~ msgstr "Remove item from list" + +#: src/forms/PurchaseOrderForms.tsx:450 +msgid "Change Status" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:471 -#: src/forms/StockForms.tsx:499 -#: src/forms/StockForms.tsx:533 -#: src/forms/StockForms.tsx:562 -#: src/forms/StockForms.tsx:590 -#: src/forms/StockForms.tsx:621 -#: src/forms/StockForms.tsx:656 -#: src/forms/StockForms.tsx:698 -#: src/forms/StockForms.tsx:734 -#: src/pages/stock/StockDetail.tsx:181 -#: src/tables/ColumnRenderers.tsx:49 -#: src/tables/stock/StockTrackingTable.tsx:85 +#: src/forms/PurchaseOrderForms.tsx:456 +msgid "Add Note" +msgstr "" + +#: src/forms/PurchaseOrderForms.tsx:503 +#: src/forms/StockForms.tsx:614 +#: src/forms/StockForms.tsx:651 +#: src/forms/StockForms.tsx:677 +#: src/forms/StockForms.tsx:705 +#: src/forms/StockForms.tsx:736 +#: src/forms/StockForms.tsx:771 +#: src/forms/StockForms.tsx:813 +#: src/forms/StockForms.tsx:851 +#: src/pages/stock/StockDetail.tsx:202 +#: src/tables/ColumnRenderers.tsx:60 +#: src/tables/stock/StockTrackingTable.tsx:89 msgid "Location" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:486 +#: src/forms/PurchaseOrderForms.tsx:518 msgid "Store at default location" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:499 +#: src/forms/PurchaseOrderForms.tsx:533 msgid "Store at line item destination" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:509 +#: src/forms/PurchaseOrderForms.tsx:545 msgid "Store with already received stock" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:524 -#: src/pages/build/BuildDetail.tsx:219 -#: src/pages/stock/StockDetail.tsx:162 -#: src/pages/stock/StockDetail.tsx:599 -#: src/tables/build/BuildAllocatedStockTable.tsx:109 -#: src/tables/build/BuildOrderTestTable.tsx:188 -#: src/tables/sales/SalesOrderAllocationTable.tsx:87 +#: src/forms/PurchaseOrderForms.tsx:566 +#: src/pages/build/BuildDetail.tsx:222 +#: src/pages/stock/StockDetail.tsx:185 +#: src/pages/stock/StockDetail.tsx:793 +#: src/tables/build/BuildAllocatedStockTable.tsx:130 +#: src/tables/build/BuildOrderTestTable.tsx:189 +#: src/tables/build/BuildOutputTable.tsx:86 +#: src/tables/sales/SalesOrderAllocationTable.tsx:113 msgid "Batch Code" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:535 -msgid "Serial numbers" +#: src/forms/PurchaseOrderForms.tsx:566 +#~ msgid "Serial numbers" +#~ msgstr "Serial numbers" + +#: src/forms/PurchaseOrderForms.tsx:567 +msgid "Enter batch code for received items" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:544 -#: src/forms/StockForms.tsx:443 -#: src/pages/company/SupplierPartDetail.tsx:156 -#: src/pages/company/SupplierPartDetail.tsx:207 -#: src/pages/stock/StockDetail.tsx:244 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:192 +#: src/forms/PurchaseOrderForms.tsx:579 +#: src/forms/StockForms.tsx:152 +msgid "Serial Numbers" +msgstr "" + +#: src/forms/PurchaseOrderForms.tsx:580 +msgid "Enter serial numbers for received items" +msgstr "" + +#: src/forms/PurchaseOrderForms.tsx:590 +#: src/forms/StockForms.tsx:556 +#: src/pages/company/SupplierPartDetail.tsx:168 +#: src/pages/company/SupplierPartDetail.tsx:219 +#: src/pages/stock/StockDetail.tsx:320 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:198 msgid "Packaging" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:556 -#: src/pages/build/BuildDetail.tsx:109 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:148 -#: src/pages/sales/ReturnOrderDetail.tsx:121 -#: src/pages/sales/SalesOrderDetail.tsx:127 -#: src/tables/build/BuildOrderTable.tsx:122 -#: src/tables/machine/MachineListTable.tsx:335 -#: src/tables/part/PartPurchaseOrdersTable.tsx:37 -#: src/tables/purchasing/PurchaseOrderTable.tsx:55 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:132 -#: src/tables/sales/ReturnOrderTable.tsx:46 -#: src/tables/sales/SalesOrderTable.tsx:53 -#: src/tables/settings/ImportSessionTable.tsx:115 -#: src/tables/stock/StockItemTable.tsx:294 -#: src/tables/stock/StockTrackingTable.tsx:52 -msgid "Status" -msgstr "" - -#: src/forms/PurchaseOrderForms.tsx:564 -#: src/pages/company/SupplierPartDetail.tsx:110 -#: src/tables/ColumnRenderers.tsx:132 +#: src/forms/PurchaseOrderForms.tsx:612 +#: src/pages/company/SupplierPartDetail.tsx:115 +#: src/tables/ColumnRenderers.tsx:143 msgid "Note" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/pages/company/SupplierPartDetail.tsx:128 -#: src/tables/purchasing/SupplierPriceBreakTable.tsx:57 -msgid "SKU" -msgstr "" - -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/tables/part/PartPurchaseOrdersTable.tsx:120 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:178 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:127 -msgid "Received" -msgstr "" - -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/forms/StockForms.tsx:499 -#: src/forms/StockForms.tsx:533 -#: src/forms/StockForms.tsx:562 -#: src/forms/StockForms.tsx:590 -#: src/forms/StockForms.tsx:621 -#: src/forms/StockForms.tsx:656 -#: src/forms/StockForms.tsx:698 -#: src/forms/StockForms.tsx:734 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:413 -#: src/tables/RowActions.tsx:113 -msgid "Actions" -msgstr "" - -#: src/forms/PurchaseOrderForms.tsx:655 -msgid "Receive Line Items" -msgstr "" - #: src/forms/PurchaseOrderForms.tsx:658 #~ msgid "Receive line items" #~ msgstr "Receive line items" -#: src/forms/StockForms.tsx:104 -msgid "Add given quantity as packs instead of individual items" +#: src/forms/PurchaseOrderForms.tsx:689 +#: src/pages/company/SupplierPartDetail.tsx:133 +#: src/tables/purchasing/SupplierPriceBreakTable.tsx:57 +msgid "SKU" +msgstr "" + +#: src/forms/PurchaseOrderForms.tsx:689 +#: src/tables/part/PartPurchaseOrdersTable.tsx:126 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:184 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:247 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:152 +msgid "Received" +msgstr "" + +#: src/forms/PurchaseOrderForms.tsx:701 +msgid "Receive Line Items" +msgstr "" + +#: src/forms/ReturnOrderForms.tsx:201 +msgid "Receive Items" +msgstr "" + +#: src/forms/ReturnOrderForms.tsx:208 +msgid "Item received into stock" +msgstr "" + +#: src/forms/StockForms.tsx:80 +#: src/hooks/UsePlaceholder.tsx:57 +msgid "Next serial number" msgstr "" #: src/forms/StockForms.tsx:110 #~ msgid "Create Stock Item" #~ msgstr "Create Stock Item" -#: src/forms/StockForms.tsx:117 +#: src/forms/StockForms.tsx:131 +msgid "Add given quantity as packs instead of individual items" +msgstr "" + +#: src/forms/StockForms.tsx:145 msgid "Enter initial quantity for this stock item" msgstr "" -#: src/forms/StockForms.tsx:124 -msgid "Serial Numbers" -msgstr "" - -#: src/forms/StockForms.tsx:125 +#: src/forms/StockForms.tsx:154 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" @@ -2943,82 +3545,102 @@ msgstr "" #~ msgid "Stock item updated" #~ msgstr "Stock item updated" -#: src/forms/StockForms.tsx:179 -#: src/pages/stock/StockDetail.tsx:434 -#: src/tables/stock/StockItemTable.tsx:417 -#: src/tables/stock/StockItemTable.tsx:535 +#: src/forms/StockForms.tsx:169 +#: src/pages/stock/StockDetail.tsx:131 +msgid "Stock Status" +msgstr "" + +#: src/forms/StockForms.tsx:218 +#: src/pages/stock/StockDetail.tsx:554 +#: src/tables/stock/StockItemTable.tsx:421 +#: src/tables/stock/StockItemTable.tsx:541 msgid "Add Stock Item" msgstr "" -#: src/forms/StockForms.tsx:362 +#: src/forms/StockForms.tsx:262 +msgid "Select the part to install" +msgstr "" + +#: src/forms/StockForms.tsx:480 msgid "Loading..." msgstr "" -#: src/forms/StockForms.tsx:408 +#: src/forms/StockForms.tsx:527 msgid "Move to default location" msgstr "" -#: src/forms/StockForms.tsx:499 -#: src/forms/StockForms.tsx:533 -#: src/forms/StockForms.tsx:562 -#: src/forms/StockForms.tsx:590 -#: src/forms/StockForms.tsx:621 -#: src/forms/StockForms.tsx:656 -#: src/forms/StockForms.tsx:698 -#: src/forms/StockForms.tsx:734 -#: src/pages/part/PartDetail.tsx:230 -#: src/pages/part/PartDetail.tsx:843 -#: src/tables/stock/StockItemTable.tsx:325 +#: src/forms/StockForms.tsx:614 +#: src/forms/StockForms.tsx:651 +#: src/forms/StockForms.tsx:677 +#: src/forms/StockForms.tsx:705 +#: src/forms/StockForms.tsx:736 +#: src/forms/StockForms.tsx:771 +#: src/forms/StockForms.tsx:813 +#: src/forms/StockForms.tsx:851 +#: src/pages/part/PartDetail.tsx:251 +#: src/pages/part/PartDetail.tsx:875 +#: src/tables/stock/StockItemTable.tsx:329 msgid "In Stock" msgstr "" -#: src/forms/StockForms.tsx:499 +#: src/forms/StockForms.tsx:614 msgid "Move" msgstr "" -#: src/forms/StockForms.tsx:562 -#: src/pages/stock/StockDetail.tsx:518 -#: src/tables/stock/StockItemTestResultTable.tsx:328 +#: src/forms/StockForms.tsx:677 +#: src/pages/stock/StockDetail.tsx:681 +#: src/tables/stock/StockItemTestResultTable.tsx:346 msgid "Add" msgstr "" -#: src/forms/StockForms.tsx:590 -#: src/pages/Index/Scan.tsx:266 -#: src/pages/stock/StockDetail.tsx:508 +#: src/forms/StockForms.tsx:705 +#: src/pages/Index/Scan.tsx:280 +#: src/pages/stock/StockDetail.tsx:670 msgid "Count" msgstr "" -#: src/forms/StockForms.tsx:835 +#: src/forms/StockForms.tsx:953 +#: src/pages/stock/StockDetail.tsx:682 +#: src/tables/stock/StockItemTable.tsx:454 msgid "Add Stock" msgstr "" -#: src/forms/StockForms.tsx:844 +#: src/forms/StockForms.tsx:962 +#: src/pages/stock/StockDetail.tsx:691 +#: src/tables/stock/StockItemTable.tsx:463 msgid "Remove Stock" msgstr "" -#: src/forms/StockForms.tsx:853 -#: src/pages/part/PartDetail.tsx:1017 +#: src/forms/StockForms.tsx:971 +#: src/pages/part/PartDetail.tsx:1039 +#: src/pages/stock/StockDetail.tsx:712 +#: src/tables/stock/StockItemTable.tsx:483 msgid "Transfer Stock" msgstr "" -#: src/forms/StockForms.tsx:862 -#: src/pages/part/PartDetail.tsx:1006 +#: src/forms/StockForms.tsx:980 +#: src/pages/part/PartDetail.tsx:1028 +#: src/pages/stock/LocationDetail.tsx:314 +#: src/pages/stock/LocationDetail.tsx:318 +#: src/tables/stock/StockItemTable.tsx:472 +#: src/tables/stock/StockItemTable.tsx:476 msgid "Count Stock" msgstr "" -#: src/forms/StockForms.tsx:871 +#: src/forms/StockForms.tsx:989 msgid "Change Stock Status" msgstr "" -#: src/forms/StockForms.tsx:880 +#: src/forms/StockForms.tsx:998 msgid "Merge Stock" msgstr "" -#: src/forms/StockForms.tsx:899 +#: src/forms/StockForms.tsx:1017 +#: src/tables/stock/StockItemTable.tsx:530 msgid "Delete Stock Items" msgstr "" -#: src/forms/StockForms.tsx:906 +#: src/forms/StockForms.tsx:1024 msgid "Parent stock location" msgstr "" @@ -3042,11 +3664,11 @@ msgstr "" #~ msgid "You have been logged out" #~ msgstr "You have been logged out" -#: src/functions/auth.tsx:117 +#: src/functions/auth.tsx:128 msgid "Logged Out" msgstr "" -#: src/functions/auth.tsx:118 +#: src/functions/auth.tsx:129 msgid "Successfully logged out" msgstr "" @@ -3062,20 +3684,20 @@ msgstr "" #~ msgid "Found an existing login - welcome back!" #~ msgstr "Found an existing login - welcome back!" -#: src/functions/auth.tsx:156 +#: src/functions/auth.tsx:167 msgid "Check your inbox for a reset link. This only works if you have an account. Check in spam too." msgstr "" -#: src/functions/auth.tsx:163 +#: src/functions/auth.tsx:174 #: src/pages/Auth/Set-Password.tsx:39 msgid "Reset failed" msgstr "" -#: src/functions/auth.tsx:194 +#: src/functions/auth.tsx:205 msgid "Logged In" msgstr "" -#: src/functions/auth.tsx:195 +#: src/functions/auth.tsx:206 msgid "Successfully logged in" msgstr "" @@ -3095,30 +3717,38 @@ msgstr "" #~ msgid "method parameter not supplied" #~ msgstr "method parameter not supplied" -#: src/functions/notifications.tsx:10 +#: src/functions/notifications.tsx:12 msgid "Not implemented" msgstr "" -#: src/functions/notifications.tsx:11 +#: src/functions/notifications.tsx:13 msgid "This feature is not yet implemented" msgstr "" -#: src/functions/notifications.tsx:21 -msgid "Permission denied" -msgstr "" +#: src/functions/notifications.tsx:24 +#~ msgid "Permission denied" +#~ msgstr "Permission denied" -#: src/functions/notifications.tsx:22 +#: src/functions/notifications.tsx:25 msgid "You do not have permission to perform this action" msgstr "" -#: src/functions/notifications.tsx:33 +#: src/functions/notifications.tsx:36 msgid "Invalid Return Code" msgstr "" -#: src/functions/notifications.tsx:34 +#: src/functions/notifications.tsx:37 msgid "Server returned status {returnCode}" msgstr "" +#: src/functions/notifications.tsx:47 +msgid "Timeout" +msgstr "" + +#: src/functions/notifications.tsx:48 +msgid "The request timed out" +msgstr "" + #: src/hooks/UseForm.tsx:88 msgid "Item Created" msgstr "" @@ -3135,20 +3765,24 @@ msgstr "" msgid "Are you sure you want to delete this item?" msgstr "" +#: src/hooks/UsePlaceholder.tsx:59 +msgid "Latest serial number" +msgstr "" + #: src/pages/Auth/Logged-In.tsx:22 msgid "Checking if you are already logged in" msgstr "" -#: src/pages/Auth/Login.tsx:31 -#: src/pages/Index/Scan.tsx:329 +#: src/pages/Auth/Login.tsx:35 +#: src/pages/Index/Scan.tsx:343 msgid "No selection" msgstr "" -#: src/pages/Auth/Login.tsx:87 +#: src/pages/Auth/Login.tsx:91 msgid "Welcome, log in below" msgstr "" -#: src/pages/Auth/Login.tsx:89 +#: src/pages/Auth/Login.tsx:93 msgid "Register below" msgstr "" @@ -3162,8 +3796,8 @@ msgstr "" #: src/pages/Auth/Reset.tsx:41 #: src/pages/Auth/Set-Password.tsx:112 -msgid "Send mail" -msgstr "" +#~ msgid "Send mail" +#~ msgstr "Send mail" #: src/pages/Auth/Set-Password.tsx:30 msgid "Token invalid" @@ -3174,22 +3808,22 @@ msgid "You need to provide a valid token to set a new password. Check your inbox msgstr "" #: src/pages/Auth/Set-Password.tsx:49 -msgid "No token provided" -msgstr "" +#~ msgid "No token provided" +#~ msgstr "No token provided" #: src/pages/Auth/Set-Password.tsx:50 -msgid "You need to provide a token to set a new password. Check your inbox for a reset link." -msgstr "" +#~ msgid "You need to provide a token to set a new password. Check your inbox for a reset link." +#~ msgstr "You need to provide a token to set a new password. Check your inbox for a reset link." -#: src/pages/Auth/Set-Password.tsx:73 +#: src/pages/Auth/Set-Password.tsx:68 msgid "Password set" msgstr "" -#: src/pages/Auth/Set-Password.tsx:74 +#: src/pages/Auth/Set-Password.tsx:69 msgid "The password was set successfully. You can now login with your new password" msgstr "" -#: src/pages/Auth/Set-Password.tsx:101 +#: src/pages/Auth/Set-Password.tsx:96 msgid "Set new password" msgstr "" @@ -3206,20 +3840,20 @@ msgstr "" #~ msgstr "Sorry, an unexpected error has occurred." #: src/pages/Index/Dashboard.tsx:22 -msgid "Autoupdate" -msgstr "" +#~ msgid "Autoupdate" +#~ msgstr "Autoupdate" #: src/pages/Index/Dashboard.tsx:26 -msgid "This page is a replacement for the old start page with the same information. This page will be deprecated and replaced by the home page." -msgstr "" +#~ msgid "This page is a replacement for the old start page with the same information. This page will be deprecated and replaced by the home page." +#~ msgstr "This page is a replacement for the old start page with the same information. This page will be deprecated and replaced by the home page." #: src/pages/Index/Home.tsx:58 -msgid "Welcome to your Dashboard{0}" -msgstr "" +#~ msgid "Welcome to your Dashboard{0}" +#~ msgstr "Welcome to your Dashboard{0}" #: src/pages/Index/Playground.tsx:222 -msgid "This page is a showcase for the possibilities of Platform UI." -msgstr "" +#~ msgid "This page is a showcase for the possibilities of Platform UI." +#~ msgstr "This page is a showcase for the possibilities of Platform UI." #: src/pages/Index/Profile/Profile.tsx:30 #: src/pages/Index/Profile/Profile.tsx:141 @@ -3365,125 +3999,190 @@ msgstr "" msgid "Image Barcode" msgstr "" -#: src/pages/Index/Scan.tsx:247 +#: src/pages/Index/Scan.tsx:261 msgid "Selected elements are not known" msgstr "" -#: src/pages/Index/Scan.tsx:254 +#: src/pages/Index/Scan.tsx:268 msgid "Multiple object types selected" msgstr "" -#: src/pages/Index/Scan.tsx:261 +#: src/pages/Index/Scan.tsx:275 msgid "Actions for {0}" msgstr "" -#: src/pages/Index/Scan.tsx:282 +#: src/pages/Index/Scan.tsx:296 msgid "Scan Page" msgstr "" -#: src/pages/Index/Scan.tsx:285 +#: src/pages/Index/Scan.tsx:299 msgid "This page can be used for continuously scanning items and taking actions on them." msgstr "" -#: src/pages/Index/Scan.tsx:292 +#: src/pages/Index/Scan.tsx:306 msgid "Toggle Fullscreen" msgstr "" -#: src/pages/Index/Scan.tsx:305 +#: src/pages/Index/Scan.tsx:319 msgid "Select the input method you want to use to scan items." msgstr "" -#: src/pages/Index/Scan.tsx:307 +#: src/pages/Index/Scan.tsx:321 msgid "Input" msgstr "" -#: src/pages/Index/Scan.tsx:314 +#: src/pages/Index/Scan.tsx:328 msgid "Select input method" msgstr "" -#: src/pages/Index/Scan.tsx:315 +#: src/pages/Index/Scan.tsx:329 msgid "Nothing found" msgstr "" -#: src/pages/Index/Scan.tsx:323 +#: src/pages/Index/Scan.tsx:337 msgid "Depending on the selected parts actions will be shown here. Not all barcode types are supported currently." msgstr "" -#: src/pages/Index/Scan.tsx:325 +#: src/pages/Index/Scan.tsx:339 msgid "Action" msgstr "" -#: src/pages/Index/Scan.tsx:334 +#: src/pages/Index/Scan.tsx:348 msgid "{0} items selected" msgstr "" -#: src/pages/Index/Scan.tsx:337 +#: src/pages/Index/Scan.tsx:351 msgid "General Actions" msgstr "" -#: src/pages/Index/Scan.tsx:351 +#: src/pages/Index/Scan.tsx:365 msgid "Lookup part" msgstr "" -#: src/pages/Index/Scan.tsx:359 +#: src/pages/Index/Scan.tsx:373 msgid "Open Link" msgstr "" -#: src/pages/Index/Scan.tsx:375 +#: src/pages/Index/Scan.tsx:389 msgid "History is locally kept in this browser." msgstr "" -#: src/pages/Index/Scan.tsx:376 +#: src/pages/Index/Scan.tsx:390 msgid "The history is kept in this browser's local storage. So it won't be shared with other users or other devices but is persistent through reloads. You can select items in the history to perform actions on them. To add items, scan/enter them in the Input area." msgstr "" -#: src/pages/Index/Scan.tsx:378 +#: src/pages/Index/Scan.tsx:392 #: src/pages/Notifications.tsx:100 msgid "History" msgstr "" -#: src/pages/Index/Scan.tsx:384 +#: src/pages/Index/Scan.tsx:398 msgid "Delete History" msgstr "" -#: src/pages/Index/Scan.tsx:449 +#: src/pages/Index/Scan.tsx:463 msgid "No history" msgstr "" -#: src/pages/Index/Scan.tsx:467 +#: src/pages/Index/Scan.tsx:481 msgid "Item" msgstr "" -#: src/pages/Index/Scan.tsx:470 +#: src/pages/Index/Scan.tsx:484 msgid "Type" msgstr "" -#: src/pages/Index/Scan.tsx:473 +#: src/pages/Index/Scan.tsx:487 msgid "Source" msgstr "" -#: src/pages/Index/Scan.tsx:476 +#: src/pages/Index/Scan.tsx:490 msgid "Scanned at" msgstr "" -#: src/pages/Index/Scan.tsx:528 +#: src/pages/Index/Scan.tsx:547 msgid "Enter item serial or data" msgstr "" -#: src/pages/Index/Scan.tsx:540 +#: src/pages/Index/Scan.tsx:559 msgid "Add dummy item" msgstr "" +#: src/pages/Index/Scan.tsx:569 +msgid "Start scanning by selecting a camera and pressing the play button." +msgstr "" + +#: src/pages/Index/Scan.tsx:650 +msgid "Error while getting camera" +msgstr "" + +#: src/pages/Index/Scan.tsx:673 +msgid "Error while scanning" +msgstr "" + +#: src/pages/Index/Scan.tsx:687 +msgid "Error while stopping" +msgstr "" + +#: src/pages/Index/Scan.tsx:745 +msgid "Stop scanning" +msgstr "" + +#: src/pages/Index/Scan.tsx:754 +msgid "Start scanning" +msgstr "" + +#: src/pages/Index/Scan.tsx:763 +msgid "Scanning" +msgstr "" + +#: src/pages/Index/Scan.tsx:763 +msgid "Not scanning" +msgstr "" + +#: src/pages/Index/Scan.tsx:775 +msgid "Select Camera" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:28 +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:50 +msgid "Edit User Information" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:32 +msgid "User details updated" +msgstr "" + #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:41 -msgid "Account Details" +msgid "User Details" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:41 +#~ msgid "Account Details" +#~ msgstr "Account Details" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:44 +msgid "User Actions" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:48 +msgid "Edit User" msgstr "" #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:50 -msgid "First name" +#~ msgid "First name" +#~ msgstr "First name" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:54 +msgid "Set Password" msgstr "" #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:55 -msgid "Last name" +#~ msgid "Last name" +#~ msgstr "Last name" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:56 +msgid "Set User Password" msgstr "" #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:58 @@ -3495,15 +4194,28 @@ msgstr "" #~ msgstr "Last name: {0}" #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:67 -msgid "First name:" -msgstr "" +#~ msgid "First name:" +#~ msgstr "First name:" #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:71 -msgid "Last name:" +#~ msgid "Last name:" +#~ msgstr "Last name:" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:73 +msgid "First Name" msgstr "" -#: src/pages/Index/Settings/AccountSettings/DisplaySettingsPanel.tsx:41 -msgid "Use pseudo language" +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:79 +msgid "Last Name" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:85 +msgid "Staff Access" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:93 +#: src/tables/settings/UserTable.tsx:293 +msgid "Superuser" msgstr "" #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:55 @@ -3600,27 +4312,6 @@ msgstr "" msgid "No tokens configured" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:398 -#: src/pages/part/PartDetail.tsx:297 -#: src/tables/bom/UsedInTable.tsx:84 -#: src/tables/build/BuildOrderTable.tsx:110 -#: src/tables/company/CompanyTable.tsx:61 -#: src/tables/company/CompanyTable.tsx:95 -#: src/tables/machine/MachineListTable.tsx:332 -#: src/tables/machine/MachineListTable.tsx:594 -#: src/tables/part/ParametricPartTable.tsx:223 -#: src/tables/part/PartTable.tsx:178 -#: src/tables/part/PartVariantTable.tsx:15 -#: src/tables/plugin/PluginListTable.tsx:149 -#: src/tables/plugin/PluginListTable.tsx:271 -#: src/tables/plugin/PluginListTable.tsx:563 -#: src/tables/purchasing/SupplierPartTable.tsx:98 -#: src/tables/purchasing/SupplierPartTable.tsx:187 -#: src/tables/settings/UserTable.tsx:284 -#: src/tables/stock/StockItemTable.tsx:289 -msgid "Active" -msgstr "" - #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:401 msgid "Expiry" msgstr "" @@ -3630,38 +4321,74 @@ msgid "Last Seen" msgstr "" #: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:65 -msgid "bars" -msgstr "" +#~ msgid "bars" +#~ msgstr "bars" #: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:66 -msgid "oval" -msgstr "" +#~ msgid "oval" +#~ msgstr "oval" #: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:67 -msgid "dots" -msgstr "" +#~ msgid "dots" +#~ msgstr "dots" #: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:81 -msgid "Theme" -msgstr "" +#~ msgid "Theme" +#~ msgstr "Theme" #: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:87 -msgid "Primary color" +#~ msgid "Primary color" +#~ msgstr "Primary color" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:88 +msgid "Bars" msgstr "" -#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:100 +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:89 +msgid "Oval" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:90 +msgid "Dots" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:101 +msgid "Display Settings" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:107 +msgid "Language" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:115 +msgid "Use pseudo language" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:122 +msgid "Color Mode" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:133 +msgid "Highlight color" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:145 +msgid "Example" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:151 msgid "White color" msgstr "" -#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:108 +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:167 msgid "Black color" msgstr "" -#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:116 +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:183 msgid "Border Radius" msgstr "" -#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:132 +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:199 msgid "Loader" msgstr "" @@ -3673,89 +4400,156 @@ msgstr "" #~ msgid "Advanced Amininistrative Options for InvenTree" #~ msgstr "Advanced Amininistrative Options for InvenTree" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:104 +#: src/pages/Index/Settings/AdminCenter/CurrencyManagmentPanel.tsx:27 +#: src/tables/ColumnRenderers.tsx:262 +msgid "Currency" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/CurrencyManagmentPanel.tsx:32 +msgid "Rate" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/CurrencyManagmentPanel.tsx:44 +msgid "Exchange rates updated" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/CurrencyManagmentPanel.tsx:50 +msgid "Exchange rate update error" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/CurrencyManagmentPanel.tsx:62 +msgid "Refresh currency exchange rates" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/CurrencyManagmentPanel.tsx:99 +msgid "Last fetched" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/CurrencyManagmentPanel.tsx:100 +msgid "Base currency" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:115 msgid "Data Import" msgstr "" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:110 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:121 +msgid "Barcode Scans" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:127 msgid "Background Tasks" msgstr "" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:116 -msgid "Error Reports" -msgstr "" - -#: src/pages/Index/Settings/AdminCenter/Index.tsx:122 -msgid "Currencies" -msgstr "" - #: src/pages/Index/Settings/AdminCenter/Index.tsx:127 #~ msgid "Templates" #~ msgstr "Templates" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:140 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:133 +msgid "Error Reports" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:139 +msgid "Currencies" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:157 +msgid "Custom States" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:163 +#: src/pages/Index/Settings/AdminCenter/UnitManagmentPanel.tsx:58 msgid "Custom Units" msgstr "" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:146 -#: src/pages/part/CategoryDetail.tsx:264 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:169 +#: src/pages/part/CategoryDetail.tsx:269 msgid "Part Parameters" msgstr "" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:152 -msgid "Category Parameters" -msgstr "" - -#: src/pages/Index/Settings/AdminCenter/Index.tsx:170 -msgid "Location Types" -msgstr "" - #: src/pages/Index/Settings/AdminCenter/Index.tsx:170 #~ msgid "Location types" #~ msgstr "Location types" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:182 -#: src/tables/machine/MachineTypeTable.tsx:287 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:175 +msgid "Category Parameters" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:181 +msgid "Stocktake" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:199 +msgid "Location Types" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:211 +#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:48 +#: src/tables/machine/MachineTypeTable.tsx:308 msgid "Machines" msgstr "" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:192 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:221 msgid "Quick Actions" msgstr "" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:197 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:226 msgid "Add a new user" msgstr "" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:222 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:252 msgid "Advanced Options" msgstr "" #: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:43 -msgid "Machine types" -msgstr "" +#~ msgid "Machine types" +#~ msgstr "Machine types" #: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:53 -msgid "Machine Error Stack" +#~ msgid "Machine Error Stack" +#~ msgstr "Machine Error Stack" + +#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:56 +msgid "Machine Types" msgstr "" #: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:62 -msgid "There are no machine registry errors." +#~ msgid "There are no machine registry errors." +#~ msgstr "There are no machine registry errors." + +#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:64 +msgid "Machine Errors" msgstr "" -#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:28 -#: src/tables/settings/UserTable.tsx:119 +#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:77 +msgid "Registry Registry Errors" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:80 +msgid "There are machine registry errors" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:86 +msgid "Machine Registry Errors" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:89 +msgid "There are no machine registry errors" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:31 +#: src/tables/settings/UserTable.tsx:118 msgid "Info" msgstr "" -#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:32 -msgid "External plugins are not enabled for this InvenTree installation." -msgstr "" - #: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:33 #~ msgid "Plugin Error Stack" #~ msgstr "Plugin Error Stack" +#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:35 +msgid "External plugins are not enabled for this InvenTree installation." +msgstr "" + #: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:45 #~ msgid "Warning" #~ msgstr "Warning" @@ -3764,34 +4558,46 @@ msgstr "" #~ msgid "Changing the settings below require you to immediately restart the server. Do not change this while under active usage." #~ msgstr "Changing the settings below require you to immediately restart the server. Do not change this while under active usage." -#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:50 +#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:73 msgid "Plugin Errors" msgstr "" -#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:59 -msgid "Plugin Settings" +#: src/pages/Index/Settings/AdminCenter/ReportTemplatePanel.tsx:17 +msgid "Page Size" msgstr "" -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:53 -msgid "Background Worker Not Running" +#: src/pages/Index/Settings/AdminCenter/ReportTemplatePanel.tsx:20 +msgid "Landscape" msgstr "" -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:54 +#: src/pages/Index/Settings/AdminCenter/ReportTemplatePanel.tsx:26 +msgid "Attach to Model" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/StocktakePanel.tsx:25 +msgid "Stocktake Reports" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:30 msgid "The background task manager service is not running. Contact your system administrator." msgstr "" -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:60 -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:76 +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:35 +#~ msgid "Background Worker Not Running" +#~ msgstr "Background Worker Not Running" + +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:36 +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:45 msgid "Pending Tasks" msgstr "" -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:64 -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:84 +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:37 +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:53 msgid "Scheduled Tasks" msgstr "" -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:68 -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:92 +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:38 +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:61 msgid "Failed Tasks" msgstr "" @@ -3811,11 +4617,6 @@ msgstr "" #~ msgid "Reports" #~ msgstr "Reports" -#: src/pages/Index/Settings/AdminCenter/TemplateManagementPanel.tsx:89 -#: src/pages/build/BuildDetail.tsx:373 -#~ msgid "Report" -#~ msgstr "Report" - #: src/pages/Index/Settings/AdminCenter/TemplateManagementPanel.tsx:99 #~ msgid "Purchase order" #~ msgstr "Purchase order" @@ -3836,23 +4637,35 @@ msgstr "" #~ msgid "Stock location" #~ msgstr "Stock location" +#: src/pages/Index/Settings/AdminCenter/UnitManagmentPanel.tsx:21 +msgid "Alias" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/UnitManagmentPanel.tsx:22 +msgid "Dimensionless" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/UnitManagmentPanel.tsx:66 +msgid "All units" +msgstr "" + #: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:32 msgid "Select settings relevant for user lifecycle. More available in" msgstr "" #: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:37 -msgid "System settings" -msgstr "" +#~ msgid "System settings" +#~ msgstr "System settings" -#: src/pages/Index/Settings/SystemSettings.tsx:67 +#: src/pages/Index/Settings/SystemSettings.tsx:66 msgid "Login" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:93 +#: src/pages/Index/Settings/SystemSettings.tsx:92 msgid "Barcodes" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:115 +#: src/pages/Index/Settings/SystemSettings.tsx:116 msgid "Pricing" msgstr "" @@ -3864,64 +4677,46 @@ msgstr "" #~ msgid "Exchange Rates" #~ msgstr "Exchange Rates" -#: src/pages/Index/Settings/SystemSettings.tsx:150 +#: src/pages/Index/Settings/SystemSettings.tsx:151 msgid "Labels" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:156 -#: src/pages/Index/Settings/UserSettings.tsx:132 +#: src/pages/Index/Settings/SystemSettings.tsx:157 +#: src/pages/Index/Settings/UserSettings.tsx:133 msgid "Reporting" msgstr "" #: src/pages/Index/Settings/SystemSettings.tsx:231 -#: src/pages/part/PartDetail.tsx:682 -msgid "Stocktake" -msgstr "" - -#: src/pages/Index/Settings/SystemSettings.tsx:237 -#: src/pages/build/BuildDetail.tsx:554 -#: src/pages/build/BuildIndex.tsx:22 -#: src/pages/part/PartDetail.tsx:616 -#: src/pages/sales/SalesOrderDetail.tsx:333 +#: src/pages/build/BuildIndex.tsx:27 +#: src/pages/part/PartDetail.tsx:636 +#: src/pages/sales/SalesOrderDetail.tsx:355 msgid "Build Orders" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:318 -msgid "Switch to User Setting" -msgstr "" +#: src/pages/Index/Settings/SystemSettings.tsx:317 +#~ msgid "Switch to User Setting" +#~ msgstr "Switch to User Setting" -#: src/pages/Index/Settings/UserSettings.tsx:34 +#: src/pages/Index/Settings/UserSettings.tsx:35 msgid "Account" msgstr "" -#: src/pages/Index/Settings/UserSettings.tsx:40 +#: src/pages/Index/Settings/UserSettings.tsx:41 msgid "Security" msgstr "" -#: src/pages/Index/Settings/UserSettings.tsx:78 +#: src/pages/Index/Settings/UserSettings.tsx:79 msgid "Display Options" msgstr "" -#: src/pages/Index/Settings/UserSettings.tsx:150 -msgid "Account Settings" -msgstr "" - -#: src/pages/Index/Settings/UserSettings.tsx:158 -msgid "Switch to System Setting" -msgstr "" - -#: src/pages/Index/UserSettings.tsx:103 -#~ msgid "User Settings" -#~ msgstr "User Settings" +#: src/pages/Index/Settings/UserSettings.tsx:159 +#~ msgid "Switch to System Setting" +#~ msgstr "Switch to System Setting" #: src/pages/Logged-In.tsx:24 #~ msgid "Found an exsisting login - using it to log you in." #~ msgstr "Found an exsisting login - using it to log you in." -#: src/pages/NotFound.tsx:17 -#~ msgid "Not Found" -#~ msgstr "Not Found" - #: src/pages/NotFound.tsx:20 #~ msgid "Sorry, this page is not known or was moved." #~ msgstr "Sorry, this page is not known or was moved." @@ -3942,104 +4737,86 @@ msgstr "" #~ msgid "Build Status" #~ msgstr "Build Status" -#: src/pages/build/BuildDetail.tsx:102 -#: src/pages/part/PartDetail.tsx:150 +#: src/pages/build/BuildDetail.tsx:97 +#: src/pages/company/ManufacturerPartDetail.tsx:81 +#: src/pages/company/SupplierPartDetail.tsx:91 +#: src/pages/part/PartDetail.tsx:171 +#: src/pages/stock/StockDetail.tsx:122 #: src/tables/bom/BomTable.tsx:118 #: src/tables/bom/UsedInTable.tsx:39 -#: src/tables/build/BuildLineTable.tsx:173 -#: src/tables/build/BuildOrderTable.tsx:55 -#: src/tables/sales/SalesOrderLineItemTable.tsx:62 -#: src/tables/stock/StockItemTable.tsx:53 +#: src/tables/build/BuildAllocatedStockTable.tsx:104 +#: src/tables/build/BuildLineTable.tsx:324 +#: src/tables/build/BuildOrderTable.tsx:64 +#: src/tables/sales/SalesOrderLineItemTable.tsx:70 +#: src/tables/stock/StockItemTable.tsx:54 msgid "IPN" msgstr "" -#: src/pages/build/BuildDetail.tsx:115 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:121 -#: src/pages/sales/ReturnOrderDetail.tsx:95 -#: src/pages/sales/SalesOrderDetail.tsx:101 -#: src/tables/ColumnRenderers.tsx:121 -#: src/tables/build/BuildAllocatedStockTable.tsx:90 -#: src/tables/build/BuildLineTable.tsx:184 +#: src/pages/build/BuildDetail.tsx:110 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:115 +#: src/pages/sales/ReturnOrderDetail.tsx:86 +#: src/pages/sales/SalesOrderDetail.tsx:95 +#: src/tables/ColumnRenderers.tsx:132 +#: src/tables/build/BuildAllocatedStockTable.tsx:111 +#: src/tables/build/BuildLineTable.tsx:335 msgid "Reference" msgstr "" -#: src/pages/build/BuildDetail.tsx:121 -#: src/pages/company/CompanyDetail.tsx:90 -#: src/pages/company/ManufacturerPartDetail.tsx:83 -#: src/pages/company/SupplierPartDetail.tsx:96 -#: src/pages/part/CategoryDetail.tsx:101 -#: src/pages/part/PartDetail.tsx:157 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:142 -#: src/pages/sales/ReturnOrderDetail.tsx:115 -#: src/pages/sales/SalesOrderDetail.tsx:121 -#: src/pages/stock/LocationDetail.tsx:109 -#: src/tables/ColumnRenderers.tsx:81 -#: src/tables/bom/UsedInTable.tsx:44 -#: src/tables/build/BuildAllocatedStockTable.tsx:70 -#: src/tables/build/BuildLineTable.tsx:178 -#: src/tables/machine/MachineTypeTable.tsx:69 -#: src/tables/machine/MachineTypeTable.tsx:112 -#: src/tables/machine/MachineTypeTable.tsx:219 -#: src/tables/machine/MachineTypeTable.tsx:323 -#: src/tables/part/RelatedPartTable.tsx:64 -#: src/tables/plugin/PluginListTable.tsx:129 -#: src/tables/plugin/PluginListTable.tsx:276 -#: src/tables/sales/SalesOrderAllocationTable.tsx:56 -#: src/tables/sales/SalesOrderLineItemTable.tsx:67 -#: src/tables/stock/LocationTypesTable.tsx:74 -msgid "Description" -msgstr "" - -#: src/pages/build/BuildDetail.tsx:129 +#: src/pages/build/BuildDetail.tsx:124 msgid "Parent Build" msgstr "" -#: src/pages/build/BuildDetail.tsx:140 +#: src/pages/build/BuildDetail.tsx:135 msgid "Build Quantity" msgstr "" -#: src/pages/build/BuildDetail.tsx:148 -#: src/pages/build/BuildDetail.tsx:274 +#: src/pages/build/BuildDetail.tsx:143 +#: src/pages/build/BuildDetail.tsx:277 msgid "Completed Outputs" msgstr "" -#: src/pages/build/BuildDetail.tsx:165 -#: src/tables/build/BuildOrderTable.tsx:151 +#: src/pages/build/BuildDetail.tsx:160 +#: src/tables/build/BuildOrderTable.tsx:142 msgid "Issued By" msgstr "" -#: src/pages/build/BuildDetail.tsx:172 -#: src/pages/part/PartDetail.tsx:365 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:220 -#: src/pages/sales/ReturnOrderDetail.tsx:199 -#: src/pages/sales/SalesOrderDetail.tsx:208 -#: src/tables/build/BuildOrderTable.tsx:157 -#: src/tables/purchasing/PurchaseOrderTable.tsx:75 -#: src/tables/sales/ReturnOrderTable.tsx:66 -#: src/tables/sales/SalesOrderTable.tsx:73 +#: src/pages/build/BuildDetail.tsx:167 +#: src/pages/part/PartDetail.tsx:406 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:244 +#: src/pages/sales/ReturnOrderDetail.tsx:216 +#: src/pages/sales/SalesOrderDetail.tsx:226 +#: src/tables/build/BuildOrderTable.tsx:148 +#: src/tables/purchasing/PurchaseOrderTable.tsx:76 +#: src/tables/sales/ReturnOrderTable.tsx:74 +#: src/tables/sales/SalesOrderTable.tsx:74 msgid "Responsible" msgstr "" -#: src/pages/build/BuildDetail.tsx:179 -#: src/tables/settings/PendingTasksTable.tsx:32 +#: src/pages/build/BuildDetail.tsx:174 +#: src/tables/settings/PendingTasksTable.tsx:36 msgid "Created" msgstr "" +#: src/pages/build/BuildDetail.tsx:181 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:229 +#: src/pages/sales/ReturnOrderDetail.tsx:201 +#: src/pages/sales/SalesOrderDetail.tsx:212 +#: src/tables/ColumnRenderers.tsx:226 +#: src/tables/part/PartPurchaseOrdersTable.tsx:100 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:135 +#: src/tables/sales/SalesOrderLineItemTable.tsx:107 +msgid "Target Date" +msgstr "" + #: src/pages/build/BuildDetail.tsx:185 #: src/pages/part/PartDetail.tsx:269 #: src/pages/stock/StockDetail.tsx:150 #~ msgid "View part barcode" #~ msgstr "View part barcode" -#: src/pages/build/BuildDetail.tsx:186 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:213 -#: src/pages/sales/ReturnOrderDetail.tsx:192 -#: src/pages/sales/SalesOrderDetail.tsx:201 -#: src/tables/ColumnRenderers.tsx:212 -#: src/tables/part/PartPurchaseOrdersTable.tsx:99 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:110 -#: src/tables/sales/SalesOrderLineItemTable.tsx:99 -msgid "Target Date" +#: src/pages/build/BuildDetail.tsx:188 +#: src/tables/sales/SalesOrderLineItemTable.tsx:281 +msgid "Completed" msgstr "" #: src/pages/build/BuildDetail.tsx:190 @@ -4047,10 +4824,6 @@ msgstr "" #~ msgid "Link custom barcode to part" #~ msgstr "Link custom barcode to part" -#: src/pages/build/BuildDetail.tsx:193 -msgid "Completed" -msgstr "" - #: src/pages/build/BuildDetail.tsx:196 #: src/pages/part/PartDetail.tsx:280 #~ msgid "Unlink custom barcode from part" @@ -4060,15 +4833,11 @@ msgstr "" #~ msgid "Build Order updated" #~ msgstr "Build Order updated" -#: src/pages/build/BuildDetail.tsx:205 -msgid "Source Location" -msgstr "" - -#: src/pages/build/BuildDetail.tsx:206 +#: src/pages/build/BuildDetail.tsx:209 msgid "Any location" msgstr "" -#: src/pages/build/BuildDetail.tsx:213 +#: src/pages/build/BuildDetail.tsx:216 msgid "Destination Location" msgstr "" @@ -4084,206 +4853,182 @@ msgstr "" #~ msgid "Delete build order" #~ msgstr "Delete build order" -#: src/pages/build/BuildDetail.tsx:251 +#: src/pages/build/BuildDetail.tsx:254 msgid "Build Details" msgstr "" -#: src/pages/build/BuildDetail.tsx:257 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:258 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:267 -#: src/pages/sales/ReturnOrderDetail.tsx:130 -#: src/pages/sales/ReturnOrderDetail.tsx:237 -#: src/pages/sales/ReturnOrderDetail.tsx:246 -#: src/pages/sales/SalesOrderDetail.tsx:272 -#: src/pages/sales/SalesOrderDetail.tsx:281 +#: src/pages/build/BuildDetail.tsx:260 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:282 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:291 +#: src/pages/sales/ReturnOrderDetail.tsx:122 +#: src/pages/sales/ReturnOrderDetail.tsx:254 +#: src/pages/sales/ReturnOrderDetail.tsx:263 +#: src/pages/sales/SalesOrderDetail.tsx:294 +#: src/pages/sales/SalesOrderDetail.tsx:303 msgid "Line Items" msgstr "" -#: src/pages/build/BuildDetail.tsx:267 +#: src/pages/build/BuildDetail.tsx:266 msgid "Incomplete Outputs" msgstr "" -#: src/pages/build/BuildDetail.tsx:289 -#: src/pages/sales/SalesOrderDetail.tsx:319 +#: src/pages/build/BuildDetail.tsx:292 +#: src/pages/sales/SalesOrderDetail.tsx:341 msgid "Allocated Stock" msgstr "" -#: src/pages/build/BuildDetail.tsx:299 +#: src/pages/build/BuildDetail.tsx:302 msgid "Consumed Stock" msgstr "" -#: src/pages/build/BuildDetail.tsx:313 +#: src/pages/build/BuildDetail.tsx:316 msgid "Child Build Orders" msgstr "" #: src/pages/build/BuildDetail.tsx:326 -#: src/tables/build/BuildOutputTable.tsx:384 -#: src/tables/stock/StockItemTestResultTable.tsx:150 +#: src/tables/build/BuildOutputTable.tsx:532 +#: src/tables/stock/StockItemTestResultTable.tsx:156 msgid "Test Results" msgstr "" #: src/pages/build/BuildDetail.tsx:337 -#: src/pages/part/PartDetail.tsx:699 +#: src/pages/part/PartDetail.tsx:740 msgid "Test Statistics" msgstr "" -#: src/pages/build/BuildDetail.tsx:351 -#: src/pages/company/CompanyDetail.tsx:259 -#: src/pages/company/ManufacturerPartDetail.tsx:179 -#: src/pages/part/PartDetail.tsx:721 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:309 -#: src/pages/sales/ReturnOrderDetail.tsx:274 -#: src/pages/sales/SalesOrderDetail.tsx:343 -#: src/pages/stock/StockDetail.tsx:385 -msgid "Attachments" -msgstr "" - -#: src/pages/build/BuildDetail.tsx:359 -#: src/pages/company/CompanyDetail.tsx:270 -#: src/pages/company/ManufacturerPartDetail.tsx:190 -#: src/pages/company/SupplierPartDetail.tsx:257 -#: src/pages/part/PartDetail.tsx:729 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:320 -#: src/pages/sales/ReturnOrderDetail.tsx:285 -#: src/pages/sales/SalesOrderDetail.tsx:354 -#: src/pages/stock/StockDetail.tsx:396 -#: src/tables/build/BuildOrderTestTable.tsx:142 -#: src/tables/stock/StockTrackingTable.tsx:189 -msgid "Notes" +#: src/pages/build/BuildDetail.tsx:365 +msgid "Edit Build Order" msgstr "" #: src/pages/build/BuildDetail.tsx:368 #~ msgid "Reporting Actions" #~ msgstr "Reporting Actions" +#: src/pages/build/BuildDetail.tsx:372 +#: src/tables/build/BuildOrderTable.tsx:173 +#: src/tables/build/BuildOrderTable.tsx:188 +msgid "Add Build Order" +msgstr "" + #: src/pages/build/BuildDetail.tsx:374 #~ msgid "Print build report" #~ msgstr "Print build report" -#: src/pages/build/BuildDetail.tsx:377 -msgid "Edit Build Order" -msgstr "" - -#: src/pages/build/BuildDetail.tsx:384 -#: src/tables/build/BuildOrderTable.tsx:172 -#: src/tables/build/BuildOrderTable.tsx:187 -msgid "Add Build Order" -msgstr "" - -#: src/pages/build/BuildDetail.tsx:398 +#: src/pages/build/BuildDetail.tsx:386 msgid "Cancel Build Order" msgstr "" -#: src/pages/build/BuildDetail.tsx:400 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:348 -#: src/pages/sales/SalesOrderDetail.tsx:380 +#: src/pages/build/BuildDetail.tsx:388 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:357 +#: src/pages/sales/ReturnOrderDetail.tsx:354 +#: src/pages/sales/SalesOrderDetail.tsx:387 msgid "Order cancelled" msgstr "" -#: src/pages/build/BuildDetail.tsx:401 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:347 -#: src/pages/sales/ReturnOrderDetail.tsx:346 -#: src/pages/sales/SalesOrderDetail.tsx:379 +#: src/pages/build/BuildDetail.tsx:389 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:356 +#: src/pages/sales/ReturnOrderDetail.tsx:353 +#: src/pages/sales/SalesOrderDetail.tsx:386 msgid "Cancel this order" msgstr "" -#: src/pages/build/BuildDetail.tsx:410 +#: src/pages/build/BuildDetail.tsx:398 msgid "Hold Build Order" msgstr "" -#: src/pages/build/BuildDetail.tsx:412 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:355 -#: src/pages/sales/ReturnOrderDetail.tsx:354 -#: src/pages/sales/SalesOrderDetail.tsx:387 +#: src/pages/build/BuildDetail.tsx:400 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:364 +#: src/pages/sales/ReturnOrderDetail.tsx:361 +#: src/pages/sales/SalesOrderDetail.tsx:394 msgid "Place this order on hold" msgstr "" -#: src/pages/build/BuildDetail.tsx:413 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:356 -#: src/pages/sales/ReturnOrderDetail.tsx:355 -#: src/pages/sales/SalesOrderDetail.tsx:388 +#: src/pages/build/BuildDetail.tsx:401 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:365 +#: src/pages/sales/ReturnOrderDetail.tsx:362 +#: src/pages/sales/SalesOrderDetail.tsx:395 msgid "Order placed on hold" msgstr "" -#: src/pages/build/BuildDetail.tsx:418 +#: src/pages/build/BuildDetail.tsx:406 msgid "Issue Build Order" msgstr "" -#: src/pages/build/BuildDetail.tsx:420 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:339 -#: src/pages/sales/ReturnOrderDetail.tsx:338 -#: src/pages/sales/SalesOrderDetail.tsx:371 +#: src/pages/build/BuildDetail.tsx:408 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:348 +#: src/pages/sales/ReturnOrderDetail.tsx:345 +#: src/pages/sales/SalesOrderDetail.tsx:378 msgid "Issue this order" msgstr "" -#: src/pages/build/BuildDetail.tsx:421 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:340 -#: src/pages/sales/ReturnOrderDetail.tsx:339 -#: src/pages/sales/SalesOrderDetail.tsx:372 +#: src/pages/build/BuildDetail.tsx:409 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:349 +#: src/pages/sales/ReturnOrderDetail.tsx:346 +#: src/pages/sales/SalesOrderDetail.tsx:379 msgid "Order issued" msgstr "" -#: src/pages/build/BuildDetail.tsx:426 +#: src/pages/build/BuildDetail.tsx:414 msgid "Complete Build Order" msgstr "" -#: src/pages/build/BuildDetail.tsx:428 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:368 -#: src/pages/sales/ReturnOrderDetail.tsx:362 -#: src/pages/sales/SalesOrderDetail.tsx:395 +#: src/pages/build/BuildDetail.tsx:416 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:377 +#: src/pages/sales/ReturnOrderDetail.tsx:369 +#: src/pages/sales/SalesOrderDetail.tsx:402 msgid "Mark this order as complete" msgstr "" -#: src/pages/build/BuildDetail.tsx:429 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:362 -#: src/pages/sales/ReturnOrderDetail.tsx:363 -#: src/pages/sales/SalesOrderDetail.tsx:396 +#: src/pages/build/BuildDetail.tsx:417 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:371 +#: src/pages/sales/ReturnOrderDetail.tsx:370 +#: src/pages/sales/SalesOrderDetail.tsx:403 msgid "Order completed" msgstr "" -#: src/pages/build/BuildDetail.tsx:460 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:391 -#: src/pages/sales/ReturnOrderDetail.tsx:392 -#: src/pages/sales/SalesOrderDetail.tsx:425 +#: src/pages/build/BuildDetail.tsx:448 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:400 +#: src/pages/sales/ReturnOrderDetail.tsx:399 +#: src/pages/sales/SalesOrderDetail.tsx:432 msgid "Issue Order" msgstr "" -#: src/pages/build/BuildDetail.tsx:467 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:398 -#: src/pages/sales/ReturnOrderDetail.tsx:399 -#: src/pages/sales/SalesOrderDetail.tsx:439 +#: src/pages/build/BuildDetail.tsx:455 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:407 +#: src/pages/sales/ReturnOrderDetail.tsx:406 +#: src/pages/sales/SalesOrderDetail.tsx:446 msgid "Complete Order" msgstr "" -#: src/pages/build/BuildDetail.tsx:496 +#: src/pages/build/BuildDetail.tsx:473 msgid "Build Order Actions" msgstr "" -#: src/pages/build/BuildDetail.tsx:502 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:432 -#: src/pages/sales/ReturnOrderDetail.tsx:433 -#: src/pages/sales/SalesOrderDetail.tsx:474 +#: src/pages/build/BuildDetail.tsx:478 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:429 +#: src/pages/sales/ReturnOrderDetail.tsx:428 +#: src/pages/sales/SalesOrderDetail.tsx:469 msgid "Edit order" msgstr "" -#: src/pages/build/BuildDetail.tsx:506 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:440 -#: src/pages/sales/ReturnOrderDetail.tsx:439 -#: src/pages/sales/SalesOrderDetail.tsx:479 +#: src/pages/build/BuildDetail.tsx:482 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:437 +#: src/pages/sales/ReturnOrderDetail.tsx:434 +#: src/pages/sales/SalesOrderDetail.tsx:474 msgid "Duplicate order" msgstr "" -#: src/pages/build/BuildDetail.tsx:510 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:443 -#: src/pages/sales/ReturnOrderDetail.tsx:444 -#: src/pages/sales/SalesOrderDetail.tsx:482 +#: src/pages/build/BuildDetail.tsx:486 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:440 +#: src/pages/sales/ReturnOrderDetail.tsx:439 +#: src/pages/sales/SalesOrderDetail.tsx:477 msgid "Hold order" msgstr "" -#: src/pages/build/BuildDetail.tsx:515 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:448 -#: src/pages/sales/ReturnOrderDetail.tsx:449 -#: src/pages/sales/SalesOrderDetail.tsx:487 +#: src/pages/build/BuildDetail.tsx:491 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:445 +#: src/pages/sales/ReturnOrderDetail.tsx:444 +#: src/pages/sales/SalesOrderDetail.tsx:482 msgid "Cancel order" msgstr "" @@ -4295,56 +5040,60 @@ msgstr "" #~ msgid "New Build Order" #~ msgstr "New Build Order" -#: src/pages/company/CompanyDetail.tsx:104 +#: src/pages/company/CompanyDetail.tsx:95 +msgid "Website" +msgstr "" + +#: src/pages/company/CompanyDetail.tsx:103 msgid "Phone Number" msgstr "" -#: src/pages/company/CompanyDetail.tsx:111 +#: src/pages/company/CompanyDetail.tsx:110 msgid "Email Address" msgstr "" -#: src/pages/company/CompanyDetail.tsx:121 +#: src/pages/company/CompanyDetail.tsx:120 msgid "Default Currency" msgstr "" -#: src/pages/company/CompanyDetail.tsx:126 +#: src/pages/company/CompanyDetail.tsx:125 #: src/pages/company/SupplierDetail.tsx:8 -#: src/pages/company/SupplierPartDetail.tsx:120 -#: src/pages/company/SupplierPartDetail.tsx:206 -#: src/pages/company/SupplierPartDetail.tsx:351 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:136 -#: src/tables/company/CompanyTable.tsx:100 +#: src/pages/company/SupplierPartDetail.tsx:125 +#: src/pages/company/SupplierPartDetail.tsx:218 +#: src/pages/company/SupplierPartDetail.tsx:340 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:130 +#: src/tables/company/CompanyTable.tsx:101 #: src/tables/part/PartPurchaseOrdersTable.tsx:42 -#: src/tables/purchasing/PurchaseOrderTable.tsx:88 +#: src/tables/purchasing/PurchaseOrderTable.tsx:89 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:36 msgid "Supplier" msgstr "" -#: src/pages/company/CompanyDetail.tsx:132 +#: src/pages/company/CompanyDetail.tsx:131 #: src/pages/company/ManufacturerDetail.tsx:8 -#: src/pages/company/ManufacturerPartDetail.tsx:101 -#: src/pages/company/ManufacturerPartDetail.tsx:267 -#: src/pages/company/SupplierPartDetail.tsx:135 -#: src/tables/company/CompanyTable.tsx:105 +#: src/pages/company/ManufacturerPartDetail.tsx:100 +#: src/pages/company/ManufacturerPartDetail.tsx:262 +#: src/pages/company/SupplierPartDetail.tsx:147 +#: src/tables/company/CompanyTable.tsx:106 msgid "Manufacturer" msgstr "" -#: src/pages/company/CompanyDetail.tsx:138 +#: src/pages/company/CompanyDetail.tsx:137 #: src/pages/company/CustomerDetail.tsx:8 -#: src/pages/part/pricing/SaleHistoryPanel.tsx:29 -#: src/pages/sales/ReturnOrderDetail.tsx:109 -#: src/pages/sales/SalesOrderDetail.tsx:115 -#: src/pages/stock/StockDetail.tsx:230 -#: src/tables/company/CompanyTable.tsx:110 -#: src/tables/sales/ReturnOrderTable.tsx:78 -#: src/tables/sales/SalesOrderTable.tsx:108 -#: src/tables/stock/StockTrackingTable.tsx:140 +#: src/pages/part/pricing/SaleHistoryPanel.tsx:31 +#: src/pages/sales/ReturnOrderDetail.tsx:101 +#: src/pages/sales/SalesOrderDetail.tsx:110 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:100 +#: src/pages/stock/StockDetail.tsx:271 +#: src/tables/company/CompanyTable.tsx:111 +#: src/tables/sales/ReturnOrderTable.tsx:97 +#: src/tables/sales/SalesOrderTable.tsx:121 +#: src/tables/stock/StockTrackingTable.tsx:144 msgid "Customer" msgstr "" #: src/pages/company/CompanyDetail.tsx:172 -#: src/tables/stock/StockTrackingTable.tsx:183 -msgid "Details" +msgid "Company Details" msgstr "" #: src/pages/company/CompanyDetail.tsx:175 @@ -4363,140 +5112,150 @@ msgstr "" #~ msgid "Delete company" #~ msgstr "Delete company" -#: src/pages/company/CompanyDetail.tsx:232 +#: src/pages/company/CompanyDetail.tsx:234 msgid "Assigned Stock" msgstr "" -#: src/pages/company/CompanyDetail.tsx:290 -#: src/tables/company/CompanyTable.tsx:86 +#: src/pages/company/CompanyDetail.tsx:273 +#: src/tables/company/CompanyTable.tsx:87 msgid "Edit Company" msgstr "" -#: src/pages/company/CompanyDetail.tsx:298 +#: src/pages/company/CompanyDetail.tsx:281 msgid "Delete Company" msgstr "" -#: src/pages/company/CompanyDetail.tsx:306 +#: src/pages/company/CompanyDetail.tsx:289 msgid "Company Actions" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:76 -#: src/pages/company/SupplierPartDetail.tsx:89 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:128 +#: src/pages/company/ManufacturerPartDetail.tsx:74 +#: src/pages/company/SupplierPartDetail.tsx:84 msgid "Internal Part" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:91 -#: src/pages/company/SupplierPartDetail.tsx:103 -msgid "External Link" -msgstr "" - -#: src/pages/company/ManufacturerPartDetail.tsx:109 -#: src/pages/company/SupplierPartDetail.tsx:144 -#: src/tables/purchasing/ManufacturerPartTable.tsx:56 +#: src/pages/company/ManufacturerPartDetail.tsx:108 +#: src/pages/company/SupplierPartDetail.tsx:156 +#: src/tables/purchasing/ManufacturerPartTable.tsx:58 msgid "Manufacturer Part Number" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:138 +#: src/pages/company/ManufacturerPartDetail.tsx:125 +#: src/pages/company/SupplierPartDetail.tsx:108 +msgid "External Link" +msgstr "" + +#: src/pages/company/ManufacturerPartDetail.tsx:146 +#: src/pages/company/SupplierPartDetail.tsx:215 +#: src/pages/part/PartDetail.tsx:576 +msgid "Part Details" +msgstr "" + +#: src/pages/company/ManufacturerPartDetail.tsx:149 msgid "Manufacturer Details" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:147 +#: src/pages/company/ManufacturerPartDetail.tsx:158 msgid "Manufacturer Part Details" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:153 -#: src/pages/part/PartDetail.tsx:532 +#: src/pages/company/ManufacturerPartDetail.tsx:164 +#: src/pages/part/PartDetail.tsx:582 msgid "Parameters" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:165 -#: src/pages/part/PartDetail.tsx:649 +#: src/pages/company/ManufacturerPartDetail.tsx:176 +#: src/pages/part/PartDetail.tsx:669 #: src/pages/purchasing/PurchasingIndex.tsx:31 msgid "Suppliers" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:208 -#: src/tables/purchasing/ManufacturerPartTable.tsx:84 +#: src/pages/company/ManufacturerPartDetail.tsx:204 +#: src/tables/purchasing/ManufacturerPartTable.tsx:86 msgid "Edit Manufacturer Part" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:215 -#: src/tables/purchasing/ManufacturerPartTable.tsx:72 -#: src/tables/purchasing/ManufacturerPartTable.tsx:103 +#: src/pages/company/ManufacturerPartDetail.tsx:211 +#: src/tables/purchasing/ManufacturerPartTable.tsx:74 +#: src/tables/purchasing/ManufacturerPartTable.tsx:106 msgid "Add Manufacturer Part" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:227 -#: src/tables/purchasing/ManufacturerPartTable.tsx:92 +#: src/pages/company/ManufacturerPartDetail.tsx:223 +#: src/tables/purchasing/ManufacturerPartTable.tsx:94 msgid "Delete Manufacturer Part" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:240 +#: src/pages/company/ManufacturerPartDetail.tsx:236 msgid "Manufacturer Part Actions" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:281 +#: src/pages/company/ManufacturerPartDetail.tsx:276 msgid "ManufacturerPart" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:163 -#: src/tables/part/PartPurchaseOrdersTable.tsx:71 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:156 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:197 -#: src/tables/purchasing/SupplierPartTable.tsx:131 +#: src/pages/company/SupplierPartDetail.tsx:99 +msgid "Part Description" +msgstr "" + +#: src/pages/company/SupplierPartDetail.tsx:175 +#: src/tables/part/PartPurchaseOrdersTable.tsx:72 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:162 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:203 +#: src/tables/purchasing/SupplierPartTable.tsx:133 msgid "Pack Quantity" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:174 +#: src/pages/company/SupplierPartDetail.tsx:186 msgid "Supplier Availability" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:181 +#: src/pages/company/SupplierPartDetail.tsx:193 msgid "Availability Updated" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:208 +#: src/pages/company/SupplierPartDetail.tsx:220 msgid "Availability" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:217 +#: src/pages/company/SupplierPartDetail.tsx:229 msgid "Supplier Part Details" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:223 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:296 +#: src/pages/company/SupplierPartDetail.tsx:235 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:320 msgid "Received Stock" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:247 -#: src/pages/part/PartPricingPanel.tsx:111 -#: src/pages/part/pricing/PricingOverviewPanel.tsx:121 +#: src/pages/company/SupplierPartDetail.tsx:259 +#: src/pages/part/PartPricingPanel.tsx:116 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:195 msgid "Supplier Pricing" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:294 +#: src/pages/company/SupplierPartDetail.tsx:284 msgid "Supplier Part Actions" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:319 -#: src/tables/purchasing/SupplierPartTable.tsx:210 +#: src/pages/company/SupplierPartDetail.tsx:308 +#: src/tables/purchasing/SupplierPartTable.tsx:213 msgid "Edit Supplier Part" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:327 -#: src/tables/purchasing/SupplierPartTable.tsx:218 +#: src/pages/company/SupplierPartDetail.tsx:316 +#: src/tables/purchasing/SupplierPartTable.tsx:221 msgid "Delete Supplier Part" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:335 -#: src/tables/purchasing/SupplierPartTable.tsx:163 +#: src/pages/company/SupplierPartDetail.tsx:324 +#: src/tables/purchasing/SupplierPartTable.tsx:165 msgid "Add Supplier Part" msgstr "" #: src/pages/part/CategoryDetail.tsx:93 -#: src/pages/stock/LocationDetail.tsx:101 -#: src/tables/settings/ErrorTable.tsx:36 +#: src/pages/stock/LocationDetail.tsx:95 +#: src/tables/settings/ErrorTable.tsx:63 +#: src/tables/settings/ErrorTable.tsx:108 msgid "Path" msgstr "" @@ -4504,357 +5263,357 @@ msgstr "" msgid "Parent Category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:126 +#: src/pages/part/CategoryDetail.tsx:132 msgid "Subcategories" msgstr "" -#: src/pages/part/CategoryDetail.tsx:133 -#: src/pages/stock/LocationDetail.tsx:141 -#: src/tables/part/PartCategoryTable.tsx:73 +#: src/pages/part/CategoryDetail.tsx:139 +#: src/pages/stock/LocationDetail.tsx:135 +#: src/tables/part/PartCategoryTable.tsx:85 #: src/tables/stock/StockLocationTable.tsx:49 msgid "Structural" msgstr "" -#: src/pages/part/CategoryDetail.tsx:139 +#: src/pages/part/CategoryDetail.tsx:145 msgid "Parent default location" msgstr "" -#: src/pages/part/CategoryDetail.tsx:146 +#: src/pages/part/CategoryDetail.tsx:152 msgid "Default location" msgstr "" -#: src/pages/part/CategoryDetail.tsx:157 +#: src/pages/part/CategoryDetail.tsx:163 msgid "Top level part category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:167 -#: src/pages/part/CategoryDetail.tsx:221 -#: src/tables/part/PartCategoryTable.tsx:102 +#: src/pages/part/CategoryDetail.tsx:173 +#: src/pages/part/CategoryDetail.tsx:226 +#: src/tables/part/PartCategoryTable.tsx:118 msgid "Edit Part Category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:180 -#: src/pages/stock/LocationDetail.tsx:233 +#: src/pages/part/CategoryDetail.tsx:186 +#: src/pages/stock/LocationDetail.tsx:227 msgid "Delete items" msgstr "" -#: src/pages/part/CategoryDetail.tsx:188 -#: src/pages/part/CategoryDetail.tsx:226 +#: src/pages/part/CategoryDetail.tsx:194 +#: src/pages/part/CategoryDetail.tsx:231 msgid "Delete Part Category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:191 +#: src/pages/part/CategoryDetail.tsx:197 msgid "Parts Action" msgstr "" -#: src/pages/part/CategoryDetail.tsx:192 +#: src/pages/part/CategoryDetail.tsx:198 msgid "Action for parts in this category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:197 +#: src/pages/part/CategoryDetail.tsx:203 msgid "Child Categories Action" msgstr "" -#: src/pages/part/CategoryDetail.tsx:198 +#: src/pages/part/CategoryDetail.tsx:204 msgid "Action for child categories in this category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:216 +#: src/pages/part/CategoryDetail.tsx:222 msgid "Category Actions" msgstr "" -#: src/pages/part/CategoryDetail.tsx:238 +#: src/pages/part/CategoryDetail.tsx:243 msgid "Category Details" msgstr "" -#: src/pages/part/PartDetail.tsx:163 -msgid "Variant of" +#: src/pages/part/PartAllocationPanel.tsx:23 +#: src/pages/stock/StockDetail.tsx:443 +#: src/tables/part/PartTable.tsx:99 +msgid "Build Order Allocations" msgstr "" -#: src/pages/part/PartDetail.tsx:170 -msgid "Revision of" -msgstr "" - -#: src/pages/part/PartDetail.tsx:177 -#: src/tables/stock/StockItemTable.tsx:58 -msgid "Revision" +#: src/pages/part/PartAllocationPanel.tsx:40 +#: src/pages/stock/StockDetail.tsx:458 +#: src/tables/part/PartTable.tsx:108 +msgid "Sales Order Allocations" msgstr "" #: src/pages/part/PartDetail.tsx:184 +msgid "Variant of" +msgstr "" + +#: src/pages/part/PartDetail.tsx:191 +msgid "Revision of" +msgstr "" + +#: src/pages/part/PartDetail.tsx:198 +#: src/tables/stock/StockItemTable.tsx:59 +msgid "Revision" +msgstr "" + +#: src/pages/part/PartDetail.tsx:205 #: src/tables/notifications/NotificationsTable.tsx:31 #: src/tables/part/PartCategoryTemplateTable.tsx:67 msgid "Category" msgstr "" -#: src/pages/part/PartDetail.tsx:190 +#: src/pages/part/PartDetail.tsx:211 msgid "Default Location" msgstr "" -#: src/pages/part/PartDetail.tsx:197 +#: src/pages/part/PartDetail.tsx:218 msgid "Category Default Location" msgstr "" -#: src/pages/part/PartDetail.tsx:204 +#: src/pages/part/PartDetail.tsx:225 #: src/tables/purchasing/ManufacturerPartParameterTable.tsx:44 msgid "Units" msgstr "" -#: src/pages/part/PartDetail.tsx:211 -#: src/tables/settings/PendingTasksTable.tsx:42 +#: src/pages/part/PartDetail.tsx:232 +#: src/tables/settings/PendingTasksTable.tsx:46 msgid "Keywords" msgstr "" -#: src/pages/part/PartDetail.tsx:218 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:186 -#: src/pages/sales/ReturnOrderDetail.tsx:165 -#: src/pages/sales/SalesOrderDetail.tsx:174 -msgid "Link" -msgstr "" - -#: src/pages/part/PartDetail.tsx:236 +#: src/pages/part/PartDetail.tsx:257 #: src/tables/bom/BomTable.tsx:320 -#: src/tables/build/BuildLineTable.tsx:155 +#: src/tables/build/BuildLineTable.tsx:286 #: src/tables/part/PartTable.tsx:288 -#: src/tables/sales/SalesOrderLineItemTable.tsx:103 +#: src/tables/sales/SalesOrderLineItemTable.tsx:111 msgid "Available Stock" msgstr "" -#: src/pages/part/PartDetail.tsx:243 +#: src/pages/part/PartDetail.tsx:264 msgid "Variant Stock" msgstr "" -#: src/pages/part/PartDetail.tsx:251 +#: src/pages/part/PartDetail.tsx:272 msgid "Minimum Stock" msgstr "" -#: src/pages/part/PartDetail.tsx:257 +#: src/pages/part/PartDetail.tsx:278 #: src/tables/bom/BomTable.tsx:237 -#: src/tables/build/BuildLineTable.tsx:117 -#: src/tables/sales/SalesOrderLineItemTable.tsx:141 +#: src/tables/build/BuildLineTable.tsx:248 +#: src/tables/sales/SalesOrderLineItemTable.tsx:149 msgid "On order" msgstr "" -#: src/pages/part/PartDetail.tsx:266 +#: src/pages/part/PartDetail.tsx:285 +msgid "Required for Orders" +msgstr "" + +#: src/pages/part/PartDetail.tsx:294 msgid "Allocated to Build Orders" msgstr "" -#: src/pages/part/PartDetail.tsx:274 +#: src/pages/part/PartDetail.tsx:305 msgid "Allocated to Sales Orders" msgstr "" -#: src/pages/part/PartDetail.tsx:281 -#: src/tables/bom/BomTable.tsx:261 -#: src/tables/bom/BomTable.tsx:293 -msgid "Can Build" -msgstr "" - -#: src/pages/part/PartDetail.tsx:288 -#: src/tables/bom/BomTable.tsx:245 -#: src/tables/part/PartTable.tsx:92 -msgid "Building" -msgstr "" - -#: src/pages/part/PartDetail.tsx:302 -#: src/pages/part/PartDetail.tsx:873 -#: src/tables/part/ParametricPartTable.tsx:228 -#: src/tables/part/PartTable.tsx:184 -msgid "Locked" -msgstr "" - -#: src/pages/part/PartDetail.tsx:308 -msgid "Template Part" -msgstr "" - #: src/pages/part/PartDetail.tsx:310 #~ msgid "Edit part" #~ msgstr "Edit part" -#: src/pages/part/PartDetail.tsx:313 -#: src/tables/bom/BomTable.tsx:315 -msgid "Assembled Part" +#: src/pages/part/PartDetail.tsx:315 +#: src/tables/bom/BomTable.tsx:261 +#: src/tables/bom/BomTable.tsx:293 +msgid "Can Build" msgstr "" -#: src/pages/part/PartDetail.tsx:318 -msgid "Component Part" +#: src/pages/part/PartDetail.tsx:322 +#: src/pages/part/PartDetail.tsx:905 +#: src/pages/stock/StockDetail.tsx:766 +#: src/tables/build/BuildOrderTestTable.tsx:220 +#: src/tables/stock/StockItemTable.tsx:334 +msgid "In Production" msgstr "" #: src/pages/part/PartDetail.tsx:322 #~ msgid "Duplicate part" #~ msgstr "Duplicate part" -#: src/pages/part/PartDetail.tsx:323 -#: src/tables/bom/BomTable.tsx:305 -msgid "Testable Part" -msgstr "" - #: src/pages/part/PartDetail.tsx:327 #~ msgid "Delete part" #~ msgstr "Delete part" -#: src/pages/part/PartDetail.tsx:329 +#: src/pages/part/PartDetail.tsx:336 +#: src/tables/part/ParametricPartTable.tsx:228 +#: src/tables/part/PartTable.tsx:184 +msgid "Locked" +msgstr "" + +#: src/pages/part/PartDetail.tsx:342 +msgid "Template Part" +msgstr "" + +#: src/pages/part/PartDetail.tsx:347 +#: src/tables/bom/BomTable.tsx:315 +msgid "Assembled Part" +msgstr "" + +#: src/pages/part/PartDetail.tsx:352 +msgid "Component Part" +msgstr "" + +#: src/pages/part/PartDetail.tsx:357 +#: src/tables/bom/BomTable.tsx:305 +msgid "Testable Part" +msgstr "" + +#: src/pages/part/PartDetail.tsx:363 #: src/tables/bom/BomTable.tsx:310 msgid "Trackable Part" msgstr "" -#: src/pages/part/PartDetail.tsx:334 +#: src/pages/part/PartDetail.tsx:368 msgid "Purchaseable Part" msgstr "" -#: src/pages/part/PartDetail.tsx:339 +#: src/pages/part/PartDetail.tsx:374 msgid "Saleable Part" msgstr "" -#: src/pages/part/PartDetail.tsx:344 +#: src/pages/part/PartDetail.tsx:379 msgid "Virtual Part" msgstr "" -#: src/pages/part/PartDetail.tsx:352 -#: src/tables/ColumnRenderers.tsx:220 +#: src/pages/part/PartDetail.tsx:393 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:215 +#: src/pages/sales/ReturnOrderDetail.tsx:185 +#: src/pages/sales/SalesOrderDetail.tsx:197 +#: src/tables/ColumnRenderers.tsx:234 msgid "Creation Date" msgstr "" -#: src/pages/part/PartDetail.tsx:357 +#: src/pages/part/PartDetail.tsx:398 msgid "Created By" msgstr "" -#: src/pages/part/PartDetail.tsx:372 +#: src/pages/part/PartDetail.tsx:413 msgid "Default Supplier" msgstr "" -#: src/pages/part/PartDetail.tsx:383 -#: src/pages/part/pricing/BomPricingPanel.tsx:79 +#: src/pages/part/PartDetail.tsx:424 +#: src/pages/part/pricing/BomPricingPanel.tsx:113 #: src/pages/part/pricing/VariantPricingPanel.tsx:95 #: src/tables/part/PartTable.tsx:161 msgid "Price Range" msgstr "" -#: src/pages/part/PartDetail.tsx:423 -#: src/pages/stock/StockDetail.tsx:135 +#: src/pages/part/PartDetail.tsx:462 +msgid "Latest Serial Number" +msgstr "" + +#: src/pages/part/PartDetail.tsx:472 +#: src/pages/stock/StockDetail.tsx:151 msgid "Last Stocktake" msgstr "" -#: src/pages/part/PartDetail.tsx:462 +#: src/pages/part/PartDetail.tsx:511 msgid "Stocktake By" msgstr "" -#: src/pages/part/PartDetail.tsx:526 -msgid "Part Details" -msgstr "" - -#: src/pages/part/PartDetail.tsx:557 +#: src/pages/part/PartDetail.tsx:611 msgid "Variants" msgstr "" -#: src/pages/part/PartDetail.tsx:564 -#: src/pages/stock/StockDetail.tsx:307 +#: src/pages/part/PartDetail.tsx:618 +#: src/pages/stock/StockDetail.tsx:430 msgid "Allocations" msgstr "" -#: src/pages/part/PartDetail.tsx:575 -#: src/pages/stock/StockDetail.tsx:318 -#: src/tables/part/PartTable.tsx:99 -msgid "Build Order Allocations" -msgstr "" - -#: src/pages/part/PartDetail.tsx:590 -#: src/pages/stock/StockDetail.tsx:333 -#: src/tables/part/PartTable.tsx:108 -msgid "Sales Order Allocations" -msgstr "" - -#: src/pages/part/PartDetail.tsx:607 +#: src/pages/part/PartDetail.tsx:625 msgid "Bill of Materials" msgstr "" -#: src/pages/part/PartDetail.tsx:623 +#: src/pages/part/PartDetail.tsx:643 msgid "Used In" msgstr "" -#: src/pages/part/PartDetail.tsx:630 +#: src/pages/part/PartDetail.tsx:650 msgid "Part Pricing" msgstr "" -#: src/pages/part/PartDetail.tsx:636 +#: src/pages/part/PartDetail.tsx:656 #: src/pages/purchasing/PurchasingIndex.tsx:42 msgid "Manufacturers" msgstr "" -#: src/pages/part/PartDetail.tsx:676 +#: src/pages/part/PartDetail.tsx:722 msgid "Scheduling" msgstr "" -#: src/pages/part/PartDetail.tsx:688 +#: src/pages/part/PartDetail.tsx:729 msgid "Test Templates" msgstr "" -#: src/pages/part/PartDetail.tsx:715 +#: src/pages/part/PartDetail.tsx:756 msgid "Related Parts" msgstr "" -#: src/pages/part/PartDetail.tsx:849 -#: src/pages/stock/StockDetail.tsx:156 -#: src/pages/stock/StockDetail.tsx:593 -#: src/tables/build/BuildLineTable.tsx:48 +#: src/pages/part/PartDetail.tsx:881 +#: src/pages/stock/StockDetail.tsx:172 +#: src/pages/stock/StockDetail.tsx:783 +#: src/tables/build/BuildLineTable.tsx:179 #: src/tables/part/PartTable.tsx:117 -#: src/tables/stock/StockItemTable.tsx:177 -#: src/tables/stock/StockItemTable.tsx:310 +#: src/tables/stock/StockItemTable.tsx:166 +#: src/tables/stock/StockItemTable.tsx:314 msgid "Available" msgstr "" -#: src/pages/part/PartDetail.tsx:855 +#: src/pages/part/PartDetail.tsx:887 msgid "No Stock" msgstr "" -#: src/pages/part/PartDetail.tsx:861 +#: src/pages/part/PartDetail.tsx:893 +#: src/tables/part/PartTestTemplateTable.tsx:106 +#: src/tables/stock/StockItemTestResultTable.tsx:383 +msgid "Required" +msgstr "" + +#: src/pages/part/PartDetail.tsx:899 #: src/tables/bom/BomTable.tsx:325 #: src/tables/part/PartTable.tsx:86 msgid "On Order" msgstr "" -#: src/pages/part/PartDetail.tsx:867 -#: src/pages/stock/StockDetail.tsx:576 -#: src/tables/build/BuildOrderTestTable.tsx:219 -#: src/tables/stock/StockItemTable.tsx:330 -msgid "In Production" -msgstr "" - -#: src/pages/part/PartDetail.tsx:892 +#: src/pages/part/PartDetail.tsx:924 msgid "Edit Part" msgstr "" -#: src/pages/part/PartDetail.tsx:927 +#: src/pages/part/PartDetail.tsx:959 #: src/tables/part/PartTable.tsx:331 -#: src/tables/part/PartTable.tsx:342 +#: src/tables/part/PartTable.tsx:343 msgid "Add Part" msgstr "" -#: src/pages/part/PartDetail.tsx:941 +#: src/pages/part/PartDetail.tsx:973 msgid "Delete Part" msgstr "" -#: src/pages/part/PartDetail.tsx:950 +#: src/pages/part/PartDetail.tsx:982 msgid "Deleting this part cannot be reversed" msgstr "" -#: src/pages/part/PartDetail.tsx:999 -#: src/pages/stock/LocationDetail.tsx:324 -#: src/tables/stock/StockItemTable.tsx:444 +#: src/pages/part/PartDetail.tsx:1021 +#: src/pages/stock/LocationDetail.tsx:310 +#: src/tables/stock/StockItemTable.tsx:449 msgid "Stock Actions" msgstr "" -#: src/pages/part/PartDetail.tsx:1007 +#: src/pages/part/PartDetail.tsx:1029 msgid "Count part stock" msgstr "" -#: src/pages/part/PartDetail.tsx:1018 +#: src/pages/part/PartDetail.tsx:1040 msgid "Transfer part stock" msgstr "" -#: src/pages/part/PartDetail.tsx:1027 +#: src/pages/part/PartDetail.tsx:1049 msgid "Part Actions" msgstr "" -#: src/pages/part/PartDetail.tsx:1087 +#: src/pages/part/PartDetail.tsx:1113 msgid "Select Part Revision" msgstr "" @@ -4862,113 +5621,214 @@ msgstr "" #~ msgid "Categories" #~ msgstr "Categories" -#: src/pages/part/PartPricingPanel.tsx:68 +#: src/pages/part/PartPricingPanel.tsx:72 msgid "No pricing data found for this part." msgstr "" -#: src/pages/part/PartPricingPanel.tsx:82 -#: src/pages/part/pricing/PricingOverviewPanel.tsx:190 +#: src/pages/part/PartPricingPanel.tsx:87 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:293 msgid "Pricing Overview" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:88 +#: src/pages/part/PartPricingPanel.tsx:93 msgid "Purchase History" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:102 -#: src/pages/part/pricing/PricingOverviewPanel.tsx:100 +#: src/pages/part/PartPricingPanel.tsx:107 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:174 msgid "Internal Pricing" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:120 -#: src/pages/part/pricing/PricingOverviewPanel.tsx:107 +#: src/pages/part/PartPricingPanel.tsx:125 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:181 msgid "BOM Pricing" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:127 -#: src/pages/part/pricing/PricingOverviewPanel.tsx:128 +#: src/pages/part/PartPricingPanel.tsx:132 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:202 msgid "Variant Pricing" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:139 -#: src/pages/part/pricing/PricingOverviewPanel.tsx:135 +#: src/pages/part/PartPricingPanel.tsx:144 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:209 msgid "Sale Pricing" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:146 -#: src/pages/part/pricing/PricingOverviewPanel.tsx:142 +#: src/pages/part/PartPricingPanel.tsx:151 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:216 msgid "Sale History" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:58 -#: src/pages/part/pricing/BomPricingPanel.tsx:138 -#: src/tables/ColumnRenderers.tsx:262 +#: src/pages/part/PartSchedulingDetail.tsx:47 +#: src/pages/part/PartSchedulingDetail.tsx:299 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:156 +msgid "Maximum" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:50 +#: src/pages/part/PartSchedulingDetail.tsx:289 +msgid "Scheduled" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:53 +#: src/pages/part/PartSchedulingDetail.tsx:294 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:144 +msgid "Minimum" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:68 +msgid "Order" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:92 +msgid "Quantity is speculative" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:101 +msgid "No date available for provided quantity" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:105 +msgid "Date is in the past" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:112 +msgid "Scheduled Quantity" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:240 +msgid "No information available" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:241 +msgid "There is no scheduling information available for the selected part" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:276 +msgid "Expected Quantity" +msgstr "" + +#: src/pages/part/PartStocktakeDetail.tsx:63 +#: src/tables/FilterSelectDrawer.tsx:167 +#: src/tables/FilterSelectDrawer.tsx:174 +#: src/tables/build/BuildOrderTestTable.tsx:135 +#: src/tables/purchasing/ManufacturerPartParameterTable.tsx:38 +#: src/tables/stock/StockItemTestResultTable.tsx:192 +msgid "Value" +msgstr "" + +#: src/pages/part/PartStocktakeDetail.tsx:82 +msgid "Edit Stocktake Entry" +msgstr "" + +#: src/pages/part/PartStocktakeDetail.tsx:90 +msgid "Delete Stocktake Entry" +msgstr "" + +#: src/pages/part/PartStocktakeDetail.tsx:96 +#: src/tables/settings/StocktakeReportTable.tsx:69 +msgid "Generate Stocktake Report" +msgstr "" + +#: src/pages/part/PartStocktakeDetail.tsx:101 +#: src/tables/settings/StocktakeReportTable.tsx:71 +msgid "Stocktake report scheduled" +msgstr "" + +#: src/pages/part/PartStocktakeDetail.tsx:119 +#: src/pages/part/PartStocktakeDetail.tsx:235 +#: src/pages/stock/StockDetail.tsx:303 +#: src/tables/stock/StockItemTable.tsx:249 +msgid "Stock Value" +msgstr "" + +#: src/pages/part/PartStocktakeDetail.tsx:139 +#: src/tables/settings/StocktakeReportTable.tsx:77 +msgid "New Stocktake Report" +msgstr "" + +#: src/pages/part/PartStocktakeDetail.tsx:258 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:295 +msgid "Minimum Value" +msgstr "" + +#: src/pages/part/PartStocktakeDetail.tsx:264 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:296 +msgid "Maximum Value" +msgstr "" + +#: src/pages/part/pricing/BomPricingPanel.tsx:87 +#: src/pages/part/pricing/BomPricingPanel.tsx:177 +#: src/tables/ColumnRenderers.tsx:276 #: src/tables/bom/BomTable.tsx:185 #: src/tables/general/ExtraLineItemTable.tsx:64 -#: src/tables/purchasing/PurchaseOrderTable.tsx:112 -#: src/tables/sales/ReturnOrderTable.tsx:104 -#: src/tables/sales/SalesOrderLineItemTable.tsx:89 -#: src/tables/sales/SalesOrderTable.tsx:136 +#: src/tables/purchasing/PurchaseOrderTable.tsx:113 +#: src/tables/sales/ReturnOrderTable.tsx:127 +#: src/tables/sales/SalesOrderLineItemTable.tsx:97 +#: src/tables/sales/SalesOrderTable.tsx:149 msgid "Total Price" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:78 -#: src/pages/part/pricing/BomPricingPanel.tsx:102 +#: src/pages/part/pricing/BomPricingPanel.tsx:112 +#: src/pages/part/pricing/BomPricingPanel.tsx:141 #: src/tables/bom/UsedInTable.tsx:49 +#: src/tables/build/BuildLineTable.tsx:296 #: src/tables/part/PartTable.tsx:202 msgid "Component" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:81 -#: src/pages/part/pricing/VariantPricingPanel.tsx:37 -#: src/pages/part/pricing/VariantPricingPanel.tsx:97 -msgid "Minimum Price" -msgstr "" - -#: src/pages/part/pricing/BomPricingPanel.tsx:82 -#: src/pages/part/pricing/VariantPricingPanel.tsx:45 -#: src/pages/part/pricing/VariantPricingPanel.tsx:98 -msgid "Maximum Price" -msgstr "" - #: src/pages/part/pricing/BomPricingPanel.tsx:112 #~ msgid "Minimum Total Price" #~ msgstr "Minimum Total Price" +#: src/pages/part/pricing/BomPricingPanel.tsx:115 +#: src/pages/part/pricing/VariantPricingPanel.tsx:37 +#: src/pages/part/pricing/VariantPricingPanel.tsx:97 +msgid "Minimum Price" +msgstr "" + +#: src/pages/part/pricing/BomPricingPanel.tsx:116 +#: src/pages/part/pricing/VariantPricingPanel.tsx:45 +#: src/pages/part/pricing/VariantPricingPanel.tsx:98 +msgid "Maximum Price" +msgstr "" + #: src/pages/part/pricing/BomPricingPanel.tsx:117 #~ msgid "Maximum Total Price" #~ msgstr "Maximum Total Price" -#: src/pages/part/pricing/BomPricingPanel.tsx:129 -#: src/pages/part/pricing/PriceBreakPanel.tsx:172 -#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:67 -#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:128 -#: src/pages/part/pricing/SupplierPricingPanel.tsx:62 +#: src/pages/part/pricing/BomPricingPanel.tsx:168 +#: src/pages/part/pricing/PriceBreakPanel.tsx:173 +#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:70 +#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:125 +#: src/pages/part/pricing/SupplierPricingPanel.tsx:66 +#: src/pages/stock/StockDetail.tsx:291 #: src/tables/bom/BomTable.tsx:176 #: src/tables/general/ExtraLineItemTable.tsx:56 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:223 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:225 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:92 +#: src/tables/stock/StockItemTable.tsx:239 msgid "Unit Price" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:154 +#: src/pages/part/pricing/BomPricingPanel.tsx:193 #: src/pages/part/pricing/VariantPricingPanel.tsx:53 -#: src/tables/purchasing/SupplierPartTable.tsx:148 +#: src/tables/purchasing/SupplierPartTable.tsx:150 msgid "Updated" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:219 +#: src/pages/part/pricing/BomPricingPanel.tsx:258 msgid "Pie Chart" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:220 +#: src/pages/part/pricing/BomPricingPanel.tsx:259 msgid "Bar Chart" msgstr "" #: src/pages/part/pricing/PriceBreakPanel.tsx:58 -#: src/pages/part/pricing/PriceBreakPanel.tsx:110 +#: src/pages/part/pricing/PriceBreakPanel.tsx:111 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:142 -#: src/tables/purchasing/SupplierPriceBreakTable.tsx:168 +#: src/tables/purchasing/SupplierPriceBreakTable.tsx:169 msgid "Add Price Break" msgstr "" @@ -4986,46 +5846,70 @@ msgstr "" msgid "Price Break" msgstr "" -#: src/pages/part/pricing/PriceBreakPanel.tsx:170 +#: src/pages/part/pricing/PriceBreakPanel.tsx:171 msgid "Price" msgstr "" -#: src/pages/part/pricing/PricingOverviewPanel.tsx:51 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:68 +msgid "Refreshing pricing data" +msgstr "" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:88 +msgid "Pricing data updated" +msgstr "" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:95 +msgid "Failed to update pricing data" +msgstr "" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:104 +msgid "Edit Pricing" +msgstr "" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:125 msgid "Pricing Category" msgstr "" -#: src/pages/part/pricing/PricingOverviewPanel.tsx:70 -msgid "Minimum" -msgstr "" - -#: src/pages/part/pricing/PricingOverviewPanel.tsx:82 -msgid "Maximum" -msgstr "" - -#: src/pages/part/pricing/PricingOverviewPanel.tsx:114 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:188 msgid "Purchase Pricing" msgstr "" -#: src/pages/part/pricing/PricingOverviewPanel.tsx:149 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:223 msgid "Override Pricing" msgstr "" -#: src/pages/part/pricing/PricingOverviewPanel.tsx:156 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:230 msgid "Overall Pricing" msgstr "" -#: src/pages/part/pricing/PricingOverviewPanel.tsx:175 -#: src/pages/stock/StockDetail.tsx:129 -#: src/tables/stock/StockItemTable.tsx:240 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:249 +#: src/pages/stock/StockDetail.tsx:145 +#: src/tables/stock/StockItemTable.tsx:275 msgid "Last Updated" msgstr "" -#: src/pages/part/pricing/PricingOverviewPanel.tsx:192 -msgid "Minimum Value" +#: src/pages/part/pricing/PricingOverviewPanel.tsx:253 +msgid "Pricing Not Set" msgstr "" -#: src/pages/part/pricing/PricingOverviewPanel.tsx:193 -msgid "Maximum Value" +#: src/pages/part/pricing/PricingOverviewPanel.tsx:254 +msgid "Pricing data has not been calculated for this part" +msgstr "" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:258 +msgid "Pricing Actions" +msgstr "" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:261 +msgid "Refresh" +msgstr "" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:262 +msgid "Refresh pricing data" +msgstr "" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:277 +msgid "Edit pricing data" msgstr "" #: src/pages/part/pricing/PricingPanel.tsx:24 @@ -5044,28 +5928,20 @@ msgstr "" msgid "Loading pricing data" msgstr "" -#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:40 -#: src/pages/part/pricing/SaleHistoryPanel.tsx:36 -#: src/tables/ColumnRenderers.tsx:201 -#: src/tables/build/BuildOrderTestTable.tsx:150 -#: src/tables/plugin/PluginListTable.tsx:139 -msgid "Date" -msgstr "" - #: src/pages/part/pricing/PurchaseHistoryPanel.tsx:47 msgid "Purchase Price" msgstr "" -#: src/pages/part/pricing/SaleHistoryPanel.tsx:22 -msgid "Sale Order" -msgstr "" +#: src/pages/part/pricing/SaleHistoryPanel.tsx:24 +#~ msgid "Sale Order" +#~ msgstr "Sale Order" -#: src/pages/part/pricing/SaleHistoryPanel.tsx:42 -#: src/pages/part/pricing/SaleHistoryPanel.tsx:92 +#: src/pages/part/pricing/SaleHistoryPanel.tsx:44 +#: src/pages/part/pricing/SaleHistoryPanel.tsx:87 msgid "Sale Price" msgstr "" -#: src/pages/part/pricing/SupplierPricingPanel.tsx:65 +#: src/pages/part/pricing/SupplierPricingPanel.tsx:69 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:83 msgid "Supplier Price" msgstr "" @@ -5075,23 +5951,23 @@ msgstr "" msgid "Variant Part" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:93 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:87 msgid "Edit Purchase Order" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:102 -#: src/tables/purchasing/PurchaseOrderTable.tsx:128 -#: src/tables/purchasing/PurchaseOrderTable.tsx:140 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:96 +#: src/tables/purchasing/PurchaseOrderTable.tsx:129 +#: src/tables/purchasing/PurchaseOrderTable.tsx:142 msgid "Add Purchase Order" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:127 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:121 msgid "Supplier Reference" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:158 -#: src/pages/sales/ReturnOrderDetail.tsx:137 -#: src/pages/sales/SalesOrderDetail.tsx:137 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:152 +#: src/pages/sales/ReturnOrderDetail.tsx:129 +#: src/pages/sales/SalesOrderDetail.tsx:132 msgid "Completed Line Items" msgstr "" @@ -5101,91 +5977,112 @@ msgstr "" #~ msgid "Order Currency," #~ msgstr "Order Currency," -#: src/pages/purchasing/PurchaseOrderDetail.tsx:165 -#: src/pages/sales/ReturnOrderDetail.tsx:144 -#: src/pages/sales/SalesOrderDetail.tsx:153 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:161 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:231 +msgid "Destination" +msgstr "" + +#: src/pages/purchasing/PurchaseOrderDetail.tsx:167 +#: src/pages/sales/ReturnOrderDetail.tsx:136 +#: src/pages/sales/SalesOrderDetail.tsx:148 msgid "Order Currency" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:172 -#: src/pages/sales/ReturnOrderDetail.tsx:151 -#: src/pages/sales/SalesOrderDetail.tsx:160 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:173 +#: src/pages/sales/ReturnOrderDetail.tsx:143 +#: src/pages/sales/SalesOrderDetail.tsx:155 msgid "Total Cost" msgstr "" #: src/pages/purchasing/PurchaseOrderDetail.tsx:207 -#: src/pages/sales/ReturnOrderDetail.tsx:186 -#: src/pages/sales/SalesOrderDetail.tsx:195 -msgid "Created On" +#: src/pages/sales/ReturnOrderDetail.tsx:183 +#: src/pages/sales/SalesOrderDetail.tsx:191 +#~ msgid "Created On" +#~ msgstr "Created On" + +#: src/pages/purchasing/PurchaseOrderDetail.tsx:221 +#: src/pages/sales/ReturnOrderDetail.tsx:193 +#: src/pages/sales/SalesOrderDetail.tsx:204 +msgid "Issue Date" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:252 -#: src/pages/sales/ReturnOrderDetail.tsx:231 -#: src/pages/sales/SalesOrderDetail.tsx:266 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:237 +#: src/pages/sales/ReturnOrderDetail.tsx:209 +#: src/pages/sales/SalesOrderDetail.tsx:219 +#: src/tables/build/BuildOrderTable.tsx:98 +#: src/tables/part/PartPurchaseOrdersTable.tsx:105 +#: src/tables/sales/ReturnOrderTable.tsx:122 +msgid "Completion Date" +msgstr "" + +#: src/pages/purchasing/PurchaseOrderDetail.tsx:276 +#: src/pages/sales/ReturnOrderDetail.tsx:248 +#: src/pages/sales/SalesOrderDetail.tsx:288 msgid "Order Details" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:280 -#: src/pages/sales/ReturnOrderDetail.tsx:258 -#: src/pages/sales/SalesOrderDetail.tsx:297 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:304 +#: src/pages/sales/ReturnOrderDetail.tsx:276 +#: src/pages/sales/SalesOrderDetail.tsx:319 msgid "Extra Line Items" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:337 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:346 msgid "Issue Purchase Order" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:345 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:354 msgid "Cancel Purchase Order" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:353 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:362 msgid "Hold Purchase Order" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:361 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:370 msgid "Complete Purchase Order" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:427 -#: src/pages/sales/ReturnOrderDetail.tsx:428 -#: src/pages/sales/SalesOrderDetail.tsx:468 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:425 +#: src/pages/sales/ReturnOrderDetail.tsx:424 +#: src/pages/sales/SalesOrderDetail.tsx:464 msgid "Order Actions" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:101 -#: src/pages/sales/SalesOrderDetail.tsx:107 -#: src/tables/sales/SalesOrderTable.tsx:124 +#: src/pages/sales/ReturnOrderDetail.tsx:92 +#: src/pages/sales/SalesOrderDetail.tsx:101 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:109 +#: src/tables/sales/SalesOrderTable.tsx:137 msgid "Customer Reference" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:315 +#: src/pages/sales/ReturnOrderDetail.tsx:322 msgid "Edit Return Order" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:324 -#: src/tables/sales/ReturnOrderTable.tsx:119 -#: src/tables/sales/ReturnOrderTable.tsx:128 +#: src/pages/sales/ReturnOrderDetail.tsx:331 +#: src/tables/sales/ReturnOrderTable.tsx:142 +#: src/tables/sales/ReturnOrderTable.tsx:152 msgid "Add Return Order" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:336 +#: src/pages/sales/ReturnOrderDetail.tsx:343 msgid "Issue Return Order" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:344 +#: src/pages/sales/ReturnOrderDetail.tsx:349 +#~ msgid "Order canceled" +#~ msgstr "Order canceled" + +#: src/pages/sales/ReturnOrderDetail.tsx:351 msgid "Cancel Return Order" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:347 -msgid "Order canceled" -msgstr "" - -#: src/pages/sales/ReturnOrderDetail.tsx:352 +#: src/pages/sales/ReturnOrderDetail.tsx:359 msgid "Hold Return Order" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:360 +#: src/pages/sales/ReturnOrderDetail.tsx:367 msgid "Complete Return Order" msgstr "" @@ -5193,117 +6090,193 @@ msgstr "" msgid "Customers" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:145 +#: src/pages/sales/SalesOrderDetail.tsx:140 msgid "Completed Shipments" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:243 -msgid "Edit Sales Order" -msgstr "" - -#: src/pages/sales/SalesOrderDetail.tsx:252 -#: src/tables/sales/SalesOrderTable.tsx:84 -#: src/tables/sales/SalesOrderTable.tsx:96 -msgid "Add Sales Order" -msgstr "" - #: src/pages/sales/SalesOrderDetail.tsx:256 #~ msgid "Pending Shipments" #~ msgstr "Pending Shipments" -#: src/pages/sales/SalesOrderDetail.tsx:313 +#: src/pages/sales/SalesOrderDetail.tsx:261 +msgid "Edit Sales Order" +msgstr "" + +#: src/pages/sales/SalesOrderDetail.tsx:274 +#: src/tables/sales/SalesOrderTable.tsx:96 +#: src/tables/sales/SalesOrderTable.tsx:109 +msgid "Add Sales Order" +msgstr "" + +#: src/pages/sales/SalesOrderDetail.tsx:335 msgid "Shipments" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:369 +#: src/pages/sales/SalesOrderDetail.tsx:376 msgid "Issue Sales Order" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:377 +#: src/pages/sales/SalesOrderDetail.tsx:384 msgid "Cancel Sales Order" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:385 +#: src/pages/sales/SalesOrderDetail.tsx:392 msgid "Hold Sales Order" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:393 +#: src/pages/sales/SalesOrderDetail.tsx:400 msgid "Complete Sales Order" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:432 +#: src/pages/sales/SalesOrderDetail.tsx:439 msgid "Ship Order" msgstr "" -#: src/pages/stock/LocationDetail.tsx:117 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:117 +#: src/tables/sales/SalesOrderShipmentTable.tsx:96 +msgid "Shipment Reference" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:124 +msgid "Allocated Items" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:133 +msgid "Tracking Number" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:141 +msgid "Invoice Number" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:149 +#: src/tables/ColumnRenderers.tsx:242 +#: src/tables/sales/SalesOrderAllocationTable.tsx:142 +#: src/tables/sales/SalesOrderShipmentTable.tsx:115 +msgid "Shipment Date" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:157 +#: src/tables/sales/SalesOrderShipmentTable.tsx:119 +msgid "Delivery Date" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:204 +msgid "Shipment Details" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:210 +msgid "Assigned Items" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:241 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:317 +#: src/tables/sales/SalesOrderShipmentTable.tsx:75 +msgid "Edit Shipment" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:248 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:322 +#: src/tables/sales/SalesOrderShipmentTable.tsx:67 +msgid "Cancel Shipment" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:261 +#: src/tables/sales/SalesOrderShipmentTable.tsx:83 +#: src/tables/sales/SalesOrderShipmentTable.tsx:151 +msgid "Complete Shipment" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:276 +#: src/tables/part/PartPurchaseOrdersTable.tsx:121 +msgid "Pending" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:277 +#: src/tables/sales/SalesOrderAllocationTable.tsx:148 +#: src/tables/sales/SalesOrderShipmentTable.tsx:108 +#: src/tables/sales/SalesOrderShipmentTable.tsx:197 +msgid "Shipped" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:279 +#: src/tables/sales/SalesOrderShipmentTable.tsx:202 +msgid "Delivered" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:293 +msgid "Send Shipment" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:312 +msgid "Shipment Actions" +msgstr "" + +#: src/pages/stock/LocationDetail.tsx:111 msgid "Parent Location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:135 +#: src/pages/stock/LocationDetail.tsx:129 msgid "Sublocations" msgstr "" -#: src/pages/stock/LocationDetail.tsx:147 +#: src/pages/stock/LocationDetail.tsx:141 #: src/tables/stock/StockLocationTable.tsx:54 msgid "External" msgstr "" -#: src/pages/stock/LocationDetail.tsx:153 +#: src/pages/stock/LocationDetail.tsx:147 #: src/tables/stock/StockLocationTable.tsx:63 msgid "Location Type" msgstr "" -#: src/pages/stock/LocationDetail.tsx:164 +#: src/pages/stock/LocationDetail.tsx:158 msgid "Top level stock location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:175 +#: src/pages/stock/LocationDetail.tsx:169 msgid "Location Details" msgstr "" -#: src/pages/stock/LocationDetail.tsx:201 +#: src/pages/stock/LocationDetail.tsx:195 msgid "Default Parts" msgstr "" -#: src/pages/stock/LocationDetail.tsx:220 -#: src/pages/stock/LocationDetail.tsx:351 +#: src/pages/stock/LocationDetail.tsx:214 +#: src/pages/stock/LocationDetail.tsx:336 #: src/tables/stock/StockLocationTable.tsx:123 msgid "Edit Stock Location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:241 -#: src/pages/stock/LocationDetail.tsx:356 +#: src/pages/stock/LocationDetail.tsx:235 +#: src/pages/stock/LocationDetail.tsx:341 msgid "Delete Stock Location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:244 +#: src/pages/stock/LocationDetail.tsx:238 msgid "Items Action" msgstr "" -#: src/pages/stock/LocationDetail.tsx:245 +#: src/pages/stock/LocationDetail.tsx:239 msgid "Action for stock items in this location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:250 +#: src/pages/stock/LocationDetail.tsx:244 msgid "Child Locations Action" msgstr "" -#: src/pages/stock/LocationDetail.tsx:251 +#: src/pages/stock/LocationDetail.tsx:245 msgid "Action for child locations in this location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:346 +#: src/pages/stock/LocationDetail.tsx:332 msgid "Location Actions" msgstr "" -#: src/pages/stock/StockDetail.tsx:108 +#: src/pages/stock/StockDetail.tsx:116 msgid "Base Part" msgstr "" -#: src/pages/stock/StockDetail.tsx:115 -msgid "Stock Status" -msgstr "" - #: src/pages/stock/StockDetail.tsx:155 #~ msgid "Link custom barcode to stock item" #~ msgstr "Link custom barcode to stock item" @@ -5312,113 +6285,179 @@ msgstr "" #~ msgid "Unlink custom barcode from stock item" #~ msgstr "Unlink custom barcode from stock item" -#: src/pages/stock/StockDetail.tsx:188 -msgid "Installed In" -msgstr "" - -#: src/pages/stock/StockDetail.tsx:204 -msgid "Consumed By" +#: src/pages/stock/StockDetail.tsx:178 +msgid "Allocated to Orders" msgstr "" #: src/pages/stock/StockDetail.tsx:205 #~ msgid "Edit stock item" #~ msgstr "Edit stock item" -#: src/pages/stock/StockDetail.tsx:213 -#: src/tables/build/BuildAllocatedStockTable.tsx:64 -#: src/tables/stock/StockTrackingTable.tsx:96 -msgid "Build Order" +#: src/pages/stock/StockDetail.tsx:209 +msgid "Installed In" msgstr "" #: src/pages/stock/StockDetail.tsx:217 #~ msgid "Delete stock item" #~ msgstr "Delete stock item" -#: src/pages/stock/StockDetail.tsx:291 +#: src/pages/stock/StockDetail.tsx:226 +msgid "Parent Item" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:230 +msgid "Parent stock item" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:236 +msgid "Consumed By" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:245 +#: src/tables/build/BuildAllocatedStockTable.tsx:77 +#: src/tables/stock/StockTrackingTable.tsx:100 +msgid "Build Order" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:283 +#: src/tables/stock/StockItemTable.tsx:270 +msgid "Expiry Date" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:414 msgid "Stock Details" msgstr "" -#: src/pages/stock/StockDetail.tsx:297 +#: src/pages/stock/StockDetail.tsx:420 msgid "Stock Tracking" msgstr "" -#: src/pages/stock/StockDetail.tsx:350 -msgid "Test Data" -msgstr "" - -#: src/pages/stock/StockDetail.tsx:364 -msgid "Installed Items" -msgstr "" - -#: src/pages/stock/StockDetail.tsx:371 -msgid "Child Items" -msgstr "" - -#: src/pages/stock/StockDetail.tsx:425 -msgid "Edit Stock Item" -msgstr "" - #: src/pages/stock/StockDetail.tsx:433 #~ msgid "Duplicate stock item" #~ msgstr "Duplicate stock item" -#: src/pages/stock/StockDetail.tsx:452 +#: src/pages/stock/StockDetail.tsx:475 +msgid "Test Data" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:489 +msgid "Installed Items" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:496 +msgid "Child Items" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:545 +msgid "Edit Stock Item" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:572 msgid "Delete Stock Item" msgstr "" -#: src/pages/stock/StockDetail.tsx:504 +#: src/pages/stock/StockDetail.tsx:604 +msgid "Serialize Stock Item" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:617 +msgid "Stock item serialized" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:623 +msgid "Return Stock Item" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:626 +msgid "Return this item into stock. This will remove the customer assignment." +msgstr "" + +#: src/pages/stock/StockDetail.tsx:636 +msgid "Item returned to stock" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:666 msgid "Stock Operations" msgstr "" -#: src/pages/stock/StockDetail.tsx:509 +#: src/pages/stock/StockDetail.tsx:671 msgid "Count stock" msgstr "" -#: src/pages/stock/StockDetail.tsx:519 -#: src/tables/stock/StockItemTable.tsx:449 -msgid "Add stock" +#: src/pages/stock/StockDetail.tsx:671 +#: src/tables/stock/StockItemTable.tsx:452 +#~ msgid "Add stock" +#~ msgstr "Add stock" + +#: src/pages/stock/StockDetail.tsx:680 +#: src/tables/stock/StockItemTable.tsx:461 +#~ msgid "Remove stock" +#~ msgstr "Remove stock" + +#: src/pages/stock/StockDetail.tsx:698 +#: src/tables/stock/StockItemTable.tsx:481 +#~ msgid "Transfer stock" +#~ msgstr "Transfer stock" + +#: src/pages/stock/StockDetail.tsx:699 +msgid "Serialize" msgstr "" -#: src/pages/stock/StockDetail.tsx:527 -#: src/tables/stock/StockItemTable.tsx:458 -msgid "Remove stock" +#: src/pages/stock/StockDetail.tsx:700 +msgid "Serialize stock" msgstr "" -#: src/pages/stock/StockDetail.tsx:534 +#: src/pages/stock/StockDetail.tsx:711 msgid "Transfer" msgstr "" -#: src/pages/stock/StockDetail.tsx:535 -#: src/tables/stock/StockItemTable.tsx:478 -msgid "Transfer stock" +#: src/pages/stock/StockDetail.tsx:722 +msgid "Return" msgstr "" -#: src/pages/stock/StockDetail.tsx:546 +#: src/pages/stock/StockDetail.tsx:723 +msgid "Return from customer" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:738 msgid "Stock Item Actions" msgstr "" -#: src/tables/ColumnRenderers.tsx:30 +#: src/pages/stock/StockDetail.tsx:808 +msgid "Stale" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:814 +msgid "Expired" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:820 +msgid "Unavailable" +msgstr "" + +#: src/tables/ColumnRenderers.tsx:36 msgid "Part is not active" msgstr "" -#: src/tables/ColumnRenderers.tsx:35 -msgid "Part is locked" +#: src/tables/ColumnRenderers.tsx:41 +#: src/tables/bom/BomTable.tsx:542 +#: src/tables/part/PartParameterTable.tsx:193 +#: src/tables/part/PartTestTemplateTable.tsx:253 +msgid "Part is Locked" msgstr "" -#: src/tables/ColumnRenderers.tsx:57 +#: src/tables/ColumnRenderers.tsx:41 +#~ msgid "Part is locked" +#~ msgstr "Part is locked" + +#: src/tables/ColumnRenderers.tsx:46 +msgid "You are subscribed to notifications for this part" +msgstr "" + +#: src/tables/ColumnRenderers.tsx:68 msgid "No location set" msgstr "" -#: src/tables/ColumnRenderers.tsx:228 -#: src/tables/sales/SalesOrderShipmentTable.tsx:79 -msgid "Shipment Date" -msgstr "" - -#: src/tables/ColumnRenderers.tsx:248 -#: src/tables/settings/CurrencyTable.tsx:23 -msgid "Currency" -msgstr "" - #: src/tables/ColumnSelect.tsx:16 #: src/tables/ColumnSelect.tsx:23 msgid "Select Columns" @@ -5452,91 +6491,116 @@ msgstr "" msgid "Download Data" msgstr "" -#: src/tables/Filter.tsx:89 -#: src/tables/build/BuildOrderTable.tsx:135 +#: src/tables/Filter.tsx:101 msgid "Assigned to me" msgstr "" -#: src/tables/Filter.tsx:90 -#: src/tables/build/BuildOrderTable.tsx:136 +#: src/tables/Filter.tsx:102 msgid "Show orders assigned to me" msgstr "" -#: src/tables/Filter.tsx:97 +#: src/tables/Filter.tsx:106 +#~ msgid "Show overdue orders" +#~ msgstr "Show overdue orders" + +#: src/tables/Filter.tsx:109 +#: src/tables/build/BuildOrderTable.tsx:120 +#: src/tables/sales/SalesOrderAllocationTable.tsx:59 msgid "Outstanding" msgstr "" -#: src/tables/Filter.tsx:98 -msgid "Show outstanding orders" +#: src/tables/Filter.tsx:110 +msgid "Show outstanding items" msgstr "" -#: src/tables/Filter.tsx:105 -#: src/tables/build/BuildOrderTable.tsx:128 +#: src/tables/Filter.tsx:117 msgid "Overdue" msgstr "" -#: src/tables/Filter.tsx:106 -msgid "Show overdue orders" +#: src/tables/Filter.tsx:118 +msgid "Show overdue items" msgstr "" -#: src/tables/FilterSelectDrawer.tsx:51 +#: src/tables/Filter.tsx:125 +msgid "Minimum Date" +msgstr "" + +#: src/tables/Filter.tsx:126 +msgid "Show items after this date" +msgstr "" + +#: src/tables/Filter.tsx:134 +msgid "Maximum Date" +msgstr "" + +#: src/tables/Filter.tsx:135 +msgid "Show items before this date" +msgstr "" + +#: src/tables/Filter.tsx:144 +msgid "Has Project Code" +msgstr "" + +#: src/tables/Filter.tsx:145 +msgid "Show orders with an assigned project code" +msgstr "" + +#: src/tables/FilterSelectDrawer.tsx:55 msgid "Remove filter" msgstr "" -#: src/tables/FilterSelectDrawer.tsx:130 +#: src/tables/FilterSelectDrawer.tsx:159 msgid "Select filter" msgstr "" -#: src/tables/FilterSelectDrawer.tsx:131 +#: src/tables/FilterSelectDrawer.tsx:160 msgid "Filter" msgstr "" -#: src/tables/FilterSelectDrawer.tsx:138 -#: src/tables/build/BuildOrderTestTable.tsx:134 -#: src/tables/purchasing/ManufacturerPartParameterTable.tsx:38 -#: src/tables/stock/StockItemTestResultTable.tsx:186 -msgid "Value" +#: src/tables/FilterSelectDrawer.tsx:168 +msgid "Select date value" msgstr "" -#: src/tables/FilterSelectDrawer.tsx:140 +#: src/tables/FilterSelectDrawer.tsx:176 msgid "Select filter value" msgstr "" -#: src/tables/FilterSelectDrawer.tsx:183 +#: src/tables/FilterSelectDrawer.tsx:219 +#: src/tables/InvenTreeTableHeader.tsx:214 msgid "Table Filters" msgstr "" -#: src/tables/FilterSelectDrawer.tsx:215 +#: src/tables/FilterSelectDrawer.tsx:251 msgid "Add Filter" msgstr "" -#: src/tables/FilterSelectDrawer.tsx:224 +#: src/tables/FilterSelectDrawer.tsx:260 msgid "Clear Filters" msgstr "" -#: src/tables/InvenTreeTable.tsx:123 -#: src/tables/InvenTreeTable.tsx:431 -#: src/tables/InvenTreeTable.tsx:455 +#: src/tables/InvenTreeTable.tsx:96 +#: src/tables/InvenTreeTable.tsx:417 +#: src/tables/InvenTreeTable.tsx:441 msgid "No records found" msgstr "" -#: src/tables/InvenTreeTable.tsx:466 +#: src/tables/InvenTreeTable.tsx:452 msgid "Server returned incorrect data type" msgstr "" -#: src/tables/InvenTreeTable.tsx:474 +#: src/tables/InvenTreeTable.tsx:460 msgid "Bad request" msgstr "" -#: src/tables/InvenTreeTable.tsx:477 +#: src/tables/InvenTreeTable.tsx:463 msgid "Unauthorized" msgstr "" -#: src/tables/InvenTreeTable.tsx:480 +#: src/tables/InvenTreeTable.tsx:466 msgid "Forbidden" msgstr "" -#: src/tables/InvenTreeTable.tsx:483 +#: src/tables/InvenTreeTable.tsx:469 msgid "Not found" msgstr "" @@ -5544,18 +6608,6 @@ msgstr "" #~ msgid "Are you sure you want to delete the selected records?" #~ msgstr "Are you sure you want to delete the selected records?" -#: src/tables/InvenTreeTable.tsx:525 -msgid "Delete Selected Items" -msgstr "" - -#: src/tables/InvenTreeTable.tsx:529 -msgid "Are you sure you want to delete the selected items?" -msgstr "" - -#: src/tables/InvenTreeTable.tsx:531 -msgid "This action cannot be undone!" -msgstr "" - #: src/tables/InvenTreeTable.tsx:535 #~ msgid "Deleted records" #~ msgstr "Deleted records" @@ -5568,31 +6620,56 @@ msgstr "" #~ msgid "Failed to delete records" #~ msgstr "Failed to delete records" +#: src/tables/InvenTreeTable.tsx:552 +#~ msgid "This action cannot be undone!" +#~ msgstr "This action cannot be undone!" + #: src/tables/InvenTreeTable.tsx:594 #: src/tables/InvenTreeTable.tsx:595 #~ msgid "Print actions" #~ msgstr "Print actions" -#: src/tables/InvenTreeTable.tsx:618 -#: src/tables/InvenTreeTable.tsx:619 -msgid "Barcode actions" +#: src/tables/InvenTreeTable.tsx:655 +#: src/tables/InvenTreeTable.tsx:656 +#~ msgid "Barcode actions" +#~ msgstr "Barcode actions" + +#: src/tables/InvenTreeTable.tsx:712 +#~ msgid "Table filters" +#~ msgstr "Table filters" + +#: src/tables/InvenTreeTable.tsx:725 +#~ msgid "Clear custom query filters" +#~ msgstr "Clear custom query filters" + +#: src/tables/InvenTreeTableHeader.tsx:98 +msgid "Delete Selected Items" msgstr "" -#: src/tables/InvenTreeTable.tsx:628 +#: src/tables/InvenTreeTableHeader.tsx:102 +msgid "Are you sure you want to delete the selected items?" +msgstr "" + +#: src/tables/InvenTreeTableHeader.tsx:104 +#: src/tables/plugin/PluginListTable.tsx:305 +msgid "This action cannot be undone" +msgstr "" + +#: src/tables/InvenTreeTableHeader.tsx:142 +msgid "Custom table filters are active" +msgstr "" + +#: src/tables/InvenTreeTableHeader.tsx:169 msgid "Delete selected records" msgstr "" -#: src/tables/InvenTreeTable.tsx:649 +#: src/tables/InvenTreeTableHeader.tsx:188 msgid "Refresh data" msgstr "" -#: src/tables/InvenTreeTable.tsx:675 -msgid "Table filters" -msgstr "" - #: src/tables/TableHoverCard.tsx:35 -msgid "item-{idx}" -msgstr "" +#~ msgid "item-{idx}" +#~ msgstr "item-{idx}" #: src/tables/UploadAction.tsx:7 #~ msgid "Upload Data" @@ -5607,31 +6684,36 @@ msgid "Part Information" msgstr "" #: src/tables/bom/BomTable.tsx:212 -#: src/tables/build/BuildLineTable.tsx:126 +#: src/tables/build/BuildLineTable.tsx:257 #: src/tables/part/PartTable.tsx:125 msgid "External stock" msgstr "" #: src/tables/bom/BomTable.tsx:220 -#: src/tables/build/BuildLineTable.tsx:89 +#: src/tables/build/BuildLineTable.tsx:220 msgid "Includes substitute stock" msgstr "" #: src/tables/bom/BomTable.tsx:229 -#: src/tables/build/BuildLineTable.tsx:99 -#: src/tables/sales/SalesOrderLineItemTable.tsx:127 +#: src/tables/build/BuildLineTable.tsx:230 +#: src/tables/sales/SalesOrderLineItemTable.tsx:135 msgid "Includes variant stock" msgstr "" +#: src/tables/bom/BomTable.tsx:245 +#: src/tables/part/PartTable.tsx:92 +msgid "Building" +msgstr "" + #: src/tables/bom/BomTable.tsx:254 #: src/tables/part/PartTable.tsx:153 -#: src/tables/sales/SalesOrderLineItemTable.tsx:150 -#: src/tables/stock/StockItemTable.tsx:216 +#: src/tables/sales/SalesOrderLineItemTable.tsx:158 +#: src/tables/stock/StockItemTable.tsx:206 msgid "Stock Information" msgstr "" #: src/tables/bom/BomTable.tsx:285 -#: src/tables/build/BuildLineTable.tsx:248 +#: src/tables/build/BuildLineTable.tsx:409 msgid "Consumable item" msgstr "" @@ -5644,7 +6726,7 @@ msgstr "" #~ msgstr "Create BOM Item" #: src/tables/bom/BomTable.tsx:306 -#: src/tables/build/BuildLineTable.tsx:69 +#: src/tables/build/BuildLineTable.tsx:200 msgid "Show testable items" msgstr "" @@ -5657,11 +6739,12 @@ msgid "Show trackable items" msgstr "" #: src/tables/bom/BomTable.tsx:316 -#: src/tables/build/BuildLineTable.tsx:64 +#: src/tables/build/BuildLineTable.tsx:195 msgid "Show assembled items" msgstr "" #: src/tables/bom/BomTable.tsx:321 +#: src/tables/build/BuildLineTable.tsx:180 msgid "Show items with available stock" msgstr "" @@ -5705,7 +6788,7 @@ msgstr "" #: src/tables/bom/BomTable.tsx:345 #: src/tables/bom/UsedInTable.tsx:79 -#: src/tables/build/BuildLineTable.tsx:58 +#: src/tables/build/BuildLineTable.tsx:189 msgid "Optional" msgstr "" @@ -5723,7 +6806,7 @@ msgstr "" #~ msgstr "Bom item deleted" #: src/tables/bom/BomTable.tsx:350 -#: src/tables/build/BuildLineTable.tsx:53 +#: src/tables/build/BuildLineTable.tsx:184 msgid "Consumable" msgstr "" @@ -5749,12 +6832,12 @@ msgid "Show items with pricing" msgstr "" #: src/tables/bom/BomTable.tsx:378 -#: src/tables/bom/BomTable.tsx:511 +#: src/tables/bom/BomTable.tsx:512 msgid "Import BOM Data" msgstr "" #: src/tables/bom/BomTable.tsx:388 -#: src/tables/bom/BomTable.tsx:523 +#: src/tables/bom/BomTable.tsx:526 msgid "Add BOM Item" msgstr "" @@ -5780,7 +6863,7 @@ msgstr "" #: src/tables/bom/BomTable.tsx:423 #: src/tables/bom/BomTable.tsx:426 -#: src/tables/bom/BomTable.tsx:517 +#: src/tables/bom/BomTable.tsx:519 msgid "Validate BOM" msgstr "" @@ -5812,21 +6895,15 @@ msgstr "" msgid "Edit Substitutes" msgstr "" -#: src/tables/bom/BomTable.tsx:539 -#: src/tables/part/PartParameterTable.tsx:193 -#: src/tables/part/PartTestTemplateTable.tsx:252 -msgid "Part is Locked" -msgstr "" - -#: src/tables/bom/BomTable.tsx:544 +#: src/tables/bom/BomTable.tsx:547 msgid "Bill of materials cannot be edited, as the part is locked" msgstr "" #: src/tables/bom/UsedInTable.tsx:33 -#: src/tables/build/BuildLineTable.tsx:63 +#: src/tables/build/BuildLineTable.tsx:194 #: src/tables/part/ParametricPartTable.tsx:233 #: src/tables/part/PartTable.tsx:190 -#: src/tables/stock/StockItemTable.tsx:300 +#: src/tables/stock/StockItemTable.tsx:304 msgid "Assembly" msgstr "" @@ -5844,285 +6921,347 @@ msgstr "" msgid "Show trackable assemblies" msgstr "" -#: src/tables/build/BuildAllocatedStockTable.tsx:54 +#: src/tables/build/BuildAllocatedStockTable.tsx:56 msgid "Allocated to Output" msgstr "" -#: src/tables/build/BuildAllocatedStockTable.tsx:55 +#: src/tables/build/BuildAllocatedStockTable.tsx:57 msgid "Show items allocated to a build output" msgstr "" -#: src/tables/build/BuildAllocatedStockTable.tsx:76 -#: src/tables/part/PartPurchaseOrdersTable.tsx:125 -#: src/tables/sales/SalesOrderAllocationTable.tsx:62 +#: src/tables/build/BuildAllocatedStockTable.tsx:65 +#: src/tables/build/BuildOrderTable.tsx:159 +#: src/tables/part/PartParameterTable.tsx:212 +#: src/tables/part/PartPurchaseOrdersTable.tsx:138 +#: src/tables/sales/ReturnOrderTable.tsx:84 +#: src/tables/sales/SalesOrderAllocationTable.tsx:68 +#: src/tables/sales/SalesOrderTable.tsx:84 +#: src/tables/stock/StockItemTable.tsx:339 +msgid "Include Variants" +msgstr "" + +#: src/tables/build/BuildAllocatedStockTable.tsx:66 +#: src/tables/build/BuildOrderTable.tsx:160 +#: src/tables/part/PartPurchaseOrdersTable.tsx:139 +#: src/tables/sales/ReturnOrderTable.tsx:85 +#: src/tables/sales/SalesOrderAllocationTable.tsx:69 +#: src/tables/sales/SalesOrderTable.tsx:85 +msgid "Include orders for part variants" +msgstr "" + +#: src/tables/build/BuildAllocatedStockTable.tsx:89 +#: src/tables/part/PartPurchaseOrdersTable.tsx:131 +#: src/tables/sales/SalesOrderAllocationTable.tsx:93 msgid "Order Status" msgstr "" -#: src/tables/build/BuildAllocatedStockTable.tsx:96 -#: src/tables/sales/SalesOrderAllocationTable.tsx:75 +#: src/tables/build/BuildAllocatedStockTable.tsx:117 +#: src/tables/sales/SalesOrderAllocationTable.tsx:126 msgid "Allocated Quantity" msgstr "" -#: src/tables/build/BuildAllocatedStockTable.tsx:116 -#: src/tables/sales/SalesOrderAllocationTable.tsx:94 +#: src/tables/build/BuildAllocatedStockTable.tsx:137 +#: src/tables/sales/SalesOrderAllocationTable.tsx:120 msgid "Available Quantity" msgstr "" -#: src/tables/build/BuildAllocatedStockTable.tsx:126 -#: src/tables/build/BuildOrderTestTable.tsx:176 -#: src/tables/build/BuildOrderTestTable.tsx:200 -#: src/tables/build/BuildOutputTable.tsx:312 -msgid "Build Output" +#: src/tables/build/BuildAllocatedStockTable.tsx:164 +#: src/tables/build/BuildLineTable.tsx:513 +msgid "Edit Stock Allocation" msgstr "" -#: src/tables/build/BuildAllocatedStockTable.tsx:143 -msgid "Edit Build Item" -msgstr "" +#: src/tables/build/BuildAllocatedStockTable.tsx:164 +#~ msgid "Edit Build Item" +#~ msgstr "Edit Build Item" -#: src/tables/build/BuildAllocatedStockTable.tsx:153 -msgid "Delete Build Item" -msgstr "" +#: src/tables/build/BuildAllocatedStockTable.tsx:174 +#~ msgid "Delete Build Item" +#~ msgstr "Delete Build Item" -#: src/tables/build/BuildLineTable.tsx:43 -#: src/tables/stock/StockItemTable.tsx:305 -msgid "Allocated" -msgstr "" - -#: src/tables/build/BuildLineTable.tsx:44 -msgid "Show allocated lines" -msgstr "" - -#: src/tables/build/BuildLineTable.tsx:49 -msgid "Show lines with available stock" -msgstr "" - -#: src/tables/build/BuildLineTable.tsx:54 -msgid "Show consumable lines" +#: src/tables/build/BuildAllocatedStockTable.tsx:177 +#: src/tables/build/BuildLineTable.tsx:526 +msgid "Delete Stock Allocation" msgstr "" #: src/tables/build/BuildLineTable.tsx:59 +#~ msgid "Show lines with available stock" +#~ msgstr "Show lines with available stock" + +#: src/tables/build/BuildLineTable.tsx:175 +msgid "Show allocated lines" +msgstr "" + +#: src/tables/build/BuildLineTable.tsx:185 +msgid "Show consumable lines" +msgstr "" + +#: src/tables/build/BuildLineTable.tsx:190 msgid "Show optional lines" msgstr "" -#: src/tables/build/BuildLineTable.tsx:68 +#: src/tables/build/BuildLineTable.tsx:199 #: src/tables/part/PartTable.tsx:208 msgid "Testable" msgstr "" -#: src/tables/build/BuildLineTable.tsx:73 -#: src/tables/stock/StockItemTable.tsx:364 +#: src/tables/build/BuildLineTable.tsx:204 +#: src/tables/stock/StockItemTable.tsx:368 msgid "Tracked" msgstr "" -#: src/tables/build/BuildLineTable.tsx:74 +#: src/tables/build/BuildLineTable.tsx:205 msgid "Show tracked lines" msgstr "" -#: src/tables/build/BuildLineTable.tsx:108 -#: src/tables/sales/SalesOrderLineItemTable.tsx:133 +#: src/tables/build/BuildLineTable.tsx:239 +#: src/tables/sales/SalesOrderLineItemTable.tsx:141 msgid "In production" msgstr "" -#: src/tables/build/BuildLineTable.tsx:136 +#: src/tables/build/BuildLineTable.tsx:267 msgid "Insufficient stock" msgstr "" -#: src/tables/build/BuildLineTable.tsx:152 -#: src/tables/sales/SalesOrderLineItemTable.tsx:121 -#: src/tables/stock/StockItemTable.tsx:186 +#: src/tables/build/BuildLineTable.tsx:283 +#: src/tables/sales/SalesOrderLineItemTable.tsx:129 +#: src/tables/stock/StockItemTable.tsx:175 msgid "No stock available" msgstr "" -#: src/tables/build/BuildLineTable.tsx:201 +#: src/tables/build/BuildLineTable.tsx:355 msgid "Gets Inherited" msgstr "" -#: src/tables/build/BuildLineTable.tsx:210 +#: src/tables/build/BuildLineTable.tsx:366 msgid "Unit Quantity" msgstr "" -#: src/tables/build/BuildLineTable.tsx:267 -#: src/tables/sales/SalesOrderLineItemTable.tsx:230 +#: src/tables/build/BuildLineTable.tsx:381 +msgid "Required Quantity" +msgstr "" + +#: src/tables/build/BuildLineTable.tsx:432 +#: src/tables/sales/SalesOrderLineItemTable.tsx:254 msgid "Create Build Order" msgstr "" -#: src/tables/build/BuildLineTable.tsx:298 -msgid "Allocate Stock" +#: src/tables/build/BuildLineTable.tsx:460 +msgid "Auto allocation in progress" msgstr "" -#: src/tables/build/BuildLineTable.tsx:305 +#: src/tables/build/BuildLineTable.tsx:463 +#: src/tables/build/BuildLineTable.tsx:632 +msgid "Auto Allocate Stock" +msgstr "" + +#: src/tables/build/BuildLineTable.tsx:464 +msgid "Automatically allocate stock to this build according to the selected options" +msgstr "" + +#: src/tables/build/BuildLineTable.tsx:482 +#: src/tables/build/BuildLineTable.tsx:496 +#: src/tables/build/BuildLineTable.tsx:579 +#: src/tables/build/BuildLineTable.tsx:664 +#: src/tables/build/BuildOutputTable.tsx:314 +#: src/tables/build/BuildOutputTable.tsx:319 +msgid "Deallocate Stock" +msgstr "" + +#: src/tables/build/BuildLineTable.tsx:498 +msgid "Deallocate all untracked stock for this build order" +msgstr "" + +#: src/tables/build/BuildLineTable.tsx:500 +msgid "Deallocate stock from the selected line item" +msgstr "" + +#: src/tables/build/BuildLineTable.tsx:504 +msgid "Stock has been deallocated" +msgstr "" + +#: src/tables/build/BuildLineTable.tsx:589 msgid "Order Stock" msgstr "" -#: src/tables/build/BuildLineTable.tsx:312 +#: src/tables/build/BuildLineTable.tsx:596 msgid "Build Stock" msgstr "" -#: src/tables/build/BuildOrderTable.tsx:111 -msgid "Show active orders" +#: src/tables/build/BuildLineTable.tsx:610 +msgid "View Part" msgstr "" #: src/tables/build/BuildOrderTable.tsx:116 -msgid "Cascade" -msgstr "" +#~ msgid "Cascade" +#~ msgstr "Cascade" #: src/tables/build/BuildOrderTable.tsx:117 -msgid "Display recursive child orders" +#~ msgid "Display recursive child orders" +#~ msgstr "Display recursive child orders" + +#: src/tables/build/BuildOrderTable.tsx:121 +msgid "Show outstanding orders" msgstr "" -#: src/tables/build/BuildOrderTable.tsx:123 -#: src/tables/part/PartPurchaseOrdersTable.tsx:126 -#: src/tables/purchasing/PurchaseOrderTable.tsx:56 -#: src/tables/sales/ReturnOrderTable.tsx:47 -#: src/tables/sales/SalesOrderTable.tsx:54 +#: src/tables/build/BuildOrderTable.tsx:121 +#~ msgid "Show active orders" +#~ msgstr "Show active orders" + +#: src/tables/build/BuildOrderTable.tsx:122 +#~ msgid "Show overdue status" +#~ msgstr "Show overdue status" + +#: src/tables/build/BuildOrderTable.tsx:126 +#: src/tables/part/PartPurchaseOrdersTable.tsx:132 +#: src/tables/purchasing/PurchaseOrderTable.tsx:59 +#: src/tables/sales/ReturnOrderTable.tsx:57 +#: src/tables/sales/SalesOrderTable.tsx:57 msgid "Filter by order status" msgstr "" -#: src/tables/build/BuildOrderTable.tsx:130 -msgid "Show overdue status" -msgstr "" - -#: src/tables/build/BuildOrderTable.tsx:141 -#: src/tables/purchasing/PurchaseOrderTable.tsx:65 -#: src/tables/sales/ReturnOrderTable.tsx:56 -#: src/tables/sales/SalesOrderTable.tsx:63 +#: src/tables/build/BuildOrderTable.tsx:136 +#: src/tables/purchasing/PurchaseOrderTable.tsx:70 +#: src/tables/sales/ReturnOrderTable.tsx:68 +#: src/tables/sales/SalesOrderTable.tsx:68 msgid "Filter by project code" msgstr "" -#: src/tables/build/BuildOrderTable.tsx:146 -#: src/tables/purchasing/PurchaseOrderTable.tsx:70 -#: src/tables/sales/ReturnOrderTable.tsx:61 -#: src/tables/sales/SalesOrderTable.tsx:68 -msgid "Has Project Code" -msgstr "" - -#: src/tables/build/BuildOrderTable.tsx:147 +#: src/tables/build/BuildOrderTable.tsx:139 #: src/tables/purchasing/PurchaseOrderTable.tsx:71 #: src/tables/sales/ReturnOrderTable.tsx:62 #: src/tables/sales/SalesOrderTable.tsx:69 -msgid "Filter by whether the purchase order has a project code" -msgstr "" +#~ msgid "Filter by whether the purchase order has a project code" +#~ msgstr "Filter by whether the purchase order has a project code" -#: src/tables/build/BuildOrderTable.tsx:152 +#: src/tables/build/BuildOrderTable.tsx:143 msgid "Filter by user who issued this order" msgstr "" -#: src/tables/build/BuildOrderTable.tsx:158 -#: src/tables/purchasing/PurchaseOrderTable.tsx:76 -#: src/tables/sales/ReturnOrderTable.tsx:67 -#: src/tables/sales/SalesOrderTable.tsx:74 +#: src/tables/build/BuildOrderTable.tsx:149 +#: src/tables/purchasing/PurchaseOrderTable.tsx:77 +#: src/tables/sales/ReturnOrderTable.tsx:75 +#: src/tables/sales/SalesOrderTable.tsx:75 msgid "Filter by responsible owner" msgstr "" -#: src/tables/build/BuildOrderTestTable.tsx:75 -#: src/tables/build/BuildOrderTestTable.tsx:111 -#: src/tables/stock/StockItemTestResultTable.tsx:257 -#: src/tables/stock/StockItemTestResultTable.tsx:329 -#: src/tables/stock/StockItemTestResultTable.tsx:384 +#: src/tables/build/BuildOrderTestTable.tsx:76 +#: src/tables/build/BuildOrderTestTable.tsx:112 +#: src/tables/stock/StockItemTestResultTable.tsx:275 +#: src/tables/stock/StockItemTestResultTable.tsx:347 +#: src/tables/stock/StockItemTestResultTable.tsx:403 msgid "Add Test Result" msgstr "" -#: src/tables/build/BuildOrderTestTable.tsx:82 -#: src/tables/stock/StockItemTestResultTable.tsx:259 +#: src/tables/build/BuildOrderTestTable.tsx:83 +#: src/tables/stock/StockItemTestResultTable.tsx:277 msgid "Test result added" msgstr "" -#: src/tables/build/BuildOrderTestTable.tsx:110 -#: src/tables/stock/StockItemTestResultTable.tsx:174 +#: src/tables/build/BuildOrderTestTable.tsx:111 +#: src/tables/stock/StockItemTestResultTable.tsx:180 msgid "No Result" msgstr "" -#: src/tables/build/BuildOrderTestTable.tsx:220 +#: src/tables/build/BuildOrderTestTable.tsx:221 msgid "Show build outputs currently in production" msgstr "" +#: src/tables/build/BuildOutputTable.tsx:76 +msgid "Build Output Stock Allocation" +msgstr "" + #: src/tables/build/BuildOutputTable.tsx:161 #~ msgid "Delete build output" #~ msgstr "Delete build output" -#: src/tables/build/BuildOutputTable.tsx:173 -#: src/tables/build/BuildOutputTable.tsx:211 +#: src/tables/build/BuildOutputTable.tsx:258 +#: src/tables/build/BuildOutputTable.tsx:374 msgid "Add Build Output" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:216 +#: src/tables/build/BuildOutputTable.tsx:304 +#~ msgid "Edit build output" +#~ msgstr "Edit build output" + +#: src/tables/build/BuildOutputTable.tsx:306 +#: src/tables/build/BuildOutputTable.tsx:417 +msgid "Edit Build Output" +msgstr "" + +#: src/tables/build/BuildOutputTable.tsx:321 +msgid "This action will deallocate all stock from the selected build output" +msgstr "" + +#: src/tables/build/BuildOutputTable.tsx:341 msgid "Complete selected outputs" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:226 +#: src/tables/build/BuildOutputTable.tsx:352 msgid "Scrap selected outputs" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:236 +#: src/tables/build/BuildOutputTable.tsx:363 msgid "Cancel selected outputs" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:252 +#: src/tables/build/BuildOutputTable.tsx:385 msgid "Allocate" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:253 +#: src/tables/build/BuildOutputTable.tsx:386 msgid "Allocate stock to build output" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:259 +#: src/tables/build/BuildOutputTable.tsx:396 msgid "Deallocate" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:260 +#: src/tables/build/BuildOutputTable.tsx:397 msgid "Deallocate stock from build output" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:267 +#: src/tables/build/BuildOutputTable.tsx:408 msgid "Complete build output" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:276 +#: src/tables/build/BuildOutputTable.tsx:424 msgid "Scrap" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:277 +#: src/tables/build/BuildOutputTable.tsx:425 msgid "Scrap build output" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:280 -#~ msgid "Allocated Items" -#~ msgstr "Allocated Items" - -#: src/tables/build/BuildOutputTable.tsx:287 +#: src/tables/build/BuildOutputTable.tsx:435 msgid "Cancel build output" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:325 -msgid "Batch" -msgstr "" - -#: src/tables/build/BuildOutputTable.tsx:340 +#: src/tables/build/BuildOutputTable.tsx:488 msgid "Allocated Lines" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:355 +#: src/tables/build/BuildOutputTable.tsx:503 msgid "Required Tests" msgstr "" -#: src/tables/company/AddressTable.tsx:121 -#: src/tables/company/AddressTable.tsx:185 +#: src/tables/company/AddressTable.tsx:118 +#: src/tables/company/AddressTable.tsx:183 msgid "Add Address" msgstr "" -#: src/tables/company/AddressTable.tsx:126 +#: src/tables/company/AddressTable.tsx:123 msgid "Address created" msgstr "" -#: src/tables/company/AddressTable.tsx:135 +#: src/tables/company/AddressTable.tsx:132 msgid "Edit Address" msgstr "" -#: src/tables/company/AddressTable.tsx:143 +#: src/tables/company/AddressTable.tsx:140 msgid "Delete Address" msgstr "" -#: src/tables/company/AddressTable.tsx:144 +#: src/tables/company/AddressTable.tsx:141 msgid "Are you sure you want to delete this address?" msgstr "" @@ -6130,24 +7269,24 @@ msgstr "" #~ msgid "New Company" #~ msgstr "New Company" -#: src/tables/company/CompanyTable.tsx:74 -#: src/tables/company/CompanyTable.tsx:123 +#: src/tables/company/CompanyTable.tsx:75 +#: src/tables/company/CompanyTable.tsx:125 msgid "Add Company" msgstr "" -#: src/tables/company/CompanyTable.tsx:96 +#: src/tables/company/CompanyTable.tsx:97 msgid "Show active companies" msgstr "" -#: src/tables/company/CompanyTable.tsx:101 +#: src/tables/company/CompanyTable.tsx:102 msgid "Show companies which are suppliers" msgstr "" -#: src/tables/company/CompanyTable.tsx:106 +#: src/tables/company/CompanyTable.tsx:107 msgid "Show companies which are manufacturers" msgstr "" -#: src/tables/company/CompanyTable.tsx:111 +#: src/tables/company/CompanyTable.tsx:112 msgid "Show companies which are customers" msgstr "" @@ -6163,96 +7302,99 @@ msgstr "" msgid "Delete Contact" msgstr "" -#: src/tables/company/ContactTable.tsx:129 +#: src/tables/company/ContactTable.tsx:130 msgid "Add contact" msgstr "" -#: src/tables/general/AttachmentTable.tsx:130 +#: src/tables/general/AttachmentTable.tsx:135 msgid "File uploaded" msgstr "" -#: src/tables/general/AttachmentTable.tsx:131 +#: src/tables/general/AttachmentTable.tsx:136 msgid "File {0} uploaded successfully" msgstr "" -#: src/tables/general/AttachmentTable.tsx:142 +#: src/tables/general/AttachmentTable.tsx:147 msgid "Upload Error" msgstr "" -#: src/tables/general/AttachmentTable.tsx:143 +#: src/tables/general/AttachmentTable.tsx:148 msgid "File could not be uploaded" msgstr "" -#: src/tables/general/AttachmentTable.tsx:191 +#: src/tables/general/AttachmentTable.tsx:196 msgid "Upload Attachment" msgstr "" -#: src/tables/general/AttachmentTable.tsx:201 +#: src/tables/general/AttachmentTable.tsx:206 msgid "Edit Attachment" msgstr "" -#: src/tables/general/AttachmentTable.tsx:215 +#: src/tables/general/AttachmentTable.tsx:220 msgid "Delete Attachment" msgstr "" -#: src/tables/general/AttachmentTable.tsx:225 +#: src/tables/general/AttachmentTable.tsx:230 msgid "Is Link" msgstr "" -#: src/tables/general/AttachmentTable.tsx:226 +#: src/tables/general/AttachmentTable.tsx:231 msgid "Show link attachments" msgstr "" -#: src/tables/general/AttachmentTable.tsx:230 +#: src/tables/general/AttachmentTable.tsx:235 msgid "Is File" msgstr "" -#: src/tables/general/AttachmentTable.tsx:231 +#: src/tables/general/AttachmentTable.tsx:236 msgid "Show file attachments" msgstr "" -#: src/tables/general/AttachmentTable.tsx:240 +#: src/tables/general/AttachmentTable.tsx:245 msgid "Add attachment" msgstr "" -#: src/tables/general/AttachmentTable.tsx:251 -msgid "Add external link" -msgstr "" - #: src/tables/general/AttachmentTable.tsx:254 #~ msgid "Upload attachment" #~ msgstr "Upload attachment" -#: src/tables/general/AttachmentTable.tsx:299 +#: src/tables/general/AttachmentTable.tsx:256 +msgid "Add external link" +msgstr "" + +#: src/tables/general/AttachmentTable.tsx:304 msgid "No attachments found" msgstr "" -#: src/tables/general/AttachmentTable.tsx:337 +#: src/tables/general/AttachmentTable.tsx:343 msgid "Drag attachment file here to upload" msgstr "" #: src/tables/general/ExtraLineItemTable.tsx:86 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:251 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:60 -#: src/tables/sales/SalesOrderLineItemTable.tsx:196 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:263 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:362 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:72 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:168 +#: src/tables/sales/SalesOrderLineItemTable.tsx:206 +#: src/tables/sales/SalesOrderLineItemTable.tsx:291 msgid "Add Line Item" msgstr "" #: src/tables/general/ExtraLineItemTable.tsx:98 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:271 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:72 -#: src/tables/sales/SalesOrderLineItemTable.tsx:214 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:283 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:84 +#: src/tables/sales/SalesOrderLineItemTable.tsx:224 msgid "Edit Line Item" msgstr "" #: src/tables/general/ExtraLineItemTable.tsx:106 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:279 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:80 -#: src/tables/sales/SalesOrderLineItemTable.tsx:222 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:291 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:92 +#: src/tables/sales/SalesOrderLineItemTable.tsx:232 msgid "Delete Line Item" msgstr "" -#: src/tables/general/ExtraLineItemTable.tsx:142 +#: src/tables/general/ExtraLineItemTable.tsx:143 msgid "Add Extra Line Item" msgstr "" @@ -6261,12 +7403,12 @@ msgid "Machine restarted" msgstr "" #: src/tables/machine/MachineListTable.tsx:212 -#: src/tables/machine/MachineListTable.tsx:263 +#: src/tables/machine/MachineListTable.tsx:261 msgid "Edit machine" msgstr "" #: src/tables/machine/MachineListTable.tsx:226 -#: src/tables/machine/MachineListTable.tsx:267 +#: src/tables/machine/MachineListTable.tsx:265 msgid "Delete machine" msgstr "" @@ -6278,51 +7420,50 @@ msgstr "" msgid "Are you sure you want to remove the machine \"{0}\"?" msgstr "" -#: src/tables/machine/MachineListTable.tsx:255 -#: src/tables/machine/MachineListTable.tsx:432 +#: src/tables/machine/MachineListTable.tsx:254 +#: src/tables/machine/MachineListTable.tsx:442 msgid "Restart required" msgstr "" -#: src/tables/machine/MachineListTable.tsx:259 +#: src/tables/machine/MachineListTable.tsx:258 msgid "Machine Actions" msgstr "" -#: src/tables/machine/MachineListTable.tsx:272 +#: src/tables/machine/MachineListTable.tsx:270 msgid "Restart" msgstr "" -#: src/tables/machine/MachineListTable.tsx:274 +#: src/tables/machine/MachineListTable.tsx:272 msgid "Restart machine" msgstr "" -#: src/tables/machine/MachineListTable.tsx:276 +#: src/tables/machine/MachineListTable.tsx:274 msgid "manual restart required" msgstr "" +#: src/tables/machine/MachineListTable.tsx:291 +#~ msgid "Machine information" +#~ msgstr "Machine information" + #: src/tables/machine/MachineListTable.tsx:292 -msgid "Machine information" +msgid "Machine Information" msgstr "" -#: src/tables/machine/MachineListTable.tsx:303 -#: src/tables/machine/MachineListTable.tsx:599 +#: src/tables/machine/MachineListTable.tsx:302 +#: src/tables/machine/MachineListTable.tsx:610 msgid "Machine Type" msgstr "" -#: src/tables/machine/MachineListTable.tsx:316 +#: src/tables/machine/MachineListTable.tsx:315 msgid "Machine Driver" msgstr "" -#: src/tables/machine/MachineListTable.tsx:329 +#: src/tables/machine/MachineListTable.tsx:330 msgid "Initialized" msgstr "" -#: src/tables/machine/MachineListTable.tsx:350 -#: src/tables/machine/MachineTypeTable.tsx:261 -msgid "Errors" -msgstr "" - -#: src/tables/machine/MachineListTable.tsx:358 -#: src/tables/machine/MachineTypeTable.tsx:269 +#: src/tables/machine/MachineListTable.tsx:359 +#: src/tables/machine/MachineTypeTable.tsx:290 msgid "No errors reported" msgstr "" @@ -6330,7 +7471,7 @@ msgstr "" msgid "Machine Settings" msgstr "" -#: src/tables/machine/MachineListTable.tsx:389 +#: src/tables/machine/MachineListTable.tsx:394 msgid "Driver Settings" msgstr "" @@ -6338,86 +7479,109 @@ msgstr "" #~ msgid "Create machine" #~ msgstr "Create machine" -#: src/tables/machine/MachineListTable.tsx:506 +#: src/tables/machine/MachineListTable.tsx:516 +#: src/tables/machine/MachineListTable.tsx:558 msgid "Add machine" msgstr "" #: src/tables/machine/MachineListTable.tsx:561 -msgid "Machine detail" +#~ msgid "Machine detail" +#~ msgstr "Machine detail" + +#: src/tables/machine/MachineListTable.tsx:572 +msgid "Machine Detail" msgstr "" -#: src/tables/machine/MachineListTable.tsx:608 +#: src/tables/machine/MachineListTable.tsx:619 msgid "Driver" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:73 +#: src/tables/machine/MachineTypeTable.tsx:78 msgid "Builtin driver" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:89 +#: src/tables/machine/MachineTypeTable.tsx:96 +msgid "Not Found" +msgstr "" + +#: src/tables/machine/MachineTypeTable.tsx:99 msgid "Machine type not found." msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:97 -msgid "Machine type information" +#: src/tables/machine/MachineTypeTable.tsx:99 +#~ msgid "Machine type information" +#~ msgstr "Machine type information" + +#: src/tables/machine/MachineTypeTable.tsx:109 +msgid "Machine Type Information" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:110 -#: src/tables/machine/MachineTypeTable.tsx:217 +#: src/tables/machine/MachineTypeTable.tsx:124 +#: src/tables/machine/MachineTypeTable.tsx:238 msgid "Slug" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:118 -#: src/tables/machine/MachineTypeTable.tsx:238 +#: src/tables/machine/MachineTypeTable.tsx:135 +#: src/tables/machine/MachineTypeTable.tsx:259 msgid "Provider plugin" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:130 -#: src/tables/machine/MachineTypeTable.tsx:250 +#: src/tables/machine/MachineTypeTable.tsx:147 +#: src/tables/machine/MachineTypeTable.tsx:271 msgid "Provider file" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:135 -#: src/tables/machine/MachineTypeTable.tsx:255 -#: src/tables/plugin/PluginListTable.tsx:180 -#: src/tables/plugin/PluginListTable.tsx:568 -msgid "Builtin" +#: src/tables/machine/MachineTypeTable.tsx:148 +#~ msgid "Available drivers" +#~ msgstr "Available drivers" + +#: src/tables/machine/MachineTypeTable.tsx:162 +msgid "Available Drivers" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:146 -msgid "Available drivers" -msgstr "" - -#: src/tables/machine/MachineTypeTable.tsx:196 +#: src/tables/machine/MachineTypeTable.tsx:217 msgid "Machine driver not found." msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:204 +#: src/tables/machine/MachineTypeTable.tsx:225 msgid "Machine driver information" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:224 +#: src/tables/machine/MachineTypeTable.tsx:245 msgid "Machine type" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:327 +#: src/tables/machine/MachineTypeTable.tsx:338 +#~ msgid "Machine type detail" +#~ msgstr "Machine type detail" + +#: src/tables/machine/MachineTypeTable.tsx:348 msgid "Builtin type" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:336 -msgid "Machine type detail" +#: src/tables/machine/MachineTypeTable.tsx:348 +#~ msgid "Machine driver detail" +#~ msgstr "Machine driver detail" + +#: src/tables/machine/MachineTypeTable.tsx:357 +msgid "Machine Type Detail" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:346 -msgid "Machine driver detail" +#: src/tables/machine/MachineTypeTable.tsx:367 +msgid "Machine Driver Detail" msgstr "" #: src/tables/notifications/NotificationsTable.tsx:26 msgid "Age" msgstr "" +#: src/tables/notifications/NotificationsTable.tsx:36 +msgid "Notification" +msgstr "" + #: src/tables/notifications/NotificationsTable.tsx:40 #: src/tables/plugin/PluginErrorTable.tsx:37 +#: src/tables/settings/ErrorTable.tsx:50 msgid "Message" msgstr "" @@ -6451,33 +7615,32 @@ msgstr "" msgid "Show assembly parts" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:68 +#: src/tables/part/PartCategoryTable.tsx:48 +msgid "You are subscribed to notifications for this category" +msgstr "" + +#: src/tables/part/PartCategoryTable.tsx:80 #: src/tables/part/PartTable.tsx:196 msgid "Include Subcategories" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:69 +#: src/tables/part/PartCategoryTable.tsx:81 msgid "Include subcategories in results" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:74 +#: src/tables/part/PartCategoryTable.tsx:86 msgid "Show structural categories" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:78 -#: src/tables/part/PartTable.tsx:294 -msgid "Subscribed" -msgstr "" - -#: src/tables/part/PartCategoryTable.tsx:79 +#: src/tables/part/PartCategoryTable.tsx:91 msgid "Show categories to which the user is subscribed" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:86 +#: src/tables/part/PartCategoryTable.tsx:100 msgid "New Part Category" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:112 +#: src/tables/part/PartCategoryTable.tsx:129 msgid "Add Part Category" msgstr "" @@ -6523,11 +7686,6 @@ msgstr "" msgid "Part parameters cannot be edited, as the part is locked" msgstr "" -#: src/tables/part/PartParameterTable.tsx:212 -#: src/tables/stock/StockItemTable.tsx:335 -msgid "Include Variants" -msgstr "" - #: src/tables/part/PartParameterTemplateTable.tsx:31 msgid "Checkbox" msgstr "" @@ -6554,6 +7712,7 @@ msgid "Show templates with units" msgstr "" #: src/tables/part/PartParameterTemplateTable.tsx:85 +#: src/tables/part/PartParameterTemplateTable.tsx:141 msgid "Add Parameter Template" msgstr "" @@ -6566,23 +7725,19 @@ msgid "Delete Parameter Template" msgstr "" #: src/tables/part/PartParameterTemplateTable.tsx:141 -msgid "Add parameter template" -msgstr "" +#~ msgid "Add parameter template" +#~ msgstr "Add parameter template" -#: src/tables/part/PartPurchaseOrdersTable.tsx:77 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:162 +#: src/tables/part/PartPurchaseOrdersTable.tsx:78 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:168 msgid "Total Quantity" msgstr "" -#: src/tables/part/PartPurchaseOrdersTable.tsx:115 -msgid "Pending" -msgstr "" - -#: src/tables/part/PartPurchaseOrdersTable.tsx:116 +#: src/tables/part/PartPurchaseOrdersTable.tsx:122 msgid "Show pending orders" msgstr "" -#: src/tables/part/PartPurchaseOrdersTable.tsx:121 +#: src/tables/part/PartPurchaseOrdersTable.tsx:127 msgid "Show received items" msgstr "" @@ -6728,22 +7883,13 @@ msgstr "" msgid "Results" msgstr "" -#: src/tables/part/PartTestTemplateTable.tsx:76 -msgid "No Results" -msgstr "" - -#: src/tables/part/PartTestTemplateTable.tsx:106 -#: src/tables/stock/StockItemTestResultTable.tsx:365 -msgid "Required" -msgstr "" - #: src/tables/part/PartTestTemplateTable.tsx:107 msgid "Show required tests" msgstr "" #: src/tables/part/PartTestTemplateTable.tsx:111 -#: src/tables/settings/TemplateTable.tsx:167 -#: src/tables/settings/TemplateTable.tsx:283 +#: src/tables/settings/TemplateTable.tsx:247 +#: src/tables/settings/TemplateTable.tsx:363 msgid "Enabled" msgstr "" @@ -6784,7 +7930,7 @@ msgid "Show tests which have recorded results" msgstr "" #: src/tables/part/PartTestTemplateTable.tsx:154 -#: src/tables/part/PartTestTemplateTable.tsx:237 +#: src/tables/part/PartTestTemplateTable.tsx:238 msgid "Add Test Template" msgstr "" @@ -6808,7 +7954,7 @@ msgstr "" msgid "View Parent Part" msgstr "" -#: src/tables/part/PartTestTemplateTable.tsx:257 +#: src/tables/part/PartTestTemplateTable.tsx:258 msgid "Part templates cannot be edited, as the part is locked" msgstr "" @@ -6836,28 +7982,49 @@ msgstr "" msgid "Show trackable variants" msgstr "" -#: src/tables/part/RelatedPartTable.tsx:84 +#: src/tables/part/RelatedPartTable.tsx:86 +#: src/tables/part/RelatedPartTable.tsx:109 msgid "Add Related Part" msgstr "" -#: src/tables/part/RelatedPartTable.tsx:99 +#: src/tables/part/RelatedPartTable.tsx:101 msgid "Delete Related Part" msgstr "" -#: src/tables/part/RelatedPartTable.tsx:106 -msgid "Add related part" -msgstr "" +#: src/tables/part/RelatedPartTable.tsx:109 +#~ msgid "Add related part" +#~ msgstr "Add related part" #: src/tables/plugin/PluginErrorTable.tsx:29 msgid "Stage" msgstr "" -#: src/tables/plugin/PluginListTable.tsx:95 -msgid "Plugin with key {pluginKey} not found" +#: src/tables/plugin/PluginListTable.tsx:42 +msgid "Plugin is active" msgstr "" +#: src/tables/plugin/PluginListTable.tsx:48 +msgid "Plugin is inactive" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:55 +msgid "Plugin is not installed" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:76 +msgid "Plugin" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:95 +#~ msgid "Plugin with key {pluginKey} not found" +#~ msgstr "Plugin with key {pluginKey} not found" + #: src/tables/plugin/PluginListTable.tsx:97 -msgid "An error occurred while fetching plugin details" +#~ msgid "An error occurred while fetching plugin details" +#~ msgstr "An error occurred while fetching plugin details" + +#: src/tables/plugin/PluginListTable.tsx:109 +msgid "Description not available" msgstr "" #: src/tables/plugin/PluginListTable.tsx:113 @@ -6865,12 +8032,8 @@ msgstr "" #~ msgstr "Plugin with id {id} not found" #: src/tables/plugin/PluginListTable.tsx:122 -msgid "Plugin information" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:134 -msgid "Author" -msgstr "" +#~ msgid "Plugin information" +#~ msgstr "Plugin information" #: src/tables/plugin/PluginListTable.tsx:134 #~ msgid "Plugin Actions" @@ -6881,79 +8044,124 @@ msgstr "" #~ msgid "Edit plugin" #~ msgstr "Edit plugin" +#: src/tables/plugin/PluginListTable.tsx:144 +msgid "Confirm plugin activation" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:145 +msgid "Confirm plugin deactivation" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:150 +msgid "The selected plugin will be activated" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:151 +msgid "The selected plugin will be deactivated" +msgstr "" + #: src/tables/plugin/PluginListTable.tsx:152 #: src/tables/plugin/PluginListTable.tsx:153 #~ msgid "Reload" #~ msgstr "Reload" -#: src/tables/plugin/PluginListTable.tsx:154 -msgid "Plugin is not active" -msgstr "" - #: src/tables/plugin/PluginListTable.tsx:163 -msgid "Package information" -msgstr "" +#~ msgid "Package information" +#~ msgstr "Package information" #: src/tables/plugin/PluginListTable.tsx:169 -msgid "Package Name" +msgid "Deactivate" msgstr "" -#: src/tables/plugin/PluginListTable.tsx:175 -msgid "Installation Path" +#: src/tables/plugin/PluginListTable.tsx:183 +msgid "Activate" msgstr "" -#: src/tables/plugin/PluginListTable.tsx:185 -msgid "Package" +#: src/tables/plugin/PluginListTable.tsx:184 +msgid "Activate selected plugin" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:196 +msgid "Update selected plugin" msgstr "" #: src/tables/plugin/PluginListTable.tsx:197 -msgid "Plugin settings" -msgstr "" +#~ msgid "Plugin settings" +#~ msgstr "Plugin settings" #: src/tables/plugin/PluginListTable.tsx:214 -msgid "Plugin is active" +#: src/tables/stock/InstalledItemsTable.tsx:107 +msgid "Uninstall" msgstr "" -#: src/tables/plugin/PluginListTable.tsx:220 -msgid "Plugin is inactive" +#: src/tables/plugin/PluginListTable.tsx:215 +msgid "Uninstall selected plugin" msgstr "" -#: src/tables/plugin/PluginListTable.tsx:227 -msgid "Plugin is not installed" +#: src/tables/plugin/PluginListTable.tsx:233 +msgid "Delete selected plugin configuration" msgstr "" -#: src/tables/plugin/PluginListTable.tsx:253 -msgid "Plugin" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:287 -msgid "Description not available" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:319 -msgid "Confirm plugin activation" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:320 -msgid "Confirm plugin deactivation" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:325 -msgid "The selected plugin will be activated" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:326 -msgid "The selected plugin will be deactivated" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:334 +#: src/tables/plugin/PluginListTable.tsx:249 msgid "Activate Plugin" msgstr "" +#: src/tables/plugin/PluginListTable.tsx:270 +msgid "Install plugin" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:283 +msgid "Install" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:284 +msgid "Plugin installed successfully" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:289 +msgid "Uninstall Plugin" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:301 +msgid "Confirm plugin uninstall" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:304 +msgid "The selected plugin will be uninstalled." +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:308 +#~ msgid "This action cannot be undone." +#~ msgstr "This action cannot be undone." + +#: src/tables/plugin/PluginListTable.tsx:309 +msgid "Plugin uninstalled successfully" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:317 +msgid "Delete Plugin" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:318 +msgid "Deleting this plugin configuration will remove all associated settings and data. Are you sure you want to delete this plugin?" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:331 +msgid "Plugins reloaded" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:332 +msgid "Plugins were reloaded successfully" +msgstr "" + #: src/tables/plugin/PluginListTable.tsx:338 #~ msgid "Deactivate Plugin" #~ msgstr "Deactivate Plugin" +#: src/tables/plugin/PluginListTable.tsx:350 +msgid "Reload Plugins" +msgstr "" + #: src/tables/plugin/PluginListTable.tsx:354 #~ msgid "The following plugin will be activated" #~ msgstr "The following plugin will be activated" @@ -6962,16 +8170,16 @@ msgstr "" #~ msgid "The following plugin will be deactivated" #~ msgstr "The following plugin will be deactivated" -#: src/tables/plugin/PluginListTable.tsx:362 -msgid "Deactivate" +#: src/tables/plugin/PluginListTable.tsx:357 +msgid "Install Plugin" msgstr "" #: src/tables/plugin/PluginListTable.tsx:366 #~ msgid "Confirm" #~ msgstr "Confirm" -#: src/tables/plugin/PluginListTable.tsx:373 -msgid "Activate" +#: src/tables/plugin/PluginListTable.tsx:374 +msgid "Plugin Detail" msgstr "" #: src/tables/plugin/PluginListTable.tsx:376 @@ -6998,76 +8206,12 @@ msgstr "" #~ msgid "Error updating plugin" #~ msgstr "Error updating plugin" -#: src/tables/plugin/PluginListTable.tsx:406 -msgid "Uninstall" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:438 -msgid "Install plugin" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:451 -msgid "Install" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:452 -msgid "Plugin installed successfully" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:457 -msgid "Uninstall Plugin" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:469 -msgid "Confirm plugin uninstall" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:472 -msgid "The selected plugin will be uninstalled." -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:473 -msgid "This action cannot be undone." -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:477 -msgid "Plugin uninstalled successfully" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:484 -msgid "Delete Plugin" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:485 -msgid "Deleting this plugin configuration will remove all associated settings and data. Are you sure you want to delete this plugin?" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:498 -msgid "Plugins reloaded" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:499 -msgid "Plugins were reloaded successfully" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:515 -msgid "Reload Plugins" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:524 -msgid "Install Plugin" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:544 -msgid "Plugin Detail" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:573 +#: src/tables/plugin/PluginListTable.tsx:411 msgid "Sample" msgstr "" -#: src/tables/plugin/PluginListTable.tsx:578 -#: src/tables/stock/StockItemTable.tsx:340 +#: src/tables/plugin/PluginListTable.tsx:416 +#: src/tables/stock/StockItemTable.tsx:344 msgid "Installed" msgstr "" @@ -7116,82 +8260,78 @@ msgstr "" #~ msgid "Are you sure you want to remove this manufacturer part?" #~ msgstr "Are you sure you want to remove this manufacturer part?" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:102 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:339 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:103 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:356 msgid "Import Line Items" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:135 -msgid "Part Description" -msgstr "" - -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:201 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:207 msgid "Supplier Code" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:208 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:214 msgid "Supplier Link" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:215 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:220 msgid "Manufacturer Code" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:229 -msgid "Destination" +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:248 +msgid "Show line items which have been received" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:300 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:316 msgid "Receive line item" msgstr "" #: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:344 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:142 -#: src/tables/sales/SalesOrderLineItemTable.tsx:240 -msgid "Add line item" -msgstr "" +#: src/tables/sales/ReturnOrderLineItemTable.tsx:160 +#: src/tables/sales/SalesOrderLineItemTable.tsx:258 +#~ msgid "Add line item" +#~ msgstr "Add line item" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:354 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:373 msgid "Receive items" msgstr "" -#: src/tables/purchasing/SupplierPartTable.tsx:93 +#: src/tables/purchasing/SupplierPartTable.tsx:95 msgid "MPN" msgstr "" -#: src/tables/purchasing/SupplierPartTable.tsx:122 +#: src/tables/purchasing/SupplierPartTable.tsx:124 msgid "Base units" msgstr "" -#: src/tables/purchasing/SupplierPartTable.tsx:170 +#: src/tables/purchasing/SupplierPartTable.tsx:172 msgid "Supplier part created" msgstr "" -#: src/tables/purchasing/SupplierPartTable.tsx:176 +#: src/tables/purchasing/SupplierPartTable.tsx:179 msgid "Add supplier part" msgstr "" -#: src/tables/purchasing/SupplierPartTable.tsx:188 +#: src/tables/purchasing/SupplierPartTable.tsx:191 msgid "Show active supplier parts" msgstr "" -#: src/tables/purchasing/SupplierPartTable.tsx:192 -msgid "Active Part" -msgstr "" - -#: src/tables/purchasing/SupplierPartTable.tsx:193 -msgid "Show active internal parts" -msgstr "" - #: src/tables/purchasing/SupplierPartTable.tsx:193 #~ msgid "Supplier part updated" #~ msgstr "Supplier part updated" -#: src/tables/purchasing/SupplierPartTable.tsx:197 +#: src/tables/purchasing/SupplierPartTable.tsx:195 +msgid "Active Part" +msgstr "" + +#: src/tables/purchasing/SupplierPartTable.tsx:196 +msgid "Show active internal parts" +msgstr "" + +#: src/tables/purchasing/SupplierPartTable.tsx:200 msgid "Active Supplier" msgstr "" -#: src/tables/purchasing/SupplierPartTable.tsx:198 +#: src/tables/purchasing/SupplierPartTable.tsx:201 msgid "Show active suppliers" msgstr "" @@ -7203,99 +8343,187 @@ msgstr "" #~ msgid "Are you sure you want to remove this supplier part?" #~ msgstr "Are you sure you want to remove this supplier part?" -#: src/tables/sales/ReturnOrderLineItemTable.tsx:114 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:139 msgid "Received Date" msgstr "" -#: src/tables/sales/ReturnOrderLineItemTable.tsx:128 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:153 msgid "Show items which have been received" msgstr "" -#: src/tables/sales/ReturnOrderLineItemTable.tsx:133 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:158 msgid "Filter by line item status" msgstr "" -#: src/tables/sales/ReturnOrderLineItemTable.tsx:158 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:176 +msgid "Receive selected items" +msgstr "" + +#: src/tables/sales/ReturnOrderLineItemTable.tsx:205 msgid "Receive Item" msgstr "" -#: src/tables/sales/SalesOrderLineItemTable.tsx:262 -msgid "Allocate stock" +#: src/tables/sales/SalesOrderAllocationTable.tsx:60 +msgid "Show outstanding allocations" msgstr "" -#: src/tables/sales/SalesOrderLineItemTable.tsx:272 +#: src/tables/sales/SalesOrderAllocationTable.tsx:168 +#: src/tables/sales/SalesOrderAllocationTable.tsx:190 +msgid "Edit Allocation" +msgstr "" + +#: src/tables/sales/SalesOrderAllocationTable.tsx:175 +#: src/tables/sales/SalesOrderAllocationTable.tsx:197 +msgid "Delete Allocation" +msgstr "" + +#: src/tables/sales/SalesOrderLineItemTable.tsx:244 +msgid "Allocate Serial Numbers" +msgstr "" + +#: src/tables/sales/SalesOrderLineItemTable.tsx:277 +msgid "Show lines which are fully allocated" +msgstr "" + +#: src/tables/sales/SalesOrderLineItemTable.tsx:280 +#~ msgid "Allocate stock" +#~ msgstr "Allocate stock" + +#: src/tables/sales/SalesOrderLineItemTable.tsx:282 +msgid "Show lines which are completed" +msgstr "" + +#: src/tables/sales/SalesOrderLineItemTable.tsx:291 +#~ msgid "Allocate Serials" +#~ msgstr "Allocate Serials" + +#: src/tables/sales/SalesOrderLineItemTable.tsx:340 +msgid "Allocate serials" +msgstr "" + +#: src/tables/sales/SalesOrderLineItemTable.tsx:356 msgid "Build stock" msgstr "" -#: src/tables/sales/SalesOrderLineItemTable.tsx:289 -#: src/tables/stock/StockItemTable.tsx:507 +#: src/tables/sales/SalesOrderLineItemTable.tsx:373 +#: src/tables/stock/StockItemTable.tsx:512 msgid "Order stock" msgstr "" -#: src/tables/sales/SalesOrderShipmentTable.tsx:40 +#: src/tables/sales/SalesOrderShipmentTable.tsx:51 +#~ msgid "Delete Shipment" +#~ msgstr "Delete Shipment" + +#: src/tables/sales/SalesOrderShipmentTable.tsx:57 msgid "Create Shipment" msgstr "" -#: src/tables/sales/SalesOrderShipmentTable.tsx:50 -msgid "Delete Shipment" -msgstr "" - -#: src/tables/sales/SalesOrderShipmentTable.tsx:58 -msgid "Edit Shipment" -msgstr "" - -#: src/tables/sales/SalesOrderShipmentTable.tsx:66 -msgid "Shipment Reference" -msgstr "" - -#: src/tables/sales/SalesOrderShipmentTable.tsx:71 +#: src/tables/sales/SalesOrderShipmentTable.tsx:104 msgid "Items" msgstr "" -#: src/tables/sales/SalesOrderShipmentTable.tsx:83 -msgid "Delivery Date" +#: src/tables/sales/SalesOrderShipmentTable.tsx:139 +msgid "View Shipment" msgstr "" -#: src/tables/sales/SalesOrderShipmentTable.tsx:107 -msgid "Complete Shipment" +#: src/tables/sales/SalesOrderShipmentTable.tsx:161 +msgid "Edit shipment" msgstr "" -#: src/tables/sales/SalesOrderShipmentTable.tsx:133 +#: src/tables/sales/SalesOrderShipmentTable.tsx:169 +msgid "Cancel shipment" +msgstr "" + +#: src/tables/sales/SalesOrderShipmentTable.tsx:184 msgid "Add shipment" msgstr "" -#: src/tables/sales/SalesOrderShipmentTable.tsx:146 -msgid "Shipped" -msgstr "" - -#: src/tables/sales/SalesOrderShipmentTable.tsx:147 +#: src/tables/sales/SalesOrderShipmentTable.tsx:198 msgid "Show shipments which have been shipped" msgstr "" -#: src/tables/sales/SalesOrderShipmentTable.tsx:151 -msgid "Delivered" -msgstr "" - -#: src/tables/sales/SalesOrderShipmentTable.tsx:152 +#: src/tables/sales/SalesOrderShipmentTable.tsx:203 msgid "Show shipments which have been delivered" msgstr "" -#: src/tables/settings/CurrencyTable.tsx:28 -msgid "Rate" +#: src/tables/settings/BarcodeScanHistoryTable.tsx:61 +msgid "Barcode Information" msgstr "" -#: src/tables/settings/CurrencyTable.tsx:40 -msgid "Exchange rates updated" +#: src/tables/settings/BarcodeScanHistoryTable.tsx:76 +#: src/tables/settings/ErrorTable.tsx:59 +msgid "Timestamp" msgstr "" -#: src/tables/settings/CurrencyTable.tsx:46 -msgid "Exchange rate update error" +#: src/tables/settings/BarcodeScanHistoryTable.tsx:86 +msgid "Endpoint" msgstr "" -#: src/tables/settings/CurrencyTable.tsx:57 -msgid "Refresh currency exchange rates" +#: src/tables/settings/BarcodeScanHistoryTable.tsx:90 +#: src/tables/settings/BarcodeScanHistoryTable.tsx:217 +#: src/tables/stock/StockItemTestResultTable.tsx:174 +msgid "Result" msgstr "" +#: src/tables/settings/BarcodeScanHistoryTable.tsx:98 +msgid "Context" +msgstr "" + +#: src/tables/settings/BarcodeScanHistoryTable.tsx:119 +msgid "Response" +msgstr "" + +#: src/tables/settings/BarcodeScanHistoryTable.tsx:213 +#: src/tables/settings/ImportSessionTable.tsx:121 +#: src/tables/stock/StockTrackingTable.tsx:183 +msgid "Filter by user" +msgstr "" + +#: src/tables/settings/BarcodeScanHistoryTable.tsx:218 +msgid "Filter by result" +msgstr "" + +#: src/tables/settings/BarcodeScanHistoryTable.tsx:232 +msgid "Delete Barcode Scan Record" +msgstr "" + +#: src/tables/settings/BarcodeScanHistoryTable.tsx:258 +msgid "Barcode Scan Details" +msgstr "" + +#: src/tables/settings/BarcodeScanHistoryTable.tsx:268 +msgid "Logging Disabled" +msgstr "" + +#: src/tables/settings/BarcodeScanHistoryTable.tsx:270 +msgid "Barcode logging is not enabled" +msgstr "" + +#: src/tables/settings/CustomStateTable.tsx:36 +msgid "Display Name" +msgstr "" + +#: src/tables/settings/CustomStateTable.tsx:52 +msgid "Model" +msgstr "" + +#: src/tables/settings/CustomStateTable.tsx:65 +#: src/tables/settings/CustomStateTable.tsx:115 +msgid "Add State" +msgstr "" + +#: src/tables/settings/CustomStateTable.tsx:77 +msgid "Edit State" +msgstr "" + +#: src/tables/settings/CustomStateTable.tsx:85 +msgid "Delete State" +msgstr "" + +#: src/tables/settings/CustomStateTable.tsx:115 +#~ msgid "Add state" +#~ msgstr "Add state" + #: src/tables/settings/CustomUnitsTable.tsx:50 msgid "Add Custom Unit" msgstr "" @@ -7312,59 +8540,71 @@ msgstr "" msgid "Add custom unit" msgstr "" -#: src/tables/settings/ErrorTable.tsx:31 -msgid "When" -msgstr "" - -#: src/tables/settings/ErrorTable.tsx:41 -msgid "Error Information" -msgstr "" - #: src/tables/settings/ErrorTable.tsx:51 #~ msgid "Delete error report" #~ msgstr "Delete error report" -#: src/tables/settings/ErrorTable.tsx:53 +#: src/tables/settings/ErrorTable.tsx:67 +msgid "Traceback" +msgstr "" + +#: src/tables/settings/ErrorTable.tsx:103 +msgid "When" +msgstr "" + +#: src/tables/settings/ErrorTable.tsx:113 +msgid "Error Information" +msgstr "" + +#: src/tables/settings/ErrorTable.tsx:123 msgid "Delete Error Report" msgstr "" -#: src/tables/settings/ErrorTable.tsx:55 +#: src/tables/settings/ErrorTable.tsx:125 msgid "Are you sure you want to delete this error report?" msgstr "" -#: src/tables/settings/ErrorTable.tsx:57 +#: src/tables/settings/ErrorTable.tsx:127 msgid "Error report deleted" msgstr "" -#: src/tables/settings/ErrorTable.tsx:79 -#: src/tables/settings/FailedTasksTable.tsx:59 +#: src/tables/settings/ErrorTable.tsx:146 +#: src/tables/settings/FailedTasksTable.tsx:65 msgid "Error Details" msgstr "" -#: src/tables/settings/FailedTasksTable.tsx:26 -#: src/tables/settings/PendingTasksTable.tsx:19 +#: src/tables/settings/FailedTasksTable.tsx:32 +#: src/tables/settings/PendingTasksTable.tsx:23 #: src/tables/settings/ScheduledTasksTable.tsx:19 msgid "Task" msgstr "" -#: src/tables/settings/FailedTasksTable.tsx:32 -#: src/tables/settings/PendingTasksTable.tsx:24 +#: src/tables/settings/FailedTasksTable.tsx:38 +#: src/tables/settings/PendingTasksTable.tsx:28 msgid "Task ID" msgstr "" -#: src/tables/settings/FailedTasksTable.tsx:36 -#: src/tables/stock/StockItemTestResultTable.tsx:211 +#: src/tables/settings/FailedTasksTable.tsx:42 +#: src/tables/stock/StockItemTestResultTable.tsx:218 msgid "Started" msgstr "" -#: src/tables/settings/FailedTasksTable.tsx:42 +#: src/tables/settings/FailedTasksTable.tsx:48 msgid "Stopped" msgstr "" -#: src/tables/settings/FailedTasksTable.tsx:48 +#: src/tables/settings/FailedTasksTable.tsx:54 msgid "Attempts" msgstr "" +#: src/tables/settings/FailedTasksTable.tsx:92 +msgid "No Information" +msgstr "" + +#: src/tables/settings/FailedTasksTable.tsx:93 +msgid "No error details are available for this task" +msgstr "" + #: src/tables/settings/GroupTable.tsx:90 msgid "Group with id {id} not found" msgstr "" @@ -7398,42 +8638,34 @@ msgstr "" msgid "Edit group" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:38 +#: src/tables/settings/ImportSessionTable.tsx:37 msgid "Delete Import Session" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:44 +#: src/tables/settings/ImportSessionTable.tsx:43 #: src/tables/settings/ImportSessionTable.tsx:131 msgid "Create Import Session" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:69 +#: src/tables/settings/ImportSessionTable.tsx:68 msgid "Uploaded" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:79 -msgid "Imported Rows" -msgstr "" - -#: src/tables/settings/ImportSessionTable.tsx:109 -#: src/tables/settings/TemplateTable.tsx:289 +#: src/tables/settings/ImportSessionTable.tsx:108 +#: src/tables/settings/TemplateTable.tsx:369 msgid "Model Type" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:110 -#: src/tables/settings/TemplateTable.tsx:290 +#: src/tables/settings/ImportSessionTable.tsx:109 +#: src/tables/settings/TemplateTable.tsx:370 msgid "Filter by target model type" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:116 +#: src/tables/settings/ImportSessionTable.tsx:115 msgid "Filter by import session status" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:122 -msgid "Filter by user" -msgstr "" - -#: src/tables/settings/PendingTasksTable.tsx:38 +#: src/tables/settings/PendingTasksTable.tsx:42 msgid "Arguments" msgstr "" @@ -7461,12 +8693,16 @@ msgstr "" msgid "Next Run" msgstr "" -#: src/tables/settings/TemplateTable.tsx:85 -msgid "Template not found" +#: src/tables/settings/StocktakeReportTable.tsx:28 +msgid "Report" msgstr "" -#: src/tables/settings/TemplateTable.tsx:87 -msgid "An error occurred while fetching template details" +#: src/tables/settings/StocktakeReportTable.tsx:35 +msgid "Part Count" +msgstr "" + +#: src/tables/settings/StocktakeReportTable.tsx:58 +msgid "Delete Report" msgstr "" #: src/tables/settings/TemplateTable.tsx:120 @@ -7481,21 +8717,12 @@ msgstr "" #~ msgid "actions" #~ msgstr "actions" -#: src/tables/settings/TemplateTable.tsx:177 -msgid "Modify" +#: src/tables/settings/TemplateTable.tsx:162 +msgid "Template not found" msgstr "" -#: src/tables/settings/TemplateTable.tsx:178 -msgid "Modify template file" -msgstr "" - -#: src/tables/settings/TemplateTable.tsx:234 -#: src/tables/settings/TemplateTable.tsx:302 -msgid "Edit Template" -msgstr "" - -#: src/tables/settings/TemplateTable.tsx:242 -msgid "Delete template" +#: src/tables/settings/TemplateTable.tsx:164 +msgid "An error occurred while fetching template details" msgstr "" #: src/tables/settings/TemplateTable.tsx:243 @@ -7506,103 +8733,137 @@ msgstr "" #~ msgid "Create new" #~ msgstr "Create new" -#: src/tables/settings/TemplateTable.tsx:248 +#: src/tables/settings/TemplateTable.tsx:257 +msgid "Modify" +msgstr "" + +#: src/tables/settings/TemplateTable.tsx:258 +msgid "Modify template file" +msgstr "" + +#: src/tables/settings/TemplateTable.tsx:314 +#: src/tables/settings/TemplateTable.tsx:382 +msgid "Edit Template" +msgstr "" + +#: src/tables/settings/TemplateTable.tsx:322 +msgid "Delete template" +msgstr "" + +#: src/tables/settings/TemplateTable.tsx:328 msgid "Add Template" msgstr "" -#: src/tables/settings/TemplateTable.tsx:261 +#: src/tables/settings/TemplateTable.tsx:341 msgid "Add template" msgstr "" -#: src/tables/settings/TemplateTable.tsx:284 +#: src/tables/settings/TemplateTable.tsx:364 msgid "Filter by enabled status" msgstr "" -#: src/tables/settings/UserTable.tsx:82 +#: src/tables/settings/UserTable.tsx:81 msgid "User with id {id} not found" msgstr "" -#: src/tables/settings/UserTable.tsx:84 +#: src/tables/settings/UserTable.tsx:83 msgid "An error occurred while fetching user details" msgstr "" -#: src/tables/settings/UserTable.tsx:102 +#: src/tables/settings/UserTable.tsx:101 msgid "Is Active" msgstr "" -#: src/tables/settings/UserTable.tsx:103 +#: src/tables/settings/UserTable.tsx:102 msgid "Designates whether this user should be treated as active. Unselect this instead of deleting accounts." msgstr "" -#: src/tables/settings/UserTable.tsx:107 +#: src/tables/settings/UserTable.tsx:106 msgid "Is Staff" msgstr "" -#: src/tables/settings/UserTable.tsx:108 +#: src/tables/settings/UserTable.tsx:107 msgid "Designates whether the user can log into the django admin site." msgstr "" -#: src/tables/settings/UserTable.tsx:112 +#: src/tables/settings/UserTable.tsx:111 msgid "Is Superuser" msgstr "" -#: src/tables/settings/UserTable.tsx:113 +#: src/tables/settings/UserTable.tsx:112 msgid "Designates that this user has all permissions without explicitly assigning them." msgstr "" -#: src/tables/settings/UserTable.tsx:123 +#: src/tables/settings/UserTable.tsx:122 msgid "You cannot edit the rights for the currently logged-in user." msgstr "" -#: src/tables/settings/UserTable.tsx:154 +#: src/tables/settings/UserTable.tsx:153 msgid "No groups" msgstr "" -#: src/tables/settings/UserTable.tsx:245 +#: src/tables/settings/UserTable.tsx:244 msgid "Delete user" msgstr "" -#: src/tables/settings/UserTable.tsx:246 +#: src/tables/settings/UserTable.tsx:245 msgid "User deleted" msgstr "" -#: src/tables/settings/UserTable.tsx:248 +#: src/tables/settings/UserTable.tsx:247 msgid "Are you sure you want to delete this user?" msgstr "" -#: src/tables/settings/UserTable.tsx:254 -#: src/tables/settings/UserTable.tsx:272 +#: src/tables/settings/UserTable.tsx:253 +#: src/tables/settings/UserTable.tsx:271 msgid "Add user" msgstr "" -#: src/tables/settings/UserTable.tsx:262 +#: src/tables/settings/UserTable.tsx:261 msgid "Added user" msgstr "" -#: src/tables/settings/UserTable.tsx:285 +#: src/tables/settings/UserTable.tsx:284 msgid "Show active users" msgstr "" -#: src/tables/settings/UserTable.tsx:289 +#: src/tables/settings/UserTable.tsx:288 msgid "Staff" msgstr "" -#: src/tables/settings/UserTable.tsx:290 +#: src/tables/settings/UserTable.tsx:289 msgid "Show staff users" msgstr "" #: src/tables/settings/UserTable.tsx:294 -msgid "Superuser" -msgstr "" - -#: src/tables/settings/UserTable.tsx:295 msgid "Show superusers" msgstr "" -#: src/tables/settings/UserTable.tsx:305 +#: src/tables/settings/UserTable.tsx:304 msgid "Edit user" msgstr "" +#: src/tables/stock/InstalledItemsTable.tsx:37 +#: src/tables/stock/InstalledItemsTable.tsx:90 +msgid "Install Item" +msgstr "" + +#: src/tables/stock/InstalledItemsTable.tsx:39 +msgid "Item installed" +msgstr "" + +#: src/tables/stock/InstalledItemsTable.tsx:50 +msgid "Uninstall Item" +msgstr "" + +#: src/tables/stock/InstalledItemsTable.tsx:52 +msgid "Item uninstalled" +msgstr "" + +#: src/tables/stock/InstalledItemsTable.tsx:108 +msgid "Uninstall stock item" +msgstr "" + #: src/tables/stock/LocationTypesTable.tsx:39 #: src/tables/stock/LocationTypesTable.tsx:109 msgid "Add Location Type" @@ -7620,276 +8881,272 @@ msgstr "" msgid "Icon" msgstr "" -#: src/tables/stock/StockItemTable.tsx:101 +#: src/tables/stock/StockItemTable.tsx:90 msgid "This stock item is in production" msgstr "" -#: src/tables/stock/StockItemTable.tsx:110 +#: src/tables/stock/StockItemTable.tsx:97 msgid "This stock item has been assigned to a sales order" msgstr "" -#: src/tables/stock/StockItemTable.tsx:119 +#: src/tables/stock/StockItemTable.tsx:104 msgid "This stock item has been assigned to a customer" msgstr "" -#: src/tables/stock/StockItemTable.tsx:128 +#: src/tables/stock/StockItemTable.tsx:111 msgid "This stock item is installed in another stock item" msgstr "" -#: src/tables/stock/StockItemTable.tsx:137 +#: src/tables/stock/StockItemTable.tsx:118 msgid "This stock item has been consumed by a build order" msgstr "" -#: src/tables/stock/StockItemTable.tsx:146 +#: src/tables/stock/StockItemTable.tsx:125 +msgid "This stock item is unavailable" +msgstr "" + +#: src/tables/stock/StockItemTable.tsx:134 msgid "This stock item has expired" msgstr "" -#: src/tables/stock/StockItemTable.tsx:150 +#: src/tables/stock/StockItemTable.tsx:138 msgid "This stock item is stale" msgstr "" -#: src/tables/stock/StockItemTable.tsx:161 +#: src/tables/stock/StockItemTable.tsx:150 msgid "This stock item is fully allocated" msgstr "" -#: src/tables/stock/StockItemTable.tsx:168 +#: src/tables/stock/StockItemTable.tsx:157 msgid "This stock item is partially allocated" msgstr "" -#: src/tables/stock/StockItemTable.tsx:196 +#: src/tables/stock/StockItemTable.tsx:185 msgid "This stock item has been depleted" msgstr "" -#: src/tables/stock/StockItemTable.tsx:232 +#: src/tables/stock/StockItemTable.tsx:280 msgid "Stocktake Date" msgstr "" -#: src/tables/stock/StockItemTable.tsx:236 -msgid "Expiry Date" -msgstr "" - -#: src/tables/stock/StockItemTable.tsx:260 -msgid "Stock Value" -msgstr "" - -#: src/tables/stock/StockItemTable.tsx:290 +#: src/tables/stock/StockItemTable.tsx:294 msgid "Show stock for active parts" msgstr "" -#: src/tables/stock/StockItemTable.tsx:295 +#: src/tables/stock/StockItemTable.tsx:299 msgid "Filter by stock status" msgstr "" #: src/tables/stock/StockItemTable.tsx:301 -msgid "Show stock for assmebled parts" +#~ msgid "Show stock for assmebled parts" +#~ msgstr "Show stock for assmebled parts" + +#: src/tables/stock/StockItemTable.tsx:305 +msgid "Show stock for assembled parts" msgstr "" -#: src/tables/stock/StockItemTable.tsx:306 +#: src/tables/stock/StockItemTable.tsx:310 msgid "Show items which have been allocated" msgstr "" -#: src/tables/stock/StockItemTable.tsx:311 +#: src/tables/stock/StockItemTable.tsx:315 msgid "Show items which are available" msgstr "" -#: src/tables/stock/StockItemTable.tsx:315 +#: src/tables/stock/StockItemTable.tsx:319 #: src/tables/stock/StockLocationTable.tsx:44 msgid "Include Sublocations" msgstr "" -#: src/tables/stock/StockItemTable.tsx:316 +#: src/tables/stock/StockItemTable.tsx:320 msgid "Include stock in sublocations" msgstr "" -#: src/tables/stock/StockItemTable.tsx:320 +#: src/tables/stock/StockItemTable.tsx:324 msgid "Depleted" msgstr "" -#: src/tables/stock/StockItemTable.tsx:321 +#: src/tables/stock/StockItemTable.tsx:325 msgid "Show depleted stock items" msgstr "" -#: src/tables/stock/StockItemTable.tsx:326 +#: src/tables/stock/StockItemTable.tsx:330 msgid "Show items which are in stock" msgstr "" -#: src/tables/stock/StockItemTable.tsx:331 +#: src/tables/stock/StockItemTable.tsx:335 msgid "Show items which are in production" msgstr "" -#: src/tables/stock/StockItemTable.tsx:336 +#: src/tables/stock/StockItemTable.tsx:340 msgid "Include stock items for variant parts" msgstr "" -#: src/tables/stock/StockItemTable.tsx:341 +#: src/tables/stock/StockItemTable.tsx:345 msgid "Show stock items which are installed in other items" msgstr "" -#: src/tables/stock/StockItemTable.tsx:345 +#: src/tables/stock/StockItemTable.tsx:349 msgid "Sent to Customer" msgstr "" -#: src/tables/stock/StockItemTable.tsx:346 +#: src/tables/stock/StockItemTable.tsx:350 msgid "Show items which have been sent to a customer" msgstr "" -#: src/tables/stock/StockItemTable.tsx:350 +#: src/tables/stock/StockItemTable.tsx:354 msgid "Is Serialized" msgstr "" -#: src/tables/stock/StockItemTable.tsx:351 +#: src/tables/stock/StockItemTable.tsx:355 msgid "Show items which have a serial number" msgstr "" -#: src/tables/stock/StockItemTable.tsx:358 +#: src/tables/stock/StockItemTable.tsx:362 msgid "Has Batch Code" msgstr "" -#: src/tables/stock/StockItemTable.tsx:359 +#: src/tables/stock/StockItemTable.tsx:363 msgid "Show items which have a batch code" msgstr "" -#: src/tables/stock/StockItemTable.tsx:365 +#: src/tables/stock/StockItemTable.tsx:369 msgid "Show tracked items" msgstr "" -#: src/tables/stock/StockItemTable.tsx:369 +#: src/tables/stock/StockItemTable.tsx:373 msgid "Has Purchase Price" msgstr "" -#: src/tables/stock/StockItemTable.tsx:370 +#: src/tables/stock/StockItemTable.tsx:374 msgid "Show items which have a purchase price" msgstr "" -#: src/tables/stock/StockItemTable.tsx:378 +#: src/tables/stock/StockItemTable.tsx:382 msgid "External Location" msgstr "" -#: src/tables/stock/StockItemTable.tsx:379 +#: src/tables/stock/StockItemTable.tsx:383 msgid "Show items in an external location" msgstr "" -#: src/tables/stock/StockItemTable.tsx:451 +#: src/tables/stock/StockItemTable.tsx:456 msgid "Add a new stock item" msgstr "" -#: src/tables/stock/StockItemTable.tsx:460 +#: src/tables/stock/StockItemTable.tsx:465 msgid "Remove some quantity from a stock item" msgstr "" -#: src/tables/stock/StockItemTable.tsx:482 +#: src/tables/stock/StockItemTable.tsx:487 msgid "Move Stock items to new locations" msgstr "" -#: src/tables/stock/StockItemTable.tsx:489 +#: src/tables/stock/StockItemTable.tsx:494 msgid "Change stock status" msgstr "" -#: src/tables/stock/StockItemTable.tsx:491 +#: src/tables/stock/StockItemTable.tsx:496 msgid "Change the status of stock items" msgstr "" -#: src/tables/stock/StockItemTable.tsx:498 +#: src/tables/stock/StockItemTable.tsx:503 msgid "Merge stock" msgstr "" -#: src/tables/stock/StockItemTable.tsx:500 +#: src/tables/stock/StockItemTable.tsx:505 msgid "Merge stock items" msgstr "" -#: src/tables/stock/StockItemTable.tsx:509 -#: src/tables/stock/StockItemTable.tsx:516 +#: src/tables/stock/StockItemTable.tsx:514 +#: src/tables/stock/StockItemTable.tsx:521 msgid "Order new stock" msgstr "" -#: src/tables/stock/StockItemTable.tsx:514 +#: src/tables/stock/StockItemTable.tsx:519 msgid "Assign to customer" msgstr "" -#: src/tables/stock/StockItemTable.tsx:523 +#: src/tables/stock/StockItemTable.tsx:528 msgid "Delete stock" msgstr "" -#: src/tables/stock/StockItemTable.tsx:525 -msgid "Delete stock items" -msgstr "" +#: src/tables/stock/StockItemTable.tsx:528 +#~ msgid "Delete stock items" +#~ msgstr "Delete stock items" -#: src/tables/stock/StockItemTestResultTable.tsx:131 +#: src/tables/stock/StockItemTestResultTable.tsx:137 msgid "Test" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:157 +#: src/tables/stock/StockItemTestResultTable.tsx:163 msgid "Test result for installed stock item" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:168 -msgid "Result" -msgstr "" - -#: src/tables/stock/StockItemTestResultTable.tsx:190 +#: src/tables/stock/StockItemTestResultTable.tsx:196 msgid "Attachment" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:206 +#: src/tables/stock/StockItemTestResultTable.tsx:212 msgid "Test station" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:226 +#: src/tables/stock/StockItemTestResultTable.tsx:234 msgid "Finished" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:268 -#: src/tables/stock/StockItemTestResultTable.tsx:339 +#: src/tables/stock/StockItemTestResultTable.tsx:286 +#: src/tables/stock/StockItemTestResultTable.tsx:357 msgid "Edit Test Result" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:270 +#: src/tables/stock/StockItemTestResultTable.tsx:288 msgid "Test result updated" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:276 -#: src/tables/stock/StockItemTestResultTable.tsx:348 +#: src/tables/stock/StockItemTestResultTable.tsx:294 +#: src/tables/stock/StockItemTestResultTable.tsx:366 msgid "Delete Test Result" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:278 +#: src/tables/stock/StockItemTestResultTable.tsx:296 msgid "Test result deleted" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:292 +#: src/tables/stock/StockItemTestResultTable.tsx:310 msgid "Test Passed" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:293 +#: src/tables/stock/StockItemTestResultTable.tsx:311 msgid "Test result has been recorded" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:300 +#: src/tables/stock/StockItemTestResultTable.tsx:318 msgid "Failed to record test result" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:317 +#: src/tables/stock/StockItemTestResultTable.tsx:335 msgid "Pass Test" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:366 +#: src/tables/stock/StockItemTestResultTable.tsx:384 msgid "Show results for required tests" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:370 +#: src/tables/stock/StockItemTestResultTable.tsx:388 msgid "Include Installed" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:371 +#: src/tables/stock/StockItemTestResultTable.tsx:389 msgid "Show results for installed stock items" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:375 -#: src/tables/stock/TestStatisticsTable.tsx:74 +#: src/tables/stock/StockItemTestResultTable.tsx:393 +#: src/tables/stock/TestStatisticsTable.tsx:62 msgid "Passed" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:376 +#: src/tables/stock/StockItemTestResultTable.tsx:394 msgid "Show only passed tests" msgstr "" @@ -7922,28 +9179,32 @@ msgid "Filter by location type" msgstr "" #: src/tables/stock/StockLocationTable.tsx:107 -#: src/tables/stock/StockLocationTable.tsx:133 +#: src/tables/stock/StockLocationTable.tsx:134 msgid "Add Stock Location" msgstr "" -#: src/tables/stock/StockTrackingTable.tsx:64 +#: src/tables/stock/StockTrackingTable.tsx:68 msgid "Added" msgstr "" -#: src/tables/stock/StockTrackingTable.tsx:69 +#: src/tables/stock/StockTrackingTable.tsx:73 msgid "Removed" msgstr "" #: src/tables/stock/StockTrackingTable.tsx:198 +msgid "Details" +msgstr "" + +#: src/tables/stock/StockTrackingTable.tsx:213 msgid "No user information" msgstr "" -#: src/tables/stock/TestStatisticsTable.tsx:46 -#: src/tables/stock/TestStatisticsTable.tsx:76 +#: src/tables/stock/TestStatisticsTable.tsx:34 +#: src/tables/stock/TestStatisticsTable.tsx:64 msgid "Total" msgstr "" -#: src/tables/stock/TestStatisticsTable.tsx:75 +#: src/tables/stock/TestStatisticsTable.tsx:63 msgid "Failed" msgstr "" diff --git a/src/frontend/src/locales/lt/messages.d.ts b/src/frontend/src/locales/lt/messages.d.ts new file mode 100644 index 0000000000..1c1427cb3a --- /dev/null +++ b/src/frontend/src/locales/lt/messages.d.ts @@ -0,0 +1,4 @@ +import { Messages } from '@lingui/core'; + declare const messages: Messages; + export { messages }; + \ No newline at end of file diff --git a/src/frontend/src/locales/lt/messages.po b/src/frontend/src/locales/lt/messages.po new file mode 100644 index 0000000000..2c7f107989 --- /dev/null +++ b/src/frontend/src/locales/lt/messages.po @@ -0,0 +1,9226 @@ +msgid "" +msgstr "" +"POT-Creation-Date: 2023-06-09 22:10+0200\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: @lingui/cli\n" +"Language: lt\n" +"Project-Id-Version: inventree\n" +"Report-Msgid-Bugs-To: \n" +"PO-Revision-Date: 2024-11-04 03:14\n" +"Last-Translator: \n" +"Language-Team: Lithuanian\n" +"Plural-Forms: nplurals=4; plural=(n%10==1 && (n%100>19 || n%100<11) ? 0 : (n%10>=2 && n%10<=9) && (n%100>19 || n%100<11) ? 1 : n%1!=0 ? 2: 3);\n" +"X-Crowdin-Project: inventree\n" +"X-Crowdin-Project-ID: 452300\n" +"X-Crowdin-Language: lt\n" +"X-Crowdin-File: /src/frontend/src/locales/en/messages.po\n" +"X-Crowdin-File-ID: 252\n" + +#: src/components/Boundary.tsx:12 +msgid "Error rendering component" +msgstr "" + +#: src/components/Boundary.tsx:14 +msgid "An error occurred while rendering this component. Refer to the console for more information." +msgstr "" + +#: src/components/DashboardItemProxy.tsx:34 +#~ msgid "Title" +#~ msgstr "Title" + +#: src/components/buttons/AdminButton.tsx:80 +msgid "Open in admin interface" +msgstr "" + +#: src/components/buttons/CopyButton.tsx:18 +#~ msgid "Copy to clipboard" +#~ msgstr "Copy to clipboard" + +#: src/components/buttons/CopyButton.tsx:29 +msgid "Copied" +msgstr "" + +#: src/components/buttons/CopyButton.tsx:29 +msgid "Copy" +msgstr "" + +#: src/components/buttons/PrintingActions.tsx:97 +msgid "Print Label" +msgstr "" + +#: src/components/buttons/PrintingActions.tsx:103 +msgid "Print" +msgstr "" + +#: src/components/buttons/PrintingActions.tsx:104 +msgid "Label printing completed successfully" +msgstr "" + +#: src/components/buttons/PrintingActions.tsx:110 +#: src/components/buttons/PrintingActions.tsx:148 +#: src/components/editors/NotesEditor.tsx:73 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:154 +#: src/components/forms/fields/ApiFormField.tsx:328 +#: src/components/forms/fields/TableField.tsx:43 +#: src/components/importer/ImportDataSelector.tsx:187 +#: src/components/importer/ImporterColumnSelector.tsx:210 +#: src/components/modals/LicenseModal.tsx:75 +#: src/components/nav/SearchDrawer.tsx:458 +#: src/components/render/ModelType.tsx:290 +#: src/pages/ErrorPage.tsx:11 +#: src/pages/part/PartPricingPanel.tsx:71 +#: src/tables/InvenTreeTable.tsx:481 +#: src/tables/bom/BomTable.tsx:450 +#: src/tables/stock/StockItemTestResultTable.tsx:317 +msgid "Error" +msgstr "" + +#: src/components/buttons/PrintingActions.tsx:111 +msgid "The label could not be generated" +msgstr "" + +#: src/components/buttons/PrintingActions.tsx:126 +msgid "Print Report" +msgstr "" + +#: src/components/buttons/PrintingActions.tsx:142 +msgid "Generate" +msgstr "" + +#: src/components/buttons/PrintingActions.tsx:143 +msgid "Report printing completed successfully" +msgstr "" + +#: src/components/buttons/PrintingActions.tsx:149 +msgid "The report could not be generated" +msgstr "" + +#: src/components/buttons/PrintingActions.tsx:177 +msgid "Printing Actions" +msgstr "" + +#: src/components/buttons/PrintingActions.tsx:182 +msgid "Print Labels" +msgstr "" + +#: src/components/buttons/PrintingActions.tsx:188 +msgid "Print Reports" +msgstr "" + +#: src/components/buttons/RemoveRowButton.tsx:8 +msgid "Remove this row" +msgstr "" + +#: src/components/buttons/ScanButton.tsx:15 +#: src/components/nav/NavigationDrawer.tsx:117 +#: src/forms/PurchaseOrderForms.tsx:379 +#: src/forms/PurchaseOrderForms.tsx:473 +msgid "Scan Barcode" +msgstr "" + +#: src/components/buttons/ScanButton.tsx:15 +#~ msgid "Scan QR code" +#~ msgstr "Scan QR code" + +#: src/components/buttons/ScanButton.tsx:20 +msgid "Open Barcode Scanner" +msgstr "" + +#: src/components/buttons/ScanButton.tsx:20 +#~ msgid "Open QR code scanner" +#~ msgstr "Open QR code scanner" + +#: src/components/buttons/SpotlightButton.tsx:14 +msgid "Open spotlight" +msgstr "" + +#: src/components/buttons/YesNoButton.tsx:16 +msgid "Pass" +msgstr "" + +#: src/components/buttons/YesNoButton.tsx:17 +msgid "Fail" +msgstr "" + +#: src/components/buttons/YesNoButton.tsx:33 +#: src/tables/Filter.tsx:61 +msgid "Yes" +msgstr "" + +#: src/components/buttons/YesNoButton.tsx:33 +#: src/tables/Filter.tsx:62 +msgid "No" +msgstr "" + +#: src/components/dashboard/DashboardLayout.tsx:286 +msgid "No Widgets Selected" +msgstr "" + +#: src/components/dashboard/DashboardLayout.tsx:289 +msgid "Use the menu to add widgets to the dashboard" +msgstr "" + +#: src/components/dashboard/DashboardMenu.tsx:59 +#: src/components/dashboard/DashboardMenu.tsx:126 +msgid "Accept Layout" +msgstr "" + +#: src/components/dashboard/DashboardMenu.tsx:91 +#: src/components/nav/NavigationDrawer.tsx:71 +#: src/defaults/actions.tsx:17 +#: src/defaults/links.tsx:9 +#: src/pages/Index/Settings/UserSettings.tsx:47 +msgid "Dashboard" +msgstr "" + +#: src/components/dashboard/DashboardMenu.tsx:99 +msgid "Edit Layout" +msgstr "" + +#: src/components/dashboard/DashboardMenu.tsx:108 +msgid "Add Widget" +msgstr "" + +#: src/components/dashboard/DashboardMenu.tsx:117 +msgid "Remove Widgets" +msgstr "" + +#: src/components/dashboard/DashboardWidget.tsx:65 +msgid "Remove this widget from the dashboard" +msgstr "" + +#: src/components/dashboard/DashboardWidgetDrawer.tsx:77 +msgid "Filter dashboard widgets" +msgstr "" + +#: src/components/dashboard/DashboardWidgetDrawer.tsx:98 +msgid "Add this widget to the dashboard" +msgstr "" + +#: src/components/dashboard/DashboardWidgetDrawer.tsx:123 +msgid "No Widgets Available" +msgstr "" + +#: src/components/dashboard/DashboardWidgetDrawer.tsx:124 +msgid "There are no more widgets available for the dashboard" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:19 +msgid "Subscribed Parts" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:20 +msgid "Show the number of parts which you have subscribed to" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:26 +msgid "Subscribed Categories" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:27 +msgid "Show the number of part categories which you have subscribed to" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:35 +#: src/pages/part/PartSchedulingDetail.tsx:304 +#: src/tables/part/PartTable.tsx:238 +msgid "Low Stock" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:37 +msgid "Show the number of parts which are low on stock" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:43 +msgid "Expired Stock Items" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:45 +msgid "Show the number of stock items which have expired" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:51 +msgid "Stale Stock Items" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:53 +msgid "Show the number of stock items which are stale" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:59 +msgid "Active Build Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:61 +msgid "Show the number of build orders which are currently active" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:66 +msgid "Overdue Build Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:68 +msgid "Show the number of build orders which are overdue" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:73 +msgid "Assigned Build Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:75 +msgid "Show the number of build orders which are assigned to you" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:80 +msgid "Active Sales Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:82 +msgid "Show the number of sales orders which are currently active" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:87 +msgid "Overdue Sales Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:89 +msgid "Show the number of sales orders which are overdue" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:94 +msgid "Assigned Sales Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:96 +msgid "Show the number of sales orders which are assigned to you" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:101 +msgid "Active Purchase Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:103 +msgid "Show the number of purchase orders which are currently active" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:108 +msgid "Overdue Purchase Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:110 +msgid "Show the number of purchase orders which are overdue" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:115 +msgid "Assigned Purchase Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:117 +msgid "Show the number of purchase orders which are assigned to you" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:122 +msgid "Active Return Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:124 +msgid "Show the number of return orders which are currently active" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:129 +msgid "Overdue Return Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:131 +msgid "Show the number of return orders which are overdue" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:136 +msgid "Assigned Return Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:138 +msgid "Show the number of return orders which are assigned to you" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:149 +#: src/components/dashboard/widgets/GetStartedWidget.tsx:15 +#: src/defaults/links.tsx:38 +msgid "Getting Started" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:150 +#: src/defaults/links.tsx:41 +msgid "Getting started with InvenTree" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:157 +#: src/components/dashboard/widgets/NewsWidget.tsx:123 +msgid "News Updates" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:158 +msgid "The latest news from InvenTree" +msgstr "" + +#: src/components/dashboard/widgets/ColorToggleWidget.tsx:18 +#: src/components/nav/MainMenu.tsx:77 +msgid "Change Color Mode" +msgstr "" + +#: src/components/dashboard/widgets/ColorToggleWidget.tsx:23 +msgid "Change the color mode of the user interface" +msgstr "" + +#: src/components/dashboard/widgets/LanguageSelectWidget.tsx:18 +msgid "Change Language" +msgstr "" + +#: src/components/dashboard/widgets/LanguageSelectWidget.tsx:23 +msgid "Change the language of the user interface" +msgstr "" + +#: src/components/dashboard/widgets/NewsWidget.tsx:61 +#: src/components/nav/NotificationDrawer.tsx:88 +#: src/pages/Notifications.tsx:73 +msgid "Mark as read" +msgstr "" + +#: src/components/dashboard/widgets/NewsWidget.tsx:115 +msgid "Requires Superuser" +msgstr "" + +#: src/components/dashboard/widgets/NewsWidget.tsx:116 +msgid "This widget requires superuser permissions" +msgstr "" + +#: src/components/dashboard/widgets/NewsWidget.tsx:133 +msgid "No News" +msgstr "" + +#: src/components/dashboard/widgets/NewsWidget.tsx:134 +msgid "There are no unread news items" +msgstr "" + +#: src/components/details/Details.tsx:300 +msgid "No name defined" +msgstr "" + +#: src/components/details/DetailsImage.tsx:69 +msgid "Remove Image" +msgstr "" + +#: src/components/details/DetailsImage.tsx:72 +msgid "Remove the associated image from this item?" +msgstr "" + +#: src/components/details/DetailsImage.tsx:75 +#: src/forms/StockForms.tsx:651 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:199 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:306 +#: src/pages/stock/StockDetail.tsx:690 +msgid "Remove" +msgstr "" + +#: src/components/details/DetailsImage.tsx:75 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:184 +#: src/components/items/ActionDropdown.tsx:268 +#: src/components/items/ActionDropdown.tsx:269 +#: src/contexts/ThemeContext.tsx:45 +#: src/hooks/UseForm.tsx:40 +#: src/tables/FilterSelectDrawer.tsx:241 +#: src/tables/RowActions.tsx:59 +#: src/tables/build/BuildOutputTable.tsx:434 +msgid "Cancel" +msgstr "" + +#: src/components/details/DetailsImage.tsx:101 +msgid "Drag and drop to upload" +msgstr "" + +#: src/components/details/DetailsImage.tsx:104 +msgid "Click to select file(s)" +msgstr "" + +#: src/components/details/DetailsImage.tsx:230 +msgid "Clear" +msgstr "" + +#: src/components/details/DetailsImage.tsx:236 +#: src/components/forms/ApiForm.tsx:660 +#: src/contexts/ThemeContext.tsx:45 +msgid "Submit" +msgstr "" + +#: src/components/details/DetailsImage.tsx:280 +msgid "Select from existing images" +msgstr "" + +#: src/components/details/DetailsImage.tsx:288 +msgid "Select Image" +msgstr "" + +#: src/components/details/DetailsImage.tsx:304 +msgid "Download remote image" +msgstr "" + +#: src/components/details/DetailsImage.tsx:319 +msgid "Upload new image" +msgstr "" + +#: src/components/details/DetailsImage.tsx:326 +msgid "Upload Image" +msgstr "" + +#: src/components/details/DetailsImage.tsx:339 +msgid "Delete image" +msgstr "" + +#: src/components/details/DetailsImage.tsx:373 +msgid "Download Image" +msgstr "" + +#: src/components/details/DetailsImage.tsx:378 +msgid "Image downloaded successfully" +msgstr "" + +#: src/components/details/PartIcons.tsx:43 +#~ msgid "Part is a template part (variants can be made from this part)" +#~ msgstr "Part is a template part (variants can be made from this part)" + +#: src/components/details/PartIcons.tsx:49 +#~ msgid "Part can be assembled from other parts" +#~ msgstr "Part can be assembled from other parts" + +#: src/components/details/PartIcons.tsx:55 +#~ msgid "Part can be used in assemblies" +#~ msgstr "Part can be used in assemblies" + +#: src/components/details/PartIcons.tsx:61 +#~ msgid "Part stock is tracked by serial number" +#~ msgstr "Part stock is tracked by serial number" + +#: src/components/details/PartIcons.tsx:67 +#~ msgid "Part can be purchased from external suppliers" +#~ msgstr "Part can be purchased from external suppliers" + +#: src/components/details/PartIcons.tsx:73 +#~ msgid "Part can be sold to customers" +#~ msgstr "Part can be sold to customers" + +#: src/components/details/PartIcons.tsx:78 +#~ msgid "Part is virtual (not a physical part)" +#~ msgstr "Part is virtual (not a physical part)" + +#: src/components/editors/NotesEditor.tsx:74 +msgid "Image upload failed" +msgstr "" + +#: src/components/editors/NotesEditor.tsx:83 +#: src/components/editors/NotesEditor.tsx:119 +#: src/components/forms/ApiForm.tsx:475 +#: src/tables/bom/BomTable.tsx:441 +msgid "Success" +msgstr "" + +#: src/components/editors/NotesEditor.tsx:84 +msgid "Image uploaded successfully" +msgstr "" + +#: src/components/editors/NotesEditor.tsx:120 +msgid "Notes saved successfully" +msgstr "" + +#: src/components/editors/NotesEditor.tsx:131 +msgid "Failed to save notes" +msgstr "" + +#: src/components/editors/NotesEditor.tsx:134 +msgid "Error Saving Notes" +msgstr "" + +#: src/components/editors/NotesEditor.tsx:151 +#~ msgid "Disable Editing" +#~ msgstr "Disable Editing" + +#: src/components/editors/NotesEditor.tsx:154 +msgid "Save Notes" +msgstr "" + +#: src/components/editors/NotesEditor.tsx:173 +msgid "Close Editor" +msgstr "" + +#: src/components/editors/NotesEditor.tsx:180 +msgid "Enable Editing" +msgstr "" + +#: src/components/editors/NotesEditor.tsx:198 +#~ msgid "Preview Notes" +#~ msgstr "Preview Notes" + +#: src/components/editors/NotesEditor.tsx:198 +#~ msgid "Edit Notes" +#~ msgstr "Edit Notes" + +#: src/components/editors/TemplateEditor/CodeEditor/index.tsx:9 +msgid "Code" +msgstr "" + +#: src/components/editors/TemplateEditor/PdfPreview/PdfPreview.tsx:44 +#~ msgid "Failed to parse error response from server." +#~ msgstr "Failed to parse error response from server." + +#: src/components/editors/TemplateEditor/PdfPreview/PdfPreview.tsx:81 +msgid "Preview not available, click \"Reload Preview\"." +msgstr "" + +#: src/components/editors/TemplateEditor/PdfPreview/index.tsx:9 +msgid "PDF Preview" +msgstr "" + +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:115 +msgid "Error loading template" +msgstr "" + +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:127 +msgid "Error saving template" +msgstr "" + +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:151 +#~ msgid "Save & Reload preview?" +#~ msgstr "Save & Reload preview?" + +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:155 +msgid "Could not load the template from the server." +msgstr "" + +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:172 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:303 +msgid "Save & Reload Preview" +msgstr "" + +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:177 +msgid "Are you sure you want to Save & Reload the preview?" +msgstr "" + +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:179 +msgid "To render the preview the current template needs to be replaced on the server with your modifications which may break the label if it is under active use. Do you want to proceed?" +msgstr "" + +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:183 +msgid "Save & Reload" +msgstr "" + +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:215 +msgid "Preview updated" +msgstr "" + +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:216 +msgid "The preview has been updated successfully." +msgstr "" + +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:263 +#~ msgid "Save & Reload preview" +#~ msgstr "Save & Reload preview" + +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:295 +msgid "Reload preview" +msgstr "" + +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:296 +msgid "Use the currently stored template from the server" +msgstr "" + +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:304 +msgid "Save the current template and reload the preview" +msgstr "" + +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:322 +#~ msgid "to preview" +#~ msgstr "to preview" + +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:365 +msgid "Select instance to preview" +msgstr "" + +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:409 +msgid "Error rendering template" +msgstr "" + +#: src/components/errors/ClientError.tsx:23 +msgid "Client Error" +msgstr "" + +#: src/components/errors/ClientError.tsx:24 +msgid "Client error occurred" +msgstr "" + +#: src/components/errors/GenericErrorPage.tsx:50 +msgid "Status Code" +msgstr "" + +#: src/components/errors/GenericErrorPage.tsx:63 +msgid "Return to the index page" +msgstr "" + +#: src/components/errors/NotAuthenticated.tsx:8 +msgid "Not Authenticated" +msgstr "" + +#: src/components/errors/NotAuthenticated.tsx:9 +msgid "You are not logged in." +msgstr "" + +#: src/components/errors/NotFound.tsx:8 +msgid "Page Not Found" +msgstr "" + +#: src/components/errors/NotFound.tsx:9 +msgid "This page does not exist" +msgstr "" + +#: src/components/errors/PermissionDenied.tsx:8 +#: src/functions/notifications.tsx:24 +msgid "Permission Denied" +msgstr "" + +#: src/components/errors/PermissionDenied.tsx:9 +msgid "You do not have permission to view this page." +msgstr "" + +#: src/components/errors/ServerError.tsx:8 +msgid "Server Error" +msgstr "" + +#: src/components/errors/ServerError.tsx:9 +msgid "A server error occurred" +msgstr "" + +#: src/components/forms/ApiForm.tsx:154 +#: src/components/forms/ApiForm.tsx:579 +msgid "Form Error" +msgstr "" + +#: src/components/forms/ApiForm.tsx:487 +#~ msgid "Form Errors Exist" +#~ msgstr "Form Errors Exist" + +#: src/components/forms/ApiForm.tsx:587 +msgid "Errors exist for one or more form fields" +msgstr "" + +#: src/components/forms/ApiForm.tsx:698 +#: src/tables/plugin/PluginListTable.tsx:195 +msgid "Update" +msgstr "" + +#: src/components/forms/ApiForm.tsx:718 +#: src/components/items/ActionDropdown.tsx:248 +#: src/hooks/UseForm.tsx:122 +#: src/pages/Index/Scan.tsx:357 +#: src/pages/Notifications.tsx:123 +#: src/tables/RowActions.tsx:49 +#: src/tables/plugin/PluginListTable.tsx:232 +msgid "Delete" +msgstr "" + +#: src/components/forms/AuthenticationForm.tsx:48 +#: src/components/forms/AuthenticationForm.tsx:74 +#: src/functions/auth.tsx:83 +#~ msgid "Check your your input and try again." +#~ msgstr "Check your your input and try again." + +#: src/components/forms/AuthenticationForm.tsx:52 +#~ msgid "Welcome back!" +#~ msgstr "Welcome back!" + +#: src/components/forms/AuthenticationForm.tsx:53 +#~ msgid "Login successfull" +#~ msgstr "Login successfull" + +#: src/components/forms/AuthenticationForm.tsx:55 +msgid "Login successful" +msgstr "" + +#: src/components/forms/AuthenticationForm.tsx:56 +msgid "Logged in successfully" +msgstr "" + +#: src/components/forms/AuthenticationForm.tsx:61 +msgid "Login failed" +msgstr "" + +#: src/components/forms/AuthenticationForm.tsx:62 +#: src/components/forms/AuthenticationForm.tsx:79 +#: src/components/forms/AuthenticationForm.tsx:214 +#: src/functions/auth.tsx:175 +msgid "Check your input and try again." +msgstr "" + +#: src/components/forms/AuthenticationForm.tsx:65 +#: src/functions/auth.tsx:74 +#~ msgid "Mail delivery successfull" +#~ msgstr "Mail delivery successfull" + +#: src/components/forms/AuthenticationForm.tsx:73 +#: src/functions/auth.tsx:166 +msgid "Mail delivery successful" +msgstr "" + +#: src/components/forms/AuthenticationForm.tsx:74 +msgid "Check your inbox for the login link. If you have an account, you will receive a login link. Check in spam too." +msgstr "" + +#: src/components/forms/AuthenticationForm.tsx:78 +msgid "Mail delivery failed" +msgstr "" + +#: src/components/forms/AuthenticationForm.tsx:98 +msgid "Or continue with other methods" +msgstr "" + +#: src/components/forms/AuthenticationForm.tsx:109 +#: src/components/forms/AuthenticationForm.tsx:230 +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:67 +msgid "Username" +msgstr "" + +#: src/components/forms/AuthenticationForm.tsx:110 +#: src/components/forms/AuthenticationForm.tsx:231 +msgid "Your username" +msgstr "" + +#: src/components/forms/AuthenticationForm.tsx:115 +#: src/components/forms/AuthenticationForm.tsx:243 +#: src/pages/Auth/Set-Password.tsx:101 +msgid "Password" +msgstr "" + +#: src/components/forms/AuthenticationForm.tsx:116 +#: src/components/forms/AuthenticationForm.tsx:244 +msgid "Your password" +msgstr "" + +#: src/components/forms/AuthenticationForm.tsx:128 +#: src/pages/Auth/Reset.tsx:26 +msgid "Reset password" +msgstr "" + +#: src/components/forms/AuthenticationForm.tsx:131 +#~ msgid "Log in" +#~ msgstr "Log in" + +#: src/components/forms/AuthenticationForm.tsx:136 +#~ msgid "I will use username and password" +#~ msgstr "I will use username and password" + +#: src/components/forms/AuthenticationForm.tsx:137 +#: src/components/forms/AuthenticationForm.tsx:236 +#: src/pages/Auth/Reset.tsx:31 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:51 +msgid "Email" +msgstr "" + +#: src/components/forms/AuthenticationForm.tsx:138 +#: src/pages/Auth/Reset.tsx:32 +#: src/pages/Auth/Set-Password.tsx:102 +msgid "We will send you a link to login - if you are registered" +msgstr "" + +#: src/components/forms/AuthenticationForm.tsx:154 +msgid "Send me an email" +msgstr "" + +#: src/components/forms/AuthenticationForm.tsx:156 +msgid "Use username and password" +msgstr "" + +#: src/components/forms/AuthenticationForm.tsx:165 +msgid "Log In" +msgstr "" + +#: src/components/forms/AuthenticationForm.tsx:167 +#: src/pages/Auth/Reset.tsx:41 +#: src/pages/Auth/Set-Password.tsx:107 +msgid "Send Email" +msgstr "" + +#: src/components/forms/AuthenticationForm.tsx:196 +msgid "Registration successful" +msgstr "" + +#: src/components/forms/AuthenticationForm.tsx:197 +msgid "Please confirm your email address to complete the registration" +msgstr "" + +#: src/components/forms/AuthenticationForm.tsx:213 +msgid "Input error" +msgstr "" + +#: src/components/forms/AuthenticationForm.tsx:237 +msgid "This will be used for a confirmation" +msgstr "" + +#: src/components/forms/AuthenticationForm.tsx:249 +msgid "Password repeat" +msgstr "" + +#: src/components/forms/AuthenticationForm.tsx:250 +msgid "Repeat password" +msgstr "" + +#: src/components/forms/AuthenticationForm.tsx:262 +#: src/components/forms/AuthenticationForm.tsx:307 +msgid "Register" +msgstr "" + +#: src/components/forms/AuthenticationForm.tsx:268 +msgid "Or use SSO" +msgstr "" + +#: src/components/forms/AuthenticationForm.tsx:299 +msgid "Don't have an account?" +msgstr "" + +#: src/components/forms/AuthenticationForm.tsx:318 +msgid "Go back to login" +msgstr "" + +#: src/components/forms/HostOptionsForm.tsx:36 +#: src/components/forms/HostOptionsForm.tsx:67 +msgid "Host" +msgstr "" + +#: src/components/forms/HostOptionsForm.tsx:42 +#: src/components/forms/HostOptionsForm.tsx:70 +#: src/components/plugins/PluginDrawer.tsx:69 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:410 +#: src/pages/Index/Settings/AdminCenter/UnitManagmentPanel.tsx:19 +#: src/pages/part/CategoryDetail.tsx:81 +#: src/pages/part/PartDetail.tsx:164 +#: src/pages/stock/LocationDetail.tsx:83 +#: src/tables/machine/MachineTypeTable.tsx:70 +#: src/tables/machine/MachineTypeTable.tsx:119 +#: src/tables/machine/MachineTypeTable.tsx:237 +#: src/tables/machine/MachineTypeTable.tsx:340 +#: src/tables/plugin/PluginErrorTable.tsx:33 +#: src/tables/purchasing/ManufacturerPartParameterTable.tsx:32 +#: src/tables/settings/GroupTable.tsx:147 +#: src/tables/settings/PendingTasksTable.tsx:32 +#: src/tables/stock/LocationTypesTable.tsx:69 +msgid "Name" +msgstr "" + +#: src/components/forms/HostOptionsForm.tsx:75 +msgid "No one here..." +msgstr "" + +#: src/components/forms/HostOptionsForm.tsx:86 +msgid "Add Host" +msgstr "" + +#: src/components/forms/HostOptionsForm.tsx:90 +msgid "Save" +msgstr "" + +#: src/components/forms/InstanceOptions.tsx:43 +msgid "Select destination instance" +msgstr "" + +#: src/components/forms/InstanceOptions.tsx:71 +msgid "Edit possible host options" +msgstr "" + +#: src/components/forms/InstanceOptions.tsx:98 +msgid "Version: {0}" +msgstr "" + +#: src/components/forms/InstanceOptions.tsx:100 +msgid "API:{0}" +msgstr "" + +#: src/components/forms/InstanceOptions.tsx:102 +msgid "Name: {0}" +msgstr "" + +#: src/components/forms/InstanceOptions.tsx:104 +msgid "State: <0>worker ({0}), <1>plugins{1}" +msgstr "" + +#: src/components/forms/fields/IconField.tsx:81 +msgid "No icon selected" +msgstr "" + +#: src/components/forms/fields/IconField.tsx:159 +msgid "Uncategorized" +msgstr "" + +#: src/components/forms/fields/IconField.tsx:209 +#: src/components/nav/Layout.tsx:77 +#: src/tables/part/PartThumbTable.tsx:192 +msgid "Search..." +msgstr "" + +#: src/components/forms/fields/IconField.tsx:223 +msgid "Select category" +msgstr "" + +#: src/components/forms/fields/IconField.tsx:232 +msgid "Select pack" +msgstr "" + +#: src/components/forms/fields/IconField.tsx:237 +msgid "{0} icons" +msgstr "" + +#: src/components/forms/fields/RelatedModelField.tsx:319 +#: src/pages/Index/Settings/UserSettings.tsx:97 +#: src/tables/Search.tsx:23 +msgid "Search" +msgstr "" + +#: src/components/forms/fields/RelatedModelField.tsx:320 +#: src/components/modals/AboutInvenTreeModal.tsx:81 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:316 +msgid "Loading" +msgstr "" + +#: src/components/forms/fields/RelatedModelField.tsx:322 +msgid "No results found" +msgstr "" + +#: src/components/forms/fields/TableField.tsx:72 +#~ msgid "modelRenderer entry required for tables" +#~ msgstr "modelRenderer entry required for tables" + +#: src/components/forms/fields/TableField.tsx:167 +msgid "No entries available" +msgstr "" + +#: src/components/images/DetailsImage.tsx:252 +#~ msgid "Select image" +#~ msgstr "Select image" + +#: src/components/images/Thumbnail.tsx:12 +msgid "Thumbnail" +msgstr "" + +#: src/components/importer/ImportDataSelector.tsx:170 +msgid "Importing Rows" +msgstr "" + +#: src/components/importer/ImportDataSelector.tsx:171 +msgid "Please wait while the data is imported" +msgstr "" + +#: src/components/importer/ImportDataSelector.tsx:188 +msgid "An error occurred while importing data" +msgstr "" + +#: src/components/importer/ImportDataSelector.tsx:209 +msgid "Edit Data" +msgstr "" + +#: src/components/importer/ImportDataSelector.tsx:237 +msgid "Delete Row" +msgstr "" + +#: src/components/importer/ImportDataSelector.tsx:267 +msgid "Row" +msgstr "" + +#: src/components/importer/ImportDataSelector.tsx:285 +msgid "Row contains errors" +msgstr "" + +#: src/components/importer/ImportDataSelector.tsx:326 +msgid "Accept" +msgstr "" + +#: src/components/importer/ImportDataSelector.tsx:359 +msgid "Valid" +msgstr "" + +#: src/components/importer/ImportDataSelector.tsx:360 +msgid "Filter by row validation status" +msgstr "" + +#: src/components/importer/ImportDataSelector.tsx:365 +#: src/tables/build/BuildOutputTable.tsx:407 +msgid "Complete" +msgstr "" + +#: src/components/importer/ImportDataSelector.tsx:366 +msgid "Filter by row completion status" +msgstr "" + +#: src/components/importer/ImportDataSelector.tsx:384 +msgid "Import selected rows" +msgstr "" + +#: src/components/importer/ImportDataSelector.tsx:399 +msgid "Processing Data" +msgstr "" + +#: src/components/importer/ImporterColumnSelector.tsx:53 +#: src/components/importer/ImporterColumnSelector.tsx:179 +#: src/components/items/ErrorItem.tsx:12 +msgid "An error occurred" +msgstr "" + +#: src/components/importer/ImporterColumnSelector.tsx:65 +msgid "Select column, or leave blank to ignore this field." +msgstr "" + +#: src/components/importer/ImporterColumnSelector.tsx:91 +#~ msgid "Select a column from the data file" +#~ msgstr "Select a column from the data file" + +#: src/components/importer/ImporterColumnSelector.tsx:104 +#~ msgid "Map data columns to database fields" +#~ msgstr "Map data columns to database fields" + +#: src/components/importer/ImporterColumnSelector.tsx:119 +#~ msgid "Imported Column Name" +#~ msgstr "Imported Column Name" + +#: src/components/importer/ImporterColumnSelector.tsx:185 +msgid "Ignore this field" +msgstr "" + +#: src/components/importer/ImporterColumnSelector.tsx:199 +msgid "Mapping data columns to database fields" +msgstr "" + +#: src/components/importer/ImporterColumnSelector.tsx:204 +msgid "Accept Column Mapping" +msgstr "" + +#: src/components/importer/ImporterColumnSelector.tsx:217 +msgid "Database Field" +msgstr "" + +#: src/components/importer/ImporterColumnSelector.tsx:218 +msgid "Field Description" +msgstr "" + +#: src/components/importer/ImporterColumnSelector.tsx:219 +msgid "Imported Column" +msgstr "" + +#: src/components/importer/ImporterColumnSelector.tsx:220 +msgid "Default Value" +msgstr "" + +#: src/components/importer/ImporterDrawer.tsx:46 +msgid "Upload File" +msgstr "" + +#: src/components/importer/ImporterDrawer.tsx:47 +msgid "Map Columns" +msgstr "" + +#: src/components/importer/ImporterDrawer.tsx:48 +msgid "Import Data" +msgstr "" + +#: src/components/importer/ImporterDrawer.tsx:49 +msgid "Process Data" +msgstr "" + +#: src/components/importer/ImporterDrawer.tsx:50 +msgid "Complete Import" +msgstr "" + +#: src/components/importer/ImporterDrawer.tsx:97 +#~ msgid "Cancel import session" +#~ msgstr "Cancel import session" + +#: src/components/importer/ImporterDrawer.tsx:106 +msgid "Import Complete" +msgstr "" + +#: src/components/importer/ImporterDrawer.tsx:109 +msgid "Data has been imported successfully" +msgstr "" + +#: src/components/importer/ImporterDrawer.tsx:111 +#: src/components/importer/ImporterDrawer.tsx:120 +msgid "Close" +msgstr "" + +#: src/components/importer/ImporterDrawer.tsx:117 +msgid "Unknown Status" +msgstr "" + +#: src/components/importer/ImporterDrawer.tsx:118 +msgid "Import session has unknown status" +msgstr "" + +#: src/components/importer/ImporterDrawer.tsx:137 +msgid "Importing Data" +msgstr "" + +#: src/components/importer/ImporterImportProgress.tsx:36 +msgid "Importing Records" +msgstr "" + +#: src/components/importer/ImporterImportProgress.tsx:39 +#: src/tables/settings/ImportSessionTable.tsx:78 +msgid "Imported Rows" +msgstr "" + +#: src/components/importer/ImporterImportProgress.tsx:39 +#~ msgid "Imported rows" +#~ msgstr "Imported rows" + +#: src/components/items/ActionDropdown.tsx:126 +msgid "Options" +msgstr "" + +#: src/components/items/ActionDropdown.tsx:140 +#~ msgid "View Barcode" +#~ msgstr "View Barcode" + +#: src/components/items/ActionDropdown.tsx:162 +#: src/tables/InvenTreeTableHeader.tsx:159 +#: src/tables/InvenTreeTableHeader.tsx:160 +msgid "Barcode Actions" +msgstr "" + +#: src/components/items/ActionDropdown.tsx:162 +#~ msgid "Link custom barcode" +#~ msgstr "Link custom barcode" + +#: src/components/items/ActionDropdown.tsx:167 +msgid "View" +msgstr "" + +#: src/components/items/ActionDropdown.tsx:169 +msgid "View barcode" +msgstr "" + +#: src/components/items/ActionDropdown.tsx:175 +msgid "Link Barcode" +msgstr "" + +#: src/components/items/ActionDropdown.tsx:177 +msgid "Link a custom barcode to this item" +msgstr "" + +#: src/components/items/ActionDropdown.tsx:183 +#: src/components/items/QRCode.tsx:193 +#: src/forms/PurchaseOrderForms.tsx:464 +msgid "Unlink Barcode" +msgstr "" + +#: src/components/items/ActionDropdown.tsx:185 +msgid "Unlink custom barcode" +msgstr "" + +#: src/components/items/ActionDropdown.tsx:236 +#: src/tables/RowActions.tsx:39 +msgid "Edit" +msgstr "" + +#: src/components/items/ActionDropdown.tsx:237 +msgid "Edit item" +msgstr "" + +#: src/components/items/ActionDropdown.tsx:249 +msgid "Delete item" +msgstr "" + +#: src/components/items/ActionDropdown.tsx:257 +#: src/components/items/ActionDropdown.tsx:258 +msgid "Hold" +msgstr "" + +#: src/components/items/ActionDropdown.tsx:280 +#: src/tables/RowActions.tsx:29 +msgid "Duplicate" +msgstr "" + +#: src/components/items/ActionDropdown.tsx:281 +msgid "Duplicate item" +msgstr "" + +#: src/components/items/BarcodeInput.tsx:23 +msgid "Scan barcode data here using barcode scanner" +msgstr "" + +#: src/components/items/BarcodeInput.tsx:24 +#: src/tables/settings/BarcodeScanHistoryTable.tsx:65 +msgid "Barcode" +msgstr "" + +#: src/components/items/BarcodeInput.tsx:25 +msgid "Scan" +msgstr "" + +#: src/components/items/DocTooltip.tsx:92 +#: src/components/items/GettingStartedCarousel.tsx:20 +msgid "Read More" +msgstr "" + +#: src/components/items/ErrorItem.tsx:8 +#: src/tables/InvenTreeTable.tsx:473 +msgid "Unknown error" +msgstr "" + +#: src/components/items/ErrorItem.tsx:13 +#~ msgid "An error occurred:" +#~ msgstr "An error occurred:" + +#: src/components/items/GettingStartedCarousel.tsx:27 +#~ msgid "Read more" +#~ msgstr "Read more" + +#: src/components/items/InfoItem.tsx:27 +msgid "None" +msgstr "" + +#: src/components/items/InvenTreeLogo.tsx:23 +msgid "InvenTree Logo" +msgstr "" + +#: src/components/items/OnlyStaff.tsx:9 +#: src/components/modals/AboutInvenTreeModal.tsx:44 +msgid "This information is only available for staff users" +msgstr "" + +#: src/components/items/Placeholder.tsx:14 +msgid "This feature/button/site is a placeholder for a feature that is not implemented, only partial or intended for testing." +msgstr "" + +#: src/components/items/Placeholder.tsx:17 +msgid "PLH" +msgstr "" + +#: src/components/items/Placeholder.tsx:31 +msgid "This panel is a placeholder." +msgstr "" + +#: src/components/items/QRCode.tsx:89 +msgid "Low (7%)" +msgstr "" + +#: src/components/items/QRCode.tsx:90 +msgid "Medium (15%)" +msgstr "" + +#: src/components/items/QRCode.tsx:91 +msgid "Quartile (25%)" +msgstr "" + +#: src/components/items/QRCode.tsx:92 +msgid "High (30%)" +msgstr "" + +#: src/components/items/QRCode.tsx:100 +msgid "Custom barcode" +msgstr "" + +#: src/components/items/QRCode.tsx:101 +msgid "A custom barcode is registered for this item. The shown code is not that custom barcode." +msgstr "" + +#: src/components/items/QRCode.tsx:118 +msgid "Barcode Data:" +msgstr "" + +#: src/components/items/QRCode.tsx:129 +msgid "Select Error Correction Level" +msgstr "" + +#: src/components/items/QRCode.tsx:171 +#: src/pages/part/PartDetail.tsx:239 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:187 +#: src/pages/sales/ReturnOrderDetail.tsx:157 +#: src/pages/sales/SalesOrderDetail.tsx:169 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:166 +msgid "Link" +msgstr "" + +#: src/components/items/QRCode.tsx:190 +msgid "This will remove the link to the associated barcode" +msgstr "" + +#: src/components/modals/AboutInvenTreeModal.tsx:99 +msgid "Version Information" +msgstr "" + +#: src/components/modals/AboutInvenTreeModal.tsx:103 +msgid "Your InvenTree version status is" +msgstr "" + +#: src/components/modals/AboutInvenTreeModal.tsx:107 +msgid "Development Version" +msgstr "" + +#: src/components/modals/AboutInvenTreeModal.tsx:111 +msgid "Up to Date" +msgstr "" + +#: src/components/modals/AboutInvenTreeModal.tsx:115 +msgid "Update Available" +msgstr "" + +#: src/components/modals/AboutInvenTreeModal.tsx:125 +msgid "InvenTree Version" +msgstr "" + +#: src/components/modals/AboutInvenTreeModal.tsx:131 +msgid "Commit Hash" +msgstr "" + +#: src/components/modals/AboutInvenTreeModal.tsx:136 +msgid "Commit Date" +msgstr "" + +#: src/components/modals/AboutInvenTreeModal.tsx:141 +msgid "Commit Branch" +msgstr "" + +#: src/components/modals/AboutInvenTreeModal.tsx:146 +#: src/components/modals/ServerInfoModal.tsx:133 +msgid "API Version" +msgstr "" + +#: src/components/modals/AboutInvenTreeModal.tsx:149 +msgid "Python Version" +msgstr "" + +#: src/components/modals/AboutInvenTreeModal.tsx:152 +msgid "Django Version" +msgstr "" + +#: src/components/modals/AboutInvenTreeModal.tsx:162 +msgid "Links" +msgstr "" + +#: src/components/modals/AboutInvenTreeModal.tsx:168 +msgid "InvenTree Documentation" +msgstr "" + +#: src/components/modals/AboutInvenTreeModal.tsx:169 +msgid "View Code on GitHub" +msgstr "" + +#: src/components/modals/AboutInvenTreeModal.tsx:170 +msgid "Credits" +msgstr "" + +#: src/components/modals/AboutInvenTreeModal.tsx:171 +msgid "Mobile App" +msgstr "" + +#: src/components/modals/AboutInvenTreeModal.tsx:172 +msgid "Submit Bug Report" +msgstr "" + +#: src/components/modals/AboutInvenTreeModal.tsx:181 +msgid "Copy version information" +msgstr "" + +#: src/components/modals/AboutInvenTreeModal.tsx:189 +#: src/components/modals/ServerInfoModal.tsx:147 +msgid "Dismiss" +msgstr "" + +#: src/components/modals/LicenseModal.tsx:39 +msgid "No license text available" +msgstr "" + +#: src/components/modals/LicenseModal.tsx:46 +msgid "No Information provided - this is likely a server issue" +msgstr "" + +#: src/components/modals/LicenseModal.tsx:71 +msgid "Loading license information" +msgstr "" + +#: src/components/modals/LicenseModal.tsx:77 +msgid "Failed to fetch license information" +msgstr "" + +#: src/components/modals/LicenseModal.tsx:85 +msgid "{key} Packages" +msgstr "" + +#: src/components/modals/QrCodeModal.tsx:24 +msgid "Unknown response" +msgstr "" + +#: src/components/modals/QrCodeModal.tsx:39 +msgid "No scans yet!" +msgstr "" + +#: src/components/modals/QrCodeModal.tsx:57 +msgid "Close modal" +msgstr "" + +#: src/components/modals/ServerInfoModal.tsx:26 +#: src/pages/Index/Settings/SystemSettings.tsx:37 +msgid "Server" +msgstr "" + +#: src/components/modals/ServerInfoModal.tsx:32 +msgid "Instance Name" +msgstr "" + +#: src/components/modals/ServerInfoModal.tsx:38 +msgid "Database" +msgstr "" + +#: src/components/modals/ServerInfoModal.tsx:38 +#~ msgid "Bebug Mode" +#~ msgstr "Bebug Mode" + +#: src/components/modals/ServerInfoModal.tsx:47 +msgid "Debug Mode" +msgstr "" + +#: src/components/modals/ServerInfoModal.tsx:50 +msgid "Server is running in debug mode" +msgstr "" + +#: src/components/modals/ServerInfoModal.tsx:57 +msgid "Docker Mode" +msgstr "" + +#: src/components/modals/ServerInfoModal.tsx:60 +msgid "Server is deployed using docker" +msgstr "" + +#: src/components/modals/ServerInfoModal.tsx:66 +msgid "Plugin Support" +msgstr "" + +#: src/components/modals/ServerInfoModal.tsx:71 +msgid "Plugin support enabled" +msgstr "" + +#: src/components/modals/ServerInfoModal.tsx:73 +msgid "Plugin support disabled" +msgstr "" + +#: src/components/modals/ServerInfoModal.tsx:80 +msgid "Server status" +msgstr "" + +#: src/components/modals/ServerInfoModal.tsx:86 +msgid "Healthy" +msgstr "" + +#: src/components/modals/ServerInfoModal.tsx:88 +msgid "Issues detected" +msgstr "" + +#: src/components/modals/ServerInfoModal.tsx:97 +msgid "Background Worker" +msgstr "" + +#: src/components/modals/ServerInfoModal.tsx:101 +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:29 +msgid "Background worker not running" +msgstr "" + +#: src/components/modals/ServerInfoModal.tsx:109 +msgid "Email Settings" +msgstr "" + +#: src/components/modals/ServerInfoModal.tsx:113 +msgid "Email settings not configured" +msgstr "" + +#: src/components/modals/ServerInfoModal.tsx:121 +#: src/components/plugins/PluginDrawer.tsx:89 +#: src/tables/plugin/PluginListTable.tsx:116 +msgid "Version" +msgstr "" + +#: src/components/modals/ServerInfoModal.tsx:127 +msgid "Server Version" +msgstr "" + +#: src/components/nav/Layout.tsx:80 +msgid "Nothing found..." +msgstr "" + +#: src/components/nav/MainMenu.tsx:40 +#: src/pages/Index/Profile/Profile.tsx:15 +#~ msgid "Profile" +#~ msgstr "Profile" + +#: src/components/nav/MainMenu.tsx:52 +#: src/components/nav/NavigationDrawer.tsx:178 +#: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:28 +msgid "Settings" +msgstr "" + +#: src/components/nav/MainMenu.tsx:59 +#: src/pages/Index/Settings/UserSettings.tsx:152 +msgid "Account Settings" +msgstr "" + +#: src/components/nav/MainMenu.tsx:59 +#: src/defaults/menuItems.tsx:15 +#~ msgid "Account settings" +#~ msgstr "Account settings" + +#: src/components/nav/MainMenu.tsx:67 +#: src/components/nav/NavigationDrawer.tsx:141 +#: src/components/nav/SettingsHeader.tsx:49 +#: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:37 +#: src/pages/Index/Settings/SystemSettings.tsx:310 +msgid "System Settings" +msgstr "" + +#: src/components/nav/MainMenu.tsx:68 +#~ msgid "Current language {locale}" +#~ msgstr "Current language {locale}" + +#: src/components/nav/MainMenu.tsx:71 +#~ msgid "Switch to pseudo language" +#~ msgstr "Switch to pseudo language" + +#: src/components/nav/MainMenu.tsx:86 +#: src/components/nav/NavigationDrawer.tsx:148 +#: src/components/nav/SettingsHeader.tsx:50 +#: src/defaults/actions.tsx:63 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:251 +msgid "Admin Center" +msgstr "" + +#: src/components/nav/MainMenu.tsx:96 +msgid "Logout" +msgstr "" + +#: src/components/nav/NavHoverMenu.tsx:84 +#~ msgid "View all" +#~ msgstr "View all" + +#: src/components/nav/NavHoverMenu.tsx:100 +#: src/components/nav/NavHoverMenu.tsx:110 +#~ msgid "Get started" +#~ msgstr "Get started" + +#: src/components/nav/NavHoverMenu.tsx:103 +#~ msgid "Overview over high-level objects, functions and possible usecases." +#~ msgstr "Overview over high-level objects, functions and possible usecases." + +#: src/components/nav/NavigationDrawer.tsx:60 +#~ msgid "Pages" +#~ msgstr "Pages" + +#: src/components/nav/NavigationDrawer.tsx:77 +#: src/components/render/ModelType.tsx:31 +#: src/defaults/links.tsx:10 +#: src/pages/Index/Settings/SystemSettings.tsx:172 +#: src/pages/part/CategoryDetail.tsx:125 +#: src/pages/part/CategoryDetail.tsx:249 +#: src/pages/part/CategoryDetail.tsx:279 +#: src/pages/part/PartDetail.tsx:856 +msgid "Parts" +msgstr "" + +#: src/components/nav/NavigationDrawer.tsx:84 +#: src/components/render/Part.tsx:30 +#: src/defaults/links.tsx:11 +#: src/pages/Index/Settings/SystemSettings.tsx:205 +#: src/pages/part/PartDetail.tsx:593 +#: src/pages/stock/LocationDetail.tsx:352 +#: src/pages/stock/StockDetail.tsx:528 +#: src/tables/stock/StockItemTable.tsx:69 +msgid "Stock" +msgstr "" + +#: src/components/nav/NavigationDrawer.tsx:91 +#: src/defaults/links.tsx:13 +#: src/pages/build/BuildDetail.tsx:530 +#: src/pages/build/BuildIndex.tsx:36 +msgid "Manufacturing" +msgstr "" + +#: src/components/nav/NavigationDrawer.tsx:98 +#: src/defaults/links.tsx:18 +#: src/pages/company/ManufacturerDetail.tsx:9 +#: src/pages/company/ManufacturerPartDetail.tsx:258 +#: src/pages/company/SupplierDetail.tsx:9 +#: src/pages/company/SupplierPartDetail.tsx:336 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:480 +#: src/pages/purchasing/PurchasingIndex.tsx:60 +msgid "Purchasing" +msgstr "" + +#: src/components/nav/NavigationDrawer.tsx:105 +#: src/defaults/links.tsx:22 +#: src/pages/company/CustomerDetail.tsx:9 +#: src/pages/sales/ReturnOrderDetail.tsx:469 +#: src/pages/sales/SalesIndex.tsx:53 +#: src/pages/sales/SalesOrderDetail.tsx:520 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:343 +msgid "Sales" +msgstr "" + +#: src/components/nav/NavigationDrawer.tsx:129 +#: src/components/nav/NotificationDrawer.tsx:178 +#: src/pages/Index/Settings/SystemSettings.tsx:110 +#: src/pages/Index/Settings/UserSettings.tsx:127 +#: src/pages/Notifications.tsx:65 +#: src/pages/Notifications.tsx:151 +msgid "Notifications" +msgstr "" + +#: src/components/nav/NavigationDrawer.tsx:135 +#: src/components/nav/SettingsHeader.tsx:48 +msgid "User Settings" +msgstr "" + +#: src/components/nav/NavigationDrawer.tsx:173 +msgid "Navigation" +msgstr "" + +#: src/components/nav/NavigationDrawer.tsx:183 +#: src/forms/PurchaseOrderForms.tsx:689 +#: src/forms/StockForms.tsx:614 +#: src/forms/StockForms.tsx:651 +#: src/forms/StockForms.tsx:677 +#: src/forms/StockForms.tsx:705 +#: src/forms/StockForms.tsx:736 +#: src/forms/StockForms.tsx:771 +#: src/forms/StockForms.tsx:813 +#: src/forms/StockForms.tsx:851 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:413 +#: src/tables/RowActions.tsx:129 +#: src/tables/build/BuildLineTable.tsx:101 +msgid "Actions" +msgstr "" + +#: src/components/nav/NavigationDrawer.tsx:191 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:205 +#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:44 +msgid "Plugins" +msgstr "" + +#: src/components/nav/NavigationDrawer.tsx:204 +#: src/defaults/actions.tsx:24 +msgid "Documentation" +msgstr "" + +#: src/components/nav/NavigationDrawer.tsx:210 +msgid "About" +msgstr "" + +#: src/components/nav/NotificationDrawer.tsx:180 +msgid "Mark all as read" +msgstr "" + +#: src/components/nav/NotificationDrawer.tsx:190 +msgid "View all notifications" +msgstr "" + +#: src/components/nav/NotificationDrawer.tsx:210 +msgid "You have no unread notifications." +msgstr "" + +#: src/components/nav/SearchDrawer.tsx:85 +msgid "results" +msgstr "" + +#: src/components/nav/SearchDrawer.tsx:380 +msgid "Enter search text" +msgstr "" + +#: src/components/nav/SearchDrawer.tsx:391 +msgid "Refresh search results" +msgstr "" + +#: src/components/nav/SearchDrawer.tsx:402 +#: src/components/nav/SearchDrawer.tsx:409 +msgid "Search Options" +msgstr "" + +#: src/components/nav/SearchDrawer.tsx:412 +msgid "Regex search" +msgstr "" + +#: src/components/nav/SearchDrawer.tsx:421 +msgid "Whole word search" +msgstr "" + +#: src/components/nav/SearchDrawer.tsx:461 +msgid "An error occurred during search query" +msgstr "" + +#: src/components/nav/SearchDrawer.tsx:462 +#~ msgid "No results" +#~ msgstr "No results" + +#: src/components/nav/SearchDrawer.tsx:472 +#: src/tables/part/PartTestTemplateTable.tsx:76 +msgid "No Results" +msgstr "" + +#: src/components/nav/SearchDrawer.tsx:475 +msgid "No results available for search query" +msgstr "" + +#: src/components/panels/AttachmentPanel.tsx:18 +msgid "Attachments" +msgstr "" + +#: src/components/panels/NotesPanel.tsx:24 +#: src/tables/build/BuildOrderTestTable.tsx:143 +#: src/tables/stock/StockTrackingTable.tsx:204 +msgid "Notes" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:47 +msgid "Plugin Inactive" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:50 +msgid "Plugin is not active" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:60 +msgid "Plugin Information" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:74 +#: src/pages/build/BuildDetail.tsx:116 +#: src/pages/company/CompanyDetail.tsx:89 +#: src/pages/company/ManufacturerPartDetail.tsx:89 +#: src/pages/company/ManufacturerPartDetail.tsx:116 +#: src/pages/company/SupplierPartDetail.tsx:140 +#: src/pages/part/CategoryDetail.tsx:101 +#: src/pages/part/PartDetail.tsx:178 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:136 +#: src/pages/sales/ReturnOrderDetail.tsx:107 +#: src/pages/sales/SalesOrderDetail.tsx:116 +#: src/pages/stock/LocationDetail.tsx:103 +#: src/tables/ColumnRenderers.tsx:92 +#: src/tables/bom/UsedInTable.tsx:44 +#: src/tables/build/BuildAllocatedStockTable.tsx:83 +#: src/tables/build/BuildLineTable.tsx:329 +#: src/tables/machine/MachineTypeTable.tsx:74 +#: src/tables/machine/MachineTypeTable.tsx:129 +#: src/tables/machine/MachineTypeTable.tsx:240 +#: src/tables/machine/MachineTypeTable.tsx:344 +#: src/tables/part/RelatedPartTable.tsx:66 +#: src/tables/plugin/PluginListTable.tsx:99 +#: src/tables/sales/SalesOrderAllocationTable.tsx:87 +#: src/tables/sales/SalesOrderLineItemTable.tsx:75 +#: src/tables/stock/LocationTypesTable.tsx:74 +msgid "Description" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:79 +msgid "Author" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:84 +#: src/pages/part/PartSchedulingDetail.tsx:277 +#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:40 +#: src/pages/part/pricing/SaleHistoryPanel.tsx:38 +#: src/tables/ColumnRenderers.tsx:215 +#: src/tables/build/BuildOrderTestTable.tsx:151 +#: src/tables/settings/StocktakeReportTable.tsx:40 +msgid "Date" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:94 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:398 +#: src/pages/part/PartDetail.tsx:331 +#: src/tables/bom/UsedInTable.tsx:84 +#: src/tables/company/CompanyTable.tsx:62 +#: src/tables/company/CompanyTable.tsx:96 +#: src/tables/machine/MachineListTable.tsx:333 +#: src/tables/machine/MachineListTable.tsx:605 +#: src/tables/part/ParametricPartTable.tsx:223 +#: src/tables/part/PartTable.tsx:178 +#: src/tables/part/PartVariantTable.tsx:15 +#: src/tables/plugin/PluginListTable.tsx:94 +#: src/tables/plugin/PluginListTable.tsx:401 +#: src/tables/purchasing/SupplierPartTable.tsx:100 +#: src/tables/purchasing/SupplierPartTable.tsx:190 +#: src/tables/settings/UserTable.tsx:283 +#: src/tables/stock/StockItemTable.tsx:293 +msgid "Active" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:106 +msgid "Package Name" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:112 +msgid "Installation Path" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:117 +#: src/tables/machine/MachineTypeTable.tsx:152 +#: src/tables/machine/MachineTypeTable.tsx:276 +#: src/tables/plugin/PluginListTable.tsx:406 +msgid "Builtin" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:122 +msgid "Package" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:134 +#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:53 +msgid "Plugin Settings" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:146 +#: src/components/render/ModelType.tsx:276 +msgid "Plugin Configuration" +msgstr "" + +#: src/components/plugins/PluginPanel.tsx:87 +#~ msgid "Error occurred while rendering plugin content" +#~ msgstr "Error occurred while rendering plugin content" + +#: src/components/plugins/PluginPanel.tsx:91 +#~ msgid "Plugin did not provide panel rendering function" +#~ msgstr "Plugin did not provide panel rendering function" + +#: src/components/plugins/PluginPanel.tsx:103 +#~ msgid "No content provided for this plugin" +#~ msgstr "No content provided for this plugin" + +#: src/components/plugins/PluginPanel.tsx:116 +#: src/components/plugins/PluginSettingsPanel.tsx:76 +#~ msgid "Error Loading Plugin" +#~ msgstr "Error Loading Plugin" + +#: src/components/plugins/PluginSettingsPanel.tsx:51 +#~ msgid "Error occurred while rendering plugin settings" +#~ msgstr "Error occurred while rendering plugin settings" + +#: src/components/plugins/PluginSettingsPanel.tsx:55 +#~ msgid "Plugin did not provide settings rendering function" +#~ msgstr "Plugin did not provide settings rendering function" + +#: src/components/plugins/PluginUIFeature.tsx:100 +msgid "Error occurred while rendering the template editor." +msgstr "" + +#: src/components/plugins/PluginUIFeature.tsx:111 +msgid "Error Loading Plugin Editor" +msgstr "" + +#: src/components/plugins/PluginUIFeature.tsx:147 +msgid "Error occurred while rendering the template preview." +msgstr "" + +#: src/components/plugins/PluginUIFeature.tsx:158 +msgid "Error Loading Plugin Preview" +msgstr "" + +#: src/components/plugins/RemoteComponent.tsx:70 +msgid "Invalid source or function name" +msgstr "" + +#: src/components/plugins/RemoteComponent.tsx:91 +msgid "Error Loading Content" +msgstr "" + +#: src/components/plugins/RemoteComponent.tsx:95 +msgid "Error occurred while loading plugin content" +msgstr "" + +#: src/components/render/Instance.tsx:224 +msgid "Unknown model: {model}" +msgstr "" + +#: src/components/render/ModelType.tsx:30 +#: src/forms/BuildForms.tsx:269 +#: src/forms/BuildForms.tsx:337 +#: src/forms/BuildForms.tsx:385 +#: src/forms/BuildForms.tsx:515 +#: src/forms/PurchaseOrderForms.tsx:689 +#: src/forms/ReturnOrderForms.tsx:190 +#: src/forms/SalesOrderForms.tsx:248 +#: src/forms/StockForms.tsx:261 +#: src/forms/StockForms.tsx:614 +#: src/forms/StockForms.tsx:651 +#: src/forms/StockForms.tsx:677 +#: src/forms/StockForms.tsx:705 +#: src/forms/StockForms.tsx:736 +#: src/forms/StockForms.tsx:771 +#: src/forms/StockForms.tsx:813 +#: src/forms/StockForms.tsx:851 +#: src/pages/build/BuildDetail.tsx:90 +#: src/pages/part/PartDetail.tsx:1094 +#: src/tables/build/BuildAllocatedStockTable.tsx:95 +#: src/tables/build/BuildLineTable.tsx:72 +#: src/tables/part/PartTable.tsx:28 +#: src/tables/part/RelatedPartTable.tsx:47 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:130 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:100 +#: src/tables/sales/SalesOrderAllocationTable.tsx:99 +#: src/tables/stock/StockTrackingTable.tsx:78 +msgid "Part" +msgstr "" + +#: src/components/render/ModelType.tsx:40 +msgid "Part Parameter Template" +msgstr "" + +#: src/components/render/ModelType.tsx:41 +msgid "Part Parameter Templates" +msgstr "" + +#: src/components/render/ModelType.tsx:48 +msgid "Part Test Template" +msgstr "" + +#: src/components/render/ModelType.tsx:49 +msgid "Part Test Templates" +msgstr "" + +#: src/components/render/ModelType.tsx:56 +#: src/pages/company/SupplierPartDetail.tsx:364 +#: src/pages/stock/StockDetail.tsx:194 +#: src/tables/build/BuildAllocatedStockTable.tsx:152 +#: src/tables/part/PartPurchaseOrdersTable.tsx:49 +#: src/tables/purchasing/SupplierPartTable.tsx:70 +#: src/tables/stock/StockItemTable.tsx:229 +msgid "Supplier Part" +msgstr "" + +#: src/components/render/ModelType.tsx:57 +msgid "Supplier Parts" +msgstr "" + +#: src/components/render/ModelType.tsx:66 +#: src/tables/part/PartPurchaseOrdersTable.tsx:55 +#: src/tables/stock/StockItemTable.tsx:234 +msgid "Manufacturer Part" +msgstr "" + +#: src/components/render/ModelType.tsx:67 +msgid "Manufacturer Parts" +msgstr "" + +#: src/components/render/ModelType.tsx:76 +#: src/pages/part/CategoryDetail.tsx:310 +msgid "Part Category" +msgstr "" + +#: src/components/render/ModelType.tsx:77 +#: src/pages/part/CategoryDetail.tsx:263 +#: src/pages/part/CategoryDetail.tsx:301 +#: src/pages/part/PartDetail.tsx:1084 +msgid "Part Categories" +msgstr "" + +#: src/components/render/ModelType.tsx:86 +#: src/forms/BuildForms.tsx:337 +#: src/forms/BuildForms.tsx:385 +#: src/forms/BuildForms.tsx:515 +#: src/forms/SalesOrderForms.tsx:248 +#: src/pages/stock/StockDetail.tsx:839 +#: src/tables/stock/StockTrackingTable.tsx:49 +msgid "Stock Item" +msgstr "" + +#: src/components/render/ModelType.tsx:87 +#: src/pages/company/CompanyDetail.tsx:203 +#: src/pages/part/PartStocktakeDetail.tsx:113 +#: src/pages/stock/LocationDetail.tsx:122 +#: src/pages/stock/LocationDetail.tsx:175 +#: src/pages/stock/LocationDetail.tsx:380 +msgid "Stock Items" +msgstr "" + +#: src/components/render/ModelType.tsx:96 +msgid "Stock Location" +msgstr "" + +#: src/components/render/ModelType.tsx:97 +#: src/pages/stock/LocationDetail.tsx:189 +#: src/pages/stock/LocationDetail.tsx:372 +#: src/pages/stock/StockDetail.tsx:831 +msgid "Stock Locations" +msgstr "" + +#: src/components/render/ModelType.tsx:106 +msgid "Stock Location Type" +msgstr "" + +#: src/components/render/ModelType.tsx:107 +msgid "Stock Location Types" +msgstr "" + +#: src/components/render/ModelType.tsx:112 +#: src/pages/part/PartDetail.tsx:712 +msgid "Stock History" +msgstr "" + +#: src/components/render/ModelType.tsx:113 +msgid "Stock Histories" +msgstr "" + +#: src/components/render/ModelType.tsx:118 +msgid "Build" +msgstr "" + +#: src/components/render/ModelType.tsx:119 +msgid "Builds" +msgstr "" + +#: src/components/render/ModelType.tsx:128 +msgid "Build Line" +msgstr "" + +#: src/components/render/ModelType.tsx:129 +msgid "Build Lines" +msgstr "" + +#: src/components/render/ModelType.tsx:137 +msgid "Build Item" +msgstr "" + +#: src/components/render/ModelType.tsx:138 +msgid "Build Items" +msgstr "" + +#: src/components/render/ModelType.tsx:143 +#: src/pages/company/CompanyDetail.tsx:321 +msgid "Company" +msgstr "" + +#: src/components/render/ModelType.tsx:144 +msgid "Companies" +msgstr "" + +#: src/components/render/ModelType.tsx:153 +#: src/pages/build/BuildDetail.tsx:195 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:204 +#: src/pages/sales/ReturnOrderDetail.tsx:174 +#: src/pages/sales/SalesOrderDetail.tsx:186 +#: src/tables/TableHoverCard.tsx:81 +#: src/tables/build/BuildOrderTable.tsx:135 +#: src/tables/purchasing/PurchaseOrderTable.tsx:69 +#: src/tables/sales/ReturnOrderTable.tsx:67 +#: src/tables/sales/SalesOrderTable.tsx:67 +msgid "Project Code" +msgstr "" + +#: src/components/render/ModelType.tsx:154 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:145 +msgid "Project Codes" +msgstr "" + +#: src/components/render/ModelType.tsx:161 +#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:32 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:477 +#: src/pages/stock/StockDetail.tsx:253 +#: src/tables/part/PartPurchaseOrdersTable.tsx:31 +#: src/tables/stock/StockItemTable.tsx:222 +#: src/tables/stock/StockTrackingTable.tsx:111 +msgid "Purchase Order" +msgstr "" + +#: src/components/render/ModelType.tsx:162 +#: src/pages/Index/Settings/SystemSettings.tsx:249 +#: src/pages/company/CompanyDetail.tsx:196 +#: src/pages/company/SupplierPartDetail.tsx:249 +#: src/pages/part/PartDetail.tsx:683 +#: src/pages/purchasing/PurchasingIndex.tsx:25 +msgid "Purchase Orders" +msgstr "" + +#: src/components/render/ModelType.tsx:171 +msgid "Purchase Order Line" +msgstr "" + +#: src/components/render/ModelType.tsx:172 +msgid "Purchase Order Lines" +msgstr "" + +#: src/components/render/ModelType.tsx:177 +#: src/pages/build/BuildDetail.tsx:148 +#: src/pages/part/pricing/SaleHistoryPanel.tsx:24 +#: src/pages/sales/SalesOrderDetail.tsx:515 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:92 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:341 +#: src/pages/stock/StockDetail.tsx:262 +#: src/tables/sales/SalesOrderAllocationTable.tsx:80 +#: src/tables/stock/StockTrackingTable.tsx:122 +msgid "Sales Order" +msgstr "" + +#: src/components/render/ModelType.tsx:178 +#: src/pages/Index/Settings/SystemSettings.tsx:264 +#: src/pages/company/CompanyDetail.tsx:216 +#: src/pages/part/PartDetail.tsx:695 +#: src/pages/sales/SalesIndex.tsx:26 +msgid "Sales Orders" +msgstr "" + +#: src/components/render/ModelType.tsx:187 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:340 +msgid "Sales Order Shipment" +msgstr "" + +#: src/components/render/ModelType.tsx:188 +msgid "Sales Order Shipments" +msgstr "" + +#: src/components/render/ModelType.tsx:195 +#: src/pages/sales/ReturnOrderDetail.tsx:464 +#: src/tables/stock/StockTrackingTable.tsx:133 +msgid "Return Order" +msgstr "" + +#: src/components/render/ModelType.tsx:196 +#: src/pages/Index/Settings/SystemSettings.tsx:280 +#: src/pages/company/CompanyDetail.tsx:223 +#: src/pages/part/PartDetail.tsx:702 +#: src/pages/sales/SalesIndex.tsx:32 +msgid "Return Orders" +msgstr "" + +#: src/components/render/ModelType.tsx:205 +msgid "Return Order Line Item" +msgstr "" + +#: src/components/render/ModelType.tsx:206 +msgid "Return Order Line Items" +msgstr "" + +#: src/components/render/ModelType.tsx:211 +#: src/tables/company/AddressTable.tsx:48 +msgid "Address" +msgstr "" + +#: src/components/render/ModelType.tsx:212 +#: src/pages/company/CompanyDetail.tsx:255 +msgid "Addresses" +msgstr "" + +#: src/components/render/ModelType.tsx:219 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:196 +#: src/pages/sales/ReturnOrderDetail.tsx:166 +#: src/pages/sales/SalesOrderDetail.tsx:178 +msgid "Contact" +msgstr "" + +#: src/components/render/ModelType.tsx:220 +#: src/pages/company/CompanyDetail.tsx:249 +msgid "Contacts" +msgstr "" + +#: src/components/render/ModelType.tsx:227 +msgid "Owner" +msgstr "" + +#: src/components/render/ModelType.tsx:228 +msgid "Owners" +msgstr "" + +#: src/components/render/ModelType.tsx:234 +#~ msgid "Purchase Order Line Item" +#~ msgstr "Purchase Order Line Item" + +#: src/components/render/ModelType.tsx:235 +#: src/tables/settings/BarcodeScanHistoryTable.tsx:80 +#: src/tables/settings/BarcodeScanHistoryTable.tsx:211 +#: src/tables/settings/ImportSessionTable.tsx:120 +#: src/tables/settings/StocktakeReportTable.tsx:44 +#: src/tables/stock/StockItemTestResultTable.tsx:204 +#: src/tables/stock/StockTrackingTable.tsx:181 +#: src/tables/stock/StockTrackingTable.tsx:210 +msgid "User" +msgstr "" + +#: src/components/render/ModelType.tsx:236 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:109 +#: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:13 +msgid "Users" +msgstr "" + +#: src/components/render/ModelType.tsx:243 +msgid "Group" +msgstr "" + +#: src/components/render/ModelType.tsx:244 +#: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:20 +#: src/tables/settings/UserTable.tsx:137 +#: src/tables/settings/UserTable.tsx:200 +msgid "Groups" +msgstr "" + +#: src/components/render/ModelType.tsx:252 +msgid "Import Session" +msgstr "" + +#: src/components/render/ModelType.tsx:253 +msgid "Import Sessions" +msgstr "" + +#: src/components/render/ModelType.tsx:260 +msgid "Label Template" +msgstr "" + +#: src/components/render/ModelType.tsx:261 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:187 +msgid "Label Templates" +msgstr "" + +#: src/components/render/ModelType.tsx:264 +#~ msgid "Unknown Model" +#~ msgstr "Unknown Model" + +#: src/components/render/ModelType.tsx:268 +msgid "Report Template" +msgstr "" + +#: src/components/render/ModelType.tsx:269 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:193 +msgid "Report Templates" +msgstr "" + +#: src/components/render/ModelType.tsx:277 +msgid "Plugin Configurations" +msgstr "" + +#: src/components/render/ModelType.tsx:284 +msgid "Content Type" +msgstr "" + +#: src/components/render/ModelType.tsx:285 +msgid "Content Types" +msgstr "" + +#: src/components/render/ModelType.tsx:291 +#: src/tables/machine/MachineListTable.tsx:351 +#: src/tables/machine/MachineTypeTable.tsx:282 +msgid "Errors" +msgstr "" + +#: src/components/render/ModelType.tsx:307 +#~ msgid "Purchase Order Line Items" +#~ msgstr "Purchase Order Line Items" + +#: src/components/render/ModelType.tsx:337 +#~ msgid "Unknown Models" +#~ msgstr "Unknown Models" + +#: src/components/render/Order.tsx:121 +#: src/tables/sales/SalesOrderAllocationTable.tsx:136 +msgid "Shipment" +msgstr "" + +#: src/components/render/Part.tsx:25 +#: src/components/render/Plugin.tsx:17 +#: src/pages/company/CompanyDetail.tsx:307 +#: src/pages/company/SupplierPartDetail.tsx:349 +#: src/pages/part/PartDetail.tsx:911 +msgid "Inactive" +msgstr "" + +#: src/components/render/Part.tsx:28 +#: src/tables/bom/BomTable.tsx:204 +#: src/tables/part/PartTable.tsx:134 +msgid "No stock" +msgstr "" + +#: src/components/render/Stock.tsx:61 +#: src/forms/ReturnOrderForms.tsx:190 +#: src/pages/stock/StockDetail.tsx:166 +#: src/pages/stock/StockDetail.tsx:771 +#: src/tables/build/BuildAllocatedStockTable.tsx:123 +#: src/tables/build/BuildOutputTable.tsx:81 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:114 +#: src/tables/sales/SalesOrderAllocationTable.tsx:106 +msgid "Serial Number" +msgstr "" + +#: src/components/render/Stock.tsx:63 +#: src/forms/BuildForms.tsx:206 +#: src/forms/BuildForms.tsx:515 +#: src/forms/PurchaseOrderForms.tsx:689 +#: src/forms/SalesOrderForms.tsx:248 +#: src/pages/part/PartSchedulingDetail.tsx:80 +#: src/pages/part/PartStocktakeDetail.tsx:60 +#: src/pages/part/PartStocktakeDetail.tsx:234 +#: src/pages/part/PartStocktakeDetail.tsx:252 +#: src/pages/part/pricing/BomPricingPanel.tsx:148 +#: src/pages/part/pricing/PriceBreakPanel.tsx:89 +#: src/pages/part/pricing/PriceBreakPanel.tsx:172 +#: src/pages/stock/StockDetail.tsx:161 +#: src/pages/stock/StockDetail.tsx:777 +#: src/tables/build/BuildLineTable.tsx:79 +#: src/tables/build/BuildOrderTestTable.tsx:198 +#: src/tables/part/PartPurchaseOrdersTable.tsx:93 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:146 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:177 +#: src/tables/purchasing/SupplierPriceBreakTable.tsx:77 +#: src/tables/stock/StockTrackingTable.tsx:63 +msgid "Quantity" +msgstr "" + +#: src/components/settings/SettingItem.tsx:47 +#: src/components/settings/SettingItem.tsx:100 +#~ msgid "{0} updated successfully" +#~ msgstr "{0} updated successfully" + +#: src/components/settings/SettingList.tsx:67 +msgid "Edit Setting" +msgstr "" + +#: src/components/settings/SettingList.tsx:78 +#: src/components/settings/SettingList.tsx:108 +msgid "Setting {0} updated successfully" +msgstr "" + +#: src/components/settings/SettingList.tsx:107 +msgid "Setting updated" +msgstr "" + +#: src/components/settings/SettingList.tsx:117 +msgid "Error editing setting" +msgstr "" + +#: src/components/settings/SettingList.tsx:162 +msgid "No settings specified" +msgstr "" + +#: src/components/tables/FilterGroup.tsx:29 +#~ msgid "Add table filter" +#~ msgstr "Add table filter" + +#: src/components/tables/FilterGroup.tsx:44 +#~ msgid "Clear all filters" +#~ msgstr "Clear all filters" + +#: src/components/tables/FilterGroup.tsx:51 +#~ msgid "Add filter" +#~ msgstr "Add filter" + +#: src/components/tables/FilterSelectModal.tsx:56 +#~ msgid "True" +#~ msgstr "True" + +#: src/components/tables/FilterSelectModal.tsx:57 +#~ msgid "False" +#~ msgstr "False" + +#: src/components/tables/FilterSelectModal.tsx:143 +#~ msgid "Add Table Filter" +#~ msgstr "Add Table Filter" + +#: src/components/tables/FilterSelectModal.tsx:145 +#~ msgid "Select from the available filters" +#~ msgstr "Select from the available filters" + +#: src/components/tables/bom/BomTable.tsx:113 +#~ msgid "Substitutes" +#~ msgstr "Substitutes" + +#: src/components/tables/bom/BomTable.tsx:200 +#~ msgid "Validate" +#~ msgstr "Validate" + +#: src/components/tables/bom/BomTable.tsx:250 +#~ msgid "Has Available Stock" +#~ msgstr "Has Available Stock" + +#: src/components/tables/bom/UsedInTable.tsx:40 +#~ msgid "Required Part" +#~ msgstr "Required Part" + +#: src/components/tables/build/BuildOrderTable.tsx:52 +#~ msgid "Progress" +#~ msgstr "Progress" + +#: src/components/tables/build/BuildOrderTable.tsx:65 +#~ msgid "Priority" +#~ msgstr "Priority" + +#: src/components/tables/company/AddressTable.tsx:68 +#~ msgid "Postal Code" +#~ msgstr "Postal Code" + +#: src/components/tables/company/AddressTable.tsx:74 +#~ msgid "City" +#~ msgstr "City" + +#: src/components/tables/company/AddressTable.tsx:80 +#~ msgid "State / Province" +#~ msgstr "State / Province" + +#: src/components/tables/company/AddressTable.tsx:86 +#~ msgid "Country" +#~ msgstr "Country" + +#: src/components/tables/company/AddressTable.tsx:92 +#~ msgid "Courier Notes" +#~ msgstr "Courier Notes" + +#: src/components/tables/company/AddressTable.tsx:98 +#~ msgid "Internal Notes" +#~ msgstr "Internal Notes" + +#: src/components/tables/company/AddressTable.tsx:130 +#~ msgid "Address updated" +#~ msgstr "Address updated" + +#: src/components/tables/company/AddressTable.tsx:142 +#~ msgid "Address deleted" +#~ msgstr "Address deleted" + +#: src/components/tables/company/CompanyTable.tsx:32 +#~ msgid "Company Name" +#~ msgstr "Company Name" + +#: src/components/tables/company/ContactTable.tsx:41 +#~ msgid "Phone" +#~ msgstr "Phone" + +#: src/components/tables/company/ContactTable.tsx:53 +#~ msgid "Role" +#~ msgstr "Role" + +#: src/components/tables/company/ContactTable.tsx:78 +#~ msgid "Contact updated" +#~ msgstr "Contact updated" + +#: src/components/tables/company/ContactTable.tsx:90 +#~ msgid "Contact deleted" +#~ msgstr "Contact deleted" + +#: src/components/tables/company/ContactTable.tsx:92 +#~ msgid "Are you sure you want to delete this contact?" +#~ msgstr "Are you sure you want to delete this contact?" + +#: src/components/tables/company/ContactTable.tsx:108 +#~ msgid "Create Contact" +#~ msgstr "Create Contact" + +#: src/components/tables/company/ContactTable.tsx:110 +#~ msgid "Contact created" +#~ msgstr "Contact created" + +#: src/components/tables/general/AttachmentTable.tsx:47 +#~ msgid "Comment" +#~ msgstr "Comment" + +#: src/components/tables/part/PartCategoryTable.tsx:122 +#~ msgid "Part category updated" +#~ msgstr "Part category updated" + +#: src/components/tables/part/PartParameterTable.tsx:41 +#~ msgid "Parameter" +#~ msgstr "Parameter" + +#: src/components/tables/part/PartParameterTable.tsx:114 +#~ msgid "Part parameter updated" +#~ msgstr "Part parameter updated" + +#: src/components/tables/part/PartParameterTable.tsx:130 +#~ msgid "Part parameter deleted" +#~ msgstr "Part parameter deleted" + +#: src/components/tables/part/PartParameterTable.tsx:132 +#~ msgid "Are you sure you want to remove this parameter?" +#~ msgstr "Are you sure you want to remove this parameter?" + +#: src/components/tables/part/PartParameterTable.tsx:159 +#~ msgid "Part parameter added" +#~ msgstr "Part parameter added" + +#: src/components/tables/part/PartParameterTemplateTable.tsx:67 +#~ msgid "Choices" +#~ msgstr "Choices" + +#: src/components/tables/part/PartParameterTemplateTable.tsx:83 +#~ msgid "Remove parameter template" +#~ msgstr "Remove parameter template" + +#: src/components/tables/part/PartParameterTemplateTable.tsx:84 +#~ msgid "Parameter template updated" +#~ msgstr "Parameter template updated" + +#: src/components/tables/part/PartParameterTemplateTable.tsx:96 +#~ msgid "Parameter template deleted" +#~ msgstr "Parameter template deleted" + +#: src/components/tables/part/PartParameterTemplateTable.tsx:98 +#~ msgid "Are you sure you want to remove this parameter template?" +#~ msgstr "Are you sure you want to remove this parameter template?" + +#: src/components/tables/part/PartParameterTemplateTable.tsx:110 +#~ msgid "Create Parameter Template" +#~ msgstr "Create Parameter Template" + +#: src/components/tables/part/PartParameterTemplateTable.tsx:112 +#~ msgid "Parameter template created" +#~ msgstr "Parameter template created" + +#: src/components/tables/part/PartTable.tsx:211 +#~ msgid "Detail" +#~ msgstr "Detail" + +#: src/components/tables/part/PartTestTemplateTable.tsx:30 +#~ msgid "Test Name" +#~ msgstr "Test Name" + +#: src/components/tables/part/PartTestTemplateTable.tsx:86 +#~ msgid "Template updated" +#~ msgstr "Template updated" + +#: src/components/tables/part/PartTestTemplateTable.tsx:98 +#~ msgid "Test Template deleted" +#~ msgstr "Test Template deleted" + +#: src/components/tables/part/PartTestTemplateTable.tsx:115 +#~ msgid "Create Test Template" +#~ msgstr "Create Test Template" + +#: src/components/tables/part/PartTestTemplateTable.tsx:117 +#~ msgid "Template created" +#~ msgstr "Template created" + +#: src/components/tables/part/RelatedPartTable.tsx:79 +#~ msgid "Related Part" +#~ msgstr "Related Part" + +#: src/components/tables/part/RelatedPartTable.tsx:82 +#~ msgid "Related part added" +#~ msgstr "Related part added" + +#: src/components/tables/part/RelatedPartTable.tsx:114 +#~ msgid "Related part deleted" +#~ msgstr "Related part deleted" + +#: src/components/tables/part/RelatedPartTable.tsx:115 +#~ msgid "Are you sure you want to remove this relationship?" +#~ msgstr "Are you sure you want to remove this relationship?" + +#: src/components/tables/plugin/PluginListTable.tsx:191 +#~ msgid "Installation path" +#~ msgstr "Installation path" + +#: src/components/tables/purchasing/PurchaseOrderLineItemTable.tsx:55 +#~ msgid "Receive" +#~ msgstr "Receive" + +#: src/components/tables/purchasing/PurchaseOrderLineItemTable.tsx:81 +#~ msgid "Line item updated" +#~ msgstr "Line item updated" + +#: src/components/tables/purchasing/PurchaseOrderLineItemTable.tsx:232 +#~ msgid "Line item added" +#~ msgstr "Line item added" + +#: src/components/tables/settings/CustomUnitsTable.tsx:37 +#~ msgid "Definition" +#~ msgstr "Definition" + +#: src/components/tables/settings/CustomUnitsTable.tsx:43 +#~ msgid "Symbol" +#~ msgstr "Symbol" + +#: src/components/tables/settings/CustomUnitsTable.tsx:59 +#~ msgid "Edit custom unit" +#~ msgstr "Edit custom unit" + +#: src/components/tables/settings/CustomUnitsTable.tsx:66 +#~ msgid "Custom unit updated" +#~ msgstr "Custom unit updated" + +#: src/components/tables/settings/CustomUnitsTable.tsx:76 +#~ msgid "Delete custom unit" +#~ msgstr "Delete custom unit" + +#: src/components/tables/settings/CustomUnitsTable.tsx:77 +#~ msgid "Custom unit deleted" +#~ msgstr "Custom unit deleted" + +#: src/components/tables/settings/CustomUnitsTable.tsx:79 +#~ msgid "Are you sure you want to remove this custom unit?" +#~ msgstr "Are you sure you want to remove this custom unit?" + +#: src/components/tables/settings/CustomUnitsTable.tsx:97 +#~ msgid "Custom unit created" +#~ msgstr "Custom unit created" + +#: src/components/tables/settings/GroupTable.tsx:45 +#~ msgid "Group updated" +#~ msgstr "Group updated" + +#: src/components/tables/settings/GroupTable.tsx:131 +#~ msgid "Added group" +#~ msgstr "Added group" + +#: src/components/tables/settings/ProjectCodeTable.tsx:49 +#~ msgid "Edit project code" +#~ msgstr "Edit project code" + +#: src/components/tables/settings/ProjectCodeTable.tsx:56 +#~ msgid "Project code updated" +#~ msgstr "Project code updated" + +#: src/components/tables/settings/ProjectCodeTable.tsx:66 +#~ msgid "Delete project code" +#~ msgstr "Delete project code" + +#: src/components/tables/settings/ProjectCodeTable.tsx:67 +#~ msgid "Project code deleted" +#~ msgstr "Project code deleted" + +#: src/components/tables/settings/ProjectCodeTable.tsx:69 +#~ msgid "Are you sure you want to remove this project code?" +#~ msgstr "Are you sure you want to remove this project code?" + +#: src/components/tables/settings/ProjectCodeTable.tsx:88 +#~ msgid "Added project code" +#~ msgstr "Added project code" + +#: src/components/tables/settings/UserDrawer.tsx:92 +#~ msgid "User permission changed successfully" +#~ msgstr "User permission changed successfully" + +#: src/components/tables/settings/UserDrawer.tsx:93 +#~ msgid "Some changes might only take effect after the user refreshes their login." +#~ msgstr "Some changes might only take effect after the user refreshes their login." + +#: src/components/tables/settings/UserDrawer.tsx:118 +#~ msgid "Changed user active status successfully" +#~ msgstr "Changed user active status successfully" + +#: src/components/tables/settings/UserDrawer.tsx:119 +#~ msgid "Set to {active}" +#~ msgstr "Set to {active}" + +#: src/components/tables/settings/UserDrawer.tsx:142 +#~ msgid "User details for {0}" +#~ msgstr "User details for {0}" + +#: src/components/tables/settings/UserDrawer.tsx:176 +#~ msgid "Rights" +#~ msgstr "Rights" + +#: src/components/tables/settings/UserTable.tsx:106 +#~ msgid "User updated" +#~ msgstr "User updated" + +#: src/components/tables/settings/UserTable.tsx:117 +#~ msgid "user deleted" +#~ msgstr "user deleted" + +#: src/components/tables/stock/StockItemTable.tsx:247 +#~ msgid "Test Filter" +#~ msgstr "Test Filter" + +#: src/components/tables/stock/StockItemTable.tsx:248 +#~ msgid "This is a test filter" +#~ msgstr "This is a test filter" + +#: src/components/tables/stock/StockLocationTable.tsx:145 +#~ msgid "Stock location updated" +#~ msgstr "Stock location updated" + +#: src/components/widgets/FeedbackWidget.tsx:19 +#~ msgid "Something is new: Platform UI" +#~ msgstr "Something is new: Platform UI" + +#: src/components/widgets/FeedbackWidget.tsx:21 +#~ msgid "We are building a new UI with a modern stack. What you currently see is not fixed and will be redesigned but demonstrates the UI/UX possibilities we will have going forward." +#~ msgstr "We are building a new UI with a modern stack. What you currently see is not fixed and will be redesigned but demonstrates the UI/UX possibilities we will have going forward." + +#: src/components/widgets/FeedbackWidget.tsx:32 +#~ msgid "Provide Feedback" +#~ msgstr "Provide Feedback" + +#: src/components/widgets/GetStartedWidget.tsx:11 +#~ msgid "Getting started" +#~ msgstr "Getting started" + +#: src/components/widgets/MarkdownEditor.tsx:108 +#~ msgid "Failed to upload image" +#~ msgstr "Failed to upload image" + +#: src/components/widgets/MarkdownEditor.tsx:146 +#~ msgid "Notes saved" +#~ msgstr "Notes saved" + +#: src/components/widgets/WidgetLayout.tsx:166 +#~ msgid "Layout" +#~ msgstr "Layout" + +#: src/components/widgets/WidgetLayout.tsx:172 +#~ msgid "Reset Layout" +#~ msgstr "Reset Layout" + +#: src/components/widgets/WidgetLayout.tsx:185 +#~ msgid "Stop Edit" +#~ msgstr "Stop Edit" + +#: src/components/widgets/WidgetLayout.tsx:191 +#~ msgid "Appearance" +#~ msgstr "Appearance" + +#: src/components/widgets/WidgetLayout.tsx:203 +#~ msgid "Show Boxes" +#~ msgstr "Show Boxes" + +#: src/contexts/LanguageContext.tsx:20 +msgid "Arabic" +msgstr "" + +#: src/contexts/LanguageContext.tsx:21 +msgid "Bulgarian" +msgstr "" + +#: src/contexts/LanguageContext.tsx:22 +msgid "Czech" +msgstr "" + +#: src/contexts/LanguageContext.tsx:23 +msgid "Danish" +msgstr "" + +#: src/contexts/LanguageContext.tsx:24 +msgid "German" +msgstr "" + +#: src/contexts/LanguageContext.tsx:25 +msgid "Greek" +msgstr "" + +#: src/contexts/LanguageContext.tsx:26 +msgid "English" +msgstr "" + +#: src/contexts/LanguageContext.tsx:27 +msgid "Spanish" +msgstr "" + +#: src/contexts/LanguageContext.tsx:28 +msgid "Spanish (Mexican)" +msgstr "" + +#: src/contexts/LanguageContext.tsx:29 +msgid "Estonian" +msgstr "" + +#: src/contexts/LanguageContext.tsx:30 +msgid "Farsi / Persian" +msgstr "" + +#: src/contexts/LanguageContext.tsx:31 +msgid "Finnish" +msgstr "" + +#: src/contexts/LanguageContext.tsx:32 +msgid "French" +msgstr "" + +#: src/contexts/LanguageContext.tsx:33 +msgid "Hebrew" +msgstr "" + +#: src/contexts/LanguageContext.tsx:34 +msgid "Hindi" +msgstr "" + +#: src/contexts/LanguageContext.tsx:35 +msgid "Hungarian" +msgstr "" + +#: src/contexts/LanguageContext.tsx:36 +msgid "Italian" +msgstr "" + +#: src/contexts/LanguageContext.tsx:37 +msgid "Japanese" +msgstr "" + +#: src/contexts/LanguageContext.tsx:38 +msgid "Korean" +msgstr "" + +#: src/contexts/LanguageContext.tsx:39 +msgid "Lithuanian" +msgstr "" + +#: src/contexts/LanguageContext.tsx:40 +msgid "Latvian" +msgstr "" + +#: src/contexts/LanguageContext.tsx:41 +msgid "Dutch" +msgstr "" + +#: src/contexts/LanguageContext.tsx:42 +msgid "Norwegian" +msgstr "" + +#: src/contexts/LanguageContext.tsx:43 +msgid "Polish" +msgstr "" + +#: src/contexts/LanguageContext.tsx:44 +msgid "Portuguese" +msgstr "" + +#: src/contexts/LanguageContext.tsx:45 +msgid "Portuguese (Brazilian)" +msgstr "" + +#: src/contexts/LanguageContext.tsx:46 +msgid "Romanian" +msgstr "" + +#: src/contexts/LanguageContext.tsx:47 +msgid "Russian" +msgstr "" + +#: src/contexts/LanguageContext.tsx:48 +msgid "Slovak" +msgstr "" + +#: src/contexts/LanguageContext.tsx:49 +msgid "Slovenian" +msgstr "" + +#: src/contexts/LanguageContext.tsx:50 +msgid "Swedish" +msgstr "" + +#: src/contexts/LanguageContext.tsx:51 +msgid "Thai" +msgstr "" + +#: src/contexts/LanguageContext.tsx:52 +msgid "Turkish" +msgstr "" + +#: src/contexts/LanguageContext.tsx:53 +msgid "Ukrainian" +msgstr "" + +#: src/contexts/LanguageContext.tsx:54 +msgid "Vietnamese" +msgstr "" + +#: src/contexts/LanguageContext.tsx:55 +msgid "Chinese (Simplified)" +msgstr "" + +#: src/contexts/LanguageContext.tsx:56 +msgid "Chinese (Traditional)" +msgstr "" + +#: src/defaults/actions.tsx:18 +msgid "Go to the InvenTree dashboard" +msgstr "" + +#: src/defaults/actions.tsx:18 +#: src/defaults/links.tsx:27 +#: src/defaults/menuItems.tsx:9 +#~ msgid "Home" +#~ msgstr "Home" + +#: src/defaults/actions.tsx:25 +msgid "Visit the documentation to learn more about InvenTree" +msgstr "" + +#: src/defaults/actions.tsx:31 +#: src/defaults/links.tsx:92 +#: src/defaults/links.tsx:124 +msgid "About InvenTree" +msgstr "" + +#: src/defaults/actions.tsx:32 +msgid "About the InvenTree org" +msgstr "" + +#: src/defaults/actions.tsx:38 +msgid "Server Information" +msgstr "" + +#: src/defaults/actions.tsx:39 +#: src/defaults/links.tsx:118 +msgid "About this Inventree instance" +msgstr "" + +#: src/defaults/actions.tsx:45 +#: src/defaults/links.tsx:105 +#: src/defaults/links.tsx:131 +msgid "License Information" +msgstr "" + +#: src/defaults/actions.tsx:46 +msgid "Licenses for dependencies of the service" +msgstr "" + +#: src/defaults/actions.tsx:52 +msgid "Open Navigation" +msgstr "" + +#: src/defaults/actions.tsx:53 +msgid "Open the main navigation menu" +msgstr "" + +#: src/defaults/actions.tsx:64 +msgid "Go to the Admin Center" +msgstr "" + +#: src/defaults/dashboardItems.tsx:29 +#~ msgid "Latest Parts" +#~ msgstr "Latest Parts" + +#: src/defaults/dashboardItems.tsx:36 +#~ msgid "BOM Waiting Validation" +#~ msgstr "BOM Waiting Validation" + +#: src/defaults/dashboardItems.tsx:43 +#~ msgid "Recently Updated" +#~ msgstr "Recently Updated" + +#: src/defaults/dashboardItems.tsx:57 +#~ msgid "Depleted Stock" +#~ msgstr "Depleted Stock" + +#: src/defaults/dashboardItems.tsx:64 +#~ msgid "Required for Build Orders" +#~ msgstr "Required for Build Orders" + +#: src/defaults/dashboardItems.tsx:71 +#~ msgid "Expired Stock" +#~ msgstr "Expired Stock" + +#: src/defaults/dashboardItems.tsx:78 +#~ msgid "Stale Stock" +#~ msgstr "Stale Stock" + +#: src/defaults/dashboardItems.tsx:85 +#~ msgid "Build Orders In Progress" +#~ msgstr "Build Orders In Progress" + +#: src/defaults/dashboardItems.tsx:99 +#~ msgid "Outstanding Purchase Orders" +#~ msgstr "Outstanding Purchase Orders" + +#: src/defaults/dashboardItems.tsx:113 +#~ msgid "Outstanding Sales Orders" +#~ msgstr "Outstanding Sales Orders" + +#: src/defaults/dashboardItems.tsx:127 +#~ msgid "Current News" +#~ msgstr "Current News" + +#: src/defaults/defaultHostList.tsx:8 +#~ msgid "InvenTree Demo" +#~ msgstr "InvenTree Demo" + +#: src/defaults/defaultHostList.tsx:16 +#~ msgid "Local Server" +#~ msgstr "Local Server" + +#: src/defaults/links.tsx:17 +#~ msgid "GitHub" +#~ msgstr "GitHub" + +#: src/defaults/links.tsx:22 +#~ msgid "Demo" +#~ msgstr "Demo" + +#: src/defaults/links.tsx:41 +#: src/defaults/menuItems.tsx:71 +#: src/pages/Index/Playground.tsx:217 +#~ msgid "Playground" +#~ msgstr "Playground" + +#: src/defaults/links.tsx:45 +msgid "API" +msgstr "" + +#: src/defaults/links.tsx:48 +msgid "InvenTree API documentation" +msgstr "" + +#: src/defaults/links.tsx:52 +msgid "Developer Manual" +msgstr "" + +#: src/defaults/links.tsx:55 +msgid "InvenTree developer manual" +msgstr "" + +#: src/defaults/links.tsx:59 +msgid "FAQ" +msgstr "" + +#: src/defaults/links.tsx:62 +msgid "Frequently asked questions" +msgstr "" + +#: src/defaults/links.tsx:66 +msgid "GitHub Repository" +msgstr "" + +#: src/defaults/links.tsx:69 +msgid "InvenTree source code on GitHub" +msgstr "" + +#: src/defaults/links.tsx:76 +#~ msgid "Instance" +#~ msgstr "Instance" + +#: src/defaults/links.tsx:79 +#: src/defaults/links.tsx:117 +msgid "System Information" +msgstr "" + +#: src/defaults/links.tsx:83 +#~ msgid "InvenTree" +#~ msgstr "InvenTree" + +#: src/defaults/links.tsx:117 +#~ msgid "Licenses for packages used by InvenTree" +#~ msgstr "Licenses for packages used by InvenTree" + +#: src/defaults/links.tsx:125 +msgid "About the InvenTree Project" +msgstr "" + +#: src/defaults/links.tsx:132 +msgid "Licenses for dependencies of the InvenTree software" +msgstr "" + +#: src/defaults/links.tsx:134 +#~ msgid "Licenses" +#~ msgstr "Licenses" + +#: src/defaults/menuItems.tsx:7 +#~ msgid "Open sourcea" +#~ msgstr "Open sourcea" + +#: src/defaults/menuItems.tsx:9 +#~ msgid "Open source" +#~ msgstr "Open source" + +#: src/defaults/menuItems.tsx:10 +#~ msgid "Start page of your instance." +#~ msgstr "Start page of your instance." + +#: src/defaults/menuItems.tsx:10 +#~ msgid "This Pokémon’s cry is very loud and distracting" +#~ msgstr "This Pokémon’s cry is very loud and distracting" + +#: src/defaults/menuItems.tsx:12 +#~ msgid "This Pokémon’s cry is very loud and distracting and more and more and more" +#~ msgstr "This Pokémon’s cry is very loud and distracting and more and more and more" + +#: src/defaults/menuItems.tsx:15 +#~ msgid "Profile page" +#~ msgstr "Profile page" + +#: src/defaults/menuItems.tsx:17 +#~ msgid "User attributes and design settings." +#~ msgstr "User attributes and design settings." + +#: src/defaults/menuItems.tsx:21 +#~ msgid "Free for everyone" +#~ msgstr "Free for everyone" + +#: src/defaults/menuItems.tsx:22 +#~ msgid "The fluid of Smeargle’s tail secretions changes" +#~ msgstr "The fluid of Smeargle’s tail secretions changes" + +#: src/defaults/menuItems.tsx:23 +#~ msgid "View for interactive scanning and multiple actions." +#~ msgstr "View for interactive scanning and multiple actions." + +#: src/defaults/menuItems.tsx:24 +#~ msgid "The fluid of Smeargle’s tail secretions changes in the intensity" +#~ msgstr "The fluid of Smeargle’s tail secretions changes in the intensity" + +#: src/defaults/menuItems.tsx:32 +#~ msgid "abc" +#~ msgstr "abc" + +#: src/defaults/menuItems.tsx:37 +#~ msgid "Random image" +#~ msgstr "Random image" + +#: src/defaults/menuItems.tsx:40 +#~ msgid "Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit augue duis dolore the feugait nulla facilisi. Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat. Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit augue duis dolore the feugait nulla facilisi. Name liber tempor cum soluta nobis eleifend option congue nihil imperdiet doming id quod mazim placerat facer possim assume. Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat. Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, At accusam aliquyam diam diam dolore dolores duo eirmod eos erat, et nonumy sed tempor et et invidunt justo labore Stet clita ea et gubergren, kasd magna no rebum. sanctus sea sed takimata ut vero voluptua. est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat. Consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor" +#~ msgstr "Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit augue duis dolore the feugait nulla facilisi. Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat. Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit augue duis dolore the feugait nulla facilisi. Name liber tempor cum soluta nobis eleifend option congue nihil imperdiet doming id quod mazim placerat facer possim assume. Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat. Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, At accusam aliquyam diam diam dolore dolores duo eirmod eos erat, et nonumy sed tempor et et invidunt justo labore Stet clita ea et gubergren, kasd magna no rebum. sanctus sea sed takimata ut vero voluptua. est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat. Consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor" + +#: src/defaults/menuItems.tsx:105 +#~ msgid "Yanma is capable of seeing 360 degrees without" +#~ msgstr "Yanma is capable of seeing 360 degrees without" + +#: src/defaults/menuItems.tsx:111 +#~ msgid "The shell’s rounded shape and the grooves on its." +#~ msgstr "The shell’s rounded shape and the grooves on its." + +#: src/defaults/menuItems.tsx:116 +#~ msgid "Analytics" +#~ msgstr "Analytics" + +#: src/defaults/menuItems.tsx:118 +#~ msgid "This Pokémon uses its flying ability to quickly chase" +#~ msgstr "This Pokémon uses its flying ability to quickly chase" + +#: src/defaults/menuItems.tsx:125 +#~ msgid "Combusken battles with the intensely hot flames it spews" +#~ msgstr "Combusken battles with the intensely hot flames it spews" + +#: src/forms/AttachmentForms.tsx:57 +#~ msgid "Add File" +#~ msgstr "Add File" + +#: src/forms/AttachmentForms.tsx:57 +#~ msgid "Add Link" +#~ msgstr "Add Link" + +#: src/forms/AttachmentForms.tsx:58 +#~ msgid "File added" +#~ msgstr "File added" + +#: src/forms/AttachmentForms.tsx:58 +#~ msgid "Link added" +#~ msgstr "Link added" + +#: src/forms/AttachmentForms.tsx:99 +#~ msgid "Edit File" +#~ msgstr "Edit File" + +#: src/forms/AttachmentForms.tsx:99 +#~ msgid "Edit Link" +#~ msgstr "Edit Link" + +#: src/forms/AttachmentForms.tsx:100 +#~ msgid "File updated" +#~ msgstr "File updated" + +#: src/forms/AttachmentForms.tsx:100 +#~ msgid "Link updated" +#~ msgstr "Link updated" + +#: src/forms/AttachmentForms.tsx:125 +#~ msgid "Attachment deleted" +#~ msgstr "Attachment deleted" + +#: src/forms/AttachmentForms.tsx:128 +#~ msgid "Are you sure you want to delete this attachment?" +#~ msgstr "Are you sure you want to delete this attachment?" + +#: src/forms/BuildForms.tsx:248 +#~ msgid "Remove output" +#~ msgstr "Remove output" + +#: src/forms/BuildForms.tsx:269 +#: src/tables/build/BuildAllocatedStockTable.tsx:147 +#: src/tables/build/BuildOrderTestTable.tsx:177 +#: src/tables/build/BuildOrderTestTable.tsx:201 +#: src/tables/build/BuildOutputTable.tsx:460 +msgid "Build Output" +msgstr "" + +#: src/forms/BuildForms.tsx:269 +#: src/forms/BuildForms.tsx:337 +#: src/forms/BuildForms.tsx:385 +#: src/tables/build/BuildLineTable.tsx:89 +msgid "Batch" +msgstr "" + +#: src/forms/BuildForms.tsx:269 +#: src/forms/BuildForms.tsx:337 +#: src/forms/BuildForms.tsx:385 +#: src/forms/PurchaseOrderForms.tsx:603 +#: src/pages/build/BuildDetail.tsx:104 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:142 +#: src/pages/sales/ReturnOrderDetail.tsx:113 +#: src/pages/sales/SalesOrderDetail.tsx:122 +#: src/tables/build/BuildOrderTable.tsx:125 +#: src/tables/machine/MachineListTable.tsx:336 +#: src/tables/part/PartPurchaseOrdersTable.tsx:37 +#: src/tables/purchasing/PurchaseOrderTable.tsx:58 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:157 +#: src/tables/sales/ReturnOrderTable.tsx:56 +#: src/tables/sales/SalesOrderTable.tsx:56 +#: src/tables/settings/CustomStateTable.tsx:57 +#: src/tables/settings/ImportSessionTable.tsx:114 +#: src/tables/stock/StockItemTable.tsx:298 +#: src/tables/stock/StockTrackingTable.tsx:56 +msgid "Status" +msgstr "" + +#: src/forms/BuildForms.tsx:289 +msgid "Complete Build Outputs" +msgstr "" + +#: src/forms/BuildForms.tsx:292 +msgid "Build outputs have been completed" +msgstr "" + +#: src/forms/BuildForms.tsx:353 +msgid "Scrap Build Outputs" +msgstr "" + +#: src/forms/BuildForms.tsx:356 +msgid "Build outputs have been scrapped" +msgstr "" + +#: src/forms/BuildForms.tsx:393 +msgid "Cancel Build Outputs" +msgstr "" + +#: src/forms/BuildForms.tsx:396 +msgid "Build outputs have been cancelled" +msgstr "" + +#: src/forms/BuildForms.tsx:408 +#~ msgid "Selected build outputs will be deleted" +#~ msgstr "Selected build outputs will be deleted" + +#: src/forms/BuildForms.tsx:470 +#~ msgid "Remove line" +#~ msgstr "Remove line" + +#: src/forms/BuildForms.tsx:515 +#: src/forms/SalesOrderForms.tsx:248 +#: src/tables/build/BuildLineTable.tsx:174 +#: src/tables/sales/SalesOrderLineItemTable.tsx:276 +#: src/tables/stock/StockItemTable.tsx:309 +msgid "Allocated" +msgstr "" + +#: src/forms/BuildForms.tsx:545 +#: src/forms/SalesOrderForms.tsx:239 +#: src/pages/build/BuildDetail.tsx:208 +msgid "Source Location" +msgstr "" + +#: src/forms/BuildForms.tsx:546 +#: src/forms/SalesOrderForms.tsx:240 +msgid "Select the source location for the stock allocation" +msgstr "" + +#: src/forms/BuildForms.tsx:566 +#: src/forms/SalesOrderForms.tsx:274 +#: src/tables/build/BuildLineTable.tsx:442 +#: src/tables/build/BuildLineTable.tsx:569 +#: src/tables/build/BuildLineTable.tsx:642 +#: src/tables/sales/SalesOrderLineItemTable.tsx:302 +#: src/tables/sales/SalesOrderLineItemTable.tsx:326 +msgid "Allocate Stock" +msgstr "" + +#: src/forms/BuildForms.tsx:569 +#: src/forms/SalesOrderForms.tsx:279 +msgid "Stock items allocated" +msgstr "" + +#: src/forms/CompanyForms.tsx:150 +#~ msgid "Company updated" +#~ msgstr "Company updated" + +#: src/forms/PartForms.tsx:67 +#: src/forms/PartForms.tsx:154 +#: src/pages/part/CategoryDetail.tsx:117 +#: src/pages/part/PartDetail.tsx:384 +#: src/tables/part/PartCategoryTable.tsx:90 +#: src/tables/part/PartTable.tsx:294 +msgid "Subscribed" +msgstr "" + +#: src/forms/PartForms.tsx:68 +msgid "Subscribe to notifications for this part" +msgstr "" + +#: src/forms/PartForms.tsx:106 +#~ msgid "Create Part" +#~ msgstr "Create Part" + +#: src/forms/PartForms.tsx:108 +#~ msgid "Part created" +#~ msgstr "Part created" + +#: src/forms/PartForms.tsx:129 +#~ msgid "Part updated" +#~ msgstr "Part updated" + +#: src/forms/PartForms.tsx:140 +msgid "Parent part category" +msgstr "" + +#: src/forms/PartForms.tsx:155 +msgid "Subscribe to notifications for this category" +msgstr "" + +#: src/forms/PurchaseOrderForms.tsx:314 +msgid "Assign Batch Code and Serial Numbers" +msgstr "" + +#: src/forms/PurchaseOrderForms.tsx:316 +msgid "Assign Batch Code" +msgstr "" + +#: src/forms/PurchaseOrderForms.tsx:336 +msgid "Choose Location" +msgstr "" + +#: src/forms/PurchaseOrderForms.tsx:344 +msgid "Item Destination selected" +msgstr "" + +#: src/forms/PurchaseOrderForms.tsx:353 +msgid "Part category default location selected" +msgstr "" + +#: src/forms/PurchaseOrderForms.tsx:363 +msgid "Received stock location selected" +msgstr "" + +#: src/forms/PurchaseOrderForms.tsx:368 +msgid "Default location selected" +msgstr "" + +#: src/forms/PurchaseOrderForms.tsx:421 +#~ msgid "Assign Batch Code{0}" +#~ msgstr "Assign Batch Code{0}" + +#: src/forms/PurchaseOrderForms.tsx:427 +msgid "Set Location" +msgstr "" + +#: src/forms/PurchaseOrderForms.tsx:442 +#: src/forms/StockForms.tsx:539 +msgid "Adjust Packaging" +msgstr "" + +#: src/forms/PurchaseOrderForms.tsx:444 +#: src/forms/StockForms.tsx:428 +#~ msgid "Remove item from list" +#~ msgstr "Remove item from list" + +#: src/forms/PurchaseOrderForms.tsx:450 +msgid "Change Status" +msgstr "" + +#: src/forms/PurchaseOrderForms.tsx:456 +msgid "Add Note" +msgstr "" + +#: src/forms/PurchaseOrderForms.tsx:503 +#: src/forms/StockForms.tsx:614 +#: src/forms/StockForms.tsx:651 +#: src/forms/StockForms.tsx:677 +#: src/forms/StockForms.tsx:705 +#: src/forms/StockForms.tsx:736 +#: src/forms/StockForms.tsx:771 +#: src/forms/StockForms.tsx:813 +#: src/forms/StockForms.tsx:851 +#: src/pages/stock/StockDetail.tsx:202 +#: src/tables/ColumnRenderers.tsx:60 +#: src/tables/stock/StockTrackingTable.tsx:89 +msgid "Location" +msgstr "" + +#: src/forms/PurchaseOrderForms.tsx:518 +msgid "Store at default location" +msgstr "" + +#: src/forms/PurchaseOrderForms.tsx:533 +msgid "Store at line item destination" +msgstr "" + +#: src/forms/PurchaseOrderForms.tsx:545 +msgid "Store with already received stock" +msgstr "" + +#: src/forms/PurchaseOrderForms.tsx:566 +#: src/pages/build/BuildDetail.tsx:222 +#: src/pages/stock/StockDetail.tsx:185 +#: src/pages/stock/StockDetail.tsx:793 +#: src/tables/build/BuildAllocatedStockTable.tsx:130 +#: src/tables/build/BuildOrderTestTable.tsx:189 +#: src/tables/build/BuildOutputTable.tsx:86 +#: src/tables/sales/SalesOrderAllocationTable.tsx:113 +msgid "Batch Code" +msgstr "" + +#: src/forms/PurchaseOrderForms.tsx:566 +#~ msgid "Serial numbers" +#~ msgstr "Serial numbers" + +#: src/forms/PurchaseOrderForms.tsx:567 +msgid "Enter batch code for received items" +msgstr "" + +#: src/forms/PurchaseOrderForms.tsx:579 +#: src/forms/StockForms.tsx:152 +msgid "Serial Numbers" +msgstr "" + +#: src/forms/PurchaseOrderForms.tsx:580 +msgid "Enter serial numbers for received items" +msgstr "" + +#: src/forms/PurchaseOrderForms.tsx:590 +#: src/forms/StockForms.tsx:556 +#: src/pages/company/SupplierPartDetail.tsx:168 +#: src/pages/company/SupplierPartDetail.tsx:219 +#: src/pages/stock/StockDetail.tsx:320 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:198 +msgid "Packaging" +msgstr "" + +#: src/forms/PurchaseOrderForms.tsx:612 +#: src/pages/company/SupplierPartDetail.tsx:115 +#: src/tables/ColumnRenderers.tsx:143 +msgid "Note" +msgstr "" + +#: src/forms/PurchaseOrderForms.tsx:658 +#~ msgid "Receive line items" +#~ msgstr "Receive line items" + +#: src/forms/PurchaseOrderForms.tsx:689 +#: src/pages/company/SupplierPartDetail.tsx:133 +#: src/tables/purchasing/SupplierPriceBreakTable.tsx:57 +msgid "SKU" +msgstr "" + +#: src/forms/PurchaseOrderForms.tsx:689 +#: src/tables/part/PartPurchaseOrdersTable.tsx:126 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:184 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:247 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:152 +msgid "Received" +msgstr "" + +#: src/forms/PurchaseOrderForms.tsx:701 +msgid "Receive Line Items" +msgstr "" + +#: src/forms/ReturnOrderForms.tsx:201 +msgid "Receive Items" +msgstr "" + +#: src/forms/ReturnOrderForms.tsx:208 +msgid "Item received into stock" +msgstr "" + +#: src/forms/StockForms.tsx:80 +#: src/hooks/UsePlaceholder.tsx:57 +msgid "Next serial number" +msgstr "" + +#: src/forms/StockForms.tsx:110 +#~ msgid "Create Stock Item" +#~ msgstr "Create Stock Item" + +#: src/forms/StockForms.tsx:131 +msgid "Add given quantity as packs instead of individual items" +msgstr "" + +#: src/forms/StockForms.tsx:145 +msgid "Enter initial quantity for this stock item" +msgstr "" + +#: src/forms/StockForms.tsx:154 +msgid "Enter serial numbers for new stock (or leave blank)" +msgstr "" + +#: src/forms/StockForms.tsx:158 +#~ msgid "Stock item updated" +#~ msgstr "Stock item updated" + +#: src/forms/StockForms.tsx:169 +#: src/pages/stock/StockDetail.tsx:131 +msgid "Stock Status" +msgstr "" + +#: src/forms/StockForms.tsx:218 +#: src/pages/stock/StockDetail.tsx:554 +#: src/tables/stock/StockItemTable.tsx:421 +#: src/tables/stock/StockItemTable.tsx:541 +msgid "Add Stock Item" +msgstr "" + +#: src/forms/StockForms.tsx:262 +msgid "Select the part to install" +msgstr "" + +#: src/forms/StockForms.tsx:480 +msgid "Loading..." +msgstr "" + +#: src/forms/StockForms.tsx:527 +msgid "Move to default location" +msgstr "" + +#: src/forms/StockForms.tsx:614 +#: src/forms/StockForms.tsx:651 +#: src/forms/StockForms.tsx:677 +#: src/forms/StockForms.tsx:705 +#: src/forms/StockForms.tsx:736 +#: src/forms/StockForms.tsx:771 +#: src/forms/StockForms.tsx:813 +#: src/forms/StockForms.tsx:851 +#: src/pages/part/PartDetail.tsx:251 +#: src/pages/part/PartDetail.tsx:875 +#: src/tables/stock/StockItemTable.tsx:329 +msgid "In Stock" +msgstr "" + +#: src/forms/StockForms.tsx:614 +msgid "Move" +msgstr "" + +#: src/forms/StockForms.tsx:677 +#: src/pages/stock/StockDetail.tsx:681 +#: src/tables/stock/StockItemTestResultTable.tsx:346 +msgid "Add" +msgstr "" + +#: src/forms/StockForms.tsx:705 +#: src/pages/Index/Scan.tsx:280 +#: src/pages/stock/StockDetail.tsx:670 +msgid "Count" +msgstr "" + +#: src/forms/StockForms.tsx:953 +#: src/pages/stock/StockDetail.tsx:682 +#: src/tables/stock/StockItemTable.tsx:454 +msgid "Add Stock" +msgstr "" + +#: src/forms/StockForms.tsx:962 +#: src/pages/stock/StockDetail.tsx:691 +#: src/tables/stock/StockItemTable.tsx:463 +msgid "Remove Stock" +msgstr "" + +#: src/forms/StockForms.tsx:971 +#: src/pages/part/PartDetail.tsx:1039 +#: src/pages/stock/StockDetail.tsx:712 +#: src/tables/stock/StockItemTable.tsx:483 +msgid "Transfer Stock" +msgstr "" + +#: src/forms/StockForms.tsx:980 +#: src/pages/part/PartDetail.tsx:1028 +#: src/pages/stock/LocationDetail.tsx:314 +#: src/pages/stock/LocationDetail.tsx:318 +#: src/tables/stock/StockItemTable.tsx:472 +#: src/tables/stock/StockItemTable.tsx:476 +msgid "Count Stock" +msgstr "" + +#: src/forms/StockForms.tsx:989 +msgid "Change Stock Status" +msgstr "" + +#: src/forms/StockForms.tsx:998 +msgid "Merge Stock" +msgstr "" + +#: src/forms/StockForms.tsx:1017 +#: src/tables/stock/StockItemTable.tsx:530 +msgid "Delete Stock Items" +msgstr "" + +#: src/forms/StockForms.tsx:1024 +msgid "Parent stock location" +msgstr "" + +#: src/functions/auth.tsx:34 +#~ msgid "Error fetching token from server." +#~ msgstr "Error fetching token from server." + +#: src/functions/auth.tsx:36 +#~ msgid "Logout successfull" +#~ msgstr "Logout successfull" + +#: src/functions/auth.tsx:60 +#~ msgid "See you soon." +#~ msgstr "See you soon." + +#: src/functions/auth.tsx:70 +#~ msgid "Logout successful" +#~ msgstr "Logout successful" + +#: src/functions/auth.tsx:71 +#~ msgid "You have been logged out" +#~ msgstr "You have been logged out" + +#: src/functions/auth.tsx:128 +msgid "Logged Out" +msgstr "" + +#: src/functions/auth.tsx:129 +msgid "Successfully logged out" +msgstr "" + +#: src/functions/auth.tsx:141 +#~ msgid "Already logged in" +#~ msgstr "Already logged in" + +#: src/functions/auth.tsx:142 +#~ msgid "Found an existing login - using it to log you in." +#~ msgstr "Found an existing login - using it to log you in." + +#: src/functions/auth.tsx:143 +#~ msgid "Found an existing login - welcome back!" +#~ msgstr "Found an existing login - welcome back!" + +#: src/functions/auth.tsx:167 +msgid "Check your inbox for a reset link. This only works if you have an account. Check in spam too." +msgstr "" + +#: src/functions/auth.tsx:174 +#: src/pages/Auth/Set-Password.tsx:39 +msgid "Reset failed" +msgstr "" + +#: src/functions/auth.tsx:205 +msgid "Logged In" +msgstr "" + +#: src/functions/auth.tsx:206 +msgid "Successfully logged in" +msgstr "" + +#: src/functions/forms.tsx:50 +#~ msgid "Form method not provided" +#~ msgstr "Form method not provided" + +#: src/functions/forms.tsx:59 +#~ msgid "Response did not contain action data" +#~ msgstr "Response did not contain action data" + +#: src/functions/forms.tsx:182 +#~ msgid "Invalid Form" +#~ msgstr "Invalid Form" + +#: src/functions/forms.tsx:183 +#~ msgid "method parameter not supplied" +#~ msgstr "method parameter not supplied" + +#: src/functions/notifications.tsx:12 +msgid "Not implemented" +msgstr "" + +#: src/functions/notifications.tsx:13 +msgid "This feature is not yet implemented" +msgstr "" + +#: src/functions/notifications.tsx:24 +#~ msgid "Permission denied" +#~ msgstr "Permission denied" + +#: src/functions/notifications.tsx:25 +msgid "You do not have permission to perform this action" +msgstr "" + +#: src/functions/notifications.tsx:36 +msgid "Invalid Return Code" +msgstr "" + +#: src/functions/notifications.tsx:37 +msgid "Server returned status {returnCode}" +msgstr "" + +#: src/functions/notifications.tsx:47 +msgid "Timeout" +msgstr "" + +#: src/functions/notifications.tsx:48 +msgid "The request timed out" +msgstr "" + +#: src/hooks/UseForm.tsx:88 +msgid "Item Created" +msgstr "" + +#: src/hooks/UseForm.tsx:105 +msgid "Item Updated" +msgstr "" + +#: src/hooks/UseForm.tsx:124 +msgid "Item Deleted" +msgstr "" + +#: src/hooks/UseForm.tsx:128 +msgid "Are you sure you want to delete this item?" +msgstr "" + +#: src/hooks/UsePlaceholder.tsx:59 +msgid "Latest serial number" +msgstr "" + +#: src/pages/Auth/Logged-In.tsx:22 +msgid "Checking if you are already logged in" +msgstr "" + +#: src/pages/Auth/Login.tsx:35 +#: src/pages/Index/Scan.tsx:343 +msgid "No selection" +msgstr "" + +#: src/pages/Auth/Login.tsx:91 +msgid "Welcome, log in below" +msgstr "" + +#: src/pages/Auth/Login.tsx:93 +msgid "Register below" +msgstr "" + +#: src/pages/Auth/Login.tsx:121 +#~ msgid "Edit host options" +#~ msgstr "Edit host options" + +#: src/pages/Auth/Logout.tsx:22 +msgid "Logging out" +msgstr "" + +#: src/pages/Auth/Reset.tsx:41 +#: src/pages/Auth/Set-Password.tsx:112 +#~ msgid "Send mail" +#~ msgstr "Send mail" + +#: src/pages/Auth/Set-Password.tsx:30 +msgid "Token invalid" +msgstr "" + +#: src/pages/Auth/Set-Password.tsx:31 +msgid "You need to provide a valid token to set a new password. Check your inbox for a reset link." +msgstr "" + +#: src/pages/Auth/Set-Password.tsx:49 +#~ msgid "No token provided" +#~ msgstr "No token provided" + +#: src/pages/Auth/Set-Password.tsx:50 +#~ msgid "You need to provide a token to set a new password. Check your inbox for a reset link." +#~ msgstr "You need to provide a token to set a new password. Check your inbox for a reset link." + +#: src/pages/Auth/Set-Password.tsx:68 +msgid "Password set" +msgstr "" + +#: src/pages/Auth/Set-Password.tsx:69 +msgid "The password was set successfully. You can now login with your new password" +msgstr "" + +#: src/pages/Auth/Set-Password.tsx:96 +msgid "Set new password" +msgstr "" + +#: src/pages/ErrorPage.tsx:16 +msgid "Error: {0}" +msgstr "" + +#: src/pages/ErrorPage.tsx:23 +msgid "An unexpected error has occurred" +msgstr "" + +#: src/pages/ErrorPage.tsx:28 +#~ msgid "Sorry, an unexpected error has occurred." +#~ msgstr "Sorry, an unexpected error has occurred." + +#: src/pages/Index/Dashboard.tsx:22 +#~ msgid "Autoupdate" +#~ msgstr "Autoupdate" + +#: src/pages/Index/Dashboard.tsx:26 +#~ msgid "This page is a replacement for the old start page with the same information. This page will be deprecated and replaced by the home page." +#~ msgstr "This page is a replacement for the old start page with the same information. This page will be deprecated and replaced by the home page." + +#: src/pages/Index/Home.tsx:58 +#~ msgid "Welcome to your Dashboard{0}" +#~ msgstr "Welcome to your Dashboard{0}" + +#: src/pages/Index/Playground.tsx:222 +#~ msgid "This page is a showcase for the possibilities of Platform UI." +#~ msgstr "This page is a showcase for the possibilities of Platform UI." + +#: src/pages/Index/Profile/Profile.tsx:30 +#: src/pages/Index/Profile/Profile.tsx:141 +#~ msgid "Notification Settings" +#~ msgstr "Notification Settings" + +#: src/pages/Index/Profile/Profile.tsx:33 +#~ msgid "Global Settings" +#~ msgstr "Global Settings" + +#: src/pages/Index/Profile/Profile.tsx:47 +#~ msgid "Settings for the current user" +#~ msgstr "Settings for the current user" + +#: src/pages/Index/Profile/Profile.tsx:51 +#~ msgid "Home Page Settings" +#~ msgstr "Home Page Settings" + +#: src/pages/Index/Profile/Profile.tsx:76 +#~ msgid "Search Settings" +#~ msgstr "Search Settings" + +#: src/pages/Index/Profile/Profile.tsx:115 +#: src/pages/Index/Profile/Profile.tsx:211 +#~ msgid "Label Settings" +#~ msgstr "Label Settings" + +#: src/pages/Index/Profile/Profile.tsx:120 +#: src/pages/Index/Profile/Profile.tsx:219 +#~ msgid "Report Settings" +#~ msgstr "Report Settings" + +#: src/pages/Index/Profile/Profile.tsx:142 +#~ msgid "Settings for the notifications" +#~ msgstr "Settings for the notifications" + +#: src/pages/Index/Profile/Profile.tsx:148 +#~ msgid "Global Server Settings" +#~ msgstr "Global Server Settings" + +#: src/pages/Index/Profile/Profile.tsx:149 +#~ msgid "Global Settings for this instance" +#~ msgstr "Global Settings for this instance" + +#: src/pages/Index/Profile/Profile.tsx:153 +#~ msgid "Server Settings" +#~ msgstr "Server Settings" + +#: src/pages/Index/Profile/Profile.tsx:187 +#~ msgid "Login Settings" +#~ msgstr "Login Settings" + +#: src/pages/Index/Profile/Profile.tsx:202 +#~ msgid "Barcode Settings" +#~ msgstr "Barcode Settings" + +#: src/pages/Index/Profile/Profile.tsx:230 +#~ msgid "Part Settings" +#~ msgstr "Part Settings" + +#: src/pages/Index/Profile/Profile.tsx:255 +#~ msgid "Pricing Settings" +#~ msgstr "Pricing Settings" + +#: src/pages/Index/Profile/Profile.tsx:270 +#~ msgid "Stock Settings" +#~ msgstr "Stock Settings" + +#: src/pages/Index/Profile/Profile.tsx:284 +#~ msgid "Build Order Settings" +#~ msgstr "Build Order Settings" + +#: src/pages/Index/Profile/Profile.tsx:289 +#~ msgid "Purchase Order Settings" +#~ msgstr "Purchase Order Settings" + +#: src/pages/Index/Profile/Profile.tsx:300 +#~ msgid "Sales Order Settings" +#~ msgstr "Sales Order Settings" + +#: src/pages/Index/Profile/Profile.tsx:330 +#~ msgid "Plugin Settings for this instance" +#~ msgstr "Plugin Settings for this instance" + +#: src/pages/Index/Profile/SettingsPanel.tsx:27 +#~ msgid "Data is current beeing loaded" +#~ msgstr "Data is current beeing loaded" + +#: src/pages/Index/Profile/SettingsPanel.tsx:69 +#: src/pages/Index/Profile/SettingsPanel.tsx:76 +#~ msgid "Failed to load" +#~ msgstr "Failed to load" + +#: src/pages/Index/Profile/SettingsPanel.tsx:100 +#~ msgid "Show internal names" +#~ msgstr "Show internal names" + +#: src/pages/Index/Profile/SettingsPanel.tsx:148 +#~ msgid "Input {0} is not known" +#~ msgstr "Input {0} is not known" + +#: src/pages/Index/Profile/SettingsPanel.tsx:161 +#~ msgid "Saved changes {0}" +#~ msgstr "Saved changes {0}" + +#: src/pages/Index/Profile/SettingsPanel.tsx:162 +#~ msgid "Changed to {0}" +#~ msgstr "Changed to {0}" + +#: src/pages/Index/Profile/SettingsPanel.tsx:176 +#~ msgid "Error while saving {0}" +#~ msgstr "Error while saving {0}" + +#: src/pages/Index/Profile/SettingsPanel.tsx:177 +#~ msgid "Error was {err}" +#~ msgstr "Error was {err}" + +#: src/pages/Index/Profile/SettingsPanel.tsx:257 +#~ msgid "Plugin: {0}" +#~ msgstr "Plugin: {0}" + +#: src/pages/Index/Profile/SettingsPanel.tsx:262 +#~ msgid "Method: {0}" +#~ msgstr "Method: {0}" + +#: src/pages/Index/Profile/UserPanel.tsx:85 +#~ msgid "Userinfo" +#~ msgstr "Userinfo" + +#: src/pages/Index/Profile/UserPanel.tsx:122 +#~ msgid "Username: {0}" +#~ msgstr "Username: {0}" + +#: src/pages/Index/Profile/UserTheme.tsx:83 +#~ msgid "Design <0/>" +#~ msgstr "Design <0/>" + +#: src/pages/Index/Scan.tsx:216 +msgid "Manual input" +msgstr "" + +#: src/pages/Index/Scan.tsx:217 +msgid "Image Barcode" +msgstr "" + +#: src/pages/Index/Scan.tsx:261 +msgid "Selected elements are not known" +msgstr "" + +#: src/pages/Index/Scan.tsx:268 +msgid "Multiple object types selected" +msgstr "" + +#: src/pages/Index/Scan.tsx:275 +msgid "Actions for {0}" +msgstr "" + +#: src/pages/Index/Scan.tsx:296 +msgid "Scan Page" +msgstr "" + +#: src/pages/Index/Scan.tsx:299 +msgid "This page can be used for continuously scanning items and taking actions on them." +msgstr "" + +#: src/pages/Index/Scan.tsx:306 +msgid "Toggle Fullscreen" +msgstr "" + +#: src/pages/Index/Scan.tsx:319 +msgid "Select the input method you want to use to scan items." +msgstr "" + +#: src/pages/Index/Scan.tsx:321 +msgid "Input" +msgstr "" + +#: src/pages/Index/Scan.tsx:328 +msgid "Select input method" +msgstr "" + +#: src/pages/Index/Scan.tsx:329 +msgid "Nothing found" +msgstr "" + +#: src/pages/Index/Scan.tsx:337 +msgid "Depending on the selected parts actions will be shown here. Not all barcode types are supported currently." +msgstr "" + +#: src/pages/Index/Scan.tsx:339 +msgid "Action" +msgstr "" + +#: src/pages/Index/Scan.tsx:348 +msgid "{0} items selected" +msgstr "" + +#: src/pages/Index/Scan.tsx:351 +msgid "General Actions" +msgstr "" + +#: src/pages/Index/Scan.tsx:365 +msgid "Lookup part" +msgstr "" + +#: src/pages/Index/Scan.tsx:373 +msgid "Open Link" +msgstr "" + +#: src/pages/Index/Scan.tsx:389 +msgid "History is locally kept in this browser." +msgstr "" + +#: src/pages/Index/Scan.tsx:390 +msgid "The history is kept in this browser's local storage. So it won't be shared with other users or other devices but is persistent through reloads. You can select items in the history to perform actions on them. To add items, scan/enter them in the Input area." +msgstr "" + +#: src/pages/Index/Scan.tsx:392 +#: src/pages/Notifications.tsx:100 +msgid "History" +msgstr "" + +#: src/pages/Index/Scan.tsx:398 +msgid "Delete History" +msgstr "" + +#: src/pages/Index/Scan.tsx:463 +msgid "No history" +msgstr "" + +#: src/pages/Index/Scan.tsx:481 +msgid "Item" +msgstr "" + +#: src/pages/Index/Scan.tsx:484 +msgid "Type" +msgstr "" + +#: src/pages/Index/Scan.tsx:487 +msgid "Source" +msgstr "" + +#: src/pages/Index/Scan.tsx:490 +msgid "Scanned at" +msgstr "" + +#: src/pages/Index/Scan.tsx:547 +msgid "Enter item serial or data" +msgstr "" + +#: src/pages/Index/Scan.tsx:559 +msgid "Add dummy item" +msgstr "" + +#: src/pages/Index/Scan.tsx:569 +msgid "Start scanning by selecting a camera and pressing the play button." +msgstr "" + +#: src/pages/Index/Scan.tsx:650 +msgid "Error while getting camera" +msgstr "" + +#: src/pages/Index/Scan.tsx:673 +msgid "Error while scanning" +msgstr "" + +#: src/pages/Index/Scan.tsx:687 +msgid "Error while stopping" +msgstr "" + +#: src/pages/Index/Scan.tsx:745 +msgid "Stop scanning" +msgstr "" + +#: src/pages/Index/Scan.tsx:754 +msgid "Start scanning" +msgstr "" + +#: src/pages/Index/Scan.tsx:763 +msgid "Scanning" +msgstr "" + +#: src/pages/Index/Scan.tsx:763 +msgid "Not scanning" +msgstr "" + +#: src/pages/Index/Scan.tsx:775 +msgid "Select Camera" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:28 +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:50 +msgid "Edit User Information" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:32 +msgid "User details updated" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:41 +msgid "User Details" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:41 +#~ msgid "Account Details" +#~ msgstr "Account Details" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:44 +msgid "User Actions" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:48 +msgid "Edit User" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:50 +#~ msgid "First name" +#~ msgstr "First name" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:54 +msgid "Set Password" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:55 +#~ msgid "Last name" +#~ msgstr "Last name" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:56 +msgid "Set User Password" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:58 +#~ msgid "First name: {0}" +#~ msgstr "First name: {0}" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:61 +#~ msgid "Last name: {0}" +#~ msgstr "Last name: {0}" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:67 +#~ msgid "First name:" +#~ msgstr "First name:" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:71 +#~ msgid "Last name:" +#~ msgstr "Last name:" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:73 +msgid "First Name" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:79 +msgid "Last Name" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:85 +msgid "Staff Access" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:93 +#: src/tables/settings/UserTable.tsx:293 +msgid "Superuser" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:55 +msgid "Single Sign On Accounts" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:62 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:80 +msgid "Not enabled" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:65 +msgid "Single Sign On is not enabled for this server" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:69 +msgid "Multifactor" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:83 +msgid "Multifactor authentication is not configured for your account" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:92 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:407 +msgid "Token" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:139 +msgid "The following email addresses are associated with your account:" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:151 +msgid "Primary" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:156 +msgid "Verified" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:160 +msgid "Unverified" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:173 +msgid "Add Email Address" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:176 +msgid "E-Mail" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:177 +msgid "E-Mail address" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:189 +msgid "Make Primary" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:194 +msgid "Re-send Verification" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:205 +msgid "Add Email" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:270 +msgid "Provider has not been configured" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:280 +msgid "Not configured" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:283 +msgid "There are no social network accounts connected to this account." +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:293 +msgid "You can sign in to your account using any of the following third party accounts" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:368 +msgid "Token is used - no actions" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:375 +msgid "Revoke" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:389 +msgid "No tokens configured" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:401 +msgid "Expiry" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:404 +msgid "Last Seen" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:65 +#~ msgid "bars" +#~ msgstr "bars" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:66 +#~ msgid "oval" +#~ msgstr "oval" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:67 +#~ msgid "dots" +#~ msgstr "dots" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:81 +#~ msgid "Theme" +#~ msgstr "Theme" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:87 +#~ msgid "Primary color" +#~ msgstr "Primary color" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:88 +msgid "Bars" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:89 +msgid "Oval" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:90 +msgid "Dots" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:101 +msgid "Display Settings" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:107 +msgid "Language" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:115 +msgid "Use pseudo language" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:122 +msgid "Color Mode" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:133 +msgid "Highlight color" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:145 +msgid "Example" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:151 +msgid "White color" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:167 +msgid "Black color" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:183 +msgid "Border Radius" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:199 +msgid "Loader" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter.tsx:30 +#~ msgid "User Management" +#~ msgstr "User Management" + +#: src/pages/Index/Settings/AdminCenter.tsx:91 +#~ msgid "Advanced Amininistrative Options for InvenTree" +#~ msgstr "Advanced Amininistrative Options for InvenTree" + +#: src/pages/Index/Settings/AdminCenter/CurrencyManagmentPanel.tsx:27 +#: src/tables/ColumnRenderers.tsx:262 +msgid "Currency" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/CurrencyManagmentPanel.tsx:32 +msgid "Rate" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/CurrencyManagmentPanel.tsx:44 +msgid "Exchange rates updated" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/CurrencyManagmentPanel.tsx:50 +msgid "Exchange rate update error" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/CurrencyManagmentPanel.tsx:62 +msgid "Refresh currency exchange rates" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/CurrencyManagmentPanel.tsx:99 +msgid "Last fetched" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/CurrencyManagmentPanel.tsx:100 +msgid "Base currency" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:115 +msgid "Data Import" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:121 +msgid "Barcode Scans" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:127 +msgid "Background Tasks" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:127 +#~ msgid "Templates" +#~ msgstr "Templates" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:133 +msgid "Error Reports" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:139 +msgid "Currencies" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:157 +msgid "Custom States" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:163 +#: src/pages/Index/Settings/AdminCenter/UnitManagmentPanel.tsx:58 +msgid "Custom Units" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:169 +#: src/pages/part/CategoryDetail.tsx:269 +msgid "Part Parameters" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:170 +#~ msgid "Location types" +#~ msgstr "Location types" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:175 +msgid "Category Parameters" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:181 +msgid "Stocktake" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:199 +msgid "Location Types" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:211 +#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:48 +#: src/tables/machine/MachineTypeTable.tsx:308 +msgid "Machines" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:221 +msgid "Quick Actions" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:226 +msgid "Add a new user" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:252 +msgid "Advanced Options" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:43 +#~ msgid "Machine types" +#~ msgstr "Machine types" + +#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:53 +#~ msgid "Machine Error Stack" +#~ msgstr "Machine Error Stack" + +#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:56 +msgid "Machine Types" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:62 +#~ msgid "There are no machine registry errors." +#~ msgstr "There are no machine registry errors." + +#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:64 +msgid "Machine Errors" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:77 +msgid "Registry Registry Errors" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:80 +msgid "There are machine registry errors" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:86 +msgid "Machine Registry Errors" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:89 +msgid "There are no machine registry errors" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:31 +#: src/tables/settings/UserTable.tsx:118 +msgid "Info" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:33 +#~ msgid "Plugin Error Stack" +#~ msgstr "Plugin Error Stack" + +#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:35 +msgid "External plugins are not enabled for this InvenTree installation." +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:45 +#~ msgid "Warning" +#~ msgstr "Warning" + +#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:47 +#~ msgid "Changing the settings below require you to immediately restart the server. Do not change this while under active usage." +#~ msgstr "Changing the settings below require you to immediately restart the server. Do not change this while under active usage." + +#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:73 +msgid "Plugin Errors" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/ReportTemplatePanel.tsx:17 +msgid "Page Size" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/ReportTemplatePanel.tsx:20 +msgid "Landscape" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/ReportTemplatePanel.tsx:26 +msgid "Attach to Model" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/StocktakePanel.tsx:25 +msgid "Stocktake Reports" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:30 +msgid "The background task manager service is not running. Contact your system administrator." +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:35 +#~ msgid "Background Worker Not Running" +#~ msgstr "Background Worker Not Running" + +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:36 +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:45 +msgid "Pending Tasks" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:37 +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:53 +msgid "Scheduled Tasks" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:38 +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:61 +msgid "Failed Tasks" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/TemplateManagementPanel.tsx:39 +#~ msgid "Label" +#~ msgstr "Label" + +#: src/pages/Index/Settings/AdminCenter/TemplateManagementPanel.tsx:67 +#~ msgid "Stock item" +#~ msgstr "Stock item" + +#: src/pages/Index/Settings/AdminCenter/TemplateManagementPanel.tsx:76 +#~ msgid "Build line" +#~ msgstr "Build line" + +#: src/pages/Index/Settings/AdminCenter/TemplateManagementPanel.tsx:88 +#~ msgid "Reports" +#~ msgstr "Reports" + +#: src/pages/Index/Settings/AdminCenter/TemplateManagementPanel.tsx:99 +#~ msgid "Purchase order" +#~ msgstr "Purchase order" + +#: src/pages/Index/Settings/AdminCenter/TemplateManagementPanel.tsx:108 +#~ msgid "Sales order" +#~ msgstr "Sales order" + +#: src/pages/Index/Settings/AdminCenter/TemplateManagementPanel.tsx:117 +#~ msgid "Return order" +#~ msgstr "Return order" + +#: src/pages/Index/Settings/AdminCenter/TemplateManagementPanel.tsx:145 +#~ msgid "Tests" +#~ msgstr "Tests" + +#: src/pages/Index/Settings/AdminCenter/TemplateManagementPanel.tsx:154 +#~ msgid "Stock location" +#~ msgstr "Stock location" + +#: src/pages/Index/Settings/AdminCenter/UnitManagmentPanel.tsx:21 +msgid "Alias" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/UnitManagmentPanel.tsx:22 +msgid "Dimensionless" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/UnitManagmentPanel.tsx:66 +msgid "All units" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:32 +msgid "Select settings relevant for user lifecycle. More available in" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:37 +#~ msgid "System settings" +#~ msgstr "System settings" + +#: src/pages/Index/Settings/SystemSettings.tsx:66 +msgid "Login" +msgstr "" + +#: src/pages/Index/Settings/SystemSettings.tsx:92 +msgid "Barcodes" +msgstr "" + +#: src/pages/Index/Settings/SystemSettings.tsx:116 +msgid "Pricing" +msgstr "" + +#: src/pages/Index/Settings/SystemSettings.tsx:118 +#~ msgid "Physical Units" +#~ msgstr "Physical Units" + +#: src/pages/Index/Settings/SystemSettings.tsx:135 +#~ msgid "Exchange Rates" +#~ msgstr "Exchange Rates" + +#: src/pages/Index/Settings/SystemSettings.tsx:151 +msgid "Labels" +msgstr "" + +#: src/pages/Index/Settings/SystemSettings.tsx:157 +#: src/pages/Index/Settings/UserSettings.tsx:133 +msgid "Reporting" +msgstr "" + +#: src/pages/Index/Settings/SystemSettings.tsx:231 +#: src/pages/build/BuildIndex.tsx:27 +#: src/pages/part/PartDetail.tsx:636 +#: src/pages/sales/SalesOrderDetail.tsx:355 +msgid "Build Orders" +msgstr "" + +#: src/pages/Index/Settings/SystemSettings.tsx:317 +#~ msgid "Switch to User Setting" +#~ msgstr "Switch to User Setting" + +#: src/pages/Index/Settings/UserSettings.tsx:35 +msgid "Account" +msgstr "" + +#: src/pages/Index/Settings/UserSettings.tsx:41 +msgid "Security" +msgstr "" + +#: src/pages/Index/Settings/UserSettings.tsx:79 +msgid "Display Options" +msgstr "" + +#: src/pages/Index/Settings/UserSettings.tsx:159 +#~ msgid "Switch to System Setting" +#~ msgstr "Switch to System Setting" + +#: src/pages/Logged-In.tsx:24 +#~ msgid "Found an exsisting login - using it to log you in." +#~ msgstr "Found an exsisting login - using it to log you in." + +#: src/pages/NotFound.tsx:20 +#~ msgid "Sorry, this page is not known or was moved." +#~ msgstr "Sorry, this page is not known or was moved." + +#: src/pages/NotFound.tsx:27 +#~ msgid "Go to the start page" +#~ msgstr "Go to the start page" + +#: src/pages/Notifications.tsx:43 +msgid "Delete Notifications" +msgstr "" + +#: src/pages/Notifications.tsx:108 +msgid "Mark as unread" +msgstr "" + +#: src/pages/build/BuildDetail.tsx:80 +#~ msgid "Build Status" +#~ msgstr "Build Status" + +#: src/pages/build/BuildDetail.tsx:97 +#: src/pages/company/ManufacturerPartDetail.tsx:81 +#: src/pages/company/SupplierPartDetail.tsx:91 +#: src/pages/part/PartDetail.tsx:171 +#: src/pages/stock/StockDetail.tsx:122 +#: src/tables/bom/BomTable.tsx:118 +#: src/tables/bom/UsedInTable.tsx:39 +#: src/tables/build/BuildAllocatedStockTable.tsx:104 +#: src/tables/build/BuildLineTable.tsx:324 +#: src/tables/build/BuildOrderTable.tsx:64 +#: src/tables/sales/SalesOrderLineItemTable.tsx:70 +#: src/tables/stock/StockItemTable.tsx:54 +msgid "IPN" +msgstr "" + +#: src/pages/build/BuildDetail.tsx:110 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:115 +#: src/pages/sales/ReturnOrderDetail.tsx:86 +#: src/pages/sales/SalesOrderDetail.tsx:95 +#: src/tables/ColumnRenderers.tsx:132 +#: src/tables/build/BuildAllocatedStockTable.tsx:111 +#: src/tables/build/BuildLineTable.tsx:335 +msgid "Reference" +msgstr "" + +#: src/pages/build/BuildDetail.tsx:124 +msgid "Parent Build" +msgstr "" + +#: src/pages/build/BuildDetail.tsx:135 +msgid "Build Quantity" +msgstr "" + +#: src/pages/build/BuildDetail.tsx:143 +#: src/pages/build/BuildDetail.tsx:277 +msgid "Completed Outputs" +msgstr "" + +#: src/pages/build/BuildDetail.tsx:160 +#: src/tables/build/BuildOrderTable.tsx:142 +msgid "Issued By" +msgstr "" + +#: src/pages/build/BuildDetail.tsx:167 +#: src/pages/part/PartDetail.tsx:406 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:244 +#: src/pages/sales/ReturnOrderDetail.tsx:216 +#: src/pages/sales/SalesOrderDetail.tsx:226 +#: src/tables/build/BuildOrderTable.tsx:148 +#: src/tables/purchasing/PurchaseOrderTable.tsx:76 +#: src/tables/sales/ReturnOrderTable.tsx:74 +#: src/tables/sales/SalesOrderTable.tsx:74 +msgid "Responsible" +msgstr "" + +#: src/pages/build/BuildDetail.tsx:174 +#: src/tables/settings/PendingTasksTable.tsx:36 +msgid "Created" +msgstr "" + +#: src/pages/build/BuildDetail.tsx:181 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:229 +#: src/pages/sales/ReturnOrderDetail.tsx:201 +#: src/pages/sales/SalesOrderDetail.tsx:212 +#: src/tables/ColumnRenderers.tsx:226 +#: src/tables/part/PartPurchaseOrdersTable.tsx:100 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:135 +#: src/tables/sales/SalesOrderLineItemTable.tsx:107 +msgid "Target Date" +msgstr "" + +#: src/pages/build/BuildDetail.tsx:185 +#: src/pages/part/PartDetail.tsx:269 +#: src/pages/stock/StockDetail.tsx:150 +#~ msgid "View part barcode" +#~ msgstr "View part barcode" + +#: src/pages/build/BuildDetail.tsx:188 +#: src/tables/sales/SalesOrderLineItemTable.tsx:281 +msgid "Completed" +msgstr "" + +#: src/pages/build/BuildDetail.tsx:190 +#: src/pages/part/PartDetail.tsx:274 +#~ msgid "Link custom barcode to part" +#~ msgstr "Link custom barcode to part" + +#: src/pages/build/BuildDetail.tsx:196 +#: src/pages/part/PartDetail.tsx:280 +#~ msgid "Unlink custom barcode from part" +#~ msgstr "Unlink custom barcode from part" + +#: src/pages/build/BuildDetail.tsx:202 +#~ msgid "Build Order updated" +#~ msgstr "Build Order updated" + +#: src/pages/build/BuildDetail.tsx:209 +msgid "Any location" +msgstr "" + +#: src/pages/build/BuildDetail.tsx:216 +msgid "Destination Location" +msgstr "" + +#: src/pages/build/BuildDetail.tsx:221 +#~ msgid "Edit build order" +#~ msgstr "Edit build order" + +#: src/pages/build/BuildDetail.tsx:226 +#~ msgid "Duplicate build order" +#~ msgstr "Duplicate build order" + +#: src/pages/build/BuildDetail.tsx:231 +#~ msgid "Delete build order" +#~ msgstr "Delete build order" + +#: src/pages/build/BuildDetail.tsx:254 +msgid "Build Details" +msgstr "" + +#: src/pages/build/BuildDetail.tsx:260 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:282 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:291 +#: src/pages/sales/ReturnOrderDetail.tsx:122 +#: src/pages/sales/ReturnOrderDetail.tsx:254 +#: src/pages/sales/ReturnOrderDetail.tsx:263 +#: src/pages/sales/SalesOrderDetail.tsx:294 +#: src/pages/sales/SalesOrderDetail.tsx:303 +msgid "Line Items" +msgstr "" + +#: src/pages/build/BuildDetail.tsx:266 +msgid "Incomplete Outputs" +msgstr "" + +#: src/pages/build/BuildDetail.tsx:292 +#: src/pages/sales/SalesOrderDetail.tsx:341 +msgid "Allocated Stock" +msgstr "" + +#: src/pages/build/BuildDetail.tsx:302 +msgid "Consumed Stock" +msgstr "" + +#: src/pages/build/BuildDetail.tsx:316 +msgid "Child Build Orders" +msgstr "" + +#: src/pages/build/BuildDetail.tsx:326 +#: src/tables/build/BuildOutputTable.tsx:532 +#: src/tables/stock/StockItemTestResultTable.tsx:156 +msgid "Test Results" +msgstr "" + +#: src/pages/build/BuildDetail.tsx:337 +#: src/pages/part/PartDetail.tsx:740 +msgid "Test Statistics" +msgstr "" + +#: src/pages/build/BuildDetail.tsx:365 +msgid "Edit Build Order" +msgstr "" + +#: src/pages/build/BuildDetail.tsx:368 +#~ msgid "Reporting Actions" +#~ msgstr "Reporting Actions" + +#: src/pages/build/BuildDetail.tsx:372 +#: src/tables/build/BuildOrderTable.tsx:173 +#: src/tables/build/BuildOrderTable.tsx:188 +msgid "Add Build Order" +msgstr "" + +#: src/pages/build/BuildDetail.tsx:374 +#~ msgid "Print build report" +#~ msgstr "Print build report" + +#: src/pages/build/BuildDetail.tsx:386 +msgid "Cancel Build Order" +msgstr "" + +#: src/pages/build/BuildDetail.tsx:388 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:357 +#: src/pages/sales/ReturnOrderDetail.tsx:354 +#: src/pages/sales/SalesOrderDetail.tsx:387 +msgid "Order cancelled" +msgstr "" + +#: src/pages/build/BuildDetail.tsx:389 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:356 +#: src/pages/sales/ReturnOrderDetail.tsx:353 +#: src/pages/sales/SalesOrderDetail.tsx:386 +msgid "Cancel this order" +msgstr "" + +#: src/pages/build/BuildDetail.tsx:398 +msgid "Hold Build Order" +msgstr "" + +#: src/pages/build/BuildDetail.tsx:400 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:364 +#: src/pages/sales/ReturnOrderDetail.tsx:361 +#: src/pages/sales/SalesOrderDetail.tsx:394 +msgid "Place this order on hold" +msgstr "" + +#: src/pages/build/BuildDetail.tsx:401 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:365 +#: src/pages/sales/ReturnOrderDetail.tsx:362 +#: src/pages/sales/SalesOrderDetail.tsx:395 +msgid "Order placed on hold" +msgstr "" + +#: src/pages/build/BuildDetail.tsx:406 +msgid "Issue Build Order" +msgstr "" + +#: src/pages/build/BuildDetail.tsx:408 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:348 +#: src/pages/sales/ReturnOrderDetail.tsx:345 +#: src/pages/sales/SalesOrderDetail.tsx:378 +msgid "Issue this order" +msgstr "" + +#: src/pages/build/BuildDetail.tsx:409 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:349 +#: src/pages/sales/ReturnOrderDetail.tsx:346 +#: src/pages/sales/SalesOrderDetail.tsx:379 +msgid "Order issued" +msgstr "" + +#: src/pages/build/BuildDetail.tsx:414 +msgid "Complete Build Order" +msgstr "" + +#: src/pages/build/BuildDetail.tsx:416 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:377 +#: src/pages/sales/ReturnOrderDetail.tsx:369 +#: src/pages/sales/SalesOrderDetail.tsx:402 +msgid "Mark this order as complete" +msgstr "" + +#: src/pages/build/BuildDetail.tsx:417 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:371 +#: src/pages/sales/ReturnOrderDetail.tsx:370 +#: src/pages/sales/SalesOrderDetail.tsx:403 +msgid "Order completed" +msgstr "" + +#: src/pages/build/BuildDetail.tsx:448 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:400 +#: src/pages/sales/ReturnOrderDetail.tsx:399 +#: src/pages/sales/SalesOrderDetail.tsx:432 +msgid "Issue Order" +msgstr "" + +#: src/pages/build/BuildDetail.tsx:455 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:407 +#: src/pages/sales/ReturnOrderDetail.tsx:406 +#: src/pages/sales/SalesOrderDetail.tsx:446 +msgid "Complete Order" +msgstr "" + +#: src/pages/build/BuildDetail.tsx:473 +msgid "Build Order Actions" +msgstr "" + +#: src/pages/build/BuildDetail.tsx:478 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:429 +#: src/pages/sales/ReturnOrderDetail.tsx:428 +#: src/pages/sales/SalesOrderDetail.tsx:469 +msgid "Edit order" +msgstr "" + +#: src/pages/build/BuildDetail.tsx:482 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:437 +#: src/pages/sales/ReturnOrderDetail.tsx:434 +#: src/pages/sales/SalesOrderDetail.tsx:474 +msgid "Duplicate order" +msgstr "" + +#: src/pages/build/BuildDetail.tsx:486 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:440 +#: src/pages/sales/ReturnOrderDetail.tsx:439 +#: src/pages/sales/SalesOrderDetail.tsx:477 +msgid "Hold order" +msgstr "" + +#: src/pages/build/BuildDetail.tsx:491 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:445 +#: src/pages/sales/ReturnOrderDetail.tsx:444 +#: src/pages/sales/SalesOrderDetail.tsx:482 +msgid "Cancel order" +msgstr "" + +#: src/pages/build/BuildIndex.tsx:23 +#~ msgid "Build order created" +#~ msgstr "Build order created" + +#: src/pages/build/BuildIndex.tsx:39 +#~ msgid "New Build Order" +#~ msgstr "New Build Order" + +#: src/pages/company/CompanyDetail.tsx:95 +msgid "Website" +msgstr "" + +#: src/pages/company/CompanyDetail.tsx:103 +msgid "Phone Number" +msgstr "" + +#: src/pages/company/CompanyDetail.tsx:110 +msgid "Email Address" +msgstr "" + +#: src/pages/company/CompanyDetail.tsx:120 +msgid "Default Currency" +msgstr "" + +#: src/pages/company/CompanyDetail.tsx:125 +#: src/pages/company/SupplierDetail.tsx:8 +#: src/pages/company/SupplierPartDetail.tsx:125 +#: src/pages/company/SupplierPartDetail.tsx:218 +#: src/pages/company/SupplierPartDetail.tsx:340 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:130 +#: src/tables/company/CompanyTable.tsx:101 +#: src/tables/part/PartPurchaseOrdersTable.tsx:42 +#: src/tables/purchasing/PurchaseOrderTable.tsx:89 +#: src/tables/purchasing/SupplierPriceBreakTable.tsx:36 +msgid "Supplier" +msgstr "" + +#: src/pages/company/CompanyDetail.tsx:131 +#: src/pages/company/ManufacturerDetail.tsx:8 +#: src/pages/company/ManufacturerPartDetail.tsx:100 +#: src/pages/company/ManufacturerPartDetail.tsx:262 +#: src/pages/company/SupplierPartDetail.tsx:147 +#: src/tables/company/CompanyTable.tsx:106 +msgid "Manufacturer" +msgstr "" + +#: src/pages/company/CompanyDetail.tsx:137 +#: src/pages/company/CustomerDetail.tsx:8 +#: src/pages/part/pricing/SaleHistoryPanel.tsx:31 +#: src/pages/sales/ReturnOrderDetail.tsx:101 +#: src/pages/sales/SalesOrderDetail.tsx:110 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:100 +#: src/pages/stock/StockDetail.tsx:271 +#: src/tables/company/CompanyTable.tsx:111 +#: src/tables/sales/ReturnOrderTable.tsx:97 +#: src/tables/sales/SalesOrderTable.tsx:121 +#: src/tables/stock/StockTrackingTable.tsx:144 +msgid "Customer" +msgstr "" + +#: src/pages/company/CompanyDetail.tsx:172 +msgid "Company Details" +msgstr "" + +#: src/pages/company/CompanyDetail.tsx:175 +#~ msgid "Edit company" +#~ msgstr "Edit company" + +#: src/pages/company/CompanyDetail.tsx:178 +msgid "Manufactured Parts" +msgstr "" + +#: src/pages/company/CompanyDetail.tsx:187 +msgid "Supplied Parts" +msgstr "" + +#: src/pages/company/CompanyDetail.tsx:189 +#~ msgid "Delete company" +#~ msgstr "Delete company" + +#: src/pages/company/CompanyDetail.tsx:234 +msgid "Assigned Stock" +msgstr "" + +#: src/pages/company/CompanyDetail.tsx:273 +#: src/tables/company/CompanyTable.tsx:87 +msgid "Edit Company" +msgstr "" + +#: src/pages/company/CompanyDetail.tsx:281 +msgid "Delete Company" +msgstr "" + +#: src/pages/company/CompanyDetail.tsx:289 +msgid "Company Actions" +msgstr "" + +#: src/pages/company/ManufacturerPartDetail.tsx:74 +#: src/pages/company/SupplierPartDetail.tsx:84 +msgid "Internal Part" +msgstr "" + +#: src/pages/company/ManufacturerPartDetail.tsx:108 +#: src/pages/company/SupplierPartDetail.tsx:156 +#: src/tables/purchasing/ManufacturerPartTable.tsx:58 +msgid "Manufacturer Part Number" +msgstr "" + +#: src/pages/company/ManufacturerPartDetail.tsx:125 +#: src/pages/company/SupplierPartDetail.tsx:108 +msgid "External Link" +msgstr "" + +#: src/pages/company/ManufacturerPartDetail.tsx:146 +#: src/pages/company/SupplierPartDetail.tsx:215 +#: src/pages/part/PartDetail.tsx:576 +msgid "Part Details" +msgstr "" + +#: src/pages/company/ManufacturerPartDetail.tsx:149 +msgid "Manufacturer Details" +msgstr "" + +#: src/pages/company/ManufacturerPartDetail.tsx:158 +msgid "Manufacturer Part Details" +msgstr "" + +#: src/pages/company/ManufacturerPartDetail.tsx:164 +#: src/pages/part/PartDetail.tsx:582 +msgid "Parameters" +msgstr "" + +#: src/pages/company/ManufacturerPartDetail.tsx:176 +#: src/pages/part/PartDetail.tsx:669 +#: src/pages/purchasing/PurchasingIndex.tsx:31 +msgid "Suppliers" +msgstr "" + +#: src/pages/company/ManufacturerPartDetail.tsx:204 +#: src/tables/purchasing/ManufacturerPartTable.tsx:86 +msgid "Edit Manufacturer Part" +msgstr "" + +#: src/pages/company/ManufacturerPartDetail.tsx:211 +#: src/tables/purchasing/ManufacturerPartTable.tsx:74 +#: src/tables/purchasing/ManufacturerPartTable.tsx:106 +msgid "Add Manufacturer Part" +msgstr "" + +#: src/pages/company/ManufacturerPartDetail.tsx:223 +#: src/tables/purchasing/ManufacturerPartTable.tsx:94 +msgid "Delete Manufacturer Part" +msgstr "" + +#: src/pages/company/ManufacturerPartDetail.tsx:236 +msgid "Manufacturer Part Actions" +msgstr "" + +#: src/pages/company/ManufacturerPartDetail.tsx:276 +msgid "ManufacturerPart" +msgstr "" + +#: src/pages/company/SupplierPartDetail.tsx:99 +msgid "Part Description" +msgstr "" + +#: src/pages/company/SupplierPartDetail.tsx:175 +#: src/tables/part/PartPurchaseOrdersTable.tsx:72 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:162 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:203 +#: src/tables/purchasing/SupplierPartTable.tsx:133 +msgid "Pack Quantity" +msgstr "" + +#: src/pages/company/SupplierPartDetail.tsx:186 +msgid "Supplier Availability" +msgstr "" + +#: src/pages/company/SupplierPartDetail.tsx:193 +msgid "Availability Updated" +msgstr "" + +#: src/pages/company/SupplierPartDetail.tsx:220 +msgid "Availability" +msgstr "" + +#: src/pages/company/SupplierPartDetail.tsx:229 +msgid "Supplier Part Details" +msgstr "" + +#: src/pages/company/SupplierPartDetail.tsx:235 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:320 +msgid "Received Stock" +msgstr "" + +#: src/pages/company/SupplierPartDetail.tsx:259 +#: src/pages/part/PartPricingPanel.tsx:116 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:195 +msgid "Supplier Pricing" +msgstr "" + +#: src/pages/company/SupplierPartDetail.tsx:284 +msgid "Supplier Part Actions" +msgstr "" + +#: src/pages/company/SupplierPartDetail.tsx:308 +#: src/tables/purchasing/SupplierPartTable.tsx:213 +msgid "Edit Supplier Part" +msgstr "" + +#: src/pages/company/SupplierPartDetail.tsx:316 +#: src/tables/purchasing/SupplierPartTable.tsx:221 +msgid "Delete Supplier Part" +msgstr "" + +#: src/pages/company/SupplierPartDetail.tsx:324 +#: src/tables/purchasing/SupplierPartTable.tsx:165 +msgid "Add Supplier Part" +msgstr "" + +#: src/pages/part/CategoryDetail.tsx:93 +#: src/pages/stock/LocationDetail.tsx:95 +#: src/tables/settings/ErrorTable.tsx:63 +#: src/tables/settings/ErrorTable.tsx:108 +msgid "Path" +msgstr "" + +#: src/pages/part/CategoryDetail.tsx:109 +msgid "Parent Category" +msgstr "" + +#: src/pages/part/CategoryDetail.tsx:132 +msgid "Subcategories" +msgstr "" + +#: src/pages/part/CategoryDetail.tsx:139 +#: src/pages/stock/LocationDetail.tsx:135 +#: src/tables/part/PartCategoryTable.tsx:85 +#: src/tables/stock/StockLocationTable.tsx:49 +msgid "Structural" +msgstr "" + +#: src/pages/part/CategoryDetail.tsx:145 +msgid "Parent default location" +msgstr "" + +#: src/pages/part/CategoryDetail.tsx:152 +msgid "Default location" +msgstr "" + +#: src/pages/part/CategoryDetail.tsx:163 +msgid "Top level part category" +msgstr "" + +#: src/pages/part/CategoryDetail.tsx:173 +#: src/pages/part/CategoryDetail.tsx:226 +#: src/tables/part/PartCategoryTable.tsx:118 +msgid "Edit Part Category" +msgstr "" + +#: src/pages/part/CategoryDetail.tsx:186 +#: src/pages/stock/LocationDetail.tsx:227 +msgid "Delete items" +msgstr "" + +#: src/pages/part/CategoryDetail.tsx:194 +#: src/pages/part/CategoryDetail.tsx:231 +msgid "Delete Part Category" +msgstr "" + +#: src/pages/part/CategoryDetail.tsx:197 +msgid "Parts Action" +msgstr "" + +#: src/pages/part/CategoryDetail.tsx:198 +msgid "Action for parts in this category" +msgstr "" + +#: src/pages/part/CategoryDetail.tsx:203 +msgid "Child Categories Action" +msgstr "" + +#: src/pages/part/CategoryDetail.tsx:204 +msgid "Action for child categories in this category" +msgstr "" + +#: src/pages/part/CategoryDetail.tsx:222 +msgid "Category Actions" +msgstr "" + +#: src/pages/part/CategoryDetail.tsx:243 +msgid "Category Details" +msgstr "" + +#: src/pages/part/PartAllocationPanel.tsx:23 +#: src/pages/stock/StockDetail.tsx:443 +#: src/tables/part/PartTable.tsx:99 +msgid "Build Order Allocations" +msgstr "" + +#: src/pages/part/PartAllocationPanel.tsx:40 +#: src/pages/stock/StockDetail.tsx:458 +#: src/tables/part/PartTable.tsx:108 +msgid "Sales Order Allocations" +msgstr "" + +#: src/pages/part/PartDetail.tsx:184 +msgid "Variant of" +msgstr "" + +#: src/pages/part/PartDetail.tsx:191 +msgid "Revision of" +msgstr "" + +#: src/pages/part/PartDetail.tsx:198 +#: src/tables/stock/StockItemTable.tsx:59 +msgid "Revision" +msgstr "" + +#: src/pages/part/PartDetail.tsx:205 +#: src/tables/notifications/NotificationsTable.tsx:31 +#: src/tables/part/PartCategoryTemplateTable.tsx:67 +msgid "Category" +msgstr "" + +#: src/pages/part/PartDetail.tsx:211 +msgid "Default Location" +msgstr "" + +#: src/pages/part/PartDetail.tsx:218 +msgid "Category Default Location" +msgstr "" + +#: src/pages/part/PartDetail.tsx:225 +#: src/tables/purchasing/ManufacturerPartParameterTable.tsx:44 +msgid "Units" +msgstr "" + +#: src/pages/part/PartDetail.tsx:232 +#: src/tables/settings/PendingTasksTable.tsx:46 +msgid "Keywords" +msgstr "" + +#: src/pages/part/PartDetail.tsx:257 +#: src/tables/bom/BomTable.tsx:320 +#: src/tables/build/BuildLineTable.tsx:286 +#: src/tables/part/PartTable.tsx:288 +#: src/tables/sales/SalesOrderLineItemTable.tsx:111 +msgid "Available Stock" +msgstr "" + +#: src/pages/part/PartDetail.tsx:264 +msgid "Variant Stock" +msgstr "" + +#: src/pages/part/PartDetail.tsx:272 +msgid "Minimum Stock" +msgstr "" + +#: src/pages/part/PartDetail.tsx:278 +#: src/tables/bom/BomTable.tsx:237 +#: src/tables/build/BuildLineTable.tsx:248 +#: src/tables/sales/SalesOrderLineItemTable.tsx:149 +msgid "On order" +msgstr "" + +#: src/pages/part/PartDetail.tsx:285 +msgid "Required for Orders" +msgstr "" + +#: src/pages/part/PartDetail.tsx:294 +msgid "Allocated to Build Orders" +msgstr "" + +#: src/pages/part/PartDetail.tsx:305 +msgid "Allocated to Sales Orders" +msgstr "" + +#: src/pages/part/PartDetail.tsx:310 +#~ msgid "Edit part" +#~ msgstr "Edit part" + +#: src/pages/part/PartDetail.tsx:315 +#: src/tables/bom/BomTable.tsx:261 +#: src/tables/bom/BomTable.tsx:293 +msgid "Can Build" +msgstr "" + +#: src/pages/part/PartDetail.tsx:322 +#: src/pages/part/PartDetail.tsx:905 +#: src/pages/stock/StockDetail.tsx:766 +#: src/tables/build/BuildOrderTestTable.tsx:220 +#: src/tables/stock/StockItemTable.tsx:334 +msgid "In Production" +msgstr "" + +#: src/pages/part/PartDetail.tsx:322 +#~ msgid "Duplicate part" +#~ msgstr "Duplicate part" + +#: src/pages/part/PartDetail.tsx:327 +#~ msgid "Delete part" +#~ msgstr "Delete part" + +#: src/pages/part/PartDetail.tsx:336 +#: src/tables/part/ParametricPartTable.tsx:228 +#: src/tables/part/PartTable.tsx:184 +msgid "Locked" +msgstr "" + +#: src/pages/part/PartDetail.tsx:342 +msgid "Template Part" +msgstr "" + +#: src/pages/part/PartDetail.tsx:347 +#: src/tables/bom/BomTable.tsx:315 +msgid "Assembled Part" +msgstr "" + +#: src/pages/part/PartDetail.tsx:352 +msgid "Component Part" +msgstr "" + +#: src/pages/part/PartDetail.tsx:357 +#: src/tables/bom/BomTable.tsx:305 +msgid "Testable Part" +msgstr "" + +#: src/pages/part/PartDetail.tsx:363 +#: src/tables/bom/BomTable.tsx:310 +msgid "Trackable Part" +msgstr "" + +#: src/pages/part/PartDetail.tsx:368 +msgid "Purchaseable Part" +msgstr "" + +#: src/pages/part/PartDetail.tsx:374 +msgid "Saleable Part" +msgstr "" + +#: src/pages/part/PartDetail.tsx:379 +msgid "Virtual Part" +msgstr "" + +#: src/pages/part/PartDetail.tsx:393 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:215 +#: src/pages/sales/ReturnOrderDetail.tsx:185 +#: src/pages/sales/SalesOrderDetail.tsx:197 +#: src/tables/ColumnRenderers.tsx:234 +msgid "Creation Date" +msgstr "" + +#: src/pages/part/PartDetail.tsx:398 +msgid "Created By" +msgstr "" + +#: src/pages/part/PartDetail.tsx:413 +msgid "Default Supplier" +msgstr "" + +#: src/pages/part/PartDetail.tsx:424 +#: src/pages/part/pricing/BomPricingPanel.tsx:113 +#: src/pages/part/pricing/VariantPricingPanel.tsx:95 +#: src/tables/part/PartTable.tsx:161 +msgid "Price Range" +msgstr "" + +#: src/pages/part/PartDetail.tsx:462 +msgid "Latest Serial Number" +msgstr "" + +#: src/pages/part/PartDetail.tsx:472 +#: src/pages/stock/StockDetail.tsx:151 +msgid "Last Stocktake" +msgstr "" + +#: src/pages/part/PartDetail.tsx:511 +msgid "Stocktake By" +msgstr "" + +#: src/pages/part/PartDetail.tsx:611 +msgid "Variants" +msgstr "" + +#: src/pages/part/PartDetail.tsx:618 +#: src/pages/stock/StockDetail.tsx:430 +msgid "Allocations" +msgstr "" + +#: src/pages/part/PartDetail.tsx:625 +msgid "Bill of Materials" +msgstr "" + +#: src/pages/part/PartDetail.tsx:643 +msgid "Used In" +msgstr "" + +#: src/pages/part/PartDetail.tsx:650 +msgid "Part Pricing" +msgstr "" + +#: src/pages/part/PartDetail.tsx:656 +#: src/pages/purchasing/PurchasingIndex.tsx:42 +msgid "Manufacturers" +msgstr "" + +#: src/pages/part/PartDetail.tsx:722 +msgid "Scheduling" +msgstr "" + +#: src/pages/part/PartDetail.tsx:729 +msgid "Test Templates" +msgstr "" + +#: src/pages/part/PartDetail.tsx:756 +msgid "Related Parts" +msgstr "" + +#: src/pages/part/PartDetail.tsx:881 +#: src/pages/stock/StockDetail.tsx:172 +#: src/pages/stock/StockDetail.tsx:783 +#: src/tables/build/BuildLineTable.tsx:179 +#: src/tables/part/PartTable.tsx:117 +#: src/tables/stock/StockItemTable.tsx:166 +#: src/tables/stock/StockItemTable.tsx:314 +msgid "Available" +msgstr "" + +#: src/pages/part/PartDetail.tsx:887 +msgid "No Stock" +msgstr "" + +#: src/pages/part/PartDetail.tsx:893 +#: src/tables/part/PartTestTemplateTable.tsx:106 +#: src/tables/stock/StockItemTestResultTable.tsx:383 +msgid "Required" +msgstr "" + +#: src/pages/part/PartDetail.tsx:899 +#: src/tables/bom/BomTable.tsx:325 +#: src/tables/part/PartTable.tsx:86 +msgid "On Order" +msgstr "" + +#: src/pages/part/PartDetail.tsx:924 +msgid "Edit Part" +msgstr "" + +#: src/pages/part/PartDetail.tsx:959 +#: src/tables/part/PartTable.tsx:331 +#: src/tables/part/PartTable.tsx:343 +msgid "Add Part" +msgstr "" + +#: src/pages/part/PartDetail.tsx:973 +msgid "Delete Part" +msgstr "" + +#: src/pages/part/PartDetail.tsx:982 +msgid "Deleting this part cannot be reversed" +msgstr "" + +#: src/pages/part/PartDetail.tsx:1021 +#: src/pages/stock/LocationDetail.tsx:310 +#: src/tables/stock/StockItemTable.tsx:449 +msgid "Stock Actions" +msgstr "" + +#: src/pages/part/PartDetail.tsx:1029 +msgid "Count part stock" +msgstr "" + +#: src/pages/part/PartDetail.tsx:1040 +msgid "Transfer part stock" +msgstr "" + +#: src/pages/part/PartDetail.tsx:1049 +msgid "Part Actions" +msgstr "" + +#: src/pages/part/PartDetail.tsx:1113 +msgid "Select Part Revision" +msgstr "" + +#: src/pages/part/PartIndex.tsx:29 +#~ msgid "Categories" +#~ msgstr "Categories" + +#: src/pages/part/PartPricingPanel.tsx:72 +msgid "No pricing data found for this part." +msgstr "" + +#: src/pages/part/PartPricingPanel.tsx:87 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:293 +msgid "Pricing Overview" +msgstr "" + +#: src/pages/part/PartPricingPanel.tsx:93 +msgid "Purchase History" +msgstr "" + +#: src/pages/part/PartPricingPanel.tsx:107 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:174 +msgid "Internal Pricing" +msgstr "" + +#: src/pages/part/PartPricingPanel.tsx:125 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:181 +msgid "BOM Pricing" +msgstr "" + +#: src/pages/part/PartPricingPanel.tsx:132 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:202 +msgid "Variant Pricing" +msgstr "" + +#: src/pages/part/PartPricingPanel.tsx:144 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:209 +msgid "Sale Pricing" +msgstr "" + +#: src/pages/part/PartPricingPanel.tsx:151 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:216 +msgid "Sale History" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:47 +#: src/pages/part/PartSchedulingDetail.tsx:299 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:156 +msgid "Maximum" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:50 +#: src/pages/part/PartSchedulingDetail.tsx:289 +msgid "Scheduled" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:53 +#: src/pages/part/PartSchedulingDetail.tsx:294 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:144 +msgid "Minimum" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:68 +msgid "Order" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:92 +msgid "Quantity is speculative" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:101 +msgid "No date available for provided quantity" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:105 +msgid "Date is in the past" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:112 +msgid "Scheduled Quantity" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:240 +msgid "No information available" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:241 +msgid "There is no scheduling information available for the selected part" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:276 +msgid "Expected Quantity" +msgstr "" + +#: src/pages/part/PartStocktakeDetail.tsx:63 +#: src/tables/FilterSelectDrawer.tsx:167 +#: src/tables/FilterSelectDrawer.tsx:174 +#: src/tables/build/BuildOrderTestTable.tsx:135 +#: src/tables/purchasing/ManufacturerPartParameterTable.tsx:38 +#: src/tables/stock/StockItemTestResultTable.tsx:192 +msgid "Value" +msgstr "" + +#: src/pages/part/PartStocktakeDetail.tsx:82 +msgid "Edit Stocktake Entry" +msgstr "" + +#: src/pages/part/PartStocktakeDetail.tsx:90 +msgid "Delete Stocktake Entry" +msgstr "" + +#: src/pages/part/PartStocktakeDetail.tsx:96 +#: src/tables/settings/StocktakeReportTable.tsx:69 +msgid "Generate Stocktake Report" +msgstr "" + +#: src/pages/part/PartStocktakeDetail.tsx:101 +#: src/tables/settings/StocktakeReportTable.tsx:71 +msgid "Stocktake report scheduled" +msgstr "" + +#: src/pages/part/PartStocktakeDetail.tsx:119 +#: src/pages/part/PartStocktakeDetail.tsx:235 +#: src/pages/stock/StockDetail.tsx:303 +#: src/tables/stock/StockItemTable.tsx:249 +msgid "Stock Value" +msgstr "" + +#: src/pages/part/PartStocktakeDetail.tsx:139 +#: src/tables/settings/StocktakeReportTable.tsx:77 +msgid "New Stocktake Report" +msgstr "" + +#: src/pages/part/PartStocktakeDetail.tsx:258 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:295 +msgid "Minimum Value" +msgstr "" + +#: src/pages/part/PartStocktakeDetail.tsx:264 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:296 +msgid "Maximum Value" +msgstr "" + +#: src/pages/part/pricing/BomPricingPanel.tsx:87 +#: src/pages/part/pricing/BomPricingPanel.tsx:177 +#: src/tables/ColumnRenderers.tsx:276 +#: src/tables/bom/BomTable.tsx:185 +#: src/tables/general/ExtraLineItemTable.tsx:64 +#: src/tables/purchasing/PurchaseOrderTable.tsx:113 +#: src/tables/sales/ReturnOrderTable.tsx:127 +#: src/tables/sales/SalesOrderLineItemTable.tsx:97 +#: src/tables/sales/SalesOrderTable.tsx:149 +msgid "Total Price" +msgstr "" + +#: src/pages/part/pricing/BomPricingPanel.tsx:112 +#: src/pages/part/pricing/BomPricingPanel.tsx:141 +#: src/tables/bom/UsedInTable.tsx:49 +#: src/tables/build/BuildLineTable.tsx:296 +#: src/tables/part/PartTable.tsx:202 +msgid "Component" +msgstr "" + +#: src/pages/part/pricing/BomPricingPanel.tsx:112 +#~ msgid "Minimum Total Price" +#~ msgstr "Minimum Total Price" + +#: src/pages/part/pricing/BomPricingPanel.tsx:115 +#: src/pages/part/pricing/VariantPricingPanel.tsx:37 +#: src/pages/part/pricing/VariantPricingPanel.tsx:97 +msgid "Minimum Price" +msgstr "" + +#: src/pages/part/pricing/BomPricingPanel.tsx:116 +#: src/pages/part/pricing/VariantPricingPanel.tsx:45 +#: src/pages/part/pricing/VariantPricingPanel.tsx:98 +msgid "Maximum Price" +msgstr "" + +#: src/pages/part/pricing/BomPricingPanel.tsx:117 +#~ msgid "Maximum Total Price" +#~ msgstr "Maximum Total Price" + +#: src/pages/part/pricing/BomPricingPanel.tsx:168 +#: src/pages/part/pricing/PriceBreakPanel.tsx:173 +#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:70 +#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:125 +#: src/pages/part/pricing/SupplierPricingPanel.tsx:66 +#: src/pages/stock/StockDetail.tsx:291 +#: src/tables/bom/BomTable.tsx:176 +#: src/tables/general/ExtraLineItemTable.tsx:56 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:225 +#: src/tables/purchasing/SupplierPriceBreakTable.tsx:92 +#: src/tables/stock/StockItemTable.tsx:239 +msgid "Unit Price" +msgstr "" + +#: src/pages/part/pricing/BomPricingPanel.tsx:193 +#: src/pages/part/pricing/VariantPricingPanel.tsx:53 +#: src/tables/purchasing/SupplierPartTable.tsx:150 +msgid "Updated" +msgstr "" + +#: src/pages/part/pricing/BomPricingPanel.tsx:258 +msgid "Pie Chart" +msgstr "" + +#: src/pages/part/pricing/BomPricingPanel.tsx:259 +msgid "Bar Chart" +msgstr "" + +#: src/pages/part/pricing/PriceBreakPanel.tsx:58 +#: src/pages/part/pricing/PriceBreakPanel.tsx:111 +#: src/tables/purchasing/SupplierPriceBreakTable.tsx:142 +#: src/tables/purchasing/SupplierPriceBreakTable.tsx:169 +msgid "Add Price Break" +msgstr "" + +#: src/pages/part/pricing/PriceBreakPanel.tsx:71 +#: src/tables/purchasing/SupplierPriceBreakTable.tsx:153 +msgid "Edit Price Break" +msgstr "" + +#: src/pages/part/pricing/PriceBreakPanel.tsx:81 +#: src/tables/purchasing/SupplierPriceBreakTable.tsx:161 +msgid "Delete Price Break" +msgstr "" + +#: src/pages/part/pricing/PriceBreakPanel.tsx:95 +msgid "Price Break" +msgstr "" + +#: src/pages/part/pricing/PriceBreakPanel.tsx:171 +msgid "Price" +msgstr "" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:68 +msgid "Refreshing pricing data" +msgstr "" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:88 +msgid "Pricing data updated" +msgstr "" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:95 +msgid "Failed to update pricing data" +msgstr "" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:104 +msgid "Edit Pricing" +msgstr "" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:125 +msgid "Pricing Category" +msgstr "" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:188 +msgid "Purchase Pricing" +msgstr "" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:223 +msgid "Override Pricing" +msgstr "" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:230 +msgid "Overall Pricing" +msgstr "" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:249 +#: src/pages/stock/StockDetail.tsx:145 +#: src/tables/stock/StockItemTable.tsx:275 +msgid "Last Updated" +msgstr "" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:253 +msgid "Pricing Not Set" +msgstr "" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:254 +msgid "Pricing data has not been calculated for this part" +msgstr "" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:258 +msgid "Pricing Actions" +msgstr "" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:261 +msgid "Refresh" +msgstr "" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:262 +msgid "Refresh pricing data" +msgstr "" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:277 +msgid "Edit pricing data" +msgstr "" + +#: src/pages/part/pricing/PricingPanel.tsx:24 +msgid "No data available" +msgstr "" + +#: src/pages/part/pricing/PricingPanel.tsx:65 +msgid "No Data" +msgstr "" + +#: src/pages/part/pricing/PricingPanel.tsx:66 +msgid "No pricing data available" +msgstr "" + +#: src/pages/part/pricing/PricingPanel.tsx:77 +msgid "Loading pricing data" +msgstr "" + +#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:47 +msgid "Purchase Price" +msgstr "" + +#: src/pages/part/pricing/SaleHistoryPanel.tsx:24 +#~ msgid "Sale Order" +#~ msgstr "Sale Order" + +#: src/pages/part/pricing/SaleHistoryPanel.tsx:44 +#: src/pages/part/pricing/SaleHistoryPanel.tsx:87 +msgid "Sale Price" +msgstr "" + +#: src/pages/part/pricing/SupplierPricingPanel.tsx:69 +#: src/tables/purchasing/SupplierPriceBreakTable.tsx:83 +msgid "Supplier Price" +msgstr "" + +#: src/pages/part/pricing/VariantPricingPanel.tsx:30 +#: src/pages/part/pricing/VariantPricingPanel.tsx:94 +msgid "Variant Part" +msgstr "" + +#: src/pages/purchasing/PurchaseOrderDetail.tsx:87 +msgid "Edit Purchase Order" +msgstr "" + +#: src/pages/purchasing/PurchaseOrderDetail.tsx:96 +#: src/tables/purchasing/PurchaseOrderTable.tsx:129 +#: src/tables/purchasing/PurchaseOrderTable.tsx:142 +msgid "Add Purchase Order" +msgstr "" + +#: src/pages/purchasing/PurchaseOrderDetail.tsx:121 +msgid "Supplier Reference" +msgstr "" + +#: src/pages/purchasing/PurchaseOrderDetail.tsx:152 +#: src/pages/sales/ReturnOrderDetail.tsx:129 +#: src/pages/sales/SalesOrderDetail.tsx:132 +msgid "Completed Line Items" +msgstr "" + +#: src/pages/purchasing/PurchaseOrderDetail.tsx:159 +#: src/pages/sales/ReturnOrderDetail.tsx:126 +#: src/pages/sales/SalesOrderDetail.tsx:130 +#~ msgid "Order Currency," +#~ msgstr "Order Currency," + +#: src/pages/purchasing/PurchaseOrderDetail.tsx:161 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:231 +msgid "Destination" +msgstr "" + +#: src/pages/purchasing/PurchaseOrderDetail.tsx:167 +#: src/pages/sales/ReturnOrderDetail.tsx:136 +#: src/pages/sales/SalesOrderDetail.tsx:148 +msgid "Order Currency" +msgstr "" + +#: src/pages/purchasing/PurchaseOrderDetail.tsx:173 +#: src/pages/sales/ReturnOrderDetail.tsx:143 +#: src/pages/sales/SalesOrderDetail.tsx:155 +msgid "Total Cost" +msgstr "" + +#: src/pages/purchasing/PurchaseOrderDetail.tsx:207 +#: src/pages/sales/ReturnOrderDetail.tsx:183 +#: src/pages/sales/SalesOrderDetail.tsx:191 +#~ msgid "Created On" +#~ msgstr "Created On" + +#: src/pages/purchasing/PurchaseOrderDetail.tsx:221 +#: src/pages/sales/ReturnOrderDetail.tsx:193 +#: src/pages/sales/SalesOrderDetail.tsx:204 +msgid "Issue Date" +msgstr "" + +#: src/pages/purchasing/PurchaseOrderDetail.tsx:237 +#: src/pages/sales/ReturnOrderDetail.tsx:209 +#: src/pages/sales/SalesOrderDetail.tsx:219 +#: src/tables/build/BuildOrderTable.tsx:98 +#: src/tables/part/PartPurchaseOrdersTable.tsx:105 +#: src/tables/sales/ReturnOrderTable.tsx:122 +msgid "Completion Date" +msgstr "" + +#: src/pages/purchasing/PurchaseOrderDetail.tsx:276 +#: src/pages/sales/ReturnOrderDetail.tsx:248 +#: src/pages/sales/SalesOrderDetail.tsx:288 +msgid "Order Details" +msgstr "" + +#: src/pages/purchasing/PurchaseOrderDetail.tsx:304 +#: src/pages/sales/ReturnOrderDetail.tsx:276 +#: src/pages/sales/SalesOrderDetail.tsx:319 +msgid "Extra Line Items" +msgstr "" + +#: src/pages/purchasing/PurchaseOrderDetail.tsx:346 +msgid "Issue Purchase Order" +msgstr "" + +#: src/pages/purchasing/PurchaseOrderDetail.tsx:354 +msgid "Cancel Purchase Order" +msgstr "" + +#: src/pages/purchasing/PurchaseOrderDetail.tsx:362 +msgid "Hold Purchase Order" +msgstr "" + +#: src/pages/purchasing/PurchaseOrderDetail.tsx:370 +msgid "Complete Purchase Order" +msgstr "" + +#: src/pages/purchasing/PurchaseOrderDetail.tsx:425 +#: src/pages/sales/ReturnOrderDetail.tsx:424 +#: src/pages/sales/SalesOrderDetail.tsx:464 +msgid "Order Actions" +msgstr "" + +#: src/pages/sales/ReturnOrderDetail.tsx:92 +#: src/pages/sales/SalesOrderDetail.tsx:101 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:109 +#: src/tables/sales/SalesOrderTable.tsx:137 +msgid "Customer Reference" +msgstr "" + +#: src/pages/sales/ReturnOrderDetail.tsx:322 +msgid "Edit Return Order" +msgstr "" + +#: src/pages/sales/ReturnOrderDetail.tsx:331 +#: src/tables/sales/ReturnOrderTable.tsx:142 +#: src/tables/sales/ReturnOrderTable.tsx:152 +msgid "Add Return Order" +msgstr "" + +#: src/pages/sales/ReturnOrderDetail.tsx:343 +msgid "Issue Return Order" +msgstr "" + +#: src/pages/sales/ReturnOrderDetail.tsx:349 +#~ msgid "Order canceled" +#~ msgstr "Order canceled" + +#: src/pages/sales/ReturnOrderDetail.tsx:351 +msgid "Cancel Return Order" +msgstr "" + +#: src/pages/sales/ReturnOrderDetail.tsx:359 +msgid "Hold Return Order" +msgstr "" + +#: src/pages/sales/ReturnOrderDetail.tsx:367 +msgid "Complete Return Order" +msgstr "" + +#: src/pages/sales/SalesIndex.tsx:38 +msgid "Customers" +msgstr "" + +#: src/pages/sales/SalesOrderDetail.tsx:140 +msgid "Completed Shipments" +msgstr "" + +#: src/pages/sales/SalesOrderDetail.tsx:256 +#~ msgid "Pending Shipments" +#~ msgstr "Pending Shipments" + +#: src/pages/sales/SalesOrderDetail.tsx:261 +msgid "Edit Sales Order" +msgstr "" + +#: src/pages/sales/SalesOrderDetail.tsx:274 +#: src/tables/sales/SalesOrderTable.tsx:96 +#: src/tables/sales/SalesOrderTable.tsx:109 +msgid "Add Sales Order" +msgstr "" + +#: src/pages/sales/SalesOrderDetail.tsx:335 +msgid "Shipments" +msgstr "" + +#: src/pages/sales/SalesOrderDetail.tsx:376 +msgid "Issue Sales Order" +msgstr "" + +#: src/pages/sales/SalesOrderDetail.tsx:384 +msgid "Cancel Sales Order" +msgstr "" + +#: src/pages/sales/SalesOrderDetail.tsx:392 +msgid "Hold Sales Order" +msgstr "" + +#: src/pages/sales/SalesOrderDetail.tsx:400 +msgid "Complete Sales Order" +msgstr "" + +#: src/pages/sales/SalesOrderDetail.tsx:439 +msgid "Ship Order" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:117 +#: src/tables/sales/SalesOrderShipmentTable.tsx:96 +msgid "Shipment Reference" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:124 +msgid "Allocated Items" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:133 +msgid "Tracking Number" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:141 +msgid "Invoice Number" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:149 +#: src/tables/ColumnRenderers.tsx:242 +#: src/tables/sales/SalesOrderAllocationTable.tsx:142 +#: src/tables/sales/SalesOrderShipmentTable.tsx:115 +msgid "Shipment Date" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:157 +#: src/tables/sales/SalesOrderShipmentTable.tsx:119 +msgid "Delivery Date" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:204 +msgid "Shipment Details" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:210 +msgid "Assigned Items" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:241 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:317 +#: src/tables/sales/SalesOrderShipmentTable.tsx:75 +msgid "Edit Shipment" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:248 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:322 +#: src/tables/sales/SalesOrderShipmentTable.tsx:67 +msgid "Cancel Shipment" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:261 +#: src/tables/sales/SalesOrderShipmentTable.tsx:83 +#: src/tables/sales/SalesOrderShipmentTable.tsx:151 +msgid "Complete Shipment" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:276 +#: src/tables/part/PartPurchaseOrdersTable.tsx:121 +msgid "Pending" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:277 +#: src/tables/sales/SalesOrderAllocationTable.tsx:148 +#: src/tables/sales/SalesOrderShipmentTable.tsx:108 +#: src/tables/sales/SalesOrderShipmentTable.tsx:197 +msgid "Shipped" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:279 +#: src/tables/sales/SalesOrderShipmentTable.tsx:202 +msgid "Delivered" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:293 +msgid "Send Shipment" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:312 +msgid "Shipment Actions" +msgstr "" + +#: src/pages/stock/LocationDetail.tsx:111 +msgid "Parent Location" +msgstr "" + +#: src/pages/stock/LocationDetail.tsx:129 +msgid "Sublocations" +msgstr "" + +#: src/pages/stock/LocationDetail.tsx:141 +#: src/tables/stock/StockLocationTable.tsx:54 +msgid "External" +msgstr "" + +#: src/pages/stock/LocationDetail.tsx:147 +#: src/tables/stock/StockLocationTable.tsx:63 +msgid "Location Type" +msgstr "" + +#: src/pages/stock/LocationDetail.tsx:158 +msgid "Top level stock location" +msgstr "" + +#: src/pages/stock/LocationDetail.tsx:169 +msgid "Location Details" +msgstr "" + +#: src/pages/stock/LocationDetail.tsx:195 +msgid "Default Parts" +msgstr "" + +#: src/pages/stock/LocationDetail.tsx:214 +#: src/pages/stock/LocationDetail.tsx:336 +#: src/tables/stock/StockLocationTable.tsx:123 +msgid "Edit Stock Location" +msgstr "" + +#: src/pages/stock/LocationDetail.tsx:235 +#: src/pages/stock/LocationDetail.tsx:341 +msgid "Delete Stock Location" +msgstr "" + +#: src/pages/stock/LocationDetail.tsx:238 +msgid "Items Action" +msgstr "" + +#: src/pages/stock/LocationDetail.tsx:239 +msgid "Action for stock items in this location" +msgstr "" + +#: src/pages/stock/LocationDetail.tsx:244 +msgid "Child Locations Action" +msgstr "" + +#: src/pages/stock/LocationDetail.tsx:245 +msgid "Action for child locations in this location" +msgstr "" + +#: src/pages/stock/LocationDetail.tsx:332 +msgid "Location Actions" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:116 +msgid "Base Part" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:155 +#~ msgid "Link custom barcode to stock item" +#~ msgstr "Link custom barcode to stock item" + +#: src/pages/stock/StockDetail.tsx:161 +#~ msgid "Unlink custom barcode from stock item" +#~ msgstr "Unlink custom barcode from stock item" + +#: src/pages/stock/StockDetail.tsx:178 +msgid "Allocated to Orders" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:205 +#~ msgid "Edit stock item" +#~ msgstr "Edit stock item" + +#: src/pages/stock/StockDetail.tsx:209 +msgid "Installed In" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:217 +#~ msgid "Delete stock item" +#~ msgstr "Delete stock item" + +#: src/pages/stock/StockDetail.tsx:226 +msgid "Parent Item" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:230 +msgid "Parent stock item" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:236 +msgid "Consumed By" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:245 +#: src/tables/build/BuildAllocatedStockTable.tsx:77 +#: src/tables/stock/StockTrackingTable.tsx:100 +msgid "Build Order" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:283 +#: src/tables/stock/StockItemTable.tsx:270 +msgid "Expiry Date" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:414 +msgid "Stock Details" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:420 +msgid "Stock Tracking" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:433 +#~ msgid "Duplicate stock item" +#~ msgstr "Duplicate stock item" + +#: src/pages/stock/StockDetail.tsx:475 +msgid "Test Data" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:489 +msgid "Installed Items" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:496 +msgid "Child Items" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:545 +msgid "Edit Stock Item" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:572 +msgid "Delete Stock Item" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:604 +msgid "Serialize Stock Item" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:617 +msgid "Stock item serialized" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:623 +msgid "Return Stock Item" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:626 +msgid "Return this item into stock. This will remove the customer assignment." +msgstr "" + +#: src/pages/stock/StockDetail.tsx:636 +msgid "Item returned to stock" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:666 +msgid "Stock Operations" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:671 +msgid "Count stock" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:671 +#: src/tables/stock/StockItemTable.tsx:452 +#~ msgid "Add stock" +#~ msgstr "Add stock" + +#: src/pages/stock/StockDetail.tsx:680 +#: src/tables/stock/StockItemTable.tsx:461 +#~ msgid "Remove stock" +#~ msgstr "Remove stock" + +#: src/pages/stock/StockDetail.tsx:698 +#: src/tables/stock/StockItemTable.tsx:481 +#~ msgid "Transfer stock" +#~ msgstr "Transfer stock" + +#: src/pages/stock/StockDetail.tsx:699 +msgid "Serialize" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:700 +msgid "Serialize stock" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:711 +msgid "Transfer" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:722 +msgid "Return" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:723 +msgid "Return from customer" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:738 +msgid "Stock Item Actions" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:808 +msgid "Stale" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:814 +msgid "Expired" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:820 +msgid "Unavailable" +msgstr "" + +#: src/tables/ColumnRenderers.tsx:36 +msgid "Part is not active" +msgstr "" + +#: src/tables/ColumnRenderers.tsx:41 +#: src/tables/bom/BomTable.tsx:542 +#: src/tables/part/PartParameterTable.tsx:193 +#: src/tables/part/PartTestTemplateTable.tsx:253 +msgid "Part is Locked" +msgstr "" + +#: src/tables/ColumnRenderers.tsx:41 +#~ msgid "Part is locked" +#~ msgstr "Part is locked" + +#: src/tables/ColumnRenderers.tsx:46 +msgid "You are subscribed to notifications for this part" +msgstr "" + +#: src/tables/ColumnRenderers.tsx:68 +msgid "No location set" +msgstr "" + +#: src/tables/ColumnSelect.tsx:16 +#: src/tables/ColumnSelect.tsx:23 +msgid "Select Columns" +msgstr "" + +#: src/tables/DownloadAction.tsx:13 +#~ msgid "Excel" +#~ msgstr "Excel" + +#: src/tables/DownloadAction.tsx:21 +msgid "CSV" +msgstr "" + +#: src/tables/DownloadAction.tsx:21 +#~ msgid "Download selected data" +#~ msgstr "Download selected data" + +#: src/tables/DownloadAction.tsx:22 +msgid "TSV" +msgstr "" + +#: src/tables/DownloadAction.tsx:23 +msgid "Excel (.xlsx)" +msgstr "" + +#: src/tables/DownloadAction.tsx:24 +#~ msgid "Excel (.xls)" +#~ msgstr "Excel (.xls)" + +#: src/tables/DownloadAction.tsx:36 +msgid "Download Data" +msgstr "" + +#: src/tables/Filter.tsx:101 +msgid "Assigned to me" +msgstr "" + +#: src/tables/Filter.tsx:102 +msgid "Show orders assigned to me" +msgstr "" + +#: src/tables/Filter.tsx:106 +#~ msgid "Show overdue orders" +#~ msgstr "Show overdue orders" + +#: src/tables/Filter.tsx:109 +#: src/tables/build/BuildOrderTable.tsx:120 +#: src/tables/sales/SalesOrderAllocationTable.tsx:59 +msgid "Outstanding" +msgstr "" + +#: src/tables/Filter.tsx:110 +msgid "Show outstanding items" +msgstr "" + +#: src/tables/Filter.tsx:117 +msgid "Overdue" +msgstr "" + +#: src/tables/Filter.tsx:118 +msgid "Show overdue items" +msgstr "" + +#: src/tables/Filter.tsx:125 +msgid "Minimum Date" +msgstr "" + +#: src/tables/Filter.tsx:126 +msgid "Show items after this date" +msgstr "" + +#: src/tables/Filter.tsx:134 +msgid "Maximum Date" +msgstr "" + +#: src/tables/Filter.tsx:135 +msgid "Show items before this date" +msgstr "" + +#: src/tables/Filter.tsx:144 +msgid "Has Project Code" +msgstr "" + +#: src/tables/Filter.tsx:145 +msgid "Show orders with an assigned project code" +msgstr "" + +#: src/tables/FilterSelectDrawer.tsx:55 +msgid "Remove filter" +msgstr "" + +#: src/tables/FilterSelectDrawer.tsx:159 +msgid "Select filter" +msgstr "" + +#: src/tables/FilterSelectDrawer.tsx:160 +msgid "Filter" +msgstr "" + +#: src/tables/FilterSelectDrawer.tsx:168 +msgid "Select date value" +msgstr "" + +#: src/tables/FilterSelectDrawer.tsx:176 +msgid "Select filter value" +msgstr "" + +#: src/tables/FilterSelectDrawer.tsx:219 +#: src/tables/InvenTreeTableHeader.tsx:214 +msgid "Table Filters" +msgstr "" + +#: src/tables/FilterSelectDrawer.tsx:251 +msgid "Add Filter" +msgstr "" + +#: src/tables/FilterSelectDrawer.tsx:260 +msgid "Clear Filters" +msgstr "" + +#: src/tables/InvenTreeTable.tsx:96 +#: src/tables/InvenTreeTable.tsx:417 +#: src/tables/InvenTreeTable.tsx:441 +msgid "No records found" +msgstr "" + +#: src/tables/InvenTreeTable.tsx:452 +msgid "Server returned incorrect data type" +msgstr "" + +#: src/tables/InvenTreeTable.tsx:460 +msgid "Bad request" +msgstr "" + +#: src/tables/InvenTreeTable.tsx:463 +msgid "Unauthorized" +msgstr "" + +#: src/tables/InvenTreeTable.tsx:466 +msgid "Forbidden" +msgstr "" + +#: src/tables/InvenTreeTable.tsx:469 +msgid "Not found" +msgstr "" + +#: src/tables/InvenTreeTable.tsx:510 +#~ msgid "Are you sure you want to delete the selected records?" +#~ msgstr "Are you sure you want to delete the selected records?" + +#: src/tables/InvenTreeTable.tsx:535 +#~ msgid "Deleted records" +#~ msgstr "Deleted records" + +#: src/tables/InvenTreeTable.tsx:536 +#~ msgid "Records were deleted successfully" +#~ msgstr "Records were deleted successfully" + +#: src/tables/InvenTreeTable.tsx:545 +#~ msgid "Failed to delete records" +#~ msgstr "Failed to delete records" + +#: src/tables/InvenTreeTable.tsx:552 +#~ msgid "This action cannot be undone!" +#~ msgstr "This action cannot be undone!" + +#: src/tables/InvenTreeTable.tsx:594 +#: src/tables/InvenTreeTable.tsx:595 +#~ msgid "Print actions" +#~ msgstr "Print actions" + +#: src/tables/InvenTreeTable.tsx:655 +#: src/tables/InvenTreeTable.tsx:656 +#~ msgid "Barcode actions" +#~ msgstr "Barcode actions" + +#: src/tables/InvenTreeTable.tsx:712 +#~ msgid "Table filters" +#~ msgstr "Table filters" + +#: src/tables/InvenTreeTable.tsx:725 +#~ msgid "Clear custom query filters" +#~ msgstr "Clear custom query filters" + +#: src/tables/InvenTreeTableHeader.tsx:98 +msgid "Delete Selected Items" +msgstr "" + +#: src/tables/InvenTreeTableHeader.tsx:102 +msgid "Are you sure you want to delete the selected items?" +msgstr "" + +#: src/tables/InvenTreeTableHeader.tsx:104 +#: src/tables/plugin/PluginListTable.tsx:305 +msgid "This action cannot be undone" +msgstr "" + +#: src/tables/InvenTreeTableHeader.tsx:142 +msgid "Custom table filters are active" +msgstr "" + +#: src/tables/InvenTreeTableHeader.tsx:169 +msgid "Delete selected records" +msgstr "" + +#: src/tables/InvenTreeTableHeader.tsx:188 +msgid "Refresh data" +msgstr "" + +#: src/tables/TableHoverCard.tsx:35 +#~ msgid "item-{idx}" +#~ msgstr "item-{idx}" + +#: src/tables/UploadAction.tsx:7 +#~ msgid "Upload Data" +#~ msgstr "Upload Data" + +#: src/tables/bom/BomTable.tsx:95 +msgid "This BOM item is defined for a different parent" +msgstr "" + +#: src/tables/bom/BomTable.tsx:110 +msgid "Part Information" +msgstr "" + +#: src/tables/bom/BomTable.tsx:212 +#: src/tables/build/BuildLineTable.tsx:257 +#: src/tables/part/PartTable.tsx:125 +msgid "External stock" +msgstr "" + +#: src/tables/bom/BomTable.tsx:220 +#: src/tables/build/BuildLineTable.tsx:220 +msgid "Includes substitute stock" +msgstr "" + +#: src/tables/bom/BomTable.tsx:229 +#: src/tables/build/BuildLineTable.tsx:230 +#: src/tables/sales/SalesOrderLineItemTable.tsx:135 +msgid "Includes variant stock" +msgstr "" + +#: src/tables/bom/BomTable.tsx:245 +#: src/tables/part/PartTable.tsx:92 +msgid "Building" +msgstr "" + +#: src/tables/bom/BomTable.tsx:254 +#: src/tables/part/PartTable.tsx:153 +#: src/tables/sales/SalesOrderLineItemTable.tsx:158 +#: src/tables/stock/StockItemTable.tsx:206 +msgid "Stock Information" +msgstr "" + +#: src/tables/bom/BomTable.tsx:285 +#: src/tables/build/BuildLineTable.tsx:409 +msgid "Consumable item" +msgstr "" + +#: src/tables/bom/BomTable.tsx:288 +msgid "No available stock" +msgstr "" + +#: src/tables/bom/BomTable.tsx:301 +#~ msgid "Create BOM Item" +#~ msgstr "Create BOM Item" + +#: src/tables/bom/BomTable.tsx:306 +#: src/tables/build/BuildLineTable.tsx:200 +msgid "Show testable items" +msgstr "" + +#: src/tables/bom/BomTable.tsx:310 +#~ msgid "Show asssmbled items" +#~ msgstr "Show asssmbled items" + +#: src/tables/bom/BomTable.tsx:311 +msgid "Show trackable items" +msgstr "" + +#: src/tables/bom/BomTable.tsx:316 +#: src/tables/build/BuildLineTable.tsx:195 +msgid "Show assembled items" +msgstr "" + +#: src/tables/bom/BomTable.tsx:321 +#: src/tables/build/BuildLineTable.tsx:180 +msgid "Show items with available stock" +msgstr "" + +#: src/tables/bom/BomTable.tsx:326 +msgid "Show items on order" +msgstr "" + +#: src/tables/bom/BomTable.tsx:330 +msgid "Validated" +msgstr "" + +#: src/tables/bom/BomTable.tsx:331 +msgid "Show validated items" +msgstr "" + +#: src/tables/bom/BomTable.tsx:331 +#~ msgid "Edit Bom Item" +#~ msgstr "Edit Bom Item" + +#: src/tables/bom/BomTable.tsx:333 +#~ msgid "Bom item updated" +#~ msgstr "Bom item updated" + +#: src/tables/bom/BomTable.tsx:335 +#: src/tables/bom/UsedInTable.tsx:74 +msgid "Inherited" +msgstr "" + +#: src/tables/bom/BomTable.tsx:336 +#: src/tables/bom/UsedInTable.tsx:75 +msgid "Show inherited items" +msgstr "" + +#: src/tables/bom/BomTable.tsx:340 +msgid "Allow Variants" +msgstr "" + +#: src/tables/bom/BomTable.tsx:341 +msgid "Show items which allow variant substitution" +msgstr "" + +#: src/tables/bom/BomTable.tsx:345 +#: src/tables/bom/UsedInTable.tsx:79 +#: src/tables/build/BuildLineTable.tsx:189 +msgid "Optional" +msgstr "" + +#: src/tables/bom/BomTable.tsx:346 +#: src/tables/bom/UsedInTable.tsx:80 +msgid "Show optional items" +msgstr "" + +#: src/tables/bom/BomTable.tsx:348 +#~ msgid "Delete Bom Item" +#~ msgstr "Delete Bom Item" + +#: src/tables/bom/BomTable.tsx:349 +#~ msgid "Bom item deleted" +#~ msgstr "Bom item deleted" + +#: src/tables/bom/BomTable.tsx:350 +#: src/tables/build/BuildLineTable.tsx:184 +msgid "Consumable" +msgstr "" + +#: src/tables/bom/BomTable.tsx:351 +msgid "Show consumable items" +msgstr "" + +#: src/tables/bom/BomTable.tsx:351 +#~ msgid "Are you sure you want to remove this BOM item?" +#~ msgstr "Are you sure you want to remove this BOM item?" + +#: src/tables/bom/BomTable.tsx:354 +#~ msgid "Validate BOM line" +#~ msgstr "Validate BOM line" + +#: src/tables/bom/BomTable.tsx:355 +#: src/tables/part/PartTable.tsx:282 +msgid "Has Pricing" +msgstr "" + +#: src/tables/bom/BomTable.tsx:356 +msgid "Show items with pricing" +msgstr "" + +#: src/tables/bom/BomTable.tsx:378 +#: src/tables/bom/BomTable.tsx:512 +msgid "Import BOM Data" +msgstr "" + +#: src/tables/bom/BomTable.tsx:388 +#: src/tables/bom/BomTable.tsx:526 +msgid "Add BOM Item" +msgstr "" + +#: src/tables/bom/BomTable.tsx:393 +msgid "BOM item created" +msgstr "" + +#: src/tables/bom/BomTable.tsx:400 +msgid "Edit BOM Item" +msgstr "" + +#: src/tables/bom/BomTable.tsx:402 +msgid "BOM item updated" +msgstr "" + +#: src/tables/bom/BomTable.tsx:409 +msgid "Delete BOM Item" +msgstr "" + +#: src/tables/bom/BomTable.tsx:410 +msgid "BOM item deleted" +msgstr "" + +#: src/tables/bom/BomTable.tsx:423 +#: src/tables/bom/BomTable.tsx:426 +#: src/tables/bom/BomTable.tsx:519 +msgid "Validate BOM" +msgstr "" + +#: src/tables/bom/BomTable.tsx:427 +msgid "Do you want to validate the bill of materials for this assembly?" +msgstr "" + +#: src/tables/bom/BomTable.tsx:430 +msgid "BOM validated" +msgstr "" + +#: src/tables/bom/BomTable.tsx:442 +msgid "BOM item validated" +msgstr "" + +#: src/tables/bom/BomTable.tsx:451 +msgid "Failed to validate BOM item" +msgstr "" + +#: src/tables/bom/BomTable.tsx:463 +msgid "View BOM" +msgstr "" + +#: src/tables/bom/BomTable.tsx:472 +msgid "Validate BOM Line" +msgstr "" + +#: src/tables/bom/BomTable.tsx:489 +msgid "Edit Substitutes" +msgstr "" + +#: src/tables/bom/BomTable.tsx:547 +msgid "Bill of materials cannot be edited, as the part is locked" +msgstr "" + +#: src/tables/bom/UsedInTable.tsx:33 +#: src/tables/build/BuildLineTable.tsx:194 +#: src/tables/part/ParametricPartTable.tsx:233 +#: src/tables/part/PartTable.tsx:190 +#: src/tables/stock/StockItemTable.tsx:304 +msgid "Assembly" +msgstr "" + +#: src/tables/bom/UsedInTable.tsx:85 +msgid "Show active assemblies" +msgstr "" + +#: src/tables/bom/UsedInTable.tsx:89 +#: src/tables/part/PartTable.tsx:214 +#: src/tables/part/PartVariantTable.tsx:30 +msgid "Trackable" +msgstr "" + +#: src/tables/bom/UsedInTable.tsx:90 +msgid "Show trackable assemblies" +msgstr "" + +#: src/tables/build/BuildAllocatedStockTable.tsx:56 +msgid "Allocated to Output" +msgstr "" + +#: src/tables/build/BuildAllocatedStockTable.tsx:57 +msgid "Show items allocated to a build output" +msgstr "" + +#: src/tables/build/BuildAllocatedStockTable.tsx:65 +#: src/tables/build/BuildOrderTable.tsx:159 +#: src/tables/part/PartParameterTable.tsx:212 +#: src/tables/part/PartPurchaseOrdersTable.tsx:138 +#: src/tables/sales/ReturnOrderTable.tsx:84 +#: src/tables/sales/SalesOrderAllocationTable.tsx:68 +#: src/tables/sales/SalesOrderTable.tsx:84 +#: src/tables/stock/StockItemTable.tsx:339 +msgid "Include Variants" +msgstr "" + +#: src/tables/build/BuildAllocatedStockTable.tsx:66 +#: src/tables/build/BuildOrderTable.tsx:160 +#: src/tables/part/PartPurchaseOrdersTable.tsx:139 +#: src/tables/sales/ReturnOrderTable.tsx:85 +#: src/tables/sales/SalesOrderAllocationTable.tsx:69 +#: src/tables/sales/SalesOrderTable.tsx:85 +msgid "Include orders for part variants" +msgstr "" + +#: src/tables/build/BuildAllocatedStockTable.tsx:89 +#: src/tables/part/PartPurchaseOrdersTable.tsx:131 +#: src/tables/sales/SalesOrderAllocationTable.tsx:93 +msgid "Order Status" +msgstr "" + +#: src/tables/build/BuildAllocatedStockTable.tsx:117 +#: src/tables/sales/SalesOrderAllocationTable.tsx:126 +msgid "Allocated Quantity" +msgstr "" + +#: src/tables/build/BuildAllocatedStockTable.tsx:137 +#: src/tables/sales/SalesOrderAllocationTable.tsx:120 +msgid "Available Quantity" +msgstr "" + +#: src/tables/build/BuildAllocatedStockTable.tsx:164 +#: src/tables/build/BuildLineTable.tsx:513 +msgid "Edit Stock Allocation" +msgstr "" + +#: src/tables/build/BuildAllocatedStockTable.tsx:164 +#~ msgid "Edit Build Item" +#~ msgstr "Edit Build Item" + +#: src/tables/build/BuildAllocatedStockTable.tsx:174 +#~ msgid "Delete Build Item" +#~ msgstr "Delete Build Item" + +#: src/tables/build/BuildAllocatedStockTable.tsx:177 +#: src/tables/build/BuildLineTable.tsx:526 +msgid "Delete Stock Allocation" +msgstr "" + +#: src/tables/build/BuildLineTable.tsx:59 +#~ msgid "Show lines with available stock" +#~ msgstr "Show lines with available stock" + +#: src/tables/build/BuildLineTable.tsx:175 +msgid "Show allocated lines" +msgstr "" + +#: src/tables/build/BuildLineTable.tsx:185 +msgid "Show consumable lines" +msgstr "" + +#: src/tables/build/BuildLineTable.tsx:190 +msgid "Show optional lines" +msgstr "" + +#: src/tables/build/BuildLineTable.tsx:199 +#: src/tables/part/PartTable.tsx:208 +msgid "Testable" +msgstr "" + +#: src/tables/build/BuildLineTable.tsx:204 +#: src/tables/stock/StockItemTable.tsx:368 +msgid "Tracked" +msgstr "" + +#: src/tables/build/BuildLineTable.tsx:205 +msgid "Show tracked lines" +msgstr "" + +#: src/tables/build/BuildLineTable.tsx:239 +#: src/tables/sales/SalesOrderLineItemTable.tsx:141 +msgid "In production" +msgstr "" + +#: src/tables/build/BuildLineTable.tsx:267 +msgid "Insufficient stock" +msgstr "" + +#: src/tables/build/BuildLineTable.tsx:283 +#: src/tables/sales/SalesOrderLineItemTable.tsx:129 +#: src/tables/stock/StockItemTable.tsx:175 +msgid "No stock available" +msgstr "" + +#: src/tables/build/BuildLineTable.tsx:355 +msgid "Gets Inherited" +msgstr "" + +#: src/tables/build/BuildLineTable.tsx:366 +msgid "Unit Quantity" +msgstr "" + +#: src/tables/build/BuildLineTable.tsx:381 +msgid "Required Quantity" +msgstr "" + +#: src/tables/build/BuildLineTable.tsx:432 +#: src/tables/sales/SalesOrderLineItemTable.tsx:254 +msgid "Create Build Order" +msgstr "" + +#: src/tables/build/BuildLineTable.tsx:460 +msgid "Auto allocation in progress" +msgstr "" + +#: src/tables/build/BuildLineTable.tsx:463 +#: src/tables/build/BuildLineTable.tsx:632 +msgid "Auto Allocate Stock" +msgstr "" + +#: src/tables/build/BuildLineTable.tsx:464 +msgid "Automatically allocate stock to this build according to the selected options" +msgstr "" + +#: src/tables/build/BuildLineTable.tsx:482 +#: src/tables/build/BuildLineTable.tsx:496 +#: src/tables/build/BuildLineTable.tsx:579 +#: src/tables/build/BuildLineTable.tsx:664 +#: src/tables/build/BuildOutputTable.tsx:314 +#: src/tables/build/BuildOutputTable.tsx:319 +msgid "Deallocate Stock" +msgstr "" + +#: src/tables/build/BuildLineTable.tsx:498 +msgid "Deallocate all untracked stock for this build order" +msgstr "" + +#: src/tables/build/BuildLineTable.tsx:500 +msgid "Deallocate stock from the selected line item" +msgstr "" + +#: src/tables/build/BuildLineTable.tsx:504 +msgid "Stock has been deallocated" +msgstr "" + +#: src/tables/build/BuildLineTable.tsx:589 +msgid "Order Stock" +msgstr "" + +#: src/tables/build/BuildLineTable.tsx:596 +msgid "Build Stock" +msgstr "" + +#: src/tables/build/BuildLineTable.tsx:610 +msgid "View Part" +msgstr "" + +#: src/tables/build/BuildOrderTable.tsx:116 +#~ msgid "Cascade" +#~ msgstr "Cascade" + +#: src/tables/build/BuildOrderTable.tsx:117 +#~ msgid "Display recursive child orders" +#~ msgstr "Display recursive child orders" + +#: src/tables/build/BuildOrderTable.tsx:121 +msgid "Show outstanding orders" +msgstr "" + +#: src/tables/build/BuildOrderTable.tsx:121 +#~ msgid "Show active orders" +#~ msgstr "Show active orders" + +#: src/tables/build/BuildOrderTable.tsx:122 +#~ msgid "Show overdue status" +#~ msgstr "Show overdue status" + +#: src/tables/build/BuildOrderTable.tsx:126 +#: src/tables/part/PartPurchaseOrdersTable.tsx:132 +#: src/tables/purchasing/PurchaseOrderTable.tsx:59 +#: src/tables/sales/ReturnOrderTable.tsx:57 +#: src/tables/sales/SalesOrderTable.tsx:57 +msgid "Filter by order status" +msgstr "" + +#: src/tables/build/BuildOrderTable.tsx:136 +#: src/tables/purchasing/PurchaseOrderTable.tsx:70 +#: src/tables/sales/ReturnOrderTable.tsx:68 +#: src/tables/sales/SalesOrderTable.tsx:68 +msgid "Filter by project code" +msgstr "" + +#: src/tables/build/BuildOrderTable.tsx:139 +#: src/tables/purchasing/PurchaseOrderTable.tsx:71 +#: src/tables/sales/ReturnOrderTable.tsx:62 +#: src/tables/sales/SalesOrderTable.tsx:69 +#~ msgid "Filter by whether the purchase order has a project code" +#~ msgstr "Filter by whether the purchase order has a project code" + +#: src/tables/build/BuildOrderTable.tsx:143 +msgid "Filter by user who issued this order" +msgstr "" + +#: src/tables/build/BuildOrderTable.tsx:149 +#: src/tables/purchasing/PurchaseOrderTable.tsx:77 +#: src/tables/sales/ReturnOrderTable.tsx:75 +#: src/tables/sales/SalesOrderTable.tsx:75 +msgid "Filter by responsible owner" +msgstr "" + +#: src/tables/build/BuildOrderTestTable.tsx:76 +#: src/tables/build/BuildOrderTestTable.tsx:112 +#: src/tables/stock/StockItemTestResultTable.tsx:275 +#: src/tables/stock/StockItemTestResultTable.tsx:347 +#: src/tables/stock/StockItemTestResultTable.tsx:403 +msgid "Add Test Result" +msgstr "" + +#: src/tables/build/BuildOrderTestTable.tsx:83 +#: src/tables/stock/StockItemTestResultTable.tsx:277 +msgid "Test result added" +msgstr "" + +#: src/tables/build/BuildOrderTestTable.tsx:111 +#: src/tables/stock/StockItemTestResultTable.tsx:180 +msgid "No Result" +msgstr "" + +#: src/tables/build/BuildOrderTestTable.tsx:221 +msgid "Show build outputs currently in production" +msgstr "" + +#: src/tables/build/BuildOutputTable.tsx:76 +msgid "Build Output Stock Allocation" +msgstr "" + +#: src/tables/build/BuildOutputTable.tsx:161 +#~ msgid "Delete build output" +#~ msgstr "Delete build output" + +#: src/tables/build/BuildOutputTable.tsx:258 +#: src/tables/build/BuildOutputTable.tsx:374 +msgid "Add Build Output" +msgstr "" + +#: src/tables/build/BuildOutputTable.tsx:304 +#~ msgid "Edit build output" +#~ msgstr "Edit build output" + +#: src/tables/build/BuildOutputTable.tsx:306 +#: src/tables/build/BuildOutputTable.tsx:417 +msgid "Edit Build Output" +msgstr "" + +#: src/tables/build/BuildOutputTable.tsx:321 +msgid "This action will deallocate all stock from the selected build output" +msgstr "" + +#: src/tables/build/BuildOutputTable.tsx:341 +msgid "Complete selected outputs" +msgstr "" + +#: src/tables/build/BuildOutputTable.tsx:352 +msgid "Scrap selected outputs" +msgstr "" + +#: src/tables/build/BuildOutputTable.tsx:363 +msgid "Cancel selected outputs" +msgstr "" + +#: src/tables/build/BuildOutputTable.tsx:385 +msgid "Allocate" +msgstr "" + +#: src/tables/build/BuildOutputTable.tsx:386 +msgid "Allocate stock to build output" +msgstr "" + +#: src/tables/build/BuildOutputTable.tsx:396 +msgid "Deallocate" +msgstr "" + +#: src/tables/build/BuildOutputTable.tsx:397 +msgid "Deallocate stock from build output" +msgstr "" + +#: src/tables/build/BuildOutputTable.tsx:408 +msgid "Complete build output" +msgstr "" + +#: src/tables/build/BuildOutputTable.tsx:424 +msgid "Scrap" +msgstr "" + +#: src/tables/build/BuildOutputTable.tsx:425 +msgid "Scrap build output" +msgstr "" + +#: src/tables/build/BuildOutputTable.tsx:435 +msgid "Cancel build output" +msgstr "" + +#: src/tables/build/BuildOutputTable.tsx:488 +msgid "Allocated Lines" +msgstr "" + +#: src/tables/build/BuildOutputTable.tsx:503 +msgid "Required Tests" +msgstr "" + +#: src/tables/company/AddressTable.tsx:118 +#: src/tables/company/AddressTable.tsx:183 +msgid "Add Address" +msgstr "" + +#: src/tables/company/AddressTable.tsx:123 +msgid "Address created" +msgstr "" + +#: src/tables/company/AddressTable.tsx:132 +msgid "Edit Address" +msgstr "" + +#: src/tables/company/AddressTable.tsx:140 +msgid "Delete Address" +msgstr "" + +#: src/tables/company/AddressTable.tsx:141 +msgid "Are you sure you want to delete this address?" +msgstr "" + +#: src/tables/company/CompanyTable.tsx:71 +#~ msgid "New Company" +#~ msgstr "New Company" + +#: src/tables/company/CompanyTable.tsx:75 +#: src/tables/company/CompanyTable.tsx:125 +msgid "Add Company" +msgstr "" + +#: src/tables/company/CompanyTable.tsx:97 +msgid "Show active companies" +msgstr "" + +#: src/tables/company/CompanyTable.tsx:102 +msgid "Show companies which are suppliers" +msgstr "" + +#: src/tables/company/CompanyTable.tsx:107 +msgid "Show companies which are manufacturers" +msgstr "" + +#: src/tables/company/CompanyTable.tsx:112 +msgid "Show companies which are customers" +msgstr "" + +#: src/tables/company/ContactTable.tsx:71 +msgid "Edit Contact" +msgstr "" + +#: src/tables/company/ContactTable.tsx:78 +msgid "Add Contact" +msgstr "" + +#: src/tables/company/ContactTable.tsx:89 +msgid "Delete Contact" +msgstr "" + +#: src/tables/company/ContactTable.tsx:130 +msgid "Add contact" +msgstr "" + +#: src/tables/general/AttachmentTable.tsx:135 +msgid "File uploaded" +msgstr "" + +#: src/tables/general/AttachmentTable.tsx:136 +msgid "File {0} uploaded successfully" +msgstr "" + +#: src/tables/general/AttachmentTable.tsx:147 +msgid "Upload Error" +msgstr "" + +#: src/tables/general/AttachmentTable.tsx:148 +msgid "File could not be uploaded" +msgstr "" + +#: src/tables/general/AttachmentTable.tsx:196 +msgid "Upload Attachment" +msgstr "" + +#: src/tables/general/AttachmentTable.tsx:206 +msgid "Edit Attachment" +msgstr "" + +#: src/tables/general/AttachmentTable.tsx:220 +msgid "Delete Attachment" +msgstr "" + +#: src/tables/general/AttachmentTable.tsx:230 +msgid "Is Link" +msgstr "" + +#: src/tables/general/AttachmentTable.tsx:231 +msgid "Show link attachments" +msgstr "" + +#: src/tables/general/AttachmentTable.tsx:235 +msgid "Is File" +msgstr "" + +#: src/tables/general/AttachmentTable.tsx:236 +msgid "Show file attachments" +msgstr "" + +#: src/tables/general/AttachmentTable.tsx:245 +msgid "Add attachment" +msgstr "" + +#: src/tables/general/AttachmentTable.tsx:254 +#~ msgid "Upload attachment" +#~ msgstr "Upload attachment" + +#: src/tables/general/AttachmentTable.tsx:256 +msgid "Add external link" +msgstr "" + +#: src/tables/general/AttachmentTable.tsx:304 +msgid "No attachments found" +msgstr "" + +#: src/tables/general/AttachmentTable.tsx:343 +msgid "Drag attachment file here to upload" +msgstr "" + +#: src/tables/general/ExtraLineItemTable.tsx:86 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:263 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:362 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:72 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:168 +#: src/tables/sales/SalesOrderLineItemTable.tsx:206 +#: src/tables/sales/SalesOrderLineItemTable.tsx:291 +msgid "Add Line Item" +msgstr "" + +#: src/tables/general/ExtraLineItemTable.tsx:98 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:283 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:84 +#: src/tables/sales/SalesOrderLineItemTable.tsx:224 +msgid "Edit Line Item" +msgstr "" + +#: src/tables/general/ExtraLineItemTable.tsx:106 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:291 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:92 +#: src/tables/sales/SalesOrderLineItemTable.tsx:232 +msgid "Delete Line Item" +msgstr "" + +#: src/tables/general/ExtraLineItemTable.tsx:143 +msgid "Add Extra Line Item" +msgstr "" + +#: src/tables/machine/MachineListTable.tsx:202 +msgid "Machine restarted" +msgstr "" + +#: src/tables/machine/MachineListTable.tsx:212 +#: src/tables/machine/MachineListTable.tsx:261 +msgid "Edit machine" +msgstr "" + +#: src/tables/machine/MachineListTable.tsx:226 +#: src/tables/machine/MachineListTable.tsx:265 +msgid "Delete machine" +msgstr "" + +#: src/tables/machine/MachineListTable.tsx:227 +msgid "Machine successfully deleted." +msgstr "" + +#: src/tables/machine/MachineListTable.tsx:231 +msgid "Are you sure you want to remove the machine \"{0}\"?" +msgstr "" + +#: src/tables/machine/MachineListTable.tsx:254 +#: src/tables/machine/MachineListTable.tsx:442 +msgid "Restart required" +msgstr "" + +#: src/tables/machine/MachineListTable.tsx:258 +msgid "Machine Actions" +msgstr "" + +#: src/tables/machine/MachineListTable.tsx:270 +msgid "Restart" +msgstr "" + +#: src/tables/machine/MachineListTable.tsx:272 +msgid "Restart machine" +msgstr "" + +#: src/tables/machine/MachineListTable.tsx:274 +msgid "manual restart required" +msgstr "" + +#: src/tables/machine/MachineListTable.tsx:291 +#~ msgid "Machine information" +#~ msgstr "Machine information" + +#: src/tables/machine/MachineListTable.tsx:292 +msgid "Machine Information" +msgstr "" + +#: src/tables/machine/MachineListTable.tsx:302 +#: src/tables/machine/MachineListTable.tsx:610 +msgid "Machine Type" +msgstr "" + +#: src/tables/machine/MachineListTable.tsx:315 +msgid "Machine Driver" +msgstr "" + +#: src/tables/machine/MachineListTable.tsx:330 +msgid "Initialized" +msgstr "" + +#: src/tables/machine/MachineListTable.tsx:359 +#: src/tables/machine/MachineTypeTable.tsx:290 +msgid "No errors reported" +msgstr "" + +#: src/tables/machine/MachineListTable.tsx:378 +msgid "Machine Settings" +msgstr "" + +#: src/tables/machine/MachineListTable.tsx:394 +msgid "Driver Settings" +msgstr "" + +#: src/tables/machine/MachineListTable.tsx:494 +#~ msgid "Create machine" +#~ msgstr "Create machine" + +#: src/tables/machine/MachineListTable.tsx:516 +#: src/tables/machine/MachineListTable.tsx:558 +msgid "Add machine" +msgstr "" + +#: src/tables/machine/MachineListTable.tsx:561 +#~ msgid "Machine detail" +#~ msgstr "Machine detail" + +#: src/tables/machine/MachineListTable.tsx:572 +msgid "Machine Detail" +msgstr "" + +#: src/tables/machine/MachineListTable.tsx:619 +msgid "Driver" +msgstr "" + +#: src/tables/machine/MachineTypeTable.tsx:78 +msgid "Builtin driver" +msgstr "" + +#: src/tables/machine/MachineTypeTable.tsx:96 +msgid "Not Found" +msgstr "" + +#: src/tables/machine/MachineTypeTable.tsx:99 +msgid "Machine type not found." +msgstr "" + +#: src/tables/machine/MachineTypeTable.tsx:99 +#~ msgid "Machine type information" +#~ msgstr "Machine type information" + +#: src/tables/machine/MachineTypeTable.tsx:109 +msgid "Machine Type Information" +msgstr "" + +#: src/tables/machine/MachineTypeTable.tsx:124 +#: src/tables/machine/MachineTypeTable.tsx:238 +msgid "Slug" +msgstr "" + +#: src/tables/machine/MachineTypeTable.tsx:135 +#: src/tables/machine/MachineTypeTable.tsx:259 +msgid "Provider plugin" +msgstr "" + +#: src/tables/machine/MachineTypeTable.tsx:147 +#: src/tables/machine/MachineTypeTable.tsx:271 +msgid "Provider file" +msgstr "" + +#: src/tables/machine/MachineTypeTable.tsx:148 +#~ msgid "Available drivers" +#~ msgstr "Available drivers" + +#: src/tables/machine/MachineTypeTable.tsx:162 +msgid "Available Drivers" +msgstr "" + +#: src/tables/machine/MachineTypeTable.tsx:217 +msgid "Machine driver not found." +msgstr "" + +#: src/tables/machine/MachineTypeTable.tsx:225 +msgid "Machine driver information" +msgstr "" + +#: src/tables/machine/MachineTypeTable.tsx:245 +msgid "Machine type" +msgstr "" + +#: src/tables/machine/MachineTypeTable.tsx:338 +#~ msgid "Machine type detail" +#~ msgstr "Machine type detail" + +#: src/tables/machine/MachineTypeTable.tsx:348 +msgid "Builtin type" +msgstr "" + +#: src/tables/machine/MachineTypeTable.tsx:348 +#~ msgid "Machine driver detail" +#~ msgstr "Machine driver detail" + +#: src/tables/machine/MachineTypeTable.tsx:357 +msgid "Machine Type Detail" +msgstr "" + +#: src/tables/machine/MachineTypeTable.tsx:367 +msgid "Machine Driver Detail" +msgstr "" + +#: src/tables/notifications/NotificationsTable.tsx:26 +msgid "Age" +msgstr "" + +#: src/tables/notifications/NotificationsTable.tsx:36 +msgid "Notification" +msgstr "" + +#: src/tables/notifications/NotificationsTable.tsx:40 +#: src/tables/plugin/PluginErrorTable.tsx:37 +#: src/tables/settings/ErrorTable.tsx:50 +msgid "Message" +msgstr "" + +#: src/tables/part/ParametricPartTable.tsx:74 +msgid "Click to edit" +msgstr "" + +#: src/tables/part/ParametricPartTable.tsx:82 +#~ msgid "Edit parameter" +#~ msgstr "Edit parameter" + +#: src/tables/part/ParametricPartTable.tsx:127 +msgid "Add Part Parameter" +msgstr "" + +#: src/tables/part/ParametricPartTable.tsx:141 +#: src/tables/part/PartParameterTable.tsx:130 +#: src/tables/part/PartParameterTable.tsx:153 +msgid "Edit Part Parameter" +msgstr "" + +#: src/tables/part/ParametricPartTable.tsx:224 +msgid "Show active parts" +msgstr "" + +#: src/tables/part/ParametricPartTable.tsx:229 +msgid "Show locked parts" +msgstr "" + +#: src/tables/part/ParametricPartTable.tsx:234 +msgid "Show assembly parts" +msgstr "" + +#: src/tables/part/PartCategoryTable.tsx:48 +msgid "You are subscribed to notifications for this category" +msgstr "" + +#: src/tables/part/PartCategoryTable.tsx:80 +#: src/tables/part/PartTable.tsx:196 +msgid "Include Subcategories" +msgstr "" + +#: src/tables/part/PartCategoryTable.tsx:81 +msgid "Include subcategories in results" +msgstr "" + +#: src/tables/part/PartCategoryTable.tsx:86 +msgid "Show structural categories" +msgstr "" + +#: src/tables/part/PartCategoryTable.tsx:91 +msgid "Show categories to which the user is subscribed" +msgstr "" + +#: src/tables/part/PartCategoryTable.tsx:100 +msgid "New Part Category" +msgstr "" + +#: src/tables/part/PartCategoryTable.tsx:129 +msgid "Add Part Category" +msgstr "" + +#: src/tables/part/PartCategoryTemplateTable.tsx:38 +#: src/tables/part/PartCategoryTemplateTable.tsx:131 +msgid "Add Category Parameter" +msgstr "" + +#: src/tables/part/PartCategoryTemplateTable.tsx:46 +msgid "Edit Category Parameter" +msgstr "" + +#: src/tables/part/PartCategoryTemplateTable.tsx:54 +msgid "Delete Category Parameter" +msgstr "" + +#: src/tables/part/PartCategoryTemplateTable.tsx:76 +msgid "Parameter Template" +msgstr "" + +#: src/tables/part/PartCategoryTemplateTable.tsx:93 +#~ msgid "[{0}]" +#~ msgstr "[{0}]" + +#: src/tables/part/PartParameterTable.tsx:97 +msgid "Internal Units" +msgstr "" + +#: src/tables/part/PartParameterTable.tsx:114 +msgid "New Part Parameter" +msgstr "" + +#: src/tables/part/PartParameterTable.tsx:139 +#: src/tables/part/PartParameterTable.tsx:161 +msgid "Delete Part Parameter" +msgstr "" + +#: src/tables/part/PartParameterTable.tsx:179 +msgid "Add parameter" +msgstr "" + +#: src/tables/part/PartParameterTable.tsx:198 +msgid "Part parameters cannot be edited, as the part is locked" +msgstr "" + +#: src/tables/part/PartParameterTemplateTable.tsx:31 +msgid "Checkbox" +msgstr "" + +#: src/tables/part/PartParameterTemplateTable.tsx:32 +msgid "Show checkbox templates" +msgstr "" + +#: src/tables/part/PartParameterTemplateTable.tsx:36 +msgid "Has choices" +msgstr "" + +#: src/tables/part/PartParameterTemplateTable.tsx:37 +msgid "Show templates with choices" +msgstr "" + +#: src/tables/part/PartParameterTemplateTable.tsx:41 +#: src/tables/part/PartTable.tsx:220 +msgid "Has Units" +msgstr "" + +#: src/tables/part/PartParameterTemplateTable.tsx:42 +msgid "Show templates with units" +msgstr "" + +#: src/tables/part/PartParameterTemplateTable.tsx:85 +#: src/tables/part/PartParameterTemplateTable.tsx:141 +msgid "Add Parameter Template" +msgstr "" + +#: src/tables/part/PartParameterTemplateTable.tsx:100 +msgid "Edit Parameter Template" +msgstr "" + +#: src/tables/part/PartParameterTemplateTable.tsx:111 +msgid "Delete Parameter Template" +msgstr "" + +#: src/tables/part/PartParameterTemplateTable.tsx:141 +#~ msgid "Add parameter template" +#~ msgstr "Add parameter template" + +#: src/tables/part/PartPurchaseOrdersTable.tsx:78 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:168 +msgid "Total Quantity" +msgstr "" + +#: src/tables/part/PartPurchaseOrdersTable.tsx:122 +msgid "Show pending orders" +msgstr "" + +#: src/tables/part/PartPurchaseOrdersTable.tsx:127 +msgid "Show received items" +msgstr "" + +#: src/tables/part/PartTable.tsx:77 +msgid "Minimum stock" +msgstr "" + +#: src/tables/part/PartTable.tsx:179 +msgid "Filter by part active status" +msgstr "" + +#: src/tables/part/PartTable.tsx:185 +msgid "Filter by part locked status" +msgstr "" + +#: src/tables/part/PartTable.tsx:191 +msgid "Filter by assembly attribute" +msgstr "" + +#: src/tables/part/PartTable.tsx:197 +msgid "Include parts in subcategories" +msgstr "" + +#: src/tables/part/PartTable.tsx:203 +msgid "Filter by component attribute" +msgstr "" + +#: src/tables/part/PartTable.tsx:209 +msgid "Filter by testable attribute" +msgstr "" + +#: src/tables/part/PartTable.tsx:215 +msgid "Filter by trackable attribute" +msgstr "" + +#: src/tables/part/PartTable.tsx:221 +msgid "Filter by parts which have units" +msgstr "" + +#: src/tables/part/PartTable.tsx:226 +msgid "Has IPN" +msgstr "" + +#: src/tables/part/PartTable.tsx:227 +msgid "Filter by parts which have an internal part number" +msgstr "" + +#: src/tables/part/PartTable.tsx:232 +msgid "Has Stock" +msgstr "" + +#: src/tables/part/PartTable.tsx:233 +msgid "Filter by parts which have stock" +msgstr "" + +#: src/tables/part/PartTable.tsx:239 +msgid "Filter by parts which have low stock" +msgstr "" + +#: src/tables/part/PartTable.tsx:244 +msgid "Purchaseable" +msgstr "" + +#: src/tables/part/PartTable.tsx:245 +msgid "Filter by parts which are purchaseable" +msgstr "" + +#: src/tables/part/PartTable.tsx:250 +msgid "Salable" +msgstr "" + +#: src/tables/part/PartTable.tsx:251 +msgid "Filter by parts which are salable" +msgstr "" + +#: src/tables/part/PartTable.tsx:256 +#: src/tables/part/PartTable.tsx:260 +#: src/tables/part/PartVariantTable.tsx:25 +msgid "Virtual" +msgstr "" + +#: src/tables/part/PartTable.tsx:257 +msgid "Filter by parts which are virtual" +msgstr "" + +#: src/tables/part/PartTable.tsx:261 +msgid "Not Virtual" +msgstr "" + +#: src/tables/part/PartTable.tsx:266 +msgid "Is Template" +msgstr "" + +#: src/tables/part/PartTable.tsx:267 +msgid "Filter by parts which are templates" +msgstr "" + +#: src/tables/part/PartTable.tsx:272 +msgid "Is Revision" +msgstr "" + +#: src/tables/part/PartTable.tsx:273 +msgid "Filter by parts which are revisions" +msgstr "" + +#: src/tables/part/PartTable.tsx:277 +msgid "Has Revisions" +msgstr "" + +#: src/tables/part/PartTable.tsx:278 +msgid "Filter by parts which have revisions" +msgstr "" + +#: src/tables/part/PartTable.tsx:283 +msgid "Filter by parts which have pricing information" +msgstr "" + +#: src/tables/part/PartTable.tsx:289 +msgid "Filter by parts which have available stock" +msgstr "" + +#: src/tables/part/PartTable.tsx:295 +msgid "Filter by parts to which the user is subscribed" +msgstr "" + +#: src/tables/part/PartTable.tsx:300 +msgid "Has Stocktake" +msgstr "" + +#: src/tables/part/PartTable.tsx:301 +msgid "Filter by parts which have stocktake information" +msgstr "" + +#: src/tables/part/PartTestTemplateTable.tsx:50 +msgid "Test is defined for a parent template part" +msgstr "" + +#: src/tables/part/PartTestTemplateTable.tsx:64 +msgid "Template Details" +msgstr "" + +#: src/tables/part/PartTestTemplateTable.tsx:74 +msgid "Results" +msgstr "" + +#: src/tables/part/PartTestTemplateTable.tsx:107 +msgid "Show required tests" +msgstr "" + +#: src/tables/part/PartTestTemplateTable.tsx:111 +#: src/tables/settings/TemplateTable.tsx:247 +#: src/tables/settings/TemplateTable.tsx:363 +msgid "Enabled" +msgstr "" + +#: src/tables/part/PartTestTemplateTable.tsx:112 +msgid "Show enabled tests" +msgstr "" + +#: src/tables/part/PartTestTemplateTable.tsx:116 +msgid "Requires Value" +msgstr "" + +#: src/tables/part/PartTestTemplateTable.tsx:117 +msgid "Show tests that require a value" +msgstr "" + +#: src/tables/part/PartTestTemplateTable.tsx:121 +msgid "Requires Attachment" +msgstr "" + +#: src/tables/part/PartTestTemplateTable.tsx:122 +msgid "Show tests that require an attachment" +msgstr "" + +#: src/tables/part/PartTestTemplateTable.tsx:126 +msgid "Include Inherited" +msgstr "" + +#: src/tables/part/PartTestTemplateTable.tsx:127 +msgid "Show tests from inherited templates" +msgstr "" + +#: src/tables/part/PartTestTemplateTable.tsx:131 +msgid "Has Results" +msgstr "" + +#: src/tables/part/PartTestTemplateTable.tsx:132 +msgid "Show tests which have recorded results" +msgstr "" + +#: src/tables/part/PartTestTemplateTable.tsx:154 +#: src/tables/part/PartTestTemplateTable.tsx:238 +msgid "Add Test Template" +msgstr "" + +#: src/tables/part/PartTestTemplateTable.tsx:170 +msgid "Edit Test Template" +msgstr "" + +#: src/tables/part/PartTestTemplateTable.tsx:181 +msgid "Delete Test Template" +msgstr "" + +#: src/tables/part/PartTestTemplateTable.tsx:183 +msgid "This action cannot be reversed" +msgstr "" + +#: src/tables/part/PartTestTemplateTable.tsx:185 +msgid "Any tests results associated with this template will be deleted" +msgstr "" + +#: src/tables/part/PartTestTemplateTable.tsx:204 +msgid "View Parent Part" +msgstr "" + +#: src/tables/part/PartTestTemplateTable.tsx:258 +msgid "Part templates cannot be edited, as the part is locked" +msgstr "" + +#: src/tables/part/PartThumbTable.tsx:201 +msgid "Select" +msgstr "" + +#: src/tables/part/PartVariantTable.tsx:16 +msgid "Show active variants" +msgstr "" + +#: src/tables/part/PartVariantTable.tsx:20 +msgid "Template" +msgstr "" + +#: src/tables/part/PartVariantTable.tsx:21 +msgid "Show template variants" +msgstr "" + +#: src/tables/part/PartVariantTable.tsx:26 +msgid "Show virtual variants" +msgstr "" + +#: src/tables/part/PartVariantTable.tsx:31 +msgid "Show trackable variants" +msgstr "" + +#: src/tables/part/RelatedPartTable.tsx:86 +#: src/tables/part/RelatedPartTable.tsx:109 +msgid "Add Related Part" +msgstr "" + +#: src/tables/part/RelatedPartTable.tsx:101 +msgid "Delete Related Part" +msgstr "" + +#: src/tables/part/RelatedPartTable.tsx:109 +#~ msgid "Add related part" +#~ msgstr "Add related part" + +#: src/tables/plugin/PluginErrorTable.tsx:29 +msgid "Stage" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:42 +msgid "Plugin is active" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:48 +msgid "Plugin is inactive" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:55 +msgid "Plugin is not installed" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:76 +msgid "Plugin" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:95 +#~ msgid "Plugin with key {pluginKey} not found" +#~ msgstr "Plugin with key {pluginKey} not found" + +#: src/tables/plugin/PluginListTable.tsx:97 +#~ msgid "An error occurred while fetching plugin details" +#~ msgstr "An error occurred while fetching plugin details" + +#: src/tables/plugin/PluginListTable.tsx:109 +msgid "Description not available" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:113 +#~ msgid "Plugin with id {id} not found" +#~ msgstr "Plugin with id {id} not found" + +#: src/tables/plugin/PluginListTable.tsx:122 +#~ msgid "Plugin information" +#~ msgstr "Plugin information" + +#: src/tables/plugin/PluginListTable.tsx:134 +#~ msgid "Plugin Actions" +#~ msgstr "Plugin Actions" + +#: src/tables/plugin/PluginListTable.tsx:138 +#: src/tables/plugin/PluginListTable.tsx:141 +#~ msgid "Edit plugin" +#~ msgstr "Edit plugin" + +#: src/tables/plugin/PluginListTable.tsx:144 +msgid "Confirm plugin activation" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:145 +msgid "Confirm plugin deactivation" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:150 +msgid "The selected plugin will be activated" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:151 +msgid "The selected plugin will be deactivated" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:152 +#: src/tables/plugin/PluginListTable.tsx:153 +#~ msgid "Reload" +#~ msgstr "Reload" + +#: src/tables/plugin/PluginListTable.tsx:163 +#~ msgid "Package information" +#~ msgstr "Package information" + +#: src/tables/plugin/PluginListTable.tsx:169 +msgid "Deactivate" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:183 +msgid "Activate" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:184 +msgid "Activate selected plugin" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:196 +msgid "Update selected plugin" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:197 +#~ msgid "Plugin settings" +#~ msgstr "Plugin settings" + +#: src/tables/plugin/PluginListTable.tsx:214 +#: src/tables/stock/InstalledItemsTable.tsx:107 +msgid "Uninstall" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:215 +msgid "Uninstall selected plugin" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:233 +msgid "Delete selected plugin configuration" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:249 +msgid "Activate Plugin" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:270 +msgid "Install plugin" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:283 +msgid "Install" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:284 +msgid "Plugin installed successfully" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:289 +msgid "Uninstall Plugin" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:301 +msgid "Confirm plugin uninstall" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:304 +msgid "The selected plugin will be uninstalled." +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:308 +#~ msgid "This action cannot be undone." +#~ msgstr "This action cannot be undone." + +#: src/tables/plugin/PluginListTable.tsx:309 +msgid "Plugin uninstalled successfully" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:317 +msgid "Delete Plugin" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:318 +msgid "Deleting this plugin configuration will remove all associated settings and data. Are you sure you want to delete this plugin?" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:331 +msgid "Plugins reloaded" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:332 +msgid "Plugins were reloaded successfully" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:338 +#~ msgid "Deactivate Plugin" +#~ msgstr "Deactivate Plugin" + +#: src/tables/plugin/PluginListTable.tsx:350 +msgid "Reload Plugins" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:354 +#~ msgid "The following plugin will be activated" +#~ msgstr "The following plugin will be activated" + +#: src/tables/plugin/PluginListTable.tsx:355 +#~ msgid "The following plugin will be deactivated" +#~ msgstr "The following plugin will be deactivated" + +#: src/tables/plugin/PluginListTable.tsx:357 +msgid "Install Plugin" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:366 +#~ msgid "Confirm" +#~ msgstr "Confirm" + +#: src/tables/plugin/PluginListTable.tsx:374 +msgid "Plugin Detail" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:376 +#~ msgid "Activating plugin" +#~ msgstr "Activating plugin" + +#: src/tables/plugin/PluginListTable.tsx:376 +#~ msgid "Deactivating plugin" +#~ msgstr "Deactivating plugin" + +#: src/tables/plugin/PluginListTable.tsx:392 +#~ msgid "Plugin updated" +#~ msgstr "Plugin updated" + +#: src/tables/plugin/PluginListTable.tsx:394 +#~ msgid "The plugin was activated" +#~ msgstr "The plugin was activated" + +#: src/tables/plugin/PluginListTable.tsx:395 +#~ msgid "The plugin was deactivated" +#~ msgstr "The plugin was deactivated" + +#: src/tables/plugin/PluginListTable.tsx:403 +#~ msgid "Error updating plugin" +#~ msgstr "Error updating plugin" + +#: src/tables/plugin/PluginListTable.tsx:411 +msgid "Sample" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:416 +#: src/tables/stock/StockItemTable.tsx:344 +msgid "Installed" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:615 +#~ msgid "Plugin detail" +#~ msgstr "Plugin detail" + +#: src/tables/purchasing/ManufacturerPartParameterTable.tsx:59 +#: src/tables/purchasing/ManufacturerPartParameterTable.tsx:108 +msgid "Add Parameter" +msgstr "" + +#: src/tables/purchasing/ManufacturerPartParameterTable.tsx:60 +#~ msgid "Parameter updated" +#~ msgstr "Parameter updated" + +#: src/tables/purchasing/ManufacturerPartParameterTable.tsx:70 +msgid "Edit Parameter" +msgstr "" + +#: src/tables/purchasing/ManufacturerPartParameterTable.tsx:73 +#~ msgid "Parameter deleted" +#~ msgstr "Parameter deleted" + +#: src/tables/purchasing/ManufacturerPartParameterTable.tsx:74 +#~ msgid "Are you sure you want to delete this parameter?" +#~ msgstr "Are you sure you want to delete this parameter?" + +#: src/tables/purchasing/ManufacturerPartParameterTable.tsx:78 +msgid "Delete Parameter" +msgstr "" + +#: src/tables/purchasing/ManufacturerPartTable.tsx:63 +#~ msgid "Create Manufacturer Part" +#~ msgstr "Create Manufacturer Part" + +#: src/tables/purchasing/ManufacturerPartTable.tsx:100 +#~ msgid "Manufacturer part updated" +#~ msgstr "Manufacturer part updated" + +#: src/tables/purchasing/ManufacturerPartTable.tsx:112 +#~ msgid "Manufacturer part deleted" +#~ msgstr "Manufacturer part deleted" + +#: src/tables/purchasing/ManufacturerPartTable.tsx:114 +#~ msgid "Are you sure you want to remove this manufacturer part?" +#~ msgstr "Are you sure you want to remove this manufacturer part?" + +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:103 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:356 +msgid "Import Line Items" +msgstr "" + +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:207 +msgid "Supplier Code" +msgstr "" + +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:214 +msgid "Supplier Link" +msgstr "" + +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:220 +msgid "Manufacturer Code" +msgstr "" + +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:248 +msgid "Show line items which have been received" +msgstr "" + +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:316 +msgid "Receive line item" +msgstr "" + +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:344 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:160 +#: src/tables/sales/SalesOrderLineItemTable.tsx:258 +#~ msgid "Add line item" +#~ msgstr "Add line item" + +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:373 +msgid "Receive items" +msgstr "" + +#: src/tables/purchasing/SupplierPartTable.tsx:95 +msgid "MPN" +msgstr "" + +#: src/tables/purchasing/SupplierPartTable.tsx:124 +msgid "Base units" +msgstr "" + +#: src/tables/purchasing/SupplierPartTable.tsx:172 +msgid "Supplier part created" +msgstr "" + +#: src/tables/purchasing/SupplierPartTable.tsx:179 +msgid "Add supplier part" +msgstr "" + +#: src/tables/purchasing/SupplierPartTable.tsx:191 +msgid "Show active supplier parts" +msgstr "" + +#: src/tables/purchasing/SupplierPartTable.tsx:193 +#~ msgid "Supplier part updated" +#~ msgstr "Supplier part updated" + +#: src/tables/purchasing/SupplierPartTable.tsx:195 +msgid "Active Part" +msgstr "" + +#: src/tables/purchasing/SupplierPartTable.tsx:196 +msgid "Show active internal parts" +msgstr "" + +#: src/tables/purchasing/SupplierPartTable.tsx:200 +msgid "Active Supplier" +msgstr "" + +#: src/tables/purchasing/SupplierPartTable.tsx:201 +msgid "Show active suppliers" +msgstr "" + +#: src/tables/purchasing/SupplierPartTable.tsx:205 +#~ msgid "Supplier part deleted" +#~ msgstr "Supplier part deleted" + +#: src/tables/purchasing/SupplierPartTable.tsx:207 +#~ msgid "Are you sure you want to remove this supplier part?" +#~ msgstr "Are you sure you want to remove this supplier part?" + +#: src/tables/sales/ReturnOrderLineItemTable.tsx:139 +msgid "Received Date" +msgstr "" + +#: src/tables/sales/ReturnOrderLineItemTable.tsx:153 +msgid "Show items which have been received" +msgstr "" + +#: src/tables/sales/ReturnOrderLineItemTable.tsx:158 +msgid "Filter by line item status" +msgstr "" + +#: src/tables/sales/ReturnOrderLineItemTable.tsx:176 +msgid "Receive selected items" +msgstr "" + +#: src/tables/sales/ReturnOrderLineItemTable.tsx:205 +msgid "Receive Item" +msgstr "" + +#: src/tables/sales/SalesOrderAllocationTable.tsx:60 +msgid "Show outstanding allocations" +msgstr "" + +#: src/tables/sales/SalesOrderAllocationTable.tsx:168 +#: src/tables/sales/SalesOrderAllocationTable.tsx:190 +msgid "Edit Allocation" +msgstr "" + +#: src/tables/sales/SalesOrderAllocationTable.tsx:175 +#: src/tables/sales/SalesOrderAllocationTable.tsx:197 +msgid "Delete Allocation" +msgstr "" + +#: src/tables/sales/SalesOrderLineItemTable.tsx:244 +msgid "Allocate Serial Numbers" +msgstr "" + +#: src/tables/sales/SalesOrderLineItemTable.tsx:277 +msgid "Show lines which are fully allocated" +msgstr "" + +#: src/tables/sales/SalesOrderLineItemTable.tsx:280 +#~ msgid "Allocate stock" +#~ msgstr "Allocate stock" + +#: src/tables/sales/SalesOrderLineItemTable.tsx:282 +msgid "Show lines which are completed" +msgstr "" + +#: src/tables/sales/SalesOrderLineItemTable.tsx:291 +#~ msgid "Allocate Serials" +#~ msgstr "Allocate Serials" + +#: src/tables/sales/SalesOrderLineItemTable.tsx:340 +msgid "Allocate serials" +msgstr "" + +#: src/tables/sales/SalesOrderLineItemTable.tsx:356 +msgid "Build stock" +msgstr "" + +#: src/tables/sales/SalesOrderLineItemTable.tsx:373 +#: src/tables/stock/StockItemTable.tsx:512 +msgid "Order stock" +msgstr "" + +#: src/tables/sales/SalesOrderShipmentTable.tsx:51 +#~ msgid "Delete Shipment" +#~ msgstr "Delete Shipment" + +#: src/tables/sales/SalesOrderShipmentTable.tsx:57 +msgid "Create Shipment" +msgstr "" + +#: src/tables/sales/SalesOrderShipmentTable.tsx:104 +msgid "Items" +msgstr "" + +#: src/tables/sales/SalesOrderShipmentTable.tsx:139 +msgid "View Shipment" +msgstr "" + +#: src/tables/sales/SalesOrderShipmentTable.tsx:161 +msgid "Edit shipment" +msgstr "" + +#: src/tables/sales/SalesOrderShipmentTable.tsx:169 +msgid "Cancel shipment" +msgstr "" + +#: src/tables/sales/SalesOrderShipmentTable.tsx:184 +msgid "Add shipment" +msgstr "" + +#: src/tables/sales/SalesOrderShipmentTable.tsx:198 +msgid "Show shipments which have been shipped" +msgstr "" + +#: src/tables/sales/SalesOrderShipmentTable.tsx:203 +msgid "Show shipments which have been delivered" +msgstr "" + +#: src/tables/settings/BarcodeScanHistoryTable.tsx:61 +msgid "Barcode Information" +msgstr "" + +#: src/tables/settings/BarcodeScanHistoryTable.tsx:76 +#: src/tables/settings/ErrorTable.tsx:59 +msgid "Timestamp" +msgstr "" + +#: src/tables/settings/BarcodeScanHistoryTable.tsx:86 +msgid "Endpoint" +msgstr "" + +#: src/tables/settings/BarcodeScanHistoryTable.tsx:90 +#: src/tables/settings/BarcodeScanHistoryTable.tsx:217 +#: src/tables/stock/StockItemTestResultTable.tsx:174 +msgid "Result" +msgstr "" + +#: src/tables/settings/BarcodeScanHistoryTable.tsx:98 +msgid "Context" +msgstr "" + +#: src/tables/settings/BarcodeScanHistoryTable.tsx:119 +msgid "Response" +msgstr "" + +#: src/tables/settings/BarcodeScanHistoryTable.tsx:213 +#: src/tables/settings/ImportSessionTable.tsx:121 +#: src/tables/stock/StockTrackingTable.tsx:183 +msgid "Filter by user" +msgstr "" + +#: src/tables/settings/BarcodeScanHistoryTable.tsx:218 +msgid "Filter by result" +msgstr "" + +#: src/tables/settings/BarcodeScanHistoryTable.tsx:232 +msgid "Delete Barcode Scan Record" +msgstr "" + +#: src/tables/settings/BarcodeScanHistoryTable.tsx:258 +msgid "Barcode Scan Details" +msgstr "" + +#: src/tables/settings/BarcodeScanHistoryTable.tsx:268 +msgid "Logging Disabled" +msgstr "" + +#: src/tables/settings/BarcodeScanHistoryTable.tsx:270 +msgid "Barcode logging is not enabled" +msgstr "" + +#: src/tables/settings/CustomStateTable.tsx:36 +msgid "Display Name" +msgstr "" + +#: src/tables/settings/CustomStateTable.tsx:52 +msgid "Model" +msgstr "" + +#: src/tables/settings/CustomStateTable.tsx:65 +#: src/tables/settings/CustomStateTable.tsx:115 +msgid "Add State" +msgstr "" + +#: src/tables/settings/CustomStateTable.tsx:77 +msgid "Edit State" +msgstr "" + +#: src/tables/settings/CustomStateTable.tsx:85 +msgid "Delete State" +msgstr "" + +#: src/tables/settings/CustomStateTable.tsx:115 +#~ msgid "Add state" +#~ msgstr "Add state" + +#: src/tables/settings/CustomUnitsTable.tsx:50 +msgid "Add Custom Unit" +msgstr "" + +#: src/tables/settings/CustomUnitsTable.tsx:60 +msgid "Edit Custom Unit" +msgstr "" + +#: src/tables/settings/CustomUnitsTable.tsx:68 +msgid "Delete Custom Unit" +msgstr "" + +#: src/tables/settings/CustomUnitsTable.tsx:100 +msgid "Add custom unit" +msgstr "" + +#: src/tables/settings/ErrorTable.tsx:51 +#~ msgid "Delete error report" +#~ msgstr "Delete error report" + +#: src/tables/settings/ErrorTable.tsx:67 +msgid "Traceback" +msgstr "" + +#: src/tables/settings/ErrorTable.tsx:103 +msgid "When" +msgstr "" + +#: src/tables/settings/ErrorTable.tsx:113 +msgid "Error Information" +msgstr "" + +#: src/tables/settings/ErrorTable.tsx:123 +msgid "Delete Error Report" +msgstr "" + +#: src/tables/settings/ErrorTable.tsx:125 +msgid "Are you sure you want to delete this error report?" +msgstr "" + +#: src/tables/settings/ErrorTable.tsx:127 +msgid "Error report deleted" +msgstr "" + +#: src/tables/settings/ErrorTable.tsx:146 +#: src/tables/settings/FailedTasksTable.tsx:65 +msgid "Error Details" +msgstr "" + +#: src/tables/settings/FailedTasksTable.tsx:32 +#: src/tables/settings/PendingTasksTable.tsx:23 +#: src/tables/settings/ScheduledTasksTable.tsx:19 +msgid "Task" +msgstr "" + +#: src/tables/settings/FailedTasksTable.tsx:38 +#: src/tables/settings/PendingTasksTable.tsx:28 +msgid "Task ID" +msgstr "" + +#: src/tables/settings/FailedTasksTable.tsx:42 +#: src/tables/stock/StockItemTestResultTable.tsx:218 +msgid "Started" +msgstr "" + +#: src/tables/settings/FailedTasksTable.tsx:48 +msgid "Stopped" +msgstr "" + +#: src/tables/settings/FailedTasksTable.tsx:54 +msgid "Attempts" +msgstr "" + +#: src/tables/settings/FailedTasksTable.tsx:92 +msgid "No Information" +msgstr "" + +#: src/tables/settings/FailedTasksTable.tsx:93 +msgid "No error details are available for this task" +msgstr "" + +#: src/tables/settings/GroupTable.tsx:90 +msgid "Group with id {id} not found" +msgstr "" + +#: src/tables/settings/GroupTable.tsx:92 +msgid "An error occurred while fetching group details" +msgstr "" + +#: src/tables/settings/GroupTable.tsx:116 +msgid "Permission set" +msgstr "" + +#: src/tables/settings/GroupTable.tsx:177 +msgid "Delete group" +msgstr "" + +#: src/tables/settings/GroupTable.tsx:178 +msgid "Group deleted" +msgstr "" + +#: src/tables/settings/GroupTable.tsx:180 +msgid "Are you sure you want to delete this group?" +msgstr "" + +#: src/tables/settings/GroupTable.tsx:185 +#: src/tables/settings/GroupTable.tsx:197 +msgid "Add group" +msgstr "" + +#: src/tables/settings/GroupTable.tsx:210 +msgid "Edit group" +msgstr "" + +#: src/tables/settings/ImportSessionTable.tsx:37 +msgid "Delete Import Session" +msgstr "" + +#: src/tables/settings/ImportSessionTable.tsx:43 +#: src/tables/settings/ImportSessionTable.tsx:131 +msgid "Create Import Session" +msgstr "" + +#: src/tables/settings/ImportSessionTable.tsx:68 +msgid "Uploaded" +msgstr "" + +#: src/tables/settings/ImportSessionTable.tsx:108 +#: src/tables/settings/TemplateTable.tsx:369 +msgid "Model Type" +msgstr "" + +#: src/tables/settings/ImportSessionTable.tsx:109 +#: src/tables/settings/TemplateTable.tsx:370 +msgid "Filter by target model type" +msgstr "" + +#: src/tables/settings/ImportSessionTable.tsx:115 +msgid "Filter by import session status" +msgstr "" + +#: src/tables/settings/PendingTasksTable.tsx:42 +msgid "Arguments" +msgstr "" + +#: src/tables/settings/ProjectCodeTable.tsx:42 +msgid "Add Project Code" +msgstr "" + +#: src/tables/settings/ProjectCodeTable.tsx:54 +msgid "Edit Project Code" +msgstr "" + +#: src/tables/settings/ProjectCodeTable.tsx:62 +msgid "Delete Project Code" +msgstr "" + +#: src/tables/settings/ProjectCodeTable.tsx:92 +msgid "Add project code" +msgstr "" + +#: src/tables/settings/ScheduledTasksTable.tsx:25 +msgid "Last Run" +msgstr "" + +#: src/tables/settings/ScheduledTasksTable.tsx:47 +msgid "Next Run" +msgstr "" + +#: src/tables/settings/StocktakeReportTable.tsx:28 +msgid "Report" +msgstr "" + +#: src/tables/settings/StocktakeReportTable.tsx:35 +msgid "Part Count" +msgstr "" + +#: src/tables/settings/StocktakeReportTable.tsx:58 +msgid "Delete Report" +msgstr "" + +#: src/tables/settings/TemplateTable.tsx:120 +#~ msgid "{templateTypeTranslation} with id {id} not found" +#~ msgstr "{templateTypeTranslation} with id {id} not found" + +#: src/tables/settings/TemplateTable.tsx:124 +#~ msgid "An error occurred while fetching {templateTypeTranslation} details" +#~ msgstr "An error occurred while fetching {templateTypeTranslation} details" + +#: src/tables/settings/TemplateTable.tsx:146 +#~ msgid "actions" +#~ msgstr "actions" + +#: src/tables/settings/TemplateTable.tsx:162 +msgid "Template not found" +msgstr "" + +#: src/tables/settings/TemplateTable.tsx:164 +msgid "An error occurred while fetching template details" +msgstr "" + +#: src/tables/settings/TemplateTable.tsx:243 +#~ msgid "Add new" +#~ msgstr "Add new" + +#: src/tables/settings/TemplateTable.tsx:243 +#~ msgid "Create new" +#~ msgstr "Create new" + +#: src/tables/settings/TemplateTable.tsx:257 +msgid "Modify" +msgstr "" + +#: src/tables/settings/TemplateTable.tsx:258 +msgid "Modify template file" +msgstr "" + +#: src/tables/settings/TemplateTable.tsx:314 +#: src/tables/settings/TemplateTable.tsx:382 +msgid "Edit Template" +msgstr "" + +#: src/tables/settings/TemplateTable.tsx:322 +msgid "Delete template" +msgstr "" + +#: src/tables/settings/TemplateTable.tsx:328 +msgid "Add Template" +msgstr "" + +#: src/tables/settings/TemplateTable.tsx:341 +msgid "Add template" +msgstr "" + +#: src/tables/settings/TemplateTable.tsx:364 +msgid "Filter by enabled status" +msgstr "" + +#: src/tables/settings/UserTable.tsx:81 +msgid "User with id {id} not found" +msgstr "" + +#: src/tables/settings/UserTable.tsx:83 +msgid "An error occurred while fetching user details" +msgstr "" + +#: src/tables/settings/UserTable.tsx:101 +msgid "Is Active" +msgstr "" + +#: src/tables/settings/UserTable.tsx:102 +msgid "Designates whether this user should be treated as active. Unselect this instead of deleting accounts." +msgstr "" + +#: src/tables/settings/UserTable.tsx:106 +msgid "Is Staff" +msgstr "" + +#: src/tables/settings/UserTable.tsx:107 +msgid "Designates whether the user can log into the django admin site." +msgstr "" + +#: src/tables/settings/UserTable.tsx:111 +msgid "Is Superuser" +msgstr "" + +#: src/tables/settings/UserTable.tsx:112 +msgid "Designates that this user has all permissions without explicitly assigning them." +msgstr "" + +#: src/tables/settings/UserTable.tsx:122 +msgid "You cannot edit the rights for the currently logged-in user." +msgstr "" + +#: src/tables/settings/UserTable.tsx:153 +msgid "No groups" +msgstr "" + +#: src/tables/settings/UserTable.tsx:244 +msgid "Delete user" +msgstr "" + +#: src/tables/settings/UserTable.tsx:245 +msgid "User deleted" +msgstr "" + +#: src/tables/settings/UserTable.tsx:247 +msgid "Are you sure you want to delete this user?" +msgstr "" + +#: src/tables/settings/UserTable.tsx:253 +#: src/tables/settings/UserTable.tsx:271 +msgid "Add user" +msgstr "" + +#: src/tables/settings/UserTable.tsx:261 +msgid "Added user" +msgstr "" + +#: src/tables/settings/UserTable.tsx:284 +msgid "Show active users" +msgstr "" + +#: src/tables/settings/UserTable.tsx:288 +msgid "Staff" +msgstr "" + +#: src/tables/settings/UserTable.tsx:289 +msgid "Show staff users" +msgstr "" + +#: src/tables/settings/UserTable.tsx:294 +msgid "Show superusers" +msgstr "" + +#: src/tables/settings/UserTable.tsx:304 +msgid "Edit user" +msgstr "" + +#: src/tables/stock/InstalledItemsTable.tsx:37 +#: src/tables/stock/InstalledItemsTable.tsx:90 +msgid "Install Item" +msgstr "" + +#: src/tables/stock/InstalledItemsTable.tsx:39 +msgid "Item installed" +msgstr "" + +#: src/tables/stock/InstalledItemsTable.tsx:50 +msgid "Uninstall Item" +msgstr "" + +#: src/tables/stock/InstalledItemsTable.tsx:52 +msgid "Item uninstalled" +msgstr "" + +#: src/tables/stock/InstalledItemsTable.tsx:108 +msgid "Uninstall stock item" +msgstr "" + +#: src/tables/stock/LocationTypesTable.tsx:39 +#: src/tables/stock/LocationTypesTable.tsx:109 +msgid "Add Location Type" +msgstr "" + +#: src/tables/stock/LocationTypesTable.tsx:47 +msgid "Edit Location Type" +msgstr "" + +#: src/tables/stock/LocationTypesTable.tsx:55 +msgid "Delete Location Type" +msgstr "" + +#: src/tables/stock/LocationTypesTable.tsx:63 +msgid "Icon" +msgstr "" + +#: src/tables/stock/StockItemTable.tsx:90 +msgid "This stock item is in production" +msgstr "" + +#: src/tables/stock/StockItemTable.tsx:97 +msgid "This stock item has been assigned to a sales order" +msgstr "" + +#: src/tables/stock/StockItemTable.tsx:104 +msgid "This stock item has been assigned to a customer" +msgstr "" + +#: src/tables/stock/StockItemTable.tsx:111 +msgid "This stock item is installed in another stock item" +msgstr "" + +#: src/tables/stock/StockItemTable.tsx:118 +msgid "This stock item has been consumed by a build order" +msgstr "" + +#: src/tables/stock/StockItemTable.tsx:125 +msgid "This stock item is unavailable" +msgstr "" + +#: src/tables/stock/StockItemTable.tsx:134 +msgid "This stock item has expired" +msgstr "" + +#: src/tables/stock/StockItemTable.tsx:138 +msgid "This stock item is stale" +msgstr "" + +#: src/tables/stock/StockItemTable.tsx:150 +msgid "This stock item is fully allocated" +msgstr "" + +#: src/tables/stock/StockItemTable.tsx:157 +msgid "This stock item is partially allocated" +msgstr "" + +#: src/tables/stock/StockItemTable.tsx:185 +msgid "This stock item has been depleted" +msgstr "" + +#: src/tables/stock/StockItemTable.tsx:280 +msgid "Stocktake Date" +msgstr "" + +#: src/tables/stock/StockItemTable.tsx:294 +msgid "Show stock for active parts" +msgstr "" + +#: src/tables/stock/StockItemTable.tsx:299 +msgid "Filter by stock status" +msgstr "" + +#: src/tables/stock/StockItemTable.tsx:301 +#~ msgid "Show stock for assmebled parts" +#~ msgstr "Show stock for assmebled parts" + +#: src/tables/stock/StockItemTable.tsx:305 +msgid "Show stock for assembled parts" +msgstr "" + +#: src/tables/stock/StockItemTable.tsx:310 +msgid "Show items which have been allocated" +msgstr "" + +#: src/tables/stock/StockItemTable.tsx:315 +msgid "Show items which are available" +msgstr "" + +#: src/tables/stock/StockItemTable.tsx:319 +#: src/tables/stock/StockLocationTable.tsx:44 +msgid "Include Sublocations" +msgstr "" + +#: src/tables/stock/StockItemTable.tsx:320 +msgid "Include stock in sublocations" +msgstr "" + +#: src/tables/stock/StockItemTable.tsx:324 +msgid "Depleted" +msgstr "" + +#: src/tables/stock/StockItemTable.tsx:325 +msgid "Show depleted stock items" +msgstr "" + +#: src/tables/stock/StockItemTable.tsx:330 +msgid "Show items which are in stock" +msgstr "" + +#: src/tables/stock/StockItemTable.tsx:335 +msgid "Show items which are in production" +msgstr "" + +#: src/tables/stock/StockItemTable.tsx:340 +msgid "Include stock items for variant parts" +msgstr "" + +#: src/tables/stock/StockItemTable.tsx:345 +msgid "Show stock items which are installed in other items" +msgstr "" + +#: src/tables/stock/StockItemTable.tsx:349 +msgid "Sent to Customer" +msgstr "" + +#: src/tables/stock/StockItemTable.tsx:350 +msgid "Show items which have been sent to a customer" +msgstr "" + +#: src/tables/stock/StockItemTable.tsx:354 +msgid "Is Serialized" +msgstr "" + +#: src/tables/stock/StockItemTable.tsx:355 +msgid "Show items which have a serial number" +msgstr "" + +#: src/tables/stock/StockItemTable.tsx:362 +msgid "Has Batch Code" +msgstr "" + +#: src/tables/stock/StockItemTable.tsx:363 +msgid "Show items which have a batch code" +msgstr "" + +#: src/tables/stock/StockItemTable.tsx:369 +msgid "Show tracked items" +msgstr "" + +#: src/tables/stock/StockItemTable.tsx:373 +msgid "Has Purchase Price" +msgstr "" + +#: src/tables/stock/StockItemTable.tsx:374 +msgid "Show items which have a purchase price" +msgstr "" + +#: src/tables/stock/StockItemTable.tsx:382 +msgid "External Location" +msgstr "" + +#: src/tables/stock/StockItemTable.tsx:383 +msgid "Show items in an external location" +msgstr "" + +#: src/tables/stock/StockItemTable.tsx:456 +msgid "Add a new stock item" +msgstr "" + +#: src/tables/stock/StockItemTable.tsx:465 +msgid "Remove some quantity from a stock item" +msgstr "" + +#: src/tables/stock/StockItemTable.tsx:487 +msgid "Move Stock items to new locations" +msgstr "" + +#: src/tables/stock/StockItemTable.tsx:494 +msgid "Change stock status" +msgstr "" + +#: src/tables/stock/StockItemTable.tsx:496 +msgid "Change the status of stock items" +msgstr "" + +#: src/tables/stock/StockItemTable.tsx:503 +msgid "Merge stock" +msgstr "" + +#: src/tables/stock/StockItemTable.tsx:505 +msgid "Merge stock items" +msgstr "" + +#: src/tables/stock/StockItemTable.tsx:514 +#: src/tables/stock/StockItemTable.tsx:521 +msgid "Order new stock" +msgstr "" + +#: src/tables/stock/StockItemTable.tsx:519 +msgid "Assign to customer" +msgstr "" + +#: src/tables/stock/StockItemTable.tsx:528 +msgid "Delete stock" +msgstr "" + +#: src/tables/stock/StockItemTable.tsx:528 +#~ msgid "Delete stock items" +#~ msgstr "Delete stock items" + +#: src/tables/stock/StockItemTestResultTable.tsx:137 +msgid "Test" +msgstr "" + +#: src/tables/stock/StockItemTestResultTable.tsx:163 +msgid "Test result for installed stock item" +msgstr "" + +#: src/tables/stock/StockItemTestResultTable.tsx:196 +msgid "Attachment" +msgstr "" + +#: src/tables/stock/StockItemTestResultTable.tsx:212 +msgid "Test station" +msgstr "" + +#: src/tables/stock/StockItemTestResultTable.tsx:234 +msgid "Finished" +msgstr "" + +#: src/tables/stock/StockItemTestResultTable.tsx:286 +#: src/tables/stock/StockItemTestResultTable.tsx:357 +msgid "Edit Test Result" +msgstr "" + +#: src/tables/stock/StockItemTestResultTable.tsx:288 +msgid "Test result updated" +msgstr "" + +#: src/tables/stock/StockItemTestResultTable.tsx:294 +#: src/tables/stock/StockItemTestResultTable.tsx:366 +msgid "Delete Test Result" +msgstr "" + +#: src/tables/stock/StockItemTestResultTable.tsx:296 +msgid "Test result deleted" +msgstr "" + +#: src/tables/stock/StockItemTestResultTable.tsx:310 +msgid "Test Passed" +msgstr "" + +#: src/tables/stock/StockItemTestResultTable.tsx:311 +msgid "Test result has been recorded" +msgstr "" + +#: src/tables/stock/StockItemTestResultTable.tsx:318 +msgid "Failed to record test result" +msgstr "" + +#: src/tables/stock/StockItemTestResultTable.tsx:335 +msgid "Pass Test" +msgstr "" + +#: src/tables/stock/StockItemTestResultTable.tsx:384 +msgid "Show results for required tests" +msgstr "" + +#: src/tables/stock/StockItemTestResultTable.tsx:388 +msgid "Include Installed" +msgstr "" + +#: src/tables/stock/StockItemTestResultTable.tsx:389 +msgid "Show results for installed stock items" +msgstr "" + +#: src/tables/stock/StockItemTestResultTable.tsx:393 +#: src/tables/stock/TestStatisticsTable.tsx:62 +msgid "Passed" +msgstr "" + +#: src/tables/stock/StockItemTestResultTable.tsx:394 +msgid "Show only passed tests" +msgstr "" + +#: src/tables/stock/StockLocationTable.tsx:38 +#~ msgid "structural" +#~ msgstr "structural" + +#: src/tables/stock/StockLocationTable.tsx:43 +#~ msgid "external" +#~ msgstr "external" + +#: src/tables/stock/StockLocationTable.tsx:45 +msgid "Include sublocations in results" +msgstr "" + +#: src/tables/stock/StockLocationTable.tsx:50 +msgid "Show structural locations" +msgstr "" + +#: src/tables/stock/StockLocationTable.tsx:55 +msgid "Show external locations" +msgstr "" + +#: src/tables/stock/StockLocationTable.tsx:59 +msgid "Has location type" +msgstr "" + +#: src/tables/stock/StockLocationTable.tsx:64 +msgid "Filter by location type" +msgstr "" + +#: src/tables/stock/StockLocationTable.tsx:107 +#: src/tables/stock/StockLocationTable.tsx:134 +msgid "Add Stock Location" +msgstr "" + +#: src/tables/stock/StockTrackingTable.tsx:68 +msgid "Added" +msgstr "" + +#: src/tables/stock/StockTrackingTable.tsx:73 +msgid "Removed" +msgstr "" + +#: src/tables/stock/StockTrackingTable.tsx:198 +msgid "Details" +msgstr "" + +#: src/tables/stock/StockTrackingTable.tsx:213 +msgid "No user information" +msgstr "" + +#: src/tables/stock/TestStatisticsTable.tsx:34 +#: src/tables/stock/TestStatisticsTable.tsx:64 +msgid "Total" +msgstr "" + +#: src/tables/stock/TestStatisticsTable.tsx:63 +msgid "Failed" +msgstr "" + +#: src/views/MobileAppView.tsx:22 +msgid "Mobile viewport detected" +msgstr "" + +#: src/views/MobileAppView.tsx:25 +msgid "Platform UI is optimized for Tablets and Desktops, you can use the official app for a mobile experience." +msgstr "" + +#: src/views/MobileAppView.tsx:31 +msgid "Read the docs" +msgstr "" + +#: src/views/MobileAppView.tsx:35 +msgid "Ignore and continue to Desktop view" +msgstr "" + diff --git a/src/frontend/src/locales/lv/messages.po b/src/frontend/src/locales/lv/messages.po index 5cb003ac44..944f327b19 100644 --- a/src/frontend/src/locales/lv/messages.po +++ b/src/frontend/src/locales/lv/messages.po @@ -8,15 +8,15 @@ msgstr "" "Language: lv\n" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"PO-Revision-Date: 2024-08-20 19:51\n" +"PO-Revision-Date: 2024-11-04 03:14\n" "Last-Translator: \n" "Language-Team: Latvian\n" "Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : 2;\n" "X-Crowdin-Project: inventree\n" "X-Crowdin-Project-ID: 452300\n" "X-Crowdin-Language: lv\n" -"X-Crowdin-File: /[inventree.InvenTree] l10/src/frontend/src/locales/en/messages.po\n" -"X-Crowdin-File-ID: 205\n" +"X-Crowdin-File: /src/frontend/src/locales/en/messages.po\n" +"X-Crowdin-File-ID: 252\n" #: src/components/Boundary.tsx:12 msgid "Error rendering component" @@ -27,8 +27,8 @@ msgid "An error occurred while rendering this component. Refer to the console fo msgstr "" #: src/components/DashboardItemProxy.tsx:34 -msgid "Title" -msgstr "" +#~ msgid "Title" +#~ msgstr "Title" #: src/components/buttons/AdminButton.tsx:80 msgid "Open in admin interface" @@ -38,82 +38,99 @@ msgstr "" #~ msgid "Copy to clipboard" #~ msgstr "Copy to clipboard" -#: src/components/buttons/CopyButton.tsx:24 +#: src/components/buttons/CopyButton.tsx:29 msgid "Copied" msgstr "" -#: src/components/buttons/CopyButton.tsx:24 +#: src/components/buttons/CopyButton.tsx:29 msgid "Copy" msgstr "" -#: src/components/buttons/PrintingActions.tsx:93 +#: src/components/buttons/PrintingActions.tsx:97 msgid "Print Label" msgstr "" -#: src/components/buttons/PrintingActions.tsx:99 +#: src/components/buttons/PrintingActions.tsx:103 msgid "Print" msgstr "" -#: src/components/buttons/PrintingActions.tsx:100 +#: src/components/buttons/PrintingActions.tsx:104 msgid "Label printing completed successfully" msgstr "" -#: src/components/buttons/PrintingActions.tsx:106 -#: src/components/buttons/PrintingActions.tsx:144 -#: src/components/editors/NotesEditor.tsx:65 -#: src/components/editors/NotesEditor.tsx:165 -#: src/components/forms/fields/ApiFormField.tsx:319 +#: src/components/buttons/PrintingActions.tsx:110 +#: src/components/buttons/PrintingActions.tsx:148 +#: src/components/editors/NotesEditor.tsx:73 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:154 +#: src/components/forms/fields/ApiFormField.tsx:328 +#: src/components/forms/fields/TableField.tsx:43 #: src/components/importer/ImportDataSelector.tsx:187 -#: src/components/importer/ImporterColumnSelector.tsx:207 +#: src/components/importer/ImporterColumnSelector.tsx:210 #: src/components/modals/LicenseModal.tsx:75 -#: src/components/nav/SearchDrawer.tsx:448 +#: src/components/nav/SearchDrawer.tsx:458 +#: src/components/render/ModelType.tsx:290 #: src/pages/ErrorPage.tsx:11 -#: src/pages/part/PartPricingPanel.tsx:67 -#: src/tables/InvenTreeTable.tsx:495 +#: src/pages/part/PartPricingPanel.tsx:71 +#: src/tables/InvenTreeTable.tsx:481 #: src/tables/bom/BomTable.tsx:450 -#: src/tables/stock/StockItemTestResultTable.tsx:299 +#: src/tables/stock/StockItemTestResultTable.tsx:317 msgid "Error" msgstr "" -#: src/components/buttons/PrintingActions.tsx:107 +#: src/components/buttons/PrintingActions.tsx:111 msgid "The label could not be generated" msgstr "" -#: src/components/buttons/PrintingActions.tsx:122 +#: src/components/buttons/PrintingActions.tsx:126 msgid "Print Report" msgstr "" -#: src/components/buttons/PrintingActions.tsx:138 +#: src/components/buttons/PrintingActions.tsx:142 msgid "Generate" msgstr "" -#: src/components/buttons/PrintingActions.tsx:139 +#: src/components/buttons/PrintingActions.tsx:143 msgid "Report printing completed successfully" msgstr "" -#: src/components/buttons/PrintingActions.tsx:145 +#: src/components/buttons/PrintingActions.tsx:149 msgid "The report could not be generated" msgstr "" -#: src/components/buttons/PrintingActions.tsx:173 +#: src/components/buttons/PrintingActions.tsx:177 msgid "Printing Actions" msgstr "" -#: src/components/buttons/PrintingActions.tsx:178 +#: src/components/buttons/PrintingActions.tsx:182 msgid "Print Labels" msgstr "" -#: src/components/buttons/PrintingActions.tsx:184 +#: src/components/buttons/PrintingActions.tsx:188 msgid "Print Reports" msgstr "" +#: src/components/buttons/RemoveRowButton.tsx:8 +msgid "Remove this row" +msgstr "" + #: src/components/buttons/ScanButton.tsx:15 -msgid "Scan QR code" +#: src/components/nav/NavigationDrawer.tsx:117 +#: src/forms/PurchaseOrderForms.tsx:379 +#: src/forms/PurchaseOrderForms.tsx:473 +msgid "Scan Barcode" +msgstr "" + +#: src/components/buttons/ScanButton.tsx:15 +#~ msgid "Scan QR code" +#~ msgstr "Scan QR code" + +#: src/components/buttons/ScanButton.tsx:20 +msgid "Open Barcode Scanner" msgstr "" #: src/components/buttons/ScanButton.tsx:20 -msgid "Open QR code scanner" -msgstr "" +#~ msgid "Open QR code scanner" +#~ msgstr "Open QR code scanner" #: src/components/buttons/SpotlightButton.tsx:14 msgid "Open spotlight" @@ -128,85 +145,347 @@ msgid "Fail" msgstr "" #: src/components/buttons/YesNoButton.tsx:33 -#: src/tables/Filter.tsx:52 +#: src/tables/Filter.tsx:61 msgid "Yes" msgstr "" #: src/components/buttons/YesNoButton.tsx:33 -#: src/tables/Filter.tsx:53 +#: src/tables/Filter.tsx:62 msgid "No" msgstr "" -#: src/components/details/Details.tsx:301 +#: src/components/dashboard/DashboardLayout.tsx:286 +msgid "No Widgets Selected" +msgstr "" + +#: src/components/dashboard/DashboardLayout.tsx:289 +msgid "Use the menu to add widgets to the dashboard" +msgstr "" + +#: src/components/dashboard/DashboardMenu.tsx:59 +#: src/components/dashboard/DashboardMenu.tsx:126 +msgid "Accept Layout" +msgstr "" + +#: src/components/dashboard/DashboardMenu.tsx:91 +#: src/components/nav/NavigationDrawer.tsx:71 +#: src/defaults/actions.tsx:17 +#: src/defaults/links.tsx:9 +#: src/pages/Index/Settings/UserSettings.tsx:47 +msgid "Dashboard" +msgstr "" + +#: src/components/dashboard/DashboardMenu.tsx:99 +msgid "Edit Layout" +msgstr "" + +#: src/components/dashboard/DashboardMenu.tsx:108 +msgid "Add Widget" +msgstr "" + +#: src/components/dashboard/DashboardMenu.tsx:117 +msgid "Remove Widgets" +msgstr "" + +#: src/components/dashboard/DashboardWidget.tsx:65 +msgid "Remove this widget from the dashboard" +msgstr "" + +#: src/components/dashboard/DashboardWidgetDrawer.tsx:77 +msgid "Filter dashboard widgets" +msgstr "" + +#: src/components/dashboard/DashboardWidgetDrawer.tsx:98 +msgid "Add this widget to the dashboard" +msgstr "" + +#: src/components/dashboard/DashboardWidgetDrawer.tsx:123 +msgid "No Widgets Available" +msgstr "" + +#: src/components/dashboard/DashboardWidgetDrawer.tsx:124 +msgid "There are no more widgets available for the dashboard" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:19 +msgid "Subscribed Parts" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:20 +msgid "Show the number of parts which you have subscribed to" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:26 +msgid "Subscribed Categories" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:27 +msgid "Show the number of part categories which you have subscribed to" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:35 +#: src/pages/part/PartSchedulingDetail.tsx:304 +#: src/tables/part/PartTable.tsx:238 +msgid "Low Stock" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:37 +msgid "Show the number of parts which are low on stock" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:43 +msgid "Expired Stock Items" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:45 +msgid "Show the number of stock items which have expired" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:51 +msgid "Stale Stock Items" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:53 +msgid "Show the number of stock items which are stale" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:59 +msgid "Active Build Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:61 +msgid "Show the number of build orders which are currently active" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:66 +msgid "Overdue Build Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:68 +msgid "Show the number of build orders which are overdue" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:73 +msgid "Assigned Build Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:75 +msgid "Show the number of build orders which are assigned to you" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:80 +msgid "Active Sales Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:82 +msgid "Show the number of sales orders which are currently active" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:87 +msgid "Overdue Sales Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:89 +msgid "Show the number of sales orders which are overdue" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:94 +msgid "Assigned Sales Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:96 +msgid "Show the number of sales orders which are assigned to you" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:101 +msgid "Active Purchase Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:103 +msgid "Show the number of purchase orders which are currently active" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:108 +msgid "Overdue Purchase Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:110 +msgid "Show the number of purchase orders which are overdue" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:115 +msgid "Assigned Purchase Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:117 +msgid "Show the number of purchase orders which are assigned to you" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:122 +msgid "Active Return Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:124 +msgid "Show the number of return orders which are currently active" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:129 +msgid "Overdue Return Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:131 +msgid "Show the number of return orders which are overdue" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:136 +msgid "Assigned Return Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:138 +msgid "Show the number of return orders which are assigned to you" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:149 +#: src/components/dashboard/widgets/GetStartedWidget.tsx:15 +#: src/defaults/links.tsx:38 +msgid "Getting Started" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:150 +#: src/defaults/links.tsx:41 +msgid "Getting started with InvenTree" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:157 +#: src/components/dashboard/widgets/NewsWidget.tsx:123 +msgid "News Updates" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:158 +msgid "The latest news from InvenTree" +msgstr "" + +#: src/components/dashboard/widgets/ColorToggleWidget.tsx:18 +#: src/components/nav/MainMenu.tsx:77 +msgid "Change Color Mode" +msgstr "" + +#: src/components/dashboard/widgets/ColorToggleWidget.tsx:23 +msgid "Change the color mode of the user interface" +msgstr "" + +#: src/components/dashboard/widgets/LanguageSelectWidget.tsx:18 +msgid "Change Language" +msgstr "" + +#: src/components/dashboard/widgets/LanguageSelectWidget.tsx:23 +msgid "Change the language of the user interface" +msgstr "" + +#: src/components/dashboard/widgets/NewsWidget.tsx:61 +#: src/components/nav/NotificationDrawer.tsx:88 +#: src/pages/Notifications.tsx:73 +msgid "Mark as read" +msgstr "" + +#: src/components/dashboard/widgets/NewsWidget.tsx:115 +msgid "Requires Superuser" +msgstr "" + +#: src/components/dashboard/widgets/NewsWidget.tsx:116 +msgid "This widget requires superuser permissions" +msgstr "" + +#: src/components/dashboard/widgets/NewsWidget.tsx:133 +msgid "No News" +msgstr "" + +#: src/components/dashboard/widgets/NewsWidget.tsx:134 +msgid "There are no unread news items" +msgstr "" + +#: src/components/details/Details.tsx:300 msgid "No name defined" msgstr "" -#: src/components/details/DetailsImage.tsx:65 +#: src/components/details/DetailsImage.tsx:69 msgid "Remove Image" msgstr "" -#: src/components/details/DetailsImage.tsx:68 +#: src/components/details/DetailsImage.tsx:72 msgid "Remove the associated image from this item?" msgstr "" -#: src/components/details/DetailsImage.tsx:71 -#: src/forms/StockForms.tsx:533 +#: src/components/details/DetailsImage.tsx:75 +#: src/forms/StockForms.tsx:651 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:199 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:306 -#: src/pages/stock/StockDetail.tsx:526 +#: src/pages/stock/StockDetail.tsx:690 msgid "Remove" msgstr "" -#: src/components/details/DetailsImage.tsx:71 -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:158 -#: src/components/items/ActionDropdown.tsx:215 -#: src/components/items/ActionDropdown.tsx:216 -#: src/contexts/ThemeContext.tsx:43 +#: src/components/details/DetailsImage.tsx:75 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:184 +#: src/components/items/ActionDropdown.tsx:268 +#: src/components/items/ActionDropdown.tsx:269 +#: src/contexts/ThemeContext.tsx:45 #: src/hooks/UseForm.tsx:40 -#: src/tables/FilterSelectDrawer.tsx:205 -#: src/tables/build/BuildOutputTable.tsx:286 +#: src/tables/FilterSelectDrawer.tsx:241 +#: src/tables/RowActions.tsx:59 +#: src/tables/build/BuildOutputTable.tsx:434 msgid "Cancel" msgstr "" -#: src/components/details/DetailsImage.tsx:97 +#: src/components/details/DetailsImage.tsx:101 msgid "Drag and drop to upload" msgstr "" -#: src/components/details/DetailsImage.tsx:100 +#: src/components/details/DetailsImage.tsx:104 msgid "Click to select file(s)" msgstr "" -#: src/components/details/DetailsImage.tsx:226 +#: src/components/details/DetailsImage.tsx:230 msgid "Clear" msgstr "" -#: src/components/details/DetailsImage.tsx:232 -#: src/components/forms/ApiForm.tsx:627 -#: src/contexts/ThemeContext.tsx:43 -#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:60 +#: src/components/details/DetailsImage.tsx:236 +#: src/components/forms/ApiForm.tsx:660 +#: src/contexts/ThemeContext.tsx:45 msgid "Submit" msgstr "" -#: src/components/details/DetailsImage.tsx:272 +#: src/components/details/DetailsImage.tsx:280 msgid "Select from existing images" msgstr "" -#: src/components/details/DetailsImage.tsx:280 +#: src/components/details/DetailsImage.tsx:288 msgid "Select Image" msgstr "" -#: src/components/details/DetailsImage.tsx:292 +#: src/components/details/DetailsImage.tsx:304 +msgid "Download remote image" +msgstr "" + +#: src/components/details/DetailsImage.tsx:319 msgid "Upload new image" msgstr "" -#: src/components/details/DetailsImage.tsx:299 +#: src/components/details/DetailsImage.tsx:326 msgid "Upload Image" msgstr "" -#: src/components/details/DetailsImage.tsx:312 +#: src/components/details/DetailsImage.tsx:339 msgid "Delete image" msgstr "" +#: src/components/details/DetailsImage.tsx:373 +msgid "Download Image" +msgstr "" + +#: src/components/details/DetailsImage.tsx:378 +msgid "Image downloaded successfully" +msgstr "" + #: src/components/details/PartIcons.tsx:43 #~ msgid "Part is a template part (variants can be made from this part)" #~ msgstr "Part is a template part (variants can be made from this part)" @@ -235,36 +514,57 @@ msgstr "" #~ msgid "Part is virtual (not a physical part)" #~ msgstr "Part is virtual (not a physical part)" -#: src/components/editors/NotesEditor.tsx:66 +#: src/components/editors/NotesEditor.tsx:74 msgid "Image upload failed" msgstr "" -#: src/components/editors/NotesEditor.tsx:156 -#: src/components/forms/ApiForm.tsx:467 +#: src/components/editors/NotesEditor.tsx:83 +#: src/components/editors/NotesEditor.tsx:119 +#: src/components/forms/ApiForm.tsx:475 #: src/tables/bom/BomTable.tsx:441 msgid "Success" msgstr "" -#: src/components/editors/NotesEditor.tsx:157 +#: src/components/editors/NotesEditor.tsx:84 +msgid "Image uploaded successfully" +msgstr "" + +#: src/components/editors/NotesEditor.tsx:120 msgid "Notes saved successfully" msgstr "" -#: src/components/editors/NotesEditor.tsx:166 +#: src/components/editors/NotesEditor.tsx:131 msgid "Failed to save notes" msgstr "" -#: src/components/editors/NotesEditor.tsx:198 -msgid "Preview Notes" +#: src/components/editors/NotesEditor.tsx:134 +msgid "Error Saving Notes" msgstr "" -#: src/components/editors/NotesEditor.tsx:198 -msgid "Edit Notes" -msgstr "" +#: src/components/editors/NotesEditor.tsx:151 +#~ msgid "Disable Editing" +#~ msgstr "Disable Editing" -#: src/components/editors/NotesEditor.tsx:212 +#: src/components/editors/NotesEditor.tsx:154 msgid "Save Notes" msgstr "" +#: src/components/editors/NotesEditor.tsx:173 +msgid "Close Editor" +msgstr "" + +#: src/components/editors/NotesEditor.tsx:180 +msgid "Enable Editing" +msgstr "" + +#: src/components/editors/NotesEditor.tsx:198 +#~ msgid "Preview Notes" +#~ msgstr "Preview Notes" + +#: src/components/editors/NotesEditor.tsx:198 +#~ msgid "Edit Notes" +#~ msgstr "Edit Notes" + #: src/components/editors/TemplateEditor/CodeEditor/index.tsx:9 msgid "Code" msgstr "" @@ -281,40 +581,44 @@ msgstr "" msgid "PDF Preview" msgstr "" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:104 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:115 msgid "Error loading template" msgstr "" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:116 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:127 msgid "Error saving template" msgstr "" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:146 -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:274 -msgid "Save & Reload Preview" -msgstr "" - -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:151 -msgid "Are you sure you want to Save & Reload the preview?" -msgstr "" - #: src/components/editors/TemplateEditor/TemplateEditor.tsx:151 #~ msgid "Save & Reload preview?" #~ msgstr "Save & Reload preview?" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:153 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:155 +msgid "Could not load the template from the server." +msgstr "" + +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:172 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:303 +msgid "Save & Reload Preview" +msgstr "" + +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:177 +msgid "Are you sure you want to Save & Reload the preview?" +msgstr "" + +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:179 msgid "To render the preview the current template needs to be replaced on the server with your modifications which may break the label if it is under active use. Do you want to proceed?" msgstr "" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:157 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:183 msgid "Save & Reload" msgstr "" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:189 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:215 msgid "Preview updated" msgstr "" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:190 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:216 msgid "The preview has been updated successfully." msgstr "" @@ -322,15 +626,15 @@ msgstr "" #~ msgid "Save & Reload preview" #~ msgstr "Save & Reload preview" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:266 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:295 msgid "Reload preview" msgstr "" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:267 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:296 msgid "Use the currently stored template from the server" msgstr "" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:275 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:304 msgid "Save the current template and reload the preview" msgstr "" @@ -338,11 +642,11 @@ msgstr "" #~ msgid "to preview" #~ msgstr "to preview" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:333 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:365 msgid "Select instance to preview" msgstr "" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:377 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:409 msgid "Error rendering template" msgstr "" @@ -379,6 +683,7 @@ msgid "This page does not exist" msgstr "" #: src/components/errors/PermissionDenied.tsx:8 +#: src/functions/notifications.tsx:24 msgid "Permission Denied" msgstr "" @@ -394,8 +699,8 @@ msgstr "" msgid "A server error occurred" msgstr "" -#: src/components/forms/ApiForm.tsx:151 -#: src/components/forms/ApiForm.tsx:555 +#: src/components/forms/ApiForm.tsx:154 +#: src/components/forms/ApiForm.tsx:579 msgid "Form Error" msgstr "" @@ -403,22 +708,22 @@ msgstr "" #~ msgid "Form Errors Exist" #~ msgstr "Form Errors Exist" -#: src/components/forms/ApiForm.tsx:563 +#: src/components/forms/ApiForm.tsx:587 msgid "Errors exist for one or more form fields" msgstr "" -#: src/components/forms/ApiForm.tsx:665 -#: src/tables/plugin/PluginListTable.tsx:388 +#: src/components/forms/ApiForm.tsx:698 +#: src/tables/plugin/PluginListTable.tsx:195 msgid "Update" msgstr "" -#: src/components/forms/ApiForm.tsx:685 -#: src/components/items/ActionDropdown.tsx:195 +#: src/components/forms/ApiForm.tsx:718 +#: src/components/items/ActionDropdown.tsx:248 #: src/hooks/UseForm.tsx:122 -#: src/pages/Index/Scan.tsx:343 +#: src/pages/Index/Scan.tsx:357 #: src/pages/Notifications.tsx:123 -#: src/tables/RowActions.tsx:43 -#: src/tables/plugin/PluginListTable.tsx:420 +#: src/tables/RowActions.tsx:49 +#: src/tables/plugin/PluginListTable.tsx:232 msgid "Delete" msgstr "" @@ -428,14 +733,6 @@ msgstr "" #~ msgid "Check your your input and try again." #~ msgstr "Check your your input and try again." -#: src/components/forms/AuthenticationForm.tsx:51 -msgid "Login successful" -msgstr "" - -#: src/components/forms/AuthenticationForm.tsx:52 -msgid "Logged in successfully" -msgstr "" - #: src/components/forms/AuthenticationForm.tsx:52 #~ msgid "Welcome back!" #~ msgstr "Welcome back!" @@ -444,14 +741,22 @@ msgstr "" #~ msgid "Login successfull" #~ msgstr "Login successfull" -#: src/components/forms/AuthenticationForm.tsx:58 +#: src/components/forms/AuthenticationForm.tsx:55 +msgid "Login successful" +msgstr "" + +#: src/components/forms/AuthenticationForm.tsx:56 +msgid "Logged in successfully" +msgstr "" + +#: src/components/forms/AuthenticationForm.tsx:61 msgid "Login failed" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:59 -#: src/components/forms/AuthenticationForm.tsx:76 -#: src/components/forms/AuthenticationForm.tsx:211 -#: src/functions/auth.tsx:164 +#: src/components/forms/AuthenticationForm.tsx:62 +#: src/components/forms/AuthenticationForm.tsx:79 +#: src/components/forms/AuthenticationForm.tsx:214 +#: src/functions/auth.tsx:175 msgid "Check your input and try again." msgstr "" @@ -460,45 +765,46 @@ msgstr "" #~ msgid "Mail delivery successfull" #~ msgstr "Mail delivery successfull" -#: src/components/forms/AuthenticationForm.tsx:70 -#: src/functions/auth.tsx:155 +#: src/components/forms/AuthenticationForm.tsx:73 +#: src/functions/auth.tsx:166 msgid "Mail delivery successful" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:71 +#: src/components/forms/AuthenticationForm.tsx:74 msgid "Check your inbox for the login link. If you have an account, you will receive a login link. Check in spam too." msgstr "" -#: src/components/forms/AuthenticationForm.tsx:75 +#: src/components/forms/AuthenticationForm.tsx:78 msgid "Mail delivery failed" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:95 +#: src/components/forms/AuthenticationForm.tsx:98 msgid "Or continue with other methods" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:106 -#: src/components/forms/AuthenticationForm.tsx:227 +#: src/components/forms/AuthenticationForm.tsx:109 +#: src/components/forms/AuthenticationForm.tsx:230 +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:67 msgid "Username" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:107 -#: src/components/forms/AuthenticationForm.tsx:228 +#: src/components/forms/AuthenticationForm.tsx:110 +#: src/components/forms/AuthenticationForm.tsx:231 msgid "Your username" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:112 -#: src/components/forms/AuthenticationForm.tsx:240 -#: src/pages/Auth/Set-Password.tsx:106 +#: src/components/forms/AuthenticationForm.tsx:115 +#: src/components/forms/AuthenticationForm.tsx:243 +#: src/pages/Auth/Set-Password.tsx:101 msgid "Password" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:113 -#: src/components/forms/AuthenticationForm.tsx:241 +#: src/components/forms/AuthenticationForm.tsx:116 +#: src/components/forms/AuthenticationForm.tsx:244 msgid "Your password" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:125 +#: src/components/forms/AuthenticationForm.tsx:128 #: src/pages/Auth/Reset.tsx:26 msgid "Reset password" msgstr "" @@ -507,77 +813,79 @@ msgstr "" #~ msgid "Log in" #~ msgstr "Log in" -#: src/components/forms/AuthenticationForm.tsx:134 -#: src/components/forms/AuthenticationForm.tsx:233 +#: src/components/forms/AuthenticationForm.tsx:136 +#~ msgid "I will use username and password" +#~ msgstr "I will use username and password" + +#: src/components/forms/AuthenticationForm.tsx:137 +#: src/components/forms/AuthenticationForm.tsx:236 #: src/pages/Auth/Reset.tsx:31 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:51 msgid "Email" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:135 +#: src/components/forms/AuthenticationForm.tsx:138 #: src/pages/Auth/Reset.tsx:32 -#: src/pages/Auth/Set-Password.tsx:107 +#: src/pages/Auth/Set-Password.tsx:102 msgid "We will send you a link to login - if you are registered" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:136 -#~ msgid "I will use username and password" -#~ msgstr "I will use username and password" - -#: src/components/forms/AuthenticationForm.tsx:151 +#: src/components/forms/AuthenticationForm.tsx:154 msgid "Send me an email" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:153 +#: src/components/forms/AuthenticationForm.tsx:156 msgid "Use username and password" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:162 +#: src/components/forms/AuthenticationForm.tsx:165 msgid "Log In" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:164 +#: src/components/forms/AuthenticationForm.tsx:167 +#: src/pages/Auth/Reset.tsx:41 +#: src/pages/Auth/Set-Password.tsx:107 msgid "Send Email" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:193 +#: src/components/forms/AuthenticationForm.tsx:196 msgid "Registration successful" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:194 +#: src/components/forms/AuthenticationForm.tsx:197 msgid "Please confirm your email address to complete the registration" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:210 +#: src/components/forms/AuthenticationForm.tsx:213 msgid "Input error" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:234 +#: src/components/forms/AuthenticationForm.tsx:237 msgid "This will be used for a confirmation" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:246 +#: src/components/forms/AuthenticationForm.tsx:249 msgid "Password repeat" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:247 +#: src/components/forms/AuthenticationForm.tsx:250 msgid "Repeat password" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:259 -#: src/components/forms/AuthenticationForm.tsx:304 +#: src/components/forms/AuthenticationForm.tsx:262 +#: src/components/forms/AuthenticationForm.tsx:307 msgid "Register" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:265 +#: src/components/forms/AuthenticationForm.tsx:268 msgid "Or use SSO" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:296 +#: src/components/forms/AuthenticationForm.tsx:299 msgid "Don't have an account?" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:315 +#: src/components/forms/AuthenticationForm.tsx:318 msgid "Go back to login" msgstr "" @@ -588,19 +896,20 @@ msgstr "" #: src/components/forms/HostOptionsForm.tsx:42 #: src/components/forms/HostOptionsForm.tsx:70 +#: src/components/plugins/PluginDrawer.tsx:69 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:410 +#: src/pages/Index/Settings/AdminCenter/UnitManagmentPanel.tsx:19 #: src/pages/part/CategoryDetail.tsx:81 -#: src/pages/part/PartDetail.tsx:143 -#: src/pages/stock/LocationDetail.tsx:89 -#: src/tables/machine/MachineTypeTable.tsx:65 -#: src/tables/machine/MachineTypeTable.tsx:109 -#: src/tables/machine/MachineTypeTable.tsx:216 -#: src/tables/machine/MachineTypeTable.tsx:319 +#: src/pages/part/PartDetail.tsx:164 +#: src/pages/stock/LocationDetail.tsx:83 +#: src/tables/machine/MachineTypeTable.tsx:70 +#: src/tables/machine/MachineTypeTable.tsx:119 +#: src/tables/machine/MachineTypeTable.tsx:237 +#: src/tables/machine/MachineTypeTable.tsx:340 #: src/tables/plugin/PluginErrorTable.tsx:33 -#: src/tables/plugin/PluginListTable.tsx:126 #: src/tables/purchasing/ManufacturerPartParameterTable.tsx:32 #: src/tables/settings/GroupTable.tsx:147 -#: src/tables/settings/PendingTasksTable.tsx:28 +#: src/tables/settings/PendingTasksTable.tsx:32 #: src/tables/stock/LocationTypesTable.tsx:69 msgid "Name" msgstr "" @@ -650,7 +959,7 @@ msgid "Uncategorized" msgstr "" #: src/components/forms/fields/IconField.tsx:209 -#: src/components/nav/Layout.tsx:70 +#: src/components/nav/Layout.tsx:77 #: src/tables/part/PartThumbTable.tsx:192 msgid "Search..." msgstr "" @@ -667,28 +976,27 @@ msgstr "" msgid "{0} icons" msgstr "" -#: src/components/forms/fields/RelatedModelField.tsx:318 -#: src/pages/Index/Settings/UserSettings.tsx:96 +#: src/components/forms/fields/RelatedModelField.tsx:319 +#: src/pages/Index/Settings/UserSettings.tsx:97 #: src/tables/Search.tsx:23 msgid "Search" msgstr "" -#: src/components/forms/fields/RelatedModelField.tsx:319 +#: src/components/forms/fields/RelatedModelField.tsx:320 #: src/components/modals/AboutInvenTreeModal.tsx:81 -#: src/components/widgets/WidgetLayout.tsx:120 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:316 msgid "Loading" msgstr "" -#: src/components/forms/fields/RelatedModelField.tsx:321 +#: src/components/forms/fields/RelatedModelField.tsx:322 msgid "No results found" msgstr "" -#: src/components/forms/fields/TableField.tsx:52 -msgid "modelRenderer entry required for tables" -msgstr "" +#: src/components/forms/fields/TableField.tsx:72 +#~ msgid "modelRenderer entry required for tables" +#~ msgstr "modelRenderer entry required for tables" -#: src/components/forms/fields/TableField.tsx:76 +#: src/components/forms/fields/TableField.tsx:167 msgid "No entries available" msgstr "" @@ -741,7 +1049,7 @@ msgid "Filter by row validation status" msgstr "" #: src/components/importer/ImportDataSelector.tsx:365 -#: src/tables/build/BuildOutputTable.tsx:266 +#: src/tables/build/BuildOutputTable.tsx:407 msgid "Complete" msgstr "" @@ -749,20 +1057,21 @@ msgstr "" msgid "Filter by row completion status" msgstr "" -#: src/components/importer/ImportDataSelector.tsx:383 +#: src/components/importer/ImportDataSelector.tsx:384 msgid "Import selected rows" msgstr "" -#: src/components/importer/ImportDataSelector.tsx:398 +#: src/components/importer/ImportDataSelector.tsx:399 msgid "Processing Data" msgstr "" -#: src/components/importer/ImporterColumnSelector.tsx:50 -#: src/components/importer/ImporterColumnSelector.tsx:176 +#: src/components/importer/ImporterColumnSelector.tsx:53 +#: src/components/importer/ImporterColumnSelector.tsx:179 +#: src/components/items/ErrorItem.tsx:12 msgid "An error occurred" msgstr "" -#: src/components/importer/ImporterColumnSelector.tsx:62 +#: src/components/importer/ImporterColumnSelector.tsx:65 msgid "Select column, or leave blank to ignore this field." msgstr "" @@ -778,51 +1087,51 @@ msgstr "" #~ msgid "Imported Column Name" #~ msgstr "Imported Column Name" -#: src/components/importer/ImporterColumnSelector.tsx:182 +#: src/components/importer/ImporterColumnSelector.tsx:185 msgid "Ignore this field" msgstr "" -#: src/components/importer/ImporterColumnSelector.tsx:196 +#: src/components/importer/ImporterColumnSelector.tsx:199 msgid "Mapping data columns to database fields" msgstr "" -#: src/components/importer/ImporterColumnSelector.tsx:201 +#: src/components/importer/ImporterColumnSelector.tsx:204 msgid "Accept Column Mapping" msgstr "" -#: src/components/importer/ImporterColumnSelector.tsx:214 +#: src/components/importer/ImporterColumnSelector.tsx:217 msgid "Database Field" msgstr "" -#: src/components/importer/ImporterColumnSelector.tsx:215 +#: src/components/importer/ImporterColumnSelector.tsx:218 msgid "Field Description" msgstr "" -#: src/components/importer/ImporterColumnSelector.tsx:216 +#: src/components/importer/ImporterColumnSelector.tsx:219 msgid "Imported Column" msgstr "" -#: src/components/importer/ImporterColumnSelector.tsx:217 +#: src/components/importer/ImporterColumnSelector.tsx:220 msgid "Default Value" msgstr "" -#: src/components/importer/ImporterDrawer.tsx:44 +#: src/components/importer/ImporterDrawer.tsx:46 msgid "Upload File" msgstr "" -#: src/components/importer/ImporterDrawer.tsx:45 +#: src/components/importer/ImporterDrawer.tsx:47 msgid "Map Columns" msgstr "" -#: src/components/importer/ImporterDrawer.tsx:46 +#: src/components/importer/ImporterDrawer.tsx:48 msgid "Import Data" msgstr "" -#: src/components/importer/ImporterDrawer.tsx:47 +#: src/components/importer/ImporterDrawer.tsx:49 msgid "Process Data" msgstr "" -#: src/components/importer/ImporterDrawer.tsx:48 +#: src/components/importer/ImporterDrawer.tsx:50 msgid "Complete Import" msgstr "" @@ -830,28 +1139,28 @@ msgstr "" #~ msgid "Cancel import session" #~ msgstr "Cancel import session" -#: src/components/importer/ImporterDrawer.tsx:104 +#: src/components/importer/ImporterDrawer.tsx:106 msgid "Import Complete" msgstr "" -#: src/components/importer/ImporterDrawer.tsx:107 +#: src/components/importer/ImporterDrawer.tsx:109 msgid "Data has been imported successfully" msgstr "" -#: src/components/importer/ImporterDrawer.tsx:109 -#: src/components/importer/ImporterDrawer.tsx:118 +#: src/components/importer/ImporterDrawer.tsx:111 +#: src/components/importer/ImporterDrawer.tsx:120 msgid "Close" msgstr "" -#: src/components/importer/ImporterDrawer.tsx:115 +#: src/components/importer/ImporterDrawer.tsx:117 msgid "Unknown Status" msgstr "" -#: src/components/importer/ImporterDrawer.tsx:116 +#: src/components/importer/ImporterDrawer.tsx:118 msgid "Import session has unknown status" msgstr "" -#: src/components/importer/ImporterDrawer.tsx:135 +#: src/components/importer/ImporterDrawer.tsx:137 msgid "Importing Data" msgstr "" @@ -860,85 +1169,115 @@ msgid "Importing Records" msgstr "" #: src/components/importer/ImporterImportProgress.tsx:39 -msgid "Imported rows" +#: src/tables/settings/ImportSessionTable.tsx:78 +msgid "Imported Rows" msgstr "" -#: src/components/items/ActionDropdown.tsx:121 -msgid "Barcode Actions" +#: src/components/importer/ImporterImportProgress.tsx:39 +#~ msgid "Imported rows" +#~ msgstr "Imported rows" + +#: src/components/items/ActionDropdown.tsx:126 +msgid "Options" msgstr "" #: src/components/items/ActionDropdown.tsx:140 -msgid "View Barcode" -msgstr "" +#~ msgid "View Barcode" +#~ msgstr "View Barcode" -#: src/components/items/ActionDropdown.tsx:147 -msgid "View" -msgstr "" - -#: src/components/items/ActionDropdown.tsx:148 -msgid "View barcode" -msgstr "" - -#: src/components/items/ActionDropdown.tsx:161 -msgid "Link Barcode" +#: src/components/items/ActionDropdown.tsx:162 +#: src/tables/InvenTreeTableHeader.tsx:159 +#: src/tables/InvenTreeTableHeader.tsx:160 +msgid "Barcode Actions" msgstr "" #: src/components/items/ActionDropdown.tsx:162 -msgid "Link custom barcode" +#~ msgid "Link custom barcode" +#~ msgstr "Link custom barcode" + +#: src/components/items/ActionDropdown.tsx:167 +msgid "View" msgstr "" -#: src/components/items/ActionDropdown.tsx:173 -#: src/forms/PurchaseOrderForms.tsx:426 -msgid "Unlink Barcode" +#: src/components/items/ActionDropdown.tsx:169 +msgid "View barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:174 -msgid "Unlink custom barcode" +#: src/components/items/ActionDropdown.tsx:175 +msgid "Link Barcode" +msgstr "" + +#: src/components/items/ActionDropdown.tsx:177 +msgid "Link a custom barcode to this item" msgstr "" #: src/components/items/ActionDropdown.tsx:183 -#: src/tables/RowActions.tsx:33 +#: src/components/items/QRCode.tsx:193 +#: src/forms/PurchaseOrderForms.tsx:464 +msgid "Unlink Barcode" +msgstr "" + +#: src/components/items/ActionDropdown.tsx:185 +msgid "Unlink custom barcode" +msgstr "" + +#: src/components/items/ActionDropdown.tsx:236 +#: src/tables/RowActions.tsx:39 msgid "Edit" msgstr "" -#: src/components/items/ActionDropdown.tsx:184 +#: src/components/items/ActionDropdown.tsx:237 msgid "Edit item" msgstr "" -#: src/components/items/ActionDropdown.tsx:196 +#: src/components/items/ActionDropdown.tsx:249 msgid "Delete item" msgstr "" -#: src/components/items/ActionDropdown.tsx:204 -#: src/components/items/ActionDropdown.tsx:205 +#: src/components/items/ActionDropdown.tsx:257 +#: src/components/items/ActionDropdown.tsx:258 msgid "Hold" msgstr "" -#: src/components/items/ActionDropdown.tsx:227 -#: src/tables/RowActions.tsx:23 +#: src/components/items/ActionDropdown.tsx:280 +#: src/tables/RowActions.tsx:29 msgid "Duplicate" msgstr "" -#: src/components/items/ActionDropdown.tsx:228 +#: src/components/items/ActionDropdown.tsx:281 msgid "Duplicate item" msgstr "" +#: src/components/items/BarcodeInput.tsx:23 +msgid "Scan barcode data here using barcode scanner" +msgstr "" + +#: src/components/items/BarcodeInput.tsx:24 +#: src/tables/settings/BarcodeScanHistoryTable.tsx:65 +msgid "Barcode" +msgstr "" + +#: src/components/items/BarcodeInput.tsx:25 +msgid "Scan" +msgstr "" + #: src/components/items/DocTooltip.tsx:92 +#: src/components/items/GettingStartedCarousel.tsx:20 msgid "Read More" msgstr "" -#: src/components/items/ErrorItem.tsx:5 -#: src/tables/InvenTreeTable.tsx:487 +#: src/components/items/ErrorItem.tsx:8 +#: src/tables/InvenTreeTable.tsx:473 msgid "Unknown error" msgstr "" -#: src/components/items/ErrorItem.tsx:10 -msgid "An error occurred:" -msgstr "" +#: src/components/items/ErrorItem.tsx:13 +#~ msgid "An error occurred:" +#~ msgstr "An error occurred:" #: src/components/items/GettingStartedCarousel.tsx:27 -msgid "Read more" -msgstr "" +#~ msgid "Read more" +#~ msgstr "Read more" #: src/components/items/InfoItem.tsx:27 msgid "None" @@ -965,30 +1304,51 @@ msgstr "" msgid "This panel is a placeholder." msgstr "" -#: src/components/items/QRCode.tsx:87 +#: src/components/items/QRCode.tsx:89 msgid "Low (7%)" msgstr "" -#: src/components/items/QRCode.tsx:88 +#: src/components/items/QRCode.tsx:90 msgid "Medium (15%)" msgstr "" -#: src/components/items/QRCode.tsx:89 +#: src/components/items/QRCode.tsx:91 msgid "Quartile (25%)" msgstr "" -#: src/components/items/QRCode.tsx:90 +#: src/components/items/QRCode.tsx:92 msgid "High (30%)" msgstr "" -#: src/components/items/QRCode.tsx:107 -msgid "Barcode Data:" +#: src/components/items/QRCode.tsx:100 +msgid "Custom barcode" +msgstr "" + +#: src/components/items/QRCode.tsx:101 +msgid "A custom barcode is registered for this item. The shown code is not that custom barcode." msgstr "" #: src/components/items/QRCode.tsx:118 +msgid "Barcode Data:" +msgstr "" + +#: src/components/items/QRCode.tsx:129 msgid "Select Error Correction Level" msgstr "" +#: src/components/items/QRCode.tsx:171 +#: src/pages/part/PartDetail.tsx:239 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:187 +#: src/pages/sales/ReturnOrderDetail.tsx:157 +#: src/pages/sales/SalesOrderDetail.tsx:169 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:166 +msgid "Link" +msgstr "" + +#: src/components/items/QRCode.tsx:190 +msgid "This will remove the link to the associated barcode" +msgstr "" + #: src/components/modals/AboutInvenTreeModal.tsx:99 msgid "Version Information" msgstr "" @@ -1062,11 +1422,11 @@ msgstr "" msgid "Submit Bug Report" msgstr "" -#: src/components/modals/AboutInvenTreeModal.tsx:183 +#: src/components/modals/AboutInvenTreeModal.tsx:181 msgid "Copy version information" msgstr "" -#: src/components/modals/AboutInvenTreeModal.tsx:192 +#: src/components/modals/AboutInvenTreeModal.tsx:189 #: src/components/modals/ServerInfoModal.tsx:147 msgid "Dismiss" msgstr "" @@ -1091,61 +1451,20 @@ msgstr "" msgid "{key} Packages" msgstr "" -#: src/components/modals/QrCodeModal.tsx:72 +#: src/components/modals/QrCodeModal.tsx:24 msgid "Unknown response" msgstr "" -#: src/components/modals/QrCodeModal.tsx:102 -#: src/pages/Index/Scan.tsx:636 -msgid "Error while getting camera" -msgstr "" - -#: src/components/modals/QrCodeModal.tsx:125 -#: src/pages/Index/Scan.tsx:659 -msgid "Error while scanning" -msgstr "" - -#: src/components/modals/QrCodeModal.tsx:139 -#: src/pages/Index/Scan.tsx:673 -msgid "Error while stopping" -msgstr "" - -#: src/components/modals/QrCodeModal.tsx:154 -#: src/defaults/menuItems.tsx:21 -#: src/pages/Index/Scan.tsx:746 -msgid "Scanning" -msgstr "" - -#: src/components/modals/QrCodeModal.tsx:154 -#: src/pages/Index/Scan.tsx:746 -msgid "Not scanning" -msgstr "" - -#: src/components/modals/QrCodeModal.tsx:159 -#: src/pages/Index/Scan.tsx:752 -msgid "Select Camera" -msgstr "" - -#: src/components/modals/QrCodeModal.tsx:169 -#: src/pages/Index/Scan.tsx:737 -msgid "Start scanning" -msgstr "" - -#: src/components/modals/QrCodeModal.tsx:176 -#: src/pages/Index/Scan.tsx:729 -msgid "Stop scanning" -msgstr "" - -#: src/components/modals/QrCodeModal.tsx:181 +#: src/components/modals/QrCodeModal.tsx:39 msgid "No scans yet!" msgstr "" -#: src/components/modals/QrCodeModal.tsx:201 +#: src/components/modals/QrCodeModal.tsx:57 msgid "Close modal" msgstr "" #: src/components/modals/ServerInfoModal.tsx:26 -#: src/pages/Index/Settings/SystemSettings.tsx:38 +#: src/pages/Index/Settings/SystemSettings.tsx:37 msgid "Server" msgstr "" @@ -1206,6 +1525,7 @@ msgid "Background Worker" msgstr "" #: src/components/modals/ServerInfoModal.tsx:101 +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:29 msgid "Background worker not running" msgstr "" @@ -1218,8 +1538,8 @@ msgid "Email settings not configured" msgstr "" #: src/components/modals/ServerInfoModal.tsx:121 -#: src/tables/plugin/PluginListTable.tsx:144 -#: src/tables/plugin/PluginListTable.tsx:294 +#: src/components/plugins/PluginDrawer.tsx:89 +#: src/tables/plugin/PluginListTable.tsx:116 msgid "Version" msgstr "" @@ -1227,7 +1547,7 @@ msgstr "" msgid "Server Version" msgstr "" -#: src/components/nav/Layout.tsx:73 +#: src/components/nav/Layout.tsx:80 msgid "Nothing found..." msgstr "" @@ -1237,18 +1557,26 @@ msgstr "" #~ msgstr "Profile" #: src/components/nav/MainMenu.tsx:52 +#: src/components/nav/NavigationDrawer.tsx:178 #: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:28 msgid "Settings" msgstr "" #: src/components/nav/MainMenu.tsx:59 -#: src/defaults/menuItems.tsx:15 -msgid "Account settings" +#: src/pages/Index/Settings/UserSettings.tsx:152 +msgid "Account Settings" msgstr "" +#: src/components/nav/MainMenu.tsx:59 +#: src/defaults/menuItems.tsx:15 +#~ msgid "Account settings" +#~ msgstr "Account settings" + #: src/components/nav/MainMenu.tsx:67 -#: src/defaults/menuItems.tsx:58 -#: src/pages/Index/Settings/SystemSettings.tsx:315 +#: src/components/nav/NavigationDrawer.tsx:141 +#: src/components/nav/SettingsHeader.tsx:49 +#: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:37 +#: src/pages/Index/Settings/SystemSettings.tsx:310 msgid "System Settings" msgstr "" @@ -1260,14 +1588,11 @@ msgstr "" #~ msgid "Switch to pseudo language" #~ msgstr "Switch to pseudo language" -#: src/components/nav/MainMenu.tsx:77 -msgid "Change Color Mode" -msgstr "" - #: src/components/nav/MainMenu.tsx:86 -#: src/defaults/actions.tsx:71 -#: src/defaults/menuItems.tsx:63 -#: src/pages/Index/Settings/AdminCenter/Index.tsx:221 +#: src/components/nav/NavigationDrawer.tsx:148 +#: src/components/nav/SettingsHeader.tsx:50 +#: src/defaults/actions.tsx:63 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:251 msgid "Admin Center" msgstr "" @@ -1275,458 +1600,732 @@ msgstr "" msgid "Logout" msgstr "" -#: src/components/nav/NavHoverMenu.tsx:65 -#: src/defaults/actions.tsx:60 -msgid "Open Navigation" -msgstr "" - #: src/components/nav/NavHoverMenu.tsx:84 -msgid "View all" -msgstr "" +#~ msgid "View all" +#~ msgstr "View all" #: src/components/nav/NavHoverMenu.tsx:100 #: src/components/nav/NavHoverMenu.tsx:110 -msgid "Get started" -msgstr "" +#~ msgid "Get started" +#~ msgstr "Get started" #: src/components/nav/NavHoverMenu.tsx:103 -msgid "Overview over high-level objects, functions and possible usecases." -msgstr "" - -#: src/components/nav/NavigationDrawer.tsx:57 -msgid "Navigation" -msgstr "" +#~ msgid "Overview over high-level objects, functions and possible usecases." +#~ msgstr "Overview over high-level objects, functions and possible usecases." #: src/components/nav/NavigationDrawer.tsx:60 -msgid "Pages" +#~ msgid "Pages" +#~ msgstr "Pages" + +#: src/components/nav/NavigationDrawer.tsx:77 +#: src/components/render/ModelType.tsx:31 +#: src/defaults/links.tsx:10 +#: src/pages/Index/Settings/SystemSettings.tsx:172 +#: src/pages/part/CategoryDetail.tsx:125 +#: src/pages/part/CategoryDetail.tsx:249 +#: src/pages/part/CategoryDetail.tsx:279 +#: src/pages/part/PartDetail.tsx:856 +msgid "Parts" msgstr "" -#: src/components/nav/NavigationDrawer.tsx:65 -#: src/pages/Index/Settings/AdminCenter/Index.tsx:176 -#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:41 -msgid "Plugins" +#: src/components/nav/NavigationDrawer.tsx:84 +#: src/components/render/Part.tsx:30 +#: src/defaults/links.tsx:11 +#: src/pages/Index/Settings/SystemSettings.tsx:205 +#: src/pages/part/PartDetail.tsx:593 +#: src/pages/stock/LocationDetail.tsx:352 +#: src/pages/stock/StockDetail.tsx:528 +#: src/tables/stock/StockItemTable.tsx:69 +msgid "Stock" msgstr "" -#: src/components/nav/NavigationDrawer.tsx:75 -#: src/defaults/actions.tsx:32 -msgid "Documentation" +#: src/components/nav/NavigationDrawer.tsx:91 +#: src/defaults/links.tsx:13 +#: src/pages/build/BuildDetail.tsx:530 +#: src/pages/build/BuildIndex.tsx:36 +msgid "Manufacturing" msgstr "" -#: src/components/nav/NavigationDrawer.tsx:78 -msgid "About" +#: src/components/nav/NavigationDrawer.tsx:98 +#: src/defaults/links.tsx:18 +#: src/pages/company/ManufacturerDetail.tsx:9 +#: src/pages/company/ManufacturerPartDetail.tsx:258 +#: src/pages/company/SupplierDetail.tsx:9 +#: src/pages/company/SupplierPartDetail.tsx:336 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:480 +#: src/pages/purchasing/PurchasingIndex.tsx:60 +msgid "Purchasing" msgstr "" -#: src/components/nav/NotificationDrawer.tsx:92 -#: src/pages/Index/Settings/SystemSettings.tsx:109 -#: src/pages/Index/Settings/UserSettings.tsx:126 +#: src/components/nav/NavigationDrawer.tsx:105 +#: src/defaults/links.tsx:22 +#: src/pages/company/CustomerDetail.tsx:9 +#: src/pages/sales/ReturnOrderDetail.tsx:469 +#: src/pages/sales/SalesIndex.tsx:53 +#: src/pages/sales/SalesOrderDetail.tsx:520 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:343 +msgid "Sales" +msgstr "" + +#: src/components/nav/NavigationDrawer.tsx:129 +#: src/components/nav/NotificationDrawer.tsx:178 +#: src/pages/Index/Settings/SystemSettings.tsx:110 +#: src/pages/Index/Settings/UserSettings.tsx:127 #: src/pages/Notifications.tsx:65 #: src/pages/Notifications.tsx:151 msgid "Notifications" msgstr "" -#: src/components/nav/NotificationDrawer.tsx:94 +#: src/components/nav/NavigationDrawer.tsx:135 +#: src/components/nav/SettingsHeader.tsx:48 +msgid "User Settings" +msgstr "" + +#: src/components/nav/NavigationDrawer.tsx:173 +msgid "Navigation" +msgstr "" + +#: src/components/nav/NavigationDrawer.tsx:183 +#: src/forms/PurchaseOrderForms.tsx:689 +#: src/forms/StockForms.tsx:614 +#: src/forms/StockForms.tsx:651 +#: src/forms/StockForms.tsx:677 +#: src/forms/StockForms.tsx:705 +#: src/forms/StockForms.tsx:736 +#: src/forms/StockForms.tsx:771 +#: src/forms/StockForms.tsx:813 +#: src/forms/StockForms.tsx:851 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:413 +#: src/tables/RowActions.tsx:129 +#: src/tables/build/BuildLineTable.tsx:101 +msgid "Actions" +msgstr "" + +#: src/components/nav/NavigationDrawer.tsx:191 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:205 +#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:44 +msgid "Plugins" +msgstr "" + +#: src/components/nav/NavigationDrawer.tsx:204 +#: src/defaults/actions.tsx:24 +msgid "Documentation" +msgstr "" + +#: src/components/nav/NavigationDrawer.tsx:210 +msgid "About" +msgstr "" + +#: src/components/nav/NotificationDrawer.tsx:180 msgid "Mark all as read" msgstr "" -#: src/components/nav/NotificationDrawer.tsx:104 +#: src/components/nav/NotificationDrawer.tsx:190 msgid "View all notifications" msgstr "" -#: src/components/nav/NotificationDrawer.tsx:123 +#: src/components/nav/NotificationDrawer.tsx:210 msgid "You have no unread notifications." msgstr "" -#: src/components/nav/NotificationDrawer.tsx:139 -#: src/components/nav/NotificationDrawer.tsx:145 -#: src/tables/notifications/NotificationsTable.tsx:36 -msgid "Notification" -msgstr "" - -#: src/components/nav/NotificationDrawer.tsx:168 -#: src/pages/Notifications.tsx:73 -msgid "Mark as read" -msgstr "" - -#: src/components/nav/SearchDrawer.tsx:78 +#: src/components/nav/SearchDrawer.tsx:85 msgid "results" msgstr "" -#: src/components/nav/SearchDrawer.tsx:370 +#: src/components/nav/SearchDrawer.tsx:380 msgid "Enter search text" msgstr "" -#: src/components/nav/SearchDrawer.tsx:397 +#: src/components/nav/SearchDrawer.tsx:391 +msgid "Refresh search results" +msgstr "" + +#: src/components/nav/SearchDrawer.tsx:402 +#: src/components/nav/SearchDrawer.tsx:409 msgid "Search Options" msgstr "" -#: src/components/nav/SearchDrawer.tsx:400 +#: src/components/nav/SearchDrawer.tsx:412 msgid "Regex search" msgstr "" -#: src/components/nav/SearchDrawer.tsx:410 +#: src/components/nav/SearchDrawer.tsx:421 msgid "Whole word search" msgstr "" -#: src/components/nav/SearchDrawer.tsx:451 +#: src/components/nav/SearchDrawer.tsx:461 msgid "An error occurred during search query" msgstr "" #: src/components/nav/SearchDrawer.tsx:462 -msgid "No results" +#~ msgid "No results" +#~ msgstr "No results" + +#: src/components/nav/SearchDrawer.tsx:472 +#: src/tables/part/PartTestTemplateTable.tsx:76 +msgid "No Results" msgstr "" -#: src/components/nav/SearchDrawer.tsx:465 +#: src/components/nav/SearchDrawer.tsx:475 msgid "No results available for search query" msgstr "" -#: src/components/render/Instance.tsx:217 +#: src/components/panels/AttachmentPanel.tsx:18 +msgid "Attachments" +msgstr "" + +#: src/components/panels/NotesPanel.tsx:24 +#: src/tables/build/BuildOrderTestTable.tsx:143 +#: src/tables/stock/StockTrackingTable.tsx:204 +msgid "Notes" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:47 +msgid "Plugin Inactive" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:50 +msgid "Plugin is not active" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:60 +msgid "Plugin Information" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:74 +#: src/pages/build/BuildDetail.tsx:116 +#: src/pages/company/CompanyDetail.tsx:89 +#: src/pages/company/ManufacturerPartDetail.tsx:89 +#: src/pages/company/ManufacturerPartDetail.tsx:116 +#: src/pages/company/SupplierPartDetail.tsx:140 +#: src/pages/part/CategoryDetail.tsx:101 +#: src/pages/part/PartDetail.tsx:178 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:136 +#: src/pages/sales/ReturnOrderDetail.tsx:107 +#: src/pages/sales/SalesOrderDetail.tsx:116 +#: src/pages/stock/LocationDetail.tsx:103 +#: src/tables/ColumnRenderers.tsx:92 +#: src/tables/bom/UsedInTable.tsx:44 +#: src/tables/build/BuildAllocatedStockTable.tsx:83 +#: src/tables/build/BuildLineTable.tsx:329 +#: src/tables/machine/MachineTypeTable.tsx:74 +#: src/tables/machine/MachineTypeTable.tsx:129 +#: src/tables/machine/MachineTypeTable.tsx:240 +#: src/tables/machine/MachineTypeTable.tsx:344 +#: src/tables/part/RelatedPartTable.tsx:66 +#: src/tables/plugin/PluginListTable.tsx:99 +#: src/tables/sales/SalesOrderAllocationTable.tsx:87 +#: src/tables/sales/SalesOrderLineItemTable.tsx:75 +#: src/tables/stock/LocationTypesTable.tsx:74 +msgid "Description" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:79 +msgid "Author" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:84 +#: src/pages/part/PartSchedulingDetail.tsx:277 +#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:40 +#: src/pages/part/pricing/SaleHistoryPanel.tsx:38 +#: src/tables/ColumnRenderers.tsx:215 +#: src/tables/build/BuildOrderTestTable.tsx:151 +#: src/tables/settings/StocktakeReportTable.tsx:40 +msgid "Date" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:94 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:398 +#: src/pages/part/PartDetail.tsx:331 +#: src/tables/bom/UsedInTable.tsx:84 +#: src/tables/company/CompanyTable.tsx:62 +#: src/tables/company/CompanyTable.tsx:96 +#: src/tables/machine/MachineListTable.tsx:333 +#: src/tables/machine/MachineListTable.tsx:605 +#: src/tables/part/ParametricPartTable.tsx:223 +#: src/tables/part/PartTable.tsx:178 +#: src/tables/part/PartVariantTable.tsx:15 +#: src/tables/plugin/PluginListTable.tsx:94 +#: src/tables/plugin/PluginListTable.tsx:401 +#: src/tables/purchasing/SupplierPartTable.tsx:100 +#: src/tables/purchasing/SupplierPartTable.tsx:190 +#: src/tables/settings/UserTable.tsx:283 +#: src/tables/stock/StockItemTable.tsx:293 +msgid "Active" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:106 +msgid "Package Name" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:112 +msgid "Installation Path" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:117 +#: src/tables/machine/MachineTypeTable.tsx:152 +#: src/tables/machine/MachineTypeTable.tsx:276 +#: src/tables/plugin/PluginListTable.tsx:406 +msgid "Builtin" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:122 +msgid "Package" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:134 +#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:53 +msgid "Plugin Settings" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:146 +#: src/components/render/ModelType.tsx:276 +msgid "Plugin Configuration" +msgstr "" + +#: src/components/plugins/PluginPanel.tsx:87 +#~ msgid "Error occurred while rendering plugin content" +#~ msgstr "Error occurred while rendering plugin content" + +#: src/components/plugins/PluginPanel.tsx:91 +#~ msgid "Plugin did not provide panel rendering function" +#~ msgstr "Plugin did not provide panel rendering function" + +#: src/components/plugins/PluginPanel.tsx:103 +#~ msgid "No content provided for this plugin" +#~ msgstr "No content provided for this plugin" + +#: src/components/plugins/PluginPanel.tsx:116 +#: src/components/plugins/PluginSettingsPanel.tsx:76 +#~ msgid "Error Loading Plugin" +#~ msgstr "Error Loading Plugin" + +#: src/components/plugins/PluginSettingsPanel.tsx:51 +#~ msgid "Error occurred while rendering plugin settings" +#~ msgstr "Error occurred while rendering plugin settings" + +#: src/components/plugins/PluginSettingsPanel.tsx:55 +#~ msgid "Plugin did not provide settings rendering function" +#~ msgstr "Plugin did not provide settings rendering function" + +#: src/components/plugins/PluginUIFeature.tsx:100 +msgid "Error occurred while rendering the template editor." +msgstr "" + +#: src/components/plugins/PluginUIFeature.tsx:111 +msgid "Error Loading Plugin Editor" +msgstr "" + +#: src/components/plugins/PluginUIFeature.tsx:147 +msgid "Error occurred while rendering the template preview." +msgstr "" + +#: src/components/plugins/PluginUIFeature.tsx:158 +msgid "Error Loading Plugin Preview" +msgstr "" + +#: src/components/plugins/RemoteComponent.tsx:70 +msgid "Invalid source or function name" +msgstr "" + +#: src/components/plugins/RemoteComponent.tsx:91 +msgid "Error Loading Content" +msgstr "" + +#: src/components/plugins/RemoteComponent.tsx:95 +msgid "Error occurred while loading plugin content" +msgstr "" + +#: src/components/render/Instance.tsx:224 msgid "Unknown model: {model}" msgstr "" -#: src/components/render/ModelType.tsx:22 -#: src/forms/BuildForms.tsx:213 -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/forms/StockForms.tsx:499 -#: src/forms/StockForms.tsx:533 -#: src/forms/StockForms.tsx:562 -#: src/forms/StockForms.tsx:590 -#: src/forms/StockForms.tsx:621 -#: src/forms/StockForms.tsx:656 -#: src/forms/StockForms.tsx:698 -#: src/forms/StockForms.tsx:734 -#: src/pages/build/BuildDetail.tsx:95 -#: src/pages/part/PartDetail.tsx:1073 -#: src/tables/build/BuildAllocatedStockTable.tsx:82 +#: src/components/render/ModelType.tsx:30 +#: src/forms/BuildForms.tsx:269 +#: src/forms/BuildForms.tsx:337 +#: src/forms/BuildForms.tsx:385 +#: src/forms/BuildForms.tsx:515 +#: src/forms/PurchaseOrderForms.tsx:689 +#: src/forms/ReturnOrderForms.tsx:190 +#: src/forms/SalesOrderForms.tsx:248 +#: src/forms/StockForms.tsx:261 +#: src/forms/StockForms.tsx:614 +#: src/forms/StockForms.tsx:651 +#: src/forms/StockForms.tsx:677 +#: src/forms/StockForms.tsx:705 +#: src/forms/StockForms.tsx:736 +#: src/forms/StockForms.tsx:771 +#: src/forms/StockForms.tsx:813 +#: src/forms/StockForms.tsx:851 +#: src/pages/build/BuildDetail.tsx:90 +#: src/pages/part/PartDetail.tsx:1094 +#: src/tables/build/BuildAllocatedStockTable.tsx:95 +#: src/tables/build/BuildLineTable.tsx:72 #: src/tables/part/PartTable.tsx:28 -#: src/tables/part/RelatedPartTable.tsx:45 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:88 -#: src/tables/sales/SalesOrderAllocationTable.tsx:68 -#: src/tables/stock/StockTrackingTable.tsx:74 +#: src/tables/part/RelatedPartTable.tsx:47 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:130 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:100 +#: src/tables/sales/SalesOrderAllocationTable.tsx:99 +#: src/tables/stock/StockTrackingTable.tsx:78 msgid "Part" msgstr "" -#: src/components/render/ModelType.tsx:23 -#: src/defaults/links.tsx:29 -#: src/defaults/menuItems.tsx:33 -#: src/pages/Index/Settings/SystemSettings.tsx:173 -#: src/pages/part/CategoryDetail.tsx:119 -#: src/pages/part/CategoryDetail.tsx:244 -#: src/pages/part/CategoryDetail.tsx:274 -#: src/pages/part/PartDetail.tsx:827 -msgid "Parts" -msgstr "" - -#: src/components/render/ModelType.tsx:31 +#: src/components/render/ModelType.tsx:40 msgid "Part Parameter Template" msgstr "" -#: src/components/render/ModelType.tsx:32 +#: src/components/render/ModelType.tsx:41 msgid "Part Parameter Templates" msgstr "" -#: src/components/render/ModelType.tsx:38 +#: src/components/render/ModelType.tsx:48 msgid "Part Test Template" msgstr "" -#: src/components/render/ModelType.tsx:39 +#: src/components/render/ModelType.tsx:49 msgid "Part Test Templates" msgstr "" -#: src/components/render/ModelType.tsx:45 -#: src/pages/company/SupplierPartDetail.tsx:203 -#: src/pages/company/SupplierPartDetail.tsx:375 -#: src/pages/stock/StockDetail.tsx:173 -#: src/tables/build/BuildAllocatedStockTable.tsx:131 +#: src/components/render/ModelType.tsx:56 +#: src/pages/company/SupplierPartDetail.tsx:364 +#: src/pages/stock/StockDetail.tsx:194 +#: src/tables/build/BuildAllocatedStockTable.tsx:152 #: src/tables/part/PartPurchaseOrdersTable.tsx:49 -#: src/tables/purchasing/SupplierPartTable.tsx:68 +#: src/tables/purchasing/SupplierPartTable.tsx:70 +#: src/tables/stock/StockItemTable.tsx:229 msgid "Supplier Part" msgstr "" -#: src/components/render/ModelType.tsx:46 +#: src/components/render/ModelType.tsx:57 msgid "Supplier Parts" msgstr "" -#: src/components/render/ModelType.tsx:54 -#: src/pages/company/ManufacturerPartDetail.tsx:132 +#: src/components/render/ModelType.tsx:66 #: src/tables/part/PartPurchaseOrdersTable.tsx:55 +#: src/tables/stock/StockItemTable.tsx:234 msgid "Manufacturer Part" msgstr "" -#: src/components/render/ModelType.tsx:55 +#: src/components/render/ModelType.tsx:67 msgid "Manufacturer Parts" msgstr "" -#: src/components/render/ModelType.tsx:63 -#: src/pages/part/CategoryDetail.tsx:305 +#: src/components/render/ModelType.tsx:76 +#: src/pages/part/CategoryDetail.tsx:310 msgid "Part Category" msgstr "" -#: src/components/render/ModelType.tsx:64 -#: src/pages/part/CategoryDetail.tsx:258 -#: src/pages/part/CategoryDetail.tsx:296 -#: src/pages/part/PartDetail.tsx:1063 +#: src/components/render/ModelType.tsx:77 +#: src/pages/part/CategoryDetail.tsx:263 +#: src/pages/part/CategoryDetail.tsx:301 +#: src/pages/part/PartDetail.tsx:1084 msgid "Part Categories" msgstr "" -#: src/components/render/ModelType.tsx:72 -#: src/pages/stock/StockDetail.tsx:624 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:94 -#: src/tables/stock/StockTrackingTable.tsx:45 +#: src/components/render/ModelType.tsx:86 +#: src/forms/BuildForms.tsx:337 +#: src/forms/BuildForms.tsx:385 +#: src/forms/BuildForms.tsx:515 +#: src/forms/SalesOrderForms.tsx:248 +#: src/pages/stock/StockDetail.tsx:839 +#: src/tables/stock/StockTrackingTable.tsx:49 msgid "Stock Item" msgstr "" -#: src/components/render/ModelType.tsx:73 +#: src/components/render/ModelType.tsx:87 #: src/pages/company/CompanyDetail.tsx:203 -#: src/pages/stock/LocationDetail.tsx:128 -#: src/pages/stock/LocationDetail.tsx:181 -#: src/pages/stock/LocationDetail.tsx:395 +#: src/pages/part/PartStocktakeDetail.tsx:113 +#: src/pages/stock/LocationDetail.tsx:122 +#: src/pages/stock/LocationDetail.tsx:175 +#: src/pages/stock/LocationDetail.tsx:380 msgid "Stock Items" msgstr "" -#: src/components/render/ModelType.tsx:81 +#: src/components/render/ModelType.tsx:96 msgid "Stock Location" msgstr "" -#: src/components/render/ModelType.tsx:82 -#: src/pages/stock/LocationDetail.tsx:195 -#: src/pages/stock/LocationDetail.tsx:387 -#: src/pages/stock/StockDetail.tsx:616 +#: src/components/render/ModelType.tsx:97 +#: src/pages/stock/LocationDetail.tsx:189 +#: src/pages/stock/LocationDetail.tsx:372 +#: src/pages/stock/StockDetail.tsx:831 msgid "Stock Locations" msgstr "" -#: src/components/render/ModelType.tsx:90 +#: src/components/render/ModelType.tsx:106 msgid "Stock Location Type" msgstr "" -#: src/components/render/ModelType.tsx:91 +#: src/components/render/ModelType.tsx:107 msgid "Stock Location Types" msgstr "" -#: src/components/render/ModelType.tsx:95 +#: src/components/render/ModelType.tsx:112 +#: src/pages/part/PartDetail.tsx:712 msgid "Stock History" msgstr "" -#: src/components/render/ModelType.tsx:96 +#: src/components/render/ModelType.tsx:113 msgid "Stock Histories" msgstr "" -#: src/components/render/ModelType.tsx:100 -#: src/defaults/links.tsx:31 -#: src/defaults/menuItems.tsx:43 +#: src/components/render/ModelType.tsx:118 msgid "Build" msgstr "" -#: src/components/render/ModelType.tsx:101 +#: src/components/render/ModelType.tsx:119 msgid "Builds" msgstr "" -#: src/components/render/ModelType.tsx:109 +#: src/components/render/ModelType.tsx:128 msgid "Build Line" msgstr "" -#: src/components/render/ModelType.tsx:110 +#: src/components/render/ModelType.tsx:129 msgid "Build Lines" msgstr "" -#: src/components/render/ModelType.tsx:117 +#: src/components/render/ModelType.tsx:137 msgid "Build Item" msgstr "" -#: src/components/render/ModelType.tsx:118 +#: src/components/render/ModelType.tsx:138 msgid "Build Items" msgstr "" -#: src/components/render/ModelType.tsx:122 -#: src/pages/company/CompanyDetail.tsx:339 +#: src/components/render/ModelType.tsx:143 +#: src/pages/company/CompanyDetail.tsx:321 msgid "Company" msgstr "" -#: src/components/render/ModelType.tsx:123 +#: src/components/render/ModelType.tsx:144 msgid "Companies" msgstr "" -#: src/components/render/ModelType.tsx:131 +#: src/components/render/ModelType.tsx:153 +#: src/pages/build/BuildDetail.tsx:195 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:204 +#: src/pages/sales/ReturnOrderDetail.tsx:174 +#: src/pages/sales/SalesOrderDetail.tsx:186 #: src/tables/TableHoverCard.tsx:81 -#: src/tables/build/BuildOrderTable.tsx:140 -#: src/tables/purchasing/PurchaseOrderTable.tsx:64 -#: src/tables/sales/ReturnOrderTable.tsx:55 -#: src/tables/sales/SalesOrderTable.tsx:62 +#: src/tables/build/BuildOrderTable.tsx:135 +#: src/tables/purchasing/PurchaseOrderTable.tsx:69 +#: src/tables/sales/ReturnOrderTable.tsx:67 +#: src/tables/sales/SalesOrderTable.tsx:67 msgid "Project Code" msgstr "" -#: src/components/render/ModelType.tsx:132 -#: src/pages/Index/Settings/AdminCenter/Index.tsx:128 +#: src/components/render/ModelType.tsx:154 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:145 msgid "Project Codes" msgstr "" -#: src/components/render/ModelType.tsx:138 +#: src/components/render/ModelType.tsx:161 #: src/pages/part/pricing/PurchaseHistoryPanel.tsx:32 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:480 -#: src/tables/part/PartPurchaseOrdersTable.tsx:32 -#: src/tables/stock/StockTrackingTable.tsx:107 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:477 +#: src/pages/stock/StockDetail.tsx:253 +#: src/tables/part/PartPurchaseOrdersTable.tsx:31 +#: src/tables/stock/StockItemTable.tsx:222 +#: src/tables/stock/StockTrackingTable.tsx:111 msgid "Purchase Order" msgstr "" -#: src/components/render/ModelType.tsx:139 -#: src/pages/Index/Settings/SystemSettings.tsx:255 +#: src/components/render/ModelType.tsx:162 +#: src/pages/Index/Settings/SystemSettings.tsx:249 #: src/pages/company/CompanyDetail.tsx:196 -#: src/pages/company/SupplierPartDetail.tsx:237 -#: src/pages/part/PartDetail.tsx:662 +#: src/pages/company/SupplierPartDetail.tsx:249 +#: src/pages/part/PartDetail.tsx:683 #: src/pages/purchasing/PurchasingIndex.tsx:25 msgid "Purchase Orders" msgstr "" -#: src/components/render/ModelType.tsx:147 +#: src/components/render/ModelType.tsx:171 msgid "Purchase Order Line" msgstr "" -#: src/components/render/ModelType.tsx:148 +#: src/components/render/ModelType.tsx:172 msgid "Purchase Order Lines" msgstr "" -#: src/components/render/ModelType.tsx:152 -#: src/pages/build/BuildDetail.tsx:153 -#: src/pages/sales/SalesOrderDetail.tsx:520 -#: src/pages/stock/StockDetail.tsx:221 -#: src/tables/sales/SalesOrderAllocationTable.tsx:50 -#: src/tables/stock/StockTrackingTable.tsx:118 +#: src/components/render/ModelType.tsx:177 +#: src/pages/build/BuildDetail.tsx:148 +#: src/pages/part/pricing/SaleHistoryPanel.tsx:24 +#: src/pages/sales/SalesOrderDetail.tsx:515 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:92 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:341 +#: src/pages/stock/StockDetail.tsx:262 +#: src/tables/sales/SalesOrderAllocationTable.tsx:80 +#: src/tables/stock/StockTrackingTable.tsx:122 msgid "Sales Order" msgstr "" -#: src/components/render/ModelType.tsx:153 -#: src/pages/Index/Settings/SystemSettings.tsx:270 +#: src/components/render/ModelType.tsx:178 +#: src/pages/Index/Settings/SystemSettings.tsx:264 #: src/pages/company/CompanyDetail.tsx:216 -#: src/pages/part/PartDetail.tsx:669 +#: src/pages/part/PartDetail.tsx:695 #: src/pages/sales/SalesIndex.tsx:26 msgid "Sales Orders" msgstr "" -#: src/components/render/ModelType.tsx:161 +#: src/components/render/ModelType.tsx:187 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:340 msgid "Sales Order Shipment" msgstr "" -#: src/components/render/ModelType.tsx:162 +#: src/components/render/ModelType.tsx:188 msgid "Sales Order Shipments" msgstr "" -#: src/components/render/ModelType.tsx:168 -#: src/pages/sales/ReturnOrderDetail.tsx:469 -#: src/tables/stock/StockTrackingTable.tsx:129 +#: src/components/render/ModelType.tsx:195 +#: src/pages/sales/ReturnOrderDetail.tsx:464 +#: src/tables/stock/StockTrackingTable.tsx:133 msgid "Return Order" msgstr "" -#: src/components/render/ModelType.tsx:169 -#: src/pages/Index/Settings/SystemSettings.tsx:286 +#: src/components/render/ModelType.tsx:196 +#: src/pages/Index/Settings/SystemSettings.tsx:280 #: src/pages/company/CompanyDetail.tsx:223 +#: src/pages/part/PartDetail.tsx:702 #: src/pages/sales/SalesIndex.tsx:32 msgid "Return Orders" msgstr "" -#: src/components/render/ModelType.tsx:177 +#: src/components/render/ModelType.tsx:205 msgid "Return Order Line Item" msgstr "" -#: src/components/render/ModelType.tsx:178 +#: src/components/render/ModelType.tsx:206 msgid "Return Order Line Items" msgstr "" -#: src/components/render/ModelType.tsx:182 -#: src/tables/company/AddressTable.tsx:47 +#: src/components/render/ModelType.tsx:211 +#: src/tables/company/AddressTable.tsx:48 msgid "Address" msgstr "" -#: src/components/render/ModelType.tsx:183 -#: src/pages/company/CompanyDetail.tsx:253 +#: src/components/render/ModelType.tsx:212 +#: src/pages/company/CompanyDetail.tsx:255 msgid "Addresses" msgstr "" -#: src/components/render/ModelType.tsx:189 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:195 -#: src/pages/sales/ReturnOrderDetail.tsx:174 -#: src/pages/sales/SalesOrderDetail.tsx:183 +#: src/components/render/ModelType.tsx:219 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:196 +#: src/pages/sales/ReturnOrderDetail.tsx:166 +#: src/pages/sales/SalesOrderDetail.tsx:178 msgid "Contact" msgstr "" -#: src/components/render/ModelType.tsx:190 -#: src/pages/company/CompanyDetail.tsx:247 +#: src/components/render/ModelType.tsx:220 +#: src/pages/company/CompanyDetail.tsx:249 msgid "Contacts" msgstr "" -#: src/components/render/ModelType.tsx:196 +#: src/components/render/ModelType.tsx:227 msgid "Owner" msgstr "" -#: src/components/render/ModelType.tsx:197 +#: src/components/render/ModelType.tsx:228 msgid "Owners" msgstr "" -#: src/components/render/ModelType.tsx:203 -#: src/tables/settings/ImportSessionTable.tsx:121 -#: src/tables/stock/StockItemTestResultTable.tsx:198 -#: src/tables/stock/StockTrackingTable.tsx:195 +#: src/components/render/ModelType.tsx:234 +#~ msgid "Purchase Order Line Item" +#~ msgstr "Purchase Order Line Item" + +#: src/components/render/ModelType.tsx:235 +#: src/tables/settings/BarcodeScanHistoryTable.tsx:80 +#: src/tables/settings/BarcodeScanHistoryTable.tsx:211 +#: src/tables/settings/ImportSessionTable.tsx:120 +#: src/tables/settings/StocktakeReportTable.tsx:44 +#: src/tables/stock/StockItemTestResultTable.tsx:204 +#: src/tables/stock/StockTrackingTable.tsx:181 +#: src/tables/stock/StockTrackingTable.tsx:210 msgid "User" msgstr "" -#: src/components/render/ModelType.tsx:204 -#: src/pages/Index/Settings/AdminCenter/Index.tsx:98 +#: src/components/render/ModelType.tsx:236 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:109 #: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:13 msgid "Users" msgstr "" -#: src/components/render/ModelType.tsx:210 +#: src/components/render/ModelType.tsx:243 msgid "Group" msgstr "" -#: src/components/render/ModelType.tsx:211 +#: src/components/render/ModelType.tsx:244 #: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:20 -#: src/tables/settings/UserTable.tsx:138 -#: src/tables/settings/UserTable.tsx:201 +#: src/tables/settings/UserTable.tsx:137 +#: src/tables/settings/UserTable.tsx:200 msgid "Groups" msgstr "" -#: src/components/render/ModelType.tsx:218 +#: src/components/render/ModelType.tsx:252 msgid "Import Session" msgstr "" -#: src/components/render/ModelType.tsx:219 +#: src/components/render/ModelType.tsx:253 msgid "Import Sessions" msgstr "" -#: src/components/render/ModelType.tsx:225 +#: src/components/render/ModelType.tsx:260 msgid "Label Template" msgstr "" -#: src/components/render/ModelType.tsx:226 -#: src/pages/Index/Settings/AdminCenter/Index.tsx:158 +#: src/components/render/ModelType.tsx:261 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:187 msgid "Label Templates" msgstr "" -#: src/components/render/ModelType.tsx:232 +#: src/components/render/ModelType.tsx:264 +#~ msgid "Unknown Model" +#~ msgstr "Unknown Model" + +#: src/components/render/ModelType.tsx:268 msgid "Report Template" msgstr "" -#: src/components/render/ModelType.tsx:233 -#: src/pages/Index/Settings/AdminCenter/Index.tsx:164 +#: src/components/render/ModelType.tsx:269 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:193 msgid "Report Templates" msgstr "" -#: src/components/render/ModelType.tsx:239 -msgid "Plugin Configuration" -msgstr "" - -#: src/components/render/ModelType.tsx:240 +#: src/components/render/ModelType.tsx:277 msgid "Plugin Configurations" msgstr "" +#: src/components/render/ModelType.tsx:284 +msgid "Content Type" +msgstr "" + +#: src/components/render/ModelType.tsx:285 +msgid "Content Types" +msgstr "" + +#: src/components/render/ModelType.tsx:291 +#: src/tables/machine/MachineListTable.tsx:351 +#: src/tables/machine/MachineTypeTable.tsx:282 +msgid "Errors" +msgstr "" + +#: src/components/render/ModelType.tsx:307 +#~ msgid "Purchase Order Line Items" +#~ msgstr "Purchase Order Line Items" + +#: src/components/render/ModelType.tsx:337 +#~ msgid "Unknown Models" +#~ msgstr "Unknown Models" + #: src/components/render/Order.tsx:121 +#: src/tables/sales/SalesOrderAllocationTable.tsx:136 msgid "Shipment" msgstr "" #: src/components/render/Part.tsx:25 #: src/components/render/Plugin.tsx:17 -#: src/pages/company/CompanyDetail.tsx:325 -#: src/pages/company/SupplierPartDetail.tsx:360 -#: src/pages/part/PartDetail.tsx:879 +#: src/pages/company/CompanyDetail.tsx:307 +#: src/pages/company/SupplierPartDetail.tsx:349 +#: src/pages/part/PartDetail.tsx:911 msgid "Inactive" msgstr "" @@ -1736,39 +2335,38 @@ msgstr "" msgid "No stock" msgstr "" -#: src/components/render/Part.tsx:30 -#: src/defaults/links.tsx:30 -#: src/defaults/menuItems.tsx:38 -#: src/pages/Index/Settings/SystemSettings.tsx:206 -#: src/pages/part/PartDetail.tsx:543 -#: src/pages/stock/LocationDetail.tsx:367 -#: src/pages/stock/StockDetail.tsx:411 -#: src/tables/stock/StockItemTable.tsx:68 -msgid "Stock" -msgstr "" - -#: src/components/render/Stock.tsx:60 -#: src/pages/stock/StockDetail.tsx:150 -#: src/pages/stock/StockDetail.tsx:581 -#: src/tables/build/BuildAllocatedStockTable.tsx:102 -#: src/tables/sales/SalesOrderAllocationTable.tsx:80 +#: src/components/render/Stock.tsx:61 +#: src/forms/ReturnOrderForms.tsx:190 +#: src/pages/stock/StockDetail.tsx:166 +#: src/pages/stock/StockDetail.tsx:771 +#: src/tables/build/BuildAllocatedStockTable.tsx:123 +#: src/tables/build/BuildOutputTable.tsx:81 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:114 +#: src/tables/sales/SalesOrderAllocationTable.tsx:106 msgid "Serial Number" msgstr "" -#: src/components/render/Stock.tsx:62 -#: src/forms/BuildForms.tsx:218 -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/pages/part/pricing/BomPricingPanel.tsx:109 +#: src/components/render/Stock.tsx:63 +#: src/forms/BuildForms.tsx:206 +#: src/forms/BuildForms.tsx:515 +#: src/forms/PurchaseOrderForms.tsx:689 +#: src/forms/SalesOrderForms.tsx:248 +#: src/pages/part/PartSchedulingDetail.tsx:80 +#: src/pages/part/PartStocktakeDetail.tsx:60 +#: src/pages/part/PartStocktakeDetail.tsx:234 +#: src/pages/part/PartStocktakeDetail.tsx:252 +#: src/pages/part/pricing/BomPricingPanel.tsx:148 #: src/pages/part/pricing/PriceBreakPanel.tsx:89 -#: src/pages/part/pricing/PriceBreakPanel.tsx:171 -#: src/pages/stock/StockDetail.tsx:145 -#: src/pages/stock/StockDetail.tsx:587 -#: src/tables/build/BuildOrderTestTable.tsx:197 -#: src/tables/part/PartPurchaseOrdersTable.tsx:92 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:143 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:171 +#: src/pages/part/pricing/PriceBreakPanel.tsx:172 +#: src/pages/stock/StockDetail.tsx:161 +#: src/pages/stock/StockDetail.tsx:777 +#: src/tables/build/BuildLineTable.tsx:79 +#: src/tables/build/BuildOrderTestTable.tsx:198 +#: src/tables/part/PartPurchaseOrdersTable.tsx:93 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:146 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:177 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:77 -#: src/tables/stock/StockTrackingTable.tsx:59 +#: src/tables/stock/StockTrackingTable.tsx:63 msgid "Quantity" msgstr "" @@ -1842,10 +2440,6 @@ msgstr "" #~ msgid "Required Part" #~ msgstr "Required Part" -#: src/components/tables/build/BuildLineTable.tsx:152 -#~ msgid "Required Quantity" -#~ msgstr "Required Quantity" - #: src/components/tables/build/BuildOrderTable.tsx:52 #~ msgid "Progress" #~ msgstr "Progress" @@ -2126,14 +2720,6 @@ msgstr "" #~ msgid "user deleted" #~ msgstr "user deleted" -#: src/components/tables/settings/UserTable.tsx:168 -#~ msgid "First Name" -#~ msgstr "First Name" - -#: src/components/tables/settings/UserTable.tsx:173 -#~ msgid "Last Name" -#~ msgstr "Last Name" - #: src/components/tables/stock/StockItemTable.tsx:247 #~ msgid "Test Filter" #~ msgstr "Test Filter" @@ -2146,36 +2732,21 @@ msgstr "" #~ msgid "Stock location updated" #~ msgstr "Stock location updated" -#: src/components/widgets/DisplayWidget.tsx:11 -#: src/pages/Index/Settings/AccountSettings/DisplaySettingsPanel.tsx:17 -msgid "Display Settings" -msgstr "" - -#: src/components/widgets/DisplayWidget.tsx:15 -#: src/pages/Index/Settings/AccountSettings/DisplaySettingsPanel.tsx:23 -msgid "Color Mode" -msgstr "" - -#: src/components/widgets/DisplayWidget.tsx:21 -#: src/pages/Index/Settings/AccountSettings/DisplaySettingsPanel.tsx:33 -msgid "Language" -msgstr "" - #: src/components/widgets/FeedbackWidget.tsx:19 -msgid "Something is new: Platform UI" -msgstr "" +#~ msgid "Something is new: Platform UI" +#~ msgstr "Something is new: Platform UI" #: src/components/widgets/FeedbackWidget.tsx:21 -msgid "We are building a new UI with a modern stack. What you currently see is not fixed and will be redesigned but demonstrates the UI/UX possibilities we will have going forward." -msgstr "" +#~ msgid "We are building a new UI with a modern stack. What you currently see is not fixed and will be redesigned but demonstrates the UI/UX possibilities we will have going forward." +#~ msgstr "We are building a new UI with a modern stack. What you currently see is not fixed and will be redesigned but demonstrates the UI/UX possibilities we will have going forward." #: src/components/widgets/FeedbackWidget.tsx:32 -msgid "Provide Feedback" -msgstr "" +#~ msgid "Provide Feedback" +#~ msgstr "Provide Feedback" #: src/components/widgets/GetStartedWidget.tsx:11 -msgid "Getting started" -msgstr "" +#~ msgid "Getting started" +#~ msgstr "Getting started" #: src/components/widgets/MarkdownEditor.tsx:108 #~ msgid "Failed to upload image" @@ -2186,28 +2757,24 @@ msgstr "" #~ msgstr "Notes saved" #: src/components/widgets/WidgetLayout.tsx:166 -msgid "Layout" -msgstr "" +#~ msgid "Layout" +#~ msgstr "Layout" #: src/components/widgets/WidgetLayout.tsx:172 -msgid "Reset Layout" -msgstr "" +#~ msgid "Reset Layout" +#~ msgstr "Reset Layout" #: src/components/widgets/WidgetLayout.tsx:185 -msgid "Stop Edit" -msgstr "" - -#: src/components/widgets/WidgetLayout.tsx:185 -msgid "Edit Layout" -msgstr "" +#~ msgid "Stop Edit" +#~ msgstr "Stop Edit" #: src/components/widgets/WidgetLayout.tsx:191 -msgid "Appearance" -msgstr "" +#~ msgid "Appearance" +#~ msgstr "Appearance" #: src/components/widgets/WidgetLayout.tsx:203 -msgid "Show Boxes" -msgstr "" +#~ msgid "Show Boxes" +#~ msgstr "Show Boxes" #: src/contexts/LanguageContext.tsx:20 msgid "Arabic" @@ -2286,201 +2853,175 @@ msgid "Korean" msgstr "" #: src/contexts/LanguageContext.tsx:39 -msgid "Latvian" +msgid "Lithuanian" msgstr "" #: src/contexts/LanguageContext.tsx:40 -msgid "Dutch" +msgid "Latvian" msgstr "" #: src/contexts/LanguageContext.tsx:41 -msgid "Norwegian" +msgid "Dutch" msgstr "" #: src/contexts/LanguageContext.tsx:42 -msgid "Polish" +msgid "Norwegian" msgstr "" #: src/contexts/LanguageContext.tsx:43 -msgid "Portuguese" +msgid "Polish" msgstr "" #: src/contexts/LanguageContext.tsx:44 -msgid "Portuguese (Brazilian)" +msgid "Portuguese" msgstr "" #: src/contexts/LanguageContext.tsx:45 -msgid "Romanian" +msgid "Portuguese (Brazilian)" msgstr "" #: src/contexts/LanguageContext.tsx:46 -msgid "Russian" +msgid "Romanian" msgstr "" #: src/contexts/LanguageContext.tsx:47 -msgid "Slovak" +msgid "Russian" msgstr "" #: src/contexts/LanguageContext.tsx:48 -msgid "Slovenian" +msgid "Slovak" msgstr "" #: src/contexts/LanguageContext.tsx:49 -msgid "Swedish" +msgid "Slovenian" msgstr "" #: src/contexts/LanguageContext.tsx:50 -msgid "Thai" +msgid "Swedish" msgstr "" #: src/contexts/LanguageContext.tsx:51 -msgid "Turkish" +msgid "Thai" msgstr "" #: src/contexts/LanguageContext.tsx:52 -msgid "Ukrainian" +msgid "Turkish" msgstr "" #: src/contexts/LanguageContext.tsx:53 -msgid "Vietnamese" +msgid "Ukrainian" msgstr "" #: src/contexts/LanguageContext.tsx:54 -msgid "Chinese (Simplified)" +msgid "Vietnamese" msgstr "" #: src/contexts/LanguageContext.tsx:55 +msgid "Chinese (Simplified)" +msgstr "" + +#: src/contexts/LanguageContext.tsx:56 msgid "Chinese (Traditional)" msgstr "" +#: src/defaults/actions.tsx:18 +msgid "Go to the InvenTree dashboard" +msgstr "" + #: src/defaults/actions.tsx:18 #: src/defaults/links.tsx:27 #: src/defaults/menuItems.tsx:9 -msgid "Home" -msgstr "" +#~ msgid "Home" +#~ msgstr "Home" #: src/defaults/actions.tsx:25 -#: src/defaults/links.tsx:28 -#: src/defaults/menuItems.tsx:28 -#: src/pages/Index/Dashboard.tsx:19 -#: src/pages/Index/Settings/UserSettings.tsx:46 -msgid "Dashboard" -msgstr "" - -#: src/defaults/actions.tsx:26 -msgid "Go to the InvenTree dashboard" -msgstr "" - -#: src/defaults/actions.tsx:33 msgid "Visit the documentation to learn more about InvenTree" msgstr "" -#: src/defaults/actions.tsx:39 -#: src/defaults/links.tsx:98 -#: src/defaults/links.tsx:128 +#: src/defaults/actions.tsx:31 +#: src/defaults/links.tsx:92 +#: src/defaults/links.tsx:124 msgid "About InvenTree" msgstr "" -#: src/defaults/actions.tsx:40 -#: src/defaults/links.tsx:129 +#: src/defaults/actions.tsx:32 msgid "About the InvenTree org" msgstr "" -#: src/defaults/actions.tsx:46 +#: src/defaults/actions.tsx:38 msgid "Server Information" msgstr "" -#: src/defaults/actions.tsx:47 -#: src/defaults/links.tsx:123 +#: src/defaults/actions.tsx:39 +#: src/defaults/links.tsx:118 msgid "About this Inventree instance" msgstr "" -#: src/defaults/actions.tsx:53 -#: src/defaults/links.tsx:111 +#: src/defaults/actions.tsx:45 +#: src/defaults/links.tsx:105 +#: src/defaults/links.tsx:131 msgid "License Information" msgstr "" -#: src/defaults/actions.tsx:54 -#: src/defaults/links.tsx:135 +#: src/defaults/actions.tsx:46 msgid "Licenses for dependencies of the service" msgstr "" -#: src/defaults/actions.tsx:61 +#: src/defaults/actions.tsx:52 +msgid "Open Navigation" +msgstr "" + +#: src/defaults/actions.tsx:53 msgid "Open the main navigation menu" msgstr "" -#: src/defaults/actions.tsx:72 +#: src/defaults/actions.tsx:64 msgid "Go to the Admin Center" msgstr "" -#: src/defaults/dashboardItems.tsx:15 -msgid "Subscribed Parts" -msgstr "" - -#: src/defaults/dashboardItems.tsx:22 -msgid "Subscribed Categories" -msgstr "" - #: src/defaults/dashboardItems.tsx:29 -msgid "Latest Parts" -msgstr "" +#~ msgid "Latest Parts" +#~ msgstr "Latest Parts" #: src/defaults/dashboardItems.tsx:36 -msgid "BOM Waiting Validation" -msgstr "" +#~ msgid "BOM Waiting Validation" +#~ msgstr "BOM Waiting Validation" #: src/defaults/dashboardItems.tsx:43 -msgid "Recently Updated" -msgstr "" - -#: src/defaults/dashboardItems.tsx:50 -#: src/tables/part/PartTable.tsx:238 -msgid "Low Stock" -msgstr "" +#~ msgid "Recently Updated" +#~ msgstr "Recently Updated" #: src/defaults/dashboardItems.tsx:57 -msgid "Depleted Stock" -msgstr "" +#~ msgid "Depleted Stock" +#~ msgstr "Depleted Stock" #: src/defaults/dashboardItems.tsx:64 -msgid "Required for Build Orders" -msgstr "" +#~ msgid "Required for Build Orders" +#~ msgstr "Required for Build Orders" #: src/defaults/dashboardItems.tsx:71 -msgid "Expired Stock" -msgstr "" +#~ msgid "Expired Stock" +#~ msgstr "Expired Stock" #: src/defaults/dashboardItems.tsx:78 -msgid "Stale Stock" -msgstr "" +#~ msgid "Stale Stock" +#~ msgstr "Stale Stock" #: src/defaults/dashboardItems.tsx:85 -msgid "Build Orders In Progress" -msgstr "" - -#: src/defaults/dashboardItems.tsx:92 -msgid "Overdue Build Orders" -msgstr "" +#~ msgid "Build Orders In Progress" +#~ msgstr "Build Orders In Progress" #: src/defaults/dashboardItems.tsx:99 -msgid "Outstanding Purchase Orders" -msgstr "" - -#: src/defaults/dashboardItems.tsx:106 -msgid "Overdue Purchase Orders" -msgstr "" +#~ msgid "Outstanding Purchase Orders" +#~ msgstr "Outstanding Purchase Orders" #: src/defaults/dashboardItems.tsx:113 -msgid "Outstanding Sales Orders" -msgstr "" - -#: src/defaults/dashboardItems.tsx:120 -msgid "Overdue Sales Orders" -msgstr "" +#~ msgid "Outstanding Sales Orders" +#~ msgstr "Outstanding Sales Orders" #: src/defaults/dashboardItems.tsx:127 -msgid "Current News" -msgstr "" +#~ msgid "Current News" +#~ msgstr "Current News" #: src/defaults/defaultHostList.tsx:8 #~ msgid "InvenTree Demo" @@ -2490,98 +3031,81 @@ msgstr "" #~ msgid "Local Server" #~ msgstr "Local Server" -#: src/defaults/links.tsx:12 -#: src/pages/company/CompanyDetail.tsx:96 -msgid "Website" -msgstr "" - #: src/defaults/links.tsx:17 -msgid "GitHub" -msgstr "" +#~ msgid "GitHub" +#~ msgstr "GitHub" #: src/defaults/links.tsx:22 -msgid "Demo" -msgstr "" - -#: src/defaults/links.tsx:33 -#: src/defaults/menuItems.tsx:48 -#: src/pages/company/ManufacturerDetail.tsx:9 -#: src/pages/company/ManufacturerPartDetail.tsx:263 -#: src/pages/company/SupplierDetail.tsx:9 -#: src/pages/company/SupplierPartDetail.tsx:347 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:483 -#: src/pages/purchasing/PurchasingIndex.tsx:60 -msgid "Purchasing" -msgstr "" - -#: src/defaults/links.tsx:37 -#: src/defaults/menuItems.tsx:53 -#: src/pages/company/CustomerDetail.tsx:9 -#: src/pages/sales/ReturnOrderDetail.tsx:474 -#: src/pages/sales/SalesIndex.tsx:53 -#: src/pages/sales/SalesOrderDetail.tsx:525 -msgid "Sales" -msgstr "" +#~ msgid "Demo" +#~ msgstr "Demo" #: src/defaults/links.tsx:41 #: src/defaults/menuItems.tsx:71 #: src/pages/Index/Playground.tsx:217 -msgid "Playground" -msgstr "" +#~ msgid "Playground" +#~ msgstr "Playground" -#: src/defaults/links.tsx:55 -msgid "Getting Started" -msgstr "" - -#: src/defaults/links.tsx:56 -msgid "Getting started with InvenTree" -msgstr "" - -#: src/defaults/links.tsx:62 +#: src/defaults/links.tsx:45 msgid "API" msgstr "" -#: src/defaults/links.tsx:63 +#: src/defaults/links.tsx:48 msgid "InvenTree API documentation" msgstr "" -#: src/defaults/links.tsx:68 +#: src/defaults/links.tsx:52 msgid "Developer Manual" msgstr "" -#: src/defaults/links.tsx:69 +#: src/defaults/links.tsx:55 msgid "InvenTree developer manual" msgstr "" -#: src/defaults/links.tsx:74 +#: src/defaults/links.tsx:59 msgid "FAQ" msgstr "" -#: src/defaults/links.tsx:75 +#: src/defaults/links.tsx:62 msgid "Frequently asked questions" msgstr "" +#: src/defaults/links.tsx:66 +msgid "GitHub Repository" +msgstr "" + +#: src/defaults/links.tsx:69 +msgid "InvenTree source code on GitHub" +msgstr "" + #: src/defaults/links.tsx:76 #~ msgid "Instance" #~ msgstr "Instance" +#: src/defaults/links.tsx:79 +#: src/defaults/links.tsx:117 +msgid "System Information" +msgstr "" + #: src/defaults/links.tsx:83 #~ msgid "InvenTree" #~ msgstr "InvenTree" -#: src/defaults/links.tsx:85 -#: src/defaults/links.tsx:122 -msgid "System Information" -msgstr "" - #: src/defaults/links.tsx:117 #~ msgid "Licenses for packages used by InvenTree" #~ msgstr "Licenses for packages used by InvenTree" -#: src/defaults/links.tsx:134 -msgid "Licenses" +#: src/defaults/links.tsx:125 +msgid "About the InvenTree Project" msgstr "" +#: src/defaults/links.tsx:132 +msgid "Licenses for dependencies of the InvenTree software" +msgstr "" + +#: src/defaults/links.tsx:134 +#~ msgid "Licenses" +#~ msgstr "Licenses" + #: src/defaults/menuItems.tsx:7 #~ msgid "Open sourcea" #~ msgstr "Open sourcea" @@ -2607,8 +3131,8 @@ msgstr "" #~ msgstr "Profile page" #: src/defaults/menuItems.tsx:17 -msgid "User attributes and design settings." -msgstr "" +#~ msgid "User attributes and design settings." +#~ msgstr "User attributes and design settings." #: src/defaults/menuItems.tsx:21 #~ msgid "Free for everyone" @@ -2619,8 +3143,8 @@ msgstr "" #~ msgstr "The fluid of Smeargle’s tail secretions changes" #: src/defaults/menuItems.tsx:23 -msgid "View for interactive scanning and multiple actions." -msgstr "" +#~ msgid "View for interactive scanning and multiple actions." +#~ msgstr "View for interactive scanning and multiple actions." #: src/defaults/menuItems.tsx:24 #~ msgid "The fluid of Smeargle’s tail secretions changes in the intensity" @@ -2698,51 +3222,130 @@ msgstr "" #~ msgid "Are you sure you want to delete this attachment?" #~ msgstr "Are you sure you want to delete this attachment?" -#: src/forms/BuildForms.tsx:158 -msgid "Next serial number" +#: src/forms/BuildForms.tsx:248 +#~ msgid "Remove output" +#~ msgstr "Remove output" + +#: src/forms/BuildForms.tsx:269 +#: src/tables/build/BuildAllocatedStockTable.tsx:147 +#: src/tables/build/BuildOrderTestTable.tsx:177 +#: src/tables/build/BuildOrderTestTable.tsx:201 +#: src/tables/build/BuildOutputTable.tsx:460 +msgid "Build Output" msgstr "" -#: src/forms/BuildForms.tsx:162 -msgid "Latest serial number" +#: src/forms/BuildForms.tsx:269 +#: src/forms/BuildForms.tsx:337 +#: src/forms/BuildForms.tsx:385 +#: src/tables/build/BuildLineTable.tsx:89 +msgid "Batch" msgstr "" -#: src/forms/BuildForms.tsx:234 -msgid "Remove output" +#: src/forms/BuildForms.tsx:269 +#: src/forms/BuildForms.tsx:337 +#: src/forms/BuildForms.tsx:385 +#: src/forms/PurchaseOrderForms.tsx:603 +#: src/pages/build/BuildDetail.tsx:104 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:142 +#: src/pages/sales/ReturnOrderDetail.tsx:113 +#: src/pages/sales/SalesOrderDetail.tsx:122 +#: src/tables/build/BuildOrderTable.tsx:125 +#: src/tables/machine/MachineListTable.tsx:336 +#: src/tables/part/PartPurchaseOrdersTable.tsx:37 +#: src/tables/purchasing/PurchaseOrderTable.tsx:58 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:157 +#: src/tables/sales/ReturnOrderTable.tsx:56 +#: src/tables/sales/SalesOrderTable.tsx:56 +#: src/tables/settings/CustomStateTable.tsx:57 +#: src/tables/settings/ImportSessionTable.tsx:114 +#: src/tables/stock/StockItemTable.tsx:298 +#: src/tables/stock/StockTrackingTable.tsx:56 +msgid "Status" msgstr "" -#: src/forms/BuildForms.tsx:316 +#: src/forms/BuildForms.tsx:289 msgid "Complete Build Outputs" msgstr "" -#: src/forms/BuildForms.tsx:320 +#: src/forms/BuildForms.tsx:292 msgid "Build outputs have been completed" msgstr "" -#: src/forms/BuildForms.tsx:389 +#: src/forms/BuildForms.tsx:353 msgid "Scrap Build Outputs" msgstr "" -#: src/forms/BuildForms.tsx:393 +#: src/forms/BuildForms.tsx:356 msgid "Build outputs have been scrapped" msgstr "" -#: src/forms/BuildForms.tsx:425 -#: src/forms/BuildForms.tsx:449 +#: src/forms/BuildForms.tsx:393 msgid "Cancel Build Outputs" msgstr "" -#: src/forms/BuildForms.tsx:426 -msgid "Selected build outputs will be deleted" +#: src/forms/BuildForms.tsx:396 +msgid "Build outputs have been cancelled" msgstr "" -#: src/forms/BuildForms.tsx:453 -msgid "Build outputs have been cancelled" +#: src/forms/BuildForms.tsx:408 +#~ msgid "Selected build outputs will be deleted" +#~ msgstr "Selected build outputs will be deleted" + +#: src/forms/BuildForms.tsx:470 +#~ msgid "Remove line" +#~ msgstr "Remove line" + +#: src/forms/BuildForms.tsx:515 +#: src/forms/SalesOrderForms.tsx:248 +#: src/tables/build/BuildLineTable.tsx:174 +#: src/tables/sales/SalesOrderLineItemTable.tsx:276 +#: src/tables/stock/StockItemTable.tsx:309 +msgid "Allocated" +msgstr "" + +#: src/forms/BuildForms.tsx:545 +#: src/forms/SalesOrderForms.tsx:239 +#: src/pages/build/BuildDetail.tsx:208 +msgid "Source Location" +msgstr "" + +#: src/forms/BuildForms.tsx:546 +#: src/forms/SalesOrderForms.tsx:240 +msgid "Select the source location for the stock allocation" +msgstr "" + +#: src/forms/BuildForms.tsx:566 +#: src/forms/SalesOrderForms.tsx:274 +#: src/tables/build/BuildLineTable.tsx:442 +#: src/tables/build/BuildLineTable.tsx:569 +#: src/tables/build/BuildLineTable.tsx:642 +#: src/tables/sales/SalesOrderLineItemTable.tsx:302 +#: src/tables/sales/SalesOrderLineItemTable.tsx:326 +msgid "Allocate Stock" +msgstr "" + +#: src/forms/BuildForms.tsx:569 +#: src/forms/SalesOrderForms.tsx:279 +msgid "Stock items allocated" msgstr "" #: src/forms/CompanyForms.tsx:150 #~ msgid "Company updated" #~ msgstr "Company updated" +#: src/forms/PartForms.tsx:67 +#: src/forms/PartForms.tsx:154 +#: src/pages/part/CategoryDetail.tsx:117 +#: src/pages/part/PartDetail.tsx:384 +#: src/tables/part/PartCategoryTable.tsx:90 +#: src/tables/part/PartTable.tsx:294 +msgid "Subscribed" +msgstr "" + +#: src/forms/PartForms.tsx:68 +msgid "Subscribe to notifications for this part" +msgstr "" + #: src/forms/PartForms.tsx:106 #~ msgid "Create Part" #~ msgstr "Create Part" @@ -2751,191 +3354,190 @@ msgstr "" #~ msgid "Part created" #~ msgstr "Part created" -#: src/forms/PartForms.tsx:124 -msgid "Parent part category" -msgstr "" - #: src/forms/PartForms.tsx:129 #~ msgid "Part updated" #~ msgstr "Part updated" -#: src/forms/PurchaseOrderForms.tsx:300 +#: src/forms/PartForms.tsx:140 +msgid "Parent part category" +msgstr "" + +#: src/forms/PartForms.tsx:155 +msgid "Subscribe to notifications for this category" +msgstr "" + +#: src/forms/PurchaseOrderForms.tsx:314 +msgid "Assign Batch Code and Serial Numbers" +msgstr "" + +#: src/forms/PurchaseOrderForms.tsx:316 +msgid "Assign Batch Code" +msgstr "" + +#: src/forms/PurchaseOrderForms.tsx:336 msgid "Choose Location" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:308 +#: src/forms/PurchaseOrderForms.tsx:344 msgid "Item Destination selected" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:317 +#: src/forms/PurchaseOrderForms.tsx:353 msgid "Part category default location selected" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:327 +#: src/forms/PurchaseOrderForms.tsx:363 msgid "Received stock location selected" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:332 +#: src/forms/PurchaseOrderForms.tsx:368 msgid "Default location selected" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:343 -#: src/forms/PurchaseOrderForms.tsx:435 -msgid "Scan Barcode" -msgstr "" +#: src/forms/PurchaseOrderForms.tsx:421 +#~ msgid "Assign Batch Code{0}" +#~ msgstr "Assign Batch Code{0}" -#: src/forms/PurchaseOrderForms.tsx:388 +#: src/forms/PurchaseOrderForms.tsx:427 msgid "Set Location" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:396 -msgid "Assign Batch Code{0}" -msgstr "" - -#: src/forms/PurchaseOrderForms.tsx:405 -#: src/forms/StockForms.tsx:420 +#: src/forms/PurchaseOrderForms.tsx:442 +#: src/forms/StockForms.tsx:539 msgid "Adjust Packaging" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:412 -msgid "Change Status" -msgstr "" - -#: src/forms/PurchaseOrderForms.tsx:418 -msgid "Add Note" -msgstr "" - #: src/forms/PurchaseOrderForms.tsx:444 #: src/forms/StockForms.tsx:428 -msgid "Remove item from list" +#~ msgid "Remove item from list" +#~ msgstr "Remove item from list" + +#: src/forms/PurchaseOrderForms.tsx:450 +msgid "Change Status" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:471 -#: src/forms/StockForms.tsx:499 -#: src/forms/StockForms.tsx:533 -#: src/forms/StockForms.tsx:562 -#: src/forms/StockForms.tsx:590 -#: src/forms/StockForms.tsx:621 -#: src/forms/StockForms.tsx:656 -#: src/forms/StockForms.tsx:698 -#: src/forms/StockForms.tsx:734 -#: src/pages/stock/StockDetail.tsx:181 -#: src/tables/ColumnRenderers.tsx:49 -#: src/tables/stock/StockTrackingTable.tsx:85 +#: src/forms/PurchaseOrderForms.tsx:456 +msgid "Add Note" +msgstr "" + +#: src/forms/PurchaseOrderForms.tsx:503 +#: src/forms/StockForms.tsx:614 +#: src/forms/StockForms.tsx:651 +#: src/forms/StockForms.tsx:677 +#: src/forms/StockForms.tsx:705 +#: src/forms/StockForms.tsx:736 +#: src/forms/StockForms.tsx:771 +#: src/forms/StockForms.tsx:813 +#: src/forms/StockForms.tsx:851 +#: src/pages/stock/StockDetail.tsx:202 +#: src/tables/ColumnRenderers.tsx:60 +#: src/tables/stock/StockTrackingTable.tsx:89 msgid "Location" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:486 +#: src/forms/PurchaseOrderForms.tsx:518 msgid "Store at default location" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:499 +#: src/forms/PurchaseOrderForms.tsx:533 msgid "Store at line item destination" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:509 +#: src/forms/PurchaseOrderForms.tsx:545 msgid "Store with already received stock" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:524 -#: src/pages/build/BuildDetail.tsx:219 -#: src/pages/stock/StockDetail.tsx:162 -#: src/pages/stock/StockDetail.tsx:599 -#: src/tables/build/BuildAllocatedStockTable.tsx:109 -#: src/tables/build/BuildOrderTestTable.tsx:188 -#: src/tables/sales/SalesOrderAllocationTable.tsx:87 +#: src/forms/PurchaseOrderForms.tsx:566 +#: src/pages/build/BuildDetail.tsx:222 +#: src/pages/stock/StockDetail.tsx:185 +#: src/pages/stock/StockDetail.tsx:793 +#: src/tables/build/BuildAllocatedStockTable.tsx:130 +#: src/tables/build/BuildOrderTestTable.tsx:189 +#: src/tables/build/BuildOutputTable.tsx:86 +#: src/tables/sales/SalesOrderAllocationTable.tsx:113 msgid "Batch Code" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:535 -msgid "Serial numbers" +#: src/forms/PurchaseOrderForms.tsx:566 +#~ msgid "Serial numbers" +#~ msgstr "Serial numbers" + +#: src/forms/PurchaseOrderForms.tsx:567 +msgid "Enter batch code for received items" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:544 -#: src/forms/StockForms.tsx:443 -#: src/pages/company/SupplierPartDetail.tsx:156 -#: src/pages/company/SupplierPartDetail.tsx:207 -#: src/pages/stock/StockDetail.tsx:244 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:192 +#: src/forms/PurchaseOrderForms.tsx:579 +#: src/forms/StockForms.tsx:152 +msgid "Serial Numbers" +msgstr "" + +#: src/forms/PurchaseOrderForms.tsx:580 +msgid "Enter serial numbers for received items" +msgstr "" + +#: src/forms/PurchaseOrderForms.tsx:590 +#: src/forms/StockForms.tsx:556 +#: src/pages/company/SupplierPartDetail.tsx:168 +#: src/pages/company/SupplierPartDetail.tsx:219 +#: src/pages/stock/StockDetail.tsx:320 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:198 msgid "Packaging" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:556 -#: src/pages/build/BuildDetail.tsx:109 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:148 -#: src/pages/sales/ReturnOrderDetail.tsx:121 -#: src/pages/sales/SalesOrderDetail.tsx:127 -#: src/tables/build/BuildOrderTable.tsx:122 -#: src/tables/machine/MachineListTable.tsx:335 -#: src/tables/part/PartPurchaseOrdersTable.tsx:37 -#: src/tables/purchasing/PurchaseOrderTable.tsx:55 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:132 -#: src/tables/sales/ReturnOrderTable.tsx:46 -#: src/tables/sales/SalesOrderTable.tsx:53 -#: src/tables/settings/ImportSessionTable.tsx:115 -#: src/tables/stock/StockItemTable.tsx:294 -#: src/tables/stock/StockTrackingTable.tsx:52 -msgid "Status" -msgstr "" - -#: src/forms/PurchaseOrderForms.tsx:564 -#: src/pages/company/SupplierPartDetail.tsx:110 -#: src/tables/ColumnRenderers.tsx:132 +#: src/forms/PurchaseOrderForms.tsx:612 +#: src/pages/company/SupplierPartDetail.tsx:115 +#: src/tables/ColumnRenderers.tsx:143 msgid "Note" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/pages/company/SupplierPartDetail.tsx:128 -#: src/tables/purchasing/SupplierPriceBreakTable.tsx:57 -msgid "SKU" -msgstr "" - -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/tables/part/PartPurchaseOrdersTable.tsx:120 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:178 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:127 -msgid "Received" -msgstr "" - -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/forms/StockForms.tsx:499 -#: src/forms/StockForms.tsx:533 -#: src/forms/StockForms.tsx:562 -#: src/forms/StockForms.tsx:590 -#: src/forms/StockForms.tsx:621 -#: src/forms/StockForms.tsx:656 -#: src/forms/StockForms.tsx:698 -#: src/forms/StockForms.tsx:734 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:413 -#: src/tables/RowActions.tsx:113 -msgid "Actions" -msgstr "" - -#: src/forms/PurchaseOrderForms.tsx:655 -msgid "Receive Line Items" -msgstr "" - #: src/forms/PurchaseOrderForms.tsx:658 #~ msgid "Receive line items" #~ msgstr "Receive line items" -#: src/forms/StockForms.tsx:104 -msgid "Add given quantity as packs instead of individual items" +#: src/forms/PurchaseOrderForms.tsx:689 +#: src/pages/company/SupplierPartDetail.tsx:133 +#: src/tables/purchasing/SupplierPriceBreakTable.tsx:57 +msgid "SKU" +msgstr "" + +#: src/forms/PurchaseOrderForms.tsx:689 +#: src/tables/part/PartPurchaseOrdersTable.tsx:126 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:184 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:247 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:152 +msgid "Received" +msgstr "" + +#: src/forms/PurchaseOrderForms.tsx:701 +msgid "Receive Line Items" +msgstr "" + +#: src/forms/ReturnOrderForms.tsx:201 +msgid "Receive Items" +msgstr "" + +#: src/forms/ReturnOrderForms.tsx:208 +msgid "Item received into stock" +msgstr "" + +#: src/forms/StockForms.tsx:80 +#: src/hooks/UsePlaceholder.tsx:57 +msgid "Next serial number" msgstr "" #: src/forms/StockForms.tsx:110 #~ msgid "Create Stock Item" #~ msgstr "Create Stock Item" -#: src/forms/StockForms.tsx:117 +#: src/forms/StockForms.tsx:131 +msgid "Add given quantity as packs instead of individual items" +msgstr "" + +#: src/forms/StockForms.tsx:145 msgid "Enter initial quantity for this stock item" msgstr "" -#: src/forms/StockForms.tsx:124 -msgid "Serial Numbers" -msgstr "" - -#: src/forms/StockForms.tsx:125 +#: src/forms/StockForms.tsx:154 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" @@ -2943,82 +3545,102 @@ msgstr "" #~ msgid "Stock item updated" #~ msgstr "Stock item updated" -#: src/forms/StockForms.tsx:179 -#: src/pages/stock/StockDetail.tsx:434 -#: src/tables/stock/StockItemTable.tsx:417 -#: src/tables/stock/StockItemTable.tsx:535 +#: src/forms/StockForms.tsx:169 +#: src/pages/stock/StockDetail.tsx:131 +msgid "Stock Status" +msgstr "" + +#: src/forms/StockForms.tsx:218 +#: src/pages/stock/StockDetail.tsx:554 +#: src/tables/stock/StockItemTable.tsx:421 +#: src/tables/stock/StockItemTable.tsx:541 msgid "Add Stock Item" msgstr "" -#: src/forms/StockForms.tsx:362 +#: src/forms/StockForms.tsx:262 +msgid "Select the part to install" +msgstr "" + +#: src/forms/StockForms.tsx:480 msgid "Loading..." msgstr "" -#: src/forms/StockForms.tsx:408 +#: src/forms/StockForms.tsx:527 msgid "Move to default location" msgstr "" -#: src/forms/StockForms.tsx:499 -#: src/forms/StockForms.tsx:533 -#: src/forms/StockForms.tsx:562 -#: src/forms/StockForms.tsx:590 -#: src/forms/StockForms.tsx:621 -#: src/forms/StockForms.tsx:656 -#: src/forms/StockForms.tsx:698 -#: src/forms/StockForms.tsx:734 -#: src/pages/part/PartDetail.tsx:230 -#: src/pages/part/PartDetail.tsx:843 -#: src/tables/stock/StockItemTable.tsx:325 +#: src/forms/StockForms.tsx:614 +#: src/forms/StockForms.tsx:651 +#: src/forms/StockForms.tsx:677 +#: src/forms/StockForms.tsx:705 +#: src/forms/StockForms.tsx:736 +#: src/forms/StockForms.tsx:771 +#: src/forms/StockForms.tsx:813 +#: src/forms/StockForms.tsx:851 +#: src/pages/part/PartDetail.tsx:251 +#: src/pages/part/PartDetail.tsx:875 +#: src/tables/stock/StockItemTable.tsx:329 msgid "In Stock" msgstr "" -#: src/forms/StockForms.tsx:499 +#: src/forms/StockForms.tsx:614 msgid "Move" msgstr "" -#: src/forms/StockForms.tsx:562 -#: src/pages/stock/StockDetail.tsx:518 -#: src/tables/stock/StockItemTestResultTable.tsx:328 +#: src/forms/StockForms.tsx:677 +#: src/pages/stock/StockDetail.tsx:681 +#: src/tables/stock/StockItemTestResultTable.tsx:346 msgid "Add" msgstr "" -#: src/forms/StockForms.tsx:590 -#: src/pages/Index/Scan.tsx:266 -#: src/pages/stock/StockDetail.tsx:508 +#: src/forms/StockForms.tsx:705 +#: src/pages/Index/Scan.tsx:280 +#: src/pages/stock/StockDetail.tsx:670 msgid "Count" msgstr "" -#: src/forms/StockForms.tsx:835 +#: src/forms/StockForms.tsx:953 +#: src/pages/stock/StockDetail.tsx:682 +#: src/tables/stock/StockItemTable.tsx:454 msgid "Add Stock" msgstr "" -#: src/forms/StockForms.tsx:844 +#: src/forms/StockForms.tsx:962 +#: src/pages/stock/StockDetail.tsx:691 +#: src/tables/stock/StockItemTable.tsx:463 msgid "Remove Stock" msgstr "" -#: src/forms/StockForms.tsx:853 -#: src/pages/part/PartDetail.tsx:1017 +#: src/forms/StockForms.tsx:971 +#: src/pages/part/PartDetail.tsx:1039 +#: src/pages/stock/StockDetail.tsx:712 +#: src/tables/stock/StockItemTable.tsx:483 msgid "Transfer Stock" msgstr "" -#: src/forms/StockForms.tsx:862 -#: src/pages/part/PartDetail.tsx:1006 +#: src/forms/StockForms.tsx:980 +#: src/pages/part/PartDetail.tsx:1028 +#: src/pages/stock/LocationDetail.tsx:314 +#: src/pages/stock/LocationDetail.tsx:318 +#: src/tables/stock/StockItemTable.tsx:472 +#: src/tables/stock/StockItemTable.tsx:476 msgid "Count Stock" msgstr "" -#: src/forms/StockForms.tsx:871 +#: src/forms/StockForms.tsx:989 msgid "Change Stock Status" msgstr "" -#: src/forms/StockForms.tsx:880 +#: src/forms/StockForms.tsx:998 msgid "Merge Stock" msgstr "" -#: src/forms/StockForms.tsx:899 +#: src/forms/StockForms.tsx:1017 +#: src/tables/stock/StockItemTable.tsx:530 msgid "Delete Stock Items" msgstr "" -#: src/forms/StockForms.tsx:906 +#: src/forms/StockForms.tsx:1024 msgid "Parent stock location" msgstr "" @@ -3042,11 +3664,11 @@ msgstr "" #~ msgid "You have been logged out" #~ msgstr "You have been logged out" -#: src/functions/auth.tsx:117 +#: src/functions/auth.tsx:128 msgid "Logged Out" msgstr "" -#: src/functions/auth.tsx:118 +#: src/functions/auth.tsx:129 msgid "Successfully logged out" msgstr "" @@ -3062,20 +3684,20 @@ msgstr "" #~ msgid "Found an existing login - welcome back!" #~ msgstr "Found an existing login - welcome back!" -#: src/functions/auth.tsx:156 +#: src/functions/auth.tsx:167 msgid "Check your inbox for a reset link. This only works if you have an account. Check in spam too." msgstr "" -#: src/functions/auth.tsx:163 +#: src/functions/auth.tsx:174 #: src/pages/Auth/Set-Password.tsx:39 msgid "Reset failed" msgstr "" -#: src/functions/auth.tsx:194 +#: src/functions/auth.tsx:205 msgid "Logged In" msgstr "" -#: src/functions/auth.tsx:195 +#: src/functions/auth.tsx:206 msgid "Successfully logged in" msgstr "" @@ -3095,30 +3717,38 @@ msgstr "" #~ msgid "method parameter not supplied" #~ msgstr "method parameter not supplied" -#: src/functions/notifications.tsx:10 +#: src/functions/notifications.tsx:12 msgid "Not implemented" msgstr "" -#: src/functions/notifications.tsx:11 +#: src/functions/notifications.tsx:13 msgid "This feature is not yet implemented" msgstr "" -#: src/functions/notifications.tsx:21 -msgid "Permission denied" -msgstr "" +#: src/functions/notifications.tsx:24 +#~ msgid "Permission denied" +#~ msgstr "Permission denied" -#: src/functions/notifications.tsx:22 +#: src/functions/notifications.tsx:25 msgid "You do not have permission to perform this action" msgstr "" -#: src/functions/notifications.tsx:33 +#: src/functions/notifications.tsx:36 msgid "Invalid Return Code" msgstr "" -#: src/functions/notifications.tsx:34 +#: src/functions/notifications.tsx:37 msgid "Server returned status {returnCode}" msgstr "" +#: src/functions/notifications.tsx:47 +msgid "Timeout" +msgstr "" + +#: src/functions/notifications.tsx:48 +msgid "The request timed out" +msgstr "" + #: src/hooks/UseForm.tsx:88 msgid "Item Created" msgstr "" @@ -3135,20 +3765,24 @@ msgstr "" msgid "Are you sure you want to delete this item?" msgstr "" +#: src/hooks/UsePlaceholder.tsx:59 +msgid "Latest serial number" +msgstr "" + #: src/pages/Auth/Logged-In.tsx:22 msgid "Checking if you are already logged in" msgstr "" -#: src/pages/Auth/Login.tsx:31 -#: src/pages/Index/Scan.tsx:329 +#: src/pages/Auth/Login.tsx:35 +#: src/pages/Index/Scan.tsx:343 msgid "No selection" msgstr "" -#: src/pages/Auth/Login.tsx:87 +#: src/pages/Auth/Login.tsx:91 msgid "Welcome, log in below" msgstr "" -#: src/pages/Auth/Login.tsx:89 +#: src/pages/Auth/Login.tsx:93 msgid "Register below" msgstr "" @@ -3162,8 +3796,8 @@ msgstr "" #: src/pages/Auth/Reset.tsx:41 #: src/pages/Auth/Set-Password.tsx:112 -msgid "Send mail" -msgstr "" +#~ msgid "Send mail" +#~ msgstr "Send mail" #: src/pages/Auth/Set-Password.tsx:30 msgid "Token invalid" @@ -3174,22 +3808,22 @@ msgid "You need to provide a valid token to set a new password. Check your inbox msgstr "" #: src/pages/Auth/Set-Password.tsx:49 -msgid "No token provided" -msgstr "" +#~ msgid "No token provided" +#~ msgstr "No token provided" #: src/pages/Auth/Set-Password.tsx:50 -msgid "You need to provide a token to set a new password. Check your inbox for a reset link." -msgstr "" +#~ msgid "You need to provide a token to set a new password. Check your inbox for a reset link." +#~ msgstr "You need to provide a token to set a new password. Check your inbox for a reset link." -#: src/pages/Auth/Set-Password.tsx:73 +#: src/pages/Auth/Set-Password.tsx:68 msgid "Password set" msgstr "" -#: src/pages/Auth/Set-Password.tsx:74 +#: src/pages/Auth/Set-Password.tsx:69 msgid "The password was set successfully. You can now login with your new password" msgstr "" -#: src/pages/Auth/Set-Password.tsx:101 +#: src/pages/Auth/Set-Password.tsx:96 msgid "Set new password" msgstr "" @@ -3206,20 +3840,20 @@ msgstr "" #~ msgstr "Sorry, an unexpected error has occurred." #: src/pages/Index/Dashboard.tsx:22 -msgid "Autoupdate" -msgstr "" +#~ msgid "Autoupdate" +#~ msgstr "Autoupdate" #: src/pages/Index/Dashboard.tsx:26 -msgid "This page is a replacement for the old start page with the same information. This page will be deprecated and replaced by the home page." -msgstr "" +#~ msgid "This page is a replacement for the old start page with the same information. This page will be deprecated and replaced by the home page." +#~ msgstr "This page is a replacement for the old start page with the same information. This page will be deprecated and replaced by the home page." #: src/pages/Index/Home.tsx:58 -msgid "Welcome to your Dashboard{0}" -msgstr "" +#~ msgid "Welcome to your Dashboard{0}" +#~ msgstr "Welcome to your Dashboard{0}" #: src/pages/Index/Playground.tsx:222 -msgid "This page is a showcase for the possibilities of Platform UI." -msgstr "" +#~ msgid "This page is a showcase for the possibilities of Platform UI." +#~ msgstr "This page is a showcase for the possibilities of Platform UI." #: src/pages/Index/Profile/Profile.tsx:30 #: src/pages/Index/Profile/Profile.tsx:141 @@ -3365,125 +3999,190 @@ msgstr "" msgid "Image Barcode" msgstr "" -#: src/pages/Index/Scan.tsx:247 +#: src/pages/Index/Scan.tsx:261 msgid "Selected elements are not known" msgstr "" -#: src/pages/Index/Scan.tsx:254 +#: src/pages/Index/Scan.tsx:268 msgid "Multiple object types selected" msgstr "" -#: src/pages/Index/Scan.tsx:261 +#: src/pages/Index/Scan.tsx:275 msgid "Actions for {0}" msgstr "" -#: src/pages/Index/Scan.tsx:282 +#: src/pages/Index/Scan.tsx:296 msgid "Scan Page" msgstr "" -#: src/pages/Index/Scan.tsx:285 +#: src/pages/Index/Scan.tsx:299 msgid "This page can be used for continuously scanning items and taking actions on them." msgstr "" -#: src/pages/Index/Scan.tsx:292 +#: src/pages/Index/Scan.tsx:306 msgid "Toggle Fullscreen" msgstr "" -#: src/pages/Index/Scan.tsx:305 +#: src/pages/Index/Scan.tsx:319 msgid "Select the input method you want to use to scan items." msgstr "" -#: src/pages/Index/Scan.tsx:307 +#: src/pages/Index/Scan.tsx:321 msgid "Input" msgstr "" -#: src/pages/Index/Scan.tsx:314 +#: src/pages/Index/Scan.tsx:328 msgid "Select input method" msgstr "" -#: src/pages/Index/Scan.tsx:315 +#: src/pages/Index/Scan.tsx:329 msgid "Nothing found" msgstr "" -#: src/pages/Index/Scan.tsx:323 +#: src/pages/Index/Scan.tsx:337 msgid "Depending on the selected parts actions will be shown here. Not all barcode types are supported currently." msgstr "" -#: src/pages/Index/Scan.tsx:325 +#: src/pages/Index/Scan.tsx:339 msgid "Action" msgstr "" -#: src/pages/Index/Scan.tsx:334 +#: src/pages/Index/Scan.tsx:348 msgid "{0} items selected" msgstr "" -#: src/pages/Index/Scan.tsx:337 +#: src/pages/Index/Scan.tsx:351 msgid "General Actions" msgstr "" -#: src/pages/Index/Scan.tsx:351 +#: src/pages/Index/Scan.tsx:365 msgid "Lookup part" msgstr "" -#: src/pages/Index/Scan.tsx:359 +#: src/pages/Index/Scan.tsx:373 msgid "Open Link" msgstr "" -#: src/pages/Index/Scan.tsx:375 +#: src/pages/Index/Scan.tsx:389 msgid "History is locally kept in this browser." msgstr "" -#: src/pages/Index/Scan.tsx:376 +#: src/pages/Index/Scan.tsx:390 msgid "The history is kept in this browser's local storage. So it won't be shared with other users or other devices but is persistent through reloads. You can select items in the history to perform actions on them. To add items, scan/enter them in the Input area." msgstr "" -#: src/pages/Index/Scan.tsx:378 +#: src/pages/Index/Scan.tsx:392 #: src/pages/Notifications.tsx:100 msgid "History" msgstr "" -#: src/pages/Index/Scan.tsx:384 +#: src/pages/Index/Scan.tsx:398 msgid "Delete History" msgstr "" -#: src/pages/Index/Scan.tsx:449 +#: src/pages/Index/Scan.tsx:463 msgid "No history" msgstr "" -#: src/pages/Index/Scan.tsx:467 +#: src/pages/Index/Scan.tsx:481 msgid "Item" msgstr "" -#: src/pages/Index/Scan.tsx:470 +#: src/pages/Index/Scan.tsx:484 msgid "Type" msgstr "" -#: src/pages/Index/Scan.tsx:473 +#: src/pages/Index/Scan.tsx:487 msgid "Source" msgstr "" -#: src/pages/Index/Scan.tsx:476 +#: src/pages/Index/Scan.tsx:490 msgid "Scanned at" msgstr "" -#: src/pages/Index/Scan.tsx:528 +#: src/pages/Index/Scan.tsx:547 msgid "Enter item serial or data" msgstr "" -#: src/pages/Index/Scan.tsx:540 +#: src/pages/Index/Scan.tsx:559 msgid "Add dummy item" msgstr "" +#: src/pages/Index/Scan.tsx:569 +msgid "Start scanning by selecting a camera and pressing the play button." +msgstr "" + +#: src/pages/Index/Scan.tsx:650 +msgid "Error while getting camera" +msgstr "" + +#: src/pages/Index/Scan.tsx:673 +msgid "Error while scanning" +msgstr "" + +#: src/pages/Index/Scan.tsx:687 +msgid "Error while stopping" +msgstr "" + +#: src/pages/Index/Scan.tsx:745 +msgid "Stop scanning" +msgstr "" + +#: src/pages/Index/Scan.tsx:754 +msgid "Start scanning" +msgstr "" + +#: src/pages/Index/Scan.tsx:763 +msgid "Scanning" +msgstr "" + +#: src/pages/Index/Scan.tsx:763 +msgid "Not scanning" +msgstr "" + +#: src/pages/Index/Scan.tsx:775 +msgid "Select Camera" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:28 +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:50 +msgid "Edit User Information" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:32 +msgid "User details updated" +msgstr "" + #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:41 -msgid "Account Details" +msgid "User Details" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:41 +#~ msgid "Account Details" +#~ msgstr "Account Details" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:44 +msgid "User Actions" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:48 +msgid "Edit User" msgstr "" #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:50 -msgid "First name" +#~ msgid "First name" +#~ msgstr "First name" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:54 +msgid "Set Password" msgstr "" #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:55 -msgid "Last name" +#~ msgid "Last name" +#~ msgstr "Last name" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:56 +msgid "Set User Password" msgstr "" #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:58 @@ -3495,15 +4194,28 @@ msgstr "" #~ msgstr "Last name: {0}" #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:67 -msgid "First name:" -msgstr "" +#~ msgid "First name:" +#~ msgstr "First name:" #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:71 -msgid "Last name:" +#~ msgid "Last name:" +#~ msgstr "Last name:" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:73 +msgid "First Name" msgstr "" -#: src/pages/Index/Settings/AccountSettings/DisplaySettingsPanel.tsx:41 -msgid "Use pseudo language" +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:79 +msgid "Last Name" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:85 +msgid "Staff Access" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:93 +#: src/tables/settings/UserTable.tsx:293 +msgid "Superuser" msgstr "" #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:55 @@ -3600,27 +4312,6 @@ msgstr "" msgid "No tokens configured" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:398 -#: src/pages/part/PartDetail.tsx:297 -#: src/tables/bom/UsedInTable.tsx:84 -#: src/tables/build/BuildOrderTable.tsx:110 -#: src/tables/company/CompanyTable.tsx:61 -#: src/tables/company/CompanyTable.tsx:95 -#: src/tables/machine/MachineListTable.tsx:332 -#: src/tables/machine/MachineListTable.tsx:594 -#: src/tables/part/ParametricPartTable.tsx:223 -#: src/tables/part/PartTable.tsx:178 -#: src/tables/part/PartVariantTable.tsx:15 -#: src/tables/plugin/PluginListTable.tsx:149 -#: src/tables/plugin/PluginListTable.tsx:271 -#: src/tables/plugin/PluginListTable.tsx:563 -#: src/tables/purchasing/SupplierPartTable.tsx:98 -#: src/tables/purchasing/SupplierPartTable.tsx:187 -#: src/tables/settings/UserTable.tsx:284 -#: src/tables/stock/StockItemTable.tsx:289 -msgid "Active" -msgstr "" - #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:401 msgid "Expiry" msgstr "" @@ -3630,38 +4321,74 @@ msgid "Last Seen" msgstr "" #: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:65 -msgid "bars" -msgstr "" +#~ msgid "bars" +#~ msgstr "bars" #: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:66 -msgid "oval" -msgstr "" +#~ msgid "oval" +#~ msgstr "oval" #: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:67 -msgid "dots" -msgstr "" +#~ msgid "dots" +#~ msgstr "dots" #: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:81 -msgid "Theme" -msgstr "" +#~ msgid "Theme" +#~ msgstr "Theme" #: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:87 -msgid "Primary color" +#~ msgid "Primary color" +#~ msgstr "Primary color" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:88 +msgid "Bars" msgstr "" -#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:100 +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:89 +msgid "Oval" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:90 +msgid "Dots" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:101 +msgid "Display Settings" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:107 +msgid "Language" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:115 +msgid "Use pseudo language" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:122 +msgid "Color Mode" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:133 +msgid "Highlight color" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:145 +msgid "Example" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:151 msgid "White color" msgstr "" -#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:108 +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:167 msgid "Black color" msgstr "" -#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:116 +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:183 msgid "Border Radius" msgstr "" -#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:132 +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:199 msgid "Loader" msgstr "" @@ -3673,89 +4400,156 @@ msgstr "" #~ msgid "Advanced Amininistrative Options for InvenTree" #~ msgstr "Advanced Amininistrative Options for InvenTree" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:104 +#: src/pages/Index/Settings/AdminCenter/CurrencyManagmentPanel.tsx:27 +#: src/tables/ColumnRenderers.tsx:262 +msgid "Currency" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/CurrencyManagmentPanel.tsx:32 +msgid "Rate" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/CurrencyManagmentPanel.tsx:44 +msgid "Exchange rates updated" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/CurrencyManagmentPanel.tsx:50 +msgid "Exchange rate update error" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/CurrencyManagmentPanel.tsx:62 +msgid "Refresh currency exchange rates" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/CurrencyManagmentPanel.tsx:99 +msgid "Last fetched" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/CurrencyManagmentPanel.tsx:100 +msgid "Base currency" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:115 msgid "Data Import" msgstr "" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:110 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:121 +msgid "Barcode Scans" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:127 msgid "Background Tasks" msgstr "" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:116 -msgid "Error Reports" -msgstr "" - -#: src/pages/Index/Settings/AdminCenter/Index.tsx:122 -msgid "Currencies" -msgstr "" - #: src/pages/Index/Settings/AdminCenter/Index.tsx:127 #~ msgid "Templates" #~ msgstr "Templates" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:140 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:133 +msgid "Error Reports" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:139 +msgid "Currencies" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:157 +msgid "Custom States" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:163 +#: src/pages/Index/Settings/AdminCenter/UnitManagmentPanel.tsx:58 msgid "Custom Units" msgstr "" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:146 -#: src/pages/part/CategoryDetail.tsx:264 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:169 +#: src/pages/part/CategoryDetail.tsx:269 msgid "Part Parameters" msgstr "" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:152 -msgid "Category Parameters" -msgstr "" - -#: src/pages/Index/Settings/AdminCenter/Index.tsx:170 -msgid "Location Types" -msgstr "" - #: src/pages/Index/Settings/AdminCenter/Index.tsx:170 #~ msgid "Location types" #~ msgstr "Location types" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:182 -#: src/tables/machine/MachineTypeTable.tsx:287 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:175 +msgid "Category Parameters" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:181 +msgid "Stocktake" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:199 +msgid "Location Types" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:211 +#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:48 +#: src/tables/machine/MachineTypeTable.tsx:308 msgid "Machines" msgstr "" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:192 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:221 msgid "Quick Actions" msgstr "" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:197 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:226 msgid "Add a new user" msgstr "" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:222 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:252 msgid "Advanced Options" msgstr "" #: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:43 -msgid "Machine types" -msgstr "" +#~ msgid "Machine types" +#~ msgstr "Machine types" #: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:53 -msgid "Machine Error Stack" +#~ msgid "Machine Error Stack" +#~ msgstr "Machine Error Stack" + +#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:56 +msgid "Machine Types" msgstr "" #: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:62 -msgid "There are no machine registry errors." +#~ msgid "There are no machine registry errors." +#~ msgstr "There are no machine registry errors." + +#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:64 +msgid "Machine Errors" msgstr "" -#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:28 -#: src/tables/settings/UserTable.tsx:119 +#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:77 +msgid "Registry Registry Errors" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:80 +msgid "There are machine registry errors" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:86 +msgid "Machine Registry Errors" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:89 +msgid "There are no machine registry errors" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:31 +#: src/tables/settings/UserTable.tsx:118 msgid "Info" msgstr "" -#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:32 -msgid "External plugins are not enabled for this InvenTree installation." -msgstr "" - #: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:33 #~ msgid "Plugin Error Stack" #~ msgstr "Plugin Error Stack" +#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:35 +msgid "External plugins are not enabled for this InvenTree installation." +msgstr "" + #: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:45 #~ msgid "Warning" #~ msgstr "Warning" @@ -3764,34 +4558,46 @@ msgstr "" #~ msgid "Changing the settings below require you to immediately restart the server. Do not change this while under active usage." #~ msgstr "Changing the settings below require you to immediately restart the server. Do not change this while under active usage." -#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:50 +#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:73 msgid "Plugin Errors" msgstr "" -#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:59 -msgid "Plugin Settings" +#: src/pages/Index/Settings/AdminCenter/ReportTemplatePanel.tsx:17 +msgid "Page Size" msgstr "" -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:53 -msgid "Background Worker Not Running" +#: src/pages/Index/Settings/AdminCenter/ReportTemplatePanel.tsx:20 +msgid "Landscape" msgstr "" -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:54 +#: src/pages/Index/Settings/AdminCenter/ReportTemplatePanel.tsx:26 +msgid "Attach to Model" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/StocktakePanel.tsx:25 +msgid "Stocktake Reports" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:30 msgid "The background task manager service is not running. Contact your system administrator." msgstr "" -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:60 -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:76 +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:35 +#~ msgid "Background Worker Not Running" +#~ msgstr "Background Worker Not Running" + +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:36 +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:45 msgid "Pending Tasks" msgstr "" -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:64 -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:84 +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:37 +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:53 msgid "Scheduled Tasks" msgstr "" -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:68 -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:92 +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:38 +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:61 msgid "Failed Tasks" msgstr "" @@ -3811,11 +4617,6 @@ msgstr "" #~ msgid "Reports" #~ msgstr "Reports" -#: src/pages/Index/Settings/AdminCenter/TemplateManagementPanel.tsx:89 -#: src/pages/build/BuildDetail.tsx:373 -#~ msgid "Report" -#~ msgstr "Report" - #: src/pages/Index/Settings/AdminCenter/TemplateManagementPanel.tsx:99 #~ msgid "Purchase order" #~ msgstr "Purchase order" @@ -3836,23 +4637,35 @@ msgstr "" #~ msgid "Stock location" #~ msgstr "Stock location" +#: src/pages/Index/Settings/AdminCenter/UnitManagmentPanel.tsx:21 +msgid "Alias" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/UnitManagmentPanel.tsx:22 +msgid "Dimensionless" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/UnitManagmentPanel.tsx:66 +msgid "All units" +msgstr "" + #: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:32 msgid "Select settings relevant for user lifecycle. More available in" msgstr "" #: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:37 -msgid "System settings" -msgstr "" +#~ msgid "System settings" +#~ msgstr "System settings" -#: src/pages/Index/Settings/SystemSettings.tsx:67 +#: src/pages/Index/Settings/SystemSettings.tsx:66 msgid "Login" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:93 +#: src/pages/Index/Settings/SystemSettings.tsx:92 msgid "Barcodes" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:115 +#: src/pages/Index/Settings/SystemSettings.tsx:116 msgid "Pricing" msgstr "" @@ -3864,64 +4677,46 @@ msgstr "" #~ msgid "Exchange Rates" #~ msgstr "Exchange Rates" -#: src/pages/Index/Settings/SystemSettings.tsx:150 +#: src/pages/Index/Settings/SystemSettings.tsx:151 msgid "Labels" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:156 -#: src/pages/Index/Settings/UserSettings.tsx:132 +#: src/pages/Index/Settings/SystemSettings.tsx:157 +#: src/pages/Index/Settings/UserSettings.tsx:133 msgid "Reporting" msgstr "" #: src/pages/Index/Settings/SystemSettings.tsx:231 -#: src/pages/part/PartDetail.tsx:682 -msgid "Stocktake" -msgstr "" - -#: src/pages/Index/Settings/SystemSettings.tsx:237 -#: src/pages/build/BuildDetail.tsx:554 -#: src/pages/build/BuildIndex.tsx:22 -#: src/pages/part/PartDetail.tsx:616 -#: src/pages/sales/SalesOrderDetail.tsx:333 +#: src/pages/build/BuildIndex.tsx:27 +#: src/pages/part/PartDetail.tsx:636 +#: src/pages/sales/SalesOrderDetail.tsx:355 msgid "Build Orders" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:318 -msgid "Switch to User Setting" -msgstr "" +#: src/pages/Index/Settings/SystemSettings.tsx:317 +#~ msgid "Switch to User Setting" +#~ msgstr "Switch to User Setting" -#: src/pages/Index/Settings/UserSettings.tsx:34 +#: src/pages/Index/Settings/UserSettings.tsx:35 msgid "Account" msgstr "" -#: src/pages/Index/Settings/UserSettings.tsx:40 +#: src/pages/Index/Settings/UserSettings.tsx:41 msgid "Security" msgstr "" -#: src/pages/Index/Settings/UserSettings.tsx:78 +#: src/pages/Index/Settings/UserSettings.tsx:79 msgid "Display Options" msgstr "" -#: src/pages/Index/Settings/UserSettings.tsx:150 -msgid "Account Settings" -msgstr "" - -#: src/pages/Index/Settings/UserSettings.tsx:158 -msgid "Switch to System Setting" -msgstr "" - -#: src/pages/Index/UserSettings.tsx:103 -#~ msgid "User Settings" -#~ msgstr "User Settings" +#: src/pages/Index/Settings/UserSettings.tsx:159 +#~ msgid "Switch to System Setting" +#~ msgstr "Switch to System Setting" #: src/pages/Logged-In.tsx:24 #~ msgid "Found an exsisting login - using it to log you in." #~ msgstr "Found an exsisting login - using it to log you in." -#: src/pages/NotFound.tsx:17 -#~ msgid "Not Found" -#~ msgstr "Not Found" - #: src/pages/NotFound.tsx:20 #~ msgid "Sorry, this page is not known or was moved." #~ msgstr "Sorry, this page is not known or was moved." @@ -3942,104 +4737,86 @@ msgstr "" #~ msgid "Build Status" #~ msgstr "Build Status" -#: src/pages/build/BuildDetail.tsx:102 -#: src/pages/part/PartDetail.tsx:150 +#: src/pages/build/BuildDetail.tsx:97 +#: src/pages/company/ManufacturerPartDetail.tsx:81 +#: src/pages/company/SupplierPartDetail.tsx:91 +#: src/pages/part/PartDetail.tsx:171 +#: src/pages/stock/StockDetail.tsx:122 #: src/tables/bom/BomTable.tsx:118 #: src/tables/bom/UsedInTable.tsx:39 -#: src/tables/build/BuildLineTable.tsx:173 -#: src/tables/build/BuildOrderTable.tsx:55 -#: src/tables/sales/SalesOrderLineItemTable.tsx:62 -#: src/tables/stock/StockItemTable.tsx:53 +#: src/tables/build/BuildAllocatedStockTable.tsx:104 +#: src/tables/build/BuildLineTable.tsx:324 +#: src/tables/build/BuildOrderTable.tsx:64 +#: src/tables/sales/SalesOrderLineItemTable.tsx:70 +#: src/tables/stock/StockItemTable.tsx:54 msgid "IPN" msgstr "" -#: src/pages/build/BuildDetail.tsx:115 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:121 -#: src/pages/sales/ReturnOrderDetail.tsx:95 -#: src/pages/sales/SalesOrderDetail.tsx:101 -#: src/tables/ColumnRenderers.tsx:121 -#: src/tables/build/BuildAllocatedStockTable.tsx:90 -#: src/tables/build/BuildLineTable.tsx:184 +#: src/pages/build/BuildDetail.tsx:110 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:115 +#: src/pages/sales/ReturnOrderDetail.tsx:86 +#: src/pages/sales/SalesOrderDetail.tsx:95 +#: src/tables/ColumnRenderers.tsx:132 +#: src/tables/build/BuildAllocatedStockTable.tsx:111 +#: src/tables/build/BuildLineTable.tsx:335 msgid "Reference" msgstr "" -#: src/pages/build/BuildDetail.tsx:121 -#: src/pages/company/CompanyDetail.tsx:90 -#: src/pages/company/ManufacturerPartDetail.tsx:83 -#: src/pages/company/SupplierPartDetail.tsx:96 -#: src/pages/part/CategoryDetail.tsx:101 -#: src/pages/part/PartDetail.tsx:157 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:142 -#: src/pages/sales/ReturnOrderDetail.tsx:115 -#: src/pages/sales/SalesOrderDetail.tsx:121 -#: src/pages/stock/LocationDetail.tsx:109 -#: src/tables/ColumnRenderers.tsx:81 -#: src/tables/bom/UsedInTable.tsx:44 -#: src/tables/build/BuildAllocatedStockTable.tsx:70 -#: src/tables/build/BuildLineTable.tsx:178 -#: src/tables/machine/MachineTypeTable.tsx:69 -#: src/tables/machine/MachineTypeTable.tsx:112 -#: src/tables/machine/MachineTypeTable.tsx:219 -#: src/tables/machine/MachineTypeTable.tsx:323 -#: src/tables/part/RelatedPartTable.tsx:64 -#: src/tables/plugin/PluginListTable.tsx:129 -#: src/tables/plugin/PluginListTable.tsx:276 -#: src/tables/sales/SalesOrderAllocationTable.tsx:56 -#: src/tables/sales/SalesOrderLineItemTable.tsx:67 -#: src/tables/stock/LocationTypesTable.tsx:74 -msgid "Description" -msgstr "" - -#: src/pages/build/BuildDetail.tsx:129 +#: src/pages/build/BuildDetail.tsx:124 msgid "Parent Build" msgstr "" -#: src/pages/build/BuildDetail.tsx:140 +#: src/pages/build/BuildDetail.tsx:135 msgid "Build Quantity" msgstr "" -#: src/pages/build/BuildDetail.tsx:148 -#: src/pages/build/BuildDetail.tsx:274 +#: src/pages/build/BuildDetail.tsx:143 +#: src/pages/build/BuildDetail.tsx:277 msgid "Completed Outputs" msgstr "" -#: src/pages/build/BuildDetail.tsx:165 -#: src/tables/build/BuildOrderTable.tsx:151 +#: src/pages/build/BuildDetail.tsx:160 +#: src/tables/build/BuildOrderTable.tsx:142 msgid "Issued By" msgstr "" -#: src/pages/build/BuildDetail.tsx:172 -#: src/pages/part/PartDetail.tsx:365 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:220 -#: src/pages/sales/ReturnOrderDetail.tsx:199 -#: src/pages/sales/SalesOrderDetail.tsx:208 -#: src/tables/build/BuildOrderTable.tsx:157 -#: src/tables/purchasing/PurchaseOrderTable.tsx:75 -#: src/tables/sales/ReturnOrderTable.tsx:66 -#: src/tables/sales/SalesOrderTable.tsx:73 +#: src/pages/build/BuildDetail.tsx:167 +#: src/pages/part/PartDetail.tsx:406 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:244 +#: src/pages/sales/ReturnOrderDetail.tsx:216 +#: src/pages/sales/SalesOrderDetail.tsx:226 +#: src/tables/build/BuildOrderTable.tsx:148 +#: src/tables/purchasing/PurchaseOrderTable.tsx:76 +#: src/tables/sales/ReturnOrderTable.tsx:74 +#: src/tables/sales/SalesOrderTable.tsx:74 msgid "Responsible" msgstr "" -#: src/pages/build/BuildDetail.tsx:179 -#: src/tables/settings/PendingTasksTable.tsx:32 +#: src/pages/build/BuildDetail.tsx:174 +#: src/tables/settings/PendingTasksTable.tsx:36 msgid "Created" msgstr "" +#: src/pages/build/BuildDetail.tsx:181 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:229 +#: src/pages/sales/ReturnOrderDetail.tsx:201 +#: src/pages/sales/SalesOrderDetail.tsx:212 +#: src/tables/ColumnRenderers.tsx:226 +#: src/tables/part/PartPurchaseOrdersTable.tsx:100 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:135 +#: src/tables/sales/SalesOrderLineItemTable.tsx:107 +msgid "Target Date" +msgstr "" + #: src/pages/build/BuildDetail.tsx:185 #: src/pages/part/PartDetail.tsx:269 #: src/pages/stock/StockDetail.tsx:150 #~ msgid "View part barcode" #~ msgstr "View part barcode" -#: src/pages/build/BuildDetail.tsx:186 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:213 -#: src/pages/sales/ReturnOrderDetail.tsx:192 -#: src/pages/sales/SalesOrderDetail.tsx:201 -#: src/tables/ColumnRenderers.tsx:212 -#: src/tables/part/PartPurchaseOrdersTable.tsx:99 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:110 -#: src/tables/sales/SalesOrderLineItemTable.tsx:99 -msgid "Target Date" +#: src/pages/build/BuildDetail.tsx:188 +#: src/tables/sales/SalesOrderLineItemTable.tsx:281 +msgid "Completed" msgstr "" #: src/pages/build/BuildDetail.tsx:190 @@ -4047,10 +4824,6 @@ msgstr "" #~ msgid "Link custom barcode to part" #~ msgstr "Link custom barcode to part" -#: src/pages/build/BuildDetail.tsx:193 -msgid "Completed" -msgstr "" - #: src/pages/build/BuildDetail.tsx:196 #: src/pages/part/PartDetail.tsx:280 #~ msgid "Unlink custom barcode from part" @@ -4060,15 +4833,11 @@ msgstr "" #~ msgid "Build Order updated" #~ msgstr "Build Order updated" -#: src/pages/build/BuildDetail.tsx:205 -msgid "Source Location" -msgstr "" - -#: src/pages/build/BuildDetail.tsx:206 +#: src/pages/build/BuildDetail.tsx:209 msgid "Any location" msgstr "" -#: src/pages/build/BuildDetail.tsx:213 +#: src/pages/build/BuildDetail.tsx:216 msgid "Destination Location" msgstr "" @@ -4084,206 +4853,182 @@ msgstr "" #~ msgid "Delete build order" #~ msgstr "Delete build order" -#: src/pages/build/BuildDetail.tsx:251 +#: src/pages/build/BuildDetail.tsx:254 msgid "Build Details" msgstr "" -#: src/pages/build/BuildDetail.tsx:257 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:258 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:267 -#: src/pages/sales/ReturnOrderDetail.tsx:130 -#: src/pages/sales/ReturnOrderDetail.tsx:237 -#: src/pages/sales/ReturnOrderDetail.tsx:246 -#: src/pages/sales/SalesOrderDetail.tsx:272 -#: src/pages/sales/SalesOrderDetail.tsx:281 +#: src/pages/build/BuildDetail.tsx:260 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:282 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:291 +#: src/pages/sales/ReturnOrderDetail.tsx:122 +#: src/pages/sales/ReturnOrderDetail.tsx:254 +#: src/pages/sales/ReturnOrderDetail.tsx:263 +#: src/pages/sales/SalesOrderDetail.tsx:294 +#: src/pages/sales/SalesOrderDetail.tsx:303 msgid "Line Items" msgstr "" -#: src/pages/build/BuildDetail.tsx:267 +#: src/pages/build/BuildDetail.tsx:266 msgid "Incomplete Outputs" msgstr "" -#: src/pages/build/BuildDetail.tsx:289 -#: src/pages/sales/SalesOrderDetail.tsx:319 +#: src/pages/build/BuildDetail.tsx:292 +#: src/pages/sales/SalesOrderDetail.tsx:341 msgid "Allocated Stock" msgstr "" -#: src/pages/build/BuildDetail.tsx:299 +#: src/pages/build/BuildDetail.tsx:302 msgid "Consumed Stock" msgstr "" -#: src/pages/build/BuildDetail.tsx:313 +#: src/pages/build/BuildDetail.tsx:316 msgid "Child Build Orders" msgstr "" #: src/pages/build/BuildDetail.tsx:326 -#: src/tables/build/BuildOutputTable.tsx:384 -#: src/tables/stock/StockItemTestResultTable.tsx:150 +#: src/tables/build/BuildOutputTable.tsx:532 +#: src/tables/stock/StockItemTestResultTable.tsx:156 msgid "Test Results" msgstr "" #: src/pages/build/BuildDetail.tsx:337 -#: src/pages/part/PartDetail.tsx:699 +#: src/pages/part/PartDetail.tsx:740 msgid "Test Statistics" msgstr "" -#: src/pages/build/BuildDetail.tsx:351 -#: src/pages/company/CompanyDetail.tsx:259 -#: src/pages/company/ManufacturerPartDetail.tsx:179 -#: src/pages/part/PartDetail.tsx:721 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:309 -#: src/pages/sales/ReturnOrderDetail.tsx:274 -#: src/pages/sales/SalesOrderDetail.tsx:343 -#: src/pages/stock/StockDetail.tsx:385 -msgid "Attachments" -msgstr "" - -#: src/pages/build/BuildDetail.tsx:359 -#: src/pages/company/CompanyDetail.tsx:270 -#: src/pages/company/ManufacturerPartDetail.tsx:190 -#: src/pages/company/SupplierPartDetail.tsx:257 -#: src/pages/part/PartDetail.tsx:729 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:320 -#: src/pages/sales/ReturnOrderDetail.tsx:285 -#: src/pages/sales/SalesOrderDetail.tsx:354 -#: src/pages/stock/StockDetail.tsx:396 -#: src/tables/build/BuildOrderTestTable.tsx:142 -#: src/tables/stock/StockTrackingTable.tsx:189 -msgid "Notes" +#: src/pages/build/BuildDetail.tsx:365 +msgid "Edit Build Order" msgstr "" #: src/pages/build/BuildDetail.tsx:368 #~ msgid "Reporting Actions" #~ msgstr "Reporting Actions" +#: src/pages/build/BuildDetail.tsx:372 +#: src/tables/build/BuildOrderTable.tsx:173 +#: src/tables/build/BuildOrderTable.tsx:188 +msgid "Add Build Order" +msgstr "" + #: src/pages/build/BuildDetail.tsx:374 #~ msgid "Print build report" #~ msgstr "Print build report" -#: src/pages/build/BuildDetail.tsx:377 -msgid "Edit Build Order" -msgstr "" - -#: src/pages/build/BuildDetail.tsx:384 -#: src/tables/build/BuildOrderTable.tsx:172 -#: src/tables/build/BuildOrderTable.tsx:187 -msgid "Add Build Order" -msgstr "" - -#: src/pages/build/BuildDetail.tsx:398 +#: src/pages/build/BuildDetail.tsx:386 msgid "Cancel Build Order" msgstr "" -#: src/pages/build/BuildDetail.tsx:400 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:348 -#: src/pages/sales/SalesOrderDetail.tsx:380 +#: src/pages/build/BuildDetail.tsx:388 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:357 +#: src/pages/sales/ReturnOrderDetail.tsx:354 +#: src/pages/sales/SalesOrderDetail.tsx:387 msgid "Order cancelled" msgstr "" -#: src/pages/build/BuildDetail.tsx:401 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:347 -#: src/pages/sales/ReturnOrderDetail.tsx:346 -#: src/pages/sales/SalesOrderDetail.tsx:379 +#: src/pages/build/BuildDetail.tsx:389 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:356 +#: src/pages/sales/ReturnOrderDetail.tsx:353 +#: src/pages/sales/SalesOrderDetail.tsx:386 msgid "Cancel this order" msgstr "" -#: src/pages/build/BuildDetail.tsx:410 +#: src/pages/build/BuildDetail.tsx:398 msgid "Hold Build Order" msgstr "" -#: src/pages/build/BuildDetail.tsx:412 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:355 -#: src/pages/sales/ReturnOrderDetail.tsx:354 -#: src/pages/sales/SalesOrderDetail.tsx:387 +#: src/pages/build/BuildDetail.tsx:400 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:364 +#: src/pages/sales/ReturnOrderDetail.tsx:361 +#: src/pages/sales/SalesOrderDetail.tsx:394 msgid "Place this order on hold" msgstr "" -#: src/pages/build/BuildDetail.tsx:413 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:356 -#: src/pages/sales/ReturnOrderDetail.tsx:355 -#: src/pages/sales/SalesOrderDetail.tsx:388 +#: src/pages/build/BuildDetail.tsx:401 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:365 +#: src/pages/sales/ReturnOrderDetail.tsx:362 +#: src/pages/sales/SalesOrderDetail.tsx:395 msgid "Order placed on hold" msgstr "" -#: src/pages/build/BuildDetail.tsx:418 +#: src/pages/build/BuildDetail.tsx:406 msgid "Issue Build Order" msgstr "" -#: src/pages/build/BuildDetail.tsx:420 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:339 -#: src/pages/sales/ReturnOrderDetail.tsx:338 -#: src/pages/sales/SalesOrderDetail.tsx:371 +#: src/pages/build/BuildDetail.tsx:408 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:348 +#: src/pages/sales/ReturnOrderDetail.tsx:345 +#: src/pages/sales/SalesOrderDetail.tsx:378 msgid "Issue this order" msgstr "" -#: src/pages/build/BuildDetail.tsx:421 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:340 -#: src/pages/sales/ReturnOrderDetail.tsx:339 -#: src/pages/sales/SalesOrderDetail.tsx:372 +#: src/pages/build/BuildDetail.tsx:409 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:349 +#: src/pages/sales/ReturnOrderDetail.tsx:346 +#: src/pages/sales/SalesOrderDetail.tsx:379 msgid "Order issued" msgstr "" -#: src/pages/build/BuildDetail.tsx:426 +#: src/pages/build/BuildDetail.tsx:414 msgid "Complete Build Order" msgstr "" -#: src/pages/build/BuildDetail.tsx:428 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:368 -#: src/pages/sales/ReturnOrderDetail.tsx:362 -#: src/pages/sales/SalesOrderDetail.tsx:395 +#: src/pages/build/BuildDetail.tsx:416 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:377 +#: src/pages/sales/ReturnOrderDetail.tsx:369 +#: src/pages/sales/SalesOrderDetail.tsx:402 msgid "Mark this order as complete" msgstr "" -#: src/pages/build/BuildDetail.tsx:429 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:362 -#: src/pages/sales/ReturnOrderDetail.tsx:363 -#: src/pages/sales/SalesOrderDetail.tsx:396 +#: src/pages/build/BuildDetail.tsx:417 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:371 +#: src/pages/sales/ReturnOrderDetail.tsx:370 +#: src/pages/sales/SalesOrderDetail.tsx:403 msgid "Order completed" msgstr "" -#: src/pages/build/BuildDetail.tsx:460 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:391 -#: src/pages/sales/ReturnOrderDetail.tsx:392 -#: src/pages/sales/SalesOrderDetail.tsx:425 +#: src/pages/build/BuildDetail.tsx:448 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:400 +#: src/pages/sales/ReturnOrderDetail.tsx:399 +#: src/pages/sales/SalesOrderDetail.tsx:432 msgid "Issue Order" msgstr "" -#: src/pages/build/BuildDetail.tsx:467 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:398 -#: src/pages/sales/ReturnOrderDetail.tsx:399 -#: src/pages/sales/SalesOrderDetail.tsx:439 +#: src/pages/build/BuildDetail.tsx:455 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:407 +#: src/pages/sales/ReturnOrderDetail.tsx:406 +#: src/pages/sales/SalesOrderDetail.tsx:446 msgid "Complete Order" msgstr "" -#: src/pages/build/BuildDetail.tsx:496 +#: src/pages/build/BuildDetail.tsx:473 msgid "Build Order Actions" msgstr "" -#: src/pages/build/BuildDetail.tsx:502 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:432 -#: src/pages/sales/ReturnOrderDetail.tsx:433 -#: src/pages/sales/SalesOrderDetail.tsx:474 +#: src/pages/build/BuildDetail.tsx:478 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:429 +#: src/pages/sales/ReturnOrderDetail.tsx:428 +#: src/pages/sales/SalesOrderDetail.tsx:469 msgid "Edit order" msgstr "" -#: src/pages/build/BuildDetail.tsx:506 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:440 -#: src/pages/sales/ReturnOrderDetail.tsx:439 -#: src/pages/sales/SalesOrderDetail.tsx:479 +#: src/pages/build/BuildDetail.tsx:482 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:437 +#: src/pages/sales/ReturnOrderDetail.tsx:434 +#: src/pages/sales/SalesOrderDetail.tsx:474 msgid "Duplicate order" msgstr "" -#: src/pages/build/BuildDetail.tsx:510 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:443 -#: src/pages/sales/ReturnOrderDetail.tsx:444 -#: src/pages/sales/SalesOrderDetail.tsx:482 +#: src/pages/build/BuildDetail.tsx:486 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:440 +#: src/pages/sales/ReturnOrderDetail.tsx:439 +#: src/pages/sales/SalesOrderDetail.tsx:477 msgid "Hold order" msgstr "" -#: src/pages/build/BuildDetail.tsx:515 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:448 -#: src/pages/sales/ReturnOrderDetail.tsx:449 -#: src/pages/sales/SalesOrderDetail.tsx:487 +#: src/pages/build/BuildDetail.tsx:491 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:445 +#: src/pages/sales/ReturnOrderDetail.tsx:444 +#: src/pages/sales/SalesOrderDetail.tsx:482 msgid "Cancel order" msgstr "" @@ -4295,56 +5040,60 @@ msgstr "" #~ msgid "New Build Order" #~ msgstr "New Build Order" -#: src/pages/company/CompanyDetail.tsx:104 +#: src/pages/company/CompanyDetail.tsx:95 +msgid "Website" +msgstr "" + +#: src/pages/company/CompanyDetail.tsx:103 msgid "Phone Number" msgstr "" -#: src/pages/company/CompanyDetail.tsx:111 +#: src/pages/company/CompanyDetail.tsx:110 msgid "Email Address" msgstr "" -#: src/pages/company/CompanyDetail.tsx:121 +#: src/pages/company/CompanyDetail.tsx:120 msgid "Default Currency" msgstr "" -#: src/pages/company/CompanyDetail.tsx:126 +#: src/pages/company/CompanyDetail.tsx:125 #: src/pages/company/SupplierDetail.tsx:8 -#: src/pages/company/SupplierPartDetail.tsx:120 -#: src/pages/company/SupplierPartDetail.tsx:206 -#: src/pages/company/SupplierPartDetail.tsx:351 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:136 -#: src/tables/company/CompanyTable.tsx:100 +#: src/pages/company/SupplierPartDetail.tsx:125 +#: src/pages/company/SupplierPartDetail.tsx:218 +#: src/pages/company/SupplierPartDetail.tsx:340 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:130 +#: src/tables/company/CompanyTable.tsx:101 #: src/tables/part/PartPurchaseOrdersTable.tsx:42 -#: src/tables/purchasing/PurchaseOrderTable.tsx:88 +#: src/tables/purchasing/PurchaseOrderTable.tsx:89 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:36 msgid "Supplier" msgstr "" -#: src/pages/company/CompanyDetail.tsx:132 +#: src/pages/company/CompanyDetail.tsx:131 #: src/pages/company/ManufacturerDetail.tsx:8 -#: src/pages/company/ManufacturerPartDetail.tsx:101 -#: src/pages/company/ManufacturerPartDetail.tsx:267 -#: src/pages/company/SupplierPartDetail.tsx:135 -#: src/tables/company/CompanyTable.tsx:105 +#: src/pages/company/ManufacturerPartDetail.tsx:100 +#: src/pages/company/ManufacturerPartDetail.tsx:262 +#: src/pages/company/SupplierPartDetail.tsx:147 +#: src/tables/company/CompanyTable.tsx:106 msgid "Manufacturer" msgstr "" -#: src/pages/company/CompanyDetail.tsx:138 +#: src/pages/company/CompanyDetail.tsx:137 #: src/pages/company/CustomerDetail.tsx:8 -#: src/pages/part/pricing/SaleHistoryPanel.tsx:29 -#: src/pages/sales/ReturnOrderDetail.tsx:109 -#: src/pages/sales/SalesOrderDetail.tsx:115 -#: src/pages/stock/StockDetail.tsx:230 -#: src/tables/company/CompanyTable.tsx:110 -#: src/tables/sales/ReturnOrderTable.tsx:78 -#: src/tables/sales/SalesOrderTable.tsx:108 -#: src/tables/stock/StockTrackingTable.tsx:140 +#: src/pages/part/pricing/SaleHistoryPanel.tsx:31 +#: src/pages/sales/ReturnOrderDetail.tsx:101 +#: src/pages/sales/SalesOrderDetail.tsx:110 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:100 +#: src/pages/stock/StockDetail.tsx:271 +#: src/tables/company/CompanyTable.tsx:111 +#: src/tables/sales/ReturnOrderTable.tsx:97 +#: src/tables/sales/SalesOrderTable.tsx:121 +#: src/tables/stock/StockTrackingTable.tsx:144 msgid "Customer" msgstr "" #: src/pages/company/CompanyDetail.tsx:172 -#: src/tables/stock/StockTrackingTable.tsx:183 -msgid "Details" +msgid "Company Details" msgstr "" #: src/pages/company/CompanyDetail.tsx:175 @@ -4363,140 +5112,150 @@ msgstr "" #~ msgid "Delete company" #~ msgstr "Delete company" -#: src/pages/company/CompanyDetail.tsx:232 +#: src/pages/company/CompanyDetail.tsx:234 msgid "Assigned Stock" msgstr "" -#: src/pages/company/CompanyDetail.tsx:290 -#: src/tables/company/CompanyTable.tsx:86 +#: src/pages/company/CompanyDetail.tsx:273 +#: src/tables/company/CompanyTable.tsx:87 msgid "Edit Company" msgstr "" -#: src/pages/company/CompanyDetail.tsx:298 +#: src/pages/company/CompanyDetail.tsx:281 msgid "Delete Company" msgstr "" -#: src/pages/company/CompanyDetail.tsx:306 +#: src/pages/company/CompanyDetail.tsx:289 msgid "Company Actions" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:76 -#: src/pages/company/SupplierPartDetail.tsx:89 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:128 +#: src/pages/company/ManufacturerPartDetail.tsx:74 +#: src/pages/company/SupplierPartDetail.tsx:84 msgid "Internal Part" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:91 -#: src/pages/company/SupplierPartDetail.tsx:103 -msgid "External Link" -msgstr "" - -#: src/pages/company/ManufacturerPartDetail.tsx:109 -#: src/pages/company/SupplierPartDetail.tsx:144 -#: src/tables/purchasing/ManufacturerPartTable.tsx:56 +#: src/pages/company/ManufacturerPartDetail.tsx:108 +#: src/pages/company/SupplierPartDetail.tsx:156 +#: src/tables/purchasing/ManufacturerPartTable.tsx:58 msgid "Manufacturer Part Number" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:138 +#: src/pages/company/ManufacturerPartDetail.tsx:125 +#: src/pages/company/SupplierPartDetail.tsx:108 +msgid "External Link" +msgstr "" + +#: src/pages/company/ManufacturerPartDetail.tsx:146 +#: src/pages/company/SupplierPartDetail.tsx:215 +#: src/pages/part/PartDetail.tsx:576 +msgid "Part Details" +msgstr "" + +#: src/pages/company/ManufacturerPartDetail.tsx:149 msgid "Manufacturer Details" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:147 +#: src/pages/company/ManufacturerPartDetail.tsx:158 msgid "Manufacturer Part Details" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:153 -#: src/pages/part/PartDetail.tsx:532 +#: src/pages/company/ManufacturerPartDetail.tsx:164 +#: src/pages/part/PartDetail.tsx:582 msgid "Parameters" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:165 -#: src/pages/part/PartDetail.tsx:649 +#: src/pages/company/ManufacturerPartDetail.tsx:176 +#: src/pages/part/PartDetail.tsx:669 #: src/pages/purchasing/PurchasingIndex.tsx:31 msgid "Suppliers" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:208 -#: src/tables/purchasing/ManufacturerPartTable.tsx:84 +#: src/pages/company/ManufacturerPartDetail.tsx:204 +#: src/tables/purchasing/ManufacturerPartTable.tsx:86 msgid "Edit Manufacturer Part" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:215 -#: src/tables/purchasing/ManufacturerPartTable.tsx:72 -#: src/tables/purchasing/ManufacturerPartTable.tsx:103 +#: src/pages/company/ManufacturerPartDetail.tsx:211 +#: src/tables/purchasing/ManufacturerPartTable.tsx:74 +#: src/tables/purchasing/ManufacturerPartTable.tsx:106 msgid "Add Manufacturer Part" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:227 -#: src/tables/purchasing/ManufacturerPartTable.tsx:92 +#: src/pages/company/ManufacturerPartDetail.tsx:223 +#: src/tables/purchasing/ManufacturerPartTable.tsx:94 msgid "Delete Manufacturer Part" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:240 +#: src/pages/company/ManufacturerPartDetail.tsx:236 msgid "Manufacturer Part Actions" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:281 +#: src/pages/company/ManufacturerPartDetail.tsx:276 msgid "ManufacturerPart" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:163 -#: src/tables/part/PartPurchaseOrdersTable.tsx:71 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:156 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:197 -#: src/tables/purchasing/SupplierPartTable.tsx:131 +#: src/pages/company/SupplierPartDetail.tsx:99 +msgid "Part Description" +msgstr "" + +#: src/pages/company/SupplierPartDetail.tsx:175 +#: src/tables/part/PartPurchaseOrdersTable.tsx:72 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:162 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:203 +#: src/tables/purchasing/SupplierPartTable.tsx:133 msgid "Pack Quantity" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:174 +#: src/pages/company/SupplierPartDetail.tsx:186 msgid "Supplier Availability" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:181 +#: src/pages/company/SupplierPartDetail.tsx:193 msgid "Availability Updated" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:208 +#: src/pages/company/SupplierPartDetail.tsx:220 msgid "Availability" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:217 +#: src/pages/company/SupplierPartDetail.tsx:229 msgid "Supplier Part Details" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:223 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:296 +#: src/pages/company/SupplierPartDetail.tsx:235 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:320 msgid "Received Stock" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:247 -#: src/pages/part/PartPricingPanel.tsx:111 -#: src/pages/part/pricing/PricingOverviewPanel.tsx:121 +#: src/pages/company/SupplierPartDetail.tsx:259 +#: src/pages/part/PartPricingPanel.tsx:116 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:195 msgid "Supplier Pricing" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:294 +#: src/pages/company/SupplierPartDetail.tsx:284 msgid "Supplier Part Actions" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:319 -#: src/tables/purchasing/SupplierPartTable.tsx:210 +#: src/pages/company/SupplierPartDetail.tsx:308 +#: src/tables/purchasing/SupplierPartTable.tsx:213 msgid "Edit Supplier Part" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:327 -#: src/tables/purchasing/SupplierPartTable.tsx:218 +#: src/pages/company/SupplierPartDetail.tsx:316 +#: src/tables/purchasing/SupplierPartTable.tsx:221 msgid "Delete Supplier Part" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:335 -#: src/tables/purchasing/SupplierPartTable.tsx:163 +#: src/pages/company/SupplierPartDetail.tsx:324 +#: src/tables/purchasing/SupplierPartTable.tsx:165 msgid "Add Supplier Part" msgstr "" #: src/pages/part/CategoryDetail.tsx:93 -#: src/pages/stock/LocationDetail.tsx:101 -#: src/tables/settings/ErrorTable.tsx:36 +#: src/pages/stock/LocationDetail.tsx:95 +#: src/tables/settings/ErrorTable.tsx:63 +#: src/tables/settings/ErrorTable.tsx:108 msgid "Path" msgstr "" @@ -4504,357 +5263,357 @@ msgstr "" msgid "Parent Category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:126 +#: src/pages/part/CategoryDetail.tsx:132 msgid "Subcategories" msgstr "" -#: src/pages/part/CategoryDetail.tsx:133 -#: src/pages/stock/LocationDetail.tsx:141 -#: src/tables/part/PartCategoryTable.tsx:73 +#: src/pages/part/CategoryDetail.tsx:139 +#: src/pages/stock/LocationDetail.tsx:135 +#: src/tables/part/PartCategoryTable.tsx:85 #: src/tables/stock/StockLocationTable.tsx:49 msgid "Structural" msgstr "" -#: src/pages/part/CategoryDetail.tsx:139 +#: src/pages/part/CategoryDetail.tsx:145 msgid "Parent default location" msgstr "" -#: src/pages/part/CategoryDetail.tsx:146 +#: src/pages/part/CategoryDetail.tsx:152 msgid "Default location" msgstr "" -#: src/pages/part/CategoryDetail.tsx:157 +#: src/pages/part/CategoryDetail.tsx:163 msgid "Top level part category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:167 -#: src/pages/part/CategoryDetail.tsx:221 -#: src/tables/part/PartCategoryTable.tsx:102 +#: src/pages/part/CategoryDetail.tsx:173 +#: src/pages/part/CategoryDetail.tsx:226 +#: src/tables/part/PartCategoryTable.tsx:118 msgid "Edit Part Category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:180 -#: src/pages/stock/LocationDetail.tsx:233 +#: src/pages/part/CategoryDetail.tsx:186 +#: src/pages/stock/LocationDetail.tsx:227 msgid "Delete items" msgstr "" -#: src/pages/part/CategoryDetail.tsx:188 -#: src/pages/part/CategoryDetail.tsx:226 +#: src/pages/part/CategoryDetail.tsx:194 +#: src/pages/part/CategoryDetail.tsx:231 msgid "Delete Part Category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:191 +#: src/pages/part/CategoryDetail.tsx:197 msgid "Parts Action" msgstr "" -#: src/pages/part/CategoryDetail.tsx:192 +#: src/pages/part/CategoryDetail.tsx:198 msgid "Action for parts in this category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:197 +#: src/pages/part/CategoryDetail.tsx:203 msgid "Child Categories Action" msgstr "" -#: src/pages/part/CategoryDetail.tsx:198 +#: src/pages/part/CategoryDetail.tsx:204 msgid "Action for child categories in this category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:216 +#: src/pages/part/CategoryDetail.tsx:222 msgid "Category Actions" msgstr "" -#: src/pages/part/CategoryDetail.tsx:238 +#: src/pages/part/CategoryDetail.tsx:243 msgid "Category Details" msgstr "" -#: src/pages/part/PartDetail.tsx:163 -msgid "Variant of" +#: src/pages/part/PartAllocationPanel.tsx:23 +#: src/pages/stock/StockDetail.tsx:443 +#: src/tables/part/PartTable.tsx:99 +msgid "Build Order Allocations" msgstr "" -#: src/pages/part/PartDetail.tsx:170 -msgid "Revision of" -msgstr "" - -#: src/pages/part/PartDetail.tsx:177 -#: src/tables/stock/StockItemTable.tsx:58 -msgid "Revision" +#: src/pages/part/PartAllocationPanel.tsx:40 +#: src/pages/stock/StockDetail.tsx:458 +#: src/tables/part/PartTable.tsx:108 +msgid "Sales Order Allocations" msgstr "" #: src/pages/part/PartDetail.tsx:184 +msgid "Variant of" +msgstr "" + +#: src/pages/part/PartDetail.tsx:191 +msgid "Revision of" +msgstr "" + +#: src/pages/part/PartDetail.tsx:198 +#: src/tables/stock/StockItemTable.tsx:59 +msgid "Revision" +msgstr "" + +#: src/pages/part/PartDetail.tsx:205 #: src/tables/notifications/NotificationsTable.tsx:31 #: src/tables/part/PartCategoryTemplateTable.tsx:67 msgid "Category" msgstr "" -#: src/pages/part/PartDetail.tsx:190 +#: src/pages/part/PartDetail.tsx:211 msgid "Default Location" msgstr "" -#: src/pages/part/PartDetail.tsx:197 +#: src/pages/part/PartDetail.tsx:218 msgid "Category Default Location" msgstr "" -#: src/pages/part/PartDetail.tsx:204 +#: src/pages/part/PartDetail.tsx:225 #: src/tables/purchasing/ManufacturerPartParameterTable.tsx:44 msgid "Units" msgstr "" -#: src/pages/part/PartDetail.tsx:211 -#: src/tables/settings/PendingTasksTable.tsx:42 +#: src/pages/part/PartDetail.tsx:232 +#: src/tables/settings/PendingTasksTable.tsx:46 msgid "Keywords" msgstr "" -#: src/pages/part/PartDetail.tsx:218 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:186 -#: src/pages/sales/ReturnOrderDetail.tsx:165 -#: src/pages/sales/SalesOrderDetail.tsx:174 -msgid "Link" -msgstr "" - -#: src/pages/part/PartDetail.tsx:236 +#: src/pages/part/PartDetail.tsx:257 #: src/tables/bom/BomTable.tsx:320 -#: src/tables/build/BuildLineTable.tsx:155 +#: src/tables/build/BuildLineTable.tsx:286 #: src/tables/part/PartTable.tsx:288 -#: src/tables/sales/SalesOrderLineItemTable.tsx:103 +#: src/tables/sales/SalesOrderLineItemTable.tsx:111 msgid "Available Stock" msgstr "" -#: src/pages/part/PartDetail.tsx:243 +#: src/pages/part/PartDetail.tsx:264 msgid "Variant Stock" msgstr "" -#: src/pages/part/PartDetail.tsx:251 +#: src/pages/part/PartDetail.tsx:272 msgid "Minimum Stock" msgstr "" -#: src/pages/part/PartDetail.tsx:257 +#: src/pages/part/PartDetail.tsx:278 #: src/tables/bom/BomTable.tsx:237 -#: src/tables/build/BuildLineTable.tsx:117 -#: src/tables/sales/SalesOrderLineItemTable.tsx:141 +#: src/tables/build/BuildLineTable.tsx:248 +#: src/tables/sales/SalesOrderLineItemTable.tsx:149 msgid "On order" msgstr "" -#: src/pages/part/PartDetail.tsx:266 +#: src/pages/part/PartDetail.tsx:285 +msgid "Required for Orders" +msgstr "" + +#: src/pages/part/PartDetail.tsx:294 msgid "Allocated to Build Orders" msgstr "" -#: src/pages/part/PartDetail.tsx:274 +#: src/pages/part/PartDetail.tsx:305 msgid "Allocated to Sales Orders" msgstr "" -#: src/pages/part/PartDetail.tsx:281 -#: src/tables/bom/BomTable.tsx:261 -#: src/tables/bom/BomTable.tsx:293 -msgid "Can Build" -msgstr "" - -#: src/pages/part/PartDetail.tsx:288 -#: src/tables/bom/BomTable.tsx:245 -#: src/tables/part/PartTable.tsx:92 -msgid "Building" -msgstr "" - -#: src/pages/part/PartDetail.tsx:302 -#: src/pages/part/PartDetail.tsx:873 -#: src/tables/part/ParametricPartTable.tsx:228 -#: src/tables/part/PartTable.tsx:184 -msgid "Locked" -msgstr "" - -#: src/pages/part/PartDetail.tsx:308 -msgid "Template Part" -msgstr "" - #: src/pages/part/PartDetail.tsx:310 #~ msgid "Edit part" #~ msgstr "Edit part" -#: src/pages/part/PartDetail.tsx:313 -#: src/tables/bom/BomTable.tsx:315 -msgid "Assembled Part" +#: src/pages/part/PartDetail.tsx:315 +#: src/tables/bom/BomTable.tsx:261 +#: src/tables/bom/BomTable.tsx:293 +msgid "Can Build" msgstr "" -#: src/pages/part/PartDetail.tsx:318 -msgid "Component Part" +#: src/pages/part/PartDetail.tsx:322 +#: src/pages/part/PartDetail.tsx:905 +#: src/pages/stock/StockDetail.tsx:766 +#: src/tables/build/BuildOrderTestTable.tsx:220 +#: src/tables/stock/StockItemTable.tsx:334 +msgid "In Production" msgstr "" #: src/pages/part/PartDetail.tsx:322 #~ msgid "Duplicate part" #~ msgstr "Duplicate part" -#: src/pages/part/PartDetail.tsx:323 -#: src/tables/bom/BomTable.tsx:305 -msgid "Testable Part" -msgstr "" - #: src/pages/part/PartDetail.tsx:327 #~ msgid "Delete part" #~ msgstr "Delete part" -#: src/pages/part/PartDetail.tsx:329 +#: src/pages/part/PartDetail.tsx:336 +#: src/tables/part/ParametricPartTable.tsx:228 +#: src/tables/part/PartTable.tsx:184 +msgid "Locked" +msgstr "" + +#: src/pages/part/PartDetail.tsx:342 +msgid "Template Part" +msgstr "" + +#: src/pages/part/PartDetail.tsx:347 +#: src/tables/bom/BomTable.tsx:315 +msgid "Assembled Part" +msgstr "" + +#: src/pages/part/PartDetail.tsx:352 +msgid "Component Part" +msgstr "" + +#: src/pages/part/PartDetail.tsx:357 +#: src/tables/bom/BomTable.tsx:305 +msgid "Testable Part" +msgstr "" + +#: src/pages/part/PartDetail.tsx:363 #: src/tables/bom/BomTable.tsx:310 msgid "Trackable Part" msgstr "" -#: src/pages/part/PartDetail.tsx:334 +#: src/pages/part/PartDetail.tsx:368 msgid "Purchaseable Part" msgstr "" -#: src/pages/part/PartDetail.tsx:339 +#: src/pages/part/PartDetail.tsx:374 msgid "Saleable Part" msgstr "" -#: src/pages/part/PartDetail.tsx:344 +#: src/pages/part/PartDetail.tsx:379 msgid "Virtual Part" msgstr "" -#: src/pages/part/PartDetail.tsx:352 -#: src/tables/ColumnRenderers.tsx:220 +#: src/pages/part/PartDetail.tsx:393 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:215 +#: src/pages/sales/ReturnOrderDetail.tsx:185 +#: src/pages/sales/SalesOrderDetail.tsx:197 +#: src/tables/ColumnRenderers.tsx:234 msgid "Creation Date" msgstr "" -#: src/pages/part/PartDetail.tsx:357 +#: src/pages/part/PartDetail.tsx:398 msgid "Created By" msgstr "" -#: src/pages/part/PartDetail.tsx:372 +#: src/pages/part/PartDetail.tsx:413 msgid "Default Supplier" msgstr "" -#: src/pages/part/PartDetail.tsx:383 -#: src/pages/part/pricing/BomPricingPanel.tsx:79 +#: src/pages/part/PartDetail.tsx:424 +#: src/pages/part/pricing/BomPricingPanel.tsx:113 #: src/pages/part/pricing/VariantPricingPanel.tsx:95 #: src/tables/part/PartTable.tsx:161 msgid "Price Range" msgstr "" -#: src/pages/part/PartDetail.tsx:423 -#: src/pages/stock/StockDetail.tsx:135 +#: src/pages/part/PartDetail.tsx:462 +msgid "Latest Serial Number" +msgstr "" + +#: src/pages/part/PartDetail.tsx:472 +#: src/pages/stock/StockDetail.tsx:151 msgid "Last Stocktake" msgstr "" -#: src/pages/part/PartDetail.tsx:462 +#: src/pages/part/PartDetail.tsx:511 msgid "Stocktake By" msgstr "" -#: src/pages/part/PartDetail.tsx:526 -msgid "Part Details" -msgstr "" - -#: src/pages/part/PartDetail.tsx:557 +#: src/pages/part/PartDetail.tsx:611 msgid "Variants" msgstr "" -#: src/pages/part/PartDetail.tsx:564 -#: src/pages/stock/StockDetail.tsx:307 +#: src/pages/part/PartDetail.tsx:618 +#: src/pages/stock/StockDetail.tsx:430 msgid "Allocations" msgstr "" -#: src/pages/part/PartDetail.tsx:575 -#: src/pages/stock/StockDetail.tsx:318 -#: src/tables/part/PartTable.tsx:99 -msgid "Build Order Allocations" -msgstr "" - -#: src/pages/part/PartDetail.tsx:590 -#: src/pages/stock/StockDetail.tsx:333 -#: src/tables/part/PartTable.tsx:108 -msgid "Sales Order Allocations" -msgstr "" - -#: src/pages/part/PartDetail.tsx:607 +#: src/pages/part/PartDetail.tsx:625 msgid "Bill of Materials" msgstr "" -#: src/pages/part/PartDetail.tsx:623 +#: src/pages/part/PartDetail.tsx:643 msgid "Used In" msgstr "" -#: src/pages/part/PartDetail.tsx:630 +#: src/pages/part/PartDetail.tsx:650 msgid "Part Pricing" msgstr "" -#: src/pages/part/PartDetail.tsx:636 +#: src/pages/part/PartDetail.tsx:656 #: src/pages/purchasing/PurchasingIndex.tsx:42 msgid "Manufacturers" msgstr "" -#: src/pages/part/PartDetail.tsx:676 +#: src/pages/part/PartDetail.tsx:722 msgid "Scheduling" msgstr "" -#: src/pages/part/PartDetail.tsx:688 +#: src/pages/part/PartDetail.tsx:729 msgid "Test Templates" msgstr "" -#: src/pages/part/PartDetail.tsx:715 +#: src/pages/part/PartDetail.tsx:756 msgid "Related Parts" msgstr "" -#: src/pages/part/PartDetail.tsx:849 -#: src/pages/stock/StockDetail.tsx:156 -#: src/pages/stock/StockDetail.tsx:593 -#: src/tables/build/BuildLineTable.tsx:48 +#: src/pages/part/PartDetail.tsx:881 +#: src/pages/stock/StockDetail.tsx:172 +#: src/pages/stock/StockDetail.tsx:783 +#: src/tables/build/BuildLineTable.tsx:179 #: src/tables/part/PartTable.tsx:117 -#: src/tables/stock/StockItemTable.tsx:177 -#: src/tables/stock/StockItemTable.tsx:310 +#: src/tables/stock/StockItemTable.tsx:166 +#: src/tables/stock/StockItemTable.tsx:314 msgid "Available" msgstr "" -#: src/pages/part/PartDetail.tsx:855 +#: src/pages/part/PartDetail.tsx:887 msgid "No Stock" msgstr "" -#: src/pages/part/PartDetail.tsx:861 +#: src/pages/part/PartDetail.tsx:893 +#: src/tables/part/PartTestTemplateTable.tsx:106 +#: src/tables/stock/StockItemTestResultTable.tsx:383 +msgid "Required" +msgstr "" + +#: src/pages/part/PartDetail.tsx:899 #: src/tables/bom/BomTable.tsx:325 #: src/tables/part/PartTable.tsx:86 msgid "On Order" msgstr "" -#: src/pages/part/PartDetail.tsx:867 -#: src/pages/stock/StockDetail.tsx:576 -#: src/tables/build/BuildOrderTestTable.tsx:219 -#: src/tables/stock/StockItemTable.tsx:330 -msgid "In Production" -msgstr "" - -#: src/pages/part/PartDetail.tsx:892 +#: src/pages/part/PartDetail.tsx:924 msgid "Edit Part" msgstr "" -#: src/pages/part/PartDetail.tsx:927 +#: src/pages/part/PartDetail.tsx:959 #: src/tables/part/PartTable.tsx:331 -#: src/tables/part/PartTable.tsx:342 +#: src/tables/part/PartTable.tsx:343 msgid "Add Part" msgstr "" -#: src/pages/part/PartDetail.tsx:941 +#: src/pages/part/PartDetail.tsx:973 msgid "Delete Part" msgstr "" -#: src/pages/part/PartDetail.tsx:950 +#: src/pages/part/PartDetail.tsx:982 msgid "Deleting this part cannot be reversed" msgstr "" -#: src/pages/part/PartDetail.tsx:999 -#: src/pages/stock/LocationDetail.tsx:324 -#: src/tables/stock/StockItemTable.tsx:444 +#: src/pages/part/PartDetail.tsx:1021 +#: src/pages/stock/LocationDetail.tsx:310 +#: src/tables/stock/StockItemTable.tsx:449 msgid "Stock Actions" msgstr "" -#: src/pages/part/PartDetail.tsx:1007 +#: src/pages/part/PartDetail.tsx:1029 msgid "Count part stock" msgstr "" -#: src/pages/part/PartDetail.tsx:1018 +#: src/pages/part/PartDetail.tsx:1040 msgid "Transfer part stock" msgstr "" -#: src/pages/part/PartDetail.tsx:1027 +#: src/pages/part/PartDetail.tsx:1049 msgid "Part Actions" msgstr "" -#: src/pages/part/PartDetail.tsx:1087 +#: src/pages/part/PartDetail.tsx:1113 msgid "Select Part Revision" msgstr "" @@ -4862,113 +5621,214 @@ msgstr "" #~ msgid "Categories" #~ msgstr "Categories" -#: src/pages/part/PartPricingPanel.tsx:68 +#: src/pages/part/PartPricingPanel.tsx:72 msgid "No pricing data found for this part." msgstr "" -#: src/pages/part/PartPricingPanel.tsx:82 -#: src/pages/part/pricing/PricingOverviewPanel.tsx:190 +#: src/pages/part/PartPricingPanel.tsx:87 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:293 msgid "Pricing Overview" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:88 +#: src/pages/part/PartPricingPanel.tsx:93 msgid "Purchase History" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:102 -#: src/pages/part/pricing/PricingOverviewPanel.tsx:100 +#: src/pages/part/PartPricingPanel.tsx:107 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:174 msgid "Internal Pricing" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:120 -#: src/pages/part/pricing/PricingOverviewPanel.tsx:107 +#: src/pages/part/PartPricingPanel.tsx:125 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:181 msgid "BOM Pricing" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:127 -#: src/pages/part/pricing/PricingOverviewPanel.tsx:128 +#: src/pages/part/PartPricingPanel.tsx:132 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:202 msgid "Variant Pricing" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:139 -#: src/pages/part/pricing/PricingOverviewPanel.tsx:135 +#: src/pages/part/PartPricingPanel.tsx:144 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:209 msgid "Sale Pricing" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:146 -#: src/pages/part/pricing/PricingOverviewPanel.tsx:142 +#: src/pages/part/PartPricingPanel.tsx:151 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:216 msgid "Sale History" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:58 -#: src/pages/part/pricing/BomPricingPanel.tsx:138 -#: src/tables/ColumnRenderers.tsx:262 +#: src/pages/part/PartSchedulingDetail.tsx:47 +#: src/pages/part/PartSchedulingDetail.tsx:299 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:156 +msgid "Maximum" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:50 +#: src/pages/part/PartSchedulingDetail.tsx:289 +msgid "Scheduled" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:53 +#: src/pages/part/PartSchedulingDetail.tsx:294 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:144 +msgid "Minimum" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:68 +msgid "Order" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:92 +msgid "Quantity is speculative" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:101 +msgid "No date available for provided quantity" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:105 +msgid "Date is in the past" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:112 +msgid "Scheduled Quantity" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:240 +msgid "No information available" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:241 +msgid "There is no scheduling information available for the selected part" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:276 +msgid "Expected Quantity" +msgstr "" + +#: src/pages/part/PartStocktakeDetail.tsx:63 +#: src/tables/FilterSelectDrawer.tsx:167 +#: src/tables/FilterSelectDrawer.tsx:174 +#: src/tables/build/BuildOrderTestTable.tsx:135 +#: src/tables/purchasing/ManufacturerPartParameterTable.tsx:38 +#: src/tables/stock/StockItemTestResultTable.tsx:192 +msgid "Value" +msgstr "" + +#: src/pages/part/PartStocktakeDetail.tsx:82 +msgid "Edit Stocktake Entry" +msgstr "" + +#: src/pages/part/PartStocktakeDetail.tsx:90 +msgid "Delete Stocktake Entry" +msgstr "" + +#: src/pages/part/PartStocktakeDetail.tsx:96 +#: src/tables/settings/StocktakeReportTable.tsx:69 +msgid "Generate Stocktake Report" +msgstr "" + +#: src/pages/part/PartStocktakeDetail.tsx:101 +#: src/tables/settings/StocktakeReportTable.tsx:71 +msgid "Stocktake report scheduled" +msgstr "" + +#: src/pages/part/PartStocktakeDetail.tsx:119 +#: src/pages/part/PartStocktakeDetail.tsx:235 +#: src/pages/stock/StockDetail.tsx:303 +#: src/tables/stock/StockItemTable.tsx:249 +msgid "Stock Value" +msgstr "" + +#: src/pages/part/PartStocktakeDetail.tsx:139 +#: src/tables/settings/StocktakeReportTable.tsx:77 +msgid "New Stocktake Report" +msgstr "" + +#: src/pages/part/PartStocktakeDetail.tsx:258 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:295 +msgid "Minimum Value" +msgstr "" + +#: src/pages/part/PartStocktakeDetail.tsx:264 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:296 +msgid "Maximum Value" +msgstr "" + +#: src/pages/part/pricing/BomPricingPanel.tsx:87 +#: src/pages/part/pricing/BomPricingPanel.tsx:177 +#: src/tables/ColumnRenderers.tsx:276 #: src/tables/bom/BomTable.tsx:185 #: src/tables/general/ExtraLineItemTable.tsx:64 -#: src/tables/purchasing/PurchaseOrderTable.tsx:112 -#: src/tables/sales/ReturnOrderTable.tsx:104 -#: src/tables/sales/SalesOrderLineItemTable.tsx:89 -#: src/tables/sales/SalesOrderTable.tsx:136 +#: src/tables/purchasing/PurchaseOrderTable.tsx:113 +#: src/tables/sales/ReturnOrderTable.tsx:127 +#: src/tables/sales/SalesOrderLineItemTable.tsx:97 +#: src/tables/sales/SalesOrderTable.tsx:149 msgid "Total Price" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:78 -#: src/pages/part/pricing/BomPricingPanel.tsx:102 +#: src/pages/part/pricing/BomPricingPanel.tsx:112 +#: src/pages/part/pricing/BomPricingPanel.tsx:141 #: src/tables/bom/UsedInTable.tsx:49 +#: src/tables/build/BuildLineTable.tsx:296 #: src/tables/part/PartTable.tsx:202 msgid "Component" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:81 -#: src/pages/part/pricing/VariantPricingPanel.tsx:37 -#: src/pages/part/pricing/VariantPricingPanel.tsx:97 -msgid "Minimum Price" -msgstr "" - -#: src/pages/part/pricing/BomPricingPanel.tsx:82 -#: src/pages/part/pricing/VariantPricingPanel.tsx:45 -#: src/pages/part/pricing/VariantPricingPanel.tsx:98 -msgid "Maximum Price" -msgstr "" - #: src/pages/part/pricing/BomPricingPanel.tsx:112 #~ msgid "Minimum Total Price" #~ msgstr "Minimum Total Price" +#: src/pages/part/pricing/BomPricingPanel.tsx:115 +#: src/pages/part/pricing/VariantPricingPanel.tsx:37 +#: src/pages/part/pricing/VariantPricingPanel.tsx:97 +msgid "Minimum Price" +msgstr "" + +#: src/pages/part/pricing/BomPricingPanel.tsx:116 +#: src/pages/part/pricing/VariantPricingPanel.tsx:45 +#: src/pages/part/pricing/VariantPricingPanel.tsx:98 +msgid "Maximum Price" +msgstr "" + #: src/pages/part/pricing/BomPricingPanel.tsx:117 #~ msgid "Maximum Total Price" #~ msgstr "Maximum Total Price" -#: src/pages/part/pricing/BomPricingPanel.tsx:129 -#: src/pages/part/pricing/PriceBreakPanel.tsx:172 -#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:67 -#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:128 -#: src/pages/part/pricing/SupplierPricingPanel.tsx:62 +#: src/pages/part/pricing/BomPricingPanel.tsx:168 +#: src/pages/part/pricing/PriceBreakPanel.tsx:173 +#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:70 +#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:125 +#: src/pages/part/pricing/SupplierPricingPanel.tsx:66 +#: src/pages/stock/StockDetail.tsx:291 #: src/tables/bom/BomTable.tsx:176 #: src/tables/general/ExtraLineItemTable.tsx:56 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:223 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:225 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:92 +#: src/tables/stock/StockItemTable.tsx:239 msgid "Unit Price" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:154 +#: src/pages/part/pricing/BomPricingPanel.tsx:193 #: src/pages/part/pricing/VariantPricingPanel.tsx:53 -#: src/tables/purchasing/SupplierPartTable.tsx:148 +#: src/tables/purchasing/SupplierPartTable.tsx:150 msgid "Updated" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:219 +#: src/pages/part/pricing/BomPricingPanel.tsx:258 msgid "Pie Chart" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:220 +#: src/pages/part/pricing/BomPricingPanel.tsx:259 msgid "Bar Chart" msgstr "" #: src/pages/part/pricing/PriceBreakPanel.tsx:58 -#: src/pages/part/pricing/PriceBreakPanel.tsx:110 +#: src/pages/part/pricing/PriceBreakPanel.tsx:111 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:142 -#: src/tables/purchasing/SupplierPriceBreakTable.tsx:168 +#: src/tables/purchasing/SupplierPriceBreakTable.tsx:169 msgid "Add Price Break" msgstr "" @@ -4986,46 +5846,70 @@ msgstr "" msgid "Price Break" msgstr "" -#: src/pages/part/pricing/PriceBreakPanel.tsx:170 +#: src/pages/part/pricing/PriceBreakPanel.tsx:171 msgid "Price" msgstr "" -#: src/pages/part/pricing/PricingOverviewPanel.tsx:51 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:68 +msgid "Refreshing pricing data" +msgstr "" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:88 +msgid "Pricing data updated" +msgstr "" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:95 +msgid "Failed to update pricing data" +msgstr "" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:104 +msgid "Edit Pricing" +msgstr "" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:125 msgid "Pricing Category" msgstr "" -#: src/pages/part/pricing/PricingOverviewPanel.tsx:70 -msgid "Minimum" -msgstr "" - -#: src/pages/part/pricing/PricingOverviewPanel.tsx:82 -msgid "Maximum" -msgstr "" - -#: src/pages/part/pricing/PricingOverviewPanel.tsx:114 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:188 msgid "Purchase Pricing" msgstr "" -#: src/pages/part/pricing/PricingOverviewPanel.tsx:149 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:223 msgid "Override Pricing" msgstr "" -#: src/pages/part/pricing/PricingOverviewPanel.tsx:156 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:230 msgid "Overall Pricing" msgstr "" -#: src/pages/part/pricing/PricingOverviewPanel.tsx:175 -#: src/pages/stock/StockDetail.tsx:129 -#: src/tables/stock/StockItemTable.tsx:240 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:249 +#: src/pages/stock/StockDetail.tsx:145 +#: src/tables/stock/StockItemTable.tsx:275 msgid "Last Updated" msgstr "" -#: src/pages/part/pricing/PricingOverviewPanel.tsx:192 -msgid "Minimum Value" +#: src/pages/part/pricing/PricingOverviewPanel.tsx:253 +msgid "Pricing Not Set" msgstr "" -#: src/pages/part/pricing/PricingOverviewPanel.tsx:193 -msgid "Maximum Value" +#: src/pages/part/pricing/PricingOverviewPanel.tsx:254 +msgid "Pricing data has not been calculated for this part" +msgstr "" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:258 +msgid "Pricing Actions" +msgstr "" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:261 +msgid "Refresh" +msgstr "" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:262 +msgid "Refresh pricing data" +msgstr "" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:277 +msgid "Edit pricing data" msgstr "" #: src/pages/part/pricing/PricingPanel.tsx:24 @@ -5044,28 +5928,20 @@ msgstr "" msgid "Loading pricing data" msgstr "" -#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:40 -#: src/pages/part/pricing/SaleHistoryPanel.tsx:36 -#: src/tables/ColumnRenderers.tsx:201 -#: src/tables/build/BuildOrderTestTable.tsx:150 -#: src/tables/plugin/PluginListTable.tsx:139 -msgid "Date" -msgstr "" - #: src/pages/part/pricing/PurchaseHistoryPanel.tsx:47 msgid "Purchase Price" msgstr "" -#: src/pages/part/pricing/SaleHistoryPanel.tsx:22 -msgid "Sale Order" -msgstr "" +#: src/pages/part/pricing/SaleHistoryPanel.tsx:24 +#~ msgid "Sale Order" +#~ msgstr "Sale Order" -#: src/pages/part/pricing/SaleHistoryPanel.tsx:42 -#: src/pages/part/pricing/SaleHistoryPanel.tsx:92 +#: src/pages/part/pricing/SaleHistoryPanel.tsx:44 +#: src/pages/part/pricing/SaleHistoryPanel.tsx:87 msgid "Sale Price" msgstr "" -#: src/pages/part/pricing/SupplierPricingPanel.tsx:65 +#: src/pages/part/pricing/SupplierPricingPanel.tsx:69 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:83 msgid "Supplier Price" msgstr "" @@ -5075,23 +5951,23 @@ msgstr "" msgid "Variant Part" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:93 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:87 msgid "Edit Purchase Order" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:102 -#: src/tables/purchasing/PurchaseOrderTable.tsx:128 -#: src/tables/purchasing/PurchaseOrderTable.tsx:140 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:96 +#: src/tables/purchasing/PurchaseOrderTable.tsx:129 +#: src/tables/purchasing/PurchaseOrderTable.tsx:142 msgid "Add Purchase Order" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:127 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:121 msgid "Supplier Reference" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:158 -#: src/pages/sales/ReturnOrderDetail.tsx:137 -#: src/pages/sales/SalesOrderDetail.tsx:137 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:152 +#: src/pages/sales/ReturnOrderDetail.tsx:129 +#: src/pages/sales/SalesOrderDetail.tsx:132 msgid "Completed Line Items" msgstr "" @@ -5101,91 +5977,112 @@ msgstr "" #~ msgid "Order Currency," #~ msgstr "Order Currency," -#: src/pages/purchasing/PurchaseOrderDetail.tsx:165 -#: src/pages/sales/ReturnOrderDetail.tsx:144 -#: src/pages/sales/SalesOrderDetail.tsx:153 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:161 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:231 +msgid "Destination" +msgstr "" + +#: src/pages/purchasing/PurchaseOrderDetail.tsx:167 +#: src/pages/sales/ReturnOrderDetail.tsx:136 +#: src/pages/sales/SalesOrderDetail.tsx:148 msgid "Order Currency" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:172 -#: src/pages/sales/ReturnOrderDetail.tsx:151 -#: src/pages/sales/SalesOrderDetail.tsx:160 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:173 +#: src/pages/sales/ReturnOrderDetail.tsx:143 +#: src/pages/sales/SalesOrderDetail.tsx:155 msgid "Total Cost" msgstr "" #: src/pages/purchasing/PurchaseOrderDetail.tsx:207 -#: src/pages/sales/ReturnOrderDetail.tsx:186 -#: src/pages/sales/SalesOrderDetail.tsx:195 -msgid "Created On" +#: src/pages/sales/ReturnOrderDetail.tsx:183 +#: src/pages/sales/SalesOrderDetail.tsx:191 +#~ msgid "Created On" +#~ msgstr "Created On" + +#: src/pages/purchasing/PurchaseOrderDetail.tsx:221 +#: src/pages/sales/ReturnOrderDetail.tsx:193 +#: src/pages/sales/SalesOrderDetail.tsx:204 +msgid "Issue Date" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:252 -#: src/pages/sales/ReturnOrderDetail.tsx:231 -#: src/pages/sales/SalesOrderDetail.tsx:266 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:237 +#: src/pages/sales/ReturnOrderDetail.tsx:209 +#: src/pages/sales/SalesOrderDetail.tsx:219 +#: src/tables/build/BuildOrderTable.tsx:98 +#: src/tables/part/PartPurchaseOrdersTable.tsx:105 +#: src/tables/sales/ReturnOrderTable.tsx:122 +msgid "Completion Date" +msgstr "" + +#: src/pages/purchasing/PurchaseOrderDetail.tsx:276 +#: src/pages/sales/ReturnOrderDetail.tsx:248 +#: src/pages/sales/SalesOrderDetail.tsx:288 msgid "Order Details" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:280 -#: src/pages/sales/ReturnOrderDetail.tsx:258 -#: src/pages/sales/SalesOrderDetail.tsx:297 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:304 +#: src/pages/sales/ReturnOrderDetail.tsx:276 +#: src/pages/sales/SalesOrderDetail.tsx:319 msgid "Extra Line Items" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:337 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:346 msgid "Issue Purchase Order" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:345 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:354 msgid "Cancel Purchase Order" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:353 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:362 msgid "Hold Purchase Order" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:361 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:370 msgid "Complete Purchase Order" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:427 -#: src/pages/sales/ReturnOrderDetail.tsx:428 -#: src/pages/sales/SalesOrderDetail.tsx:468 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:425 +#: src/pages/sales/ReturnOrderDetail.tsx:424 +#: src/pages/sales/SalesOrderDetail.tsx:464 msgid "Order Actions" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:101 -#: src/pages/sales/SalesOrderDetail.tsx:107 -#: src/tables/sales/SalesOrderTable.tsx:124 +#: src/pages/sales/ReturnOrderDetail.tsx:92 +#: src/pages/sales/SalesOrderDetail.tsx:101 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:109 +#: src/tables/sales/SalesOrderTable.tsx:137 msgid "Customer Reference" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:315 +#: src/pages/sales/ReturnOrderDetail.tsx:322 msgid "Edit Return Order" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:324 -#: src/tables/sales/ReturnOrderTable.tsx:119 -#: src/tables/sales/ReturnOrderTable.tsx:128 +#: src/pages/sales/ReturnOrderDetail.tsx:331 +#: src/tables/sales/ReturnOrderTable.tsx:142 +#: src/tables/sales/ReturnOrderTable.tsx:152 msgid "Add Return Order" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:336 +#: src/pages/sales/ReturnOrderDetail.tsx:343 msgid "Issue Return Order" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:344 +#: src/pages/sales/ReturnOrderDetail.tsx:349 +#~ msgid "Order canceled" +#~ msgstr "Order canceled" + +#: src/pages/sales/ReturnOrderDetail.tsx:351 msgid "Cancel Return Order" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:347 -msgid "Order canceled" -msgstr "" - -#: src/pages/sales/ReturnOrderDetail.tsx:352 +#: src/pages/sales/ReturnOrderDetail.tsx:359 msgid "Hold Return Order" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:360 +#: src/pages/sales/ReturnOrderDetail.tsx:367 msgid "Complete Return Order" msgstr "" @@ -5193,117 +6090,193 @@ msgstr "" msgid "Customers" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:145 +#: src/pages/sales/SalesOrderDetail.tsx:140 msgid "Completed Shipments" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:243 -msgid "Edit Sales Order" -msgstr "" - -#: src/pages/sales/SalesOrderDetail.tsx:252 -#: src/tables/sales/SalesOrderTable.tsx:84 -#: src/tables/sales/SalesOrderTable.tsx:96 -msgid "Add Sales Order" -msgstr "" - #: src/pages/sales/SalesOrderDetail.tsx:256 #~ msgid "Pending Shipments" #~ msgstr "Pending Shipments" -#: src/pages/sales/SalesOrderDetail.tsx:313 +#: src/pages/sales/SalesOrderDetail.tsx:261 +msgid "Edit Sales Order" +msgstr "" + +#: src/pages/sales/SalesOrderDetail.tsx:274 +#: src/tables/sales/SalesOrderTable.tsx:96 +#: src/tables/sales/SalesOrderTable.tsx:109 +msgid "Add Sales Order" +msgstr "" + +#: src/pages/sales/SalesOrderDetail.tsx:335 msgid "Shipments" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:369 +#: src/pages/sales/SalesOrderDetail.tsx:376 msgid "Issue Sales Order" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:377 +#: src/pages/sales/SalesOrderDetail.tsx:384 msgid "Cancel Sales Order" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:385 +#: src/pages/sales/SalesOrderDetail.tsx:392 msgid "Hold Sales Order" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:393 +#: src/pages/sales/SalesOrderDetail.tsx:400 msgid "Complete Sales Order" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:432 +#: src/pages/sales/SalesOrderDetail.tsx:439 msgid "Ship Order" msgstr "" -#: src/pages/stock/LocationDetail.tsx:117 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:117 +#: src/tables/sales/SalesOrderShipmentTable.tsx:96 +msgid "Shipment Reference" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:124 +msgid "Allocated Items" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:133 +msgid "Tracking Number" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:141 +msgid "Invoice Number" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:149 +#: src/tables/ColumnRenderers.tsx:242 +#: src/tables/sales/SalesOrderAllocationTable.tsx:142 +#: src/tables/sales/SalesOrderShipmentTable.tsx:115 +msgid "Shipment Date" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:157 +#: src/tables/sales/SalesOrderShipmentTable.tsx:119 +msgid "Delivery Date" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:204 +msgid "Shipment Details" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:210 +msgid "Assigned Items" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:241 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:317 +#: src/tables/sales/SalesOrderShipmentTable.tsx:75 +msgid "Edit Shipment" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:248 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:322 +#: src/tables/sales/SalesOrderShipmentTable.tsx:67 +msgid "Cancel Shipment" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:261 +#: src/tables/sales/SalesOrderShipmentTable.tsx:83 +#: src/tables/sales/SalesOrderShipmentTable.tsx:151 +msgid "Complete Shipment" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:276 +#: src/tables/part/PartPurchaseOrdersTable.tsx:121 +msgid "Pending" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:277 +#: src/tables/sales/SalesOrderAllocationTable.tsx:148 +#: src/tables/sales/SalesOrderShipmentTable.tsx:108 +#: src/tables/sales/SalesOrderShipmentTable.tsx:197 +msgid "Shipped" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:279 +#: src/tables/sales/SalesOrderShipmentTable.tsx:202 +msgid "Delivered" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:293 +msgid "Send Shipment" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:312 +msgid "Shipment Actions" +msgstr "" + +#: src/pages/stock/LocationDetail.tsx:111 msgid "Parent Location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:135 +#: src/pages/stock/LocationDetail.tsx:129 msgid "Sublocations" msgstr "" -#: src/pages/stock/LocationDetail.tsx:147 +#: src/pages/stock/LocationDetail.tsx:141 #: src/tables/stock/StockLocationTable.tsx:54 msgid "External" msgstr "" -#: src/pages/stock/LocationDetail.tsx:153 +#: src/pages/stock/LocationDetail.tsx:147 #: src/tables/stock/StockLocationTable.tsx:63 msgid "Location Type" msgstr "" -#: src/pages/stock/LocationDetail.tsx:164 +#: src/pages/stock/LocationDetail.tsx:158 msgid "Top level stock location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:175 +#: src/pages/stock/LocationDetail.tsx:169 msgid "Location Details" msgstr "" -#: src/pages/stock/LocationDetail.tsx:201 +#: src/pages/stock/LocationDetail.tsx:195 msgid "Default Parts" msgstr "" -#: src/pages/stock/LocationDetail.tsx:220 -#: src/pages/stock/LocationDetail.tsx:351 +#: src/pages/stock/LocationDetail.tsx:214 +#: src/pages/stock/LocationDetail.tsx:336 #: src/tables/stock/StockLocationTable.tsx:123 msgid "Edit Stock Location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:241 -#: src/pages/stock/LocationDetail.tsx:356 +#: src/pages/stock/LocationDetail.tsx:235 +#: src/pages/stock/LocationDetail.tsx:341 msgid "Delete Stock Location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:244 +#: src/pages/stock/LocationDetail.tsx:238 msgid "Items Action" msgstr "" -#: src/pages/stock/LocationDetail.tsx:245 +#: src/pages/stock/LocationDetail.tsx:239 msgid "Action for stock items in this location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:250 +#: src/pages/stock/LocationDetail.tsx:244 msgid "Child Locations Action" msgstr "" -#: src/pages/stock/LocationDetail.tsx:251 +#: src/pages/stock/LocationDetail.tsx:245 msgid "Action for child locations in this location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:346 +#: src/pages/stock/LocationDetail.tsx:332 msgid "Location Actions" msgstr "" -#: src/pages/stock/StockDetail.tsx:108 +#: src/pages/stock/StockDetail.tsx:116 msgid "Base Part" msgstr "" -#: src/pages/stock/StockDetail.tsx:115 -msgid "Stock Status" -msgstr "" - #: src/pages/stock/StockDetail.tsx:155 #~ msgid "Link custom barcode to stock item" #~ msgstr "Link custom barcode to stock item" @@ -5312,113 +6285,179 @@ msgstr "" #~ msgid "Unlink custom barcode from stock item" #~ msgstr "Unlink custom barcode from stock item" -#: src/pages/stock/StockDetail.tsx:188 -msgid "Installed In" -msgstr "" - -#: src/pages/stock/StockDetail.tsx:204 -msgid "Consumed By" +#: src/pages/stock/StockDetail.tsx:178 +msgid "Allocated to Orders" msgstr "" #: src/pages/stock/StockDetail.tsx:205 #~ msgid "Edit stock item" #~ msgstr "Edit stock item" -#: src/pages/stock/StockDetail.tsx:213 -#: src/tables/build/BuildAllocatedStockTable.tsx:64 -#: src/tables/stock/StockTrackingTable.tsx:96 -msgid "Build Order" +#: src/pages/stock/StockDetail.tsx:209 +msgid "Installed In" msgstr "" #: src/pages/stock/StockDetail.tsx:217 #~ msgid "Delete stock item" #~ msgstr "Delete stock item" -#: src/pages/stock/StockDetail.tsx:291 +#: src/pages/stock/StockDetail.tsx:226 +msgid "Parent Item" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:230 +msgid "Parent stock item" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:236 +msgid "Consumed By" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:245 +#: src/tables/build/BuildAllocatedStockTable.tsx:77 +#: src/tables/stock/StockTrackingTable.tsx:100 +msgid "Build Order" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:283 +#: src/tables/stock/StockItemTable.tsx:270 +msgid "Expiry Date" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:414 msgid "Stock Details" msgstr "" -#: src/pages/stock/StockDetail.tsx:297 +#: src/pages/stock/StockDetail.tsx:420 msgid "Stock Tracking" msgstr "" -#: src/pages/stock/StockDetail.tsx:350 -msgid "Test Data" -msgstr "" - -#: src/pages/stock/StockDetail.tsx:364 -msgid "Installed Items" -msgstr "" - -#: src/pages/stock/StockDetail.tsx:371 -msgid "Child Items" -msgstr "" - -#: src/pages/stock/StockDetail.tsx:425 -msgid "Edit Stock Item" -msgstr "" - #: src/pages/stock/StockDetail.tsx:433 #~ msgid "Duplicate stock item" #~ msgstr "Duplicate stock item" -#: src/pages/stock/StockDetail.tsx:452 +#: src/pages/stock/StockDetail.tsx:475 +msgid "Test Data" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:489 +msgid "Installed Items" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:496 +msgid "Child Items" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:545 +msgid "Edit Stock Item" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:572 msgid "Delete Stock Item" msgstr "" -#: src/pages/stock/StockDetail.tsx:504 +#: src/pages/stock/StockDetail.tsx:604 +msgid "Serialize Stock Item" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:617 +msgid "Stock item serialized" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:623 +msgid "Return Stock Item" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:626 +msgid "Return this item into stock. This will remove the customer assignment." +msgstr "" + +#: src/pages/stock/StockDetail.tsx:636 +msgid "Item returned to stock" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:666 msgid "Stock Operations" msgstr "" -#: src/pages/stock/StockDetail.tsx:509 +#: src/pages/stock/StockDetail.tsx:671 msgid "Count stock" msgstr "" -#: src/pages/stock/StockDetail.tsx:519 -#: src/tables/stock/StockItemTable.tsx:449 -msgid "Add stock" +#: src/pages/stock/StockDetail.tsx:671 +#: src/tables/stock/StockItemTable.tsx:452 +#~ msgid "Add stock" +#~ msgstr "Add stock" + +#: src/pages/stock/StockDetail.tsx:680 +#: src/tables/stock/StockItemTable.tsx:461 +#~ msgid "Remove stock" +#~ msgstr "Remove stock" + +#: src/pages/stock/StockDetail.tsx:698 +#: src/tables/stock/StockItemTable.tsx:481 +#~ msgid "Transfer stock" +#~ msgstr "Transfer stock" + +#: src/pages/stock/StockDetail.tsx:699 +msgid "Serialize" msgstr "" -#: src/pages/stock/StockDetail.tsx:527 -#: src/tables/stock/StockItemTable.tsx:458 -msgid "Remove stock" +#: src/pages/stock/StockDetail.tsx:700 +msgid "Serialize stock" msgstr "" -#: src/pages/stock/StockDetail.tsx:534 +#: src/pages/stock/StockDetail.tsx:711 msgid "Transfer" msgstr "" -#: src/pages/stock/StockDetail.tsx:535 -#: src/tables/stock/StockItemTable.tsx:478 -msgid "Transfer stock" +#: src/pages/stock/StockDetail.tsx:722 +msgid "Return" msgstr "" -#: src/pages/stock/StockDetail.tsx:546 +#: src/pages/stock/StockDetail.tsx:723 +msgid "Return from customer" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:738 msgid "Stock Item Actions" msgstr "" -#: src/tables/ColumnRenderers.tsx:30 +#: src/pages/stock/StockDetail.tsx:808 +msgid "Stale" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:814 +msgid "Expired" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:820 +msgid "Unavailable" +msgstr "" + +#: src/tables/ColumnRenderers.tsx:36 msgid "Part is not active" msgstr "" -#: src/tables/ColumnRenderers.tsx:35 -msgid "Part is locked" +#: src/tables/ColumnRenderers.tsx:41 +#: src/tables/bom/BomTable.tsx:542 +#: src/tables/part/PartParameterTable.tsx:193 +#: src/tables/part/PartTestTemplateTable.tsx:253 +msgid "Part is Locked" msgstr "" -#: src/tables/ColumnRenderers.tsx:57 +#: src/tables/ColumnRenderers.tsx:41 +#~ msgid "Part is locked" +#~ msgstr "Part is locked" + +#: src/tables/ColumnRenderers.tsx:46 +msgid "You are subscribed to notifications for this part" +msgstr "" + +#: src/tables/ColumnRenderers.tsx:68 msgid "No location set" msgstr "" -#: src/tables/ColumnRenderers.tsx:228 -#: src/tables/sales/SalesOrderShipmentTable.tsx:79 -msgid "Shipment Date" -msgstr "" - -#: src/tables/ColumnRenderers.tsx:248 -#: src/tables/settings/CurrencyTable.tsx:23 -msgid "Currency" -msgstr "" - #: src/tables/ColumnSelect.tsx:16 #: src/tables/ColumnSelect.tsx:23 msgid "Select Columns" @@ -5452,91 +6491,116 @@ msgstr "" msgid "Download Data" msgstr "" -#: src/tables/Filter.tsx:89 -#: src/tables/build/BuildOrderTable.tsx:135 +#: src/tables/Filter.tsx:101 msgid "Assigned to me" msgstr "" -#: src/tables/Filter.tsx:90 -#: src/tables/build/BuildOrderTable.tsx:136 +#: src/tables/Filter.tsx:102 msgid "Show orders assigned to me" msgstr "" -#: src/tables/Filter.tsx:97 +#: src/tables/Filter.tsx:106 +#~ msgid "Show overdue orders" +#~ msgstr "Show overdue orders" + +#: src/tables/Filter.tsx:109 +#: src/tables/build/BuildOrderTable.tsx:120 +#: src/tables/sales/SalesOrderAllocationTable.tsx:59 msgid "Outstanding" msgstr "" -#: src/tables/Filter.tsx:98 -msgid "Show outstanding orders" +#: src/tables/Filter.tsx:110 +msgid "Show outstanding items" msgstr "" -#: src/tables/Filter.tsx:105 -#: src/tables/build/BuildOrderTable.tsx:128 +#: src/tables/Filter.tsx:117 msgid "Overdue" msgstr "" -#: src/tables/Filter.tsx:106 -msgid "Show overdue orders" +#: src/tables/Filter.tsx:118 +msgid "Show overdue items" msgstr "" -#: src/tables/FilterSelectDrawer.tsx:51 +#: src/tables/Filter.tsx:125 +msgid "Minimum Date" +msgstr "" + +#: src/tables/Filter.tsx:126 +msgid "Show items after this date" +msgstr "" + +#: src/tables/Filter.tsx:134 +msgid "Maximum Date" +msgstr "" + +#: src/tables/Filter.tsx:135 +msgid "Show items before this date" +msgstr "" + +#: src/tables/Filter.tsx:144 +msgid "Has Project Code" +msgstr "" + +#: src/tables/Filter.tsx:145 +msgid "Show orders with an assigned project code" +msgstr "" + +#: src/tables/FilterSelectDrawer.tsx:55 msgid "Remove filter" msgstr "" -#: src/tables/FilterSelectDrawer.tsx:130 +#: src/tables/FilterSelectDrawer.tsx:159 msgid "Select filter" msgstr "" -#: src/tables/FilterSelectDrawer.tsx:131 +#: src/tables/FilterSelectDrawer.tsx:160 msgid "Filter" msgstr "" -#: src/tables/FilterSelectDrawer.tsx:138 -#: src/tables/build/BuildOrderTestTable.tsx:134 -#: src/tables/purchasing/ManufacturerPartParameterTable.tsx:38 -#: src/tables/stock/StockItemTestResultTable.tsx:186 -msgid "Value" +#: src/tables/FilterSelectDrawer.tsx:168 +msgid "Select date value" msgstr "" -#: src/tables/FilterSelectDrawer.tsx:140 +#: src/tables/FilterSelectDrawer.tsx:176 msgid "Select filter value" msgstr "" -#: src/tables/FilterSelectDrawer.tsx:183 +#: src/tables/FilterSelectDrawer.tsx:219 +#: src/tables/InvenTreeTableHeader.tsx:214 msgid "Table Filters" msgstr "" -#: src/tables/FilterSelectDrawer.tsx:215 +#: src/tables/FilterSelectDrawer.tsx:251 msgid "Add Filter" msgstr "" -#: src/tables/FilterSelectDrawer.tsx:224 +#: src/tables/FilterSelectDrawer.tsx:260 msgid "Clear Filters" msgstr "" -#: src/tables/InvenTreeTable.tsx:123 -#: src/tables/InvenTreeTable.tsx:431 -#: src/tables/InvenTreeTable.tsx:455 +#: src/tables/InvenTreeTable.tsx:96 +#: src/tables/InvenTreeTable.tsx:417 +#: src/tables/InvenTreeTable.tsx:441 msgid "No records found" msgstr "" -#: src/tables/InvenTreeTable.tsx:466 +#: src/tables/InvenTreeTable.tsx:452 msgid "Server returned incorrect data type" msgstr "" -#: src/tables/InvenTreeTable.tsx:474 +#: src/tables/InvenTreeTable.tsx:460 msgid "Bad request" msgstr "" -#: src/tables/InvenTreeTable.tsx:477 +#: src/tables/InvenTreeTable.tsx:463 msgid "Unauthorized" msgstr "" -#: src/tables/InvenTreeTable.tsx:480 +#: src/tables/InvenTreeTable.tsx:466 msgid "Forbidden" msgstr "" -#: src/tables/InvenTreeTable.tsx:483 +#: src/tables/InvenTreeTable.tsx:469 msgid "Not found" msgstr "" @@ -5544,18 +6608,6 @@ msgstr "" #~ msgid "Are you sure you want to delete the selected records?" #~ msgstr "Are you sure you want to delete the selected records?" -#: src/tables/InvenTreeTable.tsx:525 -msgid "Delete Selected Items" -msgstr "" - -#: src/tables/InvenTreeTable.tsx:529 -msgid "Are you sure you want to delete the selected items?" -msgstr "" - -#: src/tables/InvenTreeTable.tsx:531 -msgid "This action cannot be undone!" -msgstr "" - #: src/tables/InvenTreeTable.tsx:535 #~ msgid "Deleted records" #~ msgstr "Deleted records" @@ -5568,31 +6620,56 @@ msgstr "" #~ msgid "Failed to delete records" #~ msgstr "Failed to delete records" +#: src/tables/InvenTreeTable.tsx:552 +#~ msgid "This action cannot be undone!" +#~ msgstr "This action cannot be undone!" + #: src/tables/InvenTreeTable.tsx:594 #: src/tables/InvenTreeTable.tsx:595 #~ msgid "Print actions" #~ msgstr "Print actions" -#: src/tables/InvenTreeTable.tsx:618 -#: src/tables/InvenTreeTable.tsx:619 -msgid "Barcode actions" +#: src/tables/InvenTreeTable.tsx:655 +#: src/tables/InvenTreeTable.tsx:656 +#~ msgid "Barcode actions" +#~ msgstr "Barcode actions" + +#: src/tables/InvenTreeTable.tsx:712 +#~ msgid "Table filters" +#~ msgstr "Table filters" + +#: src/tables/InvenTreeTable.tsx:725 +#~ msgid "Clear custom query filters" +#~ msgstr "Clear custom query filters" + +#: src/tables/InvenTreeTableHeader.tsx:98 +msgid "Delete Selected Items" msgstr "" -#: src/tables/InvenTreeTable.tsx:628 +#: src/tables/InvenTreeTableHeader.tsx:102 +msgid "Are you sure you want to delete the selected items?" +msgstr "" + +#: src/tables/InvenTreeTableHeader.tsx:104 +#: src/tables/plugin/PluginListTable.tsx:305 +msgid "This action cannot be undone" +msgstr "" + +#: src/tables/InvenTreeTableHeader.tsx:142 +msgid "Custom table filters are active" +msgstr "" + +#: src/tables/InvenTreeTableHeader.tsx:169 msgid "Delete selected records" msgstr "" -#: src/tables/InvenTreeTable.tsx:649 +#: src/tables/InvenTreeTableHeader.tsx:188 msgid "Refresh data" msgstr "" -#: src/tables/InvenTreeTable.tsx:675 -msgid "Table filters" -msgstr "" - #: src/tables/TableHoverCard.tsx:35 -msgid "item-{idx}" -msgstr "" +#~ msgid "item-{idx}" +#~ msgstr "item-{idx}" #: src/tables/UploadAction.tsx:7 #~ msgid "Upload Data" @@ -5607,31 +6684,36 @@ msgid "Part Information" msgstr "" #: src/tables/bom/BomTable.tsx:212 -#: src/tables/build/BuildLineTable.tsx:126 +#: src/tables/build/BuildLineTable.tsx:257 #: src/tables/part/PartTable.tsx:125 msgid "External stock" msgstr "" #: src/tables/bom/BomTable.tsx:220 -#: src/tables/build/BuildLineTable.tsx:89 +#: src/tables/build/BuildLineTable.tsx:220 msgid "Includes substitute stock" msgstr "" #: src/tables/bom/BomTable.tsx:229 -#: src/tables/build/BuildLineTable.tsx:99 -#: src/tables/sales/SalesOrderLineItemTable.tsx:127 +#: src/tables/build/BuildLineTable.tsx:230 +#: src/tables/sales/SalesOrderLineItemTable.tsx:135 msgid "Includes variant stock" msgstr "" +#: src/tables/bom/BomTable.tsx:245 +#: src/tables/part/PartTable.tsx:92 +msgid "Building" +msgstr "" + #: src/tables/bom/BomTable.tsx:254 #: src/tables/part/PartTable.tsx:153 -#: src/tables/sales/SalesOrderLineItemTable.tsx:150 -#: src/tables/stock/StockItemTable.tsx:216 +#: src/tables/sales/SalesOrderLineItemTable.tsx:158 +#: src/tables/stock/StockItemTable.tsx:206 msgid "Stock Information" msgstr "" #: src/tables/bom/BomTable.tsx:285 -#: src/tables/build/BuildLineTable.tsx:248 +#: src/tables/build/BuildLineTable.tsx:409 msgid "Consumable item" msgstr "" @@ -5644,7 +6726,7 @@ msgstr "" #~ msgstr "Create BOM Item" #: src/tables/bom/BomTable.tsx:306 -#: src/tables/build/BuildLineTable.tsx:69 +#: src/tables/build/BuildLineTable.tsx:200 msgid "Show testable items" msgstr "" @@ -5657,11 +6739,12 @@ msgid "Show trackable items" msgstr "" #: src/tables/bom/BomTable.tsx:316 -#: src/tables/build/BuildLineTable.tsx:64 +#: src/tables/build/BuildLineTable.tsx:195 msgid "Show assembled items" msgstr "" #: src/tables/bom/BomTable.tsx:321 +#: src/tables/build/BuildLineTable.tsx:180 msgid "Show items with available stock" msgstr "" @@ -5705,7 +6788,7 @@ msgstr "" #: src/tables/bom/BomTable.tsx:345 #: src/tables/bom/UsedInTable.tsx:79 -#: src/tables/build/BuildLineTable.tsx:58 +#: src/tables/build/BuildLineTable.tsx:189 msgid "Optional" msgstr "" @@ -5723,7 +6806,7 @@ msgstr "" #~ msgstr "Bom item deleted" #: src/tables/bom/BomTable.tsx:350 -#: src/tables/build/BuildLineTable.tsx:53 +#: src/tables/build/BuildLineTable.tsx:184 msgid "Consumable" msgstr "" @@ -5749,12 +6832,12 @@ msgid "Show items with pricing" msgstr "" #: src/tables/bom/BomTable.tsx:378 -#: src/tables/bom/BomTable.tsx:511 +#: src/tables/bom/BomTable.tsx:512 msgid "Import BOM Data" msgstr "" #: src/tables/bom/BomTable.tsx:388 -#: src/tables/bom/BomTable.tsx:523 +#: src/tables/bom/BomTable.tsx:526 msgid "Add BOM Item" msgstr "" @@ -5780,7 +6863,7 @@ msgstr "" #: src/tables/bom/BomTable.tsx:423 #: src/tables/bom/BomTable.tsx:426 -#: src/tables/bom/BomTable.tsx:517 +#: src/tables/bom/BomTable.tsx:519 msgid "Validate BOM" msgstr "" @@ -5812,21 +6895,15 @@ msgstr "" msgid "Edit Substitutes" msgstr "" -#: src/tables/bom/BomTable.tsx:539 -#: src/tables/part/PartParameterTable.tsx:193 -#: src/tables/part/PartTestTemplateTable.tsx:252 -msgid "Part is Locked" -msgstr "" - -#: src/tables/bom/BomTable.tsx:544 +#: src/tables/bom/BomTable.tsx:547 msgid "Bill of materials cannot be edited, as the part is locked" msgstr "" #: src/tables/bom/UsedInTable.tsx:33 -#: src/tables/build/BuildLineTable.tsx:63 +#: src/tables/build/BuildLineTable.tsx:194 #: src/tables/part/ParametricPartTable.tsx:233 #: src/tables/part/PartTable.tsx:190 -#: src/tables/stock/StockItemTable.tsx:300 +#: src/tables/stock/StockItemTable.tsx:304 msgid "Assembly" msgstr "" @@ -5844,285 +6921,347 @@ msgstr "" msgid "Show trackable assemblies" msgstr "" -#: src/tables/build/BuildAllocatedStockTable.tsx:54 +#: src/tables/build/BuildAllocatedStockTable.tsx:56 msgid "Allocated to Output" msgstr "" -#: src/tables/build/BuildAllocatedStockTable.tsx:55 +#: src/tables/build/BuildAllocatedStockTable.tsx:57 msgid "Show items allocated to a build output" msgstr "" -#: src/tables/build/BuildAllocatedStockTable.tsx:76 -#: src/tables/part/PartPurchaseOrdersTable.tsx:125 -#: src/tables/sales/SalesOrderAllocationTable.tsx:62 +#: src/tables/build/BuildAllocatedStockTable.tsx:65 +#: src/tables/build/BuildOrderTable.tsx:159 +#: src/tables/part/PartParameterTable.tsx:212 +#: src/tables/part/PartPurchaseOrdersTable.tsx:138 +#: src/tables/sales/ReturnOrderTable.tsx:84 +#: src/tables/sales/SalesOrderAllocationTable.tsx:68 +#: src/tables/sales/SalesOrderTable.tsx:84 +#: src/tables/stock/StockItemTable.tsx:339 +msgid "Include Variants" +msgstr "" + +#: src/tables/build/BuildAllocatedStockTable.tsx:66 +#: src/tables/build/BuildOrderTable.tsx:160 +#: src/tables/part/PartPurchaseOrdersTable.tsx:139 +#: src/tables/sales/ReturnOrderTable.tsx:85 +#: src/tables/sales/SalesOrderAllocationTable.tsx:69 +#: src/tables/sales/SalesOrderTable.tsx:85 +msgid "Include orders for part variants" +msgstr "" + +#: src/tables/build/BuildAllocatedStockTable.tsx:89 +#: src/tables/part/PartPurchaseOrdersTable.tsx:131 +#: src/tables/sales/SalesOrderAllocationTable.tsx:93 msgid "Order Status" msgstr "" -#: src/tables/build/BuildAllocatedStockTable.tsx:96 -#: src/tables/sales/SalesOrderAllocationTable.tsx:75 +#: src/tables/build/BuildAllocatedStockTable.tsx:117 +#: src/tables/sales/SalesOrderAllocationTable.tsx:126 msgid "Allocated Quantity" msgstr "" -#: src/tables/build/BuildAllocatedStockTable.tsx:116 -#: src/tables/sales/SalesOrderAllocationTable.tsx:94 +#: src/tables/build/BuildAllocatedStockTable.tsx:137 +#: src/tables/sales/SalesOrderAllocationTable.tsx:120 msgid "Available Quantity" msgstr "" -#: src/tables/build/BuildAllocatedStockTable.tsx:126 -#: src/tables/build/BuildOrderTestTable.tsx:176 -#: src/tables/build/BuildOrderTestTable.tsx:200 -#: src/tables/build/BuildOutputTable.tsx:312 -msgid "Build Output" +#: src/tables/build/BuildAllocatedStockTable.tsx:164 +#: src/tables/build/BuildLineTable.tsx:513 +msgid "Edit Stock Allocation" msgstr "" -#: src/tables/build/BuildAllocatedStockTable.tsx:143 -msgid "Edit Build Item" -msgstr "" +#: src/tables/build/BuildAllocatedStockTable.tsx:164 +#~ msgid "Edit Build Item" +#~ msgstr "Edit Build Item" -#: src/tables/build/BuildAllocatedStockTable.tsx:153 -msgid "Delete Build Item" -msgstr "" +#: src/tables/build/BuildAllocatedStockTable.tsx:174 +#~ msgid "Delete Build Item" +#~ msgstr "Delete Build Item" -#: src/tables/build/BuildLineTable.tsx:43 -#: src/tables/stock/StockItemTable.tsx:305 -msgid "Allocated" -msgstr "" - -#: src/tables/build/BuildLineTable.tsx:44 -msgid "Show allocated lines" -msgstr "" - -#: src/tables/build/BuildLineTable.tsx:49 -msgid "Show lines with available stock" -msgstr "" - -#: src/tables/build/BuildLineTable.tsx:54 -msgid "Show consumable lines" +#: src/tables/build/BuildAllocatedStockTable.tsx:177 +#: src/tables/build/BuildLineTable.tsx:526 +msgid "Delete Stock Allocation" msgstr "" #: src/tables/build/BuildLineTable.tsx:59 +#~ msgid "Show lines with available stock" +#~ msgstr "Show lines with available stock" + +#: src/tables/build/BuildLineTable.tsx:175 +msgid "Show allocated lines" +msgstr "" + +#: src/tables/build/BuildLineTable.tsx:185 +msgid "Show consumable lines" +msgstr "" + +#: src/tables/build/BuildLineTable.tsx:190 msgid "Show optional lines" msgstr "" -#: src/tables/build/BuildLineTable.tsx:68 +#: src/tables/build/BuildLineTable.tsx:199 #: src/tables/part/PartTable.tsx:208 msgid "Testable" msgstr "" -#: src/tables/build/BuildLineTable.tsx:73 -#: src/tables/stock/StockItemTable.tsx:364 +#: src/tables/build/BuildLineTable.tsx:204 +#: src/tables/stock/StockItemTable.tsx:368 msgid "Tracked" msgstr "" -#: src/tables/build/BuildLineTable.tsx:74 +#: src/tables/build/BuildLineTable.tsx:205 msgid "Show tracked lines" msgstr "" -#: src/tables/build/BuildLineTable.tsx:108 -#: src/tables/sales/SalesOrderLineItemTable.tsx:133 +#: src/tables/build/BuildLineTable.tsx:239 +#: src/tables/sales/SalesOrderLineItemTable.tsx:141 msgid "In production" msgstr "" -#: src/tables/build/BuildLineTable.tsx:136 +#: src/tables/build/BuildLineTable.tsx:267 msgid "Insufficient stock" msgstr "" -#: src/tables/build/BuildLineTable.tsx:152 -#: src/tables/sales/SalesOrderLineItemTable.tsx:121 -#: src/tables/stock/StockItemTable.tsx:186 +#: src/tables/build/BuildLineTable.tsx:283 +#: src/tables/sales/SalesOrderLineItemTable.tsx:129 +#: src/tables/stock/StockItemTable.tsx:175 msgid "No stock available" msgstr "" -#: src/tables/build/BuildLineTable.tsx:201 +#: src/tables/build/BuildLineTable.tsx:355 msgid "Gets Inherited" msgstr "" -#: src/tables/build/BuildLineTable.tsx:210 +#: src/tables/build/BuildLineTable.tsx:366 msgid "Unit Quantity" msgstr "" -#: src/tables/build/BuildLineTable.tsx:267 -#: src/tables/sales/SalesOrderLineItemTable.tsx:230 +#: src/tables/build/BuildLineTable.tsx:381 +msgid "Required Quantity" +msgstr "" + +#: src/tables/build/BuildLineTable.tsx:432 +#: src/tables/sales/SalesOrderLineItemTable.tsx:254 msgid "Create Build Order" msgstr "" -#: src/tables/build/BuildLineTable.tsx:298 -msgid "Allocate Stock" +#: src/tables/build/BuildLineTable.tsx:460 +msgid "Auto allocation in progress" msgstr "" -#: src/tables/build/BuildLineTable.tsx:305 +#: src/tables/build/BuildLineTable.tsx:463 +#: src/tables/build/BuildLineTable.tsx:632 +msgid "Auto Allocate Stock" +msgstr "" + +#: src/tables/build/BuildLineTable.tsx:464 +msgid "Automatically allocate stock to this build according to the selected options" +msgstr "" + +#: src/tables/build/BuildLineTable.tsx:482 +#: src/tables/build/BuildLineTable.tsx:496 +#: src/tables/build/BuildLineTable.tsx:579 +#: src/tables/build/BuildLineTable.tsx:664 +#: src/tables/build/BuildOutputTable.tsx:314 +#: src/tables/build/BuildOutputTable.tsx:319 +msgid "Deallocate Stock" +msgstr "" + +#: src/tables/build/BuildLineTable.tsx:498 +msgid "Deallocate all untracked stock for this build order" +msgstr "" + +#: src/tables/build/BuildLineTable.tsx:500 +msgid "Deallocate stock from the selected line item" +msgstr "" + +#: src/tables/build/BuildLineTable.tsx:504 +msgid "Stock has been deallocated" +msgstr "" + +#: src/tables/build/BuildLineTable.tsx:589 msgid "Order Stock" msgstr "" -#: src/tables/build/BuildLineTable.tsx:312 +#: src/tables/build/BuildLineTable.tsx:596 msgid "Build Stock" msgstr "" -#: src/tables/build/BuildOrderTable.tsx:111 -msgid "Show active orders" +#: src/tables/build/BuildLineTable.tsx:610 +msgid "View Part" msgstr "" #: src/tables/build/BuildOrderTable.tsx:116 -msgid "Cascade" -msgstr "" +#~ msgid "Cascade" +#~ msgstr "Cascade" #: src/tables/build/BuildOrderTable.tsx:117 -msgid "Display recursive child orders" +#~ msgid "Display recursive child orders" +#~ msgstr "Display recursive child orders" + +#: src/tables/build/BuildOrderTable.tsx:121 +msgid "Show outstanding orders" msgstr "" -#: src/tables/build/BuildOrderTable.tsx:123 -#: src/tables/part/PartPurchaseOrdersTable.tsx:126 -#: src/tables/purchasing/PurchaseOrderTable.tsx:56 -#: src/tables/sales/ReturnOrderTable.tsx:47 -#: src/tables/sales/SalesOrderTable.tsx:54 +#: src/tables/build/BuildOrderTable.tsx:121 +#~ msgid "Show active orders" +#~ msgstr "Show active orders" + +#: src/tables/build/BuildOrderTable.tsx:122 +#~ msgid "Show overdue status" +#~ msgstr "Show overdue status" + +#: src/tables/build/BuildOrderTable.tsx:126 +#: src/tables/part/PartPurchaseOrdersTable.tsx:132 +#: src/tables/purchasing/PurchaseOrderTable.tsx:59 +#: src/tables/sales/ReturnOrderTable.tsx:57 +#: src/tables/sales/SalesOrderTable.tsx:57 msgid "Filter by order status" msgstr "" -#: src/tables/build/BuildOrderTable.tsx:130 -msgid "Show overdue status" -msgstr "" - -#: src/tables/build/BuildOrderTable.tsx:141 -#: src/tables/purchasing/PurchaseOrderTable.tsx:65 -#: src/tables/sales/ReturnOrderTable.tsx:56 -#: src/tables/sales/SalesOrderTable.tsx:63 +#: src/tables/build/BuildOrderTable.tsx:136 +#: src/tables/purchasing/PurchaseOrderTable.tsx:70 +#: src/tables/sales/ReturnOrderTable.tsx:68 +#: src/tables/sales/SalesOrderTable.tsx:68 msgid "Filter by project code" msgstr "" -#: src/tables/build/BuildOrderTable.tsx:146 -#: src/tables/purchasing/PurchaseOrderTable.tsx:70 -#: src/tables/sales/ReturnOrderTable.tsx:61 -#: src/tables/sales/SalesOrderTable.tsx:68 -msgid "Has Project Code" -msgstr "" - -#: src/tables/build/BuildOrderTable.tsx:147 +#: src/tables/build/BuildOrderTable.tsx:139 #: src/tables/purchasing/PurchaseOrderTable.tsx:71 #: src/tables/sales/ReturnOrderTable.tsx:62 #: src/tables/sales/SalesOrderTable.tsx:69 -msgid "Filter by whether the purchase order has a project code" -msgstr "" +#~ msgid "Filter by whether the purchase order has a project code" +#~ msgstr "Filter by whether the purchase order has a project code" -#: src/tables/build/BuildOrderTable.tsx:152 +#: src/tables/build/BuildOrderTable.tsx:143 msgid "Filter by user who issued this order" msgstr "" -#: src/tables/build/BuildOrderTable.tsx:158 -#: src/tables/purchasing/PurchaseOrderTable.tsx:76 -#: src/tables/sales/ReturnOrderTable.tsx:67 -#: src/tables/sales/SalesOrderTable.tsx:74 +#: src/tables/build/BuildOrderTable.tsx:149 +#: src/tables/purchasing/PurchaseOrderTable.tsx:77 +#: src/tables/sales/ReturnOrderTable.tsx:75 +#: src/tables/sales/SalesOrderTable.tsx:75 msgid "Filter by responsible owner" msgstr "" -#: src/tables/build/BuildOrderTestTable.tsx:75 -#: src/tables/build/BuildOrderTestTable.tsx:111 -#: src/tables/stock/StockItemTestResultTable.tsx:257 -#: src/tables/stock/StockItemTestResultTable.tsx:329 -#: src/tables/stock/StockItemTestResultTable.tsx:384 +#: src/tables/build/BuildOrderTestTable.tsx:76 +#: src/tables/build/BuildOrderTestTable.tsx:112 +#: src/tables/stock/StockItemTestResultTable.tsx:275 +#: src/tables/stock/StockItemTestResultTable.tsx:347 +#: src/tables/stock/StockItemTestResultTable.tsx:403 msgid "Add Test Result" msgstr "" -#: src/tables/build/BuildOrderTestTable.tsx:82 -#: src/tables/stock/StockItemTestResultTable.tsx:259 +#: src/tables/build/BuildOrderTestTable.tsx:83 +#: src/tables/stock/StockItemTestResultTable.tsx:277 msgid "Test result added" msgstr "" -#: src/tables/build/BuildOrderTestTable.tsx:110 -#: src/tables/stock/StockItemTestResultTable.tsx:174 +#: src/tables/build/BuildOrderTestTable.tsx:111 +#: src/tables/stock/StockItemTestResultTable.tsx:180 msgid "No Result" msgstr "" -#: src/tables/build/BuildOrderTestTable.tsx:220 +#: src/tables/build/BuildOrderTestTable.tsx:221 msgid "Show build outputs currently in production" msgstr "" +#: src/tables/build/BuildOutputTable.tsx:76 +msgid "Build Output Stock Allocation" +msgstr "" + #: src/tables/build/BuildOutputTable.tsx:161 #~ msgid "Delete build output" #~ msgstr "Delete build output" -#: src/tables/build/BuildOutputTable.tsx:173 -#: src/tables/build/BuildOutputTable.tsx:211 +#: src/tables/build/BuildOutputTable.tsx:258 +#: src/tables/build/BuildOutputTable.tsx:374 msgid "Add Build Output" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:216 +#: src/tables/build/BuildOutputTable.tsx:304 +#~ msgid "Edit build output" +#~ msgstr "Edit build output" + +#: src/tables/build/BuildOutputTable.tsx:306 +#: src/tables/build/BuildOutputTable.tsx:417 +msgid "Edit Build Output" +msgstr "" + +#: src/tables/build/BuildOutputTable.tsx:321 +msgid "This action will deallocate all stock from the selected build output" +msgstr "" + +#: src/tables/build/BuildOutputTable.tsx:341 msgid "Complete selected outputs" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:226 +#: src/tables/build/BuildOutputTable.tsx:352 msgid "Scrap selected outputs" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:236 +#: src/tables/build/BuildOutputTable.tsx:363 msgid "Cancel selected outputs" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:252 +#: src/tables/build/BuildOutputTable.tsx:385 msgid "Allocate" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:253 +#: src/tables/build/BuildOutputTable.tsx:386 msgid "Allocate stock to build output" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:259 +#: src/tables/build/BuildOutputTable.tsx:396 msgid "Deallocate" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:260 +#: src/tables/build/BuildOutputTable.tsx:397 msgid "Deallocate stock from build output" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:267 +#: src/tables/build/BuildOutputTable.tsx:408 msgid "Complete build output" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:276 +#: src/tables/build/BuildOutputTable.tsx:424 msgid "Scrap" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:277 +#: src/tables/build/BuildOutputTable.tsx:425 msgid "Scrap build output" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:280 -#~ msgid "Allocated Items" -#~ msgstr "Allocated Items" - -#: src/tables/build/BuildOutputTable.tsx:287 +#: src/tables/build/BuildOutputTable.tsx:435 msgid "Cancel build output" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:325 -msgid "Batch" -msgstr "" - -#: src/tables/build/BuildOutputTable.tsx:340 +#: src/tables/build/BuildOutputTable.tsx:488 msgid "Allocated Lines" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:355 +#: src/tables/build/BuildOutputTable.tsx:503 msgid "Required Tests" msgstr "" -#: src/tables/company/AddressTable.tsx:121 -#: src/tables/company/AddressTable.tsx:185 +#: src/tables/company/AddressTable.tsx:118 +#: src/tables/company/AddressTable.tsx:183 msgid "Add Address" msgstr "" -#: src/tables/company/AddressTable.tsx:126 +#: src/tables/company/AddressTable.tsx:123 msgid "Address created" msgstr "" -#: src/tables/company/AddressTable.tsx:135 +#: src/tables/company/AddressTable.tsx:132 msgid "Edit Address" msgstr "" -#: src/tables/company/AddressTable.tsx:143 +#: src/tables/company/AddressTable.tsx:140 msgid "Delete Address" msgstr "" -#: src/tables/company/AddressTable.tsx:144 +#: src/tables/company/AddressTable.tsx:141 msgid "Are you sure you want to delete this address?" msgstr "" @@ -6130,24 +7269,24 @@ msgstr "" #~ msgid "New Company" #~ msgstr "New Company" -#: src/tables/company/CompanyTable.tsx:74 -#: src/tables/company/CompanyTable.tsx:123 +#: src/tables/company/CompanyTable.tsx:75 +#: src/tables/company/CompanyTable.tsx:125 msgid "Add Company" msgstr "" -#: src/tables/company/CompanyTable.tsx:96 +#: src/tables/company/CompanyTable.tsx:97 msgid "Show active companies" msgstr "" -#: src/tables/company/CompanyTable.tsx:101 +#: src/tables/company/CompanyTable.tsx:102 msgid "Show companies which are suppliers" msgstr "" -#: src/tables/company/CompanyTable.tsx:106 +#: src/tables/company/CompanyTable.tsx:107 msgid "Show companies which are manufacturers" msgstr "" -#: src/tables/company/CompanyTable.tsx:111 +#: src/tables/company/CompanyTable.tsx:112 msgid "Show companies which are customers" msgstr "" @@ -6163,96 +7302,99 @@ msgstr "" msgid "Delete Contact" msgstr "" -#: src/tables/company/ContactTable.tsx:129 +#: src/tables/company/ContactTable.tsx:130 msgid "Add contact" msgstr "" -#: src/tables/general/AttachmentTable.tsx:130 +#: src/tables/general/AttachmentTable.tsx:135 msgid "File uploaded" msgstr "" -#: src/tables/general/AttachmentTable.tsx:131 +#: src/tables/general/AttachmentTable.tsx:136 msgid "File {0} uploaded successfully" msgstr "" -#: src/tables/general/AttachmentTable.tsx:142 +#: src/tables/general/AttachmentTable.tsx:147 msgid "Upload Error" msgstr "" -#: src/tables/general/AttachmentTable.tsx:143 +#: src/tables/general/AttachmentTable.tsx:148 msgid "File could not be uploaded" msgstr "" -#: src/tables/general/AttachmentTable.tsx:191 +#: src/tables/general/AttachmentTable.tsx:196 msgid "Upload Attachment" msgstr "" -#: src/tables/general/AttachmentTable.tsx:201 +#: src/tables/general/AttachmentTable.tsx:206 msgid "Edit Attachment" msgstr "" -#: src/tables/general/AttachmentTable.tsx:215 +#: src/tables/general/AttachmentTable.tsx:220 msgid "Delete Attachment" msgstr "" -#: src/tables/general/AttachmentTable.tsx:225 +#: src/tables/general/AttachmentTable.tsx:230 msgid "Is Link" msgstr "" -#: src/tables/general/AttachmentTable.tsx:226 +#: src/tables/general/AttachmentTable.tsx:231 msgid "Show link attachments" msgstr "" -#: src/tables/general/AttachmentTable.tsx:230 +#: src/tables/general/AttachmentTable.tsx:235 msgid "Is File" msgstr "" -#: src/tables/general/AttachmentTable.tsx:231 +#: src/tables/general/AttachmentTable.tsx:236 msgid "Show file attachments" msgstr "" -#: src/tables/general/AttachmentTable.tsx:240 +#: src/tables/general/AttachmentTable.tsx:245 msgid "Add attachment" msgstr "" -#: src/tables/general/AttachmentTable.tsx:251 -msgid "Add external link" -msgstr "" - #: src/tables/general/AttachmentTable.tsx:254 #~ msgid "Upload attachment" #~ msgstr "Upload attachment" -#: src/tables/general/AttachmentTable.tsx:299 +#: src/tables/general/AttachmentTable.tsx:256 +msgid "Add external link" +msgstr "" + +#: src/tables/general/AttachmentTable.tsx:304 msgid "No attachments found" msgstr "" -#: src/tables/general/AttachmentTable.tsx:337 +#: src/tables/general/AttachmentTable.tsx:343 msgid "Drag attachment file here to upload" msgstr "" #: src/tables/general/ExtraLineItemTable.tsx:86 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:251 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:60 -#: src/tables/sales/SalesOrderLineItemTable.tsx:196 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:263 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:362 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:72 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:168 +#: src/tables/sales/SalesOrderLineItemTable.tsx:206 +#: src/tables/sales/SalesOrderLineItemTable.tsx:291 msgid "Add Line Item" msgstr "" #: src/tables/general/ExtraLineItemTable.tsx:98 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:271 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:72 -#: src/tables/sales/SalesOrderLineItemTable.tsx:214 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:283 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:84 +#: src/tables/sales/SalesOrderLineItemTable.tsx:224 msgid "Edit Line Item" msgstr "" #: src/tables/general/ExtraLineItemTable.tsx:106 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:279 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:80 -#: src/tables/sales/SalesOrderLineItemTable.tsx:222 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:291 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:92 +#: src/tables/sales/SalesOrderLineItemTable.tsx:232 msgid "Delete Line Item" msgstr "" -#: src/tables/general/ExtraLineItemTable.tsx:142 +#: src/tables/general/ExtraLineItemTable.tsx:143 msgid "Add Extra Line Item" msgstr "" @@ -6261,12 +7403,12 @@ msgid "Machine restarted" msgstr "" #: src/tables/machine/MachineListTable.tsx:212 -#: src/tables/machine/MachineListTable.tsx:263 +#: src/tables/machine/MachineListTable.tsx:261 msgid "Edit machine" msgstr "" #: src/tables/machine/MachineListTable.tsx:226 -#: src/tables/machine/MachineListTable.tsx:267 +#: src/tables/machine/MachineListTable.tsx:265 msgid "Delete machine" msgstr "" @@ -6278,51 +7420,50 @@ msgstr "" msgid "Are you sure you want to remove the machine \"{0}\"?" msgstr "" -#: src/tables/machine/MachineListTable.tsx:255 -#: src/tables/machine/MachineListTable.tsx:432 +#: src/tables/machine/MachineListTable.tsx:254 +#: src/tables/machine/MachineListTable.tsx:442 msgid "Restart required" msgstr "" -#: src/tables/machine/MachineListTable.tsx:259 +#: src/tables/machine/MachineListTable.tsx:258 msgid "Machine Actions" msgstr "" -#: src/tables/machine/MachineListTable.tsx:272 +#: src/tables/machine/MachineListTable.tsx:270 msgid "Restart" msgstr "" -#: src/tables/machine/MachineListTable.tsx:274 +#: src/tables/machine/MachineListTable.tsx:272 msgid "Restart machine" msgstr "" -#: src/tables/machine/MachineListTable.tsx:276 +#: src/tables/machine/MachineListTable.tsx:274 msgid "manual restart required" msgstr "" +#: src/tables/machine/MachineListTable.tsx:291 +#~ msgid "Machine information" +#~ msgstr "Machine information" + #: src/tables/machine/MachineListTable.tsx:292 -msgid "Machine information" +msgid "Machine Information" msgstr "" -#: src/tables/machine/MachineListTable.tsx:303 -#: src/tables/machine/MachineListTable.tsx:599 +#: src/tables/machine/MachineListTable.tsx:302 +#: src/tables/machine/MachineListTable.tsx:610 msgid "Machine Type" msgstr "" -#: src/tables/machine/MachineListTable.tsx:316 +#: src/tables/machine/MachineListTable.tsx:315 msgid "Machine Driver" msgstr "" -#: src/tables/machine/MachineListTable.tsx:329 +#: src/tables/machine/MachineListTable.tsx:330 msgid "Initialized" msgstr "" -#: src/tables/machine/MachineListTable.tsx:350 -#: src/tables/machine/MachineTypeTable.tsx:261 -msgid "Errors" -msgstr "" - -#: src/tables/machine/MachineListTable.tsx:358 -#: src/tables/machine/MachineTypeTable.tsx:269 +#: src/tables/machine/MachineListTable.tsx:359 +#: src/tables/machine/MachineTypeTable.tsx:290 msgid "No errors reported" msgstr "" @@ -6330,7 +7471,7 @@ msgstr "" msgid "Machine Settings" msgstr "" -#: src/tables/machine/MachineListTable.tsx:389 +#: src/tables/machine/MachineListTable.tsx:394 msgid "Driver Settings" msgstr "" @@ -6338,86 +7479,109 @@ msgstr "" #~ msgid "Create machine" #~ msgstr "Create machine" -#: src/tables/machine/MachineListTable.tsx:506 +#: src/tables/machine/MachineListTable.tsx:516 +#: src/tables/machine/MachineListTable.tsx:558 msgid "Add machine" msgstr "" #: src/tables/machine/MachineListTable.tsx:561 -msgid "Machine detail" +#~ msgid "Machine detail" +#~ msgstr "Machine detail" + +#: src/tables/machine/MachineListTable.tsx:572 +msgid "Machine Detail" msgstr "" -#: src/tables/machine/MachineListTable.tsx:608 +#: src/tables/machine/MachineListTable.tsx:619 msgid "Driver" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:73 +#: src/tables/machine/MachineTypeTable.tsx:78 msgid "Builtin driver" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:89 +#: src/tables/machine/MachineTypeTable.tsx:96 +msgid "Not Found" +msgstr "" + +#: src/tables/machine/MachineTypeTable.tsx:99 msgid "Machine type not found." msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:97 -msgid "Machine type information" +#: src/tables/machine/MachineTypeTable.tsx:99 +#~ msgid "Machine type information" +#~ msgstr "Machine type information" + +#: src/tables/machine/MachineTypeTable.tsx:109 +msgid "Machine Type Information" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:110 -#: src/tables/machine/MachineTypeTable.tsx:217 +#: src/tables/machine/MachineTypeTable.tsx:124 +#: src/tables/machine/MachineTypeTable.tsx:238 msgid "Slug" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:118 -#: src/tables/machine/MachineTypeTable.tsx:238 +#: src/tables/machine/MachineTypeTable.tsx:135 +#: src/tables/machine/MachineTypeTable.tsx:259 msgid "Provider plugin" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:130 -#: src/tables/machine/MachineTypeTable.tsx:250 +#: src/tables/machine/MachineTypeTable.tsx:147 +#: src/tables/machine/MachineTypeTable.tsx:271 msgid "Provider file" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:135 -#: src/tables/machine/MachineTypeTable.tsx:255 -#: src/tables/plugin/PluginListTable.tsx:180 -#: src/tables/plugin/PluginListTable.tsx:568 -msgid "Builtin" +#: src/tables/machine/MachineTypeTable.tsx:148 +#~ msgid "Available drivers" +#~ msgstr "Available drivers" + +#: src/tables/machine/MachineTypeTable.tsx:162 +msgid "Available Drivers" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:146 -msgid "Available drivers" -msgstr "" - -#: src/tables/machine/MachineTypeTable.tsx:196 +#: src/tables/machine/MachineTypeTable.tsx:217 msgid "Machine driver not found." msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:204 +#: src/tables/machine/MachineTypeTable.tsx:225 msgid "Machine driver information" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:224 +#: src/tables/machine/MachineTypeTable.tsx:245 msgid "Machine type" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:327 +#: src/tables/machine/MachineTypeTable.tsx:338 +#~ msgid "Machine type detail" +#~ msgstr "Machine type detail" + +#: src/tables/machine/MachineTypeTable.tsx:348 msgid "Builtin type" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:336 -msgid "Machine type detail" +#: src/tables/machine/MachineTypeTable.tsx:348 +#~ msgid "Machine driver detail" +#~ msgstr "Machine driver detail" + +#: src/tables/machine/MachineTypeTable.tsx:357 +msgid "Machine Type Detail" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:346 -msgid "Machine driver detail" +#: src/tables/machine/MachineTypeTable.tsx:367 +msgid "Machine Driver Detail" msgstr "" #: src/tables/notifications/NotificationsTable.tsx:26 msgid "Age" msgstr "" +#: src/tables/notifications/NotificationsTable.tsx:36 +msgid "Notification" +msgstr "" + #: src/tables/notifications/NotificationsTable.tsx:40 #: src/tables/plugin/PluginErrorTable.tsx:37 +#: src/tables/settings/ErrorTable.tsx:50 msgid "Message" msgstr "" @@ -6451,33 +7615,32 @@ msgstr "" msgid "Show assembly parts" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:68 +#: src/tables/part/PartCategoryTable.tsx:48 +msgid "You are subscribed to notifications for this category" +msgstr "" + +#: src/tables/part/PartCategoryTable.tsx:80 #: src/tables/part/PartTable.tsx:196 msgid "Include Subcategories" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:69 +#: src/tables/part/PartCategoryTable.tsx:81 msgid "Include subcategories in results" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:74 +#: src/tables/part/PartCategoryTable.tsx:86 msgid "Show structural categories" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:78 -#: src/tables/part/PartTable.tsx:294 -msgid "Subscribed" -msgstr "" - -#: src/tables/part/PartCategoryTable.tsx:79 +#: src/tables/part/PartCategoryTable.tsx:91 msgid "Show categories to which the user is subscribed" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:86 +#: src/tables/part/PartCategoryTable.tsx:100 msgid "New Part Category" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:112 +#: src/tables/part/PartCategoryTable.tsx:129 msgid "Add Part Category" msgstr "" @@ -6523,11 +7686,6 @@ msgstr "" msgid "Part parameters cannot be edited, as the part is locked" msgstr "" -#: src/tables/part/PartParameterTable.tsx:212 -#: src/tables/stock/StockItemTable.tsx:335 -msgid "Include Variants" -msgstr "" - #: src/tables/part/PartParameterTemplateTable.tsx:31 msgid "Checkbox" msgstr "" @@ -6554,6 +7712,7 @@ msgid "Show templates with units" msgstr "" #: src/tables/part/PartParameterTemplateTable.tsx:85 +#: src/tables/part/PartParameterTemplateTable.tsx:141 msgid "Add Parameter Template" msgstr "" @@ -6566,23 +7725,19 @@ msgid "Delete Parameter Template" msgstr "" #: src/tables/part/PartParameterTemplateTable.tsx:141 -msgid "Add parameter template" -msgstr "" +#~ msgid "Add parameter template" +#~ msgstr "Add parameter template" -#: src/tables/part/PartPurchaseOrdersTable.tsx:77 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:162 +#: src/tables/part/PartPurchaseOrdersTable.tsx:78 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:168 msgid "Total Quantity" msgstr "" -#: src/tables/part/PartPurchaseOrdersTable.tsx:115 -msgid "Pending" -msgstr "" - -#: src/tables/part/PartPurchaseOrdersTable.tsx:116 +#: src/tables/part/PartPurchaseOrdersTable.tsx:122 msgid "Show pending orders" msgstr "" -#: src/tables/part/PartPurchaseOrdersTable.tsx:121 +#: src/tables/part/PartPurchaseOrdersTable.tsx:127 msgid "Show received items" msgstr "" @@ -6728,22 +7883,13 @@ msgstr "" msgid "Results" msgstr "" -#: src/tables/part/PartTestTemplateTable.tsx:76 -msgid "No Results" -msgstr "" - -#: src/tables/part/PartTestTemplateTable.tsx:106 -#: src/tables/stock/StockItemTestResultTable.tsx:365 -msgid "Required" -msgstr "" - #: src/tables/part/PartTestTemplateTable.tsx:107 msgid "Show required tests" msgstr "" #: src/tables/part/PartTestTemplateTable.tsx:111 -#: src/tables/settings/TemplateTable.tsx:167 -#: src/tables/settings/TemplateTable.tsx:283 +#: src/tables/settings/TemplateTable.tsx:247 +#: src/tables/settings/TemplateTable.tsx:363 msgid "Enabled" msgstr "" @@ -6784,7 +7930,7 @@ msgid "Show tests which have recorded results" msgstr "" #: src/tables/part/PartTestTemplateTable.tsx:154 -#: src/tables/part/PartTestTemplateTable.tsx:237 +#: src/tables/part/PartTestTemplateTable.tsx:238 msgid "Add Test Template" msgstr "" @@ -6808,7 +7954,7 @@ msgstr "" msgid "View Parent Part" msgstr "" -#: src/tables/part/PartTestTemplateTable.tsx:257 +#: src/tables/part/PartTestTemplateTable.tsx:258 msgid "Part templates cannot be edited, as the part is locked" msgstr "" @@ -6836,28 +7982,49 @@ msgstr "" msgid "Show trackable variants" msgstr "" -#: src/tables/part/RelatedPartTable.tsx:84 +#: src/tables/part/RelatedPartTable.tsx:86 +#: src/tables/part/RelatedPartTable.tsx:109 msgid "Add Related Part" msgstr "" -#: src/tables/part/RelatedPartTable.tsx:99 +#: src/tables/part/RelatedPartTable.tsx:101 msgid "Delete Related Part" msgstr "" -#: src/tables/part/RelatedPartTable.tsx:106 -msgid "Add related part" -msgstr "" +#: src/tables/part/RelatedPartTable.tsx:109 +#~ msgid "Add related part" +#~ msgstr "Add related part" #: src/tables/plugin/PluginErrorTable.tsx:29 msgid "Stage" msgstr "" -#: src/tables/plugin/PluginListTable.tsx:95 -msgid "Plugin with key {pluginKey} not found" +#: src/tables/plugin/PluginListTable.tsx:42 +msgid "Plugin is active" msgstr "" +#: src/tables/plugin/PluginListTable.tsx:48 +msgid "Plugin is inactive" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:55 +msgid "Plugin is not installed" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:76 +msgid "Plugin" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:95 +#~ msgid "Plugin with key {pluginKey} not found" +#~ msgstr "Plugin with key {pluginKey} not found" + #: src/tables/plugin/PluginListTable.tsx:97 -msgid "An error occurred while fetching plugin details" +#~ msgid "An error occurred while fetching plugin details" +#~ msgstr "An error occurred while fetching plugin details" + +#: src/tables/plugin/PluginListTable.tsx:109 +msgid "Description not available" msgstr "" #: src/tables/plugin/PluginListTable.tsx:113 @@ -6865,12 +8032,8 @@ msgstr "" #~ msgstr "Plugin with id {id} not found" #: src/tables/plugin/PluginListTable.tsx:122 -msgid "Plugin information" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:134 -msgid "Author" -msgstr "" +#~ msgid "Plugin information" +#~ msgstr "Plugin information" #: src/tables/plugin/PluginListTable.tsx:134 #~ msgid "Plugin Actions" @@ -6881,79 +8044,124 @@ msgstr "" #~ msgid "Edit plugin" #~ msgstr "Edit plugin" +#: src/tables/plugin/PluginListTable.tsx:144 +msgid "Confirm plugin activation" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:145 +msgid "Confirm plugin deactivation" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:150 +msgid "The selected plugin will be activated" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:151 +msgid "The selected plugin will be deactivated" +msgstr "" + #: src/tables/plugin/PluginListTable.tsx:152 #: src/tables/plugin/PluginListTable.tsx:153 #~ msgid "Reload" #~ msgstr "Reload" -#: src/tables/plugin/PluginListTable.tsx:154 -msgid "Plugin is not active" -msgstr "" - #: src/tables/plugin/PluginListTable.tsx:163 -msgid "Package information" -msgstr "" +#~ msgid "Package information" +#~ msgstr "Package information" #: src/tables/plugin/PluginListTable.tsx:169 -msgid "Package Name" +msgid "Deactivate" msgstr "" -#: src/tables/plugin/PluginListTable.tsx:175 -msgid "Installation Path" +#: src/tables/plugin/PluginListTable.tsx:183 +msgid "Activate" msgstr "" -#: src/tables/plugin/PluginListTable.tsx:185 -msgid "Package" +#: src/tables/plugin/PluginListTable.tsx:184 +msgid "Activate selected plugin" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:196 +msgid "Update selected plugin" msgstr "" #: src/tables/plugin/PluginListTable.tsx:197 -msgid "Plugin settings" -msgstr "" +#~ msgid "Plugin settings" +#~ msgstr "Plugin settings" #: src/tables/plugin/PluginListTable.tsx:214 -msgid "Plugin is active" +#: src/tables/stock/InstalledItemsTable.tsx:107 +msgid "Uninstall" msgstr "" -#: src/tables/plugin/PluginListTable.tsx:220 -msgid "Plugin is inactive" +#: src/tables/plugin/PluginListTable.tsx:215 +msgid "Uninstall selected plugin" msgstr "" -#: src/tables/plugin/PluginListTable.tsx:227 -msgid "Plugin is not installed" +#: src/tables/plugin/PluginListTable.tsx:233 +msgid "Delete selected plugin configuration" msgstr "" -#: src/tables/plugin/PluginListTable.tsx:253 -msgid "Plugin" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:287 -msgid "Description not available" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:319 -msgid "Confirm plugin activation" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:320 -msgid "Confirm plugin deactivation" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:325 -msgid "The selected plugin will be activated" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:326 -msgid "The selected plugin will be deactivated" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:334 +#: src/tables/plugin/PluginListTable.tsx:249 msgid "Activate Plugin" msgstr "" +#: src/tables/plugin/PluginListTable.tsx:270 +msgid "Install plugin" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:283 +msgid "Install" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:284 +msgid "Plugin installed successfully" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:289 +msgid "Uninstall Plugin" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:301 +msgid "Confirm plugin uninstall" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:304 +msgid "The selected plugin will be uninstalled." +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:308 +#~ msgid "This action cannot be undone." +#~ msgstr "This action cannot be undone." + +#: src/tables/plugin/PluginListTable.tsx:309 +msgid "Plugin uninstalled successfully" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:317 +msgid "Delete Plugin" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:318 +msgid "Deleting this plugin configuration will remove all associated settings and data. Are you sure you want to delete this plugin?" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:331 +msgid "Plugins reloaded" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:332 +msgid "Plugins were reloaded successfully" +msgstr "" + #: src/tables/plugin/PluginListTable.tsx:338 #~ msgid "Deactivate Plugin" #~ msgstr "Deactivate Plugin" +#: src/tables/plugin/PluginListTable.tsx:350 +msgid "Reload Plugins" +msgstr "" + #: src/tables/plugin/PluginListTable.tsx:354 #~ msgid "The following plugin will be activated" #~ msgstr "The following plugin will be activated" @@ -6962,16 +8170,16 @@ msgstr "" #~ msgid "The following plugin will be deactivated" #~ msgstr "The following plugin will be deactivated" -#: src/tables/plugin/PluginListTable.tsx:362 -msgid "Deactivate" +#: src/tables/plugin/PluginListTable.tsx:357 +msgid "Install Plugin" msgstr "" #: src/tables/plugin/PluginListTable.tsx:366 #~ msgid "Confirm" #~ msgstr "Confirm" -#: src/tables/plugin/PluginListTable.tsx:373 -msgid "Activate" +#: src/tables/plugin/PluginListTable.tsx:374 +msgid "Plugin Detail" msgstr "" #: src/tables/plugin/PluginListTable.tsx:376 @@ -6998,76 +8206,12 @@ msgstr "" #~ msgid "Error updating plugin" #~ msgstr "Error updating plugin" -#: src/tables/plugin/PluginListTable.tsx:406 -msgid "Uninstall" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:438 -msgid "Install plugin" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:451 -msgid "Install" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:452 -msgid "Plugin installed successfully" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:457 -msgid "Uninstall Plugin" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:469 -msgid "Confirm plugin uninstall" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:472 -msgid "The selected plugin will be uninstalled." -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:473 -msgid "This action cannot be undone." -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:477 -msgid "Plugin uninstalled successfully" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:484 -msgid "Delete Plugin" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:485 -msgid "Deleting this plugin configuration will remove all associated settings and data. Are you sure you want to delete this plugin?" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:498 -msgid "Plugins reloaded" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:499 -msgid "Plugins were reloaded successfully" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:515 -msgid "Reload Plugins" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:524 -msgid "Install Plugin" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:544 -msgid "Plugin Detail" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:573 +#: src/tables/plugin/PluginListTable.tsx:411 msgid "Sample" msgstr "" -#: src/tables/plugin/PluginListTable.tsx:578 -#: src/tables/stock/StockItemTable.tsx:340 +#: src/tables/plugin/PluginListTable.tsx:416 +#: src/tables/stock/StockItemTable.tsx:344 msgid "Installed" msgstr "" @@ -7116,82 +8260,78 @@ msgstr "" #~ msgid "Are you sure you want to remove this manufacturer part?" #~ msgstr "Are you sure you want to remove this manufacturer part?" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:102 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:339 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:103 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:356 msgid "Import Line Items" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:135 -msgid "Part Description" -msgstr "" - -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:201 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:207 msgid "Supplier Code" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:208 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:214 msgid "Supplier Link" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:215 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:220 msgid "Manufacturer Code" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:229 -msgid "Destination" +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:248 +msgid "Show line items which have been received" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:300 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:316 msgid "Receive line item" msgstr "" #: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:344 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:142 -#: src/tables/sales/SalesOrderLineItemTable.tsx:240 -msgid "Add line item" -msgstr "" +#: src/tables/sales/ReturnOrderLineItemTable.tsx:160 +#: src/tables/sales/SalesOrderLineItemTable.tsx:258 +#~ msgid "Add line item" +#~ msgstr "Add line item" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:354 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:373 msgid "Receive items" msgstr "" -#: src/tables/purchasing/SupplierPartTable.tsx:93 +#: src/tables/purchasing/SupplierPartTable.tsx:95 msgid "MPN" msgstr "" -#: src/tables/purchasing/SupplierPartTable.tsx:122 +#: src/tables/purchasing/SupplierPartTable.tsx:124 msgid "Base units" msgstr "" -#: src/tables/purchasing/SupplierPartTable.tsx:170 +#: src/tables/purchasing/SupplierPartTable.tsx:172 msgid "Supplier part created" msgstr "" -#: src/tables/purchasing/SupplierPartTable.tsx:176 +#: src/tables/purchasing/SupplierPartTable.tsx:179 msgid "Add supplier part" msgstr "" -#: src/tables/purchasing/SupplierPartTable.tsx:188 +#: src/tables/purchasing/SupplierPartTable.tsx:191 msgid "Show active supplier parts" msgstr "" -#: src/tables/purchasing/SupplierPartTable.tsx:192 -msgid "Active Part" -msgstr "" - -#: src/tables/purchasing/SupplierPartTable.tsx:193 -msgid "Show active internal parts" -msgstr "" - #: src/tables/purchasing/SupplierPartTable.tsx:193 #~ msgid "Supplier part updated" #~ msgstr "Supplier part updated" -#: src/tables/purchasing/SupplierPartTable.tsx:197 +#: src/tables/purchasing/SupplierPartTable.tsx:195 +msgid "Active Part" +msgstr "" + +#: src/tables/purchasing/SupplierPartTable.tsx:196 +msgid "Show active internal parts" +msgstr "" + +#: src/tables/purchasing/SupplierPartTable.tsx:200 msgid "Active Supplier" msgstr "" -#: src/tables/purchasing/SupplierPartTable.tsx:198 +#: src/tables/purchasing/SupplierPartTable.tsx:201 msgid "Show active suppliers" msgstr "" @@ -7203,99 +8343,187 @@ msgstr "" #~ msgid "Are you sure you want to remove this supplier part?" #~ msgstr "Are you sure you want to remove this supplier part?" -#: src/tables/sales/ReturnOrderLineItemTable.tsx:114 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:139 msgid "Received Date" msgstr "" -#: src/tables/sales/ReturnOrderLineItemTable.tsx:128 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:153 msgid "Show items which have been received" msgstr "" -#: src/tables/sales/ReturnOrderLineItemTable.tsx:133 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:158 msgid "Filter by line item status" msgstr "" -#: src/tables/sales/ReturnOrderLineItemTable.tsx:158 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:176 +msgid "Receive selected items" +msgstr "" + +#: src/tables/sales/ReturnOrderLineItemTable.tsx:205 msgid "Receive Item" msgstr "" -#: src/tables/sales/SalesOrderLineItemTable.tsx:262 -msgid "Allocate stock" +#: src/tables/sales/SalesOrderAllocationTable.tsx:60 +msgid "Show outstanding allocations" msgstr "" -#: src/tables/sales/SalesOrderLineItemTable.tsx:272 +#: src/tables/sales/SalesOrderAllocationTable.tsx:168 +#: src/tables/sales/SalesOrderAllocationTable.tsx:190 +msgid "Edit Allocation" +msgstr "" + +#: src/tables/sales/SalesOrderAllocationTable.tsx:175 +#: src/tables/sales/SalesOrderAllocationTable.tsx:197 +msgid "Delete Allocation" +msgstr "" + +#: src/tables/sales/SalesOrderLineItemTable.tsx:244 +msgid "Allocate Serial Numbers" +msgstr "" + +#: src/tables/sales/SalesOrderLineItemTable.tsx:277 +msgid "Show lines which are fully allocated" +msgstr "" + +#: src/tables/sales/SalesOrderLineItemTable.tsx:280 +#~ msgid "Allocate stock" +#~ msgstr "Allocate stock" + +#: src/tables/sales/SalesOrderLineItemTable.tsx:282 +msgid "Show lines which are completed" +msgstr "" + +#: src/tables/sales/SalesOrderLineItemTable.tsx:291 +#~ msgid "Allocate Serials" +#~ msgstr "Allocate Serials" + +#: src/tables/sales/SalesOrderLineItemTable.tsx:340 +msgid "Allocate serials" +msgstr "" + +#: src/tables/sales/SalesOrderLineItemTable.tsx:356 msgid "Build stock" msgstr "" -#: src/tables/sales/SalesOrderLineItemTable.tsx:289 -#: src/tables/stock/StockItemTable.tsx:507 +#: src/tables/sales/SalesOrderLineItemTable.tsx:373 +#: src/tables/stock/StockItemTable.tsx:512 msgid "Order stock" msgstr "" -#: src/tables/sales/SalesOrderShipmentTable.tsx:40 +#: src/tables/sales/SalesOrderShipmentTable.tsx:51 +#~ msgid "Delete Shipment" +#~ msgstr "Delete Shipment" + +#: src/tables/sales/SalesOrderShipmentTable.tsx:57 msgid "Create Shipment" msgstr "" -#: src/tables/sales/SalesOrderShipmentTable.tsx:50 -msgid "Delete Shipment" -msgstr "" - -#: src/tables/sales/SalesOrderShipmentTable.tsx:58 -msgid "Edit Shipment" -msgstr "" - -#: src/tables/sales/SalesOrderShipmentTable.tsx:66 -msgid "Shipment Reference" -msgstr "" - -#: src/tables/sales/SalesOrderShipmentTable.tsx:71 +#: src/tables/sales/SalesOrderShipmentTable.tsx:104 msgid "Items" msgstr "" -#: src/tables/sales/SalesOrderShipmentTable.tsx:83 -msgid "Delivery Date" +#: src/tables/sales/SalesOrderShipmentTable.tsx:139 +msgid "View Shipment" msgstr "" -#: src/tables/sales/SalesOrderShipmentTable.tsx:107 -msgid "Complete Shipment" +#: src/tables/sales/SalesOrderShipmentTable.tsx:161 +msgid "Edit shipment" msgstr "" -#: src/tables/sales/SalesOrderShipmentTable.tsx:133 +#: src/tables/sales/SalesOrderShipmentTable.tsx:169 +msgid "Cancel shipment" +msgstr "" + +#: src/tables/sales/SalesOrderShipmentTable.tsx:184 msgid "Add shipment" msgstr "" -#: src/tables/sales/SalesOrderShipmentTable.tsx:146 -msgid "Shipped" -msgstr "" - -#: src/tables/sales/SalesOrderShipmentTable.tsx:147 +#: src/tables/sales/SalesOrderShipmentTable.tsx:198 msgid "Show shipments which have been shipped" msgstr "" -#: src/tables/sales/SalesOrderShipmentTable.tsx:151 -msgid "Delivered" -msgstr "" - -#: src/tables/sales/SalesOrderShipmentTable.tsx:152 +#: src/tables/sales/SalesOrderShipmentTable.tsx:203 msgid "Show shipments which have been delivered" msgstr "" -#: src/tables/settings/CurrencyTable.tsx:28 -msgid "Rate" +#: src/tables/settings/BarcodeScanHistoryTable.tsx:61 +msgid "Barcode Information" msgstr "" -#: src/tables/settings/CurrencyTable.tsx:40 -msgid "Exchange rates updated" +#: src/tables/settings/BarcodeScanHistoryTable.tsx:76 +#: src/tables/settings/ErrorTable.tsx:59 +msgid "Timestamp" msgstr "" -#: src/tables/settings/CurrencyTable.tsx:46 -msgid "Exchange rate update error" +#: src/tables/settings/BarcodeScanHistoryTable.tsx:86 +msgid "Endpoint" msgstr "" -#: src/tables/settings/CurrencyTable.tsx:57 -msgid "Refresh currency exchange rates" +#: src/tables/settings/BarcodeScanHistoryTable.tsx:90 +#: src/tables/settings/BarcodeScanHistoryTable.tsx:217 +#: src/tables/stock/StockItemTestResultTable.tsx:174 +msgid "Result" msgstr "" +#: src/tables/settings/BarcodeScanHistoryTable.tsx:98 +msgid "Context" +msgstr "" + +#: src/tables/settings/BarcodeScanHistoryTable.tsx:119 +msgid "Response" +msgstr "" + +#: src/tables/settings/BarcodeScanHistoryTable.tsx:213 +#: src/tables/settings/ImportSessionTable.tsx:121 +#: src/tables/stock/StockTrackingTable.tsx:183 +msgid "Filter by user" +msgstr "" + +#: src/tables/settings/BarcodeScanHistoryTable.tsx:218 +msgid "Filter by result" +msgstr "" + +#: src/tables/settings/BarcodeScanHistoryTable.tsx:232 +msgid "Delete Barcode Scan Record" +msgstr "" + +#: src/tables/settings/BarcodeScanHistoryTable.tsx:258 +msgid "Barcode Scan Details" +msgstr "" + +#: src/tables/settings/BarcodeScanHistoryTable.tsx:268 +msgid "Logging Disabled" +msgstr "" + +#: src/tables/settings/BarcodeScanHistoryTable.tsx:270 +msgid "Barcode logging is not enabled" +msgstr "" + +#: src/tables/settings/CustomStateTable.tsx:36 +msgid "Display Name" +msgstr "" + +#: src/tables/settings/CustomStateTable.tsx:52 +msgid "Model" +msgstr "" + +#: src/tables/settings/CustomStateTable.tsx:65 +#: src/tables/settings/CustomStateTable.tsx:115 +msgid "Add State" +msgstr "" + +#: src/tables/settings/CustomStateTable.tsx:77 +msgid "Edit State" +msgstr "" + +#: src/tables/settings/CustomStateTable.tsx:85 +msgid "Delete State" +msgstr "" + +#: src/tables/settings/CustomStateTable.tsx:115 +#~ msgid "Add state" +#~ msgstr "Add state" + #: src/tables/settings/CustomUnitsTable.tsx:50 msgid "Add Custom Unit" msgstr "" @@ -7312,59 +8540,71 @@ msgstr "" msgid "Add custom unit" msgstr "" -#: src/tables/settings/ErrorTable.tsx:31 -msgid "When" -msgstr "" - -#: src/tables/settings/ErrorTable.tsx:41 -msgid "Error Information" -msgstr "" - #: src/tables/settings/ErrorTable.tsx:51 #~ msgid "Delete error report" #~ msgstr "Delete error report" -#: src/tables/settings/ErrorTable.tsx:53 +#: src/tables/settings/ErrorTable.tsx:67 +msgid "Traceback" +msgstr "" + +#: src/tables/settings/ErrorTable.tsx:103 +msgid "When" +msgstr "" + +#: src/tables/settings/ErrorTable.tsx:113 +msgid "Error Information" +msgstr "" + +#: src/tables/settings/ErrorTable.tsx:123 msgid "Delete Error Report" msgstr "" -#: src/tables/settings/ErrorTable.tsx:55 +#: src/tables/settings/ErrorTable.tsx:125 msgid "Are you sure you want to delete this error report?" msgstr "" -#: src/tables/settings/ErrorTable.tsx:57 +#: src/tables/settings/ErrorTable.tsx:127 msgid "Error report deleted" msgstr "" -#: src/tables/settings/ErrorTable.tsx:79 -#: src/tables/settings/FailedTasksTable.tsx:59 +#: src/tables/settings/ErrorTable.tsx:146 +#: src/tables/settings/FailedTasksTable.tsx:65 msgid "Error Details" msgstr "" -#: src/tables/settings/FailedTasksTable.tsx:26 -#: src/tables/settings/PendingTasksTable.tsx:19 +#: src/tables/settings/FailedTasksTable.tsx:32 +#: src/tables/settings/PendingTasksTable.tsx:23 #: src/tables/settings/ScheduledTasksTable.tsx:19 msgid "Task" msgstr "" -#: src/tables/settings/FailedTasksTable.tsx:32 -#: src/tables/settings/PendingTasksTable.tsx:24 +#: src/tables/settings/FailedTasksTable.tsx:38 +#: src/tables/settings/PendingTasksTable.tsx:28 msgid "Task ID" msgstr "" -#: src/tables/settings/FailedTasksTable.tsx:36 -#: src/tables/stock/StockItemTestResultTable.tsx:211 +#: src/tables/settings/FailedTasksTable.tsx:42 +#: src/tables/stock/StockItemTestResultTable.tsx:218 msgid "Started" msgstr "" -#: src/tables/settings/FailedTasksTable.tsx:42 +#: src/tables/settings/FailedTasksTable.tsx:48 msgid "Stopped" msgstr "" -#: src/tables/settings/FailedTasksTable.tsx:48 +#: src/tables/settings/FailedTasksTable.tsx:54 msgid "Attempts" msgstr "" +#: src/tables/settings/FailedTasksTable.tsx:92 +msgid "No Information" +msgstr "" + +#: src/tables/settings/FailedTasksTable.tsx:93 +msgid "No error details are available for this task" +msgstr "" + #: src/tables/settings/GroupTable.tsx:90 msgid "Group with id {id} not found" msgstr "" @@ -7398,42 +8638,34 @@ msgstr "" msgid "Edit group" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:38 +#: src/tables/settings/ImportSessionTable.tsx:37 msgid "Delete Import Session" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:44 +#: src/tables/settings/ImportSessionTable.tsx:43 #: src/tables/settings/ImportSessionTable.tsx:131 msgid "Create Import Session" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:69 +#: src/tables/settings/ImportSessionTable.tsx:68 msgid "Uploaded" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:79 -msgid "Imported Rows" -msgstr "" - -#: src/tables/settings/ImportSessionTable.tsx:109 -#: src/tables/settings/TemplateTable.tsx:289 +#: src/tables/settings/ImportSessionTable.tsx:108 +#: src/tables/settings/TemplateTable.tsx:369 msgid "Model Type" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:110 -#: src/tables/settings/TemplateTable.tsx:290 +#: src/tables/settings/ImportSessionTable.tsx:109 +#: src/tables/settings/TemplateTable.tsx:370 msgid "Filter by target model type" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:116 +#: src/tables/settings/ImportSessionTable.tsx:115 msgid "Filter by import session status" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:122 -msgid "Filter by user" -msgstr "" - -#: src/tables/settings/PendingTasksTable.tsx:38 +#: src/tables/settings/PendingTasksTable.tsx:42 msgid "Arguments" msgstr "" @@ -7461,12 +8693,16 @@ msgstr "" msgid "Next Run" msgstr "" -#: src/tables/settings/TemplateTable.tsx:85 -msgid "Template not found" +#: src/tables/settings/StocktakeReportTable.tsx:28 +msgid "Report" msgstr "" -#: src/tables/settings/TemplateTable.tsx:87 -msgid "An error occurred while fetching template details" +#: src/tables/settings/StocktakeReportTable.tsx:35 +msgid "Part Count" +msgstr "" + +#: src/tables/settings/StocktakeReportTable.tsx:58 +msgid "Delete Report" msgstr "" #: src/tables/settings/TemplateTable.tsx:120 @@ -7481,21 +8717,12 @@ msgstr "" #~ msgid "actions" #~ msgstr "actions" -#: src/tables/settings/TemplateTable.tsx:177 -msgid "Modify" +#: src/tables/settings/TemplateTable.tsx:162 +msgid "Template not found" msgstr "" -#: src/tables/settings/TemplateTable.tsx:178 -msgid "Modify template file" -msgstr "" - -#: src/tables/settings/TemplateTable.tsx:234 -#: src/tables/settings/TemplateTable.tsx:302 -msgid "Edit Template" -msgstr "" - -#: src/tables/settings/TemplateTable.tsx:242 -msgid "Delete template" +#: src/tables/settings/TemplateTable.tsx:164 +msgid "An error occurred while fetching template details" msgstr "" #: src/tables/settings/TemplateTable.tsx:243 @@ -7506,103 +8733,137 @@ msgstr "" #~ msgid "Create new" #~ msgstr "Create new" -#: src/tables/settings/TemplateTable.tsx:248 +#: src/tables/settings/TemplateTable.tsx:257 +msgid "Modify" +msgstr "" + +#: src/tables/settings/TemplateTable.tsx:258 +msgid "Modify template file" +msgstr "" + +#: src/tables/settings/TemplateTable.tsx:314 +#: src/tables/settings/TemplateTable.tsx:382 +msgid "Edit Template" +msgstr "" + +#: src/tables/settings/TemplateTable.tsx:322 +msgid "Delete template" +msgstr "" + +#: src/tables/settings/TemplateTable.tsx:328 msgid "Add Template" msgstr "" -#: src/tables/settings/TemplateTable.tsx:261 +#: src/tables/settings/TemplateTable.tsx:341 msgid "Add template" msgstr "" -#: src/tables/settings/TemplateTable.tsx:284 +#: src/tables/settings/TemplateTable.tsx:364 msgid "Filter by enabled status" msgstr "" -#: src/tables/settings/UserTable.tsx:82 +#: src/tables/settings/UserTable.tsx:81 msgid "User with id {id} not found" msgstr "" -#: src/tables/settings/UserTable.tsx:84 +#: src/tables/settings/UserTable.tsx:83 msgid "An error occurred while fetching user details" msgstr "" -#: src/tables/settings/UserTable.tsx:102 +#: src/tables/settings/UserTable.tsx:101 msgid "Is Active" msgstr "" -#: src/tables/settings/UserTable.tsx:103 +#: src/tables/settings/UserTable.tsx:102 msgid "Designates whether this user should be treated as active. Unselect this instead of deleting accounts." msgstr "" -#: src/tables/settings/UserTable.tsx:107 +#: src/tables/settings/UserTable.tsx:106 msgid "Is Staff" msgstr "" -#: src/tables/settings/UserTable.tsx:108 +#: src/tables/settings/UserTable.tsx:107 msgid "Designates whether the user can log into the django admin site." msgstr "" -#: src/tables/settings/UserTable.tsx:112 +#: src/tables/settings/UserTable.tsx:111 msgid "Is Superuser" msgstr "" -#: src/tables/settings/UserTable.tsx:113 +#: src/tables/settings/UserTable.tsx:112 msgid "Designates that this user has all permissions without explicitly assigning them." msgstr "" -#: src/tables/settings/UserTable.tsx:123 +#: src/tables/settings/UserTable.tsx:122 msgid "You cannot edit the rights for the currently logged-in user." msgstr "" -#: src/tables/settings/UserTable.tsx:154 +#: src/tables/settings/UserTable.tsx:153 msgid "No groups" msgstr "" -#: src/tables/settings/UserTable.tsx:245 +#: src/tables/settings/UserTable.tsx:244 msgid "Delete user" msgstr "" -#: src/tables/settings/UserTable.tsx:246 +#: src/tables/settings/UserTable.tsx:245 msgid "User deleted" msgstr "" -#: src/tables/settings/UserTable.tsx:248 +#: src/tables/settings/UserTable.tsx:247 msgid "Are you sure you want to delete this user?" msgstr "" -#: src/tables/settings/UserTable.tsx:254 -#: src/tables/settings/UserTable.tsx:272 +#: src/tables/settings/UserTable.tsx:253 +#: src/tables/settings/UserTable.tsx:271 msgid "Add user" msgstr "" -#: src/tables/settings/UserTable.tsx:262 +#: src/tables/settings/UserTable.tsx:261 msgid "Added user" msgstr "" -#: src/tables/settings/UserTable.tsx:285 +#: src/tables/settings/UserTable.tsx:284 msgid "Show active users" msgstr "" -#: src/tables/settings/UserTable.tsx:289 +#: src/tables/settings/UserTable.tsx:288 msgid "Staff" msgstr "" -#: src/tables/settings/UserTable.tsx:290 +#: src/tables/settings/UserTable.tsx:289 msgid "Show staff users" msgstr "" #: src/tables/settings/UserTable.tsx:294 -msgid "Superuser" -msgstr "" - -#: src/tables/settings/UserTable.tsx:295 msgid "Show superusers" msgstr "" -#: src/tables/settings/UserTable.tsx:305 +#: src/tables/settings/UserTable.tsx:304 msgid "Edit user" msgstr "" +#: src/tables/stock/InstalledItemsTable.tsx:37 +#: src/tables/stock/InstalledItemsTable.tsx:90 +msgid "Install Item" +msgstr "" + +#: src/tables/stock/InstalledItemsTable.tsx:39 +msgid "Item installed" +msgstr "" + +#: src/tables/stock/InstalledItemsTable.tsx:50 +msgid "Uninstall Item" +msgstr "" + +#: src/tables/stock/InstalledItemsTable.tsx:52 +msgid "Item uninstalled" +msgstr "" + +#: src/tables/stock/InstalledItemsTable.tsx:108 +msgid "Uninstall stock item" +msgstr "" + #: src/tables/stock/LocationTypesTable.tsx:39 #: src/tables/stock/LocationTypesTable.tsx:109 msgid "Add Location Type" @@ -7620,276 +8881,272 @@ msgstr "" msgid "Icon" msgstr "" -#: src/tables/stock/StockItemTable.tsx:101 +#: src/tables/stock/StockItemTable.tsx:90 msgid "This stock item is in production" msgstr "" -#: src/tables/stock/StockItemTable.tsx:110 +#: src/tables/stock/StockItemTable.tsx:97 msgid "This stock item has been assigned to a sales order" msgstr "" -#: src/tables/stock/StockItemTable.tsx:119 +#: src/tables/stock/StockItemTable.tsx:104 msgid "This stock item has been assigned to a customer" msgstr "" -#: src/tables/stock/StockItemTable.tsx:128 +#: src/tables/stock/StockItemTable.tsx:111 msgid "This stock item is installed in another stock item" msgstr "" -#: src/tables/stock/StockItemTable.tsx:137 +#: src/tables/stock/StockItemTable.tsx:118 msgid "This stock item has been consumed by a build order" msgstr "" -#: src/tables/stock/StockItemTable.tsx:146 +#: src/tables/stock/StockItemTable.tsx:125 +msgid "This stock item is unavailable" +msgstr "" + +#: src/tables/stock/StockItemTable.tsx:134 msgid "This stock item has expired" msgstr "" -#: src/tables/stock/StockItemTable.tsx:150 +#: src/tables/stock/StockItemTable.tsx:138 msgid "This stock item is stale" msgstr "" -#: src/tables/stock/StockItemTable.tsx:161 +#: src/tables/stock/StockItemTable.tsx:150 msgid "This stock item is fully allocated" msgstr "" -#: src/tables/stock/StockItemTable.tsx:168 +#: src/tables/stock/StockItemTable.tsx:157 msgid "This stock item is partially allocated" msgstr "" -#: src/tables/stock/StockItemTable.tsx:196 +#: src/tables/stock/StockItemTable.tsx:185 msgid "This stock item has been depleted" msgstr "" -#: src/tables/stock/StockItemTable.tsx:232 +#: src/tables/stock/StockItemTable.tsx:280 msgid "Stocktake Date" msgstr "" -#: src/tables/stock/StockItemTable.tsx:236 -msgid "Expiry Date" -msgstr "" - -#: src/tables/stock/StockItemTable.tsx:260 -msgid "Stock Value" -msgstr "" - -#: src/tables/stock/StockItemTable.tsx:290 +#: src/tables/stock/StockItemTable.tsx:294 msgid "Show stock for active parts" msgstr "" -#: src/tables/stock/StockItemTable.tsx:295 +#: src/tables/stock/StockItemTable.tsx:299 msgid "Filter by stock status" msgstr "" #: src/tables/stock/StockItemTable.tsx:301 -msgid "Show stock for assmebled parts" +#~ msgid "Show stock for assmebled parts" +#~ msgstr "Show stock for assmebled parts" + +#: src/tables/stock/StockItemTable.tsx:305 +msgid "Show stock for assembled parts" msgstr "" -#: src/tables/stock/StockItemTable.tsx:306 +#: src/tables/stock/StockItemTable.tsx:310 msgid "Show items which have been allocated" msgstr "" -#: src/tables/stock/StockItemTable.tsx:311 +#: src/tables/stock/StockItemTable.tsx:315 msgid "Show items which are available" msgstr "" -#: src/tables/stock/StockItemTable.tsx:315 +#: src/tables/stock/StockItemTable.tsx:319 #: src/tables/stock/StockLocationTable.tsx:44 msgid "Include Sublocations" msgstr "" -#: src/tables/stock/StockItemTable.tsx:316 +#: src/tables/stock/StockItemTable.tsx:320 msgid "Include stock in sublocations" msgstr "" -#: src/tables/stock/StockItemTable.tsx:320 +#: src/tables/stock/StockItemTable.tsx:324 msgid "Depleted" msgstr "" -#: src/tables/stock/StockItemTable.tsx:321 +#: src/tables/stock/StockItemTable.tsx:325 msgid "Show depleted stock items" msgstr "" -#: src/tables/stock/StockItemTable.tsx:326 +#: src/tables/stock/StockItemTable.tsx:330 msgid "Show items which are in stock" msgstr "" -#: src/tables/stock/StockItemTable.tsx:331 +#: src/tables/stock/StockItemTable.tsx:335 msgid "Show items which are in production" msgstr "" -#: src/tables/stock/StockItemTable.tsx:336 +#: src/tables/stock/StockItemTable.tsx:340 msgid "Include stock items for variant parts" msgstr "" -#: src/tables/stock/StockItemTable.tsx:341 +#: src/tables/stock/StockItemTable.tsx:345 msgid "Show stock items which are installed in other items" msgstr "" -#: src/tables/stock/StockItemTable.tsx:345 +#: src/tables/stock/StockItemTable.tsx:349 msgid "Sent to Customer" msgstr "" -#: src/tables/stock/StockItemTable.tsx:346 +#: src/tables/stock/StockItemTable.tsx:350 msgid "Show items which have been sent to a customer" msgstr "" -#: src/tables/stock/StockItemTable.tsx:350 +#: src/tables/stock/StockItemTable.tsx:354 msgid "Is Serialized" msgstr "" -#: src/tables/stock/StockItemTable.tsx:351 +#: src/tables/stock/StockItemTable.tsx:355 msgid "Show items which have a serial number" msgstr "" -#: src/tables/stock/StockItemTable.tsx:358 +#: src/tables/stock/StockItemTable.tsx:362 msgid "Has Batch Code" msgstr "" -#: src/tables/stock/StockItemTable.tsx:359 +#: src/tables/stock/StockItemTable.tsx:363 msgid "Show items which have a batch code" msgstr "" -#: src/tables/stock/StockItemTable.tsx:365 +#: src/tables/stock/StockItemTable.tsx:369 msgid "Show tracked items" msgstr "" -#: src/tables/stock/StockItemTable.tsx:369 +#: src/tables/stock/StockItemTable.tsx:373 msgid "Has Purchase Price" msgstr "" -#: src/tables/stock/StockItemTable.tsx:370 +#: src/tables/stock/StockItemTable.tsx:374 msgid "Show items which have a purchase price" msgstr "" -#: src/tables/stock/StockItemTable.tsx:378 +#: src/tables/stock/StockItemTable.tsx:382 msgid "External Location" msgstr "" -#: src/tables/stock/StockItemTable.tsx:379 +#: src/tables/stock/StockItemTable.tsx:383 msgid "Show items in an external location" msgstr "" -#: src/tables/stock/StockItemTable.tsx:451 +#: src/tables/stock/StockItemTable.tsx:456 msgid "Add a new stock item" msgstr "" -#: src/tables/stock/StockItemTable.tsx:460 +#: src/tables/stock/StockItemTable.tsx:465 msgid "Remove some quantity from a stock item" msgstr "" -#: src/tables/stock/StockItemTable.tsx:482 +#: src/tables/stock/StockItemTable.tsx:487 msgid "Move Stock items to new locations" msgstr "" -#: src/tables/stock/StockItemTable.tsx:489 +#: src/tables/stock/StockItemTable.tsx:494 msgid "Change stock status" msgstr "" -#: src/tables/stock/StockItemTable.tsx:491 +#: src/tables/stock/StockItemTable.tsx:496 msgid "Change the status of stock items" msgstr "" -#: src/tables/stock/StockItemTable.tsx:498 +#: src/tables/stock/StockItemTable.tsx:503 msgid "Merge stock" msgstr "" -#: src/tables/stock/StockItemTable.tsx:500 +#: src/tables/stock/StockItemTable.tsx:505 msgid "Merge stock items" msgstr "" -#: src/tables/stock/StockItemTable.tsx:509 -#: src/tables/stock/StockItemTable.tsx:516 +#: src/tables/stock/StockItemTable.tsx:514 +#: src/tables/stock/StockItemTable.tsx:521 msgid "Order new stock" msgstr "" -#: src/tables/stock/StockItemTable.tsx:514 +#: src/tables/stock/StockItemTable.tsx:519 msgid "Assign to customer" msgstr "" -#: src/tables/stock/StockItemTable.tsx:523 +#: src/tables/stock/StockItemTable.tsx:528 msgid "Delete stock" msgstr "" -#: src/tables/stock/StockItemTable.tsx:525 -msgid "Delete stock items" -msgstr "" +#: src/tables/stock/StockItemTable.tsx:528 +#~ msgid "Delete stock items" +#~ msgstr "Delete stock items" -#: src/tables/stock/StockItemTestResultTable.tsx:131 +#: src/tables/stock/StockItemTestResultTable.tsx:137 msgid "Test" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:157 +#: src/tables/stock/StockItemTestResultTable.tsx:163 msgid "Test result for installed stock item" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:168 -msgid "Result" -msgstr "" - -#: src/tables/stock/StockItemTestResultTable.tsx:190 +#: src/tables/stock/StockItemTestResultTable.tsx:196 msgid "Attachment" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:206 +#: src/tables/stock/StockItemTestResultTable.tsx:212 msgid "Test station" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:226 +#: src/tables/stock/StockItemTestResultTable.tsx:234 msgid "Finished" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:268 -#: src/tables/stock/StockItemTestResultTable.tsx:339 +#: src/tables/stock/StockItemTestResultTable.tsx:286 +#: src/tables/stock/StockItemTestResultTable.tsx:357 msgid "Edit Test Result" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:270 +#: src/tables/stock/StockItemTestResultTable.tsx:288 msgid "Test result updated" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:276 -#: src/tables/stock/StockItemTestResultTable.tsx:348 +#: src/tables/stock/StockItemTestResultTable.tsx:294 +#: src/tables/stock/StockItemTestResultTable.tsx:366 msgid "Delete Test Result" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:278 +#: src/tables/stock/StockItemTestResultTable.tsx:296 msgid "Test result deleted" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:292 +#: src/tables/stock/StockItemTestResultTable.tsx:310 msgid "Test Passed" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:293 +#: src/tables/stock/StockItemTestResultTable.tsx:311 msgid "Test result has been recorded" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:300 +#: src/tables/stock/StockItemTestResultTable.tsx:318 msgid "Failed to record test result" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:317 +#: src/tables/stock/StockItemTestResultTable.tsx:335 msgid "Pass Test" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:366 +#: src/tables/stock/StockItemTestResultTable.tsx:384 msgid "Show results for required tests" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:370 +#: src/tables/stock/StockItemTestResultTable.tsx:388 msgid "Include Installed" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:371 +#: src/tables/stock/StockItemTestResultTable.tsx:389 msgid "Show results for installed stock items" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:375 -#: src/tables/stock/TestStatisticsTable.tsx:74 +#: src/tables/stock/StockItemTestResultTable.tsx:393 +#: src/tables/stock/TestStatisticsTable.tsx:62 msgid "Passed" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:376 +#: src/tables/stock/StockItemTestResultTable.tsx:394 msgid "Show only passed tests" msgstr "" @@ -7922,28 +9179,32 @@ msgid "Filter by location type" msgstr "" #: src/tables/stock/StockLocationTable.tsx:107 -#: src/tables/stock/StockLocationTable.tsx:133 +#: src/tables/stock/StockLocationTable.tsx:134 msgid "Add Stock Location" msgstr "" -#: src/tables/stock/StockTrackingTable.tsx:64 +#: src/tables/stock/StockTrackingTable.tsx:68 msgid "Added" msgstr "" -#: src/tables/stock/StockTrackingTable.tsx:69 +#: src/tables/stock/StockTrackingTable.tsx:73 msgid "Removed" msgstr "" #: src/tables/stock/StockTrackingTable.tsx:198 +msgid "Details" +msgstr "" + +#: src/tables/stock/StockTrackingTable.tsx:213 msgid "No user information" msgstr "" -#: src/tables/stock/TestStatisticsTable.tsx:46 -#: src/tables/stock/TestStatisticsTable.tsx:76 +#: src/tables/stock/TestStatisticsTable.tsx:34 +#: src/tables/stock/TestStatisticsTable.tsx:64 msgid "Total" msgstr "" -#: src/tables/stock/TestStatisticsTable.tsx:75 +#: src/tables/stock/TestStatisticsTable.tsx:63 msgid "Failed" msgstr "" diff --git a/src/frontend/src/locales/nl/messages.po b/src/frontend/src/locales/nl/messages.po index e0275f0e4f..55da20a5d7 100644 --- a/src/frontend/src/locales/nl/messages.po +++ b/src/frontend/src/locales/nl/messages.po @@ -8,15 +8,15 @@ msgstr "" "Language: nl\n" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"PO-Revision-Date: 2024-08-20 19:50\n" +"PO-Revision-Date: 2024-11-04 03:14\n" "Last-Translator: \n" "Language-Team: Dutch\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Crowdin-Project: inventree\n" "X-Crowdin-Project-ID: 452300\n" "X-Crowdin-Language: nl\n" -"X-Crowdin-File: /[inventree.InvenTree] l10/src/frontend/src/locales/en/messages.po\n" -"X-Crowdin-File-ID: 205\n" +"X-Crowdin-File: /src/frontend/src/locales/en/messages.po\n" +"X-Crowdin-File-ID: 252\n" #: src/components/Boundary.tsx:12 msgid "Error rendering component" @@ -27,93 +27,110 @@ msgid "An error occurred while rendering this component. Refer to the console fo msgstr "Er is een fout opgetreden tijdens het weergeven van deze component. Raadpleeg de console voor meer informatie." #: src/components/DashboardItemProxy.tsx:34 -msgid "Title" -msgstr "Titel" +#~ msgid "Title" +#~ msgstr "Title" #: src/components/buttons/AdminButton.tsx:80 msgid "Open in admin interface" -msgstr "" +msgstr "Open in admin interface" #: src/components/buttons/CopyButton.tsx:18 #~ msgid "Copy to clipboard" #~ msgstr "Copy to clipboard" -#: src/components/buttons/CopyButton.tsx:24 +#: src/components/buttons/CopyButton.tsx:29 msgid "Copied" msgstr "Gekopieerd" -#: src/components/buttons/CopyButton.tsx:24 +#: src/components/buttons/CopyButton.tsx:29 msgid "Copy" msgstr "Kopieer" -#: src/components/buttons/PrintingActions.tsx:93 +#: src/components/buttons/PrintingActions.tsx:97 msgid "Print Label" -msgstr "" +msgstr "Label afdrukken" -#: src/components/buttons/PrintingActions.tsx:99 +#: src/components/buttons/PrintingActions.tsx:103 msgid "Print" -msgstr "" +msgstr "Afdrukken" -#: src/components/buttons/PrintingActions.tsx:100 +#: src/components/buttons/PrintingActions.tsx:104 msgid "Label printing completed successfully" -msgstr "" +msgstr "Label afdrukken succesvol voltooid" -#: src/components/buttons/PrintingActions.tsx:106 -#: src/components/buttons/PrintingActions.tsx:144 -#: src/components/editors/NotesEditor.tsx:65 -#: src/components/editors/NotesEditor.tsx:165 -#: src/components/forms/fields/ApiFormField.tsx:319 +#: src/components/buttons/PrintingActions.tsx:110 +#: src/components/buttons/PrintingActions.tsx:148 +#: src/components/editors/NotesEditor.tsx:73 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:154 +#: src/components/forms/fields/ApiFormField.tsx:328 +#: src/components/forms/fields/TableField.tsx:43 #: src/components/importer/ImportDataSelector.tsx:187 -#: src/components/importer/ImporterColumnSelector.tsx:207 +#: src/components/importer/ImporterColumnSelector.tsx:210 #: src/components/modals/LicenseModal.tsx:75 -#: src/components/nav/SearchDrawer.tsx:448 +#: src/components/nav/SearchDrawer.tsx:458 +#: src/components/render/ModelType.tsx:290 #: src/pages/ErrorPage.tsx:11 -#: src/pages/part/PartPricingPanel.tsx:67 -#: src/tables/InvenTreeTable.tsx:495 +#: src/pages/part/PartPricingPanel.tsx:71 +#: src/tables/InvenTreeTable.tsx:481 #: src/tables/bom/BomTable.tsx:450 -#: src/tables/stock/StockItemTestResultTable.tsx:299 +#: src/tables/stock/StockItemTestResultTable.tsx:317 msgid "Error" -msgstr "" +msgstr "Foutmelding" -#: src/components/buttons/PrintingActions.tsx:107 +#: src/components/buttons/PrintingActions.tsx:111 msgid "The label could not be generated" -msgstr "" +msgstr "Het label kon niet worden gegenereerd" -#: src/components/buttons/PrintingActions.tsx:122 +#: src/components/buttons/PrintingActions.tsx:126 msgid "Print Report" -msgstr "" +msgstr "Rapport afdrukken" -#: src/components/buttons/PrintingActions.tsx:138 +#: src/components/buttons/PrintingActions.tsx:142 msgid "Generate" -msgstr "" +msgstr "Genereren" -#: src/components/buttons/PrintingActions.tsx:139 +#: src/components/buttons/PrintingActions.tsx:143 msgid "Report printing completed successfully" -msgstr "" +msgstr "Rapport afdrukken succesvol voltooid" -#: src/components/buttons/PrintingActions.tsx:145 +#: src/components/buttons/PrintingActions.tsx:149 msgid "The report could not be generated" -msgstr "" +msgstr "Het rapport kon niet gegenereerd worden" -#: src/components/buttons/PrintingActions.tsx:173 +#: src/components/buttons/PrintingActions.tsx:177 msgid "Printing Actions" -msgstr "" +msgstr "Acties afdrukken" -#: src/components/buttons/PrintingActions.tsx:178 +#: src/components/buttons/PrintingActions.tsx:182 msgid "Print Labels" -msgstr "" +msgstr "Labels afdrukken" -#: src/components/buttons/PrintingActions.tsx:184 +#: src/components/buttons/PrintingActions.tsx:188 msgid "Print Reports" -msgstr "" +msgstr "Raport afdrukken" + +#: src/components/buttons/RemoveRowButton.tsx:8 +msgid "Remove this row" +msgstr "Verwijder deze rij" #: src/components/buttons/ScanButton.tsx:15 -msgid "Scan QR code" -msgstr "Scan QR code" +#: src/components/nav/NavigationDrawer.tsx:117 +#: src/forms/PurchaseOrderForms.tsx:379 +#: src/forms/PurchaseOrderForms.tsx:473 +msgid "Scan Barcode" +msgstr "Scan barcode" + +#: src/components/buttons/ScanButton.tsx:15 +#~ msgid "Scan QR code" +#~ msgstr "Scan QR code" #: src/components/buttons/ScanButton.tsx:20 -msgid "Open QR code scanner" -msgstr "QR-code scanner openen" +msgid "Open Barcode Scanner" +msgstr "" + +#: src/components/buttons/ScanButton.tsx:20 +#~ msgid "Open QR code scanner" +#~ msgstr "Open QR code scanner" #: src/components/buttons/SpotlightButton.tsx:14 msgid "Open spotlight" @@ -128,85 +145,347 @@ msgid "Fail" msgstr "Niet geslaagd" #: src/components/buttons/YesNoButton.tsx:33 -#: src/tables/Filter.tsx:52 +#: src/tables/Filter.tsx:61 msgid "Yes" msgstr "Ja" #: src/components/buttons/YesNoButton.tsx:33 -#: src/tables/Filter.tsx:53 +#: src/tables/Filter.tsx:62 msgid "No" msgstr "Nee" -#: src/components/details/Details.tsx:301 +#: src/components/dashboard/DashboardLayout.tsx:286 +msgid "No Widgets Selected" +msgstr "" + +#: src/components/dashboard/DashboardLayout.tsx:289 +msgid "Use the menu to add widgets to the dashboard" +msgstr "" + +#: src/components/dashboard/DashboardMenu.tsx:59 +#: src/components/dashboard/DashboardMenu.tsx:126 +msgid "Accept Layout" +msgstr "" + +#: src/components/dashboard/DashboardMenu.tsx:91 +#: src/components/nav/NavigationDrawer.tsx:71 +#: src/defaults/actions.tsx:17 +#: src/defaults/links.tsx:9 +#: src/pages/Index/Settings/UserSettings.tsx:47 +msgid "Dashboard" +msgstr "Dashboard" + +#: src/components/dashboard/DashboardMenu.tsx:99 +msgid "Edit Layout" +msgstr "Lay-out bewerken" + +#: src/components/dashboard/DashboardMenu.tsx:108 +msgid "Add Widget" +msgstr "" + +#: src/components/dashboard/DashboardMenu.tsx:117 +msgid "Remove Widgets" +msgstr "" + +#: src/components/dashboard/DashboardWidget.tsx:65 +msgid "Remove this widget from the dashboard" +msgstr "" + +#: src/components/dashboard/DashboardWidgetDrawer.tsx:77 +msgid "Filter dashboard widgets" +msgstr "" + +#: src/components/dashboard/DashboardWidgetDrawer.tsx:98 +msgid "Add this widget to the dashboard" +msgstr "" + +#: src/components/dashboard/DashboardWidgetDrawer.tsx:123 +msgid "No Widgets Available" +msgstr "" + +#: src/components/dashboard/DashboardWidgetDrawer.tsx:124 +msgid "There are no more widgets available for the dashboard" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:19 +msgid "Subscribed Parts" +msgstr "Geabonneerde onderdelen" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:20 +msgid "Show the number of parts which you have subscribed to" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:26 +msgid "Subscribed Categories" +msgstr "Geabonneerde categorieën" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:27 +msgid "Show the number of part categories which you have subscribed to" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:35 +#: src/pages/part/PartSchedulingDetail.tsx:304 +#: src/tables/part/PartTable.tsx:238 +msgid "Low Stock" +msgstr "Lage voorraad" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:37 +msgid "Show the number of parts which are low on stock" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:43 +msgid "Expired Stock Items" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:45 +msgid "Show the number of stock items which have expired" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:51 +msgid "Stale Stock Items" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:53 +msgid "Show the number of stock items which are stale" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:59 +msgid "Active Build Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:61 +msgid "Show the number of build orders which are currently active" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:66 +msgid "Overdue Build Orders" +msgstr "Achterstallige Build orders" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:68 +msgid "Show the number of build orders which are overdue" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:73 +msgid "Assigned Build Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:75 +msgid "Show the number of build orders which are assigned to you" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:80 +msgid "Active Sales Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:82 +msgid "Show the number of sales orders which are currently active" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:87 +msgid "Overdue Sales Orders" +msgstr "Achterstallige Verkooporders" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:89 +msgid "Show the number of sales orders which are overdue" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:94 +msgid "Assigned Sales Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:96 +msgid "Show the number of sales orders which are assigned to you" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:101 +msgid "Active Purchase Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:103 +msgid "Show the number of purchase orders which are currently active" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:108 +msgid "Overdue Purchase Orders" +msgstr "Achterstallige inkooporders" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:110 +msgid "Show the number of purchase orders which are overdue" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:115 +msgid "Assigned Purchase Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:117 +msgid "Show the number of purchase orders which are assigned to you" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:122 +msgid "Active Return Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:124 +msgid "Show the number of return orders which are currently active" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:129 +msgid "Overdue Return Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:131 +msgid "Show the number of return orders which are overdue" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:136 +msgid "Assigned Return Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:138 +msgid "Show the number of return orders which are assigned to you" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:149 +#: src/components/dashboard/widgets/GetStartedWidget.tsx:15 +#: src/defaults/links.tsx:38 +msgid "Getting Started" +msgstr "Aan de slag!" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:150 +#: src/defaults/links.tsx:41 +msgid "Getting started with InvenTree" +msgstr "Aan de slag met InvenTree" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:157 +#: src/components/dashboard/widgets/NewsWidget.tsx:123 +msgid "News Updates" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:158 +msgid "The latest news from InvenTree" +msgstr "" + +#: src/components/dashboard/widgets/ColorToggleWidget.tsx:18 +#: src/components/nav/MainMenu.tsx:77 +msgid "Change Color Mode" +msgstr "Kleur modus wijzigen" + +#: src/components/dashboard/widgets/ColorToggleWidget.tsx:23 +msgid "Change the color mode of the user interface" +msgstr "" + +#: src/components/dashboard/widgets/LanguageSelectWidget.tsx:18 +msgid "Change Language" +msgstr "" + +#: src/components/dashboard/widgets/LanguageSelectWidget.tsx:23 +msgid "Change the language of the user interface" +msgstr "" + +#: src/components/dashboard/widgets/NewsWidget.tsx:61 +#: src/components/nav/NotificationDrawer.tsx:88 +#: src/pages/Notifications.tsx:73 +msgid "Mark as read" +msgstr "Als gelezen Markeren" + +#: src/components/dashboard/widgets/NewsWidget.tsx:115 +msgid "Requires Superuser" +msgstr "" + +#: src/components/dashboard/widgets/NewsWidget.tsx:116 +msgid "This widget requires superuser permissions" +msgstr "" + +#: src/components/dashboard/widgets/NewsWidget.tsx:133 +msgid "No News" +msgstr "" + +#: src/components/dashboard/widgets/NewsWidget.tsx:134 +msgid "There are no unread news items" +msgstr "" + +#: src/components/details/Details.tsx:300 msgid "No name defined" msgstr "Geen naam gedefinieerd" -#: src/components/details/DetailsImage.tsx:65 +#: src/components/details/DetailsImage.tsx:69 msgid "Remove Image" msgstr "Afbeelding verwijderen" -#: src/components/details/DetailsImage.tsx:68 +#: src/components/details/DetailsImage.tsx:72 msgid "Remove the associated image from this item?" msgstr "De bijbehorende afbeelding van dit item verwijderen?" -#: src/components/details/DetailsImage.tsx:71 -#: src/forms/StockForms.tsx:533 +#: src/components/details/DetailsImage.tsx:75 +#: src/forms/StockForms.tsx:651 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:199 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:306 -#: src/pages/stock/StockDetail.tsx:526 +#: src/pages/stock/StockDetail.tsx:690 msgid "Remove" msgstr "Verwijderen" -#: src/components/details/DetailsImage.tsx:71 -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:158 -#: src/components/items/ActionDropdown.tsx:215 -#: src/components/items/ActionDropdown.tsx:216 -#: src/contexts/ThemeContext.tsx:43 +#: src/components/details/DetailsImage.tsx:75 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:184 +#: src/components/items/ActionDropdown.tsx:268 +#: src/components/items/ActionDropdown.tsx:269 +#: src/contexts/ThemeContext.tsx:45 #: src/hooks/UseForm.tsx:40 -#: src/tables/FilterSelectDrawer.tsx:205 -#: src/tables/build/BuildOutputTable.tsx:286 +#: src/tables/FilterSelectDrawer.tsx:241 +#: src/tables/RowActions.tsx:59 +#: src/tables/build/BuildOutputTable.tsx:434 msgid "Cancel" msgstr "Annuleer" -#: src/components/details/DetailsImage.tsx:97 +#: src/components/details/DetailsImage.tsx:101 msgid "Drag and drop to upload" msgstr "Hiernaar toe slepen om te uploaden" -#: src/components/details/DetailsImage.tsx:100 +#: src/components/details/DetailsImage.tsx:104 msgid "Click to select file(s)" msgstr "Klik om bestand(en) te selecteren" -#: src/components/details/DetailsImage.tsx:226 +#: src/components/details/DetailsImage.tsx:230 msgid "Clear" msgstr "Wis" -#: src/components/details/DetailsImage.tsx:232 -#: src/components/forms/ApiForm.tsx:627 -#: src/contexts/ThemeContext.tsx:43 -#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:60 +#: src/components/details/DetailsImage.tsx:236 +#: src/components/forms/ApiForm.tsx:660 +#: src/contexts/ThemeContext.tsx:45 msgid "Submit" msgstr "Versturen" -#: src/components/details/DetailsImage.tsx:272 +#: src/components/details/DetailsImage.tsx:280 msgid "Select from existing images" msgstr "Selecteer uit bestaande afbeeldingen" -#: src/components/details/DetailsImage.tsx:280 +#: src/components/details/DetailsImage.tsx:288 msgid "Select Image" msgstr "Selecteer afbeelding" -#: src/components/details/DetailsImage.tsx:292 +#: src/components/details/DetailsImage.tsx:304 +msgid "Download remote image" +msgstr "Download externe afbeelding" + +#: src/components/details/DetailsImage.tsx:319 msgid "Upload new image" msgstr "Nieuwe afbeelding uploaden" -#: src/components/details/DetailsImage.tsx:299 +#: src/components/details/DetailsImage.tsx:326 msgid "Upload Image" msgstr "Afbeelding Uploaden" -#: src/components/details/DetailsImage.tsx:312 +#: src/components/details/DetailsImage.tsx:339 msgid "Delete image" msgstr "Afbeelding verwijderen" +#: src/components/details/DetailsImage.tsx:373 +msgid "Download Image" +msgstr "Download afbeelding" + +#: src/components/details/DetailsImage.tsx:378 +msgid "Image downloaded successfully" +msgstr "Afbeelding succesvol gedownload" + #: src/components/details/PartIcons.tsx:43 #~ msgid "Part is a template part (variants can be made from this part)" #~ msgstr "Part is a template part (variants can be made from this part)" @@ -235,35 +514,56 @@ msgstr "Afbeelding verwijderen" #~ msgid "Part is virtual (not a physical part)" #~ msgstr "Part is virtual (not a physical part)" -#: src/components/editors/NotesEditor.tsx:66 +#: src/components/editors/NotesEditor.tsx:74 msgid "Image upload failed" -msgstr "" +msgstr "Afbeelding uploaden is mislukt" -#: src/components/editors/NotesEditor.tsx:156 -#: src/components/forms/ApiForm.tsx:467 +#: src/components/editors/NotesEditor.tsx:83 +#: src/components/editors/NotesEditor.tsx:119 +#: src/components/forms/ApiForm.tsx:475 #: src/tables/bom/BomTable.tsx:441 msgid "Success" -msgstr "" +msgstr "Succes" -#: src/components/editors/NotesEditor.tsx:157 +#: src/components/editors/NotesEditor.tsx:84 +msgid "Image uploaded successfully" +msgstr "Afbeelding met succes geüpload" + +#: src/components/editors/NotesEditor.tsx:120 msgid "Notes saved successfully" -msgstr "" +msgstr "Notitie succesvol opgeslagen" -#: src/components/editors/NotesEditor.tsx:166 +#: src/components/editors/NotesEditor.tsx:131 msgid "Failed to save notes" -msgstr "" +msgstr "Opslaan van notities mislukt" -#: src/components/editors/NotesEditor.tsx:198 -msgid "Preview Notes" -msgstr "" +#: src/components/editors/NotesEditor.tsx:134 +msgid "Error Saving Notes" +msgstr "Fout bij opslaan notities" -#: src/components/editors/NotesEditor.tsx:198 -msgid "Edit Notes" -msgstr "" +#: src/components/editors/NotesEditor.tsx:151 +#~ msgid "Disable Editing" +#~ msgstr "Disable Editing" -#: src/components/editors/NotesEditor.tsx:212 +#: src/components/editors/NotesEditor.tsx:154 msgid "Save Notes" -msgstr "" +msgstr "Notitie opslaan" + +#: src/components/editors/NotesEditor.tsx:173 +msgid "Close Editor" +msgstr "Sluit editor" + +#: src/components/editors/NotesEditor.tsx:180 +msgid "Enable Editing" +msgstr "Bewerken inschakelen" + +#: src/components/editors/NotesEditor.tsx:198 +#~ msgid "Preview Notes" +#~ msgstr "Preview Notes" + +#: src/components/editors/NotesEditor.tsx:198 +#~ msgid "Edit Notes" +#~ msgstr "Edit Notes" #: src/components/editors/TemplateEditor/CodeEditor/index.tsx:9 msgid "Code" @@ -281,146 +581,151 @@ msgstr "Preview niet beschikbaar, klik op \"Herlaad voorbeeld\"." msgid "PDF Preview" msgstr "PDF voorbeeld" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:104 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:115 msgid "Error loading template" msgstr "Fout bij laden sjabloon" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:116 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:127 msgid "Error saving template" msgstr "Fout tijdens opslaan van template" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:146 -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:274 -msgid "Save & Reload Preview" -msgstr "" - -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:151 -msgid "Are you sure you want to Save & Reload the preview?" -msgstr "Weet u zeker dat u wilt opslaan en het voorbeeld opnieuw wilt laden?" - #: src/components/editors/TemplateEditor/TemplateEditor.tsx:151 #~ msgid "Save & Reload preview?" #~ msgstr "Save & Reload preview?" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:153 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:155 +msgid "Could not load the template from the server." +msgstr "Kan template niet laden van de server." + +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:172 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:303 +msgid "Save & Reload Preview" +msgstr "Opslaan & Herladen Voorbeeld" + +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:177 +msgid "Are you sure you want to Save & Reload the preview?" +msgstr "Weet u zeker dat u wilt opslaan en het voorbeeld opnieuw wilt laden?" + +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:179 msgid "To render the preview the current template needs to be replaced on the server with your modifications which may break the label if it is under active use. Do you want to proceed?" -msgstr "" +msgstr "Om het voorbeeld weer te geven moet de huidige template worden vervangen door de server door de wijzigingen die het label kunnen breken als het in actief gebruik is. Wilt u doorgaan?" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:157 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:183 msgid "Save & Reload" -msgstr "" +msgstr "Opslaan en herladen" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:189 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:215 msgid "Preview updated" -msgstr "" +msgstr "Voorbeeld bijgewerkt" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:190 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:216 msgid "The preview has been updated successfully." -msgstr "" +msgstr "Het voorbeeld is met succes bijgewerkt." #: src/components/editors/TemplateEditor/TemplateEditor.tsx:263 #~ msgid "Save & Reload preview" #~ msgstr "Save & Reload preview" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:266 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:295 msgid "Reload preview" -msgstr "" +msgstr "Herlaad voorbeeld" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:267 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:296 msgid "Use the currently stored template from the server" -msgstr "" +msgstr "Gebruik de momenteel opgeslagen template van de server" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:275 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:304 msgid "Save the current template and reload the preview" -msgstr "" +msgstr "Sla de huidige sjabloon op en herlaad de preview" #: src/components/editors/TemplateEditor/TemplateEditor.tsx:322 #~ msgid "to preview" #~ msgstr "to preview" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:333 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:365 msgid "Select instance to preview" -msgstr "" +msgstr "Selecteer instantie om een voorbeeld te bekijken" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:377 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:409 msgid "Error rendering template" -msgstr "" +msgstr "Fout bij laden sjabloon" #: src/components/errors/ClientError.tsx:23 msgid "Client Error" -msgstr "" +msgstr "Klant fout" #: src/components/errors/ClientError.tsx:24 msgid "Client error occurred" -msgstr "" +msgstr "Klant fout opgetreden" #: src/components/errors/GenericErrorPage.tsx:50 msgid "Status Code" -msgstr "" +msgstr "Status Code" #: src/components/errors/GenericErrorPage.tsx:63 msgid "Return to the index page" -msgstr "" +msgstr "Terug naar de indexpagina" #: src/components/errors/NotAuthenticated.tsx:8 msgid "Not Authenticated" -msgstr "" +msgstr "Niet Geauthenticeerd" #: src/components/errors/NotAuthenticated.tsx:9 msgid "You are not logged in." -msgstr "" +msgstr "U bent niet ingelogd." #: src/components/errors/NotFound.tsx:8 msgid "Page Not Found" -msgstr "" +msgstr "Pagina niet gevonden" #: src/components/errors/NotFound.tsx:9 msgid "This page does not exist" -msgstr "" +msgstr "Deze pagina bestaat niet" #: src/components/errors/PermissionDenied.tsx:8 +#: src/functions/notifications.tsx:24 msgid "Permission Denied" -msgstr "" +msgstr "Toestemming geweigerd" #: src/components/errors/PermissionDenied.tsx:9 msgid "You do not have permission to view this page." -msgstr "" +msgstr "U heeft geen toestemming om deze pagina te bekijken." #: src/components/errors/ServerError.tsx:8 msgid "Server Error" -msgstr "" +msgstr "Server fout" #: src/components/errors/ServerError.tsx:9 msgid "A server error occurred" -msgstr "" +msgstr "Er is een serverfout opgetreden" -#: src/components/forms/ApiForm.tsx:151 -#: src/components/forms/ApiForm.tsx:555 +#: src/components/forms/ApiForm.tsx:154 +#: src/components/forms/ApiForm.tsx:579 msgid "Form Error" -msgstr "" +msgstr "Formulier fout" #: src/components/forms/ApiForm.tsx:487 #~ msgid "Form Errors Exist" #~ msgstr "Form Errors Exist" -#: src/components/forms/ApiForm.tsx:563 +#: src/components/forms/ApiForm.tsx:587 msgid "Errors exist for one or more form fields" -msgstr "" +msgstr "Er staan fouten in één of meer formuliervelden" -#: src/components/forms/ApiForm.tsx:665 -#: src/tables/plugin/PluginListTable.tsx:388 +#: src/components/forms/ApiForm.tsx:698 +#: src/tables/plugin/PluginListTable.tsx:195 msgid "Update" -msgstr "" +msgstr "Bijwerken" -#: src/components/forms/ApiForm.tsx:685 -#: src/components/items/ActionDropdown.tsx:195 +#: src/components/forms/ApiForm.tsx:718 +#: src/components/items/ActionDropdown.tsx:248 #: src/hooks/UseForm.tsx:122 -#: src/pages/Index/Scan.tsx:343 +#: src/pages/Index/Scan.tsx:357 #: src/pages/Notifications.tsx:123 -#: src/tables/RowActions.tsx:43 -#: src/tables/plugin/PluginListTable.tsx:420 +#: src/tables/RowActions.tsx:49 +#: src/tables/plugin/PluginListTable.tsx:232 msgid "Delete" -msgstr "" +msgstr "Verwijderen" #: src/components/forms/AuthenticationForm.tsx:48 #: src/components/forms/AuthenticationForm.tsx:74 @@ -428,14 +733,6 @@ msgstr "" #~ msgid "Check your your input and try again." #~ msgstr "Check your your input and try again." -#: src/components/forms/AuthenticationForm.tsx:51 -msgid "Login successful" -msgstr "" - -#: src/components/forms/AuthenticationForm.tsx:52 -msgid "Logged in successfully" -msgstr "" - #: src/components/forms/AuthenticationForm.tsx:52 #~ msgid "Welcome back!" #~ msgstr "Welcome back!" @@ -444,253 +741,264 @@ msgstr "" #~ msgid "Login successfull" #~ msgstr "Login successfull" -#: src/components/forms/AuthenticationForm.tsx:58 -msgid "Login failed" -msgstr "" +#: src/components/forms/AuthenticationForm.tsx:55 +msgid "Login successful" +msgstr "Inloggen succesvol" -#: src/components/forms/AuthenticationForm.tsx:59 -#: src/components/forms/AuthenticationForm.tsx:76 -#: src/components/forms/AuthenticationForm.tsx:211 -#: src/functions/auth.tsx:164 +#: src/components/forms/AuthenticationForm.tsx:56 +msgid "Logged in successfully" +msgstr "Met succes ingelogd" + +#: src/components/forms/AuthenticationForm.tsx:61 +msgid "Login failed" +msgstr "Inloggen mislukt" + +#: src/components/forms/AuthenticationForm.tsx:62 +#: src/components/forms/AuthenticationForm.tsx:79 +#: src/components/forms/AuthenticationForm.tsx:214 +#: src/functions/auth.tsx:175 msgid "Check your input and try again." -msgstr "" +msgstr "Controleer uw invoer en probeer het opnieuw." #: src/components/forms/AuthenticationForm.tsx:65 #: src/functions/auth.tsx:74 #~ msgid "Mail delivery successfull" #~ msgstr "Mail delivery successfull" -#: src/components/forms/AuthenticationForm.tsx:70 -#: src/functions/auth.tsx:155 +#: src/components/forms/AuthenticationForm.tsx:73 +#: src/functions/auth.tsx:166 msgid "Mail delivery successful" -msgstr "" +msgstr "E-mail levering gelukt" -#: src/components/forms/AuthenticationForm.tsx:71 +#: src/components/forms/AuthenticationForm.tsx:74 msgid "Check your inbox for the login link. If you have an account, you will receive a login link. Check in spam too." -msgstr "" +msgstr "Controleer uw inbox voor de login link. Als u een account heeft, ontvangt u een login link. Controleer ook in spam." -#: src/components/forms/AuthenticationForm.tsx:75 +#: src/components/forms/AuthenticationForm.tsx:78 msgid "Mail delivery failed" -msgstr "" +msgstr "E-mailbezorging mislukt" -#: src/components/forms/AuthenticationForm.tsx:95 +#: src/components/forms/AuthenticationForm.tsx:98 msgid "Or continue with other methods" -msgstr "" +msgstr "Of ga verder met andere methoden" -#: src/components/forms/AuthenticationForm.tsx:106 -#: src/components/forms/AuthenticationForm.tsx:227 +#: src/components/forms/AuthenticationForm.tsx:109 +#: src/components/forms/AuthenticationForm.tsx:230 +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:67 msgid "Username" -msgstr "" +msgstr "Gebruikersnaam" -#: src/components/forms/AuthenticationForm.tsx:107 -#: src/components/forms/AuthenticationForm.tsx:228 +#: src/components/forms/AuthenticationForm.tsx:110 +#: src/components/forms/AuthenticationForm.tsx:231 msgid "Your username" -msgstr "" +msgstr "Je gebruikersnaam" -#: src/components/forms/AuthenticationForm.tsx:112 -#: src/components/forms/AuthenticationForm.tsx:240 -#: src/pages/Auth/Set-Password.tsx:106 +#: src/components/forms/AuthenticationForm.tsx:115 +#: src/components/forms/AuthenticationForm.tsx:243 +#: src/pages/Auth/Set-Password.tsx:101 msgid "Password" -msgstr "" +msgstr "Wachtwoord" -#: src/components/forms/AuthenticationForm.tsx:113 -#: src/components/forms/AuthenticationForm.tsx:241 +#: src/components/forms/AuthenticationForm.tsx:116 +#: src/components/forms/AuthenticationForm.tsx:244 msgid "Your password" -msgstr "" +msgstr "Je wachtwoord" -#: src/components/forms/AuthenticationForm.tsx:125 +#: src/components/forms/AuthenticationForm.tsx:128 #: src/pages/Auth/Reset.tsx:26 msgid "Reset password" -msgstr "" +msgstr "Wachtwoord opnieuw instellen" #: src/components/forms/AuthenticationForm.tsx:131 #~ msgid "Log in" #~ msgstr "Log in" -#: src/components/forms/AuthenticationForm.tsx:134 -#: src/components/forms/AuthenticationForm.tsx:233 -#: src/pages/Auth/Reset.tsx:31 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:51 -msgid "Email" -msgstr "" - -#: src/components/forms/AuthenticationForm.tsx:135 -#: src/pages/Auth/Reset.tsx:32 -#: src/pages/Auth/Set-Password.tsx:107 -msgid "We will send you a link to login - if you are registered" -msgstr "" - #: src/components/forms/AuthenticationForm.tsx:136 #~ msgid "I will use username and password" #~ msgstr "I will use username and password" -#: src/components/forms/AuthenticationForm.tsx:151 +#: src/components/forms/AuthenticationForm.tsx:137 +#: src/components/forms/AuthenticationForm.tsx:236 +#: src/pages/Auth/Reset.tsx:31 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:51 +msgid "Email" +msgstr "E-mailadres" + +#: src/components/forms/AuthenticationForm.tsx:138 +#: src/pages/Auth/Reset.tsx:32 +#: src/pages/Auth/Set-Password.tsx:102 +msgid "We will send you a link to login - if you are registered" +msgstr "Wij sturen u een link om in te loggen - als u geregistreerd bent" + +#: src/components/forms/AuthenticationForm.tsx:154 msgid "Send me an email" -msgstr "" +msgstr "Stuur mij een e-mail" -#: src/components/forms/AuthenticationForm.tsx:153 +#: src/components/forms/AuthenticationForm.tsx:156 msgid "Use username and password" -msgstr "" +msgstr "Gebruik gebruikersnaam en wachtwoord" -#: src/components/forms/AuthenticationForm.tsx:162 +#: src/components/forms/AuthenticationForm.tsx:165 msgid "Log In" -msgstr "" +msgstr "Inloggen" -#: src/components/forms/AuthenticationForm.tsx:164 +#: src/components/forms/AuthenticationForm.tsx:167 +#: src/pages/Auth/Reset.tsx:41 +#: src/pages/Auth/Set-Password.tsx:107 msgid "Send Email" msgstr "E-mail versturen" -#: src/components/forms/AuthenticationForm.tsx:193 +#: src/components/forms/AuthenticationForm.tsx:196 msgid "Registration successful" -msgstr "" +msgstr "Registratie succesvol" -#: src/components/forms/AuthenticationForm.tsx:194 +#: src/components/forms/AuthenticationForm.tsx:197 msgid "Please confirm your email address to complete the registration" -msgstr "" +msgstr "Bevestig uw e-mailadres om de registratie te voltooien" -#: src/components/forms/AuthenticationForm.tsx:210 +#: src/components/forms/AuthenticationForm.tsx:213 msgid "Input error" -msgstr "" +msgstr "Input error" -#: src/components/forms/AuthenticationForm.tsx:234 +#: src/components/forms/AuthenticationForm.tsx:237 msgid "This will be used for a confirmation" -msgstr "" +msgstr "Dit wordt gebruikt voor een bevestiging" -#: src/components/forms/AuthenticationForm.tsx:246 +#: src/components/forms/AuthenticationForm.tsx:249 msgid "Password repeat" -msgstr "" +msgstr "Wachtwoord herhalen" -#: src/components/forms/AuthenticationForm.tsx:247 +#: src/components/forms/AuthenticationForm.tsx:250 msgid "Repeat password" -msgstr "" +msgstr "Herhaal wachtwoord" -#: src/components/forms/AuthenticationForm.tsx:259 -#: src/components/forms/AuthenticationForm.tsx:304 +#: src/components/forms/AuthenticationForm.tsx:262 +#: src/components/forms/AuthenticationForm.tsx:307 msgid "Register" -msgstr "" +msgstr "Registreren" -#: src/components/forms/AuthenticationForm.tsx:265 +#: src/components/forms/AuthenticationForm.tsx:268 msgid "Or use SSO" -msgstr "" +msgstr "Of gebruik SSO" -#: src/components/forms/AuthenticationForm.tsx:296 +#: src/components/forms/AuthenticationForm.tsx:299 msgid "Don't have an account?" -msgstr "" +msgstr "Heb je geen account?" -#: src/components/forms/AuthenticationForm.tsx:315 +#: src/components/forms/AuthenticationForm.tsx:318 msgid "Go back to login" -msgstr "" +msgstr "Ga terug naar login" #: src/components/forms/HostOptionsForm.tsx:36 #: src/components/forms/HostOptionsForm.tsx:67 msgid "Host" -msgstr "" +msgstr "Hostnaam" #: src/components/forms/HostOptionsForm.tsx:42 #: src/components/forms/HostOptionsForm.tsx:70 +#: src/components/plugins/PluginDrawer.tsx:69 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:410 +#: src/pages/Index/Settings/AdminCenter/UnitManagmentPanel.tsx:19 #: src/pages/part/CategoryDetail.tsx:81 -#: src/pages/part/PartDetail.tsx:143 -#: src/pages/stock/LocationDetail.tsx:89 -#: src/tables/machine/MachineTypeTable.tsx:65 -#: src/tables/machine/MachineTypeTable.tsx:109 -#: src/tables/machine/MachineTypeTable.tsx:216 -#: src/tables/machine/MachineTypeTable.tsx:319 +#: src/pages/part/PartDetail.tsx:164 +#: src/pages/stock/LocationDetail.tsx:83 +#: src/tables/machine/MachineTypeTable.tsx:70 +#: src/tables/machine/MachineTypeTable.tsx:119 +#: src/tables/machine/MachineTypeTable.tsx:237 +#: src/tables/machine/MachineTypeTable.tsx:340 #: src/tables/plugin/PluginErrorTable.tsx:33 -#: src/tables/plugin/PluginListTable.tsx:126 #: src/tables/purchasing/ManufacturerPartParameterTable.tsx:32 #: src/tables/settings/GroupTable.tsx:147 -#: src/tables/settings/PendingTasksTable.tsx:28 +#: src/tables/settings/PendingTasksTable.tsx:32 #: src/tables/stock/LocationTypesTable.tsx:69 msgid "Name" -msgstr "" +msgstr "Naam" #: src/components/forms/HostOptionsForm.tsx:75 msgid "No one here..." -msgstr "" +msgstr "Er is niemand hier..." #: src/components/forms/HostOptionsForm.tsx:86 msgid "Add Host" -msgstr "" +msgstr "Voeg host toe" #: src/components/forms/HostOptionsForm.tsx:90 msgid "Save" -msgstr "" +msgstr "Opslaan" #: src/components/forms/InstanceOptions.tsx:43 msgid "Select destination instance" -msgstr "" +msgstr "Selecteer bestemmingsinstantie" #: src/components/forms/InstanceOptions.tsx:71 msgid "Edit possible host options" -msgstr "" +msgstr "Bewerk mogelijke host opties" #: src/components/forms/InstanceOptions.tsx:98 msgid "Version: {0}" -msgstr "" +msgstr "Versie: {0}" #: src/components/forms/InstanceOptions.tsx:100 msgid "API:{0}" -msgstr "" +msgstr "API:{0}" #: src/components/forms/InstanceOptions.tsx:102 msgid "Name: {0}" -msgstr "" +msgstr "Naam: {0}" #: src/components/forms/InstanceOptions.tsx:104 msgid "State: <0>worker ({0}), <1>plugins{1}" -msgstr "" +msgstr "Staat: <0>werker ({0}), <1>plugins{1}" #: src/components/forms/fields/IconField.tsx:81 msgid "No icon selected" -msgstr "" +msgstr "Geen pictogram geselecteerd" #: src/components/forms/fields/IconField.tsx:159 msgid "Uncategorized" -msgstr "" +msgstr "Niet-gecategoriseerd" #: src/components/forms/fields/IconField.tsx:209 -#: src/components/nav/Layout.tsx:70 +#: src/components/nav/Layout.tsx:77 #: src/tables/part/PartThumbTable.tsx:192 msgid "Search..." -msgstr "" +msgstr "Zoeken..." #: src/components/forms/fields/IconField.tsx:223 msgid "Select category" -msgstr "" +msgstr "Selecteer categorie" #: src/components/forms/fields/IconField.tsx:232 msgid "Select pack" -msgstr "" +msgstr "Selecteer pakket" #: src/components/forms/fields/IconField.tsx:237 msgid "{0} icons" -msgstr "" - -#: src/components/forms/fields/RelatedModelField.tsx:318 -#: src/pages/Index/Settings/UserSettings.tsx:96 -#: src/tables/Search.tsx:23 -msgid "Search" -msgstr "" +msgstr "{0} pictogrammen" #: src/components/forms/fields/RelatedModelField.tsx:319 +#: src/pages/Index/Settings/UserSettings.tsx:97 +#: src/tables/Search.tsx:23 +msgid "Search" +msgstr "Zoeken" + +#: src/components/forms/fields/RelatedModelField.tsx:320 #: src/components/modals/AboutInvenTreeModal.tsx:81 -#: src/components/widgets/WidgetLayout.tsx:120 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:316 msgid "Loading" -msgstr "" +msgstr "Laden" -#: src/components/forms/fields/RelatedModelField.tsx:321 +#: src/components/forms/fields/RelatedModelField.tsx:322 msgid "No results found" -msgstr "" +msgstr "Geen resultaten gevonden" -#: src/components/forms/fields/TableField.tsx:52 -msgid "modelRenderer entry required for tables" -msgstr "" +#: src/components/forms/fields/TableField.tsx:72 +#~ msgid "modelRenderer entry required for tables" +#~ msgstr "modelRenderer entry required for tables" -#: src/components/forms/fields/TableField.tsx:76 +#: src/components/forms/fields/TableField.tsx:167 msgid "No entries available" -msgstr "" +msgstr "Geen items beschikbaar" #: src/components/images/DetailsImage.tsx:252 #~ msgid "Select image" @@ -698,73 +1006,74 @@ msgstr "" #: src/components/images/Thumbnail.tsx:12 msgid "Thumbnail" -msgstr "" +msgstr "Thumbnail" #: src/components/importer/ImportDataSelector.tsx:170 msgid "Importing Rows" -msgstr "" +msgstr "Importeren van rijen" #: src/components/importer/ImportDataSelector.tsx:171 msgid "Please wait while the data is imported" -msgstr "" +msgstr "Een ogenblik geduld, de gegevens worden geïmporteerd" #: src/components/importer/ImportDataSelector.tsx:188 msgid "An error occurred while importing data" -msgstr "" +msgstr "Fout opgetreden tijdens het importeren van de gegevens" #: src/components/importer/ImportDataSelector.tsx:209 msgid "Edit Data" -msgstr "" +msgstr "Gegevens bewerken" #: src/components/importer/ImportDataSelector.tsx:237 msgid "Delete Row" -msgstr "" +msgstr "Rij verwijderen" #: src/components/importer/ImportDataSelector.tsx:267 msgid "Row" -msgstr "" +msgstr "Rij" #: src/components/importer/ImportDataSelector.tsx:285 msgid "Row contains errors" -msgstr "" +msgstr "Rij bevat fouten" #: src/components/importer/ImportDataSelector.tsx:326 msgid "Accept" -msgstr "" +msgstr "Accepteren" #: src/components/importer/ImportDataSelector.tsx:359 msgid "Valid" -msgstr "" +msgstr "Valid" #: src/components/importer/ImportDataSelector.tsx:360 msgid "Filter by row validation status" -msgstr "" +msgstr "Filter op rij validatiestatus" #: src/components/importer/ImportDataSelector.tsx:365 -#: src/tables/build/BuildOutputTable.tsx:266 +#: src/tables/build/BuildOutputTable.tsx:407 msgid "Complete" -msgstr "" +msgstr "Complete" #: src/components/importer/ImportDataSelector.tsx:366 msgid "Filter by row completion status" -msgstr "" +msgstr "Filter op rij voltooiingsstatus" -#: src/components/importer/ImportDataSelector.tsx:383 +#: src/components/importer/ImportDataSelector.tsx:384 msgid "Import selected rows" -msgstr "" +msgstr "Geselecteerde rijen importeren" -#: src/components/importer/ImportDataSelector.tsx:398 +#: src/components/importer/ImportDataSelector.tsx:399 msgid "Processing Data" -msgstr "" +msgstr "Gegevens verwerken" -#: src/components/importer/ImporterColumnSelector.tsx:50 -#: src/components/importer/ImporterColumnSelector.tsx:176 +#: src/components/importer/ImporterColumnSelector.tsx:53 +#: src/components/importer/ImporterColumnSelector.tsx:179 +#: src/components/items/ErrorItem.tsx:12 msgid "An error occurred" -msgstr "" +msgstr "Er is een fout opgetreden" -#: src/components/importer/ImporterColumnSelector.tsx:62 +#: src/components/importer/ImporterColumnSelector.tsx:65 msgid "Select column, or leave blank to ignore this field." -msgstr "" +msgstr "Selecteer kolom, of laat leeg om dit veld te negeren." #: src/components/importer/ImporterColumnSelector.tsx:91 #~ msgid "Select a column from the data file" @@ -778,384 +1087,394 @@ msgstr "" #~ msgid "Imported Column Name" #~ msgstr "Imported Column Name" -#: src/components/importer/ImporterColumnSelector.tsx:182 +#: src/components/importer/ImporterColumnSelector.tsx:185 msgid "Ignore this field" -msgstr "" +msgstr "Negeer dit veld" -#: src/components/importer/ImporterColumnSelector.tsx:196 +#: src/components/importer/ImporterColumnSelector.tsx:199 msgid "Mapping data columns to database fields" -msgstr "" +msgstr "Gegevenskolommen toewijzen aan database velden" -#: src/components/importer/ImporterColumnSelector.tsx:201 +#: src/components/importer/ImporterColumnSelector.tsx:204 msgid "Accept Column Mapping" -msgstr "" - -#: src/components/importer/ImporterColumnSelector.tsx:214 -msgid "Database Field" -msgstr "" - -#: src/components/importer/ImporterColumnSelector.tsx:215 -msgid "Field Description" -msgstr "" - -#: src/components/importer/ImporterColumnSelector.tsx:216 -msgid "Imported Column" -msgstr "" +msgstr "Accepteer kolomtoewijzing" #: src/components/importer/ImporterColumnSelector.tsx:217 +msgid "Database Field" +msgstr "Database veld" + +#: src/components/importer/ImporterColumnSelector.tsx:218 +msgid "Field Description" +msgstr "Veld beschrijving" + +#: src/components/importer/ImporterColumnSelector.tsx:219 +msgid "Imported Column" +msgstr "Geïmporteerde kolom" + +#: src/components/importer/ImporterColumnSelector.tsx:220 msgid "Default Value" -msgstr "" - -#: src/components/importer/ImporterDrawer.tsx:44 -msgid "Upload File" -msgstr "" - -#: src/components/importer/ImporterDrawer.tsx:45 -msgid "Map Columns" -msgstr "" +msgstr "Standaard waarde" #: src/components/importer/ImporterDrawer.tsx:46 -msgid "Import Data" -msgstr "" +msgid "Upload File" +msgstr "Bestand uploaden" #: src/components/importer/ImporterDrawer.tsx:47 -msgid "Process Data" -msgstr "" +msgid "Map Columns" +msgstr "Map kolommen" #: src/components/importer/ImporterDrawer.tsx:48 +msgid "Import Data" +msgstr "Gegevens importeren" + +#: src/components/importer/ImporterDrawer.tsx:49 +msgid "Process Data" +msgstr "Gegevens verwerken" + +#: src/components/importer/ImporterDrawer.tsx:50 msgid "Complete Import" -msgstr "" +msgstr "Voltooi importeren" #: src/components/importer/ImporterDrawer.tsx:97 #~ msgid "Cancel import session" #~ msgstr "Cancel import session" -#: src/components/importer/ImporterDrawer.tsx:104 +#: src/components/importer/ImporterDrawer.tsx:106 msgid "Import Complete" -msgstr "" - -#: src/components/importer/ImporterDrawer.tsx:107 -msgid "Data has been imported successfully" -msgstr "" +msgstr "Importeren voltooid" #: src/components/importer/ImporterDrawer.tsx:109 -#: src/components/importer/ImporterDrawer.tsx:118 +msgid "Data has been imported successfully" +msgstr "De gegevens zijn met succes geïmporteerd" + +#: src/components/importer/ImporterDrawer.tsx:111 +#: src/components/importer/ImporterDrawer.tsx:120 msgid "Close" -msgstr "" +msgstr "Sluiten" -#: src/components/importer/ImporterDrawer.tsx:115 +#: src/components/importer/ImporterDrawer.tsx:117 msgid "Unknown Status" -msgstr "" +msgstr "Onbekende status" -#: src/components/importer/ImporterDrawer.tsx:116 +#: src/components/importer/ImporterDrawer.tsx:118 msgid "Import session has unknown status" -msgstr "" +msgstr "Import sessie heeft een onbekende status" -#: src/components/importer/ImporterDrawer.tsx:135 +#: src/components/importer/ImporterDrawer.tsx:137 msgid "Importing Data" -msgstr "" +msgstr "Importeren van gegevens" #: src/components/importer/ImporterImportProgress.tsx:36 msgid "Importing Records" -msgstr "" +msgstr "Importeren records" #: src/components/importer/ImporterImportProgress.tsx:39 -msgid "Imported rows" -msgstr "" +#: src/tables/settings/ImportSessionTable.tsx:78 +msgid "Imported Rows" +msgstr "Geïmporteerde regels" -#: src/components/items/ActionDropdown.tsx:121 -msgid "Barcode Actions" -msgstr "" +#: src/components/importer/ImporterImportProgress.tsx:39 +#~ msgid "Imported rows" +#~ msgstr "Imported rows" + +#: src/components/items/ActionDropdown.tsx:126 +msgid "Options" +msgstr "Opties" #: src/components/items/ActionDropdown.tsx:140 -msgid "View Barcode" -msgstr "" - -#: src/components/items/ActionDropdown.tsx:147 -msgid "View" -msgstr "" - -#: src/components/items/ActionDropdown.tsx:148 -msgid "View barcode" -msgstr "" - -#: src/components/items/ActionDropdown.tsx:161 -msgid "Link Barcode" -msgstr "" +#~ msgid "View Barcode" +#~ msgstr "View Barcode" #: src/components/items/ActionDropdown.tsx:162 -msgid "Link custom barcode" -msgstr "" +#: src/tables/InvenTreeTableHeader.tsx:159 +#: src/tables/InvenTreeTableHeader.tsx:160 +msgid "Barcode Actions" +msgstr "Barcode acties" -#: src/components/items/ActionDropdown.tsx:173 -#: src/forms/PurchaseOrderForms.tsx:426 -msgid "Unlink Barcode" -msgstr "" +#: src/components/items/ActionDropdown.tsx:162 +#~ msgid "Link custom barcode" +#~ msgstr "Link custom barcode" -#: src/components/items/ActionDropdown.tsx:174 -msgid "Unlink custom barcode" -msgstr "" +#: src/components/items/ActionDropdown.tsx:167 +msgid "View" +msgstr "Bekijken" + +#: src/components/items/ActionDropdown.tsx:169 +msgid "View barcode" +msgstr "Bekijk barcode" + +#: src/components/items/ActionDropdown.tsx:175 +msgid "Link Barcode" +msgstr "Link Barcode" + +#: src/components/items/ActionDropdown.tsx:177 +msgid "Link a custom barcode to this item" +msgstr "Link een aangepaste barcode aan dit item" #: src/components/items/ActionDropdown.tsx:183 -#: src/tables/RowActions.tsx:33 +#: src/components/items/QRCode.tsx:193 +#: src/forms/PurchaseOrderForms.tsx:464 +msgid "Unlink Barcode" +msgstr "Barcode loskoppelen" + +#: src/components/items/ActionDropdown.tsx:185 +msgid "Unlink custom barcode" +msgstr "Aangepaste barcode ontkoppelen" + +#: src/components/items/ActionDropdown.tsx:236 +#: src/tables/RowActions.tsx:39 msgid "Edit" -msgstr "" +msgstr "Bewerken" -#: src/components/items/ActionDropdown.tsx:184 +#: src/components/items/ActionDropdown.tsx:237 msgid "Edit item" -msgstr "" +msgstr "Item bewerken" -#: src/components/items/ActionDropdown.tsx:196 +#: src/components/items/ActionDropdown.tsx:249 msgid "Delete item" -msgstr "" +msgstr "Item verwijderen" -#: src/components/items/ActionDropdown.tsx:204 -#: src/components/items/ActionDropdown.tsx:205 +#: src/components/items/ActionDropdown.tsx:257 +#: src/components/items/ActionDropdown.tsx:258 msgid "Hold" -msgstr "" +msgstr "Ingedrukt houden" -#: src/components/items/ActionDropdown.tsx:227 -#: src/tables/RowActions.tsx:23 +#: src/components/items/ActionDropdown.tsx:280 +#: src/tables/RowActions.tsx:29 msgid "Duplicate" -msgstr "" +msgstr "Dupliceren" -#: src/components/items/ActionDropdown.tsx:228 +#: src/components/items/ActionDropdown.tsx:281 msgid "Duplicate item" -msgstr "" +msgstr "Artikel dupliceren" + +#: src/components/items/BarcodeInput.tsx:23 +msgid "Scan barcode data here using barcode scanner" +msgstr "Scan de barcode-gegevens hier met behulp van de barcodescanner" + +#: src/components/items/BarcodeInput.tsx:24 +#: src/tables/settings/BarcodeScanHistoryTable.tsx:65 +msgid "Barcode" +msgstr "Barcode" + +#: src/components/items/BarcodeInput.tsx:25 +msgid "Scan" +msgstr "Scannen" #: src/components/items/DocTooltip.tsx:92 +#: src/components/items/GettingStartedCarousel.tsx:20 msgid "Read More" -msgstr "" +msgstr "Meer informatie" -#: src/components/items/ErrorItem.tsx:5 -#: src/tables/InvenTreeTable.tsx:487 +#: src/components/items/ErrorItem.tsx:8 +#: src/tables/InvenTreeTable.tsx:473 msgid "Unknown error" -msgstr "" +msgstr "Onbekende fout." -#: src/components/items/ErrorItem.tsx:10 -msgid "An error occurred:" -msgstr "" +#: src/components/items/ErrorItem.tsx:13 +#~ msgid "An error occurred:" +#~ msgstr "An error occurred:" #: src/components/items/GettingStartedCarousel.tsx:27 -msgid "Read more" -msgstr "" +#~ msgid "Read more" +#~ msgstr "Read more" #: src/components/items/InfoItem.tsx:27 msgid "None" -msgstr "" +msgstr "Geen" #: src/components/items/InvenTreeLogo.tsx:23 msgid "InvenTree Logo" -msgstr "" +msgstr "Inventree logo" #: src/components/items/OnlyStaff.tsx:9 #: src/components/modals/AboutInvenTreeModal.tsx:44 msgid "This information is only available for staff users" -msgstr "" +msgstr "Deze informatie is alleen beschikbaar voor medewerkers" #: src/components/items/Placeholder.tsx:14 msgid "This feature/button/site is a placeholder for a feature that is not implemented, only partial or intended for testing." -msgstr "" +msgstr "Deze functie/button/site is een tijdelijke aanduiding voor een functie die niet geïmplementeerd, slechts gedeeltelijk of bedoeld is voor testen." #: src/components/items/Placeholder.tsx:17 msgid "PLH" -msgstr "" +msgstr "PLH" #: src/components/items/Placeholder.tsx:31 msgid "This panel is a placeholder." -msgstr "" - -#: src/components/items/QRCode.tsx:87 -msgid "Low (7%)" -msgstr "" - -#: src/components/items/QRCode.tsx:88 -msgid "Medium (15%)" -msgstr "" +msgstr "Dit paneel is een tijdelijke aanduiding." #: src/components/items/QRCode.tsx:89 -msgid "Quartile (25%)" -msgstr "" +msgid "Low (7%)" +msgstr "Laag (7%)" #: src/components/items/QRCode.tsx:90 -msgid "High (30%)" -msgstr "" +msgid "Medium (15%)" +msgstr "Gemiddeld (15%)" -#: src/components/items/QRCode.tsx:107 -msgid "Barcode Data:" -msgstr "" +#: src/components/items/QRCode.tsx:91 +msgid "Quartile (25%)" +msgstr "(25%)" + +#: src/components/items/QRCode.tsx:92 +msgid "High (30%)" +msgstr "Hoog (30%)" + +#: src/components/items/QRCode.tsx:100 +msgid "Custom barcode" +msgstr "Aangepaste streepjescode" + +#: src/components/items/QRCode.tsx:101 +msgid "A custom barcode is registered for this item. The shown code is not that custom barcode." +msgstr "Er is een aangepaste streepjescode geregistreerd voor dit artikel. De getoonde code is niet die aangepaste streepjescode." #: src/components/items/QRCode.tsx:118 +msgid "Barcode Data:" +msgstr "Barcode gegevens:" + +#: src/components/items/QRCode.tsx:129 msgid "Select Error Correction Level" -msgstr "" +msgstr "Foutcorrectie niveau selecteren" + +#: src/components/items/QRCode.tsx:171 +#: src/pages/part/PartDetail.tsx:239 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:187 +#: src/pages/sales/ReturnOrderDetail.tsx:157 +#: src/pages/sales/SalesOrderDetail.tsx:169 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:166 +msgid "Link" +msgstr "Link" + +#: src/components/items/QRCode.tsx:190 +msgid "This will remove the link to the associated barcode" +msgstr "Dit verwijdert de link naar de bijbehorende barcode" #: src/components/modals/AboutInvenTreeModal.tsx:99 msgid "Version Information" -msgstr "" +msgstr "Versie informatie" #: src/components/modals/AboutInvenTreeModal.tsx:103 msgid "Your InvenTree version status is" -msgstr "" +msgstr "Uw InvenTree versiestatus is" #: src/components/modals/AboutInvenTreeModal.tsx:107 msgid "Development Version" -msgstr "" +msgstr "Ontwikkelings versie" #: src/components/modals/AboutInvenTreeModal.tsx:111 msgid "Up to Date" -msgstr "" +msgstr "Up to date" #: src/components/modals/AboutInvenTreeModal.tsx:115 msgid "Update Available" -msgstr "" +msgstr "Update beschikbaar" #: src/components/modals/AboutInvenTreeModal.tsx:125 msgid "InvenTree Version" -msgstr "" +msgstr "InvenTree Versie" #: src/components/modals/AboutInvenTreeModal.tsx:131 msgid "Commit Hash" -msgstr "" +msgstr "Hash vastleggen" #: src/components/modals/AboutInvenTreeModal.tsx:136 msgid "Commit Date" -msgstr "" +msgstr "Commit datum" #: src/components/modals/AboutInvenTreeModal.tsx:141 msgid "Commit Branch" -msgstr "" +msgstr "Commit branch" #: src/components/modals/AboutInvenTreeModal.tsx:146 #: src/components/modals/ServerInfoModal.tsx:133 msgid "API Version" -msgstr "" +msgstr "API versie" #: src/components/modals/AboutInvenTreeModal.tsx:149 msgid "Python Version" -msgstr "" +msgstr "Python versie:" #: src/components/modals/AboutInvenTreeModal.tsx:152 msgid "Django Version" -msgstr "" +msgstr "Django versie" #: src/components/modals/AboutInvenTreeModal.tsx:162 msgid "Links" -msgstr "" +msgstr "Links" #: src/components/modals/AboutInvenTreeModal.tsx:168 msgid "InvenTree Documentation" -msgstr "" +msgstr "InvenTree documentatie" #: src/components/modals/AboutInvenTreeModal.tsx:169 msgid "View Code on GitHub" -msgstr "" +msgstr "Bekijk code op GitHub" #: src/components/modals/AboutInvenTreeModal.tsx:170 msgid "Credits" -msgstr "" +msgstr "Credits" #: src/components/modals/AboutInvenTreeModal.tsx:171 msgid "Mobile App" -msgstr "" +msgstr "App voor mobiel" #: src/components/modals/AboutInvenTreeModal.tsx:172 msgid "Submit Bug Report" -msgstr "" +msgstr "Indienen van bugrapport" -#: src/components/modals/AboutInvenTreeModal.tsx:183 +#: src/components/modals/AboutInvenTreeModal.tsx:181 msgid "Copy version information" -msgstr "" +msgstr "Kopieer versie informatie" -#: src/components/modals/AboutInvenTreeModal.tsx:192 +#: src/components/modals/AboutInvenTreeModal.tsx:189 #: src/components/modals/ServerInfoModal.tsx:147 msgid "Dismiss" -msgstr "" +msgstr "Negeren" #: src/components/modals/LicenseModal.tsx:39 msgid "No license text available" -msgstr "" +msgstr "Geen licentie tekst beschikbaar" #: src/components/modals/LicenseModal.tsx:46 msgid "No Information provided - this is likely a server issue" -msgstr "" +msgstr "Geen informatie verstrekt - dit is waarschijnlijk een serverprobleem" #: src/components/modals/LicenseModal.tsx:71 msgid "Loading license information" -msgstr "" +msgstr "Licentie informatie laden" #: src/components/modals/LicenseModal.tsx:77 msgid "Failed to fetch license information" -msgstr "" +msgstr "Fout bij het ophalen van licentiegegevens" #: src/components/modals/LicenseModal.tsx:85 msgid "{key} Packages" -msgstr "" +msgstr "{key} pakketten" -#: src/components/modals/QrCodeModal.tsx:72 +#: src/components/modals/QrCodeModal.tsx:24 msgid "Unknown response" -msgstr "" +msgstr "Onbekende reactie" -#: src/components/modals/QrCodeModal.tsx:102 -#: src/pages/Index/Scan.tsx:636 -msgid "Error while getting camera" -msgstr "" - -#: src/components/modals/QrCodeModal.tsx:125 -#: src/pages/Index/Scan.tsx:659 -msgid "Error while scanning" -msgstr "" - -#: src/components/modals/QrCodeModal.tsx:139 -#: src/pages/Index/Scan.tsx:673 -msgid "Error while stopping" -msgstr "" - -#: src/components/modals/QrCodeModal.tsx:154 -#: src/defaults/menuItems.tsx:21 -#: src/pages/Index/Scan.tsx:746 -msgid "Scanning" -msgstr "" - -#: src/components/modals/QrCodeModal.tsx:154 -#: src/pages/Index/Scan.tsx:746 -msgid "Not scanning" -msgstr "" - -#: src/components/modals/QrCodeModal.tsx:159 -#: src/pages/Index/Scan.tsx:752 -msgid "Select Camera" -msgstr "" - -#: src/components/modals/QrCodeModal.tsx:169 -#: src/pages/Index/Scan.tsx:737 -msgid "Start scanning" -msgstr "" - -#: src/components/modals/QrCodeModal.tsx:176 -#: src/pages/Index/Scan.tsx:729 -msgid "Stop scanning" -msgstr "" - -#: src/components/modals/QrCodeModal.tsx:181 +#: src/components/modals/QrCodeModal.tsx:39 msgid "No scans yet!" -msgstr "" +msgstr "Nog geen scan!" -#: src/components/modals/QrCodeModal.tsx:201 +#: src/components/modals/QrCodeModal.tsx:57 msgid "Close modal" -msgstr "" +msgstr "Venster sluiten" #: src/components/modals/ServerInfoModal.tsx:26 -#: src/pages/Index/Settings/SystemSettings.tsx:38 +#: src/pages/Index/Settings/SystemSettings.tsx:37 msgid "Server" -msgstr "" +msgstr "Server" #: src/components/modals/ServerInfoModal.tsx:32 msgid "Instance Name" -msgstr "" +msgstr "Naam van instantie" #: src/components/modals/ServerInfoModal.tsx:38 msgid "Database" -msgstr "" +msgstr "Database" #: src/components/modals/ServerInfoModal.tsx:38 #~ msgid "Bebug Mode" @@ -1163,73 +1482,74 @@ msgstr "" #: src/components/modals/ServerInfoModal.tsx:47 msgid "Debug Mode" -msgstr "" +msgstr "Foutopsporing modus" #: src/components/modals/ServerInfoModal.tsx:50 msgid "Server is running in debug mode" -msgstr "" +msgstr "Server wordt uitgevoerd in debug mode" #: src/components/modals/ServerInfoModal.tsx:57 msgid "Docker Mode" -msgstr "" +msgstr "Docker mode" #: src/components/modals/ServerInfoModal.tsx:60 msgid "Server is deployed using docker" -msgstr "" +msgstr "Server is geïmplementeerd via docker" #: src/components/modals/ServerInfoModal.tsx:66 msgid "Plugin Support" -msgstr "" +msgstr "Plug-in ondersteuning" #: src/components/modals/ServerInfoModal.tsx:71 msgid "Plugin support enabled" -msgstr "" +msgstr "Plug-in ondersteuning ingeschakeld" #: src/components/modals/ServerInfoModal.tsx:73 msgid "Plugin support disabled" -msgstr "" +msgstr "Plug-in ondersteuning uitgeschakeld" #: src/components/modals/ServerInfoModal.tsx:80 msgid "Server status" -msgstr "" +msgstr "Status server" #: src/components/modals/ServerInfoModal.tsx:86 msgid "Healthy" -msgstr "" +msgstr "Gezond" #: src/components/modals/ServerInfoModal.tsx:88 msgid "Issues detected" -msgstr "" +msgstr "Problemen gedetecteerd" #: src/components/modals/ServerInfoModal.tsx:97 msgid "Background Worker" msgstr "" #: src/components/modals/ServerInfoModal.tsx:101 +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:29 msgid "Background worker not running" -msgstr "" +msgstr "Achterliggende applicatie draait niet" #: src/components/modals/ServerInfoModal.tsx:109 msgid "Email Settings" -msgstr "" +msgstr "E-mail instellingen" #: src/components/modals/ServerInfoModal.tsx:113 msgid "Email settings not configured" -msgstr "" +msgstr "E-mailinstellingen zijn niet geconfigureerd" #: src/components/modals/ServerInfoModal.tsx:121 -#: src/tables/plugin/PluginListTable.tsx:144 -#: src/tables/plugin/PluginListTable.tsx:294 +#: src/components/plugins/PluginDrawer.tsx:89 +#: src/tables/plugin/PluginListTable.tsx:116 msgid "Version" -msgstr "" +msgstr "Versie" #: src/components/modals/ServerInfoModal.tsx:127 msgid "Server Version" -msgstr "" +msgstr "Server versie" -#: src/components/nav/Layout.tsx:73 +#: src/components/nav/Layout.tsx:80 msgid "Nothing found..." -msgstr "" +msgstr "Niets gevonden..." #: src/components/nav/MainMenu.tsx:40 #: src/pages/Index/Profile/Profile.tsx:15 @@ -1237,20 +1557,28 @@ msgstr "" #~ msgstr "Profile" #: src/components/nav/MainMenu.tsx:52 +#: src/components/nav/NavigationDrawer.tsx:178 #: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:28 msgid "Settings" -msgstr "" +msgstr "Instellingen" + +#: src/components/nav/MainMenu.tsx:59 +#: src/pages/Index/Settings/UserSettings.tsx:152 +msgid "Account Settings" +msgstr "Account instellingen" #: src/components/nav/MainMenu.tsx:59 #: src/defaults/menuItems.tsx:15 -msgid "Account settings" -msgstr "" +#~ msgid "Account settings" +#~ msgstr "Account settings" #: src/components/nav/MainMenu.tsx:67 -#: src/defaults/menuItems.tsx:58 -#: src/pages/Index/Settings/SystemSettings.tsx:315 +#: src/components/nav/NavigationDrawer.tsx:141 +#: src/components/nav/SettingsHeader.tsx:49 +#: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:37 +#: src/pages/Index/Settings/SystemSettings.tsx:310 msgid "System Settings" -msgstr "" +msgstr "Systeem instellingen" #: src/components/nav/MainMenu.tsx:68 #~ msgid "Current language {locale}" @@ -1260,473 +1588,744 @@ msgstr "" #~ msgid "Switch to pseudo language" #~ msgstr "Switch to pseudo language" -#: src/components/nav/MainMenu.tsx:77 -msgid "Change Color Mode" -msgstr "" - #: src/components/nav/MainMenu.tsx:86 -#: src/defaults/actions.tsx:71 -#: src/defaults/menuItems.tsx:63 -#: src/pages/Index/Settings/AdminCenter/Index.tsx:221 +#: src/components/nav/NavigationDrawer.tsx:148 +#: src/components/nav/SettingsHeader.tsx:50 +#: src/defaults/actions.tsx:63 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:251 msgid "Admin Center" -msgstr "" +msgstr "Beheerder Center" #: src/components/nav/MainMenu.tsx:96 msgid "Logout" -msgstr "" - -#: src/components/nav/NavHoverMenu.tsx:65 -#: src/defaults/actions.tsx:60 -msgid "Open Navigation" -msgstr "" +msgstr "Uitloggen" #: src/components/nav/NavHoverMenu.tsx:84 -msgid "View all" -msgstr "" +#~ msgid "View all" +#~ msgstr "View all" #: src/components/nav/NavHoverMenu.tsx:100 #: src/components/nav/NavHoverMenu.tsx:110 -msgid "Get started" -msgstr "" +#~ msgid "Get started" +#~ msgstr "Get started" #: src/components/nav/NavHoverMenu.tsx:103 -msgid "Overview over high-level objects, functions and possible usecases." -msgstr "" - -#: src/components/nav/NavigationDrawer.tsx:57 -msgid "Navigation" -msgstr "" +#~ msgid "Overview over high-level objects, functions and possible usecases." +#~ msgstr "Overview over high-level objects, functions and possible usecases." #: src/components/nav/NavigationDrawer.tsx:60 -msgid "Pages" -msgstr "" +#~ msgid "Pages" +#~ msgstr "Pages" -#: src/components/nav/NavigationDrawer.tsx:65 -#: src/pages/Index/Settings/AdminCenter/Index.tsx:176 -#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:41 -msgid "Plugins" -msgstr "" +#: src/components/nav/NavigationDrawer.tsx:77 +#: src/components/render/ModelType.tsx:31 +#: src/defaults/links.tsx:10 +#: src/pages/Index/Settings/SystemSettings.tsx:172 +#: src/pages/part/CategoryDetail.tsx:125 +#: src/pages/part/CategoryDetail.tsx:249 +#: src/pages/part/CategoryDetail.tsx:279 +#: src/pages/part/PartDetail.tsx:856 +msgid "Parts" +msgstr "Onderdelen" -#: src/components/nav/NavigationDrawer.tsx:75 -#: src/defaults/actions.tsx:32 -msgid "Documentation" -msgstr "" +#: src/components/nav/NavigationDrawer.tsx:84 +#: src/components/render/Part.tsx:30 +#: src/defaults/links.tsx:11 +#: src/pages/Index/Settings/SystemSettings.tsx:205 +#: src/pages/part/PartDetail.tsx:593 +#: src/pages/stock/LocationDetail.tsx:352 +#: src/pages/stock/StockDetail.tsx:528 +#: src/tables/stock/StockItemTable.tsx:69 +msgid "Stock" +msgstr "Voorraad" -#: src/components/nav/NavigationDrawer.tsx:78 -msgid "About" -msgstr "" +#: src/components/nav/NavigationDrawer.tsx:91 +#: src/defaults/links.tsx:13 +#: src/pages/build/BuildDetail.tsx:530 +#: src/pages/build/BuildIndex.tsx:36 +msgid "Manufacturing" +msgstr "Productie" -#: src/components/nav/NotificationDrawer.tsx:92 -#: src/pages/Index/Settings/SystemSettings.tsx:109 -#: src/pages/Index/Settings/UserSettings.tsx:126 +#: src/components/nav/NavigationDrawer.tsx:98 +#: src/defaults/links.tsx:18 +#: src/pages/company/ManufacturerDetail.tsx:9 +#: src/pages/company/ManufacturerPartDetail.tsx:258 +#: src/pages/company/SupplierDetail.tsx:9 +#: src/pages/company/SupplierPartDetail.tsx:336 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:480 +#: src/pages/purchasing/PurchasingIndex.tsx:60 +msgid "Purchasing" +msgstr "Kopen" + +#: src/components/nav/NavigationDrawer.tsx:105 +#: src/defaults/links.tsx:22 +#: src/pages/company/CustomerDetail.tsx:9 +#: src/pages/sales/ReturnOrderDetail.tsx:469 +#: src/pages/sales/SalesIndex.tsx:53 +#: src/pages/sales/SalesOrderDetail.tsx:520 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:343 +msgid "Sales" +msgstr "Verkoop" + +#: src/components/nav/NavigationDrawer.tsx:129 +#: src/components/nav/NotificationDrawer.tsx:178 +#: src/pages/Index/Settings/SystemSettings.tsx:110 +#: src/pages/Index/Settings/UserSettings.tsx:127 #: src/pages/Notifications.tsx:65 #: src/pages/Notifications.tsx:151 msgid "Notifications" -msgstr "" +msgstr "Meldingen" -#: src/components/nav/NotificationDrawer.tsx:94 +#: src/components/nav/NavigationDrawer.tsx:135 +#: src/components/nav/SettingsHeader.tsx:48 +msgid "User Settings" +msgstr "Gebruiker instellingen" + +#: src/components/nav/NavigationDrawer.tsx:173 +msgid "Navigation" +msgstr "Navigatie" + +#: src/components/nav/NavigationDrawer.tsx:183 +#: src/forms/PurchaseOrderForms.tsx:689 +#: src/forms/StockForms.tsx:614 +#: src/forms/StockForms.tsx:651 +#: src/forms/StockForms.tsx:677 +#: src/forms/StockForms.tsx:705 +#: src/forms/StockForms.tsx:736 +#: src/forms/StockForms.tsx:771 +#: src/forms/StockForms.tsx:813 +#: src/forms/StockForms.tsx:851 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:413 +#: src/tables/RowActions.tsx:129 +#: src/tables/build/BuildLineTable.tsx:101 +msgid "Actions" +msgstr "Acties" + +#: src/components/nav/NavigationDrawer.tsx:191 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:205 +#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:44 +msgid "Plugins" +msgstr "Plug-ins" + +#: src/components/nav/NavigationDrawer.tsx:204 +#: src/defaults/actions.tsx:24 +msgid "Documentation" +msgstr "Documentatie" + +#: src/components/nav/NavigationDrawer.tsx:210 +msgid "About" +msgstr "Over" + +#: src/components/nav/NotificationDrawer.tsx:180 msgid "Mark all as read" -msgstr "" +msgstr "Markeer alle berichten als gelezen" -#: src/components/nav/NotificationDrawer.tsx:104 +#: src/components/nav/NotificationDrawer.tsx:190 msgid "View all notifications" -msgstr "" +msgstr "Alle meldingen bekijken" -#: src/components/nav/NotificationDrawer.tsx:123 +#: src/components/nav/NotificationDrawer.tsx:210 msgid "You have no unread notifications." -msgstr "" +msgstr "Je hebt geen ongelezen berichten." -#: src/components/nav/NotificationDrawer.tsx:139 -#: src/components/nav/NotificationDrawer.tsx:145 -#: src/tables/notifications/NotificationsTable.tsx:36 -msgid "Notification" -msgstr "" - -#: src/components/nav/NotificationDrawer.tsx:168 -#: src/pages/Notifications.tsx:73 -msgid "Mark as read" -msgstr "" - -#: src/components/nav/SearchDrawer.tsx:78 +#: src/components/nav/SearchDrawer.tsx:85 msgid "results" -msgstr "" +msgstr "Resultaat" -#: src/components/nav/SearchDrawer.tsx:370 +#: src/components/nav/SearchDrawer.tsx:380 msgid "Enter search text" +msgstr "Geef zoektekst op" + +#: src/components/nav/SearchDrawer.tsx:391 +msgid "Refresh search results" msgstr "" -#: src/components/nav/SearchDrawer.tsx:397 +#: src/components/nav/SearchDrawer.tsx:402 +#: src/components/nav/SearchDrawer.tsx:409 msgid "Search Options" -msgstr "" +msgstr "Zoek opties" -#: src/components/nav/SearchDrawer.tsx:400 +#: src/components/nav/SearchDrawer.tsx:412 msgid "Regex search" -msgstr "" +msgstr "Regex zoeken" -#: src/components/nav/SearchDrawer.tsx:410 +#: src/components/nav/SearchDrawer.tsx:421 msgid "Whole word search" -msgstr "" +msgstr "Volledige woord zoeken" -#: src/components/nav/SearchDrawer.tsx:451 +#: src/components/nav/SearchDrawer.tsx:461 msgid "An error occurred during search query" -msgstr "" +msgstr "Er is een fout opgetreden tijdens de zoekopdracht" #: src/components/nav/SearchDrawer.tsx:462 -msgid "No results" -msgstr "" +#~ msgid "No results" +#~ msgstr "No results" -#: src/components/nav/SearchDrawer.tsx:465 +#: src/components/nav/SearchDrawer.tsx:472 +#: src/tables/part/PartTestTemplateTable.tsx:76 +msgid "No Results" +msgstr "Geen resultaten" + +#: src/components/nav/SearchDrawer.tsx:475 msgid "No results available for search query" +msgstr "Geen resultaten beschikbaar voor zoekopdracht" + +#: src/components/panels/AttachmentPanel.tsx:18 +msgid "Attachments" +msgstr "Bijlagen" + +#: src/components/panels/NotesPanel.tsx:24 +#: src/tables/build/BuildOrderTestTable.tsx:143 +#: src/tables/stock/StockTrackingTable.tsx:204 +msgid "Notes" +msgstr "Opmerkingen" + +#: src/components/plugins/PluginDrawer.tsx:47 +msgid "Plugin Inactive" +msgstr "Plug-in inactief" + +#: src/components/plugins/PluginDrawer.tsx:50 +msgid "Plugin is not active" +msgstr "Plug-in is niet actief" + +#: src/components/plugins/PluginDrawer.tsx:60 +msgid "Plugin Information" +msgstr "Plug-in informatie" + +#: src/components/plugins/PluginDrawer.tsx:74 +#: src/pages/build/BuildDetail.tsx:116 +#: src/pages/company/CompanyDetail.tsx:89 +#: src/pages/company/ManufacturerPartDetail.tsx:89 +#: src/pages/company/ManufacturerPartDetail.tsx:116 +#: src/pages/company/SupplierPartDetail.tsx:140 +#: src/pages/part/CategoryDetail.tsx:101 +#: src/pages/part/PartDetail.tsx:178 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:136 +#: src/pages/sales/ReturnOrderDetail.tsx:107 +#: src/pages/sales/SalesOrderDetail.tsx:116 +#: src/pages/stock/LocationDetail.tsx:103 +#: src/tables/ColumnRenderers.tsx:92 +#: src/tables/bom/UsedInTable.tsx:44 +#: src/tables/build/BuildAllocatedStockTable.tsx:83 +#: src/tables/build/BuildLineTable.tsx:329 +#: src/tables/machine/MachineTypeTable.tsx:74 +#: src/tables/machine/MachineTypeTable.tsx:129 +#: src/tables/machine/MachineTypeTable.tsx:240 +#: src/tables/machine/MachineTypeTable.tsx:344 +#: src/tables/part/RelatedPartTable.tsx:66 +#: src/tables/plugin/PluginListTable.tsx:99 +#: src/tables/sales/SalesOrderAllocationTable.tsx:87 +#: src/tables/sales/SalesOrderLineItemTable.tsx:75 +#: src/tables/stock/LocationTypesTable.tsx:74 +msgid "Description" +msgstr "Omschrijving" + +#: src/components/plugins/PluginDrawer.tsx:79 +msgid "Author" +msgstr "Auteur" + +#: src/components/plugins/PluginDrawer.tsx:84 +#: src/pages/part/PartSchedulingDetail.tsx:277 +#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:40 +#: src/pages/part/pricing/SaleHistoryPanel.tsx:38 +#: src/tables/ColumnRenderers.tsx:215 +#: src/tables/build/BuildOrderTestTable.tsx:151 +#: src/tables/settings/StocktakeReportTable.tsx:40 +msgid "Date" +msgstr "Datum" + +#: src/components/plugins/PluginDrawer.tsx:94 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:398 +#: src/pages/part/PartDetail.tsx:331 +#: src/tables/bom/UsedInTable.tsx:84 +#: src/tables/company/CompanyTable.tsx:62 +#: src/tables/company/CompanyTable.tsx:96 +#: src/tables/machine/MachineListTable.tsx:333 +#: src/tables/machine/MachineListTable.tsx:605 +#: src/tables/part/ParametricPartTable.tsx:223 +#: src/tables/part/PartTable.tsx:178 +#: src/tables/part/PartVariantTable.tsx:15 +#: src/tables/plugin/PluginListTable.tsx:94 +#: src/tables/plugin/PluginListTable.tsx:401 +#: src/tables/purchasing/SupplierPartTable.tsx:100 +#: src/tables/purchasing/SupplierPartTable.tsx:190 +#: src/tables/settings/UserTable.tsx:283 +#: src/tables/stock/StockItemTable.tsx:293 +msgid "Active" +msgstr "Actief" + +#: src/components/plugins/PluginDrawer.tsx:106 +msgid "Package Name" +msgstr "Pakket naam" + +#: src/components/plugins/PluginDrawer.tsx:112 +msgid "Installation Path" +msgstr "Installatie pad" + +#: src/components/plugins/PluginDrawer.tsx:117 +#: src/tables/machine/MachineTypeTable.tsx:152 +#: src/tables/machine/MachineTypeTable.tsx:276 +#: src/tables/plugin/PluginListTable.tsx:406 +msgid "Builtin" +msgstr "Ingebouwd" + +#: src/components/plugins/PluginDrawer.tsx:122 +msgid "Package" +msgstr "Pakket" + +#: src/components/plugins/PluginDrawer.tsx:134 +#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:53 +msgid "Plugin Settings" +msgstr "Plug-in instellingen" + +#: src/components/plugins/PluginDrawer.tsx:146 +#: src/components/render/ModelType.tsx:276 +msgid "Plugin Configuration" +msgstr "Plug-in configuratie" + +#: src/components/plugins/PluginPanel.tsx:87 +#~ msgid "Error occurred while rendering plugin content" +#~ msgstr "Error occurred while rendering plugin content" + +#: src/components/plugins/PluginPanel.tsx:91 +#~ msgid "Plugin did not provide panel rendering function" +#~ msgstr "Plugin did not provide panel rendering function" + +#: src/components/plugins/PluginPanel.tsx:103 +#~ msgid "No content provided for this plugin" +#~ msgstr "No content provided for this plugin" + +#: src/components/plugins/PluginPanel.tsx:116 +#: src/components/plugins/PluginSettingsPanel.tsx:76 +#~ msgid "Error Loading Plugin" +#~ msgstr "Error Loading Plugin" + +#: src/components/plugins/PluginSettingsPanel.tsx:51 +#~ msgid "Error occurred while rendering plugin settings" +#~ msgstr "Error occurred while rendering plugin settings" + +#: src/components/plugins/PluginSettingsPanel.tsx:55 +#~ msgid "Plugin did not provide settings rendering function" +#~ msgstr "Plugin did not provide settings rendering function" + +#: src/components/plugins/PluginUIFeature.tsx:100 +msgid "Error occurred while rendering the template editor." +msgstr "Fout opgetreden bij het renderen van de template editor." + +#: src/components/plugins/PluginUIFeature.tsx:111 +msgid "Error Loading Plugin Editor" +msgstr "Fout bij laden plug-in Editor" + +#: src/components/plugins/PluginUIFeature.tsx:147 +msgid "Error occurred while rendering the template preview." +msgstr "Fout opgetreden bij het weergeven van het sjabloon voorbeeld." + +#: src/components/plugins/PluginUIFeature.tsx:158 +msgid "Error Loading Plugin Preview" +msgstr "Fout bij laden plug-in voorbeeld" + +#: src/components/plugins/RemoteComponent.tsx:70 +msgid "Invalid source or function name" msgstr "" -#: src/components/render/Instance.tsx:217 +#: src/components/plugins/RemoteComponent.tsx:91 +msgid "Error Loading Content" +msgstr "" + +#: src/components/plugins/RemoteComponent.tsx:95 +msgid "Error occurred while loading plugin content" +msgstr "" + +#: src/components/render/Instance.tsx:224 msgid "Unknown model: {model}" -msgstr "" +msgstr "Onbekend model: {model}" -#: src/components/render/ModelType.tsx:22 -#: src/forms/BuildForms.tsx:213 -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/forms/StockForms.tsx:499 -#: src/forms/StockForms.tsx:533 -#: src/forms/StockForms.tsx:562 -#: src/forms/StockForms.tsx:590 -#: src/forms/StockForms.tsx:621 -#: src/forms/StockForms.tsx:656 -#: src/forms/StockForms.tsx:698 -#: src/forms/StockForms.tsx:734 -#: src/pages/build/BuildDetail.tsx:95 -#: src/pages/part/PartDetail.tsx:1073 -#: src/tables/build/BuildAllocatedStockTable.tsx:82 +#: src/components/render/ModelType.tsx:30 +#: src/forms/BuildForms.tsx:269 +#: src/forms/BuildForms.tsx:337 +#: src/forms/BuildForms.tsx:385 +#: src/forms/BuildForms.tsx:515 +#: src/forms/PurchaseOrderForms.tsx:689 +#: src/forms/ReturnOrderForms.tsx:190 +#: src/forms/SalesOrderForms.tsx:248 +#: src/forms/StockForms.tsx:261 +#: src/forms/StockForms.tsx:614 +#: src/forms/StockForms.tsx:651 +#: src/forms/StockForms.tsx:677 +#: src/forms/StockForms.tsx:705 +#: src/forms/StockForms.tsx:736 +#: src/forms/StockForms.tsx:771 +#: src/forms/StockForms.tsx:813 +#: src/forms/StockForms.tsx:851 +#: src/pages/build/BuildDetail.tsx:90 +#: src/pages/part/PartDetail.tsx:1094 +#: src/tables/build/BuildAllocatedStockTable.tsx:95 +#: src/tables/build/BuildLineTable.tsx:72 #: src/tables/part/PartTable.tsx:28 -#: src/tables/part/RelatedPartTable.tsx:45 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:88 -#: src/tables/sales/SalesOrderAllocationTable.tsx:68 -#: src/tables/stock/StockTrackingTable.tsx:74 +#: src/tables/part/RelatedPartTable.tsx:47 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:130 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:100 +#: src/tables/sales/SalesOrderAllocationTable.tsx:99 +#: src/tables/stock/StockTrackingTable.tsx:78 msgid "Part" -msgstr "" +msgstr "Onderdeel" -#: src/components/render/ModelType.tsx:23 -#: src/defaults/links.tsx:29 -#: src/defaults/menuItems.tsx:33 -#: src/pages/Index/Settings/SystemSettings.tsx:173 -#: src/pages/part/CategoryDetail.tsx:119 -#: src/pages/part/CategoryDetail.tsx:244 -#: src/pages/part/CategoryDetail.tsx:274 -#: src/pages/part/PartDetail.tsx:827 -msgid "Parts" -msgstr "" - -#: src/components/render/ModelType.tsx:31 +#: src/components/render/ModelType.tsx:40 msgid "Part Parameter Template" -msgstr "" +msgstr "Sjabloon deelparameter" -#: src/components/render/ModelType.tsx:32 +#: src/components/render/ModelType.tsx:41 msgid "Part Parameter Templates" -msgstr "" +msgstr "Sjablonen deelparameter" -#: src/components/render/ModelType.tsx:38 +#: src/components/render/ModelType.tsx:48 msgid "Part Test Template" -msgstr "" +msgstr "Sjabloon test onderdeel" -#: src/components/render/ModelType.tsx:39 +#: src/components/render/ModelType.tsx:49 msgid "Part Test Templates" -msgstr "" +msgstr "Templatesjablonen voor onderdeel" -#: src/components/render/ModelType.tsx:45 -#: src/pages/company/SupplierPartDetail.tsx:203 -#: src/pages/company/SupplierPartDetail.tsx:375 -#: src/pages/stock/StockDetail.tsx:173 -#: src/tables/build/BuildAllocatedStockTable.tsx:131 +#: src/components/render/ModelType.tsx:56 +#: src/pages/company/SupplierPartDetail.tsx:364 +#: src/pages/stock/StockDetail.tsx:194 +#: src/tables/build/BuildAllocatedStockTable.tsx:152 #: src/tables/part/PartPurchaseOrdersTable.tsx:49 -#: src/tables/purchasing/SupplierPartTable.tsx:68 +#: src/tables/purchasing/SupplierPartTable.tsx:70 +#: src/tables/stock/StockItemTable.tsx:229 msgid "Supplier Part" -msgstr "" +msgstr "Leverancier onderdeel" -#: src/components/render/ModelType.tsx:46 +#: src/components/render/ModelType.tsx:57 msgid "Supplier Parts" -msgstr "" +msgstr "Leveranciers onderdelen" -#: src/components/render/ModelType.tsx:54 -#: src/pages/company/ManufacturerPartDetail.tsx:132 +#: src/components/render/ModelType.tsx:66 #: src/tables/part/PartPurchaseOrdersTable.tsx:55 +#: src/tables/stock/StockItemTable.tsx:234 msgid "Manufacturer Part" -msgstr "" +msgstr "Fabrikant onderdeel" -#: src/components/render/ModelType.tsx:55 +#: src/components/render/ModelType.tsx:67 msgid "Manufacturer Parts" -msgstr "" +msgstr "Fabrikant onderdelen" -#: src/components/render/ModelType.tsx:63 -#: src/pages/part/CategoryDetail.tsx:305 +#: src/components/render/ModelType.tsx:76 +#: src/pages/part/CategoryDetail.tsx:310 msgid "Part Category" -msgstr "" +msgstr "Onderdeel categorie" -#: src/components/render/ModelType.tsx:64 -#: src/pages/part/CategoryDetail.tsx:258 -#: src/pages/part/CategoryDetail.tsx:296 -#: src/pages/part/PartDetail.tsx:1063 +#: src/components/render/ModelType.tsx:77 +#: src/pages/part/CategoryDetail.tsx:263 +#: src/pages/part/CategoryDetail.tsx:301 +#: src/pages/part/PartDetail.tsx:1084 msgid "Part Categories" -msgstr "" +msgstr "Onderdeel categorieën" -#: src/components/render/ModelType.tsx:72 -#: src/pages/stock/StockDetail.tsx:624 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:94 -#: src/tables/stock/StockTrackingTable.tsx:45 +#: src/components/render/ModelType.tsx:86 +#: src/forms/BuildForms.tsx:337 +#: src/forms/BuildForms.tsx:385 +#: src/forms/BuildForms.tsx:515 +#: src/forms/SalesOrderForms.tsx:248 +#: src/pages/stock/StockDetail.tsx:839 +#: src/tables/stock/StockTrackingTable.tsx:49 msgid "Stock Item" -msgstr "" +msgstr "Voorraad item" -#: src/components/render/ModelType.tsx:73 +#: src/components/render/ModelType.tsx:87 #: src/pages/company/CompanyDetail.tsx:203 -#: src/pages/stock/LocationDetail.tsx:128 -#: src/pages/stock/LocationDetail.tsx:181 -#: src/pages/stock/LocationDetail.tsx:395 +#: src/pages/part/PartStocktakeDetail.tsx:113 +#: src/pages/stock/LocationDetail.tsx:122 +#: src/pages/stock/LocationDetail.tsx:175 +#: src/pages/stock/LocationDetail.tsx:380 msgid "Stock Items" -msgstr "" - -#: src/components/render/ModelType.tsx:81 -msgid "Stock Location" -msgstr "" - -#: src/components/render/ModelType.tsx:82 -#: src/pages/stock/LocationDetail.tsx:195 -#: src/pages/stock/LocationDetail.tsx:387 -#: src/pages/stock/StockDetail.tsx:616 -msgid "Stock Locations" -msgstr "" - -#: src/components/render/ModelType.tsx:90 -msgid "Stock Location Type" -msgstr "" - -#: src/components/render/ModelType.tsx:91 -msgid "Stock Location Types" -msgstr "" - -#: src/components/render/ModelType.tsx:95 -msgid "Stock History" -msgstr "" +msgstr "Voorraad items" #: src/components/render/ModelType.tsx:96 +msgid "Stock Location" +msgstr "Voorraad locatie" + +#: src/components/render/ModelType.tsx:97 +#: src/pages/stock/LocationDetail.tsx:189 +#: src/pages/stock/LocationDetail.tsx:372 +#: src/pages/stock/StockDetail.tsx:831 +msgid "Stock Locations" +msgstr "Voorraad locatie" + +#: src/components/render/ModelType.tsx:106 +msgid "Stock Location Type" +msgstr "Voorraad locatie type" + +#: src/components/render/ModelType.tsx:107 +msgid "Stock Location Types" +msgstr "Voorraad locatie types" + +#: src/components/render/ModelType.tsx:112 +#: src/pages/part/PartDetail.tsx:712 +msgid "Stock History" +msgstr "Voorraad geschiedenis" + +#: src/components/render/ModelType.tsx:113 msgid "Stock Histories" -msgstr "" +msgstr "Voorraad Historieën" -#: src/components/render/ModelType.tsx:100 -#: src/defaults/links.tsx:31 -#: src/defaults/menuItems.tsx:43 +#: src/components/render/ModelType.tsx:118 msgid "Build" -msgstr "" +msgstr "Bouwen" -#: src/components/render/ModelType.tsx:101 +#: src/components/render/ModelType.tsx:119 msgid "Builds" msgstr "" -#: src/components/render/ModelType.tsx:109 +#: src/components/render/ModelType.tsx:128 msgid "Build Line" msgstr "" -#: src/components/render/ModelType.tsx:110 +#: src/components/render/ModelType.tsx:129 msgid "Build Lines" msgstr "" -#: src/components/render/ModelType.tsx:117 +#: src/components/render/ModelType.tsx:137 msgid "Build Item" msgstr "" -#: src/components/render/ModelType.tsx:118 +#: src/components/render/ModelType.tsx:138 msgid "Build Items" msgstr "" -#: src/components/render/ModelType.tsx:122 -#: src/pages/company/CompanyDetail.tsx:339 +#: src/components/render/ModelType.tsx:143 +#: src/pages/company/CompanyDetail.tsx:321 msgid "Company" -msgstr "" +msgstr "Bedrijf" -#: src/components/render/ModelType.tsx:123 +#: src/components/render/ModelType.tsx:144 msgid "Companies" -msgstr "" +msgstr "Bedrijven" -#: src/components/render/ModelType.tsx:131 +#: src/components/render/ModelType.tsx:153 +#: src/pages/build/BuildDetail.tsx:195 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:204 +#: src/pages/sales/ReturnOrderDetail.tsx:174 +#: src/pages/sales/SalesOrderDetail.tsx:186 #: src/tables/TableHoverCard.tsx:81 -#: src/tables/build/BuildOrderTable.tsx:140 -#: src/tables/purchasing/PurchaseOrderTable.tsx:64 -#: src/tables/sales/ReturnOrderTable.tsx:55 -#: src/tables/sales/SalesOrderTable.tsx:62 +#: src/tables/build/BuildOrderTable.tsx:135 +#: src/tables/purchasing/PurchaseOrderTable.tsx:69 +#: src/tables/sales/ReturnOrderTable.tsx:67 +#: src/tables/sales/SalesOrderTable.tsx:67 msgid "Project Code" -msgstr "" +msgstr "Project code" -#: src/components/render/ModelType.tsx:132 -#: src/pages/Index/Settings/AdminCenter/Index.tsx:128 +#: src/components/render/ModelType.tsx:154 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:145 msgid "Project Codes" -msgstr "" +msgstr "Project codes" -#: src/components/render/ModelType.tsx:138 +#: src/components/render/ModelType.tsx:161 #: src/pages/part/pricing/PurchaseHistoryPanel.tsx:32 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:480 -#: src/tables/part/PartPurchaseOrdersTable.tsx:32 -#: src/tables/stock/StockTrackingTable.tsx:107 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:477 +#: src/pages/stock/StockDetail.tsx:253 +#: src/tables/part/PartPurchaseOrdersTable.tsx:31 +#: src/tables/stock/StockItemTable.tsx:222 +#: src/tables/stock/StockTrackingTable.tsx:111 msgid "Purchase Order" -msgstr "" +msgstr "Inkooporder" -#: src/components/render/ModelType.tsx:139 -#: src/pages/Index/Settings/SystemSettings.tsx:255 +#: src/components/render/ModelType.tsx:162 +#: src/pages/Index/Settings/SystemSettings.tsx:249 #: src/pages/company/CompanyDetail.tsx:196 -#: src/pages/company/SupplierPartDetail.tsx:237 -#: src/pages/part/PartDetail.tsx:662 +#: src/pages/company/SupplierPartDetail.tsx:249 +#: src/pages/part/PartDetail.tsx:683 #: src/pages/purchasing/PurchasingIndex.tsx:25 msgid "Purchase Orders" -msgstr "" +msgstr "Inkooporders" -#: src/components/render/ModelType.tsx:147 +#: src/components/render/ModelType.tsx:171 msgid "Purchase Order Line" -msgstr "" +msgstr "Inkooporder regel" -#: src/components/render/ModelType.tsx:148 +#: src/components/render/ModelType.tsx:172 msgid "Purchase Order Lines" -msgstr "" +msgstr "Inkooporder regels" -#: src/components/render/ModelType.tsx:152 -#: src/pages/build/BuildDetail.tsx:153 -#: src/pages/sales/SalesOrderDetail.tsx:520 -#: src/pages/stock/StockDetail.tsx:221 -#: src/tables/sales/SalesOrderAllocationTable.tsx:50 -#: src/tables/stock/StockTrackingTable.tsx:118 +#: src/components/render/ModelType.tsx:177 +#: src/pages/build/BuildDetail.tsx:148 +#: src/pages/part/pricing/SaleHistoryPanel.tsx:24 +#: src/pages/sales/SalesOrderDetail.tsx:515 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:92 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:341 +#: src/pages/stock/StockDetail.tsx:262 +#: src/tables/sales/SalesOrderAllocationTable.tsx:80 +#: src/tables/stock/StockTrackingTable.tsx:122 msgid "Sales Order" msgstr "Verkooporder" -#: src/components/render/ModelType.tsx:153 -#: src/pages/Index/Settings/SystemSettings.tsx:270 +#: src/components/render/ModelType.tsx:178 +#: src/pages/Index/Settings/SystemSettings.tsx:264 #: src/pages/company/CompanyDetail.tsx:216 -#: src/pages/part/PartDetail.tsx:669 +#: src/pages/part/PartDetail.tsx:695 #: src/pages/sales/SalesIndex.tsx:26 msgid "Sales Orders" msgstr "Verkooporders" -#: src/components/render/ModelType.tsx:161 +#: src/components/render/ModelType.tsx:187 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:340 msgid "Sales Order Shipment" msgstr "Verzending verkooporder" -#: src/components/render/ModelType.tsx:162 +#: src/components/render/ModelType.tsx:188 msgid "Sales Order Shipments" msgstr "Verzendingen verkooporders" -#: src/components/render/ModelType.tsx:168 -#: src/pages/sales/ReturnOrderDetail.tsx:469 -#: src/tables/stock/StockTrackingTable.tsx:129 +#: src/components/render/ModelType.tsx:195 +#: src/pages/sales/ReturnOrderDetail.tsx:464 +#: src/tables/stock/StockTrackingTable.tsx:133 msgid "Return Order" msgstr "Retourorder" -#: src/components/render/ModelType.tsx:169 -#: src/pages/Index/Settings/SystemSettings.tsx:286 +#: src/components/render/ModelType.tsx:196 +#: src/pages/Index/Settings/SystemSettings.tsx:280 #: src/pages/company/CompanyDetail.tsx:223 +#: src/pages/part/PartDetail.tsx:702 #: src/pages/sales/SalesIndex.tsx:32 msgid "Return Orders" msgstr "Retourorders" -#: src/components/render/ModelType.tsx:177 +#: src/components/render/ModelType.tsx:205 msgid "Return Order Line Item" -msgstr "" +msgstr "Retourneer bestelregel item" -#: src/components/render/ModelType.tsx:178 +#: src/components/render/ModelType.tsx:206 msgid "Return Order Line Items" -msgstr "" - -#: src/components/render/ModelType.tsx:182 -#: src/tables/company/AddressTable.tsx:47 -msgid "Address" -msgstr "" - -#: src/components/render/ModelType.tsx:183 -#: src/pages/company/CompanyDetail.tsx:253 -msgid "Addresses" -msgstr "" - -#: src/components/render/ModelType.tsx:189 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:195 -#: src/pages/sales/ReturnOrderDetail.tsx:174 -#: src/pages/sales/SalesOrderDetail.tsx:183 -msgid "Contact" -msgstr "" - -#: src/components/render/ModelType.tsx:190 -#: src/pages/company/CompanyDetail.tsx:247 -msgid "Contacts" -msgstr "" - -#: src/components/render/ModelType.tsx:196 -msgid "Owner" -msgstr "" - -#: src/components/render/ModelType.tsx:197 -msgid "Owners" -msgstr "" - -#: src/components/render/ModelType.tsx:203 -#: src/tables/settings/ImportSessionTable.tsx:121 -#: src/tables/stock/StockItemTestResultTable.tsx:198 -#: src/tables/stock/StockTrackingTable.tsx:195 -msgid "User" -msgstr "" - -#: src/components/render/ModelType.tsx:204 -#: src/pages/Index/Settings/AdminCenter/Index.tsx:98 -#: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:13 -msgid "Users" -msgstr "" - -#: src/components/render/ModelType.tsx:210 -msgid "Group" -msgstr "" +msgstr "Retourneer bestelregel items" #: src/components/render/ModelType.tsx:211 -#: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:20 -#: src/tables/settings/UserTable.tsx:138 -#: src/tables/settings/UserTable.tsx:201 -msgid "Groups" -msgstr "" +#: src/tables/company/AddressTable.tsx:48 +msgid "Address" +msgstr "Adres:" -#: src/components/render/ModelType.tsx:218 -msgid "Import Session" -msgstr "" +#: src/components/render/ModelType.tsx:212 +#: src/pages/company/CompanyDetail.tsx:255 +msgid "Addresses" +msgstr "Adressen" #: src/components/render/ModelType.tsx:219 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:196 +#: src/pages/sales/ReturnOrderDetail.tsx:166 +#: src/pages/sales/SalesOrderDetail.tsx:178 +msgid "Contact" +msgstr "Contact" + +#: src/components/render/ModelType.tsx:220 +#: src/pages/company/CompanyDetail.tsx:249 +msgid "Contacts" +msgstr "Contacten" + +#: src/components/render/ModelType.tsx:227 +msgid "Owner" +msgstr "Eigenaar" + +#: src/components/render/ModelType.tsx:228 +msgid "Owners" +msgstr "Eigenaren" + +#: src/components/render/ModelType.tsx:234 +#~ msgid "Purchase Order Line Item" +#~ msgstr "Purchase Order Line Item" + +#: src/components/render/ModelType.tsx:235 +#: src/tables/settings/BarcodeScanHistoryTable.tsx:80 +#: src/tables/settings/BarcodeScanHistoryTable.tsx:211 +#: src/tables/settings/ImportSessionTable.tsx:120 +#: src/tables/settings/StocktakeReportTable.tsx:44 +#: src/tables/stock/StockItemTestResultTable.tsx:204 +#: src/tables/stock/StockTrackingTable.tsx:181 +#: src/tables/stock/StockTrackingTable.tsx:210 +msgid "User" +msgstr "Gebruiker" + +#: src/components/render/ModelType.tsx:236 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:109 +#: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:13 +msgid "Users" +msgstr "Gebruikers" + +#: src/components/render/ModelType.tsx:243 +msgid "Group" +msgstr "Groep" + +#: src/components/render/ModelType.tsx:244 +#: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:20 +#: src/tables/settings/UserTable.tsx:137 +#: src/tables/settings/UserTable.tsx:200 +msgid "Groups" +msgstr "Groepen" + +#: src/components/render/ModelType.tsx:252 +msgid "Import Session" +msgstr "Sessie Importeren" + +#: src/components/render/ModelType.tsx:253 msgid "Import Sessions" -msgstr "" +msgstr "Sessies importeren" -#: src/components/render/ModelType.tsx:225 +#: src/components/render/ModelType.tsx:260 msgid "Label Template" -msgstr "" +msgstr "Label sjabloon" -#: src/components/render/ModelType.tsx:226 -#: src/pages/Index/Settings/AdminCenter/Index.tsx:158 +#: src/components/render/ModelType.tsx:261 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:187 msgid "Label Templates" -msgstr "" +msgstr "Label sjablonen" -#: src/components/render/ModelType.tsx:232 +#: src/components/render/ModelType.tsx:264 +#~ msgid "Unknown Model" +#~ msgstr "Unknown Model" + +#: src/components/render/ModelType.tsx:268 msgid "Report Template" -msgstr "" +msgstr "Rapporteer sjabloon" -#: src/components/render/ModelType.tsx:233 -#: src/pages/Index/Settings/AdminCenter/Index.tsx:164 +#: src/components/render/ModelType.tsx:269 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:193 msgid "Report Templates" -msgstr "" +msgstr "Rapport sjablonen" -#: src/components/render/ModelType.tsx:239 -msgid "Plugin Configuration" -msgstr "" - -#: src/components/render/ModelType.tsx:240 +#: src/components/render/ModelType.tsx:277 msgid "Plugin Configurations" -msgstr "" +msgstr "Plug-in configuraties" + +#: src/components/render/ModelType.tsx:284 +msgid "Content Type" +msgstr "Content type" + +#: src/components/render/ModelType.tsx:285 +msgid "Content Types" +msgstr "Content Types" + +#: src/components/render/ModelType.tsx:291 +#: src/tables/machine/MachineListTable.tsx:351 +#: src/tables/machine/MachineTypeTable.tsx:282 +msgid "Errors" +msgstr "Foutmeldingen" + +#: src/components/render/ModelType.tsx:307 +#~ msgid "Purchase Order Line Items" +#~ msgstr "Purchase Order Line Items" + +#: src/components/render/ModelType.tsx:337 +#~ msgid "Unknown Models" +#~ msgstr "Unknown Models" #: src/components/render/Order.tsx:121 +#: src/tables/sales/SalesOrderAllocationTable.tsx:136 msgid "Shipment" -msgstr "" +msgstr "Verzending" #: src/components/render/Part.tsx:25 #: src/components/render/Plugin.tsx:17 -#: src/pages/company/CompanyDetail.tsx:325 -#: src/pages/company/SupplierPartDetail.tsx:360 -#: src/pages/part/PartDetail.tsx:879 +#: src/pages/company/CompanyDetail.tsx:307 +#: src/pages/company/SupplierPartDetail.tsx:349 +#: src/pages/part/PartDetail.tsx:911 msgid "Inactive" msgstr "Inactief" @@ -1734,43 +2333,42 @@ msgstr "Inactief" #: src/tables/bom/BomTable.tsx:204 #: src/tables/part/PartTable.tsx:134 msgid "No stock" -msgstr "" +msgstr "Geen voorraad" -#: src/components/render/Part.tsx:30 -#: src/defaults/links.tsx:30 -#: src/defaults/menuItems.tsx:38 -#: src/pages/Index/Settings/SystemSettings.tsx:206 -#: src/pages/part/PartDetail.tsx:543 -#: src/pages/stock/LocationDetail.tsx:367 -#: src/pages/stock/StockDetail.tsx:411 -#: src/tables/stock/StockItemTable.tsx:68 -msgid "Stock" -msgstr "" - -#: src/components/render/Stock.tsx:60 -#: src/pages/stock/StockDetail.tsx:150 -#: src/pages/stock/StockDetail.tsx:581 -#: src/tables/build/BuildAllocatedStockTable.tsx:102 -#: src/tables/sales/SalesOrderAllocationTable.tsx:80 +#: src/components/render/Stock.tsx:61 +#: src/forms/ReturnOrderForms.tsx:190 +#: src/pages/stock/StockDetail.tsx:166 +#: src/pages/stock/StockDetail.tsx:771 +#: src/tables/build/BuildAllocatedStockTable.tsx:123 +#: src/tables/build/BuildOutputTable.tsx:81 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:114 +#: src/tables/sales/SalesOrderAllocationTable.tsx:106 msgid "Serial Number" -msgstr "" +msgstr "Serienummer" -#: src/components/render/Stock.tsx:62 -#: src/forms/BuildForms.tsx:218 -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/pages/part/pricing/BomPricingPanel.tsx:109 +#: src/components/render/Stock.tsx:63 +#: src/forms/BuildForms.tsx:206 +#: src/forms/BuildForms.tsx:515 +#: src/forms/PurchaseOrderForms.tsx:689 +#: src/forms/SalesOrderForms.tsx:248 +#: src/pages/part/PartSchedulingDetail.tsx:80 +#: src/pages/part/PartStocktakeDetail.tsx:60 +#: src/pages/part/PartStocktakeDetail.tsx:234 +#: src/pages/part/PartStocktakeDetail.tsx:252 +#: src/pages/part/pricing/BomPricingPanel.tsx:148 #: src/pages/part/pricing/PriceBreakPanel.tsx:89 -#: src/pages/part/pricing/PriceBreakPanel.tsx:171 -#: src/pages/stock/StockDetail.tsx:145 -#: src/pages/stock/StockDetail.tsx:587 -#: src/tables/build/BuildOrderTestTable.tsx:197 -#: src/tables/part/PartPurchaseOrdersTable.tsx:92 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:143 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:171 +#: src/pages/part/pricing/PriceBreakPanel.tsx:172 +#: src/pages/stock/StockDetail.tsx:161 +#: src/pages/stock/StockDetail.tsx:777 +#: src/tables/build/BuildLineTable.tsx:79 +#: src/tables/build/BuildOrderTestTable.tsx:198 +#: src/tables/part/PartPurchaseOrdersTable.tsx:93 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:146 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:177 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:77 -#: src/tables/stock/StockTrackingTable.tsx:59 +#: src/tables/stock/StockTrackingTable.tsx:63 msgid "Quantity" -msgstr "" +msgstr "Aantal" #: src/components/settings/SettingItem.tsx:47 #: src/components/settings/SettingItem.tsx:100 @@ -1779,24 +2377,24 @@ msgstr "" #: src/components/settings/SettingList.tsx:67 msgid "Edit Setting" -msgstr "" +msgstr "Instelling wijzigen" #: src/components/settings/SettingList.tsx:78 #: src/components/settings/SettingList.tsx:108 msgid "Setting {0} updated successfully" -msgstr "" +msgstr "Instelling {0} met succes bijgewerkt" #: src/components/settings/SettingList.tsx:107 msgid "Setting updated" -msgstr "" +msgstr "Instelling bijgewerkt" #: src/components/settings/SettingList.tsx:117 msgid "Error editing setting" -msgstr "" +msgstr "Fout bij bewerken instelling" #: src/components/settings/SettingList.tsx:162 msgid "No settings specified" -msgstr "" +msgstr "Geen instellingen opgegeven" #: src/components/tables/FilterGroup.tsx:29 #~ msgid "Add table filter" @@ -1842,10 +2440,6 @@ msgstr "" #~ msgid "Required Part" #~ msgstr "Required Part" -#: src/components/tables/build/BuildLineTable.tsx:152 -#~ msgid "Required Quantity" -#~ msgstr "Required Quantity" - #: src/components/tables/build/BuildOrderTable.tsx:52 #~ msgid "Progress" #~ msgstr "Progress" @@ -2126,14 +2720,6 @@ msgstr "" #~ msgid "user deleted" #~ msgstr "user deleted" -#: src/components/tables/settings/UserTable.tsx:168 -#~ msgid "First Name" -#~ msgstr "First Name" - -#: src/components/tables/settings/UserTable.tsx:173 -#~ msgid "Last Name" -#~ msgstr "Last Name" - #: src/components/tables/stock/StockItemTable.tsx:247 #~ msgid "Test Filter" #~ msgstr "Test Filter" @@ -2146,36 +2732,21 @@ msgstr "" #~ msgid "Stock location updated" #~ msgstr "Stock location updated" -#: src/components/widgets/DisplayWidget.tsx:11 -#: src/pages/Index/Settings/AccountSettings/DisplaySettingsPanel.tsx:17 -msgid "Display Settings" -msgstr "" - -#: src/components/widgets/DisplayWidget.tsx:15 -#: src/pages/Index/Settings/AccountSettings/DisplaySettingsPanel.tsx:23 -msgid "Color Mode" -msgstr "" - -#: src/components/widgets/DisplayWidget.tsx:21 -#: src/pages/Index/Settings/AccountSettings/DisplaySettingsPanel.tsx:33 -msgid "Language" -msgstr "" - #: src/components/widgets/FeedbackWidget.tsx:19 -msgid "Something is new: Platform UI" -msgstr "" +#~ msgid "Something is new: Platform UI" +#~ msgstr "Something is new: Platform UI" #: src/components/widgets/FeedbackWidget.tsx:21 -msgid "We are building a new UI with a modern stack. What you currently see is not fixed and will be redesigned but demonstrates the UI/UX possibilities we will have going forward." -msgstr "" +#~ msgid "We are building a new UI with a modern stack. What you currently see is not fixed and will be redesigned but demonstrates the UI/UX possibilities we will have going forward." +#~ msgstr "We are building a new UI with a modern stack. What you currently see is not fixed and will be redesigned but demonstrates the UI/UX possibilities we will have going forward." #: src/components/widgets/FeedbackWidget.tsx:32 -msgid "Provide Feedback" -msgstr "" +#~ msgid "Provide Feedback" +#~ msgstr "Provide Feedback" #: src/components/widgets/GetStartedWidget.tsx:11 -msgid "Getting started" -msgstr "" +#~ msgid "Getting started" +#~ msgstr "Getting started" #: src/components/widgets/MarkdownEditor.tsx:108 #~ msgid "Failed to upload image" @@ -2186,301 +2757,271 @@ msgstr "" #~ msgstr "Notes saved" #: src/components/widgets/WidgetLayout.tsx:166 -msgid "Layout" -msgstr "" +#~ msgid "Layout" +#~ msgstr "Layout" #: src/components/widgets/WidgetLayout.tsx:172 -msgid "Reset Layout" -msgstr "" +#~ msgid "Reset Layout" +#~ msgstr "Reset Layout" #: src/components/widgets/WidgetLayout.tsx:185 -msgid "Stop Edit" -msgstr "" - -#: src/components/widgets/WidgetLayout.tsx:185 -msgid "Edit Layout" -msgstr "" +#~ msgid "Stop Edit" +#~ msgstr "Stop Edit" #: src/components/widgets/WidgetLayout.tsx:191 -msgid "Appearance" -msgstr "" +#~ msgid "Appearance" +#~ msgstr "Appearance" #: src/components/widgets/WidgetLayout.tsx:203 -msgid "Show Boxes" -msgstr "" +#~ msgid "Show Boxes" +#~ msgstr "Show Boxes" #: src/contexts/LanguageContext.tsx:20 msgid "Arabic" -msgstr "" +msgstr "Arabisch" #: src/contexts/LanguageContext.tsx:21 msgid "Bulgarian" -msgstr "" +msgstr "Bulgaars" #: src/contexts/LanguageContext.tsx:22 msgid "Czech" -msgstr "" +msgstr "Tsjechisch" #: src/contexts/LanguageContext.tsx:23 msgid "Danish" -msgstr "" +msgstr "Deens" #: src/contexts/LanguageContext.tsx:24 msgid "German" -msgstr "" +msgstr "Duits" #: src/contexts/LanguageContext.tsx:25 msgid "Greek" -msgstr "" +msgstr "Grieks" #: src/contexts/LanguageContext.tsx:26 msgid "English" -msgstr "" +msgstr "Engels" #: src/contexts/LanguageContext.tsx:27 msgid "Spanish" -msgstr "" +msgstr "Spaans" #: src/contexts/LanguageContext.tsx:28 msgid "Spanish (Mexican)" -msgstr "" +msgstr "Spaans (Mexicaans)" #: src/contexts/LanguageContext.tsx:29 msgid "Estonian" -msgstr "" +msgstr "Estlandse" #: src/contexts/LanguageContext.tsx:30 msgid "Farsi / Persian" -msgstr "" +msgstr "Farsiaans / Perzisch" #: src/contexts/LanguageContext.tsx:31 msgid "Finnish" -msgstr "" +msgstr "Fins" #: src/contexts/LanguageContext.tsx:32 msgid "French" -msgstr "" +msgstr "Frans" #: src/contexts/LanguageContext.tsx:33 msgid "Hebrew" -msgstr "" +msgstr "Hebreeuws" #: src/contexts/LanguageContext.tsx:34 msgid "Hindi" -msgstr "" +msgstr "Hindoestani" #: src/contexts/LanguageContext.tsx:35 msgid "Hungarian" -msgstr "" +msgstr "Hongaars" #: src/contexts/LanguageContext.tsx:36 msgid "Italian" -msgstr "" +msgstr "Italiaans" #: src/contexts/LanguageContext.tsx:37 msgid "Japanese" -msgstr "" +msgstr "Japans" #: src/contexts/LanguageContext.tsx:38 msgid "Korean" -msgstr "" +msgstr "Koreaans" #: src/contexts/LanguageContext.tsx:39 -msgid "Latvian" -msgstr "" +msgid "Lithuanian" +msgstr "Litouws" #: src/contexts/LanguageContext.tsx:40 -msgid "Dutch" -msgstr "" +msgid "Latvian" +msgstr "Lets" #: src/contexts/LanguageContext.tsx:41 -msgid "Norwegian" -msgstr "" +msgid "Dutch" +msgstr "Nederlands" #: src/contexts/LanguageContext.tsx:42 -msgid "Polish" -msgstr "" +msgid "Norwegian" +msgstr "Noors" #: src/contexts/LanguageContext.tsx:43 -msgid "Portuguese" -msgstr "" +msgid "Polish" +msgstr "Pools" #: src/contexts/LanguageContext.tsx:44 -msgid "Portuguese (Brazilian)" -msgstr "" +msgid "Portuguese" +msgstr "Portugees" #: src/contexts/LanguageContext.tsx:45 -msgid "Romanian" -msgstr "" +msgid "Portuguese (Brazilian)" +msgstr "Portugees (Braziliaans)" #: src/contexts/LanguageContext.tsx:46 -msgid "Russian" -msgstr "" +msgid "Romanian" +msgstr "Roemeens" #: src/contexts/LanguageContext.tsx:47 -msgid "Slovak" -msgstr "" +msgid "Russian" +msgstr "Russisch" #: src/contexts/LanguageContext.tsx:48 -msgid "Slovenian" -msgstr "" +msgid "Slovak" +msgstr "Slowaaks" #: src/contexts/LanguageContext.tsx:49 -msgid "Swedish" -msgstr "" +msgid "Slovenian" +msgstr "Sloveens" #: src/contexts/LanguageContext.tsx:50 -msgid "Thai" -msgstr "" +msgid "Swedish" +msgstr "Zweeds" #: src/contexts/LanguageContext.tsx:51 -msgid "Turkish" -msgstr "" +msgid "Thai" +msgstr "Thais" #: src/contexts/LanguageContext.tsx:52 -msgid "Ukrainian" -msgstr "" +msgid "Turkish" +msgstr "Turks" #: src/contexts/LanguageContext.tsx:53 -msgid "Vietnamese" -msgstr "" +msgid "Ukrainian" +msgstr "Oekraïens" #: src/contexts/LanguageContext.tsx:54 -msgid "Chinese (Simplified)" -msgstr "" +msgid "Vietnamese" +msgstr "Vietnamese" #: src/contexts/LanguageContext.tsx:55 +msgid "Chinese (Simplified)" +msgstr "Chinees (vereenvoudigd)" + +#: src/contexts/LanguageContext.tsx:56 msgid "Chinese (Traditional)" -msgstr "" +msgstr "Chinees (traditioneel)" + +#: src/defaults/actions.tsx:18 +msgid "Go to the InvenTree dashboard" +msgstr "Ga naar het InvenTree dashboard" #: src/defaults/actions.tsx:18 #: src/defaults/links.tsx:27 #: src/defaults/menuItems.tsx:9 -msgid "Home" -msgstr "" +#~ msgid "Home" +#~ msgstr "Home" #: src/defaults/actions.tsx:25 -#: src/defaults/links.tsx:28 -#: src/defaults/menuItems.tsx:28 -#: src/pages/Index/Dashboard.tsx:19 -#: src/pages/Index/Settings/UserSettings.tsx:46 -msgid "Dashboard" -msgstr "" - -#: src/defaults/actions.tsx:26 -msgid "Go to the InvenTree dashboard" -msgstr "" - -#: src/defaults/actions.tsx:33 msgid "Visit the documentation to learn more about InvenTree" -msgstr "" +msgstr "Bezoek de documentatie om meer te weten te komen over InvenTree" + +#: src/defaults/actions.tsx:31 +#: src/defaults/links.tsx:92 +#: src/defaults/links.tsx:124 +msgid "About InvenTree" +msgstr "Over InvenTree" + +#: src/defaults/actions.tsx:32 +msgid "About the InvenTree org" +msgstr "Over InvenTree org" + +#: src/defaults/actions.tsx:38 +msgid "Server Information" +msgstr "Server informatie" #: src/defaults/actions.tsx:39 -#: src/defaults/links.tsx:98 -#: src/defaults/links.tsx:128 -msgid "About InvenTree" -msgstr "" +#: src/defaults/links.tsx:118 +msgid "About this Inventree instance" +msgstr "Over deze inventaris-instantie" -#: src/defaults/actions.tsx:40 -#: src/defaults/links.tsx:129 -msgid "About the InvenTree org" -msgstr "" +#: src/defaults/actions.tsx:45 +#: src/defaults/links.tsx:105 +#: src/defaults/links.tsx:131 +msgid "License Information" +msgstr "Licentie informatie" #: src/defaults/actions.tsx:46 -msgid "Server Information" -msgstr "" +msgid "Licenses for dependencies of the service" +msgstr "Licenties voor afhankelijkheden van de service" -#: src/defaults/actions.tsx:47 -#: src/defaults/links.tsx:123 -msgid "About this Inventree instance" -msgstr "" +#: src/defaults/actions.tsx:52 +msgid "Open Navigation" +msgstr "Open navigatie" #: src/defaults/actions.tsx:53 -#: src/defaults/links.tsx:111 -msgid "License Information" -msgstr "" - -#: src/defaults/actions.tsx:54 -#: src/defaults/links.tsx:135 -msgid "Licenses for dependencies of the service" -msgstr "" - -#: src/defaults/actions.tsx:61 msgid "Open the main navigation menu" -msgstr "" +msgstr "Open het hoofdnavigatiemenu" -#: src/defaults/actions.tsx:72 +#: src/defaults/actions.tsx:64 msgid "Go to the Admin Center" -msgstr "" - -#: src/defaults/dashboardItems.tsx:15 -msgid "Subscribed Parts" -msgstr "" - -#: src/defaults/dashboardItems.tsx:22 -msgid "Subscribed Categories" -msgstr "" +msgstr "Ga naar het beheergedeelte" #: src/defaults/dashboardItems.tsx:29 -msgid "Latest Parts" -msgstr "" +#~ msgid "Latest Parts" +#~ msgstr "Latest Parts" #: src/defaults/dashboardItems.tsx:36 -msgid "BOM Waiting Validation" -msgstr "" +#~ msgid "BOM Waiting Validation" +#~ msgstr "BOM Waiting Validation" #: src/defaults/dashboardItems.tsx:43 -msgid "Recently Updated" -msgstr "" - -#: src/defaults/dashboardItems.tsx:50 -#: src/tables/part/PartTable.tsx:238 -msgid "Low Stock" -msgstr "" +#~ msgid "Recently Updated" +#~ msgstr "Recently Updated" #: src/defaults/dashboardItems.tsx:57 -msgid "Depleted Stock" -msgstr "" +#~ msgid "Depleted Stock" +#~ msgstr "Depleted Stock" #: src/defaults/dashboardItems.tsx:64 -msgid "Required for Build Orders" -msgstr "" +#~ msgid "Required for Build Orders" +#~ msgstr "Required for Build Orders" #: src/defaults/dashboardItems.tsx:71 -msgid "Expired Stock" -msgstr "" +#~ msgid "Expired Stock" +#~ msgstr "Expired Stock" #: src/defaults/dashboardItems.tsx:78 -msgid "Stale Stock" -msgstr "" +#~ msgid "Stale Stock" +#~ msgstr "Stale Stock" #: src/defaults/dashboardItems.tsx:85 -msgid "Build Orders In Progress" -msgstr "" - -#: src/defaults/dashboardItems.tsx:92 -msgid "Overdue Build Orders" -msgstr "" +#~ msgid "Build Orders In Progress" +#~ msgstr "Build Orders In Progress" #: src/defaults/dashboardItems.tsx:99 -msgid "Outstanding Purchase Orders" -msgstr "" - -#: src/defaults/dashboardItems.tsx:106 -msgid "Overdue Purchase Orders" -msgstr "" +#~ msgid "Outstanding Purchase Orders" +#~ msgstr "Outstanding Purchase Orders" #: src/defaults/dashboardItems.tsx:113 -msgid "Outstanding Sales Orders" -msgstr "Openstaande Verkooporders" - -#: src/defaults/dashboardItems.tsx:120 -msgid "Overdue Sales Orders" -msgstr "Achterstallige Verkooporders" +#~ msgid "Outstanding Sales Orders" +#~ msgstr "Outstanding Sales Orders" #: src/defaults/dashboardItems.tsx:127 -msgid "Current News" -msgstr "" +#~ msgid "Current News" +#~ msgstr "Current News" #: src/defaults/defaultHostList.tsx:8 #~ msgid "InvenTree Demo" @@ -2490,98 +3031,81 @@ msgstr "" #~ msgid "Local Server" #~ msgstr "Local Server" -#: src/defaults/links.tsx:12 -#: src/pages/company/CompanyDetail.tsx:96 -msgid "Website" -msgstr "" - #: src/defaults/links.tsx:17 -msgid "GitHub" -msgstr "" +#~ msgid "GitHub" +#~ msgstr "GitHub" #: src/defaults/links.tsx:22 -msgid "Demo" -msgstr "" - -#: src/defaults/links.tsx:33 -#: src/defaults/menuItems.tsx:48 -#: src/pages/company/ManufacturerDetail.tsx:9 -#: src/pages/company/ManufacturerPartDetail.tsx:263 -#: src/pages/company/SupplierDetail.tsx:9 -#: src/pages/company/SupplierPartDetail.tsx:347 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:483 -#: src/pages/purchasing/PurchasingIndex.tsx:60 -msgid "Purchasing" -msgstr "" - -#: src/defaults/links.tsx:37 -#: src/defaults/menuItems.tsx:53 -#: src/pages/company/CustomerDetail.tsx:9 -#: src/pages/sales/ReturnOrderDetail.tsx:474 -#: src/pages/sales/SalesIndex.tsx:53 -#: src/pages/sales/SalesOrderDetail.tsx:525 -msgid "Sales" -msgstr "Verkoop" +#~ msgid "Demo" +#~ msgstr "Demo" #: src/defaults/links.tsx:41 #: src/defaults/menuItems.tsx:71 #: src/pages/Index/Playground.tsx:217 -msgid "Playground" -msgstr "" +#~ msgid "Playground" +#~ msgstr "Playground" + +#: src/defaults/links.tsx:45 +msgid "API" +msgstr "API" + +#: src/defaults/links.tsx:48 +msgid "InvenTree API documentation" +msgstr "InvenTree API documentatie" + +#: src/defaults/links.tsx:52 +msgid "Developer Manual" +msgstr "Handleiding voor ontwikkelaar" #: src/defaults/links.tsx:55 -msgid "Getting Started" -msgstr "" +msgid "InvenTree developer manual" +msgstr "InvenTree ontwikkelaar handleiding" -#: src/defaults/links.tsx:56 -msgid "Getting started with InvenTree" -msgstr "" +#: src/defaults/links.tsx:59 +msgid "FAQ" +msgstr "Veelgestelde vragen (FAQ)" #: src/defaults/links.tsx:62 -msgid "API" -msgstr "" +msgid "Frequently asked questions" +msgstr "Veelgestelde vragen" -#: src/defaults/links.tsx:63 -msgid "InvenTree API documentation" -msgstr "" - -#: src/defaults/links.tsx:68 -msgid "Developer Manual" +#: src/defaults/links.tsx:66 +msgid "GitHub Repository" msgstr "" #: src/defaults/links.tsx:69 -msgid "InvenTree developer manual" -msgstr "" - -#: src/defaults/links.tsx:74 -msgid "FAQ" -msgstr "" - -#: src/defaults/links.tsx:75 -msgid "Frequently asked questions" +msgid "InvenTree source code on GitHub" msgstr "" #: src/defaults/links.tsx:76 #~ msgid "Instance" #~ msgstr "Instance" +#: src/defaults/links.tsx:79 +#: src/defaults/links.tsx:117 +msgid "System Information" +msgstr "Systeem informatie" + #: src/defaults/links.tsx:83 #~ msgid "InvenTree" #~ msgstr "InvenTree" -#: src/defaults/links.tsx:85 -#: src/defaults/links.tsx:122 -msgid "System Information" -msgstr "" - #: src/defaults/links.tsx:117 #~ msgid "Licenses for packages used by InvenTree" #~ msgstr "Licenses for packages used by InvenTree" -#: src/defaults/links.tsx:134 -msgid "Licenses" +#: src/defaults/links.tsx:125 +msgid "About the InvenTree Project" msgstr "" +#: src/defaults/links.tsx:132 +msgid "Licenses for dependencies of the InvenTree software" +msgstr "" + +#: src/defaults/links.tsx:134 +#~ msgid "Licenses" +#~ msgstr "Licenses" + #: src/defaults/menuItems.tsx:7 #~ msgid "Open sourcea" #~ msgstr "Open sourcea" @@ -2607,8 +3131,8 @@ msgstr "" #~ msgstr "Profile page" #: src/defaults/menuItems.tsx:17 -msgid "User attributes and design settings." -msgstr "" +#~ msgid "User attributes and design settings." +#~ msgstr "User attributes and design settings." #: src/defaults/menuItems.tsx:21 #~ msgid "Free for everyone" @@ -2619,8 +3143,8 @@ msgstr "" #~ msgstr "The fluid of Smeargle’s tail secretions changes" #: src/defaults/menuItems.tsx:23 -msgid "View for interactive scanning and multiple actions." -msgstr "" +#~ msgid "View for interactive scanning and multiple actions." +#~ msgstr "View for interactive scanning and multiple actions." #: src/defaults/menuItems.tsx:24 #~ msgid "The fluid of Smeargle’s tail secretions changes in the intensity" @@ -2698,51 +3222,130 @@ msgstr "" #~ msgid "Are you sure you want to delete this attachment?" #~ msgstr "Are you sure you want to delete this attachment?" -#: src/forms/BuildForms.tsx:158 -msgid "Next serial number" -msgstr "" +#: src/forms/BuildForms.tsx:248 +#~ msgid "Remove output" +#~ msgstr "Remove output" -#: src/forms/BuildForms.tsx:162 -msgid "Latest serial number" -msgstr "" +#: src/forms/BuildForms.tsx:269 +#: src/tables/build/BuildAllocatedStockTable.tsx:147 +#: src/tables/build/BuildOrderTestTable.tsx:177 +#: src/tables/build/BuildOrderTestTable.tsx:201 +#: src/tables/build/BuildOutputTable.tsx:460 +msgid "Build Output" +msgstr "Bouw Uitvoer" -#: src/forms/BuildForms.tsx:234 -msgid "Remove output" -msgstr "" +#: src/forms/BuildForms.tsx:269 +#: src/forms/BuildForms.tsx:337 +#: src/forms/BuildForms.tsx:385 +#: src/tables/build/BuildLineTable.tsx:89 +msgid "Batch" +msgstr "Batch" -#: src/forms/BuildForms.tsx:316 +#: src/forms/BuildForms.tsx:269 +#: src/forms/BuildForms.tsx:337 +#: src/forms/BuildForms.tsx:385 +#: src/forms/PurchaseOrderForms.tsx:603 +#: src/pages/build/BuildDetail.tsx:104 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:142 +#: src/pages/sales/ReturnOrderDetail.tsx:113 +#: src/pages/sales/SalesOrderDetail.tsx:122 +#: src/tables/build/BuildOrderTable.tsx:125 +#: src/tables/machine/MachineListTable.tsx:336 +#: src/tables/part/PartPurchaseOrdersTable.tsx:37 +#: src/tables/purchasing/PurchaseOrderTable.tsx:58 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:157 +#: src/tables/sales/ReturnOrderTable.tsx:56 +#: src/tables/sales/SalesOrderTable.tsx:56 +#: src/tables/settings/CustomStateTable.tsx:57 +#: src/tables/settings/ImportSessionTable.tsx:114 +#: src/tables/stock/StockItemTable.tsx:298 +#: src/tables/stock/StockTrackingTable.tsx:56 +msgid "Status" +msgstr "Status" + +#: src/forms/BuildForms.tsx:289 msgid "Complete Build Outputs" -msgstr "" +msgstr "Voltooi Productie" -#: src/forms/BuildForms.tsx:320 +#: src/forms/BuildForms.tsx:292 msgid "Build outputs have been completed" -msgstr "" +msgstr "Productieorder is voltooid" -#: src/forms/BuildForms.tsx:389 +#: src/forms/BuildForms.tsx:353 msgid "Scrap Build Outputs" -msgstr "" +msgstr "Verwijder productieorder" + +#: src/forms/BuildForms.tsx:356 +msgid "Build outputs have been scrapped" +msgstr "Productieorder zijn verwijderd" #: src/forms/BuildForms.tsx:393 -msgid "Build outputs have been scrapped" -msgstr "" - -#: src/forms/BuildForms.tsx:425 -#: src/forms/BuildForms.tsx:449 msgid "Cancel Build Outputs" -msgstr "" +msgstr "Annuleer productieorder" -#: src/forms/BuildForms.tsx:426 -msgid "Selected build outputs will be deleted" -msgstr "" - -#: src/forms/BuildForms.tsx:453 +#: src/forms/BuildForms.tsx:396 msgid "Build outputs have been cancelled" -msgstr "" +msgstr "Productieorders zijn geannuleerd" + +#: src/forms/BuildForms.tsx:408 +#~ msgid "Selected build outputs will be deleted" +#~ msgstr "Selected build outputs will be deleted" + +#: src/forms/BuildForms.tsx:470 +#~ msgid "Remove line" +#~ msgstr "Remove line" + +#: src/forms/BuildForms.tsx:515 +#: src/forms/SalesOrderForms.tsx:248 +#: src/tables/build/BuildLineTable.tsx:174 +#: src/tables/sales/SalesOrderLineItemTable.tsx:276 +#: src/tables/stock/StockItemTable.tsx:309 +msgid "Allocated" +msgstr "Toegewezen" + +#: src/forms/BuildForms.tsx:545 +#: src/forms/SalesOrderForms.tsx:239 +#: src/pages/build/BuildDetail.tsx:208 +msgid "Source Location" +msgstr "Bron locatie" + +#: src/forms/BuildForms.tsx:546 +#: src/forms/SalesOrderForms.tsx:240 +msgid "Select the source location for the stock allocation" +msgstr "Selecteer de bron locatie voor de voorraadtoewijzing" + +#: src/forms/BuildForms.tsx:566 +#: src/forms/SalesOrderForms.tsx:274 +#: src/tables/build/BuildLineTable.tsx:442 +#: src/tables/build/BuildLineTable.tsx:569 +#: src/tables/build/BuildLineTable.tsx:642 +#: src/tables/sales/SalesOrderLineItemTable.tsx:302 +#: src/tables/sales/SalesOrderLineItemTable.tsx:326 +msgid "Allocate Stock" +msgstr "Voorraad toewijzen" + +#: src/forms/BuildForms.tsx:569 +#: src/forms/SalesOrderForms.tsx:279 +msgid "Stock items allocated" +msgstr "Voorraad items toegewezen" #: src/forms/CompanyForms.tsx:150 #~ msgid "Company updated" #~ msgstr "Company updated" +#: src/forms/PartForms.tsx:67 +#: src/forms/PartForms.tsx:154 +#: src/pages/part/CategoryDetail.tsx:117 +#: src/pages/part/PartDetail.tsx:384 +#: src/tables/part/PartCategoryTable.tsx:90 +#: src/tables/part/PartTable.tsx:294 +msgid "Subscribed" +msgstr "Geabonneerd" + +#: src/forms/PartForms.tsx:68 +msgid "Subscribe to notifications for this part" +msgstr "Abonneren op meldingen voor dit onderdeel" + #: src/forms/PartForms.tsx:106 #~ msgid "Create Part" #~ msgstr "Create Part" @@ -2751,276 +3354,295 @@ msgstr "" #~ msgid "Part created" #~ msgstr "Part created" -#: src/forms/PartForms.tsx:124 -msgid "Parent part category" -msgstr "" - #: src/forms/PartForms.tsx:129 #~ msgid "Part updated" #~ msgstr "Part updated" -#: src/forms/PurchaseOrderForms.tsx:300 +#: src/forms/PartForms.tsx:140 +msgid "Parent part category" +msgstr "Bovenliggende onderdeel categorie" + +#: src/forms/PartForms.tsx:155 +msgid "Subscribe to notifications for this category" +msgstr "Abonneer je op meldingen voor deze categorie" + +#: src/forms/PurchaseOrderForms.tsx:314 +msgid "Assign Batch Code and Serial Numbers" +msgstr "" + +#: src/forms/PurchaseOrderForms.tsx:316 +msgid "Assign Batch Code" +msgstr "" + +#: src/forms/PurchaseOrderForms.tsx:336 msgid "Choose Location" -msgstr "" +msgstr "Kies locatie" -#: src/forms/PurchaseOrderForms.tsx:308 +#: src/forms/PurchaseOrderForms.tsx:344 msgid "Item Destination selected" -msgstr "" +msgstr "Item bestemming geselecteerd" -#: src/forms/PurchaseOrderForms.tsx:317 +#: src/forms/PurchaseOrderForms.tsx:353 msgid "Part category default location selected" -msgstr "" +msgstr "Standaardlocatie voor de subcategorie" -#: src/forms/PurchaseOrderForms.tsx:327 +#: src/forms/PurchaseOrderForms.tsx:363 msgid "Received stock location selected" -msgstr "" +msgstr "Ontvangen voorraadlocatie geselecteerd" -#: src/forms/PurchaseOrderForms.tsx:332 +#: src/forms/PurchaseOrderForms.tsx:368 msgid "Default location selected" -msgstr "" +msgstr "Standaard locatie geselecteerd" -#: src/forms/PurchaseOrderForms.tsx:343 -#: src/forms/PurchaseOrderForms.tsx:435 -msgid "Scan Barcode" -msgstr "" +#: src/forms/PurchaseOrderForms.tsx:421 +#~ msgid "Assign Batch Code{0}" +#~ msgstr "Assign Batch Code{0}" -#: src/forms/PurchaseOrderForms.tsx:388 +#: src/forms/PurchaseOrderForms.tsx:427 msgid "Set Location" -msgstr "" +msgstr "Locatie invoeren" -#: src/forms/PurchaseOrderForms.tsx:396 -msgid "Assign Batch Code{0}" -msgstr "" - -#: src/forms/PurchaseOrderForms.tsx:405 -#: src/forms/StockForms.tsx:420 +#: src/forms/PurchaseOrderForms.tsx:442 +#: src/forms/StockForms.tsx:539 msgid "Adjust Packaging" -msgstr "" - -#: src/forms/PurchaseOrderForms.tsx:412 -msgid "Change Status" -msgstr "" - -#: src/forms/PurchaseOrderForms.tsx:418 -msgid "Add Note" -msgstr "" +msgstr "Verpakking aanpassen" #: src/forms/PurchaseOrderForms.tsx:444 #: src/forms/StockForms.tsx:428 -msgid "Remove item from list" -msgstr "" +#~ msgid "Remove item from list" +#~ msgstr "Remove item from list" -#: src/forms/PurchaseOrderForms.tsx:471 -#: src/forms/StockForms.tsx:499 -#: src/forms/StockForms.tsx:533 -#: src/forms/StockForms.tsx:562 -#: src/forms/StockForms.tsx:590 -#: src/forms/StockForms.tsx:621 -#: src/forms/StockForms.tsx:656 -#: src/forms/StockForms.tsx:698 -#: src/forms/StockForms.tsx:734 -#: src/pages/stock/StockDetail.tsx:181 -#: src/tables/ColumnRenderers.tsx:49 -#: src/tables/stock/StockTrackingTable.tsx:85 +#: src/forms/PurchaseOrderForms.tsx:450 +msgid "Change Status" +msgstr "Status wijzigen" + +#: src/forms/PurchaseOrderForms.tsx:456 +msgid "Add Note" +msgstr "Opmerking toevoegen" + +#: src/forms/PurchaseOrderForms.tsx:503 +#: src/forms/StockForms.tsx:614 +#: src/forms/StockForms.tsx:651 +#: src/forms/StockForms.tsx:677 +#: src/forms/StockForms.tsx:705 +#: src/forms/StockForms.tsx:736 +#: src/forms/StockForms.tsx:771 +#: src/forms/StockForms.tsx:813 +#: src/forms/StockForms.tsx:851 +#: src/pages/stock/StockDetail.tsx:202 +#: src/tables/ColumnRenderers.tsx:60 +#: src/tables/stock/StockTrackingTable.tsx:89 msgid "Location" -msgstr "" +msgstr "Locatie" -#: src/forms/PurchaseOrderForms.tsx:486 +#: src/forms/PurchaseOrderForms.tsx:518 msgid "Store at default location" -msgstr "" +msgstr "Op standaardlocatie opslaan" -#: src/forms/PurchaseOrderForms.tsx:499 +#: src/forms/PurchaseOrderForms.tsx:533 msgid "Store at line item destination" -msgstr "" +msgstr "Op de bestemming van het item opslaan" -#: src/forms/PurchaseOrderForms.tsx:509 +#: src/forms/PurchaseOrderForms.tsx:545 msgid "Store with already received stock" -msgstr "" +msgstr "Winkel met reeds ontvangen voorraad" -#: src/forms/PurchaseOrderForms.tsx:524 -#: src/pages/build/BuildDetail.tsx:219 -#: src/pages/stock/StockDetail.tsx:162 -#: src/pages/stock/StockDetail.tsx:599 -#: src/tables/build/BuildAllocatedStockTable.tsx:109 -#: src/tables/build/BuildOrderTestTable.tsx:188 -#: src/tables/sales/SalesOrderAllocationTable.tsx:87 +#: src/forms/PurchaseOrderForms.tsx:566 +#: src/pages/build/BuildDetail.tsx:222 +#: src/pages/stock/StockDetail.tsx:185 +#: src/pages/stock/StockDetail.tsx:793 +#: src/tables/build/BuildAllocatedStockTable.tsx:130 +#: src/tables/build/BuildOrderTestTable.tsx:189 +#: src/tables/build/BuildOutputTable.tsx:86 +#: src/tables/sales/SalesOrderAllocationTable.tsx:113 msgid "Batch Code" +msgstr "Batch code" + +#: src/forms/PurchaseOrderForms.tsx:566 +#~ msgid "Serial numbers" +#~ msgstr "Serial numbers" + +#: src/forms/PurchaseOrderForms.tsx:567 +msgid "Enter batch code for received items" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:535 -msgid "Serial numbers" +#: src/forms/PurchaseOrderForms.tsx:579 +#: src/forms/StockForms.tsx:152 +msgid "Serial Numbers" +msgstr "Serienummers" + +#: src/forms/PurchaseOrderForms.tsx:580 +msgid "Enter serial numbers for received items" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:544 -#: src/forms/StockForms.tsx:443 -#: src/pages/company/SupplierPartDetail.tsx:156 -#: src/pages/company/SupplierPartDetail.tsx:207 -#: src/pages/stock/StockDetail.tsx:244 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:192 +#: src/forms/PurchaseOrderForms.tsx:590 +#: src/forms/StockForms.tsx:556 +#: src/pages/company/SupplierPartDetail.tsx:168 +#: src/pages/company/SupplierPartDetail.tsx:219 +#: src/pages/stock/StockDetail.tsx:320 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:198 msgid "Packaging" -msgstr "" +msgstr "Verpakking" -#: src/forms/PurchaseOrderForms.tsx:556 -#: src/pages/build/BuildDetail.tsx:109 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:148 -#: src/pages/sales/ReturnOrderDetail.tsx:121 -#: src/pages/sales/SalesOrderDetail.tsx:127 -#: src/tables/build/BuildOrderTable.tsx:122 -#: src/tables/machine/MachineListTable.tsx:335 -#: src/tables/part/PartPurchaseOrdersTable.tsx:37 -#: src/tables/purchasing/PurchaseOrderTable.tsx:55 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:132 -#: src/tables/sales/ReturnOrderTable.tsx:46 -#: src/tables/sales/SalesOrderTable.tsx:53 -#: src/tables/settings/ImportSessionTable.tsx:115 -#: src/tables/stock/StockItemTable.tsx:294 -#: src/tables/stock/StockTrackingTable.tsx:52 -msgid "Status" -msgstr "Status" - -#: src/forms/PurchaseOrderForms.tsx:564 -#: src/pages/company/SupplierPartDetail.tsx:110 -#: src/tables/ColumnRenderers.tsx:132 +#: src/forms/PurchaseOrderForms.tsx:612 +#: src/pages/company/SupplierPartDetail.tsx:115 +#: src/tables/ColumnRenderers.tsx:143 msgid "Note" -msgstr "" - -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/pages/company/SupplierPartDetail.tsx:128 -#: src/tables/purchasing/SupplierPriceBreakTable.tsx:57 -msgid "SKU" -msgstr "" - -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/tables/part/PartPurchaseOrdersTable.tsx:120 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:178 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:127 -msgid "Received" -msgstr "" - -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/forms/StockForms.tsx:499 -#: src/forms/StockForms.tsx:533 -#: src/forms/StockForms.tsx:562 -#: src/forms/StockForms.tsx:590 -#: src/forms/StockForms.tsx:621 -#: src/forms/StockForms.tsx:656 -#: src/forms/StockForms.tsx:698 -#: src/forms/StockForms.tsx:734 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:413 -#: src/tables/RowActions.tsx:113 -msgid "Actions" -msgstr "" - -#: src/forms/PurchaseOrderForms.tsx:655 -msgid "Receive Line Items" -msgstr "" +msgstr "Opmerking" #: src/forms/PurchaseOrderForms.tsx:658 #~ msgid "Receive line items" #~ msgstr "Receive line items" -#: src/forms/StockForms.tsx:104 -msgid "Add given quantity as packs instead of individual items" -msgstr "" +#: src/forms/PurchaseOrderForms.tsx:689 +#: src/pages/company/SupplierPartDetail.tsx:133 +#: src/tables/purchasing/SupplierPriceBreakTable.tsx:57 +msgid "SKU" +msgstr "SKU" + +#: src/forms/PurchaseOrderForms.tsx:689 +#: src/tables/part/PartPurchaseOrdersTable.tsx:126 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:184 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:247 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:152 +msgid "Received" +msgstr "Ontvangen" + +#: src/forms/PurchaseOrderForms.tsx:701 +msgid "Receive Line Items" +msgstr "Ontvang regelitems" + +#: src/forms/ReturnOrderForms.tsx:201 +msgid "Receive Items" +msgstr "Ontvang regelitems" + +#: src/forms/ReturnOrderForms.tsx:208 +msgid "Item received into stock" +msgstr "Item ontvangen in voorraad" + +#: src/forms/StockForms.tsx:80 +#: src/hooks/UsePlaceholder.tsx:57 +msgid "Next serial number" +msgstr "Volgend serienummer" #: src/forms/StockForms.tsx:110 #~ msgid "Create Stock Item" #~ msgstr "Create Stock Item" -#: src/forms/StockForms.tsx:117 +#: src/forms/StockForms.tsx:131 +msgid "Add given quantity as packs instead of individual items" +msgstr "Opgegeven hoeveelheid als pakket toevoegen in plaats van individuele artikelen" + +#: src/forms/StockForms.tsx:145 msgid "Enter initial quantity for this stock item" -msgstr "" +msgstr "Voer de initiële hoeveelheid in voor dit voorraadartikel" -#: src/forms/StockForms.tsx:124 -msgid "Serial Numbers" -msgstr "" - -#: src/forms/StockForms.tsx:125 +#: src/forms/StockForms.tsx:154 msgid "Enter serial numbers for new stock (or leave blank)" -msgstr "" +msgstr "Voer serienummer in voor nieuwe voorraad (of laat het leeg)" #: src/forms/StockForms.tsx:158 #~ msgid "Stock item updated" #~ msgstr "Stock item updated" -#: src/forms/StockForms.tsx:179 -#: src/pages/stock/StockDetail.tsx:434 -#: src/tables/stock/StockItemTable.tsx:417 -#: src/tables/stock/StockItemTable.tsx:535 +#: src/forms/StockForms.tsx:169 +#: src/pages/stock/StockDetail.tsx:131 +msgid "Stock Status" +msgstr "Voorraad status" + +#: src/forms/StockForms.tsx:218 +#: src/pages/stock/StockDetail.tsx:554 +#: src/tables/stock/StockItemTable.tsx:421 +#: src/tables/stock/StockItemTable.tsx:541 msgid "Add Stock Item" -msgstr "" +msgstr "Voorraad item toevoegen" -#: src/forms/StockForms.tsx:362 +#: src/forms/StockForms.tsx:262 +msgid "Select the part to install" +msgstr "Selecteer het onderdeel om te installeren" + +#: src/forms/StockForms.tsx:480 msgid "Loading..." -msgstr "" +msgstr "Laden..." -#: src/forms/StockForms.tsx:408 +#: src/forms/StockForms.tsx:527 msgid "Move to default location" -msgstr "" +msgstr "Verplaats naar standaardlocatie" -#: src/forms/StockForms.tsx:499 -#: src/forms/StockForms.tsx:533 -#: src/forms/StockForms.tsx:562 -#: src/forms/StockForms.tsx:590 -#: src/forms/StockForms.tsx:621 -#: src/forms/StockForms.tsx:656 -#: src/forms/StockForms.tsx:698 -#: src/forms/StockForms.tsx:734 -#: src/pages/part/PartDetail.tsx:230 -#: src/pages/part/PartDetail.tsx:843 -#: src/tables/stock/StockItemTable.tsx:325 +#: src/forms/StockForms.tsx:614 +#: src/forms/StockForms.tsx:651 +#: src/forms/StockForms.tsx:677 +#: src/forms/StockForms.tsx:705 +#: src/forms/StockForms.tsx:736 +#: src/forms/StockForms.tsx:771 +#: src/forms/StockForms.tsx:813 +#: src/forms/StockForms.tsx:851 +#: src/pages/part/PartDetail.tsx:251 +#: src/pages/part/PartDetail.tsx:875 +#: src/tables/stock/StockItemTable.tsx:329 msgid "In Stock" -msgstr "" +msgstr "Op voorraad" -#: src/forms/StockForms.tsx:499 +#: src/forms/StockForms.tsx:614 msgid "Move" -msgstr "" +msgstr "Verplaatsen" -#: src/forms/StockForms.tsx:562 -#: src/pages/stock/StockDetail.tsx:518 -#: src/tables/stock/StockItemTestResultTable.tsx:328 +#: src/forms/StockForms.tsx:677 +#: src/pages/stock/StockDetail.tsx:681 +#: src/tables/stock/StockItemTestResultTable.tsx:346 msgid "Add" -msgstr "" +msgstr "Toevoegen" -#: src/forms/StockForms.tsx:590 -#: src/pages/Index/Scan.tsx:266 -#: src/pages/stock/StockDetail.tsx:508 +#: src/forms/StockForms.tsx:705 +#: src/pages/Index/Scan.tsx:280 +#: src/pages/stock/StockDetail.tsx:670 msgid "Count" -msgstr "" +msgstr "Aantal" -#: src/forms/StockForms.tsx:835 +#: src/forms/StockForms.tsx:953 +#: src/pages/stock/StockDetail.tsx:682 +#: src/tables/stock/StockItemTable.tsx:454 msgid "Add Stock" -msgstr "" +msgstr "Voorraad toevoegen" -#: src/forms/StockForms.tsx:844 +#: src/forms/StockForms.tsx:962 +#: src/pages/stock/StockDetail.tsx:691 +#: src/tables/stock/StockItemTable.tsx:463 msgid "Remove Stock" -msgstr "" +msgstr "Voorraad verwijderen" -#: src/forms/StockForms.tsx:853 -#: src/pages/part/PartDetail.tsx:1017 +#: src/forms/StockForms.tsx:971 +#: src/pages/part/PartDetail.tsx:1039 +#: src/pages/stock/StockDetail.tsx:712 +#: src/tables/stock/StockItemTable.tsx:483 msgid "Transfer Stock" -msgstr "" +msgstr "Voorraad verplaatsen " -#: src/forms/StockForms.tsx:862 -#: src/pages/part/PartDetail.tsx:1006 +#: src/forms/StockForms.tsx:980 +#: src/pages/part/PartDetail.tsx:1028 +#: src/pages/stock/LocationDetail.tsx:314 +#: src/pages/stock/LocationDetail.tsx:318 +#: src/tables/stock/StockItemTable.tsx:472 +#: src/tables/stock/StockItemTable.tsx:476 msgid "Count Stock" -msgstr "" +msgstr "Tel voorraad" -#: src/forms/StockForms.tsx:871 +#: src/forms/StockForms.tsx:989 msgid "Change Stock Status" -msgstr "" +msgstr "Wijzig voorraad status" -#: src/forms/StockForms.tsx:880 +#: src/forms/StockForms.tsx:998 msgid "Merge Stock" -msgstr "" +msgstr "Voorraad samenvoegen" -#: src/forms/StockForms.tsx:899 +#: src/forms/StockForms.tsx:1017 +#: src/tables/stock/StockItemTable.tsx:530 msgid "Delete Stock Items" -msgstr "" +msgstr "Voorraad items verwijderen" -#: src/forms/StockForms.tsx:906 +#: src/forms/StockForms.tsx:1024 msgid "Parent stock location" -msgstr "" +msgstr "Bovenliggende voorraad locatie" #: src/functions/auth.tsx:34 #~ msgid "Error fetching token from server." @@ -3042,13 +3664,13 @@ msgstr "" #~ msgid "You have been logged out" #~ msgstr "You have been logged out" -#: src/functions/auth.tsx:117 +#: src/functions/auth.tsx:128 msgid "Logged Out" -msgstr "" +msgstr "Uitgelogd" -#: src/functions/auth.tsx:118 +#: src/functions/auth.tsx:129 msgid "Successfully logged out" -msgstr "" +msgstr "Succesvol uitgelogd" #: src/functions/auth.tsx:141 #~ msgid "Already logged in" @@ -3062,22 +3684,22 @@ msgstr "" #~ msgid "Found an existing login - welcome back!" #~ msgstr "Found an existing login - welcome back!" -#: src/functions/auth.tsx:156 +#: src/functions/auth.tsx:167 msgid "Check your inbox for a reset link. This only works if you have an account. Check in spam too." -msgstr "" +msgstr "Check uw inbox voor een reset-link. Dit werkt alleen als u een account heeft. Controleer ook in spam box." -#: src/functions/auth.tsx:163 +#: src/functions/auth.tsx:174 #: src/pages/Auth/Set-Password.tsx:39 msgid "Reset failed" -msgstr "" +msgstr "Reset is mislukt" -#: src/functions/auth.tsx:194 +#: src/functions/auth.tsx:205 msgid "Logged In" -msgstr "" +msgstr "Ingelogd" -#: src/functions/auth.tsx:195 +#: src/functions/auth.tsx:206 msgid "Successfully logged in" -msgstr "" +msgstr "Succesvol ingelogd" #: src/functions/forms.tsx:50 #~ msgid "Form method not provided" @@ -3095,62 +3717,74 @@ msgstr "" #~ msgid "method parameter not supplied" #~ msgstr "method parameter not supplied" -#: src/functions/notifications.tsx:10 +#: src/functions/notifications.tsx:12 msgid "Not implemented" -msgstr "" +msgstr "Niet geïmplementeerd" -#: src/functions/notifications.tsx:11 +#: src/functions/notifications.tsx:13 msgid "This feature is not yet implemented" -msgstr "" +msgstr "Deze functionaliteit is nog niet geïmplementeerd" -#: src/functions/notifications.tsx:21 -msgid "Permission denied" -msgstr "" +#: src/functions/notifications.tsx:24 +#~ msgid "Permission denied" +#~ msgstr "Permission denied" -#: src/functions/notifications.tsx:22 +#: src/functions/notifications.tsx:25 msgid "You do not have permission to perform this action" -msgstr "" +msgstr "U heeft geen rechten om deze actie uit te voeren" -#: src/functions/notifications.tsx:33 +#: src/functions/notifications.tsx:36 msgid "Invalid Return Code" -msgstr "" +msgstr "Ongeldige retourcode" -#: src/functions/notifications.tsx:34 +#: src/functions/notifications.tsx:37 msgid "Server returned status {returnCode}" -msgstr "" +msgstr "Server geeft status terug {returnCode}" + +#: src/functions/notifications.tsx:47 +msgid "Timeout" +msgstr "Tijdslimiet" + +#: src/functions/notifications.tsx:48 +msgid "The request timed out" +msgstr "De aanvraag duurde te lang" #: src/hooks/UseForm.tsx:88 msgid "Item Created" -msgstr "" +msgstr "Item gemaakt" #: src/hooks/UseForm.tsx:105 msgid "Item Updated" -msgstr "" +msgstr "Item geüpdate" #: src/hooks/UseForm.tsx:124 msgid "Item Deleted" -msgstr "" +msgstr "Item verwijderd" #: src/hooks/UseForm.tsx:128 msgid "Are you sure you want to delete this item?" -msgstr "" +msgstr "Weet u zeker dat u dit item wilt verwijderen?" + +#: src/hooks/UsePlaceholder.tsx:59 +msgid "Latest serial number" +msgstr "Laatste serienummer" #: src/pages/Auth/Logged-In.tsx:22 msgid "Checking if you are already logged in" -msgstr "" +msgstr "Controleren of je al ingelogd bent" -#: src/pages/Auth/Login.tsx:31 -#: src/pages/Index/Scan.tsx:329 +#: src/pages/Auth/Login.tsx:35 +#: src/pages/Index/Scan.tsx:343 msgid "No selection" -msgstr "" +msgstr "Niets geselecteerd" -#: src/pages/Auth/Login.tsx:87 +#: src/pages/Auth/Login.tsx:91 msgid "Welcome, log in below" -msgstr "" +msgstr "Welkom, log hieronder in" -#: src/pages/Auth/Login.tsx:89 +#: src/pages/Auth/Login.tsx:93 msgid "Register below" -msgstr "" +msgstr "Registreer hieronder" #: src/pages/Auth/Login.tsx:121 #~ msgid "Edit host options" @@ -3158,68 +3792,68 @@ msgstr "" #: src/pages/Auth/Logout.tsx:22 msgid "Logging out" -msgstr "" +msgstr "Uitloggen" #: src/pages/Auth/Reset.tsx:41 #: src/pages/Auth/Set-Password.tsx:112 -msgid "Send mail" -msgstr "" +#~ msgid "Send mail" +#~ msgstr "Send mail" #: src/pages/Auth/Set-Password.tsx:30 msgid "Token invalid" -msgstr "" +msgstr "Token ongeldig" #: src/pages/Auth/Set-Password.tsx:31 msgid "You need to provide a valid token to set a new password. Check your inbox for a reset link." -msgstr "" +msgstr "U moet een geldig token opgeven om een nieuw wachtwoord in te stellen. Controleer uw inbox voor een herstellink." #: src/pages/Auth/Set-Password.tsx:49 -msgid "No token provided" -msgstr "" +#~ msgid "No token provided" +#~ msgstr "No token provided" #: src/pages/Auth/Set-Password.tsx:50 -msgid "You need to provide a token to set a new password. Check your inbox for a reset link." -msgstr "" +#~ msgid "You need to provide a token to set a new password. Check your inbox for a reset link." +#~ msgstr "You need to provide a token to set a new password. Check your inbox for a reset link." -#: src/pages/Auth/Set-Password.tsx:73 +#: src/pages/Auth/Set-Password.tsx:68 msgid "Password set" -msgstr "" +msgstr "Wachtwoord ingesteld" -#: src/pages/Auth/Set-Password.tsx:74 +#: src/pages/Auth/Set-Password.tsx:69 msgid "The password was set successfully. You can now login with your new password" -msgstr "" +msgstr "Het wachtwoord is met succes ingesteld. U kunt nu inloggen met uw nieuwe wachtwoord" -#: src/pages/Auth/Set-Password.tsx:101 +#: src/pages/Auth/Set-Password.tsx:96 msgid "Set new password" -msgstr "" +msgstr "Stel nieuw wachtwoord in." #: src/pages/ErrorPage.tsx:16 msgid "Error: {0}" -msgstr "" +msgstr "Foutmelding: {0}" #: src/pages/ErrorPage.tsx:23 msgid "An unexpected error has occurred" -msgstr "" +msgstr "Er is een onverwachte fout opgetreden" #: src/pages/ErrorPage.tsx:28 #~ msgid "Sorry, an unexpected error has occurred." #~ msgstr "Sorry, an unexpected error has occurred." #: src/pages/Index/Dashboard.tsx:22 -msgid "Autoupdate" -msgstr "" +#~ msgid "Autoupdate" +#~ msgstr "Autoupdate" #: src/pages/Index/Dashboard.tsx:26 -msgid "This page is a replacement for the old start page with the same information. This page will be deprecated and replaced by the home page." -msgstr "" +#~ msgid "This page is a replacement for the old start page with the same information. This page will be deprecated and replaced by the home page." +#~ msgstr "This page is a replacement for the old start page with the same information. This page will be deprecated and replaced by the home page." #: src/pages/Index/Home.tsx:58 -msgid "Welcome to your Dashboard{0}" -msgstr "" +#~ msgid "Welcome to your Dashboard{0}" +#~ msgstr "Welcome to your Dashboard{0}" #: src/pages/Index/Playground.tsx:222 -msgid "This page is a showcase for the possibilities of Platform UI." -msgstr "" +#~ msgid "This page is a showcase for the possibilities of Platform UI." +#~ msgstr "This page is a showcase for the possibilities of Platform UI." #: src/pages/Index/Profile/Profile.tsx:30 #: src/pages/Index/Profile/Profile.tsx:141 @@ -3359,132 +3993,197 @@ msgstr "" #: src/pages/Index/Scan.tsx:216 msgid "Manual input" -msgstr "" +msgstr "Handmatige invoer" #: src/pages/Index/Scan.tsx:217 msgid "Image Barcode" -msgstr "" - -#: src/pages/Index/Scan.tsx:247 -msgid "Selected elements are not known" -msgstr "" - -#: src/pages/Index/Scan.tsx:254 -msgid "Multiple object types selected" -msgstr "" +msgstr "Afbeelding barcode" #: src/pages/Index/Scan.tsx:261 +msgid "Selected elements are not known" +msgstr "Geselecteerde elementen zijn niet bekend" + +#: src/pages/Index/Scan.tsx:268 +msgid "Multiple object types selected" +msgstr "Meerdere objecttypes geselecteerd" + +#: src/pages/Index/Scan.tsx:275 msgid "Actions for {0}" -msgstr "" +msgstr "Acties voor {0}" -#: src/pages/Index/Scan.tsx:282 +#: src/pages/Index/Scan.tsx:296 msgid "Scan Page" -msgstr "" +msgstr "Pagina scannen" -#: src/pages/Index/Scan.tsx:285 +#: src/pages/Index/Scan.tsx:299 msgid "This page can be used for continuously scanning items and taking actions on them." -msgstr "" +msgstr "Deze pagina kan worden gebruikt om continu items te scannen en er actie voor te ondernemen." -#: src/pages/Index/Scan.tsx:292 +#: src/pages/Index/Scan.tsx:306 msgid "Toggle Fullscreen" -msgstr "" +msgstr "Schakelen volledig scherm" -#: src/pages/Index/Scan.tsx:305 +#: src/pages/Index/Scan.tsx:319 msgid "Select the input method you want to use to scan items." -msgstr "" +msgstr "Selecteer de invoermethode die je wilt gebruiken om items te scannen." -#: src/pages/Index/Scan.tsx:307 +#: src/pages/Index/Scan.tsx:321 msgid "Input" -msgstr "" +msgstr "Invoer" -#: src/pages/Index/Scan.tsx:314 +#: src/pages/Index/Scan.tsx:328 msgid "Select input method" -msgstr "" +msgstr "Selecteer een invoermethode" -#: src/pages/Index/Scan.tsx:315 +#: src/pages/Index/Scan.tsx:329 msgid "Nothing found" -msgstr "" - -#: src/pages/Index/Scan.tsx:323 -msgid "Depending on the selected parts actions will be shown here. Not all barcode types are supported currently." -msgstr "" - -#: src/pages/Index/Scan.tsx:325 -msgid "Action" -msgstr "" - -#: src/pages/Index/Scan.tsx:334 -msgid "{0} items selected" -msgstr "" +msgstr "Niets gevonden" #: src/pages/Index/Scan.tsx:337 -msgid "General Actions" -msgstr "" +msgid "Depending on the selected parts actions will be shown here. Not all barcode types are supported currently." +msgstr "Afhankelijk van de geselecteerde onderdelen worden hier acties getoond. Niet alle barcode-types worden momenteel ondersteund." + +#: src/pages/Index/Scan.tsx:339 +msgid "Action" +msgstr "Actie" + +#: src/pages/Index/Scan.tsx:348 +msgid "{0} items selected" +msgstr "{0} items geselecteerd" #: src/pages/Index/Scan.tsx:351 +msgid "General Actions" +msgstr "Algemene acties" + +#: src/pages/Index/Scan.tsx:365 msgid "Lookup part" -msgstr "" +msgstr "Onderdeel opzoeken" -#: src/pages/Index/Scan.tsx:359 +#: src/pages/Index/Scan.tsx:373 msgid "Open Link" -msgstr "" +msgstr "Link openen" -#: src/pages/Index/Scan.tsx:375 +#: src/pages/Index/Scan.tsx:389 msgid "History is locally kept in this browser." -msgstr "" +msgstr "De geschiedenis wordt lokaal bewaard in deze browser." -#: src/pages/Index/Scan.tsx:376 +#: src/pages/Index/Scan.tsx:390 msgid "The history is kept in this browser's local storage. So it won't be shared with other users or other devices but is persistent through reloads. You can select items in the history to perform actions on them. To add items, scan/enter them in the Input area." -msgstr "" +msgstr "De geschiedenis wordt bewaard in de lokale opslag van deze browser. Deze zal dus niet worden gedeeld met andere gebruikers of andere apparaten, maar blijft hardnekkig via herladen. U kunt items in de geschiedenis selecteren om acties op ze uit te voeren. Om items toe te voegen, scan/enter in het invoergebied." -#: src/pages/Index/Scan.tsx:378 +#: src/pages/Index/Scan.tsx:392 #: src/pages/Notifications.tsx:100 msgid "History" -msgstr "" +msgstr "Geschiedenis" -#: src/pages/Index/Scan.tsx:384 +#: src/pages/Index/Scan.tsx:398 msgid "Delete History" -msgstr "" +msgstr "Verwijder geschiedenis" -#: src/pages/Index/Scan.tsx:449 +#: src/pages/Index/Scan.tsx:463 msgid "No history" -msgstr "" +msgstr "Geen geschiedenis" -#: src/pages/Index/Scan.tsx:467 +#: src/pages/Index/Scan.tsx:481 msgid "Item" -msgstr "" +msgstr "Item" -#: src/pages/Index/Scan.tsx:470 +#: src/pages/Index/Scan.tsx:484 msgid "Type" -msgstr "" +msgstr "Soort" -#: src/pages/Index/Scan.tsx:473 +#: src/pages/Index/Scan.tsx:487 msgid "Source" -msgstr "" +msgstr "Bron" -#: src/pages/Index/Scan.tsx:476 +#: src/pages/Index/Scan.tsx:490 msgid "Scanned at" -msgstr "" +msgstr "Gescande op" -#: src/pages/Index/Scan.tsx:528 +#: src/pages/Index/Scan.tsx:547 msgid "Enter item serial or data" -msgstr "" +msgstr "Serienummer of gegevens invoeren" -#: src/pages/Index/Scan.tsx:540 +#: src/pages/Index/Scan.tsx:559 msgid "Add dummy item" -msgstr "" +msgstr "Dummy item toevoegen" + +#: src/pages/Index/Scan.tsx:569 +msgid "Start scanning by selecting a camera and pressing the play button." +msgstr "Start met scannen door een camera te selecteren en op de afspeelknop te drukken." + +#: src/pages/Index/Scan.tsx:650 +msgid "Error while getting camera" +msgstr "Fout bij het ophalen van camera" + +#: src/pages/Index/Scan.tsx:673 +msgid "Error while scanning" +msgstr "Fout tijdens het scannen" + +#: src/pages/Index/Scan.tsx:687 +msgid "Error while stopping" +msgstr "Fout tijdens het stoppen" + +#: src/pages/Index/Scan.tsx:745 +msgid "Stop scanning" +msgstr "Scan stoppen" + +#: src/pages/Index/Scan.tsx:754 +msgid "Start scanning" +msgstr "Start scannen" + +#: src/pages/Index/Scan.tsx:763 +msgid "Scanning" +msgstr "Scannen" + +#: src/pages/Index/Scan.tsx:763 +msgid "Not scanning" +msgstr "Niet aan het scannen" + +#: src/pages/Index/Scan.tsx:775 +msgid "Select Camera" +msgstr "Selecteer camera" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:28 +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:50 +msgid "Edit User Information" +msgstr "Bewerk gebruikersgegevens" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:32 +msgid "User details updated" +msgstr "Bijgewerkte gebruikersgegevens" #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:41 -msgid "Account Details" -msgstr "" +msgid "User Details" +msgstr "Gebruikers details" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:41 +#~ msgid "Account Details" +#~ msgstr "Account Details" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:44 +msgid "User Actions" +msgstr "Gebruiker acties" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:48 +msgid "Edit User" +msgstr "Gebruiker bewerken" #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:50 -msgid "First name" -msgstr "" +#~ msgid "First name" +#~ msgstr "First name" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:54 +msgid "Set Password" +msgstr "Stel wachtwoord in" #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:55 -msgid "Last name" -msgstr "" +#~ msgid "Last name" +#~ msgstr "Last name" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:56 +msgid "Set User Password" +msgstr "Stel gebruikerswachtwoord in" #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:58 #~ msgid "First name: {0}" @@ -3495,175 +4194,203 @@ msgstr "" #~ msgstr "Last name: {0}" #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:67 -msgid "First name:" -msgstr "" +#~ msgid "First name:" +#~ msgstr "First name:" #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:71 -msgid "Last name:" -msgstr "" +#~ msgid "Last name:" +#~ msgstr "Last name:" -#: src/pages/Index/Settings/AccountSettings/DisplaySettingsPanel.tsx:41 -msgid "Use pseudo language" -msgstr "" +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:73 +msgid "First Name" +msgstr "Voornaam" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:79 +msgid "Last Name" +msgstr "Achternaam" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:85 +msgid "Staff Access" +msgstr "Toegang tot medewerkers" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:93 +#: src/tables/settings/UserTable.tsx:293 +msgid "Superuser" +msgstr "Administrator " #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:55 msgid "Single Sign On Accounts" -msgstr "" +msgstr "Eenmalige aanmelding accounts" #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:62 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:80 msgid "Not enabled" -msgstr "" +msgstr "Niet actief" #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:65 msgid "Single Sign On is not enabled for this server" -msgstr "" +msgstr "Eenmalige aanmelding is niet ingeschakeld voor deze server" #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:69 msgid "Multifactor" -msgstr "" +msgstr "Multifactor" #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:83 msgid "Multifactor authentication is not configured for your account" -msgstr "" +msgstr "Multifactor authenticatie is niet geconfigureerd voor uw account" #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:92 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:407 msgid "Token" -msgstr "" +msgstr "Sleutel" #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:139 msgid "The following email addresses are associated with your account:" -msgstr "" +msgstr "De volgende e-mailadressen zijn gekoppeld aan uw account:" #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:151 msgid "Primary" -msgstr "" +msgstr "Hoofd" #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:156 msgid "Verified" -msgstr "" +msgstr "Gecontroleerd" #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:160 msgid "Unverified" -msgstr "" +msgstr "Niet-geverifieerd" #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:173 msgid "Add Email Address" -msgstr "" +msgstr "E-mailadres toevoegen" #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:176 msgid "E-Mail" -msgstr "" +msgstr "E-mail" #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:177 msgid "E-Mail address" -msgstr "" +msgstr "E-mailadres" #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:189 msgid "Make Primary" -msgstr "" +msgstr "Maak primair" #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:194 msgid "Re-send Verification" -msgstr "" +msgstr "Verificatie opnieuw verzenden" #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:205 msgid "Add Email" -msgstr "" +msgstr "E-mail toevoegen" #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:270 msgid "Provider has not been configured" -msgstr "" +msgstr "Provider is niet geconfigureerd" #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:280 msgid "Not configured" -msgstr "" +msgstr "Niet geconfigureerd" #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:283 msgid "There are no social network accounts connected to this account." -msgstr "" +msgstr "Er zijn geen sociale netwerkaccounts gekoppeld aan dit account." #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:293 msgid "You can sign in to your account using any of the following third party accounts" -msgstr "" +msgstr "U kunt inloggen op uw account met behulp van een van de volgende accounts van derden" #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:368 msgid "Token is used - no actions" -msgstr "" +msgstr "Token wordt gebruikt - geen acties" #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:375 msgid "Revoke" -msgstr "" +msgstr "Intrekken" #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:389 msgid "No tokens configured" -msgstr "" - -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:398 -#: src/pages/part/PartDetail.tsx:297 -#: src/tables/bom/UsedInTable.tsx:84 -#: src/tables/build/BuildOrderTable.tsx:110 -#: src/tables/company/CompanyTable.tsx:61 -#: src/tables/company/CompanyTable.tsx:95 -#: src/tables/machine/MachineListTable.tsx:332 -#: src/tables/machine/MachineListTable.tsx:594 -#: src/tables/part/ParametricPartTable.tsx:223 -#: src/tables/part/PartTable.tsx:178 -#: src/tables/part/PartVariantTable.tsx:15 -#: src/tables/plugin/PluginListTable.tsx:149 -#: src/tables/plugin/PluginListTable.tsx:271 -#: src/tables/plugin/PluginListTable.tsx:563 -#: src/tables/purchasing/SupplierPartTable.tsx:98 -#: src/tables/purchasing/SupplierPartTable.tsx:187 -#: src/tables/settings/UserTable.tsx:284 -#: src/tables/stock/StockItemTable.tsx:289 -msgid "Active" -msgstr "" +msgstr "Geen tokens geconfigureerd" #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:401 msgid "Expiry" -msgstr "" +msgstr "Vervaldatum" #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:404 msgid "Last Seen" -msgstr "" +msgstr "Laatst gezien op" #: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:65 -msgid "bars" -msgstr "" +#~ msgid "bars" +#~ msgstr "bars" #: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:66 -msgid "oval" -msgstr "" +#~ msgid "oval" +#~ msgstr "oval" #: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:67 -msgid "dots" -msgstr "" +#~ msgid "dots" +#~ msgstr "dots" #: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:81 -msgid "Theme" -msgstr "" +#~ msgid "Theme" +#~ msgstr "Theme" #: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:87 -msgid "Primary color" -msgstr "" +#~ msgid "Primary color" +#~ msgstr "Primary color" -#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:100 +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:88 +msgid "Bars" +msgstr "Staven" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:89 +msgid "Oval" +msgstr "Ovaal" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:90 +msgid "Dots" +msgstr "Stippen" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:101 +msgid "Display Settings" +msgstr "Toon Instellingen" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:107 +msgid "Language" +msgstr "Taal" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:115 +msgid "Use pseudo language" +msgstr "Gebruik pseudo taal" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:122 +msgid "Color Mode" +msgstr "Kleur modus" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:133 +msgid "Highlight color" +msgstr "Kleur accentueren" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:145 +msgid "Example" +msgstr "Voorbeeld" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:151 msgid "White color" -msgstr "" +msgstr "Witte kleur" -#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:108 +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:167 msgid "Black color" -msgstr "" +msgstr "Zwarte kleur" -#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:116 +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:183 msgid "Border Radius" -msgstr "" +msgstr "Afgeronde hoeken" -#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:132 +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:199 msgid "Loader" -msgstr "" +msgstr "Lader" #: src/pages/Index/Settings/AdminCenter.tsx:30 #~ msgid "User Management" @@ -3673,89 +4400,156 @@ msgstr "" #~ msgid "Advanced Amininistrative Options for InvenTree" #~ msgstr "Advanced Amininistrative Options for InvenTree" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:104 +#: src/pages/Index/Settings/AdminCenter/CurrencyManagmentPanel.tsx:27 +#: src/tables/ColumnRenderers.tsx:262 +msgid "Currency" +msgstr "Valuta" + +#: src/pages/Index/Settings/AdminCenter/CurrencyManagmentPanel.tsx:32 +msgid "Rate" +msgstr "Beoordeel" + +#: src/pages/Index/Settings/AdminCenter/CurrencyManagmentPanel.tsx:44 +msgid "Exchange rates updated" +msgstr "Wisselkoersen bijgewerkt" + +#: src/pages/Index/Settings/AdminCenter/CurrencyManagmentPanel.tsx:50 +msgid "Exchange rate update error" +msgstr "Wisselkoers update mislukt" + +#: src/pages/Index/Settings/AdminCenter/CurrencyManagmentPanel.tsx:62 +msgid "Refresh currency exchange rates" +msgstr "Ververs wisselkoersen" + +#: src/pages/Index/Settings/AdminCenter/CurrencyManagmentPanel.tsx:99 +msgid "Last fetched" +msgstr "Laatst opgehaald" + +#: src/pages/Index/Settings/AdminCenter/CurrencyManagmentPanel.tsx:100 +msgid "Base currency" +msgstr "Basis valuta" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:115 msgid "Data Import" -msgstr "" +msgstr "Gegevens importeren" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:110 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:121 +msgid "Barcode Scans" +msgstr "Barcode scans" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:127 msgid "Background Tasks" -msgstr "" - -#: src/pages/Index/Settings/AdminCenter/Index.tsx:116 -msgid "Error Reports" -msgstr "" - -#: src/pages/Index/Settings/AdminCenter/Index.tsx:122 -msgid "Currencies" -msgstr "" +msgstr "Achtergrond taken" #: src/pages/Index/Settings/AdminCenter/Index.tsx:127 #~ msgid "Templates" #~ msgstr "Templates" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:140 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:133 +msgid "Error Reports" +msgstr "Fouten rapporten" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:139 +msgid "Currencies" +msgstr "Valuta" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:157 +msgid "Custom States" +msgstr "Aangepaste statussen" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:163 +#: src/pages/Index/Settings/AdminCenter/UnitManagmentPanel.tsx:58 msgid "Custom Units" -msgstr "" +msgstr "Aangepaste eenheden" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:146 -#: src/pages/part/CategoryDetail.tsx:264 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:169 +#: src/pages/part/CategoryDetail.tsx:269 msgid "Part Parameters" -msgstr "" - -#: src/pages/Index/Settings/AdminCenter/Index.tsx:152 -msgid "Category Parameters" -msgstr "" - -#: src/pages/Index/Settings/AdminCenter/Index.tsx:170 -msgid "Location Types" -msgstr "" +msgstr "Onderdeel parameters" #: src/pages/Index/Settings/AdminCenter/Index.tsx:170 #~ msgid "Location types" #~ msgstr "Location types" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:182 -#: src/tables/machine/MachineTypeTable.tsx:287 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:175 +msgid "Category Parameters" +msgstr "Categorie parameters" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:181 +msgid "Stocktake" +msgstr "Voorraadcontrole" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:199 +msgid "Location Types" +msgstr "Locatie soorten" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:211 +#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:48 +#: src/tables/machine/MachineTypeTable.tsx:308 msgid "Machines" -msgstr "" +msgstr "Machines" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:192 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:221 msgid "Quick Actions" -msgstr "" +msgstr "Snelle acties" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:197 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:226 msgid "Add a new user" -msgstr "" +msgstr "Nieuwe gebruiker toevoegen" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:222 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:252 msgid "Advanced Options" -msgstr "" +msgstr "Geavanceerde instellingen" #: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:43 -msgid "Machine types" -msgstr "" +#~ msgid "Machine types" +#~ msgstr "Machine types" #: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:53 -msgid "Machine Error Stack" +#~ msgid "Machine Error Stack" +#~ msgstr "Machine Error Stack" + +#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:56 +msgid "Machine Types" msgstr "" #: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:62 -msgid "There are no machine registry errors." +#~ msgid "There are no machine registry errors." +#~ msgstr "There are no machine registry errors." + +#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:64 +msgid "Machine Errors" msgstr "" -#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:28 -#: src/tables/settings/UserTable.tsx:119 +#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:77 +msgid "Registry Registry Errors" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:80 +msgid "There are machine registry errors" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:86 +msgid "Machine Registry Errors" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:89 +msgid "There are no machine registry errors" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:31 +#: src/tables/settings/UserTable.tsx:118 msgid "Info" -msgstr "" - -#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:32 -msgid "External plugins are not enabled for this InvenTree installation." -msgstr "" +msgstr "Informatie" #: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:33 #~ msgid "Plugin Error Stack" #~ msgstr "Plugin Error Stack" +#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:35 +msgid "External plugins are not enabled for this InvenTree installation." +msgstr "Externe plug-ins zijn niet ingeschakeld voor deze InvenTree installatie." + #: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:45 #~ msgid "Warning" #~ msgstr "Warning" @@ -3764,36 +4558,48 @@ msgstr "" #~ msgid "Changing the settings below require you to immediately restart the server. Do not change this while under active usage." #~ msgstr "Changing the settings below require you to immediately restart the server. Do not change this while under active usage." -#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:50 +#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:73 msgid "Plugin Errors" -msgstr "" +msgstr "Plug-in fouten" -#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:59 -msgid "Plugin Settings" -msgstr "" +#: src/pages/Index/Settings/AdminCenter/ReportTemplatePanel.tsx:17 +msgid "Page Size" +msgstr "Pagina grootte" -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:53 -msgid "Background Worker Not Running" -msgstr "" +#: src/pages/Index/Settings/AdminCenter/ReportTemplatePanel.tsx:20 +msgid "Landscape" +msgstr "Liggend" -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:54 +#: src/pages/Index/Settings/AdminCenter/ReportTemplatePanel.tsx:26 +msgid "Attach to Model" +msgstr "Koppelen aan model" + +#: src/pages/Index/Settings/AdminCenter/StocktakePanel.tsx:25 +msgid "Stocktake Reports" +msgstr "Voorraadcontrole rapporten" + +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:30 msgid "The background task manager service is not running. Contact your system administrator." -msgstr "" +msgstr "De achtergrondtaak beheerservice wordt niet uitgevoerd. Neem contact op met de systeembeheerder." -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:60 -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:76 +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:35 +#~ msgid "Background Worker Not Running" +#~ msgstr "Background Worker Not Running" + +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:36 +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:45 msgid "Pending Tasks" -msgstr "" +msgstr "Openstaande taken" -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:64 -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:84 +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:37 +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:53 msgid "Scheduled Tasks" -msgstr "" +msgstr "Geplande taken" -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:68 -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:92 +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:38 +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:61 msgid "Failed Tasks" -msgstr "" +msgstr "Mislukte taken" #: src/pages/Index/Settings/AdminCenter/TemplateManagementPanel.tsx:39 #~ msgid "Label" @@ -3811,11 +4617,6 @@ msgstr "" #~ msgid "Reports" #~ msgstr "Reports" -#: src/pages/Index/Settings/AdminCenter/TemplateManagementPanel.tsx:89 -#: src/pages/build/BuildDetail.tsx:373 -#~ msgid "Report" -#~ msgstr "Report" - #: src/pages/Index/Settings/AdminCenter/TemplateManagementPanel.tsx:99 #~ msgid "Purchase order" #~ msgstr "Purchase order" @@ -3836,25 +4637,37 @@ msgstr "" #~ msgid "Stock location" #~ msgstr "Stock location" +#: src/pages/Index/Settings/AdminCenter/UnitManagmentPanel.tsx:21 +msgid "Alias" +msgstr "Alias" + +#: src/pages/Index/Settings/AdminCenter/UnitManagmentPanel.tsx:22 +msgid "Dimensionless" +msgstr "Maatvoering" + +#: src/pages/Index/Settings/AdminCenter/UnitManagmentPanel.tsx:66 +msgid "All units" +msgstr "Alle eenheden" + #: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:32 msgid "Select settings relevant for user lifecycle. More available in" -msgstr "" +msgstr "Selecteer instellingen die relevant zijn voor de gebruikers levenscyclus. Meer beschikbaar in" #: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:37 -msgid "System settings" -msgstr "" +#~ msgid "System settings" +#~ msgstr "System settings" -#: src/pages/Index/Settings/SystemSettings.tsx:67 +#: src/pages/Index/Settings/SystemSettings.tsx:66 msgid "Login" -msgstr "" +msgstr "Inloggen" -#: src/pages/Index/Settings/SystemSettings.tsx:93 +#: src/pages/Index/Settings/SystemSettings.tsx:92 msgid "Barcodes" -msgstr "" +msgstr "Barcodes" -#: src/pages/Index/Settings/SystemSettings.tsx:115 +#: src/pages/Index/Settings/SystemSettings.tsx:116 msgid "Pricing" -msgstr "" +msgstr "Prijzen" #: src/pages/Index/Settings/SystemSettings.tsx:118 #~ msgid "Physical Units" @@ -3864,64 +4677,46 @@ msgstr "" #~ msgid "Exchange Rates" #~ msgstr "Exchange Rates" -#: src/pages/Index/Settings/SystemSettings.tsx:150 +#: src/pages/Index/Settings/SystemSettings.tsx:151 msgid "Labels" -msgstr "" +msgstr "Labels" -#: src/pages/Index/Settings/SystemSettings.tsx:156 -#: src/pages/Index/Settings/UserSettings.tsx:132 +#: src/pages/Index/Settings/SystemSettings.tsx:157 +#: src/pages/Index/Settings/UserSettings.tsx:133 msgid "Reporting" -msgstr "" +msgstr "Rapporteren" #: src/pages/Index/Settings/SystemSettings.tsx:231 -#: src/pages/part/PartDetail.tsx:682 -msgid "Stocktake" -msgstr "" - -#: src/pages/Index/Settings/SystemSettings.tsx:237 -#: src/pages/build/BuildDetail.tsx:554 -#: src/pages/build/BuildIndex.tsx:22 -#: src/pages/part/PartDetail.tsx:616 -#: src/pages/sales/SalesOrderDetail.tsx:333 +#: src/pages/build/BuildIndex.tsx:27 +#: src/pages/part/PartDetail.tsx:636 +#: src/pages/sales/SalesOrderDetail.tsx:355 msgid "Build Orders" msgstr "Productieorders" -#: src/pages/Index/Settings/SystemSettings.tsx:318 -msgid "Switch to User Setting" -msgstr "" +#: src/pages/Index/Settings/SystemSettings.tsx:317 +#~ msgid "Switch to User Setting" +#~ msgstr "Switch to User Setting" -#: src/pages/Index/Settings/UserSettings.tsx:34 +#: src/pages/Index/Settings/UserSettings.tsx:35 msgid "Account" -msgstr "" +msgstr "Account" -#: src/pages/Index/Settings/UserSettings.tsx:40 +#: src/pages/Index/Settings/UserSettings.tsx:41 msgid "Security" -msgstr "" +msgstr "Beveiliging" -#: src/pages/Index/Settings/UserSettings.tsx:78 +#: src/pages/Index/Settings/UserSettings.tsx:79 msgid "Display Options" -msgstr "" +msgstr "Toon opties" -#: src/pages/Index/Settings/UserSettings.tsx:150 -msgid "Account Settings" -msgstr "" - -#: src/pages/Index/Settings/UserSettings.tsx:158 -msgid "Switch to System Setting" -msgstr "" - -#: src/pages/Index/UserSettings.tsx:103 -#~ msgid "User Settings" -#~ msgstr "User Settings" +#: src/pages/Index/Settings/UserSettings.tsx:159 +#~ msgid "Switch to System Setting" +#~ msgstr "Switch to System Setting" #: src/pages/Logged-In.tsx:24 #~ msgid "Found an exsisting login - using it to log you in." #~ msgstr "Found an exsisting login - using it to log you in." -#: src/pages/NotFound.tsx:17 -#~ msgid "Not Found" -#~ msgstr "Not Found" - #: src/pages/NotFound.tsx:20 #~ msgid "Sorry, this page is not known or was moved." #~ msgstr "Sorry, this page is not known or was moved." @@ -3932,97 +4727,85 @@ msgstr "" #: src/pages/Notifications.tsx:43 msgid "Delete Notifications" -msgstr "" +msgstr "Verwijder meldingen" #: src/pages/Notifications.tsx:108 msgid "Mark as unread" -msgstr "" +msgstr "Markeren als ongelezen" #: src/pages/build/BuildDetail.tsx:80 #~ msgid "Build Status" #~ msgstr "Build Status" -#: src/pages/build/BuildDetail.tsx:102 -#: src/pages/part/PartDetail.tsx:150 +#: src/pages/build/BuildDetail.tsx:97 +#: src/pages/company/ManufacturerPartDetail.tsx:81 +#: src/pages/company/SupplierPartDetail.tsx:91 +#: src/pages/part/PartDetail.tsx:171 +#: src/pages/stock/StockDetail.tsx:122 #: src/tables/bom/BomTable.tsx:118 #: src/tables/bom/UsedInTable.tsx:39 -#: src/tables/build/BuildLineTable.tsx:173 -#: src/tables/build/BuildOrderTable.tsx:55 -#: src/tables/sales/SalesOrderLineItemTable.tsx:62 -#: src/tables/stock/StockItemTable.tsx:53 +#: src/tables/build/BuildAllocatedStockTable.tsx:104 +#: src/tables/build/BuildLineTable.tsx:324 +#: src/tables/build/BuildOrderTable.tsx:64 +#: src/tables/sales/SalesOrderLineItemTable.tsx:70 +#: src/tables/stock/StockItemTable.tsx:54 msgid "IPN" -msgstr "" +msgstr "IPN" -#: src/pages/build/BuildDetail.tsx:115 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:121 -#: src/pages/sales/ReturnOrderDetail.tsx:95 -#: src/pages/sales/SalesOrderDetail.tsx:101 -#: src/tables/ColumnRenderers.tsx:121 -#: src/tables/build/BuildAllocatedStockTable.tsx:90 -#: src/tables/build/BuildLineTable.tsx:184 +#: src/pages/build/BuildDetail.tsx:110 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:115 +#: src/pages/sales/ReturnOrderDetail.tsx:86 +#: src/pages/sales/SalesOrderDetail.tsx:95 +#: src/tables/ColumnRenderers.tsx:132 +#: src/tables/build/BuildAllocatedStockTable.tsx:111 +#: src/tables/build/BuildLineTable.tsx:335 msgid "Reference" -msgstr "" +msgstr "Verwijzing" -#: src/pages/build/BuildDetail.tsx:121 -#: src/pages/company/CompanyDetail.tsx:90 -#: src/pages/company/ManufacturerPartDetail.tsx:83 -#: src/pages/company/SupplierPartDetail.tsx:96 -#: src/pages/part/CategoryDetail.tsx:101 -#: src/pages/part/PartDetail.tsx:157 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:142 -#: src/pages/sales/ReturnOrderDetail.tsx:115 -#: src/pages/sales/SalesOrderDetail.tsx:121 -#: src/pages/stock/LocationDetail.tsx:109 -#: src/tables/ColumnRenderers.tsx:81 -#: src/tables/bom/UsedInTable.tsx:44 -#: src/tables/build/BuildAllocatedStockTable.tsx:70 -#: src/tables/build/BuildLineTable.tsx:178 -#: src/tables/machine/MachineTypeTable.tsx:69 -#: src/tables/machine/MachineTypeTable.tsx:112 -#: src/tables/machine/MachineTypeTable.tsx:219 -#: src/tables/machine/MachineTypeTable.tsx:323 -#: src/tables/part/RelatedPartTable.tsx:64 -#: src/tables/plugin/PluginListTable.tsx:129 -#: src/tables/plugin/PluginListTable.tsx:276 -#: src/tables/sales/SalesOrderAllocationTable.tsx:56 -#: src/tables/sales/SalesOrderLineItemTable.tsx:67 -#: src/tables/stock/LocationTypesTable.tsx:74 -msgid "Description" -msgstr "" - -#: src/pages/build/BuildDetail.tsx:129 +#: src/pages/build/BuildDetail.tsx:124 msgid "Parent Build" -msgstr "" +msgstr "Bovenliggende Build" -#: src/pages/build/BuildDetail.tsx:140 +#: src/pages/build/BuildDetail.tsx:135 msgid "Build Quantity" -msgstr "" +msgstr "Productiehoeveelheid" -#: src/pages/build/BuildDetail.tsx:148 -#: src/pages/build/BuildDetail.tsx:274 +#: src/pages/build/BuildDetail.tsx:143 +#: src/pages/build/BuildDetail.tsx:277 msgid "Completed Outputs" -msgstr "" +msgstr "Afgeronde uitvoer" -#: src/pages/build/BuildDetail.tsx:165 -#: src/tables/build/BuildOrderTable.tsx:151 +#: src/pages/build/BuildDetail.tsx:160 +#: src/tables/build/BuildOrderTable.tsx:142 msgid "Issued By" -msgstr "" +msgstr "Uitgegeven door" -#: src/pages/build/BuildDetail.tsx:172 -#: src/pages/part/PartDetail.tsx:365 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:220 -#: src/pages/sales/ReturnOrderDetail.tsx:199 -#: src/pages/sales/SalesOrderDetail.tsx:208 -#: src/tables/build/BuildOrderTable.tsx:157 -#: src/tables/purchasing/PurchaseOrderTable.tsx:75 -#: src/tables/sales/ReturnOrderTable.tsx:66 -#: src/tables/sales/SalesOrderTable.tsx:73 +#: src/pages/build/BuildDetail.tsx:167 +#: src/pages/part/PartDetail.tsx:406 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:244 +#: src/pages/sales/ReturnOrderDetail.tsx:216 +#: src/pages/sales/SalesOrderDetail.tsx:226 +#: src/tables/build/BuildOrderTable.tsx:148 +#: src/tables/purchasing/PurchaseOrderTable.tsx:76 +#: src/tables/sales/ReturnOrderTable.tsx:74 +#: src/tables/sales/SalesOrderTable.tsx:74 msgid "Responsible" -msgstr "" +msgstr "Verantwoordelijk" -#: src/pages/build/BuildDetail.tsx:179 -#: src/tables/settings/PendingTasksTable.tsx:32 +#: src/pages/build/BuildDetail.tsx:174 +#: src/tables/settings/PendingTasksTable.tsx:36 msgid "Created" +msgstr "Aangemaakt" + +#: src/pages/build/BuildDetail.tsx:181 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:229 +#: src/pages/sales/ReturnOrderDetail.tsx:201 +#: src/pages/sales/SalesOrderDetail.tsx:212 +#: src/tables/ColumnRenderers.tsx:226 +#: src/tables/part/PartPurchaseOrdersTable.tsx:100 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:135 +#: src/tables/sales/SalesOrderLineItemTable.tsx:107 +msgid "Target Date" msgstr "" #: src/pages/build/BuildDetail.tsx:185 @@ -4031,26 +4814,16 @@ msgstr "" #~ msgid "View part barcode" #~ msgstr "View part barcode" -#: src/pages/build/BuildDetail.tsx:186 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:213 -#: src/pages/sales/ReturnOrderDetail.tsx:192 -#: src/pages/sales/SalesOrderDetail.tsx:201 -#: src/tables/ColumnRenderers.tsx:212 -#: src/tables/part/PartPurchaseOrdersTable.tsx:99 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:110 -#: src/tables/sales/SalesOrderLineItemTable.tsx:99 -msgid "Target Date" -msgstr "" +#: src/pages/build/BuildDetail.tsx:188 +#: src/tables/sales/SalesOrderLineItemTable.tsx:281 +msgid "Completed" +msgstr "Compleet" #: src/pages/build/BuildDetail.tsx:190 #: src/pages/part/PartDetail.tsx:274 #~ msgid "Link custom barcode to part" #~ msgstr "Link custom barcode to part" -#: src/pages/build/BuildDetail.tsx:193 -msgid "Completed" -msgstr "" - #: src/pages/build/BuildDetail.tsx:196 #: src/pages/part/PartDetail.tsx:280 #~ msgid "Unlink custom barcode from part" @@ -4060,17 +4833,13 @@ msgstr "" #~ msgid "Build Order updated" #~ msgstr "Build Order updated" -#: src/pages/build/BuildDetail.tsx:205 -msgid "Source Location" -msgstr "" - -#: src/pages/build/BuildDetail.tsx:206 +#: src/pages/build/BuildDetail.tsx:209 msgid "Any location" -msgstr "" +msgstr "Elke locatie" -#: src/pages/build/BuildDetail.tsx:213 +#: src/pages/build/BuildDetail.tsx:216 msgid "Destination Location" -msgstr "" +msgstr "Doel Locatie" #: src/pages/build/BuildDetail.tsx:221 #~ msgid "Edit build order" @@ -4084,208 +4853,184 @@ msgstr "" #~ msgid "Delete build order" #~ msgstr "Delete build order" -#: src/pages/build/BuildDetail.tsx:251 +#: src/pages/build/BuildDetail.tsx:254 msgid "Build Details" -msgstr "" +msgstr "Bouw details" -#: src/pages/build/BuildDetail.tsx:257 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:258 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:267 -#: src/pages/sales/ReturnOrderDetail.tsx:130 -#: src/pages/sales/ReturnOrderDetail.tsx:237 -#: src/pages/sales/ReturnOrderDetail.tsx:246 -#: src/pages/sales/SalesOrderDetail.tsx:272 -#: src/pages/sales/SalesOrderDetail.tsx:281 +#: src/pages/build/BuildDetail.tsx:260 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:282 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:291 +#: src/pages/sales/ReturnOrderDetail.tsx:122 +#: src/pages/sales/ReturnOrderDetail.tsx:254 +#: src/pages/sales/ReturnOrderDetail.tsx:263 +#: src/pages/sales/SalesOrderDetail.tsx:294 +#: src/pages/sales/SalesOrderDetail.tsx:303 msgid "Line Items" msgstr "Regelitems" -#: src/pages/build/BuildDetail.tsx:267 +#: src/pages/build/BuildDetail.tsx:266 msgid "Incomplete Outputs" -msgstr "" +msgstr "Onvolledige uitvoer" -#: src/pages/build/BuildDetail.tsx:289 -#: src/pages/sales/SalesOrderDetail.tsx:319 +#: src/pages/build/BuildDetail.tsx:292 +#: src/pages/sales/SalesOrderDetail.tsx:341 msgid "Allocated Stock" -msgstr "" +msgstr "Toegewezen voorraad" -#: src/pages/build/BuildDetail.tsx:299 +#: src/pages/build/BuildDetail.tsx:302 msgid "Consumed Stock" -msgstr "" +msgstr "Verbruikte voorraad" -#: src/pages/build/BuildDetail.tsx:313 +#: src/pages/build/BuildDetail.tsx:316 msgid "Child Build Orders" -msgstr "" +msgstr "Print bouw order" #: src/pages/build/BuildDetail.tsx:326 -#: src/tables/build/BuildOutputTable.tsx:384 -#: src/tables/stock/StockItemTestResultTable.tsx:150 +#: src/tables/build/BuildOutputTable.tsx:532 +#: src/tables/stock/StockItemTestResultTable.tsx:156 msgid "Test Results" -msgstr "" +msgstr "Test resultaten" #: src/pages/build/BuildDetail.tsx:337 -#: src/pages/part/PartDetail.tsx:699 +#: src/pages/part/PartDetail.tsx:740 msgid "Test Statistics" -msgstr "" +msgstr "Test statistieken" -#: src/pages/build/BuildDetail.tsx:351 -#: src/pages/company/CompanyDetail.tsx:259 -#: src/pages/company/ManufacturerPartDetail.tsx:179 -#: src/pages/part/PartDetail.tsx:721 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:309 -#: src/pages/sales/ReturnOrderDetail.tsx:274 -#: src/pages/sales/SalesOrderDetail.tsx:343 -#: src/pages/stock/StockDetail.tsx:385 -msgid "Attachments" -msgstr "Bijlagen" - -#: src/pages/build/BuildDetail.tsx:359 -#: src/pages/company/CompanyDetail.tsx:270 -#: src/pages/company/ManufacturerPartDetail.tsx:190 -#: src/pages/company/SupplierPartDetail.tsx:257 -#: src/pages/part/PartDetail.tsx:729 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:320 -#: src/pages/sales/ReturnOrderDetail.tsx:285 -#: src/pages/sales/SalesOrderDetail.tsx:354 -#: src/pages/stock/StockDetail.tsx:396 -#: src/tables/build/BuildOrderTestTable.tsx:142 -#: src/tables/stock/StockTrackingTable.tsx:189 -msgid "Notes" -msgstr "Opmerkingen" +#: src/pages/build/BuildDetail.tsx:365 +msgid "Edit Build Order" +msgstr "Bewerk bouwopdracht" #: src/pages/build/BuildDetail.tsx:368 #~ msgid "Reporting Actions" #~ msgstr "Reporting Actions" +#: src/pages/build/BuildDetail.tsx:372 +#: src/tables/build/BuildOrderTable.tsx:173 +#: src/tables/build/BuildOrderTable.tsx:188 +msgid "Add Build Order" +msgstr "Voeg bouwopdracht toe" + #: src/pages/build/BuildDetail.tsx:374 #~ msgid "Print build report" #~ msgstr "Print build report" -#: src/pages/build/BuildDetail.tsx:377 -msgid "Edit Build Order" -msgstr "" - -#: src/pages/build/BuildDetail.tsx:384 -#: src/tables/build/BuildOrderTable.tsx:172 -#: src/tables/build/BuildOrderTable.tsx:187 -msgid "Add Build Order" -msgstr "" - -#: src/pages/build/BuildDetail.tsx:398 +#: src/pages/build/BuildDetail.tsx:386 msgid "Cancel Build Order" -msgstr "" +msgstr "Annuleer bouworder" -#: src/pages/build/BuildDetail.tsx:400 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:348 -#: src/pages/sales/SalesOrderDetail.tsx:380 +#: src/pages/build/BuildDetail.tsx:388 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:357 +#: src/pages/sales/ReturnOrderDetail.tsx:354 +#: src/pages/sales/SalesOrderDetail.tsx:387 msgid "Order cancelled" msgstr "" -#: src/pages/build/BuildDetail.tsx:401 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:347 -#: src/pages/sales/ReturnOrderDetail.tsx:346 -#: src/pages/sales/SalesOrderDetail.tsx:379 -msgid "Cancel this order" -msgstr "" - -#: src/pages/build/BuildDetail.tsx:410 -msgid "Hold Build Order" -msgstr "" - -#: src/pages/build/BuildDetail.tsx:412 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:355 -#: src/pages/sales/ReturnOrderDetail.tsx:354 -#: src/pages/sales/SalesOrderDetail.tsx:387 -msgid "Place this order on hold" -msgstr "" - -#: src/pages/build/BuildDetail.tsx:413 +#: src/pages/build/BuildDetail.tsx:389 #: src/pages/purchasing/PurchaseOrderDetail.tsx:356 -#: src/pages/sales/ReturnOrderDetail.tsx:355 -#: src/pages/sales/SalesOrderDetail.tsx:388 -msgid "Order placed on hold" -msgstr "" +#: src/pages/sales/ReturnOrderDetail.tsx:353 +#: src/pages/sales/SalesOrderDetail.tsx:386 +msgid "Cancel this order" +msgstr "Deze order annuleren" -#: src/pages/build/BuildDetail.tsx:418 -msgid "Issue Build Order" -msgstr "" +#: src/pages/build/BuildDetail.tsx:398 +msgid "Hold Build Order" +msgstr "Houdt bouwopdracht" -#: src/pages/build/BuildDetail.tsx:420 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:339 -#: src/pages/sales/ReturnOrderDetail.tsx:338 -#: src/pages/sales/SalesOrderDetail.tsx:371 -msgid "Issue this order" -msgstr "" +#: src/pages/build/BuildDetail.tsx:400 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:364 +#: src/pages/sales/ReturnOrderDetail.tsx:361 +#: src/pages/sales/SalesOrderDetail.tsx:394 +msgid "Place this order on hold" +msgstr "Plaats deze bestelling in de wacht" -#: src/pages/build/BuildDetail.tsx:421 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:340 -#: src/pages/sales/ReturnOrderDetail.tsx:339 -#: src/pages/sales/SalesOrderDetail.tsx:372 -msgid "Order issued" -msgstr "" - -#: src/pages/build/BuildDetail.tsx:426 -msgid "Complete Build Order" -msgstr "" - -#: src/pages/build/BuildDetail.tsx:428 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:368 +#: src/pages/build/BuildDetail.tsx:401 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:365 #: src/pages/sales/ReturnOrderDetail.tsx:362 #: src/pages/sales/SalesOrderDetail.tsx:395 +msgid "Order placed on hold" +msgstr "Bestelling geplaatst in de wacht" + +#: src/pages/build/BuildDetail.tsx:406 +msgid "Issue Build Order" +msgstr "Probleem bouwopdracht" + +#: src/pages/build/BuildDetail.tsx:408 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:348 +#: src/pages/sales/ReturnOrderDetail.tsx:345 +#: src/pages/sales/SalesOrderDetail.tsx:378 +msgid "Issue this order" +msgstr "Geef deze bestelling uit" + +#: src/pages/build/BuildDetail.tsx:409 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:349 +#: src/pages/sales/ReturnOrderDetail.tsx:346 +#: src/pages/sales/SalesOrderDetail.tsx:379 +msgid "Order issued" +msgstr "Order uitgegeven" + +#: src/pages/build/BuildDetail.tsx:414 +msgid "Complete Build Order" +msgstr "Voltooi Bouw Opdracht" + +#: src/pages/build/BuildDetail.tsx:416 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:377 +#: src/pages/sales/ReturnOrderDetail.tsx:369 +#: src/pages/sales/SalesOrderDetail.tsx:402 msgid "Mark this order as complete" -msgstr "" +msgstr "Deze bestelling als voltooid markeren" -#: src/pages/build/BuildDetail.tsx:429 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:362 -#: src/pages/sales/ReturnOrderDetail.tsx:363 -#: src/pages/sales/SalesOrderDetail.tsx:396 +#: src/pages/build/BuildDetail.tsx:417 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:371 +#: src/pages/sales/ReturnOrderDetail.tsx:370 +#: src/pages/sales/SalesOrderDetail.tsx:403 msgid "Order completed" -msgstr "" +msgstr "Bestelling voltooid" -#: src/pages/build/BuildDetail.tsx:460 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:391 -#: src/pages/sales/ReturnOrderDetail.tsx:392 -#: src/pages/sales/SalesOrderDetail.tsx:425 -msgid "Issue Order" -msgstr "" - -#: src/pages/build/BuildDetail.tsx:467 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:398 +#: src/pages/build/BuildDetail.tsx:448 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:400 #: src/pages/sales/ReturnOrderDetail.tsx:399 -#: src/pages/sales/SalesOrderDetail.tsx:439 +#: src/pages/sales/SalesOrderDetail.tsx:432 +msgid "Issue Order" +msgstr "Issue Order" + +#: src/pages/build/BuildDetail.tsx:455 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:407 +#: src/pages/sales/ReturnOrderDetail.tsx:406 +#: src/pages/sales/SalesOrderDetail.tsx:446 msgid "Complete Order" -msgstr "" +msgstr "Bestelling voltooien" -#: src/pages/build/BuildDetail.tsx:496 +#: src/pages/build/BuildDetail.tsx:473 msgid "Build Order Actions" -msgstr "" +msgstr "Bouw order acties" -#: src/pages/build/BuildDetail.tsx:502 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:432 -#: src/pages/sales/ReturnOrderDetail.tsx:433 -#: src/pages/sales/SalesOrderDetail.tsx:474 +#: src/pages/build/BuildDetail.tsx:478 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:429 +#: src/pages/sales/ReturnOrderDetail.tsx:428 +#: src/pages/sales/SalesOrderDetail.tsx:469 msgid "Edit order" -msgstr "" +msgstr "Bestelling bewerken" -#: src/pages/build/BuildDetail.tsx:506 +#: src/pages/build/BuildDetail.tsx:482 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:437 +#: src/pages/sales/ReturnOrderDetail.tsx:434 +#: src/pages/sales/SalesOrderDetail.tsx:474 +msgid "Duplicate order" +msgstr "Kopieer regel" + +#: src/pages/build/BuildDetail.tsx:486 #: src/pages/purchasing/PurchaseOrderDetail.tsx:440 #: src/pages/sales/ReturnOrderDetail.tsx:439 -#: src/pages/sales/SalesOrderDetail.tsx:479 -msgid "Duplicate order" -msgstr "" +#: src/pages/sales/SalesOrderDetail.tsx:477 +msgid "Hold order" +msgstr "Bestelling vasthouden" -#: src/pages/build/BuildDetail.tsx:510 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:443 +#: src/pages/build/BuildDetail.tsx:491 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:445 #: src/pages/sales/ReturnOrderDetail.tsx:444 #: src/pages/sales/SalesOrderDetail.tsx:482 -msgid "Hold order" -msgstr "" - -#: src/pages/build/BuildDetail.tsx:515 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:448 -#: src/pages/sales/ReturnOrderDetail.tsx:449 -#: src/pages/sales/SalesOrderDetail.tsx:487 msgid "Cancel order" -msgstr "" +msgstr "Bestelling annuleren" #: src/pages/build/BuildIndex.tsx:23 #~ msgid "Build order created" @@ -4295,57 +5040,61 @@ msgstr "" #~ msgid "New Build Order" #~ msgstr "New Build Order" -#: src/pages/company/CompanyDetail.tsx:104 +#: src/pages/company/CompanyDetail.tsx:95 +msgid "Website" +msgstr "Website" + +#: src/pages/company/CompanyDetail.tsx:103 msgid "Phone Number" -msgstr "" +msgstr "Telefoon nummer" -#: src/pages/company/CompanyDetail.tsx:111 +#: src/pages/company/CompanyDetail.tsx:110 msgid "Email Address" -msgstr "" +msgstr "E-mail adres" -#: src/pages/company/CompanyDetail.tsx:121 +#: src/pages/company/CompanyDetail.tsx:120 msgid "Default Currency" -msgstr "" +msgstr "Standaard valuta" -#: src/pages/company/CompanyDetail.tsx:126 +#: src/pages/company/CompanyDetail.tsx:125 #: src/pages/company/SupplierDetail.tsx:8 -#: src/pages/company/SupplierPartDetail.tsx:120 -#: src/pages/company/SupplierPartDetail.tsx:206 -#: src/pages/company/SupplierPartDetail.tsx:351 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:136 -#: src/tables/company/CompanyTable.tsx:100 +#: src/pages/company/SupplierPartDetail.tsx:125 +#: src/pages/company/SupplierPartDetail.tsx:218 +#: src/pages/company/SupplierPartDetail.tsx:340 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:130 +#: src/tables/company/CompanyTable.tsx:101 #: src/tables/part/PartPurchaseOrdersTable.tsx:42 -#: src/tables/purchasing/PurchaseOrderTable.tsx:88 +#: src/tables/purchasing/PurchaseOrderTable.tsx:89 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:36 msgid "Supplier" -msgstr "" +msgstr "Leverancier" -#: src/pages/company/CompanyDetail.tsx:132 +#: src/pages/company/CompanyDetail.tsx:131 #: src/pages/company/ManufacturerDetail.tsx:8 -#: src/pages/company/ManufacturerPartDetail.tsx:101 -#: src/pages/company/ManufacturerPartDetail.tsx:267 -#: src/pages/company/SupplierPartDetail.tsx:135 -#: src/tables/company/CompanyTable.tsx:105 +#: src/pages/company/ManufacturerPartDetail.tsx:100 +#: src/pages/company/ManufacturerPartDetail.tsx:262 +#: src/pages/company/SupplierPartDetail.tsx:147 +#: src/tables/company/CompanyTable.tsx:106 msgid "Manufacturer" -msgstr "" +msgstr "Fabrikant" -#: src/pages/company/CompanyDetail.tsx:138 +#: src/pages/company/CompanyDetail.tsx:137 #: src/pages/company/CustomerDetail.tsx:8 -#: src/pages/part/pricing/SaleHistoryPanel.tsx:29 -#: src/pages/sales/ReturnOrderDetail.tsx:109 -#: src/pages/sales/SalesOrderDetail.tsx:115 -#: src/pages/stock/StockDetail.tsx:230 -#: src/tables/company/CompanyTable.tsx:110 -#: src/tables/sales/ReturnOrderTable.tsx:78 -#: src/tables/sales/SalesOrderTable.tsx:108 -#: src/tables/stock/StockTrackingTable.tsx:140 +#: src/pages/part/pricing/SaleHistoryPanel.tsx:31 +#: src/pages/sales/ReturnOrderDetail.tsx:101 +#: src/pages/sales/SalesOrderDetail.tsx:110 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:100 +#: src/pages/stock/StockDetail.tsx:271 +#: src/tables/company/CompanyTable.tsx:111 +#: src/tables/sales/ReturnOrderTable.tsx:97 +#: src/tables/sales/SalesOrderTable.tsx:121 +#: src/tables/stock/StockTrackingTable.tsx:144 msgid "Customer" msgstr "Klant" #: src/pages/company/CompanyDetail.tsx:172 -#: src/tables/stock/StockTrackingTable.tsx:183 -msgid "Details" -msgstr "" +msgid "Company Details" +msgstr "Bedrijf gegevens" #: src/pages/company/CompanyDetail.tsx:175 #~ msgid "Edit company" @@ -4353,747 +5102,874 @@ msgstr "" #: src/pages/company/CompanyDetail.tsx:178 msgid "Manufactured Parts" -msgstr "" +msgstr "Geproduceerde onderdelen" #: src/pages/company/CompanyDetail.tsx:187 msgid "Supplied Parts" -msgstr "" +msgstr "Geleverde onderdelen" #: src/pages/company/CompanyDetail.tsx:189 #~ msgid "Delete company" #~ msgstr "Delete company" -#: src/pages/company/CompanyDetail.tsx:232 +#: src/pages/company/CompanyDetail.tsx:234 msgid "Assigned Stock" -msgstr "" +msgstr "Toegewezen voorraad" -#: src/pages/company/CompanyDetail.tsx:290 -#: src/tables/company/CompanyTable.tsx:86 +#: src/pages/company/CompanyDetail.tsx:273 +#: src/tables/company/CompanyTable.tsx:87 msgid "Edit Company" -msgstr "" +msgstr "Bedrijf bewerken" -#: src/pages/company/CompanyDetail.tsx:298 +#: src/pages/company/CompanyDetail.tsx:281 msgid "Delete Company" -msgstr "" +msgstr "Bedrijf verwijderen" -#: src/pages/company/CompanyDetail.tsx:306 +#: src/pages/company/CompanyDetail.tsx:289 msgid "Company Actions" -msgstr "" +msgstr "Bedrijf acties" -#: src/pages/company/ManufacturerPartDetail.tsx:76 -#: src/pages/company/SupplierPartDetail.tsx:89 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:128 +#: src/pages/company/ManufacturerPartDetail.tsx:74 +#: src/pages/company/SupplierPartDetail.tsx:84 msgid "Internal Part" -msgstr "" +msgstr "Intern onderdeel" -#: src/pages/company/ManufacturerPartDetail.tsx:91 -#: src/pages/company/SupplierPartDetail.tsx:103 -msgid "External Link" -msgstr "" - -#: src/pages/company/ManufacturerPartDetail.tsx:109 -#: src/pages/company/SupplierPartDetail.tsx:144 -#: src/tables/purchasing/ManufacturerPartTable.tsx:56 +#: src/pages/company/ManufacturerPartDetail.tsx:108 +#: src/pages/company/SupplierPartDetail.tsx:156 +#: src/tables/purchasing/ManufacturerPartTable.tsx:58 msgid "Manufacturer Part Number" -msgstr "" +msgstr "Fabrikant onderdeelnummer" -#: src/pages/company/ManufacturerPartDetail.tsx:138 +#: src/pages/company/ManufacturerPartDetail.tsx:125 +#: src/pages/company/SupplierPartDetail.tsx:108 +msgid "External Link" +msgstr "Externe link" + +#: src/pages/company/ManufacturerPartDetail.tsx:146 +#: src/pages/company/SupplierPartDetail.tsx:215 +#: src/pages/part/PartDetail.tsx:576 +msgid "Part Details" +msgstr "Details onderdelen" + +#: src/pages/company/ManufacturerPartDetail.tsx:149 msgid "Manufacturer Details" -msgstr "" +msgstr "Fabrikant details" -#: src/pages/company/ManufacturerPartDetail.tsx:147 +#: src/pages/company/ManufacturerPartDetail.tsx:158 msgid "Manufacturer Part Details" -msgstr "" +msgstr "Fabrikant onderdeel details" -#: src/pages/company/ManufacturerPartDetail.tsx:153 -#: src/pages/part/PartDetail.tsx:532 +#: src/pages/company/ManufacturerPartDetail.tsx:164 +#: src/pages/part/PartDetail.tsx:582 msgid "Parameters" -msgstr "" +msgstr "Parameters" -#: src/pages/company/ManufacturerPartDetail.tsx:165 -#: src/pages/part/PartDetail.tsx:649 +#: src/pages/company/ManufacturerPartDetail.tsx:176 +#: src/pages/part/PartDetail.tsx:669 #: src/pages/purchasing/PurchasingIndex.tsx:31 msgid "Suppliers" -msgstr "" +msgstr "Leveranciers" -#: src/pages/company/ManufacturerPartDetail.tsx:208 -#: src/tables/purchasing/ManufacturerPartTable.tsx:84 +#: src/pages/company/ManufacturerPartDetail.tsx:204 +#: src/tables/purchasing/ManufacturerPartTable.tsx:86 msgid "Edit Manufacturer Part" -msgstr "" +msgstr "Wijzig fabrikant deel" -#: src/pages/company/ManufacturerPartDetail.tsx:215 -#: src/tables/purchasing/ManufacturerPartTable.tsx:72 -#: src/tables/purchasing/ManufacturerPartTable.tsx:103 +#: src/pages/company/ManufacturerPartDetail.tsx:211 +#: src/tables/purchasing/ManufacturerPartTable.tsx:74 +#: src/tables/purchasing/ManufacturerPartTable.tsx:106 msgid "Add Manufacturer Part" -msgstr "" +msgstr "Voeg fabrikant deel toe" -#: src/pages/company/ManufacturerPartDetail.tsx:227 -#: src/tables/purchasing/ManufacturerPartTable.tsx:92 +#: src/pages/company/ManufacturerPartDetail.tsx:223 +#: src/tables/purchasing/ManufacturerPartTable.tsx:94 msgid "Delete Manufacturer Part" -msgstr "" +msgstr "Fabrikant deel verwijderen" -#: src/pages/company/ManufacturerPartDetail.tsx:240 +#: src/pages/company/ManufacturerPartDetail.tsx:236 msgid "Manufacturer Part Actions" -msgstr "" +msgstr "Fabrikant onderdeel acties" -#: src/pages/company/ManufacturerPartDetail.tsx:281 +#: src/pages/company/ManufacturerPartDetail.tsx:276 msgid "ManufacturerPart" +msgstr "Fabrikant onderdeel" + +#: src/pages/company/SupplierPartDetail.tsx:99 +msgid "Part Description" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:163 -#: src/tables/part/PartPurchaseOrdersTable.tsx:71 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:156 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:197 -#: src/tables/purchasing/SupplierPartTable.tsx:131 +#: src/pages/company/SupplierPartDetail.tsx:175 +#: src/tables/part/PartPurchaseOrdersTable.tsx:72 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:162 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:203 +#: src/tables/purchasing/SupplierPartTable.tsx:133 msgid "Pack Quantity" -msgstr "" +msgstr "Pakket hoeveelheid" -#: src/pages/company/SupplierPartDetail.tsx:174 +#: src/pages/company/SupplierPartDetail.tsx:186 msgid "Supplier Availability" -msgstr "" +msgstr "Beschikbaarheid van de leverancier" -#: src/pages/company/SupplierPartDetail.tsx:181 +#: src/pages/company/SupplierPartDetail.tsx:193 msgid "Availability Updated" -msgstr "" +msgstr "Beschikbaarheid bijgewerkt" -#: src/pages/company/SupplierPartDetail.tsx:208 +#: src/pages/company/SupplierPartDetail.tsx:220 msgid "Availability" -msgstr "" +msgstr "Beschikbaarheid" -#: src/pages/company/SupplierPartDetail.tsx:217 +#: src/pages/company/SupplierPartDetail.tsx:229 msgid "Supplier Part Details" -msgstr "" +msgstr "Leverancier onderdelen details" -#: src/pages/company/SupplierPartDetail.tsx:223 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:296 +#: src/pages/company/SupplierPartDetail.tsx:235 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:320 msgid "Received Stock" -msgstr "" +msgstr "Ontvangen voorraad" -#: src/pages/company/SupplierPartDetail.tsx:247 -#: src/pages/part/PartPricingPanel.tsx:111 -#: src/pages/part/pricing/PricingOverviewPanel.tsx:121 +#: src/pages/company/SupplierPartDetail.tsx:259 +#: src/pages/part/PartPricingPanel.tsx:116 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:195 msgid "Supplier Pricing" -msgstr "" +msgstr "Leverancier prijzen" -#: src/pages/company/SupplierPartDetail.tsx:294 +#: src/pages/company/SupplierPartDetail.tsx:284 msgid "Supplier Part Actions" -msgstr "" +msgstr "Acties leverancier onderdelen" -#: src/pages/company/SupplierPartDetail.tsx:319 -#: src/tables/purchasing/SupplierPartTable.tsx:210 +#: src/pages/company/SupplierPartDetail.tsx:308 +#: src/tables/purchasing/SupplierPartTable.tsx:213 msgid "Edit Supplier Part" -msgstr "" +msgstr "Bewerk leveranciersdeel" -#: src/pages/company/SupplierPartDetail.tsx:327 -#: src/tables/purchasing/SupplierPartTable.tsx:218 +#: src/pages/company/SupplierPartDetail.tsx:316 +#: src/tables/purchasing/SupplierPartTable.tsx:221 msgid "Delete Supplier Part" -msgstr "" +msgstr "Verwijder leveranciersdeel" -#: src/pages/company/SupplierPartDetail.tsx:335 -#: src/tables/purchasing/SupplierPartTable.tsx:163 +#: src/pages/company/SupplierPartDetail.tsx:324 +#: src/tables/purchasing/SupplierPartTable.tsx:165 msgid "Add Supplier Part" -msgstr "" +msgstr "Leveranciersdeel toevoegen" #: src/pages/part/CategoryDetail.tsx:93 -#: src/pages/stock/LocationDetail.tsx:101 -#: src/tables/settings/ErrorTable.tsx:36 +#: src/pages/stock/LocationDetail.tsx:95 +#: src/tables/settings/ErrorTable.tsx:63 +#: src/tables/settings/ErrorTable.tsx:108 msgid "Path" -msgstr "" +msgstr "Locatie" #: src/pages/part/CategoryDetail.tsx:109 msgid "Parent Category" -msgstr "" +msgstr "Bovenliggende categorie" -#: src/pages/part/CategoryDetail.tsx:126 +#: src/pages/part/CategoryDetail.tsx:132 msgid "Subcategories" -msgstr "" - -#: src/pages/part/CategoryDetail.tsx:133 -#: src/pages/stock/LocationDetail.tsx:141 -#: src/tables/part/PartCategoryTable.tsx:73 -#: src/tables/stock/StockLocationTable.tsx:49 -msgid "Structural" -msgstr "" +msgstr "Subcategorieën" #: src/pages/part/CategoryDetail.tsx:139 +#: src/pages/stock/LocationDetail.tsx:135 +#: src/tables/part/PartCategoryTable.tsx:85 +#: src/tables/stock/StockLocationTable.tsx:49 +msgid "Structural" +msgstr "Structureel" + +#: src/pages/part/CategoryDetail.tsx:145 msgid "Parent default location" -msgstr "" +msgstr "Op standaardlocatie opslaan" -#: src/pages/part/CategoryDetail.tsx:146 +#: src/pages/part/CategoryDetail.tsx:152 msgid "Default location" -msgstr "" +msgstr "Standaard locatie" -#: src/pages/part/CategoryDetail.tsx:157 +#: src/pages/part/CategoryDetail.tsx:163 msgid "Top level part category" -msgstr "" +msgstr "Hoogste niveau onderdeel categorie" -#: src/pages/part/CategoryDetail.tsx:167 -#: src/pages/part/CategoryDetail.tsx:221 -#: src/tables/part/PartCategoryTable.tsx:102 -msgid "Edit Part Category" -msgstr "" - -#: src/pages/part/CategoryDetail.tsx:180 -#: src/pages/stock/LocationDetail.tsx:233 -msgid "Delete items" -msgstr "" - -#: src/pages/part/CategoryDetail.tsx:188 +#: src/pages/part/CategoryDetail.tsx:173 #: src/pages/part/CategoryDetail.tsx:226 +#: src/tables/part/PartCategoryTable.tsx:118 +msgid "Edit Part Category" +msgstr "Categorie bewerken" + +#: src/pages/part/CategoryDetail.tsx:186 +#: src/pages/stock/LocationDetail.tsx:227 +msgid "Delete items" +msgstr "Items verwijderen" + +#: src/pages/part/CategoryDetail.tsx:194 +#: src/pages/part/CategoryDetail.tsx:231 msgid "Delete Part Category" -msgstr "" - -#: src/pages/part/CategoryDetail.tsx:191 -msgid "Parts Action" -msgstr "" - -#: src/pages/part/CategoryDetail.tsx:192 -msgid "Action for parts in this category" -msgstr "" +msgstr "Verwijder categorie onderdelen" #: src/pages/part/CategoryDetail.tsx:197 -msgid "Child Categories Action" -msgstr "" +msgid "Parts Action" +msgstr "Actie voor onderdelen" #: src/pages/part/CategoryDetail.tsx:198 +msgid "Action for parts in this category" +msgstr "Actie voor onderdelen in deze categorie" + +#: src/pages/part/CategoryDetail.tsx:203 +msgid "Child Categories Action" +msgstr "Onderliggende categorie actie" + +#: src/pages/part/CategoryDetail.tsx:204 msgid "Action for child categories in this category" -msgstr "" +msgstr "Actie voor subcategorieën in deze categorie" -#: src/pages/part/CategoryDetail.tsx:216 +#: src/pages/part/CategoryDetail.tsx:222 msgid "Category Actions" -msgstr "" +msgstr "Categorie acties" -#: src/pages/part/CategoryDetail.tsx:238 +#: src/pages/part/CategoryDetail.tsx:243 msgid "Category Details" -msgstr "" +msgstr "Categorie details" -#: src/pages/part/PartDetail.tsx:163 -msgid "Variant of" -msgstr "" +#: src/pages/part/PartAllocationPanel.tsx:23 +#: src/pages/stock/StockDetail.tsx:443 +#: src/tables/part/PartTable.tsx:99 +msgid "Build Order Allocations" +msgstr "Productie-opdracht toewijzingen" -#: src/pages/part/PartDetail.tsx:170 -msgid "Revision of" -msgstr "" - -#: src/pages/part/PartDetail.tsx:177 -#: src/tables/stock/StockItemTable.tsx:58 -msgid "Revision" -msgstr "" +#: src/pages/part/PartAllocationPanel.tsx:40 +#: src/pages/stock/StockDetail.tsx:458 +#: src/tables/part/PartTable.tsx:108 +msgid "Sales Order Allocations" +msgstr "Verkoopordertoewijzingen" #: src/pages/part/PartDetail.tsx:184 +msgid "Variant of" +msgstr "Variantie van" + +#: src/pages/part/PartDetail.tsx:191 +msgid "Revision of" +msgstr "Revisie van" + +#: src/pages/part/PartDetail.tsx:198 +#: src/tables/stock/StockItemTable.tsx:59 +msgid "Revision" +msgstr "Revisie" + +#: src/pages/part/PartDetail.tsx:205 #: src/tables/notifications/NotificationsTable.tsx:31 #: src/tables/part/PartCategoryTemplateTable.tsx:67 msgid "Category" -msgstr "" - -#: src/pages/part/PartDetail.tsx:190 -msgid "Default Location" -msgstr "" - -#: src/pages/part/PartDetail.tsx:197 -msgid "Category Default Location" -msgstr "" - -#: src/pages/part/PartDetail.tsx:204 -#: src/tables/purchasing/ManufacturerPartParameterTable.tsx:44 -msgid "Units" -msgstr "" +msgstr "Categorie" #: src/pages/part/PartDetail.tsx:211 -#: src/tables/settings/PendingTasksTable.tsx:42 -msgid "Keywords" -msgstr "" +msgid "Default Location" +msgstr "Standaard locatie" #: src/pages/part/PartDetail.tsx:218 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:186 -#: src/pages/sales/ReturnOrderDetail.tsx:165 -#: src/pages/sales/SalesOrderDetail.tsx:174 -msgid "Link" -msgstr "" +msgid "Category Default Location" +msgstr "Standaard categorie locatie" -#: src/pages/part/PartDetail.tsx:236 -#: src/tables/bom/BomTable.tsx:320 -#: src/tables/build/BuildLineTable.tsx:155 -#: src/tables/part/PartTable.tsx:288 -#: src/tables/sales/SalesOrderLineItemTable.tsx:103 -msgid "Available Stock" -msgstr "" +#: src/pages/part/PartDetail.tsx:225 +#: src/tables/purchasing/ManufacturerPartParameterTable.tsx:44 +msgid "Units" +msgstr "Eenheden" -#: src/pages/part/PartDetail.tsx:243 -msgid "Variant Stock" -msgstr "" - -#: src/pages/part/PartDetail.tsx:251 -msgid "Minimum Stock" -msgstr "" +#: src/pages/part/PartDetail.tsx:232 +#: src/tables/settings/PendingTasksTable.tsx:46 +msgid "Keywords" +msgstr "Trefwoorden" #: src/pages/part/PartDetail.tsx:257 +#: src/tables/bom/BomTable.tsx:320 +#: src/tables/build/BuildLineTable.tsx:286 +#: src/tables/part/PartTable.tsx:288 +#: src/tables/sales/SalesOrderLineItemTable.tsx:111 +msgid "Available Stock" +msgstr "Beschikbare voorraad" + +#: src/pages/part/PartDetail.tsx:264 +msgid "Variant Stock" +msgstr "Variant voorraad" + +#: src/pages/part/PartDetail.tsx:272 +msgid "Minimum Stock" +msgstr "Minimale voorraad" + +#: src/pages/part/PartDetail.tsx:278 #: src/tables/bom/BomTable.tsx:237 -#: src/tables/build/BuildLineTable.tsx:117 -#: src/tables/sales/SalesOrderLineItemTable.tsx:141 +#: src/tables/build/BuildLineTable.tsx:248 +#: src/tables/sales/SalesOrderLineItemTable.tsx:149 msgid "On order" -msgstr "" +msgstr "In bestelling" -#: src/pages/part/PartDetail.tsx:266 +#: src/pages/part/PartDetail.tsx:285 +msgid "Required for Orders" +msgstr "Vereist voor bestellingen" + +#: src/pages/part/PartDetail.tsx:294 msgid "Allocated to Build Orders" -msgstr "" +msgstr "Toegewezen aan het bouwen van orders" -#: src/pages/part/PartDetail.tsx:274 +#: src/pages/part/PartDetail.tsx:305 msgid "Allocated to Sales Orders" -msgstr "" - -#: src/pages/part/PartDetail.tsx:281 -#: src/tables/bom/BomTable.tsx:261 -#: src/tables/bom/BomTable.tsx:293 -msgid "Can Build" -msgstr "" - -#: src/pages/part/PartDetail.tsx:288 -#: src/tables/bom/BomTable.tsx:245 -#: src/tables/part/PartTable.tsx:92 -msgid "Building" -msgstr "" - -#: src/pages/part/PartDetail.tsx:302 -#: src/pages/part/PartDetail.tsx:873 -#: src/tables/part/ParametricPartTable.tsx:228 -#: src/tables/part/PartTable.tsx:184 -msgid "Locked" -msgstr "" - -#: src/pages/part/PartDetail.tsx:308 -msgid "Template Part" -msgstr "" +msgstr "Toegewezen aan verkooporders" #: src/pages/part/PartDetail.tsx:310 #~ msgid "Edit part" #~ msgstr "Edit part" -#: src/pages/part/PartDetail.tsx:313 -#: src/tables/bom/BomTable.tsx:315 -msgid "Assembled Part" -msgstr "" +#: src/pages/part/PartDetail.tsx:315 +#: src/tables/bom/BomTable.tsx:261 +#: src/tables/bom/BomTable.tsx:293 +msgid "Can Build" +msgstr "Kan bouwen" -#: src/pages/part/PartDetail.tsx:318 -msgid "Component Part" -msgstr "" +#: src/pages/part/PartDetail.tsx:322 +#: src/pages/part/PartDetail.tsx:905 +#: src/pages/stock/StockDetail.tsx:766 +#: src/tables/build/BuildOrderTestTable.tsx:220 +#: src/tables/stock/StockItemTable.tsx:334 +msgid "In Production" +msgstr "In productie" #: src/pages/part/PartDetail.tsx:322 #~ msgid "Duplicate part" #~ msgstr "Duplicate part" -#: src/pages/part/PartDetail.tsx:323 -#: src/tables/bom/BomTable.tsx:305 -msgid "Testable Part" -msgstr "" - #: src/pages/part/PartDetail.tsx:327 #~ msgid "Delete part" #~ msgstr "Delete part" -#: src/pages/part/PartDetail.tsx:329 -#: src/tables/bom/BomTable.tsx:310 -msgid "Trackable Part" -msgstr "" +#: src/pages/part/PartDetail.tsx:336 +#: src/tables/part/ParametricPartTable.tsx:228 +#: src/tables/part/PartTable.tsx:184 +msgid "Locked" +msgstr "Vergrendeld" -#: src/pages/part/PartDetail.tsx:334 -msgid "Purchaseable Part" -msgstr "" +#: src/pages/part/PartDetail.tsx:342 +msgid "Template Part" +msgstr "Sjabloon onderdeel" -#: src/pages/part/PartDetail.tsx:339 -msgid "Saleable Part" -msgstr "" - -#: src/pages/part/PartDetail.tsx:344 -msgid "Virtual Part" -msgstr "" +#: src/pages/part/PartDetail.tsx:347 +#: src/tables/bom/BomTable.tsx:315 +msgid "Assembled Part" +msgstr "Samengesteld onderdeel" #: src/pages/part/PartDetail.tsx:352 -#: src/tables/ColumnRenderers.tsx:220 -msgid "Creation Date" -msgstr "" +msgid "Component Part" +msgstr "Onderdeel" #: src/pages/part/PartDetail.tsx:357 +#: src/tables/bom/BomTable.tsx:305 +msgid "Testable Part" +msgstr "Testbaar onderdeel" + +#: src/pages/part/PartDetail.tsx:363 +#: src/tables/bom/BomTable.tsx:310 +msgid "Trackable Part" +msgstr "Traceerbaar onderdeel" + +#: src/pages/part/PartDetail.tsx:368 +msgid "Purchaseable Part" +msgstr "Aankoopbaar onderdeel" + +#: src/pages/part/PartDetail.tsx:374 +msgid "Saleable Part" +msgstr "Verkoopbaar onderdeel" + +#: src/pages/part/PartDetail.tsx:379 +msgid "Virtual Part" +msgstr "Virtueel onderdeel" + +#: src/pages/part/PartDetail.tsx:393 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:215 +#: src/pages/sales/ReturnOrderDetail.tsx:185 +#: src/pages/sales/SalesOrderDetail.tsx:197 +#: src/tables/ColumnRenderers.tsx:234 +msgid "Creation Date" +msgstr "Aangemaakt op" + +#: src/pages/part/PartDetail.tsx:398 msgid "Created By" -msgstr "" +msgstr "Aangemaakt door" -#: src/pages/part/PartDetail.tsx:372 +#: src/pages/part/PartDetail.tsx:413 msgid "Default Supplier" -msgstr "" +msgstr "Standaard leverancier" -#: src/pages/part/PartDetail.tsx:383 -#: src/pages/part/pricing/BomPricingPanel.tsx:79 +#: src/pages/part/PartDetail.tsx:424 +#: src/pages/part/pricing/BomPricingPanel.tsx:113 #: src/pages/part/pricing/VariantPricingPanel.tsx:95 #: src/tables/part/PartTable.tsx:161 msgid "Price Range" -msgstr "" - -#: src/pages/part/PartDetail.tsx:423 -#: src/pages/stock/StockDetail.tsx:135 -msgid "Last Stocktake" -msgstr "" +msgstr "Prijs bereik" #: src/pages/part/PartDetail.tsx:462 +msgid "Latest Serial Number" +msgstr "" + +#: src/pages/part/PartDetail.tsx:472 +#: src/pages/stock/StockDetail.tsx:151 +msgid "Last Stocktake" +msgstr "Laatste voorraadcontrole" + +#: src/pages/part/PartDetail.tsx:511 msgid "Stocktake By" -msgstr "" +msgstr "Voorraadcontrole door" -#: src/pages/part/PartDetail.tsx:526 -msgid "Part Details" -msgstr "" - -#: src/pages/part/PartDetail.tsx:557 +#: src/pages/part/PartDetail.tsx:611 msgid "Variants" -msgstr "" +msgstr "Varianten" -#: src/pages/part/PartDetail.tsx:564 -#: src/pages/stock/StockDetail.tsx:307 +#: src/pages/part/PartDetail.tsx:618 +#: src/pages/stock/StockDetail.tsx:430 msgid "Allocations" -msgstr "" +msgstr "Toewijzingen" -#: src/pages/part/PartDetail.tsx:575 -#: src/pages/stock/StockDetail.tsx:318 -#: src/tables/part/PartTable.tsx:99 -msgid "Build Order Allocations" -msgstr "" - -#: src/pages/part/PartDetail.tsx:590 -#: src/pages/stock/StockDetail.tsx:333 -#: src/tables/part/PartTable.tsx:108 -msgid "Sales Order Allocations" -msgstr "Verkoopordertoewijzingen" - -#: src/pages/part/PartDetail.tsx:607 +#: src/pages/part/PartDetail.tsx:625 msgid "Bill of Materials" -msgstr "" +msgstr "Materiaallijst" -#: src/pages/part/PartDetail.tsx:623 +#: src/pages/part/PartDetail.tsx:643 msgid "Used In" -msgstr "" +msgstr "Wordt gebruikt in" -#: src/pages/part/PartDetail.tsx:630 +#: src/pages/part/PartDetail.tsx:650 msgid "Part Pricing" -msgstr "" +msgstr "Prijzen onderdeel" -#: src/pages/part/PartDetail.tsx:636 +#: src/pages/part/PartDetail.tsx:656 #: src/pages/purchasing/PurchasingIndex.tsx:42 msgid "Manufacturers" -msgstr "" +msgstr "Fabrikant" -#: src/pages/part/PartDetail.tsx:676 +#: src/pages/part/PartDetail.tsx:722 msgid "Scheduling" -msgstr "" +msgstr "Planning" -#: src/pages/part/PartDetail.tsx:688 +#: src/pages/part/PartDetail.tsx:729 msgid "Test Templates" -msgstr "" +msgstr "Test sjablonen" -#: src/pages/part/PartDetail.tsx:715 +#: src/pages/part/PartDetail.tsx:756 msgid "Related Parts" -msgstr "" +msgstr "Gerelateerde onderdelen" -#: src/pages/part/PartDetail.tsx:849 -#: src/pages/stock/StockDetail.tsx:156 -#: src/pages/stock/StockDetail.tsx:593 -#: src/tables/build/BuildLineTable.tsx:48 +#: src/pages/part/PartDetail.tsx:881 +#: src/pages/stock/StockDetail.tsx:172 +#: src/pages/stock/StockDetail.tsx:783 +#: src/tables/build/BuildLineTable.tsx:179 #: src/tables/part/PartTable.tsx:117 -#: src/tables/stock/StockItemTable.tsx:177 -#: src/tables/stock/StockItemTable.tsx:310 +#: src/tables/stock/StockItemTable.tsx:166 +#: src/tables/stock/StockItemTable.tsx:314 msgid "Available" -msgstr "" +msgstr "Beschikbaar" -#: src/pages/part/PartDetail.tsx:855 +#: src/pages/part/PartDetail.tsx:887 msgid "No Stock" -msgstr "" +msgstr "Geen voorraad" -#: src/pages/part/PartDetail.tsx:861 +#: src/pages/part/PartDetail.tsx:893 +#: src/tables/part/PartTestTemplateTable.tsx:106 +#: src/tables/stock/StockItemTestResultTable.tsx:383 +msgid "Required" +msgstr "Vereist" + +#: src/pages/part/PartDetail.tsx:899 #: src/tables/bom/BomTable.tsx:325 #: src/tables/part/PartTable.tsx:86 msgid "On Order" -msgstr "" +msgstr "In bestelling" -#: src/pages/part/PartDetail.tsx:867 -#: src/pages/stock/StockDetail.tsx:576 -#: src/tables/build/BuildOrderTestTable.tsx:219 -#: src/tables/stock/StockItemTable.tsx:330 -msgid "In Production" -msgstr "" - -#: src/pages/part/PartDetail.tsx:892 +#: src/pages/part/PartDetail.tsx:924 msgid "Edit Part" -msgstr "" +msgstr "Onderdeel bewerken" -#: src/pages/part/PartDetail.tsx:927 +#: src/pages/part/PartDetail.tsx:959 #: src/tables/part/PartTable.tsx:331 -#: src/tables/part/PartTable.tsx:342 +#: src/tables/part/PartTable.tsx:343 msgid "Add Part" -msgstr "" +msgstr "Onderdeel toevoegen" -#: src/pages/part/PartDetail.tsx:941 +#: src/pages/part/PartDetail.tsx:973 msgid "Delete Part" -msgstr "" +msgstr "Onderdeel verwijderen" -#: src/pages/part/PartDetail.tsx:950 +#: src/pages/part/PartDetail.tsx:982 msgid "Deleting this part cannot be reversed" -msgstr "" +msgstr "Verwijderen van dit onderdeel kan niet ongedaan worden gemaakt" -#: src/pages/part/PartDetail.tsx:999 -#: src/pages/stock/LocationDetail.tsx:324 -#: src/tables/stock/StockItemTable.tsx:444 +#: src/pages/part/PartDetail.tsx:1021 +#: src/pages/stock/LocationDetail.tsx:310 +#: src/tables/stock/StockItemTable.tsx:449 msgid "Stock Actions" -msgstr "" +msgstr "Voorraad acties" -#: src/pages/part/PartDetail.tsx:1007 +#: src/pages/part/PartDetail.tsx:1029 msgid "Count part stock" -msgstr "" +msgstr "Tel voorraad" -#: src/pages/part/PartDetail.tsx:1018 +#: src/pages/part/PartDetail.tsx:1040 msgid "Transfer part stock" -msgstr "" +msgstr "Voorraad van onderdeel verplaatsen" -#: src/pages/part/PartDetail.tsx:1027 +#: src/pages/part/PartDetail.tsx:1049 msgid "Part Actions" -msgstr "" +msgstr "Acties van onderdeel" -#: src/pages/part/PartDetail.tsx:1087 +#: src/pages/part/PartDetail.tsx:1113 msgid "Select Part Revision" -msgstr "" +msgstr "Selecteer onderdeel revisie" #: src/pages/part/PartIndex.tsx:29 #~ msgid "Categories" #~ msgstr "Categories" -#: src/pages/part/PartPricingPanel.tsx:68 +#: src/pages/part/PartPricingPanel.tsx:72 msgid "No pricing data found for this part." -msgstr "" +msgstr "Geen prijsgegevens gevonden voor dit deel." -#: src/pages/part/PartPricingPanel.tsx:82 -#: src/pages/part/pricing/PricingOverviewPanel.tsx:190 +#: src/pages/part/PartPricingPanel.tsx:87 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:293 msgid "Pricing Overview" -msgstr "" +msgstr "Overzicht van de prijzen" -#: src/pages/part/PartPricingPanel.tsx:88 +#: src/pages/part/PartPricingPanel.tsx:93 msgid "Purchase History" -msgstr "" +msgstr "Aankoop geschiedenis" -#: src/pages/part/PartPricingPanel.tsx:102 -#: src/pages/part/pricing/PricingOverviewPanel.tsx:100 +#: src/pages/part/PartPricingPanel.tsx:107 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:174 msgid "Internal Pricing" -msgstr "" +msgstr "Interne prijzen" -#: src/pages/part/PartPricingPanel.tsx:120 -#: src/pages/part/pricing/PricingOverviewPanel.tsx:107 +#: src/pages/part/PartPricingPanel.tsx:125 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:181 msgid "BOM Pricing" -msgstr "" +msgstr "Stukslijst prijs" -#: src/pages/part/PartPricingPanel.tsx:127 -#: src/pages/part/pricing/PricingOverviewPanel.tsx:128 +#: src/pages/part/PartPricingPanel.tsx:132 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:202 msgid "Variant Pricing" -msgstr "" +msgstr "Variant prijzen" -#: src/pages/part/PartPricingPanel.tsx:139 -#: src/pages/part/pricing/PricingOverviewPanel.tsx:135 +#: src/pages/part/PartPricingPanel.tsx:144 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:209 msgid "Sale Pricing" -msgstr "" +msgstr "Verkoop prijs" -#: src/pages/part/PartPricingPanel.tsx:146 -#: src/pages/part/pricing/PricingOverviewPanel.tsx:142 +#: src/pages/part/PartPricingPanel.tsx:151 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:216 msgid "Sale History" +msgstr "Verkoop geschiedenis" + +#: src/pages/part/PartSchedulingDetail.tsx:47 +#: src/pages/part/PartSchedulingDetail.tsx:299 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:156 +msgid "Maximum" +msgstr "Maximaal" + +#: src/pages/part/PartSchedulingDetail.tsx:50 +#: src/pages/part/PartSchedulingDetail.tsx:289 +msgid "Scheduled" +msgstr "Gepland" + +#: src/pages/part/PartSchedulingDetail.tsx:53 +#: src/pages/part/PartSchedulingDetail.tsx:294 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:144 +msgid "Minimum" +msgstr "Minimaal" + +#: src/pages/part/PartSchedulingDetail.tsx:68 +msgid "Order" +msgstr "Order" + +#: src/pages/part/PartSchedulingDetail.tsx:92 +msgid "Quantity is speculative" +msgstr "Hoeveelheid is speculatief" + +#: src/pages/part/PartSchedulingDetail.tsx:101 +msgid "No date available for provided quantity" +msgstr "Geen datum beschikbaar voor de opgegeven hoeveelheid" + +#: src/pages/part/PartSchedulingDetail.tsx:105 +msgid "Date is in the past" +msgstr "Datum is in het verleden" + +#: src/pages/part/PartSchedulingDetail.tsx:112 +msgid "Scheduled Quantity" +msgstr "Geplande hoeveelheid" + +#: src/pages/part/PartSchedulingDetail.tsx:240 +msgid "No information available" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:58 -#: src/pages/part/pricing/BomPricingPanel.tsx:138 -#: src/tables/ColumnRenderers.tsx:262 +#: src/pages/part/PartSchedulingDetail.tsx:241 +msgid "There is no scheduling information available for the selected part" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:276 +msgid "Expected Quantity" +msgstr "Verwachte hoeveelheid" + +#: src/pages/part/PartStocktakeDetail.tsx:63 +#: src/tables/FilterSelectDrawer.tsx:167 +#: src/tables/FilterSelectDrawer.tsx:174 +#: src/tables/build/BuildOrderTestTable.tsx:135 +#: src/tables/purchasing/ManufacturerPartParameterTable.tsx:38 +#: src/tables/stock/StockItemTestResultTable.tsx:192 +msgid "Value" +msgstr "Invoer" + +#: src/pages/part/PartStocktakeDetail.tsx:82 +msgid "Edit Stocktake Entry" +msgstr "Invoer voorraadopname bewerken" + +#: src/pages/part/PartStocktakeDetail.tsx:90 +msgid "Delete Stocktake Entry" +msgstr "Voorraad invoer verwijderen" + +#: src/pages/part/PartStocktakeDetail.tsx:96 +#: src/tables/settings/StocktakeReportTable.tsx:69 +msgid "Generate Stocktake Report" +msgstr "Voorraadcontrole Rapport creëren" + +#: src/pages/part/PartStocktakeDetail.tsx:101 +#: src/tables/settings/StocktakeReportTable.tsx:71 +msgid "Stocktake report scheduled" +msgstr "Voorraadcontrole verslag gepland" + +#: src/pages/part/PartStocktakeDetail.tsx:119 +#: src/pages/part/PartStocktakeDetail.tsx:235 +#: src/pages/stock/StockDetail.tsx:303 +#: src/tables/stock/StockItemTable.tsx:249 +msgid "Stock Value" +msgstr "" + +#: src/pages/part/PartStocktakeDetail.tsx:139 +#: src/tables/settings/StocktakeReportTable.tsx:77 +msgid "New Stocktake Report" +msgstr "Nieuwe voorraadcontrole rapport" + +#: src/pages/part/PartStocktakeDetail.tsx:258 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:295 +msgid "Minimum Value" +msgstr "Minimale waarde" + +#: src/pages/part/PartStocktakeDetail.tsx:264 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:296 +msgid "Maximum Value" +msgstr "Maximale waarde" + +#: src/pages/part/pricing/BomPricingPanel.tsx:87 +#: src/pages/part/pricing/BomPricingPanel.tsx:177 +#: src/tables/ColumnRenderers.tsx:276 #: src/tables/bom/BomTable.tsx:185 #: src/tables/general/ExtraLineItemTable.tsx:64 -#: src/tables/purchasing/PurchaseOrderTable.tsx:112 -#: src/tables/sales/ReturnOrderTable.tsx:104 -#: src/tables/sales/SalesOrderLineItemTable.tsx:89 -#: src/tables/sales/SalesOrderTable.tsx:136 +#: src/tables/purchasing/PurchaseOrderTable.tsx:113 +#: src/tables/sales/ReturnOrderTable.tsx:127 +#: src/tables/sales/SalesOrderLineItemTable.tsx:97 +#: src/tables/sales/SalesOrderTable.tsx:149 msgid "Total Price" -msgstr "" +msgstr "Totale prijs" -#: src/pages/part/pricing/BomPricingPanel.tsx:78 -#: src/pages/part/pricing/BomPricingPanel.tsx:102 +#: src/pages/part/pricing/BomPricingPanel.tsx:112 +#: src/pages/part/pricing/BomPricingPanel.tsx:141 #: src/tables/bom/UsedInTable.tsx:49 +#: src/tables/build/BuildLineTable.tsx:296 #: src/tables/part/PartTable.tsx:202 msgid "Component" -msgstr "" - -#: src/pages/part/pricing/BomPricingPanel.tsx:81 -#: src/pages/part/pricing/VariantPricingPanel.tsx:37 -#: src/pages/part/pricing/VariantPricingPanel.tsx:97 -msgid "Minimum Price" -msgstr "" - -#: src/pages/part/pricing/BomPricingPanel.tsx:82 -#: src/pages/part/pricing/VariantPricingPanel.tsx:45 -#: src/pages/part/pricing/VariantPricingPanel.tsx:98 -msgid "Maximum Price" -msgstr "" +msgstr "Onderdeel" #: src/pages/part/pricing/BomPricingPanel.tsx:112 #~ msgid "Minimum Total Price" #~ msgstr "Minimum Total Price" +#: src/pages/part/pricing/BomPricingPanel.tsx:115 +#: src/pages/part/pricing/VariantPricingPanel.tsx:37 +#: src/pages/part/pricing/VariantPricingPanel.tsx:97 +msgid "Minimum Price" +msgstr "Minimale prijs" + +#: src/pages/part/pricing/BomPricingPanel.tsx:116 +#: src/pages/part/pricing/VariantPricingPanel.tsx:45 +#: src/pages/part/pricing/VariantPricingPanel.tsx:98 +msgid "Maximum Price" +msgstr "Maximale prijs" + #: src/pages/part/pricing/BomPricingPanel.tsx:117 #~ msgid "Maximum Total Price" #~ msgstr "Maximum Total Price" -#: src/pages/part/pricing/BomPricingPanel.tsx:129 -#: src/pages/part/pricing/PriceBreakPanel.tsx:172 -#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:67 -#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:128 -#: src/pages/part/pricing/SupplierPricingPanel.tsx:62 +#: src/pages/part/pricing/BomPricingPanel.tsx:168 +#: src/pages/part/pricing/PriceBreakPanel.tsx:173 +#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:70 +#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:125 +#: src/pages/part/pricing/SupplierPricingPanel.tsx:66 +#: src/pages/stock/StockDetail.tsx:291 #: src/tables/bom/BomTable.tsx:176 #: src/tables/general/ExtraLineItemTable.tsx:56 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:223 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:225 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:92 +#: src/tables/stock/StockItemTable.tsx:239 msgid "Unit Price" -msgstr "" +msgstr "Prijs per stuk" -#: src/pages/part/pricing/BomPricingPanel.tsx:154 +#: src/pages/part/pricing/BomPricingPanel.tsx:193 #: src/pages/part/pricing/VariantPricingPanel.tsx:53 -#: src/tables/purchasing/SupplierPartTable.tsx:148 +#: src/tables/purchasing/SupplierPartTable.tsx:150 msgid "Updated" -msgstr "" +msgstr "Bijgewerkt" -#: src/pages/part/pricing/BomPricingPanel.tsx:219 +#: src/pages/part/pricing/BomPricingPanel.tsx:258 msgid "Pie Chart" -msgstr "" +msgstr "Cirkel diagram" -#: src/pages/part/pricing/BomPricingPanel.tsx:220 +#: src/pages/part/pricing/BomPricingPanel.tsx:259 msgid "Bar Chart" -msgstr "" +msgstr "Staafdiagram" #: src/pages/part/pricing/PriceBreakPanel.tsx:58 -#: src/pages/part/pricing/PriceBreakPanel.tsx:110 +#: src/pages/part/pricing/PriceBreakPanel.tsx:111 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:142 -#: src/tables/purchasing/SupplierPriceBreakTable.tsx:168 +#: src/tables/purchasing/SupplierPriceBreakTable.tsx:169 msgid "Add Price Break" -msgstr "" +msgstr "Prijsverschil toevoegen" #: src/pages/part/pricing/PriceBreakPanel.tsx:71 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:153 msgid "Edit Price Break" -msgstr "" +msgstr "Prijsverschil bewerken" #: src/pages/part/pricing/PriceBreakPanel.tsx:81 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:161 msgid "Delete Price Break" -msgstr "" +msgstr "Prijsverschil verwijderen" #: src/pages/part/pricing/PriceBreakPanel.tsx:95 msgid "Price Break" -msgstr "" +msgstr "Prijs verschil" -#: src/pages/part/pricing/PriceBreakPanel.tsx:170 +#: src/pages/part/pricing/PriceBreakPanel.tsx:171 msgid "Price" -msgstr "" +msgstr "Prijs" -#: src/pages/part/pricing/PricingOverviewPanel.tsx:51 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:68 +msgid "Refreshing pricing data" +msgstr "Vernieuwen van prijsgegevens" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:88 +msgid "Pricing data updated" +msgstr "Prijsgegevens bijgewerkt" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:95 +msgid "Failed to update pricing data" +msgstr "Bijwerken prijsgegevens mislukt" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:104 +msgid "Edit Pricing" +msgstr "Prijzen bewerken" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:125 msgid "Pricing Category" -msgstr "" +msgstr "Prijs categorie" -#: src/pages/part/pricing/PricingOverviewPanel.tsx:70 -msgid "Minimum" -msgstr "" - -#: src/pages/part/pricing/PricingOverviewPanel.tsx:82 -msgid "Maximum" -msgstr "" - -#: src/pages/part/pricing/PricingOverviewPanel.tsx:114 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:188 msgid "Purchase Pricing" -msgstr "" +msgstr "Inkoopprijs" -#: src/pages/part/pricing/PricingOverviewPanel.tsx:149 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:223 msgid "Override Pricing" -msgstr "" +msgstr "Overschrijf prijzen" -#: src/pages/part/pricing/PricingOverviewPanel.tsx:156 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:230 msgid "Overall Pricing" -msgstr "" +msgstr "Algemene prijzen" -#: src/pages/part/pricing/PricingOverviewPanel.tsx:175 -#: src/pages/stock/StockDetail.tsx:129 -#: src/tables/stock/StockItemTable.tsx:240 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:249 +#: src/pages/stock/StockDetail.tsx:145 +#: src/tables/stock/StockItemTable.tsx:275 msgid "Last Updated" -msgstr "" +msgstr "Laatst bijgewerkt" -#: src/pages/part/pricing/PricingOverviewPanel.tsx:192 -msgid "Minimum Value" -msgstr "" +#: src/pages/part/pricing/PricingOverviewPanel.tsx:253 +msgid "Pricing Not Set" +msgstr "Prijzen niet ingesteld" -#: src/pages/part/pricing/PricingOverviewPanel.tsx:193 -msgid "Maximum Value" -msgstr "" +#: src/pages/part/pricing/PricingOverviewPanel.tsx:254 +msgid "Pricing data has not been calculated for this part" +msgstr "Prijsgegevens zijn niet berekend voor dit deel" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:258 +msgid "Pricing Actions" +msgstr "Prijzen acties" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:261 +msgid "Refresh" +msgstr "Vernieuwen" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:262 +msgid "Refresh pricing data" +msgstr "Ververs prijsgegevens" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:277 +msgid "Edit pricing data" +msgstr "Prijsgegevens bewerken" #: src/pages/part/pricing/PricingPanel.tsx:24 msgid "No data available" -msgstr "" +msgstr "Geen gegevens beschikbaar" #: src/pages/part/pricing/PricingPanel.tsx:65 msgid "No Data" -msgstr "" +msgstr "Geen gegevens" #: src/pages/part/pricing/PricingPanel.tsx:66 msgid "No pricing data available" -msgstr "" +msgstr "Geen prijsgegevens beschikbaar" #: src/pages/part/pricing/PricingPanel.tsx:77 msgid "Loading pricing data" -msgstr "" - -#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:40 -#: src/pages/part/pricing/SaleHistoryPanel.tsx:36 -#: src/tables/ColumnRenderers.tsx:201 -#: src/tables/build/BuildOrderTestTable.tsx:150 -#: src/tables/plugin/PluginListTable.tsx:139 -msgid "Date" -msgstr "" +msgstr "Prijsgegevens laden" #: src/pages/part/pricing/PurchaseHistoryPanel.tsx:47 msgid "Purchase Price" -msgstr "" +msgstr "Inkoopprijs" -#: src/pages/part/pricing/SaleHistoryPanel.tsx:22 -msgid "Sale Order" -msgstr "" +#: src/pages/part/pricing/SaleHistoryPanel.tsx:24 +#~ msgid "Sale Order" +#~ msgstr "Sale Order" -#: src/pages/part/pricing/SaleHistoryPanel.tsx:42 -#: src/pages/part/pricing/SaleHistoryPanel.tsx:92 +#: src/pages/part/pricing/SaleHistoryPanel.tsx:44 +#: src/pages/part/pricing/SaleHistoryPanel.tsx:87 msgid "Sale Price" -msgstr "" +msgstr "Verkoopprijs" -#: src/pages/part/pricing/SupplierPricingPanel.tsx:65 +#: src/pages/part/pricing/SupplierPricingPanel.tsx:69 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:83 msgid "Supplier Price" -msgstr "" +msgstr "Leverancier prijs" #: src/pages/part/pricing/VariantPricingPanel.tsx:30 #: src/pages/part/pricing/VariantPricingPanel.tsx:94 msgid "Variant Part" -msgstr "" +msgstr "Variant onderdeel" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:93 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:87 msgid "Edit Purchase Order" -msgstr "" +msgstr "Bewerk inkooporder" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:102 -#: src/tables/purchasing/PurchaseOrderTable.tsx:128 -#: src/tables/purchasing/PurchaseOrderTable.tsx:140 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:96 +#: src/tables/purchasing/PurchaseOrderTable.tsx:129 +#: src/tables/purchasing/PurchaseOrderTable.tsx:142 msgid "Add Purchase Order" -msgstr "" +msgstr "Inkooporder toevoegen" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:127 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:121 msgid "Supplier Reference" -msgstr "" +msgstr "Referentie leverancier" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:158 -#: src/pages/sales/ReturnOrderDetail.tsx:137 -#: src/pages/sales/SalesOrderDetail.tsx:137 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:152 +#: src/pages/sales/ReturnOrderDetail.tsx:129 +#: src/pages/sales/SalesOrderDetail.tsx:132 msgid "Completed Line Items" -msgstr "" +msgstr "Afgeronde regel items" #: src/pages/purchasing/PurchaseOrderDetail.tsx:159 #: src/pages/sales/ReturnOrderDetail.tsx:126 @@ -5101,208 +5977,305 @@ msgstr "" #~ msgid "Order Currency," #~ msgstr "Order Currency," -#: src/pages/purchasing/PurchaseOrderDetail.tsx:165 -#: src/pages/sales/ReturnOrderDetail.tsx:144 -#: src/pages/sales/SalesOrderDetail.tsx:153 -msgid "Order Currency" +#: src/pages/purchasing/PurchaseOrderDetail.tsx:161 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:231 +msgid "Destination" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:172 -#: src/pages/sales/ReturnOrderDetail.tsx:151 -#: src/pages/sales/SalesOrderDetail.tsx:160 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:167 +#: src/pages/sales/ReturnOrderDetail.tsx:136 +#: src/pages/sales/SalesOrderDetail.tsx:148 +msgid "Order Currency" +msgstr "Bestelling valuta" + +#: src/pages/purchasing/PurchaseOrderDetail.tsx:173 +#: src/pages/sales/ReturnOrderDetail.tsx:143 +#: src/pages/sales/SalesOrderDetail.tsx:155 msgid "Total Cost" -msgstr "" +msgstr "Totale kosten" #: src/pages/purchasing/PurchaseOrderDetail.tsx:207 -#: src/pages/sales/ReturnOrderDetail.tsx:186 -#: src/pages/sales/SalesOrderDetail.tsx:195 -msgid "Created On" -msgstr "" +#: src/pages/sales/ReturnOrderDetail.tsx:183 +#: src/pages/sales/SalesOrderDetail.tsx:191 +#~ msgid "Created On" +#~ msgstr "Created On" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:252 -#: src/pages/sales/ReturnOrderDetail.tsx:231 -#: src/pages/sales/SalesOrderDetail.tsx:266 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:221 +#: src/pages/sales/ReturnOrderDetail.tsx:193 +#: src/pages/sales/SalesOrderDetail.tsx:204 +msgid "Issue Date" +msgstr "Datum van uitgifte" + +#: src/pages/purchasing/PurchaseOrderDetail.tsx:237 +#: src/pages/sales/ReturnOrderDetail.tsx:209 +#: src/pages/sales/SalesOrderDetail.tsx:219 +#: src/tables/build/BuildOrderTable.tsx:98 +#: src/tables/part/PartPurchaseOrdersTable.tsx:105 +#: src/tables/sales/ReturnOrderTable.tsx:122 +msgid "Completion Date" +msgstr "Datum van afronding" + +#: src/pages/purchasing/PurchaseOrderDetail.tsx:276 +#: src/pages/sales/ReturnOrderDetail.tsx:248 +#: src/pages/sales/SalesOrderDetail.tsx:288 msgid "Order Details" msgstr "Order Details" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:280 -#: src/pages/sales/ReturnOrderDetail.tsx:258 -#: src/pages/sales/SalesOrderDetail.tsx:297 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:304 +#: src/pages/sales/ReturnOrderDetail.tsx:276 +#: src/pages/sales/SalesOrderDetail.tsx:319 msgid "Extra Line Items" -msgstr "" +msgstr "Extra regelitems" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:337 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:346 msgid "Issue Purchase Order" -msgstr "" +msgstr "Inkooporder aanmaken" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:345 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:354 msgid "Cancel Purchase Order" -msgstr "" +msgstr "Order annuleren" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:353 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:362 msgid "Hold Purchase Order" -msgstr "" +msgstr "Order vasthouden" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:361 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:370 msgid "Complete Purchase Order" -msgstr "" +msgstr "Bestelling afronden" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:427 -#: src/pages/sales/ReturnOrderDetail.tsx:428 -#: src/pages/sales/SalesOrderDetail.tsx:468 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:425 +#: src/pages/sales/ReturnOrderDetail.tsx:424 +#: src/pages/sales/SalesOrderDetail.tsx:464 msgid "Order Actions" -msgstr "" +msgstr "Order acties" -#: src/pages/sales/ReturnOrderDetail.tsx:101 -#: src/pages/sales/SalesOrderDetail.tsx:107 -#: src/tables/sales/SalesOrderTable.tsx:124 +#: src/pages/sales/ReturnOrderDetail.tsx:92 +#: src/pages/sales/SalesOrderDetail.tsx:101 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:109 +#: src/tables/sales/SalesOrderTable.tsx:137 msgid "Customer Reference" msgstr "Klantreferentie" -#: src/pages/sales/ReturnOrderDetail.tsx:315 +#: src/pages/sales/ReturnOrderDetail.tsx:322 msgid "Edit Return Order" -msgstr "" +msgstr "Retour order bewerken" -#: src/pages/sales/ReturnOrderDetail.tsx:324 -#: src/tables/sales/ReturnOrderTable.tsx:119 -#: src/tables/sales/ReturnOrderTable.tsx:128 +#: src/pages/sales/ReturnOrderDetail.tsx:331 +#: src/tables/sales/ReturnOrderTable.tsx:142 +#: src/tables/sales/ReturnOrderTable.tsx:152 msgid "Add Return Order" msgstr "Retourorder toevoegen" -#: src/pages/sales/ReturnOrderDetail.tsx:336 +#: src/pages/sales/ReturnOrderDetail.tsx:343 msgid "Issue Return Order" -msgstr "" +msgstr "Issue retour order" -#: src/pages/sales/ReturnOrderDetail.tsx:344 +#: src/pages/sales/ReturnOrderDetail.tsx:349 +#~ msgid "Order canceled" +#~ msgstr "Order canceled" + +#: src/pages/sales/ReturnOrderDetail.tsx:351 msgid "Cancel Return Order" -msgstr "" +msgstr "Annuleer retour order" -#: src/pages/sales/ReturnOrderDetail.tsx:347 -msgid "Order canceled" -msgstr "" - -#: src/pages/sales/ReturnOrderDetail.tsx:352 +#: src/pages/sales/ReturnOrderDetail.tsx:359 msgid "Hold Return Order" -msgstr "" +msgstr "Retour order vasthouden" -#: src/pages/sales/ReturnOrderDetail.tsx:360 +#: src/pages/sales/ReturnOrderDetail.tsx:367 msgid "Complete Return Order" -msgstr "" +msgstr "Voltooi retour bestelling" #: src/pages/sales/SalesIndex.tsx:38 msgid "Customers" msgstr "Klanten" -#: src/pages/sales/SalesOrderDetail.tsx:145 +#: src/pages/sales/SalesOrderDetail.tsx:140 msgid "Completed Shipments" msgstr "Voltooide Verzendingen" -#: src/pages/sales/SalesOrderDetail.tsx:243 -msgid "Edit Sales Order" -msgstr "" - -#: src/pages/sales/SalesOrderDetail.tsx:252 -#: src/tables/sales/SalesOrderTable.tsx:84 -#: src/tables/sales/SalesOrderTable.tsx:96 -msgid "Add Sales Order" -msgstr "Voeg Verkooporder toe" - #: src/pages/sales/SalesOrderDetail.tsx:256 #~ msgid "Pending Shipments" #~ msgstr "Pending Shipments" -#: src/pages/sales/SalesOrderDetail.tsx:313 +#: src/pages/sales/SalesOrderDetail.tsx:261 +msgid "Edit Sales Order" +msgstr "Verkooporder bewerken" + +#: src/pages/sales/SalesOrderDetail.tsx:274 +#: src/tables/sales/SalesOrderTable.tsx:96 +#: src/tables/sales/SalesOrderTable.tsx:109 +msgid "Add Sales Order" +msgstr "Voeg Verkooporder toe" + +#: src/pages/sales/SalesOrderDetail.tsx:335 msgid "Shipments" -msgstr "" +msgstr "Zending" -#: src/pages/sales/SalesOrderDetail.tsx:369 +#: src/pages/sales/SalesOrderDetail.tsx:376 msgid "Issue Sales Order" -msgstr "" +msgstr "Verkooporder uitgeven" -#: src/pages/sales/SalesOrderDetail.tsx:377 +#: src/pages/sales/SalesOrderDetail.tsx:384 msgid "Cancel Sales Order" -msgstr "" +msgstr "Verkooporder annuleren" -#: src/pages/sales/SalesOrderDetail.tsx:385 +#: src/pages/sales/SalesOrderDetail.tsx:392 msgid "Hold Sales Order" -msgstr "" +msgstr "Bestelling vasthouden" -#: src/pages/sales/SalesOrderDetail.tsx:393 +#: src/pages/sales/SalesOrderDetail.tsx:400 msgid "Complete Sales Order" -msgstr "" +msgstr "Verkooporder voltooien" -#: src/pages/sales/SalesOrderDetail.tsx:432 +#: src/pages/sales/SalesOrderDetail.tsx:439 msgid "Ship Order" +msgstr "Bestelling verzenden" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:117 +#: src/tables/sales/SalesOrderShipmentTable.tsx:96 +msgid "Shipment Reference" msgstr "" -#: src/pages/stock/LocationDetail.tsx:117 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:124 +msgid "Allocated Items" +msgstr "Toegewezen items" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:133 +msgid "Tracking Number" +msgstr "Tracking nummer" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:141 +msgid "Invoice Number" +msgstr "Factuur nummer" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:149 +#: src/tables/ColumnRenderers.tsx:242 +#: src/tables/sales/SalesOrderAllocationTable.tsx:142 +#: src/tables/sales/SalesOrderShipmentTable.tsx:115 +msgid "Shipment Date" +msgstr "Verzenddatum" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:157 +#: src/tables/sales/SalesOrderShipmentTable.tsx:119 +msgid "Delivery Date" +msgstr "Levering datum" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:204 +msgid "Shipment Details" +msgstr "Verzending details" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:210 +msgid "Assigned Items" +msgstr "Toegewezen items" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:241 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:317 +#: src/tables/sales/SalesOrderShipmentTable.tsx:75 +msgid "Edit Shipment" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:248 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:322 +#: src/tables/sales/SalesOrderShipmentTable.tsx:67 +msgid "Cancel Shipment" +msgstr "Verzending annuleren" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:261 +#: src/tables/sales/SalesOrderShipmentTable.tsx:83 +#: src/tables/sales/SalesOrderShipmentTable.tsx:151 +msgid "Complete Shipment" +msgstr "Zending voltooien" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:276 +#: src/tables/part/PartPurchaseOrdersTable.tsx:121 +msgid "Pending" +msgstr "In behandeling" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:277 +#: src/tables/sales/SalesOrderAllocationTable.tsx:148 +#: src/tables/sales/SalesOrderShipmentTable.tsx:108 +#: src/tables/sales/SalesOrderShipmentTable.tsx:197 +msgid "Shipped" +msgstr "Verzonden" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:279 +#: src/tables/sales/SalesOrderShipmentTable.tsx:202 +msgid "Delivered" +msgstr "Geleverd" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:293 +msgid "Send Shipment" +msgstr "Verzending verzenden" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:312 +msgid "Shipment Actions" +msgstr "Verzending acties" + +#: src/pages/stock/LocationDetail.tsx:111 msgid "Parent Location" -msgstr "" +msgstr "Bovenliggende locatie" -#: src/pages/stock/LocationDetail.tsx:135 +#: src/pages/stock/LocationDetail.tsx:129 msgid "Sublocations" -msgstr "" +msgstr "Sub locatie" -#: src/pages/stock/LocationDetail.tsx:147 +#: src/pages/stock/LocationDetail.tsx:141 #: src/tables/stock/StockLocationTable.tsx:54 msgid "External" -msgstr "" +msgstr "Extern" -#: src/pages/stock/LocationDetail.tsx:153 +#: src/pages/stock/LocationDetail.tsx:147 #: src/tables/stock/StockLocationTable.tsx:63 msgid "Location Type" -msgstr "" +msgstr "Locatie type" -#: src/pages/stock/LocationDetail.tsx:164 +#: src/pages/stock/LocationDetail.tsx:158 msgid "Top level stock location" -msgstr "" +msgstr "Locatie voorraad topniveau" -#: src/pages/stock/LocationDetail.tsx:175 +#: src/pages/stock/LocationDetail.tsx:169 msgid "Location Details" -msgstr "" +msgstr "Locatie gegevens" -#: src/pages/stock/LocationDetail.tsx:201 +#: src/pages/stock/LocationDetail.tsx:195 msgid "Default Parts" -msgstr "" +msgstr "Standaard onderdelen" -#: src/pages/stock/LocationDetail.tsx:220 -#: src/pages/stock/LocationDetail.tsx:351 +#: src/pages/stock/LocationDetail.tsx:214 +#: src/pages/stock/LocationDetail.tsx:336 #: src/tables/stock/StockLocationTable.tsx:123 msgid "Edit Stock Location" -msgstr "" +msgstr "Voorraadlocatie bewerken" -#: src/pages/stock/LocationDetail.tsx:241 -#: src/pages/stock/LocationDetail.tsx:356 +#: src/pages/stock/LocationDetail.tsx:235 +#: src/pages/stock/LocationDetail.tsx:341 msgid "Delete Stock Location" -msgstr "" +msgstr "Voorraadlocatie verwijderen" + +#: src/pages/stock/LocationDetail.tsx:238 +msgid "Items Action" +msgstr "Artikel actie" + +#: src/pages/stock/LocationDetail.tsx:239 +msgid "Action for stock items in this location" +msgstr "Actie voor voorraad items op deze locatie" #: src/pages/stock/LocationDetail.tsx:244 -msgid "Items Action" -msgstr "" +msgid "Child Locations Action" +msgstr "Acties voor onderliggende locaties" #: src/pages/stock/LocationDetail.tsx:245 -msgid "Action for stock items in this location" -msgstr "" - -#: src/pages/stock/LocationDetail.tsx:250 -msgid "Child Locations Action" -msgstr "" - -#: src/pages/stock/LocationDetail.tsx:251 msgid "Action for child locations in this location" -msgstr "" +msgstr "Actie voor onderliggende locaties in deze locatie" -#: src/pages/stock/LocationDetail.tsx:346 +#: src/pages/stock/LocationDetail.tsx:332 msgid "Location Actions" -msgstr "" +msgstr "Locatie acties" -#: src/pages/stock/StockDetail.tsx:108 +#: src/pages/stock/StockDetail.tsx:116 msgid "Base Part" -msgstr "" - -#: src/pages/stock/StockDetail.tsx:115 -msgid "Stock Status" -msgstr "" +msgstr "Basis onderdeel" #: src/pages/stock/StockDetail.tsx:155 #~ msgid "Link custom barcode to stock item" @@ -5312,117 +6285,183 @@ msgstr "" #~ msgid "Unlink custom barcode from stock item" #~ msgstr "Unlink custom barcode from stock item" -#: src/pages/stock/StockDetail.tsx:188 -msgid "Installed In" -msgstr "" - -#: src/pages/stock/StockDetail.tsx:204 -msgid "Consumed By" -msgstr "" +#: src/pages/stock/StockDetail.tsx:178 +msgid "Allocated to Orders" +msgstr "Toegewezen aan orders" #: src/pages/stock/StockDetail.tsx:205 #~ msgid "Edit stock item" #~ msgstr "Edit stock item" -#: src/pages/stock/StockDetail.tsx:213 -#: src/tables/build/BuildAllocatedStockTable.tsx:64 -#: src/tables/stock/StockTrackingTable.tsx:96 -msgid "Build Order" -msgstr "" +#: src/pages/stock/StockDetail.tsx:209 +msgid "Installed In" +msgstr "Geïnstalleerd in" #: src/pages/stock/StockDetail.tsx:217 #~ msgid "Delete stock item" #~ msgstr "Delete stock item" -#: src/pages/stock/StockDetail.tsx:291 +#: src/pages/stock/StockDetail.tsx:226 +msgid "Parent Item" +msgstr "Bovenliggend Item" + +#: src/pages/stock/StockDetail.tsx:230 +msgid "Parent stock item" +msgstr "Bovenliggende voorraad item" + +#: src/pages/stock/StockDetail.tsx:236 +msgid "Consumed By" +msgstr "Verbruikt door" + +#: src/pages/stock/StockDetail.tsx:245 +#: src/tables/build/BuildAllocatedStockTable.tsx:77 +#: src/tables/stock/StockTrackingTable.tsx:100 +msgid "Build Order" +msgstr "Productieorder" + +#: src/pages/stock/StockDetail.tsx:283 +#: src/tables/stock/StockItemTable.tsx:270 +msgid "Expiry Date" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:414 msgid "Stock Details" -msgstr "" +msgstr "Voorraad details" -#: src/pages/stock/StockDetail.tsx:297 +#: src/pages/stock/StockDetail.tsx:420 msgid "Stock Tracking" -msgstr "" - -#: src/pages/stock/StockDetail.tsx:350 -msgid "Test Data" -msgstr "" - -#: src/pages/stock/StockDetail.tsx:364 -msgid "Installed Items" -msgstr "" - -#: src/pages/stock/StockDetail.tsx:371 -msgid "Child Items" -msgstr "" - -#: src/pages/stock/StockDetail.tsx:425 -msgid "Edit Stock Item" -msgstr "" +msgstr "Voorraad bijhouden" #: src/pages/stock/StockDetail.tsx:433 #~ msgid "Duplicate stock item" #~ msgstr "Duplicate stock item" -#: src/pages/stock/StockDetail.tsx:452 +#: src/pages/stock/StockDetail.tsx:475 +msgid "Test Data" +msgstr "Test gegevens" + +#: src/pages/stock/StockDetail.tsx:489 +msgid "Installed Items" +msgstr "Geïnstalleerde items" + +#: src/pages/stock/StockDetail.tsx:496 +msgid "Child Items" +msgstr "Onderliggende artikelen" + +#: src/pages/stock/StockDetail.tsx:545 +msgid "Edit Stock Item" +msgstr "Bewerk voorraadartikel" + +#: src/pages/stock/StockDetail.tsx:572 msgid "Delete Stock Item" -msgstr "" +msgstr "Voorraad artikel verwijderen" -#: src/pages/stock/StockDetail.tsx:504 +#: src/pages/stock/StockDetail.tsx:604 +msgid "Serialize Stock Item" +msgstr "Voorraad item serie nummers geven" + +#: src/pages/stock/StockDetail.tsx:617 +msgid "Stock item serialized" +msgstr "Voorraad item geserialiseerd" + +#: src/pages/stock/StockDetail.tsx:623 +msgid "Return Stock Item" +msgstr "Retour voorraad item" + +#: src/pages/stock/StockDetail.tsx:626 +msgid "Return this item into stock. This will remove the customer assignment." +msgstr "Retourneer dit item naar voorraad. Dit zal de toewijzing van de klant verwijderen." + +#: src/pages/stock/StockDetail.tsx:636 +msgid "Item returned to stock" +msgstr "Item teruggestuurd naar voorraad" + +#: src/pages/stock/StockDetail.tsx:666 msgid "Stock Operations" -msgstr "" +msgstr "Voorraad activiteiten" -#: src/pages/stock/StockDetail.tsx:509 +#: src/pages/stock/StockDetail.tsx:671 msgid "Count stock" -msgstr "" +msgstr "Tellen voorraad" -#: src/pages/stock/StockDetail.tsx:519 -#: src/tables/stock/StockItemTable.tsx:449 -msgid "Add stock" -msgstr "" +#: src/pages/stock/StockDetail.tsx:671 +#: src/tables/stock/StockItemTable.tsx:452 +#~ msgid "Add stock" +#~ msgstr "Add stock" -#: src/pages/stock/StockDetail.tsx:527 -#: src/tables/stock/StockItemTable.tsx:458 -msgid "Remove stock" -msgstr "" +#: src/pages/stock/StockDetail.tsx:680 +#: src/tables/stock/StockItemTable.tsx:461 +#~ msgid "Remove stock" +#~ msgstr "Remove stock" -#: src/pages/stock/StockDetail.tsx:534 +#: src/pages/stock/StockDetail.tsx:698 +#: src/tables/stock/StockItemTable.tsx:481 +#~ msgid "Transfer stock" +#~ msgstr "Transfer stock" + +#: src/pages/stock/StockDetail.tsx:699 +msgid "Serialize" +msgstr "Serienummer geven" + +#: src/pages/stock/StockDetail.tsx:700 +msgid "Serialize stock" +msgstr "Voorraad serie nummer geven" + +#: src/pages/stock/StockDetail.tsx:711 msgid "Transfer" -msgstr "" +msgstr "Verplaatsen" -#: src/pages/stock/StockDetail.tsx:535 -#: src/tables/stock/StockItemTable.tsx:478 -msgid "Transfer stock" -msgstr "" +#: src/pages/stock/StockDetail.tsx:722 +msgid "Return" +msgstr "Terug" -#: src/pages/stock/StockDetail.tsx:546 +#: src/pages/stock/StockDetail.tsx:723 +msgid "Return from customer" +msgstr "Geretourneerd door klant" + +#: src/pages/stock/StockDetail.tsx:738 msgid "Stock Item Actions" -msgstr "" +msgstr "Voorraad artikel acties" -#: src/tables/ColumnRenderers.tsx:30 +#: src/pages/stock/StockDetail.tsx:808 +msgid "Stale" +msgstr "Verouderd" + +#: src/pages/stock/StockDetail.tsx:814 +msgid "Expired" +msgstr "Verlopen" + +#: src/pages/stock/StockDetail.tsx:820 +msgid "Unavailable" +msgstr "Niet beschikbaar" + +#: src/tables/ColumnRenderers.tsx:36 msgid "Part is not active" msgstr "Onderdeel is niet actief" -#: src/tables/ColumnRenderers.tsx:35 -msgid "Part is locked" -msgstr "" +#: src/tables/ColumnRenderers.tsx:41 +#: src/tables/bom/BomTable.tsx:542 +#: src/tables/part/PartParameterTable.tsx:193 +#: src/tables/part/PartTestTemplateTable.tsx:253 +msgid "Part is Locked" +msgstr "Onderdeel is vergrendeld" -#: src/tables/ColumnRenderers.tsx:57 +#: src/tables/ColumnRenderers.tsx:41 +#~ msgid "Part is locked" +#~ msgstr "Part is locked" + +#: src/tables/ColumnRenderers.tsx:46 +msgid "You are subscribed to notifications for this part" +msgstr "U bent geabonneerd op meldingen van dit onderdeel" + +#: src/tables/ColumnRenderers.tsx:68 msgid "No location set" -msgstr "" - -#: src/tables/ColumnRenderers.tsx:228 -#: src/tables/sales/SalesOrderShipmentTable.tsx:79 -msgid "Shipment Date" -msgstr "" - -#: src/tables/ColumnRenderers.tsx:248 -#: src/tables/settings/CurrencyTable.tsx:23 -msgid "Currency" -msgstr "" +msgstr "Geen locatie ingesteld" #: src/tables/ColumnSelect.tsx:16 #: src/tables/ColumnSelect.tsx:23 msgid "Select Columns" -msgstr "" +msgstr "Kolommen selecteren" #: src/tables/DownloadAction.tsx:13 #~ msgid "Excel" @@ -5430,7 +6469,7 @@ msgstr "" #: src/tables/DownloadAction.tsx:21 msgid "CSV" -msgstr "" +msgstr "CSV" #: src/tables/DownloadAction.tsx:21 #~ msgid "Download selected data" @@ -5438,11 +6477,11 @@ msgstr "" #: src/tables/DownloadAction.tsx:22 msgid "TSV" -msgstr "" +msgstr "TSV" #: src/tables/DownloadAction.tsx:23 msgid "Excel (.xlsx)" -msgstr "" +msgstr "Excel (.xlsx)" #: src/tables/DownloadAction.tsx:24 #~ msgid "Excel (.xls)" @@ -5450,112 +6489,125 @@ msgstr "" #: src/tables/DownloadAction.tsx:36 msgid "Download Data" -msgstr "" +msgstr "Download gegevens" -#: src/tables/Filter.tsx:89 -#: src/tables/build/BuildOrderTable.tsx:135 +#: src/tables/Filter.tsx:101 msgid "Assigned to me" -msgstr "" +msgstr "Toegewezen aan mij" -#: src/tables/Filter.tsx:90 -#: src/tables/build/BuildOrderTable.tsx:136 +#: src/tables/Filter.tsx:102 msgid "Show orders assigned to me" -msgstr "" - -#: src/tables/Filter.tsx:97 -msgid "Outstanding" -msgstr "" - -#: src/tables/Filter.tsx:98 -msgid "Show outstanding orders" -msgstr "" - -#: src/tables/Filter.tsx:105 -#: src/tables/build/BuildOrderTable.tsx:128 -msgid "Overdue" -msgstr "" +msgstr "Toon aan mij toegewezen orders" #: src/tables/Filter.tsx:106 -msgid "Show overdue orders" -msgstr "" +#~ msgid "Show overdue orders" +#~ msgstr "Show overdue orders" -#: src/tables/FilterSelectDrawer.tsx:51 +#: src/tables/Filter.tsx:109 +#: src/tables/build/BuildOrderTable.tsx:120 +#: src/tables/sales/SalesOrderAllocationTable.tsx:59 +msgid "Outstanding" +msgstr "Openstaand" + +#: src/tables/Filter.tsx:110 +msgid "Show outstanding items" +msgstr "Uitstaande items tonen" + +#: src/tables/Filter.tsx:117 +msgid "Overdue" +msgstr "Achterstallig" + +#: src/tables/Filter.tsx:118 +msgid "Show overdue items" +msgstr "Achterstallige items tonen" + +#: src/tables/Filter.tsx:125 +msgid "Minimum Date" +msgstr "Minimale datum" + +#: src/tables/Filter.tsx:126 +msgid "Show items after this date" +msgstr "Items weergeven na deze datum" + +#: src/tables/Filter.tsx:134 +msgid "Maximum Date" +msgstr "Maximale datum" + +#: src/tables/Filter.tsx:135 +msgid "Show items before this date" +msgstr "Items voor deze datum weergeven" + +#: src/tables/Filter.tsx:144 +msgid "Has Project Code" +msgstr "Heeft projectcode" + +#: src/tables/Filter.tsx:145 +msgid "Show orders with an assigned project code" +msgstr "Toon bestellingen met toegewezen projectcode" + +#: src/tables/FilterSelectDrawer.tsx:55 msgid "Remove filter" -msgstr "" +msgstr "Filter verwijderen" -#: src/tables/FilterSelectDrawer.tsx:130 +#: src/tables/FilterSelectDrawer.tsx:159 msgid "Select filter" -msgstr "" +msgstr "Filter selecteren" -#: src/tables/FilterSelectDrawer.tsx:131 +#: src/tables/FilterSelectDrawer.tsx:160 msgid "Filter" -msgstr "" +msgstr "Filter" -#: src/tables/FilterSelectDrawer.tsx:138 -#: src/tables/build/BuildOrderTestTable.tsx:134 -#: src/tables/purchasing/ManufacturerPartParameterTable.tsx:38 -#: src/tables/stock/StockItemTestResultTable.tsx:186 -msgid "Value" -msgstr "" +#: src/tables/FilterSelectDrawer.tsx:168 +msgid "Select date value" +msgstr "Selecteer een datumwaarde" -#: src/tables/FilterSelectDrawer.tsx:140 +#: src/tables/FilterSelectDrawer.tsx:176 msgid "Select filter value" -msgstr "" +msgstr "Selecteer filterwaarde" -#: src/tables/FilterSelectDrawer.tsx:183 +#: src/tables/FilterSelectDrawer.tsx:219 +#: src/tables/InvenTreeTableHeader.tsx:214 msgid "Table Filters" -msgstr "" +msgstr "Tabel filters" -#: src/tables/FilterSelectDrawer.tsx:215 +#: src/tables/FilterSelectDrawer.tsx:251 msgid "Add Filter" -msgstr "" +msgstr "Filter toevoegen" -#: src/tables/FilterSelectDrawer.tsx:224 +#: src/tables/FilterSelectDrawer.tsx:260 msgid "Clear Filters" -msgstr "" +msgstr "Filters wissen" -#: src/tables/InvenTreeTable.tsx:123 -#: src/tables/InvenTreeTable.tsx:431 -#: src/tables/InvenTreeTable.tsx:455 +#: src/tables/InvenTreeTable.tsx:96 +#: src/tables/InvenTreeTable.tsx:417 +#: src/tables/InvenTreeTable.tsx:441 msgid "No records found" -msgstr "" +msgstr "Geen gegevens gevonden" + +#: src/tables/InvenTreeTable.tsx:452 +msgid "Server returned incorrect data type" +msgstr "Server heeft onjuist gegevenstype teruggestuurd" + +#: src/tables/InvenTreeTable.tsx:460 +msgid "Bad request" +msgstr "Slecht verzoek" + +#: src/tables/InvenTreeTable.tsx:463 +msgid "Unauthorized" +msgstr "Niet-geautoriseerd" #: src/tables/InvenTreeTable.tsx:466 -msgid "Server returned incorrect data type" -msgstr "" - -#: src/tables/InvenTreeTable.tsx:474 -msgid "Bad request" -msgstr "" - -#: src/tables/InvenTreeTable.tsx:477 -msgid "Unauthorized" -msgstr "" - -#: src/tables/InvenTreeTable.tsx:480 msgid "Forbidden" -msgstr "" +msgstr "Niet toegestaan." -#: src/tables/InvenTreeTable.tsx:483 +#: src/tables/InvenTreeTable.tsx:469 msgid "Not found" -msgstr "" +msgstr "Niet gevonden" #: src/tables/InvenTreeTable.tsx:510 #~ msgid "Are you sure you want to delete the selected records?" #~ msgstr "Are you sure you want to delete the selected records?" -#: src/tables/InvenTreeTable.tsx:525 -msgid "Delete Selected Items" -msgstr "" - -#: src/tables/InvenTreeTable.tsx:529 -msgid "Are you sure you want to delete the selected items?" -msgstr "" - -#: src/tables/InvenTreeTable.tsx:531 -msgid "This action cannot be undone!" -msgstr "" - #: src/tables/InvenTreeTable.tsx:535 #~ msgid "Deleted records" #~ msgstr "Deleted records" @@ -5568,31 +6620,56 @@ msgstr "" #~ msgid "Failed to delete records" #~ msgstr "Failed to delete records" +#: src/tables/InvenTreeTable.tsx:552 +#~ msgid "This action cannot be undone!" +#~ msgstr "This action cannot be undone!" + #: src/tables/InvenTreeTable.tsx:594 #: src/tables/InvenTreeTable.tsx:595 #~ msgid "Print actions" #~ msgstr "Print actions" -#: src/tables/InvenTreeTable.tsx:618 -#: src/tables/InvenTreeTable.tsx:619 -msgid "Barcode actions" +#: src/tables/InvenTreeTable.tsx:655 +#: src/tables/InvenTreeTable.tsx:656 +#~ msgid "Barcode actions" +#~ msgstr "Barcode actions" + +#: src/tables/InvenTreeTable.tsx:712 +#~ msgid "Table filters" +#~ msgstr "Table filters" + +#: src/tables/InvenTreeTable.tsx:725 +#~ msgid "Clear custom query filters" +#~ msgstr "Clear custom query filters" + +#: src/tables/InvenTreeTableHeader.tsx:98 +msgid "Delete Selected Items" +msgstr "Geselecteerde items verwijderen" + +#: src/tables/InvenTreeTableHeader.tsx:102 +msgid "Are you sure you want to delete the selected items?" +msgstr "Weet u zeker dat u de geselecteerde items wilt verwijderen?" + +#: src/tables/InvenTreeTableHeader.tsx:104 +#: src/tables/plugin/PluginListTable.tsx:305 +msgid "This action cannot be undone" +msgstr "Deze actie kan niet ongedaan worden gemaakt" + +#: src/tables/InvenTreeTableHeader.tsx:142 +msgid "Custom table filters are active" msgstr "" -#: src/tables/InvenTreeTable.tsx:628 +#: src/tables/InvenTreeTableHeader.tsx:169 msgid "Delete selected records" -msgstr "" +msgstr "Verwijder de geselecteerde records" -#: src/tables/InvenTreeTable.tsx:649 +#: src/tables/InvenTreeTableHeader.tsx:188 msgid "Refresh data" -msgstr "" - -#: src/tables/InvenTreeTable.tsx:675 -msgid "Table filters" -msgstr "" +msgstr "Gegevens vernieuwen" #: src/tables/TableHoverCard.tsx:35 -msgid "item-{idx}" -msgstr "" +#~ msgid "item-{idx}" +#~ msgstr "item-{idx}" #: src/tables/UploadAction.tsx:7 #~ msgid "Upload Data" @@ -5600,53 +6677,58 @@ msgstr "" #: src/tables/bom/BomTable.tsx:95 msgid "This BOM item is defined for a different parent" -msgstr "" +msgstr "Deze stuklijst is gedefinieerd voor een ander bovenliggende item" #: src/tables/bom/BomTable.tsx:110 msgid "Part Information" -msgstr "" +msgstr "Informatie over onderdeel" #: src/tables/bom/BomTable.tsx:212 -#: src/tables/build/BuildLineTable.tsx:126 +#: src/tables/build/BuildLineTable.tsx:257 #: src/tables/part/PartTable.tsx:125 msgid "External stock" -msgstr "" +msgstr "Externe voorraad" #: src/tables/bom/BomTable.tsx:220 -#: src/tables/build/BuildLineTable.tsx:89 +#: src/tables/build/BuildLineTable.tsx:220 msgid "Includes substitute stock" -msgstr "" +msgstr "Inclusief vervangend voorraad" #: src/tables/bom/BomTable.tsx:229 -#: src/tables/build/BuildLineTable.tsx:99 -#: src/tables/sales/SalesOrderLineItemTable.tsx:127 +#: src/tables/build/BuildLineTable.tsx:230 +#: src/tables/sales/SalesOrderLineItemTable.tsx:135 msgid "Includes variant stock" -msgstr "" +msgstr "Bevat variant voorraad" + +#: src/tables/bom/BomTable.tsx:245 +#: src/tables/part/PartTable.tsx:92 +msgid "Building" +msgstr "Bouwen" #: src/tables/bom/BomTable.tsx:254 #: src/tables/part/PartTable.tsx:153 -#: src/tables/sales/SalesOrderLineItemTable.tsx:150 -#: src/tables/stock/StockItemTable.tsx:216 +#: src/tables/sales/SalesOrderLineItemTable.tsx:158 +#: src/tables/stock/StockItemTable.tsx:206 msgid "Stock Information" -msgstr "" +msgstr "Voorraad informatie" #: src/tables/bom/BomTable.tsx:285 -#: src/tables/build/BuildLineTable.tsx:248 +#: src/tables/build/BuildLineTable.tsx:409 msgid "Consumable item" -msgstr "" +msgstr "Verbruiksartikel" #: src/tables/bom/BomTable.tsx:288 msgid "No available stock" -msgstr "" +msgstr "Geen beschikbare voorraad" #: src/tables/bom/BomTable.tsx:301 #~ msgid "Create BOM Item" #~ msgstr "Create BOM Item" #: src/tables/bom/BomTable.tsx:306 -#: src/tables/build/BuildLineTable.tsx:69 +#: src/tables/build/BuildLineTable.tsx:200 msgid "Show testable items" -msgstr "" +msgstr "Getest items weergeven" #: src/tables/bom/BomTable.tsx:310 #~ msgid "Show asssmbled items" @@ -5654,28 +6736,29 @@ msgstr "" #: src/tables/bom/BomTable.tsx:311 msgid "Show trackable items" -msgstr "" +msgstr "Traceerbare items tonen" #: src/tables/bom/BomTable.tsx:316 -#: src/tables/build/BuildLineTable.tsx:64 +#: src/tables/build/BuildLineTable.tsx:195 msgid "Show assembled items" -msgstr "" +msgstr "Gecreëerde items weergeven" #: src/tables/bom/BomTable.tsx:321 +#: src/tables/build/BuildLineTable.tsx:180 msgid "Show items with available stock" -msgstr "" +msgstr "Toon artikelen met beschikbare voorraad" #: src/tables/bom/BomTable.tsx:326 msgid "Show items on order" -msgstr "" +msgstr "Artikelen op bestelling tonen" #: src/tables/bom/BomTable.tsx:330 msgid "Validated" -msgstr "" +msgstr "Goedgekeurd" #: src/tables/bom/BomTable.tsx:331 msgid "Show validated items" -msgstr "" +msgstr "Goedgekeurde items weergeven" #: src/tables/bom/BomTable.tsx:331 #~ msgid "Edit Bom Item" @@ -5688,31 +6771,31 @@ msgstr "" #: src/tables/bom/BomTable.tsx:335 #: src/tables/bom/UsedInTable.tsx:74 msgid "Inherited" -msgstr "" +msgstr "Overgenomen" #: src/tables/bom/BomTable.tsx:336 #: src/tables/bom/UsedInTable.tsx:75 msgid "Show inherited items" -msgstr "" +msgstr "Toon overgenomen items" #: src/tables/bom/BomTable.tsx:340 msgid "Allow Variants" -msgstr "" +msgstr "Varianten toestaan" #: src/tables/bom/BomTable.tsx:341 msgid "Show items which allow variant substitution" -msgstr "" +msgstr "Toon items die variant vervanging toestaan" #: src/tables/bom/BomTable.tsx:345 #: src/tables/bom/UsedInTable.tsx:79 -#: src/tables/build/BuildLineTable.tsx:58 +#: src/tables/build/BuildLineTable.tsx:189 msgid "Optional" -msgstr "" +msgstr "Optioneel" #: src/tables/bom/BomTable.tsx:346 #: src/tables/bom/UsedInTable.tsx:80 msgid "Show optional items" -msgstr "" +msgstr "Optionele items weergeven" #: src/tables/bom/BomTable.tsx:348 #~ msgid "Delete Bom Item" @@ -5723,13 +6806,13 @@ msgstr "" #~ msgstr "Bom item deleted" #: src/tables/bom/BomTable.tsx:350 -#: src/tables/build/BuildLineTable.tsx:53 +#: src/tables/build/BuildLineTable.tsx:184 msgid "Consumable" -msgstr "" +msgstr "Verbruiksartikelen" #: src/tables/bom/BomTable.tsx:351 msgid "Show consumable items" -msgstr "" +msgstr "Toon verbruikte items" #: src/tables/bom/BomTable.tsx:351 #~ msgid "Are you sure you want to remove this BOM item?" @@ -5742,688 +6825,769 @@ msgstr "" #: src/tables/bom/BomTable.tsx:355 #: src/tables/part/PartTable.tsx:282 msgid "Has Pricing" -msgstr "" +msgstr "Heeft prijzen" #: src/tables/bom/BomTable.tsx:356 msgid "Show items with pricing" -msgstr "" +msgstr "Toon items met prijzen" #: src/tables/bom/BomTable.tsx:378 -#: src/tables/bom/BomTable.tsx:511 +#: src/tables/bom/BomTable.tsx:512 msgid "Import BOM Data" -msgstr "" +msgstr "Stuklijst gegevens importeren" #: src/tables/bom/BomTable.tsx:388 -#: src/tables/bom/BomTable.tsx:523 +#: src/tables/bom/BomTable.tsx:526 msgid "Add BOM Item" -msgstr "" +msgstr "Stuklijst BOM item toevoegen" #: src/tables/bom/BomTable.tsx:393 msgid "BOM item created" -msgstr "" +msgstr "Stuklijst BOM item aangemaakt" #: src/tables/bom/BomTable.tsx:400 msgid "Edit BOM Item" -msgstr "" +msgstr "Edit stuklijst BOM Item" #: src/tables/bom/BomTable.tsx:402 msgid "BOM item updated" -msgstr "" +msgstr "Stuklijst BOM item bijgewerkt" #: src/tables/bom/BomTable.tsx:409 msgid "Delete BOM Item" -msgstr "" +msgstr "Verwijder stuklijst BOM Item" #: src/tables/bom/BomTable.tsx:410 msgid "BOM item deleted" -msgstr "" +msgstr "Stuklijst BOM item verwijderd" #: src/tables/bom/BomTable.tsx:423 #: src/tables/bom/BomTable.tsx:426 -#: src/tables/bom/BomTable.tsx:517 +#: src/tables/bom/BomTable.tsx:519 msgid "Validate BOM" -msgstr "" +msgstr "Valideren stuklijst BOM" #: src/tables/bom/BomTable.tsx:427 msgid "Do you want to validate the bill of materials for this assembly?" -msgstr "" +msgstr "Wil je de materiaal rekening voor deze stuklijst valideren?" #: src/tables/bom/BomTable.tsx:430 msgid "BOM validated" -msgstr "" +msgstr "Stuklijst BOM gecontroleerd" #: src/tables/bom/BomTable.tsx:442 msgid "BOM item validated" -msgstr "" +msgstr "Stuklijst BOM item gevalideerd" #: src/tables/bom/BomTable.tsx:451 msgid "Failed to validate BOM item" -msgstr "" +msgstr "Mislukt om BOM-item te valideren" #: src/tables/bom/BomTable.tsx:463 msgid "View BOM" -msgstr "" +msgstr "Bekijk stuklijst BOM" #: src/tables/bom/BomTable.tsx:472 msgid "Validate BOM Line" -msgstr "" +msgstr "BOM-regel valideren" #: src/tables/bom/BomTable.tsx:489 msgid "Edit Substitutes" -msgstr "" +msgstr "Vervangingen bewerken" -#: src/tables/bom/BomTable.tsx:539 -#: src/tables/part/PartParameterTable.tsx:193 -#: src/tables/part/PartTestTemplateTable.tsx:252 -msgid "Part is Locked" -msgstr "" - -#: src/tables/bom/BomTable.tsx:544 +#: src/tables/bom/BomTable.tsx:547 msgid "Bill of materials cannot be edited, as the part is locked" -msgstr "" +msgstr "Factuur van materialen kan niet worden bewerkt, omdat het onderdeel is vergrendeld" #: src/tables/bom/UsedInTable.tsx:33 -#: src/tables/build/BuildLineTable.tsx:63 +#: src/tables/build/BuildLineTable.tsx:194 #: src/tables/part/ParametricPartTable.tsx:233 #: src/tables/part/PartTable.tsx:190 -#: src/tables/stock/StockItemTable.tsx:300 +#: src/tables/stock/StockItemTable.tsx:304 msgid "Assembly" -msgstr "" +msgstr "Assemblage" #: src/tables/bom/UsedInTable.tsx:85 msgid "Show active assemblies" -msgstr "" +msgstr "Toon actieve assemblage orders" #: src/tables/bom/UsedInTable.tsx:89 #: src/tables/part/PartTable.tsx:214 #: src/tables/part/PartVariantTable.tsx:30 msgid "Trackable" -msgstr "" +msgstr "Volgbaar" #: src/tables/bom/UsedInTable.tsx:90 msgid "Show trackable assemblies" -msgstr "" +msgstr "Traceerbare items tonen" -#: src/tables/build/BuildAllocatedStockTable.tsx:54 +#: src/tables/build/BuildAllocatedStockTable.tsx:56 msgid "Allocated to Output" -msgstr "" +msgstr "Toegewezen aan uitvoer" -#: src/tables/build/BuildAllocatedStockTable.tsx:55 +#: src/tables/build/BuildAllocatedStockTable.tsx:57 msgid "Show items allocated to a build output" -msgstr "" +msgstr "Toon items toegewezen aan bouwuitvoer" -#: src/tables/build/BuildAllocatedStockTable.tsx:76 -#: src/tables/part/PartPurchaseOrdersTable.tsx:125 -#: src/tables/sales/SalesOrderAllocationTable.tsx:62 +#: src/tables/build/BuildAllocatedStockTable.tsx:65 +#: src/tables/build/BuildOrderTable.tsx:159 +#: src/tables/part/PartParameterTable.tsx:212 +#: src/tables/part/PartPurchaseOrdersTable.tsx:138 +#: src/tables/sales/ReturnOrderTable.tsx:84 +#: src/tables/sales/SalesOrderAllocationTable.tsx:68 +#: src/tables/sales/SalesOrderTable.tsx:84 +#: src/tables/stock/StockItemTable.tsx:339 +msgid "Include Variants" +msgstr "Inclusief varianten" + +#: src/tables/build/BuildAllocatedStockTable.tsx:66 +#: src/tables/build/BuildOrderTable.tsx:160 +#: src/tables/part/PartPurchaseOrdersTable.tsx:139 +#: src/tables/sales/ReturnOrderTable.tsx:85 +#: src/tables/sales/SalesOrderAllocationTable.tsx:69 +#: src/tables/sales/SalesOrderTable.tsx:85 +msgid "Include orders for part variants" +msgstr "Bestellingen voor onderdelen varianten opnemen" + +#: src/tables/build/BuildAllocatedStockTable.tsx:89 +#: src/tables/part/PartPurchaseOrdersTable.tsx:131 +#: src/tables/sales/SalesOrderAllocationTable.tsx:93 msgid "Order Status" -msgstr "" +msgstr "Status van bestelling" -#: src/tables/build/BuildAllocatedStockTable.tsx:96 -#: src/tables/sales/SalesOrderAllocationTable.tsx:75 +#: src/tables/build/BuildAllocatedStockTable.tsx:117 +#: src/tables/sales/SalesOrderAllocationTable.tsx:126 msgid "Allocated Quantity" -msgstr "" +msgstr "Toegewezen hoeveelheid" -#: src/tables/build/BuildAllocatedStockTable.tsx:116 -#: src/tables/sales/SalesOrderAllocationTable.tsx:94 +#: src/tables/build/BuildAllocatedStockTable.tsx:137 +#: src/tables/sales/SalesOrderAllocationTable.tsx:120 msgid "Available Quantity" +msgstr "Beschikbare hoeveelheid" + +#: src/tables/build/BuildAllocatedStockTable.tsx:164 +#: src/tables/build/BuildLineTable.tsx:513 +msgid "Edit Stock Allocation" msgstr "" -#: src/tables/build/BuildAllocatedStockTable.tsx:126 -#: src/tables/build/BuildOrderTestTable.tsx:176 -#: src/tables/build/BuildOrderTestTable.tsx:200 -#: src/tables/build/BuildOutputTable.tsx:312 -msgid "Build Output" -msgstr "" +#: src/tables/build/BuildAllocatedStockTable.tsx:164 +#~ msgid "Edit Build Item" +#~ msgstr "Edit Build Item" -#: src/tables/build/BuildAllocatedStockTable.tsx:143 -msgid "Edit Build Item" -msgstr "" +#: src/tables/build/BuildAllocatedStockTable.tsx:174 +#~ msgid "Delete Build Item" +#~ msgstr "Delete Build Item" -#: src/tables/build/BuildAllocatedStockTable.tsx:153 -msgid "Delete Build Item" -msgstr "" - -#: src/tables/build/BuildLineTable.tsx:43 -#: src/tables/stock/StockItemTable.tsx:305 -msgid "Allocated" -msgstr "" - -#: src/tables/build/BuildLineTable.tsx:44 -msgid "Show allocated lines" -msgstr "" - -#: src/tables/build/BuildLineTable.tsx:49 -msgid "Show lines with available stock" -msgstr "" - -#: src/tables/build/BuildLineTable.tsx:54 -msgid "Show consumable lines" +#: src/tables/build/BuildAllocatedStockTable.tsx:177 +#: src/tables/build/BuildLineTable.tsx:526 +msgid "Delete Stock Allocation" msgstr "" #: src/tables/build/BuildLineTable.tsx:59 -msgid "Show optional lines" -msgstr "" +#~ msgid "Show lines with available stock" +#~ msgstr "Show lines with available stock" -#: src/tables/build/BuildLineTable.tsx:68 +#: src/tables/build/BuildLineTable.tsx:175 +msgid "Show allocated lines" +msgstr "Toon toegekende regels" + +#: src/tables/build/BuildLineTable.tsx:185 +msgid "Show consumable lines" +msgstr "Toon verbruikte items" + +#: src/tables/build/BuildLineTable.tsx:190 +msgid "Show optional lines" +msgstr "Toon optionele regels" + +#: src/tables/build/BuildLineTable.tsx:199 #: src/tables/part/PartTable.tsx:208 msgid "Testable" -msgstr "" +msgstr "Testbaar" -#: src/tables/build/BuildLineTable.tsx:73 -#: src/tables/stock/StockItemTable.tsx:364 +#: src/tables/build/BuildLineTable.tsx:204 +#: src/tables/stock/StockItemTable.tsx:368 msgid "Tracked" -msgstr "" +msgstr "Gevolgd" -#: src/tables/build/BuildLineTable.tsx:74 +#: src/tables/build/BuildLineTable.tsx:205 msgid "Show tracked lines" -msgstr "" +msgstr "Toon gevolgde lijnen" -#: src/tables/build/BuildLineTable.tsx:108 -#: src/tables/sales/SalesOrderLineItemTable.tsx:133 +#: src/tables/build/BuildLineTable.tsx:239 +#: src/tables/sales/SalesOrderLineItemTable.tsx:141 msgid "In production" -msgstr "" - -#: src/tables/build/BuildLineTable.tsx:136 -msgid "Insufficient stock" -msgstr "" - -#: src/tables/build/BuildLineTable.tsx:152 -#: src/tables/sales/SalesOrderLineItemTable.tsx:121 -#: src/tables/stock/StockItemTable.tsx:186 -msgid "No stock available" -msgstr "" - -#: src/tables/build/BuildLineTable.tsx:201 -msgid "Gets Inherited" -msgstr "" - -#: src/tables/build/BuildLineTable.tsx:210 -msgid "Unit Quantity" -msgstr "" +msgstr "In productie" #: src/tables/build/BuildLineTable.tsx:267 -#: src/tables/sales/SalesOrderLineItemTable.tsx:230 +msgid "Insufficient stock" +msgstr "Onvoldoende voorraad" + +#: src/tables/build/BuildLineTable.tsx:283 +#: src/tables/sales/SalesOrderLineItemTable.tsx:129 +#: src/tables/stock/StockItemTable.tsx:175 +msgid "No stock available" +msgstr "Geen voorraad beschikbaar" + +#: src/tables/build/BuildLineTable.tsx:355 +msgid "Gets Inherited" +msgstr "Wordt overgenomen" + +#: src/tables/build/BuildLineTable.tsx:366 +msgid "Unit Quantity" +msgstr "Eenheid hoeveelheid" + +#: src/tables/build/BuildLineTable.tsx:381 +msgid "Required Quantity" +msgstr "" + +#: src/tables/build/BuildLineTable.tsx:432 +#: src/tables/sales/SalesOrderLineItemTable.tsx:254 msgid "Create Build Order" -msgstr "" +msgstr "Maak bouw Order" -#: src/tables/build/BuildLineTable.tsx:298 -msgid "Allocate Stock" -msgstr "" +#: src/tables/build/BuildLineTable.tsx:460 +msgid "Auto allocation in progress" +msgstr "Automatische toewijzing in uitvoering" -#: src/tables/build/BuildLineTable.tsx:305 +#: src/tables/build/BuildLineTable.tsx:463 +#: src/tables/build/BuildLineTable.tsx:632 +msgid "Auto Allocate Stock" +msgstr "Automatisch voorraad toewijzen" + +#: src/tables/build/BuildLineTable.tsx:464 +msgid "Automatically allocate stock to this build according to the selected options" +msgstr "Voorraad automatisch toewijzen aan deze build volgens de geselecteerde opties" + +#: src/tables/build/BuildLineTable.tsx:482 +#: src/tables/build/BuildLineTable.tsx:496 +#: src/tables/build/BuildLineTable.tsx:579 +#: src/tables/build/BuildLineTable.tsx:664 +#: src/tables/build/BuildOutputTable.tsx:314 +#: src/tables/build/BuildOutputTable.tsx:319 +msgid "Deallocate Stock" +msgstr "Voorraad ongedaan maken" + +#: src/tables/build/BuildLineTable.tsx:498 +msgid "Deallocate all untracked stock for this build order" +msgstr "Maak de toewijzing van alle niet bijgehouden voorraad voor deze bouworder ongedaan" + +#: src/tables/build/BuildLineTable.tsx:500 +msgid "Deallocate stock from the selected line item" +msgstr "Maak de toewijzing van voorraad van het geselecteerde regelitem ongedaan" + +#: src/tables/build/BuildLineTable.tsx:504 +msgid "Stock has been deallocated" +msgstr "De voorraad is ongedaan gemaakt" + +#: src/tables/build/BuildLineTable.tsx:589 msgid "Order Stock" -msgstr "" +msgstr "Voorraad bestelling" -#: src/tables/build/BuildLineTable.tsx:312 +#: src/tables/build/BuildLineTable.tsx:596 msgid "Build Stock" -msgstr "" +msgstr "Bouw voorraad" -#: src/tables/build/BuildOrderTable.tsx:111 -msgid "Show active orders" +#: src/tables/build/BuildLineTable.tsx:610 +msgid "View Part" msgstr "" #: src/tables/build/BuildOrderTable.tsx:116 -msgid "Cascade" -msgstr "" +#~ msgid "Cascade" +#~ msgstr "Cascade" #: src/tables/build/BuildOrderTable.tsx:117 -msgid "Display recursive child orders" -msgstr "" +#~ msgid "Display recursive child orders" +#~ msgstr "Display recursive child orders" -#: src/tables/build/BuildOrderTable.tsx:123 -#: src/tables/part/PartPurchaseOrdersTable.tsx:126 -#: src/tables/purchasing/PurchaseOrderTable.tsx:56 -#: src/tables/sales/ReturnOrderTable.tsx:47 -#: src/tables/sales/SalesOrderTable.tsx:54 +#: src/tables/build/BuildOrderTable.tsx:121 +msgid "Show outstanding orders" +msgstr "Toon openstaande orders" + +#: src/tables/build/BuildOrderTable.tsx:121 +#~ msgid "Show active orders" +#~ msgstr "Show active orders" + +#: src/tables/build/BuildOrderTable.tsx:122 +#~ msgid "Show overdue status" +#~ msgstr "Show overdue status" + +#: src/tables/build/BuildOrderTable.tsx:126 +#: src/tables/part/PartPurchaseOrdersTable.tsx:132 +#: src/tables/purchasing/PurchaseOrderTable.tsx:59 +#: src/tables/sales/ReturnOrderTable.tsx:57 +#: src/tables/sales/SalesOrderTable.tsx:57 msgid "Filter by order status" msgstr "Filteren op bestellingstatus" -#: src/tables/build/BuildOrderTable.tsx:130 -msgid "Show overdue status" -msgstr "" - -#: src/tables/build/BuildOrderTable.tsx:141 -#: src/tables/purchasing/PurchaseOrderTable.tsx:65 -#: src/tables/sales/ReturnOrderTable.tsx:56 -#: src/tables/sales/SalesOrderTable.tsx:63 -msgid "Filter by project code" -msgstr "" - -#: src/tables/build/BuildOrderTable.tsx:146 +#: src/tables/build/BuildOrderTable.tsx:136 #: src/tables/purchasing/PurchaseOrderTable.tsx:70 -#: src/tables/sales/ReturnOrderTable.tsx:61 +#: src/tables/sales/ReturnOrderTable.tsx:68 #: src/tables/sales/SalesOrderTable.tsx:68 -msgid "Has Project Code" -msgstr "" +msgid "Filter by project code" +msgstr "Filter op projectcode" -#: src/tables/build/BuildOrderTable.tsx:147 +#: src/tables/build/BuildOrderTable.tsx:139 #: src/tables/purchasing/PurchaseOrderTable.tsx:71 #: src/tables/sales/ReturnOrderTable.tsx:62 #: src/tables/sales/SalesOrderTable.tsx:69 -msgid "Filter by whether the purchase order has a project code" -msgstr "" +#~ msgid "Filter by whether the purchase order has a project code" +#~ msgstr "Filter by whether the purchase order has a project code" -#: src/tables/build/BuildOrderTable.tsx:152 +#: src/tables/build/BuildOrderTable.tsx:143 msgid "Filter by user who issued this order" -msgstr "" +msgstr "Filter op gebruiker die deze bestelling heeft afgegeven" -#: src/tables/build/BuildOrderTable.tsx:158 -#: src/tables/purchasing/PurchaseOrderTable.tsx:76 -#: src/tables/sales/ReturnOrderTable.tsx:67 -#: src/tables/sales/SalesOrderTable.tsx:74 +#: src/tables/build/BuildOrderTable.tsx:149 +#: src/tables/purchasing/PurchaseOrderTable.tsx:77 +#: src/tables/sales/ReturnOrderTable.tsx:75 +#: src/tables/sales/SalesOrderTable.tsx:75 msgid "Filter by responsible owner" -msgstr "" +msgstr "Filter op verantwoordelijke eigenaar" -#: src/tables/build/BuildOrderTestTable.tsx:75 -#: src/tables/build/BuildOrderTestTable.tsx:111 -#: src/tables/stock/StockItemTestResultTable.tsx:257 -#: src/tables/stock/StockItemTestResultTable.tsx:329 -#: src/tables/stock/StockItemTestResultTable.tsx:384 +#: src/tables/build/BuildOrderTestTable.tsx:76 +#: src/tables/build/BuildOrderTestTable.tsx:112 +#: src/tables/stock/StockItemTestResultTable.tsx:275 +#: src/tables/stock/StockItemTestResultTable.tsx:347 +#: src/tables/stock/StockItemTestResultTable.tsx:403 msgid "Add Test Result" -msgstr "" +msgstr "Testresultaat toevoegen" -#: src/tables/build/BuildOrderTestTable.tsx:82 -#: src/tables/stock/StockItemTestResultTable.tsx:259 +#: src/tables/build/BuildOrderTestTable.tsx:83 +#: src/tables/stock/StockItemTestResultTable.tsx:277 msgid "Test result added" -msgstr "" +msgstr "Test resultaat toegevoegd" -#: src/tables/build/BuildOrderTestTable.tsx:110 -#: src/tables/stock/StockItemTestResultTable.tsx:174 +#: src/tables/build/BuildOrderTestTable.tsx:111 +#: src/tables/stock/StockItemTestResultTable.tsx:180 msgid "No Result" -msgstr "" +msgstr "Geen resultaat" -#: src/tables/build/BuildOrderTestTable.tsx:220 +#: src/tables/build/BuildOrderTestTable.tsx:221 msgid "Show build outputs currently in production" +msgstr "Toon bouw outputs die momenteel in productie zijn" + +#: src/tables/build/BuildOutputTable.tsx:76 +msgid "Build Output Stock Allocation" msgstr "" #: src/tables/build/BuildOutputTable.tsx:161 #~ msgid "Delete build output" #~ msgstr "Delete build output" -#: src/tables/build/BuildOutputTable.tsx:173 -#: src/tables/build/BuildOutputTable.tsx:211 +#: src/tables/build/BuildOutputTable.tsx:258 +#: src/tables/build/BuildOutputTable.tsx:374 msgid "Add Build Output" +msgstr "Voeg Build uitvoer toe" + +#: src/tables/build/BuildOutputTable.tsx:304 +#~ msgid "Edit build output" +#~ msgstr "Edit build output" + +#: src/tables/build/BuildOutputTable.tsx:306 +#: src/tables/build/BuildOutputTable.tsx:417 +msgid "Edit Build Output" +msgstr "Bewerk bouwopdracht" + +#: src/tables/build/BuildOutputTable.tsx:321 +msgid "This action will deallocate all stock from the selected build output" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:216 +#: src/tables/build/BuildOutputTable.tsx:341 msgid "Complete selected outputs" -msgstr "" +msgstr "Voltooi geselecteerde uitvoer" -#: src/tables/build/BuildOutputTable.tsx:226 +#: src/tables/build/BuildOutputTable.tsx:352 msgid "Scrap selected outputs" -msgstr "" +msgstr "Geselecteerde outputs schroot" -#: src/tables/build/BuildOutputTable.tsx:236 +#: src/tables/build/BuildOutputTable.tsx:363 msgid "Cancel selected outputs" -msgstr "" +msgstr "Geselecteerde uitvoer annuleren" -#: src/tables/build/BuildOutputTable.tsx:252 +#: src/tables/build/BuildOutputTable.tsx:385 msgid "Allocate" -msgstr "" +msgstr "Toewijzen" -#: src/tables/build/BuildOutputTable.tsx:253 +#: src/tables/build/BuildOutputTable.tsx:386 msgid "Allocate stock to build output" -msgstr "" +msgstr "Voorraad toewijzen om output te maken" -#: src/tables/build/BuildOutputTable.tsx:259 +#: src/tables/build/BuildOutputTable.tsx:396 msgid "Deallocate" -msgstr "" +msgstr "Toewijzing annuleren" -#: src/tables/build/BuildOutputTable.tsx:260 +#: src/tables/build/BuildOutputTable.tsx:397 msgid "Deallocate stock from build output" -msgstr "" +msgstr "Voorraad van build output niet toewijzen" -#: src/tables/build/BuildOutputTable.tsx:267 +#: src/tables/build/BuildOutputTable.tsx:408 msgid "Complete build output" -msgstr "" +msgstr "Voltooi bouw uitvoer" -#: src/tables/build/BuildOutputTable.tsx:276 +#: src/tables/build/BuildOutputTable.tsx:424 msgid "Scrap" -msgstr "" +msgstr "Schroot" -#: src/tables/build/BuildOutputTable.tsx:277 +#: src/tables/build/BuildOutputTable.tsx:425 msgid "Scrap build output" -msgstr "" +msgstr "Verwijder productieorder" -#: src/tables/build/BuildOutputTable.tsx:280 -#~ msgid "Allocated Items" -#~ msgstr "Allocated Items" - -#: src/tables/build/BuildOutputTable.tsx:287 +#: src/tables/build/BuildOutputTable.tsx:435 msgid "Cancel build output" -msgstr "" +msgstr "Annuleer productieorder" -#: src/tables/build/BuildOutputTable.tsx:325 -msgid "Batch" -msgstr "" - -#: src/tables/build/BuildOutputTable.tsx:340 +#: src/tables/build/BuildOutputTable.tsx:488 msgid "Allocated Lines" -msgstr "" +msgstr "Toegewezen lijnen" -#: src/tables/build/BuildOutputTable.tsx:355 +#: src/tables/build/BuildOutputTable.tsx:503 msgid "Required Tests" -msgstr "" +msgstr "Vereiste tests" -#: src/tables/company/AddressTable.tsx:121 -#: src/tables/company/AddressTable.tsx:185 +#: src/tables/company/AddressTable.tsx:118 +#: src/tables/company/AddressTable.tsx:183 msgid "Add Address" -msgstr "" +msgstr "Adres toevoegen" -#: src/tables/company/AddressTable.tsx:126 +#: src/tables/company/AddressTable.tsx:123 msgid "Address created" -msgstr "" +msgstr "Adres aangemaakt" -#: src/tables/company/AddressTable.tsx:135 +#: src/tables/company/AddressTable.tsx:132 msgid "Edit Address" -msgstr "" +msgstr "Adres bewerken" -#: src/tables/company/AddressTable.tsx:143 +#: src/tables/company/AddressTable.tsx:140 msgid "Delete Address" -msgstr "" +msgstr "Adres verwijderen" -#: src/tables/company/AddressTable.tsx:144 +#: src/tables/company/AddressTable.tsx:141 msgid "Are you sure you want to delete this address?" -msgstr "" +msgstr "Weet u zeker dat u dit adres wilt verwijderen?" #: src/tables/company/CompanyTable.tsx:71 #~ msgid "New Company" #~ msgstr "New Company" -#: src/tables/company/CompanyTable.tsx:74 -#: src/tables/company/CompanyTable.tsx:123 +#: src/tables/company/CompanyTable.tsx:75 +#: src/tables/company/CompanyTable.tsx:125 msgid "Add Company" -msgstr "" +msgstr "Bedrijf toevoegen" -#: src/tables/company/CompanyTable.tsx:96 +#: src/tables/company/CompanyTable.tsx:97 msgid "Show active companies" -msgstr "" +msgstr "Actieve bedrijven tonen" -#: src/tables/company/CompanyTable.tsx:101 +#: src/tables/company/CompanyTable.tsx:102 msgid "Show companies which are suppliers" -msgstr "" +msgstr "Toon bedrijven die leveranciers zijn" -#: src/tables/company/CompanyTable.tsx:106 +#: src/tables/company/CompanyTable.tsx:107 msgid "Show companies which are manufacturers" -msgstr "" +msgstr "Toon bedrijven die fabrikanten zijn" -#: src/tables/company/CompanyTable.tsx:111 +#: src/tables/company/CompanyTable.tsx:112 msgid "Show companies which are customers" -msgstr "" +msgstr "Toon bedrijven die klanten zijn" #: src/tables/company/ContactTable.tsx:71 msgid "Edit Contact" -msgstr "" +msgstr "Contact bewerken" #: src/tables/company/ContactTable.tsx:78 msgid "Add Contact" -msgstr "" +msgstr "Contact toevoegen" #: src/tables/company/ContactTable.tsx:89 msgid "Delete Contact" -msgstr "" +msgstr "Contact verwijderen" -#: src/tables/company/ContactTable.tsx:129 +#: src/tables/company/ContactTable.tsx:130 msgid "Add contact" -msgstr "" +msgstr "Contact toevoegen" -#: src/tables/general/AttachmentTable.tsx:130 +#: src/tables/general/AttachmentTable.tsx:135 msgid "File uploaded" -msgstr "" +msgstr "Bestand geüpload" -#: src/tables/general/AttachmentTable.tsx:131 +#: src/tables/general/AttachmentTable.tsx:136 msgid "File {0} uploaded successfully" -msgstr "" +msgstr "Bestand {0} met succes geüpload" -#: src/tables/general/AttachmentTable.tsx:142 +#: src/tables/general/AttachmentTable.tsx:147 msgid "Upload Error" -msgstr "" +msgstr "Fout bij uploaden" -#: src/tables/general/AttachmentTable.tsx:143 +#: src/tables/general/AttachmentTable.tsx:148 msgid "File could not be uploaded" -msgstr "" +msgstr "Bestand kon niet worden geüpload" -#: src/tables/general/AttachmentTable.tsx:191 +#: src/tables/general/AttachmentTable.tsx:196 msgid "Upload Attachment" -msgstr "" +msgstr "Bijlage uploaden" -#: src/tables/general/AttachmentTable.tsx:201 +#: src/tables/general/AttachmentTable.tsx:206 msgid "Edit Attachment" -msgstr "" +msgstr "Bijlage bewerken" -#: src/tables/general/AttachmentTable.tsx:215 +#: src/tables/general/AttachmentTable.tsx:220 msgid "Delete Attachment" -msgstr "" - -#: src/tables/general/AttachmentTable.tsx:225 -msgid "Is Link" -msgstr "" - -#: src/tables/general/AttachmentTable.tsx:226 -msgid "Show link attachments" -msgstr "" +msgstr "Bijlage verwijderen" #: src/tables/general/AttachmentTable.tsx:230 -msgid "Is File" -msgstr "" +msgid "Is Link" +msgstr "Is koppeling" #: src/tables/general/AttachmentTable.tsx:231 +msgid "Show link attachments" +msgstr "Toon link bijlagen" + +#: src/tables/general/AttachmentTable.tsx:235 +msgid "Is File" +msgstr "Is een bestand" + +#: src/tables/general/AttachmentTable.tsx:236 msgid "Show file attachments" -msgstr "" +msgstr "Toon bestandsbijlagen" -#: src/tables/general/AttachmentTable.tsx:240 +#: src/tables/general/AttachmentTable.tsx:245 msgid "Add attachment" -msgstr "" - -#: src/tables/general/AttachmentTable.tsx:251 -msgid "Add external link" -msgstr "" +msgstr "Bijlage toevoegen" #: src/tables/general/AttachmentTable.tsx:254 #~ msgid "Upload attachment" #~ msgstr "Upload attachment" -#: src/tables/general/AttachmentTable.tsx:299 -msgid "No attachments found" -msgstr "" +#: src/tables/general/AttachmentTable.tsx:256 +msgid "Add external link" +msgstr "Externe link toevoegen" -#: src/tables/general/AttachmentTable.tsx:337 +#: src/tables/general/AttachmentTable.tsx:304 +msgid "No attachments found" +msgstr "Geen bijlagen gevonden" + +#: src/tables/general/AttachmentTable.tsx:343 msgid "Drag attachment file here to upload" -msgstr "" +msgstr "Sleep het bijlagebestand hier om te uploaden" #: src/tables/general/ExtraLineItemTable.tsx:86 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:251 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:60 -#: src/tables/sales/SalesOrderLineItemTable.tsx:196 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:263 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:362 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:72 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:168 +#: src/tables/sales/SalesOrderLineItemTable.tsx:206 +#: src/tables/sales/SalesOrderLineItemTable.tsx:291 msgid "Add Line Item" -msgstr "" +msgstr "Regel item toevoegen" #: src/tables/general/ExtraLineItemTable.tsx:98 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:271 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:72 -#: src/tables/sales/SalesOrderLineItemTable.tsx:214 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:283 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:84 +#: src/tables/sales/SalesOrderLineItemTable.tsx:224 msgid "Edit Line Item" -msgstr "" +msgstr "Regel item bewerken" #: src/tables/general/ExtraLineItemTable.tsx:106 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:279 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:80 -#: src/tables/sales/SalesOrderLineItemTable.tsx:222 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:291 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:92 +#: src/tables/sales/SalesOrderLineItemTable.tsx:232 msgid "Delete Line Item" -msgstr "" +msgstr "Regel item verwijderen" -#: src/tables/general/ExtraLineItemTable.tsx:142 +#: src/tables/general/ExtraLineItemTable.tsx:143 msgid "Add Extra Line Item" -msgstr "" +msgstr "Extra regel item toevoegen" #: src/tables/machine/MachineListTable.tsx:202 msgid "Machine restarted" -msgstr "" +msgstr "Machine is herstart" #: src/tables/machine/MachineListTable.tsx:212 -#: src/tables/machine/MachineListTable.tsx:263 +#: src/tables/machine/MachineListTable.tsx:261 msgid "Edit machine" -msgstr "" +msgstr "Bewerk machine" #: src/tables/machine/MachineListTable.tsx:226 -#: src/tables/machine/MachineListTable.tsx:267 +#: src/tables/machine/MachineListTable.tsx:265 msgid "Delete machine" -msgstr "" +msgstr "Verwijder machine" #: src/tables/machine/MachineListTable.tsx:227 msgid "Machine successfully deleted." -msgstr "" +msgstr "Machine is succesvol verwijderd." #: src/tables/machine/MachineListTable.tsx:231 msgid "Are you sure you want to remove the machine \"{0}\"?" -msgstr "" +msgstr "Weet je zeker dat je de machine{0} wilt verwijderen?" -#: src/tables/machine/MachineListTable.tsx:255 -#: src/tables/machine/MachineListTable.tsx:432 +#: src/tables/machine/MachineListTable.tsx:254 +#: src/tables/machine/MachineListTable.tsx:442 msgid "Restart required" -msgstr "" +msgstr "Opnieuw opstarten vereist" -#: src/tables/machine/MachineListTable.tsx:259 +#: src/tables/machine/MachineListTable.tsx:258 msgid "Machine Actions" -msgstr "" +msgstr "Machine acties" + +#: src/tables/machine/MachineListTable.tsx:270 +msgid "Restart" +msgstr "Opnieuw starten" #: src/tables/machine/MachineListTable.tsx:272 -msgid "Restart" -msgstr "" +msgid "Restart machine" +msgstr "Herstart machine" #: src/tables/machine/MachineListTable.tsx:274 -msgid "Restart machine" -msgstr "" - -#: src/tables/machine/MachineListTable.tsx:276 msgid "manual restart required" -msgstr "" +msgstr "Handmatige herstart vereist" + +#: src/tables/machine/MachineListTable.tsx:291 +#~ msgid "Machine information" +#~ msgstr "Machine information" #: src/tables/machine/MachineListTable.tsx:292 -msgid "Machine information" +msgid "Machine Information" msgstr "" -#: src/tables/machine/MachineListTable.tsx:303 -#: src/tables/machine/MachineListTable.tsx:599 +#: src/tables/machine/MachineListTable.tsx:302 +#: src/tables/machine/MachineListTable.tsx:610 msgid "Machine Type" -msgstr "" +msgstr "Machine type" -#: src/tables/machine/MachineListTable.tsx:316 +#: src/tables/machine/MachineListTable.tsx:315 msgid "Machine Driver" -msgstr "" +msgstr "Machine driver" -#: src/tables/machine/MachineListTable.tsx:329 +#: src/tables/machine/MachineListTable.tsx:330 msgid "Initialized" -msgstr "" +msgstr "Geïnitialiseerd" -#: src/tables/machine/MachineListTable.tsx:350 -#: src/tables/machine/MachineTypeTable.tsx:261 -msgid "Errors" -msgstr "" - -#: src/tables/machine/MachineListTable.tsx:358 -#: src/tables/machine/MachineTypeTable.tsx:269 +#: src/tables/machine/MachineListTable.tsx:359 +#: src/tables/machine/MachineTypeTable.tsx:290 msgid "No errors reported" -msgstr "" +msgstr "Geen fouten gerapporteerd" #: src/tables/machine/MachineListTable.tsx:378 msgid "Machine Settings" -msgstr "" +msgstr "Machine instellingen" -#: src/tables/machine/MachineListTable.tsx:389 +#: src/tables/machine/MachineListTable.tsx:394 msgid "Driver Settings" -msgstr "" +msgstr "Driver instellingen" #: src/tables/machine/MachineListTable.tsx:494 #~ msgid "Create machine" #~ msgstr "Create machine" -#: src/tables/machine/MachineListTable.tsx:506 +#: src/tables/machine/MachineListTable.tsx:516 +#: src/tables/machine/MachineListTable.tsx:558 msgid "Add machine" -msgstr "" +msgstr "Machine toevoegen" #: src/tables/machine/MachineListTable.tsx:561 -msgid "Machine detail" +#~ msgid "Machine detail" +#~ msgstr "Machine detail" + +#: src/tables/machine/MachineListTable.tsx:572 +msgid "Machine Detail" msgstr "" -#: src/tables/machine/MachineListTable.tsx:608 +#: src/tables/machine/MachineListTable.tsx:619 msgid "Driver" -msgstr "" +msgstr "Stuurprogramma" -#: src/tables/machine/MachineTypeTable.tsx:73 +#: src/tables/machine/MachineTypeTable.tsx:78 msgid "Builtin driver" +msgstr "Ingebouwde stuurprogramma" + +#: src/tables/machine/MachineTypeTable.tsx:96 +msgid "Not Found" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:89 +#: src/tables/machine/MachineTypeTable.tsx:99 msgid "Machine type not found." +msgstr "Machinetype niet gevonden." + +#: src/tables/machine/MachineTypeTable.tsx:99 +#~ msgid "Machine type information" +#~ msgstr "Machine type information" + +#: src/tables/machine/MachineTypeTable.tsx:109 +msgid "Machine Type Information" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:97 -msgid "Machine type information" -msgstr "" - -#: src/tables/machine/MachineTypeTable.tsx:110 -#: src/tables/machine/MachineTypeTable.tsx:217 -msgid "Slug" -msgstr "" - -#: src/tables/machine/MachineTypeTable.tsx:118 +#: src/tables/machine/MachineTypeTable.tsx:124 #: src/tables/machine/MachineTypeTable.tsx:238 -msgid "Provider plugin" -msgstr "" - -#: src/tables/machine/MachineTypeTable.tsx:130 -#: src/tables/machine/MachineTypeTable.tsx:250 -msgid "Provider file" -msgstr "" +msgid "Slug" +msgstr "Korte naam" #: src/tables/machine/MachineTypeTable.tsx:135 -#: src/tables/machine/MachineTypeTable.tsx:255 -#: src/tables/plugin/PluginListTable.tsx:180 -#: src/tables/plugin/PluginListTable.tsx:568 -msgid "Builtin" +#: src/tables/machine/MachineTypeTable.tsx:259 +msgid "Provider plugin" +msgstr "Partner plug-in" + +#: src/tables/machine/MachineTypeTable.tsx:147 +#: src/tables/machine/MachineTypeTable.tsx:271 +msgid "Provider file" +msgstr "Provider bestand" + +#: src/tables/machine/MachineTypeTable.tsx:148 +#~ msgid "Available drivers" +#~ msgstr "Available drivers" + +#: src/tables/machine/MachineTypeTable.tsx:162 +msgid "Available Drivers" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:146 -msgid "Available drivers" -msgstr "" - -#: src/tables/machine/MachineTypeTable.tsx:196 +#: src/tables/machine/MachineTypeTable.tsx:217 msgid "Machine driver not found." -msgstr "" +msgstr "Machine driver is niet gevonden." -#: src/tables/machine/MachineTypeTable.tsx:204 +#: src/tables/machine/MachineTypeTable.tsx:225 msgid "Machine driver information" -msgstr "" +msgstr "Informatie Machine stuurprogramma" -#: src/tables/machine/MachineTypeTable.tsx:224 +#: src/tables/machine/MachineTypeTable.tsx:245 msgid "Machine type" -msgstr "" +msgstr "Machine type" -#: src/tables/machine/MachineTypeTable.tsx:327 +#: src/tables/machine/MachineTypeTable.tsx:338 +#~ msgid "Machine type detail" +#~ msgstr "Machine type detail" + +#: src/tables/machine/MachineTypeTable.tsx:348 msgid "Builtin type" +msgstr "Ingebouwde type" + +#: src/tables/machine/MachineTypeTable.tsx:348 +#~ msgid "Machine driver detail" +#~ msgstr "Machine driver detail" + +#: src/tables/machine/MachineTypeTable.tsx:357 +msgid "Machine Type Detail" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:336 -msgid "Machine type detail" -msgstr "" - -#: src/tables/machine/MachineTypeTable.tsx:346 -msgid "Machine driver detail" +#: src/tables/machine/MachineTypeTable.tsx:367 +msgid "Machine Driver Detail" msgstr "" #: src/tables/notifications/NotificationsTable.tsx:26 msgid "Age" -msgstr "" +msgstr "Leeftijd" + +#: src/tables/notifications/NotificationsTable.tsx:36 +msgid "Notification" +msgstr "Meldingen" #: src/tables/notifications/NotificationsTable.tsx:40 #: src/tables/plugin/PluginErrorTable.tsx:37 +#: src/tables/settings/ErrorTable.tsx:50 msgid "Message" -msgstr "" +msgstr "Bericht" #: src/tables/part/ParametricPartTable.tsx:74 msgid "Click to edit" -msgstr "" +msgstr "Klik om te bewerken" #: src/tables/part/ParametricPartTable.tsx:82 #~ msgid "Edit parameter" @@ -6431,72 +7595,71 @@ msgstr "" #: src/tables/part/ParametricPartTable.tsx:127 msgid "Add Part Parameter" -msgstr "" +msgstr "Onderdeel parameter toevoegen" #: src/tables/part/ParametricPartTable.tsx:141 #: src/tables/part/PartParameterTable.tsx:130 #: src/tables/part/PartParameterTable.tsx:153 msgid "Edit Part Parameter" -msgstr "" +msgstr "Onderdeel parameter bewerken" #: src/tables/part/ParametricPartTable.tsx:224 msgid "Show active parts" -msgstr "" +msgstr "Actieve onderdelen weergeven" #: src/tables/part/ParametricPartTable.tsx:229 msgid "Show locked parts" -msgstr "" +msgstr "Toon vergrendelde onderdelen" #: src/tables/part/ParametricPartTable.tsx:234 msgid "Show assembly parts" -msgstr "" +msgstr "Toon assemblage onderdelen" -#: src/tables/part/PartCategoryTable.tsx:68 +#: src/tables/part/PartCategoryTable.tsx:48 +msgid "You are subscribed to notifications for this category" +msgstr "Abonneer je op meldingen voor deze categorie" + +#: src/tables/part/PartCategoryTable.tsx:80 #: src/tables/part/PartTable.tsx:196 msgid "Include Subcategories" -msgstr "" +msgstr "Inclusief subcategorieën" -#: src/tables/part/PartCategoryTable.tsx:69 +#: src/tables/part/PartCategoryTable.tsx:81 msgid "Include subcategories in results" -msgstr "" - -#: src/tables/part/PartCategoryTable.tsx:74 -msgid "Show structural categories" -msgstr "" - -#: src/tables/part/PartCategoryTable.tsx:78 -#: src/tables/part/PartTable.tsx:294 -msgid "Subscribed" -msgstr "" - -#: src/tables/part/PartCategoryTable.tsx:79 -msgid "Show categories to which the user is subscribed" -msgstr "" +msgstr "Inclusief subcategorieën in zoekresultaten" #: src/tables/part/PartCategoryTable.tsx:86 -msgid "New Part Category" -msgstr "" +msgid "Show structural categories" +msgstr "Structurele categorieën tonen" -#: src/tables/part/PartCategoryTable.tsx:112 +#: src/tables/part/PartCategoryTable.tsx:91 +msgid "Show categories to which the user is subscribed" +msgstr "Toon categorieën waarop de gebruiker geabonneerd is" + +#: src/tables/part/PartCategoryTable.tsx:100 +msgid "New Part Category" +msgstr "Nieuwe onderdeel categorie" + +#: src/tables/part/PartCategoryTable.tsx:129 msgid "Add Part Category" -msgstr "" +msgstr "Voeg categorie voor onderdelen toe" #: src/tables/part/PartCategoryTemplateTable.tsx:38 #: src/tables/part/PartCategoryTemplateTable.tsx:131 msgid "Add Category Parameter" -msgstr "" +msgstr "Categorie parameter toevoegen" #: src/tables/part/PartCategoryTemplateTable.tsx:46 msgid "Edit Category Parameter" -msgstr "" +msgstr "Categorie parameter bewerken" #: src/tables/part/PartCategoryTemplateTable.tsx:54 msgid "Delete Category Parameter" -msgstr "" +msgstr "Verwijder categorie parameter" #: src/tables/part/PartCategoryTemplateTable.tsx:76 msgid "Parameter Template" -msgstr "" +msgstr "Parameter sjabloon" #: src/tables/part/PartCategoryTemplateTable.tsx:93 #~ msgid "[{0}]" @@ -6504,159 +7667,151 @@ msgstr "" #: src/tables/part/PartParameterTable.tsx:97 msgid "Internal Units" -msgstr "" +msgstr "Interne eenheden" #: src/tables/part/PartParameterTable.tsx:114 msgid "New Part Parameter" -msgstr "" +msgstr "Nieuwe onderdeel parameter" #: src/tables/part/PartParameterTable.tsx:139 #: src/tables/part/PartParameterTable.tsx:161 msgid "Delete Part Parameter" -msgstr "" +msgstr "Onderdeel parameter verwijderen" #: src/tables/part/PartParameterTable.tsx:179 msgid "Add parameter" -msgstr "" +msgstr "Parameter toevoegen" #: src/tables/part/PartParameterTable.tsx:198 msgid "Part parameters cannot be edited, as the part is locked" -msgstr "" - -#: src/tables/part/PartParameterTable.tsx:212 -#: src/tables/stock/StockItemTable.tsx:335 -msgid "Include Variants" -msgstr "" +msgstr "Onderdeel parameters kunnen niet worden bewerkt, omdat het onderdeel is vergrendeld" #: src/tables/part/PartParameterTemplateTable.tsx:31 msgid "Checkbox" -msgstr "" +msgstr "Selectievakje" #: src/tables/part/PartParameterTemplateTable.tsx:32 msgid "Show checkbox templates" -msgstr "" +msgstr "Toon selectie vak sjabloon" #: src/tables/part/PartParameterTemplateTable.tsx:36 msgid "Has choices" -msgstr "" +msgstr "Heeft keuzes" #: src/tables/part/PartParameterTemplateTable.tsx:37 msgid "Show templates with choices" -msgstr "" +msgstr "Toon sjablonen met keuzes" #: src/tables/part/PartParameterTemplateTable.tsx:41 #: src/tables/part/PartTable.tsx:220 msgid "Has Units" -msgstr "" +msgstr "Heeft eenheden" #: src/tables/part/PartParameterTemplateTable.tsx:42 msgid "Show templates with units" -msgstr "" +msgstr "Toon sjablonen met eenheden" #: src/tables/part/PartParameterTemplateTable.tsx:85 +#: src/tables/part/PartParameterTemplateTable.tsx:141 msgid "Add Parameter Template" -msgstr "" +msgstr "Parameter sjabloon toevoegen" #: src/tables/part/PartParameterTemplateTable.tsx:100 msgid "Edit Parameter Template" -msgstr "" +msgstr "Parameter sjabloon bewerken" #: src/tables/part/PartParameterTemplateTable.tsx:111 msgid "Delete Parameter Template" -msgstr "" +msgstr "Parameter sjabloon verwijderen" #: src/tables/part/PartParameterTemplateTable.tsx:141 -msgid "Add parameter template" -msgstr "" +#~ msgid "Add parameter template" +#~ msgstr "Add parameter template" -#: src/tables/part/PartPurchaseOrdersTable.tsx:77 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:162 +#: src/tables/part/PartPurchaseOrdersTable.tsx:78 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:168 msgid "Total Quantity" -msgstr "" +msgstr "Totale hoeveelheid" -#: src/tables/part/PartPurchaseOrdersTable.tsx:115 -msgid "Pending" -msgstr "" - -#: src/tables/part/PartPurchaseOrdersTable.tsx:116 +#: src/tables/part/PartPurchaseOrdersTable.tsx:122 msgid "Show pending orders" -msgstr "" +msgstr "Laat lopende orders zien" -#: src/tables/part/PartPurchaseOrdersTable.tsx:121 +#: src/tables/part/PartPurchaseOrdersTable.tsx:127 msgid "Show received items" -msgstr "" +msgstr "Toon ontvangen items" #: src/tables/part/PartTable.tsx:77 msgid "Minimum stock" -msgstr "" +msgstr "Minimale voorraad" #: src/tables/part/PartTable.tsx:179 msgid "Filter by part active status" -msgstr "" +msgstr "Filter op actieve status van onderdeel" #: src/tables/part/PartTable.tsx:185 msgid "Filter by part locked status" -msgstr "" +msgstr "Filter op vergrendelde status van onderdeel" #: src/tables/part/PartTable.tsx:191 msgid "Filter by assembly attribute" -msgstr "" +msgstr "Filteren op samenvoegen attribuut" #: src/tables/part/PartTable.tsx:197 msgid "Include parts in subcategories" -msgstr "" +msgstr "Inclusief onderdelen in subcategorieën" #: src/tables/part/PartTable.tsx:203 msgid "Filter by component attribute" -msgstr "" +msgstr "Filter op component kenmerk" #: src/tables/part/PartTable.tsx:209 msgid "Filter by testable attribute" -msgstr "" +msgstr "Filter op testbare eigenschap" #: src/tables/part/PartTable.tsx:215 msgid "Filter by trackable attribute" -msgstr "" +msgstr "Filteren op traceerbare kenmerk" #: src/tables/part/PartTable.tsx:221 msgid "Filter by parts which have units" -msgstr "" +msgstr "Filter op onderdelen die eenheden bevatten" #: src/tables/part/PartTable.tsx:226 msgid "Has IPN" -msgstr "" +msgstr "Heeft IPN" #: src/tables/part/PartTable.tsx:227 msgid "Filter by parts which have an internal part number" -msgstr "" +msgstr "Filter op onderdelen met een intern deelnummer" #: src/tables/part/PartTable.tsx:232 msgid "Has Stock" -msgstr "" +msgstr "Heeft voorraad" #: src/tables/part/PartTable.tsx:233 msgid "Filter by parts which have stock" -msgstr "" +msgstr "Filter op onderdelen die voorraad hebben" #: src/tables/part/PartTable.tsx:239 msgid "Filter by parts which have low stock" -msgstr "" +msgstr "Filter op onderdelen met een lage voorraad" #: src/tables/part/PartTable.tsx:244 msgid "Purchaseable" -msgstr "" +msgstr "Aankoopbaar" #: src/tables/part/PartTable.tsx:245 msgid "Filter by parts which are purchaseable" -msgstr "" +msgstr "Filteren op onderdelen die aankoopbaar zijn" #: src/tables/part/PartTable.tsx:250 msgid "Salable" -msgstr "" +msgstr "Verkoopbaar" #: src/tables/part/PartTable.tsx:251 msgid "Filter by parts which are salable" -msgstr "" +msgstr "Filter op delen die verkoopbaar zijn" #: src/tables/part/PartTable.tsx:256 #: src/tables/part/PartTable.tsx:260 @@ -6666,211 +7821,219 @@ msgstr "Virtueel" #: src/tables/part/PartTable.tsx:257 msgid "Filter by parts which are virtual" -msgstr "" +msgstr "Filter op virtuele onderdelen" #: src/tables/part/PartTable.tsx:261 msgid "Not Virtual" -msgstr "" +msgstr "Niet virtueel" #: src/tables/part/PartTable.tsx:266 msgid "Is Template" -msgstr "" +msgstr "Is een sjabloon" #: src/tables/part/PartTable.tsx:267 msgid "Filter by parts which are templates" -msgstr "" +msgstr "Filter op onderdelen die sjablonen zijn" #: src/tables/part/PartTable.tsx:272 msgid "Is Revision" -msgstr "" +msgstr "Is revisie" #: src/tables/part/PartTable.tsx:273 msgid "Filter by parts which are revisions" -msgstr "" +msgstr "Filter op onderdelen die revisies zijn" #: src/tables/part/PartTable.tsx:277 msgid "Has Revisions" -msgstr "" +msgstr "Heeft revisies" #: src/tables/part/PartTable.tsx:278 msgid "Filter by parts which have revisions" -msgstr "" +msgstr "Filter op onderdelen die revisies hebben" #: src/tables/part/PartTable.tsx:283 msgid "Filter by parts which have pricing information" -msgstr "" +msgstr "Filter op onderdelen met prijsinformatie" #: src/tables/part/PartTable.tsx:289 msgid "Filter by parts which have available stock" -msgstr "" +msgstr "Filter op onderdelen die beschikbare voorraad hebben" #: src/tables/part/PartTable.tsx:295 msgid "Filter by parts to which the user is subscribed" -msgstr "" +msgstr "Filter op delen waarop de gebruiker geabonneerd is" #: src/tables/part/PartTable.tsx:300 msgid "Has Stocktake" -msgstr "" +msgstr "Heeft voorraad" #: src/tables/part/PartTable.tsx:301 msgid "Filter by parts which have stocktake information" -msgstr "" +msgstr "Filteren op onderdelen met voorraadgegevens" #: src/tables/part/PartTestTemplateTable.tsx:50 msgid "Test is defined for a parent template part" -msgstr "" +msgstr "Test is ingesteld voor een bovenliggende sjabloononderdeel" #: src/tables/part/PartTestTemplateTable.tsx:64 msgid "Template Details" -msgstr "" +msgstr "Sjabloon details" #: src/tables/part/PartTestTemplateTable.tsx:74 msgid "Results" -msgstr "" - -#: src/tables/part/PartTestTemplateTable.tsx:76 -msgid "No Results" -msgstr "" - -#: src/tables/part/PartTestTemplateTable.tsx:106 -#: src/tables/stock/StockItemTestResultTable.tsx:365 -msgid "Required" -msgstr "" +msgstr "Resultaten" #: src/tables/part/PartTestTemplateTable.tsx:107 msgid "Show required tests" -msgstr "" +msgstr "Toon verplichte tests" #: src/tables/part/PartTestTemplateTable.tsx:111 -#: src/tables/settings/TemplateTable.tsx:167 -#: src/tables/settings/TemplateTable.tsx:283 +#: src/tables/settings/TemplateTable.tsx:247 +#: src/tables/settings/TemplateTable.tsx:363 msgid "Enabled" -msgstr "" +msgstr "Ingeschakeld" #: src/tables/part/PartTestTemplateTable.tsx:112 msgid "Show enabled tests" -msgstr "" +msgstr "Toon ingeschakelde tests" #: src/tables/part/PartTestTemplateTable.tsx:116 msgid "Requires Value" -msgstr "" +msgstr "Waarde vereist" #: src/tables/part/PartTestTemplateTable.tsx:117 msgid "Show tests that require a value" -msgstr "" +msgstr "Toon testen waarvoor een waarde vereist is" #: src/tables/part/PartTestTemplateTable.tsx:121 msgid "Requires Attachment" -msgstr "" +msgstr "Vereist bijlage" #: src/tables/part/PartTestTemplateTable.tsx:122 msgid "Show tests that require an attachment" -msgstr "" +msgstr "Toon tests die een bijlage vereisen" #: src/tables/part/PartTestTemplateTable.tsx:126 msgid "Include Inherited" -msgstr "" +msgstr "Overgenomen meenemen" #: src/tables/part/PartTestTemplateTable.tsx:127 msgid "Show tests from inherited templates" -msgstr "" +msgstr "Toon tests van overgenomen sjablonen" #: src/tables/part/PartTestTemplateTable.tsx:131 msgid "Has Results" -msgstr "" +msgstr "Heeft resultaten" #: src/tables/part/PartTestTemplateTable.tsx:132 msgid "Show tests which have recorded results" -msgstr "" +msgstr "Toon tests die de resultaten hebben opgenomen" #: src/tables/part/PartTestTemplateTable.tsx:154 -#: src/tables/part/PartTestTemplateTable.tsx:237 +#: src/tables/part/PartTestTemplateTable.tsx:238 msgid "Add Test Template" -msgstr "" +msgstr "Test sjabloon toevoegen" #: src/tables/part/PartTestTemplateTable.tsx:170 msgid "Edit Test Template" -msgstr "" +msgstr "Bewerk test sjabloon" #: src/tables/part/PartTestTemplateTable.tsx:181 msgid "Delete Test Template" -msgstr "" +msgstr "Test sjabloon verwijderen" #: src/tables/part/PartTestTemplateTable.tsx:183 msgid "This action cannot be reversed" -msgstr "" +msgstr "Deze actie kan niet ongedaan worden gemaakt" #: src/tables/part/PartTestTemplateTable.tsx:185 msgid "Any tests results associated with this template will be deleted" -msgstr "" +msgstr "Alle testresultaten die gekoppeld zijn aan dit sjabloon worden verwijderd" #: src/tables/part/PartTestTemplateTable.tsx:204 msgid "View Parent Part" -msgstr "" +msgstr "Bovenliggend onderdeel bekijken" -#: src/tables/part/PartTestTemplateTable.tsx:257 +#: src/tables/part/PartTestTemplateTable.tsx:258 msgid "Part templates cannot be edited, as the part is locked" -msgstr "" +msgstr "Onderdelen sjablonen kunnen niet worden bewerkt, omdat het onderdeel is vergrendeld" #: src/tables/part/PartThumbTable.tsx:201 msgid "Select" -msgstr "" +msgstr "Selecteer" #: src/tables/part/PartVariantTable.tsx:16 msgid "Show active variants" -msgstr "" +msgstr "Toon actieve varianten" #: src/tables/part/PartVariantTable.tsx:20 msgid "Template" -msgstr "" +msgstr "Sjabloon" #: src/tables/part/PartVariantTable.tsx:21 msgid "Show template variants" -msgstr "" +msgstr "Toon sjabloon varianten" #: src/tables/part/PartVariantTable.tsx:26 msgid "Show virtual variants" -msgstr "" +msgstr "Virtuele varianten tonen" #: src/tables/part/PartVariantTable.tsx:31 msgid "Show trackable variants" -msgstr "" +msgstr "Traceerbare items tonen" -#: src/tables/part/RelatedPartTable.tsx:84 +#: src/tables/part/RelatedPartTable.tsx:86 +#: src/tables/part/RelatedPartTable.tsx:109 msgid "Add Related Part" -msgstr "" +msgstr "Voeg gerelateerd deel toe" -#: src/tables/part/RelatedPartTable.tsx:99 +#: src/tables/part/RelatedPartTable.tsx:101 msgid "Delete Related Part" -msgstr "" +msgstr "Verwijder gerelateerde deel" -#: src/tables/part/RelatedPartTable.tsx:106 -msgid "Add related part" -msgstr "" +#: src/tables/part/RelatedPartTable.tsx:109 +#~ msgid "Add related part" +#~ msgstr "Add related part" #: src/tables/plugin/PluginErrorTable.tsx:29 msgid "Stage" -msgstr "" +msgstr "Fase" + +#: src/tables/plugin/PluginListTable.tsx:42 +msgid "Plugin is active" +msgstr "Plug-in is ingeschakeld" + +#: src/tables/plugin/PluginListTable.tsx:48 +msgid "Plugin is inactive" +msgstr "Plug-in is niet actief" + +#: src/tables/plugin/PluginListTable.tsx:55 +msgid "Plugin is not installed" +msgstr "De plug-in is niet geïnstalleerd" + +#: src/tables/plugin/PluginListTable.tsx:76 +msgid "Plugin" +msgstr "Plug-in" #: src/tables/plugin/PluginListTable.tsx:95 -msgid "Plugin with key {pluginKey} not found" -msgstr "" +#~ msgid "Plugin with key {pluginKey} not found" +#~ msgstr "Plugin with key {pluginKey} not found" #: src/tables/plugin/PluginListTable.tsx:97 -msgid "An error occurred while fetching plugin details" -msgstr "" +#~ msgid "An error occurred while fetching plugin details" +#~ msgstr "An error occurred while fetching plugin details" + +#: src/tables/plugin/PluginListTable.tsx:109 +msgid "Description not available" +msgstr "Beschrijving niet beschikbaar" #: src/tables/plugin/PluginListTable.tsx:113 #~ msgid "Plugin with id {id} not found" #~ msgstr "Plugin with id {id} not found" #: src/tables/plugin/PluginListTable.tsx:122 -msgid "Plugin information" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:134 -msgid "Author" -msgstr "" +#~ msgid "Plugin information" +#~ msgstr "Plugin information" #: src/tables/plugin/PluginListTable.tsx:134 #~ msgid "Plugin Actions" @@ -6881,79 +8044,124 @@ msgstr "" #~ msgid "Edit plugin" #~ msgstr "Edit plugin" +#: src/tables/plugin/PluginListTable.tsx:144 +msgid "Confirm plugin activation" +msgstr "Plug-in activeren bevestigen" + +#: src/tables/plugin/PluginListTable.tsx:145 +msgid "Confirm plugin deactivation" +msgstr "Plug-in deactiveren bevestigen" + +#: src/tables/plugin/PluginListTable.tsx:150 +msgid "The selected plugin will be activated" +msgstr "De geselecteerde plug-in zal worden geactiveerd" + +#: src/tables/plugin/PluginListTable.tsx:151 +msgid "The selected plugin will be deactivated" +msgstr "De geselecteerde plug-in zal worden gedeactiveerd" + #: src/tables/plugin/PluginListTable.tsx:152 #: src/tables/plugin/PluginListTable.tsx:153 #~ msgid "Reload" #~ msgstr "Reload" -#: src/tables/plugin/PluginListTable.tsx:154 -msgid "Plugin is not active" -msgstr "" - #: src/tables/plugin/PluginListTable.tsx:163 -msgid "Package information" -msgstr "" +#~ msgid "Package information" +#~ msgstr "Package information" #: src/tables/plugin/PluginListTable.tsx:169 -msgid "Package Name" -msgstr "" +msgid "Deactivate" +msgstr "Uitzetten" -#: src/tables/plugin/PluginListTable.tsx:175 -msgid "Installation Path" -msgstr "" +#: src/tables/plugin/PluginListTable.tsx:183 +msgid "Activate" +msgstr "Inschakelen" -#: src/tables/plugin/PluginListTable.tsx:185 -msgid "Package" -msgstr "" +#: src/tables/plugin/PluginListTable.tsx:184 +msgid "Activate selected plugin" +msgstr "Activeer geselecteerde plug-in" + +#: src/tables/plugin/PluginListTable.tsx:196 +msgid "Update selected plugin" +msgstr "Geselecteerde plug-in bijwerken" #: src/tables/plugin/PluginListTable.tsx:197 -msgid "Plugin settings" -msgstr "" +#~ msgid "Plugin settings" +#~ msgstr "Plugin settings" #: src/tables/plugin/PluginListTable.tsx:214 -msgid "Plugin is active" -msgstr "" +#: src/tables/stock/InstalledItemsTable.tsx:107 +msgid "Uninstall" +msgstr "Verwijderen" -#: src/tables/plugin/PluginListTable.tsx:220 -msgid "Plugin is inactive" -msgstr "" +#: src/tables/plugin/PluginListTable.tsx:215 +msgid "Uninstall selected plugin" +msgstr "Geselecteerde plug-in verwijderen" -#: src/tables/plugin/PluginListTable.tsx:227 -msgid "Plugin is not installed" -msgstr "" +#: src/tables/plugin/PluginListTable.tsx:233 +msgid "Delete selected plugin configuration" +msgstr "Geselecteerde plug-in configuratie verwijderen" -#: src/tables/plugin/PluginListTable.tsx:253 -msgid "Plugin" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:287 -msgid "Description not available" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:319 -msgid "Confirm plugin activation" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:320 -msgid "Confirm plugin deactivation" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:325 -msgid "The selected plugin will be activated" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:326 -msgid "The selected plugin will be deactivated" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:334 +#: src/tables/plugin/PluginListTable.tsx:249 msgid "Activate Plugin" +msgstr "Activeer Plug-in" + +#: src/tables/plugin/PluginListTable.tsx:270 +msgid "Install plugin" +msgstr "Plug-in installeren" + +#: src/tables/plugin/PluginListTable.tsx:283 +msgid "Install" +msgstr "installeren" + +#: src/tables/plugin/PluginListTable.tsx:284 +msgid "Plugin installed successfully" +msgstr "Plug-in succesvol geïnstalleerd" + +#: src/tables/plugin/PluginListTable.tsx:289 +msgid "Uninstall Plugin" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:301 +msgid "Confirm plugin uninstall" +msgstr "Plug-in verwijderen bevestigen" + +#: src/tables/plugin/PluginListTable.tsx:304 +msgid "The selected plugin will be uninstalled." +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:308 +#~ msgid "This action cannot be undone." +#~ msgstr "This action cannot be undone." + +#: src/tables/plugin/PluginListTable.tsx:309 +msgid "Plugin uninstalled successfully" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:317 +msgid "Delete Plugin" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:318 +msgid "Deleting this plugin configuration will remove all associated settings and data. Are you sure you want to delete this plugin?" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:331 +msgid "Plugins reloaded" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:332 +msgid "Plugins were reloaded successfully" msgstr "" #: src/tables/plugin/PluginListTable.tsx:338 #~ msgid "Deactivate Plugin" #~ msgstr "Deactivate Plugin" +#: src/tables/plugin/PluginListTable.tsx:350 +msgid "Reload Plugins" +msgstr "" + #: src/tables/plugin/PluginListTable.tsx:354 #~ msgid "The following plugin will be activated" #~ msgstr "The following plugin will be activated" @@ -6962,16 +8170,16 @@ msgstr "" #~ msgid "The following plugin will be deactivated" #~ msgstr "The following plugin will be deactivated" -#: src/tables/plugin/PluginListTable.tsx:362 -msgid "Deactivate" +#: src/tables/plugin/PluginListTable.tsx:357 +msgid "Install Plugin" msgstr "" #: src/tables/plugin/PluginListTable.tsx:366 #~ msgid "Confirm" #~ msgstr "Confirm" -#: src/tables/plugin/PluginListTable.tsx:373 -msgid "Activate" +#: src/tables/plugin/PluginListTable.tsx:374 +msgid "Plugin Detail" msgstr "" #: src/tables/plugin/PluginListTable.tsx:376 @@ -6998,76 +8206,12 @@ msgstr "" #~ msgid "Error updating plugin" #~ msgstr "Error updating plugin" -#: src/tables/plugin/PluginListTable.tsx:406 -msgid "Uninstall" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:438 -msgid "Install plugin" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:451 -msgid "Install" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:452 -msgid "Plugin installed successfully" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:457 -msgid "Uninstall Plugin" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:469 -msgid "Confirm plugin uninstall" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:472 -msgid "The selected plugin will be uninstalled." -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:473 -msgid "This action cannot be undone." -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:477 -msgid "Plugin uninstalled successfully" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:484 -msgid "Delete Plugin" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:485 -msgid "Deleting this plugin configuration will remove all associated settings and data. Are you sure you want to delete this plugin?" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:498 -msgid "Plugins reloaded" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:499 -msgid "Plugins were reloaded successfully" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:515 -msgid "Reload Plugins" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:524 -msgid "Install Plugin" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:544 -msgid "Plugin Detail" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:573 +#: src/tables/plugin/PluginListTable.tsx:411 msgid "Sample" msgstr "" -#: src/tables/plugin/PluginListTable.tsx:578 -#: src/tables/stock/StockItemTable.tsx:340 +#: src/tables/plugin/PluginListTable.tsx:416 +#: src/tables/stock/StockItemTable.tsx:344 msgid "Installed" msgstr "" @@ -7116,82 +8260,78 @@ msgstr "" #~ msgid "Are you sure you want to remove this manufacturer part?" #~ msgstr "Are you sure you want to remove this manufacturer part?" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:102 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:339 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:103 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:356 msgid "Import Line Items" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:135 -msgid "Part Description" -msgstr "" - -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:201 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:207 msgid "Supplier Code" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:208 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:214 msgid "Supplier Link" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:215 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:220 msgid "Manufacturer Code" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:229 -msgid "Destination" +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:248 +msgid "Show line items which have been received" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:300 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:316 msgid "Receive line item" msgstr "" #: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:344 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:142 -#: src/tables/sales/SalesOrderLineItemTable.tsx:240 -msgid "Add line item" -msgstr "" +#: src/tables/sales/ReturnOrderLineItemTable.tsx:160 +#: src/tables/sales/SalesOrderLineItemTable.tsx:258 +#~ msgid "Add line item" +#~ msgstr "Add line item" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:354 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:373 msgid "Receive items" msgstr "" -#: src/tables/purchasing/SupplierPartTable.tsx:93 +#: src/tables/purchasing/SupplierPartTable.tsx:95 msgid "MPN" msgstr "" -#: src/tables/purchasing/SupplierPartTable.tsx:122 +#: src/tables/purchasing/SupplierPartTable.tsx:124 msgid "Base units" msgstr "" -#: src/tables/purchasing/SupplierPartTable.tsx:170 +#: src/tables/purchasing/SupplierPartTable.tsx:172 msgid "Supplier part created" msgstr "" -#: src/tables/purchasing/SupplierPartTable.tsx:176 +#: src/tables/purchasing/SupplierPartTable.tsx:179 msgid "Add supplier part" msgstr "" -#: src/tables/purchasing/SupplierPartTable.tsx:188 +#: src/tables/purchasing/SupplierPartTable.tsx:191 msgid "Show active supplier parts" msgstr "" -#: src/tables/purchasing/SupplierPartTable.tsx:192 -msgid "Active Part" -msgstr "" - -#: src/tables/purchasing/SupplierPartTable.tsx:193 -msgid "Show active internal parts" -msgstr "" - #: src/tables/purchasing/SupplierPartTable.tsx:193 #~ msgid "Supplier part updated" #~ msgstr "Supplier part updated" -#: src/tables/purchasing/SupplierPartTable.tsx:197 +#: src/tables/purchasing/SupplierPartTable.tsx:195 +msgid "Active Part" +msgstr "" + +#: src/tables/purchasing/SupplierPartTable.tsx:196 +msgid "Show active internal parts" +msgstr "" + +#: src/tables/purchasing/SupplierPartTable.tsx:200 msgid "Active Supplier" msgstr "" -#: src/tables/purchasing/SupplierPartTable.tsx:198 +#: src/tables/purchasing/SupplierPartTable.tsx:201 msgid "Show active suppliers" msgstr "" @@ -7203,271 +8343,367 @@ msgstr "" #~ msgid "Are you sure you want to remove this supplier part?" #~ msgstr "Are you sure you want to remove this supplier part?" -#: src/tables/sales/ReturnOrderLineItemTable.tsx:114 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:139 msgid "Received Date" msgstr "" -#: src/tables/sales/ReturnOrderLineItemTable.tsx:128 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:153 msgid "Show items which have been received" msgstr "" -#: src/tables/sales/ReturnOrderLineItemTable.tsx:133 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:158 msgid "Filter by line item status" msgstr "" -#: src/tables/sales/ReturnOrderLineItemTable.tsx:158 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:176 +msgid "Receive selected items" +msgstr "Geselecteerde items ontvangen" + +#: src/tables/sales/ReturnOrderLineItemTable.tsx:205 msgid "Receive Item" msgstr "" -#: src/tables/sales/SalesOrderLineItemTable.tsx:262 -msgid "Allocate stock" +#: src/tables/sales/SalesOrderAllocationTable.tsx:60 +msgid "Show outstanding allocations" +msgstr "Toon openstaande toewijzingen" + +#: src/tables/sales/SalesOrderAllocationTable.tsx:168 +#: src/tables/sales/SalesOrderAllocationTable.tsx:190 +msgid "Edit Allocation" +msgstr "Bewerk voorraadtoewijzing" + +#: src/tables/sales/SalesOrderAllocationTable.tsx:175 +#: src/tables/sales/SalesOrderAllocationTable.tsx:197 +msgid "Delete Allocation" +msgstr "Verwijder toewijzing" + +#: src/tables/sales/SalesOrderLineItemTable.tsx:244 +msgid "Allocate Serial Numbers" +msgstr "Serienummers toewijzen" + +#: src/tables/sales/SalesOrderLineItemTable.tsx:277 +msgid "Show lines which are fully allocated" msgstr "" -#: src/tables/sales/SalesOrderLineItemTable.tsx:272 +#: src/tables/sales/SalesOrderLineItemTable.tsx:280 +#~ msgid "Allocate stock" +#~ msgstr "Allocate stock" + +#: src/tables/sales/SalesOrderLineItemTable.tsx:282 +msgid "Show lines which are completed" +msgstr "" + +#: src/tables/sales/SalesOrderLineItemTable.tsx:291 +#~ msgid "Allocate Serials" +#~ msgstr "Allocate Serials" + +#: src/tables/sales/SalesOrderLineItemTable.tsx:340 +msgid "Allocate serials" +msgstr "Serienummer toewijzen" + +#: src/tables/sales/SalesOrderLineItemTable.tsx:356 msgid "Build stock" msgstr "" -#: src/tables/sales/SalesOrderLineItemTable.tsx:289 -#: src/tables/stock/StockItemTable.tsx:507 +#: src/tables/sales/SalesOrderLineItemTable.tsx:373 +#: src/tables/stock/StockItemTable.tsx:512 msgid "Order stock" msgstr "" -#: src/tables/sales/SalesOrderShipmentTable.tsx:40 +#: src/tables/sales/SalesOrderShipmentTable.tsx:51 +#~ msgid "Delete Shipment" +#~ msgstr "Delete Shipment" + +#: src/tables/sales/SalesOrderShipmentTable.tsx:57 msgid "Create Shipment" msgstr "" -#: src/tables/sales/SalesOrderShipmentTable.tsx:50 -msgid "Delete Shipment" -msgstr "" - -#: src/tables/sales/SalesOrderShipmentTable.tsx:58 -msgid "Edit Shipment" -msgstr "" - -#: src/tables/sales/SalesOrderShipmentTable.tsx:66 -msgid "Shipment Reference" -msgstr "" - -#: src/tables/sales/SalesOrderShipmentTable.tsx:71 +#: src/tables/sales/SalesOrderShipmentTable.tsx:104 msgid "Items" -msgstr "" +msgstr "Artikelen" -#: src/tables/sales/SalesOrderShipmentTable.tsx:83 -msgid "Delivery Date" -msgstr "" +#: src/tables/sales/SalesOrderShipmentTable.tsx:139 +msgid "View Shipment" +msgstr "Verzending weergeven" -#: src/tables/sales/SalesOrderShipmentTable.tsx:107 -msgid "Complete Shipment" -msgstr "" +#: src/tables/sales/SalesOrderShipmentTable.tsx:161 +msgid "Edit shipment" +msgstr "Verzending bewerken" -#: src/tables/sales/SalesOrderShipmentTable.tsx:133 +#: src/tables/sales/SalesOrderShipmentTable.tsx:169 +msgid "Cancel shipment" +msgstr "Verzending annuleren" + +#: src/tables/sales/SalesOrderShipmentTable.tsx:184 msgid "Add shipment" -msgstr "" +msgstr "Voeg verzending toe" -#: src/tables/sales/SalesOrderShipmentTable.tsx:146 -msgid "Shipped" -msgstr "" - -#: src/tables/sales/SalesOrderShipmentTable.tsx:147 +#: src/tables/sales/SalesOrderShipmentTable.tsx:198 msgid "Show shipments which have been shipped" -msgstr "" +msgstr "Toon verzendingen die zijn verzonden" -#: src/tables/sales/SalesOrderShipmentTable.tsx:151 -msgid "Delivered" -msgstr "" - -#: src/tables/sales/SalesOrderShipmentTable.tsx:152 +#: src/tables/sales/SalesOrderShipmentTable.tsx:203 msgid "Show shipments which have been delivered" +msgstr "Toon verzendingen die afgeleverd zijn" + +#: src/tables/settings/BarcodeScanHistoryTable.tsx:61 +msgid "Barcode Information" +msgstr "Barcode informatie" + +#: src/tables/settings/BarcodeScanHistoryTable.tsx:76 +#: src/tables/settings/ErrorTable.tsx:59 +msgid "Timestamp" +msgstr "Tijdstip" + +#: src/tables/settings/BarcodeScanHistoryTable.tsx:86 +msgid "Endpoint" +msgstr "Eindpunt" + +#: src/tables/settings/BarcodeScanHistoryTable.tsx:90 +#: src/tables/settings/BarcodeScanHistoryTable.tsx:217 +#: src/tables/stock/StockItemTestResultTable.tsx:174 +msgid "Result" msgstr "" -#: src/tables/settings/CurrencyTable.tsx:28 -msgid "Rate" -msgstr "" +#: src/tables/settings/BarcodeScanHistoryTable.tsx:98 +msgid "Context" +msgstr "Inhoud" -#: src/tables/settings/CurrencyTable.tsx:40 -msgid "Exchange rates updated" -msgstr "" +#: src/tables/settings/BarcodeScanHistoryTable.tsx:119 +msgid "Response" +msgstr "Reactie" -#: src/tables/settings/CurrencyTable.tsx:46 -msgid "Exchange rate update error" -msgstr "" +#: src/tables/settings/BarcodeScanHistoryTable.tsx:213 +#: src/tables/settings/ImportSessionTable.tsx:121 +#: src/tables/stock/StockTrackingTable.tsx:183 +msgid "Filter by user" +msgstr "Filter op gebruiker" -#: src/tables/settings/CurrencyTable.tsx:57 -msgid "Refresh currency exchange rates" -msgstr "" +#: src/tables/settings/BarcodeScanHistoryTable.tsx:218 +msgid "Filter by result" +msgstr "Op resultaat filteren" + +#: src/tables/settings/BarcodeScanHistoryTable.tsx:232 +msgid "Delete Barcode Scan Record" +msgstr "Barcode scan record verwijderen" + +#: src/tables/settings/BarcodeScanHistoryTable.tsx:258 +msgid "Barcode Scan Details" +msgstr "Barcode scan details" + +#: src/tables/settings/BarcodeScanHistoryTable.tsx:268 +msgid "Logging Disabled" +msgstr "Logging uitgeschakeld" + +#: src/tables/settings/BarcodeScanHistoryTable.tsx:270 +msgid "Barcode logging is not enabled" +msgstr "Barcode loggen is niet ingeschakeld" + +#: src/tables/settings/CustomStateTable.tsx:36 +msgid "Display Name" +msgstr "Toon naam" + +#: src/tables/settings/CustomStateTable.tsx:52 +msgid "Model" +msgstr "Model" + +#: src/tables/settings/CustomStateTable.tsx:65 +#: src/tables/settings/CustomStateTable.tsx:115 +msgid "Add State" +msgstr "Staat toevoegen" + +#: src/tables/settings/CustomStateTable.tsx:77 +msgid "Edit State" +msgstr "Bewerk status" + +#: src/tables/settings/CustomStateTable.tsx:85 +msgid "Delete State" +msgstr "Status verwijderen" + +#: src/tables/settings/CustomStateTable.tsx:115 +#~ msgid "Add state" +#~ msgstr "Add state" #: src/tables/settings/CustomUnitsTable.tsx:50 msgid "Add Custom Unit" -msgstr "" +msgstr "Aangepaste eenheid toevoegen" #: src/tables/settings/CustomUnitsTable.tsx:60 msgid "Edit Custom Unit" -msgstr "" +msgstr "Aangepaste eenheid bewerken" #: src/tables/settings/CustomUnitsTable.tsx:68 msgid "Delete Custom Unit" -msgstr "" +msgstr "Aangepaste eenheid verwijderen" #: src/tables/settings/CustomUnitsTable.tsx:100 msgid "Add custom unit" -msgstr "" - -#: src/tables/settings/ErrorTable.tsx:31 -msgid "When" -msgstr "" - -#: src/tables/settings/ErrorTable.tsx:41 -msgid "Error Information" -msgstr "" +msgstr "Aangepaste eenheid toevoegen" #: src/tables/settings/ErrorTable.tsx:51 #~ msgid "Delete error report" #~ msgstr "Delete error report" -#: src/tables/settings/ErrorTable.tsx:53 +#: src/tables/settings/ErrorTable.tsx:67 +msgid "Traceback" +msgstr "Traceren" + +#: src/tables/settings/ErrorTable.tsx:103 +msgid "When" +msgstr "Wanneer" + +#: src/tables/settings/ErrorTable.tsx:113 +msgid "Error Information" +msgstr "Fout informatie" + +#: src/tables/settings/ErrorTable.tsx:123 msgid "Delete Error Report" -msgstr "" +msgstr "Foutenrapport verwijderen" -#: src/tables/settings/ErrorTable.tsx:55 +#: src/tables/settings/ErrorTable.tsx:125 msgid "Are you sure you want to delete this error report?" -msgstr "" +msgstr "Weet u zeker dat u dit foutenrapport wilt verwijderen?" -#: src/tables/settings/ErrorTable.tsx:57 +#: src/tables/settings/ErrorTable.tsx:127 msgid "Error report deleted" -msgstr "" +msgstr "Foutmelding verwijderd" -#: src/tables/settings/ErrorTable.tsx:79 -#: src/tables/settings/FailedTasksTable.tsx:59 +#: src/tables/settings/ErrorTable.tsx:146 +#: src/tables/settings/FailedTasksTable.tsx:65 msgid "Error Details" -msgstr "" - -#: src/tables/settings/FailedTasksTable.tsx:26 -#: src/tables/settings/PendingTasksTable.tsx:19 -#: src/tables/settings/ScheduledTasksTable.tsx:19 -msgid "Task" -msgstr "" +msgstr "Fout details" #: src/tables/settings/FailedTasksTable.tsx:32 -#: src/tables/settings/PendingTasksTable.tsx:24 -msgid "Task ID" -msgstr "" +#: src/tables/settings/PendingTasksTable.tsx:23 +#: src/tables/settings/ScheduledTasksTable.tsx:19 +msgid "Task" +msgstr "Taak" -#: src/tables/settings/FailedTasksTable.tsx:36 -#: src/tables/stock/StockItemTestResultTable.tsx:211 -msgid "Started" -msgstr "" +#: src/tables/settings/FailedTasksTable.tsx:38 +#: src/tables/settings/PendingTasksTable.tsx:28 +msgid "Task ID" +msgstr "Taak-ID" #: src/tables/settings/FailedTasksTable.tsx:42 -msgid "Stopped" -msgstr "" +#: src/tables/stock/StockItemTestResultTable.tsx:218 +msgid "Started" +msgstr "Gestart" #: src/tables/settings/FailedTasksTable.tsx:48 +msgid "Stopped" +msgstr "Gestopt" + +#: src/tables/settings/FailedTasksTable.tsx:54 msgid "Attempts" +msgstr "Pogingen" + +#: src/tables/settings/FailedTasksTable.tsx:92 +msgid "No Information" +msgstr "" + +#: src/tables/settings/FailedTasksTable.tsx:93 +msgid "No error details are available for this task" msgstr "" #: src/tables/settings/GroupTable.tsx:90 msgid "Group with id {id} not found" -msgstr "" +msgstr "Groep met id {id} niet gevonden" #: src/tables/settings/GroupTable.tsx:92 msgid "An error occurred while fetching group details" -msgstr "" +msgstr "Er is een fout opgetreden bij het ophalen van groepsgegevens" #: src/tables/settings/GroupTable.tsx:116 msgid "Permission set" -msgstr "" +msgstr "Toestemming set" #: src/tables/settings/GroupTable.tsx:177 msgid "Delete group" -msgstr "" +msgstr "Groep verwijderen" #: src/tables/settings/GroupTable.tsx:178 msgid "Group deleted" -msgstr "" +msgstr "Groep verwijderd" #: src/tables/settings/GroupTable.tsx:180 msgid "Are you sure you want to delete this group?" -msgstr "" +msgstr "Weet u zeker dat u deze groep wilt verwijderen?" #: src/tables/settings/GroupTable.tsx:185 #: src/tables/settings/GroupTable.tsx:197 msgid "Add group" -msgstr "" +msgstr "Groep toevoegen" #: src/tables/settings/GroupTable.tsx:210 msgid "Edit group" -msgstr "" +msgstr "Groep bewerken" -#: src/tables/settings/ImportSessionTable.tsx:38 +#: src/tables/settings/ImportSessionTable.tsx:37 msgid "Delete Import Session" -msgstr "" +msgstr "Importsessie verwijderen" -#: src/tables/settings/ImportSessionTable.tsx:44 +#: src/tables/settings/ImportSessionTable.tsx:43 #: src/tables/settings/ImportSessionTable.tsx:131 msgid "Create Import Session" -msgstr "" +msgstr "Importsessie aanmaken" -#: src/tables/settings/ImportSessionTable.tsx:69 +#: src/tables/settings/ImportSessionTable.tsx:68 msgid "Uploaded" -msgstr "" +msgstr "Geüpload" -#: src/tables/settings/ImportSessionTable.tsx:79 -msgid "Imported Rows" -msgstr "" +#: src/tables/settings/ImportSessionTable.tsx:108 +#: src/tables/settings/TemplateTable.tsx:369 +msgid "Model Type" +msgstr "Model type" #: src/tables/settings/ImportSessionTable.tsx:109 -#: src/tables/settings/TemplateTable.tsx:289 -msgid "Model Type" -msgstr "" - -#: src/tables/settings/ImportSessionTable.tsx:110 -#: src/tables/settings/TemplateTable.tsx:290 +#: src/tables/settings/TemplateTable.tsx:370 msgid "Filter by target model type" -msgstr "" +msgstr "Filter op doeltype" -#: src/tables/settings/ImportSessionTable.tsx:116 +#: src/tables/settings/ImportSessionTable.tsx:115 msgid "Filter by import session status" -msgstr "" +msgstr "Filter op status van import sessie" -#: src/tables/settings/ImportSessionTable.tsx:122 -msgid "Filter by user" -msgstr "" - -#: src/tables/settings/PendingTasksTable.tsx:38 +#: src/tables/settings/PendingTasksTable.tsx:42 msgid "Arguments" -msgstr "" +msgstr "Argumenten" #: src/tables/settings/ProjectCodeTable.tsx:42 msgid "Add Project Code" -msgstr "" +msgstr "Project code toevoegen" #: src/tables/settings/ProjectCodeTable.tsx:54 msgid "Edit Project Code" -msgstr "" +msgstr "Wijzig projectcode" #: src/tables/settings/ProjectCodeTable.tsx:62 msgid "Delete Project Code" -msgstr "" +msgstr "Projectcode verwijderen" #: src/tables/settings/ProjectCodeTable.tsx:92 msgid "Add project code" -msgstr "" +msgstr "Project code toevoegen" #: src/tables/settings/ScheduledTasksTable.tsx:25 msgid "Last Run" -msgstr "" +msgstr "Laatst uitgevoerd" #: src/tables/settings/ScheduledTasksTable.tsx:47 msgid "Next Run" -msgstr "" +msgstr "Volgende uitvoering" -#: src/tables/settings/TemplateTable.tsx:85 -msgid "Template not found" -msgstr "" +#: src/tables/settings/StocktakeReportTable.tsx:28 +msgid "Report" +msgstr "Rapport" -#: src/tables/settings/TemplateTable.tsx:87 -msgid "An error occurred while fetching template details" -msgstr "" +#: src/tables/settings/StocktakeReportTable.tsx:35 +msgid "Part Count" +msgstr "Aantal onderdelen" + +#: src/tables/settings/StocktakeReportTable.tsx:58 +msgid "Delete Report" +msgstr "Rapport verwijderen" #: src/tables/settings/TemplateTable.tsx:120 #~ msgid "{templateTypeTranslation} with id {id} not found" @@ -7481,22 +8717,13 @@ msgstr "" #~ msgid "actions" #~ msgstr "actions" -#: src/tables/settings/TemplateTable.tsx:177 -msgid "Modify" -msgstr "" +#: src/tables/settings/TemplateTable.tsx:162 +msgid "Template not found" +msgstr "Sjabloon niet gevonden" -#: src/tables/settings/TemplateTable.tsx:178 -msgid "Modify template file" -msgstr "" - -#: src/tables/settings/TemplateTable.tsx:234 -#: src/tables/settings/TemplateTable.tsx:302 -msgid "Edit Template" -msgstr "" - -#: src/tables/settings/TemplateTable.tsx:242 -msgid "Delete template" -msgstr "" +#: src/tables/settings/TemplateTable.tsx:164 +msgid "An error occurred while fetching template details" +msgstr "Er is een fout opgetreden bij het ophalen van sjabloon gegevens" #: src/tables/settings/TemplateTable.tsx:243 #~ msgid "Add new" @@ -7506,390 +8733,420 @@ msgstr "" #~ msgid "Create new" #~ msgstr "Create new" -#: src/tables/settings/TemplateTable.tsx:248 +#: src/tables/settings/TemplateTable.tsx:257 +msgid "Modify" +msgstr "Bewerken" + +#: src/tables/settings/TemplateTable.tsx:258 +msgid "Modify template file" +msgstr "Sjabloon wijzigen" + +#: src/tables/settings/TemplateTable.tsx:314 +#: src/tables/settings/TemplateTable.tsx:382 +msgid "Edit Template" +msgstr "Sjabloon bewerken" + +#: src/tables/settings/TemplateTable.tsx:322 +msgid "Delete template" +msgstr "Sjabloon verwijderen" + +#: src/tables/settings/TemplateTable.tsx:328 msgid "Add Template" -msgstr "" +msgstr "Sjabloon toevoegen" -#: src/tables/settings/TemplateTable.tsx:261 +#: src/tables/settings/TemplateTable.tsx:341 msgid "Add template" -msgstr "" +msgstr "Sjabloon toevoegen" -#: src/tables/settings/TemplateTable.tsx:284 +#: src/tables/settings/TemplateTable.tsx:364 msgid "Filter by enabled status" -msgstr "" +msgstr "Filter op ingeschakelde status" -#: src/tables/settings/UserTable.tsx:82 +#: src/tables/settings/UserTable.tsx:81 msgid "User with id {id} not found" -msgstr "" +msgstr "Gebruiker met id {id} niet gevonden" -#: src/tables/settings/UserTable.tsx:84 +#: src/tables/settings/UserTable.tsx:83 msgid "An error occurred while fetching user details" -msgstr "" +msgstr "Er is een fout opgetreden bij het ophalen van gebruikersgegevens" + +#: src/tables/settings/UserTable.tsx:101 +msgid "Is Active" +msgstr "Is actief" #: src/tables/settings/UserTable.tsx:102 -msgid "Is Active" -msgstr "" - -#: src/tables/settings/UserTable.tsx:103 msgid "Designates whether this user should be treated as active. Unselect this instead of deleting accounts." -msgstr "" +msgstr "Bepaald of deze gebruiker gezien moet worden als actief. Deselecteer deze optie in plaats van accounts te verwijderen." + +#: src/tables/settings/UserTable.tsx:106 +msgid "Is Staff" +msgstr "Is medewerker" #: src/tables/settings/UserTable.tsx:107 -msgid "Is Staff" -msgstr "" - -#: src/tables/settings/UserTable.tsx:108 msgid "Designates whether the user can log into the django admin site." -msgstr "" +msgstr "Bepaalt of de gebruiker kan inloggen op de django admin site." + +#: src/tables/settings/UserTable.tsx:111 +msgid "Is Superuser" +msgstr "Administrator " #: src/tables/settings/UserTable.tsx:112 -msgid "Is Superuser" -msgstr "" - -#: src/tables/settings/UserTable.tsx:113 msgid "Designates that this user has all permissions without explicitly assigning them." -msgstr "" +msgstr "Onderschrijft dat deze gebruiker alle rechten heeft zonder expliciet toe te wijzen." -#: src/tables/settings/UserTable.tsx:123 +#: src/tables/settings/UserTable.tsx:122 msgid "You cannot edit the rights for the currently logged-in user." -msgstr "" +msgstr "U kunt de rechten van de momenteel ingelogde gebruiker niet bewerken." -#: src/tables/settings/UserTable.tsx:154 +#: src/tables/settings/UserTable.tsx:153 msgid "No groups" -msgstr "" +msgstr "Geen groepen" + +#: src/tables/settings/UserTable.tsx:244 +msgid "Delete user" +msgstr "Gebruiker verwijderen" #: src/tables/settings/UserTable.tsx:245 -msgid "Delete user" -msgstr "" - -#: src/tables/settings/UserTable.tsx:246 msgid "User deleted" -msgstr "" +msgstr "Gebruiker verwijderd" -#: src/tables/settings/UserTable.tsx:248 +#: src/tables/settings/UserTable.tsx:247 msgid "Are you sure you want to delete this user?" -msgstr "" +msgstr "Weet u zeker dat u deze gebruiker wilt verwijderen?" -#: src/tables/settings/UserTable.tsx:254 -#: src/tables/settings/UserTable.tsx:272 +#: src/tables/settings/UserTable.tsx:253 +#: src/tables/settings/UserTable.tsx:271 msgid "Add user" -msgstr "" +msgstr "Gebruiker toevoegen" -#: src/tables/settings/UserTable.tsx:262 +#: src/tables/settings/UserTable.tsx:261 msgid "Added user" -msgstr "" +msgstr "Gebruiker toegevoegd" -#: src/tables/settings/UserTable.tsx:285 +#: src/tables/settings/UserTable.tsx:284 msgid "Show active users" -msgstr "" +msgstr "Toon actieve gebruikers" + +#: src/tables/settings/UserTable.tsx:288 +msgid "Staff" +msgstr "Medewerkers" #: src/tables/settings/UserTable.tsx:289 -msgid "Staff" -msgstr "" - -#: src/tables/settings/UserTable.tsx:290 msgid "Show staff users" -msgstr "" +msgstr "Toon medewerkers" #: src/tables/settings/UserTable.tsx:294 -msgid "Superuser" -msgstr "" - -#: src/tables/settings/UserTable.tsx:295 msgid "Show superusers" -msgstr "" +msgstr "Toon administrators " -#: src/tables/settings/UserTable.tsx:305 +#: src/tables/settings/UserTable.tsx:304 msgid "Edit user" -msgstr "" +msgstr "Wijzig gebruiker" + +#: src/tables/stock/InstalledItemsTable.tsx:37 +#: src/tables/stock/InstalledItemsTable.tsx:90 +msgid "Install Item" +msgstr "Installeer item" + +#: src/tables/stock/InstalledItemsTable.tsx:39 +msgid "Item installed" +msgstr "Item geïnstalleerd" + +#: src/tables/stock/InstalledItemsTable.tsx:50 +msgid "Uninstall Item" +msgstr "Verwijder Item" + +#: src/tables/stock/InstalledItemsTable.tsx:52 +msgid "Item uninstalled" +msgstr "Item verwijderd" + +#: src/tables/stock/InstalledItemsTable.tsx:108 +msgid "Uninstall stock item" +msgstr "Verwijder voorraaditem" #: src/tables/stock/LocationTypesTable.tsx:39 #: src/tables/stock/LocationTypesTable.tsx:109 msgid "Add Location Type" -msgstr "" +msgstr "Voeg locatie type toe" #: src/tables/stock/LocationTypesTable.tsx:47 msgid "Edit Location Type" -msgstr "" +msgstr "Bewerk locatie type" #: src/tables/stock/LocationTypesTable.tsx:55 msgid "Delete Location Type" -msgstr "" +msgstr "Locatie type verwijderen" #: src/tables/stock/LocationTypesTable.tsx:63 msgid "Icon" -msgstr "" +msgstr "Pictogram" -#: src/tables/stock/StockItemTable.tsx:101 +#: src/tables/stock/StockItemTable.tsx:90 msgid "This stock item is in production" -msgstr "" +msgstr "Dit product is in productie" -#: src/tables/stock/StockItemTable.tsx:110 +#: src/tables/stock/StockItemTable.tsx:97 msgid "This stock item has been assigned to a sales order" msgstr "Voorraadartikel is toegewezen aan een verkooporder" -#: src/tables/stock/StockItemTable.tsx:119 +#: src/tables/stock/StockItemTable.tsx:104 msgid "This stock item has been assigned to a customer" -msgstr "" +msgstr "Dit voorraadartikel is toegewezen aan een klant" -#: src/tables/stock/StockItemTable.tsx:128 +#: src/tables/stock/StockItemTable.tsx:111 msgid "This stock item is installed in another stock item" -msgstr "" +msgstr "Dit voorraadartikel is geïnstalleerd in een ander voorraadartikel" -#: src/tables/stock/StockItemTable.tsx:137 +#: src/tables/stock/StockItemTable.tsx:118 msgid "This stock item has been consumed by a build order" -msgstr "" +msgstr "Dit voorraadproduct is verbruikt door een bouw order" -#: src/tables/stock/StockItemTable.tsx:146 +#: src/tables/stock/StockItemTable.tsx:125 +msgid "This stock item is unavailable" +msgstr "Dit voorraadartikel is niet beschikbaar" + +#: src/tables/stock/StockItemTable.tsx:134 msgid "This stock item has expired" -msgstr "" +msgstr "Dit voorraad item is verlopen" + +#: src/tables/stock/StockItemTable.tsx:138 +msgid "This stock item is stale" +msgstr "Dit voorraadartikel is niet beschikbaar" #: src/tables/stock/StockItemTable.tsx:150 -msgid "This stock item is stale" -msgstr "" - -#: src/tables/stock/StockItemTable.tsx:161 msgid "This stock item is fully allocated" -msgstr "" +msgstr "Dit voorraadartikel is volledig toegewezen" -#: src/tables/stock/StockItemTable.tsx:168 +#: src/tables/stock/StockItemTable.tsx:157 msgid "This stock item is partially allocated" -msgstr "" +msgstr "Dit voorraadartikel is gedeeltelijk toegewezen" -#: src/tables/stock/StockItemTable.tsx:196 +#: src/tables/stock/StockItemTable.tsx:185 msgid "This stock item has been depleted" -msgstr "" +msgstr "Dit voorraadartikel is leeg" -#: src/tables/stock/StockItemTable.tsx:232 +#: src/tables/stock/StockItemTable.tsx:280 msgid "Stocktake Date" -msgstr "" +msgstr "Voorraadcontrole datum" -#: src/tables/stock/StockItemTable.tsx:236 -msgid "Expiry Date" -msgstr "" - -#: src/tables/stock/StockItemTable.tsx:260 -msgid "Stock Value" -msgstr "" - -#: src/tables/stock/StockItemTable.tsx:290 +#: src/tables/stock/StockItemTable.tsx:294 msgid "Show stock for active parts" msgstr "" -#: src/tables/stock/StockItemTable.tsx:295 +#: src/tables/stock/StockItemTable.tsx:299 msgid "Filter by stock status" msgstr "" #: src/tables/stock/StockItemTable.tsx:301 -msgid "Show stock for assmebled parts" -msgstr "" +#~ msgid "Show stock for assmebled parts" +#~ msgstr "Show stock for assmebled parts" -#: src/tables/stock/StockItemTable.tsx:306 +#: src/tables/stock/StockItemTable.tsx:305 +msgid "Show stock for assembled parts" +msgstr "Voorraad tonen van gemonteerde onderdelen" + +#: src/tables/stock/StockItemTable.tsx:310 msgid "Show items which have been allocated" msgstr "" -#: src/tables/stock/StockItemTable.tsx:311 +#: src/tables/stock/StockItemTable.tsx:315 msgid "Show items which are available" msgstr "" -#: src/tables/stock/StockItemTable.tsx:315 +#: src/tables/stock/StockItemTable.tsx:319 #: src/tables/stock/StockLocationTable.tsx:44 msgid "Include Sublocations" msgstr "" -#: src/tables/stock/StockItemTable.tsx:316 +#: src/tables/stock/StockItemTable.tsx:320 msgid "Include stock in sublocations" msgstr "" -#: src/tables/stock/StockItemTable.tsx:320 +#: src/tables/stock/StockItemTable.tsx:324 msgid "Depleted" msgstr "" -#: src/tables/stock/StockItemTable.tsx:321 +#: src/tables/stock/StockItemTable.tsx:325 msgid "Show depleted stock items" msgstr "" -#: src/tables/stock/StockItemTable.tsx:326 +#: src/tables/stock/StockItemTable.tsx:330 msgid "Show items which are in stock" msgstr "" -#: src/tables/stock/StockItemTable.tsx:331 +#: src/tables/stock/StockItemTable.tsx:335 msgid "Show items which are in production" msgstr "" -#: src/tables/stock/StockItemTable.tsx:336 +#: src/tables/stock/StockItemTable.tsx:340 msgid "Include stock items for variant parts" msgstr "" -#: src/tables/stock/StockItemTable.tsx:341 +#: src/tables/stock/StockItemTable.tsx:345 msgid "Show stock items which are installed in other items" msgstr "" -#: src/tables/stock/StockItemTable.tsx:345 +#: src/tables/stock/StockItemTable.tsx:349 msgid "Sent to Customer" msgstr "" -#: src/tables/stock/StockItemTable.tsx:346 +#: src/tables/stock/StockItemTable.tsx:350 msgid "Show items which have been sent to a customer" msgstr "" -#: src/tables/stock/StockItemTable.tsx:350 +#: src/tables/stock/StockItemTable.tsx:354 msgid "Is Serialized" msgstr "" -#: src/tables/stock/StockItemTable.tsx:351 +#: src/tables/stock/StockItemTable.tsx:355 msgid "Show items which have a serial number" msgstr "" -#: src/tables/stock/StockItemTable.tsx:358 +#: src/tables/stock/StockItemTable.tsx:362 msgid "Has Batch Code" msgstr "" -#: src/tables/stock/StockItemTable.tsx:359 +#: src/tables/stock/StockItemTable.tsx:363 msgid "Show items which have a batch code" msgstr "" -#: src/tables/stock/StockItemTable.tsx:365 +#: src/tables/stock/StockItemTable.tsx:369 msgid "Show tracked items" msgstr "" -#: src/tables/stock/StockItemTable.tsx:369 +#: src/tables/stock/StockItemTable.tsx:373 msgid "Has Purchase Price" msgstr "" -#: src/tables/stock/StockItemTable.tsx:370 +#: src/tables/stock/StockItemTable.tsx:374 msgid "Show items which have a purchase price" msgstr "" -#: src/tables/stock/StockItemTable.tsx:378 +#: src/tables/stock/StockItemTable.tsx:382 msgid "External Location" msgstr "" -#: src/tables/stock/StockItemTable.tsx:379 +#: src/tables/stock/StockItemTable.tsx:383 msgid "Show items in an external location" msgstr "" -#: src/tables/stock/StockItemTable.tsx:451 +#: src/tables/stock/StockItemTable.tsx:456 msgid "Add a new stock item" msgstr "" -#: src/tables/stock/StockItemTable.tsx:460 +#: src/tables/stock/StockItemTable.tsx:465 msgid "Remove some quantity from a stock item" msgstr "" -#: src/tables/stock/StockItemTable.tsx:482 +#: src/tables/stock/StockItemTable.tsx:487 msgid "Move Stock items to new locations" msgstr "" -#: src/tables/stock/StockItemTable.tsx:489 +#: src/tables/stock/StockItemTable.tsx:494 msgid "Change stock status" msgstr "" -#: src/tables/stock/StockItemTable.tsx:491 +#: src/tables/stock/StockItemTable.tsx:496 msgid "Change the status of stock items" msgstr "" -#: src/tables/stock/StockItemTable.tsx:498 +#: src/tables/stock/StockItemTable.tsx:503 msgid "Merge stock" msgstr "" -#: src/tables/stock/StockItemTable.tsx:500 +#: src/tables/stock/StockItemTable.tsx:505 msgid "Merge stock items" msgstr "" -#: src/tables/stock/StockItemTable.tsx:509 -#: src/tables/stock/StockItemTable.tsx:516 +#: src/tables/stock/StockItemTable.tsx:514 +#: src/tables/stock/StockItemTable.tsx:521 msgid "Order new stock" msgstr "" -#: src/tables/stock/StockItemTable.tsx:514 +#: src/tables/stock/StockItemTable.tsx:519 msgid "Assign to customer" msgstr "" -#: src/tables/stock/StockItemTable.tsx:523 +#: src/tables/stock/StockItemTable.tsx:528 msgid "Delete stock" msgstr "" -#: src/tables/stock/StockItemTable.tsx:525 -msgid "Delete stock items" -msgstr "" +#: src/tables/stock/StockItemTable.tsx:528 +#~ msgid "Delete stock items" +#~ msgstr "Delete stock items" -#: src/tables/stock/StockItemTestResultTable.tsx:131 +#: src/tables/stock/StockItemTestResultTable.tsx:137 msgid "Test" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:157 +#: src/tables/stock/StockItemTestResultTable.tsx:163 msgid "Test result for installed stock item" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:168 -msgid "Result" -msgstr "" - -#: src/tables/stock/StockItemTestResultTable.tsx:190 +#: src/tables/stock/StockItemTestResultTable.tsx:196 msgid "Attachment" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:206 +#: src/tables/stock/StockItemTestResultTable.tsx:212 msgid "Test station" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:226 +#: src/tables/stock/StockItemTestResultTable.tsx:234 msgid "Finished" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:268 -#: src/tables/stock/StockItemTestResultTable.tsx:339 +#: src/tables/stock/StockItemTestResultTable.tsx:286 +#: src/tables/stock/StockItemTestResultTable.tsx:357 msgid "Edit Test Result" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:270 +#: src/tables/stock/StockItemTestResultTable.tsx:288 msgid "Test result updated" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:276 -#: src/tables/stock/StockItemTestResultTable.tsx:348 +#: src/tables/stock/StockItemTestResultTable.tsx:294 +#: src/tables/stock/StockItemTestResultTable.tsx:366 msgid "Delete Test Result" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:278 +#: src/tables/stock/StockItemTestResultTable.tsx:296 msgid "Test result deleted" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:292 +#: src/tables/stock/StockItemTestResultTable.tsx:310 msgid "Test Passed" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:293 +#: src/tables/stock/StockItemTestResultTable.tsx:311 msgid "Test result has been recorded" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:300 +#: src/tables/stock/StockItemTestResultTable.tsx:318 msgid "Failed to record test result" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:317 +#: src/tables/stock/StockItemTestResultTable.tsx:335 msgid "Pass Test" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:366 +#: src/tables/stock/StockItemTestResultTable.tsx:384 msgid "Show results for required tests" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:370 +#: src/tables/stock/StockItemTestResultTable.tsx:388 msgid "Include Installed" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:371 +#: src/tables/stock/StockItemTestResultTable.tsx:389 msgid "Show results for installed stock items" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:375 -#: src/tables/stock/TestStatisticsTable.tsx:74 +#: src/tables/stock/StockItemTestResultTable.tsx:393 +#: src/tables/stock/TestStatisticsTable.tsx:62 msgid "Passed" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:376 +#: src/tables/stock/StockItemTestResultTable.tsx:394 msgid "Show only passed tests" msgstr "" @@ -7922,28 +9179,32 @@ msgid "Filter by location type" msgstr "" #: src/tables/stock/StockLocationTable.tsx:107 -#: src/tables/stock/StockLocationTable.tsx:133 +#: src/tables/stock/StockLocationTable.tsx:134 msgid "Add Stock Location" msgstr "" -#: src/tables/stock/StockTrackingTable.tsx:64 +#: src/tables/stock/StockTrackingTable.tsx:68 msgid "Added" msgstr "" -#: src/tables/stock/StockTrackingTable.tsx:69 +#: src/tables/stock/StockTrackingTable.tsx:73 msgid "Removed" msgstr "" #: src/tables/stock/StockTrackingTable.tsx:198 +msgid "Details" +msgstr "Beschrijving" + +#: src/tables/stock/StockTrackingTable.tsx:213 msgid "No user information" msgstr "" -#: src/tables/stock/TestStatisticsTable.tsx:46 -#: src/tables/stock/TestStatisticsTable.tsx:76 +#: src/tables/stock/TestStatisticsTable.tsx:34 +#: src/tables/stock/TestStatisticsTable.tsx:64 msgid "Total" msgstr "" -#: src/tables/stock/TestStatisticsTable.tsx:75 +#: src/tables/stock/TestStatisticsTable.tsx:63 msgid "Failed" msgstr "" diff --git a/src/frontend/src/locales/no/messages.po b/src/frontend/src/locales/no/messages.po index 807fc80cd6..d2d39dcb97 100644 --- a/src/frontend/src/locales/no/messages.po +++ b/src/frontend/src/locales/no/messages.po @@ -8,15 +8,15 @@ msgstr "" "Language: no\n" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"PO-Revision-Date: 2024-08-20 19:50\n" +"PO-Revision-Date: 2024-11-04 03:14\n" "Last-Translator: \n" "Language-Team: Norwegian\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Crowdin-Project: inventree\n" "X-Crowdin-Project-ID: 452300\n" "X-Crowdin-Language: no\n" -"X-Crowdin-File: /[inventree.InvenTree] l10/src/frontend/src/locales/en/messages.po\n" -"X-Crowdin-File-ID: 205\n" +"X-Crowdin-File: /src/frontend/src/locales/en/messages.po\n" +"X-Crowdin-File-ID: 252\n" #: src/components/Boundary.tsx:12 msgid "Error rendering component" @@ -27,8 +27,8 @@ msgid "An error occurred while rendering this component. Refer to the console fo msgstr "" #: src/components/DashboardItemProxy.tsx:34 -msgid "Title" -msgstr "Tittel" +#~ msgid "Title" +#~ msgstr "Title" #: src/components/buttons/AdminButton.tsx:80 msgid "Open in admin interface" @@ -38,83 +38,100 @@ msgstr "" #~ msgid "Copy to clipboard" #~ msgstr "Copy to clipboard" -#: src/components/buttons/CopyButton.tsx:24 +#: src/components/buttons/CopyButton.tsx:29 msgid "Copied" msgstr "" -#: src/components/buttons/CopyButton.tsx:24 +#: src/components/buttons/CopyButton.tsx:29 msgid "Copy" msgstr "" -#: src/components/buttons/PrintingActions.tsx:93 +#: src/components/buttons/PrintingActions.tsx:97 msgid "Print Label" msgstr "" -#: src/components/buttons/PrintingActions.tsx:99 +#: src/components/buttons/PrintingActions.tsx:103 msgid "Print" msgstr "" -#: src/components/buttons/PrintingActions.tsx:100 +#: src/components/buttons/PrintingActions.tsx:104 msgid "Label printing completed successfully" msgstr "" -#: src/components/buttons/PrintingActions.tsx:106 -#: src/components/buttons/PrintingActions.tsx:144 -#: src/components/editors/NotesEditor.tsx:65 -#: src/components/editors/NotesEditor.tsx:165 -#: src/components/forms/fields/ApiFormField.tsx:319 +#: src/components/buttons/PrintingActions.tsx:110 +#: src/components/buttons/PrintingActions.tsx:148 +#: src/components/editors/NotesEditor.tsx:73 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:154 +#: src/components/forms/fields/ApiFormField.tsx:328 +#: src/components/forms/fields/TableField.tsx:43 #: src/components/importer/ImportDataSelector.tsx:187 -#: src/components/importer/ImporterColumnSelector.tsx:207 +#: src/components/importer/ImporterColumnSelector.tsx:210 #: src/components/modals/LicenseModal.tsx:75 -#: src/components/nav/SearchDrawer.tsx:448 +#: src/components/nav/SearchDrawer.tsx:458 +#: src/components/render/ModelType.tsx:290 #: src/pages/ErrorPage.tsx:11 -#: src/pages/part/PartPricingPanel.tsx:67 -#: src/tables/InvenTreeTable.tsx:495 +#: src/pages/part/PartPricingPanel.tsx:71 +#: src/tables/InvenTreeTable.tsx:481 #: src/tables/bom/BomTable.tsx:450 -#: src/tables/stock/StockItemTestResultTable.tsx:299 +#: src/tables/stock/StockItemTestResultTable.tsx:317 msgid "Error" msgstr "Feil" -#: src/components/buttons/PrintingActions.tsx:107 +#: src/components/buttons/PrintingActions.tsx:111 msgid "The label could not be generated" msgstr "" -#: src/components/buttons/PrintingActions.tsx:122 +#: src/components/buttons/PrintingActions.tsx:126 msgid "Print Report" msgstr "" -#: src/components/buttons/PrintingActions.tsx:138 +#: src/components/buttons/PrintingActions.tsx:142 msgid "Generate" msgstr "" -#: src/components/buttons/PrintingActions.tsx:139 +#: src/components/buttons/PrintingActions.tsx:143 msgid "Report printing completed successfully" msgstr "" -#: src/components/buttons/PrintingActions.tsx:145 +#: src/components/buttons/PrintingActions.tsx:149 msgid "The report could not be generated" msgstr "" -#: src/components/buttons/PrintingActions.tsx:173 +#: src/components/buttons/PrintingActions.tsx:177 msgid "Printing Actions" msgstr "" -#: src/components/buttons/PrintingActions.tsx:178 +#: src/components/buttons/PrintingActions.tsx:182 msgid "Print Labels" msgstr "" -#: src/components/buttons/PrintingActions.tsx:184 +#: src/components/buttons/PrintingActions.tsx:188 msgid "Print Reports" msgstr "" +#: src/components/buttons/RemoveRowButton.tsx:8 +msgid "Remove this row" +msgstr "" + #: src/components/buttons/ScanButton.tsx:15 -msgid "Scan QR code" -msgstr "Skann QR-kode" +#: src/components/nav/NavigationDrawer.tsx:117 +#: src/forms/PurchaseOrderForms.tsx:379 +#: src/forms/PurchaseOrderForms.tsx:473 +msgid "Scan Barcode" +msgstr "" + +#: src/components/buttons/ScanButton.tsx:15 +#~ msgid "Scan QR code" +#~ msgstr "Scan QR code" #: src/components/buttons/ScanButton.tsx:20 -msgid "Open QR code scanner" +msgid "Open Barcode Scanner" msgstr "" +#: src/components/buttons/ScanButton.tsx:20 +#~ msgid "Open QR code scanner" +#~ msgstr "Open QR code scanner" + #: src/components/buttons/SpotlightButton.tsx:14 msgid "Open spotlight" msgstr "" @@ -128,85 +145,347 @@ msgid "Fail" msgstr "" #: src/components/buttons/YesNoButton.tsx:33 -#: src/tables/Filter.tsx:52 +#: src/tables/Filter.tsx:61 msgid "Yes" msgstr "Ja" #: src/components/buttons/YesNoButton.tsx:33 -#: src/tables/Filter.tsx:53 +#: src/tables/Filter.tsx:62 msgid "No" msgstr "Nei" -#: src/components/details/Details.tsx:301 +#: src/components/dashboard/DashboardLayout.tsx:286 +msgid "No Widgets Selected" +msgstr "" + +#: src/components/dashboard/DashboardLayout.tsx:289 +msgid "Use the menu to add widgets to the dashboard" +msgstr "" + +#: src/components/dashboard/DashboardMenu.tsx:59 +#: src/components/dashboard/DashboardMenu.tsx:126 +msgid "Accept Layout" +msgstr "" + +#: src/components/dashboard/DashboardMenu.tsx:91 +#: src/components/nav/NavigationDrawer.tsx:71 +#: src/defaults/actions.tsx:17 +#: src/defaults/links.tsx:9 +#: src/pages/Index/Settings/UserSettings.tsx:47 +msgid "Dashboard" +msgstr "Dashbord" + +#: src/components/dashboard/DashboardMenu.tsx:99 +msgid "Edit Layout" +msgstr "Rediger oppsett" + +#: src/components/dashboard/DashboardMenu.tsx:108 +msgid "Add Widget" +msgstr "" + +#: src/components/dashboard/DashboardMenu.tsx:117 +msgid "Remove Widgets" +msgstr "" + +#: src/components/dashboard/DashboardWidget.tsx:65 +msgid "Remove this widget from the dashboard" +msgstr "" + +#: src/components/dashboard/DashboardWidgetDrawer.tsx:77 +msgid "Filter dashboard widgets" +msgstr "" + +#: src/components/dashboard/DashboardWidgetDrawer.tsx:98 +msgid "Add this widget to the dashboard" +msgstr "" + +#: src/components/dashboard/DashboardWidgetDrawer.tsx:123 +msgid "No Widgets Available" +msgstr "" + +#: src/components/dashboard/DashboardWidgetDrawer.tsx:124 +msgid "There are no more widgets available for the dashboard" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:19 +msgid "Subscribed Parts" +msgstr "Abonnerte deler" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:20 +msgid "Show the number of parts which you have subscribed to" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:26 +msgid "Subscribed Categories" +msgstr "Abonnerte kategorier" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:27 +msgid "Show the number of part categories which you have subscribed to" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:35 +#: src/pages/part/PartSchedulingDetail.tsx:304 +#: src/tables/part/PartTable.tsx:238 +msgid "Low Stock" +msgstr "Lav lagerbeholdning" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:37 +msgid "Show the number of parts which are low on stock" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:43 +msgid "Expired Stock Items" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:45 +msgid "Show the number of stock items which have expired" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:51 +msgid "Stale Stock Items" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:53 +msgid "Show the number of stock items which are stale" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:59 +msgid "Active Build Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:61 +msgid "Show the number of build orders which are currently active" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:66 +msgid "Overdue Build Orders" +msgstr "Forfalte Produksjonsordre" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:68 +msgid "Show the number of build orders which are overdue" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:73 +msgid "Assigned Build Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:75 +msgid "Show the number of build orders which are assigned to you" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:80 +msgid "Active Sales Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:82 +msgid "Show the number of sales orders which are currently active" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:87 +msgid "Overdue Sales Orders" +msgstr "Forfalte salgsordre" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:89 +msgid "Show the number of sales orders which are overdue" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:94 +msgid "Assigned Sales Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:96 +msgid "Show the number of sales orders which are assigned to you" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:101 +msgid "Active Purchase Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:103 +msgid "Show the number of purchase orders which are currently active" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:108 +msgid "Overdue Purchase Orders" +msgstr "Forfalte innkjøpsordre" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:110 +msgid "Show the number of purchase orders which are overdue" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:115 +msgid "Assigned Purchase Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:117 +msgid "Show the number of purchase orders which are assigned to you" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:122 +msgid "Active Return Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:124 +msgid "Show the number of return orders which are currently active" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:129 +msgid "Overdue Return Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:131 +msgid "Show the number of return orders which are overdue" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:136 +msgid "Assigned Return Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:138 +msgid "Show the number of return orders which are assigned to you" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:149 +#: src/components/dashboard/widgets/GetStartedWidget.tsx:15 +#: src/defaults/links.tsx:38 +msgid "Getting Started" +msgstr "Komme i gang" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:150 +#: src/defaults/links.tsx:41 +msgid "Getting started with InvenTree" +msgstr "Komme i gang med InvenTree" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:157 +#: src/components/dashboard/widgets/NewsWidget.tsx:123 +msgid "News Updates" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:158 +msgid "The latest news from InvenTree" +msgstr "" + +#: src/components/dashboard/widgets/ColorToggleWidget.tsx:18 +#: src/components/nav/MainMenu.tsx:77 +msgid "Change Color Mode" +msgstr "" + +#: src/components/dashboard/widgets/ColorToggleWidget.tsx:23 +msgid "Change the color mode of the user interface" +msgstr "" + +#: src/components/dashboard/widgets/LanguageSelectWidget.tsx:18 +msgid "Change Language" +msgstr "" + +#: src/components/dashboard/widgets/LanguageSelectWidget.tsx:23 +msgid "Change the language of the user interface" +msgstr "" + +#: src/components/dashboard/widgets/NewsWidget.tsx:61 +#: src/components/nav/NotificationDrawer.tsx:88 +#: src/pages/Notifications.tsx:73 +msgid "Mark as read" +msgstr "Merk som lest" + +#: src/components/dashboard/widgets/NewsWidget.tsx:115 +msgid "Requires Superuser" +msgstr "" + +#: src/components/dashboard/widgets/NewsWidget.tsx:116 +msgid "This widget requires superuser permissions" +msgstr "" + +#: src/components/dashboard/widgets/NewsWidget.tsx:133 +msgid "No News" +msgstr "" + +#: src/components/dashboard/widgets/NewsWidget.tsx:134 +msgid "There are no unread news items" +msgstr "" + +#: src/components/details/Details.tsx:300 msgid "No name defined" msgstr "" -#: src/components/details/DetailsImage.tsx:65 +#: src/components/details/DetailsImage.tsx:69 msgid "Remove Image" msgstr "" -#: src/components/details/DetailsImage.tsx:68 +#: src/components/details/DetailsImage.tsx:72 msgid "Remove the associated image from this item?" msgstr "" -#: src/components/details/DetailsImage.tsx:71 -#: src/forms/StockForms.tsx:533 +#: src/components/details/DetailsImage.tsx:75 +#: src/forms/StockForms.tsx:651 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:199 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:306 -#: src/pages/stock/StockDetail.tsx:526 +#: src/pages/stock/StockDetail.tsx:690 msgid "Remove" msgstr "Fjern" -#: src/components/details/DetailsImage.tsx:71 -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:158 -#: src/components/items/ActionDropdown.tsx:215 -#: src/components/items/ActionDropdown.tsx:216 -#: src/contexts/ThemeContext.tsx:43 +#: src/components/details/DetailsImage.tsx:75 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:184 +#: src/components/items/ActionDropdown.tsx:268 +#: src/components/items/ActionDropdown.tsx:269 +#: src/contexts/ThemeContext.tsx:45 #: src/hooks/UseForm.tsx:40 -#: src/tables/FilterSelectDrawer.tsx:205 -#: src/tables/build/BuildOutputTable.tsx:286 +#: src/tables/FilterSelectDrawer.tsx:241 +#: src/tables/RowActions.tsx:59 +#: src/tables/build/BuildOutputTable.tsx:434 msgid "Cancel" msgstr "Avbryt" -#: src/components/details/DetailsImage.tsx:97 +#: src/components/details/DetailsImage.tsx:101 msgid "Drag and drop to upload" msgstr "" -#: src/components/details/DetailsImage.tsx:100 +#: src/components/details/DetailsImage.tsx:104 msgid "Click to select file(s)" msgstr "" -#: src/components/details/DetailsImage.tsx:226 +#: src/components/details/DetailsImage.tsx:230 msgid "Clear" msgstr "" -#: src/components/details/DetailsImage.tsx:232 -#: src/components/forms/ApiForm.tsx:627 -#: src/contexts/ThemeContext.tsx:43 -#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:60 +#: src/components/details/DetailsImage.tsx:236 +#: src/components/forms/ApiForm.tsx:660 +#: src/contexts/ThemeContext.tsx:45 msgid "Submit" msgstr "Send" -#: src/components/details/DetailsImage.tsx:272 +#: src/components/details/DetailsImage.tsx:280 msgid "Select from existing images" msgstr "" -#: src/components/details/DetailsImage.tsx:280 +#: src/components/details/DetailsImage.tsx:288 msgid "Select Image" msgstr "" -#: src/components/details/DetailsImage.tsx:292 +#: src/components/details/DetailsImage.tsx:304 +msgid "Download remote image" +msgstr "" + +#: src/components/details/DetailsImage.tsx:319 msgid "Upload new image" msgstr "" -#: src/components/details/DetailsImage.tsx:299 +#: src/components/details/DetailsImage.tsx:326 msgid "Upload Image" msgstr "" -#: src/components/details/DetailsImage.tsx:312 +#: src/components/details/DetailsImage.tsx:339 msgid "Delete image" msgstr "" +#: src/components/details/DetailsImage.tsx:373 +msgid "Download Image" +msgstr "" + +#: src/components/details/DetailsImage.tsx:378 +msgid "Image downloaded successfully" +msgstr "" + #: src/components/details/PartIcons.tsx:43 #~ msgid "Part is a template part (variants can be made from this part)" #~ msgstr "Part is a template part (variants can be made from this part)" @@ -235,36 +514,57 @@ msgstr "" #~ msgid "Part is virtual (not a physical part)" #~ msgstr "Part is virtual (not a physical part)" -#: src/components/editors/NotesEditor.tsx:66 +#: src/components/editors/NotesEditor.tsx:74 msgid "Image upload failed" msgstr "" -#: src/components/editors/NotesEditor.tsx:156 -#: src/components/forms/ApiForm.tsx:467 +#: src/components/editors/NotesEditor.tsx:83 +#: src/components/editors/NotesEditor.tsx:119 +#: src/components/forms/ApiForm.tsx:475 #: src/tables/bom/BomTable.tsx:441 msgid "Success" msgstr "Suksess" -#: src/components/editors/NotesEditor.tsx:157 +#: src/components/editors/NotesEditor.tsx:84 +msgid "Image uploaded successfully" +msgstr "" + +#: src/components/editors/NotesEditor.tsx:120 msgid "Notes saved successfully" msgstr "" -#: src/components/editors/NotesEditor.tsx:166 +#: src/components/editors/NotesEditor.tsx:131 msgid "Failed to save notes" msgstr "Kunne ikke lagre notater" -#: src/components/editors/NotesEditor.tsx:198 -msgid "Preview Notes" +#: src/components/editors/NotesEditor.tsx:134 +msgid "Error Saving Notes" msgstr "" -#: src/components/editors/NotesEditor.tsx:198 -msgid "Edit Notes" -msgstr "" +#: src/components/editors/NotesEditor.tsx:151 +#~ msgid "Disable Editing" +#~ msgstr "Disable Editing" -#: src/components/editors/NotesEditor.tsx:212 +#: src/components/editors/NotesEditor.tsx:154 msgid "Save Notes" msgstr "" +#: src/components/editors/NotesEditor.tsx:173 +msgid "Close Editor" +msgstr "" + +#: src/components/editors/NotesEditor.tsx:180 +msgid "Enable Editing" +msgstr "" + +#: src/components/editors/NotesEditor.tsx:198 +#~ msgid "Preview Notes" +#~ msgstr "Preview Notes" + +#: src/components/editors/NotesEditor.tsx:198 +#~ msgid "Edit Notes" +#~ msgstr "Edit Notes" + #: src/components/editors/TemplateEditor/CodeEditor/index.tsx:9 msgid "Code" msgstr "" @@ -281,40 +581,44 @@ msgstr "" msgid "PDF Preview" msgstr "" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:104 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:115 msgid "Error loading template" msgstr "" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:116 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:127 msgid "Error saving template" msgstr "" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:146 -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:274 -msgid "Save & Reload Preview" -msgstr "" - -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:151 -msgid "Are you sure you want to Save & Reload the preview?" -msgstr "" - #: src/components/editors/TemplateEditor/TemplateEditor.tsx:151 #~ msgid "Save & Reload preview?" #~ msgstr "Save & Reload preview?" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:153 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:155 +msgid "Could not load the template from the server." +msgstr "" + +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:172 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:303 +msgid "Save & Reload Preview" +msgstr "" + +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:177 +msgid "Are you sure you want to Save & Reload the preview?" +msgstr "" + +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:179 msgid "To render the preview the current template needs to be replaced on the server with your modifications which may break the label if it is under active use. Do you want to proceed?" msgstr "" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:157 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:183 msgid "Save & Reload" msgstr "" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:189 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:215 msgid "Preview updated" msgstr "" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:190 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:216 msgid "The preview has been updated successfully." msgstr "" @@ -322,15 +626,15 @@ msgstr "" #~ msgid "Save & Reload preview" #~ msgstr "Save & Reload preview" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:266 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:295 msgid "Reload preview" msgstr "" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:267 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:296 msgid "Use the currently stored template from the server" msgstr "" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:275 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:304 msgid "Save the current template and reload the preview" msgstr "" @@ -338,11 +642,11 @@ msgstr "" #~ msgid "to preview" #~ msgstr "to preview" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:333 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:365 msgid "Select instance to preview" msgstr "" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:377 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:409 msgid "Error rendering template" msgstr "" @@ -379,6 +683,7 @@ msgid "This page does not exist" msgstr "" #: src/components/errors/PermissionDenied.tsx:8 +#: src/functions/notifications.tsx:24 msgid "Permission Denied" msgstr "" @@ -394,8 +699,8 @@ msgstr "" msgid "A server error occurred" msgstr "" -#: src/components/forms/ApiForm.tsx:151 -#: src/components/forms/ApiForm.tsx:555 +#: src/components/forms/ApiForm.tsx:154 +#: src/components/forms/ApiForm.tsx:579 msgid "Form Error" msgstr "Skjemafeil" @@ -403,22 +708,22 @@ msgstr "Skjemafeil" #~ msgid "Form Errors Exist" #~ msgstr "Form Errors Exist" -#: src/components/forms/ApiForm.tsx:563 +#: src/components/forms/ApiForm.tsx:587 msgid "Errors exist for one or more form fields" msgstr "" -#: src/components/forms/ApiForm.tsx:665 -#: src/tables/plugin/PluginListTable.tsx:388 +#: src/components/forms/ApiForm.tsx:698 +#: src/tables/plugin/PluginListTable.tsx:195 msgid "Update" msgstr "Oppdater" -#: src/components/forms/ApiForm.tsx:685 -#: src/components/items/ActionDropdown.tsx:195 +#: src/components/forms/ApiForm.tsx:718 +#: src/components/items/ActionDropdown.tsx:248 #: src/hooks/UseForm.tsx:122 -#: src/pages/Index/Scan.tsx:343 +#: src/pages/Index/Scan.tsx:357 #: src/pages/Notifications.tsx:123 -#: src/tables/RowActions.tsx:43 -#: src/tables/plugin/PluginListTable.tsx:420 +#: src/tables/RowActions.tsx:49 +#: src/tables/plugin/PluginListTable.tsx:232 msgid "Delete" msgstr "Slett" @@ -428,14 +733,6 @@ msgstr "Slett" #~ msgid "Check your your input and try again." #~ msgstr "Check your your input and try again." -#: src/components/forms/AuthenticationForm.tsx:51 -msgid "Login successful" -msgstr "Innlogging vellykket" - -#: src/components/forms/AuthenticationForm.tsx:52 -msgid "Logged in successfully" -msgstr "" - #: src/components/forms/AuthenticationForm.tsx:52 #~ msgid "Welcome back!" #~ msgstr "Welcome back!" @@ -444,14 +741,22 @@ msgstr "" #~ msgid "Login successfull" #~ msgstr "Login successfull" -#: src/components/forms/AuthenticationForm.tsx:58 +#: src/components/forms/AuthenticationForm.tsx:55 +msgid "Login successful" +msgstr "Innlogging vellykket" + +#: src/components/forms/AuthenticationForm.tsx:56 +msgid "Logged in successfully" +msgstr "" + +#: src/components/forms/AuthenticationForm.tsx:61 msgid "Login failed" msgstr "Innloggingen mislyktes" -#: src/components/forms/AuthenticationForm.tsx:59 -#: src/components/forms/AuthenticationForm.tsx:76 -#: src/components/forms/AuthenticationForm.tsx:211 -#: src/functions/auth.tsx:164 +#: src/components/forms/AuthenticationForm.tsx:62 +#: src/components/forms/AuthenticationForm.tsx:79 +#: src/components/forms/AuthenticationForm.tsx:214 +#: src/functions/auth.tsx:175 msgid "Check your input and try again." msgstr "Kontroller inndataene og prøv igjen." @@ -460,45 +765,46 @@ msgstr "Kontroller inndataene og prøv igjen." #~ msgid "Mail delivery successfull" #~ msgstr "Mail delivery successfull" -#: src/components/forms/AuthenticationForm.tsx:70 -#: src/functions/auth.tsx:155 +#: src/components/forms/AuthenticationForm.tsx:73 +#: src/functions/auth.tsx:166 msgid "Mail delivery successful" msgstr "Levering av e-post vellykket" -#: src/components/forms/AuthenticationForm.tsx:71 +#: src/components/forms/AuthenticationForm.tsx:74 msgid "Check your inbox for the login link. If you have an account, you will receive a login link. Check in spam too." msgstr "Sjekk innboksen din for innloggingslenken. Hvis du har en konto, får du en innloggingslenke. Sjekk også i spam." -#: src/components/forms/AuthenticationForm.tsx:75 +#: src/components/forms/AuthenticationForm.tsx:78 msgid "Mail delivery failed" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:95 +#: src/components/forms/AuthenticationForm.tsx:98 msgid "Or continue with other methods" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:106 -#: src/components/forms/AuthenticationForm.tsx:227 +#: src/components/forms/AuthenticationForm.tsx:109 +#: src/components/forms/AuthenticationForm.tsx:230 +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:67 msgid "Username" msgstr "Brukernavn" -#: src/components/forms/AuthenticationForm.tsx:107 -#: src/components/forms/AuthenticationForm.tsx:228 +#: src/components/forms/AuthenticationForm.tsx:110 +#: src/components/forms/AuthenticationForm.tsx:231 msgid "Your username" msgstr "Your username" -#: src/components/forms/AuthenticationForm.tsx:112 -#: src/components/forms/AuthenticationForm.tsx:240 -#: src/pages/Auth/Set-Password.tsx:106 +#: src/components/forms/AuthenticationForm.tsx:115 +#: src/components/forms/AuthenticationForm.tsx:243 +#: src/pages/Auth/Set-Password.tsx:101 msgid "Password" msgstr "Passord" -#: src/components/forms/AuthenticationForm.tsx:113 -#: src/components/forms/AuthenticationForm.tsx:241 +#: src/components/forms/AuthenticationForm.tsx:116 +#: src/components/forms/AuthenticationForm.tsx:244 msgid "Your password" msgstr "Ditt passord" -#: src/components/forms/AuthenticationForm.tsx:125 +#: src/components/forms/AuthenticationForm.tsx:128 #: src/pages/Auth/Reset.tsx:26 msgid "Reset password" msgstr "Tilbakestill passord" @@ -507,77 +813,79 @@ msgstr "Tilbakestill passord" #~ msgid "Log in" #~ msgstr "Log in" -#: src/components/forms/AuthenticationForm.tsx:134 -#: src/components/forms/AuthenticationForm.tsx:233 +#: src/components/forms/AuthenticationForm.tsx:136 +#~ msgid "I will use username and password" +#~ msgstr "I will use username and password" + +#: src/components/forms/AuthenticationForm.tsx:137 +#: src/components/forms/AuthenticationForm.tsx:236 #: src/pages/Auth/Reset.tsx:31 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:51 msgid "Email" msgstr "E-post" -#: src/components/forms/AuthenticationForm.tsx:135 +#: src/components/forms/AuthenticationForm.tsx:138 #: src/pages/Auth/Reset.tsx:32 -#: src/pages/Auth/Set-Password.tsx:107 +#: src/pages/Auth/Set-Password.tsx:102 msgid "We will send you a link to login - if you are registered" msgstr "Vi sender deg en lenke for å logge inn - hvis du er registrert" -#: src/components/forms/AuthenticationForm.tsx:136 -#~ msgid "I will use username and password" -#~ msgstr "I will use username and password" - -#: src/components/forms/AuthenticationForm.tsx:151 +#: src/components/forms/AuthenticationForm.tsx:154 msgid "Send me an email" msgstr "Send meg en e-post" -#: src/components/forms/AuthenticationForm.tsx:153 +#: src/components/forms/AuthenticationForm.tsx:156 msgid "Use username and password" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:162 +#: src/components/forms/AuthenticationForm.tsx:165 msgid "Log In" msgstr "Logg inn" -#: src/components/forms/AuthenticationForm.tsx:164 +#: src/components/forms/AuthenticationForm.tsx:167 +#: src/pages/Auth/Reset.tsx:41 +#: src/pages/Auth/Set-Password.tsx:107 msgid "Send Email" msgstr "Send e-post" -#: src/components/forms/AuthenticationForm.tsx:193 +#: src/components/forms/AuthenticationForm.tsx:196 msgid "Registration successful" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:194 +#: src/components/forms/AuthenticationForm.tsx:197 msgid "Please confirm your email address to complete the registration" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:210 +#: src/components/forms/AuthenticationForm.tsx:213 msgid "Input error" msgstr "Inndatafeil" -#: src/components/forms/AuthenticationForm.tsx:234 +#: src/components/forms/AuthenticationForm.tsx:237 msgid "This will be used for a confirmation" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:246 +#: src/components/forms/AuthenticationForm.tsx:249 msgid "Password repeat" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:247 +#: src/components/forms/AuthenticationForm.tsx:250 msgid "Repeat password" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:259 -#: src/components/forms/AuthenticationForm.tsx:304 +#: src/components/forms/AuthenticationForm.tsx:262 +#: src/components/forms/AuthenticationForm.tsx:307 msgid "Register" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:265 +#: src/components/forms/AuthenticationForm.tsx:268 msgid "Or use SSO" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:296 +#: src/components/forms/AuthenticationForm.tsx:299 msgid "Don't have an account?" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:315 +#: src/components/forms/AuthenticationForm.tsx:318 msgid "Go back to login" msgstr "" @@ -588,19 +896,20 @@ msgstr "Vert" #: src/components/forms/HostOptionsForm.tsx:42 #: src/components/forms/HostOptionsForm.tsx:70 +#: src/components/plugins/PluginDrawer.tsx:69 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:410 +#: src/pages/Index/Settings/AdminCenter/UnitManagmentPanel.tsx:19 #: src/pages/part/CategoryDetail.tsx:81 -#: src/pages/part/PartDetail.tsx:143 -#: src/pages/stock/LocationDetail.tsx:89 -#: src/tables/machine/MachineTypeTable.tsx:65 -#: src/tables/machine/MachineTypeTable.tsx:109 -#: src/tables/machine/MachineTypeTable.tsx:216 -#: src/tables/machine/MachineTypeTable.tsx:319 +#: src/pages/part/PartDetail.tsx:164 +#: src/pages/stock/LocationDetail.tsx:83 +#: src/tables/machine/MachineTypeTable.tsx:70 +#: src/tables/machine/MachineTypeTable.tsx:119 +#: src/tables/machine/MachineTypeTable.tsx:237 +#: src/tables/machine/MachineTypeTable.tsx:340 #: src/tables/plugin/PluginErrorTable.tsx:33 -#: src/tables/plugin/PluginListTable.tsx:126 #: src/tables/purchasing/ManufacturerPartParameterTable.tsx:32 #: src/tables/settings/GroupTable.tsx:147 -#: src/tables/settings/PendingTasksTable.tsx:28 +#: src/tables/settings/PendingTasksTable.tsx:32 #: src/tables/stock/LocationTypesTable.tsx:69 msgid "Name" msgstr "Navn" @@ -650,7 +959,7 @@ msgid "Uncategorized" msgstr "" #: src/components/forms/fields/IconField.tsx:209 -#: src/components/nav/Layout.tsx:70 +#: src/components/nav/Layout.tsx:77 #: src/tables/part/PartThumbTable.tsx:192 msgid "Search..." msgstr "" @@ -667,28 +976,27 @@ msgstr "" msgid "{0} icons" msgstr "" -#: src/components/forms/fields/RelatedModelField.tsx:318 -#: src/pages/Index/Settings/UserSettings.tsx:96 +#: src/components/forms/fields/RelatedModelField.tsx:319 +#: src/pages/Index/Settings/UserSettings.tsx:97 #: src/tables/Search.tsx:23 msgid "Search" msgstr "Søk" -#: src/components/forms/fields/RelatedModelField.tsx:319 +#: src/components/forms/fields/RelatedModelField.tsx:320 #: src/components/modals/AboutInvenTreeModal.tsx:81 -#: src/components/widgets/WidgetLayout.tsx:120 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:316 msgid "Loading" msgstr "Laster" -#: src/components/forms/fields/RelatedModelField.tsx:321 +#: src/components/forms/fields/RelatedModelField.tsx:322 msgid "No results found" msgstr "Ingen resultater funnet" -#: src/components/forms/fields/TableField.tsx:52 -msgid "modelRenderer entry required for tables" -msgstr "" +#: src/components/forms/fields/TableField.tsx:72 +#~ msgid "modelRenderer entry required for tables" +#~ msgstr "modelRenderer entry required for tables" -#: src/components/forms/fields/TableField.tsx:76 +#: src/components/forms/fields/TableField.tsx:167 msgid "No entries available" msgstr "" @@ -741,7 +1049,7 @@ msgid "Filter by row validation status" msgstr "" #: src/components/importer/ImportDataSelector.tsx:365 -#: src/tables/build/BuildOutputTable.tsx:266 +#: src/tables/build/BuildOutputTable.tsx:407 msgid "Complete" msgstr "" @@ -749,20 +1057,21 @@ msgstr "" msgid "Filter by row completion status" msgstr "" -#: src/components/importer/ImportDataSelector.tsx:383 +#: src/components/importer/ImportDataSelector.tsx:384 msgid "Import selected rows" msgstr "" -#: src/components/importer/ImportDataSelector.tsx:398 +#: src/components/importer/ImportDataSelector.tsx:399 msgid "Processing Data" msgstr "" -#: src/components/importer/ImporterColumnSelector.tsx:50 -#: src/components/importer/ImporterColumnSelector.tsx:176 +#: src/components/importer/ImporterColumnSelector.tsx:53 +#: src/components/importer/ImporterColumnSelector.tsx:179 +#: src/components/items/ErrorItem.tsx:12 msgid "An error occurred" msgstr "" -#: src/components/importer/ImporterColumnSelector.tsx:62 +#: src/components/importer/ImporterColumnSelector.tsx:65 msgid "Select column, or leave blank to ignore this field." msgstr "" @@ -778,51 +1087,51 @@ msgstr "" #~ msgid "Imported Column Name" #~ msgstr "Imported Column Name" -#: src/components/importer/ImporterColumnSelector.tsx:182 +#: src/components/importer/ImporterColumnSelector.tsx:185 msgid "Ignore this field" msgstr "" -#: src/components/importer/ImporterColumnSelector.tsx:196 +#: src/components/importer/ImporterColumnSelector.tsx:199 msgid "Mapping data columns to database fields" msgstr "" -#: src/components/importer/ImporterColumnSelector.tsx:201 +#: src/components/importer/ImporterColumnSelector.tsx:204 msgid "Accept Column Mapping" msgstr "" -#: src/components/importer/ImporterColumnSelector.tsx:214 +#: src/components/importer/ImporterColumnSelector.tsx:217 msgid "Database Field" msgstr "" -#: src/components/importer/ImporterColumnSelector.tsx:215 +#: src/components/importer/ImporterColumnSelector.tsx:218 msgid "Field Description" msgstr "" -#: src/components/importer/ImporterColumnSelector.tsx:216 +#: src/components/importer/ImporterColumnSelector.tsx:219 msgid "Imported Column" msgstr "" -#: src/components/importer/ImporterColumnSelector.tsx:217 +#: src/components/importer/ImporterColumnSelector.tsx:220 msgid "Default Value" msgstr "" -#: src/components/importer/ImporterDrawer.tsx:44 +#: src/components/importer/ImporterDrawer.tsx:46 msgid "Upload File" msgstr "" -#: src/components/importer/ImporterDrawer.tsx:45 +#: src/components/importer/ImporterDrawer.tsx:47 msgid "Map Columns" msgstr "" -#: src/components/importer/ImporterDrawer.tsx:46 +#: src/components/importer/ImporterDrawer.tsx:48 msgid "Import Data" msgstr "" -#: src/components/importer/ImporterDrawer.tsx:47 +#: src/components/importer/ImporterDrawer.tsx:49 msgid "Process Data" msgstr "" -#: src/components/importer/ImporterDrawer.tsx:48 +#: src/components/importer/ImporterDrawer.tsx:50 msgid "Complete Import" msgstr "" @@ -830,28 +1139,28 @@ msgstr "" #~ msgid "Cancel import session" #~ msgstr "Cancel import session" -#: src/components/importer/ImporterDrawer.tsx:104 +#: src/components/importer/ImporterDrawer.tsx:106 msgid "Import Complete" msgstr "" -#: src/components/importer/ImporterDrawer.tsx:107 +#: src/components/importer/ImporterDrawer.tsx:109 msgid "Data has been imported successfully" msgstr "" -#: src/components/importer/ImporterDrawer.tsx:109 -#: src/components/importer/ImporterDrawer.tsx:118 +#: src/components/importer/ImporterDrawer.tsx:111 +#: src/components/importer/ImporterDrawer.tsx:120 msgid "Close" msgstr "" -#: src/components/importer/ImporterDrawer.tsx:115 +#: src/components/importer/ImporterDrawer.tsx:117 msgid "Unknown Status" msgstr "" -#: src/components/importer/ImporterDrawer.tsx:116 +#: src/components/importer/ImporterDrawer.tsx:118 msgid "Import session has unknown status" msgstr "" -#: src/components/importer/ImporterDrawer.tsx:135 +#: src/components/importer/ImporterDrawer.tsx:137 msgid "Importing Data" msgstr "" @@ -860,85 +1169,115 @@ msgid "Importing Records" msgstr "" #: src/components/importer/ImporterImportProgress.tsx:39 -msgid "Imported rows" +#: src/tables/settings/ImportSessionTable.tsx:78 +msgid "Imported Rows" msgstr "" -#: src/components/items/ActionDropdown.tsx:121 +#: src/components/importer/ImporterImportProgress.tsx:39 +#~ msgid "Imported rows" +#~ msgstr "Imported rows" + +#: src/components/items/ActionDropdown.tsx:126 +msgid "Options" +msgstr "" + +#: src/components/items/ActionDropdown.tsx:140 +#~ msgid "View Barcode" +#~ msgstr "View Barcode" + +#: src/components/items/ActionDropdown.tsx:162 +#: src/tables/InvenTreeTableHeader.tsx:159 +#: src/tables/InvenTreeTableHeader.tsx:160 msgid "Barcode Actions" msgstr "Strekkodehandlinger" -#: src/components/items/ActionDropdown.tsx:140 -msgid "View Barcode" -msgstr "" +#: src/components/items/ActionDropdown.tsx:162 +#~ msgid "Link custom barcode" +#~ msgstr "Link custom barcode" -#: src/components/items/ActionDropdown.tsx:147 +#: src/components/items/ActionDropdown.tsx:167 msgid "View" msgstr "Visning" -#: src/components/items/ActionDropdown.tsx:148 +#: src/components/items/ActionDropdown.tsx:169 msgid "View barcode" msgstr "Vis strekkode" -#: src/components/items/ActionDropdown.tsx:161 +#: src/components/items/ActionDropdown.tsx:175 msgid "Link Barcode" msgstr "Koble mot strekkode" -#: src/components/items/ActionDropdown.tsx:162 -msgid "Link custom barcode" -msgstr "Koble til egendefinert strekkode" +#: src/components/items/ActionDropdown.tsx:177 +msgid "Link a custom barcode to this item" +msgstr "" -#: src/components/items/ActionDropdown.tsx:173 -#: src/forms/PurchaseOrderForms.tsx:426 +#: src/components/items/ActionDropdown.tsx:183 +#: src/components/items/QRCode.tsx:193 +#: src/forms/PurchaseOrderForms.tsx:464 msgid "Unlink Barcode" msgstr "Fjern strekkodekobling" -#: src/components/items/ActionDropdown.tsx:174 +#: src/components/items/ActionDropdown.tsx:185 msgid "Unlink custom barcode" msgstr "Koble fra egendefinert strekkode" -#: src/components/items/ActionDropdown.tsx:183 -#: src/tables/RowActions.tsx:33 +#: src/components/items/ActionDropdown.tsx:236 +#: src/tables/RowActions.tsx:39 msgid "Edit" msgstr "Rediger" -#: src/components/items/ActionDropdown.tsx:184 +#: src/components/items/ActionDropdown.tsx:237 msgid "Edit item" msgstr "" -#: src/components/items/ActionDropdown.tsx:196 +#: src/components/items/ActionDropdown.tsx:249 msgid "Delete item" msgstr "Slett element" -#: src/components/items/ActionDropdown.tsx:204 -#: src/components/items/ActionDropdown.tsx:205 +#: src/components/items/ActionDropdown.tsx:257 +#: src/components/items/ActionDropdown.tsx:258 msgid "Hold" msgstr "" -#: src/components/items/ActionDropdown.tsx:227 -#: src/tables/RowActions.tsx:23 +#: src/components/items/ActionDropdown.tsx:280 +#: src/tables/RowActions.tsx:29 msgid "Duplicate" msgstr "Dupliser" -#: src/components/items/ActionDropdown.tsx:228 +#: src/components/items/ActionDropdown.tsx:281 msgid "Duplicate item" msgstr "Dupliser element" +#: src/components/items/BarcodeInput.tsx:23 +msgid "Scan barcode data here using barcode scanner" +msgstr "" + +#: src/components/items/BarcodeInput.tsx:24 +#: src/tables/settings/BarcodeScanHistoryTable.tsx:65 +msgid "Barcode" +msgstr "" + +#: src/components/items/BarcodeInput.tsx:25 +msgid "Scan" +msgstr "" + #: src/components/items/DocTooltip.tsx:92 +#: src/components/items/GettingStartedCarousel.tsx:20 msgid "Read More" msgstr "Les mer" -#: src/components/items/ErrorItem.tsx:5 -#: src/tables/InvenTreeTable.tsx:487 +#: src/components/items/ErrorItem.tsx:8 +#: src/tables/InvenTreeTable.tsx:473 msgid "Unknown error" msgstr "Ukjent feil" -#: src/components/items/ErrorItem.tsx:10 -msgid "An error occurred:" -msgstr "En feil har oppstått:" +#: src/components/items/ErrorItem.tsx:13 +#~ msgid "An error occurred:" +#~ msgstr "An error occurred:" #: src/components/items/GettingStartedCarousel.tsx:27 -msgid "Read more" -msgstr "Les mer" +#~ msgid "Read more" +#~ msgstr "Read more" #: src/components/items/InfoItem.tsx:27 msgid "None" @@ -965,30 +1304,51 @@ msgstr "PLH" msgid "This panel is a placeholder." msgstr "Denne ruten er en plassholder." -#: src/components/items/QRCode.tsx:87 +#: src/components/items/QRCode.tsx:89 msgid "Low (7%)" msgstr "" -#: src/components/items/QRCode.tsx:88 +#: src/components/items/QRCode.tsx:90 msgid "Medium (15%)" msgstr "" -#: src/components/items/QRCode.tsx:89 +#: src/components/items/QRCode.tsx:91 msgid "Quartile (25%)" msgstr "" -#: src/components/items/QRCode.tsx:90 +#: src/components/items/QRCode.tsx:92 msgid "High (30%)" msgstr "" -#: src/components/items/QRCode.tsx:107 -msgid "Barcode Data:" +#: src/components/items/QRCode.tsx:100 +msgid "Custom barcode" +msgstr "" + +#: src/components/items/QRCode.tsx:101 +msgid "A custom barcode is registered for this item. The shown code is not that custom barcode." msgstr "" #: src/components/items/QRCode.tsx:118 +msgid "Barcode Data:" +msgstr "" + +#: src/components/items/QRCode.tsx:129 msgid "Select Error Correction Level" msgstr "" +#: src/components/items/QRCode.tsx:171 +#: src/pages/part/PartDetail.tsx:239 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:187 +#: src/pages/sales/ReturnOrderDetail.tsx:157 +#: src/pages/sales/SalesOrderDetail.tsx:169 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:166 +msgid "Link" +msgstr "Lenke" + +#: src/components/items/QRCode.tsx:190 +msgid "This will remove the link to the associated barcode" +msgstr "" + #: src/components/modals/AboutInvenTreeModal.tsx:99 msgid "Version Information" msgstr "Versjoninformasjon" @@ -1062,11 +1422,11 @@ msgstr "Mobilapp" msgid "Submit Bug Report" msgstr "Send feilrapport" -#: src/components/modals/AboutInvenTreeModal.tsx:183 +#: src/components/modals/AboutInvenTreeModal.tsx:181 msgid "Copy version information" msgstr "Kopiér versjonsinformasjon" -#: src/components/modals/AboutInvenTreeModal.tsx:192 +#: src/components/modals/AboutInvenTreeModal.tsx:189 #: src/components/modals/ServerInfoModal.tsx:147 msgid "Dismiss" msgstr "Lukk" @@ -1091,61 +1451,20 @@ msgstr "" msgid "{key} Packages" msgstr "" -#: src/components/modals/QrCodeModal.tsx:72 +#: src/components/modals/QrCodeModal.tsx:24 msgid "Unknown response" msgstr "Ukjent svar" -#: src/components/modals/QrCodeModal.tsx:102 -#: src/pages/Index/Scan.tsx:636 -msgid "Error while getting camera" -msgstr "Feil under henting av kamera" - -#: src/components/modals/QrCodeModal.tsx:125 -#: src/pages/Index/Scan.tsx:659 -msgid "Error while scanning" -msgstr "Feil under skanning" - -#: src/components/modals/QrCodeModal.tsx:139 -#: src/pages/Index/Scan.tsx:673 -msgid "Error while stopping" -msgstr "Feil under stans" - -#: src/components/modals/QrCodeModal.tsx:154 -#: src/defaults/menuItems.tsx:21 -#: src/pages/Index/Scan.tsx:746 -msgid "Scanning" -msgstr "Skanner" - -#: src/components/modals/QrCodeModal.tsx:154 -#: src/pages/Index/Scan.tsx:746 -msgid "Not scanning" -msgstr "Skanner ikke" - -#: src/components/modals/QrCodeModal.tsx:159 -#: src/pages/Index/Scan.tsx:752 -msgid "Select Camera" -msgstr "Velg kamera" - -#: src/components/modals/QrCodeModal.tsx:169 -#: src/pages/Index/Scan.tsx:737 -msgid "Start scanning" -msgstr "Start skanningen" - -#: src/components/modals/QrCodeModal.tsx:176 -#: src/pages/Index/Scan.tsx:729 -msgid "Stop scanning" -msgstr "Stopp skanning" - -#: src/components/modals/QrCodeModal.tsx:181 +#: src/components/modals/QrCodeModal.tsx:39 msgid "No scans yet!" msgstr "Ingen skanninger enda!" -#: src/components/modals/QrCodeModal.tsx:201 +#: src/components/modals/QrCodeModal.tsx:57 msgid "Close modal" msgstr "Lukk modal" #: src/components/modals/ServerInfoModal.tsx:26 -#: src/pages/Index/Settings/SystemSettings.tsx:38 +#: src/pages/Index/Settings/SystemSettings.tsx:37 msgid "Server" msgstr "Server" @@ -1206,6 +1525,7 @@ msgid "Background Worker" msgstr "Bakgrunnsarbeider" #: src/components/modals/ServerInfoModal.tsx:101 +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:29 msgid "Background worker not running" msgstr "Bakgrunnsarbeider kjører ikke" @@ -1218,8 +1538,8 @@ msgid "Email settings not configured" msgstr "E-postinnstillinger ikke konfigurert" #: src/components/modals/ServerInfoModal.tsx:121 -#: src/tables/plugin/PluginListTable.tsx:144 -#: src/tables/plugin/PluginListTable.tsx:294 +#: src/components/plugins/PluginDrawer.tsx:89 +#: src/tables/plugin/PluginListTable.tsx:116 msgid "Version" msgstr "Versjon" @@ -1227,7 +1547,7 @@ msgstr "Versjon" msgid "Server Version" msgstr "Serverversjon" -#: src/components/nav/Layout.tsx:73 +#: src/components/nav/Layout.tsx:80 msgid "Nothing found..." msgstr "" @@ -1237,18 +1557,26 @@ msgstr "" #~ msgstr "Profile" #: src/components/nav/MainMenu.tsx:52 +#: src/components/nav/NavigationDrawer.tsx:178 #: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:28 msgid "Settings" msgstr "Innstillinger" #: src/components/nav/MainMenu.tsx:59 -#: src/defaults/menuItems.tsx:15 -msgid "Account settings" +#: src/pages/Index/Settings/UserSettings.tsx:152 +msgid "Account Settings" msgstr "Kontoinnstillinger" +#: src/components/nav/MainMenu.tsx:59 +#: src/defaults/menuItems.tsx:15 +#~ msgid "Account settings" +#~ msgstr "Account settings" + #: src/components/nav/MainMenu.tsx:67 -#: src/defaults/menuItems.tsx:58 -#: src/pages/Index/Settings/SystemSettings.tsx:315 +#: src/components/nav/NavigationDrawer.tsx:141 +#: src/components/nav/SettingsHeader.tsx:49 +#: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:37 +#: src/pages/Index/Settings/SystemSettings.tsx:310 msgid "System Settings" msgstr "Systeminnstillinger" @@ -1260,14 +1588,11 @@ msgstr "Systeminnstillinger" #~ msgid "Switch to pseudo language" #~ msgstr "Switch to pseudo language" -#: src/components/nav/MainMenu.tsx:77 -msgid "Change Color Mode" -msgstr "" - #: src/components/nav/MainMenu.tsx:86 -#: src/defaults/actions.tsx:71 -#: src/defaults/menuItems.tsx:63 -#: src/pages/Index/Settings/AdminCenter/Index.tsx:221 +#: src/components/nav/NavigationDrawer.tsx:148 +#: src/components/nav/SettingsHeader.tsx:50 +#: src/defaults/actions.tsx:63 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:251 msgid "Admin Center" msgstr "Adminsenter" @@ -1275,458 +1600,732 @@ msgstr "Adminsenter" msgid "Logout" msgstr "Logg ut" -#: src/components/nav/NavHoverMenu.tsx:65 -#: src/defaults/actions.tsx:60 -msgid "Open Navigation" -msgstr "Åpne Navigasjon" - #: src/components/nav/NavHoverMenu.tsx:84 -msgid "View all" -msgstr "Vis alle" +#~ msgid "View all" +#~ msgstr "View all" #: src/components/nav/NavHoverMenu.tsx:100 #: src/components/nav/NavHoverMenu.tsx:110 -msgid "Get started" -msgstr "Kom i gang" +#~ msgid "Get started" +#~ msgstr "Get started" #: src/components/nav/NavHoverMenu.tsx:103 -msgid "Overview over high-level objects, functions and possible usecases." -msgstr "Oversikt over objekter, funksjoner og mulige bruksområder." - -#: src/components/nav/NavigationDrawer.tsx:57 -msgid "Navigation" -msgstr "Navigasjon" +#~ msgid "Overview over high-level objects, functions and possible usecases." +#~ msgstr "Overview over high-level objects, functions and possible usecases." #: src/components/nav/NavigationDrawer.tsx:60 -msgid "Pages" -msgstr "Sider" +#~ msgid "Pages" +#~ msgstr "Pages" -#: src/components/nav/NavigationDrawer.tsx:65 -#: src/pages/Index/Settings/AdminCenter/Index.tsx:176 -#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:41 -msgid "Plugins" -msgstr "Utvidelser" +#: src/components/nav/NavigationDrawer.tsx:77 +#: src/components/render/ModelType.tsx:31 +#: src/defaults/links.tsx:10 +#: src/pages/Index/Settings/SystemSettings.tsx:172 +#: src/pages/part/CategoryDetail.tsx:125 +#: src/pages/part/CategoryDetail.tsx:249 +#: src/pages/part/CategoryDetail.tsx:279 +#: src/pages/part/PartDetail.tsx:856 +msgid "Parts" +msgstr "Deler" -#: src/components/nav/NavigationDrawer.tsx:75 -#: src/defaults/actions.tsx:32 -msgid "Documentation" -msgstr "Dokumentasjon" +#: src/components/nav/NavigationDrawer.tsx:84 +#: src/components/render/Part.tsx:30 +#: src/defaults/links.tsx:11 +#: src/pages/Index/Settings/SystemSettings.tsx:205 +#: src/pages/part/PartDetail.tsx:593 +#: src/pages/stock/LocationDetail.tsx:352 +#: src/pages/stock/StockDetail.tsx:528 +#: src/tables/stock/StockItemTable.tsx:69 +msgid "Stock" +msgstr "Lagerbeholdning" -#: src/components/nav/NavigationDrawer.tsx:78 -msgid "About" -msgstr "Om" +#: src/components/nav/NavigationDrawer.tsx:91 +#: src/defaults/links.tsx:13 +#: src/pages/build/BuildDetail.tsx:530 +#: src/pages/build/BuildIndex.tsx:36 +msgid "Manufacturing" +msgstr "" -#: src/components/nav/NotificationDrawer.tsx:92 -#: src/pages/Index/Settings/SystemSettings.tsx:109 -#: src/pages/Index/Settings/UserSettings.tsx:126 +#: src/components/nav/NavigationDrawer.tsx:98 +#: src/defaults/links.tsx:18 +#: src/pages/company/ManufacturerDetail.tsx:9 +#: src/pages/company/ManufacturerPartDetail.tsx:258 +#: src/pages/company/SupplierDetail.tsx:9 +#: src/pages/company/SupplierPartDetail.tsx:336 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:480 +#: src/pages/purchasing/PurchasingIndex.tsx:60 +msgid "Purchasing" +msgstr "Innkjøp" + +#: src/components/nav/NavigationDrawer.tsx:105 +#: src/defaults/links.tsx:22 +#: src/pages/company/CustomerDetail.tsx:9 +#: src/pages/sales/ReturnOrderDetail.tsx:469 +#: src/pages/sales/SalesIndex.tsx:53 +#: src/pages/sales/SalesOrderDetail.tsx:520 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:343 +msgid "Sales" +msgstr "Salg" + +#: src/components/nav/NavigationDrawer.tsx:129 +#: src/components/nav/NotificationDrawer.tsx:178 +#: src/pages/Index/Settings/SystemSettings.tsx:110 +#: src/pages/Index/Settings/UserSettings.tsx:127 #: src/pages/Notifications.tsx:65 #: src/pages/Notifications.tsx:151 msgid "Notifications" msgstr "Varlser" -#: src/components/nav/NotificationDrawer.tsx:94 +#: src/components/nav/NavigationDrawer.tsx:135 +#: src/components/nav/SettingsHeader.tsx:48 +msgid "User Settings" +msgstr "" + +#: src/components/nav/NavigationDrawer.tsx:173 +msgid "Navigation" +msgstr "Navigasjon" + +#: src/components/nav/NavigationDrawer.tsx:183 +#: src/forms/PurchaseOrderForms.tsx:689 +#: src/forms/StockForms.tsx:614 +#: src/forms/StockForms.tsx:651 +#: src/forms/StockForms.tsx:677 +#: src/forms/StockForms.tsx:705 +#: src/forms/StockForms.tsx:736 +#: src/forms/StockForms.tsx:771 +#: src/forms/StockForms.tsx:813 +#: src/forms/StockForms.tsx:851 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:413 +#: src/tables/RowActions.tsx:129 +#: src/tables/build/BuildLineTable.tsx:101 +msgid "Actions" +msgstr "Handlinger" + +#: src/components/nav/NavigationDrawer.tsx:191 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:205 +#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:44 +msgid "Plugins" +msgstr "Utvidelser" + +#: src/components/nav/NavigationDrawer.tsx:204 +#: src/defaults/actions.tsx:24 +msgid "Documentation" +msgstr "Dokumentasjon" + +#: src/components/nav/NavigationDrawer.tsx:210 +msgid "About" +msgstr "Om" + +#: src/components/nav/NotificationDrawer.tsx:180 msgid "Mark all as read" msgstr "" -#: src/components/nav/NotificationDrawer.tsx:104 +#: src/components/nav/NotificationDrawer.tsx:190 msgid "View all notifications" msgstr "" -#: src/components/nav/NotificationDrawer.tsx:123 +#: src/components/nav/NotificationDrawer.tsx:210 msgid "You have no unread notifications." msgstr "Du har ingen uleste varsler." -#: src/components/nav/NotificationDrawer.tsx:139 -#: src/components/nav/NotificationDrawer.tsx:145 -#: src/tables/notifications/NotificationsTable.tsx:36 -msgid "Notification" -msgstr "Varsel" - -#: src/components/nav/NotificationDrawer.tsx:168 -#: src/pages/Notifications.tsx:73 -msgid "Mark as read" -msgstr "Merk som lest" - -#: src/components/nav/SearchDrawer.tsx:78 +#: src/components/nav/SearchDrawer.tsx:85 msgid "results" msgstr "resultater" -#: src/components/nav/SearchDrawer.tsx:370 +#: src/components/nav/SearchDrawer.tsx:380 msgid "Enter search text" msgstr "Skriv inn søketekst" -#: src/components/nav/SearchDrawer.tsx:397 +#: src/components/nav/SearchDrawer.tsx:391 +msgid "Refresh search results" +msgstr "" + +#: src/components/nav/SearchDrawer.tsx:402 +#: src/components/nav/SearchDrawer.tsx:409 msgid "Search Options" msgstr "Alternativer for søk" -#: src/components/nav/SearchDrawer.tsx:400 +#: src/components/nav/SearchDrawer.tsx:412 msgid "Regex search" msgstr "Regex-søk" -#: src/components/nav/SearchDrawer.tsx:410 +#: src/components/nav/SearchDrawer.tsx:421 msgid "Whole word search" msgstr "Helordsøk" -#: src/components/nav/SearchDrawer.tsx:451 +#: src/components/nav/SearchDrawer.tsx:461 msgid "An error occurred during search query" msgstr "Det oppstod en feil under søk" #: src/components/nav/SearchDrawer.tsx:462 -msgid "No results" -msgstr "Ingen resultater" +#~ msgid "No results" +#~ msgstr "No results" -#: src/components/nav/SearchDrawer.tsx:465 +#: src/components/nav/SearchDrawer.tsx:472 +#: src/tables/part/PartTestTemplateTable.tsx:76 +msgid "No Results" +msgstr "" + +#: src/components/nav/SearchDrawer.tsx:475 msgid "No results available for search query" msgstr "Ingen resultater tilgjengelig for søk" -#: src/components/render/Instance.tsx:217 +#: src/components/panels/AttachmentPanel.tsx:18 +msgid "Attachments" +msgstr "Vedlegg" + +#: src/components/panels/NotesPanel.tsx:24 +#: src/tables/build/BuildOrderTestTable.tsx:143 +#: src/tables/stock/StockTrackingTable.tsx:204 +msgid "Notes" +msgstr "Notater" + +#: src/components/plugins/PluginDrawer.tsx:47 +msgid "Plugin Inactive" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:50 +msgid "Plugin is not active" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:60 +msgid "Plugin Information" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:74 +#: src/pages/build/BuildDetail.tsx:116 +#: src/pages/company/CompanyDetail.tsx:89 +#: src/pages/company/ManufacturerPartDetail.tsx:89 +#: src/pages/company/ManufacturerPartDetail.tsx:116 +#: src/pages/company/SupplierPartDetail.tsx:140 +#: src/pages/part/CategoryDetail.tsx:101 +#: src/pages/part/PartDetail.tsx:178 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:136 +#: src/pages/sales/ReturnOrderDetail.tsx:107 +#: src/pages/sales/SalesOrderDetail.tsx:116 +#: src/pages/stock/LocationDetail.tsx:103 +#: src/tables/ColumnRenderers.tsx:92 +#: src/tables/bom/UsedInTable.tsx:44 +#: src/tables/build/BuildAllocatedStockTable.tsx:83 +#: src/tables/build/BuildLineTable.tsx:329 +#: src/tables/machine/MachineTypeTable.tsx:74 +#: src/tables/machine/MachineTypeTable.tsx:129 +#: src/tables/machine/MachineTypeTable.tsx:240 +#: src/tables/machine/MachineTypeTable.tsx:344 +#: src/tables/part/RelatedPartTable.tsx:66 +#: src/tables/plugin/PluginListTable.tsx:99 +#: src/tables/sales/SalesOrderAllocationTable.tsx:87 +#: src/tables/sales/SalesOrderLineItemTable.tsx:75 +#: src/tables/stock/LocationTypesTable.tsx:74 +msgid "Description" +msgstr "Beskrivelse" + +#: src/components/plugins/PluginDrawer.tsx:79 +msgid "Author" +msgstr "Forfatter" + +#: src/components/plugins/PluginDrawer.tsx:84 +#: src/pages/part/PartSchedulingDetail.tsx:277 +#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:40 +#: src/pages/part/pricing/SaleHistoryPanel.tsx:38 +#: src/tables/ColumnRenderers.tsx:215 +#: src/tables/build/BuildOrderTestTable.tsx:151 +#: src/tables/settings/StocktakeReportTable.tsx:40 +msgid "Date" +msgstr "Dato" + +#: src/components/plugins/PluginDrawer.tsx:94 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:398 +#: src/pages/part/PartDetail.tsx:331 +#: src/tables/bom/UsedInTable.tsx:84 +#: src/tables/company/CompanyTable.tsx:62 +#: src/tables/company/CompanyTable.tsx:96 +#: src/tables/machine/MachineListTable.tsx:333 +#: src/tables/machine/MachineListTable.tsx:605 +#: src/tables/part/ParametricPartTable.tsx:223 +#: src/tables/part/PartTable.tsx:178 +#: src/tables/part/PartVariantTable.tsx:15 +#: src/tables/plugin/PluginListTable.tsx:94 +#: src/tables/plugin/PluginListTable.tsx:401 +#: src/tables/purchasing/SupplierPartTable.tsx:100 +#: src/tables/purchasing/SupplierPartTable.tsx:190 +#: src/tables/settings/UserTable.tsx:283 +#: src/tables/stock/StockItemTable.tsx:293 +msgid "Active" +msgstr "Aktiv" + +#: src/components/plugins/PluginDrawer.tsx:106 +msgid "Package Name" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:112 +msgid "Installation Path" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:117 +#: src/tables/machine/MachineTypeTable.tsx:152 +#: src/tables/machine/MachineTypeTable.tsx:276 +#: src/tables/plugin/PluginListTable.tsx:406 +msgid "Builtin" +msgstr "Innebygd" + +#: src/components/plugins/PluginDrawer.tsx:122 +msgid "Package" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:134 +#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:53 +msgid "Plugin Settings" +msgstr "Innstillinger for Utvidelser" + +#: src/components/plugins/PluginDrawer.tsx:146 +#: src/components/render/ModelType.tsx:276 +msgid "Plugin Configuration" +msgstr "" + +#: src/components/plugins/PluginPanel.tsx:87 +#~ msgid "Error occurred while rendering plugin content" +#~ msgstr "Error occurred while rendering plugin content" + +#: src/components/plugins/PluginPanel.tsx:91 +#~ msgid "Plugin did not provide panel rendering function" +#~ msgstr "Plugin did not provide panel rendering function" + +#: src/components/plugins/PluginPanel.tsx:103 +#~ msgid "No content provided for this plugin" +#~ msgstr "No content provided for this plugin" + +#: src/components/plugins/PluginPanel.tsx:116 +#: src/components/plugins/PluginSettingsPanel.tsx:76 +#~ msgid "Error Loading Plugin" +#~ msgstr "Error Loading Plugin" + +#: src/components/plugins/PluginSettingsPanel.tsx:51 +#~ msgid "Error occurred while rendering plugin settings" +#~ msgstr "Error occurred while rendering plugin settings" + +#: src/components/plugins/PluginSettingsPanel.tsx:55 +#~ msgid "Plugin did not provide settings rendering function" +#~ msgstr "Plugin did not provide settings rendering function" + +#: src/components/plugins/PluginUIFeature.tsx:100 +msgid "Error occurred while rendering the template editor." +msgstr "" + +#: src/components/plugins/PluginUIFeature.tsx:111 +msgid "Error Loading Plugin Editor" +msgstr "" + +#: src/components/plugins/PluginUIFeature.tsx:147 +msgid "Error occurred while rendering the template preview." +msgstr "" + +#: src/components/plugins/PluginUIFeature.tsx:158 +msgid "Error Loading Plugin Preview" +msgstr "" + +#: src/components/plugins/RemoteComponent.tsx:70 +msgid "Invalid source or function name" +msgstr "" + +#: src/components/plugins/RemoteComponent.tsx:91 +msgid "Error Loading Content" +msgstr "" + +#: src/components/plugins/RemoteComponent.tsx:95 +msgid "Error occurred while loading plugin content" +msgstr "" + +#: src/components/render/Instance.tsx:224 msgid "Unknown model: {model}" msgstr "Ukjent modell: {model}" -#: src/components/render/ModelType.tsx:22 -#: src/forms/BuildForms.tsx:213 -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/forms/StockForms.tsx:499 -#: src/forms/StockForms.tsx:533 -#: src/forms/StockForms.tsx:562 -#: src/forms/StockForms.tsx:590 -#: src/forms/StockForms.tsx:621 -#: src/forms/StockForms.tsx:656 -#: src/forms/StockForms.tsx:698 -#: src/forms/StockForms.tsx:734 -#: src/pages/build/BuildDetail.tsx:95 -#: src/pages/part/PartDetail.tsx:1073 -#: src/tables/build/BuildAllocatedStockTable.tsx:82 +#: src/components/render/ModelType.tsx:30 +#: src/forms/BuildForms.tsx:269 +#: src/forms/BuildForms.tsx:337 +#: src/forms/BuildForms.tsx:385 +#: src/forms/BuildForms.tsx:515 +#: src/forms/PurchaseOrderForms.tsx:689 +#: src/forms/ReturnOrderForms.tsx:190 +#: src/forms/SalesOrderForms.tsx:248 +#: src/forms/StockForms.tsx:261 +#: src/forms/StockForms.tsx:614 +#: src/forms/StockForms.tsx:651 +#: src/forms/StockForms.tsx:677 +#: src/forms/StockForms.tsx:705 +#: src/forms/StockForms.tsx:736 +#: src/forms/StockForms.tsx:771 +#: src/forms/StockForms.tsx:813 +#: src/forms/StockForms.tsx:851 +#: src/pages/build/BuildDetail.tsx:90 +#: src/pages/part/PartDetail.tsx:1094 +#: src/tables/build/BuildAllocatedStockTable.tsx:95 +#: src/tables/build/BuildLineTable.tsx:72 #: src/tables/part/PartTable.tsx:28 -#: src/tables/part/RelatedPartTable.tsx:45 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:88 -#: src/tables/sales/SalesOrderAllocationTable.tsx:68 -#: src/tables/stock/StockTrackingTable.tsx:74 +#: src/tables/part/RelatedPartTable.tsx:47 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:130 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:100 +#: src/tables/sales/SalesOrderAllocationTable.tsx:99 +#: src/tables/stock/StockTrackingTable.tsx:78 msgid "Part" msgstr "Del" -#: src/components/render/ModelType.tsx:23 -#: src/defaults/links.tsx:29 -#: src/defaults/menuItems.tsx:33 -#: src/pages/Index/Settings/SystemSettings.tsx:173 -#: src/pages/part/CategoryDetail.tsx:119 -#: src/pages/part/CategoryDetail.tsx:244 -#: src/pages/part/CategoryDetail.tsx:274 -#: src/pages/part/PartDetail.tsx:827 -msgid "Parts" -msgstr "Deler" - -#: src/components/render/ModelType.tsx:31 +#: src/components/render/ModelType.tsx:40 msgid "Part Parameter Template" msgstr "Mal for Delparameter" -#: src/components/render/ModelType.tsx:32 +#: src/components/render/ModelType.tsx:41 msgid "Part Parameter Templates" msgstr "Maler for Delparameter" -#: src/components/render/ModelType.tsx:38 +#: src/components/render/ModelType.tsx:48 msgid "Part Test Template" msgstr "" -#: src/components/render/ModelType.tsx:39 +#: src/components/render/ModelType.tsx:49 msgid "Part Test Templates" msgstr "" -#: src/components/render/ModelType.tsx:45 -#: src/pages/company/SupplierPartDetail.tsx:203 -#: src/pages/company/SupplierPartDetail.tsx:375 -#: src/pages/stock/StockDetail.tsx:173 -#: src/tables/build/BuildAllocatedStockTable.tsx:131 +#: src/components/render/ModelType.tsx:56 +#: src/pages/company/SupplierPartDetail.tsx:364 +#: src/pages/stock/StockDetail.tsx:194 +#: src/tables/build/BuildAllocatedStockTable.tsx:152 #: src/tables/part/PartPurchaseOrdersTable.tsx:49 -#: src/tables/purchasing/SupplierPartTable.tsx:68 +#: src/tables/purchasing/SupplierPartTable.tsx:70 +#: src/tables/stock/StockItemTable.tsx:229 msgid "Supplier Part" msgstr "Leverandørdel" -#: src/components/render/ModelType.tsx:46 +#: src/components/render/ModelType.tsx:57 msgid "Supplier Parts" msgstr "Leverandørdeler" -#: src/components/render/ModelType.tsx:54 -#: src/pages/company/ManufacturerPartDetail.tsx:132 +#: src/components/render/ModelType.tsx:66 #: src/tables/part/PartPurchaseOrdersTable.tsx:55 +#: src/tables/stock/StockItemTable.tsx:234 msgid "Manufacturer Part" msgstr "Produsentdel" -#: src/components/render/ModelType.tsx:55 +#: src/components/render/ModelType.tsx:67 msgid "Manufacturer Parts" msgstr "Produsentdeler" -#: src/components/render/ModelType.tsx:63 -#: src/pages/part/CategoryDetail.tsx:305 +#: src/components/render/ModelType.tsx:76 +#: src/pages/part/CategoryDetail.tsx:310 msgid "Part Category" msgstr "Delkategori" -#: src/components/render/ModelType.tsx:64 -#: src/pages/part/CategoryDetail.tsx:258 -#: src/pages/part/CategoryDetail.tsx:296 -#: src/pages/part/PartDetail.tsx:1063 +#: src/components/render/ModelType.tsx:77 +#: src/pages/part/CategoryDetail.tsx:263 +#: src/pages/part/CategoryDetail.tsx:301 +#: src/pages/part/PartDetail.tsx:1084 msgid "Part Categories" msgstr "Delkategorier" -#: src/components/render/ModelType.tsx:72 -#: src/pages/stock/StockDetail.tsx:624 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:94 -#: src/tables/stock/StockTrackingTable.tsx:45 +#: src/components/render/ModelType.tsx:86 +#: src/forms/BuildForms.tsx:337 +#: src/forms/BuildForms.tsx:385 +#: src/forms/BuildForms.tsx:515 +#: src/forms/SalesOrderForms.tsx:248 +#: src/pages/stock/StockDetail.tsx:839 +#: src/tables/stock/StockTrackingTable.tsx:49 msgid "Stock Item" msgstr "Lagervare" -#: src/components/render/ModelType.tsx:73 +#: src/components/render/ModelType.tsx:87 #: src/pages/company/CompanyDetail.tsx:203 -#: src/pages/stock/LocationDetail.tsx:128 -#: src/pages/stock/LocationDetail.tsx:181 -#: src/pages/stock/LocationDetail.tsx:395 +#: src/pages/part/PartStocktakeDetail.tsx:113 +#: src/pages/stock/LocationDetail.tsx:122 +#: src/pages/stock/LocationDetail.tsx:175 +#: src/pages/stock/LocationDetail.tsx:380 msgid "Stock Items" msgstr "Lagervarer" -#: src/components/render/ModelType.tsx:81 +#: src/components/render/ModelType.tsx:96 msgid "Stock Location" msgstr "Lagerplassering" -#: src/components/render/ModelType.tsx:82 -#: src/pages/stock/LocationDetail.tsx:195 -#: src/pages/stock/LocationDetail.tsx:387 -#: src/pages/stock/StockDetail.tsx:616 +#: src/components/render/ModelType.tsx:97 +#: src/pages/stock/LocationDetail.tsx:189 +#: src/pages/stock/LocationDetail.tsx:372 +#: src/pages/stock/StockDetail.tsx:831 msgid "Stock Locations" msgstr "Lagerplasseringer" -#: src/components/render/ModelType.tsx:90 +#: src/components/render/ModelType.tsx:106 msgid "Stock Location Type" msgstr "" -#: src/components/render/ModelType.tsx:91 +#: src/components/render/ModelType.tsx:107 msgid "Stock Location Types" msgstr "" -#: src/components/render/ModelType.tsx:95 +#: src/components/render/ModelType.tsx:112 +#: src/pages/part/PartDetail.tsx:712 msgid "Stock History" msgstr "Lagerhistorikk" -#: src/components/render/ModelType.tsx:96 +#: src/components/render/ModelType.tsx:113 msgid "Stock Histories" msgstr "Lagerhistorikk" -#: src/components/render/ModelType.tsx:100 -#: src/defaults/links.tsx:31 -#: src/defaults/menuItems.tsx:43 +#: src/components/render/ModelType.tsx:118 msgid "Build" msgstr "Produksjon" -#: src/components/render/ModelType.tsx:101 +#: src/components/render/ModelType.tsx:119 msgid "Builds" msgstr "Produksjoner" -#: src/components/render/ModelType.tsx:109 +#: src/components/render/ModelType.tsx:128 msgid "Build Line" msgstr "" -#: src/components/render/ModelType.tsx:110 +#: src/components/render/ModelType.tsx:129 msgid "Build Lines" msgstr "" -#: src/components/render/ModelType.tsx:117 +#: src/components/render/ModelType.tsx:137 msgid "Build Item" msgstr "" -#: src/components/render/ModelType.tsx:118 +#: src/components/render/ModelType.tsx:138 msgid "Build Items" msgstr "" -#: src/components/render/ModelType.tsx:122 -#: src/pages/company/CompanyDetail.tsx:339 +#: src/components/render/ModelType.tsx:143 +#: src/pages/company/CompanyDetail.tsx:321 msgid "Company" msgstr "Firma" -#: src/components/render/ModelType.tsx:123 +#: src/components/render/ModelType.tsx:144 msgid "Companies" msgstr "Firma" -#: src/components/render/ModelType.tsx:131 +#: src/components/render/ModelType.tsx:153 +#: src/pages/build/BuildDetail.tsx:195 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:204 +#: src/pages/sales/ReturnOrderDetail.tsx:174 +#: src/pages/sales/SalesOrderDetail.tsx:186 #: src/tables/TableHoverCard.tsx:81 -#: src/tables/build/BuildOrderTable.tsx:140 -#: src/tables/purchasing/PurchaseOrderTable.tsx:64 -#: src/tables/sales/ReturnOrderTable.tsx:55 -#: src/tables/sales/SalesOrderTable.tsx:62 +#: src/tables/build/BuildOrderTable.tsx:135 +#: src/tables/purchasing/PurchaseOrderTable.tsx:69 +#: src/tables/sales/ReturnOrderTable.tsx:67 +#: src/tables/sales/SalesOrderTable.tsx:67 msgid "Project Code" msgstr "Prosjektkode" -#: src/components/render/ModelType.tsx:132 -#: src/pages/Index/Settings/AdminCenter/Index.tsx:128 +#: src/components/render/ModelType.tsx:154 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:145 msgid "Project Codes" msgstr "Prosjektkoder" -#: src/components/render/ModelType.tsx:138 +#: src/components/render/ModelType.tsx:161 #: src/pages/part/pricing/PurchaseHistoryPanel.tsx:32 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:480 -#: src/tables/part/PartPurchaseOrdersTable.tsx:32 -#: src/tables/stock/StockTrackingTable.tsx:107 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:477 +#: src/pages/stock/StockDetail.tsx:253 +#: src/tables/part/PartPurchaseOrdersTable.tsx:31 +#: src/tables/stock/StockItemTable.tsx:222 +#: src/tables/stock/StockTrackingTable.tsx:111 msgid "Purchase Order" msgstr "Innkjøpsordre" -#: src/components/render/ModelType.tsx:139 -#: src/pages/Index/Settings/SystemSettings.tsx:255 +#: src/components/render/ModelType.tsx:162 +#: src/pages/Index/Settings/SystemSettings.tsx:249 #: src/pages/company/CompanyDetail.tsx:196 -#: src/pages/company/SupplierPartDetail.tsx:237 -#: src/pages/part/PartDetail.tsx:662 +#: src/pages/company/SupplierPartDetail.tsx:249 +#: src/pages/part/PartDetail.tsx:683 #: src/pages/purchasing/PurchasingIndex.tsx:25 msgid "Purchase Orders" msgstr "Innkjøpsordrer" -#: src/components/render/ModelType.tsx:147 +#: src/components/render/ModelType.tsx:171 msgid "Purchase Order Line" msgstr "Ordrelinje for innkjøpsordre" -#: src/components/render/ModelType.tsx:148 +#: src/components/render/ModelType.tsx:172 msgid "Purchase Order Lines" msgstr "Ordrelinjer for innkjøpsordre" -#: src/components/render/ModelType.tsx:152 -#: src/pages/build/BuildDetail.tsx:153 -#: src/pages/sales/SalesOrderDetail.tsx:520 -#: src/pages/stock/StockDetail.tsx:221 -#: src/tables/sales/SalesOrderAllocationTable.tsx:50 -#: src/tables/stock/StockTrackingTable.tsx:118 +#: src/components/render/ModelType.tsx:177 +#: src/pages/build/BuildDetail.tsx:148 +#: src/pages/part/pricing/SaleHistoryPanel.tsx:24 +#: src/pages/sales/SalesOrderDetail.tsx:515 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:92 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:341 +#: src/pages/stock/StockDetail.tsx:262 +#: src/tables/sales/SalesOrderAllocationTable.tsx:80 +#: src/tables/stock/StockTrackingTable.tsx:122 msgid "Sales Order" msgstr "Salgsordre" -#: src/components/render/ModelType.tsx:153 -#: src/pages/Index/Settings/SystemSettings.tsx:270 +#: src/components/render/ModelType.tsx:178 +#: src/pages/Index/Settings/SystemSettings.tsx:264 #: src/pages/company/CompanyDetail.tsx:216 -#: src/pages/part/PartDetail.tsx:669 +#: src/pages/part/PartDetail.tsx:695 #: src/pages/sales/SalesIndex.tsx:26 msgid "Sales Orders" msgstr "Salgsordrer" -#: src/components/render/ModelType.tsx:161 +#: src/components/render/ModelType.tsx:187 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:340 msgid "Sales Order Shipment" msgstr "Salgsordreforsendelse" -#: src/components/render/ModelType.tsx:162 +#: src/components/render/ModelType.tsx:188 msgid "Sales Order Shipments" msgstr "Salgsordreforsendelser" -#: src/components/render/ModelType.tsx:168 -#: src/pages/sales/ReturnOrderDetail.tsx:469 -#: src/tables/stock/StockTrackingTable.tsx:129 +#: src/components/render/ModelType.tsx:195 +#: src/pages/sales/ReturnOrderDetail.tsx:464 +#: src/tables/stock/StockTrackingTable.tsx:133 msgid "Return Order" msgstr "Returordre" -#: src/components/render/ModelType.tsx:169 -#: src/pages/Index/Settings/SystemSettings.tsx:286 +#: src/components/render/ModelType.tsx:196 +#: src/pages/Index/Settings/SystemSettings.tsx:280 #: src/pages/company/CompanyDetail.tsx:223 +#: src/pages/part/PartDetail.tsx:702 #: src/pages/sales/SalesIndex.tsx:32 msgid "Return Orders" msgstr "Returordrer" -#: src/components/render/ModelType.tsx:177 +#: src/components/render/ModelType.tsx:205 msgid "Return Order Line Item" msgstr "" -#: src/components/render/ModelType.tsx:178 +#: src/components/render/ModelType.tsx:206 msgid "Return Order Line Items" msgstr "" -#: src/components/render/ModelType.tsx:182 -#: src/tables/company/AddressTable.tsx:47 +#: src/components/render/ModelType.tsx:211 +#: src/tables/company/AddressTable.tsx:48 msgid "Address" msgstr "Adresse" -#: src/components/render/ModelType.tsx:183 -#: src/pages/company/CompanyDetail.tsx:253 +#: src/components/render/ModelType.tsx:212 +#: src/pages/company/CompanyDetail.tsx:255 msgid "Addresses" msgstr "Adresser" -#: src/components/render/ModelType.tsx:189 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:195 -#: src/pages/sales/ReturnOrderDetail.tsx:174 -#: src/pages/sales/SalesOrderDetail.tsx:183 +#: src/components/render/ModelType.tsx:219 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:196 +#: src/pages/sales/ReturnOrderDetail.tsx:166 +#: src/pages/sales/SalesOrderDetail.tsx:178 msgid "Contact" msgstr "Kontakt" -#: src/components/render/ModelType.tsx:190 -#: src/pages/company/CompanyDetail.tsx:247 +#: src/components/render/ModelType.tsx:220 +#: src/pages/company/CompanyDetail.tsx:249 msgid "Contacts" msgstr "Kontakter" -#: src/components/render/ModelType.tsx:196 +#: src/components/render/ModelType.tsx:227 msgid "Owner" msgstr "Eier" -#: src/components/render/ModelType.tsx:197 +#: src/components/render/ModelType.tsx:228 msgid "Owners" msgstr "Eiere" -#: src/components/render/ModelType.tsx:203 -#: src/tables/settings/ImportSessionTable.tsx:121 -#: src/tables/stock/StockItemTestResultTable.tsx:198 -#: src/tables/stock/StockTrackingTable.tsx:195 +#: src/components/render/ModelType.tsx:234 +#~ msgid "Purchase Order Line Item" +#~ msgstr "Purchase Order Line Item" + +#: src/components/render/ModelType.tsx:235 +#: src/tables/settings/BarcodeScanHistoryTable.tsx:80 +#: src/tables/settings/BarcodeScanHistoryTable.tsx:211 +#: src/tables/settings/ImportSessionTable.tsx:120 +#: src/tables/settings/StocktakeReportTable.tsx:44 +#: src/tables/stock/StockItemTestResultTable.tsx:204 +#: src/tables/stock/StockTrackingTable.tsx:181 +#: src/tables/stock/StockTrackingTable.tsx:210 msgid "User" msgstr "Bruker" -#: src/components/render/ModelType.tsx:204 -#: src/pages/Index/Settings/AdminCenter/Index.tsx:98 +#: src/components/render/ModelType.tsx:236 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:109 #: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:13 msgid "Users" msgstr "Brukere" -#: src/components/render/ModelType.tsx:210 +#: src/components/render/ModelType.tsx:243 msgid "Group" msgstr "" -#: src/components/render/ModelType.tsx:211 +#: src/components/render/ModelType.tsx:244 #: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:20 -#: src/tables/settings/UserTable.tsx:138 -#: src/tables/settings/UserTable.tsx:201 +#: src/tables/settings/UserTable.tsx:137 +#: src/tables/settings/UserTable.tsx:200 msgid "Groups" msgstr "Grupper" -#: src/components/render/ModelType.tsx:218 +#: src/components/render/ModelType.tsx:252 msgid "Import Session" msgstr "" -#: src/components/render/ModelType.tsx:219 +#: src/components/render/ModelType.tsx:253 msgid "Import Sessions" msgstr "" -#: src/components/render/ModelType.tsx:225 +#: src/components/render/ModelType.tsx:260 msgid "Label Template" msgstr "" -#: src/components/render/ModelType.tsx:226 -#: src/pages/Index/Settings/AdminCenter/Index.tsx:158 +#: src/components/render/ModelType.tsx:261 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:187 msgid "Label Templates" msgstr "" -#: src/components/render/ModelType.tsx:232 +#: src/components/render/ModelType.tsx:264 +#~ msgid "Unknown Model" +#~ msgstr "Unknown Model" + +#: src/components/render/ModelType.tsx:268 msgid "Report Template" msgstr "" -#: src/components/render/ModelType.tsx:233 -#: src/pages/Index/Settings/AdminCenter/Index.tsx:164 +#: src/components/render/ModelType.tsx:269 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:193 msgid "Report Templates" msgstr "" -#: src/components/render/ModelType.tsx:239 -msgid "Plugin Configuration" -msgstr "" - -#: src/components/render/ModelType.tsx:240 +#: src/components/render/ModelType.tsx:277 msgid "Plugin Configurations" msgstr "" +#: src/components/render/ModelType.tsx:284 +msgid "Content Type" +msgstr "" + +#: src/components/render/ModelType.tsx:285 +msgid "Content Types" +msgstr "" + +#: src/components/render/ModelType.tsx:291 +#: src/tables/machine/MachineListTable.tsx:351 +#: src/tables/machine/MachineTypeTable.tsx:282 +msgid "Errors" +msgstr "" + +#: src/components/render/ModelType.tsx:307 +#~ msgid "Purchase Order Line Items" +#~ msgstr "Purchase Order Line Items" + +#: src/components/render/ModelType.tsx:337 +#~ msgid "Unknown Models" +#~ msgstr "Unknown Models" + #: src/components/render/Order.tsx:121 +#: src/tables/sales/SalesOrderAllocationTable.tsx:136 msgid "Shipment" msgstr "Forsendelse" #: src/components/render/Part.tsx:25 #: src/components/render/Plugin.tsx:17 -#: src/pages/company/CompanyDetail.tsx:325 -#: src/pages/company/SupplierPartDetail.tsx:360 -#: src/pages/part/PartDetail.tsx:879 +#: src/pages/company/CompanyDetail.tsx:307 +#: src/pages/company/SupplierPartDetail.tsx:349 +#: src/pages/part/PartDetail.tsx:911 msgid "Inactive" msgstr "" @@ -1736,39 +2335,38 @@ msgstr "" msgid "No stock" msgstr "Ingen lagerbeholdning" -#: src/components/render/Part.tsx:30 -#: src/defaults/links.tsx:30 -#: src/defaults/menuItems.tsx:38 -#: src/pages/Index/Settings/SystemSettings.tsx:206 -#: src/pages/part/PartDetail.tsx:543 -#: src/pages/stock/LocationDetail.tsx:367 -#: src/pages/stock/StockDetail.tsx:411 -#: src/tables/stock/StockItemTable.tsx:68 -msgid "Stock" -msgstr "Lagerbeholdning" - -#: src/components/render/Stock.tsx:60 -#: src/pages/stock/StockDetail.tsx:150 -#: src/pages/stock/StockDetail.tsx:581 -#: src/tables/build/BuildAllocatedStockTable.tsx:102 -#: src/tables/sales/SalesOrderAllocationTable.tsx:80 +#: src/components/render/Stock.tsx:61 +#: src/forms/ReturnOrderForms.tsx:190 +#: src/pages/stock/StockDetail.tsx:166 +#: src/pages/stock/StockDetail.tsx:771 +#: src/tables/build/BuildAllocatedStockTable.tsx:123 +#: src/tables/build/BuildOutputTable.tsx:81 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:114 +#: src/tables/sales/SalesOrderAllocationTable.tsx:106 msgid "Serial Number" msgstr "Serienummer" -#: src/components/render/Stock.tsx:62 -#: src/forms/BuildForms.tsx:218 -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/pages/part/pricing/BomPricingPanel.tsx:109 +#: src/components/render/Stock.tsx:63 +#: src/forms/BuildForms.tsx:206 +#: src/forms/BuildForms.tsx:515 +#: src/forms/PurchaseOrderForms.tsx:689 +#: src/forms/SalesOrderForms.tsx:248 +#: src/pages/part/PartSchedulingDetail.tsx:80 +#: src/pages/part/PartStocktakeDetail.tsx:60 +#: src/pages/part/PartStocktakeDetail.tsx:234 +#: src/pages/part/PartStocktakeDetail.tsx:252 +#: src/pages/part/pricing/BomPricingPanel.tsx:148 #: src/pages/part/pricing/PriceBreakPanel.tsx:89 -#: src/pages/part/pricing/PriceBreakPanel.tsx:171 -#: src/pages/stock/StockDetail.tsx:145 -#: src/pages/stock/StockDetail.tsx:587 -#: src/tables/build/BuildOrderTestTable.tsx:197 -#: src/tables/part/PartPurchaseOrdersTable.tsx:92 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:143 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:171 +#: src/pages/part/pricing/PriceBreakPanel.tsx:172 +#: src/pages/stock/StockDetail.tsx:161 +#: src/pages/stock/StockDetail.tsx:777 +#: src/tables/build/BuildLineTable.tsx:79 +#: src/tables/build/BuildOrderTestTable.tsx:198 +#: src/tables/part/PartPurchaseOrdersTable.tsx:93 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:146 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:177 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:77 -#: src/tables/stock/StockTrackingTable.tsx:59 +#: src/tables/stock/StockTrackingTable.tsx:63 msgid "Quantity" msgstr "Antall" @@ -1842,10 +2440,6 @@ msgstr "" #~ msgid "Required Part" #~ msgstr "Required Part" -#: src/components/tables/build/BuildLineTable.tsx:152 -#~ msgid "Required Quantity" -#~ msgstr "Required Quantity" - #: src/components/tables/build/BuildOrderTable.tsx:52 #~ msgid "Progress" #~ msgstr "Progress" @@ -2126,14 +2720,6 @@ msgstr "" #~ msgid "user deleted" #~ msgstr "user deleted" -#: src/components/tables/settings/UserTable.tsx:168 -#~ msgid "First Name" -#~ msgstr "First Name" - -#: src/components/tables/settings/UserTable.tsx:173 -#~ msgid "Last Name" -#~ msgstr "Last Name" - #: src/components/tables/stock/StockItemTable.tsx:247 #~ msgid "Test Filter" #~ msgstr "Test Filter" @@ -2146,36 +2732,21 @@ msgstr "" #~ msgid "Stock location updated" #~ msgstr "Stock location updated" -#: src/components/widgets/DisplayWidget.tsx:11 -#: src/pages/Index/Settings/AccountSettings/DisplaySettingsPanel.tsx:17 -msgid "Display Settings" -msgstr "Visningsinnstillinger" - -#: src/components/widgets/DisplayWidget.tsx:15 -#: src/pages/Index/Settings/AccountSettings/DisplaySettingsPanel.tsx:23 -msgid "Color Mode" -msgstr "Fargemodus" - -#: src/components/widgets/DisplayWidget.tsx:21 -#: src/pages/Index/Settings/AccountSettings/DisplaySettingsPanel.tsx:33 -msgid "Language" -msgstr "Språk" - #: src/components/widgets/FeedbackWidget.tsx:19 -msgid "Something is new: Platform UI" -msgstr "Noe er nytt: Plattformgrensesnittet" +#~ msgid "Something is new: Platform UI" +#~ msgstr "Something is new: Platform UI" #: src/components/widgets/FeedbackWidget.tsx:21 -msgid "We are building a new UI with a modern stack. What you currently see is not fixed and will be redesigned but demonstrates the UI/UX possibilities we will have going forward." -msgstr "Vi bygger et nytt brukergrensesnitt med en moderne stack. Det dere ser er ikke bestemt og vil bli redesignet men viser UX-mulighetene vi vil ha fremover." +#~ msgid "We are building a new UI with a modern stack. What you currently see is not fixed and will be redesigned but demonstrates the UI/UX possibilities we will have going forward." +#~ msgstr "We are building a new UI with a modern stack. What you currently see is not fixed and will be redesigned but demonstrates the UI/UX possibilities we will have going forward." #: src/components/widgets/FeedbackWidget.tsx:32 -msgid "Provide Feedback" -msgstr "Gi tilbakemelding" +#~ msgid "Provide Feedback" +#~ msgstr "Provide Feedback" #: src/components/widgets/GetStartedWidget.tsx:11 -msgid "Getting started" -msgstr "Komme i gang" +#~ msgid "Getting started" +#~ msgstr "Getting started" #: src/components/widgets/MarkdownEditor.tsx:108 #~ msgid "Failed to upload image" @@ -2186,28 +2757,24 @@ msgstr "Komme i gang" #~ msgstr "Notes saved" #: src/components/widgets/WidgetLayout.tsx:166 -msgid "Layout" -msgstr "Oppsett" +#~ msgid "Layout" +#~ msgstr "Layout" #: src/components/widgets/WidgetLayout.tsx:172 -msgid "Reset Layout" -msgstr "Tilbakestill oppsett" +#~ msgid "Reset Layout" +#~ msgstr "Reset Layout" #: src/components/widgets/WidgetLayout.tsx:185 -msgid "Stop Edit" -msgstr "Stopp redigering" - -#: src/components/widgets/WidgetLayout.tsx:185 -msgid "Edit Layout" -msgstr "Rediger oppsett" +#~ msgid "Stop Edit" +#~ msgstr "Stop Edit" #: src/components/widgets/WidgetLayout.tsx:191 -msgid "Appearance" -msgstr "Utseende" +#~ msgid "Appearance" +#~ msgstr "Appearance" #: src/components/widgets/WidgetLayout.tsx:203 -msgid "Show Boxes" -msgstr "Vis bokser" +#~ msgid "Show Boxes" +#~ msgstr "Show Boxes" #: src/contexts/LanguageContext.tsx:20 msgid "Arabic" @@ -2286,201 +2853,175 @@ msgid "Korean" msgstr "Koreansk" #: src/contexts/LanguageContext.tsx:39 -msgid "Latvian" +msgid "Lithuanian" msgstr "" #: src/contexts/LanguageContext.tsx:40 +msgid "Latvian" +msgstr "" + +#: src/contexts/LanguageContext.tsx:41 msgid "Dutch" msgstr "Nederlandsk" -#: src/contexts/LanguageContext.tsx:41 +#: src/contexts/LanguageContext.tsx:42 msgid "Norwegian" msgstr "Norsk" -#: src/contexts/LanguageContext.tsx:42 +#: src/contexts/LanguageContext.tsx:43 msgid "Polish" msgstr "Polsk" -#: src/contexts/LanguageContext.tsx:43 +#: src/contexts/LanguageContext.tsx:44 msgid "Portuguese" msgstr "Portugisisk" -#: src/contexts/LanguageContext.tsx:44 +#: src/contexts/LanguageContext.tsx:45 msgid "Portuguese (Brazilian)" msgstr "Portugisisk (Brasil)" -#: src/contexts/LanguageContext.tsx:45 +#: src/contexts/LanguageContext.tsx:46 msgid "Romanian" msgstr "" -#: src/contexts/LanguageContext.tsx:46 +#: src/contexts/LanguageContext.tsx:47 msgid "Russian" msgstr "Russisk" -#: src/contexts/LanguageContext.tsx:47 +#: src/contexts/LanguageContext.tsx:48 msgid "Slovak" msgstr "" -#: src/contexts/LanguageContext.tsx:48 +#: src/contexts/LanguageContext.tsx:49 msgid "Slovenian" msgstr "Slovensk" -#: src/contexts/LanguageContext.tsx:49 +#: src/contexts/LanguageContext.tsx:50 msgid "Swedish" msgstr "Svensk" -#: src/contexts/LanguageContext.tsx:50 +#: src/contexts/LanguageContext.tsx:51 msgid "Thai" msgstr "Thailandsk" -#: src/contexts/LanguageContext.tsx:51 +#: src/contexts/LanguageContext.tsx:52 msgid "Turkish" msgstr "Tyrkisk" -#: src/contexts/LanguageContext.tsx:52 +#: src/contexts/LanguageContext.tsx:53 msgid "Ukrainian" msgstr "" -#: src/contexts/LanguageContext.tsx:53 +#: src/contexts/LanguageContext.tsx:54 msgid "Vietnamese" msgstr "Vietnamesisk" -#: src/contexts/LanguageContext.tsx:54 +#: src/contexts/LanguageContext.tsx:55 msgid "Chinese (Simplified)" msgstr "Kinesisk (forenklet)" -#: src/contexts/LanguageContext.tsx:55 +#: src/contexts/LanguageContext.tsx:56 msgid "Chinese (Traditional)" msgstr "Kinesisk (tradisjonell)" #: src/defaults/actions.tsx:18 -#: src/defaults/links.tsx:27 -#: src/defaults/menuItems.tsx:9 -msgid "Home" -msgstr "Hjem" - -#: src/defaults/actions.tsx:25 -#: src/defaults/links.tsx:28 -#: src/defaults/menuItems.tsx:28 -#: src/pages/Index/Dashboard.tsx:19 -#: src/pages/Index/Settings/UserSettings.tsx:46 -msgid "Dashboard" -msgstr "Dashbord" - -#: src/defaults/actions.tsx:26 msgid "Go to the InvenTree dashboard" msgstr "" -#: src/defaults/actions.tsx:33 +#: src/defaults/actions.tsx:18 +#: src/defaults/links.tsx:27 +#: src/defaults/menuItems.tsx:9 +#~ msgid "Home" +#~ msgstr "Home" + +#: src/defaults/actions.tsx:25 msgid "Visit the documentation to learn more about InvenTree" msgstr "" -#: src/defaults/actions.tsx:39 -#: src/defaults/links.tsx:98 -#: src/defaults/links.tsx:128 +#: src/defaults/actions.tsx:31 +#: src/defaults/links.tsx:92 +#: src/defaults/links.tsx:124 msgid "About InvenTree" msgstr "Om InvenTree" -#: src/defaults/actions.tsx:40 -#: src/defaults/links.tsx:129 +#: src/defaults/actions.tsx:32 msgid "About the InvenTree org" msgstr "Om InvenTree-organisasjonen" -#: src/defaults/actions.tsx:46 +#: src/defaults/actions.tsx:38 msgid "Server Information" msgstr "" -#: src/defaults/actions.tsx:47 -#: src/defaults/links.tsx:123 +#: src/defaults/actions.tsx:39 +#: src/defaults/links.tsx:118 msgid "About this Inventree instance" msgstr "Om denne InvenTree-instansen" -#: src/defaults/actions.tsx:53 -#: src/defaults/links.tsx:111 +#: src/defaults/actions.tsx:45 +#: src/defaults/links.tsx:105 +#: src/defaults/links.tsx:131 msgid "License Information" msgstr "" -#: src/defaults/actions.tsx:54 -#: src/defaults/links.tsx:135 +#: src/defaults/actions.tsx:46 msgid "Licenses for dependencies of the service" msgstr "" -#: src/defaults/actions.tsx:61 +#: src/defaults/actions.tsx:52 +msgid "Open Navigation" +msgstr "Åpne Navigasjon" + +#: src/defaults/actions.tsx:53 msgid "Open the main navigation menu" msgstr "" -#: src/defaults/actions.tsx:72 +#: src/defaults/actions.tsx:64 msgid "Go to the Admin Center" msgstr "" -#: src/defaults/dashboardItems.tsx:15 -msgid "Subscribed Parts" -msgstr "Abonnerte deler" - -#: src/defaults/dashboardItems.tsx:22 -msgid "Subscribed Categories" -msgstr "Abonnerte kategorier" - #: src/defaults/dashboardItems.tsx:29 -msgid "Latest Parts" -msgstr "Siste deler" +#~ msgid "Latest Parts" +#~ msgstr "Latest Parts" #: src/defaults/dashboardItems.tsx:36 -msgid "BOM Waiting Validation" -msgstr "BOM venter godkjenning" +#~ msgid "BOM Waiting Validation" +#~ msgstr "BOM Waiting Validation" #: src/defaults/dashboardItems.tsx:43 -msgid "Recently Updated" -msgstr "Nylig oppdatert" - -#: src/defaults/dashboardItems.tsx:50 -#: src/tables/part/PartTable.tsx:238 -msgid "Low Stock" -msgstr "Lav lagerbeholdning" +#~ msgid "Recently Updated" +#~ msgstr "Recently Updated" #: src/defaults/dashboardItems.tsx:57 -msgid "Depleted Stock" -msgstr "Oppbrukt lagerbeholdning" +#~ msgid "Depleted Stock" +#~ msgstr "Depleted Stock" #: src/defaults/dashboardItems.tsx:64 -msgid "Required for Build Orders" -msgstr "Nødvendig for produksjonsordre" +#~ msgid "Required for Build Orders" +#~ msgstr "Required for Build Orders" #: src/defaults/dashboardItems.tsx:71 -msgid "Expired Stock" -msgstr "Utløpt lagerbeholdning" +#~ msgid "Expired Stock" +#~ msgstr "Expired Stock" #: src/defaults/dashboardItems.tsx:78 -msgid "Stale Stock" -msgstr "Gammel lagerbeholdning" +#~ msgid "Stale Stock" +#~ msgstr "Stale Stock" #: src/defaults/dashboardItems.tsx:85 -msgid "Build Orders In Progress" -msgstr "Produksjonsordre som pågår" - -#: src/defaults/dashboardItems.tsx:92 -msgid "Overdue Build Orders" -msgstr "Forfalte Produksjonsordre" +#~ msgid "Build Orders In Progress" +#~ msgstr "Build Orders In Progress" #: src/defaults/dashboardItems.tsx:99 -msgid "Outstanding Purchase Orders" -msgstr "Utestående innkjøpsordre" - -#: src/defaults/dashboardItems.tsx:106 -msgid "Overdue Purchase Orders" -msgstr "Forfalte innkjøpsordre" +#~ msgid "Outstanding Purchase Orders" +#~ msgstr "Outstanding Purchase Orders" #: src/defaults/dashboardItems.tsx:113 -msgid "Outstanding Sales Orders" -msgstr "Utestående salgsordre" - -#: src/defaults/dashboardItems.tsx:120 -msgid "Overdue Sales Orders" -msgstr "Forfalte salgsordre" +#~ msgid "Outstanding Sales Orders" +#~ msgstr "Outstanding Sales Orders" #: src/defaults/dashboardItems.tsx:127 -msgid "Current News" -msgstr "Aktuelle nyheter" +#~ msgid "Current News" +#~ msgstr "Current News" #: src/defaults/defaultHostList.tsx:8 #~ msgid "InvenTree Demo" @@ -2490,97 +3031,80 @@ msgstr "Aktuelle nyheter" #~ msgid "Local Server" #~ msgstr "Local Server" -#: src/defaults/links.tsx:12 -#: src/pages/company/CompanyDetail.tsx:96 -msgid "Website" -msgstr "Nettside" - #: src/defaults/links.tsx:17 -msgid "GitHub" -msgstr "GitHub" +#~ msgid "GitHub" +#~ msgstr "GitHub" #: src/defaults/links.tsx:22 -msgid "Demo" -msgstr "Demo" - -#: src/defaults/links.tsx:33 -#: src/defaults/menuItems.tsx:48 -#: src/pages/company/ManufacturerDetail.tsx:9 -#: src/pages/company/ManufacturerPartDetail.tsx:263 -#: src/pages/company/SupplierDetail.tsx:9 -#: src/pages/company/SupplierPartDetail.tsx:347 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:483 -#: src/pages/purchasing/PurchasingIndex.tsx:60 -msgid "Purchasing" -msgstr "Innkjøp" - -#: src/defaults/links.tsx:37 -#: src/defaults/menuItems.tsx:53 -#: src/pages/company/CustomerDetail.tsx:9 -#: src/pages/sales/ReturnOrderDetail.tsx:474 -#: src/pages/sales/SalesIndex.tsx:53 -#: src/pages/sales/SalesOrderDetail.tsx:525 -msgid "Sales" -msgstr "Salg" +#~ msgid "Demo" +#~ msgstr "Demo" #: src/defaults/links.tsx:41 #: src/defaults/menuItems.tsx:71 #: src/pages/Index/Playground.tsx:217 -msgid "Playground" -msgstr "Lekeplass" +#~ msgid "Playground" +#~ msgstr "Playground" -#: src/defaults/links.tsx:55 -msgid "Getting Started" -msgstr "Komme i gang" - -#: src/defaults/links.tsx:56 -msgid "Getting started with InvenTree" -msgstr "Komme i gang med InvenTree" - -#: src/defaults/links.tsx:62 +#: src/defaults/links.tsx:45 msgid "API" msgstr "API" -#: src/defaults/links.tsx:63 +#: src/defaults/links.tsx:48 msgid "InvenTree API documentation" msgstr "InvenTree-API-dokumentasjon" -#: src/defaults/links.tsx:68 +#: src/defaults/links.tsx:52 msgid "Developer Manual" msgstr "Utviklermanual" -#: src/defaults/links.tsx:69 +#: src/defaults/links.tsx:55 msgid "InvenTree developer manual" msgstr "InvenTree utviklermanual" -#: src/defaults/links.tsx:74 +#: src/defaults/links.tsx:59 msgid "FAQ" msgstr "FAQ" -#: src/defaults/links.tsx:75 +#: src/defaults/links.tsx:62 msgid "Frequently asked questions" msgstr "Ofte stilte spørsmål" +#: src/defaults/links.tsx:66 +msgid "GitHub Repository" +msgstr "" + +#: src/defaults/links.tsx:69 +msgid "InvenTree source code on GitHub" +msgstr "" + #: src/defaults/links.tsx:76 #~ msgid "Instance" #~ msgstr "Instance" +#: src/defaults/links.tsx:79 +#: src/defaults/links.tsx:117 +msgid "System Information" +msgstr "Systeminformasjon" + #: src/defaults/links.tsx:83 #~ msgid "InvenTree" #~ msgstr "InvenTree" -#: src/defaults/links.tsx:85 -#: src/defaults/links.tsx:122 -msgid "System Information" -msgstr "Systeminformasjon" - #: src/defaults/links.tsx:117 #~ msgid "Licenses for packages used by InvenTree" #~ msgstr "Licenses for packages used by InvenTree" +#: src/defaults/links.tsx:125 +msgid "About the InvenTree Project" +msgstr "" + +#: src/defaults/links.tsx:132 +msgid "Licenses for dependencies of the InvenTree software" +msgstr "" + #: src/defaults/links.tsx:134 -msgid "Licenses" -msgstr "Lisenser" +#~ msgid "Licenses" +#~ msgstr "Licenses" #: src/defaults/menuItems.tsx:7 #~ msgid "Open sourcea" @@ -2607,8 +3131,8 @@ msgstr "Lisenser" #~ msgstr "Profile page" #: src/defaults/menuItems.tsx:17 -msgid "User attributes and design settings." -msgstr "Brukerattributter og designinnstillinger." +#~ msgid "User attributes and design settings." +#~ msgstr "User attributes and design settings." #: src/defaults/menuItems.tsx:21 #~ msgid "Free for everyone" @@ -2619,8 +3143,8 @@ msgstr "Brukerattributter og designinnstillinger." #~ msgstr "The fluid of Smeargle’s tail secretions changes" #: src/defaults/menuItems.tsx:23 -msgid "View for interactive scanning and multiple actions." -msgstr "Side for interaktiv skanning og flere handlinger." +#~ msgid "View for interactive scanning and multiple actions." +#~ msgstr "View for interactive scanning and multiple actions." #: src/defaults/menuItems.tsx:24 #~ msgid "The fluid of Smeargle’s tail secretions changes in the intensity" @@ -2698,51 +3222,130 @@ msgstr "Side for interaktiv skanning og flere handlinger." #~ msgid "Are you sure you want to delete this attachment?" #~ msgstr "Are you sure you want to delete this attachment?" -#: src/forms/BuildForms.tsx:158 -msgid "Next serial number" +#: src/forms/BuildForms.tsx:248 +#~ msgid "Remove output" +#~ msgstr "Remove output" + +#: src/forms/BuildForms.tsx:269 +#: src/tables/build/BuildAllocatedStockTable.tsx:147 +#: src/tables/build/BuildOrderTestTable.tsx:177 +#: src/tables/build/BuildOrderTestTable.tsx:201 +#: src/tables/build/BuildOutputTable.tsx:460 +msgid "Build Output" msgstr "" -#: src/forms/BuildForms.tsx:162 -msgid "Latest serial number" +#: src/forms/BuildForms.tsx:269 +#: src/forms/BuildForms.tsx:337 +#: src/forms/BuildForms.tsx:385 +#: src/tables/build/BuildLineTable.tsx:89 +msgid "Batch" msgstr "" -#: src/forms/BuildForms.tsx:234 -msgid "Remove output" -msgstr "" +#: src/forms/BuildForms.tsx:269 +#: src/forms/BuildForms.tsx:337 +#: src/forms/BuildForms.tsx:385 +#: src/forms/PurchaseOrderForms.tsx:603 +#: src/pages/build/BuildDetail.tsx:104 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:142 +#: src/pages/sales/ReturnOrderDetail.tsx:113 +#: src/pages/sales/SalesOrderDetail.tsx:122 +#: src/tables/build/BuildOrderTable.tsx:125 +#: src/tables/machine/MachineListTable.tsx:336 +#: src/tables/part/PartPurchaseOrdersTable.tsx:37 +#: src/tables/purchasing/PurchaseOrderTable.tsx:58 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:157 +#: src/tables/sales/ReturnOrderTable.tsx:56 +#: src/tables/sales/SalesOrderTable.tsx:56 +#: src/tables/settings/CustomStateTable.tsx:57 +#: src/tables/settings/ImportSessionTable.tsx:114 +#: src/tables/stock/StockItemTable.tsx:298 +#: src/tables/stock/StockTrackingTable.tsx:56 +msgid "Status" +msgstr "Status" -#: src/forms/BuildForms.tsx:316 +#: src/forms/BuildForms.tsx:289 msgid "Complete Build Outputs" msgstr "" -#: src/forms/BuildForms.tsx:320 +#: src/forms/BuildForms.tsx:292 msgid "Build outputs have been completed" msgstr "" -#: src/forms/BuildForms.tsx:389 +#: src/forms/BuildForms.tsx:353 msgid "Scrap Build Outputs" msgstr "" -#: src/forms/BuildForms.tsx:393 +#: src/forms/BuildForms.tsx:356 msgid "Build outputs have been scrapped" msgstr "" -#: src/forms/BuildForms.tsx:425 -#: src/forms/BuildForms.tsx:449 +#: src/forms/BuildForms.tsx:393 msgid "Cancel Build Outputs" msgstr "" -#: src/forms/BuildForms.tsx:426 -msgid "Selected build outputs will be deleted" +#: src/forms/BuildForms.tsx:396 +msgid "Build outputs have been cancelled" msgstr "" -#: src/forms/BuildForms.tsx:453 -msgid "Build outputs have been cancelled" +#: src/forms/BuildForms.tsx:408 +#~ msgid "Selected build outputs will be deleted" +#~ msgstr "Selected build outputs will be deleted" + +#: src/forms/BuildForms.tsx:470 +#~ msgid "Remove line" +#~ msgstr "Remove line" + +#: src/forms/BuildForms.tsx:515 +#: src/forms/SalesOrderForms.tsx:248 +#: src/tables/build/BuildLineTable.tsx:174 +#: src/tables/sales/SalesOrderLineItemTable.tsx:276 +#: src/tables/stock/StockItemTable.tsx:309 +msgid "Allocated" +msgstr "Tildelt" + +#: src/forms/BuildForms.tsx:545 +#: src/forms/SalesOrderForms.tsx:239 +#: src/pages/build/BuildDetail.tsx:208 +msgid "Source Location" +msgstr "" + +#: src/forms/BuildForms.tsx:546 +#: src/forms/SalesOrderForms.tsx:240 +msgid "Select the source location for the stock allocation" +msgstr "" + +#: src/forms/BuildForms.tsx:566 +#: src/forms/SalesOrderForms.tsx:274 +#: src/tables/build/BuildLineTable.tsx:442 +#: src/tables/build/BuildLineTable.tsx:569 +#: src/tables/build/BuildLineTable.tsx:642 +#: src/tables/sales/SalesOrderLineItemTable.tsx:302 +#: src/tables/sales/SalesOrderLineItemTable.tsx:326 +msgid "Allocate Stock" +msgstr "Tildel lagerbeholdning" + +#: src/forms/BuildForms.tsx:569 +#: src/forms/SalesOrderForms.tsx:279 +msgid "Stock items allocated" msgstr "" #: src/forms/CompanyForms.tsx:150 #~ msgid "Company updated" #~ msgstr "Company updated" +#: src/forms/PartForms.tsx:67 +#: src/forms/PartForms.tsx:154 +#: src/pages/part/CategoryDetail.tsx:117 +#: src/pages/part/PartDetail.tsx:384 +#: src/tables/part/PartCategoryTable.tsx:90 +#: src/tables/part/PartTable.tsx:294 +msgid "Subscribed" +msgstr "" + +#: src/forms/PartForms.tsx:68 +msgid "Subscribe to notifications for this part" +msgstr "" + #: src/forms/PartForms.tsx:106 #~ msgid "Create Part" #~ msgstr "Create Part" @@ -2751,191 +3354,190 @@ msgstr "" #~ msgid "Part created" #~ msgstr "Part created" -#: src/forms/PartForms.tsx:124 -msgid "Parent part category" -msgstr "Overordnet del-kategori" - #: src/forms/PartForms.tsx:129 #~ msgid "Part updated" #~ msgstr "Part updated" -#: src/forms/PurchaseOrderForms.tsx:300 +#: src/forms/PartForms.tsx:140 +msgid "Parent part category" +msgstr "Overordnet del-kategori" + +#: src/forms/PartForms.tsx:155 +msgid "Subscribe to notifications for this category" +msgstr "" + +#: src/forms/PurchaseOrderForms.tsx:314 +msgid "Assign Batch Code and Serial Numbers" +msgstr "" + +#: src/forms/PurchaseOrderForms.tsx:316 +msgid "Assign Batch Code" +msgstr "" + +#: src/forms/PurchaseOrderForms.tsx:336 msgid "Choose Location" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:308 +#: src/forms/PurchaseOrderForms.tsx:344 msgid "Item Destination selected" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:317 +#: src/forms/PurchaseOrderForms.tsx:353 msgid "Part category default location selected" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:327 +#: src/forms/PurchaseOrderForms.tsx:363 msgid "Received stock location selected" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:332 +#: src/forms/PurchaseOrderForms.tsx:368 msgid "Default location selected" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:343 -#: src/forms/PurchaseOrderForms.tsx:435 -msgid "Scan Barcode" -msgstr "" +#: src/forms/PurchaseOrderForms.tsx:421 +#~ msgid "Assign Batch Code{0}" +#~ msgstr "Assign Batch Code{0}" -#: src/forms/PurchaseOrderForms.tsx:388 +#: src/forms/PurchaseOrderForms.tsx:427 msgid "Set Location" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:396 -msgid "Assign Batch Code{0}" -msgstr "" - -#: src/forms/PurchaseOrderForms.tsx:405 -#: src/forms/StockForms.tsx:420 +#: src/forms/PurchaseOrderForms.tsx:442 +#: src/forms/StockForms.tsx:539 msgid "Adjust Packaging" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:412 -msgid "Change Status" -msgstr "" - -#: src/forms/PurchaseOrderForms.tsx:418 -msgid "Add Note" -msgstr "" - #: src/forms/PurchaseOrderForms.tsx:444 #: src/forms/StockForms.tsx:428 -msgid "Remove item from list" +#~ msgid "Remove item from list" +#~ msgstr "Remove item from list" + +#: src/forms/PurchaseOrderForms.tsx:450 +msgid "Change Status" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:471 -#: src/forms/StockForms.tsx:499 -#: src/forms/StockForms.tsx:533 -#: src/forms/StockForms.tsx:562 -#: src/forms/StockForms.tsx:590 -#: src/forms/StockForms.tsx:621 -#: src/forms/StockForms.tsx:656 -#: src/forms/StockForms.tsx:698 -#: src/forms/StockForms.tsx:734 -#: src/pages/stock/StockDetail.tsx:181 -#: src/tables/ColumnRenderers.tsx:49 -#: src/tables/stock/StockTrackingTable.tsx:85 +#: src/forms/PurchaseOrderForms.tsx:456 +msgid "Add Note" +msgstr "" + +#: src/forms/PurchaseOrderForms.tsx:503 +#: src/forms/StockForms.tsx:614 +#: src/forms/StockForms.tsx:651 +#: src/forms/StockForms.tsx:677 +#: src/forms/StockForms.tsx:705 +#: src/forms/StockForms.tsx:736 +#: src/forms/StockForms.tsx:771 +#: src/forms/StockForms.tsx:813 +#: src/forms/StockForms.tsx:851 +#: src/pages/stock/StockDetail.tsx:202 +#: src/tables/ColumnRenderers.tsx:60 +#: src/tables/stock/StockTrackingTable.tsx:89 msgid "Location" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:486 +#: src/forms/PurchaseOrderForms.tsx:518 msgid "Store at default location" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:499 +#: src/forms/PurchaseOrderForms.tsx:533 msgid "Store at line item destination" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:509 +#: src/forms/PurchaseOrderForms.tsx:545 msgid "Store with already received stock" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:524 -#: src/pages/build/BuildDetail.tsx:219 -#: src/pages/stock/StockDetail.tsx:162 -#: src/pages/stock/StockDetail.tsx:599 -#: src/tables/build/BuildAllocatedStockTable.tsx:109 -#: src/tables/build/BuildOrderTestTable.tsx:188 -#: src/tables/sales/SalesOrderAllocationTable.tsx:87 +#: src/forms/PurchaseOrderForms.tsx:566 +#: src/pages/build/BuildDetail.tsx:222 +#: src/pages/stock/StockDetail.tsx:185 +#: src/pages/stock/StockDetail.tsx:793 +#: src/tables/build/BuildAllocatedStockTable.tsx:130 +#: src/tables/build/BuildOrderTestTable.tsx:189 +#: src/tables/build/BuildOutputTable.tsx:86 +#: src/tables/sales/SalesOrderAllocationTable.tsx:113 msgid "Batch Code" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:535 -msgid "Serial numbers" +#: src/forms/PurchaseOrderForms.tsx:566 +#~ msgid "Serial numbers" +#~ msgstr "Serial numbers" + +#: src/forms/PurchaseOrderForms.tsx:567 +msgid "Enter batch code for received items" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:544 -#: src/forms/StockForms.tsx:443 -#: src/pages/company/SupplierPartDetail.tsx:156 -#: src/pages/company/SupplierPartDetail.tsx:207 -#: src/pages/stock/StockDetail.tsx:244 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:192 +#: src/forms/PurchaseOrderForms.tsx:579 +#: src/forms/StockForms.tsx:152 +msgid "Serial Numbers" +msgstr "Serienumre" + +#: src/forms/PurchaseOrderForms.tsx:580 +msgid "Enter serial numbers for received items" +msgstr "" + +#: src/forms/PurchaseOrderForms.tsx:590 +#: src/forms/StockForms.tsx:556 +#: src/pages/company/SupplierPartDetail.tsx:168 +#: src/pages/company/SupplierPartDetail.tsx:219 +#: src/pages/stock/StockDetail.tsx:320 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:198 msgid "Packaging" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:556 -#: src/pages/build/BuildDetail.tsx:109 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:148 -#: src/pages/sales/ReturnOrderDetail.tsx:121 -#: src/pages/sales/SalesOrderDetail.tsx:127 -#: src/tables/build/BuildOrderTable.tsx:122 -#: src/tables/machine/MachineListTable.tsx:335 -#: src/tables/part/PartPurchaseOrdersTable.tsx:37 -#: src/tables/purchasing/PurchaseOrderTable.tsx:55 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:132 -#: src/tables/sales/ReturnOrderTable.tsx:46 -#: src/tables/sales/SalesOrderTable.tsx:53 -#: src/tables/settings/ImportSessionTable.tsx:115 -#: src/tables/stock/StockItemTable.tsx:294 -#: src/tables/stock/StockTrackingTable.tsx:52 -msgid "Status" -msgstr "Status" - -#: src/forms/PurchaseOrderForms.tsx:564 -#: src/pages/company/SupplierPartDetail.tsx:110 -#: src/tables/ColumnRenderers.tsx:132 +#: src/forms/PurchaseOrderForms.tsx:612 +#: src/pages/company/SupplierPartDetail.tsx:115 +#: src/tables/ColumnRenderers.tsx:143 msgid "Note" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/pages/company/SupplierPartDetail.tsx:128 -#: src/tables/purchasing/SupplierPriceBreakTable.tsx:57 -msgid "SKU" -msgstr "" - -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/tables/part/PartPurchaseOrdersTable.tsx:120 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:178 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:127 -msgid "Received" -msgstr "Mottatt" - -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/forms/StockForms.tsx:499 -#: src/forms/StockForms.tsx:533 -#: src/forms/StockForms.tsx:562 -#: src/forms/StockForms.tsx:590 -#: src/forms/StockForms.tsx:621 -#: src/forms/StockForms.tsx:656 -#: src/forms/StockForms.tsx:698 -#: src/forms/StockForms.tsx:734 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:413 -#: src/tables/RowActions.tsx:113 -msgid "Actions" -msgstr "Handlinger" - -#: src/forms/PurchaseOrderForms.tsx:655 -msgid "Receive Line Items" -msgstr "" - #: src/forms/PurchaseOrderForms.tsx:658 #~ msgid "Receive line items" #~ msgstr "Receive line items" -#: src/forms/StockForms.tsx:104 -msgid "Add given quantity as packs instead of individual items" -msgstr "Legg til gitt mengde som pakker i stedet for enkeltprodukter" +#: src/forms/PurchaseOrderForms.tsx:689 +#: src/pages/company/SupplierPartDetail.tsx:133 +#: src/tables/purchasing/SupplierPriceBreakTable.tsx:57 +msgid "SKU" +msgstr "" + +#: src/forms/PurchaseOrderForms.tsx:689 +#: src/tables/part/PartPurchaseOrdersTable.tsx:126 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:184 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:247 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:152 +msgid "Received" +msgstr "Mottatt" + +#: src/forms/PurchaseOrderForms.tsx:701 +msgid "Receive Line Items" +msgstr "" + +#: src/forms/ReturnOrderForms.tsx:201 +msgid "Receive Items" +msgstr "" + +#: src/forms/ReturnOrderForms.tsx:208 +msgid "Item received into stock" +msgstr "" + +#: src/forms/StockForms.tsx:80 +#: src/hooks/UsePlaceholder.tsx:57 +msgid "Next serial number" +msgstr "" #: src/forms/StockForms.tsx:110 #~ msgid "Create Stock Item" #~ msgstr "Create Stock Item" -#: src/forms/StockForms.tsx:117 +#: src/forms/StockForms.tsx:131 +msgid "Add given quantity as packs instead of individual items" +msgstr "Legg til gitt mengde som pakker i stedet for enkeltprodukter" + +#: src/forms/StockForms.tsx:145 msgid "Enter initial quantity for this stock item" msgstr "Angi innledende antall for denne lagervaren" -#: src/forms/StockForms.tsx:124 -msgid "Serial Numbers" -msgstr "Serienumre" - -#: src/forms/StockForms.tsx:125 +#: src/forms/StockForms.tsx:154 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "Angi serienumre for ny lagerbeholdning (eller la stå tom)" @@ -2943,82 +3545,102 @@ msgstr "Angi serienumre for ny lagerbeholdning (eller la stå tom)" #~ msgid "Stock item updated" #~ msgstr "Stock item updated" -#: src/forms/StockForms.tsx:179 -#: src/pages/stock/StockDetail.tsx:434 -#: src/tables/stock/StockItemTable.tsx:417 -#: src/tables/stock/StockItemTable.tsx:535 +#: src/forms/StockForms.tsx:169 +#: src/pages/stock/StockDetail.tsx:131 +msgid "Stock Status" +msgstr "" + +#: src/forms/StockForms.tsx:218 +#: src/pages/stock/StockDetail.tsx:554 +#: src/tables/stock/StockItemTable.tsx:421 +#: src/tables/stock/StockItemTable.tsx:541 msgid "Add Stock Item" msgstr "" -#: src/forms/StockForms.tsx:362 +#: src/forms/StockForms.tsx:262 +msgid "Select the part to install" +msgstr "" + +#: src/forms/StockForms.tsx:480 msgid "Loading..." msgstr "" -#: src/forms/StockForms.tsx:408 +#: src/forms/StockForms.tsx:527 msgid "Move to default location" msgstr "" -#: src/forms/StockForms.tsx:499 -#: src/forms/StockForms.tsx:533 -#: src/forms/StockForms.tsx:562 -#: src/forms/StockForms.tsx:590 -#: src/forms/StockForms.tsx:621 -#: src/forms/StockForms.tsx:656 -#: src/forms/StockForms.tsx:698 -#: src/forms/StockForms.tsx:734 -#: src/pages/part/PartDetail.tsx:230 -#: src/pages/part/PartDetail.tsx:843 -#: src/tables/stock/StockItemTable.tsx:325 +#: src/forms/StockForms.tsx:614 +#: src/forms/StockForms.tsx:651 +#: src/forms/StockForms.tsx:677 +#: src/forms/StockForms.tsx:705 +#: src/forms/StockForms.tsx:736 +#: src/forms/StockForms.tsx:771 +#: src/forms/StockForms.tsx:813 +#: src/forms/StockForms.tsx:851 +#: src/pages/part/PartDetail.tsx:251 +#: src/pages/part/PartDetail.tsx:875 +#: src/tables/stock/StockItemTable.tsx:329 msgid "In Stock" msgstr "På lager" -#: src/forms/StockForms.tsx:499 +#: src/forms/StockForms.tsx:614 msgid "Move" msgstr "" -#: src/forms/StockForms.tsx:562 -#: src/pages/stock/StockDetail.tsx:518 -#: src/tables/stock/StockItemTestResultTable.tsx:328 +#: src/forms/StockForms.tsx:677 +#: src/pages/stock/StockDetail.tsx:681 +#: src/tables/stock/StockItemTestResultTable.tsx:346 msgid "Add" msgstr "Legg til" -#: src/forms/StockForms.tsx:590 -#: src/pages/Index/Scan.tsx:266 -#: src/pages/stock/StockDetail.tsx:508 +#: src/forms/StockForms.tsx:705 +#: src/pages/Index/Scan.tsx:280 +#: src/pages/stock/StockDetail.tsx:670 msgid "Count" msgstr "Tell" -#: src/forms/StockForms.tsx:835 +#: src/forms/StockForms.tsx:953 +#: src/pages/stock/StockDetail.tsx:682 +#: src/tables/stock/StockItemTable.tsx:454 msgid "Add Stock" msgstr "" -#: src/forms/StockForms.tsx:844 +#: src/forms/StockForms.tsx:962 +#: src/pages/stock/StockDetail.tsx:691 +#: src/tables/stock/StockItemTable.tsx:463 msgid "Remove Stock" msgstr "" -#: src/forms/StockForms.tsx:853 -#: src/pages/part/PartDetail.tsx:1017 +#: src/forms/StockForms.tsx:971 +#: src/pages/part/PartDetail.tsx:1039 +#: src/pages/stock/StockDetail.tsx:712 +#: src/tables/stock/StockItemTable.tsx:483 msgid "Transfer Stock" msgstr "Overfør lager" -#: src/forms/StockForms.tsx:862 -#: src/pages/part/PartDetail.tsx:1006 +#: src/forms/StockForms.tsx:980 +#: src/pages/part/PartDetail.tsx:1028 +#: src/pages/stock/LocationDetail.tsx:314 +#: src/pages/stock/LocationDetail.tsx:318 +#: src/tables/stock/StockItemTable.tsx:472 +#: src/tables/stock/StockItemTable.tsx:476 msgid "Count Stock" msgstr "Tell beholdning" -#: src/forms/StockForms.tsx:871 +#: src/forms/StockForms.tsx:989 msgid "Change Stock Status" msgstr "" -#: src/forms/StockForms.tsx:880 +#: src/forms/StockForms.tsx:998 msgid "Merge Stock" msgstr "" -#: src/forms/StockForms.tsx:899 +#: src/forms/StockForms.tsx:1017 +#: src/tables/stock/StockItemTable.tsx:530 msgid "Delete Stock Items" msgstr "" -#: src/forms/StockForms.tsx:906 +#: src/forms/StockForms.tsx:1024 msgid "Parent stock location" msgstr "" @@ -3042,11 +3664,11 @@ msgstr "" #~ msgid "You have been logged out" #~ msgstr "You have been logged out" -#: src/functions/auth.tsx:117 +#: src/functions/auth.tsx:128 msgid "Logged Out" msgstr "" -#: src/functions/auth.tsx:118 +#: src/functions/auth.tsx:129 msgid "Successfully logged out" msgstr "" @@ -3062,20 +3684,20 @@ msgstr "" #~ msgid "Found an existing login - welcome back!" #~ msgstr "Found an existing login - welcome back!" -#: src/functions/auth.tsx:156 +#: src/functions/auth.tsx:167 msgid "Check your inbox for a reset link. This only works if you have an account. Check in spam too." msgstr "Sjekk innboksen for en nullstillingslenke. Dette fungerer bare hvis du har en konto. Sjekk også i spam." -#: src/functions/auth.tsx:163 +#: src/functions/auth.tsx:174 #: src/pages/Auth/Set-Password.tsx:39 msgid "Reset failed" msgstr "Tilbakestilling feilet" -#: src/functions/auth.tsx:194 +#: src/functions/auth.tsx:205 msgid "Logged In" msgstr "" -#: src/functions/auth.tsx:195 +#: src/functions/auth.tsx:206 msgid "Successfully logged in" msgstr "" @@ -3095,30 +3717,38 @@ msgstr "" #~ msgid "method parameter not supplied" #~ msgstr "method parameter not supplied" -#: src/functions/notifications.tsx:10 +#: src/functions/notifications.tsx:12 msgid "Not implemented" msgstr "Ikke implementert" -#: src/functions/notifications.tsx:11 +#: src/functions/notifications.tsx:13 msgid "This feature is not yet implemented" msgstr "Denne funksjonen er ikke implementert ennå" -#: src/functions/notifications.tsx:21 -msgid "Permission denied" -msgstr "Tillatelse nektet" +#: src/functions/notifications.tsx:24 +#~ msgid "Permission denied" +#~ msgstr "Permission denied" -#: src/functions/notifications.tsx:22 +#: src/functions/notifications.tsx:25 msgid "You do not have permission to perform this action" msgstr "Du har ikke rettigheter til å utføre denne handlingen" -#: src/functions/notifications.tsx:33 +#: src/functions/notifications.tsx:36 msgid "Invalid Return Code" msgstr "Ugyldig returkode" -#: src/functions/notifications.tsx:34 +#: src/functions/notifications.tsx:37 msgid "Server returned status {returnCode}" msgstr "Serveren returnerte status {returnCode}" +#: src/functions/notifications.tsx:47 +msgid "Timeout" +msgstr "" + +#: src/functions/notifications.tsx:48 +msgid "The request timed out" +msgstr "" + #: src/hooks/UseForm.tsx:88 msgid "Item Created" msgstr "" @@ -3135,20 +3765,24 @@ msgstr "" msgid "Are you sure you want to delete this item?" msgstr "" +#: src/hooks/UsePlaceholder.tsx:59 +msgid "Latest serial number" +msgstr "" + #: src/pages/Auth/Logged-In.tsx:22 msgid "Checking if you are already logged in" msgstr "Sjekker om du allerede er innlogget" -#: src/pages/Auth/Login.tsx:31 -#: src/pages/Index/Scan.tsx:329 +#: src/pages/Auth/Login.tsx:35 +#: src/pages/Index/Scan.tsx:343 msgid "No selection" msgstr "Ingen utvalg" -#: src/pages/Auth/Login.tsx:87 +#: src/pages/Auth/Login.tsx:91 msgid "Welcome, log in below" msgstr "Velkommen, logg inn nedenfor" -#: src/pages/Auth/Login.tsx:89 +#: src/pages/Auth/Login.tsx:93 msgid "Register below" msgstr "" @@ -3162,8 +3796,8 @@ msgstr "" #: src/pages/Auth/Reset.tsx:41 #: src/pages/Auth/Set-Password.tsx:112 -msgid "Send mail" -msgstr "Send e-post" +#~ msgid "Send mail" +#~ msgstr "Send mail" #: src/pages/Auth/Set-Password.tsx:30 msgid "Token invalid" @@ -3174,22 +3808,22 @@ msgid "You need to provide a valid token to set a new password. Check your inbox msgstr "Du må oppgi et gyldig token for å angi et nytt passord. Sjekk innboksen for en tilbakestillingslenke." #: src/pages/Auth/Set-Password.tsx:49 -msgid "No token provided" -msgstr "Ingen token oppgitt" +#~ msgid "No token provided" +#~ msgstr "No token provided" #: src/pages/Auth/Set-Password.tsx:50 -msgid "You need to provide a token to set a new password. Check your inbox for a reset link." -msgstr "Du må oppgi et token for å angi et nytt passord. Sjekk innboksen for en tilbakestillingslenke." +#~ msgid "You need to provide a token to set a new password. Check your inbox for a reset link." +#~ msgstr "You need to provide a token to set a new password. Check your inbox for a reset link." -#: src/pages/Auth/Set-Password.tsx:73 +#: src/pages/Auth/Set-Password.tsx:68 msgid "Password set" msgstr "Passord angitt" -#: src/pages/Auth/Set-Password.tsx:74 +#: src/pages/Auth/Set-Password.tsx:69 msgid "The password was set successfully. You can now login with your new password" msgstr "Passordet er blitt satt. Du kan nå logge inn med ditt nye passord" -#: src/pages/Auth/Set-Password.tsx:101 +#: src/pages/Auth/Set-Password.tsx:96 msgid "Set new password" msgstr "Angi nytt passord" @@ -3206,20 +3840,20 @@ msgstr "" #~ msgstr "Sorry, an unexpected error has occurred." #: src/pages/Index/Dashboard.tsx:22 -msgid "Autoupdate" -msgstr "Automatisk oppdatering" +#~ msgid "Autoupdate" +#~ msgstr "Autoupdate" #: src/pages/Index/Dashboard.tsx:26 -msgid "This page is a replacement for the old start page with the same information. This page will be deprecated and replaced by the home page." -msgstr "Denne siden er erstatning for den gamle startsiden med samme informasjon. Denne siden vil bli foreldet og erstattet av hjemmesiden." +#~ msgid "This page is a replacement for the old start page with the same information. This page will be deprecated and replaced by the home page." +#~ msgstr "This page is a replacement for the old start page with the same information. This page will be deprecated and replaced by the home page." #: src/pages/Index/Home.tsx:58 -msgid "Welcome to your Dashboard{0}" -msgstr "Velkommen til dashbordet ditt{0}" +#~ msgid "Welcome to your Dashboard{0}" +#~ msgstr "Welcome to your Dashboard{0}" #: src/pages/Index/Playground.tsx:222 -msgid "This page is a showcase for the possibilities of Platform UI." -msgstr "Denne siden er et utstillingsvindu for Platform UI." +#~ msgid "This page is a showcase for the possibilities of Platform UI." +#~ msgstr "This page is a showcase for the possibilities of Platform UI." #: src/pages/Index/Profile/Profile.tsx:30 #: src/pages/Index/Profile/Profile.tsx:141 @@ -3365,126 +3999,191 @@ msgstr "Manuell innskriving" msgid "Image Barcode" msgstr "Bilde-strekkode" -#: src/pages/Index/Scan.tsx:247 +#: src/pages/Index/Scan.tsx:261 msgid "Selected elements are not known" msgstr "Valgte elementer er ikke kjent" -#: src/pages/Index/Scan.tsx:254 +#: src/pages/Index/Scan.tsx:268 msgid "Multiple object types selected" msgstr "Flere objekttyper er valgt" -#: src/pages/Index/Scan.tsx:261 +#: src/pages/Index/Scan.tsx:275 msgid "Actions for {0}" msgstr "Handlinger for {0}" -#: src/pages/Index/Scan.tsx:282 +#: src/pages/Index/Scan.tsx:296 msgid "Scan Page" msgstr "Skann side" -#: src/pages/Index/Scan.tsx:285 +#: src/pages/Index/Scan.tsx:299 msgid "This page can be used for continuously scanning items and taking actions on them." msgstr "Denne siden kan brukes til kontinuerlig skanning av elementer og til å utføre handlinger på dem." -#: src/pages/Index/Scan.tsx:292 +#: src/pages/Index/Scan.tsx:306 msgid "Toggle Fullscreen" msgstr "" -#: src/pages/Index/Scan.tsx:305 +#: src/pages/Index/Scan.tsx:319 msgid "Select the input method you want to use to scan items." msgstr "Velg hvilken inndatametode du vil bruke til å skanne elementer." -#: src/pages/Index/Scan.tsx:307 +#: src/pages/Index/Scan.tsx:321 msgid "Input" msgstr "Inndata" -#: src/pages/Index/Scan.tsx:314 +#: src/pages/Index/Scan.tsx:328 msgid "Select input method" msgstr "Velg inndatametode" -#: src/pages/Index/Scan.tsx:315 +#: src/pages/Index/Scan.tsx:329 msgid "Nothing found" msgstr "Ingenting funnet" -#: src/pages/Index/Scan.tsx:323 +#: src/pages/Index/Scan.tsx:337 msgid "Depending on the selected parts actions will be shown here. Not all barcode types are supported currently." msgstr "Avhengig av valgte delhandlinger vil bli vist her. Ikke alle strekkodetyper støttes for øyeblikket." -#: src/pages/Index/Scan.tsx:325 +#: src/pages/Index/Scan.tsx:339 msgid "Action" msgstr "Handling" -#: src/pages/Index/Scan.tsx:334 +#: src/pages/Index/Scan.tsx:348 msgid "{0} items selected" msgstr "{0} elementer valgt" -#: src/pages/Index/Scan.tsx:337 +#: src/pages/Index/Scan.tsx:351 msgid "General Actions" msgstr "Generelle handliger" -#: src/pages/Index/Scan.tsx:351 +#: src/pages/Index/Scan.tsx:365 msgid "Lookup part" msgstr "Slå opp del" -#: src/pages/Index/Scan.tsx:359 +#: src/pages/Index/Scan.tsx:373 msgid "Open Link" msgstr "Åpne lenke" -#: src/pages/Index/Scan.tsx:375 +#: src/pages/Index/Scan.tsx:389 msgid "History is locally kept in this browser." msgstr "Historikk holdes lokalt i denne nettleseren." -#: src/pages/Index/Scan.tsx:376 +#: src/pages/Index/Scan.tsx:390 msgid "The history is kept in this browser's local storage. So it won't be shared with other users or other devices but is persistent through reloads. You can select items in the history to perform actions on them. To add items, scan/enter them in the Input area." msgstr "Historien ligger i denne nettleserens lokale lagringsplass. Så den vil ikke bli delt med andre brukere eller andre enheter, men er vedvarende ved gjennom nyinnlasting. Du kan velge elementer i historien for å utføre handlinger på dem. For å legge til elementer, skan/skriv dem inn i Input området." -#: src/pages/Index/Scan.tsx:378 +#: src/pages/Index/Scan.tsx:392 #: src/pages/Notifications.tsx:100 msgid "History" msgstr "Logg" -#: src/pages/Index/Scan.tsx:384 +#: src/pages/Index/Scan.tsx:398 msgid "Delete History" msgstr "" -#: src/pages/Index/Scan.tsx:449 +#: src/pages/Index/Scan.tsx:463 msgid "No history" msgstr "Ingen historikk" -#: src/pages/Index/Scan.tsx:467 +#: src/pages/Index/Scan.tsx:481 msgid "Item" msgstr "Artikkel" -#: src/pages/Index/Scan.tsx:470 +#: src/pages/Index/Scan.tsx:484 msgid "Type" msgstr "Type" -#: src/pages/Index/Scan.tsx:473 +#: src/pages/Index/Scan.tsx:487 msgid "Source" msgstr "Kilde" -#: src/pages/Index/Scan.tsx:476 +#: src/pages/Index/Scan.tsx:490 msgid "Scanned at" msgstr "Skannet ved" -#: src/pages/Index/Scan.tsx:528 +#: src/pages/Index/Scan.tsx:547 msgid "Enter item serial or data" msgstr "Legg inn elementets serienummer eller data" -#: src/pages/Index/Scan.tsx:540 +#: src/pages/Index/Scan.tsx:559 msgid "Add dummy item" msgstr "Legg til dummyelement" +#: src/pages/Index/Scan.tsx:569 +msgid "Start scanning by selecting a camera and pressing the play button." +msgstr "" + +#: src/pages/Index/Scan.tsx:650 +msgid "Error while getting camera" +msgstr "Feil under henting av kamera" + +#: src/pages/Index/Scan.tsx:673 +msgid "Error while scanning" +msgstr "Feil under skanning" + +#: src/pages/Index/Scan.tsx:687 +msgid "Error while stopping" +msgstr "Feil under stans" + +#: src/pages/Index/Scan.tsx:745 +msgid "Stop scanning" +msgstr "Stopp skanning" + +#: src/pages/Index/Scan.tsx:754 +msgid "Start scanning" +msgstr "Start skanningen" + +#: src/pages/Index/Scan.tsx:763 +msgid "Scanning" +msgstr "Skanner" + +#: src/pages/Index/Scan.tsx:763 +msgid "Not scanning" +msgstr "Skanner ikke" + +#: src/pages/Index/Scan.tsx:775 +msgid "Select Camera" +msgstr "Velg kamera" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:28 +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:50 +msgid "Edit User Information" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:32 +msgid "User details updated" +msgstr "" + #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:41 -msgid "Account Details" -msgstr "Kontodetaljer" +msgid "User Details" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:41 +#~ msgid "Account Details" +#~ msgstr "Account Details" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:44 +msgid "User Actions" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:48 +msgid "Edit User" +msgstr "" #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:50 -msgid "First name" -msgstr "Fornavn" +#~ msgid "First name" +#~ msgstr "First name" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:54 +msgid "Set Password" +msgstr "" #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:55 -msgid "Last name" -msgstr "Etternavn" +#~ msgid "Last name" +#~ msgstr "Last name" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:56 +msgid "Set User Password" +msgstr "" #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:58 #~ msgid "First name: {0}" @@ -3495,16 +4194,29 @@ msgstr "Etternavn" #~ msgstr "Last name: {0}" #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:67 -msgid "First name:" -msgstr "" +#~ msgid "First name:" +#~ msgstr "First name:" #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:71 -msgid "Last name:" +#~ msgid "Last name:" +#~ msgstr "Last name:" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:73 +msgid "First Name" msgstr "" -#: src/pages/Index/Settings/AccountSettings/DisplaySettingsPanel.tsx:41 -msgid "Use pseudo language" -msgstr "Bruk pseudo-språk" +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:79 +msgid "Last Name" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:85 +msgid "Staff Access" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:93 +#: src/tables/settings/UserTable.tsx:293 +msgid "Superuser" +msgstr "" #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:55 msgid "Single Sign On Accounts" @@ -3600,27 +4312,6 @@ msgstr "" msgid "No tokens configured" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:398 -#: src/pages/part/PartDetail.tsx:297 -#: src/tables/bom/UsedInTable.tsx:84 -#: src/tables/build/BuildOrderTable.tsx:110 -#: src/tables/company/CompanyTable.tsx:61 -#: src/tables/company/CompanyTable.tsx:95 -#: src/tables/machine/MachineListTable.tsx:332 -#: src/tables/machine/MachineListTable.tsx:594 -#: src/tables/part/ParametricPartTable.tsx:223 -#: src/tables/part/PartTable.tsx:178 -#: src/tables/part/PartVariantTable.tsx:15 -#: src/tables/plugin/PluginListTable.tsx:149 -#: src/tables/plugin/PluginListTable.tsx:271 -#: src/tables/plugin/PluginListTable.tsx:563 -#: src/tables/purchasing/SupplierPartTable.tsx:98 -#: src/tables/purchasing/SupplierPartTable.tsx:187 -#: src/tables/settings/UserTable.tsx:284 -#: src/tables/stock/StockItemTable.tsx:289 -msgid "Active" -msgstr "Aktiv" - #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:401 msgid "Expiry" msgstr "" @@ -3630,38 +4321,74 @@ msgid "Last Seen" msgstr "" #: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:65 -msgid "bars" -msgstr "streker" +#~ msgid "bars" +#~ msgstr "bars" #: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:66 -msgid "oval" -msgstr "oval" +#~ msgid "oval" +#~ msgstr "oval" #: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:67 -msgid "dots" -msgstr "prikker" +#~ msgid "dots" +#~ msgstr "dots" #: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:81 -msgid "Theme" -msgstr "Tema" +#~ msgid "Theme" +#~ msgstr "Theme" #: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:87 -msgid "Primary color" -msgstr "Hovedfarge" +#~ msgid "Primary color" +#~ msgstr "Primary color" -#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:100 +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:88 +msgid "Bars" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:89 +msgid "Oval" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:90 +msgid "Dots" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:101 +msgid "Display Settings" +msgstr "Visningsinnstillinger" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:107 +msgid "Language" +msgstr "Språk" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:115 +msgid "Use pseudo language" +msgstr "Bruk pseudo-språk" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:122 +msgid "Color Mode" +msgstr "Fargemodus" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:133 +msgid "Highlight color" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:145 +msgid "Example" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:151 msgid "White color" msgstr "Hvit farge" -#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:108 +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:167 msgid "Black color" msgstr "Svart farge" -#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:116 +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:183 msgid "Border Radius" msgstr "Kantradius" -#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:132 +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:199 msgid "Loader" msgstr "Laster" @@ -3673,89 +4400,156 @@ msgstr "Laster" #~ msgid "Advanced Amininistrative Options for InvenTree" #~ msgstr "Advanced Amininistrative Options for InvenTree" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:104 +#: src/pages/Index/Settings/AdminCenter/CurrencyManagmentPanel.tsx:27 +#: src/tables/ColumnRenderers.tsx:262 +msgid "Currency" +msgstr "Valuta" + +#: src/pages/Index/Settings/AdminCenter/CurrencyManagmentPanel.tsx:32 +msgid "Rate" +msgstr "Kurs" + +#: src/pages/Index/Settings/AdminCenter/CurrencyManagmentPanel.tsx:44 +msgid "Exchange rates updated" +msgstr "Valutakurser oppdatert" + +#: src/pages/Index/Settings/AdminCenter/CurrencyManagmentPanel.tsx:50 +msgid "Exchange rate update error" +msgstr "Feil udner oppdatering av valutakurs" + +#: src/pages/Index/Settings/AdminCenter/CurrencyManagmentPanel.tsx:62 +msgid "Refresh currency exchange rates" +msgstr "Oppdater valutakursene" + +#: src/pages/Index/Settings/AdminCenter/CurrencyManagmentPanel.tsx:99 +msgid "Last fetched" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/CurrencyManagmentPanel.tsx:100 +msgid "Base currency" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:115 msgid "Data Import" msgstr "" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:110 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:121 +msgid "Barcode Scans" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:127 msgid "Background Tasks" msgstr "Bakgrunnsoppgaver" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:116 -msgid "Error Reports" -msgstr "Feilrapporter" - -#: src/pages/Index/Settings/AdminCenter/Index.tsx:122 -msgid "Currencies" -msgstr "" - #: src/pages/Index/Settings/AdminCenter/Index.tsx:127 #~ msgid "Templates" #~ msgstr "Templates" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:140 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:133 +msgid "Error Reports" +msgstr "Feilrapporter" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:139 +msgid "Currencies" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:157 +msgid "Custom States" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:163 +#: src/pages/Index/Settings/AdminCenter/UnitManagmentPanel.tsx:58 msgid "Custom Units" msgstr "Egendefinerte enheter" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:146 -#: src/pages/part/CategoryDetail.tsx:264 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:169 +#: src/pages/part/CategoryDetail.tsx:269 msgid "Part Parameters" msgstr "Delparametere" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:152 -msgid "Category Parameters" -msgstr "" - -#: src/pages/Index/Settings/AdminCenter/Index.tsx:170 -msgid "Location Types" -msgstr "" - #: src/pages/Index/Settings/AdminCenter/Index.tsx:170 #~ msgid "Location types" #~ msgstr "Location types" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:182 -#: src/tables/machine/MachineTypeTable.tsx:287 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:175 +msgid "Category Parameters" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:181 +msgid "Stocktake" +msgstr "Lagertelling" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:199 +msgid "Location Types" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:211 +#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:48 +#: src/tables/machine/MachineTypeTable.tsx:308 msgid "Machines" msgstr "" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:192 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:221 msgid "Quick Actions" msgstr "Hurtighandlinger" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:197 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:226 msgid "Add a new user" msgstr "Legg til en ny bruker" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:222 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:252 msgid "Advanced Options" msgstr "Avanserte Innstillinger" #: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:43 -msgid "Machine types" -msgstr "" +#~ msgid "Machine types" +#~ msgstr "Machine types" #: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:53 -msgid "Machine Error Stack" +#~ msgid "Machine Error Stack" +#~ msgstr "Machine Error Stack" + +#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:56 +msgid "Machine Types" msgstr "" #: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:62 -msgid "There are no machine registry errors." +#~ msgid "There are no machine registry errors." +#~ msgstr "There are no machine registry errors." + +#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:64 +msgid "Machine Errors" msgstr "" -#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:28 -#: src/tables/settings/UserTable.tsx:119 +#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:77 +msgid "Registry Registry Errors" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:80 +msgid "There are machine registry errors" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:86 +msgid "Machine Registry Errors" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:89 +msgid "There are no machine registry errors" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:31 +#: src/tables/settings/UserTable.tsx:118 msgid "Info" msgstr "Info" -#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:32 -msgid "External plugins are not enabled for this InvenTree installation." -msgstr "Eksterne utvidelser er ikke aktivert for denne InvenTree-installasjonen." - #: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:33 #~ msgid "Plugin Error Stack" #~ msgstr "Plugin Error Stack" +#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:35 +msgid "External plugins are not enabled for this InvenTree installation." +msgstr "Eksterne utvidelser er ikke aktivert for denne InvenTree-installasjonen." + #: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:45 #~ msgid "Warning" #~ msgstr "Warning" @@ -3764,34 +4558,46 @@ msgstr "Eksterne utvidelser er ikke aktivert for denne InvenTree-installasjonen. #~ msgid "Changing the settings below require you to immediately restart the server. Do not change this while under active usage." #~ msgstr "Changing the settings below require you to immediately restart the server. Do not change this while under active usage." -#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:50 +#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:73 msgid "Plugin Errors" msgstr "" -#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:59 -msgid "Plugin Settings" -msgstr "Innstillinger for Utvidelser" - -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:53 -msgid "Background Worker Not Running" +#: src/pages/Index/Settings/AdminCenter/ReportTemplatePanel.tsx:17 +msgid "Page Size" msgstr "" -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:54 +#: src/pages/Index/Settings/AdminCenter/ReportTemplatePanel.tsx:20 +msgid "Landscape" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/ReportTemplatePanel.tsx:26 +msgid "Attach to Model" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/StocktakePanel.tsx:25 +msgid "Stocktake Reports" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:30 msgid "The background task manager service is not running. Contact your system administrator." msgstr "" -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:60 -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:76 +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:35 +#~ msgid "Background Worker Not Running" +#~ msgstr "Background Worker Not Running" + +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:36 +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:45 msgid "Pending Tasks" msgstr "Ventende oppgaver" -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:64 -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:84 +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:37 +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:53 msgid "Scheduled Tasks" msgstr "Planlagte oppgaver" -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:68 -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:92 +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:38 +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:61 msgid "Failed Tasks" msgstr "Mislykkede oppgaver" @@ -3811,11 +4617,6 @@ msgstr "Mislykkede oppgaver" #~ msgid "Reports" #~ msgstr "Reports" -#: src/pages/Index/Settings/AdminCenter/TemplateManagementPanel.tsx:89 -#: src/pages/build/BuildDetail.tsx:373 -#~ msgid "Report" -#~ msgstr "Report" - #: src/pages/Index/Settings/AdminCenter/TemplateManagementPanel.tsx:99 #~ msgid "Purchase order" #~ msgstr "Purchase order" @@ -3836,23 +4637,35 @@ msgstr "Mislykkede oppgaver" #~ msgid "Stock location" #~ msgstr "Stock location" +#: src/pages/Index/Settings/AdminCenter/UnitManagmentPanel.tsx:21 +msgid "Alias" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/UnitManagmentPanel.tsx:22 +msgid "Dimensionless" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/UnitManagmentPanel.tsx:66 +msgid "All units" +msgstr "" + #: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:32 msgid "Select settings relevant for user lifecycle. More available in" msgstr "Velg innstillinger som er relevante for brukerens livssyklus. Mer tilgjengelig i" #: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:37 -msgid "System settings" -msgstr "Systeminnstillinger" +#~ msgid "System settings" +#~ msgstr "System settings" -#: src/pages/Index/Settings/SystemSettings.tsx:67 +#: src/pages/Index/Settings/SystemSettings.tsx:66 msgid "Login" msgstr "Innlogging" -#: src/pages/Index/Settings/SystemSettings.tsx:93 +#: src/pages/Index/Settings/SystemSettings.tsx:92 msgid "Barcodes" msgstr "Strekkoder" -#: src/pages/Index/Settings/SystemSettings.tsx:115 +#: src/pages/Index/Settings/SystemSettings.tsx:116 msgid "Pricing" msgstr "Prising" @@ -3864,64 +4677,46 @@ msgstr "Prising" #~ msgid "Exchange Rates" #~ msgstr "Exchange Rates" -#: src/pages/Index/Settings/SystemSettings.tsx:150 +#: src/pages/Index/Settings/SystemSettings.tsx:151 msgid "Labels" msgstr "Etiketter" -#: src/pages/Index/Settings/SystemSettings.tsx:156 -#: src/pages/Index/Settings/UserSettings.tsx:132 +#: src/pages/Index/Settings/SystemSettings.tsx:157 +#: src/pages/Index/Settings/UserSettings.tsx:133 msgid "Reporting" msgstr "Rapportering" #: src/pages/Index/Settings/SystemSettings.tsx:231 -#: src/pages/part/PartDetail.tsx:682 -msgid "Stocktake" -msgstr "Lagertelling" - -#: src/pages/Index/Settings/SystemSettings.tsx:237 -#: src/pages/build/BuildDetail.tsx:554 -#: src/pages/build/BuildIndex.tsx:22 -#: src/pages/part/PartDetail.tsx:616 -#: src/pages/sales/SalesOrderDetail.tsx:333 +#: src/pages/build/BuildIndex.tsx:27 +#: src/pages/part/PartDetail.tsx:636 +#: src/pages/sales/SalesOrderDetail.tsx:355 msgid "Build Orders" msgstr "Produksjonsordrer" -#: src/pages/Index/Settings/SystemSettings.tsx:318 -msgid "Switch to User Setting" -msgstr "Bytt til brukerinnstilling" +#: src/pages/Index/Settings/SystemSettings.tsx:317 +#~ msgid "Switch to User Setting" +#~ msgstr "Switch to User Setting" -#: src/pages/Index/Settings/UserSettings.tsx:34 +#: src/pages/Index/Settings/UserSettings.tsx:35 msgid "Account" msgstr "Konto" -#: src/pages/Index/Settings/UserSettings.tsx:40 +#: src/pages/Index/Settings/UserSettings.tsx:41 msgid "Security" msgstr "Sikkerhet" -#: src/pages/Index/Settings/UserSettings.tsx:78 +#: src/pages/Index/Settings/UserSettings.tsx:79 msgid "Display Options" msgstr "Visningsvalg" -#: src/pages/Index/Settings/UserSettings.tsx:150 -msgid "Account Settings" -msgstr "Kontoinnstillinger" - -#: src/pages/Index/Settings/UserSettings.tsx:158 -msgid "Switch to System Setting" -msgstr "Bytt til systeminnstilling" - -#: src/pages/Index/UserSettings.tsx:103 -#~ msgid "User Settings" -#~ msgstr "User Settings" +#: src/pages/Index/Settings/UserSettings.tsx:159 +#~ msgid "Switch to System Setting" +#~ msgstr "Switch to System Setting" #: src/pages/Logged-In.tsx:24 #~ msgid "Found an exsisting login - using it to log you in." #~ msgstr "Found an exsisting login - using it to log you in." -#: src/pages/NotFound.tsx:17 -#~ msgid "Not Found" -#~ msgstr "Not Found" - #: src/pages/NotFound.tsx:20 #~ msgid "Sorry, this page is not known or was moved." #~ msgstr "Sorry, this page is not known or was moved." @@ -3942,115 +4737,93 @@ msgstr "Marker som ulest" #~ msgid "Build Status" #~ msgstr "Build Status" -#: src/pages/build/BuildDetail.tsx:102 -#: src/pages/part/PartDetail.tsx:150 +#: src/pages/build/BuildDetail.tsx:97 +#: src/pages/company/ManufacturerPartDetail.tsx:81 +#: src/pages/company/SupplierPartDetail.tsx:91 +#: src/pages/part/PartDetail.tsx:171 +#: src/pages/stock/StockDetail.tsx:122 #: src/tables/bom/BomTable.tsx:118 #: src/tables/bom/UsedInTable.tsx:39 -#: src/tables/build/BuildLineTable.tsx:173 -#: src/tables/build/BuildOrderTable.tsx:55 -#: src/tables/sales/SalesOrderLineItemTable.tsx:62 -#: src/tables/stock/StockItemTable.tsx:53 +#: src/tables/build/BuildAllocatedStockTable.tsx:104 +#: src/tables/build/BuildLineTable.tsx:324 +#: src/tables/build/BuildOrderTable.tsx:64 +#: src/tables/sales/SalesOrderLineItemTable.tsx:70 +#: src/tables/stock/StockItemTable.tsx:54 msgid "IPN" msgstr "IPN" -#: src/pages/build/BuildDetail.tsx:115 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:121 -#: src/pages/sales/ReturnOrderDetail.tsx:95 -#: src/pages/sales/SalesOrderDetail.tsx:101 -#: src/tables/ColumnRenderers.tsx:121 -#: src/tables/build/BuildAllocatedStockTable.tsx:90 -#: src/tables/build/BuildLineTable.tsx:184 +#: src/pages/build/BuildDetail.tsx:110 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:115 +#: src/pages/sales/ReturnOrderDetail.tsx:86 +#: src/pages/sales/SalesOrderDetail.tsx:95 +#: src/tables/ColumnRenderers.tsx:132 +#: src/tables/build/BuildAllocatedStockTable.tsx:111 +#: src/tables/build/BuildLineTable.tsx:335 msgid "Reference" msgstr "" -#: src/pages/build/BuildDetail.tsx:121 -#: src/pages/company/CompanyDetail.tsx:90 -#: src/pages/company/ManufacturerPartDetail.tsx:83 -#: src/pages/company/SupplierPartDetail.tsx:96 -#: src/pages/part/CategoryDetail.tsx:101 -#: src/pages/part/PartDetail.tsx:157 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:142 -#: src/pages/sales/ReturnOrderDetail.tsx:115 -#: src/pages/sales/SalesOrderDetail.tsx:121 -#: src/pages/stock/LocationDetail.tsx:109 -#: src/tables/ColumnRenderers.tsx:81 -#: src/tables/bom/UsedInTable.tsx:44 -#: src/tables/build/BuildAllocatedStockTable.tsx:70 -#: src/tables/build/BuildLineTable.tsx:178 -#: src/tables/machine/MachineTypeTable.tsx:69 -#: src/tables/machine/MachineTypeTable.tsx:112 -#: src/tables/machine/MachineTypeTable.tsx:219 -#: src/tables/machine/MachineTypeTable.tsx:323 -#: src/tables/part/RelatedPartTable.tsx:64 -#: src/tables/plugin/PluginListTable.tsx:129 -#: src/tables/plugin/PluginListTable.tsx:276 -#: src/tables/sales/SalesOrderAllocationTable.tsx:56 -#: src/tables/sales/SalesOrderLineItemTable.tsx:67 -#: src/tables/stock/LocationTypesTable.tsx:74 -msgid "Description" -msgstr "Beskrivelse" - -#: src/pages/build/BuildDetail.tsx:129 +#: src/pages/build/BuildDetail.tsx:124 msgid "Parent Build" msgstr "" -#: src/pages/build/BuildDetail.tsx:140 +#: src/pages/build/BuildDetail.tsx:135 msgid "Build Quantity" msgstr "" -#: src/pages/build/BuildDetail.tsx:148 -#: src/pages/build/BuildDetail.tsx:274 +#: src/pages/build/BuildDetail.tsx:143 +#: src/pages/build/BuildDetail.tsx:277 msgid "Completed Outputs" msgstr "Fullførte artikler" -#: src/pages/build/BuildDetail.tsx:165 -#: src/tables/build/BuildOrderTable.tsx:151 +#: src/pages/build/BuildDetail.tsx:160 +#: src/tables/build/BuildOrderTable.tsx:142 msgid "Issued By" msgstr "" -#: src/pages/build/BuildDetail.tsx:172 -#: src/pages/part/PartDetail.tsx:365 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:220 -#: src/pages/sales/ReturnOrderDetail.tsx:199 -#: src/pages/sales/SalesOrderDetail.tsx:208 -#: src/tables/build/BuildOrderTable.tsx:157 -#: src/tables/purchasing/PurchaseOrderTable.tsx:75 -#: src/tables/sales/ReturnOrderTable.tsx:66 -#: src/tables/sales/SalesOrderTable.tsx:73 +#: src/pages/build/BuildDetail.tsx:167 +#: src/pages/part/PartDetail.tsx:406 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:244 +#: src/pages/sales/ReturnOrderDetail.tsx:216 +#: src/pages/sales/SalesOrderDetail.tsx:226 +#: src/tables/build/BuildOrderTable.tsx:148 +#: src/tables/purchasing/PurchaseOrderTable.tsx:76 +#: src/tables/sales/ReturnOrderTable.tsx:74 +#: src/tables/sales/SalesOrderTable.tsx:74 msgid "Responsible" msgstr "Ansvarlig" -#: src/pages/build/BuildDetail.tsx:179 -#: src/tables/settings/PendingTasksTable.tsx:32 +#: src/pages/build/BuildDetail.tsx:174 +#: src/tables/settings/PendingTasksTable.tsx:36 msgid "Created" msgstr "Opprettet" +#: src/pages/build/BuildDetail.tsx:181 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:229 +#: src/pages/sales/ReturnOrderDetail.tsx:201 +#: src/pages/sales/SalesOrderDetail.tsx:212 +#: src/tables/ColumnRenderers.tsx:226 +#: src/tables/part/PartPurchaseOrdersTable.tsx:100 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:135 +#: src/tables/sales/SalesOrderLineItemTable.tsx:107 +msgid "Target Date" +msgstr "Måldato" + #: src/pages/build/BuildDetail.tsx:185 #: src/pages/part/PartDetail.tsx:269 #: src/pages/stock/StockDetail.tsx:150 #~ msgid "View part barcode" #~ msgstr "View part barcode" -#: src/pages/build/BuildDetail.tsx:186 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:213 -#: src/pages/sales/ReturnOrderDetail.tsx:192 -#: src/pages/sales/SalesOrderDetail.tsx:201 -#: src/tables/ColumnRenderers.tsx:212 -#: src/tables/part/PartPurchaseOrdersTable.tsx:99 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:110 -#: src/tables/sales/SalesOrderLineItemTable.tsx:99 -msgid "Target Date" -msgstr "Måldato" +#: src/pages/build/BuildDetail.tsx:188 +#: src/tables/sales/SalesOrderLineItemTable.tsx:281 +msgid "Completed" +msgstr "" #: src/pages/build/BuildDetail.tsx:190 #: src/pages/part/PartDetail.tsx:274 #~ msgid "Link custom barcode to part" #~ msgstr "Link custom barcode to part" -#: src/pages/build/BuildDetail.tsx:193 -msgid "Completed" -msgstr "" - #: src/pages/build/BuildDetail.tsx:196 #: src/pages/part/PartDetail.tsx:280 #~ msgid "Unlink custom barcode from part" @@ -4060,15 +4833,11 @@ msgstr "" #~ msgid "Build Order updated" #~ msgstr "Build Order updated" -#: src/pages/build/BuildDetail.tsx:205 -msgid "Source Location" -msgstr "" - -#: src/pages/build/BuildDetail.tsx:206 +#: src/pages/build/BuildDetail.tsx:209 msgid "Any location" msgstr "" -#: src/pages/build/BuildDetail.tsx:213 +#: src/pages/build/BuildDetail.tsx:216 msgid "Destination Location" msgstr "" @@ -4084,206 +4853,182 @@ msgstr "" #~ msgid "Delete build order" #~ msgstr "Delete build order" -#: src/pages/build/BuildDetail.tsx:251 +#: src/pages/build/BuildDetail.tsx:254 msgid "Build Details" msgstr "Produksjonsdetaljer" -#: src/pages/build/BuildDetail.tsx:257 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:258 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:267 -#: src/pages/sales/ReturnOrderDetail.tsx:130 -#: src/pages/sales/ReturnOrderDetail.tsx:237 -#: src/pages/sales/ReturnOrderDetail.tsx:246 -#: src/pages/sales/SalesOrderDetail.tsx:272 -#: src/pages/sales/SalesOrderDetail.tsx:281 +#: src/pages/build/BuildDetail.tsx:260 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:282 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:291 +#: src/pages/sales/ReturnOrderDetail.tsx:122 +#: src/pages/sales/ReturnOrderDetail.tsx:254 +#: src/pages/sales/ReturnOrderDetail.tsx:263 +#: src/pages/sales/SalesOrderDetail.tsx:294 +#: src/pages/sales/SalesOrderDetail.tsx:303 msgid "Line Items" msgstr "Ordrelinjer" -#: src/pages/build/BuildDetail.tsx:267 +#: src/pages/build/BuildDetail.tsx:266 msgid "Incomplete Outputs" msgstr "Ufullstendige artikler" -#: src/pages/build/BuildDetail.tsx:289 -#: src/pages/sales/SalesOrderDetail.tsx:319 +#: src/pages/build/BuildDetail.tsx:292 +#: src/pages/sales/SalesOrderDetail.tsx:341 msgid "Allocated Stock" msgstr "" -#: src/pages/build/BuildDetail.tsx:299 +#: src/pages/build/BuildDetail.tsx:302 msgid "Consumed Stock" msgstr "Brukt lagerbeholdning" -#: src/pages/build/BuildDetail.tsx:313 +#: src/pages/build/BuildDetail.tsx:316 msgid "Child Build Orders" msgstr "Underordnede Produksjonsordrer" #: src/pages/build/BuildDetail.tsx:326 -#: src/tables/build/BuildOutputTable.tsx:384 -#: src/tables/stock/StockItemTestResultTable.tsx:150 +#: src/tables/build/BuildOutputTable.tsx:532 +#: src/tables/stock/StockItemTestResultTable.tsx:156 msgid "Test Results" msgstr "" #: src/pages/build/BuildDetail.tsx:337 -#: src/pages/part/PartDetail.tsx:699 +#: src/pages/part/PartDetail.tsx:740 msgid "Test Statistics" msgstr "" -#: src/pages/build/BuildDetail.tsx:351 -#: src/pages/company/CompanyDetail.tsx:259 -#: src/pages/company/ManufacturerPartDetail.tsx:179 -#: src/pages/part/PartDetail.tsx:721 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:309 -#: src/pages/sales/ReturnOrderDetail.tsx:274 -#: src/pages/sales/SalesOrderDetail.tsx:343 -#: src/pages/stock/StockDetail.tsx:385 -msgid "Attachments" -msgstr "Vedlegg" - -#: src/pages/build/BuildDetail.tsx:359 -#: src/pages/company/CompanyDetail.tsx:270 -#: src/pages/company/ManufacturerPartDetail.tsx:190 -#: src/pages/company/SupplierPartDetail.tsx:257 -#: src/pages/part/PartDetail.tsx:729 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:320 -#: src/pages/sales/ReturnOrderDetail.tsx:285 -#: src/pages/sales/SalesOrderDetail.tsx:354 -#: src/pages/stock/StockDetail.tsx:396 -#: src/tables/build/BuildOrderTestTable.tsx:142 -#: src/tables/stock/StockTrackingTable.tsx:189 -msgid "Notes" -msgstr "Notater" +#: src/pages/build/BuildDetail.tsx:365 +msgid "Edit Build Order" +msgstr "Rediger produksjonsordre" #: src/pages/build/BuildDetail.tsx:368 #~ msgid "Reporting Actions" #~ msgstr "Reporting Actions" +#: src/pages/build/BuildDetail.tsx:372 +#: src/tables/build/BuildOrderTable.tsx:173 +#: src/tables/build/BuildOrderTable.tsx:188 +msgid "Add Build Order" +msgstr "Legg til produksjonsordre" + #: src/pages/build/BuildDetail.tsx:374 #~ msgid "Print build report" #~ msgstr "Print build report" -#: src/pages/build/BuildDetail.tsx:377 -msgid "Edit Build Order" -msgstr "Rediger produksjonsordre" - -#: src/pages/build/BuildDetail.tsx:384 -#: src/tables/build/BuildOrderTable.tsx:172 -#: src/tables/build/BuildOrderTable.tsx:187 -msgid "Add Build Order" -msgstr "Legg til produksjonsordre" - -#: src/pages/build/BuildDetail.tsx:398 +#: src/pages/build/BuildDetail.tsx:386 msgid "Cancel Build Order" msgstr "" -#: src/pages/build/BuildDetail.tsx:400 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:348 -#: src/pages/sales/SalesOrderDetail.tsx:380 +#: src/pages/build/BuildDetail.tsx:388 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:357 +#: src/pages/sales/ReturnOrderDetail.tsx:354 +#: src/pages/sales/SalesOrderDetail.tsx:387 msgid "Order cancelled" msgstr "" -#: src/pages/build/BuildDetail.tsx:401 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:347 -#: src/pages/sales/ReturnOrderDetail.tsx:346 -#: src/pages/sales/SalesOrderDetail.tsx:379 +#: src/pages/build/BuildDetail.tsx:389 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:356 +#: src/pages/sales/ReturnOrderDetail.tsx:353 +#: src/pages/sales/SalesOrderDetail.tsx:386 msgid "Cancel this order" msgstr "" -#: src/pages/build/BuildDetail.tsx:410 +#: src/pages/build/BuildDetail.tsx:398 msgid "Hold Build Order" msgstr "" -#: src/pages/build/BuildDetail.tsx:412 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:355 -#: src/pages/sales/ReturnOrderDetail.tsx:354 -#: src/pages/sales/SalesOrderDetail.tsx:387 +#: src/pages/build/BuildDetail.tsx:400 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:364 +#: src/pages/sales/ReturnOrderDetail.tsx:361 +#: src/pages/sales/SalesOrderDetail.tsx:394 msgid "Place this order on hold" msgstr "" -#: src/pages/build/BuildDetail.tsx:413 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:356 -#: src/pages/sales/ReturnOrderDetail.tsx:355 -#: src/pages/sales/SalesOrderDetail.tsx:388 +#: src/pages/build/BuildDetail.tsx:401 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:365 +#: src/pages/sales/ReturnOrderDetail.tsx:362 +#: src/pages/sales/SalesOrderDetail.tsx:395 msgid "Order placed on hold" msgstr "" -#: src/pages/build/BuildDetail.tsx:418 +#: src/pages/build/BuildDetail.tsx:406 msgid "Issue Build Order" msgstr "" -#: src/pages/build/BuildDetail.tsx:420 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:339 -#: src/pages/sales/ReturnOrderDetail.tsx:338 -#: src/pages/sales/SalesOrderDetail.tsx:371 +#: src/pages/build/BuildDetail.tsx:408 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:348 +#: src/pages/sales/ReturnOrderDetail.tsx:345 +#: src/pages/sales/SalesOrderDetail.tsx:378 msgid "Issue this order" msgstr "" -#: src/pages/build/BuildDetail.tsx:421 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:340 -#: src/pages/sales/ReturnOrderDetail.tsx:339 -#: src/pages/sales/SalesOrderDetail.tsx:372 +#: src/pages/build/BuildDetail.tsx:409 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:349 +#: src/pages/sales/ReturnOrderDetail.tsx:346 +#: src/pages/sales/SalesOrderDetail.tsx:379 msgid "Order issued" msgstr "" -#: src/pages/build/BuildDetail.tsx:426 +#: src/pages/build/BuildDetail.tsx:414 msgid "Complete Build Order" msgstr "" -#: src/pages/build/BuildDetail.tsx:428 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:368 -#: src/pages/sales/ReturnOrderDetail.tsx:362 -#: src/pages/sales/SalesOrderDetail.tsx:395 +#: src/pages/build/BuildDetail.tsx:416 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:377 +#: src/pages/sales/ReturnOrderDetail.tsx:369 +#: src/pages/sales/SalesOrderDetail.tsx:402 msgid "Mark this order as complete" msgstr "" -#: src/pages/build/BuildDetail.tsx:429 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:362 -#: src/pages/sales/ReturnOrderDetail.tsx:363 -#: src/pages/sales/SalesOrderDetail.tsx:396 +#: src/pages/build/BuildDetail.tsx:417 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:371 +#: src/pages/sales/ReturnOrderDetail.tsx:370 +#: src/pages/sales/SalesOrderDetail.tsx:403 msgid "Order completed" msgstr "" -#: src/pages/build/BuildDetail.tsx:460 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:391 -#: src/pages/sales/ReturnOrderDetail.tsx:392 -#: src/pages/sales/SalesOrderDetail.tsx:425 +#: src/pages/build/BuildDetail.tsx:448 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:400 +#: src/pages/sales/ReturnOrderDetail.tsx:399 +#: src/pages/sales/SalesOrderDetail.tsx:432 msgid "Issue Order" msgstr "" -#: src/pages/build/BuildDetail.tsx:467 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:398 -#: src/pages/sales/ReturnOrderDetail.tsx:399 -#: src/pages/sales/SalesOrderDetail.tsx:439 +#: src/pages/build/BuildDetail.tsx:455 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:407 +#: src/pages/sales/ReturnOrderDetail.tsx:406 +#: src/pages/sales/SalesOrderDetail.tsx:446 msgid "Complete Order" msgstr "" -#: src/pages/build/BuildDetail.tsx:496 +#: src/pages/build/BuildDetail.tsx:473 msgid "Build Order Actions" msgstr "Produksjonsordre-handlinger" -#: src/pages/build/BuildDetail.tsx:502 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:432 -#: src/pages/sales/ReturnOrderDetail.tsx:433 -#: src/pages/sales/SalesOrderDetail.tsx:474 +#: src/pages/build/BuildDetail.tsx:478 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:429 +#: src/pages/sales/ReturnOrderDetail.tsx:428 +#: src/pages/sales/SalesOrderDetail.tsx:469 msgid "Edit order" msgstr "" -#: src/pages/build/BuildDetail.tsx:506 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:440 -#: src/pages/sales/ReturnOrderDetail.tsx:439 -#: src/pages/sales/SalesOrderDetail.tsx:479 +#: src/pages/build/BuildDetail.tsx:482 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:437 +#: src/pages/sales/ReturnOrderDetail.tsx:434 +#: src/pages/sales/SalesOrderDetail.tsx:474 msgid "Duplicate order" msgstr "" -#: src/pages/build/BuildDetail.tsx:510 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:443 -#: src/pages/sales/ReturnOrderDetail.tsx:444 -#: src/pages/sales/SalesOrderDetail.tsx:482 +#: src/pages/build/BuildDetail.tsx:486 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:440 +#: src/pages/sales/ReturnOrderDetail.tsx:439 +#: src/pages/sales/SalesOrderDetail.tsx:477 msgid "Hold order" msgstr "" -#: src/pages/build/BuildDetail.tsx:515 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:448 -#: src/pages/sales/ReturnOrderDetail.tsx:449 -#: src/pages/sales/SalesOrderDetail.tsx:487 +#: src/pages/build/BuildDetail.tsx:491 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:445 +#: src/pages/sales/ReturnOrderDetail.tsx:444 +#: src/pages/sales/SalesOrderDetail.tsx:482 msgid "Cancel order" msgstr "" @@ -4295,57 +5040,61 @@ msgstr "" #~ msgid "New Build Order" #~ msgstr "New Build Order" -#: src/pages/company/CompanyDetail.tsx:104 +#: src/pages/company/CompanyDetail.tsx:95 +msgid "Website" +msgstr "Nettside" + +#: src/pages/company/CompanyDetail.tsx:103 msgid "Phone Number" msgstr "" -#: src/pages/company/CompanyDetail.tsx:111 +#: src/pages/company/CompanyDetail.tsx:110 msgid "Email Address" msgstr "" -#: src/pages/company/CompanyDetail.tsx:121 +#: src/pages/company/CompanyDetail.tsx:120 msgid "Default Currency" msgstr "" -#: src/pages/company/CompanyDetail.tsx:126 +#: src/pages/company/CompanyDetail.tsx:125 #: src/pages/company/SupplierDetail.tsx:8 -#: src/pages/company/SupplierPartDetail.tsx:120 -#: src/pages/company/SupplierPartDetail.tsx:206 -#: src/pages/company/SupplierPartDetail.tsx:351 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:136 -#: src/tables/company/CompanyTable.tsx:100 +#: src/pages/company/SupplierPartDetail.tsx:125 +#: src/pages/company/SupplierPartDetail.tsx:218 +#: src/pages/company/SupplierPartDetail.tsx:340 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:130 +#: src/tables/company/CompanyTable.tsx:101 #: src/tables/part/PartPurchaseOrdersTable.tsx:42 -#: src/tables/purchasing/PurchaseOrderTable.tsx:88 +#: src/tables/purchasing/PurchaseOrderTable.tsx:89 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:36 msgid "Supplier" msgstr "Leverandør" -#: src/pages/company/CompanyDetail.tsx:132 +#: src/pages/company/CompanyDetail.tsx:131 #: src/pages/company/ManufacturerDetail.tsx:8 -#: src/pages/company/ManufacturerPartDetail.tsx:101 -#: src/pages/company/ManufacturerPartDetail.tsx:267 -#: src/pages/company/SupplierPartDetail.tsx:135 -#: src/tables/company/CompanyTable.tsx:105 +#: src/pages/company/ManufacturerPartDetail.tsx:100 +#: src/pages/company/ManufacturerPartDetail.tsx:262 +#: src/pages/company/SupplierPartDetail.tsx:147 +#: src/tables/company/CompanyTable.tsx:106 msgid "Manufacturer" msgstr "Produsent" -#: src/pages/company/CompanyDetail.tsx:138 +#: src/pages/company/CompanyDetail.tsx:137 #: src/pages/company/CustomerDetail.tsx:8 -#: src/pages/part/pricing/SaleHistoryPanel.tsx:29 -#: src/pages/sales/ReturnOrderDetail.tsx:109 -#: src/pages/sales/SalesOrderDetail.tsx:115 -#: src/pages/stock/StockDetail.tsx:230 -#: src/tables/company/CompanyTable.tsx:110 -#: src/tables/sales/ReturnOrderTable.tsx:78 -#: src/tables/sales/SalesOrderTable.tsx:108 -#: src/tables/stock/StockTrackingTable.tsx:140 +#: src/pages/part/pricing/SaleHistoryPanel.tsx:31 +#: src/pages/sales/ReturnOrderDetail.tsx:101 +#: src/pages/sales/SalesOrderDetail.tsx:110 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:100 +#: src/pages/stock/StockDetail.tsx:271 +#: src/tables/company/CompanyTable.tsx:111 +#: src/tables/sales/ReturnOrderTable.tsx:97 +#: src/tables/sales/SalesOrderTable.tsx:121 +#: src/tables/stock/StockTrackingTable.tsx:144 msgid "Customer" msgstr "Kunde" #: src/pages/company/CompanyDetail.tsx:172 -#: src/tables/stock/StockTrackingTable.tsx:183 -msgid "Details" -msgstr "Detaljer" +msgid "Company Details" +msgstr "" #: src/pages/company/CompanyDetail.tsx:175 #~ msgid "Edit company" @@ -4363,140 +5112,150 @@ msgstr "Leverte Deler" #~ msgid "Delete company" #~ msgstr "Delete company" -#: src/pages/company/CompanyDetail.tsx:232 +#: src/pages/company/CompanyDetail.tsx:234 msgid "Assigned Stock" msgstr "Tildelt lagerbeholdning" -#: src/pages/company/CompanyDetail.tsx:290 -#: src/tables/company/CompanyTable.tsx:86 +#: src/pages/company/CompanyDetail.tsx:273 +#: src/tables/company/CompanyTable.tsx:87 msgid "Edit Company" msgstr "Rediger Bedrift" -#: src/pages/company/CompanyDetail.tsx:298 +#: src/pages/company/CompanyDetail.tsx:281 msgid "Delete Company" msgstr "" -#: src/pages/company/CompanyDetail.tsx:306 +#: src/pages/company/CompanyDetail.tsx:289 msgid "Company Actions" msgstr "Bedriftshandlinger" -#: src/pages/company/ManufacturerPartDetail.tsx:76 -#: src/pages/company/SupplierPartDetail.tsx:89 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:128 +#: src/pages/company/ManufacturerPartDetail.tsx:74 +#: src/pages/company/SupplierPartDetail.tsx:84 msgid "Internal Part" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:91 -#: src/pages/company/SupplierPartDetail.tsx:103 -msgid "External Link" -msgstr "" - -#: src/pages/company/ManufacturerPartDetail.tsx:109 -#: src/pages/company/SupplierPartDetail.tsx:144 -#: src/tables/purchasing/ManufacturerPartTable.tsx:56 +#: src/pages/company/ManufacturerPartDetail.tsx:108 +#: src/pages/company/SupplierPartDetail.tsx:156 +#: src/tables/purchasing/ManufacturerPartTable.tsx:58 msgid "Manufacturer Part Number" msgstr "Produsentens delenummer" -#: src/pages/company/ManufacturerPartDetail.tsx:138 +#: src/pages/company/ManufacturerPartDetail.tsx:125 +#: src/pages/company/SupplierPartDetail.tsx:108 +msgid "External Link" +msgstr "" + +#: src/pages/company/ManufacturerPartDetail.tsx:146 +#: src/pages/company/SupplierPartDetail.tsx:215 +#: src/pages/part/PartDetail.tsx:576 +msgid "Part Details" +msgstr "" + +#: src/pages/company/ManufacturerPartDetail.tsx:149 msgid "Manufacturer Details" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:147 +#: src/pages/company/ManufacturerPartDetail.tsx:158 msgid "Manufacturer Part Details" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:153 -#: src/pages/part/PartDetail.tsx:532 +#: src/pages/company/ManufacturerPartDetail.tsx:164 +#: src/pages/part/PartDetail.tsx:582 msgid "Parameters" msgstr "Parametere" -#: src/pages/company/ManufacturerPartDetail.tsx:165 -#: src/pages/part/PartDetail.tsx:649 +#: src/pages/company/ManufacturerPartDetail.tsx:176 +#: src/pages/part/PartDetail.tsx:669 #: src/pages/purchasing/PurchasingIndex.tsx:31 msgid "Suppliers" msgstr "Leverandører" -#: src/pages/company/ManufacturerPartDetail.tsx:208 -#: src/tables/purchasing/ManufacturerPartTable.tsx:84 +#: src/pages/company/ManufacturerPartDetail.tsx:204 +#: src/tables/purchasing/ManufacturerPartTable.tsx:86 msgid "Edit Manufacturer Part" msgstr "Rediger produsentdel" -#: src/pages/company/ManufacturerPartDetail.tsx:215 -#: src/tables/purchasing/ManufacturerPartTable.tsx:72 -#: src/tables/purchasing/ManufacturerPartTable.tsx:103 +#: src/pages/company/ManufacturerPartDetail.tsx:211 +#: src/tables/purchasing/ManufacturerPartTable.tsx:74 +#: src/tables/purchasing/ManufacturerPartTable.tsx:106 msgid "Add Manufacturer Part" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:227 -#: src/tables/purchasing/ManufacturerPartTable.tsx:92 +#: src/pages/company/ManufacturerPartDetail.tsx:223 +#: src/tables/purchasing/ManufacturerPartTable.tsx:94 msgid "Delete Manufacturer Part" msgstr "Slett produsentdel" -#: src/pages/company/ManufacturerPartDetail.tsx:240 +#: src/pages/company/ManufacturerPartDetail.tsx:236 msgid "Manufacturer Part Actions" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:281 +#: src/pages/company/ManufacturerPartDetail.tsx:276 msgid "ManufacturerPart" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:163 -#: src/tables/part/PartPurchaseOrdersTable.tsx:71 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:156 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:197 -#: src/tables/purchasing/SupplierPartTable.tsx:131 +#: src/pages/company/SupplierPartDetail.tsx:99 +msgid "Part Description" +msgstr "Delbeskrivelse" + +#: src/pages/company/SupplierPartDetail.tsx:175 +#: src/tables/part/PartPurchaseOrdersTable.tsx:72 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:162 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:203 +#: src/tables/purchasing/SupplierPartTable.tsx:133 msgid "Pack Quantity" msgstr "Pakkeantall" -#: src/pages/company/SupplierPartDetail.tsx:174 +#: src/pages/company/SupplierPartDetail.tsx:186 msgid "Supplier Availability" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:181 +#: src/pages/company/SupplierPartDetail.tsx:193 msgid "Availability Updated" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:208 +#: src/pages/company/SupplierPartDetail.tsx:220 msgid "Availability" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:217 +#: src/pages/company/SupplierPartDetail.tsx:229 msgid "Supplier Part Details" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:223 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:296 +#: src/pages/company/SupplierPartDetail.tsx:235 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:320 msgid "Received Stock" msgstr "Mottatt lagerbeholdning" -#: src/pages/company/SupplierPartDetail.tsx:247 -#: src/pages/part/PartPricingPanel.tsx:111 -#: src/pages/part/pricing/PricingOverviewPanel.tsx:121 +#: src/pages/company/SupplierPartDetail.tsx:259 +#: src/pages/part/PartPricingPanel.tsx:116 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:195 msgid "Supplier Pricing" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:294 +#: src/pages/company/SupplierPartDetail.tsx:284 msgid "Supplier Part Actions" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:319 -#: src/tables/purchasing/SupplierPartTable.tsx:210 +#: src/pages/company/SupplierPartDetail.tsx:308 +#: src/tables/purchasing/SupplierPartTable.tsx:213 msgid "Edit Supplier Part" msgstr "Rediger Leverandørdel" -#: src/pages/company/SupplierPartDetail.tsx:327 -#: src/tables/purchasing/SupplierPartTable.tsx:218 +#: src/pages/company/SupplierPartDetail.tsx:316 +#: src/tables/purchasing/SupplierPartTable.tsx:221 msgid "Delete Supplier Part" msgstr "Slett Leverandørdel" -#: src/pages/company/SupplierPartDetail.tsx:335 -#: src/tables/purchasing/SupplierPartTable.tsx:163 +#: src/pages/company/SupplierPartDetail.tsx:324 +#: src/tables/purchasing/SupplierPartTable.tsx:165 msgid "Add Supplier Part" msgstr "Legg til leverandørdel" #: src/pages/part/CategoryDetail.tsx:93 -#: src/pages/stock/LocationDetail.tsx:101 -#: src/tables/settings/ErrorTable.tsx:36 +#: src/pages/stock/LocationDetail.tsx:95 +#: src/tables/settings/ErrorTable.tsx:63 +#: src/tables/settings/ErrorTable.tsx:108 msgid "Path" msgstr "Sti" @@ -4504,357 +5263,357 @@ msgstr "Sti" msgid "Parent Category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:126 +#: src/pages/part/CategoryDetail.tsx:132 msgid "Subcategories" msgstr "" -#: src/pages/part/CategoryDetail.tsx:133 -#: src/pages/stock/LocationDetail.tsx:141 -#: src/tables/part/PartCategoryTable.tsx:73 +#: src/pages/part/CategoryDetail.tsx:139 +#: src/pages/stock/LocationDetail.tsx:135 +#: src/tables/part/PartCategoryTable.tsx:85 #: src/tables/stock/StockLocationTable.tsx:49 msgid "Structural" msgstr "Strukturell" -#: src/pages/part/CategoryDetail.tsx:139 +#: src/pages/part/CategoryDetail.tsx:145 msgid "Parent default location" msgstr "" -#: src/pages/part/CategoryDetail.tsx:146 +#: src/pages/part/CategoryDetail.tsx:152 msgid "Default location" msgstr "" -#: src/pages/part/CategoryDetail.tsx:157 +#: src/pages/part/CategoryDetail.tsx:163 msgid "Top level part category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:167 -#: src/pages/part/CategoryDetail.tsx:221 -#: src/tables/part/PartCategoryTable.tsx:102 +#: src/pages/part/CategoryDetail.tsx:173 +#: src/pages/part/CategoryDetail.tsx:226 +#: src/tables/part/PartCategoryTable.tsx:118 msgid "Edit Part Category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:180 -#: src/pages/stock/LocationDetail.tsx:233 +#: src/pages/part/CategoryDetail.tsx:186 +#: src/pages/stock/LocationDetail.tsx:227 msgid "Delete items" msgstr "" -#: src/pages/part/CategoryDetail.tsx:188 -#: src/pages/part/CategoryDetail.tsx:226 +#: src/pages/part/CategoryDetail.tsx:194 +#: src/pages/part/CategoryDetail.tsx:231 msgid "Delete Part Category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:191 +#: src/pages/part/CategoryDetail.tsx:197 msgid "Parts Action" msgstr "" -#: src/pages/part/CategoryDetail.tsx:192 +#: src/pages/part/CategoryDetail.tsx:198 msgid "Action for parts in this category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:197 +#: src/pages/part/CategoryDetail.tsx:203 msgid "Child Categories Action" msgstr "" -#: src/pages/part/CategoryDetail.tsx:198 +#: src/pages/part/CategoryDetail.tsx:204 msgid "Action for child categories in this category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:216 +#: src/pages/part/CategoryDetail.tsx:222 msgid "Category Actions" msgstr "" -#: src/pages/part/CategoryDetail.tsx:238 +#: src/pages/part/CategoryDetail.tsx:243 msgid "Category Details" msgstr "" -#: src/pages/part/PartDetail.tsx:163 +#: src/pages/part/PartAllocationPanel.tsx:23 +#: src/pages/stock/StockDetail.tsx:443 +#: src/tables/part/PartTable.tsx:99 +msgid "Build Order Allocations" +msgstr "Produksjonsordre-tildelinger" + +#: src/pages/part/PartAllocationPanel.tsx:40 +#: src/pages/stock/StockDetail.tsx:458 +#: src/tables/part/PartTable.tsx:108 +msgid "Sales Order Allocations" +msgstr "Salgsordretildelinger" + +#: src/pages/part/PartDetail.tsx:184 msgid "Variant of" msgstr "" -#: src/pages/part/PartDetail.tsx:170 +#: src/pages/part/PartDetail.tsx:191 msgid "Revision of" msgstr "" -#: src/pages/part/PartDetail.tsx:177 -#: src/tables/stock/StockItemTable.tsx:58 +#: src/pages/part/PartDetail.tsx:198 +#: src/tables/stock/StockItemTable.tsx:59 msgid "Revision" msgstr "" -#: src/pages/part/PartDetail.tsx:184 +#: src/pages/part/PartDetail.tsx:205 #: src/tables/notifications/NotificationsTable.tsx:31 #: src/tables/part/PartCategoryTemplateTable.tsx:67 msgid "Category" msgstr "Kategori" -#: src/pages/part/PartDetail.tsx:190 +#: src/pages/part/PartDetail.tsx:211 msgid "Default Location" msgstr "" -#: src/pages/part/PartDetail.tsx:197 +#: src/pages/part/PartDetail.tsx:218 msgid "Category Default Location" msgstr "" -#: src/pages/part/PartDetail.tsx:204 +#: src/pages/part/PartDetail.tsx:225 #: src/tables/purchasing/ManufacturerPartParameterTable.tsx:44 msgid "Units" msgstr "Enheter" -#: src/pages/part/PartDetail.tsx:211 -#: src/tables/settings/PendingTasksTable.tsx:42 +#: src/pages/part/PartDetail.tsx:232 +#: src/tables/settings/PendingTasksTable.tsx:46 msgid "Keywords" msgstr "Nøkkelord" -#: src/pages/part/PartDetail.tsx:218 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:186 -#: src/pages/sales/ReturnOrderDetail.tsx:165 -#: src/pages/sales/SalesOrderDetail.tsx:174 -msgid "Link" -msgstr "Lenke" - -#: src/pages/part/PartDetail.tsx:236 +#: src/pages/part/PartDetail.tsx:257 #: src/tables/bom/BomTable.tsx:320 -#: src/tables/build/BuildLineTable.tsx:155 +#: src/tables/build/BuildLineTable.tsx:286 #: src/tables/part/PartTable.tsx:288 -#: src/tables/sales/SalesOrderLineItemTable.tsx:103 +#: src/tables/sales/SalesOrderLineItemTable.tsx:111 msgid "Available Stock" msgstr "" -#: src/pages/part/PartDetail.tsx:243 +#: src/pages/part/PartDetail.tsx:264 msgid "Variant Stock" msgstr "" -#: src/pages/part/PartDetail.tsx:251 +#: src/pages/part/PartDetail.tsx:272 msgid "Minimum Stock" msgstr "" -#: src/pages/part/PartDetail.tsx:257 +#: src/pages/part/PartDetail.tsx:278 #: src/tables/bom/BomTable.tsx:237 -#: src/tables/build/BuildLineTable.tsx:117 -#: src/tables/sales/SalesOrderLineItemTable.tsx:141 +#: src/tables/build/BuildLineTable.tsx:248 +#: src/tables/sales/SalesOrderLineItemTable.tsx:149 msgid "On order" msgstr "I bestilling" -#: src/pages/part/PartDetail.tsx:266 +#: src/pages/part/PartDetail.tsx:285 +msgid "Required for Orders" +msgstr "" + +#: src/pages/part/PartDetail.tsx:294 msgid "Allocated to Build Orders" msgstr "" -#: src/pages/part/PartDetail.tsx:274 +#: src/pages/part/PartDetail.tsx:305 msgid "Allocated to Sales Orders" msgstr "" -#: src/pages/part/PartDetail.tsx:281 -#: src/tables/bom/BomTable.tsx:261 -#: src/tables/bom/BomTable.tsx:293 -msgid "Can Build" -msgstr "Kan Produsere" - -#: src/pages/part/PartDetail.tsx:288 -#: src/tables/bom/BomTable.tsx:245 -#: src/tables/part/PartTable.tsx:92 -msgid "Building" -msgstr "Produseres" - -#: src/pages/part/PartDetail.tsx:302 -#: src/pages/part/PartDetail.tsx:873 -#: src/tables/part/ParametricPartTable.tsx:228 -#: src/tables/part/PartTable.tsx:184 -msgid "Locked" -msgstr "" - -#: src/pages/part/PartDetail.tsx:308 -msgid "Template Part" -msgstr "" - #: src/pages/part/PartDetail.tsx:310 #~ msgid "Edit part" #~ msgstr "Edit part" -#: src/pages/part/PartDetail.tsx:313 -#: src/tables/bom/BomTable.tsx:315 -msgid "Assembled Part" -msgstr "Sammenstilt del" +#: src/pages/part/PartDetail.tsx:315 +#: src/tables/bom/BomTable.tsx:261 +#: src/tables/bom/BomTable.tsx:293 +msgid "Can Build" +msgstr "Kan Produsere" -#: src/pages/part/PartDetail.tsx:318 -msgid "Component Part" -msgstr "" +#: src/pages/part/PartDetail.tsx:322 +#: src/pages/part/PartDetail.tsx:905 +#: src/pages/stock/StockDetail.tsx:766 +#: src/tables/build/BuildOrderTestTable.tsx:220 +#: src/tables/stock/StockItemTable.tsx:334 +msgid "In Production" +msgstr "Under produksjon" #: src/pages/part/PartDetail.tsx:322 #~ msgid "Duplicate part" #~ msgstr "Duplicate part" -#: src/pages/part/PartDetail.tsx:323 -#: src/tables/bom/BomTable.tsx:305 -msgid "Testable Part" -msgstr "" - #: src/pages/part/PartDetail.tsx:327 #~ msgid "Delete part" #~ msgstr "Delete part" -#: src/pages/part/PartDetail.tsx:329 +#: src/pages/part/PartDetail.tsx:336 +#: src/tables/part/ParametricPartTable.tsx:228 +#: src/tables/part/PartTable.tsx:184 +msgid "Locked" +msgstr "" + +#: src/pages/part/PartDetail.tsx:342 +msgid "Template Part" +msgstr "" + +#: src/pages/part/PartDetail.tsx:347 +#: src/tables/bom/BomTable.tsx:315 +msgid "Assembled Part" +msgstr "Sammenstilt del" + +#: src/pages/part/PartDetail.tsx:352 +msgid "Component Part" +msgstr "" + +#: src/pages/part/PartDetail.tsx:357 +#: src/tables/bom/BomTable.tsx:305 +msgid "Testable Part" +msgstr "" + +#: src/pages/part/PartDetail.tsx:363 #: src/tables/bom/BomTable.tsx:310 msgid "Trackable Part" msgstr "Sporbar del" -#: src/pages/part/PartDetail.tsx:334 +#: src/pages/part/PartDetail.tsx:368 msgid "Purchaseable Part" msgstr "" -#: src/pages/part/PartDetail.tsx:339 +#: src/pages/part/PartDetail.tsx:374 msgid "Saleable Part" msgstr "" -#: src/pages/part/PartDetail.tsx:344 +#: src/pages/part/PartDetail.tsx:379 msgid "Virtual Part" msgstr "" -#: src/pages/part/PartDetail.tsx:352 -#: src/tables/ColumnRenderers.tsx:220 +#: src/pages/part/PartDetail.tsx:393 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:215 +#: src/pages/sales/ReturnOrderDetail.tsx:185 +#: src/pages/sales/SalesOrderDetail.tsx:197 +#: src/tables/ColumnRenderers.tsx:234 msgid "Creation Date" msgstr "Opprettelsesdato" -#: src/pages/part/PartDetail.tsx:357 +#: src/pages/part/PartDetail.tsx:398 msgid "Created By" msgstr "" -#: src/pages/part/PartDetail.tsx:372 +#: src/pages/part/PartDetail.tsx:413 msgid "Default Supplier" msgstr "" -#: src/pages/part/PartDetail.tsx:383 -#: src/pages/part/pricing/BomPricingPanel.tsx:79 +#: src/pages/part/PartDetail.tsx:424 +#: src/pages/part/pricing/BomPricingPanel.tsx:113 #: src/pages/part/pricing/VariantPricingPanel.tsx:95 #: src/tables/part/PartTable.tsx:161 msgid "Price Range" msgstr "Prisområde" -#: src/pages/part/PartDetail.tsx:423 -#: src/pages/stock/StockDetail.tsx:135 +#: src/pages/part/PartDetail.tsx:462 +msgid "Latest Serial Number" +msgstr "" + +#: src/pages/part/PartDetail.tsx:472 +#: src/pages/stock/StockDetail.tsx:151 msgid "Last Stocktake" msgstr "" -#: src/pages/part/PartDetail.tsx:462 +#: src/pages/part/PartDetail.tsx:511 msgid "Stocktake By" msgstr "" -#: src/pages/part/PartDetail.tsx:526 -msgid "Part Details" -msgstr "" - -#: src/pages/part/PartDetail.tsx:557 +#: src/pages/part/PartDetail.tsx:611 msgid "Variants" msgstr "Varianter" -#: src/pages/part/PartDetail.tsx:564 -#: src/pages/stock/StockDetail.tsx:307 +#: src/pages/part/PartDetail.tsx:618 +#: src/pages/stock/StockDetail.tsx:430 msgid "Allocations" msgstr "Tildelinger" -#: src/pages/part/PartDetail.tsx:575 -#: src/pages/stock/StockDetail.tsx:318 -#: src/tables/part/PartTable.tsx:99 -msgid "Build Order Allocations" -msgstr "Produksjonsordre-tildelinger" - -#: src/pages/part/PartDetail.tsx:590 -#: src/pages/stock/StockDetail.tsx:333 -#: src/tables/part/PartTable.tsx:108 -msgid "Sales Order Allocations" -msgstr "Salgsordretildelinger" - -#: src/pages/part/PartDetail.tsx:607 +#: src/pages/part/PartDetail.tsx:625 msgid "Bill of Materials" msgstr "Stykkliste (BOM)" -#: src/pages/part/PartDetail.tsx:623 +#: src/pages/part/PartDetail.tsx:643 msgid "Used In" msgstr "Brukt i" -#: src/pages/part/PartDetail.tsx:630 +#: src/pages/part/PartDetail.tsx:650 msgid "Part Pricing" msgstr "" -#: src/pages/part/PartDetail.tsx:636 +#: src/pages/part/PartDetail.tsx:656 #: src/pages/purchasing/PurchasingIndex.tsx:42 msgid "Manufacturers" msgstr "Produsenter" -#: src/pages/part/PartDetail.tsx:676 +#: src/pages/part/PartDetail.tsx:722 msgid "Scheduling" msgstr "Planlegging" -#: src/pages/part/PartDetail.tsx:688 +#: src/pages/part/PartDetail.tsx:729 msgid "Test Templates" msgstr "Testmaler" -#: src/pages/part/PartDetail.tsx:715 +#: src/pages/part/PartDetail.tsx:756 msgid "Related Parts" msgstr "Relaterte Deler" -#: src/pages/part/PartDetail.tsx:849 -#: src/pages/stock/StockDetail.tsx:156 -#: src/pages/stock/StockDetail.tsx:593 -#: src/tables/build/BuildLineTable.tsx:48 +#: src/pages/part/PartDetail.tsx:881 +#: src/pages/stock/StockDetail.tsx:172 +#: src/pages/stock/StockDetail.tsx:783 +#: src/tables/build/BuildLineTable.tsx:179 #: src/tables/part/PartTable.tsx:117 -#: src/tables/stock/StockItemTable.tsx:177 -#: src/tables/stock/StockItemTable.tsx:310 +#: src/tables/stock/StockItemTable.tsx:166 +#: src/tables/stock/StockItemTable.tsx:314 msgid "Available" msgstr "Tilgjengelig" -#: src/pages/part/PartDetail.tsx:855 +#: src/pages/part/PartDetail.tsx:887 msgid "No Stock" msgstr "" -#: src/pages/part/PartDetail.tsx:861 +#: src/pages/part/PartDetail.tsx:893 +#: src/tables/part/PartTestTemplateTable.tsx:106 +#: src/tables/stock/StockItemTestResultTable.tsx:383 +msgid "Required" +msgstr "" + +#: src/pages/part/PartDetail.tsx:899 #: src/tables/bom/BomTable.tsx:325 #: src/tables/part/PartTable.tsx:86 msgid "On Order" msgstr "I bestilling" -#: src/pages/part/PartDetail.tsx:867 -#: src/pages/stock/StockDetail.tsx:576 -#: src/tables/build/BuildOrderTestTable.tsx:219 -#: src/tables/stock/StockItemTable.tsx:330 -msgid "In Production" -msgstr "Under produksjon" - -#: src/pages/part/PartDetail.tsx:892 +#: src/pages/part/PartDetail.tsx:924 msgid "Edit Part" msgstr "Rediger del" -#: src/pages/part/PartDetail.tsx:927 +#: src/pages/part/PartDetail.tsx:959 #: src/tables/part/PartTable.tsx:331 -#: src/tables/part/PartTable.tsx:342 +#: src/tables/part/PartTable.tsx:343 msgid "Add Part" msgstr "" -#: src/pages/part/PartDetail.tsx:941 +#: src/pages/part/PartDetail.tsx:973 msgid "Delete Part" msgstr "" -#: src/pages/part/PartDetail.tsx:950 +#: src/pages/part/PartDetail.tsx:982 msgid "Deleting this part cannot be reversed" msgstr "" -#: src/pages/part/PartDetail.tsx:999 -#: src/pages/stock/LocationDetail.tsx:324 -#: src/tables/stock/StockItemTable.tsx:444 +#: src/pages/part/PartDetail.tsx:1021 +#: src/pages/stock/LocationDetail.tsx:310 +#: src/tables/stock/StockItemTable.tsx:449 msgid "Stock Actions" msgstr "Lagerhandlinger" -#: src/pages/part/PartDetail.tsx:1007 +#: src/pages/part/PartDetail.tsx:1029 msgid "Count part stock" msgstr "Tell delbeholdning" -#: src/pages/part/PartDetail.tsx:1018 +#: src/pages/part/PartDetail.tsx:1040 msgid "Transfer part stock" msgstr "Overfør delbeholdning" -#: src/pages/part/PartDetail.tsx:1027 +#: src/pages/part/PartDetail.tsx:1049 msgid "Part Actions" msgstr "Delhandlinger" -#: src/pages/part/PartDetail.tsx:1087 +#: src/pages/part/PartDetail.tsx:1113 msgid "Select Part Revision" msgstr "" @@ -4862,113 +5621,214 @@ msgstr "" #~ msgid "Categories" #~ msgstr "Categories" -#: src/pages/part/PartPricingPanel.tsx:68 +#: src/pages/part/PartPricingPanel.tsx:72 msgid "No pricing data found for this part." msgstr "" -#: src/pages/part/PartPricingPanel.tsx:82 -#: src/pages/part/pricing/PricingOverviewPanel.tsx:190 +#: src/pages/part/PartPricingPanel.tsx:87 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:293 msgid "Pricing Overview" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:88 +#: src/pages/part/PartPricingPanel.tsx:93 msgid "Purchase History" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:102 -#: src/pages/part/pricing/PricingOverviewPanel.tsx:100 +#: src/pages/part/PartPricingPanel.tsx:107 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:174 msgid "Internal Pricing" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:120 -#: src/pages/part/pricing/PricingOverviewPanel.tsx:107 +#: src/pages/part/PartPricingPanel.tsx:125 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:181 msgid "BOM Pricing" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:127 -#: src/pages/part/pricing/PricingOverviewPanel.tsx:128 +#: src/pages/part/PartPricingPanel.tsx:132 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:202 msgid "Variant Pricing" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:139 -#: src/pages/part/pricing/PricingOverviewPanel.tsx:135 +#: src/pages/part/PartPricingPanel.tsx:144 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:209 msgid "Sale Pricing" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:146 -#: src/pages/part/pricing/PricingOverviewPanel.tsx:142 +#: src/pages/part/PartPricingPanel.tsx:151 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:216 msgid "Sale History" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:58 -#: src/pages/part/pricing/BomPricingPanel.tsx:138 -#: src/tables/ColumnRenderers.tsx:262 +#: src/pages/part/PartSchedulingDetail.tsx:47 +#: src/pages/part/PartSchedulingDetail.tsx:299 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:156 +msgid "Maximum" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:50 +#: src/pages/part/PartSchedulingDetail.tsx:289 +msgid "Scheduled" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:53 +#: src/pages/part/PartSchedulingDetail.tsx:294 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:144 +msgid "Minimum" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:68 +msgid "Order" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:92 +msgid "Quantity is speculative" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:101 +msgid "No date available for provided quantity" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:105 +msgid "Date is in the past" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:112 +msgid "Scheduled Quantity" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:240 +msgid "No information available" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:241 +msgid "There is no scheduling information available for the selected part" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:276 +msgid "Expected Quantity" +msgstr "" + +#: src/pages/part/PartStocktakeDetail.tsx:63 +#: src/tables/FilterSelectDrawer.tsx:167 +#: src/tables/FilterSelectDrawer.tsx:174 +#: src/tables/build/BuildOrderTestTable.tsx:135 +#: src/tables/purchasing/ManufacturerPartParameterTable.tsx:38 +#: src/tables/stock/StockItemTestResultTable.tsx:192 +msgid "Value" +msgstr "Verdi" + +#: src/pages/part/PartStocktakeDetail.tsx:82 +msgid "Edit Stocktake Entry" +msgstr "" + +#: src/pages/part/PartStocktakeDetail.tsx:90 +msgid "Delete Stocktake Entry" +msgstr "" + +#: src/pages/part/PartStocktakeDetail.tsx:96 +#: src/tables/settings/StocktakeReportTable.tsx:69 +msgid "Generate Stocktake Report" +msgstr "" + +#: src/pages/part/PartStocktakeDetail.tsx:101 +#: src/tables/settings/StocktakeReportTable.tsx:71 +msgid "Stocktake report scheduled" +msgstr "" + +#: src/pages/part/PartStocktakeDetail.tsx:119 +#: src/pages/part/PartStocktakeDetail.tsx:235 +#: src/pages/stock/StockDetail.tsx:303 +#: src/tables/stock/StockItemTable.tsx:249 +msgid "Stock Value" +msgstr "" + +#: src/pages/part/PartStocktakeDetail.tsx:139 +#: src/tables/settings/StocktakeReportTable.tsx:77 +msgid "New Stocktake Report" +msgstr "" + +#: src/pages/part/PartStocktakeDetail.tsx:258 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:295 +msgid "Minimum Value" +msgstr "" + +#: src/pages/part/PartStocktakeDetail.tsx:264 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:296 +msgid "Maximum Value" +msgstr "" + +#: src/pages/part/pricing/BomPricingPanel.tsx:87 +#: src/pages/part/pricing/BomPricingPanel.tsx:177 +#: src/tables/ColumnRenderers.tsx:276 #: src/tables/bom/BomTable.tsx:185 #: src/tables/general/ExtraLineItemTable.tsx:64 -#: src/tables/purchasing/PurchaseOrderTable.tsx:112 -#: src/tables/sales/ReturnOrderTable.tsx:104 -#: src/tables/sales/SalesOrderLineItemTable.tsx:89 -#: src/tables/sales/SalesOrderTable.tsx:136 +#: src/tables/purchasing/PurchaseOrderTable.tsx:113 +#: src/tables/sales/ReturnOrderTable.tsx:127 +#: src/tables/sales/SalesOrderLineItemTable.tsx:97 +#: src/tables/sales/SalesOrderTable.tsx:149 msgid "Total Price" msgstr "Total pris" -#: src/pages/part/pricing/BomPricingPanel.tsx:78 -#: src/pages/part/pricing/BomPricingPanel.tsx:102 +#: src/pages/part/pricing/BomPricingPanel.tsx:112 +#: src/pages/part/pricing/BomPricingPanel.tsx:141 #: src/tables/bom/UsedInTable.tsx:49 +#: src/tables/build/BuildLineTable.tsx:296 #: src/tables/part/PartTable.tsx:202 msgid "Component" msgstr "Komponent" -#: src/pages/part/pricing/BomPricingPanel.tsx:81 -#: src/pages/part/pricing/VariantPricingPanel.tsx:37 -#: src/pages/part/pricing/VariantPricingPanel.tsx:97 -msgid "Minimum Price" -msgstr "" - -#: src/pages/part/pricing/BomPricingPanel.tsx:82 -#: src/pages/part/pricing/VariantPricingPanel.tsx:45 -#: src/pages/part/pricing/VariantPricingPanel.tsx:98 -msgid "Maximum Price" -msgstr "" - #: src/pages/part/pricing/BomPricingPanel.tsx:112 #~ msgid "Minimum Total Price" #~ msgstr "Minimum Total Price" +#: src/pages/part/pricing/BomPricingPanel.tsx:115 +#: src/pages/part/pricing/VariantPricingPanel.tsx:37 +#: src/pages/part/pricing/VariantPricingPanel.tsx:97 +msgid "Minimum Price" +msgstr "" + +#: src/pages/part/pricing/BomPricingPanel.tsx:116 +#: src/pages/part/pricing/VariantPricingPanel.tsx:45 +#: src/pages/part/pricing/VariantPricingPanel.tsx:98 +msgid "Maximum Price" +msgstr "" + #: src/pages/part/pricing/BomPricingPanel.tsx:117 #~ msgid "Maximum Total Price" #~ msgstr "Maximum Total Price" -#: src/pages/part/pricing/BomPricingPanel.tsx:129 -#: src/pages/part/pricing/PriceBreakPanel.tsx:172 -#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:67 -#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:128 -#: src/pages/part/pricing/SupplierPricingPanel.tsx:62 +#: src/pages/part/pricing/BomPricingPanel.tsx:168 +#: src/pages/part/pricing/PriceBreakPanel.tsx:173 +#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:70 +#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:125 +#: src/pages/part/pricing/SupplierPricingPanel.tsx:66 +#: src/pages/stock/StockDetail.tsx:291 #: src/tables/bom/BomTable.tsx:176 #: src/tables/general/ExtraLineItemTable.tsx:56 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:223 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:225 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:92 +#: src/tables/stock/StockItemTable.tsx:239 msgid "Unit Price" msgstr "Enhetspris" -#: src/pages/part/pricing/BomPricingPanel.tsx:154 +#: src/pages/part/pricing/BomPricingPanel.tsx:193 #: src/pages/part/pricing/VariantPricingPanel.tsx:53 -#: src/tables/purchasing/SupplierPartTable.tsx:148 +#: src/tables/purchasing/SupplierPartTable.tsx:150 msgid "Updated" msgstr "Oppdatert" -#: src/pages/part/pricing/BomPricingPanel.tsx:219 +#: src/pages/part/pricing/BomPricingPanel.tsx:258 msgid "Pie Chart" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:220 +#: src/pages/part/pricing/BomPricingPanel.tsx:259 msgid "Bar Chart" msgstr "" #: src/pages/part/pricing/PriceBreakPanel.tsx:58 -#: src/pages/part/pricing/PriceBreakPanel.tsx:110 +#: src/pages/part/pricing/PriceBreakPanel.tsx:111 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:142 -#: src/tables/purchasing/SupplierPriceBreakTable.tsx:168 +#: src/tables/purchasing/SupplierPriceBreakTable.tsx:169 msgid "Add Price Break" msgstr "" @@ -4986,46 +5846,70 @@ msgstr "" msgid "Price Break" msgstr "" -#: src/pages/part/pricing/PriceBreakPanel.tsx:170 +#: src/pages/part/pricing/PriceBreakPanel.tsx:171 msgid "Price" msgstr "" -#: src/pages/part/pricing/PricingOverviewPanel.tsx:51 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:68 +msgid "Refreshing pricing data" +msgstr "" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:88 +msgid "Pricing data updated" +msgstr "" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:95 +msgid "Failed to update pricing data" +msgstr "" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:104 +msgid "Edit Pricing" +msgstr "" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:125 msgid "Pricing Category" msgstr "" -#: src/pages/part/pricing/PricingOverviewPanel.tsx:70 -msgid "Minimum" -msgstr "" - -#: src/pages/part/pricing/PricingOverviewPanel.tsx:82 -msgid "Maximum" -msgstr "" - -#: src/pages/part/pricing/PricingOverviewPanel.tsx:114 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:188 msgid "Purchase Pricing" msgstr "" -#: src/pages/part/pricing/PricingOverviewPanel.tsx:149 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:223 msgid "Override Pricing" msgstr "" -#: src/pages/part/pricing/PricingOverviewPanel.tsx:156 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:230 msgid "Overall Pricing" msgstr "" -#: src/pages/part/pricing/PricingOverviewPanel.tsx:175 -#: src/pages/stock/StockDetail.tsx:129 -#: src/tables/stock/StockItemTable.tsx:240 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:249 +#: src/pages/stock/StockDetail.tsx:145 +#: src/tables/stock/StockItemTable.tsx:275 msgid "Last Updated" msgstr "" -#: src/pages/part/pricing/PricingOverviewPanel.tsx:192 -msgid "Minimum Value" +#: src/pages/part/pricing/PricingOverviewPanel.tsx:253 +msgid "Pricing Not Set" msgstr "" -#: src/pages/part/pricing/PricingOverviewPanel.tsx:193 -msgid "Maximum Value" +#: src/pages/part/pricing/PricingOverviewPanel.tsx:254 +msgid "Pricing data has not been calculated for this part" +msgstr "" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:258 +msgid "Pricing Actions" +msgstr "" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:261 +msgid "Refresh" +msgstr "" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:262 +msgid "Refresh pricing data" +msgstr "" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:277 +msgid "Edit pricing data" msgstr "" #: src/pages/part/pricing/PricingPanel.tsx:24 @@ -5044,28 +5928,20 @@ msgstr "" msgid "Loading pricing data" msgstr "" -#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:40 -#: src/pages/part/pricing/SaleHistoryPanel.tsx:36 -#: src/tables/ColumnRenderers.tsx:201 -#: src/tables/build/BuildOrderTestTable.tsx:150 -#: src/tables/plugin/PluginListTable.tsx:139 -msgid "Date" -msgstr "Dato" - #: src/pages/part/pricing/PurchaseHistoryPanel.tsx:47 msgid "Purchase Price" msgstr "" -#: src/pages/part/pricing/SaleHistoryPanel.tsx:22 -msgid "Sale Order" -msgstr "" +#: src/pages/part/pricing/SaleHistoryPanel.tsx:24 +#~ msgid "Sale Order" +#~ msgstr "Sale Order" -#: src/pages/part/pricing/SaleHistoryPanel.tsx:42 -#: src/pages/part/pricing/SaleHistoryPanel.tsx:92 +#: src/pages/part/pricing/SaleHistoryPanel.tsx:44 +#: src/pages/part/pricing/SaleHistoryPanel.tsx:87 msgid "Sale Price" msgstr "" -#: src/pages/part/pricing/SupplierPricingPanel.tsx:65 +#: src/pages/part/pricing/SupplierPricingPanel.tsx:69 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:83 msgid "Supplier Price" msgstr "" @@ -5075,23 +5951,23 @@ msgstr "" msgid "Variant Part" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:93 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:87 msgid "Edit Purchase Order" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:102 -#: src/tables/purchasing/PurchaseOrderTable.tsx:128 -#: src/tables/purchasing/PurchaseOrderTable.tsx:140 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:96 +#: src/tables/purchasing/PurchaseOrderTable.tsx:129 +#: src/tables/purchasing/PurchaseOrderTable.tsx:142 msgid "Add Purchase Order" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:127 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:121 msgid "Supplier Reference" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:158 -#: src/pages/sales/ReturnOrderDetail.tsx:137 -#: src/pages/sales/SalesOrderDetail.tsx:137 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:152 +#: src/pages/sales/ReturnOrderDetail.tsx:129 +#: src/pages/sales/SalesOrderDetail.tsx:132 msgid "Completed Line Items" msgstr "" @@ -5101,91 +5977,112 @@ msgstr "" #~ msgid "Order Currency," #~ msgstr "Order Currency," -#: src/pages/purchasing/PurchaseOrderDetail.tsx:165 -#: src/pages/sales/ReturnOrderDetail.tsx:144 -#: src/pages/sales/SalesOrderDetail.tsx:153 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:161 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:231 +msgid "Destination" +msgstr "Destinasjon" + +#: src/pages/purchasing/PurchaseOrderDetail.tsx:167 +#: src/pages/sales/ReturnOrderDetail.tsx:136 +#: src/pages/sales/SalesOrderDetail.tsx:148 msgid "Order Currency" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:172 -#: src/pages/sales/ReturnOrderDetail.tsx:151 -#: src/pages/sales/SalesOrderDetail.tsx:160 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:173 +#: src/pages/sales/ReturnOrderDetail.tsx:143 +#: src/pages/sales/SalesOrderDetail.tsx:155 msgid "Total Cost" msgstr "" #: src/pages/purchasing/PurchaseOrderDetail.tsx:207 -#: src/pages/sales/ReturnOrderDetail.tsx:186 -#: src/pages/sales/SalesOrderDetail.tsx:195 -msgid "Created On" +#: src/pages/sales/ReturnOrderDetail.tsx:183 +#: src/pages/sales/SalesOrderDetail.tsx:191 +#~ msgid "Created On" +#~ msgstr "Created On" + +#: src/pages/purchasing/PurchaseOrderDetail.tsx:221 +#: src/pages/sales/ReturnOrderDetail.tsx:193 +#: src/pages/sales/SalesOrderDetail.tsx:204 +msgid "Issue Date" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:252 -#: src/pages/sales/ReturnOrderDetail.tsx:231 -#: src/pages/sales/SalesOrderDetail.tsx:266 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:237 +#: src/pages/sales/ReturnOrderDetail.tsx:209 +#: src/pages/sales/SalesOrderDetail.tsx:219 +#: src/tables/build/BuildOrderTable.tsx:98 +#: src/tables/part/PartPurchaseOrdersTable.tsx:105 +#: src/tables/sales/ReturnOrderTable.tsx:122 +msgid "Completion Date" +msgstr "" + +#: src/pages/purchasing/PurchaseOrderDetail.tsx:276 +#: src/pages/sales/ReturnOrderDetail.tsx:248 +#: src/pages/sales/SalesOrderDetail.tsx:288 msgid "Order Details" msgstr "Ordredetaljer" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:280 -#: src/pages/sales/ReturnOrderDetail.tsx:258 -#: src/pages/sales/SalesOrderDetail.tsx:297 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:304 +#: src/pages/sales/ReturnOrderDetail.tsx:276 +#: src/pages/sales/SalesOrderDetail.tsx:319 msgid "Extra Line Items" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:337 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:346 msgid "Issue Purchase Order" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:345 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:354 msgid "Cancel Purchase Order" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:353 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:362 msgid "Hold Purchase Order" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:361 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:370 msgid "Complete Purchase Order" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:427 -#: src/pages/sales/ReturnOrderDetail.tsx:428 -#: src/pages/sales/SalesOrderDetail.tsx:468 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:425 +#: src/pages/sales/ReturnOrderDetail.tsx:424 +#: src/pages/sales/SalesOrderDetail.tsx:464 msgid "Order Actions" msgstr "Ordrehandlinger" -#: src/pages/sales/ReturnOrderDetail.tsx:101 -#: src/pages/sales/SalesOrderDetail.tsx:107 -#: src/tables/sales/SalesOrderTable.tsx:124 +#: src/pages/sales/ReturnOrderDetail.tsx:92 +#: src/pages/sales/SalesOrderDetail.tsx:101 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:109 +#: src/tables/sales/SalesOrderTable.tsx:137 msgid "Customer Reference" msgstr "Kundereferanse" -#: src/pages/sales/ReturnOrderDetail.tsx:315 +#: src/pages/sales/ReturnOrderDetail.tsx:322 msgid "Edit Return Order" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:324 -#: src/tables/sales/ReturnOrderTable.tsx:119 -#: src/tables/sales/ReturnOrderTable.tsx:128 +#: src/pages/sales/ReturnOrderDetail.tsx:331 +#: src/tables/sales/ReturnOrderTable.tsx:142 +#: src/tables/sales/ReturnOrderTable.tsx:152 msgid "Add Return Order" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:336 +#: src/pages/sales/ReturnOrderDetail.tsx:343 msgid "Issue Return Order" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:344 +#: src/pages/sales/ReturnOrderDetail.tsx:349 +#~ msgid "Order canceled" +#~ msgstr "Order canceled" + +#: src/pages/sales/ReturnOrderDetail.tsx:351 msgid "Cancel Return Order" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:347 -msgid "Order canceled" -msgstr "" - -#: src/pages/sales/ReturnOrderDetail.tsx:352 +#: src/pages/sales/ReturnOrderDetail.tsx:359 msgid "Hold Return Order" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:360 +#: src/pages/sales/ReturnOrderDetail.tsx:367 msgid "Complete Return Order" msgstr "" @@ -5193,117 +6090,193 @@ msgstr "" msgid "Customers" msgstr "Kunder" -#: src/pages/sales/SalesOrderDetail.tsx:145 +#: src/pages/sales/SalesOrderDetail.tsx:140 msgid "Completed Shipments" msgstr "Fullførte forsendelser" -#: src/pages/sales/SalesOrderDetail.tsx:243 -msgid "Edit Sales Order" -msgstr "" - -#: src/pages/sales/SalesOrderDetail.tsx:252 -#: src/tables/sales/SalesOrderTable.tsx:84 -#: src/tables/sales/SalesOrderTable.tsx:96 -msgid "Add Sales Order" -msgstr "" - #: src/pages/sales/SalesOrderDetail.tsx:256 #~ msgid "Pending Shipments" #~ msgstr "Pending Shipments" -#: src/pages/sales/SalesOrderDetail.tsx:313 +#: src/pages/sales/SalesOrderDetail.tsx:261 +msgid "Edit Sales Order" +msgstr "" + +#: src/pages/sales/SalesOrderDetail.tsx:274 +#: src/tables/sales/SalesOrderTable.tsx:96 +#: src/tables/sales/SalesOrderTable.tsx:109 +msgid "Add Sales Order" +msgstr "" + +#: src/pages/sales/SalesOrderDetail.tsx:335 msgid "Shipments" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:369 +#: src/pages/sales/SalesOrderDetail.tsx:376 msgid "Issue Sales Order" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:377 +#: src/pages/sales/SalesOrderDetail.tsx:384 msgid "Cancel Sales Order" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:385 +#: src/pages/sales/SalesOrderDetail.tsx:392 msgid "Hold Sales Order" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:393 +#: src/pages/sales/SalesOrderDetail.tsx:400 msgid "Complete Sales Order" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:432 +#: src/pages/sales/SalesOrderDetail.tsx:439 msgid "Ship Order" msgstr "" -#: src/pages/stock/LocationDetail.tsx:117 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:117 +#: src/tables/sales/SalesOrderShipmentTable.tsx:96 +msgid "Shipment Reference" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:124 +msgid "Allocated Items" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:133 +msgid "Tracking Number" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:141 +msgid "Invoice Number" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:149 +#: src/tables/ColumnRenderers.tsx:242 +#: src/tables/sales/SalesOrderAllocationTable.tsx:142 +#: src/tables/sales/SalesOrderShipmentTable.tsx:115 +msgid "Shipment Date" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:157 +#: src/tables/sales/SalesOrderShipmentTable.tsx:119 +msgid "Delivery Date" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:204 +msgid "Shipment Details" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:210 +msgid "Assigned Items" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:241 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:317 +#: src/tables/sales/SalesOrderShipmentTable.tsx:75 +msgid "Edit Shipment" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:248 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:322 +#: src/tables/sales/SalesOrderShipmentTable.tsx:67 +msgid "Cancel Shipment" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:261 +#: src/tables/sales/SalesOrderShipmentTable.tsx:83 +#: src/tables/sales/SalesOrderShipmentTable.tsx:151 +msgid "Complete Shipment" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:276 +#: src/tables/part/PartPurchaseOrdersTable.tsx:121 +msgid "Pending" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:277 +#: src/tables/sales/SalesOrderAllocationTable.tsx:148 +#: src/tables/sales/SalesOrderShipmentTable.tsx:108 +#: src/tables/sales/SalesOrderShipmentTable.tsx:197 +msgid "Shipped" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:279 +#: src/tables/sales/SalesOrderShipmentTable.tsx:202 +msgid "Delivered" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:293 +msgid "Send Shipment" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:312 +msgid "Shipment Actions" +msgstr "" + +#: src/pages/stock/LocationDetail.tsx:111 msgid "Parent Location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:135 +#: src/pages/stock/LocationDetail.tsx:129 msgid "Sublocations" msgstr "" -#: src/pages/stock/LocationDetail.tsx:147 +#: src/pages/stock/LocationDetail.tsx:141 #: src/tables/stock/StockLocationTable.tsx:54 msgid "External" msgstr "" -#: src/pages/stock/LocationDetail.tsx:153 +#: src/pages/stock/LocationDetail.tsx:147 #: src/tables/stock/StockLocationTable.tsx:63 msgid "Location Type" msgstr "" -#: src/pages/stock/LocationDetail.tsx:164 +#: src/pages/stock/LocationDetail.tsx:158 msgid "Top level stock location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:175 +#: src/pages/stock/LocationDetail.tsx:169 msgid "Location Details" msgstr "" -#: src/pages/stock/LocationDetail.tsx:201 +#: src/pages/stock/LocationDetail.tsx:195 msgid "Default Parts" msgstr "" -#: src/pages/stock/LocationDetail.tsx:220 -#: src/pages/stock/LocationDetail.tsx:351 +#: src/pages/stock/LocationDetail.tsx:214 +#: src/pages/stock/LocationDetail.tsx:336 #: src/tables/stock/StockLocationTable.tsx:123 msgid "Edit Stock Location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:241 -#: src/pages/stock/LocationDetail.tsx:356 +#: src/pages/stock/LocationDetail.tsx:235 +#: src/pages/stock/LocationDetail.tsx:341 msgid "Delete Stock Location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:244 +#: src/pages/stock/LocationDetail.tsx:238 msgid "Items Action" msgstr "" -#: src/pages/stock/LocationDetail.tsx:245 +#: src/pages/stock/LocationDetail.tsx:239 msgid "Action for stock items in this location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:250 +#: src/pages/stock/LocationDetail.tsx:244 msgid "Child Locations Action" msgstr "" -#: src/pages/stock/LocationDetail.tsx:251 +#: src/pages/stock/LocationDetail.tsx:245 msgid "Action for child locations in this location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:346 +#: src/pages/stock/LocationDetail.tsx:332 msgid "Location Actions" msgstr "" -#: src/pages/stock/StockDetail.tsx:108 +#: src/pages/stock/StockDetail.tsx:116 msgid "Base Part" msgstr "Basisdel" -#: src/pages/stock/StockDetail.tsx:115 -msgid "Stock Status" -msgstr "" - #: src/pages/stock/StockDetail.tsx:155 #~ msgid "Link custom barcode to stock item" #~ msgstr "Link custom barcode to stock item" @@ -5312,113 +6285,179 @@ msgstr "" #~ msgid "Unlink custom barcode from stock item" #~ msgstr "Unlink custom barcode from stock item" -#: src/pages/stock/StockDetail.tsx:188 -msgid "Installed In" -msgstr "" - -#: src/pages/stock/StockDetail.tsx:204 -msgid "Consumed By" +#: src/pages/stock/StockDetail.tsx:178 +msgid "Allocated to Orders" msgstr "" #: src/pages/stock/StockDetail.tsx:205 #~ msgid "Edit stock item" #~ msgstr "Edit stock item" -#: src/pages/stock/StockDetail.tsx:213 -#: src/tables/build/BuildAllocatedStockTable.tsx:64 -#: src/tables/stock/StockTrackingTable.tsx:96 -msgid "Build Order" +#: src/pages/stock/StockDetail.tsx:209 +msgid "Installed In" msgstr "" #: src/pages/stock/StockDetail.tsx:217 #~ msgid "Delete stock item" #~ msgstr "Delete stock item" -#: src/pages/stock/StockDetail.tsx:291 +#: src/pages/stock/StockDetail.tsx:226 +msgid "Parent Item" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:230 +msgid "Parent stock item" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:236 +msgid "Consumed By" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:245 +#: src/tables/build/BuildAllocatedStockTable.tsx:77 +#: src/tables/stock/StockTrackingTable.tsx:100 +msgid "Build Order" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:283 +#: src/tables/stock/StockItemTable.tsx:270 +msgid "Expiry Date" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:414 msgid "Stock Details" msgstr "" -#: src/pages/stock/StockDetail.tsx:297 +#: src/pages/stock/StockDetail.tsx:420 msgid "Stock Tracking" msgstr "Sporing av lager" -#: src/pages/stock/StockDetail.tsx:350 -msgid "Test Data" -msgstr "Testdata" - -#: src/pages/stock/StockDetail.tsx:364 -msgid "Installed Items" -msgstr "Installerte artikler" - -#: src/pages/stock/StockDetail.tsx:371 -msgid "Child Items" -msgstr "Underordnede artikler" - -#: src/pages/stock/StockDetail.tsx:425 -msgid "Edit Stock Item" -msgstr "Rediger lagervare" - #: src/pages/stock/StockDetail.tsx:433 #~ msgid "Duplicate stock item" #~ msgstr "Duplicate stock item" -#: src/pages/stock/StockDetail.tsx:452 +#: src/pages/stock/StockDetail.tsx:475 +msgid "Test Data" +msgstr "Testdata" + +#: src/pages/stock/StockDetail.tsx:489 +msgid "Installed Items" +msgstr "Installerte artikler" + +#: src/pages/stock/StockDetail.tsx:496 +msgid "Child Items" +msgstr "Underordnede artikler" + +#: src/pages/stock/StockDetail.tsx:545 +msgid "Edit Stock Item" +msgstr "Rediger lagervare" + +#: src/pages/stock/StockDetail.tsx:572 msgid "Delete Stock Item" msgstr "" -#: src/pages/stock/StockDetail.tsx:504 +#: src/pages/stock/StockDetail.tsx:604 +msgid "Serialize Stock Item" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:617 +msgid "Stock item serialized" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:623 +msgid "Return Stock Item" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:626 +msgid "Return this item into stock. This will remove the customer assignment." +msgstr "" + +#: src/pages/stock/StockDetail.tsx:636 +msgid "Item returned to stock" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:666 msgid "Stock Operations" msgstr "Lagerhandlinger" -#: src/pages/stock/StockDetail.tsx:509 +#: src/pages/stock/StockDetail.tsx:671 msgid "Count stock" msgstr "Tell beholdning" -#: src/pages/stock/StockDetail.tsx:519 -#: src/tables/stock/StockItemTable.tsx:449 -msgid "Add stock" -msgstr "Legg til lager" +#: src/pages/stock/StockDetail.tsx:671 +#: src/tables/stock/StockItemTable.tsx:452 +#~ msgid "Add stock" +#~ msgstr "Add stock" -#: src/pages/stock/StockDetail.tsx:527 -#: src/tables/stock/StockItemTable.tsx:458 -msgid "Remove stock" -msgstr "Fjern lager" +#: src/pages/stock/StockDetail.tsx:680 +#: src/tables/stock/StockItemTable.tsx:461 +#~ msgid "Remove stock" +#~ msgstr "Remove stock" -#: src/pages/stock/StockDetail.tsx:534 +#: src/pages/stock/StockDetail.tsx:698 +#: src/tables/stock/StockItemTable.tsx:481 +#~ msgid "Transfer stock" +#~ msgstr "Transfer stock" + +#: src/pages/stock/StockDetail.tsx:699 +msgid "Serialize" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:700 +msgid "Serialize stock" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:711 msgid "Transfer" msgstr "Overfør" -#: src/pages/stock/StockDetail.tsx:535 -#: src/tables/stock/StockItemTable.tsx:478 -msgid "Transfer stock" -msgstr "Overfør lager" +#: src/pages/stock/StockDetail.tsx:722 +msgid "Return" +msgstr "" -#: src/pages/stock/StockDetail.tsx:546 +#: src/pages/stock/StockDetail.tsx:723 +msgid "Return from customer" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:738 msgid "Stock Item Actions" msgstr "" -#: src/tables/ColumnRenderers.tsx:30 +#: src/pages/stock/StockDetail.tsx:808 +msgid "Stale" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:814 +msgid "Expired" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:820 +msgid "Unavailable" +msgstr "" + +#: src/tables/ColumnRenderers.tsx:36 msgid "Part is not active" msgstr "" -#: src/tables/ColumnRenderers.tsx:35 -msgid "Part is locked" +#: src/tables/ColumnRenderers.tsx:41 +#: src/tables/bom/BomTable.tsx:542 +#: src/tables/part/PartParameterTable.tsx:193 +#: src/tables/part/PartTestTemplateTable.tsx:253 +msgid "Part is Locked" msgstr "" -#: src/tables/ColumnRenderers.tsx:57 +#: src/tables/ColumnRenderers.tsx:41 +#~ msgid "Part is locked" +#~ msgstr "Part is locked" + +#: src/tables/ColumnRenderers.tsx:46 +msgid "You are subscribed to notifications for this part" +msgstr "" + +#: src/tables/ColumnRenderers.tsx:68 msgid "No location set" msgstr "" -#: src/tables/ColumnRenderers.tsx:228 -#: src/tables/sales/SalesOrderShipmentTable.tsx:79 -msgid "Shipment Date" -msgstr "" - -#: src/tables/ColumnRenderers.tsx:248 -#: src/tables/settings/CurrencyTable.tsx:23 -msgid "Currency" -msgstr "Valuta" - #: src/tables/ColumnSelect.tsx:16 #: src/tables/ColumnSelect.tsx:23 msgid "Select Columns" @@ -5452,91 +6491,116 @@ msgstr "" msgid "Download Data" msgstr "" -#: src/tables/Filter.tsx:89 -#: src/tables/build/BuildOrderTable.tsx:135 +#: src/tables/Filter.tsx:101 msgid "Assigned to me" msgstr "Tilordnet meg" -#: src/tables/Filter.tsx:90 -#: src/tables/build/BuildOrderTable.tsx:136 +#: src/tables/Filter.tsx:102 msgid "Show orders assigned to me" msgstr "Vis ordre tildelt meg" -#: src/tables/Filter.tsx:97 +#: src/tables/Filter.tsx:106 +#~ msgid "Show overdue orders" +#~ msgstr "Show overdue orders" + +#: src/tables/Filter.tsx:109 +#: src/tables/build/BuildOrderTable.tsx:120 +#: src/tables/sales/SalesOrderAllocationTable.tsx:59 msgid "Outstanding" msgstr "Utestående" -#: src/tables/Filter.tsx:98 -msgid "Show outstanding orders" -msgstr "Vis utestående ordre" +#: src/tables/Filter.tsx:110 +msgid "Show outstanding items" +msgstr "" -#: src/tables/Filter.tsx:105 -#: src/tables/build/BuildOrderTable.tsx:128 +#: src/tables/Filter.tsx:117 msgid "Overdue" msgstr "Forfalt" -#: src/tables/Filter.tsx:106 -msgid "Show overdue orders" -msgstr "Vis forfalte ordrer" +#: src/tables/Filter.tsx:118 +msgid "Show overdue items" +msgstr "" -#: src/tables/FilterSelectDrawer.tsx:51 +#: src/tables/Filter.tsx:125 +msgid "Minimum Date" +msgstr "" + +#: src/tables/Filter.tsx:126 +msgid "Show items after this date" +msgstr "" + +#: src/tables/Filter.tsx:134 +msgid "Maximum Date" +msgstr "" + +#: src/tables/Filter.tsx:135 +msgid "Show items before this date" +msgstr "" + +#: src/tables/Filter.tsx:144 +msgid "Has Project Code" +msgstr "" + +#: src/tables/Filter.tsx:145 +msgid "Show orders with an assigned project code" +msgstr "" + +#: src/tables/FilterSelectDrawer.tsx:55 msgid "Remove filter" msgstr "Fjern filter" -#: src/tables/FilterSelectDrawer.tsx:130 +#: src/tables/FilterSelectDrawer.tsx:159 msgid "Select filter" msgstr "Velg filter" -#: src/tables/FilterSelectDrawer.tsx:131 +#: src/tables/FilterSelectDrawer.tsx:160 msgid "Filter" msgstr "Filter" -#: src/tables/FilterSelectDrawer.tsx:138 -#: src/tables/build/BuildOrderTestTable.tsx:134 -#: src/tables/purchasing/ManufacturerPartParameterTable.tsx:38 -#: src/tables/stock/StockItemTestResultTable.tsx:186 -msgid "Value" -msgstr "Verdi" +#: src/tables/FilterSelectDrawer.tsx:168 +msgid "Select date value" +msgstr "" -#: src/tables/FilterSelectDrawer.tsx:140 +#: src/tables/FilterSelectDrawer.tsx:176 msgid "Select filter value" msgstr "Velg filterverdi" -#: src/tables/FilterSelectDrawer.tsx:183 +#: src/tables/FilterSelectDrawer.tsx:219 +#: src/tables/InvenTreeTableHeader.tsx:214 msgid "Table Filters" msgstr "Tabellfiltre" -#: src/tables/FilterSelectDrawer.tsx:215 +#: src/tables/FilterSelectDrawer.tsx:251 msgid "Add Filter" msgstr "Legg til filter" -#: src/tables/FilterSelectDrawer.tsx:224 +#: src/tables/FilterSelectDrawer.tsx:260 msgid "Clear Filters" msgstr "Fjern filtre" -#: src/tables/InvenTreeTable.tsx:123 -#: src/tables/InvenTreeTable.tsx:431 -#: src/tables/InvenTreeTable.tsx:455 +#: src/tables/InvenTreeTable.tsx:96 +#: src/tables/InvenTreeTable.tsx:417 +#: src/tables/InvenTreeTable.tsx:441 msgid "No records found" msgstr "Ingen poster funnet" -#: src/tables/InvenTreeTable.tsx:466 +#: src/tables/InvenTreeTable.tsx:452 msgid "Server returned incorrect data type" msgstr "Serveren returnerte feil datatype" -#: src/tables/InvenTreeTable.tsx:474 +#: src/tables/InvenTreeTable.tsx:460 msgid "Bad request" msgstr "Ugyldig forespørsel" -#: src/tables/InvenTreeTable.tsx:477 +#: src/tables/InvenTreeTable.tsx:463 msgid "Unauthorized" msgstr "Uautorisert" -#: src/tables/InvenTreeTable.tsx:480 +#: src/tables/InvenTreeTable.tsx:466 msgid "Forbidden" msgstr "Forbudt" -#: src/tables/InvenTreeTable.tsx:483 +#: src/tables/InvenTreeTable.tsx:469 msgid "Not found" msgstr "Ikke funnet" @@ -5544,18 +6608,6 @@ msgstr "Ikke funnet" #~ msgid "Are you sure you want to delete the selected records?" #~ msgstr "Are you sure you want to delete the selected records?" -#: src/tables/InvenTreeTable.tsx:525 -msgid "Delete Selected Items" -msgstr "" - -#: src/tables/InvenTreeTable.tsx:529 -msgid "Are you sure you want to delete the selected items?" -msgstr "" - -#: src/tables/InvenTreeTable.tsx:531 -msgid "This action cannot be undone!" -msgstr "Denne handlingen kan ikke angres!" - #: src/tables/InvenTreeTable.tsx:535 #~ msgid "Deleted records" #~ msgstr "Deleted records" @@ -5568,31 +6620,56 @@ msgstr "Denne handlingen kan ikke angres!" #~ msgid "Failed to delete records" #~ msgstr "Failed to delete records" +#: src/tables/InvenTreeTable.tsx:552 +#~ msgid "This action cannot be undone!" +#~ msgstr "This action cannot be undone!" + #: src/tables/InvenTreeTable.tsx:594 #: src/tables/InvenTreeTable.tsx:595 #~ msgid "Print actions" #~ msgstr "Print actions" -#: src/tables/InvenTreeTable.tsx:618 -#: src/tables/InvenTreeTable.tsx:619 -msgid "Barcode actions" -msgstr "Strekkodehandlinger" +#: src/tables/InvenTreeTable.tsx:655 +#: src/tables/InvenTreeTable.tsx:656 +#~ msgid "Barcode actions" +#~ msgstr "Barcode actions" -#: src/tables/InvenTreeTable.tsx:628 +#: src/tables/InvenTreeTable.tsx:712 +#~ msgid "Table filters" +#~ msgstr "Table filters" + +#: src/tables/InvenTreeTable.tsx:725 +#~ msgid "Clear custom query filters" +#~ msgstr "Clear custom query filters" + +#: src/tables/InvenTreeTableHeader.tsx:98 +msgid "Delete Selected Items" +msgstr "" + +#: src/tables/InvenTreeTableHeader.tsx:102 +msgid "Are you sure you want to delete the selected items?" +msgstr "" + +#: src/tables/InvenTreeTableHeader.tsx:104 +#: src/tables/plugin/PluginListTable.tsx:305 +msgid "This action cannot be undone" +msgstr "" + +#: src/tables/InvenTreeTableHeader.tsx:142 +msgid "Custom table filters are active" +msgstr "" + +#: src/tables/InvenTreeTableHeader.tsx:169 msgid "Delete selected records" msgstr "Slett valgte oppføringer" -#: src/tables/InvenTreeTable.tsx:649 +#: src/tables/InvenTreeTableHeader.tsx:188 msgid "Refresh data" msgstr "Oppdater data" -#: src/tables/InvenTreeTable.tsx:675 -msgid "Table filters" -msgstr "Tabellfiltre" - #: src/tables/TableHoverCard.tsx:35 -msgid "item-{idx}" -msgstr "" +#~ msgid "item-{idx}" +#~ msgstr "item-{idx}" #: src/tables/UploadAction.tsx:7 #~ msgid "Upload Data" @@ -5607,31 +6684,36 @@ msgid "Part Information" msgstr "Delinformasjon" #: src/tables/bom/BomTable.tsx:212 -#: src/tables/build/BuildLineTable.tsx:126 +#: src/tables/build/BuildLineTable.tsx:257 #: src/tables/part/PartTable.tsx:125 msgid "External stock" msgstr "" #: src/tables/bom/BomTable.tsx:220 -#: src/tables/build/BuildLineTable.tsx:89 +#: src/tables/build/BuildLineTable.tsx:220 msgid "Includes substitute stock" msgstr "Inkluderer erstatningsbeholdning" #: src/tables/bom/BomTable.tsx:229 -#: src/tables/build/BuildLineTable.tsx:99 -#: src/tables/sales/SalesOrderLineItemTable.tsx:127 +#: src/tables/build/BuildLineTable.tsx:230 +#: src/tables/sales/SalesOrderLineItemTable.tsx:135 msgid "Includes variant stock" msgstr "Inkluderer variantbeholdning" +#: src/tables/bom/BomTable.tsx:245 +#: src/tables/part/PartTable.tsx:92 +msgid "Building" +msgstr "Produseres" + #: src/tables/bom/BomTable.tsx:254 #: src/tables/part/PartTable.tsx:153 -#: src/tables/sales/SalesOrderLineItemTable.tsx:150 -#: src/tables/stock/StockItemTable.tsx:216 +#: src/tables/sales/SalesOrderLineItemTable.tsx:158 +#: src/tables/stock/StockItemTable.tsx:206 msgid "Stock Information" msgstr "Lagerinformasjon" #: src/tables/bom/BomTable.tsx:285 -#: src/tables/build/BuildLineTable.tsx:248 +#: src/tables/build/BuildLineTable.tsx:409 msgid "Consumable item" msgstr "Forbruksvare" @@ -5644,7 +6726,7 @@ msgstr "" #~ msgstr "Create BOM Item" #: src/tables/bom/BomTable.tsx:306 -#: src/tables/build/BuildLineTable.tsx:69 +#: src/tables/build/BuildLineTable.tsx:200 msgid "Show testable items" msgstr "" @@ -5657,11 +6739,12 @@ msgid "Show trackable items" msgstr "Vis sporbare deler" #: src/tables/bom/BomTable.tsx:316 -#: src/tables/build/BuildLineTable.tsx:64 +#: src/tables/build/BuildLineTable.tsx:195 msgid "Show assembled items" msgstr "" #: src/tables/bom/BomTable.tsx:321 +#: src/tables/build/BuildLineTable.tsx:180 msgid "Show items with available stock" msgstr "Vis elementer med tilgjengelig lagerbeholdning" @@ -5705,7 +6788,7 @@ msgstr "" #: src/tables/bom/BomTable.tsx:345 #: src/tables/bom/UsedInTable.tsx:79 -#: src/tables/build/BuildLineTable.tsx:58 +#: src/tables/build/BuildLineTable.tsx:189 msgid "Optional" msgstr "Valgfritt" @@ -5723,7 +6806,7 @@ msgstr "Vis valgfrie elementer" #~ msgstr "Bom item deleted" #: src/tables/bom/BomTable.tsx:350 -#: src/tables/build/BuildLineTable.tsx:53 +#: src/tables/build/BuildLineTable.tsx:184 msgid "Consumable" msgstr "Forbruksvare" @@ -5749,12 +6832,12 @@ msgid "Show items with pricing" msgstr "Vis varer med priser" #: src/tables/bom/BomTable.tsx:378 -#: src/tables/bom/BomTable.tsx:511 +#: src/tables/bom/BomTable.tsx:512 msgid "Import BOM Data" msgstr "" #: src/tables/bom/BomTable.tsx:388 -#: src/tables/bom/BomTable.tsx:523 +#: src/tables/bom/BomTable.tsx:526 msgid "Add BOM Item" msgstr "" @@ -5780,7 +6863,7 @@ msgstr "" #: src/tables/bom/BomTable.tsx:423 #: src/tables/bom/BomTable.tsx:426 -#: src/tables/bom/BomTable.tsx:517 +#: src/tables/bom/BomTable.tsx:519 msgid "Validate BOM" msgstr "" @@ -5812,21 +6895,15 @@ msgstr "" msgid "Edit Substitutes" msgstr "Rediger erstatninger" -#: src/tables/bom/BomTable.tsx:539 -#: src/tables/part/PartParameterTable.tsx:193 -#: src/tables/part/PartTestTemplateTable.tsx:252 -msgid "Part is Locked" -msgstr "" - -#: src/tables/bom/BomTable.tsx:544 +#: src/tables/bom/BomTable.tsx:547 msgid "Bill of materials cannot be edited, as the part is locked" msgstr "" #: src/tables/bom/UsedInTable.tsx:33 -#: src/tables/build/BuildLineTable.tsx:63 +#: src/tables/build/BuildLineTable.tsx:194 #: src/tables/part/ParametricPartTable.tsx:233 #: src/tables/part/PartTable.tsx:190 -#: src/tables/stock/StockItemTable.tsx:300 +#: src/tables/stock/StockItemTable.tsx:304 msgid "Assembly" msgstr "Sammenstilling" @@ -5844,285 +6921,347 @@ msgstr "Sporbar" msgid "Show trackable assemblies" msgstr "Vis sporbare sammenstillinger" -#: src/tables/build/BuildAllocatedStockTable.tsx:54 +#: src/tables/build/BuildAllocatedStockTable.tsx:56 msgid "Allocated to Output" msgstr "" -#: src/tables/build/BuildAllocatedStockTable.tsx:55 +#: src/tables/build/BuildAllocatedStockTable.tsx:57 msgid "Show items allocated to a build output" msgstr "" -#: src/tables/build/BuildAllocatedStockTable.tsx:76 -#: src/tables/part/PartPurchaseOrdersTable.tsx:125 -#: src/tables/sales/SalesOrderAllocationTable.tsx:62 +#: src/tables/build/BuildAllocatedStockTable.tsx:65 +#: src/tables/build/BuildOrderTable.tsx:159 +#: src/tables/part/PartParameterTable.tsx:212 +#: src/tables/part/PartPurchaseOrdersTable.tsx:138 +#: src/tables/sales/ReturnOrderTable.tsx:84 +#: src/tables/sales/SalesOrderAllocationTable.tsx:68 +#: src/tables/sales/SalesOrderTable.tsx:84 +#: src/tables/stock/StockItemTable.tsx:339 +msgid "Include Variants" +msgstr "Inkluder varianter" + +#: src/tables/build/BuildAllocatedStockTable.tsx:66 +#: src/tables/build/BuildOrderTable.tsx:160 +#: src/tables/part/PartPurchaseOrdersTable.tsx:139 +#: src/tables/sales/ReturnOrderTable.tsx:85 +#: src/tables/sales/SalesOrderAllocationTable.tsx:69 +#: src/tables/sales/SalesOrderTable.tsx:85 +msgid "Include orders for part variants" +msgstr "" + +#: src/tables/build/BuildAllocatedStockTable.tsx:89 +#: src/tables/part/PartPurchaseOrdersTable.tsx:131 +#: src/tables/sales/SalesOrderAllocationTable.tsx:93 msgid "Order Status" msgstr "" -#: src/tables/build/BuildAllocatedStockTable.tsx:96 -#: src/tables/sales/SalesOrderAllocationTable.tsx:75 +#: src/tables/build/BuildAllocatedStockTable.tsx:117 +#: src/tables/sales/SalesOrderAllocationTable.tsx:126 msgid "Allocated Quantity" msgstr "" -#: src/tables/build/BuildAllocatedStockTable.tsx:116 -#: src/tables/sales/SalesOrderAllocationTable.tsx:94 +#: src/tables/build/BuildAllocatedStockTable.tsx:137 +#: src/tables/sales/SalesOrderAllocationTable.tsx:120 msgid "Available Quantity" msgstr "" -#: src/tables/build/BuildAllocatedStockTable.tsx:126 -#: src/tables/build/BuildOrderTestTable.tsx:176 -#: src/tables/build/BuildOrderTestTable.tsx:200 -#: src/tables/build/BuildOutputTable.tsx:312 -msgid "Build Output" +#: src/tables/build/BuildAllocatedStockTable.tsx:164 +#: src/tables/build/BuildLineTable.tsx:513 +msgid "Edit Stock Allocation" msgstr "" -#: src/tables/build/BuildAllocatedStockTable.tsx:143 -msgid "Edit Build Item" -msgstr "" +#: src/tables/build/BuildAllocatedStockTable.tsx:164 +#~ msgid "Edit Build Item" +#~ msgstr "Edit Build Item" -#: src/tables/build/BuildAllocatedStockTable.tsx:153 -msgid "Delete Build Item" -msgstr "" +#: src/tables/build/BuildAllocatedStockTable.tsx:174 +#~ msgid "Delete Build Item" +#~ msgstr "Delete Build Item" -#: src/tables/build/BuildLineTable.tsx:43 -#: src/tables/stock/StockItemTable.tsx:305 -msgid "Allocated" -msgstr "Tildelt" - -#: src/tables/build/BuildLineTable.tsx:44 -msgid "Show allocated lines" -msgstr "" - -#: src/tables/build/BuildLineTable.tsx:49 -msgid "Show lines with available stock" -msgstr "" - -#: src/tables/build/BuildLineTable.tsx:54 -msgid "Show consumable lines" +#: src/tables/build/BuildAllocatedStockTable.tsx:177 +#: src/tables/build/BuildLineTable.tsx:526 +msgid "Delete Stock Allocation" msgstr "" #: src/tables/build/BuildLineTable.tsx:59 +#~ msgid "Show lines with available stock" +#~ msgstr "Show lines with available stock" + +#: src/tables/build/BuildLineTable.tsx:175 +msgid "Show allocated lines" +msgstr "" + +#: src/tables/build/BuildLineTable.tsx:185 +msgid "Show consumable lines" +msgstr "" + +#: src/tables/build/BuildLineTable.tsx:190 msgid "Show optional lines" msgstr "" -#: src/tables/build/BuildLineTable.tsx:68 +#: src/tables/build/BuildLineTable.tsx:199 #: src/tables/part/PartTable.tsx:208 msgid "Testable" msgstr "" -#: src/tables/build/BuildLineTable.tsx:73 -#: src/tables/stock/StockItemTable.tsx:364 +#: src/tables/build/BuildLineTable.tsx:204 +#: src/tables/stock/StockItemTable.tsx:368 msgid "Tracked" msgstr "Spores" -#: src/tables/build/BuildLineTable.tsx:74 +#: src/tables/build/BuildLineTable.tsx:205 msgid "Show tracked lines" msgstr "" -#: src/tables/build/BuildLineTable.tsx:108 -#: src/tables/sales/SalesOrderLineItemTable.tsx:133 +#: src/tables/build/BuildLineTable.tsx:239 +#: src/tables/sales/SalesOrderLineItemTable.tsx:141 msgid "In production" msgstr "" -#: src/tables/build/BuildLineTable.tsx:136 +#: src/tables/build/BuildLineTable.tsx:267 msgid "Insufficient stock" msgstr "" -#: src/tables/build/BuildLineTable.tsx:152 -#: src/tables/sales/SalesOrderLineItemTable.tsx:121 -#: src/tables/stock/StockItemTable.tsx:186 +#: src/tables/build/BuildLineTable.tsx:283 +#: src/tables/sales/SalesOrderLineItemTable.tsx:129 +#: src/tables/stock/StockItemTable.tsx:175 msgid "No stock available" msgstr "Ingen lagerbeholdning tilgjengelig" -#: src/tables/build/BuildLineTable.tsx:201 +#: src/tables/build/BuildLineTable.tsx:355 msgid "Gets Inherited" msgstr "" -#: src/tables/build/BuildLineTable.tsx:210 +#: src/tables/build/BuildLineTable.tsx:366 msgid "Unit Quantity" msgstr "" -#: src/tables/build/BuildLineTable.tsx:267 -#: src/tables/sales/SalesOrderLineItemTable.tsx:230 +#: src/tables/build/BuildLineTable.tsx:381 +msgid "Required Quantity" +msgstr "" + +#: src/tables/build/BuildLineTable.tsx:432 +#: src/tables/sales/SalesOrderLineItemTable.tsx:254 msgid "Create Build Order" msgstr "" -#: src/tables/build/BuildLineTable.tsx:298 -msgid "Allocate Stock" -msgstr "Tildel lagerbeholdning" +#: src/tables/build/BuildLineTable.tsx:460 +msgid "Auto allocation in progress" +msgstr "" -#: src/tables/build/BuildLineTable.tsx:305 +#: src/tables/build/BuildLineTable.tsx:463 +#: src/tables/build/BuildLineTable.tsx:632 +msgid "Auto Allocate Stock" +msgstr "" + +#: src/tables/build/BuildLineTable.tsx:464 +msgid "Automatically allocate stock to this build according to the selected options" +msgstr "" + +#: src/tables/build/BuildLineTable.tsx:482 +#: src/tables/build/BuildLineTable.tsx:496 +#: src/tables/build/BuildLineTable.tsx:579 +#: src/tables/build/BuildLineTable.tsx:664 +#: src/tables/build/BuildOutputTable.tsx:314 +#: src/tables/build/BuildOutputTable.tsx:319 +msgid "Deallocate Stock" +msgstr "" + +#: src/tables/build/BuildLineTable.tsx:498 +msgid "Deallocate all untracked stock for this build order" +msgstr "" + +#: src/tables/build/BuildLineTable.tsx:500 +msgid "Deallocate stock from the selected line item" +msgstr "" + +#: src/tables/build/BuildLineTable.tsx:504 +msgid "Stock has been deallocated" +msgstr "" + +#: src/tables/build/BuildLineTable.tsx:589 msgid "Order Stock" msgstr "" -#: src/tables/build/BuildLineTable.tsx:312 +#: src/tables/build/BuildLineTable.tsx:596 msgid "Build Stock" msgstr "" -#: src/tables/build/BuildOrderTable.tsx:111 -msgid "Show active orders" -msgstr "Vis aktive ordrer" +#: src/tables/build/BuildLineTable.tsx:610 +msgid "View Part" +msgstr "" #: src/tables/build/BuildOrderTable.tsx:116 -msgid "Cascade" -msgstr "" +#~ msgid "Cascade" +#~ msgstr "Cascade" #: src/tables/build/BuildOrderTable.tsx:117 -msgid "Display recursive child orders" -msgstr "" +#~ msgid "Display recursive child orders" +#~ msgstr "Display recursive child orders" -#: src/tables/build/BuildOrderTable.tsx:123 -#: src/tables/part/PartPurchaseOrdersTable.tsx:126 -#: src/tables/purchasing/PurchaseOrderTable.tsx:56 -#: src/tables/sales/ReturnOrderTable.tsx:47 -#: src/tables/sales/SalesOrderTable.tsx:54 +#: src/tables/build/BuildOrderTable.tsx:121 +msgid "Show outstanding orders" +msgstr "Vis utestående ordre" + +#: src/tables/build/BuildOrderTable.tsx:121 +#~ msgid "Show active orders" +#~ msgstr "Show active orders" + +#: src/tables/build/BuildOrderTable.tsx:122 +#~ msgid "Show overdue status" +#~ msgstr "Show overdue status" + +#: src/tables/build/BuildOrderTable.tsx:126 +#: src/tables/part/PartPurchaseOrdersTable.tsx:132 +#: src/tables/purchasing/PurchaseOrderTable.tsx:59 +#: src/tables/sales/ReturnOrderTable.tsx:57 +#: src/tables/sales/SalesOrderTable.tsx:57 msgid "Filter by order status" msgstr "Filtrer etter ordrestatus" -#: src/tables/build/BuildOrderTable.tsx:130 -msgid "Show overdue status" -msgstr "Vis utløpt status" - -#: src/tables/build/BuildOrderTable.tsx:141 -#: src/tables/purchasing/PurchaseOrderTable.tsx:65 -#: src/tables/sales/ReturnOrderTable.tsx:56 -#: src/tables/sales/SalesOrderTable.tsx:63 +#: src/tables/build/BuildOrderTable.tsx:136 +#: src/tables/purchasing/PurchaseOrderTable.tsx:70 +#: src/tables/sales/ReturnOrderTable.tsx:68 +#: src/tables/sales/SalesOrderTable.tsx:68 msgid "Filter by project code" msgstr "" -#: src/tables/build/BuildOrderTable.tsx:146 -#: src/tables/purchasing/PurchaseOrderTable.tsx:70 -#: src/tables/sales/ReturnOrderTable.tsx:61 -#: src/tables/sales/SalesOrderTable.tsx:68 -msgid "Has Project Code" -msgstr "" - -#: src/tables/build/BuildOrderTable.tsx:147 +#: src/tables/build/BuildOrderTable.tsx:139 #: src/tables/purchasing/PurchaseOrderTable.tsx:71 #: src/tables/sales/ReturnOrderTable.tsx:62 #: src/tables/sales/SalesOrderTable.tsx:69 -msgid "Filter by whether the purchase order has a project code" -msgstr "" +#~ msgid "Filter by whether the purchase order has a project code" +#~ msgstr "Filter by whether the purchase order has a project code" -#: src/tables/build/BuildOrderTable.tsx:152 +#: src/tables/build/BuildOrderTable.tsx:143 msgid "Filter by user who issued this order" msgstr "" -#: src/tables/build/BuildOrderTable.tsx:158 -#: src/tables/purchasing/PurchaseOrderTable.tsx:76 -#: src/tables/sales/ReturnOrderTable.tsx:67 -#: src/tables/sales/SalesOrderTable.tsx:74 +#: src/tables/build/BuildOrderTable.tsx:149 +#: src/tables/purchasing/PurchaseOrderTable.tsx:77 +#: src/tables/sales/ReturnOrderTable.tsx:75 +#: src/tables/sales/SalesOrderTable.tsx:75 msgid "Filter by responsible owner" msgstr "" -#: src/tables/build/BuildOrderTestTable.tsx:75 -#: src/tables/build/BuildOrderTestTable.tsx:111 -#: src/tables/stock/StockItemTestResultTable.tsx:257 -#: src/tables/stock/StockItemTestResultTable.tsx:329 -#: src/tables/stock/StockItemTestResultTable.tsx:384 +#: src/tables/build/BuildOrderTestTable.tsx:76 +#: src/tables/build/BuildOrderTestTable.tsx:112 +#: src/tables/stock/StockItemTestResultTable.tsx:275 +#: src/tables/stock/StockItemTestResultTable.tsx:347 +#: src/tables/stock/StockItemTestResultTable.tsx:403 msgid "Add Test Result" msgstr "" -#: src/tables/build/BuildOrderTestTable.tsx:82 -#: src/tables/stock/StockItemTestResultTable.tsx:259 +#: src/tables/build/BuildOrderTestTable.tsx:83 +#: src/tables/stock/StockItemTestResultTable.tsx:277 msgid "Test result added" msgstr "" -#: src/tables/build/BuildOrderTestTable.tsx:110 -#: src/tables/stock/StockItemTestResultTable.tsx:174 +#: src/tables/build/BuildOrderTestTable.tsx:111 +#: src/tables/stock/StockItemTestResultTable.tsx:180 msgid "No Result" msgstr "" -#: src/tables/build/BuildOrderTestTable.tsx:220 +#: src/tables/build/BuildOrderTestTable.tsx:221 msgid "Show build outputs currently in production" msgstr "" +#: src/tables/build/BuildOutputTable.tsx:76 +msgid "Build Output Stock Allocation" +msgstr "" + #: src/tables/build/BuildOutputTable.tsx:161 #~ msgid "Delete build output" #~ msgstr "Delete build output" -#: src/tables/build/BuildOutputTable.tsx:173 -#: src/tables/build/BuildOutputTable.tsx:211 +#: src/tables/build/BuildOutputTable.tsx:258 +#: src/tables/build/BuildOutputTable.tsx:374 msgid "Add Build Output" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:216 +#: src/tables/build/BuildOutputTable.tsx:304 +#~ msgid "Edit build output" +#~ msgstr "Edit build output" + +#: src/tables/build/BuildOutputTable.tsx:306 +#: src/tables/build/BuildOutputTable.tsx:417 +msgid "Edit Build Output" +msgstr "" + +#: src/tables/build/BuildOutputTable.tsx:321 +msgid "This action will deallocate all stock from the selected build output" +msgstr "" + +#: src/tables/build/BuildOutputTable.tsx:341 msgid "Complete selected outputs" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:226 +#: src/tables/build/BuildOutputTable.tsx:352 msgid "Scrap selected outputs" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:236 +#: src/tables/build/BuildOutputTable.tsx:363 msgid "Cancel selected outputs" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:252 +#: src/tables/build/BuildOutputTable.tsx:385 msgid "Allocate" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:253 +#: src/tables/build/BuildOutputTable.tsx:386 msgid "Allocate stock to build output" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:259 +#: src/tables/build/BuildOutputTable.tsx:396 msgid "Deallocate" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:260 +#: src/tables/build/BuildOutputTable.tsx:397 msgid "Deallocate stock from build output" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:267 +#: src/tables/build/BuildOutputTable.tsx:408 msgid "Complete build output" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:276 +#: src/tables/build/BuildOutputTable.tsx:424 msgid "Scrap" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:277 +#: src/tables/build/BuildOutputTable.tsx:425 msgid "Scrap build output" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:280 -#~ msgid "Allocated Items" -#~ msgstr "Allocated Items" - -#: src/tables/build/BuildOutputTable.tsx:287 +#: src/tables/build/BuildOutputTable.tsx:435 msgid "Cancel build output" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:325 -msgid "Batch" -msgstr "" - -#: src/tables/build/BuildOutputTable.tsx:340 +#: src/tables/build/BuildOutputTable.tsx:488 msgid "Allocated Lines" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:355 +#: src/tables/build/BuildOutputTable.tsx:503 msgid "Required Tests" msgstr "" -#: src/tables/company/AddressTable.tsx:121 -#: src/tables/company/AddressTable.tsx:185 +#: src/tables/company/AddressTable.tsx:118 +#: src/tables/company/AddressTable.tsx:183 msgid "Add Address" msgstr "Legg til adresse" -#: src/tables/company/AddressTable.tsx:126 +#: src/tables/company/AddressTable.tsx:123 msgid "Address created" msgstr "Adresse opprettet" -#: src/tables/company/AddressTable.tsx:135 +#: src/tables/company/AddressTable.tsx:132 msgid "Edit Address" msgstr "Rediger adresse" -#: src/tables/company/AddressTable.tsx:143 +#: src/tables/company/AddressTable.tsx:140 msgid "Delete Address" msgstr "Slett adresse" -#: src/tables/company/AddressTable.tsx:144 +#: src/tables/company/AddressTable.tsx:141 msgid "Are you sure you want to delete this address?" msgstr "Er du sikker på at du vil slette denne adressen?" @@ -6130,24 +7269,24 @@ msgstr "Er du sikker på at du vil slette denne adressen?" #~ msgid "New Company" #~ msgstr "New Company" -#: src/tables/company/CompanyTable.tsx:74 -#: src/tables/company/CompanyTable.tsx:123 +#: src/tables/company/CompanyTable.tsx:75 +#: src/tables/company/CompanyTable.tsx:125 msgid "Add Company" msgstr "" -#: src/tables/company/CompanyTable.tsx:96 +#: src/tables/company/CompanyTable.tsx:97 msgid "Show active companies" msgstr "" -#: src/tables/company/CompanyTable.tsx:101 +#: src/tables/company/CompanyTable.tsx:102 msgid "Show companies which are suppliers" msgstr "" -#: src/tables/company/CompanyTable.tsx:106 +#: src/tables/company/CompanyTable.tsx:107 msgid "Show companies which are manufacturers" msgstr "" -#: src/tables/company/CompanyTable.tsx:111 +#: src/tables/company/CompanyTable.tsx:112 msgid "Show companies which are customers" msgstr "" @@ -6163,96 +7302,99 @@ msgstr "" msgid "Delete Contact" msgstr "Slett kontakt" -#: src/tables/company/ContactTable.tsx:129 +#: src/tables/company/ContactTable.tsx:130 msgid "Add contact" msgstr "Legg til kontakt" -#: src/tables/general/AttachmentTable.tsx:130 +#: src/tables/general/AttachmentTable.tsx:135 msgid "File uploaded" msgstr "Fil lastet opp" -#: src/tables/general/AttachmentTable.tsx:131 +#: src/tables/general/AttachmentTable.tsx:136 msgid "File {0} uploaded successfully" msgstr "Filen {0} ble vellykket opplastet" -#: src/tables/general/AttachmentTable.tsx:142 +#: src/tables/general/AttachmentTable.tsx:147 msgid "Upload Error" msgstr "Opplastningsfeil" -#: src/tables/general/AttachmentTable.tsx:143 +#: src/tables/general/AttachmentTable.tsx:148 msgid "File could not be uploaded" msgstr "Kunne ikke laste opp filen" -#: src/tables/general/AttachmentTable.tsx:191 +#: src/tables/general/AttachmentTable.tsx:196 msgid "Upload Attachment" msgstr "" -#: src/tables/general/AttachmentTable.tsx:201 +#: src/tables/general/AttachmentTable.tsx:206 msgid "Edit Attachment" msgstr "" -#: src/tables/general/AttachmentTable.tsx:215 +#: src/tables/general/AttachmentTable.tsx:220 msgid "Delete Attachment" msgstr "Slett vedlegg" -#: src/tables/general/AttachmentTable.tsx:225 +#: src/tables/general/AttachmentTable.tsx:230 msgid "Is Link" msgstr "" -#: src/tables/general/AttachmentTable.tsx:226 +#: src/tables/general/AttachmentTable.tsx:231 msgid "Show link attachments" msgstr "" -#: src/tables/general/AttachmentTable.tsx:230 +#: src/tables/general/AttachmentTable.tsx:235 msgid "Is File" msgstr "" -#: src/tables/general/AttachmentTable.tsx:231 +#: src/tables/general/AttachmentTable.tsx:236 msgid "Show file attachments" msgstr "" -#: src/tables/general/AttachmentTable.tsx:240 +#: src/tables/general/AttachmentTable.tsx:245 msgid "Add attachment" msgstr "Legg til vedlegg" -#: src/tables/general/AttachmentTable.tsx:251 -msgid "Add external link" -msgstr "Ny ekstern lenke" - #: src/tables/general/AttachmentTable.tsx:254 #~ msgid "Upload attachment" #~ msgstr "Upload attachment" -#: src/tables/general/AttachmentTable.tsx:299 +#: src/tables/general/AttachmentTable.tsx:256 +msgid "Add external link" +msgstr "Ny ekstern lenke" + +#: src/tables/general/AttachmentTable.tsx:304 msgid "No attachments found" msgstr "Ingen vedlegg funnet" -#: src/tables/general/AttachmentTable.tsx:337 +#: src/tables/general/AttachmentTable.tsx:343 msgid "Drag attachment file here to upload" msgstr "" #: src/tables/general/ExtraLineItemTable.tsx:86 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:251 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:60 -#: src/tables/sales/SalesOrderLineItemTable.tsx:196 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:263 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:362 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:72 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:168 +#: src/tables/sales/SalesOrderLineItemTable.tsx:206 +#: src/tables/sales/SalesOrderLineItemTable.tsx:291 msgid "Add Line Item" msgstr "Legg til ordrelinje" #: src/tables/general/ExtraLineItemTable.tsx:98 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:271 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:72 -#: src/tables/sales/SalesOrderLineItemTable.tsx:214 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:283 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:84 +#: src/tables/sales/SalesOrderLineItemTable.tsx:224 msgid "Edit Line Item" msgstr "Rediger ordrelinje" #: src/tables/general/ExtraLineItemTable.tsx:106 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:279 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:80 -#: src/tables/sales/SalesOrderLineItemTable.tsx:222 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:291 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:92 +#: src/tables/sales/SalesOrderLineItemTable.tsx:232 msgid "Delete Line Item" msgstr "" -#: src/tables/general/ExtraLineItemTable.tsx:142 +#: src/tables/general/ExtraLineItemTable.tsx:143 msgid "Add Extra Line Item" msgstr "" @@ -6261,12 +7403,12 @@ msgid "Machine restarted" msgstr "" #: src/tables/machine/MachineListTable.tsx:212 -#: src/tables/machine/MachineListTable.tsx:263 +#: src/tables/machine/MachineListTable.tsx:261 msgid "Edit machine" msgstr "" #: src/tables/machine/MachineListTable.tsx:226 -#: src/tables/machine/MachineListTable.tsx:267 +#: src/tables/machine/MachineListTable.tsx:265 msgid "Delete machine" msgstr "" @@ -6278,51 +7420,50 @@ msgstr "" msgid "Are you sure you want to remove the machine \"{0}\"?" msgstr "" -#: src/tables/machine/MachineListTable.tsx:255 -#: src/tables/machine/MachineListTable.tsx:432 +#: src/tables/machine/MachineListTable.tsx:254 +#: src/tables/machine/MachineListTable.tsx:442 msgid "Restart required" msgstr "" -#: src/tables/machine/MachineListTable.tsx:259 +#: src/tables/machine/MachineListTable.tsx:258 msgid "Machine Actions" msgstr "" -#: src/tables/machine/MachineListTable.tsx:272 +#: src/tables/machine/MachineListTable.tsx:270 msgid "Restart" msgstr "" -#: src/tables/machine/MachineListTable.tsx:274 +#: src/tables/machine/MachineListTable.tsx:272 msgid "Restart machine" msgstr "" -#: src/tables/machine/MachineListTable.tsx:276 +#: src/tables/machine/MachineListTable.tsx:274 msgid "manual restart required" msgstr "" +#: src/tables/machine/MachineListTable.tsx:291 +#~ msgid "Machine information" +#~ msgstr "Machine information" + #: src/tables/machine/MachineListTable.tsx:292 -msgid "Machine information" +msgid "Machine Information" msgstr "" -#: src/tables/machine/MachineListTable.tsx:303 -#: src/tables/machine/MachineListTable.tsx:599 +#: src/tables/machine/MachineListTable.tsx:302 +#: src/tables/machine/MachineListTable.tsx:610 msgid "Machine Type" msgstr "" -#: src/tables/machine/MachineListTable.tsx:316 +#: src/tables/machine/MachineListTable.tsx:315 msgid "Machine Driver" msgstr "" -#: src/tables/machine/MachineListTable.tsx:329 +#: src/tables/machine/MachineListTable.tsx:330 msgid "Initialized" msgstr "" -#: src/tables/machine/MachineListTable.tsx:350 -#: src/tables/machine/MachineTypeTable.tsx:261 -msgid "Errors" -msgstr "" - -#: src/tables/machine/MachineListTable.tsx:358 -#: src/tables/machine/MachineTypeTable.tsx:269 +#: src/tables/machine/MachineListTable.tsx:359 +#: src/tables/machine/MachineTypeTable.tsx:290 msgid "No errors reported" msgstr "" @@ -6330,7 +7471,7 @@ msgstr "" msgid "Machine Settings" msgstr "" -#: src/tables/machine/MachineListTable.tsx:389 +#: src/tables/machine/MachineListTable.tsx:394 msgid "Driver Settings" msgstr "" @@ -6338,86 +7479,109 @@ msgstr "" #~ msgid "Create machine" #~ msgstr "Create machine" -#: src/tables/machine/MachineListTable.tsx:506 +#: src/tables/machine/MachineListTable.tsx:516 +#: src/tables/machine/MachineListTable.tsx:558 msgid "Add machine" msgstr "" #: src/tables/machine/MachineListTable.tsx:561 -msgid "Machine detail" +#~ msgid "Machine detail" +#~ msgstr "Machine detail" + +#: src/tables/machine/MachineListTable.tsx:572 +msgid "Machine Detail" msgstr "" -#: src/tables/machine/MachineListTable.tsx:608 +#: src/tables/machine/MachineListTable.tsx:619 msgid "Driver" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:73 +#: src/tables/machine/MachineTypeTable.tsx:78 msgid "Builtin driver" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:89 +#: src/tables/machine/MachineTypeTable.tsx:96 +msgid "Not Found" +msgstr "" + +#: src/tables/machine/MachineTypeTable.tsx:99 msgid "Machine type not found." msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:97 -msgid "Machine type information" +#: src/tables/machine/MachineTypeTable.tsx:99 +#~ msgid "Machine type information" +#~ msgstr "Machine type information" + +#: src/tables/machine/MachineTypeTable.tsx:109 +msgid "Machine Type Information" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:110 -#: src/tables/machine/MachineTypeTable.tsx:217 +#: src/tables/machine/MachineTypeTable.tsx:124 +#: src/tables/machine/MachineTypeTable.tsx:238 msgid "Slug" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:118 -#: src/tables/machine/MachineTypeTable.tsx:238 +#: src/tables/machine/MachineTypeTable.tsx:135 +#: src/tables/machine/MachineTypeTable.tsx:259 msgid "Provider plugin" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:130 -#: src/tables/machine/MachineTypeTable.tsx:250 +#: src/tables/machine/MachineTypeTable.tsx:147 +#: src/tables/machine/MachineTypeTable.tsx:271 msgid "Provider file" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:135 -#: src/tables/machine/MachineTypeTable.tsx:255 -#: src/tables/plugin/PluginListTable.tsx:180 -#: src/tables/plugin/PluginListTable.tsx:568 -msgid "Builtin" -msgstr "Innebygd" +#: src/tables/machine/MachineTypeTable.tsx:148 +#~ msgid "Available drivers" +#~ msgstr "Available drivers" -#: src/tables/machine/MachineTypeTable.tsx:146 -msgid "Available drivers" +#: src/tables/machine/MachineTypeTable.tsx:162 +msgid "Available Drivers" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:196 +#: src/tables/machine/MachineTypeTable.tsx:217 msgid "Machine driver not found." msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:204 +#: src/tables/machine/MachineTypeTable.tsx:225 msgid "Machine driver information" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:224 +#: src/tables/machine/MachineTypeTable.tsx:245 msgid "Machine type" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:327 +#: src/tables/machine/MachineTypeTable.tsx:338 +#~ msgid "Machine type detail" +#~ msgstr "Machine type detail" + +#: src/tables/machine/MachineTypeTable.tsx:348 msgid "Builtin type" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:336 -msgid "Machine type detail" +#: src/tables/machine/MachineTypeTable.tsx:348 +#~ msgid "Machine driver detail" +#~ msgstr "Machine driver detail" + +#: src/tables/machine/MachineTypeTable.tsx:357 +msgid "Machine Type Detail" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:346 -msgid "Machine driver detail" +#: src/tables/machine/MachineTypeTable.tsx:367 +msgid "Machine Driver Detail" msgstr "" #: src/tables/notifications/NotificationsTable.tsx:26 msgid "Age" msgstr "Alder" +#: src/tables/notifications/NotificationsTable.tsx:36 +msgid "Notification" +msgstr "Varsel" + #: src/tables/notifications/NotificationsTable.tsx:40 #: src/tables/plugin/PluginErrorTable.tsx:37 +#: src/tables/settings/ErrorTable.tsx:50 msgid "Message" msgstr "Melding" @@ -6451,33 +7615,32 @@ msgstr "" msgid "Show assembly parts" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:68 +#: src/tables/part/PartCategoryTable.tsx:48 +msgid "You are subscribed to notifications for this category" +msgstr "" + +#: src/tables/part/PartCategoryTable.tsx:80 #: src/tables/part/PartTable.tsx:196 msgid "Include Subcategories" msgstr "Inkluder underkategorier" -#: src/tables/part/PartCategoryTable.tsx:69 +#: src/tables/part/PartCategoryTable.tsx:81 msgid "Include subcategories in results" msgstr "Inkluder underkategorier i resultatene" -#: src/tables/part/PartCategoryTable.tsx:74 +#: src/tables/part/PartCategoryTable.tsx:86 msgid "Show structural categories" msgstr "Vis strukturelle kategorier" -#: src/tables/part/PartCategoryTable.tsx:78 -#: src/tables/part/PartTable.tsx:294 -msgid "Subscribed" -msgstr "" - -#: src/tables/part/PartCategoryTable.tsx:79 +#: src/tables/part/PartCategoryTable.tsx:91 msgid "Show categories to which the user is subscribed" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:86 +#: src/tables/part/PartCategoryTable.tsx:100 msgid "New Part Category" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:112 +#: src/tables/part/PartCategoryTable.tsx:129 msgid "Add Part Category" msgstr "" @@ -6523,11 +7686,6 @@ msgstr "Legg til parameter" msgid "Part parameters cannot be edited, as the part is locked" msgstr "" -#: src/tables/part/PartParameterTable.tsx:212 -#: src/tables/stock/StockItemTable.tsx:335 -msgid "Include Variants" -msgstr "Inkluder varianter" - #: src/tables/part/PartParameterTemplateTable.tsx:31 msgid "Checkbox" msgstr "Sjekkboks" @@ -6554,6 +7712,7 @@ msgid "Show templates with units" msgstr "Vis maler med enheter" #: src/tables/part/PartParameterTemplateTable.tsx:85 +#: src/tables/part/PartParameterTemplateTable.tsx:141 msgid "Add Parameter Template" msgstr "" @@ -6566,23 +7725,19 @@ msgid "Delete Parameter Template" msgstr "Slett parametermal" #: src/tables/part/PartParameterTemplateTable.tsx:141 -msgid "Add parameter template" -msgstr "Legg til parametermal" +#~ msgid "Add parameter template" +#~ msgstr "Add parameter template" -#: src/tables/part/PartPurchaseOrdersTable.tsx:77 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:162 +#: src/tables/part/PartPurchaseOrdersTable.tsx:78 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:168 msgid "Total Quantity" msgstr "Totalt Antall" -#: src/tables/part/PartPurchaseOrdersTable.tsx:115 -msgid "Pending" -msgstr "" - -#: src/tables/part/PartPurchaseOrdersTable.tsx:116 +#: src/tables/part/PartPurchaseOrdersTable.tsx:122 msgid "Show pending orders" msgstr "" -#: src/tables/part/PartPurchaseOrdersTable.tsx:121 +#: src/tables/part/PartPurchaseOrdersTable.tsx:127 msgid "Show received items" msgstr "" @@ -6728,22 +7883,13 @@ msgstr "" msgid "Results" msgstr "" -#: src/tables/part/PartTestTemplateTable.tsx:76 -msgid "No Results" -msgstr "" - -#: src/tables/part/PartTestTemplateTable.tsx:106 -#: src/tables/stock/StockItemTestResultTable.tsx:365 -msgid "Required" -msgstr "" - #: src/tables/part/PartTestTemplateTable.tsx:107 msgid "Show required tests" msgstr "" #: src/tables/part/PartTestTemplateTable.tsx:111 -#: src/tables/settings/TemplateTable.tsx:167 -#: src/tables/settings/TemplateTable.tsx:283 +#: src/tables/settings/TemplateTable.tsx:247 +#: src/tables/settings/TemplateTable.tsx:363 msgid "Enabled" msgstr "" @@ -6784,7 +7930,7 @@ msgid "Show tests which have recorded results" msgstr "" #: src/tables/part/PartTestTemplateTable.tsx:154 -#: src/tables/part/PartTestTemplateTable.tsx:237 +#: src/tables/part/PartTestTemplateTable.tsx:238 msgid "Add Test Template" msgstr "" @@ -6808,7 +7954,7 @@ msgstr "" msgid "View Parent Part" msgstr "" -#: src/tables/part/PartTestTemplateTable.tsx:257 +#: src/tables/part/PartTestTemplateTable.tsx:258 msgid "Part templates cannot be edited, as the part is locked" msgstr "" @@ -6836,41 +7982,58 @@ msgstr "Vis virtuelle varianter" msgid "Show trackable variants" msgstr "Vis sporbare varianter" -#: src/tables/part/RelatedPartTable.tsx:84 +#: src/tables/part/RelatedPartTable.tsx:86 +#: src/tables/part/RelatedPartTable.tsx:109 msgid "Add Related Part" msgstr "Legg til relatert del" -#: src/tables/part/RelatedPartTable.tsx:99 +#: src/tables/part/RelatedPartTable.tsx:101 msgid "Delete Related Part" msgstr "Slett relatert del" -#: src/tables/part/RelatedPartTable.tsx:106 -msgid "Add related part" -msgstr "Legg til relatert del" +#: src/tables/part/RelatedPartTable.tsx:109 +#~ msgid "Add related part" +#~ msgstr "Add related part" #: src/tables/plugin/PluginErrorTable.tsx:29 msgid "Stage" msgstr "Stadium" +#: src/tables/plugin/PluginListTable.tsx:42 +msgid "Plugin is active" +msgstr "Utvidelsen er aktiv" + +#: src/tables/plugin/PluginListTable.tsx:48 +msgid "Plugin is inactive" +msgstr "Utvidelsen er inaktiv" + +#: src/tables/plugin/PluginListTable.tsx:55 +msgid "Plugin is not installed" +msgstr "Utvidelsen er ikke installert" + +#: src/tables/plugin/PluginListTable.tsx:76 +msgid "Plugin" +msgstr "Utvidelse" + #: src/tables/plugin/PluginListTable.tsx:95 -msgid "Plugin with key {pluginKey} not found" -msgstr "" +#~ msgid "Plugin with key {pluginKey} not found" +#~ msgstr "Plugin with key {pluginKey} not found" #: src/tables/plugin/PluginListTable.tsx:97 -msgid "An error occurred while fetching plugin details" -msgstr "Det oppstod en feil under henting av utvidelsesdetaljer" +#~ msgid "An error occurred while fetching plugin details" +#~ msgstr "An error occurred while fetching plugin details" + +#: src/tables/plugin/PluginListTable.tsx:109 +msgid "Description not available" +msgstr "Beskrivelse ikke tilgjengelig" #: src/tables/plugin/PluginListTable.tsx:113 #~ msgid "Plugin with id {id} not found" #~ msgstr "Plugin with id {id} not found" #: src/tables/plugin/PluginListTable.tsx:122 -msgid "Plugin information" -msgstr "Informasjon om utvidelse" - -#: src/tables/plugin/PluginListTable.tsx:134 -msgid "Author" -msgstr "Forfatter" +#~ msgid "Plugin information" +#~ msgstr "Plugin information" #: src/tables/plugin/PluginListTable.tsx:134 #~ msgid "Plugin Actions" @@ -6881,79 +8044,124 @@ msgstr "Forfatter" #~ msgid "Edit plugin" #~ msgstr "Edit plugin" +#: src/tables/plugin/PluginListTable.tsx:144 +msgid "Confirm plugin activation" +msgstr "Bekreft aktivering av utvidelse" + +#: src/tables/plugin/PluginListTable.tsx:145 +msgid "Confirm plugin deactivation" +msgstr "Bekreft deaktivering av utvidelse" + +#: src/tables/plugin/PluginListTable.tsx:150 +msgid "The selected plugin will be activated" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:151 +msgid "The selected plugin will be deactivated" +msgstr "" + #: src/tables/plugin/PluginListTable.tsx:152 #: src/tables/plugin/PluginListTable.tsx:153 #~ msgid "Reload" #~ msgstr "Reload" -#: src/tables/plugin/PluginListTable.tsx:154 -msgid "Plugin is not active" -msgstr "" - #: src/tables/plugin/PluginListTable.tsx:163 -msgid "Package information" -msgstr "Informasjon om pakken" +#~ msgid "Package information" +#~ msgstr "Package information" #: src/tables/plugin/PluginListTable.tsx:169 -msgid "Package Name" +msgid "Deactivate" +msgstr "Deaktiver" + +#: src/tables/plugin/PluginListTable.tsx:183 +msgid "Activate" +msgstr "Aktivér" + +#: src/tables/plugin/PluginListTable.tsx:184 +msgid "Activate selected plugin" msgstr "" -#: src/tables/plugin/PluginListTable.tsx:175 -msgid "Installation Path" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:185 -msgid "Package" +#: src/tables/plugin/PluginListTable.tsx:196 +msgid "Update selected plugin" msgstr "" #: src/tables/plugin/PluginListTable.tsx:197 -msgid "Plugin settings" -msgstr "Innstillinger for Utvidelser" +#~ msgid "Plugin settings" +#~ msgstr "Plugin settings" #: src/tables/plugin/PluginListTable.tsx:214 -msgid "Plugin is active" -msgstr "Utvidelsen er aktiv" - -#: src/tables/plugin/PluginListTable.tsx:220 -msgid "Plugin is inactive" -msgstr "Utvidelsen er inaktiv" - -#: src/tables/plugin/PluginListTable.tsx:227 -msgid "Plugin is not installed" -msgstr "Utvidelsen er ikke installert" - -#: src/tables/plugin/PluginListTable.tsx:253 -msgid "Plugin" -msgstr "Utvidelse" - -#: src/tables/plugin/PluginListTable.tsx:287 -msgid "Description not available" -msgstr "Beskrivelse ikke tilgjengelig" - -#: src/tables/plugin/PluginListTable.tsx:319 -msgid "Confirm plugin activation" -msgstr "Bekreft aktivering av utvidelse" - -#: src/tables/plugin/PluginListTable.tsx:320 -msgid "Confirm plugin deactivation" -msgstr "Bekreft deaktivering av utvidelse" - -#: src/tables/plugin/PluginListTable.tsx:325 -msgid "The selected plugin will be activated" +#: src/tables/stock/InstalledItemsTable.tsx:107 +msgid "Uninstall" msgstr "" -#: src/tables/plugin/PluginListTable.tsx:326 -msgid "The selected plugin will be deactivated" +#: src/tables/plugin/PluginListTable.tsx:215 +msgid "Uninstall selected plugin" msgstr "" -#: src/tables/plugin/PluginListTable.tsx:334 +#: src/tables/plugin/PluginListTable.tsx:233 +msgid "Delete selected plugin configuration" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:249 msgid "Activate Plugin" msgstr "Aktivér utvidelse" +#: src/tables/plugin/PluginListTable.tsx:270 +msgid "Install plugin" +msgstr "Installer Utvidelse" + +#: src/tables/plugin/PluginListTable.tsx:283 +msgid "Install" +msgstr "Installer" + +#: src/tables/plugin/PluginListTable.tsx:284 +msgid "Plugin installed successfully" +msgstr "Utvidelse installert" + +#: src/tables/plugin/PluginListTable.tsx:289 +msgid "Uninstall Plugin" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:301 +msgid "Confirm plugin uninstall" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:304 +msgid "The selected plugin will be uninstalled." +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:308 +#~ msgid "This action cannot be undone." +#~ msgstr "This action cannot be undone." + +#: src/tables/plugin/PluginListTable.tsx:309 +msgid "Plugin uninstalled successfully" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:317 +msgid "Delete Plugin" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:318 +msgid "Deleting this plugin configuration will remove all associated settings and data. Are you sure you want to delete this plugin?" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:331 +msgid "Plugins reloaded" +msgstr "Utvidelser lastet inn på nytt" + +#: src/tables/plugin/PluginListTable.tsx:332 +msgid "Plugins were reloaded successfully" +msgstr "Utvidelser ble lastet inn på nytt" + #: src/tables/plugin/PluginListTable.tsx:338 #~ msgid "Deactivate Plugin" #~ msgstr "Deactivate Plugin" +#: src/tables/plugin/PluginListTable.tsx:350 +msgid "Reload Plugins" +msgstr "Last utvidelser på nytt" + #: src/tables/plugin/PluginListTable.tsx:354 #~ msgid "The following plugin will be activated" #~ msgstr "The following plugin will be activated" @@ -6962,17 +8170,17 @@ msgstr "Aktivér utvidelse" #~ msgid "The following plugin will be deactivated" #~ msgstr "The following plugin will be deactivated" -#: src/tables/plugin/PluginListTable.tsx:362 -msgid "Deactivate" -msgstr "Deaktiver" +#: src/tables/plugin/PluginListTable.tsx:357 +msgid "Install Plugin" +msgstr "Installer Utvidelse" #: src/tables/plugin/PluginListTable.tsx:366 #~ msgid "Confirm" #~ msgstr "Confirm" -#: src/tables/plugin/PluginListTable.tsx:373 -msgid "Activate" -msgstr "Aktivér" +#: src/tables/plugin/PluginListTable.tsx:374 +msgid "Plugin Detail" +msgstr "" #: src/tables/plugin/PluginListTable.tsx:376 #~ msgid "Activating plugin" @@ -6998,76 +8206,12 @@ msgstr "Aktivér" #~ msgid "Error updating plugin" #~ msgstr "Error updating plugin" -#: src/tables/plugin/PluginListTable.tsx:406 -msgid "Uninstall" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:438 -msgid "Install plugin" -msgstr "Installer Utvidelse" - -#: src/tables/plugin/PluginListTable.tsx:451 -msgid "Install" -msgstr "Installer" - -#: src/tables/plugin/PluginListTable.tsx:452 -msgid "Plugin installed successfully" -msgstr "Utvidelse installert" - -#: src/tables/plugin/PluginListTable.tsx:457 -msgid "Uninstall Plugin" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:469 -msgid "Confirm plugin uninstall" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:472 -msgid "The selected plugin will be uninstalled." -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:473 -msgid "This action cannot be undone." -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:477 -msgid "Plugin uninstalled successfully" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:484 -msgid "Delete Plugin" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:485 -msgid "Deleting this plugin configuration will remove all associated settings and data. Are you sure you want to delete this plugin?" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:498 -msgid "Plugins reloaded" -msgstr "Utvidelser lastet inn på nytt" - -#: src/tables/plugin/PluginListTable.tsx:499 -msgid "Plugins were reloaded successfully" -msgstr "Utvidelser ble lastet inn på nytt" - -#: src/tables/plugin/PluginListTable.tsx:515 -msgid "Reload Plugins" -msgstr "Last utvidelser på nytt" - -#: src/tables/plugin/PluginListTable.tsx:524 -msgid "Install Plugin" -msgstr "Installer Utvidelse" - -#: src/tables/plugin/PluginListTable.tsx:544 -msgid "Plugin Detail" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:573 +#: src/tables/plugin/PluginListTable.tsx:411 msgid "Sample" msgstr "Eksempel" -#: src/tables/plugin/PluginListTable.tsx:578 -#: src/tables/stock/StockItemTable.tsx:340 +#: src/tables/plugin/PluginListTable.tsx:416 +#: src/tables/stock/StockItemTable.tsx:344 msgid "Installed" msgstr "Installert" @@ -7116,82 +8260,78 @@ msgstr "" #~ msgid "Are you sure you want to remove this manufacturer part?" #~ msgstr "Are you sure you want to remove this manufacturer part?" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:102 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:339 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:103 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:356 msgid "Import Line Items" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:135 -msgid "Part Description" -msgstr "Delbeskrivelse" - -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:201 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:207 msgid "Supplier Code" msgstr "Leverandørkode" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:208 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:214 msgid "Supplier Link" msgstr "Leverandørlenke" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:215 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:220 msgid "Manufacturer Code" msgstr "Produsentens kode" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:229 -msgid "Destination" -msgstr "Destinasjon" +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:248 +msgid "Show line items which have been received" +msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:300 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:316 msgid "Receive line item" msgstr "Motta ordrelinje" #: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:344 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:142 -#: src/tables/sales/SalesOrderLineItemTable.tsx:240 -msgid "Add line item" -msgstr "Legg til ordrelinje" +#: src/tables/sales/ReturnOrderLineItemTable.tsx:160 +#: src/tables/sales/SalesOrderLineItemTable.tsx:258 +#~ msgid "Add line item" +#~ msgstr "Add line item" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:354 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:373 msgid "Receive items" msgstr "Motta artikler" -#: src/tables/purchasing/SupplierPartTable.tsx:93 +#: src/tables/purchasing/SupplierPartTable.tsx:95 msgid "MPN" msgstr "MPN" -#: src/tables/purchasing/SupplierPartTable.tsx:122 +#: src/tables/purchasing/SupplierPartTable.tsx:124 msgid "Base units" msgstr "Basisenhet" -#: src/tables/purchasing/SupplierPartTable.tsx:170 +#: src/tables/purchasing/SupplierPartTable.tsx:172 msgid "Supplier part created" msgstr "Leverandørdel opprettet" -#: src/tables/purchasing/SupplierPartTable.tsx:176 +#: src/tables/purchasing/SupplierPartTable.tsx:179 msgid "Add supplier part" msgstr "Legg til leverandørdel" -#: src/tables/purchasing/SupplierPartTable.tsx:188 +#: src/tables/purchasing/SupplierPartTable.tsx:191 msgid "Show active supplier parts" msgstr "" -#: src/tables/purchasing/SupplierPartTable.tsx:192 -msgid "Active Part" -msgstr "" - -#: src/tables/purchasing/SupplierPartTable.tsx:193 -msgid "Show active internal parts" -msgstr "" - #: src/tables/purchasing/SupplierPartTable.tsx:193 #~ msgid "Supplier part updated" #~ msgstr "Supplier part updated" -#: src/tables/purchasing/SupplierPartTable.tsx:197 +#: src/tables/purchasing/SupplierPartTable.tsx:195 +msgid "Active Part" +msgstr "" + +#: src/tables/purchasing/SupplierPartTable.tsx:196 +msgid "Show active internal parts" +msgstr "" + +#: src/tables/purchasing/SupplierPartTable.tsx:200 msgid "Active Supplier" msgstr "" -#: src/tables/purchasing/SupplierPartTable.tsx:198 +#: src/tables/purchasing/SupplierPartTable.tsx:201 msgid "Show active suppliers" msgstr "" @@ -7203,98 +8343,186 @@ msgstr "" #~ msgid "Are you sure you want to remove this supplier part?" #~ msgstr "Are you sure you want to remove this supplier part?" -#: src/tables/sales/ReturnOrderLineItemTable.tsx:114 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:139 msgid "Received Date" msgstr "" -#: src/tables/sales/ReturnOrderLineItemTable.tsx:128 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:153 msgid "Show items which have been received" msgstr "" -#: src/tables/sales/ReturnOrderLineItemTable.tsx:133 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:158 msgid "Filter by line item status" msgstr "" -#: src/tables/sales/ReturnOrderLineItemTable.tsx:158 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:176 +msgid "Receive selected items" +msgstr "" + +#: src/tables/sales/ReturnOrderLineItemTable.tsx:205 msgid "Receive Item" msgstr "" -#: src/tables/sales/SalesOrderLineItemTable.tsx:262 -msgid "Allocate stock" +#: src/tables/sales/SalesOrderAllocationTable.tsx:60 +msgid "Show outstanding allocations" msgstr "" -#: src/tables/sales/SalesOrderLineItemTable.tsx:272 +#: src/tables/sales/SalesOrderAllocationTable.tsx:168 +#: src/tables/sales/SalesOrderAllocationTable.tsx:190 +msgid "Edit Allocation" +msgstr "" + +#: src/tables/sales/SalesOrderAllocationTable.tsx:175 +#: src/tables/sales/SalesOrderAllocationTable.tsx:197 +msgid "Delete Allocation" +msgstr "" + +#: src/tables/sales/SalesOrderLineItemTable.tsx:244 +msgid "Allocate Serial Numbers" +msgstr "" + +#: src/tables/sales/SalesOrderLineItemTable.tsx:277 +msgid "Show lines which are fully allocated" +msgstr "" + +#: src/tables/sales/SalesOrderLineItemTable.tsx:280 +#~ msgid "Allocate stock" +#~ msgstr "Allocate stock" + +#: src/tables/sales/SalesOrderLineItemTable.tsx:282 +msgid "Show lines which are completed" +msgstr "" + +#: src/tables/sales/SalesOrderLineItemTable.tsx:291 +#~ msgid "Allocate Serials" +#~ msgstr "Allocate Serials" + +#: src/tables/sales/SalesOrderLineItemTable.tsx:340 +msgid "Allocate serials" +msgstr "" + +#: src/tables/sales/SalesOrderLineItemTable.tsx:356 msgid "Build stock" msgstr "" -#: src/tables/sales/SalesOrderLineItemTable.tsx:289 -#: src/tables/stock/StockItemTable.tsx:507 +#: src/tables/sales/SalesOrderLineItemTable.tsx:373 +#: src/tables/stock/StockItemTable.tsx:512 msgid "Order stock" msgstr "" -#: src/tables/sales/SalesOrderShipmentTable.tsx:40 +#: src/tables/sales/SalesOrderShipmentTable.tsx:51 +#~ msgid "Delete Shipment" +#~ msgstr "Delete Shipment" + +#: src/tables/sales/SalesOrderShipmentTable.tsx:57 msgid "Create Shipment" msgstr "" -#: src/tables/sales/SalesOrderShipmentTable.tsx:50 -msgid "Delete Shipment" -msgstr "" - -#: src/tables/sales/SalesOrderShipmentTable.tsx:58 -msgid "Edit Shipment" -msgstr "" - -#: src/tables/sales/SalesOrderShipmentTable.tsx:66 -msgid "Shipment Reference" -msgstr "" - -#: src/tables/sales/SalesOrderShipmentTable.tsx:71 +#: src/tables/sales/SalesOrderShipmentTable.tsx:104 msgid "Items" msgstr "" -#: src/tables/sales/SalesOrderShipmentTable.tsx:83 -msgid "Delivery Date" +#: src/tables/sales/SalesOrderShipmentTable.tsx:139 +msgid "View Shipment" msgstr "" -#: src/tables/sales/SalesOrderShipmentTable.tsx:107 -msgid "Complete Shipment" +#: src/tables/sales/SalesOrderShipmentTable.tsx:161 +msgid "Edit shipment" msgstr "" -#: src/tables/sales/SalesOrderShipmentTable.tsx:133 +#: src/tables/sales/SalesOrderShipmentTable.tsx:169 +msgid "Cancel shipment" +msgstr "" + +#: src/tables/sales/SalesOrderShipmentTable.tsx:184 msgid "Add shipment" msgstr "" -#: src/tables/sales/SalesOrderShipmentTable.tsx:146 -msgid "Shipped" -msgstr "" - -#: src/tables/sales/SalesOrderShipmentTable.tsx:147 +#: src/tables/sales/SalesOrderShipmentTable.tsx:198 msgid "Show shipments which have been shipped" msgstr "" -#: src/tables/sales/SalesOrderShipmentTable.tsx:151 -msgid "Delivered" -msgstr "" - -#: src/tables/sales/SalesOrderShipmentTable.tsx:152 +#: src/tables/sales/SalesOrderShipmentTable.tsx:203 msgid "Show shipments which have been delivered" msgstr "" -#: src/tables/settings/CurrencyTable.tsx:28 -msgid "Rate" -msgstr "Kurs" +#: src/tables/settings/BarcodeScanHistoryTable.tsx:61 +msgid "Barcode Information" +msgstr "" -#: src/tables/settings/CurrencyTable.tsx:40 -msgid "Exchange rates updated" -msgstr "Valutakurser oppdatert" +#: src/tables/settings/BarcodeScanHistoryTable.tsx:76 +#: src/tables/settings/ErrorTable.tsx:59 +msgid "Timestamp" +msgstr "" -#: src/tables/settings/CurrencyTable.tsx:46 -msgid "Exchange rate update error" -msgstr "Feil udner oppdatering av valutakurs" +#: src/tables/settings/BarcodeScanHistoryTable.tsx:86 +msgid "Endpoint" +msgstr "" -#: src/tables/settings/CurrencyTable.tsx:57 -msgid "Refresh currency exchange rates" -msgstr "Oppdater valutakursene" +#: src/tables/settings/BarcodeScanHistoryTable.tsx:90 +#: src/tables/settings/BarcodeScanHistoryTable.tsx:217 +#: src/tables/stock/StockItemTestResultTable.tsx:174 +msgid "Result" +msgstr "" + +#: src/tables/settings/BarcodeScanHistoryTable.tsx:98 +msgid "Context" +msgstr "" + +#: src/tables/settings/BarcodeScanHistoryTable.tsx:119 +msgid "Response" +msgstr "" + +#: src/tables/settings/BarcodeScanHistoryTable.tsx:213 +#: src/tables/settings/ImportSessionTable.tsx:121 +#: src/tables/stock/StockTrackingTable.tsx:183 +msgid "Filter by user" +msgstr "" + +#: src/tables/settings/BarcodeScanHistoryTable.tsx:218 +msgid "Filter by result" +msgstr "" + +#: src/tables/settings/BarcodeScanHistoryTable.tsx:232 +msgid "Delete Barcode Scan Record" +msgstr "" + +#: src/tables/settings/BarcodeScanHistoryTable.tsx:258 +msgid "Barcode Scan Details" +msgstr "" + +#: src/tables/settings/BarcodeScanHistoryTable.tsx:268 +msgid "Logging Disabled" +msgstr "" + +#: src/tables/settings/BarcodeScanHistoryTable.tsx:270 +msgid "Barcode logging is not enabled" +msgstr "" + +#: src/tables/settings/CustomStateTable.tsx:36 +msgid "Display Name" +msgstr "" + +#: src/tables/settings/CustomStateTable.tsx:52 +msgid "Model" +msgstr "" + +#: src/tables/settings/CustomStateTable.tsx:65 +#: src/tables/settings/CustomStateTable.tsx:115 +msgid "Add State" +msgstr "" + +#: src/tables/settings/CustomStateTable.tsx:77 +msgid "Edit State" +msgstr "" + +#: src/tables/settings/CustomStateTable.tsx:85 +msgid "Delete State" +msgstr "" + +#: src/tables/settings/CustomStateTable.tsx:115 +#~ msgid "Add state" +#~ msgstr "Add state" #: src/tables/settings/CustomUnitsTable.tsx:50 msgid "Add Custom Unit" @@ -7312,59 +8540,71 @@ msgstr "" msgid "Add custom unit" msgstr "Legg til egendefinert enhet" -#: src/tables/settings/ErrorTable.tsx:31 -msgid "When" -msgstr "Når" - -#: src/tables/settings/ErrorTable.tsx:41 -msgid "Error Information" -msgstr "Feilinformasjon" - #: src/tables/settings/ErrorTable.tsx:51 #~ msgid "Delete error report" #~ msgstr "Delete error report" -#: src/tables/settings/ErrorTable.tsx:53 +#: src/tables/settings/ErrorTable.tsx:67 +msgid "Traceback" +msgstr "" + +#: src/tables/settings/ErrorTable.tsx:103 +msgid "When" +msgstr "Når" + +#: src/tables/settings/ErrorTable.tsx:113 +msgid "Error Information" +msgstr "Feilinformasjon" + +#: src/tables/settings/ErrorTable.tsx:123 msgid "Delete Error Report" msgstr "" -#: src/tables/settings/ErrorTable.tsx:55 +#: src/tables/settings/ErrorTable.tsx:125 msgid "Are you sure you want to delete this error report?" msgstr "Er du sikker på at du vil slette denne feilrapporten?" -#: src/tables/settings/ErrorTable.tsx:57 +#: src/tables/settings/ErrorTable.tsx:127 msgid "Error report deleted" msgstr "Feilrapport slettet" -#: src/tables/settings/ErrorTable.tsx:79 -#: src/tables/settings/FailedTasksTable.tsx:59 +#: src/tables/settings/ErrorTable.tsx:146 +#: src/tables/settings/FailedTasksTable.tsx:65 msgid "Error Details" msgstr "Feildetaljer" -#: src/tables/settings/FailedTasksTable.tsx:26 -#: src/tables/settings/PendingTasksTable.tsx:19 +#: src/tables/settings/FailedTasksTable.tsx:32 +#: src/tables/settings/PendingTasksTable.tsx:23 #: src/tables/settings/ScheduledTasksTable.tsx:19 msgid "Task" msgstr "Oppgave" -#: src/tables/settings/FailedTasksTable.tsx:32 -#: src/tables/settings/PendingTasksTable.tsx:24 +#: src/tables/settings/FailedTasksTable.tsx:38 +#: src/tables/settings/PendingTasksTable.tsx:28 msgid "Task ID" msgstr "Oppgave-ID" -#: src/tables/settings/FailedTasksTable.tsx:36 -#: src/tables/stock/StockItemTestResultTable.tsx:211 +#: src/tables/settings/FailedTasksTable.tsx:42 +#: src/tables/stock/StockItemTestResultTable.tsx:218 msgid "Started" msgstr "Startet" -#: src/tables/settings/FailedTasksTable.tsx:42 +#: src/tables/settings/FailedTasksTable.tsx:48 msgid "Stopped" msgstr "Stoppet" -#: src/tables/settings/FailedTasksTable.tsx:48 +#: src/tables/settings/FailedTasksTable.tsx:54 msgid "Attempts" msgstr "Forsøk" +#: src/tables/settings/FailedTasksTable.tsx:92 +msgid "No Information" +msgstr "" + +#: src/tables/settings/FailedTasksTable.tsx:93 +msgid "No error details are available for this task" +msgstr "" + #: src/tables/settings/GroupTable.tsx:90 msgid "Group with id {id} not found" msgstr "Gruppe med id {id} er ikke funnet" @@ -7398,42 +8638,34 @@ msgstr "Legg til gruppe" msgid "Edit group" msgstr "Rediger gruppe" -#: src/tables/settings/ImportSessionTable.tsx:38 +#: src/tables/settings/ImportSessionTable.tsx:37 msgid "Delete Import Session" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:44 +#: src/tables/settings/ImportSessionTable.tsx:43 #: src/tables/settings/ImportSessionTable.tsx:131 msgid "Create Import Session" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:69 +#: src/tables/settings/ImportSessionTable.tsx:68 msgid "Uploaded" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:79 -msgid "Imported Rows" -msgstr "" - -#: src/tables/settings/ImportSessionTable.tsx:109 -#: src/tables/settings/TemplateTable.tsx:289 +#: src/tables/settings/ImportSessionTable.tsx:108 +#: src/tables/settings/TemplateTable.tsx:369 msgid "Model Type" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:110 -#: src/tables/settings/TemplateTable.tsx:290 +#: src/tables/settings/ImportSessionTable.tsx:109 +#: src/tables/settings/TemplateTable.tsx:370 msgid "Filter by target model type" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:116 +#: src/tables/settings/ImportSessionTable.tsx:115 msgid "Filter by import session status" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:122 -msgid "Filter by user" -msgstr "" - -#: src/tables/settings/PendingTasksTable.tsx:38 +#: src/tables/settings/PendingTasksTable.tsx:42 msgid "Arguments" msgstr "Argumenter" @@ -7461,12 +8693,16 @@ msgstr "Sist kjørt" msgid "Next Run" msgstr "Neste kjøring" -#: src/tables/settings/TemplateTable.tsx:85 -msgid "Template not found" +#: src/tables/settings/StocktakeReportTable.tsx:28 +msgid "Report" msgstr "" -#: src/tables/settings/TemplateTable.tsx:87 -msgid "An error occurred while fetching template details" +#: src/tables/settings/StocktakeReportTable.tsx:35 +msgid "Part Count" +msgstr "" + +#: src/tables/settings/StocktakeReportTable.tsx:58 +msgid "Delete Report" msgstr "" #: src/tables/settings/TemplateTable.tsx:120 @@ -7481,21 +8717,12 @@ msgstr "" #~ msgid "actions" #~ msgstr "actions" -#: src/tables/settings/TemplateTable.tsx:177 -msgid "Modify" +#: src/tables/settings/TemplateTable.tsx:162 +msgid "Template not found" msgstr "" -#: src/tables/settings/TemplateTable.tsx:178 -msgid "Modify template file" -msgstr "" - -#: src/tables/settings/TemplateTable.tsx:234 -#: src/tables/settings/TemplateTable.tsx:302 -msgid "Edit Template" -msgstr "" - -#: src/tables/settings/TemplateTable.tsx:242 -msgid "Delete template" +#: src/tables/settings/TemplateTable.tsx:164 +msgid "An error occurred while fetching template details" msgstr "" #: src/tables/settings/TemplateTable.tsx:243 @@ -7506,103 +8733,137 @@ msgstr "" #~ msgid "Create new" #~ msgstr "Create new" -#: src/tables/settings/TemplateTable.tsx:248 +#: src/tables/settings/TemplateTable.tsx:257 +msgid "Modify" +msgstr "" + +#: src/tables/settings/TemplateTable.tsx:258 +msgid "Modify template file" +msgstr "" + +#: src/tables/settings/TemplateTable.tsx:314 +#: src/tables/settings/TemplateTable.tsx:382 +msgid "Edit Template" +msgstr "" + +#: src/tables/settings/TemplateTable.tsx:322 +msgid "Delete template" +msgstr "" + +#: src/tables/settings/TemplateTable.tsx:328 msgid "Add Template" msgstr "" -#: src/tables/settings/TemplateTable.tsx:261 +#: src/tables/settings/TemplateTable.tsx:341 msgid "Add template" msgstr "" -#: src/tables/settings/TemplateTable.tsx:284 +#: src/tables/settings/TemplateTable.tsx:364 msgid "Filter by enabled status" msgstr "" -#: src/tables/settings/UserTable.tsx:82 +#: src/tables/settings/UserTable.tsx:81 msgid "User with id {id} not found" msgstr "Bruker med Id {id} ble ikke funnet" -#: src/tables/settings/UserTable.tsx:84 +#: src/tables/settings/UserTable.tsx:83 msgid "An error occurred while fetching user details" msgstr "Det oppstod en feil under henting av brukerdetaljer" -#: src/tables/settings/UserTable.tsx:102 +#: src/tables/settings/UserTable.tsx:101 msgid "Is Active" msgstr "Er aktiv" -#: src/tables/settings/UserTable.tsx:103 +#: src/tables/settings/UserTable.tsx:102 msgid "Designates whether this user should be treated as active. Unselect this instead of deleting accounts." msgstr "Markerer om denne brukeren skal behandles som aktiv. Fjern avmerkingen istedet for å slette kontoer." -#: src/tables/settings/UserTable.tsx:107 +#: src/tables/settings/UserTable.tsx:106 msgid "Is Staff" msgstr "Er ansatte" -#: src/tables/settings/UserTable.tsx:108 +#: src/tables/settings/UserTable.tsx:107 msgid "Designates whether the user can log into the django admin site." msgstr "Markerer om brukeren kan logge inn til Django-administrasjonssiden." -#: src/tables/settings/UserTable.tsx:112 +#: src/tables/settings/UserTable.tsx:111 msgid "Is Superuser" msgstr "Er Superbruker" -#: src/tables/settings/UserTable.tsx:113 +#: src/tables/settings/UserTable.tsx:112 msgid "Designates that this user has all permissions without explicitly assigning them." msgstr "Markerer at denne brukeren har alle tillatelser uten å eksplisitt tilordne dem." -#: src/tables/settings/UserTable.tsx:123 +#: src/tables/settings/UserTable.tsx:122 msgid "You cannot edit the rights for the currently logged-in user." msgstr "Du kan ikke redigere rettighetene for brukeren som er logget inn." -#: src/tables/settings/UserTable.tsx:154 +#: src/tables/settings/UserTable.tsx:153 msgid "No groups" msgstr "Ingen grupper" -#: src/tables/settings/UserTable.tsx:245 +#: src/tables/settings/UserTable.tsx:244 msgid "Delete user" msgstr "Slett bruker" -#: src/tables/settings/UserTable.tsx:246 +#: src/tables/settings/UserTable.tsx:245 msgid "User deleted" msgstr "Bruker slettet" -#: src/tables/settings/UserTable.tsx:248 +#: src/tables/settings/UserTable.tsx:247 msgid "Are you sure you want to delete this user?" msgstr "Er du sikker på at du vil slette denne brukeren?" -#: src/tables/settings/UserTable.tsx:254 -#: src/tables/settings/UserTable.tsx:272 +#: src/tables/settings/UserTable.tsx:253 +#: src/tables/settings/UserTable.tsx:271 msgid "Add user" msgstr "Legg til bruker" -#: src/tables/settings/UserTable.tsx:262 +#: src/tables/settings/UserTable.tsx:261 msgid "Added user" msgstr "Bruker lagt til" -#: src/tables/settings/UserTable.tsx:285 +#: src/tables/settings/UserTable.tsx:284 msgid "Show active users" msgstr "" -#: src/tables/settings/UserTable.tsx:289 +#: src/tables/settings/UserTable.tsx:288 msgid "Staff" msgstr "" -#: src/tables/settings/UserTable.tsx:290 +#: src/tables/settings/UserTable.tsx:289 msgid "Show staff users" msgstr "" #: src/tables/settings/UserTable.tsx:294 -msgid "Superuser" -msgstr "" - -#: src/tables/settings/UserTable.tsx:295 msgid "Show superusers" msgstr "" -#: src/tables/settings/UserTable.tsx:305 +#: src/tables/settings/UserTable.tsx:304 msgid "Edit user" msgstr "Rediger bruker" +#: src/tables/stock/InstalledItemsTable.tsx:37 +#: src/tables/stock/InstalledItemsTable.tsx:90 +msgid "Install Item" +msgstr "" + +#: src/tables/stock/InstalledItemsTable.tsx:39 +msgid "Item installed" +msgstr "" + +#: src/tables/stock/InstalledItemsTable.tsx:50 +msgid "Uninstall Item" +msgstr "" + +#: src/tables/stock/InstalledItemsTable.tsx:52 +msgid "Item uninstalled" +msgstr "" + +#: src/tables/stock/InstalledItemsTable.tsx:108 +msgid "Uninstall stock item" +msgstr "" + #: src/tables/stock/LocationTypesTable.tsx:39 #: src/tables/stock/LocationTypesTable.tsx:109 msgid "Add Location Type" @@ -7620,276 +8881,272 @@ msgstr "" msgid "Icon" msgstr "" -#: src/tables/stock/StockItemTable.tsx:101 +#: src/tables/stock/StockItemTable.tsx:90 msgid "This stock item is in production" msgstr "Denne lagervaren er i produksjon" -#: src/tables/stock/StockItemTable.tsx:110 +#: src/tables/stock/StockItemTable.tsx:97 msgid "This stock item has been assigned to a sales order" msgstr "Denne lagervaren har blitt tildelt en salgsordre" -#: src/tables/stock/StockItemTable.tsx:119 +#: src/tables/stock/StockItemTable.tsx:104 msgid "This stock item has been assigned to a customer" msgstr "Denne lagervaren har blitt tilordnet en kunde" -#: src/tables/stock/StockItemTable.tsx:128 +#: src/tables/stock/StockItemTable.tsx:111 msgid "This stock item is installed in another stock item" msgstr "Denne lagervaren er montert i en annen lagervare" -#: src/tables/stock/StockItemTable.tsx:137 +#: src/tables/stock/StockItemTable.tsx:118 msgid "This stock item has been consumed by a build order" msgstr "Denne lagervaren har blitt konsumert av en produksjonsordre" -#: src/tables/stock/StockItemTable.tsx:146 +#: src/tables/stock/StockItemTable.tsx:125 +msgid "This stock item is unavailable" +msgstr "" + +#: src/tables/stock/StockItemTable.tsx:134 msgid "This stock item has expired" msgstr "Denne lagervaren har utløpt" -#: src/tables/stock/StockItemTable.tsx:150 +#: src/tables/stock/StockItemTable.tsx:138 msgid "This stock item is stale" msgstr "Denne lagervaren er gammel" -#: src/tables/stock/StockItemTable.tsx:161 +#: src/tables/stock/StockItemTable.tsx:150 msgid "This stock item is fully allocated" msgstr "Denne lagervaren er i sin helhet tilordnet" -#: src/tables/stock/StockItemTable.tsx:168 +#: src/tables/stock/StockItemTable.tsx:157 msgid "This stock item is partially allocated" msgstr "Denne lagervaren er delvis tilordnet" -#: src/tables/stock/StockItemTable.tsx:196 +#: src/tables/stock/StockItemTable.tsx:185 msgid "This stock item has been depleted" msgstr "Denne lagervaren er oppbrukt" -#: src/tables/stock/StockItemTable.tsx:232 +#: src/tables/stock/StockItemTable.tsx:280 msgid "Stocktake Date" msgstr "" -#: src/tables/stock/StockItemTable.tsx:236 -msgid "Expiry Date" -msgstr "" - -#: src/tables/stock/StockItemTable.tsx:260 -msgid "Stock Value" -msgstr "" - -#: src/tables/stock/StockItemTable.tsx:290 +#: src/tables/stock/StockItemTable.tsx:294 msgid "Show stock for active parts" msgstr "Vis lagerbeholdning for aktive deler" -#: src/tables/stock/StockItemTable.tsx:295 +#: src/tables/stock/StockItemTable.tsx:299 msgid "Filter by stock status" msgstr "Filtrer etter lagerstatus" #: src/tables/stock/StockItemTable.tsx:301 -msgid "Show stock for assmebled parts" -msgstr "Vis lagerbeholdning for sammensatte deler" +#~ msgid "Show stock for assmebled parts" +#~ msgstr "Show stock for assmebled parts" -#: src/tables/stock/StockItemTable.tsx:306 +#: src/tables/stock/StockItemTable.tsx:305 +msgid "Show stock for assembled parts" +msgstr "" + +#: src/tables/stock/StockItemTable.tsx:310 msgid "Show items which have been allocated" msgstr "Vis elementer som har blitt tildelt" -#: src/tables/stock/StockItemTable.tsx:311 +#: src/tables/stock/StockItemTable.tsx:315 msgid "Show items which are available" msgstr "Vis elementer som er tilgjengelige" -#: src/tables/stock/StockItemTable.tsx:315 +#: src/tables/stock/StockItemTable.tsx:319 #: src/tables/stock/StockLocationTable.tsx:44 msgid "Include Sublocations" msgstr "Inkluder underplasseringer" -#: src/tables/stock/StockItemTable.tsx:316 +#: src/tables/stock/StockItemTable.tsx:320 msgid "Include stock in sublocations" msgstr "Inkluder lager i underplasseringer" -#: src/tables/stock/StockItemTable.tsx:320 +#: src/tables/stock/StockItemTable.tsx:324 msgid "Depleted" msgstr "Oppbrukt" -#: src/tables/stock/StockItemTable.tsx:321 +#: src/tables/stock/StockItemTable.tsx:325 msgid "Show depleted stock items" msgstr "Vis oppbrukte lagervarer" -#: src/tables/stock/StockItemTable.tsx:326 +#: src/tables/stock/StockItemTable.tsx:330 msgid "Show items which are in stock" msgstr "Vis elementer som er på lager" -#: src/tables/stock/StockItemTable.tsx:331 +#: src/tables/stock/StockItemTable.tsx:335 msgid "Show items which are in production" msgstr "Vis elementer som er under produksjon" -#: src/tables/stock/StockItemTable.tsx:336 +#: src/tables/stock/StockItemTable.tsx:340 msgid "Include stock items for variant parts" msgstr "Inkluder lagervarer for variantdeler" -#: src/tables/stock/StockItemTable.tsx:341 +#: src/tables/stock/StockItemTable.tsx:345 msgid "Show stock items which are installed in other items" msgstr "Vis lagervarer som er installert i andre elementer" -#: src/tables/stock/StockItemTable.tsx:345 +#: src/tables/stock/StockItemTable.tsx:349 msgid "Sent to Customer" msgstr "Sendt til kunde" -#: src/tables/stock/StockItemTable.tsx:346 +#: src/tables/stock/StockItemTable.tsx:350 msgid "Show items which have been sent to a customer" msgstr "Vis elementer som er sendt til en kunde" -#: src/tables/stock/StockItemTable.tsx:350 +#: src/tables/stock/StockItemTable.tsx:354 msgid "Is Serialized" msgstr "Er serialisert" -#: src/tables/stock/StockItemTable.tsx:351 +#: src/tables/stock/StockItemTable.tsx:355 msgid "Show items which have a serial number" msgstr "Vis elementer som har et serienummer" -#: src/tables/stock/StockItemTable.tsx:358 +#: src/tables/stock/StockItemTable.tsx:362 msgid "Has Batch Code" msgstr "Har batchkode" -#: src/tables/stock/StockItemTable.tsx:359 +#: src/tables/stock/StockItemTable.tsx:363 msgid "Show items which have a batch code" msgstr "Vis elementer som har en batchkode" -#: src/tables/stock/StockItemTable.tsx:365 +#: src/tables/stock/StockItemTable.tsx:369 msgid "Show tracked items" msgstr "Vis sporede deler" -#: src/tables/stock/StockItemTable.tsx:369 +#: src/tables/stock/StockItemTable.tsx:373 msgid "Has Purchase Price" msgstr "Har innkjøpspris" -#: src/tables/stock/StockItemTable.tsx:370 +#: src/tables/stock/StockItemTable.tsx:374 msgid "Show items which have a purchase price" msgstr "Vis elementer som har innkjøpspris" -#: src/tables/stock/StockItemTable.tsx:378 +#: src/tables/stock/StockItemTable.tsx:382 msgid "External Location" msgstr "Ekstern plassering" -#: src/tables/stock/StockItemTable.tsx:379 +#: src/tables/stock/StockItemTable.tsx:383 msgid "Show items in an external location" msgstr "Vis elementer ved en ekstern plassering" -#: src/tables/stock/StockItemTable.tsx:451 +#: src/tables/stock/StockItemTable.tsx:456 msgid "Add a new stock item" msgstr "" -#: src/tables/stock/StockItemTable.tsx:460 +#: src/tables/stock/StockItemTable.tsx:465 msgid "Remove some quantity from a stock item" msgstr "" -#: src/tables/stock/StockItemTable.tsx:482 +#: src/tables/stock/StockItemTable.tsx:487 msgid "Move Stock items to new locations" msgstr "" -#: src/tables/stock/StockItemTable.tsx:489 +#: src/tables/stock/StockItemTable.tsx:494 msgid "Change stock status" msgstr "" -#: src/tables/stock/StockItemTable.tsx:491 +#: src/tables/stock/StockItemTable.tsx:496 msgid "Change the status of stock items" msgstr "" -#: src/tables/stock/StockItemTable.tsx:498 +#: src/tables/stock/StockItemTable.tsx:503 msgid "Merge stock" msgstr "" -#: src/tables/stock/StockItemTable.tsx:500 +#: src/tables/stock/StockItemTable.tsx:505 msgid "Merge stock items" msgstr "" -#: src/tables/stock/StockItemTable.tsx:509 -#: src/tables/stock/StockItemTable.tsx:516 +#: src/tables/stock/StockItemTable.tsx:514 +#: src/tables/stock/StockItemTable.tsx:521 msgid "Order new stock" msgstr "" -#: src/tables/stock/StockItemTable.tsx:514 +#: src/tables/stock/StockItemTable.tsx:519 msgid "Assign to customer" msgstr "" -#: src/tables/stock/StockItemTable.tsx:523 +#: src/tables/stock/StockItemTable.tsx:528 msgid "Delete stock" msgstr "" -#: src/tables/stock/StockItemTable.tsx:525 -msgid "Delete stock items" -msgstr "" +#: src/tables/stock/StockItemTable.tsx:528 +#~ msgid "Delete stock items" +#~ msgstr "Delete stock items" -#: src/tables/stock/StockItemTestResultTable.tsx:131 +#: src/tables/stock/StockItemTestResultTable.tsx:137 msgid "Test" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:157 +#: src/tables/stock/StockItemTestResultTable.tsx:163 msgid "Test result for installed stock item" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:168 -msgid "Result" -msgstr "" - -#: src/tables/stock/StockItemTestResultTable.tsx:190 +#: src/tables/stock/StockItemTestResultTable.tsx:196 msgid "Attachment" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:206 +#: src/tables/stock/StockItemTestResultTable.tsx:212 msgid "Test station" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:226 +#: src/tables/stock/StockItemTestResultTable.tsx:234 msgid "Finished" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:268 -#: src/tables/stock/StockItemTestResultTable.tsx:339 +#: src/tables/stock/StockItemTestResultTable.tsx:286 +#: src/tables/stock/StockItemTestResultTable.tsx:357 msgid "Edit Test Result" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:270 +#: src/tables/stock/StockItemTestResultTable.tsx:288 msgid "Test result updated" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:276 -#: src/tables/stock/StockItemTestResultTable.tsx:348 +#: src/tables/stock/StockItemTestResultTable.tsx:294 +#: src/tables/stock/StockItemTestResultTable.tsx:366 msgid "Delete Test Result" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:278 +#: src/tables/stock/StockItemTestResultTable.tsx:296 msgid "Test result deleted" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:292 +#: src/tables/stock/StockItemTestResultTable.tsx:310 msgid "Test Passed" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:293 +#: src/tables/stock/StockItemTestResultTable.tsx:311 msgid "Test result has been recorded" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:300 +#: src/tables/stock/StockItemTestResultTable.tsx:318 msgid "Failed to record test result" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:317 +#: src/tables/stock/StockItemTestResultTable.tsx:335 msgid "Pass Test" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:366 +#: src/tables/stock/StockItemTestResultTable.tsx:384 msgid "Show results for required tests" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:370 +#: src/tables/stock/StockItemTestResultTable.tsx:388 msgid "Include Installed" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:371 +#: src/tables/stock/StockItemTestResultTable.tsx:389 msgid "Show results for installed stock items" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:375 -#: src/tables/stock/TestStatisticsTable.tsx:74 +#: src/tables/stock/StockItemTestResultTable.tsx:393 +#: src/tables/stock/TestStatisticsTable.tsx:62 msgid "Passed" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:376 +#: src/tables/stock/StockItemTestResultTable.tsx:394 msgid "Show only passed tests" msgstr "" @@ -7922,28 +9179,32 @@ msgid "Filter by location type" msgstr "" #: src/tables/stock/StockLocationTable.tsx:107 -#: src/tables/stock/StockLocationTable.tsx:133 +#: src/tables/stock/StockLocationTable.tsx:134 msgid "Add Stock Location" msgstr "" -#: src/tables/stock/StockTrackingTable.tsx:64 +#: src/tables/stock/StockTrackingTable.tsx:68 msgid "Added" msgstr "" -#: src/tables/stock/StockTrackingTable.tsx:69 +#: src/tables/stock/StockTrackingTable.tsx:73 msgid "Removed" msgstr "" #: src/tables/stock/StockTrackingTable.tsx:198 +msgid "Details" +msgstr "Detaljer" + +#: src/tables/stock/StockTrackingTable.tsx:213 msgid "No user information" msgstr "" -#: src/tables/stock/TestStatisticsTable.tsx:46 -#: src/tables/stock/TestStatisticsTable.tsx:76 +#: src/tables/stock/TestStatisticsTable.tsx:34 +#: src/tables/stock/TestStatisticsTable.tsx:64 msgid "Total" msgstr "" -#: src/tables/stock/TestStatisticsTable.tsx:75 +#: src/tables/stock/TestStatisticsTable.tsx:63 msgid "Failed" msgstr "" diff --git a/src/frontend/src/locales/pl/messages.po b/src/frontend/src/locales/pl/messages.po index 5912cde6c2..fbd0fc1fff 100644 --- a/src/frontend/src/locales/pl/messages.po +++ b/src/frontend/src/locales/pl/messages.po @@ -8,15 +8,15 @@ msgstr "" "Language: pl\n" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"PO-Revision-Date: 2024-08-20 19:50\n" +"PO-Revision-Date: 2024-11-04 03:14\n" "Last-Translator: \n" "Language-Team: Polish\n" "Plural-Forms: nplurals=4; plural=(n==1 ? 0 : (n%10>=2 && n%10<=4) && (n%100<12 || n%100>14) ? 1 : n!=1 && (n%10>=0 && n%10<=1) || (n%10>=5 && n%10<=9) || (n%100>=12 && n%100<=14) ? 2 : 3);\n" "X-Crowdin-Project: inventree\n" "X-Crowdin-Project-ID: 452300\n" "X-Crowdin-Language: pl\n" -"X-Crowdin-File: /[inventree.InvenTree] l10/src/frontend/src/locales/en/messages.po\n" -"X-Crowdin-File-ID: 205\n" +"X-Crowdin-File: /src/frontend/src/locales/en/messages.po\n" +"X-Crowdin-File-ID: 252\n" #: src/components/Boundary.tsx:12 msgid "Error rendering component" @@ -27,8 +27,8 @@ msgid "An error occurred while rendering this component. Refer to the console fo msgstr "Wystąpił błąd podczas renderowania tego komponentu. Więcej informacji znajdziesz na konsoli." #: src/components/DashboardItemProxy.tsx:34 -msgid "Title" -msgstr "Tytuł" +#~ msgid "Title" +#~ msgstr "Title" #: src/components/buttons/AdminButton.tsx:80 msgid "Open in admin interface" @@ -38,82 +38,99 @@ msgstr "Otwórz w interfejsie administratora" #~ msgid "Copy to clipboard" #~ msgstr "Copy to clipboard" -#: src/components/buttons/CopyButton.tsx:24 +#: src/components/buttons/CopyButton.tsx:29 msgid "Copied" msgstr "Skopiowano" -#: src/components/buttons/CopyButton.tsx:24 +#: src/components/buttons/CopyButton.tsx:29 msgid "Copy" msgstr "Kopiuj" -#: src/components/buttons/PrintingActions.tsx:93 +#: src/components/buttons/PrintingActions.tsx:97 msgid "Print Label" msgstr "Drukuj etykietę" -#: src/components/buttons/PrintingActions.tsx:99 +#: src/components/buttons/PrintingActions.tsx:103 msgid "Print" msgstr "Wydrukuj" -#: src/components/buttons/PrintingActions.tsx:100 +#: src/components/buttons/PrintingActions.tsx:104 msgid "Label printing completed successfully" msgstr "Drukowanie etykiety zakończone powodzeniem" -#: src/components/buttons/PrintingActions.tsx:106 -#: src/components/buttons/PrintingActions.tsx:144 -#: src/components/editors/NotesEditor.tsx:65 -#: src/components/editors/NotesEditor.tsx:165 -#: src/components/forms/fields/ApiFormField.tsx:319 +#: src/components/buttons/PrintingActions.tsx:110 +#: src/components/buttons/PrintingActions.tsx:148 +#: src/components/editors/NotesEditor.tsx:73 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:154 +#: src/components/forms/fields/ApiFormField.tsx:328 +#: src/components/forms/fields/TableField.tsx:43 #: src/components/importer/ImportDataSelector.tsx:187 -#: src/components/importer/ImporterColumnSelector.tsx:207 +#: src/components/importer/ImporterColumnSelector.tsx:210 #: src/components/modals/LicenseModal.tsx:75 -#: src/components/nav/SearchDrawer.tsx:448 +#: src/components/nav/SearchDrawer.tsx:458 +#: src/components/render/ModelType.tsx:290 #: src/pages/ErrorPage.tsx:11 -#: src/pages/part/PartPricingPanel.tsx:67 -#: src/tables/InvenTreeTable.tsx:495 +#: src/pages/part/PartPricingPanel.tsx:71 +#: src/tables/InvenTreeTable.tsx:481 #: src/tables/bom/BomTable.tsx:450 -#: src/tables/stock/StockItemTestResultTable.tsx:299 +#: src/tables/stock/StockItemTestResultTable.tsx:317 msgid "Error" msgstr "Błąd" -#: src/components/buttons/PrintingActions.tsx:107 +#: src/components/buttons/PrintingActions.tsx:111 msgid "The label could not be generated" msgstr "Etykieta nie może zostać wygenerowana" -#: src/components/buttons/PrintingActions.tsx:122 +#: src/components/buttons/PrintingActions.tsx:126 msgid "Print Report" msgstr "Drukuj raport" -#: src/components/buttons/PrintingActions.tsx:138 +#: src/components/buttons/PrintingActions.tsx:142 msgid "Generate" msgstr "Wygeneruj" -#: src/components/buttons/PrintingActions.tsx:139 +#: src/components/buttons/PrintingActions.tsx:143 msgid "Report printing completed successfully" msgstr "Drukowanie raportu zakończone pomyślnie" -#: src/components/buttons/PrintingActions.tsx:145 +#: src/components/buttons/PrintingActions.tsx:149 msgid "The report could not be generated" msgstr "Raport nie mógł zostać wygenerowany" -#: src/components/buttons/PrintingActions.tsx:173 +#: src/components/buttons/PrintingActions.tsx:177 msgid "Printing Actions" msgstr "Akcje druku" -#: src/components/buttons/PrintingActions.tsx:178 +#: src/components/buttons/PrintingActions.tsx:182 msgid "Print Labels" msgstr "Drukuj etykiety" -#: src/components/buttons/PrintingActions.tsx:184 +#: src/components/buttons/PrintingActions.tsx:188 msgid "Print Reports" msgstr "Drukuj raporty" +#: src/components/buttons/RemoveRowButton.tsx:8 +msgid "Remove this row" +msgstr "" + #: src/components/buttons/ScanButton.tsx:15 -msgid "Scan QR code" -msgstr "Skanuj kod QR" +#: src/components/nav/NavigationDrawer.tsx:117 +#: src/forms/PurchaseOrderForms.tsx:379 +#: src/forms/PurchaseOrderForms.tsx:473 +msgid "Scan Barcode" +msgstr "Zeskanuj kod kreskowy" + +#: src/components/buttons/ScanButton.tsx:15 +#~ msgid "Scan QR code" +#~ msgstr "Scan QR code" #: src/components/buttons/ScanButton.tsx:20 -msgid "Open QR code scanner" -msgstr "Otwórz skaner kodów QR" +msgid "Open Barcode Scanner" +msgstr "" + +#: src/components/buttons/ScanButton.tsx:20 +#~ msgid "Open QR code scanner" +#~ msgstr "Open QR code scanner" #: src/components/buttons/SpotlightButton.tsx:14 msgid "Open spotlight" @@ -128,85 +145,347 @@ msgid "Fail" msgstr "Niezaliczone" #: src/components/buttons/YesNoButton.tsx:33 -#: src/tables/Filter.tsx:52 +#: src/tables/Filter.tsx:61 msgid "Yes" msgstr "Tak" #: src/components/buttons/YesNoButton.tsx:33 -#: src/tables/Filter.tsx:53 +#: src/tables/Filter.tsx:62 msgid "No" msgstr "Nie" -#: src/components/details/Details.tsx:301 +#: src/components/dashboard/DashboardLayout.tsx:286 +msgid "No Widgets Selected" +msgstr "" + +#: src/components/dashboard/DashboardLayout.tsx:289 +msgid "Use the menu to add widgets to the dashboard" +msgstr "" + +#: src/components/dashboard/DashboardMenu.tsx:59 +#: src/components/dashboard/DashboardMenu.tsx:126 +msgid "Accept Layout" +msgstr "" + +#: src/components/dashboard/DashboardMenu.tsx:91 +#: src/components/nav/NavigationDrawer.tsx:71 +#: src/defaults/actions.tsx:17 +#: src/defaults/links.tsx:9 +#: src/pages/Index/Settings/UserSettings.tsx:47 +msgid "Dashboard" +msgstr "Kokpit" + +#: src/components/dashboard/DashboardMenu.tsx:99 +msgid "Edit Layout" +msgstr "Edytuj układ" + +#: src/components/dashboard/DashboardMenu.tsx:108 +msgid "Add Widget" +msgstr "" + +#: src/components/dashboard/DashboardMenu.tsx:117 +msgid "Remove Widgets" +msgstr "" + +#: src/components/dashboard/DashboardWidget.tsx:65 +msgid "Remove this widget from the dashboard" +msgstr "" + +#: src/components/dashboard/DashboardWidgetDrawer.tsx:77 +msgid "Filter dashboard widgets" +msgstr "" + +#: src/components/dashboard/DashboardWidgetDrawer.tsx:98 +msgid "Add this widget to the dashboard" +msgstr "" + +#: src/components/dashboard/DashboardWidgetDrawer.tsx:123 +msgid "No Widgets Available" +msgstr "" + +#: src/components/dashboard/DashboardWidgetDrawer.tsx:124 +msgid "There are no more widgets available for the dashboard" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:19 +msgid "Subscribed Parts" +msgstr "Obserwowane komponenty" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:20 +msgid "Show the number of parts which you have subscribed to" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:26 +msgid "Subscribed Categories" +msgstr "Obserwowane kategorie" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:27 +msgid "Show the number of part categories which you have subscribed to" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:35 +#: src/pages/part/PartSchedulingDetail.tsx:304 +#: src/tables/part/PartTable.tsx:238 +msgid "Low Stock" +msgstr "Mała ilość w magazynie" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:37 +msgid "Show the number of parts which are low on stock" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:43 +msgid "Expired Stock Items" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:45 +msgid "Show the number of stock items which have expired" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:51 +msgid "Stale Stock Items" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:53 +msgid "Show the number of stock items which are stale" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:59 +msgid "Active Build Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:61 +msgid "Show the number of build orders which are currently active" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:66 +msgid "Overdue Build Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:68 +msgid "Show the number of build orders which are overdue" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:73 +msgid "Assigned Build Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:75 +msgid "Show the number of build orders which are assigned to you" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:80 +msgid "Active Sales Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:82 +msgid "Show the number of sales orders which are currently active" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:87 +msgid "Overdue Sales Orders" +msgstr "Zaległe zlecenia sprzedaży" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:89 +msgid "Show the number of sales orders which are overdue" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:94 +msgid "Assigned Sales Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:96 +msgid "Show the number of sales orders which are assigned to you" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:101 +msgid "Active Purchase Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:103 +msgid "Show the number of purchase orders which are currently active" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:108 +msgid "Overdue Purchase Orders" +msgstr "Zaległe zlecenia zakupu" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:110 +msgid "Show the number of purchase orders which are overdue" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:115 +msgid "Assigned Purchase Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:117 +msgid "Show the number of purchase orders which are assigned to you" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:122 +msgid "Active Return Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:124 +msgid "Show the number of return orders which are currently active" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:129 +msgid "Overdue Return Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:131 +msgid "Show the number of return orders which are overdue" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:136 +msgid "Assigned Return Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:138 +msgid "Show the number of return orders which are assigned to you" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:149 +#: src/components/dashboard/widgets/GetStartedWidget.tsx:15 +#: src/defaults/links.tsx:38 +msgid "Getting Started" +msgstr "Pierwsze Kroki" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:150 +#: src/defaults/links.tsx:41 +msgid "Getting started with InvenTree" +msgstr "Pierwsze kroki z InvenTree" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:157 +#: src/components/dashboard/widgets/NewsWidget.tsx:123 +msgid "News Updates" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:158 +msgid "The latest news from InvenTree" +msgstr "" + +#: src/components/dashboard/widgets/ColorToggleWidget.tsx:18 +#: src/components/nav/MainMenu.tsx:77 +msgid "Change Color Mode" +msgstr "" + +#: src/components/dashboard/widgets/ColorToggleWidget.tsx:23 +msgid "Change the color mode of the user interface" +msgstr "" + +#: src/components/dashboard/widgets/LanguageSelectWidget.tsx:18 +msgid "Change Language" +msgstr "" + +#: src/components/dashboard/widgets/LanguageSelectWidget.tsx:23 +msgid "Change the language of the user interface" +msgstr "" + +#: src/components/dashboard/widgets/NewsWidget.tsx:61 +#: src/components/nav/NotificationDrawer.tsx:88 +#: src/pages/Notifications.tsx:73 +msgid "Mark as read" +msgstr "Oznacz jako przeczytane" + +#: src/components/dashboard/widgets/NewsWidget.tsx:115 +msgid "Requires Superuser" +msgstr "" + +#: src/components/dashboard/widgets/NewsWidget.tsx:116 +msgid "This widget requires superuser permissions" +msgstr "" + +#: src/components/dashboard/widgets/NewsWidget.tsx:133 +msgid "No News" +msgstr "" + +#: src/components/dashboard/widgets/NewsWidget.tsx:134 +msgid "There are no unread news items" +msgstr "" + +#: src/components/details/Details.tsx:300 msgid "No name defined" msgstr "Nie zdefiniowano nazwy" -#: src/components/details/DetailsImage.tsx:65 +#: src/components/details/DetailsImage.tsx:69 msgid "Remove Image" msgstr "Usuń obraz" -#: src/components/details/DetailsImage.tsx:68 +#: src/components/details/DetailsImage.tsx:72 msgid "Remove the associated image from this item?" msgstr "Usunąć powiązany obrazek z tego elementu?" -#: src/components/details/DetailsImage.tsx:71 -#: src/forms/StockForms.tsx:533 +#: src/components/details/DetailsImage.tsx:75 +#: src/forms/StockForms.tsx:651 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:199 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:306 -#: src/pages/stock/StockDetail.tsx:526 +#: src/pages/stock/StockDetail.tsx:690 msgid "Remove" msgstr "Usuń" -#: src/components/details/DetailsImage.tsx:71 -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:158 -#: src/components/items/ActionDropdown.tsx:215 -#: src/components/items/ActionDropdown.tsx:216 -#: src/contexts/ThemeContext.tsx:43 +#: src/components/details/DetailsImage.tsx:75 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:184 +#: src/components/items/ActionDropdown.tsx:268 +#: src/components/items/ActionDropdown.tsx:269 +#: src/contexts/ThemeContext.tsx:45 #: src/hooks/UseForm.tsx:40 -#: src/tables/FilterSelectDrawer.tsx:205 -#: src/tables/build/BuildOutputTable.tsx:286 +#: src/tables/FilterSelectDrawer.tsx:241 +#: src/tables/RowActions.tsx:59 +#: src/tables/build/BuildOutputTable.tsx:434 msgid "Cancel" msgstr "Anuluj" -#: src/components/details/DetailsImage.tsx:97 +#: src/components/details/DetailsImage.tsx:101 msgid "Drag and drop to upload" msgstr "Przeciągnij i upuść, aby przesłać" -#: src/components/details/DetailsImage.tsx:100 +#: src/components/details/DetailsImage.tsx:104 msgid "Click to select file(s)" msgstr "Kliknij, aby wybrać plik(i)" -#: src/components/details/DetailsImage.tsx:226 +#: src/components/details/DetailsImage.tsx:230 msgid "Clear" msgstr "Wyczyść" -#: src/components/details/DetailsImage.tsx:232 -#: src/components/forms/ApiForm.tsx:627 -#: src/contexts/ThemeContext.tsx:43 -#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:60 +#: src/components/details/DetailsImage.tsx:236 +#: src/components/forms/ApiForm.tsx:660 +#: src/contexts/ThemeContext.tsx:45 msgid "Submit" msgstr "Zatwierdź" -#: src/components/details/DetailsImage.tsx:272 +#: src/components/details/DetailsImage.tsx:280 msgid "Select from existing images" msgstr "Wybierz z istniejących obrazów" -#: src/components/details/DetailsImage.tsx:280 +#: src/components/details/DetailsImage.tsx:288 msgid "Select Image" msgstr "Wybierz obraz" -#: src/components/details/DetailsImage.tsx:292 +#: src/components/details/DetailsImage.tsx:304 +msgid "Download remote image" +msgstr "" + +#: src/components/details/DetailsImage.tsx:319 msgid "Upload new image" msgstr "Prześlij nowy obraz" -#: src/components/details/DetailsImage.tsx:299 +#: src/components/details/DetailsImage.tsx:326 msgid "Upload Image" msgstr "Prześlij obrazek" -#: src/components/details/DetailsImage.tsx:312 +#: src/components/details/DetailsImage.tsx:339 msgid "Delete image" msgstr "Usuń obraz" +#: src/components/details/DetailsImage.tsx:373 +msgid "Download Image" +msgstr "" + +#: src/components/details/DetailsImage.tsx:378 +msgid "Image downloaded successfully" +msgstr "" + #: src/components/details/PartIcons.tsx:43 #~ msgid "Part is a template part (variants can be made from this part)" #~ msgstr "Part is a template part (variants can be made from this part)" @@ -235,36 +514,57 @@ msgstr "Usuń obraz" #~ msgid "Part is virtual (not a physical part)" #~ msgstr "Part is virtual (not a physical part)" -#: src/components/editors/NotesEditor.tsx:66 +#: src/components/editors/NotesEditor.tsx:74 msgid "Image upload failed" msgstr "Przesłanie obrazu nie powiodło się" -#: src/components/editors/NotesEditor.tsx:156 -#: src/components/forms/ApiForm.tsx:467 +#: src/components/editors/NotesEditor.tsx:83 +#: src/components/editors/NotesEditor.tsx:119 +#: src/components/forms/ApiForm.tsx:475 #: src/tables/bom/BomTable.tsx:441 msgid "Success" msgstr "Sukces" -#: src/components/editors/NotesEditor.tsx:157 +#: src/components/editors/NotesEditor.tsx:84 +msgid "Image uploaded successfully" +msgstr "" + +#: src/components/editors/NotesEditor.tsx:120 msgid "Notes saved successfully" msgstr "Notatki zapisane pomyślnie" -#: src/components/editors/NotesEditor.tsx:166 +#: src/components/editors/NotesEditor.tsx:131 msgid "Failed to save notes" msgstr "Nie udało się zapisać notatek" -#: src/components/editors/NotesEditor.tsx:198 -msgid "Preview Notes" -msgstr "Podgląd notatek" +#: src/components/editors/NotesEditor.tsx:134 +msgid "Error Saving Notes" +msgstr "" -#: src/components/editors/NotesEditor.tsx:198 -msgid "Edit Notes" -msgstr "Edytuj notatki" +#: src/components/editors/NotesEditor.tsx:151 +#~ msgid "Disable Editing" +#~ msgstr "Disable Editing" -#: src/components/editors/NotesEditor.tsx:212 +#: src/components/editors/NotesEditor.tsx:154 msgid "Save Notes" msgstr "Zapisz notatki" +#: src/components/editors/NotesEditor.tsx:173 +msgid "Close Editor" +msgstr "" + +#: src/components/editors/NotesEditor.tsx:180 +msgid "Enable Editing" +msgstr "" + +#: src/components/editors/NotesEditor.tsx:198 +#~ msgid "Preview Notes" +#~ msgstr "Preview Notes" + +#: src/components/editors/NotesEditor.tsx:198 +#~ msgid "Edit Notes" +#~ msgstr "Edit Notes" + #: src/components/editors/TemplateEditor/CodeEditor/index.tsx:9 msgid "Code" msgstr "Kod" @@ -281,40 +581,44 @@ msgstr "Podgląd niedostępny, kliknij \"Odśwież podgląd\"." msgid "PDF Preview" msgstr "Podgląd PDF" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:104 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:115 msgid "Error loading template" msgstr "Błąd ładowania szablonu" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:116 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:127 msgid "Error saving template" msgstr "Wystąpił błąd zapisywania szablonu" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:146 -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:274 -msgid "Save & Reload Preview" -msgstr "Zapisz i odśwież podgląd" - -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:151 -msgid "Are you sure you want to Save & Reload the preview?" -msgstr "Czy na pewno chcesz zapisać i przeładować podgląd?" - #: src/components/editors/TemplateEditor/TemplateEditor.tsx:151 #~ msgid "Save & Reload preview?" #~ msgstr "Save & Reload preview?" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:153 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:155 +msgid "Could not load the template from the server." +msgstr "" + +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:172 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:303 +msgid "Save & Reload Preview" +msgstr "Zapisz i odśwież podgląd" + +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:177 +msgid "Are you sure you want to Save & Reload the preview?" +msgstr "Czy na pewno chcesz zapisać i przeładować podgląd?" + +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:179 msgid "To render the preview the current template needs to be replaced on the server with your modifications which may break the label if it is under active use. Do you want to proceed?" msgstr "" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:157 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:183 msgid "Save & Reload" msgstr "Zapisz i odśwież" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:189 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:215 msgid "Preview updated" msgstr "Podgląd zaktualizowany" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:190 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:216 msgid "The preview has been updated successfully." msgstr "Podgląd został pomyślnie zaktualizowany." @@ -322,15 +626,15 @@ msgstr "Podgląd został pomyślnie zaktualizowany." #~ msgid "Save & Reload preview" #~ msgstr "Save & Reload preview" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:266 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:295 msgid "Reload preview" msgstr "Odśwież podgląd" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:267 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:296 msgid "Use the currently stored template from the server" msgstr "" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:275 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:304 msgid "Save the current template and reload the preview" msgstr "" @@ -338,11 +642,11 @@ msgstr "" #~ msgid "to preview" #~ msgstr "to preview" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:333 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:365 msgid "Select instance to preview" msgstr "Wybierz instancję do podglądu" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:377 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:409 msgid "Error rendering template" msgstr "Błąd renderowania szablonu" @@ -379,6 +683,7 @@ msgid "This page does not exist" msgstr "Strona nieistnieje" #: src/components/errors/PermissionDenied.tsx:8 +#: src/functions/notifications.tsx:24 msgid "Permission Denied" msgstr "Odmowa dostępu" @@ -394,8 +699,8 @@ msgstr "Błąd serwera" msgid "A server error occurred" msgstr "Wystąpił błąd serwera" -#: src/components/forms/ApiForm.tsx:151 -#: src/components/forms/ApiForm.tsx:555 +#: src/components/forms/ApiForm.tsx:154 +#: src/components/forms/ApiForm.tsx:579 msgid "Form Error" msgstr "Błąd formularza" @@ -403,22 +708,22 @@ msgstr "Błąd formularza" #~ msgid "Form Errors Exist" #~ msgstr "Form Errors Exist" -#: src/components/forms/ApiForm.tsx:563 +#: src/components/forms/ApiForm.tsx:587 msgid "Errors exist for one or more form fields" msgstr "Istnieją błędy dla jednego lub więcej pól formularzy" -#: src/components/forms/ApiForm.tsx:665 -#: src/tables/plugin/PluginListTable.tsx:388 +#: src/components/forms/ApiForm.tsx:698 +#: src/tables/plugin/PluginListTable.tsx:195 msgid "Update" msgstr "Aktualizuj" -#: src/components/forms/ApiForm.tsx:685 -#: src/components/items/ActionDropdown.tsx:195 +#: src/components/forms/ApiForm.tsx:718 +#: src/components/items/ActionDropdown.tsx:248 #: src/hooks/UseForm.tsx:122 -#: src/pages/Index/Scan.tsx:343 +#: src/pages/Index/Scan.tsx:357 #: src/pages/Notifications.tsx:123 -#: src/tables/RowActions.tsx:43 -#: src/tables/plugin/PluginListTable.tsx:420 +#: src/tables/RowActions.tsx:49 +#: src/tables/plugin/PluginListTable.tsx:232 msgid "Delete" msgstr "Usuń" @@ -428,14 +733,6 @@ msgstr "Usuń" #~ msgid "Check your your input and try again." #~ msgstr "Check your your input and try again." -#: src/components/forms/AuthenticationForm.tsx:51 -msgid "Login successful" -msgstr "Zalogowano pomyślnie" - -#: src/components/forms/AuthenticationForm.tsx:52 -msgid "Logged in successfully" -msgstr "Zalogowano pomyślnie" - #: src/components/forms/AuthenticationForm.tsx:52 #~ msgid "Welcome back!" #~ msgstr "Welcome back!" @@ -444,14 +741,22 @@ msgstr "Zalogowano pomyślnie" #~ msgid "Login successfull" #~ msgstr "Login successfull" -#: src/components/forms/AuthenticationForm.tsx:58 +#: src/components/forms/AuthenticationForm.tsx:55 +msgid "Login successful" +msgstr "Zalogowano pomyślnie" + +#: src/components/forms/AuthenticationForm.tsx:56 +msgid "Logged in successfully" +msgstr "Zalogowano pomyślnie" + +#: src/components/forms/AuthenticationForm.tsx:61 msgid "Login failed" msgstr "Logowanie nie powiodło się" -#: src/components/forms/AuthenticationForm.tsx:59 -#: src/components/forms/AuthenticationForm.tsx:76 -#: src/components/forms/AuthenticationForm.tsx:211 -#: src/functions/auth.tsx:164 +#: src/components/forms/AuthenticationForm.tsx:62 +#: src/components/forms/AuthenticationForm.tsx:79 +#: src/components/forms/AuthenticationForm.tsx:214 +#: src/functions/auth.tsx:175 msgid "Check your input and try again." msgstr "Sprawdź dane i spróbuj ponownie." @@ -460,45 +765,46 @@ msgstr "Sprawdź dane i spróbuj ponownie." #~ msgid "Mail delivery successfull" #~ msgstr "Mail delivery successfull" -#: src/components/forms/AuthenticationForm.tsx:70 -#: src/functions/auth.tsx:155 +#: src/components/forms/AuthenticationForm.tsx:73 +#: src/functions/auth.tsx:166 msgid "Mail delivery successful" msgstr "Wiadomość dostarczona" -#: src/components/forms/AuthenticationForm.tsx:71 +#: src/components/forms/AuthenticationForm.tsx:74 msgid "Check your inbox for the login link. If you have an account, you will receive a login link. Check in spam too." msgstr "" -#: src/components/forms/AuthenticationForm.tsx:75 +#: src/components/forms/AuthenticationForm.tsx:78 msgid "Mail delivery failed" msgstr "Dostawa poczty nie powiodła się" -#: src/components/forms/AuthenticationForm.tsx:95 +#: src/components/forms/AuthenticationForm.tsx:98 msgid "Or continue with other methods" msgstr "Lub kontynuuj za pomocą innych metod" -#: src/components/forms/AuthenticationForm.tsx:106 -#: src/components/forms/AuthenticationForm.tsx:227 +#: src/components/forms/AuthenticationForm.tsx:109 +#: src/components/forms/AuthenticationForm.tsx:230 +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:67 msgid "Username" msgstr "Nazwa użytkownika" -#: src/components/forms/AuthenticationForm.tsx:107 -#: src/components/forms/AuthenticationForm.tsx:228 +#: src/components/forms/AuthenticationForm.tsx:110 +#: src/components/forms/AuthenticationForm.tsx:231 msgid "Your username" msgstr "Twoja nazwa użytkownika" -#: src/components/forms/AuthenticationForm.tsx:112 -#: src/components/forms/AuthenticationForm.tsx:240 -#: src/pages/Auth/Set-Password.tsx:106 +#: src/components/forms/AuthenticationForm.tsx:115 +#: src/components/forms/AuthenticationForm.tsx:243 +#: src/pages/Auth/Set-Password.tsx:101 msgid "Password" msgstr "Hasło" -#: src/components/forms/AuthenticationForm.tsx:113 -#: src/components/forms/AuthenticationForm.tsx:241 +#: src/components/forms/AuthenticationForm.tsx:116 +#: src/components/forms/AuthenticationForm.tsx:244 msgid "Your password" msgstr "Twoje hasło" -#: src/components/forms/AuthenticationForm.tsx:125 +#: src/components/forms/AuthenticationForm.tsx:128 #: src/pages/Auth/Reset.tsx:26 msgid "Reset password" msgstr "Resetuj hasło" @@ -507,77 +813,79 @@ msgstr "Resetuj hasło" #~ msgid "Log in" #~ msgstr "Log in" -#: src/components/forms/AuthenticationForm.tsx:134 -#: src/components/forms/AuthenticationForm.tsx:233 +#: src/components/forms/AuthenticationForm.tsx:136 +#~ msgid "I will use username and password" +#~ msgstr "I will use username and password" + +#: src/components/forms/AuthenticationForm.tsx:137 +#: src/components/forms/AuthenticationForm.tsx:236 #: src/pages/Auth/Reset.tsx:31 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:51 msgid "Email" msgstr "Adres E-Mail" -#: src/components/forms/AuthenticationForm.tsx:135 +#: src/components/forms/AuthenticationForm.tsx:138 #: src/pages/Auth/Reset.tsx:32 -#: src/pages/Auth/Set-Password.tsx:107 +#: src/pages/Auth/Set-Password.tsx:102 msgid "We will send you a link to login - if you are registered" msgstr "Wyślemy Ci link do logowania - jeśli jesteś zarejestrowany" -#: src/components/forms/AuthenticationForm.tsx:136 -#~ msgid "I will use username and password" -#~ msgstr "I will use username and password" - -#: src/components/forms/AuthenticationForm.tsx:151 +#: src/components/forms/AuthenticationForm.tsx:154 msgid "Send me an email" msgstr "Wyślij mi e-mail" -#: src/components/forms/AuthenticationForm.tsx:153 +#: src/components/forms/AuthenticationForm.tsx:156 msgid "Use username and password" msgstr "Użyj nazwy użytkownika i hasła" -#: src/components/forms/AuthenticationForm.tsx:162 +#: src/components/forms/AuthenticationForm.tsx:165 msgid "Log In" msgstr "Zaloguj się" -#: src/components/forms/AuthenticationForm.tsx:164 +#: src/components/forms/AuthenticationForm.tsx:167 +#: src/pages/Auth/Reset.tsx:41 +#: src/pages/Auth/Set-Password.tsx:107 msgid "Send Email" msgstr "Wyślij e-mail" -#: src/components/forms/AuthenticationForm.tsx:193 +#: src/components/forms/AuthenticationForm.tsx:196 msgid "Registration successful" msgstr "Rejestracja powiodła się" -#: src/components/forms/AuthenticationForm.tsx:194 +#: src/components/forms/AuthenticationForm.tsx:197 msgid "Please confirm your email address to complete the registration" msgstr "Proszę potwierdzić swój adres e-mail, aby zakończyć rejestrację" -#: src/components/forms/AuthenticationForm.tsx:210 +#: src/components/forms/AuthenticationForm.tsx:213 msgid "Input error" msgstr "Błąd danych wejściowych" -#: src/components/forms/AuthenticationForm.tsx:234 +#: src/components/forms/AuthenticationForm.tsx:237 msgid "This will be used for a confirmation" msgstr "To będzie używane do potwierdzenia" -#: src/components/forms/AuthenticationForm.tsx:246 +#: src/components/forms/AuthenticationForm.tsx:249 msgid "Password repeat" msgstr "Hasło (powtórz)" -#: src/components/forms/AuthenticationForm.tsx:247 +#: src/components/forms/AuthenticationForm.tsx:250 msgid "Repeat password" msgstr "Powtórz hasło" -#: src/components/forms/AuthenticationForm.tsx:259 -#: src/components/forms/AuthenticationForm.tsx:304 +#: src/components/forms/AuthenticationForm.tsx:262 +#: src/components/forms/AuthenticationForm.tsx:307 msgid "Register" msgstr "Rejestracja" -#: src/components/forms/AuthenticationForm.tsx:265 +#: src/components/forms/AuthenticationForm.tsx:268 msgid "Or use SSO" msgstr "Lub użyj SSO" -#: src/components/forms/AuthenticationForm.tsx:296 +#: src/components/forms/AuthenticationForm.tsx:299 msgid "Don't have an account?" msgstr "Nie masz konta?" -#: src/components/forms/AuthenticationForm.tsx:315 +#: src/components/forms/AuthenticationForm.tsx:318 msgid "Go back to login" msgstr "Wróć do logowania" @@ -588,19 +896,20 @@ msgstr "Host" #: src/components/forms/HostOptionsForm.tsx:42 #: src/components/forms/HostOptionsForm.tsx:70 +#: src/components/plugins/PluginDrawer.tsx:69 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:410 +#: src/pages/Index/Settings/AdminCenter/UnitManagmentPanel.tsx:19 #: src/pages/part/CategoryDetail.tsx:81 -#: src/pages/part/PartDetail.tsx:143 -#: src/pages/stock/LocationDetail.tsx:89 -#: src/tables/machine/MachineTypeTable.tsx:65 -#: src/tables/machine/MachineTypeTable.tsx:109 -#: src/tables/machine/MachineTypeTable.tsx:216 -#: src/tables/machine/MachineTypeTable.tsx:319 +#: src/pages/part/PartDetail.tsx:164 +#: src/pages/stock/LocationDetail.tsx:83 +#: src/tables/machine/MachineTypeTable.tsx:70 +#: src/tables/machine/MachineTypeTable.tsx:119 +#: src/tables/machine/MachineTypeTable.tsx:237 +#: src/tables/machine/MachineTypeTable.tsx:340 #: src/tables/plugin/PluginErrorTable.tsx:33 -#: src/tables/plugin/PluginListTable.tsx:126 #: src/tables/purchasing/ManufacturerPartParameterTable.tsx:32 #: src/tables/settings/GroupTable.tsx:147 -#: src/tables/settings/PendingTasksTable.tsx:28 +#: src/tables/settings/PendingTasksTable.tsx:32 #: src/tables/stock/LocationTypesTable.tsx:69 msgid "Name" msgstr "Nazwa" @@ -650,7 +959,7 @@ msgid "Uncategorized" msgstr "Bez kategorii" #: src/components/forms/fields/IconField.tsx:209 -#: src/components/nav/Layout.tsx:70 +#: src/components/nav/Layout.tsx:77 #: src/tables/part/PartThumbTable.tsx:192 msgid "Search..." msgstr "Szukaj..." @@ -667,28 +976,27 @@ msgstr "Wybierz paczkę" msgid "{0} icons" msgstr "" -#: src/components/forms/fields/RelatedModelField.tsx:318 -#: src/pages/Index/Settings/UserSettings.tsx:96 +#: src/components/forms/fields/RelatedModelField.tsx:319 +#: src/pages/Index/Settings/UserSettings.tsx:97 #: src/tables/Search.tsx:23 msgid "Search" msgstr "Szukaj" -#: src/components/forms/fields/RelatedModelField.tsx:319 +#: src/components/forms/fields/RelatedModelField.tsx:320 #: src/components/modals/AboutInvenTreeModal.tsx:81 -#: src/components/widgets/WidgetLayout.tsx:120 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:316 msgid "Loading" msgstr "Wczytuję" -#: src/components/forms/fields/RelatedModelField.tsx:321 +#: src/components/forms/fields/RelatedModelField.tsx:322 msgid "No results found" msgstr "Nie znaleziono wyników" -#: src/components/forms/fields/TableField.tsx:52 -msgid "modelRenderer entry required for tables" -msgstr "" +#: src/components/forms/fields/TableField.tsx:72 +#~ msgid "modelRenderer entry required for tables" +#~ msgstr "modelRenderer entry required for tables" -#: src/components/forms/fields/TableField.tsx:76 +#: src/components/forms/fields/TableField.tsx:167 msgid "No entries available" msgstr "Brak wpisów" @@ -741,7 +1049,7 @@ msgid "Filter by row validation status" msgstr "Filtruj według stanu walidacji wierszy" #: src/components/importer/ImportDataSelector.tsx:365 -#: src/tables/build/BuildOutputTable.tsx:266 +#: src/tables/build/BuildOutputTable.tsx:407 msgid "Complete" msgstr "Zakończono" @@ -749,20 +1057,21 @@ msgstr "Zakończono" msgid "Filter by row completion status" msgstr "" -#: src/components/importer/ImportDataSelector.tsx:383 +#: src/components/importer/ImportDataSelector.tsx:384 msgid "Import selected rows" msgstr "Importuj wybrane wiersze" -#: src/components/importer/ImportDataSelector.tsx:398 +#: src/components/importer/ImportDataSelector.tsx:399 msgid "Processing Data" msgstr "Przetwarzanie danych" -#: src/components/importer/ImporterColumnSelector.tsx:50 -#: src/components/importer/ImporterColumnSelector.tsx:176 +#: src/components/importer/ImporterColumnSelector.tsx:53 +#: src/components/importer/ImporterColumnSelector.tsx:179 +#: src/components/items/ErrorItem.tsx:12 msgid "An error occurred" msgstr "Wystąpił błąd" -#: src/components/importer/ImporterColumnSelector.tsx:62 +#: src/components/importer/ImporterColumnSelector.tsx:65 msgid "Select column, or leave blank to ignore this field." msgstr "Wybierz kolumnę lub pozostaw puste, aby zignorować to pole." @@ -778,51 +1087,51 @@ msgstr "Wybierz kolumnę lub pozostaw puste, aby zignorować to pole." #~ msgid "Imported Column Name" #~ msgstr "Imported Column Name" -#: src/components/importer/ImporterColumnSelector.tsx:182 +#: src/components/importer/ImporterColumnSelector.tsx:185 msgid "Ignore this field" msgstr "Ignoruj to pole" -#: src/components/importer/ImporterColumnSelector.tsx:196 +#: src/components/importer/ImporterColumnSelector.tsx:199 msgid "Mapping data columns to database fields" msgstr "Odwzorowanie kolumn danych do pól bazy" -#: src/components/importer/ImporterColumnSelector.tsx:201 +#: src/components/importer/ImporterColumnSelector.tsx:204 msgid "Accept Column Mapping" msgstr "Akceptuj mapowanie kolumn" -#: src/components/importer/ImporterColumnSelector.tsx:214 +#: src/components/importer/ImporterColumnSelector.tsx:217 msgid "Database Field" msgstr "Pole bazy danych" -#: src/components/importer/ImporterColumnSelector.tsx:215 +#: src/components/importer/ImporterColumnSelector.tsx:218 msgid "Field Description" msgstr "Opis pola" -#: src/components/importer/ImporterColumnSelector.tsx:216 +#: src/components/importer/ImporterColumnSelector.tsx:219 msgid "Imported Column" msgstr "Zaimportowana kolumna" -#: src/components/importer/ImporterColumnSelector.tsx:217 +#: src/components/importer/ImporterColumnSelector.tsx:220 msgid "Default Value" msgstr "Wartość domyślna" -#: src/components/importer/ImporterDrawer.tsx:44 +#: src/components/importer/ImporterDrawer.tsx:46 msgid "Upload File" msgstr "Wyślij plik" -#: src/components/importer/ImporterDrawer.tsx:45 +#: src/components/importer/ImporterDrawer.tsx:47 msgid "Map Columns" msgstr "Przypisz kolumny" -#: src/components/importer/ImporterDrawer.tsx:46 +#: src/components/importer/ImporterDrawer.tsx:48 msgid "Import Data" msgstr "Importuj dane" -#: src/components/importer/ImporterDrawer.tsx:47 +#: src/components/importer/ImporterDrawer.tsx:49 msgid "Process Data" msgstr "Przetwórz dane" -#: src/components/importer/ImporterDrawer.tsx:48 +#: src/components/importer/ImporterDrawer.tsx:50 msgid "Complete Import" msgstr "Zakończ import" @@ -830,28 +1139,28 @@ msgstr "Zakończ import" #~ msgid "Cancel import session" #~ msgstr "Cancel import session" -#: src/components/importer/ImporterDrawer.tsx:104 +#: src/components/importer/ImporterDrawer.tsx:106 msgid "Import Complete" msgstr "Import zakończony" -#: src/components/importer/ImporterDrawer.tsx:107 +#: src/components/importer/ImporterDrawer.tsx:109 msgid "Data has been imported successfully" msgstr "Dane zostały zaimportowane" -#: src/components/importer/ImporterDrawer.tsx:109 -#: src/components/importer/ImporterDrawer.tsx:118 +#: src/components/importer/ImporterDrawer.tsx:111 +#: src/components/importer/ImporterDrawer.tsx:120 msgid "Close" msgstr "Zamknij" -#: src/components/importer/ImporterDrawer.tsx:115 +#: src/components/importer/ImporterDrawer.tsx:117 msgid "Unknown Status" msgstr "Status nieznany" -#: src/components/importer/ImporterDrawer.tsx:116 +#: src/components/importer/ImporterDrawer.tsx:118 msgid "Import session has unknown status" msgstr "Sesja importu ma nieznany status" -#: src/components/importer/ImporterDrawer.tsx:135 +#: src/components/importer/ImporterDrawer.tsx:137 msgid "Importing Data" msgstr "Importowanie danych" @@ -860,85 +1169,115 @@ msgid "Importing Records" msgstr "Importowanie wpisów" #: src/components/importer/ImporterImportProgress.tsx:39 -msgid "Imported rows" -msgstr "Zaimportowane wiersze" +#: src/tables/settings/ImportSessionTable.tsx:78 +msgid "Imported Rows" +msgstr "" -#: src/components/items/ActionDropdown.tsx:121 +#: src/components/importer/ImporterImportProgress.tsx:39 +#~ msgid "Imported rows" +#~ msgstr "Imported rows" + +#: src/components/items/ActionDropdown.tsx:126 +msgid "Options" +msgstr "" + +#: src/components/items/ActionDropdown.tsx:140 +#~ msgid "View Barcode" +#~ msgstr "View Barcode" + +#: src/components/items/ActionDropdown.tsx:162 +#: src/tables/InvenTreeTableHeader.tsx:159 +#: src/tables/InvenTreeTableHeader.tsx:160 msgid "Barcode Actions" msgstr "Akcje kodów kreskowych" -#: src/components/items/ActionDropdown.tsx:140 -msgid "View Barcode" -msgstr "Pokaż kod kreskowy" +#: src/components/items/ActionDropdown.tsx:162 +#~ msgid "Link custom barcode" +#~ msgstr "Link custom barcode" -#: src/components/items/ActionDropdown.tsx:147 +#: src/components/items/ActionDropdown.tsx:167 msgid "View" msgstr "" -#: src/components/items/ActionDropdown.tsx:148 +#: src/components/items/ActionDropdown.tsx:169 msgid "View barcode" msgstr "Pokaż kod kreskowy" -#: src/components/items/ActionDropdown.tsx:161 +#: src/components/items/ActionDropdown.tsx:175 msgid "Link Barcode" msgstr "Połącz Kod Kreskowy" -#: src/components/items/ActionDropdown.tsx:162 -msgid "Link custom barcode" -msgstr "Podłącz własny kod kreskowy" +#: src/components/items/ActionDropdown.tsx:177 +msgid "Link a custom barcode to this item" +msgstr "" -#: src/components/items/ActionDropdown.tsx:173 -#: src/forms/PurchaseOrderForms.tsx:426 +#: src/components/items/ActionDropdown.tsx:183 +#: src/components/items/QRCode.tsx:193 +#: src/forms/PurchaseOrderForms.tsx:464 msgid "Unlink Barcode" msgstr "Odłącz Kod Kreskowy" -#: src/components/items/ActionDropdown.tsx:174 +#: src/components/items/ActionDropdown.tsx:185 msgid "Unlink custom barcode" msgstr "Odłącz własny kod kreskowy" -#: src/components/items/ActionDropdown.tsx:183 -#: src/tables/RowActions.tsx:33 +#: src/components/items/ActionDropdown.tsx:236 +#: src/tables/RowActions.tsx:39 msgid "Edit" msgstr "Edytuj" -#: src/components/items/ActionDropdown.tsx:184 +#: src/components/items/ActionDropdown.tsx:237 msgid "Edit item" msgstr "" -#: src/components/items/ActionDropdown.tsx:196 +#: src/components/items/ActionDropdown.tsx:249 msgid "Delete item" msgstr "Usuń element" -#: src/components/items/ActionDropdown.tsx:204 -#: src/components/items/ActionDropdown.tsx:205 +#: src/components/items/ActionDropdown.tsx:257 +#: src/components/items/ActionDropdown.tsx:258 msgid "Hold" msgstr "Wstrzymaj" -#: src/components/items/ActionDropdown.tsx:227 -#: src/tables/RowActions.tsx:23 +#: src/components/items/ActionDropdown.tsx:280 +#: src/tables/RowActions.tsx:29 msgid "Duplicate" msgstr "Zduplikuj" -#: src/components/items/ActionDropdown.tsx:228 +#: src/components/items/ActionDropdown.tsx:281 msgid "Duplicate item" msgstr "Duplikuj pozycję" +#: src/components/items/BarcodeInput.tsx:23 +msgid "Scan barcode data here using barcode scanner" +msgstr "" + +#: src/components/items/BarcodeInput.tsx:24 +#: src/tables/settings/BarcodeScanHistoryTable.tsx:65 +msgid "Barcode" +msgstr "" + +#: src/components/items/BarcodeInput.tsx:25 +msgid "Scan" +msgstr "" + #: src/components/items/DocTooltip.tsx:92 +#: src/components/items/GettingStartedCarousel.tsx:20 msgid "Read More" msgstr "Czytaj dalej" -#: src/components/items/ErrorItem.tsx:5 -#: src/tables/InvenTreeTable.tsx:487 +#: src/components/items/ErrorItem.tsx:8 +#: src/tables/InvenTreeTable.tsx:473 msgid "Unknown error" msgstr "Nieznany błąd" -#: src/components/items/ErrorItem.tsx:10 -msgid "An error occurred:" -msgstr "Wystąpił błąd:" +#: src/components/items/ErrorItem.tsx:13 +#~ msgid "An error occurred:" +#~ msgstr "An error occurred:" #: src/components/items/GettingStartedCarousel.tsx:27 -msgid "Read more" -msgstr "Czytaj dalej" +#~ msgid "Read more" +#~ msgstr "Read more" #: src/components/items/InfoItem.tsx:27 msgid "None" @@ -965,30 +1304,51 @@ msgstr "" msgid "This panel is a placeholder." msgstr "Ten panel jest placeholder." -#: src/components/items/QRCode.tsx:87 +#: src/components/items/QRCode.tsx:89 msgid "Low (7%)" msgstr "Niski (7%)" -#: src/components/items/QRCode.tsx:88 +#: src/components/items/QRCode.tsx:90 msgid "Medium (15%)" msgstr "Średni (15%)" -#: src/components/items/QRCode.tsx:89 +#: src/components/items/QRCode.tsx:91 msgid "Quartile (25%)" msgstr "Kwartyl (25%)" -#: src/components/items/QRCode.tsx:90 +#: src/components/items/QRCode.tsx:92 msgid "High (30%)" msgstr "Wysoki (30%)" -#: src/components/items/QRCode.tsx:107 +#: src/components/items/QRCode.tsx:100 +msgid "Custom barcode" +msgstr "" + +#: src/components/items/QRCode.tsx:101 +msgid "A custom barcode is registered for this item. The shown code is not that custom barcode." +msgstr "" + +#: src/components/items/QRCode.tsx:118 msgid "Barcode Data:" msgstr "Dane kodu kreskowego:" -#: src/components/items/QRCode.tsx:118 +#: src/components/items/QRCode.tsx:129 msgid "Select Error Correction Level" msgstr "Wybierz poziom korekty błędów" +#: src/components/items/QRCode.tsx:171 +#: src/pages/part/PartDetail.tsx:239 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:187 +#: src/pages/sales/ReturnOrderDetail.tsx:157 +#: src/pages/sales/SalesOrderDetail.tsx:169 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:166 +msgid "Link" +msgstr "" + +#: src/components/items/QRCode.tsx:190 +msgid "This will remove the link to the associated barcode" +msgstr "" + #: src/components/modals/AboutInvenTreeModal.tsx:99 msgid "Version Information" msgstr "Informacje o wersji" @@ -1062,11 +1422,11 @@ msgstr "Aplikacja mobilna" msgid "Submit Bug Report" msgstr "Prześlij raport o błędzie" -#: src/components/modals/AboutInvenTreeModal.tsx:183 +#: src/components/modals/AboutInvenTreeModal.tsx:181 msgid "Copy version information" msgstr "Kopiuj informacje o wersji" -#: src/components/modals/AboutInvenTreeModal.tsx:192 +#: src/components/modals/AboutInvenTreeModal.tsx:189 #: src/components/modals/ServerInfoModal.tsx:147 msgid "Dismiss" msgstr "Odrzuć" @@ -1091,61 +1451,20 @@ msgstr "Nie udało się pobrać danych dotyczących licencji" msgid "{key} Packages" msgstr "Pakiety: {key}" -#: src/components/modals/QrCodeModal.tsx:72 +#: src/components/modals/QrCodeModal.tsx:24 msgid "Unknown response" msgstr "Nieznana odpowiedź" -#: src/components/modals/QrCodeModal.tsx:102 -#: src/pages/Index/Scan.tsx:636 -msgid "Error while getting camera" -msgstr "Błąd podczas uruchamiania kamery" - -#: src/components/modals/QrCodeModal.tsx:125 -#: src/pages/Index/Scan.tsx:659 -msgid "Error while scanning" -msgstr "Błąd podczas skanowania" - -#: src/components/modals/QrCodeModal.tsx:139 -#: src/pages/Index/Scan.tsx:673 -msgid "Error while stopping" -msgstr "Błąd podczas zatrzymywania" - -#: src/components/modals/QrCodeModal.tsx:154 -#: src/defaults/menuItems.tsx:21 -#: src/pages/Index/Scan.tsx:746 -msgid "Scanning" -msgstr "Skanowanie" - -#: src/components/modals/QrCodeModal.tsx:154 -#: src/pages/Index/Scan.tsx:746 -msgid "Not scanning" -msgstr "Nie skanuje" - -#: src/components/modals/QrCodeModal.tsx:159 -#: src/pages/Index/Scan.tsx:752 -msgid "Select Camera" -msgstr "Wybierz kamerę" - -#: src/components/modals/QrCodeModal.tsx:169 -#: src/pages/Index/Scan.tsx:737 -msgid "Start scanning" -msgstr "Rozpocznij skanowanie" - -#: src/components/modals/QrCodeModal.tsx:176 -#: src/pages/Index/Scan.tsx:729 -msgid "Stop scanning" -msgstr "Zatrzymaj skanowanie" - -#: src/components/modals/QrCodeModal.tsx:181 +#: src/components/modals/QrCodeModal.tsx:39 msgid "No scans yet!" msgstr "Brak skanów!" -#: src/components/modals/QrCodeModal.tsx:201 +#: src/components/modals/QrCodeModal.tsx:57 msgid "Close modal" msgstr "Zamknij okno" #: src/components/modals/ServerInfoModal.tsx:26 -#: src/pages/Index/Settings/SystemSettings.tsx:38 +#: src/pages/Index/Settings/SystemSettings.tsx:37 msgid "Server" msgstr "Serwer" @@ -1206,6 +1525,7 @@ msgid "Background Worker" msgstr "Proces w tle" #: src/components/modals/ServerInfoModal.tsx:101 +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:29 msgid "Background worker not running" msgstr "Proces w tle nie jest uruchomiony" @@ -1218,8 +1538,8 @@ msgid "Email settings not configured" msgstr "Ustawienia e-mail nie zostały skonfigurowane" #: src/components/modals/ServerInfoModal.tsx:121 -#: src/tables/plugin/PluginListTable.tsx:144 -#: src/tables/plugin/PluginListTable.tsx:294 +#: src/components/plugins/PluginDrawer.tsx:89 +#: src/tables/plugin/PluginListTable.tsx:116 msgid "Version" msgstr "Wersja" @@ -1227,7 +1547,7 @@ msgstr "Wersja" msgid "Server Version" msgstr "Wersja serwera" -#: src/components/nav/Layout.tsx:73 +#: src/components/nav/Layout.tsx:80 msgid "Nothing found..." msgstr "Nic nie znaleziono..." @@ -1237,18 +1557,26 @@ msgstr "Nic nie znaleziono..." #~ msgstr "Profile" #: src/components/nav/MainMenu.tsx:52 +#: src/components/nav/NavigationDrawer.tsx:178 #: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:28 msgid "Settings" msgstr "Ustawienia" #: src/components/nav/MainMenu.tsx:59 -#: src/defaults/menuItems.tsx:15 -msgid "Account settings" +#: src/pages/Index/Settings/UserSettings.tsx:152 +msgid "Account Settings" msgstr "Ustawienia konta" +#: src/components/nav/MainMenu.tsx:59 +#: src/defaults/menuItems.tsx:15 +#~ msgid "Account settings" +#~ msgstr "Account settings" + #: src/components/nav/MainMenu.tsx:67 -#: src/defaults/menuItems.tsx:58 -#: src/pages/Index/Settings/SystemSettings.tsx:315 +#: src/components/nav/NavigationDrawer.tsx:141 +#: src/components/nav/SettingsHeader.tsx:49 +#: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:37 +#: src/pages/Index/Settings/SystemSettings.tsx:310 msgid "System Settings" msgstr "Ustawienia systemowe" @@ -1260,14 +1588,11 @@ msgstr "Ustawienia systemowe" #~ msgid "Switch to pseudo language" #~ msgstr "Switch to pseudo language" -#: src/components/nav/MainMenu.tsx:77 -msgid "Change Color Mode" -msgstr "" - #: src/components/nav/MainMenu.tsx:86 -#: src/defaults/actions.tsx:71 -#: src/defaults/menuItems.tsx:63 -#: src/pages/Index/Settings/AdminCenter/Index.tsx:221 +#: src/components/nav/NavigationDrawer.tsx:148 +#: src/components/nav/SettingsHeader.tsx:50 +#: src/defaults/actions.tsx:63 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:251 msgid "Admin Center" msgstr "Centrum Admina" @@ -1275,458 +1600,732 @@ msgstr "Centrum Admina" msgid "Logout" msgstr "Wyloguj się" -#: src/components/nav/NavHoverMenu.tsx:65 -#: src/defaults/actions.tsx:60 -msgid "Open Navigation" -msgstr "Otwórz nawigację" - #: src/components/nav/NavHoverMenu.tsx:84 -msgid "View all" -msgstr "Pokaż wszystkie" +#~ msgid "View all" +#~ msgstr "View all" #: src/components/nav/NavHoverMenu.tsx:100 #: src/components/nav/NavHoverMenu.tsx:110 -msgid "Get started" -msgstr "Pierwsze kroki" +#~ msgid "Get started" +#~ msgstr "Get started" #: src/components/nav/NavHoverMenu.tsx:103 -msgid "Overview over high-level objects, functions and possible usecases." -msgstr "Przegląd obiektów, funkcji i możliwych zastosowań." - -#: src/components/nav/NavigationDrawer.tsx:57 -msgid "Navigation" -msgstr "Nawigacja" +#~ msgid "Overview over high-level objects, functions and possible usecases." +#~ msgstr "Overview over high-level objects, functions and possible usecases." #: src/components/nav/NavigationDrawer.tsx:60 -msgid "Pages" -msgstr "Strony" +#~ msgid "Pages" +#~ msgstr "Pages" -#: src/components/nav/NavigationDrawer.tsx:65 -#: src/pages/Index/Settings/AdminCenter/Index.tsx:176 -#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:41 -msgid "Plugins" -msgstr "Wtyczki" +#: src/components/nav/NavigationDrawer.tsx:77 +#: src/components/render/ModelType.tsx:31 +#: src/defaults/links.tsx:10 +#: src/pages/Index/Settings/SystemSettings.tsx:172 +#: src/pages/part/CategoryDetail.tsx:125 +#: src/pages/part/CategoryDetail.tsx:249 +#: src/pages/part/CategoryDetail.tsx:279 +#: src/pages/part/PartDetail.tsx:856 +msgid "Parts" +msgstr "Komponenty" -#: src/components/nav/NavigationDrawer.tsx:75 -#: src/defaults/actions.tsx:32 -msgid "Documentation" -msgstr "Dokumentacja" +#: src/components/nav/NavigationDrawer.tsx:84 +#: src/components/render/Part.tsx:30 +#: src/defaults/links.tsx:11 +#: src/pages/Index/Settings/SystemSettings.tsx:205 +#: src/pages/part/PartDetail.tsx:593 +#: src/pages/stock/LocationDetail.tsx:352 +#: src/pages/stock/StockDetail.tsx:528 +#: src/tables/stock/StockItemTable.tsx:69 +msgid "Stock" +msgstr "Stan" -#: src/components/nav/NavigationDrawer.tsx:78 -msgid "About" -msgstr "O nas" +#: src/components/nav/NavigationDrawer.tsx:91 +#: src/defaults/links.tsx:13 +#: src/pages/build/BuildDetail.tsx:530 +#: src/pages/build/BuildIndex.tsx:36 +msgid "Manufacturing" +msgstr "" -#: src/components/nav/NotificationDrawer.tsx:92 -#: src/pages/Index/Settings/SystemSettings.tsx:109 -#: src/pages/Index/Settings/UserSettings.tsx:126 +#: src/components/nav/NavigationDrawer.tsx:98 +#: src/defaults/links.tsx:18 +#: src/pages/company/ManufacturerDetail.tsx:9 +#: src/pages/company/ManufacturerPartDetail.tsx:258 +#: src/pages/company/SupplierDetail.tsx:9 +#: src/pages/company/SupplierPartDetail.tsx:336 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:480 +#: src/pages/purchasing/PurchasingIndex.tsx:60 +msgid "Purchasing" +msgstr "Zakupy" + +#: src/components/nav/NavigationDrawer.tsx:105 +#: src/defaults/links.tsx:22 +#: src/pages/company/CustomerDetail.tsx:9 +#: src/pages/sales/ReturnOrderDetail.tsx:469 +#: src/pages/sales/SalesIndex.tsx:53 +#: src/pages/sales/SalesOrderDetail.tsx:520 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:343 +msgid "Sales" +msgstr "Sprzedaże" + +#: src/components/nav/NavigationDrawer.tsx:129 +#: src/components/nav/NotificationDrawer.tsx:178 +#: src/pages/Index/Settings/SystemSettings.tsx:110 +#: src/pages/Index/Settings/UserSettings.tsx:127 #: src/pages/Notifications.tsx:65 #: src/pages/Notifications.tsx:151 msgid "Notifications" msgstr "Powiadomienia" -#: src/components/nav/NotificationDrawer.tsx:94 +#: src/components/nav/NavigationDrawer.tsx:135 +#: src/components/nav/SettingsHeader.tsx:48 +msgid "User Settings" +msgstr "" + +#: src/components/nav/NavigationDrawer.tsx:173 +msgid "Navigation" +msgstr "Nawigacja" + +#: src/components/nav/NavigationDrawer.tsx:183 +#: src/forms/PurchaseOrderForms.tsx:689 +#: src/forms/StockForms.tsx:614 +#: src/forms/StockForms.tsx:651 +#: src/forms/StockForms.tsx:677 +#: src/forms/StockForms.tsx:705 +#: src/forms/StockForms.tsx:736 +#: src/forms/StockForms.tsx:771 +#: src/forms/StockForms.tsx:813 +#: src/forms/StockForms.tsx:851 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:413 +#: src/tables/RowActions.tsx:129 +#: src/tables/build/BuildLineTable.tsx:101 +msgid "Actions" +msgstr "Akcje" + +#: src/components/nav/NavigationDrawer.tsx:191 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:205 +#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:44 +msgid "Plugins" +msgstr "Wtyczki" + +#: src/components/nav/NavigationDrawer.tsx:204 +#: src/defaults/actions.tsx:24 +msgid "Documentation" +msgstr "Dokumentacja" + +#: src/components/nav/NavigationDrawer.tsx:210 +msgid "About" +msgstr "O nas" + +#: src/components/nav/NotificationDrawer.tsx:180 msgid "Mark all as read" msgstr "" -#: src/components/nav/NotificationDrawer.tsx:104 +#: src/components/nav/NotificationDrawer.tsx:190 msgid "View all notifications" msgstr "" -#: src/components/nav/NotificationDrawer.tsx:123 +#: src/components/nav/NotificationDrawer.tsx:210 msgid "You have no unread notifications." msgstr "Nie masz żadnych nowych powiadomień." -#: src/components/nav/NotificationDrawer.tsx:139 -#: src/components/nav/NotificationDrawer.tsx:145 -#: src/tables/notifications/NotificationsTable.tsx:36 -msgid "Notification" -msgstr "Powiadomienie" - -#: src/components/nav/NotificationDrawer.tsx:168 -#: src/pages/Notifications.tsx:73 -msgid "Mark as read" -msgstr "Oznacz jako przeczytane" - -#: src/components/nav/SearchDrawer.tsx:78 +#: src/components/nav/SearchDrawer.tsx:85 msgid "results" msgstr "wyniki" -#: src/components/nav/SearchDrawer.tsx:370 +#: src/components/nav/SearchDrawer.tsx:380 msgid "Enter search text" msgstr "Wpisz frazę, którą chcesz wyszukać" -#: src/components/nav/SearchDrawer.tsx:397 +#: src/components/nav/SearchDrawer.tsx:391 +msgid "Refresh search results" +msgstr "" + +#: src/components/nav/SearchDrawer.tsx:402 +#: src/components/nav/SearchDrawer.tsx:409 msgid "Search Options" msgstr "Opcje wyszukiwania" -#: src/components/nav/SearchDrawer.tsx:400 +#: src/components/nav/SearchDrawer.tsx:412 msgid "Regex search" msgstr "Wyszukiwanie Regex" -#: src/components/nav/SearchDrawer.tsx:410 +#: src/components/nav/SearchDrawer.tsx:421 msgid "Whole word search" msgstr "Wyszukiwanie całych słów" -#: src/components/nav/SearchDrawer.tsx:451 +#: src/components/nav/SearchDrawer.tsx:461 msgid "An error occurred during search query" msgstr "Wystąpił błąd podczas wyszukiwania" #: src/components/nav/SearchDrawer.tsx:462 -msgid "No results" -msgstr "Brak wyników" +#~ msgid "No results" +#~ msgstr "No results" -#: src/components/nav/SearchDrawer.tsx:465 +#: src/components/nav/SearchDrawer.tsx:472 +#: src/tables/part/PartTestTemplateTable.tsx:76 +msgid "No Results" +msgstr "" + +#: src/components/nav/SearchDrawer.tsx:475 msgid "No results available for search query" msgstr "Brak dostępnych wyników wyszukiwania" -#: src/components/render/Instance.tsx:217 +#: src/components/panels/AttachmentPanel.tsx:18 +msgid "Attachments" +msgstr "" + +#: src/components/panels/NotesPanel.tsx:24 +#: src/tables/build/BuildOrderTestTable.tsx:143 +#: src/tables/stock/StockTrackingTable.tsx:204 +msgid "Notes" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:47 +msgid "Plugin Inactive" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:50 +msgid "Plugin is not active" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:60 +msgid "Plugin Information" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:74 +#: src/pages/build/BuildDetail.tsx:116 +#: src/pages/company/CompanyDetail.tsx:89 +#: src/pages/company/ManufacturerPartDetail.tsx:89 +#: src/pages/company/ManufacturerPartDetail.tsx:116 +#: src/pages/company/SupplierPartDetail.tsx:140 +#: src/pages/part/CategoryDetail.tsx:101 +#: src/pages/part/PartDetail.tsx:178 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:136 +#: src/pages/sales/ReturnOrderDetail.tsx:107 +#: src/pages/sales/SalesOrderDetail.tsx:116 +#: src/pages/stock/LocationDetail.tsx:103 +#: src/tables/ColumnRenderers.tsx:92 +#: src/tables/bom/UsedInTable.tsx:44 +#: src/tables/build/BuildAllocatedStockTable.tsx:83 +#: src/tables/build/BuildLineTable.tsx:329 +#: src/tables/machine/MachineTypeTable.tsx:74 +#: src/tables/machine/MachineTypeTable.tsx:129 +#: src/tables/machine/MachineTypeTable.tsx:240 +#: src/tables/machine/MachineTypeTable.tsx:344 +#: src/tables/part/RelatedPartTable.tsx:66 +#: src/tables/plugin/PluginListTable.tsx:99 +#: src/tables/sales/SalesOrderAllocationTable.tsx:87 +#: src/tables/sales/SalesOrderLineItemTable.tsx:75 +#: src/tables/stock/LocationTypesTable.tsx:74 +msgid "Description" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:79 +msgid "Author" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:84 +#: src/pages/part/PartSchedulingDetail.tsx:277 +#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:40 +#: src/pages/part/pricing/SaleHistoryPanel.tsx:38 +#: src/tables/ColumnRenderers.tsx:215 +#: src/tables/build/BuildOrderTestTable.tsx:151 +#: src/tables/settings/StocktakeReportTable.tsx:40 +msgid "Date" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:94 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:398 +#: src/pages/part/PartDetail.tsx:331 +#: src/tables/bom/UsedInTable.tsx:84 +#: src/tables/company/CompanyTable.tsx:62 +#: src/tables/company/CompanyTable.tsx:96 +#: src/tables/machine/MachineListTable.tsx:333 +#: src/tables/machine/MachineListTable.tsx:605 +#: src/tables/part/ParametricPartTable.tsx:223 +#: src/tables/part/PartTable.tsx:178 +#: src/tables/part/PartVariantTable.tsx:15 +#: src/tables/plugin/PluginListTable.tsx:94 +#: src/tables/plugin/PluginListTable.tsx:401 +#: src/tables/purchasing/SupplierPartTable.tsx:100 +#: src/tables/purchasing/SupplierPartTable.tsx:190 +#: src/tables/settings/UserTable.tsx:283 +#: src/tables/stock/StockItemTable.tsx:293 +msgid "Active" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:106 +msgid "Package Name" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:112 +msgid "Installation Path" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:117 +#: src/tables/machine/MachineTypeTable.tsx:152 +#: src/tables/machine/MachineTypeTable.tsx:276 +#: src/tables/plugin/PluginListTable.tsx:406 +msgid "Builtin" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:122 +msgid "Package" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:134 +#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:53 +msgid "Plugin Settings" +msgstr "Ustawienia wtyczki" + +#: src/components/plugins/PluginDrawer.tsx:146 +#: src/components/render/ModelType.tsx:276 +msgid "Plugin Configuration" +msgstr "Konfiguracja wtyczki" + +#: src/components/plugins/PluginPanel.tsx:87 +#~ msgid "Error occurred while rendering plugin content" +#~ msgstr "Error occurred while rendering plugin content" + +#: src/components/plugins/PluginPanel.tsx:91 +#~ msgid "Plugin did not provide panel rendering function" +#~ msgstr "Plugin did not provide panel rendering function" + +#: src/components/plugins/PluginPanel.tsx:103 +#~ msgid "No content provided for this plugin" +#~ msgstr "No content provided for this plugin" + +#: src/components/plugins/PluginPanel.tsx:116 +#: src/components/plugins/PluginSettingsPanel.tsx:76 +#~ msgid "Error Loading Plugin" +#~ msgstr "Error Loading Plugin" + +#: src/components/plugins/PluginSettingsPanel.tsx:51 +#~ msgid "Error occurred while rendering plugin settings" +#~ msgstr "Error occurred while rendering plugin settings" + +#: src/components/plugins/PluginSettingsPanel.tsx:55 +#~ msgid "Plugin did not provide settings rendering function" +#~ msgstr "Plugin did not provide settings rendering function" + +#: src/components/plugins/PluginUIFeature.tsx:100 +msgid "Error occurred while rendering the template editor." +msgstr "" + +#: src/components/plugins/PluginUIFeature.tsx:111 +msgid "Error Loading Plugin Editor" +msgstr "" + +#: src/components/plugins/PluginUIFeature.tsx:147 +msgid "Error occurred while rendering the template preview." +msgstr "" + +#: src/components/plugins/PluginUIFeature.tsx:158 +msgid "Error Loading Plugin Preview" +msgstr "" + +#: src/components/plugins/RemoteComponent.tsx:70 +msgid "Invalid source or function name" +msgstr "" + +#: src/components/plugins/RemoteComponent.tsx:91 +msgid "Error Loading Content" +msgstr "" + +#: src/components/plugins/RemoteComponent.tsx:95 +msgid "Error occurred while loading plugin content" +msgstr "" + +#: src/components/render/Instance.tsx:224 msgid "Unknown model: {model}" msgstr "Nieznany model: {model}" -#: src/components/render/ModelType.tsx:22 -#: src/forms/BuildForms.tsx:213 -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/forms/StockForms.tsx:499 -#: src/forms/StockForms.tsx:533 -#: src/forms/StockForms.tsx:562 -#: src/forms/StockForms.tsx:590 -#: src/forms/StockForms.tsx:621 -#: src/forms/StockForms.tsx:656 -#: src/forms/StockForms.tsx:698 -#: src/forms/StockForms.tsx:734 -#: src/pages/build/BuildDetail.tsx:95 -#: src/pages/part/PartDetail.tsx:1073 -#: src/tables/build/BuildAllocatedStockTable.tsx:82 +#: src/components/render/ModelType.tsx:30 +#: src/forms/BuildForms.tsx:269 +#: src/forms/BuildForms.tsx:337 +#: src/forms/BuildForms.tsx:385 +#: src/forms/BuildForms.tsx:515 +#: src/forms/PurchaseOrderForms.tsx:689 +#: src/forms/ReturnOrderForms.tsx:190 +#: src/forms/SalesOrderForms.tsx:248 +#: src/forms/StockForms.tsx:261 +#: src/forms/StockForms.tsx:614 +#: src/forms/StockForms.tsx:651 +#: src/forms/StockForms.tsx:677 +#: src/forms/StockForms.tsx:705 +#: src/forms/StockForms.tsx:736 +#: src/forms/StockForms.tsx:771 +#: src/forms/StockForms.tsx:813 +#: src/forms/StockForms.tsx:851 +#: src/pages/build/BuildDetail.tsx:90 +#: src/pages/part/PartDetail.tsx:1094 +#: src/tables/build/BuildAllocatedStockTable.tsx:95 +#: src/tables/build/BuildLineTable.tsx:72 #: src/tables/part/PartTable.tsx:28 -#: src/tables/part/RelatedPartTable.tsx:45 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:88 -#: src/tables/sales/SalesOrderAllocationTable.tsx:68 -#: src/tables/stock/StockTrackingTable.tsx:74 +#: src/tables/part/RelatedPartTable.tsx:47 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:130 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:100 +#: src/tables/sales/SalesOrderAllocationTable.tsx:99 +#: src/tables/stock/StockTrackingTable.tsx:78 msgid "Part" msgstr "Komponent" -#: src/components/render/ModelType.tsx:23 -#: src/defaults/links.tsx:29 -#: src/defaults/menuItems.tsx:33 -#: src/pages/Index/Settings/SystemSettings.tsx:173 -#: src/pages/part/CategoryDetail.tsx:119 -#: src/pages/part/CategoryDetail.tsx:244 -#: src/pages/part/CategoryDetail.tsx:274 -#: src/pages/part/PartDetail.tsx:827 -msgid "Parts" -msgstr "Komponenty" - -#: src/components/render/ModelType.tsx:31 +#: src/components/render/ModelType.tsx:40 msgid "Part Parameter Template" msgstr "" -#: src/components/render/ModelType.tsx:32 +#: src/components/render/ModelType.tsx:41 msgid "Part Parameter Templates" msgstr "" -#: src/components/render/ModelType.tsx:38 +#: src/components/render/ModelType.tsx:48 msgid "Part Test Template" msgstr "" -#: src/components/render/ModelType.tsx:39 +#: src/components/render/ModelType.tsx:49 msgid "Part Test Templates" msgstr "" -#: src/components/render/ModelType.tsx:45 -#: src/pages/company/SupplierPartDetail.tsx:203 -#: src/pages/company/SupplierPartDetail.tsx:375 -#: src/pages/stock/StockDetail.tsx:173 -#: src/tables/build/BuildAllocatedStockTable.tsx:131 +#: src/components/render/ModelType.tsx:56 +#: src/pages/company/SupplierPartDetail.tsx:364 +#: src/pages/stock/StockDetail.tsx:194 +#: src/tables/build/BuildAllocatedStockTable.tsx:152 #: src/tables/part/PartPurchaseOrdersTable.tsx:49 -#: src/tables/purchasing/SupplierPartTable.tsx:68 +#: src/tables/purchasing/SupplierPartTable.tsx:70 +#: src/tables/stock/StockItemTable.tsx:229 msgid "Supplier Part" msgstr "Część dostawcy" -#: src/components/render/ModelType.tsx:46 +#: src/components/render/ModelType.tsx:57 msgid "Supplier Parts" msgstr "Części dostawcy" -#: src/components/render/ModelType.tsx:54 -#: src/pages/company/ManufacturerPartDetail.tsx:132 +#: src/components/render/ModelType.tsx:66 #: src/tables/part/PartPurchaseOrdersTable.tsx:55 +#: src/tables/stock/StockItemTable.tsx:234 msgid "Manufacturer Part" msgstr "Część Producenta" -#: src/components/render/ModelType.tsx:55 +#: src/components/render/ModelType.tsx:67 msgid "Manufacturer Parts" msgstr "Części producenta" -#: src/components/render/ModelType.tsx:63 -#: src/pages/part/CategoryDetail.tsx:305 +#: src/components/render/ModelType.tsx:76 +#: src/pages/part/CategoryDetail.tsx:310 msgid "Part Category" msgstr "Kategoria części" -#: src/components/render/ModelType.tsx:64 -#: src/pages/part/CategoryDetail.tsx:258 -#: src/pages/part/CategoryDetail.tsx:296 -#: src/pages/part/PartDetail.tsx:1063 +#: src/components/render/ModelType.tsx:77 +#: src/pages/part/CategoryDetail.tsx:263 +#: src/pages/part/CategoryDetail.tsx:301 +#: src/pages/part/PartDetail.tsx:1084 msgid "Part Categories" msgstr "Kategorie części" -#: src/components/render/ModelType.tsx:72 -#: src/pages/stock/StockDetail.tsx:624 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:94 -#: src/tables/stock/StockTrackingTable.tsx:45 +#: src/components/render/ModelType.tsx:86 +#: src/forms/BuildForms.tsx:337 +#: src/forms/BuildForms.tsx:385 +#: src/forms/BuildForms.tsx:515 +#: src/forms/SalesOrderForms.tsx:248 +#: src/pages/stock/StockDetail.tsx:839 +#: src/tables/stock/StockTrackingTable.tsx:49 msgid "Stock Item" msgstr "Element magazynowy" -#: src/components/render/ModelType.tsx:73 +#: src/components/render/ModelType.tsx:87 #: src/pages/company/CompanyDetail.tsx:203 -#: src/pages/stock/LocationDetail.tsx:128 -#: src/pages/stock/LocationDetail.tsx:181 -#: src/pages/stock/LocationDetail.tsx:395 +#: src/pages/part/PartStocktakeDetail.tsx:113 +#: src/pages/stock/LocationDetail.tsx:122 +#: src/pages/stock/LocationDetail.tsx:175 +#: src/pages/stock/LocationDetail.tsx:380 msgid "Stock Items" msgstr "Elementy magazynowe" -#: src/components/render/ModelType.tsx:81 +#: src/components/render/ModelType.tsx:96 msgid "Stock Location" msgstr "Lokacja stanu" -#: src/components/render/ModelType.tsx:82 -#: src/pages/stock/LocationDetail.tsx:195 -#: src/pages/stock/LocationDetail.tsx:387 -#: src/pages/stock/StockDetail.tsx:616 +#: src/components/render/ModelType.tsx:97 +#: src/pages/stock/LocationDetail.tsx:189 +#: src/pages/stock/LocationDetail.tsx:372 +#: src/pages/stock/StockDetail.tsx:831 msgid "Stock Locations" msgstr "Lokacje stanów" -#: src/components/render/ModelType.tsx:90 +#: src/components/render/ModelType.tsx:106 msgid "Stock Location Type" msgstr "" -#: src/components/render/ModelType.tsx:91 +#: src/components/render/ModelType.tsx:107 msgid "Stock Location Types" msgstr "" -#: src/components/render/ModelType.tsx:95 +#: src/components/render/ModelType.tsx:112 +#: src/pages/part/PartDetail.tsx:712 msgid "Stock History" msgstr "Historia magazynu" -#: src/components/render/ModelType.tsx:96 +#: src/components/render/ModelType.tsx:113 msgid "Stock Histories" msgstr "Historia magazynu" -#: src/components/render/ModelType.tsx:100 -#: src/defaults/links.tsx:31 -#: src/defaults/menuItems.tsx:43 +#: src/components/render/ModelType.tsx:118 msgid "Build" msgstr "" -#: src/components/render/ModelType.tsx:101 +#: src/components/render/ModelType.tsx:119 msgid "Builds" msgstr "" -#: src/components/render/ModelType.tsx:109 +#: src/components/render/ModelType.tsx:128 msgid "Build Line" msgstr "" -#: src/components/render/ModelType.tsx:110 +#: src/components/render/ModelType.tsx:129 msgid "Build Lines" msgstr "" -#: src/components/render/ModelType.tsx:117 +#: src/components/render/ModelType.tsx:137 msgid "Build Item" msgstr "" -#: src/components/render/ModelType.tsx:118 +#: src/components/render/ModelType.tsx:138 msgid "Build Items" msgstr "" -#: src/components/render/ModelType.tsx:122 -#: src/pages/company/CompanyDetail.tsx:339 +#: src/components/render/ModelType.tsx:143 +#: src/pages/company/CompanyDetail.tsx:321 msgid "Company" msgstr "Firma" -#: src/components/render/ModelType.tsx:123 +#: src/components/render/ModelType.tsx:144 msgid "Companies" msgstr "Firmy" -#: src/components/render/ModelType.tsx:131 +#: src/components/render/ModelType.tsx:153 +#: src/pages/build/BuildDetail.tsx:195 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:204 +#: src/pages/sales/ReturnOrderDetail.tsx:174 +#: src/pages/sales/SalesOrderDetail.tsx:186 #: src/tables/TableHoverCard.tsx:81 -#: src/tables/build/BuildOrderTable.tsx:140 -#: src/tables/purchasing/PurchaseOrderTable.tsx:64 -#: src/tables/sales/ReturnOrderTable.tsx:55 -#: src/tables/sales/SalesOrderTable.tsx:62 +#: src/tables/build/BuildOrderTable.tsx:135 +#: src/tables/purchasing/PurchaseOrderTable.tsx:69 +#: src/tables/sales/ReturnOrderTable.tsx:67 +#: src/tables/sales/SalesOrderTable.tsx:67 msgid "Project Code" msgstr "Kod projektu" -#: src/components/render/ModelType.tsx:132 -#: src/pages/Index/Settings/AdminCenter/Index.tsx:128 +#: src/components/render/ModelType.tsx:154 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:145 msgid "Project Codes" msgstr "Kody projektu" -#: src/components/render/ModelType.tsx:138 +#: src/components/render/ModelType.tsx:161 #: src/pages/part/pricing/PurchaseHistoryPanel.tsx:32 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:480 -#: src/tables/part/PartPurchaseOrdersTable.tsx:32 -#: src/tables/stock/StockTrackingTable.tsx:107 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:477 +#: src/pages/stock/StockDetail.tsx:253 +#: src/tables/part/PartPurchaseOrdersTable.tsx:31 +#: src/tables/stock/StockItemTable.tsx:222 +#: src/tables/stock/StockTrackingTable.tsx:111 msgid "Purchase Order" msgstr "Zlecenie zakupu" -#: src/components/render/ModelType.tsx:139 -#: src/pages/Index/Settings/SystemSettings.tsx:255 +#: src/components/render/ModelType.tsx:162 +#: src/pages/Index/Settings/SystemSettings.tsx:249 #: src/pages/company/CompanyDetail.tsx:196 -#: src/pages/company/SupplierPartDetail.tsx:237 -#: src/pages/part/PartDetail.tsx:662 +#: src/pages/company/SupplierPartDetail.tsx:249 +#: src/pages/part/PartDetail.tsx:683 #: src/pages/purchasing/PurchasingIndex.tsx:25 msgid "Purchase Orders" msgstr "Zlecenia zakupu" -#: src/components/render/ModelType.tsx:147 +#: src/components/render/ModelType.tsx:171 msgid "Purchase Order Line" msgstr "Pozycja zlecenia zakupu" -#: src/components/render/ModelType.tsx:148 +#: src/components/render/ModelType.tsx:172 msgid "Purchase Order Lines" msgstr "Pozycje zlecenia zakupu" -#: src/components/render/ModelType.tsx:152 -#: src/pages/build/BuildDetail.tsx:153 -#: src/pages/sales/SalesOrderDetail.tsx:520 -#: src/pages/stock/StockDetail.tsx:221 -#: src/tables/sales/SalesOrderAllocationTable.tsx:50 -#: src/tables/stock/StockTrackingTable.tsx:118 +#: src/components/render/ModelType.tsx:177 +#: src/pages/build/BuildDetail.tsx:148 +#: src/pages/part/pricing/SaleHistoryPanel.tsx:24 +#: src/pages/sales/SalesOrderDetail.tsx:515 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:92 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:341 +#: src/pages/stock/StockDetail.tsx:262 +#: src/tables/sales/SalesOrderAllocationTable.tsx:80 +#: src/tables/stock/StockTrackingTable.tsx:122 msgid "Sales Order" msgstr "Zlecenie sprzedaży" -#: src/components/render/ModelType.tsx:153 -#: src/pages/Index/Settings/SystemSettings.tsx:270 +#: src/components/render/ModelType.tsx:178 +#: src/pages/Index/Settings/SystemSettings.tsx:264 #: src/pages/company/CompanyDetail.tsx:216 -#: src/pages/part/PartDetail.tsx:669 +#: src/pages/part/PartDetail.tsx:695 #: src/pages/sales/SalesIndex.tsx:26 msgid "Sales Orders" msgstr "Zlecenia Sprzedaży" -#: src/components/render/ModelType.tsx:161 +#: src/components/render/ModelType.tsx:187 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:340 msgid "Sales Order Shipment" msgstr "" -#: src/components/render/ModelType.tsx:162 +#: src/components/render/ModelType.tsx:188 msgid "Sales Order Shipments" msgstr "" -#: src/components/render/ModelType.tsx:168 -#: src/pages/sales/ReturnOrderDetail.tsx:469 -#: src/tables/stock/StockTrackingTable.tsx:129 +#: src/components/render/ModelType.tsx:195 +#: src/pages/sales/ReturnOrderDetail.tsx:464 +#: src/tables/stock/StockTrackingTable.tsx:133 msgid "Return Order" msgstr "" -#: src/components/render/ModelType.tsx:169 -#: src/pages/Index/Settings/SystemSettings.tsx:286 +#: src/components/render/ModelType.tsx:196 +#: src/pages/Index/Settings/SystemSettings.tsx:280 #: src/pages/company/CompanyDetail.tsx:223 +#: src/pages/part/PartDetail.tsx:702 #: src/pages/sales/SalesIndex.tsx:32 msgid "Return Orders" msgstr "" -#: src/components/render/ModelType.tsx:177 +#: src/components/render/ModelType.tsx:205 msgid "Return Order Line Item" msgstr "" -#: src/components/render/ModelType.tsx:178 +#: src/components/render/ModelType.tsx:206 msgid "Return Order Line Items" msgstr "" -#: src/components/render/ModelType.tsx:182 -#: src/tables/company/AddressTable.tsx:47 +#: src/components/render/ModelType.tsx:211 +#: src/tables/company/AddressTable.tsx:48 msgid "Address" msgstr "Adres" -#: src/components/render/ModelType.tsx:183 -#: src/pages/company/CompanyDetail.tsx:253 +#: src/components/render/ModelType.tsx:212 +#: src/pages/company/CompanyDetail.tsx:255 msgid "Addresses" msgstr "Adresy" -#: src/components/render/ModelType.tsx:189 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:195 -#: src/pages/sales/ReturnOrderDetail.tsx:174 -#: src/pages/sales/SalesOrderDetail.tsx:183 +#: src/components/render/ModelType.tsx:219 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:196 +#: src/pages/sales/ReturnOrderDetail.tsx:166 +#: src/pages/sales/SalesOrderDetail.tsx:178 msgid "Contact" msgstr "Kontakt" -#: src/components/render/ModelType.tsx:190 -#: src/pages/company/CompanyDetail.tsx:247 +#: src/components/render/ModelType.tsx:220 +#: src/pages/company/CompanyDetail.tsx:249 msgid "Contacts" msgstr "Kontakty" -#: src/components/render/ModelType.tsx:196 +#: src/components/render/ModelType.tsx:227 msgid "Owner" msgstr "Właściciel" -#: src/components/render/ModelType.tsx:197 +#: src/components/render/ModelType.tsx:228 msgid "Owners" msgstr "Właściciele" -#: src/components/render/ModelType.tsx:203 -#: src/tables/settings/ImportSessionTable.tsx:121 -#: src/tables/stock/StockItemTestResultTable.tsx:198 -#: src/tables/stock/StockTrackingTable.tsx:195 +#: src/components/render/ModelType.tsx:234 +#~ msgid "Purchase Order Line Item" +#~ msgstr "Purchase Order Line Item" + +#: src/components/render/ModelType.tsx:235 +#: src/tables/settings/BarcodeScanHistoryTable.tsx:80 +#: src/tables/settings/BarcodeScanHistoryTable.tsx:211 +#: src/tables/settings/ImportSessionTable.tsx:120 +#: src/tables/settings/StocktakeReportTable.tsx:44 +#: src/tables/stock/StockItemTestResultTable.tsx:204 +#: src/tables/stock/StockTrackingTable.tsx:181 +#: src/tables/stock/StockTrackingTable.tsx:210 msgid "User" msgstr "Użytkownik" -#: src/components/render/ModelType.tsx:204 -#: src/pages/Index/Settings/AdminCenter/Index.tsx:98 +#: src/components/render/ModelType.tsx:236 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:109 #: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:13 msgid "Users" msgstr "Użytkownicy" -#: src/components/render/ModelType.tsx:210 +#: src/components/render/ModelType.tsx:243 msgid "Group" msgstr "Grupa" -#: src/components/render/ModelType.tsx:211 +#: src/components/render/ModelType.tsx:244 #: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:20 -#: src/tables/settings/UserTable.tsx:138 -#: src/tables/settings/UserTable.tsx:201 +#: src/tables/settings/UserTable.tsx:137 +#: src/tables/settings/UserTable.tsx:200 msgid "Groups" msgstr "Grupy" -#: src/components/render/ModelType.tsx:218 +#: src/components/render/ModelType.tsx:252 msgid "Import Session" msgstr "Importuj sesje" -#: src/components/render/ModelType.tsx:219 +#: src/components/render/ModelType.tsx:253 msgid "Import Sessions" msgstr "Importuj sesje" -#: src/components/render/ModelType.tsx:225 +#: src/components/render/ModelType.tsx:260 msgid "Label Template" msgstr "Szablon etykiety" -#: src/components/render/ModelType.tsx:226 -#: src/pages/Index/Settings/AdminCenter/Index.tsx:158 +#: src/components/render/ModelType.tsx:261 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:187 msgid "Label Templates" msgstr "Szablony etykiet" -#: src/components/render/ModelType.tsx:232 +#: src/components/render/ModelType.tsx:264 +#~ msgid "Unknown Model" +#~ msgstr "Unknown Model" + +#: src/components/render/ModelType.tsx:268 msgid "Report Template" msgstr "Szablon Raportu" -#: src/components/render/ModelType.tsx:233 -#: src/pages/Index/Settings/AdminCenter/Index.tsx:164 +#: src/components/render/ModelType.tsx:269 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:193 msgid "Report Templates" msgstr "Szablony raportów" -#: src/components/render/ModelType.tsx:239 -msgid "Plugin Configuration" -msgstr "Konfiguracja wtyczki" - -#: src/components/render/ModelType.tsx:240 +#: src/components/render/ModelType.tsx:277 msgid "Plugin Configurations" msgstr "Konfiguracje wtyczki" +#: src/components/render/ModelType.tsx:284 +msgid "Content Type" +msgstr "" + +#: src/components/render/ModelType.tsx:285 +msgid "Content Types" +msgstr "" + +#: src/components/render/ModelType.tsx:291 +#: src/tables/machine/MachineListTable.tsx:351 +#: src/tables/machine/MachineTypeTable.tsx:282 +msgid "Errors" +msgstr "" + +#: src/components/render/ModelType.tsx:307 +#~ msgid "Purchase Order Line Items" +#~ msgstr "Purchase Order Line Items" + +#: src/components/render/ModelType.tsx:337 +#~ msgid "Unknown Models" +#~ msgstr "Unknown Models" + #: src/components/render/Order.tsx:121 +#: src/tables/sales/SalesOrderAllocationTable.tsx:136 msgid "Shipment" msgstr "Wysyłka" #: src/components/render/Part.tsx:25 #: src/components/render/Plugin.tsx:17 -#: src/pages/company/CompanyDetail.tsx:325 -#: src/pages/company/SupplierPartDetail.tsx:360 -#: src/pages/part/PartDetail.tsx:879 +#: src/pages/company/CompanyDetail.tsx:307 +#: src/pages/company/SupplierPartDetail.tsx:349 +#: src/pages/part/PartDetail.tsx:911 msgid "Inactive" msgstr "Nieaktywny" @@ -1736,39 +2335,38 @@ msgstr "Nieaktywny" msgid "No stock" msgstr "Brak w magazynie" -#: src/components/render/Part.tsx:30 -#: src/defaults/links.tsx:30 -#: src/defaults/menuItems.tsx:38 -#: src/pages/Index/Settings/SystemSettings.tsx:206 -#: src/pages/part/PartDetail.tsx:543 -#: src/pages/stock/LocationDetail.tsx:367 -#: src/pages/stock/StockDetail.tsx:411 -#: src/tables/stock/StockItemTable.tsx:68 -msgid "Stock" -msgstr "Stan" - -#: src/components/render/Stock.tsx:60 -#: src/pages/stock/StockDetail.tsx:150 -#: src/pages/stock/StockDetail.tsx:581 -#: src/tables/build/BuildAllocatedStockTable.tsx:102 -#: src/tables/sales/SalesOrderAllocationTable.tsx:80 +#: src/components/render/Stock.tsx:61 +#: src/forms/ReturnOrderForms.tsx:190 +#: src/pages/stock/StockDetail.tsx:166 +#: src/pages/stock/StockDetail.tsx:771 +#: src/tables/build/BuildAllocatedStockTable.tsx:123 +#: src/tables/build/BuildOutputTable.tsx:81 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:114 +#: src/tables/sales/SalesOrderAllocationTable.tsx:106 msgid "Serial Number" msgstr "Numer seryjny" -#: src/components/render/Stock.tsx:62 -#: src/forms/BuildForms.tsx:218 -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/pages/part/pricing/BomPricingPanel.tsx:109 +#: src/components/render/Stock.tsx:63 +#: src/forms/BuildForms.tsx:206 +#: src/forms/BuildForms.tsx:515 +#: src/forms/PurchaseOrderForms.tsx:689 +#: src/forms/SalesOrderForms.tsx:248 +#: src/pages/part/PartSchedulingDetail.tsx:80 +#: src/pages/part/PartStocktakeDetail.tsx:60 +#: src/pages/part/PartStocktakeDetail.tsx:234 +#: src/pages/part/PartStocktakeDetail.tsx:252 +#: src/pages/part/pricing/BomPricingPanel.tsx:148 #: src/pages/part/pricing/PriceBreakPanel.tsx:89 -#: src/pages/part/pricing/PriceBreakPanel.tsx:171 -#: src/pages/stock/StockDetail.tsx:145 -#: src/pages/stock/StockDetail.tsx:587 -#: src/tables/build/BuildOrderTestTable.tsx:197 -#: src/tables/part/PartPurchaseOrdersTable.tsx:92 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:143 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:171 +#: src/pages/part/pricing/PriceBreakPanel.tsx:172 +#: src/pages/stock/StockDetail.tsx:161 +#: src/pages/stock/StockDetail.tsx:777 +#: src/tables/build/BuildLineTable.tsx:79 +#: src/tables/build/BuildOrderTestTable.tsx:198 +#: src/tables/part/PartPurchaseOrdersTable.tsx:93 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:146 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:177 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:77 -#: src/tables/stock/StockTrackingTable.tsx:59 +#: src/tables/stock/StockTrackingTable.tsx:63 msgid "Quantity" msgstr "Ilość" @@ -1842,10 +2440,6 @@ msgstr "Nie podano ustawień" #~ msgid "Required Part" #~ msgstr "Required Part" -#: src/components/tables/build/BuildLineTable.tsx:152 -#~ msgid "Required Quantity" -#~ msgstr "Required Quantity" - #: src/components/tables/build/BuildOrderTable.tsx:52 #~ msgid "Progress" #~ msgstr "Progress" @@ -2126,14 +2720,6 @@ msgstr "Nie podano ustawień" #~ msgid "user deleted" #~ msgstr "user deleted" -#: src/components/tables/settings/UserTable.tsx:168 -#~ msgid "First Name" -#~ msgstr "First Name" - -#: src/components/tables/settings/UserTable.tsx:173 -#~ msgid "Last Name" -#~ msgstr "Last Name" - #: src/components/tables/stock/StockItemTable.tsx:247 #~ msgid "Test Filter" #~ msgstr "Test Filter" @@ -2146,36 +2732,21 @@ msgstr "Nie podano ustawień" #~ msgid "Stock location updated" #~ msgstr "Stock location updated" -#: src/components/widgets/DisplayWidget.tsx:11 -#: src/pages/Index/Settings/AccountSettings/DisplaySettingsPanel.tsx:17 -msgid "Display Settings" -msgstr "Ustawienia wyświetlania" - -#: src/components/widgets/DisplayWidget.tsx:15 -#: src/pages/Index/Settings/AccountSettings/DisplaySettingsPanel.tsx:23 -msgid "Color Mode" -msgstr "Tryb kolorów" - -#: src/components/widgets/DisplayWidget.tsx:21 -#: src/pages/Index/Settings/AccountSettings/DisplaySettingsPanel.tsx:33 -msgid "Language" -msgstr "Język" - #: src/components/widgets/FeedbackWidget.tsx:19 -msgid "Something is new: Platform UI" -msgstr "Coś nowego: Platforma UI" +#~ msgid "Something is new: Platform UI" +#~ msgstr "Something is new: Platform UI" #: src/components/widgets/FeedbackWidget.tsx:21 -msgid "We are building a new UI with a modern stack. What you currently see is not fixed and will be redesigned but demonstrates the UI/UX possibilities we will have going forward." -msgstr "" +#~ msgid "We are building a new UI with a modern stack. What you currently see is not fixed and will be redesigned but demonstrates the UI/UX possibilities we will have going forward." +#~ msgstr "We are building a new UI with a modern stack. What you currently see is not fixed and will be redesigned but demonstrates the UI/UX possibilities we will have going forward." #: src/components/widgets/FeedbackWidget.tsx:32 -msgid "Provide Feedback" -msgstr "Prześlij opinię" +#~ msgid "Provide Feedback" +#~ msgstr "Provide Feedback" #: src/components/widgets/GetStartedWidget.tsx:11 -msgid "Getting started" -msgstr "Pierwsze kroki" +#~ msgid "Getting started" +#~ msgstr "Getting started" #: src/components/widgets/MarkdownEditor.tsx:108 #~ msgid "Failed to upload image" @@ -2186,28 +2757,24 @@ msgstr "Pierwsze kroki" #~ msgstr "Notes saved" #: src/components/widgets/WidgetLayout.tsx:166 -msgid "Layout" -msgstr "Układ" +#~ msgid "Layout" +#~ msgstr "Layout" #: src/components/widgets/WidgetLayout.tsx:172 -msgid "Reset Layout" -msgstr "Resetuj układ" +#~ msgid "Reset Layout" +#~ msgstr "Reset Layout" #: src/components/widgets/WidgetLayout.tsx:185 -msgid "Stop Edit" -msgstr "Zatrzymaj edycję" - -#: src/components/widgets/WidgetLayout.tsx:185 -msgid "Edit Layout" -msgstr "Edytuj układ" +#~ msgid "Stop Edit" +#~ msgstr "Stop Edit" #: src/components/widgets/WidgetLayout.tsx:191 -msgid "Appearance" -msgstr "Wygląd" +#~ msgid "Appearance" +#~ msgstr "Appearance" #: src/components/widgets/WidgetLayout.tsx:203 -msgid "Show Boxes" -msgstr "" +#~ msgid "Show Boxes" +#~ msgstr "Show Boxes" #: src/contexts/LanguageContext.tsx:20 msgid "Arabic" @@ -2286,201 +2853,175 @@ msgid "Korean" msgstr "Koreański" #: src/contexts/LanguageContext.tsx:39 +msgid "Lithuanian" +msgstr "" + +#: src/contexts/LanguageContext.tsx:40 msgid "Latvian" msgstr "Łotewski" -#: src/contexts/LanguageContext.tsx:40 +#: src/contexts/LanguageContext.tsx:41 msgid "Dutch" msgstr "Holenderski" -#: src/contexts/LanguageContext.tsx:41 +#: src/contexts/LanguageContext.tsx:42 msgid "Norwegian" msgstr "Norweski" -#: src/contexts/LanguageContext.tsx:42 +#: src/contexts/LanguageContext.tsx:43 msgid "Polish" msgstr "Polski" -#: src/contexts/LanguageContext.tsx:43 +#: src/contexts/LanguageContext.tsx:44 msgid "Portuguese" msgstr "Portugalski" -#: src/contexts/LanguageContext.tsx:44 +#: src/contexts/LanguageContext.tsx:45 msgid "Portuguese (Brazilian)" msgstr "Portugalski (Brazylijski)" -#: src/contexts/LanguageContext.tsx:45 +#: src/contexts/LanguageContext.tsx:46 msgid "Romanian" msgstr "Rumuński" -#: src/contexts/LanguageContext.tsx:46 +#: src/contexts/LanguageContext.tsx:47 msgid "Russian" msgstr "Rosyjski" -#: src/contexts/LanguageContext.tsx:47 +#: src/contexts/LanguageContext.tsx:48 msgid "Slovak" msgstr "Słowacki" -#: src/contexts/LanguageContext.tsx:48 +#: src/contexts/LanguageContext.tsx:49 msgid "Slovenian" msgstr "Słoweński" -#: src/contexts/LanguageContext.tsx:49 +#: src/contexts/LanguageContext.tsx:50 msgid "Swedish" msgstr "Szwedzki" -#: src/contexts/LanguageContext.tsx:50 +#: src/contexts/LanguageContext.tsx:51 msgid "Thai" msgstr "Tajski" -#: src/contexts/LanguageContext.tsx:51 +#: src/contexts/LanguageContext.tsx:52 msgid "Turkish" msgstr "Turecki" -#: src/contexts/LanguageContext.tsx:52 +#: src/contexts/LanguageContext.tsx:53 msgid "Ukrainian" msgstr "Ukraiński" -#: src/contexts/LanguageContext.tsx:53 +#: src/contexts/LanguageContext.tsx:54 msgid "Vietnamese" msgstr "Wietnamski" -#: src/contexts/LanguageContext.tsx:54 +#: src/contexts/LanguageContext.tsx:55 msgid "Chinese (Simplified)" msgstr "Chiński (uproszczony)" -#: src/contexts/LanguageContext.tsx:55 +#: src/contexts/LanguageContext.tsx:56 msgid "Chinese (Traditional)" msgstr "Chiński (tradycyjny)" #: src/defaults/actions.tsx:18 -#: src/defaults/links.tsx:27 -#: src/defaults/menuItems.tsx:9 -msgid "Home" -msgstr "Strona główna" - -#: src/defaults/actions.tsx:25 -#: src/defaults/links.tsx:28 -#: src/defaults/menuItems.tsx:28 -#: src/pages/Index/Dashboard.tsx:19 -#: src/pages/Index/Settings/UserSettings.tsx:46 -msgid "Dashboard" -msgstr "Kokpit" - -#: src/defaults/actions.tsx:26 msgid "Go to the InvenTree dashboard" msgstr "Przejdź do kokpitu InvenTree" -#: src/defaults/actions.tsx:33 +#: src/defaults/actions.tsx:18 +#: src/defaults/links.tsx:27 +#: src/defaults/menuItems.tsx:9 +#~ msgid "Home" +#~ msgstr "Home" + +#: src/defaults/actions.tsx:25 msgid "Visit the documentation to learn more about InvenTree" msgstr "Odwiedź dokumentację, aby dowiedzieć się więcej o InvenTree" -#: src/defaults/actions.tsx:39 -#: src/defaults/links.tsx:98 -#: src/defaults/links.tsx:128 +#: src/defaults/actions.tsx:31 +#: src/defaults/links.tsx:92 +#: src/defaults/links.tsx:124 msgid "About InvenTree" msgstr "O InvenTree" -#: src/defaults/actions.tsx:40 -#: src/defaults/links.tsx:129 +#: src/defaults/actions.tsx:32 msgid "About the InvenTree org" msgstr "O InvenTree.org" -#: src/defaults/actions.tsx:46 +#: src/defaults/actions.tsx:38 msgid "Server Information" msgstr "Informacje o serwerze" -#: src/defaults/actions.tsx:47 -#: src/defaults/links.tsx:123 +#: src/defaults/actions.tsx:39 +#: src/defaults/links.tsx:118 msgid "About this Inventree instance" msgstr "O tej instancji Inventree" -#: src/defaults/actions.tsx:53 -#: src/defaults/links.tsx:111 +#: src/defaults/actions.tsx:45 +#: src/defaults/links.tsx:105 +#: src/defaults/links.tsx:131 msgid "License Information" msgstr "Informacje o licencji" -#: src/defaults/actions.tsx:54 -#: src/defaults/links.tsx:135 +#: src/defaults/actions.tsx:46 msgid "Licenses for dependencies of the service" msgstr "" -#: src/defaults/actions.tsx:61 +#: src/defaults/actions.tsx:52 +msgid "Open Navigation" +msgstr "Otwórz nawigację" + +#: src/defaults/actions.tsx:53 msgid "Open the main navigation menu" msgstr "Otwórz główne menu nawigacji" -#: src/defaults/actions.tsx:72 +#: src/defaults/actions.tsx:64 msgid "Go to the Admin Center" msgstr "" -#: src/defaults/dashboardItems.tsx:15 -msgid "Subscribed Parts" -msgstr "Obserwowane komponenty" - -#: src/defaults/dashboardItems.tsx:22 -msgid "Subscribed Categories" -msgstr "Obserwowane kategorie" - #: src/defaults/dashboardItems.tsx:29 -msgid "Latest Parts" -msgstr "Najnowsze komponenty" +#~ msgid "Latest Parts" +#~ msgstr "Latest Parts" #: src/defaults/dashboardItems.tsx:36 -msgid "BOM Waiting Validation" -msgstr "" +#~ msgid "BOM Waiting Validation" +#~ msgstr "BOM Waiting Validation" #: src/defaults/dashboardItems.tsx:43 -msgid "Recently Updated" -msgstr "Ostatnia aktualizacja" - -#: src/defaults/dashboardItems.tsx:50 -#: src/tables/part/PartTable.tsx:238 -msgid "Low Stock" -msgstr "Mała ilość w magazynie" +#~ msgid "Recently Updated" +#~ msgstr "Recently Updated" #: src/defaults/dashboardItems.tsx:57 -msgid "Depleted Stock" -msgstr "Wyczerpane stany magazynowe" +#~ msgid "Depleted Stock" +#~ msgstr "Depleted Stock" #: src/defaults/dashboardItems.tsx:64 -msgid "Required for Build Orders" -msgstr "" +#~ msgid "Required for Build Orders" +#~ msgstr "Required for Build Orders" #: src/defaults/dashboardItems.tsx:71 -msgid "Expired Stock" -msgstr "Zapasy wygasły" +#~ msgid "Expired Stock" +#~ msgstr "Expired Stock" #: src/defaults/dashboardItems.tsx:78 -msgid "Stale Stock" -msgstr "" +#~ msgid "Stale Stock" +#~ msgstr "Stale Stock" #: src/defaults/dashboardItems.tsx:85 -msgid "Build Orders In Progress" -msgstr "" - -#: src/defaults/dashboardItems.tsx:92 -msgid "Overdue Build Orders" -msgstr "" +#~ msgid "Build Orders In Progress" +#~ msgstr "Build Orders In Progress" #: src/defaults/dashboardItems.tsx:99 -msgid "Outstanding Purchase Orders" -msgstr "" - -#: src/defaults/dashboardItems.tsx:106 -msgid "Overdue Purchase Orders" -msgstr "Zaległe zlecenia zakupu" +#~ msgid "Outstanding Purchase Orders" +#~ msgstr "Outstanding Purchase Orders" #: src/defaults/dashboardItems.tsx:113 -msgid "Outstanding Sales Orders" -msgstr "" - -#: src/defaults/dashboardItems.tsx:120 -msgid "Overdue Sales Orders" -msgstr "Zaległe zlecenia sprzedaży" +#~ msgid "Outstanding Sales Orders" +#~ msgstr "Outstanding Sales Orders" #: src/defaults/dashboardItems.tsx:127 -msgid "Current News" -msgstr "Aktualności" +#~ msgid "Current News" +#~ msgstr "Current News" #: src/defaults/defaultHostList.tsx:8 #~ msgid "InvenTree Demo" @@ -2490,97 +3031,80 @@ msgstr "Aktualności" #~ msgid "Local Server" #~ msgstr "Local Server" -#: src/defaults/links.tsx:12 -#: src/pages/company/CompanyDetail.tsx:96 -msgid "Website" -msgstr "Strona internetowa" - #: src/defaults/links.tsx:17 -msgid "GitHub" -msgstr "GitHub" +#~ msgid "GitHub" +#~ msgstr "GitHub" #: src/defaults/links.tsx:22 -msgid "Demo" -msgstr "Demo" - -#: src/defaults/links.tsx:33 -#: src/defaults/menuItems.tsx:48 -#: src/pages/company/ManufacturerDetail.tsx:9 -#: src/pages/company/ManufacturerPartDetail.tsx:263 -#: src/pages/company/SupplierDetail.tsx:9 -#: src/pages/company/SupplierPartDetail.tsx:347 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:483 -#: src/pages/purchasing/PurchasingIndex.tsx:60 -msgid "Purchasing" -msgstr "Zakupy" - -#: src/defaults/links.tsx:37 -#: src/defaults/menuItems.tsx:53 -#: src/pages/company/CustomerDetail.tsx:9 -#: src/pages/sales/ReturnOrderDetail.tsx:474 -#: src/pages/sales/SalesIndex.tsx:53 -#: src/pages/sales/SalesOrderDetail.tsx:525 -msgid "Sales" -msgstr "Sprzedaże" +#~ msgid "Demo" +#~ msgstr "Demo" #: src/defaults/links.tsx:41 #: src/defaults/menuItems.tsx:71 #: src/pages/Index/Playground.tsx:217 -msgid "Playground" -msgstr "" +#~ msgid "Playground" +#~ msgstr "Playground" -#: src/defaults/links.tsx:55 -msgid "Getting Started" -msgstr "Pierwsze Kroki" - -#: src/defaults/links.tsx:56 -msgid "Getting started with InvenTree" -msgstr "Pierwsze kroki z InvenTree" - -#: src/defaults/links.tsx:62 +#: src/defaults/links.tsx:45 msgid "API" msgstr "API" -#: src/defaults/links.tsx:63 +#: src/defaults/links.tsx:48 msgid "InvenTree API documentation" msgstr "Dokumentacja API InvenTree" -#: src/defaults/links.tsx:68 +#: src/defaults/links.tsx:52 msgid "Developer Manual" msgstr "Podręcznik programisty" -#: src/defaults/links.tsx:69 +#: src/defaults/links.tsx:55 msgid "InvenTree developer manual" msgstr "Podręcznik programisty InvenTree" -#: src/defaults/links.tsx:74 +#: src/defaults/links.tsx:59 msgid "FAQ" msgstr "FAQ" -#: src/defaults/links.tsx:75 +#: src/defaults/links.tsx:62 msgid "Frequently asked questions" msgstr "Najczęściej zadawane pytania" +#: src/defaults/links.tsx:66 +msgid "GitHub Repository" +msgstr "" + +#: src/defaults/links.tsx:69 +msgid "InvenTree source code on GitHub" +msgstr "" + #: src/defaults/links.tsx:76 #~ msgid "Instance" #~ msgstr "Instance" +#: src/defaults/links.tsx:79 +#: src/defaults/links.tsx:117 +msgid "System Information" +msgstr "Informacje o systemie" + #: src/defaults/links.tsx:83 #~ msgid "InvenTree" #~ msgstr "InvenTree" -#: src/defaults/links.tsx:85 -#: src/defaults/links.tsx:122 -msgid "System Information" -msgstr "Informacje o systemie" - #: src/defaults/links.tsx:117 #~ msgid "Licenses for packages used by InvenTree" #~ msgstr "Licenses for packages used by InvenTree" +#: src/defaults/links.tsx:125 +msgid "About the InvenTree Project" +msgstr "" + +#: src/defaults/links.tsx:132 +msgid "Licenses for dependencies of the InvenTree software" +msgstr "" + #: src/defaults/links.tsx:134 -msgid "Licenses" -msgstr "Licencje" +#~ msgid "Licenses" +#~ msgstr "Licenses" #: src/defaults/menuItems.tsx:7 #~ msgid "Open sourcea" @@ -2607,8 +3131,8 @@ msgstr "Licencje" #~ msgstr "Profile page" #: src/defaults/menuItems.tsx:17 -msgid "User attributes and design settings." -msgstr "" +#~ msgid "User attributes and design settings." +#~ msgstr "User attributes and design settings." #: src/defaults/menuItems.tsx:21 #~ msgid "Free for everyone" @@ -2619,8 +3143,8 @@ msgstr "" #~ msgstr "The fluid of Smeargle’s tail secretions changes" #: src/defaults/menuItems.tsx:23 -msgid "View for interactive scanning and multiple actions." -msgstr "" +#~ msgid "View for interactive scanning and multiple actions." +#~ msgstr "View for interactive scanning and multiple actions." #: src/defaults/menuItems.tsx:24 #~ msgid "The fluid of Smeargle’s tail secretions changes in the intensity" @@ -2698,51 +3222,130 @@ msgstr "" #~ msgid "Are you sure you want to delete this attachment?" #~ msgstr "Are you sure you want to delete this attachment?" -#: src/forms/BuildForms.tsx:158 -msgid "Next serial number" -msgstr "Następny numer seryjny" +#: src/forms/BuildForms.tsx:248 +#~ msgid "Remove output" +#~ msgstr "Remove output" -#: src/forms/BuildForms.tsx:162 -msgid "Latest serial number" -msgstr "Ostatni numer seryjny" - -#: src/forms/BuildForms.tsx:234 -msgid "Remove output" +#: src/forms/BuildForms.tsx:269 +#: src/tables/build/BuildAllocatedStockTable.tsx:147 +#: src/tables/build/BuildOrderTestTable.tsx:177 +#: src/tables/build/BuildOrderTestTable.tsx:201 +#: src/tables/build/BuildOutputTable.tsx:460 +msgid "Build Output" msgstr "" -#: src/forms/BuildForms.tsx:316 +#: src/forms/BuildForms.tsx:269 +#: src/forms/BuildForms.tsx:337 +#: src/forms/BuildForms.tsx:385 +#: src/tables/build/BuildLineTable.tsx:89 +msgid "Batch" +msgstr "" + +#: src/forms/BuildForms.tsx:269 +#: src/forms/BuildForms.tsx:337 +#: src/forms/BuildForms.tsx:385 +#: src/forms/PurchaseOrderForms.tsx:603 +#: src/pages/build/BuildDetail.tsx:104 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:142 +#: src/pages/sales/ReturnOrderDetail.tsx:113 +#: src/pages/sales/SalesOrderDetail.tsx:122 +#: src/tables/build/BuildOrderTable.tsx:125 +#: src/tables/machine/MachineListTable.tsx:336 +#: src/tables/part/PartPurchaseOrdersTable.tsx:37 +#: src/tables/purchasing/PurchaseOrderTable.tsx:58 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:157 +#: src/tables/sales/ReturnOrderTable.tsx:56 +#: src/tables/sales/SalesOrderTable.tsx:56 +#: src/tables/settings/CustomStateTable.tsx:57 +#: src/tables/settings/ImportSessionTable.tsx:114 +#: src/tables/stock/StockItemTable.tsx:298 +#: src/tables/stock/StockTrackingTable.tsx:56 +msgid "Status" +msgstr "Status" + +#: src/forms/BuildForms.tsx:289 msgid "Complete Build Outputs" msgstr "" -#: src/forms/BuildForms.tsx:320 +#: src/forms/BuildForms.tsx:292 msgid "Build outputs have been completed" msgstr "" -#: src/forms/BuildForms.tsx:389 +#: src/forms/BuildForms.tsx:353 msgid "Scrap Build Outputs" msgstr "" -#: src/forms/BuildForms.tsx:393 +#: src/forms/BuildForms.tsx:356 msgid "Build outputs have been scrapped" msgstr "" -#: src/forms/BuildForms.tsx:425 -#: src/forms/BuildForms.tsx:449 +#: src/forms/BuildForms.tsx:393 msgid "Cancel Build Outputs" msgstr "" -#: src/forms/BuildForms.tsx:426 -msgid "Selected build outputs will be deleted" +#: src/forms/BuildForms.tsx:396 +msgid "Build outputs have been cancelled" msgstr "" -#: src/forms/BuildForms.tsx:453 -msgid "Build outputs have been cancelled" +#: src/forms/BuildForms.tsx:408 +#~ msgid "Selected build outputs will be deleted" +#~ msgstr "Selected build outputs will be deleted" + +#: src/forms/BuildForms.tsx:470 +#~ msgid "Remove line" +#~ msgstr "Remove line" + +#: src/forms/BuildForms.tsx:515 +#: src/forms/SalesOrderForms.tsx:248 +#: src/tables/build/BuildLineTable.tsx:174 +#: src/tables/sales/SalesOrderLineItemTable.tsx:276 +#: src/tables/stock/StockItemTable.tsx:309 +msgid "Allocated" +msgstr "" + +#: src/forms/BuildForms.tsx:545 +#: src/forms/SalesOrderForms.tsx:239 +#: src/pages/build/BuildDetail.tsx:208 +msgid "Source Location" +msgstr "" + +#: src/forms/BuildForms.tsx:546 +#: src/forms/SalesOrderForms.tsx:240 +msgid "Select the source location for the stock allocation" +msgstr "" + +#: src/forms/BuildForms.tsx:566 +#: src/forms/SalesOrderForms.tsx:274 +#: src/tables/build/BuildLineTable.tsx:442 +#: src/tables/build/BuildLineTable.tsx:569 +#: src/tables/build/BuildLineTable.tsx:642 +#: src/tables/sales/SalesOrderLineItemTable.tsx:302 +#: src/tables/sales/SalesOrderLineItemTable.tsx:326 +msgid "Allocate Stock" +msgstr "" + +#: src/forms/BuildForms.tsx:569 +#: src/forms/SalesOrderForms.tsx:279 +msgid "Stock items allocated" msgstr "" #: src/forms/CompanyForms.tsx:150 #~ msgid "Company updated" #~ msgstr "Company updated" +#: src/forms/PartForms.tsx:67 +#: src/forms/PartForms.tsx:154 +#: src/pages/part/CategoryDetail.tsx:117 +#: src/pages/part/PartDetail.tsx:384 +#: src/tables/part/PartCategoryTable.tsx:90 +#: src/tables/part/PartTable.tsx:294 +msgid "Subscribed" +msgstr "" + +#: src/forms/PartForms.tsx:68 +msgid "Subscribe to notifications for this part" +msgstr "" + #: src/forms/PartForms.tsx:106 #~ msgid "Create Part" #~ msgstr "Create Part" @@ -2751,191 +3354,190 @@ msgstr "" #~ msgid "Part created" #~ msgstr "Part created" -#: src/forms/PartForms.tsx:124 -msgid "Parent part category" -msgstr "Kategoria części nadrzędnej" - #: src/forms/PartForms.tsx:129 #~ msgid "Part updated" #~ msgstr "Part updated" -#: src/forms/PurchaseOrderForms.tsx:300 +#: src/forms/PartForms.tsx:140 +msgid "Parent part category" +msgstr "Kategoria części nadrzędnej" + +#: src/forms/PartForms.tsx:155 +msgid "Subscribe to notifications for this category" +msgstr "" + +#: src/forms/PurchaseOrderForms.tsx:314 +msgid "Assign Batch Code and Serial Numbers" +msgstr "" + +#: src/forms/PurchaseOrderForms.tsx:316 +msgid "Assign Batch Code" +msgstr "" + +#: src/forms/PurchaseOrderForms.tsx:336 msgid "Choose Location" msgstr "Wybierz lokalizację" -#: src/forms/PurchaseOrderForms.tsx:308 +#: src/forms/PurchaseOrderForms.tsx:344 msgid "Item Destination selected" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:317 +#: src/forms/PurchaseOrderForms.tsx:353 msgid "Part category default location selected" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:327 +#: src/forms/PurchaseOrderForms.tsx:363 msgid "Received stock location selected" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:332 +#: src/forms/PurchaseOrderForms.tsx:368 msgid "Default location selected" msgstr "Wybrano domyślną lokalizację" -#: src/forms/PurchaseOrderForms.tsx:343 -#: src/forms/PurchaseOrderForms.tsx:435 -msgid "Scan Barcode" -msgstr "Zeskanuj kod kreskowy" +#: src/forms/PurchaseOrderForms.tsx:421 +#~ msgid "Assign Batch Code{0}" +#~ msgstr "Assign Batch Code{0}" -#: src/forms/PurchaseOrderForms.tsx:388 +#: src/forms/PurchaseOrderForms.tsx:427 msgid "Set Location" msgstr "Ustaw lokalizację" -#: src/forms/PurchaseOrderForms.tsx:396 -msgid "Assign Batch Code{0}" -msgstr "Przypisz kod partii{0}" - -#: src/forms/PurchaseOrderForms.tsx:405 -#: src/forms/StockForms.tsx:420 +#: src/forms/PurchaseOrderForms.tsx:442 +#: src/forms/StockForms.tsx:539 msgid "Adjust Packaging" msgstr "Dostosuj opakowanie" -#: src/forms/PurchaseOrderForms.tsx:412 +#: src/forms/PurchaseOrderForms.tsx:444 +#: src/forms/StockForms.tsx:428 +#~ msgid "Remove item from list" +#~ msgstr "Remove item from list" + +#: src/forms/PurchaseOrderForms.tsx:450 msgid "Change Status" msgstr "Zmień status" -#: src/forms/PurchaseOrderForms.tsx:418 +#: src/forms/PurchaseOrderForms.tsx:456 msgid "Add Note" msgstr "Dodaj notatkę" -#: src/forms/PurchaseOrderForms.tsx:444 -#: src/forms/StockForms.tsx:428 -msgid "Remove item from list" -msgstr "Usuń element z listy" - -#: src/forms/PurchaseOrderForms.tsx:471 -#: src/forms/StockForms.tsx:499 -#: src/forms/StockForms.tsx:533 -#: src/forms/StockForms.tsx:562 -#: src/forms/StockForms.tsx:590 -#: src/forms/StockForms.tsx:621 -#: src/forms/StockForms.tsx:656 -#: src/forms/StockForms.tsx:698 -#: src/forms/StockForms.tsx:734 -#: src/pages/stock/StockDetail.tsx:181 -#: src/tables/ColumnRenderers.tsx:49 -#: src/tables/stock/StockTrackingTable.tsx:85 +#: src/forms/PurchaseOrderForms.tsx:503 +#: src/forms/StockForms.tsx:614 +#: src/forms/StockForms.tsx:651 +#: src/forms/StockForms.tsx:677 +#: src/forms/StockForms.tsx:705 +#: src/forms/StockForms.tsx:736 +#: src/forms/StockForms.tsx:771 +#: src/forms/StockForms.tsx:813 +#: src/forms/StockForms.tsx:851 +#: src/pages/stock/StockDetail.tsx:202 +#: src/tables/ColumnRenderers.tsx:60 +#: src/tables/stock/StockTrackingTable.tsx:89 msgid "Location" msgstr "Lokalizacja" -#: src/forms/PurchaseOrderForms.tsx:486 +#: src/forms/PurchaseOrderForms.tsx:518 msgid "Store at default location" msgstr "Zapisz w domyślnej lokalizacji" -#: src/forms/PurchaseOrderForms.tsx:499 +#: src/forms/PurchaseOrderForms.tsx:533 msgid "Store at line item destination" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:509 +#: src/forms/PurchaseOrderForms.tsx:545 msgid "Store with already received stock" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:524 -#: src/pages/build/BuildDetail.tsx:219 -#: src/pages/stock/StockDetail.tsx:162 -#: src/pages/stock/StockDetail.tsx:599 -#: src/tables/build/BuildAllocatedStockTable.tsx:109 -#: src/tables/build/BuildOrderTestTable.tsx:188 -#: src/tables/sales/SalesOrderAllocationTable.tsx:87 +#: src/forms/PurchaseOrderForms.tsx:566 +#: src/pages/build/BuildDetail.tsx:222 +#: src/pages/stock/StockDetail.tsx:185 +#: src/pages/stock/StockDetail.tsx:793 +#: src/tables/build/BuildAllocatedStockTable.tsx:130 +#: src/tables/build/BuildOrderTestTable.tsx:189 +#: src/tables/build/BuildOutputTable.tsx:86 +#: src/tables/sales/SalesOrderAllocationTable.tsx:113 msgid "Batch Code" msgstr "Kod partii" -#: src/forms/PurchaseOrderForms.tsx:535 -msgid "Serial numbers" +#: src/forms/PurchaseOrderForms.tsx:566 +#~ msgid "Serial numbers" +#~ msgstr "Serial numbers" + +#: src/forms/PurchaseOrderForms.tsx:567 +msgid "Enter batch code for received items" +msgstr "" + +#: src/forms/PurchaseOrderForms.tsx:579 +#: src/forms/StockForms.tsx:152 +msgid "Serial Numbers" msgstr "Numery seryjne" -#: src/forms/PurchaseOrderForms.tsx:544 -#: src/forms/StockForms.tsx:443 -#: src/pages/company/SupplierPartDetail.tsx:156 -#: src/pages/company/SupplierPartDetail.tsx:207 -#: src/pages/stock/StockDetail.tsx:244 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:192 +#: src/forms/PurchaseOrderForms.tsx:580 +msgid "Enter serial numbers for received items" +msgstr "" + +#: src/forms/PurchaseOrderForms.tsx:590 +#: src/forms/StockForms.tsx:556 +#: src/pages/company/SupplierPartDetail.tsx:168 +#: src/pages/company/SupplierPartDetail.tsx:219 +#: src/pages/stock/StockDetail.tsx:320 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:198 msgid "Packaging" msgstr "Opakowanie" -#: src/forms/PurchaseOrderForms.tsx:556 -#: src/pages/build/BuildDetail.tsx:109 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:148 -#: src/pages/sales/ReturnOrderDetail.tsx:121 -#: src/pages/sales/SalesOrderDetail.tsx:127 -#: src/tables/build/BuildOrderTable.tsx:122 -#: src/tables/machine/MachineListTable.tsx:335 -#: src/tables/part/PartPurchaseOrdersTable.tsx:37 -#: src/tables/purchasing/PurchaseOrderTable.tsx:55 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:132 -#: src/tables/sales/ReturnOrderTable.tsx:46 -#: src/tables/sales/SalesOrderTable.tsx:53 -#: src/tables/settings/ImportSessionTable.tsx:115 -#: src/tables/stock/StockItemTable.tsx:294 -#: src/tables/stock/StockTrackingTable.tsx:52 -msgid "Status" -msgstr "Status" - -#: src/forms/PurchaseOrderForms.tsx:564 -#: src/pages/company/SupplierPartDetail.tsx:110 -#: src/tables/ColumnRenderers.tsx:132 +#: src/forms/PurchaseOrderForms.tsx:612 +#: src/pages/company/SupplierPartDetail.tsx:115 +#: src/tables/ColumnRenderers.tsx:143 msgid "Note" msgstr "Notatka" -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/pages/company/SupplierPartDetail.tsx:128 -#: src/tables/purchasing/SupplierPriceBreakTable.tsx:57 -msgid "SKU" -msgstr "SKU" - -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/tables/part/PartPurchaseOrdersTable.tsx:120 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:178 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:127 -msgid "Received" -msgstr "Otrzymano" - -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/forms/StockForms.tsx:499 -#: src/forms/StockForms.tsx:533 -#: src/forms/StockForms.tsx:562 -#: src/forms/StockForms.tsx:590 -#: src/forms/StockForms.tsx:621 -#: src/forms/StockForms.tsx:656 -#: src/forms/StockForms.tsx:698 -#: src/forms/StockForms.tsx:734 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:413 -#: src/tables/RowActions.tsx:113 -msgid "Actions" -msgstr "Akcje" - -#: src/forms/PurchaseOrderForms.tsx:655 -msgid "Receive Line Items" -msgstr "" - #: src/forms/PurchaseOrderForms.tsx:658 #~ msgid "Receive line items" #~ msgstr "Receive line items" -#: src/forms/StockForms.tsx:104 -msgid "Add given quantity as packs instead of individual items" -msgstr "Dodaj podaną ilość jako paczkę zamiast poszczególnych produktów" +#: src/forms/PurchaseOrderForms.tsx:689 +#: src/pages/company/SupplierPartDetail.tsx:133 +#: src/tables/purchasing/SupplierPriceBreakTable.tsx:57 +msgid "SKU" +msgstr "SKU" + +#: src/forms/PurchaseOrderForms.tsx:689 +#: src/tables/part/PartPurchaseOrdersTable.tsx:126 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:184 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:247 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:152 +msgid "Received" +msgstr "Otrzymano" + +#: src/forms/PurchaseOrderForms.tsx:701 +msgid "Receive Line Items" +msgstr "" + +#: src/forms/ReturnOrderForms.tsx:201 +msgid "Receive Items" +msgstr "" + +#: src/forms/ReturnOrderForms.tsx:208 +msgid "Item received into stock" +msgstr "" + +#: src/forms/StockForms.tsx:80 +#: src/hooks/UsePlaceholder.tsx:57 +msgid "Next serial number" +msgstr "Następny numer seryjny" #: src/forms/StockForms.tsx:110 #~ msgid "Create Stock Item" #~ msgstr "Create Stock Item" -#: src/forms/StockForms.tsx:117 +#: src/forms/StockForms.tsx:131 +msgid "Add given quantity as packs instead of individual items" +msgstr "Dodaj podaną ilość jako paczkę zamiast poszczególnych produktów" + +#: src/forms/StockForms.tsx:145 msgid "Enter initial quantity for this stock item" msgstr "Wprowadź początkową ilość dla tego towaru" -#: src/forms/StockForms.tsx:124 -msgid "Serial Numbers" -msgstr "Numery seryjne" - -#: src/forms/StockForms.tsx:125 +#: src/forms/StockForms.tsx:154 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "Wprowadź numery seryjne dla nowego stanu (lub pozostaw puste)" @@ -2943,82 +3545,102 @@ msgstr "Wprowadź numery seryjne dla nowego stanu (lub pozostaw puste)" #~ msgid "Stock item updated" #~ msgstr "Stock item updated" -#: src/forms/StockForms.tsx:179 -#: src/pages/stock/StockDetail.tsx:434 -#: src/tables/stock/StockItemTable.tsx:417 -#: src/tables/stock/StockItemTable.tsx:535 +#: src/forms/StockForms.tsx:169 +#: src/pages/stock/StockDetail.tsx:131 +msgid "Stock Status" +msgstr "" + +#: src/forms/StockForms.tsx:218 +#: src/pages/stock/StockDetail.tsx:554 +#: src/tables/stock/StockItemTable.tsx:421 +#: src/tables/stock/StockItemTable.tsx:541 msgid "Add Stock Item" msgstr "Dodaj element magazynowy" -#: src/forms/StockForms.tsx:362 +#: src/forms/StockForms.tsx:262 +msgid "Select the part to install" +msgstr "" + +#: src/forms/StockForms.tsx:480 msgid "Loading..." msgstr "Ładowanie..." -#: src/forms/StockForms.tsx:408 +#: src/forms/StockForms.tsx:527 msgid "Move to default location" msgstr "Przenieś do domyślnej lokalizacji" -#: src/forms/StockForms.tsx:499 -#: src/forms/StockForms.tsx:533 -#: src/forms/StockForms.tsx:562 -#: src/forms/StockForms.tsx:590 -#: src/forms/StockForms.tsx:621 -#: src/forms/StockForms.tsx:656 -#: src/forms/StockForms.tsx:698 -#: src/forms/StockForms.tsx:734 -#: src/pages/part/PartDetail.tsx:230 -#: src/pages/part/PartDetail.tsx:843 -#: src/tables/stock/StockItemTable.tsx:325 +#: src/forms/StockForms.tsx:614 +#: src/forms/StockForms.tsx:651 +#: src/forms/StockForms.tsx:677 +#: src/forms/StockForms.tsx:705 +#: src/forms/StockForms.tsx:736 +#: src/forms/StockForms.tsx:771 +#: src/forms/StockForms.tsx:813 +#: src/forms/StockForms.tsx:851 +#: src/pages/part/PartDetail.tsx:251 +#: src/pages/part/PartDetail.tsx:875 +#: src/tables/stock/StockItemTable.tsx:329 msgid "In Stock" msgstr "Na stanie" -#: src/forms/StockForms.tsx:499 +#: src/forms/StockForms.tsx:614 msgid "Move" msgstr "Przenieś" -#: src/forms/StockForms.tsx:562 -#: src/pages/stock/StockDetail.tsx:518 -#: src/tables/stock/StockItemTestResultTable.tsx:328 +#: src/forms/StockForms.tsx:677 +#: src/pages/stock/StockDetail.tsx:681 +#: src/tables/stock/StockItemTestResultTable.tsx:346 msgid "Add" msgstr "Dodaj" -#: src/forms/StockForms.tsx:590 -#: src/pages/Index/Scan.tsx:266 -#: src/pages/stock/StockDetail.tsx:508 +#: src/forms/StockForms.tsx:705 +#: src/pages/Index/Scan.tsx:280 +#: src/pages/stock/StockDetail.tsx:670 msgid "Count" msgstr "Ilość" -#: src/forms/StockForms.tsx:835 +#: src/forms/StockForms.tsx:953 +#: src/pages/stock/StockDetail.tsx:682 +#: src/tables/stock/StockItemTable.tsx:454 msgid "Add Stock" msgstr "Dodaj stan" -#: src/forms/StockForms.tsx:844 +#: src/forms/StockForms.tsx:962 +#: src/pages/stock/StockDetail.tsx:691 +#: src/tables/stock/StockItemTable.tsx:463 msgid "Remove Stock" msgstr "Usuń stan" -#: src/forms/StockForms.tsx:853 -#: src/pages/part/PartDetail.tsx:1017 +#: src/forms/StockForms.tsx:971 +#: src/pages/part/PartDetail.tsx:1039 +#: src/pages/stock/StockDetail.tsx:712 +#: src/tables/stock/StockItemTable.tsx:483 msgid "Transfer Stock" msgstr "Przenieś stan" -#: src/forms/StockForms.tsx:862 -#: src/pages/part/PartDetail.tsx:1006 +#: src/forms/StockForms.tsx:980 +#: src/pages/part/PartDetail.tsx:1028 +#: src/pages/stock/LocationDetail.tsx:314 +#: src/pages/stock/LocationDetail.tsx:318 +#: src/tables/stock/StockItemTable.tsx:472 +#: src/tables/stock/StockItemTable.tsx:476 msgid "Count Stock" msgstr "Policz stan" -#: src/forms/StockForms.tsx:871 +#: src/forms/StockForms.tsx:989 msgid "Change Stock Status" msgstr "Zmień status stanu magazynowego" -#: src/forms/StockForms.tsx:880 +#: src/forms/StockForms.tsx:998 msgid "Merge Stock" msgstr "" -#: src/forms/StockForms.tsx:899 +#: src/forms/StockForms.tsx:1017 +#: src/tables/stock/StockItemTable.tsx:530 msgid "Delete Stock Items" msgstr "" -#: src/forms/StockForms.tsx:906 +#: src/forms/StockForms.tsx:1024 msgid "Parent stock location" msgstr "" @@ -3042,11 +3664,11 @@ msgstr "" #~ msgid "You have been logged out" #~ msgstr "You have been logged out" -#: src/functions/auth.tsx:117 +#: src/functions/auth.tsx:128 msgid "Logged Out" msgstr "Wylogowano" -#: src/functions/auth.tsx:118 +#: src/functions/auth.tsx:129 msgid "Successfully logged out" msgstr "" @@ -3062,20 +3684,20 @@ msgstr "" #~ msgid "Found an existing login - welcome back!" #~ msgstr "Found an existing login - welcome back!" -#: src/functions/auth.tsx:156 +#: src/functions/auth.tsx:167 msgid "Check your inbox for a reset link. This only works if you have an account. Check in spam too." msgstr "" -#: src/functions/auth.tsx:163 +#: src/functions/auth.tsx:174 #: src/pages/Auth/Set-Password.tsx:39 msgid "Reset failed" msgstr "" -#: src/functions/auth.tsx:194 +#: src/functions/auth.tsx:205 msgid "Logged In" msgstr "Zalogowano" -#: src/functions/auth.tsx:195 +#: src/functions/auth.tsx:206 msgid "Successfully logged in" msgstr "" @@ -3095,30 +3717,38 @@ msgstr "" #~ msgid "method parameter not supplied" #~ msgstr "method parameter not supplied" -#: src/functions/notifications.tsx:10 +#: src/functions/notifications.tsx:12 msgid "Not implemented" msgstr "Nie zaimplementowano" -#: src/functions/notifications.tsx:11 +#: src/functions/notifications.tsx:13 msgid "This feature is not yet implemented" msgstr "" -#: src/functions/notifications.tsx:21 -msgid "Permission denied" -msgstr "Brak dostępu" +#: src/functions/notifications.tsx:24 +#~ msgid "Permission denied" +#~ msgstr "Permission denied" -#: src/functions/notifications.tsx:22 +#: src/functions/notifications.tsx:25 msgid "You do not have permission to perform this action" msgstr "Nie masz uprawnień do wykonania tej czynności" -#: src/functions/notifications.tsx:33 +#: src/functions/notifications.tsx:36 msgid "Invalid Return Code" msgstr "Nieprawidłowy kod odpowiedzi" -#: src/functions/notifications.tsx:34 +#: src/functions/notifications.tsx:37 msgid "Server returned status {returnCode}" msgstr "Serwer zwrócił status {returnCode}" +#: src/functions/notifications.tsx:47 +msgid "Timeout" +msgstr "" + +#: src/functions/notifications.tsx:48 +msgid "The request timed out" +msgstr "" + #: src/hooks/UseForm.tsx:88 msgid "Item Created" msgstr "Element utworzony" @@ -3135,20 +3765,24 @@ msgstr "Element został usunięty" msgid "Are you sure you want to delete this item?" msgstr "Czy na pewno chcesz usunąć ten element?" +#: src/hooks/UsePlaceholder.tsx:59 +msgid "Latest serial number" +msgstr "Ostatni numer seryjny" + #: src/pages/Auth/Logged-In.tsx:22 msgid "Checking if you are already logged in" msgstr "Sprawdzanie, czy jesteś już zalogowany" -#: src/pages/Auth/Login.tsx:31 -#: src/pages/Index/Scan.tsx:329 +#: src/pages/Auth/Login.tsx:35 +#: src/pages/Index/Scan.tsx:343 msgid "No selection" msgstr "Brak wyboru" -#: src/pages/Auth/Login.tsx:87 +#: src/pages/Auth/Login.tsx:91 msgid "Welcome, log in below" msgstr "Witaj, zaloguj się poniżej" -#: src/pages/Auth/Login.tsx:89 +#: src/pages/Auth/Login.tsx:93 msgid "Register below" msgstr "Rejestracja poniżej" @@ -3162,8 +3796,8 @@ msgstr "Wylogowywanie" #: src/pages/Auth/Reset.tsx:41 #: src/pages/Auth/Set-Password.tsx:112 -msgid "Send mail" -msgstr "Wyślij maila" +#~ msgid "Send mail" +#~ msgstr "Send mail" #: src/pages/Auth/Set-Password.tsx:30 msgid "Token invalid" @@ -3174,22 +3808,22 @@ msgid "You need to provide a valid token to set a new password. Check your inbox msgstr "Musisz podać poprawny token aby ustawić nowe hasło. Sprawdź swoją skrzynkę odbiorczą aby uzyskać link do zresetowania." #: src/pages/Auth/Set-Password.tsx:49 -msgid "No token provided" -msgstr "Nie podano tokenu" +#~ msgid "No token provided" +#~ msgstr "No token provided" #: src/pages/Auth/Set-Password.tsx:50 -msgid "You need to provide a token to set a new password. Check your inbox for a reset link." -msgstr "Musisz podać token, aby ustawić nowe hasło. Sprawdź swoją skrzynkę odbiorczą, aby uzyskać link do zresetowania." +#~ msgid "You need to provide a token to set a new password. Check your inbox for a reset link." +#~ msgstr "You need to provide a token to set a new password. Check your inbox for a reset link." -#: src/pages/Auth/Set-Password.tsx:73 +#: src/pages/Auth/Set-Password.tsx:68 msgid "Password set" msgstr "Hasło ustawione" -#: src/pages/Auth/Set-Password.tsx:74 +#: src/pages/Auth/Set-Password.tsx:69 msgid "The password was set successfully. You can now login with your new password" msgstr "Hasło zostało ustawione pomyślnie. Możesz teraz zalogować się przy użyciu nowego hasła" -#: src/pages/Auth/Set-Password.tsx:101 +#: src/pages/Auth/Set-Password.tsx:96 msgid "Set new password" msgstr "Ustaw nowe hasło" @@ -3206,20 +3840,20 @@ msgstr "" #~ msgstr "Sorry, an unexpected error has occurred." #: src/pages/Index/Dashboard.tsx:22 -msgid "Autoupdate" -msgstr "Aktualizacja automatyczna" +#~ msgid "Autoupdate" +#~ msgstr "Autoupdate" #: src/pages/Index/Dashboard.tsx:26 -msgid "This page is a replacement for the old start page with the same information. This page will be deprecated and replaced by the home page." -msgstr "Ta strona jest zamiennikiem starej strony startowej z tymi samymi informacjami. Ta strona zostanie przestarzała i zastąpiona przez stronę główną." +#~ msgid "This page is a replacement for the old start page with the same information. This page will be deprecated and replaced by the home page." +#~ msgstr "This page is a replacement for the old start page with the same information. This page will be deprecated and replaced by the home page." #: src/pages/Index/Home.tsx:58 -msgid "Welcome to your Dashboard{0}" -msgstr "Witaj w Panelu{0}" +#~ msgid "Welcome to your Dashboard{0}" +#~ msgstr "Welcome to your Dashboard{0}" #: src/pages/Index/Playground.tsx:222 -msgid "This page is a showcase for the possibilities of Platform UI." -msgstr "" +#~ msgid "This page is a showcase for the possibilities of Platform UI." +#~ msgstr "This page is a showcase for the possibilities of Platform UI." #: src/pages/Index/Profile/Profile.tsx:30 #: src/pages/Index/Profile/Profile.tsx:141 @@ -3365,126 +3999,191 @@ msgstr "" msgid "Image Barcode" msgstr "" -#: src/pages/Index/Scan.tsx:247 +#: src/pages/Index/Scan.tsx:261 msgid "Selected elements are not known" msgstr "" -#: src/pages/Index/Scan.tsx:254 +#: src/pages/Index/Scan.tsx:268 msgid "Multiple object types selected" msgstr "" -#: src/pages/Index/Scan.tsx:261 +#: src/pages/Index/Scan.tsx:275 msgid "Actions for {0}" msgstr "" -#: src/pages/Index/Scan.tsx:282 +#: src/pages/Index/Scan.tsx:296 msgid "Scan Page" msgstr "" -#: src/pages/Index/Scan.tsx:285 +#: src/pages/Index/Scan.tsx:299 msgid "This page can be used for continuously scanning items and taking actions on them." msgstr "" -#: src/pages/Index/Scan.tsx:292 +#: src/pages/Index/Scan.tsx:306 msgid "Toggle Fullscreen" msgstr "" -#: src/pages/Index/Scan.tsx:305 +#: src/pages/Index/Scan.tsx:319 msgid "Select the input method you want to use to scan items." msgstr "" -#: src/pages/Index/Scan.tsx:307 +#: src/pages/Index/Scan.tsx:321 msgid "Input" msgstr "" -#: src/pages/Index/Scan.tsx:314 +#: src/pages/Index/Scan.tsx:328 msgid "Select input method" msgstr "" -#: src/pages/Index/Scan.tsx:315 +#: src/pages/Index/Scan.tsx:329 msgid "Nothing found" msgstr "" -#: src/pages/Index/Scan.tsx:323 +#: src/pages/Index/Scan.tsx:337 msgid "Depending on the selected parts actions will be shown here. Not all barcode types are supported currently." msgstr "" -#: src/pages/Index/Scan.tsx:325 +#: src/pages/Index/Scan.tsx:339 msgid "Action" msgstr "" -#: src/pages/Index/Scan.tsx:334 +#: src/pages/Index/Scan.tsx:348 msgid "{0} items selected" msgstr "" -#: src/pages/Index/Scan.tsx:337 +#: src/pages/Index/Scan.tsx:351 msgid "General Actions" msgstr "" -#: src/pages/Index/Scan.tsx:351 +#: src/pages/Index/Scan.tsx:365 msgid "Lookup part" msgstr "" -#: src/pages/Index/Scan.tsx:359 +#: src/pages/Index/Scan.tsx:373 msgid "Open Link" msgstr "" -#: src/pages/Index/Scan.tsx:375 +#: src/pages/Index/Scan.tsx:389 msgid "History is locally kept in this browser." msgstr "" -#: src/pages/Index/Scan.tsx:376 +#: src/pages/Index/Scan.tsx:390 msgid "The history is kept in this browser's local storage. So it won't be shared with other users or other devices but is persistent through reloads. You can select items in the history to perform actions on them. To add items, scan/enter them in the Input area." msgstr "" -#: src/pages/Index/Scan.tsx:378 +#: src/pages/Index/Scan.tsx:392 #: src/pages/Notifications.tsx:100 msgid "History" msgstr "Historia" -#: src/pages/Index/Scan.tsx:384 +#: src/pages/Index/Scan.tsx:398 msgid "Delete History" msgstr "Usuń historię" -#: src/pages/Index/Scan.tsx:449 +#: src/pages/Index/Scan.tsx:463 msgid "No history" msgstr "Brak historii" -#: src/pages/Index/Scan.tsx:467 +#: src/pages/Index/Scan.tsx:481 msgid "Item" msgstr "Komponent" -#: src/pages/Index/Scan.tsx:470 +#: src/pages/Index/Scan.tsx:484 msgid "Type" msgstr "Typ" -#: src/pages/Index/Scan.tsx:473 +#: src/pages/Index/Scan.tsx:487 msgid "Source" msgstr "Źródło" -#: src/pages/Index/Scan.tsx:476 +#: src/pages/Index/Scan.tsx:490 msgid "Scanned at" msgstr "Zeskanowano w" -#: src/pages/Index/Scan.tsx:528 +#: src/pages/Index/Scan.tsx:547 msgid "Enter item serial or data" msgstr "" -#: src/pages/Index/Scan.tsx:540 +#: src/pages/Index/Scan.tsx:559 msgid "Add dummy item" msgstr "" +#: src/pages/Index/Scan.tsx:569 +msgid "Start scanning by selecting a camera and pressing the play button." +msgstr "" + +#: src/pages/Index/Scan.tsx:650 +msgid "Error while getting camera" +msgstr "Błąd podczas uruchamiania kamery" + +#: src/pages/Index/Scan.tsx:673 +msgid "Error while scanning" +msgstr "Błąd podczas skanowania" + +#: src/pages/Index/Scan.tsx:687 +msgid "Error while stopping" +msgstr "Błąd podczas zatrzymywania" + +#: src/pages/Index/Scan.tsx:745 +msgid "Stop scanning" +msgstr "Zatrzymaj skanowanie" + +#: src/pages/Index/Scan.tsx:754 +msgid "Start scanning" +msgstr "Rozpocznij skanowanie" + +#: src/pages/Index/Scan.tsx:763 +msgid "Scanning" +msgstr "Skanowanie" + +#: src/pages/Index/Scan.tsx:763 +msgid "Not scanning" +msgstr "Nie skanuje" + +#: src/pages/Index/Scan.tsx:775 +msgid "Select Camera" +msgstr "Wybierz kamerę" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:28 +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:50 +msgid "Edit User Information" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:32 +msgid "User details updated" +msgstr "" + #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:41 -msgid "Account Details" -msgstr "Szczegóły konta" +msgid "User Details" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:41 +#~ msgid "Account Details" +#~ msgstr "Account Details" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:44 +msgid "User Actions" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:48 +msgid "Edit User" +msgstr "" #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:50 -msgid "First name" -msgstr "Imię" +#~ msgid "First name" +#~ msgstr "First name" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:54 +msgid "Set Password" +msgstr "" #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:55 -msgid "Last name" -msgstr "Nazwisko" +#~ msgid "Last name" +#~ msgstr "Last name" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:56 +msgid "Set User Password" +msgstr "" #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:58 #~ msgid "First name: {0}" @@ -3495,15 +4194,28 @@ msgstr "Nazwisko" #~ msgstr "Last name: {0}" #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:67 -msgid "First name:" -msgstr "Imię:" +#~ msgid "First name:" +#~ msgstr "First name:" #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:71 -msgid "Last name:" -msgstr "Nazwisko:" +#~ msgid "Last name:" +#~ msgstr "Last name:" -#: src/pages/Index/Settings/AccountSettings/DisplaySettingsPanel.tsx:41 -msgid "Use pseudo language" +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:73 +msgid "First Name" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:79 +msgid "Last Name" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:85 +msgid "Staff Access" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:93 +#: src/tables/settings/UserTable.tsx:293 +msgid "Superuser" msgstr "" #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:55 @@ -3600,27 +4312,6 @@ msgstr "" msgid "No tokens configured" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:398 -#: src/pages/part/PartDetail.tsx:297 -#: src/tables/bom/UsedInTable.tsx:84 -#: src/tables/build/BuildOrderTable.tsx:110 -#: src/tables/company/CompanyTable.tsx:61 -#: src/tables/company/CompanyTable.tsx:95 -#: src/tables/machine/MachineListTable.tsx:332 -#: src/tables/machine/MachineListTable.tsx:594 -#: src/tables/part/ParametricPartTable.tsx:223 -#: src/tables/part/PartTable.tsx:178 -#: src/tables/part/PartVariantTable.tsx:15 -#: src/tables/plugin/PluginListTable.tsx:149 -#: src/tables/plugin/PluginListTable.tsx:271 -#: src/tables/plugin/PluginListTable.tsx:563 -#: src/tables/purchasing/SupplierPartTable.tsx:98 -#: src/tables/purchasing/SupplierPartTable.tsx:187 -#: src/tables/settings/UserTable.tsx:284 -#: src/tables/stock/StockItemTable.tsx:289 -msgid "Active" -msgstr "" - #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:401 msgid "Expiry" msgstr "" @@ -3630,38 +4321,74 @@ msgid "Last Seen" msgstr "" #: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:65 -msgid "bars" -msgstr "" +#~ msgid "bars" +#~ msgstr "bars" #: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:66 -msgid "oval" -msgstr "" +#~ msgid "oval" +#~ msgstr "oval" #: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:67 -msgid "dots" -msgstr "kropki" +#~ msgid "dots" +#~ msgstr "dots" #: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:81 -msgid "Theme" -msgstr "Motyw" +#~ msgid "Theme" +#~ msgstr "Theme" #: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:87 -msgid "Primary color" -msgstr "Kolor podstawowy" +#~ msgid "Primary color" +#~ msgstr "Primary color" -#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:100 +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:88 +msgid "Bars" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:89 +msgid "Oval" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:90 +msgid "Dots" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:101 +msgid "Display Settings" +msgstr "Ustawienia wyświetlania" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:107 +msgid "Language" +msgstr "Język" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:115 +msgid "Use pseudo language" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:122 +msgid "Color Mode" +msgstr "Tryb kolorów" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:133 +msgid "Highlight color" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:145 +msgid "Example" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:151 msgid "White color" msgstr "Kolor biały" -#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:108 +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:167 msgid "Black color" msgstr "Kolor czarny" -#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:116 +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:183 msgid "Border Radius" msgstr "Promień obramowania" -#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:132 +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:199 msgid "Loader" msgstr "" @@ -3673,89 +4400,156 @@ msgstr "" #~ msgid "Advanced Amininistrative Options for InvenTree" #~ msgstr "Advanced Amininistrative Options for InvenTree" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:104 +#: src/pages/Index/Settings/AdminCenter/CurrencyManagmentPanel.tsx:27 +#: src/tables/ColumnRenderers.tsx:262 +msgid "Currency" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/CurrencyManagmentPanel.tsx:32 +msgid "Rate" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/CurrencyManagmentPanel.tsx:44 +msgid "Exchange rates updated" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/CurrencyManagmentPanel.tsx:50 +msgid "Exchange rate update error" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/CurrencyManagmentPanel.tsx:62 +msgid "Refresh currency exchange rates" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/CurrencyManagmentPanel.tsx:99 +msgid "Last fetched" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/CurrencyManagmentPanel.tsx:100 +msgid "Base currency" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:115 msgid "Data Import" msgstr "" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:110 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:121 +msgid "Barcode Scans" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:127 msgid "Background Tasks" msgstr "Zadania w tle" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:116 -msgid "Error Reports" -msgstr "Raporty o błędach" - -#: src/pages/Index/Settings/AdminCenter/Index.tsx:122 -msgid "Currencies" -msgstr "Waluty" - #: src/pages/Index/Settings/AdminCenter/Index.tsx:127 #~ msgid "Templates" #~ msgstr "Templates" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:140 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:133 +msgid "Error Reports" +msgstr "Raporty o błędach" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:139 +msgid "Currencies" +msgstr "Waluty" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:157 +msgid "Custom States" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:163 +#: src/pages/Index/Settings/AdminCenter/UnitManagmentPanel.tsx:58 msgid "Custom Units" msgstr "Jednostki niestandardowe" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:146 -#: src/pages/part/CategoryDetail.tsx:264 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:169 +#: src/pages/part/CategoryDetail.tsx:269 msgid "Part Parameters" msgstr "Parametry części" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:152 -msgid "Category Parameters" -msgstr "Parametry kategorii" - -#: src/pages/Index/Settings/AdminCenter/Index.tsx:170 -msgid "Location Types" -msgstr "" - #: src/pages/Index/Settings/AdminCenter/Index.tsx:170 #~ msgid "Location types" #~ msgstr "Location types" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:182 -#: src/tables/machine/MachineTypeTable.tsx:287 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:175 +msgid "Category Parameters" +msgstr "Parametry kategorii" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:181 +msgid "Stocktake" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:199 +msgid "Location Types" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:211 +#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:48 +#: src/tables/machine/MachineTypeTable.tsx:308 msgid "Machines" msgstr "Maszyny" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:192 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:221 msgid "Quick Actions" msgstr "Szybkie akcje" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:197 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:226 msgid "Add a new user" msgstr "Dodaj nowego użytkownika" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:222 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:252 msgid "Advanced Options" msgstr "Opcje zaawansowane" #: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:43 -msgid "Machine types" -msgstr "Typy maszyn" +#~ msgid "Machine types" +#~ msgstr "Machine types" #: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:53 -msgid "Machine Error Stack" +#~ msgid "Machine Error Stack" +#~ msgstr "Machine Error Stack" + +#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:56 +msgid "Machine Types" msgstr "" #: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:62 -msgid "There are no machine registry errors." +#~ msgid "There are no machine registry errors." +#~ msgstr "There are no machine registry errors." + +#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:64 +msgid "Machine Errors" msgstr "" -#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:28 -#: src/tables/settings/UserTable.tsx:119 +#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:77 +msgid "Registry Registry Errors" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:80 +msgid "There are machine registry errors" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:86 +msgid "Machine Registry Errors" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:89 +msgid "There are no machine registry errors" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:31 +#: src/tables/settings/UserTable.tsx:118 msgid "Info" msgstr "Info" -#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:32 -msgid "External plugins are not enabled for this InvenTree installation." -msgstr "" - #: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:33 #~ msgid "Plugin Error Stack" #~ msgstr "Plugin Error Stack" +#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:35 +msgid "External plugins are not enabled for this InvenTree installation." +msgstr "" + #: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:45 #~ msgid "Warning" #~ msgstr "Warning" @@ -3764,34 +4558,46 @@ msgstr "" #~ msgid "Changing the settings below require you to immediately restart the server. Do not change this while under active usage." #~ msgstr "Changing the settings below require you to immediately restart the server. Do not change this while under active usage." -#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:50 +#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:73 msgid "Plugin Errors" msgstr "Błędy wtyczek" -#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:59 -msgid "Plugin Settings" -msgstr "Ustawienia wtyczki" - -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:53 -msgid "Background Worker Not Running" +#: src/pages/Index/Settings/AdminCenter/ReportTemplatePanel.tsx:17 +msgid "Page Size" msgstr "" -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:54 +#: src/pages/Index/Settings/AdminCenter/ReportTemplatePanel.tsx:20 +msgid "Landscape" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/ReportTemplatePanel.tsx:26 +msgid "Attach to Model" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/StocktakePanel.tsx:25 +msgid "Stocktake Reports" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:30 msgid "The background task manager service is not running. Contact your system administrator." msgstr "" -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:60 -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:76 +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:35 +#~ msgid "Background Worker Not Running" +#~ msgstr "Background Worker Not Running" + +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:36 +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:45 msgid "Pending Tasks" msgstr "Oczekujce zadania" -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:64 -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:84 +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:37 +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:53 msgid "Scheduled Tasks" msgstr "Zaplanowane zadania" -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:68 -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:92 +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:38 +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:61 msgid "Failed Tasks" msgstr "Zadania zakończone błędem" @@ -3811,11 +4617,6 @@ msgstr "Zadania zakończone błędem" #~ msgid "Reports" #~ msgstr "Reports" -#: src/pages/Index/Settings/AdminCenter/TemplateManagementPanel.tsx:89 -#: src/pages/build/BuildDetail.tsx:373 -#~ msgid "Report" -#~ msgstr "Report" - #: src/pages/Index/Settings/AdminCenter/TemplateManagementPanel.tsx:99 #~ msgid "Purchase order" #~ msgstr "Purchase order" @@ -3836,23 +4637,35 @@ msgstr "Zadania zakończone błędem" #~ msgid "Stock location" #~ msgstr "Stock location" +#: src/pages/Index/Settings/AdminCenter/UnitManagmentPanel.tsx:21 +msgid "Alias" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/UnitManagmentPanel.tsx:22 +msgid "Dimensionless" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/UnitManagmentPanel.tsx:66 +msgid "All units" +msgstr "" + #: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:32 msgid "Select settings relevant for user lifecycle. More available in" msgstr "" #: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:37 -msgid "System settings" -msgstr "" +#~ msgid "System settings" +#~ msgstr "System settings" -#: src/pages/Index/Settings/SystemSettings.tsx:67 +#: src/pages/Index/Settings/SystemSettings.tsx:66 msgid "Login" msgstr "Zaloguj się" -#: src/pages/Index/Settings/SystemSettings.tsx:93 +#: src/pages/Index/Settings/SystemSettings.tsx:92 msgid "Barcodes" msgstr "Kody kreskowe" -#: src/pages/Index/Settings/SystemSettings.tsx:115 +#: src/pages/Index/Settings/SystemSettings.tsx:116 msgid "Pricing" msgstr "Cennik" @@ -3864,64 +4677,46 @@ msgstr "Cennik" #~ msgid "Exchange Rates" #~ msgstr "Exchange Rates" -#: src/pages/Index/Settings/SystemSettings.tsx:150 +#: src/pages/Index/Settings/SystemSettings.tsx:151 msgid "Labels" msgstr "Etykiety" -#: src/pages/Index/Settings/SystemSettings.tsx:156 -#: src/pages/Index/Settings/UserSettings.tsx:132 +#: src/pages/Index/Settings/SystemSettings.tsx:157 +#: src/pages/Index/Settings/UserSettings.tsx:133 msgid "Reporting" msgstr "Raportowanie" #: src/pages/Index/Settings/SystemSettings.tsx:231 -#: src/pages/part/PartDetail.tsx:682 -msgid "Stocktake" -msgstr "" - -#: src/pages/Index/Settings/SystemSettings.tsx:237 -#: src/pages/build/BuildDetail.tsx:554 -#: src/pages/build/BuildIndex.tsx:22 -#: src/pages/part/PartDetail.tsx:616 -#: src/pages/sales/SalesOrderDetail.tsx:333 +#: src/pages/build/BuildIndex.tsx:27 +#: src/pages/part/PartDetail.tsx:636 +#: src/pages/sales/SalesOrderDetail.tsx:355 msgid "Build Orders" msgstr "Zlecenia wykonania" -#: src/pages/Index/Settings/SystemSettings.tsx:318 -msgid "Switch to User Setting" -msgstr "Przełącz na ustawienie użytkownika" +#: src/pages/Index/Settings/SystemSettings.tsx:317 +#~ msgid "Switch to User Setting" +#~ msgstr "Switch to User Setting" -#: src/pages/Index/Settings/UserSettings.tsx:34 +#: src/pages/Index/Settings/UserSettings.tsx:35 msgid "Account" msgstr "Konto" -#: src/pages/Index/Settings/UserSettings.tsx:40 +#: src/pages/Index/Settings/UserSettings.tsx:41 msgid "Security" msgstr "Bezpieczeństwo" -#: src/pages/Index/Settings/UserSettings.tsx:78 +#: src/pages/Index/Settings/UserSettings.tsx:79 msgid "Display Options" msgstr "Wyświetl opcje" -#: src/pages/Index/Settings/UserSettings.tsx:150 -msgid "Account Settings" -msgstr "Ustawienia konta" - -#: src/pages/Index/Settings/UserSettings.tsx:158 -msgid "Switch to System Setting" -msgstr "Przełącz na ustawienia systemowe" - -#: src/pages/Index/UserSettings.tsx:103 -#~ msgid "User Settings" -#~ msgstr "User Settings" +#: src/pages/Index/Settings/UserSettings.tsx:159 +#~ msgid "Switch to System Setting" +#~ msgstr "Switch to System Setting" #: src/pages/Logged-In.tsx:24 #~ msgid "Found an exsisting login - using it to log you in." #~ msgstr "Found an exsisting login - using it to log you in." -#: src/pages/NotFound.tsx:17 -#~ msgid "Not Found" -#~ msgstr "Not Found" - #: src/pages/NotFound.tsx:20 #~ msgid "Sorry, this page is not known or was moved." #~ msgstr "Sorry, this page is not known or was moved." @@ -3942,104 +4737,86 @@ msgstr "" #~ msgid "Build Status" #~ msgstr "Build Status" -#: src/pages/build/BuildDetail.tsx:102 -#: src/pages/part/PartDetail.tsx:150 +#: src/pages/build/BuildDetail.tsx:97 +#: src/pages/company/ManufacturerPartDetail.tsx:81 +#: src/pages/company/SupplierPartDetail.tsx:91 +#: src/pages/part/PartDetail.tsx:171 +#: src/pages/stock/StockDetail.tsx:122 #: src/tables/bom/BomTable.tsx:118 #: src/tables/bom/UsedInTable.tsx:39 -#: src/tables/build/BuildLineTable.tsx:173 -#: src/tables/build/BuildOrderTable.tsx:55 -#: src/tables/sales/SalesOrderLineItemTable.tsx:62 -#: src/tables/stock/StockItemTable.tsx:53 +#: src/tables/build/BuildAllocatedStockTable.tsx:104 +#: src/tables/build/BuildLineTable.tsx:324 +#: src/tables/build/BuildOrderTable.tsx:64 +#: src/tables/sales/SalesOrderLineItemTable.tsx:70 +#: src/tables/stock/StockItemTable.tsx:54 msgid "IPN" msgstr "" -#: src/pages/build/BuildDetail.tsx:115 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:121 -#: src/pages/sales/ReturnOrderDetail.tsx:95 -#: src/pages/sales/SalesOrderDetail.tsx:101 -#: src/tables/ColumnRenderers.tsx:121 -#: src/tables/build/BuildAllocatedStockTable.tsx:90 -#: src/tables/build/BuildLineTable.tsx:184 +#: src/pages/build/BuildDetail.tsx:110 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:115 +#: src/pages/sales/ReturnOrderDetail.tsx:86 +#: src/pages/sales/SalesOrderDetail.tsx:95 +#: src/tables/ColumnRenderers.tsx:132 +#: src/tables/build/BuildAllocatedStockTable.tsx:111 +#: src/tables/build/BuildLineTable.tsx:335 msgid "Reference" msgstr "" -#: src/pages/build/BuildDetail.tsx:121 -#: src/pages/company/CompanyDetail.tsx:90 -#: src/pages/company/ManufacturerPartDetail.tsx:83 -#: src/pages/company/SupplierPartDetail.tsx:96 -#: src/pages/part/CategoryDetail.tsx:101 -#: src/pages/part/PartDetail.tsx:157 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:142 -#: src/pages/sales/ReturnOrderDetail.tsx:115 -#: src/pages/sales/SalesOrderDetail.tsx:121 -#: src/pages/stock/LocationDetail.tsx:109 -#: src/tables/ColumnRenderers.tsx:81 -#: src/tables/bom/UsedInTable.tsx:44 -#: src/tables/build/BuildAllocatedStockTable.tsx:70 -#: src/tables/build/BuildLineTable.tsx:178 -#: src/tables/machine/MachineTypeTable.tsx:69 -#: src/tables/machine/MachineTypeTable.tsx:112 -#: src/tables/machine/MachineTypeTable.tsx:219 -#: src/tables/machine/MachineTypeTable.tsx:323 -#: src/tables/part/RelatedPartTable.tsx:64 -#: src/tables/plugin/PluginListTable.tsx:129 -#: src/tables/plugin/PluginListTable.tsx:276 -#: src/tables/sales/SalesOrderAllocationTable.tsx:56 -#: src/tables/sales/SalesOrderLineItemTable.tsx:67 -#: src/tables/stock/LocationTypesTable.tsx:74 -msgid "Description" -msgstr "" - -#: src/pages/build/BuildDetail.tsx:129 +#: src/pages/build/BuildDetail.tsx:124 msgid "Parent Build" msgstr "" -#: src/pages/build/BuildDetail.tsx:140 +#: src/pages/build/BuildDetail.tsx:135 msgid "Build Quantity" msgstr "" -#: src/pages/build/BuildDetail.tsx:148 -#: src/pages/build/BuildDetail.tsx:274 +#: src/pages/build/BuildDetail.tsx:143 +#: src/pages/build/BuildDetail.tsx:277 msgid "Completed Outputs" msgstr "" -#: src/pages/build/BuildDetail.tsx:165 -#: src/tables/build/BuildOrderTable.tsx:151 +#: src/pages/build/BuildDetail.tsx:160 +#: src/tables/build/BuildOrderTable.tsx:142 msgid "Issued By" msgstr "" -#: src/pages/build/BuildDetail.tsx:172 -#: src/pages/part/PartDetail.tsx:365 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:220 -#: src/pages/sales/ReturnOrderDetail.tsx:199 -#: src/pages/sales/SalesOrderDetail.tsx:208 -#: src/tables/build/BuildOrderTable.tsx:157 -#: src/tables/purchasing/PurchaseOrderTable.tsx:75 -#: src/tables/sales/ReturnOrderTable.tsx:66 -#: src/tables/sales/SalesOrderTable.tsx:73 +#: src/pages/build/BuildDetail.tsx:167 +#: src/pages/part/PartDetail.tsx:406 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:244 +#: src/pages/sales/ReturnOrderDetail.tsx:216 +#: src/pages/sales/SalesOrderDetail.tsx:226 +#: src/tables/build/BuildOrderTable.tsx:148 +#: src/tables/purchasing/PurchaseOrderTable.tsx:76 +#: src/tables/sales/ReturnOrderTable.tsx:74 +#: src/tables/sales/SalesOrderTable.tsx:74 msgid "Responsible" msgstr "" -#: src/pages/build/BuildDetail.tsx:179 -#: src/tables/settings/PendingTasksTable.tsx:32 +#: src/pages/build/BuildDetail.tsx:174 +#: src/tables/settings/PendingTasksTable.tsx:36 msgid "Created" msgstr "" +#: src/pages/build/BuildDetail.tsx:181 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:229 +#: src/pages/sales/ReturnOrderDetail.tsx:201 +#: src/pages/sales/SalesOrderDetail.tsx:212 +#: src/tables/ColumnRenderers.tsx:226 +#: src/tables/part/PartPurchaseOrdersTable.tsx:100 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:135 +#: src/tables/sales/SalesOrderLineItemTable.tsx:107 +msgid "Target Date" +msgstr "" + #: src/pages/build/BuildDetail.tsx:185 #: src/pages/part/PartDetail.tsx:269 #: src/pages/stock/StockDetail.tsx:150 #~ msgid "View part barcode" #~ msgstr "View part barcode" -#: src/pages/build/BuildDetail.tsx:186 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:213 -#: src/pages/sales/ReturnOrderDetail.tsx:192 -#: src/pages/sales/SalesOrderDetail.tsx:201 -#: src/tables/ColumnRenderers.tsx:212 -#: src/tables/part/PartPurchaseOrdersTable.tsx:99 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:110 -#: src/tables/sales/SalesOrderLineItemTable.tsx:99 -msgid "Target Date" +#: src/pages/build/BuildDetail.tsx:188 +#: src/tables/sales/SalesOrderLineItemTable.tsx:281 +msgid "Completed" msgstr "" #: src/pages/build/BuildDetail.tsx:190 @@ -4047,10 +4824,6 @@ msgstr "" #~ msgid "Link custom barcode to part" #~ msgstr "Link custom barcode to part" -#: src/pages/build/BuildDetail.tsx:193 -msgid "Completed" -msgstr "" - #: src/pages/build/BuildDetail.tsx:196 #: src/pages/part/PartDetail.tsx:280 #~ msgid "Unlink custom barcode from part" @@ -4060,15 +4833,11 @@ msgstr "" #~ msgid "Build Order updated" #~ msgstr "Build Order updated" -#: src/pages/build/BuildDetail.tsx:205 -msgid "Source Location" -msgstr "" - -#: src/pages/build/BuildDetail.tsx:206 +#: src/pages/build/BuildDetail.tsx:209 msgid "Any location" msgstr "" -#: src/pages/build/BuildDetail.tsx:213 +#: src/pages/build/BuildDetail.tsx:216 msgid "Destination Location" msgstr "" @@ -4084,206 +4853,182 @@ msgstr "" #~ msgid "Delete build order" #~ msgstr "Delete build order" -#: src/pages/build/BuildDetail.tsx:251 +#: src/pages/build/BuildDetail.tsx:254 msgid "Build Details" msgstr "" -#: src/pages/build/BuildDetail.tsx:257 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:258 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:267 -#: src/pages/sales/ReturnOrderDetail.tsx:130 -#: src/pages/sales/ReturnOrderDetail.tsx:237 -#: src/pages/sales/ReturnOrderDetail.tsx:246 -#: src/pages/sales/SalesOrderDetail.tsx:272 -#: src/pages/sales/SalesOrderDetail.tsx:281 +#: src/pages/build/BuildDetail.tsx:260 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:282 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:291 +#: src/pages/sales/ReturnOrderDetail.tsx:122 +#: src/pages/sales/ReturnOrderDetail.tsx:254 +#: src/pages/sales/ReturnOrderDetail.tsx:263 +#: src/pages/sales/SalesOrderDetail.tsx:294 +#: src/pages/sales/SalesOrderDetail.tsx:303 msgid "Line Items" msgstr "" -#: src/pages/build/BuildDetail.tsx:267 +#: src/pages/build/BuildDetail.tsx:266 msgid "Incomplete Outputs" msgstr "" -#: src/pages/build/BuildDetail.tsx:289 -#: src/pages/sales/SalesOrderDetail.tsx:319 +#: src/pages/build/BuildDetail.tsx:292 +#: src/pages/sales/SalesOrderDetail.tsx:341 msgid "Allocated Stock" msgstr "" -#: src/pages/build/BuildDetail.tsx:299 +#: src/pages/build/BuildDetail.tsx:302 msgid "Consumed Stock" msgstr "" -#: src/pages/build/BuildDetail.tsx:313 +#: src/pages/build/BuildDetail.tsx:316 msgid "Child Build Orders" msgstr "" #: src/pages/build/BuildDetail.tsx:326 -#: src/tables/build/BuildOutputTable.tsx:384 -#: src/tables/stock/StockItemTestResultTable.tsx:150 +#: src/tables/build/BuildOutputTable.tsx:532 +#: src/tables/stock/StockItemTestResultTable.tsx:156 msgid "Test Results" msgstr "" #: src/pages/build/BuildDetail.tsx:337 -#: src/pages/part/PartDetail.tsx:699 +#: src/pages/part/PartDetail.tsx:740 msgid "Test Statistics" msgstr "" -#: src/pages/build/BuildDetail.tsx:351 -#: src/pages/company/CompanyDetail.tsx:259 -#: src/pages/company/ManufacturerPartDetail.tsx:179 -#: src/pages/part/PartDetail.tsx:721 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:309 -#: src/pages/sales/ReturnOrderDetail.tsx:274 -#: src/pages/sales/SalesOrderDetail.tsx:343 -#: src/pages/stock/StockDetail.tsx:385 -msgid "Attachments" -msgstr "" - -#: src/pages/build/BuildDetail.tsx:359 -#: src/pages/company/CompanyDetail.tsx:270 -#: src/pages/company/ManufacturerPartDetail.tsx:190 -#: src/pages/company/SupplierPartDetail.tsx:257 -#: src/pages/part/PartDetail.tsx:729 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:320 -#: src/pages/sales/ReturnOrderDetail.tsx:285 -#: src/pages/sales/SalesOrderDetail.tsx:354 -#: src/pages/stock/StockDetail.tsx:396 -#: src/tables/build/BuildOrderTestTable.tsx:142 -#: src/tables/stock/StockTrackingTable.tsx:189 -msgid "Notes" +#: src/pages/build/BuildDetail.tsx:365 +msgid "Edit Build Order" msgstr "" #: src/pages/build/BuildDetail.tsx:368 #~ msgid "Reporting Actions" #~ msgstr "Reporting Actions" +#: src/pages/build/BuildDetail.tsx:372 +#: src/tables/build/BuildOrderTable.tsx:173 +#: src/tables/build/BuildOrderTable.tsx:188 +msgid "Add Build Order" +msgstr "" + #: src/pages/build/BuildDetail.tsx:374 #~ msgid "Print build report" #~ msgstr "Print build report" -#: src/pages/build/BuildDetail.tsx:377 -msgid "Edit Build Order" -msgstr "" - -#: src/pages/build/BuildDetail.tsx:384 -#: src/tables/build/BuildOrderTable.tsx:172 -#: src/tables/build/BuildOrderTable.tsx:187 -msgid "Add Build Order" -msgstr "" - -#: src/pages/build/BuildDetail.tsx:398 +#: src/pages/build/BuildDetail.tsx:386 msgid "Cancel Build Order" msgstr "" -#: src/pages/build/BuildDetail.tsx:400 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:348 -#: src/pages/sales/SalesOrderDetail.tsx:380 +#: src/pages/build/BuildDetail.tsx:388 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:357 +#: src/pages/sales/ReturnOrderDetail.tsx:354 +#: src/pages/sales/SalesOrderDetail.tsx:387 msgid "Order cancelled" msgstr "" -#: src/pages/build/BuildDetail.tsx:401 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:347 -#: src/pages/sales/ReturnOrderDetail.tsx:346 -#: src/pages/sales/SalesOrderDetail.tsx:379 +#: src/pages/build/BuildDetail.tsx:389 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:356 +#: src/pages/sales/ReturnOrderDetail.tsx:353 +#: src/pages/sales/SalesOrderDetail.tsx:386 msgid "Cancel this order" msgstr "" -#: src/pages/build/BuildDetail.tsx:410 +#: src/pages/build/BuildDetail.tsx:398 msgid "Hold Build Order" msgstr "" -#: src/pages/build/BuildDetail.tsx:412 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:355 -#: src/pages/sales/ReturnOrderDetail.tsx:354 -#: src/pages/sales/SalesOrderDetail.tsx:387 +#: src/pages/build/BuildDetail.tsx:400 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:364 +#: src/pages/sales/ReturnOrderDetail.tsx:361 +#: src/pages/sales/SalesOrderDetail.tsx:394 msgid "Place this order on hold" msgstr "" -#: src/pages/build/BuildDetail.tsx:413 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:356 -#: src/pages/sales/ReturnOrderDetail.tsx:355 -#: src/pages/sales/SalesOrderDetail.tsx:388 +#: src/pages/build/BuildDetail.tsx:401 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:365 +#: src/pages/sales/ReturnOrderDetail.tsx:362 +#: src/pages/sales/SalesOrderDetail.tsx:395 msgid "Order placed on hold" msgstr "" -#: src/pages/build/BuildDetail.tsx:418 +#: src/pages/build/BuildDetail.tsx:406 msgid "Issue Build Order" msgstr "" -#: src/pages/build/BuildDetail.tsx:420 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:339 -#: src/pages/sales/ReturnOrderDetail.tsx:338 -#: src/pages/sales/SalesOrderDetail.tsx:371 +#: src/pages/build/BuildDetail.tsx:408 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:348 +#: src/pages/sales/ReturnOrderDetail.tsx:345 +#: src/pages/sales/SalesOrderDetail.tsx:378 msgid "Issue this order" msgstr "" -#: src/pages/build/BuildDetail.tsx:421 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:340 -#: src/pages/sales/ReturnOrderDetail.tsx:339 -#: src/pages/sales/SalesOrderDetail.tsx:372 +#: src/pages/build/BuildDetail.tsx:409 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:349 +#: src/pages/sales/ReturnOrderDetail.tsx:346 +#: src/pages/sales/SalesOrderDetail.tsx:379 msgid "Order issued" msgstr "" -#: src/pages/build/BuildDetail.tsx:426 +#: src/pages/build/BuildDetail.tsx:414 msgid "Complete Build Order" msgstr "" -#: src/pages/build/BuildDetail.tsx:428 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:368 -#: src/pages/sales/ReturnOrderDetail.tsx:362 -#: src/pages/sales/SalesOrderDetail.tsx:395 +#: src/pages/build/BuildDetail.tsx:416 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:377 +#: src/pages/sales/ReturnOrderDetail.tsx:369 +#: src/pages/sales/SalesOrderDetail.tsx:402 msgid "Mark this order as complete" msgstr "" -#: src/pages/build/BuildDetail.tsx:429 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:362 -#: src/pages/sales/ReturnOrderDetail.tsx:363 -#: src/pages/sales/SalesOrderDetail.tsx:396 +#: src/pages/build/BuildDetail.tsx:417 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:371 +#: src/pages/sales/ReturnOrderDetail.tsx:370 +#: src/pages/sales/SalesOrderDetail.tsx:403 msgid "Order completed" msgstr "" -#: src/pages/build/BuildDetail.tsx:460 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:391 -#: src/pages/sales/ReturnOrderDetail.tsx:392 -#: src/pages/sales/SalesOrderDetail.tsx:425 +#: src/pages/build/BuildDetail.tsx:448 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:400 +#: src/pages/sales/ReturnOrderDetail.tsx:399 +#: src/pages/sales/SalesOrderDetail.tsx:432 msgid "Issue Order" msgstr "" -#: src/pages/build/BuildDetail.tsx:467 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:398 -#: src/pages/sales/ReturnOrderDetail.tsx:399 -#: src/pages/sales/SalesOrderDetail.tsx:439 +#: src/pages/build/BuildDetail.tsx:455 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:407 +#: src/pages/sales/ReturnOrderDetail.tsx:406 +#: src/pages/sales/SalesOrderDetail.tsx:446 msgid "Complete Order" msgstr "" -#: src/pages/build/BuildDetail.tsx:496 +#: src/pages/build/BuildDetail.tsx:473 msgid "Build Order Actions" msgstr "" -#: src/pages/build/BuildDetail.tsx:502 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:432 -#: src/pages/sales/ReturnOrderDetail.tsx:433 -#: src/pages/sales/SalesOrderDetail.tsx:474 +#: src/pages/build/BuildDetail.tsx:478 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:429 +#: src/pages/sales/ReturnOrderDetail.tsx:428 +#: src/pages/sales/SalesOrderDetail.tsx:469 msgid "Edit order" msgstr "" -#: src/pages/build/BuildDetail.tsx:506 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:440 -#: src/pages/sales/ReturnOrderDetail.tsx:439 -#: src/pages/sales/SalesOrderDetail.tsx:479 +#: src/pages/build/BuildDetail.tsx:482 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:437 +#: src/pages/sales/ReturnOrderDetail.tsx:434 +#: src/pages/sales/SalesOrderDetail.tsx:474 msgid "Duplicate order" msgstr "" -#: src/pages/build/BuildDetail.tsx:510 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:443 -#: src/pages/sales/ReturnOrderDetail.tsx:444 -#: src/pages/sales/SalesOrderDetail.tsx:482 +#: src/pages/build/BuildDetail.tsx:486 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:440 +#: src/pages/sales/ReturnOrderDetail.tsx:439 +#: src/pages/sales/SalesOrderDetail.tsx:477 msgid "Hold order" msgstr "" -#: src/pages/build/BuildDetail.tsx:515 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:448 -#: src/pages/sales/ReturnOrderDetail.tsx:449 -#: src/pages/sales/SalesOrderDetail.tsx:487 +#: src/pages/build/BuildDetail.tsx:491 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:445 +#: src/pages/sales/ReturnOrderDetail.tsx:444 +#: src/pages/sales/SalesOrderDetail.tsx:482 msgid "Cancel order" msgstr "" @@ -4295,56 +5040,60 @@ msgstr "" #~ msgid "New Build Order" #~ msgstr "New Build Order" -#: src/pages/company/CompanyDetail.tsx:104 +#: src/pages/company/CompanyDetail.tsx:95 +msgid "Website" +msgstr "Strona internetowa" + +#: src/pages/company/CompanyDetail.tsx:103 msgid "Phone Number" msgstr "" -#: src/pages/company/CompanyDetail.tsx:111 +#: src/pages/company/CompanyDetail.tsx:110 msgid "Email Address" msgstr "" -#: src/pages/company/CompanyDetail.tsx:121 +#: src/pages/company/CompanyDetail.tsx:120 msgid "Default Currency" msgstr "" -#: src/pages/company/CompanyDetail.tsx:126 +#: src/pages/company/CompanyDetail.tsx:125 #: src/pages/company/SupplierDetail.tsx:8 -#: src/pages/company/SupplierPartDetail.tsx:120 -#: src/pages/company/SupplierPartDetail.tsx:206 -#: src/pages/company/SupplierPartDetail.tsx:351 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:136 -#: src/tables/company/CompanyTable.tsx:100 +#: src/pages/company/SupplierPartDetail.tsx:125 +#: src/pages/company/SupplierPartDetail.tsx:218 +#: src/pages/company/SupplierPartDetail.tsx:340 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:130 +#: src/tables/company/CompanyTable.tsx:101 #: src/tables/part/PartPurchaseOrdersTable.tsx:42 -#: src/tables/purchasing/PurchaseOrderTable.tsx:88 +#: src/tables/purchasing/PurchaseOrderTable.tsx:89 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:36 msgid "Supplier" msgstr "" -#: src/pages/company/CompanyDetail.tsx:132 +#: src/pages/company/CompanyDetail.tsx:131 #: src/pages/company/ManufacturerDetail.tsx:8 -#: src/pages/company/ManufacturerPartDetail.tsx:101 -#: src/pages/company/ManufacturerPartDetail.tsx:267 -#: src/pages/company/SupplierPartDetail.tsx:135 -#: src/tables/company/CompanyTable.tsx:105 +#: src/pages/company/ManufacturerPartDetail.tsx:100 +#: src/pages/company/ManufacturerPartDetail.tsx:262 +#: src/pages/company/SupplierPartDetail.tsx:147 +#: src/tables/company/CompanyTable.tsx:106 msgid "Manufacturer" msgstr "" -#: src/pages/company/CompanyDetail.tsx:138 +#: src/pages/company/CompanyDetail.tsx:137 #: src/pages/company/CustomerDetail.tsx:8 -#: src/pages/part/pricing/SaleHistoryPanel.tsx:29 -#: src/pages/sales/ReturnOrderDetail.tsx:109 -#: src/pages/sales/SalesOrderDetail.tsx:115 -#: src/pages/stock/StockDetail.tsx:230 -#: src/tables/company/CompanyTable.tsx:110 -#: src/tables/sales/ReturnOrderTable.tsx:78 -#: src/tables/sales/SalesOrderTable.tsx:108 -#: src/tables/stock/StockTrackingTable.tsx:140 +#: src/pages/part/pricing/SaleHistoryPanel.tsx:31 +#: src/pages/sales/ReturnOrderDetail.tsx:101 +#: src/pages/sales/SalesOrderDetail.tsx:110 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:100 +#: src/pages/stock/StockDetail.tsx:271 +#: src/tables/company/CompanyTable.tsx:111 +#: src/tables/sales/ReturnOrderTable.tsx:97 +#: src/tables/sales/SalesOrderTable.tsx:121 +#: src/tables/stock/StockTrackingTable.tsx:144 msgid "Customer" msgstr "" #: src/pages/company/CompanyDetail.tsx:172 -#: src/tables/stock/StockTrackingTable.tsx:183 -msgid "Details" +msgid "Company Details" msgstr "" #: src/pages/company/CompanyDetail.tsx:175 @@ -4363,140 +5112,150 @@ msgstr "" #~ msgid "Delete company" #~ msgstr "Delete company" -#: src/pages/company/CompanyDetail.tsx:232 +#: src/pages/company/CompanyDetail.tsx:234 msgid "Assigned Stock" msgstr "" -#: src/pages/company/CompanyDetail.tsx:290 -#: src/tables/company/CompanyTable.tsx:86 +#: src/pages/company/CompanyDetail.tsx:273 +#: src/tables/company/CompanyTable.tsx:87 msgid "Edit Company" msgstr "" -#: src/pages/company/CompanyDetail.tsx:298 +#: src/pages/company/CompanyDetail.tsx:281 msgid "Delete Company" msgstr "" -#: src/pages/company/CompanyDetail.tsx:306 +#: src/pages/company/CompanyDetail.tsx:289 msgid "Company Actions" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:76 -#: src/pages/company/SupplierPartDetail.tsx:89 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:128 +#: src/pages/company/ManufacturerPartDetail.tsx:74 +#: src/pages/company/SupplierPartDetail.tsx:84 msgid "Internal Part" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:91 -#: src/pages/company/SupplierPartDetail.tsx:103 -msgid "External Link" -msgstr "" - -#: src/pages/company/ManufacturerPartDetail.tsx:109 -#: src/pages/company/SupplierPartDetail.tsx:144 -#: src/tables/purchasing/ManufacturerPartTable.tsx:56 +#: src/pages/company/ManufacturerPartDetail.tsx:108 +#: src/pages/company/SupplierPartDetail.tsx:156 +#: src/tables/purchasing/ManufacturerPartTable.tsx:58 msgid "Manufacturer Part Number" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:138 +#: src/pages/company/ManufacturerPartDetail.tsx:125 +#: src/pages/company/SupplierPartDetail.tsx:108 +msgid "External Link" +msgstr "" + +#: src/pages/company/ManufacturerPartDetail.tsx:146 +#: src/pages/company/SupplierPartDetail.tsx:215 +#: src/pages/part/PartDetail.tsx:576 +msgid "Part Details" +msgstr "" + +#: src/pages/company/ManufacturerPartDetail.tsx:149 msgid "Manufacturer Details" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:147 +#: src/pages/company/ManufacturerPartDetail.tsx:158 msgid "Manufacturer Part Details" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:153 -#: src/pages/part/PartDetail.tsx:532 +#: src/pages/company/ManufacturerPartDetail.tsx:164 +#: src/pages/part/PartDetail.tsx:582 msgid "Parameters" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:165 -#: src/pages/part/PartDetail.tsx:649 +#: src/pages/company/ManufacturerPartDetail.tsx:176 +#: src/pages/part/PartDetail.tsx:669 #: src/pages/purchasing/PurchasingIndex.tsx:31 msgid "Suppliers" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:208 -#: src/tables/purchasing/ManufacturerPartTable.tsx:84 +#: src/pages/company/ManufacturerPartDetail.tsx:204 +#: src/tables/purchasing/ManufacturerPartTable.tsx:86 msgid "Edit Manufacturer Part" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:215 -#: src/tables/purchasing/ManufacturerPartTable.tsx:72 -#: src/tables/purchasing/ManufacturerPartTable.tsx:103 +#: src/pages/company/ManufacturerPartDetail.tsx:211 +#: src/tables/purchasing/ManufacturerPartTable.tsx:74 +#: src/tables/purchasing/ManufacturerPartTable.tsx:106 msgid "Add Manufacturer Part" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:227 -#: src/tables/purchasing/ManufacturerPartTable.tsx:92 +#: src/pages/company/ManufacturerPartDetail.tsx:223 +#: src/tables/purchasing/ManufacturerPartTable.tsx:94 msgid "Delete Manufacturer Part" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:240 +#: src/pages/company/ManufacturerPartDetail.tsx:236 msgid "Manufacturer Part Actions" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:281 +#: src/pages/company/ManufacturerPartDetail.tsx:276 msgid "ManufacturerPart" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:163 -#: src/tables/part/PartPurchaseOrdersTable.tsx:71 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:156 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:197 -#: src/tables/purchasing/SupplierPartTable.tsx:131 +#: src/pages/company/SupplierPartDetail.tsx:99 +msgid "Part Description" +msgstr "" + +#: src/pages/company/SupplierPartDetail.tsx:175 +#: src/tables/part/PartPurchaseOrdersTable.tsx:72 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:162 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:203 +#: src/tables/purchasing/SupplierPartTable.tsx:133 msgid "Pack Quantity" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:174 +#: src/pages/company/SupplierPartDetail.tsx:186 msgid "Supplier Availability" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:181 +#: src/pages/company/SupplierPartDetail.tsx:193 msgid "Availability Updated" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:208 +#: src/pages/company/SupplierPartDetail.tsx:220 msgid "Availability" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:217 +#: src/pages/company/SupplierPartDetail.tsx:229 msgid "Supplier Part Details" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:223 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:296 +#: src/pages/company/SupplierPartDetail.tsx:235 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:320 msgid "Received Stock" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:247 -#: src/pages/part/PartPricingPanel.tsx:111 -#: src/pages/part/pricing/PricingOverviewPanel.tsx:121 +#: src/pages/company/SupplierPartDetail.tsx:259 +#: src/pages/part/PartPricingPanel.tsx:116 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:195 msgid "Supplier Pricing" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:294 +#: src/pages/company/SupplierPartDetail.tsx:284 msgid "Supplier Part Actions" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:319 -#: src/tables/purchasing/SupplierPartTable.tsx:210 +#: src/pages/company/SupplierPartDetail.tsx:308 +#: src/tables/purchasing/SupplierPartTable.tsx:213 msgid "Edit Supplier Part" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:327 -#: src/tables/purchasing/SupplierPartTable.tsx:218 +#: src/pages/company/SupplierPartDetail.tsx:316 +#: src/tables/purchasing/SupplierPartTable.tsx:221 msgid "Delete Supplier Part" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:335 -#: src/tables/purchasing/SupplierPartTable.tsx:163 +#: src/pages/company/SupplierPartDetail.tsx:324 +#: src/tables/purchasing/SupplierPartTable.tsx:165 msgid "Add Supplier Part" msgstr "" #: src/pages/part/CategoryDetail.tsx:93 -#: src/pages/stock/LocationDetail.tsx:101 -#: src/tables/settings/ErrorTable.tsx:36 +#: src/pages/stock/LocationDetail.tsx:95 +#: src/tables/settings/ErrorTable.tsx:63 +#: src/tables/settings/ErrorTable.tsx:108 msgid "Path" msgstr "" @@ -4504,357 +5263,357 @@ msgstr "" msgid "Parent Category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:126 +#: src/pages/part/CategoryDetail.tsx:132 msgid "Subcategories" msgstr "" -#: src/pages/part/CategoryDetail.tsx:133 -#: src/pages/stock/LocationDetail.tsx:141 -#: src/tables/part/PartCategoryTable.tsx:73 +#: src/pages/part/CategoryDetail.tsx:139 +#: src/pages/stock/LocationDetail.tsx:135 +#: src/tables/part/PartCategoryTable.tsx:85 #: src/tables/stock/StockLocationTable.tsx:49 msgid "Structural" msgstr "" -#: src/pages/part/CategoryDetail.tsx:139 +#: src/pages/part/CategoryDetail.tsx:145 msgid "Parent default location" msgstr "" -#: src/pages/part/CategoryDetail.tsx:146 +#: src/pages/part/CategoryDetail.tsx:152 msgid "Default location" msgstr "" -#: src/pages/part/CategoryDetail.tsx:157 +#: src/pages/part/CategoryDetail.tsx:163 msgid "Top level part category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:167 -#: src/pages/part/CategoryDetail.tsx:221 -#: src/tables/part/PartCategoryTable.tsx:102 +#: src/pages/part/CategoryDetail.tsx:173 +#: src/pages/part/CategoryDetail.tsx:226 +#: src/tables/part/PartCategoryTable.tsx:118 msgid "Edit Part Category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:180 -#: src/pages/stock/LocationDetail.tsx:233 +#: src/pages/part/CategoryDetail.tsx:186 +#: src/pages/stock/LocationDetail.tsx:227 msgid "Delete items" msgstr "" -#: src/pages/part/CategoryDetail.tsx:188 -#: src/pages/part/CategoryDetail.tsx:226 +#: src/pages/part/CategoryDetail.tsx:194 +#: src/pages/part/CategoryDetail.tsx:231 msgid "Delete Part Category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:191 +#: src/pages/part/CategoryDetail.tsx:197 msgid "Parts Action" msgstr "" -#: src/pages/part/CategoryDetail.tsx:192 +#: src/pages/part/CategoryDetail.tsx:198 msgid "Action for parts in this category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:197 +#: src/pages/part/CategoryDetail.tsx:203 msgid "Child Categories Action" msgstr "" -#: src/pages/part/CategoryDetail.tsx:198 +#: src/pages/part/CategoryDetail.tsx:204 msgid "Action for child categories in this category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:216 +#: src/pages/part/CategoryDetail.tsx:222 msgid "Category Actions" msgstr "" -#: src/pages/part/CategoryDetail.tsx:238 +#: src/pages/part/CategoryDetail.tsx:243 msgid "Category Details" msgstr "" -#: src/pages/part/PartDetail.tsx:163 -msgid "Variant of" +#: src/pages/part/PartAllocationPanel.tsx:23 +#: src/pages/stock/StockDetail.tsx:443 +#: src/tables/part/PartTable.tsx:99 +msgid "Build Order Allocations" msgstr "" -#: src/pages/part/PartDetail.tsx:170 -msgid "Revision of" -msgstr "" - -#: src/pages/part/PartDetail.tsx:177 -#: src/tables/stock/StockItemTable.tsx:58 -msgid "Revision" +#: src/pages/part/PartAllocationPanel.tsx:40 +#: src/pages/stock/StockDetail.tsx:458 +#: src/tables/part/PartTable.tsx:108 +msgid "Sales Order Allocations" msgstr "" #: src/pages/part/PartDetail.tsx:184 +msgid "Variant of" +msgstr "" + +#: src/pages/part/PartDetail.tsx:191 +msgid "Revision of" +msgstr "" + +#: src/pages/part/PartDetail.tsx:198 +#: src/tables/stock/StockItemTable.tsx:59 +msgid "Revision" +msgstr "" + +#: src/pages/part/PartDetail.tsx:205 #: src/tables/notifications/NotificationsTable.tsx:31 #: src/tables/part/PartCategoryTemplateTable.tsx:67 msgid "Category" msgstr "" -#: src/pages/part/PartDetail.tsx:190 +#: src/pages/part/PartDetail.tsx:211 msgid "Default Location" msgstr "" -#: src/pages/part/PartDetail.tsx:197 +#: src/pages/part/PartDetail.tsx:218 msgid "Category Default Location" msgstr "" -#: src/pages/part/PartDetail.tsx:204 +#: src/pages/part/PartDetail.tsx:225 #: src/tables/purchasing/ManufacturerPartParameterTable.tsx:44 msgid "Units" msgstr "" -#: src/pages/part/PartDetail.tsx:211 -#: src/tables/settings/PendingTasksTable.tsx:42 +#: src/pages/part/PartDetail.tsx:232 +#: src/tables/settings/PendingTasksTable.tsx:46 msgid "Keywords" msgstr "" -#: src/pages/part/PartDetail.tsx:218 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:186 -#: src/pages/sales/ReturnOrderDetail.tsx:165 -#: src/pages/sales/SalesOrderDetail.tsx:174 -msgid "Link" -msgstr "" - -#: src/pages/part/PartDetail.tsx:236 +#: src/pages/part/PartDetail.tsx:257 #: src/tables/bom/BomTable.tsx:320 -#: src/tables/build/BuildLineTable.tsx:155 +#: src/tables/build/BuildLineTable.tsx:286 #: src/tables/part/PartTable.tsx:288 -#: src/tables/sales/SalesOrderLineItemTable.tsx:103 +#: src/tables/sales/SalesOrderLineItemTable.tsx:111 msgid "Available Stock" msgstr "" -#: src/pages/part/PartDetail.tsx:243 +#: src/pages/part/PartDetail.tsx:264 msgid "Variant Stock" msgstr "" -#: src/pages/part/PartDetail.tsx:251 +#: src/pages/part/PartDetail.tsx:272 msgid "Minimum Stock" msgstr "" -#: src/pages/part/PartDetail.tsx:257 +#: src/pages/part/PartDetail.tsx:278 #: src/tables/bom/BomTable.tsx:237 -#: src/tables/build/BuildLineTable.tsx:117 -#: src/tables/sales/SalesOrderLineItemTable.tsx:141 +#: src/tables/build/BuildLineTable.tsx:248 +#: src/tables/sales/SalesOrderLineItemTable.tsx:149 msgid "On order" msgstr "" -#: src/pages/part/PartDetail.tsx:266 +#: src/pages/part/PartDetail.tsx:285 +msgid "Required for Orders" +msgstr "" + +#: src/pages/part/PartDetail.tsx:294 msgid "Allocated to Build Orders" msgstr "" -#: src/pages/part/PartDetail.tsx:274 +#: src/pages/part/PartDetail.tsx:305 msgid "Allocated to Sales Orders" msgstr "" -#: src/pages/part/PartDetail.tsx:281 -#: src/tables/bom/BomTable.tsx:261 -#: src/tables/bom/BomTable.tsx:293 -msgid "Can Build" -msgstr "" - -#: src/pages/part/PartDetail.tsx:288 -#: src/tables/bom/BomTable.tsx:245 -#: src/tables/part/PartTable.tsx:92 -msgid "Building" -msgstr "" - -#: src/pages/part/PartDetail.tsx:302 -#: src/pages/part/PartDetail.tsx:873 -#: src/tables/part/ParametricPartTable.tsx:228 -#: src/tables/part/PartTable.tsx:184 -msgid "Locked" -msgstr "" - -#: src/pages/part/PartDetail.tsx:308 -msgid "Template Part" -msgstr "" - #: src/pages/part/PartDetail.tsx:310 #~ msgid "Edit part" #~ msgstr "Edit part" -#: src/pages/part/PartDetail.tsx:313 -#: src/tables/bom/BomTable.tsx:315 -msgid "Assembled Part" +#: src/pages/part/PartDetail.tsx:315 +#: src/tables/bom/BomTable.tsx:261 +#: src/tables/bom/BomTable.tsx:293 +msgid "Can Build" msgstr "" -#: src/pages/part/PartDetail.tsx:318 -msgid "Component Part" +#: src/pages/part/PartDetail.tsx:322 +#: src/pages/part/PartDetail.tsx:905 +#: src/pages/stock/StockDetail.tsx:766 +#: src/tables/build/BuildOrderTestTable.tsx:220 +#: src/tables/stock/StockItemTable.tsx:334 +msgid "In Production" msgstr "" #: src/pages/part/PartDetail.tsx:322 #~ msgid "Duplicate part" #~ msgstr "Duplicate part" -#: src/pages/part/PartDetail.tsx:323 -#: src/tables/bom/BomTable.tsx:305 -msgid "Testable Part" -msgstr "" - #: src/pages/part/PartDetail.tsx:327 #~ msgid "Delete part" #~ msgstr "Delete part" -#: src/pages/part/PartDetail.tsx:329 +#: src/pages/part/PartDetail.tsx:336 +#: src/tables/part/ParametricPartTable.tsx:228 +#: src/tables/part/PartTable.tsx:184 +msgid "Locked" +msgstr "" + +#: src/pages/part/PartDetail.tsx:342 +msgid "Template Part" +msgstr "" + +#: src/pages/part/PartDetail.tsx:347 +#: src/tables/bom/BomTable.tsx:315 +msgid "Assembled Part" +msgstr "" + +#: src/pages/part/PartDetail.tsx:352 +msgid "Component Part" +msgstr "" + +#: src/pages/part/PartDetail.tsx:357 +#: src/tables/bom/BomTable.tsx:305 +msgid "Testable Part" +msgstr "" + +#: src/pages/part/PartDetail.tsx:363 #: src/tables/bom/BomTable.tsx:310 msgid "Trackable Part" msgstr "" -#: src/pages/part/PartDetail.tsx:334 +#: src/pages/part/PartDetail.tsx:368 msgid "Purchaseable Part" msgstr "" -#: src/pages/part/PartDetail.tsx:339 +#: src/pages/part/PartDetail.tsx:374 msgid "Saleable Part" msgstr "" -#: src/pages/part/PartDetail.tsx:344 +#: src/pages/part/PartDetail.tsx:379 msgid "Virtual Part" msgstr "" -#: src/pages/part/PartDetail.tsx:352 -#: src/tables/ColumnRenderers.tsx:220 +#: src/pages/part/PartDetail.tsx:393 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:215 +#: src/pages/sales/ReturnOrderDetail.tsx:185 +#: src/pages/sales/SalesOrderDetail.tsx:197 +#: src/tables/ColumnRenderers.tsx:234 msgid "Creation Date" msgstr "" -#: src/pages/part/PartDetail.tsx:357 +#: src/pages/part/PartDetail.tsx:398 msgid "Created By" msgstr "" -#: src/pages/part/PartDetail.tsx:372 +#: src/pages/part/PartDetail.tsx:413 msgid "Default Supplier" msgstr "" -#: src/pages/part/PartDetail.tsx:383 -#: src/pages/part/pricing/BomPricingPanel.tsx:79 +#: src/pages/part/PartDetail.tsx:424 +#: src/pages/part/pricing/BomPricingPanel.tsx:113 #: src/pages/part/pricing/VariantPricingPanel.tsx:95 #: src/tables/part/PartTable.tsx:161 msgid "Price Range" msgstr "" -#: src/pages/part/PartDetail.tsx:423 -#: src/pages/stock/StockDetail.tsx:135 +#: src/pages/part/PartDetail.tsx:462 +msgid "Latest Serial Number" +msgstr "" + +#: src/pages/part/PartDetail.tsx:472 +#: src/pages/stock/StockDetail.tsx:151 msgid "Last Stocktake" msgstr "" -#: src/pages/part/PartDetail.tsx:462 +#: src/pages/part/PartDetail.tsx:511 msgid "Stocktake By" msgstr "" -#: src/pages/part/PartDetail.tsx:526 -msgid "Part Details" -msgstr "" - -#: src/pages/part/PartDetail.tsx:557 +#: src/pages/part/PartDetail.tsx:611 msgid "Variants" msgstr "" -#: src/pages/part/PartDetail.tsx:564 -#: src/pages/stock/StockDetail.tsx:307 +#: src/pages/part/PartDetail.tsx:618 +#: src/pages/stock/StockDetail.tsx:430 msgid "Allocations" msgstr "" -#: src/pages/part/PartDetail.tsx:575 -#: src/pages/stock/StockDetail.tsx:318 -#: src/tables/part/PartTable.tsx:99 -msgid "Build Order Allocations" -msgstr "" - -#: src/pages/part/PartDetail.tsx:590 -#: src/pages/stock/StockDetail.tsx:333 -#: src/tables/part/PartTable.tsx:108 -msgid "Sales Order Allocations" -msgstr "" - -#: src/pages/part/PartDetail.tsx:607 +#: src/pages/part/PartDetail.tsx:625 msgid "Bill of Materials" msgstr "" -#: src/pages/part/PartDetail.tsx:623 +#: src/pages/part/PartDetail.tsx:643 msgid "Used In" msgstr "" -#: src/pages/part/PartDetail.tsx:630 +#: src/pages/part/PartDetail.tsx:650 msgid "Part Pricing" msgstr "" -#: src/pages/part/PartDetail.tsx:636 +#: src/pages/part/PartDetail.tsx:656 #: src/pages/purchasing/PurchasingIndex.tsx:42 msgid "Manufacturers" msgstr "" -#: src/pages/part/PartDetail.tsx:676 +#: src/pages/part/PartDetail.tsx:722 msgid "Scheduling" msgstr "" -#: src/pages/part/PartDetail.tsx:688 +#: src/pages/part/PartDetail.tsx:729 msgid "Test Templates" msgstr "" -#: src/pages/part/PartDetail.tsx:715 +#: src/pages/part/PartDetail.tsx:756 msgid "Related Parts" msgstr "" -#: src/pages/part/PartDetail.tsx:849 -#: src/pages/stock/StockDetail.tsx:156 -#: src/pages/stock/StockDetail.tsx:593 -#: src/tables/build/BuildLineTable.tsx:48 +#: src/pages/part/PartDetail.tsx:881 +#: src/pages/stock/StockDetail.tsx:172 +#: src/pages/stock/StockDetail.tsx:783 +#: src/tables/build/BuildLineTable.tsx:179 #: src/tables/part/PartTable.tsx:117 -#: src/tables/stock/StockItemTable.tsx:177 -#: src/tables/stock/StockItemTable.tsx:310 +#: src/tables/stock/StockItemTable.tsx:166 +#: src/tables/stock/StockItemTable.tsx:314 msgid "Available" msgstr "" -#: src/pages/part/PartDetail.tsx:855 +#: src/pages/part/PartDetail.tsx:887 msgid "No Stock" msgstr "" -#: src/pages/part/PartDetail.tsx:861 +#: src/pages/part/PartDetail.tsx:893 +#: src/tables/part/PartTestTemplateTable.tsx:106 +#: src/tables/stock/StockItemTestResultTable.tsx:383 +msgid "Required" +msgstr "" + +#: src/pages/part/PartDetail.tsx:899 #: src/tables/bom/BomTable.tsx:325 #: src/tables/part/PartTable.tsx:86 msgid "On Order" msgstr "" -#: src/pages/part/PartDetail.tsx:867 -#: src/pages/stock/StockDetail.tsx:576 -#: src/tables/build/BuildOrderTestTable.tsx:219 -#: src/tables/stock/StockItemTable.tsx:330 -msgid "In Production" -msgstr "" - -#: src/pages/part/PartDetail.tsx:892 +#: src/pages/part/PartDetail.tsx:924 msgid "Edit Part" msgstr "" -#: src/pages/part/PartDetail.tsx:927 +#: src/pages/part/PartDetail.tsx:959 #: src/tables/part/PartTable.tsx:331 -#: src/tables/part/PartTable.tsx:342 +#: src/tables/part/PartTable.tsx:343 msgid "Add Part" msgstr "" -#: src/pages/part/PartDetail.tsx:941 +#: src/pages/part/PartDetail.tsx:973 msgid "Delete Part" msgstr "" -#: src/pages/part/PartDetail.tsx:950 +#: src/pages/part/PartDetail.tsx:982 msgid "Deleting this part cannot be reversed" msgstr "" -#: src/pages/part/PartDetail.tsx:999 -#: src/pages/stock/LocationDetail.tsx:324 -#: src/tables/stock/StockItemTable.tsx:444 +#: src/pages/part/PartDetail.tsx:1021 +#: src/pages/stock/LocationDetail.tsx:310 +#: src/tables/stock/StockItemTable.tsx:449 msgid "Stock Actions" msgstr "" -#: src/pages/part/PartDetail.tsx:1007 +#: src/pages/part/PartDetail.tsx:1029 msgid "Count part stock" msgstr "" -#: src/pages/part/PartDetail.tsx:1018 +#: src/pages/part/PartDetail.tsx:1040 msgid "Transfer part stock" msgstr "" -#: src/pages/part/PartDetail.tsx:1027 +#: src/pages/part/PartDetail.tsx:1049 msgid "Part Actions" msgstr "" -#: src/pages/part/PartDetail.tsx:1087 +#: src/pages/part/PartDetail.tsx:1113 msgid "Select Part Revision" msgstr "" @@ -4862,113 +5621,214 @@ msgstr "" #~ msgid "Categories" #~ msgstr "Categories" -#: src/pages/part/PartPricingPanel.tsx:68 +#: src/pages/part/PartPricingPanel.tsx:72 msgid "No pricing data found for this part." msgstr "" -#: src/pages/part/PartPricingPanel.tsx:82 -#: src/pages/part/pricing/PricingOverviewPanel.tsx:190 +#: src/pages/part/PartPricingPanel.tsx:87 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:293 msgid "Pricing Overview" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:88 +#: src/pages/part/PartPricingPanel.tsx:93 msgid "Purchase History" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:102 -#: src/pages/part/pricing/PricingOverviewPanel.tsx:100 +#: src/pages/part/PartPricingPanel.tsx:107 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:174 msgid "Internal Pricing" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:120 -#: src/pages/part/pricing/PricingOverviewPanel.tsx:107 +#: src/pages/part/PartPricingPanel.tsx:125 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:181 msgid "BOM Pricing" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:127 -#: src/pages/part/pricing/PricingOverviewPanel.tsx:128 +#: src/pages/part/PartPricingPanel.tsx:132 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:202 msgid "Variant Pricing" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:139 -#: src/pages/part/pricing/PricingOverviewPanel.tsx:135 +#: src/pages/part/PartPricingPanel.tsx:144 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:209 msgid "Sale Pricing" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:146 -#: src/pages/part/pricing/PricingOverviewPanel.tsx:142 +#: src/pages/part/PartPricingPanel.tsx:151 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:216 msgid "Sale History" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:58 -#: src/pages/part/pricing/BomPricingPanel.tsx:138 -#: src/tables/ColumnRenderers.tsx:262 +#: src/pages/part/PartSchedulingDetail.tsx:47 +#: src/pages/part/PartSchedulingDetail.tsx:299 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:156 +msgid "Maximum" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:50 +#: src/pages/part/PartSchedulingDetail.tsx:289 +msgid "Scheduled" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:53 +#: src/pages/part/PartSchedulingDetail.tsx:294 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:144 +msgid "Minimum" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:68 +msgid "Order" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:92 +msgid "Quantity is speculative" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:101 +msgid "No date available for provided quantity" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:105 +msgid "Date is in the past" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:112 +msgid "Scheduled Quantity" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:240 +msgid "No information available" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:241 +msgid "There is no scheduling information available for the selected part" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:276 +msgid "Expected Quantity" +msgstr "" + +#: src/pages/part/PartStocktakeDetail.tsx:63 +#: src/tables/FilterSelectDrawer.tsx:167 +#: src/tables/FilterSelectDrawer.tsx:174 +#: src/tables/build/BuildOrderTestTable.tsx:135 +#: src/tables/purchasing/ManufacturerPartParameterTable.tsx:38 +#: src/tables/stock/StockItemTestResultTable.tsx:192 +msgid "Value" +msgstr "" + +#: src/pages/part/PartStocktakeDetail.tsx:82 +msgid "Edit Stocktake Entry" +msgstr "" + +#: src/pages/part/PartStocktakeDetail.tsx:90 +msgid "Delete Stocktake Entry" +msgstr "" + +#: src/pages/part/PartStocktakeDetail.tsx:96 +#: src/tables/settings/StocktakeReportTable.tsx:69 +msgid "Generate Stocktake Report" +msgstr "" + +#: src/pages/part/PartStocktakeDetail.tsx:101 +#: src/tables/settings/StocktakeReportTable.tsx:71 +msgid "Stocktake report scheduled" +msgstr "" + +#: src/pages/part/PartStocktakeDetail.tsx:119 +#: src/pages/part/PartStocktakeDetail.tsx:235 +#: src/pages/stock/StockDetail.tsx:303 +#: src/tables/stock/StockItemTable.tsx:249 +msgid "Stock Value" +msgstr "" + +#: src/pages/part/PartStocktakeDetail.tsx:139 +#: src/tables/settings/StocktakeReportTable.tsx:77 +msgid "New Stocktake Report" +msgstr "" + +#: src/pages/part/PartStocktakeDetail.tsx:258 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:295 +msgid "Minimum Value" +msgstr "" + +#: src/pages/part/PartStocktakeDetail.tsx:264 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:296 +msgid "Maximum Value" +msgstr "" + +#: src/pages/part/pricing/BomPricingPanel.tsx:87 +#: src/pages/part/pricing/BomPricingPanel.tsx:177 +#: src/tables/ColumnRenderers.tsx:276 #: src/tables/bom/BomTable.tsx:185 #: src/tables/general/ExtraLineItemTable.tsx:64 -#: src/tables/purchasing/PurchaseOrderTable.tsx:112 -#: src/tables/sales/ReturnOrderTable.tsx:104 -#: src/tables/sales/SalesOrderLineItemTable.tsx:89 -#: src/tables/sales/SalesOrderTable.tsx:136 +#: src/tables/purchasing/PurchaseOrderTable.tsx:113 +#: src/tables/sales/ReturnOrderTable.tsx:127 +#: src/tables/sales/SalesOrderLineItemTable.tsx:97 +#: src/tables/sales/SalesOrderTable.tsx:149 msgid "Total Price" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:78 -#: src/pages/part/pricing/BomPricingPanel.tsx:102 +#: src/pages/part/pricing/BomPricingPanel.tsx:112 +#: src/pages/part/pricing/BomPricingPanel.tsx:141 #: src/tables/bom/UsedInTable.tsx:49 +#: src/tables/build/BuildLineTable.tsx:296 #: src/tables/part/PartTable.tsx:202 msgid "Component" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:81 -#: src/pages/part/pricing/VariantPricingPanel.tsx:37 -#: src/pages/part/pricing/VariantPricingPanel.tsx:97 -msgid "Minimum Price" -msgstr "" - -#: src/pages/part/pricing/BomPricingPanel.tsx:82 -#: src/pages/part/pricing/VariantPricingPanel.tsx:45 -#: src/pages/part/pricing/VariantPricingPanel.tsx:98 -msgid "Maximum Price" -msgstr "" - #: src/pages/part/pricing/BomPricingPanel.tsx:112 #~ msgid "Minimum Total Price" #~ msgstr "Minimum Total Price" +#: src/pages/part/pricing/BomPricingPanel.tsx:115 +#: src/pages/part/pricing/VariantPricingPanel.tsx:37 +#: src/pages/part/pricing/VariantPricingPanel.tsx:97 +msgid "Minimum Price" +msgstr "" + +#: src/pages/part/pricing/BomPricingPanel.tsx:116 +#: src/pages/part/pricing/VariantPricingPanel.tsx:45 +#: src/pages/part/pricing/VariantPricingPanel.tsx:98 +msgid "Maximum Price" +msgstr "" + #: src/pages/part/pricing/BomPricingPanel.tsx:117 #~ msgid "Maximum Total Price" #~ msgstr "Maximum Total Price" -#: src/pages/part/pricing/BomPricingPanel.tsx:129 -#: src/pages/part/pricing/PriceBreakPanel.tsx:172 -#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:67 -#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:128 -#: src/pages/part/pricing/SupplierPricingPanel.tsx:62 +#: src/pages/part/pricing/BomPricingPanel.tsx:168 +#: src/pages/part/pricing/PriceBreakPanel.tsx:173 +#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:70 +#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:125 +#: src/pages/part/pricing/SupplierPricingPanel.tsx:66 +#: src/pages/stock/StockDetail.tsx:291 #: src/tables/bom/BomTable.tsx:176 #: src/tables/general/ExtraLineItemTable.tsx:56 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:223 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:225 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:92 +#: src/tables/stock/StockItemTable.tsx:239 msgid "Unit Price" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:154 +#: src/pages/part/pricing/BomPricingPanel.tsx:193 #: src/pages/part/pricing/VariantPricingPanel.tsx:53 -#: src/tables/purchasing/SupplierPartTable.tsx:148 +#: src/tables/purchasing/SupplierPartTable.tsx:150 msgid "Updated" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:219 +#: src/pages/part/pricing/BomPricingPanel.tsx:258 msgid "Pie Chart" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:220 +#: src/pages/part/pricing/BomPricingPanel.tsx:259 msgid "Bar Chart" msgstr "" #: src/pages/part/pricing/PriceBreakPanel.tsx:58 -#: src/pages/part/pricing/PriceBreakPanel.tsx:110 +#: src/pages/part/pricing/PriceBreakPanel.tsx:111 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:142 -#: src/tables/purchasing/SupplierPriceBreakTable.tsx:168 +#: src/tables/purchasing/SupplierPriceBreakTable.tsx:169 msgid "Add Price Break" msgstr "" @@ -4986,46 +5846,70 @@ msgstr "" msgid "Price Break" msgstr "" -#: src/pages/part/pricing/PriceBreakPanel.tsx:170 +#: src/pages/part/pricing/PriceBreakPanel.tsx:171 msgid "Price" msgstr "" -#: src/pages/part/pricing/PricingOverviewPanel.tsx:51 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:68 +msgid "Refreshing pricing data" +msgstr "" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:88 +msgid "Pricing data updated" +msgstr "" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:95 +msgid "Failed to update pricing data" +msgstr "" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:104 +msgid "Edit Pricing" +msgstr "" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:125 msgid "Pricing Category" msgstr "" -#: src/pages/part/pricing/PricingOverviewPanel.tsx:70 -msgid "Minimum" -msgstr "" - -#: src/pages/part/pricing/PricingOverviewPanel.tsx:82 -msgid "Maximum" -msgstr "" - -#: src/pages/part/pricing/PricingOverviewPanel.tsx:114 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:188 msgid "Purchase Pricing" msgstr "" -#: src/pages/part/pricing/PricingOverviewPanel.tsx:149 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:223 msgid "Override Pricing" msgstr "" -#: src/pages/part/pricing/PricingOverviewPanel.tsx:156 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:230 msgid "Overall Pricing" msgstr "" -#: src/pages/part/pricing/PricingOverviewPanel.tsx:175 -#: src/pages/stock/StockDetail.tsx:129 -#: src/tables/stock/StockItemTable.tsx:240 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:249 +#: src/pages/stock/StockDetail.tsx:145 +#: src/tables/stock/StockItemTable.tsx:275 msgid "Last Updated" msgstr "" -#: src/pages/part/pricing/PricingOverviewPanel.tsx:192 -msgid "Minimum Value" +#: src/pages/part/pricing/PricingOverviewPanel.tsx:253 +msgid "Pricing Not Set" msgstr "" -#: src/pages/part/pricing/PricingOverviewPanel.tsx:193 -msgid "Maximum Value" +#: src/pages/part/pricing/PricingOverviewPanel.tsx:254 +msgid "Pricing data has not been calculated for this part" +msgstr "" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:258 +msgid "Pricing Actions" +msgstr "" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:261 +msgid "Refresh" +msgstr "" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:262 +msgid "Refresh pricing data" +msgstr "" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:277 +msgid "Edit pricing data" msgstr "" #: src/pages/part/pricing/PricingPanel.tsx:24 @@ -5044,28 +5928,20 @@ msgstr "" msgid "Loading pricing data" msgstr "" -#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:40 -#: src/pages/part/pricing/SaleHistoryPanel.tsx:36 -#: src/tables/ColumnRenderers.tsx:201 -#: src/tables/build/BuildOrderTestTable.tsx:150 -#: src/tables/plugin/PluginListTable.tsx:139 -msgid "Date" -msgstr "" - #: src/pages/part/pricing/PurchaseHistoryPanel.tsx:47 msgid "Purchase Price" msgstr "" -#: src/pages/part/pricing/SaleHistoryPanel.tsx:22 -msgid "Sale Order" -msgstr "" +#: src/pages/part/pricing/SaleHistoryPanel.tsx:24 +#~ msgid "Sale Order" +#~ msgstr "Sale Order" -#: src/pages/part/pricing/SaleHistoryPanel.tsx:42 -#: src/pages/part/pricing/SaleHistoryPanel.tsx:92 +#: src/pages/part/pricing/SaleHistoryPanel.tsx:44 +#: src/pages/part/pricing/SaleHistoryPanel.tsx:87 msgid "Sale Price" msgstr "" -#: src/pages/part/pricing/SupplierPricingPanel.tsx:65 +#: src/pages/part/pricing/SupplierPricingPanel.tsx:69 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:83 msgid "Supplier Price" msgstr "" @@ -5075,23 +5951,23 @@ msgstr "" msgid "Variant Part" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:93 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:87 msgid "Edit Purchase Order" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:102 -#: src/tables/purchasing/PurchaseOrderTable.tsx:128 -#: src/tables/purchasing/PurchaseOrderTable.tsx:140 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:96 +#: src/tables/purchasing/PurchaseOrderTable.tsx:129 +#: src/tables/purchasing/PurchaseOrderTable.tsx:142 msgid "Add Purchase Order" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:127 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:121 msgid "Supplier Reference" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:158 -#: src/pages/sales/ReturnOrderDetail.tsx:137 -#: src/pages/sales/SalesOrderDetail.tsx:137 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:152 +#: src/pages/sales/ReturnOrderDetail.tsx:129 +#: src/pages/sales/SalesOrderDetail.tsx:132 msgid "Completed Line Items" msgstr "" @@ -5101,91 +5977,112 @@ msgstr "" #~ msgid "Order Currency," #~ msgstr "Order Currency," -#: src/pages/purchasing/PurchaseOrderDetail.tsx:165 -#: src/pages/sales/ReturnOrderDetail.tsx:144 -#: src/pages/sales/SalesOrderDetail.tsx:153 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:161 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:231 +msgid "Destination" +msgstr "" + +#: src/pages/purchasing/PurchaseOrderDetail.tsx:167 +#: src/pages/sales/ReturnOrderDetail.tsx:136 +#: src/pages/sales/SalesOrderDetail.tsx:148 msgid "Order Currency" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:172 -#: src/pages/sales/ReturnOrderDetail.tsx:151 -#: src/pages/sales/SalesOrderDetail.tsx:160 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:173 +#: src/pages/sales/ReturnOrderDetail.tsx:143 +#: src/pages/sales/SalesOrderDetail.tsx:155 msgid "Total Cost" msgstr "" #: src/pages/purchasing/PurchaseOrderDetail.tsx:207 -#: src/pages/sales/ReturnOrderDetail.tsx:186 -#: src/pages/sales/SalesOrderDetail.tsx:195 -msgid "Created On" +#: src/pages/sales/ReturnOrderDetail.tsx:183 +#: src/pages/sales/SalesOrderDetail.tsx:191 +#~ msgid "Created On" +#~ msgstr "Created On" + +#: src/pages/purchasing/PurchaseOrderDetail.tsx:221 +#: src/pages/sales/ReturnOrderDetail.tsx:193 +#: src/pages/sales/SalesOrderDetail.tsx:204 +msgid "Issue Date" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:252 -#: src/pages/sales/ReturnOrderDetail.tsx:231 -#: src/pages/sales/SalesOrderDetail.tsx:266 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:237 +#: src/pages/sales/ReturnOrderDetail.tsx:209 +#: src/pages/sales/SalesOrderDetail.tsx:219 +#: src/tables/build/BuildOrderTable.tsx:98 +#: src/tables/part/PartPurchaseOrdersTable.tsx:105 +#: src/tables/sales/ReturnOrderTable.tsx:122 +msgid "Completion Date" +msgstr "" + +#: src/pages/purchasing/PurchaseOrderDetail.tsx:276 +#: src/pages/sales/ReturnOrderDetail.tsx:248 +#: src/pages/sales/SalesOrderDetail.tsx:288 msgid "Order Details" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:280 -#: src/pages/sales/ReturnOrderDetail.tsx:258 -#: src/pages/sales/SalesOrderDetail.tsx:297 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:304 +#: src/pages/sales/ReturnOrderDetail.tsx:276 +#: src/pages/sales/SalesOrderDetail.tsx:319 msgid "Extra Line Items" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:337 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:346 msgid "Issue Purchase Order" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:345 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:354 msgid "Cancel Purchase Order" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:353 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:362 msgid "Hold Purchase Order" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:361 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:370 msgid "Complete Purchase Order" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:427 -#: src/pages/sales/ReturnOrderDetail.tsx:428 -#: src/pages/sales/SalesOrderDetail.tsx:468 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:425 +#: src/pages/sales/ReturnOrderDetail.tsx:424 +#: src/pages/sales/SalesOrderDetail.tsx:464 msgid "Order Actions" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:101 -#: src/pages/sales/SalesOrderDetail.tsx:107 -#: src/tables/sales/SalesOrderTable.tsx:124 +#: src/pages/sales/ReturnOrderDetail.tsx:92 +#: src/pages/sales/SalesOrderDetail.tsx:101 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:109 +#: src/tables/sales/SalesOrderTable.tsx:137 msgid "Customer Reference" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:315 +#: src/pages/sales/ReturnOrderDetail.tsx:322 msgid "Edit Return Order" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:324 -#: src/tables/sales/ReturnOrderTable.tsx:119 -#: src/tables/sales/ReturnOrderTable.tsx:128 +#: src/pages/sales/ReturnOrderDetail.tsx:331 +#: src/tables/sales/ReturnOrderTable.tsx:142 +#: src/tables/sales/ReturnOrderTable.tsx:152 msgid "Add Return Order" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:336 +#: src/pages/sales/ReturnOrderDetail.tsx:343 msgid "Issue Return Order" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:344 +#: src/pages/sales/ReturnOrderDetail.tsx:349 +#~ msgid "Order canceled" +#~ msgstr "Order canceled" + +#: src/pages/sales/ReturnOrderDetail.tsx:351 msgid "Cancel Return Order" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:347 -msgid "Order canceled" -msgstr "" - -#: src/pages/sales/ReturnOrderDetail.tsx:352 +#: src/pages/sales/ReturnOrderDetail.tsx:359 msgid "Hold Return Order" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:360 +#: src/pages/sales/ReturnOrderDetail.tsx:367 msgid "Complete Return Order" msgstr "" @@ -5193,117 +6090,193 @@ msgstr "" msgid "Customers" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:145 +#: src/pages/sales/SalesOrderDetail.tsx:140 msgid "Completed Shipments" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:243 -msgid "Edit Sales Order" -msgstr "" - -#: src/pages/sales/SalesOrderDetail.tsx:252 -#: src/tables/sales/SalesOrderTable.tsx:84 -#: src/tables/sales/SalesOrderTable.tsx:96 -msgid "Add Sales Order" -msgstr "" - #: src/pages/sales/SalesOrderDetail.tsx:256 #~ msgid "Pending Shipments" #~ msgstr "Pending Shipments" -#: src/pages/sales/SalesOrderDetail.tsx:313 +#: src/pages/sales/SalesOrderDetail.tsx:261 +msgid "Edit Sales Order" +msgstr "" + +#: src/pages/sales/SalesOrderDetail.tsx:274 +#: src/tables/sales/SalesOrderTable.tsx:96 +#: src/tables/sales/SalesOrderTable.tsx:109 +msgid "Add Sales Order" +msgstr "" + +#: src/pages/sales/SalesOrderDetail.tsx:335 msgid "Shipments" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:369 +#: src/pages/sales/SalesOrderDetail.tsx:376 msgid "Issue Sales Order" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:377 +#: src/pages/sales/SalesOrderDetail.tsx:384 msgid "Cancel Sales Order" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:385 +#: src/pages/sales/SalesOrderDetail.tsx:392 msgid "Hold Sales Order" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:393 +#: src/pages/sales/SalesOrderDetail.tsx:400 msgid "Complete Sales Order" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:432 +#: src/pages/sales/SalesOrderDetail.tsx:439 msgid "Ship Order" msgstr "" -#: src/pages/stock/LocationDetail.tsx:117 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:117 +#: src/tables/sales/SalesOrderShipmentTable.tsx:96 +msgid "Shipment Reference" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:124 +msgid "Allocated Items" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:133 +msgid "Tracking Number" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:141 +msgid "Invoice Number" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:149 +#: src/tables/ColumnRenderers.tsx:242 +#: src/tables/sales/SalesOrderAllocationTable.tsx:142 +#: src/tables/sales/SalesOrderShipmentTable.tsx:115 +msgid "Shipment Date" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:157 +#: src/tables/sales/SalesOrderShipmentTable.tsx:119 +msgid "Delivery Date" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:204 +msgid "Shipment Details" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:210 +msgid "Assigned Items" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:241 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:317 +#: src/tables/sales/SalesOrderShipmentTable.tsx:75 +msgid "Edit Shipment" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:248 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:322 +#: src/tables/sales/SalesOrderShipmentTable.tsx:67 +msgid "Cancel Shipment" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:261 +#: src/tables/sales/SalesOrderShipmentTable.tsx:83 +#: src/tables/sales/SalesOrderShipmentTable.tsx:151 +msgid "Complete Shipment" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:276 +#: src/tables/part/PartPurchaseOrdersTable.tsx:121 +msgid "Pending" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:277 +#: src/tables/sales/SalesOrderAllocationTable.tsx:148 +#: src/tables/sales/SalesOrderShipmentTable.tsx:108 +#: src/tables/sales/SalesOrderShipmentTable.tsx:197 +msgid "Shipped" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:279 +#: src/tables/sales/SalesOrderShipmentTable.tsx:202 +msgid "Delivered" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:293 +msgid "Send Shipment" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:312 +msgid "Shipment Actions" +msgstr "" + +#: src/pages/stock/LocationDetail.tsx:111 msgid "Parent Location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:135 +#: src/pages/stock/LocationDetail.tsx:129 msgid "Sublocations" msgstr "" -#: src/pages/stock/LocationDetail.tsx:147 +#: src/pages/stock/LocationDetail.tsx:141 #: src/tables/stock/StockLocationTable.tsx:54 msgid "External" msgstr "" -#: src/pages/stock/LocationDetail.tsx:153 +#: src/pages/stock/LocationDetail.tsx:147 #: src/tables/stock/StockLocationTable.tsx:63 msgid "Location Type" msgstr "" -#: src/pages/stock/LocationDetail.tsx:164 +#: src/pages/stock/LocationDetail.tsx:158 msgid "Top level stock location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:175 +#: src/pages/stock/LocationDetail.tsx:169 msgid "Location Details" msgstr "" -#: src/pages/stock/LocationDetail.tsx:201 +#: src/pages/stock/LocationDetail.tsx:195 msgid "Default Parts" msgstr "" -#: src/pages/stock/LocationDetail.tsx:220 -#: src/pages/stock/LocationDetail.tsx:351 +#: src/pages/stock/LocationDetail.tsx:214 +#: src/pages/stock/LocationDetail.tsx:336 #: src/tables/stock/StockLocationTable.tsx:123 msgid "Edit Stock Location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:241 -#: src/pages/stock/LocationDetail.tsx:356 +#: src/pages/stock/LocationDetail.tsx:235 +#: src/pages/stock/LocationDetail.tsx:341 msgid "Delete Stock Location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:244 +#: src/pages/stock/LocationDetail.tsx:238 msgid "Items Action" msgstr "" -#: src/pages/stock/LocationDetail.tsx:245 +#: src/pages/stock/LocationDetail.tsx:239 msgid "Action for stock items in this location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:250 +#: src/pages/stock/LocationDetail.tsx:244 msgid "Child Locations Action" msgstr "" -#: src/pages/stock/LocationDetail.tsx:251 +#: src/pages/stock/LocationDetail.tsx:245 msgid "Action for child locations in this location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:346 +#: src/pages/stock/LocationDetail.tsx:332 msgid "Location Actions" msgstr "" -#: src/pages/stock/StockDetail.tsx:108 +#: src/pages/stock/StockDetail.tsx:116 msgid "Base Part" msgstr "" -#: src/pages/stock/StockDetail.tsx:115 -msgid "Stock Status" -msgstr "" - #: src/pages/stock/StockDetail.tsx:155 #~ msgid "Link custom barcode to stock item" #~ msgstr "Link custom barcode to stock item" @@ -5312,113 +6285,179 @@ msgstr "" #~ msgid "Unlink custom barcode from stock item" #~ msgstr "Unlink custom barcode from stock item" -#: src/pages/stock/StockDetail.tsx:188 -msgid "Installed In" -msgstr "" - -#: src/pages/stock/StockDetail.tsx:204 -msgid "Consumed By" +#: src/pages/stock/StockDetail.tsx:178 +msgid "Allocated to Orders" msgstr "" #: src/pages/stock/StockDetail.tsx:205 #~ msgid "Edit stock item" #~ msgstr "Edit stock item" -#: src/pages/stock/StockDetail.tsx:213 -#: src/tables/build/BuildAllocatedStockTable.tsx:64 -#: src/tables/stock/StockTrackingTable.tsx:96 -msgid "Build Order" +#: src/pages/stock/StockDetail.tsx:209 +msgid "Installed In" msgstr "" #: src/pages/stock/StockDetail.tsx:217 #~ msgid "Delete stock item" #~ msgstr "Delete stock item" -#: src/pages/stock/StockDetail.tsx:291 +#: src/pages/stock/StockDetail.tsx:226 +msgid "Parent Item" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:230 +msgid "Parent stock item" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:236 +msgid "Consumed By" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:245 +#: src/tables/build/BuildAllocatedStockTable.tsx:77 +#: src/tables/stock/StockTrackingTable.tsx:100 +msgid "Build Order" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:283 +#: src/tables/stock/StockItemTable.tsx:270 +msgid "Expiry Date" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:414 msgid "Stock Details" msgstr "" -#: src/pages/stock/StockDetail.tsx:297 +#: src/pages/stock/StockDetail.tsx:420 msgid "Stock Tracking" msgstr "" -#: src/pages/stock/StockDetail.tsx:350 -msgid "Test Data" -msgstr "" - -#: src/pages/stock/StockDetail.tsx:364 -msgid "Installed Items" -msgstr "" - -#: src/pages/stock/StockDetail.tsx:371 -msgid "Child Items" -msgstr "" - -#: src/pages/stock/StockDetail.tsx:425 -msgid "Edit Stock Item" -msgstr "" - #: src/pages/stock/StockDetail.tsx:433 #~ msgid "Duplicate stock item" #~ msgstr "Duplicate stock item" -#: src/pages/stock/StockDetail.tsx:452 +#: src/pages/stock/StockDetail.tsx:475 +msgid "Test Data" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:489 +msgid "Installed Items" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:496 +msgid "Child Items" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:545 +msgid "Edit Stock Item" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:572 msgid "Delete Stock Item" msgstr "" -#: src/pages/stock/StockDetail.tsx:504 +#: src/pages/stock/StockDetail.tsx:604 +msgid "Serialize Stock Item" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:617 +msgid "Stock item serialized" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:623 +msgid "Return Stock Item" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:626 +msgid "Return this item into stock. This will remove the customer assignment." +msgstr "" + +#: src/pages/stock/StockDetail.tsx:636 +msgid "Item returned to stock" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:666 msgid "Stock Operations" msgstr "" -#: src/pages/stock/StockDetail.tsx:509 +#: src/pages/stock/StockDetail.tsx:671 msgid "Count stock" msgstr "" -#: src/pages/stock/StockDetail.tsx:519 -#: src/tables/stock/StockItemTable.tsx:449 -msgid "Add stock" +#: src/pages/stock/StockDetail.tsx:671 +#: src/tables/stock/StockItemTable.tsx:452 +#~ msgid "Add stock" +#~ msgstr "Add stock" + +#: src/pages/stock/StockDetail.tsx:680 +#: src/tables/stock/StockItemTable.tsx:461 +#~ msgid "Remove stock" +#~ msgstr "Remove stock" + +#: src/pages/stock/StockDetail.tsx:698 +#: src/tables/stock/StockItemTable.tsx:481 +#~ msgid "Transfer stock" +#~ msgstr "Transfer stock" + +#: src/pages/stock/StockDetail.tsx:699 +msgid "Serialize" msgstr "" -#: src/pages/stock/StockDetail.tsx:527 -#: src/tables/stock/StockItemTable.tsx:458 -msgid "Remove stock" +#: src/pages/stock/StockDetail.tsx:700 +msgid "Serialize stock" msgstr "" -#: src/pages/stock/StockDetail.tsx:534 +#: src/pages/stock/StockDetail.tsx:711 msgid "Transfer" msgstr "" -#: src/pages/stock/StockDetail.tsx:535 -#: src/tables/stock/StockItemTable.tsx:478 -msgid "Transfer stock" +#: src/pages/stock/StockDetail.tsx:722 +msgid "Return" msgstr "" -#: src/pages/stock/StockDetail.tsx:546 +#: src/pages/stock/StockDetail.tsx:723 +msgid "Return from customer" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:738 msgid "Stock Item Actions" msgstr "" -#: src/tables/ColumnRenderers.tsx:30 +#: src/pages/stock/StockDetail.tsx:808 +msgid "Stale" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:814 +msgid "Expired" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:820 +msgid "Unavailable" +msgstr "" + +#: src/tables/ColumnRenderers.tsx:36 msgid "Part is not active" msgstr "Część nie jest aktywna" -#: src/tables/ColumnRenderers.tsx:35 -msgid "Part is locked" +#: src/tables/ColumnRenderers.tsx:41 +#: src/tables/bom/BomTable.tsx:542 +#: src/tables/part/PartParameterTable.tsx:193 +#: src/tables/part/PartTestTemplateTable.tsx:253 +msgid "Part is Locked" msgstr "" -#: src/tables/ColumnRenderers.tsx:57 +#: src/tables/ColumnRenderers.tsx:41 +#~ msgid "Part is locked" +#~ msgstr "Part is locked" + +#: src/tables/ColumnRenderers.tsx:46 +msgid "You are subscribed to notifications for this part" +msgstr "" + +#: src/tables/ColumnRenderers.tsx:68 msgid "No location set" msgstr "" -#: src/tables/ColumnRenderers.tsx:228 -#: src/tables/sales/SalesOrderShipmentTable.tsx:79 -msgid "Shipment Date" -msgstr "" - -#: src/tables/ColumnRenderers.tsx:248 -#: src/tables/settings/CurrencyTable.tsx:23 -msgid "Currency" -msgstr "" - #: src/tables/ColumnSelect.tsx:16 #: src/tables/ColumnSelect.tsx:23 msgid "Select Columns" @@ -5452,91 +6491,116 @@ msgstr "" msgid "Download Data" msgstr "" -#: src/tables/Filter.tsx:89 -#: src/tables/build/BuildOrderTable.tsx:135 +#: src/tables/Filter.tsx:101 msgid "Assigned to me" msgstr "" -#: src/tables/Filter.tsx:90 -#: src/tables/build/BuildOrderTable.tsx:136 +#: src/tables/Filter.tsx:102 msgid "Show orders assigned to me" msgstr "" -#: src/tables/Filter.tsx:97 +#: src/tables/Filter.tsx:106 +#~ msgid "Show overdue orders" +#~ msgstr "Show overdue orders" + +#: src/tables/Filter.tsx:109 +#: src/tables/build/BuildOrderTable.tsx:120 +#: src/tables/sales/SalesOrderAllocationTable.tsx:59 msgid "Outstanding" msgstr "" -#: src/tables/Filter.tsx:98 -msgid "Show outstanding orders" +#: src/tables/Filter.tsx:110 +msgid "Show outstanding items" msgstr "" -#: src/tables/Filter.tsx:105 -#: src/tables/build/BuildOrderTable.tsx:128 +#: src/tables/Filter.tsx:117 msgid "Overdue" msgstr "" -#: src/tables/Filter.tsx:106 -msgid "Show overdue orders" +#: src/tables/Filter.tsx:118 +msgid "Show overdue items" msgstr "" -#: src/tables/FilterSelectDrawer.tsx:51 +#: src/tables/Filter.tsx:125 +msgid "Minimum Date" +msgstr "" + +#: src/tables/Filter.tsx:126 +msgid "Show items after this date" +msgstr "" + +#: src/tables/Filter.tsx:134 +msgid "Maximum Date" +msgstr "" + +#: src/tables/Filter.tsx:135 +msgid "Show items before this date" +msgstr "" + +#: src/tables/Filter.tsx:144 +msgid "Has Project Code" +msgstr "" + +#: src/tables/Filter.tsx:145 +msgid "Show orders with an assigned project code" +msgstr "" + +#: src/tables/FilterSelectDrawer.tsx:55 msgid "Remove filter" msgstr "" -#: src/tables/FilterSelectDrawer.tsx:130 +#: src/tables/FilterSelectDrawer.tsx:159 msgid "Select filter" msgstr "" -#: src/tables/FilterSelectDrawer.tsx:131 +#: src/tables/FilterSelectDrawer.tsx:160 msgid "Filter" msgstr "" -#: src/tables/FilterSelectDrawer.tsx:138 -#: src/tables/build/BuildOrderTestTable.tsx:134 -#: src/tables/purchasing/ManufacturerPartParameterTable.tsx:38 -#: src/tables/stock/StockItemTestResultTable.tsx:186 -msgid "Value" +#: src/tables/FilterSelectDrawer.tsx:168 +msgid "Select date value" msgstr "" -#: src/tables/FilterSelectDrawer.tsx:140 +#: src/tables/FilterSelectDrawer.tsx:176 msgid "Select filter value" msgstr "" -#: src/tables/FilterSelectDrawer.tsx:183 +#: src/tables/FilterSelectDrawer.tsx:219 +#: src/tables/InvenTreeTableHeader.tsx:214 msgid "Table Filters" msgstr "" -#: src/tables/FilterSelectDrawer.tsx:215 +#: src/tables/FilterSelectDrawer.tsx:251 msgid "Add Filter" msgstr "" -#: src/tables/FilterSelectDrawer.tsx:224 +#: src/tables/FilterSelectDrawer.tsx:260 msgid "Clear Filters" msgstr "" -#: src/tables/InvenTreeTable.tsx:123 -#: src/tables/InvenTreeTable.tsx:431 -#: src/tables/InvenTreeTable.tsx:455 +#: src/tables/InvenTreeTable.tsx:96 +#: src/tables/InvenTreeTable.tsx:417 +#: src/tables/InvenTreeTable.tsx:441 msgid "No records found" msgstr "" -#: src/tables/InvenTreeTable.tsx:466 +#: src/tables/InvenTreeTable.tsx:452 msgid "Server returned incorrect data type" msgstr "" -#: src/tables/InvenTreeTable.tsx:474 +#: src/tables/InvenTreeTable.tsx:460 msgid "Bad request" msgstr "" -#: src/tables/InvenTreeTable.tsx:477 +#: src/tables/InvenTreeTable.tsx:463 msgid "Unauthorized" msgstr "" -#: src/tables/InvenTreeTable.tsx:480 +#: src/tables/InvenTreeTable.tsx:466 msgid "Forbidden" msgstr "" -#: src/tables/InvenTreeTable.tsx:483 +#: src/tables/InvenTreeTable.tsx:469 msgid "Not found" msgstr "" @@ -5544,18 +6608,6 @@ msgstr "" #~ msgid "Are you sure you want to delete the selected records?" #~ msgstr "Are you sure you want to delete the selected records?" -#: src/tables/InvenTreeTable.tsx:525 -msgid "Delete Selected Items" -msgstr "" - -#: src/tables/InvenTreeTable.tsx:529 -msgid "Are you sure you want to delete the selected items?" -msgstr "" - -#: src/tables/InvenTreeTable.tsx:531 -msgid "This action cannot be undone!" -msgstr "" - #: src/tables/InvenTreeTable.tsx:535 #~ msgid "Deleted records" #~ msgstr "Deleted records" @@ -5568,31 +6620,56 @@ msgstr "" #~ msgid "Failed to delete records" #~ msgstr "Failed to delete records" +#: src/tables/InvenTreeTable.tsx:552 +#~ msgid "This action cannot be undone!" +#~ msgstr "This action cannot be undone!" + #: src/tables/InvenTreeTable.tsx:594 #: src/tables/InvenTreeTable.tsx:595 #~ msgid "Print actions" #~ msgstr "Print actions" -#: src/tables/InvenTreeTable.tsx:618 -#: src/tables/InvenTreeTable.tsx:619 -msgid "Barcode actions" +#: src/tables/InvenTreeTable.tsx:655 +#: src/tables/InvenTreeTable.tsx:656 +#~ msgid "Barcode actions" +#~ msgstr "Barcode actions" + +#: src/tables/InvenTreeTable.tsx:712 +#~ msgid "Table filters" +#~ msgstr "Table filters" + +#: src/tables/InvenTreeTable.tsx:725 +#~ msgid "Clear custom query filters" +#~ msgstr "Clear custom query filters" + +#: src/tables/InvenTreeTableHeader.tsx:98 +msgid "Delete Selected Items" msgstr "" -#: src/tables/InvenTreeTable.tsx:628 +#: src/tables/InvenTreeTableHeader.tsx:102 +msgid "Are you sure you want to delete the selected items?" +msgstr "" + +#: src/tables/InvenTreeTableHeader.tsx:104 +#: src/tables/plugin/PluginListTable.tsx:305 +msgid "This action cannot be undone" +msgstr "" + +#: src/tables/InvenTreeTableHeader.tsx:142 +msgid "Custom table filters are active" +msgstr "" + +#: src/tables/InvenTreeTableHeader.tsx:169 msgid "Delete selected records" msgstr "" -#: src/tables/InvenTreeTable.tsx:649 +#: src/tables/InvenTreeTableHeader.tsx:188 msgid "Refresh data" msgstr "" -#: src/tables/InvenTreeTable.tsx:675 -msgid "Table filters" -msgstr "" - #: src/tables/TableHoverCard.tsx:35 -msgid "item-{idx}" -msgstr "" +#~ msgid "item-{idx}" +#~ msgstr "item-{idx}" #: src/tables/UploadAction.tsx:7 #~ msgid "Upload Data" @@ -5607,31 +6684,36 @@ msgid "Part Information" msgstr "" #: src/tables/bom/BomTable.tsx:212 -#: src/tables/build/BuildLineTable.tsx:126 +#: src/tables/build/BuildLineTable.tsx:257 #: src/tables/part/PartTable.tsx:125 msgid "External stock" msgstr "" #: src/tables/bom/BomTable.tsx:220 -#: src/tables/build/BuildLineTable.tsx:89 +#: src/tables/build/BuildLineTable.tsx:220 msgid "Includes substitute stock" msgstr "" #: src/tables/bom/BomTable.tsx:229 -#: src/tables/build/BuildLineTable.tsx:99 -#: src/tables/sales/SalesOrderLineItemTable.tsx:127 +#: src/tables/build/BuildLineTable.tsx:230 +#: src/tables/sales/SalesOrderLineItemTable.tsx:135 msgid "Includes variant stock" msgstr "" +#: src/tables/bom/BomTable.tsx:245 +#: src/tables/part/PartTable.tsx:92 +msgid "Building" +msgstr "" + #: src/tables/bom/BomTable.tsx:254 #: src/tables/part/PartTable.tsx:153 -#: src/tables/sales/SalesOrderLineItemTable.tsx:150 -#: src/tables/stock/StockItemTable.tsx:216 +#: src/tables/sales/SalesOrderLineItemTable.tsx:158 +#: src/tables/stock/StockItemTable.tsx:206 msgid "Stock Information" msgstr "" #: src/tables/bom/BomTable.tsx:285 -#: src/tables/build/BuildLineTable.tsx:248 +#: src/tables/build/BuildLineTable.tsx:409 msgid "Consumable item" msgstr "" @@ -5644,7 +6726,7 @@ msgstr "" #~ msgstr "Create BOM Item" #: src/tables/bom/BomTable.tsx:306 -#: src/tables/build/BuildLineTable.tsx:69 +#: src/tables/build/BuildLineTable.tsx:200 msgid "Show testable items" msgstr "" @@ -5657,11 +6739,12 @@ msgid "Show trackable items" msgstr "" #: src/tables/bom/BomTable.tsx:316 -#: src/tables/build/BuildLineTable.tsx:64 +#: src/tables/build/BuildLineTable.tsx:195 msgid "Show assembled items" msgstr "" #: src/tables/bom/BomTable.tsx:321 +#: src/tables/build/BuildLineTable.tsx:180 msgid "Show items with available stock" msgstr "" @@ -5705,7 +6788,7 @@ msgstr "" #: src/tables/bom/BomTable.tsx:345 #: src/tables/bom/UsedInTable.tsx:79 -#: src/tables/build/BuildLineTable.tsx:58 +#: src/tables/build/BuildLineTable.tsx:189 msgid "Optional" msgstr "" @@ -5723,7 +6806,7 @@ msgstr "" #~ msgstr "Bom item deleted" #: src/tables/bom/BomTable.tsx:350 -#: src/tables/build/BuildLineTable.tsx:53 +#: src/tables/build/BuildLineTable.tsx:184 msgid "Consumable" msgstr "" @@ -5749,12 +6832,12 @@ msgid "Show items with pricing" msgstr "" #: src/tables/bom/BomTable.tsx:378 -#: src/tables/bom/BomTable.tsx:511 +#: src/tables/bom/BomTable.tsx:512 msgid "Import BOM Data" msgstr "" #: src/tables/bom/BomTable.tsx:388 -#: src/tables/bom/BomTable.tsx:523 +#: src/tables/bom/BomTable.tsx:526 msgid "Add BOM Item" msgstr "" @@ -5780,7 +6863,7 @@ msgstr "" #: src/tables/bom/BomTable.tsx:423 #: src/tables/bom/BomTable.tsx:426 -#: src/tables/bom/BomTable.tsx:517 +#: src/tables/bom/BomTable.tsx:519 msgid "Validate BOM" msgstr "" @@ -5812,21 +6895,15 @@ msgstr "" msgid "Edit Substitutes" msgstr "" -#: src/tables/bom/BomTable.tsx:539 -#: src/tables/part/PartParameterTable.tsx:193 -#: src/tables/part/PartTestTemplateTable.tsx:252 -msgid "Part is Locked" -msgstr "" - -#: src/tables/bom/BomTable.tsx:544 +#: src/tables/bom/BomTable.tsx:547 msgid "Bill of materials cannot be edited, as the part is locked" msgstr "" #: src/tables/bom/UsedInTable.tsx:33 -#: src/tables/build/BuildLineTable.tsx:63 +#: src/tables/build/BuildLineTable.tsx:194 #: src/tables/part/ParametricPartTable.tsx:233 #: src/tables/part/PartTable.tsx:190 -#: src/tables/stock/StockItemTable.tsx:300 +#: src/tables/stock/StockItemTable.tsx:304 msgid "Assembly" msgstr "" @@ -5844,285 +6921,347 @@ msgstr "" msgid "Show trackable assemblies" msgstr "" -#: src/tables/build/BuildAllocatedStockTable.tsx:54 +#: src/tables/build/BuildAllocatedStockTable.tsx:56 msgid "Allocated to Output" msgstr "" -#: src/tables/build/BuildAllocatedStockTable.tsx:55 +#: src/tables/build/BuildAllocatedStockTable.tsx:57 msgid "Show items allocated to a build output" msgstr "" -#: src/tables/build/BuildAllocatedStockTable.tsx:76 -#: src/tables/part/PartPurchaseOrdersTable.tsx:125 -#: src/tables/sales/SalesOrderAllocationTable.tsx:62 +#: src/tables/build/BuildAllocatedStockTable.tsx:65 +#: src/tables/build/BuildOrderTable.tsx:159 +#: src/tables/part/PartParameterTable.tsx:212 +#: src/tables/part/PartPurchaseOrdersTable.tsx:138 +#: src/tables/sales/ReturnOrderTable.tsx:84 +#: src/tables/sales/SalesOrderAllocationTable.tsx:68 +#: src/tables/sales/SalesOrderTable.tsx:84 +#: src/tables/stock/StockItemTable.tsx:339 +msgid "Include Variants" +msgstr "" + +#: src/tables/build/BuildAllocatedStockTable.tsx:66 +#: src/tables/build/BuildOrderTable.tsx:160 +#: src/tables/part/PartPurchaseOrdersTable.tsx:139 +#: src/tables/sales/ReturnOrderTable.tsx:85 +#: src/tables/sales/SalesOrderAllocationTable.tsx:69 +#: src/tables/sales/SalesOrderTable.tsx:85 +msgid "Include orders for part variants" +msgstr "" + +#: src/tables/build/BuildAllocatedStockTable.tsx:89 +#: src/tables/part/PartPurchaseOrdersTable.tsx:131 +#: src/tables/sales/SalesOrderAllocationTable.tsx:93 msgid "Order Status" msgstr "" -#: src/tables/build/BuildAllocatedStockTable.tsx:96 -#: src/tables/sales/SalesOrderAllocationTable.tsx:75 +#: src/tables/build/BuildAllocatedStockTable.tsx:117 +#: src/tables/sales/SalesOrderAllocationTable.tsx:126 msgid "Allocated Quantity" msgstr "" -#: src/tables/build/BuildAllocatedStockTable.tsx:116 -#: src/tables/sales/SalesOrderAllocationTable.tsx:94 +#: src/tables/build/BuildAllocatedStockTable.tsx:137 +#: src/tables/sales/SalesOrderAllocationTable.tsx:120 msgid "Available Quantity" msgstr "" -#: src/tables/build/BuildAllocatedStockTable.tsx:126 -#: src/tables/build/BuildOrderTestTable.tsx:176 -#: src/tables/build/BuildOrderTestTable.tsx:200 -#: src/tables/build/BuildOutputTable.tsx:312 -msgid "Build Output" +#: src/tables/build/BuildAllocatedStockTable.tsx:164 +#: src/tables/build/BuildLineTable.tsx:513 +msgid "Edit Stock Allocation" msgstr "" -#: src/tables/build/BuildAllocatedStockTable.tsx:143 -msgid "Edit Build Item" -msgstr "" +#: src/tables/build/BuildAllocatedStockTable.tsx:164 +#~ msgid "Edit Build Item" +#~ msgstr "Edit Build Item" -#: src/tables/build/BuildAllocatedStockTable.tsx:153 -msgid "Delete Build Item" -msgstr "" +#: src/tables/build/BuildAllocatedStockTable.tsx:174 +#~ msgid "Delete Build Item" +#~ msgstr "Delete Build Item" -#: src/tables/build/BuildLineTable.tsx:43 -#: src/tables/stock/StockItemTable.tsx:305 -msgid "Allocated" -msgstr "" - -#: src/tables/build/BuildLineTable.tsx:44 -msgid "Show allocated lines" -msgstr "" - -#: src/tables/build/BuildLineTable.tsx:49 -msgid "Show lines with available stock" -msgstr "" - -#: src/tables/build/BuildLineTable.tsx:54 -msgid "Show consumable lines" +#: src/tables/build/BuildAllocatedStockTable.tsx:177 +#: src/tables/build/BuildLineTable.tsx:526 +msgid "Delete Stock Allocation" msgstr "" #: src/tables/build/BuildLineTable.tsx:59 +#~ msgid "Show lines with available stock" +#~ msgstr "Show lines with available stock" + +#: src/tables/build/BuildLineTable.tsx:175 +msgid "Show allocated lines" +msgstr "" + +#: src/tables/build/BuildLineTable.tsx:185 +msgid "Show consumable lines" +msgstr "" + +#: src/tables/build/BuildLineTable.tsx:190 msgid "Show optional lines" msgstr "" -#: src/tables/build/BuildLineTable.tsx:68 +#: src/tables/build/BuildLineTable.tsx:199 #: src/tables/part/PartTable.tsx:208 msgid "Testable" msgstr "" -#: src/tables/build/BuildLineTable.tsx:73 -#: src/tables/stock/StockItemTable.tsx:364 +#: src/tables/build/BuildLineTable.tsx:204 +#: src/tables/stock/StockItemTable.tsx:368 msgid "Tracked" msgstr "" -#: src/tables/build/BuildLineTable.tsx:74 +#: src/tables/build/BuildLineTable.tsx:205 msgid "Show tracked lines" msgstr "" -#: src/tables/build/BuildLineTable.tsx:108 -#: src/tables/sales/SalesOrderLineItemTable.tsx:133 +#: src/tables/build/BuildLineTable.tsx:239 +#: src/tables/sales/SalesOrderLineItemTable.tsx:141 msgid "In production" msgstr "" -#: src/tables/build/BuildLineTable.tsx:136 +#: src/tables/build/BuildLineTable.tsx:267 msgid "Insufficient stock" msgstr "" -#: src/tables/build/BuildLineTable.tsx:152 -#: src/tables/sales/SalesOrderLineItemTable.tsx:121 -#: src/tables/stock/StockItemTable.tsx:186 +#: src/tables/build/BuildLineTable.tsx:283 +#: src/tables/sales/SalesOrderLineItemTable.tsx:129 +#: src/tables/stock/StockItemTable.tsx:175 msgid "No stock available" msgstr "" -#: src/tables/build/BuildLineTable.tsx:201 +#: src/tables/build/BuildLineTable.tsx:355 msgid "Gets Inherited" msgstr "" -#: src/tables/build/BuildLineTable.tsx:210 +#: src/tables/build/BuildLineTable.tsx:366 msgid "Unit Quantity" msgstr "" -#: src/tables/build/BuildLineTable.tsx:267 -#: src/tables/sales/SalesOrderLineItemTable.tsx:230 +#: src/tables/build/BuildLineTable.tsx:381 +msgid "Required Quantity" +msgstr "" + +#: src/tables/build/BuildLineTable.tsx:432 +#: src/tables/sales/SalesOrderLineItemTable.tsx:254 msgid "Create Build Order" msgstr "" -#: src/tables/build/BuildLineTable.tsx:298 -msgid "Allocate Stock" +#: src/tables/build/BuildLineTable.tsx:460 +msgid "Auto allocation in progress" msgstr "" -#: src/tables/build/BuildLineTable.tsx:305 +#: src/tables/build/BuildLineTable.tsx:463 +#: src/tables/build/BuildLineTable.tsx:632 +msgid "Auto Allocate Stock" +msgstr "" + +#: src/tables/build/BuildLineTable.tsx:464 +msgid "Automatically allocate stock to this build according to the selected options" +msgstr "" + +#: src/tables/build/BuildLineTable.tsx:482 +#: src/tables/build/BuildLineTable.tsx:496 +#: src/tables/build/BuildLineTable.tsx:579 +#: src/tables/build/BuildLineTable.tsx:664 +#: src/tables/build/BuildOutputTable.tsx:314 +#: src/tables/build/BuildOutputTable.tsx:319 +msgid "Deallocate Stock" +msgstr "" + +#: src/tables/build/BuildLineTable.tsx:498 +msgid "Deallocate all untracked stock for this build order" +msgstr "" + +#: src/tables/build/BuildLineTable.tsx:500 +msgid "Deallocate stock from the selected line item" +msgstr "" + +#: src/tables/build/BuildLineTable.tsx:504 +msgid "Stock has been deallocated" +msgstr "" + +#: src/tables/build/BuildLineTable.tsx:589 msgid "Order Stock" msgstr "" -#: src/tables/build/BuildLineTable.tsx:312 +#: src/tables/build/BuildLineTable.tsx:596 msgid "Build Stock" msgstr "" -#: src/tables/build/BuildOrderTable.tsx:111 -msgid "Show active orders" +#: src/tables/build/BuildLineTable.tsx:610 +msgid "View Part" msgstr "" #: src/tables/build/BuildOrderTable.tsx:116 -msgid "Cascade" -msgstr "" +#~ msgid "Cascade" +#~ msgstr "Cascade" #: src/tables/build/BuildOrderTable.tsx:117 -msgid "Display recursive child orders" +#~ msgid "Display recursive child orders" +#~ msgstr "Display recursive child orders" + +#: src/tables/build/BuildOrderTable.tsx:121 +msgid "Show outstanding orders" msgstr "" -#: src/tables/build/BuildOrderTable.tsx:123 -#: src/tables/part/PartPurchaseOrdersTable.tsx:126 -#: src/tables/purchasing/PurchaseOrderTable.tsx:56 -#: src/tables/sales/ReturnOrderTable.tsx:47 -#: src/tables/sales/SalesOrderTable.tsx:54 +#: src/tables/build/BuildOrderTable.tsx:121 +#~ msgid "Show active orders" +#~ msgstr "Show active orders" + +#: src/tables/build/BuildOrderTable.tsx:122 +#~ msgid "Show overdue status" +#~ msgstr "Show overdue status" + +#: src/tables/build/BuildOrderTable.tsx:126 +#: src/tables/part/PartPurchaseOrdersTable.tsx:132 +#: src/tables/purchasing/PurchaseOrderTable.tsx:59 +#: src/tables/sales/ReturnOrderTable.tsx:57 +#: src/tables/sales/SalesOrderTable.tsx:57 msgid "Filter by order status" msgstr "" -#: src/tables/build/BuildOrderTable.tsx:130 -msgid "Show overdue status" -msgstr "" - -#: src/tables/build/BuildOrderTable.tsx:141 -#: src/tables/purchasing/PurchaseOrderTable.tsx:65 -#: src/tables/sales/ReturnOrderTable.tsx:56 -#: src/tables/sales/SalesOrderTable.tsx:63 +#: src/tables/build/BuildOrderTable.tsx:136 +#: src/tables/purchasing/PurchaseOrderTable.tsx:70 +#: src/tables/sales/ReturnOrderTable.tsx:68 +#: src/tables/sales/SalesOrderTable.tsx:68 msgid "Filter by project code" msgstr "" -#: src/tables/build/BuildOrderTable.tsx:146 -#: src/tables/purchasing/PurchaseOrderTable.tsx:70 -#: src/tables/sales/ReturnOrderTable.tsx:61 -#: src/tables/sales/SalesOrderTable.tsx:68 -msgid "Has Project Code" -msgstr "" - -#: src/tables/build/BuildOrderTable.tsx:147 +#: src/tables/build/BuildOrderTable.tsx:139 #: src/tables/purchasing/PurchaseOrderTable.tsx:71 #: src/tables/sales/ReturnOrderTable.tsx:62 #: src/tables/sales/SalesOrderTable.tsx:69 -msgid "Filter by whether the purchase order has a project code" -msgstr "" +#~ msgid "Filter by whether the purchase order has a project code" +#~ msgstr "Filter by whether the purchase order has a project code" -#: src/tables/build/BuildOrderTable.tsx:152 +#: src/tables/build/BuildOrderTable.tsx:143 msgid "Filter by user who issued this order" msgstr "" -#: src/tables/build/BuildOrderTable.tsx:158 -#: src/tables/purchasing/PurchaseOrderTable.tsx:76 -#: src/tables/sales/ReturnOrderTable.tsx:67 -#: src/tables/sales/SalesOrderTable.tsx:74 +#: src/tables/build/BuildOrderTable.tsx:149 +#: src/tables/purchasing/PurchaseOrderTable.tsx:77 +#: src/tables/sales/ReturnOrderTable.tsx:75 +#: src/tables/sales/SalesOrderTable.tsx:75 msgid "Filter by responsible owner" msgstr "" -#: src/tables/build/BuildOrderTestTable.tsx:75 -#: src/tables/build/BuildOrderTestTable.tsx:111 -#: src/tables/stock/StockItemTestResultTable.tsx:257 -#: src/tables/stock/StockItemTestResultTable.tsx:329 -#: src/tables/stock/StockItemTestResultTable.tsx:384 +#: src/tables/build/BuildOrderTestTable.tsx:76 +#: src/tables/build/BuildOrderTestTable.tsx:112 +#: src/tables/stock/StockItemTestResultTable.tsx:275 +#: src/tables/stock/StockItemTestResultTable.tsx:347 +#: src/tables/stock/StockItemTestResultTable.tsx:403 msgid "Add Test Result" msgstr "" -#: src/tables/build/BuildOrderTestTable.tsx:82 -#: src/tables/stock/StockItemTestResultTable.tsx:259 +#: src/tables/build/BuildOrderTestTable.tsx:83 +#: src/tables/stock/StockItemTestResultTable.tsx:277 msgid "Test result added" msgstr "" -#: src/tables/build/BuildOrderTestTable.tsx:110 -#: src/tables/stock/StockItemTestResultTable.tsx:174 +#: src/tables/build/BuildOrderTestTable.tsx:111 +#: src/tables/stock/StockItemTestResultTable.tsx:180 msgid "No Result" msgstr "" -#: src/tables/build/BuildOrderTestTable.tsx:220 +#: src/tables/build/BuildOrderTestTable.tsx:221 msgid "Show build outputs currently in production" msgstr "" +#: src/tables/build/BuildOutputTable.tsx:76 +msgid "Build Output Stock Allocation" +msgstr "" + #: src/tables/build/BuildOutputTable.tsx:161 #~ msgid "Delete build output" #~ msgstr "Delete build output" -#: src/tables/build/BuildOutputTable.tsx:173 -#: src/tables/build/BuildOutputTable.tsx:211 +#: src/tables/build/BuildOutputTable.tsx:258 +#: src/tables/build/BuildOutputTable.tsx:374 msgid "Add Build Output" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:216 +#: src/tables/build/BuildOutputTable.tsx:304 +#~ msgid "Edit build output" +#~ msgstr "Edit build output" + +#: src/tables/build/BuildOutputTable.tsx:306 +#: src/tables/build/BuildOutputTable.tsx:417 +msgid "Edit Build Output" +msgstr "" + +#: src/tables/build/BuildOutputTable.tsx:321 +msgid "This action will deallocate all stock from the selected build output" +msgstr "" + +#: src/tables/build/BuildOutputTable.tsx:341 msgid "Complete selected outputs" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:226 +#: src/tables/build/BuildOutputTable.tsx:352 msgid "Scrap selected outputs" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:236 +#: src/tables/build/BuildOutputTable.tsx:363 msgid "Cancel selected outputs" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:252 +#: src/tables/build/BuildOutputTable.tsx:385 msgid "Allocate" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:253 +#: src/tables/build/BuildOutputTable.tsx:386 msgid "Allocate stock to build output" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:259 +#: src/tables/build/BuildOutputTable.tsx:396 msgid "Deallocate" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:260 +#: src/tables/build/BuildOutputTable.tsx:397 msgid "Deallocate stock from build output" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:267 +#: src/tables/build/BuildOutputTable.tsx:408 msgid "Complete build output" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:276 +#: src/tables/build/BuildOutputTable.tsx:424 msgid "Scrap" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:277 +#: src/tables/build/BuildOutputTable.tsx:425 msgid "Scrap build output" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:280 -#~ msgid "Allocated Items" -#~ msgstr "Allocated Items" - -#: src/tables/build/BuildOutputTable.tsx:287 +#: src/tables/build/BuildOutputTable.tsx:435 msgid "Cancel build output" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:325 -msgid "Batch" -msgstr "" - -#: src/tables/build/BuildOutputTable.tsx:340 +#: src/tables/build/BuildOutputTable.tsx:488 msgid "Allocated Lines" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:355 +#: src/tables/build/BuildOutputTable.tsx:503 msgid "Required Tests" msgstr "" -#: src/tables/company/AddressTable.tsx:121 -#: src/tables/company/AddressTable.tsx:185 +#: src/tables/company/AddressTable.tsx:118 +#: src/tables/company/AddressTable.tsx:183 msgid "Add Address" msgstr "" -#: src/tables/company/AddressTable.tsx:126 +#: src/tables/company/AddressTable.tsx:123 msgid "Address created" msgstr "" -#: src/tables/company/AddressTable.tsx:135 +#: src/tables/company/AddressTable.tsx:132 msgid "Edit Address" msgstr "" -#: src/tables/company/AddressTable.tsx:143 +#: src/tables/company/AddressTable.tsx:140 msgid "Delete Address" msgstr "" -#: src/tables/company/AddressTable.tsx:144 +#: src/tables/company/AddressTable.tsx:141 msgid "Are you sure you want to delete this address?" msgstr "" @@ -6130,24 +7269,24 @@ msgstr "" #~ msgid "New Company" #~ msgstr "New Company" -#: src/tables/company/CompanyTable.tsx:74 -#: src/tables/company/CompanyTable.tsx:123 +#: src/tables/company/CompanyTable.tsx:75 +#: src/tables/company/CompanyTable.tsx:125 msgid "Add Company" msgstr "" -#: src/tables/company/CompanyTable.tsx:96 +#: src/tables/company/CompanyTable.tsx:97 msgid "Show active companies" msgstr "" -#: src/tables/company/CompanyTable.tsx:101 +#: src/tables/company/CompanyTable.tsx:102 msgid "Show companies which are suppliers" msgstr "" -#: src/tables/company/CompanyTable.tsx:106 +#: src/tables/company/CompanyTable.tsx:107 msgid "Show companies which are manufacturers" msgstr "" -#: src/tables/company/CompanyTable.tsx:111 +#: src/tables/company/CompanyTable.tsx:112 msgid "Show companies which are customers" msgstr "" @@ -6163,96 +7302,99 @@ msgstr "" msgid "Delete Contact" msgstr "" -#: src/tables/company/ContactTable.tsx:129 +#: src/tables/company/ContactTable.tsx:130 msgid "Add contact" msgstr "" -#: src/tables/general/AttachmentTable.tsx:130 +#: src/tables/general/AttachmentTable.tsx:135 msgid "File uploaded" msgstr "" -#: src/tables/general/AttachmentTable.tsx:131 +#: src/tables/general/AttachmentTable.tsx:136 msgid "File {0} uploaded successfully" msgstr "" -#: src/tables/general/AttachmentTable.tsx:142 +#: src/tables/general/AttachmentTable.tsx:147 msgid "Upload Error" msgstr "" -#: src/tables/general/AttachmentTable.tsx:143 +#: src/tables/general/AttachmentTable.tsx:148 msgid "File could not be uploaded" msgstr "" -#: src/tables/general/AttachmentTable.tsx:191 +#: src/tables/general/AttachmentTable.tsx:196 msgid "Upload Attachment" msgstr "" -#: src/tables/general/AttachmentTable.tsx:201 +#: src/tables/general/AttachmentTable.tsx:206 msgid "Edit Attachment" msgstr "" -#: src/tables/general/AttachmentTable.tsx:215 +#: src/tables/general/AttachmentTable.tsx:220 msgid "Delete Attachment" msgstr "" -#: src/tables/general/AttachmentTable.tsx:225 +#: src/tables/general/AttachmentTable.tsx:230 msgid "Is Link" msgstr "" -#: src/tables/general/AttachmentTable.tsx:226 +#: src/tables/general/AttachmentTable.tsx:231 msgid "Show link attachments" msgstr "" -#: src/tables/general/AttachmentTable.tsx:230 +#: src/tables/general/AttachmentTable.tsx:235 msgid "Is File" msgstr "" -#: src/tables/general/AttachmentTable.tsx:231 +#: src/tables/general/AttachmentTable.tsx:236 msgid "Show file attachments" msgstr "" -#: src/tables/general/AttachmentTable.tsx:240 +#: src/tables/general/AttachmentTable.tsx:245 msgid "Add attachment" msgstr "" -#: src/tables/general/AttachmentTable.tsx:251 -msgid "Add external link" -msgstr "" - #: src/tables/general/AttachmentTable.tsx:254 #~ msgid "Upload attachment" #~ msgstr "Upload attachment" -#: src/tables/general/AttachmentTable.tsx:299 +#: src/tables/general/AttachmentTable.tsx:256 +msgid "Add external link" +msgstr "" + +#: src/tables/general/AttachmentTable.tsx:304 msgid "No attachments found" msgstr "" -#: src/tables/general/AttachmentTable.tsx:337 +#: src/tables/general/AttachmentTable.tsx:343 msgid "Drag attachment file here to upload" msgstr "" #: src/tables/general/ExtraLineItemTable.tsx:86 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:251 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:60 -#: src/tables/sales/SalesOrderLineItemTable.tsx:196 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:263 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:362 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:72 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:168 +#: src/tables/sales/SalesOrderLineItemTable.tsx:206 +#: src/tables/sales/SalesOrderLineItemTable.tsx:291 msgid "Add Line Item" msgstr "" #: src/tables/general/ExtraLineItemTable.tsx:98 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:271 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:72 -#: src/tables/sales/SalesOrderLineItemTable.tsx:214 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:283 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:84 +#: src/tables/sales/SalesOrderLineItemTable.tsx:224 msgid "Edit Line Item" msgstr "" #: src/tables/general/ExtraLineItemTable.tsx:106 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:279 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:80 -#: src/tables/sales/SalesOrderLineItemTable.tsx:222 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:291 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:92 +#: src/tables/sales/SalesOrderLineItemTable.tsx:232 msgid "Delete Line Item" msgstr "" -#: src/tables/general/ExtraLineItemTable.tsx:142 +#: src/tables/general/ExtraLineItemTable.tsx:143 msgid "Add Extra Line Item" msgstr "" @@ -6261,12 +7403,12 @@ msgid "Machine restarted" msgstr "" #: src/tables/machine/MachineListTable.tsx:212 -#: src/tables/machine/MachineListTable.tsx:263 +#: src/tables/machine/MachineListTable.tsx:261 msgid "Edit machine" msgstr "" #: src/tables/machine/MachineListTable.tsx:226 -#: src/tables/machine/MachineListTable.tsx:267 +#: src/tables/machine/MachineListTable.tsx:265 msgid "Delete machine" msgstr "" @@ -6278,51 +7420,50 @@ msgstr "" msgid "Are you sure you want to remove the machine \"{0}\"?" msgstr "" -#: src/tables/machine/MachineListTable.tsx:255 -#: src/tables/machine/MachineListTable.tsx:432 +#: src/tables/machine/MachineListTable.tsx:254 +#: src/tables/machine/MachineListTable.tsx:442 msgid "Restart required" msgstr "" -#: src/tables/machine/MachineListTable.tsx:259 +#: src/tables/machine/MachineListTable.tsx:258 msgid "Machine Actions" msgstr "" -#: src/tables/machine/MachineListTable.tsx:272 +#: src/tables/machine/MachineListTable.tsx:270 msgid "Restart" msgstr "" -#: src/tables/machine/MachineListTable.tsx:274 +#: src/tables/machine/MachineListTable.tsx:272 msgid "Restart machine" msgstr "" -#: src/tables/machine/MachineListTable.tsx:276 +#: src/tables/machine/MachineListTable.tsx:274 msgid "manual restart required" msgstr "" +#: src/tables/machine/MachineListTable.tsx:291 +#~ msgid "Machine information" +#~ msgstr "Machine information" + #: src/tables/machine/MachineListTable.tsx:292 -msgid "Machine information" +msgid "Machine Information" msgstr "" -#: src/tables/machine/MachineListTable.tsx:303 -#: src/tables/machine/MachineListTable.tsx:599 +#: src/tables/machine/MachineListTable.tsx:302 +#: src/tables/machine/MachineListTable.tsx:610 msgid "Machine Type" msgstr "" -#: src/tables/machine/MachineListTable.tsx:316 +#: src/tables/machine/MachineListTable.tsx:315 msgid "Machine Driver" msgstr "" -#: src/tables/machine/MachineListTable.tsx:329 +#: src/tables/machine/MachineListTable.tsx:330 msgid "Initialized" msgstr "" -#: src/tables/machine/MachineListTable.tsx:350 -#: src/tables/machine/MachineTypeTable.tsx:261 -msgid "Errors" -msgstr "" - -#: src/tables/machine/MachineListTable.tsx:358 -#: src/tables/machine/MachineTypeTable.tsx:269 +#: src/tables/machine/MachineListTable.tsx:359 +#: src/tables/machine/MachineTypeTable.tsx:290 msgid "No errors reported" msgstr "" @@ -6330,7 +7471,7 @@ msgstr "" msgid "Machine Settings" msgstr "" -#: src/tables/machine/MachineListTable.tsx:389 +#: src/tables/machine/MachineListTable.tsx:394 msgid "Driver Settings" msgstr "" @@ -6338,86 +7479,109 @@ msgstr "" #~ msgid "Create machine" #~ msgstr "Create machine" -#: src/tables/machine/MachineListTable.tsx:506 +#: src/tables/machine/MachineListTable.tsx:516 +#: src/tables/machine/MachineListTable.tsx:558 msgid "Add machine" msgstr "" #: src/tables/machine/MachineListTable.tsx:561 -msgid "Machine detail" +#~ msgid "Machine detail" +#~ msgstr "Machine detail" + +#: src/tables/machine/MachineListTable.tsx:572 +msgid "Machine Detail" msgstr "" -#: src/tables/machine/MachineListTable.tsx:608 +#: src/tables/machine/MachineListTable.tsx:619 msgid "Driver" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:73 +#: src/tables/machine/MachineTypeTable.tsx:78 msgid "Builtin driver" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:89 +#: src/tables/machine/MachineTypeTable.tsx:96 +msgid "Not Found" +msgstr "" + +#: src/tables/machine/MachineTypeTable.tsx:99 msgid "Machine type not found." msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:97 -msgid "Machine type information" +#: src/tables/machine/MachineTypeTable.tsx:99 +#~ msgid "Machine type information" +#~ msgstr "Machine type information" + +#: src/tables/machine/MachineTypeTable.tsx:109 +msgid "Machine Type Information" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:110 -#: src/tables/machine/MachineTypeTable.tsx:217 +#: src/tables/machine/MachineTypeTable.tsx:124 +#: src/tables/machine/MachineTypeTable.tsx:238 msgid "Slug" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:118 -#: src/tables/machine/MachineTypeTable.tsx:238 +#: src/tables/machine/MachineTypeTable.tsx:135 +#: src/tables/machine/MachineTypeTable.tsx:259 msgid "Provider plugin" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:130 -#: src/tables/machine/MachineTypeTable.tsx:250 +#: src/tables/machine/MachineTypeTable.tsx:147 +#: src/tables/machine/MachineTypeTable.tsx:271 msgid "Provider file" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:135 -#: src/tables/machine/MachineTypeTable.tsx:255 -#: src/tables/plugin/PluginListTable.tsx:180 -#: src/tables/plugin/PluginListTable.tsx:568 -msgid "Builtin" +#: src/tables/machine/MachineTypeTable.tsx:148 +#~ msgid "Available drivers" +#~ msgstr "Available drivers" + +#: src/tables/machine/MachineTypeTable.tsx:162 +msgid "Available Drivers" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:146 -msgid "Available drivers" -msgstr "" - -#: src/tables/machine/MachineTypeTable.tsx:196 +#: src/tables/machine/MachineTypeTable.tsx:217 msgid "Machine driver not found." msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:204 +#: src/tables/machine/MachineTypeTable.tsx:225 msgid "Machine driver information" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:224 +#: src/tables/machine/MachineTypeTable.tsx:245 msgid "Machine type" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:327 +#: src/tables/machine/MachineTypeTable.tsx:338 +#~ msgid "Machine type detail" +#~ msgstr "Machine type detail" + +#: src/tables/machine/MachineTypeTable.tsx:348 msgid "Builtin type" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:336 -msgid "Machine type detail" +#: src/tables/machine/MachineTypeTable.tsx:348 +#~ msgid "Machine driver detail" +#~ msgstr "Machine driver detail" + +#: src/tables/machine/MachineTypeTable.tsx:357 +msgid "Machine Type Detail" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:346 -msgid "Machine driver detail" +#: src/tables/machine/MachineTypeTable.tsx:367 +msgid "Machine Driver Detail" msgstr "" #: src/tables/notifications/NotificationsTable.tsx:26 msgid "Age" msgstr "" +#: src/tables/notifications/NotificationsTable.tsx:36 +msgid "Notification" +msgstr "Powiadomienie" + #: src/tables/notifications/NotificationsTable.tsx:40 #: src/tables/plugin/PluginErrorTable.tsx:37 +#: src/tables/settings/ErrorTable.tsx:50 msgid "Message" msgstr "" @@ -6451,33 +7615,32 @@ msgstr "" msgid "Show assembly parts" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:68 +#: src/tables/part/PartCategoryTable.tsx:48 +msgid "You are subscribed to notifications for this category" +msgstr "" + +#: src/tables/part/PartCategoryTable.tsx:80 #: src/tables/part/PartTable.tsx:196 msgid "Include Subcategories" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:69 +#: src/tables/part/PartCategoryTable.tsx:81 msgid "Include subcategories in results" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:74 +#: src/tables/part/PartCategoryTable.tsx:86 msgid "Show structural categories" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:78 -#: src/tables/part/PartTable.tsx:294 -msgid "Subscribed" -msgstr "" - -#: src/tables/part/PartCategoryTable.tsx:79 +#: src/tables/part/PartCategoryTable.tsx:91 msgid "Show categories to which the user is subscribed" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:86 +#: src/tables/part/PartCategoryTable.tsx:100 msgid "New Part Category" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:112 +#: src/tables/part/PartCategoryTable.tsx:129 msgid "Add Part Category" msgstr "" @@ -6523,11 +7686,6 @@ msgstr "" msgid "Part parameters cannot be edited, as the part is locked" msgstr "" -#: src/tables/part/PartParameterTable.tsx:212 -#: src/tables/stock/StockItemTable.tsx:335 -msgid "Include Variants" -msgstr "" - #: src/tables/part/PartParameterTemplateTable.tsx:31 msgid "Checkbox" msgstr "" @@ -6554,6 +7712,7 @@ msgid "Show templates with units" msgstr "" #: src/tables/part/PartParameterTemplateTable.tsx:85 +#: src/tables/part/PartParameterTemplateTable.tsx:141 msgid "Add Parameter Template" msgstr "" @@ -6566,23 +7725,19 @@ msgid "Delete Parameter Template" msgstr "" #: src/tables/part/PartParameterTemplateTable.tsx:141 -msgid "Add parameter template" -msgstr "" +#~ msgid "Add parameter template" +#~ msgstr "Add parameter template" -#: src/tables/part/PartPurchaseOrdersTable.tsx:77 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:162 +#: src/tables/part/PartPurchaseOrdersTable.tsx:78 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:168 msgid "Total Quantity" msgstr "" -#: src/tables/part/PartPurchaseOrdersTable.tsx:115 -msgid "Pending" -msgstr "" - -#: src/tables/part/PartPurchaseOrdersTable.tsx:116 +#: src/tables/part/PartPurchaseOrdersTable.tsx:122 msgid "Show pending orders" msgstr "" -#: src/tables/part/PartPurchaseOrdersTable.tsx:121 +#: src/tables/part/PartPurchaseOrdersTable.tsx:127 msgid "Show received items" msgstr "" @@ -6728,22 +7883,13 @@ msgstr "" msgid "Results" msgstr "" -#: src/tables/part/PartTestTemplateTable.tsx:76 -msgid "No Results" -msgstr "" - -#: src/tables/part/PartTestTemplateTable.tsx:106 -#: src/tables/stock/StockItemTestResultTable.tsx:365 -msgid "Required" -msgstr "" - #: src/tables/part/PartTestTemplateTable.tsx:107 msgid "Show required tests" msgstr "" #: src/tables/part/PartTestTemplateTable.tsx:111 -#: src/tables/settings/TemplateTable.tsx:167 -#: src/tables/settings/TemplateTable.tsx:283 +#: src/tables/settings/TemplateTable.tsx:247 +#: src/tables/settings/TemplateTable.tsx:363 msgid "Enabled" msgstr "" @@ -6784,7 +7930,7 @@ msgid "Show tests which have recorded results" msgstr "" #: src/tables/part/PartTestTemplateTable.tsx:154 -#: src/tables/part/PartTestTemplateTable.tsx:237 +#: src/tables/part/PartTestTemplateTable.tsx:238 msgid "Add Test Template" msgstr "" @@ -6808,7 +7954,7 @@ msgstr "" msgid "View Parent Part" msgstr "" -#: src/tables/part/PartTestTemplateTable.tsx:257 +#: src/tables/part/PartTestTemplateTable.tsx:258 msgid "Part templates cannot be edited, as the part is locked" msgstr "" @@ -6836,28 +7982,49 @@ msgstr "" msgid "Show trackable variants" msgstr "" -#: src/tables/part/RelatedPartTable.tsx:84 +#: src/tables/part/RelatedPartTable.tsx:86 +#: src/tables/part/RelatedPartTable.tsx:109 msgid "Add Related Part" msgstr "" -#: src/tables/part/RelatedPartTable.tsx:99 +#: src/tables/part/RelatedPartTable.tsx:101 msgid "Delete Related Part" msgstr "" -#: src/tables/part/RelatedPartTable.tsx:106 -msgid "Add related part" -msgstr "" +#: src/tables/part/RelatedPartTable.tsx:109 +#~ msgid "Add related part" +#~ msgstr "Add related part" #: src/tables/plugin/PluginErrorTable.tsx:29 msgid "Stage" msgstr "" -#: src/tables/plugin/PluginListTable.tsx:95 -msgid "Plugin with key {pluginKey} not found" +#: src/tables/plugin/PluginListTable.tsx:42 +msgid "Plugin is active" msgstr "" +#: src/tables/plugin/PluginListTable.tsx:48 +msgid "Plugin is inactive" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:55 +msgid "Plugin is not installed" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:76 +msgid "Plugin" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:95 +#~ msgid "Plugin with key {pluginKey} not found" +#~ msgstr "Plugin with key {pluginKey} not found" + #: src/tables/plugin/PluginListTable.tsx:97 -msgid "An error occurred while fetching plugin details" +#~ msgid "An error occurred while fetching plugin details" +#~ msgstr "An error occurred while fetching plugin details" + +#: src/tables/plugin/PluginListTable.tsx:109 +msgid "Description not available" msgstr "" #: src/tables/plugin/PluginListTable.tsx:113 @@ -6865,12 +8032,8 @@ msgstr "" #~ msgstr "Plugin with id {id} not found" #: src/tables/plugin/PluginListTable.tsx:122 -msgid "Plugin information" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:134 -msgid "Author" -msgstr "" +#~ msgid "Plugin information" +#~ msgstr "Plugin information" #: src/tables/plugin/PluginListTable.tsx:134 #~ msgid "Plugin Actions" @@ -6881,79 +8044,124 @@ msgstr "" #~ msgid "Edit plugin" #~ msgstr "Edit plugin" +#: src/tables/plugin/PluginListTable.tsx:144 +msgid "Confirm plugin activation" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:145 +msgid "Confirm plugin deactivation" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:150 +msgid "The selected plugin will be activated" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:151 +msgid "The selected plugin will be deactivated" +msgstr "" + #: src/tables/plugin/PluginListTable.tsx:152 #: src/tables/plugin/PluginListTable.tsx:153 #~ msgid "Reload" #~ msgstr "Reload" -#: src/tables/plugin/PluginListTable.tsx:154 -msgid "Plugin is not active" -msgstr "" - #: src/tables/plugin/PluginListTable.tsx:163 -msgid "Package information" -msgstr "" +#~ msgid "Package information" +#~ msgstr "Package information" #: src/tables/plugin/PluginListTable.tsx:169 -msgid "Package Name" +msgid "Deactivate" msgstr "" -#: src/tables/plugin/PluginListTable.tsx:175 -msgid "Installation Path" +#: src/tables/plugin/PluginListTable.tsx:183 +msgid "Activate" msgstr "" -#: src/tables/plugin/PluginListTable.tsx:185 -msgid "Package" +#: src/tables/plugin/PluginListTable.tsx:184 +msgid "Activate selected plugin" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:196 +msgid "Update selected plugin" msgstr "" #: src/tables/plugin/PluginListTable.tsx:197 -msgid "Plugin settings" -msgstr "" +#~ msgid "Plugin settings" +#~ msgstr "Plugin settings" #: src/tables/plugin/PluginListTable.tsx:214 -msgid "Plugin is active" +#: src/tables/stock/InstalledItemsTable.tsx:107 +msgid "Uninstall" msgstr "" -#: src/tables/plugin/PluginListTable.tsx:220 -msgid "Plugin is inactive" +#: src/tables/plugin/PluginListTable.tsx:215 +msgid "Uninstall selected plugin" msgstr "" -#: src/tables/plugin/PluginListTable.tsx:227 -msgid "Plugin is not installed" +#: src/tables/plugin/PluginListTable.tsx:233 +msgid "Delete selected plugin configuration" msgstr "" -#: src/tables/plugin/PluginListTable.tsx:253 -msgid "Plugin" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:287 -msgid "Description not available" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:319 -msgid "Confirm plugin activation" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:320 -msgid "Confirm plugin deactivation" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:325 -msgid "The selected plugin will be activated" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:326 -msgid "The selected plugin will be deactivated" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:334 +#: src/tables/plugin/PluginListTable.tsx:249 msgid "Activate Plugin" msgstr "" +#: src/tables/plugin/PluginListTable.tsx:270 +msgid "Install plugin" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:283 +msgid "Install" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:284 +msgid "Plugin installed successfully" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:289 +msgid "Uninstall Plugin" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:301 +msgid "Confirm plugin uninstall" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:304 +msgid "The selected plugin will be uninstalled." +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:308 +#~ msgid "This action cannot be undone." +#~ msgstr "This action cannot be undone." + +#: src/tables/plugin/PluginListTable.tsx:309 +msgid "Plugin uninstalled successfully" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:317 +msgid "Delete Plugin" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:318 +msgid "Deleting this plugin configuration will remove all associated settings and data. Are you sure you want to delete this plugin?" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:331 +msgid "Plugins reloaded" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:332 +msgid "Plugins were reloaded successfully" +msgstr "" + #: src/tables/plugin/PluginListTable.tsx:338 #~ msgid "Deactivate Plugin" #~ msgstr "Deactivate Plugin" +#: src/tables/plugin/PluginListTable.tsx:350 +msgid "Reload Plugins" +msgstr "" + #: src/tables/plugin/PluginListTable.tsx:354 #~ msgid "The following plugin will be activated" #~ msgstr "The following plugin will be activated" @@ -6962,16 +8170,16 @@ msgstr "" #~ msgid "The following plugin will be deactivated" #~ msgstr "The following plugin will be deactivated" -#: src/tables/plugin/PluginListTable.tsx:362 -msgid "Deactivate" +#: src/tables/plugin/PluginListTable.tsx:357 +msgid "Install Plugin" msgstr "" #: src/tables/plugin/PluginListTable.tsx:366 #~ msgid "Confirm" #~ msgstr "Confirm" -#: src/tables/plugin/PluginListTable.tsx:373 -msgid "Activate" +#: src/tables/plugin/PluginListTable.tsx:374 +msgid "Plugin Detail" msgstr "" #: src/tables/plugin/PluginListTable.tsx:376 @@ -6998,76 +8206,12 @@ msgstr "" #~ msgid "Error updating plugin" #~ msgstr "Error updating plugin" -#: src/tables/plugin/PluginListTable.tsx:406 -msgid "Uninstall" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:438 -msgid "Install plugin" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:451 -msgid "Install" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:452 -msgid "Plugin installed successfully" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:457 -msgid "Uninstall Plugin" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:469 -msgid "Confirm plugin uninstall" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:472 -msgid "The selected plugin will be uninstalled." -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:473 -msgid "This action cannot be undone." -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:477 -msgid "Plugin uninstalled successfully" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:484 -msgid "Delete Plugin" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:485 -msgid "Deleting this plugin configuration will remove all associated settings and data. Are you sure you want to delete this plugin?" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:498 -msgid "Plugins reloaded" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:499 -msgid "Plugins were reloaded successfully" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:515 -msgid "Reload Plugins" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:524 -msgid "Install Plugin" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:544 -msgid "Plugin Detail" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:573 +#: src/tables/plugin/PluginListTable.tsx:411 msgid "Sample" msgstr "" -#: src/tables/plugin/PluginListTable.tsx:578 -#: src/tables/stock/StockItemTable.tsx:340 +#: src/tables/plugin/PluginListTable.tsx:416 +#: src/tables/stock/StockItemTable.tsx:344 msgid "Installed" msgstr "" @@ -7116,82 +8260,78 @@ msgstr "" #~ msgid "Are you sure you want to remove this manufacturer part?" #~ msgstr "Are you sure you want to remove this manufacturer part?" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:102 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:339 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:103 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:356 msgid "Import Line Items" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:135 -msgid "Part Description" -msgstr "" - -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:201 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:207 msgid "Supplier Code" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:208 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:214 msgid "Supplier Link" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:215 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:220 msgid "Manufacturer Code" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:229 -msgid "Destination" +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:248 +msgid "Show line items which have been received" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:300 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:316 msgid "Receive line item" msgstr "" #: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:344 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:142 -#: src/tables/sales/SalesOrderLineItemTable.tsx:240 -msgid "Add line item" -msgstr "" +#: src/tables/sales/ReturnOrderLineItemTable.tsx:160 +#: src/tables/sales/SalesOrderLineItemTable.tsx:258 +#~ msgid "Add line item" +#~ msgstr "Add line item" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:354 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:373 msgid "Receive items" msgstr "" -#: src/tables/purchasing/SupplierPartTable.tsx:93 +#: src/tables/purchasing/SupplierPartTable.tsx:95 msgid "MPN" msgstr "" -#: src/tables/purchasing/SupplierPartTable.tsx:122 +#: src/tables/purchasing/SupplierPartTable.tsx:124 msgid "Base units" msgstr "" -#: src/tables/purchasing/SupplierPartTable.tsx:170 +#: src/tables/purchasing/SupplierPartTable.tsx:172 msgid "Supplier part created" msgstr "" -#: src/tables/purchasing/SupplierPartTable.tsx:176 +#: src/tables/purchasing/SupplierPartTable.tsx:179 msgid "Add supplier part" msgstr "" -#: src/tables/purchasing/SupplierPartTable.tsx:188 +#: src/tables/purchasing/SupplierPartTable.tsx:191 msgid "Show active supplier parts" msgstr "" -#: src/tables/purchasing/SupplierPartTable.tsx:192 -msgid "Active Part" -msgstr "" - -#: src/tables/purchasing/SupplierPartTable.tsx:193 -msgid "Show active internal parts" -msgstr "" - #: src/tables/purchasing/SupplierPartTable.tsx:193 #~ msgid "Supplier part updated" #~ msgstr "Supplier part updated" -#: src/tables/purchasing/SupplierPartTable.tsx:197 +#: src/tables/purchasing/SupplierPartTable.tsx:195 +msgid "Active Part" +msgstr "" + +#: src/tables/purchasing/SupplierPartTable.tsx:196 +msgid "Show active internal parts" +msgstr "" + +#: src/tables/purchasing/SupplierPartTable.tsx:200 msgid "Active Supplier" msgstr "" -#: src/tables/purchasing/SupplierPartTable.tsx:198 +#: src/tables/purchasing/SupplierPartTable.tsx:201 msgid "Show active suppliers" msgstr "" @@ -7203,99 +8343,187 @@ msgstr "" #~ msgid "Are you sure you want to remove this supplier part?" #~ msgstr "Are you sure you want to remove this supplier part?" -#: src/tables/sales/ReturnOrderLineItemTable.tsx:114 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:139 msgid "Received Date" msgstr "" -#: src/tables/sales/ReturnOrderLineItemTable.tsx:128 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:153 msgid "Show items which have been received" msgstr "" -#: src/tables/sales/ReturnOrderLineItemTable.tsx:133 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:158 msgid "Filter by line item status" msgstr "" -#: src/tables/sales/ReturnOrderLineItemTable.tsx:158 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:176 +msgid "Receive selected items" +msgstr "" + +#: src/tables/sales/ReturnOrderLineItemTable.tsx:205 msgid "Receive Item" msgstr "" -#: src/tables/sales/SalesOrderLineItemTable.tsx:262 -msgid "Allocate stock" +#: src/tables/sales/SalesOrderAllocationTable.tsx:60 +msgid "Show outstanding allocations" msgstr "" -#: src/tables/sales/SalesOrderLineItemTable.tsx:272 +#: src/tables/sales/SalesOrderAllocationTable.tsx:168 +#: src/tables/sales/SalesOrderAllocationTable.tsx:190 +msgid "Edit Allocation" +msgstr "" + +#: src/tables/sales/SalesOrderAllocationTable.tsx:175 +#: src/tables/sales/SalesOrderAllocationTable.tsx:197 +msgid "Delete Allocation" +msgstr "" + +#: src/tables/sales/SalesOrderLineItemTable.tsx:244 +msgid "Allocate Serial Numbers" +msgstr "" + +#: src/tables/sales/SalesOrderLineItemTable.tsx:277 +msgid "Show lines which are fully allocated" +msgstr "" + +#: src/tables/sales/SalesOrderLineItemTable.tsx:280 +#~ msgid "Allocate stock" +#~ msgstr "Allocate stock" + +#: src/tables/sales/SalesOrderLineItemTable.tsx:282 +msgid "Show lines which are completed" +msgstr "" + +#: src/tables/sales/SalesOrderLineItemTable.tsx:291 +#~ msgid "Allocate Serials" +#~ msgstr "Allocate Serials" + +#: src/tables/sales/SalesOrderLineItemTable.tsx:340 +msgid "Allocate serials" +msgstr "" + +#: src/tables/sales/SalesOrderLineItemTable.tsx:356 msgid "Build stock" msgstr "" -#: src/tables/sales/SalesOrderLineItemTable.tsx:289 -#: src/tables/stock/StockItemTable.tsx:507 +#: src/tables/sales/SalesOrderLineItemTable.tsx:373 +#: src/tables/stock/StockItemTable.tsx:512 msgid "Order stock" msgstr "" -#: src/tables/sales/SalesOrderShipmentTable.tsx:40 +#: src/tables/sales/SalesOrderShipmentTable.tsx:51 +#~ msgid "Delete Shipment" +#~ msgstr "Delete Shipment" + +#: src/tables/sales/SalesOrderShipmentTable.tsx:57 msgid "Create Shipment" msgstr "" -#: src/tables/sales/SalesOrderShipmentTable.tsx:50 -msgid "Delete Shipment" -msgstr "" - -#: src/tables/sales/SalesOrderShipmentTable.tsx:58 -msgid "Edit Shipment" -msgstr "" - -#: src/tables/sales/SalesOrderShipmentTable.tsx:66 -msgid "Shipment Reference" -msgstr "" - -#: src/tables/sales/SalesOrderShipmentTable.tsx:71 +#: src/tables/sales/SalesOrderShipmentTable.tsx:104 msgid "Items" msgstr "" -#: src/tables/sales/SalesOrderShipmentTable.tsx:83 -msgid "Delivery Date" +#: src/tables/sales/SalesOrderShipmentTable.tsx:139 +msgid "View Shipment" msgstr "" -#: src/tables/sales/SalesOrderShipmentTable.tsx:107 -msgid "Complete Shipment" +#: src/tables/sales/SalesOrderShipmentTable.tsx:161 +msgid "Edit shipment" msgstr "" -#: src/tables/sales/SalesOrderShipmentTable.tsx:133 +#: src/tables/sales/SalesOrderShipmentTable.tsx:169 +msgid "Cancel shipment" +msgstr "" + +#: src/tables/sales/SalesOrderShipmentTable.tsx:184 msgid "Add shipment" msgstr "" -#: src/tables/sales/SalesOrderShipmentTable.tsx:146 -msgid "Shipped" -msgstr "" - -#: src/tables/sales/SalesOrderShipmentTable.tsx:147 +#: src/tables/sales/SalesOrderShipmentTable.tsx:198 msgid "Show shipments which have been shipped" msgstr "" -#: src/tables/sales/SalesOrderShipmentTable.tsx:151 -msgid "Delivered" -msgstr "" - -#: src/tables/sales/SalesOrderShipmentTable.tsx:152 +#: src/tables/sales/SalesOrderShipmentTable.tsx:203 msgid "Show shipments which have been delivered" msgstr "" -#: src/tables/settings/CurrencyTable.tsx:28 -msgid "Rate" +#: src/tables/settings/BarcodeScanHistoryTable.tsx:61 +msgid "Barcode Information" msgstr "" -#: src/tables/settings/CurrencyTable.tsx:40 -msgid "Exchange rates updated" +#: src/tables/settings/BarcodeScanHistoryTable.tsx:76 +#: src/tables/settings/ErrorTable.tsx:59 +msgid "Timestamp" msgstr "" -#: src/tables/settings/CurrencyTable.tsx:46 -msgid "Exchange rate update error" +#: src/tables/settings/BarcodeScanHistoryTable.tsx:86 +msgid "Endpoint" msgstr "" -#: src/tables/settings/CurrencyTable.tsx:57 -msgid "Refresh currency exchange rates" +#: src/tables/settings/BarcodeScanHistoryTable.tsx:90 +#: src/tables/settings/BarcodeScanHistoryTable.tsx:217 +#: src/tables/stock/StockItemTestResultTable.tsx:174 +msgid "Result" msgstr "" +#: src/tables/settings/BarcodeScanHistoryTable.tsx:98 +msgid "Context" +msgstr "" + +#: src/tables/settings/BarcodeScanHistoryTable.tsx:119 +msgid "Response" +msgstr "" + +#: src/tables/settings/BarcodeScanHistoryTable.tsx:213 +#: src/tables/settings/ImportSessionTable.tsx:121 +#: src/tables/stock/StockTrackingTable.tsx:183 +msgid "Filter by user" +msgstr "" + +#: src/tables/settings/BarcodeScanHistoryTable.tsx:218 +msgid "Filter by result" +msgstr "" + +#: src/tables/settings/BarcodeScanHistoryTable.tsx:232 +msgid "Delete Barcode Scan Record" +msgstr "" + +#: src/tables/settings/BarcodeScanHistoryTable.tsx:258 +msgid "Barcode Scan Details" +msgstr "" + +#: src/tables/settings/BarcodeScanHistoryTable.tsx:268 +msgid "Logging Disabled" +msgstr "" + +#: src/tables/settings/BarcodeScanHistoryTable.tsx:270 +msgid "Barcode logging is not enabled" +msgstr "" + +#: src/tables/settings/CustomStateTable.tsx:36 +msgid "Display Name" +msgstr "" + +#: src/tables/settings/CustomStateTable.tsx:52 +msgid "Model" +msgstr "" + +#: src/tables/settings/CustomStateTable.tsx:65 +#: src/tables/settings/CustomStateTable.tsx:115 +msgid "Add State" +msgstr "" + +#: src/tables/settings/CustomStateTable.tsx:77 +msgid "Edit State" +msgstr "" + +#: src/tables/settings/CustomStateTable.tsx:85 +msgid "Delete State" +msgstr "" + +#: src/tables/settings/CustomStateTable.tsx:115 +#~ msgid "Add state" +#~ msgstr "Add state" + #: src/tables/settings/CustomUnitsTable.tsx:50 msgid "Add Custom Unit" msgstr "" @@ -7312,59 +8540,71 @@ msgstr "" msgid "Add custom unit" msgstr "" -#: src/tables/settings/ErrorTable.tsx:31 -msgid "When" -msgstr "" - -#: src/tables/settings/ErrorTable.tsx:41 -msgid "Error Information" -msgstr "" - #: src/tables/settings/ErrorTable.tsx:51 #~ msgid "Delete error report" #~ msgstr "Delete error report" -#: src/tables/settings/ErrorTable.tsx:53 +#: src/tables/settings/ErrorTable.tsx:67 +msgid "Traceback" +msgstr "" + +#: src/tables/settings/ErrorTable.tsx:103 +msgid "When" +msgstr "" + +#: src/tables/settings/ErrorTable.tsx:113 +msgid "Error Information" +msgstr "" + +#: src/tables/settings/ErrorTable.tsx:123 msgid "Delete Error Report" msgstr "" -#: src/tables/settings/ErrorTable.tsx:55 +#: src/tables/settings/ErrorTable.tsx:125 msgid "Are you sure you want to delete this error report?" msgstr "" -#: src/tables/settings/ErrorTable.tsx:57 +#: src/tables/settings/ErrorTable.tsx:127 msgid "Error report deleted" msgstr "" -#: src/tables/settings/ErrorTable.tsx:79 -#: src/tables/settings/FailedTasksTable.tsx:59 +#: src/tables/settings/ErrorTable.tsx:146 +#: src/tables/settings/FailedTasksTable.tsx:65 msgid "Error Details" msgstr "" -#: src/tables/settings/FailedTasksTable.tsx:26 -#: src/tables/settings/PendingTasksTable.tsx:19 +#: src/tables/settings/FailedTasksTable.tsx:32 +#: src/tables/settings/PendingTasksTable.tsx:23 #: src/tables/settings/ScheduledTasksTable.tsx:19 msgid "Task" msgstr "" -#: src/tables/settings/FailedTasksTable.tsx:32 -#: src/tables/settings/PendingTasksTable.tsx:24 +#: src/tables/settings/FailedTasksTable.tsx:38 +#: src/tables/settings/PendingTasksTable.tsx:28 msgid "Task ID" msgstr "" -#: src/tables/settings/FailedTasksTable.tsx:36 -#: src/tables/stock/StockItemTestResultTable.tsx:211 +#: src/tables/settings/FailedTasksTable.tsx:42 +#: src/tables/stock/StockItemTestResultTable.tsx:218 msgid "Started" msgstr "" -#: src/tables/settings/FailedTasksTable.tsx:42 +#: src/tables/settings/FailedTasksTable.tsx:48 msgid "Stopped" msgstr "" -#: src/tables/settings/FailedTasksTable.tsx:48 +#: src/tables/settings/FailedTasksTable.tsx:54 msgid "Attempts" msgstr "" +#: src/tables/settings/FailedTasksTable.tsx:92 +msgid "No Information" +msgstr "" + +#: src/tables/settings/FailedTasksTable.tsx:93 +msgid "No error details are available for this task" +msgstr "" + #: src/tables/settings/GroupTable.tsx:90 msgid "Group with id {id} not found" msgstr "" @@ -7398,42 +8638,34 @@ msgstr "" msgid "Edit group" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:38 +#: src/tables/settings/ImportSessionTable.tsx:37 msgid "Delete Import Session" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:44 +#: src/tables/settings/ImportSessionTable.tsx:43 #: src/tables/settings/ImportSessionTable.tsx:131 msgid "Create Import Session" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:69 +#: src/tables/settings/ImportSessionTable.tsx:68 msgid "Uploaded" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:79 -msgid "Imported Rows" -msgstr "" - -#: src/tables/settings/ImportSessionTable.tsx:109 -#: src/tables/settings/TemplateTable.tsx:289 +#: src/tables/settings/ImportSessionTable.tsx:108 +#: src/tables/settings/TemplateTable.tsx:369 msgid "Model Type" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:110 -#: src/tables/settings/TemplateTable.tsx:290 +#: src/tables/settings/ImportSessionTable.tsx:109 +#: src/tables/settings/TemplateTable.tsx:370 msgid "Filter by target model type" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:116 +#: src/tables/settings/ImportSessionTable.tsx:115 msgid "Filter by import session status" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:122 -msgid "Filter by user" -msgstr "" - -#: src/tables/settings/PendingTasksTable.tsx:38 +#: src/tables/settings/PendingTasksTable.tsx:42 msgid "Arguments" msgstr "" @@ -7461,12 +8693,16 @@ msgstr "" msgid "Next Run" msgstr "" -#: src/tables/settings/TemplateTable.tsx:85 -msgid "Template not found" +#: src/tables/settings/StocktakeReportTable.tsx:28 +msgid "Report" msgstr "" -#: src/tables/settings/TemplateTable.tsx:87 -msgid "An error occurred while fetching template details" +#: src/tables/settings/StocktakeReportTable.tsx:35 +msgid "Part Count" +msgstr "" + +#: src/tables/settings/StocktakeReportTable.tsx:58 +msgid "Delete Report" msgstr "" #: src/tables/settings/TemplateTable.tsx:120 @@ -7481,21 +8717,12 @@ msgstr "" #~ msgid "actions" #~ msgstr "actions" -#: src/tables/settings/TemplateTable.tsx:177 -msgid "Modify" +#: src/tables/settings/TemplateTable.tsx:162 +msgid "Template not found" msgstr "" -#: src/tables/settings/TemplateTable.tsx:178 -msgid "Modify template file" -msgstr "" - -#: src/tables/settings/TemplateTable.tsx:234 -#: src/tables/settings/TemplateTable.tsx:302 -msgid "Edit Template" -msgstr "" - -#: src/tables/settings/TemplateTable.tsx:242 -msgid "Delete template" +#: src/tables/settings/TemplateTable.tsx:164 +msgid "An error occurred while fetching template details" msgstr "" #: src/tables/settings/TemplateTable.tsx:243 @@ -7506,103 +8733,137 @@ msgstr "" #~ msgid "Create new" #~ msgstr "Create new" -#: src/tables/settings/TemplateTable.tsx:248 +#: src/tables/settings/TemplateTable.tsx:257 +msgid "Modify" +msgstr "" + +#: src/tables/settings/TemplateTable.tsx:258 +msgid "Modify template file" +msgstr "" + +#: src/tables/settings/TemplateTable.tsx:314 +#: src/tables/settings/TemplateTable.tsx:382 +msgid "Edit Template" +msgstr "" + +#: src/tables/settings/TemplateTable.tsx:322 +msgid "Delete template" +msgstr "" + +#: src/tables/settings/TemplateTable.tsx:328 msgid "Add Template" msgstr "" -#: src/tables/settings/TemplateTable.tsx:261 +#: src/tables/settings/TemplateTable.tsx:341 msgid "Add template" msgstr "" -#: src/tables/settings/TemplateTable.tsx:284 +#: src/tables/settings/TemplateTable.tsx:364 msgid "Filter by enabled status" msgstr "" -#: src/tables/settings/UserTable.tsx:82 +#: src/tables/settings/UserTable.tsx:81 msgid "User with id {id} not found" msgstr "" -#: src/tables/settings/UserTable.tsx:84 +#: src/tables/settings/UserTable.tsx:83 msgid "An error occurred while fetching user details" msgstr "" -#: src/tables/settings/UserTable.tsx:102 +#: src/tables/settings/UserTable.tsx:101 msgid "Is Active" msgstr "" -#: src/tables/settings/UserTable.tsx:103 +#: src/tables/settings/UserTable.tsx:102 msgid "Designates whether this user should be treated as active. Unselect this instead of deleting accounts." msgstr "" -#: src/tables/settings/UserTable.tsx:107 +#: src/tables/settings/UserTable.tsx:106 msgid "Is Staff" msgstr "" -#: src/tables/settings/UserTable.tsx:108 +#: src/tables/settings/UserTable.tsx:107 msgid "Designates whether the user can log into the django admin site." msgstr "" -#: src/tables/settings/UserTable.tsx:112 +#: src/tables/settings/UserTable.tsx:111 msgid "Is Superuser" msgstr "" -#: src/tables/settings/UserTable.tsx:113 +#: src/tables/settings/UserTable.tsx:112 msgid "Designates that this user has all permissions without explicitly assigning them." msgstr "" -#: src/tables/settings/UserTable.tsx:123 +#: src/tables/settings/UserTable.tsx:122 msgid "You cannot edit the rights for the currently logged-in user." msgstr "" -#: src/tables/settings/UserTable.tsx:154 +#: src/tables/settings/UserTable.tsx:153 msgid "No groups" msgstr "" -#: src/tables/settings/UserTable.tsx:245 +#: src/tables/settings/UserTable.tsx:244 msgid "Delete user" msgstr "" -#: src/tables/settings/UserTable.tsx:246 +#: src/tables/settings/UserTable.tsx:245 msgid "User deleted" msgstr "" -#: src/tables/settings/UserTable.tsx:248 +#: src/tables/settings/UserTable.tsx:247 msgid "Are you sure you want to delete this user?" msgstr "" -#: src/tables/settings/UserTable.tsx:254 -#: src/tables/settings/UserTable.tsx:272 +#: src/tables/settings/UserTable.tsx:253 +#: src/tables/settings/UserTable.tsx:271 msgid "Add user" msgstr "" -#: src/tables/settings/UserTable.tsx:262 +#: src/tables/settings/UserTable.tsx:261 msgid "Added user" msgstr "" -#: src/tables/settings/UserTable.tsx:285 +#: src/tables/settings/UserTable.tsx:284 msgid "Show active users" msgstr "" -#: src/tables/settings/UserTable.tsx:289 +#: src/tables/settings/UserTable.tsx:288 msgid "Staff" msgstr "" -#: src/tables/settings/UserTable.tsx:290 +#: src/tables/settings/UserTable.tsx:289 msgid "Show staff users" msgstr "" #: src/tables/settings/UserTable.tsx:294 -msgid "Superuser" -msgstr "" - -#: src/tables/settings/UserTable.tsx:295 msgid "Show superusers" msgstr "" -#: src/tables/settings/UserTable.tsx:305 +#: src/tables/settings/UserTable.tsx:304 msgid "Edit user" msgstr "" +#: src/tables/stock/InstalledItemsTable.tsx:37 +#: src/tables/stock/InstalledItemsTable.tsx:90 +msgid "Install Item" +msgstr "" + +#: src/tables/stock/InstalledItemsTable.tsx:39 +msgid "Item installed" +msgstr "" + +#: src/tables/stock/InstalledItemsTable.tsx:50 +msgid "Uninstall Item" +msgstr "" + +#: src/tables/stock/InstalledItemsTable.tsx:52 +msgid "Item uninstalled" +msgstr "" + +#: src/tables/stock/InstalledItemsTable.tsx:108 +msgid "Uninstall stock item" +msgstr "" + #: src/tables/stock/LocationTypesTable.tsx:39 #: src/tables/stock/LocationTypesTable.tsx:109 msgid "Add Location Type" @@ -7620,276 +8881,272 @@ msgstr "" msgid "Icon" msgstr "" -#: src/tables/stock/StockItemTable.tsx:101 +#: src/tables/stock/StockItemTable.tsx:90 msgid "This stock item is in production" msgstr "" -#: src/tables/stock/StockItemTable.tsx:110 +#: src/tables/stock/StockItemTable.tsx:97 msgid "This stock item has been assigned to a sales order" msgstr "" -#: src/tables/stock/StockItemTable.tsx:119 +#: src/tables/stock/StockItemTable.tsx:104 msgid "This stock item has been assigned to a customer" msgstr "" -#: src/tables/stock/StockItemTable.tsx:128 +#: src/tables/stock/StockItemTable.tsx:111 msgid "This stock item is installed in another stock item" msgstr "" -#: src/tables/stock/StockItemTable.tsx:137 +#: src/tables/stock/StockItemTable.tsx:118 msgid "This stock item has been consumed by a build order" msgstr "" -#: src/tables/stock/StockItemTable.tsx:146 +#: src/tables/stock/StockItemTable.tsx:125 +msgid "This stock item is unavailable" +msgstr "" + +#: src/tables/stock/StockItemTable.tsx:134 msgid "This stock item has expired" msgstr "" -#: src/tables/stock/StockItemTable.tsx:150 +#: src/tables/stock/StockItemTable.tsx:138 msgid "This stock item is stale" msgstr "" -#: src/tables/stock/StockItemTable.tsx:161 +#: src/tables/stock/StockItemTable.tsx:150 msgid "This stock item is fully allocated" msgstr "" -#: src/tables/stock/StockItemTable.tsx:168 +#: src/tables/stock/StockItemTable.tsx:157 msgid "This stock item is partially allocated" msgstr "" -#: src/tables/stock/StockItemTable.tsx:196 +#: src/tables/stock/StockItemTable.tsx:185 msgid "This stock item has been depleted" msgstr "" -#: src/tables/stock/StockItemTable.tsx:232 +#: src/tables/stock/StockItemTable.tsx:280 msgid "Stocktake Date" msgstr "" -#: src/tables/stock/StockItemTable.tsx:236 -msgid "Expiry Date" -msgstr "" - -#: src/tables/stock/StockItemTable.tsx:260 -msgid "Stock Value" -msgstr "" - -#: src/tables/stock/StockItemTable.tsx:290 +#: src/tables/stock/StockItemTable.tsx:294 msgid "Show stock for active parts" msgstr "" -#: src/tables/stock/StockItemTable.tsx:295 +#: src/tables/stock/StockItemTable.tsx:299 msgid "Filter by stock status" msgstr "" #: src/tables/stock/StockItemTable.tsx:301 -msgid "Show stock for assmebled parts" +#~ msgid "Show stock for assmebled parts" +#~ msgstr "Show stock for assmebled parts" + +#: src/tables/stock/StockItemTable.tsx:305 +msgid "Show stock for assembled parts" msgstr "" -#: src/tables/stock/StockItemTable.tsx:306 +#: src/tables/stock/StockItemTable.tsx:310 msgid "Show items which have been allocated" msgstr "" -#: src/tables/stock/StockItemTable.tsx:311 +#: src/tables/stock/StockItemTable.tsx:315 msgid "Show items which are available" msgstr "" -#: src/tables/stock/StockItemTable.tsx:315 +#: src/tables/stock/StockItemTable.tsx:319 #: src/tables/stock/StockLocationTable.tsx:44 msgid "Include Sublocations" msgstr "" -#: src/tables/stock/StockItemTable.tsx:316 +#: src/tables/stock/StockItemTable.tsx:320 msgid "Include stock in sublocations" msgstr "" -#: src/tables/stock/StockItemTable.tsx:320 +#: src/tables/stock/StockItemTable.tsx:324 msgid "Depleted" msgstr "" -#: src/tables/stock/StockItemTable.tsx:321 +#: src/tables/stock/StockItemTable.tsx:325 msgid "Show depleted stock items" msgstr "" -#: src/tables/stock/StockItemTable.tsx:326 +#: src/tables/stock/StockItemTable.tsx:330 msgid "Show items which are in stock" msgstr "" -#: src/tables/stock/StockItemTable.tsx:331 +#: src/tables/stock/StockItemTable.tsx:335 msgid "Show items which are in production" msgstr "" -#: src/tables/stock/StockItemTable.tsx:336 +#: src/tables/stock/StockItemTable.tsx:340 msgid "Include stock items for variant parts" msgstr "" -#: src/tables/stock/StockItemTable.tsx:341 +#: src/tables/stock/StockItemTable.tsx:345 msgid "Show stock items which are installed in other items" msgstr "" -#: src/tables/stock/StockItemTable.tsx:345 +#: src/tables/stock/StockItemTable.tsx:349 msgid "Sent to Customer" msgstr "" -#: src/tables/stock/StockItemTable.tsx:346 +#: src/tables/stock/StockItemTable.tsx:350 msgid "Show items which have been sent to a customer" msgstr "" -#: src/tables/stock/StockItemTable.tsx:350 +#: src/tables/stock/StockItemTable.tsx:354 msgid "Is Serialized" msgstr "" -#: src/tables/stock/StockItemTable.tsx:351 +#: src/tables/stock/StockItemTable.tsx:355 msgid "Show items which have a serial number" msgstr "" -#: src/tables/stock/StockItemTable.tsx:358 +#: src/tables/stock/StockItemTable.tsx:362 msgid "Has Batch Code" msgstr "" -#: src/tables/stock/StockItemTable.tsx:359 +#: src/tables/stock/StockItemTable.tsx:363 msgid "Show items which have a batch code" msgstr "" -#: src/tables/stock/StockItemTable.tsx:365 +#: src/tables/stock/StockItemTable.tsx:369 msgid "Show tracked items" msgstr "" -#: src/tables/stock/StockItemTable.tsx:369 +#: src/tables/stock/StockItemTable.tsx:373 msgid "Has Purchase Price" msgstr "" -#: src/tables/stock/StockItemTable.tsx:370 +#: src/tables/stock/StockItemTable.tsx:374 msgid "Show items which have a purchase price" msgstr "" -#: src/tables/stock/StockItemTable.tsx:378 +#: src/tables/stock/StockItemTable.tsx:382 msgid "External Location" msgstr "" -#: src/tables/stock/StockItemTable.tsx:379 +#: src/tables/stock/StockItemTable.tsx:383 msgid "Show items in an external location" msgstr "" -#: src/tables/stock/StockItemTable.tsx:451 +#: src/tables/stock/StockItemTable.tsx:456 msgid "Add a new stock item" msgstr "" -#: src/tables/stock/StockItemTable.tsx:460 +#: src/tables/stock/StockItemTable.tsx:465 msgid "Remove some quantity from a stock item" msgstr "" -#: src/tables/stock/StockItemTable.tsx:482 +#: src/tables/stock/StockItemTable.tsx:487 msgid "Move Stock items to new locations" msgstr "" -#: src/tables/stock/StockItemTable.tsx:489 +#: src/tables/stock/StockItemTable.tsx:494 msgid "Change stock status" msgstr "" -#: src/tables/stock/StockItemTable.tsx:491 +#: src/tables/stock/StockItemTable.tsx:496 msgid "Change the status of stock items" msgstr "" -#: src/tables/stock/StockItemTable.tsx:498 +#: src/tables/stock/StockItemTable.tsx:503 msgid "Merge stock" msgstr "" -#: src/tables/stock/StockItemTable.tsx:500 +#: src/tables/stock/StockItemTable.tsx:505 msgid "Merge stock items" msgstr "" -#: src/tables/stock/StockItemTable.tsx:509 -#: src/tables/stock/StockItemTable.tsx:516 +#: src/tables/stock/StockItemTable.tsx:514 +#: src/tables/stock/StockItemTable.tsx:521 msgid "Order new stock" msgstr "" -#: src/tables/stock/StockItemTable.tsx:514 +#: src/tables/stock/StockItemTable.tsx:519 msgid "Assign to customer" msgstr "" -#: src/tables/stock/StockItemTable.tsx:523 +#: src/tables/stock/StockItemTable.tsx:528 msgid "Delete stock" msgstr "" -#: src/tables/stock/StockItemTable.tsx:525 -msgid "Delete stock items" -msgstr "" +#: src/tables/stock/StockItemTable.tsx:528 +#~ msgid "Delete stock items" +#~ msgstr "Delete stock items" -#: src/tables/stock/StockItemTestResultTable.tsx:131 +#: src/tables/stock/StockItemTestResultTable.tsx:137 msgid "Test" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:157 +#: src/tables/stock/StockItemTestResultTable.tsx:163 msgid "Test result for installed stock item" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:168 -msgid "Result" -msgstr "" - -#: src/tables/stock/StockItemTestResultTable.tsx:190 +#: src/tables/stock/StockItemTestResultTable.tsx:196 msgid "Attachment" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:206 +#: src/tables/stock/StockItemTestResultTable.tsx:212 msgid "Test station" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:226 +#: src/tables/stock/StockItemTestResultTable.tsx:234 msgid "Finished" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:268 -#: src/tables/stock/StockItemTestResultTable.tsx:339 +#: src/tables/stock/StockItemTestResultTable.tsx:286 +#: src/tables/stock/StockItemTestResultTable.tsx:357 msgid "Edit Test Result" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:270 +#: src/tables/stock/StockItemTestResultTable.tsx:288 msgid "Test result updated" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:276 -#: src/tables/stock/StockItemTestResultTable.tsx:348 +#: src/tables/stock/StockItemTestResultTable.tsx:294 +#: src/tables/stock/StockItemTestResultTable.tsx:366 msgid "Delete Test Result" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:278 +#: src/tables/stock/StockItemTestResultTable.tsx:296 msgid "Test result deleted" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:292 +#: src/tables/stock/StockItemTestResultTable.tsx:310 msgid "Test Passed" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:293 +#: src/tables/stock/StockItemTestResultTable.tsx:311 msgid "Test result has been recorded" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:300 +#: src/tables/stock/StockItemTestResultTable.tsx:318 msgid "Failed to record test result" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:317 +#: src/tables/stock/StockItemTestResultTable.tsx:335 msgid "Pass Test" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:366 +#: src/tables/stock/StockItemTestResultTable.tsx:384 msgid "Show results for required tests" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:370 +#: src/tables/stock/StockItemTestResultTable.tsx:388 msgid "Include Installed" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:371 +#: src/tables/stock/StockItemTestResultTable.tsx:389 msgid "Show results for installed stock items" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:375 -#: src/tables/stock/TestStatisticsTable.tsx:74 +#: src/tables/stock/StockItemTestResultTable.tsx:393 +#: src/tables/stock/TestStatisticsTable.tsx:62 msgid "Passed" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:376 +#: src/tables/stock/StockItemTestResultTable.tsx:394 msgid "Show only passed tests" msgstr "" @@ -7922,28 +9179,32 @@ msgid "Filter by location type" msgstr "" #: src/tables/stock/StockLocationTable.tsx:107 -#: src/tables/stock/StockLocationTable.tsx:133 +#: src/tables/stock/StockLocationTable.tsx:134 msgid "Add Stock Location" msgstr "" -#: src/tables/stock/StockTrackingTable.tsx:64 +#: src/tables/stock/StockTrackingTable.tsx:68 msgid "Added" msgstr "" -#: src/tables/stock/StockTrackingTable.tsx:69 +#: src/tables/stock/StockTrackingTable.tsx:73 msgid "Removed" msgstr "" #: src/tables/stock/StockTrackingTable.tsx:198 +msgid "Details" +msgstr "" + +#: src/tables/stock/StockTrackingTable.tsx:213 msgid "No user information" msgstr "" -#: src/tables/stock/TestStatisticsTable.tsx:46 -#: src/tables/stock/TestStatisticsTable.tsx:76 +#: src/tables/stock/TestStatisticsTable.tsx:34 +#: src/tables/stock/TestStatisticsTable.tsx:64 msgid "Total" msgstr "" -#: src/tables/stock/TestStatisticsTable.tsx:75 +#: src/tables/stock/TestStatisticsTable.tsx:63 msgid "Failed" msgstr "" diff --git a/src/frontend/src/locales/pt/messages.po b/src/frontend/src/locales/pt/messages.po index 12a292b9d0..9b03297ca8 100644 --- a/src/frontend/src/locales/pt/messages.po +++ b/src/frontend/src/locales/pt/messages.po @@ -8,15 +8,15 @@ msgstr "" "Language: pt\n" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"PO-Revision-Date: 2024-08-20 19:50\n" +"PO-Revision-Date: 2024-11-04 03:14\n" "Last-Translator: \n" "Language-Team: Portuguese\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Crowdin-Project: inventree\n" "X-Crowdin-Project-ID: 452300\n" "X-Crowdin-Language: pt-PT\n" -"X-Crowdin-File: /[inventree.InvenTree] l10/src/frontend/src/locales/en/messages.po\n" -"X-Crowdin-File-ID: 205\n" +"X-Crowdin-File: /src/frontend/src/locales/en/messages.po\n" +"X-Crowdin-File-ID: 252\n" #: src/components/Boundary.tsx:12 msgid "Error rendering component" @@ -27,8 +27,8 @@ msgid "An error occurred while rendering this component. Refer to the console fo msgstr "Ocorreu um erro ao renderizar este componente. Consulte o console para obter mais informações." #: src/components/DashboardItemProxy.tsx:34 -msgid "Title" -msgstr "Título" +#~ msgid "Title" +#~ msgstr "Title" #: src/components/buttons/AdminButton.tsx:80 msgid "Open in admin interface" @@ -38,82 +38,99 @@ msgstr "Abrir na interface de administrador" #~ msgid "Copy to clipboard" #~ msgstr "Copy to clipboard" -#: src/components/buttons/CopyButton.tsx:24 +#: src/components/buttons/CopyButton.tsx:29 msgid "Copied" msgstr "Copiado" -#: src/components/buttons/CopyButton.tsx:24 +#: src/components/buttons/CopyButton.tsx:29 msgid "Copy" msgstr "Copiar" -#: src/components/buttons/PrintingActions.tsx:93 +#: src/components/buttons/PrintingActions.tsx:97 msgid "Print Label" msgstr "Imprimir Etiqueta" -#: src/components/buttons/PrintingActions.tsx:99 +#: src/components/buttons/PrintingActions.tsx:103 msgid "Print" msgstr "" -#: src/components/buttons/PrintingActions.tsx:100 +#: src/components/buttons/PrintingActions.tsx:104 msgid "Label printing completed successfully" msgstr "Impressão da etiqueta concluída com sucesso" -#: src/components/buttons/PrintingActions.tsx:106 -#: src/components/buttons/PrintingActions.tsx:144 -#: src/components/editors/NotesEditor.tsx:65 -#: src/components/editors/NotesEditor.tsx:165 -#: src/components/forms/fields/ApiFormField.tsx:319 +#: src/components/buttons/PrintingActions.tsx:110 +#: src/components/buttons/PrintingActions.tsx:148 +#: src/components/editors/NotesEditor.tsx:73 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:154 +#: src/components/forms/fields/ApiFormField.tsx:328 +#: src/components/forms/fields/TableField.tsx:43 #: src/components/importer/ImportDataSelector.tsx:187 -#: src/components/importer/ImporterColumnSelector.tsx:207 +#: src/components/importer/ImporterColumnSelector.tsx:210 #: src/components/modals/LicenseModal.tsx:75 -#: src/components/nav/SearchDrawer.tsx:448 +#: src/components/nav/SearchDrawer.tsx:458 +#: src/components/render/ModelType.tsx:290 #: src/pages/ErrorPage.tsx:11 -#: src/pages/part/PartPricingPanel.tsx:67 -#: src/tables/InvenTreeTable.tsx:495 +#: src/pages/part/PartPricingPanel.tsx:71 +#: src/tables/InvenTreeTable.tsx:481 #: src/tables/bom/BomTable.tsx:450 -#: src/tables/stock/StockItemTestResultTable.tsx:299 +#: src/tables/stock/StockItemTestResultTable.tsx:317 msgid "Error" msgstr "Erro" -#: src/components/buttons/PrintingActions.tsx:107 +#: src/components/buttons/PrintingActions.tsx:111 msgid "The label could not be generated" msgstr "A etiqueta não pôde ser gerada" -#: src/components/buttons/PrintingActions.tsx:122 +#: src/components/buttons/PrintingActions.tsx:126 msgid "Print Report" msgstr "Imprimir Relatório" -#: src/components/buttons/PrintingActions.tsx:138 +#: src/components/buttons/PrintingActions.tsx:142 msgid "Generate" msgstr "" -#: src/components/buttons/PrintingActions.tsx:139 +#: src/components/buttons/PrintingActions.tsx:143 msgid "Report printing completed successfully" msgstr "Impressão de relatório concluída com sucesso" -#: src/components/buttons/PrintingActions.tsx:145 +#: src/components/buttons/PrintingActions.tsx:149 msgid "The report could not be generated" msgstr "O relatório não pôde ser gerado" -#: src/components/buttons/PrintingActions.tsx:173 +#: src/components/buttons/PrintingActions.tsx:177 msgid "Printing Actions" msgstr "Opções de Impressão" -#: src/components/buttons/PrintingActions.tsx:178 +#: src/components/buttons/PrintingActions.tsx:182 msgid "Print Labels" msgstr "Imprimir Etiquetas" -#: src/components/buttons/PrintingActions.tsx:184 +#: src/components/buttons/PrintingActions.tsx:188 msgid "Print Reports" msgstr "Imprimir Relatórios" +#: src/components/buttons/RemoveRowButton.tsx:8 +msgid "Remove this row" +msgstr "" + #: src/components/buttons/ScanButton.tsx:15 -msgid "Scan QR code" -msgstr "Ler código QR" +#: src/components/nav/NavigationDrawer.tsx:117 +#: src/forms/PurchaseOrderForms.tsx:379 +#: src/forms/PurchaseOrderForms.tsx:473 +msgid "Scan Barcode" +msgstr "Ler Código de Barras" + +#: src/components/buttons/ScanButton.tsx:15 +#~ msgid "Scan QR code" +#~ msgstr "Scan QR code" #: src/components/buttons/ScanButton.tsx:20 -msgid "Open QR code scanner" -msgstr "Abrir leitor de código QR" +msgid "Open Barcode Scanner" +msgstr "" + +#: src/components/buttons/ScanButton.tsx:20 +#~ msgid "Open QR code scanner" +#~ msgstr "Open QR code scanner" #: src/components/buttons/SpotlightButton.tsx:14 msgid "Open spotlight" @@ -128,85 +145,347 @@ msgid "Fail" msgstr "Falhou" #: src/components/buttons/YesNoButton.tsx:33 -#: src/tables/Filter.tsx:52 +#: src/tables/Filter.tsx:61 msgid "Yes" msgstr "Sim" #: src/components/buttons/YesNoButton.tsx:33 -#: src/tables/Filter.tsx:53 +#: src/tables/Filter.tsx:62 msgid "No" msgstr "Não" -#: src/components/details/Details.tsx:301 +#: src/components/dashboard/DashboardLayout.tsx:286 +msgid "No Widgets Selected" +msgstr "" + +#: src/components/dashboard/DashboardLayout.tsx:289 +msgid "Use the menu to add widgets to the dashboard" +msgstr "" + +#: src/components/dashboard/DashboardMenu.tsx:59 +#: src/components/dashboard/DashboardMenu.tsx:126 +msgid "Accept Layout" +msgstr "" + +#: src/components/dashboard/DashboardMenu.tsx:91 +#: src/components/nav/NavigationDrawer.tsx:71 +#: src/defaults/actions.tsx:17 +#: src/defaults/links.tsx:9 +#: src/pages/Index/Settings/UserSettings.tsx:47 +msgid "Dashboard" +msgstr "Painel de controlo" + +#: src/components/dashboard/DashboardMenu.tsx:99 +msgid "Edit Layout" +msgstr "Editar disposição" + +#: src/components/dashboard/DashboardMenu.tsx:108 +msgid "Add Widget" +msgstr "" + +#: src/components/dashboard/DashboardMenu.tsx:117 +msgid "Remove Widgets" +msgstr "" + +#: src/components/dashboard/DashboardWidget.tsx:65 +msgid "Remove this widget from the dashboard" +msgstr "" + +#: src/components/dashboard/DashboardWidgetDrawer.tsx:77 +msgid "Filter dashboard widgets" +msgstr "" + +#: src/components/dashboard/DashboardWidgetDrawer.tsx:98 +msgid "Add this widget to the dashboard" +msgstr "" + +#: src/components/dashboard/DashboardWidgetDrawer.tsx:123 +msgid "No Widgets Available" +msgstr "" + +#: src/components/dashboard/DashboardWidgetDrawer.tsx:124 +msgid "There are no more widgets available for the dashboard" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:19 +msgid "Subscribed Parts" +msgstr "Peças Subscritas" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:20 +msgid "Show the number of parts which you have subscribed to" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:26 +msgid "Subscribed Categories" +msgstr "Categorias Subscritas" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:27 +msgid "Show the number of part categories which you have subscribed to" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:35 +#: src/pages/part/PartSchedulingDetail.tsx:304 +#: src/tables/part/PartTable.tsx:238 +msgid "Low Stock" +msgstr "Estoque Baixo" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:37 +msgid "Show the number of parts which are low on stock" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:43 +msgid "Expired Stock Items" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:45 +msgid "Show the number of stock items which have expired" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:51 +msgid "Stale Stock Items" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:53 +msgid "Show the number of stock items which are stale" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:59 +msgid "Active Build Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:61 +msgid "Show the number of build orders which are currently active" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:66 +msgid "Overdue Build Orders" +msgstr "Pedidos de Produção Vencidos" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:68 +msgid "Show the number of build orders which are overdue" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:73 +msgid "Assigned Build Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:75 +msgid "Show the number of build orders which are assigned to you" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:80 +msgid "Active Sales Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:82 +msgid "Show the number of sales orders which are currently active" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:87 +msgid "Overdue Sales Orders" +msgstr "Pedidos de Venda Vencidos" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:89 +msgid "Show the number of sales orders which are overdue" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:94 +msgid "Assigned Sales Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:96 +msgid "Show the number of sales orders which are assigned to you" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:101 +msgid "Active Purchase Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:103 +msgid "Show the number of purchase orders which are currently active" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:108 +msgid "Overdue Purchase Orders" +msgstr "Pedidos de Compra Pendentes" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:110 +msgid "Show the number of purchase orders which are overdue" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:115 +msgid "Assigned Purchase Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:117 +msgid "Show the number of purchase orders which are assigned to you" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:122 +msgid "Active Return Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:124 +msgid "Show the number of return orders which are currently active" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:129 +msgid "Overdue Return Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:131 +msgid "Show the number of return orders which are overdue" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:136 +msgid "Assigned Return Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:138 +msgid "Show the number of return orders which are assigned to you" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:149 +#: src/components/dashboard/widgets/GetStartedWidget.tsx:15 +#: src/defaults/links.tsx:38 +msgid "Getting Started" +msgstr "Guia de Introdução" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:150 +#: src/defaults/links.tsx:41 +msgid "Getting started with InvenTree" +msgstr "Primeiros passos com InvenTree" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:157 +#: src/components/dashboard/widgets/NewsWidget.tsx:123 +msgid "News Updates" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:158 +msgid "The latest news from InvenTree" +msgstr "" + +#: src/components/dashboard/widgets/ColorToggleWidget.tsx:18 +#: src/components/nav/MainMenu.tsx:77 +msgid "Change Color Mode" +msgstr "" + +#: src/components/dashboard/widgets/ColorToggleWidget.tsx:23 +msgid "Change the color mode of the user interface" +msgstr "" + +#: src/components/dashboard/widgets/LanguageSelectWidget.tsx:18 +msgid "Change Language" +msgstr "" + +#: src/components/dashboard/widgets/LanguageSelectWidget.tsx:23 +msgid "Change the language of the user interface" +msgstr "" + +#: src/components/dashboard/widgets/NewsWidget.tsx:61 +#: src/components/nav/NotificationDrawer.tsx:88 +#: src/pages/Notifications.tsx:73 +msgid "Mark as read" +msgstr "Marcar como lida" + +#: src/components/dashboard/widgets/NewsWidget.tsx:115 +msgid "Requires Superuser" +msgstr "" + +#: src/components/dashboard/widgets/NewsWidget.tsx:116 +msgid "This widget requires superuser permissions" +msgstr "" + +#: src/components/dashboard/widgets/NewsWidget.tsx:133 +msgid "No News" +msgstr "" + +#: src/components/dashboard/widgets/NewsWidget.tsx:134 +msgid "There are no unread news items" +msgstr "" + +#: src/components/details/Details.tsx:300 msgid "No name defined" msgstr "Nenhum nome definido" -#: src/components/details/DetailsImage.tsx:65 +#: src/components/details/DetailsImage.tsx:69 msgid "Remove Image" msgstr "Remover imagem" -#: src/components/details/DetailsImage.tsx:68 +#: src/components/details/DetailsImage.tsx:72 msgid "Remove the associated image from this item?" msgstr "Remover a imagem associada a este item?" -#: src/components/details/DetailsImage.tsx:71 -#: src/forms/StockForms.tsx:533 +#: src/components/details/DetailsImage.tsx:75 +#: src/forms/StockForms.tsx:651 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:199 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:306 -#: src/pages/stock/StockDetail.tsx:526 +#: src/pages/stock/StockDetail.tsx:690 msgid "Remove" msgstr "Eliminar" -#: src/components/details/DetailsImage.tsx:71 -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:158 -#: src/components/items/ActionDropdown.tsx:215 -#: src/components/items/ActionDropdown.tsx:216 -#: src/contexts/ThemeContext.tsx:43 +#: src/components/details/DetailsImage.tsx:75 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:184 +#: src/components/items/ActionDropdown.tsx:268 +#: src/components/items/ActionDropdown.tsx:269 +#: src/contexts/ThemeContext.tsx:45 #: src/hooks/UseForm.tsx:40 -#: src/tables/FilterSelectDrawer.tsx:205 -#: src/tables/build/BuildOutputTable.tsx:286 +#: src/tables/FilterSelectDrawer.tsx:241 +#: src/tables/RowActions.tsx:59 +#: src/tables/build/BuildOutputTable.tsx:434 msgid "Cancel" msgstr "Cancelar" -#: src/components/details/DetailsImage.tsx:97 +#: src/components/details/DetailsImage.tsx:101 msgid "Drag and drop to upload" msgstr "Arraste e solte para carregar ficheiro" -#: src/components/details/DetailsImage.tsx:100 +#: src/components/details/DetailsImage.tsx:104 msgid "Click to select file(s)" msgstr "Clique para selecionar o(s) arquivo(s)" -#: src/components/details/DetailsImage.tsx:226 +#: src/components/details/DetailsImage.tsx:230 msgid "Clear" msgstr "Apagar" -#: src/components/details/DetailsImage.tsx:232 -#: src/components/forms/ApiForm.tsx:627 -#: src/contexts/ThemeContext.tsx:43 -#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:60 +#: src/components/details/DetailsImage.tsx:236 +#: src/components/forms/ApiForm.tsx:660 +#: src/contexts/ThemeContext.tsx:45 msgid "Submit" msgstr "Enviar" -#: src/components/details/DetailsImage.tsx:272 +#: src/components/details/DetailsImage.tsx:280 msgid "Select from existing images" msgstr "Selecionar uma imagem existente" -#: src/components/details/DetailsImage.tsx:280 +#: src/components/details/DetailsImage.tsx:288 msgid "Select Image" msgstr "Selecionar Imagem" -#: src/components/details/DetailsImage.tsx:292 +#: src/components/details/DetailsImage.tsx:304 +msgid "Download remote image" +msgstr "" + +#: src/components/details/DetailsImage.tsx:319 msgid "Upload new image" msgstr "Carregar nova imagem" -#: src/components/details/DetailsImage.tsx:299 +#: src/components/details/DetailsImage.tsx:326 msgid "Upload Image" msgstr "Carregar Imagem" -#: src/components/details/DetailsImage.tsx:312 +#: src/components/details/DetailsImage.tsx:339 msgid "Delete image" msgstr "Eliminar imagem" +#: src/components/details/DetailsImage.tsx:373 +msgid "Download Image" +msgstr "" + +#: src/components/details/DetailsImage.tsx:378 +msgid "Image downloaded successfully" +msgstr "" + #: src/components/details/PartIcons.tsx:43 #~ msgid "Part is a template part (variants can be made from this part)" #~ msgstr "Part is a template part (variants can be made from this part)" @@ -235,36 +514,57 @@ msgstr "Eliminar imagem" #~ msgid "Part is virtual (not a physical part)" #~ msgstr "Part is virtual (not a physical part)" -#: src/components/editors/NotesEditor.tsx:66 +#: src/components/editors/NotesEditor.tsx:74 msgid "Image upload failed" msgstr "Falha no carregamento da imagem" -#: src/components/editors/NotesEditor.tsx:156 -#: src/components/forms/ApiForm.tsx:467 +#: src/components/editors/NotesEditor.tsx:83 +#: src/components/editors/NotesEditor.tsx:119 +#: src/components/forms/ApiForm.tsx:475 #: src/tables/bom/BomTable.tsx:441 msgid "Success" msgstr "Sucesso" -#: src/components/editors/NotesEditor.tsx:157 +#: src/components/editors/NotesEditor.tsx:84 +msgid "Image uploaded successfully" +msgstr "" + +#: src/components/editors/NotesEditor.tsx:120 msgid "Notes saved successfully" msgstr "Notas guardadas com sucesso" -#: src/components/editors/NotesEditor.tsx:166 +#: src/components/editors/NotesEditor.tsx:131 msgid "Failed to save notes" msgstr "Falha ao guardar notas" -#: src/components/editors/NotesEditor.tsx:198 -msgid "Preview Notes" -msgstr "Pré-visualizar notas" +#: src/components/editors/NotesEditor.tsx:134 +msgid "Error Saving Notes" +msgstr "" -#: src/components/editors/NotesEditor.tsx:198 -msgid "Edit Notes" -msgstr "Editar notas" +#: src/components/editors/NotesEditor.tsx:151 +#~ msgid "Disable Editing" +#~ msgstr "Disable Editing" -#: src/components/editors/NotesEditor.tsx:212 +#: src/components/editors/NotesEditor.tsx:154 msgid "Save Notes" msgstr "Gravar notas" +#: src/components/editors/NotesEditor.tsx:173 +msgid "Close Editor" +msgstr "" + +#: src/components/editors/NotesEditor.tsx:180 +msgid "Enable Editing" +msgstr "" + +#: src/components/editors/NotesEditor.tsx:198 +#~ msgid "Preview Notes" +#~ msgstr "Preview Notes" + +#: src/components/editors/NotesEditor.tsx:198 +#~ msgid "Edit Notes" +#~ msgstr "Edit Notes" + #: src/components/editors/TemplateEditor/CodeEditor/index.tsx:9 msgid "Code" msgstr "Código" @@ -281,41 +581,45 @@ msgstr "Pré-visualização não disponível, clique em \"Recarregar Pré-visual msgid "PDF Preview" msgstr "Pré-visualização de PDF" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:104 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:115 msgid "Error loading template" msgstr "Erro ao carregar modelo" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:116 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:127 msgid "Error saving template" msgstr "Erro a guardar o modelo" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:146 -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:274 -msgid "Save & Reload Preview" -msgstr "Guardar & Recarregar a pré-visualização" - -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:151 -msgid "Are you sure you want to Save & Reload the preview?" -msgstr "Tem certeza de que deseja Guardar & Recarregar a pré-visualização?" - #: src/components/editors/TemplateEditor/TemplateEditor.tsx:151 #~ msgid "Save & Reload preview?" #~ msgstr "Save & Reload preview?" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:153 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:155 +msgid "Could not load the template from the server." +msgstr "" + +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:172 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:303 +msgid "Save & Reload Preview" +msgstr "Guardar & Recarregar a pré-visualização" + +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:177 +msgid "Are you sure you want to Save & Reload the preview?" +msgstr "Tem certeza de que deseja Guardar & Recarregar a pré-visualização?" + +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:179 msgid "To render the preview the current template needs to be replaced on the server with your modifications which may break the label if it is under active use. Do you want to proceed?" msgstr "Para ver esta pré-visualização o modelo atual precisa ser substituído no servidor com as suas modificações, o que pode fazer com que \n" "o modelo atual deixe de funcionar. Deseja continuar?" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:157 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:183 msgid "Save & Reload" msgstr "Guardar & Recarregar" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:189 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:215 msgid "Preview updated" msgstr "Pré-visualização atualizada" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:190 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:216 msgid "The preview has been updated successfully." msgstr "A pré-visualização foi atualizada com sucesso." @@ -323,15 +627,15 @@ msgstr "A pré-visualização foi atualizada com sucesso." #~ msgid "Save & Reload preview" #~ msgstr "Save & Reload preview" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:266 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:295 msgid "Reload preview" msgstr "Atualizar pré-visualização" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:267 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:296 msgid "Use the currently stored template from the server" msgstr "Utilizar o modelo guardado atualmente no servidor" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:275 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:304 msgid "Save the current template and reload the preview" msgstr "Salvar o modelo atual e recarregar a visualização" @@ -339,11 +643,11 @@ msgstr "Salvar o modelo atual e recarregar a visualização" #~ msgid "to preview" #~ msgstr "to preview" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:333 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:365 msgid "Select instance to preview" msgstr "Selecionar instância para pré-visualização" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:377 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:409 msgid "Error rendering template" msgstr "Erro ao renderizar modelo" @@ -380,6 +684,7 @@ msgid "This page does not exist" msgstr "" #: src/components/errors/PermissionDenied.tsx:8 +#: src/functions/notifications.tsx:24 msgid "Permission Denied" msgstr "" @@ -395,8 +700,8 @@ msgstr "" msgid "A server error occurred" msgstr "" -#: src/components/forms/ApiForm.tsx:151 -#: src/components/forms/ApiForm.tsx:555 +#: src/components/forms/ApiForm.tsx:154 +#: src/components/forms/ApiForm.tsx:579 msgid "Form Error" msgstr "Erro de formulário" @@ -404,22 +709,22 @@ msgstr "Erro de formulário" #~ msgid "Form Errors Exist" #~ msgstr "Form Errors Exist" -#: src/components/forms/ApiForm.tsx:563 +#: src/components/forms/ApiForm.tsx:587 msgid "Errors exist for one or more form fields" msgstr "" -#: src/components/forms/ApiForm.tsx:665 -#: src/tables/plugin/PluginListTable.tsx:388 +#: src/components/forms/ApiForm.tsx:698 +#: src/tables/plugin/PluginListTable.tsx:195 msgid "Update" msgstr "Atualizar" -#: src/components/forms/ApiForm.tsx:685 -#: src/components/items/ActionDropdown.tsx:195 +#: src/components/forms/ApiForm.tsx:718 +#: src/components/items/ActionDropdown.tsx:248 #: src/hooks/UseForm.tsx:122 -#: src/pages/Index/Scan.tsx:343 +#: src/pages/Index/Scan.tsx:357 #: src/pages/Notifications.tsx:123 -#: src/tables/RowActions.tsx:43 -#: src/tables/plugin/PluginListTable.tsx:420 +#: src/tables/RowActions.tsx:49 +#: src/tables/plugin/PluginListTable.tsx:232 msgid "Delete" msgstr "Eliminar" @@ -429,14 +734,6 @@ msgstr "Eliminar" #~ msgid "Check your your input and try again." #~ msgstr "Check your your input and try again." -#: src/components/forms/AuthenticationForm.tsx:51 -msgid "Login successful" -msgstr "Inicio de sessão com sucesso" - -#: src/components/forms/AuthenticationForm.tsx:52 -msgid "Logged in successfully" -msgstr "Sessão iniciada com sucesso" - #: src/components/forms/AuthenticationForm.tsx:52 #~ msgid "Welcome back!" #~ msgstr "Welcome back!" @@ -445,14 +742,22 @@ msgstr "Sessão iniciada com sucesso" #~ msgid "Login successfull" #~ msgstr "Login successfull" -#: src/components/forms/AuthenticationForm.tsx:58 +#: src/components/forms/AuthenticationForm.tsx:55 +msgid "Login successful" +msgstr "Inicio de sessão com sucesso" + +#: src/components/forms/AuthenticationForm.tsx:56 +msgid "Logged in successfully" +msgstr "Sessão iniciada com sucesso" + +#: src/components/forms/AuthenticationForm.tsx:61 msgid "Login failed" msgstr "Não foi possível iniciar a sessão" -#: src/components/forms/AuthenticationForm.tsx:59 -#: src/components/forms/AuthenticationForm.tsx:76 -#: src/components/forms/AuthenticationForm.tsx:211 -#: src/functions/auth.tsx:164 +#: src/components/forms/AuthenticationForm.tsx:62 +#: src/components/forms/AuthenticationForm.tsx:79 +#: src/components/forms/AuthenticationForm.tsx:214 +#: src/functions/auth.tsx:175 msgid "Check your input and try again." msgstr "Verifique suas informações e tente novamente." @@ -461,45 +766,46 @@ msgstr "Verifique suas informações e tente novamente." #~ msgid "Mail delivery successfull" #~ msgstr "Mail delivery successfull" -#: src/components/forms/AuthenticationForm.tsx:70 -#: src/functions/auth.tsx:155 +#: src/components/forms/AuthenticationForm.tsx:73 +#: src/functions/auth.tsx:166 msgid "Mail delivery successful" msgstr "Envio bem sucedido" -#: src/components/forms/AuthenticationForm.tsx:71 +#: src/components/forms/AuthenticationForm.tsx:74 msgid "Check your inbox for the login link. If you have an account, you will receive a login link. Check in spam too." msgstr "Verifique na sua caixa de correio o link de login. Se tiver uma conta, irá receber um link de login. Verifique também a caixa de spam." -#: src/components/forms/AuthenticationForm.tsx:75 +#: src/components/forms/AuthenticationForm.tsx:78 msgid "Mail delivery failed" msgstr "Falha na entrega de e-mail" -#: src/components/forms/AuthenticationForm.tsx:95 +#: src/components/forms/AuthenticationForm.tsx:98 msgid "Or continue with other methods" msgstr "Ou continuar com outros métodos" -#: src/components/forms/AuthenticationForm.tsx:106 -#: src/components/forms/AuthenticationForm.tsx:227 +#: src/components/forms/AuthenticationForm.tsx:109 +#: src/components/forms/AuthenticationForm.tsx:230 +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:67 msgid "Username" msgstr "Nome de utilizador" -#: src/components/forms/AuthenticationForm.tsx:107 -#: src/components/forms/AuthenticationForm.tsx:228 +#: src/components/forms/AuthenticationForm.tsx:110 +#: src/components/forms/AuthenticationForm.tsx:231 msgid "Your username" msgstr "O seu nome de utilizador" -#: src/components/forms/AuthenticationForm.tsx:112 -#: src/components/forms/AuthenticationForm.tsx:240 -#: src/pages/Auth/Set-Password.tsx:106 +#: src/components/forms/AuthenticationForm.tsx:115 +#: src/components/forms/AuthenticationForm.tsx:243 +#: src/pages/Auth/Set-Password.tsx:101 msgid "Password" msgstr "Palavra-chave" -#: src/components/forms/AuthenticationForm.tsx:113 -#: src/components/forms/AuthenticationForm.tsx:241 +#: src/components/forms/AuthenticationForm.tsx:116 +#: src/components/forms/AuthenticationForm.tsx:244 msgid "Your password" msgstr "A sua palavra-passe" -#: src/components/forms/AuthenticationForm.tsx:125 +#: src/components/forms/AuthenticationForm.tsx:128 #: src/pages/Auth/Reset.tsx:26 msgid "Reset password" msgstr "Redefinir palavra-passe" @@ -508,77 +814,79 @@ msgstr "Redefinir palavra-passe" #~ msgid "Log in" #~ msgstr "Log in" -#: src/components/forms/AuthenticationForm.tsx:134 -#: src/components/forms/AuthenticationForm.tsx:233 +#: src/components/forms/AuthenticationForm.tsx:136 +#~ msgid "I will use username and password" +#~ msgstr "I will use username and password" + +#: src/components/forms/AuthenticationForm.tsx:137 +#: src/components/forms/AuthenticationForm.tsx:236 #: src/pages/Auth/Reset.tsx:31 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:51 msgid "Email" msgstr "E-mail" -#: src/components/forms/AuthenticationForm.tsx:135 +#: src/components/forms/AuthenticationForm.tsx:138 #: src/pages/Auth/Reset.tsx:32 -#: src/pages/Auth/Set-Password.tsx:107 +#: src/pages/Auth/Set-Password.tsx:102 msgid "We will send you a link to login - if you are registered" msgstr "Enviaremos um link para fazer o login - se você está registrado" -#: src/components/forms/AuthenticationForm.tsx:136 -#~ msgid "I will use username and password" -#~ msgstr "I will use username and password" - -#: src/components/forms/AuthenticationForm.tsx:151 +#: src/components/forms/AuthenticationForm.tsx:154 msgid "Send me an email" msgstr "Envie-me uma mensagem de correio electrónico" -#: src/components/forms/AuthenticationForm.tsx:153 +#: src/components/forms/AuthenticationForm.tsx:156 msgid "Use username and password" msgstr "Nome de usuário e senha" -#: src/components/forms/AuthenticationForm.tsx:162 +#: src/components/forms/AuthenticationForm.tsx:165 msgid "Log In" msgstr "Iniciar Sessão" -#: src/components/forms/AuthenticationForm.tsx:164 +#: src/components/forms/AuthenticationForm.tsx:167 +#: src/pages/Auth/Reset.tsx:41 +#: src/pages/Auth/Set-Password.tsx:107 msgid "Send Email" msgstr "Enviar e-mail" -#: src/components/forms/AuthenticationForm.tsx:193 +#: src/components/forms/AuthenticationForm.tsx:196 msgid "Registration successful" msgstr "Registo efectuado com sucesso" -#: src/components/forms/AuthenticationForm.tsx:194 +#: src/components/forms/AuthenticationForm.tsx:197 msgid "Please confirm your email address to complete the registration" msgstr "Por favor, confirme seu endereço de e-mail para concluir o registro" -#: src/components/forms/AuthenticationForm.tsx:210 +#: src/components/forms/AuthenticationForm.tsx:213 msgid "Input error" msgstr "Erro de entrada" -#: src/components/forms/AuthenticationForm.tsx:234 +#: src/components/forms/AuthenticationForm.tsx:237 msgid "This will be used for a confirmation" msgstr "Isto será usado para uma confirmação" -#: src/components/forms/AuthenticationForm.tsx:246 +#: src/components/forms/AuthenticationForm.tsx:249 msgid "Password repeat" msgstr "Repetir senha" -#: src/components/forms/AuthenticationForm.tsx:247 +#: src/components/forms/AuthenticationForm.tsx:250 msgid "Repeat password" msgstr "Repetir senha" -#: src/components/forms/AuthenticationForm.tsx:259 -#: src/components/forms/AuthenticationForm.tsx:304 +#: src/components/forms/AuthenticationForm.tsx:262 +#: src/components/forms/AuthenticationForm.tsx:307 msgid "Register" msgstr "Registar" -#: src/components/forms/AuthenticationForm.tsx:265 +#: src/components/forms/AuthenticationForm.tsx:268 msgid "Or use SSO" msgstr "Ou use SSO" -#: src/components/forms/AuthenticationForm.tsx:296 +#: src/components/forms/AuthenticationForm.tsx:299 msgid "Don't have an account?" msgstr "Não possui conta?\n" -#: src/components/forms/AuthenticationForm.tsx:315 +#: src/components/forms/AuthenticationForm.tsx:318 msgid "Go back to login" msgstr "Voltar para o Login" @@ -589,19 +897,20 @@ msgstr "Servidor" #: src/components/forms/HostOptionsForm.tsx:42 #: src/components/forms/HostOptionsForm.tsx:70 +#: src/components/plugins/PluginDrawer.tsx:69 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:410 +#: src/pages/Index/Settings/AdminCenter/UnitManagmentPanel.tsx:19 #: src/pages/part/CategoryDetail.tsx:81 -#: src/pages/part/PartDetail.tsx:143 -#: src/pages/stock/LocationDetail.tsx:89 -#: src/tables/machine/MachineTypeTable.tsx:65 -#: src/tables/machine/MachineTypeTable.tsx:109 -#: src/tables/machine/MachineTypeTable.tsx:216 -#: src/tables/machine/MachineTypeTable.tsx:319 +#: src/pages/part/PartDetail.tsx:164 +#: src/pages/stock/LocationDetail.tsx:83 +#: src/tables/machine/MachineTypeTable.tsx:70 +#: src/tables/machine/MachineTypeTable.tsx:119 +#: src/tables/machine/MachineTypeTable.tsx:237 +#: src/tables/machine/MachineTypeTable.tsx:340 #: src/tables/plugin/PluginErrorTable.tsx:33 -#: src/tables/plugin/PluginListTable.tsx:126 #: src/tables/purchasing/ManufacturerPartParameterTable.tsx:32 #: src/tables/settings/GroupTable.tsx:147 -#: src/tables/settings/PendingTasksTable.tsx:28 +#: src/tables/settings/PendingTasksTable.tsx:32 #: src/tables/stock/LocationTypesTable.tsx:69 msgid "Name" msgstr "Nome" @@ -651,7 +960,7 @@ msgid "Uncategorized" msgstr "" #: src/components/forms/fields/IconField.tsx:209 -#: src/components/nav/Layout.tsx:70 +#: src/components/nav/Layout.tsx:77 #: src/tables/part/PartThumbTable.tsx:192 msgid "Search..." msgstr "Pesquisa..." @@ -668,28 +977,27 @@ msgstr "" msgid "{0} icons" msgstr "" -#: src/components/forms/fields/RelatedModelField.tsx:318 -#: src/pages/Index/Settings/UserSettings.tsx:96 +#: src/components/forms/fields/RelatedModelField.tsx:319 +#: src/pages/Index/Settings/UserSettings.tsx:97 #: src/tables/Search.tsx:23 msgid "Search" msgstr "Buscar" -#: src/components/forms/fields/RelatedModelField.tsx:319 +#: src/components/forms/fields/RelatedModelField.tsx:320 #: src/components/modals/AboutInvenTreeModal.tsx:81 -#: src/components/widgets/WidgetLayout.tsx:120 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:316 msgid "Loading" msgstr "A carregar" -#: src/components/forms/fields/RelatedModelField.tsx:321 +#: src/components/forms/fields/RelatedModelField.tsx:322 msgid "No results found" msgstr "Nenhum resultado encontrado" -#: src/components/forms/fields/TableField.tsx:52 -msgid "modelRenderer entry required for tables" -msgstr "entrada do modelRenderer necessária para tabelas" +#: src/components/forms/fields/TableField.tsx:72 +#~ msgid "modelRenderer entry required for tables" +#~ msgstr "modelRenderer entry required for tables" -#: src/components/forms/fields/TableField.tsx:76 +#: src/components/forms/fields/TableField.tsx:167 msgid "No entries available" msgstr "Nenhuma entrada disponível" @@ -742,7 +1050,7 @@ msgid "Filter by row validation status" msgstr "" #: src/components/importer/ImportDataSelector.tsx:365 -#: src/tables/build/BuildOutputTable.tsx:266 +#: src/tables/build/BuildOutputTable.tsx:407 msgid "Complete" msgstr "Completo" @@ -750,20 +1058,21 @@ msgstr "Completo" msgid "Filter by row completion status" msgstr "" -#: src/components/importer/ImportDataSelector.tsx:383 +#: src/components/importer/ImportDataSelector.tsx:384 msgid "Import selected rows" msgstr "" -#: src/components/importer/ImportDataSelector.tsx:398 +#: src/components/importer/ImportDataSelector.tsx:399 msgid "Processing Data" msgstr "" -#: src/components/importer/ImporterColumnSelector.tsx:50 -#: src/components/importer/ImporterColumnSelector.tsx:176 +#: src/components/importer/ImporterColumnSelector.tsx:53 +#: src/components/importer/ImporterColumnSelector.tsx:179 +#: src/components/items/ErrorItem.tsx:12 msgid "An error occurred" msgstr "" -#: src/components/importer/ImporterColumnSelector.tsx:62 +#: src/components/importer/ImporterColumnSelector.tsx:65 msgid "Select column, or leave blank to ignore this field." msgstr "" @@ -779,51 +1088,51 @@ msgstr "" #~ msgid "Imported Column Name" #~ msgstr "Imported Column Name" -#: src/components/importer/ImporterColumnSelector.tsx:182 +#: src/components/importer/ImporterColumnSelector.tsx:185 msgid "Ignore this field" msgstr "" -#: src/components/importer/ImporterColumnSelector.tsx:196 +#: src/components/importer/ImporterColumnSelector.tsx:199 msgid "Mapping data columns to database fields" msgstr "" -#: src/components/importer/ImporterColumnSelector.tsx:201 +#: src/components/importer/ImporterColumnSelector.tsx:204 msgid "Accept Column Mapping" msgstr "" -#: src/components/importer/ImporterColumnSelector.tsx:214 +#: src/components/importer/ImporterColumnSelector.tsx:217 msgid "Database Field" msgstr "" -#: src/components/importer/ImporterColumnSelector.tsx:215 +#: src/components/importer/ImporterColumnSelector.tsx:218 msgid "Field Description" msgstr "" -#: src/components/importer/ImporterColumnSelector.tsx:216 +#: src/components/importer/ImporterColumnSelector.tsx:219 msgid "Imported Column" msgstr "" -#: src/components/importer/ImporterColumnSelector.tsx:217 +#: src/components/importer/ImporterColumnSelector.tsx:220 msgid "Default Value" msgstr "" -#: src/components/importer/ImporterDrawer.tsx:44 +#: src/components/importer/ImporterDrawer.tsx:46 msgid "Upload File" msgstr "" -#: src/components/importer/ImporterDrawer.tsx:45 +#: src/components/importer/ImporterDrawer.tsx:47 msgid "Map Columns" msgstr "" -#: src/components/importer/ImporterDrawer.tsx:46 +#: src/components/importer/ImporterDrawer.tsx:48 msgid "Import Data" msgstr "" -#: src/components/importer/ImporterDrawer.tsx:47 +#: src/components/importer/ImporterDrawer.tsx:49 msgid "Process Data" msgstr "" -#: src/components/importer/ImporterDrawer.tsx:48 +#: src/components/importer/ImporterDrawer.tsx:50 msgid "Complete Import" msgstr "" @@ -831,28 +1140,28 @@ msgstr "" #~ msgid "Cancel import session" #~ msgstr "Cancel import session" -#: src/components/importer/ImporterDrawer.tsx:104 +#: src/components/importer/ImporterDrawer.tsx:106 msgid "Import Complete" msgstr "" -#: src/components/importer/ImporterDrawer.tsx:107 +#: src/components/importer/ImporterDrawer.tsx:109 msgid "Data has been imported successfully" msgstr "" -#: src/components/importer/ImporterDrawer.tsx:109 -#: src/components/importer/ImporterDrawer.tsx:118 +#: src/components/importer/ImporterDrawer.tsx:111 +#: src/components/importer/ImporterDrawer.tsx:120 msgid "Close" msgstr "" -#: src/components/importer/ImporterDrawer.tsx:115 +#: src/components/importer/ImporterDrawer.tsx:117 msgid "Unknown Status" msgstr "" -#: src/components/importer/ImporterDrawer.tsx:116 +#: src/components/importer/ImporterDrawer.tsx:118 msgid "Import session has unknown status" msgstr "" -#: src/components/importer/ImporterDrawer.tsx:135 +#: src/components/importer/ImporterDrawer.tsx:137 msgid "Importing Data" msgstr "" @@ -861,85 +1170,115 @@ msgid "Importing Records" msgstr "" #: src/components/importer/ImporterImportProgress.tsx:39 -msgid "Imported rows" +#: src/tables/settings/ImportSessionTable.tsx:78 +msgid "Imported Rows" msgstr "" -#: src/components/items/ActionDropdown.tsx:121 +#: src/components/importer/ImporterImportProgress.tsx:39 +#~ msgid "Imported rows" +#~ msgstr "Imported rows" + +#: src/components/items/ActionDropdown.tsx:126 +msgid "Options" +msgstr "" + +#: src/components/items/ActionDropdown.tsx:140 +#~ msgid "View Barcode" +#~ msgstr "View Barcode" + +#: src/components/items/ActionDropdown.tsx:162 +#: src/tables/InvenTreeTableHeader.tsx:159 +#: src/tables/InvenTreeTableHeader.tsx:160 msgid "Barcode Actions" msgstr "Ações de código de barras" -#: src/components/items/ActionDropdown.tsx:140 -msgid "View Barcode" -msgstr "" +#: src/components/items/ActionDropdown.tsx:162 +#~ msgid "Link custom barcode" +#~ msgstr "Link custom barcode" -#: src/components/items/ActionDropdown.tsx:147 +#: src/components/items/ActionDropdown.tsx:167 msgid "View" msgstr "Visualizar" -#: src/components/items/ActionDropdown.tsx:148 +#: src/components/items/ActionDropdown.tsx:169 msgid "View barcode" msgstr "Ver código de barras" -#: src/components/items/ActionDropdown.tsx:161 +#: src/components/items/ActionDropdown.tsx:175 msgid "Link Barcode" msgstr "Atribuir Código de Barras" -#: src/components/items/ActionDropdown.tsx:162 -msgid "Link custom barcode" -msgstr "Vincular código de barras personalizado" +#: src/components/items/ActionDropdown.tsx:177 +msgid "Link a custom barcode to this item" +msgstr "" -#: src/components/items/ActionDropdown.tsx:173 -#: src/forms/PurchaseOrderForms.tsx:426 +#: src/components/items/ActionDropdown.tsx:183 +#: src/components/items/QRCode.tsx:193 +#: src/forms/PurchaseOrderForms.tsx:464 msgid "Unlink Barcode" msgstr "Desatribuir Código de Barras" -#: src/components/items/ActionDropdown.tsx:174 +#: src/components/items/ActionDropdown.tsx:185 msgid "Unlink custom barcode" msgstr "Desvincular código de barras personalizado" -#: src/components/items/ActionDropdown.tsx:183 -#: src/tables/RowActions.tsx:33 +#: src/components/items/ActionDropdown.tsx:236 +#: src/tables/RowActions.tsx:39 msgid "Edit" msgstr "Editar" -#: src/components/items/ActionDropdown.tsx:184 +#: src/components/items/ActionDropdown.tsx:237 msgid "Edit item" msgstr "" -#: src/components/items/ActionDropdown.tsx:196 +#: src/components/items/ActionDropdown.tsx:249 msgid "Delete item" msgstr "Apagar Item" -#: src/components/items/ActionDropdown.tsx:204 -#: src/components/items/ActionDropdown.tsx:205 +#: src/components/items/ActionDropdown.tsx:257 +#: src/components/items/ActionDropdown.tsx:258 msgid "Hold" msgstr "" -#: src/components/items/ActionDropdown.tsx:227 -#: src/tables/RowActions.tsx:23 +#: src/components/items/ActionDropdown.tsx:280 +#: src/tables/RowActions.tsx:29 msgid "Duplicate" msgstr "Duplicar" -#: src/components/items/ActionDropdown.tsx:228 +#: src/components/items/ActionDropdown.tsx:281 msgid "Duplicate item" msgstr "Duplicar item" +#: src/components/items/BarcodeInput.tsx:23 +msgid "Scan barcode data here using barcode scanner" +msgstr "" + +#: src/components/items/BarcodeInput.tsx:24 +#: src/tables/settings/BarcodeScanHistoryTable.tsx:65 +msgid "Barcode" +msgstr "" + +#: src/components/items/BarcodeInput.tsx:25 +msgid "Scan" +msgstr "" + #: src/components/items/DocTooltip.tsx:92 +#: src/components/items/GettingStartedCarousel.tsx:20 msgid "Read More" msgstr "Mais informações" -#: src/components/items/ErrorItem.tsx:5 -#: src/tables/InvenTreeTable.tsx:487 +#: src/components/items/ErrorItem.tsx:8 +#: src/tables/InvenTreeTable.tsx:473 msgid "Unknown error" msgstr "Erro desconhecido" -#: src/components/items/ErrorItem.tsx:10 -msgid "An error occurred:" -msgstr "Ocorreu um erro:" +#: src/components/items/ErrorItem.tsx:13 +#~ msgid "An error occurred:" +#~ msgstr "An error occurred:" #: src/components/items/GettingStartedCarousel.tsx:27 -msgid "Read more" -msgstr "Saber mais" +#~ msgid "Read more" +#~ msgstr "Read more" #: src/components/items/InfoItem.tsx:27 msgid "None" @@ -966,30 +1305,51 @@ msgstr "PLH" msgid "This panel is a placeholder." msgstr "Este painel é um espaço reservado." -#: src/components/items/QRCode.tsx:87 +#: src/components/items/QRCode.tsx:89 msgid "Low (7%)" msgstr "" -#: src/components/items/QRCode.tsx:88 +#: src/components/items/QRCode.tsx:90 msgid "Medium (15%)" msgstr "" -#: src/components/items/QRCode.tsx:89 +#: src/components/items/QRCode.tsx:91 msgid "Quartile (25%)" msgstr "" -#: src/components/items/QRCode.tsx:90 +#: src/components/items/QRCode.tsx:92 msgid "High (30%)" msgstr "" -#: src/components/items/QRCode.tsx:107 -msgid "Barcode Data:" +#: src/components/items/QRCode.tsx:100 +msgid "Custom barcode" +msgstr "" + +#: src/components/items/QRCode.tsx:101 +msgid "A custom barcode is registered for this item. The shown code is not that custom barcode." msgstr "" #: src/components/items/QRCode.tsx:118 +msgid "Barcode Data:" +msgstr "" + +#: src/components/items/QRCode.tsx:129 msgid "Select Error Correction Level" msgstr "" +#: src/components/items/QRCode.tsx:171 +#: src/pages/part/PartDetail.tsx:239 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:187 +#: src/pages/sales/ReturnOrderDetail.tsx:157 +#: src/pages/sales/SalesOrderDetail.tsx:169 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:166 +msgid "Link" +msgstr "Ligação" + +#: src/components/items/QRCode.tsx:190 +msgid "This will remove the link to the associated barcode" +msgstr "" + #: src/components/modals/AboutInvenTreeModal.tsx:99 msgid "Version Information" msgstr "Informação da versão" @@ -1063,11 +1423,11 @@ msgstr "Aplicação móvel" msgid "Submit Bug Report" msgstr "Submeter Relatório de Erro" -#: src/components/modals/AboutInvenTreeModal.tsx:183 +#: src/components/modals/AboutInvenTreeModal.tsx:181 msgid "Copy version information" msgstr "Copiar informação da versão" -#: src/components/modals/AboutInvenTreeModal.tsx:192 +#: src/components/modals/AboutInvenTreeModal.tsx:189 #: src/components/modals/ServerInfoModal.tsx:147 msgid "Dismiss" msgstr "Dispensar" @@ -1092,61 +1452,20 @@ msgstr "Falha ao buscar informações da licença" msgid "{key} Packages" msgstr "{key} Pacotes" -#: src/components/modals/QrCodeModal.tsx:72 +#: src/components/modals/QrCodeModal.tsx:24 msgid "Unknown response" msgstr "Resposta desconhecida" -#: src/components/modals/QrCodeModal.tsx:102 -#: src/pages/Index/Scan.tsx:636 -msgid "Error while getting camera" -msgstr "Erro ao carregar a câmera" - -#: src/components/modals/QrCodeModal.tsx:125 -#: src/pages/Index/Scan.tsx:659 -msgid "Error while scanning" -msgstr "Erro ao digitalizar" - -#: src/components/modals/QrCodeModal.tsx:139 -#: src/pages/Index/Scan.tsx:673 -msgid "Error while stopping" -msgstr "Erro ao parar" - -#: src/components/modals/QrCodeModal.tsx:154 -#: src/defaults/menuItems.tsx:21 -#: src/pages/Index/Scan.tsx:746 -msgid "Scanning" -msgstr "Digitalizar" - -#: src/components/modals/QrCodeModal.tsx:154 -#: src/pages/Index/Scan.tsx:746 -msgid "Not scanning" -msgstr "Não digitalizar" - -#: src/components/modals/QrCodeModal.tsx:159 -#: src/pages/Index/Scan.tsx:752 -msgid "Select Camera" -msgstr "Selecionar câmara" - -#: src/components/modals/QrCodeModal.tsx:169 -#: src/pages/Index/Scan.tsx:737 -msgid "Start scanning" -msgstr "Iniciar a digitalização" - -#: src/components/modals/QrCodeModal.tsx:176 -#: src/pages/Index/Scan.tsx:729 -msgid "Stop scanning" -msgstr "Parar a digitalização" - -#: src/components/modals/QrCodeModal.tsx:181 +#: src/components/modals/QrCodeModal.tsx:39 msgid "No scans yet!" msgstr "Ainda não há digitalizações!" -#: src/components/modals/QrCodeModal.tsx:201 +#: src/components/modals/QrCodeModal.tsx:57 msgid "Close modal" msgstr "Fechar diálogo" #: src/components/modals/ServerInfoModal.tsx:26 -#: src/pages/Index/Settings/SystemSettings.tsx:38 +#: src/pages/Index/Settings/SystemSettings.tsx:37 msgid "Server" msgstr "Servidor" @@ -1207,6 +1526,7 @@ msgid "Background Worker" msgstr "Trabalhador em segundo plano" #: src/components/modals/ServerInfoModal.tsx:101 +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:29 msgid "Background worker not running" msgstr "Trabalhador de fundo não está em execução" @@ -1219,8 +1539,8 @@ msgid "Email settings not configured" msgstr "Configurações de e-mail não configuradas" #: src/components/modals/ServerInfoModal.tsx:121 -#: src/tables/plugin/PluginListTable.tsx:144 -#: src/tables/plugin/PluginListTable.tsx:294 +#: src/components/plugins/PluginDrawer.tsx:89 +#: src/tables/plugin/PluginListTable.tsx:116 msgid "Version" msgstr "Versão" @@ -1228,7 +1548,7 @@ msgstr "Versão" msgid "Server Version" msgstr "Versão do Servidor" -#: src/components/nav/Layout.tsx:73 +#: src/components/nav/Layout.tsx:80 msgid "Nothing found..." msgstr "Nada encontrado..." @@ -1238,18 +1558,26 @@ msgstr "Nada encontrado..." #~ msgstr "Profile" #: src/components/nav/MainMenu.tsx:52 +#: src/components/nav/NavigationDrawer.tsx:178 #: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:28 msgid "Settings" msgstr "Configurações" +#: src/components/nav/MainMenu.tsx:59 +#: src/pages/Index/Settings/UserSettings.tsx:152 +msgid "Account Settings" +msgstr "Definições da Conta" + #: src/components/nav/MainMenu.tsx:59 #: src/defaults/menuItems.tsx:15 -msgid "Account settings" -msgstr "Configurações da conta" +#~ msgid "Account settings" +#~ msgstr "Account settings" #: src/components/nav/MainMenu.tsx:67 -#: src/defaults/menuItems.tsx:58 -#: src/pages/Index/Settings/SystemSettings.tsx:315 +#: src/components/nav/NavigationDrawer.tsx:141 +#: src/components/nav/SettingsHeader.tsx:49 +#: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:37 +#: src/pages/Index/Settings/SystemSettings.tsx:310 msgid "System Settings" msgstr "Definições de Sistema" @@ -1261,14 +1589,11 @@ msgstr "Definições de Sistema" #~ msgid "Switch to pseudo language" #~ msgstr "Switch to pseudo language" -#: src/components/nav/MainMenu.tsx:77 -msgid "Change Color Mode" -msgstr "" - #: src/components/nav/MainMenu.tsx:86 -#: src/defaults/actions.tsx:71 -#: src/defaults/menuItems.tsx:63 -#: src/pages/Index/Settings/AdminCenter/Index.tsx:221 +#: src/components/nav/NavigationDrawer.tsx:148 +#: src/components/nav/SettingsHeader.tsx:50 +#: src/defaults/actions.tsx:63 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:251 msgid "Admin Center" msgstr "Centro de Administração" @@ -1276,458 +1601,732 @@ msgstr "Centro de Administração" msgid "Logout" msgstr "Encerrar sessão" -#: src/components/nav/NavHoverMenu.tsx:65 -#: src/defaults/actions.tsx:60 -msgid "Open Navigation" -msgstr "Abrir a navegação" - #: src/components/nav/NavHoverMenu.tsx:84 -msgid "View all" -msgstr "Ver tudo" +#~ msgid "View all" +#~ msgstr "View all" #: src/components/nav/NavHoverMenu.tsx:100 #: src/components/nav/NavHoverMenu.tsx:110 -msgid "Get started" -msgstr "Introdução" +#~ msgid "Get started" +#~ msgstr "Get started" #: src/components/nav/NavHoverMenu.tsx:103 -msgid "Overview over high-level objects, functions and possible usecases." -msgstr "Visão geral sobre objetos de alto nível, funções e possíveis usos." - -#: src/components/nav/NavigationDrawer.tsx:57 -msgid "Navigation" -msgstr "Navegação" +#~ msgid "Overview over high-level objects, functions and possible usecases." +#~ msgstr "Overview over high-level objects, functions and possible usecases." #: src/components/nav/NavigationDrawer.tsx:60 -msgid "Pages" -msgstr "Páginas" +#~ msgid "Pages" +#~ msgstr "Pages" -#: src/components/nav/NavigationDrawer.tsx:65 -#: src/pages/Index/Settings/AdminCenter/Index.tsx:176 -#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:41 -msgid "Plugins" -msgstr "Extensões" +#: src/components/nav/NavigationDrawer.tsx:77 +#: src/components/render/ModelType.tsx:31 +#: src/defaults/links.tsx:10 +#: src/pages/Index/Settings/SystemSettings.tsx:172 +#: src/pages/part/CategoryDetail.tsx:125 +#: src/pages/part/CategoryDetail.tsx:249 +#: src/pages/part/CategoryDetail.tsx:279 +#: src/pages/part/PartDetail.tsx:856 +msgid "Parts" +msgstr "Peças" -#: src/components/nav/NavigationDrawer.tsx:75 -#: src/defaults/actions.tsx:32 -msgid "Documentation" -msgstr "Documentação" +#: src/components/nav/NavigationDrawer.tsx:84 +#: src/components/render/Part.tsx:30 +#: src/defaults/links.tsx:11 +#: src/pages/Index/Settings/SystemSettings.tsx:205 +#: src/pages/part/PartDetail.tsx:593 +#: src/pages/stock/LocationDetail.tsx:352 +#: src/pages/stock/StockDetail.tsx:528 +#: src/tables/stock/StockItemTable.tsx:69 +msgid "Stock" +msgstr "Estoque" -#: src/components/nav/NavigationDrawer.tsx:78 -msgid "About" -msgstr "Sobre" +#: src/components/nav/NavigationDrawer.tsx:91 +#: src/defaults/links.tsx:13 +#: src/pages/build/BuildDetail.tsx:530 +#: src/pages/build/BuildIndex.tsx:36 +msgid "Manufacturing" +msgstr "" -#: src/components/nav/NotificationDrawer.tsx:92 -#: src/pages/Index/Settings/SystemSettings.tsx:109 -#: src/pages/Index/Settings/UserSettings.tsx:126 +#: src/components/nav/NavigationDrawer.tsx:98 +#: src/defaults/links.tsx:18 +#: src/pages/company/ManufacturerDetail.tsx:9 +#: src/pages/company/ManufacturerPartDetail.tsx:258 +#: src/pages/company/SupplierDetail.tsx:9 +#: src/pages/company/SupplierPartDetail.tsx:336 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:480 +#: src/pages/purchasing/PurchasingIndex.tsx:60 +msgid "Purchasing" +msgstr "Comprando" + +#: src/components/nav/NavigationDrawer.tsx:105 +#: src/defaults/links.tsx:22 +#: src/pages/company/CustomerDetail.tsx:9 +#: src/pages/sales/ReturnOrderDetail.tsx:469 +#: src/pages/sales/SalesIndex.tsx:53 +#: src/pages/sales/SalesOrderDetail.tsx:520 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:343 +msgid "Sales" +msgstr "Vendas" + +#: src/components/nav/NavigationDrawer.tsx:129 +#: src/components/nav/NotificationDrawer.tsx:178 +#: src/pages/Index/Settings/SystemSettings.tsx:110 +#: src/pages/Index/Settings/UserSettings.tsx:127 #: src/pages/Notifications.tsx:65 #: src/pages/Notifications.tsx:151 msgid "Notifications" msgstr "Notificações" -#: src/components/nav/NotificationDrawer.tsx:94 +#: src/components/nav/NavigationDrawer.tsx:135 +#: src/components/nav/SettingsHeader.tsx:48 +msgid "User Settings" +msgstr "" + +#: src/components/nav/NavigationDrawer.tsx:173 +msgid "Navigation" +msgstr "Navegação" + +#: src/components/nav/NavigationDrawer.tsx:183 +#: src/forms/PurchaseOrderForms.tsx:689 +#: src/forms/StockForms.tsx:614 +#: src/forms/StockForms.tsx:651 +#: src/forms/StockForms.tsx:677 +#: src/forms/StockForms.tsx:705 +#: src/forms/StockForms.tsx:736 +#: src/forms/StockForms.tsx:771 +#: src/forms/StockForms.tsx:813 +#: src/forms/StockForms.tsx:851 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:413 +#: src/tables/RowActions.tsx:129 +#: src/tables/build/BuildLineTable.tsx:101 +msgid "Actions" +msgstr "Ações" + +#: src/components/nav/NavigationDrawer.tsx:191 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:205 +#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:44 +msgid "Plugins" +msgstr "Extensões" + +#: src/components/nav/NavigationDrawer.tsx:204 +#: src/defaults/actions.tsx:24 +msgid "Documentation" +msgstr "Documentação" + +#: src/components/nav/NavigationDrawer.tsx:210 +msgid "About" +msgstr "Sobre" + +#: src/components/nav/NotificationDrawer.tsx:180 msgid "Mark all as read" msgstr "" -#: src/components/nav/NotificationDrawer.tsx:104 +#: src/components/nav/NotificationDrawer.tsx:190 msgid "View all notifications" msgstr "" -#: src/components/nav/NotificationDrawer.tsx:123 +#: src/components/nav/NotificationDrawer.tsx:210 msgid "You have no unread notifications." msgstr "Não tem novas notificações" -#: src/components/nav/NotificationDrawer.tsx:139 -#: src/components/nav/NotificationDrawer.tsx:145 -#: src/tables/notifications/NotificationsTable.tsx:36 -msgid "Notification" -msgstr "Notificação" - -#: src/components/nav/NotificationDrawer.tsx:168 -#: src/pages/Notifications.tsx:73 -msgid "Mark as read" -msgstr "Marcar como lida" - -#: src/components/nav/SearchDrawer.tsx:78 +#: src/components/nav/SearchDrawer.tsx:85 msgid "results" msgstr "resultados" -#: src/components/nav/SearchDrawer.tsx:370 +#: src/components/nav/SearchDrawer.tsx:380 msgid "Enter search text" msgstr "Introduzir texto de pesquisa" -#: src/components/nav/SearchDrawer.tsx:397 +#: src/components/nav/SearchDrawer.tsx:391 +msgid "Refresh search results" +msgstr "" + +#: src/components/nav/SearchDrawer.tsx:402 +#: src/components/nav/SearchDrawer.tsx:409 msgid "Search Options" msgstr "Opções de Pesquisa" -#: src/components/nav/SearchDrawer.tsx:400 +#: src/components/nav/SearchDrawer.tsx:412 msgid "Regex search" msgstr "Busca por Regex" -#: src/components/nav/SearchDrawer.tsx:410 +#: src/components/nav/SearchDrawer.tsx:421 msgid "Whole word search" msgstr "Pesquisar palavras inteiras" -#: src/components/nav/SearchDrawer.tsx:451 +#: src/components/nav/SearchDrawer.tsx:461 msgid "An error occurred during search query" msgstr "Ocorreu um erro durante a busca" #: src/components/nav/SearchDrawer.tsx:462 -msgid "No results" -msgstr "Sem resultados" +#~ msgid "No results" +#~ msgstr "No results" -#: src/components/nav/SearchDrawer.tsx:465 +#: src/components/nav/SearchDrawer.tsx:472 +#: src/tables/part/PartTestTemplateTable.tsx:76 +msgid "No Results" +msgstr "Sem Resultados" + +#: src/components/nav/SearchDrawer.tsx:475 msgid "No results available for search query" msgstr "Não há resultados disponíveis para a pesquisa" -#: src/components/render/Instance.tsx:217 +#: src/components/panels/AttachmentPanel.tsx:18 +msgid "Attachments" +msgstr "Anexos" + +#: src/components/panels/NotesPanel.tsx:24 +#: src/tables/build/BuildOrderTestTable.tsx:143 +#: src/tables/stock/StockTrackingTable.tsx:204 +msgid "Notes" +msgstr "Anotações" + +#: src/components/plugins/PluginDrawer.tsx:47 +msgid "Plugin Inactive" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:50 +msgid "Plugin is not active" +msgstr "A Extensão não está ativa" + +#: src/components/plugins/PluginDrawer.tsx:60 +msgid "Plugin Information" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:74 +#: src/pages/build/BuildDetail.tsx:116 +#: src/pages/company/CompanyDetail.tsx:89 +#: src/pages/company/ManufacturerPartDetail.tsx:89 +#: src/pages/company/ManufacturerPartDetail.tsx:116 +#: src/pages/company/SupplierPartDetail.tsx:140 +#: src/pages/part/CategoryDetail.tsx:101 +#: src/pages/part/PartDetail.tsx:178 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:136 +#: src/pages/sales/ReturnOrderDetail.tsx:107 +#: src/pages/sales/SalesOrderDetail.tsx:116 +#: src/pages/stock/LocationDetail.tsx:103 +#: src/tables/ColumnRenderers.tsx:92 +#: src/tables/bom/UsedInTable.tsx:44 +#: src/tables/build/BuildAllocatedStockTable.tsx:83 +#: src/tables/build/BuildLineTable.tsx:329 +#: src/tables/machine/MachineTypeTable.tsx:74 +#: src/tables/machine/MachineTypeTable.tsx:129 +#: src/tables/machine/MachineTypeTable.tsx:240 +#: src/tables/machine/MachineTypeTable.tsx:344 +#: src/tables/part/RelatedPartTable.tsx:66 +#: src/tables/plugin/PluginListTable.tsx:99 +#: src/tables/sales/SalesOrderAllocationTable.tsx:87 +#: src/tables/sales/SalesOrderLineItemTable.tsx:75 +#: src/tables/stock/LocationTypesTable.tsx:74 +msgid "Description" +msgstr "Descrição" + +#: src/components/plugins/PluginDrawer.tsx:79 +msgid "Author" +msgstr "Autor" + +#: src/components/plugins/PluginDrawer.tsx:84 +#: src/pages/part/PartSchedulingDetail.tsx:277 +#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:40 +#: src/pages/part/pricing/SaleHistoryPanel.tsx:38 +#: src/tables/ColumnRenderers.tsx:215 +#: src/tables/build/BuildOrderTestTable.tsx:151 +#: src/tables/settings/StocktakeReportTable.tsx:40 +msgid "Date" +msgstr "Data" + +#: src/components/plugins/PluginDrawer.tsx:94 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:398 +#: src/pages/part/PartDetail.tsx:331 +#: src/tables/bom/UsedInTable.tsx:84 +#: src/tables/company/CompanyTable.tsx:62 +#: src/tables/company/CompanyTable.tsx:96 +#: src/tables/machine/MachineListTable.tsx:333 +#: src/tables/machine/MachineListTable.tsx:605 +#: src/tables/part/ParametricPartTable.tsx:223 +#: src/tables/part/PartTable.tsx:178 +#: src/tables/part/PartVariantTable.tsx:15 +#: src/tables/plugin/PluginListTable.tsx:94 +#: src/tables/plugin/PluginListTable.tsx:401 +#: src/tables/purchasing/SupplierPartTable.tsx:100 +#: src/tables/purchasing/SupplierPartTable.tsx:190 +#: src/tables/settings/UserTable.tsx:283 +#: src/tables/stock/StockItemTable.tsx:293 +msgid "Active" +msgstr "Ativo" + +#: src/components/plugins/PluginDrawer.tsx:106 +msgid "Package Name" +msgstr "Nome do Pacote" + +#: src/components/plugins/PluginDrawer.tsx:112 +msgid "Installation Path" +msgstr "Caminho de Instalação" + +#: src/components/plugins/PluginDrawer.tsx:117 +#: src/tables/machine/MachineTypeTable.tsx:152 +#: src/tables/machine/MachineTypeTable.tsx:276 +#: src/tables/plugin/PluginListTable.tsx:406 +msgid "Builtin" +msgstr "Embutido" + +#: src/components/plugins/PluginDrawer.tsx:122 +msgid "Package" +msgstr "Pacote" + +#: src/components/plugins/PluginDrawer.tsx:134 +#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:53 +msgid "Plugin Settings" +msgstr "Configurações da Extensão" + +#: src/components/plugins/PluginDrawer.tsx:146 +#: src/components/render/ModelType.tsx:276 +msgid "Plugin Configuration" +msgstr "Configuração de Extensão" + +#: src/components/plugins/PluginPanel.tsx:87 +#~ msgid "Error occurred while rendering plugin content" +#~ msgstr "Error occurred while rendering plugin content" + +#: src/components/plugins/PluginPanel.tsx:91 +#~ msgid "Plugin did not provide panel rendering function" +#~ msgstr "Plugin did not provide panel rendering function" + +#: src/components/plugins/PluginPanel.tsx:103 +#~ msgid "No content provided for this plugin" +#~ msgstr "No content provided for this plugin" + +#: src/components/plugins/PluginPanel.tsx:116 +#: src/components/plugins/PluginSettingsPanel.tsx:76 +#~ msgid "Error Loading Plugin" +#~ msgstr "Error Loading Plugin" + +#: src/components/plugins/PluginSettingsPanel.tsx:51 +#~ msgid "Error occurred while rendering plugin settings" +#~ msgstr "Error occurred while rendering plugin settings" + +#: src/components/plugins/PluginSettingsPanel.tsx:55 +#~ msgid "Plugin did not provide settings rendering function" +#~ msgstr "Plugin did not provide settings rendering function" + +#: src/components/plugins/PluginUIFeature.tsx:100 +msgid "Error occurred while rendering the template editor." +msgstr "" + +#: src/components/plugins/PluginUIFeature.tsx:111 +msgid "Error Loading Plugin Editor" +msgstr "" + +#: src/components/plugins/PluginUIFeature.tsx:147 +msgid "Error occurred while rendering the template preview." +msgstr "" + +#: src/components/plugins/PluginUIFeature.tsx:158 +msgid "Error Loading Plugin Preview" +msgstr "" + +#: src/components/plugins/RemoteComponent.tsx:70 +msgid "Invalid source or function name" +msgstr "" + +#: src/components/plugins/RemoteComponent.tsx:91 +msgid "Error Loading Content" +msgstr "" + +#: src/components/plugins/RemoteComponent.tsx:95 +msgid "Error occurred while loading plugin content" +msgstr "" + +#: src/components/render/Instance.tsx:224 msgid "Unknown model: {model}" msgstr "Modelo desconhecido: {model}" -#: src/components/render/ModelType.tsx:22 -#: src/forms/BuildForms.tsx:213 -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/forms/StockForms.tsx:499 -#: src/forms/StockForms.tsx:533 -#: src/forms/StockForms.tsx:562 -#: src/forms/StockForms.tsx:590 -#: src/forms/StockForms.tsx:621 -#: src/forms/StockForms.tsx:656 -#: src/forms/StockForms.tsx:698 -#: src/forms/StockForms.tsx:734 -#: src/pages/build/BuildDetail.tsx:95 -#: src/pages/part/PartDetail.tsx:1073 -#: src/tables/build/BuildAllocatedStockTable.tsx:82 +#: src/components/render/ModelType.tsx:30 +#: src/forms/BuildForms.tsx:269 +#: src/forms/BuildForms.tsx:337 +#: src/forms/BuildForms.tsx:385 +#: src/forms/BuildForms.tsx:515 +#: src/forms/PurchaseOrderForms.tsx:689 +#: src/forms/ReturnOrderForms.tsx:190 +#: src/forms/SalesOrderForms.tsx:248 +#: src/forms/StockForms.tsx:261 +#: src/forms/StockForms.tsx:614 +#: src/forms/StockForms.tsx:651 +#: src/forms/StockForms.tsx:677 +#: src/forms/StockForms.tsx:705 +#: src/forms/StockForms.tsx:736 +#: src/forms/StockForms.tsx:771 +#: src/forms/StockForms.tsx:813 +#: src/forms/StockForms.tsx:851 +#: src/pages/build/BuildDetail.tsx:90 +#: src/pages/part/PartDetail.tsx:1094 +#: src/tables/build/BuildAllocatedStockTable.tsx:95 +#: src/tables/build/BuildLineTable.tsx:72 #: src/tables/part/PartTable.tsx:28 -#: src/tables/part/RelatedPartTable.tsx:45 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:88 -#: src/tables/sales/SalesOrderAllocationTable.tsx:68 -#: src/tables/stock/StockTrackingTable.tsx:74 +#: src/tables/part/RelatedPartTable.tsx:47 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:130 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:100 +#: src/tables/sales/SalesOrderAllocationTable.tsx:99 +#: src/tables/stock/StockTrackingTable.tsx:78 msgid "Part" msgstr "Peça" -#: src/components/render/ModelType.tsx:23 -#: src/defaults/links.tsx:29 -#: src/defaults/menuItems.tsx:33 -#: src/pages/Index/Settings/SystemSettings.tsx:173 -#: src/pages/part/CategoryDetail.tsx:119 -#: src/pages/part/CategoryDetail.tsx:244 -#: src/pages/part/CategoryDetail.tsx:274 -#: src/pages/part/PartDetail.tsx:827 -msgid "Parts" -msgstr "Peças" - -#: src/components/render/ModelType.tsx:31 +#: src/components/render/ModelType.tsx:40 msgid "Part Parameter Template" msgstr "Modelo de Parâmetro da Peça" -#: src/components/render/ModelType.tsx:32 +#: src/components/render/ModelType.tsx:41 msgid "Part Parameter Templates" msgstr "Modelos de Parâmetro da Peça" -#: src/components/render/ModelType.tsx:38 +#: src/components/render/ModelType.tsx:48 msgid "Part Test Template" msgstr "Modelos de Teste da Peça" -#: src/components/render/ModelType.tsx:39 +#: src/components/render/ModelType.tsx:49 msgid "Part Test Templates" msgstr "Modelos de Teste da Peça" -#: src/components/render/ModelType.tsx:45 -#: src/pages/company/SupplierPartDetail.tsx:203 -#: src/pages/company/SupplierPartDetail.tsx:375 -#: src/pages/stock/StockDetail.tsx:173 -#: src/tables/build/BuildAllocatedStockTable.tsx:131 +#: src/components/render/ModelType.tsx:56 +#: src/pages/company/SupplierPartDetail.tsx:364 +#: src/pages/stock/StockDetail.tsx:194 +#: src/tables/build/BuildAllocatedStockTable.tsx:152 #: src/tables/part/PartPurchaseOrdersTable.tsx:49 -#: src/tables/purchasing/SupplierPartTable.tsx:68 +#: src/tables/purchasing/SupplierPartTable.tsx:70 +#: src/tables/stock/StockItemTable.tsx:229 msgid "Supplier Part" msgstr "Fornecedor da Peça" -#: src/components/render/ModelType.tsx:46 +#: src/components/render/ModelType.tsx:57 msgid "Supplier Parts" msgstr "Peças de fornecedor" -#: src/components/render/ModelType.tsx:54 -#: src/pages/company/ManufacturerPartDetail.tsx:132 +#: src/components/render/ModelType.tsx:66 #: src/tables/part/PartPurchaseOrdersTable.tsx:55 +#: src/tables/stock/StockItemTable.tsx:234 msgid "Manufacturer Part" msgstr "Fabricante da peça" -#: src/components/render/ModelType.tsx:55 +#: src/components/render/ModelType.tsx:67 msgid "Manufacturer Parts" msgstr "Peças do fabricante" -#: src/components/render/ModelType.tsx:63 -#: src/pages/part/CategoryDetail.tsx:305 +#: src/components/render/ModelType.tsx:76 +#: src/pages/part/CategoryDetail.tsx:310 msgid "Part Category" msgstr "Categoria da peça" -#: src/components/render/ModelType.tsx:64 -#: src/pages/part/CategoryDetail.tsx:258 -#: src/pages/part/CategoryDetail.tsx:296 -#: src/pages/part/PartDetail.tsx:1063 +#: src/components/render/ModelType.tsx:77 +#: src/pages/part/CategoryDetail.tsx:263 +#: src/pages/part/CategoryDetail.tsx:301 +#: src/pages/part/PartDetail.tsx:1084 msgid "Part Categories" msgstr "Categorias da Peça" -#: src/components/render/ModelType.tsx:72 -#: src/pages/stock/StockDetail.tsx:624 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:94 -#: src/tables/stock/StockTrackingTable.tsx:45 +#: src/components/render/ModelType.tsx:86 +#: src/forms/BuildForms.tsx:337 +#: src/forms/BuildForms.tsx:385 +#: src/forms/BuildForms.tsx:515 +#: src/forms/SalesOrderForms.tsx:248 +#: src/pages/stock/StockDetail.tsx:839 +#: src/tables/stock/StockTrackingTable.tsx:49 msgid "Stock Item" msgstr "Item de Estoque" -#: src/components/render/ModelType.tsx:73 +#: src/components/render/ModelType.tsx:87 #: src/pages/company/CompanyDetail.tsx:203 -#: src/pages/stock/LocationDetail.tsx:128 -#: src/pages/stock/LocationDetail.tsx:181 -#: src/pages/stock/LocationDetail.tsx:395 +#: src/pages/part/PartStocktakeDetail.tsx:113 +#: src/pages/stock/LocationDetail.tsx:122 +#: src/pages/stock/LocationDetail.tsx:175 +#: src/pages/stock/LocationDetail.tsx:380 msgid "Stock Items" msgstr "Itens de Estoque" -#: src/components/render/ModelType.tsx:81 +#: src/components/render/ModelType.tsx:96 msgid "Stock Location" msgstr "Localização de Stock" -#: src/components/render/ModelType.tsx:82 -#: src/pages/stock/LocationDetail.tsx:195 -#: src/pages/stock/LocationDetail.tsx:387 -#: src/pages/stock/StockDetail.tsx:616 +#: src/components/render/ModelType.tsx:97 +#: src/pages/stock/LocationDetail.tsx:189 +#: src/pages/stock/LocationDetail.tsx:372 +#: src/pages/stock/StockDetail.tsx:831 msgid "Stock Locations" msgstr "Localizações de Stock" -#: src/components/render/ModelType.tsx:90 +#: src/components/render/ModelType.tsx:106 msgid "Stock Location Type" msgstr "Tipo de Local de Estoque" -#: src/components/render/ModelType.tsx:91 +#: src/components/render/ModelType.tsx:107 msgid "Stock Location Types" msgstr "Tipo de Local de Estoque" -#: src/components/render/ModelType.tsx:95 +#: src/components/render/ModelType.tsx:112 +#: src/pages/part/PartDetail.tsx:712 msgid "Stock History" msgstr "Histórico de Estoque" -#: src/components/render/ModelType.tsx:96 +#: src/components/render/ModelType.tsx:113 msgid "Stock Histories" msgstr "Histórico de Estoque" -#: src/components/render/ModelType.tsx:100 -#: src/defaults/links.tsx:31 -#: src/defaults/menuItems.tsx:43 +#: src/components/render/ModelType.tsx:118 msgid "Build" msgstr "Produção" -#: src/components/render/ModelType.tsx:101 +#: src/components/render/ModelType.tsx:119 msgid "Builds" msgstr "Produções" -#: src/components/render/ModelType.tsx:109 +#: src/components/render/ModelType.tsx:128 msgid "Build Line" msgstr "Linha de produção" -#: src/components/render/ModelType.tsx:110 +#: src/components/render/ModelType.tsx:129 msgid "Build Lines" msgstr "Linhas de produção" -#: src/components/render/ModelType.tsx:117 +#: src/components/render/ModelType.tsx:137 msgid "Build Item" msgstr "" -#: src/components/render/ModelType.tsx:118 +#: src/components/render/ModelType.tsx:138 msgid "Build Items" msgstr "" -#: src/components/render/ModelType.tsx:122 -#: src/pages/company/CompanyDetail.tsx:339 +#: src/components/render/ModelType.tsx:143 +#: src/pages/company/CompanyDetail.tsx:321 msgid "Company" msgstr "Empresa" -#: src/components/render/ModelType.tsx:123 +#: src/components/render/ModelType.tsx:144 msgid "Companies" msgstr "Empresas" -#: src/components/render/ModelType.tsx:131 +#: src/components/render/ModelType.tsx:153 +#: src/pages/build/BuildDetail.tsx:195 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:204 +#: src/pages/sales/ReturnOrderDetail.tsx:174 +#: src/pages/sales/SalesOrderDetail.tsx:186 #: src/tables/TableHoverCard.tsx:81 -#: src/tables/build/BuildOrderTable.tsx:140 -#: src/tables/purchasing/PurchaseOrderTable.tsx:64 -#: src/tables/sales/ReturnOrderTable.tsx:55 -#: src/tables/sales/SalesOrderTable.tsx:62 +#: src/tables/build/BuildOrderTable.tsx:135 +#: src/tables/purchasing/PurchaseOrderTable.tsx:69 +#: src/tables/sales/ReturnOrderTable.tsx:67 +#: src/tables/sales/SalesOrderTable.tsx:67 msgid "Project Code" msgstr "Código do projeto" -#: src/components/render/ModelType.tsx:132 -#: src/pages/Index/Settings/AdminCenter/Index.tsx:128 +#: src/components/render/ModelType.tsx:154 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:145 msgid "Project Codes" msgstr "Códigos do Projeto" -#: src/components/render/ModelType.tsx:138 +#: src/components/render/ModelType.tsx:161 #: src/pages/part/pricing/PurchaseHistoryPanel.tsx:32 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:480 -#: src/tables/part/PartPurchaseOrdersTable.tsx:32 -#: src/tables/stock/StockTrackingTable.tsx:107 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:477 +#: src/pages/stock/StockDetail.tsx:253 +#: src/tables/part/PartPurchaseOrdersTable.tsx:31 +#: src/tables/stock/StockItemTable.tsx:222 +#: src/tables/stock/StockTrackingTable.tsx:111 msgid "Purchase Order" msgstr "Pedido de Compra" -#: src/components/render/ModelType.tsx:139 -#: src/pages/Index/Settings/SystemSettings.tsx:255 +#: src/components/render/ModelType.tsx:162 +#: src/pages/Index/Settings/SystemSettings.tsx:249 #: src/pages/company/CompanyDetail.tsx:196 -#: src/pages/company/SupplierPartDetail.tsx:237 -#: src/pages/part/PartDetail.tsx:662 +#: src/pages/company/SupplierPartDetail.tsx:249 +#: src/pages/part/PartDetail.tsx:683 #: src/pages/purchasing/PurchasingIndex.tsx:25 msgid "Purchase Orders" msgstr "Pedidos de compra" -#: src/components/render/ModelType.tsx:147 +#: src/components/render/ModelType.tsx:171 msgid "Purchase Order Line" msgstr "Pedido de compra da linha" -#: src/components/render/ModelType.tsx:148 +#: src/components/render/ModelType.tsx:172 msgid "Purchase Order Lines" msgstr "Pedido de compra das linhas" -#: src/components/render/ModelType.tsx:152 -#: src/pages/build/BuildDetail.tsx:153 -#: src/pages/sales/SalesOrderDetail.tsx:520 -#: src/pages/stock/StockDetail.tsx:221 -#: src/tables/sales/SalesOrderAllocationTable.tsx:50 -#: src/tables/stock/StockTrackingTable.tsx:118 +#: src/components/render/ModelType.tsx:177 +#: src/pages/build/BuildDetail.tsx:148 +#: src/pages/part/pricing/SaleHistoryPanel.tsx:24 +#: src/pages/sales/SalesOrderDetail.tsx:515 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:92 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:341 +#: src/pages/stock/StockDetail.tsx:262 +#: src/tables/sales/SalesOrderAllocationTable.tsx:80 +#: src/tables/stock/StockTrackingTable.tsx:122 msgid "Sales Order" msgstr "Pedido de Venda" -#: src/components/render/ModelType.tsx:153 -#: src/pages/Index/Settings/SystemSettings.tsx:270 +#: src/components/render/ModelType.tsx:178 +#: src/pages/Index/Settings/SystemSettings.tsx:264 #: src/pages/company/CompanyDetail.tsx:216 -#: src/pages/part/PartDetail.tsx:669 +#: src/pages/part/PartDetail.tsx:695 #: src/pages/sales/SalesIndex.tsx:26 msgid "Sales Orders" msgstr "Pedidos de vendas" -#: src/components/render/ModelType.tsx:161 +#: src/components/render/ModelType.tsx:187 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:340 msgid "Sales Order Shipment" msgstr "Envio do Pedido de Venda" -#: src/components/render/ModelType.tsx:162 +#: src/components/render/ModelType.tsx:188 msgid "Sales Order Shipments" msgstr "Envios dos Pedidos de Vendas" -#: src/components/render/ModelType.tsx:168 -#: src/pages/sales/ReturnOrderDetail.tsx:469 -#: src/tables/stock/StockTrackingTable.tsx:129 +#: src/components/render/ModelType.tsx:195 +#: src/pages/sales/ReturnOrderDetail.tsx:464 +#: src/tables/stock/StockTrackingTable.tsx:133 msgid "Return Order" msgstr "Pedido de Devolução" -#: src/components/render/ModelType.tsx:169 -#: src/pages/Index/Settings/SystemSettings.tsx:286 +#: src/components/render/ModelType.tsx:196 +#: src/pages/Index/Settings/SystemSettings.tsx:280 #: src/pages/company/CompanyDetail.tsx:223 +#: src/pages/part/PartDetail.tsx:702 #: src/pages/sales/SalesIndex.tsx:32 msgid "Return Orders" msgstr "Pedidos de Devolução" -#: src/components/render/ModelType.tsx:177 +#: src/components/render/ModelType.tsx:205 msgid "Return Order Line Item" msgstr "" -#: src/components/render/ModelType.tsx:178 +#: src/components/render/ModelType.tsx:206 msgid "Return Order Line Items" msgstr "" -#: src/components/render/ModelType.tsx:182 -#: src/tables/company/AddressTable.tsx:47 +#: src/components/render/ModelType.tsx:211 +#: src/tables/company/AddressTable.tsx:48 msgid "Address" msgstr "Endereço" -#: src/components/render/ModelType.tsx:183 -#: src/pages/company/CompanyDetail.tsx:253 +#: src/components/render/ModelType.tsx:212 +#: src/pages/company/CompanyDetail.tsx:255 msgid "Addresses" msgstr "Endereços" -#: src/components/render/ModelType.tsx:189 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:195 -#: src/pages/sales/ReturnOrderDetail.tsx:174 -#: src/pages/sales/SalesOrderDetail.tsx:183 +#: src/components/render/ModelType.tsx:219 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:196 +#: src/pages/sales/ReturnOrderDetail.tsx:166 +#: src/pages/sales/SalesOrderDetail.tsx:178 msgid "Contact" msgstr "Contato" -#: src/components/render/ModelType.tsx:190 -#: src/pages/company/CompanyDetail.tsx:247 +#: src/components/render/ModelType.tsx:220 +#: src/pages/company/CompanyDetail.tsx:249 msgid "Contacts" msgstr "Contatos" -#: src/components/render/ModelType.tsx:196 +#: src/components/render/ModelType.tsx:227 msgid "Owner" msgstr "Proprietário" -#: src/components/render/ModelType.tsx:197 +#: src/components/render/ModelType.tsx:228 msgid "Owners" msgstr "Proprietários" -#: src/components/render/ModelType.tsx:203 -#: src/tables/settings/ImportSessionTable.tsx:121 -#: src/tables/stock/StockItemTestResultTable.tsx:198 -#: src/tables/stock/StockTrackingTable.tsx:195 +#: src/components/render/ModelType.tsx:234 +#~ msgid "Purchase Order Line Item" +#~ msgstr "Purchase Order Line Item" + +#: src/components/render/ModelType.tsx:235 +#: src/tables/settings/BarcodeScanHistoryTable.tsx:80 +#: src/tables/settings/BarcodeScanHistoryTable.tsx:211 +#: src/tables/settings/ImportSessionTable.tsx:120 +#: src/tables/settings/StocktakeReportTable.tsx:44 +#: src/tables/stock/StockItemTestResultTable.tsx:204 +#: src/tables/stock/StockTrackingTable.tsx:181 +#: src/tables/stock/StockTrackingTable.tsx:210 msgid "User" msgstr "Utilizador" -#: src/components/render/ModelType.tsx:204 -#: src/pages/Index/Settings/AdminCenter/Index.tsx:98 +#: src/components/render/ModelType.tsx:236 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:109 #: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:13 msgid "Users" msgstr "Utilizadores" -#: src/components/render/ModelType.tsx:210 +#: src/components/render/ModelType.tsx:243 msgid "Group" msgstr "" -#: src/components/render/ModelType.tsx:211 +#: src/components/render/ModelType.tsx:244 #: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:20 -#: src/tables/settings/UserTable.tsx:138 -#: src/tables/settings/UserTable.tsx:201 +#: src/tables/settings/UserTable.tsx:137 +#: src/tables/settings/UserTable.tsx:200 msgid "Groups" msgstr "Grupos" -#: src/components/render/ModelType.tsx:218 +#: src/components/render/ModelType.tsx:252 msgid "Import Session" msgstr "" -#: src/components/render/ModelType.tsx:219 +#: src/components/render/ModelType.tsx:253 msgid "Import Sessions" msgstr "" -#: src/components/render/ModelType.tsx:225 +#: src/components/render/ModelType.tsx:260 msgid "Label Template" msgstr "Modelo de Etiqueta" -#: src/components/render/ModelType.tsx:226 -#: src/pages/Index/Settings/AdminCenter/Index.tsx:158 +#: src/components/render/ModelType.tsx:261 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:187 msgid "Label Templates" msgstr "Modelos de Etiqueta" -#: src/components/render/ModelType.tsx:232 +#: src/components/render/ModelType.tsx:264 +#~ msgid "Unknown Model" +#~ msgstr "Unknown Model" + +#: src/components/render/ModelType.tsx:268 msgid "Report Template" msgstr "Modelo de relatório" -#: src/components/render/ModelType.tsx:233 -#: src/pages/Index/Settings/AdminCenter/Index.tsx:164 +#: src/components/render/ModelType.tsx:269 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:193 msgid "Report Templates" msgstr "Modelos de relatório" -#: src/components/render/ModelType.tsx:239 -msgid "Plugin Configuration" -msgstr "Configuração de Extensão" - -#: src/components/render/ModelType.tsx:240 +#: src/components/render/ModelType.tsx:277 msgid "Plugin Configurations" msgstr "Configurações de Extensões" +#: src/components/render/ModelType.tsx:284 +msgid "Content Type" +msgstr "" + +#: src/components/render/ModelType.tsx:285 +msgid "Content Types" +msgstr "" + +#: src/components/render/ModelType.tsx:291 +#: src/tables/machine/MachineListTable.tsx:351 +#: src/tables/machine/MachineTypeTable.tsx:282 +msgid "Errors" +msgstr "Erros" + +#: src/components/render/ModelType.tsx:307 +#~ msgid "Purchase Order Line Items" +#~ msgstr "Purchase Order Line Items" + +#: src/components/render/ModelType.tsx:337 +#~ msgid "Unknown Models" +#~ msgstr "Unknown Models" + #: src/components/render/Order.tsx:121 +#: src/tables/sales/SalesOrderAllocationTable.tsx:136 msgid "Shipment" msgstr "Envios" #: src/components/render/Part.tsx:25 #: src/components/render/Plugin.tsx:17 -#: src/pages/company/CompanyDetail.tsx:325 -#: src/pages/company/SupplierPartDetail.tsx:360 -#: src/pages/part/PartDetail.tsx:879 +#: src/pages/company/CompanyDetail.tsx:307 +#: src/pages/company/SupplierPartDetail.tsx:349 +#: src/pages/part/PartDetail.tsx:911 msgid "Inactive" msgstr "Inativo" @@ -1737,39 +2336,38 @@ msgstr "Inativo" msgid "No stock" msgstr "Sem Estoque" -#: src/components/render/Part.tsx:30 -#: src/defaults/links.tsx:30 -#: src/defaults/menuItems.tsx:38 -#: src/pages/Index/Settings/SystemSettings.tsx:206 -#: src/pages/part/PartDetail.tsx:543 -#: src/pages/stock/LocationDetail.tsx:367 -#: src/pages/stock/StockDetail.tsx:411 -#: src/tables/stock/StockItemTable.tsx:68 -msgid "Stock" -msgstr "Estoque" - -#: src/components/render/Stock.tsx:60 -#: src/pages/stock/StockDetail.tsx:150 -#: src/pages/stock/StockDetail.tsx:581 -#: src/tables/build/BuildAllocatedStockTable.tsx:102 -#: src/tables/sales/SalesOrderAllocationTable.tsx:80 +#: src/components/render/Stock.tsx:61 +#: src/forms/ReturnOrderForms.tsx:190 +#: src/pages/stock/StockDetail.tsx:166 +#: src/pages/stock/StockDetail.tsx:771 +#: src/tables/build/BuildAllocatedStockTable.tsx:123 +#: src/tables/build/BuildOutputTable.tsx:81 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:114 +#: src/tables/sales/SalesOrderAllocationTable.tsx:106 msgid "Serial Number" msgstr "Número de Série" -#: src/components/render/Stock.tsx:62 -#: src/forms/BuildForms.tsx:218 -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/pages/part/pricing/BomPricingPanel.tsx:109 +#: src/components/render/Stock.tsx:63 +#: src/forms/BuildForms.tsx:206 +#: src/forms/BuildForms.tsx:515 +#: src/forms/PurchaseOrderForms.tsx:689 +#: src/forms/SalesOrderForms.tsx:248 +#: src/pages/part/PartSchedulingDetail.tsx:80 +#: src/pages/part/PartStocktakeDetail.tsx:60 +#: src/pages/part/PartStocktakeDetail.tsx:234 +#: src/pages/part/PartStocktakeDetail.tsx:252 +#: src/pages/part/pricing/BomPricingPanel.tsx:148 #: src/pages/part/pricing/PriceBreakPanel.tsx:89 -#: src/pages/part/pricing/PriceBreakPanel.tsx:171 -#: src/pages/stock/StockDetail.tsx:145 -#: src/pages/stock/StockDetail.tsx:587 -#: src/tables/build/BuildOrderTestTable.tsx:197 -#: src/tables/part/PartPurchaseOrdersTable.tsx:92 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:143 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:171 +#: src/pages/part/pricing/PriceBreakPanel.tsx:172 +#: src/pages/stock/StockDetail.tsx:161 +#: src/pages/stock/StockDetail.tsx:777 +#: src/tables/build/BuildLineTable.tsx:79 +#: src/tables/build/BuildOrderTestTable.tsx:198 +#: src/tables/part/PartPurchaseOrdersTable.tsx:93 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:146 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:177 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:77 -#: src/tables/stock/StockTrackingTable.tsx:59 +#: src/tables/stock/StockTrackingTable.tsx:63 msgid "Quantity" msgstr "Quantidade" @@ -1843,10 +2441,6 @@ msgstr "Nenhuma configuração especificada" #~ msgid "Required Part" #~ msgstr "Required Part" -#: src/components/tables/build/BuildLineTable.tsx:152 -#~ msgid "Required Quantity" -#~ msgstr "Required Quantity" - #: src/components/tables/build/BuildOrderTable.tsx:52 #~ msgid "Progress" #~ msgstr "Progress" @@ -2127,14 +2721,6 @@ msgstr "Nenhuma configuração especificada" #~ msgid "user deleted" #~ msgstr "user deleted" -#: src/components/tables/settings/UserTable.tsx:168 -#~ msgid "First Name" -#~ msgstr "First Name" - -#: src/components/tables/settings/UserTable.tsx:173 -#~ msgid "Last Name" -#~ msgstr "Last Name" - #: src/components/tables/stock/StockItemTable.tsx:247 #~ msgid "Test Filter" #~ msgstr "Test Filter" @@ -2147,36 +2733,21 @@ msgstr "Nenhuma configuração especificada" #~ msgid "Stock location updated" #~ msgstr "Stock location updated" -#: src/components/widgets/DisplayWidget.tsx:11 -#: src/pages/Index/Settings/AccountSettings/DisplaySettingsPanel.tsx:17 -msgid "Display Settings" -msgstr "Definições de Exibição" - -#: src/components/widgets/DisplayWidget.tsx:15 -#: src/pages/Index/Settings/AccountSettings/DisplaySettingsPanel.tsx:23 -msgid "Color Mode" -msgstr "Modo de Cor" - -#: src/components/widgets/DisplayWidget.tsx:21 -#: src/pages/Index/Settings/AccountSettings/DisplaySettingsPanel.tsx:33 -msgid "Language" -msgstr "Idioma" - #: src/components/widgets/FeedbackWidget.tsx:19 -msgid "Something is new: Platform UI" -msgstr "Algo é novo: Interface de Plataforma" +#~ msgid "Something is new: Platform UI" +#~ msgstr "Something is new: Platform UI" #: src/components/widgets/FeedbackWidget.tsx:21 -msgid "We are building a new UI with a modern stack. What you currently see is not fixed and will be redesigned but demonstrates the UI/UX possibilities we will have going forward." -msgstr "Estamos construindo uma nova interface do usuário mais moderno. O que você vê atualmente não está completo e será redesenhado, mas demonstra as possibilidades de UI/UX que teremos adiante." +#~ msgid "We are building a new UI with a modern stack. What you currently see is not fixed and will be redesigned but demonstrates the UI/UX possibilities we will have going forward." +#~ msgstr "We are building a new UI with a modern stack. What you currently see is not fixed and will be redesigned but demonstrates the UI/UX possibilities we will have going forward." #: src/components/widgets/FeedbackWidget.tsx:32 -msgid "Provide Feedback" -msgstr "Fornecer comentários" +#~ msgid "Provide Feedback" +#~ msgstr "Provide Feedback" #: src/components/widgets/GetStartedWidget.tsx:11 -msgid "Getting started" -msgstr "Introdução" +#~ msgid "Getting started" +#~ msgstr "Getting started" #: src/components/widgets/MarkdownEditor.tsx:108 #~ msgid "Failed to upload image" @@ -2187,28 +2758,24 @@ msgstr "Introdução" #~ msgstr "Notes saved" #: src/components/widgets/WidgetLayout.tsx:166 -msgid "Layout" -msgstr "Disposição" +#~ msgid "Layout" +#~ msgstr "Layout" #: src/components/widgets/WidgetLayout.tsx:172 -msgid "Reset Layout" -msgstr "Redefinir disposição" +#~ msgid "Reset Layout" +#~ msgstr "Reset Layout" #: src/components/widgets/WidgetLayout.tsx:185 -msgid "Stop Edit" -msgstr "Parar Edição" - -#: src/components/widgets/WidgetLayout.tsx:185 -msgid "Edit Layout" -msgstr "Editar disposição" +#~ msgid "Stop Edit" +#~ msgstr "Stop Edit" #: src/components/widgets/WidgetLayout.tsx:191 -msgid "Appearance" -msgstr "Aspecto" +#~ msgid "Appearance" +#~ msgstr "Appearance" #: src/components/widgets/WidgetLayout.tsx:203 -msgid "Show Boxes" -msgstr "Exibir Caixas" +#~ msgid "Show Boxes" +#~ msgstr "Show Boxes" #: src/contexts/LanguageContext.tsx:20 msgid "Arabic" @@ -2287,201 +2854,175 @@ msgid "Korean" msgstr "Coreano" #: src/contexts/LanguageContext.tsx:39 +msgid "Lithuanian" +msgstr "" + +#: src/contexts/LanguageContext.tsx:40 msgid "Latvian" msgstr "Letão" -#: src/contexts/LanguageContext.tsx:40 +#: src/contexts/LanguageContext.tsx:41 msgid "Dutch" msgstr "Holandês" -#: src/contexts/LanguageContext.tsx:41 +#: src/contexts/LanguageContext.tsx:42 msgid "Norwegian" msgstr "Norueguês" -#: src/contexts/LanguageContext.tsx:42 +#: src/contexts/LanguageContext.tsx:43 msgid "Polish" msgstr "Polaco" -#: src/contexts/LanguageContext.tsx:43 +#: src/contexts/LanguageContext.tsx:44 msgid "Portuguese" msgstr "Português (Portugal)" -#: src/contexts/LanguageContext.tsx:44 +#: src/contexts/LanguageContext.tsx:45 msgid "Portuguese (Brazilian)" msgstr "Português (Brasileiro)" -#: src/contexts/LanguageContext.tsx:45 +#: src/contexts/LanguageContext.tsx:46 msgid "Romanian" msgstr "Romeno" -#: src/contexts/LanguageContext.tsx:46 +#: src/contexts/LanguageContext.tsx:47 msgid "Russian" msgstr "Russo" -#: src/contexts/LanguageContext.tsx:47 +#: src/contexts/LanguageContext.tsx:48 msgid "Slovak" msgstr "Eslovaco" -#: src/contexts/LanguageContext.tsx:48 +#: src/contexts/LanguageContext.tsx:49 msgid "Slovenian" msgstr "Esloveno" -#: src/contexts/LanguageContext.tsx:49 +#: src/contexts/LanguageContext.tsx:50 msgid "Swedish" msgstr "Sueco" -#: src/contexts/LanguageContext.tsx:50 +#: src/contexts/LanguageContext.tsx:51 msgid "Thai" msgstr "Tailandês" -#: src/contexts/LanguageContext.tsx:51 +#: src/contexts/LanguageContext.tsx:52 msgid "Turkish" msgstr "Turco" -#: src/contexts/LanguageContext.tsx:52 +#: src/contexts/LanguageContext.tsx:53 msgid "Ukrainian" msgstr "Ucraniano" -#: src/contexts/LanguageContext.tsx:53 +#: src/contexts/LanguageContext.tsx:54 msgid "Vietnamese" msgstr "Vietnamita" -#: src/contexts/LanguageContext.tsx:54 +#: src/contexts/LanguageContext.tsx:55 msgid "Chinese (Simplified)" msgstr "Chinês (Simplificado)" -#: src/contexts/LanguageContext.tsx:55 +#: src/contexts/LanguageContext.tsx:56 msgid "Chinese (Traditional)" msgstr "Chinês (Tradicional)" #: src/defaults/actions.tsx:18 -#: src/defaults/links.tsx:27 -#: src/defaults/menuItems.tsx:9 -msgid "Home" -msgstr "Início" - -#: src/defaults/actions.tsx:25 -#: src/defaults/links.tsx:28 -#: src/defaults/menuItems.tsx:28 -#: src/pages/Index/Dashboard.tsx:19 -#: src/pages/Index/Settings/UserSettings.tsx:46 -msgid "Dashboard" -msgstr "Painel de controlo" - -#: src/defaults/actions.tsx:26 msgid "Go to the InvenTree dashboard" msgstr "Ir para o painel do InvenTree" -#: src/defaults/actions.tsx:33 +#: src/defaults/actions.tsx:18 +#: src/defaults/links.tsx:27 +#: src/defaults/menuItems.tsx:9 +#~ msgid "Home" +#~ msgstr "Home" + +#: src/defaults/actions.tsx:25 msgid "Visit the documentation to learn more about InvenTree" msgstr "Visite a documentação para saber mais sobre o InvenTree" -#: src/defaults/actions.tsx:39 -#: src/defaults/links.tsx:98 -#: src/defaults/links.tsx:128 +#: src/defaults/actions.tsx:31 +#: src/defaults/links.tsx:92 +#: src/defaults/links.tsx:124 msgid "About InvenTree" msgstr "Sobre o InvenTree" -#: src/defaults/actions.tsx:40 -#: src/defaults/links.tsx:129 +#: src/defaults/actions.tsx:32 msgid "About the InvenTree org" msgstr "Sobre a organização InvenTree" -#: src/defaults/actions.tsx:46 +#: src/defaults/actions.tsx:38 msgid "Server Information" msgstr "Informações do Servidor" -#: src/defaults/actions.tsx:47 -#: src/defaults/links.tsx:123 +#: src/defaults/actions.tsx:39 +#: src/defaults/links.tsx:118 msgid "About this Inventree instance" msgstr "Sobre esta instância do Inventree" -#: src/defaults/actions.tsx:53 -#: src/defaults/links.tsx:111 +#: src/defaults/actions.tsx:45 +#: src/defaults/links.tsx:105 +#: src/defaults/links.tsx:131 msgid "License Information" msgstr "Informações de licença" -#: src/defaults/actions.tsx:54 -#: src/defaults/links.tsx:135 +#: src/defaults/actions.tsx:46 msgid "Licenses for dependencies of the service" msgstr "Licenças para as dependências do serviço" -#: src/defaults/actions.tsx:61 +#: src/defaults/actions.tsx:52 +msgid "Open Navigation" +msgstr "Abrir a navegação" + +#: src/defaults/actions.tsx:53 msgid "Open the main navigation menu" msgstr "Abrir o menu de navegação principal" -#: src/defaults/actions.tsx:72 +#: src/defaults/actions.tsx:64 msgid "Go to the Admin Center" msgstr "" -#: src/defaults/dashboardItems.tsx:15 -msgid "Subscribed Parts" -msgstr "Peças Subscritas" - -#: src/defaults/dashboardItems.tsx:22 -msgid "Subscribed Categories" -msgstr "Categorias Subscritas" - #: src/defaults/dashboardItems.tsx:29 -msgid "Latest Parts" -msgstr "Peças Recentes" +#~ msgid "Latest Parts" +#~ msgstr "Latest Parts" #: src/defaults/dashboardItems.tsx:36 -msgid "BOM Waiting Validation" -msgstr "BOM Aguardando Validação" +#~ msgid "BOM Waiting Validation" +#~ msgstr "BOM Waiting Validation" #: src/defaults/dashboardItems.tsx:43 -msgid "Recently Updated" -msgstr "Atualizado Recentemente" - -#: src/defaults/dashboardItems.tsx:50 -#: src/tables/part/PartTable.tsx:238 -msgid "Low Stock" -msgstr "Estoque Baixo" +#~ msgid "Recently Updated" +#~ msgstr "Recently Updated" #: src/defaults/dashboardItems.tsx:57 -msgid "Depleted Stock" -msgstr "Estoque Esgotado" +#~ msgid "Depleted Stock" +#~ msgstr "Depleted Stock" #: src/defaults/dashboardItems.tsx:64 -msgid "Required for Build Orders" -msgstr "Necessário para pedidos de produção" +#~ msgid "Required for Build Orders" +#~ msgstr "Required for Build Orders" #: src/defaults/dashboardItems.tsx:71 -msgid "Expired Stock" -msgstr "Estoque Expirado" +#~ msgid "Expired Stock" +#~ msgstr "Expired Stock" #: src/defaults/dashboardItems.tsx:78 -msgid "Stale Stock" -msgstr "Estoque Parado" +#~ msgid "Stale Stock" +#~ msgstr "Stale Stock" #: src/defaults/dashboardItems.tsx:85 -msgid "Build Orders In Progress" -msgstr "Pedido de Produção em Progresso" - -#: src/defaults/dashboardItems.tsx:92 -msgid "Overdue Build Orders" -msgstr "Pedidos de Produção Vencidos" +#~ msgid "Build Orders In Progress" +#~ msgstr "Build Orders In Progress" #: src/defaults/dashboardItems.tsx:99 -msgid "Outstanding Purchase Orders" -msgstr "Pedidos de Compra Pendentes" - -#: src/defaults/dashboardItems.tsx:106 -msgid "Overdue Purchase Orders" -msgstr "Pedidos de Compra Pendentes" +#~ msgid "Outstanding Purchase Orders" +#~ msgstr "Outstanding Purchase Orders" #: src/defaults/dashboardItems.tsx:113 -msgid "Outstanding Sales Orders" -msgstr "Pedidos de Venda Pendentes" - -#: src/defaults/dashboardItems.tsx:120 -msgid "Overdue Sales Orders" -msgstr "Pedidos de Venda Vencidos" +#~ msgid "Outstanding Sales Orders" +#~ msgstr "Outstanding Sales Orders" #: src/defaults/dashboardItems.tsx:127 -msgid "Current News" -msgstr "Notícias Atuais" +#~ msgid "Current News" +#~ msgstr "Current News" #: src/defaults/defaultHostList.tsx:8 #~ msgid "InvenTree Demo" @@ -2491,97 +3032,80 @@ msgstr "Notícias Atuais" #~ msgid "Local Server" #~ msgstr "Local Server" -#: src/defaults/links.tsx:12 -#: src/pages/company/CompanyDetail.tsx:96 -msgid "Website" -msgstr "Site" - #: src/defaults/links.tsx:17 -msgid "GitHub" -msgstr "GitHub" +#~ msgid "GitHub" +#~ msgstr "GitHub" #: src/defaults/links.tsx:22 -msgid "Demo" -msgstr "Demonstração" - -#: src/defaults/links.tsx:33 -#: src/defaults/menuItems.tsx:48 -#: src/pages/company/ManufacturerDetail.tsx:9 -#: src/pages/company/ManufacturerPartDetail.tsx:263 -#: src/pages/company/SupplierDetail.tsx:9 -#: src/pages/company/SupplierPartDetail.tsx:347 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:483 -#: src/pages/purchasing/PurchasingIndex.tsx:60 -msgid "Purchasing" -msgstr "Comprando" - -#: src/defaults/links.tsx:37 -#: src/defaults/menuItems.tsx:53 -#: src/pages/company/CustomerDetail.tsx:9 -#: src/pages/sales/ReturnOrderDetail.tsx:474 -#: src/pages/sales/SalesIndex.tsx:53 -#: src/pages/sales/SalesOrderDetail.tsx:525 -msgid "Sales" -msgstr "Vendas" +#~ msgid "Demo" +#~ msgstr "Demo" #: src/defaults/links.tsx:41 #: src/defaults/menuItems.tsx:71 #: src/pages/Index/Playground.tsx:217 -msgid "Playground" -msgstr "Parquinho" +#~ msgid "Playground" +#~ msgstr "Playground" -#: src/defaults/links.tsx:55 -msgid "Getting Started" -msgstr "Guia de Introdução" - -#: src/defaults/links.tsx:56 -msgid "Getting started with InvenTree" -msgstr "Primeiros passos com InvenTree" - -#: src/defaults/links.tsx:62 +#: src/defaults/links.tsx:45 msgid "API" msgstr "API" -#: src/defaults/links.tsx:63 +#: src/defaults/links.tsx:48 msgid "InvenTree API documentation" msgstr "Documentação da API InvenTree" -#: src/defaults/links.tsx:68 +#: src/defaults/links.tsx:52 msgid "Developer Manual" msgstr "Manual do Desenvolvedor" -#: src/defaults/links.tsx:69 +#: src/defaults/links.tsx:55 msgid "InvenTree developer manual" msgstr "Manual do Desenvolvedor InvenTree" -#: src/defaults/links.tsx:74 +#: src/defaults/links.tsx:59 msgid "FAQ" msgstr "Perguntas Frequentes" -#: src/defaults/links.tsx:75 +#: src/defaults/links.tsx:62 msgid "Frequently asked questions" msgstr "Perguntas Frequentes" +#: src/defaults/links.tsx:66 +msgid "GitHub Repository" +msgstr "" + +#: src/defaults/links.tsx:69 +msgid "InvenTree source code on GitHub" +msgstr "" + #: src/defaults/links.tsx:76 #~ msgid "Instance" #~ msgstr "Instance" +#: src/defaults/links.tsx:79 +#: src/defaults/links.tsx:117 +msgid "System Information" +msgstr "Informação do Sistema" + #: src/defaults/links.tsx:83 #~ msgid "InvenTree" #~ msgstr "InvenTree" -#: src/defaults/links.tsx:85 -#: src/defaults/links.tsx:122 -msgid "System Information" -msgstr "Informação do Sistema" - #: src/defaults/links.tsx:117 #~ msgid "Licenses for packages used by InvenTree" #~ msgstr "Licenses for packages used by InvenTree" +#: src/defaults/links.tsx:125 +msgid "About the InvenTree Project" +msgstr "" + +#: src/defaults/links.tsx:132 +msgid "Licenses for dependencies of the InvenTree software" +msgstr "" + #: src/defaults/links.tsx:134 -msgid "Licenses" -msgstr "Licenças" +#~ msgid "Licenses" +#~ msgstr "Licenses" #: src/defaults/menuItems.tsx:7 #~ msgid "Open sourcea" @@ -2608,8 +3132,8 @@ msgstr "Licenças" #~ msgstr "Profile page" #: src/defaults/menuItems.tsx:17 -msgid "User attributes and design settings." -msgstr "Atributos do usuário e configurações de design." +#~ msgid "User attributes and design settings." +#~ msgstr "User attributes and design settings." #: src/defaults/menuItems.tsx:21 #~ msgid "Free for everyone" @@ -2620,8 +3144,8 @@ msgstr "Atributos do usuário e configurações de design." #~ msgstr "The fluid of Smeargle’s tail secretions changes" #: src/defaults/menuItems.tsx:23 -msgid "View for interactive scanning and multiple actions." -msgstr "Visualização para varredura interativa e múltiplas ações." +#~ msgid "View for interactive scanning and multiple actions." +#~ msgstr "View for interactive scanning and multiple actions." #: src/defaults/menuItems.tsx:24 #~ msgid "The fluid of Smeargle’s tail secretions changes in the intensity" @@ -2699,51 +3223,130 @@ msgstr "Visualização para varredura interativa e múltiplas ações." #~ msgid "Are you sure you want to delete this attachment?" #~ msgstr "Are you sure you want to delete this attachment?" -#: src/forms/BuildForms.tsx:158 -msgid "Next serial number" -msgstr "Próximo número de série" +#: src/forms/BuildForms.tsx:248 +#~ msgid "Remove output" +#~ msgstr "Remove output" -#: src/forms/BuildForms.tsx:162 -msgid "Latest serial number" -msgstr "Número de Série mais recente" +#: src/forms/BuildForms.tsx:269 +#: src/tables/build/BuildAllocatedStockTable.tsx:147 +#: src/tables/build/BuildOrderTestTable.tsx:177 +#: src/tables/build/BuildOrderTestTable.tsx:201 +#: src/tables/build/BuildOutputTable.tsx:460 +msgid "Build Output" +msgstr "Saída da Produção" -#: src/forms/BuildForms.tsx:234 -msgid "Remove output" -msgstr "Remover Saída" +#: src/forms/BuildForms.tsx:269 +#: src/forms/BuildForms.tsx:337 +#: src/forms/BuildForms.tsx:385 +#: src/tables/build/BuildLineTable.tsx:89 +msgid "Batch" +msgstr "Lote" -#: src/forms/BuildForms.tsx:316 +#: src/forms/BuildForms.tsx:269 +#: src/forms/BuildForms.tsx:337 +#: src/forms/BuildForms.tsx:385 +#: src/forms/PurchaseOrderForms.tsx:603 +#: src/pages/build/BuildDetail.tsx:104 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:142 +#: src/pages/sales/ReturnOrderDetail.tsx:113 +#: src/pages/sales/SalesOrderDetail.tsx:122 +#: src/tables/build/BuildOrderTable.tsx:125 +#: src/tables/machine/MachineListTable.tsx:336 +#: src/tables/part/PartPurchaseOrdersTable.tsx:37 +#: src/tables/purchasing/PurchaseOrderTable.tsx:58 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:157 +#: src/tables/sales/ReturnOrderTable.tsx:56 +#: src/tables/sales/SalesOrderTable.tsx:56 +#: src/tables/settings/CustomStateTable.tsx:57 +#: src/tables/settings/ImportSessionTable.tsx:114 +#: src/tables/stock/StockItemTable.tsx:298 +#: src/tables/stock/StockTrackingTable.tsx:56 +msgid "Status" +msgstr "Estado" + +#: src/forms/BuildForms.tsx:289 msgid "Complete Build Outputs" msgstr "Concluir Saídas de Produção" -#: src/forms/BuildForms.tsx:320 +#: src/forms/BuildForms.tsx:292 msgid "Build outputs have been completed" msgstr "O Pedido de produção foi concluído" -#: src/forms/BuildForms.tsx:389 +#: src/forms/BuildForms.tsx:353 msgid "Scrap Build Outputs" msgstr "Cancelar Saída de Produção" -#: src/forms/BuildForms.tsx:393 +#: src/forms/BuildForms.tsx:356 msgid "Build outputs have been scrapped" msgstr "Os Pedidos de produção foram cancelados" -#: src/forms/BuildForms.tsx:425 -#: src/forms/BuildForms.tsx:449 +#: src/forms/BuildForms.tsx:393 msgid "Cancel Build Outputs" msgstr "Cancelar Saída de Produção" -#: src/forms/BuildForms.tsx:426 -msgid "Selected build outputs will be deleted" -msgstr "Saídas de produção selecionadas serão apagadas" - -#: src/forms/BuildForms.tsx:453 +#: src/forms/BuildForms.tsx:396 msgid "Build outputs have been cancelled" msgstr "Os Pedidos de produção foram cancelados" +#: src/forms/BuildForms.tsx:408 +#~ msgid "Selected build outputs will be deleted" +#~ msgstr "Selected build outputs will be deleted" + +#: src/forms/BuildForms.tsx:470 +#~ msgid "Remove line" +#~ msgstr "Remove line" + +#: src/forms/BuildForms.tsx:515 +#: src/forms/SalesOrderForms.tsx:248 +#: src/tables/build/BuildLineTable.tsx:174 +#: src/tables/sales/SalesOrderLineItemTable.tsx:276 +#: src/tables/stock/StockItemTable.tsx:309 +msgid "Allocated" +msgstr "Alocado" + +#: src/forms/BuildForms.tsx:545 +#: src/forms/SalesOrderForms.tsx:239 +#: src/pages/build/BuildDetail.tsx:208 +msgid "Source Location" +msgstr "Localização de Origem" + +#: src/forms/BuildForms.tsx:546 +#: src/forms/SalesOrderForms.tsx:240 +msgid "Select the source location for the stock allocation" +msgstr "" + +#: src/forms/BuildForms.tsx:566 +#: src/forms/SalesOrderForms.tsx:274 +#: src/tables/build/BuildLineTable.tsx:442 +#: src/tables/build/BuildLineTable.tsx:569 +#: src/tables/build/BuildLineTable.tsx:642 +#: src/tables/sales/SalesOrderLineItemTable.tsx:302 +#: src/tables/sales/SalesOrderLineItemTable.tsx:326 +msgid "Allocate Stock" +msgstr "Alocar estoque" + +#: src/forms/BuildForms.tsx:569 +#: src/forms/SalesOrderForms.tsx:279 +msgid "Stock items allocated" +msgstr "" + #: src/forms/CompanyForms.tsx:150 #~ msgid "Company updated" #~ msgstr "Company updated" +#: src/forms/PartForms.tsx:67 +#: src/forms/PartForms.tsx:154 +#: src/pages/part/CategoryDetail.tsx:117 +#: src/pages/part/PartDetail.tsx:384 +#: src/tables/part/PartCategoryTable.tsx:90 +#: src/tables/part/PartTable.tsx:294 +msgid "Subscribed" +msgstr "" + +#: src/forms/PartForms.tsx:68 +msgid "Subscribe to notifications for this part" +msgstr "" + #: src/forms/PartForms.tsx:106 #~ msgid "Create Part" #~ msgstr "Create Part" @@ -2752,191 +3355,190 @@ msgstr "Os Pedidos de produção foram cancelados" #~ msgid "Part created" #~ msgstr "Part created" -#: src/forms/PartForms.tsx:124 -msgid "Parent part category" -msgstr "Categoria parente da peça" - #: src/forms/PartForms.tsx:129 #~ msgid "Part updated" #~ msgstr "Part updated" -#: src/forms/PurchaseOrderForms.tsx:300 +#: src/forms/PartForms.tsx:140 +msgid "Parent part category" +msgstr "Categoria parente da peça" + +#: src/forms/PartForms.tsx:155 +msgid "Subscribe to notifications for this category" +msgstr "" + +#: src/forms/PurchaseOrderForms.tsx:314 +msgid "Assign Batch Code and Serial Numbers" +msgstr "" + +#: src/forms/PurchaseOrderForms.tsx:316 +msgid "Assign Batch Code" +msgstr "" + +#: src/forms/PurchaseOrderForms.tsx:336 msgid "Choose Location" msgstr "Escolher Localização" -#: src/forms/PurchaseOrderForms.tsx:308 +#: src/forms/PurchaseOrderForms.tsx:344 msgid "Item Destination selected" msgstr "Destino do item selecionado" -#: src/forms/PurchaseOrderForms.tsx:317 +#: src/forms/PurchaseOrderForms.tsx:353 msgid "Part category default location selected" msgstr "Localização padrão da categoria de peça selecionada" -#: src/forms/PurchaseOrderForms.tsx:327 +#: src/forms/PurchaseOrderForms.tsx:363 msgid "Received stock location selected" msgstr "Localização do estoque recebido selecionada" -#: src/forms/PurchaseOrderForms.tsx:332 +#: src/forms/PurchaseOrderForms.tsx:368 msgid "Default location selected" msgstr "Localização padrão selecionada" -#: src/forms/PurchaseOrderForms.tsx:343 -#: src/forms/PurchaseOrderForms.tsx:435 -msgid "Scan Barcode" -msgstr "Ler Código de Barras" +#: src/forms/PurchaseOrderForms.tsx:421 +#~ msgid "Assign Batch Code{0}" +#~ msgstr "Assign Batch Code{0}" -#: src/forms/PurchaseOrderForms.tsx:388 +#: src/forms/PurchaseOrderForms.tsx:427 msgid "Set Location" msgstr "Definir localização" -#: src/forms/PurchaseOrderForms.tsx:396 -msgid "Assign Batch Code{0}" -msgstr "Atribuir Código em Lote{0}" - -#: src/forms/PurchaseOrderForms.tsx:405 -#: src/forms/StockForms.tsx:420 +#: src/forms/PurchaseOrderForms.tsx:442 +#: src/forms/StockForms.tsx:539 msgid "Adjust Packaging" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:412 -msgid "Change Status" -msgstr "Alterar Estado" - -#: src/forms/PurchaseOrderForms.tsx:418 -msgid "Add Note" -msgstr "" - #: src/forms/PurchaseOrderForms.tsx:444 #: src/forms/StockForms.tsx:428 -msgid "Remove item from list" -msgstr "Remover item da lista" +#~ msgid "Remove item from list" +#~ msgstr "Remove item from list" -#: src/forms/PurchaseOrderForms.tsx:471 -#: src/forms/StockForms.tsx:499 -#: src/forms/StockForms.tsx:533 -#: src/forms/StockForms.tsx:562 -#: src/forms/StockForms.tsx:590 -#: src/forms/StockForms.tsx:621 -#: src/forms/StockForms.tsx:656 -#: src/forms/StockForms.tsx:698 -#: src/forms/StockForms.tsx:734 -#: src/pages/stock/StockDetail.tsx:181 -#: src/tables/ColumnRenderers.tsx:49 -#: src/tables/stock/StockTrackingTable.tsx:85 +#: src/forms/PurchaseOrderForms.tsx:450 +msgid "Change Status" +msgstr "Alterar Estado" + +#: src/forms/PurchaseOrderForms.tsx:456 +msgid "Add Note" +msgstr "" + +#: src/forms/PurchaseOrderForms.tsx:503 +#: src/forms/StockForms.tsx:614 +#: src/forms/StockForms.tsx:651 +#: src/forms/StockForms.tsx:677 +#: src/forms/StockForms.tsx:705 +#: src/forms/StockForms.tsx:736 +#: src/forms/StockForms.tsx:771 +#: src/forms/StockForms.tsx:813 +#: src/forms/StockForms.tsx:851 +#: src/pages/stock/StockDetail.tsx:202 +#: src/tables/ColumnRenderers.tsx:60 +#: src/tables/stock/StockTrackingTable.tsx:89 msgid "Location" msgstr "Localização" -#: src/forms/PurchaseOrderForms.tsx:486 +#: src/forms/PurchaseOrderForms.tsx:518 msgid "Store at default location" msgstr "Armazenar no local padrão" -#: src/forms/PurchaseOrderForms.tsx:499 +#: src/forms/PurchaseOrderForms.tsx:533 msgid "Store at line item destination" msgstr "Armazenar no destino do item de linha" -#: src/forms/PurchaseOrderForms.tsx:509 +#: src/forms/PurchaseOrderForms.tsx:545 msgid "Store with already received stock" msgstr "Armazenar com estoque já recebido" -#: src/forms/PurchaseOrderForms.tsx:524 -#: src/pages/build/BuildDetail.tsx:219 -#: src/pages/stock/StockDetail.tsx:162 -#: src/pages/stock/StockDetail.tsx:599 -#: src/tables/build/BuildAllocatedStockTable.tsx:109 -#: src/tables/build/BuildOrderTestTable.tsx:188 -#: src/tables/sales/SalesOrderAllocationTable.tsx:87 +#: src/forms/PurchaseOrderForms.tsx:566 +#: src/pages/build/BuildDetail.tsx:222 +#: src/pages/stock/StockDetail.tsx:185 +#: src/pages/stock/StockDetail.tsx:793 +#: src/tables/build/BuildAllocatedStockTable.tsx:130 +#: src/tables/build/BuildOrderTestTable.tsx:189 +#: src/tables/build/BuildOutputTable.tsx:86 +#: src/tables/sales/SalesOrderAllocationTable.tsx:113 msgid "Batch Code" msgstr "Código de Lote" -#: src/forms/PurchaseOrderForms.tsx:535 -msgid "Serial numbers" +#: src/forms/PurchaseOrderForms.tsx:566 +#~ msgid "Serial numbers" +#~ msgstr "Serial numbers" + +#: src/forms/PurchaseOrderForms.tsx:567 +msgid "Enter batch code for received items" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:544 -#: src/forms/StockForms.tsx:443 -#: src/pages/company/SupplierPartDetail.tsx:156 -#: src/pages/company/SupplierPartDetail.tsx:207 -#: src/pages/stock/StockDetail.tsx:244 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:192 +#: src/forms/PurchaseOrderForms.tsx:579 +#: src/forms/StockForms.tsx:152 +msgid "Serial Numbers" +msgstr "Números de Série" + +#: src/forms/PurchaseOrderForms.tsx:580 +msgid "Enter serial numbers for received items" +msgstr "" + +#: src/forms/PurchaseOrderForms.tsx:590 +#: src/forms/StockForms.tsx:556 +#: src/pages/company/SupplierPartDetail.tsx:168 +#: src/pages/company/SupplierPartDetail.tsx:219 +#: src/pages/stock/StockDetail.tsx:320 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:198 msgid "Packaging" msgstr "Embalagem" -#: src/forms/PurchaseOrderForms.tsx:556 -#: src/pages/build/BuildDetail.tsx:109 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:148 -#: src/pages/sales/ReturnOrderDetail.tsx:121 -#: src/pages/sales/SalesOrderDetail.tsx:127 -#: src/tables/build/BuildOrderTable.tsx:122 -#: src/tables/machine/MachineListTable.tsx:335 -#: src/tables/part/PartPurchaseOrdersTable.tsx:37 -#: src/tables/purchasing/PurchaseOrderTable.tsx:55 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:132 -#: src/tables/sales/ReturnOrderTable.tsx:46 -#: src/tables/sales/SalesOrderTable.tsx:53 -#: src/tables/settings/ImportSessionTable.tsx:115 -#: src/tables/stock/StockItemTable.tsx:294 -#: src/tables/stock/StockTrackingTable.tsx:52 -msgid "Status" -msgstr "Estado" - -#: src/forms/PurchaseOrderForms.tsx:564 -#: src/pages/company/SupplierPartDetail.tsx:110 -#: src/tables/ColumnRenderers.tsx:132 +#: src/forms/PurchaseOrderForms.tsx:612 +#: src/pages/company/SupplierPartDetail.tsx:115 +#: src/tables/ColumnRenderers.tsx:143 msgid "Note" msgstr "Nota" -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/pages/company/SupplierPartDetail.tsx:128 -#: src/tables/purchasing/SupplierPriceBreakTable.tsx:57 -msgid "SKU" -msgstr "SKU" - -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/tables/part/PartPurchaseOrdersTable.tsx:120 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:178 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:127 -msgid "Received" -msgstr "Recebido" - -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/forms/StockForms.tsx:499 -#: src/forms/StockForms.tsx:533 -#: src/forms/StockForms.tsx:562 -#: src/forms/StockForms.tsx:590 -#: src/forms/StockForms.tsx:621 -#: src/forms/StockForms.tsx:656 -#: src/forms/StockForms.tsx:698 -#: src/forms/StockForms.tsx:734 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:413 -#: src/tables/RowActions.tsx:113 -msgid "Actions" -msgstr "Ações" - -#: src/forms/PurchaseOrderForms.tsx:655 -msgid "Receive Line Items" -msgstr "Receber item de linha" - #: src/forms/PurchaseOrderForms.tsx:658 #~ msgid "Receive line items" #~ msgstr "Receive line items" -#: src/forms/StockForms.tsx:104 -msgid "Add given quantity as packs instead of individual items" -msgstr "Adicionar quantidade dada como pacotes em vez de itens individuais" +#: src/forms/PurchaseOrderForms.tsx:689 +#: src/pages/company/SupplierPartDetail.tsx:133 +#: src/tables/purchasing/SupplierPriceBreakTable.tsx:57 +msgid "SKU" +msgstr "SKU" + +#: src/forms/PurchaseOrderForms.tsx:689 +#: src/tables/part/PartPurchaseOrdersTable.tsx:126 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:184 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:247 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:152 +msgid "Received" +msgstr "Recebido" + +#: src/forms/PurchaseOrderForms.tsx:701 +msgid "Receive Line Items" +msgstr "Receber item de linha" + +#: src/forms/ReturnOrderForms.tsx:201 +msgid "Receive Items" +msgstr "" + +#: src/forms/ReturnOrderForms.tsx:208 +msgid "Item received into stock" +msgstr "" + +#: src/forms/StockForms.tsx:80 +#: src/hooks/UsePlaceholder.tsx:57 +msgid "Next serial number" +msgstr "Próximo número de série" #: src/forms/StockForms.tsx:110 #~ msgid "Create Stock Item" #~ msgstr "Create Stock Item" -#: src/forms/StockForms.tsx:117 +#: src/forms/StockForms.tsx:131 +msgid "Add given quantity as packs instead of individual items" +msgstr "Adicionar quantidade dada como pacotes em vez de itens individuais" + +#: src/forms/StockForms.tsx:145 msgid "Enter initial quantity for this stock item" msgstr "Digite a quantidade inicial para este item de estoque" -#: src/forms/StockForms.tsx:124 -msgid "Serial Numbers" -msgstr "Números de Série" - -#: src/forms/StockForms.tsx:125 +#: src/forms/StockForms.tsx:154 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "Insira os números de série para novo estoque (ou deixe em branco)" @@ -2944,82 +3546,102 @@ msgstr "Insira os números de série para novo estoque (ou deixe em branco)" #~ msgid "Stock item updated" #~ msgstr "Stock item updated" -#: src/forms/StockForms.tsx:179 -#: src/pages/stock/StockDetail.tsx:434 -#: src/tables/stock/StockItemTable.tsx:417 -#: src/tables/stock/StockItemTable.tsx:535 +#: src/forms/StockForms.tsx:169 +#: src/pages/stock/StockDetail.tsx:131 +msgid "Stock Status" +msgstr "Estado do Estoque" + +#: src/forms/StockForms.tsx:218 +#: src/pages/stock/StockDetail.tsx:554 +#: src/tables/stock/StockItemTable.tsx:421 +#: src/tables/stock/StockItemTable.tsx:541 msgid "Add Stock Item" msgstr "Adicionar item de Estoque" -#: src/forms/StockForms.tsx:362 +#: src/forms/StockForms.tsx:262 +msgid "Select the part to install" +msgstr "" + +#: src/forms/StockForms.tsx:480 msgid "Loading..." msgstr "A carregar..." -#: src/forms/StockForms.tsx:408 +#: src/forms/StockForms.tsx:527 msgid "Move to default location" msgstr "Mover para o local padrão" -#: src/forms/StockForms.tsx:499 -#: src/forms/StockForms.tsx:533 -#: src/forms/StockForms.tsx:562 -#: src/forms/StockForms.tsx:590 -#: src/forms/StockForms.tsx:621 -#: src/forms/StockForms.tsx:656 -#: src/forms/StockForms.tsx:698 -#: src/forms/StockForms.tsx:734 -#: src/pages/part/PartDetail.tsx:230 -#: src/pages/part/PartDetail.tsx:843 -#: src/tables/stock/StockItemTable.tsx:325 +#: src/forms/StockForms.tsx:614 +#: src/forms/StockForms.tsx:651 +#: src/forms/StockForms.tsx:677 +#: src/forms/StockForms.tsx:705 +#: src/forms/StockForms.tsx:736 +#: src/forms/StockForms.tsx:771 +#: src/forms/StockForms.tsx:813 +#: src/forms/StockForms.tsx:851 +#: src/pages/part/PartDetail.tsx:251 +#: src/pages/part/PartDetail.tsx:875 +#: src/tables/stock/StockItemTable.tsx:329 msgid "In Stock" msgstr "Em Estoque" -#: src/forms/StockForms.tsx:499 +#: src/forms/StockForms.tsx:614 msgid "Move" msgstr "Mover" -#: src/forms/StockForms.tsx:562 -#: src/pages/stock/StockDetail.tsx:518 -#: src/tables/stock/StockItemTestResultTable.tsx:328 +#: src/forms/StockForms.tsx:677 +#: src/pages/stock/StockDetail.tsx:681 +#: src/tables/stock/StockItemTestResultTable.tsx:346 msgid "Add" msgstr "Adicionar" -#: src/forms/StockForms.tsx:590 -#: src/pages/Index/Scan.tsx:266 -#: src/pages/stock/StockDetail.tsx:508 +#: src/forms/StockForms.tsx:705 +#: src/pages/Index/Scan.tsx:280 +#: src/pages/stock/StockDetail.tsx:670 msgid "Count" msgstr "Contar" -#: src/forms/StockForms.tsx:835 +#: src/forms/StockForms.tsx:953 +#: src/pages/stock/StockDetail.tsx:682 +#: src/tables/stock/StockItemTable.tsx:454 msgid "Add Stock" msgstr "Adicionar Estoque" -#: src/forms/StockForms.tsx:844 +#: src/forms/StockForms.tsx:962 +#: src/pages/stock/StockDetail.tsx:691 +#: src/tables/stock/StockItemTable.tsx:463 msgid "Remove Stock" msgstr "Remover Estoque" -#: src/forms/StockForms.tsx:853 -#: src/pages/part/PartDetail.tsx:1017 +#: src/forms/StockForms.tsx:971 +#: src/pages/part/PartDetail.tsx:1039 +#: src/pages/stock/StockDetail.tsx:712 +#: src/tables/stock/StockItemTable.tsx:483 msgid "Transfer Stock" msgstr "Transferir Estoque" -#: src/forms/StockForms.tsx:862 -#: src/pages/part/PartDetail.tsx:1006 +#: src/forms/StockForms.tsx:980 +#: src/pages/part/PartDetail.tsx:1028 +#: src/pages/stock/LocationDetail.tsx:314 +#: src/pages/stock/LocationDetail.tsx:318 +#: src/tables/stock/StockItemTable.tsx:472 +#: src/tables/stock/StockItemTable.tsx:476 msgid "Count Stock" msgstr "Contar Estoque" -#: src/forms/StockForms.tsx:871 +#: src/forms/StockForms.tsx:989 msgid "Change Stock Status" msgstr "Alterar estado do Estoque" -#: src/forms/StockForms.tsx:880 +#: src/forms/StockForms.tsx:998 msgid "Merge Stock" msgstr "Mesclar Estoque" -#: src/forms/StockForms.tsx:899 +#: src/forms/StockForms.tsx:1017 +#: src/tables/stock/StockItemTable.tsx:530 msgid "Delete Stock Items" msgstr "Excluir Itens de Estoque" -#: src/forms/StockForms.tsx:906 +#: src/forms/StockForms.tsx:1024 msgid "Parent stock location" msgstr "Localização parente de Estoque" @@ -3043,11 +3665,11 @@ msgstr "Localização parente de Estoque" #~ msgid "You have been logged out" #~ msgstr "You have been logged out" -#: src/functions/auth.tsx:117 +#: src/functions/auth.tsx:128 msgid "Logged Out" msgstr "Sessão terminada" -#: src/functions/auth.tsx:118 +#: src/functions/auth.tsx:129 msgid "Successfully logged out" msgstr "Sessão terminada com sucesso" @@ -3063,20 +3685,20 @@ msgstr "Sessão terminada com sucesso" #~ msgid "Found an existing login - welcome back!" #~ msgstr "Found an existing login - welcome back!" -#: src/functions/auth.tsx:156 +#: src/functions/auth.tsx:167 msgid "Check your inbox for a reset link. This only works if you have an account. Check in spam too." msgstr "Verifique a sua caixa de entrada com um link para redefinir. Isso só funciona se você já tiver uma conta. Cheque no também no spam." -#: src/functions/auth.tsx:163 +#: src/functions/auth.tsx:174 #: src/pages/Auth/Set-Password.tsx:39 msgid "Reset failed" msgstr "Falha ao redefinir" -#: src/functions/auth.tsx:194 +#: src/functions/auth.tsx:205 msgid "Logged In" msgstr "Sessão Iniciada" -#: src/functions/auth.tsx:195 +#: src/functions/auth.tsx:206 msgid "Successfully logged in" msgstr "Sessão iniciada com êxito" @@ -3096,30 +3718,38 @@ msgstr "Sessão iniciada com êxito" #~ msgid "method parameter not supplied" #~ msgstr "method parameter not supplied" -#: src/functions/notifications.tsx:10 +#: src/functions/notifications.tsx:12 msgid "Not implemented" msgstr "Não implementado" -#: src/functions/notifications.tsx:11 +#: src/functions/notifications.tsx:13 msgid "This feature is not yet implemented" msgstr "Este recurso ainda não foi implementado" -#: src/functions/notifications.tsx:21 -msgid "Permission denied" -msgstr "Permissão recusada" +#: src/functions/notifications.tsx:24 +#~ msgid "Permission denied" +#~ msgstr "Permission denied" -#: src/functions/notifications.tsx:22 +#: src/functions/notifications.tsx:25 msgid "You do not have permission to perform this action" msgstr "Não tem permissões para efetuar esta ação" -#: src/functions/notifications.tsx:33 +#: src/functions/notifications.tsx:36 msgid "Invalid Return Code" msgstr "Código de retorno inválido" -#: src/functions/notifications.tsx:34 +#: src/functions/notifications.tsx:37 msgid "Server returned status {returnCode}" msgstr "O servidor retornou o status {returnCode}" +#: src/functions/notifications.tsx:47 +msgid "Timeout" +msgstr "" + +#: src/functions/notifications.tsx:48 +msgid "The request timed out" +msgstr "" + #: src/hooks/UseForm.tsx:88 msgid "Item Created" msgstr "Item Criado" @@ -3136,20 +3766,24 @@ msgstr "Item Eliminado" msgid "Are you sure you want to delete this item?" msgstr "Tem certeza de que deseja excluir este item?" +#: src/hooks/UsePlaceholder.tsx:59 +msgid "Latest serial number" +msgstr "Número de Série mais recente" + #: src/pages/Auth/Logged-In.tsx:22 msgid "Checking if you are already logged in" msgstr "Verificando se você já fez login" -#: src/pages/Auth/Login.tsx:31 -#: src/pages/Index/Scan.tsx:329 +#: src/pages/Auth/Login.tsx:35 +#: src/pages/Index/Scan.tsx:343 msgid "No selection" msgstr "Nenhuma seleção" -#: src/pages/Auth/Login.tsx:87 +#: src/pages/Auth/Login.tsx:91 msgid "Welcome, log in below" msgstr "Bem-vindo, faça o login abaixo" -#: src/pages/Auth/Login.tsx:89 +#: src/pages/Auth/Login.tsx:93 msgid "Register below" msgstr "Registrar abaixo" @@ -3163,8 +3797,8 @@ msgstr "Terminando a sessão" #: src/pages/Auth/Reset.tsx:41 #: src/pages/Auth/Set-Password.tsx:112 -msgid "Send mail" -msgstr "Enviar Mensagem" +#~ msgid "Send mail" +#~ msgstr "Send mail" #: src/pages/Auth/Set-Password.tsx:30 msgid "Token invalid" @@ -3175,22 +3809,22 @@ msgid "You need to provide a valid token to set a new password. Check your inbox msgstr "Você precisa fornecer um token válido para definir uma nova senha. Verifique sua caixa de entrada para um link de redefinição." #: src/pages/Auth/Set-Password.tsx:49 -msgid "No token provided" -msgstr "Nenhum Token fornecido" +#~ msgid "No token provided" +#~ msgstr "No token provided" #: src/pages/Auth/Set-Password.tsx:50 -msgid "You need to provide a token to set a new password. Check your inbox for a reset link." -msgstr "Você precisa fornecer um Token válido para definir uma nova senha. Verifique a sua caixa de entrada para um link de redefinição." +#~ msgid "You need to provide a token to set a new password. Check your inbox for a reset link." +#~ msgstr "You need to provide a token to set a new password. Check your inbox for a reset link." -#: src/pages/Auth/Set-Password.tsx:73 +#: src/pages/Auth/Set-Password.tsx:68 msgid "Password set" msgstr "Palavra-passe definida" -#: src/pages/Auth/Set-Password.tsx:74 +#: src/pages/Auth/Set-Password.tsx:69 msgid "The password was set successfully. You can now login with your new password" msgstr "A senha foi definida com sucesso. Você agora pode fazer login com sua nova senha" -#: src/pages/Auth/Set-Password.tsx:101 +#: src/pages/Auth/Set-Password.tsx:96 msgid "Set new password" msgstr "Definir nova palavra-passe" @@ -3207,20 +3841,20 @@ msgstr "" #~ msgstr "Sorry, an unexpected error has occurred." #: src/pages/Index/Dashboard.tsx:22 -msgid "Autoupdate" -msgstr "Atualização automática" +#~ msgid "Autoupdate" +#~ msgstr "Autoupdate" #: src/pages/Index/Dashboard.tsx:26 -msgid "This page is a replacement for the old start page with the same information. This page will be deprecated and replaced by the home page." -msgstr "Esta página é uma substituição para a página inicial antiga com as mesmas informações. Esta página será descontinuada e substituída pela página inicial." +#~ msgid "This page is a replacement for the old start page with the same information. This page will be deprecated and replaced by the home page." +#~ msgstr "This page is a replacement for the old start page with the same information. This page will be deprecated and replaced by the home page." #: src/pages/Index/Home.tsx:58 -msgid "Welcome to your Dashboard{0}" -msgstr "Bem-vindo ao seu Painel{0}" +#~ msgid "Welcome to your Dashboard{0}" +#~ msgstr "Welcome to your Dashboard{0}" #: src/pages/Index/Playground.tsx:222 -msgid "This page is a showcase for the possibilities of Platform UI." -msgstr "Esta página é uma demonstração para as possibilidades da interface da plataforma." +#~ msgid "This page is a showcase for the possibilities of Platform UI." +#~ msgstr "This page is a showcase for the possibilities of Platform UI." #: src/pages/Index/Profile/Profile.tsx:30 #: src/pages/Index/Profile/Profile.tsx:141 @@ -3366,126 +4000,191 @@ msgstr "Entrada Manual" msgid "Image Barcode" msgstr "Imagem do Código de Barras" -#: src/pages/Index/Scan.tsx:247 +#: src/pages/Index/Scan.tsx:261 msgid "Selected elements are not known" msgstr "Elementos selecionados não são conhecidos" -#: src/pages/Index/Scan.tsx:254 +#: src/pages/Index/Scan.tsx:268 msgid "Multiple object types selected" msgstr "Vários tipos de objeto selecionados" -#: src/pages/Index/Scan.tsx:261 +#: src/pages/Index/Scan.tsx:275 msgid "Actions for {0}" msgstr "Ações para {0}" -#: src/pages/Index/Scan.tsx:282 +#: src/pages/Index/Scan.tsx:296 msgid "Scan Page" msgstr "Escanear Página" -#: src/pages/Index/Scan.tsx:285 +#: src/pages/Index/Scan.tsx:299 msgid "This page can be used for continuously scanning items and taking actions on them." msgstr "Esta página pode ser usada para escanear itens continuamente e tomar ações sobre eles." -#: src/pages/Index/Scan.tsx:292 +#: src/pages/Index/Scan.tsx:306 msgid "Toggle Fullscreen" msgstr "Modo Ecrã Inteiro" -#: src/pages/Index/Scan.tsx:305 +#: src/pages/Index/Scan.tsx:319 msgid "Select the input method you want to use to scan items." msgstr "Selecione o método de entrada que você deseja usar para escanear itens." -#: src/pages/Index/Scan.tsx:307 +#: src/pages/Index/Scan.tsx:321 msgid "Input" msgstr "Entrada" -#: src/pages/Index/Scan.tsx:314 +#: src/pages/Index/Scan.tsx:328 msgid "Select input method" msgstr "Selecionar método de entrada" -#: src/pages/Index/Scan.tsx:315 +#: src/pages/Index/Scan.tsx:329 msgid "Nothing found" msgstr "Nada encontrado" -#: src/pages/Index/Scan.tsx:323 +#: src/pages/Index/Scan.tsx:337 msgid "Depending on the selected parts actions will be shown here. Not all barcode types are supported currently." msgstr "Dependendo das ações das peças selecionadas serão mostradas aqui. Nem todos os tipos de código de barras são suportados atualmente." -#: src/pages/Index/Scan.tsx:325 +#: src/pages/Index/Scan.tsx:339 msgid "Action" msgstr "Ação" -#: src/pages/Index/Scan.tsx:334 +#: src/pages/Index/Scan.tsx:348 msgid "{0} items selected" msgstr "{0} itens selecionados" -#: src/pages/Index/Scan.tsx:337 +#: src/pages/Index/Scan.tsx:351 msgid "General Actions" msgstr "Ações Gerais" -#: src/pages/Index/Scan.tsx:351 +#: src/pages/Index/Scan.tsx:365 msgid "Lookup part" msgstr "Pesquisar Peça" -#: src/pages/Index/Scan.tsx:359 +#: src/pages/Index/Scan.tsx:373 msgid "Open Link" msgstr "Abrir Ligação" -#: src/pages/Index/Scan.tsx:375 +#: src/pages/Index/Scan.tsx:389 msgid "History is locally kept in this browser." msgstr "O histórico é mantido localmente neste navegador." -#: src/pages/Index/Scan.tsx:376 +#: src/pages/Index/Scan.tsx:390 msgid "The history is kept in this browser's local storage. So it won't be shared with other users or other devices but is persistent through reloads. You can select items in the history to perform actions on them. To add items, scan/enter them in the Input area." msgstr "O histórico é mantido no armazenamento local deste navegador. Por isso, ele não será compartilhado com outros usuários ou dispositivos, mas será persistente através de recarregamentos. Você pode selecionar itens no histórico para executar ações neles. Para adicionar itens, digitalize-os na área de entrada." -#: src/pages/Index/Scan.tsx:378 +#: src/pages/Index/Scan.tsx:392 #: src/pages/Notifications.tsx:100 msgid "History" msgstr "Histórico" -#: src/pages/Index/Scan.tsx:384 +#: src/pages/Index/Scan.tsx:398 msgid "Delete History" msgstr "Apagar Histórico" -#: src/pages/Index/Scan.tsx:449 +#: src/pages/Index/Scan.tsx:463 msgid "No history" msgstr "Nenhum histórico" -#: src/pages/Index/Scan.tsx:467 +#: src/pages/Index/Scan.tsx:481 msgid "Item" msgstr "Item" -#: src/pages/Index/Scan.tsx:470 +#: src/pages/Index/Scan.tsx:484 msgid "Type" msgstr "Tipo" -#: src/pages/Index/Scan.tsx:473 +#: src/pages/Index/Scan.tsx:487 msgid "Source" msgstr "Origem" -#: src/pages/Index/Scan.tsx:476 +#: src/pages/Index/Scan.tsx:490 msgid "Scanned at" msgstr "Escaneado em" -#: src/pages/Index/Scan.tsx:528 +#: src/pages/Index/Scan.tsx:547 msgid "Enter item serial or data" msgstr "Inserir número de série ou dados do item" -#: src/pages/Index/Scan.tsx:540 +#: src/pages/Index/Scan.tsx:559 msgid "Add dummy item" msgstr "Adicionar item fictício" +#: src/pages/Index/Scan.tsx:569 +msgid "Start scanning by selecting a camera and pressing the play button." +msgstr "" + +#: src/pages/Index/Scan.tsx:650 +msgid "Error while getting camera" +msgstr "Erro ao carregar a câmera" + +#: src/pages/Index/Scan.tsx:673 +msgid "Error while scanning" +msgstr "Erro ao digitalizar" + +#: src/pages/Index/Scan.tsx:687 +msgid "Error while stopping" +msgstr "Erro ao parar" + +#: src/pages/Index/Scan.tsx:745 +msgid "Stop scanning" +msgstr "Parar a digitalização" + +#: src/pages/Index/Scan.tsx:754 +msgid "Start scanning" +msgstr "Iniciar a digitalização" + +#: src/pages/Index/Scan.tsx:763 +msgid "Scanning" +msgstr "Digitalizar" + +#: src/pages/Index/Scan.tsx:763 +msgid "Not scanning" +msgstr "Não digitalizar" + +#: src/pages/Index/Scan.tsx:775 +msgid "Select Camera" +msgstr "Selecionar câmara" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:28 +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:50 +msgid "Edit User Information" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:32 +msgid "User details updated" +msgstr "" + #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:41 -msgid "Account Details" -msgstr "Detalhes da Conta" +msgid "User Details" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:41 +#~ msgid "Account Details" +#~ msgstr "Account Details" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:44 +msgid "User Actions" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:48 +msgid "Edit User" +msgstr "" #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:50 -msgid "First name" -msgstr "Primeiro Nome" +#~ msgid "First name" +#~ msgstr "First name" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:54 +msgid "Set Password" +msgstr "" #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:55 -msgid "Last name" -msgstr "Apelido" +#~ msgid "Last name" +#~ msgstr "Last name" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:56 +msgid "Set User Password" +msgstr "" #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:58 #~ msgid "First name: {0}" @@ -3496,16 +4195,29 @@ msgstr "Apelido" #~ msgstr "Last name: {0}" #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:67 -msgid "First name:" -msgstr "Primeiro Nome:" +#~ msgid "First name:" +#~ msgstr "First name:" #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:71 -msgid "Last name:" -msgstr "Apelido:" +#~ msgid "Last name:" +#~ msgstr "Last name:" -#: src/pages/Index/Settings/AccountSettings/DisplaySettingsPanel.tsx:41 -msgid "Use pseudo language" -msgstr "Usar pseudo-idioma" +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:73 +msgid "First Name" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:79 +msgid "Last Name" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:85 +msgid "Staff Access" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:93 +#: src/tables/settings/UserTable.tsx:293 +msgid "Superuser" +msgstr "" #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:55 msgid "Single Sign On Accounts" @@ -3601,27 +4313,6 @@ msgstr "" msgid "No tokens configured" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:398 -#: src/pages/part/PartDetail.tsx:297 -#: src/tables/bom/UsedInTable.tsx:84 -#: src/tables/build/BuildOrderTable.tsx:110 -#: src/tables/company/CompanyTable.tsx:61 -#: src/tables/company/CompanyTable.tsx:95 -#: src/tables/machine/MachineListTable.tsx:332 -#: src/tables/machine/MachineListTable.tsx:594 -#: src/tables/part/ParametricPartTable.tsx:223 -#: src/tables/part/PartTable.tsx:178 -#: src/tables/part/PartVariantTable.tsx:15 -#: src/tables/plugin/PluginListTable.tsx:149 -#: src/tables/plugin/PluginListTable.tsx:271 -#: src/tables/plugin/PluginListTable.tsx:563 -#: src/tables/purchasing/SupplierPartTable.tsx:98 -#: src/tables/purchasing/SupplierPartTable.tsx:187 -#: src/tables/settings/UserTable.tsx:284 -#: src/tables/stock/StockItemTable.tsx:289 -msgid "Active" -msgstr "Ativo" - #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:401 msgid "Expiry" msgstr "" @@ -3631,38 +4322,74 @@ msgid "Last Seen" msgstr "" #: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:65 -msgid "bars" -msgstr "barras" +#~ msgid "bars" +#~ msgstr "bars" #: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:66 -msgid "oval" -msgstr "oval" +#~ msgid "oval" +#~ msgstr "oval" #: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:67 -msgid "dots" -msgstr "pontos" +#~ msgid "dots" +#~ msgstr "dots" #: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:81 -msgid "Theme" -msgstr "Tema" +#~ msgid "Theme" +#~ msgstr "Theme" #: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:87 -msgid "Primary color" -msgstr "Cor primária" +#~ msgid "Primary color" +#~ msgstr "Primary color" -#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:100 +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:88 +msgid "Bars" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:89 +msgid "Oval" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:90 +msgid "Dots" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:101 +msgid "Display Settings" +msgstr "Definições de Exibição" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:107 +msgid "Language" +msgstr "Idioma" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:115 +msgid "Use pseudo language" +msgstr "Usar pseudo-idioma" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:122 +msgid "Color Mode" +msgstr "Modo de Cor" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:133 +msgid "Highlight color" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:145 +msgid "Example" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:151 msgid "White color" msgstr "Cor branca" -#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:108 +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:167 msgid "Black color" msgstr "Cor preta" -#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:116 +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:183 msgid "Border Radius" msgstr "Raio da Margem" -#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:132 +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:199 msgid "Loader" msgstr "Carregador" @@ -3674,89 +4401,156 @@ msgstr "Carregador" #~ msgid "Advanced Amininistrative Options for InvenTree" #~ msgstr "Advanced Amininistrative Options for InvenTree" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:104 +#: src/pages/Index/Settings/AdminCenter/CurrencyManagmentPanel.tsx:27 +#: src/tables/ColumnRenderers.tsx:262 +msgid "Currency" +msgstr "Moeda" + +#: src/pages/Index/Settings/AdminCenter/CurrencyManagmentPanel.tsx:32 +msgid "Rate" +msgstr "Taxa" + +#: src/pages/Index/Settings/AdminCenter/CurrencyManagmentPanel.tsx:44 +msgid "Exchange rates updated" +msgstr "Taxas de câmbio atualizadas" + +#: src/pages/Index/Settings/AdminCenter/CurrencyManagmentPanel.tsx:50 +msgid "Exchange rate update error" +msgstr "Ocorreu um erro ao atualizar as Taxas de câmbio" + +#: src/pages/Index/Settings/AdminCenter/CurrencyManagmentPanel.tsx:62 +msgid "Refresh currency exchange rates" +msgstr "Atualizar taxas de câmbio" + +#: src/pages/Index/Settings/AdminCenter/CurrencyManagmentPanel.tsx:99 +msgid "Last fetched" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/CurrencyManagmentPanel.tsx:100 +msgid "Base currency" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:115 msgid "Data Import" msgstr "" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:110 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:121 +msgid "Barcode Scans" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:127 msgid "Background Tasks" msgstr "Tarefas em segundo plano" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:116 -msgid "Error Reports" -msgstr "Relatórios de Erros" - -#: src/pages/Index/Settings/AdminCenter/Index.tsx:122 -msgid "Currencies" -msgstr "Moedas" - #: src/pages/Index/Settings/AdminCenter/Index.tsx:127 #~ msgid "Templates" #~ msgstr "Templates" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:140 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:133 +msgid "Error Reports" +msgstr "Relatórios de Erros" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:139 +msgid "Currencies" +msgstr "Moedas" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:157 +msgid "Custom States" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:163 +#: src/pages/Index/Settings/AdminCenter/UnitManagmentPanel.tsx:58 msgid "Custom Units" msgstr "Unidades Personalizadas" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:146 -#: src/pages/part/CategoryDetail.tsx:264 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:169 +#: src/pages/part/CategoryDetail.tsx:269 msgid "Part Parameters" msgstr "Parâmetros da Peça" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:152 -msgid "Category Parameters" -msgstr "Parâmetros de Categoria" - -#: src/pages/Index/Settings/AdminCenter/Index.tsx:170 -msgid "Location Types" -msgstr "" - #: src/pages/Index/Settings/AdminCenter/Index.tsx:170 #~ msgid "Location types" #~ msgstr "Location types" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:182 -#: src/tables/machine/MachineTypeTable.tsx:287 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:175 +msgid "Category Parameters" +msgstr "Parâmetros de Categoria" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:181 +msgid "Stocktake" +msgstr "Balanço" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:199 +msgid "Location Types" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:211 +#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:48 +#: src/tables/machine/MachineTypeTable.tsx:308 msgid "Machines" msgstr "Máquinas" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:192 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:221 msgid "Quick Actions" msgstr "Ações Rápidas" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:197 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:226 msgid "Add a new user" msgstr "Adicionar um novo utilizador" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:222 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:252 msgid "Advanced Options" msgstr "Opções Avançadas" #: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:43 -msgid "Machine types" -msgstr "Tipo de máquina" +#~ msgid "Machine types" +#~ msgstr "Machine types" #: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:53 -msgid "Machine Error Stack" -msgstr "Erro de máquina na Stack" +#~ msgid "Machine Error Stack" +#~ msgstr "Machine Error Stack" + +#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:56 +msgid "Machine Types" +msgstr "" #: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:62 -msgid "There are no machine registry errors." -msgstr "Não há erros de registro da máquina." +#~ msgid "There are no machine registry errors." +#~ msgstr "There are no machine registry errors." -#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:28 -#: src/tables/settings/UserTable.tsx:119 +#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:64 +msgid "Machine Errors" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:77 +msgid "Registry Registry Errors" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:80 +msgid "There are machine registry errors" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:86 +msgid "Machine Registry Errors" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:89 +msgid "There are no machine registry errors" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:31 +#: src/tables/settings/UserTable.tsx:118 msgid "Info" msgstr "Informação" -#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:32 -msgid "External plugins are not enabled for this InvenTree installation." -msgstr "Extensões externas não estão ativados para esta instalação do InvenTree." - #: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:33 #~ msgid "Plugin Error Stack" #~ msgstr "Plugin Error Stack" +#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:35 +msgid "External plugins are not enabled for this InvenTree installation." +msgstr "Extensões externas não estão ativados para esta instalação do InvenTree." + #: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:45 #~ msgid "Warning" #~ msgstr "Warning" @@ -3765,34 +4559,46 @@ msgstr "Extensões externas não estão ativados para esta instalação do Inven #~ msgid "Changing the settings below require you to immediately restart the server. Do not change this while under active usage." #~ msgstr "Changing the settings below require you to immediately restart the server. Do not change this while under active usage." -#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:50 +#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:73 msgid "Plugin Errors" msgstr "Erros de Extensão" -#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:59 -msgid "Plugin Settings" -msgstr "Configurações da Extensão" +#: src/pages/Index/Settings/AdminCenter/ReportTemplatePanel.tsx:17 +msgid "Page Size" +msgstr "" -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:53 -msgid "Background Worker Not Running" -msgstr "Trabalhador de fundo não está em execução" +#: src/pages/Index/Settings/AdminCenter/ReportTemplatePanel.tsx:20 +msgid "Landscape" +msgstr "" -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:54 +#: src/pages/Index/Settings/AdminCenter/ReportTemplatePanel.tsx:26 +msgid "Attach to Model" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/StocktakePanel.tsx:25 +msgid "Stocktake Reports" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:30 msgid "The background task manager service is not running. Contact your system administrator." msgstr "O serviço de gerenciador de tarefas em segundo plano não está em execução. Entre em contato com o administrador do sistema." -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:60 -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:76 +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:35 +#~ msgid "Background Worker Not Running" +#~ msgstr "Background Worker Not Running" + +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:36 +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:45 msgid "Pending Tasks" msgstr "Tarefas Pendentes" -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:64 -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:84 +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:37 +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:53 msgid "Scheduled Tasks" msgstr "Tarefas Agendadas" -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:68 -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:92 +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:38 +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:61 msgid "Failed Tasks" msgstr "Tarefas que falharam" @@ -3812,11 +4618,6 @@ msgstr "Tarefas que falharam" #~ msgid "Reports" #~ msgstr "Reports" -#: src/pages/Index/Settings/AdminCenter/TemplateManagementPanel.tsx:89 -#: src/pages/build/BuildDetail.tsx:373 -#~ msgid "Report" -#~ msgstr "Report" - #: src/pages/Index/Settings/AdminCenter/TemplateManagementPanel.tsx:99 #~ msgid "Purchase order" #~ msgstr "Purchase order" @@ -3837,23 +4638,35 @@ msgstr "Tarefas que falharam" #~ msgid "Stock location" #~ msgstr "Stock location" +#: src/pages/Index/Settings/AdminCenter/UnitManagmentPanel.tsx:21 +msgid "Alias" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/UnitManagmentPanel.tsx:22 +msgid "Dimensionless" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/UnitManagmentPanel.tsx:66 +msgid "All units" +msgstr "" + #: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:32 msgid "Select settings relevant for user lifecycle. More available in" msgstr "Selecione as configurações relevantes para o ciclo de vida dos usuários. Mais informações disponíveis em" #: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:37 -msgid "System settings" -msgstr "Definições de Sistema" +#~ msgid "System settings" +#~ msgstr "System settings" -#: src/pages/Index/Settings/SystemSettings.tsx:67 +#: src/pages/Index/Settings/SystemSettings.tsx:66 msgid "Login" msgstr "Iniciar sessão" -#: src/pages/Index/Settings/SystemSettings.tsx:93 +#: src/pages/Index/Settings/SystemSettings.tsx:92 msgid "Barcodes" msgstr "Códigos de barras" -#: src/pages/Index/Settings/SystemSettings.tsx:115 +#: src/pages/Index/Settings/SystemSettings.tsx:116 msgid "Pricing" msgstr "Preços" @@ -3865,64 +4678,46 @@ msgstr "Preços" #~ msgid "Exchange Rates" #~ msgstr "Exchange Rates" -#: src/pages/Index/Settings/SystemSettings.tsx:150 +#: src/pages/Index/Settings/SystemSettings.tsx:151 msgid "Labels" msgstr "Etiquetas" -#: src/pages/Index/Settings/SystemSettings.tsx:156 -#: src/pages/Index/Settings/UserSettings.tsx:132 +#: src/pages/Index/Settings/SystemSettings.tsx:157 +#: src/pages/Index/Settings/UserSettings.tsx:133 msgid "Reporting" msgstr "Relatórios" #: src/pages/Index/Settings/SystemSettings.tsx:231 -#: src/pages/part/PartDetail.tsx:682 -msgid "Stocktake" -msgstr "Balanço" - -#: src/pages/Index/Settings/SystemSettings.tsx:237 -#: src/pages/build/BuildDetail.tsx:554 -#: src/pages/build/BuildIndex.tsx:22 -#: src/pages/part/PartDetail.tsx:616 -#: src/pages/sales/SalesOrderDetail.tsx:333 +#: src/pages/build/BuildIndex.tsx:27 +#: src/pages/part/PartDetail.tsx:636 +#: src/pages/sales/SalesOrderDetail.tsx:355 msgid "Build Orders" msgstr "Ordens de Produções" -#: src/pages/Index/Settings/SystemSettings.tsx:318 -msgid "Switch to User Setting" -msgstr "Mudar para Configuração de Usuário" +#: src/pages/Index/Settings/SystemSettings.tsx:317 +#~ msgid "Switch to User Setting" +#~ msgstr "Switch to User Setting" -#: src/pages/Index/Settings/UserSettings.tsx:34 +#: src/pages/Index/Settings/UserSettings.tsx:35 msgid "Account" msgstr "Conta" -#: src/pages/Index/Settings/UserSettings.tsx:40 +#: src/pages/Index/Settings/UserSettings.tsx:41 msgid "Security" msgstr "Segurança" -#: src/pages/Index/Settings/UserSettings.tsx:78 +#: src/pages/Index/Settings/UserSettings.tsx:79 msgid "Display Options" msgstr "Opções de Exibição" -#: src/pages/Index/Settings/UserSettings.tsx:150 -msgid "Account Settings" -msgstr "Definições da Conta" - -#: src/pages/Index/Settings/UserSettings.tsx:158 -msgid "Switch to System Setting" -msgstr "Mudar para Configuração do Sistema" - -#: src/pages/Index/UserSettings.tsx:103 -#~ msgid "User Settings" -#~ msgstr "User Settings" +#: src/pages/Index/Settings/UserSettings.tsx:159 +#~ msgid "Switch to System Setting" +#~ msgstr "Switch to System Setting" #: src/pages/Logged-In.tsx:24 #~ msgid "Found an exsisting login - using it to log you in." #~ msgstr "Found an exsisting login - using it to log you in." -#: src/pages/NotFound.tsx:17 -#~ msgid "Not Found" -#~ msgstr "Not Found" - #: src/pages/NotFound.tsx:20 #~ msgid "Sorry, this page is not known or was moved." #~ msgstr "Sorry, this page is not known or was moved." @@ -3943,115 +4738,93 @@ msgstr "Marcar como não lido" #~ msgid "Build Status" #~ msgstr "Build Status" -#: src/pages/build/BuildDetail.tsx:102 -#: src/pages/part/PartDetail.tsx:150 +#: src/pages/build/BuildDetail.tsx:97 +#: src/pages/company/ManufacturerPartDetail.tsx:81 +#: src/pages/company/SupplierPartDetail.tsx:91 +#: src/pages/part/PartDetail.tsx:171 +#: src/pages/stock/StockDetail.tsx:122 #: src/tables/bom/BomTable.tsx:118 #: src/tables/bom/UsedInTable.tsx:39 -#: src/tables/build/BuildLineTable.tsx:173 -#: src/tables/build/BuildOrderTable.tsx:55 -#: src/tables/sales/SalesOrderLineItemTable.tsx:62 -#: src/tables/stock/StockItemTable.tsx:53 +#: src/tables/build/BuildAllocatedStockTable.tsx:104 +#: src/tables/build/BuildLineTable.tsx:324 +#: src/tables/build/BuildOrderTable.tsx:64 +#: src/tables/sales/SalesOrderLineItemTable.tsx:70 +#: src/tables/stock/StockItemTable.tsx:54 msgid "IPN" msgstr "IPN" -#: src/pages/build/BuildDetail.tsx:115 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:121 -#: src/pages/sales/ReturnOrderDetail.tsx:95 -#: src/pages/sales/SalesOrderDetail.tsx:101 -#: src/tables/ColumnRenderers.tsx:121 -#: src/tables/build/BuildAllocatedStockTable.tsx:90 -#: src/tables/build/BuildLineTable.tsx:184 +#: src/pages/build/BuildDetail.tsx:110 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:115 +#: src/pages/sales/ReturnOrderDetail.tsx:86 +#: src/pages/sales/SalesOrderDetail.tsx:95 +#: src/tables/ColumnRenderers.tsx:132 +#: src/tables/build/BuildAllocatedStockTable.tsx:111 +#: src/tables/build/BuildLineTable.tsx:335 msgid "Reference" msgstr "Referência" -#: src/pages/build/BuildDetail.tsx:121 -#: src/pages/company/CompanyDetail.tsx:90 -#: src/pages/company/ManufacturerPartDetail.tsx:83 -#: src/pages/company/SupplierPartDetail.tsx:96 -#: src/pages/part/CategoryDetail.tsx:101 -#: src/pages/part/PartDetail.tsx:157 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:142 -#: src/pages/sales/ReturnOrderDetail.tsx:115 -#: src/pages/sales/SalesOrderDetail.tsx:121 -#: src/pages/stock/LocationDetail.tsx:109 -#: src/tables/ColumnRenderers.tsx:81 -#: src/tables/bom/UsedInTable.tsx:44 -#: src/tables/build/BuildAllocatedStockTable.tsx:70 -#: src/tables/build/BuildLineTable.tsx:178 -#: src/tables/machine/MachineTypeTable.tsx:69 -#: src/tables/machine/MachineTypeTable.tsx:112 -#: src/tables/machine/MachineTypeTable.tsx:219 -#: src/tables/machine/MachineTypeTable.tsx:323 -#: src/tables/part/RelatedPartTable.tsx:64 -#: src/tables/plugin/PluginListTable.tsx:129 -#: src/tables/plugin/PluginListTable.tsx:276 -#: src/tables/sales/SalesOrderAllocationTable.tsx:56 -#: src/tables/sales/SalesOrderLineItemTable.tsx:67 -#: src/tables/stock/LocationTypesTable.tsx:74 -msgid "Description" -msgstr "Descrição" - -#: src/pages/build/BuildDetail.tsx:129 +#: src/pages/build/BuildDetail.tsx:124 msgid "Parent Build" msgstr "Produção Parente" -#: src/pages/build/BuildDetail.tsx:140 +#: src/pages/build/BuildDetail.tsx:135 msgid "Build Quantity" msgstr "Quantidade de Produção" -#: src/pages/build/BuildDetail.tsx:148 -#: src/pages/build/BuildDetail.tsx:274 +#: src/pages/build/BuildDetail.tsx:143 +#: src/pages/build/BuildDetail.tsx:277 msgid "Completed Outputs" msgstr "Saídas Concluídas" -#: src/pages/build/BuildDetail.tsx:165 -#: src/tables/build/BuildOrderTable.tsx:151 +#: src/pages/build/BuildDetail.tsx:160 +#: src/tables/build/BuildOrderTable.tsx:142 msgid "Issued By" msgstr "Emitido por" -#: src/pages/build/BuildDetail.tsx:172 -#: src/pages/part/PartDetail.tsx:365 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:220 -#: src/pages/sales/ReturnOrderDetail.tsx:199 -#: src/pages/sales/SalesOrderDetail.tsx:208 -#: src/tables/build/BuildOrderTable.tsx:157 -#: src/tables/purchasing/PurchaseOrderTable.tsx:75 -#: src/tables/sales/ReturnOrderTable.tsx:66 -#: src/tables/sales/SalesOrderTable.tsx:73 +#: src/pages/build/BuildDetail.tsx:167 +#: src/pages/part/PartDetail.tsx:406 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:244 +#: src/pages/sales/ReturnOrderDetail.tsx:216 +#: src/pages/sales/SalesOrderDetail.tsx:226 +#: src/tables/build/BuildOrderTable.tsx:148 +#: src/tables/purchasing/PurchaseOrderTable.tsx:76 +#: src/tables/sales/ReturnOrderTable.tsx:74 +#: src/tables/sales/SalesOrderTable.tsx:74 msgid "Responsible" msgstr "Responsável" -#: src/pages/build/BuildDetail.tsx:179 -#: src/tables/settings/PendingTasksTable.tsx:32 +#: src/pages/build/BuildDetail.tsx:174 +#: src/tables/settings/PendingTasksTable.tsx:36 msgid "Created" msgstr "Criado" +#: src/pages/build/BuildDetail.tsx:181 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:229 +#: src/pages/sales/ReturnOrderDetail.tsx:201 +#: src/pages/sales/SalesOrderDetail.tsx:212 +#: src/tables/ColumnRenderers.tsx:226 +#: src/tables/part/PartPurchaseOrdersTable.tsx:100 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:135 +#: src/tables/sales/SalesOrderLineItemTable.tsx:107 +msgid "Target Date" +msgstr "Data alvo" + #: src/pages/build/BuildDetail.tsx:185 #: src/pages/part/PartDetail.tsx:269 #: src/pages/stock/StockDetail.tsx:150 #~ msgid "View part barcode" #~ msgstr "View part barcode" -#: src/pages/build/BuildDetail.tsx:186 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:213 -#: src/pages/sales/ReturnOrderDetail.tsx:192 -#: src/pages/sales/SalesOrderDetail.tsx:201 -#: src/tables/ColumnRenderers.tsx:212 -#: src/tables/part/PartPurchaseOrdersTable.tsx:99 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:110 -#: src/tables/sales/SalesOrderLineItemTable.tsx:99 -msgid "Target Date" -msgstr "Data alvo" +#: src/pages/build/BuildDetail.tsx:188 +#: src/tables/sales/SalesOrderLineItemTable.tsx:281 +msgid "Completed" +msgstr "Concluído" #: src/pages/build/BuildDetail.tsx:190 #: src/pages/part/PartDetail.tsx:274 #~ msgid "Link custom barcode to part" #~ msgstr "Link custom barcode to part" -#: src/pages/build/BuildDetail.tsx:193 -msgid "Completed" -msgstr "Concluído" - #: src/pages/build/BuildDetail.tsx:196 #: src/pages/part/PartDetail.tsx:280 #~ msgid "Unlink custom barcode from part" @@ -4061,15 +4834,11 @@ msgstr "Concluído" #~ msgid "Build Order updated" #~ msgstr "Build Order updated" -#: src/pages/build/BuildDetail.tsx:205 -msgid "Source Location" -msgstr "Localização de Origem" - -#: src/pages/build/BuildDetail.tsx:206 +#: src/pages/build/BuildDetail.tsx:209 msgid "Any location" msgstr "Qualquer localização" -#: src/pages/build/BuildDetail.tsx:213 +#: src/pages/build/BuildDetail.tsx:216 msgid "Destination Location" msgstr "Local de Destino" @@ -4085,206 +4854,182 @@ msgstr "Local de Destino" #~ msgid "Delete build order" #~ msgstr "Delete build order" -#: src/pages/build/BuildDetail.tsx:251 +#: src/pages/build/BuildDetail.tsx:254 msgid "Build Details" msgstr "Detalhes da Produção" -#: src/pages/build/BuildDetail.tsx:257 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:258 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:267 -#: src/pages/sales/ReturnOrderDetail.tsx:130 -#: src/pages/sales/ReturnOrderDetail.tsx:237 -#: src/pages/sales/ReturnOrderDetail.tsx:246 -#: src/pages/sales/SalesOrderDetail.tsx:272 -#: src/pages/sales/SalesOrderDetail.tsx:281 +#: src/pages/build/BuildDetail.tsx:260 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:282 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:291 +#: src/pages/sales/ReturnOrderDetail.tsx:122 +#: src/pages/sales/ReturnOrderDetail.tsx:254 +#: src/pages/sales/ReturnOrderDetail.tsx:263 +#: src/pages/sales/SalesOrderDetail.tsx:294 +#: src/pages/sales/SalesOrderDetail.tsx:303 msgid "Line Items" msgstr "Itens de linha" -#: src/pages/build/BuildDetail.tsx:267 +#: src/pages/build/BuildDetail.tsx:266 msgid "Incomplete Outputs" msgstr "Saídas Incompletas" -#: src/pages/build/BuildDetail.tsx:289 -#: src/pages/sales/SalesOrderDetail.tsx:319 +#: src/pages/build/BuildDetail.tsx:292 +#: src/pages/sales/SalesOrderDetail.tsx:341 msgid "Allocated Stock" msgstr "" -#: src/pages/build/BuildDetail.tsx:299 +#: src/pages/build/BuildDetail.tsx:302 msgid "Consumed Stock" msgstr "Estoque Consumido" -#: src/pages/build/BuildDetail.tsx:313 +#: src/pages/build/BuildDetail.tsx:316 msgid "Child Build Orders" msgstr "Pedido de Produção Filho" #: src/pages/build/BuildDetail.tsx:326 -#: src/tables/build/BuildOutputTable.tsx:384 -#: src/tables/stock/StockItemTestResultTable.tsx:150 +#: src/tables/build/BuildOutputTable.tsx:532 +#: src/tables/stock/StockItemTestResultTable.tsx:156 msgid "Test Results" msgstr "Resultados do teste" #: src/pages/build/BuildDetail.tsx:337 -#: src/pages/part/PartDetail.tsx:699 +#: src/pages/part/PartDetail.tsx:740 msgid "Test Statistics" msgstr "" -#: src/pages/build/BuildDetail.tsx:351 -#: src/pages/company/CompanyDetail.tsx:259 -#: src/pages/company/ManufacturerPartDetail.tsx:179 -#: src/pages/part/PartDetail.tsx:721 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:309 -#: src/pages/sales/ReturnOrderDetail.tsx:274 -#: src/pages/sales/SalesOrderDetail.tsx:343 -#: src/pages/stock/StockDetail.tsx:385 -msgid "Attachments" -msgstr "Anexos" - -#: src/pages/build/BuildDetail.tsx:359 -#: src/pages/company/CompanyDetail.tsx:270 -#: src/pages/company/ManufacturerPartDetail.tsx:190 -#: src/pages/company/SupplierPartDetail.tsx:257 -#: src/pages/part/PartDetail.tsx:729 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:320 -#: src/pages/sales/ReturnOrderDetail.tsx:285 -#: src/pages/sales/SalesOrderDetail.tsx:354 -#: src/pages/stock/StockDetail.tsx:396 -#: src/tables/build/BuildOrderTestTable.tsx:142 -#: src/tables/stock/StockTrackingTable.tsx:189 -msgid "Notes" -msgstr "Anotações" +#: src/pages/build/BuildDetail.tsx:365 +msgid "Edit Build Order" +msgstr "Editar Pedido de Produção" #: src/pages/build/BuildDetail.tsx:368 #~ msgid "Reporting Actions" #~ msgstr "Reporting Actions" +#: src/pages/build/BuildDetail.tsx:372 +#: src/tables/build/BuildOrderTable.tsx:173 +#: src/tables/build/BuildOrderTable.tsx:188 +msgid "Add Build Order" +msgstr "Novo Pedido de Produção" + #: src/pages/build/BuildDetail.tsx:374 #~ msgid "Print build report" #~ msgstr "Print build report" -#: src/pages/build/BuildDetail.tsx:377 -msgid "Edit Build Order" -msgstr "Editar Pedido de Produção" - -#: src/pages/build/BuildDetail.tsx:384 -#: src/tables/build/BuildOrderTable.tsx:172 -#: src/tables/build/BuildOrderTable.tsx:187 -msgid "Add Build Order" -msgstr "Novo Pedido de Produção" - -#: src/pages/build/BuildDetail.tsx:398 +#: src/pages/build/BuildDetail.tsx:386 msgid "Cancel Build Order" msgstr "Cancelar Pedido de Produção" -#: src/pages/build/BuildDetail.tsx:400 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:348 -#: src/pages/sales/SalesOrderDetail.tsx:380 +#: src/pages/build/BuildDetail.tsx:388 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:357 +#: src/pages/sales/ReturnOrderDetail.tsx:354 +#: src/pages/sales/SalesOrderDetail.tsx:387 msgid "Order cancelled" msgstr "" -#: src/pages/build/BuildDetail.tsx:401 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:347 -#: src/pages/sales/ReturnOrderDetail.tsx:346 -#: src/pages/sales/SalesOrderDetail.tsx:379 +#: src/pages/build/BuildDetail.tsx:389 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:356 +#: src/pages/sales/ReturnOrderDetail.tsx:353 +#: src/pages/sales/SalesOrderDetail.tsx:386 msgid "Cancel this order" msgstr "" -#: src/pages/build/BuildDetail.tsx:410 +#: src/pages/build/BuildDetail.tsx:398 msgid "Hold Build Order" msgstr "" -#: src/pages/build/BuildDetail.tsx:412 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:355 -#: src/pages/sales/ReturnOrderDetail.tsx:354 -#: src/pages/sales/SalesOrderDetail.tsx:387 +#: src/pages/build/BuildDetail.tsx:400 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:364 +#: src/pages/sales/ReturnOrderDetail.tsx:361 +#: src/pages/sales/SalesOrderDetail.tsx:394 msgid "Place this order on hold" msgstr "" -#: src/pages/build/BuildDetail.tsx:413 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:356 -#: src/pages/sales/ReturnOrderDetail.tsx:355 -#: src/pages/sales/SalesOrderDetail.tsx:388 +#: src/pages/build/BuildDetail.tsx:401 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:365 +#: src/pages/sales/ReturnOrderDetail.tsx:362 +#: src/pages/sales/SalesOrderDetail.tsx:395 msgid "Order placed on hold" msgstr "" -#: src/pages/build/BuildDetail.tsx:418 +#: src/pages/build/BuildDetail.tsx:406 msgid "Issue Build Order" msgstr "" -#: src/pages/build/BuildDetail.tsx:420 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:339 -#: src/pages/sales/ReturnOrderDetail.tsx:338 -#: src/pages/sales/SalesOrderDetail.tsx:371 +#: src/pages/build/BuildDetail.tsx:408 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:348 +#: src/pages/sales/ReturnOrderDetail.tsx:345 +#: src/pages/sales/SalesOrderDetail.tsx:378 msgid "Issue this order" msgstr "" -#: src/pages/build/BuildDetail.tsx:421 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:340 -#: src/pages/sales/ReturnOrderDetail.tsx:339 -#: src/pages/sales/SalesOrderDetail.tsx:372 +#: src/pages/build/BuildDetail.tsx:409 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:349 +#: src/pages/sales/ReturnOrderDetail.tsx:346 +#: src/pages/sales/SalesOrderDetail.tsx:379 msgid "Order issued" msgstr "" -#: src/pages/build/BuildDetail.tsx:426 +#: src/pages/build/BuildDetail.tsx:414 msgid "Complete Build Order" msgstr "" -#: src/pages/build/BuildDetail.tsx:428 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:368 -#: src/pages/sales/ReturnOrderDetail.tsx:362 -#: src/pages/sales/SalesOrderDetail.tsx:395 +#: src/pages/build/BuildDetail.tsx:416 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:377 +#: src/pages/sales/ReturnOrderDetail.tsx:369 +#: src/pages/sales/SalesOrderDetail.tsx:402 msgid "Mark this order as complete" msgstr "" -#: src/pages/build/BuildDetail.tsx:429 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:362 -#: src/pages/sales/ReturnOrderDetail.tsx:363 -#: src/pages/sales/SalesOrderDetail.tsx:396 +#: src/pages/build/BuildDetail.tsx:417 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:371 +#: src/pages/sales/ReturnOrderDetail.tsx:370 +#: src/pages/sales/SalesOrderDetail.tsx:403 msgid "Order completed" msgstr "" -#: src/pages/build/BuildDetail.tsx:460 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:391 -#: src/pages/sales/ReturnOrderDetail.tsx:392 -#: src/pages/sales/SalesOrderDetail.tsx:425 +#: src/pages/build/BuildDetail.tsx:448 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:400 +#: src/pages/sales/ReturnOrderDetail.tsx:399 +#: src/pages/sales/SalesOrderDetail.tsx:432 msgid "Issue Order" msgstr "" -#: src/pages/build/BuildDetail.tsx:467 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:398 -#: src/pages/sales/ReturnOrderDetail.tsx:399 -#: src/pages/sales/SalesOrderDetail.tsx:439 +#: src/pages/build/BuildDetail.tsx:455 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:407 +#: src/pages/sales/ReturnOrderDetail.tsx:406 +#: src/pages/sales/SalesOrderDetail.tsx:446 msgid "Complete Order" msgstr "" -#: src/pages/build/BuildDetail.tsx:496 +#: src/pages/build/BuildDetail.tsx:473 msgid "Build Order Actions" msgstr "Ações do Pedido de Produção" -#: src/pages/build/BuildDetail.tsx:502 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:432 -#: src/pages/sales/ReturnOrderDetail.tsx:433 -#: src/pages/sales/SalesOrderDetail.tsx:474 +#: src/pages/build/BuildDetail.tsx:478 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:429 +#: src/pages/sales/ReturnOrderDetail.tsx:428 +#: src/pages/sales/SalesOrderDetail.tsx:469 msgid "Edit order" msgstr "" -#: src/pages/build/BuildDetail.tsx:506 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:440 -#: src/pages/sales/ReturnOrderDetail.tsx:439 -#: src/pages/sales/SalesOrderDetail.tsx:479 +#: src/pages/build/BuildDetail.tsx:482 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:437 +#: src/pages/sales/ReturnOrderDetail.tsx:434 +#: src/pages/sales/SalesOrderDetail.tsx:474 msgid "Duplicate order" msgstr "" -#: src/pages/build/BuildDetail.tsx:510 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:443 -#: src/pages/sales/ReturnOrderDetail.tsx:444 -#: src/pages/sales/SalesOrderDetail.tsx:482 +#: src/pages/build/BuildDetail.tsx:486 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:440 +#: src/pages/sales/ReturnOrderDetail.tsx:439 +#: src/pages/sales/SalesOrderDetail.tsx:477 msgid "Hold order" msgstr "" -#: src/pages/build/BuildDetail.tsx:515 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:448 -#: src/pages/sales/ReturnOrderDetail.tsx:449 -#: src/pages/sales/SalesOrderDetail.tsx:487 +#: src/pages/build/BuildDetail.tsx:491 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:445 +#: src/pages/sales/ReturnOrderDetail.tsx:444 +#: src/pages/sales/SalesOrderDetail.tsx:482 msgid "Cancel order" msgstr "Cancelar pedido" @@ -4296,57 +5041,61 @@ msgstr "Cancelar pedido" #~ msgid "New Build Order" #~ msgstr "New Build Order" -#: src/pages/company/CompanyDetail.tsx:104 +#: src/pages/company/CompanyDetail.tsx:95 +msgid "Website" +msgstr "Site" + +#: src/pages/company/CompanyDetail.tsx:103 msgid "Phone Number" msgstr "Número de Telefone" -#: src/pages/company/CompanyDetail.tsx:111 +#: src/pages/company/CompanyDetail.tsx:110 msgid "Email Address" msgstr "Endereço de Email" -#: src/pages/company/CompanyDetail.tsx:121 +#: src/pages/company/CompanyDetail.tsx:120 msgid "Default Currency" msgstr "Moeda Padrão" -#: src/pages/company/CompanyDetail.tsx:126 +#: src/pages/company/CompanyDetail.tsx:125 #: src/pages/company/SupplierDetail.tsx:8 -#: src/pages/company/SupplierPartDetail.tsx:120 -#: src/pages/company/SupplierPartDetail.tsx:206 -#: src/pages/company/SupplierPartDetail.tsx:351 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:136 -#: src/tables/company/CompanyTable.tsx:100 +#: src/pages/company/SupplierPartDetail.tsx:125 +#: src/pages/company/SupplierPartDetail.tsx:218 +#: src/pages/company/SupplierPartDetail.tsx:340 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:130 +#: src/tables/company/CompanyTable.tsx:101 #: src/tables/part/PartPurchaseOrdersTable.tsx:42 -#: src/tables/purchasing/PurchaseOrderTable.tsx:88 +#: src/tables/purchasing/PurchaseOrderTable.tsx:89 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:36 msgid "Supplier" msgstr "Fornecedor" -#: src/pages/company/CompanyDetail.tsx:132 +#: src/pages/company/CompanyDetail.tsx:131 #: src/pages/company/ManufacturerDetail.tsx:8 -#: src/pages/company/ManufacturerPartDetail.tsx:101 -#: src/pages/company/ManufacturerPartDetail.tsx:267 -#: src/pages/company/SupplierPartDetail.tsx:135 -#: src/tables/company/CompanyTable.tsx:105 +#: src/pages/company/ManufacturerPartDetail.tsx:100 +#: src/pages/company/ManufacturerPartDetail.tsx:262 +#: src/pages/company/SupplierPartDetail.tsx:147 +#: src/tables/company/CompanyTable.tsx:106 msgid "Manufacturer" msgstr "Fabricante" -#: src/pages/company/CompanyDetail.tsx:138 +#: src/pages/company/CompanyDetail.tsx:137 #: src/pages/company/CustomerDetail.tsx:8 -#: src/pages/part/pricing/SaleHistoryPanel.tsx:29 -#: src/pages/sales/ReturnOrderDetail.tsx:109 -#: src/pages/sales/SalesOrderDetail.tsx:115 -#: src/pages/stock/StockDetail.tsx:230 -#: src/tables/company/CompanyTable.tsx:110 -#: src/tables/sales/ReturnOrderTable.tsx:78 -#: src/tables/sales/SalesOrderTable.tsx:108 -#: src/tables/stock/StockTrackingTable.tsx:140 +#: src/pages/part/pricing/SaleHistoryPanel.tsx:31 +#: src/pages/sales/ReturnOrderDetail.tsx:101 +#: src/pages/sales/SalesOrderDetail.tsx:110 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:100 +#: src/pages/stock/StockDetail.tsx:271 +#: src/tables/company/CompanyTable.tsx:111 +#: src/tables/sales/ReturnOrderTable.tsx:97 +#: src/tables/sales/SalesOrderTable.tsx:121 +#: src/tables/stock/StockTrackingTable.tsx:144 msgid "Customer" msgstr "Cliente" #: src/pages/company/CompanyDetail.tsx:172 -#: src/tables/stock/StockTrackingTable.tsx:183 -msgid "Details" -msgstr "Detalhes" +msgid "Company Details" +msgstr "" #: src/pages/company/CompanyDetail.tsx:175 #~ msgid "Edit company" @@ -4364,140 +5113,150 @@ msgstr "Peças fornecidas" #~ msgid "Delete company" #~ msgstr "Delete company" -#: src/pages/company/CompanyDetail.tsx:232 +#: src/pages/company/CompanyDetail.tsx:234 msgid "Assigned Stock" msgstr "Estoque Atribuído" -#: src/pages/company/CompanyDetail.tsx:290 -#: src/tables/company/CompanyTable.tsx:86 +#: src/pages/company/CompanyDetail.tsx:273 +#: src/tables/company/CompanyTable.tsx:87 msgid "Edit Company" msgstr "Editar Empresa" -#: src/pages/company/CompanyDetail.tsx:298 +#: src/pages/company/CompanyDetail.tsx:281 msgid "Delete Company" msgstr "" -#: src/pages/company/CompanyDetail.tsx:306 +#: src/pages/company/CompanyDetail.tsx:289 msgid "Company Actions" msgstr "Ações da Empresa" -#: src/pages/company/ManufacturerPartDetail.tsx:76 -#: src/pages/company/SupplierPartDetail.tsx:89 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:128 +#: src/pages/company/ManufacturerPartDetail.tsx:74 +#: src/pages/company/SupplierPartDetail.tsx:84 msgid "Internal Part" msgstr "Peça Interna" -#: src/pages/company/ManufacturerPartDetail.tsx:91 -#: src/pages/company/SupplierPartDetail.tsx:103 -msgid "External Link" -msgstr "Link Externo" - -#: src/pages/company/ManufacturerPartDetail.tsx:109 -#: src/pages/company/SupplierPartDetail.tsx:144 -#: src/tables/purchasing/ManufacturerPartTable.tsx:56 +#: src/pages/company/ManufacturerPartDetail.tsx:108 +#: src/pages/company/SupplierPartDetail.tsx:156 +#: src/tables/purchasing/ManufacturerPartTable.tsx:58 msgid "Manufacturer Part Number" msgstr "Número da Peça do Fabricante" -#: src/pages/company/ManufacturerPartDetail.tsx:138 +#: src/pages/company/ManufacturerPartDetail.tsx:125 +#: src/pages/company/SupplierPartDetail.tsx:108 +msgid "External Link" +msgstr "Link Externo" + +#: src/pages/company/ManufacturerPartDetail.tsx:146 +#: src/pages/company/SupplierPartDetail.tsx:215 +#: src/pages/part/PartDetail.tsx:576 +msgid "Part Details" +msgstr "Detalhes da Peça" + +#: src/pages/company/ManufacturerPartDetail.tsx:149 msgid "Manufacturer Details" msgstr "Detalhes do Fabricante" -#: src/pages/company/ManufacturerPartDetail.tsx:147 +#: src/pages/company/ManufacturerPartDetail.tsx:158 msgid "Manufacturer Part Details" msgstr "Detalhes da Peça do Fabricante" -#: src/pages/company/ManufacturerPartDetail.tsx:153 -#: src/pages/part/PartDetail.tsx:532 +#: src/pages/company/ManufacturerPartDetail.tsx:164 +#: src/pages/part/PartDetail.tsx:582 msgid "Parameters" msgstr "Parâmetros" -#: src/pages/company/ManufacturerPartDetail.tsx:165 -#: src/pages/part/PartDetail.tsx:649 +#: src/pages/company/ManufacturerPartDetail.tsx:176 +#: src/pages/part/PartDetail.tsx:669 #: src/pages/purchasing/PurchasingIndex.tsx:31 msgid "Suppliers" msgstr "Fornecedores" -#: src/pages/company/ManufacturerPartDetail.tsx:208 -#: src/tables/purchasing/ManufacturerPartTable.tsx:84 +#: src/pages/company/ManufacturerPartDetail.tsx:204 +#: src/tables/purchasing/ManufacturerPartTable.tsx:86 msgid "Edit Manufacturer Part" msgstr "Editar Peça do Fabricante" -#: src/pages/company/ManufacturerPartDetail.tsx:215 -#: src/tables/purchasing/ManufacturerPartTable.tsx:72 -#: src/tables/purchasing/ManufacturerPartTable.tsx:103 +#: src/pages/company/ManufacturerPartDetail.tsx:211 +#: src/tables/purchasing/ManufacturerPartTable.tsx:74 +#: src/tables/purchasing/ManufacturerPartTable.tsx:106 msgid "Add Manufacturer Part" msgstr "Adicionar Peça do Fabricante" -#: src/pages/company/ManufacturerPartDetail.tsx:227 -#: src/tables/purchasing/ManufacturerPartTable.tsx:92 +#: src/pages/company/ManufacturerPartDetail.tsx:223 +#: src/tables/purchasing/ManufacturerPartTable.tsx:94 msgid "Delete Manufacturer Part" msgstr "Excluir Peça do Fabricante" -#: src/pages/company/ManufacturerPartDetail.tsx:240 +#: src/pages/company/ManufacturerPartDetail.tsx:236 msgid "Manufacturer Part Actions" msgstr "Ações da Peça do Fabricante" -#: src/pages/company/ManufacturerPartDetail.tsx:281 +#: src/pages/company/ManufacturerPartDetail.tsx:276 msgid "ManufacturerPart" msgstr "Peça do Fabricante" -#: src/pages/company/SupplierPartDetail.tsx:163 -#: src/tables/part/PartPurchaseOrdersTable.tsx:71 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:156 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:197 -#: src/tables/purchasing/SupplierPartTable.tsx:131 +#: src/pages/company/SupplierPartDetail.tsx:99 +msgid "Part Description" +msgstr "Descrição da Peça" + +#: src/pages/company/SupplierPartDetail.tsx:175 +#: src/tables/part/PartPurchaseOrdersTable.tsx:72 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:162 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:203 +#: src/tables/purchasing/SupplierPartTable.tsx:133 msgid "Pack Quantity" msgstr "Quantidade embalada" -#: src/pages/company/SupplierPartDetail.tsx:174 +#: src/pages/company/SupplierPartDetail.tsx:186 msgid "Supplier Availability" msgstr "Disponibilidade do Fornecedor" -#: src/pages/company/SupplierPartDetail.tsx:181 +#: src/pages/company/SupplierPartDetail.tsx:193 msgid "Availability Updated" msgstr "Disponibilidade Atualizada" -#: src/pages/company/SupplierPartDetail.tsx:208 +#: src/pages/company/SupplierPartDetail.tsx:220 msgid "Availability" msgstr "Disponibilidade" -#: src/pages/company/SupplierPartDetail.tsx:217 +#: src/pages/company/SupplierPartDetail.tsx:229 msgid "Supplier Part Details" msgstr "Detalhes da Peça do Fornecedor" -#: src/pages/company/SupplierPartDetail.tsx:223 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:296 +#: src/pages/company/SupplierPartDetail.tsx:235 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:320 msgid "Received Stock" msgstr "Estoque Recebido" -#: src/pages/company/SupplierPartDetail.tsx:247 -#: src/pages/part/PartPricingPanel.tsx:111 -#: src/pages/part/pricing/PricingOverviewPanel.tsx:121 +#: src/pages/company/SupplierPartDetail.tsx:259 +#: src/pages/part/PartPricingPanel.tsx:116 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:195 msgid "Supplier Pricing" msgstr "Preço do Fornecedor" -#: src/pages/company/SupplierPartDetail.tsx:294 +#: src/pages/company/SupplierPartDetail.tsx:284 msgid "Supplier Part Actions" msgstr "Ações do Fornecedor da Peça" -#: src/pages/company/SupplierPartDetail.tsx:319 -#: src/tables/purchasing/SupplierPartTable.tsx:210 +#: src/pages/company/SupplierPartDetail.tsx:308 +#: src/tables/purchasing/SupplierPartTable.tsx:213 msgid "Edit Supplier Part" msgstr "Editar Fornecedor da Peça" -#: src/pages/company/SupplierPartDetail.tsx:327 -#: src/tables/purchasing/SupplierPartTable.tsx:218 +#: src/pages/company/SupplierPartDetail.tsx:316 +#: src/tables/purchasing/SupplierPartTable.tsx:221 msgid "Delete Supplier Part" msgstr "Excluir Fornecedor da Peça" -#: src/pages/company/SupplierPartDetail.tsx:335 -#: src/tables/purchasing/SupplierPartTable.tsx:163 +#: src/pages/company/SupplierPartDetail.tsx:324 +#: src/tables/purchasing/SupplierPartTable.tsx:165 msgid "Add Supplier Part" msgstr "Adicionar Fornecedor da Peça" #: src/pages/part/CategoryDetail.tsx:93 -#: src/pages/stock/LocationDetail.tsx:101 -#: src/tables/settings/ErrorTable.tsx:36 +#: src/pages/stock/LocationDetail.tsx:95 +#: src/tables/settings/ErrorTable.tsx:63 +#: src/tables/settings/ErrorTable.tsx:108 msgid "Path" msgstr "Caminho" @@ -4505,357 +5264,357 @@ msgstr "Caminho" msgid "Parent Category" msgstr "Categoria Parente" -#: src/pages/part/CategoryDetail.tsx:126 +#: src/pages/part/CategoryDetail.tsx:132 msgid "Subcategories" msgstr "Sub-categorias" -#: src/pages/part/CategoryDetail.tsx:133 -#: src/pages/stock/LocationDetail.tsx:141 -#: src/tables/part/PartCategoryTable.tsx:73 +#: src/pages/part/CategoryDetail.tsx:139 +#: src/pages/stock/LocationDetail.tsx:135 +#: src/tables/part/PartCategoryTable.tsx:85 #: src/tables/stock/StockLocationTable.tsx:49 msgid "Structural" msgstr "Estrutural" -#: src/pages/part/CategoryDetail.tsx:139 +#: src/pages/part/CategoryDetail.tsx:145 msgid "Parent default location" msgstr "Armazenar na localização Parente" -#: src/pages/part/CategoryDetail.tsx:146 +#: src/pages/part/CategoryDetail.tsx:152 msgid "Default location" msgstr "Localização predefinida" -#: src/pages/part/CategoryDetail.tsx:157 +#: src/pages/part/CategoryDetail.tsx:163 msgid "Top level part category" msgstr "Categoria da peça de nível superior" -#: src/pages/part/CategoryDetail.tsx:167 -#: src/pages/part/CategoryDetail.tsx:221 -#: src/tables/part/PartCategoryTable.tsx:102 +#: src/pages/part/CategoryDetail.tsx:173 +#: src/pages/part/CategoryDetail.tsx:226 +#: src/tables/part/PartCategoryTable.tsx:118 msgid "Edit Part Category" msgstr "Editar Categoria da Peça" -#: src/pages/part/CategoryDetail.tsx:180 -#: src/pages/stock/LocationDetail.tsx:233 +#: src/pages/part/CategoryDetail.tsx:186 +#: src/pages/stock/LocationDetail.tsx:227 msgid "Delete items" msgstr "Eliminar itens" -#: src/pages/part/CategoryDetail.tsx:188 -#: src/pages/part/CategoryDetail.tsx:226 +#: src/pages/part/CategoryDetail.tsx:194 +#: src/pages/part/CategoryDetail.tsx:231 msgid "Delete Part Category" msgstr "Definir Categoria da Peça" -#: src/pages/part/CategoryDetail.tsx:191 +#: src/pages/part/CategoryDetail.tsx:197 msgid "Parts Action" msgstr "Ações da peça" -#: src/pages/part/CategoryDetail.tsx:192 +#: src/pages/part/CategoryDetail.tsx:198 msgid "Action for parts in this category" msgstr "Ações para peças nesta categoria" -#: src/pages/part/CategoryDetail.tsx:197 +#: src/pages/part/CategoryDetail.tsx:203 msgid "Child Categories Action" msgstr "Ações para Categorias Filhas" -#: src/pages/part/CategoryDetail.tsx:198 +#: src/pages/part/CategoryDetail.tsx:204 msgid "Action for child categories in this category" msgstr "Ações para Caregorias Filhas nesta Categoria" -#: src/pages/part/CategoryDetail.tsx:216 +#: src/pages/part/CategoryDetail.tsx:222 msgid "Category Actions" msgstr "Ações da Categoria" -#: src/pages/part/CategoryDetail.tsx:238 +#: src/pages/part/CategoryDetail.tsx:243 msgid "Category Details" msgstr "Detalhes da Categoria" -#: src/pages/part/PartDetail.tsx:163 +#: src/pages/part/PartAllocationPanel.tsx:23 +#: src/pages/stock/StockDetail.tsx:443 +#: src/tables/part/PartTable.tsx:99 +msgid "Build Order Allocations" +msgstr "Alocações de Pedido de Produção" + +#: src/pages/part/PartAllocationPanel.tsx:40 +#: src/pages/stock/StockDetail.tsx:458 +#: src/tables/part/PartTable.tsx:108 +msgid "Sales Order Allocations" +msgstr "Alocações do Pedido de Vendas" + +#: src/pages/part/PartDetail.tsx:184 msgid "Variant of" msgstr "Variante de" -#: src/pages/part/PartDetail.tsx:170 +#: src/pages/part/PartDetail.tsx:191 msgid "Revision of" msgstr "" -#: src/pages/part/PartDetail.tsx:177 -#: src/tables/stock/StockItemTable.tsx:58 +#: src/pages/part/PartDetail.tsx:198 +#: src/tables/stock/StockItemTable.tsx:59 msgid "Revision" msgstr "Revisão" -#: src/pages/part/PartDetail.tsx:184 +#: src/pages/part/PartDetail.tsx:205 #: src/tables/notifications/NotificationsTable.tsx:31 #: src/tables/part/PartCategoryTemplateTable.tsx:67 msgid "Category" msgstr "Categoria" -#: src/pages/part/PartDetail.tsx:190 +#: src/pages/part/PartDetail.tsx:211 msgid "Default Location" msgstr "Localização Padrão" -#: src/pages/part/PartDetail.tsx:197 +#: src/pages/part/PartDetail.tsx:218 msgid "Category Default Location" msgstr "Localização padrão da Categoria" -#: src/pages/part/PartDetail.tsx:204 +#: src/pages/part/PartDetail.tsx:225 #: src/tables/purchasing/ManufacturerPartParameterTable.tsx:44 msgid "Units" msgstr "Unidades" -#: src/pages/part/PartDetail.tsx:211 -#: src/tables/settings/PendingTasksTable.tsx:42 +#: src/pages/part/PartDetail.tsx:232 +#: src/tables/settings/PendingTasksTable.tsx:46 msgid "Keywords" msgstr "Palavras-chave" -#: src/pages/part/PartDetail.tsx:218 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:186 -#: src/pages/sales/ReturnOrderDetail.tsx:165 -#: src/pages/sales/SalesOrderDetail.tsx:174 -msgid "Link" -msgstr "Ligação" - -#: src/pages/part/PartDetail.tsx:236 +#: src/pages/part/PartDetail.tsx:257 #: src/tables/bom/BomTable.tsx:320 -#: src/tables/build/BuildLineTable.tsx:155 +#: src/tables/build/BuildLineTable.tsx:286 #: src/tables/part/PartTable.tsx:288 -#: src/tables/sales/SalesOrderLineItemTable.tsx:103 +#: src/tables/sales/SalesOrderLineItemTable.tsx:111 msgid "Available Stock" msgstr "Estoque Disponível" -#: src/pages/part/PartDetail.tsx:243 +#: src/pages/part/PartDetail.tsx:264 msgid "Variant Stock" msgstr "" -#: src/pages/part/PartDetail.tsx:251 +#: src/pages/part/PartDetail.tsx:272 msgid "Minimum Stock" msgstr "Estoque Mínimo" -#: src/pages/part/PartDetail.tsx:257 +#: src/pages/part/PartDetail.tsx:278 #: src/tables/bom/BomTable.tsx:237 -#: src/tables/build/BuildLineTable.tsx:117 -#: src/tables/sales/SalesOrderLineItemTable.tsx:141 +#: src/tables/build/BuildLineTable.tsx:248 +#: src/tables/sales/SalesOrderLineItemTable.tsx:149 msgid "On order" msgstr "Na ordem" -#: src/pages/part/PartDetail.tsx:266 +#: src/pages/part/PartDetail.tsx:285 +msgid "Required for Orders" +msgstr "" + +#: src/pages/part/PartDetail.tsx:294 msgid "Allocated to Build Orders" msgstr "Alocado para Pedidos de Produção" -#: src/pages/part/PartDetail.tsx:274 +#: src/pages/part/PartDetail.tsx:305 msgid "Allocated to Sales Orders" msgstr "Alocado para Pedidos de Venda" -#: src/pages/part/PartDetail.tsx:281 -#: src/tables/bom/BomTable.tsx:261 -#: src/tables/bom/BomTable.tsx:293 -msgid "Can Build" -msgstr "Pode Produzir" - -#: src/pages/part/PartDetail.tsx:288 -#: src/tables/bom/BomTable.tsx:245 -#: src/tables/part/PartTable.tsx:92 -msgid "Building" -msgstr "Produzindo" - -#: src/pages/part/PartDetail.tsx:302 -#: src/pages/part/PartDetail.tsx:873 -#: src/tables/part/ParametricPartTable.tsx:228 -#: src/tables/part/PartTable.tsx:184 -msgid "Locked" -msgstr "" - -#: src/pages/part/PartDetail.tsx:308 -msgid "Template Part" -msgstr "Peça Modelo" - #: src/pages/part/PartDetail.tsx:310 #~ msgid "Edit part" #~ msgstr "Edit part" -#: src/pages/part/PartDetail.tsx:313 -#: src/tables/bom/BomTable.tsx:315 -msgid "Assembled Part" -msgstr "Peça montada" +#: src/pages/part/PartDetail.tsx:315 +#: src/tables/bom/BomTable.tsx:261 +#: src/tables/bom/BomTable.tsx:293 +msgid "Can Build" +msgstr "Pode Produzir" -#: src/pages/part/PartDetail.tsx:318 -msgid "Component Part" -msgstr "Peça do componente" +#: src/pages/part/PartDetail.tsx:322 +#: src/pages/part/PartDetail.tsx:905 +#: src/pages/stock/StockDetail.tsx:766 +#: src/tables/build/BuildOrderTestTable.tsx:220 +#: src/tables/stock/StockItemTable.tsx:334 +msgid "In Production" +msgstr "Em Produção" #: src/pages/part/PartDetail.tsx:322 #~ msgid "Duplicate part" #~ msgstr "Duplicate part" -#: src/pages/part/PartDetail.tsx:323 -#: src/tables/bom/BomTable.tsx:305 -msgid "Testable Part" -msgstr "" - #: src/pages/part/PartDetail.tsx:327 #~ msgid "Delete part" #~ msgstr "Delete part" -#: src/pages/part/PartDetail.tsx:329 +#: src/pages/part/PartDetail.tsx:336 +#: src/tables/part/ParametricPartTable.tsx:228 +#: src/tables/part/PartTable.tsx:184 +msgid "Locked" +msgstr "" + +#: src/pages/part/PartDetail.tsx:342 +msgid "Template Part" +msgstr "Peça Modelo" + +#: src/pages/part/PartDetail.tsx:347 +#: src/tables/bom/BomTable.tsx:315 +msgid "Assembled Part" +msgstr "Peça montada" + +#: src/pages/part/PartDetail.tsx:352 +msgid "Component Part" +msgstr "Peça do componente" + +#: src/pages/part/PartDetail.tsx:357 +#: src/tables/bom/BomTable.tsx:305 +msgid "Testable Part" +msgstr "" + +#: src/pages/part/PartDetail.tsx:363 #: src/tables/bom/BomTable.tsx:310 msgid "Trackable Part" msgstr "Peça rastreável" -#: src/pages/part/PartDetail.tsx:334 +#: src/pages/part/PartDetail.tsx:368 msgid "Purchaseable Part" msgstr "Peça comprável" -#: src/pages/part/PartDetail.tsx:339 +#: src/pages/part/PartDetail.tsx:374 msgid "Saleable Part" msgstr "Peça vendível" -#: src/pages/part/PartDetail.tsx:344 +#: src/pages/part/PartDetail.tsx:379 msgid "Virtual Part" msgstr "Peça virtual" -#: src/pages/part/PartDetail.tsx:352 -#: src/tables/ColumnRenderers.tsx:220 +#: src/pages/part/PartDetail.tsx:393 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:215 +#: src/pages/sales/ReturnOrderDetail.tsx:185 +#: src/pages/sales/SalesOrderDetail.tsx:197 +#: src/tables/ColumnRenderers.tsx:234 msgid "Creation Date" msgstr "Data de Criação" -#: src/pages/part/PartDetail.tsx:357 +#: src/pages/part/PartDetail.tsx:398 msgid "Created By" msgstr "Criado por" -#: src/pages/part/PartDetail.tsx:372 +#: src/pages/part/PartDetail.tsx:413 msgid "Default Supplier" msgstr "Fornecedor Padrão" -#: src/pages/part/PartDetail.tsx:383 -#: src/pages/part/pricing/BomPricingPanel.tsx:79 +#: src/pages/part/PartDetail.tsx:424 +#: src/pages/part/pricing/BomPricingPanel.tsx:113 #: src/pages/part/pricing/VariantPricingPanel.tsx:95 #: src/tables/part/PartTable.tsx:161 msgid "Price Range" msgstr "Intervalo de Preço" -#: src/pages/part/PartDetail.tsx:423 -#: src/pages/stock/StockDetail.tsx:135 +#: src/pages/part/PartDetail.tsx:462 +msgid "Latest Serial Number" +msgstr "" + +#: src/pages/part/PartDetail.tsx:472 +#: src/pages/stock/StockDetail.tsx:151 msgid "Last Stocktake" msgstr "Último Balanço" -#: src/pages/part/PartDetail.tsx:462 +#: src/pages/part/PartDetail.tsx:511 msgid "Stocktake By" msgstr "Balanço por" -#: src/pages/part/PartDetail.tsx:526 -msgid "Part Details" -msgstr "Detalhes da Peça" - -#: src/pages/part/PartDetail.tsx:557 +#: src/pages/part/PartDetail.tsx:611 msgid "Variants" msgstr "Variantes" -#: src/pages/part/PartDetail.tsx:564 -#: src/pages/stock/StockDetail.tsx:307 +#: src/pages/part/PartDetail.tsx:618 +#: src/pages/stock/StockDetail.tsx:430 msgid "Allocations" msgstr "Alocações" -#: src/pages/part/PartDetail.tsx:575 -#: src/pages/stock/StockDetail.tsx:318 -#: src/tables/part/PartTable.tsx:99 -msgid "Build Order Allocations" -msgstr "Alocações de Pedido de Produção" - -#: src/pages/part/PartDetail.tsx:590 -#: src/pages/stock/StockDetail.tsx:333 -#: src/tables/part/PartTable.tsx:108 -msgid "Sales Order Allocations" -msgstr "Alocações do Pedido de Vendas" - -#: src/pages/part/PartDetail.tsx:607 +#: src/pages/part/PartDetail.tsx:625 msgid "Bill of Materials" msgstr "Lista de Materiais" -#: src/pages/part/PartDetail.tsx:623 +#: src/pages/part/PartDetail.tsx:643 msgid "Used In" msgstr "Utilizado em" -#: src/pages/part/PartDetail.tsx:630 +#: src/pages/part/PartDetail.tsx:650 msgid "Part Pricing" msgstr "Preço da Peça" -#: src/pages/part/PartDetail.tsx:636 +#: src/pages/part/PartDetail.tsx:656 #: src/pages/purchasing/PurchasingIndex.tsx:42 msgid "Manufacturers" msgstr "Fabricantes" -#: src/pages/part/PartDetail.tsx:676 +#: src/pages/part/PartDetail.tsx:722 msgid "Scheduling" msgstr "Agendamento" -#: src/pages/part/PartDetail.tsx:688 +#: src/pages/part/PartDetail.tsx:729 msgid "Test Templates" msgstr "Modelos de Teste" -#: src/pages/part/PartDetail.tsx:715 +#: src/pages/part/PartDetail.tsx:756 msgid "Related Parts" msgstr "Peças Relacionadas" -#: src/pages/part/PartDetail.tsx:849 -#: src/pages/stock/StockDetail.tsx:156 -#: src/pages/stock/StockDetail.tsx:593 -#: src/tables/build/BuildLineTable.tsx:48 +#: src/pages/part/PartDetail.tsx:881 +#: src/pages/stock/StockDetail.tsx:172 +#: src/pages/stock/StockDetail.tsx:783 +#: src/tables/build/BuildLineTable.tsx:179 #: src/tables/part/PartTable.tsx:117 -#: src/tables/stock/StockItemTable.tsx:177 -#: src/tables/stock/StockItemTable.tsx:310 +#: src/tables/stock/StockItemTable.tsx:166 +#: src/tables/stock/StockItemTable.tsx:314 msgid "Available" msgstr "Disponível" -#: src/pages/part/PartDetail.tsx:855 +#: src/pages/part/PartDetail.tsx:887 msgid "No Stock" msgstr "Sem Estoque" -#: src/pages/part/PartDetail.tsx:861 +#: src/pages/part/PartDetail.tsx:893 +#: src/tables/part/PartTestTemplateTable.tsx:106 +#: src/tables/stock/StockItemTestResultTable.tsx:383 +msgid "Required" +msgstr "Obrigatório" + +#: src/pages/part/PartDetail.tsx:899 #: src/tables/bom/BomTable.tsx:325 #: src/tables/part/PartTable.tsx:86 msgid "On Order" msgstr "No Pedido" -#: src/pages/part/PartDetail.tsx:867 -#: src/pages/stock/StockDetail.tsx:576 -#: src/tables/build/BuildOrderTestTable.tsx:219 -#: src/tables/stock/StockItemTable.tsx:330 -msgid "In Production" -msgstr "Em Produção" - -#: src/pages/part/PartDetail.tsx:892 +#: src/pages/part/PartDetail.tsx:924 msgid "Edit Part" msgstr "Editar Peça" -#: src/pages/part/PartDetail.tsx:927 +#: src/pages/part/PartDetail.tsx:959 #: src/tables/part/PartTable.tsx:331 -#: src/tables/part/PartTable.tsx:342 +#: src/tables/part/PartTable.tsx:343 msgid "Add Part" msgstr "Adicionar Peça" -#: src/pages/part/PartDetail.tsx:941 +#: src/pages/part/PartDetail.tsx:973 msgid "Delete Part" msgstr "Excluir Peça" -#: src/pages/part/PartDetail.tsx:950 +#: src/pages/part/PartDetail.tsx:982 msgid "Deleting this part cannot be reversed" msgstr "A exclusão desta parte não pode ser revertida" -#: src/pages/part/PartDetail.tsx:999 -#: src/pages/stock/LocationDetail.tsx:324 -#: src/tables/stock/StockItemTable.tsx:444 +#: src/pages/part/PartDetail.tsx:1021 +#: src/pages/stock/LocationDetail.tsx:310 +#: src/tables/stock/StockItemTable.tsx:449 msgid "Stock Actions" msgstr "Ações de Estoque" -#: src/pages/part/PartDetail.tsx:1007 +#: src/pages/part/PartDetail.tsx:1029 msgid "Count part stock" msgstr "Contagem do estoque" -#: src/pages/part/PartDetail.tsx:1018 +#: src/pages/part/PartDetail.tsx:1040 msgid "Transfer part stock" msgstr "Transferir peça do estoque" -#: src/pages/part/PartDetail.tsx:1027 +#: src/pages/part/PartDetail.tsx:1049 msgid "Part Actions" msgstr "Ações da Peça" -#: src/pages/part/PartDetail.tsx:1087 +#: src/pages/part/PartDetail.tsx:1113 msgid "Select Part Revision" msgstr "" @@ -4863,113 +5622,214 @@ msgstr "" #~ msgid "Categories" #~ msgstr "Categories" -#: src/pages/part/PartPricingPanel.tsx:68 +#: src/pages/part/PartPricingPanel.tsx:72 msgid "No pricing data found for this part." msgstr "Nenhum dado de preço foi encontrado para esta parte." -#: src/pages/part/PartPricingPanel.tsx:82 -#: src/pages/part/pricing/PricingOverviewPanel.tsx:190 +#: src/pages/part/PartPricingPanel.tsx:87 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:293 msgid "Pricing Overview" msgstr "Resumo de Preços" -#: src/pages/part/PartPricingPanel.tsx:88 +#: src/pages/part/PartPricingPanel.tsx:93 msgid "Purchase History" msgstr "Histórico de Compras" -#: src/pages/part/PartPricingPanel.tsx:102 -#: src/pages/part/pricing/PricingOverviewPanel.tsx:100 +#: src/pages/part/PartPricingPanel.tsx:107 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:174 msgid "Internal Pricing" msgstr "Preço Interno" -#: src/pages/part/PartPricingPanel.tsx:120 -#: src/pages/part/pricing/PricingOverviewPanel.tsx:107 +#: src/pages/part/PartPricingPanel.tsx:125 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:181 msgid "BOM Pricing" msgstr "Preço da BOM" -#: src/pages/part/PartPricingPanel.tsx:127 -#: src/pages/part/pricing/PricingOverviewPanel.tsx:128 +#: src/pages/part/PartPricingPanel.tsx:132 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:202 msgid "Variant Pricing" msgstr "Preço Variável" -#: src/pages/part/PartPricingPanel.tsx:139 -#: src/pages/part/pricing/PricingOverviewPanel.tsx:135 +#: src/pages/part/PartPricingPanel.tsx:144 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:209 msgid "Sale Pricing" msgstr "Preço de Venda" -#: src/pages/part/PartPricingPanel.tsx:146 -#: src/pages/part/pricing/PricingOverviewPanel.tsx:142 +#: src/pages/part/PartPricingPanel.tsx:151 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:216 msgid "Sale History" msgstr "Histórico de Venda" -#: src/pages/part/pricing/BomPricingPanel.tsx:58 -#: src/pages/part/pricing/BomPricingPanel.tsx:138 -#: src/tables/ColumnRenderers.tsx:262 +#: src/pages/part/PartSchedulingDetail.tsx:47 +#: src/pages/part/PartSchedulingDetail.tsx:299 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:156 +msgid "Maximum" +msgstr "Máximo" + +#: src/pages/part/PartSchedulingDetail.tsx:50 +#: src/pages/part/PartSchedulingDetail.tsx:289 +msgid "Scheduled" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:53 +#: src/pages/part/PartSchedulingDetail.tsx:294 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:144 +msgid "Minimum" +msgstr "Mínimo" + +#: src/pages/part/PartSchedulingDetail.tsx:68 +msgid "Order" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:92 +msgid "Quantity is speculative" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:101 +msgid "No date available for provided quantity" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:105 +msgid "Date is in the past" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:112 +msgid "Scheduled Quantity" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:240 +msgid "No information available" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:241 +msgid "There is no scheduling information available for the selected part" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:276 +msgid "Expected Quantity" +msgstr "" + +#: src/pages/part/PartStocktakeDetail.tsx:63 +#: src/tables/FilterSelectDrawer.tsx:167 +#: src/tables/FilterSelectDrawer.tsx:174 +#: src/tables/build/BuildOrderTestTable.tsx:135 +#: src/tables/purchasing/ManufacturerPartParameterTable.tsx:38 +#: src/tables/stock/StockItemTestResultTable.tsx:192 +msgid "Value" +msgstr "Valor" + +#: src/pages/part/PartStocktakeDetail.tsx:82 +msgid "Edit Stocktake Entry" +msgstr "" + +#: src/pages/part/PartStocktakeDetail.tsx:90 +msgid "Delete Stocktake Entry" +msgstr "" + +#: src/pages/part/PartStocktakeDetail.tsx:96 +#: src/tables/settings/StocktakeReportTable.tsx:69 +msgid "Generate Stocktake Report" +msgstr "" + +#: src/pages/part/PartStocktakeDetail.tsx:101 +#: src/tables/settings/StocktakeReportTable.tsx:71 +msgid "Stocktake report scheduled" +msgstr "" + +#: src/pages/part/PartStocktakeDetail.tsx:119 +#: src/pages/part/PartStocktakeDetail.tsx:235 +#: src/pages/stock/StockDetail.tsx:303 +#: src/tables/stock/StockItemTable.tsx:249 +msgid "Stock Value" +msgstr "" + +#: src/pages/part/PartStocktakeDetail.tsx:139 +#: src/tables/settings/StocktakeReportTable.tsx:77 +msgid "New Stocktake Report" +msgstr "" + +#: src/pages/part/PartStocktakeDetail.tsx:258 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:295 +msgid "Minimum Value" +msgstr "Valor Mínimo" + +#: src/pages/part/PartStocktakeDetail.tsx:264 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:296 +msgid "Maximum Value" +msgstr "Valor Máximo" + +#: src/pages/part/pricing/BomPricingPanel.tsx:87 +#: src/pages/part/pricing/BomPricingPanel.tsx:177 +#: src/tables/ColumnRenderers.tsx:276 #: src/tables/bom/BomTable.tsx:185 #: src/tables/general/ExtraLineItemTable.tsx:64 -#: src/tables/purchasing/PurchaseOrderTable.tsx:112 -#: src/tables/sales/ReturnOrderTable.tsx:104 -#: src/tables/sales/SalesOrderLineItemTable.tsx:89 -#: src/tables/sales/SalesOrderTable.tsx:136 +#: src/tables/purchasing/PurchaseOrderTable.tsx:113 +#: src/tables/sales/ReturnOrderTable.tsx:127 +#: src/tables/sales/SalesOrderLineItemTable.tsx:97 +#: src/tables/sales/SalesOrderTable.tsx:149 msgid "Total Price" msgstr "Preço Total" -#: src/pages/part/pricing/BomPricingPanel.tsx:78 -#: src/pages/part/pricing/BomPricingPanel.tsx:102 +#: src/pages/part/pricing/BomPricingPanel.tsx:112 +#: src/pages/part/pricing/BomPricingPanel.tsx:141 #: src/tables/bom/UsedInTable.tsx:49 +#: src/tables/build/BuildLineTable.tsx:296 #: src/tables/part/PartTable.tsx:202 msgid "Component" msgstr "Componente" -#: src/pages/part/pricing/BomPricingPanel.tsx:81 -#: src/pages/part/pricing/VariantPricingPanel.tsx:37 -#: src/pages/part/pricing/VariantPricingPanel.tsx:97 -msgid "Minimum Price" -msgstr "Preço Mínimo" - -#: src/pages/part/pricing/BomPricingPanel.tsx:82 -#: src/pages/part/pricing/VariantPricingPanel.tsx:45 -#: src/pages/part/pricing/VariantPricingPanel.tsx:98 -msgid "Maximum Price" -msgstr "Preço Máximo" - #: src/pages/part/pricing/BomPricingPanel.tsx:112 #~ msgid "Minimum Total Price" #~ msgstr "Minimum Total Price" +#: src/pages/part/pricing/BomPricingPanel.tsx:115 +#: src/pages/part/pricing/VariantPricingPanel.tsx:37 +#: src/pages/part/pricing/VariantPricingPanel.tsx:97 +msgid "Minimum Price" +msgstr "Preço Mínimo" + +#: src/pages/part/pricing/BomPricingPanel.tsx:116 +#: src/pages/part/pricing/VariantPricingPanel.tsx:45 +#: src/pages/part/pricing/VariantPricingPanel.tsx:98 +msgid "Maximum Price" +msgstr "Preço Máximo" + #: src/pages/part/pricing/BomPricingPanel.tsx:117 #~ msgid "Maximum Total Price" #~ msgstr "Maximum Total Price" -#: src/pages/part/pricing/BomPricingPanel.tsx:129 -#: src/pages/part/pricing/PriceBreakPanel.tsx:172 -#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:67 -#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:128 -#: src/pages/part/pricing/SupplierPricingPanel.tsx:62 +#: src/pages/part/pricing/BomPricingPanel.tsx:168 +#: src/pages/part/pricing/PriceBreakPanel.tsx:173 +#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:70 +#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:125 +#: src/pages/part/pricing/SupplierPricingPanel.tsx:66 +#: src/pages/stock/StockDetail.tsx:291 #: src/tables/bom/BomTable.tsx:176 #: src/tables/general/ExtraLineItemTable.tsx:56 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:223 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:225 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:92 +#: src/tables/stock/StockItemTable.tsx:239 msgid "Unit Price" msgstr "Preço Unitário" -#: src/pages/part/pricing/BomPricingPanel.tsx:154 +#: src/pages/part/pricing/BomPricingPanel.tsx:193 #: src/pages/part/pricing/VariantPricingPanel.tsx:53 -#: src/tables/purchasing/SupplierPartTable.tsx:148 +#: src/tables/purchasing/SupplierPartTable.tsx:150 msgid "Updated" msgstr "Atualizado" -#: src/pages/part/pricing/BomPricingPanel.tsx:219 +#: src/pages/part/pricing/BomPricingPanel.tsx:258 msgid "Pie Chart" msgstr "Gráfico circular" -#: src/pages/part/pricing/BomPricingPanel.tsx:220 +#: src/pages/part/pricing/BomPricingPanel.tsx:259 msgid "Bar Chart" msgstr "Gráfico de Barras" #: src/pages/part/pricing/PriceBreakPanel.tsx:58 -#: src/pages/part/pricing/PriceBreakPanel.tsx:110 +#: src/pages/part/pricing/PriceBreakPanel.tsx:111 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:142 -#: src/tables/purchasing/SupplierPriceBreakTable.tsx:168 +#: src/tables/purchasing/SupplierPriceBreakTable.tsx:169 msgid "Add Price Break" msgstr "Editar Quebra de Preço" @@ -4987,47 +5847,71 @@ msgstr "Excluir quebra de preço" msgid "Price Break" msgstr "Quebra de Preço" -#: src/pages/part/pricing/PriceBreakPanel.tsx:170 +#: src/pages/part/pricing/PriceBreakPanel.tsx:171 msgid "Price" msgstr "Preço" -#: src/pages/part/pricing/PricingOverviewPanel.tsx:51 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:68 +msgid "Refreshing pricing data" +msgstr "" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:88 +msgid "Pricing data updated" +msgstr "" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:95 +msgid "Failed to update pricing data" +msgstr "" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:104 +msgid "Edit Pricing" +msgstr "" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:125 msgid "Pricing Category" msgstr "Categoria de Preços" -#: src/pages/part/pricing/PricingOverviewPanel.tsx:70 -msgid "Minimum" -msgstr "Mínimo" - -#: src/pages/part/pricing/PricingOverviewPanel.tsx:82 -msgid "Maximum" -msgstr "Máximo" - -#: src/pages/part/pricing/PricingOverviewPanel.tsx:114 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:188 msgid "Purchase Pricing" msgstr "Preço de Compra" -#: src/pages/part/pricing/PricingOverviewPanel.tsx:149 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:223 msgid "Override Pricing" msgstr "Alterar Preços" -#: src/pages/part/pricing/PricingOverviewPanel.tsx:156 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:230 msgid "Overall Pricing" msgstr "Preços Gerais" -#: src/pages/part/pricing/PricingOverviewPanel.tsx:175 -#: src/pages/stock/StockDetail.tsx:129 -#: src/tables/stock/StockItemTable.tsx:240 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:249 +#: src/pages/stock/StockDetail.tsx:145 +#: src/tables/stock/StockItemTable.tsx:275 msgid "Last Updated" msgstr "Última Atualização" -#: src/pages/part/pricing/PricingOverviewPanel.tsx:192 -msgid "Minimum Value" -msgstr "Valor Mínimo" +#: src/pages/part/pricing/PricingOverviewPanel.tsx:253 +msgid "Pricing Not Set" +msgstr "" -#: src/pages/part/pricing/PricingOverviewPanel.tsx:193 -msgid "Maximum Value" -msgstr "Valor Máximo" +#: src/pages/part/pricing/PricingOverviewPanel.tsx:254 +msgid "Pricing data has not been calculated for this part" +msgstr "" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:258 +msgid "Pricing Actions" +msgstr "" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:261 +msgid "Refresh" +msgstr "" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:262 +msgid "Refresh pricing data" +msgstr "" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:277 +msgid "Edit pricing data" +msgstr "" #: src/pages/part/pricing/PricingPanel.tsx:24 msgid "No data available" @@ -5045,28 +5929,20 @@ msgstr "Não há dados de preços disponíveis" msgid "Loading pricing data" msgstr "Carregando dados de preços" -#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:40 -#: src/pages/part/pricing/SaleHistoryPanel.tsx:36 -#: src/tables/ColumnRenderers.tsx:201 -#: src/tables/build/BuildOrderTestTable.tsx:150 -#: src/tables/plugin/PluginListTable.tsx:139 -msgid "Date" -msgstr "Data" - #: src/pages/part/pricing/PurchaseHistoryPanel.tsx:47 msgid "Purchase Price" msgstr "Preço de Compra" -#: src/pages/part/pricing/SaleHistoryPanel.tsx:22 -msgid "Sale Order" -msgstr "Ordem de Venda" +#: src/pages/part/pricing/SaleHistoryPanel.tsx:24 +#~ msgid "Sale Order" +#~ msgstr "Sale Order" -#: src/pages/part/pricing/SaleHistoryPanel.tsx:42 -#: src/pages/part/pricing/SaleHistoryPanel.tsx:92 +#: src/pages/part/pricing/SaleHistoryPanel.tsx:44 +#: src/pages/part/pricing/SaleHistoryPanel.tsx:87 msgid "Sale Price" msgstr "Preço de Venda" -#: src/pages/part/pricing/SupplierPricingPanel.tsx:65 +#: src/pages/part/pricing/SupplierPricingPanel.tsx:69 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:83 msgid "Supplier Price" msgstr "Preço do fornecedor" @@ -5076,23 +5952,23 @@ msgstr "Preço do fornecedor" msgid "Variant Part" msgstr "Peça Variante" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:93 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:87 msgid "Edit Purchase Order" msgstr "Editar ordem de compra" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:102 -#: src/tables/purchasing/PurchaseOrderTable.tsx:128 -#: src/tables/purchasing/PurchaseOrderTable.tsx:140 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:96 +#: src/tables/purchasing/PurchaseOrderTable.tsx:129 +#: src/tables/purchasing/PurchaseOrderTable.tsx:142 msgid "Add Purchase Order" msgstr "Adicionar Ordem de Compra" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:127 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:121 msgid "Supplier Reference" msgstr "Referencia do fornecedor" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:158 -#: src/pages/sales/ReturnOrderDetail.tsx:137 -#: src/pages/sales/SalesOrderDetail.tsx:137 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:152 +#: src/pages/sales/ReturnOrderDetail.tsx:129 +#: src/pages/sales/SalesOrderDetail.tsx:132 msgid "Completed Line Items" msgstr "Itens de Linha Concluídos" @@ -5102,91 +5978,112 @@ msgstr "Itens de Linha Concluídos" #~ msgid "Order Currency," #~ msgstr "Order Currency," -#: src/pages/purchasing/PurchaseOrderDetail.tsx:165 -#: src/pages/sales/ReturnOrderDetail.tsx:144 -#: src/pages/sales/SalesOrderDetail.tsx:153 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:161 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:231 +msgid "Destination" +msgstr "Destino" + +#: src/pages/purchasing/PurchaseOrderDetail.tsx:167 +#: src/pages/sales/ReturnOrderDetail.tsx:136 +#: src/pages/sales/SalesOrderDetail.tsx:148 msgid "Order Currency" msgstr "Moeda do pedido" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:172 -#: src/pages/sales/ReturnOrderDetail.tsx:151 -#: src/pages/sales/SalesOrderDetail.tsx:160 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:173 +#: src/pages/sales/ReturnOrderDetail.tsx:143 +#: src/pages/sales/SalesOrderDetail.tsx:155 msgid "Total Cost" msgstr "Custo Total" #: src/pages/purchasing/PurchaseOrderDetail.tsx:207 -#: src/pages/sales/ReturnOrderDetail.tsx:186 -#: src/pages/sales/SalesOrderDetail.tsx:195 -msgid "Created On" -msgstr "Criado em" +#: src/pages/sales/ReturnOrderDetail.tsx:183 +#: src/pages/sales/SalesOrderDetail.tsx:191 +#~ msgid "Created On" +#~ msgstr "Created On" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:252 -#: src/pages/sales/ReturnOrderDetail.tsx:231 -#: src/pages/sales/SalesOrderDetail.tsx:266 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:221 +#: src/pages/sales/ReturnOrderDetail.tsx:193 +#: src/pages/sales/SalesOrderDetail.tsx:204 +msgid "Issue Date" +msgstr "" + +#: src/pages/purchasing/PurchaseOrderDetail.tsx:237 +#: src/pages/sales/ReturnOrderDetail.tsx:209 +#: src/pages/sales/SalesOrderDetail.tsx:219 +#: src/tables/build/BuildOrderTable.tsx:98 +#: src/tables/part/PartPurchaseOrdersTable.tsx:105 +#: src/tables/sales/ReturnOrderTable.tsx:122 +msgid "Completion Date" +msgstr "" + +#: src/pages/purchasing/PurchaseOrderDetail.tsx:276 +#: src/pages/sales/ReturnOrderDetail.tsx:248 +#: src/pages/sales/SalesOrderDetail.tsx:288 msgid "Order Details" msgstr "Detalhes do pedido" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:280 -#: src/pages/sales/ReturnOrderDetail.tsx:258 -#: src/pages/sales/SalesOrderDetail.tsx:297 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:304 +#: src/pages/sales/ReturnOrderDetail.tsx:276 +#: src/pages/sales/SalesOrderDetail.tsx:319 msgid "Extra Line Items" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:337 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:346 msgid "Issue Purchase Order" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:345 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:354 msgid "Cancel Purchase Order" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:353 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:362 msgid "Hold Purchase Order" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:361 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:370 msgid "Complete Purchase Order" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:427 -#: src/pages/sales/ReturnOrderDetail.tsx:428 -#: src/pages/sales/SalesOrderDetail.tsx:468 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:425 +#: src/pages/sales/ReturnOrderDetail.tsx:424 +#: src/pages/sales/SalesOrderDetail.tsx:464 msgid "Order Actions" msgstr "Ações do Pedido" -#: src/pages/sales/ReturnOrderDetail.tsx:101 -#: src/pages/sales/SalesOrderDetail.tsx:107 -#: src/tables/sales/SalesOrderTable.tsx:124 +#: src/pages/sales/ReturnOrderDetail.tsx:92 +#: src/pages/sales/SalesOrderDetail.tsx:101 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:109 +#: src/tables/sales/SalesOrderTable.tsx:137 msgid "Customer Reference" msgstr "Referência do Cliente" -#: src/pages/sales/ReturnOrderDetail.tsx:315 +#: src/pages/sales/ReturnOrderDetail.tsx:322 msgid "Edit Return Order" msgstr "Editar Pedido de Devolução" -#: src/pages/sales/ReturnOrderDetail.tsx:324 -#: src/tables/sales/ReturnOrderTable.tsx:119 -#: src/tables/sales/ReturnOrderTable.tsx:128 +#: src/pages/sales/ReturnOrderDetail.tsx:331 +#: src/tables/sales/ReturnOrderTable.tsx:142 +#: src/tables/sales/ReturnOrderTable.tsx:152 msgid "Add Return Order" msgstr "Novo Pedido de Devolução" -#: src/pages/sales/ReturnOrderDetail.tsx:336 +#: src/pages/sales/ReturnOrderDetail.tsx:343 msgid "Issue Return Order" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:344 +#: src/pages/sales/ReturnOrderDetail.tsx:349 +#~ msgid "Order canceled" +#~ msgstr "Order canceled" + +#: src/pages/sales/ReturnOrderDetail.tsx:351 msgid "Cancel Return Order" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:347 -msgid "Order canceled" -msgstr "" - -#: src/pages/sales/ReturnOrderDetail.tsx:352 +#: src/pages/sales/ReturnOrderDetail.tsx:359 msgid "Hold Return Order" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:360 +#: src/pages/sales/ReturnOrderDetail.tsx:367 msgid "Complete Return Order" msgstr "" @@ -5194,117 +6091,193 @@ msgstr "" msgid "Customers" msgstr "Clientes" -#: src/pages/sales/SalesOrderDetail.tsx:145 +#: src/pages/sales/SalesOrderDetail.tsx:140 msgid "Completed Shipments" msgstr "Envios concluídos" -#: src/pages/sales/SalesOrderDetail.tsx:243 -msgid "Edit Sales Order" -msgstr "Editar Pedido de Venda" - -#: src/pages/sales/SalesOrderDetail.tsx:252 -#: src/tables/sales/SalesOrderTable.tsx:84 -#: src/tables/sales/SalesOrderTable.tsx:96 -msgid "Add Sales Order" -msgstr "Novo Pedido de Venda" - #: src/pages/sales/SalesOrderDetail.tsx:256 #~ msgid "Pending Shipments" #~ msgstr "Pending Shipments" -#: src/pages/sales/SalesOrderDetail.tsx:313 +#: src/pages/sales/SalesOrderDetail.tsx:261 +msgid "Edit Sales Order" +msgstr "Editar Pedido de Venda" + +#: src/pages/sales/SalesOrderDetail.tsx:274 +#: src/tables/sales/SalesOrderTable.tsx:96 +#: src/tables/sales/SalesOrderTable.tsx:109 +msgid "Add Sales Order" +msgstr "Novo Pedido de Venda" + +#: src/pages/sales/SalesOrderDetail.tsx:335 msgid "Shipments" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:369 +#: src/pages/sales/SalesOrderDetail.tsx:376 msgid "Issue Sales Order" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:377 +#: src/pages/sales/SalesOrderDetail.tsx:384 msgid "Cancel Sales Order" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:385 +#: src/pages/sales/SalesOrderDetail.tsx:392 msgid "Hold Sales Order" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:393 +#: src/pages/sales/SalesOrderDetail.tsx:400 msgid "Complete Sales Order" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:432 +#: src/pages/sales/SalesOrderDetail.tsx:439 msgid "Ship Order" msgstr "" -#: src/pages/stock/LocationDetail.tsx:117 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:117 +#: src/tables/sales/SalesOrderShipmentTable.tsx:96 +msgid "Shipment Reference" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:124 +msgid "Allocated Items" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:133 +msgid "Tracking Number" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:141 +msgid "Invoice Number" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:149 +#: src/tables/ColumnRenderers.tsx:242 +#: src/tables/sales/SalesOrderAllocationTable.tsx:142 +#: src/tables/sales/SalesOrderShipmentTable.tsx:115 +msgid "Shipment Date" +msgstr "Data de Envio" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:157 +#: src/tables/sales/SalesOrderShipmentTable.tsx:119 +msgid "Delivery Date" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:204 +msgid "Shipment Details" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:210 +msgid "Assigned Items" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:241 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:317 +#: src/tables/sales/SalesOrderShipmentTable.tsx:75 +msgid "Edit Shipment" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:248 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:322 +#: src/tables/sales/SalesOrderShipmentTable.tsx:67 +msgid "Cancel Shipment" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:261 +#: src/tables/sales/SalesOrderShipmentTable.tsx:83 +#: src/tables/sales/SalesOrderShipmentTable.tsx:151 +msgid "Complete Shipment" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:276 +#: src/tables/part/PartPurchaseOrdersTable.tsx:121 +msgid "Pending" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:277 +#: src/tables/sales/SalesOrderAllocationTable.tsx:148 +#: src/tables/sales/SalesOrderShipmentTable.tsx:108 +#: src/tables/sales/SalesOrderShipmentTable.tsx:197 +msgid "Shipped" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:279 +#: src/tables/sales/SalesOrderShipmentTable.tsx:202 +msgid "Delivered" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:293 +msgid "Send Shipment" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:312 +msgid "Shipment Actions" +msgstr "" + +#: src/pages/stock/LocationDetail.tsx:111 msgid "Parent Location" msgstr "Localização Parente" -#: src/pages/stock/LocationDetail.tsx:135 +#: src/pages/stock/LocationDetail.tsx:129 msgid "Sublocations" msgstr "Sub-locais" -#: src/pages/stock/LocationDetail.tsx:147 +#: src/pages/stock/LocationDetail.tsx:141 #: src/tables/stock/StockLocationTable.tsx:54 msgid "External" msgstr "Externos" -#: src/pages/stock/LocationDetail.tsx:153 +#: src/pages/stock/LocationDetail.tsx:147 #: src/tables/stock/StockLocationTable.tsx:63 msgid "Location Type" msgstr "Tipo de Localização" -#: src/pages/stock/LocationDetail.tsx:164 +#: src/pages/stock/LocationDetail.tsx:158 msgid "Top level stock location" msgstr "Local de estoque de alto nível" -#: src/pages/stock/LocationDetail.tsx:175 +#: src/pages/stock/LocationDetail.tsx:169 msgid "Location Details" msgstr "Detalhes da localização" -#: src/pages/stock/LocationDetail.tsx:201 +#: src/pages/stock/LocationDetail.tsx:195 msgid "Default Parts" msgstr "Peças padrão" -#: src/pages/stock/LocationDetail.tsx:220 -#: src/pages/stock/LocationDetail.tsx:351 +#: src/pages/stock/LocationDetail.tsx:214 +#: src/pages/stock/LocationDetail.tsx:336 #: src/tables/stock/StockLocationTable.tsx:123 msgid "Edit Stock Location" msgstr "Editar Local de Estoque" -#: src/pages/stock/LocationDetail.tsx:241 -#: src/pages/stock/LocationDetail.tsx:356 +#: src/pages/stock/LocationDetail.tsx:235 +#: src/pages/stock/LocationDetail.tsx:341 msgid "Delete Stock Location" msgstr "Editar Local de Estoque" -#: src/pages/stock/LocationDetail.tsx:244 +#: src/pages/stock/LocationDetail.tsx:238 msgid "Items Action" msgstr "Ações do item" -#: src/pages/stock/LocationDetail.tsx:245 +#: src/pages/stock/LocationDetail.tsx:239 msgid "Action for stock items in this location" msgstr "Ações para itens de estoque nesta localização" -#: src/pages/stock/LocationDetail.tsx:250 +#: src/pages/stock/LocationDetail.tsx:244 msgid "Child Locations Action" msgstr "Ações para localizações Filhas" -#: src/pages/stock/LocationDetail.tsx:251 +#: src/pages/stock/LocationDetail.tsx:245 msgid "Action for child locations in this location" msgstr "Ação para locais filhos nesta localização" -#: src/pages/stock/LocationDetail.tsx:346 +#: src/pages/stock/LocationDetail.tsx:332 msgid "Location Actions" msgstr "Ações de localização" -#: src/pages/stock/StockDetail.tsx:108 +#: src/pages/stock/StockDetail.tsx:116 msgid "Base Part" msgstr "Peça Base" -#: src/pages/stock/StockDetail.tsx:115 -msgid "Stock Status" -msgstr "Estado do Estoque" - #: src/pages/stock/StockDetail.tsx:155 #~ msgid "Link custom barcode to stock item" #~ msgstr "Link custom barcode to stock item" @@ -5313,113 +6286,179 @@ msgstr "Estado do Estoque" #~ msgid "Unlink custom barcode from stock item" #~ msgstr "Unlink custom barcode from stock item" -#: src/pages/stock/StockDetail.tsx:188 -msgid "Installed In" -msgstr "Instalado em" - -#: src/pages/stock/StockDetail.tsx:204 -msgid "Consumed By" -msgstr "Consumido por" +#: src/pages/stock/StockDetail.tsx:178 +msgid "Allocated to Orders" +msgstr "" #: src/pages/stock/StockDetail.tsx:205 #~ msgid "Edit stock item" #~ msgstr "Edit stock item" -#: src/pages/stock/StockDetail.tsx:213 -#: src/tables/build/BuildAllocatedStockTable.tsx:64 -#: src/tables/stock/StockTrackingTable.tsx:96 -msgid "Build Order" -msgstr "Ordem de Produção" +#: src/pages/stock/StockDetail.tsx:209 +msgid "Installed In" +msgstr "Instalado em" #: src/pages/stock/StockDetail.tsx:217 #~ msgid "Delete stock item" #~ msgstr "Delete stock item" -#: src/pages/stock/StockDetail.tsx:291 +#: src/pages/stock/StockDetail.tsx:226 +msgid "Parent Item" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:230 +msgid "Parent stock item" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:236 +msgid "Consumed By" +msgstr "Consumido por" + +#: src/pages/stock/StockDetail.tsx:245 +#: src/tables/build/BuildAllocatedStockTable.tsx:77 +#: src/tables/stock/StockTrackingTable.tsx:100 +msgid "Build Order" +msgstr "Ordem de Produção" + +#: src/pages/stock/StockDetail.tsx:283 +#: src/tables/stock/StockItemTable.tsx:270 +msgid "Expiry Date" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:414 msgid "Stock Details" msgstr "Detalhes de Estoque" -#: src/pages/stock/StockDetail.tsx:297 +#: src/pages/stock/StockDetail.tsx:420 msgid "Stock Tracking" msgstr "Rastreamento de Estoque" -#: src/pages/stock/StockDetail.tsx:350 -msgid "Test Data" -msgstr "Dados de teste" - -#: src/pages/stock/StockDetail.tsx:364 -msgid "Installed Items" -msgstr "Itens instalados" - -#: src/pages/stock/StockDetail.tsx:371 -msgid "Child Items" -msgstr "Itens Filhos" - -#: src/pages/stock/StockDetail.tsx:425 -msgid "Edit Stock Item" -msgstr "Editar Item do Estoque" - #: src/pages/stock/StockDetail.tsx:433 #~ msgid "Duplicate stock item" #~ msgstr "Duplicate stock item" -#: src/pages/stock/StockDetail.tsx:452 +#: src/pages/stock/StockDetail.tsx:475 +msgid "Test Data" +msgstr "Dados de teste" + +#: src/pages/stock/StockDetail.tsx:489 +msgid "Installed Items" +msgstr "Itens instalados" + +#: src/pages/stock/StockDetail.tsx:496 +msgid "Child Items" +msgstr "Itens Filhos" + +#: src/pages/stock/StockDetail.tsx:545 +msgid "Edit Stock Item" +msgstr "Editar Item do Estoque" + +#: src/pages/stock/StockDetail.tsx:572 msgid "Delete Stock Item" msgstr "Excluir Item de Estoque" -#: src/pages/stock/StockDetail.tsx:504 +#: src/pages/stock/StockDetail.tsx:604 +msgid "Serialize Stock Item" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:617 +msgid "Stock item serialized" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:623 +msgid "Return Stock Item" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:626 +msgid "Return this item into stock. This will remove the customer assignment." +msgstr "" + +#: src/pages/stock/StockDetail.tsx:636 +msgid "Item returned to stock" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:666 msgid "Stock Operations" msgstr "Operações de Stock" -#: src/pages/stock/StockDetail.tsx:509 +#: src/pages/stock/StockDetail.tsx:671 msgid "Count stock" msgstr "Contar Estoque" -#: src/pages/stock/StockDetail.tsx:519 -#: src/tables/stock/StockItemTable.tsx:449 -msgid "Add stock" -msgstr "Adicionar estoque" +#: src/pages/stock/StockDetail.tsx:671 +#: src/tables/stock/StockItemTable.tsx:452 +#~ msgid "Add stock" +#~ msgstr "Add stock" -#: src/pages/stock/StockDetail.tsx:527 -#: src/tables/stock/StockItemTable.tsx:458 -msgid "Remove stock" -msgstr "Remover Estoque" +#: src/pages/stock/StockDetail.tsx:680 +#: src/tables/stock/StockItemTable.tsx:461 +#~ msgid "Remove stock" +#~ msgstr "Remove stock" -#: src/pages/stock/StockDetail.tsx:534 +#: src/pages/stock/StockDetail.tsx:698 +#: src/tables/stock/StockItemTable.tsx:481 +#~ msgid "Transfer stock" +#~ msgstr "Transfer stock" + +#: src/pages/stock/StockDetail.tsx:699 +msgid "Serialize" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:700 +msgid "Serialize stock" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:711 msgid "Transfer" msgstr "Transferir" -#: src/pages/stock/StockDetail.tsx:535 -#: src/tables/stock/StockItemTable.tsx:478 -msgid "Transfer stock" -msgstr "Transferir Estoque" +#: src/pages/stock/StockDetail.tsx:722 +msgid "Return" +msgstr "" -#: src/pages/stock/StockDetail.tsx:546 +#: src/pages/stock/StockDetail.tsx:723 +msgid "Return from customer" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:738 msgid "Stock Item Actions" msgstr "Ações do Item do Estoque" -#: src/tables/ColumnRenderers.tsx:30 +#: src/pages/stock/StockDetail.tsx:808 +msgid "Stale" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:814 +msgid "Expired" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:820 +msgid "Unavailable" +msgstr "" + +#: src/tables/ColumnRenderers.tsx:36 msgid "Part is not active" msgstr "A peça não está ativa" -#: src/tables/ColumnRenderers.tsx:35 -msgid "Part is locked" +#: src/tables/ColumnRenderers.tsx:41 +#: src/tables/bom/BomTable.tsx:542 +#: src/tables/part/PartParameterTable.tsx:193 +#: src/tables/part/PartTestTemplateTable.tsx:253 +msgid "Part is Locked" msgstr "" -#: src/tables/ColumnRenderers.tsx:57 +#: src/tables/ColumnRenderers.tsx:41 +#~ msgid "Part is locked" +#~ msgstr "Part is locked" + +#: src/tables/ColumnRenderers.tsx:46 +msgid "You are subscribed to notifications for this part" +msgstr "" + +#: src/tables/ColumnRenderers.tsx:68 msgid "No location set" msgstr "Nenhum local definido" -#: src/tables/ColumnRenderers.tsx:228 -#: src/tables/sales/SalesOrderShipmentTable.tsx:79 -msgid "Shipment Date" -msgstr "Data de Envio" - -#: src/tables/ColumnRenderers.tsx:248 -#: src/tables/settings/CurrencyTable.tsx:23 -msgid "Currency" -msgstr "Moeda" - #: src/tables/ColumnSelect.tsx:16 #: src/tables/ColumnSelect.tsx:23 msgid "Select Columns" @@ -5453,91 +6492,116 @@ msgstr "Excel (.xlsx)" msgid "Download Data" msgstr "Descarregar dados" -#: src/tables/Filter.tsx:89 -#: src/tables/build/BuildOrderTable.tsx:135 +#: src/tables/Filter.tsx:101 msgid "Assigned to me" msgstr "Atribuído a mim" -#: src/tables/Filter.tsx:90 -#: src/tables/build/BuildOrderTable.tsx:136 +#: src/tables/Filter.tsx:102 msgid "Show orders assigned to me" msgstr "Mostrar pedidos atribuídos a mim" -#: src/tables/Filter.tsx:97 +#: src/tables/Filter.tsx:106 +#~ msgid "Show overdue orders" +#~ msgstr "Show overdue orders" + +#: src/tables/Filter.tsx:109 +#: src/tables/build/BuildOrderTable.tsx:120 +#: src/tables/sales/SalesOrderAllocationTable.tsx:59 msgid "Outstanding" msgstr "Pendente" -#: src/tables/Filter.tsx:98 -msgid "Show outstanding orders" -msgstr "Mostrar pedidos pendentes" +#: src/tables/Filter.tsx:110 +msgid "Show outstanding items" +msgstr "" -#: src/tables/Filter.tsx:105 -#: src/tables/build/BuildOrderTable.tsx:128 +#: src/tables/Filter.tsx:117 msgid "Overdue" msgstr "Em atraso" -#: src/tables/Filter.tsx:106 -msgid "Show overdue orders" -msgstr "Mostrar pedidos atrasados" +#: src/tables/Filter.tsx:118 +msgid "Show overdue items" +msgstr "" -#: src/tables/FilterSelectDrawer.tsx:51 +#: src/tables/Filter.tsx:125 +msgid "Minimum Date" +msgstr "" + +#: src/tables/Filter.tsx:126 +msgid "Show items after this date" +msgstr "" + +#: src/tables/Filter.tsx:134 +msgid "Maximum Date" +msgstr "" + +#: src/tables/Filter.tsx:135 +msgid "Show items before this date" +msgstr "" + +#: src/tables/Filter.tsx:144 +msgid "Has Project Code" +msgstr "Possui Código do Projeto" + +#: src/tables/Filter.tsx:145 +msgid "Show orders with an assigned project code" +msgstr "" + +#: src/tables/FilterSelectDrawer.tsx:55 msgid "Remove filter" msgstr "Remover filtro" -#: src/tables/FilterSelectDrawer.tsx:130 +#: src/tables/FilterSelectDrawer.tsx:159 msgid "Select filter" msgstr "Selecionar filtro" -#: src/tables/FilterSelectDrawer.tsx:131 +#: src/tables/FilterSelectDrawer.tsx:160 msgid "Filter" msgstr "Filtro" -#: src/tables/FilterSelectDrawer.tsx:138 -#: src/tables/build/BuildOrderTestTable.tsx:134 -#: src/tables/purchasing/ManufacturerPartParameterTable.tsx:38 -#: src/tables/stock/StockItemTestResultTable.tsx:186 -msgid "Value" -msgstr "Valor" +#: src/tables/FilterSelectDrawer.tsx:168 +msgid "Select date value" +msgstr "" -#: src/tables/FilterSelectDrawer.tsx:140 +#: src/tables/FilterSelectDrawer.tsx:176 msgid "Select filter value" msgstr "Selecionar valor do filtro" -#: src/tables/FilterSelectDrawer.tsx:183 +#: src/tables/FilterSelectDrawer.tsx:219 +#: src/tables/InvenTreeTableHeader.tsx:214 msgid "Table Filters" msgstr "Filtros de tabela" -#: src/tables/FilterSelectDrawer.tsx:215 +#: src/tables/FilterSelectDrawer.tsx:251 msgid "Add Filter" msgstr "Adicionar Filtro" -#: src/tables/FilterSelectDrawer.tsx:224 +#: src/tables/FilterSelectDrawer.tsx:260 msgid "Clear Filters" msgstr "Limpar Filtros" -#: src/tables/InvenTreeTable.tsx:123 -#: src/tables/InvenTreeTable.tsx:431 -#: src/tables/InvenTreeTable.tsx:455 +#: src/tables/InvenTreeTable.tsx:96 +#: src/tables/InvenTreeTable.tsx:417 +#: src/tables/InvenTreeTable.tsx:441 msgid "No records found" msgstr "Nenhum registo encontrado" -#: src/tables/InvenTreeTable.tsx:466 +#: src/tables/InvenTreeTable.tsx:452 msgid "Server returned incorrect data type" msgstr "O servidor retornou dados incorretos" -#: src/tables/InvenTreeTable.tsx:474 +#: src/tables/InvenTreeTable.tsx:460 msgid "Bad request" msgstr "Pedido inválido" -#: src/tables/InvenTreeTable.tsx:477 +#: src/tables/InvenTreeTable.tsx:463 msgid "Unauthorized" msgstr "Não autorizado" -#: src/tables/InvenTreeTable.tsx:480 +#: src/tables/InvenTreeTable.tsx:466 msgid "Forbidden" msgstr "Proibido" -#: src/tables/InvenTreeTable.tsx:483 +#: src/tables/InvenTreeTable.tsx:469 msgid "Not found" msgstr "Não encontrado" @@ -5545,18 +6609,6 @@ msgstr "Não encontrado" #~ msgid "Are you sure you want to delete the selected records?" #~ msgstr "Are you sure you want to delete the selected records?" -#: src/tables/InvenTreeTable.tsx:525 -msgid "Delete Selected Items" -msgstr "" - -#: src/tables/InvenTreeTable.tsx:529 -msgid "Are you sure you want to delete the selected items?" -msgstr "" - -#: src/tables/InvenTreeTable.tsx:531 -msgid "This action cannot be undone!" -msgstr "Esta ação não pode ser desfeita!" - #: src/tables/InvenTreeTable.tsx:535 #~ msgid "Deleted records" #~ msgstr "Deleted records" @@ -5569,31 +6621,56 @@ msgstr "Esta ação não pode ser desfeita!" #~ msgid "Failed to delete records" #~ msgstr "Failed to delete records" +#: src/tables/InvenTreeTable.tsx:552 +#~ msgid "This action cannot be undone!" +#~ msgstr "This action cannot be undone!" + #: src/tables/InvenTreeTable.tsx:594 #: src/tables/InvenTreeTable.tsx:595 #~ msgid "Print actions" #~ msgstr "Print actions" -#: src/tables/InvenTreeTable.tsx:618 -#: src/tables/InvenTreeTable.tsx:619 -msgid "Barcode actions" -msgstr "Ações de código de barras" +#: src/tables/InvenTreeTable.tsx:655 +#: src/tables/InvenTreeTable.tsx:656 +#~ msgid "Barcode actions" +#~ msgstr "Barcode actions" -#: src/tables/InvenTreeTable.tsx:628 +#: src/tables/InvenTreeTable.tsx:712 +#~ msgid "Table filters" +#~ msgstr "Table filters" + +#: src/tables/InvenTreeTable.tsx:725 +#~ msgid "Clear custom query filters" +#~ msgstr "Clear custom query filters" + +#: src/tables/InvenTreeTableHeader.tsx:98 +msgid "Delete Selected Items" +msgstr "" + +#: src/tables/InvenTreeTableHeader.tsx:102 +msgid "Are you sure you want to delete the selected items?" +msgstr "" + +#: src/tables/InvenTreeTableHeader.tsx:104 +#: src/tables/plugin/PluginListTable.tsx:305 +msgid "This action cannot be undone" +msgstr "" + +#: src/tables/InvenTreeTableHeader.tsx:142 +msgid "Custom table filters are active" +msgstr "" + +#: src/tables/InvenTreeTableHeader.tsx:169 msgid "Delete selected records" msgstr "Remover registos selecionados" -#: src/tables/InvenTreeTable.tsx:649 +#: src/tables/InvenTreeTableHeader.tsx:188 msgid "Refresh data" msgstr "Atualizar dados" -#: src/tables/InvenTreeTable.tsx:675 -msgid "Table filters" -msgstr "Filtros de tabela" - #: src/tables/TableHoverCard.tsx:35 -msgid "item-{idx}" -msgstr "" +#~ msgid "item-{idx}" +#~ msgstr "item-{idx}" #: src/tables/UploadAction.tsx:7 #~ msgid "Upload Data" @@ -5608,31 +6685,36 @@ msgid "Part Information" msgstr "Informação da Peça" #: src/tables/bom/BomTable.tsx:212 -#: src/tables/build/BuildLineTable.tsx:126 +#: src/tables/build/BuildLineTable.tsx:257 #: src/tables/part/PartTable.tsx:125 msgid "External stock" msgstr "Estoque externo" #: src/tables/bom/BomTable.tsx:220 -#: src/tables/build/BuildLineTable.tsx:89 +#: src/tables/build/BuildLineTable.tsx:220 msgid "Includes substitute stock" msgstr "Inclui substitutos de estoque" #: src/tables/bom/BomTable.tsx:229 -#: src/tables/build/BuildLineTable.tsx:99 -#: src/tables/sales/SalesOrderLineItemTable.tsx:127 +#: src/tables/build/BuildLineTable.tsx:230 +#: src/tables/sales/SalesOrderLineItemTable.tsx:135 msgid "Includes variant stock" msgstr "Inclui estoque variante" +#: src/tables/bom/BomTable.tsx:245 +#: src/tables/part/PartTable.tsx:92 +msgid "Building" +msgstr "Produzindo" + #: src/tables/bom/BomTable.tsx:254 #: src/tables/part/PartTable.tsx:153 -#: src/tables/sales/SalesOrderLineItemTable.tsx:150 -#: src/tables/stock/StockItemTable.tsx:216 +#: src/tables/sales/SalesOrderLineItemTable.tsx:158 +#: src/tables/stock/StockItemTable.tsx:206 msgid "Stock Information" msgstr "Informação do Estoque" #: src/tables/bom/BomTable.tsx:285 -#: src/tables/build/BuildLineTable.tsx:248 +#: src/tables/build/BuildLineTable.tsx:409 msgid "Consumable item" msgstr "Item Consumível" @@ -5645,7 +6727,7 @@ msgstr "" #~ msgstr "Create BOM Item" #: src/tables/bom/BomTable.tsx:306 -#: src/tables/build/BuildLineTable.tsx:69 +#: src/tables/build/BuildLineTable.tsx:200 msgid "Show testable items" msgstr "" @@ -5658,11 +6740,12 @@ msgid "Show trackable items" msgstr "Mostrar partes rastreáveis" #: src/tables/bom/BomTable.tsx:316 -#: src/tables/build/BuildLineTable.tsx:64 +#: src/tables/build/BuildLineTable.tsx:195 msgid "Show assembled items" msgstr "" #: src/tables/bom/BomTable.tsx:321 +#: src/tables/build/BuildLineTable.tsx:180 msgid "Show items with available stock" msgstr "Mostrar itens com estoque disponível" @@ -5706,7 +6789,7 @@ msgstr "" #: src/tables/bom/BomTable.tsx:345 #: src/tables/bom/UsedInTable.tsx:79 -#: src/tables/build/BuildLineTable.tsx:58 +#: src/tables/build/BuildLineTable.tsx:189 msgid "Optional" msgstr "Opcional" @@ -5724,7 +6807,7 @@ msgstr "Mostrar itens opcionais" #~ msgstr "Bom item deleted" #: src/tables/bom/BomTable.tsx:350 -#: src/tables/build/BuildLineTable.tsx:53 +#: src/tables/build/BuildLineTable.tsx:184 msgid "Consumable" msgstr "Consumível" @@ -5750,12 +6833,12 @@ msgid "Show items with pricing" msgstr "Exibir itens com preço" #: src/tables/bom/BomTable.tsx:378 -#: src/tables/bom/BomTable.tsx:511 +#: src/tables/bom/BomTable.tsx:512 msgid "Import BOM Data" msgstr "" #: src/tables/bom/BomTable.tsx:388 -#: src/tables/bom/BomTable.tsx:523 +#: src/tables/bom/BomTable.tsx:526 msgid "Add BOM Item" msgstr "Adicionar Item na BOM" @@ -5781,7 +6864,7 @@ msgstr "Item da BOM excluído" #: src/tables/bom/BomTable.tsx:423 #: src/tables/bom/BomTable.tsx:426 -#: src/tables/bom/BomTable.tsx:517 +#: src/tables/bom/BomTable.tsx:519 msgid "Validate BOM" msgstr "" @@ -5813,21 +6896,15 @@ msgstr "" msgid "Edit Substitutes" msgstr "Editar peças substitutas" -#: src/tables/bom/BomTable.tsx:539 -#: src/tables/part/PartParameterTable.tsx:193 -#: src/tables/part/PartTestTemplateTable.tsx:252 -msgid "Part is Locked" -msgstr "" - -#: src/tables/bom/BomTable.tsx:544 +#: src/tables/bom/BomTable.tsx:547 msgid "Bill of materials cannot be edited, as the part is locked" msgstr "" #: src/tables/bom/UsedInTable.tsx:33 -#: src/tables/build/BuildLineTable.tsx:63 +#: src/tables/build/BuildLineTable.tsx:194 #: src/tables/part/ParametricPartTable.tsx:233 #: src/tables/part/PartTable.tsx:190 -#: src/tables/stock/StockItemTable.tsx:300 +#: src/tables/stock/StockItemTable.tsx:304 msgid "Assembly" msgstr "Montagem" @@ -5845,285 +6922,347 @@ msgstr "Rastreável" msgid "Show trackable assemblies" msgstr "Mostrar montagens rastreáveis" -#: src/tables/build/BuildAllocatedStockTable.tsx:54 +#: src/tables/build/BuildAllocatedStockTable.tsx:56 msgid "Allocated to Output" msgstr "" -#: src/tables/build/BuildAllocatedStockTable.tsx:55 +#: src/tables/build/BuildAllocatedStockTable.tsx:57 msgid "Show items allocated to a build output" msgstr "" -#: src/tables/build/BuildAllocatedStockTable.tsx:76 -#: src/tables/part/PartPurchaseOrdersTable.tsx:125 -#: src/tables/sales/SalesOrderAllocationTable.tsx:62 +#: src/tables/build/BuildAllocatedStockTable.tsx:65 +#: src/tables/build/BuildOrderTable.tsx:159 +#: src/tables/part/PartParameterTable.tsx:212 +#: src/tables/part/PartPurchaseOrdersTable.tsx:138 +#: src/tables/sales/ReturnOrderTable.tsx:84 +#: src/tables/sales/SalesOrderAllocationTable.tsx:68 +#: src/tables/sales/SalesOrderTable.tsx:84 +#: src/tables/stock/StockItemTable.tsx:339 +msgid "Include Variants" +msgstr "Incluir variantes" + +#: src/tables/build/BuildAllocatedStockTable.tsx:66 +#: src/tables/build/BuildOrderTable.tsx:160 +#: src/tables/part/PartPurchaseOrdersTable.tsx:139 +#: src/tables/sales/ReturnOrderTable.tsx:85 +#: src/tables/sales/SalesOrderAllocationTable.tsx:69 +#: src/tables/sales/SalesOrderTable.tsx:85 +msgid "Include orders for part variants" +msgstr "" + +#: src/tables/build/BuildAllocatedStockTable.tsx:89 +#: src/tables/part/PartPurchaseOrdersTable.tsx:131 +#: src/tables/sales/SalesOrderAllocationTable.tsx:93 msgid "Order Status" msgstr "" -#: src/tables/build/BuildAllocatedStockTable.tsx:96 -#: src/tables/sales/SalesOrderAllocationTable.tsx:75 +#: src/tables/build/BuildAllocatedStockTable.tsx:117 +#: src/tables/sales/SalesOrderAllocationTable.tsx:126 msgid "Allocated Quantity" msgstr "" -#: src/tables/build/BuildAllocatedStockTable.tsx:116 -#: src/tables/sales/SalesOrderAllocationTable.tsx:94 +#: src/tables/build/BuildAllocatedStockTable.tsx:137 +#: src/tables/sales/SalesOrderAllocationTable.tsx:120 msgid "Available Quantity" msgstr "" -#: src/tables/build/BuildAllocatedStockTable.tsx:126 -#: src/tables/build/BuildOrderTestTable.tsx:176 -#: src/tables/build/BuildOrderTestTable.tsx:200 -#: src/tables/build/BuildOutputTable.tsx:312 -msgid "Build Output" -msgstr "Saída da Produção" - -#: src/tables/build/BuildAllocatedStockTable.tsx:143 -msgid "Edit Build Item" +#: src/tables/build/BuildAllocatedStockTable.tsx:164 +#: src/tables/build/BuildLineTable.tsx:513 +msgid "Edit Stock Allocation" msgstr "" -#: src/tables/build/BuildAllocatedStockTable.tsx:153 -msgid "Delete Build Item" +#: src/tables/build/BuildAllocatedStockTable.tsx:164 +#~ msgid "Edit Build Item" +#~ msgstr "Edit Build Item" + +#: src/tables/build/BuildAllocatedStockTable.tsx:174 +#~ msgid "Delete Build Item" +#~ msgstr "Delete Build Item" + +#: src/tables/build/BuildAllocatedStockTable.tsx:177 +#: src/tables/build/BuildLineTable.tsx:526 +msgid "Delete Stock Allocation" msgstr "" -#: src/tables/build/BuildLineTable.tsx:43 -#: src/tables/stock/StockItemTable.tsx:305 -msgid "Allocated" -msgstr "Alocado" +#: src/tables/build/BuildLineTable.tsx:59 +#~ msgid "Show lines with available stock" +#~ msgstr "Show lines with available stock" -#: src/tables/build/BuildLineTable.tsx:44 +#: src/tables/build/BuildLineTable.tsx:175 msgid "Show allocated lines" msgstr "Exibir linhas alocadas" -#: src/tables/build/BuildLineTable.tsx:49 -msgid "Show lines with available stock" -msgstr "Exibir linhas com estoque disponível" - -#: src/tables/build/BuildLineTable.tsx:54 +#: src/tables/build/BuildLineTable.tsx:185 msgid "Show consumable lines" msgstr "Mostrar linhas de consumíveis" -#: src/tables/build/BuildLineTable.tsx:59 +#: src/tables/build/BuildLineTable.tsx:190 msgid "Show optional lines" msgstr "Mostrar itens opcionais" -#: src/tables/build/BuildLineTable.tsx:68 +#: src/tables/build/BuildLineTable.tsx:199 #: src/tables/part/PartTable.tsx:208 msgid "Testable" msgstr "" -#: src/tables/build/BuildLineTable.tsx:73 -#: src/tables/stock/StockItemTable.tsx:364 +#: src/tables/build/BuildLineTable.tsx:204 +#: src/tables/stock/StockItemTable.tsx:368 msgid "Tracked" msgstr "Rastreado" -#: src/tables/build/BuildLineTable.tsx:74 +#: src/tables/build/BuildLineTable.tsx:205 msgid "Show tracked lines" msgstr "Mostrar linhas rastreadas" -#: src/tables/build/BuildLineTable.tsx:108 -#: src/tables/sales/SalesOrderLineItemTable.tsx:133 +#: src/tables/build/BuildLineTable.tsx:239 +#: src/tables/sales/SalesOrderLineItemTable.tsx:141 msgid "In production" msgstr "Em produção" -#: src/tables/build/BuildLineTable.tsx:136 +#: src/tables/build/BuildLineTable.tsx:267 msgid "Insufficient stock" msgstr "" -#: src/tables/build/BuildLineTable.tsx:152 -#: src/tables/sales/SalesOrderLineItemTable.tsx:121 -#: src/tables/stock/StockItemTable.tsx:186 +#: src/tables/build/BuildLineTable.tsx:283 +#: src/tables/sales/SalesOrderLineItemTable.tsx:129 +#: src/tables/stock/StockItemTable.tsx:175 msgid "No stock available" msgstr "Nenhum estoque disponível" -#: src/tables/build/BuildLineTable.tsx:201 +#: src/tables/build/BuildLineTable.tsx:355 msgid "Gets Inherited" msgstr "" -#: src/tables/build/BuildLineTable.tsx:210 +#: src/tables/build/BuildLineTable.tsx:366 msgid "Unit Quantity" msgstr "Quantidade Unitária" -#: src/tables/build/BuildLineTable.tsx:267 -#: src/tables/sales/SalesOrderLineItemTable.tsx:230 +#: src/tables/build/BuildLineTable.tsx:381 +msgid "Required Quantity" +msgstr "" + +#: src/tables/build/BuildLineTable.tsx:432 +#: src/tables/sales/SalesOrderLineItemTable.tsx:254 msgid "Create Build Order" msgstr "" -#: src/tables/build/BuildLineTable.tsx:298 -msgid "Allocate Stock" -msgstr "Alocar estoque" +#: src/tables/build/BuildLineTable.tsx:460 +msgid "Auto allocation in progress" +msgstr "" -#: src/tables/build/BuildLineTable.tsx:305 +#: src/tables/build/BuildLineTable.tsx:463 +#: src/tables/build/BuildLineTable.tsx:632 +msgid "Auto Allocate Stock" +msgstr "" + +#: src/tables/build/BuildLineTable.tsx:464 +msgid "Automatically allocate stock to this build according to the selected options" +msgstr "" + +#: src/tables/build/BuildLineTable.tsx:482 +#: src/tables/build/BuildLineTable.tsx:496 +#: src/tables/build/BuildLineTable.tsx:579 +#: src/tables/build/BuildLineTable.tsx:664 +#: src/tables/build/BuildOutputTable.tsx:314 +#: src/tables/build/BuildOutputTable.tsx:319 +msgid "Deallocate Stock" +msgstr "" + +#: src/tables/build/BuildLineTable.tsx:498 +msgid "Deallocate all untracked stock for this build order" +msgstr "" + +#: src/tables/build/BuildLineTable.tsx:500 +msgid "Deallocate stock from the selected line item" +msgstr "" + +#: src/tables/build/BuildLineTable.tsx:504 +msgid "Stock has been deallocated" +msgstr "" + +#: src/tables/build/BuildLineTable.tsx:589 msgid "Order Stock" msgstr "Encomendar Estoque" -#: src/tables/build/BuildLineTable.tsx:312 +#: src/tables/build/BuildLineTable.tsx:596 msgid "Build Stock" msgstr "Produzir Estoque" -#: src/tables/build/BuildOrderTable.tsx:111 -msgid "Show active orders" -msgstr "Mostrar encomendas ativas" +#: src/tables/build/BuildLineTable.tsx:610 +msgid "View Part" +msgstr "" #: src/tables/build/BuildOrderTable.tsx:116 -msgid "Cascade" -msgstr "" +#~ msgid "Cascade" +#~ msgstr "Cascade" #: src/tables/build/BuildOrderTable.tsx:117 -msgid "Display recursive child orders" -msgstr "" +#~ msgid "Display recursive child orders" +#~ msgstr "Display recursive child orders" -#: src/tables/build/BuildOrderTable.tsx:123 -#: src/tables/part/PartPurchaseOrdersTable.tsx:126 -#: src/tables/purchasing/PurchaseOrderTable.tsx:56 -#: src/tables/sales/ReturnOrderTable.tsx:47 -#: src/tables/sales/SalesOrderTable.tsx:54 +#: src/tables/build/BuildOrderTable.tsx:121 +msgid "Show outstanding orders" +msgstr "Mostrar pedidos pendentes" + +#: src/tables/build/BuildOrderTable.tsx:121 +#~ msgid "Show active orders" +#~ msgstr "Show active orders" + +#: src/tables/build/BuildOrderTable.tsx:122 +#~ msgid "Show overdue status" +#~ msgstr "Show overdue status" + +#: src/tables/build/BuildOrderTable.tsx:126 +#: src/tables/part/PartPurchaseOrdersTable.tsx:132 +#: src/tables/purchasing/PurchaseOrderTable.tsx:59 +#: src/tables/sales/ReturnOrderTable.tsx:57 +#: src/tables/sales/SalesOrderTable.tsx:57 msgid "Filter by order status" msgstr "Filtrar por estado do pedido" -#: src/tables/build/BuildOrderTable.tsx:130 -msgid "Show overdue status" -msgstr "Mostrar estados atrasados" - -#: src/tables/build/BuildOrderTable.tsx:141 -#: src/tables/purchasing/PurchaseOrderTable.tsx:65 -#: src/tables/sales/ReturnOrderTable.tsx:56 -#: src/tables/sales/SalesOrderTable.tsx:63 +#: src/tables/build/BuildOrderTable.tsx:136 +#: src/tables/purchasing/PurchaseOrderTable.tsx:70 +#: src/tables/sales/ReturnOrderTable.tsx:68 +#: src/tables/sales/SalesOrderTable.tsx:68 msgid "Filter by project code" msgstr "Filtrar por código de projeto" -#: src/tables/build/BuildOrderTable.tsx:146 -#: src/tables/purchasing/PurchaseOrderTable.tsx:70 -#: src/tables/sales/ReturnOrderTable.tsx:61 -#: src/tables/sales/SalesOrderTable.tsx:68 -msgid "Has Project Code" -msgstr "Possui Código do Projeto" - -#: src/tables/build/BuildOrderTable.tsx:147 +#: src/tables/build/BuildOrderTable.tsx:139 #: src/tables/purchasing/PurchaseOrderTable.tsx:71 #: src/tables/sales/ReturnOrderTable.tsx:62 #: src/tables/sales/SalesOrderTable.tsx:69 -msgid "Filter by whether the purchase order has a project code" -msgstr "Filtrar por se a ordem de compra tem um código de projeto" +#~ msgid "Filter by whether the purchase order has a project code" +#~ msgstr "Filter by whether the purchase order has a project code" -#: src/tables/build/BuildOrderTable.tsx:152 +#: src/tables/build/BuildOrderTable.tsx:143 msgid "Filter by user who issued this order" msgstr "Filtrar por usuário que emitiu esta ordem" -#: src/tables/build/BuildOrderTable.tsx:158 -#: src/tables/purchasing/PurchaseOrderTable.tsx:76 -#: src/tables/sales/ReturnOrderTable.tsx:67 -#: src/tables/sales/SalesOrderTable.tsx:74 +#: src/tables/build/BuildOrderTable.tsx:149 +#: src/tables/purchasing/PurchaseOrderTable.tsx:77 +#: src/tables/sales/ReturnOrderTable.tsx:75 +#: src/tables/sales/SalesOrderTable.tsx:75 msgid "Filter by responsible owner" msgstr "Filtrar pelo proprietário responsável" -#: src/tables/build/BuildOrderTestTable.tsx:75 -#: src/tables/build/BuildOrderTestTable.tsx:111 -#: src/tables/stock/StockItemTestResultTable.tsx:257 -#: src/tables/stock/StockItemTestResultTable.tsx:329 -#: src/tables/stock/StockItemTestResultTable.tsx:384 +#: src/tables/build/BuildOrderTestTable.tsx:76 +#: src/tables/build/BuildOrderTestTable.tsx:112 +#: src/tables/stock/StockItemTestResultTable.tsx:275 +#: src/tables/stock/StockItemTestResultTable.tsx:347 +#: src/tables/stock/StockItemTestResultTable.tsx:403 msgid "Add Test Result" msgstr "Adicionar Resultado de Teste" -#: src/tables/build/BuildOrderTestTable.tsx:82 -#: src/tables/stock/StockItemTestResultTable.tsx:259 +#: src/tables/build/BuildOrderTestTable.tsx:83 +#: src/tables/stock/StockItemTestResultTable.tsx:277 msgid "Test result added" msgstr "Resultado do teste adicionado" -#: src/tables/build/BuildOrderTestTable.tsx:110 -#: src/tables/stock/StockItemTestResultTable.tsx:174 +#: src/tables/build/BuildOrderTestTable.tsx:111 +#: src/tables/stock/StockItemTestResultTable.tsx:180 msgid "No Result" msgstr "Sem Resultado" -#: src/tables/build/BuildOrderTestTable.tsx:220 +#: src/tables/build/BuildOrderTestTable.tsx:221 msgid "Show build outputs currently in production" msgstr "" +#: src/tables/build/BuildOutputTable.tsx:76 +msgid "Build Output Stock Allocation" +msgstr "" + #: src/tables/build/BuildOutputTable.tsx:161 #~ msgid "Delete build output" #~ msgstr "Delete build output" -#: src/tables/build/BuildOutputTable.tsx:173 -#: src/tables/build/BuildOutputTable.tsx:211 +#: src/tables/build/BuildOutputTable.tsx:258 +#: src/tables/build/BuildOutputTable.tsx:374 msgid "Add Build Output" msgstr "Nova saída de produção" -#: src/tables/build/BuildOutputTable.tsx:216 +#: src/tables/build/BuildOutputTable.tsx:304 +#~ msgid "Edit build output" +#~ msgstr "Edit build output" + +#: src/tables/build/BuildOutputTable.tsx:306 +#: src/tables/build/BuildOutputTable.tsx:417 +msgid "Edit Build Output" +msgstr "" + +#: src/tables/build/BuildOutputTable.tsx:321 +msgid "This action will deallocate all stock from the selected build output" +msgstr "" + +#: src/tables/build/BuildOutputTable.tsx:341 msgid "Complete selected outputs" msgstr "Concluir saídas selecionadas" -#: src/tables/build/BuildOutputTable.tsx:226 +#: src/tables/build/BuildOutputTable.tsx:352 msgid "Scrap selected outputs" msgstr "Remover saídas selecionadas" -#: src/tables/build/BuildOutputTable.tsx:236 +#: src/tables/build/BuildOutputTable.tsx:363 msgid "Cancel selected outputs" msgstr "Cancelar saídas selecionadas" -#: src/tables/build/BuildOutputTable.tsx:252 +#: src/tables/build/BuildOutputTable.tsx:385 msgid "Allocate" msgstr "Atribuir" -#: src/tables/build/BuildOutputTable.tsx:253 +#: src/tables/build/BuildOutputTable.tsx:386 msgid "Allocate stock to build output" msgstr "Atribuir estoque para a produção" -#: src/tables/build/BuildOutputTable.tsx:259 +#: src/tables/build/BuildOutputTable.tsx:396 msgid "Deallocate" msgstr "Desalocar" -#: src/tables/build/BuildOutputTable.tsx:260 +#: src/tables/build/BuildOutputTable.tsx:397 msgid "Deallocate stock from build output" msgstr "Desalocar estoque da produção" -#: src/tables/build/BuildOutputTable.tsx:267 +#: src/tables/build/BuildOutputTable.tsx:408 msgid "Complete build output" msgstr "Concluir Produção" -#: src/tables/build/BuildOutputTable.tsx:276 +#: src/tables/build/BuildOutputTable.tsx:424 msgid "Scrap" msgstr "Sucata" -#: src/tables/build/BuildOutputTable.tsx:277 +#: src/tables/build/BuildOutputTable.tsx:425 msgid "Scrap build output" msgstr "Cancelar Saída de Produção" -#: src/tables/build/BuildOutputTable.tsx:280 -#~ msgid "Allocated Items" -#~ msgstr "Allocated Items" - -#: src/tables/build/BuildOutputTable.tsx:287 +#: src/tables/build/BuildOutputTable.tsx:435 msgid "Cancel build output" msgstr "Cancelar Saída de Produção" -#: src/tables/build/BuildOutputTable.tsx:325 -msgid "Batch" -msgstr "Lote" - -#: src/tables/build/BuildOutputTable.tsx:340 +#: src/tables/build/BuildOutputTable.tsx:488 msgid "Allocated Lines" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:355 +#: src/tables/build/BuildOutputTable.tsx:503 msgid "Required Tests" msgstr "Testes Obrigatórios" -#: src/tables/company/AddressTable.tsx:121 -#: src/tables/company/AddressTable.tsx:185 +#: src/tables/company/AddressTable.tsx:118 +#: src/tables/company/AddressTable.tsx:183 msgid "Add Address" msgstr "Adicionar endereço" -#: src/tables/company/AddressTable.tsx:126 +#: src/tables/company/AddressTable.tsx:123 msgid "Address created" msgstr "Endereço criado" -#: src/tables/company/AddressTable.tsx:135 +#: src/tables/company/AddressTable.tsx:132 msgid "Edit Address" msgstr "Editar Morada" -#: src/tables/company/AddressTable.tsx:143 +#: src/tables/company/AddressTable.tsx:140 msgid "Delete Address" msgstr "Apagar Morada" -#: src/tables/company/AddressTable.tsx:144 +#: src/tables/company/AddressTable.tsx:141 msgid "Are you sure you want to delete this address?" msgstr "Tem a certeza que deseja apagar esta morada?" @@ -6131,24 +7270,24 @@ msgstr "Tem a certeza que deseja apagar esta morada?" #~ msgid "New Company" #~ msgstr "New Company" -#: src/tables/company/CompanyTable.tsx:74 -#: src/tables/company/CompanyTable.tsx:123 +#: src/tables/company/CompanyTable.tsx:75 +#: src/tables/company/CompanyTable.tsx:125 msgid "Add Company" msgstr "Adicionar Empresa" -#: src/tables/company/CompanyTable.tsx:96 +#: src/tables/company/CompanyTable.tsx:97 msgid "Show active companies" msgstr "Mostrar Empresas ativas" -#: src/tables/company/CompanyTable.tsx:101 +#: src/tables/company/CompanyTable.tsx:102 msgid "Show companies which are suppliers" msgstr "Mostrar Empresas que são fornecedores" -#: src/tables/company/CompanyTable.tsx:106 +#: src/tables/company/CompanyTable.tsx:107 msgid "Show companies which are manufacturers" msgstr "Mostrar Empresas que são fabricantes" -#: src/tables/company/CompanyTable.tsx:111 +#: src/tables/company/CompanyTable.tsx:112 msgid "Show companies which are customers" msgstr "Mostrar Empresas que são clientes" @@ -6164,96 +7303,99 @@ msgstr "Adicionar Contato" msgid "Delete Contact" msgstr "Apagar Contato" -#: src/tables/company/ContactTable.tsx:129 +#: src/tables/company/ContactTable.tsx:130 msgid "Add contact" msgstr "Adicionar contacto" -#: src/tables/general/AttachmentTable.tsx:130 +#: src/tables/general/AttachmentTable.tsx:135 msgid "File uploaded" msgstr "Ficheiro enviado" -#: src/tables/general/AttachmentTable.tsx:131 +#: src/tables/general/AttachmentTable.tsx:136 msgid "File {0} uploaded successfully" msgstr "Arquivo {0} enviado com sucesso" -#: src/tables/general/AttachmentTable.tsx:142 +#: src/tables/general/AttachmentTable.tsx:147 msgid "Upload Error" msgstr "Erro ao enviar" -#: src/tables/general/AttachmentTable.tsx:143 +#: src/tables/general/AttachmentTable.tsx:148 msgid "File could not be uploaded" msgstr "Não foi possível fazer o upload do arquivo" -#: src/tables/general/AttachmentTable.tsx:191 +#: src/tables/general/AttachmentTable.tsx:196 msgid "Upload Attachment" msgstr "Carregar anexo" -#: src/tables/general/AttachmentTable.tsx:201 +#: src/tables/general/AttachmentTable.tsx:206 msgid "Edit Attachment" msgstr "Editar Anexo" -#: src/tables/general/AttachmentTable.tsx:215 +#: src/tables/general/AttachmentTable.tsx:220 msgid "Delete Attachment" msgstr "Eliminar Anexo" -#: src/tables/general/AttachmentTable.tsx:225 +#: src/tables/general/AttachmentTable.tsx:230 msgid "Is Link" msgstr "É um link" -#: src/tables/general/AttachmentTable.tsx:226 +#: src/tables/general/AttachmentTable.tsx:231 msgid "Show link attachments" msgstr "Mostrar anexos dos links" -#: src/tables/general/AttachmentTable.tsx:230 +#: src/tables/general/AttachmentTable.tsx:235 msgid "Is File" msgstr "É um arquivo" -#: src/tables/general/AttachmentTable.tsx:231 +#: src/tables/general/AttachmentTable.tsx:236 msgid "Show file attachments" msgstr "Mostrar arquivos anexados" -#: src/tables/general/AttachmentTable.tsx:240 +#: src/tables/general/AttachmentTable.tsx:245 msgid "Add attachment" msgstr "Adicionar anexo" -#: src/tables/general/AttachmentTable.tsx:251 -msgid "Add external link" -msgstr "Adicionar ligação externa" - #: src/tables/general/AttachmentTable.tsx:254 #~ msgid "Upload attachment" #~ msgstr "Upload attachment" -#: src/tables/general/AttachmentTable.tsx:299 +#: src/tables/general/AttachmentTable.tsx:256 +msgid "Add external link" +msgstr "Adicionar ligação externa" + +#: src/tables/general/AttachmentTable.tsx:304 msgid "No attachments found" msgstr "Nenhum anexo encontrado" -#: src/tables/general/AttachmentTable.tsx:337 +#: src/tables/general/AttachmentTable.tsx:343 msgid "Drag attachment file here to upload" msgstr "Arraste o arquivo de anexo aqui para enviar" #: src/tables/general/ExtraLineItemTable.tsx:86 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:251 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:60 -#: src/tables/sales/SalesOrderLineItemTable.tsx:196 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:263 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:362 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:72 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:168 +#: src/tables/sales/SalesOrderLineItemTable.tsx:206 +#: src/tables/sales/SalesOrderLineItemTable.tsx:291 msgid "Add Line Item" msgstr "Adicionar item de linha" #: src/tables/general/ExtraLineItemTable.tsx:98 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:271 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:72 -#: src/tables/sales/SalesOrderLineItemTable.tsx:214 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:283 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:84 +#: src/tables/sales/SalesOrderLineItemTable.tsx:224 msgid "Edit Line Item" msgstr "Editar item de linha" #: src/tables/general/ExtraLineItemTable.tsx:106 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:279 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:80 -#: src/tables/sales/SalesOrderLineItemTable.tsx:222 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:291 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:92 +#: src/tables/sales/SalesOrderLineItemTable.tsx:232 msgid "Delete Line Item" msgstr "Excluir Item da Linha" -#: src/tables/general/ExtraLineItemTable.tsx:142 +#: src/tables/general/ExtraLineItemTable.tsx:143 msgid "Add Extra Line Item" msgstr "" @@ -6262,12 +7404,12 @@ msgid "Machine restarted" msgstr "Máquina reiniciada" #: src/tables/machine/MachineListTable.tsx:212 -#: src/tables/machine/MachineListTable.tsx:263 +#: src/tables/machine/MachineListTable.tsx:261 msgid "Edit machine" msgstr "Editar Máquina" #: src/tables/machine/MachineListTable.tsx:226 -#: src/tables/machine/MachineListTable.tsx:267 +#: src/tables/machine/MachineListTable.tsx:265 msgid "Delete machine" msgstr "Remover máquina" @@ -6279,51 +7421,50 @@ msgstr "Máquina excluída com sucesso." msgid "Are you sure you want to remove the machine \"{0}\"?" msgstr "Tem certeza de que deseja remover a máquina \"{0}\"?" -#: src/tables/machine/MachineListTable.tsx:255 -#: src/tables/machine/MachineListTable.tsx:432 +#: src/tables/machine/MachineListTable.tsx:254 +#: src/tables/machine/MachineListTable.tsx:442 msgid "Restart required" msgstr "É necessário reiniciar" -#: src/tables/machine/MachineListTable.tsx:259 +#: src/tables/machine/MachineListTable.tsx:258 msgid "Machine Actions" msgstr "Ações da máquina" -#: src/tables/machine/MachineListTable.tsx:272 +#: src/tables/machine/MachineListTable.tsx:270 msgid "Restart" msgstr "Reiniciar" -#: src/tables/machine/MachineListTable.tsx:274 +#: src/tables/machine/MachineListTable.tsx:272 msgid "Restart machine" msgstr "Reiniciar a máquina" -#: src/tables/machine/MachineListTable.tsx:276 +#: src/tables/machine/MachineListTable.tsx:274 msgid "manual restart required" msgstr "Requer reinicialização manual" -#: src/tables/machine/MachineListTable.tsx:292 -msgid "Machine information" -msgstr "Informações da máquina" +#: src/tables/machine/MachineListTable.tsx:291 +#~ msgid "Machine information" +#~ msgstr "Machine information" -#: src/tables/machine/MachineListTable.tsx:303 -#: src/tables/machine/MachineListTable.tsx:599 +#: src/tables/machine/MachineListTable.tsx:292 +msgid "Machine Information" +msgstr "" + +#: src/tables/machine/MachineListTable.tsx:302 +#: src/tables/machine/MachineListTable.tsx:610 msgid "Machine Type" msgstr "Tipo de Máquina" -#: src/tables/machine/MachineListTable.tsx:316 +#: src/tables/machine/MachineListTable.tsx:315 msgid "Machine Driver" msgstr "Controlador da Máquina" -#: src/tables/machine/MachineListTable.tsx:329 +#: src/tables/machine/MachineListTable.tsx:330 msgid "Initialized" msgstr "Inicializado" -#: src/tables/machine/MachineListTable.tsx:350 -#: src/tables/machine/MachineTypeTable.tsx:261 -msgid "Errors" -msgstr "Erros" - -#: src/tables/machine/MachineListTable.tsx:358 -#: src/tables/machine/MachineTypeTable.tsx:269 +#: src/tables/machine/MachineListTable.tsx:359 +#: src/tables/machine/MachineTypeTable.tsx:290 msgid "No errors reported" msgstr "Não há erros relatados" @@ -6331,7 +7472,7 @@ msgstr "Não há erros relatados" msgid "Machine Settings" msgstr "Definições da Máquina" -#: src/tables/machine/MachineListTable.tsx:389 +#: src/tables/machine/MachineListTable.tsx:394 msgid "Driver Settings" msgstr "Configurações do controlador" @@ -6339,86 +7480,109 @@ msgstr "Configurações do controlador" #~ msgid "Create machine" #~ msgstr "Create machine" -#: src/tables/machine/MachineListTable.tsx:506 +#: src/tables/machine/MachineListTable.tsx:516 +#: src/tables/machine/MachineListTable.tsx:558 msgid "Add machine" msgstr "Adicionar máquina" #: src/tables/machine/MachineListTable.tsx:561 -msgid "Machine detail" -msgstr "Detalhes da Máquina" +#~ msgid "Machine detail" +#~ msgstr "Machine detail" -#: src/tables/machine/MachineListTable.tsx:608 +#: src/tables/machine/MachineListTable.tsx:572 +msgid "Machine Detail" +msgstr "" + +#: src/tables/machine/MachineListTable.tsx:619 msgid "Driver" msgstr "Controlador" -#: src/tables/machine/MachineTypeTable.tsx:73 +#: src/tables/machine/MachineTypeTable.tsx:78 msgid "Builtin driver" msgstr "Controlador embutido" -#: src/tables/machine/MachineTypeTable.tsx:89 +#: src/tables/machine/MachineTypeTable.tsx:96 +msgid "Not Found" +msgstr "" + +#: src/tables/machine/MachineTypeTable.tsx:99 msgid "Machine type not found." msgstr "Tipo de máquina não encontrado." -#: src/tables/machine/MachineTypeTable.tsx:97 -msgid "Machine type information" -msgstr "Informação do tipo máquina" +#: src/tables/machine/MachineTypeTable.tsx:99 +#~ msgid "Machine type information" +#~ msgstr "Machine type information" -#: src/tables/machine/MachineTypeTable.tsx:110 -#: src/tables/machine/MachineTypeTable.tsx:217 +#: src/tables/machine/MachineTypeTable.tsx:109 +msgid "Machine Type Information" +msgstr "" + +#: src/tables/machine/MachineTypeTable.tsx:124 +#: src/tables/machine/MachineTypeTable.tsx:238 msgid "Slug" msgstr "Lesma" -#: src/tables/machine/MachineTypeTable.tsx:118 -#: src/tables/machine/MachineTypeTable.tsx:238 +#: src/tables/machine/MachineTypeTable.tsx:135 +#: src/tables/machine/MachineTypeTable.tsx:259 msgid "Provider plugin" msgstr "Extensão do Provedor" -#: src/tables/machine/MachineTypeTable.tsx:130 -#: src/tables/machine/MachineTypeTable.tsx:250 +#: src/tables/machine/MachineTypeTable.tsx:147 +#: src/tables/machine/MachineTypeTable.tsx:271 msgid "Provider file" msgstr "Arquivo do Provedor" -#: src/tables/machine/MachineTypeTable.tsx:135 -#: src/tables/machine/MachineTypeTable.tsx:255 -#: src/tables/plugin/PluginListTable.tsx:180 -#: src/tables/plugin/PluginListTable.tsx:568 -msgid "Builtin" -msgstr "Embutido" +#: src/tables/machine/MachineTypeTable.tsx:148 +#~ msgid "Available drivers" +#~ msgstr "Available drivers" -#: src/tables/machine/MachineTypeTable.tsx:146 -msgid "Available drivers" -msgstr "Controladores Disponíveis" +#: src/tables/machine/MachineTypeTable.tsx:162 +msgid "Available Drivers" +msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:196 +#: src/tables/machine/MachineTypeTable.tsx:217 msgid "Machine driver not found." msgstr "Controlador da máquina não encontrado." -#: src/tables/machine/MachineTypeTable.tsx:204 +#: src/tables/machine/MachineTypeTable.tsx:225 msgid "Machine driver information" msgstr "Informação do controlador da máquina" -#: src/tables/machine/MachineTypeTable.tsx:224 +#: src/tables/machine/MachineTypeTable.tsx:245 msgid "Machine type" msgstr "Tipo de Máquina" -#: src/tables/machine/MachineTypeTable.tsx:327 +#: src/tables/machine/MachineTypeTable.tsx:338 +#~ msgid "Machine type detail" +#~ msgstr "Machine type detail" + +#: src/tables/machine/MachineTypeTable.tsx:348 msgid "Builtin type" msgstr "Tipo embutido" -#: src/tables/machine/MachineTypeTable.tsx:336 -msgid "Machine type detail" -msgstr "Detalhes do tipo de Máquina" +#: src/tables/machine/MachineTypeTable.tsx:348 +#~ msgid "Machine driver detail" +#~ msgstr "Machine driver detail" -#: src/tables/machine/MachineTypeTable.tsx:346 -msgid "Machine driver detail" -msgstr "Detalhes do controlador da Máquina" +#: src/tables/machine/MachineTypeTable.tsx:357 +msgid "Machine Type Detail" +msgstr "" + +#: src/tables/machine/MachineTypeTable.tsx:367 +msgid "Machine Driver Detail" +msgstr "" #: src/tables/notifications/NotificationsTable.tsx:26 msgid "Age" msgstr "Idade" +#: src/tables/notifications/NotificationsTable.tsx:36 +msgid "Notification" +msgstr "Notificação" + #: src/tables/notifications/NotificationsTable.tsx:40 #: src/tables/plugin/PluginErrorTable.tsx:37 +#: src/tables/settings/ErrorTable.tsx:50 msgid "Message" msgstr "Mensagem" @@ -6452,33 +7616,32 @@ msgstr "" msgid "Show assembly parts" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:68 +#: src/tables/part/PartCategoryTable.tsx:48 +msgid "You are subscribed to notifications for this category" +msgstr "" + +#: src/tables/part/PartCategoryTable.tsx:80 #: src/tables/part/PartTable.tsx:196 msgid "Include Subcategories" msgstr "Incluir Subcategorias" -#: src/tables/part/PartCategoryTable.tsx:69 +#: src/tables/part/PartCategoryTable.tsx:81 msgid "Include subcategories in results" msgstr "Incluir subcategorias nos resultados" -#: src/tables/part/PartCategoryTable.tsx:74 +#: src/tables/part/PartCategoryTable.tsx:86 msgid "Show structural categories" msgstr "Mostrar categorias estruturais" -#: src/tables/part/PartCategoryTable.tsx:78 -#: src/tables/part/PartTable.tsx:294 -msgid "Subscribed" -msgstr "" - -#: src/tables/part/PartCategoryTable.tsx:79 +#: src/tables/part/PartCategoryTable.tsx:91 msgid "Show categories to which the user is subscribed" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:86 +#: src/tables/part/PartCategoryTable.tsx:100 msgid "New Part Category" msgstr "Nova Categoria de Peça" -#: src/tables/part/PartCategoryTable.tsx:112 +#: src/tables/part/PartCategoryTable.tsx:129 msgid "Add Part Category" msgstr "Adicionar Categoria de Peça" @@ -6524,11 +7687,6 @@ msgstr "Adicionar parâmetro" msgid "Part parameters cannot be edited, as the part is locked" msgstr "" -#: src/tables/part/PartParameterTable.tsx:212 -#: src/tables/stock/StockItemTable.tsx:335 -msgid "Include Variants" -msgstr "Incluir variantes" - #: src/tables/part/PartParameterTemplateTable.tsx:31 msgid "Checkbox" msgstr "Caixa de seleção" @@ -6555,6 +7713,7 @@ msgid "Show templates with units" msgstr "Mostrar modelos com escolhas" #: src/tables/part/PartParameterTemplateTable.tsx:85 +#: src/tables/part/PartParameterTemplateTable.tsx:141 msgid "Add Parameter Template" msgstr "Adicionar modelo de Parâmetro" @@ -6567,23 +7726,19 @@ msgid "Delete Parameter Template" msgstr "Excluir Modelo de Parâmetro" #: src/tables/part/PartParameterTemplateTable.tsx:141 -msgid "Add parameter template" -msgstr "Adicionar modelo de parâmetro" +#~ msgid "Add parameter template" +#~ msgstr "Add parameter template" -#: src/tables/part/PartPurchaseOrdersTable.tsx:77 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:162 +#: src/tables/part/PartPurchaseOrdersTable.tsx:78 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:168 msgid "Total Quantity" msgstr "Quantidade Total" -#: src/tables/part/PartPurchaseOrdersTable.tsx:115 -msgid "Pending" -msgstr "" - -#: src/tables/part/PartPurchaseOrdersTable.tsx:116 +#: src/tables/part/PartPurchaseOrdersTable.tsx:122 msgid "Show pending orders" msgstr "" -#: src/tables/part/PartPurchaseOrdersTable.tsx:121 +#: src/tables/part/PartPurchaseOrdersTable.tsx:127 msgid "Show received items" msgstr "" @@ -6729,22 +7884,13 @@ msgstr "" msgid "Results" msgstr "Resultados" -#: src/tables/part/PartTestTemplateTable.tsx:76 -msgid "No Results" -msgstr "Sem Resultados" - -#: src/tables/part/PartTestTemplateTable.tsx:106 -#: src/tables/stock/StockItemTestResultTable.tsx:365 -msgid "Required" -msgstr "Obrigatório" - #: src/tables/part/PartTestTemplateTable.tsx:107 msgid "Show required tests" msgstr "Exibir testes obrigatórios" #: src/tables/part/PartTestTemplateTable.tsx:111 -#: src/tables/settings/TemplateTable.tsx:167 -#: src/tables/settings/TemplateTable.tsx:283 +#: src/tables/settings/TemplateTable.tsx:247 +#: src/tables/settings/TemplateTable.tsx:363 msgid "Enabled" msgstr "Habilitado" @@ -6785,7 +7931,7 @@ msgid "Show tests which have recorded results" msgstr "Mostrar testes que tenham resultados gravados" #: src/tables/part/PartTestTemplateTable.tsx:154 -#: src/tables/part/PartTestTemplateTable.tsx:237 +#: src/tables/part/PartTestTemplateTable.tsx:238 msgid "Add Test Template" msgstr "Adicionar Modelo de Teste" @@ -6809,7 +7955,7 @@ msgstr "Quaisquer resultados de testes associados a este modelo serão excluído msgid "View Parent Part" msgstr "" -#: src/tables/part/PartTestTemplateTable.tsx:257 +#: src/tables/part/PartTestTemplateTable.tsx:258 msgid "Part templates cannot be edited, as the part is locked" msgstr "" @@ -6837,41 +7983,58 @@ msgstr "Mostrar variantes virtuais" msgid "Show trackable variants" msgstr "Mostrar variantes rastreáveis" -#: src/tables/part/RelatedPartTable.tsx:84 +#: src/tables/part/RelatedPartTable.tsx:86 +#: src/tables/part/RelatedPartTable.tsx:109 msgid "Add Related Part" msgstr "Adicionar Peça Relacionada" -#: src/tables/part/RelatedPartTable.tsx:99 +#: src/tables/part/RelatedPartTable.tsx:101 msgid "Delete Related Part" msgstr "Excluir Peça Relacionada" -#: src/tables/part/RelatedPartTable.tsx:106 -msgid "Add related part" -msgstr "Adicionar peça relacionada" +#: src/tables/part/RelatedPartTable.tsx:109 +#~ msgid "Add related part" +#~ msgstr "Add related part" #: src/tables/plugin/PluginErrorTable.tsx:29 msgid "Stage" msgstr "Etapa" +#: src/tables/plugin/PluginListTable.tsx:42 +msgid "Plugin is active" +msgstr "A Extensão está ativa" + +#: src/tables/plugin/PluginListTable.tsx:48 +msgid "Plugin is inactive" +msgstr "A Extensão não está ativa" + +#: src/tables/plugin/PluginListTable.tsx:55 +msgid "Plugin is not installed" +msgstr "Extensão não está instalada" + +#: src/tables/plugin/PluginListTable.tsx:76 +msgid "Plugin" +msgstr "Extensão" + #: src/tables/plugin/PluginListTable.tsx:95 -msgid "Plugin with key {pluginKey} not found" -msgstr "Extensão com a chave {pluginKey} não encontrado" +#~ msgid "Plugin with key {pluginKey} not found" +#~ msgstr "Plugin with key {pluginKey} not found" #: src/tables/plugin/PluginListTable.tsx:97 -msgid "An error occurred while fetching plugin details" -msgstr "Ocorreu um erro ao obter detalhes da extensão" +#~ msgid "An error occurred while fetching plugin details" +#~ msgstr "An error occurred while fetching plugin details" + +#: src/tables/plugin/PluginListTable.tsx:109 +msgid "Description not available" +msgstr "Descrição não está disponível" #: src/tables/plugin/PluginListTable.tsx:113 #~ msgid "Plugin with id {id} not found" #~ msgstr "Plugin with id {id} not found" #: src/tables/plugin/PluginListTable.tsx:122 -msgid "Plugin information" -msgstr "Informações da extensão" - -#: src/tables/plugin/PluginListTable.tsx:134 -msgid "Author" -msgstr "Autor" +#~ msgid "Plugin information" +#~ msgstr "Plugin information" #: src/tables/plugin/PluginListTable.tsx:134 #~ msgid "Plugin Actions" @@ -6882,79 +8045,124 @@ msgstr "Autor" #~ msgid "Edit plugin" #~ msgstr "Edit plugin" +#: src/tables/plugin/PluginListTable.tsx:144 +msgid "Confirm plugin activation" +msgstr "Confirmar a ativação da extensão" + +#: src/tables/plugin/PluginListTable.tsx:145 +msgid "Confirm plugin deactivation" +msgstr "Confirmar desativação da extensão" + +#: src/tables/plugin/PluginListTable.tsx:150 +msgid "The selected plugin will be activated" +msgstr "A extensão selecionada será ativada" + +#: src/tables/plugin/PluginListTable.tsx:151 +msgid "The selected plugin will be deactivated" +msgstr "A extensão selecionada será desativada" + #: src/tables/plugin/PluginListTable.tsx:152 #: src/tables/plugin/PluginListTable.tsx:153 #~ msgid "Reload" #~ msgstr "Reload" -#: src/tables/plugin/PluginListTable.tsx:154 -msgid "Plugin is not active" -msgstr "A Extensão não está ativa" - #: src/tables/plugin/PluginListTable.tsx:163 -msgid "Package information" -msgstr "Informações do pacote" +#~ msgid "Package information" +#~ msgstr "Package information" #: src/tables/plugin/PluginListTable.tsx:169 -msgid "Package Name" -msgstr "Nome do Pacote" +msgid "Deactivate" +msgstr "Desativar" -#: src/tables/plugin/PluginListTable.tsx:175 -msgid "Installation Path" -msgstr "Caminho de Instalação" +#: src/tables/plugin/PluginListTable.tsx:183 +msgid "Activate" +msgstr "Ativar" -#: src/tables/plugin/PluginListTable.tsx:185 -msgid "Package" -msgstr "Pacote" +#: src/tables/plugin/PluginListTable.tsx:184 +msgid "Activate selected plugin" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:196 +msgid "Update selected plugin" +msgstr "" #: src/tables/plugin/PluginListTable.tsx:197 -msgid "Plugin settings" -msgstr "Definições da Extensão" +#~ msgid "Plugin settings" +#~ msgstr "Plugin settings" #: src/tables/plugin/PluginListTable.tsx:214 -msgid "Plugin is active" -msgstr "A Extensão está ativa" +#: src/tables/stock/InstalledItemsTable.tsx:107 +msgid "Uninstall" +msgstr "Desinstalar" -#: src/tables/plugin/PluginListTable.tsx:220 -msgid "Plugin is inactive" -msgstr "A Extensão não está ativa" +#: src/tables/plugin/PluginListTable.tsx:215 +msgid "Uninstall selected plugin" +msgstr "" -#: src/tables/plugin/PluginListTable.tsx:227 -msgid "Plugin is not installed" -msgstr "Extensão não está instalada" +#: src/tables/plugin/PluginListTable.tsx:233 +msgid "Delete selected plugin configuration" +msgstr "" -#: src/tables/plugin/PluginListTable.tsx:253 -msgid "Plugin" -msgstr "Extensão" - -#: src/tables/plugin/PluginListTable.tsx:287 -msgid "Description not available" -msgstr "Descrição não está disponível" - -#: src/tables/plugin/PluginListTable.tsx:319 -msgid "Confirm plugin activation" -msgstr "Confirmar a ativação da extensão" - -#: src/tables/plugin/PluginListTable.tsx:320 -msgid "Confirm plugin deactivation" -msgstr "Confirmar desativação da extensão" - -#: src/tables/plugin/PluginListTable.tsx:325 -msgid "The selected plugin will be activated" -msgstr "A extensão selecionada será ativada" - -#: src/tables/plugin/PluginListTable.tsx:326 -msgid "The selected plugin will be deactivated" -msgstr "A extensão selecionada será desativada" - -#: src/tables/plugin/PluginListTable.tsx:334 +#: src/tables/plugin/PluginListTable.tsx:249 msgid "Activate Plugin" msgstr "Ativar Extensão" +#: src/tables/plugin/PluginListTable.tsx:270 +msgid "Install plugin" +msgstr "Instalar extensão" + +#: src/tables/plugin/PluginListTable.tsx:283 +msgid "Install" +msgstr "Instalar" + +#: src/tables/plugin/PluginListTable.tsx:284 +msgid "Plugin installed successfully" +msgstr "A extensão foi instalada com sucesso." + +#: src/tables/plugin/PluginListTable.tsx:289 +msgid "Uninstall Plugin" +msgstr "Desintalar extensão" + +#: src/tables/plugin/PluginListTable.tsx:301 +msgid "Confirm plugin uninstall" +msgstr "Confirmar instalação da extensão" + +#: src/tables/plugin/PluginListTable.tsx:304 +msgid "The selected plugin will be uninstalled." +msgstr "A extensão selecionada será desinstalada." + +#: src/tables/plugin/PluginListTable.tsx:308 +#~ msgid "This action cannot be undone." +#~ msgstr "This action cannot be undone." + +#: src/tables/plugin/PluginListTable.tsx:309 +msgid "Plugin uninstalled successfully" +msgstr "A extensão foi desinstalada com sucesso" + +#: src/tables/plugin/PluginListTable.tsx:317 +msgid "Delete Plugin" +msgstr "Excluir Extensão" + +#: src/tables/plugin/PluginListTable.tsx:318 +msgid "Deleting this plugin configuration will remove all associated settings and data. Are you sure you want to delete this plugin?" +msgstr "Ao excluir esta extensão, todas as configurações e informações da extensão serão removidas. Tem a certeza que deseja excluir está extensão?" + +#: src/tables/plugin/PluginListTable.tsx:331 +msgid "Plugins reloaded" +msgstr "Extensões recarregadas" + +#: src/tables/plugin/PluginListTable.tsx:332 +msgid "Plugins were reloaded successfully" +msgstr "As Extensões foram recarregadas com sucesso" + #: src/tables/plugin/PluginListTable.tsx:338 #~ msgid "Deactivate Plugin" #~ msgstr "Deactivate Plugin" +#: src/tables/plugin/PluginListTable.tsx:350 +msgid "Reload Plugins" +msgstr "Recarregar extensões" + #: src/tables/plugin/PluginListTable.tsx:354 #~ msgid "The following plugin will be activated" #~ msgstr "The following plugin will be activated" @@ -6963,17 +8171,17 @@ msgstr "Ativar Extensão" #~ msgid "The following plugin will be deactivated" #~ msgstr "The following plugin will be deactivated" -#: src/tables/plugin/PluginListTable.tsx:362 -msgid "Deactivate" -msgstr "Desativar" +#: src/tables/plugin/PluginListTable.tsx:357 +msgid "Install Plugin" +msgstr "Instalar Extensão" #: src/tables/plugin/PluginListTable.tsx:366 #~ msgid "Confirm" #~ msgstr "Confirm" -#: src/tables/plugin/PluginListTable.tsx:373 -msgid "Activate" -msgstr "Ativar" +#: src/tables/plugin/PluginListTable.tsx:374 +msgid "Plugin Detail" +msgstr "Detalhe da Extensão" #: src/tables/plugin/PluginListTable.tsx:376 #~ msgid "Activating plugin" @@ -6999,76 +8207,12 @@ msgstr "Ativar" #~ msgid "Error updating plugin" #~ msgstr "Error updating plugin" -#: src/tables/plugin/PluginListTable.tsx:406 -msgid "Uninstall" -msgstr "Desinstalar" - -#: src/tables/plugin/PluginListTable.tsx:438 -msgid "Install plugin" -msgstr "Instalar extensão" - -#: src/tables/plugin/PluginListTable.tsx:451 -msgid "Install" -msgstr "Instalar" - -#: src/tables/plugin/PluginListTable.tsx:452 -msgid "Plugin installed successfully" -msgstr "A extensão foi instalada com sucesso." - -#: src/tables/plugin/PluginListTable.tsx:457 -msgid "Uninstall Plugin" -msgstr "Desintalar extensão" - -#: src/tables/plugin/PluginListTable.tsx:469 -msgid "Confirm plugin uninstall" -msgstr "Confirmar instalação da extensão" - -#: src/tables/plugin/PluginListTable.tsx:472 -msgid "The selected plugin will be uninstalled." -msgstr "A extensão selecionada será desinstalada." - -#: src/tables/plugin/PluginListTable.tsx:473 -msgid "This action cannot be undone." -msgstr "Esta ação não pode ser desfeita." - -#: src/tables/plugin/PluginListTable.tsx:477 -msgid "Plugin uninstalled successfully" -msgstr "A extensão foi desinstalada com sucesso" - -#: src/tables/plugin/PluginListTable.tsx:484 -msgid "Delete Plugin" -msgstr "Excluir Extensão" - -#: src/tables/plugin/PluginListTable.tsx:485 -msgid "Deleting this plugin configuration will remove all associated settings and data. Are you sure you want to delete this plugin?" -msgstr "Ao excluir esta extensão, todas as configurações e informações da extensão serão removidas. Tem a certeza que deseja excluir está extensão?" - -#: src/tables/plugin/PluginListTable.tsx:498 -msgid "Plugins reloaded" -msgstr "Extensões recarregadas" - -#: src/tables/plugin/PluginListTable.tsx:499 -msgid "Plugins were reloaded successfully" -msgstr "As Extensões foram recarregadas com sucesso" - -#: src/tables/plugin/PluginListTable.tsx:515 -msgid "Reload Plugins" -msgstr "Recarregar extensões" - -#: src/tables/plugin/PluginListTable.tsx:524 -msgid "Install Plugin" -msgstr "Instalar Extensão" - -#: src/tables/plugin/PluginListTable.tsx:544 -msgid "Plugin Detail" -msgstr "Detalhe da Extensão" - -#: src/tables/plugin/PluginListTable.tsx:573 +#: src/tables/plugin/PluginListTable.tsx:411 msgid "Sample" msgstr "Amostra" -#: src/tables/plugin/PluginListTable.tsx:578 -#: src/tables/stock/StockItemTable.tsx:340 +#: src/tables/plugin/PluginListTable.tsx:416 +#: src/tables/stock/StockItemTable.tsx:344 msgid "Installed" msgstr "Instalado" @@ -7117,82 +8261,78 @@ msgstr "Excluir Parâmetro" #~ msgid "Are you sure you want to remove this manufacturer part?" #~ msgstr "Are you sure you want to remove this manufacturer part?" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:102 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:339 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:103 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:356 msgid "Import Line Items" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:135 -msgid "Part Description" -msgstr "Descrição da Peça" - -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:201 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:207 msgid "Supplier Code" msgstr "Código do Fornecedor" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:208 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:214 msgid "Supplier Link" msgstr "Ligação do Fornecedor" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:215 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:220 msgid "Manufacturer Code" msgstr "Código do Fabricante" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:229 -msgid "Destination" -msgstr "Destino" +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:248 +msgid "Show line items which have been received" +msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:300 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:316 msgid "Receive line item" msgstr "Receber item de linha" #: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:344 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:142 -#: src/tables/sales/SalesOrderLineItemTable.tsx:240 -msgid "Add line item" -msgstr "Adicionar item de linha" +#: src/tables/sales/ReturnOrderLineItemTable.tsx:160 +#: src/tables/sales/SalesOrderLineItemTable.tsx:258 +#~ msgid "Add line item" +#~ msgstr "Add line item" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:354 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:373 msgid "Receive items" msgstr "Receber itens" -#: src/tables/purchasing/SupplierPartTable.tsx:93 +#: src/tables/purchasing/SupplierPartTable.tsx:95 msgid "MPN" msgstr "MPN" -#: src/tables/purchasing/SupplierPartTable.tsx:122 +#: src/tables/purchasing/SupplierPartTable.tsx:124 msgid "Base units" msgstr "Unidade Base" -#: src/tables/purchasing/SupplierPartTable.tsx:170 +#: src/tables/purchasing/SupplierPartTable.tsx:172 msgid "Supplier part created" msgstr "Fornecedor da Peça criado" -#: src/tables/purchasing/SupplierPartTable.tsx:176 +#: src/tables/purchasing/SupplierPartTable.tsx:179 msgid "Add supplier part" msgstr "Adicionar Fornecedor da Peça" -#: src/tables/purchasing/SupplierPartTable.tsx:188 +#: src/tables/purchasing/SupplierPartTable.tsx:191 msgid "Show active supplier parts" msgstr "Mostrar peças do fornecedor ativas" -#: src/tables/purchasing/SupplierPartTable.tsx:192 -msgid "Active Part" -msgstr "Peça Ativa" - -#: src/tables/purchasing/SupplierPartTable.tsx:193 -msgid "Show active internal parts" -msgstr "Mostrar partes internas ativas" - #: src/tables/purchasing/SupplierPartTable.tsx:193 #~ msgid "Supplier part updated" #~ msgstr "Supplier part updated" -#: src/tables/purchasing/SupplierPartTable.tsx:197 +#: src/tables/purchasing/SupplierPartTable.tsx:195 +msgid "Active Part" +msgstr "Peça Ativa" + +#: src/tables/purchasing/SupplierPartTable.tsx:196 +msgid "Show active internal parts" +msgstr "Mostrar partes internas ativas" + +#: src/tables/purchasing/SupplierPartTable.tsx:200 msgid "Active Supplier" msgstr "Fornecedor Ativo" -#: src/tables/purchasing/SupplierPartTable.tsx:198 +#: src/tables/purchasing/SupplierPartTable.tsx:201 msgid "Show active suppliers" msgstr "Mostrar Fornecedores ativos" @@ -7204,98 +8344,186 @@ msgstr "Mostrar Fornecedores ativos" #~ msgid "Are you sure you want to remove this supplier part?" #~ msgstr "Are you sure you want to remove this supplier part?" -#: src/tables/sales/ReturnOrderLineItemTable.tsx:114 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:139 msgid "Received Date" msgstr "" -#: src/tables/sales/ReturnOrderLineItemTable.tsx:128 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:153 msgid "Show items which have been received" msgstr "" -#: src/tables/sales/ReturnOrderLineItemTable.tsx:133 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:158 msgid "Filter by line item status" msgstr "" -#: src/tables/sales/ReturnOrderLineItemTable.tsx:158 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:176 +msgid "Receive selected items" +msgstr "" + +#: src/tables/sales/ReturnOrderLineItemTable.tsx:205 msgid "Receive Item" msgstr "" -#: src/tables/sales/SalesOrderLineItemTable.tsx:262 -msgid "Allocate stock" +#: src/tables/sales/SalesOrderAllocationTable.tsx:60 +msgid "Show outstanding allocations" msgstr "" -#: src/tables/sales/SalesOrderLineItemTable.tsx:272 +#: src/tables/sales/SalesOrderAllocationTable.tsx:168 +#: src/tables/sales/SalesOrderAllocationTable.tsx:190 +msgid "Edit Allocation" +msgstr "" + +#: src/tables/sales/SalesOrderAllocationTable.tsx:175 +#: src/tables/sales/SalesOrderAllocationTable.tsx:197 +msgid "Delete Allocation" +msgstr "" + +#: src/tables/sales/SalesOrderLineItemTable.tsx:244 +msgid "Allocate Serial Numbers" +msgstr "" + +#: src/tables/sales/SalesOrderLineItemTable.tsx:277 +msgid "Show lines which are fully allocated" +msgstr "" + +#: src/tables/sales/SalesOrderLineItemTable.tsx:280 +#~ msgid "Allocate stock" +#~ msgstr "Allocate stock" + +#: src/tables/sales/SalesOrderLineItemTable.tsx:282 +msgid "Show lines which are completed" +msgstr "" + +#: src/tables/sales/SalesOrderLineItemTable.tsx:291 +#~ msgid "Allocate Serials" +#~ msgstr "Allocate Serials" + +#: src/tables/sales/SalesOrderLineItemTable.tsx:340 +msgid "Allocate serials" +msgstr "" + +#: src/tables/sales/SalesOrderLineItemTable.tsx:356 msgid "Build stock" msgstr "" -#: src/tables/sales/SalesOrderLineItemTable.tsx:289 -#: src/tables/stock/StockItemTable.tsx:507 +#: src/tables/sales/SalesOrderLineItemTable.tsx:373 +#: src/tables/stock/StockItemTable.tsx:512 msgid "Order stock" msgstr "Encomendar Estoque" -#: src/tables/sales/SalesOrderShipmentTable.tsx:40 +#: src/tables/sales/SalesOrderShipmentTable.tsx:51 +#~ msgid "Delete Shipment" +#~ msgstr "Delete Shipment" + +#: src/tables/sales/SalesOrderShipmentTable.tsx:57 msgid "Create Shipment" msgstr "" -#: src/tables/sales/SalesOrderShipmentTable.tsx:50 -msgid "Delete Shipment" -msgstr "" - -#: src/tables/sales/SalesOrderShipmentTable.tsx:58 -msgid "Edit Shipment" -msgstr "" - -#: src/tables/sales/SalesOrderShipmentTable.tsx:66 -msgid "Shipment Reference" -msgstr "" - -#: src/tables/sales/SalesOrderShipmentTable.tsx:71 +#: src/tables/sales/SalesOrderShipmentTable.tsx:104 msgid "Items" msgstr "" -#: src/tables/sales/SalesOrderShipmentTable.tsx:83 -msgid "Delivery Date" +#: src/tables/sales/SalesOrderShipmentTable.tsx:139 +msgid "View Shipment" msgstr "" -#: src/tables/sales/SalesOrderShipmentTable.tsx:107 -msgid "Complete Shipment" +#: src/tables/sales/SalesOrderShipmentTable.tsx:161 +msgid "Edit shipment" msgstr "" -#: src/tables/sales/SalesOrderShipmentTable.tsx:133 +#: src/tables/sales/SalesOrderShipmentTable.tsx:169 +msgid "Cancel shipment" +msgstr "" + +#: src/tables/sales/SalesOrderShipmentTable.tsx:184 msgid "Add shipment" msgstr "" -#: src/tables/sales/SalesOrderShipmentTable.tsx:146 -msgid "Shipped" -msgstr "" - -#: src/tables/sales/SalesOrderShipmentTable.tsx:147 +#: src/tables/sales/SalesOrderShipmentTable.tsx:198 msgid "Show shipments which have been shipped" msgstr "" -#: src/tables/sales/SalesOrderShipmentTable.tsx:151 -msgid "Delivered" -msgstr "" - -#: src/tables/sales/SalesOrderShipmentTable.tsx:152 +#: src/tables/sales/SalesOrderShipmentTable.tsx:203 msgid "Show shipments which have been delivered" msgstr "" -#: src/tables/settings/CurrencyTable.tsx:28 -msgid "Rate" -msgstr "Taxa" +#: src/tables/settings/BarcodeScanHistoryTable.tsx:61 +msgid "Barcode Information" +msgstr "" -#: src/tables/settings/CurrencyTable.tsx:40 -msgid "Exchange rates updated" -msgstr "Taxas de câmbio atualizadas" +#: src/tables/settings/BarcodeScanHistoryTable.tsx:76 +#: src/tables/settings/ErrorTable.tsx:59 +msgid "Timestamp" +msgstr "" -#: src/tables/settings/CurrencyTable.tsx:46 -msgid "Exchange rate update error" -msgstr "Ocorreu um erro ao atualizar as Taxas de câmbio" +#: src/tables/settings/BarcodeScanHistoryTable.tsx:86 +msgid "Endpoint" +msgstr "" -#: src/tables/settings/CurrencyTable.tsx:57 -msgid "Refresh currency exchange rates" -msgstr "Atualizar taxas de câmbio" +#: src/tables/settings/BarcodeScanHistoryTable.tsx:90 +#: src/tables/settings/BarcodeScanHistoryTable.tsx:217 +#: src/tables/stock/StockItemTestResultTable.tsx:174 +msgid "Result" +msgstr "Resultado" + +#: src/tables/settings/BarcodeScanHistoryTable.tsx:98 +msgid "Context" +msgstr "" + +#: src/tables/settings/BarcodeScanHistoryTable.tsx:119 +msgid "Response" +msgstr "" + +#: src/tables/settings/BarcodeScanHistoryTable.tsx:213 +#: src/tables/settings/ImportSessionTable.tsx:121 +#: src/tables/stock/StockTrackingTable.tsx:183 +msgid "Filter by user" +msgstr "" + +#: src/tables/settings/BarcodeScanHistoryTable.tsx:218 +msgid "Filter by result" +msgstr "" + +#: src/tables/settings/BarcodeScanHistoryTable.tsx:232 +msgid "Delete Barcode Scan Record" +msgstr "" + +#: src/tables/settings/BarcodeScanHistoryTable.tsx:258 +msgid "Barcode Scan Details" +msgstr "" + +#: src/tables/settings/BarcodeScanHistoryTable.tsx:268 +msgid "Logging Disabled" +msgstr "" + +#: src/tables/settings/BarcodeScanHistoryTable.tsx:270 +msgid "Barcode logging is not enabled" +msgstr "" + +#: src/tables/settings/CustomStateTable.tsx:36 +msgid "Display Name" +msgstr "" + +#: src/tables/settings/CustomStateTable.tsx:52 +msgid "Model" +msgstr "" + +#: src/tables/settings/CustomStateTable.tsx:65 +#: src/tables/settings/CustomStateTable.tsx:115 +msgid "Add State" +msgstr "" + +#: src/tables/settings/CustomStateTable.tsx:77 +msgid "Edit State" +msgstr "" + +#: src/tables/settings/CustomStateTable.tsx:85 +msgid "Delete State" +msgstr "" + +#: src/tables/settings/CustomStateTable.tsx:115 +#~ msgid "Add state" +#~ msgstr "Add state" #: src/tables/settings/CustomUnitsTable.tsx:50 msgid "Add Custom Unit" @@ -7313,59 +8541,71 @@ msgstr "Excluir Unidade Personalizada" msgid "Add custom unit" msgstr "Adicionar unidade personalizada" -#: src/tables/settings/ErrorTable.tsx:31 -msgid "When" -msgstr "Quando" - -#: src/tables/settings/ErrorTable.tsx:41 -msgid "Error Information" -msgstr "Informações do erro" - #: src/tables/settings/ErrorTable.tsx:51 #~ msgid "Delete error report" #~ msgstr "Delete error report" -#: src/tables/settings/ErrorTable.tsx:53 +#: src/tables/settings/ErrorTable.tsx:67 +msgid "Traceback" +msgstr "" + +#: src/tables/settings/ErrorTable.tsx:103 +msgid "When" +msgstr "Quando" + +#: src/tables/settings/ErrorTable.tsx:113 +msgid "Error Information" +msgstr "Informações do erro" + +#: src/tables/settings/ErrorTable.tsx:123 msgid "Delete Error Report" msgstr "Excluir Relatório de Erro" -#: src/tables/settings/ErrorTable.tsx:55 +#: src/tables/settings/ErrorTable.tsx:125 msgid "Are you sure you want to delete this error report?" msgstr "Tem a certeza de que pretende excluir este relatório de erro?" -#: src/tables/settings/ErrorTable.tsx:57 +#: src/tables/settings/ErrorTable.tsx:127 msgid "Error report deleted" msgstr "Relatório de erro excluído" -#: src/tables/settings/ErrorTable.tsx:79 -#: src/tables/settings/FailedTasksTable.tsx:59 +#: src/tables/settings/ErrorTable.tsx:146 +#: src/tables/settings/FailedTasksTable.tsx:65 msgid "Error Details" msgstr "Detalhes do Erro" -#: src/tables/settings/FailedTasksTable.tsx:26 -#: src/tables/settings/PendingTasksTable.tsx:19 +#: src/tables/settings/FailedTasksTable.tsx:32 +#: src/tables/settings/PendingTasksTable.tsx:23 #: src/tables/settings/ScheduledTasksTable.tsx:19 msgid "Task" msgstr "Tarefa" -#: src/tables/settings/FailedTasksTable.tsx:32 -#: src/tables/settings/PendingTasksTable.tsx:24 +#: src/tables/settings/FailedTasksTable.tsx:38 +#: src/tables/settings/PendingTasksTable.tsx:28 msgid "Task ID" msgstr "ID da Tarefa" -#: src/tables/settings/FailedTasksTable.tsx:36 -#: src/tables/stock/StockItemTestResultTable.tsx:211 +#: src/tables/settings/FailedTasksTable.tsx:42 +#: src/tables/stock/StockItemTestResultTable.tsx:218 msgid "Started" msgstr "Iniciado" -#: src/tables/settings/FailedTasksTable.tsx:42 +#: src/tables/settings/FailedTasksTable.tsx:48 msgid "Stopped" msgstr "Parado" -#: src/tables/settings/FailedTasksTable.tsx:48 +#: src/tables/settings/FailedTasksTable.tsx:54 msgid "Attempts" msgstr "Tentativas" +#: src/tables/settings/FailedTasksTable.tsx:92 +msgid "No Information" +msgstr "" + +#: src/tables/settings/FailedTasksTable.tsx:93 +msgid "No error details are available for this task" +msgstr "" + #: src/tables/settings/GroupTable.tsx:90 msgid "Group with id {id} not found" msgstr "Grupo com o ID {id} não encontrado" @@ -7399,42 +8639,34 @@ msgstr "Adicionar grupo" msgid "Edit group" msgstr "Editar grupo" -#: src/tables/settings/ImportSessionTable.tsx:38 +#: src/tables/settings/ImportSessionTable.tsx:37 msgid "Delete Import Session" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:44 +#: src/tables/settings/ImportSessionTable.tsx:43 #: src/tables/settings/ImportSessionTable.tsx:131 msgid "Create Import Session" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:69 +#: src/tables/settings/ImportSessionTable.tsx:68 msgid "Uploaded" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:79 -msgid "Imported Rows" -msgstr "" - -#: src/tables/settings/ImportSessionTable.tsx:109 -#: src/tables/settings/TemplateTable.tsx:289 +#: src/tables/settings/ImportSessionTable.tsx:108 +#: src/tables/settings/TemplateTable.tsx:369 msgid "Model Type" msgstr "Tipo de Modelo" -#: src/tables/settings/ImportSessionTable.tsx:110 -#: src/tables/settings/TemplateTable.tsx:290 +#: src/tables/settings/ImportSessionTable.tsx:109 +#: src/tables/settings/TemplateTable.tsx:370 msgid "Filter by target model type" msgstr "Filtrar pelo destino do tipo de modelo" -#: src/tables/settings/ImportSessionTable.tsx:116 +#: src/tables/settings/ImportSessionTable.tsx:115 msgid "Filter by import session status" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:122 -msgid "Filter by user" -msgstr "" - -#: src/tables/settings/PendingTasksTable.tsx:38 +#: src/tables/settings/PendingTasksTable.tsx:42 msgid "Arguments" msgstr "Argumentos" @@ -7462,13 +8694,17 @@ msgstr "Última Execução" msgid "Next Run" msgstr "Próxima Execução" -#: src/tables/settings/TemplateTable.tsx:85 -msgid "Template not found" -msgstr "Modelo não encontrado" +#: src/tables/settings/StocktakeReportTable.tsx:28 +msgid "Report" +msgstr "" -#: src/tables/settings/TemplateTable.tsx:87 -msgid "An error occurred while fetching template details" -msgstr "Ocorreu um erro ao obter detalhes do modelo" +#: src/tables/settings/StocktakeReportTable.tsx:35 +msgid "Part Count" +msgstr "" + +#: src/tables/settings/StocktakeReportTable.tsx:58 +msgid "Delete Report" +msgstr "" #: src/tables/settings/TemplateTable.tsx:120 #~ msgid "{templateTypeTranslation} with id {id} not found" @@ -7482,22 +8718,13 @@ msgstr "Ocorreu um erro ao obter detalhes do modelo" #~ msgid "actions" #~ msgstr "actions" -#: src/tables/settings/TemplateTable.tsx:177 -msgid "Modify" -msgstr "Modificar" +#: src/tables/settings/TemplateTable.tsx:162 +msgid "Template not found" +msgstr "Modelo não encontrado" -#: src/tables/settings/TemplateTable.tsx:178 -msgid "Modify template file" -msgstr "Modificar ficheiro do modelo" - -#: src/tables/settings/TemplateTable.tsx:234 -#: src/tables/settings/TemplateTable.tsx:302 -msgid "Edit Template" -msgstr "Editar Modelo" - -#: src/tables/settings/TemplateTable.tsx:242 -msgid "Delete template" -msgstr "Eliminar modelo" +#: src/tables/settings/TemplateTable.tsx:164 +msgid "An error occurred while fetching template details" +msgstr "Ocorreu um erro ao obter detalhes do modelo" #: src/tables/settings/TemplateTable.tsx:243 #~ msgid "Add new" @@ -7507,103 +8734,137 @@ msgstr "Eliminar modelo" #~ msgid "Create new" #~ msgstr "Create new" -#: src/tables/settings/TemplateTable.tsx:248 +#: src/tables/settings/TemplateTable.tsx:257 +msgid "Modify" +msgstr "Modificar" + +#: src/tables/settings/TemplateTable.tsx:258 +msgid "Modify template file" +msgstr "Modificar ficheiro do modelo" + +#: src/tables/settings/TemplateTable.tsx:314 +#: src/tables/settings/TemplateTable.tsx:382 +msgid "Edit Template" +msgstr "Editar Modelo" + +#: src/tables/settings/TemplateTable.tsx:322 +msgid "Delete template" +msgstr "Eliminar modelo" + +#: src/tables/settings/TemplateTable.tsx:328 msgid "Add Template" msgstr "Adicionar Modelo" -#: src/tables/settings/TemplateTable.tsx:261 +#: src/tables/settings/TemplateTable.tsx:341 msgid "Add template" msgstr "Adicionar modelo" -#: src/tables/settings/TemplateTable.tsx:284 +#: src/tables/settings/TemplateTable.tsx:364 msgid "Filter by enabled status" msgstr "Filtrar por estado ativo" -#: src/tables/settings/UserTable.tsx:82 +#: src/tables/settings/UserTable.tsx:81 msgid "User with id {id} not found" msgstr "Usuário com ID {id} não encontrado" -#: src/tables/settings/UserTable.tsx:84 +#: src/tables/settings/UserTable.tsx:83 msgid "An error occurred while fetching user details" msgstr "Ocorreu um erro ao obter detalhes do usuário" -#: src/tables/settings/UserTable.tsx:102 +#: src/tables/settings/UserTable.tsx:101 msgid "Is Active" msgstr "Está Ativo" -#: src/tables/settings/UserTable.tsx:103 +#: src/tables/settings/UserTable.tsx:102 msgid "Designates whether this user should be treated as active. Unselect this instead of deleting accounts." msgstr "Designa se este usuário deve ser tratado como ativo. Desmarque isso em vez de excluir contas." -#: src/tables/settings/UserTable.tsx:107 +#: src/tables/settings/UserTable.tsx:106 msgid "Is Staff" msgstr "É Funcionário" -#: src/tables/settings/UserTable.tsx:108 +#: src/tables/settings/UserTable.tsx:107 msgid "Designates whether the user can log into the django admin site." msgstr "Designa se o usuário pode fazer login no site administrativo DJANGO." -#: src/tables/settings/UserTable.tsx:112 +#: src/tables/settings/UserTable.tsx:111 msgid "Is Superuser" msgstr "É um Super-utilizador" -#: src/tables/settings/UserTable.tsx:113 +#: src/tables/settings/UserTable.tsx:112 msgid "Designates that this user has all permissions without explicitly assigning them." msgstr "Indica que este usuário tem todas as permissões sem atribuí-las explicitamente." -#: src/tables/settings/UserTable.tsx:123 +#: src/tables/settings/UserTable.tsx:122 msgid "You cannot edit the rights for the currently logged-in user." msgstr "Você não pode editar os direitos para o usuário conectado no momento." -#: src/tables/settings/UserTable.tsx:154 +#: src/tables/settings/UserTable.tsx:153 msgid "No groups" msgstr "Nenhum grupo" -#: src/tables/settings/UserTable.tsx:245 +#: src/tables/settings/UserTable.tsx:244 msgid "Delete user" msgstr "Excluir utilizador" -#: src/tables/settings/UserTable.tsx:246 +#: src/tables/settings/UserTable.tsx:245 msgid "User deleted" msgstr "Utilizador excluido" -#: src/tables/settings/UserTable.tsx:248 +#: src/tables/settings/UserTable.tsx:247 msgid "Are you sure you want to delete this user?" msgstr "Tem a certeza de que quer excluir este utilizador?" -#: src/tables/settings/UserTable.tsx:254 -#: src/tables/settings/UserTable.tsx:272 +#: src/tables/settings/UserTable.tsx:253 +#: src/tables/settings/UserTable.tsx:271 msgid "Add user" msgstr "Adicionar utilizador" -#: src/tables/settings/UserTable.tsx:262 +#: src/tables/settings/UserTable.tsx:261 msgid "Added user" msgstr "Usuário adicionado" -#: src/tables/settings/UserTable.tsx:285 +#: src/tables/settings/UserTable.tsx:284 msgid "Show active users" msgstr "" -#: src/tables/settings/UserTable.tsx:289 +#: src/tables/settings/UserTable.tsx:288 msgid "Staff" msgstr "" -#: src/tables/settings/UserTable.tsx:290 +#: src/tables/settings/UserTable.tsx:289 msgid "Show staff users" msgstr "" #: src/tables/settings/UserTable.tsx:294 -msgid "Superuser" -msgstr "" - -#: src/tables/settings/UserTable.tsx:295 msgid "Show superusers" msgstr "" -#: src/tables/settings/UserTable.tsx:305 +#: src/tables/settings/UserTable.tsx:304 msgid "Edit user" msgstr "Editar usuário" +#: src/tables/stock/InstalledItemsTable.tsx:37 +#: src/tables/stock/InstalledItemsTable.tsx:90 +msgid "Install Item" +msgstr "" + +#: src/tables/stock/InstalledItemsTable.tsx:39 +msgid "Item installed" +msgstr "" + +#: src/tables/stock/InstalledItemsTable.tsx:50 +msgid "Uninstall Item" +msgstr "" + +#: src/tables/stock/InstalledItemsTable.tsx:52 +msgid "Item uninstalled" +msgstr "" + +#: src/tables/stock/InstalledItemsTable.tsx:108 +msgid "Uninstall stock item" +msgstr "" + #: src/tables/stock/LocationTypesTable.tsx:39 #: src/tables/stock/LocationTypesTable.tsx:109 msgid "Add Location Type" @@ -7621,276 +8882,272 @@ msgstr "Apagar Tipo de Localização" msgid "Icon" msgstr "Ícone" -#: src/tables/stock/StockItemTable.tsx:101 +#: src/tables/stock/StockItemTable.tsx:90 msgid "This stock item is in production" msgstr "Este item de estoque está em produção" -#: src/tables/stock/StockItemTable.tsx:110 +#: src/tables/stock/StockItemTable.tsx:97 msgid "This stock item has been assigned to a sales order" msgstr "Este item de estoque foi reservado para uma ordem de venda" -#: src/tables/stock/StockItemTable.tsx:119 +#: src/tables/stock/StockItemTable.tsx:104 msgid "This stock item has been assigned to a customer" msgstr "Este item em estoque foi reservado para um cliente" -#: src/tables/stock/StockItemTable.tsx:128 +#: src/tables/stock/StockItemTable.tsx:111 msgid "This stock item is installed in another stock item" msgstr "Este item em estoque está instalado em outro item de estoque" -#: src/tables/stock/StockItemTable.tsx:137 +#: src/tables/stock/StockItemTable.tsx:118 msgid "This stock item has been consumed by a build order" msgstr "Este item de estoque foi consumido por uma ordem de produção" -#: src/tables/stock/StockItemTable.tsx:146 +#: src/tables/stock/StockItemTable.tsx:125 +msgid "This stock item is unavailable" +msgstr "" + +#: src/tables/stock/StockItemTable.tsx:134 msgid "This stock item has expired" msgstr "Este item de estoque expirou" -#: src/tables/stock/StockItemTable.tsx:150 +#: src/tables/stock/StockItemTable.tsx:138 msgid "This stock item is stale" msgstr "Este item de estoque está obsoleto" -#: src/tables/stock/StockItemTable.tsx:161 +#: src/tables/stock/StockItemTable.tsx:150 msgid "This stock item is fully allocated" msgstr "Este item de estoque está totalmente alocado" -#: src/tables/stock/StockItemTable.tsx:168 +#: src/tables/stock/StockItemTable.tsx:157 msgid "This stock item is partially allocated" msgstr "Este item de estoque está parcialmente alocado" -#: src/tables/stock/StockItemTable.tsx:196 +#: src/tables/stock/StockItemTable.tsx:185 msgid "This stock item has been depleted" msgstr "Este item de estoque está esgotado" -#: src/tables/stock/StockItemTable.tsx:232 +#: src/tables/stock/StockItemTable.tsx:280 msgid "Stocktake Date" msgstr "" -#: src/tables/stock/StockItemTable.tsx:236 -msgid "Expiry Date" -msgstr "" - -#: src/tables/stock/StockItemTable.tsx:260 -msgid "Stock Value" -msgstr "" - -#: src/tables/stock/StockItemTable.tsx:290 +#: src/tables/stock/StockItemTable.tsx:294 msgid "Show stock for active parts" msgstr "Mostrar estoque de peças ativas" -#: src/tables/stock/StockItemTable.tsx:295 +#: src/tables/stock/StockItemTable.tsx:299 msgid "Filter by stock status" msgstr "Filtrar por estado do estoque" #: src/tables/stock/StockItemTable.tsx:301 -msgid "Show stock for assmebled parts" -msgstr "Mostrar estoque de peças montadas" +#~ msgid "Show stock for assmebled parts" +#~ msgstr "Show stock for assmebled parts" -#: src/tables/stock/StockItemTable.tsx:306 +#: src/tables/stock/StockItemTable.tsx:305 +msgid "Show stock for assembled parts" +msgstr "" + +#: src/tables/stock/StockItemTable.tsx:310 msgid "Show items which have been allocated" msgstr "Mostrar itens que foram alocados" -#: src/tables/stock/StockItemTable.tsx:311 +#: src/tables/stock/StockItemTable.tsx:315 msgid "Show items which are available" msgstr "Mostrar itens que estão disponíveis" -#: src/tables/stock/StockItemTable.tsx:315 +#: src/tables/stock/StockItemTable.tsx:319 #: src/tables/stock/StockLocationTable.tsx:44 msgid "Include Sublocations" msgstr "Incluir sublocações" -#: src/tables/stock/StockItemTable.tsx:316 +#: src/tables/stock/StockItemTable.tsx:320 msgid "Include stock in sublocations" msgstr "Incluir estoque em sublocalizações" -#: src/tables/stock/StockItemTable.tsx:320 +#: src/tables/stock/StockItemTable.tsx:324 msgid "Depleted" msgstr "Esgotado" -#: src/tables/stock/StockItemTable.tsx:321 +#: src/tables/stock/StockItemTable.tsx:325 msgid "Show depleted stock items" msgstr "Mostrar itens de estoque esgotados" -#: src/tables/stock/StockItemTable.tsx:326 +#: src/tables/stock/StockItemTable.tsx:330 msgid "Show items which are in stock" msgstr "Mostrar itens que estão disponíveis em estoque" -#: src/tables/stock/StockItemTable.tsx:331 +#: src/tables/stock/StockItemTable.tsx:335 msgid "Show items which are in production" msgstr "Mostrar itens que estão em produção" -#: src/tables/stock/StockItemTable.tsx:336 +#: src/tables/stock/StockItemTable.tsx:340 msgid "Include stock items for variant parts" msgstr "Incluir itens de estoque com peças variantes" -#: src/tables/stock/StockItemTable.tsx:341 +#: src/tables/stock/StockItemTable.tsx:345 msgid "Show stock items which are installed in other items" msgstr "Mostrar itens de estoque que estão instalados em outros itens" -#: src/tables/stock/StockItemTable.tsx:345 +#: src/tables/stock/StockItemTable.tsx:349 msgid "Sent to Customer" msgstr "Enviar para o Cliente" -#: src/tables/stock/StockItemTable.tsx:346 +#: src/tables/stock/StockItemTable.tsx:350 msgid "Show items which have been sent to a customer" msgstr "Mostrar itens que foram enviados para um cliente" -#: src/tables/stock/StockItemTable.tsx:350 +#: src/tables/stock/StockItemTable.tsx:354 msgid "Is Serialized" msgstr "É Serializado" -#: src/tables/stock/StockItemTable.tsx:351 +#: src/tables/stock/StockItemTable.tsx:355 msgid "Show items which have a serial number" msgstr "Mostrar itens que têm um número de série" -#: src/tables/stock/StockItemTable.tsx:358 +#: src/tables/stock/StockItemTable.tsx:362 msgid "Has Batch Code" msgstr "Tem Código de Lote" -#: src/tables/stock/StockItemTable.tsx:359 +#: src/tables/stock/StockItemTable.tsx:363 msgid "Show items which have a batch code" msgstr "Mostrar itens que tenham um código de lote" -#: src/tables/stock/StockItemTable.tsx:365 +#: src/tables/stock/StockItemTable.tsx:369 msgid "Show tracked items" msgstr "Mostrar itens rastreáveis" -#: src/tables/stock/StockItemTable.tsx:369 +#: src/tables/stock/StockItemTable.tsx:373 msgid "Has Purchase Price" msgstr "Possui Preço de Compra" -#: src/tables/stock/StockItemTable.tsx:370 +#: src/tables/stock/StockItemTable.tsx:374 msgid "Show items which have a purchase price" msgstr "Mostrar itens que possuem um preço de compra" -#: src/tables/stock/StockItemTable.tsx:378 +#: src/tables/stock/StockItemTable.tsx:382 msgid "External Location" msgstr "Localização Externa" -#: src/tables/stock/StockItemTable.tsx:379 +#: src/tables/stock/StockItemTable.tsx:383 msgid "Show items in an external location" msgstr "Mostrar itens em uma localização externa" -#: src/tables/stock/StockItemTable.tsx:451 +#: src/tables/stock/StockItemTable.tsx:456 msgid "Add a new stock item" msgstr "Adicionar um novo item de estoque" -#: src/tables/stock/StockItemTable.tsx:460 +#: src/tables/stock/StockItemTable.tsx:465 msgid "Remove some quantity from a stock item" msgstr "Remover alguma quantidade de um item de estoque" -#: src/tables/stock/StockItemTable.tsx:482 +#: src/tables/stock/StockItemTable.tsx:487 msgid "Move Stock items to new locations" msgstr "Mover Itens de Estoque para novos locais" -#: src/tables/stock/StockItemTable.tsx:489 +#: src/tables/stock/StockItemTable.tsx:494 msgid "Change stock status" msgstr "Mudar estado do Estoque" -#: src/tables/stock/StockItemTable.tsx:491 +#: src/tables/stock/StockItemTable.tsx:496 msgid "Change the status of stock items" msgstr "Alterar o estado dos itens de estoque" -#: src/tables/stock/StockItemTable.tsx:498 +#: src/tables/stock/StockItemTable.tsx:503 msgid "Merge stock" msgstr "Mesclar estoque" -#: src/tables/stock/StockItemTable.tsx:500 +#: src/tables/stock/StockItemTable.tsx:505 msgid "Merge stock items" msgstr "Mesclar itens de estoque" -#: src/tables/stock/StockItemTable.tsx:509 -#: src/tables/stock/StockItemTable.tsx:516 +#: src/tables/stock/StockItemTable.tsx:514 +#: src/tables/stock/StockItemTable.tsx:521 msgid "Order new stock" msgstr "Encomendar novo Estoque" -#: src/tables/stock/StockItemTable.tsx:514 +#: src/tables/stock/StockItemTable.tsx:519 msgid "Assign to customer" msgstr "Atribuir ao cliente" -#: src/tables/stock/StockItemTable.tsx:523 +#: src/tables/stock/StockItemTable.tsx:528 msgid "Delete stock" msgstr "Excluir estoque" -#: src/tables/stock/StockItemTable.tsx:525 -msgid "Delete stock items" -msgstr "Excluir itens de estoque" +#: src/tables/stock/StockItemTable.tsx:528 +#~ msgid "Delete stock items" +#~ msgstr "Delete stock items" -#: src/tables/stock/StockItemTestResultTable.tsx:131 +#: src/tables/stock/StockItemTestResultTable.tsx:137 msgid "Test" msgstr "Teste" -#: src/tables/stock/StockItemTestResultTable.tsx:157 +#: src/tables/stock/StockItemTestResultTable.tsx:163 msgid "Test result for installed stock item" msgstr "Resultado do teste para o item de estoque instalado" -#: src/tables/stock/StockItemTestResultTable.tsx:168 -msgid "Result" -msgstr "Resultado" - -#: src/tables/stock/StockItemTestResultTable.tsx:190 +#: src/tables/stock/StockItemTestResultTable.tsx:196 msgid "Attachment" msgstr "Anexo" -#: src/tables/stock/StockItemTestResultTable.tsx:206 +#: src/tables/stock/StockItemTestResultTable.tsx:212 msgid "Test station" msgstr "Estação de teste" -#: src/tables/stock/StockItemTestResultTable.tsx:226 +#: src/tables/stock/StockItemTestResultTable.tsx:234 msgid "Finished" msgstr "Concluído" -#: src/tables/stock/StockItemTestResultTable.tsx:268 -#: src/tables/stock/StockItemTestResultTable.tsx:339 +#: src/tables/stock/StockItemTestResultTable.tsx:286 +#: src/tables/stock/StockItemTestResultTable.tsx:357 msgid "Edit Test Result" msgstr "Editar Resultado do Teste" -#: src/tables/stock/StockItemTestResultTable.tsx:270 +#: src/tables/stock/StockItemTestResultTable.tsx:288 msgid "Test result updated" msgstr "Resultado do teste atualizado" -#: src/tables/stock/StockItemTestResultTable.tsx:276 -#: src/tables/stock/StockItemTestResultTable.tsx:348 +#: src/tables/stock/StockItemTestResultTable.tsx:294 +#: src/tables/stock/StockItemTestResultTable.tsx:366 msgid "Delete Test Result" msgstr "Excluir Resultado do Teste" -#: src/tables/stock/StockItemTestResultTable.tsx:278 +#: src/tables/stock/StockItemTestResultTable.tsx:296 msgid "Test result deleted" msgstr "Resultado do teste excluído" -#: src/tables/stock/StockItemTestResultTable.tsx:292 +#: src/tables/stock/StockItemTestResultTable.tsx:310 msgid "Test Passed" msgstr "Teste Aprovado" -#: src/tables/stock/StockItemTestResultTable.tsx:293 +#: src/tables/stock/StockItemTestResultTable.tsx:311 msgid "Test result has been recorded" msgstr "O resultado do teste foi gravado" -#: src/tables/stock/StockItemTestResultTable.tsx:300 +#: src/tables/stock/StockItemTestResultTable.tsx:318 msgid "Failed to record test result" msgstr "Falha ao gravar resultado do teste" -#: src/tables/stock/StockItemTestResultTable.tsx:317 +#: src/tables/stock/StockItemTestResultTable.tsx:335 msgid "Pass Test" msgstr "Passou no teste" -#: src/tables/stock/StockItemTestResultTable.tsx:366 +#: src/tables/stock/StockItemTestResultTable.tsx:384 msgid "Show results for required tests" msgstr "Mostrar resultados para testes necessários" -#: src/tables/stock/StockItemTestResultTable.tsx:370 +#: src/tables/stock/StockItemTestResultTable.tsx:388 msgid "Include Installed" msgstr "Incluir Instalados" -#: src/tables/stock/StockItemTestResultTable.tsx:371 +#: src/tables/stock/StockItemTestResultTable.tsx:389 msgid "Show results for installed stock items" msgstr "Mostrar resultados para itens de estoque instalados" -#: src/tables/stock/StockItemTestResultTable.tsx:375 -#: src/tables/stock/TestStatisticsTable.tsx:74 +#: src/tables/stock/StockItemTestResultTable.tsx:393 +#: src/tables/stock/TestStatisticsTable.tsx:62 msgid "Passed" msgstr "Aprovado" -#: src/tables/stock/StockItemTestResultTable.tsx:376 +#: src/tables/stock/StockItemTestResultTable.tsx:394 msgid "Show only passed tests" msgstr "Mostrar apenas testes aprovados" @@ -7923,28 +9180,32 @@ msgid "Filter by location type" msgstr "" #: src/tables/stock/StockLocationTable.tsx:107 -#: src/tables/stock/StockLocationTable.tsx:133 +#: src/tables/stock/StockLocationTable.tsx:134 msgid "Add Stock Location" msgstr "Adicionar Local de Estoque" -#: src/tables/stock/StockTrackingTable.tsx:64 +#: src/tables/stock/StockTrackingTable.tsx:68 msgid "Added" msgstr "Adicionado" -#: src/tables/stock/StockTrackingTable.tsx:69 +#: src/tables/stock/StockTrackingTable.tsx:73 msgid "Removed" msgstr "Excluido" #: src/tables/stock/StockTrackingTable.tsx:198 +msgid "Details" +msgstr "Detalhes" + +#: src/tables/stock/StockTrackingTable.tsx:213 msgid "No user information" msgstr "Sem informações de usuário" -#: src/tables/stock/TestStatisticsTable.tsx:46 -#: src/tables/stock/TestStatisticsTable.tsx:76 +#: src/tables/stock/TestStatisticsTable.tsx:34 +#: src/tables/stock/TestStatisticsTable.tsx:64 msgid "Total" msgstr "" -#: src/tables/stock/TestStatisticsTable.tsx:75 +#: src/tables/stock/TestStatisticsTable.tsx:63 msgid "Failed" msgstr "" diff --git a/src/frontend/src/locales/pt_BR/messages.po b/src/frontend/src/locales/pt_BR/messages.po index 7233168972..6afcf9aafb 100644 --- a/src/frontend/src/locales/pt_BR/messages.po +++ b/src/frontend/src/locales/pt_BR/messages.po @@ -8,15 +8,15 @@ msgstr "" "Language: pt\n" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"PO-Revision-Date: 2024-08-20 19:50\n" +"PO-Revision-Date: 2024-11-04 03:14\n" "Last-Translator: \n" "Language-Team: Portuguese, Brazilian\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Crowdin-Project: inventree\n" "X-Crowdin-Project-ID: 452300\n" "X-Crowdin-Language: pt-BR\n" -"X-Crowdin-File: /[inventree.InvenTree] l10/src/frontend/src/locales/en/messages.po\n" -"X-Crowdin-File-ID: 205\n" +"X-Crowdin-File: /src/frontend/src/locales/en/messages.po\n" +"X-Crowdin-File-ID: 252\n" #: src/components/Boundary.tsx:12 msgid "Error rendering component" @@ -27,8 +27,8 @@ msgid "An error occurred while rendering this component. Refer to the console fo msgstr "Um erro ocorreu ao renderizar este componente. Verifique o console para mais informações." #: src/components/DashboardItemProxy.tsx:34 -msgid "Title" -msgstr "Título" +#~ msgid "Title" +#~ msgstr "Title" #: src/components/buttons/AdminButton.tsx:80 msgid "Open in admin interface" @@ -38,82 +38,99 @@ msgstr "Abrir na página de administrador" #~ msgid "Copy to clipboard" #~ msgstr "Copy to clipboard" -#: src/components/buttons/CopyButton.tsx:24 +#: src/components/buttons/CopyButton.tsx:29 msgid "Copied" msgstr "Copiada" -#: src/components/buttons/CopyButton.tsx:24 +#: src/components/buttons/CopyButton.tsx:29 msgid "Copy" msgstr "Copiar" -#: src/components/buttons/PrintingActions.tsx:93 +#: src/components/buttons/PrintingActions.tsx:97 msgid "Print Label" msgstr "Imprimir etiqueta" -#: src/components/buttons/PrintingActions.tsx:99 +#: src/components/buttons/PrintingActions.tsx:103 msgid "Print" -msgstr "" +msgstr "Imprimir" -#: src/components/buttons/PrintingActions.tsx:100 +#: src/components/buttons/PrintingActions.tsx:104 msgid "Label printing completed successfully" msgstr "Impressão de etiqueta finalizada com sucesso" -#: src/components/buttons/PrintingActions.tsx:106 -#: src/components/buttons/PrintingActions.tsx:144 -#: src/components/editors/NotesEditor.tsx:65 -#: src/components/editors/NotesEditor.tsx:165 -#: src/components/forms/fields/ApiFormField.tsx:319 +#: src/components/buttons/PrintingActions.tsx:110 +#: src/components/buttons/PrintingActions.tsx:148 +#: src/components/editors/NotesEditor.tsx:73 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:154 +#: src/components/forms/fields/ApiFormField.tsx:328 +#: src/components/forms/fields/TableField.tsx:43 #: src/components/importer/ImportDataSelector.tsx:187 -#: src/components/importer/ImporterColumnSelector.tsx:207 +#: src/components/importer/ImporterColumnSelector.tsx:210 #: src/components/modals/LicenseModal.tsx:75 -#: src/components/nav/SearchDrawer.tsx:448 +#: src/components/nav/SearchDrawer.tsx:458 +#: src/components/render/ModelType.tsx:290 #: src/pages/ErrorPage.tsx:11 -#: src/pages/part/PartPricingPanel.tsx:67 -#: src/tables/InvenTreeTable.tsx:495 +#: src/pages/part/PartPricingPanel.tsx:71 +#: src/tables/InvenTreeTable.tsx:481 #: src/tables/bom/BomTable.tsx:450 -#: src/tables/stock/StockItemTestResultTable.tsx:299 +#: src/tables/stock/StockItemTestResultTable.tsx:317 msgid "Error" msgstr "Erro" -#: src/components/buttons/PrintingActions.tsx:107 +#: src/components/buttons/PrintingActions.tsx:111 msgid "The label could not be generated" msgstr "A etiqueta não pode ser gerada" -#: src/components/buttons/PrintingActions.tsx:122 +#: src/components/buttons/PrintingActions.tsx:126 msgid "Print Report" msgstr "Imprimir Relatório" -#: src/components/buttons/PrintingActions.tsx:138 +#: src/components/buttons/PrintingActions.tsx:142 msgid "Generate" -msgstr "" +msgstr "Gerar" -#: src/components/buttons/PrintingActions.tsx:139 +#: src/components/buttons/PrintingActions.tsx:143 msgid "Report printing completed successfully" msgstr "Impressão de relatório finalizado com sucesso" -#: src/components/buttons/PrintingActions.tsx:145 +#: src/components/buttons/PrintingActions.tsx:149 msgid "The report could not be generated" msgstr "O relatório não pode ser gerado" -#: src/components/buttons/PrintingActions.tsx:173 +#: src/components/buttons/PrintingActions.tsx:177 msgid "Printing Actions" msgstr "Ações de Impressão" -#: src/components/buttons/PrintingActions.tsx:178 +#: src/components/buttons/PrintingActions.tsx:182 msgid "Print Labels" msgstr "Imprimir Etiquetas" -#: src/components/buttons/PrintingActions.tsx:184 +#: src/components/buttons/PrintingActions.tsx:188 msgid "Print Reports" msgstr "Imprimir Relatórios" +#: src/components/buttons/RemoveRowButton.tsx:8 +msgid "Remove this row" +msgstr "Remover esta linha" + #: src/components/buttons/ScanButton.tsx:15 -msgid "Scan QR code" -msgstr "Escanear código QR" +#: src/components/nav/NavigationDrawer.tsx:117 +#: src/forms/PurchaseOrderForms.tsx:379 +#: src/forms/PurchaseOrderForms.tsx:473 +msgid "Scan Barcode" +msgstr "Ler Código de Barras" + +#: src/components/buttons/ScanButton.tsx:15 +#~ msgid "Scan QR code" +#~ msgstr "Scan QR code" #: src/components/buttons/ScanButton.tsx:20 -msgid "Open QR code scanner" -msgstr "Abrir leitor de código QR" +msgid "Open Barcode Scanner" +msgstr "" + +#: src/components/buttons/ScanButton.tsx:20 +#~ msgid "Open QR code scanner" +#~ msgstr "Open QR code scanner" #: src/components/buttons/SpotlightButton.tsx:14 msgid "Open spotlight" @@ -128,85 +145,347 @@ msgid "Fail" msgstr "Reprovado" #: src/components/buttons/YesNoButton.tsx:33 -#: src/tables/Filter.tsx:52 +#: src/tables/Filter.tsx:61 msgid "Yes" msgstr "Sim" #: src/components/buttons/YesNoButton.tsx:33 -#: src/tables/Filter.tsx:53 +#: src/tables/Filter.tsx:62 msgid "No" msgstr "Não" -#: src/components/details/Details.tsx:301 +#: src/components/dashboard/DashboardLayout.tsx:286 +msgid "No Widgets Selected" +msgstr "" + +#: src/components/dashboard/DashboardLayout.tsx:289 +msgid "Use the menu to add widgets to the dashboard" +msgstr "" + +#: src/components/dashboard/DashboardMenu.tsx:59 +#: src/components/dashboard/DashboardMenu.tsx:126 +msgid "Accept Layout" +msgstr "" + +#: src/components/dashboard/DashboardMenu.tsx:91 +#: src/components/nav/NavigationDrawer.tsx:71 +#: src/defaults/actions.tsx:17 +#: src/defaults/links.tsx:9 +#: src/pages/Index/Settings/UserSettings.tsx:47 +msgid "Dashboard" +msgstr "Painel de Controle" + +#: src/components/dashboard/DashboardMenu.tsx:99 +msgid "Edit Layout" +msgstr "Editar Disposição" + +#: src/components/dashboard/DashboardMenu.tsx:108 +msgid "Add Widget" +msgstr "" + +#: src/components/dashboard/DashboardMenu.tsx:117 +msgid "Remove Widgets" +msgstr "" + +#: src/components/dashboard/DashboardWidget.tsx:65 +msgid "Remove this widget from the dashboard" +msgstr "" + +#: src/components/dashboard/DashboardWidgetDrawer.tsx:77 +msgid "Filter dashboard widgets" +msgstr "" + +#: src/components/dashboard/DashboardWidgetDrawer.tsx:98 +msgid "Add this widget to the dashboard" +msgstr "" + +#: src/components/dashboard/DashboardWidgetDrawer.tsx:123 +msgid "No Widgets Available" +msgstr "" + +#: src/components/dashboard/DashboardWidgetDrawer.tsx:124 +msgid "There are no more widgets available for the dashboard" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:19 +msgid "Subscribed Parts" +msgstr "Peças inscritas" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:20 +msgid "Show the number of parts which you have subscribed to" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:26 +msgid "Subscribed Categories" +msgstr "Categorias Inscritas" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:27 +msgid "Show the number of part categories which you have subscribed to" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:35 +#: src/pages/part/PartSchedulingDetail.tsx:304 +#: src/tables/part/PartTable.tsx:238 +msgid "Low Stock" +msgstr "Estoque Baixo" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:37 +msgid "Show the number of parts which are low on stock" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:43 +msgid "Expired Stock Items" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:45 +msgid "Show the number of stock items which have expired" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:51 +msgid "Stale Stock Items" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:53 +msgid "Show the number of stock items which are stale" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:59 +msgid "Active Build Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:61 +msgid "Show the number of build orders which are currently active" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:66 +msgid "Overdue Build Orders" +msgstr "Pedido de produção atrasado" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:68 +msgid "Show the number of build orders which are overdue" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:73 +msgid "Assigned Build Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:75 +msgid "Show the number of build orders which are assigned to you" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:80 +msgid "Active Sales Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:82 +msgid "Show the number of sales orders which are currently active" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:87 +msgid "Overdue Sales Orders" +msgstr "Pedidos de Venda Vencidos" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:89 +msgid "Show the number of sales orders which are overdue" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:94 +msgid "Assigned Sales Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:96 +msgid "Show the number of sales orders which are assigned to you" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:101 +msgid "Active Purchase Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:103 +msgid "Show the number of purchase orders which are currently active" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:108 +msgid "Overdue Purchase Orders" +msgstr "Pedido de Compra Vencido" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:110 +msgid "Show the number of purchase orders which are overdue" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:115 +msgid "Assigned Purchase Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:117 +msgid "Show the number of purchase orders which are assigned to you" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:122 +msgid "Active Return Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:124 +msgid "Show the number of return orders which are currently active" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:129 +msgid "Overdue Return Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:131 +msgid "Show the number of return orders which are overdue" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:136 +msgid "Assigned Return Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:138 +msgid "Show the number of return orders which are assigned to you" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:149 +#: src/components/dashboard/widgets/GetStartedWidget.tsx:15 +#: src/defaults/links.tsx:38 +msgid "Getting Started" +msgstr "Primeiros passos" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:150 +#: src/defaults/links.tsx:41 +msgid "Getting started with InvenTree" +msgstr "Primeiros passos com InvenTree" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:157 +#: src/components/dashboard/widgets/NewsWidget.tsx:123 +msgid "News Updates" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:158 +msgid "The latest news from InvenTree" +msgstr "" + +#: src/components/dashboard/widgets/ColorToggleWidget.tsx:18 +#: src/components/nav/MainMenu.tsx:77 +msgid "Change Color Mode" +msgstr "Alterar o modo de cor" + +#: src/components/dashboard/widgets/ColorToggleWidget.tsx:23 +msgid "Change the color mode of the user interface" +msgstr "" + +#: src/components/dashboard/widgets/LanguageSelectWidget.tsx:18 +msgid "Change Language" +msgstr "" + +#: src/components/dashboard/widgets/LanguageSelectWidget.tsx:23 +msgid "Change the language of the user interface" +msgstr "" + +#: src/components/dashboard/widgets/NewsWidget.tsx:61 +#: src/components/nav/NotificationDrawer.tsx:88 +#: src/pages/Notifications.tsx:73 +msgid "Mark as read" +msgstr "Marcar como lido" + +#: src/components/dashboard/widgets/NewsWidget.tsx:115 +msgid "Requires Superuser" +msgstr "" + +#: src/components/dashboard/widgets/NewsWidget.tsx:116 +msgid "This widget requires superuser permissions" +msgstr "" + +#: src/components/dashboard/widgets/NewsWidget.tsx:133 +msgid "No News" +msgstr "" + +#: src/components/dashboard/widgets/NewsWidget.tsx:134 +msgid "There are no unread news items" +msgstr "" + +#: src/components/details/Details.tsx:300 msgid "No name defined" msgstr "Sem nome definido" -#: src/components/details/DetailsImage.tsx:65 +#: src/components/details/DetailsImage.tsx:69 msgid "Remove Image" msgstr "Remover Imagem" -#: src/components/details/DetailsImage.tsx:68 +#: src/components/details/DetailsImage.tsx:72 msgid "Remove the associated image from this item?" msgstr "Remover imagem associada a este item?" -#: src/components/details/DetailsImage.tsx:71 -#: src/forms/StockForms.tsx:533 +#: src/components/details/DetailsImage.tsx:75 +#: src/forms/StockForms.tsx:651 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:199 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:306 -#: src/pages/stock/StockDetail.tsx:526 +#: src/pages/stock/StockDetail.tsx:690 msgid "Remove" msgstr "Remover" -#: src/components/details/DetailsImage.tsx:71 -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:158 -#: src/components/items/ActionDropdown.tsx:215 -#: src/components/items/ActionDropdown.tsx:216 -#: src/contexts/ThemeContext.tsx:43 +#: src/components/details/DetailsImage.tsx:75 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:184 +#: src/components/items/ActionDropdown.tsx:268 +#: src/components/items/ActionDropdown.tsx:269 +#: src/contexts/ThemeContext.tsx:45 #: src/hooks/UseForm.tsx:40 -#: src/tables/FilterSelectDrawer.tsx:205 -#: src/tables/build/BuildOutputTable.tsx:286 +#: src/tables/FilterSelectDrawer.tsx:241 +#: src/tables/RowActions.tsx:59 +#: src/tables/build/BuildOutputTable.tsx:434 msgid "Cancel" msgstr "Cancelar" -#: src/components/details/DetailsImage.tsx:97 +#: src/components/details/DetailsImage.tsx:101 msgid "Drag and drop to upload" msgstr "Arraste e solte para carregar" -#: src/components/details/DetailsImage.tsx:100 +#: src/components/details/DetailsImage.tsx:104 msgid "Click to select file(s)" msgstr "Clique para selecionar o(s) arquivo(s)" -#: src/components/details/DetailsImage.tsx:226 +#: src/components/details/DetailsImage.tsx:230 msgid "Clear" msgstr "Limpar" -#: src/components/details/DetailsImage.tsx:232 -#: src/components/forms/ApiForm.tsx:627 -#: src/contexts/ThemeContext.tsx:43 -#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:60 +#: src/components/details/DetailsImage.tsx:236 +#: src/components/forms/ApiForm.tsx:660 +#: src/contexts/ThemeContext.tsx:45 msgid "Submit" msgstr "Enviar" -#: src/components/details/DetailsImage.tsx:272 +#: src/components/details/DetailsImage.tsx:280 msgid "Select from existing images" msgstr "Selecionar de imagens existentes" -#: src/components/details/DetailsImage.tsx:280 +#: src/components/details/DetailsImage.tsx:288 msgid "Select Image" msgstr "Selecionar Imagem" -#: src/components/details/DetailsImage.tsx:292 +#: src/components/details/DetailsImage.tsx:304 +msgid "Download remote image" +msgstr "" + +#: src/components/details/DetailsImage.tsx:319 msgid "Upload new image" msgstr "Carregar nova imagem" -#: src/components/details/DetailsImage.tsx:299 +#: src/components/details/DetailsImage.tsx:326 msgid "Upload Image" msgstr "Enviar Imagem" -#: src/components/details/DetailsImage.tsx:312 +#: src/components/details/DetailsImage.tsx:339 msgid "Delete image" msgstr "Excluir imagem" +#: src/components/details/DetailsImage.tsx:373 +msgid "Download Image" +msgstr "" + +#: src/components/details/DetailsImage.tsx:378 +msgid "Image downloaded successfully" +msgstr "" + #: src/components/details/PartIcons.tsx:43 #~ msgid "Part is a template part (variants can be made from this part)" #~ msgstr "Part is a template part (variants can be made from this part)" @@ -235,36 +514,57 @@ msgstr "Excluir imagem" #~ msgid "Part is virtual (not a physical part)" #~ msgstr "Part is virtual (not a physical part)" -#: src/components/editors/NotesEditor.tsx:66 +#: src/components/editors/NotesEditor.tsx:74 msgid "Image upload failed" msgstr "Upload da imagem falhou" -#: src/components/editors/NotesEditor.tsx:156 -#: src/components/forms/ApiForm.tsx:467 +#: src/components/editors/NotesEditor.tsx:83 +#: src/components/editors/NotesEditor.tsx:119 +#: src/components/forms/ApiForm.tsx:475 #: src/tables/bom/BomTable.tsx:441 msgid "Success" msgstr "Sucesso" -#: src/components/editors/NotesEditor.tsx:157 +#: src/components/editors/NotesEditor.tsx:84 +msgid "Image uploaded successfully" +msgstr "Imagem enviada com sucesso" + +#: src/components/editors/NotesEditor.tsx:120 msgid "Notes saved successfully" msgstr "Notas salvas com sucesso" -#: src/components/editors/NotesEditor.tsx:166 +#: src/components/editors/NotesEditor.tsx:131 msgid "Failed to save notes" msgstr "Falha em salvar notas" -#: src/components/editors/NotesEditor.tsx:198 -msgid "Preview Notes" -msgstr "Pré-visualizar notas" +#: src/components/editors/NotesEditor.tsx:134 +msgid "Error Saving Notes" +msgstr "" -#: src/components/editors/NotesEditor.tsx:198 -msgid "Edit Notes" -msgstr "Editar notas" +#: src/components/editors/NotesEditor.tsx:151 +#~ msgid "Disable Editing" +#~ msgstr "Disable Editing" -#: src/components/editors/NotesEditor.tsx:212 +#: src/components/editors/NotesEditor.tsx:154 msgid "Save Notes" msgstr "Salvar Notas" +#: src/components/editors/NotesEditor.tsx:173 +msgid "Close Editor" +msgstr "" + +#: src/components/editors/NotesEditor.tsx:180 +msgid "Enable Editing" +msgstr "Permitir edição" + +#: src/components/editors/NotesEditor.tsx:198 +#~ msgid "Preview Notes" +#~ msgstr "Preview Notes" + +#: src/components/editors/NotesEditor.tsx:198 +#~ msgid "Edit Notes" +#~ msgstr "Edit Notes" + #: src/components/editors/TemplateEditor/CodeEditor/index.tsx:9 msgid "Code" msgstr "Código" @@ -281,40 +581,44 @@ msgstr "Pré-visualização indisponível, clique em \"Recarregar Pré-visualiza msgid "PDF Preview" msgstr "Visualizar PDF" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:104 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:115 msgid "Error loading template" msgstr "Erro ao carregar template" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:116 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:127 msgid "Error saving template" msgstr "Erro ao salvar o template" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:146 -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:274 -msgid "Save & Reload Preview" -msgstr "Salvar e Recarregar Prévia" - -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:151 -msgid "Are you sure you want to Save & Reload the preview?" -msgstr "Tem certeza de que deseja salvar e recarregar a visualização?" - #: src/components/editors/TemplateEditor/TemplateEditor.tsx:151 #~ msgid "Save & Reload preview?" #~ msgstr "Save & Reload preview?" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:153 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:155 +msgid "Could not load the template from the server." +msgstr "" + +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:172 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:303 +msgid "Save & Reload Preview" +msgstr "Salvar e Recarregar Prévia" + +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:177 +msgid "Are you sure you want to Save & Reload the preview?" +msgstr "Tem certeza de que deseja salvar e recarregar a visualização?" + +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:179 msgid "To render the preview the current template needs to be replaced on the server with your modifications which may break the label if it is under active use. Do you want to proceed?" msgstr "Para renderizar a prévia, o modelo atual necessita ser substituído, no servidor, com suas modificações, que podem levar a quebra da etiqueta caso a etiqueta esteja sendo utilizada de forma ativa. Você deseja prosseguir?" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:157 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:183 msgid "Save & Reload" msgstr "Salvar & Recarregar" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:189 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:215 msgid "Preview updated" msgstr "Visualizar Atualização" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:190 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:216 msgid "The preview has been updated successfully." msgstr "A pré-visualização foi atualizado com sucesso." @@ -322,15 +626,15 @@ msgstr "A pré-visualização foi atualizado com sucesso." #~ msgid "Save & Reload preview" #~ msgstr "Save & Reload preview" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:266 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:295 msgid "Reload preview" msgstr "Recarregar pré-visualização" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:267 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:296 msgid "Use the currently stored template from the server" msgstr "Use o modelo armazenado atualmente no servidor" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:275 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:304 msgid "Save the current template and reload the preview" msgstr "Salvar o modelo atual e recarregar a pré-visualização" @@ -338,64 +642,65 @@ msgstr "Salvar o modelo atual e recarregar a pré-visualização" #~ msgid "to preview" #~ msgstr "to preview" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:333 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:365 msgid "Select instance to preview" msgstr "Selecione a instância para pré-visualizar" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:377 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:409 msgid "Error rendering template" msgstr "Erro ao carregar template" #: src/components/errors/ClientError.tsx:23 msgid "Client Error" -msgstr "" +msgstr "Erro do cliente" #: src/components/errors/ClientError.tsx:24 msgid "Client error occurred" -msgstr "" +msgstr "Ocorreu um erro do cliente" #: src/components/errors/GenericErrorPage.tsx:50 msgid "Status Code" -msgstr "" +msgstr "Código da situação" #: src/components/errors/GenericErrorPage.tsx:63 msgid "Return to the index page" -msgstr "" +msgstr "Retornar à página inicial" #: src/components/errors/NotAuthenticated.tsx:8 msgid "Not Authenticated" -msgstr "" +msgstr "Não autenticado" #: src/components/errors/NotAuthenticated.tsx:9 msgid "You are not logged in." -msgstr "" +msgstr "Você não está logado." #: src/components/errors/NotFound.tsx:8 msgid "Page Not Found" -msgstr "" +msgstr "Página não encontrada" #: src/components/errors/NotFound.tsx:9 msgid "This page does not exist" -msgstr "" +msgstr "Esta página não existe" #: src/components/errors/PermissionDenied.tsx:8 +#: src/functions/notifications.tsx:24 msgid "Permission Denied" -msgstr "" +msgstr "Permissão negada" #: src/components/errors/PermissionDenied.tsx:9 msgid "You do not have permission to view this page." -msgstr "" +msgstr "Você não tem permissão para visualizar esta página." #: src/components/errors/ServerError.tsx:8 msgid "Server Error" -msgstr "" +msgstr "Erro de servidor" #: src/components/errors/ServerError.tsx:9 msgid "A server error occurred" -msgstr "" +msgstr "Ocorreu um erro no servidor" -#: src/components/forms/ApiForm.tsx:151 -#: src/components/forms/ApiForm.tsx:555 +#: src/components/forms/ApiForm.tsx:154 +#: src/components/forms/ApiForm.tsx:579 msgid "Form Error" msgstr "Erro no formulário" @@ -403,22 +708,22 @@ msgstr "Erro no formulário" #~ msgid "Form Errors Exist" #~ msgstr "Form Errors Exist" -#: src/components/forms/ApiForm.tsx:563 +#: src/components/forms/ApiForm.tsx:587 msgid "Errors exist for one or more form fields" -msgstr "" +msgstr "Existem erros para um ou mais campos de formulário" -#: src/components/forms/ApiForm.tsx:665 -#: src/tables/plugin/PluginListTable.tsx:388 +#: src/components/forms/ApiForm.tsx:698 +#: src/tables/plugin/PluginListTable.tsx:195 msgid "Update" msgstr "Atualizar" -#: src/components/forms/ApiForm.tsx:685 -#: src/components/items/ActionDropdown.tsx:195 +#: src/components/forms/ApiForm.tsx:718 +#: src/components/items/ActionDropdown.tsx:248 #: src/hooks/UseForm.tsx:122 -#: src/pages/Index/Scan.tsx:343 +#: src/pages/Index/Scan.tsx:357 #: src/pages/Notifications.tsx:123 -#: src/tables/RowActions.tsx:43 -#: src/tables/plugin/PluginListTable.tsx:420 +#: src/tables/RowActions.tsx:49 +#: src/tables/plugin/PluginListTable.tsx:232 msgid "Delete" msgstr "Excluir" @@ -428,14 +733,6 @@ msgstr "Excluir" #~ msgid "Check your your input and try again." #~ msgstr "Check your your input and try again." -#: src/components/forms/AuthenticationForm.tsx:51 -msgid "Login successful" -msgstr "Acesso bem-sucedido" - -#: src/components/forms/AuthenticationForm.tsx:52 -msgid "Logged in successfully" -msgstr "Login realizado com sucesso!" - #: src/components/forms/AuthenticationForm.tsx:52 #~ msgid "Welcome back!" #~ msgstr "Welcome back!" @@ -444,14 +741,22 @@ msgstr "Login realizado com sucesso!" #~ msgid "Login successfull" #~ msgstr "Login successfull" -#: src/components/forms/AuthenticationForm.tsx:58 +#: src/components/forms/AuthenticationForm.tsx:55 +msgid "Login successful" +msgstr "Acesso bem-sucedido" + +#: src/components/forms/AuthenticationForm.tsx:56 +msgid "Logged in successfully" +msgstr "Autenticação realizada com sucesso" + +#: src/components/forms/AuthenticationForm.tsx:61 msgid "Login failed" msgstr "Falha ao acessar" -#: src/components/forms/AuthenticationForm.tsx:59 -#: src/components/forms/AuthenticationForm.tsx:76 -#: src/components/forms/AuthenticationForm.tsx:211 -#: src/functions/auth.tsx:164 +#: src/components/forms/AuthenticationForm.tsx:62 +#: src/components/forms/AuthenticationForm.tsx:79 +#: src/components/forms/AuthenticationForm.tsx:214 +#: src/functions/auth.tsx:175 msgid "Check your input and try again." msgstr "Verifique sua entrada e tente novamente." @@ -460,45 +765,46 @@ msgstr "Verifique sua entrada e tente novamente." #~ msgid "Mail delivery successfull" #~ msgstr "Mail delivery successfull" -#: src/components/forms/AuthenticationForm.tsx:70 -#: src/functions/auth.tsx:155 +#: src/components/forms/AuthenticationForm.tsx:73 +#: src/functions/auth.tsx:166 msgid "Mail delivery successful" msgstr "Envio de e-mail concluído" -#: src/components/forms/AuthenticationForm.tsx:71 +#: src/components/forms/AuthenticationForm.tsx:74 msgid "Check your inbox for the login link. If you have an account, you will receive a login link. Check in spam too." msgstr "Verifique sua caixa de entrada para o link de acesso. Se você tiver uma conta, você receberá um link de acesso. Também verifique o spam." -#: src/components/forms/AuthenticationForm.tsx:75 +#: src/components/forms/AuthenticationForm.tsx:78 msgid "Mail delivery failed" -msgstr "Envio de email falhou" +msgstr "O envio de endereço eletrônico falhou" -#: src/components/forms/AuthenticationForm.tsx:95 +#: src/components/forms/AuthenticationForm.tsx:98 msgid "Or continue with other methods" msgstr "Ou continue com outros métodos" -#: src/components/forms/AuthenticationForm.tsx:106 -#: src/components/forms/AuthenticationForm.tsx:227 +#: src/components/forms/AuthenticationForm.tsx:109 +#: src/components/forms/AuthenticationForm.tsx:230 +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:67 msgid "Username" msgstr "Nome de usuário" -#: src/components/forms/AuthenticationForm.tsx:107 -#: src/components/forms/AuthenticationForm.tsx:228 +#: src/components/forms/AuthenticationForm.tsx:110 +#: src/components/forms/AuthenticationForm.tsx:231 msgid "Your username" msgstr "Seu nome de usuário" -#: src/components/forms/AuthenticationForm.tsx:112 -#: src/components/forms/AuthenticationForm.tsx:240 -#: src/pages/Auth/Set-Password.tsx:106 +#: src/components/forms/AuthenticationForm.tsx:115 +#: src/components/forms/AuthenticationForm.tsx:243 +#: src/pages/Auth/Set-Password.tsx:101 msgid "Password" msgstr "Senha" -#: src/components/forms/AuthenticationForm.tsx:113 -#: src/components/forms/AuthenticationForm.tsx:241 +#: src/components/forms/AuthenticationForm.tsx:116 +#: src/components/forms/AuthenticationForm.tsx:244 msgid "Your password" msgstr "Sua senha" -#: src/components/forms/AuthenticationForm.tsx:125 +#: src/components/forms/AuthenticationForm.tsx:128 #: src/pages/Auth/Reset.tsx:26 msgid "Reset password" msgstr "Redefinir senha" @@ -507,77 +813,79 @@ msgstr "Redefinir senha" #~ msgid "Log in" #~ msgstr "Log in" -#: src/components/forms/AuthenticationForm.tsx:134 -#: src/components/forms/AuthenticationForm.tsx:233 +#: src/components/forms/AuthenticationForm.tsx:136 +#~ msgid "I will use username and password" +#~ msgstr "I will use username and password" + +#: src/components/forms/AuthenticationForm.tsx:137 +#: src/components/forms/AuthenticationForm.tsx:236 #: src/pages/Auth/Reset.tsx:31 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:51 msgid "Email" msgstr "Email" -#: src/components/forms/AuthenticationForm.tsx:135 +#: src/components/forms/AuthenticationForm.tsx:138 #: src/pages/Auth/Reset.tsx:32 -#: src/pages/Auth/Set-Password.tsx:107 +#: src/pages/Auth/Set-Password.tsx:102 msgid "We will send you a link to login - if you are registered" msgstr "Enviaremos um link para fazer o acesso - se você estiver registrado" -#: src/components/forms/AuthenticationForm.tsx:136 -#~ msgid "I will use username and password" -#~ msgstr "I will use username and password" - -#: src/components/forms/AuthenticationForm.tsx:151 +#: src/components/forms/AuthenticationForm.tsx:154 msgid "Send me an email" msgstr "Me envie um e-mail" -#: src/components/forms/AuthenticationForm.tsx:153 +#: src/components/forms/AuthenticationForm.tsx:156 msgid "Use username and password" msgstr "Usar nome de usuário e senha" -#: src/components/forms/AuthenticationForm.tsx:162 +#: src/components/forms/AuthenticationForm.tsx:165 msgid "Log In" msgstr "Entrar" -#: src/components/forms/AuthenticationForm.tsx:164 +#: src/components/forms/AuthenticationForm.tsx:167 +#: src/pages/Auth/Reset.tsx:41 +#: src/pages/Auth/Set-Password.tsx:107 msgid "Send Email" msgstr "Enviar E-mail" -#: src/components/forms/AuthenticationForm.tsx:193 +#: src/components/forms/AuthenticationForm.tsx:196 msgid "Registration successful" msgstr "Cadastrado com sucesso" -#: src/components/forms/AuthenticationForm.tsx:194 +#: src/components/forms/AuthenticationForm.tsx:197 msgid "Please confirm your email address to complete the registration" msgstr "Por favor, confirme seu endereço de e-mail para concluir o registro" -#: src/components/forms/AuthenticationForm.tsx:210 +#: src/components/forms/AuthenticationForm.tsx:213 msgid "Input error" msgstr "Erro de entrada" -#: src/components/forms/AuthenticationForm.tsx:234 +#: src/components/forms/AuthenticationForm.tsx:237 msgid "This will be used for a confirmation" msgstr "Isto será usado para uma confirmação" -#: src/components/forms/AuthenticationForm.tsx:246 +#: src/components/forms/AuthenticationForm.tsx:249 msgid "Password repeat" msgstr "Repetir senha" -#: src/components/forms/AuthenticationForm.tsx:247 +#: src/components/forms/AuthenticationForm.tsx:250 msgid "Repeat password" msgstr "Repita a senha" -#: src/components/forms/AuthenticationForm.tsx:259 -#: src/components/forms/AuthenticationForm.tsx:304 +#: src/components/forms/AuthenticationForm.tsx:262 +#: src/components/forms/AuthenticationForm.tsx:307 msgid "Register" msgstr "Registrar" -#: src/components/forms/AuthenticationForm.tsx:265 +#: src/components/forms/AuthenticationForm.tsx:268 msgid "Or use SSO" msgstr "Ou use SSO" -#: src/components/forms/AuthenticationForm.tsx:296 +#: src/components/forms/AuthenticationForm.tsx:299 msgid "Don't have an account?" msgstr "Não possui uma conta?" -#: src/components/forms/AuthenticationForm.tsx:315 +#: src/components/forms/AuthenticationForm.tsx:318 msgid "Go back to login" msgstr "Voltar ao login" @@ -588,19 +896,20 @@ msgstr "Servidor" #: src/components/forms/HostOptionsForm.tsx:42 #: src/components/forms/HostOptionsForm.tsx:70 +#: src/components/plugins/PluginDrawer.tsx:69 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:410 +#: src/pages/Index/Settings/AdminCenter/UnitManagmentPanel.tsx:19 #: src/pages/part/CategoryDetail.tsx:81 -#: src/pages/part/PartDetail.tsx:143 -#: src/pages/stock/LocationDetail.tsx:89 -#: src/tables/machine/MachineTypeTable.tsx:65 -#: src/tables/machine/MachineTypeTable.tsx:109 -#: src/tables/machine/MachineTypeTable.tsx:216 -#: src/tables/machine/MachineTypeTable.tsx:319 +#: src/pages/part/PartDetail.tsx:164 +#: src/pages/stock/LocationDetail.tsx:83 +#: src/tables/machine/MachineTypeTable.tsx:70 +#: src/tables/machine/MachineTypeTable.tsx:119 +#: src/tables/machine/MachineTypeTable.tsx:237 +#: src/tables/machine/MachineTypeTable.tsx:340 #: src/tables/plugin/PluginErrorTable.tsx:33 -#: src/tables/plugin/PluginListTable.tsx:126 #: src/tables/purchasing/ManufacturerPartParameterTable.tsx:32 #: src/tables/settings/GroupTable.tsx:147 -#: src/tables/settings/PendingTasksTable.tsx:28 +#: src/tables/settings/PendingTasksTable.tsx:32 #: src/tables/stock/LocationTypesTable.tsx:69 msgid "Name" msgstr "Nome" @@ -643,52 +952,51 @@ msgstr "Estado: <0>funcionário ({0}), <1>extensões{1}" #: src/components/forms/fields/IconField.tsx:81 msgid "No icon selected" -msgstr "" +msgstr "Sem ícones selecionados" #: src/components/forms/fields/IconField.tsx:159 msgid "Uncategorized" -msgstr "" +msgstr "Sem classificação" #: src/components/forms/fields/IconField.tsx:209 -#: src/components/nav/Layout.tsx:70 +#: src/components/nav/Layout.tsx:77 #: src/tables/part/PartThumbTable.tsx:192 msgid "Search..." msgstr "Buscar..." #: src/components/forms/fields/IconField.tsx:223 msgid "Select category" -msgstr "" +msgstr "Selecionar categoria" #: src/components/forms/fields/IconField.tsx:232 msgid "Select pack" -msgstr "" +msgstr "Selecione o pacote" #: src/components/forms/fields/IconField.tsx:237 msgid "{0} icons" -msgstr "" +msgstr "Ícones {0}" -#: src/components/forms/fields/RelatedModelField.tsx:318 -#: src/pages/Index/Settings/UserSettings.tsx:96 +#: src/components/forms/fields/RelatedModelField.tsx:319 +#: src/pages/Index/Settings/UserSettings.tsx:97 #: src/tables/Search.tsx:23 msgid "Search" msgstr "Buscar" -#: src/components/forms/fields/RelatedModelField.tsx:319 +#: src/components/forms/fields/RelatedModelField.tsx:320 #: src/components/modals/AboutInvenTreeModal.tsx:81 -#: src/components/widgets/WidgetLayout.tsx:120 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:316 msgid "Loading" msgstr "Carregando" -#: src/components/forms/fields/RelatedModelField.tsx:321 +#: src/components/forms/fields/RelatedModelField.tsx:322 msgid "No results found" msgstr "Nenhum resultado encontrado" -#: src/components/forms/fields/TableField.tsx:52 -msgid "modelRenderer entry required for tables" -msgstr "entrada modelRenderer necessária para tabelas" +#: src/components/forms/fields/TableField.tsx:72 +#~ msgid "modelRenderer entry required for tables" +#~ msgstr "modelRenderer entry required for tables" -#: src/components/forms/fields/TableField.tsx:76 +#: src/components/forms/fields/TableField.tsx:167 msgid "No entries available" msgstr "Não há itens disponíveis" @@ -702,69 +1010,70 @@ msgstr "Miniatura" #: src/components/importer/ImportDataSelector.tsx:170 msgid "Importing Rows" -msgstr "" +msgstr "Importação de Linhas" #: src/components/importer/ImportDataSelector.tsx:171 msgid "Please wait while the data is imported" -msgstr "" +msgstr "Por favor, aguarde enquanto os dados são importados" #: src/components/importer/ImportDataSelector.tsx:188 msgid "An error occurred while importing data" -msgstr "" +msgstr "Ocorreu um erro na importação de dados" #: src/components/importer/ImportDataSelector.tsx:209 msgid "Edit Data" -msgstr "" +msgstr "Alterar dados" #: src/components/importer/ImportDataSelector.tsx:237 msgid "Delete Row" -msgstr "" +msgstr "Apagar linha" #: src/components/importer/ImportDataSelector.tsx:267 msgid "Row" -msgstr "" +msgstr "Linhas" #: src/components/importer/ImportDataSelector.tsx:285 msgid "Row contains errors" -msgstr "" +msgstr "A linha contém erros" #: src/components/importer/ImportDataSelector.tsx:326 msgid "Accept" -msgstr "" +msgstr "Concordar" #: src/components/importer/ImportDataSelector.tsx:359 msgid "Valid" -msgstr "" +msgstr "Válido" #: src/components/importer/ImportDataSelector.tsx:360 msgid "Filter by row validation status" -msgstr "" +msgstr "Filtrar por estado de validação de linha" #: src/components/importer/ImportDataSelector.tsx:365 -#: src/tables/build/BuildOutputTable.tsx:266 +#: src/tables/build/BuildOutputTable.tsx:407 msgid "Complete" -msgstr "" +msgstr "Concluir" #: src/components/importer/ImportDataSelector.tsx:366 msgid "Filter by row completion status" -msgstr "" +msgstr "Filtrar por estado de conclusão de linha" -#: src/components/importer/ImportDataSelector.tsx:383 +#: src/components/importer/ImportDataSelector.tsx:384 msgid "Import selected rows" -msgstr "" +msgstr "Importar as linhas selecionadas" -#: src/components/importer/ImportDataSelector.tsx:398 +#: src/components/importer/ImportDataSelector.tsx:399 msgid "Processing Data" -msgstr "" +msgstr "Processando dados" -#: src/components/importer/ImporterColumnSelector.tsx:50 -#: src/components/importer/ImporterColumnSelector.tsx:176 +#: src/components/importer/ImporterColumnSelector.tsx:53 +#: src/components/importer/ImporterColumnSelector.tsx:179 +#: src/components/items/ErrorItem.tsx:12 msgid "An error occurred" -msgstr "" +msgstr "Ocorreu um erro" -#: src/components/importer/ImporterColumnSelector.tsx:62 +#: src/components/importer/ImporterColumnSelector.tsx:65 msgid "Select column, or leave blank to ignore this field." -msgstr "" +msgstr "Selecione uma coluna, ou deixe em branco para ignorar este campo." #: src/components/importer/ImporterColumnSelector.tsx:91 #~ msgid "Select a column from the data file" @@ -778,167 +1087,197 @@ msgstr "" #~ msgid "Imported Column Name" #~ msgstr "Imported Column Name" -#: src/components/importer/ImporterColumnSelector.tsx:182 +#: src/components/importer/ImporterColumnSelector.tsx:185 msgid "Ignore this field" -msgstr "" +msgstr "Ignorar esse campo" -#: src/components/importer/ImporterColumnSelector.tsx:196 +#: src/components/importer/ImporterColumnSelector.tsx:199 msgid "Mapping data columns to database fields" -msgstr "" +msgstr "Mapeando colunas de dados para campos no banco de dados" -#: src/components/importer/ImporterColumnSelector.tsx:201 +#: src/components/importer/ImporterColumnSelector.tsx:204 msgid "Accept Column Mapping" -msgstr "" - -#: src/components/importer/ImporterColumnSelector.tsx:214 -msgid "Database Field" -msgstr "" - -#: src/components/importer/ImporterColumnSelector.tsx:215 -msgid "Field Description" -msgstr "" - -#: src/components/importer/ImporterColumnSelector.tsx:216 -msgid "Imported Column" -msgstr "" +msgstr "Aceitar mapeamento de coluna" #: src/components/importer/ImporterColumnSelector.tsx:217 +msgid "Database Field" +msgstr "Campo do banco de dados" + +#: src/components/importer/ImporterColumnSelector.tsx:218 +msgid "Field Description" +msgstr "Descrição do Campo" + +#: src/components/importer/ImporterColumnSelector.tsx:219 +msgid "Imported Column" +msgstr "Coluna importada" + +#: src/components/importer/ImporterColumnSelector.tsx:220 msgid "Default Value" -msgstr "" - -#: src/components/importer/ImporterDrawer.tsx:44 -msgid "Upload File" -msgstr "" - -#: src/components/importer/ImporterDrawer.tsx:45 -msgid "Map Columns" -msgstr "" +msgstr "Valor Padrão" #: src/components/importer/ImporterDrawer.tsx:46 -msgid "Import Data" -msgstr "" +msgid "Upload File" +msgstr "Carregar Arquivo" #: src/components/importer/ImporterDrawer.tsx:47 -msgid "Process Data" -msgstr "" +msgid "Map Columns" +msgstr "Mapear colunas" #: src/components/importer/ImporterDrawer.tsx:48 +msgid "Import Data" +msgstr "Importar dados" + +#: src/components/importer/ImporterDrawer.tsx:49 +msgid "Process Data" +msgstr "Dados de processo" + +#: src/components/importer/ImporterDrawer.tsx:50 msgid "Complete Import" -msgstr "" +msgstr "Importação completa" #: src/components/importer/ImporterDrawer.tsx:97 #~ msgid "Cancel import session" #~ msgstr "Cancel import session" -#: src/components/importer/ImporterDrawer.tsx:104 +#: src/components/importer/ImporterDrawer.tsx:106 msgid "Import Complete" -msgstr "" - -#: src/components/importer/ImporterDrawer.tsx:107 -msgid "Data has been imported successfully" -msgstr "" +msgstr "Importação Completa" #: src/components/importer/ImporterDrawer.tsx:109 -#: src/components/importer/ImporterDrawer.tsx:118 +msgid "Data has been imported successfully" +msgstr "Dados importados com sucesso" + +#: src/components/importer/ImporterDrawer.tsx:111 +#: src/components/importer/ImporterDrawer.tsx:120 msgid "Close" -msgstr "" +msgstr "Fechar" -#: src/components/importer/ImporterDrawer.tsx:115 +#: src/components/importer/ImporterDrawer.tsx:117 msgid "Unknown Status" -msgstr "" +msgstr "Estado desconhecido" -#: src/components/importer/ImporterDrawer.tsx:116 +#: src/components/importer/ImporterDrawer.tsx:118 msgid "Import session has unknown status" -msgstr "" +msgstr "A sessão de importação tem estado desconhecido" -#: src/components/importer/ImporterDrawer.tsx:135 +#: src/components/importer/ImporterDrawer.tsx:137 msgid "Importing Data" -msgstr "" +msgstr "Importando dados" #: src/components/importer/ImporterImportProgress.tsx:36 msgid "Importing Records" -msgstr "" +msgstr "Importação de Registros" #: src/components/importer/ImporterImportProgress.tsx:39 -msgid "Imported rows" -msgstr "" +#: src/tables/settings/ImportSessionTable.tsx:78 +msgid "Imported Rows" +msgstr "Linhas Importadas" -#: src/components/items/ActionDropdown.tsx:121 +#: src/components/importer/ImporterImportProgress.tsx:39 +#~ msgid "Imported rows" +#~ msgstr "Imported rows" + +#: src/components/items/ActionDropdown.tsx:126 +msgid "Options" +msgstr "Opções" + +#: src/components/items/ActionDropdown.tsx:140 +#~ msgid "View Barcode" +#~ msgstr "View Barcode" + +#: src/components/items/ActionDropdown.tsx:162 +#: src/tables/InvenTreeTableHeader.tsx:159 +#: src/tables/InvenTreeTableHeader.tsx:160 msgid "Barcode Actions" msgstr "Ações de código de barras" -#: src/components/items/ActionDropdown.tsx:140 -msgid "View Barcode" -msgstr "" +#: src/components/items/ActionDropdown.tsx:162 +#~ msgid "Link custom barcode" +#~ msgstr "Link custom barcode" -#: src/components/items/ActionDropdown.tsx:147 +#: src/components/items/ActionDropdown.tsx:167 msgid "View" msgstr "Visualizar" -#: src/components/items/ActionDropdown.tsx:148 +#: src/components/items/ActionDropdown.tsx:169 msgid "View barcode" msgstr "Ver código de barras" -#: src/components/items/ActionDropdown.tsx:161 +#: src/components/items/ActionDropdown.tsx:175 msgid "Link Barcode" msgstr "Vincular Código de Barras" -#: src/components/items/ActionDropdown.tsx:162 -msgid "Link custom barcode" -msgstr "Vincular código de barras personalizado" +#: src/components/items/ActionDropdown.tsx:177 +msgid "Link a custom barcode to this item" +msgstr "Vincular um código de barras personalizado para este item" -#: src/components/items/ActionDropdown.tsx:173 -#: src/forms/PurchaseOrderForms.tsx:426 +#: src/components/items/ActionDropdown.tsx:183 +#: src/components/items/QRCode.tsx:193 +#: src/forms/PurchaseOrderForms.tsx:464 msgid "Unlink Barcode" msgstr "Desvincular Código de Barras" -#: src/components/items/ActionDropdown.tsx:174 +#: src/components/items/ActionDropdown.tsx:185 msgid "Unlink custom barcode" msgstr "Desvincular código de barras personalizado" -#: src/components/items/ActionDropdown.tsx:183 -#: src/tables/RowActions.tsx:33 +#: src/components/items/ActionDropdown.tsx:236 +#: src/tables/RowActions.tsx:39 msgid "Edit" msgstr "Editar" -#: src/components/items/ActionDropdown.tsx:184 +#: src/components/items/ActionDropdown.tsx:237 msgid "Edit item" -msgstr "" +msgstr "Editar item" -#: src/components/items/ActionDropdown.tsx:196 +#: src/components/items/ActionDropdown.tsx:249 msgid "Delete item" msgstr "Apagar item" -#: src/components/items/ActionDropdown.tsx:204 -#: src/components/items/ActionDropdown.tsx:205 +#: src/components/items/ActionDropdown.tsx:257 +#: src/components/items/ActionDropdown.tsx:258 msgid "Hold" -msgstr "" +msgstr "Aguarde" -#: src/components/items/ActionDropdown.tsx:227 -#: src/tables/RowActions.tsx:23 +#: src/components/items/ActionDropdown.tsx:280 +#: src/tables/RowActions.tsx:29 msgid "Duplicate" msgstr "Duplicar" -#: src/components/items/ActionDropdown.tsx:228 +#: src/components/items/ActionDropdown.tsx:281 msgid "Duplicate item" msgstr "Duplicar item" +#: src/components/items/BarcodeInput.tsx:23 +msgid "Scan barcode data here using barcode scanner" +msgstr "Leia o código de barras aqui usando um leitor de código de barras" + +#: src/components/items/BarcodeInput.tsx:24 +#: src/tables/settings/BarcodeScanHistoryTable.tsx:65 +msgid "Barcode" +msgstr "Código de barras" + +#: src/components/items/BarcodeInput.tsx:25 +msgid "Scan" +msgstr "Escanear" + #: src/components/items/DocTooltip.tsx:92 +#: src/components/items/GettingStartedCarousel.tsx:20 msgid "Read More" msgstr "Leia Mais" -#: src/components/items/ErrorItem.tsx:5 -#: src/tables/InvenTreeTable.tsx:487 +#: src/components/items/ErrorItem.tsx:8 +#: src/tables/InvenTreeTable.tsx:473 msgid "Unknown error" msgstr "Erro desconhecido" -#: src/components/items/ErrorItem.tsx:10 -msgid "An error occurred:" -msgstr "Um erro ocorreu:" +#: src/components/items/ErrorItem.tsx:13 +#~ msgid "An error occurred:" +#~ msgstr "An error occurred:" #: src/components/items/GettingStartedCarousel.tsx:27 -msgid "Read more" -msgstr "Ler mais" +#~ msgid "Read more" +#~ msgstr "Read more" #: src/components/items/InfoItem.tsx:27 msgid "None" @@ -965,29 +1304,50 @@ msgstr "PLH" msgid "This panel is a placeholder." msgstr "Este painel é um espaço reservado." -#: src/components/items/QRCode.tsx:87 -msgid "Low (7%)" -msgstr "" - -#: src/components/items/QRCode.tsx:88 -msgid "Medium (15%)" -msgstr "" - #: src/components/items/QRCode.tsx:89 -msgid "Quartile (25%)" -msgstr "" +msgid "Low (7%)" +msgstr "Baixo (7%)" #: src/components/items/QRCode.tsx:90 -msgid "High (30%)" -msgstr "" +msgid "Medium (15%)" +msgstr "Médio (15%)" -#: src/components/items/QRCode.tsx:107 -msgid "Barcode Data:" -msgstr "" +#: src/components/items/QRCode.tsx:91 +msgid "Quartile (25%)" +msgstr "Aceitável (25%)" + +#: src/components/items/QRCode.tsx:92 +msgid "High (30%)" +msgstr "Alto (30%)" + +#: src/components/items/QRCode.tsx:100 +msgid "Custom barcode" +msgstr "Código de barras personalizado" + +#: src/components/items/QRCode.tsx:101 +msgid "A custom barcode is registered for this item. The shown code is not that custom barcode." +msgstr "Um código de barras personalizado está registrado para este item. O código mostrado não é aquele código de barras personalizado." #: src/components/items/QRCode.tsx:118 +msgid "Barcode Data:" +msgstr "Dados de código de barras:" + +#: src/components/items/QRCode.tsx:129 msgid "Select Error Correction Level" -msgstr "" +msgstr "Selecione Nível de Correção de Erro" + +#: src/components/items/QRCode.tsx:171 +#: src/pages/part/PartDetail.tsx:239 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:187 +#: src/pages/sales/ReturnOrderDetail.tsx:157 +#: src/pages/sales/SalesOrderDetail.tsx:169 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:166 +msgid "Link" +msgstr "Link" + +#: src/components/items/QRCode.tsx:190 +msgid "This will remove the link to the associated barcode" +msgstr "Isto irá remover o link com o código de barras associado" #: src/components/modals/AboutInvenTreeModal.tsx:99 msgid "Version Information" @@ -1062,11 +1422,11 @@ msgstr "Aplicativo para celular" msgid "Submit Bug Report" msgstr "Enviar Relatório de Erro" -#: src/components/modals/AboutInvenTreeModal.tsx:183 +#: src/components/modals/AboutInvenTreeModal.tsx:181 msgid "Copy version information" msgstr "Copiar informações da versão" -#: src/components/modals/AboutInvenTreeModal.tsx:192 +#: src/components/modals/AboutInvenTreeModal.tsx:189 #: src/components/modals/ServerInfoModal.tsx:147 msgid "Dismiss" msgstr "Dispensar" @@ -1077,7 +1437,7 @@ msgstr "Nenhum texto de licença disponível" #: src/components/modals/LicenseModal.tsx:46 msgid "No Information provided - this is likely a server issue" -msgstr "Nenhuma informação fornecida - este é provavelmente um problema no servidor" +msgstr "Nenhuma informação fornecida. Este é provavelmente um problema no servidor" #: src/components/modals/LicenseModal.tsx:71 msgid "Loading license information" @@ -1091,61 +1451,20 @@ msgstr "Falha ao obter informações da licença" msgid "{key} Packages" msgstr "{key} Pacotes" -#: src/components/modals/QrCodeModal.tsx:72 +#: src/components/modals/QrCodeModal.tsx:24 msgid "Unknown response" msgstr "Resposta desconhecida" -#: src/components/modals/QrCodeModal.tsx:102 -#: src/pages/Index/Scan.tsx:636 -msgid "Error while getting camera" -msgstr "Erro ao obter a câmera" - -#: src/components/modals/QrCodeModal.tsx:125 -#: src/pages/Index/Scan.tsx:659 -msgid "Error while scanning" -msgstr "Erro ao escanear" - -#: src/components/modals/QrCodeModal.tsx:139 -#: src/pages/Index/Scan.tsx:673 -msgid "Error while stopping" -msgstr "Erro ao parar" - -#: src/components/modals/QrCodeModal.tsx:154 -#: src/defaults/menuItems.tsx:21 -#: src/pages/Index/Scan.tsx:746 -msgid "Scanning" -msgstr "Escaneando" - -#: src/components/modals/QrCodeModal.tsx:154 -#: src/pages/Index/Scan.tsx:746 -msgid "Not scanning" -msgstr "Não está escaneando" - -#: src/components/modals/QrCodeModal.tsx:159 -#: src/pages/Index/Scan.tsx:752 -msgid "Select Camera" -msgstr "Selecionar Camera" - -#: src/components/modals/QrCodeModal.tsx:169 -#: src/pages/Index/Scan.tsx:737 -msgid "Start scanning" -msgstr "Começar a escanear" - -#: src/components/modals/QrCodeModal.tsx:176 -#: src/pages/Index/Scan.tsx:729 -msgid "Stop scanning" -msgstr "Parar escaneamento" - -#: src/components/modals/QrCodeModal.tsx:181 +#: src/components/modals/QrCodeModal.tsx:39 msgid "No scans yet!" msgstr "Ainda não há escaneamentos!" -#: src/components/modals/QrCodeModal.tsx:201 +#: src/components/modals/QrCodeModal.tsx:57 msgid "Close modal" msgstr "Fechar o modal" #: src/components/modals/ServerInfoModal.tsx:26 -#: src/pages/Index/Settings/SystemSettings.tsx:38 +#: src/pages/Index/Settings/SystemSettings.tsx:37 msgid "Server" msgstr "Servidor" @@ -1206,6 +1525,7 @@ msgid "Background Worker" msgstr "Trabalhador em Segundo Plano" #: src/components/modals/ServerInfoModal.tsx:101 +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:29 msgid "Background worker not running" msgstr "Trabalhador em segundo plano não está funcionando" @@ -1218,8 +1538,8 @@ msgid "Email settings not configured" msgstr "Email não configurado" #: src/components/modals/ServerInfoModal.tsx:121 -#: src/tables/plugin/PluginListTable.tsx:144 -#: src/tables/plugin/PluginListTable.tsx:294 +#: src/components/plugins/PluginDrawer.tsx:89 +#: src/tables/plugin/PluginListTable.tsx:116 msgid "Version" msgstr "Versão" @@ -1227,7 +1547,7 @@ msgstr "Versão" msgid "Server Version" msgstr "Versão do servidor" -#: src/components/nav/Layout.tsx:73 +#: src/components/nav/Layout.tsx:80 msgid "Nothing found..." msgstr "Nada encontrado..." @@ -1237,18 +1557,26 @@ msgstr "Nada encontrado..." #~ msgstr "Profile" #: src/components/nav/MainMenu.tsx:52 +#: src/components/nav/NavigationDrawer.tsx:178 #: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:28 msgid "Settings" msgstr "Configurações" +#: src/components/nav/MainMenu.tsx:59 +#: src/pages/Index/Settings/UserSettings.tsx:152 +msgid "Account Settings" +msgstr "Configurações de Conta" + #: src/components/nav/MainMenu.tsx:59 #: src/defaults/menuItems.tsx:15 -msgid "Account settings" -msgstr "Configurações de conta" +#~ msgid "Account settings" +#~ msgstr "Account settings" #: src/components/nav/MainMenu.tsx:67 -#: src/defaults/menuItems.tsx:58 -#: src/pages/Index/Settings/SystemSettings.tsx:315 +#: src/components/nav/NavigationDrawer.tsx:141 +#: src/components/nav/SettingsHeader.tsx:49 +#: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:37 +#: src/pages/Index/Settings/SystemSettings.tsx:310 msgid "System Settings" msgstr "Configurações do Sistema" @@ -1260,14 +1588,11 @@ msgstr "Configurações do Sistema" #~ msgid "Switch to pseudo language" #~ msgstr "Switch to pseudo language" -#: src/components/nav/MainMenu.tsx:77 -msgid "Change Color Mode" -msgstr "" - #: src/components/nav/MainMenu.tsx:86 -#: src/defaults/actions.tsx:71 -#: src/defaults/menuItems.tsx:63 -#: src/pages/Index/Settings/AdminCenter/Index.tsx:221 +#: src/components/nav/NavigationDrawer.tsx:148 +#: src/components/nav/SettingsHeader.tsx:50 +#: src/defaults/actions.tsx:63 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:251 msgid "Admin Center" msgstr "Centro de Administração" @@ -1275,458 +1600,732 @@ msgstr "Centro de Administração" msgid "Logout" msgstr "Sair" -#: src/components/nav/NavHoverMenu.tsx:65 -#: src/defaults/actions.tsx:60 -msgid "Open Navigation" -msgstr "Abrir Navegação" - #: src/components/nav/NavHoverMenu.tsx:84 -msgid "View all" -msgstr "Visualizar Tudo" +#~ msgid "View all" +#~ msgstr "View all" #: src/components/nav/NavHoverMenu.tsx:100 #: src/components/nav/NavHoverMenu.tsx:110 -msgid "Get started" -msgstr "Introdução" +#~ msgid "Get started" +#~ msgstr "Get started" #: src/components/nav/NavHoverMenu.tsx:103 -msgid "Overview over high-level objects, functions and possible usecases." -msgstr "Visão geral sobre objetos de alto nível, funções e possíveis usos." - -#: src/components/nav/NavigationDrawer.tsx:57 -msgid "Navigation" -msgstr "Navegação" +#~ msgid "Overview over high-level objects, functions and possible usecases." +#~ msgstr "Overview over high-level objects, functions and possible usecases." #: src/components/nav/NavigationDrawer.tsx:60 -msgid "Pages" -msgstr "Páginas" +#~ msgid "Pages" +#~ msgstr "Pages" -#: src/components/nav/NavigationDrawer.tsx:65 -#: src/pages/Index/Settings/AdminCenter/Index.tsx:176 -#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:41 -msgid "Plugins" -msgstr "Extensões" +#: src/components/nav/NavigationDrawer.tsx:77 +#: src/components/render/ModelType.tsx:31 +#: src/defaults/links.tsx:10 +#: src/pages/Index/Settings/SystemSettings.tsx:172 +#: src/pages/part/CategoryDetail.tsx:125 +#: src/pages/part/CategoryDetail.tsx:249 +#: src/pages/part/CategoryDetail.tsx:279 +#: src/pages/part/PartDetail.tsx:856 +msgid "Parts" +msgstr "Peças" -#: src/components/nav/NavigationDrawer.tsx:75 -#: src/defaults/actions.tsx:32 -msgid "Documentation" -msgstr "Documentação" +#: src/components/nav/NavigationDrawer.tsx:84 +#: src/components/render/Part.tsx:30 +#: src/defaults/links.tsx:11 +#: src/pages/Index/Settings/SystemSettings.tsx:205 +#: src/pages/part/PartDetail.tsx:593 +#: src/pages/stock/LocationDetail.tsx:352 +#: src/pages/stock/StockDetail.tsx:528 +#: src/tables/stock/StockItemTable.tsx:69 +msgid "Stock" +msgstr "Estoque" -#: src/components/nav/NavigationDrawer.tsx:78 -msgid "About" -msgstr "Sobre" +#: src/components/nav/NavigationDrawer.tsx:91 +#: src/defaults/links.tsx:13 +#: src/pages/build/BuildDetail.tsx:530 +#: src/pages/build/BuildIndex.tsx:36 +msgid "Manufacturing" +msgstr "" -#: src/components/nav/NotificationDrawer.tsx:92 -#: src/pages/Index/Settings/SystemSettings.tsx:109 -#: src/pages/Index/Settings/UserSettings.tsx:126 +#: src/components/nav/NavigationDrawer.tsx:98 +#: src/defaults/links.tsx:18 +#: src/pages/company/ManufacturerDetail.tsx:9 +#: src/pages/company/ManufacturerPartDetail.tsx:258 +#: src/pages/company/SupplierDetail.tsx:9 +#: src/pages/company/SupplierPartDetail.tsx:336 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:480 +#: src/pages/purchasing/PurchasingIndex.tsx:60 +msgid "Purchasing" +msgstr "Comprando" + +#: src/components/nav/NavigationDrawer.tsx:105 +#: src/defaults/links.tsx:22 +#: src/pages/company/CustomerDetail.tsx:9 +#: src/pages/sales/ReturnOrderDetail.tsx:469 +#: src/pages/sales/SalesIndex.tsx:53 +#: src/pages/sales/SalesOrderDetail.tsx:520 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:343 +msgid "Sales" +msgstr "Vendas" + +#: src/components/nav/NavigationDrawer.tsx:129 +#: src/components/nav/NotificationDrawer.tsx:178 +#: src/pages/Index/Settings/SystemSettings.tsx:110 +#: src/pages/Index/Settings/UserSettings.tsx:127 #: src/pages/Notifications.tsx:65 #: src/pages/Notifications.tsx:151 msgid "Notifications" msgstr "Notificações" -#: src/components/nav/NotificationDrawer.tsx:94 +#: src/components/nav/NavigationDrawer.tsx:135 +#: src/components/nav/SettingsHeader.tsx:48 +msgid "User Settings" +msgstr "" + +#: src/components/nav/NavigationDrawer.tsx:173 +msgid "Navigation" +msgstr "Navegação" + +#: src/components/nav/NavigationDrawer.tsx:183 +#: src/forms/PurchaseOrderForms.tsx:689 +#: src/forms/StockForms.tsx:614 +#: src/forms/StockForms.tsx:651 +#: src/forms/StockForms.tsx:677 +#: src/forms/StockForms.tsx:705 +#: src/forms/StockForms.tsx:736 +#: src/forms/StockForms.tsx:771 +#: src/forms/StockForms.tsx:813 +#: src/forms/StockForms.tsx:851 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:413 +#: src/tables/RowActions.tsx:129 +#: src/tables/build/BuildLineTable.tsx:101 +msgid "Actions" +msgstr "Ações" + +#: src/components/nav/NavigationDrawer.tsx:191 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:205 +#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:44 +msgid "Plugins" +msgstr "Extensões" + +#: src/components/nav/NavigationDrawer.tsx:204 +#: src/defaults/actions.tsx:24 +msgid "Documentation" +msgstr "Documentação" + +#: src/components/nav/NavigationDrawer.tsx:210 +msgid "About" +msgstr "Sobre" + +#: src/components/nav/NotificationDrawer.tsx:180 msgid "Mark all as read" -msgstr "" +msgstr "Marcar tudo como lido" -#: src/components/nav/NotificationDrawer.tsx:104 +#: src/components/nav/NotificationDrawer.tsx:190 msgid "View all notifications" -msgstr "" +msgstr "Ver todas as notificações" -#: src/components/nav/NotificationDrawer.tsx:123 +#: src/components/nav/NotificationDrawer.tsx:210 msgid "You have no unread notifications." msgstr "Você não tem notificações não lidas." -#: src/components/nav/NotificationDrawer.tsx:139 -#: src/components/nav/NotificationDrawer.tsx:145 -#: src/tables/notifications/NotificationsTable.tsx:36 -msgid "Notification" -msgstr "Notificação" - -#: src/components/nav/NotificationDrawer.tsx:168 -#: src/pages/Notifications.tsx:73 -msgid "Mark as read" -msgstr "Marcar como lido" - -#: src/components/nav/SearchDrawer.tsx:78 +#: src/components/nav/SearchDrawer.tsx:85 msgid "results" msgstr "resultados" -#: src/components/nav/SearchDrawer.tsx:370 +#: src/components/nav/SearchDrawer.tsx:380 msgid "Enter search text" msgstr "Digite o texto de pesquisa" -#: src/components/nav/SearchDrawer.tsx:397 +#: src/components/nav/SearchDrawer.tsx:391 +msgid "Refresh search results" +msgstr "" + +#: src/components/nav/SearchDrawer.tsx:402 +#: src/components/nav/SearchDrawer.tsx:409 msgid "Search Options" msgstr "Opções de pesquisa" -#: src/components/nav/SearchDrawer.tsx:400 +#: src/components/nav/SearchDrawer.tsx:412 msgid "Regex search" msgstr "Busca por Regex" -#: src/components/nav/SearchDrawer.tsx:410 +#: src/components/nav/SearchDrawer.tsx:421 msgid "Whole word search" msgstr "Pesquisa de palavras inteira" -#: src/components/nav/SearchDrawer.tsx:451 +#: src/components/nav/SearchDrawer.tsx:461 msgid "An error occurred during search query" msgstr "Ocorreu um erro durante a pesquisa" #: src/components/nav/SearchDrawer.tsx:462 -msgid "No results" -msgstr "Nenhum resultado" +#~ msgid "No results" +#~ msgstr "No results" -#: src/components/nav/SearchDrawer.tsx:465 +#: src/components/nav/SearchDrawer.tsx:472 +#: src/tables/part/PartTestTemplateTable.tsx:76 +msgid "No Results" +msgstr "Nenhum Resultado" + +#: src/components/nav/SearchDrawer.tsx:475 msgid "No results available for search query" msgstr "Não há resultados disponíveis para a pesquisa" -#: src/components/render/Instance.tsx:217 +#: src/components/panels/AttachmentPanel.tsx:18 +msgid "Attachments" +msgstr "Anexos" + +#: src/components/panels/NotesPanel.tsx:24 +#: src/tables/build/BuildOrderTestTable.tsx:143 +#: src/tables/stock/StockTrackingTable.tsx:204 +msgid "Notes" +msgstr "Anotações" + +#: src/components/plugins/PluginDrawer.tsx:47 +msgid "Plugin Inactive" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:50 +msgid "Plugin is not active" +msgstr "Extensão não está ativa" + +#: src/components/plugins/PluginDrawer.tsx:60 +msgid "Plugin Information" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:74 +#: src/pages/build/BuildDetail.tsx:116 +#: src/pages/company/CompanyDetail.tsx:89 +#: src/pages/company/ManufacturerPartDetail.tsx:89 +#: src/pages/company/ManufacturerPartDetail.tsx:116 +#: src/pages/company/SupplierPartDetail.tsx:140 +#: src/pages/part/CategoryDetail.tsx:101 +#: src/pages/part/PartDetail.tsx:178 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:136 +#: src/pages/sales/ReturnOrderDetail.tsx:107 +#: src/pages/sales/SalesOrderDetail.tsx:116 +#: src/pages/stock/LocationDetail.tsx:103 +#: src/tables/ColumnRenderers.tsx:92 +#: src/tables/bom/UsedInTable.tsx:44 +#: src/tables/build/BuildAllocatedStockTable.tsx:83 +#: src/tables/build/BuildLineTable.tsx:329 +#: src/tables/machine/MachineTypeTable.tsx:74 +#: src/tables/machine/MachineTypeTable.tsx:129 +#: src/tables/machine/MachineTypeTable.tsx:240 +#: src/tables/machine/MachineTypeTable.tsx:344 +#: src/tables/part/RelatedPartTable.tsx:66 +#: src/tables/plugin/PluginListTable.tsx:99 +#: src/tables/sales/SalesOrderAllocationTable.tsx:87 +#: src/tables/sales/SalesOrderLineItemTable.tsx:75 +#: src/tables/stock/LocationTypesTable.tsx:74 +msgid "Description" +msgstr "Descrição" + +#: src/components/plugins/PluginDrawer.tsx:79 +msgid "Author" +msgstr "Autor" + +#: src/components/plugins/PluginDrawer.tsx:84 +#: src/pages/part/PartSchedulingDetail.tsx:277 +#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:40 +#: src/pages/part/pricing/SaleHistoryPanel.tsx:38 +#: src/tables/ColumnRenderers.tsx:215 +#: src/tables/build/BuildOrderTestTable.tsx:151 +#: src/tables/settings/StocktakeReportTable.tsx:40 +msgid "Date" +msgstr "Data" + +#: src/components/plugins/PluginDrawer.tsx:94 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:398 +#: src/pages/part/PartDetail.tsx:331 +#: src/tables/bom/UsedInTable.tsx:84 +#: src/tables/company/CompanyTable.tsx:62 +#: src/tables/company/CompanyTable.tsx:96 +#: src/tables/machine/MachineListTable.tsx:333 +#: src/tables/machine/MachineListTable.tsx:605 +#: src/tables/part/ParametricPartTable.tsx:223 +#: src/tables/part/PartTable.tsx:178 +#: src/tables/part/PartVariantTable.tsx:15 +#: src/tables/plugin/PluginListTable.tsx:94 +#: src/tables/plugin/PluginListTable.tsx:401 +#: src/tables/purchasing/SupplierPartTable.tsx:100 +#: src/tables/purchasing/SupplierPartTable.tsx:190 +#: src/tables/settings/UserTable.tsx:283 +#: src/tables/stock/StockItemTable.tsx:293 +msgid "Active" +msgstr "Ativo" + +#: src/components/plugins/PluginDrawer.tsx:106 +msgid "Package Name" +msgstr "Nome do Pacote" + +#: src/components/plugins/PluginDrawer.tsx:112 +msgid "Installation Path" +msgstr "Caminho da Instalação" + +#: src/components/plugins/PluginDrawer.tsx:117 +#: src/tables/machine/MachineTypeTable.tsx:152 +#: src/tables/machine/MachineTypeTable.tsx:276 +#: src/tables/plugin/PluginListTable.tsx:406 +msgid "Builtin" +msgstr "Embutido" + +#: src/components/plugins/PluginDrawer.tsx:122 +msgid "Package" +msgstr "Pacote" + +#: src/components/plugins/PluginDrawer.tsx:134 +#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:53 +msgid "Plugin Settings" +msgstr "Configurações da Extensão" + +#: src/components/plugins/PluginDrawer.tsx:146 +#: src/components/render/ModelType.tsx:276 +msgid "Plugin Configuration" +msgstr "Configuração de Plugin" + +#: src/components/plugins/PluginPanel.tsx:87 +#~ msgid "Error occurred while rendering plugin content" +#~ msgstr "Error occurred while rendering plugin content" + +#: src/components/plugins/PluginPanel.tsx:91 +#~ msgid "Plugin did not provide panel rendering function" +#~ msgstr "Plugin did not provide panel rendering function" + +#: src/components/plugins/PluginPanel.tsx:103 +#~ msgid "No content provided for this plugin" +#~ msgstr "No content provided for this plugin" + +#: src/components/plugins/PluginPanel.tsx:116 +#: src/components/plugins/PluginSettingsPanel.tsx:76 +#~ msgid "Error Loading Plugin" +#~ msgstr "Error Loading Plugin" + +#: src/components/plugins/PluginSettingsPanel.tsx:51 +#~ msgid "Error occurred while rendering plugin settings" +#~ msgstr "Error occurred while rendering plugin settings" + +#: src/components/plugins/PluginSettingsPanel.tsx:55 +#~ msgid "Plugin did not provide settings rendering function" +#~ msgstr "Plugin did not provide settings rendering function" + +#: src/components/plugins/PluginUIFeature.tsx:100 +msgid "Error occurred while rendering the template editor." +msgstr "" + +#: src/components/plugins/PluginUIFeature.tsx:111 +msgid "Error Loading Plugin Editor" +msgstr "" + +#: src/components/plugins/PluginUIFeature.tsx:147 +msgid "Error occurred while rendering the template preview." +msgstr "" + +#: src/components/plugins/PluginUIFeature.tsx:158 +msgid "Error Loading Plugin Preview" +msgstr "" + +#: src/components/plugins/RemoteComponent.tsx:70 +msgid "Invalid source or function name" +msgstr "" + +#: src/components/plugins/RemoteComponent.tsx:91 +msgid "Error Loading Content" +msgstr "" + +#: src/components/plugins/RemoteComponent.tsx:95 +msgid "Error occurred while loading plugin content" +msgstr "" + +#: src/components/render/Instance.tsx:224 msgid "Unknown model: {model}" msgstr "Modelo desconhecido: {model}" -#: src/components/render/ModelType.tsx:22 -#: src/forms/BuildForms.tsx:213 -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/forms/StockForms.tsx:499 -#: src/forms/StockForms.tsx:533 -#: src/forms/StockForms.tsx:562 -#: src/forms/StockForms.tsx:590 -#: src/forms/StockForms.tsx:621 -#: src/forms/StockForms.tsx:656 -#: src/forms/StockForms.tsx:698 -#: src/forms/StockForms.tsx:734 -#: src/pages/build/BuildDetail.tsx:95 -#: src/pages/part/PartDetail.tsx:1073 -#: src/tables/build/BuildAllocatedStockTable.tsx:82 +#: src/components/render/ModelType.tsx:30 +#: src/forms/BuildForms.tsx:269 +#: src/forms/BuildForms.tsx:337 +#: src/forms/BuildForms.tsx:385 +#: src/forms/BuildForms.tsx:515 +#: src/forms/PurchaseOrderForms.tsx:689 +#: src/forms/ReturnOrderForms.tsx:190 +#: src/forms/SalesOrderForms.tsx:248 +#: src/forms/StockForms.tsx:261 +#: src/forms/StockForms.tsx:614 +#: src/forms/StockForms.tsx:651 +#: src/forms/StockForms.tsx:677 +#: src/forms/StockForms.tsx:705 +#: src/forms/StockForms.tsx:736 +#: src/forms/StockForms.tsx:771 +#: src/forms/StockForms.tsx:813 +#: src/forms/StockForms.tsx:851 +#: src/pages/build/BuildDetail.tsx:90 +#: src/pages/part/PartDetail.tsx:1094 +#: src/tables/build/BuildAllocatedStockTable.tsx:95 +#: src/tables/build/BuildLineTable.tsx:72 #: src/tables/part/PartTable.tsx:28 -#: src/tables/part/RelatedPartTable.tsx:45 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:88 -#: src/tables/sales/SalesOrderAllocationTable.tsx:68 -#: src/tables/stock/StockTrackingTable.tsx:74 +#: src/tables/part/RelatedPartTable.tsx:47 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:130 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:100 +#: src/tables/sales/SalesOrderAllocationTable.tsx:99 +#: src/tables/stock/StockTrackingTable.tsx:78 msgid "Part" msgstr "Peça" -#: src/components/render/ModelType.tsx:23 -#: src/defaults/links.tsx:29 -#: src/defaults/menuItems.tsx:33 -#: src/pages/Index/Settings/SystemSettings.tsx:173 -#: src/pages/part/CategoryDetail.tsx:119 -#: src/pages/part/CategoryDetail.tsx:244 -#: src/pages/part/CategoryDetail.tsx:274 -#: src/pages/part/PartDetail.tsx:827 -msgid "Parts" -msgstr "Peças" - -#: src/components/render/ModelType.tsx:31 +#: src/components/render/ModelType.tsx:40 msgid "Part Parameter Template" msgstr "Modelo de Parâmetro de Peça" -#: src/components/render/ModelType.tsx:32 +#: src/components/render/ModelType.tsx:41 msgid "Part Parameter Templates" msgstr "Modelos de Parâmetro de Peça" -#: src/components/render/ModelType.tsx:38 +#: src/components/render/ModelType.tsx:48 msgid "Part Test Template" msgstr "Modelo de Teste de Peça" -#: src/components/render/ModelType.tsx:39 +#: src/components/render/ModelType.tsx:49 msgid "Part Test Templates" msgstr "Teste de Modelos de Peças" -#: src/components/render/ModelType.tsx:45 -#: src/pages/company/SupplierPartDetail.tsx:203 -#: src/pages/company/SupplierPartDetail.tsx:375 -#: src/pages/stock/StockDetail.tsx:173 -#: src/tables/build/BuildAllocatedStockTable.tsx:131 +#: src/components/render/ModelType.tsx:56 +#: src/pages/company/SupplierPartDetail.tsx:364 +#: src/pages/stock/StockDetail.tsx:194 +#: src/tables/build/BuildAllocatedStockTable.tsx:152 #: src/tables/part/PartPurchaseOrdersTable.tsx:49 -#: src/tables/purchasing/SupplierPartTable.tsx:68 +#: src/tables/purchasing/SupplierPartTable.tsx:70 +#: src/tables/stock/StockItemTable.tsx:229 msgid "Supplier Part" msgstr "Fornecedor da Peça" -#: src/components/render/ModelType.tsx:46 +#: src/components/render/ModelType.tsx:57 msgid "Supplier Parts" msgstr "Peças do Fornecedor" -#: src/components/render/ModelType.tsx:54 -#: src/pages/company/ManufacturerPartDetail.tsx:132 +#: src/components/render/ModelType.tsx:66 #: src/tables/part/PartPurchaseOrdersTable.tsx:55 +#: src/tables/stock/StockItemTable.tsx:234 msgid "Manufacturer Part" msgstr "Fabricante da peça" -#: src/components/render/ModelType.tsx:55 +#: src/components/render/ModelType.tsx:67 msgid "Manufacturer Parts" msgstr "Peças do Fabricante" -#: src/components/render/ModelType.tsx:63 -#: src/pages/part/CategoryDetail.tsx:305 +#: src/components/render/ModelType.tsx:76 +#: src/pages/part/CategoryDetail.tsx:310 msgid "Part Category" msgstr "Categoria da Peça" -#: src/components/render/ModelType.tsx:64 -#: src/pages/part/CategoryDetail.tsx:258 -#: src/pages/part/CategoryDetail.tsx:296 -#: src/pages/part/PartDetail.tsx:1063 +#: src/components/render/ModelType.tsx:77 +#: src/pages/part/CategoryDetail.tsx:263 +#: src/pages/part/CategoryDetail.tsx:301 +#: src/pages/part/PartDetail.tsx:1084 msgid "Part Categories" msgstr "Categorias de Peça" -#: src/components/render/ModelType.tsx:72 -#: src/pages/stock/StockDetail.tsx:624 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:94 -#: src/tables/stock/StockTrackingTable.tsx:45 +#: src/components/render/ModelType.tsx:86 +#: src/forms/BuildForms.tsx:337 +#: src/forms/BuildForms.tsx:385 +#: src/forms/BuildForms.tsx:515 +#: src/forms/SalesOrderForms.tsx:248 +#: src/pages/stock/StockDetail.tsx:839 +#: src/tables/stock/StockTrackingTable.tsx:49 msgid "Stock Item" msgstr "Item de estoque" -#: src/components/render/ModelType.tsx:73 +#: src/components/render/ModelType.tsx:87 #: src/pages/company/CompanyDetail.tsx:203 -#: src/pages/stock/LocationDetail.tsx:128 -#: src/pages/stock/LocationDetail.tsx:181 -#: src/pages/stock/LocationDetail.tsx:395 +#: src/pages/part/PartStocktakeDetail.tsx:113 +#: src/pages/stock/LocationDetail.tsx:122 +#: src/pages/stock/LocationDetail.tsx:175 +#: src/pages/stock/LocationDetail.tsx:380 msgid "Stock Items" msgstr "Itens de Estoque" -#: src/components/render/ModelType.tsx:81 +#: src/components/render/ModelType.tsx:96 msgid "Stock Location" msgstr "Localização do estoque" -#: src/components/render/ModelType.tsx:82 -#: src/pages/stock/LocationDetail.tsx:195 -#: src/pages/stock/LocationDetail.tsx:387 -#: src/pages/stock/StockDetail.tsx:616 +#: src/components/render/ModelType.tsx:97 +#: src/pages/stock/LocationDetail.tsx:189 +#: src/pages/stock/LocationDetail.tsx:372 +#: src/pages/stock/StockDetail.tsx:831 msgid "Stock Locations" msgstr "Locais de estoque" -#: src/components/render/ModelType.tsx:90 +#: src/components/render/ModelType.tsx:106 msgid "Stock Location Type" -msgstr "Tipo de Localização de Estoque" +msgstr "Categoria de Localização de Estoque" -#: src/components/render/ModelType.tsx:91 +#: src/components/render/ModelType.tsx:107 msgid "Stock Location Types" -msgstr "Tipos de Localização de Estoque" +msgstr "Categoria de Localização de Estoque" -#: src/components/render/ModelType.tsx:95 +#: src/components/render/ModelType.tsx:112 +#: src/pages/part/PartDetail.tsx:712 msgid "Stock History" msgstr "Histórico de estoque" -#: src/components/render/ModelType.tsx:96 +#: src/components/render/ModelType.tsx:113 msgid "Stock Histories" msgstr "Históricos de estoque" -#: src/components/render/ModelType.tsx:100 -#: src/defaults/links.tsx:31 -#: src/defaults/menuItems.tsx:43 +#: src/components/render/ModelType.tsx:118 msgid "Build" msgstr "Produzir" -#: src/components/render/ModelType.tsx:101 +#: src/components/render/ModelType.tsx:119 msgid "Builds" msgstr "Compilações" -#: src/components/render/ModelType.tsx:109 +#: src/components/render/ModelType.tsx:128 msgid "Build Line" msgstr "Linha de Produção" -#: src/components/render/ModelType.tsx:110 +#: src/components/render/ModelType.tsx:129 msgid "Build Lines" msgstr "Linhas de Produção" -#: src/components/render/ModelType.tsx:117 +#: src/components/render/ModelType.tsx:137 msgid "Build Item" -msgstr "" +msgstr "Criar item" -#: src/components/render/ModelType.tsx:118 +#: src/components/render/ModelType.tsx:138 msgid "Build Items" -msgstr "" +msgstr "Criar itens" -#: src/components/render/ModelType.tsx:122 -#: src/pages/company/CompanyDetail.tsx:339 +#: src/components/render/ModelType.tsx:143 +#: src/pages/company/CompanyDetail.tsx:321 msgid "Company" msgstr "Empresa" -#: src/components/render/ModelType.tsx:123 +#: src/components/render/ModelType.tsx:144 msgid "Companies" msgstr "Empresas" -#: src/components/render/ModelType.tsx:131 +#: src/components/render/ModelType.tsx:153 +#: src/pages/build/BuildDetail.tsx:195 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:204 +#: src/pages/sales/ReturnOrderDetail.tsx:174 +#: src/pages/sales/SalesOrderDetail.tsx:186 #: src/tables/TableHoverCard.tsx:81 -#: src/tables/build/BuildOrderTable.tsx:140 -#: src/tables/purchasing/PurchaseOrderTable.tsx:64 -#: src/tables/sales/ReturnOrderTable.tsx:55 -#: src/tables/sales/SalesOrderTable.tsx:62 +#: src/tables/build/BuildOrderTable.tsx:135 +#: src/tables/purchasing/PurchaseOrderTable.tsx:69 +#: src/tables/sales/ReturnOrderTable.tsx:67 +#: src/tables/sales/SalesOrderTable.tsx:67 msgid "Project Code" msgstr "Código do Projeto" -#: src/components/render/ModelType.tsx:132 -#: src/pages/Index/Settings/AdminCenter/Index.tsx:128 +#: src/components/render/ModelType.tsx:154 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:145 msgid "Project Codes" msgstr "Códigos de Projeto" -#: src/components/render/ModelType.tsx:138 +#: src/components/render/ModelType.tsx:161 #: src/pages/part/pricing/PurchaseHistoryPanel.tsx:32 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:480 -#: src/tables/part/PartPurchaseOrdersTable.tsx:32 -#: src/tables/stock/StockTrackingTable.tsx:107 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:477 +#: src/pages/stock/StockDetail.tsx:253 +#: src/tables/part/PartPurchaseOrdersTable.tsx:31 +#: src/tables/stock/StockItemTable.tsx:222 +#: src/tables/stock/StockTrackingTable.tsx:111 msgid "Purchase Order" msgstr "Pedido de Compra" -#: src/components/render/ModelType.tsx:139 -#: src/pages/Index/Settings/SystemSettings.tsx:255 +#: src/components/render/ModelType.tsx:162 +#: src/pages/Index/Settings/SystemSettings.tsx:249 #: src/pages/company/CompanyDetail.tsx:196 -#: src/pages/company/SupplierPartDetail.tsx:237 -#: src/pages/part/PartDetail.tsx:662 +#: src/pages/company/SupplierPartDetail.tsx:249 +#: src/pages/part/PartDetail.tsx:683 #: src/pages/purchasing/PurchasingIndex.tsx:25 msgid "Purchase Orders" msgstr "Pedidos de compra" -#: src/components/render/ModelType.tsx:147 +#: src/components/render/ModelType.tsx:171 msgid "Purchase Order Line" msgstr "Linha do Pedido de Compra" -#: src/components/render/ModelType.tsx:148 +#: src/components/render/ModelType.tsx:172 msgid "Purchase Order Lines" msgstr "Linhas do Pedido de Compra" -#: src/components/render/ModelType.tsx:152 -#: src/pages/build/BuildDetail.tsx:153 -#: src/pages/sales/SalesOrderDetail.tsx:520 -#: src/pages/stock/StockDetail.tsx:221 -#: src/tables/sales/SalesOrderAllocationTable.tsx:50 -#: src/tables/stock/StockTrackingTable.tsx:118 +#: src/components/render/ModelType.tsx:177 +#: src/pages/build/BuildDetail.tsx:148 +#: src/pages/part/pricing/SaleHistoryPanel.tsx:24 +#: src/pages/sales/SalesOrderDetail.tsx:515 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:92 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:341 +#: src/pages/stock/StockDetail.tsx:262 +#: src/tables/sales/SalesOrderAllocationTable.tsx:80 +#: src/tables/stock/StockTrackingTable.tsx:122 msgid "Sales Order" msgstr "Pedido de Venda" -#: src/components/render/ModelType.tsx:153 -#: src/pages/Index/Settings/SystemSettings.tsx:270 +#: src/components/render/ModelType.tsx:178 +#: src/pages/Index/Settings/SystemSettings.tsx:264 #: src/pages/company/CompanyDetail.tsx:216 -#: src/pages/part/PartDetail.tsx:669 +#: src/pages/part/PartDetail.tsx:695 #: src/pages/sales/SalesIndex.tsx:26 msgid "Sales Orders" msgstr "Pedidos de vendas" -#: src/components/render/ModelType.tsx:161 +#: src/components/render/ModelType.tsx:187 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:340 msgid "Sales Order Shipment" msgstr "Envio do Pedido Venda" -#: src/components/render/ModelType.tsx:162 +#: src/components/render/ModelType.tsx:188 msgid "Sales Order Shipments" msgstr "Envios do Pedido Venda" -#: src/components/render/ModelType.tsx:168 -#: src/pages/sales/ReturnOrderDetail.tsx:469 -#: src/tables/stock/StockTrackingTable.tsx:129 +#: src/components/render/ModelType.tsx:195 +#: src/pages/sales/ReturnOrderDetail.tsx:464 +#: src/tables/stock/StockTrackingTable.tsx:133 msgid "Return Order" msgstr "Pedido de Devolução" -#: src/components/render/ModelType.tsx:169 -#: src/pages/Index/Settings/SystemSettings.tsx:286 +#: src/components/render/ModelType.tsx:196 +#: src/pages/Index/Settings/SystemSettings.tsx:280 #: src/pages/company/CompanyDetail.tsx:223 +#: src/pages/part/PartDetail.tsx:702 #: src/pages/sales/SalesIndex.tsx:32 msgid "Return Orders" msgstr "Pedidos de Devolução" -#: src/components/render/ModelType.tsx:177 +#: src/components/render/ModelType.tsx:205 msgid "Return Order Line Item" -msgstr "" +msgstr "Devolver item do pedido" -#: src/components/render/ModelType.tsx:178 +#: src/components/render/ModelType.tsx:206 msgid "Return Order Line Items" -msgstr "" +msgstr "Devolver item do pedido" -#: src/components/render/ModelType.tsx:182 -#: src/tables/company/AddressTable.tsx:47 +#: src/components/render/ModelType.tsx:211 +#: src/tables/company/AddressTable.tsx:48 msgid "Address" msgstr "Endereço" -#: src/components/render/ModelType.tsx:183 -#: src/pages/company/CompanyDetail.tsx:253 +#: src/components/render/ModelType.tsx:212 +#: src/pages/company/CompanyDetail.tsx:255 msgid "Addresses" msgstr "Endereços" -#: src/components/render/ModelType.tsx:189 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:195 -#: src/pages/sales/ReturnOrderDetail.tsx:174 -#: src/pages/sales/SalesOrderDetail.tsx:183 +#: src/components/render/ModelType.tsx:219 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:196 +#: src/pages/sales/ReturnOrderDetail.tsx:166 +#: src/pages/sales/SalesOrderDetail.tsx:178 msgid "Contact" msgstr "Contato" -#: src/components/render/ModelType.tsx:190 -#: src/pages/company/CompanyDetail.tsx:247 +#: src/components/render/ModelType.tsx:220 +#: src/pages/company/CompanyDetail.tsx:249 msgid "Contacts" msgstr "Contatos" -#: src/components/render/ModelType.tsx:196 +#: src/components/render/ModelType.tsx:227 msgid "Owner" msgstr "Proprietário" -#: src/components/render/ModelType.tsx:197 +#: src/components/render/ModelType.tsx:228 msgid "Owners" msgstr "Proprietários" -#: src/components/render/ModelType.tsx:203 -#: src/tables/settings/ImportSessionTable.tsx:121 -#: src/tables/stock/StockItemTestResultTable.tsx:198 -#: src/tables/stock/StockTrackingTable.tsx:195 +#: src/components/render/ModelType.tsx:234 +#~ msgid "Purchase Order Line Item" +#~ msgstr "Purchase Order Line Item" + +#: src/components/render/ModelType.tsx:235 +#: src/tables/settings/BarcodeScanHistoryTable.tsx:80 +#: src/tables/settings/BarcodeScanHistoryTable.tsx:211 +#: src/tables/settings/ImportSessionTable.tsx:120 +#: src/tables/settings/StocktakeReportTable.tsx:44 +#: src/tables/stock/StockItemTestResultTable.tsx:204 +#: src/tables/stock/StockTrackingTable.tsx:181 +#: src/tables/stock/StockTrackingTable.tsx:210 msgid "User" msgstr "Usuário" -#: src/components/render/ModelType.tsx:204 -#: src/pages/Index/Settings/AdminCenter/Index.tsx:98 +#: src/components/render/ModelType.tsx:236 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:109 #: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:13 msgid "Users" msgstr "Usuários" -#: src/components/render/ModelType.tsx:210 +#: src/components/render/ModelType.tsx:243 msgid "Group" -msgstr "" +msgstr "Grupo" -#: src/components/render/ModelType.tsx:211 +#: src/components/render/ModelType.tsx:244 #: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:20 -#: src/tables/settings/UserTable.tsx:138 -#: src/tables/settings/UserTable.tsx:201 +#: src/tables/settings/UserTable.tsx:137 +#: src/tables/settings/UserTable.tsx:200 msgid "Groups" msgstr "Grupos" -#: src/components/render/ModelType.tsx:218 +#: src/components/render/ModelType.tsx:252 msgid "Import Session" -msgstr "" +msgstr "Importar Sessão" -#: src/components/render/ModelType.tsx:219 +#: src/components/render/ModelType.tsx:253 msgid "Import Sessions" -msgstr "" +msgstr "Importar Sessões" -#: src/components/render/ModelType.tsx:225 +#: src/components/render/ModelType.tsx:260 msgid "Label Template" msgstr "Modelo de Etiqueta" -#: src/components/render/ModelType.tsx:226 -#: src/pages/Index/Settings/AdminCenter/Index.tsx:158 +#: src/components/render/ModelType.tsx:261 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:187 msgid "Label Templates" msgstr "Modelos de Etiqueta" -#: src/components/render/ModelType.tsx:232 +#: src/components/render/ModelType.tsx:264 +#~ msgid "Unknown Model" +#~ msgstr "Unknown Model" + +#: src/components/render/ModelType.tsx:268 msgid "Report Template" msgstr "Modelo de Relatório" -#: src/components/render/ModelType.tsx:233 -#: src/pages/Index/Settings/AdminCenter/Index.tsx:164 +#: src/components/render/ModelType.tsx:269 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:193 msgid "Report Templates" msgstr "Modelos de Relatório" -#: src/components/render/ModelType.tsx:239 -msgid "Plugin Configuration" -msgstr "Configuração de Plugin" - -#: src/components/render/ModelType.tsx:240 +#: src/components/render/ModelType.tsx:277 msgid "Plugin Configurations" msgstr "Configurações de Plugins" +#: src/components/render/ModelType.tsx:284 +msgid "Content Type" +msgstr "Categoria de conteúdo" + +#: src/components/render/ModelType.tsx:285 +msgid "Content Types" +msgstr "Categorias de conteúdo" + +#: src/components/render/ModelType.tsx:291 +#: src/tables/machine/MachineListTable.tsx:351 +#: src/tables/machine/MachineTypeTable.tsx:282 +msgid "Errors" +msgstr "Erros" + +#: src/components/render/ModelType.tsx:307 +#~ msgid "Purchase Order Line Items" +#~ msgstr "Purchase Order Line Items" + +#: src/components/render/ModelType.tsx:337 +#~ msgid "Unknown Models" +#~ msgstr "Unknown Models" + #: src/components/render/Order.tsx:121 +#: src/tables/sales/SalesOrderAllocationTable.tsx:136 msgid "Shipment" msgstr "Remessa" #: src/components/render/Part.tsx:25 #: src/components/render/Plugin.tsx:17 -#: src/pages/company/CompanyDetail.tsx:325 -#: src/pages/company/SupplierPartDetail.tsx:360 -#: src/pages/part/PartDetail.tsx:879 +#: src/pages/company/CompanyDetail.tsx:307 +#: src/pages/company/SupplierPartDetail.tsx:349 +#: src/pages/part/PartDetail.tsx:911 msgid "Inactive" msgstr "Inativo" @@ -1736,39 +2335,38 @@ msgstr "Inativo" msgid "No stock" msgstr "Sem Estoque" -#: src/components/render/Part.tsx:30 -#: src/defaults/links.tsx:30 -#: src/defaults/menuItems.tsx:38 -#: src/pages/Index/Settings/SystemSettings.tsx:206 -#: src/pages/part/PartDetail.tsx:543 -#: src/pages/stock/LocationDetail.tsx:367 -#: src/pages/stock/StockDetail.tsx:411 -#: src/tables/stock/StockItemTable.tsx:68 -msgid "Stock" -msgstr "Estoque" - -#: src/components/render/Stock.tsx:60 -#: src/pages/stock/StockDetail.tsx:150 -#: src/pages/stock/StockDetail.tsx:581 -#: src/tables/build/BuildAllocatedStockTable.tsx:102 -#: src/tables/sales/SalesOrderAllocationTable.tsx:80 +#: src/components/render/Stock.tsx:61 +#: src/forms/ReturnOrderForms.tsx:190 +#: src/pages/stock/StockDetail.tsx:166 +#: src/pages/stock/StockDetail.tsx:771 +#: src/tables/build/BuildAllocatedStockTable.tsx:123 +#: src/tables/build/BuildOutputTable.tsx:81 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:114 +#: src/tables/sales/SalesOrderAllocationTable.tsx:106 msgid "Serial Number" msgstr "Número de Série" -#: src/components/render/Stock.tsx:62 -#: src/forms/BuildForms.tsx:218 -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/pages/part/pricing/BomPricingPanel.tsx:109 +#: src/components/render/Stock.tsx:63 +#: src/forms/BuildForms.tsx:206 +#: src/forms/BuildForms.tsx:515 +#: src/forms/PurchaseOrderForms.tsx:689 +#: src/forms/SalesOrderForms.tsx:248 +#: src/pages/part/PartSchedulingDetail.tsx:80 +#: src/pages/part/PartStocktakeDetail.tsx:60 +#: src/pages/part/PartStocktakeDetail.tsx:234 +#: src/pages/part/PartStocktakeDetail.tsx:252 +#: src/pages/part/pricing/BomPricingPanel.tsx:148 #: src/pages/part/pricing/PriceBreakPanel.tsx:89 -#: src/pages/part/pricing/PriceBreakPanel.tsx:171 -#: src/pages/stock/StockDetail.tsx:145 -#: src/pages/stock/StockDetail.tsx:587 -#: src/tables/build/BuildOrderTestTable.tsx:197 -#: src/tables/part/PartPurchaseOrdersTable.tsx:92 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:143 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:171 +#: src/pages/part/pricing/PriceBreakPanel.tsx:172 +#: src/pages/stock/StockDetail.tsx:161 +#: src/pages/stock/StockDetail.tsx:777 +#: src/tables/build/BuildLineTable.tsx:79 +#: src/tables/build/BuildOrderTestTable.tsx:198 +#: src/tables/part/PartPurchaseOrdersTable.tsx:93 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:146 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:177 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:77 -#: src/tables/stock/StockTrackingTable.tsx:59 +#: src/tables/stock/StockTrackingTable.tsx:63 msgid "Quantity" msgstr "Quantidade" @@ -1842,10 +2440,6 @@ msgstr "Nenhuma configuração especificada" #~ msgid "Required Part" #~ msgstr "Required Part" -#: src/components/tables/build/BuildLineTable.tsx:152 -#~ msgid "Required Quantity" -#~ msgstr "Required Quantity" - #: src/components/tables/build/BuildOrderTable.tsx:52 #~ msgid "Progress" #~ msgstr "Progress" @@ -2126,14 +2720,6 @@ msgstr "Nenhuma configuração especificada" #~ msgid "user deleted" #~ msgstr "user deleted" -#: src/components/tables/settings/UserTable.tsx:168 -#~ msgid "First Name" -#~ msgstr "First Name" - -#: src/components/tables/settings/UserTable.tsx:173 -#~ msgid "Last Name" -#~ msgstr "Last Name" - #: src/components/tables/stock/StockItemTable.tsx:247 #~ msgid "Test Filter" #~ msgstr "Test Filter" @@ -2146,36 +2732,21 @@ msgstr "Nenhuma configuração especificada" #~ msgid "Stock location updated" #~ msgstr "Stock location updated" -#: src/components/widgets/DisplayWidget.tsx:11 -#: src/pages/Index/Settings/AccountSettings/DisplaySettingsPanel.tsx:17 -msgid "Display Settings" -msgstr "Configurações de tela" - -#: src/components/widgets/DisplayWidget.tsx:15 -#: src/pages/Index/Settings/AccountSettings/DisplaySettingsPanel.tsx:23 -msgid "Color Mode" -msgstr "Modo de cores" - -#: src/components/widgets/DisplayWidget.tsx:21 -#: src/pages/Index/Settings/AccountSettings/DisplaySettingsPanel.tsx:33 -msgid "Language" -msgstr "Idioma" - #: src/components/widgets/FeedbackWidget.tsx:19 -msgid "Something is new: Platform UI" -msgstr "Algo novo: Interface da Plataforma" +#~ msgid "Something is new: Platform UI" +#~ msgstr "Something is new: Platform UI" #: src/components/widgets/FeedbackWidget.tsx:21 -msgid "We are building a new UI with a modern stack. What you currently see is not fixed and will be redesigned but demonstrates the UI/UX possibilities we will have going forward." -msgstr "Estamos construindo uma nova interface moderna de usuário. O que você vê no momento não foi corrigido e será redesenhado, mas demonstra as possibilidades de UI/UX que teremos adiante." +#~ msgid "We are building a new UI with a modern stack. What you currently see is not fixed and will be redesigned but demonstrates the UI/UX possibilities we will have going forward." +#~ msgstr "We are building a new UI with a modern stack. What you currently see is not fixed and will be redesigned but demonstrates the UI/UX possibilities we will have going forward." #: src/components/widgets/FeedbackWidget.tsx:32 -msgid "Provide Feedback" -msgstr "Forneça Avaliação" +#~ msgid "Provide Feedback" +#~ msgstr "Provide Feedback" #: src/components/widgets/GetStartedWidget.tsx:11 -msgid "Getting started" -msgstr "Iniciando" +#~ msgid "Getting started" +#~ msgstr "Getting started" #: src/components/widgets/MarkdownEditor.tsx:108 #~ msgid "Failed to upload image" @@ -2186,32 +2757,28 @@ msgstr "Iniciando" #~ msgstr "Notes saved" #: src/components/widgets/WidgetLayout.tsx:166 -msgid "Layout" -msgstr "Disposição" +#~ msgid "Layout" +#~ msgstr "Layout" #: src/components/widgets/WidgetLayout.tsx:172 -msgid "Reset Layout" -msgstr "Redefinir Disposição" +#~ msgid "Reset Layout" +#~ msgstr "Reset Layout" #: src/components/widgets/WidgetLayout.tsx:185 -msgid "Stop Edit" -msgstr "Parar Edição" - -#: src/components/widgets/WidgetLayout.tsx:185 -msgid "Edit Layout" -msgstr "Editar Disposição" +#~ msgid "Stop Edit" +#~ msgstr "Stop Edit" #: src/components/widgets/WidgetLayout.tsx:191 -msgid "Appearance" -msgstr "Aparência" +#~ msgid "Appearance" +#~ msgstr "Appearance" #: src/components/widgets/WidgetLayout.tsx:203 -msgid "Show Boxes" -msgstr "Mostrar Caixas" +#~ msgid "Show Boxes" +#~ msgstr "Show Boxes" #: src/contexts/LanguageContext.tsx:20 msgid "Arabic" -msgstr "" +msgstr "Árabe" #: src/contexts/LanguageContext.tsx:21 msgid "Bulgarian" @@ -2247,7 +2814,7 @@ msgstr "Espanhol (Mexicano)" #: src/contexts/LanguageContext.tsx:29 msgid "Estonian" -msgstr "" +msgstr "Estoniano" #: src/contexts/LanguageContext.tsx:30 msgid "Farsi / Persian" @@ -2286,201 +2853,175 @@ msgid "Korean" msgstr "Coreano" #: src/contexts/LanguageContext.tsx:39 +msgid "Lithuanian" +msgstr "" + +#: src/contexts/LanguageContext.tsx:40 msgid "Latvian" msgstr "Letão" -#: src/contexts/LanguageContext.tsx:40 +#: src/contexts/LanguageContext.tsx:41 msgid "Dutch" msgstr "Holandês" -#: src/contexts/LanguageContext.tsx:41 +#: src/contexts/LanguageContext.tsx:42 msgid "Norwegian" msgstr "Norueguês" -#: src/contexts/LanguageContext.tsx:42 +#: src/contexts/LanguageContext.tsx:43 msgid "Polish" msgstr "Polonês" -#: src/contexts/LanguageContext.tsx:43 +#: src/contexts/LanguageContext.tsx:44 msgid "Portuguese" msgstr "Português" -#: src/contexts/LanguageContext.tsx:44 +#: src/contexts/LanguageContext.tsx:45 msgid "Portuguese (Brazilian)" msgstr "Português (Brasileiro)" -#: src/contexts/LanguageContext.tsx:45 +#: src/contexts/LanguageContext.tsx:46 msgid "Romanian" msgstr "Romeno" -#: src/contexts/LanguageContext.tsx:46 +#: src/contexts/LanguageContext.tsx:47 msgid "Russian" msgstr "Russo" -#: src/contexts/LanguageContext.tsx:47 +#: src/contexts/LanguageContext.tsx:48 msgid "Slovak" msgstr "Eslovaco" -#: src/contexts/LanguageContext.tsx:48 +#: src/contexts/LanguageContext.tsx:49 msgid "Slovenian" msgstr "Esloveno" -#: src/contexts/LanguageContext.tsx:49 +#: src/contexts/LanguageContext.tsx:50 msgid "Swedish" msgstr "Sueco" -#: src/contexts/LanguageContext.tsx:50 +#: src/contexts/LanguageContext.tsx:51 msgid "Thai" msgstr "Tailandês" -#: src/contexts/LanguageContext.tsx:51 +#: src/contexts/LanguageContext.tsx:52 msgid "Turkish" msgstr "Turco" -#: src/contexts/LanguageContext.tsx:52 +#: src/contexts/LanguageContext.tsx:53 msgid "Ukrainian" msgstr "Ucraniano" -#: src/contexts/LanguageContext.tsx:53 +#: src/contexts/LanguageContext.tsx:54 msgid "Vietnamese" msgstr "Vietnamita" -#: src/contexts/LanguageContext.tsx:54 +#: src/contexts/LanguageContext.tsx:55 msgid "Chinese (Simplified)" msgstr "Chinês (Simplificado)" -#: src/contexts/LanguageContext.tsx:55 +#: src/contexts/LanguageContext.tsx:56 msgid "Chinese (Traditional)" msgstr "Chinês (Tradicional)" #: src/defaults/actions.tsx:18 -#: src/defaults/links.tsx:27 -#: src/defaults/menuItems.tsx:9 -msgid "Home" -msgstr "Início" - -#: src/defaults/actions.tsx:25 -#: src/defaults/links.tsx:28 -#: src/defaults/menuItems.tsx:28 -#: src/pages/Index/Dashboard.tsx:19 -#: src/pages/Index/Settings/UserSettings.tsx:46 -msgid "Dashboard" -msgstr "Painel de Controle" - -#: src/defaults/actions.tsx:26 msgid "Go to the InvenTree dashboard" msgstr "Ir para o Dashboard do InvenTree" -#: src/defaults/actions.tsx:33 +#: src/defaults/actions.tsx:18 +#: src/defaults/links.tsx:27 +#: src/defaults/menuItems.tsx:9 +#~ msgid "Home" +#~ msgstr "Home" + +#: src/defaults/actions.tsx:25 msgid "Visit the documentation to learn more about InvenTree" msgstr "Visite a documentação para aprender mais sobre o InvenTree" -#: src/defaults/actions.tsx:39 -#: src/defaults/links.tsx:98 -#: src/defaults/links.tsx:128 +#: src/defaults/actions.tsx:31 +#: src/defaults/links.tsx:92 +#: src/defaults/links.tsx:124 msgid "About InvenTree" msgstr "Sobre o InvenTree" -#: src/defaults/actions.tsx:40 -#: src/defaults/links.tsx:129 +#: src/defaults/actions.tsx:32 msgid "About the InvenTree org" msgstr "Sobre a organização InvenTree" -#: src/defaults/actions.tsx:46 +#: src/defaults/actions.tsx:38 msgid "Server Information" msgstr "Informações do Servidor" -#: src/defaults/actions.tsx:47 -#: src/defaults/links.tsx:123 +#: src/defaults/actions.tsx:39 +#: src/defaults/links.tsx:118 msgid "About this Inventree instance" msgstr "Sobre esta instância do Inventree" -#: src/defaults/actions.tsx:53 -#: src/defaults/links.tsx:111 +#: src/defaults/actions.tsx:45 +#: src/defaults/links.tsx:105 +#: src/defaults/links.tsx:131 msgid "License Information" msgstr "Informações de Licença" -#: src/defaults/actions.tsx:54 -#: src/defaults/links.tsx:135 +#: src/defaults/actions.tsx:46 msgid "Licenses for dependencies of the service" msgstr "Licenças para dependências de serviços" -#: src/defaults/actions.tsx:61 +#: src/defaults/actions.tsx:52 +msgid "Open Navigation" +msgstr "Abrir Navegação" + +#: src/defaults/actions.tsx:53 msgid "Open the main navigation menu" msgstr "Abrir o menu de navegação principal" -#: src/defaults/actions.tsx:72 +#: src/defaults/actions.tsx:64 msgid "Go to the Admin Center" -msgstr "" - -#: src/defaults/dashboardItems.tsx:15 -msgid "Subscribed Parts" -msgstr "Peças inscritas" - -#: src/defaults/dashboardItems.tsx:22 -msgid "Subscribed Categories" -msgstr "Categorias Inscritas" +msgstr "Ir para o Centro de Administração" #: src/defaults/dashboardItems.tsx:29 -msgid "Latest Parts" -msgstr "Peças mais recentes" +#~ msgid "Latest Parts" +#~ msgstr "Latest Parts" #: src/defaults/dashboardItems.tsx:36 -msgid "BOM Waiting Validation" -msgstr "LDM Aguardando Validação" +#~ msgid "BOM Waiting Validation" +#~ msgstr "BOM Waiting Validation" #: src/defaults/dashboardItems.tsx:43 -msgid "Recently Updated" -msgstr "Atualizados Recentemente" - -#: src/defaults/dashboardItems.tsx:50 -#: src/tables/part/PartTable.tsx:238 -msgid "Low Stock" -msgstr "Estoque Baixo" +#~ msgid "Recently Updated" +#~ msgstr "Recently Updated" #: src/defaults/dashboardItems.tsx:57 -msgid "Depleted Stock" -msgstr "Estoque Esgotado" +#~ msgid "Depleted Stock" +#~ msgstr "Depleted Stock" #: src/defaults/dashboardItems.tsx:64 -msgid "Required for Build Orders" -msgstr "Necessário para pedidos de produção" +#~ msgid "Required for Build Orders" +#~ msgstr "Required for Build Orders" #: src/defaults/dashboardItems.tsx:71 -msgid "Expired Stock" -msgstr "Estoque Expirado" +#~ msgid "Expired Stock" +#~ msgstr "Expired Stock" #: src/defaults/dashboardItems.tsx:78 -msgid "Stale Stock" -msgstr "Estoque Parado" +#~ msgid "Stale Stock" +#~ msgstr "Stale Stock" #: src/defaults/dashboardItems.tsx:85 -msgid "Build Orders In Progress" -msgstr "Pedido de Produção em Progresso" - -#: src/defaults/dashboardItems.tsx:92 -msgid "Overdue Build Orders" -msgstr "Pedido de produção atrasado" +#~ msgid "Build Orders In Progress" +#~ msgstr "Build Orders In Progress" #: src/defaults/dashboardItems.tsx:99 -msgid "Outstanding Purchase Orders" -msgstr "Pedidos de Compra Pendentes" - -#: src/defaults/dashboardItems.tsx:106 -msgid "Overdue Purchase Orders" -msgstr "Pedido de Compra Vencido" +#~ msgid "Outstanding Purchase Orders" +#~ msgstr "Outstanding Purchase Orders" #: src/defaults/dashboardItems.tsx:113 -msgid "Outstanding Sales Orders" -msgstr "Pedidos de Venda Pendentes" - -#: src/defaults/dashboardItems.tsx:120 -msgid "Overdue Sales Orders" -msgstr "Pedidos de Venda Vencidos" +#~ msgid "Outstanding Sales Orders" +#~ msgstr "Outstanding Sales Orders" #: src/defaults/dashboardItems.tsx:127 -msgid "Current News" -msgstr "Notícias Atuais" +#~ msgid "Current News" +#~ msgstr "Current News" #: src/defaults/defaultHostList.tsx:8 #~ msgid "InvenTree Demo" @@ -2490,97 +3031,80 @@ msgstr "Notícias Atuais" #~ msgid "Local Server" #~ msgstr "Local Server" -#: src/defaults/links.tsx:12 -#: src/pages/company/CompanyDetail.tsx:96 -msgid "Website" -msgstr "Página Web" - #: src/defaults/links.tsx:17 -msgid "GitHub" -msgstr "GitHub" +#~ msgid "GitHub" +#~ msgstr "GitHub" #: src/defaults/links.tsx:22 -msgid "Demo" -msgstr "Demonstração" - -#: src/defaults/links.tsx:33 -#: src/defaults/menuItems.tsx:48 -#: src/pages/company/ManufacturerDetail.tsx:9 -#: src/pages/company/ManufacturerPartDetail.tsx:263 -#: src/pages/company/SupplierDetail.tsx:9 -#: src/pages/company/SupplierPartDetail.tsx:347 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:483 -#: src/pages/purchasing/PurchasingIndex.tsx:60 -msgid "Purchasing" -msgstr "Comprando" - -#: src/defaults/links.tsx:37 -#: src/defaults/menuItems.tsx:53 -#: src/pages/company/CustomerDetail.tsx:9 -#: src/pages/sales/ReturnOrderDetail.tsx:474 -#: src/pages/sales/SalesIndex.tsx:53 -#: src/pages/sales/SalesOrderDetail.tsx:525 -msgid "Sales" -msgstr "Vendas" +#~ msgid "Demo" +#~ msgstr "Demo" #: src/defaults/links.tsx:41 #: src/defaults/menuItems.tsx:71 #: src/pages/Index/Playground.tsx:217 -msgid "Playground" -msgstr "Área de testes" +#~ msgid "Playground" +#~ msgstr "Playground" -#: src/defaults/links.tsx:55 -msgid "Getting Started" -msgstr "Primeiros passos" - -#: src/defaults/links.tsx:56 -msgid "Getting started with InvenTree" -msgstr "Primeiros passos com InvenTree" - -#: src/defaults/links.tsx:62 +#: src/defaults/links.tsx:45 msgid "API" msgstr "API" -#: src/defaults/links.tsx:63 +#: src/defaults/links.tsx:48 msgid "InvenTree API documentation" msgstr "Documentação de API do InvenTree" -#: src/defaults/links.tsx:68 +#: src/defaults/links.tsx:52 msgid "Developer Manual" msgstr "Manual do Desenvolvedor" -#: src/defaults/links.tsx:69 +#: src/defaults/links.tsx:55 msgid "InvenTree developer manual" msgstr "Manual do desenvolvedor InvenTree" -#: src/defaults/links.tsx:74 +#: src/defaults/links.tsx:59 msgid "FAQ" msgstr "FAQ" -#: src/defaults/links.tsx:75 +#: src/defaults/links.tsx:62 msgid "Frequently asked questions" msgstr "Perguntas Frequentes" +#: src/defaults/links.tsx:66 +msgid "GitHub Repository" +msgstr "" + +#: src/defaults/links.tsx:69 +msgid "InvenTree source code on GitHub" +msgstr "" + #: src/defaults/links.tsx:76 #~ msgid "Instance" #~ msgstr "Instance" +#: src/defaults/links.tsx:79 +#: src/defaults/links.tsx:117 +msgid "System Information" +msgstr "Informação do Sistema" + #: src/defaults/links.tsx:83 #~ msgid "InvenTree" #~ msgstr "InvenTree" -#: src/defaults/links.tsx:85 -#: src/defaults/links.tsx:122 -msgid "System Information" -msgstr "Informação do Sistema" - #: src/defaults/links.tsx:117 #~ msgid "Licenses for packages used by InvenTree" #~ msgstr "Licenses for packages used by InvenTree" +#: src/defaults/links.tsx:125 +msgid "About the InvenTree Project" +msgstr "" + +#: src/defaults/links.tsx:132 +msgid "Licenses for dependencies of the InvenTree software" +msgstr "" + #: src/defaults/links.tsx:134 -msgid "Licenses" -msgstr "Licenças" +#~ msgid "Licenses" +#~ msgstr "Licenses" #: src/defaults/menuItems.tsx:7 #~ msgid "Open sourcea" @@ -2607,8 +3131,8 @@ msgstr "Licenças" #~ msgstr "Profile page" #: src/defaults/menuItems.tsx:17 -msgid "User attributes and design settings." -msgstr "Atributos de usuário e configurações de design." +#~ msgid "User attributes and design settings." +#~ msgstr "User attributes and design settings." #: src/defaults/menuItems.tsx:21 #~ msgid "Free for everyone" @@ -2619,8 +3143,8 @@ msgstr "Atributos de usuário e configurações de design." #~ msgstr "The fluid of Smeargle’s tail secretions changes" #: src/defaults/menuItems.tsx:23 -msgid "View for interactive scanning and multiple actions." -msgstr "Visualização para varredura interativa e várias ações." +#~ msgid "View for interactive scanning and multiple actions." +#~ msgstr "View for interactive scanning and multiple actions." #: src/defaults/menuItems.tsx:24 #~ msgid "The fluid of Smeargle’s tail secretions changes in the intensity" @@ -2698,51 +3222,130 @@ msgstr "Visualização para varredura interativa e várias ações." #~ msgid "Are you sure you want to delete this attachment?" #~ msgstr "Are you sure you want to delete this attachment?" -#: src/forms/BuildForms.tsx:158 -msgid "Next serial number" -msgstr "Próximo número de série" +#: src/forms/BuildForms.tsx:248 +#~ msgid "Remove output" +#~ msgstr "Remove output" -#: src/forms/BuildForms.tsx:162 -msgid "Latest serial number" -msgstr "Último número de série" +#: src/forms/BuildForms.tsx:269 +#: src/tables/build/BuildAllocatedStockTable.tsx:147 +#: src/tables/build/BuildOrderTestTable.tsx:177 +#: src/tables/build/BuildOrderTestTable.tsx:201 +#: src/tables/build/BuildOutputTable.tsx:460 +msgid "Build Output" +msgstr "Saída da Produção" -#: src/forms/BuildForms.tsx:234 -msgid "Remove output" -msgstr "Remover a saída" +#: src/forms/BuildForms.tsx:269 +#: src/forms/BuildForms.tsx:337 +#: src/forms/BuildForms.tsx:385 +#: src/tables/build/BuildLineTable.tsx:89 +msgid "Batch" +msgstr "Lote" -#: src/forms/BuildForms.tsx:316 +#: src/forms/BuildForms.tsx:269 +#: src/forms/BuildForms.tsx:337 +#: src/forms/BuildForms.tsx:385 +#: src/forms/PurchaseOrderForms.tsx:603 +#: src/pages/build/BuildDetail.tsx:104 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:142 +#: src/pages/sales/ReturnOrderDetail.tsx:113 +#: src/pages/sales/SalesOrderDetail.tsx:122 +#: src/tables/build/BuildOrderTable.tsx:125 +#: src/tables/machine/MachineListTable.tsx:336 +#: src/tables/part/PartPurchaseOrdersTable.tsx:37 +#: src/tables/purchasing/PurchaseOrderTable.tsx:58 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:157 +#: src/tables/sales/ReturnOrderTable.tsx:56 +#: src/tables/sales/SalesOrderTable.tsx:56 +#: src/tables/settings/CustomStateTable.tsx:57 +#: src/tables/settings/ImportSessionTable.tsx:114 +#: src/tables/stock/StockItemTable.tsx:298 +#: src/tables/stock/StockTrackingTable.tsx:56 +msgid "Status" +msgstr "Estado" + +#: src/forms/BuildForms.tsx:289 msgid "Complete Build Outputs" msgstr "Concluir Saídas de Produção" -#: src/forms/BuildForms.tsx:320 +#: src/forms/BuildForms.tsx:292 msgid "Build outputs have been completed" msgstr "Saídas de produção foram completadas" -#: src/forms/BuildForms.tsx:389 +#: src/forms/BuildForms.tsx:353 msgid "Scrap Build Outputs" msgstr "Sucatear Saídas de Produção" -#: src/forms/BuildForms.tsx:393 +#: src/forms/BuildForms.tsx:356 msgid "Build outputs have been scrapped" msgstr "Saídas de produção foram sucateadas" -#: src/forms/BuildForms.tsx:425 -#: src/forms/BuildForms.tsx:449 +#: src/forms/BuildForms.tsx:393 msgid "Cancel Build Outputs" msgstr "Cancelar Saídas de Produção" -#: src/forms/BuildForms.tsx:426 -msgid "Selected build outputs will be deleted" -msgstr "Saídas de produção selecionadas serão apagadas" - -#: src/forms/BuildForms.tsx:453 +#: src/forms/BuildForms.tsx:396 msgid "Build outputs have been cancelled" msgstr "Saídas de produção foram canceladas" +#: src/forms/BuildForms.tsx:408 +#~ msgid "Selected build outputs will be deleted" +#~ msgstr "Selected build outputs will be deleted" + +#: src/forms/BuildForms.tsx:470 +#~ msgid "Remove line" +#~ msgstr "Remove line" + +#: src/forms/BuildForms.tsx:515 +#: src/forms/SalesOrderForms.tsx:248 +#: src/tables/build/BuildLineTable.tsx:174 +#: src/tables/sales/SalesOrderLineItemTable.tsx:276 +#: src/tables/stock/StockItemTable.tsx:309 +msgid "Allocated" +msgstr "Alocado" + +#: src/forms/BuildForms.tsx:545 +#: src/forms/SalesOrderForms.tsx:239 +#: src/pages/build/BuildDetail.tsx:208 +msgid "Source Location" +msgstr "Local de Origem" + +#: src/forms/BuildForms.tsx:546 +#: src/forms/SalesOrderForms.tsx:240 +msgid "Select the source location for the stock allocation" +msgstr "Selecione o local de origem para alocação de estoque" + +#: src/forms/BuildForms.tsx:566 +#: src/forms/SalesOrderForms.tsx:274 +#: src/tables/build/BuildLineTable.tsx:442 +#: src/tables/build/BuildLineTable.tsx:569 +#: src/tables/build/BuildLineTable.tsx:642 +#: src/tables/sales/SalesOrderLineItemTable.tsx:302 +#: src/tables/sales/SalesOrderLineItemTable.tsx:326 +msgid "Allocate Stock" +msgstr "Alocar Estoque" + +#: src/forms/BuildForms.tsx:569 +#: src/forms/SalesOrderForms.tsx:279 +msgid "Stock items allocated" +msgstr "Itens de estoque alocados" + #: src/forms/CompanyForms.tsx:150 #~ msgid "Company updated" #~ msgstr "Company updated" +#: src/forms/PartForms.tsx:67 +#: src/forms/PartForms.tsx:154 +#: src/pages/part/CategoryDetail.tsx:117 +#: src/pages/part/PartDetail.tsx:384 +#: src/tables/part/PartCategoryTable.tsx:90 +#: src/tables/part/PartTable.tsx:294 +msgid "Subscribed" +msgstr "Inscrito" + +#: src/forms/PartForms.tsx:68 +msgid "Subscribe to notifications for this part" +msgstr "" + #: src/forms/PartForms.tsx:106 #~ msgid "Create Part" #~ msgstr "Create Part" @@ -2751,191 +3354,190 @@ msgstr "Saídas de produção foram canceladas" #~ msgid "Part created" #~ msgstr "Part created" -#: src/forms/PartForms.tsx:124 -msgid "Parent part category" -msgstr "Categoria de peça parental" - #: src/forms/PartForms.tsx:129 #~ msgid "Part updated" #~ msgstr "Part updated" -#: src/forms/PurchaseOrderForms.tsx:300 +#: src/forms/PartForms.tsx:140 +msgid "Parent part category" +msgstr "Categoria de peça parental" + +#: src/forms/PartForms.tsx:155 +msgid "Subscribe to notifications for this category" +msgstr "" + +#: src/forms/PurchaseOrderForms.tsx:314 +msgid "Assign Batch Code and Serial Numbers" +msgstr "" + +#: src/forms/PurchaseOrderForms.tsx:316 +msgid "Assign Batch Code" +msgstr "" + +#: src/forms/PurchaseOrderForms.tsx:336 msgid "Choose Location" msgstr "Escolher local" -#: src/forms/PurchaseOrderForms.tsx:308 +#: src/forms/PurchaseOrderForms.tsx:344 msgid "Item Destination selected" msgstr "Destino do item selecionado" -#: src/forms/PurchaseOrderForms.tsx:317 +#: src/forms/PurchaseOrderForms.tsx:353 msgid "Part category default location selected" msgstr "Localização padrão da categoria de peça selecionada" -#: src/forms/PurchaseOrderForms.tsx:327 +#: src/forms/PurchaseOrderForms.tsx:363 msgid "Received stock location selected" msgstr "Localização do estoque recebida selecionada" -#: src/forms/PurchaseOrderForms.tsx:332 +#: src/forms/PurchaseOrderForms.tsx:368 msgid "Default location selected" msgstr "Localização padrão selecionada" -#: src/forms/PurchaseOrderForms.tsx:343 -#: src/forms/PurchaseOrderForms.tsx:435 -msgid "Scan Barcode" -msgstr "Ler Código de Barras" +#: src/forms/PurchaseOrderForms.tsx:421 +#~ msgid "Assign Batch Code{0}" +#~ msgstr "Assign Batch Code{0}" -#: src/forms/PurchaseOrderForms.tsx:388 +#: src/forms/PurchaseOrderForms.tsx:427 msgid "Set Location" msgstr "Definir Localização" -#: src/forms/PurchaseOrderForms.tsx:396 -msgid "Assign Batch Code{0}" -msgstr "Atribuir Código em Lote{0}" - -#: src/forms/PurchaseOrderForms.tsx:405 -#: src/forms/StockForms.tsx:420 +#: src/forms/PurchaseOrderForms.tsx:442 +#: src/forms/StockForms.tsx:539 msgid "Adjust Packaging" -msgstr "" - -#: src/forms/PurchaseOrderForms.tsx:412 -msgid "Change Status" -msgstr "Alterar Status" - -#: src/forms/PurchaseOrderForms.tsx:418 -msgid "Add Note" -msgstr "" +msgstr "Ajustar Pacotes" #: src/forms/PurchaseOrderForms.tsx:444 #: src/forms/StockForms.tsx:428 -msgid "Remove item from list" -msgstr "Remover item da lista" +#~ msgid "Remove item from list" +#~ msgstr "Remove item from list" -#: src/forms/PurchaseOrderForms.tsx:471 -#: src/forms/StockForms.tsx:499 -#: src/forms/StockForms.tsx:533 -#: src/forms/StockForms.tsx:562 -#: src/forms/StockForms.tsx:590 -#: src/forms/StockForms.tsx:621 -#: src/forms/StockForms.tsx:656 -#: src/forms/StockForms.tsx:698 -#: src/forms/StockForms.tsx:734 -#: src/pages/stock/StockDetail.tsx:181 -#: src/tables/ColumnRenderers.tsx:49 -#: src/tables/stock/StockTrackingTable.tsx:85 +#: src/forms/PurchaseOrderForms.tsx:450 +msgid "Change Status" +msgstr "Alterar Status" + +#: src/forms/PurchaseOrderForms.tsx:456 +msgid "Add Note" +msgstr "Adicionar observação" + +#: src/forms/PurchaseOrderForms.tsx:503 +#: src/forms/StockForms.tsx:614 +#: src/forms/StockForms.tsx:651 +#: src/forms/StockForms.tsx:677 +#: src/forms/StockForms.tsx:705 +#: src/forms/StockForms.tsx:736 +#: src/forms/StockForms.tsx:771 +#: src/forms/StockForms.tsx:813 +#: src/forms/StockForms.tsx:851 +#: src/pages/stock/StockDetail.tsx:202 +#: src/tables/ColumnRenderers.tsx:60 +#: src/tables/stock/StockTrackingTable.tsx:89 msgid "Location" msgstr "Localização" -#: src/forms/PurchaseOrderForms.tsx:486 +#: src/forms/PurchaseOrderForms.tsx:518 msgid "Store at default location" msgstr "Armazenar no local padrão" -#: src/forms/PurchaseOrderForms.tsx:499 +#: src/forms/PurchaseOrderForms.tsx:533 msgid "Store at line item destination" msgstr "Armazenar no destino do item de linha" -#: src/forms/PurchaseOrderForms.tsx:509 +#: src/forms/PurchaseOrderForms.tsx:545 msgid "Store with already received stock" msgstr "Armazenar com estoque já recebido" -#: src/forms/PurchaseOrderForms.tsx:524 -#: src/pages/build/BuildDetail.tsx:219 -#: src/pages/stock/StockDetail.tsx:162 -#: src/pages/stock/StockDetail.tsx:599 -#: src/tables/build/BuildAllocatedStockTable.tsx:109 -#: src/tables/build/BuildOrderTestTable.tsx:188 -#: src/tables/sales/SalesOrderAllocationTable.tsx:87 +#: src/forms/PurchaseOrderForms.tsx:566 +#: src/pages/build/BuildDetail.tsx:222 +#: src/pages/stock/StockDetail.tsx:185 +#: src/pages/stock/StockDetail.tsx:793 +#: src/tables/build/BuildAllocatedStockTable.tsx:130 +#: src/tables/build/BuildOrderTestTable.tsx:189 +#: src/tables/build/BuildOutputTable.tsx:86 +#: src/tables/sales/SalesOrderAllocationTable.tsx:113 msgid "Batch Code" msgstr "Código de Lote" -#: src/forms/PurchaseOrderForms.tsx:535 -msgid "Serial numbers" +#: src/forms/PurchaseOrderForms.tsx:566 +#~ msgid "Serial numbers" +#~ msgstr "Serial numbers" + +#: src/forms/PurchaseOrderForms.tsx:567 +msgid "Enter batch code for received items" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:544 -#: src/forms/StockForms.tsx:443 -#: src/pages/company/SupplierPartDetail.tsx:156 -#: src/pages/company/SupplierPartDetail.tsx:207 -#: src/pages/stock/StockDetail.tsx:244 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:192 +#: src/forms/PurchaseOrderForms.tsx:579 +#: src/forms/StockForms.tsx:152 +msgid "Serial Numbers" +msgstr "Números de Série" + +#: src/forms/PurchaseOrderForms.tsx:580 +msgid "Enter serial numbers for received items" +msgstr "" + +#: src/forms/PurchaseOrderForms.tsx:590 +#: src/forms/StockForms.tsx:556 +#: src/pages/company/SupplierPartDetail.tsx:168 +#: src/pages/company/SupplierPartDetail.tsx:219 +#: src/pages/stock/StockDetail.tsx:320 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:198 msgid "Packaging" msgstr "Embalagem" -#: src/forms/PurchaseOrderForms.tsx:556 -#: src/pages/build/BuildDetail.tsx:109 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:148 -#: src/pages/sales/ReturnOrderDetail.tsx:121 -#: src/pages/sales/SalesOrderDetail.tsx:127 -#: src/tables/build/BuildOrderTable.tsx:122 -#: src/tables/machine/MachineListTable.tsx:335 -#: src/tables/part/PartPurchaseOrdersTable.tsx:37 -#: src/tables/purchasing/PurchaseOrderTable.tsx:55 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:132 -#: src/tables/sales/ReturnOrderTable.tsx:46 -#: src/tables/sales/SalesOrderTable.tsx:53 -#: src/tables/settings/ImportSessionTable.tsx:115 -#: src/tables/stock/StockItemTable.tsx:294 -#: src/tables/stock/StockTrackingTable.tsx:52 -msgid "Status" -msgstr "Estado" - -#: src/forms/PurchaseOrderForms.tsx:564 -#: src/pages/company/SupplierPartDetail.tsx:110 -#: src/tables/ColumnRenderers.tsx:132 +#: src/forms/PurchaseOrderForms.tsx:612 +#: src/pages/company/SupplierPartDetail.tsx:115 +#: src/tables/ColumnRenderers.tsx:143 msgid "Note" msgstr "Anotação" -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/pages/company/SupplierPartDetail.tsx:128 -#: src/tables/purchasing/SupplierPriceBreakTable.tsx:57 -msgid "SKU" -msgstr "Código (SKU)" - -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/tables/part/PartPurchaseOrdersTable.tsx:120 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:178 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:127 -msgid "Received" -msgstr "Recebido" - -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/forms/StockForms.tsx:499 -#: src/forms/StockForms.tsx:533 -#: src/forms/StockForms.tsx:562 -#: src/forms/StockForms.tsx:590 -#: src/forms/StockForms.tsx:621 -#: src/forms/StockForms.tsx:656 -#: src/forms/StockForms.tsx:698 -#: src/forms/StockForms.tsx:734 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:413 -#: src/tables/RowActions.tsx:113 -msgid "Actions" -msgstr "Ações" - -#: src/forms/PurchaseOrderForms.tsx:655 -msgid "Receive Line Items" -msgstr "Excluir Itens de Linha" - #: src/forms/PurchaseOrderForms.tsx:658 #~ msgid "Receive line items" #~ msgstr "Receive line items" -#: src/forms/StockForms.tsx:104 -msgid "Add given quantity as packs instead of individual items" -msgstr "Adicionar quantidade dada como pacotes e não itens individuais" +#: src/forms/PurchaseOrderForms.tsx:689 +#: src/pages/company/SupplierPartDetail.tsx:133 +#: src/tables/purchasing/SupplierPriceBreakTable.tsx:57 +msgid "SKU" +msgstr "Código (SKU)" + +#: src/forms/PurchaseOrderForms.tsx:689 +#: src/tables/part/PartPurchaseOrdersTable.tsx:126 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:184 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:247 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:152 +msgid "Received" +msgstr "Recebido" + +#: src/forms/PurchaseOrderForms.tsx:701 +msgid "Receive Line Items" +msgstr "Excluir Itens de Linha" + +#: src/forms/ReturnOrderForms.tsx:201 +msgid "Receive Items" +msgstr "Receber Itens" + +#: src/forms/ReturnOrderForms.tsx:208 +msgid "Item received into stock" +msgstr "" + +#: src/forms/StockForms.tsx:80 +#: src/hooks/UsePlaceholder.tsx:57 +msgid "Next serial number" +msgstr "Próximo número de série" #: src/forms/StockForms.tsx:110 #~ msgid "Create Stock Item" #~ msgstr "Create Stock Item" -#: src/forms/StockForms.tsx:117 +#: src/forms/StockForms.tsx:131 +msgid "Add given quantity as packs instead of individual items" +msgstr "Adicionar quantidade dada como pacotes e não itens individuais" + +#: src/forms/StockForms.tsx:145 msgid "Enter initial quantity for this stock item" msgstr "Inserir quantidade inicial deste item de estoque" -#: src/forms/StockForms.tsx:124 -msgid "Serial Numbers" -msgstr "Números de Série" - -#: src/forms/StockForms.tsx:125 +#: src/forms/StockForms.tsx:154 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "Insira o número de série para novo estoque (ou deixe em branco)" @@ -2943,82 +3545,102 @@ msgstr "Insira o número de série para novo estoque (ou deixe em branco)" #~ msgid "Stock item updated" #~ msgstr "Stock item updated" -#: src/forms/StockForms.tsx:179 -#: src/pages/stock/StockDetail.tsx:434 -#: src/tables/stock/StockItemTable.tsx:417 -#: src/tables/stock/StockItemTable.tsx:535 +#: src/forms/StockForms.tsx:169 +#: src/pages/stock/StockDetail.tsx:131 +msgid "Stock Status" +msgstr "Situação do Estoque" + +#: src/forms/StockForms.tsx:218 +#: src/pages/stock/StockDetail.tsx:554 +#: src/tables/stock/StockItemTable.tsx:421 +#: src/tables/stock/StockItemTable.tsx:541 msgid "Add Stock Item" msgstr "Adicionar Item do Estoque" -#: src/forms/StockForms.tsx:362 +#: src/forms/StockForms.tsx:262 +msgid "Select the part to install" +msgstr "" + +#: src/forms/StockForms.tsx:480 msgid "Loading..." msgstr "Carregando..." -#: src/forms/StockForms.tsx:408 +#: src/forms/StockForms.tsx:527 msgid "Move to default location" msgstr "Mover para o local padrão" -#: src/forms/StockForms.tsx:499 -#: src/forms/StockForms.tsx:533 -#: src/forms/StockForms.tsx:562 -#: src/forms/StockForms.tsx:590 -#: src/forms/StockForms.tsx:621 -#: src/forms/StockForms.tsx:656 -#: src/forms/StockForms.tsx:698 -#: src/forms/StockForms.tsx:734 -#: src/pages/part/PartDetail.tsx:230 -#: src/pages/part/PartDetail.tsx:843 -#: src/tables/stock/StockItemTable.tsx:325 +#: src/forms/StockForms.tsx:614 +#: src/forms/StockForms.tsx:651 +#: src/forms/StockForms.tsx:677 +#: src/forms/StockForms.tsx:705 +#: src/forms/StockForms.tsx:736 +#: src/forms/StockForms.tsx:771 +#: src/forms/StockForms.tsx:813 +#: src/forms/StockForms.tsx:851 +#: src/pages/part/PartDetail.tsx:251 +#: src/pages/part/PartDetail.tsx:875 +#: src/tables/stock/StockItemTable.tsx:329 msgid "In Stock" msgstr "Em Estoque" -#: src/forms/StockForms.tsx:499 +#: src/forms/StockForms.tsx:614 msgid "Move" msgstr "Mover" -#: src/forms/StockForms.tsx:562 -#: src/pages/stock/StockDetail.tsx:518 -#: src/tables/stock/StockItemTestResultTable.tsx:328 +#: src/forms/StockForms.tsx:677 +#: src/pages/stock/StockDetail.tsx:681 +#: src/tables/stock/StockItemTestResultTable.tsx:346 msgid "Add" msgstr "Adicionar" -#: src/forms/StockForms.tsx:590 -#: src/pages/Index/Scan.tsx:266 -#: src/pages/stock/StockDetail.tsx:508 +#: src/forms/StockForms.tsx:705 +#: src/pages/Index/Scan.tsx:280 +#: src/pages/stock/StockDetail.tsx:670 msgid "Count" msgstr "Contar" -#: src/forms/StockForms.tsx:835 +#: src/forms/StockForms.tsx:953 +#: src/pages/stock/StockDetail.tsx:682 +#: src/tables/stock/StockItemTable.tsx:454 msgid "Add Stock" msgstr "Adicionar Estoque" -#: src/forms/StockForms.tsx:844 +#: src/forms/StockForms.tsx:962 +#: src/pages/stock/StockDetail.tsx:691 +#: src/tables/stock/StockItemTable.tsx:463 msgid "Remove Stock" msgstr "Remover Estoque" -#: src/forms/StockForms.tsx:853 -#: src/pages/part/PartDetail.tsx:1017 +#: src/forms/StockForms.tsx:971 +#: src/pages/part/PartDetail.tsx:1039 +#: src/pages/stock/StockDetail.tsx:712 +#: src/tables/stock/StockItemTable.tsx:483 msgid "Transfer Stock" msgstr "Transferir Estoque" -#: src/forms/StockForms.tsx:862 -#: src/pages/part/PartDetail.tsx:1006 +#: src/forms/StockForms.tsx:980 +#: src/pages/part/PartDetail.tsx:1028 +#: src/pages/stock/LocationDetail.tsx:314 +#: src/pages/stock/LocationDetail.tsx:318 +#: src/tables/stock/StockItemTable.tsx:472 +#: src/tables/stock/StockItemTable.tsx:476 msgid "Count Stock" msgstr "Contar Estoque" -#: src/forms/StockForms.tsx:871 +#: src/forms/StockForms.tsx:989 msgid "Change Stock Status" msgstr "Mudar estado do estoque" -#: src/forms/StockForms.tsx:880 +#: src/forms/StockForms.tsx:998 msgid "Merge Stock" msgstr "Mesclar estoque" -#: src/forms/StockForms.tsx:899 +#: src/forms/StockForms.tsx:1017 +#: src/tables/stock/StockItemTable.tsx:530 msgid "Delete Stock Items" msgstr "Excluir Item de Estoque" -#: src/forms/StockForms.tsx:906 +#: src/forms/StockForms.tsx:1024 msgid "Parent stock location" msgstr "Local de estoque pai" @@ -3042,11 +3664,11 @@ msgstr "Local de estoque pai" #~ msgid "You have been logged out" #~ msgstr "You have been logged out" -#: src/functions/auth.tsx:117 +#: src/functions/auth.tsx:128 msgid "Logged Out" msgstr "Desconectado" -#: src/functions/auth.tsx:118 +#: src/functions/auth.tsx:129 msgid "Successfully logged out" msgstr "Deslogado com sucesso" @@ -3062,20 +3684,20 @@ msgstr "Deslogado com sucesso" #~ msgid "Found an existing login - welcome back!" #~ msgstr "Found an existing login - welcome back!" -#: src/functions/auth.tsx:156 +#: src/functions/auth.tsx:167 msgid "Check your inbox for a reset link. This only works if you have an account. Check in spam too." msgstr "Verifique sua caixa de entrada para o link de redefinição. Isso só funciona se você tiver uma conta. Cheque no spam também." -#: src/functions/auth.tsx:163 +#: src/functions/auth.tsx:174 #: src/pages/Auth/Set-Password.tsx:39 msgid "Reset failed" msgstr "A redefinação falhou" -#: src/functions/auth.tsx:194 +#: src/functions/auth.tsx:205 msgid "Logged In" msgstr "Logado" -#: src/functions/auth.tsx:195 +#: src/functions/auth.tsx:206 msgid "Successfully logged in" msgstr "Logado com sucesso" @@ -3095,30 +3717,38 @@ msgstr "Logado com sucesso" #~ msgid "method parameter not supplied" #~ msgstr "method parameter not supplied" -#: src/functions/notifications.tsx:10 +#: src/functions/notifications.tsx:12 msgid "Not implemented" msgstr "Não implementado" -#: src/functions/notifications.tsx:11 +#: src/functions/notifications.tsx:13 msgid "This feature is not yet implemented" msgstr "Esta função ainda não foi implementada" -#: src/functions/notifications.tsx:21 -msgid "Permission denied" -msgstr "Permissão negada" +#: src/functions/notifications.tsx:24 +#~ msgid "Permission denied" +#~ msgstr "Permission denied" -#: src/functions/notifications.tsx:22 +#: src/functions/notifications.tsx:25 msgid "You do not have permission to perform this action" msgstr "Você não tem permissão para realizar esta ação" -#: src/functions/notifications.tsx:33 +#: src/functions/notifications.tsx:36 msgid "Invalid Return Code" msgstr "Código de retorno inválido" -#: src/functions/notifications.tsx:34 +#: src/functions/notifications.tsx:37 msgid "Server returned status {returnCode}" msgstr "O servidor retornou o estado {returnCode}" +#: src/functions/notifications.tsx:47 +msgid "Timeout" +msgstr "" + +#: src/functions/notifications.tsx:48 +msgid "The request timed out" +msgstr "" + #: src/hooks/UseForm.tsx:88 msgid "Item Created" msgstr "Item Criado" @@ -3135,20 +3765,24 @@ msgstr "Item Excluído" msgid "Are you sure you want to delete this item?" msgstr "Tem certeza que deseja remover este item?" +#: src/hooks/UsePlaceholder.tsx:59 +msgid "Latest serial number" +msgstr "Último número de série" + #: src/pages/Auth/Logged-In.tsx:22 msgid "Checking if you are already logged in" msgstr "Checando se você já está conectado" -#: src/pages/Auth/Login.tsx:31 -#: src/pages/Index/Scan.tsx:329 +#: src/pages/Auth/Login.tsx:35 +#: src/pages/Index/Scan.tsx:343 msgid "No selection" msgstr "Nada selecionado" -#: src/pages/Auth/Login.tsx:87 +#: src/pages/Auth/Login.tsx:91 msgid "Welcome, log in below" msgstr "Bem-vindo(a), acesse abaixo" -#: src/pages/Auth/Login.tsx:89 +#: src/pages/Auth/Login.tsx:93 msgid "Register below" msgstr "Registre-se abaixo" @@ -3162,8 +3796,8 @@ msgstr "Desconectando" #: src/pages/Auth/Reset.tsx:41 #: src/pages/Auth/Set-Password.tsx:112 -msgid "Send mail" -msgstr "Enviar e-mail" +#~ msgid "Send mail" +#~ msgstr "Send mail" #: src/pages/Auth/Set-Password.tsx:30 msgid "Token invalid" @@ -3174,22 +3808,22 @@ msgid "You need to provide a valid token to set a new password. Check your inbox msgstr "Você precisa fornecer um token válido para definir uma nova senha. Verifique sua caixa de entrada para um link de redefinição." #: src/pages/Auth/Set-Password.tsx:49 -msgid "No token provided" -msgstr "Nenhum token fornecido" +#~ msgid "No token provided" +#~ msgstr "No token provided" #: src/pages/Auth/Set-Password.tsx:50 -msgid "You need to provide a token to set a new password. Check your inbox for a reset link." -msgstr "Você precisa fornecer um token para definir uma nova senha. Verifique sua caixa de entrada para um link de redefinição." +#~ msgid "You need to provide a token to set a new password. Check your inbox for a reset link." +#~ msgstr "You need to provide a token to set a new password. Check your inbox for a reset link." -#: src/pages/Auth/Set-Password.tsx:73 +#: src/pages/Auth/Set-Password.tsx:68 msgid "Password set" msgstr "Senha definida" -#: src/pages/Auth/Set-Password.tsx:74 +#: src/pages/Auth/Set-Password.tsx:69 msgid "The password was set successfully. You can now login with your new password" msgstr "Sua senha foi alterada com sucesso. Agora você pode acessar usando sua nova senha" -#: src/pages/Auth/Set-Password.tsx:101 +#: src/pages/Auth/Set-Password.tsx:96 msgid "Set new password" msgstr "Defina uma nova senha" @@ -3199,27 +3833,27 @@ msgstr "Erro: {0}" #: src/pages/ErrorPage.tsx:23 msgid "An unexpected error has occurred" -msgstr "" +msgstr "Ocorreu um erro inesperado" #: src/pages/ErrorPage.tsx:28 #~ msgid "Sorry, an unexpected error has occurred." #~ msgstr "Sorry, an unexpected error has occurred." #: src/pages/Index/Dashboard.tsx:22 -msgid "Autoupdate" -msgstr "Atualizar automaticamente" +#~ msgid "Autoupdate" +#~ msgstr "Autoupdate" #: src/pages/Index/Dashboard.tsx:26 -msgid "This page is a replacement for the old start page with the same information. This page will be deprecated and replaced by the home page." -msgstr "Esta página é uma substituição para a página inicial antiga com as mesmas informações. Esta página será descontinuada e substituída pela página inicial." +#~ msgid "This page is a replacement for the old start page with the same information. This page will be deprecated and replaced by the home page." +#~ msgstr "This page is a replacement for the old start page with the same information. This page will be deprecated and replaced by the home page." #: src/pages/Index/Home.tsx:58 -msgid "Welcome to your Dashboard{0}" -msgstr "Bem-vindo ao seu painel{0}" +#~ msgid "Welcome to your Dashboard{0}" +#~ msgstr "Welcome to your Dashboard{0}" #: src/pages/Index/Playground.tsx:222 -msgid "This page is a showcase for the possibilities of Platform UI." -msgstr "Esta página é uma demonstração para as possibilidades da interface de plataforma." +#~ msgid "This page is a showcase for the possibilities of Platform UI." +#~ msgstr "This page is a showcase for the possibilities of Platform UI." #: src/pages/Index/Profile/Profile.tsx:30 #: src/pages/Index/Profile/Profile.tsx:141 @@ -3365,126 +3999,191 @@ msgstr "Entrada manual" msgid "Image Barcode" msgstr "Imagem do Código de Barras" -#: src/pages/Index/Scan.tsx:247 +#: src/pages/Index/Scan.tsx:261 msgid "Selected elements are not known" msgstr "Selecionar elementos não conhecidos" -#: src/pages/Index/Scan.tsx:254 +#: src/pages/Index/Scan.tsx:268 msgid "Multiple object types selected" msgstr "Múltiplos tipos de objetos selecionados" -#: src/pages/Index/Scan.tsx:261 +#: src/pages/Index/Scan.tsx:275 msgid "Actions for {0}" msgstr "Ações para {0}" -#: src/pages/Index/Scan.tsx:282 +#: src/pages/Index/Scan.tsx:296 msgid "Scan Page" msgstr "Escanear Página" -#: src/pages/Index/Scan.tsx:285 +#: src/pages/Index/Scan.tsx:299 msgid "This page can be used for continuously scanning items and taking actions on them." msgstr "Esta página pode ser usada para escanear itens continuamente e executar ações sobre eles." -#: src/pages/Index/Scan.tsx:292 +#: src/pages/Index/Scan.tsx:306 msgid "Toggle Fullscreen" msgstr "Alternar para tela cheia" -#: src/pages/Index/Scan.tsx:305 +#: src/pages/Index/Scan.tsx:319 msgid "Select the input method you want to use to scan items." msgstr "Selecione o método de entrada que você deseja usar para escanear os itens." -#: src/pages/Index/Scan.tsx:307 +#: src/pages/Index/Scan.tsx:321 msgid "Input" msgstr "Entrada" -#: src/pages/Index/Scan.tsx:314 +#: src/pages/Index/Scan.tsx:328 msgid "Select input method" msgstr "Selecionar método de entrada" -#: src/pages/Index/Scan.tsx:315 +#: src/pages/Index/Scan.tsx:329 msgid "Nothing found" msgstr "Nada encontrado" -#: src/pages/Index/Scan.tsx:323 +#: src/pages/Index/Scan.tsx:337 msgid "Depending on the selected parts actions will be shown here. Not all barcode types are supported currently." msgstr "Dependendo das peças selecionadas as ações serão exibidas aqui. Nem todos os códigos de barras são suportados atualmente." -#: src/pages/Index/Scan.tsx:325 +#: src/pages/Index/Scan.tsx:339 msgid "Action" msgstr "Ação" -#: src/pages/Index/Scan.tsx:334 +#: src/pages/Index/Scan.tsx:348 msgid "{0} items selected" msgstr "{0} itens selecionados" -#: src/pages/Index/Scan.tsx:337 +#: src/pages/Index/Scan.tsx:351 msgid "General Actions" msgstr "Ações Gerais" -#: src/pages/Index/Scan.tsx:351 +#: src/pages/Index/Scan.tsx:365 msgid "Lookup part" msgstr "Peça Pesquisada" -#: src/pages/Index/Scan.tsx:359 +#: src/pages/Index/Scan.tsx:373 msgid "Open Link" msgstr "Abrir Link" -#: src/pages/Index/Scan.tsx:375 +#: src/pages/Index/Scan.tsx:389 msgid "History is locally kept in this browser." msgstr "O histórico é guardado localmente neste navegador." -#: src/pages/Index/Scan.tsx:376 +#: src/pages/Index/Scan.tsx:390 msgid "The history is kept in this browser's local storage. So it won't be shared with other users or other devices but is persistent through reloads. You can select items in the history to perform actions on them. To add items, scan/enter them in the Input area." msgstr "O histórico é mantido no armazenamento local deste navegador. Por isso, ele não será compartilhado com outros usuários ou dispositivos, mas será persistente através de recarregamentos. Você pode selecionar itens no histórico para executar ações neles. Para adicionar itens, digitalize-os na área de entrada." -#: src/pages/Index/Scan.tsx:378 +#: src/pages/Index/Scan.tsx:392 #: src/pages/Notifications.tsx:100 msgid "History" msgstr "Histórico" -#: src/pages/Index/Scan.tsx:384 +#: src/pages/Index/Scan.tsx:398 msgid "Delete History" msgstr "Excluir o histórico" -#: src/pages/Index/Scan.tsx:449 +#: src/pages/Index/Scan.tsx:463 msgid "No history" msgstr "Sem histórico" -#: src/pages/Index/Scan.tsx:467 +#: src/pages/Index/Scan.tsx:481 msgid "Item" msgstr "Item" -#: src/pages/Index/Scan.tsx:470 +#: src/pages/Index/Scan.tsx:484 msgid "Type" msgstr "Tipo" -#: src/pages/Index/Scan.tsx:473 +#: src/pages/Index/Scan.tsx:487 msgid "Source" msgstr "Fonte" -#: src/pages/Index/Scan.tsx:476 +#: src/pages/Index/Scan.tsx:490 msgid "Scanned at" msgstr "Escaneado em" -#: src/pages/Index/Scan.tsx:528 +#: src/pages/Index/Scan.tsx:547 msgid "Enter item serial or data" msgstr "Inserir número de série ou dados do item" -#: src/pages/Index/Scan.tsx:540 +#: src/pages/Index/Scan.tsx:559 msgid "Add dummy item" msgstr "Adicionar Item fictício" +#: src/pages/Index/Scan.tsx:569 +msgid "Start scanning by selecting a camera and pressing the play button." +msgstr "Comece a digitalizar selecionando uma câmera e pressione o botão checar." + +#: src/pages/Index/Scan.tsx:650 +msgid "Error while getting camera" +msgstr "Erro ao obter a câmera" + +#: src/pages/Index/Scan.tsx:673 +msgid "Error while scanning" +msgstr "Erro ao escanear" + +#: src/pages/Index/Scan.tsx:687 +msgid "Error while stopping" +msgstr "Erro ao parar" + +#: src/pages/Index/Scan.tsx:745 +msgid "Stop scanning" +msgstr "Parar escaneamento" + +#: src/pages/Index/Scan.tsx:754 +msgid "Start scanning" +msgstr "Começar a escanear" + +#: src/pages/Index/Scan.tsx:763 +msgid "Scanning" +msgstr "Escaneando" + +#: src/pages/Index/Scan.tsx:763 +msgid "Not scanning" +msgstr "Não está escaneando" + +#: src/pages/Index/Scan.tsx:775 +msgid "Select Camera" +msgstr "Selecionar Camera" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:28 +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:50 +msgid "Edit User Information" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:32 +msgid "User details updated" +msgstr "" + #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:41 -msgid "Account Details" -msgstr "Detalhes da Conta" +msgid "User Details" +msgstr "Detalhes do Usuário" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:41 +#~ msgid "Account Details" +#~ msgstr "Account Details" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:44 +msgid "User Actions" +msgstr "Ações do Usuário" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:48 +msgid "Edit User" +msgstr "Editar Usuário" #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:50 -msgid "First name" -msgstr "Primeiro nome" +#~ msgid "First name" +#~ msgstr "First name" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:54 +msgid "Set Password" +msgstr "" #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:55 -msgid "Last name" -msgstr "Sobrenome" +#~ msgid "Last name" +#~ msgstr "Last name" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:56 +msgid "Set User Password" +msgstr "" #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:58 #~ msgid "First name: {0}" @@ -3495,16 +4194,29 @@ msgstr "Sobrenome" #~ msgstr "Last name: {0}" #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:67 -msgid "First name:" -msgstr "Primeiro nome:" +#~ msgid "First name:" +#~ msgstr "First name:" #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:71 -msgid "Last name:" -msgstr "Sobrenome:" +#~ msgid "Last name:" +#~ msgstr "Last name:" -#: src/pages/Index/Settings/AccountSettings/DisplaySettingsPanel.tsx:41 -msgid "Use pseudo language" -msgstr "Usar pseudo-idioma" +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:73 +msgid "First Name" +msgstr "Primeiro Nome" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:79 +msgid "Last Name" +msgstr "Último Nome" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:85 +msgid "Staff Access" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:93 +#: src/tables/settings/UserTable.tsx:293 +msgid "Superuser" +msgstr "Superusuário" #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:55 msgid "Single Sign On Accounts" @@ -3530,7 +4242,7 @@ msgstr "A autenticação de múltiplos fatores não está configurada para sua c #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:92 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:407 msgid "Token" -msgstr "" +msgstr "Ficha" #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:139 msgid "The following email addresses are associated with your account:" @@ -3590,78 +4302,93 @@ msgstr "Você pode entrar na sua conta usando qualquer uma das seguintes contas #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:368 msgid "Token is used - no actions" -msgstr "" +msgstr "Ficha é usada — nenhuma ação" #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:375 msgid "Revoke" -msgstr "" +msgstr "Revogar" #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:389 msgid "No tokens configured" -msgstr "" - -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:398 -#: src/pages/part/PartDetail.tsx:297 -#: src/tables/bom/UsedInTable.tsx:84 -#: src/tables/build/BuildOrderTable.tsx:110 -#: src/tables/company/CompanyTable.tsx:61 -#: src/tables/company/CompanyTable.tsx:95 -#: src/tables/machine/MachineListTable.tsx:332 -#: src/tables/machine/MachineListTable.tsx:594 -#: src/tables/part/ParametricPartTable.tsx:223 -#: src/tables/part/PartTable.tsx:178 -#: src/tables/part/PartVariantTable.tsx:15 -#: src/tables/plugin/PluginListTable.tsx:149 -#: src/tables/plugin/PluginListTable.tsx:271 -#: src/tables/plugin/PluginListTable.tsx:563 -#: src/tables/purchasing/SupplierPartTable.tsx:98 -#: src/tables/purchasing/SupplierPartTable.tsx:187 -#: src/tables/settings/UserTable.tsx:284 -#: src/tables/stock/StockItemTable.tsx:289 -msgid "Active" -msgstr "Ativo" +msgstr "Nenhuma ficha configurada" #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:401 msgid "Expiry" -msgstr "" +msgstr "Vencimento" #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:404 msgid "Last Seen" -msgstr "" +msgstr "Visto pela Última Vez" #: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:65 -msgid "bars" -msgstr "barras" +#~ msgid "bars" +#~ msgstr "bars" #: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:66 -msgid "oval" -msgstr "oval" +#~ msgid "oval" +#~ msgstr "oval" #: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:67 -msgid "dots" -msgstr "pontos" +#~ msgid "dots" +#~ msgstr "dots" #: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:81 -msgid "Theme" -msgstr "Tema" +#~ msgid "Theme" +#~ msgstr "Theme" #: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:87 -msgid "Primary color" -msgstr "Cor primária" +#~ msgid "Primary color" +#~ msgstr "Primary color" -#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:100 +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:88 +msgid "Bars" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:89 +msgid "Oval" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:90 +msgid "Dots" +msgstr "Pontos" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:101 +msgid "Display Settings" +msgstr "Configurações de tela" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:107 +msgid "Language" +msgstr "Idioma" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:115 +msgid "Use pseudo language" +msgstr "Usar pseudo-idioma" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:122 +msgid "Color Mode" +msgstr "Modo de cores" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:133 +msgid "Highlight color" +msgstr "Cor de destaque" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:145 +msgid "Example" +msgstr "Exemplo" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:151 msgid "White color" msgstr "Cor branca" -#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:108 +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:167 msgid "Black color" msgstr "Cor preta" -#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:116 +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:183 msgid "Border Radius" msgstr "Raio da borda" -#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:132 +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:199 msgid "Loader" msgstr "Carregador" @@ -3673,89 +4400,156 @@ msgstr "Carregador" #~ msgid "Advanced Amininistrative Options for InvenTree" #~ msgstr "Advanced Amininistrative Options for InvenTree" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:104 +#: src/pages/Index/Settings/AdminCenter/CurrencyManagmentPanel.tsx:27 +#: src/tables/ColumnRenderers.tsx:262 +msgid "Currency" +msgstr "Moeda" + +#: src/pages/Index/Settings/AdminCenter/CurrencyManagmentPanel.tsx:32 +msgid "Rate" +msgstr "Taxa" + +#: src/pages/Index/Settings/AdminCenter/CurrencyManagmentPanel.tsx:44 +msgid "Exchange rates updated" +msgstr "Taxas de câmbio atualizadas" + +#: src/pages/Index/Settings/AdminCenter/CurrencyManagmentPanel.tsx:50 +msgid "Exchange rate update error" +msgstr "Erro ao atualizar taxa de câmbio" + +#: src/pages/Index/Settings/AdminCenter/CurrencyManagmentPanel.tsx:62 +msgid "Refresh currency exchange rates" +msgstr "Atualizar taxas de câmbio" + +#: src/pages/Index/Settings/AdminCenter/CurrencyManagmentPanel.tsx:99 +msgid "Last fetched" +msgstr "Última busca" + +#: src/pages/Index/Settings/AdminCenter/CurrencyManagmentPanel.tsx:100 +msgid "Base currency" +msgstr "Moeda base" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:115 msgid "Data Import" +msgstr "Importador de dados" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:121 +msgid "Barcode Scans" msgstr "" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:110 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:127 msgid "Background Tasks" msgstr "Tarefas de segundo plano" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:116 -msgid "Error Reports" -msgstr "Relatórios de Erro" - -#: src/pages/Index/Settings/AdminCenter/Index.tsx:122 -msgid "Currencies" -msgstr "Moedas" - #: src/pages/Index/Settings/AdminCenter/Index.tsx:127 #~ msgid "Templates" #~ msgstr "Templates" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:140 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:133 +msgid "Error Reports" +msgstr "Relatórios de Erro" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:139 +msgid "Currencies" +msgstr "Moedas" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:157 +msgid "Custom States" +msgstr "Estados personalizados" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:163 +#: src/pages/Index/Settings/AdminCenter/UnitManagmentPanel.tsx:58 msgid "Custom Units" msgstr "Unidades personalizadas" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:146 -#: src/pages/part/CategoryDetail.tsx:264 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:169 +#: src/pages/part/CategoryDetail.tsx:269 msgid "Part Parameters" msgstr "Parâmetros da Peça" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:152 -msgid "Category Parameters" -msgstr "Parâmetros de Categoria" - -#: src/pages/Index/Settings/AdminCenter/Index.tsx:170 -msgid "Location Types" -msgstr "" - #: src/pages/Index/Settings/AdminCenter/Index.tsx:170 #~ msgid "Location types" #~ msgstr "Location types" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:182 -#: src/tables/machine/MachineTypeTable.tsx:287 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:175 +msgid "Category Parameters" +msgstr "Parâmetros de Categoria" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:181 +msgid "Stocktake" +msgstr "Balanço" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:199 +msgid "Location Types" +msgstr "Tipo de Localização" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:211 +#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:48 +#: src/tables/machine/MachineTypeTable.tsx:308 msgid "Machines" msgstr "Máquinas" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:192 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:221 msgid "Quick Actions" msgstr "Ações Rápidas" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:197 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:226 msgid "Add a new user" msgstr "Adicionar novo usuário" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:222 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:252 msgid "Advanced Options" msgstr "Opções Avançadas" #: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:43 -msgid "Machine types" -msgstr "Tipos de máquinas" +#~ msgid "Machine types" +#~ msgstr "Machine types" #: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:53 -msgid "Machine Error Stack" -msgstr "Pilha de Erros da Máquina" +#~ msgid "Machine Error Stack" +#~ msgstr "Machine Error Stack" + +#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:56 +msgid "Machine Types" +msgstr "" #: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:62 -msgid "There are no machine registry errors." -msgstr "Não há registro de erros da máquina." +#~ msgid "There are no machine registry errors." +#~ msgstr "There are no machine registry errors." -#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:28 -#: src/tables/settings/UserTable.tsx:119 +#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:64 +msgid "Machine Errors" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:77 +msgid "Registry Registry Errors" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:80 +msgid "There are machine registry errors" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:86 +msgid "Machine Registry Errors" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:89 +msgid "There are no machine registry errors" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:31 +#: src/tables/settings/UserTable.tsx:118 msgid "Info" msgstr "Info" -#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:32 -msgid "External plugins are not enabled for this InvenTree installation." -msgstr "Extensões externas não estão ativados para esta instalação do InvenTree." - #: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:33 #~ msgid "Plugin Error Stack" #~ msgstr "Plugin Error Stack" +#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:35 +msgid "External plugins are not enabled for this InvenTree installation." +msgstr "Extensões externas não estão ativados para esta instalação do InvenTree." + #: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:45 #~ msgid "Warning" #~ msgstr "Warning" @@ -3764,34 +4558,46 @@ msgstr "Extensões externas não estão ativados para esta instalação do Inven #~ msgid "Changing the settings below require you to immediately restart the server. Do not change this while under active usage." #~ msgstr "Changing the settings below require you to immediately restart the server. Do not change this while under active usage." -#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:50 +#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:73 msgid "Plugin Errors" msgstr "Erros de plugin" -#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:59 -msgid "Plugin Settings" -msgstr "Configurações da Extensão" +#: src/pages/Index/Settings/AdminCenter/ReportTemplatePanel.tsx:17 +msgid "Page Size" +msgstr "Tamanho da página" -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:53 -msgid "Background Worker Not Running" -msgstr "Trabalhador de fundo não está em execução" +#: src/pages/Index/Settings/AdminCenter/ReportTemplatePanel.tsx:20 +msgid "Landscape" +msgstr "Paisagem" -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:54 +#: src/pages/Index/Settings/AdminCenter/ReportTemplatePanel.tsx:26 +msgid "Attach to Model" +msgstr "Anexar ao Modelo" + +#: src/pages/Index/Settings/AdminCenter/StocktakePanel.tsx:25 +msgid "Stocktake Reports" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:30 msgid "The background task manager service is not running. Contact your system administrator." msgstr "O serviço de gerenciador de tarefas em segundo plano não está em execução. Entre em contato com o administrador do sistema." -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:60 -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:76 +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:35 +#~ msgid "Background Worker Not Running" +#~ msgstr "Background Worker Not Running" + +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:36 +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:45 msgid "Pending Tasks" msgstr "Tarefas Pendentes" -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:64 -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:84 +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:37 +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:53 msgid "Scheduled Tasks" msgstr "Tarefas Agendadas" -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:68 -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:92 +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:38 +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:61 msgid "Failed Tasks" msgstr "Tarefas com Falhas" @@ -3811,11 +4617,6 @@ msgstr "Tarefas com Falhas" #~ msgid "Reports" #~ msgstr "Reports" -#: src/pages/Index/Settings/AdminCenter/TemplateManagementPanel.tsx:89 -#: src/pages/build/BuildDetail.tsx:373 -#~ msgid "Report" -#~ msgstr "Report" - #: src/pages/Index/Settings/AdminCenter/TemplateManagementPanel.tsx:99 #~ msgid "Purchase order" #~ msgstr "Purchase order" @@ -3836,23 +4637,35 @@ msgstr "Tarefas com Falhas" #~ msgid "Stock location" #~ msgstr "Stock location" +#: src/pages/Index/Settings/AdminCenter/UnitManagmentPanel.tsx:21 +msgid "Alias" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/UnitManagmentPanel.tsx:22 +msgid "Dimensionless" +msgstr "Adimensional" + +#: src/pages/Index/Settings/AdminCenter/UnitManagmentPanel.tsx:66 +msgid "All units" +msgstr "Todas as unidades" + #: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:32 msgid "Select settings relevant for user lifecycle. More available in" msgstr "Selecione as configurações relevantes para o ciclo de vida dos usuários. Mais informações disponíveis em" #: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:37 -msgid "System settings" -msgstr "Configurações do sistema" +#~ msgid "System settings" +#~ msgstr "System settings" -#: src/pages/Index/Settings/SystemSettings.tsx:67 +#: src/pages/Index/Settings/SystemSettings.tsx:66 msgid "Login" msgstr "Entrar" -#: src/pages/Index/Settings/SystemSettings.tsx:93 +#: src/pages/Index/Settings/SystemSettings.tsx:92 msgid "Barcodes" msgstr "Códigos de barras" -#: src/pages/Index/Settings/SystemSettings.tsx:115 +#: src/pages/Index/Settings/SystemSettings.tsx:116 msgid "Pricing" msgstr "Preços" @@ -3864,64 +4677,46 @@ msgstr "Preços" #~ msgid "Exchange Rates" #~ msgstr "Exchange Rates" -#: src/pages/Index/Settings/SystemSettings.tsx:150 +#: src/pages/Index/Settings/SystemSettings.tsx:151 msgid "Labels" msgstr "Etiquetas" -#: src/pages/Index/Settings/SystemSettings.tsx:156 -#: src/pages/Index/Settings/UserSettings.tsx:132 +#: src/pages/Index/Settings/SystemSettings.tsx:157 +#: src/pages/Index/Settings/UserSettings.tsx:133 msgid "Reporting" msgstr "Relatórios" #: src/pages/Index/Settings/SystemSettings.tsx:231 -#: src/pages/part/PartDetail.tsx:682 -msgid "Stocktake" -msgstr "Balanço" - -#: src/pages/Index/Settings/SystemSettings.tsx:237 -#: src/pages/build/BuildDetail.tsx:554 -#: src/pages/build/BuildIndex.tsx:22 -#: src/pages/part/PartDetail.tsx:616 -#: src/pages/sales/SalesOrderDetail.tsx:333 +#: src/pages/build/BuildIndex.tsx:27 +#: src/pages/part/PartDetail.tsx:636 +#: src/pages/sales/SalesOrderDetail.tsx:355 msgid "Build Orders" msgstr "Ordens de Produções" -#: src/pages/Index/Settings/SystemSettings.tsx:318 -msgid "Switch to User Setting" -msgstr "Mudar para Configuração de Usuário" +#: src/pages/Index/Settings/SystemSettings.tsx:317 +#~ msgid "Switch to User Setting" +#~ msgstr "Switch to User Setting" -#: src/pages/Index/Settings/UserSettings.tsx:34 +#: src/pages/Index/Settings/UserSettings.tsx:35 msgid "Account" msgstr "Conta" -#: src/pages/Index/Settings/UserSettings.tsx:40 +#: src/pages/Index/Settings/UserSettings.tsx:41 msgid "Security" msgstr "Segurança" -#: src/pages/Index/Settings/UserSettings.tsx:78 +#: src/pages/Index/Settings/UserSettings.tsx:79 msgid "Display Options" msgstr "Opções de exibição" -#: src/pages/Index/Settings/UserSettings.tsx:150 -msgid "Account Settings" -msgstr "Configurações de Conta" - -#: src/pages/Index/Settings/UserSettings.tsx:158 -msgid "Switch to System Setting" -msgstr "Mudar para Configuração do Sistema" - -#: src/pages/Index/UserSettings.tsx:103 -#~ msgid "User Settings" -#~ msgstr "User Settings" +#: src/pages/Index/Settings/UserSettings.tsx:159 +#~ msgid "Switch to System Setting" +#~ msgstr "Switch to System Setting" #: src/pages/Logged-In.tsx:24 #~ msgid "Found an exsisting login - using it to log you in." #~ msgstr "Found an exsisting login - using it to log you in." -#: src/pages/NotFound.tsx:17 -#~ msgid "Not Found" -#~ msgstr "Not Found" - #: src/pages/NotFound.tsx:20 #~ msgid "Sorry, this page is not known or was moved." #~ msgstr "Sorry, this page is not known or was moved." @@ -3942,115 +4737,93 @@ msgstr "Marcar como não lido" #~ msgid "Build Status" #~ msgstr "Build Status" -#: src/pages/build/BuildDetail.tsx:102 -#: src/pages/part/PartDetail.tsx:150 +#: src/pages/build/BuildDetail.tsx:97 +#: src/pages/company/ManufacturerPartDetail.tsx:81 +#: src/pages/company/SupplierPartDetail.tsx:91 +#: src/pages/part/PartDetail.tsx:171 +#: src/pages/stock/StockDetail.tsx:122 #: src/tables/bom/BomTable.tsx:118 #: src/tables/bom/UsedInTable.tsx:39 -#: src/tables/build/BuildLineTable.tsx:173 -#: src/tables/build/BuildOrderTable.tsx:55 -#: src/tables/sales/SalesOrderLineItemTable.tsx:62 -#: src/tables/stock/StockItemTable.tsx:53 +#: src/tables/build/BuildAllocatedStockTable.tsx:104 +#: src/tables/build/BuildLineTable.tsx:324 +#: src/tables/build/BuildOrderTable.tsx:64 +#: src/tables/sales/SalesOrderLineItemTable.tsx:70 +#: src/tables/stock/StockItemTable.tsx:54 msgid "IPN" msgstr "IPN" -#: src/pages/build/BuildDetail.tsx:115 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:121 -#: src/pages/sales/ReturnOrderDetail.tsx:95 -#: src/pages/sales/SalesOrderDetail.tsx:101 -#: src/tables/ColumnRenderers.tsx:121 -#: src/tables/build/BuildAllocatedStockTable.tsx:90 -#: src/tables/build/BuildLineTable.tsx:184 +#: src/pages/build/BuildDetail.tsx:110 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:115 +#: src/pages/sales/ReturnOrderDetail.tsx:86 +#: src/pages/sales/SalesOrderDetail.tsx:95 +#: src/tables/ColumnRenderers.tsx:132 +#: src/tables/build/BuildAllocatedStockTable.tsx:111 +#: src/tables/build/BuildLineTable.tsx:335 msgid "Reference" msgstr "Referência" -#: src/pages/build/BuildDetail.tsx:121 -#: src/pages/company/CompanyDetail.tsx:90 -#: src/pages/company/ManufacturerPartDetail.tsx:83 -#: src/pages/company/SupplierPartDetail.tsx:96 -#: src/pages/part/CategoryDetail.tsx:101 -#: src/pages/part/PartDetail.tsx:157 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:142 -#: src/pages/sales/ReturnOrderDetail.tsx:115 -#: src/pages/sales/SalesOrderDetail.tsx:121 -#: src/pages/stock/LocationDetail.tsx:109 -#: src/tables/ColumnRenderers.tsx:81 -#: src/tables/bom/UsedInTable.tsx:44 -#: src/tables/build/BuildAllocatedStockTable.tsx:70 -#: src/tables/build/BuildLineTable.tsx:178 -#: src/tables/machine/MachineTypeTable.tsx:69 -#: src/tables/machine/MachineTypeTable.tsx:112 -#: src/tables/machine/MachineTypeTable.tsx:219 -#: src/tables/machine/MachineTypeTable.tsx:323 -#: src/tables/part/RelatedPartTable.tsx:64 -#: src/tables/plugin/PluginListTable.tsx:129 -#: src/tables/plugin/PluginListTable.tsx:276 -#: src/tables/sales/SalesOrderAllocationTable.tsx:56 -#: src/tables/sales/SalesOrderLineItemTable.tsx:67 -#: src/tables/stock/LocationTypesTable.tsx:74 -msgid "Description" -msgstr "Descrição" - -#: src/pages/build/BuildDetail.tsx:129 +#: src/pages/build/BuildDetail.tsx:124 msgid "Parent Build" msgstr "Produção Pai" -#: src/pages/build/BuildDetail.tsx:140 +#: src/pages/build/BuildDetail.tsx:135 msgid "Build Quantity" msgstr "Quantidade de Produção" -#: src/pages/build/BuildDetail.tsx:148 -#: src/pages/build/BuildDetail.tsx:274 +#: src/pages/build/BuildDetail.tsx:143 +#: src/pages/build/BuildDetail.tsx:277 msgid "Completed Outputs" msgstr "Saídas Completas" -#: src/pages/build/BuildDetail.tsx:165 -#: src/tables/build/BuildOrderTable.tsx:151 +#: src/pages/build/BuildDetail.tsx:160 +#: src/tables/build/BuildOrderTable.tsx:142 msgid "Issued By" msgstr "Emitido por" -#: src/pages/build/BuildDetail.tsx:172 -#: src/pages/part/PartDetail.tsx:365 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:220 -#: src/pages/sales/ReturnOrderDetail.tsx:199 -#: src/pages/sales/SalesOrderDetail.tsx:208 -#: src/tables/build/BuildOrderTable.tsx:157 -#: src/tables/purchasing/PurchaseOrderTable.tsx:75 -#: src/tables/sales/ReturnOrderTable.tsx:66 -#: src/tables/sales/SalesOrderTable.tsx:73 +#: src/pages/build/BuildDetail.tsx:167 +#: src/pages/part/PartDetail.tsx:406 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:244 +#: src/pages/sales/ReturnOrderDetail.tsx:216 +#: src/pages/sales/SalesOrderDetail.tsx:226 +#: src/tables/build/BuildOrderTable.tsx:148 +#: src/tables/purchasing/PurchaseOrderTable.tsx:76 +#: src/tables/sales/ReturnOrderTable.tsx:74 +#: src/tables/sales/SalesOrderTable.tsx:74 msgid "Responsible" msgstr "Responsável" -#: src/pages/build/BuildDetail.tsx:179 -#: src/tables/settings/PendingTasksTable.tsx:32 +#: src/pages/build/BuildDetail.tsx:174 +#: src/tables/settings/PendingTasksTable.tsx:36 msgid "Created" msgstr "Criado" +#: src/pages/build/BuildDetail.tsx:181 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:229 +#: src/pages/sales/ReturnOrderDetail.tsx:201 +#: src/pages/sales/SalesOrderDetail.tsx:212 +#: src/tables/ColumnRenderers.tsx:226 +#: src/tables/part/PartPurchaseOrdersTable.tsx:100 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:135 +#: src/tables/sales/SalesOrderLineItemTable.tsx:107 +msgid "Target Date" +msgstr "Data Prevista" + #: src/pages/build/BuildDetail.tsx:185 #: src/pages/part/PartDetail.tsx:269 #: src/pages/stock/StockDetail.tsx:150 #~ msgid "View part barcode" #~ msgstr "View part barcode" -#: src/pages/build/BuildDetail.tsx:186 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:213 -#: src/pages/sales/ReturnOrderDetail.tsx:192 -#: src/pages/sales/SalesOrderDetail.tsx:201 -#: src/tables/ColumnRenderers.tsx:212 -#: src/tables/part/PartPurchaseOrdersTable.tsx:99 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:110 -#: src/tables/sales/SalesOrderLineItemTable.tsx:99 -msgid "Target Date" -msgstr "Data Prevista" +#: src/pages/build/BuildDetail.tsx:188 +#: src/tables/sales/SalesOrderLineItemTable.tsx:281 +msgid "Completed" +msgstr "Concluído" #: src/pages/build/BuildDetail.tsx:190 #: src/pages/part/PartDetail.tsx:274 #~ msgid "Link custom barcode to part" #~ msgstr "Link custom barcode to part" -#: src/pages/build/BuildDetail.tsx:193 -msgid "Completed" -msgstr "Concluído" - #: src/pages/build/BuildDetail.tsx:196 #: src/pages/part/PartDetail.tsx:280 #~ msgid "Unlink custom barcode from part" @@ -4060,15 +4833,11 @@ msgstr "Concluído" #~ msgid "Build Order updated" #~ msgstr "Build Order updated" -#: src/pages/build/BuildDetail.tsx:205 -msgid "Source Location" -msgstr "Local de Origem" - -#: src/pages/build/BuildDetail.tsx:206 +#: src/pages/build/BuildDetail.tsx:209 msgid "Any location" msgstr "Qualquer local" -#: src/pages/build/BuildDetail.tsx:213 +#: src/pages/build/BuildDetail.tsx:216 msgid "Destination Location" msgstr "Local de Destino" @@ -4084,206 +4853,182 @@ msgstr "Local de Destino" #~ msgid "Delete build order" #~ msgstr "Delete build order" -#: src/pages/build/BuildDetail.tsx:251 +#: src/pages/build/BuildDetail.tsx:254 msgid "Build Details" msgstr "Detalhes da Produção" -#: src/pages/build/BuildDetail.tsx:257 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:258 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:267 -#: src/pages/sales/ReturnOrderDetail.tsx:130 -#: src/pages/sales/ReturnOrderDetail.tsx:237 -#: src/pages/sales/ReturnOrderDetail.tsx:246 -#: src/pages/sales/SalesOrderDetail.tsx:272 -#: src/pages/sales/SalesOrderDetail.tsx:281 +#: src/pages/build/BuildDetail.tsx:260 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:282 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:291 +#: src/pages/sales/ReturnOrderDetail.tsx:122 +#: src/pages/sales/ReturnOrderDetail.tsx:254 +#: src/pages/sales/ReturnOrderDetail.tsx:263 +#: src/pages/sales/SalesOrderDetail.tsx:294 +#: src/pages/sales/SalesOrderDetail.tsx:303 msgid "Line Items" msgstr "Itens de linha" -#: src/pages/build/BuildDetail.tsx:267 +#: src/pages/build/BuildDetail.tsx:266 msgid "Incomplete Outputs" msgstr "Saídas Incompletas" -#: src/pages/build/BuildDetail.tsx:289 -#: src/pages/sales/SalesOrderDetail.tsx:319 +#: src/pages/build/BuildDetail.tsx:292 +#: src/pages/sales/SalesOrderDetail.tsx:341 msgid "Allocated Stock" -msgstr "" +msgstr "Estoque Alocado" -#: src/pages/build/BuildDetail.tsx:299 +#: src/pages/build/BuildDetail.tsx:302 msgid "Consumed Stock" msgstr "Estoque Consumido" -#: src/pages/build/BuildDetail.tsx:313 +#: src/pages/build/BuildDetail.tsx:316 msgid "Child Build Orders" msgstr "Pedido de Produção Filhos" #: src/pages/build/BuildDetail.tsx:326 -#: src/tables/build/BuildOutputTable.tsx:384 -#: src/tables/stock/StockItemTestResultTable.tsx:150 +#: src/tables/build/BuildOutputTable.tsx:532 +#: src/tables/stock/StockItemTestResultTable.tsx:156 msgid "Test Results" -msgstr "" +msgstr "Resultados do teste" #: src/pages/build/BuildDetail.tsx:337 -#: src/pages/part/PartDetail.tsx:699 +#: src/pages/part/PartDetail.tsx:740 msgid "Test Statistics" -msgstr "" +msgstr "Estatísticas do teste" -#: src/pages/build/BuildDetail.tsx:351 -#: src/pages/company/CompanyDetail.tsx:259 -#: src/pages/company/ManufacturerPartDetail.tsx:179 -#: src/pages/part/PartDetail.tsx:721 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:309 -#: src/pages/sales/ReturnOrderDetail.tsx:274 -#: src/pages/sales/SalesOrderDetail.tsx:343 -#: src/pages/stock/StockDetail.tsx:385 -msgid "Attachments" -msgstr "Anexos" - -#: src/pages/build/BuildDetail.tsx:359 -#: src/pages/company/CompanyDetail.tsx:270 -#: src/pages/company/ManufacturerPartDetail.tsx:190 -#: src/pages/company/SupplierPartDetail.tsx:257 -#: src/pages/part/PartDetail.tsx:729 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:320 -#: src/pages/sales/ReturnOrderDetail.tsx:285 -#: src/pages/sales/SalesOrderDetail.tsx:354 -#: src/pages/stock/StockDetail.tsx:396 -#: src/tables/build/BuildOrderTestTable.tsx:142 -#: src/tables/stock/StockTrackingTable.tsx:189 -msgid "Notes" -msgstr "Anotações" +#: src/pages/build/BuildDetail.tsx:365 +msgid "Edit Build Order" +msgstr "Editar Pedido de Produção" #: src/pages/build/BuildDetail.tsx:368 #~ msgid "Reporting Actions" #~ msgstr "Reporting Actions" +#: src/pages/build/BuildDetail.tsx:372 +#: src/tables/build/BuildOrderTable.tsx:173 +#: src/tables/build/BuildOrderTable.tsx:188 +msgid "Add Build Order" +msgstr "Adicionar Pedido de Produção" + #: src/pages/build/BuildDetail.tsx:374 #~ msgid "Print build report" #~ msgstr "Print build report" -#: src/pages/build/BuildDetail.tsx:377 -msgid "Edit Build Order" -msgstr "Editar Pedido de Produção" - -#: src/pages/build/BuildDetail.tsx:384 -#: src/tables/build/BuildOrderTable.tsx:172 -#: src/tables/build/BuildOrderTable.tsx:187 -msgid "Add Build Order" -msgstr "Adicionar Pedido de Produção" - -#: src/pages/build/BuildDetail.tsx:398 +#: src/pages/build/BuildDetail.tsx:386 msgid "Cancel Build Order" msgstr "Cancelar Pedido de Produção" -#: src/pages/build/BuildDetail.tsx:400 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:348 -#: src/pages/sales/SalesOrderDetail.tsx:380 -msgid "Order cancelled" -msgstr "" - -#: src/pages/build/BuildDetail.tsx:401 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:347 -#: src/pages/sales/ReturnOrderDetail.tsx:346 -#: src/pages/sales/SalesOrderDetail.tsx:379 -msgid "Cancel this order" -msgstr "" - -#: src/pages/build/BuildDetail.tsx:410 -msgid "Hold Build Order" -msgstr "" - -#: src/pages/build/BuildDetail.tsx:412 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:355 +#: src/pages/build/BuildDetail.tsx:388 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:357 #: src/pages/sales/ReturnOrderDetail.tsx:354 #: src/pages/sales/SalesOrderDetail.tsx:387 -msgid "Place this order on hold" -msgstr "" +msgid "Order cancelled" +msgstr "Pedido cancelado" -#: src/pages/build/BuildDetail.tsx:413 +#: src/pages/build/BuildDetail.tsx:389 #: src/pages/purchasing/PurchaseOrderDetail.tsx:356 -#: src/pages/sales/ReturnOrderDetail.tsx:355 -#: src/pages/sales/SalesOrderDetail.tsx:388 -msgid "Order placed on hold" -msgstr "" +#: src/pages/sales/ReturnOrderDetail.tsx:353 +#: src/pages/sales/SalesOrderDetail.tsx:386 +msgid "Cancel this order" +msgstr "Cancelar este pedido" -#: src/pages/build/BuildDetail.tsx:418 -msgid "Issue Build Order" -msgstr "" +#: src/pages/build/BuildDetail.tsx:398 +msgid "Hold Build Order" +msgstr "Manter Pedido de Produção" -#: src/pages/build/BuildDetail.tsx:420 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:339 -#: src/pages/sales/ReturnOrderDetail.tsx:338 -#: src/pages/sales/SalesOrderDetail.tsx:371 -msgid "Issue this order" -msgstr "" +#: src/pages/build/BuildDetail.tsx:400 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:364 +#: src/pages/sales/ReturnOrderDetail.tsx:361 +#: src/pages/sales/SalesOrderDetail.tsx:394 +msgid "Place this order on hold" +msgstr "Colocar este pedido em espera" -#: src/pages/build/BuildDetail.tsx:421 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:340 -#: src/pages/sales/ReturnOrderDetail.tsx:339 -#: src/pages/sales/SalesOrderDetail.tsx:372 -msgid "Order issued" -msgstr "" - -#: src/pages/build/BuildDetail.tsx:426 -msgid "Complete Build Order" -msgstr "" - -#: src/pages/build/BuildDetail.tsx:428 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:368 +#: src/pages/build/BuildDetail.tsx:401 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:365 #: src/pages/sales/ReturnOrderDetail.tsx:362 #: src/pages/sales/SalesOrderDetail.tsx:395 +msgid "Order placed on hold" +msgstr "Pedido colocado em espera" + +#: src/pages/build/BuildDetail.tsx:406 +msgid "Issue Build Order" +msgstr "Pedido de produção vencido" + +#: src/pages/build/BuildDetail.tsx:408 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:348 +#: src/pages/sales/ReturnOrderDetail.tsx:345 +#: src/pages/sales/SalesOrderDetail.tsx:378 +msgid "Issue this order" +msgstr "Cancelar este pedido" + +#: src/pages/build/BuildDetail.tsx:409 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:349 +#: src/pages/sales/ReturnOrderDetail.tsx:346 +#: src/pages/sales/SalesOrderDetail.tsx:379 +msgid "Order issued" +msgstr "Problemas com o pedido" + +#: src/pages/build/BuildDetail.tsx:414 +msgid "Complete Build Order" +msgstr "Completar Pedido de Produção" + +#: src/pages/build/BuildDetail.tsx:416 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:377 +#: src/pages/sales/ReturnOrderDetail.tsx:369 +#: src/pages/sales/SalesOrderDetail.tsx:402 msgid "Mark this order as complete" -msgstr "" +msgstr "Marcar este pedido como completo" -#: src/pages/build/BuildDetail.tsx:429 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:362 -#: src/pages/sales/ReturnOrderDetail.tsx:363 -#: src/pages/sales/SalesOrderDetail.tsx:396 +#: src/pages/build/BuildDetail.tsx:417 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:371 +#: src/pages/sales/ReturnOrderDetail.tsx:370 +#: src/pages/sales/SalesOrderDetail.tsx:403 msgid "Order completed" -msgstr "" +msgstr "Pedido concluído" -#: src/pages/build/BuildDetail.tsx:460 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:391 -#: src/pages/sales/ReturnOrderDetail.tsx:392 -#: src/pages/sales/SalesOrderDetail.tsx:425 -msgid "Issue Order" -msgstr "" - -#: src/pages/build/BuildDetail.tsx:467 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:398 +#: src/pages/build/BuildDetail.tsx:448 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:400 #: src/pages/sales/ReturnOrderDetail.tsx:399 -#: src/pages/sales/SalesOrderDetail.tsx:439 -msgid "Complete Order" -msgstr "" +#: src/pages/sales/SalesOrderDetail.tsx:432 +msgid "Issue Order" +msgstr "Emitir Pedido" -#: src/pages/build/BuildDetail.tsx:496 +#: src/pages/build/BuildDetail.tsx:455 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:407 +#: src/pages/sales/ReturnOrderDetail.tsx:406 +#: src/pages/sales/SalesOrderDetail.tsx:446 +msgid "Complete Order" +msgstr "Completar Pedido" + +#: src/pages/build/BuildDetail.tsx:473 msgid "Build Order Actions" msgstr "Ações do Pedido de Produção" -#: src/pages/build/BuildDetail.tsx:502 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:432 -#: src/pages/sales/ReturnOrderDetail.tsx:433 -#: src/pages/sales/SalesOrderDetail.tsx:474 +#: src/pages/build/BuildDetail.tsx:478 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:429 +#: src/pages/sales/ReturnOrderDetail.tsx:428 +#: src/pages/sales/SalesOrderDetail.tsx:469 msgid "Edit order" -msgstr "" +msgstr "Editar pedido" -#: src/pages/build/BuildDetail.tsx:506 +#: src/pages/build/BuildDetail.tsx:482 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:437 +#: src/pages/sales/ReturnOrderDetail.tsx:434 +#: src/pages/sales/SalesOrderDetail.tsx:474 +msgid "Duplicate order" +msgstr "Duplicar pedido" + +#: src/pages/build/BuildDetail.tsx:486 #: src/pages/purchasing/PurchaseOrderDetail.tsx:440 #: src/pages/sales/ReturnOrderDetail.tsx:439 -#: src/pages/sales/SalesOrderDetail.tsx:479 -msgid "Duplicate order" -msgstr "" +#: src/pages/sales/SalesOrderDetail.tsx:477 +msgid "Hold order" +msgstr "Manter ordem" -#: src/pages/build/BuildDetail.tsx:510 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:443 +#: src/pages/build/BuildDetail.tsx:491 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:445 #: src/pages/sales/ReturnOrderDetail.tsx:444 #: src/pages/sales/SalesOrderDetail.tsx:482 -msgid "Hold order" -msgstr "" - -#: src/pages/build/BuildDetail.tsx:515 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:448 -#: src/pages/sales/ReturnOrderDetail.tsx:449 -#: src/pages/sales/SalesOrderDetail.tsx:487 msgid "Cancel order" msgstr "Cancelar pedido" @@ -4295,57 +5040,61 @@ msgstr "Cancelar pedido" #~ msgid "New Build Order" #~ msgstr "New Build Order" -#: src/pages/company/CompanyDetail.tsx:104 +#: src/pages/company/CompanyDetail.tsx:95 +msgid "Website" +msgstr "Página Web" + +#: src/pages/company/CompanyDetail.tsx:103 msgid "Phone Number" msgstr "Número de telefone" -#: src/pages/company/CompanyDetail.tsx:111 +#: src/pages/company/CompanyDetail.tsx:110 msgid "Email Address" msgstr "Endereço de e-mail" -#: src/pages/company/CompanyDetail.tsx:121 +#: src/pages/company/CompanyDetail.tsx:120 msgid "Default Currency" msgstr "Moeda Padrão" -#: src/pages/company/CompanyDetail.tsx:126 +#: src/pages/company/CompanyDetail.tsx:125 #: src/pages/company/SupplierDetail.tsx:8 -#: src/pages/company/SupplierPartDetail.tsx:120 -#: src/pages/company/SupplierPartDetail.tsx:206 -#: src/pages/company/SupplierPartDetail.tsx:351 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:136 -#: src/tables/company/CompanyTable.tsx:100 +#: src/pages/company/SupplierPartDetail.tsx:125 +#: src/pages/company/SupplierPartDetail.tsx:218 +#: src/pages/company/SupplierPartDetail.tsx:340 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:130 +#: src/tables/company/CompanyTable.tsx:101 #: src/tables/part/PartPurchaseOrdersTable.tsx:42 -#: src/tables/purchasing/PurchaseOrderTable.tsx:88 +#: src/tables/purchasing/PurchaseOrderTable.tsx:89 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:36 msgid "Supplier" msgstr "Fornecedor" -#: src/pages/company/CompanyDetail.tsx:132 +#: src/pages/company/CompanyDetail.tsx:131 #: src/pages/company/ManufacturerDetail.tsx:8 -#: src/pages/company/ManufacturerPartDetail.tsx:101 -#: src/pages/company/ManufacturerPartDetail.tsx:267 -#: src/pages/company/SupplierPartDetail.tsx:135 -#: src/tables/company/CompanyTable.tsx:105 +#: src/pages/company/ManufacturerPartDetail.tsx:100 +#: src/pages/company/ManufacturerPartDetail.tsx:262 +#: src/pages/company/SupplierPartDetail.tsx:147 +#: src/tables/company/CompanyTable.tsx:106 msgid "Manufacturer" msgstr "Fabricante" -#: src/pages/company/CompanyDetail.tsx:138 +#: src/pages/company/CompanyDetail.tsx:137 #: src/pages/company/CustomerDetail.tsx:8 -#: src/pages/part/pricing/SaleHistoryPanel.tsx:29 -#: src/pages/sales/ReturnOrderDetail.tsx:109 -#: src/pages/sales/SalesOrderDetail.tsx:115 -#: src/pages/stock/StockDetail.tsx:230 -#: src/tables/company/CompanyTable.tsx:110 -#: src/tables/sales/ReturnOrderTable.tsx:78 -#: src/tables/sales/SalesOrderTable.tsx:108 -#: src/tables/stock/StockTrackingTable.tsx:140 +#: src/pages/part/pricing/SaleHistoryPanel.tsx:31 +#: src/pages/sales/ReturnOrderDetail.tsx:101 +#: src/pages/sales/SalesOrderDetail.tsx:110 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:100 +#: src/pages/stock/StockDetail.tsx:271 +#: src/tables/company/CompanyTable.tsx:111 +#: src/tables/sales/ReturnOrderTable.tsx:97 +#: src/tables/sales/SalesOrderTable.tsx:121 +#: src/tables/stock/StockTrackingTable.tsx:144 msgid "Customer" msgstr "Cliente" #: src/pages/company/CompanyDetail.tsx:172 -#: src/tables/stock/StockTrackingTable.tsx:183 -msgid "Details" -msgstr "Detalhes" +msgid "Company Details" +msgstr "" #: src/pages/company/CompanyDetail.tsx:175 #~ msgid "Edit company" @@ -4363,140 +5112,150 @@ msgstr "Peças Fornecidas" #~ msgid "Delete company" #~ msgstr "Delete company" -#: src/pages/company/CompanyDetail.tsx:232 +#: src/pages/company/CompanyDetail.tsx:234 msgid "Assigned Stock" msgstr "Estoque Atribuído" -#: src/pages/company/CompanyDetail.tsx:290 -#: src/tables/company/CompanyTable.tsx:86 +#: src/pages/company/CompanyDetail.tsx:273 +#: src/tables/company/CompanyTable.tsx:87 msgid "Edit Company" msgstr "Editar Empresa" -#: src/pages/company/CompanyDetail.tsx:298 +#: src/pages/company/CompanyDetail.tsx:281 msgid "Delete Company" -msgstr "" +msgstr "Excluir Empresa" -#: src/pages/company/CompanyDetail.tsx:306 +#: src/pages/company/CompanyDetail.tsx:289 msgid "Company Actions" msgstr "Ações da Empresa" -#: src/pages/company/ManufacturerPartDetail.tsx:76 -#: src/pages/company/SupplierPartDetail.tsx:89 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:128 +#: src/pages/company/ManufacturerPartDetail.tsx:74 +#: src/pages/company/SupplierPartDetail.tsx:84 msgid "Internal Part" msgstr "Peça Interna" -#: src/pages/company/ManufacturerPartDetail.tsx:91 -#: src/pages/company/SupplierPartDetail.tsx:103 -msgid "External Link" -msgstr "Link Externo" - -#: src/pages/company/ManufacturerPartDetail.tsx:109 -#: src/pages/company/SupplierPartDetail.tsx:144 -#: src/tables/purchasing/ManufacturerPartTable.tsx:56 +#: src/pages/company/ManufacturerPartDetail.tsx:108 +#: src/pages/company/SupplierPartDetail.tsx:156 +#: src/tables/purchasing/ManufacturerPartTable.tsx:58 msgid "Manufacturer Part Number" msgstr "Número de Peça do Fabricante" -#: src/pages/company/ManufacturerPartDetail.tsx:138 +#: src/pages/company/ManufacturerPartDetail.tsx:125 +#: src/pages/company/SupplierPartDetail.tsx:108 +msgid "External Link" +msgstr "Link Externo" + +#: src/pages/company/ManufacturerPartDetail.tsx:146 +#: src/pages/company/SupplierPartDetail.tsx:215 +#: src/pages/part/PartDetail.tsx:576 +msgid "Part Details" +msgstr "Detalhes da Peça" + +#: src/pages/company/ManufacturerPartDetail.tsx:149 msgid "Manufacturer Details" msgstr "Detalhes do Fabricante" -#: src/pages/company/ManufacturerPartDetail.tsx:147 +#: src/pages/company/ManufacturerPartDetail.tsx:158 msgid "Manufacturer Part Details" msgstr "Detalhes de peça do Fabricante" -#: src/pages/company/ManufacturerPartDetail.tsx:153 -#: src/pages/part/PartDetail.tsx:532 +#: src/pages/company/ManufacturerPartDetail.tsx:164 +#: src/pages/part/PartDetail.tsx:582 msgid "Parameters" msgstr "Parâmetros" -#: src/pages/company/ManufacturerPartDetail.tsx:165 -#: src/pages/part/PartDetail.tsx:649 +#: src/pages/company/ManufacturerPartDetail.tsx:176 +#: src/pages/part/PartDetail.tsx:669 #: src/pages/purchasing/PurchasingIndex.tsx:31 msgid "Suppliers" msgstr "Fornecedores" -#: src/pages/company/ManufacturerPartDetail.tsx:208 -#: src/tables/purchasing/ManufacturerPartTable.tsx:84 +#: src/pages/company/ManufacturerPartDetail.tsx:204 +#: src/tables/purchasing/ManufacturerPartTable.tsx:86 msgid "Edit Manufacturer Part" msgstr "Editar Peça do Fabricante" -#: src/pages/company/ManufacturerPartDetail.tsx:215 -#: src/tables/purchasing/ManufacturerPartTable.tsx:72 -#: src/tables/purchasing/ManufacturerPartTable.tsx:103 +#: src/pages/company/ManufacturerPartDetail.tsx:211 +#: src/tables/purchasing/ManufacturerPartTable.tsx:74 +#: src/tables/purchasing/ManufacturerPartTable.tsx:106 msgid "Add Manufacturer Part" msgstr "Adicionar Peça do Fabricante" -#: src/pages/company/ManufacturerPartDetail.tsx:227 -#: src/tables/purchasing/ManufacturerPartTable.tsx:92 +#: src/pages/company/ManufacturerPartDetail.tsx:223 +#: src/tables/purchasing/ManufacturerPartTable.tsx:94 msgid "Delete Manufacturer Part" msgstr "Excluir Peça do Fabricante" -#: src/pages/company/ManufacturerPartDetail.tsx:240 +#: src/pages/company/ManufacturerPartDetail.tsx:236 msgid "Manufacturer Part Actions" msgstr "Ações de peça do Fabricante" -#: src/pages/company/ManufacturerPartDetail.tsx:281 +#: src/pages/company/ManufacturerPartDetail.tsx:276 msgid "ManufacturerPart" msgstr "Peça do Fabricante" -#: src/pages/company/SupplierPartDetail.tsx:163 -#: src/tables/part/PartPurchaseOrdersTable.tsx:71 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:156 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:197 -#: src/tables/purchasing/SupplierPartTable.tsx:131 +#: src/pages/company/SupplierPartDetail.tsx:99 +msgid "Part Description" +msgstr "Descrição da Peça" + +#: src/pages/company/SupplierPartDetail.tsx:175 +#: src/tables/part/PartPurchaseOrdersTable.tsx:72 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:162 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:203 +#: src/tables/purchasing/SupplierPartTable.tsx:133 msgid "Pack Quantity" msgstr "Quantidade de embalagens" -#: src/pages/company/SupplierPartDetail.tsx:174 +#: src/pages/company/SupplierPartDetail.tsx:186 msgid "Supplier Availability" msgstr "Disponibilidade do fornecedor" -#: src/pages/company/SupplierPartDetail.tsx:181 +#: src/pages/company/SupplierPartDetail.tsx:193 msgid "Availability Updated" msgstr "Disponibilidade Atualizada" -#: src/pages/company/SupplierPartDetail.tsx:208 +#: src/pages/company/SupplierPartDetail.tsx:220 msgid "Availability" msgstr "Disponibilidade" -#: src/pages/company/SupplierPartDetail.tsx:217 +#: src/pages/company/SupplierPartDetail.tsx:229 msgid "Supplier Part Details" msgstr "Detalhes de Peça do Fornecedor" -#: src/pages/company/SupplierPartDetail.tsx:223 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:296 +#: src/pages/company/SupplierPartDetail.tsx:235 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:320 msgid "Received Stock" msgstr "Estoque Recebido" -#: src/pages/company/SupplierPartDetail.tsx:247 -#: src/pages/part/PartPricingPanel.tsx:111 -#: src/pages/part/pricing/PricingOverviewPanel.tsx:121 +#: src/pages/company/SupplierPartDetail.tsx:259 +#: src/pages/part/PartPricingPanel.tsx:116 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:195 msgid "Supplier Pricing" msgstr "Preço do fornecedor" -#: src/pages/company/SupplierPartDetail.tsx:294 +#: src/pages/company/SupplierPartDetail.tsx:284 msgid "Supplier Part Actions" msgstr "Ações de Peças do Fornecedor" -#: src/pages/company/SupplierPartDetail.tsx:319 -#: src/tables/purchasing/SupplierPartTable.tsx:210 +#: src/pages/company/SupplierPartDetail.tsx:308 +#: src/tables/purchasing/SupplierPartTable.tsx:213 msgid "Edit Supplier Part" msgstr "Editar Peça do Fornecedor" -#: src/pages/company/SupplierPartDetail.tsx:327 -#: src/tables/purchasing/SupplierPartTable.tsx:218 +#: src/pages/company/SupplierPartDetail.tsx:316 +#: src/tables/purchasing/SupplierPartTable.tsx:221 msgid "Delete Supplier Part" msgstr "Excluir Peça do Fornecedor" -#: src/pages/company/SupplierPartDetail.tsx:335 -#: src/tables/purchasing/SupplierPartTable.tsx:163 +#: src/pages/company/SupplierPartDetail.tsx:324 +#: src/tables/purchasing/SupplierPartTable.tsx:165 msgid "Add Supplier Part" msgstr "Adicionar Peça do Fornecedor" #: src/pages/part/CategoryDetail.tsx:93 -#: src/pages/stock/LocationDetail.tsx:101 -#: src/tables/settings/ErrorTable.tsx:36 +#: src/pages/stock/LocationDetail.tsx:95 +#: src/tables/settings/ErrorTable.tsx:63 +#: src/tables/settings/ErrorTable.tsx:108 msgid "Path" msgstr "Caminho" @@ -4504,471 +5263,572 @@ msgstr "Caminho" msgid "Parent Category" msgstr "Categoria Pai" -#: src/pages/part/CategoryDetail.tsx:126 +#: src/pages/part/CategoryDetail.tsx:132 msgid "Subcategories" msgstr "Sub-categorias" -#: src/pages/part/CategoryDetail.tsx:133 -#: src/pages/stock/LocationDetail.tsx:141 -#: src/tables/part/PartCategoryTable.tsx:73 +#: src/pages/part/CategoryDetail.tsx:139 +#: src/pages/stock/LocationDetail.tsx:135 +#: src/tables/part/PartCategoryTable.tsx:85 #: src/tables/stock/StockLocationTable.tsx:49 msgid "Structural" msgstr "Estrutural" -#: src/pages/part/CategoryDetail.tsx:139 +#: src/pages/part/CategoryDetail.tsx:145 msgid "Parent default location" msgstr "Localização padrão do pai" -#: src/pages/part/CategoryDetail.tsx:146 +#: src/pages/part/CategoryDetail.tsx:152 msgid "Default location" msgstr "Local Padrão" -#: src/pages/part/CategoryDetail.tsx:157 +#: src/pages/part/CategoryDetail.tsx:163 msgid "Top level part category" msgstr "Categoria de peça de nível superior" -#: src/pages/part/CategoryDetail.tsx:167 -#: src/pages/part/CategoryDetail.tsx:221 -#: src/tables/part/PartCategoryTable.tsx:102 +#: src/pages/part/CategoryDetail.tsx:173 +#: src/pages/part/CategoryDetail.tsx:226 +#: src/tables/part/PartCategoryTable.tsx:118 msgid "Edit Part Category" msgstr "Editar Categoria da Peça" -#: src/pages/part/CategoryDetail.tsx:180 -#: src/pages/stock/LocationDetail.tsx:233 +#: src/pages/part/CategoryDetail.tsx:186 +#: src/pages/stock/LocationDetail.tsx:227 msgid "Delete items" msgstr "Apagar items" -#: src/pages/part/CategoryDetail.tsx:188 -#: src/pages/part/CategoryDetail.tsx:226 +#: src/pages/part/CategoryDetail.tsx:194 +#: src/pages/part/CategoryDetail.tsx:231 msgid "Delete Part Category" msgstr "Excluir Categoria de Peça" -#: src/pages/part/CategoryDetail.tsx:191 +#: src/pages/part/CategoryDetail.tsx:197 msgid "Parts Action" msgstr "Ações da Peça" -#: src/pages/part/CategoryDetail.tsx:192 +#: src/pages/part/CategoryDetail.tsx:198 msgid "Action for parts in this category" msgstr "Ação para peças nesta categoria" -#: src/pages/part/CategoryDetail.tsx:197 +#: src/pages/part/CategoryDetail.tsx:203 msgid "Child Categories Action" msgstr "Ação de Categorias Filhas" -#: src/pages/part/CategoryDetail.tsx:198 +#: src/pages/part/CategoryDetail.tsx:204 msgid "Action for child categories in this category" msgstr "Ação para categorias filhas desta categoria" -#: src/pages/part/CategoryDetail.tsx:216 +#: src/pages/part/CategoryDetail.tsx:222 msgid "Category Actions" msgstr "Ações de Categoria" -#: src/pages/part/CategoryDetail.tsx:238 +#: src/pages/part/CategoryDetail.tsx:243 msgid "Category Details" msgstr "Detalhes da categoria" -#: src/pages/part/PartDetail.tsx:163 +#: src/pages/part/PartAllocationPanel.tsx:23 +#: src/pages/stock/StockDetail.tsx:443 +#: src/tables/part/PartTable.tsx:99 +msgid "Build Order Allocations" +msgstr "Alocações de Pedido de Produção" + +#: src/pages/part/PartAllocationPanel.tsx:40 +#: src/pages/stock/StockDetail.tsx:458 +#: src/tables/part/PartTable.tsx:108 +msgid "Sales Order Allocations" +msgstr "Alocações do Pedido de Vendas" + +#: src/pages/part/PartDetail.tsx:184 msgid "Variant of" msgstr "Variante de" -#: src/pages/part/PartDetail.tsx:170 +#: src/pages/part/PartDetail.tsx:191 msgid "Revision of" -msgstr "" +msgstr "Revisão" -#: src/pages/part/PartDetail.tsx:177 -#: src/tables/stock/StockItemTable.tsx:58 +#: src/pages/part/PartDetail.tsx:198 +#: src/tables/stock/StockItemTable.tsx:59 msgid "Revision" msgstr "Revisão" -#: src/pages/part/PartDetail.tsx:184 +#: src/pages/part/PartDetail.tsx:205 #: src/tables/notifications/NotificationsTable.tsx:31 #: src/tables/part/PartCategoryTemplateTable.tsx:67 msgid "Category" msgstr "Categoria" -#: src/pages/part/PartDetail.tsx:190 +#: src/pages/part/PartDetail.tsx:211 msgid "Default Location" msgstr "Local Padrão" -#: src/pages/part/PartDetail.tsx:197 +#: src/pages/part/PartDetail.tsx:218 msgid "Category Default Location" msgstr "Localização padrão da categoria" -#: src/pages/part/PartDetail.tsx:204 +#: src/pages/part/PartDetail.tsx:225 #: src/tables/purchasing/ManufacturerPartParameterTable.tsx:44 msgid "Units" msgstr "Unidades" -#: src/pages/part/PartDetail.tsx:211 -#: src/tables/settings/PendingTasksTable.tsx:42 +#: src/pages/part/PartDetail.tsx:232 +#: src/tables/settings/PendingTasksTable.tsx:46 msgid "Keywords" msgstr "Palavras-chave" -#: src/pages/part/PartDetail.tsx:218 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:186 -#: src/pages/sales/ReturnOrderDetail.tsx:165 -#: src/pages/sales/SalesOrderDetail.tsx:174 -msgid "Link" -msgstr "Link" - -#: src/pages/part/PartDetail.tsx:236 +#: src/pages/part/PartDetail.tsx:257 #: src/tables/bom/BomTable.tsx:320 -#: src/tables/build/BuildLineTable.tsx:155 +#: src/tables/build/BuildLineTable.tsx:286 #: src/tables/part/PartTable.tsx:288 -#: src/tables/sales/SalesOrderLineItemTable.tsx:103 +#: src/tables/sales/SalesOrderLineItemTable.tsx:111 msgid "Available Stock" msgstr "Estoque Disponível" -#: src/pages/part/PartDetail.tsx:243 +#: src/pages/part/PartDetail.tsx:264 msgid "Variant Stock" -msgstr "" +msgstr "Estoque de variante" -#: src/pages/part/PartDetail.tsx:251 +#: src/pages/part/PartDetail.tsx:272 msgid "Minimum Stock" msgstr "Estoque Mínimo" -#: src/pages/part/PartDetail.tsx:257 +#: src/pages/part/PartDetail.tsx:278 #: src/tables/bom/BomTable.tsx:237 -#: src/tables/build/BuildLineTable.tsx:117 -#: src/tables/sales/SalesOrderLineItemTable.tsx:141 +#: src/tables/build/BuildLineTable.tsx:248 +#: src/tables/sales/SalesOrderLineItemTable.tsx:149 msgid "On order" msgstr "No pedido" -#: src/pages/part/PartDetail.tsx:266 +#: src/pages/part/PartDetail.tsx:285 +msgid "Required for Orders" +msgstr "Necessário para Pedidos" + +#: src/pages/part/PartDetail.tsx:294 msgid "Allocated to Build Orders" msgstr "Alocado para Pedidos de Construção" -#: src/pages/part/PartDetail.tsx:274 +#: src/pages/part/PartDetail.tsx:305 msgid "Allocated to Sales Orders" msgstr "Alocado para Pedidos de Venda" -#: src/pages/part/PartDetail.tsx:281 -#: src/tables/bom/BomTable.tsx:261 -#: src/tables/bom/BomTable.tsx:293 -msgid "Can Build" -msgstr "Pode Produzir" - -#: src/pages/part/PartDetail.tsx:288 -#: src/tables/bom/BomTable.tsx:245 -#: src/tables/part/PartTable.tsx:92 -msgid "Building" -msgstr "Produzindo" - -#: src/pages/part/PartDetail.tsx:302 -#: src/pages/part/PartDetail.tsx:873 -#: src/tables/part/ParametricPartTable.tsx:228 -#: src/tables/part/PartTable.tsx:184 -msgid "Locked" -msgstr "" - -#: src/pages/part/PartDetail.tsx:308 -msgid "Template Part" -msgstr "Modelo de peça" - #: src/pages/part/PartDetail.tsx:310 #~ msgid "Edit part" #~ msgstr "Edit part" -#: src/pages/part/PartDetail.tsx:313 -#: src/tables/bom/BomTable.tsx:315 -msgid "Assembled Part" -msgstr "Peça Montada" +#: src/pages/part/PartDetail.tsx:315 +#: src/tables/bom/BomTable.tsx:261 +#: src/tables/bom/BomTable.tsx:293 +msgid "Can Build" +msgstr "Pode Produzir" -#: src/pages/part/PartDetail.tsx:318 -msgid "Component Part" -msgstr "" +#: src/pages/part/PartDetail.tsx:322 +#: src/pages/part/PartDetail.tsx:905 +#: src/pages/stock/StockDetail.tsx:766 +#: src/tables/build/BuildOrderTestTable.tsx:220 +#: src/tables/stock/StockItemTable.tsx:334 +msgid "In Production" +msgstr "Em Produção" #: src/pages/part/PartDetail.tsx:322 #~ msgid "Duplicate part" #~ msgstr "Duplicate part" -#: src/pages/part/PartDetail.tsx:323 -#: src/tables/bom/BomTable.tsx:305 -msgid "Testable Part" -msgstr "" - #: src/pages/part/PartDetail.tsx:327 #~ msgid "Delete part" #~ msgstr "Delete part" -#: src/pages/part/PartDetail.tsx:329 +#: src/pages/part/PartDetail.tsx:336 +#: src/tables/part/ParametricPartTable.tsx:228 +#: src/tables/part/PartTable.tsx:184 +msgid "Locked" +msgstr "Bloqueado" + +#: src/pages/part/PartDetail.tsx:342 +msgid "Template Part" +msgstr "Modelo de peça" + +#: src/pages/part/PartDetail.tsx:347 +#: src/tables/bom/BomTable.tsx:315 +msgid "Assembled Part" +msgstr "Peça Montada" + +#: src/pages/part/PartDetail.tsx:352 +msgid "Component Part" +msgstr "Parte do componente" + +#: src/pages/part/PartDetail.tsx:357 +#: src/tables/bom/BomTable.tsx:305 +msgid "Testable Part" +msgstr "Parte Testável" + +#: src/pages/part/PartDetail.tsx:363 #: src/tables/bom/BomTable.tsx:310 msgid "Trackable Part" msgstr "Peça Rastreável" -#: src/pages/part/PartDetail.tsx:334 +#: src/pages/part/PartDetail.tsx:368 msgid "Purchaseable Part" -msgstr "" +msgstr "Parte comprável" -#: src/pages/part/PartDetail.tsx:339 +#: src/pages/part/PartDetail.tsx:374 msgid "Saleable Part" -msgstr "" +msgstr "Parte vendível" -#: src/pages/part/PartDetail.tsx:344 +#: src/pages/part/PartDetail.tsx:379 msgid "Virtual Part" -msgstr "" +msgstr "Parte Virtual" -#: src/pages/part/PartDetail.tsx:352 -#: src/tables/ColumnRenderers.tsx:220 +#: src/pages/part/PartDetail.tsx:393 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:215 +#: src/pages/sales/ReturnOrderDetail.tsx:185 +#: src/pages/sales/SalesOrderDetail.tsx:197 +#: src/tables/ColumnRenderers.tsx:234 msgid "Creation Date" msgstr "Criado em" -#: src/pages/part/PartDetail.tsx:357 +#: src/pages/part/PartDetail.tsx:398 msgid "Created By" -msgstr "" +msgstr "Criado por" -#: src/pages/part/PartDetail.tsx:372 +#: src/pages/part/PartDetail.tsx:413 msgid "Default Supplier" msgstr "Fornecedor Padrão" -#: src/pages/part/PartDetail.tsx:383 -#: src/pages/part/pricing/BomPricingPanel.tsx:79 +#: src/pages/part/PartDetail.tsx:424 +#: src/pages/part/pricing/BomPricingPanel.tsx:113 #: src/pages/part/pricing/VariantPricingPanel.tsx:95 #: src/tables/part/PartTable.tsx:161 msgid "Price Range" msgstr "Faixa de Preço" -#: src/pages/part/PartDetail.tsx:423 -#: src/pages/stock/StockDetail.tsx:135 +#: src/pages/part/PartDetail.tsx:462 +msgid "Latest Serial Number" +msgstr "" + +#: src/pages/part/PartDetail.tsx:472 +#: src/pages/stock/StockDetail.tsx:151 msgid "Last Stocktake" msgstr "Último Balanço" -#: src/pages/part/PartDetail.tsx:462 +#: src/pages/part/PartDetail.tsx:511 msgid "Stocktake By" -msgstr "" +msgstr "Inventário por" -#: src/pages/part/PartDetail.tsx:526 -msgid "Part Details" -msgstr "" - -#: src/pages/part/PartDetail.tsx:557 +#: src/pages/part/PartDetail.tsx:611 msgid "Variants" msgstr "Variantes" -#: src/pages/part/PartDetail.tsx:564 -#: src/pages/stock/StockDetail.tsx:307 +#: src/pages/part/PartDetail.tsx:618 +#: src/pages/stock/StockDetail.tsx:430 msgid "Allocations" msgstr "Alocações" -#: src/pages/part/PartDetail.tsx:575 -#: src/pages/stock/StockDetail.tsx:318 -#: src/tables/part/PartTable.tsx:99 -msgid "Build Order Allocations" -msgstr "Alocações de Pedido de Produção" - -#: src/pages/part/PartDetail.tsx:590 -#: src/pages/stock/StockDetail.tsx:333 -#: src/tables/part/PartTable.tsx:108 -msgid "Sales Order Allocations" -msgstr "Alocações do Pedido de Vendas" - -#: src/pages/part/PartDetail.tsx:607 +#: src/pages/part/PartDetail.tsx:625 msgid "Bill of Materials" msgstr "Lista de Materiais" -#: src/pages/part/PartDetail.tsx:623 +#: src/pages/part/PartDetail.tsx:643 msgid "Used In" msgstr "Usado em" -#: src/pages/part/PartDetail.tsx:630 +#: src/pages/part/PartDetail.tsx:650 msgid "Part Pricing" -msgstr "" +msgstr "Preço de Peça" -#: src/pages/part/PartDetail.tsx:636 +#: src/pages/part/PartDetail.tsx:656 #: src/pages/purchasing/PurchasingIndex.tsx:42 msgid "Manufacturers" msgstr "Fabricantes" -#: src/pages/part/PartDetail.tsx:676 +#: src/pages/part/PartDetail.tsx:722 msgid "Scheduling" msgstr "Agendamento" -#: src/pages/part/PartDetail.tsx:688 +#: src/pages/part/PartDetail.tsx:729 msgid "Test Templates" msgstr "Testar Modelos" -#: src/pages/part/PartDetail.tsx:715 +#: src/pages/part/PartDetail.tsx:756 msgid "Related Parts" msgstr "Peças Relacionadas" -#: src/pages/part/PartDetail.tsx:849 -#: src/pages/stock/StockDetail.tsx:156 -#: src/pages/stock/StockDetail.tsx:593 -#: src/tables/build/BuildLineTable.tsx:48 +#: src/pages/part/PartDetail.tsx:881 +#: src/pages/stock/StockDetail.tsx:172 +#: src/pages/stock/StockDetail.tsx:783 +#: src/tables/build/BuildLineTable.tsx:179 #: src/tables/part/PartTable.tsx:117 -#: src/tables/stock/StockItemTable.tsx:177 -#: src/tables/stock/StockItemTable.tsx:310 +#: src/tables/stock/StockItemTable.tsx:166 +#: src/tables/stock/StockItemTable.tsx:314 msgid "Available" msgstr "Disponível" -#: src/pages/part/PartDetail.tsx:855 +#: src/pages/part/PartDetail.tsx:887 msgid "No Stock" -msgstr "" +msgstr "Sem Estoque" -#: src/pages/part/PartDetail.tsx:861 +#: src/pages/part/PartDetail.tsx:893 +#: src/tables/part/PartTestTemplateTable.tsx:106 +#: src/tables/stock/StockItemTestResultTable.tsx:383 +msgid "Required" +msgstr "Obrigatório" + +#: src/pages/part/PartDetail.tsx:899 #: src/tables/bom/BomTable.tsx:325 #: src/tables/part/PartTable.tsx:86 msgid "On Order" msgstr "No pedido" -#: src/pages/part/PartDetail.tsx:867 -#: src/pages/stock/StockDetail.tsx:576 -#: src/tables/build/BuildOrderTestTable.tsx:219 -#: src/tables/stock/StockItemTable.tsx:330 -msgid "In Production" -msgstr "Em Produção" - -#: src/pages/part/PartDetail.tsx:892 +#: src/pages/part/PartDetail.tsx:924 msgid "Edit Part" msgstr "Editar Peça" -#: src/pages/part/PartDetail.tsx:927 +#: src/pages/part/PartDetail.tsx:959 #: src/tables/part/PartTable.tsx:331 -#: src/tables/part/PartTable.tsx:342 +#: src/tables/part/PartTable.tsx:343 msgid "Add Part" -msgstr "" +msgstr "Adicionar Parte" -#: src/pages/part/PartDetail.tsx:941 +#: src/pages/part/PartDetail.tsx:973 msgid "Delete Part" msgstr "Excluir Peça" -#: src/pages/part/PartDetail.tsx:950 +#: src/pages/part/PartDetail.tsx:982 msgid "Deleting this part cannot be reversed" msgstr "Excluir esta peça não é reversível" -#: src/pages/part/PartDetail.tsx:999 -#: src/pages/stock/LocationDetail.tsx:324 -#: src/tables/stock/StockItemTable.tsx:444 +#: src/pages/part/PartDetail.tsx:1021 +#: src/pages/stock/LocationDetail.tsx:310 +#: src/tables/stock/StockItemTable.tsx:449 msgid "Stock Actions" msgstr "Ações de Estoque" -#: src/pages/part/PartDetail.tsx:1007 +#: src/pages/part/PartDetail.tsx:1029 msgid "Count part stock" msgstr "Contagem do estoque" -#: src/pages/part/PartDetail.tsx:1018 +#: src/pages/part/PartDetail.tsx:1040 msgid "Transfer part stock" msgstr "Transferir estoque de peça" -#: src/pages/part/PartDetail.tsx:1027 +#: src/pages/part/PartDetail.tsx:1049 msgid "Part Actions" msgstr "Ações da Peça" -#: src/pages/part/PartDetail.tsx:1087 +#: src/pages/part/PartDetail.tsx:1113 msgid "Select Part Revision" -msgstr "" +msgstr "Selecionar Revisão de Parte" #: src/pages/part/PartIndex.tsx:29 #~ msgid "Categories" #~ msgstr "Categories" -#: src/pages/part/PartPricingPanel.tsx:68 +#: src/pages/part/PartPricingPanel.tsx:72 msgid "No pricing data found for this part." msgstr "Nenhum dado de preço foi encontrado para esta peça." -#: src/pages/part/PartPricingPanel.tsx:82 -#: src/pages/part/pricing/PricingOverviewPanel.tsx:190 +#: src/pages/part/PartPricingPanel.tsx:87 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:293 msgid "Pricing Overview" msgstr "Resumo de Preços" -#: src/pages/part/PartPricingPanel.tsx:88 +#: src/pages/part/PartPricingPanel.tsx:93 msgid "Purchase History" msgstr "Histórico de Compras" -#: src/pages/part/PartPricingPanel.tsx:102 -#: src/pages/part/pricing/PricingOverviewPanel.tsx:100 +#: src/pages/part/PartPricingPanel.tsx:107 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:174 msgid "Internal Pricing" msgstr "Preço Interno" -#: src/pages/part/PartPricingPanel.tsx:120 -#: src/pages/part/pricing/PricingOverviewPanel.tsx:107 +#: src/pages/part/PartPricingPanel.tsx:125 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:181 msgid "BOM Pricing" msgstr "Preço LDM" -#: src/pages/part/PartPricingPanel.tsx:127 -#: src/pages/part/pricing/PricingOverviewPanel.tsx:128 +#: src/pages/part/PartPricingPanel.tsx:132 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:202 msgid "Variant Pricing" msgstr "Preço de Variante" -#: src/pages/part/PartPricingPanel.tsx:139 -#: src/pages/part/pricing/PricingOverviewPanel.tsx:135 +#: src/pages/part/PartPricingPanel.tsx:144 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:209 msgid "Sale Pricing" msgstr "Preço de Venda" -#: src/pages/part/PartPricingPanel.tsx:146 -#: src/pages/part/pricing/PricingOverviewPanel.tsx:142 +#: src/pages/part/PartPricingPanel.tsx:151 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:216 msgid "Sale History" msgstr "Histórico de Vendas" -#: src/pages/part/pricing/BomPricingPanel.tsx:58 -#: src/pages/part/pricing/BomPricingPanel.tsx:138 -#: src/tables/ColumnRenderers.tsx:262 +#: src/pages/part/PartSchedulingDetail.tsx:47 +#: src/pages/part/PartSchedulingDetail.tsx:299 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:156 +msgid "Maximum" +msgstr "Máximo" + +#: src/pages/part/PartSchedulingDetail.tsx:50 +#: src/pages/part/PartSchedulingDetail.tsx:289 +msgid "Scheduled" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:53 +#: src/pages/part/PartSchedulingDetail.tsx:294 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:144 +msgid "Minimum" +msgstr "Mínimo" + +#: src/pages/part/PartSchedulingDetail.tsx:68 +msgid "Order" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:92 +msgid "Quantity is speculative" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:101 +msgid "No date available for provided quantity" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:105 +msgid "Date is in the past" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:112 +msgid "Scheduled Quantity" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:240 +msgid "No information available" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:241 +msgid "There is no scheduling information available for the selected part" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:276 +msgid "Expected Quantity" +msgstr "" + +#: src/pages/part/PartStocktakeDetail.tsx:63 +#: src/tables/FilterSelectDrawer.tsx:167 +#: src/tables/FilterSelectDrawer.tsx:174 +#: src/tables/build/BuildOrderTestTable.tsx:135 +#: src/tables/purchasing/ManufacturerPartParameterTable.tsx:38 +#: src/tables/stock/StockItemTestResultTable.tsx:192 +msgid "Value" +msgstr "Valor" + +#: src/pages/part/PartStocktakeDetail.tsx:82 +msgid "Edit Stocktake Entry" +msgstr "" + +#: src/pages/part/PartStocktakeDetail.tsx:90 +msgid "Delete Stocktake Entry" +msgstr "" + +#: src/pages/part/PartStocktakeDetail.tsx:96 +#: src/tables/settings/StocktakeReportTable.tsx:69 +msgid "Generate Stocktake Report" +msgstr "" + +#: src/pages/part/PartStocktakeDetail.tsx:101 +#: src/tables/settings/StocktakeReportTable.tsx:71 +msgid "Stocktake report scheduled" +msgstr "" + +#: src/pages/part/PartStocktakeDetail.tsx:119 +#: src/pages/part/PartStocktakeDetail.tsx:235 +#: src/pages/stock/StockDetail.tsx:303 +#: src/tables/stock/StockItemTable.tsx:249 +msgid "Stock Value" +msgstr "" + +#: src/pages/part/PartStocktakeDetail.tsx:139 +#: src/tables/settings/StocktakeReportTable.tsx:77 +msgid "New Stocktake Report" +msgstr "" + +#: src/pages/part/PartStocktakeDetail.tsx:258 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:295 +msgid "Minimum Value" +msgstr "Valor mínimo" + +#: src/pages/part/PartStocktakeDetail.tsx:264 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:296 +msgid "Maximum Value" +msgstr "Valor máximo" + +#: src/pages/part/pricing/BomPricingPanel.tsx:87 +#: src/pages/part/pricing/BomPricingPanel.tsx:177 +#: src/tables/ColumnRenderers.tsx:276 #: src/tables/bom/BomTable.tsx:185 #: src/tables/general/ExtraLineItemTable.tsx:64 -#: src/tables/purchasing/PurchaseOrderTable.tsx:112 -#: src/tables/sales/ReturnOrderTable.tsx:104 -#: src/tables/sales/SalesOrderLineItemTable.tsx:89 -#: src/tables/sales/SalesOrderTable.tsx:136 +#: src/tables/purchasing/PurchaseOrderTable.tsx:113 +#: src/tables/sales/ReturnOrderTable.tsx:127 +#: src/tables/sales/SalesOrderLineItemTable.tsx:97 +#: src/tables/sales/SalesOrderTable.tsx:149 msgid "Total Price" msgstr "Preço Total" -#: src/pages/part/pricing/BomPricingPanel.tsx:78 -#: src/pages/part/pricing/BomPricingPanel.tsx:102 +#: src/pages/part/pricing/BomPricingPanel.tsx:112 +#: src/pages/part/pricing/BomPricingPanel.tsx:141 #: src/tables/bom/UsedInTable.tsx:49 +#: src/tables/build/BuildLineTable.tsx:296 #: src/tables/part/PartTable.tsx:202 msgid "Component" msgstr "Componente" -#: src/pages/part/pricing/BomPricingPanel.tsx:81 -#: src/pages/part/pricing/VariantPricingPanel.tsx:37 -#: src/pages/part/pricing/VariantPricingPanel.tsx:97 -msgid "Minimum Price" -msgstr "Preço Mínimo" - -#: src/pages/part/pricing/BomPricingPanel.tsx:82 -#: src/pages/part/pricing/VariantPricingPanel.tsx:45 -#: src/pages/part/pricing/VariantPricingPanel.tsx:98 -msgid "Maximum Price" -msgstr "Preço Máximo" - #: src/pages/part/pricing/BomPricingPanel.tsx:112 #~ msgid "Minimum Total Price" #~ msgstr "Minimum Total Price" +#: src/pages/part/pricing/BomPricingPanel.tsx:115 +#: src/pages/part/pricing/VariantPricingPanel.tsx:37 +#: src/pages/part/pricing/VariantPricingPanel.tsx:97 +msgid "Minimum Price" +msgstr "Preço Mínimo" + +#: src/pages/part/pricing/BomPricingPanel.tsx:116 +#: src/pages/part/pricing/VariantPricingPanel.tsx:45 +#: src/pages/part/pricing/VariantPricingPanel.tsx:98 +msgid "Maximum Price" +msgstr "Preço Máximo" + #: src/pages/part/pricing/BomPricingPanel.tsx:117 #~ msgid "Maximum Total Price" #~ msgstr "Maximum Total Price" -#: src/pages/part/pricing/BomPricingPanel.tsx:129 -#: src/pages/part/pricing/PriceBreakPanel.tsx:172 -#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:67 -#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:128 -#: src/pages/part/pricing/SupplierPricingPanel.tsx:62 +#: src/pages/part/pricing/BomPricingPanel.tsx:168 +#: src/pages/part/pricing/PriceBreakPanel.tsx:173 +#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:70 +#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:125 +#: src/pages/part/pricing/SupplierPricingPanel.tsx:66 +#: src/pages/stock/StockDetail.tsx:291 #: src/tables/bom/BomTable.tsx:176 #: src/tables/general/ExtraLineItemTable.tsx:56 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:223 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:225 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:92 +#: src/tables/stock/StockItemTable.tsx:239 msgid "Unit Price" msgstr "Preço Unitário" -#: src/pages/part/pricing/BomPricingPanel.tsx:154 +#: src/pages/part/pricing/BomPricingPanel.tsx:193 #: src/pages/part/pricing/VariantPricingPanel.tsx:53 -#: src/tables/purchasing/SupplierPartTable.tsx:148 +#: src/tables/purchasing/SupplierPartTable.tsx:150 msgid "Updated" msgstr "Atualizado" -#: src/pages/part/pricing/BomPricingPanel.tsx:219 +#: src/pages/part/pricing/BomPricingPanel.tsx:258 msgid "Pie Chart" msgstr "Gráfico Pizza" -#: src/pages/part/pricing/BomPricingPanel.tsx:220 +#: src/pages/part/pricing/BomPricingPanel.tsx:259 msgid "Bar Chart" msgstr "Grafico de Barras" #: src/pages/part/pricing/PriceBreakPanel.tsx:58 -#: src/pages/part/pricing/PriceBreakPanel.tsx:110 +#: src/pages/part/pricing/PriceBreakPanel.tsx:111 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:142 -#: src/tables/purchasing/SupplierPriceBreakTable.tsx:168 +#: src/tables/purchasing/SupplierPriceBreakTable.tsx:169 msgid "Add Price Break" msgstr "Adicionar Quebra de Preço" @@ -4986,46 +5846,70 @@ msgstr "Excluir Quebra de Preço" msgid "Price Break" msgstr "Quebra de Preço" -#: src/pages/part/pricing/PriceBreakPanel.tsx:170 +#: src/pages/part/pricing/PriceBreakPanel.tsx:171 msgid "Price" +msgstr "Preço" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:68 +msgid "Refreshing pricing data" msgstr "" -#: src/pages/part/pricing/PricingOverviewPanel.tsx:51 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:88 +msgid "Pricing data updated" +msgstr "" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:95 +msgid "Failed to update pricing data" +msgstr "" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:104 +msgid "Edit Pricing" +msgstr "" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:125 msgid "Pricing Category" msgstr "Categoria de Precificação" -#: src/pages/part/pricing/PricingOverviewPanel.tsx:70 -msgid "Minimum" -msgstr "Mínimo" - -#: src/pages/part/pricing/PricingOverviewPanel.tsx:82 -msgid "Maximum" -msgstr "Máximo" - -#: src/pages/part/pricing/PricingOverviewPanel.tsx:114 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:188 msgid "Purchase Pricing" msgstr "Preço de Compra" -#: src/pages/part/pricing/PricingOverviewPanel.tsx:149 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:223 msgid "Override Pricing" msgstr "Sobrepor Precificação" -#: src/pages/part/pricing/PricingOverviewPanel.tsx:156 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:230 msgid "Overall Pricing" msgstr "Precificação Geral" -#: src/pages/part/pricing/PricingOverviewPanel.tsx:175 -#: src/pages/stock/StockDetail.tsx:129 -#: src/tables/stock/StockItemTable.tsx:240 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:249 +#: src/pages/stock/StockDetail.tsx:145 +#: src/tables/stock/StockItemTable.tsx:275 msgid "Last Updated" msgstr "Última Atualização" -#: src/pages/part/pricing/PricingOverviewPanel.tsx:192 -msgid "Minimum Value" +#: src/pages/part/pricing/PricingOverviewPanel.tsx:253 +msgid "Pricing Not Set" msgstr "" -#: src/pages/part/pricing/PricingOverviewPanel.tsx:193 -msgid "Maximum Value" +#: src/pages/part/pricing/PricingOverviewPanel.tsx:254 +msgid "Pricing data has not been calculated for this part" +msgstr "" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:258 +msgid "Pricing Actions" +msgstr "" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:261 +msgid "Refresh" +msgstr "" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:262 +msgid "Refresh pricing data" +msgstr "" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:277 +msgid "Edit pricing data" msgstr "" #: src/pages/part/pricing/PricingPanel.tsx:24 @@ -5044,28 +5928,20 @@ msgstr "Não há informações de preço disponíveis" msgid "Loading pricing data" msgstr "Carregando dados de preços" -#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:40 -#: src/pages/part/pricing/SaleHistoryPanel.tsx:36 -#: src/tables/ColumnRenderers.tsx:201 -#: src/tables/build/BuildOrderTestTable.tsx:150 -#: src/tables/plugin/PluginListTable.tsx:139 -msgid "Date" -msgstr "Data" - #: src/pages/part/pricing/PurchaseHistoryPanel.tsx:47 msgid "Purchase Price" msgstr "Preço de Compra" -#: src/pages/part/pricing/SaleHistoryPanel.tsx:22 -msgid "Sale Order" -msgstr "Pedido de Venda" +#: src/pages/part/pricing/SaleHistoryPanel.tsx:24 +#~ msgid "Sale Order" +#~ msgstr "Sale Order" -#: src/pages/part/pricing/SaleHistoryPanel.tsx:42 -#: src/pages/part/pricing/SaleHistoryPanel.tsx:92 +#: src/pages/part/pricing/SaleHistoryPanel.tsx:44 +#: src/pages/part/pricing/SaleHistoryPanel.tsx:87 msgid "Sale Price" msgstr "Preço de Venda" -#: src/pages/part/pricing/SupplierPricingPanel.tsx:65 +#: src/pages/part/pricing/SupplierPricingPanel.tsx:69 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:83 msgid "Supplier Price" msgstr "Preço do fornecedor" @@ -5075,23 +5951,23 @@ msgstr "Preço do fornecedor" msgid "Variant Part" msgstr "Peça Variante" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:93 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:87 msgid "Edit Purchase Order" msgstr "Editar Pedido de Compra" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:102 -#: src/tables/purchasing/PurchaseOrderTable.tsx:128 -#: src/tables/purchasing/PurchaseOrderTable.tsx:140 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:96 +#: src/tables/purchasing/PurchaseOrderTable.tsx:129 +#: src/tables/purchasing/PurchaseOrderTable.tsx:142 msgid "Add Purchase Order" msgstr "Adicionar Ordem de Compra" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:127 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:121 msgid "Supplier Reference" msgstr "Referencia do fornecedor" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:158 -#: src/pages/sales/ReturnOrderDetail.tsx:137 -#: src/pages/sales/SalesOrderDetail.tsx:137 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:152 +#: src/pages/sales/ReturnOrderDetail.tsx:129 +#: src/pages/sales/SalesOrderDetail.tsx:132 msgid "Completed Line Items" msgstr "Itens de Linha Concluídos" @@ -5101,209 +5977,306 @@ msgstr "Itens de Linha Concluídos" #~ msgid "Order Currency," #~ msgstr "Order Currency," -#: src/pages/purchasing/PurchaseOrderDetail.tsx:165 -#: src/pages/sales/ReturnOrderDetail.tsx:144 -#: src/pages/sales/SalesOrderDetail.tsx:153 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:161 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:231 +msgid "Destination" +msgstr "Destino" + +#: src/pages/purchasing/PurchaseOrderDetail.tsx:167 +#: src/pages/sales/ReturnOrderDetail.tsx:136 +#: src/pages/sales/SalesOrderDetail.tsx:148 msgid "Order Currency" msgstr "Moeda do pedido" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:172 -#: src/pages/sales/ReturnOrderDetail.tsx:151 -#: src/pages/sales/SalesOrderDetail.tsx:160 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:173 +#: src/pages/sales/ReturnOrderDetail.tsx:143 +#: src/pages/sales/SalesOrderDetail.tsx:155 msgid "Total Cost" msgstr "Custo Total" #: src/pages/purchasing/PurchaseOrderDetail.tsx:207 -#: src/pages/sales/ReturnOrderDetail.tsx:186 -#: src/pages/sales/SalesOrderDetail.tsx:195 -msgid "Created On" -msgstr "Criado em" +#: src/pages/sales/ReturnOrderDetail.tsx:183 +#: src/pages/sales/SalesOrderDetail.tsx:191 +#~ msgid "Created On" +#~ msgstr "Created On" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:252 -#: src/pages/sales/ReturnOrderDetail.tsx:231 -#: src/pages/sales/SalesOrderDetail.tsx:266 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:221 +#: src/pages/sales/ReturnOrderDetail.tsx:193 +#: src/pages/sales/SalesOrderDetail.tsx:204 +msgid "Issue Date" +msgstr "" + +#: src/pages/purchasing/PurchaseOrderDetail.tsx:237 +#: src/pages/sales/ReturnOrderDetail.tsx:209 +#: src/pages/sales/SalesOrderDetail.tsx:219 +#: src/tables/build/BuildOrderTable.tsx:98 +#: src/tables/part/PartPurchaseOrdersTable.tsx:105 +#: src/tables/sales/ReturnOrderTable.tsx:122 +msgid "Completion Date" +msgstr "" + +#: src/pages/purchasing/PurchaseOrderDetail.tsx:276 +#: src/pages/sales/ReturnOrderDetail.tsx:248 +#: src/pages/sales/SalesOrderDetail.tsx:288 msgid "Order Details" msgstr "Detalhes do pedido" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:280 -#: src/pages/sales/ReturnOrderDetail.tsx:258 -#: src/pages/sales/SalesOrderDetail.tsx:297 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:304 +#: src/pages/sales/ReturnOrderDetail.tsx:276 +#: src/pages/sales/SalesOrderDetail.tsx:319 msgid "Extra Line Items" -msgstr "" +msgstr "Itens de linha extra" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:337 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:346 msgid "Issue Purchase Order" -msgstr "" +msgstr "Emitir Pedido de Compra" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:345 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:354 msgid "Cancel Purchase Order" -msgstr "" +msgstr "Cancelar Pedido de Compra" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:353 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:362 msgid "Hold Purchase Order" -msgstr "" +msgstr "Reter pedido de compra" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:361 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:370 msgid "Complete Purchase Order" -msgstr "" +msgstr "Concluir Pedido de Compra" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:427 -#: src/pages/sales/ReturnOrderDetail.tsx:428 -#: src/pages/sales/SalesOrderDetail.tsx:468 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:425 +#: src/pages/sales/ReturnOrderDetail.tsx:424 +#: src/pages/sales/SalesOrderDetail.tsx:464 msgid "Order Actions" msgstr "Ações de Pedido" -#: src/pages/sales/ReturnOrderDetail.tsx:101 -#: src/pages/sales/SalesOrderDetail.tsx:107 -#: src/tables/sales/SalesOrderTable.tsx:124 +#: src/pages/sales/ReturnOrderDetail.tsx:92 +#: src/pages/sales/SalesOrderDetail.tsx:101 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:109 +#: src/tables/sales/SalesOrderTable.tsx:137 msgid "Customer Reference" msgstr "Referência do Cliente" -#: src/pages/sales/ReturnOrderDetail.tsx:315 +#: src/pages/sales/ReturnOrderDetail.tsx:322 msgid "Edit Return Order" msgstr "Editar Pedido de Devolução" -#: src/pages/sales/ReturnOrderDetail.tsx:324 -#: src/tables/sales/ReturnOrderTable.tsx:119 -#: src/tables/sales/ReturnOrderTable.tsx:128 +#: src/pages/sales/ReturnOrderDetail.tsx:331 +#: src/tables/sales/ReturnOrderTable.tsx:142 +#: src/tables/sales/ReturnOrderTable.tsx:152 msgid "Add Return Order" msgstr "Adicionar Pedido de Devolução" -#: src/pages/sales/ReturnOrderDetail.tsx:336 +#: src/pages/sales/ReturnOrderDetail.tsx:343 msgid "Issue Return Order" -msgstr "" +msgstr "Emitir Pedido de Devolução" -#: src/pages/sales/ReturnOrderDetail.tsx:344 +#: src/pages/sales/ReturnOrderDetail.tsx:349 +#~ msgid "Order canceled" +#~ msgstr "Order canceled" + +#: src/pages/sales/ReturnOrderDetail.tsx:351 msgid "Cancel Return Order" -msgstr "" +msgstr "Cancelar Pedido de Devolução" -#: src/pages/sales/ReturnOrderDetail.tsx:347 -msgid "Order canceled" -msgstr "" - -#: src/pages/sales/ReturnOrderDetail.tsx:352 +#: src/pages/sales/ReturnOrderDetail.tsx:359 msgid "Hold Return Order" -msgstr "" +msgstr "Adicionar Pedido de Devolução" -#: src/pages/sales/ReturnOrderDetail.tsx:360 +#: src/pages/sales/ReturnOrderDetail.tsx:367 msgid "Complete Return Order" -msgstr "" +msgstr "Completar Pedido de Devolução" #: src/pages/sales/SalesIndex.tsx:38 msgid "Customers" msgstr "Clientes" -#: src/pages/sales/SalesOrderDetail.tsx:145 +#: src/pages/sales/SalesOrderDetail.tsx:140 msgid "Completed Shipments" msgstr "Envios Concluídos" -#: src/pages/sales/SalesOrderDetail.tsx:243 -msgid "Edit Sales Order" -msgstr "Editar Pedido de Venda" - -#: src/pages/sales/SalesOrderDetail.tsx:252 -#: src/tables/sales/SalesOrderTable.tsx:84 -#: src/tables/sales/SalesOrderTable.tsx:96 -msgid "Add Sales Order" -msgstr "Adicionar Pedido de Vendas" - #: src/pages/sales/SalesOrderDetail.tsx:256 #~ msgid "Pending Shipments" #~ msgstr "Pending Shipments" -#: src/pages/sales/SalesOrderDetail.tsx:313 +#: src/pages/sales/SalesOrderDetail.tsx:261 +msgid "Edit Sales Order" +msgstr "Editar Pedido de Venda" + +#: src/pages/sales/SalesOrderDetail.tsx:274 +#: src/tables/sales/SalesOrderTable.tsx:96 +#: src/tables/sales/SalesOrderTable.tsx:109 +msgid "Add Sales Order" +msgstr "Adicionar Pedido de Vendas" + +#: src/pages/sales/SalesOrderDetail.tsx:335 msgid "Shipments" -msgstr "" +msgstr "Envios" -#: src/pages/sales/SalesOrderDetail.tsx:369 +#: src/pages/sales/SalesOrderDetail.tsx:376 msgid "Issue Sales Order" -msgstr "" +msgstr "Emitir Pedido de Venda" -#: src/pages/sales/SalesOrderDetail.tsx:377 +#: src/pages/sales/SalesOrderDetail.tsx:384 msgid "Cancel Sales Order" -msgstr "" +msgstr "Cancelar Pedido de Venda" -#: src/pages/sales/SalesOrderDetail.tsx:385 +#: src/pages/sales/SalesOrderDetail.tsx:392 msgid "Hold Sales Order" -msgstr "" +msgstr "Adicionar Pedido de Vendas" -#: src/pages/sales/SalesOrderDetail.tsx:393 +#: src/pages/sales/SalesOrderDetail.tsx:400 msgid "Complete Sales Order" -msgstr "" +msgstr "Concluir Pedido de Venda" -#: src/pages/sales/SalesOrderDetail.tsx:432 +#: src/pages/sales/SalesOrderDetail.tsx:439 msgid "Ship Order" +msgstr "Ordem de envio" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:117 +#: src/tables/sales/SalesOrderShipmentTable.tsx:96 +msgid "Shipment Reference" +msgstr "Referência de Remessa" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:124 +msgid "Allocated Items" msgstr "" -#: src/pages/stock/LocationDetail.tsx:117 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:133 +msgid "Tracking Number" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:141 +msgid "Invoice Number" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:149 +#: src/tables/ColumnRenderers.tsx:242 +#: src/tables/sales/SalesOrderAllocationTable.tsx:142 +#: src/tables/sales/SalesOrderShipmentTable.tsx:115 +msgid "Shipment Date" +msgstr "Data de envio" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:157 +#: src/tables/sales/SalesOrderShipmentTable.tsx:119 +msgid "Delivery Date" +msgstr "Data de Entrega" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:204 +msgid "Shipment Details" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:210 +msgid "Assigned Items" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:241 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:317 +#: src/tables/sales/SalesOrderShipmentTable.tsx:75 +msgid "Edit Shipment" +msgstr "Editar Remessa" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:248 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:322 +#: src/tables/sales/SalesOrderShipmentTable.tsx:67 +msgid "Cancel Shipment" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:261 +#: src/tables/sales/SalesOrderShipmentTable.tsx:83 +#: src/tables/sales/SalesOrderShipmentTable.tsx:151 +msgid "Complete Shipment" +msgstr "Remessa Completa" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:276 +#: src/tables/part/PartPurchaseOrdersTable.tsx:121 +msgid "Pending" +msgstr "Pendentes" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:277 +#: src/tables/sales/SalesOrderAllocationTable.tsx:148 +#: src/tables/sales/SalesOrderShipmentTable.tsx:108 +#: src/tables/sales/SalesOrderShipmentTable.tsx:197 +msgid "Shipped" +msgstr "Enviado" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:279 +#: src/tables/sales/SalesOrderShipmentTable.tsx:202 +msgid "Delivered" +msgstr "Entregue" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:293 +msgid "Send Shipment" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:312 +msgid "Shipment Actions" +msgstr "" + +#: src/pages/stock/LocationDetail.tsx:111 msgid "Parent Location" msgstr "Localização Pai" -#: src/pages/stock/LocationDetail.tsx:135 +#: src/pages/stock/LocationDetail.tsx:129 msgid "Sublocations" msgstr "Sub-locais" -#: src/pages/stock/LocationDetail.tsx:147 +#: src/pages/stock/LocationDetail.tsx:141 #: src/tables/stock/StockLocationTable.tsx:54 msgid "External" msgstr "Externo" -#: src/pages/stock/LocationDetail.tsx:153 +#: src/pages/stock/LocationDetail.tsx:147 #: src/tables/stock/StockLocationTable.tsx:63 msgid "Location Type" msgstr "Tipo de Localização" -#: src/pages/stock/LocationDetail.tsx:164 +#: src/pages/stock/LocationDetail.tsx:158 msgid "Top level stock location" msgstr "Local de estoque de alto nível" -#: src/pages/stock/LocationDetail.tsx:175 +#: src/pages/stock/LocationDetail.tsx:169 msgid "Location Details" msgstr "Detalhes da localização" -#: src/pages/stock/LocationDetail.tsx:201 +#: src/pages/stock/LocationDetail.tsx:195 msgid "Default Parts" -msgstr "" +msgstr "Peças Padrão" -#: src/pages/stock/LocationDetail.tsx:220 -#: src/pages/stock/LocationDetail.tsx:351 +#: src/pages/stock/LocationDetail.tsx:214 +#: src/pages/stock/LocationDetail.tsx:336 #: src/tables/stock/StockLocationTable.tsx:123 msgid "Edit Stock Location" msgstr "Editar Local de Estoque" -#: src/pages/stock/LocationDetail.tsx:241 -#: src/pages/stock/LocationDetail.tsx:356 +#: src/pages/stock/LocationDetail.tsx:235 +#: src/pages/stock/LocationDetail.tsx:341 msgid "Delete Stock Location" -msgstr "" +msgstr "Excluir Local de Estoque" + +#: src/pages/stock/LocationDetail.tsx:238 +msgid "Items Action" +msgstr "Ação do Item" + +#: src/pages/stock/LocationDetail.tsx:239 +msgid "Action for stock items in this location" +msgstr "Ação de itens de estoque neste local de estoque" #: src/pages/stock/LocationDetail.tsx:244 -msgid "Items Action" -msgstr "" +msgid "Child Locations Action" +msgstr "Ações de Localizações Filhas" #: src/pages/stock/LocationDetail.tsx:245 -msgid "Action for stock items in this location" -msgstr "" - -#: src/pages/stock/LocationDetail.tsx:250 -msgid "Child Locations Action" -msgstr "" - -#: src/pages/stock/LocationDetail.tsx:251 msgid "Action for child locations in this location" -msgstr "" +msgstr "Ação para localizações filhas deste local" -#: src/pages/stock/LocationDetail.tsx:346 +#: src/pages/stock/LocationDetail.tsx:332 msgid "Location Actions" -msgstr "" +msgstr "Ações de Localização" -#: src/pages/stock/StockDetail.tsx:108 +#: src/pages/stock/StockDetail.tsx:116 msgid "Base Part" msgstr "Peça base" -#: src/pages/stock/StockDetail.tsx:115 -msgid "Stock Status" -msgstr "" - #: src/pages/stock/StockDetail.tsx:155 #~ msgid "Link custom barcode to stock item" #~ msgstr "Link custom barcode to stock item" @@ -5312,112 +6285,178 @@ msgstr "" #~ msgid "Unlink custom barcode from stock item" #~ msgstr "Unlink custom barcode from stock item" -#: src/pages/stock/StockDetail.tsx:188 -msgid "Installed In" -msgstr "" - -#: src/pages/stock/StockDetail.tsx:204 -msgid "Consumed By" +#: src/pages/stock/StockDetail.tsx:178 +msgid "Allocated to Orders" msgstr "" #: src/pages/stock/StockDetail.tsx:205 #~ msgid "Edit stock item" #~ msgstr "Edit stock item" -#: src/pages/stock/StockDetail.tsx:213 -#: src/tables/build/BuildAllocatedStockTable.tsx:64 -#: src/tables/stock/StockTrackingTable.tsx:96 -msgid "Build Order" -msgstr "" +#: src/pages/stock/StockDetail.tsx:209 +msgid "Installed In" +msgstr "Instalado em" #: src/pages/stock/StockDetail.tsx:217 #~ msgid "Delete stock item" #~ msgstr "Delete stock item" -#: src/pages/stock/StockDetail.tsx:291 -msgid "Stock Details" +#: src/pages/stock/StockDetail.tsx:226 +msgid "Parent Item" msgstr "" -#: src/pages/stock/StockDetail.tsx:297 +#: src/pages/stock/StockDetail.tsx:230 +msgid "Parent stock item" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:236 +msgid "Consumed By" +msgstr "Consumido por" + +#: src/pages/stock/StockDetail.tsx:245 +#: src/tables/build/BuildAllocatedStockTable.tsx:77 +#: src/tables/stock/StockTrackingTable.tsx:100 +msgid "Build Order" +msgstr "Ondem de Produção" + +#: src/pages/stock/StockDetail.tsx:283 +#: src/tables/stock/StockItemTable.tsx:270 +msgid "Expiry Date" +msgstr "Data de Validade" + +#: src/pages/stock/StockDetail.tsx:414 +msgid "Stock Details" +msgstr "Detalhes do Estoque" + +#: src/pages/stock/StockDetail.tsx:420 msgid "Stock Tracking" msgstr "Rastreamento de Estoque" -#: src/pages/stock/StockDetail.tsx:350 -msgid "Test Data" -msgstr "Dados de Teste" - -#: src/pages/stock/StockDetail.tsx:364 -msgid "Installed Items" -msgstr "Itens Instalados" - -#: src/pages/stock/StockDetail.tsx:371 -msgid "Child Items" -msgstr "Itens Filhos" - -#: src/pages/stock/StockDetail.tsx:425 -msgid "Edit Stock Item" -msgstr "Editar Item do Estoque" - #: src/pages/stock/StockDetail.tsx:433 #~ msgid "Duplicate stock item" #~ msgstr "Duplicate stock item" -#: src/pages/stock/StockDetail.tsx:452 +#: src/pages/stock/StockDetail.tsx:475 +msgid "Test Data" +msgstr "Dados de Teste" + +#: src/pages/stock/StockDetail.tsx:489 +msgid "Installed Items" +msgstr "Itens Instalados" + +#: src/pages/stock/StockDetail.tsx:496 +msgid "Child Items" +msgstr "Itens Filhos" + +#: src/pages/stock/StockDetail.tsx:545 +msgid "Edit Stock Item" +msgstr "Editar Item do Estoque" + +#: src/pages/stock/StockDetail.tsx:572 msgid "Delete Stock Item" +msgstr "Excluir Item de Estoque" + +#: src/pages/stock/StockDetail.tsx:604 +msgid "Serialize Stock Item" msgstr "" -#: src/pages/stock/StockDetail.tsx:504 +#: src/pages/stock/StockDetail.tsx:617 +msgid "Stock item serialized" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:623 +msgid "Return Stock Item" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:626 +msgid "Return this item into stock. This will remove the customer assignment." +msgstr "" + +#: src/pages/stock/StockDetail.tsx:636 +msgid "Item returned to stock" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:666 msgid "Stock Operations" msgstr "Operações de Estoque" -#: src/pages/stock/StockDetail.tsx:509 +#: src/pages/stock/StockDetail.tsx:671 msgid "Count stock" msgstr "Contagem de estoque" -#: src/pages/stock/StockDetail.tsx:519 -#: src/tables/stock/StockItemTable.tsx:449 -msgid "Add stock" -msgstr "Adicionar estoque" +#: src/pages/stock/StockDetail.tsx:671 +#: src/tables/stock/StockItemTable.tsx:452 +#~ msgid "Add stock" +#~ msgstr "Add stock" -#: src/pages/stock/StockDetail.tsx:527 -#: src/tables/stock/StockItemTable.tsx:458 -msgid "Remove stock" -msgstr "Remover estoque" +#: src/pages/stock/StockDetail.tsx:680 +#: src/tables/stock/StockItemTable.tsx:461 +#~ msgid "Remove stock" +#~ msgstr "Remove stock" -#: src/pages/stock/StockDetail.tsx:534 +#: src/pages/stock/StockDetail.tsx:698 +#: src/tables/stock/StockItemTable.tsx:481 +#~ msgid "Transfer stock" +#~ msgstr "Transfer stock" + +#: src/pages/stock/StockDetail.tsx:699 +msgid "Serialize" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:700 +msgid "Serialize stock" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:711 msgid "Transfer" msgstr "Transferir" -#: src/pages/stock/StockDetail.tsx:535 -#: src/tables/stock/StockItemTable.tsx:478 -msgid "Transfer stock" -msgstr "Transferir estoque" - -#: src/pages/stock/StockDetail.tsx:546 -msgid "Stock Item Actions" +#: src/pages/stock/StockDetail.tsx:722 +msgid "Return" msgstr "" -#: src/tables/ColumnRenderers.tsx:30 +#: src/pages/stock/StockDetail.tsx:723 +msgid "Return from customer" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:738 +msgid "Stock Item Actions" +msgstr "Ações de Estoque" + +#: src/pages/stock/StockDetail.tsx:808 +msgid "Stale" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:814 +msgid "Expired" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:820 +msgid "Unavailable" +msgstr "" + +#: src/tables/ColumnRenderers.tsx:36 msgid "Part is not active" msgstr "Peça inativa" -#: src/tables/ColumnRenderers.tsx:35 -msgid "Part is locked" +#: src/tables/ColumnRenderers.tsx:41 +#: src/tables/bom/BomTable.tsx:542 +#: src/tables/part/PartParameterTable.tsx:193 +#: src/tables/part/PartTestTemplateTable.tsx:253 +msgid "Part is Locked" msgstr "" -#: src/tables/ColumnRenderers.tsx:57 +#: src/tables/ColumnRenderers.tsx:41 +#~ msgid "Part is locked" +#~ msgstr "Part is locked" + +#: src/tables/ColumnRenderers.tsx:46 +msgid "You are subscribed to notifications for this part" +msgstr "" + +#: src/tables/ColumnRenderers.tsx:68 msgid "No location set" -msgstr "" - -#: src/tables/ColumnRenderers.tsx:228 -#: src/tables/sales/SalesOrderShipmentTable.tsx:79 -msgid "Shipment Date" -msgstr "" - -#: src/tables/ColumnRenderers.tsx:248 -#: src/tables/settings/CurrencyTable.tsx:23 -msgid "Currency" -msgstr "Moeda" +msgstr "Nenhum local definido" #: src/tables/ColumnSelect.tsx:16 #: src/tables/ColumnSelect.tsx:23 @@ -5442,7 +6481,7 @@ msgstr "TSV" #: src/tables/DownloadAction.tsx:23 msgid "Excel (.xlsx)" -msgstr "" +msgstr "Excel" #: src/tables/DownloadAction.tsx:24 #~ msgid "Excel (.xls)" @@ -5450,93 +6489,118 @@ msgstr "" #: src/tables/DownloadAction.tsx:36 msgid "Download Data" -msgstr "" +msgstr "Baixar dados" -#: src/tables/Filter.tsx:89 -#: src/tables/build/BuildOrderTable.tsx:135 +#: src/tables/Filter.tsx:101 msgid "Assigned to me" msgstr "Atribuído a mim" -#: src/tables/Filter.tsx:90 -#: src/tables/build/BuildOrderTable.tsx:136 +#: src/tables/Filter.tsx:102 msgid "Show orders assigned to me" msgstr "Mostrar pedidos atribuídos a mim" -#: src/tables/Filter.tsx:97 +#: src/tables/Filter.tsx:106 +#~ msgid "Show overdue orders" +#~ msgstr "Show overdue orders" + +#: src/tables/Filter.tsx:109 +#: src/tables/build/BuildOrderTable.tsx:120 +#: src/tables/sales/SalesOrderAllocationTable.tsx:59 msgid "Outstanding" msgstr "Pendente" -#: src/tables/Filter.tsx:98 -msgid "Show outstanding orders" -msgstr "Mostrar pedidos pendentes" +#: src/tables/Filter.tsx:110 +msgid "Show outstanding items" +msgstr "" -#: src/tables/Filter.tsx:105 -#: src/tables/build/BuildOrderTable.tsx:128 +#: src/tables/Filter.tsx:117 msgid "Overdue" msgstr "Em atraso" -#: src/tables/Filter.tsx:106 -msgid "Show overdue orders" -msgstr "Mostrar pedidos atrasados" +#: src/tables/Filter.tsx:118 +msgid "Show overdue items" +msgstr "" -#: src/tables/FilterSelectDrawer.tsx:51 +#: src/tables/Filter.tsx:125 +msgid "Minimum Date" +msgstr "" + +#: src/tables/Filter.tsx:126 +msgid "Show items after this date" +msgstr "" + +#: src/tables/Filter.tsx:134 +msgid "Maximum Date" +msgstr "" + +#: src/tables/Filter.tsx:135 +msgid "Show items before this date" +msgstr "" + +#: src/tables/Filter.tsx:144 +msgid "Has Project Code" +msgstr "Tem código do projeto" + +#: src/tables/Filter.tsx:145 +msgid "Show orders with an assigned project code" +msgstr "" + +#: src/tables/FilterSelectDrawer.tsx:55 msgid "Remove filter" msgstr "Remover filtro" -#: src/tables/FilterSelectDrawer.tsx:130 +#: src/tables/FilterSelectDrawer.tsx:159 msgid "Select filter" msgstr "Selecionar filtro" -#: src/tables/FilterSelectDrawer.tsx:131 +#: src/tables/FilterSelectDrawer.tsx:160 msgid "Filter" msgstr "Filtro" -#: src/tables/FilterSelectDrawer.tsx:138 -#: src/tables/build/BuildOrderTestTable.tsx:134 -#: src/tables/purchasing/ManufacturerPartParameterTable.tsx:38 -#: src/tables/stock/StockItemTestResultTable.tsx:186 -msgid "Value" -msgstr "Valor" +#: src/tables/FilterSelectDrawer.tsx:168 +msgid "Select date value" +msgstr "" -#: src/tables/FilterSelectDrawer.tsx:140 +#: src/tables/FilterSelectDrawer.tsx:176 msgid "Select filter value" msgstr "Selecionar valor do filtro" -#: src/tables/FilterSelectDrawer.tsx:183 +#: src/tables/FilterSelectDrawer.tsx:219 +#: src/tables/InvenTreeTableHeader.tsx:214 msgid "Table Filters" msgstr "Filtros da Tabela" -#: src/tables/FilterSelectDrawer.tsx:215 +#: src/tables/FilterSelectDrawer.tsx:251 msgid "Add Filter" msgstr "Adicionar Filtro" -#: src/tables/FilterSelectDrawer.tsx:224 +#: src/tables/FilterSelectDrawer.tsx:260 msgid "Clear Filters" msgstr "Limpar Filtros" -#: src/tables/InvenTreeTable.tsx:123 -#: src/tables/InvenTreeTable.tsx:431 -#: src/tables/InvenTreeTable.tsx:455 +#: src/tables/InvenTreeTable.tsx:96 +#: src/tables/InvenTreeTable.tsx:417 +#: src/tables/InvenTreeTable.tsx:441 msgid "No records found" msgstr "Nenhum registro encontrado" -#: src/tables/InvenTreeTable.tsx:466 +#: src/tables/InvenTreeTable.tsx:452 msgid "Server returned incorrect data type" msgstr "O servidor retornou um tipo de dado incorreto" -#: src/tables/InvenTreeTable.tsx:474 +#: src/tables/InvenTreeTable.tsx:460 msgid "Bad request" msgstr "Requisição inválida" -#: src/tables/InvenTreeTable.tsx:477 +#: src/tables/InvenTreeTable.tsx:463 msgid "Unauthorized" msgstr "Não autorizado" -#: src/tables/InvenTreeTable.tsx:480 +#: src/tables/InvenTreeTable.tsx:466 msgid "Forbidden" msgstr "Proibido" -#: src/tables/InvenTreeTable.tsx:483 +#: src/tables/InvenTreeTable.tsx:469 msgid "Not found" msgstr "Não encontrado" @@ -5544,18 +6608,6 @@ msgstr "Não encontrado" #~ msgid "Are you sure you want to delete the selected records?" #~ msgstr "Are you sure you want to delete the selected records?" -#: src/tables/InvenTreeTable.tsx:525 -msgid "Delete Selected Items" -msgstr "" - -#: src/tables/InvenTreeTable.tsx:529 -msgid "Are you sure you want to delete the selected items?" -msgstr "" - -#: src/tables/InvenTreeTable.tsx:531 -msgid "This action cannot be undone!" -msgstr "Essa ação não pode ser desfeita!" - #: src/tables/InvenTreeTable.tsx:535 #~ msgid "Deleted records" #~ msgstr "Deleted records" @@ -5568,31 +6620,56 @@ msgstr "Essa ação não pode ser desfeita!" #~ msgid "Failed to delete records" #~ msgstr "Failed to delete records" +#: src/tables/InvenTreeTable.tsx:552 +#~ msgid "This action cannot be undone!" +#~ msgstr "This action cannot be undone!" + #: src/tables/InvenTreeTable.tsx:594 #: src/tables/InvenTreeTable.tsx:595 #~ msgid "Print actions" #~ msgstr "Print actions" -#: src/tables/InvenTreeTable.tsx:618 -#: src/tables/InvenTreeTable.tsx:619 -msgid "Barcode actions" -msgstr "Ações de código de barras" +#: src/tables/InvenTreeTable.tsx:655 +#: src/tables/InvenTreeTable.tsx:656 +#~ msgid "Barcode actions" +#~ msgstr "Barcode actions" -#: src/tables/InvenTreeTable.tsx:628 +#: src/tables/InvenTreeTable.tsx:712 +#~ msgid "Table filters" +#~ msgstr "Table filters" + +#: src/tables/InvenTreeTable.tsx:725 +#~ msgid "Clear custom query filters" +#~ msgstr "Clear custom query filters" + +#: src/tables/InvenTreeTableHeader.tsx:98 +msgid "Delete Selected Items" +msgstr "Apagar itens selecionados" + +#: src/tables/InvenTreeTableHeader.tsx:102 +msgid "Are you sure you want to delete the selected items?" +msgstr "Você tem certeza que quer apagar os itens selecionados?" + +#: src/tables/InvenTreeTableHeader.tsx:104 +#: src/tables/plugin/PluginListTable.tsx:305 +msgid "This action cannot be undone" +msgstr "" + +#: src/tables/InvenTreeTableHeader.tsx:142 +msgid "Custom table filters are active" +msgstr "" + +#: src/tables/InvenTreeTableHeader.tsx:169 msgid "Delete selected records" msgstr "Remover registros selecionados" -#: src/tables/InvenTreeTable.tsx:649 +#: src/tables/InvenTreeTableHeader.tsx:188 msgid "Refresh data" msgstr "Atualizar dados" -#: src/tables/InvenTreeTable.tsx:675 -msgid "Table filters" -msgstr "Filtros da Tabela" - #: src/tables/TableHoverCard.tsx:35 -msgid "item-{idx}" -msgstr "" +#~ msgid "item-{idx}" +#~ msgstr "item-{idx}" #: src/tables/UploadAction.tsx:7 #~ msgid "Upload Data" @@ -5607,46 +6684,51 @@ msgid "Part Information" msgstr "Informação da Peça" #: src/tables/bom/BomTable.tsx:212 -#: src/tables/build/BuildLineTable.tsx:126 +#: src/tables/build/BuildLineTable.tsx:257 #: src/tables/part/PartTable.tsx:125 msgid "External stock" -msgstr "" +msgstr "Estoque externo" #: src/tables/bom/BomTable.tsx:220 -#: src/tables/build/BuildLineTable.tsx:89 +#: src/tables/build/BuildLineTable.tsx:220 msgid "Includes substitute stock" msgstr "Incluir estoque de substitutos" #: src/tables/bom/BomTable.tsx:229 -#: src/tables/build/BuildLineTable.tsx:99 -#: src/tables/sales/SalesOrderLineItemTable.tsx:127 +#: src/tables/build/BuildLineTable.tsx:230 +#: src/tables/sales/SalesOrderLineItemTable.tsx:135 msgid "Includes variant stock" msgstr "Incluir estoque de variantes" +#: src/tables/bom/BomTable.tsx:245 +#: src/tables/part/PartTable.tsx:92 +msgid "Building" +msgstr "Produzindo" + #: src/tables/bom/BomTable.tsx:254 #: src/tables/part/PartTable.tsx:153 -#: src/tables/sales/SalesOrderLineItemTable.tsx:150 -#: src/tables/stock/StockItemTable.tsx:216 +#: src/tables/sales/SalesOrderLineItemTable.tsx:158 +#: src/tables/stock/StockItemTable.tsx:206 msgid "Stock Information" msgstr "Informação do Estoque" #: src/tables/bom/BomTable.tsx:285 -#: src/tables/build/BuildLineTable.tsx:248 +#: src/tables/build/BuildLineTable.tsx:409 msgid "Consumable item" msgstr "Item Consumível" #: src/tables/bom/BomTable.tsx:288 msgid "No available stock" -msgstr "" +msgstr "Estoque não disponível" #: src/tables/bom/BomTable.tsx:301 #~ msgid "Create BOM Item" #~ msgstr "Create BOM Item" #: src/tables/bom/BomTable.tsx:306 -#: src/tables/build/BuildLineTable.tsx:69 +#: src/tables/build/BuildLineTable.tsx:200 msgid "Show testable items" -msgstr "" +msgstr "Mostrar itens testáveis" #: src/tables/bom/BomTable.tsx:310 #~ msgid "Show asssmbled items" @@ -5657,11 +6739,12 @@ msgid "Show trackable items" msgstr "Mostrar itens rastreáveis" #: src/tables/bom/BomTable.tsx:316 -#: src/tables/build/BuildLineTable.tsx:64 +#: src/tables/build/BuildLineTable.tsx:195 msgid "Show assembled items" -msgstr "" +msgstr "Mostrar itens montados" #: src/tables/bom/BomTable.tsx:321 +#: src/tables/build/BuildLineTable.tsx:180 msgid "Show items with available stock" msgstr "Mostrar itens com estoque disponível" @@ -5671,7 +6754,7 @@ msgstr "Mostrar itens no pedido" #: src/tables/bom/BomTable.tsx:330 msgid "Validated" -msgstr "" +msgstr "Validado" #: src/tables/bom/BomTable.tsx:331 msgid "Show validated items" @@ -5688,7 +6771,7 @@ msgstr "Mostrar itens validados" #: src/tables/bom/BomTable.tsx:335 #: src/tables/bom/UsedInTable.tsx:74 msgid "Inherited" -msgstr "" +msgstr "Herdado" #: src/tables/bom/BomTable.tsx:336 #: src/tables/bom/UsedInTable.tsx:75 @@ -5697,15 +6780,15 @@ msgstr "Mostrar itens herdados" #: src/tables/bom/BomTable.tsx:340 msgid "Allow Variants" -msgstr "" +msgstr "Permitir variantes" #: src/tables/bom/BomTable.tsx:341 msgid "Show items which allow variant substitution" -msgstr "" +msgstr "Mostrar itens que permitem a substituição de variantes" #: src/tables/bom/BomTable.tsx:345 #: src/tables/bom/UsedInTable.tsx:79 -#: src/tables/build/BuildLineTable.tsx:58 +#: src/tables/build/BuildLineTable.tsx:189 msgid "Optional" msgstr "Opcional" @@ -5723,7 +6806,7 @@ msgstr "Mostrar itens opcionais" #~ msgstr "Bom item deleted" #: src/tables/bom/BomTable.tsx:350 -#: src/tables/build/BuildLineTable.tsx:53 +#: src/tables/build/BuildLineTable.tsx:184 msgid "Consumable" msgstr "Consumível" @@ -5749,56 +6832,56 @@ msgid "Show items with pricing" msgstr "Exibir itens com preço" #: src/tables/bom/BomTable.tsx:378 -#: src/tables/bom/BomTable.tsx:511 +#: src/tables/bom/BomTable.tsx:512 msgid "Import BOM Data" -msgstr "" +msgstr "Importar Data BOM" #: src/tables/bom/BomTable.tsx:388 -#: src/tables/bom/BomTable.tsx:523 +#: src/tables/bom/BomTable.tsx:526 msgid "Add BOM Item" -msgstr "" +msgstr "Adicionar Item BOM" #: src/tables/bom/BomTable.tsx:393 msgid "BOM item created" -msgstr "" +msgstr "Item BOM criado" #: src/tables/bom/BomTable.tsx:400 msgid "Edit BOM Item" -msgstr "" +msgstr "Editar Item BOM" #: src/tables/bom/BomTable.tsx:402 msgid "BOM item updated" -msgstr "" +msgstr "Item BOM atualizado" #: src/tables/bom/BomTable.tsx:409 msgid "Delete BOM Item" -msgstr "" +msgstr "Deletar Item BOM" #: src/tables/bom/BomTable.tsx:410 msgid "BOM item deleted" -msgstr "" +msgstr "Item BOM deletado" #: src/tables/bom/BomTable.tsx:423 #: src/tables/bom/BomTable.tsx:426 -#: src/tables/bom/BomTable.tsx:517 +#: src/tables/bom/BomTable.tsx:519 msgid "Validate BOM" -msgstr "" +msgstr "Validar LDM" #: src/tables/bom/BomTable.tsx:427 msgid "Do you want to validate the bill of materials for this assembly?" -msgstr "" +msgstr "Deseja validar a lista de materiais desta montagem?" #: src/tables/bom/BomTable.tsx:430 msgid "BOM validated" -msgstr "" +msgstr "BOM validado" #: src/tables/bom/BomTable.tsx:442 msgid "BOM item validated" -msgstr "" +msgstr "Item da LDM validado" #: src/tables/bom/BomTable.tsx:451 msgid "Failed to validate BOM item" -msgstr "" +msgstr "Falha ao validar o item LDM" #: src/tables/bom/BomTable.tsx:463 msgid "View BOM" @@ -5806,27 +6889,21 @@ msgstr "Ver BOM" #: src/tables/bom/BomTable.tsx:472 msgid "Validate BOM Line" -msgstr "" +msgstr "Validar Linha BOM" #: src/tables/bom/BomTable.tsx:489 msgid "Edit Substitutes" msgstr "Editar substitutos" -#: src/tables/bom/BomTable.tsx:539 -#: src/tables/part/PartParameterTable.tsx:193 -#: src/tables/part/PartTestTemplateTable.tsx:252 -msgid "Part is Locked" -msgstr "" - -#: src/tables/bom/BomTable.tsx:544 +#: src/tables/bom/BomTable.tsx:547 msgid "Bill of materials cannot be edited, as the part is locked" -msgstr "" +msgstr "A lista de materiais não pode ser editada, pois está bloqueada" #: src/tables/bom/UsedInTable.tsx:33 -#: src/tables/build/BuildLineTable.tsx:63 +#: src/tables/build/BuildLineTable.tsx:194 #: src/tables/part/ParametricPartTable.tsx:233 #: src/tables/part/PartTable.tsx:190 -#: src/tables/stock/StockItemTable.tsx:300 +#: src/tables/stock/StockItemTable.tsx:304 msgid "Assembly" msgstr "Montagem" @@ -5844,285 +6921,347 @@ msgstr "Rastreável" msgid "Show trackable assemblies" msgstr "Mostrar montagens rastreáveis" -#: src/tables/build/BuildAllocatedStockTable.tsx:54 +#: src/tables/build/BuildAllocatedStockTable.tsx:56 msgid "Allocated to Output" -msgstr "" +msgstr "Alocado para saída" -#: src/tables/build/BuildAllocatedStockTable.tsx:55 +#: src/tables/build/BuildAllocatedStockTable.tsx:57 msgid "Show items allocated to a build output" +msgstr "Mostrar itens alocados a uma saída da compilação" + +#: src/tables/build/BuildAllocatedStockTable.tsx:65 +#: src/tables/build/BuildOrderTable.tsx:159 +#: src/tables/part/PartParameterTable.tsx:212 +#: src/tables/part/PartPurchaseOrdersTable.tsx:138 +#: src/tables/sales/ReturnOrderTable.tsx:84 +#: src/tables/sales/SalesOrderAllocationTable.tsx:68 +#: src/tables/sales/SalesOrderTable.tsx:84 +#: src/tables/stock/StockItemTable.tsx:339 +msgid "Include Variants" +msgstr "Incluir Variantes" + +#: src/tables/build/BuildAllocatedStockTable.tsx:66 +#: src/tables/build/BuildOrderTable.tsx:160 +#: src/tables/part/PartPurchaseOrdersTable.tsx:139 +#: src/tables/sales/ReturnOrderTable.tsx:85 +#: src/tables/sales/SalesOrderAllocationTable.tsx:69 +#: src/tables/sales/SalesOrderTable.tsx:85 +msgid "Include orders for part variants" msgstr "" -#: src/tables/build/BuildAllocatedStockTable.tsx:76 -#: src/tables/part/PartPurchaseOrdersTable.tsx:125 -#: src/tables/sales/SalesOrderAllocationTable.tsx:62 +#: src/tables/build/BuildAllocatedStockTable.tsx:89 +#: src/tables/part/PartPurchaseOrdersTable.tsx:131 +#: src/tables/sales/SalesOrderAllocationTable.tsx:93 msgid "Order Status" -msgstr "" +msgstr "Situação do pedido" -#: src/tables/build/BuildAllocatedStockTable.tsx:96 -#: src/tables/sales/SalesOrderAllocationTable.tsx:75 +#: src/tables/build/BuildAllocatedStockTable.tsx:117 +#: src/tables/sales/SalesOrderAllocationTable.tsx:126 msgid "Allocated Quantity" -msgstr "" +msgstr "Quantidade Alocada" -#: src/tables/build/BuildAllocatedStockTable.tsx:116 -#: src/tables/sales/SalesOrderAllocationTable.tsx:94 +#: src/tables/build/BuildAllocatedStockTable.tsx:137 +#: src/tables/sales/SalesOrderAllocationTable.tsx:120 msgid "Available Quantity" +msgstr "Quantidade Disponível" + +#: src/tables/build/BuildAllocatedStockTable.tsx:164 +#: src/tables/build/BuildLineTable.tsx:513 +msgid "Edit Stock Allocation" msgstr "" -#: src/tables/build/BuildAllocatedStockTable.tsx:126 -#: src/tables/build/BuildOrderTestTable.tsx:176 -#: src/tables/build/BuildOrderTestTable.tsx:200 -#: src/tables/build/BuildOutputTable.tsx:312 -msgid "Build Output" +#: src/tables/build/BuildAllocatedStockTable.tsx:164 +#~ msgid "Edit Build Item" +#~ msgstr "Edit Build Item" + +#: src/tables/build/BuildAllocatedStockTable.tsx:174 +#~ msgid "Delete Build Item" +#~ msgstr "Delete Build Item" + +#: src/tables/build/BuildAllocatedStockTable.tsx:177 +#: src/tables/build/BuildLineTable.tsx:526 +msgid "Delete Stock Allocation" msgstr "" -#: src/tables/build/BuildAllocatedStockTable.tsx:143 -msgid "Edit Build Item" -msgstr "" +#: src/tables/build/BuildLineTable.tsx:59 +#~ msgid "Show lines with available stock" +#~ msgstr "Show lines with available stock" -#: src/tables/build/BuildAllocatedStockTable.tsx:153 -msgid "Delete Build Item" -msgstr "" - -#: src/tables/build/BuildLineTable.tsx:43 -#: src/tables/stock/StockItemTable.tsx:305 -msgid "Allocated" -msgstr "Alocado" - -#: src/tables/build/BuildLineTable.tsx:44 +#: src/tables/build/BuildLineTable.tsx:175 msgid "Show allocated lines" msgstr "Mostrar linhas alocadas" -#: src/tables/build/BuildLineTable.tsx:49 -msgid "Show lines with available stock" -msgstr "Mostrar linhas com estoque disponível" - -#: src/tables/build/BuildLineTable.tsx:54 +#: src/tables/build/BuildLineTable.tsx:185 msgid "Show consumable lines" msgstr "Mostrar linhas consumíveis" -#: src/tables/build/BuildLineTable.tsx:59 +#: src/tables/build/BuildLineTable.tsx:190 msgid "Show optional lines" msgstr "Mostrar linhas opcionais" -#: src/tables/build/BuildLineTable.tsx:68 +#: src/tables/build/BuildLineTable.tsx:199 #: src/tables/part/PartTable.tsx:208 msgid "Testable" -msgstr "" +msgstr "Testável" -#: src/tables/build/BuildLineTable.tsx:73 -#: src/tables/stock/StockItemTable.tsx:364 +#: src/tables/build/BuildLineTable.tsx:204 +#: src/tables/stock/StockItemTable.tsx:368 msgid "Tracked" msgstr "Monitorado" -#: src/tables/build/BuildLineTable.tsx:74 +#: src/tables/build/BuildLineTable.tsx:205 msgid "Show tracked lines" -msgstr "" +msgstr "Mostrar itens monitorados" -#: src/tables/build/BuildLineTable.tsx:108 -#: src/tables/sales/SalesOrderLineItemTable.tsx:133 +#: src/tables/build/BuildLineTable.tsx:239 +#: src/tables/sales/SalesOrderLineItemTable.tsx:141 msgid "In production" msgstr "Em produção" -#: src/tables/build/BuildLineTable.tsx:136 +#: src/tables/build/BuildLineTable.tsx:267 msgid "Insufficient stock" -msgstr "" +msgstr "Estoque insuficiente" -#: src/tables/build/BuildLineTable.tsx:152 -#: src/tables/sales/SalesOrderLineItemTable.tsx:121 -#: src/tables/stock/StockItemTable.tsx:186 +#: src/tables/build/BuildLineTable.tsx:283 +#: src/tables/sales/SalesOrderLineItemTable.tsx:129 +#: src/tables/stock/StockItemTable.tsx:175 msgid "No stock available" msgstr "Nenhum estoque disponível" -#: src/tables/build/BuildLineTable.tsx:201 +#: src/tables/build/BuildLineTable.tsx:355 msgid "Gets Inherited" -msgstr "" +msgstr "Obtém herdados" -#: src/tables/build/BuildLineTable.tsx:210 +#: src/tables/build/BuildLineTable.tsx:366 msgid "Unit Quantity" msgstr "Quantidade Unitária" -#: src/tables/build/BuildLineTable.tsx:267 -#: src/tables/sales/SalesOrderLineItemTable.tsx:230 -msgid "Create Build Order" +#: src/tables/build/BuildLineTable.tsx:381 +msgid "Required Quantity" msgstr "" -#: src/tables/build/BuildLineTable.tsx:298 -msgid "Allocate Stock" -msgstr "Alocar Estoque" +#: src/tables/build/BuildLineTable.tsx:432 +#: src/tables/sales/SalesOrderLineItemTable.tsx:254 +msgid "Create Build Order" +msgstr "Criar Pedido de Produção" -#: src/tables/build/BuildLineTable.tsx:305 +#: src/tables/build/BuildLineTable.tsx:460 +msgid "Auto allocation in progress" +msgstr "Alocação automática em progresso" + +#: src/tables/build/BuildLineTable.tsx:463 +#: src/tables/build/BuildLineTable.tsx:632 +msgid "Auto Allocate Stock" +msgstr "Estoque alocado automaticamente" + +#: src/tables/build/BuildLineTable.tsx:464 +msgid "Automatically allocate stock to this build according to the selected options" +msgstr "Alocar automaticamente o estoque desta compilação conforme as opções selecionadas" + +#: src/tables/build/BuildLineTable.tsx:482 +#: src/tables/build/BuildLineTable.tsx:496 +#: src/tables/build/BuildLineTable.tsx:579 +#: src/tables/build/BuildLineTable.tsx:664 +#: src/tables/build/BuildOutputTable.tsx:314 +#: src/tables/build/BuildOutputTable.tsx:319 +msgid "Deallocate Stock" +msgstr "Desalocar estoque" + +#: src/tables/build/BuildLineTable.tsx:498 +msgid "Deallocate all untracked stock for this build order" +msgstr "Desalocar todo estoque não rastreado para esta ordem de compilação" + +#: src/tables/build/BuildLineTable.tsx:500 +msgid "Deallocate stock from the selected line item" +msgstr "Desalocar estoque do item de linha selecionado" + +#: src/tables/build/BuildLineTable.tsx:504 +msgid "Stock has been deallocated" +msgstr "O estoque foi distribuído" + +#: src/tables/build/BuildLineTable.tsx:589 msgid "Order Stock" msgstr "Pedir estoque" -#: src/tables/build/BuildLineTable.tsx:312 +#: src/tables/build/BuildLineTable.tsx:596 msgid "Build Stock" msgstr "Estoque de Produção" -#: src/tables/build/BuildOrderTable.tsx:111 -msgid "Show active orders" -msgstr "Mostrar pedidos ativos" +#: src/tables/build/BuildLineTable.tsx:610 +msgid "View Part" +msgstr "" #: src/tables/build/BuildOrderTable.tsx:116 -msgid "Cascade" -msgstr "" +#~ msgid "Cascade" +#~ msgstr "Cascade" #: src/tables/build/BuildOrderTable.tsx:117 -msgid "Display recursive child orders" -msgstr "" +#~ msgid "Display recursive child orders" +#~ msgstr "Display recursive child orders" -#: src/tables/build/BuildOrderTable.tsx:123 -#: src/tables/part/PartPurchaseOrdersTable.tsx:126 -#: src/tables/purchasing/PurchaseOrderTable.tsx:56 -#: src/tables/sales/ReturnOrderTable.tsx:47 -#: src/tables/sales/SalesOrderTable.tsx:54 +#: src/tables/build/BuildOrderTable.tsx:121 +msgid "Show outstanding orders" +msgstr "Mostrar pedidos pendentes" + +#: src/tables/build/BuildOrderTable.tsx:121 +#~ msgid "Show active orders" +#~ msgstr "Show active orders" + +#: src/tables/build/BuildOrderTable.tsx:122 +#~ msgid "Show overdue status" +#~ msgstr "Show overdue status" + +#: src/tables/build/BuildOrderTable.tsx:126 +#: src/tables/part/PartPurchaseOrdersTable.tsx:132 +#: src/tables/purchasing/PurchaseOrderTable.tsx:59 +#: src/tables/sales/ReturnOrderTable.tsx:57 +#: src/tables/sales/SalesOrderTable.tsx:57 msgid "Filter by order status" msgstr "Filtrar por estado do pedido" -#: src/tables/build/BuildOrderTable.tsx:130 -msgid "Show overdue status" -msgstr "Mostrar estados atrasados" - -#: src/tables/build/BuildOrderTable.tsx:141 -#: src/tables/purchasing/PurchaseOrderTable.tsx:65 -#: src/tables/sales/ReturnOrderTable.tsx:56 -#: src/tables/sales/SalesOrderTable.tsx:63 -msgid "Filter by project code" -msgstr "" - -#: src/tables/build/BuildOrderTable.tsx:146 +#: src/tables/build/BuildOrderTable.tsx:136 #: src/tables/purchasing/PurchaseOrderTable.tsx:70 -#: src/tables/sales/ReturnOrderTable.tsx:61 +#: src/tables/sales/ReturnOrderTable.tsx:68 #: src/tables/sales/SalesOrderTable.tsx:68 -msgid "Has Project Code" -msgstr "" +msgid "Filter by project code" +msgstr "Filtrar por código de projeto" -#: src/tables/build/BuildOrderTable.tsx:147 +#: src/tables/build/BuildOrderTable.tsx:139 #: src/tables/purchasing/PurchaseOrderTable.tsx:71 #: src/tables/sales/ReturnOrderTable.tsx:62 #: src/tables/sales/SalesOrderTable.tsx:69 -msgid "Filter by whether the purchase order has a project code" -msgstr "" +#~ msgid "Filter by whether the purchase order has a project code" +#~ msgstr "Filter by whether the purchase order has a project code" -#: src/tables/build/BuildOrderTable.tsx:152 +#: src/tables/build/BuildOrderTable.tsx:143 msgid "Filter by user who issued this order" -msgstr "" +msgstr "Filtrar por usuário que emitiu este pedido" -#: src/tables/build/BuildOrderTable.tsx:158 -#: src/tables/purchasing/PurchaseOrderTable.tsx:76 -#: src/tables/sales/ReturnOrderTable.tsx:67 -#: src/tables/sales/SalesOrderTable.tsx:74 +#: src/tables/build/BuildOrderTable.tsx:149 +#: src/tables/purchasing/PurchaseOrderTable.tsx:77 +#: src/tables/sales/ReturnOrderTable.tsx:75 +#: src/tables/sales/SalesOrderTable.tsx:75 msgid "Filter by responsible owner" -msgstr "" +msgstr "Filtrar pelo proprietário responsável" -#: src/tables/build/BuildOrderTestTable.tsx:75 -#: src/tables/build/BuildOrderTestTable.tsx:111 -#: src/tables/stock/StockItemTestResultTable.tsx:257 -#: src/tables/stock/StockItemTestResultTable.tsx:329 -#: src/tables/stock/StockItemTestResultTable.tsx:384 +#: src/tables/build/BuildOrderTestTable.tsx:76 +#: src/tables/build/BuildOrderTestTable.tsx:112 +#: src/tables/stock/StockItemTestResultTable.tsx:275 +#: src/tables/stock/StockItemTestResultTable.tsx:347 +#: src/tables/stock/StockItemTestResultTable.tsx:403 msgid "Add Test Result" -msgstr "" +msgstr "Adicionar Resultado de Teste" -#: src/tables/build/BuildOrderTestTable.tsx:82 -#: src/tables/stock/StockItemTestResultTable.tsx:259 +#: src/tables/build/BuildOrderTestTable.tsx:83 +#: src/tables/stock/StockItemTestResultTable.tsx:277 msgid "Test result added" -msgstr "" +msgstr "Resultado do teste adicionado" -#: src/tables/build/BuildOrderTestTable.tsx:110 -#: src/tables/stock/StockItemTestResultTable.tsx:174 +#: src/tables/build/BuildOrderTestTable.tsx:111 +#: src/tables/stock/StockItemTestResultTable.tsx:180 msgid "No Result" -msgstr "" +msgstr "Nenhum resultado" -#: src/tables/build/BuildOrderTestTable.tsx:220 +#: src/tables/build/BuildOrderTestTable.tsx:221 msgid "Show build outputs currently in production" +msgstr "Mostrar saídas de compilação atualmente em produção" + +#: src/tables/build/BuildOutputTable.tsx:76 +msgid "Build Output Stock Allocation" msgstr "" #: src/tables/build/BuildOutputTable.tsx:161 #~ msgid "Delete build output" #~ msgstr "Delete build output" -#: src/tables/build/BuildOutputTable.tsx:173 -#: src/tables/build/BuildOutputTable.tsx:211 +#: src/tables/build/BuildOutputTable.tsx:258 +#: src/tables/build/BuildOutputTable.tsx:374 msgid "Add Build Output" +msgstr "Adicionar saída da compilação" + +#: src/tables/build/BuildOutputTable.tsx:304 +#~ msgid "Edit build output" +#~ msgstr "Edit build output" + +#: src/tables/build/BuildOutputTable.tsx:306 +#: src/tables/build/BuildOutputTable.tsx:417 +msgid "Edit Build Output" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:216 +#: src/tables/build/BuildOutputTable.tsx:321 +msgid "This action will deallocate all stock from the selected build output" +msgstr "" + +#: src/tables/build/BuildOutputTable.tsx:341 msgid "Complete selected outputs" -msgstr "" +msgstr "Concluir as saídas selecionadas" -#: src/tables/build/BuildOutputTable.tsx:226 +#: src/tables/build/BuildOutputTable.tsx:352 msgid "Scrap selected outputs" -msgstr "" +msgstr "Sucatear saídas selecionadas" -#: src/tables/build/BuildOutputTable.tsx:236 +#: src/tables/build/BuildOutputTable.tsx:363 msgid "Cancel selected outputs" -msgstr "" +msgstr "Cancelar saídas selecionadas" -#: src/tables/build/BuildOutputTable.tsx:252 +#: src/tables/build/BuildOutputTable.tsx:385 msgid "Allocate" -msgstr "" +msgstr "Alocar" -#: src/tables/build/BuildOutputTable.tsx:253 +#: src/tables/build/BuildOutputTable.tsx:386 msgid "Allocate stock to build output" -msgstr "" +msgstr "Desalocar estoque da saída de produção" -#: src/tables/build/BuildOutputTable.tsx:259 +#: src/tables/build/BuildOutputTable.tsx:396 msgid "Deallocate" -msgstr "" +msgstr "Desalocar" -#: src/tables/build/BuildOutputTable.tsx:260 +#: src/tables/build/BuildOutputTable.tsx:397 msgid "Deallocate stock from build output" -msgstr "" +msgstr "Desalocar estoque da saída de produção" -#: src/tables/build/BuildOutputTable.tsx:267 +#: src/tables/build/BuildOutputTable.tsx:408 msgid "Complete build output" -msgstr "" +msgstr "Concluir saída de produção" -#: src/tables/build/BuildOutputTable.tsx:276 +#: src/tables/build/BuildOutputTable.tsx:424 msgid "Scrap" -msgstr "" +msgstr "Sucata" -#: src/tables/build/BuildOutputTable.tsx:277 +#: src/tables/build/BuildOutputTable.tsx:425 msgid "Scrap build output" -msgstr "" +msgstr "Sucatear saída de produção" -#: src/tables/build/BuildOutputTable.tsx:280 -#~ msgid "Allocated Items" -#~ msgstr "Allocated Items" - -#: src/tables/build/BuildOutputTable.tsx:287 +#: src/tables/build/BuildOutputTable.tsx:435 msgid "Cancel build output" -msgstr "" +msgstr "Cancelar Saídas de Produção" -#: src/tables/build/BuildOutputTable.tsx:325 -msgid "Batch" -msgstr "" - -#: src/tables/build/BuildOutputTable.tsx:340 +#: src/tables/build/BuildOutputTable.tsx:488 msgid "Allocated Lines" -msgstr "" +msgstr "Linhas Alocadas" -#: src/tables/build/BuildOutputTable.tsx:355 +#: src/tables/build/BuildOutputTable.tsx:503 msgid "Required Tests" -msgstr "" +msgstr "Testes Obrigatórios" -#: src/tables/company/AddressTable.tsx:121 -#: src/tables/company/AddressTable.tsx:185 +#: src/tables/company/AddressTable.tsx:118 +#: src/tables/company/AddressTable.tsx:183 msgid "Add Address" msgstr "Adicionar endereço" -#: src/tables/company/AddressTable.tsx:126 +#: src/tables/company/AddressTable.tsx:123 msgid "Address created" msgstr "Endereço criado" -#: src/tables/company/AddressTable.tsx:135 +#: src/tables/company/AddressTable.tsx:132 msgid "Edit Address" msgstr "Editar o Endereço" -#: src/tables/company/AddressTable.tsx:143 +#: src/tables/company/AddressTable.tsx:140 msgid "Delete Address" msgstr "Excluir Endereço" -#: src/tables/company/AddressTable.tsx:144 +#: src/tables/company/AddressTable.tsx:141 msgid "Are you sure you want to delete this address?" msgstr "Tem a certeza de que quer apagar esta endereço?" @@ -6130,26 +7269,26 @@ msgstr "Tem a certeza de que quer apagar esta endereço?" #~ msgid "New Company" #~ msgstr "New Company" -#: src/tables/company/CompanyTable.tsx:74 -#: src/tables/company/CompanyTable.tsx:123 +#: src/tables/company/CompanyTable.tsx:75 +#: src/tables/company/CompanyTable.tsx:125 msgid "Add Company" msgstr "Adicionar Empresa" -#: src/tables/company/CompanyTable.tsx:96 +#: src/tables/company/CompanyTable.tsx:97 msgid "Show active companies" -msgstr "" +msgstr "Mostrar empresas ativas" -#: src/tables/company/CompanyTable.tsx:101 +#: src/tables/company/CompanyTable.tsx:102 msgid "Show companies which are suppliers" -msgstr "" +msgstr "Mostrar empresas que são fornecedores" -#: src/tables/company/CompanyTable.tsx:106 +#: src/tables/company/CompanyTable.tsx:107 msgid "Show companies which are manufacturers" -msgstr "" +msgstr "Mostrar empresas que são fabricantes" -#: src/tables/company/CompanyTable.tsx:111 +#: src/tables/company/CompanyTable.tsx:112 msgid "Show companies which are customers" -msgstr "" +msgstr "Mostrar empresas que são clientes" #: src/tables/company/ContactTable.tsx:71 msgid "Edit Contact" @@ -6163,267 +7302,292 @@ msgstr "Adicionar Contato" msgid "Delete Contact" msgstr "Excluir Contato" -#: src/tables/company/ContactTable.tsx:129 +#: src/tables/company/ContactTable.tsx:130 msgid "Add contact" msgstr "Adicionar contato" -#: src/tables/general/AttachmentTable.tsx:130 +#: src/tables/general/AttachmentTable.tsx:135 msgid "File uploaded" msgstr "Arquivo enviado" -#: src/tables/general/AttachmentTable.tsx:131 +#: src/tables/general/AttachmentTable.tsx:136 msgid "File {0} uploaded successfully" msgstr "Arquivo {0} carregado com sucesso" -#: src/tables/general/AttachmentTable.tsx:142 +#: src/tables/general/AttachmentTable.tsx:147 msgid "Upload Error" msgstr "Erro no carregamento" -#: src/tables/general/AttachmentTable.tsx:143 +#: src/tables/general/AttachmentTable.tsx:148 msgid "File could not be uploaded" msgstr "Arquivo não pode ser carregado" -#: src/tables/general/AttachmentTable.tsx:191 +#: src/tables/general/AttachmentTable.tsx:196 msgid "Upload Attachment" -msgstr "" +msgstr "Carregar Anexo" -#: src/tables/general/AttachmentTable.tsx:201 +#: src/tables/general/AttachmentTable.tsx:206 msgid "Edit Attachment" -msgstr "" +msgstr "Editar Anexo" -#: src/tables/general/AttachmentTable.tsx:215 +#: src/tables/general/AttachmentTable.tsx:220 msgid "Delete Attachment" msgstr "Excluir Anexo" -#: src/tables/general/AttachmentTable.tsx:225 -msgid "Is Link" -msgstr "" - -#: src/tables/general/AttachmentTable.tsx:226 -msgid "Show link attachments" -msgstr "" - #: src/tables/general/AttachmentTable.tsx:230 -msgid "Is File" -msgstr "" +msgid "Is Link" +msgstr "É um link" #: src/tables/general/AttachmentTable.tsx:231 -msgid "Show file attachments" -msgstr "" +msgid "Show link attachments" +msgstr "Mostrar anexos de links" -#: src/tables/general/AttachmentTable.tsx:240 +#: src/tables/general/AttachmentTable.tsx:235 +msgid "Is File" +msgstr "É um arquivo" + +#: src/tables/general/AttachmentTable.tsx:236 +msgid "Show file attachments" +msgstr "Mostrar arquivos anexados" + +#: src/tables/general/AttachmentTable.tsx:245 msgid "Add attachment" msgstr "Adicionar anexo" -#: src/tables/general/AttachmentTable.tsx:251 -msgid "Add external link" -msgstr "Adicionar um link externo" - #: src/tables/general/AttachmentTable.tsx:254 #~ msgid "Upload attachment" #~ msgstr "Upload attachment" -#: src/tables/general/AttachmentTable.tsx:299 +#: src/tables/general/AttachmentTable.tsx:256 +msgid "Add external link" +msgstr "Adicionar um link externo" + +#: src/tables/general/AttachmentTable.tsx:304 msgid "No attachments found" msgstr "Nenhum anexo encontrado" -#: src/tables/general/AttachmentTable.tsx:337 +#: src/tables/general/AttachmentTable.tsx:343 msgid "Drag attachment file here to upload" -msgstr "" +msgstr "Arraste o arquivo de anexo aqui para enviar" #: src/tables/general/ExtraLineItemTable.tsx:86 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:251 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:60 -#: src/tables/sales/SalesOrderLineItemTable.tsx:196 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:263 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:362 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:72 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:168 +#: src/tables/sales/SalesOrderLineItemTable.tsx:206 +#: src/tables/sales/SalesOrderLineItemTable.tsx:291 msgid "Add Line Item" msgstr "Adicionar Item de Linha" #: src/tables/general/ExtraLineItemTable.tsx:98 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:271 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:72 -#: src/tables/sales/SalesOrderLineItemTable.tsx:214 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:283 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:84 +#: src/tables/sales/SalesOrderLineItemTable.tsx:224 msgid "Edit Line Item" msgstr "Editar Item de Linha" #: src/tables/general/ExtraLineItemTable.tsx:106 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:279 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:80 -#: src/tables/sales/SalesOrderLineItemTable.tsx:222 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:291 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:92 +#: src/tables/sales/SalesOrderLineItemTable.tsx:232 msgid "Delete Line Item" msgstr "Excluir Item de Linha" -#: src/tables/general/ExtraLineItemTable.tsx:142 +#: src/tables/general/ExtraLineItemTable.tsx:143 msgid "Add Extra Line Item" -msgstr "" +msgstr "Adicionar Item de Linha Extra" #: src/tables/machine/MachineListTable.tsx:202 msgid "Machine restarted" -msgstr "" +msgstr "Máquina reiniciada" #: src/tables/machine/MachineListTable.tsx:212 -#: src/tables/machine/MachineListTable.tsx:263 +#: src/tables/machine/MachineListTable.tsx:261 msgid "Edit machine" -msgstr "" +msgstr "Editar máquina" #: src/tables/machine/MachineListTable.tsx:226 -#: src/tables/machine/MachineListTable.tsx:267 +#: src/tables/machine/MachineListTable.tsx:265 msgid "Delete machine" -msgstr "" +msgstr "Apagar máquina" #: src/tables/machine/MachineListTable.tsx:227 msgid "Machine successfully deleted." -msgstr "" +msgstr "Máquina apagada com sucesso" #: src/tables/machine/MachineListTable.tsx:231 msgid "Are you sure you want to remove the machine \"{0}\"?" -msgstr "" +msgstr "Você tem certeza de que quer remover a máquina \"{0}\"?" -#: src/tables/machine/MachineListTable.tsx:255 -#: src/tables/machine/MachineListTable.tsx:432 +#: src/tables/machine/MachineListTable.tsx:254 +#: src/tables/machine/MachineListTable.tsx:442 msgid "Restart required" -msgstr "" +msgstr "É necessário reiniciar" -#: src/tables/machine/MachineListTable.tsx:259 +#: src/tables/machine/MachineListTable.tsx:258 msgid "Machine Actions" -msgstr "" +msgstr "Ações da Máquina" + +#: src/tables/machine/MachineListTable.tsx:270 +msgid "Restart" +msgstr "Reiniciar" #: src/tables/machine/MachineListTable.tsx:272 -msgid "Restart" -msgstr "" +msgid "Restart machine" +msgstr "Reiniciar máquina" #: src/tables/machine/MachineListTable.tsx:274 -msgid "Restart machine" -msgstr "" - -#: src/tables/machine/MachineListTable.tsx:276 msgid "manual restart required" -msgstr "" +msgstr "manual para recomeçar requirido" + +#: src/tables/machine/MachineListTable.tsx:291 +#~ msgid "Machine information" +#~ msgstr "Machine information" #: src/tables/machine/MachineListTable.tsx:292 -msgid "Machine information" +msgid "Machine Information" msgstr "" -#: src/tables/machine/MachineListTable.tsx:303 -#: src/tables/machine/MachineListTable.tsx:599 +#: src/tables/machine/MachineListTable.tsx:302 +#: src/tables/machine/MachineListTable.tsx:610 msgid "Machine Type" -msgstr "" +msgstr "Tipo de máquina" -#: src/tables/machine/MachineListTable.tsx:316 +#: src/tables/machine/MachineListTable.tsx:315 msgid "Machine Driver" -msgstr "" +msgstr "Driver da Máquina" -#: src/tables/machine/MachineListTable.tsx:329 +#: src/tables/machine/MachineListTable.tsx:330 msgid "Initialized" -msgstr "" +msgstr "Inicializado" -#: src/tables/machine/MachineListTable.tsx:350 -#: src/tables/machine/MachineTypeTable.tsx:261 -msgid "Errors" -msgstr "" - -#: src/tables/machine/MachineListTable.tsx:358 -#: src/tables/machine/MachineTypeTable.tsx:269 +#: src/tables/machine/MachineListTable.tsx:359 +#: src/tables/machine/MachineTypeTable.tsx:290 msgid "No errors reported" -msgstr "" +msgstr "Sem erros reportados" #: src/tables/machine/MachineListTable.tsx:378 msgid "Machine Settings" -msgstr "" +msgstr "Configurações da máquina" -#: src/tables/machine/MachineListTable.tsx:389 +#: src/tables/machine/MachineListTable.tsx:394 msgid "Driver Settings" -msgstr "" +msgstr "Configurações do Driver" #: src/tables/machine/MachineListTable.tsx:494 #~ msgid "Create machine" #~ msgstr "Create machine" -#: src/tables/machine/MachineListTable.tsx:506 +#: src/tables/machine/MachineListTable.tsx:516 +#: src/tables/machine/MachineListTable.tsx:558 msgid "Add machine" -msgstr "" +msgstr "Adicionar máquina" #: src/tables/machine/MachineListTable.tsx:561 -msgid "Machine detail" +#~ msgid "Machine detail" +#~ msgstr "Machine detail" + +#: src/tables/machine/MachineListTable.tsx:572 +msgid "Machine Detail" msgstr "" -#: src/tables/machine/MachineListTable.tsx:608 +#: src/tables/machine/MachineListTable.tsx:619 msgid "Driver" -msgstr "" +msgstr "Driver" -#: src/tables/machine/MachineTypeTable.tsx:73 +#: src/tables/machine/MachineTypeTable.tsx:78 msgid "Builtin driver" +msgstr "Driver integrado" + +#: src/tables/machine/MachineTypeTable.tsx:96 +msgid "Not Found" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:89 +#: src/tables/machine/MachineTypeTable.tsx:99 msgid "Machine type not found." +msgstr "Tipo de máquina não encontrado." + +#: src/tables/machine/MachineTypeTable.tsx:99 +#~ msgid "Machine type information" +#~ msgstr "Machine type information" + +#: src/tables/machine/MachineTypeTable.tsx:109 +msgid "Machine Type Information" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:97 -msgid "Machine type information" -msgstr "" - -#: src/tables/machine/MachineTypeTable.tsx:110 -#: src/tables/machine/MachineTypeTable.tsx:217 +#: src/tables/machine/MachineTypeTable.tsx:124 +#: src/tables/machine/MachineTypeTable.tsx:238 msgid "Slug" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:118 -#: src/tables/machine/MachineTypeTable.tsx:238 -msgid "Provider plugin" -msgstr "" - -#: src/tables/machine/MachineTypeTable.tsx:130 -#: src/tables/machine/MachineTypeTable.tsx:250 -msgid "Provider file" -msgstr "" - #: src/tables/machine/MachineTypeTable.tsx:135 -#: src/tables/machine/MachineTypeTable.tsx:255 -#: src/tables/plugin/PluginListTable.tsx:180 -#: src/tables/plugin/PluginListTable.tsx:568 -msgid "Builtin" -msgstr "Embutido" +#: src/tables/machine/MachineTypeTable.tsx:259 +msgid "Provider plugin" +msgstr "Plugin de provedor" -#: src/tables/machine/MachineTypeTable.tsx:146 -msgid "Available drivers" +#: src/tables/machine/MachineTypeTable.tsx:147 +#: src/tables/machine/MachineTypeTable.tsx:271 +msgid "Provider file" +msgstr "Arquivo do provedor" + +#: src/tables/machine/MachineTypeTable.tsx:148 +#~ msgid "Available drivers" +#~ msgstr "Available drivers" + +#: src/tables/machine/MachineTypeTable.tsx:162 +msgid "Available Drivers" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:196 +#: src/tables/machine/MachineTypeTable.tsx:217 msgid "Machine driver not found." -msgstr "" +msgstr "Tipo de máquina não encontrado." -#: src/tables/machine/MachineTypeTable.tsx:204 +#: src/tables/machine/MachineTypeTable.tsx:225 msgid "Machine driver information" -msgstr "" +msgstr "Informação do driver da máquina" -#: src/tables/machine/MachineTypeTable.tsx:224 +#: src/tables/machine/MachineTypeTable.tsx:245 msgid "Machine type" -msgstr "" +msgstr "Tipo de máquina" -#: src/tables/machine/MachineTypeTable.tsx:327 +#: src/tables/machine/MachineTypeTable.tsx:338 +#~ msgid "Machine type detail" +#~ msgstr "Machine type detail" + +#: src/tables/machine/MachineTypeTable.tsx:348 msgid "Builtin type" +msgstr "Tipo integrado" + +#: src/tables/machine/MachineTypeTable.tsx:348 +#~ msgid "Machine driver detail" +#~ msgstr "Machine driver detail" + +#: src/tables/machine/MachineTypeTable.tsx:357 +msgid "Machine Type Detail" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:336 -msgid "Machine type detail" -msgstr "" - -#: src/tables/machine/MachineTypeTable.tsx:346 -msgid "Machine driver detail" +#: src/tables/machine/MachineTypeTable.tsx:367 +msgid "Machine Driver Detail" msgstr "" #: src/tables/notifications/NotificationsTable.tsx:26 msgid "Age" msgstr "Idade" +#: src/tables/notifications/NotificationsTable.tsx:36 +msgid "Notification" +msgstr "Notificação" + #: src/tables/notifications/NotificationsTable.tsx:40 #: src/tables/plugin/PluginErrorTable.tsx:37 +#: src/tables/settings/ErrorTable.tsx:50 msgid "Message" msgstr "Mensagem" #: src/tables/part/ParametricPartTable.tsx:74 msgid "Click to edit" -msgstr "" +msgstr "Clique para editar" #: src/tables/part/ParametricPartTable.tsx:82 #~ msgid "Edit parameter" @@ -6431,7 +7595,7 @@ msgstr "" #: src/tables/part/ParametricPartTable.tsx:127 msgid "Add Part Parameter" -msgstr "" +msgstr "Adicionar parâmetro de peça" #: src/tables/part/ParametricPartTable.tsx:141 #: src/tables/part/PartParameterTable.tsx:130 @@ -6441,62 +7605,61 @@ msgstr "Editar Parâmetro da Peça" #: src/tables/part/ParametricPartTable.tsx:224 msgid "Show active parts" -msgstr "" +msgstr "Mostrar partes ativas" #: src/tables/part/ParametricPartTable.tsx:229 msgid "Show locked parts" -msgstr "" +msgstr "Mostrar partes bloqueadas" #: src/tables/part/ParametricPartTable.tsx:234 msgid "Show assembly parts" +msgstr "Mostrar peças de montagem" + +#: src/tables/part/PartCategoryTable.tsx:48 +msgid "You are subscribed to notifications for this category" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:68 +#: src/tables/part/PartCategoryTable.tsx:80 #: src/tables/part/PartTable.tsx:196 msgid "Include Subcategories" msgstr "Incluir Subcategorias" -#: src/tables/part/PartCategoryTable.tsx:69 +#: src/tables/part/PartCategoryTable.tsx:81 msgid "Include subcategories in results" msgstr "Incluir subcategorias nos resultados" -#: src/tables/part/PartCategoryTable.tsx:74 +#: src/tables/part/PartCategoryTable.tsx:86 msgid "Show structural categories" msgstr "Mostrar categorias estruturais" -#: src/tables/part/PartCategoryTable.tsx:78 -#: src/tables/part/PartTable.tsx:294 -msgid "Subscribed" -msgstr "" - -#: src/tables/part/PartCategoryTable.tsx:79 +#: src/tables/part/PartCategoryTable.tsx:91 msgid "Show categories to which the user is subscribed" -msgstr "" +msgstr "Mostrar categorias nas quais o usuário está inscrito" -#: src/tables/part/PartCategoryTable.tsx:86 +#: src/tables/part/PartCategoryTable.tsx:100 msgid "New Part Category" msgstr "Nova Categoria de Peça" -#: src/tables/part/PartCategoryTable.tsx:112 +#: src/tables/part/PartCategoryTable.tsx:129 msgid "Add Part Category" msgstr "Adicionar Categoria de Peça" #: src/tables/part/PartCategoryTemplateTable.tsx:38 #: src/tables/part/PartCategoryTemplateTable.tsx:131 msgid "Add Category Parameter" -msgstr "" +msgstr "Adicionar parâmetro de categoria" #: src/tables/part/PartCategoryTemplateTable.tsx:46 msgid "Edit Category Parameter" -msgstr "" +msgstr "Editar parâmetro de categoria" #: src/tables/part/PartCategoryTemplateTable.tsx:54 msgid "Delete Category Parameter" -msgstr "" +msgstr "Deletar parâmetro de categoria" #: src/tables/part/PartCategoryTemplateTable.tsx:76 msgid "Parameter Template" -msgstr "" +msgstr "Template de parâmetro" #: src/tables/part/PartCategoryTemplateTable.tsx:93 #~ msgid "[{0}]" @@ -6504,7 +7667,7 @@ msgstr "" #: src/tables/part/PartParameterTable.tsx:97 msgid "Internal Units" -msgstr "" +msgstr "Unidades Internas" #: src/tables/part/PartParameterTable.tsx:114 msgid "New Part Parameter" @@ -6521,12 +7684,7 @@ msgstr "Adiciona parâmetro" #: src/tables/part/PartParameterTable.tsx:198 msgid "Part parameters cannot be edited, as the part is locked" -msgstr "" - -#: src/tables/part/PartParameterTable.tsx:212 -#: src/tables/stock/StockItemTable.tsx:335 -msgid "Include Variants" -msgstr "Incluir Variantes" +msgstr "Os parâmetros da peça não podem ser editados, pois a peça está bloqueada" #: src/tables/part/PartParameterTemplateTable.tsx:31 msgid "Checkbox" @@ -6554,6 +7712,7 @@ msgid "Show templates with units" msgstr "Mostrar modelos com unidades" #: src/tables/part/PartParameterTemplateTable.tsx:85 +#: src/tables/part/PartParameterTemplateTable.tsx:141 msgid "Add Parameter Template" msgstr "Adicionar Modelo de Parâmetro" @@ -6566,25 +7725,21 @@ msgid "Delete Parameter Template" msgstr "Excluir Modelo de Parâmetro" #: src/tables/part/PartParameterTemplateTable.tsx:141 -msgid "Add parameter template" -msgstr "Adicionar modelo de parâmetro" +#~ msgid "Add parameter template" +#~ msgstr "Add parameter template" -#: src/tables/part/PartPurchaseOrdersTable.tsx:77 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:162 +#: src/tables/part/PartPurchaseOrdersTable.tsx:78 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:168 msgid "Total Quantity" msgstr "Quantidade Total" -#: src/tables/part/PartPurchaseOrdersTable.tsx:115 -msgid "Pending" -msgstr "" - -#: src/tables/part/PartPurchaseOrdersTable.tsx:116 +#: src/tables/part/PartPurchaseOrdersTable.tsx:122 msgid "Show pending orders" -msgstr "" +msgstr "Mostrar pedidos pendentes" -#: src/tables/part/PartPurchaseOrdersTable.tsx:121 +#: src/tables/part/PartPurchaseOrdersTable.tsx:127 msgid "Show received items" -msgstr "" +msgstr "Mostrar itens recebidos" #: src/tables/part/PartTable.tsx:77 msgid "Minimum stock" @@ -6596,7 +7751,7 @@ msgstr "Filtrar por peça em estado ativo" #: src/tables/part/PartTable.tsx:185 msgid "Filter by part locked status" -msgstr "" +msgstr "Filtrar por status de peça bloqueada" #: src/tables/part/PartTable.tsx:191 msgid "Filter by assembly attribute" @@ -6612,7 +7767,7 @@ msgstr "Filtrar por atributo do componente" #: src/tables/part/PartTable.tsx:209 msgid "Filter by testable attribute" -msgstr "" +msgstr "Filtrar por atributo testável" #: src/tables/part/PartTable.tsx:215 msgid "Filter by trackable attribute" @@ -6674,86 +7829,77 @@ msgstr "Não é Virtual" #: src/tables/part/PartTable.tsx:266 msgid "Is Template" -msgstr "" +msgstr "É um modelo" #: src/tables/part/PartTable.tsx:267 msgid "Filter by parts which are templates" -msgstr "" +msgstr "Filtrar por partes que são modelos" #: src/tables/part/PartTable.tsx:272 msgid "Is Revision" -msgstr "" +msgstr "É Revisão" #: src/tables/part/PartTable.tsx:273 msgid "Filter by parts which are revisions" -msgstr "" +msgstr "Filtrar por partes que estão revisões" #: src/tables/part/PartTable.tsx:277 msgid "Has Revisions" -msgstr "" +msgstr "Possui revisão" #: src/tables/part/PartTable.tsx:278 msgid "Filter by parts which have revisions" -msgstr "" +msgstr "Filtrar por partes que tenham revisões" #: src/tables/part/PartTable.tsx:283 msgid "Filter by parts which have pricing information" -msgstr "" +msgstr "Filtrar por peças que tenham informações de preços" #: src/tables/part/PartTable.tsx:289 msgid "Filter by parts which have available stock" -msgstr "" +msgstr "Filtrar por peças que tenham estoque disponível" #: src/tables/part/PartTable.tsx:295 msgid "Filter by parts to which the user is subscribed" -msgstr "" +msgstr "Filtrar por partes em que o usuário está inscrito" #: src/tables/part/PartTable.tsx:300 msgid "Has Stocktake" -msgstr "" +msgstr "Tem Estoque" #: src/tables/part/PartTable.tsx:301 msgid "Filter by parts which have stocktake information" -msgstr "" +msgstr "Filtrar por peças que tenham informações sobre estoques" #: src/tables/part/PartTestTemplateTable.tsx:50 msgid "Test is defined for a parent template part" -msgstr "" +msgstr "O teste é definido para uma parte do modelo pai" #: src/tables/part/PartTestTemplateTable.tsx:64 msgid "Template Details" -msgstr "" +msgstr "Detalhes do modelo" #: src/tables/part/PartTestTemplateTable.tsx:74 msgid "Results" -msgstr "" - -#: src/tables/part/PartTestTemplateTable.tsx:76 -msgid "No Results" -msgstr "" - -#: src/tables/part/PartTestTemplateTable.tsx:106 -#: src/tables/stock/StockItemTestResultTable.tsx:365 -msgid "Required" -msgstr "" +msgstr "Resultados" #: src/tables/part/PartTestTemplateTable.tsx:107 msgid "Show required tests" msgstr "Mostrar testes necessários" #: src/tables/part/PartTestTemplateTable.tsx:111 -#: src/tables/settings/TemplateTable.tsx:167 -#: src/tables/settings/TemplateTable.tsx:283 +#: src/tables/settings/TemplateTable.tsx:247 +#: src/tables/settings/TemplateTable.tsx:363 msgid "Enabled" -msgstr "" +msgstr "Ativado" #: src/tables/part/PartTestTemplateTable.tsx:112 msgid "Show enabled tests" -msgstr "" +msgstr "Mostrar testes habilitados" #: src/tables/part/PartTestTemplateTable.tsx:116 msgid "Requires Value" -msgstr "" +msgstr "Requer Valor" #: src/tables/part/PartTestTemplateTable.tsx:117 msgid "Show tests that require a value" @@ -6761,7 +7907,7 @@ msgstr "Mostrar testes que exigem um valor" #: src/tables/part/PartTestTemplateTable.tsx:121 msgid "Requires Attachment" -msgstr "" +msgstr "Requer Anexo" #: src/tables/part/PartTestTemplateTable.tsx:122 msgid "Show tests that require an attachment" @@ -6769,22 +7915,22 @@ msgstr "Mostrar testes que exigem um anexo" #: src/tables/part/PartTestTemplateTable.tsx:126 msgid "Include Inherited" -msgstr "" +msgstr "Incluir Herdados" #: src/tables/part/PartTestTemplateTable.tsx:127 msgid "Show tests from inherited templates" -msgstr "" +msgstr "Mostrar testes de modelos herdados" #: src/tables/part/PartTestTemplateTable.tsx:131 msgid "Has Results" -msgstr "" +msgstr "Possui Resultados" #: src/tables/part/PartTestTemplateTable.tsx:132 msgid "Show tests which have recorded results" -msgstr "" +msgstr "Mostrar testes que tenham resultados gravados" #: src/tables/part/PartTestTemplateTable.tsx:154 -#: src/tables/part/PartTestTemplateTable.tsx:237 +#: src/tables/part/PartTestTemplateTable.tsx:238 msgid "Add Test Template" msgstr "Adicionar Modelo de Teste" @@ -6798,19 +7944,19 @@ msgstr "Excluir Modelo de Teste" #: src/tables/part/PartTestTemplateTable.tsx:183 msgid "This action cannot be reversed" -msgstr "" +msgstr "Esta ação não pode ser desfeita" #: src/tables/part/PartTestTemplateTable.tsx:185 msgid "Any tests results associated with this template will be deleted" -msgstr "" +msgstr "Quaisquer resultados de testes associados a este modelo serão excluídos" #: src/tables/part/PartTestTemplateTable.tsx:204 msgid "View Parent Part" -msgstr "" +msgstr "Visualizar parte pai" -#: src/tables/part/PartTestTemplateTable.tsx:257 +#: src/tables/part/PartTestTemplateTable.tsx:258 msgid "Part templates cannot be edited, as the part is locked" -msgstr "" +msgstr "Modelos de peça não podem ser editados, pois, a peça está bloqueada" #: src/tables/part/PartThumbTable.tsx:201 msgid "Select" @@ -6836,41 +7982,58 @@ msgstr "Mostrar variantes virtuais" msgid "Show trackable variants" msgstr "Mostrar variantes rastreáveis" -#: src/tables/part/RelatedPartTable.tsx:84 +#: src/tables/part/RelatedPartTable.tsx:86 +#: src/tables/part/RelatedPartTable.tsx:109 msgid "Add Related Part" msgstr "Adicionar Peça Relacionada" -#: src/tables/part/RelatedPartTable.tsx:99 +#: src/tables/part/RelatedPartTable.tsx:101 msgid "Delete Related Part" msgstr "Excluir Peça Relacionada" -#: src/tables/part/RelatedPartTable.tsx:106 -msgid "Add related part" -msgstr "Adicionar peça relacionada" +#: src/tables/part/RelatedPartTable.tsx:109 +#~ msgid "Add related part" +#~ msgstr "Add related part" #: src/tables/plugin/PluginErrorTable.tsx:29 msgid "Stage" msgstr "Fase" +#: src/tables/plugin/PluginListTable.tsx:42 +msgid "Plugin is active" +msgstr "Plugin está ativo" + +#: src/tables/plugin/PluginListTable.tsx:48 +msgid "Plugin is inactive" +msgstr "Plugin está inativo" + +#: src/tables/plugin/PluginListTable.tsx:55 +msgid "Plugin is not installed" +msgstr "Plugin não está instalado" + +#: src/tables/plugin/PluginListTable.tsx:76 +msgid "Plugin" +msgstr "Plugin" + #: src/tables/plugin/PluginListTable.tsx:95 -msgid "Plugin with key {pluginKey} not found" -msgstr "" +#~ msgid "Plugin with key {pluginKey} not found" +#~ msgstr "Plugin with key {pluginKey} not found" #: src/tables/plugin/PluginListTable.tsx:97 -msgid "An error occurred while fetching plugin details" -msgstr "Ocorreu um erro ao obter os detalhes do plugin" +#~ msgid "An error occurred while fetching plugin details" +#~ msgstr "An error occurred while fetching plugin details" + +#: src/tables/plugin/PluginListTable.tsx:109 +msgid "Description not available" +msgstr "Descrição não disponível" #: src/tables/plugin/PluginListTable.tsx:113 #~ msgid "Plugin with id {id} not found" #~ msgstr "Plugin with id {id} not found" #: src/tables/plugin/PluginListTable.tsx:122 -msgid "Plugin information" -msgstr "Informações do plugin" - -#: src/tables/plugin/PluginListTable.tsx:134 -msgid "Author" -msgstr "Autor" +#~ msgid "Plugin information" +#~ msgstr "Plugin information" #: src/tables/plugin/PluginListTable.tsx:134 #~ msgid "Plugin Actions" @@ -6881,79 +8044,124 @@ msgstr "Autor" #~ msgid "Edit plugin" #~ msgstr "Edit plugin" +#: src/tables/plugin/PluginListTable.tsx:144 +msgid "Confirm plugin activation" +msgstr "Confirmar ativação do plugin" + +#: src/tables/plugin/PluginListTable.tsx:145 +msgid "Confirm plugin deactivation" +msgstr "Confirmar desativação do plugin" + +#: src/tables/plugin/PluginListTable.tsx:150 +msgid "The selected plugin will be activated" +msgstr "A seguinte extensão está desativada" + +#: src/tables/plugin/PluginListTable.tsx:151 +msgid "The selected plugin will be deactivated" +msgstr "A seguinte extensão será desativada" + #: src/tables/plugin/PluginListTable.tsx:152 #: src/tables/plugin/PluginListTable.tsx:153 #~ msgid "Reload" #~ msgstr "Reload" -#: src/tables/plugin/PluginListTable.tsx:154 -msgid "Plugin is not active" -msgstr "" - #: src/tables/plugin/PluginListTable.tsx:163 -msgid "Package information" -msgstr "Informações do pacote" +#~ msgid "Package information" +#~ msgstr "Package information" #: src/tables/plugin/PluginListTable.tsx:169 -msgid "Package Name" +msgid "Deactivate" +msgstr "Desativar" + +#: src/tables/plugin/PluginListTable.tsx:183 +msgid "Activate" +msgstr "Ativar" + +#: src/tables/plugin/PluginListTable.tsx:184 +msgid "Activate selected plugin" msgstr "" -#: src/tables/plugin/PluginListTable.tsx:175 -msgid "Installation Path" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:185 -msgid "Package" +#: src/tables/plugin/PluginListTable.tsx:196 +msgid "Update selected plugin" msgstr "" #: src/tables/plugin/PluginListTable.tsx:197 -msgid "Plugin settings" -msgstr "Configurações do Plugin" +#~ msgid "Plugin settings" +#~ msgstr "Plugin settings" #: src/tables/plugin/PluginListTable.tsx:214 -msgid "Plugin is active" -msgstr "Plugin está ativo" +#: src/tables/stock/InstalledItemsTable.tsx:107 +msgid "Uninstall" +msgstr "Desinstalar" -#: src/tables/plugin/PluginListTable.tsx:220 -msgid "Plugin is inactive" -msgstr "Plugin está inativo" - -#: src/tables/plugin/PluginListTable.tsx:227 -msgid "Plugin is not installed" -msgstr "Plugin não está instalado" - -#: src/tables/plugin/PluginListTable.tsx:253 -msgid "Plugin" -msgstr "Plugin" - -#: src/tables/plugin/PluginListTable.tsx:287 -msgid "Description not available" -msgstr "Descrição não disponível" - -#: src/tables/plugin/PluginListTable.tsx:319 -msgid "Confirm plugin activation" -msgstr "Confirmar ativação do plugin" - -#: src/tables/plugin/PluginListTable.tsx:320 -msgid "Confirm plugin deactivation" -msgstr "Confirmar desativação do plugin" - -#: src/tables/plugin/PluginListTable.tsx:325 -msgid "The selected plugin will be activated" +#: src/tables/plugin/PluginListTable.tsx:215 +msgid "Uninstall selected plugin" msgstr "" -#: src/tables/plugin/PluginListTable.tsx:326 -msgid "The selected plugin will be deactivated" +#: src/tables/plugin/PluginListTable.tsx:233 +msgid "Delete selected plugin configuration" msgstr "" -#: src/tables/plugin/PluginListTable.tsx:334 +#: src/tables/plugin/PluginListTable.tsx:249 msgid "Activate Plugin" msgstr "Ativar Plugin" +#: src/tables/plugin/PluginListTable.tsx:270 +msgid "Install plugin" +msgstr "Instalar plugin" + +#: src/tables/plugin/PluginListTable.tsx:283 +msgid "Install" +msgstr "Instalar" + +#: src/tables/plugin/PluginListTable.tsx:284 +msgid "Plugin installed successfully" +msgstr "Plugin instalado com sucesso" + +#: src/tables/plugin/PluginListTable.tsx:289 +msgid "Uninstall Plugin" +msgstr "Desinstalar extensões" + +#: src/tables/plugin/PluginListTable.tsx:301 +msgid "Confirm plugin uninstall" +msgstr "Confirmar desinstalação de extensão" + +#: src/tables/plugin/PluginListTable.tsx:304 +msgid "The selected plugin will be uninstalled." +msgstr "A extensão selecionada será desinstalada." + +#: src/tables/plugin/PluginListTable.tsx:308 +#~ msgid "This action cannot be undone." +#~ msgstr "This action cannot be undone." + +#: src/tables/plugin/PluginListTable.tsx:309 +msgid "Plugin uninstalled successfully" +msgstr "Extensão desinstalada com sucesso" + +#: src/tables/plugin/PluginListTable.tsx:317 +msgid "Delete Plugin" +msgstr "Deletar extensão" + +#: src/tables/plugin/PluginListTable.tsx:318 +msgid "Deleting this plugin configuration will remove all associated settings and data. Are you sure you want to delete this plugin?" +msgstr "Excluindo esta configuração de extensão irá remover todas as configurações e dados associados. Tem certeza de que deseja excluir esta extensão?" + +#: src/tables/plugin/PluginListTable.tsx:331 +msgid "Plugins reloaded" +msgstr "Plugins recarregados" + +#: src/tables/plugin/PluginListTable.tsx:332 +msgid "Plugins were reloaded successfully" +msgstr "Plugins foram recarregados com sucesso" + #: src/tables/plugin/PluginListTable.tsx:338 #~ msgid "Deactivate Plugin" #~ msgstr "Deactivate Plugin" +#: src/tables/plugin/PluginListTable.tsx:350 +msgid "Reload Plugins" +msgstr "Recarregar plugins" + #: src/tables/plugin/PluginListTable.tsx:354 #~ msgid "The following plugin will be activated" #~ msgstr "The following plugin will be activated" @@ -6962,17 +8170,17 @@ msgstr "Ativar Plugin" #~ msgid "The following plugin will be deactivated" #~ msgstr "The following plugin will be deactivated" -#: src/tables/plugin/PluginListTable.tsx:362 -msgid "Deactivate" -msgstr "Desativar" +#: src/tables/plugin/PluginListTable.tsx:357 +msgid "Install Plugin" +msgstr "Instalar Plugin" #: src/tables/plugin/PluginListTable.tsx:366 #~ msgid "Confirm" #~ msgstr "Confirm" -#: src/tables/plugin/PluginListTable.tsx:373 -msgid "Activate" -msgstr "Ativar" +#: src/tables/plugin/PluginListTable.tsx:374 +msgid "Plugin Detail" +msgstr "Detalhes da extensão" #: src/tables/plugin/PluginListTable.tsx:376 #~ msgid "Activating plugin" @@ -6998,76 +8206,12 @@ msgstr "Ativar" #~ msgid "Error updating plugin" #~ msgstr "Error updating plugin" -#: src/tables/plugin/PluginListTable.tsx:406 -msgid "Uninstall" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:438 -msgid "Install plugin" -msgstr "Instalar plugin" - -#: src/tables/plugin/PluginListTable.tsx:451 -msgid "Install" -msgstr "Instalar" - -#: src/tables/plugin/PluginListTable.tsx:452 -msgid "Plugin installed successfully" -msgstr "Plugin instalado com sucesso" - -#: src/tables/plugin/PluginListTable.tsx:457 -msgid "Uninstall Plugin" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:469 -msgid "Confirm plugin uninstall" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:472 -msgid "The selected plugin will be uninstalled." -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:473 -msgid "This action cannot be undone." -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:477 -msgid "Plugin uninstalled successfully" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:484 -msgid "Delete Plugin" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:485 -msgid "Deleting this plugin configuration will remove all associated settings and data. Are you sure you want to delete this plugin?" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:498 -msgid "Plugins reloaded" -msgstr "Plugins recarregados" - -#: src/tables/plugin/PluginListTable.tsx:499 -msgid "Plugins were reloaded successfully" -msgstr "Plugins foram recarregados com sucesso" - -#: src/tables/plugin/PluginListTable.tsx:515 -msgid "Reload Plugins" -msgstr "Recarregar plugins" - -#: src/tables/plugin/PluginListTable.tsx:524 -msgid "Install Plugin" -msgstr "Instalar Plugin" - -#: src/tables/plugin/PluginListTable.tsx:544 -msgid "Plugin Detail" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:573 +#: src/tables/plugin/PluginListTable.tsx:411 msgid "Sample" msgstr "Amostra" -#: src/tables/plugin/PluginListTable.tsx:578 -#: src/tables/stock/StockItemTable.tsx:340 +#: src/tables/plugin/PluginListTable.tsx:416 +#: src/tables/stock/StockItemTable.tsx:344 msgid "Installed" msgstr "Instalado" @@ -7078,7 +8222,7 @@ msgstr "Instalado" #: src/tables/purchasing/ManufacturerPartParameterTable.tsx:59 #: src/tables/purchasing/ManufacturerPartParameterTable.tsx:108 msgid "Add Parameter" -msgstr "" +msgstr "Adicionar Parâmetro" #: src/tables/purchasing/ManufacturerPartParameterTable.tsx:60 #~ msgid "Parameter updated" @@ -7116,84 +8260,80 @@ msgstr "Excluir Parâmetro" #~ msgid "Are you sure you want to remove this manufacturer part?" #~ msgstr "Are you sure you want to remove this manufacturer part?" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:102 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:339 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:103 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:356 msgid "Import Line Items" -msgstr "" +msgstr "Importar Itens da Linha" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:135 -msgid "Part Description" -msgstr "Descrição da Peça" - -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:201 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:207 msgid "Supplier Code" msgstr "Código do Fornecedor" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:208 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:214 msgid "Supplier Link" msgstr "Link do Fornecedor" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:215 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:220 msgid "Manufacturer Code" msgstr "Código do Fabricante" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:229 -msgid "Destination" -msgstr "Destino" +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:248 +msgid "Show line items which have been received" +msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:300 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:316 msgid "Receive line item" msgstr "Receber item de linha" #: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:344 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:142 -#: src/tables/sales/SalesOrderLineItemTable.tsx:240 -msgid "Add line item" -msgstr "Adicionar item de linha" +#: src/tables/sales/ReturnOrderLineItemTable.tsx:160 +#: src/tables/sales/SalesOrderLineItemTable.tsx:258 +#~ msgid "Add line item" +#~ msgstr "Add line item" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:354 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:373 msgid "Receive items" msgstr "Receber itens" -#: src/tables/purchasing/SupplierPartTable.tsx:93 +#: src/tables/purchasing/SupplierPartTable.tsx:95 msgid "MPN" msgstr "MPN" -#: src/tables/purchasing/SupplierPartTable.tsx:122 +#: src/tables/purchasing/SupplierPartTable.tsx:124 msgid "Base units" msgstr "Unidade base" -#: src/tables/purchasing/SupplierPartTable.tsx:170 +#: src/tables/purchasing/SupplierPartTable.tsx:172 msgid "Supplier part created" msgstr "Peça do fornecedor criada" -#: src/tables/purchasing/SupplierPartTable.tsx:176 +#: src/tables/purchasing/SupplierPartTable.tsx:179 msgid "Add supplier part" msgstr "Adicionar peça do fornecedor" -#: src/tables/purchasing/SupplierPartTable.tsx:188 +#: src/tables/purchasing/SupplierPartTable.tsx:191 msgid "Show active supplier parts" -msgstr "" - -#: src/tables/purchasing/SupplierPartTable.tsx:192 -msgid "Active Part" -msgstr "" - -#: src/tables/purchasing/SupplierPartTable.tsx:193 -msgid "Show active internal parts" -msgstr "" +msgstr "Mostrar peças do fornecedor ativo" #: src/tables/purchasing/SupplierPartTable.tsx:193 #~ msgid "Supplier part updated" #~ msgstr "Supplier part updated" -#: src/tables/purchasing/SupplierPartTable.tsx:197 -msgid "Active Supplier" -msgstr "" +#: src/tables/purchasing/SupplierPartTable.tsx:195 +msgid "Active Part" +msgstr "Parte ativa" -#: src/tables/purchasing/SupplierPartTable.tsx:198 +#: src/tables/purchasing/SupplierPartTable.tsx:196 +msgid "Show active internal parts" +msgstr "Mostrar partes internas ativas" + +#: src/tables/purchasing/SupplierPartTable.tsx:200 +msgid "Active Supplier" +msgstr "Fornecedor Ativo" + +#: src/tables/purchasing/SupplierPartTable.tsx:201 msgid "Show active suppliers" -msgstr "" +msgstr "Mostrar fornecedores ativos" #: src/tables/purchasing/SupplierPartTable.tsx:205 #~ msgid "Supplier part deleted" @@ -7203,98 +8343,186 @@ msgstr "" #~ msgid "Are you sure you want to remove this supplier part?" #~ msgstr "Are you sure you want to remove this supplier part?" -#: src/tables/sales/ReturnOrderLineItemTable.tsx:114 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:139 msgid "Received Date" -msgstr "" +msgstr "Dados Recebidos" -#: src/tables/sales/ReturnOrderLineItemTable.tsx:128 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:153 msgid "Show items which have been received" -msgstr "" - -#: src/tables/sales/ReturnOrderLineItemTable.tsx:133 -msgid "Filter by line item status" -msgstr "" +msgstr "Mostrar itens que foram recebidos" #: src/tables/sales/ReturnOrderLineItemTable.tsx:158 +msgid "Filter by line item status" +msgstr "Filtrar por status do item de linha" + +#: src/tables/sales/ReturnOrderLineItemTable.tsx:176 +msgid "Receive selected items" +msgstr "" + +#: src/tables/sales/ReturnOrderLineItemTable.tsx:205 msgid "Receive Item" +msgstr "Receber Item" + +#: src/tables/sales/SalesOrderAllocationTable.tsx:60 +msgid "Show outstanding allocations" msgstr "" -#: src/tables/sales/SalesOrderLineItemTable.tsx:262 -msgid "Allocate stock" +#: src/tables/sales/SalesOrderAllocationTable.tsx:168 +#: src/tables/sales/SalesOrderAllocationTable.tsx:190 +msgid "Edit Allocation" msgstr "" -#: src/tables/sales/SalesOrderLineItemTable.tsx:272 +#: src/tables/sales/SalesOrderAllocationTable.tsx:175 +#: src/tables/sales/SalesOrderAllocationTable.tsx:197 +msgid "Delete Allocation" +msgstr "" + +#: src/tables/sales/SalesOrderLineItemTable.tsx:244 +msgid "Allocate Serial Numbers" +msgstr "Alocar números de série" + +#: src/tables/sales/SalesOrderLineItemTable.tsx:277 +msgid "Show lines which are fully allocated" +msgstr "" + +#: src/tables/sales/SalesOrderLineItemTable.tsx:280 +#~ msgid "Allocate stock" +#~ msgstr "Allocate stock" + +#: src/tables/sales/SalesOrderLineItemTable.tsx:282 +msgid "Show lines which are completed" +msgstr "" + +#: src/tables/sales/SalesOrderLineItemTable.tsx:291 +#~ msgid "Allocate Serials" +#~ msgstr "Allocate Serials" + +#: src/tables/sales/SalesOrderLineItemTable.tsx:340 +msgid "Allocate serials" +msgstr "" + +#: src/tables/sales/SalesOrderLineItemTable.tsx:356 msgid "Build stock" -msgstr "" +msgstr "Construir estoque" -#: src/tables/sales/SalesOrderLineItemTable.tsx:289 -#: src/tables/stock/StockItemTable.tsx:507 +#: src/tables/sales/SalesOrderLineItemTable.tsx:373 +#: src/tables/stock/StockItemTable.tsx:512 msgid "Order stock" -msgstr "" +msgstr "Encomendar estoque" -#: src/tables/sales/SalesOrderShipmentTable.tsx:40 +#: src/tables/sales/SalesOrderShipmentTable.tsx:51 +#~ msgid "Delete Shipment" +#~ msgstr "Delete Shipment" + +#: src/tables/sales/SalesOrderShipmentTable.tsx:57 msgid "Create Shipment" -msgstr "" +msgstr "Criar Remessa" -#: src/tables/sales/SalesOrderShipmentTable.tsx:50 -msgid "Delete Shipment" -msgstr "" - -#: src/tables/sales/SalesOrderShipmentTable.tsx:58 -msgid "Edit Shipment" -msgstr "" - -#: src/tables/sales/SalesOrderShipmentTable.tsx:66 -msgid "Shipment Reference" -msgstr "" - -#: src/tables/sales/SalesOrderShipmentTable.tsx:71 +#: src/tables/sales/SalesOrderShipmentTable.tsx:104 msgid "Items" +msgstr "Itens" + +#: src/tables/sales/SalesOrderShipmentTable.tsx:139 +msgid "View Shipment" msgstr "" -#: src/tables/sales/SalesOrderShipmentTable.tsx:83 -msgid "Delivery Date" +#: src/tables/sales/SalesOrderShipmentTable.tsx:161 +msgid "Edit shipment" msgstr "" -#: src/tables/sales/SalesOrderShipmentTable.tsx:107 -msgid "Complete Shipment" +#: src/tables/sales/SalesOrderShipmentTable.tsx:169 +msgid "Cancel shipment" msgstr "" -#: src/tables/sales/SalesOrderShipmentTable.tsx:133 +#: src/tables/sales/SalesOrderShipmentTable.tsx:184 msgid "Add shipment" -msgstr "" +msgstr "Adicionar Remessa" -#: src/tables/sales/SalesOrderShipmentTable.tsx:146 -msgid "Shipped" -msgstr "" - -#: src/tables/sales/SalesOrderShipmentTable.tsx:147 +#: src/tables/sales/SalesOrderShipmentTable.tsx:198 msgid "Show shipments which have been shipped" msgstr "" -#: src/tables/sales/SalesOrderShipmentTable.tsx:151 -msgid "Delivered" -msgstr "" - -#: src/tables/sales/SalesOrderShipmentTable.tsx:152 +#: src/tables/sales/SalesOrderShipmentTable.tsx:203 msgid "Show shipments which have been delivered" msgstr "" -#: src/tables/settings/CurrencyTable.tsx:28 -msgid "Rate" -msgstr "Taxa" +#: src/tables/settings/BarcodeScanHistoryTable.tsx:61 +msgid "Barcode Information" +msgstr "" -#: src/tables/settings/CurrencyTable.tsx:40 -msgid "Exchange rates updated" -msgstr "Taxas de câmbio atualizadas" +#: src/tables/settings/BarcodeScanHistoryTable.tsx:76 +#: src/tables/settings/ErrorTable.tsx:59 +msgid "Timestamp" +msgstr "" -#: src/tables/settings/CurrencyTable.tsx:46 -msgid "Exchange rate update error" -msgstr "Erro ao atualizar taxa de câmbio" +#: src/tables/settings/BarcodeScanHistoryTable.tsx:86 +msgid "Endpoint" +msgstr "" -#: src/tables/settings/CurrencyTable.tsx:57 -msgid "Refresh currency exchange rates" -msgstr "Atualizar taxas de câmbio" +#: src/tables/settings/BarcodeScanHistoryTable.tsx:90 +#: src/tables/settings/BarcodeScanHistoryTable.tsx:217 +#: src/tables/stock/StockItemTestResultTable.tsx:174 +msgid "Result" +msgstr "Resultado" + +#: src/tables/settings/BarcodeScanHistoryTable.tsx:98 +msgid "Context" +msgstr "" + +#: src/tables/settings/BarcodeScanHistoryTable.tsx:119 +msgid "Response" +msgstr "" + +#: src/tables/settings/BarcodeScanHistoryTable.tsx:213 +#: src/tables/settings/ImportSessionTable.tsx:121 +#: src/tables/stock/StockTrackingTable.tsx:183 +msgid "Filter by user" +msgstr "Filtrar por usuário" + +#: src/tables/settings/BarcodeScanHistoryTable.tsx:218 +msgid "Filter by result" +msgstr "" + +#: src/tables/settings/BarcodeScanHistoryTable.tsx:232 +msgid "Delete Barcode Scan Record" +msgstr "" + +#: src/tables/settings/BarcodeScanHistoryTable.tsx:258 +msgid "Barcode Scan Details" +msgstr "" + +#: src/tables/settings/BarcodeScanHistoryTable.tsx:268 +msgid "Logging Disabled" +msgstr "" + +#: src/tables/settings/BarcodeScanHistoryTable.tsx:270 +msgid "Barcode logging is not enabled" +msgstr "" + +#: src/tables/settings/CustomStateTable.tsx:36 +msgid "Display Name" +msgstr "Nome de Exibição" + +#: src/tables/settings/CustomStateTable.tsx:52 +msgid "Model" +msgstr "Modelo" + +#: src/tables/settings/CustomStateTable.tsx:65 +#: src/tables/settings/CustomStateTable.tsx:115 +msgid "Add State" +msgstr "Adicionar Estado" + +#: src/tables/settings/CustomStateTable.tsx:77 +msgid "Edit State" +msgstr "Editar Estado" + +#: src/tables/settings/CustomStateTable.tsx:85 +msgid "Delete State" +msgstr "Deletar Estado" + +#: src/tables/settings/CustomStateTable.tsx:115 +#~ msgid "Add state" +#~ msgstr "Add state" #: src/tables/settings/CustomUnitsTable.tsx:50 msgid "Add Custom Unit" @@ -7312,59 +8540,71 @@ msgstr "Excluir Unidade Personalizada" msgid "Add custom unit" msgstr "Adicionar unidade personalizada" -#: src/tables/settings/ErrorTable.tsx:31 -msgid "When" -msgstr "Quando" - -#: src/tables/settings/ErrorTable.tsx:41 -msgid "Error Information" -msgstr "Informação do erro" - #: src/tables/settings/ErrorTable.tsx:51 #~ msgid "Delete error report" #~ msgstr "Delete error report" -#: src/tables/settings/ErrorTable.tsx:53 -msgid "Delete Error Report" +#: src/tables/settings/ErrorTable.tsx:67 +msgid "Traceback" msgstr "" -#: src/tables/settings/ErrorTable.tsx:55 +#: src/tables/settings/ErrorTable.tsx:103 +msgid "When" +msgstr "Quando" + +#: src/tables/settings/ErrorTable.tsx:113 +msgid "Error Information" +msgstr "Informação do erro" + +#: src/tables/settings/ErrorTable.tsx:123 +msgid "Delete Error Report" +msgstr "Excluir Relatório de Erros" + +#: src/tables/settings/ErrorTable.tsx:125 msgid "Are you sure you want to delete this error report?" msgstr "Tem certeza de que deseja excluir este relatório de erro?" -#: src/tables/settings/ErrorTable.tsx:57 +#: src/tables/settings/ErrorTable.tsx:127 msgid "Error report deleted" msgstr "Relatório de erro excluído" -#: src/tables/settings/ErrorTable.tsx:79 -#: src/tables/settings/FailedTasksTable.tsx:59 +#: src/tables/settings/ErrorTable.tsx:146 +#: src/tables/settings/FailedTasksTable.tsx:65 msgid "Error Details" msgstr "Detalhes do Erro" -#: src/tables/settings/FailedTasksTable.tsx:26 -#: src/tables/settings/PendingTasksTable.tsx:19 +#: src/tables/settings/FailedTasksTable.tsx:32 +#: src/tables/settings/PendingTasksTable.tsx:23 #: src/tables/settings/ScheduledTasksTable.tsx:19 msgid "Task" msgstr "Tarefa" -#: src/tables/settings/FailedTasksTable.tsx:32 -#: src/tables/settings/PendingTasksTable.tsx:24 +#: src/tables/settings/FailedTasksTable.tsx:38 +#: src/tables/settings/PendingTasksTable.tsx:28 msgid "Task ID" msgstr "ID da Tarefa" -#: src/tables/settings/FailedTasksTable.tsx:36 -#: src/tables/stock/StockItemTestResultTable.tsx:211 +#: src/tables/settings/FailedTasksTable.tsx:42 +#: src/tables/stock/StockItemTestResultTable.tsx:218 msgid "Started" msgstr "Iniciado" -#: src/tables/settings/FailedTasksTable.tsx:42 +#: src/tables/settings/FailedTasksTable.tsx:48 msgid "Stopped" msgstr "Parado" -#: src/tables/settings/FailedTasksTable.tsx:48 +#: src/tables/settings/FailedTasksTable.tsx:54 msgid "Attempts" msgstr "Tentativas" +#: src/tables/settings/FailedTasksTable.tsx:92 +msgid "No Information" +msgstr "" + +#: src/tables/settings/FailedTasksTable.tsx:93 +msgid "No error details are available for this task" +msgstr "" + #: src/tables/settings/GroupTable.tsx:90 msgid "Group with id {id} not found" msgstr "Grupo com o id {id} não encontrado" @@ -7398,42 +8638,34 @@ msgstr "Adicionar grupo" msgid "Edit group" msgstr "Editar grupo" -#: src/tables/settings/ImportSessionTable.tsx:38 +#: src/tables/settings/ImportSessionTable.tsx:37 msgid "Delete Import Session" -msgstr "" +msgstr "Excluir sessão de importação" -#: src/tables/settings/ImportSessionTable.tsx:44 +#: src/tables/settings/ImportSessionTable.tsx:43 #: src/tables/settings/ImportSessionTable.tsx:131 msgid "Create Import Session" -msgstr "" +msgstr "Criar sessão de importação" -#: src/tables/settings/ImportSessionTable.tsx:69 +#: src/tables/settings/ImportSessionTable.tsx:68 msgid "Uploaded" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:79 -msgid "Imported Rows" -msgstr "" +#: src/tables/settings/ImportSessionTable.tsx:108 +#: src/tables/settings/TemplateTable.tsx:369 +msgid "Model Type" +msgstr "Tipo de Modelo" #: src/tables/settings/ImportSessionTable.tsx:109 -#: src/tables/settings/TemplateTable.tsx:289 -msgid "Model Type" -msgstr "" - -#: src/tables/settings/ImportSessionTable.tsx:110 -#: src/tables/settings/TemplateTable.tsx:290 +#: src/tables/settings/TemplateTable.tsx:370 msgid "Filter by target model type" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:116 +#: src/tables/settings/ImportSessionTable.tsx:115 msgid "Filter by import session status" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:122 -msgid "Filter by user" -msgstr "" - -#: src/tables/settings/PendingTasksTable.tsx:38 +#: src/tables/settings/PendingTasksTable.tsx:42 msgid "Arguments" msgstr "Argumentos" @@ -7461,12 +8693,16 @@ msgstr "Última Execução" msgid "Next Run" msgstr "Próxima Execução" -#: src/tables/settings/TemplateTable.tsx:85 -msgid "Template not found" -msgstr "" +#: src/tables/settings/StocktakeReportTable.tsx:28 +msgid "Report" +msgstr "Reportar" -#: src/tables/settings/TemplateTable.tsx:87 -msgid "An error occurred while fetching template details" +#: src/tables/settings/StocktakeReportTable.tsx:35 +msgid "Part Count" +msgstr "Contagem de peças" + +#: src/tables/settings/StocktakeReportTable.tsx:58 +msgid "Delete Report" msgstr "" #: src/tables/settings/TemplateTable.tsx:120 @@ -7481,21 +8717,12 @@ msgstr "" #~ msgid "actions" #~ msgstr "actions" -#: src/tables/settings/TemplateTable.tsx:177 -msgid "Modify" -msgstr "" +#: src/tables/settings/TemplateTable.tsx:162 +msgid "Template not found" +msgstr "Template não encontrado" -#: src/tables/settings/TemplateTable.tsx:178 -msgid "Modify template file" -msgstr "" - -#: src/tables/settings/TemplateTable.tsx:234 -#: src/tables/settings/TemplateTable.tsx:302 -msgid "Edit Template" -msgstr "" - -#: src/tables/settings/TemplateTable.tsx:242 -msgid "Delete template" +#: src/tables/settings/TemplateTable.tsx:164 +msgid "An error occurred while fetching template details" msgstr "" #: src/tables/settings/TemplateTable.tsx:243 @@ -7506,103 +8733,137 @@ msgstr "" #~ msgid "Create new" #~ msgstr "Create new" -#: src/tables/settings/TemplateTable.tsx:248 +#: src/tables/settings/TemplateTable.tsx:257 +msgid "Modify" +msgstr "Modificar" + +#: src/tables/settings/TemplateTable.tsx:258 +msgid "Modify template file" +msgstr "Modificar arquivo do template" + +#: src/tables/settings/TemplateTable.tsx:314 +#: src/tables/settings/TemplateTable.tsx:382 +msgid "Edit Template" +msgstr "Editar Template" + +#: src/tables/settings/TemplateTable.tsx:322 +msgid "Delete template" +msgstr "Deletar template" + +#: src/tables/settings/TemplateTable.tsx:328 msgid "Add Template" -msgstr "" +msgstr "Adicionar Template" -#: src/tables/settings/TemplateTable.tsx:261 +#: src/tables/settings/TemplateTable.tsx:341 msgid "Add template" -msgstr "" +msgstr "Adicionar template" -#: src/tables/settings/TemplateTable.tsx:284 +#: src/tables/settings/TemplateTable.tsx:364 msgid "Filter by enabled status" msgstr "" -#: src/tables/settings/UserTable.tsx:82 +#: src/tables/settings/UserTable.tsx:81 msgid "User with id {id} not found" msgstr "Usuário com o id {id} não encontrado" -#: src/tables/settings/UserTable.tsx:84 +#: src/tables/settings/UserTable.tsx:83 msgid "An error occurred while fetching user details" msgstr "Ocorreu um erro ao obter os detalhes do usuário" -#: src/tables/settings/UserTable.tsx:102 +#: src/tables/settings/UserTable.tsx:101 msgid "Is Active" msgstr "Está Ativo" -#: src/tables/settings/UserTable.tsx:103 +#: src/tables/settings/UserTable.tsx:102 msgid "Designates whether this user should be treated as active. Unselect this instead of deleting accounts." msgstr "Designa se esse usuário deve ser tratado como ativo. Desmarque isso em vez de excluir contas." -#: src/tables/settings/UserTable.tsx:107 +#: src/tables/settings/UserTable.tsx:106 msgid "Is Staff" msgstr "É da Equipe" -#: src/tables/settings/UserTable.tsx:108 +#: src/tables/settings/UserTable.tsx:107 msgid "Designates whether the user can log into the django admin site." msgstr "Designa se o usuário pode fazer entrar no site administrativo do django." -#: src/tables/settings/UserTable.tsx:112 +#: src/tables/settings/UserTable.tsx:111 msgid "Is Superuser" msgstr "É Superusuário" -#: src/tables/settings/UserTable.tsx:113 +#: src/tables/settings/UserTable.tsx:112 msgid "Designates that this user has all permissions without explicitly assigning them." msgstr "Indica que este usuário tem todas as permissões sem atribuí-las explicitamente." -#: src/tables/settings/UserTable.tsx:123 +#: src/tables/settings/UserTable.tsx:122 msgid "You cannot edit the rights for the currently logged-in user." msgstr "Você não pode editar os direitos para o usuário conectado no momento." -#: src/tables/settings/UserTable.tsx:154 +#: src/tables/settings/UserTable.tsx:153 msgid "No groups" msgstr "Sem grupos" -#: src/tables/settings/UserTable.tsx:245 +#: src/tables/settings/UserTable.tsx:244 msgid "Delete user" msgstr "Excluir usuário" -#: src/tables/settings/UserTable.tsx:246 +#: src/tables/settings/UserTable.tsx:245 msgid "User deleted" msgstr "Usuário excluído" -#: src/tables/settings/UserTable.tsx:248 +#: src/tables/settings/UserTable.tsx:247 msgid "Are you sure you want to delete this user?" msgstr "Tem certeza de que deseja excluir este usuário?" -#: src/tables/settings/UserTable.tsx:254 -#: src/tables/settings/UserTable.tsx:272 +#: src/tables/settings/UserTable.tsx:253 +#: src/tables/settings/UserTable.tsx:271 msgid "Add user" msgstr "Adicionar usuário" -#: src/tables/settings/UserTable.tsx:262 +#: src/tables/settings/UserTable.tsx:261 msgid "Added user" msgstr "Usuário adicionado" -#: src/tables/settings/UserTable.tsx:285 +#: src/tables/settings/UserTable.tsx:284 msgid "Show active users" -msgstr "" +msgstr "Mostrar usuários ativos" -#: src/tables/settings/UserTable.tsx:289 +#: src/tables/settings/UserTable.tsx:288 msgid "Staff" msgstr "" -#: src/tables/settings/UserTable.tsx:290 +#: src/tables/settings/UserTable.tsx:289 msgid "Show staff users" msgstr "" #: src/tables/settings/UserTable.tsx:294 -msgid "Superuser" -msgstr "" - -#: src/tables/settings/UserTable.tsx:295 msgid "Show superusers" msgstr "" -#: src/tables/settings/UserTable.tsx:305 +#: src/tables/settings/UserTable.tsx:304 msgid "Edit user" msgstr "Editar usuário" +#: src/tables/stock/InstalledItemsTable.tsx:37 +#: src/tables/stock/InstalledItemsTable.tsx:90 +msgid "Install Item" +msgstr "" + +#: src/tables/stock/InstalledItemsTable.tsx:39 +msgid "Item installed" +msgstr "" + +#: src/tables/stock/InstalledItemsTable.tsx:50 +msgid "Uninstall Item" +msgstr "" + +#: src/tables/stock/InstalledItemsTable.tsx:52 +msgid "Item uninstalled" +msgstr "" + +#: src/tables/stock/InstalledItemsTable.tsx:108 +msgid "Uninstall stock item" +msgstr "" + #: src/tables/stock/LocationTypesTable.tsx:39 #: src/tables/stock/LocationTypesTable.tsx:109 msgid "Add Location Type" @@ -7618,278 +8879,274 @@ msgstr "" #: src/tables/stock/LocationTypesTable.tsx:63 msgid "Icon" -msgstr "" +msgstr "Ícone" -#: src/tables/stock/StockItemTable.tsx:101 +#: src/tables/stock/StockItemTable.tsx:90 msgid "This stock item is in production" msgstr "Este item de estoque está em produção" -#: src/tables/stock/StockItemTable.tsx:110 +#: src/tables/stock/StockItemTable.tsx:97 msgid "This stock item has been assigned to a sales order" msgstr "Este item em estoque foi reservado para um pedido" -#: src/tables/stock/StockItemTable.tsx:119 +#: src/tables/stock/StockItemTable.tsx:104 msgid "This stock item has been assigned to a customer" msgstr "Este item em estoque foi reservado para um cliente" -#: src/tables/stock/StockItemTable.tsx:128 +#: src/tables/stock/StockItemTable.tsx:111 msgid "This stock item is installed in another stock item" msgstr "Este item em estoque foi instalado em outro item de estoque" -#: src/tables/stock/StockItemTable.tsx:137 +#: src/tables/stock/StockItemTable.tsx:118 msgid "This stock item has been consumed by a build order" msgstr "Este item de estoque foi consumido por um pedido de produção" -#: src/tables/stock/StockItemTable.tsx:146 +#: src/tables/stock/StockItemTable.tsx:125 +msgid "This stock item is unavailable" +msgstr "" + +#: src/tables/stock/StockItemTable.tsx:134 msgid "This stock item has expired" msgstr "Este item de estoque expirou" -#: src/tables/stock/StockItemTable.tsx:150 +#: src/tables/stock/StockItemTable.tsx:138 msgid "This stock item is stale" msgstr "Este item de estoque está velho" -#: src/tables/stock/StockItemTable.tsx:161 +#: src/tables/stock/StockItemTable.tsx:150 msgid "This stock item is fully allocated" msgstr "Este item de estoque está totalmente alocado" -#: src/tables/stock/StockItemTable.tsx:168 +#: src/tables/stock/StockItemTable.tsx:157 msgid "This stock item is partially allocated" msgstr "Este item de estoque está parcialmente alocado" -#: src/tables/stock/StockItemTable.tsx:196 +#: src/tables/stock/StockItemTable.tsx:185 msgid "This stock item has been depleted" msgstr "Este item de estoque foi esgotado" -#: src/tables/stock/StockItemTable.tsx:232 +#: src/tables/stock/StockItemTable.tsx:280 msgid "Stocktake Date" -msgstr "" +msgstr "Data do inventário" -#: src/tables/stock/StockItemTable.tsx:236 -msgid "Expiry Date" -msgstr "" - -#: src/tables/stock/StockItemTable.tsx:260 -msgid "Stock Value" -msgstr "" - -#: src/tables/stock/StockItemTable.tsx:290 +#: src/tables/stock/StockItemTable.tsx:294 msgid "Show stock for active parts" msgstr "Mostrar estoque de peças ativas" -#: src/tables/stock/StockItemTable.tsx:295 +#: src/tables/stock/StockItemTable.tsx:299 msgid "Filter by stock status" msgstr "Filtrar por estado do estoque" #: src/tables/stock/StockItemTable.tsx:301 -msgid "Show stock for assmebled parts" -msgstr "Mostrar estoque para peças montadas" +#~ msgid "Show stock for assmebled parts" +#~ msgstr "Show stock for assmebled parts" -#: src/tables/stock/StockItemTable.tsx:306 +#: src/tables/stock/StockItemTable.tsx:305 +msgid "Show stock for assembled parts" +msgstr "" + +#: src/tables/stock/StockItemTable.tsx:310 msgid "Show items which have been allocated" msgstr "Mostrar itens que foram alocados" -#: src/tables/stock/StockItemTable.tsx:311 +#: src/tables/stock/StockItemTable.tsx:315 msgid "Show items which are available" msgstr "Mostrar itens que estão disponíveis" -#: src/tables/stock/StockItemTable.tsx:315 +#: src/tables/stock/StockItemTable.tsx:319 #: src/tables/stock/StockLocationTable.tsx:44 msgid "Include Sublocations" msgstr "Incluir Sublocais" -#: src/tables/stock/StockItemTable.tsx:316 +#: src/tables/stock/StockItemTable.tsx:320 msgid "Include stock in sublocations" msgstr "Incluir estoque em sublocais" -#: src/tables/stock/StockItemTable.tsx:320 +#: src/tables/stock/StockItemTable.tsx:324 msgid "Depleted" msgstr "Esgotado" -#: src/tables/stock/StockItemTable.tsx:321 +#: src/tables/stock/StockItemTable.tsx:325 msgid "Show depleted stock items" msgstr "Mostrar itens de estoque esgotados" -#: src/tables/stock/StockItemTable.tsx:326 +#: src/tables/stock/StockItemTable.tsx:330 msgid "Show items which are in stock" msgstr "Mostrar itens que estão em estoque" -#: src/tables/stock/StockItemTable.tsx:331 +#: src/tables/stock/StockItemTable.tsx:335 msgid "Show items which are in production" msgstr "Mostrar itens que estão em produção" -#: src/tables/stock/StockItemTable.tsx:336 +#: src/tables/stock/StockItemTable.tsx:340 msgid "Include stock items for variant parts" msgstr "Incluir itens de estoque para peças variantes" -#: src/tables/stock/StockItemTable.tsx:341 +#: src/tables/stock/StockItemTable.tsx:345 msgid "Show stock items which are installed in other items" msgstr "Mostrar itens de estoque que estão instalados em outros itens" -#: src/tables/stock/StockItemTable.tsx:345 +#: src/tables/stock/StockItemTable.tsx:349 msgid "Sent to Customer" msgstr "Enviar para Cliente" -#: src/tables/stock/StockItemTable.tsx:346 +#: src/tables/stock/StockItemTable.tsx:350 msgid "Show items which have been sent to a customer" msgstr "Mostrar itens enviados para um cliente" -#: src/tables/stock/StockItemTable.tsx:350 +#: src/tables/stock/StockItemTable.tsx:354 msgid "Is Serialized" msgstr "É Serializado" -#: src/tables/stock/StockItemTable.tsx:351 +#: src/tables/stock/StockItemTable.tsx:355 msgid "Show items which have a serial number" msgstr "Mostrar itens com um número de série" -#: src/tables/stock/StockItemTable.tsx:358 +#: src/tables/stock/StockItemTable.tsx:362 msgid "Has Batch Code" msgstr "Possuí Código de Lote" -#: src/tables/stock/StockItemTable.tsx:359 +#: src/tables/stock/StockItemTable.tsx:363 msgid "Show items which have a batch code" msgstr "Mostrar itens com um código de lote" -#: src/tables/stock/StockItemTable.tsx:365 +#: src/tables/stock/StockItemTable.tsx:369 msgid "Show tracked items" msgstr "Mostrar itens monitorados" -#: src/tables/stock/StockItemTable.tsx:369 +#: src/tables/stock/StockItemTable.tsx:373 msgid "Has Purchase Price" msgstr "Tem Preço de Compra" -#: src/tables/stock/StockItemTable.tsx:370 +#: src/tables/stock/StockItemTable.tsx:374 msgid "Show items which have a purchase price" msgstr "Mostrar itens com preço de compra" -#: src/tables/stock/StockItemTable.tsx:378 +#: src/tables/stock/StockItemTable.tsx:382 msgid "External Location" msgstr "Localização Externa" -#: src/tables/stock/StockItemTable.tsx:379 +#: src/tables/stock/StockItemTable.tsx:383 msgid "Show items in an external location" msgstr "Mostrar itens com localização externa" -#: src/tables/stock/StockItemTable.tsx:451 +#: src/tables/stock/StockItemTable.tsx:456 msgid "Add a new stock item" msgstr "" -#: src/tables/stock/StockItemTable.tsx:460 +#: src/tables/stock/StockItemTable.tsx:465 msgid "Remove some quantity from a stock item" msgstr "" -#: src/tables/stock/StockItemTable.tsx:482 +#: src/tables/stock/StockItemTable.tsx:487 msgid "Move Stock items to new locations" msgstr "" -#: src/tables/stock/StockItemTable.tsx:489 +#: src/tables/stock/StockItemTable.tsx:494 msgid "Change stock status" msgstr "" -#: src/tables/stock/StockItemTable.tsx:491 +#: src/tables/stock/StockItemTable.tsx:496 msgid "Change the status of stock items" msgstr "" -#: src/tables/stock/StockItemTable.tsx:498 +#: src/tables/stock/StockItemTable.tsx:503 msgid "Merge stock" msgstr "" -#: src/tables/stock/StockItemTable.tsx:500 +#: src/tables/stock/StockItemTable.tsx:505 msgid "Merge stock items" msgstr "" -#: src/tables/stock/StockItemTable.tsx:509 -#: src/tables/stock/StockItemTable.tsx:516 -msgid "Order new stock" -msgstr "" - #: src/tables/stock/StockItemTable.tsx:514 +#: src/tables/stock/StockItemTable.tsx:521 +msgid "Order new stock" +msgstr "Encomende novo estoque" + +#: src/tables/stock/StockItemTable.tsx:519 msgid "Assign to customer" msgstr "" -#: src/tables/stock/StockItemTable.tsx:523 +#: src/tables/stock/StockItemTable.tsx:528 msgid "Delete stock" -msgstr "" +msgstr "Excluir estoque" -#: src/tables/stock/StockItemTable.tsx:525 -msgid "Delete stock items" -msgstr "" +#: src/tables/stock/StockItemTable.tsx:528 +#~ msgid "Delete stock items" +#~ msgstr "Delete stock items" -#: src/tables/stock/StockItemTestResultTable.tsx:131 +#: src/tables/stock/StockItemTestResultTable.tsx:137 msgid "Test" -msgstr "" +msgstr "Teste" -#: src/tables/stock/StockItemTestResultTable.tsx:157 +#: src/tables/stock/StockItemTestResultTable.tsx:163 msgid "Test result for installed stock item" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:168 -msgid "Result" -msgstr "" - -#: src/tables/stock/StockItemTestResultTable.tsx:190 +#: src/tables/stock/StockItemTestResultTable.tsx:196 msgid "Attachment" -msgstr "" +msgstr "Anexo" -#: src/tables/stock/StockItemTestResultTable.tsx:206 +#: src/tables/stock/StockItemTestResultTable.tsx:212 msgid "Test station" -msgstr "" +msgstr "Estação de teste" -#: src/tables/stock/StockItemTestResultTable.tsx:226 +#: src/tables/stock/StockItemTestResultTable.tsx:234 msgid "Finished" -msgstr "" +msgstr "Concluído" -#: src/tables/stock/StockItemTestResultTable.tsx:268 -#: src/tables/stock/StockItemTestResultTable.tsx:339 +#: src/tables/stock/StockItemTestResultTable.tsx:286 +#: src/tables/stock/StockItemTestResultTable.tsx:357 msgid "Edit Test Result" -msgstr "" +msgstr "Editar Resultado do Teste" -#: src/tables/stock/StockItemTestResultTable.tsx:270 +#: src/tables/stock/StockItemTestResultTable.tsx:288 msgid "Test result updated" -msgstr "" +msgstr "Resultado do teste atualizado" -#: src/tables/stock/StockItemTestResultTable.tsx:276 -#: src/tables/stock/StockItemTestResultTable.tsx:348 +#: src/tables/stock/StockItemTestResultTable.tsx:294 +#: src/tables/stock/StockItemTestResultTable.tsx:366 msgid "Delete Test Result" -msgstr "" +msgstr "Deletar Resultado do Teste" -#: src/tables/stock/StockItemTestResultTable.tsx:278 +#: src/tables/stock/StockItemTestResultTable.tsx:296 msgid "Test result deleted" -msgstr "" +msgstr "Resultado de teste deletado" -#: src/tables/stock/StockItemTestResultTable.tsx:292 +#: src/tables/stock/StockItemTestResultTable.tsx:310 msgid "Test Passed" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:293 +#: src/tables/stock/StockItemTestResultTable.tsx:311 msgid "Test result has been recorded" -msgstr "" +msgstr "O resultado do teste foi registrado" -#: src/tables/stock/StockItemTestResultTable.tsx:300 +#: src/tables/stock/StockItemTestResultTable.tsx:318 msgid "Failed to record test result" -msgstr "" +msgstr "Falha ao registrar o resultado do teste" -#: src/tables/stock/StockItemTestResultTable.tsx:317 +#: src/tables/stock/StockItemTestResultTable.tsx:335 msgid "Pass Test" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:366 +#: src/tables/stock/StockItemTestResultTable.tsx:384 msgid "Show results for required tests" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:370 +#: src/tables/stock/StockItemTestResultTable.tsx:388 msgid "Include Installed" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:371 +#: src/tables/stock/StockItemTestResultTable.tsx:389 msgid "Show results for installed stock items" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:375 -#: src/tables/stock/TestStatisticsTable.tsx:74 +#: src/tables/stock/StockItemTestResultTable.tsx:393 +#: src/tables/stock/TestStatisticsTable.tsx:62 msgid "Passed" -msgstr "" +msgstr "Aprovado" -#: src/tables/stock/StockItemTestResultTable.tsx:376 +#: src/tables/stock/StockItemTestResultTable.tsx:394 msgid "Show only passed tests" msgstr "" @@ -7922,30 +9179,34 @@ msgid "Filter by location type" msgstr "" #: src/tables/stock/StockLocationTable.tsx:107 -#: src/tables/stock/StockLocationTable.tsx:133 +#: src/tables/stock/StockLocationTable.tsx:134 msgid "Add Stock Location" msgstr "Adicionar Local de Estoque" -#: src/tables/stock/StockTrackingTable.tsx:64 +#: src/tables/stock/StockTrackingTable.tsx:68 msgid "Added" -msgstr "" +msgstr "Adicionado" -#: src/tables/stock/StockTrackingTable.tsx:69 +#: src/tables/stock/StockTrackingTable.tsx:73 msgid "Removed" -msgstr "" +msgstr "Removido" #: src/tables/stock/StockTrackingTable.tsx:198 +msgid "Details" +msgstr "Detalhes" + +#: src/tables/stock/StockTrackingTable.tsx:213 msgid "No user information" -msgstr "" +msgstr "Nenhuma informação do usuário" -#: src/tables/stock/TestStatisticsTable.tsx:46 -#: src/tables/stock/TestStatisticsTable.tsx:76 +#: src/tables/stock/TestStatisticsTable.tsx:34 +#: src/tables/stock/TestStatisticsTable.tsx:64 msgid "Total" -msgstr "" +msgstr "Total" -#: src/tables/stock/TestStatisticsTable.tsx:75 +#: src/tables/stock/TestStatisticsTable.tsx:63 msgid "Failed" -msgstr "" +msgstr "Reprovado" #: src/views/MobileAppView.tsx:22 msgid "Mobile viewport detected" diff --git a/src/frontend/src/locales/ro/messages.po b/src/frontend/src/locales/ro/messages.po index a1948bebd2..75f369ebcb 100644 --- a/src/frontend/src/locales/ro/messages.po +++ b/src/frontend/src/locales/ro/messages.po @@ -8,15 +8,15 @@ msgstr "" "Language: ro\n" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"PO-Revision-Date: 2024-08-20 19:49\n" +"PO-Revision-Date: 2024-11-04 03:14\n" "Last-Translator: \n" "Language-Team: Romanian\n" "Plural-Forms: nplurals=3; plural=(n==1 ? 0 : (n==0 || (n%100>0 && n%100<20)) ? 1 : 2);\n" "X-Crowdin-Project: inventree\n" "X-Crowdin-Project-ID: 452300\n" "X-Crowdin-Language: ro\n" -"X-Crowdin-File: /[inventree.InvenTree] l10/src/frontend/src/locales/en/messages.po\n" -"X-Crowdin-File-ID: 205\n" +"X-Crowdin-File: /src/frontend/src/locales/en/messages.po\n" +"X-Crowdin-File-ID: 252\n" #: src/components/Boundary.tsx:12 msgid "Error rendering component" @@ -27,8 +27,8 @@ msgid "An error occurred while rendering this component. Refer to the console fo msgstr "" #: src/components/DashboardItemProxy.tsx:34 -msgid "Title" -msgstr "" +#~ msgid "Title" +#~ msgstr "Title" #: src/components/buttons/AdminButton.tsx:80 msgid "Open in admin interface" @@ -38,82 +38,99 @@ msgstr "" #~ msgid "Copy to clipboard" #~ msgstr "Copy to clipboard" -#: src/components/buttons/CopyButton.tsx:24 +#: src/components/buttons/CopyButton.tsx:29 msgid "Copied" msgstr "" -#: src/components/buttons/CopyButton.tsx:24 +#: src/components/buttons/CopyButton.tsx:29 msgid "Copy" msgstr "" -#: src/components/buttons/PrintingActions.tsx:93 +#: src/components/buttons/PrintingActions.tsx:97 msgid "Print Label" msgstr "" -#: src/components/buttons/PrintingActions.tsx:99 +#: src/components/buttons/PrintingActions.tsx:103 msgid "Print" msgstr "" -#: src/components/buttons/PrintingActions.tsx:100 +#: src/components/buttons/PrintingActions.tsx:104 msgid "Label printing completed successfully" msgstr "" -#: src/components/buttons/PrintingActions.tsx:106 -#: src/components/buttons/PrintingActions.tsx:144 -#: src/components/editors/NotesEditor.tsx:65 -#: src/components/editors/NotesEditor.tsx:165 -#: src/components/forms/fields/ApiFormField.tsx:319 +#: src/components/buttons/PrintingActions.tsx:110 +#: src/components/buttons/PrintingActions.tsx:148 +#: src/components/editors/NotesEditor.tsx:73 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:154 +#: src/components/forms/fields/ApiFormField.tsx:328 +#: src/components/forms/fields/TableField.tsx:43 #: src/components/importer/ImportDataSelector.tsx:187 -#: src/components/importer/ImporterColumnSelector.tsx:207 +#: src/components/importer/ImporterColumnSelector.tsx:210 #: src/components/modals/LicenseModal.tsx:75 -#: src/components/nav/SearchDrawer.tsx:448 +#: src/components/nav/SearchDrawer.tsx:458 +#: src/components/render/ModelType.tsx:290 #: src/pages/ErrorPage.tsx:11 -#: src/pages/part/PartPricingPanel.tsx:67 -#: src/tables/InvenTreeTable.tsx:495 +#: src/pages/part/PartPricingPanel.tsx:71 +#: src/tables/InvenTreeTable.tsx:481 #: src/tables/bom/BomTable.tsx:450 -#: src/tables/stock/StockItemTestResultTable.tsx:299 +#: src/tables/stock/StockItemTestResultTable.tsx:317 msgid "Error" msgstr "" -#: src/components/buttons/PrintingActions.tsx:107 +#: src/components/buttons/PrintingActions.tsx:111 msgid "The label could not be generated" msgstr "" -#: src/components/buttons/PrintingActions.tsx:122 +#: src/components/buttons/PrintingActions.tsx:126 msgid "Print Report" msgstr "" -#: src/components/buttons/PrintingActions.tsx:138 +#: src/components/buttons/PrintingActions.tsx:142 msgid "Generate" msgstr "" -#: src/components/buttons/PrintingActions.tsx:139 +#: src/components/buttons/PrintingActions.tsx:143 msgid "Report printing completed successfully" msgstr "" -#: src/components/buttons/PrintingActions.tsx:145 +#: src/components/buttons/PrintingActions.tsx:149 msgid "The report could not be generated" msgstr "" -#: src/components/buttons/PrintingActions.tsx:173 +#: src/components/buttons/PrintingActions.tsx:177 msgid "Printing Actions" msgstr "" -#: src/components/buttons/PrintingActions.tsx:178 +#: src/components/buttons/PrintingActions.tsx:182 msgid "Print Labels" msgstr "" -#: src/components/buttons/PrintingActions.tsx:184 +#: src/components/buttons/PrintingActions.tsx:188 msgid "Print Reports" msgstr "" +#: src/components/buttons/RemoveRowButton.tsx:8 +msgid "Remove this row" +msgstr "" + #: src/components/buttons/ScanButton.tsx:15 -msgid "Scan QR code" +#: src/components/nav/NavigationDrawer.tsx:117 +#: src/forms/PurchaseOrderForms.tsx:379 +#: src/forms/PurchaseOrderForms.tsx:473 +msgid "Scan Barcode" +msgstr "" + +#: src/components/buttons/ScanButton.tsx:15 +#~ msgid "Scan QR code" +#~ msgstr "Scan QR code" + +#: src/components/buttons/ScanButton.tsx:20 +msgid "Open Barcode Scanner" msgstr "" #: src/components/buttons/ScanButton.tsx:20 -msgid "Open QR code scanner" -msgstr "" +#~ msgid "Open QR code scanner" +#~ msgstr "Open QR code scanner" #: src/components/buttons/SpotlightButton.tsx:14 msgid "Open spotlight" @@ -128,85 +145,347 @@ msgid "Fail" msgstr "" #: src/components/buttons/YesNoButton.tsx:33 -#: src/tables/Filter.tsx:52 +#: src/tables/Filter.tsx:61 msgid "Yes" msgstr "" #: src/components/buttons/YesNoButton.tsx:33 -#: src/tables/Filter.tsx:53 +#: src/tables/Filter.tsx:62 msgid "No" msgstr "" -#: src/components/details/Details.tsx:301 +#: src/components/dashboard/DashboardLayout.tsx:286 +msgid "No Widgets Selected" +msgstr "" + +#: src/components/dashboard/DashboardLayout.tsx:289 +msgid "Use the menu to add widgets to the dashboard" +msgstr "" + +#: src/components/dashboard/DashboardMenu.tsx:59 +#: src/components/dashboard/DashboardMenu.tsx:126 +msgid "Accept Layout" +msgstr "" + +#: src/components/dashboard/DashboardMenu.tsx:91 +#: src/components/nav/NavigationDrawer.tsx:71 +#: src/defaults/actions.tsx:17 +#: src/defaults/links.tsx:9 +#: src/pages/Index/Settings/UserSettings.tsx:47 +msgid "Dashboard" +msgstr "" + +#: src/components/dashboard/DashboardMenu.tsx:99 +msgid "Edit Layout" +msgstr "" + +#: src/components/dashboard/DashboardMenu.tsx:108 +msgid "Add Widget" +msgstr "" + +#: src/components/dashboard/DashboardMenu.tsx:117 +msgid "Remove Widgets" +msgstr "" + +#: src/components/dashboard/DashboardWidget.tsx:65 +msgid "Remove this widget from the dashboard" +msgstr "" + +#: src/components/dashboard/DashboardWidgetDrawer.tsx:77 +msgid "Filter dashboard widgets" +msgstr "" + +#: src/components/dashboard/DashboardWidgetDrawer.tsx:98 +msgid "Add this widget to the dashboard" +msgstr "" + +#: src/components/dashboard/DashboardWidgetDrawer.tsx:123 +msgid "No Widgets Available" +msgstr "" + +#: src/components/dashboard/DashboardWidgetDrawer.tsx:124 +msgid "There are no more widgets available for the dashboard" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:19 +msgid "Subscribed Parts" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:20 +msgid "Show the number of parts which you have subscribed to" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:26 +msgid "Subscribed Categories" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:27 +msgid "Show the number of part categories which you have subscribed to" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:35 +#: src/pages/part/PartSchedulingDetail.tsx:304 +#: src/tables/part/PartTable.tsx:238 +msgid "Low Stock" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:37 +msgid "Show the number of parts which are low on stock" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:43 +msgid "Expired Stock Items" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:45 +msgid "Show the number of stock items which have expired" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:51 +msgid "Stale Stock Items" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:53 +msgid "Show the number of stock items which are stale" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:59 +msgid "Active Build Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:61 +msgid "Show the number of build orders which are currently active" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:66 +msgid "Overdue Build Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:68 +msgid "Show the number of build orders which are overdue" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:73 +msgid "Assigned Build Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:75 +msgid "Show the number of build orders which are assigned to you" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:80 +msgid "Active Sales Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:82 +msgid "Show the number of sales orders which are currently active" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:87 +msgid "Overdue Sales Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:89 +msgid "Show the number of sales orders which are overdue" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:94 +msgid "Assigned Sales Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:96 +msgid "Show the number of sales orders which are assigned to you" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:101 +msgid "Active Purchase Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:103 +msgid "Show the number of purchase orders which are currently active" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:108 +msgid "Overdue Purchase Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:110 +msgid "Show the number of purchase orders which are overdue" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:115 +msgid "Assigned Purchase Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:117 +msgid "Show the number of purchase orders which are assigned to you" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:122 +msgid "Active Return Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:124 +msgid "Show the number of return orders which are currently active" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:129 +msgid "Overdue Return Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:131 +msgid "Show the number of return orders which are overdue" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:136 +msgid "Assigned Return Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:138 +msgid "Show the number of return orders which are assigned to you" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:149 +#: src/components/dashboard/widgets/GetStartedWidget.tsx:15 +#: src/defaults/links.tsx:38 +msgid "Getting Started" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:150 +#: src/defaults/links.tsx:41 +msgid "Getting started with InvenTree" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:157 +#: src/components/dashboard/widgets/NewsWidget.tsx:123 +msgid "News Updates" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:158 +msgid "The latest news from InvenTree" +msgstr "" + +#: src/components/dashboard/widgets/ColorToggleWidget.tsx:18 +#: src/components/nav/MainMenu.tsx:77 +msgid "Change Color Mode" +msgstr "" + +#: src/components/dashboard/widgets/ColorToggleWidget.tsx:23 +msgid "Change the color mode of the user interface" +msgstr "" + +#: src/components/dashboard/widgets/LanguageSelectWidget.tsx:18 +msgid "Change Language" +msgstr "" + +#: src/components/dashboard/widgets/LanguageSelectWidget.tsx:23 +msgid "Change the language of the user interface" +msgstr "" + +#: src/components/dashboard/widgets/NewsWidget.tsx:61 +#: src/components/nav/NotificationDrawer.tsx:88 +#: src/pages/Notifications.tsx:73 +msgid "Mark as read" +msgstr "" + +#: src/components/dashboard/widgets/NewsWidget.tsx:115 +msgid "Requires Superuser" +msgstr "" + +#: src/components/dashboard/widgets/NewsWidget.tsx:116 +msgid "This widget requires superuser permissions" +msgstr "" + +#: src/components/dashboard/widgets/NewsWidget.tsx:133 +msgid "No News" +msgstr "" + +#: src/components/dashboard/widgets/NewsWidget.tsx:134 +msgid "There are no unread news items" +msgstr "" + +#: src/components/details/Details.tsx:300 msgid "No name defined" msgstr "" -#: src/components/details/DetailsImage.tsx:65 +#: src/components/details/DetailsImage.tsx:69 msgid "Remove Image" msgstr "" -#: src/components/details/DetailsImage.tsx:68 +#: src/components/details/DetailsImage.tsx:72 msgid "Remove the associated image from this item?" msgstr "" -#: src/components/details/DetailsImage.tsx:71 -#: src/forms/StockForms.tsx:533 +#: src/components/details/DetailsImage.tsx:75 +#: src/forms/StockForms.tsx:651 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:199 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:306 -#: src/pages/stock/StockDetail.tsx:526 +#: src/pages/stock/StockDetail.tsx:690 msgid "Remove" msgstr "" -#: src/components/details/DetailsImage.tsx:71 -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:158 -#: src/components/items/ActionDropdown.tsx:215 -#: src/components/items/ActionDropdown.tsx:216 -#: src/contexts/ThemeContext.tsx:43 +#: src/components/details/DetailsImage.tsx:75 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:184 +#: src/components/items/ActionDropdown.tsx:268 +#: src/components/items/ActionDropdown.tsx:269 +#: src/contexts/ThemeContext.tsx:45 #: src/hooks/UseForm.tsx:40 -#: src/tables/FilterSelectDrawer.tsx:205 -#: src/tables/build/BuildOutputTable.tsx:286 +#: src/tables/FilterSelectDrawer.tsx:241 +#: src/tables/RowActions.tsx:59 +#: src/tables/build/BuildOutputTable.tsx:434 msgid "Cancel" msgstr "" -#: src/components/details/DetailsImage.tsx:97 +#: src/components/details/DetailsImage.tsx:101 msgid "Drag and drop to upload" msgstr "" -#: src/components/details/DetailsImage.tsx:100 +#: src/components/details/DetailsImage.tsx:104 msgid "Click to select file(s)" msgstr "" -#: src/components/details/DetailsImage.tsx:226 +#: src/components/details/DetailsImage.tsx:230 msgid "Clear" msgstr "" -#: src/components/details/DetailsImage.tsx:232 -#: src/components/forms/ApiForm.tsx:627 -#: src/contexts/ThemeContext.tsx:43 -#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:60 +#: src/components/details/DetailsImage.tsx:236 +#: src/components/forms/ApiForm.tsx:660 +#: src/contexts/ThemeContext.tsx:45 msgid "Submit" msgstr "" -#: src/components/details/DetailsImage.tsx:272 +#: src/components/details/DetailsImage.tsx:280 msgid "Select from existing images" msgstr "" -#: src/components/details/DetailsImage.tsx:280 +#: src/components/details/DetailsImage.tsx:288 msgid "Select Image" msgstr "" -#: src/components/details/DetailsImage.tsx:292 +#: src/components/details/DetailsImage.tsx:304 +msgid "Download remote image" +msgstr "" + +#: src/components/details/DetailsImage.tsx:319 msgid "Upload new image" msgstr "" -#: src/components/details/DetailsImage.tsx:299 +#: src/components/details/DetailsImage.tsx:326 msgid "Upload Image" msgstr "" -#: src/components/details/DetailsImage.tsx:312 +#: src/components/details/DetailsImage.tsx:339 msgid "Delete image" msgstr "" +#: src/components/details/DetailsImage.tsx:373 +msgid "Download Image" +msgstr "" + +#: src/components/details/DetailsImage.tsx:378 +msgid "Image downloaded successfully" +msgstr "" + #: src/components/details/PartIcons.tsx:43 #~ msgid "Part is a template part (variants can be made from this part)" #~ msgstr "Part is a template part (variants can be made from this part)" @@ -235,36 +514,57 @@ msgstr "" #~ msgid "Part is virtual (not a physical part)" #~ msgstr "Part is virtual (not a physical part)" -#: src/components/editors/NotesEditor.tsx:66 +#: src/components/editors/NotesEditor.tsx:74 msgid "Image upload failed" msgstr "" -#: src/components/editors/NotesEditor.tsx:156 -#: src/components/forms/ApiForm.tsx:467 +#: src/components/editors/NotesEditor.tsx:83 +#: src/components/editors/NotesEditor.tsx:119 +#: src/components/forms/ApiForm.tsx:475 #: src/tables/bom/BomTable.tsx:441 msgid "Success" msgstr "" -#: src/components/editors/NotesEditor.tsx:157 +#: src/components/editors/NotesEditor.tsx:84 +msgid "Image uploaded successfully" +msgstr "" + +#: src/components/editors/NotesEditor.tsx:120 msgid "Notes saved successfully" msgstr "" -#: src/components/editors/NotesEditor.tsx:166 +#: src/components/editors/NotesEditor.tsx:131 msgid "Failed to save notes" msgstr "" -#: src/components/editors/NotesEditor.tsx:198 -msgid "Preview Notes" +#: src/components/editors/NotesEditor.tsx:134 +msgid "Error Saving Notes" msgstr "" -#: src/components/editors/NotesEditor.tsx:198 -msgid "Edit Notes" -msgstr "" +#: src/components/editors/NotesEditor.tsx:151 +#~ msgid "Disable Editing" +#~ msgstr "Disable Editing" -#: src/components/editors/NotesEditor.tsx:212 +#: src/components/editors/NotesEditor.tsx:154 msgid "Save Notes" msgstr "" +#: src/components/editors/NotesEditor.tsx:173 +msgid "Close Editor" +msgstr "" + +#: src/components/editors/NotesEditor.tsx:180 +msgid "Enable Editing" +msgstr "" + +#: src/components/editors/NotesEditor.tsx:198 +#~ msgid "Preview Notes" +#~ msgstr "Preview Notes" + +#: src/components/editors/NotesEditor.tsx:198 +#~ msgid "Edit Notes" +#~ msgstr "Edit Notes" + #: src/components/editors/TemplateEditor/CodeEditor/index.tsx:9 msgid "Code" msgstr "" @@ -281,40 +581,44 @@ msgstr "" msgid "PDF Preview" msgstr "" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:104 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:115 msgid "Error loading template" msgstr "" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:116 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:127 msgid "Error saving template" msgstr "" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:146 -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:274 -msgid "Save & Reload Preview" -msgstr "" - -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:151 -msgid "Are you sure you want to Save & Reload the preview?" -msgstr "" - #: src/components/editors/TemplateEditor/TemplateEditor.tsx:151 #~ msgid "Save & Reload preview?" #~ msgstr "Save & Reload preview?" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:153 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:155 +msgid "Could not load the template from the server." +msgstr "" + +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:172 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:303 +msgid "Save & Reload Preview" +msgstr "" + +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:177 +msgid "Are you sure you want to Save & Reload the preview?" +msgstr "" + +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:179 msgid "To render the preview the current template needs to be replaced on the server with your modifications which may break the label if it is under active use. Do you want to proceed?" msgstr "" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:157 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:183 msgid "Save & Reload" msgstr "" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:189 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:215 msgid "Preview updated" msgstr "" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:190 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:216 msgid "The preview has been updated successfully." msgstr "" @@ -322,15 +626,15 @@ msgstr "" #~ msgid "Save & Reload preview" #~ msgstr "Save & Reload preview" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:266 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:295 msgid "Reload preview" msgstr "" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:267 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:296 msgid "Use the currently stored template from the server" msgstr "" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:275 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:304 msgid "Save the current template and reload the preview" msgstr "" @@ -338,11 +642,11 @@ msgstr "" #~ msgid "to preview" #~ msgstr "to preview" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:333 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:365 msgid "Select instance to preview" msgstr "" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:377 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:409 msgid "Error rendering template" msgstr "" @@ -379,6 +683,7 @@ msgid "This page does not exist" msgstr "" #: src/components/errors/PermissionDenied.tsx:8 +#: src/functions/notifications.tsx:24 msgid "Permission Denied" msgstr "" @@ -394,8 +699,8 @@ msgstr "" msgid "A server error occurred" msgstr "" -#: src/components/forms/ApiForm.tsx:151 -#: src/components/forms/ApiForm.tsx:555 +#: src/components/forms/ApiForm.tsx:154 +#: src/components/forms/ApiForm.tsx:579 msgid "Form Error" msgstr "" @@ -403,22 +708,22 @@ msgstr "" #~ msgid "Form Errors Exist" #~ msgstr "Form Errors Exist" -#: src/components/forms/ApiForm.tsx:563 +#: src/components/forms/ApiForm.tsx:587 msgid "Errors exist for one or more form fields" msgstr "" -#: src/components/forms/ApiForm.tsx:665 -#: src/tables/plugin/PluginListTable.tsx:388 +#: src/components/forms/ApiForm.tsx:698 +#: src/tables/plugin/PluginListTable.tsx:195 msgid "Update" msgstr "" -#: src/components/forms/ApiForm.tsx:685 -#: src/components/items/ActionDropdown.tsx:195 +#: src/components/forms/ApiForm.tsx:718 +#: src/components/items/ActionDropdown.tsx:248 #: src/hooks/UseForm.tsx:122 -#: src/pages/Index/Scan.tsx:343 +#: src/pages/Index/Scan.tsx:357 #: src/pages/Notifications.tsx:123 -#: src/tables/RowActions.tsx:43 -#: src/tables/plugin/PluginListTable.tsx:420 +#: src/tables/RowActions.tsx:49 +#: src/tables/plugin/PluginListTable.tsx:232 msgid "Delete" msgstr "" @@ -428,14 +733,6 @@ msgstr "" #~ msgid "Check your your input and try again." #~ msgstr "Check your your input and try again." -#: src/components/forms/AuthenticationForm.tsx:51 -msgid "Login successful" -msgstr "" - -#: src/components/forms/AuthenticationForm.tsx:52 -msgid "Logged in successfully" -msgstr "" - #: src/components/forms/AuthenticationForm.tsx:52 #~ msgid "Welcome back!" #~ msgstr "Welcome back!" @@ -444,14 +741,22 @@ msgstr "" #~ msgid "Login successfull" #~ msgstr "Login successfull" -#: src/components/forms/AuthenticationForm.tsx:58 +#: src/components/forms/AuthenticationForm.tsx:55 +msgid "Login successful" +msgstr "" + +#: src/components/forms/AuthenticationForm.tsx:56 +msgid "Logged in successfully" +msgstr "" + +#: src/components/forms/AuthenticationForm.tsx:61 msgid "Login failed" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:59 -#: src/components/forms/AuthenticationForm.tsx:76 -#: src/components/forms/AuthenticationForm.tsx:211 -#: src/functions/auth.tsx:164 +#: src/components/forms/AuthenticationForm.tsx:62 +#: src/components/forms/AuthenticationForm.tsx:79 +#: src/components/forms/AuthenticationForm.tsx:214 +#: src/functions/auth.tsx:175 msgid "Check your input and try again." msgstr "" @@ -460,45 +765,46 @@ msgstr "" #~ msgid "Mail delivery successfull" #~ msgstr "Mail delivery successfull" -#: src/components/forms/AuthenticationForm.tsx:70 -#: src/functions/auth.tsx:155 +#: src/components/forms/AuthenticationForm.tsx:73 +#: src/functions/auth.tsx:166 msgid "Mail delivery successful" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:71 +#: src/components/forms/AuthenticationForm.tsx:74 msgid "Check your inbox for the login link. If you have an account, you will receive a login link. Check in spam too." msgstr "" -#: src/components/forms/AuthenticationForm.tsx:75 +#: src/components/forms/AuthenticationForm.tsx:78 msgid "Mail delivery failed" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:95 +#: src/components/forms/AuthenticationForm.tsx:98 msgid "Or continue with other methods" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:106 -#: src/components/forms/AuthenticationForm.tsx:227 +#: src/components/forms/AuthenticationForm.tsx:109 +#: src/components/forms/AuthenticationForm.tsx:230 +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:67 msgid "Username" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:107 -#: src/components/forms/AuthenticationForm.tsx:228 +#: src/components/forms/AuthenticationForm.tsx:110 +#: src/components/forms/AuthenticationForm.tsx:231 msgid "Your username" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:112 -#: src/components/forms/AuthenticationForm.tsx:240 -#: src/pages/Auth/Set-Password.tsx:106 +#: src/components/forms/AuthenticationForm.tsx:115 +#: src/components/forms/AuthenticationForm.tsx:243 +#: src/pages/Auth/Set-Password.tsx:101 msgid "Password" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:113 -#: src/components/forms/AuthenticationForm.tsx:241 +#: src/components/forms/AuthenticationForm.tsx:116 +#: src/components/forms/AuthenticationForm.tsx:244 msgid "Your password" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:125 +#: src/components/forms/AuthenticationForm.tsx:128 #: src/pages/Auth/Reset.tsx:26 msgid "Reset password" msgstr "" @@ -507,77 +813,79 @@ msgstr "" #~ msgid "Log in" #~ msgstr "Log in" -#: src/components/forms/AuthenticationForm.tsx:134 -#: src/components/forms/AuthenticationForm.tsx:233 +#: src/components/forms/AuthenticationForm.tsx:136 +#~ msgid "I will use username and password" +#~ msgstr "I will use username and password" + +#: src/components/forms/AuthenticationForm.tsx:137 +#: src/components/forms/AuthenticationForm.tsx:236 #: src/pages/Auth/Reset.tsx:31 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:51 msgid "Email" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:135 +#: src/components/forms/AuthenticationForm.tsx:138 #: src/pages/Auth/Reset.tsx:32 -#: src/pages/Auth/Set-Password.tsx:107 +#: src/pages/Auth/Set-Password.tsx:102 msgid "We will send you a link to login - if you are registered" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:136 -#~ msgid "I will use username and password" -#~ msgstr "I will use username and password" - -#: src/components/forms/AuthenticationForm.tsx:151 +#: src/components/forms/AuthenticationForm.tsx:154 msgid "Send me an email" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:153 +#: src/components/forms/AuthenticationForm.tsx:156 msgid "Use username and password" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:162 +#: src/components/forms/AuthenticationForm.tsx:165 msgid "Log In" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:164 +#: src/components/forms/AuthenticationForm.tsx:167 +#: src/pages/Auth/Reset.tsx:41 +#: src/pages/Auth/Set-Password.tsx:107 msgid "Send Email" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:193 +#: src/components/forms/AuthenticationForm.tsx:196 msgid "Registration successful" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:194 +#: src/components/forms/AuthenticationForm.tsx:197 msgid "Please confirm your email address to complete the registration" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:210 +#: src/components/forms/AuthenticationForm.tsx:213 msgid "Input error" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:234 +#: src/components/forms/AuthenticationForm.tsx:237 msgid "This will be used for a confirmation" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:246 +#: src/components/forms/AuthenticationForm.tsx:249 msgid "Password repeat" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:247 +#: src/components/forms/AuthenticationForm.tsx:250 msgid "Repeat password" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:259 -#: src/components/forms/AuthenticationForm.tsx:304 +#: src/components/forms/AuthenticationForm.tsx:262 +#: src/components/forms/AuthenticationForm.tsx:307 msgid "Register" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:265 +#: src/components/forms/AuthenticationForm.tsx:268 msgid "Or use SSO" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:296 +#: src/components/forms/AuthenticationForm.tsx:299 msgid "Don't have an account?" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:315 +#: src/components/forms/AuthenticationForm.tsx:318 msgid "Go back to login" msgstr "" @@ -588,19 +896,20 @@ msgstr "" #: src/components/forms/HostOptionsForm.tsx:42 #: src/components/forms/HostOptionsForm.tsx:70 +#: src/components/plugins/PluginDrawer.tsx:69 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:410 +#: src/pages/Index/Settings/AdminCenter/UnitManagmentPanel.tsx:19 #: src/pages/part/CategoryDetail.tsx:81 -#: src/pages/part/PartDetail.tsx:143 -#: src/pages/stock/LocationDetail.tsx:89 -#: src/tables/machine/MachineTypeTable.tsx:65 -#: src/tables/machine/MachineTypeTable.tsx:109 -#: src/tables/machine/MachineTypeTable.tsx:216 -#: src/tables/machine/MachineTypeTable.tsx:319 +#: src/pages/part/PartDetail.tsx:164 +#: src/pages/stock/LocationDetail.tsx:83 +#: src/tables/machine/MachineTypeTable.tsx:70 +#: src/tables/machine/MachineTypeTable.tsx:119 +#: src/tables/machine/MachineTypeTable.tsx:237 +#: src/tables/machine/MachineTypeTable.tsx:340 #: src/tables/plugin/PluginErrorTable.tsx:33 -#: src/tables/plugin/PluginListTable.tsx:126 #: src/tables/purchasing/ManufacturerPartParameterTable.tsx:32 #: src/tables/settings/GroupTable.tsx:147 -#: src/tables/settings/PendingTasksTable.tsx:28 +#: src/tables/settings/PendingTasksTable.tsx:32 #: src/tables/stock/LocationTypesTable.tsx:69 msgid "Name" msgstr "" @@ -650,7 +959,7 @@ msgid "Uncategorized" msgstr "" #: src/components/forms/fields/IconField.tsx:209 -#: src/components/nav/Layout.tsx:70 +#: src/components/nav/Layout.tsx:77 #: src/tables/part/PartThumbTable.tsx:192 msgid "Search..." msgstr "" @@ -667,28 +976,27 @@ msgstr "" msgid "{0} icons" msgstr "" -#: src/components/forms/fields/RelatedModelField.tsx:318 -#: src/pages/Index/Settings/UserSettings.tsx:96 +#: src/components/forms/fields/RelatedModelField.tsx:319 +#: src/pages/Index/Settings/UserSettings.tsx:97 #: src/tables/Search.tsx:23 msgid "Search" msgstr "" -#: src/components/forms/fields/RelatedModelField.tsx:319 +#: src/components/forms/fields/RelatedModelField.tsx:320 #: src/components/modals/AboutInvenTreeModal.tsx:81 -#: src/components/widgets/WidgetLayout.tsx:120 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:316 msgid "Loading" msgstr "" -#: src/components/forms/fields/RelatedModelField.tsx:321 +#: src/components/forms/fields/RelatedModelField.tsx:322 msgid "No results found" msgstr "" -#: src/components/forms/fields/TableField.tsx:52 -msgid "modelRenderer entry required for tables" -msgstr "" +#: src/components/forms/fields/TableField.tsx:72 +#~ msgid "modelRenderer entry required for tables" +#~ msgstr "modelRenderer entry required for tables" -#: src/components/forms/fields/TableField.tsx:76 +#: src/components/forms/fields/TableField.tsx:167 msgid "No entries available" msgstr "" @@ -741,7 +1049,7 @@ msgid "Filter by row validation status" msgstr "" #: src/components/importer/ImportDataSelector.tsx:365 -#: src/tables/build/BuildOutputTable.tsx:266 +#: src/tables/build/BuildOutputTable.tsx:407 msgid "Complete" msgstr "" @@ -749,20 +1057,21 @@ msgstr "" msgid "Filter by row completion status" msgstr "" -#: src/components/importer/ImportDataSelector.tsx:383 +#: src/components/importer/ImportDataSelector.tsx:384 msgid "Import selected rows" msgstr "" -#: src/components/importer/ImportDataSelector.tsx:398 +#: src/components/importer/ImportDataSelector.tsx:399 msgid "Processing Data" msgstr "" -#: src/components/importer/ImporterColumnSelector.tsx:50 -#: src/components/importer/ImporterColumnSelector.tsx:176 +#: src/components/importer/ImporterColumnSelector.tsx:53 +#: src/components/importer/ImporterColumnSelector.tsx:179 +#: src/components/items/ErrorItem.tsx:12 msgid "An error occurred" msgstr "" -#: src/components/importer/ImporterColumnSelector.tsx:62 +#: src/components/importer/ImporterColumnSelector.tsx:65 msgid "Select column, or leave blank to ignore this field." msgstr "" @@ -778,51 +1087,51 @@ msgstr "" #~ msgid "Imported Column Name" #~ msgstr "Imported Column Name" -#: src/components/importer/ImporterColumnSelector.tsx:182 +#: src/components/importer/ImporterColumnSelector.tsx:185 msgid "Ignore this field" msgstr "" -#: src/components/importer/ImporterColumnSelector.tsx:196 +#: src/components/importer/ImporterColumnSelector.tsx:199 msgid "Mapping data columns to database fields" msgstr "" -#: src/components/importer/ImporterColumnSelector.tsx:201 +#: src/components/importer/ImporterColumnSelector.tsx:204 msgid "Accept Column Mapping" msgstr "" -#: src/components/importer/ImporterColumnSelector.tsx:214 +#: src/components/importer/ImporterColumnSelector.tsx:217 msgid "Database Field" msgstr "" -#: src/components/importer/ImporterColumnSelector.tsx:215 +#: src/components/importer/ImporterColumnSelector.tsx:218 msgid "Field Description" msgstr "" -#: src/components/importer/ImporterColumnSelector.tsx:216 +#: src/components/importer/ImporterColumnSelector.tsx:219 msgid "Imported Column" msgstr "" -#: src/components/importer/ImporterColumnSelector.tsx:217 +#: src/components/importer/ImporterColumnSelector.tsx:220 msgid "Default Value" msgstr "" -#: src/components/importer/ImporterDrawer.tsx:44 +#: src/components/importer/ImporterDrawer.tsx:46 msgid "Upload File" msgstr "" -#: src/components/importer/ImporterDrawer.tsx:45 +#: src/components/importer/ImporterDrawer.tsx:47 msgid "Map Columns" msgstr "" -#: src/components/importer/ImporterDrawer.tsx:46 +#: src/components/importer/ImporterDrawer.tsx:48 msgid "Import Data" msgstr "" -#: src/components/importer/ImporterDrawer.tsx:47 +#: src/components/importer/ImporterDrawer.tsx:49 msgid "Process Data" msgstr "" -#: src/components/importer/ImporterDrawer.tsx:48 +#: src/components/importer/ImporterDrawer.tsx:50 msgid "Complete Import" msgstr "" @@ -830,28 +1139,28 @@ msgstr "" #~ msgid "Cancel import session" #~ msgstr "Cancel import session" -#: src/components/importer/ImporterDrawer.tsx:104 +#: src/components/importer/ImporterDrawer.tsx:106 msgid "Import Complete" msgstr "" -#: src/components/importer/ImporterDrawer.tsx:107 +#: src/components/importer/ImporterDrawer.tsx:109 msgid "Data has been imported successfully" msgstr "" -#: src/components/importer/ImporterDrawer.tsx:109 -#: src/components/importer/ImporterDrawer.tsx:118 +#: src/components/importer/ImporterDrawer.tsx:111 +#: src/components/importer/ImporterDrawer.tsx:120 msgid "Close" msgstr "" -#: src/components/importer/ImporterDrawer.tsx:115 +#: src/components/importer/ImporterDrawer.tsx:117 msgid "Unknown Status" msgstr "" -#: src/components/importer/ImporterDrawer.tsx:116 +#: src/components/importer/ImporterDrawer.tsx:118 msgid "Import session has unknown status" msgstr "" -#: src/components/importer/ImporterDrawer.tsx:135 +#: src/components/importer/ImporterDrawer.tsx:137 msgid "Importing Data" msgstr "" @@ -860,85 +1169,115 @@ msgid "Importing Records" msgstr "" #: src/components/importer/ImporterImportProgress.tsx:39 -msgid "Imported rows" +#: src/tables/settings/ImportSessionTable.tsx:78 +msgid "Imported Rows" msgstr "" -#: src/components/items/ActionDropdown.tsx:121 -msgid "Barcode Actions" +#: src/components/importer/ImporterImportProgress.tsx:39 +#~ msgid "Imported rows" +#~ msgstr "Imported rows" + +#: src/components/items/ActionDropdown.tsx:126 +msgid "Options" msgstr "" #: src/components/items/ActionDropdown.tsx:140 -msgid "View Barcode" -msgstr "" +#~ msgid "View Barcode" +#~ msgstr "View Barcode" -#: src/components/items/ActionDropdown.tsx:147 -msgid "View" -msgstr "" - -#: src/components/items/ActionDropdown.tsx:148 -msgid "View barcode" -msgstr "" - -#: src/components/items/ActionDropdown.tsx:161 -msgid "Link Barcode" +#: src/components/items/ActionDropdown.tsx:162 +#: src/tables/InvenTreeTableHeader.tsx:159 +#: src/tables/InvenTreeTableHeader.tsx:160 +msgid "Barcode Actions" msgstr "" #: src/components/items/ActionDropdown.tsx:162 -msgid "Link custom barcode" +#~ msgid "Link custom barcode" +#~ msgstr "Link custom barcode" + +#: src/components/items/ActionDropdown.tsx:167 +msgid "View" msgstr "" -#: src/components/items/ActionDropdown.tsx:173 -#: src/forms/PurchaseOrderForms.tsx:426 -msgid "Unlink Barcode" +#: src/components/items/ActionDropdown.tsx:169 +msgid "View barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:174 -msgid "Unlink custom barcode" +#: src/components/items/ActionDropdown.tsx:175 +msgid "Link Barcode" +msgstr "" + +#: src/components/items/ActionDropdown.tsx:177 +msgid "Link a custom barcode to this item" msgstr "" #: src/components/items/ActionDropdown.tsx:183 -#: src/tables/RowActions.tsx:33 +#: src/components/items/QRCode.tsx:193 +#: src/forms/PurchaseOrderForms.tsx:464 +msgid "Unlink Barcode" +msgstr "" + +#: src/components/items/ActionDropdown.tsx:185 +msgid "Unlink custom barcode" +msgstr "" + +#: src/components/items/ActionDropdown.tsx:236 +#: src/tables/RowActions.tsx:39 msgid "Edit" msgstr "" -#: src/components/items/ActionDropdown.tsx:184 +#: src/components/items/ActionDropdown.tsx:237 msgid "Edit item" msgstr "" -#: src/components/items/ActionDropdown.tsx:196 +#: src/components/items/ActionDropdown.tsx:249 msgid "Delete item" msgstr "" -#: src/components/items/ActionDropdown.tsx:204 -#: src/components/items/ActionDropdown.tsx:205 +#: src/components/items/ActionDropdown.tsx:257 +#: src/components/items/ActionDropdown.tsx:258 msgid "Hold" msgstr "" -#: src/components/items/ActionDropdown.tsx:227 -#: src/tables/RowActions.tsx:23 +#: src/components/items/ActionDropdown.tsx:280 +#: src/tables/RowActions.tsx:29 msgid "Duplicate" msgstr "" -#: src/components/items/ActionDropdown.tsx:228 +#: src/components/items/ActionDropdown.tsx:281 msgid "Duplicate item" msgstr "" +#: src/components/items/BarcodeInput.tsx:23 +msgid "Scan barcode data here using barcode scanner" +msgstr "" + +#: src/components/items/BarcodeInput.tsx:24 +#: src/tables/settings/BarcodeScanHistoryTable.tsx:65 +msgid "Barcode" +msgstr "" + +#: src/components/items/BarcodeInput.tsx:25 +msgid "Scan" +msgstr "" + #: src/components/items/DocTooltip.tsx:92 +#: src/components/items/GettingStartedCarousel.tsx:20 msgid "Read More" msgstr "" -#: src/components/items/ErrorItem.tsx:5 -#: src/tables/InvenTreeTable.tsx:487 +#: src/components/items/ErrorItem.tsx:8 +#: src/tables/InvenTreeTable.tsx:473 msgid "Unknown error" msgstr "" -#: src/components/items/ErrorItem.tsx:10 -msgid "An error occurred:" -msgstr "" +#: src/components/items/ErrorItem.tsx:13 +#~ msgid "An error occurred:" +#~ msgstr "An error occurred:" #: src/components/items/GettingStartedCarousel.tsx:27 -msgid "Read more" -msgstr "" +#~ msgid "Read more" +#~ msgstr "Read more" #: src/components/items/InfoItem.tsx:27 msgid "None" @@ -965,30 +1304,51 @@ msgstr "" msgid "This panel is a placeholder." msgstr "" -#: src/components/items/QRCode.tsx:87 +#: src/components/items/QRCode.tsx:89 msgid "Low (7%)" msgstr "" -#: src/components/items/QRCode.tsx:88 +#: src/components/items/QRCode.tsx:90 msgid "Medium (15%)" msgstr "" -#: src/components/items/QRCode.tsx:89 +#: src/components/items/QRCode.tsx:91 msgid "Quartile (25%)" msgstr "" -#: src/components/items/QRCode.tsx:90 +#: src/components/items/QRCode.tsx:92 msgid "High (30%)" msgstr "" -#: src/components/items/QRCode.tsx:107 -msgid "Barcode Data:" +#: src/components/items/QRCode.tsx:100 +msgid "Custom barcode" +msgstr "" + +#: src/components/items/QRCode.tsx:101 +msgid "A custom barcode is registered for this item. The shown code is not that custom barcode." msgstr "" #: src/components/items/QRCode.tsx:118 +msgid "Barcode Data:" +msgstr "" + +#: src/components/items/QRCode.tsx:129 msgid "Select Error Correction Level" msgstr "" +#: src/components/items/QRCode.tsx:171 +#: src/pages/part/PartDetail.tsx:239 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:187 +#: src/pages/sales/ReturnOrderDetail.tsx:157 +#: src/pages/sales/SalesOrderDetail.tsx:169 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:166 +msgid "Link" +msgstr "" + +#: src/components/items/QRCode.tsx:190 +msgid "This will remove the link to the associated barcode" +msgstr "" + #: src/components/modals/AboutInvenTreeModal.tsx:99 msgid "Version Information" msgstr "" @@ -1062,11 +1422,11 @@ msgstr "" msgid "Submit Bug Report" msgstr "" -#: src/components/modals/AboutInvenTreeModal.tsx:183 +#: src/components/modals/AboutInvenTreeModal.tsx:181 msgid "Copy version information" msgstr "" -#: src/components/modals/AboutInvenTreeModal.tsx:192 +#: src/components/modals/AboutInvenTreeModal.tsx:189 #: src/components/modals/ServerInfoModal.tsx:147 msgid "Dismiss" msgstr "" @@ -1091,61 +1451,20 @@ msgstr "" msgid "{key} Packages" msgstr "" -#: src/components/modals/QrCodeModal.tsx:72 +#: src/components/modals/QrCodeModal.tsx:24 msgid "Unknown response" msgstr "" -#: src/components/modals/QrCodeModal.tsx:102 -#: src/pages/Index/Scan.tsx:636 -msgid "Error while getting camera" -msgstr "" - -#: src/components/modals/QrCodeModal.tsx:125 -#: src/pages/Index/Scan.tsx:659 -msgid "Error while scanning" -msgstr "" - -#: src/components/modals/QrCodeModal.tsx:139 -#: src/pages/Index/Scan.tsx:673 -msgid "Error while stopping" -msgstr "" - -#: src/components/modals/QrCodeModal.tsx:154 -#: src/defaults/menuItems.tsx:21 -#: src/pages/Index/Scan.tsx:746 -msgid "Scanning" -msgstr "" - -#: src/components/modals/QrCodeModal.tsx:154 -#: src/pages/Index/Scan.tsx:746 -msgid "Not scanning" -msgstr "" - -#: src/components/modals/QrCodeModal.tsx:159 -#: src/pages/Index/Scan.tsx:752 -msgid "Select Camera" -msgstr "" - -#: src/components/modals/QrCodeModal.tsx:169 -#: src/pages/Index/Scan.tsx:737 -msgid "Start scanning" -msgstr "" - -#: src/components/modals/QrCodeModal.tsx:176 -#: src/pages/Index/Scan.tsx:729 -msgid "Stop scanning" -msgstr "" - -#: src/components/modals/QrCodeModal.tsx:181 +#: src/components/modals/QrCodeModal.tsx:39 msgid "No scans yet!" msgstr "" -#: src/components/modals/QrCodeModal.tsx:201 +#: src/components/modals/QrCodeModal.tsx:57 msgid "Close modal" msgstr "" #: src/components/modals/ServerInfoModal.tsx:26 -#: src/pages/Index/Settings/SystemSettings.tsx:38 +#: src/pages/Index/Settings/SystemSettings.tsx:37 msgid "Server" msgstr "" @@ -1206,6 +1525,7 @@ msgid "Background Worker" msgstr "" #: src/components/modals/ServerInfoModal.tsx:101 +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:29 msgid "Background worker not running" msgstr "" @@ -1218,8 +1538,8 @@ msgid "Email settings not configured" msgstr "" #: src/components/modals/ServerInfoModal.tsx:121 -#: src/tables/plugin/PluginListTable.tsx:144 -#: src/tables/plugin/PluginListTable.tsx:294 +#: src/components/plugins/PluginDrawer.tsx:89 +#: src/tables/plugin/PluginListTable.tsx:116 msgid "Version" msgstr "" @@ -1227,7 +1547,7 @@ msgstr "" msgid "Server Version" msgstr "" -#: src/components/nav/Layout.tsx:73 +#: src/components/nav/Layout.tsx:80 msgid "Nothing found..." msgstr "" @@ -1237,18 +1557,26 @@ msgstr "" #~ msgstr "Profile" #: src/components/nav/MainMenu.tsx:52 +#: src/components/nav/NavigationDrawer.tsx:178 #: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:28 msgid "Settings" msgstr "" #: src/components/nav/MainMenu.tsx:59 -#: src/defaults/menuItems.tsx:15 -msgid "Account settings" +#: src/pages/Index/Settings/UserSettings.tsx:152 +msgid "Account Settings" msgstr "" +#: src/components/nav/MainMenu.tsx:59 +#: src/defaults/menuItems.tsx:15 +#~ msgid "Account settings" +#~ msgstr "Account settings" + #: src/components/nav/MainMenu.tsx:67 -#: src/defaults/menuItems.tsx:58 -#: src/pages/Index/Settings/SystemSettings.tsx:315 +#: src/components/nav/NavigationDrawer.tsx:141 +#: src/components/nav/SettingsHeader.tsx:49 +#: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:37 +#: src/pages/Index/Settings/SystemSettings.tsx:310 msgid "System Settings" msgstr "" @@ -1260,14 +1588,11 @@ msgstr "" #~ msgid "Switch to pseudo language" #~ msgstr "Switch to pseudo language" -#: src/components/nav/MainMenu.tsx:77 -msgid "Change Color Mode" -msgstr "" - #: src/components/nav/MainMenu.tsx:86 -#: src/defaults/actions.tsx:71 -#: src/defaults/menuItems.tsx:63 -#: src/pages/Index/Settings/AdminCenter/Index.tsx:221 +#: src/components/nav/NavigationDrawer.tsx:148 +#: src/components/nav/SettingsHeader.tsx:50 +#: src/defaults/actions.tsx:63 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:251 msgid "Admin Center" msgstr "" @@ -1275,458 +1600,732 @@ msgstr "" msgid "Logout" msgstr "" -#: src/components/nav/NavHoverMenu.tsx:65 -#: src/defaults/actions.tsx:60 -msgid "Open Navigation" -msgstr "" - #: src/components/nav/NavHoverMenu.tsx:84 -msgid "View all" -msgstr "" +#~ msgid "View all" +#~ msgstr "View all" #: src/components/nav/NavHoverMenu.tsx:100 #: src/components/nav/NavHoverMenu.tsx:110 -msgid "Get started" -msgstr "" +#~ msgid "Get started" +#~ msgstr "Get started" #: src/components/nav/NavHoverMenu.tsx:103 -msgid "Overview over high-level objects, functions and possible usecases." -msgstr "" - -#: src/components/nav/NavigationDrawer.tsx:57 -msgid "Navigation" -msgstr "" +#~ msgid "Overview over high-level objects, functions and possible usecases." +#~ msgstr "Overview over high-level objects, functions and possible usecases." #: src/components/nav/NavigationDrawer.tsx:60 -msgid "Pages" +#~ msgid "Pages" +#~ msgstr "Pages" + +#: src/components/nav/NavigationDrawer.tsx:77 +#: src/components/render/ModelType.tsx:31 +#: src/defaults/links.tsx:10 +#: src/pages/Index/Settings/SystemSettings.tsx:172 +#: src/pages/part/CategoryDetail.tsx:125 +#: src/pages/part/CategoryDetail.tsx:249 +#: src/pages/part/CategoryDetail.tsx:279 +#: src/pages/part/PartDetail.tsx:856 +msgid "Parts" msgstr "" -#: src/components/nav/NavigationDrawer.tsx:65 -#: src/pages/Index/Settings/AdminCenter/Index.tsx:176 -#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:41 -msgid "Plugins" +#: src/components/nav/NavigationDrawer.tsx:84 +#: src/components/render/Part.tsx:30 +#: src/defaults/links.tsx:11 +#: src/pages/Index/Settings/SystemSettings.tsx:205 +#: src/pages/part/PartDetail.tsx:593 +#: src/pages/stock/LocationDetail.tsx:352 +#: src/pages/stock/StockDetail.tsx:528 +#: src/tables/stock/StockItemTable.tsx:69 +msgid "Stock" msgstr "" -#: src/components/nav/NavigationDrawer.tsx:75 -#: src/defaults/actions.tsx:32 -msgid "Documentation" +#: src/components/nav/NavigationDrawer.tsx:91 +#: src/defaults/links.tsx:13 +#: src/pages/build/BuildDetail.tsx:530 +#: src/pages/build/BuildIndex.tsx:36 +msgid "Manufacturing" msgstr "" -#: src/components/nav/NavigationDrawer.tsx:78 -msgid "About" +#: src/components/nav/NavigationDrawer.tsx:98 +#: src/defaults/links.tsx:18 +#: src/pages/company/ManufacturerDetail.tsx:9 +#: src/pages/company/ManufacturerPartDetail.tsx:258 +#: src/pages/company/SupplierDetail.tsx:9 +#: src/pages/company/SupplierPartDetail.tsx:336 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:480 +#: src/pages/purchasing/PurchasingIndex.tsx:60 +msgid "Purchasing" msgstr "" -#: src/components/nav/NotificationDrawer.tsx:92 -#: src/pages/Index/Settings/SystemSettings.tsx:109 -#: src/pages/Index/Settings/UserSettings.tsx:126 +#: src/components/nav/NavigationDrawer.tsx:105 +#: src/defaults/links.tsx:22 +#: src/pages/company/CustomerDetail.tsx:9 +#: src/pages/sales/ReturnOrderDetail.tsx:469 +#: src/pages/sales/SalesIndex.tsx:53 +#: src/pages/sales/SalesOrderDetail.tsx:520 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:343 +msgid "Sales" +msgstr "" + +#: src/components/nav/NavigationDrawer.tsx:129 +#: src/components/nav/NotificationDrawer.tsx:178 +#: src/pages/Index/Settings/SystemSettings.tsx:110 +#: src/pages/Index/Settings/UserSettings.tsx:127 #: src/pages/Notifications.tsx:65 #: src/pages/Notifications.tsx:151 msgid "Notifications" msgstr "" -#: src/components/nav/NotificationDrawer.tsx:94 +#: src/components/nav/NavigationDrawer.tsx:135 +#: src/components/nav/SettingsHeader.tsx:48 +msgid "User Settings" +msgstr "" + +#: src/components/nav/NavigationDrawer.tsx:173 +msgid "Navigation" +msgstr "" + +#: src/components/nav/NavigationDrawer.tsx:183 +#: src/forms/PurchaseOrderForms.tsx:689 +#: src/forms/StockForms.tsx:614 +#: src/forms/StockForms.tsx:651 +#: src/forms/StockForms.tsx:677 +#: src/forms/StockForms.tsx:705 +#: src/forms/StockForms.tsx:736 +#: src/forms/StockForms.tsx:771 +#: src/forms/StockForms.tsx:813 +#: src/forms/StockForms.tsx:851 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:413 +#: src/tables/RowActions.tsx:129 +#: src/tables/build/BuildLineTable.tsx:101 +msgid "Actions" +msgstr "" + +#: src/components/nav/NavigationDrawer.tsx:191 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:205 +#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:44 +msgid "Plugins" +msgstr "" + +#: src/components/nav/NavigationDrawer.tsx:204 +#: src/defaults/actions.tsx:24 +msgid "Documentation" +msgstr "" + +#: src/components/nav/NavigationDrawer.tsx:210 +msgid "About" +msgstr "" + +#: src/components/nav/NotificationDrawer.tsx:180 msgid "Mark all as read" msgstr "" -#: src/components/nav/NotificationDrawer.tsx:104 +#: src/components/nav/NotificationDrawer.tsx:190 msgid "View all notifications" msgstr "" -#: src/components/nav/NotificationDrawer.tsx:123 +#: src/components/nav/NotificationDrawer.tsx:210 msgid "You have no unread notifications." msgstr "" -#: src/components/nav/NotificationDrawer.tsx:139 -#: src/components/nav/NotificationDrawer.tsx:145 -#: src/tables/notifications/NotificationsTable.tsx:36 -msgid "Notification" -msgstr "" - -#: src/components/nav/NotificationDrawer.tsx:168 -#: src/pages/Notifications.tsx:73 -msgid "Mark as read" -msgstr "" - -#: src/components/nav/SearchDrawer.tsx:78 +#: src/components/nav/SearchDrawer.tsx:85 msgid "results" msgstr "" -#: src/components/nav/SearchDrawer.tsx:370 +#: src/components/nav/SearchDrawer.tsx:380 msgid "Enter search text" msgstr "" -#: src/components/nav/SearchDrawer.tsx:397 +#: src/components/nav/SearchDrawer.tsx:391 +msgid "Refresh search results" +msgstr "" + +#: src/components/nav/SearchDrawer.tsx:402 +#: src/components/nav/SearchDrawer.tsx:409 msgid "Search Options" msgstr "" -#: src/components/nav/SearchDrawer.tsx:400 +#: src/components/nav/SearchDrawer.tsx:412 msgid "Regex search" msgstr "" -#: src/components/nav/SearchDrawer.tsx:410 +#: src/components/nav/SearchDrawer.tsx:421 msgid "Whole word search" msgstr "" -#: src/components/nav/SearchDrawer.tsx:451 +#: src/components/nav/SearchDrawer.tsx:461 msgid "An error occurred during search query" msgstr "" #: src/components/nav/SearchDrawer.tsx:462 -msgid "No results" +#~ msgid "No results" +#~ msgstr "No results" + +#: src/components/nav/SearchDrawer.tsx:472 +#: src/tables/part/PartTestTemplateTable.tsx:76 +msgid "No Results" msgstr "" -#: src/components/nav/SearchDrawer.tsx:465 +#: src/components/nav/SearchDrawer.tsx:475 msgid "No results available for search query" msgstr "" -#: src/components/render/Instance.tsx:217 +#: src/components/panels/AttachmentPanel.tsx:18 +msgid "Attachments" +msgstr "" + +#: src/components/panels/NotesPanel.tsx:24 +#: src/tables/build/BuildOrderTestTable.tsx:143 +#: src/tables/stock/StockTrackingTable.tsx:204 +msgid "Notes" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:47 +msgid "Plugin Inactive" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:50 +msgid "Plugin is not active" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:60 +msgid "Plugin Information" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:74 +#: src/pages/build/BuildDetail.tsx:116 +#: src/pages/company/CompanyDetail.tsx:89 +#: src/pages/company/ManufacturerPartDetail.tsx:89 +#: src/pages/company/ManufacturerPartDetail.tsx:116 +#: src/pages/company/SupplierPartDetail.tsx:140 +#: src/pages/part/CategoryDetail.tsx:101 +#: src/pages/part/PartDetail.tsx:178 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:136 +#: src/pages/sales/ReturnOrderDetail.tsx:107 +#: src/pages/sales/SalesOrderDetail.tsx:116 +#: src/pages/stock/LocationDetail.tsx:103 +#: src/tables/ColumnRenderers.tsx:92 +#: src/tables/bom/UsedInTable.tsx:44 +#: src/tables/build/BuildAllocatedStockTable.tsx:83 +#: src/tables/build/BuildLineTable.tsx:329 +#: src/tables/machine/MachineTypeTable.tsx:74 +#: src/tables/machine/MachineTypeTable.tsx:129 +#: src/tables/machine/MachineTypeTable.tsx:240 +#: src/tables/machine/MachineTypeTable.tsx:344 +#: src/tables/part/RelatedPartTable.tsx:66 +#: src/tables/plugin/PluginListTable.tsx:99 +#: src/tables/sales/SalesOrderAllocationTable.tsx:87 +#: src/tables/sales/SalesOrderLineItemTable.tsx:75 +#: src/tables/stock/LocationTypesTable.tsx:74 +msgid "Description" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:79 +msgid "Author" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:84 +#: src/pages/part/PartSchedulingDetail.tsx:277 +#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:40 +#: src/pages/part/pricing/SaleHistoryPanel.tsx:38 +#: src/tables/ColumnRenderers.tsx:215 +#: src/tables/build/BuildOrderTestTable.tsx:151 +#: src/tables/settings/StocktakeReportTable.tsx:40 +msgid "Date" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:94 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:398 +#: src/pages/part/PartDetail.tsx:331 +#: src/tables/bom/UsedInTable.tsx:84 +#: src/tables/company/CompanyTable.tsx:62 +#: src/tables/company/CompanyTable.tsx:96 +#: src/tables/machine/MachineListTable.tsx:333 +#: src/tables/machine/MachineListTable.tsx:605 +#: src/tables/part/ParametricPartTable.tsx:223 +#: src/tables/part/PartTable.tsx:178 +#: src/tables/part/PartVariantTable.tsx:15 +#: src/tables/plugin/PluginListTable.tsx:94 +#: src/tables/plugin/PluginListTable.tsx:401 +#: src/tables/purchasing/SupplierPartTable.tsx:100 +#: src/tables/purchasing/SupplierPartTable.tsx:190 +#: src/tables/settings/UserTable.tsx:283 +#: src/tables/stock/StockItemTable.tsx:293 +msgid "Active" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:106 +msgid "Package Name" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:112 +msgid "Installation Path" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:117 +#: src/tables/machine/MachineTypeTable.tsx:152 +#: src/tables/machine/MachineTypeTable.tsx:276 +#: src/tables/plugin/PluginListTable.tsx:406 +msgid "Builtin" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:122 +msgid "Package" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:134 +#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:53 +msgid "Plugin Settings" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:146 +#: src/components/render/ModelType.tsx:276 +msgid "Plugin Configuration" +msgstr "" + +#: src/components/plugins/PluginPanel.tsx:87 +#~ msgid "Error occurred while rendering plugin content" +#~ msgstr "Error occurred while rendering plugin content" + +#: src/components/plugins/PluginPanel.tsx:91 +#~ msgid "Plugin did not provide panel rendering function" +#~ msgstr "Plugin did not provide panel rendering function" + +#: src/components/plugins/PluginPanel.tsx:103 +#~ msgid "No content provided for this plugin" +#~ msgstr "No content provided for this plugin" + +#: src/components/plugins/PluginPanel.tsx:116 +#: src/components/plugins/PluginSettingsPanel.tsx:76 +#~ msgid "Error Loading Plugin" +#~ msgstr "Error Loading Plugin" + +#: src/components/plugins/PluginSettingsPanel.tsx:51 +#~ msgid "Error occurred while rendering plugin settings" +#~ msgstr "Error occurred while rendering plugin settings" + +#: src/components/plugins/PluginSettingsPanel.tsx:55 +#~ msgid "Plugin did not provide settings rendering function" +#~ msgstr "Plugin did not provide settings rendering function" + +#: src/components/plugins/PluginUIFeature.tsx:100 +msgid "Error occurred while rendering the template editor." +msgstr "" + +#: src/components/plugins/PluginUIFeature.tsx:111 +msgid "Error Loading Plugin Editor" +msgstr "" + +#: src/components/plugins/PluginUIFeature.tsx:147 +msgid "Error occurred while rendering the template preview." +msgstr "" + +#: src/components/plugins/PluginUIFeature.tsx:158 +msgid "Error Loading Plugin Preview" +msgstr "" + +#: src/components/plugins/RemoteComponent.tsx:70 +msgid "Invalid source or function name" +msgstr "" + +#: src/components/plugins/RemoteComponent.tsx:91 +msgid "Error Loading Content" +msgstr "" + +#: src/components/plugins/RemoteComponent.tsx:95 +msgid "Error occurred while loading plugin content" +msgstr "" + +#: src/components/render/Instance.tsx:224 msgid "Unknown model: {model}" msgstr "" -#: src/components/render/ModelType.tsx:22 -#: src/forms/BuildForms.tsx:213 -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/forms/StockForms.tsx:499 -#: src/forms/StockForms.tsx:533 -#: src/forms/StockForms.tsx:562 -#: src/forms/StockForms.tsx:590 -#: src/forms/StockForms.tsx:621 -#: src/forms/StockForms.tsx:656 -#: src/forms/StockForms.tsx:698 -#: src/forms/StockForms.tsx:734 -#: src/pages/build/BuildDetail.tsx:95 -#: src/pages/part/PartDetail.tsx:1073 -#: src/tables/build/BuildAllocatedStockTable.tsx:82 +#: src/components/render/ModelType.tsx:30 +#: src/forms/BuildForms.tsx:269 +#: src/forms/BuildForms.tsx:337 +#: src/forms/BuildForms.tsx:385 +#: src/forms/BuildForms.tsx:515 +#: src/forms/PurchaseOrderForms.tsx:689 +#: src/forms/ReturnOrderForms.tsx:190 +#: src/forms/SalesOrderForms.tsx:248 +#: src/forms/StockForms.tsx:261 +#: src/forms/StockForms.tsx:614 +#: src/forms/StockForms.tsx:651 +#: src/forms/StockForms.tsx:677 +#: src/forms/StockForms.tsx:705 +#: src/forms/StockForms.tsx:736 +#: src/forms/StockForms.tsx:771 +#: src/forms/StockForms.tsx:813 +#: src/forms/StockForms.tsx:851 +#: src/pages/build/BuildDetail.tsx:90 +#: src/pages/part/PartDetail.tsx:1094 +#: src/tables/build/BuildAllocatedStockTable.tsx:95 +#: src/tables/build/BuildLineTable.tsx:72 #: src/tables/part/PartTable.tsx:28 -#: src/tables/part/RelatedPartTable.tsx:45 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:88 -#: src/tables/sales/SalesOrderAllocationTable.tsx:68 -#: src/tables/stock/StockTrackingTable.tsx:74 +#: src/tables/part/RelatedPartTable.tsx:47 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:130 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:100 +#: src/tables/sales/SalesOrderAllocationTable.tsx:99 +#: src/tables/stock/StockTrackingTable.tsx:78 msgid "Part" msgstr "" -#: src/components/render/ModelType.tsx:23 -#: src/defaults/links.tsx:29 -#: src/defaults/menuItems.tsx:33 -#: src/pages/Index/Settings/SystemSettings.tsx:173 -#: src/pages/part/CategoryDetail.tsx:119 -#: src/pages/part/CategoryDetail.tsx:244 -#: src/pages/part/CategoryDetail.tsx:274 -#: src/pages/part/PartDetail.tsx:827 -msgid "Parts" -msgstr "" - -#: src/components/render/ModelType.tsx:31 +#: src/components/render/ModelType.tsx:40 msgid "Part Parameter Template" msgstr "" -#: src/components/render/ModelType.tsx:32 +#: src/components/render/ModelType.tsx:41 msgid "Part Parameter Templates" msgstr "" -#: src/components/render/ModelType.tsx:38 +#: src/components/render/ModelType.tsx:48 msgid "Part Test Template" msgstr "" -#: src/components/render/ModelType.tsx:39 +#: src/components/render/ModelType.tsx:49 msgid "Part Test Templates" msgstr "" -#: src/components/render/ModelType.tsx:45 -#: src/pages/company/SupplierPartDetail.tsx:203 -#: src/pages/company/SupplierPartDetail.tsx:375 -#: src/pages/stock/StockDetail.tsx:173 -#: src/tables/build/BuildAllocatedStockTable.tsx:131 +#: src/components/render/ModelType.tsx:56 +#: src/pages/company/SupplierPartDetail.tsx:364 +#: src/pages/stock/StockDetail.tsx:194 +#: src/tables/build/BuildAllocatedStockTable.tsx:152 #: src/tables/part/PartPurchaseOrdersTable.tsx:49 -#: src/tables/purchasing/SupplierPartTable.tsx:68 +#: src/tables/purchasing/SupplierPartTable.tsx:70 +#: src/tables/stock/StockItemTable.tsx:229 msgid "Supplier Part" msgstr "" -#: src/components/render/ModelType.tsx:46 +#: src/components/render/ModelType.tsx:57 msgid "Supplier Parts" msgstr "" -#: src/components/render/ModelType.tsx:54 -#: src/pages/company/ManufacturerPartDetail.tsx:132 +#: src/components/render/ModelType.tsx:66 #: src/tables/part/PartPurchaseOrdersTable.tsx:55 +#: src/tables/stock/StockItemTable.tsx:234 msgid "Manufacturer Part" msgstr "" -#: src/components/render/ModelType.tsx:55 +#: src/components/render/ModelType.tsx:67 msgid "Manufacturer Parts" msgstr "" -#: src/components/render/ModelType.tsx:63 -#: src/pages/part/CategoryDetail.tsx:305 +#: src/components/render/ModelType.tsx:76 +#: src/pages/part/CategoryDetail.tsx:310 msgid "Part Category" msgstr "" -#: src/components/render/ModelType.tsx:64 -#: src/pages/part/CategoryDetail.tsx:258 -#: src/pages/part/CategoryDetail.tsx:296 -#: src/pages/part/PartDetail.tsx:1063 +#: src/components/render/ModelType.tsx:77 +#: src/pages/part/CategoryDetail.tsx:263 +#: src/pages/part/CategoryDetail.tsx:301 +#: src/pages/part/PartDetail.tsx:1084 msgid "Part Categories" msgstr "" -#: src/components/render/ModelType.tsx:72 -#: src/pages/stock/StockDetail.tsx:624 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:94 -#: src/tables/stock/StockTrackingTable.tsx:45 +#: src/components/render/ModelType.tsx:86 +#: src/forms/BuildForms.tsx:337 +#: src/forms/BuildForms.tsx:385 +#: src/forms/BuildForms.tsx:515 +#: src/forms/SalesOrderForms.tsx:248 +#: src/pages/stock/StockDetail.tsx:839 +#: src/tables/stock/StockTrackingTable.tsx:49 msgid "Stock Item" msgstr "" -#: src/components/render/ModelType.tsx:73 +#: src/components/render/ModelType.tsx:87 #: src/pages/company/CompanyDetail.tsx:203 -#: src/pages/stock/LocationDetail.tsx:128 -#: src/pages/stock/LocationDetail.tsx:181 -#: src/pages/stock/LocationDetail.tsx:395 +#: src/pages/part/PartStocktakeDetail.tsx:113 +#: src/pages/stock/LocationDetail.tsx:122 +#: src/pages/stock/LocationDetail.tsx:175 +#: src/pages/stock/LocationDetail.tsx:380 msgid "Stock Items" msgstr "" -#: src/components/render/ModelType.tsx:81 +#: src/components/render/ModelType.tsx:96 msgid "Stock Location" msgstr "" -#: src/components/render/ModelType.tsx:82 -#: src/pages/stock/LocationDetail.tsx:195 -#: src/pages/stock/LocationDetail.tsx:387 -#: src/pages/stock/StockDetail.tsx:616 +#: src/components/render/ModelType.tsx:97 +#: src/pages/stock/LocationDetail.tsx:189 +#: src/pages/stock/LocationDetail.tsx:372 +#: src/pages/stock/StockDetail.tsx:831 msgid "Stock Locations" msgstr "" -#: src/components/render/ModelType.tsx:90 +#: src/components/render/ModelType.tsx:106 msgid "Stock Location Type" msgstr "" -#: src/components/render/ModelType.tsx:91 +#: src/components/render/ModelType.tsx:107 msgid "Stock Location Types" msgstr "" -#: src/components/render/ModelType.tsx:95 +#: src/components/render/ModelType.tsx:112 +#: src/pages/part/PartDetail.tsx:712 msgid "Stock History" msgstr "" -#: src/components/render/ModelType.tsx:96 +#: src/components/render/ModelType.tsx:113 msgid "Stock Histories" msgstr "" -#: src/components/render/ModelType.tsx:100 -#: src/defaults/links.tsx:31 -#: src/defaults/menuItems.tsx:43 +#: src/components/render/ModelType.tsx:118 msgid "Build" msgstr "" -#: src/components/render/ModelType.tsx:101 +#: src/components/render/ModelType.tsx:119 msgid "Builds" msgstr "" -#: src/components/render/ModelType.tsx:109 +#: src/components/render/ModelType.tsx:128 msgid "Build Line" msgstr "" -#: src/components/render/ModelType.tsx:110 +#: src/components/render/ModelType.tsx:129 msgid "Build Lines" msgstr "" -#: src/components/render/ModelType.tsx:117 +#: src/components/render/ModelType.tsx:137 msgid "Build Item" msgstr "" -#: src/components/render/ModelType.tsx:118 +#: src/components/render/ModelType.tsx:138 msgid "Build Items" msgstr "" -#: src/components/render/ModelType.tsx:122 -#: src/pages/company/CompanyDetail.tsx:339 +#: src/components/render/ModelType.tsx:143 +#: src/pages/company/CompanyDetail.tsx:321 msgid "Company" msgstr "" -#: src/components/render/ModelType.tsx:123 +#: src/components/render/ModelType.tsx:144 msgid "Companies" msgstr "" -#: src/components/render/ModelType.tsx:131 +#: src/components/render/ModelType.tsx:153 +#: src/pages/build/BuildDetail.tsx:195 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:204 +#: src/pages/sales/ReturnOrderDetail.tsx:174 +#: src/pages/sales/SalesOrderDetail.tsx:186 #: src/tables/TableHoverCard.tsx:81 -#: src/tables/build/BuildOrderTable.tsx:140 -#: src/tables/purchasing/PurchaseOrderTable.tsx:64 -#: src/tables/sales/ReturnOrderTable.tsx:55 -#: src/tables/sales/SalesOrderTable.tsx:62 +#: src/tables/build/BuildOrderTable.tsx:135 +#: src/tables/purchasing/PurchaseOrderTable.tsx:69 +#: src/tables/sales/ReturnOrderTable.tsx:67 +#: src/tables/sales/SalesOrderTable.tsx:67 msgid "Project Code" msgstr "" -#: src/components/render/ModelType.tsx:132 -#: src/pages/Index/Settings/AdminCenter/Index.tsx:128 +#: src/components/render/ModelType.tsx:154 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:145 msgid "Project Codes" msgstr "" -#: src/components/render/ModelType.tsx:138 +#: src/components/render/ModelType.tsx:161 #: src/pages/part/pricing/PurchaseHistoryPanel.tsx:32 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:480 -#: src/tables/part/PartPurchaseOrdersTable.tsx:32 -#: src/tables/stock/StockTrackingTable.tsx:107 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:477 +#: src/pages/stock/StockDetail.tsx:253 +#: src/tables/part/PartPurchaseOrdersTable.tsx:31 +#: src/tables/stock/StockItemTable.tsx:222 +#: src/tables/stock/StockTrackingTable.tsx:111 msgid "Purchase Order" msgstr "" -#: src/components/render/ModelType.tsx:139 -#: src/pages/Index/Settings/SystemSettings.tsx:255 +#: src/components/render/ModelType.tsx:162 +#: src/pages/Index/Settings/SystemSettings.tsx:249 #: src/pages/company/CompanyDetail.tsx:196 -#: src/pages/company/SupplierPartDetail.tsx:237 -#: src/pages/part/PartDetail.tsx:662 +#: src/pages/company/SupplierPartDetail.tsx:249 +#: src/pages/part/PartDetail.tsx:683 #: src/pages/purchasing/PurchasingIndex.tsx:25 msgid "Purchase Orders" msgstr "" -#: src/components/render/ModelType.tsx:147 +#: src/components/render/ModelType.tsx:171 msgid "Purchase Order Line" msgstr "" -#: src/components/render/ModelType.tsx:148 +#: src/components/render/ModelType.tsx:172 msgid "Purchase Order Lines" msgstr "" -#: src/components/render/ModelType.tsx:152 -#: src/pages/build/BuildDetail.tsx:153 -#: src/pages/sales/SalesOrderDetail.tsx:520 -#: src/pages/stock/StockDetail.tsx:221 -#: src/tables/sales/SalesOrderAllocationTable.tsx:50 -#: src/tables/stock/StockTrackingTable.tsx:118 +#: src/components/render/ModelType.tsx:177 +#: src/pages/build/BuildDetail.tsx:148 +#: src/pages/part/pricing/SaleHistoryPanel.tsx:24 +#: src/pages/sales/SalesOrderDetail.tsx:515 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:92 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:341 +#: src/pages/stock/StockDetail.tsx:262 +#: src/tables/sales/SalesOrderAllocationTable.tsx:80 +#: src/tables/stock/StockTrackingTable.tsx:122 msgid "Sales Order" msgstr "" -#: src/components/render/ModelType.tsx:153 -#: src/pages/Index/Settings/SystemSettings.tsx:270 +#: src/components/render/ModelType.tsx:178 +#: src/pages/Index/Settings/SystemSettings.tsx:264 #: src/pages/company/CompanyDetail.tsx:216 -#: src/pages/part/PartDetail.tsx:669 +#: src/pages/part/PartDetail.tsx:695 #: src/pages/sales/SalesIndex.tsx:26 msgid "Sales Orders" msgstr "" -#: src/components/render/ModelType.tsx:161 +#: src/components/render/ModelType.tsx:187 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:340 msgid "Sales Order Shipment" msgstr "" -#: src/components/render/ModelType.tsx:162 +#: src/components/render/ModelType.tsx:188 msgid "Sales Order Shipments" msgstr "" -#: src/components/render/ModelType.tsx:168 -#: src/pages/sales/ReturnOrderDetail.tsx:469 -#: src/tables/stock/StockTrackingTable.tsx:129 +#: src/components/render/ModelType.tsx:195 +#: src/pages/sales/ReturnOrderDetail.tsx:464 +#: src/tables/stock/StockTrackingTable.tsx:133 msgid "Return Order" msgstr "" -#: src/components/render/ModelType.tsx:169 -#: src/pages/Index/Settings/SystemSettings.tsx:286 +#: src/components/render/ModelType.tsx:196 +#: src/pages/Index/Settings/SystemSettings.tsx:280 #: src/pages/company/CompanyDetail.tsx:223 +#: src/pages/part/PartDetail.tsx:702 #: src/pages/sales/SalesIndex.tsx:32 msgid "Return Orders" msgstr "" -#: src/components/render/ModelType.tsx:177 +#: src/components/render/ModelType.tsx:205 msgid "Return Order Line Item" msgstr "" -#: src/components/render/ModelType.tsx:178 +#: src/components/render/ModelType.tsx:206 msgid "Return Order Line Items" msgstr "" -#: src/components/render/ModelType.tsx:182 -#: src/tables/company/AddressTable.tsx:47 +#: src/components/render/ModelType.tsx:211 +#: src/tables/company/AddressTable.tsx:48 msgid "Address" msgstr "" -#: src/components/render/ModelType.tsx:183 -#: src/pages/company/CompanyDetail.tsx:253 +#: src/components/render/ModelType.tsx:212 +#: src/pages/company/CompanyDetail.tsx:255 msgid "Addresses" msgstr "" -#: src/components/render/ModelType.tsx:189 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:195 -#: src/pages/sales/ReturnOrderDetail.tsx:174 -#: src/pages/sales/SalesOrderDetail.tsx:183 +#: src/components/render/ModelType.tsx:219 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:196 +#: src/pages/sales/ReturnOrderDetail.tsx:166 +#: src/pages/sales/SalesOrderDetail.tsx:178 msgid "Contact" msgstr "" -#: src/components/render/ModelType.tsx:190 -#: src/pages/company/CompanyDetail.tsx:247 +#: src/components/render/ModelType.tsx:220 +#: src/pages/company/CompanyDetail.tsx:249 msgid "Contacts" msgstr "" -#: src/components/render/ModelType.tsx:196 +#: src/components/render/ModelType.tsx:227 msgid "Owner" msgstr "" -#: src/components/render/ModelType.tsx:197 +#: src/components/render/ModelType.tsx:228 msgid "Owners" msgstr "" -#: src/components/render/ModelType.tsx:203 -#: src/tables/settings/ImportSessionTable.tsx:121 -#: src/tables/stock/StockItemTestResultTable.tsx:198 -#: src/tables/stock/StockTrackingTable.tsx:195 +#: src/components/render/ModelType.tsx:234 +#~ msgid "Purchase Order Line Item" +#~ msgstr "Purchase Order Line Item" + +#: src/components/render/ModelType.tsx:235 +#: src/tables/settings/BarcodeScanHistoryTable.tsx:80 +#: src/tables/settings/BarcodeScanHistoryTable.tsx:211 +#: src/tables/settings/ImportSessionTable.tsx:120 +#: src/tables/settings/StocktakeReportTable.tsx:44 +#: src/tables/stock/StockItemTestResultTable.tsx:204 +#: src/tables/stock/StockTrackingTable.tsx:181 +#: src/tables/stock/StockTrackingTable.tsx:210 msgid "User" msgstr "" -#: src/components/render/ModelType.tsx:204 -#: src/pages/Index/Settings/AdminCenter/Index.tsx:98 +#: src/components/render/ModelType.tsx:236 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:109 #: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:13 msgid "Users" msgstr "" -#: src/components/render/ModelType.tsx:210 +#: src/components/render/ModelType.tsx:243 msgid "Group" msgstr "" -#: src/components/render/ModelType.tsx:211 +#: src/components/render/ModelType.tsx:244 #: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:20 -#: src/tables/settings/UserTable.tsx:138 -#: src/tables/settings/UserTable.tsx:201 +#: src/tables/settings/UserTable.tsx:137 +#: src/tables/settings/UserTable.tsx:200 msgid "Groups" msgstr "" -#: src/components/render/ModelType.tsx:218 +#: src/components/render/ModelType.tsx:252 msgid "Import Session" msgstr "" -#: src/components/render/ModelType.tsx:219 +#: src/components/render/ModelType.tsx:253 msgid "Import Sessions" msgstr "" -#: src/components/render/ModelType.tsx:225 +#: src/components/render/ModelType.tsx:260 msgid "Label Template" msgstr "" -#: src/components/render/ModelType.tsx:226 -#: src/pages/Index/Settings/AdminCenter/Index.tsx:158 +#: src/components/render/ModelType.tsx:261 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:187 msgid "Label Templates" msgstr "" -#: src/components/render/ModelType.tsx:232 +#: src/components/render/ModelType.tsx:264 +#~ msgid "Unknown Model" +#~ msgstr "Unknown Model" + +#: src/components/render/ModelType.tsx:268 msgid "Report Template" msgstr "" -#: src/components/render/ModelType.tsx:233 -#: src/pages/Index/Settings/AdminCenter/Index.tsx:164 +#: src/components/render/ModelType.tsx:269 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:193 msgid "Report Templates" msgstr "" -#: src/components/render/ModelType.tsx:239 -msgid "Plugin Configuration" -msgstr "" - -#: src/components/render/ModelType.tsx:240 +#: src/components/render/ModelType.tsx:277 msgid "Plugin Configurations" msgstr "" +#: src/components/render/ModelType.tsx:284 +msgid "Content Type" +msgstr "" + +#: src/components/render/ModelType.tsx:285 +msgid "Content Types" +msgstr "" + +#: src/components/render/ModelType.tsx:291 +#: src/tables/machine/MachineListTable.tsx:351 +#: src/tables/machine/MachineTypeTable.tsx:282 +msgid "Errors" +msgstr "" + +#: src/components/render/ModelType.tsx:307 +#~ msgid "Purchase Order Line Items" +#~ msgstr "Purchase Order Line Items" + +#: src/components/render/ModelType.tsx:337 +#~ msgid "Unknown Models" +#~ msgstr "Unknown Models" + #: src/components/render/Order.tsx:121 +#: src/tables/sales/SalesOrderAllocationTable.tsx:136 msgid "Shipment" msgstr "" #: src/components/render/Part.tsx:25 #: src/components/render/Plugin.tsx:17 -#: src/pages/company/CompanyDetail.tsx:325 -#: src/pages/company/SupplierPartDetail.tsx:360 -#: src/pages/part/PartDetail.tsx:879 +#: src/pages/company/CompanyDetail.tsx:307 +#: src/pages/company/SupplierPartDetail.tsx:349 +#: src/pages/part/PartDetail.tsx:911 msgid "Inactive" msgstr "" @@ -1736,39 +2335,38 @@ msgstr "" msgid "No stock" msgstr "" -#: src/components/render/Part.tsx:30 -#: src/defaults/links.tsx:30 -#: src/defaults/menuItems.tsx:38 -#: src/pages/Index/Settings/SystemSettings.tsx:206 -#: src/pages/part/PartDetail.tsx:543 -#: src/pages/stock/LocationDetail.tsx:367 -#: src/pages/stock/StockDetail.tsx:411 -#: src/tables/stock/StockItemTable.tsx:68 -msgid "Stock" -msgstr "" - -#: src/components/render/Stock.tsx:60 -#: src/pages/stock/StockDetail.tsx:150 -#: src/pages/stock/StockDetail.tsx:581 -#: src/tables/build/BuildAllocatedStockTable.tsx:102 -#: src/tables/sales/SalesOrderAllocationTable.tsx:80 +#: src/components/render/Stock.tsx:61 +#: src/forms/ReturnOrderForms.tsx:190 +#: src/pages/stock/StockDetail.tsx:166 +#: src/pages/stock/StockDetail.tsx:771 +#: src/tables/build/BuildAllocatedStockTable.tsx:123 +#: src/tables/build/BuildOutputTable.tsx:81 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:114 +#: src/tables/sales/SalesOrderAllocationTable.tsx:106 msgid "Serial Number" msgstr "" -#: src/components/render/Stock.tsx:62 -#: src/forms/BuildForms.tsx:218 -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/pages/part/pricing/BomPricingPanel.tsx:109 +#: src/components/render/Stock.tsx:63 +#: src/forms/BuildForms.tsx:206 +#: src/forms/BuildForms.tsx:515 +#: src/forms/PurchaseOrderForms.tsx:689 +#: src/forms/SalesOrderForms.tsx:248 +#: src/pages/part/PartSchedulingDetail.tsx:80 +#: src/pages/part/PartStocktakeDetail.tsx:60 +#: src/pages/part/PartStocktakeDetail.tsx:234 +#: src/pages/part/PartStocktakeDetail.tsx:252 +#: src/pages/part/pricing/BomPricingPanel.tsx:148 #: src/pages/part/pricing/PriceBreakPanel.tsx:89 -#: src/pages/part/pricing/PriceBreakPanel.tsx:171 -#: src/pages/stock/StockDetail.tsx:145 -#: src/pages/stock/StockDetail.tsx:587 -#: src/tables/build/BuildOrderTestTable.tsx:197 -#: src/tables/part/PartPurchaseOrdersTable.tsx:92 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:143 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:171 +#: src/pages/part/pricing/PriceBreakPanel.tsx:172 +#: src/pages/stock/StockDetail.tsx:161 +#: src/pages/stock/StockDetail.tsx:777 +#: src/tables/build/BuildLineTable.tsx:79 +#: src/tables/build/BuildOrderTestTable.tsx:198 +#: src/tables/part/PartPurchaseOrdersTable.tsx:93 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:146 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:177 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:77 -#: src/tables/stock/StockTrackingTable.tsx:59 +#: src/tables/stock/StockTrackingTable.tsx:63 msgid "Quantity" msgstr "" @@ -1842,10 +2440,6 @@ msgstr "" #~ msgid "Required Part" #~ msgstr "Required Part" -#: src/components/tables/build/BuildLineTable.tsx:152 -#~ msgid "Required Quantity" -#~ msgstr "Required Quantity" - #: src/components/tables/build/BuildOrderTable.tsx:52 #~ msgid "Progress" #~ msgstr "Progress" @@ -2126,14 +2720,6 @@ msgstr "" #~ msgid "user deleted" #~ msgstr "user deleted" -#: src/components/tables/settings/UserTable.tsx:168 -#~ msgid "First Name" -#~ msgstr "First Name" - -#: src/components/tables/settings/UserTable.tsx:173 -#~ msgid "Last Name" -#~ msgstr "Last Name" - #: src/components/tables/stock/StockItemTable.tsx:247 #~ msgid "Test Filter" #~ msgstr "Test Filter" @@ -2146,36 +2732,21 @@ msgstr "" #~ msgid "Stock location updated" #~ msgstr "Stock location updated" -#: src/components/widgets/DisplayWidget.tsx:11 -#: src/pages/Index/Settings/AccountSettings/DisplaySettingsPanel.tsx:17 -msgid "Display Settings" -msgstr "" - -#: src/components/widgets/DisplayWidget.tsx:15 -#: src/pages/Index/Settings/AccountSettings/DisplaySettingsPanel.tsx:23 -msgid "Color Mode" -msgstr "" - -#: src/components/widgets/DisplayWidget.tsx:21 -#: src/pages/Index/Settings/AccountSettings/DisplaySettingsPanel.tsx:33 -msgid "Language" -msgstr "" - #: src/components/widgets/FeedbackWidget.tsx:19 -msgid "Something is new: Platform UI" -msgstr "" +#~ msgid "Something is new: Platform UI" +#~ msgstr "Something is new: Platform UI" #: src/components/widgets/FeedbackWidget.tsx:21 -msgid "We are building a new UI with a modern stack. What you currently see is not fixed and will be redesigned but demonstrates the UI/UX possibilities we will have going forward." -msgstr "" +#~ msgid "We are building a new UI with a modern stack. What you currently see is not fixed and will be redesigned but demonstrates the UI/UX possibilities we will have going forward." +#~ msgstr "We are building a new UI with a modern stack. What you currently see is not fixed and will be redesigned but demonstrates the UI/UX possibilities we will have going forward." #: src/components/widgets/FeedbackWidget.tsx:32 -msgid "Provide Feedback" -msgstr "" +#~ msgid "Provide Feedback" +#~ msgstr "Provide Feedback" #: src/components/widgets/GetStartedWidget.tsx:11 -msgid "Getting started" -msgstr "" +#~ msgid "Getting started" +#~ msgstr "Getting started" #: src/components/widgets/MarkdownEditor.tsx:108 #~ msgid "Failed to upload image" @@ -2186,28 +2757,24 @@ msgstr "" #~ msgstr "Notes saved" #: src/components/widgets/WidgetLayout.tsx:166 -msgid "Layout" -msgstr "" +#~ msgid "Layout" +#~ msgstr "Layout" #: src/components/widgets/WidgetLayout.tsx:172 -msgid "Reset Layout" -msgstr "" +#~ msgid "Reset Layout" +#~ msgstr "Reset Layout" #: src/components/widgets/WidgetLayout.tsx:185 -msgid "Stop Edit" -msgstr "" - -#: src/components/widgets/WidgetLayout.tsx:185 -msgid "Edit Layout" -msgstr "" +#~ msgid "Stop Edit" +#~ msgstr "Stop Edit" #: src/components/widgets/WidgetLayout.tsx:191 -msgid "Appearance" -msgstr "" +#~ msgid "Appearance" +#~ msgstr "Appearance" #: src/components/widgets/WidgetLayout.tsx:203 -msgid "Show Boxes" -msgstr "" +#~ msgid "Show Boxes" +#~ msgstr "Show Boxes" #: src/contexts/LanguageContext.tsx:20 msgid "Arabic" @@ -2286,201 +2853,175 @@ msgid "Korean" msgstr "" #: src/contexts/LanguageContext.tsx:39 -msgid "Latvian" +msgid "Lithuanian" msgstr "" #: src/contexts/LanguageContext.tsx:40 -msgid "Dutch" +msgid "Latvian" msgstr "" #: src/contexts/LanguageContext.tsx:41 -msgid "Norwegian" +msgid "Dutch" msgstr "" #: src/contexts/LanguageContext.tsx:42 -msgid "Polish" +msgid "Norwegian" msgstr "" #: src/contexts/LanguageContext.tsx:43 -msgid "Portuguese" +msgid "Polish" msgstr "" #: src/contexts/LanguageContext.tsx:44 -msgid "Portuguese (Brazilian)" +msgid "Portuguese" msgstr "" #: src/contexts/LanguageContext.tsx:45 -msgid "Romanian" +msgid "Portuguese (Brazilian)" msgstr "" #: src/contexts/LanguageContext.tsx:46 -msgid "Russian" +msgid "Romanian" msgstr "" #: src/contexts/LanguageContext.tsx:47 -msgid "Slovak" +msgid "Russian" msgstr "" #: src/contexts/LanguageContext.tsx:48 -msgid "Slovenian" +msgid "Slovak" msgstr "" #: src/contexts/LanguageContext.tsx:49 -msgid "Swedish" +msgid "Slovenian" msgstr "" #: src/contexts/LanguageContext.tsx:50 -msgid "Thai" +msgid "Swedish" msgstr "" #: src/contexts/LanguageContext.tsx:51 -msgid "Turkish" +msgid "Thai" msgstr "" #: src/contexts/LanguageContext.tsx:52 -msgid "Ukrainian" +msgid "Turkish" msgstr "" #: src/contexts/LanguageContext.tsx:53 -msgid "Vietnamese" +msgid "Ukrainian" msgstr "" #: src/contexts/LanguageContext.tsx:54 -msgid "Chinese (Simplified)" +msgid "Vietnamese" msgstr "" #: src/contexts/LanguageContext.tsx:55 +msgid "Chinese (Simplified)" +msgstr "" + +#: src/contexts/LanguageContext.tsx:56 msgid "Chinese (Traditional)" msgstr "" +#: src/defaults/actions.tsx:18 +msgid "Go to the InvenTree dashboard" +msgstr "" + #: src/defaults/actions.tsx:18 #: src/defaults/links.tsx:27 #: src/defaults/menuItems.tsx:9 -msgid "Home" -msgstr "" +#~ msgid "Home" +#~ msgstr "Home" #: src/defaults/actions.tsx:25 -#: src/defaults/links.tsx:28 -#: src/defaults/menuItems.tsx:28 -#: src/pages/Index/Dashboard.tsx:19 -#: src/pages/Index/Settings/UserSettings.tsx:46 -msgid "Dashboard" -msgstr "" - -#: src/defaults/actions.tsx:26 -msgid "Go to the InvenTree dashboard" -msgstr "" - -#: src/defaults/actions.tsx:33 msgid "Visit the documentation to learn more about InvenTree" msgstr "" -#: src/defaults/actions.tsx:39 -#: src/defaults/links.tsx:98 -#: src/defaults/links.tsx:128 +#: src/defaults/actions.tsx:31 +#: src/defaults/links.tsx:92 +#: src/defaults/links.tsx:124 msgid "About InvenTree" msgstr "" -#: src/defaults/actions.tsx:40 -#: src/defaults/links.tsx:129 +#: src/defaults/actions.tsx:32 msgid "About the InvenTree org" msgstr "" -#: src/defaults/actions.tsx:46 +#: src/defaults/actions.tsx:38 msgid "Server Information" msgstr "" -#: src/defaults/actions.tsx:47 -#: src/defaults/links.tsx:123 +#: src/defaults/actions.tsx:39 +#: src/defaults/links.tsx:118 msgid "About this Inventree instance" msgstr "" -#: src/defaults/actions.tsx:53 -#: src/defaults/links.tsx:111 +#: src/defaults/actions.tsx:45 +#: src/defaults/links.tsx:105 +#: src/defaults/links.tsx:131 msgid "License Information" msgstr "" -#: src/defaults/actions.tsx:54 -#: src/defaults/links.tsx:135 +#: src/defaults/actions.tsx:46 msgid "Licenses for dependencies of the service" msgstr "" -#: src/defaults/actions.tsx:61 +#: src/defaults/actions.tsx:52 +msgid "Open Navigation" +msgstr "" + +#: src/defaults/actions.tsx:53 msgid "Open the main navigation menu" msgstr "" -#: src/defaults/actions.tsx:72 +#: src/defaults/actions.tsx:64 msgid "Go to the Admin Center" msgstr "" -#: src/defaults/dashboardItems.tsx:15 -msgid "Subscribed Parts" -msgstr "" - -#: src/defaults/dashboardItems.tsx:22 -msgid "Subscribed Categories" -msgstr "" - #: src/defaults/dashboardItems.tsx:29 -msgid "Latest Parts" -msgstr "" +#~ msgid "Latest Parts" +#~ msgstr "Latest Parts" #: src/defaults/dashboardItems.tsx:36 -msgid "BOM Waiting Validation" -msgstr "" +#~ msgid "BOM Waiting Validation" +#~ msgstr "BOM Waiting Validation" #: src/defaults/dashboardItems.tsx:43 -msgid "Recently Updated" -msgstr "" - -#: src/defaults/dashboardItems.tsx:50 -#: src/tables/part/PartTable.tsx:238 -msgid "Low Stock" -msgstr "" +#~ msgid "Recently Updated" +#~ msgstr "Recently Updated" #: src/defaults/dashboardItems.tsx:57 -msgid "Depleted Stock" -msgstr "" +#~ msgid "Depleted Stock" +#~ msgstr "Depleted Stock" #: src/defaults/dashboardItems.tsx:64 -msgid "Required for Build Orders" -msgstr "" +#~ msgid "Required for Build Orders" +#~ msgstr "Required for Build Orders" #: src/defaults/dashboardItems.tsx:71 -msgid "Expired Stock" -msgstr "" +#~ msgid "Expired Stock" +#~ msgstr "Expired Stock" #: src/defaults/dashboardItems.tsx:78 -msgid "Stale Stock" -msgstr "" +#~ msgid "Stale Stock" +#~ msgstr "Stale Stock" #: src/defaults/dashboardItems.tsx:85 -msgid "Build Orders In Progress" -msgstr "" - -#: src/defaults/dashboardItems.tsx:92 -msgid "Overdue Build Orders" -msgstr "" +#~ msgid "Build Orders In Progress" +#~ msgstr "Build Orders In Progress" #: src/defaults/dashboardItems.tsx:99 -msgid "Outstanding Purchase Orders" -msgstr "" - -#: src/defaults/dashboardItems.tsx:106 -msgid "Overdue Purchase Orders" -msgstr "" +#~ msgid "Outstanding Purchase Orders" +#~ msgstr "Outstanding Purchase Orders" #: src/defaults/dashboardItems.tsx:113 -msgid "Outstanding Sales Orders" -msgstr "" - -#: src/defaults/dashboardItems.tsx:120 -msgid "Overdue Sales Orders" -msgstr "" +#~ msgid "Outstanding Sales Orders" +#~ msgstr "Outstanding Sales Orders" #: src/defaults/dashboardItems.tsx:127 -msgid "Current News" -msgstr "" +#~ msgid "Current News" +#~ msgstr "Current News" #: src/defaults/defaultHostList.tsx:8 #~ msgid "InvenTree Demo" @@ -2490,98 +3031,81 @@ msgstr "" #~ msgid "Local Server" #~ msgstr "Local Server" -#: src/defaults/links.tsx:12 -#: src/pages/company/CompanyDetail.tsx:96 -msgid "Website" -msgstr "" - #: src/defaults/links.tsx:17 -msgid "GitHub" -msgstr "" +#~ msgid "GitHub" +#~ msgstr "GitHub" #: src/defaults/links.tsx:22 -msgid "Demo" -msgstr "" - -#: src/defaults/links.tsx:33 -#: src/defaults/menuItems.tsx:48 -#: src/pages/company/ManufacturerDetail.tsx:9 -#: src/pages/company/ManufacturerPartDetail.tsx:263 -#: src/pages/company/SupplierDetail.tsx:9 -#: src/pages/company/SupplierPartDetail.tsx:347 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:483 -#: src/pages/purchasing/PurchasingIndex.tsx:60 -msgid "Purchasing" -msgstr "" - -#: src/defaults/links.tsx:37 -#: src/defaults/menuItems.tsx:53 -#: src/pages/company/CustomerDetail.tsx:9 -#: src/pages/sales/ReturnOrderDetail.tsx:474 -#: src/pages/sales/SalesIndex.tsx:53 -#: src/pages/sales/SalesOrderDetail.tsx:525 -msgid "Sales" -msgstr "" +#~ msgid "Demo" +#~ msgstr "Demo" #: src/defaults/links.tsx:41 #: src/defaults/menuItems.tsx:71 #: src/pages/Index/Playground.tsx:217 -msgid "Playground" -msgstr "" +#~ msgid "Playground" +#~ msgstr "Playground" -#: src/defaults/links.tsx:55 -msgid "Getting Started" -msgstr "" - -#: src/defaults/links.tsx:56 -msgid "Getting started with InvenTree" -msgstr "" - -#: src/defaults/links.tsx:62 +#: src/defaults/links.tsx:45 msgid "API" msgstr "" -#: src/defaults/links.tsx:63 +#: src/defaults/links.tsx:48 msgid "InvenTree API documentation" msgstr "" -#: src/defaults/links.tsx:68 +#: src/defaults/links.tsx:52 msgid "Developer Manual" msgstr "" -#: src/defaults/links.tsx:69 +#: src/defaults/links.tsx:55 msgid "InvenTree developer manual" msgstr "" -#: src/defaults/links.tsx:74 +#: src/defaults/links.tsx:59 msgid "FAQ" msgstr "" -#: src/defaults/links.tsx:75 +#: src/defaults/links.tsx:62 msgid "Frequently asked questions" msgstr "" +#: src/defaults/links.tsx:66 +msgid "GitHub Repository" +msgstr "" + +#: src/defaults/links.tsx:69 +msgid "InvenTree source code on GitHub" +msgstr "" + #: src/defaults/links.tsx:76 #~ msgid "Instance" #~ msgstr "Instance" +#: src/defaults/links.tsx:79 +#: src/defaults/links.tsx:117 +msgid "System Information" +msgstr "" + #: src/defaults/links.tsx:83 #~ msgid "InvenTree" #~ msgstr "InvenTree" -#: src/defaults/links.tsx:85 -#: src/defaults/links.tsx:122 -msgid "System Information" -msgstr "" - #: src/defaults/links.tsx:117 #~ msgid "Licenses for packages used by InvenTree" #~ msgstr "Licenses for packages used by InvenTree" -#: src/defaults/links.tsx:134 -msgid "Licenses" +#: src/defaults/links.tsx:125 +msgid "About the InvenTree Project" msgstr "" +#: src/defaults/links.tsx:132 +msgid "Licenses for dependencies of the InvenTree software" +msgstr "" + +#: src/defaults/links.tsx:134 +#~ msgid "Licenses" +#~ msgstr "Licenses" + #: src/defaults/menuItems.tsx:7 #~ msgid "Open sourcea" #~ msgstr "Open sourcea" @@ -2607,8 +3131,8 @@ msgstr "" #~ msgstr "Profile page" #: src/defaults/menuItems.tsx:17 -msgid "User attributes and design settings." -msgstr "" +#~ msgid "User attributes and design settings." +#~ msgstr "User attributes and design settings." #: src/defaults/menuItems.tsx:21 #~ msgid "Free for everyone" @@ -2619,8 +3143,8 @@ msgstr "" #~ msgstr "The fluid of Smeargle’s tail secretions changes" #: src/defaults/menuItems.tsx:23 -msgid "View for interactive scanning and multiple actions." -msgstr "" +#~ msgid "View for interactive scanning and multiple actions." +#~ msgstr "View for interactive scanning and multiple actions." #: src/defaults/menuItems.tsx:24 #~ msgid "The fluid of Smeargle’s tail secretions changes in the intensity" @@ -2698,51 +3222,130 @@ msgstr "" #~ msgid "Are you sure you want to delete this attachment?" #~ msgstr "Are you sure you want to delete this attachment?" -#: src/forms/BuildForms.tsx:158 -msgid "Next serial number" +#: src/forms/BuildForms.tsx:248 +#~ msgid "Remove output" +#~ msgstr "Remove output" + +#: src/forms/BuildForms.tsx:269 +#: src/tables/build/BuildAllocatedStockTable.tsx:147 +#: src/tables/build/BuildOrderTestTable.tsx:177 +#: src/tables/build/BuildOrderTestTable.tsx:201 +#: src/tables/build/BuildOutputTable.tsx:460 +msgid "Build Output" msgstr "" -#: src/forms/BuildForms.tsx:162 -msgid "Latest serial number" +#: src/forms/BuildForms.tsx:269 +#: src/forms/BuildForms.tsx:337 +#: src/forms/BuildForms.tsx:385 +#: src/tables/build/BuildLineTable.tsx:89 +msgid "Batch" msgstr "" -#: src/forms/BuildForms.tsx:234 -msgid "Remove output" +#: src/forms/BuildForms.tsx:269 +#: src/forms/BuildForms.tsx:337 +#: src/forms/BuildForms.tsx:385 +#: src/forms/PurchaseOrderForms.tsx:603 +#: src/pages/build/BuildDetail.tsx:104 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:142 +#: src/pages/sales/ReturnOrderDetail.tsx:113 +#: src/pages/sales/SalesOrderDetail.tsx:122 +#: src/tables/build/BuildOrderTable.tsx:125 +#: src/tables/machine/MachineListTable.tsx:336 +#: src/tables/part/PartPurchaseOrdersTable.tsx:37 +#: src/tables/purchasing/PurchaseOrderTable.tsx:58 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:157 +#: src/tables/sales/ReturnOrderTable.tsx:56 +#: src/tables/sales/SalesOrderTable.tsx:56 +#: src/tables/settings/CustomStateTable.tsx:57 +#: src/tables/settings/ImportSessionTable.tsx:114 +#: src/tables/stock/StockItemTable.tsx:298 +#: src/tables/stock/StockTrackingTable.tsx:56 +msgid "Status" msgstr "" -#: src/forms/BuildForms.tsx:316 +#: src/forms/BuildForms.tsx:289 msgid "Complete Build Outputs" msgstr "" -#: src/forms/BuildForms.tsx:320 +#: src/forms/BuildForms.tsx:292 msgid "Build outputs have been completed" msgstr "" -#: src/forms/BuildForms.tsx:389 +#: src/forms/BuildForms.tsx:353 msgid "Scrap Build Outputs" msgstr "" -#: src/forms/BuildForms.tsx:393 +#: src/forms/BuildForms.tsx:356 msgid "Build outputs have been scrapped" msgstr "" -#: src/forms/BuildForms.tsx:425 -#: src/forms/BuildForms.tsx:449 +#: src/forms/BuildForms.tsx:393 msgid "Cancel Build Outputs" msgstr "" -#: src/forms/BuildForms.tsx:426 -msgid "Selected build outputs will be deleted" +#: src/forms/BuildForms.tsx:396 +msgid "Build outputs have been cancelled" msgstr "" -#: src/forms/BuildForms.tsx:453 -msgid "Build outputs have been cancelled" +#: src/forms/BuildForms.tsx:408 +#~ msgid "Selected build outputs will be deleted" +#~ msgstr "Selected build outputs will be deleted" + +#: src/forms/BuildForms.tsx:470 +#~ msgid "Remove line" +#~ msgstr "Remove line" + +#: src/forms/BuildForms.tsx:515 +#: src/forms/SalesOrderForms.tsx:248 +#: src/tables/build/BuildLineTable.tsx:174 +#: src/tables/sales/SalesOrderLineItemTable.tsx:276 +#: src/tables/stock/StockItemTable.tsx:309 +msgid "Allocated" +msgstr "" + +#: src/forms/BuildForms.tsx:545 +#: src/forms/SalesOrderForms.tsx:239 +#: src/pages/build/BuildDetail.tsx:208 +msgid "Source Location" +msgstr "" + +#: src/forms/BuildForms.tsx:546 +#: src/forms/SalesOrderForms.tsx:240 +msgid "Select the source location for the stock allocation" +msgstr "" + +#: src/forms/BuildForms.tsx:566 +#: src/forms/SalesOrderForms.tsx:274 +#: src/tables/build/BuildLineTable.tsx:442 +#: src/tables/build/BuildLineTable.tsx:569 +#: src/tables/build/BuildLineTable.tsx:642 +#: src/tables/sales/SalesOrderLineItemTable.tsx:302 +#: src/tables/sales/SalesOrderLineItemTable.tsx:326 +msgid "Allocate Stock" +msgstr "" + +#: src/forms/BuildForms.tsx:569 +#: src/forms/SalesOrderForms.tsx:279 +msgid "Stock items allocated" msgstr "" #: src/forms/CompanyForms.tsx:150 #~ msgid "Company updated" #~ msgstr "Company updated" +#: src/forms/PartForms.tsx:67 +#: src/forms/PartForms.tsx:154 +#: src/pages/part/CategoryDetail.tsx:117 +#: src/pages/part/PartDetail.tsx:384 +#: src/tables/part/PartCategoryTable.tsx:90 +#: src/tables/part/PartTable.tsx:294 +msgid "Subscribed" +msgstr "" + +#: src/forms/PartForms.tsx:68 +msgid "Subscribe to notifications for this part" +msgstr "" + #: src/forms/PartForms.tsx:106 #~ msgid "Create Part" #~ msgstr "Create Part" @@ -2751,191 +3354,190 @@ msgstr "" #~ msgid "Part created" #~ msgstr "Part created" -#: src/forms/PartForms.tsx:124 -msgid "Parent part category" -msgstr "" - #: src/forms/PartForms.tsx:129 #~ msgid "Part updated" #~ msgstr "Part updated" -#: src/forms/PurchaseOrderForms.tsx:300 +#: src/forms/PartForms.tsx:140 +msgid "Parent part category" +msgstr "" + +#: src/forms/PartForms.tsx:155 +msgid "Subscribe to notifications for this category" +msgstr "" + +#: src/forms/PurchaseOrderForms.tsx:314 +msgid "Assign Batch Code and Serial Numbers" +msgstr "" + +#: src/forms/PurchaseOrderForms.tsx:316 +msgid "Assign Batch Code" +msgstr "" + +#: src/forms/PurchaseOrderForms.tsx:336 msgid "Choose Location" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:308 +#: src/forms/PurchaseOrderForms.tsx:344 msgid "Item Destination selected" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:317 +#: src/forms/PurchaseOrderForms.tsx:353 msgid "Part category default location selected" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:327 +#: src/forms/PurchaseOrderForms.tsx:363 msgid "Received stock location selected" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:332 +#: src/forms/PurchaseOrderForms.tsx:368 msgid "Default location selected" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:343 -#: src/forms/PurchaseOrderForms.tsx:435 -msgid "Scan Barcode" -msgstr "" +#: src/forms/PurchaseOrderForms.tsx:421 +#~ msgid "Assign Batch Code{0}" +#~ msgstr "Assign Batch Code{0}" -#: src/forms/PurchaseOrderForms.tsx:388 +#: src/forms/PurchaseOrderForms.tsx:427 msgid "Set Location" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:396 -msgid "Assign Batch Code{0}" -msgstr "" - -#: src/forms/PurchaseOrderForms.tsx:405 -#: src/forms/StockForms.tsx:420 +#: src/forms/PurchaseOrderForms.tsx:442 +#: src/forms/StockForms.tsx:539 msgid "Adjust Packaging" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:412 -msgid "Change Status" -msgstr "" - -#: src/forms/PurchaseOrderForms.tsx:418 -msgid "Add Note" -msgstr "" - #: src/forms/PurchaseOrderForms.tsx:444 #: src/forms/StockForms.tsx:428 -msgid "Remove item from list" +#~ msgid "Remove item from list" +#~ msgstr "Remove item from list" + +#: src/forms/PurchaseOrderForms.tsx:450 +msgid "Change Status" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:471 -#: src/forms/StockForms.tsx:499 -#: src/forms/StockForms.tsx:533 -#: src/forms/StockForms.tsx:562 -#: src/forms/StockForms.tsx:590 -#: src/forms/StockForms.tsx:621 -#: src/forms/StockForms.tsx:656 -#: src/forms/StockForms.tsx:698 -#: src/forms/StockForms.tsx:734 -#: src/pages/stock/StockDetail.tsx:181 -#: src/tables/ColumnRenderers.tsx:49 -#: src/tables/stock/StockTrackingTable.tsx:85 +#: src/forms/PurchaseOrderForms.tsx:456 +msgid "Add Note" +msgstr "" + +#: src/forms/PurchaseOrderForms.tsx:503 +#: src/forms/StockForms.tsx:614 +#: src/forms/StockForms.tsx:651 +#: src/forms/StockForms.tsx:677 +#: src/forms/StockForms.tsx:705 +#: src/forms/StockForms.tsx:736 +#: src/forms/StockForms.tsx:771 +#: src/forms/StockForms.tsx:813 +#: src/forms/StockForms.tsx:851 +#: src/pages/stock/StockDetail.tsx:202 +#: src/tables/ColumnRenderers.tsx:60 +#: src/tables/stock/StockTrackingTable.tsx:89 msgid "Location" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:486 +#: src/forms/PurchaseOrderForms.tsx:518 msgid "Store at default location" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:499 +#: src/forms/PurchaseOrderForms.tsx:533 msgid "Store at line item destination" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:509 +#: src/forms/PurchaseOrderForms.tsx:545 msgid "Store with already received stock" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:524 -#: src/pages/build/BuildDetail.tsx:219 -#: src/pages/stock/StockDetail.tsx:162 -#: src/pages/stock/StockDetail.tsx:599 -#: src/tables/build/BuildAllocatedStockTable.tsx:109 -#: src/tables/build/BuildOrderTestTable.tsx:188 -#: src/tables/sales/SalesOrderAllocationTable.tsx:87 +#: src/forms/PurchaseOrderForms.tsx:566 +#: src/pages/build/BuildDetail.tsx:222 +#: src/pages/stock/StockDetail.tsx:185 +#: src/pages/stock/StockDetail.tsx:793 +#: src/tables/build/BuildAllocatedStockTable.tsx:130 +#: src/tables/build/BuildOrderTestTable.tsx:189 +#: src/tables/build/BuildOutputTable.tsx:86 +#: src/tables/sales/SalesOrderAllocationTable.tsx:113 msgid "Batch Code" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:535 -msgid "Serial numbers" +#: src/forms/PurchaseOrderForms.tsx:566 +#~ msgid "Serial numbers" +#~ msgstr "Serial numbers" + +#: src/forms/PurchaseOrderForms.tsx:567 +msgid "Enter batch code for received items" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:544 -#: src/forms/StockForms.tsx:443 -#: src/pages/company/SupplierPartDetail.tsx:156 -#: src/pages/company/SupplierPartDetail.tsx:207 -#: src/pages/stock/StockDetail.tsx:244 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:192 +#: src/forms/PurchaseOrderForms.tsx:579 +#: src/forms/StockForms.tsx:152 +msgid "Serial Numbers" +msgstr "" + +#: src/forms/PurchaseOrderForms.tsx:580 +msgid "Enter serial numbers for received items" +msgstr "" + +#: src/forms/PurchaseOrderForms.tsx:590 +#: src/forms/StockForms.tsx:556 +#: src/pages/company/SupplierPartDetail.tsx:168 +#: src/pages/company/SupplierPartDetail.tsx:219 +#: src/pages/stock/StockDetail.tsx:320 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:198 msgid "Packaging" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:556 -#: src/pages/build/BuildDetail.tsx:109 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:148 -#: src/pages/sales/ReturnOrderDetail.tsx:121 -#: src/pages/sales/SalesOrderDetail.tsx:127 -#: src/tables/build/BuildOrderTable.tsx:122 -#: src/tables/machine/MachineListTable.tsx:335 -#: src/tables/part/PartPurchaseOrdersTable.tsx:37 -#: src/tables/purchasing/PurchaseOrderTable.tsx:55 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:132 -#: src/tables/sales/ReturnOrderTable.tsx:46 -#: src/tables/sales/SalesOrderTable.tsx:53 -#: src/tables/settings/ImportSessionTable.tsx:115 -#: src/tables/stock/StockItemTable.tsx:294 -#: src/tables/stock/StockTrackingTable.tsx:52 -msgid "Status" -msgstr "" - -#: src/forms/PurchaseOrderForms.tsx:564 -#: src/pages/company/SupplierPartDetail.tsx:110 -#: src/tables/ColumnRenderers.tsx:132 +#: src/forms/PurchaseOrderForms.tsx:612 +#: src/pages/company/SupplierPartDetail.tsx:115 +#: src/tables/ColumnRenderers.tsx:143 msgid "Note" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/pages/company/SupplierPartDetail.tsx:128 -#: src/tables/purchasing/SupplierPriceBreakTable.tsx:57 -msgid "SKU" -msgstr "" - -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/tables/part/PartPurchaseOrdersTable.tsx:120 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:178 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:127 -msgid "Received" -msgstr "" - -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/forms/StockForms.tsx:499 -#: src/forms/StockForms.tsx:533 -#: src/forms/StockForms.tsx:562 -#: src/forms/StockForms.tsx:590 -#: src/forms/StockForms.tsx:621 -#: src/forms/StockForms.tsx:656 -#: src/forms/StockForms.tsx:698 -#: src/forms/StockForms.tsx:734 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:413 -#: src/tables/RowActions.tsx:113 -msgid "Actions" -msgstr "" - -#: src/forms/PurchaseOrderForms.tsx:655 -msgid "Receive Line Items" -msgstr "" - #: src/forms/PurchaseOrderForms.tsx:658 #~ msgid "Receive line items" #~ msgstr "Receive line items" -#: src/forms/StockForms.tsx:104 -msgid "Add given quantity as packs instead of individual items" +#: src/forms/PurchaseOrderForms.tsx:689 +#: src/pages/company/SupplierPartDetail.tsx:133 +#: src/tables/purchasing/SupplierPriceBreakTable.tsx:57 +msgid "SKU" +msgstr "" + +#: src/forms/PurchaseOrderForms.tsx:689 +#: src/tables/part/PartPurchaseOrdersTable.tsx:126 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:184 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:247 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:152 +msgid "Received" +msgstr "" + +#: src/forms/PurchaseOrderForms.tsx:701 +msgid "Receive Line Items" +msgstr "" + +#: src/forms/ReturnOrderForms.tsx:201 +msgid "Receive Items" +msgstr "" + +#: src/forms/ReturnOrderForms.tsx:208 +msgid "Item received into stock" +msgstr "" + +#: src/forms/StockForms.tsx:80 +#: src/hooks/UsePlaceholder.tsx:57 +msgid "Next serial number" msgstr "" #: src/forms/StockForms.tsx:110 #~ msgid "Create Stock Item" #~ msgstr "Create Stock Item" -#: src/forms/StockForms.tsx:117 +#: src/forms/StockForms.tsx:131 +msgid "Add given quantity as packs instead of individual items" +msgstr "" + +#: src/forms/StockForms.tsx:145 msgid "Enter initial quantity for this stock item" msgstr "" -#: src/forms/StockForms.tsx:124 -msgid "Serial Numbers" -msgstr "" - -#: src/forms/StockForms.tsx:125 +#: src/forms/StockForms.tsx:154 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" @@ -2943,82 +3545,102 @@ msgstr "" #~ msgid "Stock item updated" #~ msgstr "Stock item updated" -#: src/forms/StockForms.tsx:179 -#: src/pages/stock/StockDetail.tsx:434 -#: src/tables/stock/StockItemTable.tsx:417 -#: src/tables/stock/StockItemTable.tsx:535 +#: src/forms/StockForms.tsx:169 +#: src/pages/stock/StockDetail.tsx:131 +msgid "Stock Status" +msgstr "" + +#: src/forms/StockForms.tsx:218 +#: src/pages/stock/StockDetail.tsx:554 +#: src/tables/stock/StockItemTable.tsx:421 +#: src/tables/stock/StockItemTable.tsx:541 msgid "Add Stock Item" msgstr "" -#: src/forms/StockForms.tsx:362 +#: src/forms/StockForms.tsx:262 +msgid "Select the part to install" +msgstr "" + +#: src/forms/StockForms.tsx:480 msgid "Loading..." msgstr "" -#: src/forms/StockForms.tsx:408 +#: src/forms/StockForms.tsx:527 msgid "Move to default location" msgstr "" -#: src/forms/StockForms.tsx:499 -#: src/forms/StockForms.tsx:533 -#: src/forms/StockForms.tsx:562 -#: src/forms/StockForms.tsx:590 -#: src/forms/StockForms.tsx:621 -#: src/forms/StockForms.tsx:656 -#: src/forms/StockForms.tsx:698 -#: src/forms/StockForms.tsx:734 -#: src/pages/part/PartDetail.tsx:230 -#: src/pages/part/PartDetail.tsx:843 -#: src/tables/stock/StockItemTable.tsx:325 +#: src/forms/StockForms.tsx:614 +#: src/forms/StockForms.tsx:651 +#: src/forms/StockForms.tsx:677 +#: src/forms/StockForms.tsx:705 +#: src/forms/StockForms.tsx:736 +#: src/forms/StockForms.tsx:771 +#: src/forms/StockForms.tsx:813 +#: src/forms/StockForms.tsx:851 +#: src/pages/part/PartDetail.tsx:251 +#: src/pages/part/PartDetail.tsx:875 +#: src/tables/stock/StockItemTable.tsx:329 msgid "In Stock" msgstr "" -#: src/forms/StockForms.tsx:499 +#: src/forms/StockForms.tsx:614 msgid "Move" msgstr "" -#: src/forms/StockForms.tsx:562 -#: src/pages/stock/StockDetail.tsx:518 -#: src/tables/stock/StockItemTestResultTable.tsx:328 +#: src/forms/StockForms.tsx:677 +#: src/pages/stock/StockDetail.tsx:681 +#: src/tables/stock/StockItemTestResultTable.tsx:346 msgid "Add" msgstr "" -#: src/forms/StockForms.tsx:590 -#: src/pages/Index/Scan.tsx:266 -#: src/pages/stock/StockDetail.tsx:508 +#: src/forms/StockForms.tsx:705 +#: src/pages/Index/Scan.tsx:280 +#: src/pages/stock/StockDetail.tsx:670 msgid "Count" msgstr "" -#: src/forms/StockForms.tsx:835 +#: src/forms/StockForms.tsx:953 +#: src/pages/stock/StockDetail.tsx:682 +#: src/tables/stock/StockItemTable.tsx:454 msgid "Add Stock" msgstr "" -#: src/forms/StockForms.tsx:844 +#: src/forms/StockForms.tsx:962 +#: src/pages/stock/StockDetail.tsx:691 +#: src/tables/stock/StockItemTable.tsx:463 msgid "Remove Stock" msgstr "" -#: src/forms/StockForms.tsx:853 -#: src/pages/part/PartDetail.tsx:1017 +#: src/forms/StockForms.tsx:971 +#: src/pages/part/PartDetail.tsx:1039 +#: src/pages/stock/StockDetail.tsx:712 +#: src/tables/stock/StockItemTable.tsx:483 msgid "Transfer Stock" msgstr "" -#: src/forms/StockForms.tsx:862 -#: src/pages/part/PartDetail.tsx:1006 +#: src/forms/StockForms.tsx:980 +#: src/pages/part/PartDetail.tsx:1028 +#: src/pages/stock/LocationDetail.tsx:314 +#: src/pages/stock/LocationDetail.tsx:318 +#: src/tables/stock/StockItemTable.tsx:472 +#: src/tables/stock/StockItemTable.tsx:476 msgid "Count Stock" msgstr "" -#: src/forms/StockForms.tsx:871 +#: src/forms/StockForms.tsx:989 msgid "Change Stock Status" msgstr "" -#: src/forms/StockForms.tsx:880 +#: src/forms/StockForms.tsx:998 msgid "Merge Stock" msgstr "" -#: src/forms/StockForms.tsx:899 +#: src/forms/StockForms.tsx:1017 +#: src/tables/stock/StockItemTable.tsx:530 msgid "Delete Stock Items" msgstr "" -#: src/forms/StockForms.tsx:906 +#: src/forms/StockForms.tsx:1024 msgid "Parent stock location" msgstr "" @@ -3042,11 +3664,11 @@ msgstr "" #~ msgid "You have been logged out" #~ msgstr "You have been logged out" -#: src/functions/auth.tsx:117 +#: src/functions/auth.tsx:128 msgid "Logged Out" msgstr "" -#: src/functions/auth.tsx:118 +#: src/functions/auth.tsx:129 msgid "Successfully logged out" msgstr "" @@ -3062,20 +3684,20 @@ msgstr "" #~ msgid "Found an existing login - welcome back!" #~ msgstr "Found an existing login - welcome back!" -#: src/functions/auth.tsx:156 +#: src/functions/auth.tsx:167 msgid "Check your inbox for a reset link. This only works if you have an account. Check in spam too." msgstr "" -#: src/functions/auth.tsx:163 +#: src/functions/auth.tsx:174 #: src/pages/Auth/Set-Password.tsx:39 msgid "Reset failed" msgstr "" -#: src/functions/auth.tsx:194 +#: src/functions/auth.tsx:205 msgid "Logged In" msgstr "" -#: src/functions/auth.tsx:195 +#: src/functions/auth.tsx:206 msgid "Successfully logged in" msgstr "" @@ -3095,30 +3717,38 @@ msgstr "" #~ msgid "method parameter not supplied" #~ msgstr "method parameter not supplied" -#: src/functions/notifications.tsx:10 +#: src/functions/notifications.tsx:12 msgid "Not implemented" msgstr "" -#: src/functions/notifications.tsx:11 +#: src/functions/notifications.tsx:13 msgid "This feature is not yet implemented" msgstr "" -#: src/functions/notifications.tsx:21 -msgid "Permission denied" -msgstr "" +#: src/functions/notifications.tsx:24 +#~ msgid "Permission denied" +#~ msgstr "Permission denied" -#: src/functions/notifications.tsx:22 +#: src/functions/notifications.tsx:25 msgid "You do not have permission to perform this action" msgstr "" -#: src/functions/notifications.tsx:33 +#: src/functions/notifications.tsx:36 msgid "Invalid Return Code" msgstr "" -#: src/functions/notifications.tsx:34 +#: src/functions/notifications.tsx:37 msgid "Server returned status {returnCode}" msgstr "" +#: src/functions/notifications.tsx:47 +msgid "Timeout" +msgstr "" + +#: src/functions/notifications.tsx:48 +msgid "The request timed out" +msgstr "" + #: src/hooks/UseForm.tsx:88 msgid "Item Created" msgstr "" @@ -3135,20 +3765,24 @@ msgstr "" msgid "Are you sure you want to delete this item?" msgstr "" +#: src/hooks/UsePlaceholder.tsx:59 +msgid "Latest serial number" +msgstr "" + #: src/pages/Auth/Logged-In.tsx:22 msgid "Checking if you are already logged in" msgstr "" -#: src/pages/Auth/Login.tsx:31 -#: src/pages/Index/Scan.tsx:329 +#: src/pages/Auth/Login.tsx:35 +#: src/pages/Index/Scan.tsx:343 msgid "No selection" msgstr "" -#: src/pages/Auth/Login.tsx:87 +#: src/pages/Auth/Login.tsx:91 msgid "Welcome, log in below" msgstr "" -#: src/pages/Auth/Login.tsx:89 +#: src/pages/Auth/Login.tsx:93 msgid "Register below" msgstr "" @@ -3162,8 +3796,8 @@ msgstr "" #: src/pages/Auth/Reset.tsx:41 #: src/pages/Auth/Set-Password.tsx:112 -msgid "Send mail" -msgstr "" +#~ msgid "Send mail" +#~ msgstr "Send mail" #: src/pages/Auth/Set-Password.tsx:30 msgid "Token invalid" @@ -3174,22 +3808,22 @@ msgid "You need to provide a valid token to set a new password. Check your inbox msgstr "" #: src/pages/Auth/Set-Password.tsx:49 -msgid "No token provided" -msgstr "" +#~ msgid "No token provided" +#~ msgstr "No token provided" #: src/pages/Auth/Set-Password.tsx:50 -msgid "You need to provide a token to set a new password. Check your inbox for a reset link." -msgstr "" +#~ msgid "You need to provide a token to set a new password. Check your inbox for a reset link." +#~ msgstr "You need to provide a token to set a new password. Check your inbox for a reset link." -#: src/pages/Auth/Set-Password.tsx:73 +#: src/pages/Auth/Set-Password.tsx:68 msgid "Password set" msgstr "" -#: src/pages/Auth/Set-Password.tsx:74 +#: src/pages/Auth/Set-Password.tsx:69 msgid "The password was set successfully. You can now login with your new password" msgstr "" -#: src/pages/Auth/Set-Password.tsx:101 +#: src/pages/Auth/Set-Password.tsx:96 msgid "Set new password" msgstr "" @@ -3206,20 +3840,20 @@ msgstr "" #~ msgstr "Sorry, an unexpected error has occurred." #: src/pages/Index/Dashboard.tsx:22 -msgid "Autoupdate" -msgstr "" +#~ msgid "Autoupdate" +#~ msgstr "Autoupdate" #: src/pages/Index/Dashboard.tsx:26 -msgid "This page is a replacement for the old start page with the same information. This page will be deprecated and replaced by the home page." -msgstr "" +#~ msgid "This page is a replacement for the old start page with the same information. This page will be deprecated and replaced by the home page." +#~ msgstr "This page is a replacement for the old start page with the same information. This page will be deprecated and replaced by the home page." #: src/pages/Index/Home.tsx:58 -msgid "Welcome to your Dashboard{0}" -msgstr "" +#~ msgid "Welcome to your Dashboard{0}" +#~ msgstr "Welcome to your Dashboard{0}" #: src/pages/Index/Playground.tsx:222 -msgid "This page is a showcase for the possibilities of Platform UI." -msgstr "" +#~ msgid "This page is a showcase for the possibilities of Platform UI." +#~ msgstr "This page is a showcase for the possibilities of Platform UI." #: src/pages/Index/Profile/Profile.tsx:30 #: src/pages/Index/Profile/Profile.tsx:141 @@ -3365,125 +3999,190 @@ msgstr "" msgid "Image Barcode" msgstr "" -#: src/pages/Index/Scan.tsx:247 +#: src/pages/Index/Scan.tsx:261 msgid "Selected elements are not known" msgstr "" -#: src/pages/Index/Scan.tsx:254 +#: src/pages/Index/Scan.tsx:268 msgid "Multiple object types selected" msgstr "" -#: src/pages/Index/Scan.tsx:261 +#: src/pages/Index/Scan.tsx:275 msgid "Actions for {0}" msgstr "" -#: src/pages/Index/Scan.tsx:282 +#: src/pages/Index/Scan.tsx:296 msgid "Scan Page" msgstr "" -#: src/pages/Index/Scan.tsx:285 +#: src/pages/Index/Scan.tsx:299 msgid "This page can be used for continuously scanning items and taking actions on them." msgstr "" -#: src/pages/Index/Scan.tsx:292 +#: src/pages/Index/Scan.tsx:306 msgid "Toggle Fullscreen" msgstr "" -#: src/pages/Index/Scan.tsx:305 +#: src/pages/Index/Scan.tsx:319 msgid "Select the input method you want to use to scan items." msgstr "" -#: src/pages/Index/Scan.tsx:307 +#: src/pages/Index/Scan.tsx:321 msgid "Input" msgstr "" -#: src/pages/Index/Scan.tsx:314 +#: src/pages/Index/Scan.tsx:328 msgid "Select input method" msgstr "" -#: src/pages/Index/Scan.tsx:315 +#: src/pages/Index/Scan.tsx:329 msgid "Nothing found" msgstr "" -#: src/pages/Index/Scan.tsx:323 +#: src/pages/Index/Scan.tsx:337 msgid "Depending on the selected parts actions will be shown here. Not all barcode types are supported currently." msgstr "" -#: src/pages/Index/Scan.tsx:325 +#: src/pages/Index/Scan.tsx:339 msgid "Action" msgstr "" -#: src/pages/Index/Scan.tsx:334 +#: src/pages/Index/Scan.tsx:348 msgid "{0} items selected" msgstr "" -#: src/pages/Index/Scan.tsx:337 +#: src/pages/Index/Scan.tsx:351 msgid "General Actions" msgstr "" -#: src/pages/Index/Scan.tsx:351 +#: src/pages/Index/Scan.tsx:365 msgid "Lookup part" msgstr "" -#: src/pages/Index/Scan.tsx:359 +#: src/pages/Index/Scan.tsx:373 msgid "Open Link" msgstr "" -#: src/pages/Index/Scan.tsx:375 +#: src/pages/Index/Scan.tsx:389 msgid "History is locally kept in this browser." msgstr "" -#: src/pages/Index/Scan.tsx:376 +#: src/pages/Index/Scan.tsx:390 msgid "The history is kept in this browser's local storage. So it won't be shared with other users or other devices but is persistent through reloads. You can select items in the history to perform actions on them. To add items, scan/enter them in the Input area." msgstr "" -#: src/pages/Index/Scan.tsx:378 +#: src/pages/Index/Scan.tsx:392 #: src/pages/Notifications.tsx:100 msgid "History" msgstr "" -#: src/pages/Index/Scan.tsx:384 +#: src/pages/Index/Scan.tsx:398 msgid "Delete History" msgstr "" -#: src/pages/Index/Scan.tsx:449 +#: src/pages/Index/Scan.tsx:463 msgid "No history" msgstr "" -#: src/pages/Index/Scan.tsx:467 +#: src/pages/Index/Scan.tsx:481 msgid "Item" msgstr "" -#: src/pages/Index/Scan.tsx:470 +#: src/pages/Index/Scan.tsx:484 msgid "Type" msgstr "" -#: src/pages/Index/Scan.tsx:473 +#: src/pages/Index/Scan.tsx:487 msgid "Source" msgstr "" -#: src/pages/Index/Scan.tsx:476 +#: src/pages/Index/Scan.tsx:490 msgid "Scanned at" msgstr "" -#: src/pages/Index/Scan.tsx:528 +#: src/pages/Index/Scan.tsx:547 msgid "Enter item serial or data" msgstr "" -#: src/pages/Index/Scan.tsx:540 +#: src/pages/Index/Scan.tsx:559 msgid "Add dummy item" msgstr "" +#: src/pages/Index/Scan.tsx:569 +msgid "Start scanning by selecting a camera and pressing the play button." +msgstr "" + +#: src/pages/Index/Scan.tsx:650 +msgid "Error while getting camera" +msgstr "" + +#: src/pages/Index/Scan.tsx:673 +msgid "Error while scanning" +msgstr "" + +#: src/pages/Index/Scan.tsx:687 +msgid "Error while stopping" +msgstr "" + +#: src/pages/Index/Scan.tsx:745 +msgid "Stop scanning" +msgstr "" + +#: src/pages/Index/Scan.tsx:754 +msgid "Start scanning" +msgstr "" + +#: src/pages/Index/Scan.tsx:763 +msgid "Scanning" +msgstr "" + +#: src/pages/Index/Scan.tsx:763 +msgid "Not scanning" +msgstr "" + +#: src/pages/Index/Scan.tsx:775 +msgid "Select Camera" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:28 +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:50 +msgid "Edit User Information" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:32 +msgid "User details updated" +msgstr "" + #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:41 -msgid "Account Details" +msgid "User Details" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:41 +#~ msgid "Account Details" +#~ msgstr "Account Details" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:44 +msgid "User Actions" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:48 +msgid "Edit User" msgstr "" #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:50 -msgid "First name" +#~ msgid "First name" +#~ msgstr "First name" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:54 +msgid "Set Password" msgstr "" #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:55 -msgid "Last name" +#~ msgid "Last name" +#~ msgstr "Last name" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:56 +msgid "Set User Password" msgstr "" #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:58 @@ -3495,15 +4194,28 @@ msgstr "" #~ msgstr "Last name: {0}" #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:67 -msgid "First name:" -msgstr "" +#~ msgid "First name:" +#~ msgstr "First name:" #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:71 -msgid "Last name:" +#~ msgid "Last name:" +#~ msgstr "Last name:" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:73 +msgid "First Name" msgstr "" -#: src/pages/Index/Settings/AccountSettings/DisplaySettingsPanel.tsx:41 -msgid "Use pseudo language" +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:79 +msgid "Last Name" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:85 +msgid "Staff Access" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:93 +#: src/tables/settings/UserTable.tsx:293 +msgid "Superuser" msgstr "" #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:55 @@ -3600,27 +4312,6 @@ msgstr "" msgid "No tokens configured" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:398 -#: src/pages/part/PartDetail.tsx:297 -#: src/tables/bom/UsedInTable.tsx:84 -#: src/tables/build/BuildOrderTable.tsx:110 -#: src/tables/company/CompanyTable.tsx:61 -#: src/tables/company/CompanyTable.tsx:95 -#: src/tables/machine/MachineListTable.tsx:332 -#: src/tables/machine/MachineListTable.tsx:594 -#: src/tables/part/ParametricPartTable.tsx:223 -#: src/tables/part/PartTable.tsx:178 -#: src/tables/part/PartVariantTable.tsx:15 -#: src/tables/plugin/PluginListTable.tsx:149 -#: src/tables/plugin/PluginListTable.tsx:271 -#: src/tables/plugin/PluginListTable.tsx:563 -#: src/tables/purchasing/SupplierPartTable.tsx:98 -#: src/tables/purchasing/SupplierPartTable.tsx:187 -#: src/tables/settings/UserTable.tsx:284 -#: src/tables/stock/StockItemTable.tsx:289 -msgid "Active" -msgstr "" - #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:401 msgid "Expiry" msgstr "" @@ -3630,38 +4321,74 @@ msgid "Last Seen" msgstr "" #: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:65 -msgid "bars" -msgstr "" +#~ msgid "bars" +#~ msgstr "bars" #: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:66 -msgid "oval" -msgstr "" +#~ msgid "oval" +#~ msgstr "oval" #: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:67 -msgid "dots" -msgstr "" +#~ msgid "dots" +#~ msgstr "dots" #: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:81 -msgid "Theme" -msgstr "" +#~ msgid "Theme" +#~ msgstr "Theme" #: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:87 -msgid "Primary color" +#~ msgid "Primary color" +#~ msgstr "Primary color" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:88 +msgid "Bars" msgstr "" -#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:100 +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:89 +msgid "Oval" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:90 +msgid "Dots" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:101 +msgid "Display Settings" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:107 +msgid "Language" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:115 +msgid "Use pseudo language" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:122 +msgid "Color Mode" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:133 +msgid "Highlight color" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:145 +msgid "Example" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:151 msgid "White color" msgstr "" -#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:108 +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:167 msgid "Black color" msgstr "" -#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:116 +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:183 msgid "Border Radius" msgstr "" -#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:132 +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:199 msgid "Loader" msgstr "" @@ -3673,89 +4400,156 @@ msgstr "" #~ msgid "Advanced Amininistrative Options for InvenTree" #~ msgstr "Advanced Amininistrative Options for InvenTree" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:104 +#: src/pages/Index/Settings/AdminCenter/CurrencyManagmentPanel.tsx:27 +#: src/tables/ColumnRenderers.tsx:262 +msgid "Currency" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/CurrencyManagmentPanel.tsx:32 +msgid "Rate" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/CurrencyManagmentPanel.tsx:44 +msgid "Exchange rates updated" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/CurrencyManagmentPanel.tsx:50 +msgid "Exchange rate update error" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/CurrencyManagmentPanel.tsx:62 +msgid "Refresh currency exchange rates" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/CurrencyManagmentPanel.tsx:99 +msgid "Last fetched" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/CurrencyManagmentPanel.tsx:100 +msgid "Base currency" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:115 msgid "Data Import" msgstr "" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:110 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:121 +msgid "Barcode Scans" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:127 msgid "Background Tasks" msgstr "" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:116 -msgid "Error Reports" -msgstr "" - -#: src/pages/Index/Settings/AdminCenter/Index.tsx:122 -msgid "Currencies" -msgstr "" - #: src/pages/Index/Settings/AdminCenter/Index.tsx:127 #~ msgid "Templates" #~ msgstr "Templates" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:140 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:133 +msgid "Error Reports" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:139 +msgid "Currencies" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:157 +msgid "Custom States" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:163 +#: src/pages/Index/Settings/AdminCenter/UnitManagmentPanel.tsx:58 msgid "Custom Units" msgstr "" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:146 -#: src/pages/part/CategoryDetail.tsx:264 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:169 +#: src/pages/part/CategoryDetail.tsx:269 msgid "Part Parameters" msgstr "" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:152 -msgid "Category Parameters" -msgstr "" - -#: src/pages/Index/Settings/AdminCenter/Index.tsx:170 -msgid "Location Types" -msgstr "" - #: src/pages/Index/Settings/AdminCenter/Index.tsx:170 #~ msgid "Location types" #~ msgstr "Location types" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:182 -#: src/tables/machine/MachineTypeTable.tsx:287 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:175 +msgid "Category Parameters" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:181 +msgid "Stocktake" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:199 +msgid "Location Types" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:211 +#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:48 +#: src/tables/machine/MachineTypeTable.tsx:308 msgid "Machines" msgstr "" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:192 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:221 msgid "Quick Actions" msgstr "" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:197 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:226 msgid "Add a new user" msgstr "" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:222 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:252 msgid "Advanced Options" msgstr "" #: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:43 -msgid "Machine types" -msgstr "" +#~ msgid "Machine types" +#~ msgstr "Machine types" #: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:53 -msgid "Machine Error Stack" +#~ msgid "Machine Error Stack" +#~ msgstr "Machine Error Stack" + +#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:56 +msgid "Machine Types" msgstr "" #: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:62 -msgid "There are no machine registry errors." +#~ msgid "There are no machine registry errors." +#~ msgstr "There are no machine registry errors." + +#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:64 +msgid "Machine Errors" msgstr "" -#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:28 -#: src/tables/settings/UserTable.tsx:119 +#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:77 +msgid "Registry Registry Errors" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:80 +msgid "There are machine registry errors" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:86 +msgid "Machine Registry Errors" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:89 +msgid "There are no machine registry errors" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:31 +#: src/tables/settings/UserTable.tsx:118 msgid "Info" msgstr "" -#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:32 -msgid "External plugins are not enabled for this InvenTree installation." -msgstr "" - #: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:33 #~ msgid "Plugin Error Stack" #~ msgstr "Plugin Error Stack" +#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:35 +msgid "External plugins are not enabled for this InvenTree installation." +msgstr "" + #: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:45 #~ msgid "Warning" #~ msgstr "Warning" @@ -3764,34 +4558,46 @@ msgstr "" #~ msgid "Changing the settings below require you to immediately restart the server. Do not change this while under active usage." #~ msgstr "Changing the settings below require you to immediately restart the server. Do not change this while under active usage." -#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:50 +#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:73 msgid "Plugin Errors" msgstr "" -#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:59 -msgid "Plugin Settings" +#: src/pages/Index/Settings/AdminCenter/ReportTemplatePanel.tsx:17 +msgid "Page Size" msgstr "" -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:53 -msgid "Background Worker Not Running" +#: src/pages/Index/Settings/AdminCenter/ReportTemplatePanel.tsx:20 +msgid "Landscape" msgstr "" -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:54 +#: src/pages/Index/Settings/AdminCenter/ReportTemplatePanel.tsx:26 +msgid "Attach to Model" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/StocktakePanel.tsx:25 +msgid "Stocktake Reports" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:30 msgid "The background task manager service is not running. Contact your system administrator." msgstr "" -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:60 -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:76 +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:35 +#~ msgid "Background Worker Not Running" +#~ msgstr "Background Worker Not Running" + +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:36 +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:45 msgid "Pending Tasks" msgstr "" -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:64 -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:84 +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:37 +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:53 msgid "Scheduled Tasks" msgstr "" -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:68 -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:92 +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:38 +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:61 msgid "Failed Tasks" msgstr "" @@ -3811,11 +4617,6 @@ msgstr "" #~ msgid "Reports" #~ msgstr "Reports" -#: src/pages/Index/Settings/AdminCenter/TemplateManagementPanel.tsx:89 -#: src/pages/build/BuildDetail.tsx:373 -#~ msgid "Report" -#~ msgstr "Report" - #: src/pages/Index/Settings/AdminCenter/TemplateManagementPanel.tsx:99 #~ msgid "Purchase order" #~ msgstr "Purchase order" @@ -3836,23 +4637,35 @@ msgstr "" #~ msgid "Stock location" #~ msgstr "Stock location" +#: src/pages/Index/Settings/AdminCenter/UnitManagmentPanel.tsx:21 +msgid "Alias" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/UnitManagmentPanel.tsx:22 +msgid "Dimensionless" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/UnitManagmentPanel.tsx:66 +msgid "All units" +msgstr "" + #: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:32 msgid "Select settings relevant for user lifecycle. More available in" msgstr "" #: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:37 -msgid "System settings" -msgstr "" +#~ msgid "System settings" +#~ msgstr "System settings" -#: src/pages/Index/Settings/SystemSettings.tsx:67 +#: src/pages/Index/Settings/SystemSettings.tsx:66 msgid "Login" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:93 +#: src/pages/Index/Settings/SystemSettings.tsx:92 msgid "Barcodes" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:115 +#: src/pages/Index/Settings/SystemSettings.tsx:116 msgid "Pricing" msgstr "" @@ -3864,64 +4677,46 @@ msgstr "" #~ msgid "Exchange Rates" #~ msgstr "Exchange Rates" -#: src/pages/Index/Settings/SystemSettings.tsx:150 +#: src/pages/Index/Settings/SystemSettings.tsx:151 msgid "Labels" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:156 -#: src/pages/Index/Settings/UserSettings.tsx:132 +#: src/pages/Index/Settings/SystemSettings.tsx:157 +#: src/pages/Index/Settings/UserSettings.tsx:133 msgid "Reporting" msgstr "" #: src/pages/Index/Settings/SystemSettings.tsx:231 -#: src/pages/part/PartDetail.tsx:682 -msgid "Stocktake" -msgstr "" - -#: src/pages/Index/Settings/SystemSettings.tsx:237 -#: src/pages/build/BuildDetail.tsx:554 -#: src/pages/build/BuildIndex.tsx:22 -#: src/pages/part/PartDetail.tsx:616 -#: src/pages/sales/SalesOrderDetail.tsx:333 +#: src/pages/build/BuildIndex.tsx:27 +#: src/pages/part/PartDetail.tsx:636 +#: src/pages/sales/SalesOrderDetail.tsx:355 msgid "Build Orders" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:318 -msgid "Switch to User Setting" -msgstr "" +#: src/pages/Index/Settings/SystemSettings.tsx:317 +#~ msgid "Switch to User Setting" +#~ msgstr "Switch to User Setting" -#: src/pages/Index/Settings/UserSettings.tsx:34 +#: src/pages/Index/Settings/UserSettings.tsx:35 msgid "Account" msgstr "" -#: src/pages/Index/Settings/UserSettings.tsx:40 +#: src/pages/Index/Settings/UserSettings.tsx:41 msgid "Security" msgstr "" -#: src/pages/Index/Settings/UserSettings.tsx:78 +#: src/pages/Index/Settings/UserSettings.tsx:79 msgid "Display Options" msgstr "" -#: src/pages/Index/Settings/UserSettings.tsx:150 -msgid "Account Settings" -msgstr "" - -#: src/pages/Index/Settings/UserSettings.tsx:158 -msgid "Switch to System Setting" -msgstr "" - -#: src/pages/Index/UserSettings.tsx:103 -#~ msgid "User Settings" -#~ msgstr "User Settings" +#: src/pages/Index/Settings/UserSettings.tsx:159 +#~ msgid "Switch to System Setting" +#~ msgstr "Switch to System Setting" #: src/pages/Logged-In.tsx:24 #~ msgid "Found an exsisting login - using it to log you in." #~ msgstr "Found an exsisting login - using it to log you in." -#: src/pages/NotFound.tsx:17 -#~ msgid "Not Found" -#~ msgstr "Not Found" - #: src/pages/NotFound.tsx:20 #~ msgid "Sorry, this page is not known or was moved." #~ msgstr "Sorry, this page is not known or was moved." @@ -3942,104 +4737,86 @@ msgstr "" #~ msgid "Build Status" #~ msgstr "Build Status" -#: src/pages/build/BuildDetail.tsx:102 -#: src/pages/part/PartDetail.tsx:150 +#: src/pages/build/BuildDetail.tsx:97 +#: src/pages/company/ManufacturerPartDetail.tsx:81 +#: src/pages/company/SupplierPartDetail.tsx:91 +#: src/pages/part/PartDetail.tsx:171 +#: src/pages/stock/StockDetail.tsx:122 #: src/tables/bom/BomTable.tsx:118 #: src/tables/bom/UsedInTable.tsx:39 -#: src/tables/build/BuildLineTable.tsx:173 -#: src/tables/build/BuildOrderTable.tsx:55 -#: src/tables/sales/SalesOrderLineItemTable.tsx:62 -#: src/tables/stock/StockItemTable.tsx:53 +#: src/tables/build/BuildAllocatedStockTable.tsx:104 +#: src/tables/build/BuildLineTable.tsx:324 +#: src/tables/build/BuildOrderTable.tsx:64 +#: src/tables/sales/SalesOrderLineItemTable.tsx:70 +#: src/tables/stock/StockItemTable.tsx:54 msgid "IPN" msgstr "" -#: src/pages/build/BuildDetail.tsx:115 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:121 -#: src/pages/sales/ReturnOrderDetail.tsx:95 -#: src/pages/sales/SalesOrderDetail.tsx:101 -#: src/tables/ColumnRenderers.tsx:121 -#: src/tables/build/BuildAllocatedStockTable.tsx:90 -#: src/tables/build/BuildLineTable.tsx:184 +#: src/pages/build/BuildDetail.tsx:110 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:115 +#: src/pages/sales/ReturnOrderDetail.tsx:86 +#: src/pages/sales/SalesOrderDetail.tsx:95 +#: src/tables/ColumnRenderers.tsx:132 +#: src/tables/build/BuildAllocatedStockTable.tsx:111 +#: src/tables/build/BuildLineTable.tsx:335 msgid "Reference" msgstr "" -#: src/pages/build/BuildDetail.tsx:121 -#: src/pages/company/CompanyDetail.tsx:90 -#: src/pages/company/ManufacturerPartDetail.tsx:83 -#: src/pages/company/SupplierPartDetail.tsx:96 -#: src/pages/part/CategoryDetail.tsx:101 -#: src/pages/part/PartDetail.tsx:157 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:142 -#: src/pages/sales/ReturnOrderDetail.tsx:115 -#: src/pages/sales/SalesOrderDetail.tsx:121 -#: src/pages/stock/LocationDetail.tsx:109 -#: src/tables/ColumnRenderers.tsx:81 -#: src/tables/bom/UsedInTable.tsx:44 -#: src/tables/build/BuildAllocatedStockTable.tsx:70 -#: src/tables/build/BuildLineTable.tsx:178 -#: src/tables/machine/MachineTypeTable.tsx:69 -#: src/tables/machine/MachineTypeTable.tsx:112 -#: src/tables/machine/MachineTypeTable.tsx:219 -#: src/tables/machine/MachineTypeTable.tsx:323 -#: src/tables/part/RelatedPartTable.tsx:64 -#: src/tables/plugin/PluginListTable.tsx:129 -#: src/tables/plugin/PluginListTable.tsx:276 -#: src/tables/sales/SalesOrderAllocationTable.tsx:56 -#: src/tables/sales/SalesOrderLineItemTable.tsx:67 -#: src/tables/stock/LocationTypesTable.tsx:74 -msgid "Description" -msgstr "" - -#: src/pages/build/BuildDetail.tsx:129 +#: src/pages/build/BuildDetail.tsx:124 msgid "Parent Build" msgstr "" -#: src/pages/build/BuildDetail.tsx:140 +#: src/pages/build/BuildDetail.tsx:135 msgid "Build Quantity" msgstr "" -#: src/pages/build/BuildDetail.tsx:148 -#: src/pages/build/BuildDetail.tsx:274 +#: src/pages/build/BuildDetail.tsx:143 +#: src/pages/build/BuildDetail.tsx:277 msgid "Completed Outputs" msgstr "" -#: src/pages/build/BuildDetail.tsx:165 -#: src/tables/build/BuildOrderTable.tsx:151 +#: src/pages/build/BuildDetail.tsx:160 +#: src/tables/build/BuildOrderTable.tsx:142 msgid "Issued By" msgstr "" -#: src/pages/build/BuildDetail.tsx:172 -#: src/pages/part/PartDetail.tsx:365 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:220 -#: src/pages/sales/ReturnOrderDetail.tsx:199 -#: src/pages/sales/SalesOrderDetail.tsx:208 -#: src/tables/build/BuildOrderTable.tsx:157 -#: src/tables/purchasing/PurchaseOrderTable.tsx:75 -#: src/tables/sales/ReturnOrderTable.tsx:66 -#: src/tables/sales/SalesOrderTable.tsx:73 +#: src/pages/build/BuildDetail.tsx:167 +#: src/pages/part/PartDetail.tsx:406 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:244 +#: src/pages/sales/ReturnOrderDetail.tsx:216 +#: src/pages/sales/SalesOrderDetail.tsx:226 +#: src/tables/build/BuildOrderTable.tsx:148 +#: src/tables/purchasing/PurchaseOrderTable.tsx:76 +#: src/tables/sales/ReturnOrderTable.tsx:74 +#: src/tables/sales/SalesOrderTable.tsx:74 msgid "Responsible" msgstr "" -#: src/pages/build/BuildDetail.tsx:179 -#: src/tables/settings/PendingTasksTable.tsx:32 +#: src/pages/build/BuildDetail.tsx:174 +#: src/tables/settings/PendingTasksTable.tsx:36 msgid "Created" msgstr "" +#: src/pages/build/BuildDetail.tsx:181 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:229 +#: src/pages/sales/ReturnOrderDetail.tsx:201 +#: src/pages/sales/SalesOrderDetail.tsx:212 +#: src/tables/ColumnRenderers.tsx:226 +#: src/tables/part/PartPurchaseOrdersTable.tsx:100 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:135 +#: src/tables/sales/SalesOrderLineItemTable.tsx:107 +msgid "Target Date" +msgstr "" + #: src/pages/build/BuildDetail.tsx:185 #: src/pages/part/PartDetail.tsx:269 #: src/pages/stock/StockDetail.tsx:150 #~ msgid "View part barcode" #~ msgstr "View part barcode" -#: src/pages/build/BuildDetail.tsx:186 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:213 -#: src/pages/sales/ReturnOrderDetail.tsx:192 -#: src/pages/sales/SalesOrderDetail.tsx:201 -#: src/tables/ColumnRenderers.tsx:212 -#: src/tables/part/PartPurchaseOrdersTable.tsx:99 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:110 -#: src/tables/sales/SalesOrderLineItemTable.tsx:99 -msgid "Target Date" +#: src/pages/build/BuildDetail.tsx:188 +#: src/tables/sales/SalesOrderLineItemTable.tsx:281 +msgid "Completed" msgstr "" #: src/pages/build/BuildDetail.tsx:190 @@ -4047,10 +4824,6 @@ msgstr "" #~ msgid "Link custom barcode to part" #~ msgstr "Link custom barcode to part" -#: src/pages/build/BuildDetail.tsx:193 -msgid "Completed" -msgstr "" - #: src/pages/build/BuildDetail.tsx:196 #: src/pages/part/PartDetail.tsx:280 #~ msgid "Unlink custom barcode from part" @@ -4060,15 +4833,11 @@ msgstr "" #~ msgid "Build Order updated" #~ msgstr "Build Order updated" -#: src/pages/build/BuildDetail.tsx:205 -msgid "Source Location" -msgstr "" - -#: src/pages/build/BuildDetail.tsx:206 +#: src/pages/build/BuildDetail.tsx:209 msgid "Any location" msgstr "" -#: src/pages/build/BuildDetail.tsx:213 +#: src/pages/build/BuildDetail.tsx:216 msgid "Destination Location" msgstr "" @@ -4084,206 +4853,182 @@ msgstr "" #~ msgid "Delete build order" #~ msgstr "Delete build order" -#: src/pages/build/BuildDetail.tsx:251 +#: src/pages/build/BuildDetail.tsx:254 msgid "Build Details" msgstr "" -#: src/pages/build/BuildDetail.tsx:257 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:258 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:267 -#: src/pages/sales/ReturnOrderDetail.tsx:130 -#: src/pages/sales/ReturnOrderDetail.tsx:237 -#: src/pages/sales/ReturnOrderDetail.tsx:246 -#: src/pages/sales/SalesOrderDetail.tsx:272 -#: src/pages/sales/SalesOrderDetail.tsx:281 +#: src/pages/build/BuildDetail.tsx:260 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:282 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:291 +#: src/pages/sales/ReturnOrderDetail.tsx:122 +#: src/pages/sales/ReturnOrderDetail.tsx:254 +#: src/pages/sales/ReturnOrderDetail.tsx:263 +#: src/pages/sales/SalesOrderDetail.tsx:294 +#: src/pages/sales/SalesOrderDetail.tsx:303 msgid "Line Items" msgstr "" -#: src/pages/build/BuildDetail.tsx:267 +#: src/pages/build/BuildDetail.tsx:266 msgid "Incomplete Outputs" msgstr "" -#: src/pages/build/BuildDetail.tsx:289 -#: src/pages/sales/SalesOrderDetail.tsx:319 +#: src/pages/build/BuildDetail.tsx:292 +#: src/pages/sales/SalesOrderDetail.tsx:341 msgid "Allocated Stock" msgstr "" -#: src/pages/build/BuildDetail.tsx:299 +#: src/pages/build/BuildDetail.tsx:302 msgid "Consumed Stock" msgstr "" -#: src/pages/build/BuildDetail.tsx:313 +#: src/pages/build/BuildDetail.tsx:316 msgid "Child Build Orders" msgstr "" #: src/pages/build/BuildDetail.tsx:326 -#: src/tables/build/BuildOutputTable.tsx:384 -#: src/tables/stock/StockItemTestResultTable.tsx:150 +#: src/tables/build/BuildOutputTable.tsx:532 +#: src/tables/stock/StockItemTestResultTable.tsx:156 msgid "Test Results" msgstr "" #: src/pages/build/BuildDetail.tsx:337 -#: src/pages/part/PartDetail.tsx:699 +#: src/pages/part/PartDetail.tsx:740 msgid "Test Statistics" msgstr "" -#: src/pages/build/BuildDetail.tsx:351 -#: src/pages/company/CompanyDetail.tsx:259 -#: src/pages/company/ManufacturerPartDetail.tsx:179 -#: src/pages/part/PartDetail.tsx:721 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:309 -#: src/pages/sales/ReturnOrderDetail.tsx:274 -#: src/pages/sales/SalesOrderDetail.tsx:343 -#: src/pages/stock/StockDetail.tsx:385 -msgid "Attachments" -msgstr "" - -#: src/pages/build/BuildDetail.tsx:359 -#: src/pages/company/CompanyDetail.tsx:270 -#: src/pages/company/ManufacturerPartDetail.tsx:190 -#: src/pages/company/SupplierPartDetail.tsx:257 -#: src/pages/part/PartDetail.tsx:729 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:320 -#: src/pages/sales/ReturnOrderDetail.tsx:285 -#: src/pages/sales/SalesOrderDetail.tsx:354 -#: src/pages/stock/StockDetail.tsx:396 -#: src/tables/build/BuildOrderTestTable.tsx:142 -#: src/tables/stock/StockTrackingTable.tsx:189 -msgid "Notes" +#: src/pages/build/BuildDetail.tsx:365 +msgid "Edit Build Order" msgstr "" #: src/pages/build/BuildDetail.tsx:368 #~ msgid "Reporting Actions" #~ msgstr "Reporting Actions" +#: src/pages/build/BuildDetail.tsx:372 +#: src/tables/build/BuildOrderTable.tsx:173 +#: src/tables/build/BuildOrderTable.tsx:188 +msgid "Add Build Order" +msgstr "" + #: src/pages/build/BuildDetail.tsx:374 #~ msgid "Print build report" #~ msgstr "Print build report" -#: src/pages/build/BuildDetail.tsx:377 -msgid "Edit Build Order" -msgstr "" - -#: src/pages/build/BuildDetail.tsx:384 -#: src/tables/build/BuildOrderTable.tsx:172 -#: src/tables/build/BuildOrderTable.tsx:187 -msgid "Add Build Order" -msgstr "" - -#: src/pages/build/BuildDetail.tsx:398 +#: src/pages/build/BuildDetail.tsx:386 msgid "Cancel Build Order" msgstr "" -#: src/pages/build/BuildDetail.tsx:400 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:348 -#: src/pages/sales/SalesOrderDetail.tsx:380 +#: src/pages/build/BuildDetail.tsx:388 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:357 +#: src/pages/sales/ReturnOrderDetail.tsx:354 +#: src/pages/sales/SalesOrderDetail.tsx:387 msgid "Order cancelled" msgstr "" -#: src/pages/build/BuildDetail.tsx:401 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:347 -#: src/pages/sales/ReturnOrderDetail.tsx:346 -#: src/pages/sales/SalesOrderDetail.tsx:379 +#: src/pages/build/BuildDetail.tsx:389 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:356 +#: src/pages/sales/ReturnOrderDetail.tsx:353 +#: src/pages/sales/SalesOrderDetail.tsx:386 msgid "Cancel this order" msgstr "" -#: src/pages/build/BuildDetail.tsx:410 +#: src/pages/build/BuildDetail.tsx:398 msgid "Hold Build Order" msgstr "" -#: src/pages/build/BuildDetail.tsx:412 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:355 -#: src/pages/sales/ReturnOrderDetail.tsx:354 -#: src/pages/sales/SalesOrderDetail.tsx:387 +#: src/pages/build/BuildDetail.tsx:400 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:364 +#: src/pages/sales/ReturnOrderDetail.tsx:361 +#: src/pages/sales/SalesOrderDetail.tsx:394 msgid "Place this order on hold" msgstr "" -#: src/pages/build/BuildDetail.tsx:413 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:356 -#: src/pages/sales/ReturnOrderDetail.tsx:355 -#: src/pages/sales/SalesOrderDetail.tsx:388 +#: src/pages/build/BuildDetail.tsx:401 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:365 +#: src/pages/sales/ReturnOrderDetail.tsx:362 +#: src/pages/sales/SalesOrderDetail.tsx:395 msgid "Order placed on hold" msgstr "" -#: src/pages/build/BuildDetail.tsx:418 +#: src/pages/build/BuildDetail.tsx:406 msgid "Issue Build Order" msgstr "" -#: src/pages/build/BuildDetail.tsx:420 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:339 -#: src/pages/sales/ReturnOrderDetail.tsx:338 -#: src/pages/sales/SalesOrderDetail.tsx:371 +#: src/pages/build/BuildDetail.tsx:408 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:348 +#: src/pages/sales/ReturnOrderDetail.tsx:345 +#: src/pages/sales/SalesOrderDetail.tsx:378 msgid "Issue this order" msgstr "" -#: src/pages/build/BuildDetail.tsx:421 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:340 -#: src/pages/sales/ReturnOrderDetail.tsx:339 -#: src/pages/sales/SalesOrderDetail.tsx:372 +#: src/pages/build/BuildDetail.tsx:409 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:349 +#: src/pages/sales/ReturnOrderDetail.tsx:346 +#: src/pages/sales/SalesOrderDetail.tsx:379 msgid "Order issued" msgstr "" -#: src/pages/build/BuildDetail.tsx:426 +#: src/pages/build/BuildDetail.tsx:414 msgid "Complete Build Order" msgstr "" -#: src/pages/build/BuildDetail.tsx:428 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:368 -#: src/pages/sales/ReturnOrderDetail.tsx:362 -#: src/pages/sales/SalesOrderDetail.tsx:395 +#: src/pages/build/BuildDetail.tsx:416 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:377 +#: src/pages/sales/ReturnOrderDetail.tsx:369 +#: src/pages/sales/SalesOrderDetail.tsx:402 msgid "Mark this order as complete" msgstr "" -#: src/pages/build/BuildDetail.tsx:429 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:362 -#: src/pages/sales/ReturnOrderDetail.tsx:363 -#: src/pages/sales/SalesOrderDetail.tsx:396 +#: src/pages/build/BuildDetail.tsx:417 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:371 +#: src/pages/sales/ReturnOrderDetail.tsx:370 +#: src/pages/sales/SalesOrderDetail.tsx:403 msgid "Order completed" msgstr "" -#: src/pages/build/BuildDetail.tsx:460 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:391 -#: src/pages/sales/ReturnOrderDetail.tsx:392 -#: src/pages/sales/SalesOrderDetail.tsx:425 +#: src/pages/build/BuildDetail.tsx:448 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:400 +#: src/pages/sales/ReturnOrderDetail.tsx:399 +#: src/pages/sales/SalesOrderDetail.tsx:432 msgid "Issue Order" msgstr "" -#: src/pages/build/BuildDetail.tsx:467 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:398 -#: src/pages/sales/ReturnOrderDetail.tsx:399 -#: src/pages/sales/SalesOrderDetail.tsx:439 +#: src/pages/build/BuildDetail.tsx:455 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:407 +#: src/pages/sales/ReturnOrderDetail.tsx:406 +#: src/pages/sales/SalesOrderDetail.tsx:446 msgid "Complete Order" msgstr "" -#: src/pages/build/BuildDetail.tsx:496 +#: src/pages/build/BuildDetail.tsx:473 msgid "Build Order Actions" msgstr "" -#: src/pages/build/BuildDetail.tsx:502 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:432 -#: src/pages/sales/ReturnOrderDetail.tsx:433 -#: src/pages/sales/SalesOrderDetail.tsx:474 +#: src/pages/build/BuildDetail.tsx:478 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:429 +#: src/pages/sales/ReturnOrderDetail.tsx:428 +#: src/pages/sales/SalesOrderDetail.tsx:469 msgid "Edit order" msgstr "" -#: src/pages/build/BuildDetail.tsx:506 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:440 -#: src/pages/sales/ReturnOrderDetail.tsx:439 -#: src/pages/sales/SalesOrderDetail.tsx:479 +#: src/pages/build/BuildDetail.tsx:482 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:437 +#: src/pages/sales/ReturnOrderDetail.tsx:434 +#: src/pages/sales/SalesOrderDetail.tsx:474 msgid "Duplicate order" msgstr "" -#: src/pages/build/BuildDetail.tsx:510 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:443 -#: src/pages/sales/ReturnOrderDetail.tsx:444 -#: src/pages/sales/SalesOrderDetail.tsx:482 +#: src/pages/build/BuildDetail.tsx:486 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:440 +#: src/pages/sales/ReturnOrderDetail.tsx:439 +#: src/pages/sales/SalesOrderDetail.tsx:477 msgid "Hold order" msgstr "" -#: src/pages/build/BuildDetail.tsx:515 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:448 -#: src/pages/sales/ReturnOrderDetail.tsx:449 -#: src/pages/sales/SalesOrderDetail.tsx:487 +#: src/pages/build/BuildDetail.tsx:491 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:445 +#: src/pages/sales/ReturnOrderDetail.tsx:444 +#: src/pages/sales/SalesOrderDetail.tsx:482 msgid "Cancel order" msgstr "" @@ -4295,56 +5040,60 @@ msgstr "" #~ msgid "New Build Order" #~ msgstr "New Build Order" -#: src/pages/company/CompanyDetail.tsx:104 +#: src/pages/company/CompanyDetail.tsx:95 +msgid "Website" +msgstr "" + +#: src/pages/company/CompanyDetail.tsx:103 msgid "Phone Number" msgstr "" -#: src/pages/company/CompanyDetail.tsx:111 +#: src/pages/company/CompanyDetail.tsx:110 msgid "Email Address" msgstr "" -#: src/pages/company/CompanyDetail.tsx:121 +#: src/pages/company/CompanyDetail.tsx:120 msgid "Default Currency" msgstr "" -#: src/pages/company/CompanyDetail.tsx:126 +#: src/pages/company/CompanyDetail.tsx:125 #: src/pages/company/SupplierDetail.tsx:8 -#: src/pages/company/SupplierPartDetail.tsx:120 -#: src/pages/company/SupplierPartDetail.tsx:206 -#: src/pages/company/SupplierPartDetail.tsx:351 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:136 -#: src/tables/company/CompanyTable.tsx:100 +#: src/pages/company/SupplierPartDetail.tsx:125 +#: src/pages/company/SupplierPartDetail.tsx:218 +#: src/pages/company/SupplierPartDetail.tsx:340 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:130 +#: src/tables/company/CompanyTable.tsx:101 #: src/tables/part/PartPurchaseOrdersTable.tsx:42 -#: src/tables/purchasing/PurchaseOrderTable.tsx:88 +#: src/tables/purchasing/PurchaseOrderTable.tsx:89 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:36 msgid "Supplier" msgstr "" -#: src/pages/company/CompanyDetail.tsx:132 +#: src/pages/company/CompanyDetail.tsx:131 #: src/pages/company/ManufacturerDetail.tsx:8 -#: src/pages/company/ManufacturerPartDetail.tsx:101 -#: src/pages/company/ManufacturerPartDetail.tsx:267 -#: src/pages/company/SupplierPartDetail.tsx:135 -#: src/tables/company/CompanyTable.tsx:105 +#: src/pages/company/ManufacturerPartDetail.tsx:100 +#: src/pages/company/ManufacturerPartDetail.tsx:262 +#: src/pages/company/SupplierPartDetail.tsx:147 +#: src/tables/company/CompanyTable.tsx:106 msgid "Manufacturer" msgstr "" -#: src/pages/company/CompanyDetail.tsx:138 +#: src/pages/company/CompanyDetail.tsx:137 #: src/pages/company/CustomerDetail.tsx:8 -#: src/pages/part/pricing/SaleHistoryPanel.tsx:29 -#: src/pages/sales/ReturnOrderDetail.tsx:109 -#: src/pages/sales/SalesOrderDetail.tsx:115 -#: src/pages/stock/StockDetail.tsx:230 -#: src/tables/company/CompanyTable.tsx:110 -#: src/tables/sales/ReturnOrderTable.tsx:78 -#: src/tables/sales/SalesOrderTable.tsx:108 -#: src/tables/stock/StockTrackingTable.tsx:140 +#: src/pages/part/pricing/SaleHistoryPanel.tsx:31 +#: src/pages/sales/ReturnOrderDetail.tsx:101 +#: src/pages/sales/SalesOrderDetail.tsx:110 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:100 +#: src/pages/stock/StockDetail.tsx:271 +#: src/tables/company/CompanyTable.tsx:111 +#: src/tables/sales/ReturnOrderTable.tsx:97 +#: src/tables/sales/SalesOrderTable.tsx:121 +#: src/tables/stock/StockTrackingTable.tsx:144 msgid "Customer" msgstr "" #: src/pages/company/CompanyDetail.tsx:172 -#: src/tables/stock/StockTrackingTable.tsx:183 -msgid "Details" +msgid "Company Details" msgstr "" #: src/pages/company/CompanyDetail.tsx:175 @@ -4363,140 +5112,150 @@ msgstr "" #~ msgid "Delete company" #~ msgstr "Delete company" -#: src/pages/company/CompanyDetail.tsx:232 +#: src/pages/company/CompanyDetail.tsx:234 msgid "Assigned Stock" msgstr "" -#: src/pages/company/CompanyDetail.tsx:290 -#: src/tables/company/CompanyTable.tsx:86 +#: src/pages/company/CompanyDetail.tsx:273 +#: src/tables/company/CompanyTable.tsx:87 msgid "Edit Company" msgstr "" -#: src/pages/company/CompanyDetail.tsx:298 +#: src/pages/company/CompanyDetail.tsx:281 msgid "Delete Company" msgstr "" -#: src/pages/company/CompanyDetail.tsx:306 +#: src/pages/company/CompanyDetail.tsx:289 msgid "Company Actions" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:76 -#: src/pages/company/SupplierPartDetail.tsx:89 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:128 +#: src/pages/company/ManufacturerPartDetail.tsx:74 +#: src/pages/company/SupplierPartDetail.tsx:84 msgid "Internal Part" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:91 -#: src/pages/company/SupplierPartDetail.tsx:103 -msgid "External Link" -msgstr "" - -#: src/pages/company/ManufacturerPartDetail.tsx:109 -#: src/pages/company/SupplierPartDetail.tsx:144 -#: src/tables/purchasing/ManufacturerPartTable.tsx:56 +#: src/pages/company/ManufacturerPartDetail.tsx:108 +#: src/pages/company/SupplierPartDetail.tsx:156 +#: src/tables/purchasing/ManufacturerPartTable.tsx:58 msgid "Manufacturer Part Number" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:138 +#: src/pages/company/ManufacturerPartDetail.tsx:125 +#: src/pages/company/SupplierPartDetail.tsx:108 +msgid "External Link" +msgstr "" + +#: src/pages/company/ManufacturerPartDetail.tsx:146 +#: src/pages/company/SupplierPartDetail.tsx:215 +#: src/pages/part/PartDetail.tsx:576 +msgid "Part Details" +msgstr "" + +#: src/pages/company/ManufacturerPartDetail.tsx:149 msgid "Manufacturer Details" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:147 +#: src/pages/company/ManufacturerPartDetail.tsx:158 msgid "Manufacturer Part Details" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:153 -#: src/pages/part/PartDetail.tsx:532 +#: src/pages/company/ManufacturerPartDetail.tsx:164 +#: src/pages/part/PartDetail.tsx:582 msgid "Parameters" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:165 -#: src/pages/part/PartDetail.tsx:649 +#: src/pages/company/ManufacturerPartDetail.tsx:176 +#: src/pages/part/PartDetail.tsx:669 #: src/pages/purchasing/PurchasingIndex.tsx:31 msgid "Suppliers" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:208 -#: src/tables/purchasing/ManufacturerPartTable.tsx:84 +#: src/pages/company/ManufacturerPartDetail.tsx:204 +#: src/tables/purchasing/ManufacturerPartTable.tsx:86 msgid "Edit Manufacturer Part" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:215 -#: src/tables/purchasing/ManufacturerPartTable.tsx:72 -#: src/tables/purchasing/ManufacturerPartTable.tsx:103 +#: src/pages/company/ManufacturerPartDetail.tsx:211 +#: src/tables/purchasing/ManufacturerPartTable.tsx:74 +#: src/tables/purchasing/ManufacturerPartTable.tsx:106 msgid "Add Manufacturer Part" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:227 -#: src/tables/purchasing/ManufacturerPartTable.tsx:92 +#: src/pages/company/ManufacturerPartDetail.tsx:223 +#: src/tables/purchasing/ManufacturerPartTable.tsx:94 msgid "Delete Manufacturer Part" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:240 +#: src/pages/company/ManufacturerPartDetail.tsx:236 msgid "Manufacturer Part Actions" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:281 +#: src/pages/company/ManufacturerPartDetail.tsx:276 msgid "ManufacturerPart" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:163 -#: src/tables/part/PartPurchaseOrdersTable.tsx:71 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:156 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:197 -#: src/tables/purchasing/SupplierPartTable.tsx:131 +#: src/pages/company/SupplierPartDetail.tsx:99 +msgid "Part Description" +msgstr "" + +#: src/pages/company/SupplierPartDetail.tsx:175 +#: src/tables/part/PartPurchaseOrdersTable.tsx:72 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:162 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:203 +#: src/tables/purchasing/SupplierPartTable.tsx:133 msgid "Pack Quantity" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:174 +#: src/pages/company/SupplierPartDetail.tsx:186 msgid "Supplier Availability" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:181 +#: src/pages/company/SupplierPartDetail.tsx:193 msgid "Availability Updated" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:208 +#: src/pages/company/SupplierPartDetail.tsx:220 msgid "Availability" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:217 +#: src/pages/company/SupplierPartDetail.tsx:229 msgid "Supplier Part Details" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:223 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:296 +#: src/pages/company/SupplierPartDetail.tsx:235 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:320 msgid "Received Stock" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:247 -#: src/pages/part/PartPricingPanel.tsx:111 -#: src/pages/part/pricing/PricingOverviewPanel.tsx:121 +#: src/pages/company/SupplierPartDetail.tsx:259 +#: src/pages/part/PartPricingPanel.tsx:116 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:195 msgid "Supplier Pricing" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:294 +#: src/pages/company/SupplierPartDetail.tsx:284 msgid "Supplier Part Actions" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:319 -#: src/tables/purchasing/SupplierPartTable.tsx:210 +#: src/pages/company/SupplierPartDetail.tsx:308 +#: src/tables/purchasing/SupplierPartTable.tsx:213 msgid "Edit Supplier Part" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:327 -#: src/tables/purchasing/SupplierPartTable.tsx:218 +#: src/pages/company/SupplierPartDetail.tsx:316 +#: src/tables/purchasing/SupplierPartTable.tsx:221 msgid "Delete Supplier Part" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:335 -#: src/tables/purchasing/SupplierPartTable.tsx:163 +#: src/pages/company/SupplierPartDetail.tsx:324 +#: src/tables/purchasing/SupplierPartTable.tsx:165 msgid "Add Supplier Part" msgstr "" #: src/pages/part/CategoryDetail.tsx:93 -#: src/pages/stock/LocationDetail.tsx:101 -#: src/tables/settings/ErrorTable.tsx:36 +#: src/pages/stock/LocationDetail.tsx:95 +#: src/tables/settings/ErrorTable.tsx:63 +#: src/tables/settings/ErrorTable.tsx:108 msgid "Path" msgstr "" @@ -4504,357 +5263,357 @@ msgstr "" msgid "Parent Category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:126 +#: src/pages/part/CategoryDetail.tsx:132 msgid "Subcategories" msgstr "" -#: src/pages/part/CategoryDetail.tsx:133 -#: src/pages/stock/LocationDetail.tsx:141 -#: src/tables/part/PartCategoryTable.tsx:73 +#: src/pages/part/CategoryDetail.tsx:139 +#: src/pages/stock/LocationDetail.tsx:135 +#: src/tables/part/PartCategoryTable.tsx:85 #: src/tables/stock/StockLocationTable.tsx:49 msgid "Structural" msgstr "" -#: src/pages/part/CategoryDetail.tsx:139 +#: src/pages/part/CategoryDetail.tsx:145 msgid "Parent default location" msgstr "" -#: src/pages/part/CategoryDetail.tsx:146 +#: src/pages/part/CategoryDetail.tsx:152 msgid "Default location" msgstr "" -#: src/pages/part/CategoryDetail.tsx:157 +#: src/pages/part/CategoryDetail.tsx:163 msgid "Top level part category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:167 -#: src/pages/part/CategoryDetail.tsx:221 -#: src/tables/part/PartCategoryTable.tsx:102 +#: src/pages/part/CategoryDetail.tsx:173 +#: src/pages/part/CategoryDetail.tsx:226 +#: src/tables/part/PartCategoryTable.tsx:118 msgid "Edit Part Category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:180 -#: src/pages/stock/LocationDetail.tsx:233 +#: src/pages/part/CategoryDetail.tsx:186 +#: src/pages/stock/LocationDetail.tsx:227 msgid "Delete items" msgstr "" -#: src/pages/part/CategoryDetail.tsx:188 -#: src/pages/part/CategoryDetail.tsx:226 +#: src/pages/part/CategoryDetail.tsx:194 +#: src/pages/part/CategoryDetail.tsx:231 msgid "Delete Part Category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:191 +#: src/pages/part/CategoryDetail.tsx:197 msgid "Parts Action" msgstr "" -#: src/pages/part/CategoryDetail.tsx:192 +#: src/pages/part/CategoryDetail.tsx:198 msgid "Action for parts in this category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:197 +#: src/pages/part/CategoryDetail.tsx:203 msgid "Child Categories Action" msgstr "" -#: src/pages/part/CategoryDetail.tsx:198 +#: src/pages/part/CategoryDetail.tsx:204 msgid "Action for child categories in this category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:216 +#: src/pages/part/CategoryDetail.tsx:222 msgid "Category Actions" msgstr "" -#: src/pages/part/CategoryDetail.tsx:238 +#: src/pages/part/CategoryDetail.tsx:243 msgid "Category Details" msgstr "" -#: src/pages/part/PartDetail.tsx:163 -msgid "Variant of" +#: src/pages/part/PartAllocationPanel.tsx:23 +#: src/pages/stock/StockDetail.tsx:443 +#: src/tables/part/PartTable.tsx:99 +msgid "Build Order Allocations" msgstr "" -#: src/pages/part/PartDetail.tsx:170 -msgid "Revision of" -msgstr "" - -#: src/pages/part/PartDetail.tsx:177 -#: src/tables/stock/StockItemTable.tsx:58 -msgid "Revision" +#: src/pages/part/PartAllocationPanel.tsx:40 +#: src/pages/stock/StockDetail.tsx:458 +#: src/tables/part/PartTable.tsx:108 +msgid "Sales Order Allocations" msgstr "" #: src/pages/part/PartDetail.tsx:184 +msgid "Variant of" +msgstr "" + +#: src/pages/part/PartDetail.tsx:191 +msgid "Revision of" +msgstr "" + +#: src/pages/part/PartDetail.tsx:198 +#: src/tables/stock/StockItemTable.tsx:59 +msgid "Revision" +msgstr "" + +#: src/pages/part/PartDetail.tsx:205 #: src/tables/notifications/NotificationsTable.tsx:31 #: src/tables/part/PartCategoryTemplateTable.tsx:67 msgid "Category" msgstr "" -#: src/pages/part/PartDetail.tsx:190 +#: src/pages/part/PartDetail.tsx:211 msgid "Default Location" msgstr "" -#: src/pages/part/PartDetail.tsx:197 +#: src/pages/part/PartDetail.tsx:218 msgid "Category Default Location" msgstr "" -#: src/pages/part/PartDetail.tsx:204 +#: src/pages/part/PartDetail.tsx:225 #: src/tables/purchasing/ManufacturerPartParameterTable.tsx:44 msgid "Units" msgstr "" -#: src/pages/part/PartDetail.tsx:211 -#: src/tables/settings/PendingTasksTable.tsx:42 +#: src/pages/part/PartDetail.tsx:232 +#: src/tables/settings/PendingTasksTable.tsx:46 msgid "Keywords" msgstr "" -#: src/pages/part/PartDetail.tsx:218 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:186 -#: src/pages/sales/ReturnOrderDetail.tsx:165 -#: src/pages/sales/SalesOrderDetail.tsx:174 -msgid "Link" -msgstr "" - -#: src/pages/part/PartDetail.tsx:236 +#: src/pages/part/PartDetail.tsx:257 #: src/tables/bom/BomTable.tsx:320 -#: src/tables/build/BuildLineTable.tsx:155 +#: src/tables/build/BuildLineTable.tsx:286 #: src/tables/part/PartTable.tsx:288 -#: src/tables/sales/SalesOrderLineItemTable.tsx:103 +#: src/tables/sales/SalesOrderLineItemTable.tsx:111 msgid "Available Stock" msgstr "" -#: src/pages/part/PartDetail.tsx:243 +#: src/pages/part/PartDetail.tsx:264 msgid "Variant Stock" msgstr "" -#: src/pages/part/PartDetail.tsx:251 +#: src/pages/part/PartDetail.tsx:272 msgid "Minimum Stock" msgstr "" -#: src/pages/part/PartDetail.tsx:257 +#: src/pages/part/PartDetail.tsx:278 #: src/tables/bom/BomTable.tsx:237 -#: src/tables/build/BuildLineTable.tsx:117 -#: src/tables/sales/SalesOrderLineItemTable.tsx:141 +#: src/tables/build/BuildLineTable.tsx:248 +#: src/tables/sales/SalesOrderLineItemTable.tsx:149 msgid "On order" msgstr "" -#: src/pages/part/PartDetail.tsx:266 +#: src/pages/part/PartDetail.tsx:285 +msgid "Required for Orders" +msgstr "" + +#: src/pages/part/PartDetail.tsx:294 msgid "Allocated to Build Orders" msgstr "" -#: src/pages/part/PartDetail.tsx:274 +#: src/pages/part/PartDetail.tsx:305 msgid "Allocated to Sales Orders" msgstr "" -#: src/pages/part/PartDetail.tsx:281 -#: src/tables/bom/BomTable.tsx:261 -#: src/tables/bom/BomTable.tsx:293 -msgid "Can Build" -msgstr "" - -#: src/pages/part/PartDetail.tsx:288 -#: src/tables/bom/BomTable.tsx:245 -#: src/tables/part/PartTable.tsx:92 -msgid "Building" -msgstr "" - -#: src/pages/part/PartDetail.tsx:302 -#: src/pages/part/PartDetail.tsx:873 -#: src/tables/part/ParametricPartTable.tsx:228 -#: src/tables/part/PartTable.tsx:184 -msgid "Locked" -msgstr "" - -#: src/pages/part/PartDetail.tsx:308 -msgid "Template Part" -msgstr "" - #: src/pages/part/PartDetail.tsx:310 #~ msgid "Edit part" #~ msgstr "Edit part" -#: src/pages/part/PartDetail.tsx:313 -#: src/tables/bom/BomTable.tsx:315 -msgid "Assembled Part" +#: src/pages/part/PartDetail.tsx:315 +#: src/tables/bom/BomTable.tsx:261 +#: src/tables/bom/BomTable.tsx:293 +msgid "Can Build" msgstr "" -#: src/pages/part/PartDetail.tsx:318 -msgid "Component Part" +#: src/pages/part/PartDetail.tsx:322 +#: src/pages/part/PartDetail.tsx:905 +#: src/pages/stock/StockDetail.tsx:766 +#: src/tables/build/BuildOrderTestTable.tsx:220 +#: src/tables/stock/StockItemTable.tsx:334 +msgid "In Production" msgstr "" #: src/pages/part/PartDetail.tsx:322 #~ msgid "Duplicate part" #~ msgstr "Duplicate part" -#: src/pages/part/PartDetail.tsx:323 -#: src/tables/bom/BomTable.tsx:305 -msgid "Testable Part" -msgstr "" - #: src/pages/part/PartDetail.tsx:327 #~ msgid "Delete part" #~ msgstr "Delete part" -#: src/pages/part/PartDetail.tsx:329 +#: src/pages/part/PartDetail.tsx:336 +#: src/tables/part/ParametricPartTable.tsx:228 +#: src/tables/part/PartTable.tsx:184 +msgid "Locked" +msgstr "" + +#: src/pages/part/PartDetail.tsx:342 +msgid "Template Part" +msgstr "" + +#: src/pages/part/PartDetail.tsx:347 +#: src/tables/bom/BomTable.tsx:315 +msgid "Assembled Part" +msgstr "" + +#: src/pages/part/PartDetail.tsx:352 +msgid "Component Part" +msgstr "" + +#: src/pages/part/PartDetail.tsx:357 +#: src/tables/bom/BomTable.tsx:305 +msgid "Testable Part" +msgstr "" + +#: src/pages/part/PartDetail.tsx:363 #: src/tables/bom/BomTable.tsx:310 msgid "Trackable Part" msgstr "" -#: src/pages/part/PartDetail.tsx:334 +#: src/pages/part/PartDetail.tsx:368 msgid "Purchaseable Part" msgstr "" -#: src/pages/part/PartDetail.tsx:339 +#: src/pages/part/PartDetail.tsx:374 msgid "Saleable Part" msgstr "" -#: src/pages/part/PartDetail.tsx:344 +#: src/pages/part/PartDetail.tsx:379 msgid "Virtual Part" msgstr "" -#: src/pages/part/PartDetail.tsx:352 -#: src/tables/ColumnRenderers.tsx:220 +#: src/pages/part/PartDetail.tsx:393 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:215 +#: src/pages/sales/ReturnOrderDetail.tsx:185 +#: src/pages/sales/SalesOrderDetail.tsx:197 +#: src/tables/ColumnRenderers.tsx:234 msgid "Creation Date" msgstr "" -#: src/pages/part/PartDetail.tsx:357 +#: src/pages/part/PartDetail.tsx:398 msgid "Created By" msgstr "" -#: src/pages/part/PartDetail.tsx:372 +#: src/pages/part/PartDetail.tsx:413 msgid "Default Supplier" msgstr "" -#: src/pages/part/PartDetail.tsx:383 -#: src/pages/part/pricing/BomPricingPanel.tsx:79 +#: src/pages/part/PartDetail.tsx:424 +#: src/pages/part/pricing/BomPricingPanel.tsx:113 #: src/pages/part/pricing/VariantPricingPanel.tsx:95 #: src/tables/part/PartTable.tsx:161 msgid "Price Range" msgstr "" -#: src/pages/part/PartDetail.tsx:423 -#: src/pages/stock/StockDetail.tsx:135 +#: src/pages/part/PartDetail.tsx:462 +msgid "Latest Serial Number" +msgstr "" + +#: src/pages/part/PartDetail.tsx:472 +#: src/pages/stock/StockDetail.tsx:151 msgid "Last Stocktake" msgstr "" -#: src/pages/part/PartDetail.tsx:462 +#: src/pages/part/PartDetail.tsx:511 msgid "Stocktake By" msgstr "" -#: src/pages/part/PartDetail.tsx:526 -msgid "Part Details" -msgstr "" - -#: src/pages/part/PartDetail.tsx:557 +#: src/pages/part/PartDetail.tsx:611 msgid "Variants" msgstr "" -#: src/pages/part/PartDetail.tsx:564 -#: src/pages/stock/StockDetail.tsx:307 +#: src/pages/part/PartDetail.tsx:618 +#: src/pages/stock/StockDetail.tsx:430 msgid "Allocations" msgstr "" -#: src/pages/part/PartDetail.tsx:575 -#: src/pages/stock/StockDetail.tsx:318 -#: src/tables/part/PartTable.tsx:99 -msgid "Build Order Allocations" -msgstr "" - -#: src/pages/part/PartDetail.tsx:590 -#: src/pages/stock/StockDetail.tsx:333 -#: src/tables/part/PartTable.tsx:108 -msgid "Sales Order Allocations" -msgstr "" - -#: src/pages/part/PartDetail.tsx:607 +#: src/pages/part/PartDetail.tsx:625 msgid "Bill of Materials" msgstr "" -#: src/pages/part/PartDetail.tsx:623 +#: src/pages/part/PartDetail.tsx:643 msgid "Used In" msgstr "" -#: src/pages/part/PartDetail.tsx:630 +#: src/pages/part/PartDetail.tsx:650 msgid "Part Pricing" msgstr "" -#: src/pages/part/PartDetail.tsx:636 +#: src/pages/part/PartDetail.tsx:656 #: src/pages/purchasing/PurchasingIndex.tsx:42 msgid "Manufacturers" msgstr "" -#: src/pages/part/PartDetail.tsx:676 +#: src/pages/part/PartDetail.tsx:722 msgid "Scheduling" msgstr "" -#: src/pages/part/PartDetail.tsx:688 +#: src/pages/part/PartDetail.tsx:729 msgid "Test Templates" msgstr "" -#: src/pages/part/PartDetail.tsx:715 +#: src/pages/part/PartDetail.tsx:756 msgid "Related Parts" msgstr "" -#: src/pages/part/PartDetail.tsx:849 -#: src/pages/stock/StockDetail.tsx:156 -#: src/pages/stock/StockDetail.tsx:593 -#: src/tables/build/BuildLineTable.tsx:48 +#: src/pages/part/PartDetail.tsx:881 +#: src/pages/stock/StockDetail.tsx:172 +#: src/pages/stock/StockDetail.tsx:783 +#: src/tables/build/BuildLineTable.tsx:179 #: src/tables/part/PartTable.tsx:117 -#: src/tables/stock/StockItemTable.tsx:177 -#: src/tables/stock/StockItemTable.tsx:310 +#: src/tables/stock/StockItemTable.tsx:166 +#: src/tables/stock/StockItemTable.tsx:314 msgid "Available" msgstr "" -#: src/pages/part/PartDetail.tsx:855 +#: src/pages/part/PartDetail.tsx:887 msgid "No Stock" msgstr "" -#: src/pages/part/PartDetail.tsx:861 +#: src/pages/part/PartDetail.tsx:893 +#: src/tables/part/PartTestTemplateTable.tsx:106 +#: src/tables/stock/StockItemTestResultTable.tsx:383 +msgid "Required" +msgstr "" + +#: src/pages/part/PartDetail.tsx:899 #: src/tables/bom/BomTable.tsx:325 #: src/tables/part/PartTable.tsx:86 msgid "On Order" msgstr "" -#: src/pages/part/PartDetail.tsx:867 -#: src/pages/stock/StockDetail.tsx:576 -#: src/tables/build/BuildOrderTestTable.tsx:219 -#: src/tables/stock/StockItemTable.tsx:330 -msgid "In Production" -msgstr "" - -#: src/pages/part/PartDetail.tsx:892 +#: src/pages/part/PartDetail.tsx:924 msgid "Edit Part" msgstr "" -#: src/pages/part/PartDetail.tsx:927 +#: src/pages/part/PartDetail.tsx:959 #: src/tables/part/PartTable.tsx:331 -#: src/tables/part/PartTable.tsx:342 +#: src/tables/part/PartTable.tsx:343 msgid "Add Part" msgstr "" -#: src/pages/part/PartDetail.tsx:941 +#: src/pages/part/PartDetail.tsx:973 msgid "Delete Part" msgstr "" -#: src/pages/part/PartDetail.tsx:950 +#: src/pages/part/PartDetail.tsx:982 msgid "Deleting this part cannot be reversed" msgstr "" -#: src/pages/part/PartDetail.tsx:999 -#: src/pages/stock/LocationDetail.tsx:324 -#: src/tables/stock/StockItemTable.tsx:444 +#: src/pages/part/PartDetail.tsx:1021 +#: src/pages/stock/LocationDetail.tsx:310 +#: src/tables/stock/StockItemTable.tsx:449 msgid "Stock Actions" msgstr "" -#: src/pages/part/PartDetail.tsx:1007 +#: src/pages/part/PartDetail.tsx:1029 msgid "Count part stock" msgstr "" -#: src/pages/part/PartDetail.tsx:1018 +#: src/pages/part/PartDetail.tsx:1040 msgid "Transfer part stock" msgstr "" -#: src/pages/part/PartDetail.tsx:1027 +#: src/pages/part/PartDetail.tsx:1049 msgid "Part Actions" msgstr "" -#: src/pages/part/PartDetail.tsx:1087 +#: src/pages/part/PartDetail.tsx:1113 msgid "Select Part Revision" msgstr "" @@ -4862,113 +5621,214 @@ msgstr "" #~ msgid "Categories" #~ msgstr "Categories" -#: src/pages/part/PartPricingPanel.tsx:68 +#: src/pages/part/PartPricingPanel.tsx:72 msgid "No pricing data found for this part." msgstr "" -#: src/pages/part/PartPricingPanel.tsx:82 -#: src/pages/part/pricing/PricingOverviewPanel.tsx:190 +#: src/pages/part/PartPricingPanel.tsx:87 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:293 msgid "Pricing Overview" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:88 +#: src/pages/part/PartPricingPanel.tsx:93 msgid "Purchase History" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:102 -#: src/pages/part/pricing/PricingOverviewPanel.tsx:100 +#: src/pages/part/PartPricingPanel.tsx:107 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:174 msgid "Internal Pricing" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:120 -#: src/pages/part/pricing/PricingOverviewPanel.tsx:107 +#: src/pages/part/PartPricingPanel.tsx:125 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:181 msgid "BOM Pricing" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:127 -#: src/pages/part/pricing/PricingOverviewPanel.tsx:128 +#: src/pages/part/PartPricingPanel.tsx:132 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:202 msgid "Variant Pricing" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:139 -#: src/pages/part/pricing/PricingOverviewPanel.tsx:135 +#: src/pages/part/PartPricingPanel.tsx:144 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:209 msgid "Sale Pricing" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:146 -#: src/pages/part/pricing/PricingOverviewPanel.tsx:142 +#: src/pages/part/PartPricingPanel.tsx:151 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:216 msgid "Sale History" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:58 -#: src/pages/part/pricing/BomPricingPanel.tsx:138 -#: src/tables/ColumnRenderers.tsx:262 +#: src/pages/part/PartSchedulingDetail.tsx:47 +#: src/pages/part/PartSchedulingDetail.tsx:299 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:156 +msgid "Maximum" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:50 +#: src/pages/part/PartSchedulingDetail.tsx:289 +msgid "Scheduled" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:53 +#: src/pages/part/PartSchedulingDetail.tsx:294 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:144 +msgid "Minimum" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:68 +msgid "Order" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:92 +msgid "Quantity is speculative" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:101 +msgid "No date available for provided quantity" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:105 +msgid "Date is in the past" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:112 +msgid "Scheduled Quantity" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:240 +msgid "No information available" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:241 +msgid "There is no scheduling information available for the selected part" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:276 +msgid "Expected Quantity" +msgstr "" + +#: src/pages/part/PartStocktakeDetail.tsx:63 +#: src/tables/FilterSelectDrawer.tsx:167 +#: src/tables/FilterSelectDrawer.tsx:174 +#: src/tables/build/BuildOrderTestTable.tsx:135 +#: src/tables/purchasing/ManufacturerPartParameterTable.tsx:38 +#: src/tables/stock/StockItemTestResultTable.tsx:192 +msgid "Value" +msgstr "" + +#: src/pages/part/PartStocktakeDetail.tsx:82 +msgid "Edit Stocktake Entry" +msgstr "" + +#: src/pages/part/PartStocktakeDetail.tsx:90 +msgid "Delete Stocktake Entry" +msgstr "" + +#: src/pages/part/PartStocktakeDetail.tsx:96 +#: src/tables/settings/StocktakeReportTable.tsx:69 +msgid "Generate Stocktake Report" +msgstr "" + +#: src/pages/part/PartStocktakeDetail.tsx:101 +#: src/tables/settings/StocktakeReportTable.tsx:71 +msgid "Stocktake report scheduled" +msgstr "" + +#: src/pages/part/PartStocktakeDetail.tsx:119 +#: src/pages/part/PartStocktakeDetail.tsx:235 +#: src/pages/stock/StockDetail.tsx:303 +#: src/tables/stock/StockItemTable.tsx:249 +msgid "Stock Value" +msgstr "" + +#: src/pages/part/PartStocktakeDetail.tsx:139 +#: src/tables/settings/StocktakeReportTable.tsx:77 +msgid "New Stocktake Report" +msgstr "" + +#: src/pages/part/PartStocktakeDetail.tsx:258 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:295 +msgid "Minimum Value" +msgstr "" + +#: src/pages/part/PartStocktakeDetail.tsx:264 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:296 +msgid "Maximum Value" +msgstr "" + +#: src/pages/part/pricing/BomPricingPanel.tsx:87 +#: src/pages/part/pricing/BomPricingPanel.tsx:177 +#: src/tables/ColumnRenderers.tsx:276 #: src/tables/bom/BomTable.tsx:185 #: src/tables/general/ExtraLineItemTable.tsx:64 -#: src/tables/purchasing/PurchaseOrderTable.tsx:112 -#: src/tables/sales/ReturnOrderTable.tsx:104 -#: src/tables/sales/SalesOrderLineItemTable.tsx:89 -#: src/tables/sales/SalesOrderTable.tsx:136 +#: src/tables/purchasing/PurchaseOrderTable.tsx:113 +#: src/tables/sales/ReturnOrderTable.tsx:127 +#: src/tables/sales/SalesOrderLineItemTable.tsx:97 +#: src/tables/sales/SalesOrderTable.tsx:149 msgid "Total Price" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:78 -#: src/pages/part/pricing/BomPricingPanel.tsx:102 +#: src/pages/part/pricing/BomPricingPanel.tsx:112 +#: src/pages/part/pricing/BomPricingPanel.tsx:141 #: src/tables/bom/UsedInTable.tsx:49 +#: src/tables/build/BuildLineTable.tsx:296 #: src/tables/part/PartTable.tsx:202 msgid "Component" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:81 -#: src/pages/part/pricing/VariantPricingPanel.tsx:37 -#: src/pages/part/pricing/VariantPricingPanel.tsx:97 -msgid "Minimum Price" -msgstr "" - -#: src/pages/part/pricing/BomPricingPanel.tsx:82 -#: src/pages/part/pricing/VariantPricingPanel.tsx:45 -#: src/pages/part/pricing/VariantPricingPanel.tsx:98 -msgid "Maximum Price" -msgstr "" - #: src/pages/part/pricing/BomPricingPanel.tsx:112 #~ msgid "Minimum Total Price" #~ msgstr "Minimum Total Price" +#: src/pages/part/pricing/BomPricingPanel.tsx:115 +#: src/pages/part/pricing/VariantPricingPanel.tsx:37 +#: src/pages/part/pricing/VariantPricingPanel.tsx:97 +msgid "Minimum Price" +msgstr "" + +#: src/pages/part/pricing/BomPricingPanel.tsx:116 +#: src/pages/part/pricing/VariantPricingPanel.tsx:45 +#: src/pages/part/pricing/VariantPricingPanel.tsx:98 +msgid "Maximum Price" +msgstr "" + #: src/pages/part/pricing/BomPricingPanel.tsx:117 #~ msgid "Maximum Total Price" #~ msgstr "Maximum Total Price" -#: src/pages/part/pricing/BomPricingPanel.tsx:129 -#: src/pages/part/pricing/PriceBreakPanel.tsx:172 -#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:67 -#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:128 -#: src/pages/part/pricing/SupplierPricingPanel.tsx:62 +#: src/pages/part/pricing/BomPricingPanel.tsx:168 +#: src/pages/part/pricing/PriceBreakPanel.tsx:173 +#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:70 +#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:125 +#: src/pages/part/pricing/SupplierPricingPanel.tsx:66 +#: src/pages/stock/StockDetail.tsx:291 #: src/tables/bom/BomTable.tsx:176 #: src/tables/general/ExtraLineItemTable.tsx:56 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:223 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:225 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:92 +#: src/tables/stock/StockItemTable.tsx:239 msgid "Unit Price" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:154 +#: src/pages/part/pricing/BomPricingPanel.tsx:193 #: src/pages/part/pricing/VariantPricingPanel.tsx:53 -#: src/tables/purchasing/SupplierPartTable.tsx:148 +#: src/tables/purchasing/SupplierPartTable.tsx:150 msgid "Updated" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:219 +#: src/pages/part/pricing/BomPricingPanel.tsx:258 msgid "Pie Chart" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:220 +#: src/pages/part/pricing/BomPricingPanel.tsx:259 msgid "Bar Chart" msgstr "" #: src/pages/part/pricing/PriceBreakPanel.tsx:58 -#: src/pages/part/pricing/PriceBreakPanel.tsx:110 +#: src/pages/part/pricing/PriceBreakPanel.tsx:111 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:142 -#: src/tables/purchasing/SupplierPriceBreakTable.tsx:168 +#: src/tables/purchasing/SupplierPriceBreakTable.tsx:169 msgid "Add Price Break" msgstr "" @@ -4986,46 +5846,70 @@ msgstr "" msgid "Price Break" msgstr "" -#: src/pages/part/pricing/PriceBreakPanel.tsx:170 +#: src/pages/part/pricing/PriceBreakPanel.tsx:171 msgid "Price" msgstr "" -#: src/pages/part/pricing/PricingOverviewPanel.tsx:51 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:68 +msgid "Refreshing pricing data" +msgstr "" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:88 +msgid "Pricing data updated" +msgstr "" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:95 +msgid "Failed to update pricing data" +msgstr "" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:104 +msgid "Edit Pricing" +msgstr "" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:125 msgid "Pricing Category" msgstr "" -#: src/pages/part/pricing/PricingOverviewPanel.tsx:70 -msgid "Minimum" -msgstr "" - -#: src/pages/part/pricing/PricingOverviewPanel.tsx:82 -msgid "Maximum" -msgstr "" - -#: src/pages/part/pricing/PricingOverviewPanel.tsx:114 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:188 msgid "Purchase Pricing" msgstr "" -#: src/pages/part/pricing/PricingOverviewPanel.tsx:149 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:223 msgid "Override Pricing" msgstr "" -#: src/pages/part/pricing/PricingOverviewPanel.tsx:156 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:230 msgid "Overall Pricing" msgstr "" -#: src/pages/part/pricing/PricingOverviewPanel.tsx:175 -#: src/pages/stock/StockDetail.tsx:129 -#: src/tables/stock/StockItemTable.tsx:240 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:249 +#: src/pages/stock/StockDetail.tsx:145 +#: src/tables/stock/StockItemTable.tsx:275 msgid "Last Updated" msgstr "" -#: src/pages/part/pricing/PricingOverviewPanel.tsx:192 -msgid "Minimum Value" +#: src/pages/part/pricing/PricingOverviewPanel.tsx:253 +msgid "Pricing Not Set" msgstr "" -#: src/pages/part/pricing/PricingOverviewPanel.tsx:193 -msgid "Maximum Value" +#: src/pages/part/pricing/PricingOverviewPanel.tsx:254 +msgid "Pricing data has not been calculated for this part" +msgstr "" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:258 +msgid "Pricing Actions" +msgstr "" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:261 +msgid "Refresh" +msgstr "" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:262 +msgid "Refresh pricing data" +msgstr "" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:277 +msgid "Edit pricing data" msgstr "" #: src/pages/part/pricing/PricingPanel.tsx:24 @@ -5044,28 +5928,20 @@ msgstr "" msgid "Loading pricing data" msgstr "" -#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:40 -#: src/pages/part/pricing/SaleHistoryPanel.tsx:36 -#: src/tables/ColumnRenderers.tsx:201 -#: src/tables/build/BuildOrderTestTable.tsx:150 -#: src/tables/plugin/PluginListTable.tsx:139 -msgid "Date" -msgstr "" - #: src/pages/part/pricing/PurchaseHistoryPanel.tsx:47 msgid "Purchase Price" msgstr "" -#: src/pages/part/pricing/SaleHistoryPanel.tsx:22 -msgid "Sale Order" -msgstr "" +#: src/pages/part/pricing/SaleHistoryPanel.tsx:24 +#~ msgid "Sale Order" +#~ msgstr "Sale Order" -#: src/pages/part/pricing/SaleHistoryPanel.tsx:42 -#: src/pages/part/pricing/SaleHistoryPanel.tsx:92 +#: src/pages/part/pricing/SaleHistoryPanel.tsx:44 +#: src/pages/part/pricing/SaleHistoryPanel.tsx:87 msgid "Sale Price" msgstr "" -#: src/pages/part/pricing/SupplierPricingPanel.tsx:65 +#: src/pages/part/pricing/SupplierPricingPanel.tsx:69 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:83 msgid "Supplier Price" msgstr "" @@ -5075,23 +5951,23 @@ msgstr "" msgid "Variant Part" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:93 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:87 msgid "Edit Purchase Order" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:102 -#: src/tables/purchasing/PurchaseOrderTable.tsx:128 -#: src/tables/purchasing/PurchaseOrderTable.tsx:140 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:96 +#: src/tables/purchasing/PurchaseOrderTable.tsx:129 +#: src/tables/purchasing/PurchaseOrderTable.tsx:142 msgid "Add Purchase Order" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:127 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:121 msgid "Supplier Reference" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:158 -#: src/pages/sales/ReturnOrderDetail.tsx:137 -#: src/pages/sales/SalesOrderDetail.tsx:137 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:152 +#: src/pages/sales/ReturnOrderDetail.tsx:129 +#: src/pages/sales/SalesOrderDetail.tsx:132 msgid "Completed Line Items" msgstr "" @@ -5101,91 +5977,112 @@ msgstr "" #~ msgid "Order Currency," #~ msgstr "Order Currency," -#: src/pages/purchasing/PurchaseOrderDetail.tsx:165 -#: src/pages/sales/ReturnOrderDetail.tsx:144 -#: src/pages/sales/SalesOrderDetail.tsx:153 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:161 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:231 +msgid "Destination" +msgstr "" + +#: src/pages/purchasing/PurchaseOrderDetail.tsx:167 +#: src/pages/sales/ReturnOrderDetail.tsx:136 +#: src/pages/sales/SalesOrderDetail.tsx:148 msgid "Order Currency" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:172 -#: src/pages/sales/ReturnOrderDetail.tsx:151 -#: src/pages/sales/SalesOrderDetail.tsx:160 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:173 +#: src/pages/sales/ReturnOrderDetail.tsx:143 +#: src/pages/sales/SalesOrderDetail.tsx:155 msgid "Total Cost" msgstr "" #: src/pages/purchasing/PurchaseOrderDetail.tsx:207 -#: src/pages/sales/ReturnOrderDetail.tsx:186 -#: src/pages/sales/SalesOrderDetail.tsx:195 -msgid "Created On" +#: src/pages/sales/ReturnOrderDetail.tsx:183 +#: src/pages/sales/SalesOrderDetail.tsx:191 +#~ msgid "Created On" +#~ msgstr "Created On" + +#: src/pages/purchasing/PurchaseOrderDetail.tsx:221 +#: src/pages/sales/ReturnOrderDetail.tsx:193 +#: src/pages/sales/SalesOrderDetail.tsx:204 +msgid "Issue Date" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:252 -#: src/pages/sales/ReturnOrderDetail.tsx:231 -#: src/pages/sales/SalesOrderDetail.tsx:266 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:237 +#: src/pages/sales/ReturnOrderDetail.tsx:209 +#: src/pages/sales/SalesOrderDetail.tsx:219 +#: src/tables/build/BuildOrderTable.tsx:98 +#: src/tables/part/PartPurchaseOrdersTable.tsx:105 +#: src/tables/sales/ReturnOrderTable.tsx:122 +msgid "Completion Date" +msgstr "" + +#: src/pages/purchasing/PurchaseOrderDetail.tsx:276 +#: src/pages/sales/ReturnOrderDetail.tsx:248 +#: src/pages/sales/SalesOrderDetail.tsx:288 msgid "Order Details" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:280 -#: src/pages/sales/ReturnOrderDetail.tsx:258 -#: src/pages/sales/SalesOrderDetail.tsx:297 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:304 +#: src/pages/sales/ReturnOrderDetail.tsx:276 +#: src/pages/sales/SalesOrderDetail.tsx:319 msgid "Extra Line Items" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:337 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:346 msgid "Issue Purchase Order" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:345 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:354 msgid "Cancel Purchase Order" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:353 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:362 msgid "Hold Purchase Order" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:361 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:370 msgid "Complete Purchase Order" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:427 -#: src/pages/sales/ReturnOrderDetail.tsx:428 -#: src/pages/sales/SalesOrderDetail.tsx:468 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:425 +#: src/pages/sales/ReturnOrderDetail.tsx:424 +#: src/pages/sales/SalesOrderDetail.tsx:464 msgid "Order Actions" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:101 -#: src/pages/sales/SalesOrderDetail.tsx:107 -#: src/tables/sales/SalesOrderTable.tsx:124 +#: src/pages/sales/ReturnOrderDetail.tsx:92 +#: src/pages/sales/SalesOrderDetail.tsx:101 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:109 +#: src/tables/sales/SalesOrderTable.tsx:137 msgid "Customer Reference" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:315 +#: src/pages/sales/ReturnOrderDetail.tsx:322 msgid "Edit Return Order" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:324 -#: src/tables/sales/ReturnOrderTable.tsx:119 -#: src/tables/sales/ReturnOrderTable.tsx:128 +#: src/pages/sales/ReturnOrderDetail.tsx:331 +#: src/tables/sales/ReturnOrderTable.tsx:142 +#: src/tables/sales/ReturnOrderTable.tsx:152 msgid "Add Return Order" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:336 +#: src/pages/sales/ReturnOrderDetail.tsx:343 msgid "Issue Return Order" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:344 +#: src/pages/sales/ReturnOrderDetail.tsx:349 +#~ msgid "Order canceled" +#~ msgstr "Order canceled" + +#: src/pages/sales/ReturnOrderDetail.tsx:351 msgid "Cancel Return Order" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:347 -msgid "Order canceled" -msgstr "" - -#: src/pages/sales/ReturnOrderDetail.tsx:352 +#: src/pages/sales/ReturnOrderDetail.tsx:359 msgid "Hold Return Order" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:360 +#: src/pages/sales/ReturnOrderDetail.tsx:367 msgid "Complete Return Order" msgstr "" @@ -5193,117 +6090,193 @@ msgstr "" msgid "Customers" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:145 +#: src/pages/sales/SalesOrderDetail.tsx:140 msgid "Completed Shipments" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:243 -msgid "Edit Sales Order" -msgstr "" - -#: src/pages/sales/SalesOrderDetail.tsx:252 -#: src/tables/sales/SalesOrderTable.tsx:84 -#: src/tables/sales/SalesOrderTable.tsx:96 -msgid "Add Sales Order" -msgstr "" - #: src/pages/sales/SalesOrderDetail.tsx:256 #~ msgid "Pending Shipments" #~ msgstr "Pending Shipments" -#: src/pages/sales/SalesOrderDetail.tsx:313 +#: src/pages/sales/SalesOrderDetail.tsx:261 +msgid "Edit Sales Order" +msgstr "" + +#: src/pages/sales/SalesOrderDetail.tsx:274 +#: src/tables/sales/SalesOrderTable.tsx:96 +#: src/tables/sales/SalesOrderTable.tsx:109 +msgid "Add Sales Order" +msgstr "" + +#: src/pages/sales/SalesOrderDetail.tsx:335 msgid "Shipments" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:369 +#: src/pages/sales/SalesOrderDetail.tsx:376 msgid "Issue Sales Order" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:377 +#: src/pages/sales/SalesOrderDetail.tsx:384 msgid "Cancel Sales Order" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:385 +#: src/pages/sales/SalesOrderDetail.tsx:392 msgid "Hold Sales Order" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:393 +#: src/pages/sales/SalesOrderDetail.tsx:400 msgid "Complete Sales Order" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:432 +#: src/pages/sales/SalesOrderDetail.tsx:439 msgid "Ship Order" msgstr "" -#: src/pages/stock/LocationDetail.tsx:117 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:117 +#: src/tables/sales/SalesOrderShipmentTable.tsx:96 +msgid "Shipment Reference" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:124 +msgid "Allocated Items" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:133 +msgid "Tracking Number" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:141 +msgid "Invoice Number" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:149 +#: src/tables/ColumnRenderers.tsx:242 +#: src/tables/sales/SalesOrderAllocationTable.tsx:142 +#: src/tables/sales/SalesOrderShipmentTable.tsx:115 +msgid "Shipment Date" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:157 +#: src/tables/sales/SalesOrderShipmentTable.tsx:119 +msgid "Delivery Date" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:204 +msgid "Shipment Details" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:210 +msgid "Assigned Items" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:241 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:317 +#: src/tables/sales/SalesOrderShipmentTable.tsx:75 +msgid "Edit Shipment" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:248 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:322 +#: src/tables/sales/SalesOrderShipmentTable.tsx:67 +msgid "Cancel Shipment" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:261 +#: src/tables/sales/SalesOrderShipmentTable.tsx:83 +#: src/tables/sales/SalesOrderShipmentTable.tsx:151 +msgid "Complete Shipment" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:276 +#: src/tables/part/PartPurchaseOrdersTable.tsx:121 +msgid "Pending" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:277 +#: src/tables/sales/SalesOrderAllocationTable.tsx:148 +#: src/tables/sales/SalesOrderShipmentTable.tsx:108 +#: src/tables/sales/SalesOrderShipmentTable.tsx:197 +msgid "Shipped" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:279 +#: src/tables/sales/SalesOrderShipmentTable.tsx:202 +msgid "Delivered" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:293 +msgid "Send Shipment" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:312 +msgid "Shipment Actions" +msgstr "" + +#: src/pages/stock/LocationDetail.tsx:111 msgid "Parent Location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:135 +#: src/pages/stock/LocationDetail.tsx:129 msgid "Sublocations" msgstr "" -#: src/pages/stock/LocationDetail.tsx:147 +#: src/pages/stock/LocationDetail.tsx:141 #: src/tables/stock/StockLocationTable.tsx:54 msgid "External" msgstr "" -#: src/pages/stock/LocationDetail.tsx:153 +#: src/pages/stock/LocationDetail.tsx:147 #: src/tables/stock/StockLocationTable.tsx:63 msgid "Location Type" msgstr "" -#: src/pages/stock/LocationDetail.tsx:164 +#: src/pages/stock/LocationDetail.tsx:158 msgid "Top level stock location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:175 +#: src/pages/stock/LocationDetail.tsx:169 msgid "Location Details" msgstr "" -#: src/pages/stock/LocationDetail.tsx:201 +#: src/pages/stock/LocationDetail.tsx:195 msgid "Default Parts" msgstr "" -#: src/pages/stock/LocationDetail.tsx:220 -#: src/pages/stock/LocationDetail.tsx:351 +#: src/pages/stock/LocationDetail.tsx:214 +#: src/pages/stock/LocationDetail.tsx:336 #: src/tables/stock/StockLocationTable.tsx:123 msgid "Edit Stock Location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:241 -#: src/pages/stock/LocationDetail.tsx:356 +#: src/pages/stock/LocationDetail.tsx:235 +#: src/pages/stock/LocationDetail.tsx:341 msgid "Delete Stock Location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:244 +#: src/pages/stock/LocationDetail.tsx:238 msgid "Items Action" msgstr "" -#: src/pages/stock/LocationDetail.tsx:245 +#: src/pages/stock/LocationDetail.tsx:239 msgid "Action for stock items in this location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:250 +#: src/pages/stock/LocationDetail.tsx:244 msgid "Child Locations Action" msgstr "" -#: src/pages/stock/LocationDetail.tsx:251 +#: src/pages/stock/LocationDetail.tsx:245 msgid "Action for child locations in this location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:346 +#: src/pages/stock/LocationDetail.tsx:332 msgid "Location Actions" msgstr "" -#: src/pages/stock/StockDetail.tsx:108 +#: src/pages/stock/StockDetail.tsx:116 msgid "Base Part" msgstr "" -#: src/pages/stock/StockDetail.tsx:115 -msgid "Stock Status" -msgstr "" - #: src/pages/stock/StockDetail.tsx:155 #~ msgid "Link custom barcode to stock item" #~ msgstr "Link custom barcode to stock item" @@ -5312,113 +6285,179 @@ msgstr "" #~ msgid "Unlink custom barcode from stock item" #~ msgstr "Unlink custom barcode from stock item" -#: src/pages/stock/StockDetail.tsx:188 -msgid "Installed In" -msgstr "" - -#: src/pages/stock/StockDetail.tsx:204 -msgid "Consumed By" +#: src/pages/stock/StockDetail.tsx:178 +msgid "Allocated to Orders" msgstr "" #: src/pages/stock/StockDetail.tsx:205 #~ msgid "Edit stock item" #~ msgstr "Edit stock item" -#: src/pages/stock/StockDetail.tsx:213 -#: src/tables/build/BuildAllocatedStockTable.tsx:64 -#: src/tables/stock/StockTrackingTable.tsx:96 -msgid "Build Order" +#: src/pages/stock/StockDetail.tsx:209 +msgid "Installed In" msgstr "" #: src/pages/stock/StockDetail.tsx:217 #~ msgid "Delete stock item" #~ msgstr "Delete stock item" -#: src/pages/stock/StockDetail.tsx:291 +#: src/pages/stock/StockDetail.tsx:226 +msgid "Parent Item" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:230 +msgid "Parent stock item" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:236 +msgid "Consumed By" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:245 +#: src/tables/build/BuildAllocatedStockTable.tsx:77 +#: src/tables/stock/StockTrackingTable.tsx:100 +msgid "Build Order" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:283 +#: src/tables/stock/StockItemTable.tsx:270 +msgid "Expiry Date" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:414 msgid "Stock Details" msgstr "" -#: src/pages/stock/StockDetail.tsx:297 +#: src/pages/stock/StockDetail.tsx:420 msgid "Stock Tracking" msgstr "" -#: src/pages/stock/StockDetail.tsx:350 -msgid "Test Data" -msgstr "" - -#: src/pages/stock/StockDetail.tsx:364 -msgid "Installed Items" -msgstr "" - -#: src/pages/stock/StockDetail.tsx:371 -msgid "Child Items" -msgstr "" - -#: src/pages/stock/StockDetail.tsx:425 -msgid "Edit Stock Item" -msgstr "" - #: src/pages/stock/StockDetail.tsx:433 #~ msgid "Duplicate stock item" #~ msgstr "Duplicate stock item" -#: src/pages/stock/StockDetail.tsx:452 +#: src/pages/stock/StockDetail.tsx:475 +msgid "Test Data" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:489 +msgid "Installed Items" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:496 +msgid "Child Items" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:545 +msgid "Edit Stock Item" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:572 msgid "Delete Stock Item" msgstr "" -#: src/pages/stock/StockDetail.tsx:504 +#: src/pages/stock/StockDetail.tsx:604 +msgid "Serialize Stock Item" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:617 +msgid "Stock item serialized" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:623 +msgid "Return Stock Item" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:626 +msgid "Return this item into stock. This will remove the customer assignment." +msgstr "" + +#: src/pages/stock/StockDetail.tsx:636 +msgid "Item returned to stock" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:666 msgid "Stock Operations" msgstr "" -#: src/pages/stock/StockDetail.tsx:509 +#: src/pages/stock/StockDetail.tsx:671 msgid "Count stock" msgstr "" -#: src/pages/stock/StockDetail.tsx:519 -#: src/tables/stock/StockItemTable.tsx:449 -msgid "Add stock" +#: src/pages/stock/StockDetail.tsx:671 +#: src/tables/stock/StockItemTable.tsx:452 +#~ msgid "Add stock" +#~ msgstr "Add stock" + +#: src/pages/stock/StockDetail.tsx:680 +#: src/tables/stock/StockItemTable.tsx:461 +#~ msgid "Remove stock" +#~ msgstr "Remove stock" + +#: src/pages/stock/StockDetail.tsx:698 +#: src/tables/stock/StockItemTable.tsx:481 +#~ msgid "Transfer stock" +#~ msgstr "Transfer stock" + +#: src/pages/stock/StockDetail.tsx:699 +msgid "Serialize" msgstr "" -#: src/pages/stock/StockDetail.tsx:527 -#: src/tables/stock/StockItemTable.tsx:458 -msgid "Remove stock" +#: src/pages/stock/StockDetail.tsx:700 +msgid "Serialize stock" msgstr "" -#: src/pages/stock/StockDetail.tsx:534 +#: src/pages/stock/StockDetail.tsx:711 msgid "Transfer" msgstr "" -#: src/pages/stock/StockDetail.tsx:535 -#: src/tables/stock/StockItemTable.tsx:478 -msgid "Transfer stock" +#: src/pages/stock/StockDetail.tsx:722 +msgid "Return" msgstr "" -#: src/pages/stock/StockDetail.tsx:546 +#: src/pages/stock/StockDetail.tsx:723 +msgid "Return from customer" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:738 msgid "Stock Item Actions" msgstr "" -#: src/tables/ColumnRenderers.tsx:30 +#: src/pages/stock/StockDetail.tsx:808 +msgid "Stale" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:814 +msgid "Expired" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:820 +msgid "Unavailable" +msgstr "" + +#: src/tables/ColumnRenderers.tsx:36 msgid "Part is not active" msgstr "" -#: src/tables/ColumnRenderers.tsx:35 -msgid "Part is locked" +#: src/tables/ColumnRenderers.tsx:41 +#: src/tables/bom/BomTable.tsx:542 +#: src/tables/part/PartParameterTable.tsx:193 +#: src/tables/part/PartTestTemplateTable.tsx:253 +msgid "Part is Locked" msgstr "" -#: src/tables/ColumnRenderers.tsx:57 +#: src/tables/ColumnRenderers.tsx:41 +#~ msgid "Part is locked" +#~ msgstr "Part is locked" + +#: src/tables/ColumnRenderers.tsx:46 +msgid "You are subscribed to notifications for this part" +msgstr "" + +#: src/tables/ColumnRenderers.tsx:68 msgid "No location set" msgstr "" -#: src/tables/ColumnRenderers.tsx:228 -#: src/tables/sales/SalesOrderShipmentTable.tsx:79 -msgid "Shipment Date" -msgstr "" - -#: src/tables/ColumnRenderers.tsx:248 -#: src/tables/settings/CurrencyTable.tsx:23 -msgid "Currency" -msgstr "" - #: src/tables/ColumnSelect.tsx:16 #: src/tables/ColumnSelect.tsx:23 msgid "Select Columns" @@ -5452,91 +6491,116 @@ msgstr "" msgid "Download Data" msgstr "" -#: src/tables/Filter.tsx:89 -#: src/tables/build/BuildOrderTable.tsx:135 +#: src/tables/Filter.tsx:101 msgid "Assigned to me" msgstr "" -#: src/tables/Filter.tsx:90 -#: src/tables/build/BuildOrderTable.tsx:136 +#: src/tables/Filter.tsx:102 msgid "Show orders assigned to me" msgstr "" -#: src/tables/Filter.tsx:97 +#: src/tables/Filter.tsx:106 +#~ msgid "Show overdue orders" +#~ msgstr "Show overdue orders" + +#: src/tables/Filter.tsx:109 +#: src/tables/build/BuildOrderTable.tsx:120 +#: src/tables/sales/SalesOrderAllocationTable.tsx:59 msgid "Outstanding" msgstr "" -#: src/tables/Filter.tsx:98 -msgid "Show outstanding orders" +#: src/tables/Filter.tsx:110 +msgid "Show outstanding items" msgstr "" -#: src/tables/Filter.tsx:105 -#: src/tables/build/BuildOrderTable.tsx:128 +#: src/tables/Filter.tsx:117 msgid "Overdue" msgstr "" -#: src/tables/Filter.tsx:106 -msgid "Show overdue orders" +#: src/tables/Filter.tsx:118 +msgid "Show overdue items" msgstr "" -#: src/tables/FilterSelectDrawer.tsx:51 +#: src/tables/Filter.tsx:125 +msgid "Minimum Date" +msgstr "" + +#: src/tables/Filter.tsx:126 +msgid "Show items after this date" +msgstr "" + +#: src/tables/Filter.tsx:134 +msgid "Maximum Date" +msgstr "" + +#: src/tables/Filter.tsx:135 +msgid "Show items before this date" +msgstr "" + +#: src/tables/Filter.tsx:144 +msgid "Has Project Code" +msgstr "" + +#: src/tables/Filter.tsx:145 +msgid "Show orders with an assigned project code" +msgstr "" + +#: src/tables/FilterSelectDrawer.tsx:55 msgid "Remove filter" msgstr "" -#: src/tables/FilterSelectDrawer.tsx:130 +#: src/tables/FilterSelectDrawer.tsx:159 msgid "Select filter" msgstr "" -#: src/tables/FilterSelectDrawer.tsx:131 +#: src/tables/FilterSelectDrawer.tsx:160 msgid "Filter" msgstr "" -#: src/tables/FilterSelectDrawer.tsx:138 -#: src/tables/build/BuildOrderTestTable.tsx:134 -#: src/tables/purchasing/ManufacturerPartParameterTable.tsx:38 -#: src/tables/stock/StockItemTestResultTable.tsx:186 -msgid "Value" +#: src/tables/FilterSelectDrawer.tsx:168 +msgid "Select date value" msgstr "" -#: src/tables/FilterSelectDrawer.tsx:140 +#: src/tables/FilterSelectDrawer.tsx:176 msgid "Select filter value" msgstr "" -#: src/tables/FilterSelectDrawer.tsx:183 +#: src/tables/FilterSelectDrawer.tsx:219 +#: src/tables/InvenTreeTableHeader.tsx:214 msgid "Table Filters" msgstr "" -#: src/tables/FilterSelectDrawer.tsx:215 +#: src/tables/FilterSelectDrawer.tsx:251 msgid "Add Filter" msgstr "" -#: src/tables/FilterSelectDrawer.tsx:224 +#: src/tables/FilterSelectDrawer.tsx:260 msgid "Clear Filters" msgstr "" -#: src/tables/InvenTreeTable.tsx:123 -#: src/tables/InvenTreeTable.tsx:431 -#: src/tables/InvenTreeTable.tsx:455 +#: src/tables/InvenTreeTable.tsx:96 +#: src/tables/InvenTreeTable.tsx:417 +#: src/tables/InvenTreeTable.tsx:441 msgid "No records found" msgstr "" -#: src/tables/InvenTreeTable.tsx:466 +#: src/tables/InvenTreeTable.tsx:452 msgid "Server returned incorrect data type" msgstr "" -#: src/tables/InvenTreeTable.tsx:474 +#: src/tables/InvenTreeTable.tsx:460 msgid "Bad request" msgstr "" -#: src/tables/InvenTreeTable.tsx:477 +#: src/tables/InvenTreeTable.tsx:463 msgid "Unauthorized" msgstr "" -#: src/tables/InvenTreeTable.tsx:480 +#: src/tables/InvenTreeTable.tsx:466 msgid "Forbidden" msgstr "" -#: src/tables/InvenTreeTable.tsx:483 +#: src/tables/InvenTreeTable.tsx:469 msgid "Not found" msgstr "" @@ -5544,18 +6608,6 @@ msgstr "" #~ msgid "Are you sure you want to delete the selected records?" #~ msgstr "Are you sure you want to delete the selected records?" -#: src/tables/InvenTreeTable.tsx:525 -msgid "Delete Selected Items" -msgstr "" - -#: src/tables/InvenTreeTable.tsx:529 -msgid "Are you sure you want to delete the selected items?" -msgstr "" - -#: src/tables/InvenTreeTable.tsx:531 -msgid "This action cannot be undone!" -msgstr "" - #: src/tables/InvenTreeTable.tsx:535 #~ msgid "Deleted records" #~ msgstr "Deleted records" @@ -5568,31 +6620,56 @@ msgstr "" #~ msgid "Failed to delete records" #~ msgstr "Failed to delete records" +#: src/tables/InvenTreeTable.tsx:552 +#~ msgid "This action cannot be undone!" +#~ msgstr "This action cannot be undone!" + #: src/tables/InvenTreeTable.tsx:594 #: src/tables/InvenTreeTable.tsx:595 #~ msgid "Print actions" #~ msgstr "Print actions" -#: src/tables/InvenTreeTable.tsx:618 -#: src/tables/InvenTreeTable.tsx:619 -msgid "Barcode actions" +#: src/tables/InvenTreeTable.tsx:655 +#: src/tables/InvenTreeTable.tsx:656 +#~ msgid "Barcode actions" +#~ msgstr "Barcode actions" + +#: src/tables/InvenTreeTable.tsx:712 +#~ msgid "Table filters" +#~ msgstr "Table filters" + +#: src/tables/InvenTreeTable.tsx:725 +#~ msgid "Clear custom query filters" +#~ msgstr "Clear custom query filters" + +#: src/tables/InvenTreeTableHeader.tsx:98 +msgid "Delete Selected Items" msgstr "" -#: src/tables/InvenTreeTable.tsx:628 +#: src/tables/InvenTreeTableHeader.tsx:102 +msgid "Are you sure you want to delete the selected items?" +msgstr "" + +#: src/tables/InvenTreeTableHeader.tsx:104 +#: src/tables/plugin/PluginListTable.tsx:305 +msgid "This action cannot be undone" +msgstr "" + +#: src/tables/InvenTreeTableHeader.tsx:142 +msgid "Custom table filters are active" +msgstr "" + +#: src/tables/InvenTreeTableHeader.tsx:169 msgid "Delete selected records" msgstr "" -#: src/tables/InvenTreeTable.tsx:649 +#: src/tables/InvenTreeTableHeader.tsx:188 msgid "Refresh data" msgstr "" -#: src/tables/InvenTreeTable.tsx:675 -msgid "Table filters" -msgstr "" - #: src/tables/TableHoverCard.tsx:35 -msgid "item-{idx}" -msgstr "" +#~ msgid "item-{idx}" +#~ msgstr "item-{idx}" #: src/tables/UploadAction.tsx:7 #~ msgid "Upload Data" @@ -5607,31 +6684,36 @@ msgid "Part Information" msgstr "" #: src/tables/bom/BomTable.tsx:212 -#: src/tables/build/BuildLineTable.tsx:126 +#: src/tables/build/BuildLineTable.tsx:257 #: src/tables/part/PartTable.tsx:125 msgid "External stock" msgstr "" #: src/tables/bom/BomTable.tsx:220 -#: src/tables/build/BuildLineTable.tsx:89 +#: src/tables/build/BuildLineTable.tsx:220 msgid "Includes substitute stock" msgstr "" #: src/tables/bom/BomTable.tsx:229 -#: src/tables/build/BuildLineTable.tsx:99 -#: src/tables/sales/SalesOrderLineItemTable.tsx:127 +#: src/tables/build/BuildLineTable.tsx:230 +#: src/tables/sales/SalesOrderLineItemTable.tsx:135 msgid "Includes variant stock" msgstr "" +#: src/tables/bom/BomTable.tsx:245 +#: src/tables/part/PartTable.tsx:92 +msgid "Building" +msgstr "" + #: src/tables/bom/BomTable.tsx:254 #: src/tables/part/PartTable.tsx:153 -#: src/tables/sales/SalesOrderLineItemTable.tsx:150 -#: src/tables/stock/StockItemTable.tsx:216 +#: src/tables/sales/SalesOrderLineItemTable.tsx:158 +#: src/tables/stock/StockItemTable.tsx:206 msgid "Stock Information" msgstr "" #: src/tables/bom/BomTable.tsx:285 -#: src/tables/build/BuildLineTable.tsx:248 +#: src/tables/build/BuildLineTable.tsx:409 msgid "Consumable item" msgstr "" @@ -5644,7 +6726,7 @@ msgstr "" #~ msgstr "Create BOM Item" #: src/tables/bom/BomTable.tsx:306 -#: src/tables/build/BuildLineTable.tsx:69 +#: src/tables/build/BuildLineTable.tsx:200 msgid "Show testable items" msgstr "" @@ -5657,11 +6739,12 @@ msgid "Show trackable items" msgstr "" #: src/tables/bom/BomTable.tsx:316 -#: src/tables/build/BuildLineTable.tsx:64 +#: src/tables/build/BuildLineTable.tsx:195 msgid "Show assembled items" msgstr "" #: src/tables/bom/BomTable.tsx:321 +#: src/tables/build/BuildLineTable.tsx:180 msgid "Show items with available stock" msgstr "" @@ -5705,7 +6788,7 @@ msgstr "" #: src/tables/bom/BomTable.tsx:345 #: src/tables/bom/UsedInTable.tsx:79 -#: src/tables/build/BuildLineTable.tsx:58 +#: src/tables/build/BuildLineTable.tsx:189 msgid "Optional" msgstr "" @@ -5723,7 +6806,7 @@ msgstr "" #~ msgstr "Bom item deleted" #: src/tables/bom/BomTable.tsx:350 -#: src/tables/build/BuildLineTable.tsx:53 +#: src/tables/build/BuildLineTable.tsx:184 msgid "Consumable" msgstr "" @@ -5749,12 +6832,12 @@ msgid "Show items with pricing" msgstr "" #: src/tables/bom/BomTable.tsx:378 -#: src/tables/bom/BomTable.tsx:511 +#: src/tables/bom/BomTable.tsx:512 msgid "Import BOM Data" msgstr "" #: src/tables/bom/BomTable.tsx:388 -#: src/tables/bom/BomTable.tsx:523 +#: src/tables/bom/BomTable.tsx:526 msgid "Add BOM Item" msgstr "" @@ -5780,7 +6863,7 @@ msgstr "" #: src/tables/bom/BomTable.tsx:423 #: src/tables/bom/BomTable.tsx:426 -#: src/tables/bom/BomTable.tsx:517 +#: src/tables/bom/BomTable.tsx:519 msgid "Validate BOM" msgstr "" @@ -5812,21 +6895,15 @@ msgstr "" msgid "Edit Substitutes" msgstr "" -#: src/tables/bom/BomTable.tsx:539 -#: src/tables/part/PartParameterTable.tsx:193 -#: src/tables/part/PartTestTemplateTable.tsx:252 -msgid "Part is Locked" -msgstr "" - -#: src/tables/bom/BomTable.tsx:544 +#: src/tables/bom/BomTable.tsx:547 msgid "Bill of materials cannot be edited, as the part is locked" msgstr "" #: src/tables/bom/UsedInTable.tsx:33 -#: src/tables/build/BuildLineTable.tsx:63 +#: src/tables/build/BuildLineTable.tsx:194 #: src/tables/part/ParametricPartTable.tsx:233 #: src/tables/part/PartTable.tsx:190 -#: src/tables/stock/StockItemTable.tsx:300 +#: src/tables/stock/StockItemTable.tsx:304 msgid "Assembly" msgstr "" @@ -5844,285 +6921,347 @@ msgstr "" msgid "Show trackable assemblies" msgstr "" -#: src/tables/build/BuildAllocatedStockTable.tsx:54 +#: src/tables/build/BuildAllocatedStockTable.tsx:56 msgid "Allocated to Output" msgstr "" -#: src/tables/build/BuildAllocatedStockTable.tsx:55 +#: src/tables/build/BuildAllocatedStockTable.tsx:57 msgid "Show items allocated to a build output" msgstr "" -#: src/tables/build/BuildAllocatedStockTable.tsx:76 -#: src/tables/part/PartPurchaseOrdersTable.tsx:125 -#: src/tables/sales/SalesOrderAllocationTable.tsx:62 +#: src/tables/build/BuildAllocatedStockTable.tsx:65 +#: src/tables/build/BuildOrderTable.tsx:159 +#: src/tables/part/PartParameterTable.tsx:212 +#: src/tables/part/PartPurchaseOrdersTable.tsx:138 +#: src/tables/sales/ReturnOrderTable.tsx:84 +#: src/tables/sales/SalesOrderAllocationTable.tsx:68 +#: src/tables/sales/SalesOrderTable.tsx:84 +#: src/tables/stock/StockItemTable.tsx:339 +msgid "Include Variants" +msgstr "" + +#: src/tables/build/BuildAllocatedStockTable.tsx:66 +#: src/tables/build/BuildOrderTable.tsx:160 +#: src/tables/part/PartPurchaseOrdersTable.tsx:139 +#: src/tables/sales/ReturnOrderTable.tsx:85 +#: src/tables/sales/SalesOrderAllocationTable.tsx:69 +#: src/tables/sales/SalesOrderTable.tsx:85 +msgid "Include orders for part variants" +msgstr "" + +#: src/tables/build/BuildAllocatedStockTable.tsx:89 +#: src/tables/part/PartPurchaseOrdersTable.tsx:131 +#: src/tables/sales/SalesOrderAllocationTable.tsx:93 msgid "Order Status" msgstr "" -#: src/tables/build/BuildAllocatedStockTable.tsx:96 -#: src/tables/sales/SalesOrderAllocationTable.tsx:75 +#: src/tables/build/BuildAllocatedStockTable.tsx:117 +#: src/tables/sales/SalesOrderAllocationTable.tsx:126 msgid "Allocated Quantity" msgstr "" -#: src/tables/build/BuildAllocatedStockTable.tsx:116 -#: src/tables/sales/SalesOrderAllocationTable.tsx:94 +#: src/tables/build/BuildAllocatedStockTable.tsx:137 +#: src/tables/sales/SalesOrderAllocationTable.tsx:120 msgid "Available Quantity" msgstr "" -#: src/tables/build/BuildAllocatedStockTable.tsx:126 -#: src/tables/build/BuildOrderTestTable.tsx:176 -#: src/tables/build/BuildOrderTestTable.tsx:200 -#: src/tables/build/BuildOutputTable.tsx:312 -msgid "Build Output" +#: src/tables/build/BuildAllocatedStockTable.tsx:164 +#: src/tables/build/BuildLineTable.tsx:513 +msgid "Edit Stock Allocation" msgstr "" -#: src/tables/build/BuildAllocatedStockTable.tsx:143 -msgid "Edit Build Item" -msgstr "" +#: src/tables/build/BuildAllocatedStockTable.tsx:164 +#~ msgid "Edit Build Item" +#~ msgstr "Edit Build Item" -#: src/tables/build/BuildAllocatedStockTable.tsx:153 -msgid "Delete Build Item" -msgstr "" +#: src/tables/build/BuildAllocatedStockTable.tsx:174 +#~ msgid "Delete Build Item" +#~ msgstr "Delete Build Item" -#: src/tables/build/BuildLineTable.tsx:43 -#: src/tables/stock/StockItemTable.tsx:305 -msgid "Allocated" -msgstr "" - -#: src/tables/build/BuildLineTable.tsx:44 -msgid "Show allocated lines" -msgstr "" - -#: src/tables/build/BuildLineTable.tsx:49 -msgid "Show lines with available stock" -msgstr "" - -#: src/tables/build/BuildLineTable.tsx:54 -msgid "Show consumable lines" +#: src/tables/build/BuildAllocatedStockTable.tsx:177 +#: src/tables/build/BuildLineTable.tsx:526 +msgid "Delete Stock Allocation" msgstr "" #: src/tables/build/BuildLineTable.tsx:59 +#~ msgid "Show lines with available stock" +#~ msgstr "Show lines with available stock" + +#: src/tables/build/BuildLineTable.tsx:175 +msgid "Show allocated lines" +msgstr "" + +#: src/tables/build/BuildLineTable.tsx:185 +msgid "Show consumable lines" +msgstr "" + +#: src/tables/build/BuildLineTable.tsx:190 msgid "Show optional lines" msgstr "" -#: src/tables/build/BuildLineTable.tsx:68 +#: src/tables/build/BuildLineTable.tsx:199 #: src/tables/part/PartTable.tsx:208 msgid "Testable" msgstr "" -#: src/tables/build/BuildLineTable.tsx:73 -#: src/tables/stock/StockItemTable.tsx:364 +#: src/tables/build/BuildLineTable.tsx:204 +#: src/tables/stock/StockItemTable.tsx:368 msgid "Tracked" msgstr "" -#: src/tables/build/BuildLineTable.tsx:74 +#: src/tables/build/BuildLineTable.tsx:205 msgid "Show tracked lines" msgstr "" -#: src/tables/build/BuildLineTable.tsx:108 -#: src/tables/sales/SalesOrderLineItemTable.tsx:133 +#: src/tables/build/BuildLineTable.tsx:239 +#: src/tables/sales/SalesOrderLineItemTable.tsx:141 msgid "In production" msgstr "" -#: src/tables/build/BuildLineTable.tsx:136 +#: src/tables/build/BuildLineTable.tsx:267 msgid "Insufficient stock" msgstr "" -#: src/tables/build/BuildLineTable.tsx:152 -#: src/tables/sales/SalesOrderLineItemTable.tsx:121 -#: src/tables/stock/StockItemTable.tsx:186 +#: src/tables/build/BuildLineTable.tsx:283 +#: src/tables/sales/SalesOrderLineItemTable.tsx:129 +#: src/tables/stock/StockItemTable.tsx:175 msgid "No stock available" msgstr "" -#: src/tables/build/BuildLineTable.tsx:201 +#: src/tables/build/BuildLineTable.tsx:355 msgid "Gets Inherited" msgstr "" -#: src/tables/build/BuildLineTable.tsx:210 +#: src/tables/build/BuildLineTable.tsx:366 msgid "Unit Quantity" msgstr "" -#: src/tables/build/BuildLineTable.tsx:267 -#: src/tables/sales/SalesOrderLineItemTable.tsx:230 +#: src/tables/build/BuildLineTable.tsx:381 +msgid "Required Quantity" +msgstr "" + +#: src/tables/build/BuildLineTable.tsx:432 +#: src/tables/sales/SalesOrderLineItemTable.tsx:254 msgid "Create Build Order" msgstr "" -#: src/tables/build/BuildLineTable.tsx:298 -msgid "Allocate Stock" +#: src/tables/build/BuildLineTable.tsx:460 +msgid "Auto allocation in progress" msgstr "" -#: src/tables/build/BuildLineTable.tsx:305 +#: src/tables/build/BuildLineTable.tsx:463 +#: src/tables/build/BuildLineTable.tsx:632 +msgid "Auto Allocate Stock" +msgstr "" + +#: src/tables/build/BuildLineTable.tsx:464 +msgid "Automatically allocate stock to this build according to the selected options" +msgstr "" + +#: src/tables/build/BuildLineTable.tsx:482 +#: src/tables/build/BuildLineTable.tsx:496 +#: src/tables/build/BuildLineTable.tsx:579 +#: src/tables/build/BuildLineTable.tsx:664 +#: src/tables/build/BuildOutputTable.tsx:314 +#: src/tables/build/BuildOutputTable.tsx:319 +msgid "Deallocate Stock" +msgstr "" + +#: src/tables/build/BuildLineTable.tsx:498 +msgid "Deallocate all untracked stock for this build order" +msgstr "" + +#: src/tables/build/BuildLineTable.tsx:500 +msgid "Deallocate stock from the selected line item" +msgstr "" + +#: src/tables/build/BuildLineTable.tsx:504 +msgid "Stock has been deallocated" +msgstr "" + +#: src/tables/build/BuildLineTable.tsx:589 msgid "Order Stock" msgstr "" -#: src/tables/build/BuildLineTable.tsx:312 +#: src/tables/build/BuildLineTable.tsx:596 msgid "Build Stock" msgstr "" -#: src/tables/build/BuildOrderTable.tsx:111 -msgid "Show active orders" +#: src/tables/build/BuildLineTable.tsx:610 +msgid "View Part" msgstr "" #: src/tables/build/BuildOrderTable.tsx:116 -msgid "Cascade" -msgstr "" +#~ msgid "Cascade" +#~ msgstr "Cascade" #: src/tables/build/BuildOrderTable.tsx:117 -msgid "Display recursive child orders" +#~ msgid "Display recursive child orders" +#~ msgstr "Display recursive child orders" + +#: src/tables/build/BuildOrderTable.tsx:121 +msgid "Show outstanding orders" msgstr "" -#: src/tables/build/BuildOrderTable.tsx:123 -#: src/tables/part/PartPurchaseOrdersTable.tsx:126 -#: src/tables/purchasing/PurchaseOrderTable.tsx:56 -#: src/tables/sales/ReturnOrderTable.tsx:47 -#: src/tables/sales/SalesOrderTable.tsx:54 +#: src/tables/build/BuildOrderTable.tsx:121 +#~ msgid "Show active orders" +#~ msgstr "Show active orders" + +#: src/tables/build/BuildOrderTable.tsx:122 +#~ msgid "Show overdue status" +#~ msgstr "Show overdue status" + +#: src/tables/build/BuildOrderTable.tsx:126 +#: src/tables/part/PartPurchaseOrdersTable.tsx:132 +#: src/tables/purchasing/PurchaseOrderTable.tsx:59 +#: src/tables/sales/ReturnOrderTable.tsx:57 +#: src/tables/sales/SalesOrderTable.tsx:57 msgid "Filter by order status" msgstr "" -#: src/tables/build/BuildOrderTable.tsx:130 -msgid "Show overdue status" -msgstr "" - -#: src/tables/build/BuildOrderTable.tsx:141 -#: src/tables/purchasing/PurchaseOrderTable.tsx:65 -#: src/tables/sales/ReturnOrderTable.tsx:56 -#: src/tables/sales/SalesOrderTable.tsx:63 +#: src/tables/build/BuildOrderTable.tsx:136 +#: src/tables/purchasing/PurchaseOrderTable.tsx:70 +#: src/tables/sales/ReturnOrderTable.tsx:68 +#: src/tables/sales/SalesOrderTable.tsx:68 msgid "Filter by project code" msgstr "" -#: src/tables/build/BuildOrderTable.tsx:146 -#: src/tables/purchasing/PurchaseOrderTable.tsx:70 -#: src/tables/sales/ReturnOrderTable.tsx:61 -#: src/tables/sales/SalesOrderTable.tsx:68 -msgid "Has Project Code" -msgstr "" - -#: src/tables/build/BuildOrderTable.tsx:147 +#: src/tables/build/BuildOrderTable.tsx:139 #: src/tables/purchasing/PurchaseOrderTable.tsx:71 #: src/tables/sales/ReturnOrderTable.tsx:62 #: src/tables/sales/SalesOrderTable.tsx:69 -msgid "Filter by whether the purchase order has a project code" -msgstr "" +#~ msgid "Filter by whether the purchase order has a project code" +#~ msgstr "Filter by whether the purchase order has a project code" -#: src/tables/build/BuildOrderTable.tsx:152 +#: src/tables/build/BuildOrderTable.tsx:143 msgid "Filter by user who issued this order" msgstr "" -#: src/tables/build/BuildOrderTable.tsx:158 -#: src/tables/purchasing/PurchaseOrderTable.tsx:76 -#: src/tables/sales/ReturnOrderTable.tsx:67 -#: src/tables/sales/SalesOrderTable.tsx:74 +#: src/tables/build/BuildOrderTable.tsx:149 +#: src/tables/purchasing/PurchaseOrderTable.tsx:77 +#: src/tables/sales/ReturnOrderTable.tsx:75 +#: src/tables/sales/SalesOrderTable.tsx:75 msgid "Filter by responsible owner" msgstr "" -#: src/tables/build/BuildOrderTestTable.tsx:75 -#: src/tables/build/BuildOrderTestTable.tsx:111 -#: src/tables/stock/StockItemTestResultTable.tsx:257 -#: src/tables/stock/StockItemTestResultTable.tsx:329 -#: src/tables/stock/StockItemTestResultTable.tsx:384 +#: src/tables/build/BuildOrderTestTable.tsx:76 +#: src/tables/build/BuildOrderTestTable.tsx:112 +#: src/tables/stock/StockItemTestResultTable.tsx:275 +#: src/tables/stock/StockItemTestResultTable.tsx:347 +#: src/tables/stock/StockItemTestResultTable.tsx:403 msgid "Add Test Result" msgstr "" -#: src/tables/build/BuildOrderTestTable.tsx:82 -#: src/tables/stock/StockItemTestResultTable.tsx:259 +#: src/tables/build/BuildOrderTestTable.tsx:83 +#: src/tables/stock/StockItemTestResultTable.tsx:277 msgid "Test result added" msgstr "" -#: src/tables/build/BuildOrderTestTable.tsx:110 -#: src/tables/stock/StockItemTestResultTable.tsx:174 +#: src/tables/build/BuildOrderTestTable.tsx:111 +#: src/tables/stock/StockItemTestResultTable.tsx:180 msgid "No Result" msgstr "" -#: src/tables/build/BuildOrderTestTable.tsx:220 +#: src/tables/build/BuildOrderTestTable.tsx:221 msgid "Show build outputs currently in production" msgstr "" +#: src/tables/build/BuildOutputTable.tsx:76 +msgid "Build Output Stock Allocation" +msgstr "" + #: src/tables/build/BuildOutputTable.tsx:161 #~ msgid "Delete build output" #~ msgstr "Delete build output" -#: src/tables/build/BuildOutputTable.tsx:173 -#: src/tables/build/BuildOutputTable.tsx:211 +#: src/tables/build/BuildOutputTable.tsx:258 +#: src/tables/build/BuildOutputTable.tsx:374 msgid "Add Build Output" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:216 +#: src/tables/build/BuildOutputTable.tsx:304 +#~ msgid "Edit build output" +#~ msgstr "Edit build output" + +#: src/tables/build/BuildOutputTable.tsx:306 +#: src/tables/build/BuildOutputTable.tsx:417 +msgid "Edit Build Output" +msgstr "" + +#: src/tables/build/BuildOutputTable.tsx:321 +msgid "This action will deallocate all stock from the selected build output" +msgstr "" + +#: src/tables/build/BuildOutputTable.tsx:341 msgid "Complete selected outputs" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:226 +#: src/tables/build/BuildOutputTable.tsx:352 msgid "Scrap selected outputs" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:236 +#: src/tables/build/BuildOutputTable.tsx:363 msgid "Cancel selected outputs" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:252 +#: src/tables/build/BuildOutputTable.tsx:385 msgid "Allocate" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:253 +#: src/tables/build/BuildOutputTable.tsx:386 msgid "Allocate stock to build output" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:259 +#: src/tables/build/BuildOutputTable.tsx:396 msgid "Deallocate" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:260 +#: src/tables/build/BuildOutputTable.tsx:397 msgid "Deallocate stock from build output" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:267 +#: src/tables/build/BuildOutputTable.tsx:408 msgid "Complete build output" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:276 +#: src/tables/build/BuildOutputTable.tsx:424 msgid "Scrap" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:277 +#: src/tables/build/BuildOutputTable.tsx:425 msgid "Scrap build output" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:280 -#~ msgid "Allocated Items" -#~ msgstr "Allocated Items" - -#: src/tables/build/BuildOutputTable.tsx:287 +#: src/tables/build/BuildOutputTable.tsx:435 msgid "Cancel build output" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:325 -msgid "Batch" -msgstr "" - -#: src/tables/build/BuildOutputTable.tsx:340 +#: src/tables/build/BuildOutputTable.tsx:488 msgid "Allocated Lines" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:355 +#: src/tables/build/BuildOutputTable.tsx:503 msgid "Required Tests" msgstr "" -#: src/tables/company/AddressTable.tsx:121 -#: src/tables/company/AddressTable.tsx:185 +#: src/tables/company/AddressTable.tsx:118 +#: src/tables/company/AddressTable.tsx:183 msgid "Add Address" msgstr "" -#: src/tables/company/AddressTable.tsx:126 +#: src/tables/company/AddressTable.tsx:123 msgid "Address created" msgstr "" -#: src/tables/company/AddressTable.tsx:135 +#: src/tables/company/AddressTable.tsx:132 msgid "Edit Address" msgstr "" -#: src/tables/company/AddressTable.tsx:143 +#: src/tables/company/AddressTable.tsx:140 msgid "Delete Address" msgstr "" -#: src/tables/company/AddressTable.tsx:144 +#: src/tables/company/AddressTable.tsx:141 msgid "Are you sure you want to delete this address?" msgstr "" @@ -6130,24 +7269,24 @@ msgstr "" #~ msgid "New Company" #~ msgstr "New Company" -#: src/tables/company/CompanyTable.tsx:74 -#: src/tables/company/CompanyTable.tsx:123 +#: src/tables/company/CompanyTable.tsx:75 +#: src/tables/company/CompanyTable.tsx:125 msgid "Add Company" msgstr "" -#: src/tables/company/CompanyTable.tsx:96 +#: src/tables/company/CompanyTable.tsx:97 msgid "Show active companies" msgstr "" -#: src/tables/company/CompanyTable.tsx:101 +#: src/tables/company/CompanyTable.tsx:102 msgid "Show companies which are suppliers" msgstr "" -#: src/tables/company/CompanyTable.tsx:106 +#: src/tables/company/CompanyTable.tsx:107 msgid "Show companies which are manufacturers" msgstr "" -#: src/tables/company/CompanyTable.tsx:111 +#: src/tables/company/CompanyTable.tsx:112 msgid "Show companies which are customers" msgstr "" @@ -6163,96 +7302,99 @@ msgstr "" msgid "Delete Contact" msgstr "" -#: src/tables/company/ContactTable.tsx:129 +#: src/tables/company/ContactTable.tsx:130 msgid "Add contact" msgstr "" -#: src/tables/general/AttachmentTable.tsx:130 +#: src/tables/general/AttachmentTable.tsx:135 msgid "File uploaded" msgstr "" -#: src/tables/general/AttachmentTable.tsx:131 +#: src/tables/general/AttachmentTable.tsx:136 msgid "File {0} uploaded successfully" msgstr "" -#: src/tables/general/AttachmentTable.tsx:142 +#: src/tables/general/AttachmentTable.tsx:147 msgid "Upload Error" msgstr "" -#: src/tables/general/AttachmentTable.tsx:143 +#: src/tables/general/AttachmentTable.tsx:148 msgid "File could not be uploaded" msgstr "" -#: src/tables/general/AttachmentTable.tsx:191 +#: src/tables/general/AttachmentTable.tsx:196 msgid "Upload Attachment" msgstr "" -#: src/tables/general/AttachmentTable.tsx:201 +#: src/tables/general/AttachmentTable.tsx:206 msgid "Edit Attachment" msgstr "" -#: src/tables/general/AttachmentTable.tsx:215 +#: src/tables/general/AttachmentTable.tsx:220 msgid "Delete Attachment" msgstr "" -#: src/tables/general/AttachmentTable.tsx:225 +#: src/tables/general/AttachmentTable.tsx:230 msgid "Is Link" msgstr "" -#: src/tables/general/AttachmentTable.tsx:226 +#: src/tables/general/AttachmentTable.tsx:231 msgid "Show link attachments" msgstr "" -#: src/tables/general/AttachmentTable.tsx:230 +#: src/tables/general/AttachmentTable.tsx:235 msgid "Is File" msgstr "" -#: src/tables/general/AttachmentTable.tsx:231 +#: src/tables/general/AttachmentTable.tsx:236 msgid "Show file attachments" msgstr "" -#: src/tables/general/AttachmentTable.tsx:240 +#: src/tables/general/AttachmentTable.tsx:245 msgid "Add attachment" msgstr "" -#: src/tables/general/AttachmentTable.tsx:251 -msgid "Add external link" -msgstr "" - #: src/tables/general/AttachmentTable.tsx:254 #~ msgid "Upload attachment" #~ msgstr "Upload attachment" -#: src/tables/general/AttachmentTable.tsx:299 +#: src/tables/general/AttachmentTable.tsx:256 +msgid "Add external link" +msgstr "" + +#: src/tables/general/AttachmentTable.tsx:304 msgid "No attachments found" msgstr "" -#: src/tables/general/AttachmentTable.tsx:337 +#: src/tables/general/AttachmentTable.tsx:343 msgid "Drag attachment file here to upload" msgstr "" #: src/tables/general/ExtraLineItemTable.tsx:86 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:251 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:60 -#: src/tables/sales/SalesOrderLineItemTable.tsx:196 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:263 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:362 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:72 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:168 +#: src/tables/sales/SalesOrderLineItemTable.tsx:206 +#: src/tables/sales/SalesOrderLineItemTable.tsx:291 msgid "Add Line Item" msgstr "" #: src/tables/general/ExtraLineItemTable.tsx:98 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:271 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:72 -#: src/tables/sales/SalesOrderLineItemTable.tsx:214 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:283 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:84 +#: src/tables/sales/SalesOrderLineItemTable.tsx:224 msgid "Edit Line Item" msgstr "" #: src/tables/general/ExtraLineItemTable.tsx:106 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:279 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:80 -#: src/tables/sales/SalesOrderLineItemTable.tsx:222 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:291 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:92 +#: src/tables/sales/SalesOrderLineItemTable.tsx:232 msgid "Delete Line Item" msgstr "" -#: src/tables/general/ExtraLineItemTable.tsx:142 +#: src/tables/general/ExtraLineItemTable.tsx:143 msgid "Add Extra Line Item" msgstr "" @@ -6261,12 +7403,12 @@ msgid "Machine restarted" msgstr "" #: src/tables/machine/MachineListTable.tsx:212 -#: src/tables/machine/MachineListTable.tsx:263 +#: src/tables/machine/MachineListTable.tsx:261 msgid "Edit machine" msgstr "" #: src/tables/machine/MachineListTable.tsx:226 -#: src/tables/machine/MachineListTable.tsx:267 +#: src/tables/machine/MachineListTable.tsx:265 msgid "Delete machine" msgstr "" @@ -6278,51 +7420,50 @@ msgstr "" msgid "Are you sure you want to remove the machine \"{0}\"?" msgstr "" -#: src/tables/machine/MachineListTable.tsx:255 -#: src/tables/machine/MachineListTable.tsx:432 +#: src/tables/machine/MachineListTable.tsx:254 +#: src/tables/machine/MachineListTable.tsx:442 msgid "Restart required" msgstr "" -#: src/tables/machine/MachineListTable.tsx:259 +#: src/tables/machine/MachineListTable.tsx:258 msgid "Machine Actions" msgstr "" -#: src/tables/machine/MachineListTable.tsx:272 +#: src/tables/machine/MachineListTable.tsx:270 msgid "Restart" msgstr "" -#: src/tables/machine/MachineListTable.tsx:274 +#: src/tables/machine/MachineListTable.tsx:272 msgid "Restart machine" msgstr "" -#: src/tables/machine/MachineListTable.tsx:276 +#: src/tables/machine/MachineListTable.tsx:274 msgid "manual restart required" msgstr "" +#: src/tables/machine/MachineListTable.tsx:291 +#~ msgid "Machine information" +#~ msgstr "Machine information" + #: src/tables/machine/MachineListTable.tsx:292 -msgid "Machine information" +msgid "Machine Information" msgstr "" -#: src/tables/machine/MachineListTable.tsx:303 -#: src/tables/machine/MachineListTable.tsx:599 +#: src/tables/machine/MachineListTable.tsx:302 +#: src/tables/machine/MachineListTable.tsx:610 msgid "Machine Type" msgstr "" -#: src/tables/machine/MachineListTable.tsx:316 +#: src/tables/machine/MachineListTable.tsx:315 msgid "Machine Driver" msgstr "" -#: src/tables/machine/MachineListTable.tsx:329 +#: src/tables/machine/MachineListTable.tsx:330 msgid "Initialized" msgstr "" -#: src/tables/machine/MachineListTable.tsx:350 -#: src/tables/machine/MachineTypeTable.tsx:261 -msgid "Errors" -msgstr "" - -#: src/tables/machine/MachineListTable.tsx:358 -#: src/tables/machine/MachineTypeTable.tsx:269 +#: src/tables/machine/MachineListTable.tsx:359 +#: src/tables/machine/MachineTypeTable.tsx:290 msgid "No errors reported" msgstr "" @@ -6330,7 +7471,7 @@ msgstr "" msgid "Machine Settings" msgstr "" -#: src/tables/machine/MachineListTable.tsx:389 +#: src/tables/machine/MachineListTable.tsx:394 msgid "Driver Settings" msgstr "" @@ -6338,86 +7479,109 @@ msgstr "" #~ msgid "Create machine" #~ msgstr "Create machine" -#: src/tables/machine/MachineListTable.tsx:506 +#: src/tables/machine/MachineListTable.tsx:516 +#: src/tables/machine/MachineListTable.tsx:558 msgid "Add machine" msgstr "" #: src/tables/machine/MachineListTable.tsx:561 -msgid "Machine detail" +#~ msgid "Machine detail" +#~ msgstr "Machine detail" + +#: src/tables/machine/MachineListTable.tsx:572 +msgid "Machine Detail" msgstr "" -#: src/tables/machine/MachineListTable.tsx:608 +#: src/tables/machine/MachineListTable.tsx:619 msgid "Driver" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:73 +#: src/tables/machine/MachineTypeTable.tsx:78 msgid "Builtin driver" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:89 +#: src/tables/machine/MachineTypeTable.tsx:96 +msgid "Not Found" +msgstr "" + +#: src/tables/machine/MachineTypeTable.tsx:99 msgid "Machine type not found." msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:97 -msgid "Machine type information" +#: src/tables/machine/MachineTypeTable.tsx:99 +#~ msgid "Machine type information" +#~ msgstr "Machine type information" + +#: src/tables/machine/MachineTypeTable.tsx:109 +msgid "Machine Type Information" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:110 -#: src/tables/machine/MachineTypeTable.tsx:217 +#: src/tables/machine/MachineTypeTable.tsx:124 +#: src/tables/machine/MachineTypeTable.tsx:238 msgid "Slug" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:118 -#: src/tables/machine/MachineTypeTable.tsx:238 +#: src/tables/machine/MachineTypeTable.tsx:135 +#: src/tables/machine/MachineTypeTable.tsx:259 msgid "Provider plugin" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:130 -#: src/tables/machine/MachineTypeTable.tsx:250 +#: src/tables/machine/MachineTypeTable.tsx:147 +#: src/tables/machine/MachineTypeTable.tsx:271 msgid "Provider file" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:135 -#: src/tables/machine/MachineTypeTable.tsx:255 -#: src/tables/plugin/PluginListTable.tsx:180 -#: src/tables/plugin/PluginListTable.tsx:568 -msgid "Builtin" +#: src/tables/machine/MachineTypeTable.tsx:148 +#~ msgid "Available drivers" +#~ msgstr "Available drivers" + +#: src/tables/machine/MachineTypeTable.tsx:162 +msgid "Available Drivers" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:146 -msgid "Available drivers" -msgstr "" - -#: src/tables/machine/MachineTypeTable.tsx:196 +#: src/tables/machine/MachineTypeTable.tsx:217 msgid "Machine driver not found." msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:204 +#: src/tables/machine/MachineTypeTable.tsx:225 msgid "Machine driver information" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:224 +#: src/tables/machine/MachineTypeTable.tsx:245 msgid "Machine type" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:327 +#: src/tables/machine/MachineTypeTable.tsx:338 +#~ msgid "Machine type detail" +#~ msgstr "Machine type detail" + +#: src/tables/machine/MachineTypeTable.tsx:348 msgid "Builtin type" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:336 -msgid "Machine type detail" +#: src/tables/machine/MachineTypeTable.tsx:348 +#~ msgid "Machine driver detail" +#~ msgstr "Machine driver detail" + +#: src/tables/machine/MachineTypeTable.tsx:357 +msgid "Machine Type Detail" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:346 -msgid "Machine driver detail" +#: src/tables/machine/MachineTypeTable.tsx:367 +msgid "Machine Driver Detail" msgstr "" #: src/tables/notifications/NotificationsTable.tsx:26 msgid "Age" msgstr "" +#: src/tables/notifications/NotificationsTable.tsx:36 +msgid "Notification" +msgstr "" + #: src/tables/notifications/NotificationsTable.tsx:40 #: src/tables/plugin/PluginErrorTable.tsx:37 +#: src/tables/settings/ErrorTable.tsx:50 msgid "Message" msgstr "" @@ -6451,33 +7615,32 @@ msgstr "" msgid "Show assembly parts" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:68 +#: src/tables/part/PartCategoryTable.tsx:48 +msgid "You are subscribed to notifications for this category" +msgstr "" + +#: src/tables/part/PartCategoryTable.tsx:80 #: src/tables/part/PartTable.tsx:196 msgid "Include Subcategories" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:69 +#: src/tables/part/PartCategoryTable.tsx:81 msgid "Include subcategories in results" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:74 +#: src/tables/part/PartCategoryTable.tsx:86 msgid "Show structural categories" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:78 -#: src/tables/part/PartTable.tsx:294 -msgid "Subscribed" -msgstr "" - -#: src/tables/part/PartCategoryTable.tsx:79 +#: src/tables/part/PartCategoryTable.tsx:91 msgid "Show categories to which the user is subscribed" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:86 +#: src/tables/part/PartCategoryTable.tsx:100 msgid "New Part Category" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:112 +#: src/tables/part/PartCategoryTable.tsx:129 msgid "Add Part Category" msgstr "" @@ -6523,11 +7686,6 @@ msgstr "" msgid "Part parameters cannot be edited, as the part is locked" msgstr "" -#: src/tables/part/PartParameterTable.tsx:212 -#: src/tables/stock/StockItemTable.tsx:335 -msgid "Include Variants" -msgstr "" - #: src/tables/part/PartParameterTemplateTable.tsx:31 msgid "Checkbox" msgstr "" @@ -6554,6 +7712,7 @@ msgid "Show templates with units" msgstr "" #: src/tables/part/PartParameterTemplateTable.tsx:85 +#: src/tables/part/PartParameterTemplateTable.tsx:141 msgid "Add Parameter Template" msgstr "" @@ -6566,23 +7725,19 @@ msgid "Delete Parameter Template" msgstr "" #: src/tables/part/PartParameterTemplateTable.tsx:141 -msgid "Add parameter template" -msgstr "" +#~ msgid "Add parameter template" +#~ msgstr "Add parameter template" -#: src/tables/part/PartPurchaseOrdersTable.tsx:77 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:162 +#: src/tables/part/PartPurchaseOrdersTable.tsx:78 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:168 msgid "Total Quantity" msgstr "" -#: src/tables/part/PartPurchaseOrdersTable.tsx:115 -msgid "Pending" -msgstr "" - -#: src/tables/part/PartPurchaseOrdersTable.tsx:116 +#: src/tables/part/PartPurchaseOrdersTable.tsx:122 msgid "Show pending orders" msgstr "" -#: src/tables/part/PartPurchaseOrdersTable.tsx:121 +#: src/tables/part/PartPurchaseOrdersTable.tsx:127 msgid "Show received items" msgstr "" @@ -6728,22 +7883,13 @@ msgstr "" msgid "Results" msgstr "" -#: src/tables/part/PartTestTemplateTable.tsx:76 -msgid "No Results" -msgstr "" - -#: src/tables/part/PartTestTemplateTable.tsx:106 -#: src/tables/stock/StockItemTestResultTable.tsx:365 -msgid "Required" -msgstr "" - #: src/tables/part/PartTestTemplateTable.tsx:107 msgid "Show required tests" msgstr "" #: src/tables/part/PartTestTemplateTable.tsx:111 -#: src/tables/settings/TemplateTable.tsx:167 -#: src/tables/settings/TemplateTable.tsx:283 +#: src/tables/settings/TemplateTable.tsx:247 +#: src/tables/settings/TemplateTable.tsx:363 msgid "Enabled" msgstr "" @@ -6784,7 +7930,7 @@ msgid "Show tests which have recorded results" msgstr "" #: src/tables/part/PartTestTemplateTable.tsx:154 -#: src/tables/part/PartTestTemplateTable.tsx:237 +#: src/tables/part/PartTestTemplateTable.tsx:238 msgid "Add Test Template" msgstr "" @@ -6808,7 +7954,7 @@ msgstr "" msgid "View Parent Part" msgstr "" -#: src/tables/part/PartTestTemplateTable.tsx:257 +#: src/tables/part/PartTestTemplateTable.tsx:258 msgid "Part templates cannot be edited, as the part is locked" msgstr "" @@ -6836,28 +7982,49 @@ msgstr "" msgid "Show trackable variants" msgstr "" -#: src/tables/part/RelatedPartTable.tsx:84 +#: src/tables/part/RelatedPartTable.tsx:86 +#: src/tables/part/RelatedPartTable.tsx:109 msgid "Add Related Part" msgstr "" -#: src/tables/part/RelatedPartTable.tsx:99 +#: src/tables/part/RelatedPartTable.tsx:101 msgid "Delete Related Part" msgstr "" -#: src/tables/part/RelatedPartTable.tsx:106 -msgid "Add related part" -msgstr "" +#: src/tables/part/RelatedPartTable.tsx:109 +#~ msgid "Add related part" +#~ msgstr "Add related part" #: src/tables/plugin/PluginErrorTable.tsx:29 msgid "Stage" msgstr "" -#: src/tables/plugin/PluginListTable.tsx:95 -msgid "Plugin with key {pluginKey} not found" +#: src/tables/plugin/PluginListTable.tsx:42 +msgid "Plugin is active" msgstr "" +#: src/tables/plugin/PluginListTable.tsx:48 +msgid "Plugin is inactive" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:55 +msgid "Plugin is not installed" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:76 +msgid "Plugin" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:95 +#~ msgid "Plugin with key {pluginKey} not found" +#~ msgstr "Plugin with key {pluginKey} not found" + #: src/tables/plugin/PluginListTable.tsx:97 -msgid "An error occurred while fetching plugin details" +#~ msgid "An error occurred while fetching plugin details" +#~ msgstr "An error occurred while fetching plugin details" + +#: src/tables/plugin/PluginListTable.tsx:109 +msgid "Description not available" msgstr "" #: src/tables/plugin/PluginListTable.tsx:113 @@ -6865,12 +8032,8 @@ msgstr "" #~ msgstr "Plugin with id {id} not found" #: src/tables/plugin/PluginListTable.tsx:122 -msgid "Plugin information" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:134 -msgid "Author" -msgstr "" +#~ msgid "Plugin information" +#~ msgstr "Plugin information" #: src/tables/plugin/PluginListTable.tsx:134 #~ msgid "Plugin Actions" @@ -6881,79 +8044,124 @@ msgstr "" #~ msgid "Edit plugin" #~ msgstr "Edit plugin" +#: src/tables/plugin/PluginListTable.tsx:144 +msgid "Confirm plugin activation" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:145 +msgid "Confirm plugin deactivation" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:150 +msgid "The selected plugin will be activated" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:151 +msgid "The selected plugin will be deactivated" +msgstr "" + #: src/tables/plugin/PluginListTable.tsx:152 #: src/tables/plugin/PluginListTable.tsx:153 #~ msgid "Reload" #~ msgstr "Reload" -#: src/tables/plugin/PluginListTable.tsx:154 -msgid "Plugin is not active" -msgstr "" - #: src/tables/plugin/PluginListTable.tsx:163 -msgid "Package information" -msgstr "" +#~ msgid "Package information" +#~ msgstr "Package information" #: src/tables/plugin/PluginListTable.tsx:169 -msgid "Package Name" +msgid "Deactivate" msgstr "" -#: src/tables/plugin/PluginListTable.tsx:175 -msgid "Installation Path" +#: src/tables/plugin/PluginListTable.tsx:183 +msgid "Activate" msgstr "" -#: src/tables/plugin/PluginListTable.tsx:185 -msgid "Package" +#: src/tables/plugin/PluginListTable.tsx:184 +msgid "Activate selected plugin" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:196 +msgid "Update selected plugin" msgstr "" #: src/tables/plugin/PluginListTable.tsx:197 -msgid "Plugin settings" -msgstr "" +#~ msgid "Plugin settings" +#~ msgstr "Plugin settings" #: src/tables/plugin/PluginListTable.tsx:214 -msgid "Plugin is active" +#: src/tables/stock/InstalledItemsTable.tsx:107 +msgid "Uninstall" msgstr "" -#: src/tables/plugin/PluginListTable.tsx:220 -msgid "Plugin is inactive" +#: src/tables/plugin/PluginListTable.tsx:215 +msgid "Uninstall selected plugin" msgstr "" -#: src/tables/plugin/PluginListTable.tsx:227 -msgid "Plugin is not installed" +#: src/tables/plugin/PluginListTable.tsx:233 +msgid "Delete selected plugin configuration" msgstr "" -#: src/tables/plugin/PluginListTable.tsx:253 -msgid "Plugin" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:287 -msgid "Description not available" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:319 -msgid "Confirm plugin activation" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:320 -msgid "Confirm plugin deactivation" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:325 -msgid "The selected plugin will be activated" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:326 -msgid "The selected plugin will be deactivated" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:334 +#: src/tables/plugin/PluginListTable.tsx:249 msgid "Activate Plugin" msgstr "" +#: src/tables/plugin/PluginListTable.tsx:270 +msgid "Install plugin" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:283 +msgid "Install" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:284 +msgid "Plugin installed successfully" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:289 +msgid "Uninstall Plugin" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:301 +msgid "Confirm plugin uninstall" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:304 +msgid "The selected plugin will be uninstalled." +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:308 +#~ msgid "This action cannot be undone." +#~ msgstr "This action cannot be undone." + +#: src/tables/plugin/PluginListTable.tsx:309 +msgid "Plugin uninstalled successfully" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:317 +msgid "Delete Plugin" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:318 +msgid "Deleting this plugin configuration will remove all associated settings and data. Are you sure you want to delete this plugin?" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:331 +msgid "Plugins reloaded" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:332 +msgid "Plugins were reloaded successfully" +msgstr "" + #: src/tables/plugin/PluginListTable.tsx:338 #~ msgid "Deactivate Plugin" #~ msgstr "Deactivate Plugin" +#: src/tables/plugin/PluginListTable.tsx:350 +msgid "Reload Plugins" +msgstr "" + #: src/tables/plugin/PluginListTable.tsx:354 #~ msgid "The following plugin will be activated" #~ msgstr "The following plugin will be activated" @@ -6962,16 +8170,16 @@ msgstr "" #~ msgid "The following plugin will be deactivated" #~ msgstr "The following plugin will be deactivated" -#: src/tables/plugin/PluginListTable.tsx:362 -msgid "Deactivate" +#: src/tables/plugin/PluginListTable.tsx:357 +msgid "Install Plugin" msgstr "" #: src/tables/plugin/PluginListTable.tsx:366 #~ msgid "Confirm" #~ msgstr "Confirm" -#: src/tables/plugin/PluginListTable.tsx:373 -msgid "Activate" +#: src/tables/plugin/PluginListTable.tsx:374 +msgid "Plugin Detail" msgstr "" #: src/tables/plugin/PluginListTable.tsx:376 @@ -6998,76 +8206,12 @@ msgstr "" #~ msgid "Error updating plugin" #~ msgstr "Error updating plugin" -#: src/tables/plugin/PluginListTable.tsx:406 -msgid "Uninstall" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:438 -msgid "Install plugin" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:451 -msgid "Install" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:452 -msgid "Plugin installed successfully" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:457 -msgid "Uninstall Plugin" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:469 -msgid "Confirm plugin uninstall" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:472 -msgid "The selected plugin will be uninstalled." -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:473 -msgid "This action cannot be undone." -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:477 -msgid "Plugin uninstalled successfully" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:484 -msgid "Delete Plugin" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:485 -msgid "Deleting this plugin configuration will remove all associated settings and data. Are you sure you want to delete this plugin?" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:498 -msgid "Plugins reloaded" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:499 -msgid "Plugins were reloaded successfully" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:515 -msgid "Reload Plugins" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:524 -msgid "Install Plugin" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:544 -msgid "Plugin Detail" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:573 +#: src/tables/plugin/PluginListTable.tsx:411 msgid "Sample" msgstr "" -#: src/tables/plugin/PluginListTable.tsx:578 -#: src/tables/stock/StockItemTable.tsx:340 +#: src/tables/plugin/PluginListTable.tsx:416 +#: src/tables/stock/StockItemTable.tsx:344 msgid "Installed" msgstr "" @@ -7116,82 +8260,78 @@ msgstr "" #~ msgid "Are you sure you want to remove this manufacturer part?" #~ msgstr "Are you sure you want to remove this manufacturer part?" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:102 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:339 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:103 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:356 msgid "Import Line Items" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:135 -msgid "Part Description" -msgstr "" - -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:201 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:207 msgid "Supplier Code" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:208 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:214 msgid "Supplier Link" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:215 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:220 msgid "Manufacturer Code" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:229 -msgid "Destination" +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:248 +msgid "Show line items which have been received" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:300 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:316 msgid "Receive line item" msgstr "" #: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:344 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:142 -#: src/tables/sales/SalesOrderLineItemTable.tsx:240 -msgid "Add line item" -msgstr "" +#: src/tables/sales/ReturnOrderLineItemTable.tsx:160 +#: src/tables/sales/SalesOrderLineItemTable.tsx:258 +#~ msgid "Add line item" +#~ msgstr "Add line item" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:354 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:373 msgid "Receive items" msgstr "" -#: src/tables/purchasing/SupplierPartTable.tsx:93 +#: src/tables/purchasing/SupplierPartTable.tsx:95 msgid "MPN" msgstr "" -#: src/tables/purchasing/SupplierPartTable.tsx:122 +#: src/tables/purchasing/SupplierPartTable.tsx:124 msgid "Base units" msgstr "" -#: src/tables/purchasing/SupplierPartTable.tsx:170 +#: src/tables/purchasing/SupplierPartTable.tsx:172 msgid "Supplier part created" msgstr "" -#: src/tables/purchasing/SupplierPartTable.tsx:176 +#: src/tables/purchasing/SupplierPartTable.tsx:179 msgid "Add supplier part" msgstr "" -#: src/tables/purchasing/SupplierPartTable.tsx:188 +#: src/tables/purchasing/SupplierPartTable.tsx:191 msgid "Show active supplier parts" msgstr "" -#: src/tables/purchasing/SupplierPartTable.tsx:192 -msgid "Active Part" -msgstr "" - -#: src/tables/purchasing/SupplierPartTable.tsx:193 -msgid "Show active internal parts" -msgstr "" - #: src/tables/purchasing/SupplierPartTable.tsx:193 #~ msgid "Supplier part updated" #~ msgstr "Supplier part updated" -#: src/tables/purchasing/SupplierPartTable.tsx:197 +#: src/tables/purchasing/SupplierPartTable.tsx:195 +msgid "Active Part" +msgstr "" + +#: src/tables/purchasing/SupplierPartTable.tsx:196 +msgid "Show active internal parts" +msgstr "" + +#: src/tables/purchasing/SupplierPartTable.tsx:200 msgid "Active Supplier" msgstr "" -#: src/tables/purchasing/SupplierPartTable.tsx:198 +#: src/tables/purchasing/SupplierPartTable.tsx:201 msgid "Show active suppliers" msgstr "" @@ -7203,99 +8343,187 @@ msgstr "" #~ msgid "Are you sure you want to remove this supplier part?" #~ msgstr "Are you sure you want to remove this supplier part?" -#: src/tables/sales/ReturnOrderLineItemTable.tsx:114 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:139 msgid "Received Date" msgstr "" -#: src/tables/sales/ReturnOrderLineItemTable.tsx:128 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:153 msgid "Show items which have been received" msgstr "" -#: src/tables/sales/ReturnOrderLineItemTable.tsx:133 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:158 msgid "Filter by line item status" msgstr "" -#: src/tables/sales/ReturnOrderLineItemTable.tsx:158 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:176 +msgid "Receive selected items" +msgstr "" + +#: src/tables/sales/ReturnOrderLineItemTable.tsx:205 msgid "Receive Item" msgstr "" -#: src/tables/sales/SalesOrderLineItemTable.tsx:262 -msgid "Allocate stock" +#: src/tables/sales/SalesOrderAllocationTable.tsx:60 +msgid "Show outstanding allocations" msgstr "" -#: src/tables/sales/SalesOrderLineItemTable.tsx:272 +#: src/tables/sales/SalesOrderAllocationTable.tsx:168 +#: src/tables/sales/SalesOrderAllocationTable.tsx:190 +msgid "Edit Allocation" +msgstr "" + +#: src/tables/sales/SalesOrderAllocationTable.tsx:175 +#: src/tables/sales/SalesOrderAllocationTable.tsx:197 +msgid "Delete Allocation" +msgstr "" + +#: src/tables/sales/SalesOrderLineItemTable.tsx:244 +msgid "Allocate Serial Numbers" +msgstr "" + +#: src/tables/sales/SalesOrderLineItemTable.tsx:277 +msgid "Show lines which are fully allocated" +msgstr "" + +#: src/tables/sales/SalesOrderLineItemTable.tsx:280 +#~ msgid "Allocate stock" +#~ msgstr "Allocate stock" + +#: src/tables/sales/SalesOrderLineItemTable.tsx:282 +msgid "Show lines which are completed" +msgstr "" + +#: src/tables/sales/SalesOrderLineItemTable.tsx:291 +#~ msgid "Allocate Serials" +#~ msgstr "Allocate Serials" + +#: src/tables/sales/SalesOrderLineItemTable.tsx:340 +msgid "Allocate serials" +msgstr "" + +#: src/tables/sales/SalesOrderLineItemTable.tsx:356 msgid "Build stock" msgstr "" -#: src/tables/sales/SalesOrderLineItemTable.tsx:289 -#: src/tables/stock/StockItemTable.tsx:507 +#: src/tables/sales/SalesOrderLineItemTable.tsx:373 +#: src/tables/stock/StockItemTable.tsx:512 msgid "Order stock" msgstr "" -#: src/tables/sales/SalesOrderShipmentTable.tsx:40 +#: src/tables/sales/SalesOrderShipmentTable.tsx:51 +#~ msgid "Delete Shipment" +#~ msgstr "Delete Shipment" + +#: src/tables/sales/SalesOrderShipmentTable.tsx:57 msgid "Create Shipment" msgstr "" -#: src/tables/sales/SalesOrderShipmentTable.tsx:50 -msgid "Delete Shipment" -msgstr "" - -#: src/tables/sales/SalesOrderShipmentTable.tsx:58 -msgid "Edit Shipment" -msgstr "" - -#: src/tables/sales/SalesOrderShipmentTable.tsx:66 -msgid "Shipment Reference" -msgstr "" - -#: src/tables/sales/SalesOrderShipmentTable.tsx:71 +#: src/tables/sales/SalesOrderShipmentTable.tsx:104 msgid "Items" msgstr "" -#: src/tables/sales/SalesOrderShipmentTable.tsx:83 -msgid "Delivery Date" +#: src/tables/sales/SalesOrderShipmentTable.tsx:139 +msgid "View Shipment" msgstr "" -#: src/tables/sales/SalesOrderShipmentTable.tsx:107 -msgid "Complete Shipment" +#: src/tables/sales/SalesOrderShipmentTable.tsx:161 +msgid "Edit shipment" msgstr "" -#: src/tables/sales/SalesOrderShipmentTable.tsx:133 +#: src/tables/sales/SalesOrderShipmentTable.tsx:169 +msgid "Cancel shipment" +msgstr "" + +#: src/tables/sales/SalesOrderShipmentTable.tsx:184 msgid "Add shipment" msgstr "" -#: src/tables/sales/SalesOrderShipmentTable.tsx:146 -msgid "Shipped" -msgstr "" - -#: src/tables/sales/SalesOrderShipmentTable.tsx:147 +#: src/tables/sales/SalesOrderShipmentTable.tsx:198 msgid "Show shipments which have been shipped" msgstr "" -#: src/tables/sales/SalesOrderShipmentTable.tsx:151 -msgid "Delivered" -msgstr "" - -#: src/tables/sales/SalesOrderShipmentTable.tsx:152 +#: src/tables/sales/SalesOrderShipmentTable.tsx:203 msgid "Show shipments which have been delivered" msgstr "" -#: src/tables/settings/CurrencyTable.tsx:28 -msgid "Rate" +#: src/tables/settings/BarcodeScanHistoryTable.tsx:61 +msgid "Barcode Information" msgstr "" -#: src/tables/settings/CurrencyTable.tsx:40 -msgid "Exchange rates updated" +#: src/tables/settings/BarcodeScanHistoryTable.tsx:76 +#: src/tables/settings/ErrorTable.tsx:59 +msgid "Timestamp" msgstr "" -#: src/tables/settings/CurrencyTable.tsx:46 -msgid "Exchange rate update error" +#: src/tables/settings/BarcodeScanHistoryTable.tsx:86 +msgid "Endpoint" msgstr "" -#: src/tables/settings/CurrencyTable.tsx:57 -msgid "Refresh currency exchange rates" +#: src/tables/settings/BarcodeScanHistoryTable.tsx:90 +#: src/tables/settings/BarcodeScanHistoryTable.tsx:217 +#: src/tables/stock/StockItemTestResultTable.tsx:174 +msgid "Result" msgstr "" +#: src/tables/settings/BarcodeScanHistoryTable.tsx:98 +msgid "Context" +msgstr "" + +#: src/tables/settings/BarcodeScanHistoryTable.tsx:119 +msgid "Response" +msgstr "" + +#: src/tables/settings/BarcodeScanHistoryTable.tsx:213 +#: src/tables/settings/ImportSessionTable.tsx:121 +#: src/tables/stock/StockTrackingTable.tsx:183 +msgid "Filter by user" +msgstr "" + +#: src/tables/settings/BarcodeScanHistoryTable.tsx:218 +msgid "Filter by result" +msgstr "" + +#: src/tables/settings/BarcodeScanHistoryTable.tsx:232 +msgid "Delete Barcode Scan Record" +msgstr "" + +#: src/tables/settings/BarcodeScanHistoryTable.tsx:258 +msgid "Barcode Scan Details" +msgstr "" + +#: src/tables/settings/BarcodeScanHistoryTable.tsx:268 +msgid "Logging Disabled" +msgstr "" + +#: src/tables/settings/BarcodeScanHistoryTable.tsx:270 +msgid "Barcode logging is not enabled" +msgstr "" + +#: src/tables/settings/CustomStateTable.tsx:36 +msgid "Display Name" +msgstr "" + +#: src/tables/settings/CustomStateTable.tsx:52 +msgid "Model" +msgstr "" + +#: src/tables/settings/CustomStateTable.tsx:65 +#: src/tables/settings/CustomStateTable.tsx:115 +msgid "Add State" +msgstr "" + +#: src/tables/settings/CustomStateTable.tsx:77 +msgid "Edit State" +msgstr "" + +#: src/tables/settings/CustomStateTable.tsx:85 +msgid "Delete State" +msgstr "" + +#: src/tables/settings/CustomStateTable.tsx:115 +#~ msgid "Add state" +#~ msgstr "Add state" + #: src/tables/settings/CustomUnitsTable.tsx:50 msgid "Add Custom Unit" msgstr "" @@ -7312,59 +8540,71 @@ msgstr "" msgid "Add custom unit" msgstr "" -#: src/tables/settings/ErrorTable.tsx:31 -msgid "When" -msgstr "" - -#: src/tables/settings/ErrorTable.tsx:41 -msgid "Error Information" -msgstr "" - #: src/tables/settings/ErrorTable.tsx:51 #~ msgid "Delete error report" #~ msgstr "Delete error report" -#: src/tables/settings/ErrorTable.tsx:53 +#: src/tables/settings/ErrorTable.tsx:67 +msgid "Traceback" +msgstr "" + +#: src/tables/settings/ErrorTable.tsx:103 +msgid "When" +msgstr "" + +#: src/tables/settings/ErrorTable.tsx:113 +msgid "Error Information" +msgstr "" + +#: src/tables/settings/ErrorTable.tsx:123 msgid "Delete Error Report" msgstr "" -#: src/tables/settings/ErrorTable.tsx:55 +#: src/tables/settings/ErrorTable.tsx:125 msgid "Are you sure you want to delete this error report?" msgstr "" -#: src/tables/settings/ErrorTable.tsx:57 +#: src/tables/settings/ErrorTable.tsx:127 msgid "Error report deleted" msgstr "" -#: src/tables/settings/ErrorTable.tsx:79 -#: src/tables/settings/FailedTasksTable.tsx:59 +#: src/tables/settings/ErrorTable.tsx:146 +#: src/tables/settings/FailedTasksTable.tsx:65 msgid "Error Details" msgstr "" -#: src/tables/settings/FailedTasksTable.tsx:26 -#: src/tables/settings/PendingTasksTable.tsx:19 +#: src/tables/settings/FailedTasksTable.tsx:32 +#: src/tables/settings/PendingTasksTable.tsx:23 #: src/tables/settings/ScheduledTasksTable.tsx:19 msgid "Task" msgstr "" -#: src/tables/settings/FailedTasksTable.tsx:32 -#: src/tables/settings/PendingTasksTable.tsx:24 +#: src/tables/settings/FailedTasksTable.tsx:38 +#: src/tables/settings/PendingTasksTable.tsx:28 msgid "Task ID" msgstr "" -#: src/tables/settings/FailedTasksTable.tsx:36 -#: src/tables/stock/StockItemTestResultTable.tsx:211 +#: src/tables/settings/FailedTasksTable.tsx:42 +#: src/tables/stock/StockItemTestResultTable.tsx:218 msgid "Started" msgstr "" -#: src/tables/settings/FailedTasksTable.tsx:42 +#: src/tables/settings/FailedTasksTable.tsx:48 msgid "Stopped" msgstr "" -#: src/tables/settings/FailedTasksTable.tsx:48 +#: src/tables/settings/FailedTasksTable.tsx:54 msgid "Attempts" msgstr "" +#: src/tables/settings/FailedTasksTable.tsx:92 +msgid "No Information" +msgstr "" + +#: src/tables/settings/FailedTasksTable.tsx:93 +msgid "No error details are available for this task" +msgstr "" + #: src/tables/settings/GroupTable.tsx:90 msgid "Group with id {id} not found" msgstr "" @@ -7398,42 +8638,34 @@ msgstr "" msgid "Edit group" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:38 +#: src/tables/settings/ImportSessionTable.tsx:37 msgid "Delete Import Session" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:44 +#: src/tables/settings/ImportSessionTable.tsx:43 #: src/tables/settings/ImportSessionTable.tsx:131 msgid "Create Import Session" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:69 +#: src/tables/settings/ImportSessionTable.tsx:68 msgid "Uploaded" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:79 -msgid "Imported Rows" -msgstr "" - -#: src/tables/settings/ImportSessionTable.tsx:109 -#: src/tables/settings/TemplateTable.tsx:289 +#: src/tables/settings/ImportSessionTable.tsx:108 +#: src/tables/settings/TemplateTable.tsx:369 msgid "Model Type" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:110 -#: src/tables/settings/TemplateTable.tsx:290 +#: src/tables/settings/ImportSessionTable.tsx:109 +#: src/tables/settings/TemplateTable.tsx:370 msgid "Filter by target model type" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:116 +#: src/tables/settings/ImportSessionTable.tsx:115 msgid "Filter by import session status" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:122 -msgid "Filter by user" -msgstr "" - -#: src/tables/settings/PendingTasksTable.tsx:38 +#: src/tables/settings/PendingTasksTable.tsx:42 msgid "Arguments" msgstr "" @@ -7461,12 +8693,16 @@ msgstr "" msgid "Next Run" msgstr "" -#: src/tables/settings/TemplateTable.tsx:85 -msgid "Template not found" +#: src/tables/settings/StocktakeReportTable.tsx:28 +msgid "Report" msgstr "" -#: src/tables/settings/TemplateTable.tsx:87 -msgid "An error occurred while fetching template details" +#: src/tables/settings/StocktakeReportTable.tsx:35 +msgid "Part Count" +msgstr "" + +#: src/tables/settings/StocktakeReportTable.tsx:58 +msgid "Delete Report" msgstr "" #: src/tables/settings/TemplateTable.tsx:120 @@ -7481,21 +8717,12 @@ msgstr "" #~ msgid "actions" #~ msgstr "actions" -#: src/tables/settings/TemplateTable.tsx:177 -msgid "Modify" +#: src/tables/settings/TemplateTable.tsx:162 +msgid "Template not found" msgstr "" -#: src/tables/settings/TemplateTable.tsx:178 -msgid "Modify template file" -msgstr "" - -#: src/tables/settings/TemplateTable.tsx:234 -#: src/tables/settings/TemplateTable.tsx:302 -msgid "Edit Template" -msgstr "" - -#: src/tables/settings/TemplateTable.tsx:242 -msgid "Delete template" +#: src/tables/settings/TemplateTable.tsx:164 +msgid "An error occurred while fetching template details" msgstr "" #: src/tables/settings/TemplateTable.tsx:243 @@ -7506,103 +8733,137 @@ msgstr "" #~ msgid "Create new" #~ msgstr "Create new" -#: src/tables/settings/TemplateTable.tsx:248 +#: src/tables/settings/TemplateTable.tsx:257 +msgid "Modify" +msgstr "" + +#: src/tables/settings/TemplateTable.tsx:258 +msgid "Modify template file" +msgstr "" + +#: src/tables/settings/TemplateTable.tsx:314 +#: src/tables/settings/TemplateTable.tsx:382 +msgid "Edit Template" +msgstr "" + +#: src/tables/settings/TemplateTable.tsx:322 +msgid "Delete template" +msgstr "" + +#: src/tables/settings/TemplateTable.tsx:328 msgid "Add Template" msgstr "" -#: src/tables/settings/TemplateTable.tsx:261 +#: src/tables/settings/TemplateTable.tsx:341 msgid "Add template" msgstr "" -#: src/tables/settings/TemplateTable.tsx:284 +#: src/tables/settings/TemplateTable.tsx:364 msgid "Filter by enabled status" msgstr "" -#: src/tables/settings/UserTable.tsx:82 +#: src/tables/settings/UserTable.tsx:81 msgid "User with id {id} not found" msgstr "" -#: src/tables/settings/UserTable.tsx:84 +#: src/tables/settings/UserTable.tsx:83 msgid "An error occurred while fetching user details" msgstr "" -#: src/tables/settings/UserTable.tsx:102 +#: src/tables/settings/UserTable.tsx:101 msgid "Is Active" msgstr "" -#: src/tables/settings/UserTable.tsx:103 +#: src/tables/settings/UserTable.tsx:102 msgid "Designates whether this user should be treated as active. Unselect this instead of deleting accounts." msgstr "" -#: src/tables/settings/UserTable.tsx:107 +#: src/tables/settings/UserTable.tsx:106 msgid "Is Staff" msgstr "" -#: src/tables/settings/UserTable.tsx:108 +#: src/tables/settings/UserTable.tsx:107 msgid "Designates whether the user can log into the django admin site." msgstr "" -#: src/tables/settings/UserTable.tsx:112 +#: src/tables/settings/UserTable.tsx:111 msgid "Is Superuser" msgstr "" -#: src/tables/settings/UserTable.tsx:113 +#: src/tables/settings/UserTable.tsx:112 msgid "Designates that this user has all permissions without explicitly assigning them." msgstr "" -#: src/tables/settings/UserTable.tsx:123 +#: src/tables/settings/UserTable.tsx:122 msgid "You cannot edit the rights for the currently logged-in user." msgstr "" -#: src/tables/settings/UserTable.tsx:154 +#: src/tables/settings/UserTable.tsx:153 msgid "No groups" msgstr "" -#: src/tables/settings/UserTable.tsx:245 +#: src/tables/settings/UserTable.tsx:244 msgid "Delete user" msgstr "" -#: src/tables/settings/UserTable.tsx:246 +#: src/tables/settings/UserTable.tsx:245 msgid "User deleted" msgstr "" -#: src/tables/settings/UserTable.tsx:248 +#: src/tables/settings/UserTable.tsx:247 msgid "Are you sure you want to delete this user?" msgstr "" -#: src/tables/settings/UserTable.tsx:254 -#: src/tables/settings/UserTable.tsx:272 +#: src/tables/settings/UserTable.tsx:253 +#: src/tables/settings/UserTable.tsx:271 msgid "Add user" msgstr "" -#: src/tables/settings/UserTable.tsx:262 +#: src/tables/settings/UserTable.tsx:261 msgid "Added user" msgstr "" -#: src/tables/settings/UserTable.tsx:285 +#: src/tables/settings/UserTable.tsx:284 msgid "Show active users" msgstr "" -#: src/tables/settings/UserTable.tsx:289 +#: src/tables/settings/UserTable.tsx:288 msgid "Staff" msgstr "" -#: src/tables/settings/UserTable.tsx:290 +#: src/tables/settings/UserTable.tsx:289 msgid "Show staff users" msgstr "" #: src/tables/settings/UserTable.tsx:294 -msgid "Superuser" -msgstr "" - -#: src/tables/settings/UserTable.tsx:295 msgid "Show superusers" msgstr "" -#: src/tables/settings/UserTable.tsx:305 +#: src/tables/settings/UserTable.tsx:304 msgid "Edit user" msgstr "" +#: src/tables/stock/InstalledItemsTable.tsx:37 +#: src/tables/stock/InstalledItemsTable.tsx:90 +msgid "Install Item" +msgstr "" + +#: src/tables/stock/InstalledItemsTable.tsx:39 +msgid "Item installed" +msgstr "" + +#: src/tables/stock/InstalledItemsTable.tsx:50 +msgid "Uninstall Item" +msgstr "" + +#: src/tables/stock/InstalledItemsTable.tsx:52 +msgid "Item uninstalled" +msgstr "" + +#: src/tables/stock/InstalledItemsTable.tsx:108 +msgid "Uninstall stock item" +msgstr "" + #: src/tables/stock/LocationTypesTable.tsx:39 #: src/tables/stock/LocationTypesTable.tsx:109 msgid "Add Location Type" @@ -7620,276 +8881,272 @@ msgstr "" msgid "Icon" msgstr "" -#: src/tables/stock/StockItemTable.tsx:101 +#: src/tables/stock/StockItemTable.tsx:90 msgid "This stock item is in production" msgstr "" -#: src/tables/stock/StockItemTable.tsx:110 +#: src/tables/stock/StockItemTable.tsx:97 msgid "This stock item has been assigned to a sales order" msgstr "" -#: src/tables/stock/StockItemTable.tsx:119 +#: src/tables/stock/StockItemTable.tsx:104 msgid "This stock item has been assigned to a customer" msgstr "" -#: src/tables/stock/StockItemTable.tsx:128 +#: src/tables/stock/StockItemTable.tsx:111 msgid "This stock item is installed in another stock item" msgstr "" -#: src/tables/stock/StockItemTable.tsx:137 +#: src/tables/stock/StockItemTable.tsx:118 msgid "This stock item has been consumed by a build order" msgstr "" -#: src/tables/stock/StockItemTable.tsx:146 +#: src/tables/stock/StockItemTable.tsx:125 +msgid "This stock item is unavailable" +msgstr "" + +#: src/tables/stock/StockItemTable.tsx:134 msgid "This stock item has expired" msgstr "" -#: src/tables/stock/StockItemTable.tsx:150 +#: src/tables/stock/StockItemTable.tsx:138 msgid "This stock item is stale" msgstr "" -#: src/tables/stock/StockItemTable.tsx:161 +#: src/tables/stock/StockItemTable.tsx:150 msgid "This stock item is fully allocated" msgstr "" -#: src/tables/stock/StockItemTable.tsx:168 +#: src/tables/stock/StockItemTable.tsx:157 msgid "This stock item is partially allocated" msgstr "" -#: src/tables/stock/StockItemTable.tsx:196 +#: src/tables/stock/StockItemTable.tsx:185 msgid "This stock item has been depleted" msgstr "" -#: src/tables/stock/StockItemTable.tsx:232 +#: src/tables/stock/StockItemTable.tsx:280 msgid "Stocktake Date" msgstr "" -#: src/tables/stock/StockItemTable.tsx:236 -msgid "Expiry Date" -msgstr "" - -#: src/tables/stock/StockItemTable.tsx:260 -msgid "Stock Value" -msgstr "" - -#: src/tables/stock/StockItemTable.tsx:290 +#: src/tables/stock/StockItemTable.tsx:294 msgid "Show stock for active parts" msgstr "" -#: src/tables/stock/StockItemTable.tsx:295 +#: src/tables/stock/StockItemTable.tsx:299 msgid "Filter by stock status" msgstr "" #: src/tables/stock/StockItemTable.tsx:301 -msgid "Show stock for assmebled parts" +#~ msgid "Show stock for assmebled parts" +#~ msgstr "Show stock for assmebled parts" + +#: src/tables/stock/StockItemTable.tsx:305 +msgid "Show stock for assembled parts" msgstr "" -#: src/tables/stock/StockItemTable.tsx:306 +#: src/tables/stock/StockItemTable.tsx:310 msgid "Show items which have been allocated" msgstr "" -#: src/tables/stock/StockItemTable.tsx:311 +#: src/tables/stock/StockItemTable.tsx:315 msgid "Show items which are available" msgstr "" -#: src/tables/stock/StockItemTable.tsx:315 +#: src/tables/stock/StockItemTable.tsx:319 #: src/tables/stock/StockLocationTable.tsx:44 msgid "Include Sublocations" msgstr "" -#: src/tables/stock/StockItemTable.tsx:316 +#: src/tables/stock/StockItemTable.tsx:320 msgid "Include stock in sublocations" msgstr "" -#: src/tables/stock/StockItemTable.tsx:320 +#: src/tables/stock/StockItemTable.tsx:324 msgid "Depleted" msgstr "" -#: src/tables/stock/StockItemTable.tsx:321 +#: src/tables/stock/StockItemTable.tsx:325 msgid "Show depleted stock items" msgstr "" -#: src/tables/stock/StockItemTable.tsx:326 +#: src/tables/stock/StockItemTable.tsx:330 msgid "Show items which are in stock" msgstr "" -#: src/tables/stock/StockItemTable.tsx:331 +#: src/tables/stock/StockItemTable.tsx:335 msgid "Show items which are in production" msgstr "" -#: src/tables/stock/StockItemTable.tsx:336 +#: src/tables/stock/StockItemTable.tsx:340 msgid "Include stock items for variant parts" msgstr "" -#: src/tables/stock/StockItemTable.tsx:341 +#: src/tables/stock/StockItemTable.tsx:345 msgid "Show stock items which are installed in other items" msgstr "" -#: src/tables/stock/StockItemTable.tsx:345 +#: src/tables/stock/StockItemTable.tsx:349 msgid "Sent to Customer" msgstr "" -#: src/tables/stock/StockItemTable.tsx:346 +#: src/tables/stock/StockItemTable.tsx:350 msgid "Show items which have been sent to a customer" msgstr "" -#: src/tables/stock/StockItemTable.tsx:350 +#: src/tables/stock/StockItemTable.tsx:354 msgid "Is Serialized" msgstr "" -#: src/tables/stock/StockItemTable.tsx:351 +#: src/tables/stock/StockItemTable.tsx:355 msgid "Show items which have a serial number" msgstr "" -#: src/tables/stock/StockItemTable.tsx:358 +#: src/tables/stock/StockItemTable.tsx:362 msgid "Has Batch Code" msgstr "" -#: src/tables/stock/StockItemTable.tsx:359 +#: src/tables/stock/StockItemTable.tsx:363 msgid "Show items which have a batch code" msgstr "" -#: src/tables/stock/StockItemTable.tsx:365 +#: src/tables/stock/StockItemTable.tsx:369 msgid "Show tracked items" msgstr "" -#: src/tables/stock/StockItemTable.tsx:369 +#: src/tables/stock/StockItemTable.tsx:373 msgid "Has Purchase Price" msgstr "" -#: src/tables/stock/StockItemTable.tsx:370 +#: src/tables/stock/StockItemTable.tsx:374 msgid "Show items which have a purchase price" msgstr "" -#: src/tables/stock/StockItemTable.tsx:378 +#: src/tables/stock/StockItemTable.tsx:382 msgid "External Location" msgstr "" -#: src/tables/stock/StockItemTable.tsx:379 +#: src/tables/stock/StockItemTable.tsx:383 msgid "Show items in an external location" msgstr "" -#: src/tables/stock/StockItemTable.tsx:451 +#: src/tables/stock/StockItemTable.tsx:456 msgid "Add a new stock item" msgstr "" -#: src/tables/stock/StockItemTable.tsx:460 +#: src/tables/stock/StockItemTable.tsx:465 msgid "Remove some quantity from a stock item" msgstr "" -#: src/tables/stock/StockItemTable.tsx:482 +#: src/tables/stock/StockItemTable.tsx:487 msgid "Move Stock items to new locations" msgstr "" -#: src/tables/stock/StockItemTable.tsx:489 +#: src/tables/stock/StockItemTable.tsx:494 msgid "Change stock status" msgstr "" -#: src/tables/stock/StockItemTable.tsx:491 +#: src/tables/stock/StockItemTable.tsx:496 msgid "Change the status of stock items" msgstr "" -#: src/tables/stock/StockItemTable.tsx:498 +#: src/tables/stock/StockItemTable.tsx:503 msgid "Merge stock" msgstr "" -#: src/tables/stock/StockItemTable.tsx:500 +#: src/tables/stock/StockItemTable.tsx:505 msgid "Merge stock items" msgstr "" -#: src/tables/stock/StockItemTable.tsx:509 -#: src/tables/stock/StockItemTable.tsx:516 +#: src/tables/stock/StockItemTable.tsx:514 +#: src/tables/stock/StockItemTable.tsx:521 msgid "Order new stock" msgstr "" -#: src/tables/stock/StockItemTable.tsx:514 +#: src/tables/stock/StockItemTable.tsx:519 msgid "Assign to customer" msgstr "" -#: src/tables/stock/StockItemTable.tsx:523 +#: src/tables/stock/StockItemTable.tsx:528 msgid "Delete stock" msgstr "" -#: src/tables/stock/StockItemTable.tsx:525 -msgid "Delete stock items" -msgstr "" +#: src/tables/stock/StockItemTable.tsx:528 +#~ msgid "Delete stock items" +#~ msgstr "Delete stock items" -#: src/tables/stock/StockItemTestResultTable.tsx:131 +#: src/tables/stock/StockItemTestResultTable.tsx:137 msgid "Test" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:157 +#: src/tables/stock/StockItemTestResultTable.tsx:163 msgid "Test result for installed stock item" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:168 -msgid "Result" -msgstr "" - -#: src/tables/stock/StockItemTestResultTable.tsx:190 +#: src/tables/stock/StockItemTestResultTable.tsx:196 msgid "Attachment" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:206 +#: src/tables/stock/StockItemTestResultTable.tsx:212 msgid "Test station" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:226 +#: src/tables/stock/StockItemTestResultTable.tsx:234 msgid "Finished" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:268 -#: src/tables/stock/StockItemTestResultTable.tsx:339 +#: src/tables/stock/StockItemTestResultTable.tsx:286 +#: src/tables/stock/StockItemTestResultTable.tsx:357 msgid "Edit Test Result" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:270 +#: src/tables/stock/StockItemTestResultTable.tsx:288 msgid "Test result updated" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:276 -#: src/tables/stock/StockItemTestResultTable.tsx:348 +#: src/tables/stock/StockItemTestResultTable.tsx:294 +#: src/tables/stock/StockItemTestResultTable.tsx:366 msgid "Delete Test Result" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:278 +#: src/tables/stock/StockItemTestResultTable.tsx:296 msgid "Test result deleted" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:292 +#: src/tables/stock/StockItemTestResultTable.tsx:310 msgid "Test Passed" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:293 +#: src/tables/stock/StockItemTestResultTable.tsx:311 msgid "Test result has been recorded" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:300 +#: src/tables/stock/StockItemTestResultTable.tsx:318 msgid "Failed to record test result" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:317 +#: src/tables/stock/StockItemTestResultTable.tsx:335 msgid "Pass Test" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:366 +#: src/tables/stock/StockItemTestResultTable.tsx:384 msgid "Show results for required tests" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:370 +#: src/tables/stock/StockItemTestResultTable.tsx:388 msgid "Include Installed" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:371 +#: src/tables/stock/StockItemTestResultTable.tsx:389 msgid "Show results for installed stock items" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:375 -#: src/tables/stock/TestStatisticsTable.tsx:74 +#: src/tables/stock/StockItemTestResultTable.tsx:393 +#: src/tables/stock/TestStatisticsTable.tsx:62 msgid "Passed" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:376 +#: src/tables/stock/StockItemTestResultTable.tsx:394 msgid "Show only passed tests" msgstr "" @@ -7922,28 +9179,32 @@ msgid "Filter by location type" msgstr "" #: src/tables/stock/StockLocationTable.tsx:107 -#: src/tables/stock/StockLocationTable.tsx:133 +#: src/tables/stock/StockLocationTable.tsx:134 msgid "Add Stock Location" msgstr "" -#: src/tables/stock/StockTrackingTable.tsx:64 +#: src/tables/stock/StockTrackingTable.tsx:68 msgid "Added" msgstr "" -#: src/tables/stock/StockTrackingTable.tsx:69 +#: src/tables/stock/StockTrackingTable.tsx:73 msgid "Removed" msgstr "" #: src/tables/stock/StockTrackingTable.tsx:198 +msgid "Details" +msgstr "" + +#: src/tables/stock/StockTrackingTable.tsx:213 msgid "No user information" msgstr "" -#: src/tables/stock/TestStatisticsTable.tsx:46 -#: src/tables/stock/TestStatisticsTable.tsx:76 +#: src/tables/stock/TestStatisticsTable.tsx:34 +#: src/tables/stock/TestStatisticsTable.tsx:64 msgid "Total" msgstr "" -#: src/tables/stock/TestStatisticsTable.tsx:75 +#: src/tables/stock/TestStatisticsTable.tsx:63 msgid "Failed" msgstr "" diff --git a/src/frontend/src/locales/ru/messages.po b/src/frontend/src/locales/ru/messages.po index 7ad5f5ae8a..682eff73ae 100644 --- a/src/frontend/src/locales/ru/messages.po +++ b/src/frontend/src/locales/ru/messages.po @@ -8,15 +8,15 @@ msgstr "" "Language: ru\n" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"PO-Revision-Date: 2024-08-20 19:50\n" +"PO-Revision-Date: 2024-11-04 03:14\n" "Last-Translator: \n" "Language-Team: Russian\n" "Plural-Forms: nplurals=4; plural=((n%10==1 && n%100!=11) ? 0 : ((n%10 >= 2 && n%10 <=4 && (n%100 < 12 || n%100 > 14)) ? 1 : ((n%10 == 0 || (n%10 >= 5 && n%10 <=9)) || (n%100 >= 11 && n%100 <= 14)) ? 2 : 3));\n" "X-Crowdin-Project: inventree\n" "X-Crowdin-Project-ID: 452300\n" "X-Crowdin-Language: ru\n" -"X-Crowdin-File: /[inventree.InvenTree] l10/src/frontend/src/locales/en/messages.po\n" -"X-Crowdin-File-ID: 205\n" +"X-Crowdin-File: /src/frontend/src/locales/en/messages.po\n" +"X-Crowdin-File-ID: 252\n" #: src/components/Boundary.tsx:12 msgid "Error rendering component" @@ -27,8 +27,8 @@ msgid "An error occurred while rendering this component. Refer to the console fo msgstr "Произошла ошибка при отрисовки этого компонента. Обратитесь к консоли для получения дополнительной информации." #: src/components/DashboardItemProxy.tsx:34 -msgid "Title" -msgstr "Заголовок" +#~ msgid "Title" +#~ msgstr "Title" #: src/components/buttons/AdminButton.tsx:80 msgid "Open in admin interface" @@ -38,86 +38,103 @@ msgstr "Открыть в панели администратора" #~ msgid "Copy to clipboard" #~ msgstr "Copy to clipboard" -#: src/components/buttons/CopyButton.tsx:24 +#: src/components/buttons/CopyButton.tsx:29 msgid "Copied" msgstr "Скопировано" -#: src/components/buttons/CopyButton.tsx:24 +#: src/components/buttons/CopyButton.tsx:29 msgid "Copy" msgstr "Копировать" -#: src/components/buttons/PrintingActions.tsx:93 +#: src/components/buttons/PrintingActions.tsx:97 msgid "Print Label" msgstr "Печать этикеток" -#: src/components/buttons/PrintingActions.tsx:99 +#: src/components/buttons/PrintingActions.tsx:103 msgid "Print" msgstr "Печать" -#: src/components/buttons/PrintingActions.tsx:100 +#: src/components/buttons/PrintingActions.tsx:104 msgid "Label printing completed successfully" msgstr "Печать этикеток успешно завершена" -#: src/components/buttons/PrintingActions.tsx:106 -#: src/components/buttons/PrintingActions.tsx:144 -#: src/components/editors/NotesEditor.tsx:65 -#: src/components/editors/NotesEditor.tsx:165 -#: src/components/forms/fields/ApiFormField.tsx:319 +#: src/components/buttons/PrintingActions.tsx:110 +#: src/components/buttons/PrintingActions.tsx:148 +#: src/components/editors/NotesEditor.tsx:73 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:154 +#: src/components/forms/fields/ApiFormField.tsx:328 +#: src/components/forms/fields/TableField.tsx:43 #: src/components/importer/ImportDataSelector.tsx:187 -#: src/components/importer/ImporterColumnSelector.tsx:207 +#: src/components/importer/ImporterColumnSelector.tsx:210 #: src/components/modals/LicenseModal.tsx:75 -#: src/components/nav/SearchDrawer.tsx:448 +#: src/components/nav/SearchDrawer.tsx:458 +#: src/components/render/ModelType.tsx:290 #: src/pages/ErrorPage.tsx:11 -#: src/pages/part/PartPricingPanel.tsx:67 -#: src/tables/InvenTreeTable.tsx:495 +#: src/pages/part/PartPricingPanel.tsx:71 +#: src/tables/InvenTreeTable.tsx:481 #: src/tables/bom/BomTable.tsx:450 -#: src/tables/stock/StockItemTestResultTable.tsx:299 +#: src/tables/stock/StockItemTestResultTable.tsx:317 msgid "Error" msgstr "Ошибка" -#: src/components/buttons/PrintingActions.tsx:107 +#: src/components/buttons/PrintingActions.tsx:111 msgid "The label could not be generated" msgstr "Ошибка при создании этикетки" -#: src/components/buttons/PrintingActions.tsx:122 +#: src/components/buttons/PrintingActions.tsx:126 msgid "Print Report" msgstr "Печать отчета" -#: src/components/buttons/PrintingActions.tsx:138 +#: src/components/buttons/PrintingActions.tsx:142 msgid "Generate" msgstr "Создать" -#: src/components/buttons/PrintingActions.tsx:139 +#: src/components/buttons/PrintingActions.tsx:143 msgid "Report printing completed successfully" msgstr "Печать отчета успешно завершена" -#: src/components/buttons/PrintingActions.tsx:145 +#: src/components/buttons/PrintingActions.tsx:149 msgid "The report could not be generated" msgstr "Ошибка при создании отчета" -#: src/components/buttons/PrintingActions.tsx:173 +#: src/components/buttons/PrintingActions.tsx:177 msgid "Printing Actions" -msgstr "" +msgstr "Действия печати" -#: src/components/buttons/PrintingActions.tsx:178 +#: src/components/buttons/PrintingActions.tsx:182 msgid "Print Labels" msgstr "Печать этикеток" -#: src/components/buttons/PrintingActions.tsx:184 +#: src/components/buttons/PrintingActions.tsx:188 msgid "Print Reports" msgstr "Печать отчетов" +#: src/components/buttons/RemoveRowButton.tsx:8 +msgid "Remove this row" +msgstr "" + #: src/components/buttons/ScanButton.tsx:15 -msgid "Scan QR code" -msgstr "Сканировать QR код" +#: src/components/nav/NavigationDrawer.tsx:117 +#: src/forms/PurchaseOrderForms.tsx:379 +#: src/forms/PurchaseOrderForms.tsx:473 +msgid "Scan Barcode" +msgstr "Сканировать штрихкод" + +#: src/components/buttons/ScanButton.tsx:15 +#~ msgid "Scan QR code" +#~ msgstr "Scan QR code" #: src/components/buttons/ScanButton.tsx:20 -msgid "Open QR code scanner" -msgstr "Использовать сканер QR-кода" +msgid "Open Barcode Scanner" +msgstr "" + +#: src/components/buttons/ScanButton.tsx:20 +#~ msgid "Open QR code scanner" +#~ msgstr "Open QR code scanner" #: src/components/buttons/SpotlightButton.tsx:14 msgid "Open spotlight" -msgstr "" +msgstr "Открыть всплывающее окно" #: src/components/buttons/YesNoButton.tsx:16 msgid "Pass" @@ -128,85 +145,347 @@ msgid "Fail" msgstr "Сбой" #: src/components/buttons/YesNoButton.tsx:33 -#: src/tables/Filter.tsx:52 +#: src/tables/Filter.tsx:61 msgid "Yes" msgstr "Да" #: src/components/buttons/YesNoButton.tsx:33 -#: src/tables/Filter.tsx:53 +#: src/tables/Filter.tsx:62 msgid "No" msgstr "Нет" -#: src/components/details/Details.tsx:301 +#: src/components/dashboard/DashboardLayout.tsx:286 +msgid "No Widgets Selected" +msgstr "" + +#: src/components/dashboard/DashboardLayout.tsx:289 +msgid "Use the menu to add widgets to the dashboard" +msgstr "" + +#: src/components/dashboard/DashboardMenu.tsx:59 +#: src/components/dashboard/DashboardMenu.tsx:126 +msgid "Accept Layout" +msgstr "" + +#: src/components/dashboard/DashboardMenu.tsx:91 +#: src/components/nav/NavigationDrawer.tsx:71 +#: src/defaults/actions.tsx:17 +#: src/defaults/links.tsx:9 +#: src/pages/Index/Settings/UserSettings.tsx:47 +msgid "Dashboard" +msgstr "Контрольная панель" + +#: src/components/dashboard/DashboardMenu.tsx:99 +msgid "Edit Layout" +msgstr "" + +#: src/components/dashboard/DashboardMenu.tsx:108 +msgid "Add Widget" +msgstr "" + +#: src/components/dashboard/DashboardMenu.tsx:117 +msgid "Remove Widgets" +msgstr "" + +#: src/components/dashboard/DashboardWidget.tsx:65 +msgid "Remove this widget from the dashboard" +msgstr "" + +#: src/components/dashboard/DashboardWidgetDrawer.tsx:77 +msgid "Filter dashboard widgets" +msgstr "" + +#: src/components/dashboard/DashboardWidgetDrawer.tsx:98 +msgid "Add this widget to the dashboard" +msgstr "" + +#: src/components/dashboard/DashboardWidgetDrawer.tsx:123 +msgid "No Widgets Available" +msgstr "" + +#: src/components/dashboard/DashboardWidgetDrawer.tsx:124 +msgid "There are no more widgets available for the dashboard" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:19 +msgid "Subscribed Parts" +msgstr "Отслеживаемые товарыОтслеживаемые товары" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:20 +msgid "Show the number of parts which you have subscribed to" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:26 +msgid "Subscribed Categories" +msgstr "Отслеживаемые категории" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:27 +msgid "Show the number of part categories which you have subscribed to" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:35 +#: src/pages/part/PartSchedulingDetail.tsx:304 +#: src/tables/part/PartTable.tsx:238 +msgid "Low Stock" +msgstr "Низкий запас" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:37 +msgid "Show the number of parts which are low on stock" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:43 +msgid "Expired Stock Items" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:45 +msgid "Show the number of stock items which have expired" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:51 +msgid "Stale Stock Items" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:53 +msgid "Show the number of stock items which are stale" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:59 +msgid "Active Build Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:61 +msgid "Show the number of build orders which are currently active" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:66 +msgid "Overdue Build Orders" +msgstr "Просроченные заказы на сборку" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:68 +msgid "Show the number of build orders which are overdue" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:73 +msgid "Assigned Build Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:75 +msgid "Show the number of build orders which are assigned to you" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:80 +msgid "Active Sales Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:82 +msgid "Show the number of sales orders which are currently active" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:87 +msgid "Overdue Sales Orders" +msgstr "Просроченные заказы на продажу" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:89 +msgid "Show the number of sales orders which are overdue" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:94 +msgid "Assigned Sales Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:96 +msgid "Show the number of sales orders which are assigned to you" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:101 +msgid "Active Purchase Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:103 +msgid "Show the number of purchase orders which are currently active" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:108 +msgid "Overdue Purchase Orders" +msgstr "Просроченные заказы на закупку" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:110 +msgid "Show the number of purchase orders which are overdue" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:115 +msgid "Assigned Purchase Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:117 +msgid "Show the number of purchase orders which are assigned to you" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:122 +msgid "Active Return Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:124 +msgid "Show the number of return orders which are currently active" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:129 +msgid "Overdue Return Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:131 +msgid "Show the number of return orders which are overdue" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:136 +msgid "Assigned Return Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:138 +msgid "Show the number of return orders which are assigned to you" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:149 +#: src/components/dashboard/widgets/GetStartedWidget.tsx:15 +#: src/defaults/links.tsx:38 +msgid "Getting Started" +msgstr "Начать работу" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:150 +#: src/defaults/links.tsx:41 +msgid "Getting started with InvenTree" +msgstr "Начало работы с InvenTree" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:157 +#: src/components/dashboard/widgets/NewsWidget.tsx:123 +msgid "News Updates" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:158 +msgid "The latest news from InvenTree" +msgstr "" + +#: src/components/dashboard/widgets/ColorToggleWidget.tsx:18 +#: src/components/nav/MainMenu.tsx:77 +msgid "Change Color Mode" +msgstr "Изменить цветовой режим" + +#: src/components/dashboard/widgets/ColorToggleWidget.tsx:23 +msgid "Change the color mode of the user interface" +msgstr "" + +#: src/components/dashboard/widgets/LanguageSelectWidget.tsx:18 +msgid "Change Language" +msgstr "" + +#: src/components/dashboard/widgets/LanguageSelectWidget.tsx:23 +msgid "Change the language of the user interface" +msgstr "" + +#: src/components/dashboard/widgets/NewsWidget.tsx:61 +#: src/components/nav/NotificationDrawer.tsx:88 +#: src/pages/Notifications.tsx:73 +msgid "Mark as read" +msgstr "Пометить как прочитанное" + +#: src/components/dashboard/widgets/NewsWidget.tsx:115 +msgid "Requires Superuser" +msgstr "" + +#: src/components/dashboard/widgets/NewsWidget.tsx:116 +msgid "This widget requires superuser permissions" +msgstr "" + +#: src/components/dashboard/widgets/NewsWidget.tsx:133 +msgid "No News" +msgstr "" + +#: src/components/dashboard/widgets/NewsWidget.tsx:134 +msgid "There are no unread news items" +msgstr "" + +#: src/components/details/Details.tsx:300 msgid "No name defined" msgstr "Имя не определено" -#: src/components/details/DetailsImage.tsx:65 +#: src/components/details/DetailsImage.tsx:69 msgid "Remove Image" msgstr "Убрать изображение" -#: src/components/details/DetailsImage.tsx:68 +#: src/components/details/DetailsImage.tsx:72 msgid "Remove the associated image from this item?" msgstr "Удалить связанное изображение?" -#: src/components/details/DetailsImage.tsx:71 -#: src/forms/StockForms.tsx:533 +#: src/components/details/DetailsImage.tsx:75 +#: src/forms/StockForms.tsx:651 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:199 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:306 -#: src/pages/stock/StockDetail.tsx:526 +#: src/pages/stock/StockDetail.tsx:690 msgid "Remove" msgstr "Удалить" -#: src/components/details/DetailsImage.tsx:71 -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:158 -#: src/components/items/ActionDropdown.tsx:215 -#: src/components/items/ActionDropdown.tsx:216 -#: src/contexts/ThemeContext.tsx:43 +#: src/components/details/DetailsImage.tsx:75 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:184 +#: src/components/items/ActionDropdown.tsx:268 +#: src/components/items/ActionDropdown.tsx:269 +#: src/contexts/ThemeContext.tsx:45 #: src/hooks/UseForm.tsx:40 -#: src/tables/FilterSelectDrawer.tsx:205 -#: src/tables/build/BuildOutputTable.tsx:286 +#: src/tables/FilterSelectDrawer.tsx:241 +#: src/tables/RowActions.tsx:59 +#: src/tables/build/BuildOutputTable.tsx:434 msgid "Cancel" msgstr "Отменить" -#: src/components/details/DetailsImage.tsx:97 +#: src/components/details/DetailsImage.tsx:101 msgid "Drag and drop to upload" msgstr "Перетащите для загрузки" -#: src/components/details/DetailsImage.tsx:100 +#: src/components/details/DetailsImage.tsx:104 msgid "Click to select file(s)" msgstr "Нажмите, чтобы выбрать файл(ы)" -#: src/components/details/DetailsImage.tsx:226 +#: src/components/details/DetailsImage.tsx:230 msgid "Clear" msgstr "Очистить" -#: src/components/details/DetailsImage.tsx:232 -#: src/components/forms/ApiForm.tsx:627 -#: src/contexts/ThemeContext.tsx:43 -#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:60 +#: src/components/details/DetailsImage.tsx:236 +#: src/components/forms/ApiForm.tsx:660 +#: src/contexts/ThemeContext.tsx:45 msgid "Submit" msgstr "Подтвердить" -#: src/components/details/DetailsImage.tsx:272 +#: src/components/details/DetailsImage.tsx:280 msgid "Select from existing images" msgstr "Выбрать из существующих изображений" -#: src/components/details/DetailsImage.tsx:280 +#: src/components/details/DetailsImage.tsx:288 msgid "Select Image" msgstr "Выбрать изображение" -#: src/components/details/DetailsImage.tsx:292 +#: src/components/details/DetailsImage.tsx:304 +msgid "Download remote image" +msgstr "" + +#: src/components/details/DetailsImage.tsx:319 msgid "Upload new image" msgstr "Загрузить новое изображение" -#: src/components/details/DetailsImage.tsx:299 +#: src/components/details/DetailsImage.tsx:326 msgid "Upload Image" msgstr "Загрузить изображение" -#: src/components/details/DetailsImage.tsx:312 +#: src/components/details/DetailsImage.tsx:339 msgid "Delete image" msgstr "Удалить изображение" +#: src/components/details/DetailsImage.tsx:373 +msgid "Download Image" +msgstr "" + +#: src/components/details/DetailsImage.tsx:378 +msgid "Image downloaded successfully" +msgstr "" + #: src/components/details/PartIcons.tsx:43 #~ msgid "Part is a template part (variants can be made from this part)" #~ msgstr "Part is a template part (variants can be made from this part)" @@ -235,36 +514,57 @@ msgstr "Удалить изображение" #~ msgid "Part is virtual (not a physical part)" #~ msgstr "Part is virtual (not a physical part)" -#: src/components/editors/NotesEditor.tsx:66 +#: src/components/editors/NotesEditor.tsx:74 msgid "Image upload failed" msgstr "Не удалось загрузить изображение" -#: src/components/editors/NotesEditor.tsx:156 -#: src/components/forms/ApiForm.tsx:467 +#: src/components/editors/NotesEditor.tsx:83 +#: src/components/editors/NotesEditor.tsx:119 +#: src/components/forms/ApiForm.tsx:475 #: src/tables/bom/BomTable.tsx:441 msgid "Success" msgstr "Успешно" -#: src/components/editors/NotesEditor.tsx:157 +#: src/components/editors/NotesEditor.tsx:84 +msgid "Image uploaded successfully" +msgstr "Изображение успешно загружено" + +#: src/components/editors/NotesEditor.tsx:120 msgid "Notes saved successfully" msgstr "Заметка успешно сохранена" -#: src/components/editors/NotesEditor.tsx:166 +#: src/components/editors/NotesEditor.tsx:131 msgid "Failed to save notes" msgstr "Не удалось сохранить заметки" -#: src/components/editors/NotesEditor.tsx:198 -msgid "Preview Notes" -msgstr "Просмотр заметок" +#: src/components/editors/NotesEditor.tsx:134 +msgid "Error Saving Notes" +msgstr "" -#: src/components/editors/NotesEditor.tsx:198 -msgid "Edit Notes" -msgstr "Редактировать заметки" +#: src/components/editors/NotesEditor.tsx:151 +#~ msgid "Disable Editing" +#~ msgstr "Disable Editing" -#: src/components/editors/NotesEditor.tsx:212 +#: src/components/editors/NotesEditor.tsx:154 msgid "Save Notes" msgstr "Сохранить заметки" +#: src/components/editors/NotesEditor.tsx:173 +msgid "Close Editor" +msgstr "" + +#: src/components/editors/NotesEditor.tsx:180 +msgid "Enable Editing" +msgstr "" + +#: src/components/editors/NotesEditor.tsx:198 +#~ msgid "Preview Notes" +#~ msgstr "Preview Notes" + +#: src/components/editors/NotesEditor.tsx:198 +#~ msgid "Edit Notes" +#~ msgstr "Edit Notes" + #: src/components/editors/TemplateEditor/CodeEditor/index.tsx:9 msgid "Code" msgstr "Код" @@ -281,121 +581,126 @@ msgstr "Предварительный просмотр недоступен, н msgid "PDF Preview" msgstr "Предварительный просмотр в PDF" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:104 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:115 msgid "Error loading template" -msgstr "" +msgstr "Ошибка загрузки шаблона" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:116 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:127 msgid "Error saving template" -msgstr "" - -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:146 -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:274 -msgid "Save & Reload Preview" -msgstr "" - -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:151 -msgid "Are you sure you want to Save & Reload the preview?" -msgstr "" +msgstr "Ошибка при сохранении шаблона" #: src/components/editors/TemplateEditor/TemplateEditor.tsx:151 #~ msgid "Save & Reload preview?" #~ msgstr "Save & Reload preview?" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:153 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:155 +msgid "Could not load the template from the server." +msgstr "" + +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:172 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:303 +msgid "Save & Reload Preview" +msgstr "Сохранить и перезагрузить предпросмотр" + +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:177 +msgid "Are you sure you want to Save & Reload the preview?" +msgstr "Вы уверены, что хотите сохранить и перезагрузить предпросмотр?" + +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:179 msgid "To render the preview the current template needs to be replaced on the server with your modifications which may break the label if it is under active use. Do you want to proceed?" -msgstr "" +msgstr "Для отображения предварительного просмотра текущий шаблон должен быть заменен на ваши модификации, которые могут нарушить метку, если она используется в активном режиме. Вы хотите продолжить?" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:157 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:183 msgid "Save & Reload" -msgstr "" +msgstr "Сохранить и перезагрузить" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:189 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:215 msgid "Preview updated" -msgstr "" +msgstr "Предпросмотр обновлен" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:190 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:216 msgid "The preview has been updated successfully." -msgstr "" +msgstr "Предварительный просмотр успешно обновлен." #: src/components/editors/TemplateEditor/TemplateEditor.tsx:263 #~ msgid "Save & Reload preview" #~ msgstr "Save & Reload preview" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:266 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:295 msgid "Reload preview" msgstr "Перезагрузить предварительный просмотр" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:267 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:296 msgid "Use the currently stored template from the server" -msgstr "" +msgstr "Использовать текущий шаблон с сервера" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:275 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:304 msgid "Save the current template and reload the preview" -msgstr "" +msgstr "Сохранить текущий шаблон и обновить предпросмотр" #: src/components/editors/TemplateEditor/TemplateEditor.tsx:322 #~ msgid "to preview" #~ msgstr "to preview" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:333 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:365 msgid "Select instance to preview" -msgstr "" +msgstr "Выберите экземпляр для просмотра" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:377 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:409 msgid "Error rendering template" -msgstr "" +msgstr "Ошибка отображения шаблона" #: src/components/errors/ClientError.tsx:23 msgid "Client Error" -msgstr "" +msgstr "Ошибка клиента" #: src/components/errors/ClientError.tsx:24 msgid "Client error occurred" -msgstr "" +msgstr "Произошла ошибка клиента" #: src/components/errors/GenericErrorPage.tsx:50 msgid "Status Code" -msgstr "" +msgstr "Код статуса" #: src/components/errors/GenericErrorPage.tsx:63 msgid "Return to the index page" -msgstr "" +msgstr "Вернуться на главную страницу" #: src/components/errors/NotAuthenticated.tsx:8 msgid "Not Authenticated" -msgstr "" +msgstr "Не аутентифицирован" #: src/components/errors/NotAuthenticated.tsx:9 msgid "You are not logged in." -msgstr "" +msgstr "Вы не авторизованы." #: src/components/errors/NotFound.tsx:8 msgid "Page Not Found" -msgstr "" +msgstr "Страница не найдена" #: src/components/errors/NotFound.tsx:9 msgid "This page does not exist" -msgstr "" +msgstr "Данной страницы не существует" #: src/components/errors/PermissionDenied.tsx:8 +#: src/functions/notifications.tsx:24 msgid "Permission Denied" -msgstr "" +msgstr "Доступ запрещён" #: src/components/errors/PermissionDenied.tsx:9 msgid "You do not have permission to view this page." -msgstr "" +msgstr "У вас нет прав для просмотра этой страницы." #: src/components/errors/ServerError.tsx:8 msgid "Server Error" -msgstr "" +msgstr "Ошибка сервера" #: src/components/errors/ServerError.tsx:9 msgid "A server error occurred" -msgstr "" +msgstr "Произошла ошибка сервера" -#: src/components/forms/ApiForm.tsx:151 -#: src/components/forms/ApiForm.tsx:555 +#: src/components/forms/ApiForm.tsx:154 +#: src/components/forms/ApiForm.tsx:579 msgid "Form Error" msgstr "Ошибка формы" @@ -403,22 +708,22 @@ msgstr "Ошибка формы" #~ msgid "Form Errors Exist" #~ msgstr "Form Errors Exist" -#: src/components/forms/ApiForm.tsx:563 +#: src/components/forms/ApiForm.tsx:587 msgid "Errors exist for one or more form fields" -msgstr "" +msgstr "Существуют ошибки для одного или нескольких полей формы" -#: src/components/forms/ApiForm.tsx:665 -#: src/tables/plugin/PluginListTable.tsx:388 +#: src/components/forms/ApiForm.tsx:698 +#: src/tables/plugin/PluginListTable.tsx:195 msgid "Update" msgstr "Обновить" -#: src/components/forms/ApiForm.tsx:685 -#: src/components/items/ActionDropdown.tsx:195 +#: src/components/forms/ApiForm.tsx:718 +#: src/components/items/ActionDropdown.tsx:248 #: src/hooks/UseForm.tsx:122 -#: src/pages/Index/Scan.tsx:343 +#: src/pages/Index/Scan.tsx:357 #: src/pages/Notifications.tsx:123 -#: src/tables/RowActions.tsx:43 -#: src/tables/plugin/PluginListTable.tsx:420 +#: src/tables/RowActions.tsx:49 +#: src/tables/plugin/PluginListTable.tsx:232 msgid "Delete" msgstr "Удалить" @@ -428,14 +733,6 @@ msgstr "Удалить" #~ msgid "Check your your input and try again." #~ msgstr "Check your your input and try again." -#: src/components/forms/AuthenticationForm.tsx:51 -msgid "Login successful" -msgstr "Вы вошли" - -#: src/components/forms/AuthenticationForm.tsx:52 -msgid "Logged in successfully" -msgstr "" - #: src/components/forms/AuthenticationForm.tsx:52 #~ msgid "Welcome back!" #~ msgstr "Welcome back!" @@ -444,14 +741,22 @@ msgstr "" #~ msgid "Login successfull" #~ msgstr "Login successfull" -#: src/components/forms/AuthenticationForm.tsx:58 +#: src/components/forms/AuthenticationForm.tsx:55 +msgid "Login successful" +msgstr "Вы вошли" + +#: src/components/forms/AuthenticationForm.tsx:56 +msgid "Logged in successfully" +msgstr "Вы успешно вошли в систему" + +#: src/components/forms/AuthenticationForm.tsx:61 msgid "Login failed" msgstr "Ошибка входа" -#: src/components/forms/AuthenticationForm.tsx:59 -#: src/components/forms/AuthenticationForm.tsx:76 -#: src/components/forms/AuthenticationForm.tsx:211 -#: src/functions/auth.tsx:164 +#: src/components/forms/AuthenticationForm.tsx:62 +#: src/components/forms/AuthenticationForm.tsx:79 +#: src/components/forms/AuthenticationForm.tsx:214 +#: src/functions/auth.tsx:175 msgid "Check your input and try again." msgstr "Проверьте введенные данные и повторите попытку." @@ -460,45 +765,46 @@ msgstr "Проверьте введенные данные и повторите #~ msgid "Mail delivery successfull" #~ msgstr "Mail delivery successfull" -#: src/components/forms/AuthenticationForm.tsx:70 -#: src/functions/auth.tsx:155 +#: src/components/forms/AuthenticationForm.tsx:73 +#: src/functions/auth.tsx:166 msgid "Mail delivery successful" msgstr "Отправка почты прошла успешно" -#: src/components/forms/AuthenticationForm.tsx:71 +#: src/components/forms/AuthenticationForm.tsx:74 msgid "Check your inbox for the login link. If you have an account, you will receive a login link. Check in spam too." msgstr "Проверьте свой почтовый ящик на наличие ссылки для входа в систему. Если у вас есть учетная запись, вы получите ссылку для входа в систему. Проверьте также спам." -#: src/components/forms/AuthenticationForm.tsx:75 +#: src/components/forms/AuthenticationForm.tsx:78 msgid "Mail delivery failed" -msgstr "" +msgstr "Не удалось доставить почту" -#: src/components/forms/AuthenticationForm.tsx:95 +#: src/components/forms/AuthenticationForm.tsx:98 msgid "Or continue with other methods" -msgstr "" +msgstr "Или продолжить с другими методами" -#: src/components/forms/AuthenticationForm.tsx:106 -#: src/components/forms/AuthenticationForm.tsx:227 +#: src/components/forms/AuthenticationForm.tsx:109 +#: src/components/forms/AuthenticationForm.tsx:230 +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:67 msgid "Username" msgstr "Имя пользователя" -#: src/components/forms/AuthenticationForm.tsx:107 -#: src/components/forms/AuthenticationForm.tsx:228 +#: src/components/forms/AuthenticationForm.tsx:110 +#: src/components/forms/AuthenticationForm.tsx:231 msgid "Your username" msgstr "Имя пользователя" -#: src/components/forms/AuthenticationForm.tsx:112 -#: src/components/forms/AuthenticationForm.tsx:240 -#: src/pages/Auth/Set-Password.tsx:106 +#: src/components/forms/AuthenticationForm.tsx:115 +#: src/components/forms/AuthenticationForm.tsx:243 +#: src/pages/Auth/Set-Password.tsx:101 msgid "Password" msgstr "Пароль" -#: src/components/forms/AuthenticationForm.tsx:113 -#: src/components/forms/AuthenticationForm.tsx:241 +#: src/components/forms/AuthenticationForm.tsx:116 +#: src/components/forms/AuthenticationForm.tsx:244 msgid "Your password" msgstr "Ваш пароль" -#: src/components/forms/AuthenticationForm.tsx:125 +#: src/components/forms/AuthenticationForm.tsx:128 #: src/pages/Auth/Reset.tsx:26 msgid "Reset password" msgstr "Сбросить пароль" @@ -507,77 +813,79 @@ msgstr "Сбросить пароль" #~ msgid "Log in" #~ msgstr "Log in" -#: src/components/forms/AuthenticationForm.tsx:134 -#: src/components/forms/AuthenticationForm.tsx:233 +#: src/components/forms/AuthenticationForm.tsx:136 +#~ msgid "I will use username and password" +#~ msgstr "I will use username and password" + +#: src/components/forms/AuthenticationForm.tsx:137 +#: src/components/forms/AuthenticationForm.tsx:236 #: src/pages/Auth/Reset.tsx:31 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:51 msgid "Email" msgstr "Электронная почта" -#: src/components/forms/AuthenticationForm.tsx:135 +#: src/components/forms/AuthenticationForm.tsx:138 #: src/pages/Auth/Reset.tsx:32 -#: src/pages/Auth/Set-Password.tsx:107 +#: src/pages/Auth/Set-Password.tsx:102 msgid "We will send you a link to login - if you are registered" msgstr "Мы вышлем вам ссылку для входа - если вы зарегистрированы" -#: src/components/forms/AuthenticationForm.tsx:136 -#~ msgid "I will use username and password" -#~ msgstr "I will use username and password" - -#: src/components/forms/AuthenticationForm.tsx:151 +#: src/components/forms/AuthenticationForm.tsx:154 msgid "Send me an email" msgstr "Отправьте мне электронное письмо" -#: src/components/forms/AuthenticationForm.tsx:153 +#: src/components/forms/AuthenticationForm.tsx:156 msgid "Use username and password" msgstr "Имя пользователя и пароль" -#: src/components/forms/AuthenticationForm.tsx:162 +#: src/components/forms/AuthenticationForm.tsx:165 msgid "Log In" msgstr "Войти" -#: src/components/forms/AuthenticationForm.tsx:164 +#: src/components/forms/AuthenticationForm.tsx:167 +#: src/pages/Auth/Reset.tsx:41 +#: src/pages/Auth/Set-Password.tsx:107 msgid "Send Email" msgstr "Отправить email" -#: src/components/forms/AuthenticationForm.tsx:193 +#: src/components/forms/AuthenticationForm.tsx:196 msgid "Registration successful" msgstr "Регистрация выполнена успешно" -#: src/components/forms/AuthenticationForm.tsx:194 +#: src/components/forms/AuthenticationForm.tsx:197 msgid "Please confirm your email address to complete the registration" msgstr "Пожалуйста, подтвердите адрес электронной почты для завершения регистрации" -#: src/components/forms/AuthenticationForm.tsx:210 +#: src/components/forms/AuthenticationForm.tsx:213 msgid "Input error" msgstr "Ошибка ввода" -#: src/components/forms/AuthenticationForm.tsx:234 +#: src/components/forms/AuthenticationForm.tsx:237 msgid "This will be used for a confirmation" msgstr "Это будет использовано для подтверждения" -#: src/components/forms/AuthenticationForm.tsx:246 +#: src/components/forms/AuthenticationForm.tsx:249 msgid "Password repeat" msgstr "Повторите пароль" -#: src/components/forms/AuthenticationForm.tsx:247 +#: src/components/forms/AuthenticationForm.tsx:250 msgid "Repeat password" msgstr "Введите пароль еще раз" -#: src/components/forms/AuthenticationForm.tsx:259 -#: src/components/forms/AuthenticationForm.tsx:304 +#: src/components/forms/AuthenticationForm.tsx:262 +#: src/components/forms/AuthenticationForm.tsx:307 msgid "Register" msgstr "Регистрация" -#: src/components/forms/AuthenticationForm.tsx:265 +#: src/components/forms/AuthenticationForm.tsx:268 msgid "Or use SSO" -msgstr "" +msgstr "Или используйте SSO" -#: src/components/forms/AuthenticationForm.tsx:296 +#: src/components/forms/AuthenticationForm.tsx:299 msgid "Don't have an account?" msgstr "Нет аккаунта?" -#: src/components/forms/AuthenticationForm.tsx:315 +#: src/components/forms/AuthenticationForm.tsx:318 msgid "Go back to login" msgstr "Вернуться к логину" @@ -588,19 +896,20 @@ msgstr "Узел" #: src/components/forms/HostOptionsForm.tsx:42 #: src/components/forms/HostOptionsForm.tsx:70 +#: src/components/plugins/PluginDrawer.tsx:69 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:410 +#: src/pages/Index/Settings/AdminCenter/UnitManagmentPanel.tsx:19 #: src/pages/part/CategoryDetail.tsx:81 -#: src/pages/part/PartDetail.tsx:143 -#: src/pages/stock/LocationDetail.tsx:89 -#: src/tables/machine/MachineTypeTable.tsx:65 -#: src/tables/machine/MachineTypeTable.tsx:109 -#: src/tables/machine/MachineTypeTable.tsx:216 -#: src/tables/machine/MachineTypeTable.tsx:319 +#: src/pages/part/PartDetail.tsx:164 +#: src/pages/stock/LocationDetail.tsx:83 +#: src/tables/machine/MachineTypeTable.tsx:70 +#: src/tables/machine/MachineTypeTable.tsx:119 +#: src/tables/machine/MachineTypeTable.tsx:237 +#: src/tables/machine/MachineTypeTable.tsx:340 #: src/tables/plugin/PluginErrorTable.tsx:33 -#: src/tables/plugin/PluginListTable.tsx:126 #: src/tables/purchasing/ManufacturerPartParameterTable.tsx:32 #: src/tables/settings/GroupTable.tsx:147 -#: src/tables/settings/PendingTasksTable.tsx:28 +#: src/tables/settings/PendingTasksTable.tsx:32 #: src/tables/stock/LocationTypesTable.tsx:69 msgid "Name" msgstr "Название" @@ -643,54 +952,53 @@ msgstr "Состояние: <0>рабочий ({0}), <1>плагины{ #: src/components/forms/fields/IconField.tsx:81 msgid "No icon selected" -msgstr "" +msgstr "Значок не выбран" #: src/components/forms/fields/IconField.tsx:159 msgid "Uncategorized" -msgstr "" +msgstr "Без категории" #: src/components/forms/fields/IconField.tsx:209 -#: src/components/nav/Layout.tsx:70 +#: src/components/nav/Layout.tsx:77 #: src/tables/part/PartThumbTable.tsx:192 msgid "Search..." -msgstr "" +msgstr "Поиск..." #: src/components/forms/fields/IconField.tsx:223 msgid "Select category" -msgstr "" +msgstr "Выберите категорию" #: src/components/forms/fields/IconField.tsx:232 msgid "Select pack" -msgstr "" +msgstr "Выбрать набор" #: src/components/forms/fields/IconField.tsx:237 msgid "{0} icons" -msgstr "" +msgstr "{0} иконок" -#: src/components/forms/fields/RelatedModelField.tsx:318 -#: src/pages/Index/Settings/UserSettings.tsx:96 +#: src/components/forms/fields/RelatedModelField.tsx:319 +#: src/pages/Index/Settings/UserSettings.tsx:97 #: src/tables/Search.tsx:23 msgid "Search" msgstr "Поиск" -#: src/components/forms/fields/RelatedModelField.tsx:319 +#: src/components/forms/fields/RelatedModelField.tsx:320 #: src/components/modals/AboutInvenTreeModal.tsx:81 -#: src/components/widgets/WidgetLayout.tsx:120 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:316 msgid "Loading" msgstr "Загрузка" -#: src/components/forms/fields/RelatedModelField.tsx:321 +#: src/components/forms/fields/RelatedModelField.tsx:322 msgid "No results found" msgstr "Ничего не найдено" -#: src/components/forms/fields/TableField.tsx:52 -msgid "modelRenderer entry required for tables" -msgstr "" +#: src/components/forms/fields/TableField.tsx:72 +#~ msgid "modelRenderer entry required for tables" +#~ msgstr "modelRenderer entry required for tables" -#: src/components/forms/fields/TableField.tsx:76 +#: src/components/forms/fields/TableField.tsx:167 msgid "No entries available" -msgstr "" +msgstr "Нет доступных записей" #: src/components/images/DetailsImage.tsx:252 #~ msgid "Select image" @@ -702,69 +1010,70 @@ msgstr "Миниатюра" #: src/components/importer/ImportDataSelector.tsx:170 msgid "Importing Rows" -msgstr "" +msgstr "Импорт строк" #: src/components/importer/ImportDataSelector.tsx:171 msgid "Please wait while the data is imported" -msgstr "" +msgstr "Пожалуйста, подождите, пока данные импортируются" #: src/components/importer/ImportDataSelector.tsx:188 msgid "An error occurred while importing data" -msgstr "" +msgstr "Произошла ошибка при импорте данных" #: src/components/importer/ImportDataSelector.tsx:209 msgid "Edit Data" -msgstr "" +msgstr "Изменить данные" #: src/components/importer/ImportDataSelector.tsx:237 msgid "Delete Row" -msgstr "" +msgstr "Удалить строку" #: src/components/importer/ImportDataSelector.tsx:267 msgid "Row" -msgstr "" +msgstr "Строка" #: src/components/importer/ImportDataSelector.tsx:285 msgid "Row contains errors" -msgstr "" +msgstr "Строка содержит ошибки" #: src/components/importer/ImportDataSelector.tsx:326 msgid "Accept" -msgstr "" +msgstr "Принять" #: src/components/importer/ImportDataSelector.tsx:359 msgid "Valid" -msgstr "" +msgstr "Верно" #: src/components/importer/ImportDataSelector.tsx:360 msgid "Filter by row validation status" -msgstr "" +msgstr "Фильтр по статусу проверки строк" #: src/components/importer/ImportDataSelector.tsx:365 -#: src/tables/build/BuildOutputTable.tsx:266 +#: src/tables/build/BuildOutputTable.tsx:407 msgid "Complete" msgstr "Готово" #: src/components/importer/ImportDataSelector.tsx:366 msgid "Filter by row completion status" -msgstr "" +msgstr "Фильтровать по статусу завершения строк" -#: src/components/importer/ImportDataSelector.tsx:383 +#: src/components/importer/ImportDataSelector.tsx:384 msgid "Import selected rows" msgstr "Импорт выделенных строк" -#: src/components/importer/ImportDataSelector.tsx:398 +#: src/components/importer/ImportDataSelector.tsx:399 msgid "Processing Data" msgstr "Обработка данных" -#: src/components/importer/ImporterColumnSelector.tsx:50 -#: src/components/importer/ImporterColumnSelector.tsx:176 +#: src/components/importer/ImporterColumnSelector.tsx:53 +#: src/components/importer/ImporterColumnSelector.tsx:179 +#: src/components/items/ErrorItem.tsx:12 msgid "An error occurred" msgstr "Произошла ошибка" -#: src/components/importer/ImporterColumnSelector.tsx:62 +#: src/components/importer/ImporterColumnSelector.tsx:65 msgid "Select column, or leave blank to ignore this field." -msgstr "" +msgstr "Выберите столбец, или оставьте пустым, чтобы игнорировать это поле." #: src/components/importer/ImporterColumnSelector.tsx:91 #~ msgid "Select a column from the data file" @@ -778,171 +1087,201 @@ msgstr "" #~ msgid "Imported Column Name" #~ msgstr "Imported Column Name" -#: src/components/importer/ImporterColumnSelector.tsx:182 +#: src/components/importer/ImporterColumnSelector.tsx:185 msgid "Ignore this field" -msgstr "" +msgstr "Игнорировать это поле" -#: src/components/importer/ImporterColumnSelector.tsx:196 +#: src/components/importer/ImporterColumnSelector.tsx:199 msgid "Mapping data columns to database fields" -msgstr "" +msgstr "Сопоставление столбцов данных с полями базы данных" -#: src/components/importer/ImporterColumnSelector.tsx:201 +#: src/components/importer/ImporterColumnSelector.tsx:204 msgid "Accept Column Mapping" -msgstr "" +msgstr "Принять сопоставление колонок" -#: src/components/importer/ImporterColumnSelector.tsx:214 +#: src/components/importer/ImporterColumnSelector.tsx:217 msgid "Database Field" -msgstr "" +msgstr "Поле базы данных" -#: src/components/importer/ImporterColumnSelector.tsx:215 +#: src/components/importer/ImporterColumnSelector.tsx:218 msgid "Field Description" msgstr "Описание поля" -#: src/components/importer/ImporterColumnSelector.tsx:216 +#: src/components/importer/ImporterColumnSelector.tsx:219 msgid "Imported Column" -msgstr "" +msgstr "Импортированный столбец" -#: src/components/importer/ImporterColumnSelector.tsx:217 +#: src/components/importer/ImporterColumnSelector.tsx:220 msgid "Default Value" -msgstr "" - -#: src/components/importer/ImporterDrawer.tsx:44 -msgid "Upload File" -msgstr "" - -#: src/components/importer/ImporterDrawer.tsx:45 -msgid "Map Columns" -msgstr "" +msgstr "Значение по умолчанию" #: src/components/importer/ImporterDrawer.tsx:46 -msgid "Import Data" -msgstr "" +msgid "Upload File" +msgstr "Загрузить файл" #: src/components/importer/ImporterDrawer.tsx:47 -msgid "Process Data" -msgstr "" +msgid "Map Columns" +msgstr "Сопоставить столбцы" #: src/components/importer/ImporterDrawer.tsx:48 +msgid "Import Data" +msgstr "Импорт данных" + +#: src/components/importer/ImporterDrawer.tsx:49 +msgid "Process Data" +msgstr "Обработать данные" + +#: src/components/importer/ImporterDrawer.tsx:50 msgid "Complete Import" -msgstr "" +msgstr "Завершить импорт" #: src/components/importer/ImporterDrawer.tsx:97 #~ msgid "Cancel import session" #~ msgstr "Cancel import session" -#: src/components/importer/ImporterDrawer.tsx:104 +#: src/components/importer/ImporterDrawer.tsx:106 msgid "Import Complete" -msgstr "" - -#: src/components/importer/ImporterDrawer.tsx:107 -msgid "Data has been imported successfully" -msgstr "" +msgstr "Импорт завершён" #: src/components/importer/ImporterDrawer.tsx:109 -#: src/components/importer/ImporterDrawer.tsx:118 +msgid "Data has been imported successfully" +msgstr "Данные успешно импортированы" + +#: src/components/importer/ImporterDrawer.tsx:111 +#: src/components/importer/ImporterDrawer.tsx:120 msgid "Close" -msgstr "" +msgstr "Закрыть" -#: src/components/importer/ImporterDrawer.tsx:115 +#: src/components/importer/ImporterDrawer.tsx:117 msgid "Unknown Status" -msgstr "" +msgstr "Неизвестный статус" -#: src/components/importer/ImporterDrawer.tsx:116 +#: src/components/importer/ImporterDrawer.tsx:118 msgid "Import session has unknown status" -msgstr "" +msgstr "Сессия импорта имеет неизвестный статус" -#: src/components/importer/ImporterDrawer.tsx:135 +#: src/components/importer/ImporterDrawer.tsx:137 msgid "Importing Data" -msgstr "" +msgstr "Импорт данных" #: src/components/importer/ImporterImportProgress.tsx:36 msgid "Importing Records" +msgstr "Импорт записей" + +#: src/components/importer/ImporterImportProgress.tsx:39 +#: src/tables/settings/ImportSessionTable.tsx:78 +msgid "Imported Rows" msgstr "" #: src/components/importer/ImporterImportProgress.tsx:39 -msgid "Imported rows" -msgstr "" +#~ msgid "Imported rows" +#~ msgstr "Imported rows" -#: src/components/items/ActionDropdown.tsx:121 +#: src/components/items/ActionDropdown.tsx:126 +msgid "Options" +msgstr "Опции" + +#: src/components/items/ActionDropdown.tsx:140 +#~ msgid "View Barcode" +#~ msgstr "View Barcode" + +#: src/components/items/ActionDropdown.tsx:162 +#: src/tables/InvenTreeTableHeader.tsx:159 +#: src/tables/InvenTreeTableHeader.tsx:160 msgid "Barcode Actions" msgstr "Действия со штрихкодом" -#: src/components/items/ActionDropdown.tsx:140 -msgid "View Barcode" -msgstr "Показать штрихкод" +#: src/components/items/ActionDropdown.tsx:162 +#~ msgid "Link custom barcode" +#~ msgstr "Link custom barcode" -#: src/components/items/ActionDropdown.tsx:147 +#: src/components/items/ActionDropdown.tsx:167 msgid "View" -msgstr "" +msgstr "Просмотр" -#: src/components/items/ActionDropdown.tsx:148 +#: src/components/items/ActionDropdown.tsx:169 msgid "View barcode" msgstr "Показать штрихкод" -#: src/components/items/ActionDropdown.tsx:161 +#: src/components/items/ActionDropdown.tsx:175 msgid "Link Barcode" msgstr "Привязать штрих-код" -#: src/components/items/ActionDropdown.tsx:162 -msgid "Link custom barcode" -msgstr "Привязать пользовательский штрих-код" +#: src/components/items/ActionDropdown.tsx:177 +msgid "Link a custom barcode to this item" +msgstr "Привязать индивидуальный штрих-код к этому предмету." -#: src/components/items/ActionDropdown.tsx:173 -#: src/forms/PurchaseOrderForms.tsx:426 +#: src/components/items/ActionDropdown.tsx:183 +#: src/components/items/QRCode.tsx:193 +#: src/forms/PurchaseOrderForms.tsx:464 msgid "Unlink Barcode" msgstr "Отвязать штрих-код" -#: src/components/items/ActionDropdown.tsx:174 +#: src/components/items/ActionDropdown.tsx:185 msgid "Unlink custom barcode" msgstr "Отвязать пользовательский штрих-код" -#: src/components/items/ActionDropdown.tsx:183 -#: src/tables/RowActions.tsx:33 +#: src/components/items/ActionDropdown.tsx:236 +#: src/tables/RowActions.tsx:39 msgid "Edit" msgstr "Изменить" -#: src/components/items/ActionDropdown.tsx:184 +#: src/components/items/ActionDropdown.tsx:237 msgid "Edit item" -msgstr "" +msgstr "Редактирование товара" -#: src/components/items/ActionDropdown.tsx:196 +#: src/components/items/ActionDropdown.tsx:249 msgid "Delete item" msgstr "Удалить элемент" -#: src/components/items/ActionDropdown.tsx:204 -#: src/components/items/ActionDropdown.tsx:205 +#: src/components/items/ActionDropdown.tsx:257 +#: src/components/items/ActionDropdown.tsx:258 msgid "Hold" -msgstr "" +msgstr "Удерживать" -#: src/components/items/ActionDropdown.tsx:227 -#: src/tables/RowActions.tsx:23 +#: src/components/items/ActionDropdown.tsx:280 +#: src/tables/RowActions.tsx:29 msgid "Duplicate" msgstr "Дублировать" -#: src/components/items/ActionDropdown.tsx:228 +#: src/components/items/ActionDropdown.tsx:281 msgid "Duplicate item" +msgstr "Дублировать элемент" + +#: src/components/items/BarcodeInput.tsx:23 +msgid "Scan barcode data here using barcode scanner" +msgstr "Сканировать данные штрих-кода, используя сканер штрих-кода" + +#: src/components/items/BarcodeInput.tsx:24 +#: src/tables/settings/BarcodeScanHistoryTable.tsx:65 +msgid "Barcode" +msgstr "Штрих-код" + +#: src/components/items/BarcodeInput.tsx:25 +msgid "Scan" msgstr "" #: src/components/items/DocTooltip.tsx:92 +#: src/components/items/GettingStartedCarousel.tsx:20 msgid "Read More" msgstr "Подробнее" -#: src/components/items/ErrorItem.tsx:5 -#: src/tables/InvenTreeTable.tsx:487 +#: src/components/items/ErrorItem.tsx:8 +#: src/tables/InvenTreeTable.tsx:473 msgid "Unknown error" msgstr "Неизвестная ошибка" -#: src/components/items/ErrorItem.tsx:10 -msgid "An error occurred:" -msgstr "Произошла ошибка:" +#: src/components/items/ErrorItem.tsx:13 +#~ msgid "An error occurred:" +#~ msgstr "An error occurred:" #: src/components/items/GettingStartedCarousel.tsx:27 -msgid "Read more" -msgstr "Подробнее" +#~ msgid "Read more" +#~ msgstr "Read more" #: src/components/items/InfoItem.tsx:27 msgid "None" -msgstr "" +msgstr "None" #: src/components/items/InvenTreeLogo.tsx:23 msgid "InvenTree Logo" @@ -951,7 +1290,7 @@ msgstr "Логотип InvenTree" #: src/components/items/OnlyStaff.tsx:9 #: src/components/modals/AboutInvenTreeModal.tsx:44 msgid "This information is only available for staff users" -msgstr "" +msgstr "Эта информация доступна только для сотрудников" #: src/components/items/Placeholder.tsx:14 msgid "This feature/button/site is a placeholder for a feature that is not implemented, only partial or intended for testing." @@ -959,35 +1298,56 @@ msgstr "Данная функция/кнопка/сайт является ус #: src/components/items/Placeholder.tsx:17 msgid "PLH" -msgstr "" +msgstr "PLH" #: src/components/items/Placeholder.tsx:31 msgid "This panel is a placeholder." msgstr "Эта панель является условной." -#: src/components/items/QRCode.tsx:87 -msgid "Low (7%)" -msgstr "" - -#: src/components/items/QRCode.tsx:88 -msgid "Medium (15%)" -msgstr "" - #: src/components/items/QRCode.tsx:89 -msgid "Quartile (25%)" -msgstr "" +msgid "Low (7%)" +msgstr "Низкий (7%)" #: src/components/items/QRCode.tsx:90 +msgid "Medium (15%)" +msgstr "Средний (15%)" + +#: src/components/items/QRCode.tsx:91 +msgid "Quartile (25%)" +msgstr "Четверть (25%)" + +#: src/components/items/QRCode.tsx:92 msgid "High (30%)" +msgstr "Высокий (30%)" + +#: src/components/items/QRCode.tsx:100 +msgid "Custom barcode" msgstr "" -#: src/components/items/QRCode.tsx:107 -msgid "Barcode Data:" -msgstr "" +#: src/components/items/QRCode.tsx:101 +msgid "A custom barcode is registered for this item. The shown code is not that custom barcode." +msgstr "Для этого товара зарегистрирован пользовательский штрих-код. Показанный код не является штрих-кодом." #: src/components/items/QRCode.tsx:118 +msgid "Barcode Data:" +msgstr "Данные штрих-кода:" + +#: src/components/items/QRCode.tsx:129 msgid "Select Error Correction Level" -msgstr "" +msgstr "Выберите уровень исправления ошибок" + +#: src/components/items/QRCode.tsx:171 +#: src/pages/part/PartDetail.tsx:239 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:187 +#: src/pages/sales/ReturnOrderDetail.tsx:157 +#: src/pages/sales/SalesOrderDetail.tsx:169 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:166 +msgid "Link" +msgstr "Ссылка" + +#: src/components/items/QRCode.tsx:190 +msgid "This will remove the link to the associated barcode" +msgstr "Это удалит ссылку на связанный штрих-код" #: src/components/modals/AboutInvenTreeModal.tsx:99 msgid "Version Information" @@ -995,7 +1355,7 @@ msgstr "Информация о версии" #: src/components/modals/AboutInvenTreeModal.tsx:103 msgid "Your InvenTree version status is" -msgstr "" +msgstr "Статус вашей версии InvenTree" #: src/components/modals/AboutInvenTreeModal.tsx:107 msgid "Development Version" @@ -1036,7 +1396,7 @@ msgstr "Версия Python" #: src/components/modals/AboutInvenTreeModal.tsx:152 msgid "Django Version" -msgstr "" +msgstr "Версия Django" #: src/components/modals/AboutInvenTreeModal.tsx:162 msgid "Links" @@ -1044,118 +1404,77 @@ msgstr "Ссылки" #: src/components/modals/AboutInvenTreeModal.tsx:168 msgid "InvenTree Documentation" -msgstr "" +msgstr "Документация InvenTree" #: src/components/modals/AboutInvenTreeModal.tsx:169 msgid "View Code on GitHub" -msgstr "" +msgstr "Посмотреть код на GitHub" #: src/components/modals/AboutInvenTreeModal.tsx:170 msgid "Credits" -msgstr "" +msgstr "Авторы" #: src/components/modals/AboutInvenTreeModal.tsx:171 msgid "Mobile App" -msgstr "" +msgstr "Мобильное Приложение" #: src/components/modals/AboutInvenTreeModal.tsx:172 msgid "Submit Bug Report" -msgstr "" +msgstr "Сообщить об ошибке" -#: src/components/modals/AboutInvenTreeModal.tsx:183 +#: src/components/modals/AboutInvenTreeModal.tsx:181 msgid "Copy version information" -msgstr "" +msgstr "Копировать информацию о версии" -#: src/components/modals/AboutInvenTreeModal.tsx:192 +#: src/components/modals/AboutInvenTreeModal.tsx:189 #: src/components/modals/ServerInfoModal.tsx:147 msgid "Dismiss" -msgstr "" +msgstr "Отменить" #: src/components/modals/LicenseModal.tsx:39 msgid "No license text available" -msgstr "" +msgstr "Нет доступного текста лицензии" #: src/components/modals/LicenseModal.tsx:46 msgid "No Information provided - this is likely a server issue" -msgstr "" +msgstr "Нет информации - это, скорее всего, проблема с сервером" #: src/components/modals/LicenseModal.tsx:71 msgid "Loading license information" -msgstr "" +msgstr "Загрузка информации о лицензии" #: src/components/modals/LicenseModal.tsx:77 msgid "Failed to fetch license information" -msgstr "" +msgstr "Не удалось получить информацию о лицензии" #: src/components/modals/LicenseModal.tsx:85 msgid "{key} Packages" -msgstr "" +msgstr "{key} Packages" -#: src/components/modals/QrCodeModal.tsx:72 +#: src/components/modals/QrCodeModal.tsx:24 msgid "Unknown response" msgstr "Неизвестный ответ" -#: src/components/modals/QrCodeModal.tsx:102 -#: src/pages/Index/Scan.tsx:636 -msgid "Error while getting camera" -msgstr "Ошибка при получении камеры" - -#: src/components/modals/QrCodeModal.tsx:125 -#: src/pages/Index/Scan.tsx:659 -msgid "Error while scanning" -msgstr "Ошибка при сканировании" - -#: src/components/modals/QrCodeModal.tsx:139 -#: src/pages/Index/Scan.tsx:673 -msgid "Error while stopping" -msgstr "Ошибка при остановке" - -#: src/components/modals/QrCodeModal.tsx:154 -#: src/defaults/menuItems.tsx:21 -#: src/pages/Index/Scan.tsx:746 -msgid "Scanning" -msgstr "Сканирование" - -#: src/components/modals/QrCodeModal.tsx:154 -#: src/pages/Index/Scan.tsx:746 -msgid "Not scanning" -msgstr "Не сканировать" - -#: src/components/modals/QrCodeModal.tsx:159 -#: src/pages/Index/Scan.tsx:752 -msgid "Select Camera" -msgstr "Выбрать камеру" - -#: src/components/modals/QrCodeModal.tsx:169 -#: src/pages/Index/Scan.tsx:737 -msgid "Start scanning" -msgstr "Начать сканирование" - -#: src/components/modals/QrCodeModal.tsx:176 -#: src/pages/Index/Scan.tsx:729 -msgid "Stop scanning" -msgstr "Остановить сканирование" - -#: src/components/modals/QrCodeModal.tsx:181 +#: src/components/modals/QrCodeModal.tsx:39 msgid "No scans yet!" msgstr "Сканирования пока не было!" -#: src/components/modals/QrCodeModal.tsx:201 +#: src/components/modals/QrCodeModal.tsx:57 msgid "Close modal" msgstr "Закрыть модальное окно" #: src/components/modals/ServerInfoModal.tsx:26 -#: src/pages/Index/Settings/SystemSettings.tsx:38 +#: src/pages/Index/Settings/SystemSettings.tsx:37 msgid "Server" -msgstr "" +msgstr "Сервер" #: src/components/modals/ServerInfoModal.tsx:32 msgid "Instance Name" -msgstr "" +msgstr "Имя экземпляра" #: src/components/modals/ServerInfoModal.tsx:38 msgid "Database" -msgstr "" +msgstr "База данных" #: src/components/modals/ServerInfoModal.tsx:38 #~ msgid "Bebug Mode" @@ -1163,11 +1482,11 @@ msgstr "" #: src/components/modals/ServerInfoModal.tsx:47 msgid "Debug Mode" -msgstr "" +msgstr "Режим отладки" #: src/components/modals/ServerInfoModal.tsx:50 msgid "Server is running in debug mode" -msgstr "" +msgstr "Сервер запущен в режиме отладки" #: src/components/modals/ServerInfoModal.tsx:57 msgid "Docker Mode" @@ -1183,11 +1502,11 @@ msgstr "Поддержка плагина" #: src/components/modals/ServerInfoModal.tsx:71 msgid "Plugin support enabled" -msgstr "" +msgstr "Поддержка плагинов включена" #: src/components/modals/ServerInfoModal.tsx:73 msgid "Plugin support disabled" -msgstr "" +msgstr "Поддержка плагинов отключена" #: src/components/modals/ServerInfoModal.tsx:80 msgid "Server status" @@ -1206,6 +1525,7 @@ msgid "Background Worker" msgstr "Фоновый процесс" #: src/components/modals/ServerInfoModal.tsx:101 +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:29 msgid "Background worker not running" msgstr "Фоновый процесс не запущен" @@ -1218,8 +1538,8 @@ msgid "Email settings not configured" msgstr "Параметры электронной почты не настроены" #: src/components/modals/ServerInfoModal.tsx:121 -#: src/tables/plugin/PluginListTable.tsx:144 -#: src/tables/plugin/PluginListTable.tsx:294 +#: src/components/plugins/PluginDrawer.tsx:89 +#: src/tables/plugin/PluginListTable.tsx:116 msgid "Version" msgstr "Версия" @@ -1227,7 +1547,7 @@ msgstr "Версия" msgid "Server Version" msgstr "Версия сервера" -#: src/components/nav/Layout.tsx:73 +#: src/components/nav/Layout.tsx:80 msgid "Nothing found..." msgstr "Ничего не найдено..." @@ -1237,20 +1557,28 @@ msgstr "Ничего не найдено..." #~ msgstr "Profile" #: src/components/nav/MainMenu.tsx:52 +#: src/components/nav/NavigationDrawer.tsx:178 #: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:28 msgid "Settings" msgstr "Настройки" +#: src/components/nav/MainMenu.tsx:59 +#: src/pages/Index/Settings/UserSettings.tsx:152 +msgid "Account Settings" +msgstr "Настройки учетной записи" + #: src/components/nav/MainMenu.tsx:59 #: src/defaults/menuItems.tsx:15 -msgid "Account settings" -msgstr "Настройки аккаунта" +#~ msgid "Account settings" +#~ msgstr "Account settings" #: src/components/nav/MainMenu.tsx:67 -#: src/defaults/menuItems.tsx:58 -#: src/pages/Index/Settings/SystemSettings.tsx:315 +#: src/components/nav/NavigationDrawer.tsx:141 +#: src/components/nav/SettingsHeader.tsx:49 +#: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:37 +#: src/pages/Index/Settings/SystemSettings.tsx:310 msgid "System Settings" -msgstr "" +msgstr "Системные настройки" #: src/components/nav/MainMenu.tsx:68 #~ msgid "Current language {locale}" @@ -1260,473 +1588,744 @@ msgstr "" #~ msgid "Switch to pseudo language" #~ msgstr "Switch to pseudo language" -#: src/components/nav/MainMenu.tsx:77 -msgid "Change Color Mode" -msgstr "" - #: src/components/nav/MainMenu.tsx:86 -#: src/defaults/actions.tsx:71 -#: src/defaults/menuItems.tsx:63 -#: src/pages/Index/Settings/AdminCenter/Index.tsx:221 +#: src/components/nav/NavigationDrawer.tsx:148 +#: src/components/nav/SettingsHeader.tsx:50 +#: src/defaults/actions.tsx:63 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:251 msgid "Admin Center" -msgstr "" +msgstr "Админ центр" #: src/components/nav/MainMenu.tsx:96 msgid "Logout" msgstr "Выход" -#: src/components/nav/NavHoverMenu.tsx:65 -#: src/defaults/actions.tsx:60 -msgid "Open Navigation" -msgstr "Открыть панель навигации" - #: src/components/nav/NavHoverMenu.tsx:84 -msgid "View all" -msgstr "Показать все" +#~ msgid "View all" +#~ msgstr "View all" #: src/components/nav/NavHoverMenu.tsx:100 #: src/components/nav/NavHoverMenu.tsx:110 -msgid "Get started" -msgstr "Начало работы" +#~ msgid "Get started" +#~ msgstr "Get started" #: src/components/nav/NavHoverMenu.tsx:103 -msgid "Overview over high-level objects, functions and possible usecases." -msgstr "" - -#: src/components/nav/NavigationDrawer.tsx:57 -msgid "Navigation" -msgstr "Панель навигации" +#~ msgid "Overview over high-level objects, functions and possible usecases." +#~ msgstr "Overview over high-level objects, functions and possible usecases." #: src/components/nav/NavigationDrawer.tsx:60 -msgid "Pages" -msgstr "Страницы" +#~ msgid "Pages" +#~ msgstr "Pages" -#: src/components/nav/NavigationDrawer.tsx:65 -#: src/pages/Index/Settings/AdminCenter/Index.tsx:176 -#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:41 -msgid "Plugins" -msgstr "Плагины" +#: src/components/nav/NavigationDrawer.tsx:77 +#: src/components/render/ModelType.tsx:31 +#: src/defaults/links.tsx:10 +#: src/pages/Index/Settings/SystemSettings.tsx:172 +#: src/pages/part/CategoryDetail.tsx:125 +#: src/pages/part/CategoryDetail.tsx:249 +#: src/pages/part/CategoryDetail.tsx:279 +#: src/pages/part/PartDetail.tsx:856 +msgid "Parts" +msgstr "Детали" -#: src/components/nav/NavigationDrawer.tsx:75 -#: src/defaults/actions.tsx:32 -msgid "Documentation" -msgstr "Документация" +#: src/components/nav/NavigationDrawer.tsx:84 +#: src/components/render/Part.tsx:30 +#: src/defaults/links.tsx:11 +#: src/pages/Index/Settings/SystemSettings.tsx:205 +#: src/pages/part/PartDetail.tsx:593 +#: src/pages/stock/LocationDetail.tsx:352 +#: src/pages/stock/StockDetail.tsx:528 +#: src/tables/stock/StockItemTable.tsx:69 +msgid "Stock" +msgstr "Остатки" -#: src/components/nav/NavigationDrawer.tsx:78 -msgid "About" -msgstr "О проекте" +#: src/components/nav/NavigationDrawer.tsx:91 +#: src/defaults/links.tsx:13 +#: src/pages/build/BuildDetail.tsx:530 +#: src/pages/build/BuildIndex.tsx:36 +msgid "Manufacturing" +msgstr "" -#: src/components/nav/NotificationDrawer.tsx:92 -#: src/pages/Index/Settings/SystemSettings.tsx:109 -#: src/pages/Index/Settings/UserSettings.tsx:126 +#: src/components/nav/NavigationDrawer.tsx:98 +#: src/defaults/links.tsx:18 +#: src/pages/company/ManufacturerDetail.tsx:9 +#: src/pages/company/ManufacturerPartDetail.tsx:258 +#: src/pages/company/SupplierDetail.tsx:9 +#: src/pages/company/SupplierPartDetail.tsx:336 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:480 +#: src/pages/purchasing/PurchasingIndex.tsx:60 +msgid "Purchasing" +msgstr "Покупка" + +#: src/components/nav/NavigationDrawer.tsx:105 +#: src/defaults/links.tsx:22 +#: src/pages/company/CustomerDetail.tsx:9 +#: src/pages/sales/ReturnOrderDetail.tsx:469 +#: src/pages/sales/SalesIndex.tsx:53 +#: src/pages/sales/SalesOrderDetail.tsx:520 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:343 +msgid "Sales" +msgstr "Продажи" + +#: src/components/nav/NavigationDrawer.tsx:129 +#: src/components/nav/NotificationDrawer.tsx:178 +#: src/pages/Index/Settings/SystemSettings.tsx:110 +#: src/pages/Index/Settings/UserSettings.tsx:127 #: src/pages/Notifications.tsx:65 #: src/pages/Notifications.tsx:151 msgid "Notifications" msgstr "Уведомления" -#: src/components/nav/NotificationDrawer.tsx:94 +#: src/components/nav/NavigationDrawer.tsx:135 +#: src/components/nav/SettingsHeader.tsx:48 +msgid "User Settings" +msgstr "" + +#: src/components/nav/NavigationDrawer.tsx:173 +msgid "Navigation" +msgstr "Панель навигации" + +#: src/components/nav/NavigationDrawer.tsx:183 +#: src/forms/PurchaseOrderForms.tsx:689 +#: src/forms/StockForms.tsx:614 +#: src/forms/StockForms.tsx:651 +#: src/forms/StockForms.tsx:677 +#: src/forms/StockForms.tsx:705 +#: src/forms/StockForms.tsx:736 +#: src/forms/StockForms.tsx:771 +#: src/forms/StockForms.tsx:813 +#: src/forms/StockForms.tsx:851 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:413 +#: src/tables/RowActions.tsx:129 +#: src/tables/build/BuildLineTable.tsx:101 +msgid "Actions" +msgstr "Действия" + +#: src/components/nav/NavigationDrawer.tsx:191 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:205 +#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:44 +msgid "Plugins" +msgstr "Плагины" + +#: src/components/nav/NavigationDrawer.tsx:204 +#: src/defaults/actions.tsx:24 +msgid "Documentation" +msgstr "Документация" + +#: src/components/nav/NavigationDrawer.tsx:210 +msgid "About" +msgstr "О проекте" + +#: src/components/nav/NotificationDrawer.tsx:180 msgid "Mark all as read" -msgstr "" +msgstr "Пометить как прочитанное" -#: src/components/nav/NotificationDrawer.tsx:104 +#: src/components/nav/NotificationDrawer.tsx:190 msgid "View all notifications" -msgstr "" +msgstr "Просмотреть все уведомления" -#: src/components/nav/NotificationDrawer.tsx:123 +#: src/components/nav/NotificationDrawer.tsx:210 msgid "You have no unread notifications." msgstr "У вас нет непрочитанных уведомлений." -#: src/components/nav/NotificationDrawer.tsx:139 -#: src/components/nav/NotificationDrawer.tsx:145 -#: src/tables/notifications/NotificationsTable.tsx:36 -msgid "Notification" -msgstr "Уведомление" - -#: src/components/nav/NotificationDrawer.tsx:168 -#: src/pages/Notifications.tsx:73 -msgid "Mark as read" -msgstr "Пометить как прочитанное" - -#: src/components/nav/SearchDrawer.tsx:78 +#: src/components/nav/SearchDrawer.tsx:85 msgid "results" msgstr "результаты" -#: src/components/nav/SearchDrawer.tsx:370 +#: src/components/nav/SearchDrawer.tsx:380 msgid "Enter search text" msgstr "Введите слова для поиска" -#: src/components/nav/SearchDrawer.tsx:397 +#: src/components/nav/SearchDrawer.tsx:391 +msgid "Refresh search results" +msgstr "" + +#: src/components/nav/SearchDrawer.tsx:402 +#: src/components/nav/SearchDrawer.tsx:409 msgid "Search Options" msgstr "Параметры поиска" -#: src/components/nav/SearchDrawer.tsx:400 +#: src/components/nav/SearchDrawer.tsx:412 msgid "Regex search" msgstr "Поиск по выражению" -#: src/components/nav/SearchDrawer.tsx:410 +#: src/components/nav/SearchDrawer.tsx:421 msgid "Whole word search" -msgstr "" +msgstr "Поиск полного слова" -#: src/components/nav/SearchDrawer.tsx:451 +#: src/components/nav/SearchDrawer.tsx:461 msgid "An error occurred during search query" msgstr "Произошла ошибка во время поиска запроса" #: src/components/nav/SearchDrawer.tsx:462 -msgid "No results" -msgstr "Нет результатов" +#~ msgid "No results" +#~ msgstr "No results" -#: src/components/nav/SearchDrawer.tsx:465 +#: src/components/nav/SearchDrawer.tsx:472 +#: src/tables/part/PartTestTemplateTable.tsx:76 +msgid "No Results" +msgstr "" + +#: src/components/nav/SearchDrawer.tsx:475 msgid "No results available for search query" msgstr "Нет доступных результатов для поискового запроса" -#: src/components/render/Instance.tsx:217 +#: src/components/panels/AttachmentPanel.tsx:18 +msgid "Attachments" +msgstr "Вложения" + +#: src/components/panels/NotesPanel.tsx:24 +#: src/tables/build/BuildOrderTestTable.tsx:143 +#: src/tables/stock/StockTrackingTable.tsx:204 +msgid "Notes" +msgstr "Заметки" + +#: src/components/plugins/PluginDrawer.tsx:47 +msgid "Plugin Inactive" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:50 +msgid "Plugin is not active" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:60 +msgid "Plugin Information" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:74 +#: src/pages/build/BuildDetail.tsx:116 +#: src/pages/company/CompanyDetail.tsx:89 +#: src/pages/company/ManufacturerPartDetail.tsx:89 +#: src/pages/company/ManufacturerPartDetail.tsx:116 +#: src/pages/company/SupplierPartDetail.tsx:140 +#: src/pages/part/CategoryDetail.tsx:101 +#: src/pages/part/PartDetail.tsx:178 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:136 +#: src/pages/sales/ReturnOrderDetail.tsx:107 +#: src/pages/sales/SalesOrderDetail.tsx:116 +#: src/pages/stock/LocationDetail.tsx:103 +#: src/tables/ColumnRenderers.tsx:92 +#: src/tables/bom/UsedInTable.tsx:44 +#: src/tables/build/BuildAllocatedStockTable.tsx:83 +#: src/tables/build/BuildLineTable.tsx:329 +#: src/tables/machine/MachineTypeTable.tsx:74 +#: src/tables/machine/MachineTypeTable.tsx:129 +#: src/tables/machine/MachineTypeTable.tsx:240 +#: src/tables/machine/MachineTypeTable.tsx:344 +#: src/tables/part/RelatedPartTable.tsx:66 +#: src/tables/plugin/PluginListTable.tsx:99 +#: src/tables/sales/SalesOrderAllocationTable.tsx:87 +#: src/tables/sales/SalesOrderLineItemTable.tsx:75 +#: src/tables/stock/LocationTypesTable.tsx:74 +msgid "Description" +msgstr "Описание" + +#: src/components/plugins/PluginDrawer.tsx:79 +msgid "Author" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:84 +#: src/pages/part/PartSchedulingDetail.tsx:277 +#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:40 +#: src/pages/part/pricing/SaleHistoryPanel.tsx:38 +#: src/tables/ColumnRenderers.tsx:215 +#: src/tables/build/BuildOrderTestTable.tsx:151 +#: src/tables/settings/StocktakeReportTable.tsx:40 +msgid "Date" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:94 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:398 +#: src/pages/part/PartDetail.tsx:331 +#: src/tables/bom/UsedInTable.tsx:84 +#: src/tables/company/CompanyTable.tsx:62 +#: src/tables/company/CompanyTable.tsx:96 +#: src/tables/machine/MachineListTable.tsx:333 +#: src/tables/machine/MachineListTable.tsx:605 +#: src/tables/part/ParametricPartTable.tsx:223 +#: src/tables/part/PartTable.tsx:178 +#: src/tables/part/PartVariantTable.tsx:15 +#: src/tables/plugin/PluginListTable.tsx:94 +#: src/tables/plugin/PluginListTable.tsx:401 +#: src/tables/purchasing/SupplierPartTable.tsx:100 +#: src/tables/purchasing/SupplierPartTable.tsx:190 +#: src/tables/settings/UserTable.tsx:283 +#: src/tables/stock/StockItemTable.tsx:293 +msgid "Active" +msgstr "Активно" + +#: src/components/plugins/PluginDrawer.tsx:106 +msgid "Package Name" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:112 +msgid "Installation Path" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:117 +#: src/tables/machine/MachineTypeTable.tsx:152 +#: src/tables/machine/MachineTypeTable.tsx:276 +#: src/tables/plugin/PluginListTable.tsx:406 +msgid "Builtin" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:122 +msgid "Package" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:134 +#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:53 +msgid "Plugin Settings" +msgstr "Настройки плагинов" + +#: src/components/plugins/PluginDrawer.tsx:146 +#: src/components/render/ModelType.tsx:276 +msgid "Plugin Configuration" +msgstr "Настройка плагина" + +#: src/components/plugins/PluginPanel.tsx:87 +#~ msgid "Error occurred while rendering plugin content" +#~ msgstr "Error occurred while rendering plugin content" + +#: src/components/plugins/PluginPanel.tsx:91 +#~ msgid "Plugin did not provide panel rendering function" +#~ msgstr "Plugin did not provide panel rendering function" + +#: src/components/plugins/PluginPanel.tsx:103 +#~ msgid "No content provided for this plugin" +#~ msgstr "No content provided for this plugin" + +#: src/components/plugins/PluginPanel.tsx:116 +#: src/components/plugins/PluginSettingsPanel.tsx:76 +#~ msgid "Error Loading Plugin" +#~ msgstr "Error Loading Plugin" + +#: src/components/plugins/PluginSettingsPanel.tsx:51 +#~ msgid "Error occurred while rendering plugin settings" +#~ msgstr "Error occurred while rendering plugin settings" + +#: src/components/plugins/PluginSettingsPanel.tsx:55 +#~ msgid "Plugin did not provide settings rendering function" +#~ msgstr "Plugin did not provide settings rendering function" + +#: src/components/plugins/PluginUIFeature.tsx:100 +msgid "Error occurred while rendering the template editor." +msgstr "" + +#: src/components/plugins/PluginUIFeature.tsx:111 +msgid "Error Loading Plugin Editor" +msgstr "" + +#: src/components/plugins/PluginUIFeature.tsx:147 +msgid "Error occurred while rendering the template preview." +msgstr "" + +#: src/components/plugins/PluginUIFeature.tsx:158 +msgid "Error Loading Plugin Preview" +msgstr "" + +#: src/components/plugins/RemoteComponent.tsx:70 +msgid "Invalid source or function name" +msgstr "" + +#: src/components/plugins/RemoteComponent.tsx:91 +msgid "Error Loading Content" +msgstr "" + +#: src/components/plugins/RemoteComponent.tsx:95 +msgid "Error occurred while loading plugin content" +msgstr "" + +#: src/components/render/Instance.tsx:224 msgid "Unknown model: {model}" msgstr "Неизвестная модель: {model}" -#: src/components/render/ModelType.tsx:22 -#: src/forms/BuildForms.tsx:213 -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/forms/StockForms.tsx:499 -#: src/forms/StockForms.tsx:533 -#: src/forms/StockForms.tsx:562 -#: src/forms/StockForms.tsx:590 -#: src/forms/StockForms.tsx:621 -#: src/forms/StockForms.tsx:656 -#: src/forms/StockForms.tsx:698 -#: src/forms/StockForms.tsx:734 -#: src/pages/build/BuildDetail.tsx:95 -#: src/pages/part/PartDetail.tsx:1073 -#: src/tables/build/BuildAllocatedStockTable.tsx:82 +#: src/components/render/ModelType.tsx:30 +#: src/forms/BuildForms.tsx:269 +#: src/forms/BuildForms.tsx:337 +#: src/forms/BuildForms.tsx:385 +#: src/forms/BuildForms.tsx:515 +#: src/forms/PurchaseOrderForms.tsx:689 +#: src/forms/ReturnOrderForms.tsx:190 +#: src/forms/SalesOrderForms.tsx:248 +#: src/forms/StockForms.tsx:261 +#: src/forms/StockForms.tsx:614 +#: src/forms/StockForms.tsx:651 +#: src/forms/StockForms.tsx:677 +#: src/forms/StockForms.tsx:705 +#: src/forms/StockForms.tsx:736 +#: src/forms/StockForms.tsx:771 +#: src/forms/StockForms.tsx:813 +#: src/forms/StockForms.tsx:851 +#: src/pages/build/BuildDetail.tsx:90 +#: src/pages/part/PartDetail.tsx:1094 +#: src/tables/build/BuildAllocatedStockTable.tsx:95 +#: src/tables/build/BuildLineTable.tsx:72 #: src/tables/part/PartTable.tsx:28 -#: src/tables/part/RelatedPartTable.tsx:45 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:88 -#: src/tables/sales/SalesOrderAllocationTable.tsx:68 -#: src/tables/stock/StockTrackingTable.tsx:74 +#: src/tables/part/RelatedPartTable.tsx:47 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:130 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:100 +#: src/tables/sales/SalesOrderAllocationTable.tsx:99 +#: src/tables/stock/StockTrackingTable.tsx:78 msgid "Part" -msgstr "" +msgstr "Товар" -#: src/components/render/ModelType.tsx:23 -#: src/defaults/links.tsx:29 -#: src/defaults/menuItems.tsx:33 -#: src/pages/Index/Settings/SystemSettings.tsx:173 -#: src/pages/part/CategoryDetail.tsx:119 -#: src/pages/part/CategoryDetail.tsx:244 -#: src/pages/part/CategoryDetail.tsx:274 -#: src/pages/part/PartDetail.tsx:827 -msgid "Parts" -msgstr "Детали" - -#: src/components/render/ModelType.tsx:31 +#: src/components/render/ModelType.tsx:40 msgid "Part Parameter Template" -msgstr "" +msgstr "Шаблон параметра товара" -#: src/components/render/ModelType.tsx:32 +#: src/components/render/ModelType.tsx:41 msgid "Part Parameter Templates" -msgstr "" +msgstr "Шаблон параметра товаров" -#: src/components/render/ModelType.tsx:38 +#: src/components/render/ModelType.tsx:48 msgid "Part Test Template" msgstr "" -#: src/components/render/ModelType.tsx:39 +#: src/components/render/ModelType.tsx:49 msgid "Part Test Templates" -msgstr "" +msgstr "Отгрузка заказов на продажу" -#: src/components/render/ModelType.tsx:45 -#: src/pages/company/SupplierPartDetail.tsx:203 -#: src/pages/company/SupplierPartDetail.tsx:375 -#: src/pages/stock/StockDetail.tsx:173 -#: src/tables/build/BuildAllocatedStockTable.tsx:131 +#: src/components/render/ModelType.tsx:56 +#: src/pages/company/SupplierPartDetail.tsx:364 +#: src/pages/stock/StockDetail.tsx:194 +#: src/tables/build/BuildAllocatedStockTable.tsx:152 #: src/tables/part/PartPurchaseOrdersTable.tsx:49 -#: src/tables/purchasing/SupplierPartTable.tsx:68 +#: src/tables/purchasing/SupplierPartTable.tsx:70 +#: src/tables/stock/StockItemTable.tsx:229 msgid "Supplier Part" -msgstr "" +msgstr "Товар поставщика" -#: src/components/render/ModelType.tsx:46 +#: src/components/render/ModelType.tsx:57 msgid "Supplier Parts" msgstr "Детали поставщиков" -#: src/components/render/ModelType.tsx:54 -#: src/pages/company/ManufacturerPartDetail.tsx:132 +#: src/components/render/ModelType.tsx:66 #: src/tables/part/PartPurchaseOrdersTable.tsx:55 +#: src/tables/stock/StockItemTable.tsx:234 msgid "Manufacturer Part" -msgstr "" +msgstr "Товар производителя" -#: src/components/render/ModelType.tsx:55 +#: src/components/render/ModelType.tsx:67 msgid "Manufacturer Parts" msgstr "Детали производителей" -#: src/components/render/ModelType.tsx:63 -#: src/pages/part/CategoryDetail.tsx:305 +#: src/components/render/ModelType.tsx:76 +#: src/pages/part/CategoryDetail.tsx:310 msgid "Part Category" msgstr "Категория детали" -#: src/components/render/ModelType.tsx:64 -#: src/pages/part/CategoryDetail.tsx:258 -#: src/pages/part/CategoryDetail.tsx:296 -#: src/pages/part/PartDetail.tsx:1063 +#: src/components/render/ModelType.tsx:77 +#: src/pages/part/CategoryDetail.tsx:263 +#: src/pages/part/CategoryDetail.tsx:301 +#: src/pages/part/PartDetail.tsx:1084 msgid "Part Categories" msgstr "Категории деталей" -#: src/components/render/ModelType.tsx:72 -#: src/pages/stock/StockDetail.tsx:624 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:94 -#: src/tables/stock/StockTrackingTable.tsx:45 +#: src/components/render/ModelType.tsx:86 +#: src/forms/BuildForms.tsx:337 +#: src/forms/BuildForms.tsx:385 +#: src/forms/BuildForms.tsx:515 +#: src/forms/SalesOrderForms.tsx:248 +#: src/pages/stock/StockDetail.tsx:839 +#: src/tables/stock/StockTrackingTable.tsx:49 msgid "Stock Item" msgstr "На складе" -#: src/components/render/ModelType.tsx:73 +#: src/components/render/ModelType.tsx:87 #: src/pages/company/CompanyDetail.tsx:203 -#: src/pages/stock/LocationDetail.tsx:128 -#: src/pages/stock/LocationDetail.tsx:181 -#: src/pages/stock/LocationDetail.tsx:395 +#: src/pages/part/PartStocktakeDetail.tsx:113 +#: src/pages/stock/LocationDetail.tsx:122 +#: src/pages/stock/LocationDetail.tsx:175 +#: src/pages/stock/LocationDetail.tsx:380 msgid "Stock Items" msgstr "Складские позиции" -#: src/components/render/ModelType.tsx:81 +#: src/components/render/ModelType.tsx:96 msgid "Stock Location" -msgstr "" +msgstr "Место хранения" -#: src/components/render/ModelType.tsx:82 -#: src/pages/stock/LocationDetail.tsx:195 -#: src/pages/stock/LocationDetail.tsx:387 -#: src/pages/stock/StockDetail.tsx:616 +#: src/components/render/ModelType.tsx:97 +#: src/pages/stock/LocationDetail.tsx:189 +#: src/pages/stock/LocationDetail.tsx:372 +#: src/pages/stock/StockDetail.tsx:831 msgid "Stock Locations" msgstr "Места хранения" -#: src/components/render/ModelType.tsx:90 +#: src/components/render/ModelType.tsx:106 msgid "Stock Location Type" -msgstr "" +msgstr "Тип склада" -#: src/components/render/ModelType.tsx:91 +#: src/components/render/ModelType.tsx:107 msgid "Stock Location Types" -msgstr "" +msgstr "Типы складов" -#: src/components/render/ModelType.tsx:95 +#: src/components/render/ModelType.tsx:112 +#: src/pages/part/PartDetail.tsx:712 msgid "Stock History" -msgstr "" +msgstr "История склада" -#: src/components/render/ModelType.tsx:96 +#: src/components/render/ModelType.tsx:113 msgid "Stock Histories" -msgstr "" +msgstr "История склада" -#: src/components/render/ModelType.tsx:100 -#: src/defaults/links.tsx:31 -#: src/defaults/menuItems.tsx:43 +#: src/components/render/ModelType.tsx:118 msgid "Build" msgstr "Сборка" -#: src/components/render/ModelType.tsx:101 +#: src/components/render/ModelType.tsx:119 msgid "Builds" -msgstr "" +msgstr "Производство" -#: src/components/render/ModelType.tsx:109 +#: src/components/render/ModelType.tsx:128 msgid "Build Line" -msgstr "" +msgstr "Линия производства" -#: src/components/render/ModelType.tsx:110 +#: src/components/render/ModelType.tsx:129 msgid "Build Lines" -msgstr "" +msgstr "Линия производства" -#: src/components/render/ModelType.tsx:117 +#: src/components/render/ModelType.tsx:137 msgid "Build Item" -msgstr "" +msgstr "Товар производства" -#: src/components/render/ModelType.tsx:118 +#: src/components/render/ModelType.tsx:138 msgid "Build Items" -msgstr "" +msgstr "Товары производства" -#: src/components/render/ModelType.tsx:122 -#: src/pages/company/CompanyDetail.tsx:339 +#: src/components/render/ModelType.tsx:143 +#: src/pages/company/CompanyDetail.tsx:321 msgid "Company" -msgstr "" +msgstr "Компания" -#: src/components/render/ModelType.tsx:123 +#: src/components/render/ModelType.tsx:144 msgid "Companies" msgstr "Компании" -#: src/components/render/ModelType.tsx:131 +#: src/components/render/ModelType.tsx:153 +#: src/pages/build/BuildDetail.tsx:195 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:204 +#: src/pages/sales/ReturnOrderDetail.tsx:174 +#: src/pages/sales/SalesOrderDetail.tsx:186 #: src/tables/TableHoverCard.tsx:81 -#: src/tables/build/BuildOrderTable.tsx:140 -#: src/tables/purchasing/PurchaseOrderTable.tsx:64 -#: src/tables/sales/ReturnOrderTable.tsx:55 -#: src/tables/sales/SalesOrderTable.tsx:62 +#: src/tables/build/BuildOrderTable.tsx:135 +#: src/tables/purchasing/PurchaseOrderTable.tsx:69 +#: src/tables/sales/ReturnOrderTable.tsx:67 +#: src/tables/sales/SalesOrderTable.tsx:67 msgid "Project Code" -msgstr "" +msgstr "Код проекта" -#: src/components/render/ModelType.tsx:132 -#: src/pages/Index/Settings/AdminCenter/Index.tsx:128 +#: src/components/render/ModelType.tsx:154 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:145 msgid "Project Codes" -msgstr "" +msgstr "Коды проекта" -#: src/components/render/ModelType.tsx:138 +#: src/components/render/ModelType.tsx:161 #: src/pages/part/pricing/PurchaseHistoryPanel.tsx:32 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:480 -#: src/tables/part/PartPurchaseOrdersTable.tsx:32 -#: src/tables/stock/StockTrackingTable.tsx:107 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:477 +#: src/pages/stock/StockDetail.tsx:253 +#: src/tables/part/PartPurchaseOrdersTable.tsx:31 +#: src/tables/stock/StockItemTable.tsx:222 +#: src/tables/stock/StockTrackingTable.tsx:111 msgid "Purchase Order" -msgstr "" +msgstr "Заказ на закупку" -#: src/components/render/ModelType.tsx:139 -#: src/pages/Index/Settings/SystemSettings.tsx:255 +#: src/components/render/ModelType.tsx:162 +#: src/pages/Index/Settings/SystemSettings.tsx:249 #: src/pages/company/CompanyDetail.tsx:196 -#: src/pages/company/SupplierPartDetail.tsx:237 -#: src/pages/part/PartDetail.tsx:662 +#: src/pages/company/SupplierPartDetail.tsx:249 +#: src/pages/part/PartDetail.tsx:683 #: src/pages/purchasing/PurchasingIndex.tsx:25 msgid "Purchase Orders" msgstr "Заказы на закупку" -#: src/components/render/ModelType.tsx:147 +#: src/components/render/ModelType.tsx:171 msgid "Purchase Order Line" msgstr "" -#: src/components/render/ModelType.tsx:148 +#: src/components/render/ModelType.tsx:172 msgid "Purchase Order Lines" msgstr "" -#: src/components/render/ModelType.tsx:152 -#: src/pages/build/BuildDetail.tsx:153 -#: src/pages/sales/SalesOrderDetail.tsx:520 -#: src/pages/stock/StockDetail.tsx:221 -#: src/tables/sales/SalesOrderAllocationTable.tsx:50 -#: src/tables/stock/StockTrackingTable.tsx:118 +#: src/components/render/ModelType.tsx:177 +#: src/pages/build/BuildDetail.tsx:148 +#: src/pages/part/pricing/SaleHistoryPanel.tsx:24 +#: src/pages/sales/SalesOrderDetail.tsx:515 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:92 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:341 +#: src/pages/stock/StockDetail.tsx:262 +#: src/tables/sales/SalesOrderAllocationTable.tsx:80 +#: src/tables/stock/StockTrackingTable.tsx:122 msgid "Sales Order" -msgstr "" +msgstr "Заказ на продажу" -#: src/components/render/ModelType.tsx:153 -#: src/pages/Index/Settings/SystemSettings.tsx:270 +#: src/components/render/ModelType.tsx:178 +#: src/pages/Index/Settings/SystemSettings.tsx:264 #: src/pages/company/CompanyDetail.tsx:216 -#: src/pages/part/PartDetail.tsx:669 +#: src/pages/part/PartDetail.tsx:695 #: src/pages/sales/SalesIndex.tsx:26 msgid "Sales Orders" msgstr "Заказы на продажу" -#: src/components/render/ModelType.tsx:161 +#: src/components/render/ModelType.tsx:187 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:340 msgid "Sales Order Shipment" -msgstr "" +msgstr "Отправка заказа на продажу" -#: src/components/render/ModelType.tsx:162 +#: src/components/render/ModelType.tsx:188 msgid "Sales Order Shipments" -msgstr "" +msgstr "Отгрузка заказа на продажу" -#: src/components/render/ModelType.tsx:168 -#: src/pages/sales/ReturnOrderDetail.tsx:469 -#: src/tables/stock/StockTrackingTable.tsx:129 +#: src/components/render/ModelType.tsx:195 +#: src/pages/sales/ReturnOrderDetail.tsx:464 +#: src/tables/stock/StockTrackingTable.tsx:133 msgid "Return Order" -msgstr "" +msgstr "Заказ на возврат" -#: src/components/render/ModelType.tsx:169 -#: src/pages/Index/Settings/SystemSettings.tsx:286 +#: src/components/render/ModelType.tsx:196 +#: src/pages/Index/Settings/SystemSettings.tsx:280 #: src/pages/company/CompanyDetail.tsx:223 +#: src/pages/part/PartDetail.tsx:702 #: src/pages/sales/SalesIndex.tsx:32 msgid "Return Orders" msgstr "Заказы на возврат" -#: src/components/render/ModelType.tsx:177 +#: src/components/render/ModelType.tsx:205 msgid "Return Order Line Item" msgstr "" -#: src/components/render/ModelType.tsx:178 +#: src/components/render/ModelType.tsx:206 msgid "Return Order Line Items" msgstr "" -#: src/components/render/ModelType.tsx:182 -#: src/tables/company/AddressTable.tsx:47 +#: src/components/render/ModelType.tsx:211 +#: src/tables/company/AddressTable.tsx:48 msgid "Address" -msgstr "" +msgstr "Адрес" -#: src/components/render/ModelType.tsx:183 -#: src/pages/company/CompanyDetail.tsx:253 +#: src/components/render/ModelType.tsx:212 +#: src/pages/company/CompanyDetail.tsx:255 msgid "Addresses" -msgstr "" +msgstr "Адреса" -#: src/components/render/ModelType.tsx:189 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:195 -#: src/pages/sales/ReturnOrderDetail.tsx:174 -#: src/pages/sales/SalesOrderDetail.tsx:183 +#: src/components/render/ModelType.tsx:219 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:196 +#: src/pages/sales/ReturnOrderDetail.tsx:166 +#: src/pages/sales/SalesOrderDetail.tsx:178 msgid "Contact" -msgstr "" +msgstr "Контакт" -#: src/components/render/ModelType.tsx:190 -#: src/pages/company/CompanyDetail.tsx:247 +#: src/components/render/ModelType.tsx:220 +#: src/pages/company/CompanyDetail.tsx:249 msgid "Contacts" -msgstr "" +msgstr "Контакты" -#: src/components/render/ModelType.tsx:196 +#: src/components/render/ModelType.tsx:227 msgid "Owner" -msgstr "" +msgstr "Владелец" -#: src/components/render/ModelType.tsx:197 +#: src/components/render/ModelType.tsx:228 msgid "Owners" -msgstr "" +msgstr "Владельцы" -#: src/components/render/ModelType.tsx:203 -#: src/tables/settings/ImportSessionTable.tsx:121 -#: src/tables/stock/StockItemTestResultTable.tsx:198 -#: src/tables/stock/StockTrackingTable.tsx:195 +#: src/components/render/ModelType.tsx:234 +#~ msgid "Purchase Order Line Item" +#~ msgstr "Purchase Order Line Item" + +#: src/components/render/ModelType.tsx:235 +#: src/tables/settings/BarcodeScanHistoryTable.tsx:80 +#: src/tables/settings/BarcodeScanHistoryTable.tsx:211 +#: src/tables/settings/ImportSessionTable.tsx:120 +#: src/tables/settings/StocktakeReportTable.tsx:44 +#: src/tables/stock/StockItemTestResultTable.tsx:204 +#: src/tables/stock/StockTrackingTable.tsx:181 +#: src/tables/stock/StockTrackingTable.tsx:210 msgid "User" -msgstr "" +msgstr "Пользователь" -#: src/components/render/ModelType.tsx:204 -#: src/pages/Index/Settings/AdminCenter/Index.tsx:98 +#: src/components/render/ModelType.tsx:236 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:109 #: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:13 msgid "Users" -msgstr "" +msgstr "Пользователи" -#: src/components/render/ModelType.tsx:210 +#: src/components/render/ModelType.tsx:243 msgid "Group" -msgstr "" +msgstr "Группа" -#: src/components/render/ModelType.tsx:211 +#: src/components/render/ModelType.tsx:244 #: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:20 -#: src/tables/settings/UserTable.tsx:138 -#: src/tables/settings/UserTable.tsx:201 +#: src/tables/settings/UserTable.tsx:137 +#: src/tables/settings/UserTable.tsx:200 msgid "Groups" -msgstr "" +msgstr "Группы" -#: src/components/render/ModelType.tsx:218 +#: src/components/render/ModelType.tsx:252 msgid "Import Session" msgstr "" -#: src/components/render/ModelType.tsx:219 +#: src/components/render/ModelType.tsx:253 msgid "Import Sessions" msgstr "" -#: src/components/render/ModelType.tsx:225 +#: src/components/render/ModelType.tsx:260 msgid "Label Template" -msgstr "" +msgstr "Шаблон этикетки" -#: src/components/render/ModelType.tsx:226 -#: src/pages/Index/Settings/AdminCenter/Index.tsx:158 +#: src/components/render/ModelType.tsx:261 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:187 msgid "Label Templates" -msgstr "" +msgstr "Шаблоны этикетки" -#: src/components/render/ModelType.tsx:232 +#: src/components/render/ModelType.tsx:264 +#~ msgid "Unknown Model" +#~ msgstr "Unknown Model" + +#: src/components/render/ModelType.tsx:268 msgid "Report Template" -msgstr "" +msgstr "Шаблон отчета" -#: src/components/render/ModelType.tsx:233 -#: src/pages/Index/Settings/AdminCenter/Index.tsx:164 +#: src/components/render/ModelType.tsx:269 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:193 msgid "Report Templates" -msgstr "" +msgstr "Шаблоны отчётов" -#: src/components/render/ModelType.tsx:239 -msgid "Plugin Configuration" -msgstr "" - -#: src/components/render/ModelType.tsx:240 +#: src/components/render/ModelType.tsx:277 msgid "Plugin Configurations" +msgstr "Конфигурации плагина" + +#: src/components/render/ModelType.tsx:284 +msgid "Content Type" +msgstr "Тип контента" + +#: src/components/render/ModelType.tsx:285 +msgid "Content Types" +msgstr "Типы контента" + +#: src/components/render/ModelType.tsx:291 +#: src/tables/machine/MachineListTable.tsx:351 +#: src/tables/machine/MachineTypeTable.tsx:282 +msgid "Errors" msgstr "" +#: src/components/render/ModelType.tsx:307 +#~ msgid "Purchase Order Line Items" +#~ msgstr "Purchase Order Line Items" + +#: src/components/render/ModelType.tsx:337 +#~ msgid "Unknown Models" +#~ msgstr "Unknown Models" + #: src/components/render/Order.tsx:121 +#: src/tables/sales/SalesOrderAllocationTable.tsx:136 msgid "Shipment" -msgstr "" +msgstr "Отгрузка" #: src/components/render/Part.tsx:25 #: src/components/render/Plugin.tsx:17 -#: src/pages/company/CompanyDetail.tsx:325 -#: src/pages/company/SupplierPartDetail.tsx:360 -#: src/pages/part/PartDetail.tsx:879 +#: src/pages/company/CompanyDetail.tsx:307 +#: src/pages/company/SupplierPartDetail.tsx:349 +#: src/pages/part/PartDetail.tsx:911 msgid "Inactive" msgstr "Неактивный" @@ -1734,43 +2333,42 @@ msgstr "Неактивный" #: src/tables/bom/BomTable.tsx:204 #: src/tables/part/PartTable.tsx:134 msgid "No stock" -msgstr "" +msgstr "Нет склада" -#: src/components/render/Part.tsx:30 -#: src/defaults/links.tsx:30 -#: src/defaults/menuItems.tsx:38 -#: src/pages/Index/Settings/SystemSettings.tsx:206 -#: src/pages/part/PartDetail.tsx:543 -#: src/pages/stock/LocationDetail.tsx:367 -#: src/pages/stock/StockDetail.tsx:411 -#: src/tables/stock/StockItemTable.tsx:68 -msgid "Stock" -msgstr "Остатки" - -#: src/components/render/Stock.tsx:60 -#: src/pages/stock/StockDetail.tsx:150 -#: src/pages/stock/StockDetail.tsx:581 -#: src/tables/build/BuildAllocatedStockTable.tsx:102 -#: src/tables/sales/SalesOrderAllocationTable.tsx:80 +#: src/components/render/Stock.tsx:61 +#: src/forms/ReturnOrderForms.tsx:190 +#: src/pages/stock/StockDetail.tsx:166 +#: src/pages/stock/StockDetail.tsx:771 +#: src/tables/build/BuildAllocatedStockTable.tsx:123 +#: src/tables/build/BuildOutputTable.tsx:81 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:114 +#: src/tables/sales/SalesOrderAllocationTable.tsx:106 msgid "Serial Number" -msgstr "" +msgstr "Серийный номер" -#: src/components/render/Stock.tsx:62 -#: src/forms/BuildForms.tsx:218 -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/pages/part/pricing/BomPricingPanel.tsx:109 +#: src/components/render/Stock.tsx:63 +#: src/forms/BuildForms.tsx:206 +#: src/forms/BuildForms.tsx:515 +#: src/forms/PurchaseOrderForms.tsx:689 +#: src/forms/SalesOrderForms.tsx:248 +#: src/pages/part/PartSchedulingDetail.tsx:80 +#: src/pages/part/PartStocktakeDetail.tsx:60 +#: src/pages/part/PartStocktakeDetail.tsx:234 +#: src/pages/part/PartStocktakeDetail.tsx:252 +#: src/pages/part/pricing/BomPricingPanel.tsx:148 #: src/pages/part/pricing/PriceBreakPanel.tsx:89 -#: src/pages/part/pricing/PriceBreakPanel.tsx:171 -#: src/pages/stock/StockDetail.tsx:145 -#: src/pages/stock/StockDetail.tsx:587 -#: src/tables/build/BuildOrderTestTable.tsx:197 -#: src/tables/part/PartPurchaseOrdersTable.tsx:92 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:143 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:171 +#: src/pages/part/pricing/PriceBreakPanel.tsx:172 +#: src/pages/stock/StockDetail.tsx:161 +#: src/pages/stock/StockDetail.tsx:777 +#: src/tables/build/BuildLineTable.tsx:79 +#: src/tables/build/BuildOrderTestTable.tsx:198 +#: src/tables/part/PartPurchaseOrdersTable.tsx:93 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:146 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:177 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:77 -#: src/tables/stock/StockTrackingTable.tsx:59 +#: src/tables/stock/StockTrackingTable.tsx:63 msgid "Quantity" -msgstr "" +msgstr "Количество" #: src/components/settings/SettingItem.tsx:47 #: src/components/settings/SettingItem.tsx:100 @@ -1779,24 +2377,24 @@ msgstr "" #: src/components/settings/SettingList.tsx:67 msgid "Edit Setting" -msgstr "" +msgstr "Редактирование настроек" #: src/components/settings/SettingList.tsx:78 #: src/components/settings/SettingList.tsx:108 msgid "Setting {0} updated successfully" -msgstr "" +msgstr "Настройки {0} успешно обновлены" #: src/components/settings/SettingList.tsx:107 msgid "Setting updated" -msgstr "" +msgstr "Настройки обновлены" #: src/components/settings/SettingList.tsx:117 msgid "Error editing setting" -msgstr "" +msgstr "Ошибка при редактировании настроек" #: src/components/settings/SettingList.tsx:162 msgid "No settings specified" -msgstr "" +msgstr "Настройки не указаны" #: src/components/tables/FilterGroup.tsx:29 #~ msgid "Add table filter" @@ -1842,10 +2440,6 @@ msgstr "" #~ msgid "Required Part" #~ msgstr "Required Part" -#: src/components/tables/build/BuildLineTable.tsx:152 -#~ msgid "Required Quantity" -#~ msgstr "Required Quantity" - #: src/components/tables/build/BuildOrderTable.tsx:52 #~ msgid "Progress" #~ msgstr "Progress" @@ -2126,14 +2720,6 @@ msgstr "" #~ msgid "user deleted" #~ msgstr "user deleted" -#: src/components/tables/settings/UserTable.tsx:168 -#~ msgid "First Name" -#~ msgstr "First Name" - -#: src/components/tables/settings/UserTable.tsx:173 -#~ msgid "Last Name" -#~ msgstr "Last Name" - #: src/components/tables/stock/StockItemTable.tsx:247 #~ msgid "Test Filter" #~ msgstr "Test Filter" @@ -2146,36 +2732,21 @@ msgstr "" #~ msgid "Stock location updated" #~ msgstr "Stock location updated" -#: src/components/widgets/DisplayWidget.tsx:11 -#: src/pages/Index/Settings/AccountSettings/DisplaySettingsPanel.tsx:17 -msgid "Display Settings" -msgstr "" - -#: src/components/widgets/DisplayWidget.tsx:15 -#: src/pages/Index/Settings/AccountSettings/DisplaySettingsPanel.tsx:23 -msgid "Color Mode" -msgstr "" - -#: src/components/widgets/DisplayWidget.tsx:21 -#: src/pages/Index/Settings/AccountSettings/DisplaySettingsPanel.tsx:33 -msgid "Language" -msgstr "" - #: src/components/widgets/FeedbackWidget.tsx:19 -msgid "Something is new: Platform UI" -msgstr "" +#~ msgid "Something is new: Platform UI" +#~ msgstr "Something is new: Platform UI" #: src/components/widgets/FeedbackWidget.tsx:21 -msgid "We are building a new UI with a modern stack. What you currently see is not fixed and will be redesigned but demonstrates the UI/UX possibilities we will have going forward." -msgstr "Мы создаем новый пользовательский интерфейс с современным стеком. То, что вы видите сейчас, не является фиксированным и будет переработано, но демонстрирует возможности UI/UX, которые мы будем иметь в будущем." +#~ msgid "We are building a new UI with a modern stack. What you currently see is not fixed and will be redesigned but demonstrates the UI/UX possibilities we will have going forward." +#~ msgstr "We are building a new UI with a modern stack. What you currently see is not fixed and will be redesigned but demonstrates the UI/UX possibilities we will have going forward." #: src/components/widgets/FeedbackWidget.tsx:32 -msgid "Provide Feedback" -msgstr "" +#~ msgid "Provide Feedback" +#~ msgstr "Provide Feedback" #: src/components/widgets/GetStartedWidget.tsx:11 -msgid "Getting started" -msgstr "" +#~ msgid "Getting started" +#~ msgstr "Getting started" #: src/components/widgets/MarkdownEditor.tsx:108 #~ msgid "Failed to upload image" @@ -2186,301 +2757,271 @@ msgstr "" #~ msgstr "Notes saved" #: src/components/widgets/WidgetLayout.tsx:166 -msgid "Layout" -msgstr "" +#~ msgid "Layout" +#~ msgstr "Layout" #: src/components/widgets/WidgetLayout.tsx:172 -msgid "Reset Layout" -msgstr "" +#~ msgid "Reset Layout" +#~ msgstr "Reset Layout" #: src/components/widgets/WidgetLayout.tsx:185 -msgid "Stop Edit" -msgstr "" - -#: src/components/widgets/WidgetLayout.tsx:185 -msgid "Edit Layout" -msgstr "" +#~ msgid "Stop Edit" +#~ msgstr "Stop Edit" #: src/components/widgets/WidgetLayout.tsx:191 -msgid "Appearance" -msgstr "" +#~ msgid "Appearance" +#~ msgstr "Appearance" #: src/components/widgets/WidgetLayout.tsx:203 -msgid "Show Boxes" -msgstr "" +#~ msgid "Show Boxes" +#~ msgstr "Show Boxes" #: src/contexts/LanguageContext.tsx:20 msgid "Arabic" -msgstr "" +msgstr "Арабский" #: src/contexts/LanguageContext.tsx:21 msgid "Bulgarian" -msgstr "" +msgstr "Болгарский" #: src/contexts/LanguageContext.tsx:22 msgid "Czech" -msgstr "" +msgstr "Чешский" #: src/contexts/LanguageContext.tsx:23 msgid "Danish" -msgstr "" +msgstr "Датский" #: src/contexts/LanguageContext.tsx:24 msgid "German" -msgstr "" +msgstr "Немецкий" #: src/contexts/LanguageContext.tsx:25 msgid "Greek" -msgstr "" +msgstr "Греческий" #: src/contexts/LanguageContext.tsx:26 msgid "English" -msgstr "" +msgstr "Английский" #: src/contexts/LanguageContext.tsx:27 msgid "Spanish" -msgstr "" +msgstr "Испанский" #: src/contexts/LanguageContext.tsx:28 msgid "Spanish (Mexican)" -msgstr "" +msgstr "Испанский (Мексика)" #: src/contexts/LanguageContext.tsx:29 msgid "Estonian" -msgstr "" +msgstr "Эстонский" #: src/contexts/LanguageContext.tsx:30 msgid "Farsi / Persian" -msgstr "" +msgstr "Фарси / Персидский" #: src/contexts/LanguageContext.tsx:31 msgid "Finnish" -msgstr "" +msgstr "Финский" #: src/contexts/LanguageContext.tsx:32 msgid "French" -msgstr "" +msgstr "Французский" #: src/contexts/LanguageContext.tsx:33 msgid "Hebrew" -msgstr "" +msgstr "Иврит" #: src/contexts/LanguageContext.tsx:34 msgid "Hindi" -msgstr "" +msgstr "Хинди" #: src/contexts/LanguageContext.tsx:35 msgid "Hungarian" -msgstr "" +msgstr "Венгерский" #: src/contexts/LanguageContext.tsx:36 msgid "Italian" -msgstr "" +msgstr "Итальянский" #: src/contexts/LanguageContext.tsx:37 msgid "Japanese" -msgstr "" +msgstr "Японский" #: src/contexts/LanguageContext.tsx:38 msgid "Korean" -msgstr "" +msgstr "Корейский" #: src/contexts/LanguageContext.tsx:39 -msgid "Latvian" +msgid "Lithuanian" msgstr "" #: src/contexts/LanguageContext.tsx:40 -msgid "Dutch" -msgstr "" +msgid "Latvian" +msgstr "Латышский" #: src/contexts/LanguageContext.tsx:41 -msgid "Norwegian" -msgstr "" +msgid "Dutch" +msgstr "Голландский" #: src/contexts/LanguageContext.tsx:42 -msgid "Polish" -msgstr "" +msgid "Norwegian" +msgstr "Норвежский" #: src/contexts/LanguageContext.tsx:43 -msgid "Portuguese" -msgstr "" +msgid "Polish" +msgstr "Польский" #: src/contexts/LanguageContext.tsx:44 -msgid "Portuguese (Brazilian)" -msgstr "" +msgid "Portuguese" +msgstr "Португальский" #: src/contexts/LanguageContext.tsx:45 -msgid "Romanian" -msgstr "" +msgid "Portuguese (Brazilian)" +msgstr "Португальский (Бразильский диалект)" #: src/contexts/LanguageContext.tsx:46 -msgid "Russian" -msgstr "" +msgid "Romanian" +msgstr "Румынский" #: src/contexts/LanguageContext.tsx:47 -msgid "Slovak" -msgstr "" +msgid "Russian" +msgstr "Русский" #: src/contexts/LanguageContext.tsx:48 -msgid "Slovenian" -msgstr "" +msgid "Slovak" +msgstr "Словацкий" #: src/contexts/LanguageContext.tsx:49 -msgid "Swedish" -msgstr "" +msgid "Slovenian" +msgstr "Словенский" #: src/contexts/LanguageContext.tsx:50 -msgid "Thai" -msgstr "" +msgid "Swedish" +msgstr "Шведский" #: src/contexts/LanguageContext.tsx:51 -msgid "Turkish" -msgstr "" +msgid "Thai" +msgstr "Тайский" #: src/contexts/LanguageContext.tsx:52 -msgid "Ukrainian" -msgstr "" +msgid "Turkish" +msgstr "Турецкий" #: src/contexts/LanguageContext.tsx:53 -msgid "Vietnamese" -msgstr "" +msgid "Ukrainian" +msgstr "Украинский" #: src/contexts/LanguageContext.tsx:54 -msgid "Chinese (Simplified)" -msgstr "" +msgid "Vietnamese" +msgstr "Вьетнамский" #: src/contexts/LanguageContext.tsx:55 +msgid "Chinese (Simplified)" +msgstr "Китайский (Упрощенный)" + +#: src/contexts/LanguageContext.tsx:56 msgid "Chinese (Traditional)" -msgstr "" +msgstr "Китайский (Традиционный)" + +#: src/defaults/actions.tsx:18 +msgid "Go to the InvenTree dashboard" +msgstr "Перейти к панели InvenTree" #: src/defaults/actions.tsx:18 #: src/defaults/links.tsx:27 #: src/defaults/menuItems.tsx:9 -msgid "Home" -msgstr "Домашняя страница" +#~ msgid "Home" +#~ msgstr "Home" #: src/defaults/actions.tsx:25 -#: src/defaults/links.tsx:28 -#: src/defaults/menuItems.tsx:28 -#: src/pages/Index/Dashboard.tsx:19 -#: src/pages/Index/Settings/UserSettings.tsx:46 -msgid "Dashboard" -msgstr "Контрольная панель" - -#: src/defaults/actions.tsx:26 -msgid "Go to the InvenTree dashboard" -msgstr "" - -#: src/defaults/actions.tsx:33 msgid "Visit the documentation to learn more about InvenTree" -msgstr "" +msgstr "Посетите документацию, чтобы узнать больше о InvenTree" -#: src/defaults/actions.tsx:39 -#: src/defaults/links.tsx:98 -#: src/defaults/links.tsx:128 +#: src/defaults/actions.tsx:31 +#: src/defaults/links.tsx:92 +#: src/defaults/links.tsx:124 msgid "About InvenTree" msgstr "О программе InvenTree" -#: src/defaults/actions.tsx:40 -#: src/defaults/links.tsx:129 +#: src/defaults/actions.tsx:32 msgid "About the InvenTree org" msgstr "О программе InvenTree org" -#: src/defaults/actions.tsx:46 +#: src/defaults/actions.tsx:38 msgid "Server Information" -msgstr "" +msgstr "Информация о сервере" -#: src/defaults/actions.tsx:47 -#: src/defaults/links.tsx:123 +#: src/defaults/actions.tsx:39 +#: src/defaults/links.tsx:118 msgid "About this Inventree instance" msgstr "Об этом экземпляре Inventree" -#: src/defaults/actions.tsx:53 -#: src/defaults/links.tsx:111 +#: src/defaults/actions.tsx:45 +#: src/defaults/links.tsx:105 +#: src/defaults/links.tsx:131 msgid "License Information" msgstr "Информация о лицензии" -#: src/defaults/actions.tsx:54 -#: src/defaults/links.tsx:135 +#: src/defaults/actions.tsx:46 msgid "Licenses for dependencies of the service" msgstr "Лицензии на зависимостей сервиса" -#: src/defaults/actions.tsx:61 +#: src/defaults/actions.tsx:52 +msgid "Open Navigation" +msgstr "Открыть панель навигации" + +#: src/defaults/actions.tsx:53 msgid "Open the main navigation menu" -msgstr "" +msgstr "Открыть главное меню навигации" -#: src/defaults/actions.tsx:72 +#: src/defaults/actions.tsx:64 msgid "Go to the Admin Center" -msgstr "" - -#: src/defaults/dashboardItems.tsx:15 -msgid "Subscribed Parts" -msgstr "" - -#: src/defaults/dashboardItems.tsx:22 -msgid "Subscribed Categories" -msgstr "" +msgstr "Перейти в админ центр" #: src/defaults/dashboardItems.tsx:29 -msgid "Latest Parts" -msgstr "" +#~ msgid "Latest Parts" +#~ msgstr "Latest Parts" #: src/defaults/dashboardItems.tsx:36 -msgid "BOM Waiting Validation" -msgstr "" +#~ msgid "BOM Waiting Validation" +#~ msgstr "BOM Waiting Validation" #: src/defaults/dashboardItems.tsx:43 -msgid "Recently Updated" -msgstr "" - -#: src/defaults/dashboardItems.tsx:50 -#: src/tables/part/PartTable.tsx:238 -msgid "Low Stock" -msgstr "" +#~ msgid "Recently Updated" +#~ msgstr "Recently Updated" #: src/defaults/dashboardItems.tsx:57 -msgid "Depleted Stock" -msgstr "" +#~ msgid "Depleted Stock" +#~ msgstr "Depleted Stock" #: src/defaults/dashboardItems.tsx:64 -msgid "Required for Build Orders" -msgstr "Требуется для заказов на сборку" +#~ msgid "Required for Build Orders" +#~ msgstr "Required for Build Orders" #: src/defaults/dashboardItems.tsx:71 -msgid "Expired Stock" -msgstr "" +#~ msgid "Expired Stock" +#~ msgstr "Expired Stock" #: src/defaults/dashboardItems.tsx:78 -msgid "Stale Stock" -msgstr "" +#~ msgid "Stale Stock" +#~ msgstr "Stale Stock" #: src/defaults/dashboardItems.tsx:85 -msgid "Build Orders In Progress" -msgstr "Активные заказы на сборку" - -#: src/defaults/dashboardItems.tsx:92 -msgid "Overdue Build Orders" -msgstr "Просроченные заказы на сборку" +#~ msgid "Build Orders In Progress" +#~ msgstr "Build Orders In Progress" #: src/defaults/dashboardItems.tsx:99 -msgid "Outstanding Purchase Orders" -msgstr "" - -#: src/defaults/dashboardItems.tsx:106 -msgid "Overdue Purchase Orders" -msgstr "" +#~ msgid "Outstanding Purchase Orders" +#~ msgstr "Outstanding Purchase Orders" #: src/defaults/dashboardItems.tsx:113 -msgid "Outstanding Sales Orders" -msgstr "" - -#: src/defaults/dashboardItems.tsx:120 -msgid "Overdue Sales Orders" -msgstr "" +#~ msgid "Outstanding Sales Orders" +#~ msgstr "Outstanding Sales Orders" #: src/defaults/dashboardItems.tsx:127 -msgid "Current News" -msgstr "" +#~ msgid "Current News" +#~ msgstr "Current News" #: src/defaults/defaultHostList.tsx:8 #~ msgid "InvenTree Demo" @@ -2490,97 +3031,80 @@ msgstr "" #~ msgid "Local Server" #~ msgstr "Local Server" -#: src/defaults/links.tsx:12 -#: src/pages/company/CompanyDetail.tsx:96 -msgid "Website" -msgstr "Веб-сайт" - #: src/defaults/links.tsx:17 -msgid "GitHub" -msgstr "GitHub" +#~ msgid "GitHub" +#~ msgstr "GitHub" #: src/defaults/links.tsx:22 -msgid "Demo" -msgstr "Демо" - -#: src/defaults/links.tsx:33 -#: src/defaults/menuItems.tsx:48 -#: src/pages/company/ManufacturerDetail.tsx:9 -#: src/pages/company/ManufacturerPartDetail.tsx:263 -#: src/pages/company/SupplierDetail.tsx:9 -#: src/pages/company/SupplierPartDetail.tsx:347 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:483 -#: src/pages/purchasing/PurchasingIndex.tsx:60 -msgid "Purchasing" -msgstr "Покупка" - -#: src/defaults/links.tsx:37 -#: src/defaults/menuItems.tsx:53 -#: src/pages/company/CustomerDetail.tsx:9 -#: src/pages/sales/ReturnOrderDetail.tsx:474 -#: src/pages/sales/SalesIndex.tsx:53 -#: src/pages/sales/SalesOrderDetail.tsx:525 -msgid "Sales" -msgstr "Продажи" +#~ msgid "Demo" +#~ msgstr "Demo" #: src/defaults/links.tsx:41 #: src/defaults/menuItems.tsx:71 #: src/pages/Index/Playground.tsx:217 -msgid "Playground" -msgstr "Песочница" +#~ msgid "Playground" +#~ msgstr "Playground" -#: src/defaults/links.tsx:55 -msgid "Getting Started" -msgstr "Начать работу" - -#: src/defaults/links.tsx:56 -msgid "Getting started with InvenTree" -msgstr "Начало работы с InvenTree" - -#: src/defaults/links.tsx:62 +#: src/defaults/links.tsx:45 msgid "API" msgstr "API" -#: src/defaults/links.tsx:63 +#: src/defaults/links.tsx:48 msgid "InvenTree API documentation" msgstr "Документация по API InvenTree" -#: src/defaults/links.tsx:68 +#: src/defaults/links.tsx:52 msgid "Developer Manual" msgstr "Руководство разработчика" -#: src/defaults/links.tsx:69 +#: src/defaults/links.tsx:55 msgid "InvenTree developer manual" msgstr "Инструкция по разработке InvenTree" -#: src/defaults/links.tsx:74 +#: src/defaults/links.tsx:59 msgid "FAQ" msgstr "FAQ" -#: src/defaults/links.tsx:75 +#: src/defaults/links.tsx:62 msgid "Frequently asked questions" msgstr "Часто задаваемые вопросы" +#: src/defaults/links.tsx:66 +msgid "GitHub Repository" +msgstr "" + +#: src/defaults/links.tsx:69 +msgid "InvenTree source code on GitHub" +msgstr "" + #: src/defaults/links.tsx:76 #~ msgid "Instance" #~ msgstr "Instance" +#: src/defaults/links.tsx:79 +#: src/defaults/links.tsx:117 +msgid "System Information" +msgstr "Информация о системе" + #: src/defaults/links.tsx:83 #~ msgid "InvenTree" #~ msgstr "InvenTree" -#: src/defaults/links.tsx:85 -#: src/defaults/links.tsx:122 -msgid "System Information" -msgstr "Информация о системе" - #: src/defaults/links.tsx:117 #~ msgid "Licenses for packages used by InvenTree" #~ msgstr "Licenses for packages used by InvenTree" +#: src/defaults/links.tsx:125 +msgid "About the InvenTree Project" +msgstr "" + +#: src/defaults/links.tsx:132 +msgid "Licenses for dependencies of the InvenTree software" +msgstr "" + #: src/defaults/links.tsx:134 -msgid "Licenses" -msgstr "Лицензии" +#~ msgid "Licenses" +#~ msgstr "Licenses" #: src/defaults/menuItems.tsx:7 #~ msgid "Open sourcea" @@ -2607,8 +3131,8 @@ msgstr "Лицензии" #~ msgstr "Profile page" #: src/defaults/menuItems.tsx:17 -msgid "User attributes and design settings." -msgstr "" +#~ msgid "User attributes and design settings." +#~ msgstr "User attributes and design settings." #: src/defaults/menuItems.tsx:21 #~ msgid "Free for everyone" @@ -2619,8 +3143,8 @@ msgstr "" #~ msgstr "The fluid of Smeargle’s tail secretions changes" #: src/defaults/menuItems.tsx:23 -msgid "View for interactive scanning and multiple actions." -msgstr "" +#~ msgid "View for interactive scanning and multiple actions." +#~ msgstr "View for interactive scanning and multiple actions." #: src/defaults/menuItems.tsx:24 #~ msgid "The fluid of Smeargle’s tail secretions changes in the intensity" @@ -2698,51 +3222,130 @@ msgstr "" #~ msgid "Are you sure you want to delete this attachment?" #~ msgstr "Are you sure you want to delete this attachment?" -#: src/forms/BuildForms.tsx:158 -msgid "Next serial number" +#: src/forms/BuildForms.tsx:248 +#~ msgid "Remove output" +#~ msgstr "Remove output" + +#: src/forms/BuildForms.tsx:269 +#: src/tables/build/BuildAllocatedStockTable.tsx:147 +#: src/tables/build/BuildOrderTestTable.tsx:177 +#: src/tables/build/BuildOrderTestTable.tsx:201 +#: src/tables/build/BuildOutputTable.tsx:460 +msgid "Build Output" msgstr "" -#: src/forms/BuildForms.tsx:162 -msgid "Latest serial number" +#: src/forms/BuildForms.tsx:269 +#: src/forms/BuildForms.tsx:337 +#: src/forms/BuildForms.tsx:385 +#: src/tables/build/BuildLineTable.tsx:89 +msgid "Batch" msgstr "" -#: src/forms/BuildForms.tsx:234 -msgid "Remove output" -msgstr "" +#: src/forms/BuildForms.tsx:269 +#: src/forms/BuildForms.tsx:337 +#: src/forms/BuildForms.tsx:385 +#: src/forms/PurchaseOrderForms.tsx:603 +#: src/pages/build/BuildDetail.tsx:104 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:142 +#: src/pages/sales/ReturnOrderDetail.tsx:113 +#: src/pages/sales/SalesOrderDetail.tsx:122 +#: src/tables/build/BuildOrderTable.tsx:125 +#: src/tables/machine/MachineListTable.tsx:336 +#: src/tables/part/PartPurchaseOrdersTable.tsx:37 +#: src/tables/purchasing/PurchaseOrderTable.tsx:58 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:157 +#: src/tables/sales/ReturnOrderTable.tsx:56 +#: src/tables/sales/SalesOrderTable.tsx:56 +#: src/tables/settings/CustomStateTable.tsx:57 +#: src/tables/settings/ImportSessionTable.tsx:114 +#: src/tables/stock/StockItemTable.tsx:298 +#: src/tables/stock/StockTrackingTable.tsx:56 +msgid "Status" +msgstr "Статус" -#: src/forms/BuildForms.tsx:316 +#: src/forms/BuildForms.tsx:289 msgid "Complete Build Outputs" msgstr "" -#: src/forms/BuildForms.tsx:320 +#: src/forms/BuildForms.tsx:292 msgid "Build outputs have been completed" msgstr "" -#: src/forms/BuildForms.tsx:389 +#: src/forms/BuildForms.tsx:353 msgid "Scrap Build Outputs" -msgstr "" +msgstr "Списать Продукцию" + +#: src/forms/BuildForms.tsx:356 +msgid "Build outputs have been scrapped" +msgstr "Продукция списана" #: src/forms/BuildForms.tsx:393 -msgid "Build outputs have been scrapped" -msgstr "" - -#: src/forms/BuildForms.tsx:425 -#: src/forms/BuildForms.tsx:449 msgid "Cancel Build Outputs" msgstr "" -#: src/forms/BuildForms.tsx:426 -msgid "Selected build outputs will be deleted" +#: src/forms/BuildForms.tsx:396 +msgid "Build outputs have been cancelled" msgstr "" -#: src/forms/BuildForms.tsx:453 -msgid "Build outputs have been cancelled" +#: src/forms/BuildForms.tsx:408 +#~ msgid "Selected build outputs will be deleted" +#~ msgstr "Selected build outputs will be deleted" + +#: src/forms/BuildForms.tsx:470 +#~ msgid "Remove line" +#~ msgstr "Remove line" + +#: src/forms/BuildForms.tsx:515 +#: src/forms/SalesOrderForms.tsx:248 +#: src/tables/build/BuildLineTable.tsx:174 +#: src/tables/sales/SalesOrderLineItemTable.tsx:276 +#: src/tables/stock/StockItemTable.tsx:309 +msgid "Allocated" +msgstr "" + +#: src/forms/BuildForms.tsx:545 +#: src/forms/SalesOrderForms.tsx:239 +#: src/pages/build/BuildDetail.tsx:208 +msgid "Source Location" +msgstr "" + +#: src/forms/BuildForms.tsx:546 +#: src/forms/SalesOrderForms.tsx:240 +msgid "Select the source location for the stock allocation" +msgstr "Выберите исходное расположение для распределения запасов" + +#: src/forms/BuildForms.tsx:566 +#: src/forms/SalesOrderForms.tsx:274 +#: src/tables/build/BuildLineTable.tsx:442 +#: src/tables/build/BuildLineTable.tsx:569 +#: src/tables/build/BuildLineTable.tsx:642 +#: src/tables/sales/SalesOrderLineItemTable.tsx:302 +#: src/tables/sales/SalesOrderLineItemTable.tsx:326 +msgid "Allocate Stock" +msgstr "" + +#: src/forms/BuildForms.tsx:569 +#: src/forms/SalesOrderForms.tsx:279 +msgid "Stock items allocated" msgstr "" #: src/forms/CompanyForms.tsx:150 #~ msgid "Company updated" #~ msgstr "Company updated" +#: src/forms/PartForms.tsx:67 +#: src/forms/PartForms.tsx:154 +#: src/pages/part/CategoryDetail.tsx:117 +#: src/pages/part/PartDetail.tsx:384 +#: src/tables/part/PartCategoryTable.tsx:90 +#: src/tables/part/PartTable.tsx:294 +msgid "Subscribed" +msgstr "" + +#: src/forms/PartForms.tsx:68 +msgid "Subscribe to notifications for this part" +msgstr "" + #: src/forms/PartForms.tsx:106 #~ msgid "Create Part" #~ msgstr "Create Part" @@ -2751,276 +3354,295 @@ msgstr "" #~ msgid "Part created" #~ msgstr "Part created" -#: src/forms/PartForms.tsx:124 -msgid "Parent part category" -msgstr "" - #: src/forms/PartForms.tsx:129 #~ msgid "Part updated" #~ msgstr "Part updated" -#: src/forms/PurchaseOrderForms.tsx:300 +#: src/forms/PartForms.tsx:140 +msgid "Parent part category" +msgstr "Родительская категория" + +#: src/forms/PartForms.tsx:155 +msgid "Subscribe to notifications for this category" +msgstr "" + +#: src/forms/PurchaseOrderForms.tsx:314 +msgid "Assign Batch Code and Serial Numbers" +msgstr "" + +#: src/forms/PurchaseOrderForms.tsx:316 +msgid "Assign Batch Code" +msgstr "" + +#: src/forms/PurchaseOrderForms.tsx:336 msgid "Choose Location" -msgstr "" +msgstr "Выберите местоположение" -#: src/forms/PurchaseOrderForms.tsx:308 +#: src/forms/PurchaseOrderForms.tsx:344 msgid "Item Destination selected" -msgstr "" +msgstr "Пункт назначения товара выбран" -#: src/forms/PurchaseOrderForms.tsx:317 +#: src/forms/PurchaseOrderForms.tsx:353 msgid "Part category default location selected" -msgstr "" +msgstr "Выбрано расположение категории по умолчанию" -#: src/forms/PurchaseOrderForms.tsx:327 +#: src/forms/PurchaseOrderForms.tsx:363 msgid "Received stock location selected" -msgstr "" +msgstr "Выбрано место получения запасов" -#: src/forms/PurchaseOrderForms.tsx:332 +#: src/forms/PurchaseOrderForms.tsx:368 msgid "Default location selected" -msgstr "" +msgstr "Выбрано местоположение по умолчанию" -#: src/forms/PurchaseOrderForms.tsx:343 -#: src/forms/PurchaseOrderForms.tsx:435 -msgid "Scan Barcode" -msgstr "" +#: src/forms/PurchaseOrderForms.tsx:421 +#~ msgid "Assign Batch Code{0}" +#~ msgstr "Assign Batch Code{0}" -#: src/forms/PurchaseOrderForms.tsx:388 +#: src/forms/PurchaseOrderForms.tsx:427 msgid "Set Location" -msgstr "" +msgstr "Установить местоположение" -#: src/forms/PurchaseOrderForms.tsx:396 -msgid "Assign Batch Code{0}" -msgstr "" - -#: src/forms/PurchaseOrderForms.tsx:405 -#: src/forms/StockForms.tsx:420 +#: src/forms/PurchaseOrderForms.tsx:442 +#: src/forms/StockForms.tsx:539 msgid "Adjust Packaging" -msgstr "" - -#: src/forms/PurchaseOrderForms.tsx:412 -msgid "Change Status" -msgstr "" - -#: src/forms/PurchaseOrderForms.tsx:418 -msgid "Add Note" -msgstr "" +msgstr "Настройка упаковки" #: src/forms/PurchaseOrderForms.tsx:444 #: src/forms/StockForms.tsx:428 -msgid "Remove item from list" -msgstr "" +#~ msgid "Remove item from list" +#~ msgstr "Remove item from list" -#: src/forms/PurchaseOrderForms.tsx:471 -#: src/forms/StockForms.tsx:499 -#: src/forms/StockForms.tsx:533 -#: src/forms/StockForms.tsx:562 -#: src/forms/StockForms.tsx:590 -#: src/forms/StockForms.tsx:621 -#: src/forms/StockForms.tsx:656 -#: src/forms/StockForms.tsx:698 -#: src/forms/StockForms.tsx:734 -#: src/pages/stock/StockDetail.tsx:181 -#: src/tables/ColumnRenderers.tsx:49 -#: src/tables/stock/StockTrackingTable.tsx:85 +#: src/forms/PurchaseOrderForms.tsx:450 +msgid "Change Status" +msgstr "Изменить статус" + +#: src/forms/PurchaseOrderForms.tsx:456 +msgid "Add Note" +msgstr "Добавить Заметку" + +#: src/forms/PurchaseOrderForms.tsx:503 +#: src/forms/StockForms.tsx:614 +#: src/forms/StockForms.tsx:651 +#: src/forms/StockForms.tsx:677 +#: src/forms/StockForms.tsx:705 +#: src/forms/StockForms.tsx:736 +#: src/forms/StockForms.tsx:771 +#: src/forms/StockForms.tsx:813 +#: src/forms/StockForms.tsx:851 +#: src/pages/stock/StockDetail.tsx:202 +#: src/tables/ColumnRenderers.tsx:60 +#: src/tables/stock/StockTrackingTable.tsx:89 msgid "Location" -msgstr "" +msgstr "Расположение" -#: src/forms/PurchaseOrderForms.tsx:486 +#: src/forms/PurchaseOrderForms.tsx:518 msgid "Store at default location" -msgstr "" +msgstr "Расположение магазина по умолчанию" -#: src/forms/PurchaseOrderForms.tsx:499 +#: src/forms/PurchaseOrderForms.tsx:533 msgid "Store at line item destination" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:509 +#: src/forms/PurchaseOrderForms.tsx:545 msgid "Store with already received stock" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:524 -#: src/pages/build/BuildDetail.tsx:219 -#: src/pages/stock/StockDetail.tsx:162 -#: src/pages/stock/StockDetail.tsx:599 -#: src/tables/build/BuildAllocatedStockTable.tsx:109 -#: src/tables/build/BuildOrderTestTable.tsx:188 -#: src/tables/sales/SalesOrderAllocationTable.tsx:87 +#: src/forms/PurchaseOrderForms.tsx:566 +#: src/pages/build/BuildDetail.tsx:222 +#: src/pages/stock/StockDetail.tsx:185 +#: src/pages/stock/StockDetail.tsx:793 +#: src/tables/build/BuildAllocatedStockTable.tsx:130 +#: src/tables/build/BuildOrderTestTable.tsx:189 +#: src/tables/build/BuildOutputTable.tsx:86 +#: src/tables/sales/SalesOrderAllocationTable.tsx:113 msgid "Batch Code" +msgstr "Код партии" + +#: src/forms/PurchaseOrderForms.tsx:566 +#~ msgid "Serial numbers" +#~ msgstr "Serial numbers" + +#: src/forms/PurchaseOrderForms.tsx:567 +msgid "Enter batch code for received items" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:535 -msgid "Serial numbers" +#: src/forms/PurchaseOrderForms.tsx:579 +#: src/forms/StockForms.tsx:152 +msgid "Serial Numbers" +msgstr "Серийные номера" + +#: src/forms/PurchaseOrderForms.tsx:580 +msgid "Enter serial numbers for received items" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:544 -#: src/forms/StockForms.tsx:443 -#: src/pages/company/SupplierPartDetail.tsx:156 -#: src/pages/company/SupplierPartDetail.tsx:207 -#: src/pages/stock/StockDetail.tsx:244 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:192 +#: src/forms/PurchaseOrderForms.tsx:590 +#: src/forms/StockForms.tsx:556 +#: src/pages/company/SupplierPartDetail.tsx:168 +#: src/pages/company/SupplierPartDetail.tsx:219 +#: src/pages/stock/StockDetail.tsx:320 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:198 msgid "Packaging" -msgstr "" +msgstr "Упаковка" -#: src/forms/PurchaseOrderForms.tsx:556 -#: src/pages/build/BuildDetail.tsx:109 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:148 -#: src/pages/sales/ReturnOrderDetail.tsx:121 -#: src/pages/sales/SalesOrderDetail.tsx:127 -#: src/tables/build/BuildOrderTable.tsx:122 -#: src/tables/machine/MachineListTable.tsx:335 -#: src/tables/part/PartPurchaseOrdersTable.tsx:37 -#: src/tables/purchasing/PurchaseOrderTable.tsx:55 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:132 -#: src/tables/sales/ReturnOrderTable.tsx:46 -#: src/tables/sales/SalesOrderTable.tsx:53 -#: src/tables/settings/ImportSessionTable.tsx:115 -#: src/tables/stock/StockItemTable.tsx:294 -#: src/tables/stock/StockTrackingTable.tsx:52 -msgid "Status" -msgstr "" - -#: src/forms/PurchaseOrderForms.tsx:564 -#: src/pages/company/SupplierPartDetail.tsx:110 -#: src/tables/ColumnRenderers.tsx:132 +#: src/forms/PurchaseOrderForms.tsx:612 +#: src/pages/company/SupplierPartDetail.tsx:115 +#: src/tables/ColumnRenderers.tsx:143 msgid "Note" -msgstr "" - -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/pages/company/SupplierPartDetail.tsx:128 -#: src/tables/purchasing/SupplierPriceBreakTable.tsx:57 -msgid "SKU" -msgstr "" - -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/tables/part/PartPurchaseOrdersTable.tsx:120 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:178 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:127 -msgid "Received" -msgstr "" - -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/forms/StockForms.tsx:499 -#: src/forms/StockForms.tsx:533 -#: src/forms/StockForms.tsx:562 -#: src/forms/StockForms.tsx:590 -#: src/forms/StockForms.tsx:621 -#: src/forms/StockForms.tsx:656 -#: src/forms/StockForms.tsx:698 -#: src/forms/StockForms.tsx:734 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:413 -#: src/tables/RowActions.tsx:113 -msgid "Actions" -msgstr "" - -#: src/forms/PurchaseOrderForms.tsx:655 -msgid "Receive Line Items" -msgstr "" +msgstr "Заметка" #: src/forms/PurchaseOrderForms.tsx:658 #~ msgid "Receive line items" #~ msgstr "Receive line items" -#: src/forms/StockForms.tsx:104 -msgid "Add given quantity as packs instead of individual items" +#: src/forms/PurchaseOrderForms.tsx:689 +#: src/pages/company/SupplierPartDetail.tsx:133 +#: src/tables/purchasing/SupplierPriceBreakTable.tsx:57 +msgid "SKU" +msgstr "Артикул" + +#: src/forms/PurchaseOrderForms.tsx:689 +#: src/tables/part/PartPurchaseOrdersTable.tsx:126 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:184 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:247 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:152 +msgid "Received" +msgstr "Получено" + +#: src/forms/PurchaseOrderForms.tsx:701 +msgid "Receive Line Items" msgstr "" +#: src/forms/ReturnOrderForms.tsx:201 +msgid "Receive Items" +msgstr "" + +#: src/forms/ReturnOrderForms.tsx:208 +msgid "Item received into stock" +msgstr "Товар получен на складе" + +#: src/forms/StockForms.tsx:80 +#: src/hooks/UsePlaceholder.tsx:57 +msgid "Next serial number" +msgstr "Следующий серийный номер" + #: src/forms/StockForms.tsx:110 #~ msgid "Create Stock Item" #~ msgstr "Create Stock Item" -#: src/forms/StockForms.tsx:117 +#: src/forms/StockForms.tsx:131 +msgid "Add given quantity as packs instead of individual items" +msgstr "" + +#: src/forms/StockForms.tsx:145 msgid "Enter initial quantity for this stock item" -msgstr "" +msgstr "Введите начальное количество для этого товара на складе" -#: src/forms/StockForms.tsx:124 -msgid "Serial Numbers" -msgstr "" - -#: src/forms/StockForms.tsx:125 +#: src/forms/StockForms.tsx:154 msgid "Enter serial numbers for new stock (or leave blank)" -msgstr "" +msgstr "Введите серийные номера для нового склада (или оставьте пустым)" #: src/forms/StockForms.tsx:158 #~ msgid "Stock item updated" #~ msgstr "Stock item updated" -#: src/forms/StockForms.tsx:179 -#: src/pages/stock/StockDetail.tsx:434 -#: src/tables/stock/StockItemTable.tsx:417 -#: src/tables/stock/StockItemTable.tsx:535 +#: src/forms/StockForms.tsx:169 +#: src/pages/stock/StockDetail.tsx:131 +msgid "Stock Status" +msgstr "" + +#: src/forms/StockForms.tsx:218 +#: src/pages/stock/StockDetail.tsx:554 +#: src/tables/stock/StockItemTable.tsx:421 +#: src/tables/stock/StockItemTable.tsx:541 msgid "Add Stock Item" +msgstr "Добавить товар на склад" + +#: src/forms/StockForms.tsx:262 +msgid "Select the part to install" msgstr "" -#: src/forms/StockForms.tsx:362 +#: src/forms/StockForms.tsx:480 msgid "Loading..." -msgstr "" +msgstr "Загрузка..." -#: src/forms/StockForms.tsx:408 +#: src/forms/StockForms.tsx:527 msgid "Move to default location" -msgstr "" +msgstr "Переместить в местоположение по умолчанию" -#: src/forms/StockForms.tsx:499 -#: src/forms/StockForms.tsx:533 -#: src/forms/StockForms.tsx:562 -#: src/forms/StockForms.tsx:590 -#: src/forms/StockForms.tsx:621 -#: src/forms/StockForms.tsx:656 -#: src/forms/StockForms.tsx:698 -#: src/forms/StockForms.tsx:734 -#: src/pages/part/PartDetail.tsx:230 -#: src/pages/part/PartDetail.tsx:843 -#: src/tables/stock/StockItemTable.tsx:325 +#: src/forms/StockForms.tsx:614 +#: src/forms/StockForms.tsx:651 +#: src/forms/StockForms.tsx:677 +#: src/forms/StockForms.tsx:705 +#: src/forms/StockForms.tsx:736 +#: src/forms/StockForms.tsx:771 +#: src/forms/StockForms.tsx:813 +#: src/forms/StockForms.tsx:851 +#: src/pages/part/PartDetail.tsx:251 +#: src/pages/part/PartDetail.tsx:875 +#: src/tables/stock/StockItemTable.tsx:329 msgid "In Stock" msgstr "В наличии" -#: src/forms/StockForms.tsx:499 +#: src/forms/StockForms.tsx:614 msgid "Move" -msgstr "" +msgstr "Переместить" -#: src/forms/StockForms.tsx:562 -#: src/pages/stock/StockDetail.tsx:518 -#: src/tables/stock/StockItemTestResultTable.tsx:328 +#: src/forms/StockForms.tsx:677 +#: src/pages/stock/StockDetail.tsx:681 +#: src/tables/stock/StockItemTestResultTable.tsx:346 msgid "Add" -msgstr "" +msgstr "Добавить" -#: src/forms/StockForms.tsx:590 -#: src/pages/Index/Scan.tsx:266 -#: src/pages/stock/StockDetail.tsx:508 +#: src/forms/StockForms.tsx:705 +#: src/pages/Index/Scan.tsx:280 +#: src/pages/stock/StockDetail.tsx:670 msgid "Count" -msgstr "" +msgstr "Количество" -#: src/forms/StockForms.tsx:835 +#: src/forms/StockForms.tsx:953 +#: src/pages/stock/StockDetail.tsx:682 +#: src/tables/stock/StockItemTable.tsx:454 msgid "Add Stock" msgstr "Добавить Остатки" -#: src/forms/StockForms.tsx:844 +#: src/forms/StockForms.tsx:962 +#: src/pages/stock/StockDetail.tsx:691 +#: src/tables/stock/StockItemTable.tsx:463 msgid "Remove Stock" msgstr "Удалить запасы" -#: src/forms/StockForms.tsx:853 -#: src/pages/part/PartDetail.tsx:1017 +#: src/forms/StockForms.tsx:971 +#: src/pages/part/PartDetail.tsx:1039 +#: src/pages/stock/StockDetail.tsx:712 +#: src/tables/stock/StockItemTable.tsx:483 msgid "Transfer Stock" msgstr "Перемещение запасов" -#: src/forms/StockForms.tsx:862 -#: src/pages/part/PartDetail.tsx:1006 +#: src/forms/StockForms.tsx:980 +#: src/pages/part/PartDetail.tsx:1028 +#: src/pages/stock/LocationDetail.tsx:314 +#: src/pages/stock/LocationDetail.tsx:318 +#: src/tables/stock/StockItemTable.tsx:472 +#: src/tables/stock/StockItemTable.tsx:476 msgid "Count Stock" msgstr "Подсчет остатков" -#: src/forms/StockForms.tsx:871 +#: src/forms/StockForms.tsx:989 msgid "Change Stock Status" msgstr "Изменить статус запасов" -#: src/forms/StockForms.tsx:880 +#: src/forms/StockForms.tsx:998 msgid "Merge Stock" msgstr "Объединить Запасы" -#: src/forms/StockForms.tsx:899 +#: src/forms/StockForms.tsx:1017 +#: src/tables/stock/StockItemTable.tsx:530 msgid "Delete Stock Items" msgstr "Удалить складскую позицию" -#: src/forms/StockForms.tsx:906 +#: src/forms/StockForms.tsx:1024 msgid "Parent stock location" -msgstr "" +msgstr "Расположение основного склада" #: src/functions/auth.tsx:34 #~ msgid "Error fetching token from server." @@ -3042,13 +3664,13 @@ msgstr "" #~ msgid "You have been logged out" #~ msgstr "You have been logged out" -#: src/functions/auth.tsx:117 +#: src/functions/auth.tsx:128 msgid "Logged Out" -msgstr "" +msgstr "Выход" -#: src/functions/auth.tsx:118 +#: src/functions/auth.tsx:129 msgid "Successfully logged out" -msgstr "" +msgstr "Успешный выход из системы" #: src/functions/auth.tsx:141 #~ msgid "Already logged in" @@ -3062,22 +3684,22 @@ msgstr "" #~ msgid "Found an existing login - welcome back!" #~ msgstr "Found an existing login - welcome back!" -#: src/functions/auth.tsx:156 +#: src/functions/auth.tsx:167 msgid "Check your inbox for a reset link. This only works if you have an account. Check in spam too." msgstr "Проверьте свой почтовый ящик, чтобы получить ссылку на сброс. Это работает только в том случае, если у вас есть учетная запись. Проверьте также спам." -#: src/functions/auth.tsx:163 +#: src/functions/auth.tsx:174 #: src/pages/Auth/Set-Password.tsx:39 msgid "Reset failed" -msgstr "" +msgstr "Сброс не удался" -#: src/functions/auth.tsx:194 +#: src/functions/auth.tsx:205 msgid "Logged In" -msgstr "" +msgstr "Войти в систему" -#: src/functions/auth.tsx:195 +#: src/functions/auth.tsx:206 msgid "Successfully logged in" -msgstr "" +msgstr "Вход выполнен успешно" #: src/functions/forms.tsx:50 #~ msgid "Form method not provided" @@ -3095,62 +3717,74 @@ msgstr "" #~ msgid "method parameter not supplied" #~ msgstr "method parameter not supplied" -#: src/functions/notifications.tsx:10 +#: src/functions/notifications.tsx:12 msgid "Not implemented" -msgstr "" +msgstr "Не реализовано" -#: src/functions/notifications.tsx:11 +#: src/functions/notifications.tsx:13 msgid "This feature is not yet implemented" -msgstr "" +msgstr "Эта функция еще не реализована" -#: src/functions/notifications.tsx:21 -msgid "Permission denied" -msgstr "" +#: src/functions/notifications.tsx:24 +#~ msgid "Permission denied" +#~ msgstr "Permission denied" -#: src/functions/notifications.tsx:22 +#: src/functions/notifications.tsx:25 msgid "You do not have permission to perform this action" -msgstr "" +msgstr "У вас нет прав на выполнение данного действия" -#: src/functions/notifications.tsx:33 +#: src/functions/notifications.tsx:36 msgid "Invalid Return Code" +msgstr "Неверный код возврата" + +#: src/functions/notifications.tsx:37 +msgid "Server returned status {returnCode}" +msgstr "Сервер вернул статус {returnCode}" + +#: src/functions/notifications.tsx:47 +msgid "Timeout" msgstr "" -#: src/functions/notifications.tsx:34 -msgid "Server returned status {returnCode}" +#: src/functions/notifications.tsx:48 +msgid "The request timed out" msgstr "" #: src/hooks/UseForm.tsx:88 msgid "Item Created" -msgstr "" +msgstr "Товар создан" #: src/hooks/UseForm.tsx:105 msgid "Item Updated" -msgstr "" +msgstr "Товар обновлен" #: src/hooks/UseForm.tsx:124 msgid "Item Deleted" -msgstr "" +msgstr "Товар удален" #: src/hooks/UseForm.tsx:128 msgid "Are you sure you want to delete this item?" -msgstr "" +msgstr "Вы уверены, что хотите удалить этот элемент?" + +#: src/hooks/UsePlaceholder.tsx:59 +msgid "Latest serial number" +msgstr "Последний серийный номер" #: src/pages/Auth/Logged-In.tsx:22 msgid "Checking if you are already logged in" -msgstr "" +msgstr "Проверка того, что вы уже вошли в систему" -#: src/pages/Auth/Login.tsx:31 -#: src/pages/Index/Scan.tsx:329 +#: src/pages/Auth/Login.tsx:35 +#: src/pages/Index/Scan.tsx:343 msgid "No selection" -msgstr "" +msgstr "Ничего не выбрано" -#: src/pages/Auth/Login.tsx:87 +#: src/pages/Auth/Login.tsx:91 msgid "Welcome, log in below" msgstr "Добро пожаловать, войдите ниже" -#: src/pages/Auth/Login.tsx:89 +#: src/pages/Auth/Login.tsx:93 msgid "Register below" -msgstr "" +msgstr "Зарегистрируйтесь ниже" #: src/pages/Auth/Login.tsx:121 #~ msgid "Edit host options" @@ -3158,38 +3792,38 @@ msgstr "" #: src/pages/Auth/Logout.tsx:22 msgid "Logging out" -msgstr "" +msgstr "Выход из системы" #: src/pages/Auth/Reset.tsx:41 #: src/pages/Auth/Set-Password.tsx:112 -msgid "Send mail" -msgstr "Отправить письмо" +#~ msgid "Send mail" +#~ msgstr "Send mail" #: src/pages/Auth/Set-Password.tsx:30 msgid "Token invalid" -msgstr "" +msgstr "Токен недействителен" #: src/pages/Auth/Set-Password.tsx:31 msgid "You need to provide a valid token to set a new password. Check your inbox for a reset link." msgstr "Для установки нового пароля необходимо предоставить действующий токен. Проверьте свой почтовый ящик, чтобы получить ссылку на сброс пароля." #: src/pages/Auth/Set-Password.tsx:49 -msgid "No token provided" -msgstr "Не указан токен" +#~ msgid "No token provided" +#~ msgstr "No token provided" #: src/pages/Auth/Set-Password.tsx:50 -msgid "You need to provide a token to set a new password. Check your inbox for a reset link." -msgstr "Для установки нового пароля необходимо предоставить токен. Проверьте свой почтовый ящик, чтобы получить ссылку на сброс пароля." +#~ msgid "You need to provide a token to set a new password. Check your inbox for a reset link." +#~ msgstr "You need to provide a token to set a new password. Check your inbox for a reset link." -#: src/pages/Auth/Set-Password.tsx:73 +#: src/pages/Auth/Set-Password.tsx:68 msgid "Password set" msgstr "Пароль установлен" -#: src/pages/Auth/Set-Password.tsx:74 +#: src/pages/Auth/Set-Password.tsx:69 msgid "The password was set successfully. You can now login with your new password" msgstr "Пароль был установлен успешно. Теперь вы можете войти в систему с новым паролем" -#: src/pages/Auth/Set-Password.tsx:101 +#: src/pages/Auth/Set-Password.tsx:96 msgid "Set new password" msgstr "Установить новый пароль" @@ -3199,27 +3833,27 @@ msgstr "Ошибка: {0}" #: src/pages/ErrorPage.tsx:23 msgid "An unexpected error has occurred" -msgstr "" +msgstr "Произошла неожиданная ошибка" #: src/pages/ErrorPage.tsx:28 #~ msgid "Sorry, an unexpected error has occurred." #~ msgstr "Sorry, an unexpected error has occurred." #: src/pages/Index/Dashboard.tsx:22 -msgid "Autoupdate" -msgstr "Автообновление" +#~ msgid "Autoupdate" +#~ msgstr "Autoupdate" #: src/pages/Index/Dashboard.tsx:26 -msgid "This page is a replacement for the old start page with the same information. This page will be deprecated and replaced by the home page." -msgstr "" +#~ msgid "This page is a replacement for the old start page with the same information. This page will be deprecated and replaced by the home page." +#~ msgstr "This page is a replacement for the old start page with the same information. This page will be deprecated and replaced by the home page." #: src/pages/Index/Home.tsx:58 -msgid "Welcome to your Dashboard{0}" -msgstr "" +#~ msgid "Welcome to your Dashboard{0}" +#~ msgstr "Welcome to your Dashboard{0}" #: src/pages/Index/Playground.tsx:222 -msgid "This page is a showcase for the possibilities of Platform UI." -msgstr "" +#~ msgid "This page is a showcase for the possibilities of Platform UI." +#~ msgstr "This page is a showcase for the possibilities of Platform UI." #: src/pages/Index/Profile/Profile.tsx:30 #: src/pages/Index/Profile/Profile.tsx:141 @@ -3359,132 +3993,197 @@ msgstr "" #: src/pages/Index/Scan.tsx:216 msgid "Manual input" -msgstr "" +msgstr "Ввести вручную" #: src/pages/Index/Scan.tsx:217 msgid "Image Barcode" -msgstr "" - -#: src/pages/Index/Scan.tsx:247 -msgid "Selected elements are not known" -msgstr "" - -#: src/pages/Index/Scan.tsx:254 -msgid "Multiple object types selected" -msgstr "" +msgstr "Изображение штрих-кода" #: src/pages/Index/Scan.tsx:261 -msgid "Actions for {0}" -msgstr "" +msgid "Selected elements are not known" +msgstr "Выбранные элементы не известны" -#: src/pages/Index/Scan.tsx:282 +#: src/pages/Index/Scan.tsx:268 +msgid "Multiple object types selected" +msgstr "Выбрано несколько типов объектов" + +#: src/pages/Index/Scan.tsx:275 +msgid "Actions for {0}" +msgstr "Действия для {0}" + +#: src/pages/Index/Scan.tsx:296 msgid "Scan Page" msgstr "Сканировать страницу" -#: src/pages/Index/Scan.tsx:285 +#: src/pages/Index/Scan.tsx:299 msgid "This page can be used for continuously scanning items and taking actions on them." -msgstr "" +msgstr "Эту страницу можно использовать для постоянного сканирования элементов и выполнения действий с ними." -#: src/pages/Index/Scan.tsx:292 +#: src/pages/Index/Scan.tsx:306 msgid "Toggle Fullscreen" -msgstr "" +msgstr "На весь экран" -#: src/pages/Index/Scan.tsx:305 +#: src/pages/Index/Scan.tsx:319 msgid "Select the input method you want to use to scan items." -msgstr "" +msgstr "Выберите метод, который вы хотите использовать для сканирования элементов." -#: src/pages/Index/Scan.tsx:307 +#: src/pages/Index/Scan.tsx:321 msgid "Input" -msgstr "" +msgstr "Ввод" -#: src/pages/Index/Scan.tsx:314 +#: src/pages/Index/Scan.tsx:328 msgid "Select input method" -msgstr "" +msgstr "Выбрать способ ввода" -#: src/pages/Index/Scan.tsx:315 +#: src/pages/Index/Scan.tsx:329 msgid "Nothing found" -msgstr "" +msgstr "Ничего не найдено" -#: src/pages/Index/Scan.tsx:323 +#: src/pages/Index/Scan.tsx:337 msgid "Depending on the selected parts actions will be shown here. Not all barcode types are supported currently." -msgstr "" +msgstr "Здесь будут показаны действия в зависимости от выбранных частей. Не все штрих-коды поддерживаются в данный момент." -#: src/pages/Index/Scan.tsx:325 +#: src/pages/Index/Scan.tsx:339 msgid "Action" -msgstr "" +msgstr "Действие" -#: src/pages/Index/Scan.tsx:334 +#: src/pages/Index/Scan.tsx:348 msgid "{0} items selected" msgstr "{0} объектов выбраны" -#: src/pages/Index/Scan.tsx:337 -msgid "General Actions" -msgstr "" - #: src/pages/Index/Scan.tsx:351 +msgid "General Actions" +msgstr "Основные действия" + +#: src/pages/Index/Scan.tsx:365 msgid "Lookup part" msgstr "" -#: src/pages/Index/Scan.tsx:359 +#: src/pages/Index/Scan.tsx:373 msgid "Open Link" msgstr "Открыть ссылку" -#: src/pages/Index/Scan.tsx:375 +#: src/pages/Index/Scan.tsx:389 msgid "History is locally kept in this browser." -msgstr "" +msgstr "История хранится локально в этом браузере." -#: src/pages/Index/Scan.tsx:376 +#: src/pages/Index/Scan.tsx:390 msgid "The history is kept in this browser's local storage. So it won't be shared with other users or other devices but is persistent through reloads. You can select items in the history to perform actions on them. To add items, scan/enter them in the Input area." -msgstr "" +msgstr "История хранится в локальном хранилище этого браузера. Поэтому она не будет передана другим пользователям или другим устройствам, но будет постоянно обновляться при перезагрузке. Вы можете выбрать элементы в истории для выполнения действий над ними. Чтобы добавить элементы, сканирование/введите их в области ввода." -#: src/pages/Index/Scan.tsx:378 +#: src/pages/Index/Scan.tsx:392 #: src/pages/Notifications.tsx:100 msgid "History" msgstr "История" -#: src/pages/Index/Scan.tsx:384 +#: src/pages/Index/Scan.tsx:398 msgid "Delete History" -msgstr "" +msgstr "Удалить историю" -#: src/pages/Index/Scan.tsx:449 +#: src/pages/Index/Scan.tsx:463 msgid "No history" msgstr "Нет истории" -#: src/pages/Index/Scan.tsx:467 +#: src/pages/Index/Scan.tsx:481 msgid "Item" msgstr "Элемент" -#: src/pages/Index/Scan.tsx:470 +#: src/pages/Index/Scan.tsx:484 msgid "Type" msgstr "Тип" -#: src/pages/Index/Scan.tsx:473 +#: src/pages/Index/Scan.tsx:487 msgid "Source" msgstr "Источник" -#: src/pages/Index/Scan.tsx:476 +#: src/pages/Index/Scan.tsx:490 msgid "Scanned at" msgstr "Отсканировано в" -#: src/pages/Index/Scan.tsx:528 +#: src/pages/Index/Scan.tsx:547 msgid "Enter item serial or data" -msgstr "" +msgstr "Введите серийный номер или данные" -#: src/pages/Index/Scan.tsx:540 +#: src/pages/Index/Scan.tsx:559 msgid "Add dummy item" msgstr "" +#: src/pages/Index/Scan.tsx:569 +msgid "Start scanning by selecting a camera and pressing the play button." +msgstr "Начните сканирование, выбрав камеру и нажав кнопку воспроизведения." + +#: src/pages/Index/Scan.tsx:650 +msgid "Error while getting camera" +msgstr "Ошибка при получении камеры" + +#: src/pages/Index/Scan.tsx:673 +msgid "Error while scanning" +msgstr "Ошибка при сканировании" + +#: src/pages/Index/Scan.tsx:687 +msgid "Error while stopping" +msgstr "Ошибка при остановке" + +#: src/pages/Index/Scan.tsx:745 +msgid "Stop scanning" +msgstr "Остановить сканирование" + +#: src/pages/Index/Scan.tsx:754 +msgid "Start scanning" +msgstr "Начать сканирование" + +#: src/pages/Index/Scan.tsx:763 +msgid "Scanning" +msgstr "Сканирование" + +#: src/pages/Index/Scan.tsx:763 +msgid "Not scanning" +msgstr "Не сканировать" + +#: src/pages/Index/Scan.tsx:775 +msgid "Select Camera" +msgstr "Выбрать камеру" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:28 +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:50 +msgid "Edit User Information" +msgstr "Редактировать информацию о пользователе" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:32 +msgid "User details updated" +msgstr "Информация о пользователе обновлена" + #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:41 -msgid "Account Details" +msgid "User Details" msgstr "" +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:41 +#~ msgid "Account Details" +#~ msgstr "Account Details" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:44 +msgid "User Actions" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:48 +msgid "Edit User" +msgstr "Редактировать пользователя" + #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:50 -msgid "First name" +#~ msgid "First name" +#~ msgstr "First name" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:54 +msgid "Set Password" msgstr "" #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:55 -msgid "Last name" -msgstr "" +#~ msgid "Last name" +#~ msgstr "Last name" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:56 +msgid "Set User Password" +msgstr "Установить пароль пользователя" #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:58 #~ msgid "First name: {0}" @@ -3495,29 +4194,42 @@ msgstr "" #~ msgstr "Last name: {0}" #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:67 -msgid "First name:" -msgstr "" +#~ msgid "First name:" +#~ msgstr "First name:" #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:71 -msgid "Last name:" +#~ msgid "Last name:" +#~ msgstr "Last name:" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:73 +msgid "First Name" msgstr "" -#: src/pages/Index/Settings/AccountSettings/DisplaySettingsPanel.tsx:41 -msgid "Use pseudo language" +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:79 +msgid "Last Name" +msgstr "Фамилия" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:85 +msgid "Staff Access" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:93 +#: src/tables/settings/UserTable.tsx:293 +msgid "Superuser" msgstr "" #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:55 msgid "Single Sign On Accounts" -msgstr "" +msgstr "Учетные записи с единым входом" #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:62 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:80 msgid "Not enabled" -msgstr "" +msgstr "Не включен" #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:65 msgid "Single Sign On is not enabled for this server" -msgstr "" +msgstr "Единая регистрация не включена для этого сервера" #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:69 msgid "Multifactor" @@ -3525,143 +4237,158 @@ msgstr "" #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:83 msgid "Multifactor authentication is not configured for your account" -msgstr "" +msgstr "Многофакторная аутентификация не настроена для вашей учетной записи" #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:92 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:407 msgid "Token" -msgstr "" +msgstr "Токен" #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:139 msgid "The following email addresses are associated with your account:" -msgstr "" +msgstr "С вашей учетной записью связаны следующие адреса электронной почты:" #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:151 msgid "Primary" -msgstr "" +msgstr "Основной" #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:156 msgid "Verified" -msgstr "" +msgstr "Проверено" #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:160 msgid "Unverified" -msgstr "" +msgstr "Непроверенный" #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:173 msgid "Add Email Address" -msgstr "" +msgstr "Добавить адрес электронной почты" #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:176 msgid "E-Mail" -msgstr "" +msgstr "Электронная почта" #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:177 msgid "E-Mail address" -msgstr "" +msgstr "Адрес электронной почты" #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:189 msgid "Make Primary" -msgstr "" +msgstr "Сделать основным" #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:194 msgid "Re-send Verification" -msgstr "" +msgstr "Отправить подтверждение повторно" #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:205 msgid "Add Email" -msgstr "" +msgstr "Добавить Email" #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:270 msgid "Provider has not been configured" -msgstr "" +msgstr "Провайдер не был настроен" #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:280 msgid "Not configured" -msgstr "" +msgstr "Не настроено" #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:283 msgid "There are no social network accounts connected to this account." -msgstr "" +msgstr "К этой учетной записи не подключены аккаунты социальных сетей." #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:293 msgid "You can sign in to your account using any of the following third party accounts" -msgstr "" +msgstr "Вы можете войти в свою учетную запись, используя любую из следующих учетных записей третьих лиц" #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:368 msgid "Token is used - no actions" -msgstr "" +msgstr "Токен используется - никаких действий" #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:375 msgid "Revoke" -msgstr "" +msgstr "Отменить" #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:389 msgid "No tokens configured" -msgstr "" - -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:398 -#: src/pages/part/PartDetail.tsx:297 -#: src/tables/bom/UsedInTable.tsx:84 -#: src/tables/build/BuildOrderTable.tsx:110 -#: src/tables/company/CompanyTable.tsx:61 -#: src/tables/company/CompanyTable.tsx:95 -#: src/tables/machine/MachineListTable.tsx:332 -#: src/tables/machine/MachineListTable.tsx:594 -#: src/tables/part/ParametricPartTable.tsx:223 -#: src/tables/part/PartTable.tsx:178 -#: src/tables/part/PartVariantTable.tsx:15 -#: src/tables/plugin/PluginListTable.tsx:149 -#: src/tables/plugin/PluginListTable.tsx:271 -#: src/tables/plugin/PluginListTable.tsx:563 -#: src/tables/purchasing/SupplierPartTable.tsx:98 -#: src/tables/purchasing/SupplierPartTable.tsx:187 -#: src/tables/settings/UserTable.tsx:284 -#: src/tables/stock/StockItemTable.tsx:289 -msgid "Active" -msgstr "" +msgstr "Токены не настроены" #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:401 msgid "Expiry" -msgstr "" +msgstr "Срок действия" #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:404 msgid "Last Seen" -msgstr "" +msgstr "Последнее Посещение" #: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:65 -msgid "bars" -msgstr "" +#~ msgid "bars" +#~ msgstr "bars" #: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:66 -msgid "oval" -msgstr "" +#~ msgid "oval" +#~ msgstr "oval" #: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:67 -msgid "dots" -msgstr "" +#~ msgid "dots" +#~ msgstr "dots" #: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:81 -msgid "Theme" -msgstr "" +#~ msgid "Theme" +#~ msgstr "Theme" #: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:87 -msgid "Primary color" +#~ msgid "Primary color" +#~ msgstr "Primary color" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:88 +msgid "Bars" msgstr "" -#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:100 +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:89 +msgid "Oval" +msgstr "Овал" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:90 +msgid "Dots" +msgstr "Точки" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:101 +msgid "Display Settings" +msgstr "Настройки отображения" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:107 +msgid "Language" +msgstr "Язык" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:115 +msgid "Use pseudo language" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:122 +msgid "Color Mode" +msgstr "Цветовое оформление" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:133 +msgid "Highlight color" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:145 +msgid "Example" +msgstr "Пример" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:151 msgid "White color" msgstr "" -#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:108 +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:167 msgid "Black color" msgstr "" -#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:116 +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:183 msgid "Border Radius" msgstr "" -#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:132 +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:199 msgid "Loader" msgstr "" @@ -3673,89 +4400,156 @@ msgstr "" #~ msgid "Advanced Amininistrative Options for InvenTree" #~ msgstr "Advanced Amininistrative Options for InvenTree" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:104 +#: src/pages/Index/Settings/AdminCenter/CurrencyManagmentPanel.tsx:27 +#: src/tables/ColumnRenderers.tsx:262 +msgid "Currency" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/CurrencyManagmentPanel.tsx:32 +msgid "Rate" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/CurrencyManagmentPanel.tsx:44 +msgid "Exchange rates updated" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/CurrencyManagmentPanel.tsx:50 +msgid "Exchange rate update error" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/CurrencyManagmentPanel.tsx:62 +msgid "Refresh currency exchange rates" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/CurrencyManagmentPanel.tsx:99 +msgid "Last fetched" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/CurrencyManagmentPanel.tsx:100 +msgid "Base currency" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:115 msgid "Data Import" msgstr "" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:110 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:121 +msgid "Barcode Scans" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:127 msgid "Background Tasks" msgstr "" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:116 -msgid "Error Reports" -msgstr "" - -#: src/pages/Index/Settings/AdminCenter/Index.tsx:122 -msgid "Currencies" -msgstr "" - #: src/pages/Index/Settings/AdminCenter/Index.tsx:127 #~ msgid "Templates" #~ msgstr "Templates" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:140 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:133 +msgid "Error Reports" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:139 +msgid "Currencies" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:157 +msgid "Custom States" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:163 +#: src/pages/Index/Settings/AdminCenter/UnitManagmentPanel.tsx:58 msgid "Custom Units" msgstr "Специальная единица" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:146 -#: src/pages/part/CategoryDetail.tsx:264 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:169 +#: src/pages/part/CategoryDetail.tsx:269 msgid "Part Parameters" msgstr "" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:152 -msgid "Category Parameters" -msgstr "" - -#: src/pages/Index/Settings/AdminCenter/Index.tsx:170 -msgid "Location Types" -msgstr "" - #: src/pages/Index/Settings/AdminCenter/Index.tsx:170 #~ msgid "Location types" #~ msgstr "Location types" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:182 -#: src/tables/machine/MachineTypeTable.tsx:287 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:175 +msgid "Category Parameters" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:181 +msgid "Stocktake" +msgstr "Инвентаризация" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:199 +msgid "Location Types" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:211 +#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:48 +#: src/tables/machine/MachineTypeTable.tsx:308 msgid "Machines" msgstr "" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:192 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:221 msgid "Quick Actions" msgstr "" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:197 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:226 msgid "Add a new user" msgstr "" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:222 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:252 msgid "Advanced Options" msgstr "" #: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:43 -msgid "Machine types" -msgstr "" +#~ msgid "Machine types" +#~ msgstr "Machine types" #: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:53 -msgid "Machine Error Stack" +#~ msgid "Machine Error Stack" +#~ msgstr "Machine Error Stack" + +#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:56 +msgid "Machine Types" msgstr "" #: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:62 -msgid "There are no machine registry errors." +#~ msgid "There are no machine registry errors." +#~ msgstr "There are no machine registry errors." + +#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:64 +msgid "Machine Errors" msgstr "" -#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:28 -#: src/tables/settings/UserTable.tsx:119 +#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:77 +msgid "Registry Registry Errors" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:80 +msgid "There are machine registry errors" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:86 +msgid "Machine Registry Errors" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:89 +msgid "There are no machine registry errors" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:31 +#: src/tables/settings/UserTable.tsx:118 msgid "Info" msgstr "" -#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:32 -msgid "External plugins are not enabled for this InvenTree installation." -msgstr "" - #: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:33 #~ msgid "Plugin Error Stack" #~ msgstr "Plugin Error Stack" +#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:35 +msgid "External plugins are not enabled for this InvenTree installation." +msgstr "" + #: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:45 #~ msgid "Warning" #~ msgstr "Warning" @@ -3764,36 +4558,48 @@ msgstr "" #~ msgid "Changing the settings below require you to immediately restart the server. Do not change this while under active usage." #~ msgstr "Changing the settings below require you to immediately restart the server. Do not change this while under active usage." -#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:50 +#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:73 msgid "Plugin Errors" +msgstr "Ошибки плагина" + +#: src/pages/Index/Settings/AdminCenter/ReportTemplatePanel.tsx:17 +msgid "Page Size" msgstr "" -#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:59 -msgid "Plugin Settings" +#: src/pages/Index/Settings/AdminCenter/ReportTemplatePanel.tsx:20 +msgid "Landscape" +msgstr "Альбомный" + +#: src/pages/Index/Settings/AdminCenter/ReportTemplatePanel.tsx:26 +msgid "Attach to Model" msgstr "" -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:53 -msgid "Background Worker Not Running" +#: src/pages/Index/Settings/AdminCenter/StocktakePanel.tsx:25 +msgid "Stocktake Reports" msgstr "" -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:54 +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:30 msgid "The background task manager service is not running. Contact your system administrator." -msgstr "" +msgstr "Служба управления фоновыми задачами не запущена. Обратитесь к системному администратору." -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:60 -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:76 +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:35 +#~ msgid "Background Worker Not Running" +#~ msgstr "Background Worker Not Running" + +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:36 +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:45 msgid "Pending Tasks" -msgstr "" +msgstr "Ожидающие задачи" -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:64 -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:84 +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:37 +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:53 msgid "Scheduled Tasks" -msgstr "" +msgstr "Запланированные задания" -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:68 -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:92 +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:38 +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:61 msgid "Failed Tasks" -msgstr "" +msgstr "Невыполненные Задачи" #: src/pages/Index/Settings/AdminCenter/TemplateManagementPanel.tsx:39 #~ msgid "Label" @@ -3811,11 +4617,6 @@ msgstr "" #~ msgid "Reports" #~ msgstr "Reports" -#: src/pages/Index/Settings/AdminCenter/TemplateManagementPanel.tsx:89 -#: src/pages/build/BuildDetail.tsx:373 -#~ msgid "Report" -#~ msgstr "Report" - #: src/pages/Index/Settings/AdminCenter/TemplateManagementPanel.tsx:99 #~ msgid "Purchase order" #~ msgstr "Purchase order" @@ -3836,25 +4637,37 @@ msgstr "" #~ msgid "Stock location" #~ msgstr "Stock location" +#: src/pages/Index/Settings/AdminCenter/UnitManagmentPanel.tsx:21 +msgid "Alias" +msgstr "Псевдоним" + +#: src/pages/Index/Settings/AdminCenter/UnitManagmentPanel.tsx:22 +msgid "Dimensionless" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/UnitManagmentPanel.tsx:66 +msgid "All units" +msgstr "" + #: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:32 msgid "Select settings relevant for user lifecycle. More available in" msgstr "" #: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:37 -msgid "System settings" -msgstr "" +#~ msgid "System settings" +#~ msgstr "System settings" -#: src/pages/Index/Settings/SystemSettings.tsx:67 +#: src/pages/Index/Settings/SystemSettings.tsx:66 msgid "Login" -msgstr "" +msgstr "Войти" -#: src/pages/Index/Settings/SystemSettings.tsx:93 +#: src/pages/Index/Settings/SystemSettings.tsx:92 msgid "Barcodes" -msgstr "" +msgstr "Штрих-коды" -#: src/pages/Index/Settings/SystemSettings.tsx:115 +#: src/pages/Index/Settings/SystemSettings.tsx:116 msgid "Pricing" -msgstr "" +msgstr "Цены" #: src/pages/Index/Settings/SystemSettings.tsx:118 #~ msgid "Physical Units" @@ -3864,64 +4677,46 @@ msgstr "" #~ msgid "Exchange Rates" #~ msgstr "Exchange Rates" -#: src/pages/Index/Settings/SystemSettings.tsx:150 +#: src/pages/Index/Settings/SystemSettings.tsx:151 msgid "Labels" -msgstr "" +msgstr "Метки" -#: src/pages/Index/Settings/SystemSettings.tsx:156 -#: src/pages/Index/Settings/UserSettings.tsx:132 +#: src/pages/Index/Settings/SystemSettings.tsx:157 +#: src/pages/Index/Settings/UserSettings.tsx:133 msgid "Reporting" -msgstr "" +msgstr "Отчеты" #: src/pages/Index/Settings/SystemSettings.tsx:231 -#: src/pages/part/PartDetail.tsx:682 -msgid "Stocktake" -msgstr "" - -#: src/pages/Index/Settings/SystemSettings.tsx:237 -#: src/pages/build/BuildDetail.tsx:554 -#: src/pages/build/BuildIndex.tsx:22 -#: src/pages/part/PartDetail.tsx:616 -#: src/pages/sales/SalesOrderDetail.tsx:333 +#: src/pages/build/BuildIndex.tsx:27 +#: src/pages/part/PartDetail.tsx:636 +#: src/pages/sales/SalesOrderDetail.tsx:355 msgid "Build Orders" msgstr "Заказы на сборку" -#: src/pages/Index/Settings/SystemSettings.tsx:318 -msgid "Switch to User Setting" -msgstr "" +#: src/pages/Index/Settings/SystemSettings.tsx:317 +#~ msgid "Switch to User Setting" +#~ msgstr "Switch to User Setting" -#: src/pages/Index/Settings/UserSettings.tsx:34 +#: src/pages/Index/Settings/UserSettings.tsx:35 msgid "Account" -msgstr "" +msgstr "Аккаунт" -#: src/pages/Index/Settings/UserSettings.tsx:40 +#: src/pages/Index/Settings/UserSettings.tsx:41 msgid "Security" -msgstr "" +msgstr "Безопасность" -#: src/pages/Index/Settings/UserSettings.tsx:78 +#: src/pages/Index/Settings/UserSettings.tsx:79 msgid "Display Options" -msgstr "" +msgstr "Параметры отображения" -#: src/pages/Index/Settings/UserSettings.tsx:150 -msgid "Account Settings" -msgstr "" - -#: src/pages/Index/Settings/UserSettings.tsx:158 -msgid "Switch to System Setting" -msgstr "" - -#: src/pages/Index/UserSettings.tsx:103 -#~ msgid "User Settings" -#~ msgstr "User Settings" +#: src/pages/Index/Settings/UserSettings.tsx:159 +#~ msgid "Switch to System Setting" +#~ msgstr "Switch to System Setting" #: src/pages/Logged-In.tsx:24 #~ msgid "Found an exsisting login - using it to log you in." #~ msgstr "Found an exsisting login - using it to log you in." -#: src/pages/NotFound.tsx:17 -#~ msgid "Not Found" -#~ msgstr "Not Found" - #: src/pages/NotFound.tsx:20 #~ msgid "Sorry, this page is not known or was moved." #~ msgstr "Sorry, this page is not known or was moved." @@ -3932,97 +4727,85 @@ msgstr "" #: src/pages/Notifications.tsx:43 msgid "Delete Notifications" -msgstr "" +msgstr "Удалить уведомление" #: src/pages/Notifications.tsx:108 msgid "Mark as unread" -msgstr "" +msgstr "Пометить как непрочитанное" #: src/pages/build/BuildDetail.tsx:80 #~ msgid "Build Status" #~ msgstr "Build Status" -#: src/pages/build/BuildDetail.tsx:102 -#: src/pages/part/PartDetail.tsx:150 +#: src/pages/build/BuildDetail.tsx:97 +#: src/pages/company/ManufacturerPartDetail.tsx:81 +#: src/pages/company/SupplierPartDetail.tsx:91 +#: src/pages/part/PartDetail.tsx:171 +#: src/pages/stock/StockDetail.tsx:122 #: src/tables/bom/BomTable.tsx:118 #: src/tables/bom/UsedInTable.tsx:39 -#: src/tables/build/BuildLineTable.tsx:173 -#: src/tables/build/BuildOrderTable.tsx:55 -#: src/tables/sales/SalesOrderLineItemTable.tsx:62 -#: src/tables/stock/StockItemTable.tsx:53 +#: src/tables/build/BuildAllocatedStockTable.tsx:104 +#: src/tables/build/BuildLineTable.tsx:324 +#: src/tables/build/BuildOrderTable.tsx:64 +#: src/tables/sales/SalesOrderLineItemTable.tsx:70 +#: src/tables/stock/StockItemTable.tsx:54 msgid "IPN" -msgstr "" +msgstr "Internal Part Number" -#: src/pages/build/BuildDetail.tsx:115 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:121 -#: src/pages/sales/ReturnOrderDetail.tsx:95 -#: src/pages/sales/SalesOrderDetail.tsx:101 -#: src/tables/ColumnRenderers.tsx:121 -#: src/tables/build/BuildAllocatedStockTable.tsx:90 -#: src/tables/build/BuildLineTable.tsx:184 +#: src/pages/build/BuildDetail.tsx:110 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:115 +#: src/pages/sales/ReturnOrderDetail.tsx:86 +#: src/pages/sales/SalesOrderDetail.tsx:95 +#: src/tables/ColumnRenderers.tsx:132 +#: src/tables/build/BuildAllocatedStockTable.tsx:111 +#: src/tables/build/BuildLineTable.tsx:335 msgid "Reference" -msgstr "" +msgstr "Ссылка" -#: src/pages/build/BuildDetail.tsx:121 -#: src/pages/company/CompanyDetail.tsx:90 -#: src/pages/company/ManufacturerPartDetail.tsx:83 -#: src/pages/company/SupplierPartDetail.tsx:96 -#: src/pages/part/CategoryDetail.tsx:101 -#: src/pages/part/PartDetail.tsx:157 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:142 -#: src/pages/sales/ReturnOrderDetail.tsx:115 -#: src/pages/sales/SalesOrderDetail.tsx:121 -#: src/pages/stock/LocationDetail.tsx:109 -#: src/tables/ColumnRenderers.tsx:81 -#: src/tables/bom/UsedInTable.tsx:44 -#: src/tables/build/BuildAllocatedStockTable.tsx:70 -#: src/tables/build/BuildLineTable.tsx:178 -#: src/tables/machine/MachineTypeTable.tsx:69 -#: src/tables/machine/MachineTypeTable.tsx:112 -#: src/tables/machine/MachineTypeTable.tsx:219 -#: src/tables/machine/MachineTypeTable.tsx:323 -#: src/tables/part/RelatedPartTable.tsx:64 -#: src/tables/plugin/PluginListTable.tsx:129 -#: src/tables/plugin/PluginListTable.tsx:276 -#: src/tables/sales/SalesOrderAllocationTable.tsx:56 -#: src/tables/sales/SalesOrderLineItemTable.tsx:67 -#: src/tables/stock/LocationTypesTable.tsx:74 -msgid "Description" -msgstr "Описание" - -#: src/pages/build/BuildDetail.tsx:129 +#: src/pages/build/BuildDetail.tsx:124 msgid "Parent Build" msgstr "" -#: src/pages/build/BuildDetail.tsx:140 +#: src/pages/build/BuildDetail.tsx:135 msgid "Build Quantity" msgstr "" -#: src/pages/build/BuildDetail.tsx:148 -#: src/pages/build/BuildDetail.tsx:274 +#: src/pages/build/BuildDetail.tsx:143 +#: src/pages/build/BuildDetail.tsx:277 msgid "Completed Outputs" msgstr "" -#: src/pages/build/BuildDetail.tsx:165 -#: src/tables/build/BuildOrderTable.tsx:151 +#: src/pages/build/BuildDetail.tsx:160 +#: src/tables/build/BuildOrderTable.tsx:142 msgid "Issued By" msgstr "" -#: src/pages/build/BuildDetail.tsx:172 -#: src/pages/part/PartDetail.tsx:365 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:220 -#: src/pages/sales/ReturnOrderDetail.tsx:199 -#: src/pages/sales/SalesOrderDetail.tsx:208 -#: src/tables/build/BuildOrderTable.tsx:157 -#: src/tables/purchasing/PurchaseOrderTable.tsx:75 -#: src/tables/sales/ReturnOrderTable.tsx:66 -#: src/tables/sales/SalesOrderTable.tsx:73 +#: src/pages/build/BuildDetail.tsx:167 +#: src/pages/part/PartDetail.tsx:406 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:244 +#: src/pages/sales/ReturnOrderDetail.tsx:216 +#: src/pages/sales/SalesOrderDetail.tsx:226 +#: src/tables/build/BuildOrderTable.tsx:148 +#: src/tables/purchasing/PurchaseOrderTable.tsx:76 +#: src/tables/sales/ReturnOrderTable.tsx:74 +#: src/tables/sales/SalesOrderTable.tsx:74 msgid "Responsible" -msgstr "" +msgstr "Ответственный" -#: src/pages/build/BuildDetail.tsx:179 -#: src/tables/settings/PendingTasksTable.tsx:32 +#: src/pages/build/BuildDetail.tsx:174 +#: src/tables/settings/PendingTasksTable.tsx:36 msgid "Created" +msgstr "Создано" + +#: src/pages/build/BuildDetail.tsx:181 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:229 +#: src/pages/sales/ReturnOrderDetail.tsx:201 +#: src/pages/sales/SalesOrderDetail.tsx:212 +#: src/tables/ColumnRenderers.tsx:226 +#: src/tables/part/PartPurchaseOrdersTable.tsx:100 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:135 +#: src/tables/sales/SalesOrderLineItemTable.tsx:107 +msgid "Target Date" msgstr "" #: src/pages/build/BuildDetail.tsx:185 @@ -4031,26 +4814,16 @@ msgstr "" #~ msgid "View part barcode" #~ msgstr "View part barcode" -#: src/pages/build/BuildDetail.tsx:186 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:213 -#: src/pages/sales/ReturnOrderDetail.tsx:192 -#: src/pages/sales/SalesOrderDetail.tsx:201 -#: src/tables/ColumnRenderers.tsx:212 -#: src/tables/part/PartPurchaseOrdersTable.tsx:99 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:110 -#: src/tables/sales/SalesOrderLineItemTable.tsx:99 -msgid "Target Date" -msgstr "" +#: src/pages/build/BuildDetail.tsx:188 +#: src/tables/sales/SalesOrderLineItemTable.tsx:281 +msgid "Completed" +msgstr "Завершено" #: src/pages/build/BuildDetail.tsx:190 #: src/pages/part/PartDetail.tsx:274 #~ msgid "Link custom barcode to part" #~ msgstr "Link custom barcode to part" -#: src/pages/build/BuildDetail.tsx:193 -msgid "Completed" -msgstr "" - #: src/pages/build/BuildDetail.tsx:196 #: src/pages/part/PartDetail.tsx:280 #~ msgid "Unlink custom barcode from part" @@ -4060,17 +4833,13 @@ msgstr "" #~ msgid "Build Order updated" #~ msgstr "Build Order updated" -#: src/pages/build/BuildDetail.tsx:205 -msgid "Source Location" -msgstr "" - -#: src/pages/build/BuildDetail.tsx:206 +#: src/pages/build/BuildDetail.tsx:209 msgid "Any location" -msgstr "" +msgstr "Любое расположение" -#: src/pages/build/BuildDetail.tsx:213 +#: src/pages/build/BuildDetail.tsx:216 msgid "Destination Location" -msgstr "" +msgstr "Место назначения" #: src/pages/build/BuildDetail.tsx:221 #~ msgid "Edit build order" @@ -4084,206 +4853,182 @@ msgstr "" #~ msgid "Delete build order" #~ msgstr "Delete build order" -#: src/pages/build/BuildDetail.tsx:251 +#: src/pages/build/BuildDetail.tsx:254 msgid "Build Details" msgstr "Подробности сборки" -#: src/pages/build/BuildDetail.tsx:257 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:258 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:267 -#: src/pages/sales/ReturnOrderDetail.tsx:130 -#: src/pages/sales/ReturnOrderDetail.tsx:237 -#: src/pages/sales/ReturnOrderDetail.tsx:246 -#: src/pages/sales/SalesOrderDetail.tsx:272 -#: src/pages/sales/SalesOrderDetail.tsx:281 +#: src/pages/build/BuildDetail.tsx:260 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:282 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:291 +#: src/pages/sales/ReturnOrderDetail.tsx:122 +#: src/pages/sales/ReturnOrderDetail.tsx:254 +#: src/pages/sales/ReturnOrderDetail.tsx:263 +#: src/pages/sales/SalesOrderDetail.tsx:294 +#: src/pages/sales/SalesOrderDetail.tsx:303 msgid "Line Items" msgstr "" -#: src/pages/build/BuildDetail.tsx:267 +#: src/pages/build/BuildDetail.tsx:266 msgid "Incomplete Outputs" -msgstr "" +msgstr "Незавершенная продукция" -#: src/pages/build/BuildDetail.tsx:289 -#: src/pages/sales/SalesOrderDetail.tsx:319 +#: src/pages/build/BuildDetail.tsx:292 +#: src/pages/sales/SalesOrderDetail.tsx:341 msgid "Allocated Stock" msgstr "" -#: src/pages/build/BuildDetail.tsx:299 +#: src/pages/build/BuildDetail.tsx:302 msgid "Consumed Stock" msgstr "" -#: src/pages/build/BuildDetail.tsx:313 +#: src/pages/build/BuildDetail.tsx:316 msgid "Child Build Orders" msgstr "" #: src/pages/build/BuildDetail.tsx:326 -#: src/tables/build/BuildOutputTable.tsx:384 -#: src/tables/stock/StockItemTestResultTable.tsx:150 +#: src/tables/build/BuildOutputTable.tsx:532 +#: src/tables/stock/StockItemTestResultTable.tsx:156 msgid "Test Results" msgstr "" #: src/pages/build/BuildDetail.tsx:337 -#: src/pages/part/PartDetail.tsx:699 +#: src/pages/part/PartDetail.tsx:740 msgid "Test Statistics" msgstr "" -#: src/pages/build/BuildDetail.tsx:351 -#: src/pages/company/CompanyDetail.tsx:259 -#: src/pages/company/ManufacturerPartDetail.tsx:179 -#: src/pages/part/PartDetail.tsx:721 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:309 -#: src/pages/sales/ReturnOrderDetail.tsx:274 -#: src/pages/sales/SalesOrderDetail.tsx:343 -#: src/pages/stock/StockDetail.tsx:385 -msgid "Attachments" -msgstr "" - -#: src/pages/build/BuildDetail.tsx:359 -#: src/pages/company/CompanyDetail.tsx:270 -#: src/pages/company/ManufacturerPartDetail.tsx:190 -#: src/pages/company/SupplierPartDetail.tsx:257 -#: src/pages/part/PartDetail.tsx:729 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:320 -#: src/pages/sales/ReturnOrderDetail.tsx:285 -#: src/pages/sales/SalesOrderDetail.tsx:354 -#: src/pages/stock/StockDetail.tsx:396 -#: src/tables/build/BuildOrderTestTable.tsx:142 -#: src/tables/stock/StockTrackingTable.tsx:189 -msgid "Notes" -msgstr "" +#: src/pages/build/BuildDetail.tsx:365 +msgid "Edit Build Order" +msgstr "Редактировать заказ на производство" #: src/pages/build/BuildDetail.tsx:368 #~ msgid "Reporting Actions" #~ msgstr "Reporting Actions" +#: src/pages/build/BuildDetail.tsx:372 +#: src/tables/build/BuildOrderTable.tsx:173 +#: src/tables/build/BuildOrderTable.tsx:188 +msgid "Add Build Order" +msgstr "Создать заказ для производство" + #: src/pages/build/BuildDetail.tsx:374 #~ msgid "Print build report" #~ msgstr "Print build report" -#: src/pages/build/BuildDetail.tsx:377 -msgid "Edit Build Order" -msgstr "" +#: src/pages/build/BuildDetail.tsx:386 +msgid "Cancel Build Order" +msgstr "Отменить заказ для производства" -#: src/pages/build/BuildDetail.tsx:384 -#: src/tables/build/BuildOrderTable.tsx:172 -#: src/tables/build/BuildOrderTable.tsx:187 -msgid "Add Build Order" -msgstr "" +#: src/pages/build/BuildDetail.tsx:388 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:357 +#: src/pages/sales/ReturnOrderDetail.tsx:354 +#: src/pages/sales/SalesOrderDetail.tsx:387 +msgid "Order cancelled" +msgstr "Заказ отменён" + +#: src/pages/build/BuildDetail.tsx:389 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:356 +#: src/pages/sales/ReturnOrderDetail.tsx:353 +#: src/pages/sales/SalesOrderDetail.tsx:386 +msgid "Cancel this order" +msgstr "Отменить заказ" #: src/pages/build/BuildDetail.tsx:398 -msgid "Cancel Build Order" -msgstr "" - -#: src/pages/build/BuildDetail.tsx:400 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:348 -#: src/pages/sales/SalesOrderDetail.tsx:380 -msgid "Order cancelled" -msgstr "" - -#: src/pages/build/BuildDetail.tsx:401 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:347 -#: src/pages/sales/ReturnOrderDetail.tsx:346 -#: src/pages/sales/SalesOrderDetail.tsx:379 -msgid "Cancel this order" -msgstr "" - -#: src/pages/build/BuildDetail.tsx:410 msgid "Hold Build Order" msgstr "" -#: src/pages/build/BuildDetail.tsx:412 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:355 -#: src/pages/sales/ReturnOrderDetail.tsx:354 -#: src/pages/sales/SalesOrderDetail.tsx:387 +#: src/pages/build/BuildDetail.tsx:400 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:364 +#: src/pages/sales/ReturnOrderDetail.tsx:361 +#: src/pages/sales/SalesOrderDetail.tsx:394 msgid "Place this order on hold" -msgstr "" +msgstr "Отложите этот заказ" -#: src/pages/build/BuildDetail.tsx:413 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:356 -#: src/pages/sales/ReturnOrderDetail.tsx:355 -#: src/pages/sales/SalesOrderDetail.tsx:388 +#: src/pages/build/BuildDetail.tsx:401 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:365 +#: src/pages/sales/ReturnOrderDetail.tsx:362 +#: src/pages/sales/SalesOrderDetail.tsx:395 msgid "Order placed on hold" -msgstr "" +msgstr "Заказ отложен" -#: src/pages/build/BuildDetail.tsx:418 +#: src/pages/build/BuildDetail.tsx:406 msgid "Issue Build Order" msgstr "" -#: src/pages/build/BuildDetail.tsx:420 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:339 -#: src/pages/sales/ReturnOrderDetail.tsx:338 -#: src/pages/sales/SalesOrderDetail.tsx:371 +#: src/pages/build/BuildDetail.tsx:408 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:348 +#: src/pages/sales/ReturnOrderDetail.tsx:345 +#: src/pages/sales/SalesOrderDetail.tsx:378 msgid "Issue this order" msgstr "" -#: src/pages/build/BuildDetail.tsx:421 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:340 -#: src/pages/sales/ReturnOrderDetail.tsx:339 -#: src/pages/sales/SalesOrderDetail.tsx:372 +#: src/pages/build/BuildDetail.tsx:409 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:349 +#: src/pages/sales/ReturnOrderDetail.tsx:346 +#: src/pages/sales/SalesOrderDetail.tsx:379 msgid "Order issued" msgstr "" -#: src/pages/build/BuildDetail.tsx:426 +#: src/pages/build/BuildDetail.tsx:414 msgid "Complete Build Order" msgstr "" -#: src/pages/build/BuildDetail.tsx:428 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:368 -#: src/pages/sales/ReturnOrderDetail.tsx:362 -#: src/pages/sales/SalesOrderDetail.tsx:395 +#: src/pages/build/BuildDetail.tsx:416 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:377 +#: src/pages/sales/ReturnOrderDetail.tsx:369 +#: src/pages/sales/SalesOrderDetail.tsx:402 msgid "Mark this order as complete" msgstr "" -#: src/pages/build/BuildDetail.tsx:429 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:362 -#: src/pages/sales/ReturnOrderDetail.tsx:363 -#: src/pages/sales/SalesOrderDetail.tsx:396 +#: src/pages/build/BuildDetail.tsx:417 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:371 +#: src/pages/sales/ReturnOrderDetail.tsx:370 +#: src/pages/sales/SalesOrderDetail.tsx:403 msgid "Order completed" msgstr "" -#: src/pages/build/BuildDetail.tsx:460 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:391 -#: src/pages/sales/ReturnOrderDetail.tsx:392 -#: src/pages/sales/SalesOrderDetail.tsx:425 +#: src/pages/build/BuildDetail.tsx:448 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:400 +#: src/pages/sales/ReturnOrderDetail.tsx:399 +#: src/pages/sales/SalesOrderDetail.tsx:432 msgid "Issue Order" msgstr "" -#: src/pages/build/BuildDetail.tsx:467 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:398 -#: src/pages/sales/ReturnOrderDetail.tsx:399 -#: src/pages/sales/SalesOrderDetail.tsx:439 +#: src/pages/build/BuildDetail.tsx:455 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:407 +#: src/pages/sales/ReturnOrderDetail.tsx:406 +#: src/pages/sales/SalesOrderDetail.tsx:446 msgid "Complete Order" msgstr "" -#: src/pages/build/BuildDetail.tsx:496 +#: src/pages/build/BuildDetail.tsx:473 msgid "Build Order Actions" msgstr "" -#: src/pages/build/BuildDetail.tsx:502 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:432 -#: src/pages/sales/ReturnOrderDetail.tsx:433 -#: src/pages/sales/SalesOrderDetail.tsx:474 +#: src/pages/build/BuildDetail.tsx:478 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:429 +#: src/pages/sales/ReturnOrderDetail.tsx:428 +#: src/pages/sales/SalesOrderDetail.tsx:469 msgid "Edit order" msgstr "" -#: src/pages/build/BuildDetail.tsx:506 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:440 -#: src/pages/sales/ReturnOrderDetail.tsx:439 -#: src/pages/sales/SalesOrderDetail.tsx:479 +#: src/pages/build/BuildDetail.tsx:482 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:437 +#: src/pages/sales/ReturnOrderDetail.tsx:434 +#: src/pages/sales/SalesOrderDetail.tsx:474 msgid "Duplicate order" msgstr "" -#: src/pages/build/BuildDetail.tsx:510 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:443 -#: src/pages/sales/ReturnOrderDetail.tsx:444 -#: src/pages/sales/SalesOrderDetail.tsx:482 +#: src/pages/build/BuildDetail.tsx:486 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:440 +#: src/pages/sales/ReturnOrderDetail.tsx:439 +#: src/pages/sales/SalesOrderDetail.tsx:477 msgid "Hold order" msgstr "" -#: src/pages/build/BuildDetail.tsx:515 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:448 -#: src/pages/sales/ReturnOrderDetail.tsx:449 -#: src/pages/sales/SalesOrderDetail.tsx:487 +#: src/pages/build/BuildDetail.tsx:491 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:445 +#: src/pages/sales/ReturnOrderDetail.tsx:444 +#: src/pages/sales/SalesOrderDetail.tsx:482 msgid "Cancel order" msgstr "" @@ -4295,56 +5040,60 @@ msgstr "" #~ msgid "New Build Order" #~ msgstr "New Build Order" -#: src/pages/company/CompanyDetail.tsx:104 +#: src/pages/company/CompanyDetail.tsx:95 +msgid "Website" +msgstr "Веб-сайт" + +#: src/pages/company/CompanyDetail.tsx:103 msgid "Phone Number" msgstr "" -#: src/pages/company/CompanyDetail.tsx:111 +#: src/pages/company/CompanyDetail.tsx:110 msgid "Email Address" msgstr "" -#: src/pages/company/CompanyDetail.tsx:121 +#: src/pages/company/CompanyDetail.tsx:120 msgid "Default Currency" msgstr "" -#: src/pages/company/CompanyDetail.tsx:126 +#: src/pages/company/CompanyDetail.tsx:125 #: src/pages/company/SupplierDetail.tsx:8 -#: src/pages/company/SupplierPartDetail.tsx:120 -#: src/pages/company/SupplierPartDetail.tsx:206 -#: src/pages/company/SupplierPartDetail.tsx:351 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:136 -#: src/tables/company/CompanyTable.tsx:100 +#: src/pages/company/SupplierPartDetail.tsx:125 +#: src/pages/company/SupplierPartDetail.tsx:218 +#: src/pages/company/SupplierPartDetail.tsx:340 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:130 +#: src/tables/company/CompanyTable.tsx:101 #: src/tables/part/PartPurchaseOrdersTable.tsx:42 -#: src/tables/purchasing/PurchaseOrderTable.tsx:88 +#: src/tables/purchasing/PurchaseOrderTable.tsx:89 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:36 msgid "Supplier" msgstr "" -#: src/pages/company/CompanyDetail.tsx:132 +#: src/pages/company/CompanyDetail.tsx:131 #: src/pages/company/ManufacturerDetail.tsx:8 -#: src/pages/company/ManufacturerPartDetail.tsx:101 -#: src/pages/company/ManufacturerPartDetail.tsx:267 -#: src/pages/company/SupplierPartDetail.tsx:135 -#: src/tables/company/CompanyTable.tsx:105 +#: src/pages/company/ManufacturerPartDetail.tsx:100 +#: src/pages/company/ManufacturerPartDetail.tsx:262 +#: src/pages/company/SupplierPartDetail.tsx:147 +#: src/tables/company/CompanyTable.tsx:106 msgid "Manufacturer" msgstr "" -#: src/pages/company/CompanyDetail.tsx:138 +#: src/pages/company/CompanyDetail.tsx:137 #: src/pages/company/CustomerDetail.tsx:8 -#: src/pages/part/pricing/SaleHistoryPanel.tsx:29 -#: src/pages/sales/ReturnOrderDetail.tsx:109 -#: src/pages/sales/SalesOrderDetail.tsx:115 -#: src/pages/stock/StockDetail.tsx:230 -#: src/tables/company/CompanyTable.tsx:110 -#: src/tables/sales/ReturnOrderTable.tsx:78 -#: src/tables/sales/SalesOrderTable.tsx:108 -#: src/tables/stock/StockTrackingTable.tsx:140 +#: src/pages/part/pricing/SaleHistoryPanel.tsx:31 +#: src/pages/sales/ReturnOrderDetail.tsx:101 +#: src/pages/sales/SalesOrderDetail.tsx:110 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:100 +#: src/pages/stock/StockDetail.tsx:271 +#: src/tables/company/CompanyTable.tsx:111 +#: src/tables/sales/ReturnOrderTable.tsx:97 +#: src/tables/sales/SalesOrderTable.tsx:121 +#: src/tables/stock/StockTrackingTable.tsx:144 msgid "Customer" msgstr "" #: src/pages/company/CompanyDetail.tsx:172 -#: src/tables/stock/StockTrackingTable.tsx:183 -msgid "Details" +msgid "Company Details" msgstr "" #: src/pages/company/CompanyDetail.tsx:175 @@ -4363,498 +5112,508 @@ msgstr "" #~ msgid "Delete company" #~ msgstr "Delete company" -#: src/pages/company/CompanyDetail.tsx:232 +#: src/pages/company/CompanyDetail.tsx:234 msgid "Assigned Stock" msgstr "" -#: src/pages/company/CompanyDetail.tsx:290 -#: src/tables/company/CompanyTable.tsx:86 +#: src/pages/company/CompanyDetail.tsx:273 +#: src/tables/company/CompanyTable.tsx:87 msgid "Edit Company" msgstr "" -#: src/pages/company/CompanyDetail.tsx:298 +#: src/pages/company/CompanyDetail.tsx:281 msgid "Delete Company" msgstr "" -#: src/pages/company/CompanyDetail.tsx:306 +#: src/pages/company/CompanyDetail.tsx:289 msgid "Company Actions" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:76 -#: src/pages/company/SupplierPartDetail.tsx:89 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:128 +#: src/pages/company/ManufacturerPartDetail.tsx:74 +#: src/pages/company/SupplierPartDetail.tsx:84 msgid "Internal Part" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:91 -#: src/pages/company/SupplierPartDetail.tsx:103 -msgid "External Link" -msgstr "Внешняя ссылка" - -#: src/pages/company/ManufacturerPartDetail.tsx:109 -#: src/pages/company/SupplierPartDetail.tsx:144 -#: src/tables/purchasing/ManufacturerPartTable.tsx:56 +#: src/pages/company/ManufacturerPartDetail.tsx:108 +#: src/pages/company/SupplierPartDetail.tsx:156 +#: src/tables/purchasing/ManufacturerPartTable.tsx:58 msgid "Manufacturer Part Number" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:138 +#: src/pages/company/ManufacturerPartDetail.tsx:125 +#: src/pages/company/SupplierPartDetail.tsx:108 +msgid "External Link" +msgstr "Внешняя ссылка" + +#: src/pages/company/ManufacturerPartDetail.tsx:146 +#: src/pages/company/SupplierPartDetail.tsx:215 +#: src/pages/part/PartDetail.tsx:576 +msgid "Part Details" +msgstr "" + +#: src/pages/company/ManufacturerPartDetail.tsx:149 msgid "Manufacturer Details" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:147 +#: src/pages/company/ManufacturerPartDetail.tsx:158 msgid "Manufacturer Part Details" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:153 -#: src/pages/part/PartDetail.tsx:532 +#: src/pages/company/ManufacturerPartDetail.tsx:164 +#: src/pages/part/PartDetail.tsx:582 msgid "Parameters" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:165 -#: src/pages/part/PartDetail.tsx:649 +#: src/pages/company/ManufacturerPartDetail.tsx:176 +#: src/pages/part/PartDetail.tsx:669 #: src/pages/purchasing/PurchasingIndex.tsx:31 msgid "Suppliers" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:208 -#: src/tables/purchasing/ManufacturerPartTable.tsx:84 +#: src/pages/company/ManufacturerPartDetail.tsx:204 +#: src/tables/purchasing/ManufacturerPartTable.tsx:86 msgid "Edit Manufacturer Part" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:215 -#: src/tables/purchasing/ManufacturerPartTable.tsx:72 -#: src/tables/purchasing/ManufacturerPartTable.tsx:103 +#: src/pages/company/ManufacturerPartDetail.tsx:211 +#: src/tables/purchasing/ManufacturerPartTable.tsx:74 +#: src/tables/purchasing/ManufacturerPartTable.tsx:106 msgid "Add Manufacturer Part" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:227 -#: src/tables/purchasing/ManufacturerPartTable.tsx:92 +#: src/pages/company/ManufacturerPartDetail.tsx:223 +#: src/tables/purchasing/ManufacturerPartTable.tsx:94 msgid "Delete Manufacturer Part" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:240 +#: src/pages/company/ManufacturerPartDetail.tsx:236 msgid "Manufacturer Part Actions" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:281 +#: src/pages/company/ManufacturerPartDetail.tsx:276 msgid "ManufacturerPart" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:163 -#: src/tables/part/PartPurchaseOrdersTable.tsx:71 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:156 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:197 -#: src/tables/purchasing/SupplierPartTable.tsx:131 +#: src/pages/company/SupplierPartDetail.tsx:99 +msgid "Part Description" +msgstr "Описание детали" + +#: src/pages/company/SupplierPartDetail.tsx:175 +#: src/tables/part/PartPurchaseOrdersTable.tsx:72 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:162 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:203 +#: src/tables/purchasing/SupplierPartTable.tsx:133 msgid "Pack Quantity" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:174 +#: src/pages/company/SupplierPartDetail.tsx:186 msgid "Supplier Availability" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:181 +#: src/pages/company/SupplierPartDetail.tsx:193 msgid "Availability Updated" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:208 +#: src/pages/company/SupplierPartDetail.tsx:220 msgid "Availability" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:217 +#: src/pages/company/SupplierPartDetail.tsx:229 msgid "Supplier Part Details" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:223 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:296 +#: src/pages/company/SupplierPartDetail.tsx:235 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:320 msgid "Received Stock" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:247 -#: src/pages/part/PartPricingPanel.tsx:111 -#: src/pages/part/pricing/PricingOverviewPanel.tsx:121 +#: src/pages/company/SupplierPartDetail.tsx:259 +#: src/pages/part/PartPricingPanel.tsx:116 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:195 msgid "Supplier Pricing" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:294 +#: src/pages/company/SupplierPartDetail.tsx:284 msgid "Supplier Part Actions" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:319 -#: src/tables/purchasing/SupplierPartTable.tsx:210 +#: src/pages/company/SupplierPartDetail.tsx:308 +#: src/tables/purchasing/SupplierPartTable.tsx:213 msgid "Edit Supplier Part" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:327 -#: src/tables/purchasing/SupplierPartTable.tsx:218 +#: src/pages/company/SupplierPartDetail.tsx:316 +#: src/tables/purchasing/SupplierPartTable.tsx:221 msgid "Delete Supplier Part" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:335 -#: src/tables/purchasing/SupplierPartTable.tsx:163 +#: src/pages/company/SupplierPartDetail.tsx:324 +#: src/tables/purchasing/SupplierPartTable.tsx:165 msgid "Add Supplier Part" msgstr "" #: src/pages/part/CategoryDetail.tsx:93 -#: src/pages/stock/LocationDetail.tsx:101 -#: src/tables/settings/ErrorTable.tsx:36 +#: src/pages/stock/LocationDetail.tsx:95 +#: src/tables/settings/ErrorTable.tsx:63 +#: src/tables/settings/ErrorTable.tsx:108 msgid "Path" -msgstr "" +msgstr "Путь" #: src/pages/part/CategoryDetail.tsx:109 msgid "Parent Category" msgstr "Родительская категория" -#: src/pages/part/CategoryDetail.tsx:126 +#: src/pages/part/CategoryDetail.tsx:132 msgid "Subcategories" -msgstr "" - -#: src/pages/part/CategoryDetail.tsx:133 -#: src/pages/stock/LocationDetail.tsx:141 -#: src/tables/part/PartCategoryTable.tsx:73 -#: src/tables/stock/StockLocationTable.tsx:49 -msgid "Structural" -msgstr "" +msgstr "Подкатегории" #: src/pages/part/CategoryDetail.tsx:139 -msgid "Parent default location" -msgstr "" +#: src/pages/stock/LocationDetail.tsx:135 +#: src/tables/part/PartCategoryTable.tsx:85 +#: src/tables/stock/StockLocationTable.tsx:49 +msgid "Structural" +msgstr "Структура" -#: src/pages/part/CategoryDetail.tsx:146 +#: src/pages/part/CategoryDetail.tsx:145 +msgid "Parent default location" +msgstr "Расположение по умолчанию" + +#: src/pages/part/CategoryDetail.tsx:152 msgid "Default location" msgstr "" -#: src/pages/part/CategoryDetail.tsx:157 +#: src/pages/part/CategoryDetail.tsx:163 msgid "Top level part category" msgstr "Категория детали верхнего уровня" -#: src/pages/part/CategoryDetail.tsx:167 -#: src/pages/part/CategoryDetail.tsx:221 -#: src/tables/part/PartCategoryTable.tsx:102 +#: src/pages/part/CategoryDetail.tsx:173 +#: src/pages/part/CategoryDetail.tsx:226 +#: src/tables/part/PartCategoryTable.tsx:118 msgid "Edit Part Category" msgstr "Добавить категорию детали" -#: src/pages/part/CategoryDetail.tsx:180 -#: src/pages/stock/LocationDetail.tsx:233 +#: src/pages/part/CategoryDetail.tsx:186 +#: src/pages/stock/LocationDetail.tsx:227 msgid "Delete items" -msgstr "" +msgstr "Удалить товар" -#: src/pages/part/CategoryDetail.tsx:188 -#: src/pages/part/CategoryDetail.tsx:226 +#: src/pages/part/CategoryDetail.tsx:194 +#: src/pages/part/CategoryDetail.tsx:231 msgid "Delete Part Category" msgstr "Удалить категорию детали" -#: src/pages/part/CategoryDetail.tsx:191 +#: src/pages/part/CategoryDetail.tsx:197 msgid "Parts Action" msgstr "" -#: src/pages/part/CategoryDetail.tsx:192 +#: src/pages/part/CategoryDetail.tsx:198 msgid "Action for parts in this category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:197 +#: src/pages/part/CategoryDetail.tsx:203 msgid "Child Categories Action" msgstr "" -#: src/pages/part/CategoryDetail.tsx:198 +#: src/pages/part/CategoryDetail.tsx:204 msgid "Action for child categories in this category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:216 +#: src/pages/part/CategoryDetail.tsx:222 msgid "Category Actions" msgstr "" -#: src/pages/part/CategoryDetail.tsx:238 +#: src/pages/part/CategoryDetail.tsx:243 msgid "Category Details" msgstr "" -#: src/pages/part/PartDetail.tsx:163 +#: src/pages/part/PartAllocationPanel.tsx:23 +#: src/pages/stock/StockDetail.tsx:443 +#: src/tables/part/PartTable.tsx:99 +msgid "Build Order Allocations" +msgstr "" + +#: src/pages/part/PartAllocationPanel.tsx:40 +#: src/pages/stock/StockDetail.tsx:458 +#: src/tables/part/PartTable.tsx:108 +msgid "Sales Order Allocations" +msgstr "" + +#: src/pages/part/PartDetail.tsx:184 msgid "Variant of" -msgstr "" +msgstr "Вариант" -#: src/pages/part/PartDetail.tsx:170 +#: src/pages/part/PartDetail.tsx:191 msgid "Revision of" -msgstr "" +msgstr "Ревизия" -#: src/pages/part/PartDetail.tsx:177 -#: src/tables/stock/StockItemTable.tsx:58 +#: src/pages/part/PartDetail.tsx:198 +#: src/tables/stock/StockItemTable.tsx:59 msgid "Revision" msgstr "Ревизия" -#: src/pages/part/PartDetail.tsx:184 +#: src/pages/part/PartDetail.tsx:205 #: src/tables/notifications/NotificationsTable.tsx:31 #: src/tables/part/PartCategoryTemplateTable.tsx:67 msgid "Category" msgstr "Категория" -#: src/pages/part/PartDetail.tsx:190 +#: src/pages/part/PartDetail.tsx:211 msgid "Default Location" -msgstr "" +msgstr "Расположение по умолчанию" -#: src/pages/part/PartDetail.tsx:197 +#: src/pages/part/PartDetail.tsx:218 msgid "Category Default Location" msgstr "" -#: src/pages/part/PartDetail.tsx:204 +#: src/pages/part/PartDetail.tsx:225 #: src/tables/purchasing/ManufacturerPartParameterTable.tsx:44 msgid "Units" msgstr "Ед. изм" -#: src/pages/part/PartDetail.tsx:211 -#: src/tables/settings/PendingTasksTable.tsx:42 +#: src/pages/part/PartDetail.tsx:232 +#: src/tables/settings/PendingTasksTable.tsx:46 msgid "Keywords" -msgstr "" +msgstr "Ключевые слова" -#: src/pages/part/PartDetail.tsx:218 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:186 -#: src/pages/sales/ReturnOrderDetail.tsx:165 -#: src/pages/sales/SalesOrderDetail.tsx:174 -msgid "Link" -msgstr "Ссылка" - -#: src/pages/part/PartDetail.tsx:236 +#: src/pages/part/PartDetail.tsx:257 #: src/tables/bom/BomTable.tsx:320 -#: src/tables/build/BuildLineTable.tsx:155 +#: src/tables/build/BuildLineTable.tsx:286 #: src/tables/part/PartTable.tsx:288 -#: src/tables/sales/SalesOrderLineItemTable.tsx:103 +#: src/tables/sales/SalesOrderLineItemTable.tsx:111 msgid "Available Stock" msgstr "" -#: src/pages/part/PartDetail.tsx:243 +#: src/pages/part/PartDetail.tsx:264 msgid "Variant Stock" msgstr "" -#: src/pages/part/PartDetail.tsx:251 +#: src/pages/part/PartDetail.tsx:272 msgid "Minimum Stock" msgstr "" -#: src/pages/part/PartDetail.tsx:257 +#: src/pages/part/PartDetail.tsx:278 #: src/tables/bom/BomTable.tsx:237 -#: src/tables/build/BuildLineTable.tsx:117 -#: src/tables/sales/SalesOrderLineItemTable.tsx:141 +#: src/tables/build/BuildLineTable.tsx:248 +#: src/tables/sales/SalesOrderLineItemTable.tsx:149 msgid "On order" msgstr "" -#: src/pages/part/PartDetail.tsx:266 +#: src/pages/part/PartDetail.tsx:285 +msgid "Required for Orders" +msgstr "" + +#: src/pages/part/PartDetail.tsx:294 msgid "Allocated to Build Orders" msgstr "" -#: src/pages/part/PartDetail.tsx:274 +#: src/pages/part/PartDetail.tsx:305 msgid "Allocated to Sales Orders" msgstr "" -#: src/pages/part/PartDetail.tsx:281 -#: src/tables/bom/BomTable.tsx:261 -#: src/tables/bom/BomTable.tsx:293 -msgid "Can Build" -msgstr "" - -#: src/pages/part/PartDetail.tsx:288 -#: src/tables/bom/BomTable.tsx:245 -#: src/tables/part/PartTable.tsx:92 -msgid "Building" -msgstr "" - -#: src/pages/part/PartDetail.tsx:302 -#: src/pages/part/PartDetail.tsx:873 -#: src/tables/part/ParametricPartTable.tsx:228 -#: src/tables/part/PartTable.tsx:184 -msgid "Locked" -msgstr "Заблокировано" - -#: src/pages/part/PartDetail.tsx:308 -msgid "Template Part" -msgstr "" - #: src/pages/part/PartDetail.tsx:310 #~ msgid "Edit part" #~ msgstr "Edit part" -#: src/pages/part/PartDetail.tsx:313 -#: src/tables/bom/BomTable.tsx:315 -msgid "Assembled Part" -msgstr "" +#: src/pages/part/PartDetail.tsx:315 +#: src/tables/bom/BomTable.tsx:261 +#: src/tables/bom/BomTable.tsx:293 +msgid "Can Build" +msgstr "Можно произвести" -#: src/pages/part/PartDetail.tsx:318 -msgid "Component Part" -msgstr "" +#: src/pages/part/PartDetail.tsx:322 +#: src/pages/part/PartDetail.tsx:905 +#: src/pages/stock/StockDetail.tsx:766 +#: src/tables/build/BuildOrderTestTable.tsx:220 +#: src/tables/stock/StockItemTable.tsx:334 +msgid "In Production" +msgstr "В производстве" #: src/pages/part/PartDetail.tsx:322 #~ msgid "Duplicate part" #~ msgstr "Duplicate part" -#: src/pages/part/PartDetail.tsx:323 -#: src/tables/bom/BomTable.tsx:305 -msgid "Testable Part" -msgstr "" - #: src/pages/part/PartDetail.tsx:327 #~ msgid "Delete part" #~ msgstr "Delete part" -#: src/pages/part/PartDetail.tsx:329 +#: src/pages/part/PartDetail.tsx:336 +#: src/tables/part/ParametricPartTable.tsx:228 +#: src/tables/part/PartTable.tsx:184 +msgid "Locked" +msgstr "Заблокировано" + +#: src/pages/part/PartDetail.tsx:342 +msgid "Template Part" +msgstr "" + +#: src/pages/part/PartDetail.tsx:347 +#: src/tables/bom/BomTable.tsx:315 +msgid "Assembled Part" +msgstr "" + +#: src/pages/part/PartDetail.tsx:352 +msgid "Component Part" +msgstr "" + +#: src/pages/part/PartDetail.tsx:357 +#: src/tables/bom/BomTable.tsx:305 +msgid "Testable Part" +msgstr "" + +#: src/pages/part/PartDetail.tsx:363 #: src/tables/bom/BomTable.tsx:310 msgid "Trackable Part" msgstr "" -#: src/pages/part/PartDetail.tsx:334 +#: src/pages/part/PartDetail.tsx:368 msgid "Purchaseable Part" msgstr "" -#: src/pages/part/PartDetail.tsx:339 +#: src/pages/part/PartDetail.tsx:374 msgid "Saleable Part" msgstr "" -#: src/pages/part/PartDetail.tsx:344 +#: src/pages/part/PartDetail.tsx:379 msgid "Virtual Part" msgstr "" -#: src/pages/part/PartDetail.tsx:352 -#: src/tables/ColumnRenderers.tsx:220 +#: src/pages/part/PartDetail.tsx:393 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:215 +#: src/pages/sales/ReturnOrderDetail.tsx:185 +#: src/pages/sales/SalesOrderDetail.tsx:197 +#: src/tables/ColumnRenderers.tsx:234 msgid "Creation Date" msgstr "" -#: src/pages/part/PartDetail.tsx:357 +#: src/pages/part/PartDetail.tsx:398 msgid "Created By" msgstr "" -#: src/pages/part/PartDetail.tsx:372 +#: src/pages/part/PartDetail.tsx:413 msgid "Default Supplier" msgstr "" -#: src/pages/part/PartDetail.tsx:383 -#: src/pages/part/pricing/BomPricingPanel.tsx:79 +#: src/pages/part/PartDetail.tsx:424 +#: src/pages/part/pricing/BomPricingPanel.tsx:113 #: src/pages/part/pricing/VariantPricingPanel.tsx:95 #: src/tables/part/PartTable.tsx:161 msgid "Price Range" msgstr "Ценовой диапазон" -#: src/pages/part/PartDetail.tsx:423 -#: src/pages/stock/StockDetail.tsx:135 +#: src/pages/part/PartDetail.tsx:462 +msgid "Latest Serial Number" +msgstr "" + +#: src/pages/part/PartDetail.tsx:472 +#: src/pages/stock/StockDetail.tsx:151 msgid "Last Stocktake" msgstr "" -#: src/pages/part/PartDetail.tsx:462 +#: src/pages/part/PartDetail.tsx:511 msgid "Stocktake By" msgstr "" -#: src/pages/part/PartDetail.tsx:526 -msgid "Part Details" -msgstr "" - -#: src/pages/part/PartDetail.tsx:557 +#: src/pages/part/PartDetail.tsx:611 msgid "Variants" msgstr "" -#: src/pages/part/PartDetail.tsx:564 -#: src/pages/stock/StockDetail.tsx:307 +#: src/pages/part/PartDetail.tsx:618 +#: src/pages/stock/StockDetail.tsx:430 msgid "Allocations" msgstr "" -#: src/pages/part/PartDetail.tsx:575 -#: src/pages/stock/StockDetail.tsx:318 -#: src/tables/part/PartTable.tsx:99 -msgid "Build Order Allocations" -msgstr "" - -#: src/pages/part/PartDetail.tsx:590 -#: src/pages/stock/StockDetail.tsx:333 -#: src/tables/part/PartTable.tsx:108 -msgid "Sales Order Allocations" -msgstr "" - -#: src/pages/part/PartDetail.tsx:607 +#: src/pages/part/PartDetail.tsx:625 msgid "Bill of Materials" msgstr "" -#: src/pages/part/PartDetail.tsx:623 +#: src/pages/part/PartDetail.tsx:643 msgid "Used In" msgstr "" -#: src/pages/part/PartDetail.tsx:630 +#: src/pages/part/PartDetail.tsx:650 msgid "Part Pricing" msgstr "" -#: src/pages/part/PartDetail.tsx:636 +#: src/pages/part/PartDetail.tsx:656 #: src/pages/purchasing/PurchasingIndex.tsx:42 msgid "Manufacturers" msgstr "" -#: src/pages/part/PartDetail.tsx:676 +#: src/pages/part/PartDetail.tsx:722 msgid "Scheduling" msgstr "" -#: src/pages/part/PartDetail.tsx:688 +#: src/pages/part/PartDetail.tsx:729 msgid "Test Templates" msgstr "" -#: src/pages/part/PartDetail.tsx:715 +#: src/pages/part/PartDetail.tsx:756 msgid "Related Parts" msgstr "" -#: src/pages/part/PartDetail.tsx:849 -#: src/pages/stock/StockDetail.tsx:156 -#: src/pages/stock/StockDetail.tsx:593 -#: src/tables/build/BuildLineTable.tsx:48 +#: src/pages/part/PartDetail.tsx:881 +#: src/pages/stock/StockDetail.tsx:172 +#: src/pages/stock/StockDetail.tsx:783 +#: src/tables/build/BuildLineTable.tsx:179 #: src/tables/part/PartTable.tsx:117 -#: src/tables/stock/StockItemTable.tsx:177 -#: src/tables/stock/StockItemTable.tsx:310 +#: src/tables/stock/StockItemTable.tsx:166 +#: src/tables/stock/StockItemTable.tsx:314 msgid "Available" msgstr "" -#: src/pages/part/PartDetail.tsx:855 +#: src/pages/part/PartDetail.tsx:887 msgid "No Stock" msgstr "" -#: src/pages/part/PartDetail.tsx:861 +#: src/pages/part/PartDetail.tsx:893 +#: src/tables/part/PartTestTemplateTable.tsx:106 +#: src/tables/stock/StockItemTestResultTable.tsx:383 +msgid "Required" +msgstr "" + +#: src/pages/part/PartDetail.tsx:899 #: src/tables/bom/BomTable.tsx:325 #: src/tables/part/PartTable.tsx:86 msgid "On Order" msgstr "" -#: src/pages/part/PartDetail.tsx:867 -#: src/pages/stock/StockDetail.tsx:576 -#: src/tables/build/BuildOrderTestTable.tsx:219 -#: src/tables/stock/StockItemTable.tsx:330 -msgid "In Production" -msgstr "" - -#: src/pages/part/PartDetail.tsx:892 +#: src/pages/part/PartDetail.tsx:924 msgid "Edit Part" msgstr "" -#: src/pages/part/PartDetail.tsx:927 +#: src/pages/part/PartDetail.tsx:959 #: src/tables/part/PartTable.tsx:331 -#: src/tables/part/PartTable.tsx:342 +#: src/tables/part/PartTable.tsx:343 msgid "Add Part" msgstr "" -#: src/pages/part/PartDetail.tsx:941 +#: src/pages/part/PartDetail.tsx:973 msgid "Delete Part" msgstr "" -#: src/pages/part/PartDetail.tsx:950 +#: src/pages/part/PartDetail.tsx:982 msgid "Deleting this part cannot be reversed" msgstr "" -#: src/pages/part/PartDetail.tsx:999 -#: src/pages/stock/LocationDetail.tsx:324 -#: src/tables/stock/StockItemTable.tsx:444 +#: src/pages/part/PartDetail.tsx:1021 +#: src/pages/stock/LocationDetail.tsx:310 +#: src/tables/stock/StockItemTable.tsx:449 msgid "Stock Actions" msgstr "" -#: src/pages/part/PartDetail.tsx:1007 +#: src/pages/part/PartDetail.tsx:1029 msgid "Count part stock" msgstr "" -#: src/pages/part/PartDetail.tsx:1018 +#: src/pages/part/PartDetail.tsx:1040 msgid "Transfer part stock" msgstr "" -#: src/pages/part/PartDetail.tsx:1027 +#: src/pages/part/PartDetail.tsx:1049 msgid "Part Actions" msgstr "" -#: src/pages/part/PartDetail.tsx:1087 +#: src/pages/part/PartDetail.tsx:1113 msgid "Select Part Revision" msgstr "" @@ -4862,113 +5621,214 @@ msgstr "" #~ msgid "Categories" #~ msgstr "Categories" -#: src/pages/part/PartPricingPanel.tsx:68 +#: src/pages/part/PartPricingPanel.tsx:72 msgid "No pricing data found for this part." msgstr "" -#: src/pages/part/PartPricingPanel.tsx:82 -#: src/pages/part/pricing/PricingOverviewPanel.tsx:190 +#: src/pages/part/PartPricingPanel.tsx:87 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:293 msgid "Pricing Overview" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:88 +#: src/pages/part/PartPricingPanel.tsx:93 msgid "Purchase History" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:102 -#: src/pages/part/pricing/PricingOverviewPanel.tsx:100 +#: src/pages/part/PartPricingPanel.tsx:107 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:174 msgid "Internal Pricing" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:120 -#: src/pages/part/pricing/PricingOverviewPanel.tsx:107 +#: src/pages/part/PartPricingPanel.tsx:125 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:181 msgid "BOM Pricing" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:127 -#: src/pages/part/pricing/PricingOverviewPanel.tsx:128 +#: src/pages/part/PartPricingPanel.tsx:132 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:202 msgid "Variant Pricing" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:139 -#: src/pages/part/pricing/PricingOverviewPanel.tsx:135 +#: src/pages/part/PartPricingPanel.tsx:144 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:209 msgid "Sale Pricing" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:146 -#: src/pages/part/pricing/PricingOverviewPanel.tsx:142 +#: src/pages/part/PartPricingPanel.tsx:151 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:216 msgid "Sale History" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:58 -#: src/pages/part/pricing/BomPricingPanel.tsx:138 -#: src/tables/ColumnRenderers.tsx:262 +#: src/pages/part/PartSchedulingDetail.tsx:47 +#: src/pages/part/PartSchedulingDetail.tsx:299 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:156 +msgid "Maximum" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:50 +#: src/pages/part/PartSchedulingDetail.tsx:289 +msgid "Scheduled" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:53 +#: src/pages/part/PartSchedulingDetail.tsx:294 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:144 +msgid "Minimum" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:68 +msgid "Order" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:92 +msgid "Quantity is speculative" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:101 +msgid "No date available for provided quantity" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:105 +msgid "Date is in the past" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:112 +msgid "Scheduled Quantity" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:240 +msgid "No information available" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:241 +msgid "There is no scheduling information available for the selected part" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:276 +msgid "Expected Quantity" +msgstr "" + +#: src/pages/part/PartStocktakeDetail.tsx:63 +#: src/tables/FilterSelectDrawer.tsx:167 +#: src/tables/FilterSelectDrawer.tsx:174 +#: src/tables/build/BuildOrderTestTable.tsx:135 +#: src/tables/purchasing/ManufacturerPartParameterTable.tsx:38 +#: src/tables/stock/StockItemTestResultTable.tsx:192 +msgid "Value" +msgstr "Значение" + +#: src/pages/part/PartStocktakeDetail.tsx:82 +msgid "Edit Stocktake Entry" +msgstr "" + +#: src/pages/part/PartStocktakeDetail.tsx:90 +msgid "Delete Stocktake Entry" +msgstr "" + +#: src/pages/part/PartStocktakeDetail.tsx:96 +#: src/tables/settings/StocktakeReportTable.tsx:69 +msgid "Generate Stocktake Report" +msgstr "" + +#: src/pages/part/PartStocktakeDetail.tsx:101 +#: src/tables/settings/StocktakeReportTable.tsx:71 +msgid "Stocktake report scheduled" +msgstr "" + +#: src/pages/part/PartStocktakeDetail.tsx:119 +#: src/pages/part/PartStocktakeDetail.tsx:235 +#: src/pages/stock/StockDetail.tsx:303 +#: src/tables/stock/StockItemTable.tsx:249 +msgid "Stock Value" +msgstr "" + +#: src/pages/part/PartStocktakeDetail.tsx:139 +#: src/tables/settings/StocktakeReportTable.tsx:77 +msgid "New Stocktake Report" +msgstr "" + +#: src/pages/part/PartStocktakeDetail.tsx:258 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:295 +msgid "Minimum Value" +msgstr "" + +#: src/pages/part/PartStocktakeDetail.tsx:264 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:296 +msgid "Maximum Value" +msgstr "" + +#: src/pages/part/pricing/BomPricingPanel.tsx:87 +#: src/pages/part/pricing/BomPricingPanel.tsx:177 +#: src/tables/ColumnRenderers.tsx:276 #: src/tables/bom/BomTable.tsx:185 #: src/tables/general/ExtraLineItemTable.tsx:64 -#: src/tables/purchasing/PurchaseOrderTable.tsx:112 -#: src/tables/sales/ReturnOrderTable.tsx:104 -#: src/tables/sales/SalesOrderLineItemTable.tsx:89 -#: src/tables/sales/SalesOrderTable.tsx:136 +#: src/tables/purchasing/PurchaseOrderTable.tsx:113 +#: src/tables/sales/ReturnOrderTable.tsx:127 +#: src/tables/sales/SalesOrderLineItemTable.tsx:97 +#: src/tables/sales/SalesOrderTable.tsx:149 msgid "Total Price" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:78 -#: src/pages/part/pricing/BomPricingPanel.tsx:102 +#: src/pages/part/pricing/BomPricingPanel.tsx:112 +#: src/pages/part/pricing/BomPricingPanel.tsx:141 #: src/tables/bom/UsedInTable.tsx:49 +#: src/tables/build/BuildLineTable.tsx:296 #: src/tables/part/PartTable.tsx:202 msgid "Component" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:81 -#: src/pages/part/pricing/VariantPricingPanel.tsx:37 -#: src/pages/part/pricing/VariantPricingPanel.tsx:97 -msgid "Minimum Price" -msgstr "" - -#: src/pages/part/pricing/BomPricingPanel.tsx:82 -#: src/pages/part/pricing/VariantPricingPanel.tsx:45 -#: src/pages/part/pricing/VariantPricingPanel.tsx:98 -msgid "Maximum Price" -msgstr "" - #: src/pages/part/pricing/BomPricingPanel.tsx:112 #~ msgid "Minimum Total Price" #~ msgstr "Minimum Total Price" +#: src/pages/part/pricing/BomPricingPanel.tsx:115 +#: src/pages/part/pricing/VariantPricingPanel.tsx:37 +#: src/pages/part/pricing/VariantPricingPanel.tsx:97 +msgid "Minimum Price" +msgstr "" + +#: src/pages/part/pricing/BomPricingPanel.tsx:116 +#: src/pages/part/pricing/VariantPricingPanel.tsx:45 +#: src/pages/part/pricing/VariantPricingPanel.tsx:98 +msgid "Maximum Price" +msgstr "" + #: src/pages/part/pricing/BomPricingPanel.tsx:117 #~ msgid "Maximum Total Price" #~ msgstr "Maximum Total Price" -#: src/pages/part/pricing/BomPricingPanel.tsx:129 -#: src/pages/part/pricing/PriceBreakPanel.tsx:172 -#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:67 -#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:128 -#: src/pages/part/pricing/SupplierPricingPanel.tsx:62 +#: src/pages/part/pricing/BomPricingPanel.tsx:168 +#: src/pages/part/pricing/PriceBreakPanel.tsx:173 +#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:70 +#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:125 +#: src/pages/part/pricing/SupplierPricingPanel.tsx:66 +#: src/pages/stock/StockDetail.tsx:291 #: src/tables/bom/BomTable.tsx:176 #: src/tables/general/ExtraLineItemTable.tsx:56 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:223 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:225 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:92 +#: src/tables/stock/StockItemTable.tsx:239 msgid "Unit Price" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:154 +#: src/pages/part/pricing/BomPricingPanel.tsx:193 #: src/pages/part/pricing/VariantPricingPanel.tsx:53 -#: src/tables/purchasing/SupplierPartTable.tsx:148 +#: src/tables/purchasing/SupplierPartTable.tsx:150 msgid "Updated" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:219 +#: src/pages/part/pricing/BomPricingPanel.tsx:258 msgid "Pie Chart" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:220 +#: src/pages/part/pricing/BomPricingPanel.tsx:259 msgid "Bar Chart" msgstr "" #: src/pages/part/pricing/PriceBreakPanel.tsx:58 -#: src/pages/part/pricing/PriceBreakPanel.tsx:110 +#: src/pages/part/pricing/PriceBreakPanel.tsx:111 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:142 -#: src/tables/purchasing/SupplierPriceBreakTable.tsx:168 +#: src/tables/purchasing/SupplierPriceBreakTable.tsx:169 msgid "Add Price Break" msgstr "" @@ -4986,46 +5846,70 @@ msgstr "" msgid "Price Break" msgstr "" -#: src/pages/part/pricing/PriceBreakPanel.tsx:170 +#: src/pages/part/pricing/PriceBreakPanel.tsx:171 msgid "Price" msgstr "" -#: src/pages/part/pricing/PricingOverviewPanel.tsx:51 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:68 +msgid "Refreshing pricing data" +msgstr "" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:88 +msgid "Pricing data updated" +msgstr "" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:95 +msgid "Failed to update pricing data" +msgstr "" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:104 +msgid "Edit Pricing" +msgstr "" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:125 msgid "Pricing Category" msgstr "" -#: src/pages/part/pricing/PricingOverviewPanel.tsx:70 -msgid "Minimum" -msgstr "" - -#: src/pages/part/pricing/PricingOverviewPanel.tsx:82 -msgid "Maximum" -msgstr "" - -#: src/pages/part/pricing/PricingOverviewPanel.tsx:114 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:188 msgid "Purchase Pricing" msgstr "" -#: src/pages/part/pricing/PricingOverviewPanel.tsx:149 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:223 msgid "Override Pricing" msgstr "" -#: src/pages/part/pricing/PricingOverviewPanel.tsx:156 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:230 msgid "Overall Pricing" msgstr "" -#: src/pages/part/pricing/PricingOverviewPanel.tsx:175 -#: src/pages/stock/StockDetail.tsx:129 -#: src/tables/stock/StockItemTable.tsx:240 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:249 +#: src/pages/stock/StockDetail.tsx:145 +#: src/tables/stock/StockItemTable.tsx:275 msgid "Last Updated" msgstr "" -#: src/pages/part/pricing/PricingOverviewPanel.tsx:192 -msgid "Minimum Value" +#: src/pages/part/pricing/PricingOverviewPanel.tsx:253 +msgid "Pricing Not Set" msgstr "" -#: src/pages/part/pricing/PricingOverviewPanel.tsx:193 -msgid "Maximum Value" +#: src/pages/part/pricing/PricingOverviewPanel.tsx:254 +msgid "Pricing data has not been calculated for this part" +msgstr "" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:258 +msgid "Pricing Actions" +msgstr "" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:261 +msgid "Refresh" +msgstr "" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:262 +msgid "Refresh pricing data" +msgstr "" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:277 +msgid "Edit pricing data" msgstr "" #: src/pages/part/pricing/PricingPanel.tsx:24 @@ -5044,28 +5928,20 @@ msgstr "" msgid "Loading pricing data" msgstr "" -#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:40 -#: src/pages/part/pricing/SaleHistoryPanel.tsx:36 -#: src/tables/ColumnRenderers.tsx:201 -#: src/tables/build/BuildOrderTestTable.tsx:150 -#: src/tables/plugin/PluginListTable.tsx:139 -msgid "Date" -msgstr "" - #: src/pages/part/pricing/PurchaseHistoryPanel.tsx:47 msgid "Purchase Price" msgstr "" -#: src/pages/part/pricing/SaleHistoryPanel.tsx:22 -msgid "Sale Order" -msgstr "" +#: src/pages/part/pricing/SaleHistoryPanel.tsx:24 +#~ msgid "Sale Order" +#~ msgstr "Sale Order" -#: src/pages/part/pricing/SaleHistoryPanel.tsx:42 -#: src/pages/part/pricing/SaleHistoryPanel.tsx:92 +#: src/pages/part/pricing/SaleHistoryPanel.tsx:44 +#: src/pages/part/pricing/SaleHistoryPanel.tsx:87 msgid "Sale Price" msgstr "" -#: src/pages/part/pricing/SupplierPricingPanel.tsx:65 +#: src/pages/part/pricing/SupplierPricingPanel.tsx:69 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:83 msgid "Supplier Price" msgstr "" @@ -5075,23 +5951,23 @@ msgstr "" msgid "Variant Part" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:93 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:87 msgid "Edit Purchase Order" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:102 -#: src/tables/purchasing/PurchaseOrderTable.tsx:128 -#: src/tables/purchasing/PurchaseOrderTable.tsx:140 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:96 +#: src/tables/purchasing/PurchaseOrderTable.tsx:129 +#: src/tables/purchasing/PurchaseOrderTable.tsx:142 msgid "Add Purchase Order" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:127 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:121 msgid "Supplier Reference" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:158 -#: src/pages/sales/ReturnOrderDetail.tsx:137 -#: src/pages/sales/SalesOrderDetail.tsx:137 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:152 +#: src/pages/sales/ReturnOrderDetail.tsx:129 +#: src/pages/sales/SalesOrderDetail.tsx:132 msgid "Completed Line Items" msgstr "" @@ -5101,91 +5977,112 @@ msgstr "" #~ msgid "Order Currency," #~ msgstr "Order Currency," -#: src/pages/purchasing/PurchaseOrderDetail.tsx:165 -#: src/pages/sales/ReturnOrderDetail.tsx:144 -#: src/pages/sales/SalesOrderDetail.tsx:153 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:161 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:231 +msgid "Destination" +msgstr "" + +#: src/pages/purchasing/PurchaseOrderDetail.tsx:167 +#: src/pages/sales/ReturnOrderDetail.tsx:136 +#: src/pages/sales/SalesOrderDetail.tsx:148 msgid "Order Currency" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:172 -#: src/pages/sales/ReturnOrderDetail.tsx:151 -#: src/pages/sales/SalesOrderDetail.tsx:160 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:173 +#: src/pages/sales/ReturnOrderDetail.tsx:143 +#: src/pages/sales/SalesOrderDetail.tsx:155 msgid "Total Cost" msgstr "" #: src/pages/purchasing/PurchaseOrderDetail.tsx:207 -#: src/pages/sales/ReturnOrderDetail.tsx:186 -#: src/pages/sales/SalesOrderDetail.tsx:195 -msgid "Created On" +#: src/pages/sales/ReturnOrderDetail.tsx:183 +#: src/pages/sales/SalesOrderDetail.tsx:191 +#~ msgid "Created On" +#~ msgstr "Created On" + +#: src/pages/purchasing/PurchaseOrderDetail.tsx:221 +#: src/pages/sales/ReturnOrderDetail.tsx:193 +#: src/pages/sales/SalesOrderDetail.tsx:204 +msgid "Issue Date" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:252 -#: src/pages/sales/ReturnOrderDetail.tsx:231 -#: src/pages/sales/SalesOrderDetail.tsx:266 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:237 +#: src/pages/sales/ReturnOrderDetail.tsx:209 +#: src/pages/sales/SalesOrderDetail.tsx:219 +#: src/tables/build/BuildOrderTable.tsx:98 +#: src/tables/part/PartPurchaseOrdersTable.tsx:105 +#: src/tables/sales/ReturnOrderTable.tsx:122 +msgid "Completion Date" +msgstr "" + +#: src/pages/purchasing/PurchaseOrderDetail.tsx:276 +#: src/pages/sales/ReturnOrderDetail.tsx:248 +#: src/pages/sales/SalesOrderDetail.tsx:288 msgid "Order Details" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:280 -#: src/pages/sales/ReturnOrderDetail.tsx:258 -#: src/pages/sales/SalesOrderDetail.tsx:297 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:304 +#: src/pages/sales/ReturnOrderDetail.tsx:276 +#: src/pages/sales/SalesOrderDetail.tsx:319 msgid "Extra Line Items" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:337 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:346 msgid "Issue Purchase Order" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:345 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:354 msgid "Cancel Purchase Order" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:353 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:362 msgid "Hold Purchase Order" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:361 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:370 msgid "Complete Purchase Order" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:427 -#: src/pages/sales/ReturnOrderDetail.tsx:428 -#: src/pages/sales/SalesOrderDetail.tsx:468 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:425 +#: src/pages/sales/ReturnOrderDetail.tsx:424 +#: src/pages/sales/SalesOrderDetail.tsx:464 msgid "Order Actions" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:101 -#: src/pages/sales/SalesOrderDetail.tsx:107 -#: src/tables/sales/SalesOrderTable.tsx:124 +#: src/pages/sales/ReturnOrderDetail.tsx:92 +#: src/pages/sales/SalesOrderDetail.tsx:101 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:109 +#: src/tables/sales/SalesOrderTable.tsx:137 msgid "Customer Reference" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:315 +#: src/pages/sales/ReturnOrderDetail.tsx:322 msgid "Edit Return Order" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:324 -#: src/tables/sales/ReturnOrderTable.tsx:119 -#: src/tables/sales/ReturnOrderTable.tsx:128 +#: src/pages/sales/ReturnOrderDetail.tsx:331 +#: src/tables/sales/ReturnOrderTable.tsx:142 +#: src/tables/sales/ReturnOrderTable.tsx:152 msgid "Add Return Order" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:336 +#: src/pages/sales/ReturnOrderDetail.tsx:343 msgid "Issue Return Order" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:344 +#: src/pages/sales/ReturnOrderDetail.tsx:349 +#~ msgid "Order canceled" +#~ msgstr "Order canceled" + +#: src/pages/sales/ReturnOrderDetail.tsx:351 msgid "Cancel Return Order" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:347 -msgid "Order canceled" -msgstr "" - -#: src/pages/sales/ReturnOrderDetail.tsx:352 +#: src/pages/sales/ReturnOrderDetail.tsx:359 msgid "Hold Return Order" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:360 +#: src/pages/sales/ReturnOrderDetail.tsx:367 msgid "Complete Return Order" msgstr "" @@ -5193,117 +6090,193 @@ msgstr "" msgid "Customers" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:145 +#: src/pages/sales/SalesOrderDetail.tsx:140 msgid "Completed Shipments" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:243 -msgid "Edit Sales Order" -msgstr "" - -#: src/pages/sales/SalesOrderDetail.tsx:252 -#: src/tables/sales/SalesOrderTable.tsx:84 -#: src/tables/sales/SalesOrderTable.tsx:96 -msgid "Add Sales Order" -msgstr "" - #: src/pages/sales/SalesOrderDetail.tsx:256 #~ msgid "Pending Shipments" #~ msgstr "Pending Shipments" -#: src/pages/sales/SalesOrderDetail.tsx:313 +#: src/pages/sales/SalesOrderDetail.tsx:261 +msgid "Edit Sales Order" +msgstr "" + +#: src/pages/sales/SalesOrderDetail.tsx:274 +#: src/tables/sales/SalesOrderTable.tsx:96 +#: src/tables/sales/SalesOrderTable.tsx:109 +msgid "Add Sales Order" +msgstr "" + +#: src/pages/sales/SalesOrderDetail.tsx:335 msgid "Shipments" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:369 +#: src/pages/sales/SalesOrderDetail.tsx:376 msgid "Issue Sales Order" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:377 +#: src/pages/sales/SalesOrderDetail.tsx:384 msgid "Cancel Sales Order" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:385 +#: src/pages/sales/SalesOrderDetail.tsx:392 msgid "Hold Sales Order" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:393 +#: src/pages/sales/SalesOrderDetail.tsx:400 msgid "Complete Sales Order" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:432 +#: src/pages/sales/SalesOrderDetail.tsx:439 msgid "Ship Order" msgstr "" -#: src/pages/stock/LocationDetail.tsx:117 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:117 +#: src/tables/sales/SalesOrderShipmentTable.tsx:96 +msgid "Shipment Reference" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:124 +msgid "Allocated Items" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:133 +msgid "Tracking Number" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:141 +msgid "Invoice Number" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:149 +#: src/tables/ColumnRenderers.tsx:242 +#: src/tables/sales/SalesOrderAllocationTable.tsx:142 +#: src/tables/sales/SalesOrderShipmentTable.tsx:115 +msgid "Shipment Date" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:157 +#: src/tables/sales/SalesOrderShipmentTable.tsx:119 +msgid "Delivery Date" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:204 +msgid "Shipment Details" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:210 +msgid "Assigned Items" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:241 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:317 +#: src/tables/sales/SalesOrderShipmentTable.tsx:75 +msgid "Edit Shipment" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:248 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:322 +#: src/tables/sales/SalesOrderShipmentTable.tsx:67 +msgid "Cancel Shipment" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:261 +#: src/tables/sales/SalesOrderShipmentTable.tsx:83 +#: src/tables/sales/SalesOrderShipmentTable.tsx:151 +msgid "Complete Shipment" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:276 +#: src/tables/part/PartPurchaseOrdersTable.tsx:121 +msgid "Pending" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:277 +#: src/tables/sales/SalesOrderAllocationTable.tsx:148 +#: src/tables/sales/SalesOrderShipmentTable.tsx:108 +#: src/tables/sales/SalesOrderShipmentTable.tsx:197 +msgid "Shipped" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:279 +#: src/tables/sales/SalesOrderShipmentTable.tsx:202 +msgid "Delivered" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:293 +msgid "Send Shipment" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:312 +msgid "Shipment Actions" +msgstr "" + +#: src/pages/stock/LocationDetail.tsx:111 msgid "Parent Location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:135 +#: src/pages/stock/LocationDetail.tsx:129 msgid "Sublocations" msgstr "" -#: src/pages/stock/LocationDetail.tsx:147 +#: src/pages/stock/LocationDetail.tsx:141 #: src/tables/stock/StockLocationTable.tsx:54 msgid "External" msgstr "" -#: src/pages/stock/LocationDetail.tsx:153 +#: src/pages/stock/LocationDetail.tsx:147 #: src/tables/stock/StockLocationTable.tsx:63 msgid "Location Type" msgstr "" -#: src/pages/stock/LocationDetail.tsx:164 +#: src/pages/stock/LocationDetail.tsx:158 msgid "Top level stock location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:175 +#: src/pages/stock/LocationDetail.tsx:169 msgid "Location Details" msgstr "" -#: src/pages/stock/LocationDetail.tsx:201 +#: src/pages/stock/LocationDetail.tsx:195 msgid "Default Parts" msgstr "" -#: src/pages/stock/LocationDetail.tsx:220 -#: src/pages/stock/LocationDetail.tsx:351 +#: src/pages/stock/LocationDetail.tsx:214 +#: src/pages/stock/LocationDetail.tsx:336 #: src/tables/stock/StockLocationTable.tsx:123 msgid "Edit Stock Location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:241 -#: src/pages/stock/LocationDetail.tsx:356 +#: src/pages/stock/LocationDetail.tsx:235 +#: src/pages/stock/LocationDetail.tsx:341 msgid "Delete Stock Location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:244 +#: src/pages/stock/LocationDetail.tsx:238 msgid "Items Action" msgstr "" -#: src/pages/stock/LocationDetail.tsx:245 +#: src/pages/stock/LocationDetail.tsx:239 msgid "Action for stock items in this location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:250 +#: src/pages/stock/LocationDetail.tsx:244 msgid "Child Locations Action" msgstr "" -#: src/pages/stock/LocationDetail.tsx:251 +#: src/pages/stock/LocationDetail.tsx:245 msgid "Action for child locations in this location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:346 +#: src/pages/stock/LocationDetail.tsx:332 msgid "Location Actions" msgstr "" -#: src/pages/stock/StockDetail.tsx:108 +#: src/pages/stock/StockDetail.tsx:116 msgid "Base Part" msgstr "" -#: src/pages/stock/StockDetail.tsx:115 -msgid "Stock Status" -msgstr "" - #: src/pages/stock/StockDetail.tsx:155 #~ msgid "Link custom barcode to stock item" #~ msgstr "Link custom barcode to stock item" @@ -5312,113 +6285,179 @@ msgstr "" #~ msgid "Unlink custom barcode from stock item" #~ msgstr "Unlink custom barcode from stock item" -#: src/pages/stock/StockDetail.tsx:188 -msgid "Installed In" -msgstr "" - -#: src/pages/stock/StockDetail.tsx:204 -msgid "Consumed By" +#: src/pages/stock/StockDetail.tsx:178 +msgid "Allocated to Orders" msgstr "" #: src/pages/stock/StockDetail.tsx:205 #~ msgid "Edit stock item" #~ msgstr "Edit stock item" -#: src/pages/stock/StockDetail.tsx:213 -#: src/tables/build/BuildAllocatedStockTable.tsx:64 -#: src/tables/stock/StockTrackingTable.tsx:96 -msgid "Build Order" +#: src/pages/stock/StockDetail.tsx:209 +msgid "Installed In" msgstr "" #: src/pages/stock/StockDetail.tsx:217 #~ msgid "Delete stock item" #~ msgstr "Delete stock item" -#: src/pages/stock/StockDetail.tsx:291 +#: src/pages/stock/StockDetail.tsx:226 +msgid "Parent Item" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:230 +msgid "Parent stock item" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:236 +msgid "Consumed By" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:245 +#: src/tables/build/BuildAllocatedStockTable.tsx:77 +#: src/tables/stock/StockTrackingTable.tsx:100 +msgid "Build Order" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:283 +#: src/tables/stock/StockItemTable.tsx:270 +msgid "Expiry Date" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:414 msgid "Stock Details" msgstr "" -#: src/pages/stock/StockDetail.tsx:297 +#: src/pages/stock/StockDetail.tsx:420 msgid "Stock Tracking" msgstr "" -#: src/pages/stock/StockDetail.tsx:350 -msgid "Test Data" -msgstr "" - -#: src/pages/stock/StockDetail.tsx:364 -msgid "Installed Items" -msgstr "" - -#: src/pages/stock/StockDetail.tsx:371 -msgid "Child Items" -msgstr "" - -#: src/pages/stock/StockDetail.tsx:425 -msgid "Edit Stock Item" -msgstr "" - #: src/pages/stock/StockDetail.tsx:433 #~ msgid "Duplicate stock item" #~ msgstr "Duplicate stock item" -#: src/pages/stock/StockDetail.tsx:452 +#: src/pages/stock/StockDetail.tsx:475 +msgid "Test Data" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:489 +msgid "Installed Items" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:496 +msgid "Child Items" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:545 +msgid "Edit Stock Item" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:572 msgid "Delete Stock Item" msgstr "" -#: src/pages/stock/StockDetail.tsx:504 +#: src/pages/stock/StockDetail.tsx:604 +msgid "Serialize Stock Item" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:617 +msgid "Stock item serialized" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:623 +msgid "Return Stock Item" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:626 +msgid "Return this item into stock. This will remove the customer assignment." +msgstr "" + +#: src/pages/stock/StockDetail.tsx:636 +msgid "Item returned to stock" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:666 msgid "Stock Operations" msgstr "" -#: src/pages/stock/StockDetail.tsx:509 +#: src/pages/stock/StockDetail.tsx:671 msgid "Count stock" msgstr "" -#: src/pages/stock/StockDetail.tsx:519 -#: src/tables/stock/StockItemTable.tsx:449 -msgid "Add stock" +#: src/pages/stock/StockDetail.tsx:671 +#: src/tables/stock/StockItemTable.tsx:452 +#~ msgid "Add stock" +#~ msgstr "Add stock" + +#: src/pages/stock/StockDetail.tsx:680 +#: src/tables/stock/StockItemTable.tsx:461 +#~ msgid "Remove stock" +#~ msgstr "Remove stock" + +#: src/pages/stock/StockDetail.tsx:698 +#: src/tables/stock/StockItemTable.tsx:481 +#~ msgid "Transfer stock" +#~ msgstr "Transfer stock" + +#: src/pages/stock/StockDetail.tsx:699 +msgid "Serialize" msgstr "" -#: src/pages/stock/StockDetail.tsx:527 -#: src/tables/stock/StockItemTable.tsx:458 -msgid "Remove stock" +#: src/pages/stock/StockDetail.tsx:700 +msgid "Serialize stock" msgstr "" -#: src/pages/stock/StockDetail.tsx:534 +#: src/pages/stock/StockDetail.tsx:711 msgid "Transfer" msgstr "" -#: src/pages/stock/StockDetail.tsx:535 -#: src/tables/stock/StockItemTable.tsx:478 -msgid "Transfer stock" +#: src/pages/stock/StockDetail.tsx:722 +msgid "Return" msgstr "" -#: src/pages/stock/StockDetail.tsx:546 +#: src/pages/stock/StockDetail.tsx:723 +msgid "Return from customer" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:738 msgid "Stock Item Actions" msgstr "" -#: src/tables/ColumnRenderers.tsx:30 +#: src/pages/stock/StockDetail.tsx:808 +msgid "Stale" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:814 +msgid "Expired" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:820 +msgid "Unavailable" +msgstr "" + +#: src/tables/ColumnRenderers.tsx:36 msgid "Part is not active" msgstr "Часть не активна" -#: src/tables/ColumnRenderers.tsx:35 -msgid "Part is locked" -msgstr "Деталь заблокирована" +#: src/tables/ColumnRenderers.tsx:41 +#: src/tables/bom/BomTable.tsx:542 +#: src/tables/part/PartParameterTable.tsx:193 +#: src/tables/part/PartTestTemplateTable.tsx:253 +msgid "Part is Locked" +msgstr "" -#: src/tables/ColumnRenderers.tsx:57 +#: src/tables/ColumnRenderers.tsx:41 +#~ msgid "Part is locked" +#~ msgstr "Part is locked" + +#: src/tables/ColumnRenderers.tsx:46 +msgid "You are subscribed to notifications for this part" +msgstr "" + +#: src/tables/ColumnRenderers.tsx:68 msgid "No location set" msgstr "" -#: src/tables/ColumnRenderers.tsx:228 -#: src/tables/sales/SalesOrderShipmentTable.tsx:79 -msgid "Shipment Date" -msgstr "" - -#: src/tables/ColumnRenderers.tsx:248 -#: src/tables/settings/CurrencyTable.tsx:23 -msgid "Currency" -msgstr "" - #: src/tables/ColumnSelect.tsx:16 #: src/tables/ColumnSelect.tsx:23 msgid "Select Columns" @@ -5452,91 +6491,116 @@ msgstr "" msgid "Download Data" msgstr "" -#: src/tables/Filter.tsx:89 -#: src/tables/build/BuildOrderTable.tsx:135 +#: src/tables/Filter.tsx:101 msgid "Assigned to me" msgstr "" -#: src/tables/Filter.tsx:90 -#: src/tables/build/BuildOrderTable.tsx:136 +#: src/tables/Filter.tsx:102 msgid "Show orders assigned to me" msgstr "" -#: src/tables/Filter.tsx:97 +#: src/tables/Filter.tsx:106 +#~ msgid "Show overdue orders" +#~ msgstr "Show overdue orders" + +#: src/tables/Filter.tsx:109 +#: src/tables/build/BuildOrderTable.tsx:120 +#: src/tables/sales/SalesOrderAllocationTable.tsx:59 msgid "Outstanding" msgstr "" -#: src/tables/Filter.tsx:98 -msgid "Show outstanding orders" +#: src/tables/Filter.tsx:110 +msgid "Show outstanding items" msgstr "" -#: src/tables/Filter.tsx:105 -#: src/tables/build/BuildOrderTable.tsx:128 +#: src/tables/Filter.tsx:117 msgid "Overdue" msgstr "" -#: src/tables/Filter.tsx:106 -msgid "Show overdue orders" +#: src/tables/Filter.tsx:118 +msgid "Show overdue items" msgstr "" -#: src/tables/FilterSelectDrawer.tsx:51 +#: src/tables/Filter.tsx:125 +msgid "Minimum Date" +msgstr "" + +#: src/tables/Filter.tsx:126 +msgid "Show items after this date" +msgstr "" + +#: src/tables/Filter.tsx:134 +msgid "Maximum Date" +msgstr "" + +#: src/tables/Filter.tsx:135 +msgid "Show items before this date" +msgstr "" + +#: src/tables/Filter.tsx:144 +msgid "Has Project Code" +msgstr "" + +#: src/tables/Filter.tsx:145 +msgid "Show orders with an assigned project code" +msgstr "" + +#: src/tables/FilterSelectDrawer.tsx:55 msgid "Remove filter" msgstr "Убрать фильтрацию" -#: src/tables/FilterSelectDrawer.tsx:130 +#: src/tables/FilterSelectDrawer.tsx:159 msgid "Select filter" msgstr "Выбрать фильтр" -#: src/tables/FilterSelectDrawer.tsx:131 +#: src/tables/FilterSelectDrawer.tsx:160 msgid "Filter" msgstr "Отфильтровать" -#: src/tables/FilterSelectDrawer.tsx:138 -#: src/tables/build/BuildOrderTestTable.tsx:134 -#: src/tables/purchasing/ManufacturerPartParameterTable.tsx:38 -#: src/tables/stock/StockItemTestResultTable.tsx:186 -msgid "Value" -msgstr "Значение" +#: src/tables/FilterSelectDrawer.tsx:168 +msgid "Select date value" +msgstr "" -#: src/tables/FilterSelectDrawer.tsx:140 +#: src/tables/FilterSelectDrawer.tsx:176 msgid "Select filter value" msgstr "" -#: src/tables/FilterSelectDrawer.tsx:183 +#: src/tables/FilterSelectDrawer.tsx:219 +#: src/tables/InvenTreeTableHeader.tsx:214 msgid "Table Filters" msgstr "" -#: src/tables/FilterSelectDrawer.tsx:215 +#: src/tables/FilterSelectDrawer.tsx:251 msgid "Add Filter" msgstr "Добавить фильтр" -#: src/tables/FilterSelectDrawer.tsx:224 +#: src/tables/FilterSelectDrawer.tsx:260 msgid "Clear Filters" msgstr "" -#: src/tables/InvenTreeTable.tsx:123 -#: src/tables/InvenTreeTable.tsx:431 -#: src/tables/InvenTreeTable.tsx:455 +#: src/tables/InvenTreeTable.tsx:96 +#: src/tables/InvenTreeTable.tsx:417 +#: src/tables/InvenTreeTable.tsx:441 msgid "No records found" msgstr "" -#: src/tables/InvenTreeTable.tsx:466 +#: src/tables/InvenTreeTable.tsx:452 msgid "Server returned incorrect data type" msgstr "" -#: src/tables/InvenTreeTable.tsx:474 +#: src/tables/InvenTreeTable.tsx:460 msgid "Bad request" msgstr "" -#: src/tables/InvenTreeTable.tsx:477 +#: src/tables/InvenTreeTable.tsx:463 msgid "Unauthorized" msgstr "" -#: src/tables/InvenTreeTable.tsx:480 +#: src/tables/InvenTreeTable.tsx:466 msgid "Forbidden" msgstr "" -#: src/tables/InvenTreeTable.tsx:483 +#: src/tables/InvenTreeTable.tsx:469 msgid "Not found" msgstr "" @@ -5544,18 +6608,6 @@ msgstr "" #~ msgid "Are you sure you want to delete the selected records?" #~ msgstr "Are you sure you want to delete the selected records?" -#: src/tables/InvenTreeTable.tsx:525 -msgid "Delete Selected Items" -msgstr "" - -#: src/tables/InvenTreeTable.tsx:529 -msgid "Are you sure you want to delete the selected items?" -msgstr "" - -#: src/tables/InvenTreeTable.tsx:531 -msgid "This action cannot be undone!" -msgstr "" - #: src/tables/InvenTreeTable.tsx:535 #~ msgid "Deleted records" #~ msgstr "Deleted records" @@ -5568,31 +6620,56 @@ msgstr "" #~ msgid "Failed to delete records" #~ msgstr "Failed to delete records" +#: src/tables/InvenTreeTable.tsx:552 +#~ msgid "This action cannot be undone!" +#~ msgstr "This action cannot be undone!" + #: src/tables/InvenTreeTable.tsx:594 #: src/tables/InvenTreeTable.tsx:595 #~ msgid "Print actions" #~ msgstr "Print actions" -#: src/tables/InvenTreeTable.tsx:618 -#: src/tables/InvenTreeTable.tsx:619 -msgid "Barcode actions" +#: src/tables/InvenTreeTable.tsx:655 +#: src/tables/InvenTreeTable.tsx:656 +#~ msgid "Barcode actions" +#~ msgstr "Barcode actions" + +#: src/tables/InvenTreeTable.tsx:712 +#~ msgid "Table filters" +#~ msgstr "Table filters" + +#: src/tables/InvenTreeTable.tsx:725 +#~ msgid "Clear custom query filters" +#~ msgstr "Clear custom query filters" + +#: src/tables/InvenTreeTableHeader.tsx:98 +msgid "Delete Selected Items" msgstr "" -#: src/tables/InvenTreeTable.tsx:628 +#: src/tables/InvenTreeTableHeader.tsx:102 +msgid "Are you sure you want to delete the selected items?" +msgstr "" + +#: src/tables/InvenTreeTableHeader.tsx:104 +#: src/tables/plugin/PluginListTable.tsx:305 +msgid "This action cannot be undone" +msgstr "" + +#: src/tables/InvenTreeTableHeader.tsx:142 +msgid "Custom table filters are active" +msgstr "" + +#: src/tables/InvenTreeTableHeader.tsx:169 msgid "Delete selected records" msgstr "" -#: src/tables/InvenTreeTable.tsx:649 +#: src/tables/InvenTreeTableHeader.tsx:188 msgid "Refresh data" msgstr "" -#: src/tables/InvenTreeTable.tsx:675 -msgid "Table filters" -msgstr "" - #: src/tables/TableHoverCard.tsx:35 -msgid "item-{idx}" -msgstr "" +#~ msgid "item-{idx}" +#~ msgstr "item-{idx}" #: src/tables/UploadAction.tsx:7 #~ msgid "Upload Data" @@ -5607,31 +6684,36 @@ msgid "Part Information" msgstr "" #: src/tables/bom/BomTable.tsx:212 -#: src/tables/build/BuildLineTable.tsx:126 +#: src/tables/build/BuildLineTable.tsx:257 #: src/tables/part/PartTable.tsx:125 msgid "External stock" msgstr "" #: src/tables/bom/BomTable.tsx:220 -#: src/tables/build/BuildLineTable.tsx:89 +#: src/tables/build/BuildLineTable.tsx:220 msgid "Includes substitute stock" msgstr "" #: src/tables/bom/BomTable.tsx:229 -#: src/tables/build/BuildLineTable.tsx:99 -#: src/tables/sales/SalesOrderLineItemTable.tsx:127 +#: src/tables/build/BuildLineTable.tsx:230 +#: src/tables/sales/SalesOrderLineItemTable.tsx:135 msgid "Includes variant stock" msgstr "" +#: src/tables/bom/BomTable.tsx:245 +#: src/tables/part/PartTable.tsx:92 +msgid "Building" +msgstr "" + #: src/tables/bom/BomTable.tsx:254 #: src/tables/part/PartTable.tsx:153 -#: src/tables/sales/SalesOrderLineItemTable.tsx:150 -#: src/tables/stock/StockItemTable.tsx:216 +#: src/tables/sales/SalesOrderLineItemTable.tsx:158 +#: src/tables/stock/StockItemTable.tsx:206 msgid "Stock Information" msgstr "" #: src/tables/bom/BomTable.tsx:285 -#: src/tables/build/BuildLineTable.tsx:248 +#: src/tables/build/BuildLineTable.tsx:409 msgid "Consumable item" msgstr "" @@ -5644,7 +6726,7 @@ msgstr "" #~ msgstr "Create BOM Item" #: src/tables/bom/BomTable.tsx:306 -#: src/tables/build/BuildLineTable.tsx:69 +#: src/tables/build/BuildLineTable.tsx:200 msgid "Show testable items" msgstr "" @@ -5657,11 +6739,12 @@ msgid "Show trackable items" msgstr "" #: src/tables/bom/BomTable.tsx:316 -#: src/tables/build/BuildLineTable.tsx:64 +#: src/tables/build/BuildLineTable.tsx:195 msgid "Show assembled items" msgstr "" #: src/tables/bom/BomTable.tsx:321 +#: src/tables/build/BuildLineTable.tsx:180 msgid "Show items with available stock" msgstr "" @@ -5705,7 +6788,7 @@ msgstr "" #: src/tables/bom/BomTable.tsx:345 #: src/tables/bom/UsedInTable.tsx:79 -#: src/tables/build/BuildLineTable.tsx:58 +#: src/tables/build/BuildLineTable.tsx:189 msgid "Optional" msgstr "" @@ -5723,7 +6806,7 @@ msgstr "" #~ msgstr "Bom item deleted" #: src/tables/bom/BomTable.tsx:350 -#: src/tables/build/BuildLineTable.tsx:53 +#: src/tables/build/BuildLineTable.tsx:184 msgid "Consumable" msgstr "" @@ -5749,12 +6832,12 @@ msgid "Show items with pricing" msgstr "" #: src/tables/bom/BomTable.tsx:378 -#: src/tables/bom/BomTable.tsx:511 +#: src/tables/bom/BomTable.tsx:512 msgid "Import BOM Data" msgstr "" #: src/tables/bom/BomTable.tsx:388 -#: src/tables/bom/BomTable.tsx:523 +#: src/tables/bom/BomTable.tsx:526 msgid "Add BOM Item" msgstr "" @@ -5780,7 +6863,7 @@ msgstr "" #: src/tables/bom/BomTable.tsx:423 #: src/tables/bom/BomTable.tsx:426 -#: src/tables/bom/BomTable.tsx:517 +#: src/tables/bom/BomTable.tsx:519 msgid "Validate BOM" msgstr "" @@ -5812,21 +6895,15 @@ msgstr "" msgid "Edit Substitutes" msgstr "" -#: src/tables/bom/BomTable.tsx:539 -#: src/tables/part/PartParameterTable.tsx:193 -#: src/tables/part/PartTestTemplateTable.tsx:252 -msgid "Part is Locked" -msgstr "" - -#: src/tables/bom/BomTable.tsx:544 +#: src/tables/bom/BomTable.tsx:547 msgid "Bill of materials cannot be edited, as the part is locked" msgstr "" #: src/tables/bom/UsedInTable.tsx:33 -#: src/tables/build/BuildLineTable.tsx:63 +#: src/tables/build/BuildLineTable.tsx:194 #: src/tables/part/ParametricPartTable.tsx:233 #: src/tables/part/PartTable.tsx:190 -#: src/tables/stock/StockItemTable.tsx:300 +#: src/tables/stock/StockItemTable.tsx:304 msgid "Assembly" msgstr "" @@ -5844,285 +6921,347 @@ msgstr "" msgid "Show trackable assemblies" msgstr "" -#: src/tables/build/BuildAllocatedStockTable.tsx:54 +#: src/tables/build/BuildAllocatedStockTable.tsx:56 msgid "Allocated to Output" msgstr "" -#: src/tables/build/BuildAllocatedStockTable.tsx:55 +#: src/tables/build/BuildAllocatedStockTable.tsx:57 msgid "Show items allocated to a build output" msgstr "" -#: src/tables/build/BuildAllocatedStockTable.tsx:76 -#: src/tables/part/PartPurchaseOrdersTable.tsx:125 -#: src/tables/sales/SalesOrderAllocationTable.tsx:62 +#: src/tables/build/BuildAllocatedStockTable.tsx:65 +#: src/tables/build/BuildOrderTable.tsx:159 +#: src/tables/part/PartParameterTable.tsx:212 +#: src/tables/part/PartPurchaseOrdersTable.tsx:138 +#: src/tables/sales/ReturnOrderTable.tsx:84 +#: src/tables/sales/SalesOrderAllocationTable.tsx:68 +#: src/tables/sales/SalesOrderTable.tsx:84 +#: src/tables/stock/StockItemTable.tsx:339 +msgid "Include Variants" +msgstr "" + +#: src/tables/build/BuildAllocatedStockTable.tsx:66 +#: src/tables/build/BuildOrderTable.tsx:160 +#: src/tables/part/PartPurchaseOrdersTable.tsx:139 +#: src/tables/sales/ReturnOrderTable.tsx:85 +#: src/tables/sales/SalesOrderAllocationTable.tsx:69 +#: src/tables/sales/SalesOrderTable.tsx:85 +msgid "Include orders for part variants" +msgstr "" + +#: src/tables/build/BuildAllocatedStockTable.tsx:89 +#: src/tables/part/PartPurchaseOrdersTable.tsx:131 +#: src/tables/sales/SalesOrderAllocationTable.tsx:93 msgid "Order Status" msgstr "" -#: src/tables/build/BuildAllocatedStockTable.tsx:96 -#: src/tables/sales/SalesOrderAllocationTable.tsx:75 +#: src/tables/build/BuildAllocatedStockTable.tsx:117 +#: src/tables/sales/SalesOrderAllocationTable.tsx:126 msgid "Allocated Quantity" msgstr "" -#: src/tables/build/BuildAllocatedStockTable.tsx:116 -#: src/tables/sales/SalesOrderAllocationTable.tsx:94 +#: src/tables/build/BuildAllocatedStockTable.tsx:137 +#: src/tables/sales/SalesOrderAllocationTable.tsx:120 msgid "Available Quantity" msgstr "" -#: src/tables/build/BuildAllocatedStockTable.tsx:126 -#: src/tables/build/BuildOrderTestTable.tsx:176 -#: src/tables/build/BuildOrderTestTable.tsx:200 -#: src/tables/build/BuildOutputTable.tsx:312 -msgid "Build Output" +#: src/tables/build/BuildAllocatedStockTable.tsx:164 +#: src/tables/build/BuildLineTable.tsx:513 +msgid "Edit Stock Allocation" msgstr "" -#: src/tables/build/BuildAllocatedStockTable.tsx:143 -msgid "Edit Build Item" -msgstr "" +#: src/tables/build/BuildAllocatedStockTable.tsx:164 +#~ msgid "Edit Build Item" +#~ msgstr "Edit Build Item" -#: src/tables/build/BuildAllocatedStockTable.tsx:153 -msgid "Delete Build Item" -msgstr "" +#: src/tables/build/BuildAllocatedStockTable.tsx:174 +#~ msgid "Delete Build Item" +#~ msgstr "Delete Build Item" -#: src/tables/build/BuildLineTable.tsx:43 -#: src/tables/stock/StockItemTable.tsx:305 -msgid "Allocated" -msgstr "" - -#: src/tables/build/BuildLineTable.tsx:44 -msgid "Show allocated lines" -msgstr "" - -#: src/tables/build/BuildLineTable.tsx:49 -msgid "Show lines with available stock" -msgstr "" - -#: src/tables/build/BuildLineTable.tsx:54 -msgid "Show consumable lines" +#: src/tables/build/BuildAllocatedStockTable.tsx:177 +#: src/tables/build/BuildLineTable.tsx:526 +msgid "Delete Stock Allocation" msgstr "" #: src/tables/build/BuildLineTable.tsx:59 +#~ msgid "Show lines with available stock" +#~ msgstr "Show lines with available stock" + +#: src/tables/build/BuildLineTable.tsx:175 +msgid "Show allocated lines" +msgstr "" + +#: src/tables/build/BuildLineTable.tsx:185 +msgid "Show consumable lines" +msgstr "" + +#: src/tables/build/BuildLineTable.tsx:190 msgid "Show optional lines" msgstr "" -#: src/tables/build/BuildLineTable.tsx:68 +#: src/tables/build/BuildLineTable.tsx:199 #: src/tables/part/PartTable.tsx:208 msgid "Testable" msgstr "" -#: src/tables/build/BuildLineTable.tsx:73 -#: src/tables/stock/StockItemTable.tsx:364 +#: src/tables/build/BuildLineTable.tsx:204 +#: src/tables/stock/StockItemTable.tsx:368 msgid "Tracked" msgstr "" -#: src/tables/build/BuildLineTable.tsx:74 +#: src/tables/build/BuildLineTable.tsx:205 msgid "Show tracked lines" msgstr "" -#: src/tables/build/BuildLineTable.tsx:108 -#: src/tables/sales/SalesOrderLineItemTable.tsx:133 +#: src/tables/build/BuildLineTable.tsx:239 +#: src/tables/sales/SalesOrderLineItemTable.tsx:141 msgid "In production" msgstr "" -#: src/tables/build/BuildLineTable.tsx:136 +#: src/tables/build/BuildLineTable.tsx:267 msgid "Insufficient stock" msgstr "" -#: src/tables/build/BuildLineTable.tsx:152 -#: src/tables/sales/SalesOrderLineItemTable.tsx:121 -#: src/tables/stock/StockItemTable.tsx:186 +#: src/tables/build/BuildLineTable.tsx:283 +#: src/tables/sales/SalesOrderLineItemTable.tsx:129 +#: src/tables/stock/StockItemTable.tsx:175 msgid "No stock available" msgstr "" -#: src/tables/build/BuildLineTable.tsx:201 +#: src/tables/build/BuildLineTable.tsx:355 msgid "Gets Inherited" msgstr "" -#: src/tables/build/BuildLineTable.tsx:210 +#: src/tables/build/BuildLineTable.tsx:366 msgid "Unit Quantity" msgstr "" -#: src/tables/build/BuildLineTable.tsx:267 -#: src/tables/sales/SalesOrderLineItemTable.tsx:230 +#: src/tables/build/BuildLineTable.tsx:381 +msgid "Required Quantity" +msgstr "" + +#: src/tables/build/BuildLineTable.tsx:432 +#: src/tables/sales/SalesOrderLineItemTable.tsx:254 msgid "Create Build Order" msgstr "" -#: src/tables/build/BuildLineTable.tsx:298 -msgid "Allocate Stock" +#: src/tables/build/BuildLineTable.tsx:460 +msgid "Auto allocation in progress" +msgstr "Выполняется автоматическое распределение" + +#: src/tables/build/BuildLineTable.tsx:463 +#: src/tables/build/BuildLineTable.tsx:632 +msgid "Auto Allocate Stock" +msgstr "Автораспределение запасов" + +#: src/tables/build/BuildLineTable.tsx:464 +msgid "Automatically allocate stock to this build according to the selected options" +msgstr "Автоматически выделять запасы на эту сборку в соответствии с выбранными параметрами" + +#: src/tables/build/BuildLineTable.tsx:482 +#: src/tables/build/BuildLineTable.tsx:496 +#: src/tables/build/BuildLineTable.tsx:579 +#: src/tables/build/BuildLineTable.tsx:664 +#: src/tables/build/BuildOutputTable.tsx:314 +#: src/tables/build/BuildOutputTable.tsx:319 +msgid "Deallocate Stock" msgstr "" -#: src/tables/build/BuildLineTable.tsx:305 +#: src/tables/build/BuildLineTable.tsx:498 +msgid "Deallocate all untracked stock for this build order" +msgstr "Начислить все неотслеживаемые запасы для этого заказа на сборку" + +#: src/tables/build/BuildLineTable.tsx:500 +msgid "Deallocate stock from the selected line item" +msgstr "Начислить запасы из выбранного элемента строки" + +#: src/tables/build/BuildLineTable.tsx:504 +msgid "Stock has been deallocated" +msgstr "Склад был распродан" + +#: src/tables/build/BuildLineTable.tsx:589 msgid "Order Stock" msgstr "" -#: src/tables/build/BuildLineTable.tsx:312 +#: src/tables/build/BuildLineTable.tsx:596 msgid "Build Stock" msgstr "" -#: src/tables/build/BuildOrderTable.tsx:111 -msgid "Show active orders" +#: src/tables/build/BuildLineTable.tsx:610 +msgid "View Part" msgstr "" #: src/tables/build/BuildOrderTable.tsx:116 -msgid "Cascade" -msgstr "" +#~ msgid "Cascade" +#~ msgstr "Cascade" #: src/tables/build/BuildOrderTable.tsx:117 -msgid "Display recursive child orders" +#~ msgid "Display recursive child orders" +#~ msgstr "Display recursive child orders" + +#: src/tables/build/BuildOrderTable.tsx:121 +msgid "Show outstanding orders" msgstr "" -#: src/tables/build/BuildOrderTable.tsx:123 -#: src/tables/part/PartPurchaseOrdersTable.tsx:126 -#: src/tables/purchasing/PurchaseOrderTable.tsx:56 -#: src/tables/sales/ReturnOrderTable.tsx:47 -#: src/tables/sales/SalesOrderTable.tsx:54 +#: src/tables/build/BuildOrderTable.tsx:121 +#~ msgid "Show active orders" +#~ msgstr "Show active orders" + +#: src/tables/build/BuildOrderTable.tsx:122 +#~ msgid "Show overdue status" +#~ msgstr "Show overdue status" + +#: src/tables/build/BuildOrderTable.tsx:126 +#: src/tables/part/PartPurchaseOrdersTable.tsx:132 +#: src/tables/purchasing/PurchaseOrderTable.tsx:59 +#: src/tables/sales/ReturnOrderTable.tsx:57 +#: src/tables/sales/SalesOrderTable.tsx:57 msgid "Filter by order status" msgstr "" -#: src/tables/build/BuildOrderTable.tsx:130 -msgid "Show overdue status" -msgstr "" - -#: src/tables/build/BuildOrderTable.tsx:141 -#: src/tables/purchasing/PurchaseOrderTable.tsx:65 -#: src/tables/sales/ReturnOrderTable.tsx:56 -#: src/tables/sales/SalesOrderTable.tsx:63 +#: src/tables/build/BuildOrderTable.tsx:136 +#: src/tables/purchasing/PurchaseOrderTable.tsx:70 +#: src/tables/sales/ReturnOrderTable.tsx:68 +#: src/tables/sales/SalesOrderTable.tsx:68 msgid "Filter by project code" msgstr "" -#: src/tables/build/BuildOrderTable.tsx:146 -#: src/tables/purchasing/PurchaseOrderTable.tsx:70 -#: src/tables/sales/ReturnOrderTable.tsx:61 -#: src/tables/sales/SalesOrderTable.tsx:68 -msgid "Has Project Code" -msgstr "" - -#: src/tables/build/BuildOrderTable.tsx:147 +#: src/tables/build/BuildOrderTable.tsx:139 #: src/tables/purchasing/PurchaseOrderTable.tsx:71 #: src/tables/sales/ReturnOrderTable.tsx:62 #: src/tables/sales/SalesOrderTable.tsx:69 -msgid "Filter by whether the purchase order has a project code" -msgstr "" +#~ msgid "Filter by whether the purchase order has a project code" +#~ msgstr "Filter by whether the purchase order has a project code" -#: src/tables/build/BuildOrderTable.tsx:152 +#: src/tables/build/BuildOrderTable.tsx:143 msgid "Filter by user who issued this order" msgstr "" -#: src/tables/build/BuildOrderTable.tsx:158 -#: src/tables/purchasing/PurchaseOrderTable.tsx:76 -#: src/tables/sales/ReturnOrderTable.tsx:67 -#: src/tables/sales/SalesOrderTable.tsx:74 +#: src/tables/build/BuildOrderTable.tsx:149 +#: src/tables/purchasing/PurchaseOrderTable.tsx:77 +#: src/tables/sales/ReturnOrderTable.tsx:75 +#: src/tables/sales/SalesOrderTable.tsx:75 msgid "Filter by responsible owner" msgstr "" -#: src/tables/build/BuildOrderTestTable.tsx:75 -#: src/tables/build/BuildOrderTestTable.tsx:111 -#: src/tables/stock/StockItemTestResultTable.tsx:257 -#: src/tables/stock/StockItemTestResultTable.tsx:329 -#: src/tables/stock/StockItemTestResultTable.tsx:384 +#: src/tables/build/BuildOrderTestTable.tsx:76 +#: src/tables/build/BuildOrderTestTable.tsx:112 +#: src/tables/stock/StockItemTestResultTable.tsx:275 +#: src/tables/stock/StockItemTestResultTable.tsx:347 +#: src/tables/stock/StockItemTestResultTable.tsx:403 msgid "Add Test Result" msgstr "" -#: src/tables/build/BuildOrderTestTable.tsx:82 -#: src/tables/stock/StockItemTestResultTable.tsx:259 +#: src/tables/build/BuildOrderTestTable.tsx:83 +#: src/tables/stock/StockItemTestResultTable.tsx:277 msgid "Test result added" msgstr "" -#: src/tables/build/BuildOrderTestTable.tsx:110 -#: src/tables/stock/StockItemTestResultTable.tsx:174 +#: src/tables/build/BuildOrderTestTable.tsx:111 +#: src/tables/stock/StockItemTestResultTable.tsx:180 msgid "No Result" msgstr "" -#: src/tables/build/BuildOrderTestTable.tsx:220 +#: src/tables/build/BuildOrderTestTable.tsx:221 msgid "Show build outputs currently in production" msgstr "" +#: src/tables/build/BuildOutputTable.tsx:76 +msgid "Build Output Stock Allocation" +msgstr "" + #: src/tables/build/BuildOutputTable.tsx:161 #~ msgid "Delete build output" #~ msgstr "Delete build output" -#: src/tables/build/BuildOutputTable.tsx:173 -#: src/tables/build/BuildOutputTable.tsx:211 +#: src/tables/build/BuildOutputTable.tsx:258 +#: src/tables/build/BuildOutputTable.tsx:374 msgid "Add Build Output" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:216 +#: src/tables/build/BuildOutputTable.tsx:304 +#~ msgid "Edit build output" +#~ msgstr "Edit build output" + +#: src/tables/build/BuildOutputTable.tsx:306 +#: src/tables/build/BuildOutputTable.tsx:417 +msgid "Edit Build Output" +msgstr "" + +#: src/tables/build/BuildOutputTable.tsx:321 +msgid "This action will deallocate all stock from the selected build output" +msgstr "" + +#: src/tables/build/BuildOutputTable.tsx:341 msgid "Complete selected outputs" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:226 +#: src/tables/build/BuildOutputTable.tsx:352 msgid "Scrap selected outputs" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:236 +#: src/tables/build/BuildOutputTable.tsx:363 msgid "Cancel selected outputs" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:252 +#: src/tables/build/BuildOutputTable.tsx:385 msgid "Allocate" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:253 +#: src/tables/build/BuildOutputTable.tsx:386 msgid "Allocate stock to build output" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:259 +#: src/tables/build/BuildOutputTable.tsx:396 msgid "Deallocate" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:260 +#: src/tables/build/BuildOutputTable.tsx:397 msgid "Deallocate stock from build output" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:267 +#: src/tables/build/BuildOutputTable.tsx:408 msgid "Complete build output" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:276 +#: src/tables/build/BuildOutputTable.tsx:424 msgid "Scrap" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:277 +#: src/tables/build/BuildOutputTable.tsx:425 msgid "Scrap build output" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:280 -#~ msgid "Allocated Items" -#~ msgstr "Allocated Items" - -#: src/tables/build/BuildOutputTable.tsx:287 +#: src/tables/build/BuildOutputTable.tsx:435 msgid "Cancel build output" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:325 -msgid "Batch" -msgstr "" - -#: src/tables/build/BuildOutputTable.tsx:340 +#: src/tables/build/BuildOutputTable.tsx:488 msgid "Allocated Lines" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:355 +#: src/tables/build/BuildOutputTable.tsx:503 msgid "Required Tests" msgstr "" -#: src/tables/company/AddressTable.tsx:121 -#: src/tables/company/AddressTable.tsx:185 +#: src/tables/company/AddressTable.tsx:118 +#: src/tables/company/AddressTable.tsx:183 msgid "Add Address" msgstr "" -#: src/tables/company/AddressTable.tsx:126 +#: src/tables/company/AddressTable.tsx:123 msgid "Address created" msgstr "" -#: src/tables/company/AddressTable.tsx:135 +#: src/tables/company/AddressTable.tsx:132 msgid "Edit Address" msgstr "" -#: src/tables/company/AddressTable.tsx:143 +#: src/tables/company/AddressTable.tsx:140 msgid "Delete Address" msgstr "" -#: src/tables/company/AddressTable.tsx:144 +#: src/tables/company/AddressTable.tsx:141 msgid "Are you sure you want to delete this address?" msgstr "" @@ -6130,24 +7269,24 @@ msgstr "" #~ msgid "New Company" #~ msgstr "New Company" -#: src/tables/company/CompanyTable.tsx:74 -#: src/tables/company/CompanyTable.tsx:123 +#: src/tables/company/CompanyTable.tsx:75 +#: src/tables/company/CompanyTable.tsx:125 msgid "Add Company" msgstr "" -#: src/tables/company/CompanyTable.tsx:96 +#: src/tables/company/CompanyTable.tsx:97 msgid "Show active companies" msgstr "" -#: src/tables/company/CompanyTable.tsx:101 +#: src/tables/company/CompanyTable.tsx:102 msgid "Show companies which are suppliers" msgstr "" -#: src/tables/company/CompanyTable.tsx:106 +#: src/tables/company/CompanyTable.tsx:107 msgid "Show companies which are manufacturers" msgstr "" -#: src/tables/company/CompanyTable.tsx:111 +#: src/tables/company/CompanyTable.tsx:112 msgid "Show companies which are customers" msgstr "" @@ -6163,96 +7302,99 @@ msgstr "" msgid "Delete Contact" msgstr "" -#: src/tables/company/ContactTable.tsx:129 +#: src/tables/company/ContactTable.tsx:130 msgid "Add contact" msgstr "" -#: src/tables/general/AttachmentTable.tsx:130 +#: src/tables/general/AttachmentTable.tsx:135 msgid "File uploaded" msgstr "" -#: src/tables/general/AttachmentTable.tsx:131 +#: src/tables/general/AttachmentTable.tsx:136 msgid "File {0} uploaded successfully" msgstr "" -#: src/tables/general/AttachmentTable.tsx:142 +#: src/tables/general/AttachmentTable.tsx:147 msgid "Upload Error" msgstr "" -#: src/tables/general/AttachmentTable.tsx:143 +#: src/tables/general/AttachmentTable.tsx:148 msgid "File could not be uploaded" msgstr "" -#: src/tables/general/AttachmentTable.tsx:191 +#: src/tables/general/AttachmentTable.tsx:196 msgid "Upload Attachment" msgstr "" -#: src/tables/general/AttachmentTable.tsx:201 +#: src/tables/general/AttachmentTable.tsx:206 msgid "Edit Attachment" msgstr "" -#: src/tables/general/AttachmentTable.tsx:215 +#: src/tables/general/AttachmentTable.tsx:220 msgid "Delete Attachment" msgstr "" -#: src/tables/general/AttachmentTable.tsx:225 +#: src/tables/general/AttachmentTable.tsx:230 msgid "Is Link" msgstr "Это ссылка" -#: src/tables/general/AttachmentTable.tsx:226 +#: src/tables/general/AttachmentTable.tsx:231 msgid "Show link attachments" msgstr "Показывать встроенные вложения" -#: src/tables/general/AttachmentTable.tsx:230 +#: src/tables/general/AttachmentTable.tsx:235 msgid "Is File" msgstr "" -#: src/tables/general/AttachmentTable.tsx:231 +#: src/tables/general/AttachmentTable.tsx:236 msgid "Show file attachments" msgstr "" -#: src/tables/general/AttachmentTable.tsx:240 +#: src/tables/general/AttachmentTable.tsx:245 msgid "Add attachment" msgstr "" -#: src/tables/general/AttachmentTable.tsx:251 -msgid "Add external link" -msgstr "Добавить внешнюю ссылку" - #: src/tables/general/AttachmentTable.tsx:254 #~ msgid "Upload attachment" #~ msgstr "Upload attachment" -#: src/tables/general/AttachmentTable.tsx:299 +#: src/tables/general/AttachmentTable.tsx:256 +msgid "Add external link" +msgstr "Добавить внешнюю ссылку" + +#: src/tables/general/AttachmentTable.tsx:304 msgid "No attachments found" msgstr "" -#: src/tables/general/AttachmentTable.tsx:337 +#: src/tables/general/AttachmentTable.tsx:343 msgid "Drag attachment file here to upload" msgstr "" #: src/tables/general/ExtraLineItemTable.tsx:86 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:251 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:60 -#: src/tables/sales/SalesOrderLineItemTable.tsx:196 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:263 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:362 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:72 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:168 +#: src/tables/sales/SalesOrderLineItemTable.tsx:206 +#: src/tables/sales/SalesOrderLineItemTable.tsx:291 msgid "Add Line Item" msgstr "" #: src/tables/general/ExtraLineItemTable.tsx:98 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:271 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:72 -#: src/tables/sales/SalesOrderLineItemTable.tsx:214 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:283 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:84 +#: src/tables/sales/SalesOrderLineItemTable.tsx:224 msgid "Edit Line Item" msgstr "" #: src/tables/general/ExtraLineItemTable.tsx:106 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:279 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:80 -#: src/tables/sales/SalesOrderLineItemTable.tsx:222 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:291 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:92 +#: src/tables/sales/SalesOrderLineItemTable.tsx:232 msgid "Delete Line Item" msgstr "" -#: src/tables/general/ExtraLineItemTable.tsx:142 +#: src/tables/general/ExtraLineItemTable.tsx:143 msgid "Add Extra Line Item" msgstr "" @@ -6261,12 +7403,12 @@ msgid "Machine restarted" msgstr "" #: src/tables/machine/MachineListTable.tsx:212 -#: src/tables/machine/MachineListTable.tsx:263 +#: src/tables/machine/MachineListTable.tsx:261 msgid "Edit machine" msgstr "" #: src/tables/machine/MachineListTable.tsx:226 -#: src/tables/machine/MachineListTable.tsx:267 +#: src/tables/machine/MachineListTable.tsx:265 msgid "Delete machine" msgstr "" @@ -6278,51 +7420,50 @@ msgstr "" msgid "Are you sure you want to remove the machine \"{0}\"?" msgstr "" -#: src/tables/machine/MachineListTable.tsx:255 -#: src/tables/machine/MachineListTable.tsx:432 +#: src/tables/machine/MachineListTable.tsx:254 +#: src/tables/machine/MachineListTable.tsx:442 msgid "Restart required" msgstr "" -#: src/tables/machine/MachineListTable.tsx:259 +#: src/tables/machine/MachineListTable.tsx:258 msgid "Machine Actions" msgstr "" -#: src/tables/machine/MachineListTable.tsx:272 +#: src/tables/machine/MachineListTable.tsx:270 msgid "Restart" msgstr "" -#: src/tables/machine/MachineListTable.tsx:274 +#: src/tables/machine/MachineListTable.tsx:272 msgid "Restart machine" msgstr "" -#: src/tables/machine/MachineListTable.tsx:276 +#: src/tables/machine/MachineListTable.tsx:274 msgid "manual restart required" msgstr "" +#: src/tables/machine/MachineListTable.tsx:291 +#~ msgid "Machine information" +#~ msgstr "Machine information" + #: src/tables/machine/MachineListTable.tsx:292 -msgid "Machine information" +msgid "Machine Information" msgstr "" -#: src/tables/machine/MachineListTable.tsx:303 -#: src/tables/machine/MachineListTable.tsx:599 +#: src/tables/machine/MachineListTable.tsx:302 +#: src/tables/machine/MachineListTable.tsx:610 msgid "Machine Type" msgstr "" -#: src/tables/machine/MachineListTable.tsx:316 +#: src/tables/machine/MachineListTable.tsx:315 msgid "Machine Driver" msgstr "" -#: src/tables/machine/MachineListTable.tsx:329 +#: src/tables/machine/MachineListTable.tsx:330 msgid "Initialized" msgstr "" -#: src/tables/machine/MachineListTable.tsx:350 -#: src/tables/machine/MachineTypeTable.tsx:261 -msgid "Errors" -msgstr "" - -#: src/tables/machine/MachineListTable.tsx:358 -#: src/tables/machine/MachineTypeTable.tsx:269 +#: src/tables/machine/MachineListTable.tsx:359 +#: src/tables/machine/MachineTypeTable.tsx:290 msgid "No errors reported" msgstr "" @@ -6330,7 +7471,7 @@ msgstr "" msgid "Machine Settings" msgstr "" -#: src/tables/machine/MachineListTable.tsx:389 +#: src/tables/machine/MachineListTable.tsx:394 msgid "Driver Settings" msgstr "" @@ -6338,86 +7479,109 @@ msgstr "" #~ msgid "Create machine" #~ msgstr "Create machine" -#: src/tables/machine/MachineListTable.tsx:506 +#: src/tables/machine/MachineListTable.tsx:516 +#: src/tables/machine/MachineListTable.tsx:558 msgid "Add machine" msgstr "" #: src/tables/machine/MachineListTable.tsx:561 -msgid "Machine detail" +#~ msgid "Machine detail" +#~ msgstr "Machine detail" + +#: src/tables/machine/MachineListTable.tsx:572 +msgid "Machine Detail" msgstr "" -#: src/tables/machine/MachineListTable.tsx:608 +#: src/tables/machine/MachineListTable.tsx:619 msgid "Driver" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:73 +#: src/tables/machine/MachineTypeTable.tsx:78 msgid "Builtin driver" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:89 +#: src/tables/machine/MachineTypeTable.tsx:96 +msgid "Not Found" +msgstr "" + +#: src/tables/machine/MachineTypeTable.tsx:99 msgid "Machine type not found." msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:97 -msgid "Machine type information" +#: src/tables/machine/MachineTypeTable.tsx:99 +#~ msgid "Machine type information" +#~ msgstr "Machine type information" + +#: src/tables/machine/MachineTypeTable.tsx:109 +msgid "Machine Type Information" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:110 -#: src/tables/machine/MachineTypeTable.tsx:217 +#: src/tables/machine/MachineTypeTable.tsx:124 +#: src/tables/machine/MachineTypeTable.tsx:238 msgid "Slug" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:118 -#: src/tables/machine/MachineTypeTable.tsx:238 +#: src/tables/machine/MachineTypeTable.tsx:135 +#: src/tables/machine/MachineTypeTable.tsx:259 msgid "Provider plugin" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:130 -#: src/tables/machine/MachineTypeTable.tsx:250 +#: src/tables/machine/MachineTypeTable.tsx:147 +#: src/tables/machine/MachineTypeTable.tsx:271 msgid "Provider file" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:135 -#: src/tables/machine/MachineTypeTable.tsx:255 -#: src/tables/plugin/PluginListTable.tsx:180 -#: src/tables/plugin/PluginListTable.tsx:568 -msgid "Builtin" +#: src/tables/machine/MachineTypeTable.tsx:148 +#~ msgid "Available drivers" +#~ msgstr "Available drivers" + +#: src/tables/machine/MachineTypeTable.tsx:162 +msgid "Available Drivers" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:146 -msgid "Available drivers" -msgstr "" - -#: src/tables/machine/MachineTypeTable.tsx:196 +#: src/tables/machine/MachineTypeTable.tsx:217 msgid "Machine driver not found." msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:204 +#: src/tables/machine/MachineTypeTable.tsx:225 msgid "Machine driver information" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:224 +#: src/tables/machine/MachineTypeTable.tsx:245 msgid "Machine type" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:327 +#: src/tables/machine/MachineTypeTable.tsx:338 +#~ msgid "Machine type detail" +#~ msgstr "Machine type detail" + +#: src/tables/machine/MachineTypeTable.tsx:348 msgid "Builtin type" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:336 -msgid "Machine type detail" +#: src/tables/machine/MachineTypeTable.tsx:348 +#~ msgid "Machine driver detail" +#~ msgstr "Machine driver detail" + +#: src/tables/machine/MachineTypeTable.tsx:357 +msgid "Machine Type Detail" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:346 -msgid "Machine driver detail" +#: src/tables/machine/MachineTypeTable.tsx:367 +msgid "Machine Driver Detail" msgstr "" #: src/tables/notifications/NotificationsTable.tsx:26 msgid "Age" msgstr "" +#: src/tables/notifications/NotificationsTable.tsx:36 +msgid "Notification" +msgstr "Уведомление" + #: src/tables/notifications/NotificationsTable.tsx:40 #: src/tables/plugin/PluginErrorTable.tsx:37 +#: src/tables/settings/ErrorTable.tsx:50 msgid "Message" msgstr "" @@ -6451,33 +7615,32 @@ msgstr "" msgid "Show assembly parts" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:68 +#: src/tables/part/PartCategoryTable.tsx:48 +msgid "You are subscribed to notifications for this category" +msgstr "" + +#: src/tables/part/PartCategoryTable.tsx:80 #: src/tables/part/PartTable.tsx:196 msgid "Include Subcategories" msgstr "Включая подкатегории" -#: src/tables/part/PartCategoryTable.tsx:69 +#: src/tables/part/PartCategoryTable.tsx:81 msgid "Include subcategories in results" msgstr "Включить подкатегории в результаты" -#: src/tables/part/PartCategoryTable.tsx:74 +#: src/tables/part/PartCategoryTable.tsx:86 msgid "Show structural categories" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:78 -#: src/tables/part/PartTable.tsx:294 -msgid "Subscribed" -msgstr "" - -#: src/tables/part/PartCategoryTable.tsx:79 +#: src/tables/part/PartCategoryTable.tsx:91 msgid "Show categories to which the user is subscribed" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:86 +#: src/tables/part/PartCategoryTable.tsx:100 msgid "New Part Category" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:112 +#: src/tables/part/PartCategoryTable.tsx:129 msgid "Add Part Category" msgstr "" @@ -6523,11 +7686,6 @@ msgstr "" msgid "Part parameters cannot be edited, as the part is locked" msgstr "" -#: src/tables/part/PartParameterTable.tsx:212 -#: src/tables/stock/StockItemTable.tsx:335 -msgid "Include Variants" -msgstr "" - #: src/tables/part/PartParameterTemplateTable.tsx:31 msgid "Checkbox" msgstr "" @@ -6554,6 +7712,7 @@ msgid "Show templates with units" msgstr "Показать шаблоны с единицами измерения" #: src/tables/part/PartParameterTemplateTable.tsx:85 +#: src/tables/part/PartParameterTemplateTable.tsx:141 msgid "Add Parameter Template" msgstr "" @@ -6566,23 +7725,19 @@ msgid "Delete Parameter Template" msgstr "" #: src/tables/part/PartParameterTemplateTable.tsx:141 -msgid "Add parameter template" -msgstr "" +#~ msgid "Add parameter template" +#~ msgstr "Add parameter template" -#: src/tables/part/PartPurchaseOrdersTable.tsx:77 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:162 +#: src/tables/part/PartPurchaseOrdersTable.tsx:78 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:168 msgid "Total Quantity" msgstr "" -#: src/tables/part/PartPurchaseOrdersTable.tsx:115 -msgid "Pending" -msgstr "" - -#: src/tables/part/PartPurchaseOrdersTable.tsx:116 +#: src/tables/part/PartPurchaseOrdersTable.tsx:122 msgid "Show pending orders" msgstr "" -#: src/tables/part/PartPurchaseOrdersTable.tsx:121 +#: src/tables/part/PartPurchaseOrdersTable.tsx:127 msgid "Show received items" msgstr "" @@ -6728,22 +7883,13 @@ msgstr "" msgid "Results" msgstr "" -#: src/tables/part/PartTestTemplateTable.tsx:76 -msgid "No Results" -msgstr "" - -#: src/tables/part/PartTestTemplateTable.tsx:106 -#: src/tables/stock/StockItemTestResultTable.tsx:365 -msgid "Required" -msgstr "" - #: src/tables/part/PartTestTemplateTable.tsx:107 msgid "Show required tests" msgstr "" #: src/tables/part/PartTestTemplateTable.tsx:111 -#: src/tables/settings/TemplateTable.tsx:167 -#: src/tables/settings/TemplateTable.tsx:283 +#: src/tables/settings/TemplateTable.tsx:247 +#: src/tables/settings/TemplateTable.tsx:363 msgid "Enabled" msgstr "" @@ -6784,7 +7930,7 @@ msgid "Show tests which have recorded results" msgstr "" #: src/tables/part/PartTestTemplateTable.tsx:154 -#: src/tables/part/PartTestTemplateTable.tsx:237 +#: src/tables/part/PartTestTemplateTable.tsx:238 msgid "Add Test Template" msgstr "" @@ -6808,7 +7954,7 @@ msgstr "" msgid "View Parent Part" msgstr "" -#: src/tables/part/PartTestTemplateTable.tsx:257 +#: src/tables/part/PartTestTemplateTable.tsx:258 msgid "Part templates cannot be edited, as the part is locked" msgstr "" @@ -6836,41 +7982,58 @@ msgstr "" msgid "Show trackable variants" msgstr "" -#: src/tables/part/RelatedPartTable.tsx:84 +#: src/tables/part/RelatedPartTable.tsx:86 +#: src/tables/part/RelatedPartTable.tsx:109 msgid "Add Related Part" msgstr "" -#: src/tables/part/RelatedPartTable.tsx:99 +#: src/tables/part/RelatedPartTable.tsx:101 msgid "Delete Related Part" msgstr "" -#: src/tables/part/RelatedPartTable.tsx:106 -msgid "Add related part" -msgstr "" +#: src/tables/part/RelatedPartTable.tsx:109 +#~ msgid "Add related part" +#~ msgstr "Add related part" #: src/tables/plugin/PluginErrorTable.tsx:29 msgid "Stage" msgstr "" -#: src/tables/plugin/PluginListTable.tsx:95 -msgid "Plugin with key {pluginKey} not found" +#: src/tables/plugin/PluginListTable.tsx:42 +msgid "Plugin is active" msgstr "" -#: src/tables/plugin/PluginListTable.tsx:97 -msgid "An error occurred while fetching plugin details" +#: src/tables/plugin/PluginListTable.tsx:48 +msgid "Plugin is inactive" msgstr "" +#: src/tables/plugin/PluginListTable.tsx:55 +msgid "Plugin is not installed" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:76 +msgid "Plugin" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:95 +#~ msgid "Plugin with key {pluginKey} not found" +#~ msgstr "Plugin with key {pluginKey} not found" + +#: src/tables/plugin/PluginListTable.tsx:97 +#~ msgid "An error occurred while fetching plugin details" +#~ msgstr "An error occurred while fetching plugin details" + +#: src/tables/plugin/PluginListTable.tsx:109 +msgid "Description not available" +msgstr "Описание недоступно" + #: src/tables/plugin/PluginListTable.tsx:113 #~ msgid "Plugin with id {id} not found" #~ msgstr "Plugin with id {id} not found" #: src/tables/plugin/PluginListTable.tsx:122 -msgid "Plugin information" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:134 -msgid "Author" -msgstr "" +#~ msgid "Plugin information" +#~ msgstr "Plugin information" #: src/tables/plugin/PluginListTable.tsx:134 #~ msgid "Plugin Actions" @@ -6881,79 +8044,124 @@ msgstr "" #~ msgid "Edit plugin" #~ msgstr "Edit plugin" +#: src/tables/plugin/PluginListTable.tsx:144 +msgid "Confirm plugin activation" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:145 +msgid "Confirm plugin deactivation" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:150 +msgid "The selected plugin will be activated" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:151 +msgid "The selected plugin will be deactivated" +msgstr "" + #: src/tables/plugin/PluginListTable.tsx:152 #: src/tables/plugin/PluginListTable.tsx:153 #~ msgid "Reload" #~ msgstr "Reload" -#: src/tables/plugin/PluginListTable.tsx:154 -msgid "Plugin is not active" -msgstr "" - #: src/tables/plugin/PluginListTable.tsx:163 -msgid "Package information" -msgstr "" +#~ msgid "Package information" +#~ msgstr "Package information" #: src/tables/plugin/PluginListTable.tsx:169 -msgid "Package Name" +msgid "Deactivate" msgstr "" -#: src/tables/plugin/PluginListTable.tsx:175 -msgid "Installation Path" +#: src/tables/plugin/PluginListTable.tsx:183 +msgid "Activate" msgstr "" -#: src/tables/plugin/PluginListTable.tsx:185 -msgid "Package" +#: src/tables/plugin/PluginListTable.tsx:184 +msgid "Activate selected plugin" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:196 +msgid "Update selected plugin" msgstr "" #: src/tables/plugin/PluginListTable.tsx:197 -msgid "Plugin settings" -msgstr "" +#~ msgid "Plugin settings" +#~ msgstr "Plugin settings" #: src/tables/plugin/PluginListTable.tsx:214 -msgid "Plugin is active" +#: src/tables/stock/InstalledItemsTable.tsx:107 +msgid "Uninstall" msgstr "" -#: src/tables/plugin/PluginListTable.tsx:220 -msgid "Plugin is inactive" +#: src/tables/plugin/PluginListTable.tsx:215 +msgid "Uninstall selected plugin" msgstr "" -#: src/tables/plugin/PluginListTable.tsx:227 -msgid "Plugin is not installed" +#: src/tables/plugin/PluginListTable.tsx:233 +msgid "Delete selected plugin configuration" msgstr "" -#: src/tables/plugin/PluginListTable.tsx:253 -msgid "Plugin" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:287 -msgid "Description not available" -msgstr "Описание недоступно" - -#: src/tables/plugin/PluginListTable.tsx:319 -msgid "Confirm plugin activation" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:320 -msgid "Confirm plugin deactivation" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:325 -msgid "The selected plugin will be activated" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:326 -msgid "The selected plugin will be deactivated" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:334 +#: src/tables/plugin/PluginListTable.tsx:249 msgid "Activate Plugin" msgstr "" +#: src/tables/plugin/PluginListTable.tsx:270 +msgid "Install plugin" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:283 +msgid "Install" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:284 +msgid "Plugin installed successfully" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:289 +msgid "Uninstall Plugin" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:301 +msgid "Confirm plugin uninstall" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:304 +msgid "The selected plugin will be uninstalled." +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:308 +#~ msgid "This action cannot be undone." +#~ msgstr "This action cannot be undone." + +#: src/tables/plugin/PluginListTable.tsx:309 +msgid "Plugin uninstalled successfully" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:317 +msgid "Delete Plugin" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:318 +msgid "Deleting this plugin configuration will remove all associated settings and data. Are you sure you want to delete this plugin?" +msgstr "Удаление этого плагина приведет к удалению всех связанных настроек и данных. Вы уверены, что хотите удалить этот плагин?" + +#: src/tables/plugin/PluginListTable.tsx:331 +msgid "Plugins reloaded" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:332 +msgid "Plugins were reloaded successfully" +msgstr "" + #: src/tables/plugin/PluginListTable.tsx:338 #~ msgid "Deactivate Plugin" #~ msgstr "Deactivate Plugin" +#: src/tables/plugin/PluginListTable.tsx:350 +msgid "Reload Plugins" +msgstr "" + #: src/tables/plugin/PluginListTable.tsx:354 #~ msgid "The following plugin will be activated" #~ msgstr "The following plugin will be activated" @@ -6962,16 +8170,16 @@ msgstr "" #~ msgid "The following plugin will be deactivated" #~ msgstr "The following plugin will be deactivated" -#: src/tables/plugin/PluginListTable.tsx:362 -msgid "Deactivate" +#: src/tables/plugin/PluginListTable.tsx:357 +msgid "Install Plugin" msgstr "" #: src/tables/plugin/PluginListTable.tsx:366 #~ msgid "Confirm" #~ msgstr "Confirm" -#: src/tables/plugin/PluginListTable.tsx:373 -msgid "Activate" +#: src/tables/plugin/PluginListTable.tsx:374 +msgid "Plugin Detail" msgstr "" #: src/tables/plugin/PluginListTable.tsx:376 @@ -6998,76 +8206,12 @@ msgstr "" #~ msgid "Error updating plugin" #~ msgstr "Error updating plugin" -#: src/tables/plugin/PluginListTable.tsx:406 -msgid "Uninstall" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:438 -msgid "Install plugin" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:451 -msgid "Install" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:452 -msgid "Plugin installed successfully" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:457 -msgid "Uninstall Plugin" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:469 -msgid "Confirm plugin uninstall" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:472 -msgid "The selected plugin will be uninstalled." -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:473 -msgid "This action cannot be undone." -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:477 -msgid "Plugin uninstalled successfully" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:484 -msgid "Delete Plugin" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:485 -msgid "Deleting this plugin configuration will remove all associated settings and data. Are you sure you want to delete this plugin?" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:498 -msgid "Plugins reloaded" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:499 -msgid "Plugins were reloaded successfully" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:515 -msgid "Reload Plugins" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:524 -msgid "Install Plugin" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:544 -msgid "Plugin Detail" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:573 +#: src/tables/plugin/PluginListTable.tsx:411 msgid "Sample" msgstr "" -#: src/tables/plugin/PluginListTable.tsx:578 -#: src/tables/stock/StockItemTable.tsx:340 +#: src/tables/plugin/PluginListTable.tsx:416 +#: src/tables/stock/StockItemTable.tsx:344 msgid "Installed" msgstr "" @@ -7116,82 +8260,78 @@ msgstr "" #~ msgid "Are you sure you want to remove this manufacturer part?" #~ msgstr "Are you sure you want to remove this manufacturer part?" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:102 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:339 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:103 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:356 msgid "Import Line Items" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:135 -msgid "Part Description" -msgstr "Описание детали" - -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:201 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:207 msgid "Supplier Code" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:208 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:214 msgid "Supplier Link" msgstr "Ссылка поставщика" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:215 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:220 msgid "Manufacturer Code" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:229 -msgid "Destination" +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:248 +msgid "Show line items which have been received" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:300 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:316 msgid "Receive line item" msgstr "" #: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:344 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:142 -#: src/tables/sales/SalesOrderLineItemTable.tsx:240 -msgid "Add line item" -msgstr "" +#: src/tables/sales/ReturnOrderLineItemTable.tsx:160 +#: src/tables/sales/SalesOrderLineItemTable.tsx:258 +#~ msgid "Add line item" +#~ msgstr "Add line item" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:354 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:373 msgid "Receive items" msgstr "" -#: src/tables/purchasing/SupplierPartTable.tsx:93 +#: src/tables/purchasing/SupplierPartTable.tsx:95 msgid "MPN" msgstr "" -#: src/tables/purchasing/SupplierPartTable.tsx:122 +#: src/tables/purchasing/SupplierPartTable.tsx:124 msgid "Base units" msgstr "Базовая единица измерения" -#: src/tables/purchasing/SupplierPartTable.tsx:170 +#: src/tables/purchasing/SupplierPartTable.tsx:172 msgid "Supplier part created" msgstr "" -#: src/tables/purchasing/SupplierPartTable.tsx:176 +#: src/tables/purchasing/SupplierPartTable.tsx:179 msgid "Add supplier part" msgstr "" -#: src/tables/purchasing/SupplierPartTable.tsx:188 +#: src/tables/purchasing/SupplierPartTable.tsx:191 msgid "Show active supplier parts" msgstr "" -#: src/tables/purchasing/SupplierPartTable.tsx:192 -msgid "Active Part" -msgstr "" - -#: src/tables/purchasing/SupplierPartTable.tsx:193 -msgid "Show active internal parts" -msgstr "" - #: src/tables/purchasing/SupplierPartTable.tsx:193 #~ msgid "Supplier part updated" #~ msgstr "Supplier part updated" -#: src/tables/purchasing/SupplierPartTable.tsx:197 +#: src/tables/purchasing/SupplierPartTable.tsx:195 +msgid "Active Part" +msgstr "" + +#: src/tables/purchasing/SupplierPartTable.tsx:196 +msgid "Show active internal parts" +msgstr "" + +#: src/tables/purchasing/SupplierPartTable.tsx:200 msgid "Active Supplier" msgstr "" -#: src/tables/purchasing/SupplierPartTable.tsx:198 +#: src/tables/purchasing/SupplierPartTable.tsx:201 msgid "Show active suppliers" msgstr "" @@ -7203,99 +8343,187 @@ msgstr "" #~ msgid "Are you sure you want to remove this supplier part?" #~ msgstr "Are you sure you want to remove this supplier part?" -#: src/tables/sales/ReturnOrderLineItemTable.tsx:114 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:139 msgid "Received Date" msgstr "" -#: src/tables/sales/ReturnOrderLineItemTable.tsx:128 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:153 msgid "Show items which have been received" msgstr "" -#: src/tables/sales/ReturnOrderLineItemTable.tsx:133 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:158 msgid "Filter by line item status" msgstr "" -#: src/tables/sales/ReturnOrderLineItemTable.tsx:158 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:176 +msgid "Receive selected items" +msgstr "Получить выбранные элементы" + +#: src/tables/sales/ReturnOrderLineItemTable.tsx:205 msgid "Receive Item" msgstr "" -#: src/tables/sales/SalesOrderLineItemTable.tsx:262 -msgid "Allocate stock" +#: src/tables/sales/SalesOrderAllocationTable.tsx:60 +msgid "Show outstanding allocations" msgstr "" -#: src/tables/sales/SalesOrderLineItemTable.tsx:272 +#: src/tables/sales/SalesOrderAllocationTable.tsx:168 +#: src/tables/sales/SalesOrderAllocationTable.tsx:190 +msgid "Edit Allocation" +msgstr "" + +#: src/tables/sales/SalesOrderAllocationTable.tsx:175 +#: src/tables/sales/SalesOrderAllocationTable.tsx:197 +msgid "Delete Allocation" +msgstr "" + +#: src/tables/sales/SalesOrderLineItemTable.tsx:244 +msgid "Allocate Serial Numbers" +msgstr "Выделить серийные номера" + +#: src/tables/sales/SalesOrderLineItemTable.tsx:277 +msgid "Show lines which are fully allocated" +msgstr "" + +#: src/tables/sales/SalesOrderLineItemTable.tsx:280 +#~ msgid "Allocate stock" +#~ msgstr "Allocate stock" + +#: src/tables/sales/SalesOrderLineItemTable.tsx:282 +msgid "Show lines which are completed" +msgstr "" + +#: src/tables/sales/SalesOrderLineItemTable.tsx:291 +#~ msgid "Allocate Serials" +#~ msgstr "Allocate Serials" + +#: src/tables/sales/SalesOrderLineItemTable.tsx:340 +msgid "Allocate serials" +msgstr "" + +#: src/tables/sales/SalesOrderLineItemTable.tsx:356 msgid "Build stock" msgstr "" -#: src/tables/sales/SalesOrderLineItemTable.tsx:289 -#: src/tables/stock/StockItemTable.tsx:507 +#: src/tables/sales/SalesOrderLineItemTable.tsx:373 +#: src/tables/stock/StockItemTable.tsx:512 msgid "Order stock" msgstr "" -#: src/tables/sales/SalesOrderShipmentTable.tsx:40 +#: src/tables/sales/SalesOrderShipmentTable.tsx:51 +#~ msgid "Delete Shipment" +#~ msgstr "Delete Shipment" + +#: src/tables/sales/SalesOrderShipmentTable.tsx:57 msgid "Create Shipment" msgstr "" -#: src/tables/sales/SalesOrderShipmentTable.tsx:50 -msgid "Delete Shipment" -msgstr "" - -#: src/tables/sales/SalesOrderShipmentTable.tsx:58 -msgid "Edit Shipment" -msgstr "" - -#: src/tables/sales/SalesOrderShipmentTable.tsx:66 -msgid "Shipment Reference" -msgstr "" - -#: src/tables/sales/SalesOrderShipmentTable.tsx:71 +#: src/tables/sales/SalesOrderShipmentTable.tsx:104 msgid "Items" msgstr "" -#: src/tables/sales/SalesOrderShipmentTable.tsx:83 -msgid "Delivery Date" +#: src/tables/sales/SalesOrderShipmentTable.tsx:139 +msgid "View Shipment" msgstr "" -#: src/tables/sales/SalesOrderShipmentTable.tsx:107 -msgid "Complete Shipment" +#: src/tables/sales/SalesOrderShipmentTable.tsx:161 +msgid "Edit shipment" msgstr "" -#: src/tables/sales/SalesOrderShipmentTable.tsx:133 +#: src/tables/sales/SalesOrderShipmentTable.tsx:169 +msgid "Cancel shipment" +msgstr "" + +#: src/tables/sales/SalesOrderShipmentTable.tsx:184 msgid "Add shipment" msgstr "" -#: src/tables/sales/SalesOrderShipmentTable.tsx:146 -msgid "Shipped" -msgstr "" - -#: src/tables/sales/SalesOrderShipmentTable.tsx:147 +#: src/tables/sales/SalesOrderShipmentTable.tsx:198 msgid "Show shipments which have been shipped" msgstr "" -#: src/tables/sales/SalesOrderShipmentTable.tsx:151 -msgid "Delivered" -msgstr "" - -#: src/tables/sales/SalesOrderShipmentTable.tsx:152 +#: src/tables/sales/SalesOrderShipmentTable.tsx:203 msgid "Show shipments which have been delivered" msgstr "" -#: src/tables/settings/CurrencyTable.tsx:28 -msgid "Rate" +#: src/tables/settings/BarcodeScanHistoryTable.tsx:61 +msgid "Barcode Information" msgstr "" -#: src/tables/settings/CurrencyTable.tsx:40 -msgid "Exchange rates updated" +#: src/tables/settings/BarcodeScanHistoryTable.tsx:76 +#: src/tables/settings/ErrorTable.tsx:59 +msgid "Timestamp" msgstr "" -#: src/tables/settings/CurrencyTable.tsx:46 -msgid "Exchange rate update error" +#: src/tables/settings/BarcodeScanHistoryTable.tsx:86 +msgid "Endpoint" msgstr "" -#: src/tables/settings/CurrencyTable.tsx:57 -msgid "Refresh currency exchange rates" +#: src/tables/settings/BarcodeScanHistoryTable.tsx:90 +#: src/tables/settings/BarcodeScanHistoryTable.tsx:217 +#: src/tables/stock/StockItemTestResultTable.tsx:174 +msgid "Result" msgstr "" +#: src/tables/settings/BarcodeScanHistoryTable.tsx:98 +msgid "Context" +msgstr "" + +#: src/tables/settings/BarcodeScanHistoryTable.tsx:119 +msgid "Response" +msgstr "" + +#: src/tables/settings/BarcodeScanHistoryTable.tsx:213 +#: src/tables/settings/ImportSessionTable.tsx:121 +#: src/tables/stock/StockTrackingTable.tsx:183 +msgid "Filter by user" +msgstr "" + +#: src/tables/settings/BarcodeScanHistoryTable.tsx:218 +msgid "Filter by result" +msgstr "" + +#: src/tables/settings/BarcodeScanHistoryTable.tsx:232 +msgid "Delete Barcode Scan Record" +msgstr "" + +#: src/tables/settings/BarcodeScanHistoryTable.tsx:258 +msgid "Barcode Scan Details" +msgstr "" + +#: src/tables/settings/BarcodeScanHistoryTable.tsx:268 +msgid "Logging Disabled" +msgstr "" + +#: src/tables/settings/BarcodeScanHistoryTable.tsx:270 +msgid "Barcode logging is not enabled" +msgstr "" + +#: src/tables/settings/CustomStateTable.tsx:36 +msgid "Display Name" +msgstr "" + +#: src/tables/settings/CustomStateTable.tsx:52 +msgid "Model" +msgstr "" + +#: src/tables/settings/CustomStateTable.tsx:65 +#: src/tables/settings/CustomStateTable.tsx:115 +msgid "Add State" +msgstr "" + +#: src/tables/settings/CustomStateTable.tsx:77 +msgid "Edit State" +msgstr "" + +#: src/tables/settings/CustomStateTable.tsx:85 +msgid "Delete State" +msgstr "" + +#: src/tables/settings/CustomStateTable.tsx:115 +#~ msgid "Add state" +#~ msgstr "Add state" + #: src/tables/settings/CustomUnitsTable.tsx:50 msgid "Add Custom Unit" msgstr "Новая пользовательская ед. измерения" @@ -7312,59 +8540,71 @@ msgstr "Удалить специальную ед. измерения" msgid "Add custom unit" msgstr "Новая пользовательская ед. измерения" -#: src/tables/settings/ErrorTable.tsx:31 -msgid "When" -msgstr "" - -#: src/tables/settings/ErrorTable.tsx:41 -msgid "Error Information" -msgstr "" - #: src/tables/settings/ErrorTable.tsx:51 #~ msgid "Delete error report" #~ msgstr "Delete error report" -#: src/tables/settings/ErrorTable.tsx:53 +#: src/tables/settings/ErrorTable.tsx:67 +msgid "Traceback" +msgstr "" + +#: src/tables/settings/ErrorTable.tsx:103 +msgid "When" +msgstr "" + +#: src/tables/settings/ErrorTable.tsx:113 +msgid "Error Information" +msgstr "" + +#: src/tables/settings/ErrorTable.tsx:123 msgid "Delete Error Report" msgstr "" -#: src/tables/settings/ErrorTable.tsx:55 +#: src/tables/settings/ErrorTable.tsx:125 msgid "Are you sure you want to delete this error report?" msgstr "" -#: src/tables/settings/ErrorTable.tsx:57 +#: src/tables/settings/ErrorTable.tsx:127 msgid "Error report deleted" msgstr "" -#: src/tables/settings/ErrorTable.tsx:79 -#: src/tables/settings/FailedTasksTable.tsx:59 +#: src/tables/settings/ErrorTable.tsx:146 +#: src/tables/settings/FailedTasksTable.tsx:65 msgid "Error Details" msgstr "" -#: src/tables/settings/FailedTasksTable.tsx:26 -#: src/tables/settings/PendingTasksTable.tsx:19 +#: src/tables/settings/FailedTasksTable.tsx:32 +#: src/tables/settings/PendingTasksTable.tsx:23 #: src/tables/settings/ScheduledTasksTable.tsx:19 msgid "Task" msgstr "" -#: src/tables/settings/FailedTasksTable.tsx:32 -#: src/tables/settings/PendingTasksTable.tsx:24 +#: src/tables/settings/FailedTasksTable.tsx:38 +#: src/tables/settings/PendingTasksTable.tsx:28 msgid "Task ID" msgstr "" -#: src/tables/settings/FailedTasksTable.tsx:36 -#: src/tables/stock/StockItemTestResultTable.tsx:211 +#: src/tables/settings/FailedTasksTable.tsx:42 +#: src/tables/stock/StockItemTestResultTable.tsx:218 msgid "Started" msgstr "" -#: src/tables/settings/FailedTasksTable.tsx:42 +#: src/tables/settings/FailedTasksTable.tsx:48 msgid "Stopped" msgstr "" -#: src/tables/settings/FailedTasksTable.tsx:48 +#: src/tables/settings/FailedTasksTable.tsx:54 msgid "Attempts" msgstr "" +#: src/tables/settings/FailedTasksTable.tsx:92 +msgid "No Information" +msgstr "" + +#: src/tables/settings/FailedTasksTable.tsx:93 +msgid "No error details are available for this task" +msgstr "" + #: src/tables/settings/GroupTable.tsx:90 msgid "Group with id {id} not found" msgstr "" @@ -7398,42 +8638,34 @@ msgstr "" msgid "Edit group" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:38 +#: src/tables/settings/ImportSessionTable.tsx:37 msgid "Delete Import Session" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:44 +#: src/tables/settings/ImportSessionTable.tsx:43 #: src/tables/settings/ImportSessionTable.tsx:131 msgid "Create Import Session" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:69 +#: src/tables/settings/ImportSessionTable.tsx:68 msgid "Uploaded" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:79 -msgid "Imported Rows" -msgstr "" - -#: src/tables/settings/ImportSessionTable.tsx:109 -#: src/tables/settings/TemplateTable.tsx:289 +#: src/tables/settings/ImportSessionTable.tsx:108 +#: src/tables/settings/TemplateTable.tsx:369 msgid "Model Type" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:110 -#: src/tables/settings/TemplateTable.tsx:290 +#: src/tables/settings/ImportSessionTable.tsx:109 +#: src/tables/settings/TemplateTable.tsx:370 msgid "Filter by target model type" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:116 +#: src/tables/settings/ImportSessionTable.tsx:115 msgid "Filter by import session status" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:122 -msgid "Filter by user" -msgstr "" - -#: src/tables/settings/PendingTasksTable.tsx:38 +#: src/tables/settings/PendingTasksTable.tsx:42 msgid "Arguments" msgstr "" @@ -7461,12 +8693,16 @@ msgstr "" msgid "Next Run" msgstr "" -#: src/tables/settings/TemplateTable.tsx:85 -msgid "Template not found" +#: src/tables/settings/StocktakeReportTable.tsx:28 +msgid "Report" msgstr "" -#: src/tables/settings/TemplateTable.tsx:87 -msgid "An error occurred while fetching template details" +#: src/tables/settings/StocktakeReportTable.tsx:35 +msgid "Part Count" +msgstr "" + +#: src/tables/settings/StocktakeReportTable.tsx:58 +msgid "Delete Report" msgstr "" #: src/tables/settings/TemplateTable.tsx:120 @@ -7481,21 +8717,12 @@ msgstr "" #~ msgid "actions" #~ msgstr "actions" -#: src/tables/settings/TemplateTable.tsx:177 -msgid "Modify" +#: src/tables/settings/TemplateTable.tsx:162 +msgid "Template not found" msgstr "" -#: src/tables/settings/TemplateTable.tsx:178 -msgid "Modify template file" -msgstr "" - -#: src/tables/settings/TemplateTable.tsx:234 -#: src/tables/settings/TemplateTable.tsx:302 -msgid "Edit Template" -msgstr "" - -#: src/tables/settings/TemplateTable.tsx:242 -msgid "Delete template" +#: src/tables/settings/TemplateTable.tsx:164 +msgid "An error occurred while fetching template details" msgstr "" #: src/tables/settings/TemplateTable.tsx:243 @@ -7506,103 +8733,137 @@ msgstr "" #~ msgid "Create new" #~ msgstr "Create new" -#: src/tables/settings/TemplateTable.tsx:248 +#: src/tables/settings/TemplateTable.tsx:257 +msgid "Modify" +msgstr "" + +#: src/tables/settings/TemplateTable.tsx:258 +msgid "Modify template file" +msgstr "" + +#: src/tables/settings/TemplateTable.tsx:314 +#: src/tables/settings/TemplateTable.tsx:382 +msgid "Edit Template" +msgstr "" + +#: src/tables/settings/TemplateTable.tsx:322 +msgid "Delete template" +msgstr "" + +#: src/tables/settings/TemplateTable.tsx:328 msgid "Add Template" msgstr "" -#: src/tables/settings/TemplateTable.tsx:261 +#: src/tables/settings/TemplateTable.tsx:341 msgid "Add template" msgstr "" -#: src/tables/settings/TemplateTable.tsx:284 +#: src/tables/settings/TemplateTable.tsx:364 msgid "Filter by enabled status" msgstr "" -#: src/tables/settings/UserTable.tsx:82 +#: src/tables/settings/UserTable.tsx:81 msgid "User with id {id} not found" msgstr "" -#: src/tables/settings/UserTable.tsx:84 +#: src/tables/settings/UserTable.tsx:83 msgid "An error occurred while fetching user details" msgstr "" -#: src/tables/settings/UserTable.tsx:102 +#: src/tables/settings/UserTable.tsx:101 msgid "Is Active" msgstr "" -#: src/tables/settings/UserTable.tsx:103 +#: src/tables/settings/UserTable.tsx:102 msgid "Designates whether this user should be treated as active. Unselect this instead of deleting accounts." -msgstr "" +msgstr "Указывает, следует ли рассматривать этого пользователя как активного. Отмените этот выбор вместо удаления учетных записей." -#: src/tables/settings/UserTable.tsx:107 +#: src/tables/settings/UserTable.tsx:106 msgid "Is Staff" msgstr "" -#: src/tables/settings/UserTable.tsx:108 +#: src/tables/settings/UserTable.tsx:107 msgid "Designates whether the user can log into the django admin site." msgstr "" -#: src/tables/settings/UserTable.tsx:112 +#: src/tables/settings/UserTable.tsx:111 msgid "Is Superuser" msgstr "" -#: src/tables/settings/UserTable.tsx:113 +#: src/tables/settings/UserTable.tsx:112 msgid "Designates that this user has all permissions without explicitly assigning them." msgstr "" -#: src/tables/settings/UserTable.tsx:123 +#: src/tables/settings/UserTable.tsx:122 msgid "You cannot edit the rights for the currently logged-in user." msgstr "" -#: src/tables/settings/UserTable.tsx:154 +#: src/tables/settings/UserTable.tsx:153 msgid "No groups" msgstr "" -#: src/tables/settings/UserTable.tsx:245 +#: src/tables/settings/UserTable.tsx:244 msgid "Delete user" msgstr "" -#: src/tables/settings/UserTable.tsx:246 +#: src/tables/settings/UserTable.tsx:245 msgid "User deleted" msgstr "" -#: src/tables/settings/UserTable.tsx:248 +#: src/tables/settings/UserTable.tsx:247 msgid "Are you sure you want to delete this user?" msgstr "" -#: src/tables/settings/UserTable.tsx:254 -#: src/tables/settings/UserTable.tsx:272 +#: src/tables/settings/UserTable.tsx:253 +#: src/tables/settings/UserTable.tsx:271 msgid "Add user" msgstr "" -#: src/tables/settings/UserTable.tsx:262 +#: src/tables/settings/UserTable.tsx:261 msgid "Added user" msgstr "" -#: src/tables/settings/UserTable.tsx:285 +#: src/tables/settings/UserTable.tsx:284 msgid "Show active users" msgstr "" -#: src/tables/settings/UserTable.tsx:289 +#: src/tables/settings/UserTable.tsx:288 msgid "Staff" msgstr "" -#: src/tables/settings/UserTable.tsx:290 +#: src/tables/settings/UserTable.tsx:289 msgid "Show staff users" msgstr "" #: src/tables/settings/UserTable.tsx:294 -msgid "Superuser" -msgstr "" - -#: src/tables/settings/UserTable.tsx:295 msgid "Show superusers" msgstr "" -#: src/tables/settings/UserTable.tsx:305 +#: src/tables/settings/UserTable.tsx:304 msgid "Edit user" msgstr "" +#: src/tables/stock/InstalledItemsTable.tsx:37 +#: src/tables/stock/InstalledItemsTable.tsx:90 +msgid "Install Item" +msgstr "" + +#: src/tables/stock/InstalledItemsTable.tsx:39 +msgid "Item installed" +msgstr "" + +#: src/tables/stock/InstalledItemsTable.tsx:50 +msgid "Uninstall Item" +msgstr "" + +#: src/tables/stock/InstalledItemsTable.tsx:52 +msgid "Item uninstalled" +msgstr "" + +#: src/tables/stock/InstalledItemsTable.tsx:108 +msgid "Uninstall stock item" +msgstr "" + #: src/tables/stock/LocationTypesTable.tsx:39 #: src/tables/stock/LocationTypesTable.tsx:109 msgid "Add Location Type" @@ -7620,276 +8881,272 @@ msgstr "" msgid "Icon" msgstr "" -#: src/tables/stock/StockItemTable.tsx:101 +#: src/tables/stock/StockItemTable.tsx:90 msgid "This stock item is in production" msgstr "" -#: src/tables/stock/StockItemTable.tsx:110 +#: src/tables/stock/StockItemTable.tsx:97 msgid "This stock item has been assigned to a sales order" msgstr "" -#: src/tables/stock/StockItemTable.tsx:119 +#: src/tables/stock/StockItemTable.tsx:104 msgid "This stock item has been assigned to a customer" msgstr "" -#: src/tables/stock/StockItemTable.tsx:128 +#: src/tables/stock/StockItemTable.tsx:111 msgid "This stock item is installed in another stock item" msgstr "" -#: src/tables/stock/StockItemTable.tsx:137 +#: src/tables/stock/StockItemTable.tsx:118 msgid "This stock item has been consumed by a build order" msgstr "" -#: src/tables/stock/StockItemTable.tsx:146 +#: src/tables/stock/StockItemTable.tsx:125 +msgid "This stock item is unavailable" +msgstr "" + +#: src/tables/stock/StockItemTable.tsx:134 msgid "This stock item has expired" msgstr "" -#: src/tables/stock/StockItemTable.tsx:150 +#: src/tables/stock/StockItemTable.tsx:138 msgid "This stock item is stale" msgstr "" -#: src/tables/stock/StockItemTable.tsx:161 +#: src/tables/stock/StockItemTable.tsx:150 msgid "This stock item is fully allocated" msgstr "" -#: src/tables/stock/StockItemTable.tsx:168 +#: src/tables/stock/StockItemTable.tsx:157 msgid "This stock item is partially allocated" msgstr "" -#: src/tables/stock/StockItemTable.tsx:196 +#: src/tables/stock/StockItemTable.tsx:185 msgid "This stock item has been depleted" msgstr "" -#: src/tables/stock/StockItemTable.tsx:232 +#: src/tables/stock/StockItemTable.tsx:280 msgid "Stocktake Date" msgstr "" -#: src/tables/stock/StockItemTable.tsx:236 -msgid "Expiry Date" -msgstr "" - -#: src/tables/stock/StockItemTable.tsx:260 -msgid "Stock Value" -msgstr "" - -#: src/tables/stock/StockItemTable.tsx:290 +#: src/tables/stock/StockItemTable.tsx:294 msgid "Show stock for active parts" msgstr "" -#: src/tables/stock/StockItemTable.tsx:295 +#: src/tables/stock/StockItemTable.tsx:299 msgid "Filter by stock status" msgstr "" #: src/tables/stock/StockItemTable.tsx:301 -msgid "Show stock for assmebled parts" -msgstr "" +#~ msgid "Show stock for assmebled parts" +#~ msgstr "Show stock for assmebled parts" -#: src/tables/stock/StockItemTable.tsx:306 +#: src/tables/stock/StockItemTable.tsx:305 +msgid "Show stock for assembled parts" +msgstr "Показать запасы для собранных частей" + +#: src/tables/stock/StockItemTable.tsx:310 msgid "Show items which have been allocated" msgstr "" -#: src/tables/stock/StockItemTable.tsx:311 +#: src/tables/stock/StockItemTable.tsx:315 msgid "Show items which are available" msgstr "" -#: src/tables/stock/StockItemTable.tsx:315 +#: src/tables/stock/StockItemTable.tsx:319 #: src/tables/stock/StockLocationTable.tsx:44 msgid "Include Sublocations" msgstr "" -#: src/tables/stock/StockItemTable.tsx:316 +#: src/tables/stock/StockItemTable.tsx:320 msgid "Include stock in sublocations" msgstr "" -#: src/tables/stock/StockItemTable.tsx:320 +#: src/tables/stock/StockItemTable.tsx:324 msgid "Depleted" msgstr "" -#: src/tables/stock/StockItemTable.tsx:321 +#: src/tables/stock/StockItemTable.tsx:325 msgid "Show depleted stock items" msgstr "" -#: src/tables/stock/StockItemTable.tsx:326 +#: src/tables/stock/StockItemTable.tsx:330 msgid "Show items which are in stock" msgstr "" -#: src/tables/stock/StockItemTable.tsx:331 +#: src/tables/stock/StockItemTable.tsx:335 msgid "Show items which are in production" msgstr "" -#: src/tables/stock/StockItemTable.tsx:336 +#: src/tables/stock/StockItemTable.tsx:340 msgid "Include stock items for variant parts" msgstr "" -#: src/tables/stock/StockItemTable.tsx:341 +#: src/tables/stock/StockItemTable.tsx:345 msgid "Show stock items which are installed in other items" msgstr "" -#: src/tables/stock/StockItemTable.tsx:345 +#: src/tables/stock/StockItemTable.tsx:349 msgid "Sent to Customer" msgstr "" -#: src/tables/stock/StockItemTable.tsx:346 +#: src/tables/stock/StockItemTable.tsx:350 msgid "Show items which have been sent to a customer" msgstr "" -#: src/tables/stock/StockItemTable.tsx:350 +#: src/tables/stock/StockItemTable.tsx:354 msgid "Is Serialized" msgstr "" -#: src/tables/stock/StockItemTable.tsx:351 +#: src/tables/stock/StockItemTable.tsx:355 msgid "Show items which have a serial number" msgstr "" -#: src/tables/stock/StockItemTable.tsx:358 +#: src/tables/stock/StockItemTable.tsx:362 msgid "Has Batch Code" msgstr "" -#: src/tables/stock/StockItemTable.tsx:359 +#: src/tables/stock/StockItemTable.tsx:363 msgid "Show items which have a batch code" msgstr "" -#: src/tables/stock/StockItemTable.tsx:365 +#: src/tables/stock/StockItemTable.tsx:369 msgid "Show tracked items" msgstr "" -#: src/tables/stock/StockItemTable.tsx:369 +#: src/tables/stock/StockItemTable.tsx:373 msgid "Has Purchase Price" msgstr "" -#: src/tables/stock/StockItemTable.tsx:370 +#: src/tables/stock/StockItemTable.tsx:374 msgid "Show items which have a purchase price" msgstr "" -#: src/tables/stock/StockItemTable.tsx:378 +#: src/tables/stock/StockItemTable.tsx:382 msgid "External Location" msgstr "" -#: src/tables/stock/StockItemTable.tsx:379 +#: src/tables/stock/StockItemTable.tsx:383 msgid "Show items in an external location" msgstr "" -#: src/tables/stock/StockItemTable.tsx:451 +#: src/tables/stock/StockItemTable.tsx:456 msgid "Add a new stock item" msgstr "" -#: src/tables/stock/StockItemTable.tsx:460 +#: src/tables/stock/StockItemTable.tsx:465 msgid "Remove some quantity from a stock item" msgstr "" -#: src/tables/stock/StockItemTable.tsx:482 +#: src/tables/stock/StockItemTable.tsx:487 msgid "Move Stock items to new locations" msgstr "" -#: src/tables/stock/StockItemTable.tsx:489 +#: src/tables/stock/StockItemTable.tsx:494 msgid "Change stock status" msgstr "" -#: src/tables/stock/StockItemTable.tsx:491 +#: src/tables/stock/StockItemTable.tsx:496 msgid "Change the status of stock items" msgstr "" -#: src/tables/stock/StockItemTable.tsx:498 +#: src/tables/stock/StockItemTable.tsx:503 msgid "Merge stock" msgstr "" -#: src/tables/stock/StockItemTable.tsx:500 +#: src/tables/stock/StockItemTable.tsx:505 msgid "Merge stock items" msgstr "" -#: src/tables/stock/StockItemTable.tsx:509 -#: src/tables/stock/StockItemTable.tsx:516 +#: src/tables/stock/StockItemTable.tsx:514 +#: src/tables/stock/StockItemTable.tsx:521 msgid "Order new stock" msgstr "" -#: src/tables/stock/StockItemTable.tsx:514 +#: src/tables/stock/StockItemTable.tsx:519 msgid "Assign to customer" msgstr "" -#: src/tables/stock/StockItemTable.tsx:523 +#: src/tables/stock/StockItemTable.tsx:528 msgid "Delete stock" msgstr "" -#: src/tables/stock/StockItemTable.tsx:525 -msgid "Delete stock items" -msgstr "" +#: src/tables/stock/StockItemTable.tsx:528 +#~ msgid "Delete stock items" +#~ msgstr "Delete stock items" -#: src/tables/stock/StockItemTestResultTable.tsx:131 +#: src/tables/stock/StockItemTestResultTable.tsx:137 msgid "Test" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:157 +#: src/tables/stock/StockItemTestResultTable.tsx:163 msgid "Test result for installed stock item" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:168 -msgid "Result" -msgstr "" - -#: src/tables/stock/StockItemTestResultTable.tsx:190 +#: src/tables/stock/StockItemTestResultTable.tsx:196 msgid "Attachment" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:206 +#: src/tables/stock/StockItemTestResultTable.tsx:212 msgid "Test station" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:226 +#: src/tables/stock/StockItemTestResultTable.tsx:234 msgid "Finished" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:268 -#: src/tables/stock/StockItemTestResultTable.tsx:339 +#: src/tables/stock/StockItemTestResultTable.tsx:286 +#: src/tables/stock/StockItemTestResultTable.tsx:357 msgid "Edit Test Result" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:270 +#: src/tables/stock/StockItemTestResultTable.tsx:288 msgid "Test result updated" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:276 -#: src/tables/stock/StockItemTestResultTable.tsx:348 +#: src/tables/stock/StockItemTestResultTable.tsx:294 +#: src/tables/stock/StockItemTestResultTable.tsx:366 msgid "Delete Test Result" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:278 +#: src/tables/stock/StockItemTestResultTable.tsx:296 msgid "Test result deleted" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:292 +#: src/tables/stock/StockItemTestResultTable.tsx:310 msgid "Test Passed" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:293 +#: src/tables/stock/StockItemTestResultTable.tsx:311 msgid "Test result has been recorded" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:300 +#: src/tables/stock/StockItemTestResultTable.tsx:318 msgid "Failed to record test result" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:317 +#: src/tables/stock/StockItemTestResultTable.tsx:335 msgid "Pass Test" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:366 +#: src/tables/stock/StockItemTestResultTable.tsx:384 msgid "Show results for required tests" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:370 +#: src/tables/stock/StockItemTestResultTable.tsx:388 msgid "Include Installed" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:371 +#: src/tables/stock/StockItemTestResultTable.tsx:389 msgid "Show results for installed stock items" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:375 -#: src/tables/stock/TestStatisticsTable.tsx:74 +#: src/tables/stock/StockItemTestResultTable.tsx:393 +#: src/tables/stock/TestStatisticsTable.tsx:62 msgid "Passed" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:376 +#: src/tables/stock/StockItemTestResultTable.tsx:394 msgid "Show only passed tests" msgstr "" @@ -7922,28 +9179,32 @@ msgid "Filter by location type" msgstr "" #: src/tables/stock/StockLocationTable.tsx:107 -#: src/tables/stock/StockLocationTable.tsx:133 +#: src/tables/stock/StockLocationTable.tsx:134 msgid "Add Stock Location" msgstr "" -#: src/tables/stock/StockTrackingTable.tsx:64 +#: src/tables/stock/StockTrackingTable.tsx:68 msgid "Added" msgstr "" -#: src/tables/stock/StockTrackingTable.tsx:69 +#: src/tables/stock/StockTrackingTable.tsx:73 msgid "Removed" msgstr "" #: src/tables/stock/StockTrackingTable.tsx:198 +msgid "Details" +msgstr "" + +#: src/tables/stock/StockTrackingTable.tsx:213 msgid "No user information" msgstr "" -#: src/tables/stock/TestStatisticsTable.tsx:46 -#: src/tables/stock/TestStatisticsTable.tsx:76 +#: src/tables/stock/TestStatisticsTable.tsx:34 +#: src/tables/stock/TestStatisticsTable.tsx:64 msgid "Total" msgstr "" -#: src/tables/stock/TestStatisticsTable.tsx:75 +#: src/tables/stock/TestStatisticsTable.tsx:63 msgid "Failed" msgstr "" @@ -7953,7 +9214,7 @@ msgstr "" #: src/views/MobileAppView.tsx:25 msgid "Platform UI is optimized for Tablets and Desktops, you can use the official app for a mobile experience." -msgstr "" +msgstr "Платформа UI оптимизирована для планшетов и настольных компьютеров, вы можете использовать официальное приложение для мобильных устройств." #: src/views/MobileAppView.tsx:31 msgid "Read the docs" diff --git a/src/frontend/src/locales/sk/messages.po b/src/frontend/src/locales/sk/messages.po index e60deaeec5..f12e341e47 100644 --- a/src/frontend/src/locales/sk/messages.po +++ b/src/frontend/src/locales/sk/messages.po @@ -8,15 +8,15 @@ msgstr "" "Language: sk\n" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"PO-Revision-Date: 2024-08-20 19:50\n" +"PO-Revision-Date: 2024-11-04 03:14\n" "Last-Translator: \n" "Language-Team: Slovak\n" "Plural-Forms: nplurals=4; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 3;\n" "X-Crowdin-Project: inventree\n" "X-Crowdin-Project-ID: 452300\n" "X-Crowdin-Language: sk\n" -"X-Crowdin-File: /[inventree.InvenTree] l10/src/frontend/src/locales/en/messages.po\n" -"X-Crowdin-File-ID: 205\n" +"X-Crowdin-File: /src/frontend/src/locales/en/messages.po\n" +"X-Crowdin-File-ID: 252\n" #: src/components/Boundary.tsx:12 msgid "Error rendering component" @@ -27,8 +27,8 @@ msgid "An error occurred while rendering this component. Refer to the console fo msgstr "" #: src/components/DashboardItemProxy.tsx:34 -msgid "Title" -msgstr "" +#~ msgid "Title" +#~ msgstr "Title" #: src/components/buttons/AdminButton.tsx:80 msgid "Open in admin interface" @@ -38,82 +38,99 @@ msgstr "" #~ msgid "Copy to clipboard" #~ msgstr "Copy to clipboard" -#: src/components/buttons/CopyButton.tsx:24 +#: src/components/buttons/CopyButton.tsx:29 msgid "Copied" msgstr "" -#: src/components/buttons/CopyButton.tsx:24 +#: src/components/buttons/CopyButton.tsx:29 msgid "Copy" msgstr "" -#: src/components/buttons/PrintingActions.tsx:93 +#: src/components/buttons/PrintingActions.tsx:97 msgid "Print Label" msgstr "" -#: src/components/buttons/PrintingActions.tsx:99 +#: src/components/buttons/PrintingActions.tsx:103 msgid "Print" msgstr "" -#: src/components/buttons/PrintingActions.tsx:100 +#: src/components/buttons/PrintingActions.tsx:104 msgid "Label printing completed successfully" msgstr "" -#: src/components/buttons/PrintingActions.tsx:106 -#: src/components/buttons/PrintingActions.tsx:144 -#: src/components/editors/NotesEditor.tsx:65 -#: src/components/editors/NotesEditor.tsx:165 -#: src/components/forms/fields/ApiFormField.tsx:319 +#: src/components/buttons/PrintingActions.tsx:110 +#: src/components/buttons/PrintingActions.tsx:148 +#: src/components/editors/NotesEditor.tsx:73 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:154 +#: src/components/forms/fields/ApiFormField.tsx:328 +#: src/components/forms/fields/TableField.tsx:43 #: src/components/importer/ImportDataSelector.tsx:187 -#: src/components/importer/ImporterColumnSelector.tsx:207 +#: src/components/importer/ImporterColumnSelector.tsx:210 #: src/components/modals/LicenseModal.tsx:75 -#: src/components/nav/SearchDrawer.tsx:448 +#: src/components/nav/SearchDrawer.tsx:458 +#: src/components/render/ModelType.tsx:290 #: src/pages/ErrorPage.tsx:11 -#: src/pages/part/PartPricingPanel.tsx:67 -#: src/tables/InvenTreeTable.tsx:495 +#: src/pages/part/PartPricingPanel.tsx:71 +#: src/tables/InvenTreeTable.tsx:481 #: src/tables/bom/BomTable.tsx:450 -#: src/tables/stock/StockItemTestResultTable.tsx:299 +#: src/tables/stock/StockItemTestResultTable.tsx:317 msgid "Error" msgstr "" -#: src/components/buttons/PrintingActions.tsx:107 +#: src/components/buttons/PrintingActions.tsx:111 msgid "The label could not be generated" msgstr "" -#: src/components/buttons/PrintingActions.tsx:122 +#: src/components/buttons/PrintingActions.tsx:126 msgid "Print Report" msgstr "" -#: src/components/buttons/PrintingActions.tsx:138 +#: src/components/buttons/PrintingActions.tsx:142 msgid "Generate" msgstr "" -#: src/components/buttons/PrintingActions.tsx:139 +#: src/components/buttons/PrintingActions.tsx:143 msgid "Report printing completed successfully" msgstr "" -#: src/components/buttons/PrintingActions.tsx:145 +#: src/components/buttons/PrintingActions.tsx:149 msgid "The report could not be generated" msgstr "" -#: src/components/buttons/PrintingActions.tsx:173 +#: src/components/buttons/PrintingActions.tsx:177 msgid "Printing Actions" msgstr "" -#: src/components/buttons/PrintingActions.tsx:178 +#: src/components/buttons/PrintingActions.tsx:182 msgid "Print Labels" msgstr "" -#: src/components/buttons/PrintingActions.tsx:184 +#: src/components/buttons/PrintingActions.tsx:188 msgid "Print Reports" msgstr "" +#: src/components/buttons/RemoveRowButton.tsx:8 +msgid "Remove this row" +msgstr "" + #: src/components/buttons/ScanButton.tsx:15 -msgid "Scan QR code" +#: src/components/nav/NavigationDrawer.tsx:117 +#: src/forms/PurchaseOrderForms.tsx:379 +#: src/forms/PurchaseOrderForms.tsx:473 +msgid "Scan Barcode" +msgstr "" + +#: src/components/buttons/ScanButton.tsx:15 +#~ msgid "Scan QR code" +#~ msgstr "Scan QR code" + +#: src/components/buttons/ScanButton.tsx:20 +msgid "Open Barcode Scanner" msgstr "" #: src/components/buttons/ScanButton.tsx:20 -msgid "Open QR code scanner" -msgstr "" +#~ msgid "Open QR code scanner" +#~ msgstr "Open QR code scanner" #: src/components/buttons/SpotlightButton.tsx:14 msgid "Open spotlight" @@ -128,85 +145,347 @@ msgid "Fail" msgstr "" #: src/components/buttons/YesNoButton.tsx:33 -#: src/tables/Filter.tsx:52 +#: src/tables/Filter.tsx:61 msgid "Yes" msgstr "" #: src/components/buttons/YesNoButton.tsx:33 -#: src/tables/Filter.tsx:53 +#: src/tables/Filter.tsx:62 msgid "No" msgstr "" -#: src/components/details/Details.tsx:301 +#: src/components/dashboard/DashboardLayout.tsx:286 +msgid "No Widgets Selected" +msgstr "" + +#: src/components/dashboard/DashboardLayout.tsx:289 +msgid "Use the menu to add widgets to the dashboard" +msgstr "" + +#: src/components/dashboard/DashboardMenu.tsx:59 +#: src/components/dashboard/DashboardMenu.tsx:126 +msgid "Accept Layout" +msgstr "" + +#: src/components/dashboard/DashboardMenu.tsx:91 +#: src/components/nav/NavigationDrawer.tsx:71 +#: src/defaults/actions.tsx:17 +#: src/defaults/links.tsx:9 +#: src/pages/Index/Settings/UserSettings.tsx:47 +msgid "Dashboard" +msgstr "" + +#: src/components/dashboard/DashboardMenu.tsx:99 +msgid "Edit Layout" +msgstr "" + +#: src/components/dashboard/DashboardMenu.tsx:108 +msgid "Add Widget" +msgstr "" + +#: src/components/dashboard/DashboardMenu.tsx:117 +msgid "Remove Widgets" +msgstr "" + +#: src/components/dashboard/DashboardWidget.tsx:65 +msgid "Remove this widget from the dashboard" +msgstr "" + +#: src/components/dashboard/DashboardWidgetDrawer.tsx:77 +msgid "Filter dashboard widgets" +msgstr "" + +#: src/components/dashboard/DashboardWidgetDrawer.tsx:98 +msgid "Add this widget to the dashboard" +msgstr "" + +#: src/components/dashboard/DashboardWidgetDrawer.tsx:123 +msgid "No Widgets Available" +msgstr "" + +#: src/components/dashboard/DashboardWidgetDrawer.tsx:124 +msgid "There are no more widgets available for the dashboard" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:19 +msgid "Subscribed Parts" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:20 +msgid "Show the number of parts which you have subscribed to" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:26 +msgid "Subscribed Categories" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:27 +msgid "Show the number of part categories which you have subscribed to" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:35 +#: src/pages/part/PartSchedulingDetail.tsx:304 +#: src/tables/part/PartTable.tsx:238 +msgid "Low Stock" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:37 +msgid "Show the number of parts which are low on stock" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:43 +msgid "Expired Stock Items" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:45 +msgid "Show the number of stock items which have expired" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:51 +msgid "Stale Stock Items" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:53 +msgid "Show the number of stock items which are stale" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:59 +msgid "Active Build Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:61 +msgid "Show the number of build orders which are currently active" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:66 +msgid "Overdue Build Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:68 +msgid "Show the number of build orders which are overdue" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:73 +msgid "Assigned Build Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:75 +msgid "Show the number of build orders which are assigned to you" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:80 +msgid "Active Sales Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:82 +msgid "Show the number of sales orders which are currently active" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:87 +msgid "Overdue Sales Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:89 +msgid "Show the number of sales orders which are overdue" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:94 +msgid "Assigned Sales Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:96 +msgid "Show the number of sales orders which are assigned to you" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:101 +msgid "Active Purchase Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:103 +msgid "Show the number of purchase orders which are currently active" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:108 +msgid "Overdue Purchase Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:110 +msgid "Show the number of purchase orders which are overdue" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:115 +msgid "Assigned Purchase Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:117 +msgid "Show the number of purchase orders which are assigned to you" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:122 +msgid "Active Return Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:124 +msgid "Show the number of return orders which are currently active" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:129 +msgid "Overdue Return Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:131 +msgid "Show the number of return orders which are overdue" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:136 +msgid "Assigned Return Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:138 +msgid "Show the number of return orders which are assigned to you" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:149 +#: src/components/dashboard/widgets/GetStartedWidget.tsx:15 +#: src/defaults/links.tsx:38 +msgid "Getting Started" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:150 +#: src/defaults/links.tsx:41 +msgid "Getting started with InvenTree" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:157 +#: src/components/dashboard/widgets/NewsWidget.tsx:123 +msgid "News Updates" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:158 +msgid "The latest news from InvenTree" +msgstr "" + +#: src/components/dashboard/widgets/ColorToggleWidget.tsx:18 +#: src/components/nav/MainMenu.tsx:77 +msgid "Change Color Mode" +msgstr "" + +#: src/components/dashboard/widgets/ColorToggleWidget.tsx:23 +msgid "Change the color mode of the user interface" +msgstr "" + +#: src/components/dashboard/widgets/LanguageSelectWidget.tsx:18 +msgid "Change Language" +msgstr "" + +#: src/components/dashboard/widgets/LanguageSelectWidget.tsx:23 +msgid "Change the language of the user interface" +msgstr "" + +#: src/components/dashboard/widgets/NewsWidget.tsx:61 +#: src/components/nav/NotificationDrawer.tsx:88 +#: src/pages/Notifications.tsx:73 +msgid "Mark as read" +msgstr "" + +#: src/components/dashboard/widgets/NewsWidget.tsx:115 +msgid "Requires Superuser" +msgstr "" + +#: src/components/dashboard/widgets/NewsWidget.tsx:116 +msgid "This widget requires superuser permissions" +msgstr "" + +#: src/components/dashboard/widgets/NewsWidget.tsx:133 +msgid "No News" +msgstr "" + +#: src/components/dashboard/widgets/NewsWidget.tsx:134 +msgid "There are no unread news items" +msgstr "" + +#: src/components/details/Details.tsx:300 msgid "No name defined" msgstr "" -#: src/components/details/DetailsImage.tsx:65 +#: src/components/details/DetailsImage.tsx:69 msgid "Remove Image" msgstr "" -#: src/components/details/DetailsImage.tsx:68 +#: src/components/details/DetailsImage.tsx:72 msgid "Remove the associated image from this item?" msgstr "" -#: src/components/details/DetailsImage.tsx:71 -#: src/forms/StockForms.tsx:533 +#: src/components/details/DetailsImage.tsx:75 +#: src/forms/StockForms.tsx:651 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:199 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:306 -#: src/pages/stock/StockDetail.tsx:526 +#: src/pages/stock/StockDetail.tsx:690 msgid "Remove" msgstr "" -#: src/components/details/DetailsImage.tsx:71 -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:158 -#: src/components/items/ActionDropdown.tsx:215 -#: src/components/items/ActionDropdown.tsx:216 -#: src/contexts/ThemeContext.tsx:43 +#: src/components/details/DetailsImage.tsx:75 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:184 +#: src/components/items/ActionDropdown.tsx:268 +#: src/components/items/ActionDropdown.tsx:269 +#: src/contexts/ThemeContext.tsx:45 #: src/hooks/UseForm.tsx:40 -#: src/tables/FilterSelectDrawer.tsx:205 -#: src/tables/build/BuildOutputTable.tsx:286 +#: src/tables/FilterSelectDrawer.tsx:241 +#: src/tables/RowActions.tsx:59 +#: src/tables/build/BuildOutputTable.tsx:434 msgid "Cancel" msgstr "" -#: src/components/details/DetailsImage.tsx:97 +#: src/components/details/DetailsImage.tsx:101 msgid "Drag and drop to upload" msgstr "" -#: src/components/details/DetailsImage.tsx:100 +#: src/components/details/DetailsImage.tsx:104 msgid "Click to select file(s)" msgstr "" -#: src/components/details/DetailsImage.tsx:226 +#: src/components/details/DetailsImage.tsx:230 msgid "Clear" msgstr "" -#: src/components/details/DetailsImage.tsx:232 -#: src/components/forms/ApiForm.tsx:627 -#: src/contexts/ThemeContext.tsx:43 -#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:60 +#: src/components/details/DetailsImage.tsx:236 +#: src/components/forms/ApiForm.tsx:660 +#: src/contexts/ThemeContext.tsx:45 msgid "Submit" msgstr "" -#: src/components/details/DetailsImage.tsx:272 +#: src/components/details/DetailsImage.tsx:280 msgid "Select from existing images" msgstr "" -#: src/components/details/DetailsImage.tsx:280 +#: src/components/details/DetailsImage.tsx:288 msgid "Select Image" msgstr "" -#: src/components/details/DetailsImage.tsx:292 +#: src/components/details/DetailsImage.tsx:304 +msgid "Download remote image" +msgstr "" + +#: src/components/details/DetailsImage.tsx:319 msgid "Upload new image" msgstr "" -#: src/components/details/DetailsImage.tsx:299 +#: src/components/details/DetailsImage.tsx:326 msgid "Upload Image" msgstr "" -#: src/components/details/DetailsImage.tsx:312 +#: src/components/details/DetailsImage.tsx:339 msgid "Delete image" msgstr "" +#: src/components/details/DetailsImage.tsx:373 +msgid "Download Image" +msgstr "" + +#: src/components/details/DetailsImage.tsx:378 +msgid "Image downloaded successfully" +msgstr "" + #: src/components/details/PartIcons.tsx:43 #~ msgid "Part is a template part (variants can be made from this part)" #~ msgstr "Part is a template part (variants can be made from this part)" @@ -235,36 +514,57 @@ msgstr "" #~ msgid "Part is virtual (not a physical part)" #~ msgstr "Part is virtual (not a physical part)" -#: src/components/editors/NotesEditor.tsx:66 +#: src/components/editors/NotesEditor.tsx:74 msgid "Image upload failed" msgstr "" -#: src/components/editors/NotesEditor.tsx:156 -#: src/components/forms/ApiForm.tsx:467 +#: src/components/editors/NotesEditor.tsx:83 +#: src/components/editors/NotesEditor.tsx:119 +#: src/components/forms/ApiForm.tsx:475 #: src/tables/bom/BomTable.tsx:441 msgid "Success" msgstr "" -#: src/components/editors/NotesEditor.tsx:157 +#: src/components/editors/NotesEditor.tsx:84 +msgid "Image uploaded successfully" +msgstr "" + +#: src/components/editors/NotesEditor.tsx:120 msgid "Notes saved successfully" msgstr "" -#: src/components/editors/NotesEditor.tsx:166 +#: src/components/editors/NotesEditor.tsx:131 msgid "Failed to save notes" msgstr "" -#: src/components/editors/NotesEditor.tsx:198 -msgid "Preview Notes" +#: src/components/editors/NotesEditor.tsx:134 +msgid "Error Saving Notes" msgstr "" -#: src/components/editors/NotesEditor.tsx:198 -msgid "Edit Notes" -msgstr "" +#: src/components/editors/NotesEditor.tsx:151 +#~ msgid "Disable Editing" +#~ msgstr "Disable Editing" -#: src/components/editors/NotesEditor.tsx:212 +#: src/components/editors/NotesEditor.tsx:154 msgid "Save Notes" msgstr "" +#: src/components/editors/NotesEditor.tsx:173 +msgid "Close Editor" +msgstr "" + +#: src/components/editors/NotesEditor.tsx:180 +msgid "Enable Editing" +msgstr "" + +#: src/components/editors/NotesEditor.tsx:198 +#~ msgid "Preview Notes" +#~ msgstr "Preview Notes" + +#: src/components/editors/NotesEditor.tsx:198 +#~ msgid "Edit Notes" +#~ msgstr "Edit Notes" + #: src/components/editors/TemplateEditor/CodeEditor/index.tsx:9 msgid "Code" msgstr "" @@ -281,40 +581,44 @@ msgstr "" msgid "PDF Preview" msgstr "" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:104 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:115 msgid "Error loading template" msgstr "" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:116 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:127 msgid "Error saving template" msgstr "" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:146 -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:274 -msgid "Save & Reload Preview" -msgstr "" - -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:151 -msgid "Are you sure you want to Save & Reload the preview?" -msgstr "" - #: src/components/editors/TemplateEditor/TemplateEditor.tsx:151 #~ msgid "Save & Reload preview?" #~ msgstr "Save & Reload preview?" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:153 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:155 +msgid "Could not load the template from the server." +msgstr "" + +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:172 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:303 +msgid "Save & Reload Preview" +msgstr "" + +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:177 +msgid "Are you sure you want to Save & Reload the preview?" +msgstr "" + +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:179 msgid "To render the preview the current template needs to be replaced on the server with your modifications which may break the label if it is under active use. Do you want to proceed?" msgstr "" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:157 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:183 msgid "Save & Reload" msgstr "" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:189 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:215 msgid "Preview updated" msgstr "" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:190 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:216 msgid "The preview has been updated successfully." msgstr "" @@ -322,15 +626,15 @@ msgstr "" #~ msgid "Save & Reload preview" #~ msgstr "Save & Reload preview" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:266 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:295 msgid "Reload preview" msgstr "" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:267 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:296 msgid "Use the currently stored template from the server" msgstr "" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:275 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:304 msgid "Save the current template and reload the preview" msgstr "" @@ -338,11 +642,11 @@ msgstr "" #~ msgid "to preview" #~ msgstr "to preview" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:333 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:365 msgid "Select instance to preview" msgstr "" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:377 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:409 msgid "Error rendering template" msgstr "" @@ -379,6 +683,7 @@ msgid "This page does not exist" msgstr "" #: src/components/errors/PermissionDenied.tsx:8 +#: src/functions/notifications.tsx:24 msgid "Permission Denied" msgstr "" @@ -394,8 +699,8 @@ msgstr "" msgid "A server error occurred" msgstr "" -#: src/components/forms/ApiForm.tsx:151 -#: src/components/forms/ApiForm.tsx:555 +#: src/components/forms/ApiForm.tsx:154 +#: src/components/forms/ApiForm.tsx:579 msgid "Form Error" msgstr "" @@ -403,22 +708,22 @@ msgstr "" #~ msgid "Form Errors Exist" #~ msgstr "Form Errors Exist" -#: src/components/forms/ApiForm.tsx:563 +#: src/components/forms/ApiForm.tsx:587 msgid "Errors exist for one or more form fields" msgstr "" -#: src/components/forms/ApiForm.tsx:665 -#: src/tables/plugin/PluginListTable.tsx:388 +#: src/components/forms/ApiForm.tsx:698 +#: src/tables/plugin/PluginListTable.tsx:195 msgid "Update" msgstr "" -#: src/components/forms/ApiForm.tsx:685 -#: src/components/items/ActionDropdown.tsx:195 +#: src/components/forms/ApiForm.tsx:718 +#: src/components/items/ActionDropdown.tsx:248 #: src/hooks/UseForm.tsx:122 -#: src/pages/Index/Scan.tsx:343 +#: src/pages/Index/Scan.tsx:357 #: src/pages/Notifications.tsx:123 -#: src/tables/RowActions.tsx:43 -#: src/tables/plugin/PluginListTable.tsx:420 +#: src/tables/RowActions.tsx:49 +#: src/tables/plugin/PluginListTable.tsx:232 msgid "Delete" msgstr "" @@ -428,14 +733,6 @@ msgstr "" #~ msgid "Check your your input and try again." #~ msgstr "Check your your input and try again." -#: src/components/forms/AuthenticationForm.tsx:51 -msgid "Login successful" -msgstr "" - -#: src/components/forms/AuthenticationForm.tsx:52 -msgid "Logged in successfully" -msgstr "" - #: src/components/forms/AuthenticationForm.tsx:52 #~ msgid "Welcome back!" #~ msgstr "Welcome back!" @@ -444,14 +741,22 @@ msgstr "" #~ msgid "Login successfull" #~ msgstr "Login successfull" -#: src/components/forms/AuthenticationForm.tsx:58 +#: src/components/forms/AuthenticationForm.tsx:55 +msgid "Login successful" +msgstr "" + +#: src/components/forms/AuthenticationForm.tsx:56 +msgid "Logged in successfully" +msgstr "" + +#: src/components/forms/AuthenticationForm.tsx:61 msgid "Login failed" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:59 -#: src/components/forms/AuthenticationForm.tsx:76 -#: src/components/forms/AuthenticationForm.tsx:211 -#: src/functions/auth.tsx:164 +#: src/components/forms/AuthenticationForm.tsx:62 +#: src/components/forms/AuthenticationForm.tsx:79 +#: src/components/forms/AuthenticationForm.tsx:214 +#: src/functions/auth.tsx:175 msgid "Check your input and try again." msgstr "" @@ -460,45 +765,46 @@ msgstr "" #~ msgid "Mail delivery successfull" #~ msgstr "Mail delivery successfull" -#: src/components/forms/AuthenticationForm.tsx:70 -#: src/functions/auth.tsx:155 +#: src/components/forms/AuthenticationForm.tsx:73 +#: src/functions/auth.tsx:166 msgid "Mail delivery successful" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:71 +#: src/components/forms/AuthenticationForm.tsx:74 msgid "Check your inbox for the login link. If you have an account, you will receive a login link. Check in spam too." msgstr "" -#: src/components/forms/AuthenticationForm.tsx:75 +#: src/components/forms/AuthenticationForm.tsx:78 msgid "Mail delivery failed" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:95 +#: src/components/forms/AuthenticationForm.tsx:98 msgid "Or continue with other methods" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:106 -#: src/components/forms/AuthenticationForm.tsx:227 +#: src/components/forms/AuthenticationForm.tsx:109 +#: src/components/forms/AuthenticationForm.tsx:230 +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:67 msgid "Username" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:107 -#: src/components/forms/AuthenticationForm.tsx:228 +#: src/components/forms/AuthenticationForm.tsx:110 +#: src/components/forms/AuthenticationForm.tsx:231 msgid "Your username" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:112 -#: src/components/forms/AuthenticationForm.tsx:240 -#: src/pages/Auth/Set-Password.tsx:106 +#: src/components/forms/AuthenticationForm.tsx:115 +#: src/components/forms/AuthenticationForm.tsx:243 +#: src/pages/Auth/Set-Password.tsx:101 msgid "Password" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:113 -#: src/components/forms/AuthenticationForm.tsx:241 +#: src/components/forms/AuthenticationForm.tsx:116 +#: src/components/forms/AuthenticationForm.tsx:244 msgid "Your password" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:125 +#: src/components/forms/AuthenticationForm.tsx:128 #: src/pages/Auth/Reset.tsx:26 msgid "Reset password" msgstr "" @@ -507,77 +813,79 @@ msgstr "" #~ msgid "Log in" #~ msgstr "Log in" -#: src/components/forms/AuthenticationForm.tsx:134 -#: src/components/forms/AuthenticationForm.tsx:233 +#: src/components/forms/AuthenticationForm.tsx:136 +#~ msgid "I will use username and password" +#~ msgstr "I will use username and password" + +#: src/components/forms/AuthenticationForm.tsx:137 +#: src/components/forms/AuthenticationForm.tsx:236 #: src/pages/Auth/Reset.tsx:31 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:51 msgid "Email" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:135 +#: src/components/forms/AuthenticationForm.tsx:138 #: src/pages/Auth/Reset.tsx:32 -#: src/pages/Auth/Set-Password.tsx:107 +#: src/pages/Auth/Set-Password.tsx:102 msgid "We will send you a link to login - if you are registered" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:136 -#~ msgid "I will use username and password" -#~ msgstr "I will use username and password" - -#: src/components/forms/AuthenticationForm.tsx:151 +#: src/components/forms/AuthenticationForm.tsx:154 msgid "Send me an email" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:153 +#: src/components/forms/AuthenticationForm.tsx:156 msgid "Use username and password" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:162 +#: src/components/forms/AuthenticationForm.tsx:165 msgid "Log In" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:164 +#: src/components/forms/AuthenticationForm.tsx:167 +#: src/pages/Auth/Reset.tsx:41 +#: src/pages/Auth/Set-Password.tsx:107 msgid "Send Email" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:193 +#: src/components/forms/AuthenticationForm.tsx:196 msgid "Registration successful" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:194 +#: src/components/forms/AuthenticationForm.tsx:197 msgid "Please confirm your email address to complete the registration" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:210 +#: src/components/forms/AuthenticationForm.tsx:213 msgid "Input error" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:234 +#: src/components/forms/AuthenticationForm.tsx:237 msgid "This will be used for a confirmation" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:246 +#: src/components/forms/AuthenticationForm.tsx:249 msgid "Password repeat" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:247 +#: src/components/forms/AuthenticationForm.tsx:250 msgid "Repeat password" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:259 -#: src/components/forms/AuthenticationForm.tsx:304 +#: src/components/forms/AuthenticationForm.tsx:262 +#: src/components/forms/AuthenticationForm.tsx:307 msgid "Register" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:265 +#: src/components/forms/AuthenticationForm.tsx:268 msgid "Or use SSO" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:296 +#: src/components/forms/AuthenticationForm.tsx:299 msgid "Don't have an account?" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:315 +#: src/components/forms/AuthenticationForm.tsx:318 msgid "Go back to login" msgstr "" @@ -588,19 +896,20 @@ msgstr "" #: src/components/forms/HostOptionsForm.tsx:42 #: src/components/forms/HostOptionsForm.tsx:70 +#: src/components/plugins/PluginDrawer.tsx:69 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:410 +#: src/pages/Index/Settings/AdminCenter/UnitManagmentPanel.tsx:19 #: src/pages/part/CategoryDetail.tsx:81 -#: src/pages/part/PartDetail.tsx:143 -#: src/pages/stock/LocationDetail.tsx:89 -#: src/tables/machine/MachineTypeTable.tsx:65 -#: src/tables/machine/MachineTypeTable.tsx:109 -#: src/tables/machine/MachineTypeTable.tsx:216 -#: src/tables/machine/MachineTypeTable.tsx:319 +#: src/pages/part/PartDetail.tsx:164 +#: src/pages/stock/LocationDetail.tsx:83 +#: src/tables/machine/MachineTypeTable.tsx:70 +#: src/tables/machine/MachineTypeTable.tsx:119 +#: src/tables/machine/MachineTypeTable.tsx:237 +#: src/tables/machine/MachineTypeTable.tsx:340 #: src/tables/plugin/PluginErrorTable.tsx:33 -#: src/tables/plugin/PluginListTable.tsx:126 #: src/tables/purchasing/ManufacturerPartParameterTable.tsx:32 #: src/tables/settings/GroupTable.tsx:147 -#: src/tables/settings/PendingTasksTable.tsx:28 +#: src/tables/settings/PendingTasksTable.tsx:32 #: src/tables/stock/LocationTypesTable.tsx:69 msgid "Name" msgstr "" @@ -650,7 +959,7 @@ msgid "Uncategorized" msgstr "" #: src/components/forms/fields/IconField.tsx:209 -#: src/components/nav/Layout.tsx:70 +#: src/components/nav/Layout.tsx:77 #: src/tables/part/PartThumbTable.tsx:192 msgid "Search..." msgstr "" @@ -667,28 +976,27 @@ msgstr "" msgid "{0} icons" msgstr "" -#: src/components/forms/fields/RelatedModelField.tsx:318 -#: src/pages/Index/Settings/UserSettings.tsx:96 +#: src/components/forms/fields/RelatedModelField.tsx:319 +#: src/pages/Index/Settings/UserSettings.tsx:97 #: src/tables/Search.tsx:23 msgid "Search" msgstr "" -#: src/components/forms/fields/RelatedModelField.tsx:319 +#: src/components/forms/fields/RelatedModelField.tsx:320 #: src/components/modals/AboutInvenTreeModal.tsx:81 -#: src/components/widgets/WidgetLayout.tsx:120 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:316 msgid "Loading" msgstr "" -#: src/components/forms/fields/RelatedModelField.tsx:321 +#: src/components/forms/fields/RelatedModelField.tsx:322 msgid "No results found" msgstr "" -#: src/components/forms/fields/TableField.tsx:52 -msgid "modelRenderer entry required for tables" -msgstr "" +#: src/components/forms/fields/TableField.tsx:72 +#~ msgid "modelRenderer entry required for tables" +#~ msgstr "modelRenderer entry required for tables" -#: src/components/forms/fields/TableField.tsx:76 +#: src/components/forms/fields/TableField.tsx:167 msgid "No entries available" msgstr "" @@ -741,7 +1049,7 @@ msgid "Filter by row validation status" msgstr "" #: src/components/importer/ImportDataSelector.tsx:365 -#: src/tables/build/BuildOutputTable.tsx:266 +#: src/tables/build/BuildOutputTable.tsx:407 msgid "Complete" msgstr "" @@ -749,20 +1057,21 @@ msgstr "" msgid "Filter by row completion status" msgstr "" -#: src/components/importer/ImportDataSelector.tsx:383 +#: src/components/importer/ImportDataSelector.tsx:384 msgid "Import selected rows" msgstr "" -#: src/components/importer/ImportDataSelector.tsx:398 +#: src/components/importer/ImportDataSelector.tsx:399 msgid "Processing Data" msgstr "" -#: src/components/importer/ImporterColumnSelector.tsx:50 -#: src/components/importer/ImporterColumnSelector.tsx:176 +#: src/components/importer/ImporterColumnSelector.tsx:53 +#: src/components/importer/ImporterColumnSelector.tsx:179 +#: src/components/items/ErrorItem.tsx:12 msgid "An error occurred" msgstr "" -#: src/components/importer/ImporterColumnSelector.tsx:62 +#: src/components/importer/ImporterColumnSelector.tsx:65 msgid "Select column, or leave blank to ignore this field." msgstr "" @@ -778,51 +1087,51 @@ msgstr "" #~ msgid "Imported Column Name" #~ msgstr "Imported Column Name" -#: src/components/importer/ImporterColumnSelector.tsx:182 +#: src/components/importer/ImporterColumnSelector.tsx:185 msgid "Ignore this field" msgstr "" -#: src/components/importer/ImporterColumnSelector.tsx:196 +#: src/components/importer/ImporterColumnSelector.tsx:199 msgid "Mapping data columns to database fields" msgstr "" -#: src/components/importer/ImporterColumnSelector.tsx:201 +#: src/components/importer/ImporterColumnSelector.tsx:204 msgid "Accept Column Mapping" msgstr "" -#: src/components/importer/ImporterColumnSelector.tsx:214 +#: src/components/importer/ImporterColumnSelector.tsx:217 msgid "Database Field" msgstr "" -#: src/components/importer/ImporterColumnSelector.tsx:215 +#: src/components/importer/ImporterColumnSelector.tsx:218 msgid "Field Description" msgstr "" -#: src/components/importer/ImporterColumnSelector.tsx:216 +#: src/components/importer/ImporterColumnSelector.tsx:219 msgid "Imported Column" msgstr "" -#: src/components/importer/ImporterColumnSelector.tsx:217 +#: src/components/importer/ImporterColumnSelector.tsx:220 msgid "Default Value" msgstr "" -#: src/components/importer/ImporterDrawer.tsx:44 +#: src/components/importer/ImporterDrawer.tsx:46 msgid "Upload File" msgstr "" -#: src/components/importer/ImporterDrawer.tsx:45 +#: src/components/importer/ImporterDrawer.tsx:47 msgid "Map Columns" msgstr "" -#: src/components/importer/ImporterDrawer.tsx:46 +#: src/components/importer/ImporterDrawer.tsx:48 msgid "Import Data" msgstr "" -#: src/components/importer/ImporterDrawer.tsx:47 +#: src/components/importer/ImporterDrawer.tsx:49 msgid "Process Data" msgstr "" -#: src/components/importer/ImporterDrawer.tsx:48 +#: src/components/importer/ImporterDrawer.tsx:50 msgid "Complete Import" msgstr "" @@ -830,28 +1139,28 @@ msgstr "" #~ msgid "Cancel import session" #~ msgstr "Cancel import session" -#: src/components/importer/ImporterDrawer.tsx:104 +#: src/components/importer/ImporterDrawer.tsx:106 msgid "Import Complete" msgstr "" -#: src/components/importer/ImporterDrawer.tsx:107 +#: src/components/importer/ImporterDrawer.tsx:109 msgid "Data has been imported successfully" msgstr "" -#: src/components/importer/ImporterDrawer.tsx:109 -#: src/components/importer/ImporterDrawer.tsx:118 +#: src/components/importer/ImporterDrawer.tsx:111 +#: src/components/importer/ImporterDrawer.tsx:120 msgid "Close" msgstr "" -#: src/components/importer/ImporterDrawer.tsx:115 +#: src/components/importer/ImporterDrawer.tsx:117 msgid "Unknown Status" msgstr "" -#: src/components/importer/ImporterDrawer.tsx:116 +#: src/components/importer/ImporterDrawer.tsx:118 msgid "Import session has unknown status" msgstr "" -#: src/components/importer/ImporterDrawer.tsx:135 +#: src/components/importer/ImporterDrawer.tsx:137 msgid "Importing Data" msgstr "" @@ -860,85 +1169,115 @@ msgid "Importing Records" msgstr "" #: src/components/importer/ImporterImportProgress.tsx:39 -msgid "Imported rows" +#: src/tables/settings/ImportSessionTable.tsx:78 +msgid "Imported Rows" msgstr "" -#: src/components/items/ActionDropdown.tsx:121 -msgid "Barcode Actions" +#: src/components/importer/ImporterImportProgress.tsx:39 +#~ msgid "Imported rows" +#~ msgstr "Imported rows" + +#: src/components/items/ActionDropdown.tsx:126 +msgid "Options" msgstr "" #: src/components/items/ActionDropdown.tsx:140 -msgid "View Barcode" -msgstr "" +#~ msgid "View Barcode" +#~ msgstr "View Barcode" -#: src/components/items/ActionDropdown.tsx:147 -msgid "View" -msgstr "" - -#: src/components/items/ActionDropdown.tsx:148 -msgid "View barcode" -msgstr "" - -#: src/components/items/ActionDropdown.tsx:161 -msgid "Link Barcode" +#: src/components/items/ActionDropdown.tsx:162 +#: src/tables/InvenTreeTableHeader.tsx:159 +#: src/tables/InvenTreeTableHeader.tsx:160 +msgid "Barcode Actions" msgstr "" #: src/components/items/ActionDropdown.tsx:162 -msgid "Link custom barcode" +#~ msgid "Link custom barcode" +#~ msgstr "Link custom barcode" + +#: src/components/items/ActionDropdown.tsx:167 +msgid "View" msgstr "" -#: src/components/items/ActionDropdown.tsx:173 -#: src/forms/PurchaseOrderForms.tsx:426 -msgid "Unlink Barcode" +#: src/components/items/ActionDropdown.tsx:169 +msgid "View barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:174 -msgid "Unlink custom barcode" +#: src/components/items/ActionDropdown.tsx:175 +msgid "Link Barcode" +msgstr "" + +#: src/components/items/ActionDropdown.tsx:177 +msgid "Link a custom barcode to this item" msgstr "" #: src/components/items/ActionDropdown.tsx:183 -#: src/tables/RowActions.tsx:33 +#: src/components/items/QRCode.tsx:193 +#: src/forms/PurchaseOrderForms.tsx:464 +msgid "Unlink Barcode" +msgstr "" + +#: src/components/items/ActionDropdown.tsx:185 +msgid "Unlink custom barcode" +msgstr "" + +#: src/components/items/ActionDropdown.tsx:236 +#: src/tables/RowActions.tsx:39 msgid "Edit" msgstr "" -#: src/components/items/ActionDropdown.tsx:184 +#: src/components/items/ActionDropdown.tsx:237 msgid "Edit item" msgstr "" -#: src/components/items/ActionDropdown.tsx:196 +#: src/components/items/ActionDropdown.tsx:249 msgid "Delete item" msgstr "" -#: src/components/items/ActionDropdown.tsx:204 -#: src/components/items/ActionDropdown.tsx:205 +#: src/components/items/ActionDropdown.tsx:257 +#: src/components/items/ActionDropdown.tsx:258 msgid "Hold" msgstr "" -#: src/components/items/ActionDropdown.tsx:227 -#: src/tables/RowActions.tsx:23 +#: src/components/items/ActionDropdown.tsx:280 +#: src/tables/RowActions.tsx:29 msgid "Duplicate" msgstr "" -#: src/components/items/ActionDropdown.tsx:228 +#: src/components/items/ActionDropdown.tsx:281 msgid "Duplicate item" msgstr "" +#: src/components/items/BarcodeInput.tsx:23 +msgid "Scan barcode data here using barcode scanner" +msgstr "" + +#: src/components/items/BarcodeInput.tsx:24 +#: src/tables/settings/BarcodeScanHistoryTable.tsx:65 +msgid "Barcode" +msgstr "" + +#: src/components/items/BarcodeInput.tsx:25 +msgid "Scan" +msgstr "" + #: src/components/items/DocTooltip.tsx:92 +#: src/components/items/GettingStartedCarousel.tsx:20 msgid "Read More" msgstr "" -#: src/components/items/ErrorItem.tsx:5 -#: src/tables/InvenTreeTable.tsx:487 +#: src/components/items/ErrorItem.tsx:8 +#: src/tables/InvenTreeTable.tsx:473 msgid "Unknown error" msgstr "" -#: src/components/items/ErrorItem.tsx:10 -msgid "An error occurred:" -msgstr "" +#: src/components/items/ErrorItem.tsx:13 +#~ msgid "An error occurred:" +#~ msgstr "An error occurred:" #: src/components/items/GettingStartedCarousel.tsx:27 -msgid "Read more" -msgstr "" +#~ msgid "Read more" +#~ msgstr "Read more" #: src/components/items/InfoItem.tsx:27 msgid "None" @@ -965,30 +1304,51 @@ msgstr "" msgid "This panel is a placeholder." msgstr "" -#: src/components/items/QRCode.tsx:87 +#: src/components/items/QRCode.tsx:89 msgid "Low (7%)" msgstr "" -#: src/components/items/QRCode.tsx:88 +#: src/components/items/QRCode.tsx:90 msgid "Medium (15%)" msgstr "" -#: src/components/items/QRCode.tsx:89 +#: src/components/items/QRCode.tsx:91 msgid "Quartile (25%)" msgstr "" -#: src/components/items/QRCode.tsx:90 +#: src/components/items/QRCode.tsx:92 msgid "High (30%)" msgstr "" -#: src/components/items/QRCode.tsx:107 -msgid "Barcode Data:" +#: src/components/items/QRCode.tsx:100 +msgid "Custom barcode" +msgstr "" + +#: src/components/items/QRCode.tsx:101 +msgid "A custom barcode is registered for this item. The shown code is not that custom barcode." msgstr "" #: src/components/items/QRCode.tsx:118 +msgid "Barcode Data:" +msgstr "" + +#: src/components/items/QRCode.tsx:129 msgid "Select Error Correction Level" msgstr "" +#: src/components/items/QRCode.tsx:171 +#: src/pages/part/PartDetail.tsx:239 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:187 +#: src/pages/sales/ReturnOrderDetail.tsx:157 +#: src/pages/sales/SalesOrderDetail.tsx:169 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:166 +msgid "Link" +msgstr "" + +#: src/components/items/QRCode.tsx:190 +msgid "This will remove the link to the associated barcode" +msgstr "" + #: src/components/modals/AboutInvenTreeModal.tsx:99 msgid "Version Information" msgstr "" @@ -1062,11 +1422,11 @@ msgstr "" msgid "Submit Bug Report" msgstr "" -#: src/components/modals/AboutInvenTreeModal.tsx:183 +#: src/components/modals/AboutInvenTreeModal.tsx:181 msgid "Copy version information" msgstr "" -#: src/components/modals/AboutInvenTreeModal.tsx:192 +#: src/components/modals/AboutInvenTreeModal.tsx:189 #: src/components/modals/ServerInfoModal.tsx:147 msgid "Dismiss" msgstr "" @@ -1091,61 +1451,20 @@ msgstr "" msgid "{key} Packages" msgstr "" -#: src/components/modals/QrCodeModal.tsx:72 +#: src/components/modals/QrCodeModal.tsx:24 msgid "Unknown response" msgstr "" -#: src/components/modals/QrCodeModal.tsx:102 -#: src/pages/Index/Scan.tsx:636 -msgid "Error while getting camera" -msgstr "" - -#: src/components/modals/QrCodeModal.tsx:125 -#: src/pages/Index/Scan.tsx:659 -msgid "Error while scanning" -msgstr "" - -#: src/components/modals/QrCodeModal.tsx:139 -#: src/pages/Index/Scan.tsx:673 -msgid "Error while stopping" -msgstr "" - -#: src/components/modals/QrCodeModal.tsx:154 -#: src/defaults/menuItems.tsx:21 -#: src/pages/Index/Scan.tsx:746 -msgid "Scanning" -msgstr "" - -#: src/components/modals/QrCodeModal.tsx:154 -#: src/pages/Index/Scan.tsx:746 -msgid "Not scanning" -msgstr "" - -#: src/components/modals/QrCodeModal.tsx:159 -#: src/pages/Index/Scan.tsx:752 -msgid "Select Camera" -msgstr "" - -#: src/components/modals/QrCodeModal.tsx:169 -#: src/pages/Index/Scan.tsx:737 -msgid "Start scanning" -msgstr "" - -#: src/components/modals/QrCodeModal.tsx:176 -#: src/pages/Index/Scan.tsx:729 -msgid "Stop scanning" -msgstr "" - -#: src/components/modals/QrCodeModal.tsx:181 +#: src/components/modals/QrCodeModal.tsx:39 msgid "No scans yet!" msgstr "" -#: src/components/modals/QrCodeModal.tsx:201 +#: src/components/modals/QrCodeModal.tsx:57 msgid "Close modal" msgstr "" #: src/components/modals/ServerInfoModal.tsx:26 -#: src/pages/Index/Settings/SystemSettings.tsx:38 +#: src/pages/Index/Settings/SystemSettings.tsx:37 msgid "Server" msgstr "" @@ -1206,6 +1525,7 @@ msgid "Background Worker" msgstr "" #: src/components/modals/ServerInfoModal.tsx:101 +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:29 msgid "Background worker not running" msgstr "" @@ -1218,8 +1538,8 @@ msgid "Email settings not configured" msgstr "" #: src/components/modals/ServerInfoModal.tsx:121 -#: src/tables/plugin/PluginListTable.tsx:144 -#: src/tables/plugin/PluginListTable.tsx:294 +#: src/components/plugins/PluginDrawer.tsx:89 +#: src/tables/plugin/PluginListTable.tsx:116 msgid "Version" msgstr "" @@ -1227,7 +1547,7 @@ msgstr "" msgid "Server Version" msgstr "" -#: src/components/nav/Layout.tsx:73 +#: src/components/nav/Layout.tsx:80 msgid "Nothing found..." msgstr "" @@ -1237,18 +1557,26 @@ msgstr "" #~ msgstr "Profile" #: src/components/nav/MainMenu.tsx:52 +#: src/components/nav/NavigationDrawer.tsx:178 #: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:28 msgid "Settings" msgstr "" #: src/components/nav/MainMenu.tsx:59 -#: src/defaults/menuItems.tsx:15 -msgid "Account settings" +#: src/pages/Index/Settings/UserSettings.tsx:152 +msgid "Account Settings" msgstr "" +#: src/components/nav/MainMenu.tsx:59 +#: src/defaults/menuItems.tsx:15 +#~ msgid "Account settings" +#~ msgstr "Account settings" + #: src/components/nav/MainMenu.tsx:67 -#: src/defaults/menuItems.tsx:58 -#: src/pages/Index/Settings/SystemSettings.tsx:315 +#: src/components/nav/NavigationDrawer.tsx:141 +#: src/components/nav/SettingsHeader.tsx:49 +#: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:37 +#: src/pages/Index/Settings/SystemSettings.tsx:310 msgid "System Settings" msgstr "" @@ -1260,14 +1588,11 @@ msgstr "" #~ msgid "Switch to pseudo language" #~ msgstr "Switch to pseudo language" -#: src/components/nav/MainMenu.tsx:77 -msgid "Change Color Mode" -msgstr "" - #: src/components/nav/MainMenu.tsx:86 -#: src/defaults/actions.tsx:71 -#: src/defaults/menuItems.tsx:63 -#: src/pages/Index/Settings/AdminCenter/Index.tsx:221 +#: src/components/nav/NavigationDrawer.tsx:148 +#: src/components/nav/SettingsHeader.tsx:50 +#: src/defaults/actions.tsx:63 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:251 msgid "Admin Center" msgstr "" @@ -1275,458 +1600,732 @@ msgstr "" msgid "Logout" msgstr "" -#: src/components/nav/NavHoverMenu.tsx:65 -#: src/defaults/actions.tsx:60 -msgid "Open Navigation" -msgstr "" - #: src/components/nav/NavHoverMenu.tsx:84 -msgid "View all" -msgstr "" +#~ msgid "View all" +#~ msgstr "View all" #: src/components/nav/NavHoverMenu.tsx:100 #: src/components/nav/NavHoverMenu.tsx:110 -msgid "Get started" -msgstr "" +#~ msgid "Get started" +#~ msgstr "Get started" #: src/components/nav/NavHoverMenu.tsx:103 -msgid "Overview over high-level objects, functions and possible usecases." -msgstr "" - -#: src/components/nav/NavigationDrawer.tsx:57 -msgid "Navigation" -msgstr "" +#~ msgid "Overview over high-level objects, functions and possible usecases." +#~ msgstr "Overview over high-level objects, functions and possible usecases." #: src/components/nav/NavigationDrawer.tsx:60 -msgid "Pages" +#~ msgid "Pages" +#~ msgstr "Pages" + +#: src/components/nav/NavigationDrawer.tsx:77 +#: src/components/render/ModelType.tsx:31 +#: src/defaults/links.tsx:10 +#: src/pages/Index/Settings/SystemSettings.tsx:172 +#: src/pages/part/CategoryDetail.tsx:125 +#: src/pages/part/CategoryDetail.tsx:249 +#: src/pages/part/CategoryDetail.tsx:279 +#: src/pages/part/PartDetail.tsx:856 +msgid "Parts" msgstr "" -#: src/components/nav/NavigationDrawer.tsx:65 -#: src/pages/Index/Settings/AdminCenter/Index.tsx:176 -#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:41 -msgid "Plugins" +#: src/components/nav/NavigationDrawer.tsx:84 +#: src/components/render/Part.tsx:30 +#: src/defaults/links.tsx:11 +#: src/pages/Index/Settings/SystemSettings.tsx:205 +#: src/pages/part/PartDetail.tsx:593 +#: src/pages/stock/LocationDetail.tsx:352 +#: src/pages/stock/StockDetail.tsx:528 +#: src/tables/stock/StockItemTable.tsx:69 +msgid "Stock" msgstr "" -#: src/components/nav/NavigationDrawer.tsx:75 -#: src/defaults/actions.tsx:32 -msgid "Documentation" +#: src/components/nav/NavigationDrawer.tsx:91 +#: src/defaults/links.tsx:13 +#: src/pages/build/BuildDetail.tsx:530 +#: src/pages/build/BuildIndex.tsx:36 +msgid "Manufacturing" msgstr "" -#: src/components/nav/NavigationDrawer.tsx:78 -msgid "About" +#: src/components/nav/NavigationDrawer.tsx:98 +#: src/defaults/links.tsx:18 +#: src/pages/company/ManufacturerDetail.tsx:9 +#: src/pages/company/ManufacturerPartDetail.tsx:258 +#: src/pages/company/SupplierDetail.tsx:9 +#: src/pages/company/SupplierPartDetail.tsx:336 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:480 +#: src/pages/purchasing/PurchasingIndex.tsx:60 +msgid "Purchasing" msgstr "" -#: src/components/nav/NotificationDrawer.tsx:92 -#: src/pages/Index/Settings/SystemSettings.tsx:109 -#: src/pages/Index/Settings/UserSettings.tsx:126 +#: src/components/nav/NavigationDrawer.tsx:105 +#: src/defaults/links.tsx:22 +#: src/pages/company/CustomerDetail.tsx:9 +#: src/pages/sales/ReturnOrderDetail.tsx:469 +#: src/pages/sales/SalesIndex.tsx:53 +#: src/pages/sales/SalesOrderDetail.tsx:520 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:343 +msgid "Sales" +msgstr "" + +#: src/components/nav/NavigationDrawer.tsx:129 +#: src/components/nav/NotificationDrawer.tsx:178 +#: src/pages/Index/Settings/SystemSettings.tsx:110 +#: src/pages/Index/Settings/UserSettings.tsx:127 #: src/pages/Notifications.tsx:65 #: src/pages/Notifications.tsx:151 msgid "Notifications" msgstr "" -#: src/components/nav/NotificationDrawer.tsx:94 +#: src/components/nav/NavigationDrawer.tsx:135 +#: src/components/nav/SettingsHeader.tsx:48 +msgid "User Settings" +msgstr "" + +#: src/components/nav/NavigationDrawer.tsx:173 +msgid "Navigation" +msgstr "" + +#: src/components/nav/NavigationDrawer.tsx:183 +#: src/forms/PurchaseOrderForms.tsx:689 +#: src/forms/StockForms.tsx:614 +#: src/forms/StockForms.tsx:651 +#: src/forms/StockForms.tsx:677 +#: src/forms/StockForms.tsx:705 +#: src/forms/StockForms.tsx:736 +#: src/forms/StockForms.tsx:771 +#: src/forms/StockForms.tsx:813 +#: src/forms/StockForms.tsx:851 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:413 +#: src/tables/RowActions.tsx:129 +#: src/tables/build/BuildLineTable.tsx:101 +msgid "Actions" +msgstr "" + +#: src/components/nav/NavigationDrawer.tsx:191 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:205 +#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:44 +msgid "Plugins" +msgstr "" + +#: src/components/nav/NavigationDrawer.tsx:204 +#: src/defaults/actions.tsx:24 +msgid "Documentation" +msgstr "" + +#: src/components/nav/NavigationDrawer.tsx:210 +msgid "About" +msgstr "" + +#: src/components/nav/NotificationDrawer.tsx:180 msgid "Mark all as read" msgstr "" -#: src/components/nav/NotificationDrawer.tsx:104 +#: src/components/nav/NotificationDrawer.tsx:190 msgid "View all notifications" msgstr "" -#: src/components/nav/NotificationDrawer.tsx:123 +#: src/components/nav/NotificationDrawer.tsx:210 msgid "You have no unread notifications." msgstr "" -#: src/components/nav/NotificationDrawer.tsx:139 -#: src/components/nav/NotificationDrawer.tsx:145 -#: src/tables/notifications/NotificationsTable.tsx:36 -msgid "Notification" -msgstr "" - -#: src/components/nav/NotificationDrawer.tsx:168 -#: src/pages/Notifications.tsx:73 -msgid "Mark as read" -msgstr "" - -#: src/components/nav/SearchDrawer.tsx:78 +#: src/components/nav/SearchDrawer.tsx:85 msgid "results" msgstr "" -#: src/components/nav/SearchDrawer.tsx:370 +#: src/components/nav/SearchDrawer.tsx:380 msgid "Enter search text" msgstr "" -#: src/components/nav/SearchDrawer.tsx:397 +#: src/components/nav/SearchDrawer.tsx:391 +msgid "Refresh search results" +msgstr "" + +#: src/components/nav/SearchDrawer.tsx:402 +#: src/components/nav/SearchDrawer.tsx:409 msgid "Search Options" msgstr "" -#: src/components/nav/SearchDrawer.tsx:400 +#: src/components/nav/SearchDrawer.tsx:412 msgid "Regex search" msgstr "" -#: src/components/nav/SearchDrawer.tsx:410 +#: src/components/nav/SearchDrawer.tsx:421 msgid "Whole word search" msgstr "" -#: src/components/nav/SearchDrawer.tsx:451 +#: src/components/nav/SearchDrawer.tsx:461 msgid "An error occurred during search query" msgstr "" #: src/components/nav/SearchDrawer.tsx:462 -msgid "No results" +#~ msgid "No results" +#~ msgstr "No results" + +#: src/components/nav/SearchDrawer.tsx:472 +#: src/tables/part/PartTestTemplateTable.tsx:76 +msgid "No Results" msgstr "" -#: src/components/nav/SearchDrawer.tsx:465 +#: src/components/nav/SearchDrawer.tsx:475 msgid "No results available for search query" msgstr "" -#: src/components/render/Instance.tsx:217 +#: src/components/panels/AttachmentPanel.tsx:18 +msgid "Attachments" +msgstr "" + +#: src/components/panels/NotesPanel.tsx:24 +#: src/tables/build/BuildOrderTestTable.tsx:143 +#: src/tables/stock/StockTrackingTable.tsx:204 +msgid "Notes" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:47 +msgid "Plugin Inactive" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:50 +msgid "Plugin is not active" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:60 +msgid "Plugin Information" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:74 +#: src/pages/build/BuildDetail.tsx:116 +#: src/pages/company/CompanyDetail.tsx:89 +#: src/pages/company/ManufacturerPartDetail.tsx:89 +#: src/pages/company/ManufacturerPartDetail.tsx:116 +#: src/pages/company/SupplierPartDetail.tsx:140 +#: src/pages/part/CategoryDetail.tsx:101 +#: src/pages/part/PartDetail.tsx:178 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:136 +#: src/pages/sales/ReturnOrderDetail.tsx:107 +#: src/pages/sales/SalesOrderDetail.tsx:116 +#: src/pages/stock/LocationDetail.tsx:103 +#: src/tables/ColumnRenderers.tsx:92 +#: src/tables/bom/UsedInTable.tsx:44 +#: src/tables/build/BuildAllocatedStockTable.tsx:83 +#: src/tables/build/BuildLineTable.tsx:329 +#: src/tables/machine/MachineTypeTable.tsx:74 +#: src/tables/machine/MachineTypeTable.tsx:129 +#: src/tables/machine/MachineTypeTable.tsx:240 +#: src/tables/machine/MachineTypeTable.tsx:344 +#: src/tables/part/RelatedPartTable.tsx:66 +#: src/tables/plugin/PluginListTable.tsx:99 +#: src/tables/sales/SalesOrderAllocationTable.tsx:87 +#: src/tables/sales/SalesOrderLineItemTable.tsx:75 +#: src/tables/stock/LocationTypesTable.tsx:74 +msgid "Description" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:79 +msgid "Author" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:84 +#: src/pages/part/PartSchedulingDetail.tsx:277 +#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:40 +#: src/pages/part/pricing/SaleHistoryPanel.tsx:38 +#: src/tables/ColumnRenderers.tsx:215 +#: src/tables/build/BuildOrderTestTable.tsx:151 +#: src/tables/settings/StocktakeReportTable.tsx:40 +msgid "Date" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:94 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:398 +#: src/pages/part/PartDetail.tsx:331 +#: src/tables/bom/UsedInTable.tsx:84 +#: src/tables/company/CompanyTable.tsx:62 +#: src/tables/company/CompanyTable.tsx:96 +#: src/tables/machine/MachineListTable.tsx:333 +#: src/tables/machine/MachineListTable.tsx:605 +#: src/tables/part/ParametricPartTable.tsx:223 +#: src/tables/part/PartTable.tsx:178 +#: src/tables/part/PartVariantTable.tsx:15 +#: src/tables/plugin/PluginListTable.tsx:94 +#: src/tables/plugin/PluginListTable.tsx:401 +#: src/tables/purchasing/SupplierPartTable.tsx:100 +#: src/tables/purchasing/SupplierPartTable.tsx:190 +#: src/tables/settings/UserTable.tsx:283 +#: src/tables/stock/StockItemTable.tsx:293 +msgid "Active" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:106 +msgid "Package Name" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:112 +msgid "Installation Path" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:117 +#: src/tables/machine/MachineTypeTable.tsx:152 +#: src/tables/machine/MachineTypeTable.tsx:276 +#: src/tables/plugin/PluginListTable.tsx:406 +msgid "Builtin" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:122 +msgid "Package" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:134 +#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:53 +msgid "Plugin Settings" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:146 +#: src/components/render/ModelType.tsx:276 +msgid "Plugin Configuration" +msgstr "" + +#: src/components/plugins/PluginPanel.tsx:87 +#~ msgid "Error occurred while rendering plugin content" +#~ msgstr "Error occurred while rendering plugin content" + +#: src/components/plugins/PluginPanel.tsx:91 +#~ msgid "Plugin did not provide panel rendering function" +#~ msgstr "Plugin did not provide panel rendering function" + +#: src/components/plugins/PluginPanel.tsx:103 +#~ msgid "No content provided for this plugin" +#~ msgstr "No content provided for this plugin" + +#: src/components/plugins/PluginPanel.tsx:116 +#: src/components/plugins/PluginSettingsPanel.tsx:76 +#~ msgid "Error Loading Plugin" +#~ msgstr "Error Loading Plugin" + +#: src/components/plugins/PluginSettingsPanel.tsx:51 +#~ msgid "Error occurred while rendering plugin settings" +#~ msgstr "Error occurred while rendering plugin settings" + +#: src/components/plugins/PluginSettingsPanel.tsx:55 +#~ msgid "Plugin did not provide settings rendering function" +#~ msgstr "Plugin did not provide settings rendering function" + +#: src/components/plugins/PluginUIFeature.tsx:100 +msgid "Error occurred while rendering the template editor." +msgstr "" + +#: src/components/plugins/PluginUIFeature.tsx:111 +msgid "Error Loading Plugin Editor" +msgstr "" + +#: src/components/plugins/PluginUIFeature.tsx:147 +msgid "Error occurred while rendering the template preview." +msgstr "" + +#: src/components/plugins/PluginUIFeature.tsx:158 +msgid "Error Loading Plugin Preview" +msgstr "" + +#: src/components/plugins/RemoteComponent.tsx:70 +msgid "Invalid source or function name" +msgstr "" + +#: src/components/plugins/RemoteComponent.tsx:91 +msgid "Error Loading Content" +msgstr "" + +#: src/components/plugins/RemoteComponent.tsx:95 +msgid "Error occurred while loading plugin content" +msgstr "" + +#: src/components/render/Instance.tsx:224 msgid "Unknown model: {model}" msgstr "" -#: src/components/render/ModelType.tsx:22 -#: src/forms/BuildForms.tsx:213 -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/forms/StockForms.tsx:499 -#: src/forms/StockForms.tsx:533 -#: src/forms/StockForms.tsx:562 -#: src/forms/StockForms.tsx:590 -#: src/forms/StockForms.tsx:621 -#: src/forms/StockForms.tsx:656 -#: src/forms/StockForms.tsx:698 -#: src/forms/StockForms.tsx:734 -#: src/pages/build/BuildDetail.tsx:95 -#: src/pages/part/PartDetail.tsx:1073 -#: src/tables/build/BuildAllocatedStockTable.tsx:82 +#: src/components/render/ModelType.tsx:30 +#: src/forms/BuildForms.tsx:269 +#: src/forms/BuildForms.tsx:337 +#: src/forms/BuildForms.tsx:385 +#: src/forms/BuildForms.tsx:515 +#: src/forms/PurchaseOrderForms.tsx:689 +#: src/forms/ReturnOrderForms.tsx:190 +#: src/forms/SalesOrderForms.tsx:248 +#: src/forms/StockForms.tsx:261 +#: src/forms/StockForms.tsx:614 +#: src/forms/StockForms.tsx:651 +#: src/forms/StockForms.tsx:677 +#: src/forms/StockForms.tsx:705 +#: src/forms/StockForms.tsx:736 +#: src/forms/StockForms.tsx:771 +#: src/forms/StockForms.tsx:813 +#: src/forms/StockForms.tsx:851 +#: src/pages/build/BuildDetail.tsx:90 +#: src/pages/part/PartDetail.tsx:1094 +#: src/tables/build/BuildAllocatedStockTable.tsx:95 +#: src/tables/build/BuildLineTable.tsx:72 #: src/tables/part/PartTable.tsx:28 -#: src/tables/part/RelatedPartTable.tsx:45 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:88 -#: src/tables/sales/SalesOrderAllocationTable.tsx:68 -#: src/tables/stock/StockTrackingTable.tsx:74 +#: src/tables/part/RelatedPartTable.tsx:47 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:130 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:100 +#: src/tables/sales/SalesOrderAllocationTable.tsx:99 +#: src/tables/stock/StockTrackingTable.tsx:78 msgid "Part" msgstr "" -#: src/components/render/ModelType.tsx:23 -#: src/defaults/links.tsx:29 -#: src/defaults/menuItems.tsx:33 -#: src/pages/Index/Settings/SystemSettings.tsx:173 -#: src/pages/part/CategoryDetail.tsx:119 -#: src/pages/part/CategoryDetail.tsx:244 -#: src/pages/part/CategoryDetail.tsx:274 -#: src/pages/part/PartDetail.tsx:827 -msgid "Parts" -msgstr "" - -#: src/components/render/ModelType.tsx:31 +#: src/components/render/ModelType.tsx:40 msgid "Part Parameter Template" msgstr "" -#: src/components/render/ModelType.tsx:32 +#: src/components/render/ModelType.tsx:41 msgid "Part Parameter Templates" msgstr "" -#: src/components/render/ModelType.tsx:38 +#: src/components/render/ModelType.tsx:48 msgid "Part Test Template" msgstr "" -#: src/components/render/ModelType.tsx:39 +#: src/components/render/ModelType.tsx:49 msgid "Part Test Templates" msgstr "" -#: src/components/render/ModelType.tsx:45 -#: src/pages/company/SupplierPartDetail.tsx:203 -#: src/pages/company/SupplierPartDetail.tsx:375 -#: src/pages/stock/StockDetail.tsx:173 -#: src/tables/build/BuildAllocatedStockTable.tsx:131 +#: src/components/render/ModelType.tsx:56 +#: src/pages/company/SupplierPartDetail.tsx:364 +#: src/pages/stock/StockDetail.tsx:194 +#: src/tables/build/BuildAllocatedStockTable.tsx:152 #: src/tables/part/PartPurchaseOrdersTable.tsx:49 -#: src/tables/purchasing/SupplierPartTable.tsx:68 +#: src/tables/purchasing/SupplierPartTable.tsx:70 +#: src/tables/stock/StockItemTable.tsx:229 msgid "Supplier Part" msgstr "" -#: src/components/render/ModelType.tsx:46 +#: src/components/render/ModelType.tsx:57 msgid "Supplier Parts" msgstr "" -#: src/components/render/ModelType.tsx:54 -#: src/pages/company/ManufacturerPartDetail.tsx:132 +#: src/components/render/ModelType.tsx:66 #: src/tables/part/PartPurchaseOrdersTable.tsx:55 +#: src/tables/stock/StockItemTable.tsx:234 msgid "Manufacturer Part" msgstr "" -#: src/components/render/ModelType.tsx:55 +#: src/components/render/ModelType.tsx:67 msgid "Manufacturer Parts" msgstr "" -#: src/components/render/ModelType.tsx:63 -#: src/pages/part/CategoryDetail.tsx:305 +#: src/components/render/ModelType.tsx:76 +#: src/pages/part/CategoryDetail.tsx:310 msgid "Part Category" msgstr "" -#: src/components/render/ModelType.tsx:64 -#: src/pages/part/CategoryDetail.tsx:258 -#: src/pages/part/CategoryDetail.tsx:296 -#: src/pages/part/PartDetail.tsx:1063 +#: src/components/render/ModelType.tsx:77 +#: src/pages/part/CategoryDetail.tsx:263 +#: src/pages/part/CategoryDetail.tsx:301 +#: src/pages/part/PartDetail.tsx:1084 msgid "Part Categories" msgstr "" -#: src/components/render/ModelType.tsx:72 -#: src/pages/stock/StockDetail.tsx:624 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:94 -#: src/tables/stock/StockTrackingTable.tsx:45 +#: src/components/render/ModelType.tsx:86 +#: src/forms/BuildForms.tsx:337 +#: src/forms/BuildForms.tsx:385 +#: src/forms/BuildForms.tsx:515 +#: src/forms/SalesOrderForms.tsx:248 +#: src/pages/stock/StockDetail.tsx:839 +#: src/tables/stock/StockTrackingTable.tsx:49 msgid "Stock Item" msgstr "" -#: src/components/render/ModelType.tsx:73 +#: src/components/render/ModelType.tsx:87 #: src/pages/company/CompanyDetail.tsx:203 -#: src/pages/stock/LocationDetail.tsx:128 -#: src/pages/stock/LocationDetail.tsx:181 -#: src/pages/stock/LocationDetail.tsx:395 +#: src/pages/part/PartStocktakeDetail.tsx:113 +#: src/pages/stock/LocationDetail.tsx:122 +#: src/pages/stock/LocationDetail.tsx:175 +#: src/pages/stock/LocationDetail.tsx:380 msgid "Stock Items" msgstr "" -#: src/components/render/ModelType.tsx:81 +#: src/components/render/ModelType.tsx:96 msgid "Stock Location" msgstr "" -#: src/components/render/ModelType.tsx:82 -#: src/pages/stock/LocationDetail.tsx:195 -#: src/pages/stock/LocationDetail.tsx:387 -#: src/pages/stock/StockDetail.tsx:616 +#: src/components/render/ModelType.tsx:97 +#: src/pages/stock/LocationDetail.tsx:189 +#: src/pages/stock/LocationDetail.tsx:372 +#: src/pages/stock/StockDetail.tsx:831 msgid "Stock Locations" msgstr "" -#: src/components/render/ModelType.tsx:90 +#: src/components/render/ModelType.tsx:106 msgid "Stock Location Type" msgstr "" -#: src/components/render/ModelType.tsx:91 +#: src/components/render/ModelType.tsx:107 msgid "Stock Location Types" msgstr "" -#: src/components/render/ModelType.tsx:95 +#: src/components/render/ModelType.tsx:112 +#: src/pages/part/PartDetail.tsx:712 msgid "Stock History" msgstr "" -#: src/components/render/ModelType.tsx:96 +#: src/components/render/ModelType.tsx:113 msgid "Stock Histories" msgstr "" -#: src/components/render/ModelType.tsx:100 -#: src/defaults/links.tsx:31 -#: src/defaults/menuItems.tsx:43 +#: src/components/render/ModelType.tsx:118 msgid "Build" msgstr "" -#: src/components/render/ModelType.tsx:101 +#: src/components/render/ModelType.tsx:119 msgid "Builds" msgstr "" -#: src/components/render/ModelType.tsx:109 +#: src/components/render/ModelType.tsx:128 msgid "Build Line" msgstr "" -#: src/components/render/ModelType.tsx:110 +#: src/components/render/ModelType.tsx:129 msgid "Build Lines" msgstr "" -#: src/components/render/ModelType.tsx:117 +#: src/components/render/ModelType.tsx:137 msgid "Build Item" msgstr "" -#: src/components/render/ModelType.tsx:118 +#: src/components/render/ModelType.tsx:138 msgid "Build Items" msgstr "" -#: src/components/render/ModelType.tsx:122 -#: src/pages/company/CompanyDetail.tsx:339 +#: src/components/render/ModelType.tsx:143 +#: src/pages/company/CompanyDetail.tsx:321 msgid "Company" msgstr "" -#: src/components/render/ModelType.tsx:123 +#: src/components/render/ModelType.tsx:144 msgid "Companies" msgstr "" -#: src/components/render/ModelType.tsx:131 +#: src/components/render/ModelType.tsx:153 +#: src/pages/build/BuildDetail.tsx:195 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:204 +#: src/pages/sales/ReturnOrderDetail.tsx:174 +#: src/pages/sales/SalesOrderDetail.tsx:186 #: src/tables/TableHoverCard.tsx:81 -#: src/tables/build/BuildOrderTable.tsx:140 -#: src/tables/purchasing/PurchaseOrderTable.tsx:64 -#: src/tables/sales/ReturnOrderTable.tsx:55 -#: src/tables/sales/SalesOrderTable.tsx:62 +#: src/tables/build/BuildOrderTable.tsx:135 +#: src/tables/purchasing/PurchaseOrderTable.tsx:69 +#: src/tables/sales/ReturnOrderTable.tsx:67 +#: src/tables/sales/SalesOrderTable.tsx:67 msgid "Project Code" msgstr "" -#: src/components/render/ModelType.tsx:132 -#: src/pages/Index/Settings/AdminCenter/Index.tsx:128 +#: src/components/render/ModelType.tsx:154 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:145 msgid "Project Codes" msgstr "" -#: src/components/render/ModelType.tsx:138 +#: src/components/render/ModelType.tsx:161 #: src/pages/part/pricing/PurchaseHistoryPanel.tsx:32 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:480 -#: src/tables/part/PartPurchaseOrdersTable.tsx:32 -#: src/tables/stock/StockTrackingTable.tsx:107 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:477 +#: src/pages/stock/StockDetail.tsx:253 +#: src/tables/part/PartPurchaseOrdersTable.tsx:31 +#: src/tables/stock/StockItemTable.tsx:222 +#: src/tables/stock/StockTrackingTable.tsx:111 msgid "Purchase Order" msgstr "" -#: src/components/render/ModelType.tsx:139 -#: src/pages/Index/Settings/SystemSettings.tsx:255 +#: src/components/render/ModelType.tsx:162 +#: src/pages/Index/Settings/SystemSettings.tsx:249 #: src/pages/company/CompanyDetail.tsx:196 -#: src/pages/company/SupplierPartDetail.tsx:237 -#: src/pages/part/PartDetail.tsx:662 +#: src/pages/company/SupplierPartDetail.tsx:249 +#: src/pages/part/PartDetail.tsx:683 #: src/pages/purchasing/PurchasingIndex.tsx:25 msgid "Purchase Orders" msgstr "" -#: src/components/render/ModelType.tsx:147 +#: src/components/render/ModelType.tsx:171 msgid "Purchase Order Line" msgstr "" -#: src/components/render/ModelType.tsx:148 +#: src/components/render/ModelType.tsx:172 msgid "Purchase Order Lines" msgstr "" -#: src/components/render/ModelType.tsx:152 -#: src/pages/build/BuildDetail.tsx:153 -#: src/pages/sales/SalesOrderDetail.tsx:520 -#: src/pages/stock/StockDetail.tsx:221 -#: src/tables/sales/SalesOrderAllocationTable.tsx:50 -#: src/tables/stock/StockTrackingTable.tsx:118 +#: src/components/render/ModelType.tsx:177 +#: src/pages/build/BuildDetail.tsx:148 +#: src/pages/part/pricing/SaleHistoryPanel.tsx:24 +#: src/pages/sales/SalesOrderDetail.tsx:515 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:92 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:341 +#: src/pages/stock/StockDetail.tsx:262 +#: src/tables/sales/SalesOrderAllocationTable.tsx:80 +#: src/tables/stock/StockTrackingTable.tsx:122 msgid "Sales Order" msgstr "" -#: src/components/render/ModelType.tsx:153 -#: src/pages/Index/Settings/SystemSettings.tsx:270 +#: src/components/render/ModelType.tsx:178 +#: src/pages/Index/Settings/SystemSettings.tsx:264 #: src/pages/company/CompanyDetail.tsx:216 -#: src/pages/part/PartDetail.tsx:669 +#: src/pages/part/PartDetail.tsx:695 #: src/pages/sales/SalesIndex.tsx:26 msgid "Sales Orders" msgstr "" -#: src/components/render/ModelType.tsx:161 +#: src/components/render/ModelType.tsx:187 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:340 msgid "Sales Order Shipment" msgstr "" -#: src/components/render/ModelType.tsx:162 +#: src/components/render/ModelType.tsx:188 msgid "Sales Order Shipments" msgstr "" -#: src/components/render/ModelType.tsx:168 -#: src/pages/sales/ReturnOrderDetail.tsx:469 -#: src/tables/stock/StockTrackingTable.tsx:129 +#: src/components/render/ModelType.tsx:195 +#: src/pages/sales/ReturnOrderDetail.tsx:464 +#: src/tables/stock/StockTrackingTable.tsx:133 msgid "Return Order" msgstr "" -#: src/components/render/ModelType.tsx:169 -#: src/pages/Index/Settings/SystemSettings.tsx:286 +#: src/components/render/ModelType.tsx:196 +#: src/pages/Index/Settings/SystemSettings.tsx:280 #: src/pages/company/CompanyDetail.tsx:223 +#: src/pages/part/PartDetail.tsx:702 #: src/pages/sales/SalesIndex.tsx:32 msgid "Return Orders" msgstr "" -#: src/components/render/ModelType.tsx:177 +#: src/components/render/ModelType.tsx:205 msgid "Return Order Line Item" msgstr "" -#: src/components/render/ModelType.tsx:178 +#: src/components/render/ModelType.tsx:206 msgid "Return Order Line Items" msgstr "" -#: src/components/render/ModelType.tsx:182 -#: src/tables/company/AddressTable.tsx:47 +#: src/components/render/ModelType.tsx:211 +#: src/tables/company/AddressTable.tsx:48 msgid "Address" msgstr "" -#: src/components/render/ModelType.tsx:183 -#: src/pages/company/CompanyDetail.tsx:253 +#: src/components/render/ModelType.tsx:212 +#: src/pages/company/CompanyDetail.tsx:255 msgid "Addresses" msgstr "" -#: src/components/render/ModelType.tsx:189 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:195 -#: src/pages/sales/ReturnOrderDetail.tsx:174 -#: src/pages/sales/SalesOrderDetail.tsx:183 +#: src/components/render/ModelType.tsx:219 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:196 +#: src/pages/sales/ReturnOrderDetail.tsx:166 +#: src/pages/sales/SalesOrderDetail.tsx:178 msgid "Contact" msgstr "" -#: src/components/render/ModelType.tsx:190 -#: src/pages/company/CompanyDetail.tsx:247 +#: src/components/render/ModelType.tsx:220 +#: src/pages/company/CompanyDetail.tsx:249 msgid "Contacts" msgstr "" -#: src/components/render/ModelType.tsx:196 +#: src/components/render/ModelType.tsx:227 msgid "Owner" msgstr "" -#: src/components/render/ModelType.tsx:197 +#: src/components/render/ModelType.tsx:228 msgid "Owners" msgstr "" -#: src/components/render/ModelType.tsx:203 -#: src/tables/settings/ImportSessionTable.tsx:121 -#: src/tables/stock/StockItemTestResultTable.tsx:198 -#: src/tables/stock/StockTrackingTable.tsx:195 +#: src/components/render/ModelType.tsx:234 +#~ msgid "Purchase Order Line Item" +#~ msgstr "Purchase Order Line Item" + +#: src/components/render/ModelType.tsx:235 +#: src/tables/settings/BarcodeScanHistoryTable.tsx:80 +#: src/tables/settings/BarcodeScanHistoryTable.tsx:211 +#: src/tables/settings/ImportSessionTable.tsx:120 +#: src/tables/settings/StocktakeReportTable.tsx:44 +#: src/tables/stock/StockItemTestResultTable.tsx:204 +#: src/tables/stock/StockTrackingTable.tsx:181 +#: src/tables/stock/StockTrackingTable.tsx:210 msgid "User" msgstr "" -#: src/components/render/ModelType.tsx:204 -#: src/pages/Index/Settings/AdminCenter/Index.tsx:98 +#: src/components/render/ModelType.tsx:236 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:109 #: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:13 msgid "Users" msgstr "" -#: src/components/render/ModelType.tsx:210 +#: src/components/render/ModelType.tsx:243 msgid "Group" msgstr "" -#: src/components/render/ModelType.tsx:211 +#: src/components/render/ModelType.tsx:244 #: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:20 -#: src/tables/settings/UserTable.tsx:138 -#: src/tables/settings/UserTable.tsx:201 +#: src/tables/settings/UserTable.tsx:137 +#: src/tables/settings/UserTable.tsx:200 msgid "Groups" msgstr "" -#: src/components/render/ModelType.tsx:218 +#: src/components/render/ModelType.tsx:252 msgid "Import Session" msgstr "" -#: src/components/render/ModelType.tsx:219 +#: src/components/render/ModelType.tsx:253 msgid "Import Sessions" msgstr "" -#: src/components/render/ModelType.tsx:225 +#: src/components/render/ModelType.tsx:260 msgid "Label Template" msgstr "" -#: src/components/render/ModelType.tsx:226 -#: src/pages/Index/Settings/AdminCenter/Index.tsx:158 +#: src/components/render/ModelType.tsx:261 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:187 msgid "Label Templates" msgstr "" -#: src/components/render/ModelType.tsx:232 +#: src/components/render/ModelType.tsx:264 +#~ msgid "Unknown Model" +#~ msgstr "Unknown Model" + +#: src/components/render/ModelType.tsx:268 msgid "Report Template" msgstr "" -#: src/components/render/ModelType.tsx:233 -#: src/pages/Index/Settings/AdminCenter/Index.tsx:164 +#: src/components/render/ModelType.tsx:269 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:193 msgid "Report Templates" msgstr "" -#: src/components/render/ModelType.tsx:239 -msgid "Plugin Configuration" -msgstr "" - -#: src/components/render/ModelType.tsx:240 +#: src/components/render/ModelType.tsx:277 msgid "Plugin Configurations" msgstr "" +#: src/components/render/ModelType.tsx:284 +msgid "Content Type" +msgstr "" + +#: src/components/render/ModelType.tsx:285 +msgid "Content Types" +msgstr "" + +#: src/components/render/ModelType.tsx:291 +#: src/tables/machine/MachineListTable.tsx:351 +#: src/tables/machine/MachineTypeTable.tsx:282 +msgid "Errors" +msgstr "" + +#: src/components/render/ModelType.tsx:307 +#~ msgid "Purchase Order Line Items" +#~ msgstr "Purchase Order Line Items" + +#: src/components/render/ModelType.tsx:337 +#~ msgid "Unknown Models" +#~ msgstr "Unknown Models" + #: src/components/render/Order.tsx:121 +#: src/tables/sales/SalesOrderAllocationTable.tsx:136 msgid "Shipment" msgstr "" #: src/components/render/Part.tsx:25 #: src/components/render/Plugin.tsx:17 -#: src/pages/company/CompanyDetail.tsx:325 -#: src/pages/company/SupplierPartDetail.tsx:360 -#: src/pages/part/PartDetail.tsx:879 +#: src/pages/company/CompanyDetail.tsx:307 +#: src/pages/company/SupplierPartDetail.tsx:349 +#: src/pages/part/PartDetail.tsx:911 msgid "Inactive" msgstr "" @@ -1736,39 +2335,38 @@ msgstr "" msgid "No stock" msgstr "" -#: src/components/render/Part.tsx:30 -#: src/defaults/links.tsx:30 -#: src/defaults/menuItems.tsx:38 -#: src/pages/Index/Settings/SystemSettings.tsx:206 -#: src/pages/part/PartDetail.tsx:543 -#: src/pages/stock/LocationDetail.tsx:367 -#: src/pages/stock/StockDetail.tsx:411 -#: src/tables/stock/StockItemTable.tsx:68 -msgid "Stock" -msgstr "" - -#: src/components/render/Stock.tsx:60 -#: src/pages/stock/StockDetail.tsx:150 -#: src/pages/stock/StockDetail.tsx:581 -#: src/tables/build/BuildAllocatedStockTable.tsx:102 -#: src/tables/sales/SalesOrderAllocationTable.tsx:80 +#: src/components/render/Stock.tsx:61 +#: src/forms/ReturnOrderForms.tsx:190 +#: src/pages/stock/StockDetail.tsx:166 +#: src/pages/stock/StockDetail.tsx:771 +#: src/tables/build/BuildAllocatedStockTable.tsx:123 +#: src/tables/build/BuildOutputTable.tsx:81 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:114 +#: src/tables/sales/SalesOrderAllocationTable.tsx:106 msgid "Serial Number" msgstr "" -#: src/components/render/Stock.tsx:62 -#: src/forms/BuildForms.tsx:218 -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/pages/part/pricing/BomPricingPanel.tsx:109 +#: src/components/render/Stock.tsx:63 +#: src/forms/BuildForms.tsx:206 +#: src/forms/BuildForms.tsx:515 +#: src/forms/PurchaseOrderForms.tsx:689 +#: src/forms/SalesOrderForms.tsx:248 +#: src/pages/part/PartSchedulingDetail.tsx:80 +#: src/pages/part/PartStocktakeDetail.tsx:60 +#: src/pages/part/PartStocktakeDetail.tsx:234 +#: src/pages/part/PartStocktakeDetail.tsx:252 +#: src/pages/part/pricing/BomPricingPanel.tsx:148 #: src/pages/part/pricing/PriceBreakPanel.tsx:89 -#: src/pages/part/pricing/PriceBreakPanel.tsx:171 -#: src/pages/stock/StockDetail.tsx:145 -#: src/pages/stock/StockDetail.tsx:587 -#: src/tables/build/BuildOrderTestTable.tsx:197 -#: src/tables/part/PartPurchaseOrdersTable.tsx:92 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:143 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:171 +#: src/pages/part/pricing/PriceBreakPanel.tsx:172 +#: src/pages/stock/StockDetail.tsx:161 +#: src/pages/stock/StockDetail.tsx:777 +#: src/tables/build/BuildLineTable.tsx:79 +#: src/tables/build/BuildOrderTestTable.tsx:198 +#: src/tables/part/PartPurchaseOrdersTable.tsx:93 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:146 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:177 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:77 -#: src/tables/stock/StockTrackingTable.tsx:59 +#: src/tables/stock/StockTrackingTable.tsx:63 msgid "Quantity" msgstr "" @@ -1842,10 +2440,6 @@ msgstr "" #~ msgid "Required Part" #~ msgstr "Required Part" -#: src/components/tables/build/BuildLineTable.tsx:152 -#~ msgid "Required Quantity" -#~ msgstr "Required Quantity" - #: src/components/tables/build/BuildOrderTable.tsx:52 #~ msgid "Progress" #~ msgstr "Progress" @@ -2126,14 +2720,6 @@ msgstr "" #~ msgid "user deleted" #~ msgstr "user deleted" -#: src/components/tables/settings/UserTable.tsx:168 -#~ msgid "First Name" -#~ msgstr "First Name" - -#: src/components/tables/settings/UserTable.tsx:173 -#~ msgid "Last Name" -#~ msgstr "Last Name" - #: src/components/tables/stock/StockItemTable.tsx:247 #~ msgid "Test Filter" #~ msgstr "Test Filter" @@ -2146,36 +2732,21 @@ msgstr "" #~ msgid "Stock location updated" #~ msgstr "Stock location updated" -#: src/components/widgets/DisplayWidget.tsx:11 -#: src/pages/Index/Settings/AccountSettings/DisplaySettingsPanel.tsx:17 -msgid "Display Settings" -msgstr "" - -#: src/components/widgets/DisplayWidget.tsx:15 -#: src/pages/Index/Settings/AccountSettings/DisplaySettingsPanel.tsx:23 -msgid "Color Mode" -msgstr "" - -#: src/components/widgets/DisplayWidget.tsx:21 -#: src/pages/Index/Settings/AccountSettings/DisplaySettingsPanel.tsx:33 -msgid "Language" -msgstr "" - #: src/components/widgets/FeedbackWidget.tsx:19 -msgid "Something is new: Platform UI" -msgstr "" +#~ msgid "Something is new: Platform UI" +#~ msgstr "Something is new: Platform UI" #: src/components/widgets/FeedbackWidget.tsx:21 -msgid "We are building a new UI with a modern stack. What you currently see is not fixed and will be redesigned but demonstrates the UI/UX possibilities we will have going forward." -msgstr "" +#~ msgid "We are building a new UI with a modern stack. What you currently see is not fixed and will be redesigned but demonstrates the UI/UX possibilities we will have going forward." +#~ msgstr "We are building a new UI with a modern stack. What you currently see is not fixed and will be redesigned but demonstrates the UI/UX possibilities we will have going forward." #: src/components/widgets/FeedbackWidget.tsx:32 -msgid "Provide Feedback" -msgstr "" +#~ msgid "Provide Feedback" +#~ msgstr "Provide Feedback" #: src/components/widgets/GetStartedWidget.tsx:11 -msgid "Getting started" -msgstr "" +#~ msgid "Getting started" +#~ msgstr "Getting started" #: src/components/widgets/MarkdownEditor.tsx:108 #~ msgid "Failed to upload image" @@ -2186,28 +2757,24 @@ msgstr "" #~ msgstr "Notes saved" #: src/components/widgets/WidgetLayout.tsx:166 -msgid "Layout" -msgstr "" +#~ msgid "Layout" +#~ msgstr "Layout" #: src/components/widgets/WidgetLayout.tsx:172 -msgid "Reset Layout" -msgstr "" +#~ msgid "Reset Layout" +#~ msgstr "Reset Layout" #: src/components/widgets/WidgetLayout.tsx:185 -msgid "Stop Edit" -msgstr "" - -#: src/components/widgets/WidgetLayout.tsx:185 -msgid "Edit Layout" -msgstr "" +#~ msgid "Stop Edit" +#~ msgstr "Stop Edit" #: src/components/widgets/WidgetLayout.tsx:191 -msgid "Appearance" -msgstr "" +#~ msgid "Appearance" +#~ msgstr "Appearance" #: src/components/widgets/WidgetLayout.tsx:203 -msgid "Show Boxes" -msgstr "" +#~ msgid "Show Boxes" +#~ msgstr "Show Boxes" #: src/contexts/LanguageContext.tsx:20 msgid "Arabic" @@ -2286,201 +2853,175 @@ msgid "Korean" msgstr "" #: src/contexts/LanguageContext.tsx:39 -msgid "Latvian" +msgid "Lithuanian" msgstr "" #: src/contexts/LanguageContext.tsx:40 -msgid "Dutch" +msgid "Latvian" msgstr "" #: src/contexts/LanguageContext.tsx:41 -msgid "Norwegian" +msgid "Dutch" msgstr "" #: src/contexts/LanguageContext.tsx:42 -msgid "Polish" +msgid "Norwegian" msgstr "" #: src/contexts/LanguageContext.tsx:43 -msgid "Portuguese" +msgid "Polish" msgstr "" #: src/contexts/LanguageContext.tsx:44 -msgid "Portuguese (Brazilian)" +msgid "Portuguese" msgstr "" #: src/contexts/LanguageContext.tsx:45 -msgid "Romanian" +msgid "Portuguese (Brazilian)" msgstr "" #: src/contexts/LanguageContext.tsx:46 -msgid "Russian" +msgid "Romanian" msgstr "" #: src/contexts/LanguageContext.tsx:47 -msgid "Slovak" +msgid "Russian" msgstr "" #: src/contexts/LanguageContext.tsx:48 -msgid "Slovenian" +msgid "Slovak" msgstr "" #: src/contexts/LanguageContext.tsx:49 -msgid "Swedish" +msgid "Slovenian" msgstr "" #: src/contexts/LanguageContext.tsx:50 -msgid "Thai" +msgid "Swedish" msgstr "" #: src/contexts/LanguageContext.tsx:51 -msgid "Turkish" +msgid "Thai" msgstr "" #: src/contexts/LanguageContext.tsx:52 -msgid "Ukrainian" +msgid "Turkish" msgstr "" #: src/contexts/LanguageContext.tsx:53 -msgid "Vietnamese" +msgid "Ukrainian" msgstr "" #: src/contexts/LanguageContext.tsx:54 -msgid "Chinese (Simplified)" +msgid "Vietnamese" msgstr "" #: src/contexts/LanguageContext.tsx:55 +msgid "Chinese (Simplified)" +msgstr "" + +#: src/contexts/LanguageContext.tsx:56 msgid "Chinese (Traditional)" msgstr "" +#: src/defaults/actions.tsx:18 +msgid "Go to the InvenTree dashboard" +msgstr "" + #: src/defaults/actions.tsx:18 #: src/defaults/links.tsx:27 #: src/defaults/menuItems.tsx:9 -msgid "Home" -msgstr "" +#~ msgid "Home" +#~ msgstr "Home" #: src/defaults/actions.tsx:25 -#: src/defaults/links.tsx:28 -#: src/defaults/menuItems.tsx:28 -#: src/pages/Index/Dashboard.tsx:19 -#: src/pages/Index/Settings/UserSettings.tsx:46 -msgid "Dashboard" -msgstr "" - -#: src/defaults/actions.tsx:26 -msgid "Go to the InvenTree dashboard" -msgstr "" - -#: src/defaults/actions.tsx:33 msgid "Visit the documentation to learn more about InvenTree" msgstr "" -#: src/defaults/actions.tsx:39 -#: src/defaults/links.tsx:98 -#: src/defaults/links.tsx:128 +#: src/defaults/actions.tsx:31 +#: src/defaults/links.tsx:92 +#: src/defaults/links.tsx:124 msgid "About InvenTree" msgstr "" -#: src/defaults/actions.tsx:40 -#: src/defaults/links.tsx:129 +#: src/defaults/actions.tsx:32 msgid "About the InvenTree org" msgstr "" -#: src/defaults/actions.tsx:46 +#: src/defaults/actions.tsx:38 msgid "Server Information" msgstr "" -#: src/defaults/actions.tsx:47 -#: src/defaults/links.tsx:123 +#: src/defaults/actions.tsx:39 +#: src/defaults/links.tsx:118 msgid "About this Inventree instance" msgstr "" -#: src/defaults/actions.tsx:53 -#: src/defaults/links.tsx:111 +#: src/defaults/actions.tsx:45 +#: src/defaults/links.tsx:105 +#: src/defaults/links.tsx:131 msgid "License Information" msgstr "" -#: src/defaults/actions.tsx:54 -#: src/defaults/links.tsx:135 +#: src/defaults/actions.tsx:46 msgid "Licenses for dependencies of the service" msgstr "" -#: src/defaults/actions.tsx:61 +#: src/defaults/actions.tsx:52 +msgid "Open Navigation" +msgstr "" + +#: src/defaults/actions.tsx:53 msgid "Open the main navigation menu" msgstr "" -#: src/defaults/actions.tsx:72 +#: src/defaults/actions.tsx:64 msgid "Go to the Admin Center" msgstr "" -#: src/defaults/dashboardItems.tsx:15 -msgid "Subscribed Parts" -msgstr "" - -#: src/defaults/dashboardItems.tsx:22 -msgid "Subscribed Categories" -msgstr "" - #: src/defaults/dashboardItems.tsx:29 -msgid "Latest Parts" -msgstr "" +#~ msgid "Latest Parts" +#~ msgstr "Latest Parts" #: src/defaults/dashboardItems.tsx:36 -msgid "BOM Waiting Validation" -msgstr "" +#~ msgid "BOM Waiting Validation" +#~ msgstr "BOM Waiting Validation" #: src/defaults/dashboardItems.tsx:43 -msgid "Recently Updated" -msgstr "" - -#: src/defaults/dashboardItems.tsx:50 -#: src/tables/part/PartTable.tsx:238 -msgid "Low Stock" -msgstr "" +#~ msgid "Recently Updated" +#~ msgstr "Recently Updated" #: src/defaults/dashboardItems.tsx:57 -msgid "Depleted Stock" -msgstr "" +#~ msgid "Depleted Stock" +#~ msgstr "Depleted Stock" #: src/defaults/dashboardItems.tsx:64 -msgid "Required for Build Orders" -msgstr "" +#~ msgid "Required for Build Orders" +#~ msgstr "Required for Build Orders" #: src/defaults/dashboardItems.tsx:71 -msgid "Expired Stock" -msgstr "" +#~ msgid "Expired Stock" +#~ msgstr "Expired Stock" #: src/defaults/dashboardItems.tsx:78 -msgid "Stale Stock" -msgstr "" +#~ msgid "Stale Stock" +#~ msgstr "Stale Stock" #: src/defaults/dashboardItems.tsx:85 -msgid "Build Orders In Progress" -msgstr "" - -#: src/defaults/dashboardItems.tsx:92 -msgid "Overdue Build Orders" -msgstr "" +#~ msgid "Build Orders In Progress" +#~ msgstr "Build Orders In Progress" #: src/defaults/dashboardItems.tsx:99 -msgid "Outstanding Purchase Orders" -msgstr "" - -#: src/defaults/dashboardItems.tsx:106 -msgid "Overdue Purchase Orders" -msgstr "" +#~ msgid "Outstanding Purchase Orders" +#~ msgstr "Outstanding Purchase Orders" #: src/defaults/dashboardItems.tsx:113 -msgid "Outstanding Sales Orders" -msgstr "" - -#: src/defaults/dashboardItems.tsx:120 -msgid "Overdue Sales Orders" -msgstr "" +#~ msgid "Outstanding Sales Orders" +#~ msgstr "Outstanding Sales Orders" #: src/defaults/dashboardItems.tsx:127 -msgid "Current News" -msgstr "" +#~ msgid "Current News" +#~ msgstr "Current News" #: src/defaults/defaultHostList.tsx:8 #~ msgid "InvenTree Demo" @@ -2490,98 +3031,81 @@ msgstr "" #~ msgid "Local Server" #~ msgstr "Local Server" -#: src/defaults/links.tsx:12 -#: src/pages/company/CompanyDetail.tsx:96 -msgid "Website" -msgstr "" - #: src/defaults/links.tsx:17 -msgid "GitHub" -msgstr "" +#~ msgid "GitHub" +#~ msgstr "GitHub" #: src/defaults/links.tsx:22 -msgid "Demo" -msgstr "" - -#: src/defaults/links.tsx:33 -#: src/defaults/menuItems.tsx:48 -#: src/pages/company/ManufacturerDetail.tsx:9 -#: src/pages/company/ManufacturerPartDetail.tsx:263 -#: src/pages/company/SupplierDetail.tsx:9 -#: src/pages/company/SupplierPartDetail.tsx:347 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:483 -#: src/pages/purchasing/PurchasingIndex.tsx:60 -msgid "Purchasing" -msgstr "" - -#: src/defaults/links.tsx:37 -#: src/defaults/menuItems.tsx:53 -#: src/pages/company/CustomerDetail.tsx:9 -#: src/pages/sales/ReturnOrderDetail.tsx:474 -#: src/pages/sales/SalesIndex.tsx:53 -#: src/pages/sales/SalesOrderDetail.tsx:525 -msgid "Sales" -msgstr "" +#~ msgid "Demo" +#~ msgstr "Demo" #: src/defaults/links.tsx:41 #: src/defaults/menuItems.tsx:71 #: src/pages/Index/Playground.tsx:217 -msgid "Playground" -msgstr "" +#~ msgid "Playground" +#~ msgstr "Playground" -#: src/defaults/links.tsx:55 -msgid "Getting Started" -msgstr "" - -#: src/defaults/links.tsx:56 -msgid "Getting started with InvenTree" -msgstr "" - -#: src/defaults/links.tsx:62 +#: src/defaults/links.tsx:45 msgid "API" msgstr "" -#: src/defaults/links.tsx:63 +#: src/defaults/links.tsx:48 msgid "InvenTree API documentation" msgstr "" -#: src/defaults/links.tsx:68 +#: src/defaults/links.tsx:52 msgid "Developer Manual" msgstr "" -#: src/defaults/links.tsx:69 +#: src/defaults/links.tsx:55 msgid "InvenTree developer manual" msgstr "" -#: src/defaults/links.tsx:74 +#: src/defaults/links.tsx:59 msgid "FAQ" msgstr "" -#: src/defaults/links.tsx:75 +#: src/defaults/links.tsx:62 msgid "Frequently asked questions" msgstr "" +#: src/defaults/links.tsx:66 +msgid "GitHub Repository" +msgstr "" + +#: src/defaults/links.tsx:69 +msgid "InvenTree source code on GitHub" +msgstr "" + #: src/defaults/links.tsx:76 #~ msgid "Instance" #~ msgstr "Instance" +#: src/defaults/links.tsx:79 +#: src/defaults/links.tsx:117 +msgid "System Information" +msgstr "" + #: src/defaults/links.tsx:83 #~ msgid "InvenTree" #~ msgstr "InvenTree" -#: src/defaults/links.tsx:85 -#: src/defaults/links.tsx:122 -msgid "System Information" -msgstr "" - #: src/defaults/links.tsx:117 #~ msgid "Licenses for packages used by InvenTree" #~ msgstr "Licenses for packages used by InvenTree" -#: src/defaults/links.tsx:134 -msgid "Licenses" +#: src/defaults/links.tsx:125 +msgid "About the InvenTree Project" msgstr "" +#: src/defaults/links.tsx:132 +msgid "Licenses for dependencies of the InvenTree software" +msgstr "" + +#: src/defaults/links.tsx:134 +#~ msgid "Licenses" +#~ msgstr "Licenses" + #: src/defaults/menuItems.tsx:7 #~ msgid "Open sourcea" #~ msgstr "Open sourcea" @@ -2607,8 +3131,8 @@ msgstr "" #~ msgstr "Profile page" #: src/defaults/menuItems.tsx:17 -msgid "User attributes and design settings." -msgstr "" +#~ msgid "User attributes and design settings." +#~ msgstr "User attributes and design settings." #: src/defaults/menuItems.tsx:21 #~ msgid "Free for everyone" @@ -2619,8 +3143,8 @@ msgstr "" #~ msgstr "The fluid of Smeargle’s tail secretions changes" #: src/defaults/menuItems.tsx:23 -msgid "View for interactive scanning and multiple actions." -msgstr "" +#~ msgid "View for interactive scanning and multiple actions." +#~ msgstr "View for interactive scanning and multiple actions." #: src/defaults/menuItems.tsx:24 #~ msgid "The fluid of Smeargle’s tail secretions changes in the intensity" @@ -2698,51 +3222,130 @@ msgstr "" #~ msgid "Are you sure you want to delete this attachment?" #~ msgstr "Are you sure you want to delete this attachment?" -#: src/forms/BuildForms.tsx:158 -msgid "Next serial number" +#: src/forms/BuildForms.tsx:248 +#~ msgid "Remove output" +#~ msgstr "Remove output" + +#: src/forms/BuildForms.tsx:269 +#: src/tables/build/BuildAllocatedStockTable.tsx:147 +#: src/tables/build/BuildOrderTestTable.tsx:177 +#: src/tables/build/BuildOrderTestTable.tsx:201 +#: src/tables/build/BuildOutputTable.tsx:460 +msgid "Build Output" msgstr "" -#: src/forms/BuildForms.tsx:162 -msgid "Latest serial number" +#: src/forms/BuildForms.tsx:269 +#: src/forms/BuildForms.tsx:337 +#: src/forms/BuildForms.tsx:385 +#: src/tables/build/BuildLineTable.tsx:89 +msgid "Batch" msgstr "" -#: src/forms/BuildForms.tsx:234 -msgid "Remove output" +#: src/forms/BuildForms.tsx:269 +#: src/forms/BuildForms.tsx:337 +#: src/forms/BuildForms.tsx:385 +#: src/forms/PurchaseOrderForms.tsx:603 +#: src/pages/build/BuildDetail.tsx:104 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:142 +#: src/pages/sales/ReturnOrderDetail.tsx:113 +#: src/pages/sales/SalesOrderDetail.tsx:122 +#: src/tables/build/BuildOrderTable.tsx:125 +#: src/tables/machine/MachineListTable.tsx:336 +#: src/tables/part/PartPurchaseOrdersTable.tsx:37 +#: src/tables/purchasing/PurchaseOrderTable.tsx:58 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:157 +#: src/tables/sales/ReturnOrderTable.tsx:56 +#: src/tables/sales/SalesOrderTable.tsx:56 +#: src/tables/settings/CustomStateTable.tsx:57 +#: src/tables/settings/ImportSessionTable.tsx:114 +#: src/tables/stock/StockItemTable.tsx:298 +#: src/tables/stock/StockTrackingTable.tsx:56 +msgid "Status" msgstr "" -#: src/forms/BuildForms.tsx:316 +#: src/forms/BuildForms.tsx:289 msgid "Complete Build Outputs" msgstr "" -#: src/forms/BuildForms.tsx:320 +#: src/forms/BuildForms.tsx:292 msgid "Build outputs have been completed" msgstr "" -#: src/forms/BuildForms.tsx:389 +#: src/forms/BuildForms.tsx:353 msgid "Scrap Build Outputs" msgstr "" -#: src/forms/BuildForms.tsx:393 +#: src/forms/BuildForms.tsx:356 msgid "Build outputs have been scrapped" msgstr "" -#: src/forms/BuildForms.tsx:425 -#: src/forms/BuildForms.tsx:449 +#: src/forms/BuildForms.tsx:393 msgid "Cancel Build Outputs" msgstr "" -#: src/forms/BuildForms.tsx:426 -msgid "Selected build outputs will be deleted" +#: src/forms/BuildForms.tsx:396 +msgid "Build outputs have been cancelled" msgstr "" -#: src/forms/BuildForms.tsx:453 -msgid "Build outputs have been cancelled" +#: src/forms/BuildForms.tsx:408 +#~ msgid "Selected build outputs will be deleted" +#~ msgstr "Selected build outputs will be deleted" + +#: src/forms/BuildForms.tsx:470 +#~ msgid "Remove line" +#~ msgstr "Remove line" + +#: src/forms/BuildForms.tsx:515 +#: src/forms/SalesOrderForms.tsx:248 +#: src/tables/build/BuildLineTable.tsx:174 +#: src/tables/sales/SalesOrderLineItemTable.tsx:276 +#: src/tables/stock/StockItemTable.tsx:309 +msgid "Allocated" +msgstr "" + +#: src/forms/BuildForms.tsx:545 +#: src/forms/SalesOrderForms.tsx:239 +#: src/pages/build/BuildDetail.tsx:208 +msgid "Source Location" +msgstr "" + +#: src/forms/BuildForms.tsx:546 +#: src/forms/SalesOrderForms.tsx:240 +msgid "Select the source location for the stock allocation" +msgstr "" + +#: src/forms/BuildForms.tsx:566 +#: src/forms/SalesOrderForms.tsx:274 +#: src/tables/build/BuildLineTable.tsx:442 +#: src/tables/build/BuildLineTable.tsx:569 +#: src/tables/build/BuildLineTable.tsx:642 +#: src/tables/sales/SalesOrderLineItemTable.tsx:302 +#: src/tables/sales/SalesOrderLineItemTable.tsx:326 +msgid "Allocate Stock" +msgstr "" + +#: src/forms/BuildForms.tsx:569 +#: src/forms/SalesOrderForms.tsx:279 +msgid "Stock items allocated" msgstr "" #: src/forms/CompanyForms.tsx:150 #~ msgid "Company updated" #~ msgstr "Company updated" +#: src/forms/PartForms.tsx:67 +#: src/forms/PartForms.tsx:154 +#: src/pages/part/CategoryDetail.tsx:117 +#: src/pages/part/PartDetail.tsx:384 +#: src/tables/part/PartCategoryTable.tsx:90 +#: src/tables/part/PartTable.tsx:294 +msgid "Subscribed" +msgstr "" + +#: src/forms/PartForms.tsx:68 +msgid "Subscribe to notifications for this part" +msgstr "" + #: src/forms/PartForms.tsx:106 #~ msgid "Create Part" #~ msgstr "Create Part" @@ -2751,191 +3354,190 @@ msgstr "" #~ msgid "Part created" #~ msgstr "Part created" -#: src/forms/PartForms.tsx:124 -msgid "Parent part category" -msgstr "" - #: src/forms/PartForms.tsx:129 #~ msgid "Part updated" #~ msgstr "Part updated" -#: src/forms/PurchaseOrderForms.tsx:300 +#: src/forms/PartForms.tsx:140 +msgid "Parent part category" +msgstr "" + +#: src/forms/PartForms.tsx:155 +msgid "Subscribe to notifications for this category" +msgstr "" + +#: src/forms/PurchaseOrderForms.tsx:314 +msgid "Assign Batch Code and Serial Numbers" +msgstr "" + +#: src/forms/PurchaseOrderForms.tsx:316 +msgid "Assign Batch Code" +msgstr "" + +#: src/forms/PurchaseOrderForms.tsx:336 msgid "Choose Location" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:308 +#: src/forms/PurchaseOrderForms.tsx:344 msgid "Item Destination selected" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:317 +#: src/forms/PurchaseOrderForms.tsx:353 msgid "Part category default location selected" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:327 +#: src/forms/PurchaseOrderForms.tsx:363 msgid "Received stock location selected" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:332 +#: src/forms/PurchaseOrderForms.tsx:368 msgid "Default location selected" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:343 -#: src/forms/PurchaseOrderForms.tsx:435 -msgid "Scan Barcode" -msgstr "" +#: src/forms/PurchaseOrderForms.tsx:421 +#~ msgid "Assign Batch Code{0}" +#~ msgstr "Assign Batch Code{0}" -#: src/forms/PurchaseOrderForms.tsx:388 +#: src/forms/PurchaseOrderForms.tsx:427 msgid "Set Location" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:396 -msgid "Assign Batch Code{0}" -msgstr "" - -#: src/forms/PurchaseOrderForms.tsx:405 -#: src/forms/StockForms.tsx:420 +#: src/forms/PurchaseOrderForms.tsx:442 +#: src/forms/StockForms.tsx:539 msgid "Adjust Packaging" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:412 -msgid "Change Status" -msgstr "" - -#: src/forms/PurchaseOrderForms.tsx:418 -msgid "Add Note" -msgstr "" - #: src/forms/PurchaseOrderForms.tsx:444 #: src/forms/StockForms.tsx:428 -msgid "Remove item from list" +#~ msgid "Remove item from list" +#~ msgstr "Remove item from list" + +#: src/forms/PurchaseOrderForms.tsx:450 +msgid "Change Status" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:471 -#: src/forms/StockForms.tsx:499 -#: src/forms/StockForms.tsx:533 -#: src/forms/StockForms.tsx:562 -#: src/forms/StockForms.tsx:590 -#: src/forms/StockForms.tsx:621 -#: src/forms/StockForms.tsx:656 -#: src/forms/StockForms.tsx:698 -#: src/forms/StockForms.tsx:734 -#: src/pages/stock/StockDetail.tsx:181 -#: src/tables/ColumnRenderers.tsx:49 -#: src/tables/stock/StockTrackingTable.tsx:85 +#: src/forms/PurchaseOrderForms.tsx:456 +msgid "Add Note" +msgstr "" + +#: src/forms/PurchaseOrderForms.tsx:503 +#: src/forms/StockForms.tsx:614 +#: src/forms/StockForms.tsx:651 +#: src/forms/StockForms.tsx:677 +#: src/forms/StockForms.tsx:705 +#: src/forms/StockForms.tsx:736 +#: src/forms/StockForms.tsx:771 +#: src/forms/StockForms.tsx:813 +#: src/forms/StockForms.tsx:851 +#: src/pages/stock/StockDetail.tsx:202 +#: src/tables/ColumnRenderers.tsx:60 +#: src/tables/stock/StockTrackingTable.tsx:89 msgid "Location" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:486 +#: src/forms/PurchaseOrderForms.tsx:518 msgid "Store at default location" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:499 +#: src/forms/PurchaseOrderForms.tsx:533 msgid "Store at line item destination" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:509 +#: src/forms/PurchaseOrderForms.tsx:545 msgid "Store with already received stock" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:524 -#: src/pages/build/BuildDetail.tsx:219 -#: src/pages/stock/StockDetail.tsx:162 -#: src/pages/stock/StockDetail.tsx:599 -#: src/tables/build/BuildAllocatedStockTable.tsx:109 -#: src/tables/build/BuildOrderTestTable.tsx:188 -#: src/tables/sales/SalesOrderAllocationTable.tsx:87 +#: src/forms/PurchaseOrderForms.tsx:566 +#: src/pages/build/BuildDetail.tsx:222 +#: src/pages/stock/StockDetail.tsx:185 +#: src/pages/stock/StockDetail.tsx:793 +#: src/tables/build/BuildAllocatedStockTable.tsx:130 +#: src/tables/build/BuildOrderTestTable.tsx:189 +#: src/tables/build/BuildOutputTable.tsx:86 +#: src/tables/sales/SalesOrderAllocationTable.tsx:113 msgid "Batch Code" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:535 -msgid "Serial numbers" +#: src/forms/PurchaseOrderForms.tsx:566 +#~ msgid "Serial numbers" +#~ msgstr "Serial numbers" + +#: src/forms/PurchaseOrderForms.tsx:567 +msgid "Enter batch code for received items" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:544 -#: src/forms/StockForms.tsx:443 -#: src/pages/company/SupplierPartDetail.tsx:156 -#: src/pages/company/SupplierPartDetail.tsx:207 -#: src/pages/stock/StockDetail.tsx:244 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:192 +#: src/forms/PurchaseOrderForms.tsx:579 +#: src/forms/StockForms.tsx:152 +msgid "Serial Numbers" +msgstr "" + +#: src/forms/PurchaseOrderForms.tsx:580 +msgid "Enter serial numbers for received items" +msgstr "" + +#: src/forms/PurchaseOrderForms.tsx:590 +#: src/forms/StockForms.tsx:556 +#: src/pages/company/SupplierPartDetail.tsx:168 +#: src/pages/company/SupplierPartDetail.tsx:219 +#: src/pages/stock/StockDetail.tsx:320 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:198 msgid "Packaging" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:556 -#: src/pages/build/BuildDetail.tsx:109 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:148 -#: src/pages/sales/ReturnOrderDetail.tsx:121 -#: src/pages/sales/SalesOrderDetail.tsx:127 -#: src/tables/build/BuildOrderTable.tsx:122 -#: src/tables/machine/MachineListTable.tsx:335 -#: src/tables/part/PartPurchaseOrdersTable.tsx:37 -#: src/tables/purchasing/PurchaseOrderTable.tsx:55 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:132 -#: src/tables/sales/ReturnOrderTable.tsx:46 -#: src/tables/sales/SalesOrderTable.tsx:53 -#: src/tables/settings/ImportSessionTable.tsx:115 -#: src/tables/stock/StockItemTable.tsx:294 -#: src/tables/stock/StockTrackingTable.tsx:52 -msgid "Status" -msgstr "" - -#: src/forms/PurchaseOrderForms.tsx:564 -#: src/pages/company/SupplierPartDetail.tsx:110 -#: src/tables/ColumnRenderers.tsx:132 +#: src/forms/PurchaseOrderForms.tsx:612 +#: src/pages/company/SupplierPartDetail.tsx:115 +#: src/tables/ColumnRenderers.tsx:143 msgid "Note" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/pages/company/SupplierPartDetail.tsx:128 -#: src/tables/purchasing/SupplierPriceBreakTable.tsx:57 -msgid "SKU" -msgstr "" - -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/tables/part/PartPurchaseOrdersTable.tsx:120 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:178 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:127 -msgid "Received" -msgstr "" - -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/forms/StockForms.tsx:499 -#: src/forms/StockForms.tsx:533 -#: src/forms/StockForms.tsx:562 -#: src/forms/StockForms.tsx:590 -#: src/forms/StockForms.tsx:621 -#: src/forms/StockForms.tsx:656 -#: src/forms/StockForms.tsx:698 -#: src/forms/StockForms.tsx:734 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:413 -#: src/tables/RowActions.tsx:113 -msgid "Actions" -msgstr "" - -#: src/forms/PurchaseOrderForms.tsx:655 -msgid "Receive Line Items" -msgstr "" - #: src/forms/PurchaseOrderForms.tsx:658 #~ msgid "Receive line items" #~ msgstr "Receive line items" -#: src/forms/StockForms.tsx:104 -msgid "Add given quantity as packs instead of individual items" +#: src/forms/PurchaseOrderForms.tsx:689 +#: src/pages/company/SupplierPartDetail.tsx:133 +#: src/tables/purchasing/SupplierPriceBreakTable.tsx:57 +msgid "SKU" +msgstr "" + +#: src/forms/PurchaseOrderForms.tsx:689 +#: src/tables/part/PartPurchaseOrdersTable.tsx:126 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:184 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:247 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:152 +msgid "Received" +msgstr "" + +#: src/forms/PurchaseOrderForms.tsx:701 +msgid "Receive Line Items" +msgstr "" + +#: src/forms/ReturnOrderForms.tsx:201 +msgid "Receive Items" +msgstr "" + +#: src/forms/ReturnOrderForms.tsx:208 +msgid "Item received into stock" +msgstr "" + +#: src/forms/StockForms.tsx:80 +#: src/hooks/UsePlaceholder.tsx:57 +msgid "Next serial number" msgstr "" #: src/forms/StockForms.tsx:110 #~ msgid "Create Stock Item" #~ msgstr "Create Stock Item" -#: src/forms/StockForms.tsx:117 +#: src/forms/StockForms.tsx:131 +msgid "Add given quantity as packs instead of individual items" +msgstr "" + +#: src/forms/StockForms.tsx:145 msgid "Enter initial quantity for this stock item" msgstr "" -#: src/forms/StockForms.tsx:124 -msgid "Serial Numbers" -msgstr "" - -#: src/forms/StockForms.tsx:125 +#: src/forms/StockForms.tsx:154 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" @@ -2943,82 +3545,102 @@ msgstr "" #~ msgid "Stock item updated" #~ msgstr "Stock item updated" -#: src/forms/StockForms.tsx:179 -#: src/pages/stock/StockDetail.tsx:434 -#: src/tables/stock/StockItemTable.tsx:417 -#: src/tables/stock/StockItemTable.tsx:535 +#: src/forms/StockForms.tsx:169 +#: src/pages/stock/StockDetail.tsx:131 +msgid "Stock Status" +msgstr "" + +#: src/forms/StockForms.tsx:218 +#: src/pages/stock/StockDetail.tsx:554 +#: src/tables/stock/StockItemTable.tsx:421 +#: src/tables/stock/StockItemTable.tsx:541 msgid "Add Stock Item" msgstr "" -#: src/forms/StockForms.tsx:362 +#: src/forms/StockForms.tsx:262 +msgid "Select the part to install" +msgstr "" + +#: src/forms/StockForms.tsx:480 msgid "Loading..." msgstr "" -#: src/forms/StockForms.tsx:408 +#: src/forms/StockForms.tsx:527 msgid "Move to default location" msgstr "" -#: src/forms/StockForms.tsx:499 -#: src/forms/StockForms.tsx:533 -#: src/forms/StockForms.tsx:562 -#: src/forms/StockForms.tsx:590 -#: src/forms/StockForms.tsx:621 -#: src/forms/StockForms.tsx:656 -#: src/forms/StockForms.tsx:698 -#: src/forms/StockForms.tsx:734 -#: src/pages/part/PartDetail.tsx:230 -#: src/pages/part/PartDetail.tsx:843 -#: src/tables/stock/StockItemTable.tsx:325 +#: src/forms/StockForms.tsx:614 +#: src/forms/StockForms.tsx:651 +#: src/forms/StockForms.tsx:677 +#: src/forms/StockForms.tsx:705 +#: src/forms/StockForms.tsx:736 +#: src/forms/StockForms.tsx:771 +#: src/forms/StockForms.tsx:813 +#: src/forms/StockForms.tsx:851 +#: src/pages/part/PartDetail.tsx:251 +#: src/pages/part/PartDetail.tsx:875 +#: src/tables/stock/StockItemTable.tsx:329 msgid "In Stock" msgstr "" -#: src/forms/StockForms.tsx:499 +#: src/forms/StockForms.tsx:614 msgid "Move" msgstr "" -#: src/forms/StockForms.tsx:562 -#: src/pages/stock/StockDetail.tsx:518 -#: src/tables/stock/StockItemTestResultTable.tsx:328 +#: src/forms/StockForms.tsx:677 +#: src/pages/stock/StockDetail.tsx:681 +#: src/tables/stock/StockItemTestResultTable.tsx:346 msgid "Add" msgstr "" -#: src/forms/StockForms.tsx:590 -#: src/pages/Index/Scan.tsx:266 -#: src/pages/stock/StockDetail.tsx:508 +#: src/forms/StockForms.tsx:705 +#: src/pages/Index/Scan.tsx:280 +#: src/pages/stock/StockDetail.tsx:670 msgid "Count" msgstr "" -#: src/forms/StockForms.tsx:835 +#: src/forms/StockForms.tsx:953 +#: src/pages/stock/StockDetail.tsx:682 +#: src/tables/stock/StockItemTable.tsx:454 msgid "Add Stock" msgstr "" -#: src/forms/StockForms.tsx:844 +#: src/forms/StockForms.tsx:962 +#: src/pages/stock/StockDetail.tsx:691 +#: src/tables/stock/StockItemTable.tsx:463 msgid "Remove Stock" msgstr "" -#: src/forms/StockForms.tsx:853 -#: src/pages/part/PartDetail.tsx:1017 +#: src/forms/StockForms.tsx:971 +#: src/pages/part/PartDetail.tsx:1039 +#: src/pages/stock/StockDetail.tsx:712 +#: src/tables/stock/StockItemTable.tsx:483 msgid "Transfer Stock" msgstr "" -#: src/forms/StockForms.tsx:862 -#: src/pages/part/PartDetail.tsx:1006 +#: src/forms/StockForms.tsx:980 +#: src/pages/part/PartDetail.tsx:1028 +#: src/pages/stock/LocationDetail.tsx:314 +#: src/pages/stock/LocationDetail.tsx:318 +#: src/tables/stock/StockItemTable.tsx:472 +#: src/tables/stock/StockItemTable.tsx:476 msgid "Count Stock" msgstr "" -#: src/forms/StockForms.tsx:871 +#: src/forms/StockForms.tsx:989 msgid "Change Stock Status" msgstr "" -#: src/forms/StockForms.tsx:880 +#: src/forms/StockForms.tsx:998 msgid "Merge Stock" msgstr "" -#: src/forms/StockForms.tsx:899 +#: src/forms/StockForms.tsx:1017 +#: src/tables/stock/StockItemTable.tsx:530 msgid "Delete Stock Items" msgstr "" -#: src/forms/StockForms.tsx:906 +#: src/forms/StockForms.tsx:1024 msgid "Parent stock location" msgstr "" @@ -3042,11 +3664,11 @@ msgstr "" #~ msgid "You have been logged out" #~ msgstr "You have been logged out" -#: src/functions/auth.tsx:117 +#: src/functions/auth.tsx:128 msgid "Logged Out" msgstr "" -#: src/functions/auth.tsx:118 +#: src/functions/auth.tsx:129 msgid "Successfully logged out" msgstr "" @@ -3062,20 +3684,20 @@ msgstr "" #~ msgid "Found an existing login - welcome back!" #~ msgstr "Found an existing login - welcome back!" -#: src/functions/auth.tsx:156 +#: src/functions/auth.tsx:167 msgid "Check your inbox for a reset link. This only works if you have an account. Check in spam too." msgstr "" -#: src/functions/auth.tsx:163 +#: src/functions/auth.tsx:174 #: src/pages/Auth/Set-Password.tsx:39 msgid "Reset failed" msgstr "" -#: src/functions/auth.tsx:194 +#: src/functions/auth.tsx:205 msgid "Logged In" msgstr "" -#: src/functions/auth.tsx:195 +#: src/functions/auth.tsx:206 msgid "Successfully logged in" msgstr "" @@ -3095,30 +3717,38 @@ msgstr "" #~ msgid "method parameter not supplied" #~ msgstr "method parameter not supplied" -#: src/functions/notifications.tsx:10 +#: src/functions/notifications.tsx:12 msgid "Not implemented" msgstr "" -#: src/functions/notifications.tsx:11 +#: src/functions/notifications.tsx:13 msgid "This feature is not yet implemented" msgstr "" -#: src/functions/notifications.tsx:21 -msgid "Permission denied" -msgstr "" +#: src/functions/notifications.tsx:24 +#~ msgid "Permission denied" +#~ msgstr "Permission denied" -#: src/functions/notifications.tsx:22 +#: src/functions/notifications.tsx:25 msgid "You do not have permission to perform this action" msgstr "" -#: src/functions/notifications.tsx:33 +#: src/functions/notifications.tsx:36 msgid "Invalid Return Code" msgstr "" -#: src/functions/notifications.tsx:34 +#: src/functions/notifications.tsx:37 msgid "Server returned status {returnCode}" msgstr "" +#: src/functions/notifications.tsx:47 +msgid "Timeout" +msgstr "" + +#: src/functions/notifications.tsx:48 +msgid "The request timed out" +msgstr "" + #: src/hooks/UseForm.tsx:88 msgid "Item Created" msgstr "" @@ -3135,20 +3765,24 @@ msgstr "" msgid "Are you sure you want to delete this item?" msgstr "" +#: src/hooks/UsePlaceholder.tsx:59 +msgid "Latest serial number" +msgstr "" + #: src/pages/Auth/Logged-In.tsx:22 msgid "Checking if you are already logged in" msgstr "" -#: src/pages/Auth/Login.tsx:31 -#: src/pages/Index/Scan.tsx:329 +#: src/pages/Auth/Login.tsx:35 +#: src/pages/Index/Scan.tsx:343 msgid "No selection" msgstr "" -#: src/pages/Auth/Login.tsx:87 +#: src/pages/Auth/Login.tsx:91 msgid "Welcome, log in below" msgstr "" -#: src/pages/Auth/Login.tsx:89 +#: src/pages/Auth/Login.tsx:93 msgid "Register below" msgstr "" @@ -3162,8 +3796,8 @@ msgstr "" #: src/pages/Auth/Reset.tsx:41 #: src/pages/Auth/Set-Password.tsx:112 -msgid "Send mail" -msgstr "" +#~ msgid "Send mail" +#~ msgstr "Send mail" #: src/pages/Auth/Set-Password.tsx:30 msgid "Token invalid" @@ -3174,22 +3808,22 @@ msgid "You need to provide a valid token to set a new password. Check your inbox msgstr "" #: src/pages/Auth/Set-Password.tsx:49 -msgid "No token provided" -msgstr "" +#~ msgid "No token provided" +#~ msgstr "No token provided" #: src/pages/Auth/Set-Password.tsx:50 -msgid "You need to provide a token to set a new password. Check your inbox for a reset link." -msgstr "" +#~ msgid "You need to provide a token to set a new password. Check your inbox for a reset link." +#~ msgstr "You need to provide a token to set a new password. Check your inbox for a reset link." -#: src/pages/Auth/Set-Password.tsx:73 +#: src/pages/Auth/Set-Password.tsx:68 msgid "Password set" msgstr "" -#: src/pages/Auth/Set-Password.tsx:74 +#: src/pages/Auth/Set-Password.tsx:69 msgid "The password was set successfully. You can now login with your new password" msgstr "" -#: src/pages/Auth/Set-Password.tsx:101 +#: src/pages/Auth/Set-Password.tsx:96 msgid "Set new password" msgstr "" @@ -3206,20 +3840,20 @@ msgstr "" #~ msgstr "Sorry, an unexpected error has occurred." #: src/pages/Index/Dashboard.tsx:22 -msgid "Autoupdate" -msgstr "" +#~ msgid "Autoupdate" +#~ msgstr "Autoupdate" #: src/pages/Index/Dashboard.tsx:26 -msgid "This page is a replacement for the old start page with the same information. This page will be deprecated and replaced by the home page." -msgstr "" +#~ msgid "This page is a replacement for the old start page with the same information. This page will be deprecated and replaced by the home page." +#~ msgstr "This page is a replacement for the old start page with the same information. This page will be deprecated and replaced by the home page." #: src/pages/Index/Home.tsx:58 -msgid "Welcome to your Dashboard{0}" -msgstr "" +#~ msgid "Welcome to your Dashboard{0}" +#~ msgstr "Welcome to your Dashboard{0}" #: src/pages/Index/Playground.tsx:222 -msgid "This page is a showcase for the possibilities of Platform UI." -msgstr "" +#~ msgid "This page is a showcase for the possibilities of Platform UI." +#~ msgstr "This page is a showcase for the possibilities of Platform UI." #: src/pages/Index/Profile/Profile.tsx:30 #: src/pages/Index/Profile/Profile.tsx:141 @@ -3365,125 +3999,190 @@ msgstr "" msgid "Image Barcode" msgstr "" -#: src/pages/Index/Scan.tsx:247 +#: src/pages/Index/Scan.tsx:261 msgid "Selected elements are not known" msgstr "" -#: src/pages/Index/Scan.tsx:254 +#: src/pages/Index/Scan.tsx:268 msgid "Multiple object types selected" msgstr "" -#: src/pages/Index/Scan.tsx:261 +#: src/pages/Index/Scan.tsx:275 msgid "Actions for {0}" msgstr "" -#: src/pages/Index/Scan.tsx:282 +#: src/pages/Index/Scan.tsx:296 msgid "Scan Page" msgstr "" -#: src/pages/Index/Scan.tsx:285 +#: src/pages/Index/Scan.tsx:299 msgid "This page can be used for continuously scanning items and taking actions on them." msgstr "" -#: src/pages/Index/Scan.tsx:292 +#: src/pages/Index/Scan.tsx:306 msgid "Toggle Fullscreen" msgstr "" -#: src/pages/Index/Scan.tsx:305 +#: src/pages/Index/Scan.tsx:319 msgid "Select the input method you want to use to scan items." msgstr "" -#: src/pages/Index/Scan.tsx:307 +#: src/pages/Index/Scan.tsx:321 msgid "Input" msgstr "" -#: src/pages/Index/Scan.tsx:314 +#: src/pages/Index/Scan.tsx:328 msgid "Select input method" msgstr "" -#: src/pages/Index/Scan.tsx:315 +#: src/pages/Index/Scan.tsx:329 msgid "Nothing found" msgstr "" -#: src/pages/Index/Scan.tsx:323 +#: src/pages/Index/Scan.tsx:337 msgid "Depending on the selected parts actions will be shown here. Not all barcode types are supported currently." msgstr "" -#: src/pages/Index/Scan.tsx:325 +#: src/pages/Index/Scan.tsx:339 msgid "Action" msgstr "" -#: src/pages/Index/Scan.tsx:334 +#: src/pages/Index/Scan.tsx:348 msgid "{0} items selected" msgstr "" -#: src/pages/Index/Scan.tsx:337 +#: src/pages/Index/Scan.tsx:351 msgid "General Actions" msgstr "" -#: src/pages/Index/Scan.tsx:351 +#: src/pages/Index/Scan.tsx:365 msgid "Lookup part" msgstr "" -#: src/pages/Index/Scan.tsx:359 +#: src/pages/Index/Scan.tsx:373 msgid "Open Link" msgstr "" -#: src/pages/Index/Scan.tsx:375 +#: src/pages/Index/Scan.tsx:389 msgid "History is locally kept in this browser." msgstr "" -#: src/pages/Index/Scan.tsx:376 +#: src/pages/Index/Scan.tsx:390 msgid "The history is kept in this browser's local storage. So it won't be shared with other users or other devices but is persistent through reloads. You can select items in the history to perform actions on them. To add items, scan/enter them in the Input area." msgstr "" -#: src/pages/Index/Scan.tsx:378 +#: src/pages/Index/Scan.tsx:392 #: src/pages/Notifications.tsx:100 msgid "History" msgstr "" -#: src/pages/Index/Scan.tsx:384 +#: src/pages/Index/Scan.tsx:398 msgid "Delete History" msgstr "" -#: src/pages/Index/Scan.tsx:449 +#: src/pages/Index/Scan.tsx:463 msgid "No history" msgstr "" -#: src/pages/Index/Scan.tsx:467 +#: src/pages/Index/Scan.tsx:481 msgid "Item" msgstr "" -#: src/pages/Index/Scan.tsx:470 +#: src/pages/Index/Scan.tsx:484 msgid "Type" msgstr "" -#: src/pages/Index/Scan.tsx:473 +#: src/pages/Index/Scan.tsx:487 msgid "Source" msgstr "" -#: src/pages/Index/Scan.tsx:476 +#: src/pages/Index/Scan.tsx:490 msgid "Scanned at" msgstr "" -#: src/pages/Index/Scan.tsx:528 +#: src/pages/Index/Scan.tsx:547 msgid "Enter item serial or data" msgstr "" -#: src/pages/Index/Scan.tsx:540 +#: src/pages/Index/Scan.tsx:559 msgid "Add dummy item" msgstr "" +#: src/pages/Index/Scan.tsx:569 +msgid "Start scanning by selecting a camera and pressing the play button." +msgstr "" + +#: src/pages/Index/Scan.tsx:650 +msgid "Error while getting camera" +msgstr "" + +#: src/pages/Index/Scan.tsx:673 +msgid "Error while scanning" +msgstr "" + +#: src/pages/Index/Scan.tsx:687 +msgid "Error while stopping" +msgstr "" + +#: src/pages/Index/Scan.tsx:745 +msgid "Stop scanning" +msgstr "" + +#: src/pages/Index/Scan.tsx:754 +msgid "Start scanning" +msgstr "" + +#: src/pages/Index/Scan.tsx:763 +msgid "Scanning" +msgstr "" + +#: src/pages/Index/Scan.tsx:763 +msgid "Not scanning" +msgstr "" + +#: src/pages/Index/Scan.tsx:775 +msgid "Select Camera" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:28 +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:50 +msgid "Edit User Information" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:32 +msgid "User details updated" +msgstr "" + #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:41 -msgid "Account Details" +msgid "User Details" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:41 +#~ msgid "Account Details" +#~ msgstr "Account Details" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:44 +msgid "User Actions" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:48 +msgid "Edit User" msgstr "" #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:50 -msgid "First name" +#~ msgid "First name" +#~ msgstr "First name" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:54 +msgid "Set Password" msgstr "" #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:55 -msgid "Last name" +#~ msgid "Last name" +#~ msgstr "Last name" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:56 +msgid "Set User Password" msgstr "" #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:58 @@ -3495,15 +4194,28 @@ msgstr "" #~ msgstr "Last name: {0}" #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:67 -msgid "First name:" -msgstr "" +#~ msgid "First name:" +#~ msgstr "First name:" #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:71 -msgid "Last name:" +#~ msgid "Last name:" +#~ msgstr "Last name:" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:73 +msgid "First Name" msgstr "" -#: src/pages/Index/Settings/AccountSettings/DisplaySettingsPanel.tsx:41 -msgid "Use pseudo language" +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:79 +msgid "Last Name" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:85 +msgid "Staff Access" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:93 +#: src/tables/settings/UserTable.tsx:293 +msgid "Superuser" msgstr "" #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:55 @@ -3600,27 +4312,6 @@ msgstr "" msgid "No tokens configured" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:398 -#: src/pages/part/PartDetail.tsx:297 -#: src/tables/bom/UsedInTable.tsx:84 -#: src/tables/build/BuildOrderTable.tsx:110 -#: src/tables/company/CompanyTable.tsx:61 -#: src/tables/company/CompanyTable.tsx:95 -#: src/tables/machine/MachineListTable.tsx:332 -#: src/tables/machine/MachineListTable.tsx:594 -#: src/tables/part/ParametricPartTable.tsx:223 -#: src/tables/part/PartTable.tsx:178 -#: src/tables/part/PartVariantTable.tsx:15 -#: src/tables/plugin/PluginListTable.tsx:149 -#: src/tables/plugin/PluginListTable.tsx:271 -#: src/tables/plugin/PluginListTable.tsx:563 -#: src/tables/purchasing/SupplierPartTable.tsx:98 -#: src/tables/purchasing/SupplierPartTable.tsx:187 -#: src/tables/settings/UserTable.tsx:284 -#: src/tables/stock/StockItemTable.tsx:289 -msgid "Active" -msgstr "" - #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:401 msgid "Expiry" msgstr "" @@ -3630,38 +4321,74 @@ msgid "Last Seen" msgstr "" #: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:65 -msgid "bars" -msgstr "" +#~ msgid "bars" +#~ msgstr "bars" #: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:66 -msgid "oval" -msgstr "" +#~ msgid "oval" +#~ msgstr "oval" #: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:67 -msgid "dots" -msgstr "" +#~ msgid "dots" +#~ msgstr "dots" #: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:81 -msgid "Theme" -msgstr "" +#~ msgid "Theme" +#~ msgstr "Theme" #: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:87 -msgid "Primary color" +#~ msgid "Primary color" +#~ msgstr "Primary color" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:88 +msgid "Bars" msgstr "" -#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:100 +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:89 +msgid "Oval" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:90 +msgid "Dots" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:101 +msgid "Display Settings" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:107 +msgid "Language" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:115 +msgid "Use pseudo language" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:122 +msgid "Color Mode" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:133 +msgid "Highlight color" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:145 +msgid "Example" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:151 msgid "White color" msgstr "" -#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:108 +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:167 msgid "Black color" msgstr "" -#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:116 +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:183 msgid "Border Radius" msgstr "" -#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:132 +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:199 msgid "Loader" msgstr "" @@ -3673,89 +4400,156 @@ msgstr "" #~ msgid "Advanced Amininistrative Options for InvenTree" #~ msgstr "Advanced Amininistrative Options for InvenTree" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:104 +#: src/pages/Index/Settings/AdminCenter/CurrencyManagmentPanel.tsx:27 +#: src/tables/ColumnRenderers.tsx:262 +msgid "Currency" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/CurrencyManagmentPanel.tsx:32 +msgid "Rate" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/CurrencyManagmentPanel.tsx:44 +msgid "Exchange rates updated" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/CurrencyManagmentPanel.tsx:50 +msgid "Exchange rate update error" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/CurrencyManagmentPanel.tsx:62 +msgid "Refresh currency exchange rates" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/CurrencyManagmentPanel.tsx:99 +msgid "Last fetched" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/CurrencyManagmentPanel.tsx:100 +msgid "Base currency" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:115 msgid "Data Import" msgstr "" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:110 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:121 +msgid "Barcode Scans" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:127 msgid "Background Tasks" msgstr "" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:116 -msgid "Error Reports" -msgstr "" - -#: src/pages/Index/Settings/AdminCenter/Index.tsx:122 -msgid "Currencies" -msgstr "" - #: src/pages/Index/Settings/AdminCenter/Index.tsx:127 #~ msgid "Templates" #~ msgstr "Templates" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:140 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:133 +msgid "Error Reports" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:139 +msgid "Currencies" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:157 +msgid "Custom States" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:163 +#: src/pages/Index/Settings/AdminCenter/UnitManagmentPanel.tsx:58 msgid "Custom Units" msgstr "" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:146 -#: src/pages/part/CategoryDetail.tsx:264 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:169 +#: src/pages/part/CategoryDetail.tsx:269 msgid "Part Parameters" msgstr "" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:152 -msgid "Category Parameters" -msgstr "" - -#: src/pages/Index/Settings/AdminCenter/Index.tsx:170 -msgid "Location Types" -msgstr "" - #: src/pages/Index/Settings/AdminCenter/Index.tsx:170 #~ msgid "Location types" #~ msgstr "Location types" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:182 -#: src/tables/machine/MachineTypeTable.tsx:287 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:175 +msgid "Category Parameters" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:181 +msgid "Stocktake" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:199 +msgid "Location Types" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:211 +#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:48 +#: src/tables/machine/MachineTypeTable.tsx:308 msgid "Machines" msgstr "" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:192 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:221 msgid "Quick Actions" msgstr "" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:197 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:226 msgid "Add a new user" msgstr "" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:222 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:252 msgid "Advanced Options" msgstr "" #: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:43 -msgid "Machine types" -msgstr "" +#~ msgid "Machine types" +#~ msgstr "Machine types" #: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:53 -msgid "Machine Error Stack" +#~ msgid "Machine Error Stack" +#~ msgstr "Machine Error Stack" + +#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:56 +msgid "Machine Types" msgstr "" #: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:62 -msgid "There are no machine registry errors." +#~ msgid "There are no machine registry errors." +#~ msgstr "There are no machine registry errors." + +#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:64 +msgid "Machine Errors" msgstr "" -#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:28 -#: src/tables/settings/UserTable.tsx:119 +#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:77 +msgid "Registry Registry Errors" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:80 +msgid "There are machine registry errors" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:86 +msgid "Machine Registry Errors" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:89 +msgid "There are no machine registry errors" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:31 +#: src/tables/settings/UserTable.tsx:118 msgid "Info" msgstr "" -#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:32 -msgid "External plugins are not enabled for this InvenTree installation." -msgstr "" - #: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:33 #~ msgid "Plugin Error Stack" #~ msgstr "Plugin Error Stack" +#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:35 +msgid "External plugins are not enabled for this InvenTree installation." +msgstr "" + #: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:45 #~ msgid "Warning" #~ msgstr "Warning" @@ -3764,34 +4558,46 @@ msgstr "" #~ msgid "Changing the settings below require you to immediately restart the server. Do not change this while under active usage." #~ msgstr "Changing the settings below require you to immediately restart the server. Do not change this while under active usage." -#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:50 +#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:73 msgid "Plugin Errors" msgstr "" -#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:59 -msgid "Plugin Settings" +#: src/pages/Index/Settings/AdminCenter/ReportTemplatePanel.tsx:17 +msgid "Page Size" msgstr "" -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:53 -msgid "Background Worker Not Running" +#: src/pages/Index/Settings/AdminCenter/ReportTemplatePanel.tsx:20 +msgid "Landscape" msgstr "" -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:54 +#: src/pages/Index/Settings/AdminCenter/ReportTemplatePanel.tsx:26 +msgid "Attach to Model" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/StocktakePanel.tsx:25 +msgid "Stocktake Reports" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:30 msgid "The background task manager service is not running. Contact your system administrator." msgstr "" -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:60 -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:76 +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:35 +#~ msgid "Background Worker Not Running" +#~ msgstr "Background Worker Not Running" + +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:36 +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:45 msgid "Pending Tasks" msgstr "" -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:64 -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:84 +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:37 +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:53 msgid "Scheduled Tasks" msgstr "" -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:68 -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:92 +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:38 +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:61 msgid "Failed Tasks" msgstr "" @@ -3811,11 +4617,6 @@ msgstr "" #~ msgid "Reports" #~ msgstr "Reports" -#: src/pages/Index/Settings/AdminCenter/TemplateManagementPanel.tsx:89 -#: src/pages/build/BuildDetail.tsx:373 -#~ msgid "Report" -#~ msgstr "Report" - #: src/pages/Index/Settings/AdminCenter/TemplateManagementPanel.tsx:99 #~ msgid "Purchase order" #~ msgstr "Purchase order" @@ -3836,23 +4637,35 @@ msgstr "" #~ msgid "Stock location" #~ msgstr "Stock location" +#: src/pages/Index/Settings/AdminCenter/UnitManagmentPanel.tsx:21 +msgid "Alias" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/UnitManagmentPanel.tsx:22 +msgid "Dimensionless" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/UnitManagmentPanel.tsx:66 +msgid "All units" +msgstr "" + #: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:32 msgid "Select settings relevant for user lifecycle. More available in" msgstr "" #: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:37 -msgid "System settings" -msgstr "" +#~ msgid "System settings" +#~ msgstr "System settings" -#: src/pages/Index/Settings/SystemSettings.tsx:67 +#: src/pages/Index/Settings/SystemSettings.tsx:66 msgid "Login" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:93 +#: src/pages/Index/Settings/SystemSettings.tsx:92 msgid "Barcodes" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:115 +#: src/pages/Index/Settings/SystemSettings.tsx:116 msgid "Pricing" msgstr "" @@ -3864,64 +4677,46 @@ msgstr "" #~ msgid "Exchange Rates" #~ msgstr "Exchange Rates" -#: src/pages/Index/Settings/SystemSettings.tsx:150 +#: src/pages/Index/Settings/SystemSettings.tsx:151 msgid "Labels" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:156 -#: src/pages/Index/Settings/UserSettings.tsx:132 +#: src/pages/Index/Settings/SystemSettings.tsx:157 +#: src/pages/Index/Settings/UserSettings.tsx:133 msgid "Reporting" msgstr "" #: src/pages/Index/Settings/SystemSettings.tsx:231 -#: src/pages/part/PartDetail.tsx:682 -msgid "Stocktake" -msgstr "" - -#: src/pages/Index/Settings/SystemSettings.tsx:237 -#: src/pages/build/BuildDetail.tsx:554 -#: src/pages/build/BuildIndex.tsx:22 -#: src/pages/part/PartDetail.tsx:616 -#: src/pages/sales/SalesOrderDetail.tsx:333 +#: src/pages/build/BuildIndex.tsx:27 +#: src/pages/part/PartDetail.tsx:636 +#: src/pages/sales/SalesOrderDetail.tsx:355 msgid "Build Orders" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:318 -msgid "Switch to User Setting" -msgstr "" +#: src/pages/Index/Settings/SystemSettings.tsx:317 +#~ msgid "Switch to User Setting" +#~ msgstr "Switch to User Setting" -#: src/pages/Index/Settings/UserSettings.tsx:34 +#: src/pages/Index/Settings/UserSettings.tsx:35 msgid "Account" msgstr "" -#: src/pages/Index/Settings/UserSettings.tsx:40 +#: src/pages/Index/Settings/UserSettings.tsx:41 msgid "Security" msgstr "" -#: src/pages/Index/Settings/UserSettings.tsx:78 +#: src/pages/Index/Settings/UserSettings.tsx:79 msgid "Display Options" msgstr "" -#: src/pages/Index/Settings/UserSettings.tsx:150 -msgid "Account Settings" -msgstr "" - -#: src/pages/Index/Settings/UserSettings.tsx:158 -msgid "Switch to System Setting" -msgstr "" - -#: src/pages/Index/UserSettings.tsx:103 -#~ msgid "User Settings" -#~ msgstr "User Settings" +#: src/pages/Index/Settings/UserSettings.tsx:159 +#~ msgid "Switch to System Setting" +#~ msgstr "Switch to System Setting" #: src/pages/Logged-In.tsx:24 #~ msgid "Found an exsisting login - using it to log you in." #~ msgstr "Found an exsisting login - using it to log you in." -#: src/pages/NotFound.tsx:17 -#~ msgid "Not Found" -#~ msgstr "Not Found" - #: src/pages/NotFound.tsx:20 #~ msgid "Sorry, this page is not known or was moved." #~ msgstr "Sorry, this page is not known or was moved." @@ -3942,104 +4737,86 @@ msgstr "" #~ msgid "Build Status" #~ msgstr "Build Status" -#: src/pages/build/BuildDetail.tsx:102 -#: src/pages/part/PartDetail.tsx:150 +#: src/pages/build/BuildDetail.tsx:97 +#: src/pages/company/ManufacturerPartDetail.tsx:81 +#: src/pages/company/SupplierPartDetail.tsx:91 +#: src/pages/part/PartDetail.tsx:171 +#: src/pages/stock/StockDetail.tsx:122 #: src/tables/bom/BomTable.tsx:118 #: src/tables/bom/UsedInTable.tsx:39 -#: src/tables/build/BuildLineTable.tsx:173 -#: src/tables/build/BuildOrderTable.tsx:55 -#: src/tables/sales/SalesOrderLineItemTable.tsx:62 -#: src/tables/stock/StockItemTable.tsx:53 +#: src/tables/build/BuildAllocatedStockTable.tsx:104 +#: src/tables/build/BuildLineTable.tsx:324 +#: src/tables/build/BuildOrderTable.tsx:64 +#: src/tables/sales/SalesOrderLineItemTable.tsx:70 +#: src/tables/stock/StockItemTable.tsx:54 msgid "IPN" msgstr "" -#: src/pages/build/BuildDetail.tsx:115 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:121 -#: src/pages/sales/ReturnOrderDetail.tsx:95 -#: src/pages/sales/SalesOrderDetail.tsx:101 -#: src/tables/ColumnRenderers.tsx:121 -#: src/tables/build/BuildAllocatedStockTable.tsx:90 -#: src/tables/build/BuildLineTable.tsx:184 +#: src/pages/build/BuildDetail.tsx:110 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:115 +#: src/pages/sales/ReturnOrderDetail.tsx:86 +#: src/pages/sales/SalesOrderDetail.tsx:95 +#: src/tables/ColumnRenderers.tsx:132 +#: src/tables/build/BuildAllocatedStockTable.tsx:111 +#: src/tables/build/BuildLineTable.tsx:335 msgid "Reference" msgstr "" -#: src/pages/build/BuildDetail.tsx:121 -#: src/pages/company/CompanyDetail.tsx:90 -#: src/pages/company/ManufacturerPartDetail.tsx:83 -#: src/pages/company/SupplierPartDetail.tsx:96 -#: src/pages/part/CategoryDetail.tsx:101 -#: src/pages/part/PartDetail.tsx:157 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:142 -#: src/pages/sales/ReturnOrderDetail.tsx:115 -#: src/pages/sales/SalesOrderDetail.tsx:121 -#: src/pages/stock/LocationDetail.tsx:109 -#: src/tables/ColumnRenderers.tsx:81 -#: src/tables/bom/UsedInTable.tsx:44 -#: src/tables/build/BuildAllocatedStockTable.tsx:70 -#: src/tables/build/BuildLineTable.tsx:178 -#: src/tables/machine/MachineTypeTable.tsx:69 -#: src/tables/machine/MachineTypeTable.tsx:112 -#: src/tables/machine/MachineTypeTable.tsx:219 -#: src/tables/machine/MachineTypeTable.tsx:323 -#: src/tables/part/RelatedPartTable.tsx:64 -#: src/tables/plugin/PluginListTable.tsx:129 -#: src/tables/plugin/PluginListTable.tsx:276 -#: src/tables/sales/SalesOrderAllocationTable.tsx:56 -#: src/tables/sales/SalesOrderLineItemTable.tsx:67 -#: src/tables/stock/LocationTypesTable.tsx:74 -msgid "Description" -msgstr "" - -#: src/pages/build/BuildDetail.tsx:129 +#: src/pages/build/BuildDetail.tsx:124 msgid "Parent Build" msgstr "" -#: src/pages/build/BuildDetail.tsx:140 +#: src/pages/build/BuildDetail.tsx:135 msgid "Build Quantity" msgstr "" -#: src/pages/build/BuildDetail.tsx:148 -#: src/pages/build/BuildDetail.tsx:274 +#: src/pages/build/BuildDetail.tsx:143 +#: src/pages/build/BuildDetail.tsx:277 msgid "Completed Outputs" msgstr "" -#: src/pages/build/BuildDetail.tsx:165 -#: src/tables/build/BuildOrderTable.tsx:151 +#: src/pages/build/BuildDetail.tsx:160 +#: src/tables/build/BuildOrderTable.tsx:142 msgid "Issued By" msgstr "" -#: src/pages/build/BuildDetail.tsx:172 -#: src/pages/part/PartDetail.tsx:365 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:220 -#: src/pages/sales/ReturnOrderDetail.tsx:199 -#: src/pages/sales/SalesOrderDetail.tsx:208 -#: src/tables/build/BuildOrderTable.tsx:157 -#: src/tables/purchasing/PurchaseOrderTable.tsx:75 -#: src/tables/sales/ReturnOrderTable.tsx:66 -#: src/tables/sales/SalesOrderTable.tsx:73 +#: src/pages/build/BuildDetail.tsx:167 +#: src/pages/part/PartDetail.tsx:406 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:244 +#: src/pages/sales/ReturnOrderDetail.tsx:216 +#: src/pages/sales/SalesOrderDetail.tsx:226 +#: src/tables/build/BuildOrderTable.tsx:148 +#: src/tables/purchasing/PurchaseOrderTable.tsx:76 +#: src/tables/sales/ReturnOrderTable.tsx:74 +#: src/tables/sales/SalesOrderTable.tsx:74 msgid "Responsible" msgstr "" -#: src/pages/build/BuildDetail.tsx:179 -#: src/tables/settings/PendingTasksTable.tsx:32 +#: src/pages/build/BuildDetail.tsx:174 +#: src/tables/settings/PendingTasksTable.tsx:36 msgid "Created" msgstr "" +#: src/pages/build/BuildDetail.tsx:181 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:229 +#: src/pages/sales/ReturnOrderDetail.tsx:201 +#: src/pages/sales/SalesOrderDetail.tsx:212 +#: src/tables/ColumnRenderers.tsx:226 +#: src/tables/part/PartPurchaseOrdersTable.tsx:100 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:135 +#: src/tables/sales/SalesOrderLineItemTable.tsx:107 +msgid "Target Date" +msgstr "" + #: src/pages/build/BuildDetail.tsx:185 #: src/pages/part/PartDetail.tsx:269 #: src/pages/stock/StockDetail.tsx:150 #~ msgid "View part barcode" #~ msgstr "View part barcode" -#: src/pages/build/BuildDetail.tsx:186 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:213 -#: src/pages/sales/ReturnOrderDetail.tsx:192 -#: src/pages/sales/SalesOrderDetail.tsx:201 -#: src/tables/ColumnRenderers.tsx:212 -#: src/tables/part/PartPurchaseOrdersTable.tsx:99 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:110 -#: src/tables/sales/SalesOrderLineItemTable.tsx:99 -msgid "Target Date" +#: src/pages/build/BuildDetail.tsx:188 +#: src/tables/sales/SalesOrderLineItemTable.tsx:281 +msgid "Completed" msgstr "" #: src/pages/build/BuildDetail.tsx:190 @@ -4047,10 +4824,6 @@ msgstr "" #~ msgid "Link custom barcode to part" #~ msgstr "Link custom barcode to part" -#: src/pages/build/BuildDetail.tsx:193 -msgid "Completed" -msgstr "" - #: src/pages/build/BuildDetail.tsx:196 #: src/pages/part/PartDetail.tsx:280 #~ msgid "Unlink custom barcode from part" @@ -4060,15 +4833,11 @@ msgstr "" #~ msgid "Build Order updated" #~ msgstr "Build Order updated" -#: src/pages/build/BuildDetail.tsx:205 -msgid "Source Location" -msgstr "" - -#: src/pages/build/BuildDetail.tsx:206 +#: src/pages/build/BuildDetail.tsx:209 msgid "Any location" msgstr "" -#: src/pages/build/BuildDetail.tsx:213 +#: src/pages/build/BuildDetail.tsx:216 msgid "Destination Location" msgstr "" @@ -4084,206 +4853,182 @@ msgstr "" #~ msgid "Delete build order" #~ msgstr "Delete build order" -#: src/pages/build/BuildDetail.tsx:251 +#: src/pages/build/BuildDetail.tsx:254 msgid "Build Details" msgstr "" -#: src/pages/build/BuildDetail.tsx:257 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:258 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:267 -#: src/pages/sales/ReturnOrderDetail.tsx:130 -#: src/pages/sales/ReturnOrderDetail.tsx:237 -#: src/pages/sales/ReturnOrderDetail.tsx:246 -#: src/pages/sales/SalesOrderDetail.tsx:272 -#: src/pages/sales/SalesOrderDetail.tsx:281 +#: src/pages/build/BuildDetail.tsx:260 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:282 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:291 +#: src/pages/sales/ReturnOrderDetail.tsx:122 +#: src/pages/sales/ReturnOrderDetail.tsx:254 +#: src/pages/sales/ReturnOrderDetail.tsx:263 +#: src/pages/sales/SalesOrderDetail.tsx:294 +#: src/pages/sales/SalesOrderDetail.tsx:303 msgid "Line Items" msgstr "" -#: src/pages/build/BuildDetail.tsx:267 +#: src/pages/build/BuildDetail.tsx:266 msgid "Incomplete Outputs" msgstr "" -#: src/pages/build/BuildDetail.tsx:289 -#: src/pages/sales/SalesOrderDetail.tsx:319 +#: src/pages/build/BuildDetail.tsx:292 +#: src/pages/sales/SalesOrderDetail.tsx:341 msgid "Allocated Stock" msgstr "" -#: src/pages/build/BuildDetail.tsx:299 +#: src/pages/build/BuildDetail.tsx:302 msgid "Consumed Stock" msgstr "" -#: src/pages/build/BuildDetail.tsx:313 +#: src/pages/build/BuildDetail.tsx:316 msgid "Child Build Orders" msgstr "" #: src/pages/build/BuildDetail.tsx:326 -#: src/tables/build/BuildOutputTable.tsx:384 -#: src/tables/stock/StockItemTestResultTable.tsx:150 +#: src/tables/build/BuildOutputTable.tsx:532 +#: src/tables/stock/StockItemTestResultTable.tsx:156 msgid "Test Results" msgstr "" #: src/pages/build/BuildDetail.tsx:337 -#: src/pages/part/PartDetail.tsx:699 +#: src/pages/part/PartDetail.tsx:740 msgid "Test Statistics" msgstr "" -#: src/pages/build/BuildDetail.tsx:351 -#: src/pages/company/CompanyDetail.tsx:259 -#: src/pages/company/ManufacturerPartDetail.tsx:179 -#: src/pages/part/PartDetail.tsx:721 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:309 -#: src/pages/sales/ReturnOrderDetail.tsx:274 -#: src/pages/sales/SalesOrderDetail.tsx:343 -#: src/pages/stock/StockDetail.tsx:385 -msgid "Attachments" -msgstr "" - -#: src/pages/build/BuildDetail.tsx:359 -#: src/pages/company/CompanyDetail.tsx:270 -#: src/pages/company/ManufacturerPartDetail.tsx:190 -#: src/pages/company/SupplierPartDetail.tsx:257 -#: src/pages/part/PartDetail.tsx:729 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:320 -#: src/pages/sales/ReturnOrderDetail.tsx:285 -#: src/pages/sales/SalesOrderDetail.tsx:354 -#: src/pages/stock/StockDetail.tsx:396 -#: src/tables/build/BuildOrderTestTable.tsx:142 -#: src/tables/stock/StockTrackingTable.tsx:189 -msgid "Notes" +#: src/pages/build/BuildDetail.tsx:365 +msgid "Edit Build Order" msgstr "" #: src/pages/build/BuildDetail.tsx:368 #~ msgid "Reporting Actions" #~ msgstr "Reporting Actions" +#: src/pages/build/BuildDetail.tsx:372 +#: src/tables/build/BuildOrderTable.tsx:173 +#: src/tables/build/BuildOrderTable.tsx:188 +msgid "Add Build Order" +msgstr "" + #: src/pages/build/BuildDetail.tsx:374 #~ msgid "Print build report" #~ msgstr "Print build report" -#: src/pages/build/BuildDetail.tsx:377 -msgid "Edit Build Order" -msgstr "" - -#: src/pages/build/BuildDetail.tsx:384 -#: src/tables/build/BuildOrderTable.tsx:172 -#: src/tables/build/BuildOrderTable.tsx:187 -msgid "Add Build Order" -msgstr "" - -#: src/pages/build/BuildDetail.tsx:398 +#: src/pages/build/BuildDetail.tsx:386 msgid "Cancel Build Order" msgstr "" -#: src/pages/build/BuildDetail.tsx:400 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:348 -#: src/pages/sales/SalesOrderDetail.tsx:380 +#: src/pages/build/BuildDetail.tsx:388 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:357 +#: src/pages/sales/ReturnOrderDetail.tsx:354 +#: src/pages/sales/SalesOrderDetail.tsx:387 msgid "Order cancelled" msgstr "" -#: src/pages/build/BuildDetail.tsx:401 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:347 -#: src/pages/sales/ReturnOrderDetail.tsx:346 -#: src/pages/sales/SalesOrderDetail.tsx:379 +#: src/pages/build/BuildDetail.tsx:389 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:356 +#: src/pages/sales/ReturnOrderDetail.tsx:353 +#: src/pages/sales/SalesOrderDetail.tsx:386 msgid "Cancel this order" msgstr "" -#: src/pages/build/BuildDetail.tsx:410 +#: src/pages/build/BuildDetail.tsx:398 msgid "Hold Build Order" msgstr "" -#: src/pages/build/BuildDetail.tsx:412 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:355 -#: src/pages/sales/ReturnOrderDetail.tsx:354 -#: src/pages/sales/SalesOrderDetail.tsx:387 +#: src/pages/build/BuildDetail.tsx:400 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:364 +#: src/pages/sales/ReturnOrderDetail.tsx:361 +#: src/pages/sales/SalesOrderDetail.tsx:394 msgid "Place this order on hold" msgstr "" -#: src/pages/build/BuildDetail.tsx:413 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:356 -#: src/pages/sales/ReturnOrderDetail.tsx:355 -#: src/pages/sales/SalesOrderDetail.tsx:388 +#: src/pages/build/BuildDetail.tsx:401 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:365 +#: src/pages/sales/ReturnOrderDetail.tsx:362 +#: src/pages/sales/SalesOrderDetail.tsx:395 msgid "Order placed on hold" msgstr "" -#: src/pages/build/BuildDetail.tsx:418 +#: src/pages/build/BuildDetail.tsx:406 msgid "Issue Build Order" msgstr "" -#: src/pages/build/BuildDetail.tsx:420 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:339 -#: src/pages/sales/ReturnOrderDetail.tsx:338 -#: src/pages/sales/SalesOrderDetail.tsx:371 +#: src/pages/build/BuildDetail.tsx:408 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:348 +#: src/pages/sales/ReturnOrderDetail.tsx:345 +#: src/pages/sales/SalesOrderDetail.tsx:378 msgid "Issue this order" msgstr "" -#: src/pages/build/BuildDetail.tsx:421 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:340 -#: src/pages/sales/ReturnOrderDetail.tsx:339 -#: src/pages/sales/SalesOrderDetail.tsx:372 +#: src/pages/build/BuildDetail.tsx:409 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:349 +#: src/pages/sales/ReturnOrderDetail.tsx:346 +#: src/pages/sales/SalesOrderDetail.tsx:379 msgid "Order issued" msgstr "" -#: src/pages/build/BuildDetail.tsx:426 +#: src/pages/build/BuildDetail.tsx:414 msgid "Complete Build Order" msgstr "" -#: src/pages/build/BuildDetail.tsx:428 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:368 -#: src/pages/sales/ReturnOrderDetail.tsx:362 -#: src/pages/sales/SalesOrderDetail.tsx:395 +#: src/pages/build/BuildDetail.tsx:416 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:377 +#: src/pages/sales/ReturnOrderDetail.tsx:369 +#: src/pages/sales/SalesOrderDetail.tsx:402 msgid "Mark this order as complete" msgstr "" -#: src/pages/build/BuildDetail.tsx:429 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:362 -#: src/pages/sales/ReturnOrderDetail.tsx:363 -#: src/pages/sales/SalesOrderDetail.tsx:396 +#: src/pages/build/BuildDetail.tsx:417 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:371 +#: src/pages/sales/ReturnOrderDetail.tsx:370 +#: src/pages/sales/SalesOrderDetail.tsx:403 msgid "Order completed" msgstr "" -#: src/pages/build/BuildDetail.tsx:460 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:391 -#: src/pages/sales/ReturnOrderDetail.tsx:392 -#: src/pages/sales/SalesOrderDetail.tsx:425 +#: src/pages/build/BuildDetail.tsx:448 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:400 +#: src/pages/sales/ReturnOrderDetail.tsx:399 +#: src/pages/sales/SalesOrderDetail.tsx:432 msgid "Issue Order" msgstr "" -#: src/pages/build/BuildDetail.tsx:467 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:398 -#: src/pages/sales/ReturnOrderDetail.tsx:399 -#: src/pages/sales/SalesOrderDetail.tsx:439 +#: src/pages/build/BuildDetail.tsx:455 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:407 +#: src/pages/sales/ReturnOrderDetail.tsx:406 +#: src/pages/sales/SalesOrderDetail.tsx:446 msgid "Complete Order" msgstr "" -#: src/pages/build/BuildDetail.tsx:496 +#: src/pages/build/BuildDetail.tsx:473 msgid "Build Order Actions" msgstr "" -#: src/pages/build/BuildDetail.tsx:502 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:432 -#: src/pages/sales/ReturnOrderDetail.tsx:433 -#: src/pages/sales/SalesOrderDetail.tsx:474 +#: src/pages/build/BuildDetail.tsx:478 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:429 +#: src/pages/sales/ReturnOrderDetail.tsx:428 +#: src/pages/sales/SalesOrderDetail.tsx:469 msgid "Edit order" msgstr "" -#: src/pages/build/BuildDetail.tsx:506 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:440 -#: src/pages/sales/ReturnOrderDetail.tsx:439 -#: src/pages/sales/SalesOrderDetail.tsx:479 +#: src/pages/build/BuildDetail.tsx:482 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:437 +#: src/pages/sales/ReturnOrderDetail.tsx:434 +#: src/pages/sales/SalesOrderDetail.tsx:474 msgid "Duplicate order" msgstr "" -#: src/pages/build/BuildDetail.tsx:510 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:443 -#: src/pages/sales/ReturnOrderDetail.tsx:444 -#: src/pages/sales/SalesOrderDetail.tsx:482 +#: src/pages/build/BuildDetail.tsx:486 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:440 +#: src/pages/sales/ReturnOrderDetail.tsx:439 +#: src/pages/sales/SalesOrderDetail.tsx:477 msgid "Hold order" msgstr "" -#: src/pages/build/BuildDetail.tsx:515 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:448 -#: src/pages/sales/ReturnOrderDetail.tsx:449 -#: src/pages/sales/SalesOrderDetail.tsx:487 +#: src/pages/build/BuildDetail.tsx:491 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:445 +#: src/pages/sales/ReturnOrderDetail.tsx:444 +#: src/pages/sales/SalesOrderDetail.tsx:482 msgid "Cancel order" msgstr "" @@ -4295,56 +5040,60 @@ msgstr "" #~ msgid "New Build Order" #~ msgstr "New Build Order" -#: src/pages/company/CompanyDetail.tsx:104 +#: src/pages/company/CompanyDetail.tsx:95 +msgid "Website" +msgstr "" + +#: src/pages/company/CompanyDetail.tsx:103 msgid "Phone Number" msgstr "" -#: src/pages/company/CompanyDetail.tsx:111 +#: src/pages/company/CompanyDetail.tsx:110 msgid "Email Address" msgstr "" -#: src/pages/company/CompanyDetail.tsx:121 +#: src/pages/company/CompanyDetail.tsx:120 msgid "Default Currency" msgstr "" -#: src/pages/company/CompanyDetail.tsx:126 +#: src/pages/company/CompanyDetail.tsx:125 #: src/pages/company/SupplierDetail.tsx:8 -#: src/pages/company/SupplierPartDetail.tsx:120 -#: src/pages/company/SupplierPartDetail.tsx:206 -#: src/pages/company/SupplierPartDetail.tsx:351 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:136 -#: src/tables/company/CompanyTable.tsx:100 +#: src/pages/company/SupplierPartDetail.tsx:125 +#: src/pages/company/SupplierPartDetail.tsx:218 +#: src/pages/company/SupplierPartDetail.tsx:340 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:130 +#: src/tables/company/CompanyTable.tsx:101 #: src/tables/part/PartPurchaseOrdersTable.tsx:42 -#: src/tables/purchasing/PurchaseOrderTable.tsx:88 +#: src/tables/purchasing/PurchaseOrderTable.tsx:89 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:36 msgid "Supplier" msgstr "" -#: src/pages/company/CompanyDetail.tsx:132 +#: src/pages/company/CompanyDetail.tsx:131 #: src/pages/company/ManufacturerDetail.tsx:8 -#: src/pages/company/ManufacturerPartDetail.tsx:101 -#: src/pages/company/ManufacturerPartDetail.tsx:267 -#: src/pages/company/SupplierPartDetail.tsx:135 -#: src/tables/company/CompanyTable.tsx:105 +#: src/pages/company/ManufacturerPartDetail.tsx:100 +#: src/pages/company/ManufacturerPartDetail.tsx:262 +#: src/pages/company/SupplierPartDetail.tsx:147 +#: src/tables/company/CompanyTable.tsx:106 msgid "Manufacturer" msgstr "" -#: src/pages/company/CompanyDetail.tsx:138 +#: src/pages/company/CompanyDetail.tsx:137 #: src/pages/company/CustomerDetail.tsx:8 -#: src/pages/part/pricing/SaleHistoryPanel.tsx:29 -#: src/pages/sales/ReturnOrderDetail.tsx:109 -#: src/pages/sales/SalesOrderDetail.tsx:115 -#: src/pages/stock/StockDetail.tsx:230 -#: src/tables/company/CompanyTable.tsx:110 -#: src/tables/sales/ReturnOrderTable.tsx:78 -#: src/tables/sales/SalesOrderTable.tsx:108 -#: src/tables/stock/StockTrackingTable.tsx:140 +#: src/pages/part/pricing/SaleHistoryPanel.tsx:31 +#: src/pages/sales/ReturnOrderDetail.tsx:101 +#: src/pages/sales/SalesOrderDetail.tsx:110 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:100 +#: src/pages/stock/StockDetail.tsx:271 +#: src/tables/company/CompanyTable.tsx:111 +#: src/tables/sales/ReturnOrderTable.tsx:97 +#: src/tables/sales/SalesOrderTable.tsx:121 +#: src/tables/stock/StockTrackingTable.tsx:144 msgid "Customer" msgstr "" #: src/pages/company/CompanyDetail.tsx:172 -#: src/tables/stock/StockTrackingTable.tsx:183 -msgid "Details" +msgid "Company Details" msgstr "" #: src/pages/company/CompanyDetail.tsx:175 @@ -4363,140 +5112,150 @@ msgstr "" #~ msgid "Delete company" #~ msgstr "Delete company" -#: src/pages/company/CompanyDetail.tsx:232 +#: src/pages/company/CompanyDetail.tsx:234 msgid "Assigned Stock" msgstr "" -#: src/pages/company/CompanyDetail.tsx:290 -#: src/tables/company/CompanyTable.tsx:86 +#: src/pages/company/CompanyDetail.tsx:273 +#: src/tables/company/CompanyTable.tsx:87 msgid "Edit Company" msgstr "" -#: src/pages/company/CompanyDetail.tsx:298 +#: src/pages/company/CompanyDetail.tsx:281 msgid "Delete Company" msgstr "" -#: src/pages/company/CompanyDetail.tsx:306 +#: src/pages/company/CompanyDetail.tsx:289 msgid "Company Actions" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:76 -#: src/pages/company/SupplierPartDetail.tsx:89 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:128 +#: src/pages/company/ManufacturerPartDetail.tsx:74 +#: src/pages/company/SupplierPartDetail.tsx:84 msgid "Internal Part" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:91 -#: src/pages/company/SupplierPartDetail.tsx:103 -msgid "External Link" -msgstr "" - -#: src/pages/company/ManufacturerPartDetail.tsx:109 -#: src/pages/company/SupplierPartDetail.tsx:144 -#: src/tables/purchasing/ManufacturerPartTable.tsx:56 +#: src/pages/company/ManufacturerPartDetail.tsx:108 +#: src/pages/company/SupplierPartDetail.tsx:156 +#: src/tables/purchasing/ManufacturerPartTable.tsx:58 msgid "Manufacturer Part Number" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:138 +#: src/pages/company/ManufacturerPartDetail.tsx:125 +#: src/pages/company/SupplierPartDetail.tsx:108 +msgid "External Link" +msgstr "" + +#: src/pages/company/ManufacturerPartDetail.tsx:146 +#: src/pages/company/SupplierPartDetail.tsx:215 +#: src/pages/part/PartDetail.tsx:576 +msgid "Part Details" +msgstr "" + +#: src/pages/company/ManufacturerPartDetail.tsx:149 msgid "Manufacturer Details" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:147 +#: src/pages/company/ManufacturerPartDetail.tsx:158 msgid "Manufacturer Part Details" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:153 -#: src/pages/part/PartDetail.tsx:532 +#: src/pages/company/ManufacturerPartDetail.tsx:164 +#: src/pages/part/PartDetail.tsx:582 msgid "Parameters" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:165 -#: src/pages/part/PartDetail.tsx:649 +#: src/pages/company/ManufacturerPartDetail.tsx:176 +#: src/pages/part/PartDetail.tsx:669 #: src/pages/purchasing/PurchasingIndex.tsx:31 msgid "Suppliers" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:208 -#: src/tables/purchasing/ManufacturerPartTable.tsx:84 +#: src/pages/company/ManufacturerPartDetail.tsx:204 +#: src/tables/purchasing/ManufacturerPartTable.tsx:86 msgid "Edit Manufacturer Part" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:215 -#: src/tables/purchasing/ManufacturerPartTable.tsx:72 -#: src/tables/purchasing/ManufacturerPartTable.tsx:103 +#: src/pages/company/ManufacturerPartDetail.tsx:211 +#: src/tables/purchasing/ManufacturerPartTable.tsx:74 +#: src/tables/purchasing/ManufacturerPartTable.tsx:106 msgid "Add Manufacturer Part" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:227 -#: src/tables/purchasing/ManufacturerPartTable.tsx:92 +#: src/pages/company/ManufacturerPartDetail.tsx:223 +#: src/tables/purchasing/ManufacturerPartTable.tsx:94 msgid "Delete Manufacturer Part" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:240 +#: src/pages/company/ManufacturerPartDetail.tsx:236 msgid "Manufacturer Part Actions" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:281 +#: src/pages/company/ManufacturerPartDetail.tsx:276 msgid "ManufacturerPart" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:163 -#: src/tables/part/PartPurchaseOrdersTable.tsx:71 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:156 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:197 -#: src/tables/purchasing/SupplierPartTable.tsx:131 +#: src/pages/company/SupplierPartDetail.tsx:99 +msgid "Part Description" +msgstr "" + +#: src/pages/company/SupplierPartDetail.tsx:175 +#: src/tables/part/PartPurchaseOrdersTable.tsx:72 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:162 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:203 +#: src/tables/purchasing/SupplierPartTable.tsx:133 msgid "Pack Quantity" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:174 +#: src/pages/company/SupplierPartDetail.tsx:186 msgid "Supplier Availability" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:181 +#: src/pages/company/SupplierPartDetail.tsx:193 msgid "Availability Updated" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:208 +#: src/pages/company/SupplierPartDetail.tsx:220 msgid "Availability" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:217 +#: src/pages/company/SupplierPartDetail.tsx:229 msgid "Supplier Part Details" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:223 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:296 +#: src/pages/company/SupplierPartDetail.tsx:235 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:320 msgid "Received Stock" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:247 -#: src/pages/part/PartPricingPanel.tsx:111 -#: src/pages/part/pricing/PricingOverviewPanel.tsx:121 +#: src/pages/company/SupplierPartDetail.tsx:259 +#: src/pages/part/PartPricingPanel.tsx:116 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:195 msgid "Supplier Pricing" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:294 +#: src/pages/company/SupplierPartDetail.tsx:284 msgid "Supplier Part Actions" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:319 -#: src/tables/purchasing/SupplierPartTable.tsx:210 +#: src/pages/company/SupplierPartDetail.tsx:308 +#: src/tables/purchasing/SupplierPartTable.tsx:213 msgid "Edit Supplier Part" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:327 -#: src/tables/purchasing/SupplierPartTable.tsx:218 +#: src/pages/company/SupplierPartDetail.tsx:316 +#: src/tables/purchasing/SupplierPartTable.tsx:221 msgid "Delete Supplier Part" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:335 -#: src/tables/purchasing/SupplierPartTable.tsx:163 +#: src/pages/company/SupplierPartDetail.tsx:324 +#: src/tables/purchasing/SupplierPartTable.tsx:165 msgid "Add Supplier Part" msgstr "" #: src/pages/part/CategoryDetail.tsx:93 -#: src/pages/stock/LocationDetail.tsx:101 -#: src/tables/settings/ErrorTable.tsx:36 +#: src/pages/stock/LocationDetail.tsx:95 +#: src/tables/settings/ErrorTable.tsx:63 +#: src/tables/settings/ErrorTable.tsx:108 msgid "Path" msgstr "" @@ -4504,357 +5263,357 @@ msgstr "" msgid "Parent Category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:126 +#: src/pages/part/CategoryDetail.tsx:132 msgid "Subcategories" msgstr "" -#: src/pages/part/CategoryDetail.tsx:133 -#: src/pages/stock/LocationDetail.tsx:141 -#: src/tables/part/PartCategoryTable.tsx:73 +#: src/pages/part/CategoryDetail.tsx:139 +#: src/pages/stock/LocationDetail.tsx:135 +#: src/tables/part/PartCategoryTable.tsx:85 #: src/tables/stock/StockLocationTable.tsx:49 msgid "Structural" msgstr "" -#: src/pages/part/CategoryDetail.tsx:139 +#: src/pages/part/CategoryDetail.tsx:145 msgid "Parent default location" msgstr "" -#: src/pages/part/CategoryDetail.tsx:146 +#: src/pages/part/CategoryDetail.tsx:152 msgid "Default location" msgstr "" -#: src/pages/part/CategoryDetail.tsx:157 +#: src/pages/part/CategoryDetail.tsx:163 msgid "Top level part category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:167 -#: src/pages/part/CategoryDetail.tsx:221 -#: src/tables/part/PartCategoryTable.tsx:102 +#: src/pages/part/CategoryDetail.tsx:173 +#: src/pages/part/CategoryDetail.tsx:226 +#: src/tables/part/PartCategoryTable.tsx:118 msgid "Edit Part Category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:180 -#: src/pages/stock/LocationDetail.tsx:233 +#: src/pages/part/CategoryDetail.tsx:186 +#: src/pages/stock/LocationDetail.tsx:227 msgid "Delete items" msgstr "" -#: src/pages/part/CategoryDetail.tsx:188 -#: src/pages/part/CategoryDetail.tsx:226 +#: src/pages/part/CategoryDetail.tsx:194 +#: src/pages/part/CategoryDetail.tsx:231 msgid "Delete Part Category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:191 +#: src/pages/part/CategoryDetail.tsx:197 msgid "Parts Action" msgstr "" -#: src/pages/part/CategoryDetail.tsx:192 +#: src/pages/part/CategoryDetail.tsx:198 msgid "Action for parts in this category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:197 +#: src/pages/part/CategoryDetail.tsx:203 msgid "Child Categories Action" msgstr "" -#: src/pages/part/CategoryDetail.tsx:198 +#: src/pages/part/CategoryDetail.tsx:204 msgid "Action for child categories in this category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:216 +#: src/pages/part/CategoryDetail.tsx:222 msgid "Category Actions" msgstr "" -#: src/pages/part/CategoryDetail.tsx:238 +#: src/pages/part/CategoryDetail.tsx:243 msgid "Category Details" msgstr "" -#: src/pages/part/PartDetail.tsx:163 -msgid "Variant of" +#: src/pages/part/PartAllocationPanel.tsx:23 +#: src/pages/stock/StockDetail.tsx:443 +#: src/tables/part/PartTable.tsx:99 +msgid "Build Order Allocations" msgstr "" -#: src/pages/part/PartDetail.tsx:170 -msgid "Revision of" -msgstr "" - -#: src/pages/part/PartDetail.tsx:177 -#: src/tables/stock/StockItemTable.tsx:58 -msgid "Revision" +#: src/pages/part/PartAllocationPanel.tsx:40 +#: src/pages/stock/StockDetail.tsx:458 +#: src/tables/part/PartTable.tsx:108 +msgid "Sales Order Allocations" msgstr "" #: src/pages/part/PartDetail.tsx:184 +msgid "Variant of" +msgstr "" + +#: src/pages/part/PartDetail.tsx:191 +msgid "Revision of" +msgstr "" + +#: src/pages/part/PartDetail.tsx:198 +#: src/tables/stock/StockItemTable.tsx:59 +msgid "Revision" +msgstr "" + +#: src/pages/part/PartDetail.tsx:205 #: src/tables/notifications/NotificationsTable.tsx:31 #: src/tables/part/PartCategoryTemplateTable.tsx:67 msgid "Category" msgstr "" -#: src/pages/part/PartDetail.tsx:190 +#: src/pages/part/PartDetail.tsx:211 msgid "Default Location" msgstr "" -#: src/pages/part/PartDetail.tsx:197 +#: src/pages/part/PartDetail.tsx:218 msgid "Category Default Location" msgstr "" -#: src/pages/part/PartDetail.tsx:204 +#: src/pages/part/PartDetail.tsx:225 #: src/tables/purchasing/ManufacturerPartParameterTable.tsx:44 msgid "Units" msgstr "" -#: src/pages/part/PartDetail.tsx:211 -#: src/tables/settings/PendingTasksTable.tsx:42 +#: src/pages/part/PartDetail.tsx:232 +#: src/tables/settings/PendingTasksTable.tsx:46 msgid "Keywords" msgstr "" -#: src/pages/part/PartDetail.tsx:218 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:186 -#: src/pages/sales/ReturnOrderDetail.tsx:165 -#: src/pages/sales/SalesOrderDetail.tsx:174 -msgid "Link" -msgstr "" - -#: src/pages/part/PartDetail.tsx:236 +#: src/pages/part/PartDetail.tsx:257 #: src/tables/bom/BomTable.tsx:320 -#: src/tables/build/BuildLineTable.tsx:155 +#: src/tables/build/BuildLineTable.tsx:286 #: src/tables/part/PartTable.tsx:288 -#: src/tables/sales/SalesOrderLineItemTable.tsx:103 +#: src/tables/sales/SalesOrderLineItemTable.tsx:111 msgid "Available Stock" msgstr "" -#: src/pages/part/PartDetail.tsx:243 +#: src/pages/part/PartDetail.tsx:264 msgid "Variant Stock" msgstr "" -#: src/pages/part/PartDetail.tsx:251 +#: src/pages/part/PartDetail.tsx:272 msgid "Minimum Stock" msgstr "" -#: src/pages/part/PartDetail.tsx:257 +#: src/pages/part/PartDetail.tsx:278 #: src/tables/bom/BomTable.tsx:237 -#: src/tables/build/BuildLineTable.tsx:117 -#: src/tables/sales/SalesOrderLineItemTable.tsx:141 +#: src/tables/build/BuildLineTable.tsx:248 +#: src/tables/sales/SalesOrderLineItemTable.tsx:149 msgid "On order" msgstr "" -#: src/pages/part/PartDetail.tsx:266 +#: src/pages/part/PartDetail.tsx:285 +msgid "Required for Orders" +msgstr "" + +#: src/pages/part/PartDetail.tsx:294 msgid "Allocated to Build Orders" msgstr "" -#: src/pages/part/PartDetail.tsx:274 +#: src/pages/part/PartDetail.tsx:305 msgid "Allocated to Sales Orders" msgstr "" -#: src/pages/part/PartDetail.tsx:281 -#: src/tables/bom/BomTable.tsx:261 -#: src/tables/bom/BomTable.tsx:293 -msgid "Can Build" -msgstr "" - -#: src/pages/part/PartDetail.tsx:288 -#: src/tables/bom/BomTable.tsx:245 -#: src/tables/part/PartTable.tsx:92 -msgid "Building" -msgstr "" - -#: src/pages/part/PartDetail.tsx:302 -#: src/pages/part/PartDetail.tsx:873 -#: src/tables/part/ParametricPartTable.tsx:228 -#: src/tables/part/PartTable.tsx:184 -msgid "Locked" -msgstr "" - -#: src/pages/part/PartDetail.tsx:308 -msgid "Template Part" -msgstr "" - #: src/pages/part/PartDetail.tsx:310 #~ msgid "Edit part" #~ msgstr "Edit part" -#: src/pages/part/PartDetail.tsx:313 -#: src/tables/bom/BomTable.tsx:315 -msgid "Assembled Part" +#: src/pages/part/PartDetail.tsx:315 +#: src/tables/bom/BomTable.tsx:261 +#: src/tables/bom/BomTable.tsx:293 +msgid "Can Build" msgstr "" -#: src/pages/part/PartDetail.tsx:318 -msgid "Component Part" +#: src/pages/part/PartDetail.tsx:322 +#: src/pages/part/PartDetail.tsx:905 +#: src/pages/stock/StockDetail.tsx:766 +#: src/tables/build/BuildOrderTestTable.tsx:220 +#: src/tables/stock/StockItemTable.tsx:334 +msgid "In Production" msgstr "" #: src/pages/part/PartDetail.tsx:322 #~ msgid "Duplicate part" #~ msgstr "Duplicate part" -#: src/pages/part/PartDetail.tsx:323 -#: src/tables/bom/BomTable.tsx:305 -msgid "Testable Part" -msgstr "" - #: src/pages/part/PartDetail.tsx:327 #~ msgid "Delete part" #~ msgstr "Delete part" -#: src/pages/part/PartDetail.tsx:329 +#: src/pages/part/PartDetail.tsx:336 +#: src/tables/part/ParametricPartTable.tsx:228 +#: src/tables/part/PartTable.tsx:184 +msgid "Locked" +msgstr "" + +#: src/pages/part/PartDetail.tsx:342 +msgid "Template Part" +msgstr "" + +#: src/pages/part/PartDetail.tsx:347 +#: src/tables/bom/BomTable.tsx:315 +msgid "Assembled Part" +msgstr "" + +#: src/pages/part/PartDetail.tsx:352 +msgid "Component Part" +msgstr "" + +#: src/pages/part/PartDetail.tsx:357 +#: src/tables/bom/BomTable.tsx:305 +msgid "Testable Part" +msgstr "" + +#: src/pages/part/PartDetail.tsx:363 #: src/tables/bom/BomTable.tsx:310 msgid "Trackable Part" msgstr "" -#: src/pages/part/PartDetail.tsx:334 +#: src/pages/part/PartDetail.tsx:368 msgid "Purchaseable Part" msgstr "" -#: src/pages/part/PartDetail.tsx:339 +#: src/pages/part/PartDetail.tsx:374 msgid "Saleable Part" msgstr "" -#: src/pages/part/PartDetail.tsx:344 +#: src/pages/part/PartDetail.tsx:379 msgid "Virtual Part" msgstr "" -#: src/pages/part/PartDetail.tsx:352 -#: src/tables/ColumnRenderers.tsx:220 +#: src/pages/part/PartDetail.tsx:393 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:215 +#: src/pages/sales/ReturnOrderDetail.tsx:185 +#: src/pages/sales/SalesOrderDetail.tsx:197 +#: src/tables/ColumnRenderers.tsx:234 msgid "Creation Date" msgstr "" -#: src/pages/part/PartDetail.tsx:357 +#: src/pages/part/PartDetail.tsx:398 msgid "Created By" msgstr "" -#: src/pages/part/PartDetail.tsx:372 +#: src/pages/part/PartDetail.tsx:413 msgid "Default Supplier" msgstr "" -#: src/pages/part/PartDetail.tsx:383 -#: src/pages/part/pricing/BomPricingPanel.tsx:79 +#: src/pages/part/PartDetail.tsx:424 +#: src/pages/part/pricing/BomPricingPanel.tsx:113 #: src/pages/part/pricing/VariantPricingPanel.tsx:95 #: src/tables/part/PartTable.tsx:161 msgid "Price Range" msgstr "" -#: src/pages/part/PartDetail.tsx:423 -#: src/pages/stock/StockDetail.tsx:135 +#: src/pages/part/PartDetail.tsx:462 +msgid "Latest Serial Number" +msgstr "" + +#: src/pages/part/PartDetail.tsx:472 +#: src/pages/stock/StockDetail.tsx:151 msgid "Last Stocktake" msgstr "" -#: src/pages/part/PartDetail.tsx:462 +#: src/pages/part/PartDetail.tsx:511 msgid "Stocktake By" msgstr "" -#: src/pages/part/PartDetail.tsx:526 -msgid "Part Details" -msgstr "" - -#: src/pages/part/PartDetail.tsx:557 +#: src/pages/part/PartDetail.tsx:611 msgid "Variants" msgstr "" -#: src/pages/part/PartDetail.tsx:564 -#: src/pages/stock/StockDetail.tsx:307 +#: src/pages/part/PartDetail.tsx:618 +#: src/pages/stock/StockDetail.tsx:430 msgid "Allocations" msgstr "" -#: src/pages/part/PartDetail.tsx:575 -#: src/pages/stock/StockDetail.tsx:318 -#: src/tables/part/PartTable.tsx:99 -msgid "Build Order Allocations" -msgstr "" - -#: src/pages/part/PartDetail.tsx:590 -#: src/pages/stock/StockDetail.tsx:333 -#: src/tables/part/PartTable.tsx:108 -msgid "Sales Order Allocations" -msgstr "" - -#: src/pages/part/PartDetail.tsx:607 +#: src/pages/part/PartDetail.tsx:625 msgid "Bill of Materials" msgstr "" -#: src/pages/part/PartDetail.tsx:623 +#: src/pages/part/PartDetail.tsx:643 msgid "Used In" msgstr "" -#: src/pages/part/PartDetail.tsx:630 +#: src/pages/part/PartDetail.tsx:650 msgid "Part Pricing" msgstr "" -#: src/pages/part/PartDetail.tsx:636 +#: src/pages/part/PartDetail.tsx:656 #: src/pages/purchasing/PurchasingIndex.tsx:42 msgid "Manufacturers" msgstr "" -#: src/pages/part/PartDetail.tsx:676 +#: src/pages/part/PartDetail.tsx:722 msgid "Scheduling" msgstr "" -#: src/pages/part/PartDetail.tsx:688 +#: src/pages/part/PartDetail.tsx:729 msgid "Test Templates" msgstr "" -#: src/pages/part/PartDetail.tsx:715 +#: src/pages/part/PartDetail.tsx:756 msgid "Related Parts" msgstr "" -#: src/pages/part/PartDetail.tsx:849 -#: src/pages/stock/StockDetail.tsx:156 -#: src/pages/stock/StockDetail.tsx:593 -#: src/tables/build/BuildLineTable.tsx:48 +#: src/pages/part/PartDetail.tsx:881 +#: src/pages/stock/StockDetail.tsx:172 +#: src/pages/stock/StockDetail.tsx:783 +#: src/tables/build/BuildLineTable.tsx:179 #: src/tables/part/PartTable.tsx:117 -#: src/tables/stock/StockItemTable.tsx:177 -#: src/tables/stock/StockItemTable.tsx:310 +#: src/tables/stock/StockItemTable.tsx:166 +#: src/tables/stock/StockItemTable.tsx:314 msgid "Available" msgstr "" -#: src/pages/part/PartDetail.tsx:855 +#: src/pages/part/PartDetail.tsx:887 msgid "No Stock" msgstr "" -#: src/pages/part/PartDetail.tsx:861 +#: src/pages/part/PartDetail.tsx:893 +#: src/tables/part/PartTestTemplateTable.tsx:106 +#: src/tables/stock/StockItemTestResultTable.tsx:383 +msgid "Required" +msgstr "" + +#: src/pages/part/PartDetail.tsx:899 #: src/tables/bom/BomTable.tsx:325 #: src/tables/part/PartTable.tsx:86 msgid "On Order" msgstr "" -#: src/pages/part/PartDetail.tsx:867 -#: src/pages/stock/StockDetail.tsx:576 -#: src/tables/build/BuildOrderTestTable.tsx:219 -#: src/tables/stock/StockItemTable.tsx:330 -msgid "In Production" -msgstr "" - -#: src/pages/part/PartDetail.tsx:892 +#: src/pages/part/PartDetail.tsx:924 msgid "Edit Part" msgstr "" -#: src/pages/part/PartDetail.tsx:927 +#: src/pages/part/PartDetail.tsx:959 #: src/tables/part/PartTable.tsx:331 -#: src/tables/part/PartTable.tsx:342 +#: src/tables/part/PartTable.tsx:343 msgid "Add Part" msgstr "" -#: src/pages/part/PartDetail.tsx:941 +#: src/pages/part/PartDetail.tsx:973 msgid "Delete Part" msgstr "" -#: src/pages/part/PartDetail.tsx:950 +#: src/pages/part/PartDetail.tsx:982 msgid "Deleting this part cannot be reversed" msgstr "" -#: src/pages/part/PartDetail.tsx:999 -#: src/pages/stock/LocationDetail.tsx:324 -#: src/tables/stock/StockItemTable.tsx:444 +#: src/pages/part/PartDetail.tsx:1021 +#: src/pages/stock/LocationDetail.tsx:310 +#: src/tables/stock/StockItemTable.tsx:449 msgid "Stock Actions" msgstr "" -#: src/pages/part/PartDetail.tsx:1007 +#: src/pages/part/PartDetail.tsx:1029 msgid "Count part stock" msgstr "" -#: src/pages/part/PartDetail.tsx:1018 +#: src/pages/part/PartDetail.tsx:1040 msgid "Transfer part stock" msgstr "" -#: src/pages/part/PartDetail.tsx:1027 +#: src/pages/part/PartDetail.tsx:1049 msgid "Part Actions" msgstr "" -#: src/pages/part/PartDetail.tsx:1087 +#: src/pages/part/PartDetail.tsx:1113 msgid "Select Part Revision" msgstr "" @@ -4862,113 +5621,214 @@ msgstr "" #~ msgid "Categories" #~ msgstr "Categories" -#: src/pages/part/PartPricingPanel.tsx:68 +#: src/pages/part/PartPricingPanel.tsx:72 msgid "No pricing data found for this part." msgstr "" -#: src/pages/part/PartPricingPanel.tsx:82 -#: src/pages/part/pricing/PricingOverviewPanel.tsx:190 +#: src/pages/part/PartPricingPanel.tsx:87 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:293 msgid "Pricing Overview" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:88 +#: src/pages/part/PartPricingPanel.tsx:93 msgid "Purchase History" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:102 -#: src/pages/part/pricing/PricingOverviewPanel.tsx:100 +#: src/pages/part/PartPricingPanel.tsx:107 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:174 msgid "Internal Pricing" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:120 -#: src/pages/part/pricing/PricingOverviewPanel.tsx:107 +#: src/pages/part/PartPricingPanel.tsx:125 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:181 msgid "BOM Pricing" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:127 -#: src/pages/part/pricing/PricingOverviewPanel.tsx:128 +#: src/pages/part/PartPricingPanel.tsx:132 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:202 msgid "Variant Pricing" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:139 -#: src/pages/part/pricing/PricingOverviewPanel.tsx:135 +#: src/pages/part/PartPricingPanel.tsx:144 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:209 msgid "Sale Pricing" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:146 -#: src/pages/part/pricing/PricingOverviewPanel.tsx:142 +#: src/pages/part/PartPricingPanel.tsx:151 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:216 msgid "Sale History" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:58 -#: src/pages/part/pricing/BomPricingPanel.tsx:138 -#: src/tables/ColumnRenderers.tsx:262 +#: src/pages/part/PartSchedulingDetail.tsx:47 +#: src/pages/part/PartSchedulingDetail.tsx:299 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:156 +msgid "Maximum" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:50 +#: src/pages/part/PartSchedulingDetail.tsx:289 +msgid "Scheduled" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:53 +#: src/pages/part/PartSchedulingDetail.tsx:294 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:144 +msgid "Minimum" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:68 +msgid "Order" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:92 +msgid "Quantity is speculative" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:101 +msgid "No date available for provided quantity" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:105 +msgid "Date is in the past" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:112 +msgid "Scheduled Quantity" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:240 +msgid "No information available" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:241 +msgid "There is no scheduling information available for the selected part" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:276 +msgid "Expected Quantity" +msgstr "" + +#: src/pages/part/PartStocktakeDetail.tsx:63 +#: src/tables/FilterSelectDrawer.tsx:167 +#: src/tables/FilterSelectDrawer.tsx:174 +#: src/tables/build/BuildOrderTestTable.tsx:135 +#: src/tables/purchasing/ManufacturerPartParameterTable.tsx:38 +#: src/tables/stock/StockItemTestResultTable.tsx:192 +msgid "Value" +msgstr "" + +#: src/pages/part/PartStocktakeDetail.tsx:82 +msgid "Edit Stocktake Entry" +msgstr "" + +#: src/pages/part/PartStocktakeDetail.tsx:90 +msgid "Delete Stocktake Entry" +msgstr "" + +#: src/pages/part/PartStocktakeDetail.tsx:96 +#: src/tables/settings/StocktakeReportTable.tsx:69 +msgid "Generate Stocktake Report" +msgstr "" + +#: src/pages/part/PartStocktakeDetail.tsx:101 +#: src/tables/settings/StocktakeReportTable.tsx:71 +msgid "Stocktake report scheduled" +msgstr "" + +#: src/pages/part/PartStocktakeDetail.tsx:119 +#: src/pages/part/PartStocktakeDetail.tsx:235 +#: src/pages/stock/StockDetail.tsx:303 +#: src/tables/stock/StockItemTable.tsx:249 +msgid "Stock Value" +msgstr "" + +#: src/pages/part/PartStocktakeDetail.tsx:139 +#: src/tables/settings/StocktakeReportTable.tsx:77 +msgid "New Stocktake Report" +msgstr "" + +#: src/pages/part/PartStocktakeDetail.tsx:258 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:295 +msgid "Minimum Value" +msgstr "" + +#: src/pages/part/PartStocktakeDetail.tsx:264 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:296 +msgid "Maximum Value" +msgstr "" + +#: src/pages/part/pricing/BomPricingPanel.tsx:87 +#: src/pages/part/pricing/BomPricingPanel.tsx:177 +#: src/tables/ColumnRenderers.tsx:276 #: src/tables/bom/BomTable.tsx:185 #: src/tables/general/ExtraLineItemTable.tsx:64 -#: src/tables/purchasing/PurchaseOrderTable.tsx:112 -#: src/tables/sales/ReturnOrderTable.tsx:104 -#: src/tables/sales/SalesOrderLineItemTable.tsx:89 -#: src/tables/sales/SalesOrderTable.tsx:136 +#: src/tables/purchasing/PurchaseOrderTable.tsx:113 +#: src/tables/sales/ReturnOrderTable.tsx:127 +#: src/tables/sales/SalesOrderLineItemTable.tsx:97 +#: src/tables/sales/SalesOrderTable.tsx:149 msgid "Total Price" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:78 -#: src/pages/part/pricing/BomPricingPanel.tsx:102 +#: src/pages/part/pricing/BomPricingPanel.tsx:112 +#: src/pages/part/pricing/BomPricingPanel.tsx:141 #: src/tables/bom/UsedInTable.tsx:49 +#: src/tables/build/BuildLineTable.tsx:296 #: src/tables/part/PartTable.tsx:202 msgid "Component" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:81 -#: src/pages/part/pricing/VariantPricingPanel.tsx:37 -#: src/pages/part/pricing/VariantPricingPanel.tsx:97 -msgid "Minimum Price" -msgstr "" - -#: src/pages/part/pricing/BomPricingPanel.tsx:82 -#: src/pages/part/pricing/VariantPricingPanel.tsx:45 -#: src/pages/part/pricing/VariantPricingPanel.tsx:98 -msgid "Maximum Price" -msgstr "" - #: src/pages/part/pricing/BomPricingPanel.tsx:112 #~ msgid "Minimum Total Price" #~ msgstr "Minimum Total Price" +#: src/pages/part/pricing/BomPricingPanel.tsx:115 +#: src/pages/part/pricing/VariantPricingPanel.tsx:37 +#: src/pages/part/pricing/VariantPricingPanel.tsx:97 +msgid "Minimum Price" +msgstr "" + +#: src/pages/part/pricing/BomPricingPanel.tsx:116 +#: src/pages/part/pricing/VariantPricingPanel.tsx:45 +#: src/pages/part/pricing/VariantPricingPanel.tsx:98 +msgid "Maximum Price" +msgstr "" + #: src/pages/part/pricing/BomPricingPanel.tsx:117 #~ msgid "Maximum Total Price" #~ msgstr "Maximum Total Price" -#: src/pages/part/pricing/BomPricingPanel.tsx:129 -#: src/pages/part/pricing/PriceBreakPanel.tsx:172 -#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:67 -#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:128 -#: src/pages/part/pricing/SupplierPricingPanel.tsx:62 +#: src/pages/part/pricing/BomPricingPanel.tsx:168 +#: src/pages/part/pricing/PriceBreakPanel.tsx:173 +#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:70 +#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:125 +#: src/pages/part/pricing/SupplierPricingPanel.tsx:66 +#: src/pages/stock/StockDetail.tsx:291 #: src/tables/bom/BomTable.tsx:176 #: src/tables/general/ExtraLineItemTable.tsx:56 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:223 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:225 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:92 +#: src/tables/stock/StockItemTable.tsx:239 msgid "Unit Price" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:154 +#: src/pages/part/pricing/BomPricingPanel.tsx:193 #: src/pages/part/pricing/VariantPricingPanel.tsx:53 -#: src/tables/purchasing/SupplierPartTable.tsx:148 +#: src/tables/purchasing/SupplierPartTable.tsx:150 msgid "Updated" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:219 +#: src/pages/part/pricing/BomPricingPanel.tsx:258 msgid "Pie Chart" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:220 +#: src/pages/part/pricing/BomPricingPanel.tsx:259 msgid "Bar Chart" msgstr "" #: src/pages/part/pricing/PriceBreakPanel.tsx:58 -#: src/pages/part/pricing/PriceBreakPanel.tsx:110 +#: src/pages/part/pricing/PriceBreakPanel.tsx:111 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:142 -#: src/tables/purchasing/SupplierPriceBreakTable.tsx:168 +#: src/tables/purchasing/SupplierPriceBreakTable.tsx:169 msgid "Add Price Break" msgstr "" @@ -4986,46 +5846,70 @@ msgstr "" msgid "Price Break" msgstr "" -#: src/pages/part/pricing/PriceBreakPanel.tsx:170 +#: src/pages/part/pricing/PriceBreakPanel.tsx:171 msgid "Price" msgstr "" -#: src/pages/part/pricing/PricingOverviewPanel.tsx:51 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:68 +msgid "Refreshing pricing data" +msgstr "" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:88 +msgid "Pricing data updated" +msgstr "" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:95 +msgid "Failed to update pricing data" +msgstr "" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:104 +msgid "Edit Pricing" +msgstr "" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:125 msgid "Pricing Category" msgstr "" -#: src/pages/part/pricing/PricingOverviewPanel.tsx:70 -msgid "Minimum" -msgstr "" - -#: src/pages/part/pricing/PricingOverviewPanel.tsx:82 -msgid "Maximum" -msgstr "" - -#: src/pages/part/pricing/PricingOverviewPanel.tsx:114 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:188 msgid "Purchase Pricing" msgstr "" -#: src/pages/part/pricing/PricingOverviewPanel.tsx:149 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:223 msgid "Override Pricing" msgstr "" -#: src/pages/part/pricing/PricingOverviewPanel.tsx:156 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:230 msgid "Overall Pricing" msgstr "" -#: src/pages/part/pricing/PricingOverviewPanel.tsx:175 -#: src/pages/stock/StockDetail.tsx:129 -#: src/tables/stock/StockItemTable.tsx:240 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:249 +#: src/pages/stock/StockDetail.tsx:145 +#: src/tables/stock/StockItemTable.tsx:275 msgid "Last Updated" msgstr "" -#: src/pages/part/pricing/PricingOverviewPanel.tsx:192 -msgid "Minimum Value" +#: src/pages/part/pricing/PricingOverviewPanel.tsx:253 +msgid "Pricing Not Set" msgstr "" -#: src/pages/part/pricing/PricingOverviewPanel.tsx:193 -msgid "Maximum Value" +#: src/pages/part/pricing/PricingOverviewPanel.tsx:254 +msgid "Pricing data has not been calculated for this part" +msgstr "" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:258 +msgid "Pricing Actions" +msgstr "" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:261 +msgid "Refresh" +msgstr "" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:262 +msgid "Refresh pricing data" +msgstr "" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:277 +msgid "Edit pricing data" msgstr "" #: src/pages/part/pricing/PricingPanel.tsx:24 @@ -5044,28 +5928,20 @@ msgstr "" msgid "Loading pricing data" msgstr "" -#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:40 -#: src/pages/part/pricing/SaleHistoryPanel.tsx:36 -#: src/tables/ColumnRenderers.tsx:201 -#: src/tables/build/BuildOrderTestTable.tsx:150 -#: src/tables/plugin/PluginListTable.tsx:139 -msgid "Date" -msgstr "" - #: src/pages/part/pricing/PurchaseHistoryPanel.tsx:47 msgid "Purchase Price" msgstr "" -#: src/pages/part/pricing/SaleHistoryPanel.tsx:22 -msgid "Sale Order" -msgstr "" +#: src/pages/part/pricing/SaleHistoryPanel.tsx:24 +#~ msgid "Sale Order" +#~ msgstr "Sale Order" -#: src/pages/part/pricing/SaleHistoryPanel.tsx:42 -#: src/pages/part/pricing/SaleHistoryPanel.tsx:92 +#: src/pages/part/pricing/SaleHistoryPanel.tsx:44 +#: src/pages/part/pricing/SaleHistoryPanel.tsx:87 msgid "Sale Price" msgstr "" -#: src/pages/part/pricing/SupplierPricingPanel.tsx:65 +#: src/pages/part/pricing/SupplierPricingPanel.tsx:69 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:83 msgid "Supplier Price" msgstr "" @@ -5075,23 +5951,23 @@ msgstr "" msgid "Variant Part" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:93 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:87 msgid "Edit Purchase Order" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:102 -#: src/tables/purchasing/PurchaseOrderTable.tsx:128 -#: src/tables/purchasing/PurchaseOrderTable.tsx:140 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:96 +#: src/tables/purchasing/PurchaseOrderTable.tsx:129 +#: src/tables/purchasing/PurchaseOrderTable.tsx:142 msgid "Add Purchase Order" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:127 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:121 msgid "Supplier Reference" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:158 -#: src/pages/sales/ReturnOrderDetail.tsx:137 -#: src/pages/sales/SalesOrderDetail.tsx:137 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:152 +#: src/pages/sales/ReturnOrderDetail.tsx:129 +#: src/pages/sales/SalesOrderDetail.tsx:132 msgid "Completed Line Items" msgstr "" @@ -5101,91 +5977,112 @@ msgstr "" #~ msgid "Order Currency," #~ msgstr "Order Currency," -#: src/pages/purchasing/PurchaseOrderDetail.tsx:165 -#: src/pages/sales/ReturnOrderDetail.tsx:144 -#: src/pages/sales/SalesOrderDetail.tsx:153 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:161 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:231 +msgid "Destination" +msgstr "" + +#: src/pages/purchasing/PurchaseOrderDetail.tsx:167 +#: src/pages/sales/ReturnOrderDetail.tsx:136 +#: src/pages/sales/SalesOrderDetail.tsx:148 msgid "Order Currency" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:172 -#: src/pages/sales/ReturnOrderDetail.tsx:151 -#: src/pages/sales/SalesOrderDetail.tsx:160 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:173 +#: src/pages/sales/ReturnOrderDetail.tsx:143 +#: src/pages/sales/SalesOrderDetail.tsx:155 msgid "Total Cost" msgstr "" #: src/pages/purchasing/PurchaseOrderDetail.tsx:207 -#: src/pages/sales/ReturnOrderDetail.tsx:186 -#: src/pages/sales/SalesOrderDetail.tsx:195 -msgid "Created On" +#: src/pages/sales/ReturnOrderDetail.tsx:183 +#: src/pages/sales/SalesOrderDetail.tsx:191 +#~ msgid "Created On" +#~ msgstr "Created On" + +#: src/pages/purchasing/PurchaseOrderDetail.tsx:221 +#: src/pages/sales/ReturnOrderDetail.tsx:193 +#: src/pages/sales/SalesOrderDetail.tsx:204 +msgid "Issue Date" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:252 -#: src/pages/sales/ReturnOrderDetail.tsx:231 -#: src/pages/sales/SalesOrderDetail.tsx:266 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:237 +#: src/pages/sales/ReturnOrderDetail.tsx:209 +#: src/pages/sales/SalesOrderDetail.tsx:219 +#: src/tables/build/BuildOrderTable.tsx:98 +#: src/tables/part/PartPurchaseOrdersTable.tsx:105 +#: src/tables/sales/ReturnOrderTable.tsx:122 +msgid "Completion Date" +msgstr "" + +#: src/pages/purchasing/PurchaseOrderDetail.tsx:276 +#: src/pages/sales/ReturnOrderDetail.tsx:248 +#: src/pages/sales/SalesOrderDetail.tsx:288 msgid "Order Details" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:280 -#: src/pages/sales/ReturnOrderDetail.tsx:258 -#: src/pages/sales/SalesOrderDetail.tsx:297 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:304 +#: src/pages/sales/ReturnOrderDetail.tsx:276 +#: src/pages/sales/SalesOrderDetail.tsx:319 msgid "Extra Line Items" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:337 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:346 msgid "Issue Purchase Order" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:345 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:354 msgid "Cancel Purchase Order" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:353 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:362 msgid "Hold Purchase Order" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:361 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:370 msgid "Complete Purchase Order" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:427 -#: src/pages/sales/ReturnOrderDetail.tsx:428 -#: src/pages/sales/SalesOrderDetail.tsx:468 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:425 +#: src/pages/sales/ReturnOrderDetail.tsx:424 +#: src/pages/sales/SalesOrderDetail.tsx:464 msgid "Order Actions" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:101 -#: src/pages/sales/SalesOrderDetail.tsx:107 -#: src/tables/sales/SalesOrderTable.tsx:124 +#: src/pages/sales/ReturnOrderDetail.tsx:92 +#: src/pages/sales/SalesOrderDetail.tsx:101 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:109 +#: src/tables/sales/SalesOrderTable.tsx:137 msgid "Customer Reference" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:315 +#: src/pages/sales/ReturnOrderDetail.tsx:322 msgid "Edit Return Order" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:324 -#: src/tables/sales/ReturnOrderTable.tsx:119 -#: src/tables/sales/ReturnOrderTable.tsx:128 +#: src/pages/sales/ReturnOrderDetail.tsx:331 +#: src/tables/sales/ReturnOrderTable.tsx:142 +#: src/tables/sales/ReturnOrderTable.tsx:152 msgid "Add Return Order" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:336 +#: src/pages/sales/ReturnOrderDetail.tsx:343 msgid "Issue Return Order" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:344 +#: src/pages/sales/ReturnOrderDetail.tsx:349 +#~ msgid "Order canceled" +#~ msgstr "Order canceled" + +#: src/pages/sales/ReturnOrderDetail.tsx:351 msgid "Cancel Return Order" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:347 -msgid "Order canceled" -msgstr "" - -#: src/pages/sales/ReturnOrderDetail.tsx:352 +#: src/pages/sales/ReturnOrderDetail.tsx:359 msgid "Hold Return Order" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:360 +#: src/pages/sales/ReturnOrderDetail.tsx:367 msgid "Complete Return Order" msgstr "" @@ -5193,117 +6090,193 @@ msgstr "" msgid "Customers" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:145 +#: src/pages/sales/SalesOrderDetail.tsx:140 msgid "Completed Shipments" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:243 -msgid "Edit Sales Order" -msgstr "" - -#: src/pages/sales/SalesOrderDetail.tsx:252 -#: src/tables/sales/SalesOrderTable.tsx:84 -#: src/tables/sales/SalesOrderTable.tsx:96 -msgid "Add Sales Order" -msgstr "" - #: src/pages/sales/SalesOrderDetail.tsx:256 #~ msgid "Pending Shipments" #~ msgstr "Pending Shipments" -#: src/pages/sales/SalesOrderDetail.tsx:313 +#: src/pages/sales/SalesOrderDetail.tsx:261 +msgid "Edit Sales Order" +msgstr "" + +#: src/pages/sales/SalesOrderDetail.tsx:274 +#: src/tables/sales/SalesOrderTable.tsx:96 +#: src/tables/sales/SalesOrderTable.tsx:109 +msgid "Add Sales Order" +msgstr "" + +#: src/pages/sales/SalesOrderDetail.tsx:335 msgid "Shipments" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:369 +#: src/pages/sales/SalesOrderDetail.tsx:376 msgid "Issue Sales Order" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:377 +#: src/pages/sales/SalesOrderDetail.tsx:384 msgid "Cancel Sales Order" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:385 +#: src/pages/sales/SalesOrderDetail.tsx:392 msgid "Hold Sales Order" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:393 +#: src/pages/sales/SalesOrderDetail.tsx:400 msgid "Complete Sales Order" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:432 +#: src/pages/sales/SalesOrderDetail.tsx:439 msgid "Ship Order" msgstr "" -#: src/pages/stock/LocationDetail.tsx:117 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:117 +#: src/tables/sales/SalesOrderShipmentTable.tsx:96 +msgid "Shipment Reference" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:124 +msgid "Allocated Items" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:133 +msgid "Tracking Number" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:141 +msgid "Invoice Number" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:149 +#: src/tables/ColumnRenderers.tsx:242 +#: src/tables/sales/SalesOrderAllocationTable.tsx:142 +#: src/tables/sales/SalesOrderShipmentTable.tsx:115 +msgid "Shipment Date" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:157 +#: src/tables/sales/SalesOrderShipmentTable.tsx:119 +msgid "Delivery Date" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:204 +msgid "Shipment Details" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:210 +msgid "Assigned Items" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:241 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:317 +#: src/tables/sales/SalesOrderShipmentTable.tsx:75 +msgid "Edit Shipment" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:248 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:322 +#: src/tables/sales/SalesOrderShipmentTable.tsx:67 +msgid "Cancel Shipment" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:261 +#: src/tables/sales/SalesOrderShipmentTable.tsx:83 +#: src/tables/sales/SalesOrderShipmentTable.tsx:151 +msgid "Complete Shipment" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:276 +#: src/tables/part/PartPurchaseOrdersTable.tsx:121 +msgid "Pending" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:277 +#: src/tables/sales/SalesOrderAllocationTable.tsx:148 +#: src/tables/sales/SalesOrderShipmentTable.tsx:108 +#: src/tables/sales/SalesOrderShipmentTable.tsx:197 +msgid "Shipped" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:279 +#: src/tables/sales/SalesOrderShipmentTable.tsx:202 +msgid "Delivered" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:293 +msgid "Send Shipment" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:312 +msgid "Shipment Actions" +msgstr "" + +#: src/pages/stock/LocationDetail.tsx:111 msgid "Parent Location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:135 +#: src/pages/stock/LocationDetail.tsx:129 msgid "Sublocations" msgstr "" -#: src/pages/stock/LocationDetail.tsx:147 +#: src/pages/stock/LocationDetail.tsx:141 #: src/tables/stock/StockLocationTable.tsx:54 msgid "External" msgstr "" -#: src/pages/stock/LocationDetail.tsx:153 +#: src/pages/stock/LocationDetail.tsx:147 #: src/tables/stock/StockLocationTable.tsx:63 msgid "Location Type" msgstr "" -#: src/pages/stock/LocationDetail.tsx:164 +#: src/pages/stock/LocationDetail.tsx:158 msgid "Top level stock location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:175 +#: src/pages/stock/LocationDetail.tsx:169 msgid "Location Details" msgstr "" -#: src/pages/stock/LocationDetail.tsx:201 +#: src/pages/stock/LocationDetail.tsx:195 msgid "Default Parts" msgstr "" -#: src/pages/stock/LocationDetail.tsx:220 -#: src/pages/stock/LocationDetail.tsx:351 +#: src/pages/stock/LocationDetail.tsx:214 +#: src/pages/stock/LocationDetail.tsx:336 #: src/tables/stock/StockLocationTable.tsx:123 msgid "Edit Stock Location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:241 -#: src/pages/stock/LocationDetail.tsx:356 +#: src/pages/stock/LocationDetail.tsx:235 +#: src/pages/stock/LocationDetail.tsx:341 msgid "Delete Stock Location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:244 +#: src/pages/stock/LocationDetail.tsx:238 msgid "Items Action" msgstr "" -#: src/pages/stock/LocationDetail.tsx:245 +#: src/pages/stock/LocationDetail.tsx:239 msgid "Action for stock items in this location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:250 +#: src/pages/stock/LocationDetail.tsx:244 msgid "Child Locations Action" msgstr "" -#: src/pages/stock/LocationDetail.tsx:251 +#: src/pages/stock/LocationDetail.tsx:245 msgid "Action for child locations in this location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:346 +#: src/pages/stock/LocationDetail.tsx:332 msgid "Location Actions" msgstr "" -#: src/pages/stock/StockDetail.tsx:108 +#: src/pages/stock/StockDetail.tsx:116 msgid "Base Part" msgstr "" -#: src/pages/stock/StockDetail.tsx:115 -msgid "Stock Status" -msgstr "" - #: src/pages/stock/StockDetail.tsx:155 #~ msgid "Link custom barcode to stock item" #~ msgstr "Link custom barcode to stock item" @@ -5312,113 +6285,179 @@ msgstr "" #~ msgid "Unlink custom barcode from stock item" #~ msgstr "Unlink custom barcode from stock item" -#: src/pages/stock/StockDetail.tsx:188 -msgid "Installed In" -msgstr "" - -#: src/pages/stock/StockDetail.tsx:204 -msgid "Consumed By" +#: src/pages/stock/StockDetail.tsx:178 +msgid "Allocated to Orders" msgstr "" #: src/pages/stock/StockDetail.tsx:205 #~ msgid "Edit stock item" #~ msgstr "Edit stock item" -#: src/pages/stock/StockDetail.tsx:213 -#: src/tables/build/BuildAllocatedStockTable.tsx:64 -#: src/tables/stock/StockTrackingTable.tsx:96 -msgid "Build Order" +#: src/pages/stock/StockDetail.tsx:209 +msgid "Installed In" msgstr "" #: src/pages/stock/StockDetail.tsx:217 #~ msgid "Delete stock item" #~ msgstr "Delete stock item" -#: src/pages/stock/StockDetail.tsx:291 +#: src/pages/stock/StockDetail.tsx:226 +msgid "Parent Item" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:230 +msgid "Parent stock item" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:236 +msgid "Consumed By" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:245 +#: src/tables/build/BuildAllocatedStockTable.tsx:77 +#: src/tables/stock/StockTrackingTable.tsx:100 +msgid "Build Order" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:283 +#: src/tables/stock/StockItemTable.tsx:270 +msgid "Expiry Date" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:414 msgid "Stock Details" msgstr "" -#: src/pages/stock/StockDetail.tsx:297 +#: src/pages/stock/StockDetail.tsx:420 msgid "Stock Tracking" msgstr "" -#: src/pages/stock/StockDetail.tsx:350 -msgid "Test Data" -msgstr "" - -#: src/pages/stock/StockDetail.tsx:364 -msgid "Installed Items" -msgstr "" - -#: src/pages/stock/StockDetail.tsx:371 -msgid "Child Items" -msgstr "" - -#: src/pages/stock/StockDetail.tsx:425 -msgid "Edit Stock Item" -msgstr "" - #: src/pages/stock/StockDetail.tsx:433 #~ msgid "Duplicate stock item" #~ msgstr "Duplicate stock item" -#: src/pages/stock/StockDetail.tsx:452 +#: src/pages/stock/StockDetail.tsx:475 +msgid "Test Data" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:489 +msgid "Installed Items" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:496 +msgid "Child Items" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:545 +msgid "Edit Stock Item" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:572 msgid "Delete Stock Item" msgstr "" -#: src/pages/stock/StockDetail.tsx:504 +#: src/pages/stock/StockDetail.tsx:604 +msgid "Serialize Stock Item" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:617 +msgid "Stock item serialized" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:623 +msgid "Return Stock Item" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:626 +msgid "Return this item into stock. This will remove the customer assignment." +msgstr "" + +#: src/pages/stock/StockDetail.tsx:636 +msgid "Item returned to stock" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:666 msgid "Stock Operations" msgstr "" -#: src/pages/stock/StockDetail.tsx:509 +#: src/pages/stock/StockDetail.tsx:671 msgid "Count stock" msgstr "" -#: src/pages/stock/StockDetail.tsx:519 -#: src/tables/stock/StockItemTable.tsx:449 -msgid "Add stock" +#: src/pages/stock/StockDetail.tsx:671 +#: src/tables/stock/StockItemTable.tsx:452 +#~ msgid "Add stock" +#~ msgstr "Add stock" + +#: src/pages/stock/StockDetail.tsx:680 +#: src/tables/stock/StockItemTable.tsx:461 +#~ msgid "Remove stock" +#~ msgstr "Remove stock" + +#: src/pages/stock/StockDetail.tsx:698 +#: src/tables/stock/StockItemTable.tsx:481 +#~ msgid "Transfer stock" +#~ msgstr "Transfer stock" + +#: src/pages/stock/StockDetail.tsx:699 +msgid "Serialize" msgstr "" -#: src/pages/stock/StockDetail.tsx:527 -#: src/tables/stock/StockItemTable.tsx:458 -msgid "Remove stock" +#: src/pages/stock/StockDetail.tsx:700 +msgid "Serialize stock" msgstr "" -#: src/pages/stock/StockDetail.tsx:534 +#: src/pages/stock/StockDetail.tsx:711 msgid "Transfer" msgstr "" -#: src/pages/stock/StockDetail.tsx:535 -#: src/tables/stock/StockItemTable.tsx:478 -msgid "Transfer stock" +#: src/pages/stock/StockDetail.tsx:722 +msgid "Return" msgstr "" -#: src/pages/stock/StockDetail.tsx:546 +#: src/pages/stock/StockDetail.tsx:723 +msgid "Return from customer" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:738 msgid "Stock Item Actions" msgstr "" -#: src/tables/ColumnRenderers.tsx:30 +#: src/pages/stock/StockDetail.tsx:808 +msgid "Stale" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:814 +msgid "Expired" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:820 +msgid "Unavailable" +msgstr "" + +#: src/tables/ColumnRenderers.tsx:36 msgid "Part is not active" msgstr "" -#: src/tables/ColumnRenderers.tsx:35 -msgid "Part is locked" +#: src/tables/ColumnRenderers.tsx:41 +#: src/tables/bom/BomTable.tsx:542 +#: src/tables/part/PartParameterTable.tsx:193 +#: src/tables/part/PartTestTemplateTable.tsx:253 +msgid "Part is Locked" msgstr "" -#: src/tables/ColumnRenderers.tsx:57 +#: src/tables/ColumnRenderers.tsx:41 +#~ msgid "Part is locked" +#~ msgstr "Part is locked" + +#: src/tables/ColumnRenderers.tsx:46 +msgid "You are subscribed to notifications for this part" +msgstr "" + +#: src/tables/ColumnRenderers.tsx:68 msgid "No location set" msgstr "" -#: src/tables/ColumnRenderers.tsx:228 -#: src/tables/sales/SalesOrderShipmentTable.tsx:79 -msgid "Shipment Date" -msgstr "" - -#: src/tables/ColumnRenderers.tsx:248 -#: src/tables/settings/CurrencyTable.tsx:23 -msgid "Currency" -msgstr "" - #: src/tables/ColumnSelect.tsx:16 #: src/tables/ColumnSelect.tsx:23 msgid "Select Columns" @@ -5452,91 +6491,116 @@ msgstr "" msgid "Download Data" msgstr "" -#: src/tables/Filter.tsx:89 -#: src/tables/build/BuildOrderTable.tsx:135 +#: src/tables/Filter.tsx:101 msgid "Assigned to me" msgstr "" -#: src/tables/Filter.tsx:90 -#: src/tables/build/BuildOrderTable.tsx:136 +#: src/tables/Filter.tsx:102 msgid "Show orders assigned to me" msgstr "" -#: src/tables/Filter.tsx:97 +#: src/tables/Filter.tsx:106 +#~ msgid "Show overdue orders" +#~ msgstr "Show overdue orders" + +#: src/tables/Filter.tsx:109 +#: src/tables/build/BuildOrderTable.tsx:120 +#: src/tables/sales/SalesOrderAllocationTable.tsx:59 msgid "Outstanding" msgstr "" -#: src/tables/Filter.tsx:98 -msgid "Show outstanding orders" +#: src/tables/Filter.tsx:110 +msgid "Show outstanding items" msgstr "" -#: src/tables/Filter.tsx:105 -#: src/tables/build/BuildOrderTable.tsx:128 +#: src/tables/Filter.tsx:117 msgid "Overdue" msgstr "" -#: src/tables/Filter.tsx:106 -msgid "Show overdue orders" +#: src/tables/Filter.tsx:118 +msgid "Show overdue items" msgstr "" -#: src/tables/FilterSelectDrawer.tsx:51 +#: src/tables/Filter.tsx:125 +msgid "Minimum Date" +msgstr "" + +#: src/tables/Filter.tsx:126 +msgid "Show items after this date" +msgstr "" + +#: src/tables/Filter.tsx:134 +msgid "Maximum Date" +msgstr "" + +#: src/tables/Filter.tsx:135 +msgid "Show items before this date" +msgstr "" + +#: src/tables/Filter.tsx:144 +msgid "Has Project Code" +msgstr "" + +#: src/tables/Filter.tsx:145 +msgid "Show orders with an assigned project code" +msgstr "" + +#: src/tables/FilterSelectDrawer.tsx:55 msgid "Remove filter" msgstr "" -#: src/tables/FilterSelectDrawer.tsx:130 +#: src/tables/FilterSelectDrawer.tsx:159 msgid "Select filter" msgstr "" -#: src/tables/FilterSelectDrawer.tsx:131 +#: src/tables/FilterSelectDrawer.tsx:160 msgid "Filter" msgstr "" -#: src/tables/FilterSelectDrawer.tsx:138 -#: src/tables/build/BuildOrderTestTable.tsx:134 -#: src/tables/purchasing/ManufacturerPartParameterTable.tsx:38 -#: src/tables/stock/StockItemTestResultTable.tsx:186 -msgid "Value" +#: src/tables/FilterSelectDrawer.tsx:168 +msgid "Select date value" msgstr "" -#: src/tables/FilterSelectDrawer.tsx:140 +#: src/tables/FilterSelectDrawer.tsx:176 msgid "Select filter value" msgstr "" -#: src/tables/FilterSelectDrawer.tsx:183 +#: src/tables/FilterSelectDrawer.tsx:219 +#: src/tables/InvenTreeTableHeader.tsx:214 msgid "Table Filters" msgstr "" -#: src/tables/FilterSelectDrawer.tsx:215 +#: src/tables/FilterSelectDrawer.tsx:251 msgid "Add Filter" msgstr "" -#: src/tables/FilterSelectDrawer.tsx:224 +#: src/tables/FilterSelectDrawer.tsx:260 msgid "Clear Filters" msgstr "" -#: src/tables/InvenTreeTable.tsx:123 -#: src/tables/InvenTreeTable.tsx:431 -#: src/tables/InvenTreeTable.tsx:455 +#: src/tables/InvenTreeTable.tsx:96 +#: src/tables/InvenTreeTable.tsx:417 +#: src/tables/InvenTreeTable.tsx:441 msgid "No records found" msgstr "" -#: src/tables/InvenTreeTable.tsx:466 +#: src/tables/InvenTreeTable.tsx:452 msgid "Server returned incorrect data type" msgstr "" -#: src/tables/InvenTreeTable.tsx:474 +#: src/tables/InvenTreeTable.tsx:460 msgid "Bad request" msgstr "" -#: src/tables/InvenTreeTable.tsx:477 +#: src/tables/InvenTreeTable.tsx:463 msgid "Unauthorized" msgstr "" -#: src/tables/InvenTreeTable.tsx:480 +#: src/tables/InvenTreeTable.tsx:466 msgid "Forbidden" msgstr "" -#: src/tables/InvenTreeTable.tsx:483 +#: src/tables/InvenTreeTable.tsx:469 msgid "Not found" msgstr "" @@ -5544,18 +6608,6 @@ msgstr "" #~ msgid "Are you sure you want to delete the selected records?" #~ msgstr "Are you sure you want to delete the selected records?" -#: src/tables/InvenTreeTable.tsx:525 -msgid "Delete Selected Items" -msgstr "" - -#: src/tables/InvenTreeTable.tsx:529 -msgid "Are you sure you want to delete the selected items?" -msgstr "" - -#: src/tables/InvenTreeTable.tsx:531 -msgid "This action cannot be undone!" -msgstr "" - #: src/tables/InvenTreeTable.tsx:535 #~ msgid "Deleted records" #~ msgstr "Deleted records" @@ -5568,31 +6620,56 @@ msgstr "" #~ msgid "Failed to delete records" #~ msgstr "Failed to delete records" +#: src/tables/InvenTreeTable.tsx:552 +#~ msgid "This action cannot be undone!" +#~ msgstr "This action cannot be undone!" + #: src/tables/InvenTreeTable.tsx:594 #: src/tables/InvenTreeTable.tsx:595 #~ msgid "Print actions" #~ msgstr "Print actions" -#: src/tables/InvenTreeTable.tsx:618 -#: src/tables/InvenTreeTable.tsx:619 -msgid "Barcode actions" +#: src/tables/InvenTreeTable.tsx:655 +#: src/tables/InvenTreeTable.tsx:656 +#~ msgid "Barcode actions" +#~ msgstr "Barcode actions" + +#: src/tables/InvenTreeTable.tsx:712 +#~ msgid "Table filters" +#~ msgstr "Table filters" + +#: src/tables/InvenTreeTable.tsx:725 +#~ msgid "Clear custom query filters" +#~ msgstr "Clear custom query filters" + +#: src/tables/InvenTreeTableHeader.tsx:98 +msgid "Delete Selected Items" msgstr "" -#: src/tables/InvenTreeTable.tsx:628 +#: src/tables/InvenTreeTableHeader.tsx:102 +msgid "Are you sure you want to delete the selected items?" +msgstr "" + +#: src/tables/InvenTreeTableHeader.tsx:104 +#: src/tables/plugin/PluginListTable.tsx:305 +msgid "This action cannot be undone" +msgstr "" + +#: src/tables/InvenTreeTableHeader.tsx:142 +msgid "Custom table filters are active" +msgstr "" + +#: src/tables/InvenTreeTableHeader.tsx:169 msgid "Delete selected records" msgstr "" -#: src/tables/InvenTreeTable.tsx:649 +#: src/tables/InvenTreeTableHeader.tsx:188 msgid "Refresh data" msgstr "" -#: src/tables/InvenTreeTable.tsx:675 -msgid "Table filters" -msgstr "" - #: src/tables/TableHoverCard.tsx:35 -msgid "item-{idx}" -msgstr "" +#~ msgid "item-{idx}" +#~ msgstr "item-{idx}" #: src/tables/UploadAction.tsx:7 #~ msgid "Upload Data" @@ -5607,31 +6684,36 @@ msgid "Part Information" msgstr "" #: src/tables/bom/BomTable.tsx:212 -#: src/tables/build/BuildLineTable.tsx:126 +#: src/tables/build/BuildLineTable.tsx:257 #: src/tables/part/PartTable.tsx:125 msgid "External stock" msgstr "" #: src/tables/bom/BomTable.tsx:220 -#: src/tables/build/BuildLineTable.tsx:89 +#: src/tables/build/BuildLineTable.tsx:220 msgid "Includes substitute stock" msgstr "" #: src/tables/bom/BomTable.tsx:229 -#: src/tables/build/BuildLineTable.tsx:99 -#: src/tables/sales/SalesOrderLineItemTable.tsx:127 +#: src/tables/build/BuildLineTable.tsx:230 +#: src/tables/sales/SalesOrderLineItemTable.tsx:135 msgid "Includes variant stock" msgstr "" +#: src/tables/bom/BomTable.tsx:245 +#: src/tables/part/PartTable.tsx:92 +msgid "Building" +msgstr "" + #: src/tables/bom/BomTable.tsx:254 #: src/tables/part/PartTable.tsx:153 -#: src/tables/sales/SalesOrderLineItemTable.tsx:150 -#: src/tables/stock/StockItemTable.tsx:216 +#: src/tables/sales/SalesOrderLineItemTable.tsx:158 +#: src/tables/stock/StockItemTable.tsx:206 msgid "Stock Information" msgstr "" #: src/tables/bom/BomTable.tsx:285 -#: src/tables/build/BuildLineTable.tsx:248 +#: src/tables/build/BuildLineTable.tsx:409 msgid "Consumable item" msgstr "" @@ -5644,7 +6726,7 @@ msgstr "" #~ msgstr "Create BOM Item" #: src/tables/bom/BomTable.tsx:306 -#: src/tables/build/BuildLineTable.tsx:69 +#: src/tables/build/BuildLineTable.tsx:200 msgid "Show testable items" msgstr "" @@ -5657,11 +6739,12 @@ msgid "Show trackable items" msgstr "" #: src/tables/bom/BomTable.tsx:316 -#: src/tables/build/BuildLineTable.tsx:64 +#: src/tables/build/BuildLineTable.tsx:195 msgid "Show assembled items" msgstr "" #: src/tables/bom/BomTable.tsx:321 +#: src/tables/build/BuildLineTable.tsx:180 msgid "Show items with available stock" msgstr "" @@ -5705,7 +6788,7 @@ msgstr "" #: src/tables/bom/BomTable.tsx:345 #: src/tables/bom/UsedInTable.tsx:79 -#: src/tables/build/BuildLineTable.tsx:58 +#: src/tables/build/BuildLineTable.tsx:189 msgid "Optional" msgstr "" @@ -5723,7 +6806,7 @@ msgstr "" #~ msgstr "Bom item deleted" #: src/tables/bom/BomTable.tsx:350 -#: src/tables/build/BuildLineTable.tsx:53 +#: src/tables/build/BuildLineTable.tsx:184 msgid "Consumable" msgstr "" @@ -5749,12 +6832,12 @@ msgid "Show items with pricing" msgstr "" #: src/tables/bom/BomTable.tsx:378 -#: src/tables/bom/BomTable.tsx:511 +#: src/tables/bom/BomTable.tsx:512 msgid "Import BOM Data" msgstr "" #: src/tables/bom/BomTable.tsx:388 -#: src/tables/bom/BomTable.tsx:523 +#: src/tables/bom/BomTable.tsx:526 msgid "Add BOM Item" msgstr "" @@ -5780,7 +6863,7 @@ msgstr "" #: src/tables/bom/BomTable.tsx:423 #: src/tables/bom/BomTable.tsx:426 -#: src/tables/bom/BomTable.tsx:517 +#: src/tables/bom/BomTable.tsx:519 msgid "Validate BOM" msgstr "" @@ -5812,21 +6895,15 @@ msgstr "" msgid "Edit Substitutes" msgstr "" -#: src/tables/bom/BomTable.tsx:539 -#: src/tables/part/PartParameterTable.tsx:193 -#: src/tables/part/PartTestTemplateTable.tsx:252 -msgid "Part is Locked" -msgstr "" - -#: src/tables/bom/BomTable.tsx:544 +#: src/tables/bom/BomTable.tsx:547 msgid "Bill of materials cannot be edited, as the part is locked" msgstr "" #: src/tables/bom/UsedInTable.tsx:33 -#: src/tables/build/BuildLineTable.tsx:63 +#: src/tables/build/BuildLineTable.tsx:194 #: src/tables/part/ParametricPartTable.tsx:233 #: src/tables/part/PartTable.tsx:190 -#: src/tables/stock/StockItemTable.tsx:300 +#: src/tables/stock/StockItemTable.tsx:304 msgid "Assembly" msgstr "" @@ -5844,285 +6921,347 @@ msgstr "" msgid "Show trackable assemblies" msgstr "" -#: src/tables/build/BuildAllocatedStockTable.tsx:54 +#: src/tables/build/BuildAllocatedStockTable.tsx:56 msgid "Allocated to Output" msgstr "" -#: src/tables/build/BuildAllocatedStockTable.tsx:55 +#: src/tables/build/BuildAllocatedStockTable.tsx:57 msgid "Show items allocated to a build output" msgstr "" -#: src/tables/build/BuildAllocatedStockTable.tsx:76 -#: src/tables/part/PartPurchaseOrdersTable.tsx:125 -#: src/tables/sales/SalesOrderAllocationTable.tsx:62 +#: src/tables/build/BuildAllocatedStockTable.tsx:65 +#: src/tables/build/BuildOrderTable.tsx:159 +#: src/tables/part/PartParameterTable.tsx:212 +#: src/tables/part/PartPurchaseOrdersTable.tsx:138 +#: src/tables/sales/ReturnOrderTable.tsx:84 +#: src/tables/sales/SalesOrderAllocationTable.tsx:68 +#: src/tables/sales/SalesOrderTable.tsx:84 +#: src/tables/stock/StockItemTable.tsx:339 +msgid "Include Variants" +msgstr "" + +#: src/tables/build/BuildAllocatedStockTable.tsx:66 +#: src/tables/build/BuildOrderTable.tsx:160 +#: src/tables/part/PartPurchaseOrdersTable.tsx:139 +#: src/tables/sales/ReturnOrderTable.tsx:85 +#: src/tables/sales/SalesOrderAllocationTable.tsx:69 +#: src/tables/sales/SalesOrderTable.tsx:85 +msgid "Include orders for part variants" +msgstr "" + +#: src/tables/build/BuildAllocatedStockTable.tsx:89 +#: src/tables/part/PartPurchaseOrdersTable.tsx:131 +#: src/tables/sales/SalesOrderAllocationTable.tsx:93 msgid "Order Status" msgstr "" -#: src/tables/build/BuildAllocatedStockTable.tsx:96 -#: src/tables/sales/SalesOrderAllocationTable.tsx:75 +#: src/tables/build/BuildAllocatedStockTable.tsx:117 +#: src/tables/sales/SalesOrderAllocationTable.tsx:126 msgid "Allocated Quantity" msgstr "" -#: src/tables/build/BuildAllocatedStockTable.tsx:116 -#: src/tables/sales/SalesOrderAllocationTable.tsx:94 +#: src/tables/build/BuildAllocatedStockTable.tsx:137 +#: src/tables/sales/SalesOrderAllocationTable.tsx:120 msgid "Available Quantity" msgstr "" -#: src/tables/build/BuildAllocatedStockTable.tsx:126 -#: src/tables/build/BuildOrderTestTable.tsx:176 -#: src/tables/build/BuildOrderTestTable.tsx:200 -#: src/tables/build/BuildOutputTable.tsx:312 -msgid "Build Output" +#: src/tables/build/BuildAllocatedStockTable.tsx:164 +#: src/tables/build/BuildLineTable.tsx:513 +msgid "Edit Stock Allocation" msgstr "" -#: src/tables/build/BuildAllocatedStockTable.tsx:143 -msgid "Edit Build Item" -msgstr "" +#: src/tables/build/BuildAllocatedStockTable.tsx:164 +#~ msgid "Edit Build Item" +#~ msgstr "Edit Build Item" -#: src/tables/build/BuildAllocatedStockTable.tsx:153 -msgid "Delete Build Item" -msgstr "" +#: src/tables/build/BuildAllocatedStockTable.tsx:174 +#~ msgid "Delete Build Item" +#~ msgstr "Delete Build Item" -#: src/tables/build/BuildLineTable.tsx:43 -#: src/tables/stock/StockItemTable.tsx:305 -msgid "Allocated" -msgstr "" - -#: src/tables/build/BuildLineTable.tsx:44 -msgid "Show allocated lines" -msgstr "" - -#: src/tables/build/BuildLineTable.tsx:49 -msgid "Show lines with available stock" -msgstr "" - -#: src/tables/build/BuildLineTable.tsx:54 -msgid "Show consumable lines" +#: src/tables/build/BuildAllocatedStockTable.tsx:177 +#: src/tables/build/BuildLineTable.tsx:526 +msgid "Delete Stock Allocation" msgstr "" #: src/tables/build/BuildLineTable.tsx:59 +#~ msgid "Show lines with available stock" +#~ msgstr "Show lines with available stock" + +#: src/tables/build/BuildLineTable.tsx:175 +msgid "Show allocated lines" +msgstr "" + +#: src/tables/build/BuildLineTable.tsx:185 +msgid "Show consumable lines" +msgstr "" + +#: src/tables/build/BuildLineTable.tsx:190 msgid "Show optional lines" msgstr "" -#: src/tables/build/BuildLineTable.tsx:68 +#: src/tables/build/BuildLineTable.tsx:199 #: src/tables/part/PartTable.tsx:208 msgid "Testable" msgstr "" -#: src/tables/build/BuildLineTable.tsx:73 -#: src/tables/stock/StockItemTable.tsx:364 +#: src/tables/build/BuildLineTable.tsx:204 +#: src/tables/stock/StockItemTable.tsx:368 msgid "Tracked" msgstr "" -#: src/tables/build/BuildLineTable.tsx:74 +#: src/tables/build/BuildLineTable.tsx:205 msgid "Show tracked lines" msgstr "" -#: src/tables/build/BuildLineTable.tsx:108 -#: src/tables/sales/SalesOrderLineItemTable.tsx:133 +#: src/tables/build/BuildLineTable.tsx:239 +#: src/tables/sales/SalesOrderLineItemTable.tsx:141 msgid "In production" msgstr "" -#: src/tables/build/BuildLineTable.tsx:136 +#: src/tables/build/BuildLineTable.tsx:267 msgid "Insufficient stock" msgstr "" -#: src/tables/build/BuildLineTable.tsx:152 -#: src/tables/sales/SalesOrderLineItemTable.tsx:121 -#: src/tables/stock/StockItemTable.tsx:186 +#: src/tables/build/BuildLineTable.tsx:283 +#: src/tables/sales/SalesOrderLineItemTable.tsx:129 +#: src/tables/stock/StockItemTable.tsx:175 msgid "No stock available" msgstr "" -#: src/tables/build/BuildLineTable.tsx:201 +#: src/tables/build/BuildLineTable.tsx:355 msgid "Gets Inherited" msgstr "" -#: src/tables/build/BuildLineTable.tsx:210 +#: src/tables/build/BuildLineTable.tsx:366 msgid "Unit Quantity" msgstr "" -#: src/tables/build/BuildLineTable.tsx:267 -#: src/tables/sales/SalesOrderLineItemTable.tsx:230 +#: src/tables/build/BuildLineTable.tsx:381 +msgid "Required Quantity" +msgstr "" + +#: src/tables/build/BuildLineTable.tsx:432 +#: src/tables/sales/SalesOrderLineItemTable.tsx:254 msgid "Create Build Order" msgstr "" -#: src/tables/build/BuildLineTable.tsx:298 -msgid "Allocate Stock" +#: src/tables/build/BuildLineTable.tsx:460 +msgid "Auto allocation in progress" msgstr "" -#: src/tables/build/BuildLineTable.tsx:305 +#: src/tables/build/BuildLineTable.tsx:463 +#: src/tables/build/BuildLineTable.tsx:632 +msgid "Auto Allocate Stock" +msgstr "" + +#: src/tables/build/BuildLineTable.tsx:464 +msgid "Automatically allocate stock to this build according to the selected options" +msgstr "" + +#: src/tables/build/BuildLineTable.tsx:482 +#: src/tables/build/BuildLineTable.tsx:496 +#: src/tables/build/BuildLineTable.tsx:579 +#: src/tables/build/BuildLineTable.tsx:664 +#: src/tables/build/BuildOutputTable.tsx:314 +#: src/tables/build/BuildOutputTable.tsx:319 +msgid "Deallocate Stock" +msgstr "" + +#: src/tables/build/BuildLineTable.tsx:498 +msgid "Deallocate all untracked stock for this build order" +msgstr "" + +#: src/tables/build/BuildLineTable.tsx:500 +msgid "Deallocate stock from the selected line item" +msgstr "" + +#: src/tables/build/BuildLineTable.tsx:504 +msgid "Stock has been deallocated" +msgstr "" + +#: src/tables/build/BuildLineTable.tsx:589 msgid "Order Stock" msgstr "" -#: src/tables/build/BuildLineTable.tsx:312 +#: src/tables/build/BuildLineTable.tsx:596 msgid "Build Stock" msgstr "" -#: src/tables/build/BuildOrderTable.tsx:111 -msgid "Show active orders" +#: src/tables/build/BuildLineTable.tsx:610 +msgid "View Part" msgstr "" #: src/tables/build/BuildOrderTable.tsx:116 -msgid "Cascade" -msgstr "" +#~ msgid "Cascade" +#~ msgstr "Cascade" #: src/tables/build/BuildOrderTable.tsx:117 -msgid "Display recursive child orders" +#~ msgid "Display recursive child orders" +#~ msgstr "Display recursive child orders" + +#: src/tables/build/BuildOrderTable.tsx:121 +msgid "Show outstanding orders" msgstr "" -#: src/tables/build/BuildOrderTable.tsx:123 -#: src/tables/part/PartPurchaseOrdersTable.tsx:126 -#: src/tables/purchasing/PurchaseOrderTable.tsx:56 -#: src/tables/sales/ReturnOrderTable.tsx:47 -#: src/tables/sales/SalesOrderTable.tsx:54 +#: src/tables/build/BuildOrderTable.tsx:121 +#~ msgid "Show active orders" +#~ msgstr "Show active orders" + +#: src/tables/build/BuildOrderTable.tsx:122 +#~ msgid "Show overdue status" +#~ msgstr "Show overdue status" + +#: src/tables/build/BuildOrderTable.tsx:126 +#: src/tables/part/PartPurchaseOrdersTable.tsx:132 +#: src/tables/purchasing/PurchaseOrderTable.tsx:59 +#: src/tables/sales/ReturnOrderTable.tsx:57 +#: src/tables/sales/SalesOrderTable.tsx:57 msgid "Filter by order status" msgstr "" -#: src/tables/build/BuildOrderTable.tsx:130 -msgid "Show overdue status" -msgstr "" - -#: src/tables/build/BuildOrderTable.tsx:141 -#: src/tables/purchasing/PurchaseOrderTable.tsx:65 -#: src/tables/sales/ReturnOrderTable.tsx:56 -#: src/tables/sales/SalesOrderTable.tsx:63 +#: src/tables/build/BuildOrderTable.tsx:136 +#: src/tables/purchasing/PurchaseOrderTable.tsx:70 +#: src/tables/sales/ReturnOrderTable.tsx:68 +#: src/tables/sales/SalesOrderTable.tsx:68 msgid "Filter by project code" msgstr "" -#: src/tables/build/BuildOrderTable.tsx:146 -#: src/tables/purchasing/PurchaseOrderTable.tsx:70 -#: src/tables/sales/ReturnOrderTable.tsx:61 -#: src/tables/sales/SalesOrderTable.tsx:68 -msgid "Has Project Code" -msgstr "" - -#: src/tables/build/BuildOrderTable.tsx:147 +#: src/tables/build/BuildOrderTable.tsx:139 #: src/tables/purchasing/PurchaseOrderTable.tsx:71 #: src/tables/sales/ReturnOrderTable.tsx:62 #: src/tables/sales/SalesOrderTable.tsx:69 -msgid "Filter by whether the purchase order has a project code" -msgstr "" +#~ msgid "Filter by whether the purchase order has a project code" +#~ msgstr "Filter by whether the purchase order has a project code" -#: src/tables/build/BuildOrderTable.tsx:152 +#: src/tables/build/BuildOrderTable.tsx:143 msgid "Filter by user who issued this order" msgstr "" -#: src/tables/build/BuildOrderTable.tsx:158 -#: src/tables/purchasing/PurchaseOrderTable.tsx:76 -#: src/tables/sales/ReturnOrderTable.tsx:67 -#: src/tables/sales/SalesOrderTable.tsx:74 +#: src/tables/build/BuildOrderTable.tsx:149 +#: src/tables/purchasing/PurchaseOrderTable.tsx:77 +#: src/tables/sales/ReturnOrderTable.tsx:75 +#: src/tables/sales/SalesOrderTable.tsx:75 msgid "Filter by responsible owner" msgstr "" -#: src/tables/build/BuildOrderTestTable.tsx:75 -#: src/tables/build/BuildOrderTestTable.tsx:111 -#: src/tables/stock/StockItemTestResultTable.tsx:257 -#: src/tables/stock/StockItemTestResultTable.tsx:329 -#: src/tables/stock/StockItemTestResultTable.tsx:384 +#: src/tables/build/BuildOrderTestTable.tsx:76 +#: src/tables/build/BuildOrderTestTable.tsx:112 +#: src/tables/stock/StockItemTestResultTable.tsx:275 +#: src/tables/stock/StockItemTestResultTable.tsx:347 +#: src/tables/stock/StockItemTestResultTable.tsx:403 msgid "Add Test Result" msgstr "" -#: src/tables/build/BuildOrderTestTable.tsx:82 -#: src/tables/stock/StockItemTestResultTable.tsx:259 +#: src/tables/build/BuildOrderTestTable.tsx:83 +#: src/tables/stock/StockItemTestResultTable.tsx:277 msgid "Test result added" msgstr "" -#: src/tables/build/BuildOrderTestTable.tsx:110 -#: src/tables/stock/StockItemTestResultTable.tsx:174 +#: src/tables/build/BuildOrderTestTable.tsx:111 +#: src/tables/stock/StockItemTestResultTable.tsx:180 msgid "No Result" msgstr "" -#: src/tables/build/BuildOrderTestTable.tsx:220 +#: src/tables/build/BuildOrderTestTable.tsx:221 msgid "Show build outputs currently in production" msgstr "" +#: src/tables/build/BuildOutputTable.tsx:76 +msgid "Build Output Stock Allocation" +msgstr "" + #: src/tables/build/BuildOutputTable.tsx:161 #~ msgid "Delete build output" #~ msgstr "Delete build output" -#: src/tables/build/BuildOutputTable.tsx:173 -#: src/tables/build/BuildOutputTable.tsx:211 +#: src/tables/build/BuildOutputTable.tsx:258 +#: src/tables/build/BuildOutputTable.tsx:374 msgid "Add Build Output" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:216 +#: src/tables/build/BuildOutputTable.tsx:304 +#~ msgid "Edit build output" +#~ msgstr "Edit build output" + +#: src/tables/build/BuildOutputTable.tsx:306 +#: src/tables/build/BuildOutputTable.tsx:417 +msgid "Edit Build Output" +msgstr "" + +#: src/tables/build/BuildOutputTable.tsx:321 +msgid "This action will deallocate all stock from the selected build output" +msgstr "" + +#: src/tables/build/BuildOutputTable.tsx:341 msgid "Complete selected outputs" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:226 +#: src/tables/build/BuildOutputTable.tsx:352 msgid "Scrap selected outputs" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:236 +#: src/tables/build/BuildOutputTable.tsx:363 msgid "Cancel selected outputs" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:252 +#: src/tables/build/BuildOutputTable.tsx:385 msgid "Allocate" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:253 +#: src/tables/build/BuildOutputTable.tsx:386 msgid "Allocate stock to build output" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:259 +#: src/tables/build/BuildOutputTable.tsx:396 msgid "Deallocate" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:260 +#: src/tables/build/BuildOutputTable.tsx:397 msgid "Deallocate stock from build output" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:267 +#: src/tables/build/BuildOutputTable.tsx:408 msgid "Complete build output" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:276 +#: src/tables/build/BuildOutputTable.tsx:424 msgid "Scrap" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:277 +#: src/tables/build/BuildOutputTable.tsx:425 msgid "Scrap build output" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:280 -#~ msgid "Allocated Items" -#~ msgstr "Allocated Items" - -#: src/tables/build/BuildOutputTable.tsx:287 +#: src/tables/build/BuildOutputTable.tsx:435 msgid "Cancel build output" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:325 -msgid "Batch" -msgstr "" - -#: src/tables/build/BuildOutputTable.tsx:340 +#: src/tables/build/BuildOutputTable.tsx:488 msgid "Allocated Lines" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:355 +#: src/tables/build/BuildOutputTable.tsx:503 msgid "Required Tests" msgstr "" -#: src/tables/company/AddressTable.tsx:121 -#: src/tables/company/AddressTable.tsx:185 +#: src/tables/company/AddressTable.tsx:118 +#: src/tables/company/AddressTable.tsx:183 msgid "Add Address" msgstr "" -#: src/tables/company/AddressTable.tsx:126 +#: src/tables/company/AddressTable.tsx:123 msgid "Address created" msgstr "" -#: src/tables/company/AddressTable.tsx:135 +#: src/tables/company/AddressTable.tsx:132 msgid "Edit Address" msgstr "" -#: src/tables/company/AddressTable.tsx:143 +#: src/tables/company/AddressTable.tsx:140 msgid "Delete Address" msgstr "" -#: src/tables/company/AddressTable.tsx:144 +#: src/tables/company/AddressTable.tsx:141 msgid "Are you sure you want to delete this address?" msgstr "" @@ -6130,24 +7269,24 @@ msgstr "" #~ msgid "New Company" #~ msgstr "New Company" -#: src/tables/company/CompanyTable.tsx:74 -#: src/tables/company/CompanyTable.tsx:123 +#: src/tables/company/CompanyTable.tsx:75 +#: src/tables/company/CompanyTable.tsx:125 msgid "Add Company" msgstr "" -#: src/tables/company/CompanyTable.tsx:96 +#: src/tables/company/CompanyTable.tsx:97 msgid "Show active companies" msgstr "" -#: src/tables/company/CompanyTable.tsx:101 +#: src/tables/company/CompanyTable.tsx:102 msgid "Show companies which are suppliers" msgstr "" -#: src/tables/company/CompanyTable.tsx:106 +#: src/tables/company/CompanyTable.tsx:107 msgid "Show companies which are manufacturers" msgstr "" -#: src/tables/company/CompanyTable.tsx:111 +#: src/tables/company/CompanyTable.tsx:112 msgid "Show companies which are customers" msgstr "" @@ -6163,96 +7302,99 @@ msgstr "" msgid "Delete Contact" msgstr "" -#: src/tables/company/ContactTable.tsx:129 +#: src/tables/company/ContactTable.tsx:130 msgid "Add contact" msgstr "" -#: src/tables/general/AttachmentTable.tsx:130 +#: src/tables/general/AttachmentTable.tsx:135 msgid "File uploaded" msgstr "" -#: src/tables/general/AttachmentTable.tsx:131 +#: src/tables/general/AttachmentTable.tsx:136 msgid "File {0} uploaded successfully" msgstr "" -#: src/tables/general/AttachmentTable.tsx:142 +#: src/tables/general/AttachmentTable.tsx:147 msgid "Upload Error" msgstr "" -#: src/tables/general/AttachmentTable.tsx:143 +#: src/tables/general/AttachmentTable.tsx:148 msgid "File could not be uploaded" msgstr "" -#: src/tables/general/AttachmentTable.tsx:191 +#: src/tables/general/AttachmentTable.tsx:196 msgid "Upload Attachment" msgstr "" -#: src/tables/general/AttachmentTable.tsx:201 +#: src/tables/general/AttachmentTable.tsx:206 msgid "Edit Attachment" msgstr "" -#: src/tables/general/AttachmentTable.tsx:215 +#: src/tables/general/AttachmentTable.tsx:220 msgid "Delete Attachment" msgstr "" -#: src/tables/general/AttachmentTable.tsx:225 +#: src/tables/general/AttachmentTable.tsx:230 msgid "Is Link" msgstr "" -#: src/tables/general/AttachmentTable.tsx:226 +#: src/tables/general/AttachmentTable.tsx:231 msgid "Show link attachments" msgstr "" -#: src/tables/general/AttachmentTable.tsx:230 +#: src/tables/general/AttachmentTable.tsx:235 msgid "Is File" msgstr "" -#: src/tables/general/AttachmentTable.tsx:231 +#: src/tables/general/AttachmentTable.tsx:236 msgid "Show file attachments" msgstr "" -#: src/tables/general/AttachmentTable.tsx:240 +#: src/tables/general/AttachmentTable.tsx:245 msgid "Add attachment" msgstr "" -#: src/tables/general/AttachmentTable.tsx:251 -msgid "Add external link" -msgstr "" - #: src/tables/general/AttachmentTable.tsx:254 #~ msgid "Upload attachment" #~ msgstr "Upload attachment" -#: src/tables/general/AttachmentTable.tsx:299 +#: src/tables/general/AttachmentTable.tsx:256 +msgid "Add external link" +msgstr "" + +#: src/tables/general/AttachmentTable.tsx:304 msgid "No attachments found" msgstr "" -#: src/tables/general/AttachmentTable.tsx:337 +#: src/tables/general/AttachmentTable.tsx:343 msgid "Drag attachment file here to upload" msgstr "" #: src/tables/general/ExtraLineItemTable.tsx:86 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:251 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:60 -#: src/tables/sales/SalesOrderLineItemTable.tsx:196 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:263 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:362 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:72 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:168 +#: src/tables/sales/SalesOrderLineItemTable.tsx:206 +#: src/tables/sales/SalesOrderLineItemTable.tsx:291 msgid "Add Line Item" msgstr "" #: src/tables/general/ExtraLineItemTable.tsx:98 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:271 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:72 -#: src/tables/sales/SalesOrderLineItemTable.tsx:214 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:283 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:84 +#: src/tables/sales/SalesOrderLineItemTable.tsx:224 msgid "Edit Line Item" msgstr "" #: src/tables/general/ExtraLineItemTable.tsx:106 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:279 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:80 -#: src/tables/sales/SalesOrderLineItemTable.tsx:222 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:291 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:92 +#: src/tables/sales/SalesOrderLineItemTable.tsx:232 msgid "Delete Line Item" msgstr "" -#: src/tables/general/ExtraLineItemTable.tsx:142 +#: src/tables/general/ExtraLineItemTable.tsx:143 msgid "Add Extra Line Item" msgstr "" @@ -6261,12 +7403,12 @@ msgid "Machine restarted" msgstr "" #: src/tables/machine/MachineListTable.tsx:212 -#: src/tables/machine/MachineListTable.tsx:263 +#: src/tables/machine/MachineListTable.tsx:261 msgid "Edit machine" msgstr "" #: src/tables/machine/MachineListTable.tsx:226 -#: src/tables/machine/MachineListTable.tsx:267 +#: src/tables/machine/MachineListTable.tsx:265 msgid "Delete machine" msgstr "" @@ -6278,51 +7420,50 @@ msgstr "" msgid "Are you sure you want to remove the machine \"{0}\"?" msgstr "" -#: src/tables/machine/MachineListTable.tsx:255 -#: src/tables/machine/MachineListTable.tsx:432 +#: src/tables/machine/MachineListTable.tsx:254 +#: src/tables/machine/MachineListTable.tsx:442 msgid "Restart required" msgstr "" -#: src/tables/machine/MachineListTable.tsx:259 +#: src/tables/machine/MachineListTable.tsx:258 msgid "Machine Actions" msgstr "" -#: src/tables/machine/MachineListTable.tsx:272 +#: src/tables/machine/MachineListTable.tsx:270 msgid "Restart" msgstr "" -#: src/tables/machine/MachineListTable.tsx:274 +#: src/tables/machine/MachineListTable.tsx:272 msgid "Restart machine" msgstr "" -#: src/tables/machine/MachineListTable.tsx:276 +#: src/tables/machine/MachineListTable.tsx:274 msgid "manual restart required" msgstr "" +#: src/tables/machine/MachineListTable.tsx:291 +#~ msgid "Machine information" +#~ msgstr "Machine information" + #: src/tables/machine/MachineListTable.tsx:292 -msgid "Machine information" +msgid "Machine Information" msgstr "" -#: src/tables/machine/MachineListTable.tsx:303 -#: src/tables/machine/MachineListTable.tsx:599 +#: src/tables/machine/MachineListTable.tsx:302 +#: src/tables/machine/MachineListTable.tsx:610 msgid "Machine Type" msgstr "" -#: src/tables/machine/MachineListTable.tsx:316 +#: src/tables/machine/MachineListTable.tsx:315 msgid "Machine Driver" msgstr "" -#: src/tables/machine/MachineListTable.tsx:329 +#: src/tables/machine/MachineListTable.tsx:330 msgid "Initialized" msgstr "" -#: src/tables/machine/MachineListTable.tsx:350 -#: src/tables/machine/MachineTypeTable.tsx:261 -msgid "Errors" -msgstr "" - -#: src/tables/machine/MachineListTable.tsx:358 -#: src/tables/machine/MachineTypeTable.tsx:269 +#: src/tables/machine/MachineListTable.tsx:359 +#: src/tables/machine/MachineTypeTable.tsx:290 msgid "No errors reported" msgstr "" @@ -6330,7 +7471,7 @@ msgstr "" msgid "Machine Settings" msgstr "" -#: src/tables/machine/MachineListTable.tsx:389 +#: src/tables/machine/MachineListTable.tsx:394 msgid "Driver Settings" msgstr "" @@ -6338,86 +7479,109 @@ msgstr "" #~ msgid "Create machine" #~ msgstr "Create machine" -#: src/tables/machine/MachineListTable.tsx:506 +#: src/tables/machine/MachineListTable.tsx:516 +#: src/tables/machine/MachineListTable.tsx:558 msgid "Add machine" msgstr "" #: src/tables/machine/MachineListTable.tsx:561 -msgid "Machine detail" +#~ msgid "Machine detail" +#~ msgstr "Machine detail" + +#: src/tables/machine/MachineListTable.tsx:572 +msgid "Machine Detail" msgstr "" -#: src/tables/machine/MachineListTable.tsx:608 +#: src/tables/machine/MachineListTable.tsx:619 msgid "Driver" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:73 +#: src/tables/machine/MachineTypeTable.tsx:78 msgid "Builtin driver" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:89 +#: src/tables/machine/MachineTypeTable.tsx:96 +msgid "Not Found" +msgstr "" + +#: src/tables/machine/MachineTypeTable.tsx:99 msgid "Machine type not found." msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:97 -msgid "Machine type information" +#: src/tables/machine/MachineTypeTable.tsx:99 +#~ msgid "Machine type information" +#~ msgstr "Machine type information" + +#: src/tables/machine/MachineTypeTable.tsx:109 +msgid "Machine Type Information" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:110 -#: src/tables/machine/MachineTypeTable.tsx:217 +#: src/tables/machine/MachineTypeTable.tsx:124 +#: src/tables/machine/MachineTypeTable.tsx:238 msgid "Slug" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:118 -#: src/tables/machine/MachineTypeTable.tsx:238 +#: src/tables/machine/MachineTypeTable.tsx:135 +#: src/tables/machine/MachineTypeTable.tsx:259 msgid "Provider plugin" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:130 -#: src/tables/machine/MachineTypeTable.tsx:250 +#: src/tables/machine/MachineTypeTable.tsx:147 +#: src/tables/machine/MachineTypeTable.tsx:271 msgid "Provider file" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:135 -#: src/tables/machine/MachineTypeTable.tsx:255 -#: src/tables/plugin/PluginListTable.tsx:180 -#: src/tables/plugin/PluginListTable.tsx:568 -msgid "Builtin" +#: src/tables/machine/MachineTypeTable.tsx:148 +#~ msgid "Available drivers" +#~ msgstr "Available drivers" + +#: src/tables/machine/MachineTypeTable.tsx:162 +msgid "Available Drivers" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:146 -msgid "Available drivers" -msgstr "" - -#: src/tables/machine/MachineTypeTable.tsx:196 +#: src/tables/machine/MachineTypeTable.tsx:217 msgid "Machine driver not found." msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:204 +#: src/tables/machine/MachineTypeTable.tsx:225 msgid "Machine driver information" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:224 +#: src/tables/machine/MachineTypeTable.tsx:245 msgid "Machine type" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:327 +#: src/tables/machine/MachineTypeTable.tsx:338 +#~ msgid "Machine type detail" +#~ msgstr "Machine type detail" + +#: src/tables/machine/MachineTypeTable.tsx:348 msgid "Builtin type" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:336 -msgid "Machine type detail" +#: src/tables/machine/MachineTypeTable.tsx:348 +#~ msgid "Machine driver detail" +#~ msgstr "Machine driver detail" + +#: src/tables/machine/MachineTypeTable.tsx:357 +msgid "Machine Type Detail" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:346 -msgid "Machine driver detail" +#: src/tables/machine/MachineTypeTable.tsx:367 +msgid "Machine Driver Detail" msgstr "" #: src/tables/notifications/NotificationsTable.tsx:26 msgid "Age" msgstr "" +#: src/tables/notifications/NotificationsTable.tsx:36 +msgid "Notification" +msgstr "" + #: src/tables/notifications/NotificationsTable.tsx:40 #: src/tables/plugin/PluginErrorTable.tsx:37 +#: src/tables/settings/ErrorTable.tsx:50 msgid "Message" msgstr "" @@ -6451,33 +7615,32 @@ msgstr "" msgid "Show assembly parts" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:68 +#: src/tables/part/PartCategoryTable.tsx:48 +msgid "You are subscribed to notifications for this category" +msgstr "" + +#: src/tables/part/PartCategoryTable.tsx:80 #: src/tables/part/PartTable.tsx:196 msgid "Include Subcategories" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:69 +#: src/tables/part/PartCategoryTable.tsx:81 msgid "Include subcategories in results" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:74 +#: src/tables/part/PartCategoryTable.tsx:86 msgid "Show structural categories" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:78 -#: src/tables/part/PartTable.tsx:294 -msgid "Subscribed" -msgstr "" - -#: src/tables/part/PartCategoryTable.tsx:79 +#: src/tables/part/PartCategoryTable.tsx:91 msgid "Show categories to which the user is subscribed" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:86 +#: src/tables/part/PartCategoryTable.tsx:100 msgid "New Part Category" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:112 +#: src/tables/part/PartCategoryTable.tsx:129 msgid "Add Part Category" msgstr "" @@ -6523,11 +7686,6 @@ msgstr "" msgid "Part parameters cannot be edited, as the part is locked" msgstr "" -#: src/tables/part/PartParameterTable.tsx:212 -#: src/tables/stock/StockItemTable.tsx:335 -msgid "Include Variants" -msgstr "" - #: src/tables/part/PartParameterTemplateTable.tsx:31 msgid "Checkbox" msgstr "" @@ -6554,6 +7712,7 @@ msgid "Show templates with units" msgstr "" #: src/tables/part/PartParameterTemplateTable.tsx:85 +#: src/tables/part/PartParameterTemplateTable.tsx:141 msgid "Add Parameter Template" msgstr "" @@ -6566,23 +7725,19 @@ msgid "Delete Parameter Template" msgstr "" #: src/tables/part/PartParameterTemplateTable.tsx:141 -msgid "Add parameter template" -msgstr "" +#~ msgid "Add parameter template" +#~ msgstr "Add parameter template" -#: src/tables/part/PartPurchaseOrdersTable.tsx:77 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:162 +#: src/tables/part/PartPurchaseOrdersTable.tsx:78 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:168 msgid "Total Quantity" msgstr "" -#: src/tables/part/PartPurchaseOrdersTable.tsx:115 -msgid "Pending" -msgstr "" - -#: src/tables/part/PartPurchaseOrdersTable.tsx:116 +#: src/tables/part/PartPurchaseOrdersTable.tsx:122 msgid "Show pending orders" msgstr "" -#: src/tables/part/PartPurchaseOrdersTable.tsx:121 +#: src/tables/part/PartPurchaseOrdersTable.tsx:127 msgid "Show received items" msgstr "" @@ -6728,22 +7883,13 @@ msgstr "" msgid "Results" msgstr "" -#: src/tables/part/PartTestTemplateTable.tsx:76 -msgid "No Results" -msgstr "" - -#: src/tables/part/PartTestTemplateTable.tsx:106 -#: src/tables/stock/StockItemTestResultTable.tsx:365 -msgid "Required" -msgstr "" - #: src/tables/part/PartTestTemplateTable.tsx:107 msgid "Show required tests" msgstr "" #: src/tables/part/PartTestTemplateTable.tsx:111 -#: src/tables/settings/TemplateTable.tsx:167 -#: src/tables/settings/TemplateTable.tsx:283 +#: src/tables/settings/TemplateTable.tsx:247 +#: src/tables/settings/TemplateTable.tsx:363 msgid "Enabled" msgstr "" @@ -6784,7 +7930,7 @@ msgid "Show tests which have recorded results" msgstr "" #: src/tables/part/PartTestTemplateTable.tsx:154 -#: src/tables/part/PartTestTemplateTable.tsx:237 +#: src/tables/part/PartTestTemplateTable.tsx:238 msgid "Add Test Template" msgstr "" @@ -6808,7 +7954,7 @@ msgstr "" msgid "View Parent Part" msgstr "" -#: src/tables/part/PartTestTemplateTable.tsx:257 +#: src/tables/part/PartTestTemplateTable.tsx:258 msgid "Part templates cannot be edited, as the part is locked" msgstr "" @@ -6836,28 +7982,49 @@ msgstr "" msgid "Show trackable variants" msgstr "" -#: src/tables/part/RelatedPartTable.tsx:84 +#: src/tables/part/RelatedPartTable.tsx:86 +#: src/tables/part/RelatedPartTable.tsx:109 msgid "Add Related Part" msgstr "" -#: src/tables/part/RelatedPartTable.tsx:99 +#: src/tables/part/RelatedPartTable.tsx:101 msgid "Delete Related Part" msgstr "" -#: src/tables/part/RelatedPartTable.tsx:106 -msgid "Add related part" -msgstr "" +#: src/tables/part/RelatedPartTable.tsx:109 +#~ msgid "Add related part" +#~ msgstr "Add related part" #: src/tables/plugin/PluginErrorTable.tsx:29 msgid "Stage" msgstr "" -#: src/tables/plugin/PluginListTable.tsx:95 -msgid "Plugin with key {pluginKey} not found" +#: src/tables/plugin/PluginListTable.tsx:42 +msgid "Plugin is active" msgstr "" +#: src/tables/plugin/PluginListTable.tsx:48 +msgid "Plugin is inactive" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:55 +msgid "Plugin is not installed" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:76 +msgid "Plugin" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:95 +#~ msgid "Plugin with key {pluginKey} not found" +#~ msgstr "Plugin with key {pluginKey} not found" + #: src/tables/plugin/PluginListTable.tsx:97 -msgid "An error occurred while fetching plugin details" +#~ msgid "An error occurred while fetching plugin details" +#~ msgstr "An error occurred while fetching plugin details" + +#: src/tables/plugin/PluginListTable.tsx:109 +msgid "Description not available" msgstr "" #: src/tables/plugin/PluginListTable.tsx:113 @@ -6865,12 +8032,8 @@ msgstr "" #~ msgstr "Plugin with id {id} not found" #: src/tables/plugin/PluginListTable.tsx:122 -msgid "Plugin information" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:134 -msgid "Author" -msgstr "" +#~ msgid "Plugin information" +#~ msgstr "Plugin information" #: src/tables/plugin/PluginListTable.tsx:134 #~ msgid "Plugin Actions" @@ -6881,79 +8044,124 @@ msgstr "" #~ msgid "Edit plugin" #~ msgstr "Edit plugin" +#: src/tables/plugin/PluginListTable.tsx:144 +msgid "Confirm plugin activation" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:145 +msgid "Confirm plugin deactivation" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:150 +msgid "The selected plugin will be activated" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:151 +msgid "The selected plugin will be deactivated" +msgstr "" + #: src/tables/plugin/PluginListTable.tsx:152 #: src/tables/plugin/PluginListTable.tsx:153 #~ msgid "Reload" #~ msgstr "Reload" -#: src/tables/plugin/PluginListTable.tsx:154 -msgid "Plugin is not active" -msgstr "" - #: src/tables/plugin/PluginListTable.tsx:163 -msgid "Package information" -msgstr "" +#~ msgid "Package information" +#~ msgstr "Package information" #: src/tables/plugin/PluginListTable.tsx:169 -msgid "Package Name" +msgid "Deactivate" msgstr "" -#: src/tables/plugin/PluginListTable.tsx:175 -msgid "Installation Path" +#: src/tables/plugin/PluginListTable.tsx:183 +msgid "Activate" msgstr "" -#: src/tables/plugin/PluginListTable.tsx:185 -msgid "Package" +#: src/tables/plugin/PluginListTable.tsx:184 +msgid "Activate selected plugin" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:196 +msgid "Update selected plugin" msgstr "" #: src/tables/plugin/PluginListTable.tsx:197 -msgid "Plugin settings" -msgstr "" +#~ msgid "Plugin settings" +#~ msgstr "Plugin settings" #: src/tables/plugin/PluginListTable.tsx:214 -msgid "Plugin is active" +#: src/tables/stock/InstalledItemsTable.tsx:107 +msgid "Uninstall" msgstr "" -#: src/tables/plugin/PluginListTable.tsx:220 -msgid "Plugin is inactive" +#: src/tables/plugin/PluginListTable.tsx:215 +msgid "Uninstall selected plugin" msgstr "" -#: src/tables/plugin/PluginListTable.tsx:227 -msgid "Plugin is not installed" +#: src/tables/plugin/PluginListTable.tsx:233 +msgid "Delete selected plugin configuration" msgstr "" -#: src/tables/plugin/PluginListTable.tsx:253 -msgid "Plugin" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:287 -msgid "Description not available" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:319 -msgid "Confirm plugin activation" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:320 -msgid "Confirm plugin deactivation" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:325 -msgid "The selected plugin will be activated" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:326 -msgid "The selected plugin will be deactivated" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:334 +#: src/tables/plugin/PluginListTable.tsx:249 msgid "Activate Plugin" msgstr "" +#: src/tables/plugin/PluginListTable.tsx:270 +msgid "Install plugin" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:283 +msgid "Install" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:284 +msgid "Plugin installed successfully" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:289 +msgid "Uninstall Plugin" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:301 +msgid "Confirm plugin uninstall" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:304 +msgid "The selected plugin will be uninstalled." +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:308 +#~ msgid "This action cannot be undone." +#~ msgstr "This action cannot be undone." + +#: src/tables/plugin/PluginListTable.tsx:309 +msgid "Plugin uninstalled successfully" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:317 +msgid "Delete Plugin" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:318 +msgid "Deleting this plugin configuration will remove all associated settings and data. Are you sure you want to delete this plugin?" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:331 +msgid "Plugins reloaded" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:332 +msgid "Plugins were reloaded successfully" +msgstr "" + #: src/tables/plugin/PluginListTable.tsx:338 #~ msgid "Deactivate Plugin" #~ msgstr "Deactivate Plugin" +#: src/tables/plugin/PluginListTable.tsx:350 +msgid "Reload Plugins" +msgstr "" + #: src/tables/plugin/PluginListTable.tsx:354 #~ msgid "The following plugin will be activated" #~ msgstr "The following plugin will be activated" @@ -6962,16 +8170,16 @@ msgstr "" #~ msgid "The following plugin will be deactivated" #~ msgstr "The following plugin will be deactivated" -#: src/tables/plugin/PluginListTable.tsx:362 -msgid "Deactivate" +#: src/tables/plugin/PluginListTable.tsx:357 +msgid "Install Plugin" msgstr "" #: src/tables/plugin/PluginListTable.tsx:366 #~ msgid "Confirm" #~ msgstr "Confirm" -#: src/tables/plugin/PluginListTable.tsx:373 -msgid "Activate" +#: src/tables/plugin/PluginListTable.tsx:374 +msgid "Plugin Detail" msgstr "" #: src/tables/plugin/PluginListTable.tsx:376 @@ -6998,76 +8206,12 @@ msgstr "" #~ msgid "Error updating plugin" #~ msgstr "Error updating plugin" -#: src/tables/plugin/PluginListTable.tsx:406 -msgid "Uninstall" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:438 -msgid "Install plugin" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:451 -msgid "Install" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:452 -msgid "Plugin installed successfully" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:457 -msgid "Uninstall Plugin" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:469 -msgid "Confirm plugin uninstall" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:472 -msgid "The selected plugin will be uninstalled." -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:473 -msgid "This action cannot be undone." -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:477 -msgid "Plugin uninstalled successfully" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:484 -msgid "Delete Plugin" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:485 -msgid "Deleting this plugin configuration will remove all associated settings and data. Are you sure you want to delete this plugin?" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:498 -msgid "Plugins reloaded" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:499 -msgid "Plugins were reloaded successfully" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:515 -msgid "Reload Plugins" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:524 -msgid "Install Plugin" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:544 -msgid "Plugin Detail" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:573 +#: src/tables/plugin/PluginListTable.tsx:411 msgid "Sample" msgstr "" -#: src/tables/plugin/PluginListTable.tsx:578 -#: src/tables/stock/StockItemTable.tsx:340 +#: src/tables/plugin/PluginListTable.tsx:416 +#: src/tables/stock/StockItemTable.tsx:344 msgid "Installed" msgstr "" @@ -7116,82 +8260,78 @@ msgstr "" #~ msgid "Are you sure you want to remove this manufacturer part?" #~ msgstr "Are you sure you want to remove this manufacturer part?" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:102 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:339 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:103 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:356 msgid "Import Line Items" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:135 -msgid "Part Description" -msgstr "" - -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:201 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:207 msgid "Supplier Code" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:208 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:214 msgid "Supplier Link" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:215 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:220 msgid "Manufacturer Code" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:229 -msgid "Destination" +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:248 +msgid "Show line items which have been received" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:300 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:316 msgid "Receive line item" msgstr "" #: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:344 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:142 -#: src/tables/sales/SalesOrderLineItemTable.tsx:240 -msgid "Add line item" -msgstr "" +#: src/tables/sales/ReturnOrderLineItemTable.tsx:160 +#: src/tables/sales/SalesOrderLineItemTable.tsx:258 +#~ msgid "Add line item" +#~ msgstr "Add line item" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:354 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:373 msgid "Receive items" msgstr "" -#: src/tables/purchasing/SupplierPartTable.tsx:93 +#: src/tables/purchasing/SupplierPartTable.tsx:95 msgid "MPN" msgstr "" -#: src/tables/purchasing/SupplierPartTable.tsx:122 +#: src/tables/purchasing/SupplierPartTable.tsx:124 msgid "Base units" msgstr "" -#: src/tables/purchasing/SupplierPartTable.tsx:170 +#: src/tables/purchasing/SupplierPartTable.tsx:172 msgid "Supplier part created" msgstr "" -#: src/tables/purchasing/SupplierPartTable.tsx:176 +#: src/tables/purchasing/SupplierPartTable.tsx:179 msgid "Add supplier part" msgstr "" -#: src/tables/purchasing/SupplierPartTable.tsx:188 +#: src/tables/purchasing/SupplierPartTable.tsx:191 msgid "Show active supplier parts" msgstr "" -#: src/tables/purchasing/SupplierPartTable.tsx:192 -msgid "Active Part" -msgstr "" - -#: src/tables/purchasing/SupplierPartTable.tsx:193 -msgid "Show active internal parts" -msgstr "" - #: src/tables/purchasing/SupplierPartTable.tsx:193 #~ msgid "Supplier part updated" #~ msgstr "Supplier part updated" -#: src/tables/purchasing/SupplierPartTable.tsx:197 +#: src/tables/purchasing/SupplierPartTable.tsx:195 +msgid "Active Part" +msgstr "" + +#: src/tables/purchasing/SupplierPartTable.tsx:196 +msgid "Show active internal parts" +msgstr "" + +#: src/tables/purchasing/SupplierPartTable.tsx:200 msgid "Active Supplier" msgstr "" -#: src/tables/purchasing/SupplierPartTable.tsx:198 +#: src/tables/purchasing/SupplierPartTable.tsx:201 msgid "Show active suppliers" msgstr "" @@ -7203,99 +8343,187 @@ msgstr "" #~ msgid "Are you sure you want to remove this supplier part?" #~ msgstr "Are you sure you want to remove this supplier part?" -#: src/tables/sales/ReturnOrderLineItemTable.tsx:114 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:139 msgid "Received Date" msgstr "" -#: src/tables/sales/ReturnOrderLineItemTable.tsx:128 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:153 msgid "Show items which have been received" msgstr "" -#: src/tables/sales/ReturnOrderLineItemTable.tsx:133 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:158 msgid "Filter by line item status" msgstr "" -#: src/tables/sales/ReturnOrderLineItemTable.tsx:158 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:176 +msgid "Receive selected items" +msgstr "" + +#: src/tables/sales/ReturnOrderLineItemTable.tsx:205 msgid "Receive Item" msgstr "" -#: src/tables/sales/SalesOrderLineItemTable.tsx:262 -msgid "Allocate stock" +#: src/tables/sales/SalesOrderAllocationTable.tsx:60 +msgid "Show outstanding allocations" msgstr "" -#: src/tables/sales/SalesOrderLineItemTable.tsx:272 +#: src/tables/sales/SalesOrderAllocationTable.tsx:168 +#: src/tables/sales/SalesOrderAllocationTable.tsx:190 +msgid "Edit Allocation" +msgstr "" + +#: src/tables/sales/SalesOrderAllocationTable.tsx:175 +#: src/tables/sales/SalesOrderAllocationTable.tsx:197 +msgid "Delete Allocation" +msgstr "" + +#: src/tables/sales/SalesOrderLineItemTable.tsx:244 +msgid "Allocate Serial Numbers" +msgstr "" + +#: src/tables/sales/SalesOrderLineItemTable.tsx:277 +msgid "Show lines which are fully allocated" +msgstr "" + +#: src/tables/sales/SalesOrderLineItemTable.tsx:280 +#~ msgid "Allocate stock" +#~ msgstr "Allocate stock" + +#: src/tables/sales/SalesOrderLineItemTable.tsx:282 +msgid "Show lines which are completed" +msgstr "" + +#: src/tables/sales/SalesOrderLineItemTable.tsx:291 +#~ msgid "Allocate Serials" +#~ msgstr "Allocate Serials" + +#: src/tables/sales/SalesOrderLineItemTable.tsx:340 +msgid "Allocate serials" +msgstr "" + +#: src/tables/sales/SalesOrderLineItemTable.tsx:356 msgid "Build stock" msgstr "" -#: src/tables/sales/SalesOrderLineItemTable.tsx:289 -#: src/tables/stock/StockItemTable.tsx:507 +#: src/tables/sales/SalesOrderLineItemTable.tsx:373 +#: src/tables/stock/StockItemTable.tsx:512 msgid "Order stock" msgstr "" -#: src/tables/sales/SalesOrderShipmentTable.tsx:40 +#: src/tables/sales/SalesOrderShipmentTable.tsx:51 +#~ msgid "Delete Shipment" +#~ msgstr "Delete Shipment" + +#: src/tables/sales/SalesOrderShipmentTable.tsx:57 msgid "Create Shipment" msgstr "" -#: src/tables/sales/SalesOrderShipmentTable.tsx:50 -msgid "Delete Shipment" -msgstr "" - -#: src/tables/sales/SalesOrderShipmentTable.tsx:58 -msgid "Edit Shipment" -msgstr "" - -#: src/tables/sales/SalesOrderShipmentTable.tsx:66 -msgid "Shipment Reference" -msgstr "" - -#: src/tables/sales/SalesOrderShipmentTable.tsx:71 +#: src/tables/sales/SalesOrderShipmentTable.tsx:104 msgid "Items" msgstr "" -#: src/tables/sales/SalesOrderShipmentTable.tsx:83 -msgid "Delivery Date" +#: src/tables/sales/SalesOrderShipmentTable.tsx:139 +msgid "View Shipment" msgstr "" -#: src/tables/sales/SalesOrderShipmentTable.tsx:107 -msgid "Complete Shipment" +#: src/tables/sales/SalesOrderShipmentTable.tsx:161 +msgid "Edit shipment" msgstr "" -#: src/tables/sales/SalesOrderShipmentTable.tsx:133 +#: src/tables/sales/SalesOrderShipmentTable.tsx:169 +msgid "Cancel shipment" +msgstr "" + +#: src/tables/sales/SalesOrderShipmentTable.tsx:184 msgid "Add shipment" msgstr "" -#: src/tables/sales/SalesOrderShipmentTable.tsx:146 -msgid "Shipped" -msgstr "" - -#: src/tables/sales/SalesOrderShipmentTable.tsx:147 +#: src/tables/sales/SalesOrderShipmentTable.tsx:198 msgid "Show shipments which have been shipped" msgstr "" -#: src/tables/sales/SalesOrderShipmentTable.tsx:151 -msgid "Delivered" -msgstr "" - -#: src/tables/sales/SalesOrderShipmentTable.tsx:152 +#: src/tables/sales/SalesOrderShipmentTable.tsx:203 msgid "Show shipments which have been delivered" msgstr "" -#: src/tables/settings/CurrencyTable.tsx:28 -msgid "Rate" +#: src/tables/settings/BarcodeScanHistoryTable.tsx:61 +msgid "Barcode Information" msgstr "" -#: src/tables/settings/CurrencyTable.tsx:40 -msgid "Exchange rates updated" +#: src/tables/settings/BarcodeScanHistoryTable.tsx:76 +#: src/tables/settings/ErrorTable.tsx:59 +msgid "Timestamp" msgstr "" -#: src/tables/settings/CurrencyTable.tsx:46 -msgid "Exchange rate update error" +#: src/tables/settings/BarcodeScanHistoryTable.tsx:86 +msgid "Endpoint" msgstr "" -#: src/tables/settings/CurrencyTable.tsx:57 -msgid "Refresh currency exchange rates" +#: src/tables/settings/BarcodeScanHistoryTable.tsx:90 +#: src/tables/settings/BarcodeScanHistoryTable.tsx:217 +#: src/tables/stock/StockItemTestResultTable.tsx:174 +msgid "Result" msgstr "" +#: src/tables/settings/BarcodeScanHistoryTable.tsx:98 +msgid "Context" +msgstr "" + +#: src/tables/settings/BarcodeScanHistoryTable.tsx:119 +msgid "Response" +msgstr "" + +#: src/tables/settings/BarcodeScanHistoryTable.tsx:213 +#: src/tables/settings/ImportSessionTable.tsx:121 +#: src/tables/stock/StockTrackingTable.tsx:183 +msgid "Filter by user" +msgstr "" + +#: src/tables/settings/BarcodeScanHistoryTable.tsx:218 +msgid "Filter by result" +msgstr "" + +#: src/tables/settings/BarcodeScanHistoryTable.tsx:232 +msgid "Delete Barcode Scan Record" +msgstr "" + +#: src/tables/settings/BarcodeScanHistoryTable.tsx:258 +msgid "Barcode Scan Details" +msgstr "" + +#: src/tables/settings/BarcodeScanHistoryTable.tsx:268 +msgid "Logging Disabled" +msgstr "" + +#: src/tables/settings/BarcodeScanHistoryTable.tsx:270 +msgid "Barcode logging is not enabled" +msgstr "" + +#: src/tables/settings/CustomStateTable.tsx:36 +msgid "Display Name" +msgstr "" + +#: src/tables/settings/CustomStateTable.tsx:52 +msgid "Model" +msgstr "" + +#: src/tables/settings/CustomStateTable.tsx:65 +#: src/tables/settings/CustomStateTable.tsx:115 +msgid "Add State" +msgstr "" + +#: src/tables/settings/CustomStateTable.tsx:77 +msgid "Edit State" +msgstr "" + +#: src/tables/settings/CustomStateTable.tsx:85 +msgid "Delete State" +msgstr "" + +#: src/tables/settings/CustomStateTable.tsx:115 +#~ msgid "Add state" +#~ msgstr "Add state" + #: src/tables/settings/CustomUnitsTable.tsx:50 msgid "Add Custom Unit" msgstr "" @@ -7312,59 +8540,71 @@ msgstr "" msgid "Add custom unit" msgstr "" -#: src/tables/settings/ErrorTable.tsx:31 -msgid "When" -msgstr "" - -#: src/tables/settings/ErrorTable.tsx:41 -msgid "Error Information" -msgstr "" - #: src/tables/settings/ErrorTable.tsx:51 #~ msgid "Delete error report" #~ msgstr "Delete error report" -#: src/tables/settings/ErrorTable.tsx:53 +#: src/tables/settings/ErrorTable.tsx:67 +msgid "Traceback" +msgstr "" + +#: src/tables/settings/ErrorTable.tsx:103 +msgid "When" +msgstr "" + +#: src/tables/settings/ErrorTable.tsx:113 +msgid "Error Information" +msgstr "" + +#: src/tables/settings/ErrorTable.tsx:123 msgid "Delete Error Report" msgstr "" -#: src/tables/settings/ErrorTable.tsx:55 +#: src/tables/settings/ErrorTable.tsx:125 msgid "Are you sure you want to delete this error report?" msgstr "" -#: src/tables/settings/ErrorTable.tsx:57 +#: src/tables/settings/ErrorTable.tsx:127 msgid "Error report deleted" msgstr "" -#: src/tables/settings/ErrorTable.tsx:79 -#: src/tables/settings/FailedTasksTable.tsx:59 +#: src/tables/settings/ErrorTable.tsx:146 +#: src/tables/settings/FailedTasksTable.tsx:65 msgid "Error Details" msgstr "" -#: src/tables/settings/FailedTasksTable.tsx:26 -#: src/tables/settings/PendingTasksTable.tsx:19 +#: src/tables/settings/FailedTasksTable.tsx:32 +#: src/tables/settings/PendingTasksTable.tsx:23 #: src/tables/settings/ScheduledTasksTable.tsx:19 msgid "Task" msgstr "" -#: src/tables/settings/FailedTasksTable.tsx:32 -#: src/tables/settings/PendingTasksTable.tsx:24 +#: src/tables/settings/FailedTasksTable.tsx:38 +#: src/tables/settings/PendingTasksTable.tsx:28 msgid "Task ID" msgstr "" -#: src/tables/settings/FailedTasksTable.tsx:36 -#: src/tables/stock/StockItemTestResultTable.tsx:211 +#: src/tables/settings/FailedTasksTable.tsx:42 +#: src/tables/stock/StockItemTestResultTable.tsx:218 msgid "Started" msgstr "" -#: src/tables/settings/FailedTasksTable.tsx:42 +#: src/tables/settings/FailedTasksTable.tsx:48 msgid "Stopped" msgstr "" -#: src/tables/settings/FailedTasksTable.tsx:48 +#: src/tables/settings/FailedTasksTable.tsx:54 msgid "Attempts" msgstr "" +#: src/tables/settings/FailedTasksTable.tsx:92 +msgid "No Information" +msgstr "" + +#: src/tables/settings/FailedTasksTable.tsx:93 +msgid "No error details are available for this task" +msgstr "" + #: src/tables/settings/GroupTable.tsx:90 msgid "Group with id {id} not found" msgstr "" @@ -7398,42 +8638,34 @@ msgstr "" msgid "Edit group" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:38 +#: src/tables/settings/ImportSessionTable.tsx:37 msgid "Delete Import Session" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:44 +#: src/tables/settings/ImportSessionTable.tsx:43 #: src/tables/settings/ImportSessionTable.tsx:131 msgid "Create Import Session" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:69 +#: src/tables/settings/ImportSessionTable.tsx:68 msgid "Uploaded" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:79 -msgid "Imported Rows" -msgstr "" - -#: src/tables/settings/ImportSessionTable.tsx:109 -#: src/tables/settings/TemplateTable.tsx:289 +#: src/tables/settings/ImportSessionTable.tsx:108 +#: src/tables/settings/TemplateTable.tsx:369 msgid "Model Type" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:110 -#: src/tables/settings/TemplateTable.tsx:290 +#: src/tables/settings/ImportSessionTable.tsx:109 +#: src/tables/settings/TemplateTable.tsx:370 msgid "Filter by target model type" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:116 +#: src/tables/settings/ImportSessionTable.tsx:115 msgid "Filter by import session status" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:122 -msgid "Filter by user" -msgstr "" - -#: src/tables/settings/PendingTasksTable.tsx:38 +#: src/tables/settings/PendingTasksTable.tsx:42 msgid "Arguments" msgstr "" @@ -7461,12 +8693,16 @@ msgstr "" msgid "Next Run" msgstr "" -#: src/tables/settings/TemplateTable.tsx:85 -msgid "Template not found" +#: src/tables/settings/StocktakeReportTable.tsx:28 +msgid "Report" msgstr "" -#: src/tables/settings/TemplateTable.tsx:87 -msgid "An error occurred while fetching template details" +#: src/tables/settings/StocktakeReportTable.tsx:35 +msgid "Part Count" +msgstr "" + +#: src/tables/settings/StocktakeReportTable.tsx:58 +msgid "Delete Report" msgstr "" #: src/tables/settings/TemplateTable.tsx:120 @@ -7481,21 +8717,12 @@ msgstr "" #~ msgid "actions" #~ msgstr "actions" -#: src/tables/settings/TemplateTable.tsx:177 -msgid "Modify" +#: src/tables/settings/TemplateTable.tsx:162 +msgid "Template not found" msgstr "" -#: src/tables/settings/TemplateTable.tsx:178 -msgid "Modify template file" -msgstr "" - -#: src/tables/settings/TemplateTable.tsx:234 -#: src/tables/settings/TemplateTable.tsx:302 -msgid "Edit Template" -msgstr "" - -#: src/tables/settings/TemplateTable.tsx:242 -msgid "Delete template" +#: src/tables/settings/TemplateTable.tsx:164 +msgid "An error occurred while fetching template details" msgstr "" #: src/tables/settings/TemplateTable.tsx:243 @@ -7506,103 +8733,137 @@ msgstr "" #~ msgid "Create new" #~ msgstr "Create new" -#: src/tables/settings/TemplateTable.tsx:248 +#: src/tables/settings/TemplateTable.tsx:257 +msgid "Modify" +msgstr "" + +#: src/tables/settings/TemplateTable.tsx:258 +msgid "Modify template file" +msgstr "" + +#: src/tables/settings/TemplateTable.tsx:314 +#: src/tables/settings/TemplateTable.tsx:382 +msgid "Edit Template" +msgstr "" + +#: src/tables/settings/TemplateTable.tsx:322 +msgid "Delete template" +msgstr "" + +#: src/tables/settings/TemplateTable.tsx:328 msgid "Add Template" msgstr "" -#: src/tables/settings/TemplateTable.tsx:261 +#: src/tables/settings/TemplateTable.tsx:341 msgid "Add template" msgstr "" -#: src/tables/settings/TemplateTable.tsx:284 +#: src/tables/settings/TemplateTable.tsx:364 msgid "Filter by enabled status" msgstr "" -#: src/tables/settings/UserTable.tsx:82 +#: src/tables/settings/UserTable.tsx:81 msgid "User with id {id} not found" msgstr "" -#: src/tables/settings/UserTable.tsx:84 +#: src/tables/settings/UserTable.tsx:83 msgid "An error occurred while fetching user details" msgstr "" -#: src/tables/settings/UserTable.tsx:102 +#: src/tables/settings/UserTable.tsx:101 msgid "Is Active" msgstr "" -#: src/tables/settings/UserTable.tsx:103 +#: src/tables/settings/UserTable.tsx:102 msgid "Designates whether this user should be treated as active. Unselect this instead of deleting accounts." msgstr "" -#: src/tables/settings/UserTable.tsx:107 +#: src/tables/settings/UserTable.tsx:106 msgid "Is Staff" msgstr "" -#: src/tables/settings/UserTable.tsx:108 +#: src/tables/settings/UserTable.tsx:107 msgid "Designates whether the user can log into the django admin site." msgstr "" -#: src/tables/settings/UserTable.tsx:112 +#: src/tables/settings/UserTable.tsx:111 msgid "Is Superuser" msgstr "" -#: src/tables/settings/UserTable.tsx:113 +#: src/tables/settings/UserTable.tsx:112 msgid "Designates that this user has all permissions without explicitly assigning them." msgstr "" -#: src/tables/settings/UserTable.tsx:123 +#: src/tables/settings/UserTable.tsx:122 msgid "You cannot edit the rights for the currently logged-in user." msgstr "" -#: src/tables/settings/UserTable.tsx:154 +#: src/tables/settings/UserTable.tsx:153 msgid "No groups" msgstr "" -#: src/tables/settings/UserTable.tsx:245 +#: src/tables/settings/UserTable.tsx:244 msgid "Delete user" msgstr "" -#: src/tables/settings/UserTable.tsx:246 +#: src/tables/settings/UserTable.tsx:245 msgid "User deleted" msgstr "" -#: src/tables/settings/UserTable.tsx:248 +#: src/tables/settings/UserTable.tsx:247 msgid "Are you sure you want to delete this user?" msgstr "" -#: src/tables/settings/UserTable.tsx:254 -#: src/tables/settings/UserTable.tsx:272 +#: src/tables/settings/UserTable.tsx:253 +#: src/tables/settings/UserTable.tsx:271 msgid "Add user" msgstr "" -#: src/tables/settings/UserTable.tsx:262 +#: src/tables/settings/UserTable.tsx:261 msgid "Added user" msgstr "" -#: src/tables/settings/UserTable.tsx:285 +#: src/tables/settings/UserTable.tsx:284 msgid "Show active users" msgstr "" -#: src/tables/settings/UserTable.tsx:289 +#: src/tables/settings/UserTable.tsx:288 msgid "Staff" msgstr "" -#: src/tables/settings/UserTable.tsx:290 +#: src/tables/settings/UserTable.tsx:289 msgid "Show staff users" msgstr "" #: src/tables/settings/UserTable.tsx:294 -msgid "Superuser" -msgstr "" - -#: src/tables/settings/UserTable.tsx:295 msgid "Show superusers" msgstr "" -#: src/tables/settings/UserTable.tsx:305 +#: src/tables/settings/UserTable.tsx:304 msgid "Edit user" msgstr "" +#: src/tables/stock/InstalledItemsTable.tsx:37 +#: src/tables/stock/InstalledItemsTable.tsx:90 +msgid "Install Item" +msgstr "" + +#: src/tables/stock/InstalledItemsTable.tsx:39 +msgid "Item installed" +msgstr "" + +#: src/tables/stock/InstalledItemsTable.tsx:50 +msgid "Uninstall Item" +msgstr "" + +#: src/tables/stock/InstalledItemsTable.tsx:52 +msgid "Item uninstalled" +msgstr "" + +#: src/tables/stock/InstalledItemsTable.tsx:108 +msgid "Uninstall stock item" +msgstr "" + #: src/tables/stock/LocationTypesTable.tsx:39 #: src/tables/stock/LocationTypesTable.tsx:109 msgid "Add Location Type" @@ -7620,276 +8881,272 @@ msgstr "" msgid "Icon" msgstr "" -#: src/tables/stock/StockItemTable.tsx:101 +#: src/tables/stock/StockItemTable.tsx:90 msgid "This stock item is in production" msgstr "" -#: src/tables/stock/StockItemTable.tsx:110 +#: src/tables/stock/StockItemTable.tsx:97 msgid "This stock item has been assigned to a sales order" msgstr "" -#: src/tables/stock/StockItemTable.tsx:119 +#: src/tables/stock/StockItemTable.tsx:104 msgid "This stock item has been assigned to a customer" msgstr "" -#: src/tables/stock/StockItemTable.tsx:128 +#: src/tables/stock/StockItemTable.tsx:111 msgid "This stock item is installed in another stock item" msgstr "" -#: src/tables/stock/StockItemTable.tsx:137 +#: src/tables/stock/StockItemTable.tsx:118 msgid "This stock item has been consumed by a build order" msgstr "" -#: src/tables/stock/StockItemTable.tsx:146 +#: src/tables/stock/StockItemTable.tsx:125 +msgid "This stock item is unavailable" +msgstr "" + +#: src/tables/stock/StockItemTable.tsx:134 msgid "This stock item has expired" msgstr "" -#: src/tables/stock/StockItemTable.tsx:150 +#: src/tables/stock/StockItemTable.tsx:138 msgid "This stock item is stale" msgstr "" -#: src/tables/stock/StockItemTable.tsx:161 +#: src/tables/stock/StockItemTable.tsx:150 msgid "This stock item is fully allocated" msgstr "" -#: src/tables/stock/StockItemTable.tsx:168 +#: src/tables/stock/StockItemTable.tsx:157 msgid "This stock item is partially allocated" msgstr "" -#: src/tables/stock/StockItemTable.tsx:196 +#: src/tables/stock/StockItemTable.tsx:185 msgid "This stock item has been depleted" msgstr "" -#: src/tables/stock/StockItemTable.tsx:232 +#: src/tables/stock/StockItemTable.tsx:280 msgid "Stocktake Date" msgstr "" -#: src/tables/stock/StockItemTable.tsx:236 -msgid "Expiry Date" -msgstr "" - -#: src/tables/stock/StockItemTable.tsx:260 -msgid "Stock Value" -msgstr "" - -#: src/tables/stock/StockItemTable.tsx:290 +#: src/tables/stock/StockItemTable.tsx:294 msgid "Show stock for active parts" msgstr "" -#: src/tables/stock/StockItemTable.tsx:295 +#: src/tables/stock/StockItemTable.tsx:299 msgid "Filter by stock status" msgstr "" #: src/tables/stock/StockItemTable.tsx:301 -msgid "Show stock for assmebled parts" +#~ msgid "Show stock for assmebled parts" +#~ msgstr "Show stock for assmebled parts" + +#: src/tables/stock/StockItemTable.tsx:305 +msgid "Show stock for assembled parts" msgstr "" -#: src/tables/stock/StockItemTable.tsx:306 +#: src/tables/stock/StockItemTable.tsx:310 msgid "Show items which have been allocated" msgstr "" -#: src/tables/stock/StockItemTable.tsx:311 +#: src/tables/stock/StockItemTable.tsx:315 msgid "Show items which are available" msgstr "" -#: src/tables/stock/StockItemTable.tsx:315 +#: src/tables/stock/StockItemTable.tsx:319 #: src/tables/stock/StockLocationTable.tsx:44 msgid "Include Sublocations" msgstr "" -#: src/tables/stock/StockItemTable.tsx:316 +#: src/tables/stock/StockItemTable.tsx:320 msgid "Include stock in sublocations" msgstr "" -#: src/tables/stock/StockItemTable.tsx:320 +#: src/tables/stock/StockItemTable.tsx:324 msgid "Depleted" msgstr "" -#: src/tables/stock/StockItemTable.tsx:321 +#: src/tables/stock/StockItemTable.tsx:325 msgid "Show depleted stock items" msgstr "" -#: src/tables/stock/StockItemTable.tsx:326 +#: src/tables/stock/StockItemTable.tsx:330 msgid "Show items which are in stock" msgstr "" -#: src/tables/stock/StockItemTable.tsx:331 +#: src/tables/stock/StockItemTable.tsx:335 msgid "Show items which are in production" msgstr "" -#: src/tables/stock/StockItemTable.tsx:336 +#: src/tables/stock/StockItemTable.tsx:340 msgid "Include stock items for variant parts" msgstr "" -#: src/tables/stock/StockItemTable.tsx:341 +#: src/tables/stock/StockItemTable.tsx:345 msgid "Show stock items which are installed in other items" msgstr "" -#: src/tables/stock/StockItemTable.tsx:345 +#: src/tables/stock/StockItemTable.tsx:349 msgid "Sent to Customer" msgstr "" -#: src/tables/stock/StockItemTable.tsx:346 +#: src/tables/stock/StockItemTable.tsx:350 msgid "Show items which have been sent to a customer" msgstr "" -#: src/tables/stock/StockItemTable.tsx:350 +#: src/tables/stock/StockItemTable.tsx:354 msgid "Is Serialized" msgstr "" -#: src/tables/stock/StockItemTable.tsx:351 +#: src/tables/stock/StockItemTable.tsx:355 msgid "Show items which have a serial number" msgstr "" -#: src/tables/stock/StockItemTable.tsx:358 +#: src/tables/stock/StockItemTable.tsx:362 msgid "Has Batch Code" msgstr "" -#: src/tables/stock/StockItemTable.tsx:359 +#: src/tables/stock/StockItemTable.tsx:363 msgid "Show items which have a batch code" msgstr "" -#: src/tables/stock/StockItemTable.tsx:365 +#: src/tables/stock/StockItemTable.tsx:369 msgid "Show tracked items" msgstr "" -#: src/tables/stock/StockItemTable.tsx:369 +#: src/tables/stock/StockItemTable.tsx:373 msgid "Has Purchase Price" msgstr "" -#: src/tables/stock/StockItemTable.tsx:370 +#: src/tables/stock/StockItemTable.tsx:374 msgid "Show items which have a purchase price" msgstr "" -#: src/tables/stock/StockItemTable.tsx:378 +#: src/tables/stock/StockItemTable.tsx:382 msgid "External Location" msgstr "" -#: src/tables/stock/StockItemTable.tsx:379 +#: src/tables/stock/StockItemTable.tsx:383 msgid "Show items in an external location" msgstr "" -#: src/tables/stock/StockItemTable.tsx:451 +#: src/tables/stock/StockItemTable.tsx:456 msgid "Add a new stock item" msgstr "" -#: src/tables/stock/StockItemTable.tsx:460 +#: src/tables/stock/StockItemTable.tsx:465 msgid "Remove some quantity from a stock item" msgstr "" -#: src/tables/stock/StockItemTable.tsx:482 +#: src/tables/stock/StockItemTable.tsx:487 msgid "Move Stock items to new locations" msgstr "" -#: src/tables/stock/StockItemTable.tsx:489 +#: src/tables/stock/StockItemTable.tsx:494 msgid "Change stock status" msgstr "" -#: src/tables/stock/StockItemTable.tsx:491 +#: src/tables/stock/StockItemTable.tsx:496 msgid "Change the status of stock items" msgstr "" -#: src/tables/stock/StockItemTable.tsx:498 +#: src/tables/stock/StockItemTable.tsx:503 msgid "Merge stock" msgstr "" -#: src/tables/stock/StockItemTable.tsx:500 +#: src/tables/stock/StockItemTable.tsx:505 msgid "Merge stock items" msgstr "" -#: src/tables/stock/StockItemTable.tsx:509 -#: src/tables/stock/StockItemTable.tsx:516 +#: src/tables/stock/StockItemTable.tsx:514 +#: src/tables/stock/StockItemTable.tsx:521 msgid "Order new stock" msgstr "" -#: src/tables/stock/StockItemTable.tsx:514 +#: src/tables/stock/StockItemTable.tsx:519 msgid "Assign to customer" msgstr "" -#: src/tables/stock/StockItemTable.tsx:523 +#: src/tables/stock/StockItemTable.tsx:528 msgid "Delete stock" msgstr "" -#: src/tables/stock/StockItemTable.tsx:525 -msgid "Delete stock items" -msgstr "" +#: src/tables/stock/StockItemTable.tsx:528 +#~ msgid "Delete stock items" +#~ msgstr "Delete stock items" -#: src/tables/stock/StockItemTestResultTable.tsx:131 +#: src/tables/stock/StockItemTestResultTable.tsx:137 msgid "Test" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:157 +#: src/tables/stock/StockItemTestResultTable.tsx:163 msgid "Test result for installed stock item" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:168 -msgid "Result" -msgstr "" - -#: src/tables/stock/StockItemTestResultTable.tsx:190 +#: src/tables/stock/StockItemTestResultTable.tsx:196 msgid "Attachment" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:206 +#: src/tables/stock/StockItemTestResultTable.tsx:212 msgid "Test station" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:226 +#: src/tables/stock/StockItemTestResultTable.tsx:234 msgid "Finished" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:268 -#: src/tables/stock/StockItemTestResultTable.tsx:339 +#: src/tables/stock/StockItemTestResultTable.tsx:286 +#: src/tables/stock/StockItemTestResultTable.tsx:357 msgid "Edit Test Result" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:270 +#: src/tables/stock/StockItemTestResultTable.tsx:288 msgid "Test result updated" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:276 -#: src/tables/stock/StockItemTestResultTable.tsx:348 +#: src/tables/stock/StockItemTestResultTable.tsx:294 +#: src/tables/stock/StockItemTestResultTable.tsx:366 msgid "Delete Test Result" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:278 +#: src/tables/stock/StockItemTestResultTable.tsx:296 msgid "Test result deleted" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:292 +#: src/tables/stock/StockItemTestResultTable.tsx:310 msgid "Test Passed" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:293 +#: src/tables/stock/StockItemTestResultTable.tsx:311 msgid "Test result has been recorded" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:300 +#: src/tables/stock/StockItemTestResultTable.tsx:318 msgid "Failed to record test result" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:317 +#: src/tables/stock/StockItemTestResultTable.tsx:335 msgid "Pass Test" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:366 +#: src/tables/stock/StockItemTestResultTable.tsx:384 msgid "Show results for required tests" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:370 +#: src/tables/stock/StockItemTestResultTable.tsx:388 msgid "Include Installed" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:371 +#: src/tables/stock/StockItemTestResultTable.tsx:389 msgid "Show results for installed stock items" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:375 -#: src/tables/stock/TestStatisticsTable.tsx:74 +#: src/tables/stock/StockItemTestResultTable.tsx:393 +#: src/tables/stock/TestStatisticsTable.tsx:62 msgid "Passed" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:376 +#: src/tables/stock/StockItemTestResultTable.tsx:394 msgid "Show only passed tests" msgstr "" @@ -7922,28 +9179,32 @@ msgid "Filter by location type" msgstr "" #: src/tables/stock/StockLocationTable.tsx:107 -#: src/tables/stock/StockLocationTable.tsx:133 +#: src/tables/stock/StockLocationTable.tsx:134 msgid "Add Stock Location" msgstr "" -#: src/tables/stock/StockTrackingTable.tsx:64 +#: src/tables/stock/StockTrackingTable.tsx:68 msgid "Added" msgstr "" -#: src/tables/stock/StockTrackingTable.tsx:69 +#: src/tables/stock/StockTrackingTable.tsx:73 msgid "Removed" msgstr "" #: src/tables/stock/StockTrackingTable.tsx:198 +msgid "Details" +msgstr "" + +#: src/tables/stock/StockTrackingTable.tsx:213 msgid "No user information" msgstr "" -#: src/tables/stock/TestStatisticsTable.tsx:46 -#: src/tables/stock/TestStatisticsTable.tsx:76 +#: src/tables/stock/TestStatisticsTable.tsx:34 +#: src/tables/stock/TestStatisticsTable.tsx:64 msgid "Total" msgstr "" -#: src/tables/stock/TestStatisticsTable.tsx:75 +#: src/tables/stock/TestStatisticsTable.tsx:63 msgid "Failed" msgstr "" diff --git a/src/frontend/src/locales/sl/messages.po b/src/frontend/src/locales/sl/messages.po index a14842b320..7e0ecdfdd8 100644 --- a/src/frontend/src/locales/sl/messages.po +++ b/src/frontend/src/locales/sl/messages.po @@ -8,15 +8,15 @@ msgstr "" "Language: sl\n" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"PO-Revision-Date: 2024-08-20 19:50\n" +"PO-Revision-Date: 2024-11-04 03:14\n" "Last-Translator: \n" "Language-Team: Slovenian\n" "Plural-Forms: nplurals=4; plural=n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3;\n" "X-Crowdin-Project: inventree\n" "X-Crowdin-Project-ID: 452300\n" "X-Crowdin-Language: sl\n" -"X-Crowdin-File: /[inventree.InvenTree] l10/src/frontend/src/locales/en/messages.po\n" -"X-Crowdin-File-ID: 205\n" +"X-Crowdin-File: /src/frontend/src/locales/en/messages.po\n" +"X-Crowdin-File-ID: 252\n" #: src/components/Boundary.tsx:12 msgid "Error rendering component" @@ -27,8 +27,8 @@ msgid "An error occurred while rendering this component. Refer to the console fo msgstr "" #: src/components/DashboardItemProxy.tsx:34 -msgid "Title" -msgstr "" +#~ msgid "Title" +#~ msgstr "Title" #: src/components/buttons/AdminButton.tsx:80 msgid "Open in admin interface" @@ -38,82 +38,99 @@ msgstr "" #~ msgid "Copy to clipboard" #~ msgstr "Copy to clipboard" -#: src/components/buttons/CopyButton.tsx:24 +#: src/components/buttons/CopyButton.tsx:29 msgid "Copied" msgstr "" -#: src/components/buttons/CopyButton.tsx:24 +#: src/components/buttons/CopyButton.tsx:29 msgid "Copy" msgstr "" -#: src/components/buttons/PrintingActions.tsx:93 +#: src/components/buttons/PrintingActions.tsx:97 msgid "Print Label" msgstr "" -#: src/components/buttons/PrintingActions.tsx:99 +#: src/components/buttons/PrintingActions.tsx:103 msgid "Print" msgstr "" -#: src/components/buttons/PrintingActions.tsx:100 +#: src/components/buttons/PrintingActions.tsx:104 msgid "Label printing completed successfully" msgstr "" -#: src/components/buttons/PrintingActions.tsx:106 -#: src/components/buttons/PrintingActions.tsx:144 -#: src/components/editors/NotesEditor.tsx:65 -#: src/components/editors/NotesEditor.tsx:165 -#: src/components/forms/fields/ApiFormField.tsx:319 +#: src/components/buttons/PrintingActions.tsx:110 +#: src/components/buttons/PrintingActions.tsx:148 +#: src/components/editors/NotesEditor.tsx:73 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:154 +#: src/components/forms/fields/ApiFormField.tsx:328 +#: src/components/forms/fields/TableField.tsx:43 #: src/components/importer/ImportDataSelector.tsx:187 -#: src/components/importer/ImporterColumnSelector.tsx:207 +#: src/components/importer/ImporterColumnSelector.tsx:210 #: src/components/modals/LicenseModal.tsx:75 -#: src/components/nav/SearchDrawer.tsx:448 +#: src/components/nav/SearchDrawer.tsx:458 +#: src/components/render/ModelType.tsx:290 #: src/pages/ErrorPage.tsx:11 -#: src/pages/part/PartPricingPanel.tsx:67 -#: src/tables/InvenTreeTable.tsx:495 +#: src/pages/part/PartPricingPanel.tsx:71 +#: src/tables/InvenTreeTable.tsx:481 #: src/tables/bom/BomTable.tsx:450 -#: src/tables/stock/StockItemTestResultTable.tsx:299 +#: src/tables/stock/StockItemTestResultTable.tsx:317 msgid "Error" msgstr "" -#: src/components/buttons/PrintingActions.tsx:107 +#: src/components/buttons/PrintingActions.tsx:111 msgid "The label could not be generated" msgstr "" -#: src/components/buttons/PrintingActions.tsx:122 +#: src/components/buttons/PrintingActions.tsx:126 msgid "Print Report" msgstr "" -#: src/components/buttons/PrintingActions.tsx:138 +#: src/components/buttons/PrintingActions.tsx:142 msgid "Generate" msgstr "" -#: src/components/buttons/PrintingActions.tsx:139 +#: src/components/buttons/PrintingActions.tsx:143 msgid "Report printing completed successfully" msgstr "" -#: src/components/buttons/PrintingActions.tsx:145 +#: src/components/buttons/PrintingActions.tsx:149 msgid "The report could not be generated" msgstr "" -#: src/components/buttons/PrintingActions.tsx:173 +#: src/components/buttons/PrintingActions.tsx:177 msgid "Printing Actions" msgstr "" -#: src/components/buttons/PrintingActions.tsx:178 +#: src/components/buttons/PrintingActions.tsx:182 msgid "Print Labels" msgstr "" -#: src/components/buttons/PrintingActions.tsx:184 +#: src/components/buttons/PrintingActions.tsx:188 msgid "Print Reports" msgstr "" +#: src/components/buttons/RemoveRowButton.tsx:8 +msgid "Remove this row" +msgstr "" + #: src/components/buttons/ScanButton.tsx:15 -msgid "Scan QR code" +#: src/components/nav/NavigationDrawer.tsx:117 +#: src/forms/PurchaseOrderForms.tsx:379 +#: src/forms/PurchaseOrderForms.tsx:473 +msgid "Scan Barcode" +msgstr "" + +#: src/components/buttons/ScanButton.tsx:15 +#~ msgid "Scan QR code" +#~ msgstr "Scan QR code" + +#: src/components/buttons/ScanButton.tsx:20 +msgid "Open Barcode Scanner" msgstr "" #: src/components/buttons/ScanButton.tsx:20 -msgid "Open QR code scanner" -msgstr "" +#~ msgid "Open QR code scanner" +#~ msgstr "Open QR code scanner" #: src/components/buttons/SpotlightButton.tsx:14 msgid "Open spotlight" @@ -128,85 +145,347 @@ msgid "Fail" msgstr "" #: src/components/buttons/YesNoButton.tsx:33 -#: src/tables/Filter.tsx:52 +#: src/tables/Filter.tsx:61 msgid "Yes" msgstr "" #: src/components/buttons/YesNoButton.tsx:33 -#: src/tables/Filter.tsx:53 +#: src/tables/Filter.tsx:62 msgid "No" msgstr "" -#: src/components/details/Details.tsx:301 +#: src/components/dashboard/DashboardLayout.tsx:286 +msgid "No Widgets Selected" +msgstr "" + +#: src/components/dashboard/DashboardLayout.tsx:289 +msgid "Use the menu to add widgets to the dashboard" +msgstr "" + +#: src/components/dashboard/DashboardMenu.tsx:59 +#: src/components/dashboard/DashboardMenu.tsx:126 +msgid "Accept Layout" +msgstr "" + +#: src/components/dashboard/DashboardMenu.tsx:91 +#: src/components/nav/NavigationDrawer.tsx:71 +#: src/defaults/actions.tsx:17 +#: src/defaults/links.tsx:9 +#: src/pages/Index/Settings/UserSettings.tsx:47 +msgid "Dashboard" +msgstr "" + +#: src/components/dashboard/DashboardMenu.tsx:99 +msgid "Edit Layout" +msgstr "" + +#: src/components/dashboard/DashboardMenu.tsx:108 +msgid "Add Widget" +msgstr "" + +#: src/components/dashboard/DashboardMenu.tsx:117 +msgid "Remove Widgets" +msgstr "" + +#: src/components/dashboard/DashboardWidget.tsx:65 +msgid "Remove this widget from the dashboard" +msgstr "" + +#: src/components/dashboard/DashboardWidgetDrawer.tsx:77 +msgid "Filter dashboard widgets" +msgstr "" + +#: src/components/dashboard/DashboardWidgetDrawer.tsx:98 +msgid "Add this widget to the dashboard" +msgstr "" + +#: src/components/dashboard/DashboardWidgetDrawer.tsx:123 +msgid "No Widgets Available" +msgstr "" + +#: src/components/dashboard/DashboardWidgetDrawer.tsx:124 +msgid "There are no more widgets available for the dashboard" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:19 +msgid "Subscribed Parts" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:20 +msgid "Show the number of parts which you have subscribed to" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:26 +msgid "Subscribed Categories" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:27 +msgid "Show the number of part categories which you have subscribed to" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:35 +#: src/pages/part/PartSchedulingDetail.tsx:304 +#: src/tables/part/PartTable.tsx:238 +msgid "Low Stock" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:37 +msgid "Show the number of parts which are low on stock" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:43 +msgid "Expired Stock Items" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:45 +msgid "Show the number of stock items which have expired" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:51 +msgid "Stale Stock Items" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:53 +msgid "Show the number of stock items which are stale" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:59 +msgid "Active Build Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:61 +msgid "Show the number of build orders which are currently active" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:66 +msgid "Overdue Build Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:68 +msgid "Show the number of build orders which are overdue" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:73 +msgid "Assigned Build Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:75 +msgid "Show the number of build orders which are assigned to you" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:80 +msgid "Active Sales Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:82 +msgid "Show the number of sales orders which are currently active" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:87 +msgid "Overdue Sales Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:89 +msgid "Show the number of sales orders which are overdue" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:94 +msgid "Assigned Sales Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:96 +msgid "Show the number of sales orders which are assigned to you" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:101 +msgid "Active Purchase Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:103 +msgid "Show the number of purchase orders which are currently active" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:108 +msgid "Overdue Purchase Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:110 +msgid "Show the number of purchase orders which are overdue" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:115 +msgid "Assigned Purchase Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:117 +msgid "Show the number of purchase orders which are assigned to you" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:122 +msgid "Active Return Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:124 +msgid "Show the number of return orders which are currently active" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:129 +msgid "Overdue Return Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:131 +msgid "Show the number of return orders which are overdue" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:136 +msgid "Assigned Return Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:138 +msgid "Show the number of return orders which are assigned to you" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:149 +#: src/components/dashboard/widgets/GetStartedWidget.tsx:15 +#: src/defaults/links.tsx:38 +msgid "Getting Started" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:150 +#: src/defaults/links.tsx:41 +msgid "Getting started with InvenTree" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:157 +#: src/components/dashboard/widgets/NewsWidget.tsx:123 +msgid "News Updates" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:158 +msgid "The latest news from InvenTree" +msgstr "" + +#: src/components/dashboard/widgets/ColorToggleWidget.tsx:18 +#: src/components/nav/MainMenu.tsx:77 +msgid "Change Color Mode" +msgstr "" + +#: src/components/dashboard/widgets/ColorToggleWidget.tsx:23 +msgid "Change the color mode of the user interface" +msgstr "" + +#: src/components/dashboard/widgets/LanguageSelectWidget.tsx:18 +msgid "Change Language" +msgstr "" + +#: src/components/dashboard/widgets/LanguageSelectWidget.tsx:23 +msgid "Change the language of the user interface" +msgstr "" + +#: src/components/dashboard/widgets/NewsWidget.tsx:61 +#: src/components/nav/NotificationDrawer.tsx:88 +#: src/pages/Notifications.tsx:73 +msgid "Mark as read" +msgstr "" + +#: src/components/dashboard/widgets/NewsWidget.tsx:115 +msgid "Requires Superuser" +msgstr "" + +#: src/components/dashboard/widgets/NewsWidget.tsx:116 +msgid "This widget requires superuser permissions" +msgstr "" + +#: src/components/dashboard/widgets/NewsWidget.tsx:133 +msgid "No News" +msgstr "" + +#: src/components/dashboard/widgets/NewsWidget.tsx:134 +msgid "There are no unread news items" +msgstr "" + +#: src/components/details/Details.tsx:300 msgid "No name defined" msgstr "" -#: src/components/details/DetailsImage.tsx:65 +#: src/components/details/DetailsImage.tsx:69 msgid "Remove Image" msgstr "" -#: src/components/details/DetailsImage.tsx:68 +#: src/components/details/DetailsImage.tsx:72 msgid "Remove the associated image from this item?" msgstr "" -#: src/components/details/DetailsImage.tsx:71 -#: src/forms/StockForms.tsx:533 +#: src/components/details/DetailsImage.tsx:75 +#: src/forms/StockForms.tsx:651 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:199 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:306 -#: src/pages/stock/StockDetail.tsx:526 +#: src/pages/stock/StockDetail.tsx:690 msgid "Remove" msgstr "" -#: src/components/details/DetailsImage.tsx:71 -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:158 -#: src/components/items/ActionDropdown.tsx:215 -#: src/components/items/ActionDropdown.tsx:216 -#: src/contexts/ThemeContext.tsx:43 +#: src/components/details/DetailsImage.tsx:75 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:184 +#: src/components/items/ActionDropdown.tsx:268 +#: src/components/items/ActionDropdown.tsx:269 +#: src/contexts/ThemeContext.tsx:45 #: src/hooks/UseForm.tsx:40 -#: src/tables/FilterSelectDrawer.tsx:205 -#: src/tables/build/BuildOutputTable.tsx:286 +#: src/tables/FilterSelectDrawer.tsx:241 +#: src/tables/RowActions.tsx:59 +#: src/tables/build/BuildOutputTable.tsx:434 msgid "Cancel" msgstr "" -#: src/components/details/DetailsImage.tsx:97 +#: src/components/details/DetailsImage.tsx:101 msgid "Drag and drop to upload" msgstr "" -#: src/components/details/DetailsImage.tsx:100 +#: src/components/details/DetailsImage.tsx:104 msgid "Click to select file(s)" msgstr "" -#: src/components/details/DetailsImage.tsx:226 +#: src/components/details/DetailsImage.tsx:230 msgid "Clear" msgstr "" -#: src/components/details/DetailsImage.tsx:232 -#: src/components/forms/ApiForm.tsx:627 -#: src/contexts/ThemeContext.tsx:43 -#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:60 +#: src/components/details/DetailsImage.tsx:236 +#: src/components/forms/ApiForm.tsx:660 +#: src/contexts/ThemeContext.tsx:45 msgid "Submit" msgstr "" -#: src/components/details/DetailsImage.tsx:272 +#: src/components/details/DetailsImage.tsx:280 msgid "Select from existing images" msgstr "" -#: src/components/details/DetailsImage.tsx:280 +#: src/components/details/DetailsImage.tsx:288 msgid "Select Image" msgstr "" -#: src/components/details/DetailsImage.tsx:292 +#: src/components/details/DetailsImage.tsx:304 +msgid "Download remote image" +msgstr "" + +#: src/components/details/DetailsImage.tsx:319 msgid "Upload new image" msgstr "" -#: src/components/details/DetailsImage.tsx:299 +#: src/components/details/DetailsImage.tsx:326 msgid "Upload Image" msgstr "" -#: src/components/details/DetailsImage.tsx:312 +#: src/components/details/DetailsImage.tsx:339 msgid "Delete image" msgstr "" +#: src/components/details/DetailsImage.tsx:373 +msgid "Download Image" +msgstr "" + +#: src/components/details/DetailsImage.tsx:378 +msgid "Image downloaded successfully" +msgstr "" + #: src/components/details/PartIcons.tsx:43 #~ msgid "Part is a template part (variants can be made from this part)" #~ msgstr "Part is a template part (variants can be made from this part)" @@ -235,36 +514,57 @@ msgstr "" #~ msgid "Part is virtual (not a physical part)" #~ msgstr "Part is virtual (not a physical part)" -#: src/components/editors/NotesEditor.tsx:66 +#: src/components/editors/NotesEditor.tsx:74 msgid "Image upload failed" msgstr "" -#: src/components/editors/NotesEditor.tsx:156 -#: src/components/forms/ApiForm.tsx:467 +#: src/components/editors/NotesEditor.tsx:83 +#: src/components/editors/NotesEditor.tsx:119 +#: src/components/forms/ApiForm.tsx:475 #: src/tables/bom/BomTable.tsx:441 msgid "Success" msgstr "" -#: src/components/editors/NotesEditor.tsx:157 +#: src/components/editors/NotesEditor.tsx:84 +msgid "Image uploaded successfully" +msgstr "" + +#: src/components/editors/NotesEditor.tsx:120 msgid "Notes saved successfully" msgstr "" -#: src/components/editors/NotesEditor.tsx:166 +#: src/components/editors/NotesEditor.tsx:131 msgid "Failed to save notes" msgstr "" -#: src/components/editors/NotesEditor.tsx:198 -msgid "Preview Notes" +#: src/components/editors/NotesEditor.tsx:134 +msgid "Error Saving Notes" msgstr "" -#: src/components/editors/NotesEditor.tsx:198 -msgid "Edit Notes" -msgstr "" +#: src/components/editors/NotesEditor.tsx:151 +#~ msgid "Disable Editing" +#~ msgstr "Disable Editing" -#: src/components/editors/NotesEditor.tsx:212 +#: src/components/editors/NotesEditor.tsx:154 msgid "Save Notes" msgstr "" +#: src/components/editors/NotesEditor.tsx:173 +msgid "Close Editor" +msgstr "" + +#: src/components/editors/NotesEditor.tsx:180 +msgid "Enable Editing" +msgstr "" + +#: src/components/editors/NotesEditor.tsx:198 +#~ msgid "Preview Notes" +#~ msgstr "Preview Notes" + +#: src/components/editors/NotesEditor.tsx:198 +#~ msgid "Edit Notes" +#~ msgstr "Edit Notes" + #: src/components/editors/TemplateEditor/CodeEditor/index.tsx:9 msgid "Code" msgstr "" @@ -281,40 +581,44 @@ msgstr "" msgid "PDF Preview" msgstr "" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:104 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:115 msgid "Error loading template" msgstr "" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:116 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:127 msgid "Error saving template" msgstr "" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:146 -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:274 -msgid "Save & Reload Preview" -msgstr "" - -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:151 -msgid "Are you sure you want to Save & Reload the preview?" -msgstr "" - #: src/components/editors/TemplateEditor/TemplateEditor.tsx:151 #~ msgid "Save & Reload preview?" #~ msgstr "Save & Reload preview?" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:153 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:155 +msgid "Could not load the template from the server." +msgstr "" + +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:172 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:303 +msgid "Save & Reload Preview" +msgstr "" + +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:177 +msgid "Are you sure you want to Save & Reload the preview?" +msgstr "" + +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:179 msgid "To render the preview the current template needs to be replaced on the server with your modifications which may break the label if it is under active use. Do you want to proceed?" msgstr "" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:157 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:183 msgid "Save & Reload" msgstr "" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:189 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:215 msgid "Preview updated" msgstr "" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:190 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:216 msgid "The preview has been updated successfully." msgstr "" @@ -322,15 +626,15 @@ msgstr "" #~ msgid "Save & Reload preview" #~ msgstr "Save & Reload preview" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:266 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:295 msgid "Reload preview" msgstr "" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:267 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:296 msgid "Use the currently stored template from the server" msgstr "" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:275 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:304 msgid "Save the current template and reload the preview" msgstr "" @@ -338,11 +642,11 @@ msgstr "" #~ msgid "to preview" #~ msgstr "to preview" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:333 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:365 msgid "Select instance to preview" msgstr "" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:377 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:409 msgid "Error rendering template" msgstr "" @@ -379,6 +683,7 @@ msgid "This page does not exist" msgstr "" #: src/components/errors/PermissionDenied.tsx:8 +#: src/functions/notifications.tsx:24 msgid "Permission Denied" msgstr "" @@ -394,8 +699,8 @@ msgstr "" msgid "A server error occurred" msgstr "" -#: src/components/forms/ApiForm.tsx:151 -#: src/components/forms/ApiForm.tsx:555 +#: src/components/forms/ApiForm.tsx:154 +#: src/components/forms/ApiForm.tsx:579 msgid "Form Error" msgstr "" @@ -403,22 +708,22 @@ msgstr "" #~ msgid "Form Errors Exist" #~ msgstr "Form Errors Exist" -#: src/components/forms/ApiForm.tsx:563 +#: src/components/forms/ApiForm.tsx:587 msgid "Errors exist for one or more form fields" msgstr "" -#: src/components/forms/ApiForm.tsx:665 -#: src/tables/plugin/PluginListTable.tsx:388 +#: src/components/forms/ApiForm.tsx:698 +#: src/tables/plugin/PluginListTable.tsx:195 msgid "Update" msgstr "" -#: src/components/forms/ApiForm.tsx:685 -#: src/components/items/ActionDropdown.tsx:195 +#: src/components/forms/ApiForm.tsx:718 +#: src/components/items/ActionDropdown.tsx:248 #: src/hooks/UseForm.tsx:122 -#: src/pages/Index/Scan.tsx:343 +#: src/pages/Index/Scan.tsx:357 #: src/pages/Notifications.tsx:123 -#: src/tables/RowActions.tsx:43 -#: src/tables/plugin/PluginListTable.tsx:420 +#: src/tables/RowActions.tsx:49 +#: src/tables/plugin/PluginListTable.tsx:232 msgid "Delete" msgstr "" @@ -428,14 +733,6 @@ msgstr "" #~ msgid "Check your your input and try again." #~ msgstr "Check your your input and try again." -#: src/components/forms/AuthenticationForm.tsx:51 -msgid "Login successful" -msgstr "" - -#: src/components/forms/AuthenticationForm.tsx:52 -msgid "Logged in successfully" -msgstr "" - #: src/components/forms/AuthenticationForm.tsx:52 #~ msgid "Welcome back!" #~ msgstr "Welcome back!" @@ -444,14 +741,22 @@ msgstr "" #~ msgid "Login successfull" #~ msgstr "Login successfull" -#: src/components/forms/AuthenticationForm.tsx:58 +#: src/components/forms/AuthenticationForm.tsx:55 +msgid "Login successful" +msgstr "" + +#: src/components/forms/AuthenticationForm.tsx:56 +msgid "Logged in successfully" +msgstr "" + +#: src/components/forms/AuthenticationForm.tsx:61 msgid "Login failed" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:59 -#: src/components/forms/AuthenticationForm.tsx:76 -#: src/components/forms/AuthenticationForm.tsx:211 -#: src/functions/auth.tsx:164 +#: src/components/forms/AuthenticationForm.tsx:62 +#: src/components/forms/AuthenticationForm.tsx:79 +#: src/components/forms/AuthenticationForm.tsx:214 +#: src/functions/auth.tsx:175 msgid "Check your input and try again." msgstr "" @@ -460,45 +765,46 @@ msgstr "" #~ msgid "Mail delivery successfull" #~ msgstr "Mail delivery successfull" -#: src/components/forms/AuthenticationForm.tsx:70 -#: src/functions/auth.tsx:155 +#: src/components/forms/AuthenticationForm.tsx:73 +#: src/functions/auth.tsx:166 msgid "Mail delivery successful" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:71 +#: src/components/forms/AuthenticationForm.tsx:74 msgid "Check your inbox for the login link. If you have an account, you will receive a login link. Check in spam too." msgstr "" -#: src/components/forms/AuthenticationForm.tsx:75 +#: src/components/forms/AuthenticationForm.tsx:78 msgid "Mail delivery failed" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:95 +#: src/components/forms/AuthenticationForm.tsx:98 msgid "Or continue with other methods" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:106 -#: src/components/forms/AuthenticationForm.tsx:227 +#: src/components/forms/AuthenticationForm.tsx:109 +#: src/components/forms/AuthenticationForm.tsx:230 +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:67 msgid "Username" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:107 -#: src/components/forms/AuthenticationForm.tsx:228 +#: src/components/forms/AuthenticationForm.tsx:110 +#: src/components/forms/AuthenticationForm.tsx:231 msgid "Your username" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:112 -#: src/components/forms/AuthenticationForm.tsx:240 -#: src/pages/Auth/Set-Password.tsx:106 +#: src/components/forms/AuthenticationForm.tsx:115 +#: src/components/forms/AuthenticationForm.tsx:243 +#: src/pages/Auth/Set-Password.tsx:101 msgid "Password" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:113 -#: src/components/forms/AuthenticationForm.tsx:241 +#: src/components/forms/AuthenticationForm.tsx:116 +#: src/components/forms/AuthenticationForm.tsx:244 msgid "Your password" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:125 +#: src/components/forms/AuthenticationForm.tsx:128 #: src/pages/Auth/Reset.tsx:26 msgid "Reset password" msgstr "" @@ -507,77 +813,79 @@ msgstr "" #~ msgid "Log in" #~ msgstr "Log in" -#: src/components/forms/AuthenticationForm.tsx:134 -#: src/components/forms/AuthenticationForm.tsx:233 +#: src/components/forms/AuthenticationForm.tsx:136 +#~ msgid "I will use username and password" +#~ msgstr "I will use username and password" + +#: src/components/forms/AuthenticationForm.tsx:137 +#: src/components/forms/AuthenticationForm.tsx:236 #: src/pages/Auth/Reset.tsx:31 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:51 msgid "Email" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:135 +#: src/components/forms/AuthenticationForm.tsx:138 #: src/pages/Auth/Reset.tsx:32 -#: src/pages/Auth/Set-Password.tsx:107 +#: src/pages/Auth/Set-Password.tsx:102 msgid "We will send you a link to login - if you are registered" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:136 -#~ msgid "I will use username and password" -#~ msgstr "I will use username and password" - -#: src/components/forms/AuthenticationForm.tsx:151 +#: src/components/forms/AuthenticationForm.tsx:154 msgid "Send me an email" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:153 +#: src/components/forms/AuthenticationForm.tsx:156 msgid "Use username and password" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:162 +#: src/components/forms/AuthenticationForm.tsx:165 msgid "Log In" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:164 +#: src/components/forms/AuthenticationForm.tsx:167 +#: src/pages/Auth/Reset.tsx:41 +#: src/pages/Auth/Set-Password.tsx:107 msgid "Send Email" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:193 +#: src/components/forms/AuthenticationForm.tsx:196 msgid "Registration successful" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:194 +#: src/components/forms/AuthenticationForm.tsx:197 msgid "Please confirm your email address to complete the registration" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:210 +#: src/components/forms/AuthenticationForm.tsx:213 msgid "Input error" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:234 +#: src/components/forms/AuthenticationForm.tsx:237 msgid "This will be used for a confirmation" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:246 +#: src/components/forms/AuthenticationForm.tsx:249 msgid "Password repeat" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:247 +#: src/components/forms/AuthenticationForm.tsx:250 msgid "Repeat password" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:259 -#: src/components/forms/AuthenticationForm.tsx:304 +#: src/components/forms/AuthenticationForm.tsx:262 +#: src/components/forms/AuthenticationForm.tsx:307 msgid "Register" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:265 +#: src/components/forms/AuthenticationForm.tsx:268 msgid "Or use SSO" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:296 +#: src/components/forms/AuthenticationForm.tsx:299 msgid "Don't have an account?" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:315 +#: src/components/forms/AuthenticationForm.tsx:318 msgid "Go back to login" msgstr "" @@ -588,19 +896,20 @@ msgstr "" #: src/components/forms/HostOptionsForm.tsx:42 #: src/components/forms/HostOptionsForm.tsx:70 +#: src/components/plugins/PluginDrawer.tsx:69 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:410 +#: src/pages/Index/Settings/AdminCenter/UnitManagmentPanel.tsx:19 #: src/pages/part/CategoryDetail.tsx:81 -#: src/pages/part/PartDetail.tsx:143 -#: src/pages/stock/LocationDetail.tsx:89 -#: src/tables/machine/MachineTypeTable.tsx:65 -#: src/tables/machine/MachineTypeTable.tsx:109 -#: src/tables/machine/MachineTypeTable.tsx:216 -#: src/tables/machine/MachineTypeTable.tsx:319 +#: src/pages/part/PartDetail.tsx:164 +#: src/pages/stock/LocationDetail.tsx:83 +#: src/tables/machine/MachineTypeTable.tsx:70 +#: src/tables/machine/MachineTypeTable.tsx:119 +#: src/tables/machine/MachineTypeTable.tsx:237 +#: src/tables/machine/MachineTypeTable.tsx:340 #: src/tables/plugin/PluginErrorTable.tsx:33 -#: src/tables/plugin/PluginListTable.tsx:126 #: src/tables/purchasing/ManufacturerPartParameterTable.tsx:32 #: src/tables/settings/GroupTable.tsx:147 -#: src/tables/settings/PendingTasksTable.tsx:28 +#: src/tables/settings/PendingTasksTable.tsx:32 #: src/tables/stock/LocationTypesTable.tsx:69 msgid "Name" msgstr "" @@ -650,7 +959,7 @@ msgid "Uncategorized" msgstr "" #: src/components/forms/fields/IconField.tsx:209 -#: src/components/nav/Layout.tsx:70 +#: src/components/nav/Layout.tsx:77 #: src/tables/part/PartThumbTable.tsx:192 msgid "Search..." msgstr "" @@ -667,28 +976,27 @@ msgstr "" msgid "{0} icons" msgstr "" -#: src/components/forms/fields/RelatedModelField.tsx:318 -#: src/pages/Index/Settings/UserSettings.tsx:96 +#: src/components/forms/fields/RelatedModelField.tsx:319 +#: src/pages/Index/Settings/UserSettings.tsx:97 #: src/tables/Search.tsx:23 msgid "Search" msgstr "" -#: src/components/forms/fields/RelatedModelField.tsx:319 +#: src/components/forms/fields/RelatedModelField.tsx:320 #: src/components/modals/AboutInvenTreeModal.tsx:81 -#: src/components/widgets/WidgetLayout.tsx:120 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:316 msgid "Loading" msgstr "" -#: src/components/forms/fields/RelatedModelField.tsx:321 +#: src/components/forms/fields/RelatedModelField.tsx:322 msgid "No results found" msgstr "" -#: src/components/forms/fields/TableField.tsx:52 -msgid "modelRenderer entry required for tables" -msgstr "" +#: src/components/forms/fields/TableField.tsx:72 +#~ msgid "modelRenderer entry required for tables" +#~ msgstr "modelRenderer entry required for tables" -#: src/components/forms/fields/TableField.tsx:76 +#: src/components/forms/fields/TableField.tsx:167 msgid "No entries available" msgstr "" @@ -741,7 +1049,7 @@ msgid "Filter by row validation status" msgstr "" #: src/components/importer/ImportDataSelector.tsx:365 -#: src/tables/build/BuildOutputTable.tsx:266 +#: src/tables/build/BuildOutputTable.tsx:407 msgid "Complete" msgstr "" @@ -749,20 +1057,21 @@ msgstr "" msgid "Filter by row completion status" msgstr "" -#: src/components/importer/ImportDataSelector.tsx:383 +#: src/components/importer/ImportDataSelector.tsx:384 msgid "Import selected rows" msgstr "" -#: src/components/importer/ImportDataSelector.tsx:398 +#: src/components/importer/ImportDataSelector.tsx:399 msgid "Processing Data" msgstr "" -#: src/components/importer/ImporterColumnSelector.tsx:50 -#: src/components/importer/ImporterColumnSelector.tsx:176 +#: src/components/importer/ImporterColumnSelector.tsx:53 +#: src/components/importer/ImporterColumnSelector.tsx:179 +#: src/components/items/ErrorItem.tsx:12 msgid "An error occurred" msgstr "" -#: src/components/importer/ImporterColumnSelector.tsx:62 +#: src/components/importer/ImporterColumnSelector.tsx:65 msgid "Select column, or leave blank to ignore this field." msgstr "" @@ -778,51 +1087,51 @@ msgstr "" #~ msgid "Imported Column Name" #~ msgstr "Imported Column Name" -#: src/components/importer/ImporterColumnSelector.tsx:182 +#: src/components/importer/ImporterColumnSelector.tsx:185 msgid "Ignore this field" msgstr "" -#: src/components/importer/ImporterColumnSelector.tsx:196 +#: src/components/importer/ImporterColumnSelector.tsx:199 msgid "Mapping data columns to database fields" msgstr "" -#: src/components/importer/ImporterColumnSelector.tsx:201 +#: src/components/importer/ImporterColumnSelector.tsx:204 msgid "Accept Column Mapping" msgstr "" -#: src/components/importer/ImporterColumnSelector.tsx:214 +#: src/components/importer/ImporterColumnSelector.tsx:217 msgid "Database Field" msgstr "" -#: src/components/importer/ImporterColumnSelector.tsx:215 +#: src/components/importer/ImporterColumnSelector.tsx:218 msgid "Field Description" msgstr "" -#: src/components/importer/ImporterColumnSelector.tsx:216 +#: src/components/importer/ImporterColumnSelector.tsx:219 msgid "Imported Column" msgstr "" -#: src/components/importer/ImporterColumnSelector.tsx:217 +#: src/components/importer/ImporterColumnSelector.tsx:220 msgid "Default Value" msgstr "" -#: src/components/importer/ImporterDrawer.tsx:44 +#: src/components/importer/ImporterDrawer.tsx:46 msgid "Upload File" msgstr "" -#: src/components/importer/ImporterDrawer.tsx:45 +#: src/components/importer/ImporterDrawer.tsx:47 msgid "Map Columns" msgstr "" -#: src/components/importer/ImporterDrawer.tsx:46 +#: src/components/importer/ImporterDrawer.tsx:48 msgid "Import Data" msgstr "" -#: src/components/importer/ImporterDrawer.tsx:47 +#: src/components/importer/ImporterDrawer.tsx:49 msgid "Process Data" msgstr "" -#: src/components/importer/ImporterDrawer.tsx:48 +#: src/components/importer/ImporterDrawer.tsx:50 msgid "Complete Import" msgstr "" @@ -830,28 +1139,28 @@ msgstr "" #~ msgid "Cancel import session" #~ msgstr "Cancel import session" -#: src/components/importer/ImporterDrawer.tsx:104 +#: src/components/importer/ImporterDrawer.tsx:106 msgid "Import Complete" msgstr "" -#: src/components/importer/ImporterDrawer.tsx:107 +#: src/components/importer/ImporterDrawer.tsx:109 msgid "Data has been imported successfully" msgstr "" -#: src/components/importer/ImporterDrawer.tsx:109 -#: src/components/importer/ImporterDrawer.tsx:118 +#: src/components/importer/ImporterDrawer.tsx:111 +#: src/components/importer/ImporterDrawer.tsx:120 msgid "Close" msgstr "" -#: src/components/importer/ImporterDrawer.tsx:115 +#: src/components/importer/ImporterDrawer.tsx:117 msgid "Unknown Status" msgstr "" -#: src/components/importer/ImporterDrawer.tsx:116 +#: src/components/importer/ImporterDrawer.tsx:118 msgid "Import session has unknown status" msgstr "" -#: src/components/importer/ImporterDrawer.tsx:135 +#: src/components/importer/ImporterDrawer.tsx:137 msgid "Importing Data" msgstr "" @@ -860,85 +1169,115 @@ msgid "Importing Records" msgstr "" #: src/components/importer/ImporterImportProgress.tsx:39 -msgid "Imported rows" +#: src/tables/settings/ImportSessionTable.tsx:78 +msgid "Imported Rows" msgstr "" -#: src/components/items/ActionDropdown.tsx:121 -msgid "Barcode Actions" +#: src/components/importer/ImporterImportProgress.tsx:39 +#~ msgid "Imported rows" +#~ msgstr "Imported rows" + +#: src/components/items/ActionDropdown.tsx:126 +msgid "Options" msgstr "" #: src/components/items/ActionDropdown.tsx:140 -msgid "View Barcode" -msgstr "" +#~ msgid "View Barcode" +#~ msgstr "View Barcode" -#: src/components/items/ActionDropdown.tsx:147 -msgid "View" -msgstr "" - -#: src/components/items/ActionDropdown.tsx:148 -msgid "View barcode" -msgstr "" - -#: src/components/items/ActionDropdown.tsx:161 -msgid "Link Barcode" +#: src/components/items/ActionDropdown.tsx:162 +#: src/tables/InvenTreeTableHeader.tsx:159 +#: src/tables/InvenTreeTableHeader.tsx:160 +msgid "Barcode Actions" msgstr "" #: src/components/items/ActionDropdown.tsx:162 -msgid "Link custom barcode" +#~ msgid "Link custom barcode" +#~ msgstr "Link custom barcode" + +#: src/components/items/ActionDropdown.tsx:167 +msgid "View" msgstr "" -#: src/components/items/ActionDropdown.tsx:173 -#: src/forms/PurchaseOrderForms.tsx:426 -msgid "Unlink Barcode" +#: src/components/items/ActionDropdown.tsx:169 +msgid "View barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:174 -msgid "Unlink custom barcode" +#: src/components/items/ActionDropdown.tsx:175 +msgid "Link Barcode" +msgstr "" + +#: src/components/items/ActionDropdown.tsx:177 +msgid "Link a custom barcode to this item" msgstr "" #: src/components/items/ActionDropdown.tsx:183 -#: src/tables/RowActions.tsx:33 +#: src/components/items/QRCode.tsx:193 +#: src/forms/PurchaseOrderForms.tsx:464 +msgid "Unlink Barcode" +msgstr "" + +#: src/components/items/ActionDropdown.tsx:185 +msgid "Unlink custom barcode" +msgstr "" + +#: src/components/items/ActionDropdown.tsx:236 +#: src/tables/RowActions.tsx:39 msgid "Edit" msgstr "" -#: src/components/items/ActionDropdown.tsx:184 +#: src/components/items/ActionDropdown.tsx:237 msgid "Edit item" msgstr "" -#: src/components/items/ActionDropdown.tsx:196 +#: src/components/items/ActionDropdown.tsx:249 msgid "Delete item" msgstr "" -#: src/components/items/ActionDropdown.tsx:204 -#: src/components/items/ActionDropdown.tsx:205 +#: src/components/items/ActionDropdown.tsx:257 +#: src/components/items/ActionDropdown.tsx:258 msgid "Hold" msgstr "" -#: src/components/items/ActionDropdown.tsx:227 -#: src/tables/RowActions.tsx:23 +#: src/components/items/ActionDropdown.tsx:280 +#: src/tables/RowActions.tsx:29 msgid "Duplicate" msgstr "" -#: src/components/items/ActionDropdown.tsx:228 +#: src/components/items/ActionDropdown.tsx:281 msgid "Duplicate item" msgstr "" +#: src/components/items/BarcodeInput.tsx:23 +msgid "Scan barcode data here using barcode scanner" +msgstr "" + +#: src/components/items/BarcodeInput.tsx:24 +#: src/tables/settings/BarcodeScanHistoryTable.tsx:65 +msgid "Barcode" +msgstr "" + +#: src/components/items/BarcodeInput.tsx:25 +msgid "Scan" +msgstr "" + #: src/components/items/DocTooltip.tsx:92 +#: src/components/items/GettingStartedCarousel.tsx:20 msgid "Read More" msgstr "" -#: src/components/items/ErrorItem.tsx:5 -#: src/tables/InvenTreeTable.tsx:487 +#: src/components/items/ErrorItem.tsx:8 +#: src/tables/InvenTreeTable.tsx:473 msgid "Unknown error" msgstr "" -#: src/components/items/ErrorItem.tsx:10 -msgid "An error occurred:" -msgstr "" +#: src/components/items/ErrorItem.tsx:13 +#~ msgid "An error occurred:" +#~ msgstr "An error occurred:" #: src/components/items/GettingStartedCarousel.tsx:27 -msgid "Read more" -msgstr "" +#~ msgid "Read more" +#~ msgstr "Read more" #: src/components/items/InfoItem.tsx:27 msgid "None" @@ -965,30 +1304,51 @@ msgstr "" msgid "This panel is a placeholder." msgstr "" -#: src/components/items/QRCode.tsx:87 +#: src/components/items/QRCode.tsx:89 msgid "Low (7%)" msgstr "" -#: src/components/items/QRCode.tsx:88 +#: src/components/items/QRCode.tsx:90 msgid "Medium (15%)" msgstr "" -#: src/components/items/QRCode.tsx:89 +#: src/components/items/QRCode.tsx:91 msgid "Quartile (25%)" msgstr "" -#: src/components/items/QRCode.tsx:90 +#: src/components/items/QRCode.tsx:92 msgid "High (30%)" msgstr "" -#: src/components/items/QRCode.tsx:107 -msgid "Barcode Data:" +#: src/components/items/QRCode.tsx:100 +msgid "Custom barcode" +msgstr "" + +#: src/components/items/QRCode.tsx:101 +msgid "A custom barcode is registered for this item. The shown code is not that custom barcode." msgstr "" #: src/components/items/QRCode.tsx:118 +msgid "Barcode Data:" +msgstr "" + +#: src/components/items/QRCode.tsx:129 msgid "Select Error Correction Level" msgstr "" +#: src/components/items/QRCode.tsx:171 +#: src/pages/part/PartDetail.tsx:239 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:187 +#: src/pages/sales/ReturnOrderDetail.tsx:157 +#: src/pages/sales/SalesOrderDetail.tsx:169 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:166 +msgid "Link" +msgstr "" + +#: src/components/items/QRCode.tsx:190 +msgid "This will remove the link to the associated barcode" +msgstr "" + #: src/components/modals/AboutInvenTreeModal.tsx:99 msgid "Version Information" msgstr "" @@ -1062,11 +1422,11 @@ msgstr "" msgid "Submit Bug Report" msgstr "" -#: src/components/modals/AboutInvenTreeModal.tsx:183 +#: src/components/modals/AboutInvenTreeModal.tsx:181 msgid "Copy version information" msgstr "" -#: src/components/modals/AboutInvenTreeModal.tsx:192 +#: src/components/modals/AboutInvenTreeModal.tsx:189 #: src/components/modals/ServerInfoModal.tsx:147 msgid "Dismiss" msgstr "" @@ -1091,61 +1451,20 @@ msgstr "" msgid "{key} Packages" msgstr "" -#: src/components/modals/QrCodeModal.tsx:72 +#: src/components/modals/QrCodeModal.tsx:24 msgid "Unknown response" msgstr "" -#: src/components/modals/QrCodeModal.tsx:102 -#: src/pages/Index/Scan.tsx:636 -msgid "Error while getting camera" -msgstr "" - -#: src/components/modals/QrCodeModal.tsx:125 -#: src/pages/Index/Scan.tsx:659 -msgid "Error while scanning" -msgstr "" - -#: src/components/modals/QrCodeModal.tsx:139 -#: src/pages/Index/Scan.tsx:673 -msgid "Error while stopping" -msgstr "" - -#: src/components/modals/QrCodeModal.tsx:154 -#: src/defaults/menuItems.tsx:21 -#: src/pages/Index/Scan.tsx:746 -msgid "Scanning" -msgstr "" - -#: src/components/modals/QrCodeModal.tsx:154 -#: src/pages/Index/Scan.tsx:746 -msgid "Not scanning" -msgstr "" - -#: src/components/modals/QrCodeModal.tsx:159 -#: src/pages/Index/Scan.tsx:752 -msgid "Select Camera" -msgstr "" - -#: src/components/modals/QrCodeModal.tsx:169 -#: src/pages/Index/Scan.tsx:737 -msgid "Start scanning" -msgstr "" - -#: src/components/modals/QrCodeModal.tsx:176 -#: src/pages/Index/Scan.tsx:729 -msgid "Stop scanning" -msgstr "" - -#: src/components/modals/QrCodeModal.tsx:181 +#: src/components/modals/QrCodeModal.tsx:39 msgid "No scans yet!" msgstr "" -#: src/components/modals/QrCodeModal.tsx:201 +#: src/components/modals/QrCodeModal.tsx:57 msgid "Close modal" msgstr "" #: src/components/modals/ServerInfoModal.tsx:26 -#: src/pages/Index/Settings/SystemSettings.tsx:38 +#: src/pages/Index/Settings/SystemSettings.tsx:37 msgid "Server" msgstr "" @@ -1206,6 +1525,7 @@ msgid "Background Worker" msgstr "" #: src/components/modals/ServerInfoModal.tsx:101 +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:29 msgid "Background worker not running" msgstr "" @@ -1218,8 +1538,8 @@ msgid "Email settings not configured" msgstr "" #: src/components/modals/ServerInfoModal.tsx:121 -#: src/tables/plugin/PluginListTable.tsx:144 -#: src/tables/plugin/PluginListTable.tsx:294 +#: src/components/plugins/PluginDrawer.tsx:89 +#: src/tables/plugin/PluginListTable.tsx:116 msgid "Version" msgstr "" @@ -1227,7 +1547,7 @@ msgstr "" msgid "Server Version" msgstr "" -#: src/components/nav/Layout.tsx:73 +#: src/components/nav/Layout.tsx:80 msgid "Nothing found..." msgstr "" @@ -1237,18 +1557,26 @@ msgstr "" #~ msgstr "Profile" #: src/components/nav/MainMenu.tsx:52 +#: src/components/nav/NavigationDrawer.tsx:178 #: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:28 msgid "Settings" msgstr "" #: src/components/nav/MainMenu.tsx:59 -#: src/defaults/menuItems.tsx:15 -msgid "Account settings" +#: src/pages/Index/Settings/UserSettings.tsx:152 +msgid "Account Settings" msgstr "" +#: src/components/nav/MainMenu.tsx:59 +#: src/defaults/menuItems.tsx:15 +#~ msgid "Account settings" +#~ msgstr "Account settings" + #: src/components/nav/MainMenu.tsx:67 -#: src/defaults/menuItems.tsx:58 -#: src/pages/Index/Settings/SystemSettings.tsx:315 +#: src/components/nav/NavigationDrawer.tsx:141 +#: src/components/nav/SettingsHeader.tsx:49 +#: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:37 +#: src/pages/Index/Settings/SystemSettings.tsx:310 msgid "System Settings" msgstr "" @@ -1260,14 +1588,11 @@ msgstr "" #~ msgid "Switch to pseudo language" #~ msgstr "Switch to pseudo language" -#: src/components/nav/MainMenu.tsx:77 -msgid "Change Color Mode" -msgstr "" - #: src/components/nav/MainMenu.tsx:86 -#: src/defaults/actions.tsx:71 -#: src/defaults/menuItems.tsx:63 -#: src/pages/Index/Settings/AdminCenter/Index.tsx:221 +#: src/components/nav/NavigationDrawer.tsx:148 +#: src/components/nav/SettingsHeader.tsx:50 +#: src/defaults/actions.tsx:63 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:251 msgid "Admin Center" msgstr "" @@ -1275,458 +1600,732 @@ msgstr "" msgid "Logout" msgstr "" -#: src/components/nav/NavHoverMenu.tsx:65 -#: src/defaults/actions.tsx:60 -msgid "Open Navigation" -msgstr "" - #: src/components/nav/NavHoverMenu.tsx:84 -msgid "View all" -msgstr "" +#~ msgid "View all" +#~ msgstr "View all" #: src/components/nav/NavHoverMenu.tsx:100 #: src/components/nav/NavHoverMenu.tsx:110 -msgid "Get started" -msgstr "" +#~ msgid "Get started" +#~ msgstr "Get started" #: src/components/nav/NavHoverMenu.tsx:103 -msgid "Overview over high-level objects, functions and possible usecases." -msgstr "" - -#: src/components/nav/NavigationDrawer.tsx:57 -msgid "Navigation" -msgstr "" +#~ msgid "Overview over high-level objects, functions and possible usecases." +#~ msgstr "Overview over high-level objects, functions and possible usecases." #: src/components/nav/NavigationDrawer.tsx:60 -msgid "Pages" +#~ msgid "Pages" +#~ msgstr "Pages" + +#: src/components/nav/NavigationDrawer.tsx:77 +#: src/components/render/ModelType.tsx:31 +#: src/defaults/links.tsx:10 +#: src/pages/Index/Settings/SystemSettings.tsx:172 +#: src/pages/part/CategoryDetail.tsx:125 +#: src/pages/part/CategoryDetail.tsx:249 +#: src/pages/part/CategoryDetail.tsx:279 +#: src/pages/part/PartDetail.tsx:856 +msgid "Parts" msgstr "" -#: src/components/nav/NavigationDrawer.tsx:65 -#: src/pages/Index/Settings/AdminCenter/Index.tsx:176 -#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:41 -msgid "Plugins" +#: src/components/nav/NavigationDrawer.tsx:84 +#: src/components/render/Part.tsx:30 +#: src/defaults/links.tsx:11 +#: src/pages/Index/Settings/SystemSettings.tsx:205 +#: src/pages/part/PartDetail.tsx:593 +#: src/pages/stock/LocationDetail.tsx:352 +#: src/pages/stock/StockDetail.tsx:528 +#: src/tables/stock/StockItemTable.tsx:69 +msgid "Stock" msgstr "" -#: src/components/nav/NavigationDrawer.tsx:75 -#: src/defaults/actions.tsx:32 -msgid "Documentation" +#: src/components/nav/NavigationDrawer.tsx:91 +#: src/defaults/links.tsx:13 +#: src/pages/build/BuildDetail.tsx:530 +#: src/pages/build/BuildIndex.tsx:36 +msgid "Manufacturing" msgstr "" -#: src/components/nav/NavigationDrawer.tsx:78 -msgid "About" +#: src/components/nav/NavigationDrawer.tsx:98 +#: src/defaults/links.tsx:18 +#: src/pages/company/ManufacturerDetail.tsx:9 +#: src/pages/company/ManufacturerPartDetail.tsx:258 +#: src/pages/company/SupplierDetail.tsx:9 +#: src/pages/company/SupplierPartDetail.tsx:336 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:480 +#: src/pages/purchasing/PurchasingIndex.tsx:60 +msgid "Purchasing" msgstr "" -#: src/components/nav/NotificationDrawer.tsx:92 -#: src/pages/Index/Settings/SystemSettings.tsx:109 -#: src/pages/Index/Settings/UserSettings.tsx:126 +#: src/components/nav/NavigationDrawer.tsx:105 +#: src/defaults/links.tsx:22 +#: src/pages/company/CustomerDetail.tsx:9 +#: src/pages/sales/ReturnOrderDetail.tsx:469 +#: src/pages/sales/SalesIndex.tsx:53 +#: src/pages/sales/SalesOrderDetail.tsx:520 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:343 +msgid "Sales" +msgstr "" + +#: src/components/nav/NavigationDrawer.tsx:129 +#: src/components/nav/NotificationDrawer.tsx:178 +#: src/pages/Index/Settings/SystemSettings.tsx:110 +#: src/pages/Index/Settings/UserSettings.tsx:127 #: src/pages/Notifications.tsx:65 #: src/pages/Notifications.tsx:151 msgid "Notifications" msgstr "" -#: src/components/nav/NotificationDrawer.tsx:94 +#: src/components/nav/NavigationDrawer.tsx:135 +#: src/components/nav/SettingsHeader.tsx:48 +msgid "User Settings" +msgstr "" + +#: src/components/nav/NavigationDrawer.tsx:173 +msgid "Navigation" +msgstr "" + +#: src/components/nav/NavigationDrawer.tsx:183 +#: src/forms/PurchaseOrderForms.tsx:689 +#: src/forms/StockForms.tsx:614 +#: src/forms/StockForms.tsx:651 +#: src/forms/StockForms.tsx:677 +#: src/forms/StockForms.tsx:705 +#: src/forms/StockForms.tsx:736 +#: src/forms/StockForms.tsx:771 +#: src/forms/StockForms.tsx:813 +#: src/forms/StockForms.tsx:851 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:413 +#: src/tables/RowActions.tsx:129 +#: src/tables/build/BuildLineTable.tsx:101 +msgid "Actions" +msgstr "" + +#: src/components/nav/NavigationDrawer.tsx:191 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:205 +#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:44 +msgid "Plugins" +msgstr "" + +#: src/components/nav/NavigationDrawer.tsx:204 +#: src/defaults/actions.tsx:24 +msgid "Documentation" +msgstr "" + +#: src/components/nav/NavigationDrawer.tsx:210 +msgid "About" +msgstr "" + +#: src/components/nav/NotificationDrawer.tsx:180 msgid "Mark all as read" msgstr "" -#: src/components/nav/NotificationDrawer.tsx:104 +#: src/components/nav/NotificationDrawer.tsx:190 msgid "View all notifications" msgstr "" -#: src/components/nav/NotificationDrawer.tsx:123 +#: src/components/nav/NotificationDrawer.tsx:210 msgid "You have no unread notifications." msgstr "" -#: src/components/nav/NotificationDrawer.tsx:139 -#: src/components/nav/NotificationDrawer.tsx:145 -#: src/tables/notifications/NotificationsTable.tsx:36 -msgid "Notification" -msgstr "" - -#: src/components/nav/NotificationDrawer.tsx:168 -#: src/pages/Notifications.tsx:73 -msgid "Mark as read" -msgstr "" - -#: src/components/nav/SearchDrawer.tsx:78 +#: src/components/nav/SearchDrawer.tsx:85 msgid "results" msgstr "" -#: src/components/nav/SearchDrawer.tsx:370 +#: src/components/nav/SearchDrawer.tsx:380 msgid "Enter search text" msgstr "" -#: src/components/nav/SearchDrawer.tsx:397 +#: src/components/nav/SearchDrawer.tsx:391 +msgid "Refresh search results" +msgstr "" + +#: src/components/nav/SearchDrawer.tsx:402 +#: src/components/nav/SearchDrawer.tsx:409 msgid "Search Options" msgstr "" -#: src/components/nav/SearchDrawer.tsx:400 +#: src/components/nav/SearchDrawer.tsx:412 msgid "Regex search" msgstr "" -#: src/components/nav/SearchDrawer.tsx:410 +#: src/components/nav/SearchDrawer.tsx:421 msgid "Whole word search" msgstr "" -#: src/components/nav/SearchDrawer.tsx:451 +#: src/components/nav/SearchDrawer.tsx:461 msgid "An error occurred during search query" msgstr "" #: src/components/nav/SearchDrawer.tsx:462 -msgid "No results" +#~ msgid "No results" +#~ msgstr "No results" + +#: src/components/nav/SearchDrawer.tsx:472 +#: src/tables/part/PartTestTemplateTable.tsx:76 +msgid "No Results" msgstr "" -#: src/components/nav/SearchDrawer.tsx:465 +#: src/components/nav/SearchDrawer.tsx:475 msgid "No results available for search query" msgstr "" -#: src/components/render/Instance.tsx:217 +#: src/components/panels/AttachmentPanel.tsx:18 +msgid "Attachments" +msgstr "" + +#: src/components/panels/NotesPanel.tsx:24 +#: src/tables/build/BuildOrderTestTable.tsx:143 +#: src/tables/stock/StockTrackingTable.tsx:204 +msgid "Notes" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:47 +msgid "Plugin Inactive" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:50 +msgid "Plugin is not active" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:60 +msgid "Plugin Information" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:74 +#: src/pages/build/BuildDetail.tsx:116 +#: src/pages/company/CompanyDetail.tsx:89 +#: src/pages/company/ManufacturerPartDetail.tsx:89 +#: src/pages/company/ManufacturerPartDetail.tsx:116 +#: src/pages/company/SupplierPartDetail.tsx:140 +#: src/pages/part/CategoryDetail.tsx:101 +#: src/pages/part/PartDetail.tsx:178 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:136 +#: src/pages/sales/ReturnOrderDetail.tsx:107 +#: src/pages/sales/SalesOrderDetail.tsx:116 +#: src/pages/stock/LocationDetail.tsx:103 +#: src/tables/ColumnRenderers.tsx:92 +#: src/tables/bom/UsedInTable.tsx:44 +#: src/tables/build/BuildAllocatedStockTable.tsx:83 +#: src/tables/build/BuildLineTable.tsx:329 +#: src/tables/machine/MachineTypeTable.tsx:74 +#: src/tables/machine/MachineTypeTable.tsx:129 +#: src/tables/machine/MachineTypeTable.tsx:240 +#: src/tables/machine/MachineTypeTable.tsx:344 +#: src/tables/part/RelatedPartTable.tsx:66 +#: src/tables/plugin/PluginListTable.tsx:99 +#: src/tables/sales/SalesOrderAllocationTable.tsx:87 +#: src/tables/sales/SalesOrderLineItemTable.tsx:75 +#: src/tables/stock/LocationTypesTable.tsx:74 +msgid "Description" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:79 +msgid "Author" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:84 +#: src/pages/part/PartSchedulingDetail.tsx:277 +#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:40 +#: src/pages/part/pricing/SaleHistoryPanel.tsx:38 +#: src/tables/ColumnRenderers.tsx:215 +#: src/tables/build/BuildOrderTestTable.tsx:151 +#: src/tables/settings/StocktakeReportTable.tsx:40 +msgid "Date" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:94 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:398 +#: src/pages/part/PartDetail.tsx:331 +#: src/tables/bom/UsedInTable.tsx:84 +#: src/tables/company/CompanyTable.tsx:62 +#: src/tables/company/CompanyTable.tsx:96 +#: src/tables/machine/MachineListTable.tsx:333 +#: src/tables/machine/MachineListTable.tsx:605 +#: src/tables/part/ParametricPartTable.tsx:223 +#: src/tables/part/PartTable.tsx:178 +#: src/tables/part/PartVariantTable.tsx:15 +#: src/tables/plugin/PluginListTable.tsx:94 +#: src/tables/plugin/PluginListTable.tsx:401 +#: src/tables/purchasing/SupplierPartTable.tsx:100 +#: src/tables/purchasing/SupplierPartTable.tsx:190 +#: src/tables/settings/UserTable.tsx:283 +#: src/tables/stock/StockItemTable.tsx:293 +msgid "Active" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:106 +msgid "Package Name" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:112 +msgid "Installation Path" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:117 +#: src/tables/machine/MachineTypeTable.tsx:152 +#: src/tables/machine/MachineTypeTable.tsx:276 +#: src/tables/plugin/PluginListTable.tsx:406 +msgid "Builtin" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:122 +msgid "Package" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:134 +#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:53 +msgid "Plugin Settings" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:146 +#: src/components/render/ModelType.tsx:276 +msgid "Plugin Configuration" +msgstr "" + +#: src/components/plugins/PluginPanel.tsx:87 +#~ msgid "Error occurred while rendering plugin content" +#~ msgstr "Error occurred while rendering plugin content" + +#: src/components/plugins/PluginPanel.tsx:91 +#~ msgid "Plugin did not provide panel rendering function" +#~ msgstr "Plugin did not provide panel rendering function" + +#: src/components/plugins/PluginPanel.tsx:103 +#~ msgid "No content provided for this plugin" +#~ msgstr "No content provided for this plugin" + +#: src/components/plugins/PluginPanel.tsx:116 +#: src/components/plugins/PluginSettingsPanel.tsx:76 +#~ msgid "Error Loading Plugin" +#~ msgstr "Error Loading Plugin" + +#: src/components/plugins/PluginSettingsPanel.tsx:51 +#~ msgid "Error occurred while rendering plugin settings" +#~ msgstr "Error occurred while rendering plugin settings" + +#: src/components/plugins/PluginSettingsPanel.tsx:55 +#~ msgid "Plugin did not provide settings rendering function" +#~ msgstr "Plugin did not provide settings rendering function" + +#: src/components/plugins/PluginUIFeature.tsx:100 +msgid "Error occurred while rendering the template editor." +msgstr "" + +#: src/components/plugins/PluginUIFeature.tsx:111 +msgid "Error Loading Plugin Editor" +msgstr "" + +#: src/components/plugins/PluginUIFeature.tsx:147 +msgid "Error occurred while rendering the template preview." +msgstr "" + +#: src/components/plugins/PluginUIFeature.tsx:158 +msgid "Error Loading Plugin Preview" +msgstr "" + +#: src/components/plugins/RemoteComponent.tsx:70 +msgid "Invalid source or function name" +msgstr "" + +#: src/components/plugins/RemoteComponent.tsx:91 +msgid "Error Loading Content" +msgstr "" + +#: src/components/plugins/RemoteComponent.tsx:95 +msgid "Error occurred while loading plugin content" +msgstr "" + +#: src/components/render/Instance.tsx:224 msgid "Unknown model: {model}" msgstr "" -#: src/components/render/ModelType.tsx:22 -#: src/forms/BuildForms.tsx:213 -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/forms/StockForms.tsx:499 -#: src/forms/StockForms.tsx:533 -#: src/forms/StockForms.tsx:562 -#: src/forms/StockForms.tsx:590 -#: src/forms/StockForms.tsx:621 -#: src/forms/StockForms.tsx:656 -#: src/forms/StockForms.tsx:698 -#: src/forms/StockForms.tsx:734 -#: src/pages/build/BuildDetail.tsx:95 -#: src/pages/part/PartDetail.tsx:1073 -#: src/tables/build/BuildAllocatedStockTable.tsx:82 +#: src/components/render/ModelType.tsx:30 +#: src/forms/BuildForms.tsx:269 +#: src/forms/BuildForms.tsx:337 +#: src/forms/BuildForms.tsx:385 +#: src/forms/BuildForms.tsx:515 +#: src/forms/PurchaseOrderForms.tsx:689 +#: src/forms/ReturnOrderForms.tsx:190 +#: src/forms/SalesOrderForms.tsx:248 +#: src/forms/StockForms.tsx:261 +#: src/forms/StockForms.tsx:614 +#: src/forms/StockForms.tsx:651 +#: src/forms/StockForms.tsx:677 +#: src/forms/StockForms.tsx:705 +#: src/forms/StockForms.tsx:736 +#: src/forms/StockForms.tsx:771 +#: src/forms/StockForms.tsx:813 +#: src/forms/StockForms.tsx:851 +#: src/pages/build/BuildDetail.tsx:90 +#: src/pages/part/PartDetail.tsx:1094 +#: src/tables/build/BuildAllocatedStockTable.tsx:95 +#: src/tables/build/BuildLineTable.tsx:72 #: src/tables/part/PartTable.tsx:28 -#: src/tables/part/RelatedPartTable.tsx:45 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:88 -#: src/tables/sales/SalesOrderAllocationTable.tsx:68 -#: src/tables/stock/StockTrackingTable.tsx:74 +#: src/tables/part/RelatedPartTable.tsx:47 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:130 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:100 +#: src/tables/sales/SalesOrderAllocationTable.tsx:99 +#: src/tables/stock/StockTrackingTable.tsx:78 msgid "Part" msgstr "" -#: src/components/render/ModelType.tsx:23 -#: src/defaults/links.tsx:29 -#: src/defaults/menuItems.tsx:33 -#: src/pages/Index/Settings/SystemSettings.tsx:173 -#: src/pages/part/CategoryDetail.tsx:119 -#: src/pages/part/CategoryDetail.tsx:244 -#: src/pages/part/CategoryDetail.tsx:274 -#: src/pages/part/PartDetail.tsx:827 -msgid "Parts" -msgstr "" - -#: src/components/render/ModelType.tsx:31 +#: src/components/render/ModelType.tsx:40 msgid "Part Parameter Template" msgstr "" -#: src/components/render/ModelType.tsx:32 +#: src/components/render/ModelType.tsx:41 msgid "Part Parameter Templates" msgstr "" -#: src/components/render/ModelType.tsx:38 +#: src/components/render/ModelType.tsx:48 msgid "Part Test Template" msgstr "" -#: src/components/render/ModelType.tsx:39 +#: src/components/render/ModelType.tsx:49 msgid "Part Test Templates" msgstr "" -#: src/components/render/ModelType.tsx:45 -#: src/pages/company/SupplierPartDetail.tsx:203 -#: src/pages/company/SupplierPartDetail.tsx:375 -#: src/pages/stock/StockDetail.tsx:173 -#: src/tables/build/BuildAllocatedStockTable.tsx:131 +#: src/components/render/ModelType.tsx:56 +#: src/pages/company/SupplierPartDetail.tsx:364 +#: src/pages/stock/StockDetail.tsx:194 +#: src/tables/build/BuildAllocatedStockTable.tsx:152 #: src/tables/part/PartPurchaseOrdersTable.tsx:49 -#: src/tables/purchasing/SupplierPartTable.tsx:68 +#: src/tables/purchasing/SupplierPartTable.tsx:70 +#: src/tables/stock/StockItemTable.tsx:229 msgid "Supplier Part" msgstr "" -#: src/components/render/ModelType.tsx:46 +#: src/components/render/ModelType.tsx:57 msgid "Supplier Parts" msgstr "" -#: src/components/render/ModelType.tsx:54 -#: src/pages/company/ManufacturerPartDetail.tsx:132 +#: src/components/render/ModelType.tsx:66 #: src/tables/part/PartPurchaseOrdersTable.tsx:55 +#: src/tables/stock/StockItemTable.tsx:234 msgid "Manufacturer Part" msgstr "" -#: src/components/render/ModelType.tsx:55 +#: src/components/render/ModelType.tsx:67 msgid "Manufacturer Parts" msgstr "" -#: src/components/render/ModelType.tsx:63 -#: src/pages/part/CategoryDetail.tsx:305 +#: src/components/render/ModelType.tsx:76 +#: src/pages/part/CategoryDetail.tsx:310 msgid "Part Category" msgstr "" -#: src/components/render/ModelType.tsx:64 -#: src/pages/part/CategoryDetail.tsx:258 -#: src/pages/part/CategoryDetail.tsx:296 -#: src/pages/part/PartDetail.tsx:1063 +#: src/components/render/ModelType.tsx:77 +#: src/pages/part/CategoryDetail.tsx:263 +#: src/pages/part/CategoryDetail.tsx:301 +#: src/pages/part/PartDetail.tsx:1084 msgid "Part Categories" msgstr "" -#: src/components/render/ModelType.tsx:72 -#: src/pages/stock/StockDetail.tsx:624 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:94 -#: src/tables/stock/StockTrackingTable.tsx:45 +#: src/components/render/ModelType.tsx:86 +#: src/forms/BuildForms.tsx:337 +#: src/forms/BuildForms.tsx:385 +#: src/forms/BuildForms.tsx:515 +#: src/forms/SalesOrderForms.tsx:248 +#: src/pages/stock/StockDetail.tsx:839 +#: src/tables/stock/StockTrackingTable.tsx:49 msgid "Stock Item" msgstr "" -#: src/components/render/ModelType.tsx:73 +#: src/components/render/ModelType.tsx:87 #: src/pages/company/CompanyDetail.tsx:203 -#: src/pages/stock/LocationDetail.tsx:128 -#: src/pages/stock/LocationDetail.tsx:181 -#: src/pages/stock/LocationDetail.tsx:395 +#: src/pages/part/PartStocktakeDetail.tsx:113 +#: src/pages/stock/LocationDetail.tsx:122 +#: src/pages/stock/LocationDetail.tsx:175 +#: src/pages/stock/LocationDetail.tsx:380 msgid "Stock Items" msgstr "" -#: src/components/render/ModelType.tsx:81 +#: src/components/render/ModelType.tsx:96 msgid "Stock Location" msgstr "" -#: src/components/render/ModelType.tsx:82 -#: src/pages/stock/LocationDetail.tsx:195 -#: src/pages/stock/LocationDetail.tsx:387 -#: src/pages/stock/StockDetail.tsx:616 +#: src/components/render/ModelType.tsx:97 +#: src/pages/stock/LocationDetail.tsx:189 +#: src/pages/stock/LocationDetail.tsx:372 +#: src/pages/stock/StockDetail.tsx:831 msgid "Stock Locations" msgstr "" -#: src/components/render/ModelType.tsx:90 +#: src/components/render/ModelType.tsx:106 msgid "Stock Location Type" msgstr "" -#: src/components/render/ModelType.tsx:91 +#: src/components/render/ModelType.tsx:107 msgid "Stock Location Types" msgstr "" -#: src/components/render/ModelType.tsx:95 +#: src/components/render/ModelType.tsx:112 +#: src/pages/part/PartDetail.tsx:712 msgid "Stock History" msgstr "" -#: src/components/render/ModelType.tsx:96 +#: src/components/render/ModelType.tsx:113 msgid "Stock Histories" msgstr "" -#: src/components/render/ModelType.tsx:100 -#: src/defaults/links.tsx:31 -#: src/defaults/menuItems.tsx:43 +#: src/components/render/ModelType.tsx:118 msgid "Build" msgstr "" -#: src/components/render/ModelType.tsx:101 +#: src/components/render/ModelType.tsx:119 msgid "Builds" msgstr "" -#: src/components/render/ModelType.tsx:109 +#: src/components/render/ModelType.tsx:128 msgid "Build Line" msgstr "" -#: src/components/render/ModelType.tsx:110 +#: src/components/render/ModelType.tsx:129 msgid "Build Lines" msgstr "" -#: src/components/render/ModelType.tsx:117 +#: src/components/render/ModelType.tsx:137 msgid "Build Item" msgstr "" -#: src/components/render/ModelType.tsx:118 +#: src/components/render/ModelType.tsx:138 msgid "Build Items" msgstr "" -#: src/components/render/ModelType.tsx:122 -#: src/pages/company/CompanyDetail.tsx:339 +#: src/components/render/ModelType.tsx:143 +#: src/pages/company/CompanyDetail.tsx:321 msgid "Company" msgstr "" -#: src/components/render/ModelType.tsx:123 +#: src/components/render/ModelType.tsx:144 msgid "Companies" msgstr "" -#: src/components/render/ModelType.tsx:131 +#: src/components/render/ModelType.tsx:153 +#: src/pages/build/BuildDetail.tsx:195 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:204 +#: src/pages/sales/ReturnOrderDetail.tsx:174 +#: src/pages/sales/SalesOrderDetail.tsx:186 #: src/tables/TableHoverCard.tsx:81 -#: src/tables/build/BuildOrderTable.tsx:140 -#: src/tables/purchasing/PurchaseOrderTable.tsx:64 -#: src/tables/sales/ReturnOrderTable.tsx:55 -#: src/tables/sales/SalesOrderTable.tsx:62 +#: src/tables/build/BuildOrderTable.tsx:135 +#: src/tables/purchasing/PurchaseOrderTable.tsx:69 +#: src/tables/sales/ReturnOrderTable.tsx:67 +#: src/tables/sales/SalesOrderTable.tsx:67 msgid "Project Code" msgstr "" -#: src/components/render/ModelType.tsx:132 -#: src/pages/Index/Settings/AdminCenter/Index.tsx:128 +#: src/components/render/ModelType.tsx:154 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:145 msgid "Project Codes" msgstr "" -#: src/components/render/ModelType.tsx:138 +#: src/components/render/ModelType.tsx:161 #: src/pages/part/pricing/PurchaseHistoryPanel.tsx:32 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:480 -#: src/tables/part/PartPurchaseOrdersTable.tsx:32 -#: src/tables/stock/StockTrackingTable.tsx:107 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:477 +#: src/pages/stock/StockDetail.tsx:253 +#: src/tables/part/PartPurchaseOrdersTable.tsx:31 +#: src/tables/stock/StockItemTable.tsx:222 +#: src/tables/stock/StockTrackingTable.tsx:111 msgid "Purchase Order" msgstr "" -#: src/components/render/ModelType.tsx:139 -#: src/pages/Index/Settings/SystemSettings.tsx:255 +#: src/components/render/ModelType.tsx:162 +#: src/pages/Index/Settings/SystemSettings.tsx:249 #: src/pages/company/CompanyDetail.tsx:196 -#: src/pages/company/SupplierPartDetail.tsx:237 -#: src/pages/part/PartDetail.tsx:662 +#: src/pages/company/SupplierPartDetail.tsx:249 +#: src/pages/part/PartDetail.tsx:683 #: src/pages/purchasing/PurchasingIndex.tsx:25 msgid "Purchase Orders" msgstr "" -#: src/components/render/ModelType.tsx:147 +#: src/components/render/ModelType.tsx:171 msgid "Purchase Order Line" msgstr "" -#: src/components/render/ModelType.tsx:148 +#: src/components/render/ModelType.tsx:172 msgid "Purchase Order Lines" msgstr "" -#: src/components/render/ModelType.tsx:152 -#: src/pages/build/BuildDetail.tsx:153 -#: src/pages/sales/SalesOrderDetail.tsx:520 -#: src/pages/stock/StockDetail.tsx:221 -#: src/tables/sales/SalesOrderAllocationTable.tsx:50 -#: src/tables/stock/StockTrackingTable.tsx:118 +#: src/components/render/ModelType.tsx:177 +#: src/pages/build/BuildDetail.tsx:148 +#: src/pages/part/pricing/SaleHistoryPanel.tsx:24 +#: src/pages/sales/SalesOrderDetail.tsx:515 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:92 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:341 +#: src/pages/stock/StockDetail.tsx:262 +#: src/tables/sales/SalesOrderAllocationTable.tsx:80 +#: src/tables/stock/StockTrackingTable.tsx:122 msgid "Sales Order" msgstr "" -#: src/components/render/ModelType.tsx:153 -#: src/pages/Index/Settings/SystemSettings.tsx:270 +#: src/components/render/ModelType.tsx:178 +#: src/pages/Index/Settings/SystemSettings.tsx:264 #: src/pages/company/CompanyDetail.tsx:216 -#: src/pages/part/PartDetail.tsx:669 +#: src/pages/part/PartDetail.tsx:695 #: src/pages/sales/SalesIndex.tsx:26 msgid "Sales Orders" msgstr "" -#: src/components/render/ModelType.tsx:161 +#: src/components/render/ModelType.tsx:187 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:340 msgid "Sales Order Shipment" msgstr "" -#: src/components/render/ModelType.tsx:162 +#: src/components/render/ModelType.tsx:188 msgid "Sales Order Shipments" msgstr "" -#: src/components/render/ModelType.tsx:168 -#: src/pages/sales/ReturnOrderDetail.tsx:469 -#: src/tables/stock/StockTrackingTable.tsx:129 +#: src/components/render/ModelType.tsx:195 +#: src/pages/sales/ReturnOrderDetail.tsx:464 +#: src/tables/stock/StockTrackingTable.tsx:133 msgid "Return Order" msgstr "" -#: src/components/render/ModelType.tsx:169 -#: src/pages/Index/Settings/SystemSettings.tsx:286 +#: src/components/render/ModelType.tsx:196 +#: src/pages/Index/Settings/SystemSettings.tsx:280 #: src/pages/company/CompanyDetail.tsx:223 +#: src/pages/part/PartDetail.tsx:702 #: src/pages/sales/SalesIndex.tsx:32 msgid "Return Orders" msgstr "" -#: src/components/render/ModelType.tsx:177 +#: src/components/render/ModelType.tsx:205 msgid "Return Order Line Item" msgstr "" -#: src/components/render/ModelType.tsx:178 +#: src/components/render/ModelType.tsx:206 msgid "Return Order Line Items" msgstr "" -#: src/components/render/ModelType.tsx:182 -#: src/tables/company/AddressTable.tsx:47 +#: src/components/render/ModelType.tsx:211 +#: src/tables/company/AddressTable.tsx:48 msgid "Address" msgstr "" -#: src/components/render/ModelType.tsx:183 -#: src/pages/company/CompanyDetail.tsx:253 +#: src/components/render/ModelType.tsx:212 +#: src/pages/company/CompanyDetail.tsx:255 msgid "Addresses" msgstr "" -#: src/components/render/ModelType.tsx:189 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:195 -#: src/pages/sales/ReturnOrderDetail.tsx:174 -#: src/pages/sales/SalesOrderDetail.tsx:183 +#: src/components/render/ModelType.tsx:219 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:196 +#: src/pages/sales/ReturnOrderDetail.tsx:166 +#: src/pages/sales/SalesOrderDetail.tsx:178 msgid "Contact" msgstr "" -#: src/components/render/ModelType.tsx:190 -#: src/pages/company/CompanyDetail.tsx:247 +#: src/components/render/ModelType.tsx:220 +#: src/pages/company/CompanyDetail.tsx:249 msgid "Contacts" msgstr "" -#: src/components/render/ModelType.tsx:196 +#: src/components/render/ModelType.tsx:227 msgid "Owner" msgstr "" -#: src/components/render/ModelType.tsx:197 +#: src/components/render/ModelType.tsx:228 msgid "Owners" msgstr "" -#: src/components/render/ModelType.tsx:203 -#: src/tables/settings/ImportSessionTable.tsx:121 -#: src/tables/stock/StockItemTestResultTable.tsx:198 -#: src/tables/stock/StockTrackingTable.tsx:195 +#: src/components/render/ModelType.tsx:234 +#~ msgid "Purchase Order Line Item" +#~ msgstr "Purchase Order Line Item" + +#: src/components/render/ModelType.tsx:235 +#: src/tables/settings/BarcodeScanHistoryTable.tsx:80 +#: src/tables/settings/BarcodeScanHistoryTable.tsx:211 +#: src/tables/settings/ImportSessionTable.tsx:120 +#: src/tables/settings/StocktakeReportTable.tsx:44 +#: src/tables/stock/StockItemTestResultTable.tsx:204 +#: src/tables/stock/StockTrackingTable.tsx:181 +#: src/tables/stock/StockTrackingTable.tsx:210 msgid "User" msgstr "" -#: src/components/render/ModelType.tsx:204 -#: src/pages/Index/Settings/AdminCenter/Index.tsx:98 +#: src/components/render/ModelType.tsx:236 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:109 #: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:13 msgid "Users" msgstr "" -#: src/components/render/ModelType.tsx:210 +#: src/components/render/ModelType.tsx:243 msgid "Group" msgstr "" -#: src/components/render/ModelType.tsx:211 +#: src/components/render/ModelType.tsx:244 #: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:20 -#: src/tables/settings/UserTable.tsx:138 -#: src/tables/settings/UserTable.tsx:201 +#: src/tables/settings/UserTable.tsx:137 +#: src/tables/settings/UserTable.tsx:200 msgid "Groups" msgstr "" -#: src/components/render/ModelType.tsx:218 +#: src/components/render/ModelType.tsx:252 msgid "Import Session" msgstr "" -#: src/components/render/ModelType.tsx:219 +#: src/components/render/ModelType.tsx:253 msgid "Import Sessions" msgstr "" -#: src/components/render/ModelType.tsx:225 +#: src/components/render/ModelType.tsx:260 msgid "Label Template" msgstr "" -#: src/components/render/ModelType.tsx:226 -#: src/pages/Index/Settings/AdminCenter/Index.tsx:158 +#: src/components/render/ModelType.tsx:261 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:187 msgid "Label Templates" msgstr "" -#: src/components/render/ModelType.tsx:232 +#: src/components/render/ModelType.tsx:264 +#~ msgid "Unknown Model" +#~ msgstr "Unknown Model" + +#: src/components/render/ModelType.tsx:268 msgid "Report Template" msgstr "" -#: src/components/render/ModelType.tsx:233 -#: src/pages/Index/Settings/AdminCenter/Index.tsx:164 +#: src/components/render/ModelType.tsx:269 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:193 msgid "Report Templates" msgstr "" -#: src/components/render/ModelType.tsx:239 -msgid "Plugin Configuration" -msgstr "" - -#: src/components/render/ModelType.tsx:240 +#: src/components/render/ModelType.tsx:277 msgid "Plugin Configurations" msgstr "" +#: src/components/render/ModelType.tsx:284 +msgid "Content Type" +msgstr "" + +#: src/components/render/ModelType.tsx:285 +msgid "Content Types" +msgstr "" + +#: src/components/render/ModelType.tsx:291 +#: src/tables/machine/MachineListTable.tsx:351 +#: src/tables/machine/MachineTypeTable.tsx:282 +msgid "Errors" +msgstr "" + +#: src/components/render/ModelType.tsx:307 +#~ msgid "Purchase Order Line Items" +#~ msgstr "Purchase Order Line Items" + +#: src/components/render/ModelType.tsx:337 +#~ msgid "Unknown Models" +#~ msgstr "Unknown Models" + #: src/components/render/Order.tsx:121 +#: src/tables/sales/SalesOrderAllocationTable.tsx:136 msgid "Shipment" msgstr "" #: src/components/render/Part.tsx:25 #: src/components/render/Plugin.tsx:17 -#: src/pages/company/CompanyDetail.tsx:325 -#: src/pages/company/SupplierPartDetail.tsx:360 -#: src/pages/part/PartDetail.tsx:879 +#: src/pages/company/CompanyDetail.tsx:307 +#: src/pages/company/SupplierPartDetail.tsx:349 +#: src/pages/part/PartDetail.tsx:911 msgid "Inactive" msgstr "" @@ -1736,39 +2335,38 @@ msgstr "" msgid "No stock" msgstr "" -#: src/components/render/Part.tsx:30 -#: src/defaults/links.tsx:30 -#: src/defaults/menuItems.tsx:38 -#: src/pages/Index/Settings/SystemSettings.tsx:206 -#: src/pages/part/PartDetail.tsx:543 -#: src/pages/stock/LocationDetail.tsx:367 -#: src/pages/stock/StockDetail.tsx:411 -#: src/tables/stock/StockItemTable.tsx:68 -msgid "Stock" -msgstr "" - -#: src/components/render/Stock.tsx:60 -#: src/pages/stock/StockDetail.tsx:150 -#: src/pages/stock/StockDetail.tsx:581 -#: src/tables/build/BuildAllocatedStockTable.tsx:102 -#: src/tables/sales/SalesOrderAllocationTable.tsx:80 +#: src/components/render/Stock.tsx:61 +#: src/forms/ReturnOrderForms.tsx:190 +#: src/pages/stock/StockDetail.tsx:166 +#: src/pages/stock/StockDetail.tsx:771 +#: src/tables/build/BuildAllocatedStockTable.tsx:123 +#: src/tables/build/BuildOutputTable.tsx:81 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:114 +#: src/tables/sales/SalesOrderAllocationTable.tsx:106 msgid "Serial Number" msgstr "" -#: src/components/render/Stock.tsx:62 -#: src/forms/BuildForms.tsx:218 -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/pages/part/pricing/BomPricingPanel.tsx:109 +#: src/components/render/Stock.tsx:63 +#: src/forms/BuildForms.tsx:206 +#: src/forms/BuildForms.tsx:515 +#: src/forms/PurchaseOrderForms.tsx:689 +#: src/forms/SalesOrderForms.tsx:248 +#: src/pages/part/PartSchedulingDetail.tsx:80 +#: src/pages/part/PartStocktakeDetail.tsx:60 +#: src/pages/part/PartStocktakeDetail.tsx:234 +#: src/pages/part/PartStocktakeDetail.tsx:252 +#: src/pages/part/pricing/BomPricingPanel.tsx:148 #: src/pages/part/pricing/PriceBreakPanel.tsx:89 -#: src/pages/part/pricing/PriceBreakPanel.tsx:171 -#: src/pages/stock/StockDetail.tsx:145 -#: src/pages/stock/StockDetail.tsx:587 -#: src/tables/build/BuildOrderTestTable.tsx:197 -#: src/tables/part/PartPurchaseOrdersTable.tsx:92 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:143 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:171 +#: src/pages/part/pricing/PriceBreakPanel.tsx:172 +#: src/pages/stock/StockDetail.tsx:161 +#: src/pages/stock/StockDetail.tsx:777 +#: src/tables/build/BuildLineTable.tsx:79 +#: src/tables/build/BuildOrderTestTable.tsx:198 +#: src/tables/part/PartPurchaseOrdersTable.tsx:93 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:146 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:177 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:77 -#: src/tables/stock/StockTrackingTable.tsx:59 +#: src/tables/stock/StockTrackingTable.tsx:63 msgid "Quantity" msgstr "" @@ -1842,10 +2440,6 @@ msgstr "" #~ msgid "Required Part" #~ msgstr "Required Part" -#: src/components/tables/build/BuildLineTable.tsx:152 -#~ msgid "Required Quantity" -#~ msgstr "Required Quantity" - #: src/components/tables/build/BuildOrderTable.tsx:52 #~ msgid "Progress" #~ msgstr "Progress" @@ -2126,14 +2720,6 @@ msgstr "" #~ msgid "user deleted" #~ msgstr "user deleted" -#: src/components/tables/settings/UserTable.tsx:168 -#~ msgid "First Name" -#~ msgstr "First Name" - -#: src/components/tables/settings/UserTable.tsx:173 -#~ msgid "Last Name" -#~ msgstr "Last Name" - #: src/components/tables/stock/StockItemTable.tsx:247 #~ msgid "Test Filter" #~ msgstr "Test Filter" @@ -2146,36 +2732,21 @@ msgstr "" #~ msgid "Stock location updated" #~ msgstr "Stock location updated" -#: src/components/widgets/DisplayWidget.tsx:11 -#: src/pages/Index/Settings/AccountSettings/DisplaySettingsPanel.tsx:17 -msgid "Display Settings" -msgstr "" - -#: src/components/widgets/DisplayWidget.tsx:15 -#: src/pages/Index/Settings/AccountSettings/DisplaySettingsPanel.tsx:23 -msgid "Color Mode" -msgstr "" - -#: src/components/widgets/DisplayWidget.tsx:21 -#: src/pages/Index/Settings/AccountSettings/DisplaySettingsPanel.tsx:33 -msgid "Language" -msgstr "" - #: src/components/widgets/FeedbackWidget.tsx:19 -msgid "Something is new: Platform UI" -msgstr "" +#~ msgid "Something is new: Platform UI" +#~ msgstr "Something is new: Platform UI" #: src/components/widgets/FeedbackWidget.tsx:21 -msgid "We are building a new UI with a modern stack. What you currently see is not fixed and will be redesigned but demonstrates the UI/UX possibilities we will have going forward." -msgstr "" +#~ msgid "We are building a new UI with a modern stack. What you currently see is not fixed and will be redesigned but demonstrates the UI/UX possibilities we will have going forward." +#~ msgstr "We are building a new UI with a modern stack. What you currently see is not fixed and will be redesigned but demonstrates the UI/UX possibilities we will have going forward." #: src/components/widgets/FeedbackWidget.tsx:32 -msgid "Provide Feedback" -msgstr "" +#~ msgid "Provide Feedback" +#~ msgstr "Provide Feedback" #: src/components/widgets/GetStartedWidget.tsx:11 -msgid "Getting started" -msgstr "" +#~ msgid "Getting started" +#~ msgstr "Getting started" #: src/components/widgets/MarkdownEditor.tsx:108 #~ msgid "Failed to upload image" @@ -2186,28 +2757,24 @@ msgstr "" #~ msgstr "Notes saved" #: src/components/widgets/WidgetLayout.tsx:166 -msgid "Layout" -msgstr "" +#~ msgid "Layout" +#~ msgstr "Layout" #: src/components/widgets/WidgetLayout.tsx:172 -msgid "Reset Layout" -msgstr "" +#~ msgid "Reset Layout" +#~ msgstr "Reset Layout" #: src/components/widgets/WidgetLayout.tsx:185 -msgid "Stop Edit" -msgstr "" - -#: src/components/widgets/WidgetLayout.tsx:185 -msgid "Edit Layout" -msgstr "" +#~ msgid "Stop Edit" +#~ msgstr "Stop Edit" #: src/components/widgets/WidgetLayout.tsx:191 -msgid "Appearance" -msgstr "" +#~ msgid "Appearance" +#~ msgstr "Appearance" #: src/components/widgets/WidgetLayout.tsx:203 -msgid "Show Boxes" -msgstr "" +#~ msgid "Show Boxes" +#~ msgstr "Show Boxes" #: src/contexts/LanguageContext.tsx:20 msgid "Arabic" @@ -2286,201 +2853,175 @@ msgid "Korean" msgstr "" #: src/contexts/LanguageContext.tsx:39 -msgid "Latvian" +msgid "Lithuanian" msgstr "" #: src/contexts/LanguageContext.tsx:40 -msgid "Dutch" +msgid "Latvian" msgstr "" #: src/contexts/LanguageContext.tsx:41 -msgid "Norwegian" +msgid "Dutch" msgstr "" #: src/contexts/LanguageContext.tsx:42 -msgid "Polish" +msgid "Norwegian" msgstr "" #: src/contexts/LanguageContext.tsx:43 -msgid "Portuguese" +msgid "Polish" msgstr "" #: src/contexts/LanguageContext.tsx:44 -msgid "Portuguese (Brazilian)" +msgid "Portuguese" msgstr "" #: src/contexts/LanguageContext.tsx:45 -msgid "Romanian" +msgid "Portuguese (Brazilian)" msgstr "" #: src/contexts/LanguageContext.tsx:46 -msgid "Russian" +msgid "Romanian" msgstr "" #: src/contexts/LanguageContext.tsx:47 -msgid "Slovak" +msgid "Russian" msgstr "" #: src/contexts/LanguageContext.tsx:48 -msgid "Slovenian" +msgid "Slovak" msgstr "" #: src/contexts/LanguageContext.tsx:49 -msgid "Swedish" +msgid "Slovenian" msgstr "" #: src/contexts/LanguageContext.tsx:50 -msgid "Thai" +msgid "Swedish" msgstr "" #: src/contexts/LanguageContext.tsx:51 -msgid "Turkish" +msgid "Thai" msgstr "" #: src/contexts/LanguageContext.tsx:52 -msgid "Ukrainian" +msgid "Turkish" msgstr "" #: src/contexts/LanguageContext.tsx:53 -msgid "Vietnamese" +msgid "Ukrainian" msgstr "" #: src/contexts/LanguageContext.tsx:54 -msgid "Chinese (Simplified)" +msgid "Vietnamese" msgstr "" #: src/contexts/LanguageContext.tsx:55 +msgid "Chinese (Simplified)" +msgstr "" + +#: src/contexts/LanguageContext.tsx:56 msgid "Chinese (Traditional)" msgstr "" +#: src/defaults/actions.tsx:18 +msgid "Go to the InvenTree dashboard" +msgstr "" + #: src/defaults/actions.tsx:18 #: src/defaults/links.tsx:27 #: src/defaults/menuItems.tsx:9 -msgid "Home" -msgstr "" +#~ msgid "Home" +#~ msgstr "Home" #: src/defaults/actions.tsx:25 -#: src/defaults/links.tsx:28 -#: src/defaults/menuItems.tsx:28 -#: src/pages/Index/Dashboard.tsx:19 -#: src/pages/Index/Settings/UserSettings.tsx:46 -msgid "Dashboard" -msgstr "" - -#: src/defaults/actions.tsx:26 -msgid "Go to the InvenTree dashboard" -msgstr "" - -#: src/defaults/actions.tsx:33 msgid "Visit the documentation to learn more about InvenTree" msgstr "" -#: src/defaults/actions.tsx:39 -#: src/defaults/links.tsx:98 -#: src/defaults/links.tsx:128 +#: src/defaults/actions.tsx:31 +#: src/defaults/links.tsx:92 +#: src/defaults/links.tsx:124 msgid "About InvenTree" msgstr "" -#: src/defaults/actions.tsx:40 -#: src/defaults/links.tsx:129 +#: src/defaults/actions.tsx:32 msgid "About the InvenTree org" msgstr "" -#: src/defaults/actions.tsx:46 +#: src/defaults/actions.tsx:38 msgid "Server Information" msgstr "" -#: src/defaults/actions.tsx:47 -#: src/defaults/links.tsx:123 +#: src/defaults/actions.tsx:39 +#: src/defaults/links.tsx:118 msgid "About this Inventree instance" msgstr "" -#: src/defaults/actions.tsx:53 -#: src/defaults/links.tsx:111 +#: src/defaults/actions.tsx:45 +#: src/defaults/links.tsx:105 +#: src/defaults/links.tsx:131 msgid "License Information" msgstr "" -#: src/defaults/actions.tsx:54 -#: src/defaults/links.tsx:135 +#: src/defaults/actions.tsx:46 msgid "Licenses for dependencies of the service" msgstr "" -#: src/defaults/actions.tsx:61 +#: src/defaults/actions.tsx:52 +msgid "Open Navigation" +msgstr "" + +#: src/defaults/actions.tsx:53 msgid "Open the main navigation menu" msgstr "" -#: src/defaults/actions.tsx:72 +#: src/defaults/actions.tsx:64 msgid "Go to the Admin Center" msgstr "" -#: src/defaults/dashboardItems.tsx:15 -msgid "Subscribed Parts" -msgstr "" - -#: src/defaults/dashboardItems.tsx:22 -msgid "Subscribed Categories" -msgstr "" - #: src/defaults/dashboardItems.tsx:29 -msgid "Latest Parts" -msgstr "" +#~ msgid "Latest Parts" +#~ msgstr "Latest Parts" #: src/defaults/dashboardItems.tsx:36 -msgid "BOM Waiting Validation" -msgstr "" +#~ msgid "BOM Waiting Validation" +#~ msgstr "BOM Waiting Validation" #: src/defaults/dashboardItems.tsx:43 -msgid "Recently Updated" -msgstr "" - -#: src/defaults/dashboardItems.tsx:50 -#: src/tables/part/PartTable.tsx:238 -msgid "Low Stock" -msgstr "" +#~ msgid "Recently Updated" +#~ msgstr "Recently Updated" #: src/defaults/dashboardItems.tsx:57 -msgid "Depleted Stock" -msgstr "" +#~ msgid "Depleted Stock" +#~ msgstr "Depleted Stock" #: src/defaults/dashboardItems.tsx:64 -msgid "Required for Build Orders" -msgstr "" +#~ msgid "Required for Build Orders" +#~ msgstr "Required for Build Orders" #: src/defaults/dashboardItems.tsx:71 -msgid "Expired Stock" -msgstr "" +#~ msgid "Expired Stock" +#~ msgstr "Expired Stock" #: src/defaults/dashboardItems.tsx:78 -msgid "Stale Stock" -msgstr "" +#~ msgid "Stale Stock" +#~ msgstr "Stale Stock" #: src/defaults/dashboardItems.tsx:85 -msgid "Build Orders In Progress" -msgstr "" - -#: src/defaults/dashboardItems.tsx:92 -msgid "Overdue Build Orders" -msgstr "" +#~ msgid "Build Orders In Progress" +#~ msgstr "Build Orders In Progress" #: src/defaults/dashboardItems.tsx:99 -msgid "Outstanding Purchase Orders" -msgstr "" - -#: src/defaults/dashboardItems.tsx:106 -msgid "Overdue Purchase Orders" -msgstr "" +#~ msgid "Outstanding Purchase Orders" +#~ msgstr "Outstanding Purchase Orders" #: src/defaults/dashboardItems.tsx:113 -msgid "Outstanding Sales Orders" -msgstr "" - -#: src/defaults/dashboardItems.tsx:120 -msgid "Overdue Sales Orders" -msgstr "" +#~ msgid "Outstanding Sales Orders" +#~ msgstr "Outstanding Sales Orders" #: src/defaults/dashboardItems.tsx:127 -msgid "Current News" -msgstr "" +#~ msgid "Current News" +#~ msgstr "Current News" #: src/defaults/defaultHostList.tsx:8 #~ msgid "InvenTree Demo" @@ -2490,98 +3031,81 @@ msgstr "" #~ msgid "Local Server" #~ msgstr "Local Server" -#: src/defaults/links.tsx:12 -#: src/pages/company/CompanyDetail.tsx:96 -msgid "Website" -msgstr "" - #: src/defaults/links.tsx:17 -msgid "GitHub" -msgstr "" +#~ msgid "GitHub" +#~ msgstr "GitHub" #: src/defaults/links.tsx:22 -msgid "Demo" -msgstr "" - -#: src/defaults/links.tsx:33 -#: src/defaults/menuItems.tsx:48 -#: src/pages/company/ManufacturerDetail.tsx:9 -#: src/pages/company/ManufacturerPartDetail.tsx:263 -#: src/pages/company/SupplierDetail.tsx:9 -#: src/pages/company/SupplierPartDetail.tsx:347 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:483 -#: src/pages/purchasing/PurchasingIndex.tsx:60 -msgid "Purchasing" -msgstr "" - -#: src/defaults/links.tsx:37 -#: src/defaults/menuItems.tsx:53 -#: src/pages/company/CustomerDetail.tsx:9 -#: src/pages/sales/ReturnOrderDetail.tsx:474 -#: src/pages/sales/SalesIndex.tsx:53 -#: src/pages/sales/SalesOrderDetail.tsx:525 -msgid "Sales" -msgstr "" +#~ msgid "Demo" +#~ msgstr "Demo" #: src/defaults/links.tsx:41 #: src/defaults/menuItems.tsx:71 #: src/pages/Index/Playground.tsx:217 -msgid "Playground" -msgstr "" +#~ msgid "Playground" +#~ msgstr "Playground" -#: src/defaults/links.tsx:55 -msgid "Getting Started" -msgstr "" - -#: src/defaults/links.tsx:56 -msgid "Getting started with InvenTree" -msgstr "" - -#: src/defaults/links.tsx:62 +#: src/defaults/links.tsx:45 msgid "API" msgstr "" -#: src/defaults/links.tsx:63 +#: src/defaults/links.tsx:48 msgid "InvenTree API documentation" msgstr "" -#: src/defaults/links.tsx:68 +#: src/defaults/links.tsx:52 msgid "Developer Manual" msgstr "" -#: src/defaults/links.tsx:69 +#: src/defaults/links.tsx:55 msgid "InvenTree developer manual" msgstr "" -#: src/defaults/links.tsx:74 +#: src/defaults/links.tsx:59 msgid "FAQ" msgstr "" -#: src/defaults/links.tsx:75 +#: src/defaults/links.tsx:62 msgid "Frequently asked questions" msgstr "" +#: src/defaults/links.tsx:66 +msgid "GitHub Repository" +msgstr "" + +#: src/defaults/links.tsx:69 +msgid "InvenTree source code on GitHub" +msgstr "" + #: src/defaults/links.tsx:76 #~ msgid "Instance" #~ msgstr "Instance" +#: src/defaults/links.tsx:79 +#: src/defaults/links.tsx:117 +msgid "System Information" +msgstr "" + #: src/defaults/links.tsx:83 #~ msgid "InvenTree" #~ msgstr "InvenTree" -#: src/defaults/links.tsx:85 -#: src/defaults/links.tsx:122 -msgid "System Information" -msgstr "" - #: src/defaults/links.tsx:117 #~ msgid "Licenses for packages used by InvenTree" #~ msgstr "Licenses for packages used by InvenTree" -#: src/defaults/links.tsx:134 -msgid "Licenses" +#: src/defaults/links.tsx:125 +msgid "About the InvenTree Project" msgstr "" +#: src/defaults/links.tsx:132 +msgid "Licenses for dependencies of the InvenTree software" +msgstr "" + +#: src/defaults/links.tsx:134 +#~ msgid "Licenses" +#~ msgstr "Licenses" + #: src/defaults/menuItems.tsx:7 #~ msgid "Open sourcea" #~ msgstr "Open sourcea" @@ -2607,8 +3131,8 @@ msgstr "" #~ msgstr "Profile page" #: src/defaults/menuItems.tsx:17 -msgid "User attributes and design settings." -msgstr "" +#~ msgid "User attributes and design settings." +#~ msgstr "User attributes and design settings." #: src/defaults/menuItems.tsx:21 #~ msgid "Free for everyone" @@ -2619,8 +3143,8 @@ msgstr "" #~ msgstr "The fluid of Smeargle’s tail secretions changes" #: src/defaults/menuItems.tsx:23 -msgid "View for interactive scanning and multiple actions." -msgstr "" +#~ msgid "View for interactive scanning and multiple actions." +#~ msgstr "View for interactive scanning and multiple actions." #: src/defaults/menuItems.tsx:24 #~ msgid "The fluid of Smeargle’s tail secretions changes in the intensity" @@ -2698,51 +3222,130 @@ msgstr "" #~ msgid "Are you sure you want to delete this attachment?" #~ msgstr "Are you sure you want to delete this attachment?" -#: src/forms/BuildForms.tsx:158 -msgid "Next serial number" +#: src/forms/BuildForms.tsx:248 +#~ msgid "Remove output" +#~ msgstr "Remove output" + +#: src/forms/BuildForms.tsx:269 +#: src/tables/build/BuildAllocatedStockTable.tsx:147 +#: src/tables/build/BuildOrderTestTable.tsx:177 +#: src/tables/build/BuildOrderTestTable.tsx:201 +#: src/tables/build/BuildOutputTable.tsx:460 +msgid "Build Output" msgstr "" -#: src/forms/BuildForms.tsx:162 -msgid "Latest serial number" +#: src/forms/BuildForms.tsx:269 +#: src/forms/BuildForms.tsx:337 +#: src/forms/BuildForms.tsx:385 +#: src/tables/build/BuildLineTable.tsx:89 +msgid "Batch" msgstr "" -#: src/forms/BuildForms.tsx:234 -msgid "Remove output" +#: src/forms/BuildForms.tsx:269 +#: src/forms/BuildForms.tsx:337 +#: src/forms/BuildForms.tsx:385 +#: src/forms/PurchaseOrderForms.tsx:603 +#: src/pages/build/BuildDetail.tsx:104 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:142 +#: src/pages/sales/ReturnOrderDetail.tsx:113 +#: src/pages/sales/SalesOrderDetail.tsx:122 +#: src/tables/build/BuildOrderTable.tsx:125 +#: src/tables/machine/MachineListTable.tsx:336 +#: src/tables/part/PartPurchaseOrdersTable.tsx:37 +#: src/tables/purchasing/PurchaseOrderTable.tsx:58 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:157 +#: src/tables/sales/ReturnOrderTable.tsx:56 +#: src/tables/sales/SalesOrderTable.tsx:56 +#: src/tables/settings/CustomStateTable.tsx:57 +#: src/tables/settings/ImportSessionTable.tsx:114 +#: src/tables/stock/StockItemTable.tsx:298 +#: src/tables/stock/StockTrackingTable.tsx:56 +msgid "Status" msgstr "" -#: src/forms/BuildForms.tsx:316 +#: src/forms/BuildForms.tsx:289 msgid "Complete Build Outputs" msgstr "" -#: src/forms/BuildForms.tsx:320 +#: src/forms/BuildForms.tsx:292 msgid "Build outputs have been completed" msgstr "" -#: src/forms/BuildForms.tsx:389 +#: src/forms/BuildForms.tsx:353 msgid "Scrap Build Outputs" msgstr "" -#: src/forms/BuildForms.tsx:393 +#: src/forms/BuildForms.tsx:356 msgid "Build outputs have been scrapped" msgstr "" -#: src/forms/BuildForms.tsx:425 -#: src/forms/BuildForms.tsx:449 +#: src/forms/BuildForms.tsx:393 msgid "Cancel Build Outputs" msgstr "" -#: src/forms/BuildForms.tsx:426 -msgid "Selected build outputs will be deleted" +#: src/forms/BuildForms.tsx:396 +msgid "Build outputs have been cancelled" msgstr "" -#: src/forms/BuildForms.tsx:453 -msgid "Build outputs have been cancelled" +#: src/forms/BuildForms.tsx:408 +#~ msgid "Selected build outputs will be deleted" +#~ msgstr "Selected build outputs will be deleted" + +#: src/forms/BuildForms.tsx:470 +#~ msgid "Remove line" +#~ msgstr "Remove line" + +#: src/forms/BuildForms.tsx:515 +#: src/forms/SalesOrderForms.tsx:248 +#: src/tables/build/BuildLineTable.tsx:174 +#: src/tables/sales/SalesOrderLineItemTable.tsx:276 +#: src/tables/stock/StockItemTable.tsx:309 +msgid "Allocated" +msgstr "" + +#: src/forms/BuildForms.tsx:545 +#: src/forms/SalesOrderForms.tsx:239 +#: src/pages/build/BuildDetail.tsx:208 +msgid "Source Location" +msgstr "" + +#: src/forms/BuildForms.tsx:546 +#: src/forms/SalesOrderForms.tsx:240 +msgid "Select the source location for the stock allocation" +msgstr "" + +#: src/forms/BuildForms.tsx:566 +#: src/forms/SalesOrderForms.tsx:274 +#: src/tables/build/BuildLineTable.tsx:442 +#: src/tables/build/BuildLineTable.tsx:569 +#: src/tables/build/BuildLineTable.tsx:642 +#: src/tables/sales/SalesOrderLineItemTable.tsx:302 +#: src/tables/sales/SalesOrderLineItemTable.tsx:326 +msgid "Allocate Stock" +msgstr "" + +#: src/forms/BuildForms.tsx:569 +#: src/forms/SalesOrderForms.tsx:279 +msgid "Stock items allocated" msgstr "" #: src/forms/CompanyForms.tsx:150 #~ msgid "Company updated" #~ msgstr "Company updated" +#: src/forms/PartForms.tsx:67 +#: src/forms/PartForms.tsx:154 +#: src/pages/part/CategoryDetail.tsx:117 +#: src/pages/part/PartDetail.tsx:384 +#: src/tables/part/PartCategoryTable.tsx:90 +#: src/tables/part/PartTable.tsx:294 +msgid "Subscribed" +msgstr "" + +#: src/forms/PartForms.tsx:68 +msgid "Subscribe to notifications for this part" +msgstr "" + #: src/forms/PartForms.tsx:106 #~ msgid "Create Part" #~ msgstr "Create Part" @@ -2751,191 +3354,190 @@ msgstr "" #~ msgid "Part created" #~ msgstr "Part created" -#: src/forms/PartForms.tsx:124 -msgid "Parent part category" -msgstr "" - #: src/forms/PartForms.tsx:129 #~ msgid "Part updated" #~ msgstr "Part updated" -#: src/forms/PurchaseOrderForms.tsx:300 +#: src/forms/PartForms.tsx:140 +msgid "Parent part category" +msgstr "" + +#: src/forms/PartForms.tsx:155 +msgid "Subscribe to notifications for this category" +msgstr "" + +#: src/forms/PurchaseOrderForms.tsx:314 +msgid "Assign Batch Code and Serial Numbers" +msgstr "" + +#: src/forms/PurchaseOrderForms.tsx:316 +msgid "Assign Batch Code" +msgstr "" + +#: src/forms/PurchaseOrderForms.tsx:336 msgid "Choose Location" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:308 +#: src/forms/PurchaseOrderForms.tsx:344 msgid "Item Destination selected" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:317 +#: src/forms/PurchaseOrderForms.tsx:353 msgid "Part category default location selected" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:327 +#: src/forms/PurchaseOrderForms.tsx:363 msgid "Received stock location selected" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:332 +#: src/forms/PurchaseOrderForms.tsx:368 msgid "Default location selected" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:343 -#: src/forms/PurchaseOrderForms.tsx:435 -msgid "Scan Barcode" -msgstr "" +#: src/forms/PurchaseOrderForms.tsx:421 +#~ msgid "Assign Batch Code{0}" +#~ msgstr "Assign Batch Code{0}" -#: src/forms/PurchaseOrderForms.tsx:388 +#: src/forms/PurchaseOrderForms.tsx:427 msgid "Set Location" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:396 -msgid "Assign Batch Code{0}" -msgstr "" - -#: src/forms/PurchaseOrderForms.tsx:405 -#: src/forms/StockForms.tsx:420 +#: src/forms/PurchaseOrderForms.tsx:442 +#: src/forms/StockForms.tsx:539 msgid "Adjust Packaging" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:412 -msgid "Change Status" -msgstr "" - -#: src/forms/PurchaseOrderForms.tsx:418 -msgid "Add Note" -msgstr "" - #: src/forms/PurchaseOrderForms.tsx:444 #: src/forms/StockForms.tsx:428 -msgid "Remove item from list" +#~ msgid "Remove item from list" +#~ msgstr "Remove item from list" + +#: src/forms/PurchaseOrderForms.tsx:450 +msgid "Change Status" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:471 -#: src/forms/StockForms.tsx:499 -#: src/forms/StockForms.tsx:533 -#: src/forms/StockForms.tsx:562 -#: src/forms/StockForms.tsx:590 -#: src/forms/StockForms.tsx:621 -#: src/forms/StockForms.tsx:656 -#: src/forms/StockForms.tsx:698 -#: src/forms/StockForms.tsx:734 -#: src/pages/stock/StockDetail.tsx:181 -#: src/tables/ColumnRenderers.tsx:49 -#: src/tables/stock/StockTrackingTable.tsx:85 +#: src/forms/PurchaseOrderForms.tsx:456 +msgid "Add Note" +msgstr "" + +#: src/forms/PurchaseOrderForms.tsx:503 +#: src/forms/StockForms.tsx:614 +#: src/forms/StockForms.tsx:651 +#: src/forms/StockForms.tsx:677 +#: src/forms/StockForms.tsx:705 +#: src/forms/StockForms.tsx:736 +#: src/forms/StockForms.tsx:771 +#: src/forms/StockForms.tsx:813 +#: src/forms/StockForms.tsx:851 +#: src/pages/stock/StockDetail.tsx:202 +#: src/tables/ColumnRenderers.tsx:60 +#: src/tables/stock/StockTrackingTable.tsx:89 msgid "Location" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:486 +#: src/forms/PurchaseOrderForms.tsx:518 msgid "Store at default location" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:499 +#: src/forms/PurchaseOrderForms.tsx:533 msgid "Store at line item destination" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:509 +#: src/forms/PurchaseOrderForms.tsx:545 msgid "Store with already received stock" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:524 -#: src/pages/build/BuildDetail.tsx:219 -#: src/pages/stock/StockDetail.tsx:162 -#: src/pages/stock/StockDetail.tsx:599 -#: src/tables/build/BuildAllocatedStockTable.tsx:109 -#: src/tables/build/BuildOrderTestTable.tsx:188 -#: src/tables/sales/SalesOrderAllocationTable.tsx:87 +#: src/forms/PurchaseOrderForms.tsx:566 +#: src/pages/build/BuildDetail.tsx:222 +#: src/pages/stock/StockDetail.tsx:185 +#: src/pages/stock/StockDetail.tsx:793 +#: src/tables/build/BuildAllocatedStockTable.tsx:130 +#: src/tables/build/BuildOrderTestTable.tsx:189 +#: src/tables/build/BuildOutputTable.tsx:86 +#: src/tables/sales/SalesOrderAllocationTable.tsx:113 msgid "Batch Code" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:535 -msgid "Serial numbers" +#: src/forms/PurchaseOrderForms.tsx:566 +#~ msgid "Serial numbers" +#~ msgstr "Serial numbers" + +#: src/forms/PurchaseOrderForms.tsx:567 +msgid "Enter batch code for received items" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:544 -#: src/forms/StockForms.tsx:443 -#: src/pages/company/SupplierPartDetail.tsx:156 -#: src/pages/company/SupplierPartDetail.tsx:207 -#: src/pages/stock/StockDetail.tsx:244 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:192 +#: src/forms/PurchaseOrderForms.tsx:579 +#: src/forms/StockForms.tsx:152 +msgid "Serial Numbers" +msgstr "" + +#: src/forms/PurchaseOrderForms.tsx:580 +msgid "Enter serial numbers for received items" +msgstr "" + +#: src/forms/PurchaseOrderForms.tsx:590 +#: src/forms/StockForms.tsx:556 +#: src/pages/company/SupplierPartDetail.tsx:168 +#: src/pages/company/SupplierPartDetail.tsx:219 +#: src/pages/stock/StockDetail.tsx:320 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:198 msgid "Packaging" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:556 -#: src/pages/build/BuildDetail.tsx:109 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:148 -#: src/pages/sales/ReturnOrderDetail.tsx:121 -#: src/pages/sales/SalesOrderDetail.tsx:127 -#: src/tables/build/BuildOrderTable.tsx:122 -#: src/tables/machine/MachineListTable.tsx:335 -#: src/tables/part/PartPurchaseOrdersTable.tsx:37 -#: src/tables/purchasing/PurchaseOrderTable.tsx:55 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:132 -#: src/tables/sales/ReturnOrderTable.tsx:46 -#: src/tables/sales/SalesOrderTable.tsx:53 -#: src/tables/settings/ImportSessionTable.tsx:115 -#: src/tables/stock/StockItemTable.tsx:294 -#: src/tables/stock/StockTrackingTable.tsx:52 -msgid "Status" -msgstr "" - -#: src/forms/PurchaseOrderForms.tsx:564 -#: src/pages/company/SupplierPartDetail.tsx:110 -#: src/tables/ColumnRenderers.tsx:132 +#: src/forms/PurchaseOrderForms.tsx:612 +#: src/pages/company/SupplierPartDetail.tsx:115 +#: src/tables/ColumnRenderers.tsx:143 msgid "Note" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/pages/company/SupplierPartDetail.tsx:128 -#: src/tables/purchasing/SupplierPriceBreakTable.tsx:57 -msgid "SKU" -msgstr "" - -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/tables/part/PartPurchaseOrdersTable.tsx:120 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:178 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:127 -msgid "Received" -msgstr "" - -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/forms/StockForms.tsx:499 -#: src/forms/StockForms.tsx:533 -#: src/forms/StockForms.tsx:562 -#: src/forms/StockForms.tsx:590 -#: src/forms/StockForms.tsx:621 -#: src/forms/StockForms.tsx:656 -#: src/forms/StockForms.tsx:698 -#: src/forms/StockForms.tsx:734 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:413 -#: src/tables/RowActions.tsx:113 -msgid "Actions" -msgstr "" - -#: src/forms/PurchaseOrderForms.tsx:655 -msgid "Receive Line Items" -msgstr "" - #: src/forms/PurchaseOrderForms.tsx:658 #~ msgid "Receive line items" #~ msgstr "Receive line items" -#: src/forms/StockForms.tsx:104 -msgid "Add given quantity as packs instead of individual items" +#: src/forms/PurchaseOrderForms.tsx:689 +#: src/pages/company/SupplierPartDetail.tsx:133 +#: src/tables/purchasing/SupplierPriceBreakTable.tsx:57 +msgid "SKU" +msgstr "" + +#: src/forms/PurchaseOrderForms.tsx:689 +#: src/tables/part/PartPurchaseOrdersTable.tsx:126 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:184 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:247 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:152 +msgid "Received" +msgstr "" + +#: src/forms/PurchaseOrderForms.tsx:701 +msgid "Receive Line Items" +msgstr "" + +#: src/forms/ReturnOrderForms.tsx:201 +msgid "Receive Items" +msgstr "" + +#: src/forms/ReturnOrderForms.tsx:208 +msgid "Item received into stock" +msgstr "" + +#: src/forms/StockForms.tsx:80 +#: src/hooks/UsePlaceholder.tsx:57 +msgid "Next serial number" msgstr "" #: src/forms/StockForms.tsx:110 #~ msgid "Create Stock Item" #~ msgstr "Create Stock Item" -#: src/forms/StockForms.tsx:117 +#: src/forms/StockForms.tsx:131 +msgid "Add given quantity as packs instead of individual items" +msgstr "" + +#: src/forms/StockForms.tsx:145 msgid "Enter initial quantity for this stock item" msgstr "" -#: src/forms/StockForms.tsx:124 -msgid "Serial Numbers" -msgstr "" - -#: src/forms/StockForms.tsx:125 +#: src/forms/StockForms.tsx:154 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" @@ -2943,82 +3545,102 @@ msgstr "" #~ msgid "Stock item updated" #~ msgstr "Stock item updated" -#: src/forms/StockForms.tsx:179 -#: src/pages/stock/StockDetail.tsx:434 -#: src/tables/stock/StockItemTable.tsx:417 -#: src/tables/stock/StockItemTable.tsx:535 +#: src/forms/StockForms.tsx:169 +#: src/pages/stock/StockDetail.tsx:131 +msgid "Stock Status" +msgstr "" + +#: src/forms/StockForms.tsx:218 +#: src/pages/stock/StockDetail.tsx:554 +#: src/tables/stock/StockItemTable.tsx:421 +#: src/tables/stock/StockItemTable.tsx:541 msgid "Add Stock Item" msgstr "" -#: src/forms/StockForms.tsx:362 +#: src/forms/StockForms.tsx:262 +msgid "Select the part to install" +msgstr "" + +#: src/forms/StockForms.tsx:480 msgid "Loading..." msgstr "" -#: src/forms/StockForms.tsx:408 +#: src/forms/StockForms.tsx:527 msgid "Move to default location" msgstr "" -#: src/forms/StockForms.tsx:499 -#: src/forms/StockForms.tsx:533 -#: src/forms/StockForms.tsx:562 -#: src/forms/StockForms.tsx:590 -#: src/forms/StockForms.tsx:621 -#: src/forms/StockForms.tsx:656 -#: src/forms/StockForms.tsx:698 -#: src/forms/StockForms.tsx:734 -#: src/pages/part/PartDetail.tsx:230 -#: src/pages/part/PartDetail.tsx:843 -#: src/tables/stock/StockItemTable.tsx:325 +#: src/forms/StockForms.tsx:614 +#: src/forms/StockForms.tsx:651 +#: src/forms/StockForms.tsx:677 +#: src/forms/StockForms.tsx:705 +#: src/forms/StockForms.tsx:736 +#: src/forms/StockForms.tsx:771 +#: src/forms/StockForms.tsx:813 +#: src/forms/StockForms.tsx:851 +#: src/pages/part/PartDetail.tsx:251 +#: src/pages/part/PartDetail.tsx:875 +#: src/tables/stock/StockItemTable.tsx:329 msgid "In Stock" msgstr "" -#: src/forms/StockForms.tsx:499 +#: src/forms/StockForms.tsx:614 msgid "Move" msgstr "" -#: src/forms/StockForms.tsx:562 -#: src/pages/stock/StockDetail.tsx:518 -#: src/tables/stock/StockItemTestResultTable.tsx:328 +#: src/forms/StockForms.tsx:677 +#: src/pages/stock/StockDetail.tsx:681 +#: src/tables/stock/StockItemTestResultTable.tsx:346 msgid "Add" msgstr "" -#: src/forms/StockForms.tsx:590 -#: src/pages/Index/Scan.tsx:266 -#: src/pages/stock/StockDetail.tsx:508 +#: src/forms/StockForms.tsx:705 +#: src/pages/Index/Scan.tsx:280 +#: src/pages/stock/StockDetail.tsx:670 msgid "Count" msgstr "" -#: src/forms/StockForms.tsx:835 +#: src/forms/StockForms.tsx:953 +#: src/pages/stock/StockDetail.tsx:682 +#: src/tables/stock/StockItemTable.tsx:454 msgid "Add Stock" msgstr "" -#: src/forms/StockForms.tsx:844 +#: src/forms/StockForms.tsx:962 +#: src/pages/stock/StockDetail.tsx:691 +#: src/tables/stock/StockItemTable.tsx:463 msgid "Remove Stock" msgstr "" -#: src/forms/StockForms.tsx:853 -#: src/pages/part/PartDetail.tsx:1017 +#: src/forms/StockForms.tsx:971 +#: src/pages/part/PartDetail.tsx:1039 +#: src/pages/stock/StockDetail.tsx:712 +#: src/tables/stock/StockItemTable.tsx:483 msgid "Transfer Stock" msgstr "" -#: src/forms/StockForms.tsx:862 -#: src/pages/part/PartDetail.tsx:1006 +#: src/forms/StockForms.tsx:980 +#: src/pages/part/PartDetail.tsx:1028 +#: src/pages/stock/LocationDetail.tsx:314 +#: src/pages/stock/LocationDetail.tsx:318 +#: src/tables/stock/StockItemTable.tsx:472 +#: src/tables/stock/StockItemTable.tsx:476 msgid "Count Stock" msgstr "" -#: src/forms/StockForms.tsx:871 +#: src/forms/StockForms.tsx:989 msgid "Change Stock Status" msgstr "" -#: src/forms/StockForms.tsx:880 +#: src/forms/StockForms.tsx:998 msgid "Merge Stock" msgstr "" -#: src/forms/StockForms.tsx:899 +#: src/forms/StockForms.tsx:1017 +#: src/tables/stock/StockItemTable.tsx:530 msgid "Delete Stock Items" msgstr "" -#: src/forms/StockForms.tsx:906 +#: src/forms/StockForms.tsx:1024 msgid "Parent stock location" msgstr "" @@ -3042,11 +3664,11 @@ msgstr "" #~ msgid "You have been logged out" #~ msgstr "You have been logged out" -#: src/functions/auth.tsx:117 +#: src/functions/auth.tsx:128 msgid "Logged Out" msgstr "" -#: src/functions/auth.tsx:118 +#: src/functions/auth.tsx:129 msgid "Successfully logged out" msgstr "" @@ -3062,20 +3684,20 @@ msgstr "" #~ msgid "Found an existing login - welcome back!" #~ msgstr "Found an existing login - welcome back!" -#: src/functions/auth.tsx:156 +#: src/functions/auth.tsx:167 msgid "Check your inbox for a reset link. This only works if you have an account. Check in spam too." msgstr "" -#: src/functions/auth.tsx:163 +#: src/functions/auth.tsx:174 #: src/pages/Auth/Set-Password.tsx:39 msgid "Reset failed" msgstr "" -#: src/functions/auth.tsx:194 +#: src/functions/auth.tsx:205 msgid "Logged In" msgstr "" -#: src/functions/auth.tsx:195 +#: src/functions/auth.tsx:206 msgid "Successfully logged in" msgstr "" @@ -3095,30 +3717,38 @@ msgstr "" #~ msgid "method parameter not supplied" #~ msgstr "method parameter not supplied" -#: src/functions/notifications.tsx:10 +#: src/functions/notifications.tsx:12 msgid "Not implemented" msgstr "" -#: src/functions/notifications.tsx:11 +#: src/functions/notifications.tsx:13 msgid "This feature is not yet implemented" msgstr "" -#: src/functions/notifications.tsx:21 -msgid "Permission denied" -msgstr "" +#: src/functions/notifications.tsx:24 +#~ msgid "Permission denied" +#~ msgstr "Permission denied" -#: src/functions/notifications.tsx:22 +#: src/functions/notifications.tsx:25 msgid "You do not have permission to perform this action" msgstr "" -#: src/functions/notifications.tsx:33 +#: src/functions/notifications.tsx:36 msgid "Invalid Return Code" msgstr "" -#: src/functions/notifications.tsx:34 +#: src/functions/notifications.tsx:37 msgid "Server returned status {returnCode}" msgstr "" +#: src/functions/notifications.tsx:47 +msgid "Timeout" +msgstr "" + +#: src/functions/notifications.tsx:48 +msgid "The request timed out" +msgstr "" + #: src/hooks/UseForm.tsx:88 msgid "Item Created" msgstr "" @@ -3135,20 +3765,24 @@ msgstr "" msgid "Are you sure you want to delete this item?" msgstr "" +#: src/hooks/UsePlaceholder.tsx:59 +msgid "Latest serial number" +msgstr "" + #: src/pages/Auth/Logged-In.tsx:22 msgid "Checking if you are already logged in" msgstr "" -#: src/pages/Auth/Login.tsx:31 -#: src/pages/Index/Scan.tsx:329 +#: src/pages/Auth/Login.tsx:35 +#: src/pages/Index/Scan.tsx:343 msgid "No selection" msgstr "" -#: src/pages/Auth/Login.tsx:87 +#: src/pages/Auth/Login.tsx:91 msgid "Welcome, log in below" msgstr "" -#: src/pages/Auth/Login.tsx:89 +#: src/pages/Auth/Login.tsx:93 msgid "Register below" msgstr "" @@ -3162,8 +3796,8 @@ msgstr "" #: src/pages/Auth/Reset.tsx:41 #: src/pages/Auth/Set-Password.tsx:112 -msgid "Send mail" -msgstr "" +#~ msgid "Send mail" +#~ msgstr "Send mail" #: src/pages/Auth/Set-Password.tsx:30 msgid "Token invalid" @@ -3174,22 +3808,22 @@ msgid "You need to provide a valid token to set a new password. Check your inbox msgstr "" #: src/pages/Auth/Set-Password.tsx:49 -msgid "No token provided" -msgstr "" +#~ msgid "No token provided" +#~ msgstr "No token provided" #: src/pages/Auth/Set-Password.tsx:50 -msgid "You need to provide a token to set a new password. Check your inbox for a reset link." -msgstr "" +#~ msgid "You need to provide a token to set a new password. Check your inbox for a reset link." +#~ msgstr "You need to provide a token to set a new password. Check your inbox for a reset link." -#: src/pages/Auth/Set-Password.tsx:73 +#: src/pages/Auth/Set-Password.tsx:68 msgid "Password set" msgstr "" -#: src/pages/Auth/Set-Password.tsx:74 +#: src/pages/Auth/Set-Password.tsx:69 msgid "The password was set successfully. You can now login with your new password" msgstr "" -#: src/pages/Auth/Set-Password.tsx:101 +#: src/pages/Auth/Set-Password.tsx:96 msgid "Set new password" msgstr "" @@ -3206,20 +3840,20 @@ msgstr "" #~ msgstr "Sorry, an unexpected error has occurred." #: src/pages/Index/Dashboard.tsx:22 -msgid "Autoupdate" -msgstr "" +#~ msgid "Autoupdate" +#~ msgstr "Autoupdate" #: src/pages/Index/Dashboard.tsx:26 -msgid "This page is a replacement for the old start page with the same information. This page will be deprecated and replaced by the home page." -msgstr "" +#~ msgid "This page is a replacement for the old start page with the same information. This page will be deprecated and replaced by the home page." +#~ msgstr "This page is a replacement for the old start page with the same information. This page will be deprecated and replaced by the home page." #: src/pages/Index/Home.tsx:58 -msgid "Welcome to your Dashboard{0}" -msgstr "" +#~ msgid "Welcome to your Dashboard{0}" +#~ msgstr "Welcome to your Dashboard{0}" #: src/pages/Index/Playground.tsx:222 -msgid "This page is a showcase for the possibilities of Platform UI." -msgstr "" +#~ msgid "This page is a showcase for the possibilities of Platform UI." +#~ msgstr "This page is a showcase for the possibilities of Platform UI." #: src/pages/Index/Profile/Profile.tsx:30 #: src/pages/Index/Profile/Profile.tsx:141 @@ -3365,125 +3999,190 @@ msgstr "" msgid "Image Barcode" msgstr "" -#: src/pages/Index/Scan.tsx:247 +#: src/pages/Index/Scan.tsx:261 msgid "Selected elements are not known" msgstr "" -#: src/pages/Index/Scan.tsx:254 +#: src/pages/Index/Scan.tsx:268 msgid "Multiple object types selected" msgstr "" -#: src/pages/Index/Scan.tsx:261 +#: src/pages/Index/Scan.tsx:275 msgid "Actions for {0}" msgstr "" -#: src/pages/Index/Scan.tsx:282 +#: src/pages/Index/Scan.tsx:296 msgid "Scan Page" msgstr "" -#: src/pages/Index/Scan.tsx:285 +#: src/pages/Index/Scan.tsx:299 msgid "This page can be used for continuously scanning items and taking actions on them." msgstr "" -#: src/pages/Index/Scan.tsx:292 +#: src/pages/Index/Scan.tsx:306 msgid "Toggle Fullscreen" msgstr "" -#: src/pages/Index/Scan.tsx:305 +#: src/pages/Index/Scan.tsx:319 msgid "Select the input method you want to use to scan items." msgstr "" -#: src/pages/Index/Scan.tsx:307 +#: src/pages/Index/Scan.tsx:321 msgid "Input" msgstr "" -#: src/pages/Index/Scan.tsx:314 +#: src/pages/Index/Scan.tsx:328 msgid "Select input method" msgstr "" -#: src/pages/Index/Scan.tsx:315 +#: src/pages/Index/Scan.tsx:329 msgid "Nothing found" msgstr "" -#: src/pages/Index/Scan.tsx:323 +#: src/pages/Index/Scan.tsx:337 msgid "Depending on the selected parts actions will be shown here. Not all barcode types are supported currently." msgstr "" -#: src/pages/Index/Scan.tsx:325 +#: src/pages/Index/Scan.tsx:339 msgid "Action" msgstr "" -#: src/pages/Index/Scan.tsx:334 +#: src/pages/Index/Scan.tsx:348 msgid "{0} items selected" msgstr "" -#: src/pages/Index/Scan.tsx:337 +#: src/pages/Index/Scan.tsx:351 msgid "General Actions" msgstr "" -#: src/pages/Index/Scan.tsx:351 +#: src/pages/Index/Scan.tsx:365 msgid "Lookup part" msgstr "" -#: src/pages/Index/Scan.tsx:359 +#: src/pages/Index/Scan.tsx:373 msgid "Open Link" msgstr "" -#: src/pages/Index/Scan.tsx:375 +#: src/pages/Index/Scan.tsx:389 msgid "History is locally kept in this browser." msgstr "" -#: src/pages/Index/Scan.tsx:376 +#: src/pages/Index/Scan.tsx:390 msgid "The history is kept in this browser's local storage. So it won't be shared with other users or other devices but is persistent through reloads. You can select items in the history to perform actions on them. To add items, scan/enter them in the Input area." msgstr "" -#: src/pages/Index/Scan.tsx:378 +#: src/pages/Index/Scan.tsx:392 #: src/pages/Notifications.tsx:100 msgid "History" msgstr "" -#: src/pages/Index/Scan.tsx:384 +#: src/pages/Index/Scan.tsx:398 msgid "Delete History" msgstr "" -#: src/pages/Index/Scan.tsx:449 +#: src/pages/Index/Scan.tsx:463 msgid "No history" msgstr "" -#: src/pages/Index/Scan.tsx:467 +#: src/pages/Index/Scan.tsx:481 msgid "Item" msgstr "" -#: src/pages/Index/Scan.tsx:470 +#: src/pages/Index/Scan.tsx:484 msgid "Type" msgstr "" -#: src/pages/Index/Scan.tsx:473 +#: src/pages/Index/Scan.tsx:487 msgid "Source" msgstr "" -#: src/pages/Index/Scan.tsx:476 +#: src/pages/Index/Scan.tsx:490 msgid "Scanned at" msgstr "" -#: src/pages/Index/Scan.tsx:528 +#: src/pages/Index/Scan.tsx:547 msgid "Enter item serial or data" msgstr "" -#: src/pages/Index/Scan.tsx:540 +#: src/pages/Index/Scan.tsx:559 msgid "Add dummy item" msgstr "" +#: src/pages/Index/Scan.tsx:569 +msgid "Start scanning by selecting a camera and pressing the play button." +msgstr "" + +#: src/pages/Index/Scan.tsx:650 +msgid "Error while getting camera" +msgstr "" + +#: src/pages/Index/Scan.tsx:673 +msgid "Error while scanning" +msgstr "" + +#: src/pages/Index/Scan.tsx:687 +msgid "Error while stopping" +msgstr "" + +#: src/pages/Index/Scan.tsx:745 +msgid "Stop scanning" +msgstr "" + +#: src/pages/Index/Scan.tsx:754 +msgid "Start scanning" +msgstr "" + +#: src/pages/Index/Scan.tsx:763 +msgid "Scanning" +msgstr "" + +#: src/pages/Index/Scan.tsx:763 +msgid "Not scanning" +msgstr "" + +#: src/pages/Index/Scan.tsx:775 +msgid "Select Camera" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:28 +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:50 +msgid "Edit User Information" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:32 +msgid "User details updated" +msgstr "" + #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:41 -msgid "Account Details" +msgid "User Details" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:41 +#~ msgid "Account Details" +#~ msgstr "Account Details" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:44 +msgid "User Actions" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:48 +msgid "Edit User" msgstr "" #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:50 -msgid "First name" +#~ msgid "First name" +#~ msgstr "First name" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:54 +msgid "Set Password" msgstr "" #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:55 -msgid "Last name" +#~ msgid "Last name" +#~ msgstr "Last name" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:56 +msgid "Set User Password" msgstr "" #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:58 @@ -3495,15 +4194,28 @@ msgstr "" #~ msgstr "Last name: {0}" #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:67 -msgid "First name:" -msgstr "" +#~ msgid "First name:" +#~ msgstr "First name:" #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:71 -msgid "Last name:" +#~ msgid "Last name:" +#~ msgstr "Last name:" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:73 +msgid "First Name" msgstr "" -#: src/pages/Index/Settings/AccountSettings/DisplaySettingsPanel.tsx:41 -msgid "Use pseudo language" +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:79 +msgid "Last Name" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:85 +msgid "Staff Access" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:93 +#: src/tables/settings/UserTable.tsx:293 +msgid "Superuser" msgstr "" #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:55 @@ -3600,27 +4312,6 @@ msgstr "" msgid "No tokens configured" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:398 -#: src/pages/part/PartDetail.tsx:297 -#: src/tables/bom/UsedInTable.tsx:84 -#: src/tables/build/BuildOrderTable.tsx:110 -#: src/tables/company/CompanyTable.tsx:61 -#: src/tables/company/CompanyTable.tsx:95 -#: src/tables/machine/MachineListTable.tsx:332 -#: src/tables/machine/MachineListTable.tsx:594 -#: src/tables/part/ParametricPartTable.tsx:223 -#: src/tables/part/PartTable.tsx:178 -#: src/tables/part/PartVariantTable.tsx:15 -#: src/tables/plugin/PluginListTable.tsx:149 -#: src/tables/plugin/PluginListTable.tsx:271 -#: src/tables/plugin/PluginListTable.tsx:563 -#: src/tables/purchasing/SupplierPartTable.tsx:98 -#: src/tables/purchasing/SupplierPartTable.tsx:187 -#: src/tables/settings/UserTable.tsx:284 -#: src/tables/stock/StockItemTable.tsx:289 -msgid "Active" -msgstr "" - #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:401 msgid "Expiry" msgstr "" @@ -3630,38 +4321,74 @@ msgid "Last Seen" msgstr "" #: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:65 -msgid "bars" -msgstr "" +#~ msgid "bars" +#~ msgstr "bars" #: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:66 -msgid "oval" -msgstr "" +#~ msgid "oval" +#~ msgstr "oval" #: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:67 -msgid "dots" -msgstr "" +#~ msgid "dots" +#~ msgstr "dots" #: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:81 -msgid "Theme" -msgstr "" +#~ msgid "Theme" +#~ msgstr "Theme" #: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:87 -msgid "Primary color" +#~ msgid "Primary color" +#~ msgstr "Primary color" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:88 +msgid "Bars" msgstr "" -#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:100 +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:89 +msgid "Oval" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:90 +msgid "Dots" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:101 +msgid "Display Settings" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:107 +msgid "Language" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:115 +msgid "Use pseudo language" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:122 +msgid "Color Mode" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:133 +msgid "Highlight color" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:145 +msgid "Example" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:151 msgid "White color" msgstr "" -#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:108 +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:167 msgid "Black color" msgstr "" -#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:116 +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:183 msgid "Border Radius" msgstr "" -#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:132 +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:199 msgid "Loader" msgstr "" @@ -3673,89 +4400,156 @@ msgstr "" #~ msgid "Advanced Amininistrative Options for InvenTree" #~ msgstr "Advanced Amininistrative Options for InvenTree" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:104 +#: src/pages/Index/Settings/AdminCenter/CurrencyManagmentPanel.tsx:27 +#: src/tables/ColumnRenderers.tsx:262 +msgid "Currency" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/CurrencyManagmentPanel.tsx:32 +msgid "Rate" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/CurrencyManagmentPanel.tsx:44 +msgid "Exchange rates updated" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/CurrencyManagmentPanel.tsx:50 +msgid "Exchange rate update error" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/CurrencyManagmentPanel.tsx:62 +msgid "Refresh currency exchange rates" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/CurrencyManagmentPanel.tsx:99 +msgid "Last fetched" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/CurrencyManagmentPanel.tsx:100 +msgid "Base currency" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:115 msgid "Data Import" msgstr "" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:110 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:121 +msgid "Barcode Scans" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:127 msgid "Background Tasks" msgstr "" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:116 -msgid "Error Reports" -msgstr "" - -#: src/pages/Index/Settings/AdminCenter/Index.tsx:122 -msgid "Currencies" -msgstr "" - #: src/pages/Index/Settings/AdminCenter/Index.tsx:127 #~ msgid "Templates" #~ msgstr "Templates" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:140 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:133 +msgid "Error Reports" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:139 +msgid "Currencies" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:157 +msgid "Custom States" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:163 +#: src/pages/Index/Settings/AdminCenter/UnitManagmentPanel.tsx:58 msgid "Custom Units" msgstr "" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:146 -#: src/pages/part/CategoryDetail.tsx:264 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:169 +#: src/pages/part/CategoryDetail.tsx:269 msgid "Part Parameters" msgstr "" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:152 -msgid "Category Parameters" -msgstr "" - -#: src/pages/Index/Settings/AdminCenter/Index.tsx:170 -msgid "Location Types" -msgstr "" - #: src/pages/Index/Settings/AdminCenter/Index.tsx:170 #~ msgid "Location types" #~ msgstr "Location types" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:182 -#: src/tables/machine/MachineTypeTable.tsx:287 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:175 +msgid "Category Parameters" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:181 +msgid "Stocktake" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:199 +msgid "Location Types" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:211 +#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:48 +#: src/tables/machine/MachineTypeTable.tsx:308 msgid "Machines" msgstr "" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:192 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:221 msgid "Quick Actions" msgstr "" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:197 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:226 msgid "Add a new user" msgstr "" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:222 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:252 msgid "Advanced Options" msgstr "" #: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:43 -msgid "Machine types" -msgstr "" +#~ msgid "Machine types" +#~ msgstr "Machine types" #: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:53 -msgid "Machine Error Stack" +#~ msgid "Machine Error Stack" +#~ msgstr "Machine Error Stack" + +#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:56 +msgid "Machine Types" msgstr "" #: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:62 -msgid "There are no machine registry errors." +#~ msgid "There are no machine registry errors." +#~ msgstr "There are no machine registry errors." + +#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:64 +msgid "Machine Errors" msgstr "" -#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:28 -#: src/tables/settings/UserTable.tsx:119 +#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:77 +msgid "Registry Registry Errors" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:80 +msgid "There are machine registry errors" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:86 +msgid "Machine Registry Errors" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:89 +msgid "There are no machine registry errors" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:31 +#: src/tables/settings/UserTable.tsx:118 msgid "Info" msgstr "" -#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:32 -msgid "External plugins are not enabled for this InvenTree installation." -msgstr "" - #: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:33 #~ msgid "Plugin Error Stack" #~ msgstr "Plugin Error Stack" +#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:35 +msgid "External plugins are not enabled for this InvenTree installation." +msgstr "" + #: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:45 #~ msgid "Warning" #~ msgstr "Warning" @@ -3764,34 +4558,46 @@ msgstr "" #~ msgid "Changing the settings below require you to immediately restart the server. Do not change this while under active usage." #~ msgstr "Changing the settings below require you to immediately restart the server. Do not change this while under active usage." -#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:50 +#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:73 msgid "Plugin Errors" msgstr "" -#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:59 -msgid "Plugin Settings" +#: src/pages/Index/Settings/AdminCenter/ReportTemplatePanel.tsx:17 +msgid "Page Size" msgstr "" -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:53 -msgid "Background Worker Not Running" +#: src/pages/Index/Settings/AdminCenter/ReportTemplatePanel.tsx:20 +msgid "Landscape" msgstr "" -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:54 +#: src/pages/Index/Settings/AdminCenter/ReportTemplatePanel.tsx:26 +msgid "Attach to Model" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/StocktakePanel.tsx:25 +msgid "Stocktake Reports" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:30 msgid "The background task manager service is not running. Contact your system administrator." msgstr "" -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:60 -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:76 +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:35 +#~ msgid "Background Worker Not Running" +#~ msgstr "Background Worker Not Running" + +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:36 +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:45 msgid "Pending Tasks" msgstr "" -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:64 -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:84 +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:37 +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:53 msgid "Scheduled Tasks" msgstr "" -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:68 -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:92 +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:38 +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:61 msgid "Failed Tasks" msgstr "" @@ -3811,11 +4617,6 @@ msgstr "" #~ msgid "Reports" #~ msgstr "Reports" -#: src/pages/Index/Settings/AdminCenter/TemplateManagementPanel.tsx:89 -#: src/pages/build/BuildDetail.tsx:373 -#~ msgid "Report" -#~ msgstr "Report" - #: src/pages/Index/Settings/AdminCenter/TemplateManagementPanel.tsx:99 #~ msgid "Purchase order" #~ msgstr "Purchase order" @@ -3836,23 +4637,35 @@ msgstr "" #~ msgid "Stock location" #~ msgstr "Stock location" +#: src/pages/Index/Settings/AdminCenter/UnitManagmentPanel.tsx:21 +msgid "Alias" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/UnitManagmentPanel.tsx:22 +msgid "Dimensionless" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/UnitManagmentPanel.tsx:66 +msgid "All units" +msgstr "" + #: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:32 msgid "Select settings relevant for user lifecycle. More available in" msgstr "" #: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:37 -msgid "System settings" -msgstr "" +#~ msgid "System settings" +#~ msgstr "System settings" -#: src/pages/Index/Settings/SystemSettings.tsx:67 +#: src/pages/Index/Settings/SystemSettings.tsx:66 msgid "Login" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:93 +#: src/pages/Index/Settings/SystemSettings.tsx:92 msgid "Barcodes" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:115 +#: src/pages/Index/Settings/SystemSettings.tsx:116 msgid "Pricing" msgstr "" @@ -3864,64 +4677,46 @@ msgstr "" #~ msgid "Exchange Rates" #~ msgstr "Exchange Rates" -#: src/pages/Index/Settings/SystemSettings.tsx:150 +#: src/pages/Index/Settings/SystemSettings.tsx:151 msgid "Labels" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:156 -#: src/pages/Index/Settings/UserSettings.tsx:132 +#: src/pages/Index/Settings/SystemSettings.tsx:157 +#: src/pages/Index/Settings/UserSettings.tsx:133 msgid "Reporting" msgstr "" #: src/pages/Index/Settings/SystemSettings.tsx:231 -#: src/pages/part/PartDetail.tsx:682 -msgid "Stocktake" -msgstr "" - -#: src/pages/Index/Settings/SystemSettings.tsx:237 -#: src/pages/build/BuildDetail.tsx:554 -#: src/pages/build/BuildIndex.tsx:22 -#: src/pages/part/PartDetail.tsx:616 -#: src/pages/sales/SalesOrderDetail.tsx:333 +#: src/pages/build/BuildIndex.tsx:27 +#: src/pages/part/PartDetail.tsx:636 +#: src/pages/sales/SalesOrderDetail.tsx:355 msgid "Build Orders" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:318 -msgid "Switch to User Setting" -msgstr "" +#: src/pages/Index/Settings/SystemSettings.tsx:317 +#~ msgid "Switch to User Setting" +#~ msgstr "Switch to User Setting" -#: src/pages/Index/Settings/UserSettings.tsx:34 +#: src/pages/Index/Settings/UserSettings.tsx:35 msgid "Account" msgstr "" -#: src/pages/Index/Settings/UserSettings.tsx:40 +#: src/pages/Index/Settings/UserSettings.tsx:41 msgid "Security" msgstr "" -#: src/pages/Index/Settings/UserSettings.tsx:78 +#: src/pages/Index/Settings/UserSettings.tsx:79 msgid "Display Options" msgstr "" -#: src/pages/Index/Settings/UserSettings.tsx:150 -msgid "Account Settings" -msgstr "" - -#: src/pages/Index/Settings/UserSettings.tsx:158 -msgid "Switch to System Setting" -msgstr "" - -#: src/pages/Index/UserSettings.tsx:103 -#~ msgid "User Settings" -#~ msgstr "User Settings" +#: src/pages/Index/Settings/UserSettings.tsx:159 +#~ msgid "Switch to System Setting" +#~ msgstr "Switch to System Setting" #: src/pages/Logged-In.tsx:24 #~ msgid "Found an exsisting login - using it to log you in." #~ msgstr "Found an exsisting login - using it to log you in." -#: src/pages/NotFound.tsx:17 -#~ msgid "Not Found" -#~ msgstr "Not Found" - #: src/pages/NotFound.tsx:20 #~ msgid "Sorry, this page is not known or was moved." #~ msgstr "Sorry, this page is not known or was moved." @@ -3942,104 +4737,86 @@ msgstr "" #~ msgid "Build Status" #~ msgstr "Build Status" -#: src/pages/build/BuildDetail.tsx:102 -#: src/pages/part/PartDetail.tsx:150 +#: src/pages/build/BuildDetail.tsx:97 +#: src/pages/company/ManufacturerPartDetail.tsx:81 +#: src/pages/company/SupplierPartDetail.tsx:91 +#: src/pages/part/PartDetail.tsx:171 +#: src/pages/stock/StockDetail.tsx:122 #: src/tables/bom/BomTable.tsx:118 #: src/tables/bom/UsedInTable.tsx:39 -#: src/tables/build/BuildLineTable.tsx:173 -#: src/tables/build/BuildOrderTable.tsx:55 -#: src/tables/sales/SalesOrderLineItemTable.tsx:62 -#: src/tables/stock/StockItemTable.tsx:53 +#: src/tables/build/BuildAllocatedStockTable.tsx:104 +#: src/tables/build/BuildLineTable.tsx:324 +#: src/tables/build/BuildOrderTable.tsx:64 +#: src/tables/sales/SalesOrderLineItemTable.tsx:70 +#: src/tables/stock/StockItemTable.tsx:54 msgid "IPN" msgstr "" -#: src/pages/build/BuildDetail.tsx:115 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:121 -#: src/pages/sales/ReturnOrderDetail.tsx:95 -#: src/pages/sales/SalesOrderDetail.tsx:101 -#: src/tables/ColumnRenderers.tsx:121 -#: src/tables/build/BuildAllocatedStockTable.tsx:90 -#: src/tables/build/BuildLineTable.tsx:184 +#: src/pages/build/BuildDetail.tsx:110 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:115 +#: src/pages/sales/ReturnOrderDetail.tsx:86 +#: src/pages/sales/SalesOrderDetail.tsx:95 +#: src/tables/ColumnRenderers.tsx:132 +#: src/tables/build/BuildAllocatedStockTable.tsx:111 +#: src/tables/build/BuildLineTable.tsx:335 msgid "Reference" msgstr "" -#: src/pages/build/BuildDetail.tsx:121 -#: src/pages/company/CompanyDetail.tsx:90 -#: src/pages/company/ManufacturerPartDetail.tsx:83 -#: src/pages/company/SupplierPartDetail.tsx:96 -#: src/pages/part/CategoryDetail.tsx:101 -#: src/pages/part/PartDetail.tsx:157 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:142 -#: src/pages/sales/ReturnOrderDetail.tsx:115 -#: src/pages/sales/SalesOrderDetail.tsx:121 -#: src/pages/stock/LocationDetail.tsx:109 -#: src/tables/ColumnRenderers.tsx:81 -#: src/tables/bom/UsedInTable.tsx:44 -#: src/tables/build/BuildAllocatedStockTable.tsx:70 -#: src/tables/build/BuildLineTable.tsx:178 -#: src/tables/machine/MachineTypeTable.tsx:69 -#: src/tables/machine/MachineTypeTable.tsx:112 -#: src/tables/machine/MachineTypeTable.tsx:219 -#: src/tables/machine/MachineTypeTable.tsx:323 -#: src/tables/part/RelatedPartTable.tsx:64 -#: src/tables/plugin/PluginListTable.tsx:129 -#: src/tables/plugin/PluginListTable.tsx:276 -#: src/tables/sales/SalesOrderAllocationTable.tsx:56 -#: src/tables/sales/SalesOrderLineItemTable.tsx:67 -#: src/tables/stock/LocationTypesTable.tsx:74 -msgid "Description" -msgstr "" - -#: src/pages/build/BuildDetail.tsx:129 +#: src/pages/build/BuildDetail.tsx:124 msgid "Parent Build" msgstr "" -#: src/pages/build/BuildDetail.tsx:140 +#: src/pages/build/BuildDetail.tsx:135 msgid "Build Quantity" msgstr "" -#: src/pages/build/BuildDetail.tsx:148 -#: src/pages/build/BuildDetail.tsx:274 +#: src/pages/build/BuildDetail.tsx:143 +#: src/pages/build/BuildDetail.tsx:277 msgid "Completed Outputs" msgstr "" -#: src/pages/build/BuildDetail.tsx:165 -#: src/tables/build/BuildOrderTable.tsx:151 +#: src/pages/build/BuildDetail.tsx:160 +#: src/tables/build/BuildOrderTable.tsx:142 msgid "Issued By" msgstr "" -#: src/pages/build/BuildDetail.tsx:172 -#: src/pages/part/PartDetail.tsx:365 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:220 -#: src/pages/sales/ReturnOrderDetail.tsx:199 -#: src/pages/sales/SalesOrderDetail.tsx:208 -#: src/tables/build/BuildOrderTable.tsx:157 -#: src/tables/purchasing/PurchaseOrderTable.tsx:75 -#: src/tables/sales/ReturnOrderTable.tsx:66 -#: src/tables/sales/SalesOrderTable.tsx:73 +#: src/pages/build/BuildDetail.tsx:167 +#: src/pages/part/PartDetail.tsx:406 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:244 +#: src/pages/sales/ReturnOrderDetail.tsx:216 +#: src/pages/sales/SalesOrderDetail.tsx:226 +#: src/tables/build/BuildOrderTable.tsx:148 +#: src/tables/purchasing/PurchaseOrderTable.tsx:76 +#: src/tables/sales/ReturnOrderTable.tsx:74 +#: src/tables/sales/SalesOrderTable.tsx:74 msgid "Responsible" msgstr "" -#: src/pages/build/BuildDetail.tsx:179 -#: src/tables/settings/PendingTasksTable.tsx:32 +#: src/pages/build/BuildDetail.tsx:174 +#: src/tables/settings/PendingTasksTable.tsx:36 msgid "Created" msgstr "" +#: src/pages/build/BuildDetail.tsx:181 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:229 +#: src/pages/sales/ReturnOrderDetail.tsx:201 +#: src/pages/sales/SalesOrderDetail.tsx:212 +#: src/tables/ColumnRenderers.tsx:226 +#: src/tables/part/PartPurchaseOrdersTable.tsx:100 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:135 +#: src/tables/sales/SalesOrderLineItemTable.tsx:107 +msgid "Target Date" +msgstr "" + #: src/pages/build/BuildDetail.tsx:185 #: src/pages/part/PartDetail.tsx:269 #: src/pages/stock/StockDetail.tsx:150 #~ msgid "View part barcode" #~ msgstr "View part barcode" -#: src/pages/build/BuildDetail.tsx:186 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:213 -#: src/pages/sales/ReturnOrderDetail.tsx:192 -#: src/pages/sales/SalesOrderDetail.tsx:201 -#: src/tables/ColumnRenderers.tsx:212 -#: src/tables/part/PartPurchaseOrdersTable.tsx:99 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:110 -#: src/tables/sales/SalesOrderLineItemTable.tsx:99 -msgid "Target Date" +#: src/pages/build/BuildDetail.tsx:188 +#: src/tables/sales/SalesOrderLineItemTable.tsx:281 +msgid "Completed" msgstr "" #: src/pages/build/BuildDetail.tsx:190 @@ -4047,10 +4824,6 @@ msgstr "" #~ msgid "Link custom barcode to part" #~ msgstr "Link custom barcode to part" -#: src/pages/build/BuildDetail.tsx:193 -msgid "Completed" -msgstr "" - #: src/pages/build/BuildDetail.tsx:196 #: src/pages/part/PartDetail.tsx:280 #~ msgid "Unlink custom barcode from part" @@ -4060,15 +4833,11 @@ msgstr "" #~ msgid "Build Order updated" #~ msgstr "Build Order updated" -#: src/pages/build/BuildDetail.tsx:205 -msgid "Source Location" -msgstr "" - -#: src/pages/build/BuildDetail.tsx:206 +#: src/pages/build/BuildDetail.tsx:209 msgid "Any location" msgstr "" -#: src/pages/build/BuildDetail.tsx:213 +#: src/pages/build/BuildDetail.tsx:216 msgid "Destination Location" msgstr "" @@ -4084,206 +4853,182 @@ msgstr "" #~ msgid "Delete build order" #~ msgstr "Delete build order" -#: src/pages/build/BuildDetail.tsx:251 +#: src/pages/build/BuildDetail.tsx:254 msgid "Build Details" msgstr "" -#: src/pages/build/BuildDetail.tsx:257 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:258 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:267 -#: src/pages/sales/ReturnOrderDetail.tsx:130 -#: src/pages/sales/ReturnOrderDetail.tsx:237 -#: src/pages/sales/ReturnOrderDetail.tsx:246 -#: src/pages/sales/SalesOrderDetail.tsx:272 -#: src/pages/sales/SalesOrderDetail.tsx:281 +#: src/pages/build/BuildDetail.tsx:260 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:282 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:291 +#: src/pages/sales/ReturnOrderDetail.tsx:122 +#: src/pages/sales/ReturnOrderDetail.tsx:254 +#: src/pages/sales/ReturnOrderDetail.tsx:263 +#: src/pages/sales/SalesOrderDetail.tsx:294 +#: src/pages/sales/SalesOrderDetail.tsx:303 msgid "Line Items" msgstr "" -#: src/pages/build/BuildDetail.tsx:267 +#: src/pages/build/BuildDetail.tsx:266 msgid "Incomplete Outputs" msgstr "" -#: src/pages/build/BuildDetail.tsx:289 -#: src/pages/sales/SalesOrderDetail.tsx:319 +#: src/pages/build/BuildDetail.tsx:292 +#: src/pages/sales/SalesOrderDetail.tsx:341 msgid "Allocated Stock" msgstr "" -#: src/pages/build/BuildDetail.tsx:299 +#: src/pages/build/BuildDetail.tsx:302 msgid "Consumed Stock" msgstr "" -#: src/pages/build/BuildDetail.tsx:313 +#: src/pages/build/BuildDetail.tsx:316 msgid "Child Build Orders" msgstr "" #: src/pages/build/BuildDetail.tsx:326 -#: src/tables/build/BuildOutputTable.tsx:384 -#: src/tables/stock/StockItemTestResultTable.tsx:150 +#: src/tables/build/BuildOutputTable.tsx:532 +#: src/tables/stock/StockItemTestResultTable.tsx:156 msgid "Test Results" msgstr "" #: src/pages/build/BuildDetail.tsx:337 -#: src/pages/part/PartDetail.tsx:699 +#: src/pages/part/PartDetail.tsx:740 msgid "Test Statistics" msgstr "" -#: src/pages/build/BuildDetail.tsx:351 -#: src/pages/company/CompanyDetail.tsx:259 -#: src/pages/company/ManufacturerPartDetail.tsx:179 -#: src/pages/part/PartDetail.tsx:721 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:309 -#: src/pages/sales/ReturnOrderDetail.tsx:274 -#: src/pages/sales/SalesOrderDetail.tsx:343 -#: src/pages/stock/StockDetail.tsx:385 -msgid "Attachments" -msgstr "" - -#: src/pages/build/BuildDetail.tsx:359 -#: src/pages/company/CompanyDetail.tsx:270 -#: src/pages/company/ManufacturerPartDetail.tsx:190 -#: src/pages/company/SupplierPartDetail.tsx:257 -#: src/pages/part/PartDetail.tsx:729 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:320 -#: src/pages/sales/ReturnOrderDetail.tsx:285 -#: src/pages/sales/SalesOrderDetail.tsx:354 -#: src/pages/stock/StockDetail.tsx:396 -#: src/tables/build/BuildOrderTestTable.tsx:142 -#: src/tables/stock/StockTrackingTable.tsx:189 -msgid "Notes" +#: src/pages/build/BuildDetail.tsx:365 +msgid "Edit Build Order" msgstr "" #: src/pages/build/BuildDetail.tsx:368 #~ msgid "Reporting Actions" #~ msgstr "Reporting Actions" +#: src/pages/build/BuildDetail.tsx:372 +#: src/tables/build/BuildOrderTable.tsx:173 +#: src/tables/build/BuildOrderTable.tsx:188 +msgid "Add Build Order" +msgstr "" + #: src/pages/build/BuildDetail.tsx:374 #~ msgid "Print build report" #~ msgstr "Print build report" -#: src/pages/build/BuildDetail.tsx:377 -msgid "Edit Build Order" -msgstr "" - -#: src/pages/build/BuildDetail.tsx:384 -#: src/tables/build/BuildOrderTable.tsx:172 -#: src/tables/build/BuildOrderTable.tsx:187 -msgid "Add Build Order" -msgstr "" - -#: src/pages/build/BuildDetail.tsx:398 +#: src/pages/build/BuildDetail.tsx:386 msgid "Cancel Build Order" msgstr "" -#: src/pages/build/BuildDetail.tsx:400 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:348 -#: src/pages/sales/SalesOrderDetail.tsx:380 +#: src/pages/build/BuildDetail.tsx:388 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:357 +#: src/pages/sales/ReturnOrderDetail.tsx:354 +#: src/pages/sales/SalesOrderDetail.tsx:387 msgid "Order cancelled" msgstr "" -#: src/pages/build/BuildDetail.tsx:401 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:347 -#: src/pages/sales/ReturnOrderDetail.tsx:346 -#: src/pages/sales/SalesOrderDetail.tsx:379 +#: src/pages/build/BuildDetail.tsx:389 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:356 +#: src/pages/sales/ReturnOrderDetail.tsx:353 +#: src/pages/sales/SalesOrderDetail.tsx:386 msgid "Cancel this order" msgstr "" -#: src/pages/build/BuildDetail.tsx:410 +#: src/pages/build/BuildDetail.tsx:398 msgid "Hold Build Order" msgstr "" -#: src/pages/build/BuildDetail.tsx:412 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:355 -#: src/pages/sales/ReturnOrderDetail.tsx:354 -#: src/pages/sales/SalesOrderDetail.tsx:387 +#: src/pages/build/BuildDetail.tsx:400 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:364 +#: src/pages/sales/ReturnOrderDetail.tsx:361 +#: src/pages/sales/SalesOrderDetail.tsx:394 msgid "Place this order on hold" msgstr "" -#: src/pages/build/BuildDetail.tsx:413 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:356 -#: src/pages/sales/ReturnOrderDetail.tsx:355 -#: src/pages/sales/SalesOrderDetail.tsx:388 +#: src/pages/build/BuildDetail.tsx:401 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:365 +#: src/pages/sales/ReturnOrderDetail.tsx:362 +#: src/pages/sales/SalesOrderDetail.tsx:395 msgid "Order placed on hold" msgstr "" -#: src/pages/build/BuildDetail.tsx:418 +#: src/pages/build/BuildDetail.tsx:406 msgid "Issue Build Order" msgstr "" -#: src/pages/build/BuildDetail.tsx:420 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:339 -#: src/pages/sales/ReturnOrderDetail.tsx:338 -#: src/pages/sales/SalesOrderDetail.tsx:371 +#: src/pages/build/BuildDetail.tsx:408 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:348 +#: src/pages/sales/ReturnOrderDetail.tsx:345 +#: src/pages/sales/SalesOrderDetail.tsx:378 msgid "Issue this order" msgstr "" -#: src/pages/build/BuildDetail.tsx:421 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:340 -#: src/pages/sales/ReturnOrderDetail.tsx:339 -#: src/pages/sales/SalesOrderDetail.tsx:372 +#: src/pages/build/BuildDetail.tsx:409 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:349 +#: src/pages/sales/ReturnOrderDetail.tsx:346 +#: src/pages/sales/SalesOrderDetail.tsx:379 msgid "Order issued" msgstr "" -#: src/pages/build/BuildDetail.tsx:426 +#: src/pages/build/BuildDetail.tsx:414 msgid "Complete Build Order" msgstr "" -#: src/pages/build/BuildDetail.tsx:428 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:368 -#: src/pages/sales/ReturnOrderDetail.tsx:362 -#: src/pages/sales/SalesOrderDetail.tsx:395 +#: src/pages/build/BuildDetail.tsx:416 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:377 +#: src/pages/sales/ReturnOrderDetail.tsx:369 +#: src/pages/sales/SalesOrderDetail.tsx:402 msgid "Mark this order as complete" msgstr "" -#: src/pages/build/BuildDetail.tsx:429 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:362 -#: src/pages/sales/ReturnOrderDetail.tsx:363 -#: src/pages/sales/SalesOrderDetail.tsx:396 +#: src/pages/build/BuildDetail.tsx:417 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:371 +#: src/pages/sales/ReturnOrderDetail.tsx:370 +#: src/pages/sales/SalesOrderDetail.tsx:403 msgid "Order completed" msgstr "" -#: src/pages/build/BuildDetail.tsx:460 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:391 -#: src/pages/sales/ReturnOrderDetail.tsx:392 -#: src/pages/sales/SalesOrderDetail.tsx:425 +#: src/pages/build/BuildDetail.tsx:448 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:400 +#: src/pages/sales/ReturnOrderDetail.tsx:399 +#: src/pages/sales/SalesOrderDetail.tsx:432 msgid "Issue Order" msgstr "" -#: src/pages/build/BuildDetail.tsx:467 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:398 -#: src/pages/sales/ReturnOrderDetail.tsx:399 -#: src/pages/sales/SalesOrderDetail.tsx:439 +#: src/pages/build/BuildDetail.tsx:455 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:407 +#: src/pages/sales/ReturnOrderDetail.tsx:406 +#: src/pages/sales/SalesOrderDetail.tsx:446 msgid "Complete Order" msgstr "" -#: src/pages/build/BuildDetail.tsx:496 +#: src/pages/build/BuildDetail.tsx:473 msgid "Build Order Actions" msgstr "" -#: src/pages/build/BuildDetail.tsx:502 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:432 -#: src/pages/sales/ReturnOrderDetail.tsx:433 -#: src/pages/sales/SalesOrderDetail.tsx:474 +#: src/pages/build/BuildDetail.tsx:478 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:429 +#: src/pages/sales/ReturnOrderDetail.tsx:428 +#: src/pages/sales/SalesOrderDetail.tsx:469 msgid "Edit order" msgstr "" -#: src/pages/build/BuildDetail.tsx:506 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:440 -#: src/pages/sales/ReturnOrderDetail.tsx:439 -#: src/pages/sales/SalesOrderDetail.tsx:479 +#: src/pages/build/BuildDetail.tsx:482 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:437 +#: src/pages/sales/ReturnOrderDetail.tsx:434 +#: src/pages/sales/SalesOrderDetail.tsx:474 msgid "Duplicate order" msgstr "" -#: src/pages/build/BuildDetail.tsx:510 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:443 -#: src/pages/sales/ReturnOrderDetail.tsx:444 -#: src/pages/sales/SalesOrderDetail.tsx:482 +#: src/pages/build/BuildDetail.tsx:486 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:440 +#: src/pages/sales/ReturnOrderDetail.tsx:439 +#: src/pages/sales/SalesOrderDetail.tsx:477 msgid "Hold order" msgstr "" -#: src/pages/build/BuildDetail.tsx:515 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:448 -#: src/pages/sales/ReturnOrderDetail.tsx:449 -#: src/pages/sales/SalesOrderDetail.tsx:487 +#: src/pages/build/BuildDetail.tsx:491 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:445 +#: src/pages/sales/ReturnOrderDetail.tsx:444 +#: src/pages/sales/SalesOrderDetail.tsx:482 msgid "Cancel order" msgstr "" @@ -4295,56 +5040,60 @@ msgstr "" #~ msgid "New Build Order" #~ msgstr "New Build Order" -#: src/pages/company/CompanyDetail.tsx:104 +#: src/pages/company/CompanyDetail.tsx:95 +msgid "Website" +msgstr "" + +#: src/pages/company/CompanyDetail.tsx:103 msgid "Phone Number" msgstr "" -#: src/pages/company/CompanyDetail.tsx:111 +#: src/pages/company/CompanyDetail.tsx:110 msgid "Email Address" msgstr "" -#: src/pages/company/CompanyDetail.tsx:121 +#: src/pages/company/CompanyDetail.tsx:120 msgid "Default Currency" msgstr "" -#: src/pages/company/CompanyDetail.tsx:126 +#: src/pages/company/CompanyDetail.tsx:125 #: src/pages/company/SupplierDetail.tsx:8 -#: src/pages/company/SupplierPartDetail.tsx:120 -#: src/pages/company/SupplierPartDetail.tsx:206 -#: src/pages/company/SupplierPartDetail.tsx:351 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:136 -#: src/tables/company/CompanyTable.tsx:100 +#: src/pages/company/SupplierPartDetail.tsx:125 +#: src/pages/company/SupplierPartDetail.tsx:218 +#: src/pages/company/SupplierPartDetail.tsx:340 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:130 +#: src/tables/company/CompanyTable.tsx:101 #: src/tables/part/PartPurchaseOrdersTable.tsx:42 -#: src/tables/purchasing/PurchaseOrderTable.tsx:88 +#: src/tables/purchasing/PurchaseOrderTable.tsx:89 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:36 msgid "Supplier" msgstr "" -#: src/pages/company/CompanyDetail.tsx:132 +#: src/pages/company/CompanyDetail.tsx:131 #: src/pages/company/ManufacturerDetail.tsx:8 -#: src/pages/company/ManufacturerPartDetail.tsx:101 -#: src/pages/company/ManufacturerPartDetail.tsx:267 -#: src/pages/company/SupplierPartDetail.tsx:135 -#: src/tables/company/CompanyTable.tsx:105 +#: src/pages/company/ManufacturerPartDetail.tsx:100 +#: src/pages/company/ManufacturerPartDetail.tsx:262 +#: src/pages/company/SupplierPartDetail.tsx:147 +#: src/tables/company/CompanyTable.tsx:106 msgid "Manufacturer" msgstr "" -#: src/pages/company/CompanyDetail.tsx:138 +#: src/pages/company/CompanyDetail.tsx:137 #: src/pages/company/CustomerDetail.tsx:8 -#: src/pages/part/pricing/SaleHistoryPanel.tsx:29 -#: src/pages/sales/ReturnOrderDetail.tsx:109 -#: src/pages/sales/SalesOrderDetail.tsx:115 -#: src/pages/stock/StockDetail.tsx:230 -#: src/tables/company/CompanyTable.tsx:110 -#: src/tables/sales/ReturnOrderTable.tsx:78 -#: src/tables/sales/SalesOrderTable.tsx:108 -#: src/tables/stock/StockTrackingTable.tsx:140 +#: src/pages/part/pricing/SaleHistoryPanel.tsx:31 +#: src/pages/sales/ReturnOrderDetail.tsx:101 +#: src/pages/sales/SalesOrderDetail.tsx:110 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:100 +#: src/pages/stock/StockDetail.tsx:271 +#: src/tables/company/CompanyTable.tsx:111 +#: src/tables/sales/ReturnOrderTable.tsx:97 +#: src/tables/sales/SalesOrderTable.tsx:121 +#: src/tables/stock/StockTrackingTable.tsx:144 msgid "Customer" msgstr "" #: src/pages/company/CompanyDetail.tsx:172 -#: src/tables/stock/StockTrackingTable.tsx:183 -msgid "Details" +msgid "Company Details" msgstr "" #: src/pages/company/CompanyDetail.tsx:175 @@ -4363,140 +5112,150 @@ msgstr "" #~ msgid "Delete company" #~ msgstr "Delete company" -#: src/pages/company/CompanyDetail.tsx:232 +#: src/pages/company/CompanyDetail.tsx:234 msgid "Assigned Stock" msgstr "" -#: src/pages/company/CompanyDetail.tsx:290 -#: src/tables/company/CompanyTable.tsx:86 +#: src/pages/company/CompanyDetail.tsx:273 +#: src/tables/company/CompanyTable.tsx:87 msgid "Edit Company" msgstr "" -#: src/pages/company/CompanyDetail.tsx:298 +#: src/pages/company/CompanyDetail.tsx:281 msgid "Delete Company" msgstr "" -#: src/pages/company/CompanyDetail.tsx:306 +#: src/pages/company/CompanyDetail.tsx:289 msgid "Company Actions" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:76 -#: src/pages/company/SupplierPartDetail.tsx:89 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:128 +#: src/pages/company/ManufacturerPartDetail.tsx:74 +#: src/pages/company/SupplierPartDetail.tsx:84 msgid "Internal Part" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:91 -#: src/pages/company/SupplierPartDetail.tsx:103 -msgid "External Link" -msgstr "" - -#: src/pages/company/ManufacturerPartDetail.tsx:109 -#: src/pages/company/SupplierPartDetail.tsx:144 -#: src/tables/purchasing/ManufacturerPartTable.tsx:56 +#: src/pages/company/ManufacturerPartDetail.tsx:108 +#: src/pages/company/SupplierPartDetail.tsx:156 +#: src/tables/purchasing/ManufacturerPartTable.tsx:58 msgid "Manufacturer Part Number" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:138 +#: src/pages/company/ManufacturerPartDetail.tsx:125 +#: src/pages/company/SupplierPartDetail.tsx:108 +msgid "External Link" +msgstr "" + +#: src/pages/company/ManufacturerPartDetail.tsx:146 +#: src/pages/company/SupplierPartDetail.tsx:215 +#: src/pages/part/PartDetail.tsx:576 +msgid "Part Details" +msgstr "" + +#: src/pages/company/ManufacturerPartDetail.tsx:149 msgid "Manufacturer Details" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:147 +#: src/pages/company/ManufacturerPartDetail.tsx:158 msgid "Manufacturer Part Details" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:153 -#: src/pages/part/PartDetail.tsx:532 +#: src/pages/company/ManufacturerPartDetail.tsx:164 +#: src/pages/part/PartDetail.tsx:582 msgid "Parameters" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:165 -#: src/pages/part/PartDetail.tsx:649 +#: src/pages/company/ManufacturerPartDetail.tsx:176 +#: src/pages/part/PartDetail.tsx:669 #: src/pages/purchasing/PurchasingIndex.tsx:31 msgid "Suppliers" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:208 -#: src/tables/purchasing/ManufacturerPartTable.tsx:84 +#: src/pages/company/ManufacturerPartDetail.tsx:204 +#: src/tables/purchasing/ManufacturerPartTable.tsx:86 msgid "Edit Manufacturer Part" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:215 -#: src/tables/purchasing/ManufacturerPartTable.tsx:72 -#: src/tables/purchasing/ManufacturerPartTable.tsx:103 +#: src/pages/company/ManufacturerPartDetail.tsx:211 +#: src/tables/purchasing/ManufacturerPartTable.tsx:74 +#: src/tables/purchasing/ManufacturerPartTable.tsx:106 msgid "Add Manufacturer Part" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:227 -#: src/tables/purchasing/ManufacturerPartTable.tsx:92 +#: src/pages/company/ManufacturerPartDetail.tsx:223 +#: src/tables/purchasing/ManufacturerPartTable.tsx:94 msgid "Delete Manufacturer Part" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:240 +#: src/pages/company/ManufacturerPartDetail.tsx:236 msgid "Manufacturer Part Actions" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:281 +#: src/pages/company/ManufacturerPartDetail.tsx:276 msgid "ManufacturerPart" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:163 -#: src/tables/part/PartPurchaseOrdersTable.tsx:71 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:156 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:197 -#: src/tables/purchasing/SupplierPartTable.tsx:131 +#: src/pages/company/SupplierPartDetail.tsx:99 +msgid "Part Description" +msgstr "" + +#: src/pages/company/SupplierPartDetail.tsx:175 +#: src/tables/part/PartPurchaseOrdersTable.tsx:72 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:162 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:203 +#: src/tables/purchasing/SupplierPartTable.tsx:133 msgid "Pack Quantity" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:174 +#: src/pages/company/SupplierPartDetail.tsx:186 msgid "Supplier Availability" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:181 +#: src/pages/company/SupplierPartDetail.tsx:193 msgid "Availability Updated" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:208 +#: src/pages/company/SupplierPartDetail.tsx:220 msgid "Availability" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:217 +#: src/pages/company/SupplierPartDetail.tsx:229 msgid "Supplier Part Details" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:223 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:296 +#: src/pages/company/SupplierPartDetail.tsx:235 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:320 msgid "Received Stock" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:247 -#: src/pages/part/PartPricingPanel.tsx:111 -#: src/pages/part/pricing/PricingOverviewPanel.tsx:121 +#: src/pages/company/SupplierPartDetail.tsx:259 +#: src/pages/part/PartPricingPanel.tsx:116 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:195 msgid "Supplier Pricing" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:294 +#: src/pages/company/SupplierPartDetail.tsx:284 msgid "Supplier Part Actions" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:319 -#: src/tables/purchasing/SupplierPartTable.tsx:210 +#: src/pages/company/SupplierPartDetail.tsx:308 +#: src/tables/purchasing/SupplierPartTable.tsx:213 msgid "Edit Supplier Part" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:327 -#: src/tables/purchasing/SupplierPartTable.tsx:218 +#: src/pages/company/SupplierPartDetail.tsx:316 +#: src/tables/purchasing/SupplierPartTable.tsx:221 msgid "Delete Supplier Part" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:335 -#: src/tables/purchasing/SupplierPartTable.tsx:163 +#: src/pages/company/SupplierPartDetail.tsx:324 +#: src/tables/purchasing/SupplierPartTable.tsx:165 msgid "Add Supplier Part" msgstr "" #: src/pages/part/CategoryDetail.tsx:93 -#: src/pages/stock/LocationDetail.tsx:101 -#: src/tables/settings/ErrorTable.tsx:36 +#: src/pages/stock/LocationDetail.tsx:95 +#: src/tables/settings/ErrorTable.tsx:63 +#: src/tables/settings/ErrorTable.tsx:108 msgid "Path" msgstr "" @@ -4504,357 +5263,357 @@ msgstr "" msgid "Parent Category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:126 +#: src/pages/part/CategoryDetail.tsx:132 msgid "Subcategories" msgstr "" -#: src/pages/part/CategoryDetail.tsx:133 -#: src/pages/stock/LocationDetail.tsx:141 -#: src/tables/part/PartCategoryTable.tsx:73 +#: src/pages/part/CategoryDetail.tsx:139 +#: src/pages/stock/LocationDetail.tsx:135 +#: src/tables/part/PartCategoryTable.tsx:85 #: src/tables/stock/StockLocationTable.tsx:49 msgid "Structural" msgstr "" -#: src/pages/part/CategoryDetail.tsx:139 +#: src/pages/part/CategoryDetail.tsx:145 msgid "Parent default location" msgstr "" -#: src/pages/part/CategoryDetail.tsx:146 +#: src/pages/part/CategoryDetail.tsx:152 msgid "Default location" msgstr "" -#: src/pages/part/CategoryDetail.tsx:157 +#: src/pages/part/CategoryDetail.tsx:163 msgid "Top level part category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:167 -#: src/pages/part/CategoryDetail.tsx:221 -#: src/tables/part/PartCategoryTable.tsx:102 +#: src/pages/part/CategoryDetail.tsx:173 +#: src/pages/part/CategoryDetail.tsx:226 +#: src/tables/part/PartCategoryTable.tsx:118 msgid "Edit Part Category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:180 -#: src/pages/stock/LocationDetail.tsx:233 +#: src/pages/part/CategoryDetail.tsx:186 +#: src/pages/stock/LocationDetail.tsx:227 msgid "Delete items" msgstr "" -#: src/pages/part/CategoryDetail.tsx:188 -#: src/pages/part/CategoryDetail.tsx:226 +#: src/pages/part/CategoryDetail.tsx:194 +#: src/pages/part/CategoryDetail.tsx:231 msgid "Delete Part Category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:191 +#: src/pages/part/CategoryDetail.tsx:197 msgid "Parts Action" msgstr "" -#: src/pages/part/CategoryDetail.tsx:192 +#: src/pages/part/CategoryDetail.tsx:198 msgid "Action for parts in this category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:197 +#: src/pages/part/CategoryDetail.tsx:203 msgid "Child Categories Action" msgstr "" -#: src/pages/part/CategoryDetail.tsx:198 +#: src/pages/part/CategoryDetail.tsx:204 msgid "Action for child categories in this category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:216 +#: src/pages/part/CategoryDetail.tsx:222 msgid "Category Actions" msgstr "" -#: src/pages/part/CategoryDetail.tsx:238 +#: src/pages/part/CategoryDetail.tsx:243 msgid "Category Details" msgstr "" -#: src/pages/part/PartDetail.tsx:163 -msgid "Variant of" +#: src/pages/part/PartAllocationPanel.tsx:23 +#: src/pages/stock/StockDetail.tsx:443 +#: src/tables/part/PartTable.tsx:99 +msgid "Build Order Allocations" msgstr "" -#: src/pages/part/PartDetail.tsx:170 -msgid "Revision of" -msgstr "" - -#: src/pages/part/PartDetail.tsx:177 -#: src/tables/stock/StockItemTable.tsx:58 -msgid "Revision" +#: src/pages/part/PartAllocationPanel.tsx:40 +#: src/pages/stock/StockDetail.tsx:458 +#: src/tables/part/PartTable.tsx:108 +msgid "Sales Order Allocations" msgstr "" #: src/pages/part/PartDetail.tsx:184 +msgid "Variant of" +msgstr "" + +#: src/pages/part/PartDetail.tsx:191 +msgid "Revision of" +msgstr "" + +#: src/pages/part/PartDetail.tsx:198 +#: src/tables/stock/StockItemTable.tsx:59 +msgid "Revision" +msgstr "" + +#: src/pages/part/PartDetail.tsx:205 #: src/tables/notifications/NotificationsTable.tsx:31 #: src/tables/part/PartCategoryTemplateTable.tsx:67 msgid "Category" msgstr "" -#: src/pages/part/PartDetail.tsx:190 +#: src/pages/part/PartDetail.tsx:211 msgid "Default Location" msgstr "" -#: src/pages/part/PartDetail.tsx:197 +#: src/pages/part/PartDetail.tsx:218 msgid "Category Default Location" msgstr "" -#: src/pages/part/PartDetail.tsx:204 +#: src/pages/part/PartDetail.tsx:225 #: src/tables/purchasing/ManufacturerPartParameterTable.tsx:44 msgid "Units" msgstr "" -#: src/pages/part/PartDetail.tsx:211 -#: src/tables/settings/PendingTasksTable.tsx:42 +#: src/pages/part/PartDetail.tsx:232 +#: src/tables/settings/PendingTasksTable.tsx:46 msgid "Keywords" msgstr "" -#: src/pages/part/PartDetail.tsx:218 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:186 -#: src/pages/sales/ReturnOrderDetail.tsx:165 -#: src/pages/sales/SalesOrderDetail.tsx:174 -msgid "Link" -msgstr "" - -#: src/pages/part/PartDetail.tsx:236 +#: src/pages/part/PartDetail.tsx:257 #: src/tables/bom/BomTable.tsx:320 -#: src/tables/build/BuildLineTable.tsx:155 +#: src/tables/build/BuildLineTable.tsx:286 #: src/tables/part/PartTable.tsx:288 -#: src/tables/sales/SalesOrderLineItemTable.tsx:103 +#: src/tables/sales/SalesOrderLineItemTable.tsx:111 msgid "Available Stock" msgstr "" -#: src/pages/part/PartDetail.tsx:243 +#: src/pages/part/PartDetail.tsx:264 msgid "Variant Stock" msgstr "" -#: src/pages/part/PartDetail.tsx:251 +#: src/pages/part/PartDetail.tsx:272 msgid "Minimum Stock" msgstr "" -#: src/pages/part/PartDetail.tsx:257 +#: src/pages/part/PartDetail.tsx:278 #: src/tables/bom/BomTable.tsx:237 -#: src/tables/build/BuildLineTable.tsx:117 -#: src/tables/sales/SalesOrderLineItemTable.tsx:141 +#: src/tables/build/BuildLineTable.tsx:248 +#: src/tables/sales/SalesOrderLineItemTable.tsx:149 msgid "On order" msgstr "" -#: src/pages/part/PartDetail.tsx:266 +#: src/pages/part/PartDetail.tsx:285 +msgid "Required for Orders" +msgstr "" + +#: src/pages/part/PartDetail.tsx:294 msgid "Allocated to Build Orders" msgstr "" -#: src/pages/part/PartDetail.tsx:274 +#: src/pages/part/PartDetail.tsx:305 msgid "Allocated to Sales Orders" msgstr "" -#: src/pages/part/PartDetail.tsx:281 -#: src/tables/bom/BomTable.tsx:261 -#: src/tables/bom/BomTable.tsx:293 -msgid "Can Build" -msgstr "" - -#: src/pages/part/PartDetail.tsx:288 -#: src/tables/bom/BomTable.tsx:245 -#: src/tables/part/PartTable.tsx:92 -msgid "Building" -msgstr "" - -#: src/pages/part/PartDetail.tsx:302 -#: src/pages/part/PartDetail.tsx:873 -#: src/tables/part/ParametricPartTable.tsx:228 -#: src/tables/part/PartTable.tsx:184 -msgid "Locked" -msgstr "" - -#: src/pages/part/PartDetail.tsx:308 -msgid "Template Part" -msgstr "" - #: src/pages/part/PartDetail.tsx:310 #~ msgid "Edit part" #~ msgstr "Edit part" -#: src/pages/part/PartDetail.tsx:313 -#: src/tables/bom/BomTable.tsx:315 -msgid "Assembled Part" +#: src/pages/part/PartDetail.tsx:315 +#: src/tables/bom/BomTable.tsx:261 +#: src/tables/bom/BomTable.tsx:293 +msgid "Can Build" msgstr "" -#: src/pages/part/PartDetail.tsx:318 -msgid "Component Part" +#: src/pages/part/PartDetail.tsx:322 +#: src/pages/part/PartDetail.tsx:905 +#: src/pages/stock/StockDetail.tsx:766 +#: src/tables/build/BuildOrderTestTable.tsx:220 +#: src/tables/stock/StockItemTable.tsx:334 +msgid "In Production" msgstr "" #: src/pages/part/PartDetail.tsx:322 #~ msgid "Duplicate part" #~ msgstr "Duplicate part" -#: src/pages/part/PartDetail.tsx:323 -#: src/tables/bom/BomTable.tsx:305 -msgid "Testable Part" -msgstr "" - #: src/pages/part/PartDetail.tsx:327 #~ msgid "Delete part" #~ msgstr "Delete part" -#: src/pages/part/PartDetail.tsx:329 +#: src/pages/part/PartDetail.tsx:336 +#: src/tables/part/ParametricPartTable.tsx:228 +#: src/tables/part/PartTable.tsx:184 +msgid "Locked" +msgstr "" + +#: src/pages/part/PartDetail.tsx:342 +msgid "Template Part" +msgstr "" + +#: src/pages/part/PartDetail.tsx:347 +#: src/tables/bom/BomTable.tsx:315 +msgid "Assembled Part" +msgstr "" + +#: src/pages/part/PartDetail.tsx:352 +msgid "Component Part" +msgstr "" + +#: src/pages/part/PartDetail.tsx:357 +#: src/tables/bom/BomTable.tsx:305 +msgid "Testable Part" +msgstr "" + +#: src/pages/part/PartDetail.tsx:363 #: src/tables/bom/BomTable.tsx:310 msgid "Trackable Part" msgstr "" -#: src/pages/part/PartDetail.tsx:334 +#: src/pages/part/PartDetail.tsx:368 msgid "Purchaseable Part" msgstr "" -#: src/pages/part/PartDetail.tsx:339 +#: src/pages/part/PartDetail.tsx:374 msgid "Saleable Part" msgstr "" -#: src/pages/part/PartDetail.tsx:344 +#: src/pages/part/PartDetail.tsx:379 msgid "Virtual Part" msgstr "" -#: src/pages/part/PartDetail.tsx:352 -#: src/tables/ColumnRenderers.tsx:220 +#: src/pages/part/PartDetail.tsx:393 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:215 +#: src/pages/sales/ReturnOrderDetail.tsx:185 +#: src/pages/sales/SalesOrderDetail.tsx:197 +#: src/tables/ColumnRenderers.tsx:234 msgid "Creation Date" msgstr "" -#: src/pages/part/PartDetail.tsx:357 +#: src/pages/part/PartDetail.tsx:398 msgid "Created By" msgstr "" -#: src/pages/part/PartDetail.tsx:372 +#: src/pages/part/PartDetail.tsx:413 msgid "Default Supplier" msgstr "" -#: src/pages/part/PartDetail.tsx:383 -#: src/pages/part/pricing/BomPricingPanel.tsx:79 +#: src/pages/part/PartDetail.tsx:424 +#: src/pages/part/pricing/BomPricingPanel.tsx:113 #: src/pages/part/pricing/VariantPricingPanel.tsx:95 #: src/tables/part/PartTable.tsx:161 msgid "Price Range" msgstr "" -#: src/pages/part/PartDetail.tsx:423 -#: src/pages/stock/StockDetail.tsx:135 +#: src/pages/part/PartDetail.tsx:462 +msgid "Latest Serial Number" +msgstr "" + +#: src/pages/part/PartDetail.tsx:472 +#: src/pages/stock/StockDetail.tsx:151 msgid "Last Stocktake" msgstr "" -#: src/pages/part/PartDetail.tsx:462 +#: src/pages/part/PartDetail.tsx:511 msgid "Stocktake By" msgstr "" -#: src/pages/part/PartDetail.tsx:526 -msgid "Part Details" -msgstr "" - -#: src/pages/part/PartDetail.tsx:557 +#: src/pages/part/PartDetail.tsx:611 msgid "Variants" msgstr "" -#: src/pages/part/PartDetail.tsx:564 -#: src/pages/stock/StockDetail.tsx:307 +#: src/pages/part/PartDetail.tsx:618 +#: src/pages/stock/StockDetail.tsx:430 msgid "Allocations" msgstr "" -#: src/pages/part/PartDetail.tsx:575 -#: src/pages/stock/StockDetail.tsx:318 -#: src/tables/part/PartTable.tsx:99 -msgid "Build Order Allocations" -msgstr "" - -#: src/pages/part/PartDetail.tsx:590 -#: src/pages/stock/StockDetail.tsx:333 -#: src/tables/part/PartTable.tsx:108 -msgid "Sales Order Allocations" -msgstr "" - -#: src/pages/part/PartDetail.tsx:607 +#: src/pages/part/PartDetail.tsx:625 msgid "Bill of Materials" msgstr "" -#: src/pages/part/PartDetail.tsx:623 +#: src/pages/part/PartDetail.tsx:643 msgid "Used In" msgstr "" -#: src/pages/part/PartDetail.tsx:630 +#: src/pages/part/PartDetail.tsx:650 msgid "Part Pricing" msgstr "" -#: src/pages/part/PartDetail.tsx:636 +#: src/pages/part/PartDetail.tsx:656 #: src/pages/purchasing/PurchasingIndex.tsx:42 msgid "Manufacturers" msgstr "" -#: src/pages/part/PartDetail.tsx:676 +#: src/pages/part/PartDetail.tsx:722 msgid "Scheduling" msgstr "" -#: src/pages/part/PartDetail.tsx:688 +#: src/pages/part/PartDetail.tsx:729 msgid "Test Templates" msgstr "" -#: src/pages/part/PartDetail.tsx:715 +#: src/pages/part/PartDetail.tsx:756 msgid "Related Parts" msgstr "" -#: src/pages/part/PartDetail.tsx:849 -#: src/pages/stock/StockDetail.tsx:156 -#: src/pages/stock/StockDetail.tsx:593 -#: src/tables/build/BuildLineTable.tsx:48 +#: src/pages/part/PartDetail.tsx:881 +#: src/pages/stock/StockDetail.tsx:172 +#: src/pages/stock/StockDetail.tsx:783 +#: src/tables/build/BuildLineTable.tsx:179 #: src/tables/part/PartTable.tsx:117 -#: src/tables/stock/StockItemTable.tsx:177 -#: src/tables/stock/StockItemTable.tsx:310 +#: src/tables/stock/StockItemTable.tsx:166 +#: src/tables/stock/StockItemTable.tsx:314 msgid "Available" msgstr "" -#: src/pages/part/PartDetail.tsx:855 +#: src/pages/part/PartDetail.tsx:887 msgid "No Stock" msgstr "" -#: src/pages/part/PartDetail.tsx:861 +#: src/pages/part/PartDetail.tsx:893 +#: src/tables/part/PartTestTemplateTable.tsx:106 +#: src/tables/stock/StockItemTestResultTable.tsx:383 +msgid "Required" +msgstr "" + +#: src/pages/part/PartDetail.tsx:899 #: src/tables/bom/BomTable.tsx:325 #: src/tables/part/PartTable.tsx:86 msgid "On Order" msgstr "" -#: src/pages/part/PartDetail.tsx:867 -#: src/pages/stock/StockDetail.tsx:576 -#: src/tables/build/BuildOrderTestTable.tsx:219 -#: src/tables/stock/StockItemTable.tsx:330 -msgid "In Production" -msgstr "" - -#: src/pages/part/PartDetail.tsx:892 +#: src/pages/part/PartDetail.tsx:924 msgid "Edit Part" msgstr "" -#: src/pages/part/PartDetail.tsx:927 +#: src/pages/part/PartDetail.tsx:959 #: src/tables/part/PartTable.tsx:331 -#: src/tables/part/PartTable.tsx:342 +#: src/tables/part/PartTable.tsx:343 msgid "Add Part" msgstr "" -#: src/pages/part/PartDetail.tsx:941 +#: src/pages/part/PartDetail.tsx:973 msgid "Delete Part" msgstr "" -#: src/pages/part/PartDetail.tsx:950 +#: src/pages/part/PartDetail.tsx:982 msgid "Deleting this part cannot be reversed" msgstr "" -#: src/pages/part/PartDetail.tsx:999 -#: src/pages/stock/LocationDetail.tsx:324 -#: src/tables/stock/StockItemTable.tsx:444 +#: src/pages/part/PartDetail.tsx:1021 +#: src/pages/stock/LocationDetail.tsx:310 +#: src/tables/stock/StockItemTable.tsx:449 msgid "Stock Actions" msgstr "" -#: src/pages/part/PartDetail.tsx:1007 +#: src/pages/part/PartDetail.tsx:1029 msgid "Count part stock" msgstr "" -#: src/pages/part/PartDetail.tsx:1018 +#: src/pages/part/PartDetail.tsx:1040 msgid "Transfer part stock" msgstr "" -#: src/pages/part/PartDetail.tsx:1027 +#: src/pages/part/PartDetail.tsx:1049 msgid "Part Actions" msgstr "" -#: src/pages/part/PartDetail.tsx:1087 +#: src/pages/part/PartDetail.tsx:1113 msgid "Select Part Revision" msgstr "" @@ -4862,113 +5621,214 @@ msgstr "" #~ msgid "Categories" #~ msgstr "Categories" -#: src/pages/part/PartPricingPanel.tsx:68 +#: src/pages/part/PartPricingPanel.tsx:72 msgid "No pricing data found for this part." msgstr "" -#: src/pages/part/PartPricingPanel.tsx:82 -#: src/pages/part/pricing/PricingOverviewPanel.tsx:190 +#: src/pages/part/PartPricingPanel.tsx:87 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:293 msgid "Pricing Overview" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:88 +#: src/pages/part/PartPricingPanel.tsx:93 msgid "Purchase History" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:102 -#: src/pages/part/pricing/PricingOverviewPanel.tsx:100 +#: src/pages/part/PartPricingPanel.tsx:107 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:174 msgid "Internal Pricing" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:120 -#: src/pages/part/pricing/PricingOverviewPanel.tsx:107 +#: src/pages/part/PartPricingPanel.tsx:125 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:181 msgid "BOM Pricing" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:127 -#: src/pages/part/pricing/PricingOverviewPanel.tsx:128 +#: src/pages/part/PartPricingPanel.tsx:132 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:202 msgid "Variant Pricing" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:139 -#: src/pages/part/pricing/PricingOverviewPanel.tsx:135 +#: src/pages/part/PartPricingPanel.tsx:144 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:209 msgid "Sale Pricing" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:146 -#: src/pages/part/pricing/PricingOverviewPanel.tsx:142 +#: src/pages/part/PartPricingPanel.tsx:151 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:216 msgid "Sale History" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:58 -#: src/pages/part/pricing/BomPricingPanel.tsx:138 -#: src/tables/ColumnRenderers.tsx:262 +#: src/pages/part/PartSchedulingDetail.tsx:47 +#: src/pages/part/PartSchedulingDetail.tsx:299 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:156 +msgid "Maximum" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:50 +#: src/pages/part/PartSchedulingDetail.tsx:289 +msgid "Scheduled" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:53 +#: src/pages/part/PartSchedulingDetail.tsx:294 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:144 +msgid "Minimum" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:68 +msgid "Order" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:92 +msgid "Quantity is speculative" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:101 +msgid "No date available for provided quantity" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:105 +msgid "Date is in the past" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:112 +msgid "Scheduled Quantity" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:240 +msgid "No information available" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:241 +msgid "There is no scheduling information available for the selected part" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:276 +msgid "Expected Quantity" +msgstr "" + +#: src/pages/part/PartStocktakeDetail.tsx:63 +#: src/tables/FilterSelectDrawer.tsx:167 +#: src/tables/FilterSelectDrawer.tsx:174 +#: src/tables/build/BuildOrderTestTable.tsx:135 +#: src/tables/purchasing/ManufacturerPartParameterTable.tsx:38 +#: src/tables/stock/StockItemTestResultTable.tsx:192 +msgid "Value" +msgstr "" + +#: src/pages/part/PartStocktakeDetail.tsx:82 +msgid "Edit Stocktake Entry" +msgstr "" + +#: src/pages/part/PartStocktakeDetail.tsx:90 +msgid "Delete Stocktake Entry" +msgstr "" + +#: src/pages/part/PartStocktakeDetail.tsx:96 +#: src/tables/settings/StocktakeReportTable.tsx:69 +msgid "Generate Stocktake Report" +msgstr "" + +#: src/pages/part/PartStocktakeDetail.tsx:101 +#: src/tables/settings/StocktakeReportTable.tsx:71 +msgid "Stocktake report scheduled" +msgstr "" + +#: src/pages/part/PartStocktakeDetail.tsx:119 +#: src/pages/part/PartStocktakeDetail.tsx:235 +#: src/pages/stock/StockDetail.tsx:303 +#: src/tables/stock/StockItemTable.tsx:249 +msgid "Stock Value" +msgstr "" + +#: src/pages/part/PartStocktakeDetail.tsx:139 +#: src/tables/settings/StocktakeReportTable.tsx:77 +msgid "New Stocktake Report" +msgstr "" + +#: src/pages/part/PartStocktakeDetail.tsx:258 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:295 +msgid "Minimum Value" +msgstr "" + +#: src/pages/part/PartStocktakeDetail.tsx:264 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:296 +msgid "Maximum Value" +msgstr "" + +#: src/pages/part/pricing/BomPricingPanel.tsx:87 +#: src/pages/part/pricing/BomPricingPanel.tsx:177 +#: src/tables/ColumnRenderers.tsx:276 #: src/tables/bom/BomTable.tsx:185 #: src/tables/general/ExtraLineItemTable.tsx:64 -#: src/tables/purchasing/PurchaseOrderTable.tsx:112 -#: src/tables/sales/ReturnOrderTable.tsx:104 -#: src/tables/sales/SalesOrderLineItemTable.tsx:89 -#: src/tables/sales/SalesOrderTable.tsx:136 +#: src/tables/purchasing/PurchaseOrderTable.tsx:113 +#: src/tables/sales/ReturnOrderTable.tsx:127 +#: src/tables/sales/SalesOrderLineItemTable.tsx:97 +#: src/tables/sales/SalesOrderTable.tsx:149 msgid "Total Price" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:78 -#: src/pages/part/pricing/BomPricingPanel.tsx:102 +#: src/pages/part/pricing/BomPricingPanel.tsx:112 +#: src/pages/part/pricing/BomPricingPanel.tsx:141 #: src/tables/bom/UsedInTable.tsx:49 +#: src/tables/build/BuildLineTable.tsx:296 #: src/tables/part/PartTable.tsx:202 msgid "Component" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:81 -#: src/pages/part/pricing/VariantPricingPanel.tsx:37 -#: src/pages/part/pricing/VariantPricingPanel.tsx:97 -msgid "Minimum Price" -msgstr "" - -#: src/pages/part/pricing/BomPricingPanel.tsx:82 -#: src/pages/part/pricing/VariantPricingPanel.tsx:45 -#: src/pages/part/pricing/VariantPricingPanel.tsx:98 -msgid "Maximum Price" -msgstr "" - #: src/pages/part/pricing/BomPricingPanel.tsx:112 #~ msgid "Minimum Total Price" #~ msgstr "Minimum Total Price" +#: src/pages/part/pricing/BomPricingPanel.tsx:115 +#: src/pages/part/pricing/VariantPricingPanel.tsx:37 +#: src/pages/part/pricing/VariantPricingPanel.tsx:97 +msgid "Minimum Price" +msgstr "" + +#: src/pages/part/pricing/BomPricingPanel.tsx:116 +#: src/pages/part/pricing/VariantPricingPanel.tsx:45 +#: src/pages/part/pricing/VariantPricingPanel.tsx:98 +msgid "Maximum Price" +msgstr "" + #: src/pages/part/pricing/BomPricingPanel.tsx:117 #~ msgid "Maximum Total Price" #~ msgstr "Maximum Total Price" -#: src/pages/part/pricing/BomPricingPanel.tsx:129 -#: src/pages/part/pricing/PriceBreakPanel.tsx:172 -#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:67 -#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:128 -#: src/pages/part/pricing/SupplierPricingPanel.tsx:62 +#: src/pages/part/pricing/BomPricingPanel.tsx:168 +#: src/pages/part/pricing/PriceBreakPanel.tsx:173 +#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:70 +#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:125 +#: src/pages/part/pricing/SupplierPricingPanel.tsx:66 +#: src/pages/stock/StockDetail.tsx:291 #: src/tables/bom/BomTable.tsx:176 #: src/tables/general/ExtraLineItemTable.tsx:56 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:223 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:225 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:92 +#: src/tables/stock/StockItemTable.tsx:239 msgid "Unit Price" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:154 +#: src/pages/part/pricing/BomPricingPanel.tsx:193 #: src/pages/part/pricing/VariantPricingPanel.tsx:53 -#: src/tables/purchasing/SupplierPartTable.tsx:148 +#: src/tables/purchasing/SupplierPartTable.tsx:150 msgid "Updated" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:219 +#: src/pages/part/pricing/BomPricingPanel.tsx:258 msgid "Pie Chart" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:220 +#: src/pages/part/pricing/BomPricingPanel.tsx:259 msgid "Bar Chart" msgstr "" #: src/pages/part/pricing/PriceBreakPanel.tsx:58 -#: src/pages/part/pricing/PriceBreakPanel.tsx:110 +#: src/pages/part/pricing/PriceBreakPanel.tsx:111 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:142 -#: src/tables/purchasing/SupplierPriceBreakTable.tsx:168 +#: src/tables/purchasing/SupplierPriceBreakTable.tsx:169 msgid "Add Price Break" msgstr "" @@ -4986,46 +5846,70 @@ msgstr "" msgid "Price Break" msgstr "" -#: src/pages/part/pricing/PriceBreakPanel.tsx:170 +#: src/pages/part/pricing/PriceBreakPanel.tsx:171 msgid "Price" msgstr "" -#: src/pages/part/pricing/PricingOverviewPanel.tsx:51 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:68 +msgid "Refreshing pricing data" +msgstr "" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:88 +msgid "Pricing data updated" +msgstr "" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:95 +msgid "Failed to update pricing data" +msgstr "" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:104 +msgid "Edit Pricing" +msgstr "" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:125 msgid "Pricing Category" msgstr "" -#: src/pages/part/pricing/PricingOverviewPanel.tsx:70 -msgid "Minimum" -msgstr "" - -#: src/pages/part/pricing/PricingOverviewPanel.tsx:82 -msgid "Maximum" -msgstr "" - -#: src/pages/part/pricing/PricingOverviewPanel.tsx:114 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:188 msgid "Purchase Pricing" msgstr "" -#: src/pages/part/pricing/PricingOverviewPanel.tsx:149 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:223 msgid "Override Pricing" msgstr "" -#: src/pages/part/pricing/PricingOverviewPanel.tsx:156 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:230 msgid "Overall Pricing" msgstr "" -#: src/pages/part/pricing/PricingOverviewPanel.tsx:175 -#: src/pages/stock/StockDetail.tsx:129 -#: src/tables/stock/StockItemTable.tsx:240 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:249 +#: src/pages/stock/StockDetail.tsx:145 +#: src/tables/stock/StockItemTable.tsx:275 msgid "Last Updated" msgstr "" -#: src/pages/part/pricing/PricingOverviewPanel.tsx:192 -msgid "Minimum Value" +#: src/pages/part/pricing/PricingOverviewPanel.tsx:253 +msgid "Pricing Not Set" msgstr "" -#: src/pages/part/pricing/PricingOverviewPanel.tsx:193 -msgid "Maximum Value" +#: src/pages/part/pricing/PricingOverviewPanel.tsx:254 +msgid "Pricing data has not been calculated for this part" +msgstr "" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:258 +msgid "Pricing Actions" +msgstr "" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:261 +msgid "Refresh" +msgstr "" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:262 +msgid "Refresh pricing data" +msgstr "" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:277 +msgid "Edit pricing data" msgstr "" #: src/pages/part/pricing/PricingPanel.tsx:24 @@ -5044,28 +5928,20 @@ msgstr "" msgid "Loading pricing data" msgstr "" -#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:40 -#: src/pages/part/pricing/SaleHistoryPanel.tsx:36 -#: src/tables/ColumnRenderers.tsx:201 -#: src/tables/build/BuildOrderTestTable.tsx:150 -#: src/tables/plugin/PluginListTable.tsx:139 -msgid "Date" -msgstr "" - #: src/pages/part/pricing/PurchaseHistoryPanel.tsx:47 msgid "Purchase Price" msgstr "" -#: src/pages/part/pricing/SaleHistoryPanel.tsx:22 -msgid "Sale Order" -msgstr "" +#: src/pages/part/pricing/SaleHistoryPanel.tsx:24 +#~ msgid "Sale Order" +#~ msgstr "Sale Order" -#: src/pages/part/pricing/SaleHistoryPanel.tsx:42 -#: src/pages/part/pricing/SaleHistoryPanel.tsx:92 +#: src/pages/part/pricing/SaleHistoryPanel.tsx:44 +#: src/pages/part/pricing/SaleHistoryPanel.tsx:87 msgid "Sale Price" msgstr "" -#: src/pages/part/pricing/SupplierPricingPanel.tsx:65 +#: src/pages/part/pricing/SupplierPricingPanel.tsx:69 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:83 msgid "Supplier Price" msgstr "" @@ -5075,23 +5951,23 @@ msgstr "" msgid "Variant Part" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:93 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:87 msgid "Edit Purchase Order" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:102 -#: src/tables/purchasing/PurchaseOrderTable.tsx:128 -#: src/tables/purchasing/PurchaseOrderTable.tsx:140 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:96 +#: src/tables/purchasing/PurchaseOrderTable.tsx:129 +#: src/tables/purchasing/PurchaseOrderTable.tsx:142 msgid "Add Purchase Order" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:127 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:121 msgid "Supplier Reference" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:158 -#: src/pages/sales/ReturnOrderDetail.tsx:137 -#: src/pages/sales/SalesOrderDetail.tsx:137 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:152 +#: src/pages/sales/ReturnOrderDetail.tsx:129 +#: src/pages/sales/SalesOrderDetail.tsx:132 msgid "Completed Line Items" msgstr "" @@ -5101,91 +5977,112 @@ msgstr "" #~ msgid "Order Currency," #~ msgstr "Order Currency," -#: src/pages/purchasing/PurchaseOrderDetail.tsx:165 -#: src/pages/sales/ReturnOrderDetail.tsx:144 -#: src/pages/sales/SalesOrderDetail.tsx:153 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:161 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:231 +msgid "Destination" +msgstr "" + +#: src/pages/purchasing/PurchaseOrderDetail.tsx:167 +#: src/pages/sales/ReturnOrderDetail.tsx:136 +#: src/pages/sales/SalesOrderDetail.tsx:148 msgid "Order Currency" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:172 -#: src/pages/sales/ReturnOrderDetail.tsx:151 -#: src/pages/sales/SalesOrderDetail.tsx:160 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:173 +#: src/pages/sales/ReturnOrderDetail.tsx:143 +#: src/pages/sales/SalesOrderDetail.tsx:155 msgid "Total Cost" msgstr "" #: src/pages/purchasing/PurchaseOrderDetail.tsx:207 -#: src/pages/sales/ReturnOrderDetail.tsx:186 -#: src/pages/sales/SalesOrderDetail.tsx:195 -msgid "Created On" +#: src/pages/sales/ReturnOrderDetail.tsx:183 +#: src/pages/sales/SalesOrderDetail.tsx:191 +#~ msgid "Created On" +#~ msgstr "Created On" + +#: src/pages/purchasing/PurchaseOrderDetail.tsx:221 +#: src/pages/sales/ReturnOrderDetail.tsx:193 +#: src/pages/sales/SalesOrderDetail.tsx:204 +msgid "Issue Date" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:252 -#: src/pages/sales/ReturnOrderDetail.tsx:231 -#: src/pages/sales/SalesOrderDetail.tsx:266 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:237 +#: src/pages/sales/ReturnOrderDetail.tsx:209 +#: src/pages/sales/SalesOrderDetail.tsx:219 +#: src/tables/build/BuildOrderTable.tsx:98 +#: src/tables/part/PartPurchaseOrdersTable.tsx:105 +#: src/tables/sales/ReturnOrderTable.tsx:122 +msgid "Completion Date" +msgstr "" + +#: src/pages/purchasing/PurchaseOrderDetail.tsx:276 +#: src/pages/sales/ReturnOrderDetail.tsx:248 +#: src/pages/sales/SalesOrderDetail.tsx:288 msgid "Order Details" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:280 -#: src/pages/sales/ReturnOrderDetail.tsx:258 -#: src/pages/sales/SalesOrderDetail.tsx:297 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:304 +#: src/pages/sales/ReturnOrderDetail.tsx:276 +#: src/pages/sales/SalesOrderDetail.tsx:319 msgid "Extra Line Items" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:337 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:346 msgid "Issue Purchase Order" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:345 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:354 msgid "Cancel Purchase Order" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:353 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:362 msgid "Hold Purchase Order" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:361 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:370 msgid "Complete Purchase Order" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:427 -#: src/pages/sales/ReturnOrderDetail.tsx:428 -#: src/pages/sales/SalesOrderDetail.tsx:468 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:425 +#: src/pages/sales/ReturnOrderDetail.tsx:424 +#: src/pages/sales/SalesOrderDetail.tsx:464 msgid "Order Actions" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:101 -#: src/pages/sales/SalesOrderDetail.tsx:107 -#: src/tables/sales/SalesOrderTable.tsx:124 +#: src/pages/sales/ReturnOrderDetail.tsx:92 +#: src/pages/sales/SalesOrderDetail.tsx:101 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:109 +#: src/tables/sales/SalesOrderTable.tsx:137 msgid "Customer Reference" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:315 +#: src/pages/sales/ReturnOrderDetail.tsx:322 msgid "Edit Return Order" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:324 -#: src/tables/sales/ReturnOrderTable.tsx:119 -#: src/tables/sales/ReturnOrderTable.tsx:128 +#: src/pages/sales/ReturnOrderDetail.tsx:331 +#: src/tables/sales/ReturnOrderTable.tsx:142 +#: src/tables/sales/ReturnOrderTable.tsx:152 msgid "Add Return Order" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:336 +#: src/pages/sales/ReturnOrderDetail.tsx:343 msgid "Issue Return Order" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:344 +#: src/pages/sales/ReturnOrderDetail.tsx:349 +#~ msgid "Order canceled" +#~ msgstr "Order canceled" + +#: src/pages/sales/ReturnOrderDetail.tsx:351 msgid "Cancel Return Order" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:347 -msgid "Order canceled" -msgstr "" - -#: src/pages/sales/ReturnOrderDetail.tsx:352 +#: src/pages/sales/ReturnOrderDetail.tsx:359 msgid "Hold Return Order" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:360 +#: src/pages/sales/ReturnOrderDetail.tsx:367 msgid "Complete Return Order" msgstr "" @@ -5193,117 +6090,193 @@ msgstr "" msgid "Customers" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:145 +#: src/pages/sales/SalesOrderDetail.tsx:140 msgid "Completed Shipments" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:243 -msgid "Edit Sales Order" -msgstr "" - -#: src/pages/sales/SalesOrderDetail.tsx:252 -#: src/tables/sales/SalesOrderTable.tsx:84 -#: src/tables/sales/SalesOrderTable.tsx:96 -msgid "Add Sales Order" -msgstr "" - #: src/pages/sales/SalesOrderDetail.tsx:256 #~ msgid "Pending Shipments" #~ msgstr "Pending Shipments" -#: src/pages/sales/SalesOrderDetail.tsx:313 +#: src/pages/sales/SalesOrderDetail.tsx:261 +msgid "Edit Sales Order" +msgstr "" + +#: src/pages/sales/SalesOrderDetail.tsx:274 +#: src/tables/sales/SalesOrderTable.tsx:96 +#: src/tables/sales/SalesOrderTable.tsx:109 +msgid "Add Sales Order" +msgstr "" + +#: src/pages/sales/SalesOrderDetail.tsx:335 msgid "Shipments" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:369 +#: src/pages/sales/SalesOrderDetail.tsx:376 msgid "Issue Sales Order" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:377 +#: src/pages/sales/SalesOrderDetail.tsx:384 msgid "Cancel Sales Order" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:385 +#: src/pages/sales/SalesOrderDetail.tsx:392 msgid "Hold Sales Order" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:393 +#: src/pages/sales/SalesOrderDetail.tsx:400 msgid "Complete Sales Order" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:432 +#: src/pages/sales/SalesOrderDetail.tsx:439 msgid "Ship Order" msgstr "" -#: src/pages/stock/LocationDetail.tsx:117 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:117 +#: src/tables/sales/SalesOrderShipmentTable.tsx:96 +msgid "Shipment Reference" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:124 +msgid "Allocated Items" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:133 +msgid "Tracking Number" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:141 +msgid "Invoice Number" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:149 +#: src/tables/ColumnRenderers.tsx:242 +#: src/tables/sales/SalesOrderAllocationTable.tsx:142 +#: src/tables/sales/SalesOrderShipmentTable.tsx:115 +msgid "Shipment Date" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:157 +#: src/tables/sales/SalesOrderShipmentTable.tsx:119 +msgid "Delivery Date" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:204 +msgid "Shipment Details" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:210 +msgid "Assigned Items" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:241 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:317 +#: src/tables/sales/SalesOrderShipmentTable.tsx:75 +msgid "Edit Shipment" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:248 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:322 +#: src/tables/sales/SalesOrderShipmentTable.tsx:67 +msgid "Cancel Shipment" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:261 +#: src/tables/sales/SalesOrderShipmentTable.tsx:83 +#: src/tables/sales/SalesOrderShipmentTable.tsx:151 +msgid "Complete Shipment" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:276 +#: src/tables/part/PartPurchaseOrdersTable.tsx:121 +msgid "Pending" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:277 +#: src/tables/sales/SalesOrderAllocationTable.tsx:148 +#: src/tables/sales/SalesOrderShipmentTable.tsx:108 +#: src/tables/sales/SalesOrderShipmentTable.tsx:197 +msgid "Shipped" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:279 +#: src/tables/sales/SalesOrderShipmentTable.tsx:202 +msgid "Delivered" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:293 +msgid "Send Shipment" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:312 +msgid "Shipment Actions" +msgstr "" + +#: src/pages/stock/LocationDetail.tsx:111 msgid "Parent Location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:135 +#: src/pages/stock/LocationDetail.tsx:129 msgid "Sublocations" msgstr "" -#: src/pages/stock/LocationDetail.tsx:147 +#: src/pages/stock/LocationDetail.tsx:141 #: src/tables/stock/StockLocationTable.tsx:54 msgid "External" msgstr "" -#: src/pages/stock/LocationDetail.tsx:153 +#: src/pages/stock/LocationDetail.tsx:147 #: src/tables/stock/StockLocationTable.tsx:63 msgid "Location Type" msgstr "" -#: src/pages/stock/LocationDetail.tsx:164 +#: src/pages/stock/LocationDetail.tsx:158 msgid "Top level stock location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:175 +#: src/pages/stock/LocationDetail.tsx:169 msgid "Location Details" msgstr "" -#: src/pages/stock/LocationDetail.tsx:201 +#: src/pages/stock/LocationDetail.tsx:195 msgid "Default Parts" msgstr "" -#: src/pages/stock/LocationDetail.tsx:220 -#: src/pages/stock/LocationDetail.tsx:351 +#: src/pages/stock/LocationDetail.tsx:214 +#: src/pages/stock/LocationDetail.tsx:336 #: src/tables/stock/StockLocationTable.tsx:123 msgid "Edit Stock Location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:241 -#: src/pages/stock/LocationDetail.tsx:356 +#: src/pages/stock/LocationDetail.tsx:235 +#: src/pages/stock/LocationDetail.tsx:341 msgid "Delete Stock Location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:244 +#: src/pages/stock/LocationDetail.tsx:238 msgid "Items Action" msgstr "" -#: src/pages/stock/LocationDetail.tsx:245 +#: src/pages/stock/LocationDetail.tsx:239 msgid "Action for stock items in this location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:250 +#: src/pages/stock/LocationDetail.tsx:244 msgid "Child Locations Action" msgstr "" -#: src/pages/stock/LocationDetail.tsx:251 +#: src/pages/stock/LocationDetail.tsx:245 msgid "Action for child locations in this location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:346 +#: src/pages/stock/LocationDetail.tsx:332 msgid "Location Actions" msgstr "" -#: src/pages/stock/StockDetail.tsx:108 +#: src/pages/stock/StockDetail.tsx:116 msgid "Base Part" msgstr "" -#: src/pages/stock/StockDetail.tsx:115 -msgid "Stock Status" -msgstr "" - #: src/pages/stock/StockDetail.tsx:155 #~ msgid "Link custom barcode to stock item" #~ msgstr "Link custom barcode to stock item" @@ -5312,113 +6285,179 @@ msgstr "" #~ msgid "Unlink custom barcode from stock item" #~ msgstr "Unlink custom barcode from stock item" -#: src/pages/stock/StockDetail.tsx:188 -msgid "Installed In" -msgstr "" - -#: src/pages/stock/StockDetail.tsx:204 -msgid "Consumed By" +#: src/pages/stock/StockDetail.tsx:178 +msgid "Allocated to Orders" msgstr "" #: src/pages/stock/StockDetail.tsx:205 #~ msgid "Edit stock item" #~ msgstr "Edit stock item" -#: src/pages/stock/StockDetail.tsx:213 -#: src/tables/build/BuildAllocatedStockTable.tsx:64 -#: src/tables/stock/StockTrackingTable.tsx:96 -msgid "Build Order" +#: src/pages/stock/StockDetail.tsx:209 +msgid "Installed In" msgstr "" #: src/pages/stock/StockDetail.tsx:217 #~ msgid "Delete stock item" #~ msgstr "Delete stock item" -#: src/pages/stock/StockDetail.tsx:291 +#: src/pages/stock/StockDetail.tsx:226 +msgid "Parent Item" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:230 +msgid "Parent stock item" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:236 +msgid "Consumed By" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:245 +#: src/tables/build/BuildAllocatedStockTable.tsx:77 +#: src/tables/stock/StockTrackingTable.tsx:100 +msgid "Build Order" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:283 +#: src/tables/stock/StockItemTable.tsx:270 +msgid "Expiry Date" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:414 msgid "Stock Details" msgstr "" -#: src/pages/stock/StockDetail.tsx:297 +#: src/pages/stock/StockDetail.tsx:420 msgid "Stock Tracking" msgstr "" -#: src/pages/stock/StockDetail.tsx:350 -msgid "Test Data" -msgstr "" - -#: src/pages/stock/StockDetail.tsx:364 -msgid "Installed Items" -msgstr "" - -#: src/pages/stock/StockDetail.tsx:371 -msgid "Child Items" -msgstr "" - -#: src/pages/stock/StockDetail.tsx:425 -msgid "Edit Stock Item" -msgstr "" - #: src/pages/stock/StockDetail.tsx:433 #~ msgid "Duplicate stock item" #~ msgstr "Duplicate stock item" -#: src/pages/stock/StockDetail.tsx:452 +#: src/pages/stock/StockDetail.tsx:475 +msgid "Test Data" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:489 +msgid "Installed Items" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:496 +msgid "Child Items" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:545 +msgid "Edit Stock Item" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:572 msgid "Delete Stock Item" msgstr "" -#: src/pages/stock/StockDetail.tsx:504 +#: src/pages/stock/StockDetail.tsx:604 +msgid "Serialize Stock Item" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:617 +msgid "Stock item serialized" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:623 +msgid "Return Stock Item" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:626 +msgid "Return this item into stock. This will remove the customer assignment." +msgstr "" + +#: src/pages/stock/StockDetail.tsx:636 +msgid "Item returned to stock" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:666 msgid "Stock Operations" msgstr "" -#: src/pages/stock/StockDetail.tsx:509 +#: src/pages/stock/StockDetail.tsx:671 msgid "Count stock" msgstr "" -#: src/pages/stock/StockDetail.tsx:519 -#: src/tables/stock/StockItemTable.tsx:449 -msgid "Add stock" +#: src/pages/stock/StockDetail.tsx:671 +#: src/tables/stock/StockItemTable.tsx:452 +#~ msgid "Add stock" +#~ msgstr "Add stock" + +#: src/pages/stock/StockDetail.tsx:680 +#: src/tables/stock/StockItemTable.tsx:461 +#~ msgid "Remove stock" +#~ msgstr "Remove stock" + +#: src/pages/stock/StockDetail.tsx:698 +#: src/tables/stock/StockItemTable.tsx:481 +#~ msgid "Transfer stock" +#~ msgstr "Transfer stock" + +#: src/pages/stock/StockDetail.tsx:699 +msgid "Serialize" msgstr "" -#: src/pages/stock/StockDetail.tsx:527 -#: src/tables/stock/StockItemTable.tsx:458 -msgid "Remove stock" +#: src/pages/stock/StockDetail.tsx:700 +msgid "Serialize stock" msgstr "" -#: src/pages/stock/StockDetail.tsx:534 +#: src/pages/stock/StockDetail.tsx:711 msgid "Transfer" msgstr "" -#: src/pages/stock/StockDetail.tsx:535 -#: src/tables/stock/StockItemTable.tsx:478 -msgid "Transfer stock" +#: src/pages/stock/StockDetail.tsx:722 +msgid "Return" msgstr "" -#: src/pages/stock/StockDetail.tsx:546 +#: src/pages/stock/StockDetail.tsx:723 +msgid "Return from customer" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:738 msgid "Stock Item Actions" msgstr "" -#: src/tables/ColumnRenderers.tsx:30 +#: src/pages/stock/StockDetail.tsx:808 +msgid "Stale" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:814 +msgid "Expired" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:820 +msgid "Unavailable" +msgstr "" + +#: src/tables/ColumnRenderers.tsx:36 msgid "Part is not active" msgstr "" -#: src/tables/ColumnRenderers.tsx:35 -msgid "Part is locked" +#: src/tables/ColumnRenderers.tsx:41 +#: src/tables/bom/BomTable.tsx:542 +#: src/tables/part/PartParameterTable.tsx:193 +#: src/tables/part/PartTestTemplateTable.tsx:253 +msgid "Part is Locked" msgstr "" -#: src/tables/ColumnRenderers.tsx:57 +#: src/tables/ColumnRenderers.tsx:41 +#~ msgid "Part is locked" +#~ msgstr "Part is locked" + +#: src/tables/ColumnRenderers.tsx:46 +msgid "You are subscribed to notifications for this part" +msgstr "" + +#: src/tables/ColumnRenderers.tsx:68 msgid "No location set" msgstr "" -#: src/tables/ColumnRenderers.tsx:228 -#: src/tables/sales/SalesOrderShipmentTable.tsx:79 -msgid "Shipment Date" -msgstr "" - -#: src/tables/ColumnRenderers.tsx:248 -#: src/tables/settings/CurrencyTable.tsx:23 -msgid "Currency" -msgstr "" - #: src/tables/ColumnSelect.tsx:16 #: src/tables/ColumnSelect.tsx:23 msgid "Select Columns" @@ -5452,91 +6491,116 @@ msgstr "" msgid "Download Data" msgstr "" -#: src/tables/Filter.tsx:89 -#: src/tables/build/BuildOrderTable.tsx:135 +#: src/tables/Filter.tsx:101 msgid "Assigned to me" msgstr "" -#: src/tables/Filter.tsx:90 -#: src/tables/build/BuildOrderTable.tsx:136 +#: src/tables/Filter.tsx:102 msgid "Show orders assigned to me" msgstr "" -#: src/tables/Filter.tsx:97 +#: src/tables/Filter.tsx:106 +#~ msgid "Show overdue orders" +#~ msgstr "Show overdue orders" + +#: src/tables/Filter.tsx:109 +#: src/tables/build/BuildOrderTable.tsx:120 +#: src/tables/sales/SalesOrderAllocationTable.tsx:59 msgid "Outstanding" msgstr "" -#: src/tables/Filter.tsx:98 -msgid "Show outstanding orders" +#: src/tables/Filter.tsx:110 +msgid "Show outstanding items" msgstr "" -#: src/tables/Filter.tsx:105 -#: src/tables/build/BuildOrderTable.tsx:128 +#: src/tables/Filter.tsx:117 msgid "Overdue" msgstr "" -#: src/tables/Filter.tsx:106 -msgid "Show overdue orders" +#: src/tables/Filter.tsx:118 +msgid "Show overdue items" msgstr "" -#: src/tables/FilterSelectDrawer.tsx:51 +#: src/tables/Filter.tsx:125 +msgid "Minimum Date" +msgstr "" + +#: src/tables/Filter.tsx:126 +msgid "Show items after this date" +msgstr "" + +#: src/tables/Filter.tsx:134 +msgid "Maximum Date" +msgstr "" + +#: src/tables/Filter.tsx:135 +msgid "Show items before this date" +msgstr "" + +#: src/tables/Filter.tsx:144 +msgid "Has Project Code" +msgstr "" + +#: src/tables/Filter.tsx:145 +msgid "Show orders with an assigned project code" +msgstr "" + +#: src/tables/FilterSelectDrawer.tsx:55 msgid "Remove filter" msgstr "" -#: src/tables/FilterSelectDrawer.tsx:130 +#: src/tables/FilterSelectDrawer.tsx:159 msgid "Select filter" msgstr "" -#: src/tables/FilterSelectDrawer.tsx:131 +#: src/tables/FilterSelectDrawer.tsx:160 msgid "Filter" msgstr "" -#: src/tables/FilterSelectDrawer.tsx:138 -#: src/tables/build/BuildOrderTestTable.tsx:134 -#: src/tables/purchasing/ManufacturerPartParameterTable.tsx:38 -#: src/tables/stock/StockItemTestResultTable.tsx:186 -msgid "Value" +#: src/tables/FilterSelectDrawer.tsx:168 +msgid "Select date value" msgstr "" -#: src/tables/FilterSelectDrawer.tsx:140 +#: src/tables/FilterSelectDrawer.tsx:176 msgid "Select filter value" msgstr "" -#: src/tables/FilterSelectDrawer.tsx:183 +#: src/tables/FilterSelectDrawer.tsx:219 +#: src/tables/InvenTreeTableHeader.tsx:214 msgid "Table Filters" msgstr "" -#: src/tables/FilterSelectDrawer.tsx:215 +#: src/tables/FilterSelectDrawer.tsx:251 msgid "Add Filter" msgstr "" -#: src/tables/FilterSelectDrawer.tsx:224 +#: src/tables/FilterSelectDrawer.tsx:260 msgid "Clear Filters" msgstr "" -#: src/tables/InvenTreeTable.tsx:123 -#: src/tables/InvenTreeTable.tsx:431 -#: src/tables/InvenTreeTable.tsx:455 +#: src/tables/InvenTreeTable.tsx:96 +#: src/tables/InvenTreeTable.tsx:417 +#: src/tables/InvenTreeTable.tsx:441 msgid "No records found" msgstr "" -#: src/tables/InvenTreeTable.tsx:466 +#: src/tables/InvenTreeTable.tsx:452 msgid "Server returned incorrect data type" msgstr "" -#: src/tables/InvenTreeTable.tsx:474 +#: src/tables/InvenTreeTable.tsx:460 msgid "Bad request" msgstr "" -#: src/tables/InvenTreeTable.tsx:477 +#: src/tables/InvenTreeTable.tsx:463 msgid "Unauthorized" msgstr "" -#: src/tables/InvenTreeTable.tsx:480 +#: src/tables/InvenTreeTable.tsx:466 msgid "Forbidden" msgstr "" -#: src/tables/InvenTreeTable.tsx:483 +#: src/tables/InvenTreeTable.tsx:469 msgid "Not found" msgstr "" @@ -5544,18 +6608,6 @@ msgstr "" #~ msgid "Are you sure you want to delete the selected records?" #~ msgstr "Are you sure you want to delete the selected records?" -#: src/tables/InvenTreeTable.tsx:525 -msgid "Delete Selected Items" -msgstr "" - -#: src/tables/InvenTreeTable.tsx:529 -msgid "Are you sure you want to delete the selected items?" -msgstr "" - -#: src/tables/InvenTreeTable.tsx:531 -msgid "This action cannot be undone!" -msgstr "" - #: src/tables/InvenTreeTable.tsx:535 #~ msgid "Deleted records" #~ msgstr "Deleted records" @@ -5568,31 +6620,56 @@ msgstr "" #~ msgid "Failed to delete records" #~ msgstr "Failed to delete records" +#: src/tables/InvenTreeTable.tsx:552 +#~ msgid "This action cannot be undone!" +#~ msgstr "This action cannot be undone!" + #: src/tables/InvenTreeTable.tsx:594 #: src/tables/InvenTreeTable.tsx:595 #~ msgid "Print actions" #~ msgstr "Print actions" -#: src/tables/InvenTreeTable.tsx:618 -#: src/tables/InvenTreeTable.tsx:619 -msgid "Barcode actions" +#: src/tables/InvenTreeTable.tsx:655 +#: src/tables/InvenTreeTable.tsx:656 +#~ msgid "Barcode actions" +#~ msgstr "Barcode actions" + +#: src/tables/InvenTreeTable.tsx:712 +#~ msgid "Table filters" +#~ msgstr "Table filters" + +#: src/tables/InvenTreeTable.tsx:725 +#~ msgid "Clear custom query filters" +#~ msgstr "Clear custom query filters" + +#: src/tables/InvenTreeTableHeader.tsx:98 +msgid "Delete Selected Items" msgstr "" -#: src/tables/InvenTreeTable.tsx:628 +#: src/tables/InvenTreeTableHeader.tsx:102 +msgid "Are you sure you want to delete the selected items?" +msgstr "" + +#: src/tables/InvenTreeTableHeader.tsx:104 +#: src/tables/plugin/PluginListTable.tsx:305 +msgid "This action cannot be undone" +msgstr "" + +#: src/tables/InvenTreeTableHeader.tsx:142 +msgid "Custom table filters are active" +msgstr "" + +#: src/tables/InvenTreeTableHeader.tsx:169 msgid "Delete selected records" msgstr "" -#: src/tables/InvenTreeTable.tsx:649 +#: src/tables/InvenTreeTableHeader.tsx:188 msgid "Refresh data" msgstr "" -#: src/tables/InvenTreeTable.tsx:675 -msgid "Table filters" -msgstr "" - #: src/tables/TableHoverCard.tsx:35 -msgid "item-{idx}" -msgstr "" +#~ msgid "item-{idx}" +#~ msgstr "item-{idx}" #: src/tables/UploadAction.tsx:7 #~ msgid "Upload Data" @@ -5607,31 +6684,36 @@ msgid "Part Information" msgstr "" #: src/tables/bom/BomTable.tsx:212 -#: src/tables/build/BuildLineTable.tsx:126 +#: src/tables/build/BuildLineTable.tsx:257 #: src/tables/part/PartTable.tsx:125 msgid "External stock" msgstr "" #: src/tables/bom/BomTable.tsx:220 -#: src/tables/build/BuildLineTable.tsx:89 +#: src/tables/build/BuildLineTable.tsx:220 msgid "Includes substitute stock" msgstr "" #: src/tables/bom/BomTable.tsx:229 -#: src/tables/build/BuildLineTable.tsx:99 -#: src/tables/sales/SalesOrderLineItemTable.tsx:127 +#: src/tables/build/BuildLineTable.tsx:230 +#: src/tables/sales/SalesOrderLineItemTable.tsx:135 msgid "Includes variant stock" msgstr "" +#: src/tables/bom/BomTable.tsx:245 +#: src/tables/part/PartTable.tsx:92 +msgid "Building" +msgstr "" + #: src/tables/bom/BomTable.tsx:254 #: src/tables/part/PartTable.tsx:153 -#: src/tables/sales/SalesOrderLineItemTable.tsx:150 -#: src/tables/stock/StockItemTable.tsx:216 +#: src/tables/sales/SalesOrderLineItemTable.tsx:158 +#: src/tables/stock/StockItemTable.tsx:206 msgid "Stock Information" msgstr "" #: src/tables/bom/BomTable.tsx:285 -#: src/tables/build/BuildLineTable.tsx:248 +#: src/tables/build/BuildLineTable.tsx:409 msgid "Consumable item" msgstr "" @@ -5644,7 +6726,7 @@ msgstr "" #~ msgstr "Create BOM Item" #: src/tables/bom/BomTable.tsx:306 -#: src/tables/build/BuildLineTable.tsx:69 +#: src/tables/build/BuildLineTable.tsx:200 msgid "Show testable items" msgstr "" @@ -5657,11 +6739,12 @@ msgid "Show trackable items" msgstr "" #: src/tables/bom/BomTable.tsx:316 -#: src/tables/build/BuildLineTable.tsx:64 +#: src/tables/build/BuildLineTable.tsx:195 msgid "Show assembled items" msgstr "" #: src/tables/bom/BomTable.tsx:321 +#: src/tables/build/BuildLineTable.tsx:180 msgid "Show items with available stock" msgstr "" @@ -5705,7 +6788,7 @@ msgstr "" #: src/tables/bom/BomTable.tsx:345 #: src/tables/bom/UsedInTable.tsx:79 -#: src/tables/build/BuildLineTable.tsx:58 +#: src/tables/build/BuildLineTable.tsx:189 msgid "Optional" msgstr "" @@ -5723,7 +6806,7 @@ msgstr "" #~ msgstr "Bom item deleted" #: src/tables/bom/BomTable.tsx:350 -#: src/tables/build/BuildLineTable.tsx:53 +#: src/tables/build/BuildLineTable.tsx:184 msgid "Consumable" msgstr "" @@ -5749,12 +6832,12 @@ msgid "Show items with pricing" msgstr "" #: src/tables/bom/BomTable.tsx:378 -#: src/tables/bom/BomTable.tsx:511 +#: src/tables/bom/BomTable.tsx:512 msgid "Import BOM Data" msgstr "" #: src/tables/bom/BomTable.tsx:388 -#: src/tables/bom/BomTable.tsx:523 +#: src/tables/bom/BomTable.tsx:526 msgid "Add BOM Item" msgstr "" @@ -5780,7 +6863,7 @@ msgstr "" #: src/tables/bom/BomTable.tsx:423 #: src/tables/bom/BomTable.tsx:426 -#: src/tables/bom/BomTable.tsx:517 +#: src/tables/bom/BomTable.tsx:519 msgid "Validate BOM" msgstr "" @@ -5812,21 +6895,15 @@ msgstr "" msgid "Edit Substitutes" msgstr "" -#: src/tables/bom/BomTable.tsx:539 -#: src/tables/part/PartParameterTable.tsx:193 -#: src/tables/part/PartTestTemplateTable.tsx:252 -msgid "Part is Locked" -msgstr "" - -#: src/tables/bom/BomTable.tsx:544 +#: src/tables/bom/BomTable.tsx:547 msgid "Bill of materials cannot be edited, as the part is locked" msgstr "" #: src/tables/bom/UsedInTable.tsx:33 -#: src/tables/build/BuildLineTable.tsx:63 +#: src/tables/build/BuildLineTable.tsx:194 #: src/tables/part/ParametricPartTable.tsx:233 #: src/tables/part/PartTable.tsx:190 -#: src/tables/stock/StockItemTable.tsx:300 +#: src/tables/stock/StockItemTable.tsx:304 msgid "Assembly" msgstr "" @@ -5844,285 +6921,347 @@ msgstr "" msgid "Show trackable assemblies" msgstr "" -#: src/tables/build/BuildAllocatedStockTable.tsx:54 +#: src/tables/build/BuildAllocatedStockTable.tsx:56 msgid "Allocated to Output" msgstr "" -#: src/tables/build/BuildAllocatedStockTable.tsx:55 +#: src/tables/build/BuildAllocatedStockTable.tsx:57 msgid "Show items allocated to a build output" msgstr "" -#: src/tables/build/BuildAllocatedStockTable.tsx:76 -#: src/tables/part/PartPurchaseOrdersTable.tsx:125 -#: src/tables/sales/SalesOrderAllocationTable.tsx:62 +#: src/tables/build/BuildAllocatedStockTable.tsx:65 +#: src/tables/build/BuildOrderTable.tsx:159 +#: src/tables/part/PartParameterTable.tsx:212 +#: src/tables/part/PartPurchaseOrdersTable.tsx:138 +#: src/tables/sales/ReturnOrderTable.tsx:84 +#: src/tables/sales/SalesOrderAllocationTable.tsx:68 +#: src/tables/sales/SalesOrderTable.tsx:84 +#: src/tables/stock/StockItemTable.tsx:339 +msgid "Include Variants" +msgstr "" + +#: src/tables/build/BuildAllocatedStockTable.tsx:66 +#: src/tables/build/BuildOrderTable.tsx:160 +#: src/tables/part/PartPurchaseOrdersTable.tsx:139 +#: src/tables/sales/ReturnOrderTable.tsx:85 +#: src/tables/sales/SalesOrderAllocationTable.tsx:69 +#: src/tables/sales/SalesOrderTable.tsx:85 +msgid "Include orders for part variants" +msgstr "" + +#: src/tables/build/BuildAllocatedStockTable.tsx:89 +#: src/tables/part/PartPurchaseOrdersTable.tsx:131 +#: src/tables/sales/SalesOrderAllocationTable.tsx:93 msgid "Order Status" msgstr "" -#: src/tables/build/BuildAllocatedStockTable.tsx:96 -#: src/tables/sales/SalesOrderAllocationTable.tsx:75 +#: src/tables/build/BuildAllocatedStockTable.tsx:117 +#: src/tables/sales/SalesOrderAllocationTable.tsx:126 msgid "Allocated Quantity" msgstr "" -#: src/tables/build/BuildAllocatedStockTable.tsx:116 -#: src/tables/sales/SalesOrderAllocationTable.tsx:94 +#: src/tables/build/BuildAllocatedStockTable.tsx:137 +#: src/tables/sales/SalesOrderAllocationTable.tsx:120 msgid "Available Quantity" msgstr "" -#: src/tables/build/BuildAllocatedStockTable.tsx:126 -#: src/tables/build/BuildOrderTestTable.tsx:176 -#: src/tables/build/BuildOrderTestTable.tsx:200 -#: src/tables/build/BuildOutputTable.tsx:312 -msgid "Build Output" +#: src/tables/build/BuildAllocatedStockTable.tsx:164 +#: src/tables/build/BuildLineTable.tsx:513 +msgid "Edit Stock Allocation" msgstr "" -#: src/tables/build/BuildAllocatedStockTable.tsx:143 -msgid "Edit Build Item" -msgstr "" +#: src/tables/build/BuildAllocatedStockTable.tsx:164 +#~ msgid "Edit Build Item" +#~ msgstr "Edit Build Item" -#: src/tables/build/BuildAllocatedStockTable.tsx:153 -msgid "Delete Build Item" -msgstr "" +#: src/tables/build/BuildAllocatedStockTable.tsx:174 +#~ msgid "Delete Build Item" +#~ msgstr "Delete Build Item" -#: src/tables/build/BuildLineTable.tsx:43 -#: src/tables/stock/StockItemTable.tsx:305 -msgid "Allocated" -msgstr "" - -#: src/tables/build/BuildLineTable.tsx:44 -msgid "Show allocated lines" -msgstr "" - -#: src/tables/build/BuildLineTable.tsx:49 -msgid "Show lines with available stock" -msgstr "" - -#: src/tables/build/BuildLineTable.tsx:54 -msgid "Show consumable lines" +#: src/tables/build/BuildAllocatedStockTable.tsx:177 +#: src/tables/build/BuildLineTable.tsx:526 +msgid "Delete Stock Allocation" msgstr "" #: src/tables/build/BuildLineTable.tsx:59 +#~ msgid "Show lines with available stock" +#~ msgstr "Show lines with available stock" + +#: src/tables/build/BuildLineTable.tsx:175 +msgid "Show allocated lines" +msgstr "" + +#: src/tables/build/BuildLineTable.tsx:185 +msgid "Show consumable lines" +msgstr "" + +#: src/tables/build/BuildLineTable.tsx:190 msgid "Show optional lines" msgstr "" -#: src/tables/build/BuildLineTable.tsx:68 +#: src/tables/build/BuildLineTable.tsx:199 #: src/tables/part/PartTable.tsx:208 msgid "Testable" msgstr "" -#: src/tables/build/BuildLineTable.tsx:73 -#: src/tables/stock/StockItemTable.tsx:364 +#: src/tables/build/BuildLineTable.tsx:204 +#: src/tables/stock/StockItemTable.tsx:368 msgid "Tracked" msgstr "" -#: src/tables/build/BuildLineTable.tsx:74 +#: src/tables/build/BuildLineTable.tsx:205 msgid "Show tracked lines" msgstr "" -#: src/tables/build/BuildLineTable.tsx:108 -#: src/tables/sales/SalesOrderLineItemTable.tsx:133 +#: src/tables/build/BuildLineTable.tsx:239 +#: src/tables/sales/SalesOrderLineItemTable.tsx:141 msgid "In production" msgstr "" -#: src/tables/build/BuildLineTable.tsx:136 +#: src/tables/build/BuildLineTable.tsx:267 msgid "Insufficient stock" msgstr "" -#: src/tables/build/BuildLineTable.tsx:152 -#: src/tables/sales/SalesOrderLineItemTable.tsx:121 -#: src/tables/stock/StockItemTable.tsx:186 +#: src/tables/build/BuildLineTable.tsx:283 +#: src/tables/sales/SalesOrderLineItemTable.tsx:129 +#: src/tables/stock/StockItemTable.tsx:175 msgid "No stock available" msgstr "" -#: src/tables/build/BuildLineTable.tsx:201 +#: src/tables/build/BuildLineTable.tsx:355 msgid "Gets Inherited" msgstr "" -#: src/tables/build/BuildLineTable.tsx:210 +#: src/tables/build/BuildLineTable.tsx:366 msgid "Unit Quantity" msgstr "" -#: src/tables/build/BuildLineTable.tsx:267 -#: src/tables/sales/SalesOrderLineItemTable.tsx:230 +#: src/tables/build/BuildLineTable.tsx:381 +msgid "Required Quantity" +msgstr "" + +#: src/tables/build/BuildLineTable.tsx:432 +#: src/tables/sales/SalesOrderLineItemTable.tsx:254 msgid "Create Build Order" msgstr "" -#: src/tables/build/BuildLineTable.tsx:298 -msgid "Allocate Stock" +#: src/tables/build/BuildLineTable.tsx:460 +msgid "Auto allocation in progress" msgstr "" -#: src/tables/build/BuildLineTable.tsx:305 +#: src/tables/build/BuildLineTable.tsx:463 +#: src/tables/build/BuildLineTable.tsx:632 +msgid "Auto Allocate Stock" +msgstr "" + +#: src/tables/build/BuildLineTable.tsx:464 +msgid "Automatically allocate stock to this build according to the selected options" +msgstr "" + +#: src/tables/build/BuildLineTable.tsx:482 +#: src/tables/build/BuildLineTable.tsx:496 +#: src/tables/build/BuildLineTable.tsx:579 +#: src/tables/build/BuildLineTable.tsx:664 +#: src/tables/build/BuildOutputTable.tsx:314 +#: src/tables/build/BuildOutputTable.tsx:319 +msgid "Deallocate Stock" +msgstr "" + +#: src/tables/build/BuildLineTable.tsx:498 +msgid "Deallocate all untracked stock for this build order" +msgstr "" + +#: src/tables/build/BuildLineTable.tsx:500 +msgid "Deallocate stock from the selected line item" +msgstr "" + +#: src/tables/build/BuildLineTable.tsx:504 +msgid "Stock has been deallocated" +msgstr "" + +#: src/tables/build/BuildLineTable.tsx:589 msgid "Order Stock" msgstr "" -#: src/tables/build/BuildLineTable.tsx:312 +#: src/tables/build/BuildLineTable.tsx:596 msgid "Build Stock" msgstr "" -#: src/tables/build/BuildOrderTable.tsx:111 -msgid "Show active orders" +#: src/tables/build/BuildLineTable.tsx:610 +msgid "View Part" msgstr "" #: src/tables/build/BuildOrderTable.tsx:116 -msgid "Cascade" -msgstr "" +#~ msgid "Cascade" +#~ msgstr "Cascade" #: src/tables/build/BuildOrderTable.tsx:117 -msgid "Display recursive child orders" +#~ msgid "Display recursive child orders" +#~ msgstr "Display recursive child orders" + +#: src/tables/build/BuildOrderTable.tsx:121 +msgid "Show outstanding orders" msgstr "" -#: src/tables/build/BuildOrderTable.tsx:123 -#: src/tables/part/PartPurchaseOrdersTable.tsx:126 -#: src/tables/purchasing/PurchaseOrderTable.tsx:56 -#: src/tables/sales/ReturnOrderTable.tsx:47 -#: src/tables/sales/SalesOrderTable.tsx:54 +#: src/tables/build/BuildOrderTable.tsx:121 +#~ msgid "Show active orders" +#~ msgstr "Show active orders" + +#: src/tables/build/BuildOrderTable.tsx:122 +#~ msgid "Show overdue status" +#~ msgstr "Show overdue status" + +#: src/tables/build/BuildOrderTable.tsx:126 +#: src/tables/part/PartPurchaseOrdersTable.tsx:132 +#: src/tables/purchasing/PurchaseOrderTable.tsx:59 +#: src/tables/sales/ReturnOrderTable.tsx:57 +#: src/tables/sales/SalesOrderTable.tsx:57 msgid "Filter by order status" msgstr "" -#: src/tables/build/BuildOrderTable.tsx:130 -msgid "Show overdue status" -msgstr "" - -#: src/tables/build/BuildOrderTable.tsx:141 -#: src/tables/purchasing/PurchaseOrderTable.tsx:65 -#: src/tables/sales/ReturnOrderTable.tsx:56 -#: src/tables/sales/SalesOrderTable.tsx:63 +#: src/tables/build/BuildOrderTable.tsx:136 +#: src/tables/purchasing/PurchaseOrderTable.tsx:70 +#: src/tables/sales/ReturnOrderTable.tsx:68 +#: src/tables/sales/SalesOrderTable.tsx:68 msgid "Filter by project code" msgstr "" -#: src/tables/build/BuildOrderTable.tsx:146 -#: src/tables/purchasing/PurchaseOrderTable.tsx:70 -#: src/tables/sales/ReturnOrderTable.tsx:61 -#: src/tables/sales/SalesOrderTable.tsx:68 -msgid "Has Project Code" -msgstr "" - -#: src/tables/build/BuildOrderTable.tsx:147 +#: src/tables/build/BuildOrderTable.tsx:139 #: src/tables/purchasing/PurchaseOrderTable.tsx:71 #: src/tables/sales/ReturnOrderTable.tsx:62 #: src/tables/sales/SalesOrderTable.tsx:69 -msgid "Filter by whether the purchase order has a project code" -msgstr "" +#~ msgid "Filter by whether the purchase order has a project code" +#~ msgstr "Filter by whether the purchase order has a project code" -#: src/tables/build/BuildOrderTable.tsx:152 +#: src/tables/build/BuildOrderTable.tsx:143 msgid "Filter by user who issued this order" msgstr "" -#: src/tables/build/BuildOrderTable.tsx:158 -#: src/tables/purchasing/PurchaseOrderTable.tsx:76 -#: src/tables/sales/ReturnOrderTable.tsx:67 -#: src/tables/sales/SalesOrderTable.tsx:74 +#: src/tables/build/BuildOrderTable.tsx:149 +#: src/tables/purchasing/PurchaseOrderTable.tsx:77 +#: src/tables/sales/ReturnOrderTable.tsx:75 +#: src/tables/sales/SalesOrderTable.tsx:75 msgid "Filter by responsible owner" msgstr "" -#: src/tables/build/BuildOrderTestTable.tsx:75 -#: src/tables/build/BuildOrderTestTable.tsx:111 -#: src/tables/stock/StockItemTestResultTable.tsx:257 -#: src/tables/stock/StockItemTestResultTable.tsx:329 -#: src/tables/stock/StockItemTestResultTable.tsx:384 +#: src/tables/build/BuildOrderTestTable.tsx:76 +#: src/tables/build/BuildOrderTestTable.tsx:112 +#: src/tables/stock/StockItemTestResultTable.tsx:275 +#: src/tables/stock/StockItemTestResultTable.tsx:347 +#: src/tables/stock/StockItemTestResultTable.tsx:403 msgid "Add Test Result" msgstr "" -#: src/tables/build/BuildOrderTestTable.tsx:82 -#: src/tables/stock/StockItemTestResultTable.tsx:259 +#: src/tables/build/BuildOrderTestTable.tsx:83 +#: src/tables/stock/StockItemTestResultTable.tsx:277 msgid "Test result added" msgstr "" -#: src/tables/build/BuildOrderTestTable.tsx:110 -#: src/tables/stock/StockItemTestResultTable.tsx:174 +#: src/tables/build/BuildOrderTestTable.tsx:111 +#: src/tables/stock/StockItemTestResultTable.tsx:180 msgid "No Result" msgstr "" -#: src/tables/build/BuildOrderTestTable.tsx:220 +#: src/tables/build/BuildOrderTestTable.tsx:221 msgid "Show build outputs currently in production" msgstr "" +#: src/tables/build/BuildOutputTable.tsx:76 +msgid "Build Output Stock Allocation" +msgstr "" + #: src/tables/build/BuildOutputTable.tsx:161 #~ msgid "Delete build output" #~ msgstr "Delete build output" -#: src/tables/build/BuildOutputTable.tsx:173 -#: src/tables/build/BuildOutputTable.tsx:211 +#: src/tables/build/BuildOutputTable.tsx:258 +#: src/tables/build/BuildOutputTable.tsx:374 msgid "Add Build Output" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:216 +#: src/tables/build/BuildOutputTable.tsx:304 +#~ msgid "Edit build output" +#~ msgstr "Edit build output" + +#: src/tables/build/BuildOutputTable.tsx:306 +#: src/tables/build/BuildOutputTable.tsx:417 +msgid "Edit Build Output" +msgstr "" + +#: src/tables/build/BuildOutputTable.tsx:321 +msgid "This action will deallocate all stock from the selected build output" +msgstr "" + +#: src/tables/build/BuildOutputTable.tsx:341 msgid "Complete selected outputs" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:226 +#: src/tables/build/BuildOutputTable.tsx:352 msgid "Scrap selected outputs" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:236 +#: src/tables/build/BuildOutputTable.tsx:363 msgid "Cancel selected outputs" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:252 +#: src/tables/build/BuildOutputTable.tsx:385 msgid "Allocate" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:253 +#: src/tables/build/BuildOutputTable.tsx:386 msgid "Allocate stock to build output" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:259 +#: src/tables/build/BuildOutputTable.tsx:396 msgid "Deallocate" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:260 +#: src/tables/build/BuildOutputTable.tsx:397 msgid "Deallocate stock from build output" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:267 +#: src/tables/build/BuildOutputTable.tsx:408 msgid "Complete build output" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:276 +#: src/tables/build/BuildOutputTable.tsx:424 msgid "Scrap" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:277 +#: src/tables/build/BuildOutputTable.tsx:425 msgid "Scrap build output" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:280 -#~ msgid "Allocated Items" -#~ msgstr "Allocated Items" - -#: src/tables/build/BuildOutputTable.tsx:287 +#: src/tables/build/BuildOutputTable.tsx:435 msgid "Cancel build output" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:325 -msgid "Batch" -msgstr "" - -#: src/tables/build/BuildOutputTable.tsx:340 +#: src/tables/build/BuildOutputTable.tsx:488 msgid "Allocated Lines" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:355 +#: src/tables/build/BuildOutputTable.tsx:503 msgid "Required Tests" msgstr "" -#: src/tables/company/AddressTable.tsx:121 -#: src/tables/company/AddressTable.tsx:185 +#: src/tables/company/AddressTable.tsx:118 +#: src/tables/company/AddressTable.tsx:183 msgid "Add Address" msgstr "" -#: src/tables/company/AddressTable.tsx:126 +#: src/tables/company/AddressTable.tsx:123 msgid "Address created" msgstr "" -#: src/tables/company/AddressTable.tsx:135 +#: src/tables/company/AddressTable.tsx:132 msgid "Edit Address" msgstr "" -#: src/tables/company/AddressTable.tsx:143 +#: src/tables/company/AddressTable.tsx:140 msgid "Delete Address" msgstr "" -#: src/tables/company/AddressTable.tsx:144 +#: src/tables/company/AddressTable.tsx:141 msgid "Are you sure you want to delete this address?" msgstr "" @@ -6130,24 +7269,24 @@ msgstr "" #~ msgid "New Company" #~ msgstr "New Company" -#: src/tables/company/CompanyTable.tsx:74 -#: src/tables/company/CompanyTable.tsx:123 +#: src/tables/company/CompanyTable.tsx:75 +#: src/tables/company/CompanyTable.tsx:125 msgid "Add Company" msgstr "" -#: src/tables/company/CompanyTable.tsx:96 +#: src/tables/company/CompanyTable.tsx:97 msgid "Show active companies" msgstr "" -#: src/tables/company/CompanyTable.tsx:101 +#: src/tables/company/CompanyTable.tsx:102 msgid "Show companies which are suppliers" msgstr "" -#: src/tables/company/CompanyTable.tsx:106 +#: src/tables/company/CompanyTable.tsx:107 msgid "Show companies which are manufacturers" msgstr "" -#: src/tables/company/CompanyTable.tsx:111 +#: src/tables/company/CompanyTable.tsx:112 msgid "Show companies which are customers" msgstr "" @@ -6163,96 +7302,99 @@ msgstr "" msgid "Delete Contact" msgstr "" -#: src/tables/company/ContactTable.tsx:129 +#: src/tables/company/ContactTable.tsx:130 msgid "Add contact" msgstr "" -#: src/tables/general/AttachmentTable.tsx:130 +#: src/tables/general/AttachmentTable.tsx:135 msgid "File uploaded" msgstr "" -#: src/tables/general/AttachmentTable.tsx:131 +#: src/tables/general/AttachmentTable.tsx:136 msgid "File {0} uploaded successfully" msgstr "" -#: src/tables/general/AttachmentTable.tsx:142 +#: src/tables/general/AttachmentTable.tsx:147 msgid "Upload Error" msgstr "" -#: src/tables/general/AttachmentTable.tsx:143 +#: src/tables/general/AttachmentTable.tsx:148 msgid "File could not be uploaded" msgstr "" -#: src/tables/general/AttachmentTable.tsx:191 +#: src/tables/general/AttachmentTable.tsx:196 msgid "Upload Attachment" msgstr "" -#: src/tables/general/AttachmentTable.tsx:201 +#: src/tables/general/AttachmentTable.tsx:206 msgid "Edit Attachment" msgstr "" -#: src/tables/general/AttachmentTable.tsx:215 +#: src/tables/general/AttachmentTable.tsx:220 msgid "Delete Attachment" msgstr "" -#: src/tables/general/AttachmentTable.tsx:225 +#: src/tables/general/AttachmentTable.tsx:230 msgid "Is Link" msgstr "" -#: src/tables/general/AttachmentTable.tsx:226 +#: src/tables/general/AttachmentTable.tsx:231 msgid "Show link attachments" msgstr "" -#: src/tables/general/AttachmentTable.tsx:230 +#: src/tables/general/AttachmentTable.tsx:235 msgid "Is File" msgstr "" -#: src/tables/general/AttachmentTable.tsx:231 +#: src/tables/general/AttachmentTable.tsx:236 msgid "Show file attachments" msgstr "" -#: src/tables/general/AttachmentTable.tsx:240 +#: src/tables/general/AttachmentTable.tsx:245 msgid "Add attachment" msgstr "" -#: src/tables/general/AttachmentTable.tsx:251 -msgid "Add external link" -msgstr "" - #: src/tables/general/AttachmentTable.tsx:254 #~ msgid "Upload attachment" #~ msgstr "Upload attachment" -#: src/tables/general/AttachmentTable.tsx:299 +#: src/tables/general/AttachmentTable.tsx:256 +msgid "Add external link" +msgstr "" + +#: src/tables/general/AttachmentTable.tsx:304 msgid "No attachments found" msgstr "" -#: src/tables/general/AttachmentTable.tsx:337 +#: src/tables/general/AttachmentTable.tsx:343 msgid "Drag attachment file here to upload" msgstr "" #: src/tables/general/ExtraLineItemTable.tsx:86 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:251 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:60 -#: src/tables/sales/SalesOrderLineItemTable.tsx:196 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:263 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:362 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:72 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:168 +#: src/tables/sales/SalesOrderLineItemTable.tsx:206 +#: src/tables/sales/SalesOrderLineItemTable.tsx:291 msgid "Add Line Item" msgstr "" #: src/tables/general/ExtraLineItemTable.tsx:98 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:271 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:72 -#: src/tables/sales/SalesOrderLineItemTable.tsx:214 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:283 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:84 +#: src/tables/sales/SalesOrderLineItemTable.tsx:224 msgid "Edit Line Item" msgstr "" #: src/tables/general/ExtraLineItemTable.tsx:106 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:279 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:80 -#: src/tables/sales/SalesOrderLineItemTable.tsx:222 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:291 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:92 +#: src/tables/sales/SalesOrderLineItemTable.tsx:232 msgid "Delete Line Item" msgstr "" -#: src/tables/general/ExtraLineItemTable.tsx:142 +#: src/tables/general/ExtraLineItemTable.tsx:143 msgid "Add Extra Line Item" msgstr "" @@ -6261,12 +7403,12 @@ msgid "Machine restarted" msgstr "" #: src/tables/machine/MachineListTable.tsx:212 -#: src/tables/machine/MachineListTable.tsx:263 +#: src/tables/machine/MachineListTable.tsx:261 msgid "Edit machine" msgstr "" #: src/tables/machine/MachineListTable.tsx:226 -#: src/tables/machine/MachineListTable.tsx:267 +#: src/tables/machine/MachineListTable.tsx:265 msgid "Delete machine" msgstr "" @@ -6278,51 +7420,50 @@ msgstr "" msgid "Are you sure you want to remove the machine \"{0}\"?" msgstr "" -#: src/tables/machine/MachineListTable.tsx:255 -#: src/tables/machine/MachineListTable.tsx:432 +#: src/tables/machine/MachineListTable.tsx:254 +#: src/tables/machine/MachineListTable.tsx:442 msgid "Restart required" msgstr "" -#: src/tables/machine/MachineListTable.tsx:259 +#: src/tables/machine/MachineListTable.tsx:258 msgid "Machine Actions" msgstr "" -#: src/tables/machine/MachineListTable.tsx:272 +#: src/tables/machine/MachineListTable.tsx:270 msgid "Restart" msgstr "" -#: src/tables/machine/MachineListTable.tsx:274 +#: src/tables/machine/MachineListTable.tsx:272 msgid "Restart machine" msgstr "" -#: src/tables/machine/MachineListTable.tsx:276 +#: src/tables/machine/MachineListTable.tsx:274 msgid "manual restart required" msgstr "" +#: src/tables/machine/MachineListTable.tsx:291 +#~ msgid "Machine information" +#~ msgstr "Machine information" + #: src/tables/machine/MachineListTable.tsx:292 -msgid "Machine information" +msgid "Machine Information" msgstr "" -#: src/tables/machine/MachineListTable.tsx:303 -#: src/tables/machine/MachineListTable.tsx:599 +#: src/tables/machine/MachineListTable.tsx:302 +#: src/tables/machine/MachineListTable.tsx:610 msgid "Machine Type" msgstr "" -#: src/tables/machine/MachineListTable.tsx:316 +#: src/tables/machine/MachineListTable.tsx:315 msgid "Machine Driver" msgstr "" -#: src/tables/machine/MachineListTable.tsx:329 +#: src/tables/machine/MachineListTable.tsx:330 msgid "Initialized" msgstr "" -#: src/tables/machine/MachineListTable.tsx:350 -#: src/tables/machine/MachineTypeTable.tsx:261 -msgid "Errors" -msgstr "" - -#: src/tables/machine/MachineListTable.tsx:358 -#: src/tables/machine/MachineTypeTable.tsx:269 +#: src/tables/machine/MachineListTable.tsx:359 +#: src/tables/machine/MachineTypeTable.tsx:290 msgid "No errors reported" msgstr "" @@ -6330,7 +7471,7 @@ msgstr "" msgid "Machine Settings" msgstr "" -#: src/tables/machine/MachineListTable.tsx:389 +#: src/tables/machine/MachineListTable.tsx:394 msgid "Driver Settings" msgstr "" @@ -6338,86 +7479,109 @@ msgstr "" #~ msgid "Create machine" #~ msgstr "Create machine" -#: src/tables/machine/MachineListTable.tsx:506 +#: src/tables/machine/MachineListTable.tsx:516 +#: src/tables/machine/MachineListTable.tsx:558 msgid "Add machine" msgstr "" #: src/tables/machine/MachineListTable.tsx:561 -msgid "Machine detail" +#~ msgid "Machine detail" +#~ msgstr "Machine detail" + +#: src/tables/machine/MachineListTable.tsx:572 +msgid "Machine Detail" msgstr "" -#: src/tables/machine/MachineListTable.tsx:608 +#: src/tables/machine/MachineListTable.tsx:619 msgid "Driver" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:73 +#: src/tables/machine/MachineTypeTable.tsx:78 msgid "Builtin driver" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:89 +#: src/tables/machine/MachineTypeTable.tsx:96 +msgid "Not Found" +msgstr "" + +#: src/tables/machine/MachineTypeTable.tsx:99 msgid "Machine type not found." msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:97 -msgid "Machine type information" +#: src/tables/machine/MachineTypeTable.tsx:99 +#~ msgid "Machine type information" +#~ msgstr "Machine type information" + +#: src/tables/machine/MachineTypeTable.tsx:109 +msgid "Machine Type Information" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:110 -#: src/tables/machine/MachineTypeTable.tsx:217 +#: src/tables/machine/MachineTypeTable.tsx:124 +#: src/tables/machine/MachineTypeTable.tsx:238 msgid "Slug" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:118 -#: src/tables/machine/MachineTypeTable.tsx:238 +#: src/tables/machine/MachineTypeTable.tsx:135 +#: src/tables/machine/MachineTypeTable.tsx:259 msgid "Provider plugin" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:130 -#: src/tables/machine/MachineTypeTable.tsx:250 +#: src/tables/machine/MachineTypeTable.tsx:147 +#: src/tables/machine/MachineTypeTable.tsx:271 msgid "Provider file" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:135 -#: src/tables/machine/MachineTypeTable.tsx:255 -#: src/tables/plugin/PluginListTable.tsx:180 -#: src/tables/plugin/PluginListTable.tsx:568 -msgid "Builtin" +#: src/tables/machine/MachineTypeTable.tsx:148 +#~ msgid "Available drivers" +#~ msgstr "Available drivers" + +#: src/tables/machine/MachineTypeTable.tsx:162 +msgid "Available Drivers" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:146 -msgid "Available drivers" -msgstr "" - -#: src/tables/machine/MachineTypeTable.tsx:196 +#: src/tables/machine/MachineTypeTable.tsx:217 msgid "Machine driver not found." msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:204 +#: src/tables/machine/MachineTypeTable.tsx:225 msgid "Machine driver information" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:224 +#: src/tables/machine/MachineTypeTable.tsx:245 msgid "Machine type" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:327 +#: src/tables/machine/MachineTypeTable.tsx:338 +#~ msgid "Machine type detail" +#~ msgstr "Machine type detail" + +#: src/tables/machine/MachineTypeTable.tsx:348 msgid "Builtin type" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:336 -msgid "Machine type detail" +#: src/tables/machine/MachineTypeTable.tsx:348 +#~ msgid "Machine driver detail" +#~ msgstr "Machine driver detail" + +#: src/tables/machine/MachineTypeTable.tsx:357 +msgid "Machine Type Detail" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:346 -msgid "Machine driver detail" +#: src/tables/machine/MachineTypeTable.tsx:367 +msgid "Machine Driver Detail" msgstr "" #: src/tables/notifications/NotificationsTable.tsx:26 msgid "Age" msgstr "" +#: src/tables/notifications/NotificationsTable.tsx:36 +msgid "Notification" +msgstr "" + #: src/tables/notifications/NotificationsTable.tsx:40 #: src/tables/plugin/PluginErrorTable.tsx:37 +#: src/tables/settings/ErrorTable.tsx:50 msgid "Message" msgstr "" @@ -6451,33 +7615,32 @@ msgstr "" msgid "Show assembly parts" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:68 +#: src/tables/part/PartCategoryTable.tsx:48 +msgid "You are subscribed to notifications for this category" +msgstr "" + +#: src/tables/part/PartCategoryTable.tsx:80 #: src/tables/part/PartTable.tsx:196 msgid "Include Subcategories" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:69 +#: src/tables/part/PartCategoryTable.tsx:81 msgid "Include subcategories in results" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:74 +#: src/tables/part/PartCategoryTable.tsx:86 msgid "Show structural categories" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:78 -#: src/tables/part/PartTable.tsx:294 -msgid "Subscribed" -msgstr "" - -#: src/tables/part/PartCategoryTable.tsx:79 +#: src/tables/part/PartCategoryTable.tsx:91 msgid "Show categories to which the user is subscribed" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:86 +#: src/tables/part/PartCategoryTable.tsx:100 msgid "New Part Category" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:112 +#: src/tables/part/PartCategoryTable.tsx:129 msgid "Add Part Category" msgstr "" @@ -6523,11 +7686,6 @@ msgstr "" msgid "Part parameters cannot be edited, as the part is locked" msgstr "" -#: src/tables/part/PartParameterTable.tsx:212 -#: src/tables/stock/StockItemTable.tsx:335 -msgid "Include Variants" -msgstr "" - #: src/tables/part/PartParameterTemplateTable.tsx:31 msgid "Checkbox" msgstr "" @@ -6554,6 +7712,7 @@ msgid "Show templates with units" msgstr "" #: src/tables/part/PartParameterTemplateTable.tsx:85 +#: src/tables/part/PartParameterTemplateTable.tsx:141 msgid "Add Parameter Template" msgstr "" @@ -6566,23 +7725,19 @@ msgid "Delete Parameter Template" msgstr "" #: src/tables/part/PartParameterTemplateTable.tsx:141 -msgid "Add parameter template" -msgstr "" +#~ msgid "Add parameter template" +#~ msgstr "Add parameter template" -#: src/tables/part/PartPurchaseOrdersTable.tsx:77 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:162 +#: src/tables/part/PartPurchaseOrdersTable.tsx:78 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:168 msgid "Total Quantity" msgstr "" -#: src/tables/part/PartPurchaseOrdersTable.tsx:115 -msgid "Pending" -msgstr "" - -#: src/tables/part/PartPurchaseOrdersTable.tsx:116 +#: src/tables/part/PartPurchaseOrdersTable.tsx:122 msgid "Show pending orders" msgstr "" -#: src/tables/part/PartPurchaseOrdersTable.tsx:121 +#: src/tables/part/PartPurchaseOrdersTable.tsx:127 msgid "Show received items" msgstr "" @@ -6728,22 +7883,13 @@ msgstr "" msgid "Results" msgstr "" -#: src/tables/part/PartTestTemplateTable.tsx:76 -msgid "No Results" -msgstr "" - -#: src/tables/part/PartTestTemplateTable.tsx:106 -#: src/tables/stock/StockItemTestResultTable.tsx:365 -msgid "Required" -msgstr "" - #: src/tables/part/PartTestTemplateTable.tsx:107 msgid "Show required tests" msgstr "" #: src/tables/part/PartTestTemplateTable.tsx:111 -#: src/tables/settings/TemplateTable.tsx:167 -#: src/tables/settings/TemplateTable.tsx:283 +#: src/tables/settings/TemplateTable.tsx:247 +#: src/tables/settings/TemplateTable.tsx:363 msgid "Enabled" msgstr "" @@ -6784,7 +7930,7 @@ msgid "Show tests which have recorded results" msgstr "" #: src/tables/part/PartTestTemplateTable.tsx:154 -#: src/tables/part/PartTestTemplateTable.tsx:237 +#: src/tables/part/PartTestTemplateTable.tsx:238 msgid "Add Test Template" msgstr "" @@ -6808,7 +7954,7 @@ msgstr "" msgid "View Parent Part" msgstr "" -#: src/tables/part/PartTestTemplateTable.tsx:257 +#: src/tables/part/PartTestTemplateTable.tsx:258 msgid "Part templates cannot be edited, as the part is locked" msgstr "" @@ -6836,28 +7982,49 @@ msgstr "" msgid "Show trackable variants" msgstr "" -#: src/tables/part/RelatedPartTable.tsx:84 +#: src/tables/part/RelatedPartTable.tsx:86 +#: src/tables/part/RelatedPartTable.tsx:109 msgid "Add Related Part" msgstr "" -#: src/tables/part/RelatedPartTable.tsx:99 +#: src/tables/part/RelatedPartTable.tsx:101 msgid "Delete Related Part" msgstr "" -#: src/tables/part/RelatedPartTable.tsx:106 -msgid "Add related part" -msgstr "" +#: src/tables/part/RelatedPartTable.tsx:109 +#~ msgid "Add related part" +#~ msgstr "Add related part" #: src/tables/plugin/PluginErrorTable.tsx:29 msgid "Stage" msgstr "" -#: src/tables/plugin/PluginListTable.tsx:95 -msgid "Plugin with key {pluginKey} not found" +#: src/tables/plugin/PluginListTable.tsx:42 +msgid "Plugin is active" msgstr "" +#: src/tables/plugin/PluginListTable.tsx:48 +msgid "Plugin is inactive" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:55 +msgid "Plugin is not installed" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:76 +msgid "Plugin" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:95 +#~ msgid "Plugin with key {pluginKey} not found" +#~ msgstr "Plugin with key {pluginKey} not found" + #: src/tables/plugin/PluginListTable.tsx:97 -msgid "An error occurred while fetching plugin details" +#~ msgid "An error occurred while fetching plugin details" +#~ msgstr "An error occurred while fetching plugin details" + +#: src/tables/plugin/PluginListTable.tsx:109 +msgid "Description not available" msgstr "" #: src/tables/plugin/PluginListTable.tsx:113 @@ -6865,12 +8032,8 @@ msgstr "" #~ msgstr "Plugin with id {id} not found" #: src/tables/plugin/PluginListTable.tsx:122 -msgid "Plugin information" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:134 -msgid "Author" -msgstr "" +#~ msgid "Plugin information" +#~ msgstr "Plugin information" #: src/tables/plugin/PluginListTable.tsx:134 #~ msgid "Plugin Actions" @@ -6881,79 +8044,124 @@ msgstr "" #~ msgid "Edit plugin" #~ msgstr "Edit plugin" +#: src/tables/plugin/PluginListTable.tsx:144 +msgid "Confirm plugin activation" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:145 +msgid "Confirm plugin deactivation" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:150 +msgid "The selected plugin will be activated" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:151 +msgid "The selected plugin will be deactivated" +msgstr "" + #: src/tables/plugin/PluginListTable.tsx:152 #: src/tables/plugin/PluginListTable.tsx:153 #~ msgid "Reload" #~ msgstr "Reload" -#: src/tables/plugin/PluginListTable.tsx:154 -msgid "Plugin is not active" -msgstr "" - #: src/tables/plugin/PluginListTable.tsx:163 -msgid "Package information" -msgstr "" +#~ msgid "Package information" +#~ msgstr "Package information" #: src/tables/plugin/PluginListTable.tsx:169 -msgid "Package Name" +msgid "Deactivate" msgstr "" -#: src/tables/plugin/PluginListTable.tsx:175 -msgid "Installation Path" +#: src/tables/plugin/PluginListTable.tsx:183 +msgid "Activate" msgstr "" -#: src/tables/plugin/PluginListTable.tsx:185 -msgid "Package" +#: src/tables/plugin/PluginListTable.tsx:184 +msgid "Activate selected plugin" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:196 +msgid "Update selected plugin" msgstr "" #: src/tables/plugin/PluginListTable.tsx:197 -msgid "Plugin settings" -msgstr "" +#~ msgid "Plugin settings" +#~ msgstr "Plugin settings" #: src/tables/plugin/PluginListTable.tsx:214 -msgid "Plugin is active" +#: src/tables/stock/InstalledItemsTable.tsx:107 +msgid "Uninstall" msgstr "" -#: src/tables/plugin/PluginListTable.tsx:220 -msgid "Plugin is inactive" +#: src/tables/plugin/PluginListTable.tsx:215 +msgid "Uninstall selected plugin" msgstr "" -#: src/tables/plugin/PluginListTable.tsx:227 -msgid "Plugin is not installed" +#: src/tables/plugin/PluginListTable.tsx:233 +msgid "Delete selected plugin configuration" msgstr "" -#: src/tables/plugin/PluginListTable.tsx:253 -msgid "Plugin" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:287 -msgid "Description not available" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:319 -msgid "Confirm plugin activation" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:320 -msgid "Confirm plugin deactivation" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:325 -msgid "The selected plugin will be activated" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:326 -msgid "The selected plugin will be deactivated" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:334 +#: src/tables/plugin/PluginListTable.tsx:249 msgid "Activate Plugin" msgstr "" +#: src/tables/plugin/PluginListTable.tsx:270 +msgid "Install plugin" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:283 +msgid "Install" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:284 +msgid "Plugin installed successfully" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:289 +msgid "Uninstall Plugin" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:301 +msgid "Confirm plugin uninstall" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:304 +msgid "The selected plugin will be uninstalled." +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:308 +#~ msgid "This action cannot be undone." +#~ msgstr "This action cannot be undone." + +#: src/tables/plugin/PluginListTable.tsx:309 +msgid "Plugin uninstalled successfully" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:317 +msgid "Delete Plugin" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:318 +msgid "Deleting this plugin configuration will remove all associated settings and data. Are you sure you want to delete this plugin?" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:331 +msgid "Plugins reloaded" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:332 +msgid "Plugins were reloaded successfully" +msgstr "" + #: src/tables/plugin/PluginListTable.tsx:338 #~ msgid "Deactivate Plugin" #~ msgstr "Deactivate Plugin" +#: src/tables/plugin/PluginListTable.tsx:350 +msgid "Reload Plugins" +msgstr "" + #: src/tables/plugin/PluginListTable.tsx:354 #~ msgid "The following plugin will be activated" #~ msgstr "The following plugin will be activated" @@ -6962,16 +8170,16 @@ msgstr "" #~ msgid "The following plugin will be deactivated" #~ msgstr "The following plugin will be deactivated" -#: src/tables/plugin/PluginListTable.tsx:362 -msgid "Deactivate" +#: src/tables/plugin/PluginListTable.tsx:357 +msgid "Install Plugin" msgstr "" #: src/tables/plugin/PluginListTable.tsx:366 #~ msgid "Confirm" #~ msgstr "Confirm" -#: src/tables/plugin/PluginListTable.tsx:373 -msgid "Activate" +#: src/tables/plugin/PluginListTable.tsx:374 +msgid "Plugin Detail" msgstr "" #: src/tables/plugin/PluginListTable.tsx:376 @@ -6998,76 +8206,12 @@ msgstr "" #~ msgid "Error updating plugin" #~ msgstr "Error updating plugin" -#: src/tables/plugin/PluginListTable.tsx:406 -msgid "Uninstall" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:438 -msgid "Install plugin" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:451 -msgid "Install" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:452 -msgid "Plugin installed successfully" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:457 -msgid "Uninstall Plugin" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:469 -msgid "Confirm plugin uninstall" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:472 -msgid "The selected plugin will be uninstalled." -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:473 -msgid "This action cannot be undone." -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:477 -msgid "Plugin uninstalled successfully" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:484 -msgid "Delete Plugin" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:485 -msgid "Deleting this plugin configuration will remove all associated settings and data. Are you sure you want to delete this plugin?" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:498 -msgid "Plugins reloaded" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:499 -msgid "Plugins were reloaded successfully" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:515 -msgid "Reload Plugins" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:524 -msgid "Install Plugin" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:544 -msgid "Plugin Detail" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:573 +#: src/tables/plugin/PluginListTable.tsx:411 msgid "Sample" msgstr "" -#: src/tables/plugin/PluginListTable.tsx:578 -#: src/tables/stock/StockItemTable.tsx:340 +#: src/tables/plugin/PluginListTable.tsx:416 +#: src/tables/stock/StockItemTable.tsx:344 msgid "Installed" msgstr "" @@ -7116,82 +8260,78 @@ msgstr "" #~ msgid "Are you sure you want to remove this manufacturer part?" #~ msgstr "Are you sure you want to remove this manufacturer part?" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:102 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:339 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:103 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:356 msgid "Import Line Items" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:135 -msgid "Part Description" -msgstr "" - -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:201 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:207 msgid "Supplier Code" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:208 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:214 msgid "Supplier Link" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:215 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:220 msgid "Manufacturer Code" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:229 -msgid "Destination" +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:248 +msgid "Show line items which have been received" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:300 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:316 msgid "Receive line item" msgstr "" #: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:344 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:142 -#: src/tables/sales/SalesOrderLineItemTable.tsx:240 -msgid "Add line item" -msgstr "" +#: src/tables/sales/ReturnOrderLineItemTable.tsx:160 +#: src/tables/sales/SalesOrderLineItemTable.tsx:258 +#~ msgid "Add line item" +#~ msgstr "Add line item" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:354 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:373 msgid "Receive items" msgstr "" -#: src/tables/purchasing/SupplierPartTable.tsx:93 +#: src/tables/purchasing/SupplierPartTable.tsx:95 msgid "MPN" msgstr "" -#: src/tables/purchasing/SupplierPartTable.tsx:122 +#: src/tables/purchasing/SupplierPartTable.tsx:124 msgid "Base units" msgstr "" -#: src/tables/purchasing/SupplierPartTable.tsx:170 +#: src/tables/purchasing/SupplierPartTable.tsx:172 msgid "Supplier part created" msgstr "" -#: src/tables/purchasing/SupplierPartTable.tsx:176 +#: src/tables/purchasing/SupplierPartTable.tsx:179 msgid "Add supplier part" msgstr "" -#: src/tables/purchasing/SupplierPartTable.tsx:188 +#: src/tables/purchasing/SupplierPartTable.tsx:191 msgid "Show active supplier parts" msgstr "" -#: src/tables/purchasing/SupplierPartTable.tsx:192 -msgid "Active Part" -msgstr "" - -#: src/tables/purchasing/SupplierPartTable.tsx:193 -msgid "Show active internal parts" -msgstr "" - #: src/tables/purchasing/SupplierPartTable.tsx:193 #~ msgid "Supplier part updated" #~ msgstr "Supplier part updated" -#: src/tables/purchasing/SupplierPartTable.tsx:197 +#: src/tables/purchasing/SupplierPartTable.tsx:195 +msgid "Active Part" +msgstr "" + +#: src/tables/purchasing/SupplierPartTable.tsx:196 +msgid "Show active internal parts" +msgstr "" + +#: src/tables/purchasing/SupplierPartTable.tsx:200 msgid "Active Supplier" msgstr "" -#: src/tables/purchasing/SupplierPartTable.tsx:198 +#: src/tables/purchasing/SupplierPartTable.tsx:201 msgid "Show active suppliers" msgstr "" @@ -7203,99 +8343,187 @@ msgstr "" #~ msgid "Are you sure you want to remove this supplier part?" #~ msgstr "Are you sure you want to remove this supplier part?" -#: src/tables/sales/ReturnOrderLineItemTable.tsx:114 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:139 msgid "Received Date" msgstr "" -#: src/tables/sales/ReturnOrderLineItemTable.tsx:128 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:153 msgid "Show items which have been received" msgstr "" -#: src/tables/sales/ReturnOrderLineItemTable.tsx:133 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:158 msgid "Filter by line item status" msgstr "" -#: src/tables/sales/ReturnOrderLineItemTable.tsx:158 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:176 +msgid "Receive selected items" +msgstr "" + +#: src/tables/sales/ReturnOrderLineItemTable.tsx:205 msgid "Receive Item" msgstr "" -#: src/tables/sales/SalesOrderLineItemTable.tsx:262 -msgid "Allocate stock" +#: src/tables/sales/SalesOrderAllocationTable.tsx:60 +msgid "Show outstanding allocations" msgstr "" -#: src/tables/sales/SalesOrderLineItemTable.tsx:272 +#: src/tables/sales/SalesOrderAllocationTable.tsx:168 +#: src/tables/sales/SalesOrderAllocationTable.tsx:190 +msgid "Edit Allocation" +msgstr "" + +#: src/tables/sales/SalesOrderAllocationTable.tsx:175 +#: src/tables/sales/SalesOrderAllocationTable.tsx:197 +msgid "Delete Allocation" +msgstr "" + +#: src/tables/sales/SalesOrderLineItemTable.tsx:244 +msgid "Allocate Serial Numbers" +msgstr "" + +#: src/tables/sales/SalesOrderLineItemTable.tsx:277 +msgid "Show lines which are fully allocated" +msgstr "" + +#: src/tables/sales/SalesOrderLineItemTable.tsx:280 +#~ msgid "Allocate stock" +#~ msgstr "Allocate stock" + +#: src/tables/sales/SalesOrderLineItemTable.tsx:282 +msgid "Show lines which are completed" +msgstr "" + +#: src/tables/sales/SalesOrderLineItemTable.tsx:291 +#~ msgid "Allocate Serials" +#~ msgstr "Allocate Serials" + +#: src/tables/sales/SalesOrderLineItemTable.tsx:340 +msgid "Allocate serials" +msgstr "" + +#: src/tables/sales/SalesOrderLineItemTable.tsx:356 msgid "Build stock" msgstr "" -#: src/tables/sales/SalesOrderLineItemTable.tsx:289 -#: src/tables/stock/StockItemTable.tsx:507 +#: src/tables/sales/SalesOrderLineItemTable.tsx:373 +#: src/tables/stock/StockItemTable.tsx:512 msgid "Order stock" msgstr "" -#: src/tables/sales/SalesOrderShipmentTable.tsx:40 +#: src/tables/sales/SalesOrderShipmentTable.tsx:51 +#~ msgid "Delete Shipment" +#~ msgstr "Delete Shipment" + +#: src/tables/sales/SalesOrderShipmentTable.tsx:57 msgid "Create Shipment" msgstr "" -#: src/tables/sales/SalesOrderShipmentTable.tsx:50 -msgid "Delete Shipment" -msgstr "" - -#: src/tables/sales/SalesOrderShipmentTable.tsx:58 -msgid "Edit Shipment" -msgstr "" - -#: src/tables/sales/SalesOrderShipmentTable.tsx:66 -msgid "Shipment Reference" -msgstr "" - -#: src/tables/sales/SalesOrderShipmentTable.tsx:71 +#: src/tables/sales/SalesOrderShipmentTable.tsx:104 msgid "Items" msgstr "" -#: src/tables/sales/SalesOrderShipmentTable.tsx:83 -msgid "Delivery Date" +#: src/tables/sales/SalesOrderShipmentTable.tsx:139 +msgid "View Shipment" msgstr "" -#: src/tables/sales/SalesOrderShipmentTable.tsx:107 -msgid "Complete Shipment" +#: src/tables/sales/SalesOrderShipmentTable.tsx:161 +msgid "Edit shipment" msgstr "" -#: src/tables/sales/SalesOrderShipmentTable.tsx:133 +#: src/tables/sales/SalesOrderShipmentTable.tsx:169 +msgid "Cancel shipment" +msgstr "" + +#: src/tables/sales/SalesOrderShipmentTable.tsx:184 msgid "Add shipment" msgstr "" -#: src/tables/sales/SalesOrderShipmentTable.tsx:146 -msgid "Shipped" -msgstr "" - -#: src/tables/sales/SalesOrderShipmentTable.tsx:147 +#: src/tables/sales/SalesOrderShipmentTable.tsx:198 msgid "Show shipments which have been shipped" msgstr "" -#: src/tables/sales/SalesOrderShipmentTable.tsx:151 -msgid "Delivered" -msgstr "" - -#: src/tables/sales/SalesOrderShipmentTable.tsx:152 +#: src/tables/sales/SalesOrderShipmentTable.tsx:203 msgid "Show shipments which have been delivered" msgstr "" -#: src/tables/settings/CurrencyTable.tsx:28 -msgid "Rate" +#: src/tables/settings/BarcodeScanHistoryTable.tsx:61 +msgid "Barcode Information" msgstr "" -#: src/tables/settings/CurrencyTable.tsx:40 -msgid "Exchange rates updated" +#: src/tables/settings/BarcodeScanHistoryTable.tsx:76 +#: src/tables/settings/ErrorTable.tsx:59 +msgid "Timestamp" msgstr "" -#: src/tables/settings/CurrencyTable.tsx:46 -msgid "Exchange rate update error" +#: src/tables/settings/BarcodeScanHistoryTable.tsx:86 +msgid "Endpoint" msgstr "" -#: src/tables/settings/CurrencyTable.tsx:57 -msgid "Refresh currency exchange rates" +#: src/tables/settings/BarcodeScanHistoryTable.tsx:90 +#: src/tables/settings/BarcodeScanHistoryTable.tsx:217 +#: src/tables/stock/StockItemTestResultTable.tsx:174 +msgid "Result" msgstr "" +#: src/tables/settings/BarcodeScanHistoryTable.tsx:98 +msgid "Context" +msgstr "" + +#: src/tables/settings/BarcodeScanHistoryTable.tsx:119 +msgid "Response" +msgstr "" + +#: src/tables/settings/BarcodeScanHistoryTable.tsx:213 +#: src/tables/settings/ImportSessionTable.tsx:121 +#: src/tables/stock/StockTrackingTable.tsx:183 +msgid "Filter by user" +msgstr "" + +#: src/tables/settings/BarcodeScanHistoryTable.tsx:218 +msgid "Filter by result" +msgstr "" + +#: src/tables/settings/BarcodeScanHistoryTable.tsx:232 +msgid "Delete Barcode Scan Record" +msgstr "" + +#: src/tables/settings/BarcodeScanHistoryTable.tsx:258 +msgid "Barcode Scan Details" +msgstr "" + +#: src/tables/settings/BarcodeScanHistoryTable.tsx:268 +msgid "Logging Disabled" +msgstr "" + +#: src/tables/settings/BarcodeScanHistoryTable.tsx:270 +msgid "Barcode logging is not enabled" +msgstr "" + +#: src/tables/settings/CustomStateTable.tsx:36 +msgid "Display Name" +msgstr "" + +#: src/tables/settings/CustomStateTable.tsx:52 +msgid "Model" +msgstr "" + +#: src/tables/settings/CustomStateTable.tsx:65 +#: src/tables/settings/CustomStateTable.tsx:115 +msgid "Add State" +msgstr "" + +#: src/tables/settings/CustomStateTable.tsx:77 +msgid "Edit State" +msgstr "" + +#: src/tables/settings/CustomStateTable.tsx:85 +msgid "Delete State" +msgstr "" + +#: src/tables/settings/CustomStateTable.tsx:115 +#~ msgid "Add state" +#~ msgstr "Add state" + #: src/tables/settings/CustomUnitsTable.tsx:50 msgid "Add Custom Unit" msgstr "" @@ -7312,59 +8540,71 @@ msgstr "" msgid "Add custom unit" msgstr "" -#: src/tables/settings/ErrorTable.tsx:31 -msgid "When" -msgstr "" - -#: src/tables/settings/ErrorTable.tsx:41 -msgid "Error Information" -msgstr "" - #: src/tables/settings/ErrorTable.tsx:51 #~ msgid "Delete error report" #~ msgstr "Delete error report" -#: src/tables/settings/ErrorTable.tsx:53 +#: src/tables/settings/ErrorTable.tsx:67 +msgid "Traceback" +msgstr "" + +#: src/tables/settings/ErrorTable.tsx:103 +msgid "When" +msgstr "" + +#: src/tables/settings/ErrorTable.tsx:113 +msgid "Error Information" +msgstr "" + +#: src/tables/settings/ErrorTable.tsx:123 msgid "Delete Error Report" msgstr "" -#: src/tables/settings/ErrorTable.tsx:55 +#: src/tables/settings/ErrorTable.tsx:125 msgid "Are you sure you want to delete this error report?" msgstr "" -#: src/tables/settings/ErrorTable.tsx:57 +#: src/tables/settings/ErrorTable.tsx:127 msgid "Error report deleted" msgstr "" -#: src/tables/settings/ErrorTable.tsx:79 -#: src/tables/settings/FailedTasksTable.tsx:59 +#: src/tables/settings/ErrorTable.tsx:146 +#: src/tables/settings/FailedTasksTable.tsx:65 msgid "Error Details" msgstr "" -#: src/tables/settings/FailedTasksTable.tsx:26 -#: src/tables/settings/PendingTasksTable.tsx:19 +#: src/tables/settings/FailedTasksTable.tsx:32 +#: src/tables/settings/PendingTasksTable.tsx:23 #: src/tables/settings/ScheduledTasksTable.tsx:19 msgid "Task" msgstr "" -#: src/tables/settings/FailedTasksTable.tsx:32 -#: src/tables/settings/PendingTasksTable.tsx:24 +#: src/tables/settings/FailedTasksTable.tsx:38 +#: src/tables/settings/PendingTasksTable.tsx:28 msgid "Task ID" msgstr "" -#: src/tables/settings/FailedTasksTable.tsx:36 -#: src/tables/stock/StockItemTestResultTable.tsx:211 +#: src/tables/settings/FailedTasksTable.tsx:42 +#: src/tables/stock/StockItemTestResultTable.tsx:218 msgid "Started" msgstr "" -#: src/tables/settings/FailedTasksTable.tsx:42 +#: src/tables/settings/FailedTasksTable.tsx:48 msgid "Stopped" msgstr "" -#: src/tables/settings/FailedTasksTable.tsx:48 +#: src/tables/settings/FailedTasksTable.tsx:54 msgid "Attempts" msgstr "" +#: src/tables/settings/FailedTasksTable.tsx:92 +msgid "No Information" +msgstr "" + +#: src/tables/settings/FailedTasksTable.tsx:93 +msgid "No error details are available for this task" +msgstr "" + #: src/tables/settings/GroupTable.tsx:90 msgid "Group with id {id} not found" msgstr "" @@ -7398,42 +8638,34 @@ msgstr "" msgid "Edit group" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:38 +#: src/tables/settings/ImportSessionTable.tsx:37 msgid "Delete Import Session" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:44 +#: src/tables/settings/ImportSessionTable.tsx:43 #: src/tables/settings/ImportSessionTable.tsx:131 msgid "Create Import Session" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:69 +#: src/tables/settings/ImportSessionTable.tsx:68 msgid "Uploaded" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:79 -msgid "Imported Rows" -msgstr "" - -#: src/tables/settings/ImportSessionTable.tsx:109 -#: src/tables/settings/TemplateTable.tsx:289 +#: src/tables/settings/ImportSessionTable.tsx:108 +#: src/tables/settings/TemplateTable.tsx:369 msgid "Model Type" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:110 -#: src/tables/settings/TemplateTable.tsx:290 +#: src/tables/settings/ImportSessionTable.tsx:109 +#: src/tables/settings/TemplateTable.tsx:370 msgid "Filter by target model type" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:116 +#: src/tables/settings/ImportSessionTable.tsx:115 msgid "Filter by import session status" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:122 -msgid "Filter by user" -msgstr "" - -#: src/tables/settings/PendingTasksTable.tsx:38 +#: src/tables/settings/PendingTasksTable.tsx:42 msgid "Arguments" msgstr "" @@ -7461,12 +8693,16 @@ msgstr "" msgid "Next Run" msgstr "" -#: src/tables/settings/TemplateTable.tsx:85 -msgid "Template not found" +#: src/tables/settings/StocktakeReportTable.tsx:28 +msgid "Report" msgstr "" -#: src/tables/settings/TemplateTable.tsx:87 -msgid "An error occurred while fetching template details" +#: src/tables/settings/StocktakeReportTable.tsx:35 +msgid "Part Count" +msgstr "" + +#: src/tables/settings/StocktakeReportTable.tsx:58 +msgid "Delete Report" msgstr "" #: src/tables/settings/TemplateTable.tsx:120 @@ -7481,21 +8717,12 @@ msgstr "" #~ msgid "actions" #~ msgstr "actions" -#: src/tables/settings/TemplateTable.tsx:177 -msgid "Modify" +#: src/tables/settings/TemplateTable.tsx:162 +msgid "Template not found" msgstr "" -#: src/tables/settings/TemplateTable.tsx:178 -msgid "Modify template file" -msgstr "" - -#: src/tables/settings/TemplateTable.tsx:234 -#: src/tables/settings/TemplateTable.tsx:302 -msgid "Edit Template" -msgstr "" - -#: src/tables/settings/TemplateTable.tsx:242 -msgid "Delete template" +#: src/tables/settings/TemplateTable.tsx:164 +msgid "An error occurred while fetching template details" msgstr "" #: src/tables/settings/TemplateTable.tsx:243 @@ -7506,103 +8733,137 @@ msgstr "" #~ msgid "Create new" #~ msgstr "Create new" -#: src/tables/settings/TemplateTable.tsx:248 +#: src/tables/settings/TemplateTable.tsx:257 +msgid "Modify" +msgstr "" + +#: src/tables/settings/TemplateTable.tsx:258 +msgid "Modify template file" +msgstr "" + +#: src/tables/settings/TemplateTable.tsx:314 +#: src/tables/settings/TemplateTable.tsx:382 +msgid "Edit Template" +msgstr "" + +#: src/tables/settings/TemplateTable.tsx:322 +msgid "Delete template" +msgstr "" + +#: src/tables/settings/TemplateTable.tsx:328 msgid "Add Template" msgstr "" -#: src/tables/settings/TemplateTable.tsx:261 +#: src/tables/settings/TemplateTable.tsx:341 msgid "Add template" msgstr "" -#: src/tables/settings/TemplateTable.tsx:284 +#: src/tables/settings/TemplateTable.tsx:364 msgid "Filter by enabled status" msgstr "" -#: src/tables/settings/UserTable.tsx:82 +#: src/tables/settings/UserTable.tsx:81 msgid "User with id {id} not found" msgstr "" -#: src/tables/settings/UserTable.tsx:84 +#: src/tables/settings/UserTable.tsx:83 msgid "An error occurred while fetching user details" msgstr "" -#: src/tables/settings/UserTable.tsx:102 +#: src/tables/settings/UserTable.tsx:101 msgid "Is Active" msgstr "" -#: src/tables/settings/UserTable.tsx:103 +#: src/tables/settings/UserTable.tsx:102 msgid "Designates whether this user should be treated as active. Unselect this instead of deleting accounts." msgstr "" -#: src/tables/settings/UserTable.tsx:107 +#: src/tables/settings/UserTable.tsx:106 msgid "Is Staff" msgstr "" -#: src/tables/settings/UserTable.tsx:108 +#: src/tables/settings/UserTable.tsx:107 msgid "Designates whether the user can log into the django admin site." msgstr "" -#: src/tables/settings/UserTable.tsx:112 +#: src/tables/settings/UserTable.tsx:111 msgid "Is Superuser" msgstr "" -#: src/tables/settings/UserTable.tsx:113 +#: src/tables/settings/UserTable.tsx:112 msgid "Designates that this user has all permissions without explicitly assigning them." msgstr "" -#: src/tables/settings/UserTable.tsx:123 +#: src/tables/settings/UserTable.tsx:122 msgid "You cannot edit the rights for the currently logged-in user." msgstr "" -#: src/tables/settings/UserTable.tsx:154 +#: src/tables/settings/UserTable.tsx:153 msgid "No groups" msgstr "" -#: src/tables/settings/UserTable.tsx:245 +#: src/tables/settings/UserTable.tsx:244 msgid "Delete user" msgstr "" -#: src/tables/settings/UserTable.tsx:246 +#: src/tables/settings/UserTable.tsx:245 msgid "User deleted" msgstr "" -#: src/tables/settings/UserTable.tsx:248 +#: src/tables/settings/UserTable.tsx:247 msgid "Are you sure you want to delete this user?" msgstr "" -#: src/tables/settings/UserTable.tsx:254 -#: src/tables/settings/UserTable.tsx:272 +#: src/tables/settings/UserTable.tsx:253 +#: src/tables/settings/UserTable.tsx:271 msgid "Add user" msgstr "" -#: src/tables/settings/UserTable.tsx:262 +#: src/tables/settings/UserTable.tsx:261 msgid "Added user" msgstr "" -#: src/tables/settings/UserTable.tsx:285 +#: src/tables/settings/UserTable.tsx:284 msgid "Show active users" msgstr "" -#: src/tables/settings/UserTable.tsx:289 +#: src/tables/settings/UserTable.tsx:288 msgid "Staff" msgstr "" -#: src/tables/settings/UserTable.tsx:290 +#: src/tables/settings/UserTable.tsx:289 msgid "Show staff users" msgstr "" #: src/tables/settings/UserTable.tsx:294 -msgid "Superuser" -msgstr "" - -#: src/tables/settings/UserTable.tsx:295 msgid "Show superusers" msgstr "" -#: src/tables/settings/UserTable.tsx:305 +#: src/tables/settings/UserTable.tsx:304 msgid "Edit user" msgstr "" +#: src/tables/stock/InstalledItemsTable.tsx:37 +#: src/tables/stock/InstalledItemsTable.tsx:90 +msgid "Install Item" +msgstr "" + +#: src/tables/stock/InstalledItemsTable.tsx:39 +msgid "Item installed" +msgstr "" + +#: src/tables/stock/InstalledItemsTable.tsx:50 +msgid "Uninstall Item" +msgstr "" + +#: src/tables/stock/InstalledItemsTable.tsx:52 +msgid "Item uninstalled" +msgstr "" + +#: src/tables/stock/InstalledItemsTable.tsx:108 +msgid "Uninstall stock item" +msgstr "" + #: src/tables/stock/LocationTypesTable.tsx:39 #: src/tables/stock/LocationTypesTable.tsx:109 msgid "Add Location Type" @@ -7620,276 +8881,272 @@ msgstr "" msgid "Icon" msgstr "" -#: src/tables/stock/StockItemTable.tsx:101 +#: src/tables/stock/StockItemTable.tsx:90 msgid "This stock item is in production" msgstr "" -#: src/tables/stock/StockItemTable.tsx:110 +#: src/tables/stock/StockItemTable.tsx:97 msgid "This stock item has been assigned to a sales order" msgstr "" -#: src/tables/stock/StockItemTable.tsx:119 +#: src/tables/stock/StockItemTable.tsx:104 msgid "This stock item has been assigned to a customer" msgstr "" -#: src/tables/stock/StockItemTable.tsx:128 +#: src/tables/stock/StockItemTable.tsx:111 msgid "This stock item is installed in another stock item" msgstr "" -#: src/tables/stock/StockItemTable.tsx:137 +#: src/tables/stock/StockItemTable.tsx:118 msgid "This stock item has been consumed by a build order" msgstr "" -#: src/tables/stock/StockItemTable.tsx:146 +#: src/tables/stock/StockItemTable.tsx:125 +msgid "This stock item is unavailable" +msgstr "" + +#: src/tables/stock/StockItemTable.tsx:134 msgid "This stock item has expired" msgstr "" -#: src/tables/stock/StockItemTable.tsx:150 +#: src/tables/stock/StockItemTable.tsx:138 msgid "This stock item is stale" msgstr "" -#: src/tables/stock/StockItemTable.tsx:161 +#: src/tables/stock/StockItemTable.tsx:150 msgid "This stock item is fully allocated" msgstr "" -#: src/tables/stock/StockItemTable.tsx:168 +#: src/tables/stock/StockItemTable.tsx:157 msgid "This stock item is partially allocated" msgstr "" -#: src/tables/stock/StockItemTable.tsx:196 +#: src/tables/stock/StockItemTable.tsx:185 msgid "This stock item has been depleted" msgstr "" -#: src/tables/stock/StockItemTable.tsx:232 +#: src/tables/stock/StockItemTable.tsx:280 msgid "Stocktake Date" msgstr "" -#: src/tables/stock/StockItemTable.tsx:236 -msgid "Expiry Date" -msgstr "" - -#: src/tables/stock/StockItemTable.tsx:260 -msgid "Stock Value" -msgstr "" - -#: src/tables/stock/StockItemTable.tsx:290 +#: src/tables/stock/StockItemTable.tsx:294 msgid "Show stock for active parts" msgstr "" -#: src/tables/stock/StockItemTable.tsx:295 +#: src/tables/stock/StockItemTable.tsx:299 msgid "Filter by stock status" msgstr "" #: src/tables/stock/StockItemTable.tsx:301 -msgid "Show stock for assmebled parts" +#~ msgid "Show stock for assmebled parts" +#~ msgstr "Show stock for assmebled parts" + +#: src/tables/stock/StockItemTable.tsx:305 +msgid "Show stock for assembled parts" msgstr "" -#: src/tables/stock/StockItemTable.tsx:306 +#: src/tables/stock/StockItemTable.tsx:310 msgid "Show items which have been allocated" msgstr "" -#: src/tables/stock/StockItemTable.tsx:311 +#: src/tables/stock/StockItemTable.tsx:315 msgid "Show items which are available" msgstr "" -#: src/tables/stock/StockItemTable.tsx:315 +#: src/tables/stock/StockItemTable.tsx:319 #: src/tables/stock/StockLocationTable.tsx:44 msgid "Include Sublocations" msgstr "" -#: src/tables/stock/StockItemTable.tsx:316 +#: src/tables/stock/StockItemTable.tsx:320 msgid "Include stock in sublocations" msgstr "" -#: src/tables/stock/StockItemTable.tsx:320 +#: src/tables/stock/StockItemTable.tsx:324 msgid "Depleted" msgstr "" -#: src/tables/stock/StockItemTable.tsx:321 +#: src/tables/stock/StockItemTable.tsx:325 msgid "Show depleted stock items" msgstr "" -#: src/tables/stock/StockItemTable.tsx:326 +#: src/tables/stock/StockItemTable.tsx:330 msgid "Show items which are in stock" msgstr "" -#: src/tables/stock/StockItemTable.tsx:331 +#: src/tables/stock/StockItemTable.tsx:335 msgid "Show items which are in production" msgstr "" -#: src/tables/stock/StockItemTable.tsx:336 +#: src/tables/stock/StockItemTable.tsx:340 msgid "Include stock items for variant parts" msgstr "" -#: src/tables/stock/StockItemTable.tsx:341 +#: src/tables/stock/StockItemTable.tsx:345 msgid "Show stock items which are installed in other items" msgstr "" -#: src/tables/stock/StockItemTable.tsx:345 +#: src/tables/stock/StockItemTable.tsx:349 msgid "Sent to Customer" msgstr "" -#: src/tables/stock/StockItemTable.tsx:346 +#: src/tables/stock/StockItemTable.tsx:350 msgid "Show items which have been sent to a customer" msgstr "" -#: src/tables/stock/StockItemTable.tsx:350 +#: src/tables/stock/StockItemTable.tsx:354 msgid "Is Serialized" msgstr "" -#: src/tables/stock/StockItemTable.tsx:351 +#: src/tables/stock/StockItemTable.tsx:355 msgid "Show items which have a serial number" msgstr "" -#: src/tables/stock/StockItemTable.tsx:358 +#: src/tables/stock/StockItemTable.tsx:362 msgid "Has Batch Code" msgstr "" -#: src/tables/stock/StockItemTable.tsx:359 +#: src/tables/stock/StockItemTable.tsx:363 msgid "Show items which have a batch code" msgstr "" -#: src/tables/stock/StockItemTable.tsx:365 +#: src/tables/stock/StockItemTable.tsx:369 msgid "Show tracked items" msgstr "" -#: src/tables/stock/StockItemTable.tsx:369 +#: src/tables/stock/StockItemTable.tsx:373 msgid "Has Purchase Price" msgstr "" -#: src/tables/stock/StockItemTable.tsx:370 +#: src/tables/stock/StockItemTable.tsx:374 msgid "Show items which have a purchase price" msgstr "" -#: src/tables/stock/StockItemTable.tsx:378 +#: src/tables/stock/StockItemTable.tsx:382 msgid "External Location" msgstr "" -#: src/tables/stock/StockItemTable.tsx:379 +#: src/tables/stock/StockItemTable.tsx:383 msgid "Show items in an external location" msgstr "" -#: src/tables/stock/StockItemTable.tsx:451 +#: src/tables/stock/StockItemTable.tsx:456 msgid "Add a new stock item" msgstr "" -#: src/tables/stock/StockItemTable.tsx:460 +#: src/tables/stock/StockItemTable.tsx:465 msgid "Remove some quantity from a stock item" msgstr "" -#: src/tables/stock/StockItemTable.tsx:482 +#: src/tables/stock/StockItemTable.tsx:487 msgid "Move Stock items to new locations" msgstr "" -#: src/tables/stock/StockItemTable.tsx:489 +#: src/tables/stock/StockItemTable.tsx:494 msgid "Change stock status" msgstr "" -#: src/tables/stock/StockItemTable.tsx:491 +#: src/tables/stock/StockItemTable.tsx:496 msgid "Change the status of stock items" msgstr "" -#: src/tables/stock/StockItemTable.tsx:498 +#: src/tables/stock/StockItemTable.tsx:503 msgid "Merge stock" msgstr "" -#: src/tables/stock/StockItemTable.tsx:500 +#: src/tables/stock/StockItemTable.tsx:505 msgid "Merge stock items" msgstr "" -#: src/tables/stock/StockItemTable.tsx:509 -#: src/tables/stock/StockItemTable.tsx:516 +#: src/tables/stock/StockItemTable.tsx:514 +#: src/tables/stock/StockItemTable.tsx:521 msgid "Order new stock" msgstr "" -#: src/tables/stock/StockItemTable.tsx:514 +#: src/tables/stock/StockItemTable.tsx:519 msgid "Assign to customer" msgstr "" -#: src/tables/stock/StockItemTable.tsx:523 +#: src/tables/stock/StockItemTable.tsx:528 msgid "Delete stock" msgstr "" -#: src/tables/stock/StockItemTable.tsx:525 -msgid "Delete stock items" -msgstr "" +#: src/tables/stock/StockItemTable.tsx:528 +#~ msgid "Delete stock items" +#~ msgstr "Delete stock items" -#: src/tables/stock/StockItemTestResultTable.tsx:131 +#: src/tables/stock/StockItemTestResultTable.tsx:137 msgid "Test" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:157 +#: src/tables/stock/StockItemTestResultTable.tsx:163 msgid "Test result for installed stock item" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:168 -msgid "Result" -msgstr "" - -#: src/tables/stock/StockItemTestResultTable.tsx:190 +#: src/tables/stock/StockItemTestResultTable.tsx:196 msgid "Attachment" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:206 +#: src/tables/stock/StockItemTestResultTable.tsx:212 msgid "Test station" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:226 +#: src/tables/stock/StockItemTestResultTable.tsx:234 msgid "Finished" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:268 -#: src/tables/stock/StockItemTestResultTable.tsx:339 +#: src/tables/stock/StockItemTestResultTable.tsx:286 +#: src/tables/stock/StockItemTestResultTable.tsx:357 msgid "Edit Test Result" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:270 +#: src/tables/stock/StockItemTestResultTable.tsx:288 msgid "Test result updated" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:276 -#: src/tables/stock/StockItemTestResultTable.tsx:348 +#: src/tables/stock/StockItemTestResultTable.tsx:294 +#: src/tables/stock/StockItemTestResultTable.tsx:366 msgid "Delete Test Result" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:278 +#: src/tables/stock/StockItemTestResultTable.tsx:296 msgid "Test result deleted" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:292 +#: src/tables/stock/StockItemTestResultTable.tsx:310 msgid "Test Passed" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:293 +#: src/tables/stock/StockItemTestResultTable.tsx:311 msgid "Test result has been recorded" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:300 +#: src/tables/stock/StockItemTestResultTable.tsx:318 msgid "Failed to record test result" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:317 +#: src/tables/stock/StockItemTestResultTable.tsx:335 msgid "Pass Test" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:366 +#: src/tables/stock/StockItemTestResultTable.tsx:384 msgid "Show results for required tests" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:370 +#: src/tables/stock/StockItemTestResultTable.tsx:388 msgid "Include Installed" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:371 +#: src/tables/stock/StockItemTestResultTable.tsx:389 msgid "Show results for installed stock items" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:375 -#: src/tables/stock/TestStatisticsTable.tsx:74 +#: src/tables/stock/StockItemTestResultTable.tsx:393 +#: src/tables/stock/TestStatisticsTable.tsx:62 msgid "Passed" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:376 +#: src/tables/stock/StockItemTestResultTable.tsx:394 msgid "Show only passed tests" msgstr "" @@ -7922,28 +9179,32 @@ msgid "Filter by location type" msgstr "" #: src/tables/stock/StockLocationTable.tsx:107 -#: src/tables/stock/StockLocationTable.tsx:133 +#: src/tables/stock/StockLocationTable.tsx:134 msgid "Add Stock Location" msgstr "" -#: src/tables/stock/StockTrackingTable.tsx:64 +#: src/tables/stock/StockTrackingTable.tsx:68 msgid "Added" msgstr "" -#: src/tables/stock/StockTrackingTable.tsx:69 +#: src/tables/stock/StockTrackingTable.tsx:73 msgid "Removed" msgstr "" #: src/tables/stock/StockTrackingTable.tsx:198 +msgid "Details" +msgstr "" + +#: src/tables/stock/StockTrackingTable.tsx:213 msgid "No user information" msgstr "" -#: src/tables/stock/TestStatisticsTable.tsx:46 -#: src/tables/stock/TestStatisticsTable.tsx:76 +#: src/tables/stock/TestStatisticsTable.tsx:34 +#: src/tables/stock/TestStatisticsTable.tsx:64 msgid "Total" msgstr "" -#: src/tables/stock/TestStatisticsTable.tsx:75 +#: src/tables/stock/TestStatisticsTable.tsx:63 msgid "Failed" msgstr "" diff --git a/src/frontend/src/locales/sr/messages.po b/src/frontend/src/locales/sr/messages.po index dcc3969acd..b8d3ca1ea4 100644 --- a/src/frontend/src/locales/sr/messages.po +++ b/src/frontend/src/locales/sr/messages.po @@ -8,15 +8,15 @@ msgstr "" "Language: sr\n" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"PO-Revision-Date: 2024-08-20 19:51\n" +"PO-Revision-Date: 2024-11-04 03:14\n" "Last-Translator: \n" "Language-Team: Serbian (Latin)\n" "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" "X-Crowdin-Project: inventree\n" "X-Crowdin-Project-ID: 452300\n" "X-Crowdin-Language: sr-CS\n" -"X-Crowdin-File: /[inventree.InvenTree] l10/src/frontend/src/locales/en/messages.po\n" -"X-Crowdin-File-ID: 205\n" +"X-Crowdin-File: /src/frontend/src/locales/en/messages.po\n" +"X-Crowdin-File-ID: 252\n" #: src/components/Boundary.tsx:12 msgid "Error rendering component" @@ -27,8 +27,8 @@ msgid "An error occurred while rendering this component. Refer to the console fo msgstr "" #: src/components/DashboardItemProxy.tsx:34 -msgid "Title" -msgstr "Naslov" +#~ msgid "Title" +#~ msgstr "Title" #: src/components/buttons/AdminButton.tsx:80 msgid "Open in admin interface" @@ -38,83 +38,100 @@ msgstr "" #~ msgid "Copy to clipboard" #~ msgstr "Copy to clipboard" -#: src/components/buttons/CopyButton.tsx:24 +#: src/components/buttons/CopyButton.tsx:29 msgid "Copied" msgstr "" -#: src/components/buttons/CopyButton.tsx:24 +#: src/components/buttons/CopyButton.tsx:29 msgid "Copy" msgstr "" -#: src/components/buttons/PrintingActions.tsx:93 +#: src/components/buttons/PrintingActions.tsx:97 msgid "Print Label" msgstr "" -#: src/components/buttons/PrintingActions.tsx:99 +#: src/components/buttons/PrintingActions.tsx:103 msgid "Print" msgstr "" -#: src/components/buttons/PrintingActions.tsx:100 +#: src/components/buttons/PrintingActions.tsx:104 msgid "Label printing completed successfully" msgstr "" -#: src/components/buttons/PrintingActions.tsx:106 -#: src/components/buttons/PrintingActions.tsx:144 -#: src/components/editors/NotesEditor.tsx:65 -#: src/components/editors/NotesEditor.tsx:165 -#: src/components/forms/fields/ApiFormField.tsx:319 +#: src/components/buttons/PrintingActions.tsx:110 +#: src/components/buttons/PrintingActions.tsx:148 +#: src/components/editors/NotesEditor.tsx:73 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:154 +#: src/components/forms/fields/ApiFormField.tsx:328 +#: src/components/forms/fields/TableField.tsx:43 #: src/components/importer/ImportDataSelector.tsx:187 -#: src/components/importer/ImporterColumnSelector.tsx:207 +#: src/components/importer/ImporterColumnSelector.tsx:210 #: src/components/modals/LicenseModal.tsx:75 -#: src/components/nav/SearchDrawer.tsx:448 +#: src/components/nav/SearchDrawer.tsx:458 +#: src/components/render/ModelType.tsx:290 #: src/pages/ErrorPage.tsx:11 -#: src/pages/part/PartPricingPanel.tsx:67 -#: src/tables/InvenTreeTable.tsx:495 +#: src/pages/part/PartPricingPanel.tsx:71 +#: src/tables/InvenTreeTable.tsx:481 #: src/tables/bom/BomTable.tsx:450 -#: src/tables/stock/StockItemTestResultTable.tsx:299 +#: src/tables/stock/StockItemTestResultTable.tsx:317 msgid "Error" msgstr "Grеška" -#: src/components/buttons/PrintingActions.tsx:107 +#: src/components/buttons/PrintingActions.tsx:111 msgid "The label could not be generated" msgstr "" -#: src/components/buttons/PrintingActions.tsx:122 +#: src/components/buttons/PrintingActions.tsx:126 msgid "Print Report" msgstr "" -#: src/components/buttons/PrintingActions.tsx:138 +#: src/components/buttons/PrintingActions.tsx:142 msgid "Generate" msgstr "" -#: src/components/buttons/PrintingActions.tsx:139 +#: src/components/buttons/PrintingActions.tsx:143 msgid "Report printing completed successfully" msgstr "" -#: src/components/buttons/PrintingActions.tsx:145 +#: src/components/buttons/PrintingActions.tsx:149 msgid "The report could not be generated" msgstr "" -#: src/components/buttons/PrintingActions.tsx:173 +#: src/components/buttons/PrintingActions.tsx:177 msgid "Printing Actions" msgstr "" -#: src/components/buttons/PrintingActions.tsx:178 +#: src/components/buttons/PrintingActions.tsx:182 msgid "Print Labels" msgstr "" -#: src/components/buttons/PrintingActions.tsx:184 +#: src/components/buttons/PrintingActions.tsx:188 msgid "Print Reports" msgstr "" +#: src/components/buttons/RemoveRowButton.tsx:8 +msgid "Remove this row" +msgstr "" + #: src/components/buttons/ScanButton.tsx:15 -msgid "Scan QR code" -msgstr "Skeniraj QR kod" +#: src/components/nav/NavigationDrawer.tsx:117 +#: src/forms/PurchaseOrderForms.tsx:379 +#: src/forms/PurchaseOrderForms.tsx:473 +msgid "Scan Barcode" +msgstr "" + +#: src/components/buttons/ScanButton.tsx:15 +#~ msgid "Scan QR code" +#~ msgstr "Scan QR code" #: src/components/buttons/ScanButton.tsx:20 -msgid "Open QR code scanner" +msgid "Open Barcode Scanner" msgstr "" +#: src/components/buttons/ScanButton.tsx:20 +#~ msgid "Open QR code scanner" +#~ msgstr "Open QR code scanner" + #: src/components/buttons/SpotlightButton.tsx:14 msgid "Open spotlight" msgstr "" @@ -128,85 +145,347 @@ msgid "Fail" msgstr "" #: src/components/buttons/YesNoButton.tsx:33 -#: src/tables/Filter.tsx:52 +#: src/tables/Filter.tsx:61 msgid "Yes" msgstr "Da" #: src/components/buttons/YesNoButton.tsx:33 -#: src/tables/Filter.tsx:53 +#: src/tables/Filter.tsx:62 msgid "No" msgstr "Ne" -#: src/components/details/Details.tsx:301 +#: src/components/dashboard/DashboardLayout.tsx:286 +msgid "No Widgets Selected" +msgstr "" + +#: src/components/dashboard/DashboardLayout.tsx:289 +msgid "Use the menu to add widgets to the dashboard" +msgstr "" + +#: src/components/dashboard/DashboardMenu.tsx:59 +#: src/components/dashboard/DashboardMenu.tsx:126 +msgid "Accept Layout" +msgstr "" + +#: src/components/dashboard/DashboardMenu.tsx:91 +#: src/components/nav/NavigationDrawer.tsx:71 +#: src/defaults/actions.tsx:17 +#: src/defaults/links.tsx:9 +#: src/pages/Index/Settings/UserSettings.tsx:47 +msgid "Dashboard" +msgstr "" + +#: src/components/dashboard/DashboardMenu.tsx:99 +msgid "Edit Layout" +msgstr "" + +#: src/components/dashboard/DashboardMenu.tsx:108 +msgid "Add Widget" +msgstr "" + +#: src/components/dashboard/DashboardMenu.tsx:117 +msgid "Remove Widgets" +msgstr "" + +#: src/components/dashboard/DashboardWidget.tsx:65 +msgid "Remove this widget from the dashboard" +msgstr "" + +#: src/components/dashboard/DashboardWidgetDrawer.tsx:77 +msgid "Filter dashboard widgets" +msgstr "" + +#: src/components/dashboard/DashboardWidgetDrawer.tsx:98 +msgid "Add this widget to the dashboard" +msgstr "" + +#: src/components/dashboard/DashboardWidgetDrawer.tsx:123 +msgid "No Widgets Available" +msgstr "" + +#: src/components/dashboard/DashboardWidgetDrawer.tsx:124 +msgid "There are no more widgets available for the dashboard" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:19 +msgid "Subscribed Parts" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:20 +msgid "Show the number of parts which you have subscribed to" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:26 +msgid "Subscribed Categories" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:27 +msgid "Show the number of part categories which you have subscribed to" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:35 +#: src/pages/part/PartSchedulingDetail.tsx:304 +#: src/tables/part/PartTable.tsx:238 +msgid "Low Stock" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:37 +msgid "Show the number of parts which are low on stock" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:43 +msgid "Expired Stock Items" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:45 +msgid "Show the number of stock items which have expired" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:51 +msgid "Stale Stock Items" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:53 +msgid "Show the number of stock items which are stale" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:59 +msgid "Active Build Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:61 +msgid "Show the number of build orders which are currently active" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:66 +msgid "Overdue Build Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:68 +msgid "Show the number of build orders which are overdue" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:73 +msgid "Assigned Build Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:75 +msgid "Show the number of build orders which are assigned to you" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:80 +msgid "Active Sales Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:82 +msgid "Show the number of sales orders which are currently active" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:87 +msgid "Overdue Sales Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:89 +msgid "Show the number of sales orders which are overdue" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:94 +msgid "Assigned Sales Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:96 +msgid "Show the number of sales orders which are assigned to you" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:101 +msgid "Active Purchase Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:103 +msgid "Show the number of purchase orders which are currently active" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:108 +msgid "Overdue Purchase Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:110 +msgid "Show the number of purchase orders which are overdue" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:115 +msgid "Assigned Purchase Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:117 +msgid "Show the number of purchase orders which are assigned to you" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:122 +msgid "Active Return Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:124 +msgid "Show the number of return orders which are currently active" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:129 +msgid "Overdue Return Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:131 +msgid "Show the number of return orders which are overdue" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:136 +msgid "Assigned Return Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:138 +msgid "Show the number of return orders which are assigned to you" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:149 +#: src/components/dashboard/widgets/GetStartedWidget.tsx:15 +#: src/defaults/links.tsx:38 +msgid "Getting Started" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:150 +#: src/defaults/links.tsx:41 +msgid "Getting started with InvenTree" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:157 +#: src/components/dashboard/widgets/NewsWidget.tsx:123 +msgid "News Updates" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:158 +msgid "The latest news from InvenTree" +msgstr "" + +#: src/components/dashboard/widgets/ColorToggleWidget.tsx:18 +#: src/components/nav/MainMenu.tsx:77 +msgid "Change Color Mode" +msgstr "" + +#: src/components/dashboard/widgets/ColorToggleWidget.tsx:23 +msgid "Change the color mode of the user interface" +msgstr "" + +#: src/components/dashboard/widgets/LanguageSelectWidget.tsx:18 +msgid "Change Language" +msgstr "" + +#: src/components/dashboard/widgets/LanguageSelectWidget.tsx:23 +msgid "Change the language of the user interface" +msgstr "" + +#: src/components/dashboard/widgets/NewsWidget.tsx:61 +#: src/components/nav/NotificationDrawer.tsx:88 +#: src/pages/Notifications.tsx:73 +msgid "Mark as read" +msgstr "" + +#: src/components/dashboard/widgets/NewsWidget.tsx:115 +msgid "Requires Superuser" +msgstr "" + +#: src/components/dashboard/widgets/NewsWidget.tsx:116 +msgid "This widget requires superuser permissions" +msgstr "" + +#: src/components/dashboard/widgets/NewsWidget.tsx:133 +msgid "No News" +msgstr "" + +#: src/components/dashboard/widgets/NewsWidget.tsx:134 +msgid "There are no unread news items" +msgstr "" + +#: src/components/details/Details.tsx:300 msgid "No name defined" msgstr "" -#: src/components/details/DetailsImage.tsx:65 +#: src/components/details/DetailsImage.tsx:69 msgid "Remove Image" msgstr "" -#: src/components/details/DetailsImage.tsx:68 +#: src/components/details/DetailsImage.tsx:72 msgid "Remove the associated image from this item?" msgstr "" -#: src/components/details/DetailsImage.tsx:71 -#: src/forms/StockForms.tsx:533 +#: src/components/details/DetailsImage.tsx:75 +#: src/forms/StockForms.tsx:651 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:199 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:306 -#: src/pages/stock/StockDetail.tsx:526 +#: src/pages/stock/StockDetail.tsx:690 msgid "Remove" msgstr "" -#: src/components/details/DetailsImage.tsx:71 -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:158 -#: src/components/items/ActionDropdown.tsx:215 -#: src/components/items/ActionDropdown.tsx:216 -#: src/contexts/ThemeContext.tsx:43 +#: src/components/details/DetailsImage.tsx:75 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:184 +#: src/components/items/ActionDropdown.tsx:268 +#: src/components/items/ActionDropdown.tsx:269 +#: src/contexts/ThemeContext.tsx:45 #: src/hooks/UseForm.tsx:40 -#: src/tables/FilterSelectDrawer.tsx:205 -#: src/tables/build/BuildOutputTable.tsx:286 +#: src/tables/FilterSelectDrawer.tsx:241 +#: src/tables/RowActions.tsx:59 +#: src/tables/build/BuildOutputTable.tsx:434 msgid "Cancel" msgstr "" -#: src/components/details/DetailsImage.tsx:97 +#: src/components/details/DetailsImage.tsx:101 msgid "Drag and drop to upload" msgstr "" -#: src/components/details/DetailsImage.tsx:100 +#: src/components/details/DetailsImage.tsx:104 msgid "Click to select file(s)" msgstr "" -#: src/components/details/DetailsImage.tsx:226 +#: src/components/details/DetailsImage.tsx:230 msgid "Clear" msgstr "" -#: src/components/details/DetailsImage.tsx:232 -#: src/components/forms/ApiForm.tsx:627 -#: src/contexts/ThemeContext.tsx:43 -#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:60 +#: src/components/details/DetailsImage.tsx:236 +#: src/components/forms/ApiForm.tsx:660 +#: src/contexts/ThemeContext.tsx:45 msgid "Submit" msgstr "Podnesi" -#: src/components/details/DetailsImage.tsx:272 +#: src/components/details/DetailsImage.tsx:280 msgid "Select from existing images" msgstr "" -#: src/components/details/DetailsImage.tsx:280 +#: src/components/details/DetailsImage.tsx:288 msgid "Select Image" msgstr "" -#: src/components/details/DetailsImage.tsx:292 +#: src/components/details/DetailsImage.tsx:304 +msgid "Download remote image" +msgstr "" + +#: src/components/details/DetailsImage.tsx:319 msgid "Upload new image" msgstr "" -#: src/components/details/DetailsImage.tsx:299 +#: src/components/details/DetailsImage.tsx:326 msgid "Upload Image" msgstr "" -#: src/components/details/DetailsImage.tsx:312 +#: src/components/details/DetailsImage.tsx:339 msgid "Delete image" msgstr "" +#: src/components/details/DetailsImage.tsx:373 +msgid "Download Image" +msgstr "" + +#: src/components/details/DetailsImage.tsx:378 +msgid "Image downloaded successfully" +msgstr "" + #: src/components/details/PartIcons.tsx:43 #~ msgid "Part is a template part (variants can be made from this part)" #~ msgstr "Part is a template part (variants can be made from this part)" @@ -235,36 +514,57 @@ msgstr "" #~ msgid "Part is virtual (not a physical part)" #~ msgstr "Part is virtual (not a physical part)" -#: src/components/editors/NotesEditor.tsx:66 +#: src/components/editors/NotesEditor.tsx:74 msgid "Image upload failed" msgstr "" -#: src/components/editors/NotesEditor.tsx:156 -#: src/components/forms/ApiForm.tsx:467 +#: src/components/editors/NotesEditor.tsx:83 +#: src/components/editors/NotesEditor.tsx:119 +#: src/components/forms/ApiForm.tsx:475 #: src/tables/bom/BomTable.tsx:441 msgid "Success" msgstr "Uspešno" -#: src/components/editors/NotesEditor.tsx:157 +#: src/components/editors/NotesEditor.tsx:84 +msgid "Image uploaded successfully" +msgstr "" + +#: src/components/editors/NotesEditor.tsx:120 msgid "Notes saved successfully" msgstr "" -#: src/components/editors/NotesEditor.tsx:166 +#: src/components/editors/NotesEditor.tsx:131 msgid "Failed to save notes" msgstr "" -#: src/components/editors/NotesEditor.tsx:198 -msgid "Preview Notes" +#: src/components/editors/NotesEditor.tsx:134 +msgid "Error Saving Notes" msgstr "" -#: src/components/editors/NotesEditor.tsx:198 -msgid "Edit Notes" -msgstr "" +#: src/components/editors/NotesEditor.tsx:151 +#~ msgid "Disable Editing" +#~ msgstr "Disable Editing" -#: src/components/editors/NotesEditor.tsx:212 +#: src/components/editors/NotesEditor.tsx:154 msgid "Save Notes" msgstr "" +#: src/components/editors/NotesEditor.tsx:173 +msgid "Close Editor" +msgstr "" + +#: src/components/editors/NotesEditor.tsx:180 +msgid "Enable Editing" +msgstr "" + +#: src/components/editors/NotesEditor.tsx:198 +#~ msgid "Preview Notes" +#~ msgstr "Preview Notes" + +#: src/components/editors/NotesEditor.tsx:198 +#~ msgid "Edit Notes" +#~ msgstr "Edit Notes" + #: src/components/editors/TemplateEditor/CodeEditor/index.tsx:9 msgid "Code" msgstr "" @@ -281,40 +581,44 @@ msgstr "" msgid "PDF Preview" msgstr "" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:104 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:115 msgid "Error loading template" msgstr "" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:116 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:127 msgid "Error saving template" msgstr "" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:146 -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:274 -msgid "Save & Reload Preview" -msgstr "" - -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:151 -msgid "Are you sure you want to Save & Reload the preview?" -msgstr "" - #: src/components/editors/TemplateEditor/TemplateEditor.tsx:151 #~ msgid "Save & Reload preview?" #~ msgstr "Save & Reload preview?" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:153 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:155 +msgid "Could not load the template from the server." +msgstr "" + +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:172 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:303 +msgid "Save & Reload Preview" +msgstr "" + +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:177 +msgid "Are you sure you want to Save & Reload the preview?" +msgstr "" + +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:179 msgid "To render the preview the current template needs to be replaced on the server with your modifications which may break the label if it is under active use. Do you want to proceed?" msgstr "" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:157 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:183 msgid "Save & Reload" msgstr "" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:189 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:215 msgid "Preview updated" msgstr "" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:190 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:216 msgid "The preview has been updated successfully." msgstr "" @@ -322,15 +626,15 @@ msgstr "" #~ msgid "Save & Reload preview" #~ msgstr "Save & Reload preview" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:266 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:295 msgid "Reload preview" msgstr "" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:267 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:296 msgid "Use the currently stored template from the server" msgstr "" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:275 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:304 msgid "Save the current template and reload the preview" msgstr "" @@ -338,11 +642,11 @@ msgstr "" #~ msgid "to preview" #~ msgstr "to preview" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:333 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:365 msgid "Select instance to preview" msgstr "" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:377 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:409 msgid "Error rendering template" msgstr "" @@ -379,6 +683,7 @@ msgid "This page does not exist" msgstr "" #: src/components/errors/PermissionDenied.tsx:8 +#: src/functions/notifications.tsx:24 msgid "Permission Denied" msgstr "" @@ -394,8 +699,8 @@ msgstr "" msgid "A server error occurred" msgstr "" -#: src/components/forms/ApiForm.tsx:151 -#: src/components/forms/ApiForm.tsx:555 +#: src/components/forms/ApiForm.tsx:154 +#: src/components/forms/ApiForm.tsx:579 msgid "Form Error" msgstr "Greška Obrasca" @@ -403,22 +708,22 @@ msgstr "Greška Obrasca" #~ msgid "Form Errors Exist" #~ msgstr "Form Errors Exist" -#: src/components/forms/ApiForm.tsx:563 +#: src/components/forms/ApiForm.tsx:587 msgid "Errors exist for one or more form fields" msgstr "" -#: src/components/forms/ApiForm.tsx:665 -#: src/tables/plugin/PluginListTable.tsx:388 +#: src/components/forms/ApiForm.tsx:698 +#: src/tables/plugin/PluginListTable.tsx:195 msgid "Update" msgstr "Obnovi" -#: src/components/forms/ApiForm.tsx:685 -#: src/components/items/ActionDropdown.tsx:195 +#: src/components/forms/ApiForm.tsx:718 +#: src/components/items/ActionDropdown.tsx:248 #: src/hooks/UseForm.tsx:122 -#: src/pages/Index/Scan.tsx:343 +#: src/pages/Index/Scan.tsx:357 #: src/pages/Notifications.tsx:123 -#: src/tables/RowActions.tsx:43 -#: src/tables/plugin/PluginListTable.tsx:420 +#: src/tables/RowActions.tsx:49 +#: src/tables/plugin/PluginListTable.tsx:232 msgid "Delete" msgstr "Obriši" @@ -428,14 +733,6 @@ msgstr "Obriši" #~ msgid "Check your your input and try again." #~ msgstr "Check your your input and try again." -#: src/components/forms/AuthenticationForm.tsx:51 -msgid "Login successful" -msgstr "Prijava uspešna" - -#: src/components/forms/AuthenticationForm.tsx:52 -msgid "Logged in successfully" -msgstr "" - #: src/components/forms/AuthenticationForm.tsx:52 #~ msgid "Welcome back!" #~ msgstr "Welcome back!" @@ -444,14 +741,22 @@ msgstr "" #~ msgid "Login successfull" #~ msgstr "Login successfull" -#: src/components/forms/AuthenticationForm.tsx:58 +#: src/components/forms/AuthenticationForm.tsx:55 +msgid "Login successful" +msgstr "Prijava uspešna" + +#: src/components/forms/AuthenticationForm.tsx:56 +msgid "Logged in successfully" +msgstr "" + +#: src/components/forms/AuthenticationForm.tsx:61 msgid "Login failed" msgstr "Neuspešna prijava" -#: src/components/forms/AuthenticationForm.tsx:59 -#: src/components/forms/AuthenticationForm.tsx:76 -#: src/components/forms/AuthenticationForm.tsx:211 -#: src/functions/auth.tsx:164 +#: src/components/forms/AuthenticationForm.tsx:62 +#: src/components/forms/AuthenticationForm.tsx:79 +#: src/components/forms/AuthenticationForm.tsx:214 +#: src/functions/auth.tsx:175 msgid "Check your input and try again." msgstr "Proverite svoj unos i pokušajte ponovno." @@ -460,45 +765,46 @@ msgstr "Proverite svoj unos i pokušajte ponovno." #~ msgid "Mail delivery successfull" #~ msgstr "Mail delivery successfull" -#: src/components/forms/AuthenticationForm.tsx:70 -#: src/functions/auth.tsx:155 +#: src/components/forms/AuthenticationForm.tsx:73 +#: src/functions/auth.tsx:166 msgid "Mail delivery successful" msgstr "Isporuka pošte uspešna" -#: src/components/forms/AuthenticationForm.tsx:71 +#: src/components/forms/AuthenticationForm.tsx:74 msgid "Check your inbox for the login link. If you have an account, you will receive a login link. Check in spam too." msgstr "Proverite svoj inbox za link za prijavu. Ako imate račun, dobićete link za prijavu. Proverite i spam." -#: src/components/forms/AuthenticationForm.tsx:75 +#: src/components/forms/AuthenticationForm.tsx:78 msgid "Mail delivery failed" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:95 +#: src/components/forms/AuthenticationForm.tsx:98 msgid "Or continue with other methods" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:106 -#: src/components/forms/AuthenticationForm.tsx:227 +#: src/components/forms/AuthenticationForm.tsx:109 +#: src/components/forms/AuthenticationForm.tsx:230 +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:67 msgid "Username" msgstr "Korisničko ime" -#: src/components/forms/AuthenticationForm.tsx:107 -#: src/components/forms/AuthenticationForm.tsx:228 +#: src/components/forms/AuthenticationForm.tsx:110 +#: src/components/forms/AuthenticationForm.tsx:231 msgid "Your username" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:112 -#: src/components/forms/AuthenticationForm.tsx:240 -#: src/pages/Auth/Set-Password.tsx:106 +#: src/components/forms/AuthenticationForm.tsx:115 +#: src/components/forms/AuthenticationForm.tsx:243 +#: src/pages/Auth/Set-Password.tsx:101 msgid "Password" msgstr "Lozinka" -#: src/components/forms/AuthenticationForm.tsx:113 -#: src/components/forms/AuthenticationForm.tsx:241 +#: src/components/forms/AuthenticationForm.tsx:116 +#: src/components/forms/AuthenticationForm.tsx:244 msgid "Your password" msgstr "Vaša lozinka" -#: src/components/forms/AuthenticationForm.tsx:125 +#: src/components/forms/AuthenticationForm.tsx:128 #: src/pages/Auth/Reset.tsx:26 msgid "Reset password" msgstr "Resetujte lozinku" @@ -507,77 +813,79 @@ msgstr "Resetujte lozinku" #~ msgid "Log in" #~ msgstr "Log in" -#: src/components/forms/AuthenticationForm.tsx:134 -#: src/components/forms/AuthenticationForm.tsx:233 +#: src/components/forms/AuthenticationForm.tsx:136 +#~ msgid "I will use username and password" +#~ msgstr "I will use username and password" + +#: src/components/forms/AuthenticationForm.tsx:137 +#: src/components/forms/AuthenticationForm.tsx:236 #: src/pages/Auth/Reset.tsx:31 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:51 msgid "Email" msgstr "E-pošta" -#: src/components/forms/AuthenticationForm.tsx:135 +#: src/components/forms/AuthenticationForm.tsx:138 #: src/pages/Auth/Reset.tsx:32 -#: src/pages/Auth/Set-Password.tsx:107 +#: src/pages/Auth/Set-Password.tsx:102 msgid "We will send you a link to login - if you are registered" msgstr "Poslaćemo vam link za prijavu - ako ste registrirani" -#: src/components/forms/AuthenticationForm.tsx:136 -#~ msgid "I will use username and password" -#~ msgstr "I will use username and password" - -#: src/components/forms/AuthenticationForm.tsx:151 +#: src/components/forms/AuthenticationForm.tsx:154 msgid "Send me an email" msgstr "Pošalji mi e-poštu" -#: src/components/forms/AuthenticationForm.tsx:153 +#: src/components/forms/AuthenticationForm.tsx:156 msgid "Use username and password" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:162 +#: src/components/forms/AuthenticationForm.tsx:165 msgid "Log In" msgstr "Prijavite se" -#: src/components/forms/AuthenticationForm.tsx:164 +#: src/components/forms/AuthenticationForm.tsx:167 +#: src/pages/Auth/Reset.tsx:41 +#: src/pages/Auth/Set-Password.tsx:107 msgid "Send Email" msgstr "Pošalji e-poštu" -#: src/components/forms/AuthenticationForm.tsx:193 +#: src/components/forms/AuthenticationForm.tsx:196 msgid "Registration successful" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:194 +#: src/components/forms/AuthenticationForm.tsx:197 msgid "Please confirm your email address to complete the registration" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:210 +#: src/components/forms/AuthenticationForm.tsx:213 msgid "Input error" msgstr "Greška unosa" -#: src/components/forms/AuthenticationForm.tsx:234 +#: src/components/forms/AuthenticationForm.tsx:237 msgid "This will be used for a confirmation" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:246 +#: src/components/forms/AuthenticationForm.tsx:249 msgid "Password repeat" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:247 +#: src/components/forms/AuthenticationForm.tsx:250 msgid "Repeat password" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:259 -#: src/components/forms/AuthenticationForm.tsx:304 +#: src/components/forms/AuthenticationForm.tsx:262 +#: src/components/forms/AuthenticationForm.tsx:307 msgid "Register" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:265 +#: src/components/forms/AuthenticationForm.tsx:268 msgid "Or use SSO" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:296 +#: src/components/forms/AuthenticationForm.tsx:299 msgid "Don't have an account?" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:315 +#: src/components/forms/AuthenticationForm.tsx:318 msgid "Go back to login" msgstr "" @@ -588,19 +896,20 @@ msgstr "Host" #: src/components/forms/HostOptionsForm.tsx:42 #: src/components/forms/HostOptionsForm.tsx:70 +#: src/components/plugins/PluginDrawer.tsx:69 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:410 +#: src/pages/Index/Settings/AdminCenter/UnitManagmentPanel.tsx:19 #: src/pages/part/CategoryDetail.tsx:81 -#: src/pages/part/PartDetail.tsx:143 -#: src/pages/stock/LocationDetail.tsx:89 -#: src/tables/machine/MachineTypeTable.tsx:65 -#: src/tables/machine/MachineTypeTable.tsx:109 -#: src/tables/machine/MachineTypeTable.tsx:216 -#: src/tables/machine/MachineTypeTable.tsx:319 +#: src/pages/part/PartDetail.tsx:164 +#: src/pages/stock/LocationDetail.tsx:83 +#: src/tables/machine/MachineTypeTable.tsx:70 +#: src/tables/machine/MachineTypeTable.tsx:119 +#: src/tables/machine/MachineTypeTable.tsx:237 +#: src/tables/machine/MachineTypeTable.tsx:340 #: src/tables/plugin/PluginErrorTable.tsx:33 -#: src/tables/plugin/PluginListTable.tsx:126 #: src/tables/purchasing/ManufacturerPartParameterTable.tsx:32 #: src/tables/settings/GroupTable.tsx:147 -#: src/tables/settings/PendingTasksTable.tsx:28 +#: src/tables/settings/PendingTasksTable.tsx:32 #: src/tables/stock/LocationTypesTable.tsx:69 msgid "Name" msgstr "Ime" @@ -650,7 +959,7 @@ msgid "Uncategorized" msgstr "" #: src/components/forms/fields/IconField.tsx:209 -#: src/components/nav/Layout.tsx:70 +#: src/components/nav/Layout.tsx:77 #: src/tables/part/PartThumbTable.tsx:192 msgid "Search..." msgstr "" @@ -667,28 +976,27 @@ msgstr "" msgid "{0} icons" msgstr "" -#: src/components/forms/fields/RelatedModelField.tsx:318 -#: src/pages/Index/Settings/UserSettings.tsx:96 +#: src/components/forms/fields/RelatedModelField.tsx:319 +#: src/pages/Index/Settings/UserSettings.tsx:97 #: src/tables/Search.tsx:23 msgid "Search" msgstr "Pretraga" -#: src/components/forms/fields/RelatedModelField.tsx:319 +#: src/components/forms/fields/RelatedModelField.tsx:320 #: src/components/modals/AboutInvenTreeModal.tsx:81 -#: src/components/widgets/WidgetLayout.tsx:120 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:316 msgid "Loading" msgstr "Učitavanje" -#: src/components/forms/fields/RelatedModelField.tsx:321 +#: src/components/forms/fields/RelatedModelField.tsx:322 msgid "No results found" msgstr "Nema pronađenih rezultata" -#: src/components/forms/fields/TableField.tsx:52 -msgid "modelRenderer entry required for tables" -msgstr "" +#: src/components/forms/fields/TableField.tsx:72 +#~ msgid "modelRenderer entry required for tables" +#~ msgstr "modelRenderer entry required for tables" -#: src/components/forms/fields/TableField.tsx:76 +#: src/components/forms/fields/TableField.tsx:167 msgid "No entries available" msgstr "" @@ -741,7 +1049,7 @@ msgid "Filter by row validation status" msgstr "" #: src/components/importer/ImportDataSelector.tsx:365 -#: src/tables/build/BuildOutputTable.tsx:266 +#: src/tables/build/BuildOutputTable.tsx:407 msgid "Complete" msgstr "" @@ -749,20 +1057,21 @@ msgstr "" msgid "Filter by row completion status" msgstr "" -#: src/components/importer/ImportDataSelector.tsx:383 +#: src/components/importer/ImportDataSelector.tsx:384 msgid "Import selected rows" msgstr "" -#: src/components/importer/ImportDataSelector.tsx:398 +#: src/components/importer/ImportDataSelector.tsx:399 msgid "Processing Data" msgstr "" -#: src/components/importer/ImporterColumnSelector.tsx:50 -#: src/components/importer/ImporterColumnSelector.tsx:176 +#: src/components/importer/ImporterColumnSelector.tsx:53 +#: src/components/importer/ImporterColumnSelector.tsx:179 +#: src/components/items/ErrorItem.tsx:12 msgid "An error occurred" msgstr "" -#: src/components/importer/ImporterColumnSelector.tsx:62 +#: src/components/importer/ImporterColumnSelector.tsx:65 msgid "Select column, or leave blank to ignore this field." msgstr "" @@ -778,51 +1087,51 @@ msgstr "" #~ msgid "Imported Column Name" #~ msgstr "Imported Column Name" -#: src/components/importer/ImporterColumnSelector.tsx:182 +#: src/components/importer/ImporterColumnSelector.tsx:185 msgid "Ignore this field" msgstr "" -#: src/components/importer/ImporterColumnSelector.tsx:196 +#: src/components/importer/ImporterColumnSelector.tsx:199 msgid "Mapping data columns to database fields" msgstr "" -#: src/components/importer/ImporterColumnSelector.tsx:201 +#: src/components/importer/ImporterColumnSelector.tsx:204 msgid "Accept Column Mapping" msgstr "" -#: src/components/importer/ImporterColumnSelector.tsx:214 +#: src/components/importer/ImporterColumnSelector.tsx:217 msgid "Database Field" msgstr "" -#: src/components/importer/ImporterColumnSelector.tsx:215 +#: src/components/importer/ImporterColumnSelector.tsx:218 msgid "Field Description" msgstr "" -#: src/components/importer/ImporterColumnSelector.tsx:216 +#: src/components/importer/ImporterColumnSelector.tsx:219 msgid "Imported Column" msgstr "" -#: src/components/importer/ImporterColumnSelector.tsx:217 +#: src/components/importer/ImporterColumnSelector.tsx:220 msgid "Default Value" msgstr "" -#: src/components/importer/ImporterDrawer.tsx:44 +#: src/components/importer/ImporterDrawer.tsx:46 msgid "Upload File" msgstr "" -#: src/components/importer/ImporterDrawer.tsx:45 +#: src/components/importer/ImporterDrawer.tsx:47 msgid "Map Columns" msgstr "" -#: src/components/importer/ImporterDrawer.tsx:46 +#: src/components/importer/ImporterDrawer.tsx:48 msgid "Import Data" msgstr "" -#: src/components/importer/ImporterDrawer.tsx:47 +#: src/components/importer/ImporterDrawer.tsx:49 msgid "Process Data" msgstr "" -#: src/components/importer/ImporterDrawer.tsx:48 +#: src/components/importer/ImporterDrawer.tsx:50 msgid "Complete Import" msgstr "" @@ -830,28 +1139,28 @@ msgstr "" #~ msgid "Cancel import session" #~ msgstr "Cancel import session" -#: src/components/importer/ImporterDrawer.tsx:104 +#: src/components/importer/ImporterDrawer.tsx:106 msgid "Import Complete" msgstr "" -#: src/components/importer/ImporterDrawer.tsx:107 +#: src/components/importer/ImporterDrawer.tsx:109 msgid "Data has been imported successfully" msgstr "" -#: src/components/importer/ImporterDrawer.tsx:109 -#: src/components/importer/ImporterDrawer.tsx:118 +#: src/components/importer/ImporterDrawer.tsx:111 +#: src/components/importer/ImporterDrawer.tsx:120 msgid "Close" msgstr "" -#: src/components/importer/ImporterDrawer.tsx:115 +#: src/components/importer/ImporterDrawer.tsx:117 msgid "Unknown Status" msgstr "" -#: src/components/importer/ImporterDrawer.tsx:116 +#: src/components/importer/ImporterDrawer.tsx:118 msgid "Import session has unknown status" msgstr "" -#: src/components/importer/ImporterDrawer.tsx:135 +#: src/components/importer/ImporterDrawer.tsx:137 msgid "Importing Data" msgstr "" @@ -860,85 +1169,115 @@ msgid "Importing Records" msgstr "" #: src/components/importer/ImporterImportProgress.tsx:39 -msgid "Imported rows" +#: src/tables/settings/ImportSessionTable.tsx:78 +msgid "Imported Rows" msgstr "" -#: src/components/items/ActionDropdown.tsx:121 +#: src/components/importer/ImporterImportProgress.tsx:39 +#~ msgid "Imported rows" +#~ msgstr "Imported rows" + +#: src/components/items/ActionDropdown.tsx:126 +msgid "Options" +msgstr "" + +#: src/components/items/ActionDropdown.tsx:140 +#~ msgid "View Barcode" +#~ msgstr "View Barcode" + +#: src/components/items/ActionDropdown.tsx:162 +#: src/tables/InvenTreeTableHeader.tsx:159 +#: src/tables/InvenTreeTableHeader.tsx:160 msgid "Barcode Actions" msgstr "Akcije Barkoda" -#: src/components/items/ActionDropdown.tsx:140 -msgid "View Barcode" -msgstr "" +#: src/components/items/ActionDropdown.tsx:162 +#~ msgid "Link custom barcode" +#~ msgstr "Link custom barcode" -#: src/components/items/ActionDropdown.tsx:147 +#: src/components/items/ActionDropdown.tsx:167 msgid "View" msgstr "Vid" -#: src/components/items/ActionDropdown.tsx:148 +#: src/components/items/ActionDropdown.tsx:169 msgid "View barcode" msgstr "Pogledaj barkod" -#: src/components/items/ActionDropdown.tsx:161 +#: src/components/items/ActionDropdown.tsx:175 msgid "Link Barcode" msgstr "Link Barkoda" -#: src/components/items/ActionDropdown.tsx:162 -msgid "Link custom barcode" -msgstr "Linkuj prilagođeni barkod" +#: src/components/items/ActionDropdown.tsx:177 +msgid "Link a custom barcode to this item" +msgstr "" -#: src/components/items/ActionDropdown.tsx:173 -#: src/forms/PurchaseOrderForms.tsx:426 +#: src/components/items/ActionDropdown.tsx:183 +#: src/components/items/QRCode.tsx:193 +#: src/forms/PurchaseOrderForms.tsx:464 msgid "Unlink Barcode" msgstr "Prekini vezu Barkoda" -#: src/components/items/ActionDropdown.tsx:174 +#: src/components/items/ActionDropdown.tsx:185 msgid "Unlink custom barcode" msgstr "Prekini link prilagođenog barkoda" -#: src/components/items/ActionDropdown.tsx:183 -#: src/tables/RowActions.tsx:33 +#: src/components/items/ActionDropdown.tsx:236 +#: src/tables/RowActions.tsx:39 msgid "Edit" msgstr "Izmeni" -#: src/components/items/ActionDropdown.tsx:184 +#: src/components/items/ActionDropdown.tsx:237 msgid "Edit item" msgstr "" -#: src/components/items/ActionDropdown.tsx:196 +#: src/components/items/ActionDropdown.tsx:249 msgid "Delete item" msgstr "Obriši stavku" -#: src/components/items/ActionDropdown.tsx:204 -#: src/components/items/ActionDropdown.tsx:205 +#: src/components/items/ActionDropdown.tsx:257 +#: src/components/items/ActionDropdown.tsx:258 msgid "Hold" msgstr "" -#: src/components/items/ActionDropdown.tsx:227 -#: src/tables/RowActions.tsx:23 +#: src/components/items/ActionDropdown.tsx:280 +#: src/tables/RowActions.tsx:29 msgid "Duplicate" msgstr "Dupliciraj" -#: src/components/items/ActionDropdown.tsx:228 +#: src/components/items/ActionDropdown.tsx:281 msgid "Duplicate item" msgstr "Dupliciraj stavku" +#: src/components/items/BarcodeInput.tsx:23 +msgid "Scan barcode data here using barcode scanner" +msgstr "" + +#: src/components/items/BarcodeInput.tsx:24 +#: src/tables/settings/BarcodeScanHistoryTable.tsx:65 +msgid "Barcode" +msgstr "" + +#: src/components/items/BarcodeInput.tsx:25 +msgid "Scan" +msgstr "" + #: src/components/items/DocTooltip.tsx:92 +#: src/components/items/GettingStartedCarousel.tsx:20 msgid "Read More" msgstr "Saznaj više" -#: src/components/items/ErrorItem.tsx:5 -#: src/tables/InvenTreeTable.tsx:487 +#: src/components/items/ErrorItem.tsx:8 +#: src/tables/InvenTreeTable.tsx:473 msgid "Unknown error" msgstr "Nepoznata greška" -#: src/components/items/ErrorItem.tsx:10 -msgid "An error occurred:" -msgstr "Nastala je greška:" +#: src/components/items/ErrorItem.tsx:13 +#~ msgid "An error occurred:" +#~ msgstr "An error occurred:" #: src/components/items/GettingStartedCarousel.tsx:27 -msgid "Read more" -msgstr "Saznaj više" +#~ msgid "Read more" +#~ msgstr "Read more" #: src/components/items/InfoItem.tsx:27 msgid "None" @@ -965,30 +1304,51 @@ msgstr "PLH" msgid "This panel is a placeholder." msgstr "Ovaj panel je rezervisan." -#: src/components/items/QRCode.tsx:87 +#: src/components/items/QRCode.tsx:89 msgid "Low (7%)" msgstr "" -#: src/components/items/QRCode.tsx:88 +#: src/components/items/QRCode.tsx:90 msgid "Medium (15%)" msgstr "" -#: src/components/items/QRCode.tsx:89 +#: src/components/items/QRCode.tsx:91 msgid "Quartile (25%)" msgstr "" -#: src/components/items/QRCode.tsx:90 +#: src/components/items/QRCode.tsx:92 msgid "High (30%)" msgstr "" -#: src/components/items/QRCode.tsx:107 -msgid "Barcode Data:" +#: src/components/items/QRCode.tsx:100 +msgid "Custom barcode" +msgstr "" + +#: src/components/items/QRCode.tsx:101 +msgid "A custom barcode is registered for this item. The shown code is not that custom barcode." msgstr "" #: src/components/items/QRCode.tsx:118 +msgid "Barcode Data:" +msgstr "" + +#: src/components/items/QRCode.tsx:129 msgid "Select Error Correction Level" msgstr "" +#: src/components/items/QRCode.tsx:171 +#: src/pages/part/PartDetail.tsx:239 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:187 +#: src/pages/sales/ReturnOrderDetail.tsx:157 +#: src/pages/sales/SalesOrderDetail.tsx:169 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:166 +msgid "Link" +msgstr "" + +#: src/components/items/QRCode.tsx:190 +msgid "This will remove the link to the associated barcode" +msgstr "" + #: src/components/modals/AboutInvenTreeModal.tsx:99 msgid "Version Information" msgstr "Informacije o verziji" @@ -1062,11 +1422,11 @@ msgstr "" msgid "Submit Bug Report" msgstr "" -#: src/components/modals/AboutInvenTreeModal.tsx:183 +#: src/components/modals/AboutInvenTreeModal.tsx:181 msgid "Copy version information" msgstr "" -#: src/components/modals/AboutInvenTreeModal.tsx:192 +#: src/components/modals/AboutInvenTreeModal.tsx:189 #: src/components/modals/ServerInfoModal.tsx:147 msgid "Dismiss" msgstr "" @@ -1091,61 +1451,20 @@ msgstr "" msgid "{key} Packages" msgstr "" -#: src/components/modals/QrCodeModal.tsx:72 +#: src/components/modals/QrCodeModal.tsx:24 msgid "Unknown response" msgstr "" -#: src/components/modals/QrCodeModal.tsx:102 -#: src/pages/Index/Scan.tsx:636 -msgid "Error while getting camera" -msgstr "" - -#: src/components/modals/QrCodeModal.tsx:125 -#: src/pages/Index/Scan.tsx:659 -msgid "Error while scanning" -msgstr "" - -#: src/components/modals/QrCodeModal.tsx:139 -#: src/pages/Index/Scan.tsx:673 -msgid "Error while stopping" -msgstr "" - -#: src/components/modals/QrCodeModal.tsx:154 -#: src/defaults/menuItems.tsx:21 -#: src/pages/Index/Scan.tsx:746 -msgid "Scanning" -msgstr "" - -#: src/components/modals/QrCodeModal.tsx:154 -#: src/pages/Index/Scan.tsx:746 -msgid "Not scanning" -msgstr "" - -#: src/components/modals/QrCodeModal.tsx:159 -#: src/pages/Index/Scan.tsx:752 -msgid "Select Camera" -msgstr "" - -#: src/components/modals/QrCodeModal.tsx:169 -#: src/pages/Index/Scan.tsx:737 -msgid "Start scanning" -msgstr "" - -#: src/components/modals/QrCodeModal.tsx:176 -#: src/pages/Index/Scan.tsx:729 -msgid "Stop scanning" -msgstr "" - -#: src/components/modals/QrCodeModal.tsx:181 +#: src/components/modals/QrCodeModal.tsx:39 msgid "No scans yet!" msgstr "" -#: src/components/modals/QrCodeModal.tsx:201 +#: src/components/modals/QrCodeModal.tsx:57 msgid "Close modal" msgstr "" #: src/components/modals/ServerInfoModal.tsx:26 -#: src/pages/Index/Settings/SystemSettings.tsx:38 +#: src/pages/Index/Settings/SystemSettings.tsx:37 msgid "Server" msgstr "" @@ -1206,6 +1525,7 @@ msgid "Background Worker" msgstr "" #: src/components/modals/ServerInfoModal.tsx:101 +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:29 msgid "Background worker not running" msgstr "" @@ -1218,8 +1538,8 @@ msgid "Email settings not configured" msgstr "" #: src/components/modals/ServerInfoModal.tsx:121 -#: src/tables/plugin/PluginListTable.tsx:144 -#: src/tables/plugin/PluginListTable.tsx:294 +#: src/components/plugins/PluginDrawer.tsx:89 +#: src/tables/plugin/PluginListTable.tsx:116 msgid "Version" msgstr "" @@ -1227,7 +1547,7 @@ msgstr "" msgid "Server Version" msgstr "" -#: src/components/nav/Layout.tsx:73 +#: src/components/nav/Layout.tsx:80 msgid "Nothing found..." msgstr "" @@ -1237,18 +1557,26 @@ msgstr "" #~ msgstr "Profile" #: src/components/nav/MainMenu.tsx:52 +#: src/components/nav/NavigationDrawer.tsx:178 #: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:28 msgid "Settings" msgstr "" #: src/components/nav/MainMenu.tsx:59 -#: src/defaults/menuItems.tsx:15 -msgid "Account settings" +#: src/pages/Index/Settings/UserSettings.tsx:152 +msgid "Account Settings" msgstr "" +#: src/components/nav/MainMenu.tsx:59 +#: src/defaults/menuItems.tsx:15 +#~ msgid "Account settings" +#~ msgstr "Account settings" + #: src/components/nav/MainMenu.tsx:67 -#: src/defaults/menuItems.tsx:58 -#: src/pages/Index/Settings/SystemSettings.tsx:315 +#: src/components/nav/NavigationDrawer.tsx:141 +#: src/components/nav/SettingsHeader.tsx:49 +#: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:37 +#: src/pages/Index/Settings/SystemSettings.tsx:310 msgid "System Settings" msgstr "" @@ -1260,14 +1588,11 @@ msgstr "" #~ msgid "Switch to pseudo language" #~ msgstr "Switch to pseudo language" -#: src/components/nav/MainMenu.tsx:77 -msgid "Change Color Mode" -msgstr "" - #: src/components/nav/MainMenu.tsx:86 -#: src/defaults/actions.tsx:71 -#: src/defaults/menuItems.tsx:63 -#: src/pages/Index/Settings/AdminCenter/Index.tsx:221 +#: src/components/nav/NavigationDrawer.tsx:148 +#: src/components/nav/SettingsHeader.tsx:50 +#: src/defaults/actions.tsx:63 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:251 msgid "Admin Center" msgstr "" @@ -1275,458 +1600,732 @@ msgstr "" msgid "Logout" msgstr "" -#: src/components/nav/NavHoverMenu.tsx:65 -#: src/defaults/actions.tsx:60 -msgid "Open Navigation" -msgstr "" - #: src/components/nav/NavHoverMenu.tsx:84 -msgid "View all" -msgstr "" +#~ msgid "View all" +#~ msgstr "View all" #: src/components/nav/NavHoverMenu.tsx:100 #: src/components/nav/NavHoverMenu.tsx:110 -msgid "Get started" -msgstr "" +#~ msgid "Get started" +#~ msgstr "Get started" #: src/components/nav/NavHoverMenu.tsx:103 -msgid "Overview over high-level objects, functions and possible usecases." -msgstr "" - -#: src/components/nav/NavigationDrawer.tsx:57 -msgid "Navigation" -msgstr "" +#~ msgid "Overview over high-level objects, functions and possible usecases." +#~ msgstr "Overview over high-level objects, functions and possible usecases." #: src/components/nav/NavigationDrawer.tsx:60 -msgid "Pages" +#~ msgid "Pages" +#~ msgstr "Pages" + +#: src/components/nav/NavigationDrawer.tsx:77 +#: src/components/render/ModelType.tsx:31 +#: src/defaults/links.tsx:10 +#: src/pages/Index/Settings/SystemSettings.tsx:172 +#: src/pages/part/CategoryDetail.tsx:125 +#: src/pages/part/CategoryDetail.tsx:249 +#: src/pages/part/CategoryDetail.tsx:279 +#: src/pages/part/PartDetail.tsx:856 +msgid "Parts" msgstr "" -#: src/components/nav/NavigationDrawer.tsx:65 -#: src/pages/Index/Settings/AdminCenter/Index.tsx:176 -#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:41 -msgid "Plugins" +#: src/components/nav/NavigationDrawer.tsx:84 +#: src/components/render/Part.tsx:30 +#: src/defaults/links.tsx:11 +#: src/pages/Index/Settings/SystemSettings.tsx:205 +#: src/pages/part/PartDetail.tsx:593 +#: src/pages/stock/LocationDetail.tsx:352 +#: src/pages/stock/StockDetail.tsx:528 +#: src/tables/stock/StockItemTable.tsx:69 +msgid "Stock" msgstr "" -#: src/components/nav/NavigationDrawer.tsx:75 -#: src/defaults/actions.tsx:32 -msgid "Documentation" +#: src/components/nav/NavigationDrawer.tsx:91 +#: src/defaults/links.tsx:13 +#: src/pages/build/BuildDetail.tsx:530 +#: src/pages/build/BuildIndex.tsx:36 +msgid "Manufacturing" msgstr "" -#: src/components/nav/NavigationDrawer.tsx:78 -msgid "About" +#: src/components/nav/NavigationDrawer.tsx:98 +#: src/defaults/links.tsx:18 +#: src/pages/company/ManufacturerDetail.tsx:9 +#: src/pages/company/ManufacturerPartDetail.tsx:258 +#: src/pages/company/SupplierDetail.tsx:9 +#: src/pages/company/SupplierPartDetail.tsx:336 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:480 +#: src/pages/purchasing/PurchasingIndex.tsx:60 +msgid "Purchasing" msgstr "" -#: src/components/nav/NotificationDrawer.tsx:92 -#: src/pages/Index/Settings/SystemSettings.tsx:109 -#: src/pages/Index/Settings/UserSettings.tsx:126 +#: src/components/nav/NavigationDrawer.tsx:105 +#: src/defaults/links.tsx:22 +#: src/pages/company/CustomerDetail.tsx:9 +#: src/pages/sales/ReturnOrderDetail.tsx:469 +#: src/pages/sales/SalesIndex.tsx:53 +#: src/pages/sales/SalesOrderDetail.tsx:520 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:343 +msgid "Sales" +msgstr "" + +#: src/components/nav/NavigationDrawer.tsx:129 +#: src/components/nav/NotificationDrawer.tsx:178 +#: src/pages/Index/Settings/SystemSettings.tsx:110 +#: src/pages/Index/Settings/UserSettings.tsx:127 #: src/pages/Notifications.tsx:65 #: src/pages/Notifications.tsx:151 msgid "Notifications" msgstr "" -#: src/components/nav/NotificationDrawer.tsx:94 +#: src/components/nav/NavigationDrawer.tsx:135 +#: src/components/nav/SettingsHeader.tsx:48 +msgid "User Settings" +msgstr "" + +#: src/components/nav/NavigationDrawer.tsx:173 +msgid "Navigation" +msgstr "" + +#: src/components/nav/NavigationDrawer.tsx:183 +#: src/forms/PurchaseOrderForms.tsx:689 +#: src/forms/StockForms.tsx:614 +#: src/forms/StockForms.tsx:651 +#: src/forms/StockForms.tsx:677 +#: src/forms/StockForms.tsx:705 +#: src/forms/StockForms.tsx:736 +#: src/forms/StockForms.tsx:771 +#: src/forms/StockForms.tsx:813 +#: src/forms/StockForms.tsx:851 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:413 +#: src/tables/RowActions.tsx:129 +#: src/tables/build/BuildLineTable.tsx:101 +msgid "Actions" +msgstr "" + +#: src/components/nav/NavigationDrawer.tsx:191 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:205 +#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:44 +msgid "Plugins" +msgstr "" + +#: src/components/nav/NavigationDrawer.tsx:204 +#: src/defaults/actions.tsx:24 +msgid "Documentation" +msgstr "" + +#: src/components/nav/NavigationDrawer.tsx:210 +msgid "About" +msgstr "" + +#: src/components/nav/NotificationDrawer.tsx:180 msgid "Mark all as read" msgstr "" -#: src/components/nav/NotificationDrawer.tsx:104 +#: src/components/nav/NotificationDrawer.tsx:190 msgid "View all notifications" msgstr "" -#: src/components/nav/NotificationDrawer.tsx:123 +#: src/components/nav/NotificationDrawer.tsx:210 msgid "You have no unread notifications." msgstr "" -#: src/components/nav/NotificationDrawer.tsx:139 -#: src/components/nav/NotificationDrawer.tsx:145 -#: src/tables/notifications/NotificationsTable.tsx:36 -msgid "Notification" -msgstr "" - -#: src/components/nav/NotificationDrawer.tsx:168 -#: src/pages/Notifications.tsx:73 -msgid "Mark as read" -msgstr "" - -#: src/components/nav/SearchDrawer.tsx:78 +#: src/components/nav/SearchDrawer.tsx:85 msgid "results" msgstr "" -#: src/components/nav/SearchDrawer.tsx:370 +#: src/components/nav/SearchDrawer.tsx:380 msgid "Enter search text" msgstr "" -#: src/components/nav/SearchDrawer.tsx:397 +#: src/components/nav/SearchDrawer.tsx:391 +msgid "Refresh search results" +msgstr "" + +#: src/components/nav/SearchDrawer.tsx:402 +#: src/components/nav/SearchDrawer.tsx:409 msgid "Search Options" msgstr "" -#: src/components/nav/SearchDrawer.tsx:400 +#: src/components/nav/SearchDrawer.tsx:412 msgid "Regex search" msgstr "" -#: src/components/nav/SearchDrawer.tsx:410 +#: src/components/nav/SearchDrawer.tsx:421 msgid "Whole word search" msgstr "" -#: src/components/nav/SearchDrawer.tsx:451 +#: src/components/nav/SearchDrawer.tsx:461 msgid "An error occurred during search query" msgstr "" #: src/components/nav/SearchDrawer.tsx:462 -msgid "No results" +#~ msgid "No results" +#~ msgstr "No results" + +#: src/components/nav/SearchDrawer.tsx:472 +#: src/tables/part/PartTestTemplateTable.tsx:76 +msgid "No Results" msgstr "" -#: src/components/nav/SearchDrawer.tsx:465 +#: src/components/nav/SearchDrawer.tsx:475 msgid "No results available for search query" msgstr "" -#: src/components/render/Instance.tsx:217 +#: src/components/panels/AttachmentPanel.tsx:18 +msgid "Attachments" +msgstr "" + +#: src/components/panels/NotesPanel.tsx:24 +#: src/tables/build/BuildOrderTestTable.tsx:143 +#: src/tables/stock/StockTrackingTable.tsx:204 +msgid "Notes" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:47 +msgid "Plugin Inactive" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:50 +msgid "Plugin is not active" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:60 +msgid "Plugin Information" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:74 +#: src/pages/build/BuildDetail.tsx:116 +#: src/pages/company/CompanyDetail.tsx:89 +#: src/pages/company/ManufacturerPartDetail.tsx:89 +#: src/pages/company/ManufacturerPartDetail.tsx:116 +#: src/pages/company/SupplierPartDetail.tsx:140 +#: src/pages/part/CategoryDetail.tsx:101 +#: src/pages/part/PartDetail.tsx:178 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:136 +#: src/pages/sales/ReturnOrderDetail.tsx:107 +#: src/pages/sales/SalesOrderDetail.tsx:116 +#: src/pages/stock/LocationDetail.tsx:103 +#: src/tables/ColumnRenderers.tsx:92 +#: src/tables/bom/UsedInTable.tsx:44 +#: src/tables/build/BuildAllocatedStockTable.tsx:83 +#: src/tables/build/BuildLineTable.tsx:329 +#: src/tables/machine/MachineTypeTable.tsx:74 +#: src/tables/machine/MachineTypeTable.tsx:129 +#: src/tables/machine/MachineTypeTable.tsx:240 +#: src/tables/machine/MachineTypeTable.tsx:344 +#: src/tables/part/RelatedPartTable.tsx:66 +#: src/tables/plugin/PluginListTable.tsx:99 +#: src/tables/sales/SalesOrderAllocationTable.tsx:87 +#: src/tables/sales/SalesOrderLineItemTable.tsx:75 +#: src/tables/stock/LocationTypesTable.tsx:74 +msgid "Description" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:79 +msgid "Author" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:84 +#: src/pages/part/PartSchedulingDetail.tsx:277 +#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:40 +#: src/pages/part/pricing/SaleHistoryPanel.tsx:38 +#: src/tables/ColumnRenderers.tsx:215 +#: src/tables/build/BuildOrderTestTable.tsx:151 +#: src/tables/settings/StocktakeReportTable.tsx:40 +msgid "Date" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:94 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:398 +#: src/pages/part/PartDetail.tsx:331 +#: src/tables/bom/UsedInTable.tsx:84 +#: src/tables/company/CompanyTable.tsx:62 +#: src/tables/company/CompanyTable.tsx:96 +#: src/tables/machine/MachineListTable.tsx:333 +#: src/tables/machine/MachineListTable.tsx:605 +#: src/tables/part/ParametricPartTable.tsx:223 +#: src/tables/part/PartTable.tsx:178 +#: src/tables/part/PartVariantTable.tsx:15 +#: src/tables/plugin/PluginListTable.tsx:94 +#: src/tables/plugin/PluginListTable.tsx:401 +#: src/tables/purchasing/SupplierPartTable.tsx:100 +#: src/tables/purchasing/SupplierPartTable.tsx:190 +#: src/tables/settings/UserTable.tsx:283 +#: src/tables/stock/StockItemTable.tsx:293 +msgid "Active" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:106 +msgid "Package Name" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:112 +msgid "Installation Path" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:117 +#: src/tables/machine/MachineTypeTable.tsx:152 +#: src/tables/machine/MachineTypeTable.tsx:276 +#: src/tables/plugin/PluginListTable.tsx:406 +msgid "Builtin" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:122 +msgid "Package" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:134 +#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:53 +msgid "Plugin Settings" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:146 +#: src/components/render/ModelType.tsx:276 +msgid "Plugin Configuration" +msgstr "" + +#: src/components/plugins/PluginPanel.tsx:87 +#~ msgid "Error occurred while rendering plugin content" +#~ msgstr "Error occurred while rendering plugin content" + +#: src/components/plugins/PluginPanel.tsx:91 +#~ msgid "Plugin did not provide panel rendering function" +#~ msgstr "Plugin did not provide panel rendering function" + +#: src/components/plugins/PluginPanel.tsx:103 +#~ msgid "No content provided for this plugin" +#~ msgstr "No content provided for this plugin" + +#: src/components/plugins/PluginPanel.tsx:116 +#: src/components/plugins/PluginSettingsPanel.tsx:76 +#~ msgid "Error Loading Plugin" +#~ msgstr "Error Loading Plugin" + +#: src/components/plugins/PluginSettingsPanel.tsx:51 +#~ msgid "Error occurred while rendering plugin settings" +#~ msgstr "Error occurred while rendering plugin settings" + +#: src/components/plugins/PluginSettingsPanel.tsx:55 +#~ msgid "Plugin did not provide settings rendering function" +#~ msgstr "Plugin did not provide settings rendering function" + +#: src/components/plugins/PluginUIFeature.tsx:100 +msgid "Error occurred while rendering the template editor." +msgstr "" + +#: src/components/plugins/PluginUIFeature.tsx:111 +msgid "Error Loading Plugin Editor" +msgstr "" + +#: src/components/plugins/PluginUIFeature.tsx:147 +msgid "Error occurred while rendering the template preview." +msgstr "" + +#: src/components/plugins/PluginUIFeature.tsx:158 +msgid "Error Loading Plugin Preview" +msgstr "" + +#: src/components/plugins/RemoteComponent.tsx:70 +msgid "Invalid source or function name" +msgstr "" + +#: src/components/plugins/RemoteComponent.tsx:91 +msgid "Error Loading Content" +msgstr "" + +#: src/components/plugins/RemoteComponent.tsx:95 +msgid "Error occurred while loading plugin content" +msgstr "" + +#: src/components/render/Instance.tsx:224 msgid "Unknown model: {model}" msgstr "" -#: src/components/render/ModelType.tsx:22 -#: src/forms/BuildForms.tsx:213 -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/forms/StockForms.tsx:499 -#: src/forms/StockForms.tsx:533 -#: src/forms/StockForms.tsx:562 -#: src/forms/StockForms.tsx:590 -#: src/forms/StockForms.tsx:621 -#: src/forms/StockForms.tsx:656 -#: src/forms/StockForms.tsx:698 -#: src/forms/StockForms.tsx:734 -#: src/pages/build/BuildDetail.tsx:95 -#: src/pages/part/PartDetail.tsx:1073 -#: src/tables/build/BuildAllocatedStockTable.tsx:82 +#: src/components/render/ModelType.tsx:30 +#: src/forms/BuildForms.tsx:269 +#: src/forms/BuildForms.tsx:337 +#: src/forms/BuildForms.tsx:385 +#: src/forms/BuildForms.tsx:515 +#: src/forms/PurchaseOrderForms.tsx:689 +#: src/forms/ReturnOrderForms.tsx:190 +#: src/forms/SalesOrderForms.tsx:248 +#: src/forms/StockForms.tsx:261 +#: src/forms/StockForms.tsx:614 +#: src/forms/StockForms.tsx:651 +#: src/forms/StockForms.tsx:677 +#: src/forms/StockForms.tsx:705 +#: src/forms/StockForms.tsx:736 +#: src/forms/StockForms.tsx:771 +#: src/forms/StockForms.tsx:813 +#: src/forms/StockForms.tsx:851 +#: src/pages/build/BuildDetail.tsx:90 +#: src/pages/part/PartDetail.tsx:1094 +#: src/tables/build/BuildAllocatedStockTable.tsx:95 +#: src/tables/build/BuildLineTable.tsx:72 #: src/tables/part/PartTable.tsx:28 -#: src/tables/part/RelatedPartTable.tsx:45 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:88 -#: src/tables/sales/SalesOrderAllocationTable.tsx:68 -#: src/tables/stock/StockTrackingTable.tsx:74 +#: src/tables/part/RelatedPartTable.tsx:47 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:130 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:100 +#: src/tables/sales/SalesOrderAllocationTable.tsx:99 +#: src/tables/stock/StockTrackingTable.tsx:78 msgid "Part" msgstr "" -#: src/components/render/ModelType.tsx:23 -#: src/defaults/links.tsx:29 -#: src/defaults/menuItems.tsx:33 -#: src/pages/Index/Settings/SystemSettings.tsx:173 -#: src/pages/part/CategoryDetail.tsx:119 -#: src/pages/part/CategoryDetail.tsx:244 -#: src/pages/part/CategoryDetail.tsx:274 -#: src/pages/part/PartDetail.tsx:827 -msgid "Parts" -msgstr "" - -#: src/components/render/ModelType.tsx:31 +#: src/components/render/ModelType.tsx:40 msgid "Part Parameter Template" msgstr "" -#: src/components/render/ModelType.tsx:32 +#: src/components/render/ModelType.tsx:41 msgid "Part Parameter Templates" msgstr "" -#: src/components/render/ModelType.tsx:38 +#: src/components/render/ModelType.tsx:48 msgid "Part Test Template" msgstr "" -#: src/components/render/ModelType.tsx:39 +#: src/components/render/ModelType.tsx:49 msgid "Part Test Templates" msgstr "" -#: src/components/render/ModelType.tsx:45 -#: src/pages/company/SupplierPartDetail.tsx:203 -#: src/pages/company/SupplierPartDetail.tsx:375 -#: src/pages/stock/StockDetail.tsx:173 -#: src/tables/build/BuildAllocatedStockTable.tsx:131 +#: src/components/render/ModelType.tsx:56 +#: src/pages/company/SupplierPartDetail.tsx:364 +#: src/pages/stock/StockDetail.tsx:194 +#: src/tables/build/BuildAllocatedStockTable.tsx:152 #: src/tables/part/PartPurchaseOrdersTable.tsx:49 -#: src/tables/purchasing/SupplierPartTable.tsx:68 +#: src/tables/purchasing/SupplierPartTable.tsx:70 +#: src/tables/stock/StockItemTable.tsx:229 msgid "Supplier Part" msgstr "" -#: src/components/render/ModelType.tsx:46 +#: src/components/render/ModelType.tsx:57 msgid "Supplier Parts" msgstr "" -#: src/components/render/ModelType.tsx:54 -#: src/pages/company/ManufacturerPartDetail.tsx:132 +#: src/components/render/ModelType.tsx:66 #: src/tables/part/PartPurchaseOrdersTable.tsx:55 +#: src/tables/stock/StockItemTable.tsx:234 msgid "Manufacturer Part" msgstr "" -#: src/components/render/ModelType.tsx:55 +#: src/components/render/ModelType.tsx:67 msgid "Manufacturer Parts" msgstr "" -#: src/components/render/ModelType.tsx:63 -#: src/pages/part/CategoryDetail.tsx:305 +#: src/components/render/ModelType.tsx:76 +#: src/pages/part/CategoryDetail.tsx:310 msgid "Part Category" msgstr "" -#: src/components/render/ModelType.tsx:64 -#: src/pages/part/CategoryDetail.tsx:258 -#: src/pages/part/CategoryDetail.tsx:296 -#: src/pages/part/PartDetail.tsx:1063 +#: src/components/render/ModelType.tsx:77 +#: src/pages/part/CategoryDetail.tsx:263 +#: src/pages/part/CategoryDetail.tsx:301 +#: src/pages/part/PartDetail.tsx:1084 msgid "Part Categories" msgstr "" -#: src/components/render/ModelType.tsx:72 -#: src/pages/stock/StockDetail.tsx:624 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:94 -#: src/tables/stock/StockTrackingTable.tsx:45 +#: src/components/render/ModelType.tsx:86 +#: src/forms/BuildForms.tsx:337 +#: src/forms/BuildForms.tsx:385 +#: src/forms/BuildForms.tsx:515 +#: src/forms/SalesOrderForms.tsx:248 +#: src/pages/stock/StockDetail.tsx:839 +#: src/tables/stock/StockTrackingTable.tsx:49 msgid "Stock Item" msgstr "" -#: src/components/render/ModelType.tsx:73 +#: src/components/render/ModelType.tsx:87 #: src/pages/company/CompanyDetail.tsx:203 -#: src/pages/stock/LocationDetail.tsx:128 -#: src/pages/stock/LocationDetail.tsx:181 -#: src/pages/stock/LocationDetail.tsx:395 +#: src/pages/part/PartStocktakeDetail.tsx:113 +#: src/pages/stock/LocationDetail.tsx:122 +#: src/pages/stock/LocationDetail.tsx:175 +#: src/pages/stock/LocationDetail.tsx:380 msgid "Stock Items" msgstr "" -#: src/components/render/ModelType.tsx:81 +#: src/components/render/ModelType.tsx:96 msgid "Stock Location" msgstr "" -#: src/components/render/ModelType.tsx:82 -#: src/pages/stock/LocationDetail.tsx:195 -#: src/pages/stock/LocationDetail.tsx:387 -#: src/pages/stock/StockDetail.tsx:616 +#: src/components/render/ModelType.tsx:97 +#: src/pages/stock/LocationDetail.tsx:189 +#: src/pages/stock/LocationDetail.tsx:372 +#: src/pages/stock/StockDetail.tsx:831 msgid "Stock Locations" msgstr "" -#: src/components/render/ModelType.tsx:90 +#: src/components/render/ModelType.tsx:106 msgid "Stock Location Type" msgstr "" -#: src/components/render/ModelType.tsx:91 +#: src/components/render/ModelType.tsx:107 msgid "Stock Location Types" msgstr "" -#: src/components/render/ModelType.tsx:95 +#: src/components/render/ModelType.tsx:112 +#: src/pages/part/PartDetail.tsx:712 msgid "Stock History" msgstr "" -#: src/components/render/ModelType.tsx:96 +#: src/components/render/ModelType.tsx:113 msgid "Stock Histories" msgstr "" -#: src/components/render/ModelType.tsx:100 -#: src/defaults/links.tsx:31 -#: src/defaults/menuItems.tsx:43 +#: src/components/render/ModelType.tsx:118 msgid "Build" msgstr "" -#: src/components/render/ModelType.tsx:101 +#: src/components/render/ModelType.tsx:119 msgid "Builds" msgstr "" -#: src/components/render/ModelType.tsx:109 +#: src/components/render/ModelType.tsx:128 msgid "Build Line" msgstr "" -#: src/components/render/ModelType.tsx:110 +#: src/components/render/ModelType.tsx:129 msgid "Build Lines" msgstr "" -#: src/components/render/ModelType.tsx:117 +#: src/components/render/ModelType.tsx:137 msgid "Build Item" msgstr "" -#: src/components/render/ModelType.tsx:118 +#: src/components/render/ModelType.tsx:138 msgid "Build Items" msgstr "" -#: src/components/render/ModelType.tsx:122 -#: src/pages/company/CompanyDetail.tsx:339 +#: src/components/render/ModelType.tsx:143 +#: src/pages/company/CompanyDetail.tsx:321 msgid "Company" msgstr "" -#: src/components/render/ModelType.tsx:123 +#: src/components/render/ModelType.tsx:144 msgid "Companies" msgstr "" -#: src/components/render/ModelType.tsx:131 +#: src/components/render/ModelType.tsx:153 +#: src/pages/build/BuildDetail.tsx:195 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:204 +#: src/pages/sales/ReturnOrderDetail.tsx:174 +#: src/pages/sales/SalesOrderDetail.tsx:186 #: src/tables/TableHoverCard.tsx:81 -#: src/tables/build/BuildOrderTable.tsx:140 -#: src/tables/purchasing/PurchaseOrderTable.tsx:64 -#: src/tables/sales/ReturnOrderTable.tsx:55 -#: src/tables/sales/SalesOrderTable.tsx:62 +#: src/tables/build/BuildOrderTable.tsx:135 +#: src/tables/purchasing/PurchaseOrderTable.tsx:69 +#: src/tables/sales/ReturnOrderTable.tsx:67 +#: src/tables/sales/SalesOrderTable.tsx:67 msgid "Project Code" msgstr "" -#: src/components/render/ModelType.tsx:132 -#: src/pages/Index/Settings/AdminCenter/Index.tsx:128 +#: src/components/render/ModelType.tsx:154 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:145 msgid "Project Codes" msgstr "" -#: src/components/render/ModelType.tsx:138 +#: src/components/render/ModelType.tsx:161 #: src/pages/part/pricing/PurchaseHistoryPanel.tsx:32 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:480 -#: src/tables/part/PartPurchaseOrdersTable.tsx:32 -#: src/tables/stock/StockTrackingTable.tsx:107 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:477 +#: src/pages/stock/StockDetail.tsx:253 +#: src/tables/part/PartPurchaseOrdersTable.tsx:31 +#: src/tables/stock/StockItemTable.tsx:222 +#: src/tables/stock/StockTrackingTable.tsx:111 msgid "Purchase Order" msgstr "" -#: src/components/render/ModelType.tsx:139 -#: src/pages/Index/Settings/SystemSettings.tsx:255 +#: src/components/render/ModelType.tsx:162 +#: src/pages/Index/Settings/SystemSettings.tsx:249 #: src/pages/company/CompanyDetail.tsx:196 -#: src/pages/company/SupplierPartDetail.tsx:237 -#: src/pages/part/PartDetail.tsx:662 +#: src/pages/company/SupplierPartDetail.tsx:249 +#: src/pages/part/PartDetail.tsx:683 #: src/pages/purchasing/PurchasingIndex.tsx:25 msgid "Purchase Orders" msgstr "" -#: src/components/render/ModelType.tsx:147 +#: src/components/render/ModelType.tsx:171 msgid "Purchase Order Line" msgstr "" -#: src/components/render/ModelType.tsx:148 +#: src/components/render/ModelType.tsx:172 msgid "Purchase Order Lines" msgstr "" -#: src/components/render/ModelType.tsx:152 -#: src/pages/build/BuildDetail.tsx:153 -#: src/pages/sales/SalesOrderDetail.tsx:520 -#: src/pages/stock/StockDetail.tsx:221 -#: src/tables/sales/SalesOrderAllocationTable.tsx:50 -#: src/tables/stock/StockTrackingTable.tsx:118 +#: src/components/render/ModelType.tsx:177 +#: src/pages/build/BuildDetail.tsx:148 +#: src/pages/part/pricing/SaleHistoryPanel.tsx:24 +#: src/pages/sales/SalesOrderDetail.tsx:515 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:92 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:341 +#: src/pages/stock/StockDetail.tsx:262 +#: src/tables/sales/SalesOrderAllocationTable.tsx:80 +#: src/tables/stock/StockTrackingTable.tsx:122 msgid "Sales Order" msgstr "" -#: src/components/render/ModelType.tsx:153 -#: src/pages/Index/Settings/SystemSettings.tsx:270 +#: src/components/render/ModelType.tsx:178 +#: src/pages/Index/Settings/SystemSettings.tsx:264 #: src/pages/company/CompanyDetail.tsx:216 -#: src/pages/part/PartDetail.tsx:669 +#: src/pages/part/PartDetail.tsx:695 #: src/pages/sales/SalesIndex.tsx:26 msgid "Sales Orders" msgstr "" -#: src/components/render/ModelType.tsx:161 +#: src/components/render/ModelType.tsx:187 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:340 msgid "Sales Order Shipment" msgstr "" -#: src/components/render/ModelType.tsx:162 +#: src/components/render/ModelType.tsx:188 msgid "Sales Order Shipments" msgstr "" -#: src/components/render/ModelType.tsx:168 -#: src/pages/sales/ReturnOrderDetail.tsx:469 -#: src/tables/stock/StockTrackingTable.tsx:129 +#: src/components/render/ModelType.tsx:195 +#: src/pages/sales/ReturnOrderDetail.tsx:464 +#: src/tables/stock/StockTrackingTable.tsx:133 msgid "Return Order" msgstr "" -#: src/components/render/ModelType.tsx:169 -#: src/pages/Index/Settings/SystemSettings.tsx:286 +#: src/components/render/ModelType.tsx:196 +#: src/pages/Index/Settings/SystemSettings.tsx:280 #: src/pages/company/CompanyDetail.tsx:223 +#: src/pages/part/PartDetail.tsx:702 #: src/pages/sales/SalesIndex.tsx:32 msgid "Return Orders" msgstr "" -#: src/components/render/ModelType.tsx:177 +#: src/components/render/ModelType.tsx:205 msgid "Return Order Line Item" msgstr "" -#: src/components/render/ModelType.tsx:178 +#: src/components/render/ModelType.tsx:206 msgid "Return Order Line Items" msgstr "" -#: src/components/render/ModelType.tsx:182 -#: src/tables/company/AddressTable.tsx:47 +#: src/components/render/ModelType.tsx:211 +#: src/tables/company/AddressTable.tsx:48 msgid "Address" msgstr "" -#: src/components/render/ModelType.tsx:183 -#: src/pages/company/CompanyDetail.tsx:253 +#: src/components/render/ModelType.tsx:212 +#: src/pages/company/CompanyDetail.tsx:255 msgid "Addresses" msgstr "" -#: src/components/render/ModelType.tsx:189 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:195 -#: src/pages/sales/ReturnOrderDetail.tsx:174 -#: src/pages/sales/SalesOrderDetail.tsx:183 +#: src/components/render/ModelType.tsx:219 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:196 +#: src/pages/sales/ReturnOrderDetail.tsx:166 +#: src/pages/sales/SalesOrderDetail.tsx:178 msgid "Contact" msgstr "" -#: src/components/render/ModelType.tsx:190 -#: src/pages/company/CompanyDetail.tsx:247 +#: src/components/render/ModelType.tsx:220 +#: src/pages/company/CompanyDetail.tsx:249 msgid "Contacts" msgstr "" -#: src/components/render/ModelType.tsx:196 +#: src/components/render/ModelType.tsx:227 msgid "Owner" msgstr "" -#: src/components/render/ModelType.tsx:197 +#: src/components/render/ModelType.tsx:228 msgid "Owners" msgstr "" -#: src/components/render/ModelType.tsx:203 -#: src/tables/settings/ImportSessionTable.tsx:121 -#: src/tables/stock/StockItemTestResultTable.tsx:198 -#: src/tables/stock/StockTrackingTable.tsx:195 +#: src/components/render/ModelType.tsx:234 +#~ msgid "Purchase Order Line Item" +#~ msgstr "Purchase Order Line Item" + +#: src/components/render/ModelType.tsx:235 +#: src/tables/settings/BarcodeScanHistoryTable.tsx:80 +#: src/tables/settings/BarcodeScanHistoryTable.tsx:211 +#: src/tables/settings/ImportSessionTable.tsx:120 +#: src/tables/settings/StocktakeReportTable.tsx:44 +#: src/tables/stock/StockItemTestResultTable.tsx:204 +#: src/tables/stock/StockTrackingTable.tsx:181 +#: src/tables/stock/StockTrackingTable.tsx:210 msgid "User" msgstr "" -#: src/components/render/ModelType.tsx:204 -#: src/pages/Index/Settings/AdminCenter/Index.tsx:98 +#: src/components/render/ModelType.tsx:236 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:109 #: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:13 msgid "Users" msgstr "" -#: src/components/render/ModelType.tsx:210 +#: src/components/render/ModelType.tsx:243 msgid "Group" msgstr "" -#: src/components/render/ModelType.tsx:211 +#: src/components/render/ModelType.tsx:244 #: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:20 -#: src/tables/settings/UserTable.tsx:138 -#: src/tables/settings/UserTable.tsx:201 +#: src/tables/settings/UserTable.tsx:137 +#: src/tables/settings/UserTable.tsx:200 msgid "Groups" msgstr "" -#: src/components/render/ModelType.tsx:218 +#: src/components/render/ModelType.tsx:252 msgid "Import Session" msgstr "" -#: src/components/render/ModelType.tsx:219 +#: src/components/render/ModelType.tsx:253 msgid "Import Sessions" msgstr "" -#: src/components/render/ModelType.tsx:225 +#: src/components/render/ModelType.tsx:260 msgid "Label Template" msgstr "" -#: src/components/render/ModelType.tsx:226 -#: src/pages/Index/Settings/AdminCenter/Index.tsx:158 +#: src/components/render/ModelType.tsx:261 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:187 msgid "Label Templates" msgstr "" -#: src/components/render/ModelType.tsx:232 +#: src/components/render/ModelType.tsx:264 +#~ msgid "Unknown Model" +#~ msgstr "Unknown Model" + +#: src/components/render/ModelType.tsx:268 msgid "Report Template" msgstr "" -#: src/components/render/ModelType.tsx:233 -#: src/pages/Index/Settings/AdminCenter/Index.tsx:164 +#: src/components/render/ModelType.tsx:269 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:193 msgid "Report Templates" msgstr "" -#: src/components/render/ModelType.tsx:239 -msgid "Plugin Configuration" -msgstr "" - -#: src/components/render/ModelType.tsx:240 +#: src/components/render/ModelType.tsx:277 msgid "Plugin Configurations" msgstr "" +#: src/components/render/ModelType.tsx:284 +msgid "Content Type" +msgstr "" + +#: src/components/render/ModelType.tsx:285 +msgid "Content Types" +msgstr "" + +#: src/components/render/ModelType.tsx:291 +#: src/tables/machine/MachineListTable.tsx:351 +#: src/tables/machine/MachineTypeTable.tsx:282 +msgid "Errors" +msgstr "" + +#: src/components/render/ModelType.tsx:307 +#~ msgid "Purchase Order Line Items" +#~ msgstr "Purchase Order Line Items" + +#: src/components/render/ModelType.tsx:337 +#~ msgid "Unknown Models" +#~ msgstr "Unknown Models" + #: src/components/render/Order.tsx:121 +#: src/tables/sales/SalesOrderAllocationTable.tsx:136 msgid "Shipment" msgstr "" #: src/components/render/Part.tsx:25 #: src/components/render/Plugin.tsx:17 -#: src/pages/company/CompanyDetail.tsx:325 -#: src/pages/company/SupplierPartDetail.tsx:360 -#: src/pages/part/PartDetail.tsx:879 +#: src/pages/company/CompanyDetail.tsx:307 +#: src/pages/company/SupplierPartDetail.tsx:349 +#: src/pages/part/PartDetail.tsx:911 msgid "Inactive" msgstr "" @@ -1736,39 +2335,38 @@ msgstr "" msgid "No stock" msgstr "" -#: src/components/render/Part.tsx:30 -#: src/defaults/links.tsx:30 -#: src/defaults/menuItems.tsx:38 -#: src/pages/Index/Settings/SystemSettings.tsx:206 -#: src/pages/part/PartDetail.tsx:543 -#: src/pages/stock/LocationDetail.tsx:367 -#: src/pages/stock/StockDetail.tsx:411 -#: src/tables/stock/StockItemTable.tsx:68 -msgid "Stock" -msgstr "" - -#: src/components/render/Stock.tsx:60 -#: src/pages/stock/StockDetail.tsx:150 -#: src/pages/stock/StockDetail.tsx:581 -#: src/tables/build/BuildAllocatedStockTable.tsx:102 -#: src/tables/sales/SalesOrderAllocationTable.tsx:80 +#: src/components/render/Stock.tsx:61 +#: src/forms/ReturnOrderForms.tsx:190 +#: src/pages/stock/StockDetail.tsx:166 +#: src/pages/stock/StockDetail.tsx:771 +#: src/tables/build/BuildAllocatedStockTable.tsx:123 +#: src/tables/build/BuildOutputTable.tsx:81 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:114 +#: src/tables/sales/SalesOrderAllocationTable.tsx:106 msgid "Serial Number" msgstr "" -#: src/components/render/Stock.tsx:62 -#: src/forms/BuildForms.tsx:218 -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/pages/part/pricing/BomPricingPanel.tsx:109 +#: src/components/render/Stock.tsx:63 +#: src/forms/BuildForms.tsx:206 +#: src/forms/BuildForms.tsx:515 +#: src/forms/PurchaseOrderForms.tsx:689 +#: src/forms/SalesOrderForms.tsx:248 +#: src/pages/part/PartSchedulingDetail.tsx:80 +#: src/pages/part/PartStocktakeDetail.tsx:60 +#: src/pages/part/PartStocktakeDetail.tsx:234 +#: src/pages/part/PartStocktakeDetail.tsx:252 +#: src/pages/part/pricing/BomPricingPanel.tsx:148 #: src/pages/part/pricing/PriceBreakPanel.tsx:89 -#: src/pages/part/pricing/PriceBreakPanel.tsx:171 -#: src/pages/stock/StockDetail.tsx:145 -#: src/pages/stock/StockDetail.tsx:587 -#: src/tables/build/BuildOrderTestTable.tsx:197 -#: src/tables/part/PartPurchaseOrdersTable.tsx:92 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:143 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:171 +#: src/pages/part/pricing/PriceBreakPanel.tsx:172 +#: src/pages/stock/StockDetail.tsx:161 +#: src/pages/stock/StockDetail.tsx:777 +#: src/tables/build/BuildLineTable.tsx:79 +#: src/tables/build/BuildOrderTestTable.tsx:198 +#: src/tables/part/PartPurchaseOrdersTable.tsx:93 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:146 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:177 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:77 -#: src/tables/stock/StockTrackingTable.tsx:59 +#: src/tables/stock/StockTrackingTable.tsx:63 msgid "Quantity" msgstr "" @@ -1842,10 +2440,6 @@ msgstr "" #~ msgid "Required Part" #~ msgstr "Required Part" -#: src/components/tables/build/BuildLineTable.tsx:152 -#~ msgid "Required Quantity" -#~ msgstr "Required Quantity" - #: src/components/tables/build/BuildOrderTable.tsx:52 #~ msgid "Progress" #~ msgstr "Progress" @@ -2126,14 +2720,6 @@ msgstr "" #~ msgid "user deleted" #~ msgstr "user deleted" -#: src/components/tables/settings/UserTable.tsx:168 -#~ msgid "First Name" -#~ msgstr "First Name" - -#: src/components/tables/settings/UserTable.tsx:173 -#~ msgid "Last Name" -#~ msgstr "Last Name" - #: src/components/tables/stock/StockItemTable.tsx:247 #~ msgid "Test Filter" #~ msgstr "Test Filter" @@ -2146,36 +2732,21 @@ msgstr "" #~ msgid "Stock location updated" #~ msgstr "Stock location updated" -#: src/components/widgets/DisplayWidget.tsx:11 -#: src/pages/Index/Settings/AccountSettings/DisplaySettingsPanel.tsx:17 -msgid "Display Settings" -msgstr "" - -#: src/components/widgets/DisplayWidget.tsx:15 -#: src/pages/Index/Settings/AccountSettings/DisplaySettingsPanel.tsx:23 -msgid "Color Mode" -msgstr "" - -#: src/components/widgets/DisplayWidget.tsx:21 -#: src/pages/Index/Settings/AccountSettings/DisplaySettingsPanel.tsx:33 -msgid "Language" -msgstr "" - #: src/components/widgets/FeedbackWidget.tsx:19 -msgid "Something is new: Platform UI" -msgstr "" +#~ msgid "Something is new: Platform UI" +#~ msgstr "Something is new: Platform UI" #: src/components/widgets/FeedbackWidget.tsx:21 -msgid "We are building a new UI with a modern stack. What you currently see is not fixed and will be redesigned but demonstrates the UI/UX possibilities we will have going forward." -msgstr "" +#~ msgid "We are building a new UI with a modern stack. What you currently see is not fixed and will be redesigned but demonstrates the UI/UX possibilities we will have going forward." +#~ msgstr "We are building a new UI with a modern stack. What you currently see is not fixed and will be redesigned but demonstrates the UI/UX possibilities we will have going forward." #: src/components/widgets/FeedbackWidget.tsx:32 -msgid "Provide Feedback" -msgstr "" +#~ msgid "Provide Feedback" +#~ msgstr "Provide Feedback" #: src/components/widgets/GetStartedWidget.tsx:11 -msgid "Getting started" -msgstr "" +#~ msgid "Getting started" +#~ msgstr "Getting started" #: src/components/widgets/MarkdownEditor.tsx:108 #~ msgid "Failed to upload image" @@ -2186,28 +2757,24 @@ msgstr "" #~ msgstr "Notes saved" #: src/components/widgets/WidgetLayout.tsx:166 -msgid "Layout" -msgstr "" +#~ msgid "Layout" +#~ msgstr "Layout" #: src/components/widgets/WidgetLayout.tsx:172 -msgid "Reset Layout" -msgstr "" +#~ msgid "Reset Layout" +#~ msgstr "Reset Layout" #: src/components/widgets/WidgetLayout.tsx:185 -msgid "Stop Edit" -msgstr "" - -#: src/components/widgets/WidgetLayout.tsx:185 -msgid "Edit Layout" -msgstr "" +#~ msgid "Stop Edit" +#~ msgstr "Stop Edit" #: src/components/widgets/WidgetLayout.tsx:191 -msgid "Appearance" -msgstr "" +#~ msgid "Appearance" +#~ msgstr "Appearance" #: src/components/widgets/WidgetLayout.tsx:203 -msgid "Show Boxes" -msgstr "" +#~ msgid "Show Boxes" +#~ msgstr "Show Boxes" #: src/contexts/LanguageContext.tsx:20 msgid "Arabic" @@ -2286,201 +2853,175 @@ msgid "Korean" msgstr "" #: src/contexts/LanguageContext.tsx:39 -msgid "Latvian" +msgid "Lithuanian" msgstr "" #: src/contexts/LanguageContext.tsx:40 -msgid "Dutch" +msgid "Latvian" msgstr "" #: src/contexts/LanguageContext.tsx:41 -msgid "Norwegian" +msgid "Dutch" msgstr "" #: src/contexts/LanguageContext.tsx:42 -msgid "Polish" +msgid "Norwegian" msgstr "" #: src/contexts/LanguageContext.tsx:43 -msgid "Portuguese" +msgid "Polish" msgstr "" #: src/contexts/LanguageContext.tsx:44 -msgid "Portuguese (Brazilian)" +msgid "Portuguese" msgstr "" #: src/contexts/LanguageContext.tsx:45 -msgid "Romanian" +msgid "Portuguese (Brazilian)" msgstr "" #: src/contexts/LanguageContext.tsx:46 -msgid "Russian" +msgid "Romanian" msgstr "" #: src/contexts/LanguageContext.tsx:47 -msgid "Slovak" +msgid "Russian" msgstr "" #: src/contexts/LanguageContext.tsx:48 -msgid "Slovenian" +msgid "Slovak" msgstr "" #: src/contexts/LanguageContext.tsx:49 -msgid "Swedish" +msgid "Slovenian" msgstr "" #: src/contexts/LanguageContext.tsx:50 -msgid "Thai" +msgid "Swedish" msgstr "" #: src/contexts/LanguageContext.tsx:51 -msgid "Turkish" +msgid "Thai" msgstr "" #: src/contexts/LanguageContext.tsx:52 -msgid "Ukrainian" +msgid "Turkish" msgstr "" #: src/contexts/LanguageContext.tsx:53 -msgid "Vietnamese" +msgid "Ukrainian" msgstr "" #: src/contexts/LanguageContext.tsx:54 -msgid "Chinese (Simplified)" +msgid "Vietnamese" msgstr "" #: src/contexts/LanguageContext.tsx:55 +msgid "Chinese (Simplified)" +msgstr "" + +#: src/contexts/LanguageContext.tsx:56 msgid "Chinese (Traditional)" msgstr "" +#: src/defaults/actions.tsx:18 +msgid "Go to the InvenTree dashboard" +msgstr "" + #: src/defaults/actions.tsx:18 #: src/defaults/links.tsx:27 #: src/defaults/menuItems.tsx:9 -msgid "Home" -msgstr "" +#~ msgid "Home" +#~ msgstr "Home" #: src/defaults/actions.tsx:25 -#: src/defaults/links.tsx:28 -#: src/defaults/menuItems.tsx:28 -#: src/pages/Index/Dashboard.tsx:19 -#: src/pages/Index/Settings/UserSettings.tsx:46 -msgid "Dashboard" -msgstr "" - -#: src/defaults/actions.tsx:26 -msgid "Go to the InvenTree dashboard" -msgstr "" - -#: src/defaults/actions.tsx:33 msgid "Visit the documentation to learn more about InvenTree" msgstr "" -#: src/defaults/actions.tsx:39 -#: src/defaults/links.tsx:98 -#: src/defaults/links.tsx:128 +#: src/defaults/actions.tsx:31 +#: src/defaults/links.tsx:92 +#: src/defaults/links.tsx:124 msgid "About InvenTree" msgstr "" -#: src/defaults/actions.tsx:40 -#: src/defaults/links.tsx:129 +#: src/defaults/actions.tsx:32 msgid "About the InvenTree org" msgstr "" -#: src/defaults/actions.tsx:46 +#: src/defaults/actions.tsx:38 msgid "Server Information" msgstr "" -#: src/defaults/actions.tsx:47 -#: src/defaults/links.tsx:123 +#: src/defaults/actions.tsx:39 +#: src/defaults/links.tsx:118 msgid "About this Inventree instance" msgstr "" -#: src/defaults/actions.tsx:53 -#: src/defaults/links.tsx:111 +#: src/defaults/actions.tsx:45 +#: src/defaults/links.tsx:105 +#: src/defaults/links.tsx:131 msgid "License Information" msgstr "" -#: src/defaults/actions.tsx:54 -#: src/defaults/links.tsx:135 +#: src/defaults/actions.tsx:46 msgid "Licenses for dependencies of the service" msgstr "" -#: src/defaults/actions.tsx:61 +#: src/defaults/actions.tsx:52 +msgid "Open Navigation" +msgstr "" + +#: src/defaults/actions.tsx:53 msgid "Open the main navigation menu" msgstr "" -#: src/defaults/actions.tsx:72 +#: src/defaults/actions.tsx:64 msgid "Go to the Admin Center" msgstr "" -#: src/defaults/dashboardItems.tsx:15 -msgid "Subscribed Parts" -msgstr "" - -#: src/defaults/dashboardItems.tsx:22 -msgid "Subscribed Categories" -msgstr "" - #: src/defaults/dashboardItems.tsx:29 -msgid "Latest Parts" -msgstr "" +#~ msgid "Latest Parts" +#~ msgstr "Latest Parts" #: src/defaults/dashboardItems.tsx:36 -msgid "BOM Waiting Validation" -msgstr "" +#~ msgid "BOM Waiting Validation" +#~ msgstr "BOM Waiting Validation" #: src/defaults/dashboardItems.tsx:43 -msgid "Recently Updated" -msgstr "" - -#: src/defaults/dashboardItems.tsx:50 -#: src/tables/part/PartTable.tsx:238 -msgid "Low Stock" -msgstr "" +#~ msgid "Recently Updated" +#~ msgstr "Recently Updated" #: src/defaults/dashboardItems.tsx:57 -msgid "Depleted Stock" -msgstr "" +#~ msgid "Depleted Stock" +#~ msgstr "Depleted Stock" #: src/defaults/dashboardItems.tsx:64 -msgid "Required for Build Orders" -msgstr "" +#~ msgid "Required for Build Orders" +#~ msgstr "Required for Build Orders" #: src/defaults/dashboardItems.tsx:71 -msgid "Expired Stock" -msgstr "" +#~ msgid "Expired Stock" +#~ msgstr "Expired Stock" #: src/defaults/dashboardItems.tsx:78 -msgid "Stale Stock" -msgstr "" +#~ msgid "Stale Stock" +#~ msgstr "Stale Stock" #: src/defaults/dashboardItems.tsx:85 -msgid "Build Orders In Progress" -msgstr "" - -#: src/defaults/dashboardItems.tsx:92 -msgid "Overdue Build Orders" -msgstr "" +#~ msgid "Build Orders In Progress" +#~ msgstr "Build Orders In Progress" #: src/defaults/dashboardItems.tsx:99 -msgid "Outstanding Purchase Orders" -msgstr "" - -#: src/defaults/dashboardItems.tsx:106 -msgid "Overdue Purchase Orders" -msgstr "" +#~ msgid "Outstanding Purchase Orders" +#~ msgstr "Outstanding Purchase Orders" #: src/defaults/dashboardItems.tsx:113 -msgid "Outstanding Sales Orders" -msgstr "" - -#: src/defaults/dashboardItems.tsx:120 -msgid "Overdue Sales Orders" -msgstr "" +#~ msgid "Outstanding Sales Orders" +#~ msgstr "Outstanding Sales Orders" #: src/defaults/dashboardItems.tsx:127 -msgid "Current News" -msgstr "" +#~ msgid "Current News" +#~ msgstr "Current News" #: src/defaults/defaultHostList.tsx:8 #~ msgid "InvenTree Demo" @@ -2490,98 +3031,81 @@ msgstr "" #~ msgid "Local Server" #~ msgstr "Local Server" -#: src/defaults/links.tsx:12 -#: src/pages/company/CompanyDetail.tsx:96 -msgid "Website" -msgstr "" - #: src/defaults/links.tsx:17 -msgid "GitHub" -msgstr "" +#~ msgid "GitHub" +#~ msgstr "GitHub" #: src/defaults/links.tsx:22 -msgid "Demo" -msgstr "" - -#: src/defaults/links.tsx:33 -#: src/defaults/menuItems.tsx:48 -#: src/pages/company/ManufacturerDetail.tsx:9 -#: src/pages/company/ManufacturerPartDetail.tsx:263 -#: src/pages/company/SupplierDetail.tsx:9 -#: src/pages/company/SupplierPartDetail.tsx:347 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:483 -#: src/pages/purchasing/PurchasingIndex.tsx:60 -msgid "Purchasing" -msgstr "" - -#: src/defaults/links.tsx:37 -#: src/defaults/menuItems.tsx:53 -#: src/pages/company/CustomerDetail.tsx:9 -#: src/pages/sales/ReturnOrderDetail.tsx:474 -#: src/pages/sales/SalesIndex.tsx:53 -#: src/pages/sales/SalesOrderDetail.tsx:525 -msgid "Sales" -msgstr "" +#~ msgid "Demo" +#~ msgstr "Demo" #: src/defaults/links.tsx:41 #: src/defaults/menuItems.tsx:71 #: src/pages/Index/Playground.tsx:217 -msgid "Playground" -msgstr "" +#~ msgid "Playground" +#~ msgstr "Playground" -#: src/defaults/links.tsx:55 -msgid "Getting Started" -msgstr "" - -#: src/defaults/links.tsx:56 -msgid "Getting started with InvenTree" -msgstr "" - -#: src/defaults/links.tsx:62 +#: src/defaults/links.tsx:45 msgid "API" msgstr "" -#: src/defaults/links.tsx:63 +#: src/defaults/links.tsx:48 msgid "InvenTree API documentation" msgstr "" -#: src/defaults/links.tsx:68 +#: src/defaults/links.tsx:52 msgid "Developer Manual" msgstr "" -#: src/defaults/links.tsx:69 +#: src/defaults/links.tsx:55 msgid "InvenTree developer manual" msgstr "" -#: src/defaults/links.tsx:74 +#: src/defaults/links.tsx:59 msgid "FAQ" msgstr "" -#: src/defaults/links.tsx:75 +#: src/defaults/links.tsx:62 msgid "Frequently asked questions" msgstr "" +#: src/defaults/links.tsx:66 +msgid "GitHub Repository" +msgstr "" + +#: src/defaults/links.tsx:69 +msgid "InvenTree source code on GitHub" +msgstr "" + #: src/defaults/links.tsx:76 #~ msgid "Instance" #~ msgstr "Instance" +#: src/defaults/links.tsx:79 +#: src/defaults/links.tsx:117 +msgid "System Information" +msgstr "" + #: src/defaults/links.tsx:83 #~ msgid "InvenTree" #~ msgstr "InvenTree" -#: src/defaults/links.tsx:85 -#: src/defaults/links.tsx:122 -msgid "System Information" -msgstr "" - #: src/defaults/links.tsx:117 #~ msgid "Licenses for packages used by InvenTree" #~ msgstr "Licenses for packages used by InvenTree" -#: src/defaults/links.tsx:134 -msgid "Licenses" +#: src/defaults/links.tsx:125 +msgid "About the InvenTree Project" msgstr "" +#: src/defaults/links.tsx:132 +msgid "Licenses for dependencies of the InvenTree software" +msgstr "" + +#: src/defaults/links.tsx:134 +#~ msgid "Licenses" +#~ msgstr "Licenses" + #: src/defaults/menuItems.tsx:7 #~ msgid "Open sourcea" #~ msgstr "Open sourcea" @@ -2607,8 +3131,8 @@ msgstr "" #~ msgstr "Profile page" #: src/defaults/menuItems.tsx:17 -msgid "User attributes and design settings." -msgstr "" +#~ msgid "User attributes and design settings." +#~ msgstr "User attributes and design settings." #: src/defaults/menuItems.tsx:21 #~ msgid "Free for everyone" @@ -2619,8 +3143,8 @@ msgstr "" #~ msgstr "The fluid of Smeargle’s tail secretions changes" #: src/defaults/menuItems.tsx:23 -msgid "View for interactive scanning and multiple actions." -msgstr "" +#~ msgid "View for interactive scanning and multiple actions." +#~ msgstr "View for interactive scanning and multiple actions." #: src/defaults/menuItems.tsx:24 #~ msgid "The fluid of Smeargle’s tail secretions changes in the intensity" @@ -2698,51 +3222,130 @@ msgstr "" #~ msgid "Are you sure you want to delete this attachment?" #~ msgstr "Are you sure you want to delete this attachment?" -#: src/forms/BuildForms.tsx:158 -msgid "Next serial number" +#: src/forms/BuildForms.tsx:248 +#~ msgid "Remove output" +#~ msgstr "Remove output" + +#: src/forms/BuildForms.tsx:269 +#: src/tables/build/BuildAllocatedStockTable.tsx:147 +#: src/tables/build/BuildOrderTestTable.tsx:177 +#: src/tables/build/BuildOrderTestTable.tsx:201 +#: src/tables/build/BuildOutputTable.tsx:460 +msgid "Build Output" msgstr "" -#: src/forms/BuildForms.tsx:162 -msgid "Latest serial number" +#: src/forms/BuildForms.tsx:269 +#: src/forms/BuildForms.tsx:337 +#: src/forms/BuildForms.tsx:385 +#: src/tables/build/BuildLineTable.tsx:89 +msgid "Batch" msgstr "" -#: src/forms/BuildForms.tsx:234 -msgid "Remove output" +#: src/forms/BuildForms.tsx:269 +#: src/forms/BuildForms.tsx:337 +#: src/forms/BuildForms.tsx:385 +#: src/forms/PurchaseOrderForms.tsx:603 +#: src/pages/build/BuildDetail.tsx:104 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:142 +#: src/pages/sales/ReturnOrderDetail.tsx:113 +#: src/pages/sales/SalesOrderDetail.tsx:122 +#: src/tables/build/BuildOrderTable.tsx:125 +#: src/tables/machine/MachineListTable.tsx:336 +#: src/tables/part/PartPurchaseOrdersTable.tsx:37 +#: src/tables/purchasing/PurchaseOrderTable.tsx:58 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:157 +#: src/tables/sales/ReturnOrderTable.tsx:56 +#: src/tables/sales/SalesOrderTable.tsx:56 +#: src/tables/settings/CustomStateTable.tsx:57 +#: src/tables/settings/ImportSessionTable.tsx:114 +#: src/tables/stock/StockItemTable.tsx:298 +#: src/tables/stock/StockTrackingTable.tsx:56 +msgid "Status" msgstr "" -#: src/forms/BuildForms.tsx:316 +#: src/forms/BuildForms.tsx:289 msgid "Complete Build Outputs" msgstr "" -#: src/forms/BuildForms.tsx:320 +#: src/forms/BuildForms.tsx:292 msgid "Build outputs have been completed" msgstr "" -#: src/forms/BuildForms.tsx:389 +#: src/forms/BuildForms.tsx:353 msgid "Scrap Build Outputs" msgstr "" -#: src/forms/BuildForms.tsx:393 +#: src/forms/BuildForms.tsx:356 msgid "Build outputs have been scrapped" msgstr "" -#: src/forms/BuildForms.tsx:425 -#: src/forms/BuildForms.tsx:449 +#: src/forms/BuildForms.tsx:393 msgid "Cancel Build Outputs" msgstr "" -#: src/forms/BuildForms.tsx:426 -msgid "Selected build outputs will be deleted" +#: src/forms/BuildForms.tsx:396 +msgid "Build outputs have been cancelled" msgstr "" -#: src/forms/BuildForms.tsx:453 -msgid "Build outputs have been cancelled" +#: src/forms/BuildForms.tsx:408 +#~ msgid "Selected build outputs will be deleted" +#~ msgstr "Selected build outputs will be deleted" + +#: src/forms/BuildForms.tsx:470 +#~ msgid "Remove line" +#~ msgstr "Remove line" + +#: src/forms/BuildForms.tsx:515 +#: src/forms/SalesOrderForms.tsx:248 +#: src/tables/build/BuildLineTable.tsx:174 +#: src/tables/sales/SalesOrderLineItemTable.tsx:276 +#: src/tables/stock/StockItemTable.tsx:309 +msgid "Allocated" +msgstr "" + +#: src/forms/BuildForms.tsx:545 +#: src/forms/SalesOrderForms.tsx:239 +#: src/pages/build/BuildDetail.tsx:208 +msgid "Source Location" +msgstr "" + +#: src/forms/BuildForms.tsx:546 +#: src/forms/SalesOrderForms.tsx:240 +msgid "Select the source location for the stock allocation" +msgstr "" + +#: src/forms/BuildForms.tsx:566 +#: src/forms/SalesOrderForms.tsx:274 +#: src/tables/build/BuildLineTable.tsx:442 +#: src/tables/build/BuildLineTable.tsx:569 +#: src/tables/build/BuildLineTable.tsx:642 +#: src/tables/sales/SalesOrderLineItemTable.tsx:302 +#: src/tables/sales/SalesOrderLineItemTable.tsx:326 +msgid "Allocate Stock" +msgstr "" + +#: src/forms/BuildForms.tsx:569 +#: src/forms/SalesOrderForms.tsx:279 +msgid "Stock items allocated" msgstr "" #: src/forms/CompanyForms.tsx:150 #~ msgid "Company updated" #~ msgstr "Company updated" +#: src/forms/PartForms.tsx:67 +#: src/forms/PartForms.tsx:154 +#: src/pages/part/CategoryDetail.tsx:117 +#: src/pages/part/PartDetail.tsx:384 +#: src/tables/part/PartCategoryTable.tsx:90 +#: src/tables/part/PartTable.tsx:294 +msgid "Subscribed" +msgstr "" + +#: src/forms/PartForms.tsx:68 +msgid "Subscribe to notifications for this part" +msgstr "" + #: src/forms/PartForms.tsx:106 #~ msgid "Create Part" #~ msgstr "Create Part" @@ -2751,191 +3354,190 @@ msgstr "" #~ msgid "Part created" #~ msgstr "Part created" -#: src/forms/PartForms.tsx:124 -msgid "Parent part category" -msgstr "" - #: src/forms/PartForms.tsx:129 #~ msgid "Part updated" #~ msgstr "Part updated" -#: src/forms/PurchaseOrderForms.tsx:300 +#: src/forms/PartForms.tsx:140 +msgid "Parent part category" +msgstr "" + +#: src/forms/PartForms.tsx:155 +msgid "Subscribe to notifications for this category" +msgstr "" + +#: src/forms/PurchaseOrderForms.tsx:314 +msgid "Assign Batch Code and Serial Numbers" +msgstr "" + +#: src/forms/PurchaseOrderForms.tsx:316 +msgid "Assign Batch Code" +msgstr "" + +#: src/forms/PurchaseOrderForms.tsx:336 msgid "Choose Location" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:308 +#: src/forms/PurchaseOrderForms.tsx:344 msgid "Item Destination selected" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:317 +#: src/forms/PurchaseOrderForms.tsx:353 msgid "Part category default location selected" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:327 +#: src/forms/PurchaseOrderForms.tsx:363 msgid "Received stock location selected" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:332 +#: src/forms/PurchaseOrderForms.tsx:368 msgid "Default location selected" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:343 -#: src/forms/PurchaseOrderForms.tsx:435 -msgid "Scan Barcode" -msgstr "" +#: src/forms/PurchaseOrderForms.tsx:421 +#~ msgid "Assign Batch Code{0}" +#~ msgstr "Assign Batch Code{0}" -#: src/forms/PurchaseOrderForms.tsx:388 +#: src/forms/PurchaseOrderForms.tsx:427 msgid "Set Location" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:396 -msgid "Assign Batch Code{0}" -msgstr "" - -#: src/forms/PurchaseOrderForms.tsx:405 -#: src/forms/StockForms.tsx:420 +#: src/forms/PurchaseOrderForms.tsx:442 +#: src/forms/StockForms.tsx:539 msgid "Adjust Packaging" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:412 -msgid "Change Status" -msgstr "" - -#: src/forms/PurchaseOrderForms.tsx:418 -msgid "Add Note" -msgstr "" - #: src/forms/PurchaseOrderForms.tsx:444 #: src/forms/StockForms.tsx:428 -msgid "Remove item from list" +#~ msgid "Remove item from list" +#~ msgstr "Remove item from list" + +#: src/forms/PurchaseOrderForms.tsx:450 +msgid "Change Status" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:471 -#: src/forms/StockForms.tsx:499 -#: src/forms/StockForms.tsx:533 -#: src/forms/StockForms.tsx:562 -#: src/forms/StockForms.tsx:590 -#: src/forms/StockForms.tsx:621 -#: src/forms/StockForms.tsx:656 -#: src/forms/StockForms.tsx:698 -#: src/forms/StockForms.tsx:734 -#: src/pages/stock/StockDetail.tsx:181 -#: src/tables/ColumnRenderers.tsx:49 -#: src/tables/stock/StockTrackingTable.tsx:85 +#: src/forms/PurchaseOrderForms.tsx:456 +msgid "Add Note" +msgstr "" + +#: src/forms/PurchaseOrderForms.tsx:503 +#: src/forms/StockForms.tsx:614 +#: src/forms/StockForms.tsx:651 +#: src/forms/StockForms.tsx:677 +#: src/forms/StockForms.tsx:705 +#: src/forms/StockForms.tsx:736 +#: src/forms/StockForms.tsx:771 +#: src/forms/StockForms.tsx:813 +#: src/forms/StockForms.tsx:851 +#: src/pages/stock/StockDetail.tsx:202 +#: src/tables/ColumnRenderers.tsx:60 +#: src/tables/stock/StockTrackingTable.tsx:89 msgid "Location" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:486 +#: src/forms/PurchaseOrderForms.tsx:518 msgid "Store at default location" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:499 +#: src/forms/PurchaseOrderForms.tsx:533 msgid "Store at line item destination" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:509 +#: src/forms/PurchaseOrderForms.tsx:545 msgid "Store with already received stock" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:524 -#: src/pages/build/BuildDetail.tsx:219 -#: src/pages/stock/StockDetail.tsx:162 -#: src/pages/stock/StockDetail.tsx:599 -#: src/tables/build/BuildAllocatedStockTable.tsx:109 -#: src/tables/build/BuildOrderTestTable.tsx:188 -#: src/tables/sales/SalesOrderAllocationTable.tsx:87 +#: src/forms/PurchaseOrderForms.tsx:566 +#: src/pages/build/BuildDetail.tsx:222 +#: src/pages/stock/StockDetail.tsx:185 +#: src/pages/stock/StockDetail.tsx:793 +#: src/tables/build/BuildAllocatedStockTable.tsx:130 +#: src/tables/build/BuildOrderTestTable.tsx:189 +#: src/tables/build/BuildOutputTable.tsx:86 +#: src/tables/sales/SalesOrderAllocationTable.tsx:113 msgid "Batch Code" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:535 -msgid "Serial numbers" +#: src/forms/PurchaseOrderForms.tsx:566 +#~ msgid "Serial numbers" +#~ msgstr "Serial numbers" + +#: src/forms/PurchaseOrderForms.tsx:567 +msgid "Enter batch code for received items" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:544 -#: src/forms/StockForms.tsx:443 -#: src/pages/company/SupplierPartDetail.tsx:156 -#: src/pages/company/SupplierPartDetail.tsx:207 -#: src/pages/stock/StockDetail.tsx:244 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:192 +#: src/forms/PurchaseOrderForms.tsx:579 +#: src/forms/StockForms.tsx:152 +msgid "Serial Numbers" +msgstr "" + +#: src/forms/PurchaseOrderForms.tsx:580 +msgid "Enter serial numbers for received items" +msgstr "" + +#: src/forms/PurchaseOrderForms.tsx:590 +#: src/forms/StockForms.tsx:556 +#: src/pages/company/SupplierPartDetail.tsx:168 +#: src/pages/company/SupplierPartDetail.tsx:219 +#: src/pages/stock/StockDetail.tsx:320 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:198 msgid "Packaging" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:556 -#: src/pages/build/BuildDetail.tsx:109 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:148 -#: src/pages/sales/ReturnOrderDetail.tsx:121 -#: src/pages/sales/SalesOrderDetail.tsx:127 -#: src/tables/build/BuildOrderTable.tsx:122 -#: src/tables/machine/MachineListTable.tsx:335 -#: src/tables/part/PartPurchaseOrdersTable.tsx:37 -#: src/tables/purchasing/PurchaseOrderTable.tsx:55 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:132 -#: src/tables/sales/ReturnOrderTable.tsx:46 -#: src/tables/sales/SalesOrderTable.tsx:53 -#: src/tables/settings/ImportSessionTable.tsx:115 -#: src/tables/stock/StockItemTable.tsx:294 -#: src/tables/stock/StockTrackingTable.tsx:52 -msgid "Status" -msgstr "" - -#: src/forms/PurchaseOrderForms.tsx:564 -#: src/pages/company/SupplierPartDetail.tsx:110 -#: src/tables/ColumnRenderers.tsx:132 +#: src/forms/PurchaseOrderForms.tsx:612 +#: src/pages/company/SupplierPartDetail.tsx:115 +#: src/tables/ColumnRenderers.tsx:143 msgid "Note" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/pages/company/SupplierPartDetail.tsx:128 -#: src/tables/purchasing/SupplierPriceBreakTable.tsx:57 -msgid "SKU" -msgstr "" - -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/tables/part/PartPurchaseOrdersTable.tsx:120 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:178 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:127 -msgid "Received" -msgstr "" - -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/forms/StockForms.tsx:499 -#: src/forms/StockForms.tsx:533 -#: src/forms/StockForms.tsx:562 -#: src/forms/StockForms.tsx:590 -#: src/forms/StockForms.tsx:621 -#: src/forms/StockForms.tsx:656 -#: src/forms/StockForms.tsx:698 -#: src/forms/StockForms.tsx:734 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:413 -#: src/tables/RowActions.tsx:113 -msgid "Actions" -msgstr "" - -#: src/forms/PurchaseOrderForms.tsx:655 -msgid "Receive Line Items" -msgstr "" - #: src/forms/PurchaseOrderForms.tsx:658 #~ msgid "Receive line items" #~ msgstr "Receive line items" -#: src/forms/StockForms.tsx:104 -msgid "Add given quantity as packs instead of individual items" +#: src/forms/PurchaseOrderForms.tsx:689 +#: src/pages/company/SupplierPartDetail.tsx:133 +#: src/tables/purchasing/SupplierPriceBreakTable.tsx:57 +msgid "SKU" +msgstr "" + +#: src/forms/PurchaseOrderForms.tsx:689 +#: src/tables/part/PartPurchaseOrdersTable.tsx:126 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:184 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:247 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:152 +msgid "Received" +msgstr "" + +#: src/forms/PurchaseOrderForms.tsx:701 +msgid "Receive Line Items" +msgstr "" + +#: src/forms/ReturnOrderForms.tsx:201 +msgid "Receive Items" +msgstr "" + +#: src/forms/ReturnOrderForms.tsx:208 +msgid "Item received into stock" +msgstr "" + +#: src/forms/StockForms.tsx:80 +#: src/hooks/UsePlaceholder.tsx:57 +msgid "Next serial number" msgstr "" #: src/forms/StockForms.tsx:110 #~ msgid "Create Stock Item" #~ msgstr "Create Stock Item" -#: src/forms/StockForms.tsx:117 +#: src/forms/StockForms.tsx:131 +msgid "Add given quantity as packs instead of individual items" +msgstr "" + +#: src/forms/StockForms.tsx:145 msgid "Enter initial quantity for this stock item" msgstr "" -#: src/forms/StockForms.tsx:124 -msgid "Serial Numbers" -msgstr "" - -#: src/forms/StockForms.tsx:125 +#: src/forms/StockForms.tsx:154 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" @@ -2943,82 +3545,102 @@ msgstr "" #~ msgid "Stock item updated" #~ msgstr "Stock item updated" -#: src/forms/StockForms.tsx:179 -#: src/pages/stock/StockDetail.tsx:434 -#: src/tables/stock/StockItemTable.tsx:417 -#: src/tables/stock/StockItemTable.tsx:535 +#: src/forms/StockForms.tsx:169 +#: src/pages/stock/StockDetail.tsx:131 +msgid "Stock Status" +msgstr "" + +#: src/forms/StockForms.tsx:218 +#: src/pages/stock/StockDetail.tsx:554 +#: src/tables/stock/StockItemTable.tsx:421 +#: src/tables/stock/StockItemTable.tsx:541 msgid "Add Stock Item" msgstr "" -#: src/forms/StockForms.tsx:362 +#: src/forms/StockForms.tsx:262 +msgid "Select the part to install" +msgstr "" + +#: src/forms/StockForms.tsx:480 msgid "Loading..." msgstr "" -#: src/forms/StockForms.tsx:408 +#: src/forms/StockForms.tsx:527 msgid "Move to default location" msgstr "" -#: src/forms/StockForms.tsx:499 -#: src/forms/StockForms.tsx:533 -#: src/forms/StockForms.tsx:562 -#: src/forms/StockForms.tsx:590 -#: src/forms/StockForms.tsx:621 -#: src/forms/StockForms.tsx:656 -#: src/forms/StockForms.tsx:698 -#: src/forms/StockForms.tsx:734 -#: src/pages/part/PartDetail.tsx:230 -#: src/pages/part/PartDetail.tsx:843 -#: src/tables/stock/StockItemTable.tsx:325 +#: src/forms/StockForms.tsx:614 +#: src/forms/StockForms.tsx:651 +#: src/forms/StockForms.tsx:677 +#: src/forms/StockForms.tsx:705 +#: src/forms/StockForms.tsx:736 +#: src/forms/StockForms.tsx:771 +#: src/forms/StockForms.tsx:813 +#: src/forms/StockForms.tsx:851 +#: src/pages/part/PartDetail.tsx:251 +#: src/pages/part/PartDetail.tsx:875 +#: src/tables/stock/StockItemTable.tsx:329 msgid "In Stock" msgstr "" -#: src/forms/StockForms.tsx:499 +#: src/forms/StockForms.tsx:614 msgid "Move" msgstr "" -#: src/forms/StockForms.tsx:562 -#: src/pages/stock/StockDetail.tsx:518 -#: src/tables/stock/StockItemTestResultTable.tsx:328 +#: src/forms/StockForms.tsx:677 +#: src/pages/stock/StockDetail.tsx:681 +#: src/tables/stock/StockItemTestResultTable.tsx:346 msgid "Add" msgstr "" -#: src/forms/StockForms.tsx:590 -#: src/pages/Index/Scan.tsx:266 -#: src/pages/stock/StockDetail.tsx:508 +#: src/forms/StockForms.tsx:705 +#: src/pages/Index/Scan.tsx:280 +#: src/pages/stock/StockDetail.tsx:670 msgid "Count" msgstr "" -#: src/forms/StockForms.tsx:835 +#: src/forms/StockForms.tsx:953 +#: src/pages/stock/StockDetail.tsx:682 +#: src/tables/stock/StockItemTable.tsx:454 msgid "Add Stock" msgstr "" -#: src/forms/StockForms.tsx:844 +#: src/forms/StockForms.tsx:962 +#: src/pages/stock/StockDetail.tsx:691 +#: src/tables/stock/StockItemTable.tsx:463 msgid "Remove Stock" msgstr "" -#: src/forms/StockForms.tsx:853 -#: src/pages/part/PartDetail.tsx:1017 +#: src/forms/StockForms.tsx:971 +#: src/pages/part/PartDetail.tsx:1039 +#: src/pages/stock/StockDetail.tsx:712 +#: src/tables/stock/StockItemTable.tsx:483 msgid "Transfer Stock" msgstr "" -#: src/forms/StockForms.tsx:862 -#: src/pages/part/PartDetail.tsx:1006 +#: src/forms/StockForms.tsx:980 +#: src/pages/part/PartDetail.tsx:1028 +#: src/pages/stock/LocationDetail.tsx:314 +#: src/pages/stock/LocationDetail.tsx:318 +#: src/tables/stock/StockItemTable.tsx:472 +#: src/tables/stock/StockItemTable.tsx:476 msgid "Count Stock" msgstr "" -#: src/forms/StockForms.tsx:871 +#: src/forms/StockForms.tsx:989 msgid "Change Stock Status" msgstr "" -#: src/forms/StockForms.tsx:880 +#: src/forms/StockForms.tsx:998 msgid "Merge Stock" msgstr "" -#: src/forms/StockForms.tsx:899 +#: src/forms/StockForms.tsx:1017 +#: src/tables/stock/StockItemTable.tsx:530 msgid "Delete Stock Items" msgstr "" -#: src/forms/StockForms.tsx:906 +#: src/forms/StockForms.tsx:1024 msgid "Parent stock location" msgstr "" @@ -3042,11 +3664,11 @@ msgstr "" #~ msgid "You have been logged out" #~ msgstr "You have been logged out" -#: src/functions/auth.tsx:117 +#: src/functions/auth.tsx:128 msgid "Logged Out" msgstr "" -#: src/functions/auth.tsx:118 +#: src/functions/auth.tsx:129 msgid "Successfully logged out" msgstr "" @@ -3062,20 +3684,20 @@ msgstr "" #~ msgid "Found an existing login - welcome back!" #~ msgstr "Found an existing login - welcome back!" -#: src/functions/auth.tsx:156 +#: src/functions/auth.tsx:167 msgid "Check your inbox for a reset link. This only works if you have an account. Check in spam too." msgstr "" -#: src/functions/auth.tsx:163 +#: src/functions/auth.tsx:174 #: src/pages/Auth/Set-Password.tsx:39 msgid "Reset failed" msgstr "" -#: src/functions/auth.tsx:194 +#: src/functions/auth.tsx:205 msgid "Logged In" msgstr "" -#: src/functions/auth.tsx:195 +#: src/functions/auth.tsx:206 msgid "Successfully logged in" msgstr "" @@ -3095,30 +3717,38 @@ msgstr "" #~ msgid "method parameter not supplied" #~ msgstr "method parameter not supplied" -#: src/functions/notifications.tsx:10 +#: src/functions/notifications.tsx:12 msgid "Not implemented" msgstr "" -#: src/functions/notifications.tsx:11 +#: src/functions/notifications.tsx:13 msgid "This feature is not yet implemented" msgstr "" -#: src/functions/notifications.tsx:21 -msgid "Permission denied" -msgstr "" +#: src/functions/notifications.tsx:24 +#~ msgid "Permission denied" +#~ msgstr "Permission denied" -#: src/functions/notifications.tsx:22 +#: src/functions/notifications.tsx:25 msgid "You do not have permission to perform this action" msgstr "" -#: src/functions/notifications.tsx:33 +#: src/functions/notifications.tsx:36 msgid "Invalid Return Code" msgstr "" -#: src/functions/notifications.tsx:34 +#: src/functions/notifications.tsx:37 msgid "Server returned status {returnCode}" msgstr "" +#: src/functions/notifications.tsx:47 +msgid "Timeout" +msgstr "" + +#: src/functions/notifications.tsx:48 +msgid "The request timed out" +msgstr "" + #: src/hooks/UseForm.tsx:88 msgid "Item Created" msgstr "" @@ -3135,20 +3765,24 @@ msgstr "" msgid "Are you sure you want to delete this item?" msgstr "" +#: src/hooks/UsePlaceholder.tsx:59 +msgid "Latest serial number" +msgstr "" + #: src/pages/Auth/Logged-In.tsx:22 msgid "Checking if you are already logged in" msgstr "" -#: src/pages/Auth/Login.tsx:31 -#: src/pages/Index/Scan.tsx:329 +#: src/pages/Auth/Login.tsx:35 +#: src/pages/Index/Scan.tsx:343 msgid "No selection" msgstr "" -#: src/pages/Auth/Login.tsx:87 +#: src/pages/Auth/Login.tsx:91 msgid "Welcome, log in below" msgstr "Dobrodošli, prijavite se ispod" -#: src/pages/Auth/Login.tsx:89 +#: src/pages/Auth/Login.tsx:93 msgid "Register below" msgstr "" @@ -3162,8 +3796,8 @@ msgstr "" #: src/pages/Auth/Reset.tsx:41 #: src/pages/Auth/Set-Password.tsx:112 -msgid "Send mail" -msgstr "" +#~ msgid "Send mail" +#~ msgstr "Send mail" #: src/pages/Auth/Set-Password.tsx:30 msgid "Token invalid" @@ -3174,22 +3808,22 @@ msgid "You need to provide a valid token to set a new password. Check your inbox msgstr "" #: src/pages/Auth/Set-Password.tsx:49 -msgid "No token provided" -msgstr "" +#~ msgid "No token provided" +#~ msgstr "No token provided" #: src/pages/Auth/Set-Password.tsx:50 -msgid "You need to provide a token to set a new password. Check your inbox for a reset link." -msgstr "" +#~ msgid "You need to provide a token to set a new password. Check your inbox for a reset link." +#~ msgstr "You need to provide a token to set a new password. Check your inbox for a reset link." -#: src/pages/Auth/Set-Password.tsx:73 +#: src/pages/Auth/Set-Password.tsx:68 msgid "Password set" msgstr "" -#: src/pages/Auth/Set-Password.tsx:74 +#: src/pages/Auth/Set-Password.tsx:69 msgid "The password was set successfully. You can now login with your new password" msgstr "" -#: src/pages/Auth/Set-Password.tsx:101 +#: src/pages/Auth/Set-Password.tsx:96 msgid "Set new password" msgstr "" @@ -3206,20 +3840,20 @@ msgstr "" #~ msgstr "Sorry, an unexpected error has occurred." #: src/pages/Index/Dashboard.tsx:22 -msgid "Autoupdate" -msgstr "" +#~ msgid "Autoupdate" +#~ msgstr "Autoupdate" #: src/pages/Index/Dashboard.tsx:26 -msgid "This page is a replacement for the old start page with the same information. This page will be deprecated and replaced by the home page." -msgstr "" +#~ msgid "This page is a replacement for the old start page with the same information. This page will be deprecated and replaced by the home page." +#~ msgstr "This page is a replacement for the old start page with the same information. This page will be deprecated and replaced by the home page." #: src/pages/Index/Home.tsx:58 -msgid "Welcome to your Dashboard{0}" -msgstr "" +#~ msgid "Welcome to your Dashboard{0}" +#~ msgstr "Welcome to your Dashboard{0}" #: src/pages/Index/Playground.tsx:222 -msgid "This page is a showcase for the possibilities of Platform UI." -msgstr "" +#~ msgid "This page is a showcase for the possibilities of Platform UI." +#~ msgstr "This page is a showcase for the possibilities of Platform UI." #: src/pages/Index/Profile/Profile.tsx:30 #: src/pages/Index/Profile/Profile.tsx:141 @@ -3365,125 +3999,190 @@ msgstr "" msgid "Image Barcode" msgstr "" -#: src/pages/Index/Scan.tsx:247 +#: src/pages/Index/Scan.tsx:261 msgid "Selected elements are not known" msgstr "" -#: src/pages/Index/Scan.tsx:254 +#: src/pages/Index/Scan.tsx:268 msgid "Multiple object types selected" msgstr "" -#: src/pages/Index/Scan.tsx:261 +#: src/pages/Index/Scan.tsx:275 msgid "Actions for {0}" msgstr "" -#: src/pages/Index/Scan.tsx:282 +#: src/pages/Index/Scan.tsx:296 msgid "Scan Page" msgstr "" -#: src/pages/Index/Scan.tsx:285 +#: src/pages/Index/Scan.tsx:299 msgid "This page can be used for continuously scanning items and taking actions on them." msgstr "" -#: src/pages/Index/Scan.tsx:292 +#: src/pages/Index/Scan.tsx:306 msgid "Toggle Fullscreen" msgstr "" -#: src/pages/Index/Scan.tsx:305 +#: src/pages/Index/Scan.tsx:319 msgid "Select the input method you want to use to scan items." msgstr "" -#: src/pages/Index/Scan.tsx:307 +#: src/pages/Index/Scan.tsx:321 msgid "Input" msgstr "" -#: src/pages/Index/Scan.tsx:314 +#: src/pages/Index/Scan.tsx:328 msgid "Select input method" msgstr "" -#: src/pages/Index/Scan.tsx:315 +#: src/pages/Index/Scan.tsx:329 msgid "Nothing found" msgstr "" -#: src/pages/Index/Scan.tsx:323 +#: src/pages/Index/Scan.tsx:337 msgid "Depending on the selected parts actions will be shown here. Not all barcode types are supported currently." msgstr "" -#: src/pages/Index/Scan.tsx:325 +#: src/pages/Index/Scan.tsx:339 msgid "Action" msgstr "" -#: src/pages/Index/Scan.tsx:334 +#: src/pages/Index/Scan.tsx:348 msgid "{0} items selected" msgstr "" -#: src/pages/Index/Scan.tsx:337 +#: src/pages/Index/Scan.tsx:351 msgid "General Actions" msgstr "" -#: src/pages/Index/Scan.tsx:351 +#: src/pages/Index/Scan.tsx:365 msgid "Lookup part" msgstr "" -#: src/pages/Index/Scan.tsx:359 +#: src/pages/Index/Scan.tsx:373 msgid "Open Link" msgstr "" -#: src/pages/Index/Scan.tsx:375 +#: src/pages/Index/Scan.tsx:389 msgid "History is locally kept in this browser." msgstr "" -#: src/pages/Index/Scan.tsx:376 +#: src/pages/Index/Scan.tsx:390 msgid "The history is kept in this browser's local storage. So it won't be shared with other users or other devices but is persistent through reloads. You can select items in the history to perform actions on them. To add items, scan/enter them in the Input area." msgstr "" -#: src/pages/Index/Scan.tsx:378 +#: src/pages/Index/Scan.tsx:392 #: src/pages/Notifications.tsx:100 msgid "History" msgstr "" -#: src/pages/Index/Scan.tsx:384 +#: src/pages/Index/Scan.tsx:398 msgid "Delete History" msgstr "" -#: src/pages/Index/Scan.tsx:449 +#: src/pages/Index/Scan.tsx:463 msgid "No history" msgstr "" -#: src/pages/Index/Scan.tsx:467 +#: src/pages/Index/Scan.tsx:481 msgid "Item" msgstr "" -#: src/pages/Index/Scan.tsx:470 +#: src/pages/Index/Scan.tsx:484 msgid "Type" msgstr "" -#: src/pages/Index/Scan.tsx:473 +#: src/pages/Index/Scan.tsx:487 msgid "Source" msgstr "" -#: src/pages/Index/Scan.tsx:476 +#: src/pages/Index/Scan.tsx:490 msgid "Scanned at" msgstr "" -#: src/pages/Index/Scan.tsx:528 +#: src/pages/Index/Scan.tsx:547 msgid "Enter item serial or data" msgstr "" -#: src/pages/Index/Scan.tsx:540 +#: src/pages/Index/Scan.tsx:559 msgid "Add dummy item" msgstr "" +#: src/pages/Index/Scan.tsx:569 +msgid "Start scanning by selecting a camera and pressing the play button." +msgstr "" + +#: src/pages/Index/Scan.tsx:650 +msgid "Error while getting camera" +msgstr "" + +#: src/pages/Index/Scan.tsx:673 +msgid "Error while scanning" +msgstr "" + +#: src/pages/Index/Scan.tsx:687 +msgid "Error while stopping" +msgstr "" + +#: src/pages/Index/Scan.tsx:745 +msgid "Stop scanning" +msgstr "" + +#: src/pages/Index/Scan.tsx:754 +msgid "Start scanning" +msgstr "" + +#: src/pages/Index/Scan.tsx:763 +msgid "Scanning" +msgstr "" + +#: src/pages/Index/Scan.tsx:763 +msgid "Not scanning" +msgstr "" + +#: src/pages/Index/Scan.tsx:775 +msgid "Select Camera" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:28 +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:50 +msgid "Edit User Information" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:32 +msgid "User details updated" +msgstr "" + #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:41 -msgid "Account Details" +msgid "User Details" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:41 +#~ msgid "Account Details" +#~ msgstr "Account Details" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:44 +msgid "User Actions" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:48 +msgid "Edit User" msgstr "" #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:50 -msgid "First name" +#~ msgid "First name" +#~ msgstr "First name" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:54 +msgid "Set Password" msgstr "" #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:55 -msgid "Last name" +#~ msgid "Last name" +#~ msgstr "Last name" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:56 +msgid "Set User Password" msgstr "" #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:58 @@ -3495,15 +4194,28 @@ msgstr "" #~ msgstr "Last name: {0}" #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:67 -msgid "First name:" -msgstr "" +#~ msgid "First name:" +#~ msgstr "First name:" #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:71 -msgid "Last name:" +#~ msgid "Last name:" +#~ msgstr "Last name:" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:73 +msgid "First Name" msgstr "" -#: src/pages/Index/Settings/AccountSettings/DisplaySettingsPanel.tsx:41 -msgid "Use pseudo language" +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:79 +msgid "Last Name" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:85 +msgid "Staff Access" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:93 +#: src/tables/settings/UserTable.tsx:293 +msgid "Superuser" msgstr "" #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:55 @@ -3600,27 +4312,6 @@ msgstr "" msgid "No tokens configured" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:398 -#: src/pages/part/PartDetail.tsx:297 -#: src/tables/bom/UsedInTable.tsx:84 -#: src/tables/build/BuildOrderTable.tsx:110 -#: src/tables/company/CompanyTable.tsx:61 -#: src/tables/company/CompanyTable.tsx:95 -#: src/tables/machine/MachineListTable.tsx:332 -#: src/tables/machine/MachineListTable.tsx:594 -#: src/tables/part/ParametricPartTable.tsx:223 -#: src/tables/part/PartTable.tsx:178 -#: src/tables/part/PartVariantTable.tsx:15 -#: src/tables/plugin/PluginListTable.tsx:149 -#: src/tables/plugin/PluginListTable.tsx:271 -#: src/tables/plugin/PluginListTable.tsx:563 -#: src/tables/purchasing/SupplierPartTable.tsx:98 -#: src/tables/purchasing/SupplierPartTable.tsx:187 -#: src/tables/settings/UserTable.tsx:284 -#: src/tables/stock/StockItemTable.tsx:289 -msgid "Active" -msgstr "" - #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:401 msgid "Expiry" msgstr "" @@ -3630,38 +4321,74 @@ msgid "Last Seen" msgstr "" #: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:65 -msgid "bars" -msgstr "" +#~ msgid "bars" +#~ msgstr "bars" #: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:66 -msgid "oval" -msgstr "" +#~ msgid "oval" +#~ msgstr "oval" #: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:67 -msgid "dots" -msgstr "" +#~ msgid "dots" +#~ msgstr "dots" #: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:81 -msgid "Theme" -msgstr "" +#~ msgid "Theme" +#~ msgstr "Theme" #: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:87 -msgid "Primary color" +#~ msgid "Primary color" +#~ msgstr "Primary color" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:88 +msgid "Bars" msgstr "" -#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:100 +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:89 +msgid "Oval" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:90 +msgid "Dots" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:101 +msgid "Display Settings" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:107 +msgid "Language" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:115 +msgid "Use pseudo language" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:122 +msgid "Color Mode" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:133 +msgid "Highlight color" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:145 +msgid "Example" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:151 msgid "White color" msgstr "" -#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:108 +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:167 msgid "Black color" msgstr "" -#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:116 +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:183 msgid "Border Radius" msgstr "" -#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:132 +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:199 msgid "Loader" msgstr "" @@ -3673,89 +4400,156 @@ msgstr "" #~ msgid "Advanced Amininistrative Options for InvenTree" #~ msgstr "Advanced Amininistrative Options for InvenTree" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:104 +#: src/pages/Index/Settings/AdminCenter/CurrencyManagmentPanel.tsx:27 +#: src/tables/ColumnRenderers.tsx:262 +msgid "Currency" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/CurrencyManagmentPanel.tsx:32 +msgid "Rate" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/CurrencyManagmentPanel.tsx:44 +msgid "Exchange rates updated" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/CurrencyManagmentPanel.tsx:50 +msgid "Exchange rate update error" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/CurrencyManagmentPanel.tsx:62 +msgid "Refresh currency exchange rates" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/CurrencyManagmentPanel.tsx:99 +msgid "Last fetched" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/CurrencyManagmentPanel.tsx:100 +msgid "Base currency" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:115 msgid "Data Import" msgstr "" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:110 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:121 +msgid "Barcode Scans" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:127 msgid "Background Tasks" msgstr "" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:116 -msgid "Error Reports" -msgstr "" - -#: src/pages/Index/Settings/AdminCenter/Index.tsx:122 -msgid "Currencies" -msgstr "" - #: src/pages/Index/Settings/AdminCenter/Index.tsx:127 #~ msgid "Templates" #~ msgstr "Templates" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:140 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:133 +msgid "Error Reports" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:139 +msgid "Currencies" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:157 +msgid "Custom States" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:163 +#: src/pages/Index/Settings/AdminCenter/UnitManagmentPanel.tsx:58 msgid "Custom Units" msgstr "" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:146 -#: src/pages/part/CategoryDetail.tsx:264 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:169 +#: src/pages/part/CategoryDetail.tsx:269 msgid "Part Parameters" msgstr "" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:152 -msgid "Category Parameters" -msgstr "" - -#: src/pages/Index/Settings/AdminCenter/Index.tsx:170 -msgid "Location Types" -msgstr "" - #: src/pages/Index/Settings/AdminCenter/Index.tsx:170 #~ msgid "Location types" #~ msgstr "Location types" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:182 -#: src/tables/machine/MachineTypeTable.tsx:287 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:175 +msgid "Category Parameters" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:181 +msgid "Stocktake" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:199 +msgid "Location Types" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:211 +#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:48 +#: src/tables/machine/MachineTypeTable.tsx:308 msgid "Machines" msgstr "" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:192 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:221 msgid "Quick Actions" msgstr "" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:197 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:226 msgid "Add a new user" msgstr "" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:222 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:252 msgid "Advanced Options" msgstr "" #: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:43 -msgid "Machine types" -msgstr "" +#~ msgid "Machine types" +#~ msgstr "Machine types" #: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:53 -msgid "Machine Error Stack" +#~ msgid "Machine Error Stack" +#~ msgstr "Machine Error Stack" + +#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:56 +msgid "Machine Types" msgstr "" #: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:62 -msgid "There are no machine registry errors." +#~ msgid "There are no machine registry errors." +#~ msgstr "There are no machine registry errors." + +#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:64 +msgid "Machine Errors" msgstr "" -#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:28 -#: src/tables/settings/UserTable.tsx:119 +#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:77 +msgid "Registry Registry Errors" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:80 +msgid "There are machine registry errors" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:86 +msgid "Machine Registry Errors" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:89 +msgid "There are no machine registry errors" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:31 +#: src/tables/settings/UserTable.tsx:118 msgid "Info" msgstr "" -#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:32 -msgid "External plugins are not enabled for this InvenTree installation." -msgstr "" - #: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:33 #~ msgid "Plugin Error Stack" #~ msgstr "Plugin Error Stack" +#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:35 +msgid "External plugins are not enabled for this InvenTree installation." +msgstr "" + #: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:45 #~ msgid "Warning" #~ msgstr "Warning" @@ -3764,34 +4558,46 @@ msgstr "" #~ msgid "Changing the settings below require you to immediately restart the server. Do not change this while under active usage." #~ msgstr "Changing the settings below require you to immediately restart the server. Do not change this while under active usage." -#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:50 +#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:73 msgid "Plugin Errors" msgstr "" -#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:59 -msgid "Plugin Settings" +#: src/pages/Index/Settings/AdminCenter/ReportTemplatePanel.tsx:17 +msgid "Page Size" msgstr "" -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:53 -msgid "Background Worker Not Running" +#: src/pages/Index/Settings/AdminCenter/ReportTemplatePanel.tsx:20 +msgid "Landscape" msgstr "" -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:54 +#: src/pages/Index/Settings/AdminCenter/ReportTemplatePanel.tsx:26 +msgid "Attach to Model" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/StocktakePanel.tsx:25 +msgid "Stocktake Reports" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:30 msgid "The background task manager service is not running. Contact your system administrator." msgstr "" -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:60 -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:76 +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:35 +#~ msgid "Background Worker Not Running" +#~ msgstr "Background Worker Not Running" + +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:36 +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:45 msgid "Pending Tasks" msgstr "" -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:64 -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:84 +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:37 +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:53 msgid "Scheduled Tasks" msgstr "" -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:68 -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:92 +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:38 +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:61 msgid "Failed Tasks" msgstr "" @@ -3811,11 +4617,6 @@ msgstr "" #~ msgid "Reports" #~ msgstr "Reports" -#: src/pages/Index/Settings/AdminCenter/TemplateManagementPanel.tsx:89 -#: src/pages/build/BuildDetail.tsx:373 -#~ msgid "Report" -#~ msgstr "Report" - #: src/pages/Index/Settings/AdminCenter/TemplateManagementPanel.tsx:99 #~ msgid "Purchase order" #~ msgstr "Purchase order" @@ -3836,23 +4637,35 @@ msgstr "" #~ msgid "Stock location" #~ msgstr "Stock location" +#: src/pages/Index/Settings/AdminCenter/UnitManagmentPanel.tsx:21 +msgid "Alias" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/UnitManagmentPanel.tsx:22 +msgid "Dimensionless" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/UnitManagmentPanel.tsx:66 +msgid "All units" +msgstr "" + #: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:32 msgid "Select settings relevant for user lifecycle. More available in" msgstr "" #: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:37 -msgid "System settings" -msgstr "" +#~ msgid "System settings" +#~ msgstr "System settings" -#: src/pages/Index/Settings/SystemSettings.tsx:67 +#: src/pages/Index/Settings/SystemSettings.tsx:66 msgid "Login" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:93 +#: src/pages/Index/Settings/SystemSettings.tsx:92 msgid "Barcodes" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:115 +#: src/pages/Index/Settings/SystemSettings.tsx:116 msgid "Pricing" msgstr "" @@ -3864,64 +4677,46 @@ msgstr "" #~ msgid "Exchange Rates" #~ msgstr "Exchange Rates" -#: src/pages/Index/Settings/SystemSettings.tsx:150 +#: src/pages/Index/Settings/SystemSettings.tsx:151 msgid "Labels" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:156 -#: src/pages/Index/Settings/UserSettings.tsx:132 +#: src/pages/Index/Settings/SystemSettings.tsx:157 +#: src/pages/Index/Settings/UserSettings.tsx:133 msgid "Reporting" msgstr "" #: src/pages/Index/Settings/SystemSettings.tsx:231 -#: src/pages/part/PartDetail.tsx:682 -msgid "Stocktake" -msgstr "" - -#: src/pages/Index/Settings/SystemSettings.tsx:237 -#: src/pages/build/BuildDetail.tsx:554 -#: src/pages/build/BuildIndex.tsx:22 -#: src/pages/part/PartDetail.tsx:616 -#: src/pages/sales/SalesOrderDetail.tsx:333 +#: src/pages/build/BuildIndex.tsx:27 +#: src/pages/part/PartDetail.tsx:636 +#: src/pages/sales/SalesOrderDetail.tsx:355 msgid "Build Orders" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:318 -msgid "Switch to User Setting" -msgstr "" +#: src/pages/Index/Settings/SystemSettings.tsx:317 +#~ msgid "Switch to User Setting" +#~ msgstr "Switch to User Setting" -#: src/pages/Index/Settings/UserSettings.tsx:34 +#: src/pages/Index/Settings/UserSettings.tsx:35 msgid "Account" msgstr "" -#: src/pages/Index/Settings/UserSettings.tsx:40 +#: src/pages/Index/Settings/UserSettings.tsx:41 msgid "Security" msgstr "" -#: src/pages/Index/Settings/UserSettings.tsx:78 +#: src/pages/Index/Settings/UserSettings.tsx:79 msgid "Display Options" msgstr "" -#: src/pages/Index/Settings/UserSettings.tsx:150 -msgid "Account Settings" -msgstr "" - -#: src/pages/Index/Settings/UserSettings.tsx:158 -msgid "Switch to System Setting" -msgstr "" - -#: src/pages/Index/UserSettings.tsx:103 -#~ msgid "User Settings" -#~ msgstr "User Settings" +#: src/pages/Index/Settings/UserSettings.tsx:159 +#~ msgid "Switch to System Setting" +#~ msgstr "Switch to System Setting" #: src/pages/Logged-In.tsx:24 #~ msgid "Found an exsisting login - using it to log you in." #~ msgstr "Found an exsisting login - using it to log you in." -#: src/pages/NotFound.tsx:17 -#~ msgid "Not Found" -#~ msgstr "Not Found" - #: src/pages/NotFound.tsx:20 #~ msgid "Sorry, this page is not known or was moved." #~ msgstr "Sorry, this page is not known or was moved." @@ -3942,104 +4737,86 @@ msgstr "" #~ msgid "Build Status" #~ msgstr "Build Status" -#: src/pages/build/BuildDetail.tsx:102 -#: src/pages/part/PartDetail.tsx:150 +#: src/pages/build/BuildDetail.tsx:97 +#: src/pages/company/ManufacturerPartDetail.tsx:81 +#: src/pages/company/SupplierPartDetail.tsx:91 +#: src/pages/part/PartDetail.tsx:171 +#: src/pages/stock/StockDetail.tsx:122 #: src/tables/bom/BomTable.tsx:118 #: src/tables/bom/UsedInTable.tsx:39 -#: src/tables/build/BuildLineTable.tsx:173 -#: src/tables/build/BuildOrderTable.tsx:55 -#: src/tables/sales/SalesOrderLineItemTable.tsx:62 -#: src/tables/stock/StockItemTable.tsx:53 +#: src/tables/build/BuildAllocatedStockTable.tsx:104 +#: src/tables/build/BuildLineTable.tsx:324 +#: src/tables/build/BuildOrderTable.tsx:64 +#: src/tables/sales/SalesOrderLineItemTable.tsx:70 +#: src/tables/stock/StockItemTable.tsx:54 msgid "IPN" msgstr "" -#: src/pages/build/BuildDetail.tsx:115 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:121 -#: src/pages/sales/ReturnOrderDetail.tsx:95 -#: src/pages/sales/SalesOrderDetail.tsx:101 -#: src/tables/ColumnRenderers.tsx:121 -#: src/tables/build/BuildAllocatedStockTable.tsx:90 -#: src/tables/build/BuildLineTable.tsx:184 +#: src/pages/build/BuildDetail.tsx:110 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:115 +#: src/pages/sales/ReturnOrderDetail.tsx:86 +#: src/pages/sales/SalesOrderDetail.tsx:95 +#: src/tables/ColumnRenderers.tsx:132 +#: src/tables/build/BuildAllocatedStockTable.tsx:111 +#: src/tables/build/BuildLineTable.tsx:335 msgid "Reference" msgstr "" -#: src/pages/build/BuildDetail.tsx:121 -#: src/pages/company/CompanyDetail.tsx:90 -#: src/pages/company/ManufacturerPartDetail.tsx:83 -#: src/pages/company/SupplierPartDetail.tsx:96 -#: src/pages/part/CategoryDetail.tsx:101 -#: src/pages/part/PartDetail.tsx:157 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:142 -#: src/pages/sales/ReturnOrderDetail.tsx:115 -#: src/pages/sales/SalesOrderDetail.tsx:121 -#: src/pages/stock/LocationDetail.tsx:109 -#: src/tables/ColumnRenderers.tsx:81 -#: src/tables/bom/UsedInTable.tsx:44 -#: src/tables/build/BuildAllocatedStockTable.tsx:70 -#: src/tables/build/BuildLineTable.tsx:178 -#: src/tables/machine/MachineTypeTable.tsx:69 -#: src/tables/machine/MachineTypeTable.tsx:112 -#: src/tables/machine/MachineTypeTable.tsx:219 -#: src/tables/machine/MachineTypeTable.tsx:323 -#: src/tables/part/RelatedPartTable.tsx:64 -#: src/tables/plugin/PluginListTable.tsx:129 -#: src/tables/plugin/PluginListTable.tsx:276 -#: src/tables/sales/SalesOrderAllocationTable.tsx:56 -#: src/tables/sales/SalesOrderLineItemTable.tsx:67 -#: src/tables/stock/LocationTypesTable.tsx:74 -msgid "Description" -msgstr "" - -#: src/pages/build/BuildDetail.tsx:129 +#: src/pages/build/BuildDetail.tsx:124 msgid "Parent Build" msgstr "" -#: src/pages/build/BuildDetail.tsx:140 +#: src/pages/build/BuildDetail.tsx:135 msgid "Build Quantity" msgstr "" -#: src/pages/build/BuildDetail.tsx:148 -#: src/pages/build/BuildDetail.tsx:274 +#: src/pages/build/BuildDetail.tsx:143 +#: src/pages/build/BuildDetail.tsx:277 msgid "Completed Outputs" msgstr "" -#: src/pages/build/BuildDetail.tsx:165 -#: src/tables/build/BuildOrderTable.tsx:151 +#: src/pages/build/BuildDetail.tsx:160 +#: src/tables/build/BuildOrderTable.tsx:142 msgid "Issued By" msgstr "" -#: src/pages/build/BuildDetail.tsx:172 -#: src/pages/part/PartDetail.tsx:365 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:220 -#: src/pages/sales/ReturnOrderDetail.tsx:199 -#: src/pages/sales/SalesOrderDetail.tsx:208 -#: src/tables/build/BuildOrderTable.tsx:157 -#: src/tables/purchasing/PurchaseOrderTable.tsx:75 -#: src/tables/sales/ReturnOrderTable.tsx:66 -#: src/tables/sales/SalesOrderTable.tsx:73 +#: src/pages/build/BuildDetail.tsx:167 +#: src/pages/part/PartDetail.tsx:406 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:244 +#: src/pages/sales/ReturnOrderDetail.tsx:216 +#: src/pages/sales/SalesOrderDetail.tsx:226 +#: src/tables/build/BuildOrderTable.tsx:148 +#: src/tables/purchasing/PurchaseOrderTable.tsx:76 +#: src/tables/sales/ReturnOrderTable.tsx:74 +#: src/tables/sales/SalesOrderTable.tsx:74 msgid "Responsible" msgstr "" -#: src/pages/build/BuildDetail.tsx:179 -#: src/tables/settings/PendingTasksTable.tsx:32 +#: src/pages/build/BuildDetail.tsx:174 +#: src/tables/settings/PendingTasksTable.tsx:36 msgid "Created" msgstr "" +#: src/pages/build/BuildDetail.tsx:181 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:229 +#: src/pages/sales/ReturnOrderDetail.tsx:201 +#: src/pages/sales/SalesOrderDetail.tsx:212 +#: src/tables/ColumnRenderers.tsx:226 +#: src/tables/part/PartPurchaseOrdersTable.tsx:100 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:135 +#: src/tables/sales/SalesOrderLineItemTable.tsx:107 +msgid "Target Date" +msgstr "" + #: src/pages/build/BuildDetail.tsx:185 #: src/pages/part/PartDetail.tsx:269 #: src/pages/stock/StockDetail.tsx:150 #~ msgid "View part barcode" #~ msgstr "View part barcode" -#: src/pages/build/BuildDetail.tsx:186 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:213 -#: src/pages/sales/ReturnOrderDetail.tsx:192 -#: src/pages/sales/SalesOrderDetail.tsx:201 -#: src/tables/ColumnRenderers.tsx:212 -#: src/tables/part/PartPurchaseOrdersTable.tsx:99 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:110 -#: src/tables/sales/SalesOrderLineItemTable.tsx:99 -msgid "Target Date" +#: src/pages/build/BuildDetail.tsx:188 +#: src/tables/sales/SalesOrderLineItemTable.tsx:281 +msgid "Completed" msgstr "" #: src/pages/build/BuildDetail.tsx:190 @@ -4047,10 +4824,6 @@ msgstr "" #~ msgid "Link custom barcode to part" #~ msgstr "Link custom barcode to part" -#: src/pages/build/BuildDetail.tsx:193 -msgid "Completed" -msgstr "" - #: src/pages/build/BuildDetail.tsx:196 #: src/pages/part/PartDetail.tsx:280 #~ msgid "Unlink custom barcode from part" @@ -4060,15 +4833,11 @@ msgstr "" #~ msgid "Build Order updated" #~ msgstr "Build Order updated" -#: src/pages/build/BuildDetail.tsx:205 -msgid "Source Location" -msgstr "" - -#: src/pages/build/BuildDetail.tsx:206 +#: src/pages/build/BuildDetail.tsx:209 msgid "Any location" msgstr "" -#: src/pages/build/BuildDetail.tsx:213 +#: src/pages/build/BuildDetail.tsx:216 msgid "Destination Location" msgstr "" @@ -4084,206 +4853,182 @@ msgstr "" #~ msgid "Delete build order" #~ msgstr "Delete build order" -#: src/pages/build/BuildDetail.tsx:251 +#: src/pages/build/BuildDetail.tsx:254 msgid "Build Details" msgstr "" -#: src/pages/build/BuildDetail.tsx:257 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:258 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:267 -#: src/pages/sales/ReturnOrderDetail.tsx:130 -#: src/pages/sales/ReturnOrderDetail.tsx:237 -#: src/pages/sales/ReturnOrderDetail.tsx:246 -#: src/pages/sales/SalesOrderDetail.tsx:272 -#: src/pages/sales/SalesOrderDetail.tsx:281 +#: src/pages/build/BuildDetail.tsx:260 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:282 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:291 +#: src/pages/sales/ReturnOrderDetail.tsx:122 +#: src/pages/sales/ReturnOrderDetail.tsx:254 +#: src/pages/sales/ReturnOrderDetail.tsx:263 +#: src/pages/sales/SalesOrderDetail.tsx:294 +#: src/pages/sales/SalesOrderDetail.tsx:303 msgid "Line Items" msgstr "" -#: src/pages/build/BuildDetail.tsx:267 +#: src/pages/build/BuildDetail.tsx:266 msgid "Incomplete Outputs" msgstr "" -#: src/pages/build/BuildDetail.tsx:289 -#: src/pages/sales/SalesOrderDetail.tsx:319 +#: src/pages/build/BuildDetail.tsx:292 +#: src/pages/sales/SalesOrderDetail.tsx:341 msgid "Allocated Stock" msgstr "" -#: src/pages/build/BuildDetail.tsx:299 +#: src/pages/build/BuildDetail.tsx:302 msgid "Consumed Stock" msgstr "" -#: src/pages/build/BuildDetail.tsx:313 +#: src/pages/build/BuildDetail.tsx:316 msgid "Child Build Orders" msgstr "" #: src/pages/build/BuildDetail.tsx:326 -#: src/tables/build/BuildOutputTable.tsx:384 -#: src/tables/stock/StockItemTestResultTable.tsx:150 +#: src/tables/build/BuildOutputTable.tsx:532 +#: src/tables/stock/StockItemTestResultTable.tsx:156 msgid "Test Results" msgstr "" #: src/pages/build/BuildDetail.tsx:337 -#: src/pages/part/PartDetail.tsx:699 +#: src/pages/part/PartDetail.tsx:740 msgid "Test Statistics" msgstr "" -#: src/pages/build/BuildDetail.tsx:351 -#: src/pages/company/CompanyDetail.tsx:259 -#: src/pages/company/ManufacturerPartDetail.tsx:179 -#: src/pages/part/PartDetail.tsx:721 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:309 -#: src/pages/sales/ReturnOrderDetail.tsx:274 -#: src/pages/sales/SalesOrderDetail.tsx:343 -#: src/pages/stock/StockDetail.tsx:385 -msgid "Attachments" -msgstr "" - -#: src/pages/build/BuildDetail.tsx:359 -#: src/pages/company/CompanyDetail.tsx:270 -#: src/pages/company/ManufacturerPartDetail.tsx:190 -#: src/pages/company/SupplierPartDetail.tsx:257 -#: src/pages/part/PartDetail.tsx:729 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:320 -#: src/pages/sales/ReturnOrderDetail.tsx:285 -#: src/pages/sales/SalesOrderDetail.tsx:354 -#: src/pages/stock/StockDetail.tsx:396 -#: src/tables/build/BuildOrderTestTable.tsx:142 -#: src/tables/stock/StockTrackingTable.tsx:189 -msgid "Notes" +#: src/pages/build/BuildDetail.tsx:365 +msgid "Edit Build Order" msgstr "" #: src/pages/build/BuildDetail.tsx:368 #~ msgid "Reporting Actions" #~ msgstr "Reporting Actions" +#: src/pages/build/BuildDetail.tsx:372 +#: src/tables/build/BuildOrderTable.tsx:173 +#: src/tables/build/BuildOrderTable.tsx:188 +msgid "Add Build Order" +msgstr "" + #: src/pages/build/BuildDetail.tsx:374 #~ msgid "Print build report" #~ msgstr "Print build report" -#: src/pages/build/BuildDetail.tsx:377 -msgid "Edit Build Order" -msgstr "" - -#: src/pages/build/BuildDetail.tsx:384 -#: src/tables/build/BuildOrderTable.tsx:172 -#: src/tables/build/BuildOrderTable.tsx:187 -msgid "Add Build Order" -msgstr "" - -#: src/pages/build/BuildDetail.tsx:398 +#: src/pages/build/BuildDetail.tsx:386 msgid "Cancel Build Order" msgstr "" -#: src/pages/build/BuildDetail.tsx:400 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:348 -#: src/pages/sales/SalesOrderDetail.tsx:380 +#: src/pages/build/BuildDetail.tsx:388 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:357 +#: src/pages/sales/ReturnOrderDetail.tsx:354 +#: src/pages/sales/SalesOrderDetail.tsx:387 msgid "Order cancelled" msgstr "" -#: src/pages/build/BuildDetail.tsx:401 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:347 -#: src/pages/sales/ReturnOrderDetail.tsx:346 -#: src/pages/sales/SalesOrderDetail.tsx:379 +#: src/pages/build/BuildDetail.tsx:389 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:356 +#: src/pages/sales/ReturnOrderDetail.tsx:353 +#: src/pages/sales/SalesOrderDetail.tsx:386 msgid "Cancel this order" msgstr "" -#: src/pages/build/BuildDetail.tsx:410 +#: src/pages/build/BuildDetail.tsx:398 msgid "Hold Build Order" msgstr "" -#: src/pages/build/BuildDetail.tsx:412 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:355 -#: src/pages/sales/ReturnOrderDetail.tsx:354 -#: src/pages/sales/SalesOrderDetail.tsx:387 +#: src/pages/build/BuildDetail.tsx:400 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:364 +#: src/pages/sales/ReturnOrderDetail.tsx:361 +#: src/pages/sales/SalesOrderDetail.tsx:394 msgid "Place this order on hold" msgstr "" -#: src/pages/build/BuildDetail.tsx:413 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:356 -#: src/pages/sales/ReturnOrderDetail.tsx:355 -#: src/pages/sales/SalesOrderDetail.tsx:388 +#: src/pages/build/BuildDetail.tsx:401 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:365 +#: src/pages/sales/ReturnOrderDetail.tsx:362 +#: src/pages/sales/SalesOrderDetail.tsx:395 msgid "Order placed on hold" msgstr "" -#: src/pages/build/BuildDetail.tsx:418 +#: src/pages/build/BuildDetail.tsx:406 msgid "Issue Build Order" msgstr "" -#: src/pages/build/BuildDetail.tsx:420 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:339 -#: src/pages/sales/ReturnOrderDetail.tsx:338 -#: src/pages/sales/SalesOrderDetail.tsx:371 +#: src/pages/build/BuildDetail.tsx:408 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:348 +#: src/pages/sales/ReturnOrderDetail.tsx:345 +#: src/pages/sales/SalesOrderDetail.tsx:378 msgid "Issue this order" msgstr "" -#: src/pages/build/BuildDetail.tsx:421 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:340 -#: src/pages/sales/ReturnOrderDetail.tsx:339 -#: src/pages/sales/SalesOrderDetail.tsx:372 +#: src/pages/build/BuildDetail.tsx:409 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:349 +#: src/pages/sales/ReturnOrderDetail.tsx:346 +#: src/pages/sales/SalesOrderDetail.tsx:379 msgid "Order issued" msgstr "" -#: src/pages/build/BuildDetail.tsx:426 +#: src/pages/build/BuildDetail.tsx:414 msgid "Complete Build Order" msgstr "" -#: src/pages/build/BuildDetail.tsx:428 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:368 -#: src/pages/sales/ReturnOrderDetail.tsx:362 -#: src/pages/sales/SalesOrderDetail.tsx:395 +#: src/pages/build/BuildDetail.tsx:416 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:377 +#: src/pages/sales/ReturnOrderDetail.tsx:369 +#: src/pages/sales/SalesOrderDetail.tsx:402 msgid "Mark this order as complete" msgstr "" -#: src/pages/build/BuildDetail.tsx:429 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:362 -#: src/pages/sales/ReturnOrderDetail.tsx:363 -#: src/pages/sales/SalesOrderDetail.tsx:396 +#: src/pages/build/BuildDetail.tsx:417 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:371 +#: src/pages/sales/ReturnOrderDetail.tsx:370 +#: src/pages/sales/SalesOrderDetail.tsx:403 msgid "Order completed" msgstr "" -#: src/pages/build/BuildDetail.tsx:460 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:391 -#: src/pages/sales/ReturnOrderDetail.tsx:392 -#: src/pages/sales/SalesOrderDetail.tsx:425 +#: src/pages/build/BuildDetail.tsx:448 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:400 +#: src/pages/sales/ReturnOrderDetail.tsx:399 +#: src/pages/sales/SalesOrderDetail.tsx:432 msgid "Issue Order" msgstr "" -#: src/pages/build/BuildDetail.tsx:467 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:398 -#: src/pages/sales/ReturnOrderDetail.tsx:399 -#: src/pages/sales/SalesOrderDetail.tsx:439 +#: src/pages/build/BuildDetail.tsx:455 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:407 +#: src/pages/sales/ReturnOrderDetail.tsx:406 +#: src/pages/sales/SalesOrderDetail.tsx:446 msgid "Complete Order" msgstr "" -#: src/pages/build/BuildDetail.tsx:496 +#: src/pages/build/BuildDetail.tsx:473 msgid "Build Order Actions" msgstr "" -#: src/pages/build/BuildDetail.tsx:502 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:432 -#: src/pages/sales/ReturnOrderDetail.tsx:433 -#: src/pages/sales/SalesOrderDetail.tsx:474 +#: src/pages/build/BuildDetail.tsx:478 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:429 +#: src/pages/sales/ReturnOrderDetail.tsx:428 +#: src/pages/sales/SalesOrderDetail.tsx:469 msgid "Edit order" msgstr "" -#: src/pages/build/BuildDetail.tsx:506 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:440 -#: src/pages/sales/ReturnOrderDetail.tsx:439 -#: src/pages/sales/SalesOrderDetail.tsx:479 +#: src/pages/build/BuildDetail.tsx:482 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:437 +#: src/pages/sales/ReturnOrderDetail.tsx:434 +#: src/pages/sales/SalesOrderDetail.tsx:474 msgid "Duplicate order" msgstr "" -#: src/pages/build/BuildDetail.tsx:510 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:443 -#: src/pages/sales/ReturnOrderDetail.tsx:444 -#: src/pages/sales/SalesOrderDetail.tsx:482 +#: src/pages/build/BuildDetail.tsx:486 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:440 +#: src/pages/sales/ReturnOrderDetail.tsx:439 +#: src/pages/sales/SalesOrderDetail.tsx:477 msgid "Hold order" msgstr "" -#: src/pages/build/BuildDetail.tsx:515 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:448 -#: src/pages/sales/ReturnOrderDetail.tsx:449 -#: src/pages/sales/SalesOrderDetail.tsx:487 +#: src/pages/build/BuildDetail.tsx:491 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:445 +#: src/pages/sales/ReturnOrderDetail.tsx:444 +#: src/pages/sales/SalesOrderDetail.tsx:482 msgid "Cancel order" msgstr "" @@ -4295,56 +5040,60 @@ msgstr "" #~ msgid "New Build Order" #~ msgstr "New Build Order" -#: src/pages/company/CompanyDetail.tsx:104 +#: src/pages/company/CompanyDetail.tsx:95 +msgid "Website" +msgstr "" + +#: src/pages/company/CompanyDetail.tsx:103 msgid "Phone Number" msgstr "" -#: src/pages/company/CompanyDetail.tsx:111 +#: src/pages/company/CompanyDetail.tsx:110 msgid "Email Address" msgstr "" -#: src/pages/company/CompanyDetail.tsx:121 +#: src/pages/company/CompanyDetail.tsx:120 msgid "Default Currency" msgstr "" -#: src/pages/company/CompanyDetail.tsx:126 +#: src/pages/company/CompanyDetail.tsx:125 #: src/pages/company/SupplierDetail.tsx:8 -#: src/pages/company/SupplierPartDetail.tsx:120 -#: src/pages/company/SupplierPartDetail.tsx:206 -#: src/pages/company/SupplierPartDetail.tsx:351 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:136 -#: src/tables/company/CompanyTable.tsx:100 +#: src/pages/company/SupplierPartDetail.tsx:125 +#: src/pages/company/SupplierPartDetail.tsx:218 +#: src/pages/company/SupplierPartDetail.tsx:340 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:130 +#: src/tables/company/CompanyTable.tsx:101 #: src/tables/part/PartPurchaseOrdersTable.tsx:42 -#: src/tables/purchasing/PurchaseOrderTable.tsx:88 +#: src/tables/purchasing/PurchaseOrderTable.tsx:89 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:36 msgid "Supplier" msgstr "" -#: src/pages/company/CompanyDetail.tsx:132 +#: src/pages/company/CompanyDetail.tsx:131 #: src/pages/company/ManufacturerDetail.tsx:8 -#: src/pages/company/ManufacturerPartDetail.tsx:101 -#: src/pages/company/ManufacturerPartDetail.tsx:267 -#: src/pages/company/SupplierPartDetail.tsx:135 -#: src/tables/company/CompanyTable.tsx:105 +#: src/pages/company/ManufacturerPartDetail.tsx:100 +#: src/pages/company/ManufacturerPartDetail.tsx:262 +#: src/pages/company/SupplierPartDetail.tsx:147 +#: src/tables/company/CompanyTable.tsx:106 msgid "Manufacturer" msgstr "" -#: src/pages/company/CompanyDetail.tsx:138 +#: src/pages/company/CompanyDetail.tsx:137 #: src/pages/company/CustomerDetail.tsx:8 -#: src/pages/part/pricing/SaleHistoryPanel.tsx:29 -#: src/pages/sales/ReturnOrderDetail.tsx:109 -#: src/pages/sales/SalesOrderDetail.tsx:115 -#: src/pages/stock/StockDetail.tsx:230 -#: src/tables/company/CompanyTable.tsx:110 -#: src/tables/sales/ReturnOrderTable.tsx:78 -#: src/tables/sales/SalesOrderTable.tsx:108 -#: src/tables/stock/StockTrackingTable.tsx:140 +#: src/pages/part/pricing/SaleHistoryPanel.tsx:31 +#: src/pages/sales/ReturnOrderDetail.tsx:101 +#: src/pages/sales/SalesOrderDetail.tsx:110 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:100 +#: src/pages/stock/StockDetail.tsx:271 +#: src/tables/company/CompanyTable.tsx:111 +#: src/tables/sales/ReturnOrderTable.tsx:97 +#: src/tables/sales/SalesOrderTable.tsx:121 +#: src/tables/stock/StockTrackingTable.tsx:144 msgid "Customer" msgstr "" #: src/pages/company/CompanyDetail.tsx:172 -#: src/tables/stock/StockTrackingTable.tsx:183 -msgid "Details" +msgid "Company Details" msgstr "" #: src/pages/company/CompanyDetail.tsx:175 @@ -4363,140 +5112,150 @@ msgstr "" #~ msgid "Delete company" #~ msgstr "Delete company" -#: src/pages/company/CompanyDetail.tsx:232 +#: src/pages/company/CompanyDetail.tsx:234 msgid "Assigned Stock" msgstr "" -#: src/pages/company/CompanyDetail.tsx:290 -#: src/tables/company/CompanyTable.tsx:86 +#: src/pages/company/CompanyDetail.tsx:273 +#: src/tables/company/CompanyTable.tsx:87 msgid "Edit Company" msgstr "" -#: src/pages/company/CompanyDetail.tsx:298 +#: src/pages/company/CompanyDetail.tsx:281 msgid "Delete Company" msgstr "" -#: src/pages/company/CompanyDetail.tsx:306 +#: src/pages/company/CompanyDetail.tsx:289 msgid "Company Actions" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:76 -#: src/pages/company/SupplierPartDetail.tsx:89 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:128 +#: src/pages/company/ManufacturerPartDetail.tsx:74 +#: src/pages/company/SupplierPartDetail.tsx:84 msgid "Internal Part" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:91 -#: src/pages/company/SupplierPartDetail.tsx:103 -msgid "External Link" -msgstr "" - -#: src/pages/company/ManufacturerPartDetail.tsx:109 -#: src/pages/company/SupplierPartDetail.tsx:144 -#: src/tables/purchasing/ManufacturerPartTable.tsx:56 +#: src/pages/company/ManufacturerPartDetail.tsx:108 +#: src/pages/company/SupplierPartDetail.tsx:156 +#: src/tables/purchasing/ManufacturerPartTable.tsx:58 msgid "Manufacturer Part Number" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:138 +#: src/pages/company/ManufacturerPartDetail.tsx:125 +#: src/pages/company/SupplierPartDetail.tsx:108 +msgid "External Link" +msgstr "" + +#: src/pages/company/ManufacturerPartDetail.tsx:146 +#: src/pages/company/SupplierPartDetail.tsx:215 +#: src/pages/part/PartDetail.tsx:576 +msgid "Part Details" +msgstr "" + +#: src/pages/company/ManufacturerPartDetail.tsx:149 msgid "Manufacturer Details" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:147 +#: src/pages/company/ManufacturerPartDetail.tsx:158 msgid "Manufacturer Part Details" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:153 -#: src/pages/part/PartDetail.tsx:532 +#: src/pages/company/ManufacturerPartDetail.tsx:164 +#: src/pages/part/PartDetail.tsx:582 msgid "Parameters" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:165 -#: src/pages/part/PartDetail.tsx:649 +#: src/pages/company/ManufacturerPartDetail.tsx:176 +#: src/pages/part/PartDetail.tsx:669 #: src/pages/purchasing/PurchasingIndex.tsx:31 msgid "Suppliers" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:208 -#: src/tables/purchasing/ManufacturerPartTable.tsx:84 +#: src/pages/company/ManufacturerPartDetail.tsx:204 +#: src/tables/purchasing/ManufacturerPartTable.tsx:86 msgid "Edit Manufacturer Part" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:215 -#: src/tables/purchasing/ManufacturerPartTable.tsx:72 -#: src/tables/purchasing/ManufacturerPartTable.tsx:103 +#: src/pages/company/ManufacturerPartDetail.tsx:211 +#: src/tables/purchasing/ManufacturerPartTable.tsx:74 +#: src/tables/purchasing/ManufacturerPartTable.tsx:106 msgid "Add Manufacturer Part" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:227 -#: src/tables/purchasing/ManufacturerPartTable.tsx:92 +#: src/pages/company/ManufacturerPartDetail.tsx:223 +#: src/tables/purchasing/ManufacturerPartTable.tsx:94 msgid "Delete Manufacturer Part" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:240 +#: src/pages/company/ManufacturerPartDetail.tsx:236 msgid "Manufacturer Part Actions" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:281 +#: src/pages/company/ManufacturerPartDetail.tsx:276 msgid "ManufacturerPart" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:163 -#: src/tables/part/PartPurchaseOrdersTable.tsx:71 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:156 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:197 -#: src/tables/purchasing/SupplierPartTable.tsx:131 +#: src/pages/company/SupplierPartDetail.tsx:99 +msgid "Part Description" +msgstr "" + +#: src/pages/company/SupplierPartDetail.tsx:175 +#: src/tables/part/PartPurchaseOrdersTable.tsx:72 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:162 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:203 +#: src/tables/purchasing/SupplierPartTable.tsx:133 msgid "Pack Quantity" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:174 +#: src/pages/company/SupplierPartDetail.tsx:186 msgid "Supplier Availability" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:181 +#: src/pages/company/SupplierPartDetail.tsx:193 msgid "Availability Updated" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:208 +#: src/pages/company/SupplierPartDetail.tsx:220 msgid "Availability" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:217 +#: src/pages/company/SupplierPartDetail.tsx:229 msgid "Supplier Part Details" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:223 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:296 +#: src/pages/company/SupplierPartDetail.tsx:235 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:320 msgid "Received Stock" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:247 -#: src/pages/part/PartPricingPanel.tsx:111 -#: src/pages/part/pricing/PricingOverviewPanel.tsx:121 +#: src/pages/company/SupplierPartDetail.tsx:259 +#: src/pages/part/PartPricingPanel.tsx:116 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:195 msgid "Supplier Pricing" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:294 +#: src/pages/company/SupplierPartDetail.tsx:284 msgid "Supplier Part Actions" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:319 -#: src/tables/purchasing/SupplierPartTable.tsx:210 +#: src/pages/company/SupplierPartDetail.tsx:308 +#: src/tables/purchasing/SupplierPartTable.tsx:213 msgid "Edit Supplier Part" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:327 -#: src/tables/purchasing/SupplierPartTable.tsx:218 +#: src/pages/company/SupplierPartDetail.tsx:316 +#: src/tables/purchasing/SupplierPartTable.tsx:221 msgid "Delete Supplier Part" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:335 -#: src/tables/purchasing/SupplierPartTable.tsx:163 +#: src/pages/company/SupplierPartDetail.tsx:324 +#: src/tables/purchasing/SupplierPartTable.tsx:165 msgid "Add Supplier Part" msgstr "" #: src/pages/part/CategoryDetail.tsx:93 -#: src/pages/stock/LocationDetail.tsx:101 -#: src/tables/settings/ErrorTable.tsx:36 +#: src/pages/stock/LocationDetail.tsx:95 +#: src/tables/settings/ErrorTable.tsx:63 +#: src/tables/settings/ErrorTable.tsx:108 msgid "Path" msgstr "" @@ -4504,357 +5263,357 @@ msgstr "" msgid "Parent Category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:126 +#: src/pages/part/CategoryDetail.tsx:132 msgid "Subcategories" msgstr "" -#: src/pages/part/CategoryDetail.tsx:133 -#: src/pages/stock/LocationDetail.tsx:141 -#: src/tables/part/PartCategoryTable.tsx:73 +#: src/pages/part/CategoryDetail.tsx:139 +#: src/pages/stock/LocationDetail.tsx:135 +#: src/tables/part/PartCategoryTable.tsx:85 #: src/tables/stock/StockLocationTable.tsx:49 msgid "Structural" msgstr "" -#: src/pages/part/CategoryDetail.tsx:139 +#: src/pages/part/CategoryDetail.tsx:145 msgid "Parent default location" msgstr "" -#: src/pages/part/CategoryDetail.tsx:146 +#: src/pages/part/CategoryDetail.tsx:152 msgid "Default location" msgstr "" -#: src/pages/part/CategoryDetail.tsx:157 +#: src/pages/part/CategoryDetail.tsx:163 msgid "Top level part category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:167 -#: src/pages/part/CategoryDetail.tsx:221 -#: src/tables/part/PartCategoryTable.tsx:102 +#: src/pages/part/CategoryDetail.tsx:173 +#: src/pages/part/CategoryDetail.tsx:226 +#: src/tables/part/PartCategoryTable.tsx:118 msgid "Edit Part Category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:180 -#: src/pages/stock/LocationDetail.tsx:233 +#: src/pages/part/CategoryDetail.tsx:186 +#: src/pages/stock/LocationDetail.tsx:227 msgid "Delete items" msgstr "" -#: src/pages/part/CategoryDetail.tsx:188 -#: src/pages/part/CategoryDetail.tsx:226 +#: src/pages/part/CategoryDetail.tsx:194 +#: src/pages/part/CategoryDetail.tsx:231 msgid "Delete Part Category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:191 +#: src/pages/part/CategoryDetail.tsx:197 msgid "Parts Action" msgstr "" -#: src/pages/part/CategoryDetail.tsx:192 +#: src/pages/part/CategoryDetail.tsx:198 msgid "Action for parts in this category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:197 +#: src/pages/part/CategoryDetail.tsx:203 msgid "Child Categories Action" msgstr "" -#: src/pages/part/CategoryDetail.tsx:198 +#: src/pages/part/CategoryDetail.tsx:204 msgid "Action for child categories in this category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:216 +#: src/pages/part/CategoryDetail.tsx:222 msgid "Category Actions" msgstr "" -#: src/pages/part/CategoryDetail.tsx:238 +#: src/pages/part/CategoryDetail.tsx:243 msgid "Category Details" msgstr "" -#: src/pages/part/PartDetail.tsx:163 -msgid "Variant of" +#: src/pages/part/PartAllocationPanel.tsx:23 +#: src/pages/stock/StockDetail.tsx:443 +#: src/tables/part/PartTable.tsx:99 +msgid "Build Order Allocations" msgstr "" -#: src/pages/part/PartDetail.tsx:170 -msgid "Revision of" -msgstr "" - -#: src/pages/part/PartDetail.tsx:177 -#: src/tables/stock/StockItemTable.tsx:58 -msgid "Revision" +#: src/pages/part/PartAllocationPanel.tsx:40 +#: src/pages/stock/StockDetail.tsx:458 +#: src/tables/part/PartTable.tsx:108 +msgid "Sales Order Allocations" msgstr "" #: src/pages/part/PartDetail.tsx:184 +msgid "Variant of" +msgstr "" + +#: src/pages/part/PartDetail.tsx:191 +msgid "Revision of" +msgstr "" + +#: src/pages/part/PartDetail.tsx:198 +#: src/tables/stock/StockItemTable.tsx:59 +msgid "Revision" +msgstr "" + +#: src/pages/part/PartDetail.tsx:205 #: src/tables/notifications/NotificationsTable.tsx:31 #: src/tables/part/PartCategoryTemplateTable.tsx:67 msgid "Category" msgstr "" -#: src/pages/part/PartDetail.tsx:190 +#: src/pages/part/PartDetail.tsx:211 msgid "Default Location" msgstr "" -#: src/pages/part/PartDetail.tsx:197 +#: src/pages/part/PartDetail.tsx:218 msgid "Category Default Location" msgstr "" -#: src/pages/part/PartDetail.tsx:204 +#: src/pages/part/PartDetail.tsx:225 #: src/tables/purchasing/ManufacturerPartParameterTable.tsx:44 msgid "Units" msgstr "" -#: src/pages/part/PartDetail.tsx:211 -#: src/tables/settings/PendingTasksTable.tsx:42 +#: src/pages/part/PartDetail.tsx:232 +#: src/tables/settings/PendingTasksTable.tsx:46 msgid "Keywords" msgstr "" -#: src/pages/part/PartDetail.tsx:218 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:186 -#: src/pages/sales/ReturnOrderDetail.tsx:165 -#: src/pages/sales/SalesOrderDetail.tsx:174 -msgid "Link" -msgstr "" - -#: src/pages/part/PartDetail.tsx:236 +#: src/pages/part/PartDetail.tsx:257 #: src/tables/bom/BomTable.tsx:320 -#: src/tables/build/BuildLineTable.tsx:155 +#: src/tables/build/BuildLineTable.tsx:286 #: src/tables/part/PartTable.tsx:288 -#: src/tables/sales/SalesOrderLineItemTable.tsx:103 +#: src/tables/sales/SalesOrderLineItemTable.tsx:111 msgid "Available Stock" msgstr "" -#: src/pages/part/PartDetail.tsx:243 +#: src/pages/part/PartDetail.tsx:264 msgid "Variant Stock" msgstr "" -#: src/pages/part/PartDetail.tsx:251 +#: src/pages/part/PartDetail.tsx:272 msgid "Minimum Stock" msgstr "" -#: src/pages/part/PartDetail.tsx:257 +#: src/pages/part/PartDetail.tsx:278 #: src/tables/bom/BomTable.tsx:237 -#: src/tables/build/BuildLineTable.tsx:117 -#: src/tables/sales/SalesOrderLineItemTable.tsx:141 +#: src/tables/build/BuildLineTable.tsx:248 +#: src/tables/sales/SalesOrderLineItemTable.tsx:149 msgid "On order" msgstr "" -#: src/pages/part/PartDetail.tsx:266 +#: src/pages/part/PartDetail.tsx:285 +msgid "Required for Orders" +msgstr "" + +#: src/pages/part/PartDetail.tsx:294 msgid "Allocated to Build Orders" msgstr "" -#: src/pages/part/PartDetail.tsx:274 +#: src/pages/part/PartDetail.tsx:305 msgid "Allocated to Sales Orders" msgstr "" -#: src/pages/part/PartDetail.tsx:281 -#: src/tables/bom/BomTable.tsx:261 -#: src/tables/bom/BomTable.tsx:293 -msgid "Can Build" -msgstr "" - -#: src/pages/part/PartDetail.tsx:288 -#: src/tables/bom/BomTable.tsx:245 -#: src/tables/part/PartTable.tsx:92 -msgid "Building" -msgstr "" - -#: src/pages/part/PartDetail.tsx:302 -#: src/pages/part/PartDetail.tsx:873 -#: src/tables/part/ParametricPartTable.tsx:228 -#: src/tables/part/PartTable.tsx:184 -msgid "Locked" -msgstr "" - -#: src/pages/part/PartDetail.tsx:308 -msgid "Template Part" -msgstr "" - #: src/pages/part/PartDetail.tsx:310 #~ msgid "Edit part" #~ msgstr "Edit part" -#: src/pages/part/PartDetail.tsx:313 -#: src/tables/bom/BomTable.tsx:315 -msgid "Assembled Part" +#: src/pages/part/PartDetail.tsx:315 +#: src/tables/bom/BomTable.tsx:261 +#: src/tables/bom/BomTable.tsx:293 +msgid "Can Build" msgstr "" -#: src/pages/part/PartDetail.tsx:318 -msgid "Component Part" +#: src/pages/part/PartDetail.tsx:322 +#: src/pages/part/PartDetail.tsx:905 +#: src/pages/stock/StockDetail.tsx:766 +#: src/tables/build/BuildOrderTestTable.tsx:220 +#: src/tables/stock/StockItemTable.tsx:334 +msgid "In Production" msgstr "" #: src/pages/part/PartDetail.tsx:322 #~ msgid "Duplicate part" #~ msgstr "Duplicate part" -#: src/pages/part/PartDetail.tsx:323 -#: src/tables/bom/BomTable.tsx:305 -msgid "Testable Part" -msgstr "" - #: src/pages/part/PartDetail.tsx:327 #~ msgid "Delete part" #~ msgstr "Delete part" -#: src/pages/part/PartDetail.tsx:329 +#: src/pages/part/PartDetail.tsx:336 +#: src/tables/part/ParametricPartTable.tsx:228 +#: src/tables/part/PartTable.tsx:184 +msgid "Locked" +msgstr "" + +#: src/pages/part/PartDetail.tsx:342 +msgid "Template Part" +msgstr "" + +#: src/pages/part/PartDetail.tsx:347 +#: src/tables/bom/BomTable.tsx:315 +msgid "Assembled Part" +msgstr "" + +#: src/pages/part/PartDetail.tsx:352 +msgid "Component Part" +msgstr "" + +#: src/pages/part/PartDetail.tsx:357 +#: src/tables/bom/BomTable.tsx:305 +msgid "Testable Part" +msgstr "" + +#: src/pages/part/PartDetail.tsx:363 #: src/tables/bom/BomTable.tsx:310 msgid "Trackable Part" msgstr "" -#: src/pages/part/PartDetail.tsx:334 +#: src/pages/part/PartDetail.tsx:368 msgid "Purchaseable Part" msgstr "" -#: src/pages/part/PartDetail.tsx:339 +#: src/pages/part/PartDetail.tsx:374 msgid "Saleable Part" msgstr "" -#: src/pages/part/PartDetail.tsx:344 +#: src/pages/part/PartDetail.tsx:379 msgid "Virtual Part" msgstr "" -#: src/pages/part/PartDetail.tsx:352 -#: src/tables/ColumnRenderers.tsx:220 +#: src/pages/part/PartDetail.tsx:393 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:215 +#: src/pages/sales/ReturnOrderDetail.tsx:185 +#: src/pages/sales/SalesOrderDetail.tsx:197 +#: src/tables/ColumnRenderers.tsx:234 msgid "Creation Date" msgstr "" -#: src/pages/part/PartDetail.tsx:357 +#: src/pages/part/PartDetail.tsx:398 msgid "Created By" msgstr "" -#: src/pages/part/PartDetail.tsx:372 +#: src/pages/part/PartDetail.tsx:413 msgid "Default Supplier" msgstr "" -#: src/pages/part/PartDetail.tsx:383 -#: src/pages/part/pricing/BomPricingPanel.tsx:79 +#: src/pages/part/PartDetail.tsx:424 +#: src/pages/part/pricing/BomPricingPanel.tsx:113 #: src/pages/part/pricing/VariantPricingPanel.tsx:95 #: src/tables/part/PartTable.tsx:161 msgid "Price Range" msgstr "" -#: src/pages/part/PartDetail.tsx:423 -#: src/pages/stock/StockDetail.tsx:135 +#: src/pages/part/PartDetail.tsx:462 +msgid "Latest Serial Number" +msgstr "" + +#: src/pages/part/PartDetail.tsx:472 +#: src/pages/stock/StockDetail.tsx:151 msgid "Last Stocktake" msgstr "" -#: src/pages/part/PartDetail.tsx:462 +#: src/pages/part/PartDetail.tsx:511 msgid "Stocktake By" msgstr "" -#: src/pages/part/PartDetail.tsx:526 -msgid "Part Details" -msgstr "" - -#: src/pages/part/PartDetail.tsx:557 +#: src/pages/part/PartDetail.tsx:611 msgid "Variants" msgstr "" -#: src/pages/part/PartDetail.tsx:564 -#: src/pages/stock/StockDetail.tsx:307 +#: src/pages/part/PartDetail.tsx:618 +#: src/pages/stock/StockDetail.tsx:430 msgid "Allocations" msgstr "" -#: src/pages/part/PartDetail.tsx:575 -#: src/pages/stock/StockDetail.tsx:318 -#: src/tables/part/PartTable.tsx:99 -msgid "Build Order Allocations" -msgstr "" - -#: src/pages/part/PartDetail.tsx:590 -#: src/pages/stock/StockDetail.tsx:333 -#: src/tables/part/PartTable.tsx:108 -msgid "Sales Order Allocations" -msgstr "" - -#: src/pages/part/PartDetail.tsx:607 +#: src/pages/part/PartDetail.tsx:625 msgid "Bill of Materials" msgstr "" -#: src/pages/part/PartDetail.tsx:623 +#: src/pages/part/PartDetail.tsx:643 msgid "Used In" msgstr "" -#: src/pages/part/PartDetail.tsx:630 +#: src/pages/part/PartDetail.tsx:650 msgid "Part Pricing" msgstr "" -#: src/pages/part/PartDetail.tsx:636 +#: src/pages/part/PartDetail.tsx:656 #: src/pages/purchasing/PurchasingIndex.tsx:42 msgid "Manufacturers" msgstr "" -#: src/pages/part/PartDetail.tsx:676 +#: src/pages/part/PartDetail.tsx:722 msgid "Scheduling" msgstr "" -#: src/pages/part/PartDetail.tsx:688 +#: src/pages/part/PartDetail.tsx:729 msgid "Test Templates" msgstr "" -#: src/pages/part/PartDetail.tsx:715 +#: src/pages/part/PartDetail.tsx:756 msgid "Related Parts" msgstr "" -#: src/pages/part/PartDetail.tsx:849 -#: src/pages/stock/StockDetail.tsx:156 -#: src/pages/stock/StockDetail.tsx:593 -#: src/tables/build/BuildLineTable.tsx:48 +#: src/pages/part/PartDetail.tsx:881 +#: src/pages/stock/StockDetail.tsx:172 +#: src/pages/stock/StockDetail.tsx:783 +#: src/tables/build/BuildLineTable.tsx:179 #: src/tables/part/PartTable.tsx:117 -#: src/tables/stock/StockItemTable.tsx:177 -#: src/tables/stock/StockItemTable.tsx:310 +#: src/tables/stock/StockItemTable.tsx:166 +#: src/tables/stock/StockItemTable.tsx:314 msgid "Available" msgstr "" -#: src/pages/part/PartDetail.tsx:855 +#: src/pages/part/PartDetail.tsx:887 msgid "No Stock" msgstr "" -#: src/pages/part/PartDetail.tsx:861 +#: src/pages/part/PartDetail.tsx:893 +#: src/tables/part/PartTestTemplateTable.tsx:106 +#: src/tables/stock/StockItemTestResultTable.tsx:383 +msgid "Required" +msgstr "" + +#: src/pages/part/PartDetail.tsx:899 #: src/tables/bom/BomTable.tsx:325 #: src/tables/part/PartTable.tsx:86 msgid "On Order" msgstr "" -#: src/pages/part/PartDetail.tsx:867 -#: src/pages/stock/StockDetail.tsx:576 -#: src/tables/build/BuildOrderTestTable.tsx:219 -#: src/tables/stock/StockItemTable.tsx:330 -msgid "In Production" -msgstr "" - -#: src/pages/part/PartDetail.tsx:892 +#: src/pages/part/PartDetail.tsx:924 msgid "Edit Part" msgstr "" -#: src/pages/part/PartDetail.tsx:927 +#: src/pages/part/PartDetail.tsx:959 #: src/tables/part/PartTable.tsx:331 -#: src/tables/part/PartTable.tsx:342 +#: src/tables/part/PartTable.tsx:343 msgid "Add Part" msgstr "" -#: src/pages/part/PartDetail.tsx:941 +#: src/pages/part/PartDetail.tsx:973 msgid "Delete Part" msgstr "" -#: src/pages/part/PartDetail.tsx:950 +#: src/pages/part/PartDetail.tsx:982 msgid "Deleting this part cannot be reversed" msgstr "" -#: src/pages/part/PartDetail.tsx:999 -#: src/pages/stock/LocationDetail.tsx:324 -#: src/tables/stock/StockItemTable.tsx:444 +#: src/pages/part/PartDetail.tsx:1021 +#: src/pages/stock/LocationDetail.tsx:310 +#: src/tables/stock/StockItemTable.tsx:449 msgid "Stock Actions" msgstr "" -#: src/pages/part/PartDetail.tsx:1007 +#: src/pages/part/PartDetail.tsx:1029 msgid "Count part stock" msgstr "" -#: src/pages/part/PartDetail.tsx:1018 +#: src/pages/part/PartDetail.tsx:1040 msgid "Transfer part stock" msgstr "" -#: src/pages/part/PartDetail.tsx:1027 +#: src/pages/part/PartDetail.tsx:1049 msgid "Part Actions" msgstr "" -#: src/pages/part/PartDetail.tsx:1087 +#: src/pages/part/PartDetail.tsx:1113 msgid "Select Part Revision" msgstr "" @@ -4862,113 +5621,214 @@ msgstr "" #~ msgid "Categories" #~ msgstr "Categories" -#: src/pages/part/PartPricingPanel.tsx:68 +#: src/pages/part/PartPricingPanel.tsx:72 msgid "No pricing data found for this part." msgstr "" -#: src/pages/part/PartPricingPanel.tsx:82 -#: src/pages/part/pricing/PricingOverviewPanel.tsx:190 +#: src/pages/part/PartPricingPanel.tsx:87 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:293 msgid "Pricing Overview" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:88 +#: src/pages/part/PartPricingPanel.tsx:93 msgid "Purchase History" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:102 -#: src/pages/part/pricing/PricingOverviewPanel.tsx:100 +#: src/pages/part/PartPricingPanel.tsx:107 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:174 msgid "Internal Pricing" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:120 -#: src/pages/part/pricing/PricingOverviewPanel.tsx:107 +#: src/pages/part/PartPricingPanel.tsx:125 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:181 msgid "BOM Pricing" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:127 -#: src/pages/part/pricing/PricingOverviewPanel.tsx:128 +#: src/pages/part/PartPricingPanel.tsx:132 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:202 msgid "Variant Pricing" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:139 -#: src/pages/part/pricing/PricingOverviewPanel.tsx:135 +#: src/pages/part/PartPricingPanel.tsx:144 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:209 msgid "Sale Pricing" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:146 -#: src/pages/part/pricing/PricingOverviewPanel.tsx:142 +#: src/pages/part/PartPricingPanel.tsx:151 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:216 msgid "Sale History" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:58 -#: src/pages/part/pricing/BomPricingPanel.tsx:138 -#: src/tables/ColumnRenderers.tsx:262 +#: src/pages/part/PartSchedulingDetail.tsx:47 +#: src/pages/part/PartSchedulingDetail.tsx:299 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:156 +msgid "Maximum" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:50 +#: src/pages/part/PartSchedulingDetail.tsx:289 +msgid "Scheduled" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:53 +#: src/pages/part/PartSchedulingDetail.tsx:294 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:144 +msgid "Minimum" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:68 +msgid "Order" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:92 +msgid "Quantity is speculative" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:101 +msgid "No date available for provided quantity" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:105 +msgid "Date is in the past" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:112 +msgid "Scheduled Quantity" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:240 +msgid "No information available" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:241 +msgid "There is no scheduling information available for the selected part" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:276 +msgid "Expected Quantity" +msgstr "" + +#: src/pages/part/PartStocktakeDetail.tsx:63 +#: src/tables/FilterSelectDrawer.tsx:167 +#: src/tables/FilterSelectDrawer.tsx:174 +#: src/tables/build/BuildOrderTestTable.tsx:135 +#: src/tables/purchasing/ManufacturerPartParameterTable.tsx:38 +#: src/tables/stock/StockItemTestResultTable.tsx:192 +msgid "Value" +msgstr "" + +#: src/pages/part/PartStocktakeDetail.tsx:82 +msgid "Edit Stocktake Entry" +msgstr "" + +#: src/pages/part/PartStocktakeDetail.tsx:90 +msgid "Delete Stocktake Entry" +msgstr "" + +#: src/pages/part/PartStocktakeDetail.tsx:96 +#: src/tables/settings/StocktakeReportTable.tsx:69 +msgid "Generate Stocktake Report" +msgstr "" + +#: src/pages/part/PartStocktakeDetail.tsx:101 +#: src/tables/settings/StocktakeReportTable.tsx:71 +msgid "Stocktake report scheduled" +msgstr "" + +#: src/pages/part/PartStocktakeDetail.tsx:119 +#: src/pages/part/PartStocktakeDetail.tsx:235 +#: src/pages/stock/StockDetail.tsx:303 +#: src/tables/stock/StockItemTable.tsx:249 +msgid "Stock Value" +msgstr "" + +#: src/pages/part/PartStocktakeDetail.tsx:139 +#: src/tables/settings/StocktakeReportTable.tsx:77 +msgid "New Stocktake Report" +msgstr "" + +#: src/pages/part/PartStocktakeDetail.tsx:258 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:295 +msgid "Minimum Value" +msgstr "" + +#: src/pages/part/PartStocktakeDetail.tsx:264 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:296 +msgid "Maximum Value" +msgstr "" + +#: src/pages/part/pricing/BomPricingPanel.tsx:87 +#: src/pages/part/pricing/BomPricingPanel.tsx:177 +#: src/tables/ColumnRenderers.tsx:276 #: src/tables/bom/BomTable.tsx:185 #: src/tables/general/ExtraLineItemTable.tsx:64 -#: src/tables/purchasing/PurchaseOrderTable.tsx:112 -#: src/tables/sales/ReturnOrderTable.tsx:104 -#: src/tables/sales/SalesOrderLineItemTable.tsx:89 -#: src/tables/sales/SalesOrderTable.tsx:136 +#: src/tables/purchasing/PurchaseOrderTable.tsx:113 +#: src/tables/sales/ReturnOrderTable.tsx:127 +#: src/tables/sales/SalesOrderLineItemTable.tsx:97 +#: src/tables/sales/SalesOrderTable.tsx:149 msgid "Total Price" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:78 -#: src/pages/part/pricing/BomPricingPanel.tsx:102 +#: src/pages/part/pricing/BomPricingPanel.tsx:112 +#: src/pages/part/pricing/BomPricingPanel.tsx:141 #: src/tables/bom/UsedInTable.tsx:49 +#: src/tables/build/BuildLineTable.tsx:296 #: src/tables/part/PartTable.tsx:202 msgid "Component" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:81 -#: src/pages/part/pricing/VariantPricingPanel.tsx:37 -#: src/pages/part/pricing/VariantPricingPanel.tsx:97 -msgid "Minimum Price" -msgstr "" - -#: src/pages/part/pricing/BomPricingPanel.tsx:82 -#: src/pages/part/pricing/VariantPricingPanel.tsx:45 -#: src/pages/part/pricing/VariantPricingPanel.tsx:98 -msgid "Maximum Price" -msgstr "" - #: src/pages/part/pricing/BomPricingPanel.tsx:112 #~ msgid "Minimum Total Price" #~ msgstr "Minimum Total Price" +#: src/pages/part/pricing/BomPricingPanel.tsx:115 +#: src/pages/part/pricing/VariantPricingPanel.tsx:37 +#: src/pages/part/pricing/VariantPricingPanel.tsx:97 +msgid "Minimum Price" +msgstr "" + +#: src/pages/part/pricing/BomPricingPanel.tsx:116 +#: src/pages/part/pricing/VariantPricingPanel.tsx:45 +#: src/pages/part/pricing/VariantPricingPanel.tsx:98 +msgid "Maximum Price" +msgstr "" + #: src/pages/part/pricing/BomPricingPanel.tsx:117 #~ msgid "Maximum Total Price" #~ msgstr "Maximum Total Price" -#: src/pages/part/pricing/BomPricingPanel.tsx:129 -#: src/pages/part/pricing/PriceBreakPanel.tsx:172 -#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:67 -#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:128 -#: src/pages/part/pricing/SupplierPricingPanel.tsx:62 +#: src/pages/part/pricing/BomPricingPanel.tsx:168 +#: src/pages/part/pricing/PriceBreakPanel.tsx:173 +#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:70 +#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:125 +#: src/pages/part/pricing/SupplierPricingPanel.tsx:66 +#: src/pages/stock/StockDetail.tsx:291 #: src/tables/bom/BomTable.tsx:176 #: src/tables/general/ExtraLineItemTable.tsx:56 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:223 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:225 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:92 +#: src/tables/stock/StockItemTable.tsx:239 msgid "Unit Price" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:154 +#: src/pages/part/pricing/BomPricingPanel.tsx:193 #: src/pages/part/pricing/VariantPricingPanel.tsx:53 -#: src/tables/purchasing/SupplierPartTable.tsx:148 +#: src/tables/purchasing/SupplierPartTable.tsx:150 msgid "Updated" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:219 +#: src/pages/part/pricing/BomPricingPanel.tsx:258 msgid "Pie Chart" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:220 +#: src/pages/part/pricing/BomPricingPanel.tsx:259 msgid "Bar Chart" msgstr "" #: src/pages/part/pricing/PriceBreakPanel.tsx:58 -#: src/pages/part/pricing/PriceBreakPanel.tsx:110 +#: src/pages/part/pricing/PriceBreakPanel.tsx:111 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:142 -#: src/tables/purchasing/SupplierPriceBreakTable.tsx:168 +#: src/tables/purchasing/SupplierPriceBreakTable.tsx:169 msgid "Add Price Break" msgstr "" @@ -4986,46 +5846,70 @@ msgstr "" msgid "Price Break" msgstr "" -#: src/pages/part/pricing/PriceBreakPanel.tsx:170 +#: src/pages/part/pricing/PriceBreakPanel.tsx:171 msgid "Price" msgstr "" -#: src/pages/part/pricing/PricingOverviewPanel.tsx:51 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:68 +msgid "Refreshing pricing data" +msgstr "" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:88 +msgid "Pricing data updated" +msgstr "" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:95 +msgid "Failed to update pricing data" +msgstr "" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:104 +msgid "Edit Pricing" +msgstr "" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:125 msgid "Pricing Category" msgstr "" -#: src/pages/part/pricing/PricingOverviewPanel.tsx:70 -msgid "Minimum" -msgstr "" - -#: src/pages/part/pricing/PricingOverviewPanel.tsx:82 -msgid "Maximum" -msgstr "" - -#: src/pages/part/pricing/PricingOverviewPanel.tsx:114 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:188 msgid "Purchase Pricing" msgstr "" -#: src/pages/part/pricing/PricingOverviewPanel.tsx:149 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:223 msgid "Override Pricing" msgstr "" -#: src/pages/part/pricing/PricingOverviewPanel.tsx:156 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:230 msgid "Overall Pricing" msgstr "" -#: src/pages/part/pricing/PricingOverviewPanel.tsx:175 -#: src/pages/stock/StockDetail.tsx:129 -#: src/tables/stock/StockItemTable.tsx:240 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:249 +#: src/pages/stock/StockDetail.tsx:145 +#: src/tables/stock/StockItemTable.tsx:275 msgid "Last Updated" msgstr "" -#: src/pages/part/pricing/PricingOverviewPanel.tsx:192 -msgid "Minimum Value" +#: src/pages/part/pricing/PricingOverviewPanel.tsx:253 +msgid "Pricing Not Set" msgstr "" -#: src/pages/part/pricing/PricingOverviewPanel.tsx:193 -msgid "Maximum Value" +#: src/pages/part/pricing/PricingOverviewPanel.tsx:254 +msgid "Pricing data has not been calculated for this part" +msgstr "" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:258 +msgid "Pricing Actions" +msgstr "" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:261 +msgid "Refresh" +msgstr "" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:262 +msgid "Refresh pricing data" +msgstr "" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:277 +msgid "Edit pricing data" msgstr "" #: src/pages/part/pricing/PricingPanel.tsx:24 @@ -5044,28 +5928,20 @@ msgstr "" msgid "Loading pricing data" msgstr "" -#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:40 -#: src/pages/part/pricing/SaleHistoryPanel.tsx:36 -#: src/tables/ColumnRenderers.tsx:201 -#: src/tables/build/BuildOrderTestTable.tsx:150 -#: src/tables/plugin/PluginListTable.tsx:139 -msgid "Date" -msgstr "" - #: src/pages/part/pricing/PurchaseHistoryPanel.tsx:47 msgid "Purchase Price" msgstr "" -#: src/pages/part/pricing/SaleHistoryPanel.tsx:22 -msgid "Sale Order" -msgstr "" +#: src/pages/part/pricing/SaleHistoryPanel.tsx:24 +#~ msgid "Sale Order" +#~ msgstr "Sale Order" -#: src/pages/part/pricing/SaleHistoryPanel.tsx:42 -#: src/pages/part/pricing/SaleHistoryPanel.tsx:92 +#: src/pages/part/pricing/SaleHistoryPanel.tsx:44 +#: src/pages/part/pricing/SaleHistoryPanel.tsx:87 msgid "Sale Price" msgstr "" -#: src/pages/part/pricing/SupplierPricingPanel.tsx:65 +#: src/pages/part/pricing/SupplierPricingPanel.tsx:69 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:83 msgid "Supplier Price" msgstr "" @@ -5075,23 +5951,23 @@ msgstr "" msgid "Variant Part" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:93 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:87 msgid "Edit Purchase Order" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:102 -#: src/tables/purchasing/PurchaseOrderTable.tsx:128 -#: src/tables/purchasing/PurchaseOrderTable.tsx:140 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:96 +#: src/tables/purchasing/PurchaseOrderTable.tsx:129 +#: src/tables/purchasing/PurchaseOrderTable.tsx:142 msgid "Add Purchase Order" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:127 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:121 msgid "Supplier Reference" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:158 -#: src/pages/sales/ReturnOrderDetail.tsx:137 -#: src/pages/sales/SalesOrderDetail.tsx:137 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:152 +#: src/pages/sales/ReturnOrderDetail.tsx:129 +#: src/pages/sales/SalesOrderDetail.tsx:132 msgid "Completed Line Items" msgstr "" @@ -5101,91 +5977,112 @@ msgstr "" #~ msgid "Order Currency," #~ msgstr "Order Currency," -#: src/pages/purchasing/PurchaseOrderDetail.tsx:165 -#: src/pages/sales/ReturnOrderDetail.tsx:144 -#: src/pages/sales/SalesOrderDetail.tsx:153 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:161 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:231 +msgid "Destination" +msgstr "" + +#: src/pages/purchasing/PurchaseOrderDetail.tsx:167 +#: src/pages/sales/ReturnOrderDetail.tsx:136 +#: src/pages/sales/SalesOrderDetail.tsx:148 msgid "Order Currency" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:172 -#: src/pages/sales/ReturnOrderDetail.tsx:151 -#: src/pages/sales/SalesOrderDetail.tsx:160 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:173 +#: src/pages/sales/ReturnOrderDetail.tsx:143 +#: src/pages/sales/SalesOrderDetail.tsx:155 msgid "Total Cost" msgstr "" #: src/pages/purchasing/PurchaseOrderDetail.tsx:207 -#: src/pages/sales/ReturnOrderDetail.tsx:186 -#: src/pages/sales/SalesOrderDetail.tsx:195 -msgid "Created On" +#: src/pages/sales/ReturnOrderDetail.tsx:183 +#: src/pages/sales/SalesOrderDetail.tsx:191 +#~ msgid "Created On" +#~ msgstr "Created On" + +#: src/pages/purchasing/PurchaseOrderDetail.tsx:221 +#: src/pages/sales/ReturnOrderDetail.tsx:193 +#: src/pages/sales/SalesOrderDetail.tsx:204 +msgid "Issue Date" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:252 -#: src/pages/sales/ReturnOrderDetail.tsx:231 -#: src/pages/sales/SalesOrderDetail.tsx:266 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:237 +#: src/pages/sales/ReturnOrderDetail.tsx:209 +#: src/pages/sales/SalesOrderDetail.tsx:219 +#: src/tables/build/BuildOrderTable.tsx:98 +#: src/tables/part/PartPurchaseOrdersTable.tsx:105 +#: src/tables/sales/ReturnOrderTable.tsx:122 +msgid "Completion Date" +msgstr "" + +#: src/pages/purchasing/PurchaseOrderDetail.tsx:276 +#: src/pages/sales/ReturnOrderDetail.tsx:248 +#: src/pages/sales/SalesOrderDetail.tsx:288 msgid "Order Details" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:280 -#: src/pages/sales/ReturnOrderDetail.tsx:258 -#: src/pages/sales/SalesOrderDetail.tsx:297 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:304 +#: src/pages/sales/ReturnOrderDetail.tsx:276 +#: src/pages/sales/SalesOrderDetail.tsx:319 msgid "Extra Line Items" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:337 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:346 msgid "Issue Purchase Order" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:345 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:354 msgid "Cancel Purchase Order" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:353 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:362 msgid "Hold Purchase Order" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:361 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:370 msgid "Complete Purchase Order" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:427 -#: src/pages/sales/ReturnOrderDetail.tsx:428 -#: src/pages/sales/SalesOrderDetail.tsx:468 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:425 +#: src/pages/sales/ReturnOrderDetail.tsx:424 +#: src/pages/sales/SalesOrderDetail.tsx:464 msgid "Order Actions" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:101 -#: src/pages/sales/SalesOrderDetail.tsx:107 -#: src/tables/sales/SalesOrderTable.tsx:124 +#: src/pages/sales/ReturnOrderDetail.tsx:92 +#: src/pages/sales/SalesOrderDetail.tsx:101 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:109 +#: src/tables/sales/SalesOrderTable.tsx:137 msgid "Customer Reference" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:315 +#: src/pages/sales/ReturnOrderDetail.tsx:322 msgid "Edit Return Order" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:324 -#: src/tables/sales/ReturnOrderTable.tsx:119 -#: src/tables/sales/ReturnOrderTable.tsx:128 +#: src/pages/sales/ReturnOrderDetail.tsx:331 +#: src/tables/sales/ReturnOrderTable.tsx:142 +#: src/tables/sales/ReturnOrderTable.tsx:152 msgid "Add Return Order" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:336 +#: src/pages/sales/ReturnOrderDetail.tsx:343 msgid "Issue Return Order" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:344 +#: src/pages/sales/ReturnOrderDetail.tsx:349 +#~ msgid "Order canceled" +#~ msgstr "Order canceled" + +#: src/pages/sales/ReturnOrderDetail.tsx:351 msgid "Cancel Return Order" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:347 -msgid "Order canceled" -msgstr "" - -#: src/pages/sales/ReturnOrderDetail.tsx:352 +#: src/pages/sales/ReturnOrderDetail.tsx:359 msgid "Hold Return Order" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:360 +#: src/pages/sales/ReturnOrderDetail.tsx:367 msgid "Complete Return Order" msgstr "" @@ -5193,117 +6090,193 @@ msgstr "" msgid "Customers" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:145 +#: src/pages/sales/SalesOrderDetail.tsx:140 msgid "Completed Shipments" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:243 -msgid "Edit Sales Order" -msgstr "" - -#: src/pages/sales/SalesOrderDetail.tsx:252 -#: src/tables/sales/SalesOrderTable.tsx:84 -#: src/tables/sales/SalesOrderTable.tsx:96 -msgid "Add Sales Order" -msgstr "" - #: src/pages/sales/SalesOrderDetail.tsx:256 #~ msgid "Pending Shipments" #~ msgstr "Pending Shipments" -#: src/pages/sales/SalesOrderDetail.tsx:313 +#: src/pages/sales/SalesOrderDetail.tsx:261 +msgid "Edit Sales Order" +msgstr "" + +#: src/pages/sales/SalesOrderDetail.tsx:274 +#: src/tables/sales/SalesOrderTable.tsx:96 +#: src/tables/sales/SalesOrderTable.tsx:109 +msgid "Add Sales Order" +msgstr "" + +#: src/pages/sales/SalesOrderDetail.tsx:335 msgid "Shipments" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:369 +#: src/pages/sales/SalesOrderDetail.tsx:376 msgid "Issue Sales Order" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:377 +#: src/pages/sales/SalesOrderDetail.tsx:384 msgid "Cancel Sales Order" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:385 +#: src/pages/sales/SalesOrderDetail.tsx:392 msgid "Hold Sales Order" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:393 +#: src/pages/sales/SalesOrderDetail.tsx:400 msgid "Complete Sales Order" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:432 +#: src/pages/sales/SalesOrderDetail.tsx:439 msgid "Ship Order" msgstr "" -#: src/pages/stock/LocationDetail.tsx:117 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:117 +#: src/tables/sales/SalesOrderShipmentTable.tsx:96 +msgid "Shipment Reference" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:124 +msgid "Allocated Items" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:133 +msgid "Tracking Number" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:141 +msgid "Invoice Number" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:149 +#: src/tables/ColumnRenderers.tsx:242 +#: src/tables/sales/SalesOrderAllocationTable.tsx:142 +#: src/tables/sales/SalesOrderShipmentTable.tsx:115 +msgid "Shipment Date" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:157 +#: src/tables/sales/SalesOrderShipmentTable.tsx:119 +msgid "Delivery Date" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:204 +msgid "Shipment Details" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:210 +msgid "Assigned Items" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:241 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:317 +#: src/tables/sales/SalesOrderShipmentTable.tsx:75 +msgid "Edit Shipment" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:248 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:322 +#: src/tables/sales/SalesOrderShipmentTable.tsx:67 +msgid "Cancel Shipment" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:261 +#: src/tables/sales/SalesOrderShipmentTable.tsx:83 +#: src/tables/sales/SalesOrderShipmentTable.tsx:151 +msgid "Complete Shipment" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:276 +#: src/tables/part/PartPurchaseOrdersTable.tsx:121 +msgid "Pending" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:277 +#: src/tables/sales/SalesOrderAllocationTable.tsx:148 +#: src/tables/sales/SalesOrderShipmentTable.tsx:108 +#: src/tables/sales/SalesOrderShipmentTable.tsx:197 +msgid "Shipped" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:279 +#: src/tables/sales/SalesOrderShipmentTable.tsx:202 +msgid "Delivered" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:293 +msgid "Send Shipment" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:312 +msgid "Shipment Actions" +msgstr "" + +#: src/pages/stock/LocationDetail.tsx:111 msgid "Parent Location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:135 +#: src/pages/stock/LocationDetail.tsx:129 msgid "Sublocations" msgstr "" -#: src/pages/stock/LocationDetail.tsx:147 +#: src/pages/stock/LocationDetail.tsx:141 #: src/tables/stock/StockLocationTable.tsx:54 msgid "External" msgstr "" -#: src/pages/stock/LocationDetail.tsx:153 +#: src/pages/stock/LocationDetail.tsx:147 #: src/tables/stock/StockLocationTable.tsx:63 msgid "Location Type" msgstr "" -#: src/pages/stock/LocationDetail.tsx:164 +#: src/pages/stock/LocationDetail.tsx:158 msgid "Top level stock location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:175 +#: src/pages/stock/LocationDetail.tsx:169 msgid "Location Details" msgstr "" -#: src/pages/stock/LocationDetail.tsx:201 +#: src/pages/stock/LocationDetail.tsx:195 msgid "Default Parts" msgstr "" -#: src/pages/stock/LocationDetail.tsx:220 -#: src/pages/stock/LocationDetail.tsx:351 +#: src/pages/stock/LocationDetail.tsx:214 +#: src/pages/stock/LocationDetail.tsx:336 #: src/tables/stock/StockLocationTable.tsx:123 msgid "Edit Stock Location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:241 -#: src/pages/stock/LocationDetail.tsx:356 +#: src/pages/stock/LocationDetail.tsx:235 +#: src/pages/stock/LocationDetail.tsx:341 msgid "Delete Stock Location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:244 +#: src/pages/stock/LocationDetail.tsx:238 msgid "Items Action" msgstr "" -#: src/pages/stock/LocationDetail.tsx:245 +#: src/pages/stock/LocationDetail.tsx:239 msgid "Action for stock items in this location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:250 +#: src/pages/stock/LocationDetail.tsx:244 msgid "Child Locations Action" msgstr "" -#: src/pages/stock/LocationDetail.tsx:251 +#: src/pages/stock/LocationDetail.tsx:245 msgid "Action for child locations in this location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:346 +#: src/pages/stock/LocationDetail.tsx:332 msgid "Location Actions" msgstr "" -#: src/pages/stock/StockDetail.tsx:108 +#: src/pages/stock/StockDetail.tsx:116 msgid "Base Part" msgstr "" -#: src/pages/stock/StockDetail.tsx:115 -msgid "Stock Status" -msgstr "" - #: src/pages/stock/StockDetail.tsx:155 #~ msgid "Link custom barcode to stock item" #~ msgstr "Link custom barcode to stock item" @@ -5312,113 +6285,179 @@ msgstr "" #~ msgid "Unlink custom barcode from stock item" #~ msgstr "Unlink custom barcode from stock item" -#: src/pages/stock/StockDetail.tsx:188 -msgid "Installed In" -msgstr "" - -#: src/pages/stock/StockDetail.tsx:204 -msgid "Consumed By" +#: src/pages/stock/StockDetail.tsx:178 +msgid "Allocated to Orders" msgstr "" #: src/pages/stock/StockDetail.tsx:205 #~ msgid "Edit stock item" #~ msgstr "Edit stock item" -#: src/pages/stock/StockDetail.tsx:213 -#: src/tables/build/BuildAllocatedStockTable.tsx:64 -#: src/tables/stock/StockTrackingTable.tsx:96 -msgid "Build Order" +#: src/pages/stock/StockDetail.tsx:209 +msgid "Installed In" msgstr "" #: src/pages/stock/StockDetail.tsx:217 #~ msgid "Delete stock item" #~ msgstr "Delete stock item" -#: src/pages/stock/StockDetail.tsx:291 +#: src/pages/stock/StockDetail.tsx:226 +msgid "Parent Item" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:230 +msgid "Parent stock item" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:236 +msgid "Consumed By" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:245 +#: src/tables/build/BuildAllocatedStockTable.tsx:77 +#: src/tables/stock/StockTrackingTable.tsx:100 +msgid "Build Order" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:283 +#: src/tables/stock/StockItemTable.tsx:270 +msgid "Expiry Date" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:414 msgid "Stock Details" msgstr "" -#: src/pages/stock/StockDetail.tsx:297 +#: src/pages/stock/StockDetail.tsx:420 msgid "Stock Tracking" msgstr "" -#: src/pages/stock/StockDetail.tsx:350 -msgid "Test Data" -msgstr "" - -#: src/pages/stock/StockDetail.tsx:364 -msgid "Installed Items" -msgstr "" - -#: src/pages/stock/StockDetail.tsx:371 -msgid "Child Items" -msgstr "" - -#: src/pages/stock/StockDetail.tsx:425 -msgid "Edit Stock Item" -msgstr "" - #: src/pages/stock/StockDetail.tsx:433 #~ msgid "Duplicate stock item" #~ msgstr "Duplicate stock item" -#: src/pages/stock/StockDetail.tsx:452 +#: src/pages/stock/StockDetail.tsx:475 +msgid "Test Data" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:489 +msgid "Installed Items" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:496 +msgid "Child Items" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:545 +msgid "Edit Stock Item" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:572 msgid "Delete Stock Item" msgstr "" -#: src/pages/stock/StockDetail.tsx:504 +#: src/pages/stock/StockDetail.tsx:604 +msgid "Serialize Stock Item" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:617 +msgid "Stock item serialized" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:623 +msgid "Return Stock Item" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:626 +msgid "Return this item into stock. This will remove the customer assignment." +msgstr "" + +#: src/pages/stock/StockDetail.tsx:636 +msgid "Item returned to stock" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:666 msgid "Stock Operations" msgstr "" -#: src/pages/stock/StockDetail.tsx:509 +#: src/pages/stock/StockDetail.tsx:671 msgid "Count stock" msgstr "" -#: src/pages/stock/StockDetail.tsx:519 -#: src/tables/stock/StockItemTable.tsx:449 -msgid "Add stock" +#: src/pages/stock/StockDetail.tsx:671 +#: src/tables/stock/StockItemTable.tsx:452 +#~ msgid "Add stock" +#~ msgstr "Add stock" + +#: src/pages/stock/StockDetail.tsx:680 +#: src/tables/stock/StockItemTable.tsx:461 +#~ msgid "Remove stock" +#~ msgstr "Remove stock" + +#: src/pages/stock/StockDetail.tsx:698 +#: src/tables/stock/StockItemTable.tsx:481 +#~ msgid "Transfer stock" +#~ msgstr "Transfer stock" + +#: src/pages/stock/StockDetail.tsx:699 +msgid "Serialize" msgstr "" -#: src/pages/stock/StockDetail.tsx:527 -#: src/tables/stock/StockItemTable.tsx:458 -msgid "Remove stock" +#: src/pages/stock/StockDetail.tsx:700 +msgid "Serialize stock" msgstr "" -#: src/pages/stock/StockDetail.tsx:534 +#: src/pages/stock/StockDetail.tsx:711 msgid "Transfer" msgstr "" -#: src/pages/stock/StockDetail.tsx:535 -#: src/tables/stock/StockItemTable.tsx:478 -msgid "Transfer stock" +#: src/pages/stock/StockDetail.tsx:722 +msgid "Return" msgstr "" -#: src/pages/stock/StockDetail.tsx:546 +#: src/pages/stock/StockDetail.tsx:723 +msgid "Return from customer" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:738 msgid "Stock Item Actions" msgstr "" -#: src/tables/ColumnRenderers.tsx:30 +#: src/pages/stock/StockDetail.tsx:808 +msgid "Stale" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:814 +msgid "Expired" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:820 +msgid "Unavailable" +msgstr "" + +#: src/tables/ColumnRenderers.tsx:36 msgid "Part is not active" msgstr "" -#: src/tables/ColumnRenderers.tsx:35 -msgid "Part is locked" +#: src/tables/ColumnRenderers.tsx:41 +#: src/tables/bom/BomTable.tsx:542 +#: src/tables/part/PartParameterTable.tsx:193 +#: src/tables/part/PartTestTemplateTable.tsx:253 +msgid "Part is Locked" msgstr "" -#: src/tables/ColumnRenderers.tsx:57 +#: src/tables/ColumnRenderers.tsx:41 +#~ msgid "Part is locked" +#~ msgstr "Part is locked" + +#: src/tables/ColumnRenderers.tsx:46 +msgid "You are subscribed to notifications for this part" +msgstr "" + +#: src/tables/ColumnRenderers.tsx:68 msgid "No location set" msgstr "" -#: src/tables/ColumnRenderers.tsx:228 -#: src/tables/sales/SalesOrderShipmentTable.tsx:79 -msgid "Shipment Date" -msgstr "" - -#: src/tables/ColumnRenderers.tsx:248 -#: src/tables/settings/CurrencyTable.tsx:23 -msgid "Currency" -msgstr "" - #: src/tables/ColumnSelect.tsx:16 #: src/tables/ColumnSelect.tsx:23 msgid "Select Columns" @@ -5452,91 +6491,116 @@ msgstr "" msgid "Download Data" msgstr "" -#: src/tables/Filter.tsx:89 -#: src/tables/build/BuildOrderTable.tsx:135 +#: src/tables/Filter.tsx:101 msgid "Assigned to me" msgstr "" -#: src/tables/Filter.tsx:90 -#: src/tables/build/BuildOrderTable.tsx:136 +#: src/tables/Filter.tsx:102 msgid "Show orders assigned to me" msgstr "" -#: src/tables/Filter.tsx:97 +#: src/tables/Filter.tsx:106 +#~ msgid "Show overdue orders" +#~ msgstr "Show overdue orders" + +#: src/tables/Filter.tsx:109 +#: src/tables/build/BuildOrderTable.tsx:120 +#: src/tables/sales/SalesOrderAllocationTable.tsx:59 msgid "Outstanding" msgstr "" -#: src/tables/Filter.tsx:98 -msgid "Show outstanding orders" +#: src/tables/Filter.tsx:110 +msgid "Show outstanding items" msgstr "" -#: src/tables/Filter.tsx:105 -#: src/tables/build/BuildOrderTable.tsx:128 +#: src/tables/Filter.tsx:117 msgid "Overdue" msgstr "" -#: src/tables/Filter.tsx:106 -msgid "Show overdue orders" +#: src/tables/Filter.tsx:118 +msgid "Show overdue items" msgstr "" -#: src/tables/FilterSelectDrawer.tsx:51 +#: src/tables/Filter.tsx:125 +msgid "Minimum Date" +msgstr "" + +#: src/tables/Filter.tsx:126 +msgid "Show items after this date" +msgstr "" + +#: src/tables/Filter.tsx:134 +msgid "Maximum Date" +msgstr "" + +#: src/tables/Filter.tsx:135 +msgid "Show items before this date" +msgstr "" + +#: src/tables/Filter.tsx:144 +msgid "Has Project Code" +msgstr "" + +#: src/tables/Filter.tsx:145 +msgid "Show orders with an assigned project code" +msgstr "" + +#: src/tables/FilterSelectDrawer.tsx:55 msgid "Remove filter" msgstr "" -#: src/tables/FilterSelectDrawer.tsx:130 +#: src/tables/FilterSelectDrawer.tsx:159 msgid "Select filter" msgstr "" -#: src/tables/FilterSelectDrawer.tsx:131 +#: src/tables/FilterSelectDrawer.tsx:160 msgid "Filter" msgstr "" -#: src/tables/FilterSelectDrawer.tsx:138 -#: src/tables/build/BuildOrderTestTable.tsx:134 -#: src/tables/purchasing/ManufacturerPartParameterTable.tsx:38 -#: src/tables/stock/StockItemTestResultTable.tsx:186 -msgid "Value" +#: src/tables/FilterSelectDrawer.tsx:168 +msgid "Select date value" msgstr "" -#: src/tables/FilterSelectDrawer.tsx:140 +#: src/tables/FilterSelectDrawer.tsx:176 msgid "Select filter value" msgstr "" -#: src/tables/FilterSelectDrawer.tsx:183 +#: src/tables/FilterSelectDrawer.tsx:219 +#: src/tables/InvenTreeTableHeader.tsx:214 msgid "Table Filters" msgstr "" -#: src/tables/FilterSelectDrawer.tsx:215 +#: src/tables/FilterSelectDrawer.tsx:251 msgid "Add Filter" msgstr "" -#: src/tables/FilterSelectDrawer.tsx:224 +#: src/tables/FilterSelectDrawer.tsx:260 msgid "Clear Filters" msgstr "" -#: src/tables/InvenTreeTable.tsx:123 -#: src/tables/InvenTreeTable.tsx:431 -#: src/tables/InvenTreeTable.tsx:455 +#: src/tables/InvenTreeTable.tsx:96 +#: src/tables/InvenTreeTable.tsx:417 +#: src/tables/InvenTreeTable.tsx:441 msgid "No records found" msgstr "" -#: src/tables/InvenTreeTable.tsx:466 +#: src/tables/InvenTreeTable.tsx:452 msgid "Server returned incorrect data type" msgstr "" -#: src/tables/InvenTreeTable.tsx:474 +#: src/tables/InvenTreeTable.tsx:460 msgid "Bad request" msgstr "" -#: src/tables/InvenTreeTable.tsx:477 +#: src/tables/InvenTreeTable.tsx:463 msgid "Unauthorized" msgstr "" -#: src/tables/InvenTreeTable.tsx:480 +#: src/tables/InvenTreeTable.tsx:466 msgid "Forbidden" msgstr "" -#: src/tables/InvenTreeTable.tsx:483 +#: src/tables/InvenTreeTable.tsx:469 msgid "Not found" msgstr "" @@ -5544,18 +6608,6 @@ msgstr "" #~ msgid "Are you sure you want to delete the selected records?" #~ msgstr "Are you sure you want to delete the selected records?" -#: src/tables/InvenTreeTable.tsx:525 -msgid "Delete Selected Items" -msgstr "" - -#: src/tables/InvenTreeTable.tsx:529 -msgid "Are you sure you want to delete the selected items?" -msgstr "" - -#: src/tables/InvenTreeTable.tsx:531 -msgid "This action cannot be undone!" -msgstr "" - #: src/tables/InvenTreeTable.tsx:535 #~ msgid "Deleted records" #~ msgstr "Deleted records" @@ -5568,31 +6620,56 @@ msgstr "" #~ msgid "Failed to delete records" #~ msgstr "Failed to delete records" +#: src/tables/InvenTreeTable.tsx:552 +#~ msgid "This action cannot be undone!" +#~ msgstr "This action cannot be undone!" + #: src/tables/InvenTreeTable.tsx:594 #: src/tables/InvenTreeTable.tsx:595 #~ msgid "Print actions" #~ msgstr "Print actions" -#: src/tables/InvenTreeTable.tsx:618 -#: src/tables/InvenTreeTable.tsx:619 -msgid "Barcode actions" +#: src/tables/InvenTreeTable.tsx:655 +#: src/tables/InvenTreeTable.tsx:656 +#~ msgid "Barcode actions" +#~ msgstr "Barcode actions" + +#: src/tables/InvenTreeTable.tsx:712 +#~ msgid "Table filters" +#~ msgstr "Table filters" + +#: src/tables/InvenTreeTable.tsx:725 +#~ msgid "Clear custom query filters" +#~ msgstr "Clear custom query filters" + +#: src/tables/InvenTreeTableHeader.tsx:98 +msgid "Delete Selected Items" msgstr "" -#: src/tables/InvenTreeTable.tsx:628 +#: src/tables/InvenTreeTableHeader.tsx:102 +msgid "Are you sure you want to delete the selected items?" +msgstr "" + +#: src/tables/InvenTreeTableHeader.tsx:104 +#: src/tables/plugin/PluginListTable.tsx:305 +msgid "This action cannot be undone" +msgstr "" + +#: src/tables/InvenTreeTableHeader.tsx:142 +msgid "Custom table filters are active" +msgstr "" + +#: src/tables/InvenTreeTableHeader.tsx:169 msgid "Delete selected records" msgstr "" -#: src/tables/InvenTreeTable.tsx:649 +#: src/tables/InvenTreeTableHeader.tsx:188 msgid "Refresh data" msgstr "" -#: src/tables/InvenTreeTable.tsx:675 -msgid "Table filters" -msgstr "" - #: src/tables/TableHoverCard.tsx:35 -msgid "item-{idx}" -msgstr "" +#~ msgid "item-{idx}" +#~ msgstr "item-{idx}" #: src/tables/UploadAction.tsx:7 #~ msgid "Upload Data" @@ -5607,31 +6684,36 @@ msgid "Part Information" msgstr "" #: src/tables/bom/BomTable.tsx:212 -#: src/tables/build/BuildLineTable.tsx:126 +#: src/tables/build/BuildLineTable.tsx:257 #: src/tables/part/PartTable.tsx:125 msgid "External stock" msgstr "" #: src/tables/bom/BomTable.tsx:220 -#: src/tables/build/BuildLineTable.tsx:89 +#: src/tables/build/BuildLineTable.tsx:220 msgid "Includes substitute stock" msgstr "" #: src/tables/bom/BomTable.tsx:229 -#: src/tables/build/BuildLineTable.tsx:99 -#: src/tables/sales/SalesOrderLineItemTable.tsx:127 +#: src/tables/build/BuildLineTable.tsx:230 +#: src/tables/sales/SalesOrderLineItemTable.tsx:135 msgid "Includes variant stock" msgstr "" +#: src/tables/bom/BomTable.tsx:245 +#: src/tables/part/PartTable.tsx:92 +msgid "Building" +msgstr "" + #: src/tables/bom/BomTable.tsx:254 #: src/tables/part/PartTable.tsx:153 -#: src/tables/sales/SalesOrderLineItemTable.tsx:150 -#: src/tables/stock/StockItemTable.tsx:216 +#: src/tables/sales/SalesOrderLineItemTable.tsx:158 +#: src/tables/stock/StockItemTable.tsx:206 msgid "Stock Information" msgstr "" #: src/tables/bom/BomTable.tsx:285 -#: src/tables/build/BuildLineTable.tsx:248 +#: src/tables/build/BuildLineTable.tsx:409 msgid "Consumable item" msgstr "" @@ -5644,7 +6726,7 @@ msgstr "" #~ msgstr "Create BOM Item" #: src/tables/bom/BomTable.tsx:306 -#: src/tables/build/BuildLineTable.tsx:69 +#: src/tables/build/BuildLineTable.tsx:200 msgid "Show testable items" msgstr "" @@ -5657,11 +6739,12 @@ msgid "Show trackable items" msgstr "" #: src/tables/bom/BomTable.tsx:316 -#: src/tables/build/BuildLineTable.tsx:64 +#: src/tables/build/BuildLineTable.tsx:195 msgid "Show assembled items" msgstr "" #: src/tables/bom/BomTable.tsx:321 +#: src/tables/build/BuildLineTable.tsx:180 msgid "Show items with available stock" msgstr "" @@ -5705,7 +6788,7 @@ msgstr "" #: src/tables/bom/BomTable.tsx:345 #: src/tables/bom/UsedInTable.tsx:79 -#: src/tables/build/BuildLineTable.tsx:58 +#: src/tables/build/BuildLineTable.tsx:189 msgid "Optional" msgstr "" @@ -5723,7 +6806,7 @@ msgstr "" #~ msgstr "Bom item deleted" #: src/tables/bom/BomTable.tsx:350 -#: src/tables/build/BuildLineTable.tsx:53 +#: src/tables/build/BuildLineTable.tsx:184 msgid "Consumable" msgstr "" @@ -5749,12 +6832,12 @@ msgid "Show items with pricing" msgstr "" #: src/tables/bom/BomTable.tsx:378 -#: src/tables/bom/BomTable.tsx:511 +#: src/tables/bom/BomTable.tsx:512 msgid "Import BOM Data" msgstr "" #: src/tables/bom/BomTable.tsx:388 -#: src/tables/bom/BomTable.tsx:523 +#: src/tables/bom/BomTable.tsx:526 msgid "Add BOM Item" msgstr "" @@ -5780,7 +6863,7 @@ msgstr "" #: src/tables/bom/BomTable.tsx:423 #: src/tables/bom/BomTable.tsx:426 -#: src/tables/bom/BomTable.tsx:517 +#: src/tables/bom/BomTable.tsx:519 msgid "Validate BOM" msgstr "" @@ -5812,21 +6895,15 @@ msgstr "" msgid "Edit Substitutes" msgstr "" -#: src/tables/bom/BomTable.tsx:539 -#: src/tables/part/PartParameterTable.tsx:193 -#: src/tables/part/PartTestTemplateTable.tsx:252 -msgid "Part is Locked" -msgstr "" - -#: src/tables/bom/BomTable.tsx:544 +#: src/tables/bom/BomTable.tsx:547 msgid "Bill of materials cannot be edited, as the part is locked" msgstr "" #: src/tables/bom/UsedInTable.tsx:33 -#: src/tables/build/BuildLineTable.tsx:63 +#: src/tables/build/BuildLineTable.tsx:194 #: src/tables/part/ParametricPartTable.tsx:233 #: src/tables/part/PartTable.tsx:190 -#: src/tables/stock/StockItemTable.tsx:300 +#: src/tables/stock/StockItemTable.tsx:304 msgid "Assembly" msgstr "" @@ -5844,285 +6921,347 @@ msgstr "" msgid "Show trackable assemblies" msgstr "" -#: src/tables/build/BuildAllocatedStockTable.tsx:54 +#: src/tables/build/BuildAllocatedStockTable.tsx:56 msgid "Allocated to Output" msgstr "" -#: src/tables/build/BuildAllocatedStockTable.tsx:55 +#: src/tables/build/BuildAllocatedStockTable.tsx:57 msgid "Show items allocated to a build output" msgstr "" -#: src/tables/build/BuildAllocatedStockTable.tsx:76 -#: src/tables/part/PartPurchaseOrdersTable.tsx:125 -#: src/tables/sales/SalesOrderAllocationTable.tsx:62 +#: src/tables/build/BuildAllocatedStockTable.tsx:65 +#: src/tables/build/BuildOrderTable.tsx:159 +#: src/tables/part/PartParameterTable.tsx:212 +#: src/tables/part/PartPurchaseOrdersTable.tsx:138 +#: src/tables/sales/ReturnOrderTable.tsx:84 +#: src/tables/sales/SalesOrderAllocationTable.tsx:68 +#: src/tables/sales/SalesOrderTable.tsx:84 +#: src/tables/stock/StockItemTable.tsx:339 +msgid "Include Variants" +msgstr "" + +#: src/tables/build/BuildAllocatedStockTable.tsx:66 +#: src/tables/build/BuildOrderTable.tsx:160 +#: src/tables/part/PartPurchaseOrdersTable.tsx:139 +#: src/tables/sales/ReturnOrderTable.tsx:85 +#: src/tables/sales/SalesOrderAllocationTable.tsx:69 +#: src/tables/sales/SalesOrderTable.tsx:85 +msgid "Include orders for part variants" +msgstr "" + +#: src/tables/build/BuildAllocatedStockTable.tsx:89 +#: src/tables/part/PartPurchaseOrdersTable.tsx:131 +#: src/tables/sales/SalesOrderAllocationTable.tsx:93 msgid "Order Status" msgstr "" -#: src/tables/build/BuildAllocatedStockTable.tsx:96 -#: src/tables/sales/SalesOrderAllocationTable.tsx:75 +#: src/tables/build/BuildAllocatedStockTable.tsx:117 +#: src/tables/sales/SalesOrderAllocationTable.tsx:126 msgid "Allocated Quantity" msgstr "" -#: src/tables/build/BuildAllocatedStockTable.tsx:116 -#: src/tables/sales/SalesOrderAllocationTable.tsx:94 +#: src/tables/build/BuildAllocatedStockTable.tsx:137 +#: src/tables/sales/SalesOrderAllocationTable.tsx:120 msgid "Available Quantity" msgstr "" -#: src/tables/build/BuildAllocatedStockTable.tsx:126 -#: src/tables/build/BuildOrderTestTable.tsx:176 -#: src/tables/build/BuildOrderTestTable.tsx:200 -#: src/tables/build/BuildOutputTable.tsx:312 -msgid "Build Output" +#: src/tables/build/BuildAllocatedStockTable.tsx:164 +#: src/tables/build/BuildLineTable.tsx:513 +msgid "Edit Stock Allocation" msgstr "" -#: src/tables/build/BuildAllocatedStockTable.tsx:143 -msgid "Edit Build Item" -msgstr "" +#: src/tables/build/BuildAllocatedStockTable.tsx:164 +#~ msgid "Edit Build Item" +#~ msgstr "Edit Build Item" -#: src/tables/build/BuildAllocatedStockTable.tsx:153 -msgid "Delete Build Item" -msgstr "" +#: src/tables/build/BuildAllocatedStockTable.tsx:174 +#~ msgid "Delete Build Item" +#~ msgstr "Delete Build Item" -#: src/tables/build/BuildLineTable.tsx:43 -#: src/tables/stock/StockItemTable.tsx:305 -msgid "Allocated" -msgstr "" - -#: src/tables/build/BuildLineTable.tsx:44 -msgid "Show allocated lines" -msgstr "" - -#: src/tables/build/BuildLineTable.tsx:49 -msgid "Show lines with available stock" -msgstr "" - -#: src/tables/build/BuildLineTable.tsx:54 -msgid "Show consumable lines" +#: src/tables/build/BuildAllocatedStockTable.tsx:177 +#: src/tables/build/BuildLineTable.tsx:526 +msgid "Delete Stock Allocation" msgstr "" #: src/tables/build/BuildLineTable.tsx:59 +#~ msgid "Show lines with available stock" +#~ msgstr "Show lines with available stock" + +#: src/tables/build/BuildLineTable.tsx:175 +msgid "Show allocated lines" +msgstr "" + +#: src/tables/build/BuildLineTable.tsx:185 +msgid "Show consumable lines" +msgstr "" + +#: src/tables/build/BuildLineTable.tsx:190 msgid "Show optional lines" msgstr "" -#: src/tables/build/BuildLineTable.tsx:68 +#: src/tables/build/BuildLineTable.tsx:199 #: src/tables/part/PartTable.tsx:208 msgid "Testable" msgstr "" -#: src/tables/build/BuildLineTable.tsx:73 -#: src/tables/stock/StockItemTable.tsx:364 +#: src/tables/build/BuildLineTable.tsx:204 +#: src/tables/stock/StockItemTable.tsx:368 msgid "Tracked" msgstr "" -#: src/tables/build/BuildLineTable.tsx:74 +#: src/tables/build/BuildLineTable.tsx:205 msgid "Show tracked lines" msgstr "" -#: src/tables/build/BuildLineTable.tsx:108 -#: src/tables/sales/SalesOrderLineItemTable.tsx:133 +#: src/tables/build/BuildLineTable.tsx:239 +#: src/tables/sales/SalesOrderLineItemTable.tsx:141 msgid "In production" msgstr "" -#: src/tables/build/BuildLineTable.tsx:136 +#: src/tables/build/BuildLineTable.tsx:267 msgid "Insufficient stock" msgstr "" -#: src/tables/build/BuildLineTable.tsx:152 -#: src/tables/sales/SalesOrderLineItemTable.tsx:121 -#: src/tables/stock/StockItemTable.tsx:186 +#: src/tables/build/BuildLineTable.tsx:283 +#: src/tables/sales/SalesOrderLineItemTable.tsx:129 +#: src/tables/stock/StockItemTable.tsx:175 msgid "No stock available" msgstr "" -#: src/tables/build/BuildLineTable.tsx:201 +#: src/tables/build/BuildLineTable.tsx:355 msgid "Gets Inherited" msgstr "" -#: src/tables/build/BuildLineTable.tsx:210 +#: src/tables/build/BuildLineTable.tsx:366 msgid "Unit Quantity" msgstr "" -#: src/tables/build/BuildLineTable.tsx:267 -#: src/tables/sales/SalesOrderLineItemTable.tsx:230 +#: src/tables/build/BuildLineTable.tsx:381 +msgid "Required Quantity" +msgstr "" + +#: src/tables/build/BuildLineTable.tsx:432 +#: src/tables/sales/SalesOrderLineItemTable.tsx:254 msgid "Create Build Order" msgstr "" -#: src/tables/build/BuildLineTable.tsx:298 -msgid "Allocate Stock" +#: src/tables/build/BuildLineTable.tsx:460 +msgid "Auto allocation in progress" msgstr "" -#: src/tables/build/BuildLineTable.tsx:305 +#: src/tables/build/BuildLineTable.tsx:463 +#: src/tables/build/BuildLineTable.tsx:632 +msgid "Auto Allocate Stock" +msgstr "" + +#: src/tables/build/BuildLineTable.tsx:464 +msgid "Automatically allocate stock to this build according to the selected options" +msgstr "" + +#: src/tables/build/BuildLineTable.tsx:482 +#: src/tables/build/BuildLineTable.tsx:496 +#: src/tables/build/BuildLineTable.tsx:579 +#: src/tables/build/BuildLineTable.tsx:664 +#: src/tables/build/BuildOutputTable.tsx:314 +#: src/tables/build/BuildOutputTable.tsx:319 +msgid "Deallocate Stock" +msgstr "" + +#: src/tables/build/BuildLineTable.tsx:498 +msgid "Deallocate all untracked stock for this build order" +msgstr "" + +#: src/tables/build/BuildLineTable.tsx:500 +msgid "Deallocate stock from the selected line item" +msgstr "" + +#: src/tables/build/BuildLineTable.tsx:504 +msgid "Stock has been deallocated" +msgstr "" + +#: src/tables/build/BuildLineTable.tsx:589 msgid "Order Stock" msgstr "" -#: src/tables/build/BuildLineTable.tsx:312 +#: src/tables/build/BuildLineTable.tsx:596 msgid "Build Stock" msgstr "" -#: src/tables/build/BuildOrderTable.tsx:111 -msgid "Show active orders" +#: src/tables/build/BuildLineTable.tsx:610 +msgid "View Part" msgstr "" #: src/tables/build/BuildOrderTable.tsx:116 -msgid "Cascade" -msgstr "" +#~ msgid "Cascade" +#~ msgstr "Cascade" #: src/tables/build/BuildOrderTable.tsx:117 -msgid "Display recursive child orders" +#~ msgid "Display recursive child orders" +#~ msgstr "Display recursive child orders" + +#: src/tables/build/BuildOrderTable.tsx:121 +msgid "Show outstanding orders" msgstr "" -#: src/tables/build/BuildOrderTable.tsx:123 -#: src/tables/part/PartPurchaseOrdersTable.tsx:126 -#: src/tables/purchasing/PurchaseOrderTable.tsx:56 -#: src/tables/sales/ReturnOrderTable.tsx:47 -#: src/tables/sales/SalesOrderTable.tsx:54 +#: src/tables/build/BuildOrderTable.tsx:121 +#~ msgid "Show active orders" +#~ msgstr "Show active orders" + +#: src/tables/build/BuildOrderTable.tsx:122 +#~ msgid "Show overdue status" +#~ msgstr "Show overdue status" + +#: src/tables/build/BuildOrderTable.tsx:126 +#: src/tables/part/PartPurchaseOrdersTable.tsx:132 +#: src/tables/purchasing/PurchaseOrderTable.tsx:59 +#: src/tables/sales/ReturnOrderTable.tsx:57 +#: src/tables/sales/SalesOrderTable.tsx:57 msgid "Filter by order status" msgstr "" -#: src/tables/build/BuildOrderTable.tsx:130 -msgid "Show overdue status" -msgstr "" - -#: src/tables/build/BuildOrderTable.tsx:141 -#: src/tables/purchasing/PurchaseOrderTable.tsx:65 -#: src/tables/sales/ReturnOrderTable.tsx:56 -#: src/tables/sales/SalesOrderTable.tsx:63 +#: src/tables/build/BuildOrderTable.tsx:136 +#: src/tables/purchasing/PurchaseOrderTable.tsx:70 +#: src/tables/sales/ReturnOrderTable.tsx:68 +#: src/tables/sales/SalesOrderTable.tsx:68 msgid "Filter by project code" msgstr "" -#: src/tables/build/BuildOrderTable.tsx:146 -#: src/tables/purchasing/PurchaseOrderTable.tsx:70 -#: src/tables/sales/ReturnOrderTable.tsx:61 -#: src/tables/sales/SalesOrderTable.tsx:68 -msgid "Has Project Code" -msgstr "" - -#: src/tables/build/BuildOrderTable.tsx:147 +#: src/tables/build/BuildOrderTable.tsx:139 #: src/tables/purchasing/PurchaseOrderTable.tsx:71 #: src/tables/sales/ReturnOrderTable.tsx:62 #: src/tables/sales/SalesOrderTable.tsx:69 -msgid "Filter by whether the purchase order has a project code" -msgstr "" +#~ msgid "Filter by whether the purchase order has a project code" +#~ msgstr "Filter by whether the purchase order has a project code" -#: src/tables/build/BuildOrderTable.tsx:152 +#: src/tables/build/BuildOrderTable.tsx:143 msgid "Filter by user who issued this order" msgstr "" -#: src/tables/build/BuildOrderTable.tsx:158 -#: src/tables/purchasing/PurchaseOrderTable.tsx:76 -#: src/tables/sales/ReturnOrderTable.tsx:67 -#: src/tables/sales/SalesOrderTable.tsx:74 +#: src/tables/build/BuildOrderTable.tsx:149 +#: src/tables/purchasing/PurchaseOrderTable.tsx:77 +#: src/tables/sales/ReturnOrderTable.tsx:75 +#: src/tables/sales/SalesOrderTable.tsx:75 msgid "Filter by responsible owner" msgstr "" -#: src/tables/build/BuildOrderTestTable.tsx:75 -#: src/tables/build/BuildOrderTestTable.tsx:111 -#: src/tables/stock/StockItemTestResultTable.tsx:257 -#: src/tables/stock/StockItemTestResultTable.tsx:329 -#: src/tables/stock/StockItemTestResultTable.tsx:384 +#: src/tables/build/BuildOrderTestTable.tsx:76 +#: src/tables/build/BuildOrderTestTable.tsx:112 +#: src/tables/stock/StockItemTestResultTable.tsx:275 +#: src/tables/stock/StockItemTestResultTable.tsx:347 +#: src/tables/stock/StockItemTestResultTable.tsx:403 msgid "Add Test Result" msgstr "" -#: src/tables/build/BuildOrderTestTable.tsx:82 -#: src/tables/stock/StockItemTestResultTable.tsx:259 +#: src/tables/build/BuildOrderTestTable.tsx:83 +#: src/tables/stock/StockItemTestResultTable.tsx:277 msgid "Test result added" msgstr "" -#: src/tables/build/BuildOrderTestTable.tsx:110 -#: src/tables/stock/StockItemTestResultTable.tsx:174 +#: src/tables/build/BuildOrderTestTable.tsx:111 +#: src/tables/stock/StockItemTestResultTable.tsx:180 msgid "No Result" msgstr "" -#: src/tables/build/BuildOrderTestTable.tsx:220 +#: src/tables/build/BuildOrderTestTable.tsx:221 msgid "Show build outputs currently in production" msgstr "" +#: src/tables/build/BuildOutputTable.tsx:76 +msgid "Build Output Stock Allocation" +msgstr "" + #: src/tables/build/BuildOutputTable.tsx:161 #~ msgid "Delete build output" #~ msgstr "Delete build output" -#: src/tables/build/BuildOutputTable.tsx:173 -#: src/tables/build/BuildOutputTable.tsx:211 +#: src/tables/build/BuildOutputTable.tsx:258 +#: src/tables/build/BuildOutputTable.tsx:374 msgid "Add Build Output" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:216 +#: src/tables/build/BuildOutputTable.tsx:304 +#~ msgid "Edit build output" +#~ msgstr "Edit build output" + +#: src/tables/build/BuildOutputTable.tsx:306 +#: src/tables/build/BuildOutputTable.tsx:417 +msgid "Edit Build Output" +msgstr "" + +#: src/tables/build/BuildOutputTable.tsx:321 +msgid "This action will deallocate all stock from the selected build output" +msgstr "" + +#: src/tables/build/BuildOutputTable.tsx:341 msgid "Complete selected outputs" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:226 +#: src/tables/build/BuildOutputTable.tsx:352 msgid "Scrap selected outputs" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:236 +#: src/tables/build/BuildOutputTable.tsx:363 msgid "Cancel selected outputs" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:252 +#: src/tables/build/BuildOutputTable.tsx:385 msgid "Allocate" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:253 +#: src/tables/build/BuildOutputTable.tsx:386 msgid "Allocate stock to build output" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:259 +#: src/tables/build/BuildOutputTable.tsx:396 msgid "Deallocate" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:260 +#: src/tables/build/BuildOutputTable.tsx:397 msgid "Deallocate stock from build output" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:267 +#: src/tables/build/BuildOutputTable.tsx:408 msgid "Complete build output" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:276 +#: src/tables/build/BuildOutputTable.tsx:424 msgid "Scrap" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:277 +#: src/tables/build/BuildOutputTable.tsx:425 msgid "Scrap build output" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:280 -#~ msgid "Allocated Items" -#~ msgstr "Allocated Items" - -#: src/tables/build/BuildOutputTable.tsx:287 +#: src/tables/build/BuildOutputTable.tsx:435 msgid "Cancel build output" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:325 -msgid "Batch" -msgstr "" - -#: src/tables/build/BuildOutputTable.tsx:340 +#: src/tables/build/BuildOutputTable.tsx:488 msgid "Allocated Lines" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:355 +#: src/tables/build/BuildOutputTable.tsx:503 msgid "Required Tests" msgstr "" -#: src/tables/company/AddressTable.tsx:121 -#: src/tables/company/AddressTable.tsx:185 +#: src/tables/company/AddressTable.tsx:118 +#: src/tables/company/AddressTable.tsx:183 msgid "Add Address" msgstr "" -#: src/tables/company/AddressTable.tsx:126 +#: src/tables/company/AddressTable.tsx:123 msgid "Address created" msgstr "" -#: src/tables/company/AddressTable.tsx:135 +#: src/tables/company/AddressTable.tsx:132 msgid "Edit Address" msgstr "" -#: src/tables/company/AddressTable.tsx:143 +#: src/tables/company/AddressTable.tsx:140 msgid "Delete Address" msgstr "" -#: src/tables/company/AddressTable.tsx:144 +#: src/tables/company/AddressTable.tsx:141 msgid "Are you sure you want to delete this address?" msgstr "" @@ -6130,24 +7269,24 @@ msgstr "" #~ msgid "New Company" #~ msgstr "New Company" -#: src/tables/company/CompanyTable.tsx:74 -#: src/tables/company/CompanyTable.tsx:123 +#: src/tables/company/CompanyTable.tsx:75 +#: src/tables/company/CompanyTable.tsx:125 msgid "Add Company" msgstr "" -#: src/tables/company/CompanyTable.tsx:96 +#: src/tables/company/CompanyTable.tsx:97 msgid "Show active companies" msgstr "" -#: src/tables/company/CompanyTable.tsx:101 +#: src/tables/company/CompanyTable.tsx:102 msgid "Show companies which are suppliers" msgstr "" -#: src/tables/company/CompanyTable.tsx:106 +#: src/tables/company/CompanyTable.tsx:107 msgid "Show companies which are manufacturers" msgstr "" -#: src/tables/company/CompanyTable.tsx:111 +#: src/tables/company/CompanyTable.tsx:112 msgid "Show companies which are customers" msgstr "" @@ -6163,96 +7302,99 @@ msgstr "" msgid "Delete Contact" msgstr "" -#: src/tables/company/ContactTable.tsx:129 +#: src/tables/company/ContactTable.tsx:130 msgid "Add contact" msgstr "" -#: src/tables/general/AttachmentTable.tsx:130 +#: src/tables/general/AttachmentTable.tsx:135 msgid "File uploaded" msgstr "" -#: src/tables/general/AttachmentTable.tsx:131 +#: src/tables/general/AttachmentTable.tsx:136 msgid "File {0} uploaded successfully" msgstr "" -#: src/tables/general/AttachmentTable.tsx:142 +#: src/tables/general/AttachmentTable.tsx:147 msgid "Upload Error" msgstr "" -#: src/tables/general/AttachmentTable.tsx:143 +#: src/tables/general/AttachmentTable.tsx:148 msgid "File could not be uploaded" msgstr "" -#: src/tables/general/AttachmentTable.tsx:191 +#: src/tables/general/AttachmentTable.tsx:196 msgid "Upload Attachment" msgstr "" -#: src/tables/general/AttachmentTable.tsx:201 +#: src/tables/general/AttachmentTable.tsx:206 msgid "Edit Attachment" msgstr "" -#: src/tables/general/AttachmentTable.tsx:215 +#: src/tables/general/AttachmentTable.tsx:220 msgid "Delete Attachment" msgstr "" -#: src/tables/general/AttachmentTable.tsx:225 +#: src/tables/general/AttachmentTable.tsx:230 msgid "Is Link" msgstr "" -#: src/tables/general/AttachmentTable.tsx:226 +#: src/tables/general/AttachmentTable.tsx:231 msgid "Show link attachments" msgstr "" -#: src/tables/general/AttachmentTable.tsx:230 +#: src/tables/general/AttachmentTable.tsx:235 msgid "Is File" msgstr "" -#: src/tables/general/AttachmentTable.tsx:231 +#: src/tables/general/AttachmentTable.tsx:236 msgid "Show file attachments" msgstr "" -#: src/tables/general/AttachmentTable.tsx:240 +#: src/tables/general/AttachmentTable.tsx:245 msgid "Add attachment" msgstr "" -#: src/tables/general/AttachmentTable.tsx:251 -msgid "Add external link" -msgstr "" - #: src/tables/general/AttachmentTable.tsx:254 #~ msgid "Upload attachment" #~ msgstr "Upload attachment" -#: src/tables/general/AttachmentTable.tsx:299 +#: src/tables/general/AttachmentTable.tsx:256 +msgid "Add external link" +msgstr "" + +#: src/tables/general/AttachmentTable.tsx:304 msgid "No attachments found" msgstr "" -#: src/tables/general/AttachmentTable.tsx:337 +#: src/tables/general/AttachmentTable.tsx:343 msgid "Drag attachment file here to upload" msgstr "" #: src/tables/general/ExtraLineItemTable.tsx:86 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:251 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:60 -#: src/tables/sales/SalesOrderLineItemTable.tsx:196 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:263 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:362 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:72 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:168 +#: src/tables/sales/SalesOrderLineItemTable.tsx:206 +#: src/tables/sales/SalesOrderLineItemTable.tsx:291 msgid "Add Line Item" msgstr "" #: src/tables/general/ExtraLineItemTable.tsx:98 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:271 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:72 -#: src/tables/sales/SalesOrderLineItemTable.tsx:214 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:283 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:84 +#: src/tables/sales/SalesOrderLineItemTable.tsx:224 msgid "Edit Line Item" msgstr "" #: src/tables/general/ExtraLineItemTable.tsx:106 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:279 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:80 -#: src/tables/sales/SalesOrderLineItemTable.tsx:222 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:291 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:92 +#: src/tables/sales/SalesOrderLineItemTable.tsx:232 msgid "Delete Line Item" msgstr "" -#: src/tables/general/ExtraLineItemTable.tsx:142 +#: src/tables/general/ExtraLineItemTable.tsx:143 msgid "Add Extra Line Item" msgstr "" @@ -6261,12 +7403,12 @@ msgid "Machine restarted" msgstr "" #: src/tables/machine/MachineListTable.tsx:212 -#: src/tables/machine/MachineListTable.tsx:263 +#: src/tables/machine/MachineListTable.tsx:261 msgid "Edit machine" msgstr "" #: src/tables/machine/MachineListTable.tsx:226 -#: src/tables/machine/MachineListTable.tsx:267 +#: src/tables/machine/MachineListTable.tsx:265 msgid "Delete machine" msgstr "" @@ -6278,51 +7420,50 @@ msgstr "" msgid "Are you sure you want to remove the machine \"{0}\"?" msgstr "" -#: src/tables/machine/MachineListTable.tsx:255 -#: src/tables/machine/MachineListTable.tsx:432 +#: src/tables/machine/MachineListTable.tsx:254 +#: src/tables/machine/MachineListTable.tsx:442 msgid "Restart required" msgstr "" -#: src/tables/machine/MachineListTable.tsx:259 +#: src/tables/machine/MachineListTable.tsx:258 msgid "Machine Actions" msgstr "" -#: src/tables/machine/MachineListTable.tsx:272 +#: src/tables/machine/MachineListTable.tsx:270 msgid "Restart" msgstr "" -#: src/tables/machine/MachineListTable.tsx:274 +#: src/tables/machine/MachineListTable.tsx:272 msgid "Restart machine" msgstr "" -#: src/tables/machine/MachineListTable.tsx:276 +#: src/tables/machine/MachineListTable.tsx:274 msgid "manual restart required" msgstr "" +#: src/tables/machine/MachineListTable.tsx:291 +#~ msgid "Machine information" +#~ msgstr "Machine information" + #: src/tables/machine/MachineListTable.tsx:292 -msgid "Machine information" +msgid "Machine Information" msgstr "" -#: src/tables/machine/MachineListTable.tsx:303 -#: src/tables/machine/MachineListTable.tsx:599 +#: src/tables/machine/MachineListTable.tsx:302 +#: src/tables/machine/MachineListTable.tsx:610 msgid "Machine Type" msgstr "" -#: src/tables/machine/MachineListTable.tsx:316 +#: src/tables/machine/MachineListTable.tsx:315 msgid "Machine Driver" msgstr "" -#: src/tables/machine/MachineListTable.tsx:329 +#: src/tables/machine/MachineListTable.tsx:330 msgid "Initialized" msgstr "" -#: src/tables/machine/MachineListTable.tsx:350 -#: src/tables/machine/MachineTypeTable.tsx:261 -msgid "Errors" -msgstr "" - -#: src/tables/machine/MachineListTable.tsx:358 -#: src/tables/machine/MachineTypeTable.tsx:269 +#: src/tables/machine/MachineListTable.tsx:359 +#: src/tables/machine/MachineTypeTable.tsx:290 msgid "No errors reported" msgstr "" @@ -6330,7 +7471,7 @@ msgstr "" msgid "Machine Settings" msgstr "" -#: src/tables/machine/MachineListTable.tsx:389 +#: src/tables/machine/MachineListTable.tsx:394 msgid "Driver Settings" msgstr "" @@ -6338,86 +7479,109 @@ msgstr "" #~ msgid "Create machine" #~ msgstr "Create machine" -#: src/tables/machine/MachineListTable.tsx:506 +#: src/tables/machine/MachineListTable.tsx:516 +#: src/tables/machine/MachineListTable.tsx:558 msgid "Add machine" msgstr "" #: src/tables/machine/MachineListTable.tsx:561 -msgid "Machine detail" +#~ msgid "Machine detail" +#~ msgstr "Machine detail" + +#: src/tables/machine/MachineListTable.tsx:572 +msgid "Machine Detail" msgstr "" -#: src/tables/machine/MachineListTable.tsx:608 +#: src/tables/machine/MachineListTable.tsx:619 msgid "Driver" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:73 +#: src/tables/machine/MachineTypeTable.tsx:78 msgid "Builtin driver" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:89 +#: src/tables/machine/MachineTypeTable.tsx:96 +msgid "Not Found" +msgstr "" + +#: src/tables/machine/MachineTypeTable.tsx:99 msgid "Machine type not found." msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:97 -msgid "Machine type information" +#: src/tables/machine/MachineTypeTable.tsx:99 +#~ msgid "Machine type information" +#~ msgstr "Machine type information" + +#: src/tables/machine/MachineTypeTable.tsx:109 +msgid "Machine Type Information" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:110 -#: src/tables/machine/MachineTypeTable.tsx:217 +#: src/tables/machine/MachineTypeTable.tsx:124 +#: src/tables/machine/MachineTypeTable.tsx:238 msgid "Slug" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:118 -#: src/tables/machine/MachineTypeTable.tsx:238 +#: src/tables/machine/MachineTypeTable.tsx:135 +#: src/tables/machine/MachineTypeTable.tsx:259 msgid "Provider plugin" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:130 -#: src/tables/machine/MachineTypeTable.tsx:250 +#: src/tables/machine/MachineTypeTable.tsx:147 +#: src/tables/machine/MachineTypeTable.tsx:271 msgid "Provider file" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:135 -#: src/tables/machine/MachineTypeTable.tsx:255 -#: src/tables/plugin/PluginListTable.tsx:180 -#: src/tables/plugin/PluginListTable.tsx:568 -msgid "Builtin" +#: src/tables/machine/MachineTypeTable.tsx:148 +#~ msgid "Available drivers" +#~ msgstr "Available drivers" + +#: src/tables/machine/MachineTypeTable.tsx:162 +msgid "Available Drivers" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:146 -msgid "Available drivers" -msgstr "" - -#: src/tables/machine/MachineTypeTable.tsx:196 +#: src/tables/machine/MachineTypeTable.tsx:217 msgid "Machine driver not found." msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:204 +#: src/tables/machine/MachineTypeTable.tsx:225 msgid "Machine driver information" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:224 +#: src/tables/machine/MachineTypeTable.tsx:245 msgid "Machine type" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:327 +#: src/tables/machine/MachineTypeTable.tsx:338 +#~ msgid "Machine type detail" +#~ msgstr "Machine type detail" + +#: src/tables/machine/MachineTypeTable.tsx:348 msgid "Builtin type" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:336 -msgid "Machine type detail" +#: src/tables/machine/MachineTypeTable.tsx:348 +#~ msgid "Machine driver detail" +#~ msgstr "Machine driver detail" + +#: src/tables/machine/MachineTypeTable.tsx:357 +msgid "Machine Type Detail" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:346 -msgid "Machine driver detail" +#: src/tables/machine/MachineTypeTable.tsx:367 +msgid "Machine Driver Detail" msgstr "" #: src/tables/notifications/NotificationsTable.tsx:26 msgid "Age" msgstr "" +#: src/tables/notifications/NotificationsTable.tsx:36 +msgid "Notification" +msgstr "" + #: src/tables/notifications/NotificationsTable.tsx:40 #: src/tables/plugin/PluginErrorTable.tsx:37 +#: src/tables/settings/ErrorTable.tsx:50 msgid "Message" msgstr "" @@ -6451,33 +7615,32 @@ msgstr "" msgid "Show assembly parts" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:68 +#: src/tables/part/PartCategoryTable.tsx:48 +msgid "You are subscribed to notifications for this category" +msgstr "" + +#: src/tables/part/PartCategoryTable.tsx:80 #: src/tables/part/PartTable.tsx:196 msgid "Include Subcategories" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:69 +#: src/tables/part/PartCategoryTable.tsx:81 msgid "Include subcategories in results" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:74 +#: src/tables/part/PartCategoryTable.tsx:86 msgid "Show structural categories" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:78 -#: src/tables/part/PartTable.tsx:294 -msgid "Subscribed" -msgstr "" - -#: src/tables/part/PartCategoryTable.tsx:79 +#: src/tables/part/PartCategoryTable.tsx:91 msgid "Show categories to which the user is subscribed" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:86 +#: src/tables/part/PartCategoryTable.tsx:100 msgid "New Part Category" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:112 +#: src/tables/part/PartCategoryTable.tsx:129 msgid "Add Part Category" msgstr "" @@ -6523,11 +7686,6 @@ msgstr "" msgid "Part parameters cannot be edited, as the part is locked" msgstr "" -#: src/tables/part/PartParameterTable.tsx:212 -#: src/tables/stock/StockItemTable.tsx:335 -msgid "Include Variants" -msgstr "" - #: src/tables/part/PartParameterTemplateTable.tsx:31 msgid "Checkbox" msgstr "" @@ -6554,6 +7712,7 @@ msgid "Show templates with units" msgstr "" #: src/tables/part/PartParameterTemplateTable.tsx:85 +#: src/tables/part/PartParameterTemplateTable.tsx:141 msgid "Add Parameter Template" msgstr "" @@ -6566,23 +7725,19 @@ msgid "Delete Parameter Template" msgstr "" #: src/tables/part/PartParameterTemplateTable.tsx:141 -msgid "Add parameter template" -msgstr "" +#~ msgid "Add parameter template" +#~ msgstr "Add parameter template" -#: src/tables/part/PartPurchaseOrdersTable.tsx:77 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:162 +#: src/tables/part/PartPurchaseOrdersTable.tsx:78 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:168 msgid "Total Quantity" msgstr "" -#: src/tables/part/PartPurchaseOrdersTable.tsx:115 -msgid "Pending" -msgstr "" - -#: src/tables/part/PartPurchaseOrdersTable.tsx:116 +#: src/tables/part/PartPurchaseOrdersTable.tsx:122 msgid "Show pending orders" msgstr "" -#: src/tables/part/PartPurchaseOrdersTable.tsx:121 +#: src/tables/part/PartPurchaseOrdersTable.tsx:127 msgid "Show received items" msgstr "" @@ -6728,22 +7883,13 @@ msgstr "" msgid "Results" msgstr "" -#: src/tables/part/PartTestTemplateTable.tsx:76 -msgid "No Results" -msgstr "" - -#: src/tables/part/PartTestTemplateTable.tsx:106 -#: src/tables/stock/StockItemTestResultTable.tsx:365 -msgid "Required" -msgstr "" - #: src/tables/part/PartTestTemplateTable.tsx:107 msgid "Show required tests" msgstr "" #: src/tables/part/PartTestTemplateTable.tsx:111 -#: src/tables/settings/TemplateTable.tsx:167 -#: src/tables/settings/TemplateTable.tsx:283 +#: src/tables/settings/TemplateTable.tsx:247 +#: src/tables/settings/TemplateTable.tsx:363 msgid "Enabled" msgstr "" @@ -6784,7 +7930,7 @@ msgid "Show tests which have recorded results" msgstr "" #: src/tables/part/PartTestTemplateTable.tsx:154 -#: src/tables/part/PartTestTemplateTable.tsx:237 +#: src/tables/part/PartTestTemplateTable.tsx:238 msgid "Add Test Template" msgstr "" @@ -6808,7 +7954,7 @@ msgstr "" msgid "View Parent Part" msgstr "" -#: src/tables/part/PartTestTemplateTable.tsx:257 +#: src/tables/part/PartTestTemplateTable.tsx:258 msgid "Part templates cannot be edited, as the part is locked" msgstr "" @@ -6836,28 +7982,49 @@ msgstr "" msgid "Show trackable variants" msgstr "" -#: src/tables/part/RelatedPartTable.tsx:84 +#: src/tables/part/RelatedPartTable.tsx:86 +#: src/tables/part/RelatedPartTable.tsx:109 msgid "Add Related Part" msgstr "" -#: src/tables/part/RelatedPartTable.tsx:99 +#: src/tables/part/RelatedPartTable.tsx:101 msgid "Delete Related Part" msgstr "" -#: src/tables/part/RelatedPartTable.tsx:106 -msgid "Add related part" -msgstr "" +#: src/tables/part/RelatedPartTable.tsx:109 +#~ msgid "Add related part" +#~ msgstr "Add related part" #: src/tables/plugin/PluginErrorTable.tsx:29 msgid "Stage" msgstr "" -#: src/tables/plugin/PluginListTable.tsx:95 -msgid "Plugin with key {pluginKey} not found" +#: src/tables/plugin/PluginListTable.tsx:42 +msgid "Plugin is active" msgstr "" +#: src/tables/plugin/PluginListTable.tsx:48 +msgid "Plugin is inactive" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:55 +msgid "Plugin is not installed" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:76 +msgid "Plugin" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:95 +#~ msgid "Plugin with key {pluginKey} not found" +#~ msgstr "Plugin with key {pluginKey} not found" + #: src/tables/plugin/PluginListTable.tsx:97 -msgid "An error occurred while fetching plugin details" +#~ msgid "An error occurred while fetching plugin details" +#~ msgstr "An error occurred while fetching plugin details" + +#: src/tables/plugin/PluginListTable.tsx:109 +msgid "Description not available" msgstr "" #: src/tables/plugin/PluginListTable.tsx:113 @@ -6865,12 +8032,8 @@ msgstr "" #~ msgstr "Plugin with id {id} not found" #: src/tables/plugin/PluginListTable.tsx:122 -msgid "Plugin information" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:134 -msgid "Author" -msgstr "" +#~ msgid "Plugin information" +#~ msgstr "Plugin information" #: src/tables/plugin/PluginListTable.tsx:134 #~ msgid "Plugin Actions" @@ -6881,79 +8044,124 @@ msgstr "" #~ msgid "Edit plugin" #~ msgstr "Edit plugin" +#: src/tables/plugin/PluginListTable.tsx:144 +msgid "Confirm plugin activation" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:145 +msgid "Confirm plugin deactivation" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:150 +msgid "The selected plugin will be activated" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:151 +msgid "The selected plugin will be deactivated" +msgstr "" + #: src/tables/plugin/PluginListTable.tsx:152 #: src/tables/plugin/PluginListTable.tsx:153 #~ msgid "Reload" #~ msgstr "Reload" -#: src/tables/plugin/PluginListTable.tsx:154 -msgid "Plugin is not active" -msgstr "" - #: src/tables/plugin/PluginListTable.tsx:163 -msgid "Package information" -msgstr "" +#~ msgid "Package information" +#~ msgstr "Package information" #: src/tables/plugin/PluginListTable.tsx:169 -msgid "Package Name" +msgid "Deactivate" msgstr "" -#: src/tables/plugin/PluginListTable.tsx:175 -msgid "Installation Path" +#: src/tables/plugin/PluginListTable.tsx:183 +msgid "Activate" msgstr "" -#: src/tables/plugin/PluginListTable.tsx:185 -msgid "Package" +#: src/tables/plugin/PluginListTable.tsx:184 +msgid "Activate selected plugin" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:196 +msgid "Update selected plugin" msgstr "" #: src/tables/plugin/PluginListTable.tsx:197 -msgid "Plugin settings" -msgstr "" +#~ msgid "Plugin settings" +#~ msgstr "Plugin settings" #: src/tables/plugin/PluginListTable.tsx:214 -msgid "Plugin is active" +#: src/tables/stock/InstalledItemsTable.tsx:107 +msgid "Uninstall" msgstr "" -#: src/tables/plugin/PluginListTable.tsx:220 -msgid "Plugin is inactive" +#: src/tables/plugin/PluginListTable.tsx:215 +msgid "Uninstall selected plugin" msgstr "" -#: src/tables/plugin/PluginListTable.tsx:227 -msgid "Plugin is not installed" +#: src/tables/plugin/PluginListTable.tsx:233 +msgid "Delete selected plugin configuration" msgstr "" -#: src/tables/plugin/PluginListTable.tsx:253 -msgid "Plugin" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:287 -msgid "Description not available" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:319 -msgid "Confirm plugin activation" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:320 -msgid "Confirm plugin deactivation" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:325 -msgid "The selected plugin will be activated" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:326 -msgid "The selected plugin will be deactivated" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:334 +#: src/tables/plugin/PluginListTable.tsx:249 msgid "Activate Plugin" msgstr "" +#: src/tables/plugin/PluginListTable.tsx:270 +msgid "Install plugin" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:283 +msgid "Install" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:284 +msgid "Plugin installed successfully" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:289 +msgid "Uninstall Plugin" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:301 +msgid "Confirm plugin uninstall" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:304 +msgid "The selected plugin will be uninstalled." +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:308 +#~ msgid "This action cannot be undone." +#~ msgstr "This action cannot be undone." + +#: src/tables/plugin/PluginListTable.tsx:309 +msgid "Plugin uninstalled successfully" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:317 +msgid "Delete Plugin" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:318 +msgid "Deleting this plugin configuration will remove all associated settings and data. Are you sure you want to delete this plugin?" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:331 +msgid "Plugins reloaded" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:332 +msgid "Plugins were reloaded successfully" +msgstr "" + #: src/tables/plugin/PluginListTable.tsx:338 #~ msgid "Deactivate Plugin" #~ msgstr "Deactivate Plugin" +#: src/tables/plugin/PluginListTable.tsx:350 +msgid "Reload Plugins" +msgstr "" + #: src/tables/plugin/PluginListTable.tsx:354 #~ msgid "The following plugin will be activated" #~ msgstr "The following plugin will be activated" @@ -6962,16 +8170,16 @@ msgstr "" #~ msgid "The following plugin will be deactivated" #~ msgstr "The following plugin will be deactivated" -#: src/tables/plugin/PluginListTable.tsx:362 -msgid "Deactivate" +#: src/tables/plugin/PluginListTable.tsx:357 +msgid "Install Plugin" msgstr "" #: src/tables/plugin/PluginListTable.tsx:366 #~ msgid "Confirm" #~ msgstr "Confirm" -#: src/tables/plugin/PluginListTable.tsx:373 -msgid "Activate" +#: src/tables/plugin/PluginListTable.tsx:374 +msgid "Plugin Detail" msgstr "" #: src/tables/plugin/PluginListTable.tsx:376 @@ -6998,76 +8206,12 @@ msgstr "" #~ msgid "Error updating plugin" #~ msgstr "Error updating plugin" -#: src/tables/plugin/PluginListTable.tsx:406 -msgid "Uninstall" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:438 -msgid "Install plugin" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:451 -msgid "Install" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:452 -msgid "Plugin installed successfully" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:457 -msgid "Uninstall Plugin" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:469 -msgid "Confirm plugin uninstall" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:472 -msgid "The selected plugin will be uninstalled." -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:473 -msgid "This action cannot be undone." -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:477 -msgid "Plugin uninstalled successfully" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:484 -msgid "Delete Plugin" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:485 -msgid "Deleting this plugin configuration will remove all associated settings and data. Are you sure you want to delete this plugin?" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:498 -msgid "Plugins reloaded" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:499 -msgid "Plugins were reloaded successfully" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:515 -msgid "Reload Plugins" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:524 -msgid "Install Plugin" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:544 -msgid "Plugin Detail" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:573 +#: src/tables/plugin/PluginListTable.tsx:411 msgid "Sample" msgstr "" -#: src/tables/plugin/PluginListTable.tsx:578 -#: src/tables/stock/StockItemTable.tsx:340 +#: src/tables/plugin/PluginListTable.tsx:416 +#: src/tables/stock/StockItemTable.tsx:344 msgid "Installed" msgstr "" @@ -7116,82 +8260,78 @@ msgstr "" #~ msgid "Are you sure you want to remove this manufacturer part?" #~ msgstr "Are you sure you want to remove this manufacturer part?" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:102 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:339 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:103 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:356 msgid "Import Line Items" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:135 -msgid "Part Description" -msgstr "" - -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:201 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:207 msgid "Supplier Code" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:208 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:214 msgid "Supplier Link" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:215 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:220 msgid "Manufacturer Code" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:229 -msgid "Destination" +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:248 +msgid "Show line items which have been received" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:300 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:316 msgid "Receive line item" msgstr "" #: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:344 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:142 -#: src/tables/sales/SalesOrderLineItemTable.tsx:240 -msgid "Add line item" -msgstr "" +#: src/tables/sales/ReturnOrderLineItemTable.tsx:160 +#: src/tables/sales/SalesOrderLineItemTable.tsx:258 +#~ msgid "Add line item" +#~ msgstr "Add line item" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:354 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:373 msgid "Receive items" msgstr "" -#: src/tables/purchasing/SupplierPartTable.tsx:93 +#: src/tables/purchasing/SupplierPartTable.tsx:95 msgid "MPN" msgstr "" -#: src/tables/purchasing/SupplierPartTable.tsx:122 +#: src/tables/purchasing/SupplierPartTable.tsx:124 msgid "Base units" msgstr "" -#: src/tables/purchasing/SupplierPartTable.tsx:170 +#: src/tables/purchasing/SupplierPartTable.tsx:172 msgid "Supplier part created" msgstr "" -#: src/tables/purchasing/SupplierPartTable.tsx:176 +#: src/tables/purchasing/SupplierPartTable.tsx:179 msgid "Add supplier part" msgstr "" -#: src/tables/purchasing/SupplierPartTable.tsx:188 +#: src/tables/purchasing/SupplierPartTable.tsx:191 msgid "Show active supplier parts" msgstr "" -#: src/tables/purchasing/SupplierPartTable.tsx:192 -msgid "Active Part" -msgstr "" - -#: src/tables/purchasing/SupplierPartTable.tsx:193 -msgid "Show active internal parts" -msgstr "" - #: src/tables/purchasing/SupplierPartTable.tsx:193 #~ msgid "Supplier part updated" #~ msgstr "Supplier part updated" -#: src/tables/purchasing/SupplierPartTable.tsx:197 +#: src/tables/purchasing/SupplierPartTable.tsx:195 +msgid "Active Part" +msgstr "" + +#: src/tables/purchasing/SupplierPartTable.tsx:196 +msgid "Show active internal parts" +msgstr "" + +#: src/tables/purchasing/SupplierPartTable.tsx:200 msgid "Active Supplier" msgstr "" -#: src/tables/purchasing/SupplierPartTable.tsx:198 +#: src/tables/purchasing/SupplierPartTable.tsx:201 msgid "Show active suppliers" msgstr "" @@ -7203,99 +8343,187 @@ msgstr "" #~ msgid "Are you sure you want to remove this supplier part?" #~ msgstr "Are you sure you want to remove this supplier part?" -#: src/tables/sales/ReturnOrderLineItemTable.tsx:114 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:139 msgid "Received Date" msgstr "" -#: src/tables/sales/ReturnOrderLineItemTable.tsx:128 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:153 msgid "Show items which have been received" msgstr "" -#: src/tables/sales/ReturnOrderLineItemTable.tsx:133 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:158 msgid "Filter by line item status" msgstr "" -#: src/tables/sales/ReturnOrderLineItemTable.tsx:158 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:176 +msgid "Receive selected items" +msgstr "" + +#: src/tables/sales/ReturnOrderLineItemTable.tsx:205 msgid "Receive Item" msgstr "" -#: src/tables/sales/SalesOrderLineItemTable.tsx:262 -msgid "Allocate stock" +#: src/tables/sales/SalesOrderAllocationTable.tsx:60 +msgid "Show outstanding allocations" msgstr "" -#: src/tables/sales/SalesOrderLineItemTable.tsx:272 +#: src/tables/sales/SalesOrderAllocationTable.tsx:168 +#: src/tables/sales/SalesOrderAllocationTable.tsx:190 +msgid "Edit Allocation" +msgstr "" + +#: src/tables/sales/SalesOrderAllocationTable.tsx:175 +#: src/tables/sales/SalesOrderAllocationTable.tsx:197 +msgid "Delete Allocation" +msgstr "" + +#: src/tables/sales/SalesOrderLineItemTable.tsx:244 +msgid "Allocate Serial Numbers" +msgstr "" + +#: src/tables/sales/SalesOrderLineItemTable.tsx:277 +msgid "Show lines which are fully allocated" +msgstr "" + +#: src/tables/sales/SalesOrderLineItemTable.tsx:280 +#~ msgid "Allocate stock" +#~ msgstr "Allocate stock" + +#: src/tables/sales/SalesOrderLineItemTable.tsx:282 +msgid "Show lines which are completed" +msgstr "" + +#: src/tables/sales/SalesOrderLineItemTable.tsx:291 +#~ msgid "Allocate Serials" +#~ msgstr "Allocate Serials" + +#: src/tables/sales/SalesOrderLineItemTable.tsx:340 +msgid "Allocate serials" +msgstr "" + +#: src/tables/sales/SalesOrderLineItemTable.tsx:356 msgid "Build stock" msgstr "" -#: src/tables/sales/SalesOrderLineItemTable.tsx:289 -#: src/tables/stock/StockItemTable.tsx:507 +#: src/tables/sales/SalesOrderLineItemTable.tsx:373 +#: src/tables/stock/StockItemTable.tsx:512 msgid "Order stock" msgstr "" -#: src/tables/sales/SalesOrderShipmentTable.tsx:40 +#: src/tables/sales/SalesOrderShipmentTable.tsx:51 +#~ msgid "Delete Shipment" +#~ msgstr "Delete Shipment" + +#: src/tables/sales/SalesOrderShipmentTable.tsx:57 msgid "Create Shipment" msgstr "" -#: src/tables/sales/SalesOrderShipmentTable.tsx:50 -msgid "Delete Shipment" -msgstr "" - -#: src/tables/sales/SalesOrderShipmentTable.tsx:58 -msgid "Edit Shipment" -msgstr "" - -#: src/tables/sales/SalesOrderShipmentTable.tsx:66 -msgid "Shipment Reference" -msgstr "" - -#: src/tables/sales/SalesOrderShipmentTable.tsx:71 +#: src/tables/sales/SalesOrderShipmentTable.tsx:104 msgid "Items" msgstr "" -#: src/tables/sales/SalesOrderShipmentTable.tsx:83 -msgid "Delivery Date" +#: src/tables/sales/SalesOrderShipmentTable.tsx:139 +msgid "View Shipment" msgstr "" -#: src/tables/sales/SalesOrderShipmentTable.tsx:107 -msgid "Complete Shipment" +#: src/tables/sales/SalesOrderShipmentTable.tsx:161 +msgid "Edit shipment" msgstr "" -#: src/tables/sales/SalesOrderShipmentTable.tsx:133 +#: src/tables/sales/SalesOrderShipmentTable.tsx:169 +msgid "Cancel shipment" +msgstr "" + +#: src/tables/sales/SalesOrderShipmentTable.tsx:184 msgid "Add shipment" msgstr "" -#: src/tables/sales/SalesOrderShipmentTable.tsx:146 -msgid "Shipped" -msgstr "" - -#: src/tables/sales/SalesOrderShipmentTable.tsx:147 +#: src/tables/sales/SalesOrderShipmentTable.tsx:198 msgid "Show shipments which have been shipped" msgstr "" -#: src/tables/sales/SalesOrderShipmentTable.tsx:151 -msgid "Delivered" -msgstr "" - -#: src/tables/sales/SalesOrderShipmentTable.tsx:152 +#: src/tables/sales/SalesOrderShipmentTable.tsx:203 msgid "Show shipments which have been delivered" msgstr "" -#: src/tables/settings/CurrencyTable.tsx:28 -msgid "Rate" +#: src/tables/settings/BarcodeScanHistoryTable.tsx:61 +msgid "Barcode Information" msgstr "" -#: src/tables/settings/CurrencyTable.tsx:40 -msgid "Exchange rates updated" +#: src/tables/settings/BarcodeScanHistoryTable.tsx:76 +#: src/tables/settings/ErrorTable.tsx:59 +msgid "Timestamp" msgstr "" -#: src/tables/settings/CurrencyTable.tsx:46 -msgid "Exchange rate update error" +#: src/tables/settings/BarcodeScanHistoryTable.tsx:86 +msgid "Endpoint" msgstr "" -#: src/tables/settings/CurrencyTable.tsx:57 -msgid "Refresh currency exchange rates" +#: src/tables/settings/BarcodeScanHistoryTable.tsx:90 +#: src/tables/settings/BarcodeScanHistoryTable.tsx:217 +#: src/tables/stock/StockItemTestResultTable.tsx:174 +msgid "Result" msgstr "" +#: src/tables/settings/BarcodeScanHistoryTable.tsx:98 +msgid "Context" +msgstr "" + +#: src/tables/settings/BarcodeScanHistoryTable.tsx:119 +msgid "Response" +msgstr "" + +#: src/tables/settings/BarcodeScanHistoryTable.tsx:213 +#: src/tables/settings/ImportSessionTable.tsx:121 +#: src/tables/stock/StockTrackingTable.tsx:183 +msgid "Filter by user" +msgstr "" + +#: src/tables/settings/BarcodeScanHistoryTable.tsx:218 +msgid "Filter by result" +msgstr "" + +#: src/tables/settings/BarcodeScanHistoryTable.tsx:232 +msgid "Delete Barcode Scan Record" +msgstr "" + +#: src/tables/settings/BarcodeScanHistoryTable.tsx:258 +msgid "Barcode Scan Details" +msgstr "" + +#: src/tables/settings/BarcodeScanHistoryTable.tsx:268 +msgid "Logging Disabled" +msgstr "" + +#: src/tables/settings/BarcodeScanHistoryTable.tsx:270 +msgid "Barcode logging is not enabled" +msgstr "" + +#: src/tables/settings/CustomStateTable.tsx:36 +msgid "Display Name" +msgstr "" + +#: src/tables/settings/CustomStateTable.tsx:52 +msgid "Model" +msgstr "" + +#: src/tables/settings/CustomStateTable.tsx:65 +#: src/tables/settings/CustomStateTable.tsx:115 +msgid "Add State" +msgstr "" + +#: src/tables/settings/CustomStateTable.tsx:77 +msgid "Edit State" +msgstr "" + +#: src/tables/settings/CustomStateTable.tsx:85 +msgid "Delete State" +msgstr "" + +#: src/tables/settings/CustomStateTable.tsx:115 +#~ msgid "Add state" +#~ msgstr "Add state" + #: src/tables/settings/CustomUnitsTable.tsx:50 msgid "Add Custom Unit" msgstr "" @@ -7312,59 +8540,71 @@ msgstr "" msgid "Add custom unit" msgstr "" -#: src/tables/settings/ErrorTable.tsx:31 -msgid "When" -msgstr "" - -#: src/tables/settings/ErrorTable.tsx:41 -msgid "Error Information" -msgstr "" - #: src/tables/settings/ErrorTable.tsx:51 #~ msgid "Delete error report" #~ msgstr "Delete error report" -#: src/tables/settings/ErrorTable.tsx:53 +#: src/tables/settings/ErrorTable.tsx:67 +msgid "Traceback" +msgstr "" + +#: src/tables/settings/ErrorTable.tsx:103 +msgid "When" +msgstr "" + +#: src/tables/settings/ErrorTable.tsx:113 +msgid "Error Information" +msgstr "" + +#: src/tables/settings/ErrorTable.tsx:123 msgid "Delete Error Report" msgstr "" -#: src/tables/settings/ErrorTable.tsx:55 +#: src/tables/settings/ErrorTable.tsx:125 msgid "Are you sure you want to delete this error report?" msgstr "" -#: src/tables/settings/ErrorTable.tsx:57 +#: src/tables/settings/ErrorTable.tsx:127 msgid "Error report deleted" msgstr "" -#: src/tables/settings/ErrorTable.tsx:79 -#: src/tables/settings/FailedTasksTable.tsx:59 +#: src/tables/settings/ErrorTable.tsx:146 +#: src/tables/settings/FailedTasksTable.tsx:65 msgid "Error Details" msgstr "" -#: src/tables/settings/FailedTasksTable.tsx:26 -#: src/tables/settings/PendingTasksTable.tsx:19 +#: src/tables/settings/FailedTasksTable.tsx:32 +#: src/tables/settings/PendingTasksTable.tsx:23 #: src/tables/settings/ScheduledTasksTable.tsx:19 msgid "Task" msgstr "" -#: src/tables/settings/FailedTasksTable.tsx:32 -#: src/tables/settings/PendingTasksTable.tsx:24 +#: src/tables/settings/FailedTasksTable.tsx:38 +#: src/tables/settings/PendingTasksTable.tsx:28 msgid "Task ID" msgstr "" -#: src/tables/settings/FailedTasksTable.tsx:36 -#: src/tables/stock/StockItemTestResultTable.tsx:211 +#: src/tables/settings/FailedTasksTable.tsx:42 +#: src/tables/stock/StockItemTestResultTable.tsx:218 msgid "Started" msgstr "" -#: src/tables/settings/FailedTasksTable.tsx:42 +#: src/tables/settings/FailedTasksTable.tsx:48 msgid "Stopped" msgstr "" -#: src/tables/settings/FailedTasksTable.tsx:48 +#: src/tables/settings/FailedTasksTable.tsx:54 msgid "Attempts" msgstr "" +#: src/tables/settings/FailedTasksTable.tsx:92 +msgid "No Information" +msgstr "" + +#: src/tables/settings/FailedTasksTable.tsx:93 +msgid "No error details are available for this task" +msgstr "" + #: src/tables/settings/GroupTable.tsx:90 msgid "Group with id {id} not found" msgstr "" @@ -7398,42 +8638,34 @@ msgstr "" msgid "Edit group" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:38 +#: src/tables/settings/ImportSessionTable.tsx:37 msgid "Delete Import Session" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:44 +#: src/tables/settings/ImportSessionTable.tsx:43 #: src/tables/settings/ImportSessionTable.tsx:131 msgid "Create Import Session" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:69 +#: src/tables/settings/ImportSessionTable.tsx:68 msgid "Uploaded" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:79 -msgid "Imported Rows" -msgstr "" - -#: src/tables/settings/ImportSessionTable.tsx:109 -#: src/tables/settings/TemplateTable.tsx:289 +#: src/tables/settings/ImportSessionTable.tsx:108 +#: src/tables/settings/TemplateTable.tsx:369 msgid "Model Type" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:110 -#: src/tables/settings/TemplateTable.tsx:290 +#: src/tables/settings/ImportSessionTable.tsx:109 +#: src/tables/settings/TemplateTable.tsx:370 msgid "Filter by target model type" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:116 +#: src/tables/settings/ImportSessionTable.tsx:115 msgid "Filter by import session status" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:122 -msgid "Filter by user" -msgstr "" - -#: src/tables/settings/PendingTasksTable.tsx:38 +#: src/tables/settings/PendingTasksTable.tsx:42 msgid "Arguments" msgstr "" @@ -7461,12 +8693,16 @@ msgstr "" msgid "Next Run" msgstr "" -#: src/tables/settings/TemplateTable.tsx:85 -msgid "Template not found" +#: src/tables/settings/StocktakeReportTable.tsx:28 +msgid "Report" msgstr "" -#: src/tables/settings/TemplateTable.tsx:87 -msgid "An error occurred while fetching template details" +#: src/tables/settings/StocktakeReportTable.tsx:35 +msgid "Part Count" +msgstr "" + +#: src/tables/settings/StocktakeReportTable.tsx:58 +msgid "Delete Report" msgstr "" #: src/tables/settings/TemplateTable.tsx:120 @@ -7481,21 +8717,12 @@ msgstr "" #~ msgid "actions" #~ msgstr "actions" -#: src/tables/settings/TemplateTable.tsx:177 -msgid "Modify" +#: src/tables/settings/TemplateTable.tsx:162 +msgid "Template not found" msgstr "" -#: src/tables/settings/TemplateTable.tsx:178 -msgid "Modify template file" -msgstr "" - -#: src/tables/settings/TemplateTable.tsx:234 -#: src/tables/settings/TemplateTable.tsx:302 -msgid "Edit Template" -msgstr "" - -#: src/tables/settings/TemplateTable.tsx:242 -msgid "Delete template" +#: src/tables/settings/TemplateTable.tsx:164 +msgid "An error occurred while fetching template details" msgstr "" #: src/tables/settings/TemplateTable.tsx:243 @@ -7506,103 +8733,137 @@ msgstr "" #~ msgid "Create new" #~ msgstr "Create new" -#: src/tables/settings/TemplateTable.tsx:248 +#: src/tables/settings/TemplateTable.tsx:257 +msgid "Modify" +msgstr "" + +#: src/tables/settings/TemplateTable.tsx:258 +msgid "Modify template file" +msgstr "" + +#: src/tables/settings/TemplateTable.tsx:314 +#: src/tables/settings/TemplateTable.tsx:382 +msgid "Edit Template" +msgstr "" + +#: src/tables/settings/TemplateTable.tsx:322 +msgid "Delete template" +msgstr "" + +#: src/tables/settings/TemplateTable.tsx:328 msgid "Add Template" msgstr "" -#: src/tables/settings/TemplateTable.tsx:261 +#: src/tables/settings/TemplateTable.tsx:341 msgid "Add template" msgstr "" -#: src/tables/settings/TemplateTable.tsx:284 +#: src/tables/settings/TemplateTable.tsx:364 msgid "Filter by enabled status" msgstr "" -#: src/tables/settings/UserTable.tsx:82 +#: src/tables/settings/UserTable.tsx:81 msgid "User with id {id} not found" msgstr "" -#: src/tables/settings/UserTable.tsx:84 +#: src/tables/settings/UserTable.tsx:83 msgid "An error occurred while fetching user details" msgstr "" -#: src/tables/settings/UserTable.tsx:102 +#: src/tables/settings/UserTable.tsx:101 msgid "Is Active" msgstr "" -#: src/tables/settings/UserTable.tsx:103 +#: src/tables/settings/UserTable.tsx:102 msgid "Designates whether this user should be treated as active. Unselect this instead of deleting accounts." msgstr "" -#: src/tables/settings/UserTable.tsx:107 +#: src/tables/settings/UserTable.tsx:106 msgid "Is Staff" msgstr "" -#: src/tables/settings/UserTable.tsx:108 +#: src/tables/settings/UserTable.tsx:107 msgid "Designates whether the user can log into the django admin site." msgstr "" -#: src/tables/settings/UserTable.tsx:112 +#: src/tables/settings/UserTable.tsx:111 msgid "Is Superuser" msgstr "" -#: src/tables/settings/UserTable.tsx:113 +#: src/tables/settings/UserTable.tsx:112 msgid "Designates that this user has all permissions without explicitly assigning them." msgstr "" -#: src/tables/settings/UserTable.tsx:123 +#: src/tables/settings/UserTable.tsx:122 msgid "You cannot edit the rights for the currently logged-in user." msgstr "" -#: src/tables/settings/UserTable.tsx:154 +#: src/tables/settings/UserTable.tsx:153 msgid "No groups" msgstr "" -#: src/tables/settings/UserTable.tsx:245 +#: src/tables/settings/UserTable.tsx:244 msgid "Delete user" msgstr "" -#: src/tables/settings/UserTable.tsx:246 +#: src/tables/settings/UserTable.tsx:245 msgid "User deleted" msgstr "" -#: src/tables/settings/UserTable.tsx:248 +#: src/tables/settings/UserTable.tsx:247 msgid "Are you sure you want to delete this user?" msgstr "" -#: src/tables/settings/UserTable.tsx:254 -#: src/tables/settings/UserTable.tsx:272 +#: src/tables/settings/UserTable.tsx:253 +#: src/tables/settings/UserTable.tsx:271 msgid "Add user" msgstr "" -#: src/tables/settings/UserTable.tsx:262 +#: src/tables/settings/UserTable.tsx:261 msgid "Added user" msgstr "" -#: src/tables/settings/UserTable.tsx:285 +#: src/tables/settings/UserTable.tsx:284 msgid "Show active users" msgstr "" -#: src/tables/settings/UserTable.tsx:289 +#: src/tables/settings/UserTable.tsx:288 msgid "Staff" msgstr "" -#: src/tables/settings/UserTable.tsx:290 +#: src/tables/settings/UserTable.tsx:289 msgid "Show staff users" msgstr "" #: src/tables/settings/UserTable.tsx:294 -msgid "Superuser" -msgstr "" - -#: src/tables/settings/UserTable.tsx:295 msgid "Show superusers" msgstr "" -#: src/tables/settings/UserTable.tsx:305 +#: src/tables/settings/UserTable.tsx:304 msgid "Edit user" msgstr "" +#: src/tables/stock/InstalledItemsTable.tsx:37 +#: src/tables/stock/InstalledItemsTable.tsx:90 +msgid "Install Item" +msgstr "" + +#: src/tables/stock/InstalledItemsTable.tsx:39 +msgid "Item installed" +msgstr "" + +#: src/tables/stock/InstalledItemsTable.tsx:50 +msgid "Uninstall Item" +msgstr "" + +#: src/tables/stock/InstalledItemsTable.tsx:52 +msgid "Item uninstalled" +msgstr "" + +#: src/tables/stock/InstalledItemsTable.tsx:108 +msgid "Uninstall stock item" +msgstr "" + #: src/tables/stock/LocationTypesTable.tsx:39 #: src/tables/stock/LocationTypesTable.tsx:109 msgid "Add Location Type" @@ -7620,276 +8881,272 @@ msgstr "" msgid "Icon" msgstr "" -#: src/tables/stock/StockItemTable.tsx:101 +#: src/tables/stock/StockItemTable.tsx:90 msgid "This stock item is in production" msgstr "" -#: src/tables/stock/StockItemTable.tsx:110 +#: src/tables/stock/StockItemTable.tsx:97 msgid "This stock item has been assigned to a sales order" msgstr "" -#: src/tables/stock/StockItemTable.tsx:119 +#: src/tables/stock/StockItemTable.tsx:104 msgid "This stock item has been assigned to a customer" msgstr "" -#: src/tables/stock/StockItemTable.tsx:128 +#: src/tables/stock/StockItemTable.tsx:111 msgid "This stock item is installed in another stock item" msgstr "" -#: src/tables/stock/StockItemTable.tsx:137 +#: src/tables/stock/StockItemTable.tsx:118 msgid "This stock item has been consumed by a build order" msgstr "" -#: src/tables/stock/StockItemTable.tsx:146 +#: src/tables/stock/StockItemTable.tsx:125 +msgid "This stock item is unavailable" +msgstr "" + +#: src/tables/stock/StockItemTable.tsx:134 msgid "This stock item has expired" msgstr "" -#: src/tables/stock/StockItemTable.tsx:150 +#: src/tables/stock/StockItemTable.tsx:138 msgid "This stock item is stale" msgstr "" -#: src/tables/stock/StockItemTable.tsx:161 +#: src/tables/stock/StockItemTable.tsx:150 msgid "This stock item is fully allocated" msgstr "" -#: src/tables/stock/StockItemTable.tsx:168 +#: src/tables/stock/StockItemTable.tsx:157 msgid "This stock item is partially allocated" msgstr "" -#: src/tables/stock/StockItemTable.tsx:196 +#: src/tables/stock/StockItemTable.tsx:185 msgid "This stock item has been depleted" msgstr "" -#: src/tables/stock/StockItemTable.tsx:232 +#: src/tables/stock/StockItemTable.tsx:280 msgid "Stocktake Date" msgstr "" -#: src/tables/stock/StockItemTable.tsx:236 -msgid "Expiry Date" -msgstr "" - -#: src/tables/stock/StockItemTable.tsx:260 -msgid "Stock Value" -msgstr "" - -#: src/tables/stock/StockItemTable.tsx:290 +#: src/tables/stock/StockItemTable.tsx:294 msgid "Show stock for active parts" msgstr "" -#: src/tables/stock/StockItemTable.tsx:295 +#: src/tables/stock/StockItemTable.tsx:299 msgid "Filter by stock status" msgstr "" #: src/tables/stock/StockItemTable.tsx:301 -msgid "Show stock for assmebled parts" +#~ msgid "Show stock for assmebled parts" +#~ msgstr "Show stock for assmebled parts" + +#: src/tables/stock/StockItemTable.tsx:305 +msgid "Show stock for assembled parts" msgstr "" -#: src/tables/stock/StockItemTable.tsx:306 +#: src/tables/stock/StockItemTable.tsx:310 msgid "Show items which have been allocated" msgstr "" -#: src/tables/stock/StockItemTable.tsx:311 +#: src/tables/stock/StockItemTable.tsx:315 msgid "Show items which are available" msgstr "" -#: src/tables/stock/StockItemTable.tsx:315 +#: src/tables/stock/StockItemTable.tsx:319 #: src/tables/stock/StockLocationTable.tsx:44 msgid "Include Sublocations" msgstr "" -#: src/tables/stock/StockItemTable.tsx:316 +#: src/tables/stock/StockItemTable.tsx:320 msgid "Include stock in sublocations" msgstr "" -#: src/tables/stock/StockItemTable.tsx:320 +#: src/tables/stock/StockItemTable.tsx:324 msgid "Depleted" msgstr "" -#: src/tables/stock/StockItemTable.tsx:321 +#: src/tables/stock/StockItemTable.tsx:325 msgid "Show depleted stock items" msgstr "" -#: src/tables/stock/StockItemTable.tsx:326 +#: src/tables/stock/StockItemTable.tsx:330 msgid "Show items which are in stock" msgstr "" -#: src/tables/stock/StockItemTable.tsx:331 +#: src/tables/stock/StockItemTable.tsx:335 msgid "Show items which are in production" msgstr "" -#: src/tables/stock/StockItemTable.tsx:336 +#: src/tables/stock/StockItemTable.tsx:340 msgid "Include stock items for variant parts" msgstr "" -#: src/tables/stock/StockItemTable.tsx:341 +#: src/tables/stock/StockItemTable.tsx:345 msgid "Show stock items which are installed in other items" msgstr "" -#: src/tables/stock/StockItemTable.tsx:345 +#: src/tables/stock/StockItemTable.tsx:349 msgid "Sent to Customer" msgstr "" -#: src/tables/stock/StockItemTable.tsx:346 +#: src/tables/stock/StockItemTable.tsx:350 msgid "Show items which have been sent to a customer" msgstr "" -#: src/tables/stock/StockItemTable.tsx:350 +#: src/tables/stock/StockItemTable.tsx:354 msgid "Is Serialized" msgstr "" -#: src/tables/stock/StockItemTable.tsx:351 +#: src/tables/stock/StockItemTable.tsx:355 msgid "Show items which have a serial number" msgstr "" -#: src/tables/stock/StockItemTable.tsx:358 +#: src/tables/stock/StockItemTable.tsx:362 msgid "Has Batch Code" msgstr "" -#: src/tables/stock/StockItemTable.tsx:359 +#: src/tables/stock/StockItemTable.tsx:363 msgid "Show items which have a batch code" msgstr "" -#: src/tables/stock/StockItemTable.tsx:365 +#: src/tables/stock/StockItemTable.tsx:369 msgid "Show tracked items" msgstr "" -#: src/tables/stock/StockItemTable.tsx:369 +#: src/tables/stock/StockItemTable.tsx:373 msgid "Has Purchase Price" msgstr "" -#: src/tables/stock/StockItemTable.tsx:370 +#: src/tables/stock/StockItemTable.tsx:374 msgid "Show items which have a purchase price" msgstr "" -#: src/tables/stock/StockItemTable.tsx:378 +#: src/tables/stock/StockItemTable.tsx:382 msgid "External Location" msgstr "" -#: src/tables/stock/StockItemTable.tsx:379 +#: src/tables/stock/StockItemTable.tsx:383 msgid "Show items in an external location" msgstr "" -#: src/tables/stock/StockItemTable.tsx:451 +#: src/tables/stock/StockItemTable.tsx:456 msgid "Add a new stock item" msgstr "" -#: src/tables/stock/StockItemTable.tsx:460 +#: src/tables/stock/StockItemTable.tsx:465 msgid "Remove some quantity from a stock item" msgstr "" -#: src/tables/stock/StockItemTable.tsx:482 +#: src/tables/stock/StockItemTable.tsx:487 msgid "Move Stock items to new locations" msgstr "" -#: src/tables/stock/StockItemTable.tsx:489 +#: src/tables/stock/StockItemTable.tsx:494 msgid "Change stock status" msgstr "" -#: src/tables/stock/StockItemTable.tsx:491 +#: src/tables/stock/StockItemTable.tsx:496 msgid "Change the status of stock items" msgstr "" -#: src/tables/stock/StockItemTable.tsx:498 +#: src/tables/stock/StockItemTable.tsx:503 msgid "Merge stock" msgstr "" -#: src/tables/stock/StockItemTable.tsx:500 +#: src/tables/stock/StockItemTable.tsx:505 msgid "Merge stock items" msgstr "" -#: src/tables/stock/StockItemTable.tsx:509 -#: src/tables/stock/StockItemTable.tsx:516 +#: src/tables/stock/StockItemTable.tsx:514 +#: src/tables/stock/StockItemTable.tsx:521 msgid "Order new stock" msgstr "" -#: src/tables/stock/StockItemTable.tsx:514 +#: src/tables/stock/StockItemTable.tsx:519 msgid "Assign to customer" msgstr "" -#: src/tables/stock/StockItemTable.tsx:523 +#: src/tables/stock/StockItemTable.tsx:528 msgid "Delete stock" msgstr "" -#: src/tables/stock/StockItemTable.tsx:525 -msgid "Delete stock items" -msgstr "" +#: src/tables/stock/StockItemTable.tsx:528 +#~ msgid "Delete stock items" +#~ msgstr "Delete stock items" -#: src/tables/stock/StockItemTestResultTable.tsx:131 +#: src/tables/stock/StockItemTestResultTable.tsx:137 msgid "Test" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:157 +#: src/tables/stock/StockItemTestResultTable.tsx:163 msgid "Test result for installed stock item" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:168 -msgid "Result" -msgstr "" - -#: src/tables/stock/StockItemTestResultTable.tsx:190 +#: src/tables/stock/StockItemTestResultTable.tsx:196 msgid "Attachment" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:206 +#: src/tables/stock/StockItemTestResultTable.tsx:212 msgid "Test station" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:226 +#: src/tables/stock/StockItemTestResultTable.tsx:234 msgid "Finished" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:268 -#: src/tables/stock/StockItemTestResultTable.tsx:339 +#: src/tables/stock/StockItemTestResultTable.tsx:286 +#: src/tables/stock/StockItemTestResultTable.tsx:357 msgid "Edit Test Result" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:270 +#: src/tables/stock/StockItemTestResultTable.tsx:288 msgid "Test result updated" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:276 -#: src/tables/stock/StockItemTestResultTable.tsx:348 +#: src/tables/stock/StockItemTestResultTable.tsx:294 +#: src/tables/stock/StockItemTestResultTable.tsx:366 msgid "Delete Test Result" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:278 +#: src/tables/stock/StockItemTestResultTable.tsx:296 msgid "Test result deleted" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:292 +#: src/tables/stock/StockItemTestResultTable.tsx:310 msgid "Test Passed" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:293 +#: src/tables/stock/StockItemTestResultTable.tsx:311 msgid "Test result has been recorded" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:300 +#: src/tables/stock/StockItemTestResultTable.tsx:318 msgid "Failed to record test result" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:317 +#: src/tables/stock/StockItemTestResultTable.tsx:335 msgid "Pass Test" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:366 +#: src/tables/stock/StockItemTestResultTable.tsx:384 msgid "Show results for required tests" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:370 +#: src/tables/stock/StockItemTestResultTable.tsx:388 msgid "Include Installed" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:371 +#: src/tables/stock/StockItemTestResultTable.tsx:389 msgid "Show results for installed stock items" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:375 -#: src/tables/stock/TestStatisticsTable.tsx:74 +#: src/tables/stock/StockItemTestResultTable.tsx:393 +#: src/tables/stock/TestStatisticsTable.tsx:62 msgid "Passed" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:376 +#: src/tables/stock/StockItemTestResultTable.tsx:394 msgid "Show only passed tests" msgstr "" @@ -7922,28 +9179,32 @@ msgid "Filter by location type" msgstr "" #: src/tables/stock/StockLocationTable.tsx:107 -#: src/tables/stock/StockLocationTable.tsx:133 +#: src/tables/stock/StockLocationTable.tsx:134 msgid "Add Stock Location" msgstr "" -#: src/tables/stock/StockTrackingTable.tsx:64 +#: src/tables/stock/StockTrackingTable.tsx:68 msgid "Added" msgstr "" -#: src/tables/stock/StockTrackingTable.tsx:69 +#: src/tables/stock/StockTrackingTable.tsx:73 msgid "Removed" msgstr "" #: src/tables/stock/StockTrackingTable.tsx:198 +msgid "Details" +msgstr "" + +#: src/tables/stock/StockTrackingTable.tsx:213 msgid "No user information" msgstr "" -#: src/tables/stock/TestStatisticsTable.tsx:46 -#: src/tables/stock/TestStatisticsTable.tsx:76 +#: src/tables/stock/TestStatisticsTable.tsx:34 +#: src/tables/stock/TestStatisticsTable.tsx:64 msgid "Total" msgstr "" -#: src/tables/stock/TestStatisticsTable.tsx:75 +#: src/tables/stock/TestStatisticsTable.tsx:63 msgid "Failed" msgstr "" diff --git a/src/frontend/src/locales/sv/messages.po b/src/frontend/src/locales/sv/messages.po index 102fbd94bd..7309823722 100644 --- a/src/frontend/src/locales/sv/messages.po +++ b/src/frontend/src/locales/sv/messages.po @@ -8,15 +8,15 @@ msgstr "" "Language: sv\n" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"PO-Revision-Date: 2024-08-20 19:50\n" +"PO-Revision-Date: 2024-11-04 03:14\n" "Last-Translator: \n" "Language-Team: Swedish\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Crowdin-Project: inventree\n" "X-Crowdin-Project-ID: 452300\n" "X-Crowdin-Language: sv-SE\n" -"X-Crowdin-File: /[inventree.InvenTree] l10/src/frontend/src/locales/en/messages.po\n" -"X-Crowdin-File-ID: 205\n" +"X-Crowdin-File: /src/frontend/src/locales/en/messages.po\n" +"X-Crowdin-File-ID: 252\n" #: src/components/Boundary.tsx:12 msgid "Error rendering component" @@ -27,8 +27,8 @@ msgid "An error occurred while rendering this component. Refer to the console fo msgstr "Ett fel inträffade vid rendering av denna komponent. Se konsolen för mer information." #: src/components/DashboardItemProxy.tsx:34 -msgid "Title" -msgstr "Titel" +#~ msgid "Title" +#~ msgstr "Title" #: src/components/buttons/AdminButton.tsx:80 msgid "Open in admin interface" @@ -38,82 +38,99 @@ msgstr "Öppna i administratörsgränssnittet" #~ msgid "Copy to clipboard" #~ msgstr "Copy to clipboard" -#: src/components/buttons/CopyButton.tsx:24 +#: src/components/buttons/CopyButton.tsx:29 msgid "Copied" msgstr "Kopierad" -#: src/components/buttons/CopyButton.tsx:24 +#: src/components/buttons/CopyButton.tsx:29 msgid "Copy" msgstr "Kopiera" -#: src/components/buttons/PrintingActions.tsx:93 +#: src/components/buttons/PrintingActions.tsx:97 msgid "Print Label" msgstr "Skriv ut etikett" -#: src/components/buttons/PrintingActions.tsx:99 +#: src/components/buttons/PrintingActions.tsx:103 msgid "Print" msgstr "Skriv ut" -#: src/components/buttons/PrintingActions.tsx:100 +#: src/components/buttons/PrintingActions.tsx:104 msgid "Label printing completed successfully" msgstr "Utskrift av etiketter lyckades" -#: src/components/buttons/PrintingActions.tsx:106 -#: src/components/buttons/PrintingActions.tsx:144 -#: src/components/editors/NotesEditor.tsx:65 -#: src/components/editors/NotesEditor.tsx:165 -#: src/components/forms/fields/ApiFormField.tsx:319 +#: src/components/buttons/PrintingActions.tsx:110 +#: src/components/buttons/PrintingActions.tsx:148 +#: src/components/editors/NotesEditor.tsx:73 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:154 +#: src/components/forms/fields/ApiFormField.tsx:328 +#: src/components/forms/fields/TableField.tsx:43 #: src/components/importer/ImportDataSelector.tsx:187 -#: src/components/importer/ImporterColumnSelector.tsx:207 +#: src/components/importer/ImporterColumnSelector.tsx:210 #: src/components/modals/LicenseModal.tsx:75 -#: src/components/nav/SearchDrawer.tsx:448 +#: src/components/nav/SearchDrawer.tsx:458 +#: src/components/render/ModelType.tsx:290 #: src/pages/ErrorPage.tsx:11 -#: src/pages/part/PartPricingPanel.tsx:67 -#: src/tables/InvenTreeTable.tsx:495 +#: src/pages/part/PartPricingPanel.tsx:71 +#: src/tables/InvenTreeTable.tsx:481 #: src/tables/bom/BomTable.tsx:450 -#: src/tables/stock/StockItemTestResultTable.tsx:299 +#: src/tables/stock/StockItemTestResultTable.tsx:317 msgid "Error" msgstr "Fel" -#: src/components/buttons/PrintingActions.tsx:107 +#: src/components/buttons/PrintingActions.tsx:111 msgid "The label could not be generated" msgstr "Etiketten kunde inte genereras" -#: src/components/buttons/PrintingActions.tsx:122 +#: src/components/buttons/PrintingActions.tsx:126 msgid "Print Report" msgstr "Skriv ut Rapport" -#: src/components/buttons/PrintingActions.tsx:138 +#: src/components/buttons/PrintingActions.tsx:142 msgid "Generate" msgstr "Generera" -#: src/components/buttons/PrintingActions.tsx:139 +#: src/components/buttons/PrintingActions.tsx:143 msgid "Report printing completed successfully" msgstr "Utskrift av rapporten lyckades" -#: src/components/buttons/PrintingActions.tsx:145 +#: src/components/buttons/PrintingActions.tsx:149 msgid "The report could not be generated" msgstr "Rapporten kunde inte genereras" -#: src/components/buttons/PrintingActions.tsx:173 +#: src/components/buttons/PrintingActions.tsx:177 msgid "Printing Actions" msgstr "Utskriftsalternativ" -#: src/components/buttons/PrintingActions.tsx:178 +#: src/components/buttons/PrintingActions.tsx:182 msgid "Print Labels" msgstr "Skriv ut etiketter" -#: src/components/buttons/PrintingActions.tsx:184 +#: src/components/buttons/PrintingActions.tsx:188 msgid "Print Reports" msgstr "Skriv ut rapporter" +#: src/components/buttons/RemoveRowButton.tsx:8 +msgid "Remove this row" +msgstr "" + #: src/components/buttons/ScanButton.tsx:15 -msgid "Scan QR code" -msgstr "Skanna QR-kod" +#: src/components/nav/NavigationDrawer.tsx:117 +#: src/forms/PurchaseOrderForms.tsx:379 +#: src/forms/PurchaseOrderForms.tsx:473 +msgid "Scan Barcode" +msgstr "Skanna streckkod" + +#: src/components/buttons/ScanButton.tsx:15 +#~ msgid "Scan QR code" +#~ msgstr "Scan QR code" #: src/components/buttons/ScanButton.tsx:20 -msgid "Open QR code scanner" -msgstr "Öppna QR-kodsskannern" +msgid "Open Barcode Scanner" +msgstr "" + +#: src/components/buttons/ScanButton.tsx:20 +#~ msgid "Open QR code scanner" +#~ msgstr "Open QR code scanner" #: src/components/buttons/SpotlightButton.tsx:14 msgid "Open spotlight" @@ -128,85 +145,347 @@ msgid "Fail" msgstr "Misslyckades" #: src/components/buttons/YesNoButton.tsx:33 -#: src/tables/Filter.tsx:52 +#: src/tables/Filter.tsx:61 msgid "Yes" msgstr "Ja" #: src/components/buttons/YesNoButton.tsx:33 -#: src/tables/Filter.tsx:53 +#: src/tables/Filter.tsx:62 msgid "No" msgstr "Nej" -#: src/components/details/Details.tsx:301 +#: src/components/dashboard/DashboardLayout.tsx:286 +msgid "No Widgets Selected" +msgstr "" + +#: src/components/dashboard/DashboardLayout.tsx:289 +msgid "Use the menu to add widgets to the dashboard" +msgstr "" + +#: src/components/dashboard/DashboardMenu.tsx:59 +#: src/components/dashboard/DashboardMenu.tsx:126 +msgid "Accept Layout" +msgstr "" + +#: src/components/dashboard/DashboardMenu.tsx:91 +#: src/components/nav/NavigationDrawer.tsx:71 +#: src/defaults/actions.tsx:17 +#: src/defaults/links.tsx:9 +#: src/pages/Index/Settings/UserSettings.tsx:47 +msgid "Dashboard" +msgstr "Kontrollpanel" + +#: src/components/dashboard/DashboardMenu.tsx:99 +msgid "Edit Layout" +msgstr "Redigera Layout" + +#: src/components/dashboard/DashboardMenu.tsx:108 +msgid "Add Widget" +msgstr "" + +#: src/components/dashboard/DashboardMenu.tsx:117 +msgid "Remove Widgets" +msgstr "" + +#: src/components/dashboard/DashboardWidget.tsx:65 +msgid "Remove this widget from the dashboard" +msgstr "" + +#: src/components/dashboard/DashboardWidgetDrawer.tsx:77 +msgid "Filter dashboard widgets" +msgstr "" + +#: src/components/dashboard/DashboardWidgetDrawer.tsx:98 +msgid "Add this widget to the dashboard" +msgstr "" + +#: src/components/dashboard/DashboardWidgetDrawer.tsx:123 +msgid "No Widgets Available" +msgstr "" + +#: src/components/dashboard/DashboardWidgetDrawer.tsx:124 +msgid "There are no more widgets available for the dashboard" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:19 +msgid "Subscribed Parts" +msgstr "Prenumererade artiklar" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:20 +msgid "Show the number of parts which you have subscribed to" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:26 +msgid "Subscribed Categories" +msgstr "Prenumererade kategorier" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:27 +msgid "Show the number of part categories which you have subscribed to" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:35 +#: src/pages/part/PartSchedulingDetail.tsx:304 +#: src/tables/part/PartTable.tsx:238 +msgid "Low Stock" +msgstr "Få i lager" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:37 +msgid "Show the number of parts which are low on stock" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:43 +msgid "Expired Stock Items" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:45 +msgid "Show the number of stock items which have expired" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:51 +msgid "Stale Stock Items" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:53 +msgid "Show the number of stock items which are stale" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:59 +msgid "Active Build Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:61 +msgid "Show the number of build orders which are currently active" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:66 +msgid "Overdue Build Orders" +msgstr "Försenade byggorder" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:68 +msgid "Show the number of build orders which are overdue" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:73 +msgid "Assigned Build Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:75 +msgid "Show the number of build orders which are assigned to you" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:80 +msgid "Active Sales Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:82 +msgid "Show the number of sales orders which are currently active" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:87 +msgid "Overdue Sales Orders" +msgstr "Försenade försäljningsorder" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:89 +msgid "Show the number of sales orders which are overdue" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:94 +msgid "Assigned Sales Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:96 +msgid "Show the number of sales orders which are assigned to you" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:101 +msgid "Active Purchase Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:103 +msgid "Show the number of purchase orders which are currently active" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:108 +msgid "Overdue Purchase Orders" +msgstr "Förfallna inköpsorder" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:110 +msgid "Show the number of purchase orders which are overdue" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:115 +msgid "Assigned Purchase Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:117 +msgid "Show the number of purchase orders which are assigned to you" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:122 +msgid "Active Return Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:124 +msgid "Show the number of return orders which are currently active" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:129 +msgid "Overdue Return Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:131 +msgid "Show the number of return orders which are overdue" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:136 +msgid "Assigned Return Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:138 +msgid "Show the number of return orders which are assigned to you" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:149 +#: src/components/dashboard/widgets/GetStartedWidget.tsx:15 +#: src/defaults/links.tsx:38 +msgid "Getting Started" +msgstr "Kom igång" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:150 +#: src/defaults/links.tsx:41 +msgid "Getting started with InvenTree" +msgstr "Komma igång med InvenTree" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:157 +#: src/components/dashboard/widgets/NewsWidget.tsx:123 +msgid "News Updates" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:158 +msgid "The latest news from InvenTree" +msgstr "" + +#: src/components/dashboard/widgets/ColorToggleWidget.tsx:18 +#: src/components/nav/MainMenu.tsx:77 +msgid "Change Color Mode" +msgstr "" + +#: src/components/dashboard/widgets/ColorToggleWidget.tsx:23 +msgid "Change the color mode of the user interface" +msgstr "" + +#: src/components/dashboard/widgets/LanguageSelectWidget.tsx:18 +msgid "Change Language" +msgstr "Ändra språk" + +#: src/components/dashboard/widgets/LanguageSelectWidget.tsx:23 +msgid "Change the language of the user interface" +msgstr "" + +#: src/components/dashboard/widgets/NewsWidget.tsx:61 +#: src/components/nav/NotificationDrawer.tsx:88 +#: src/pages/Notifications.tsx:73 +msgid "Mark as read" +msgstr "Markera som läst" + +#: src/components/dashboard/widgets/NewsWidget.tsx:115 +msgid "Requires Superuser" +msgstr "" + +#: src/components/dashboard/widgets/NewsWidget.tsx:116 +msgid "This widget requires superuser permissions" +msgstr "" + +#: src/components/dashboard/widgets/NewsWidget.tsx:133 +msgid "No News" +msgstr "Inga nyheter" + +#: src/components/dashboard/widgets/NewsWidget.tsx:134 +msgid "There are no unread news items" +msgstr "" + +#: src/components/details/Details.tsx:300 msgid "No name defined" msgstr "Inget namn definierat" -#: src/components/details/DetailsImage.tsx:65 +#: src/components/details/DetailsImage.tsx:69 msgid "Remove Image" msgstr "Ta bort bild" -#: src/components/details/DetailsImage.tsx:68 +#: src/components/details/DetailsImage.tsx:72 msgid "Remove the associated image from this item?" msgstr "Vill du ta bort den associerade bilden från denna artikel?" -#: src/components/details/DetailsImage.tsx:71 -#: src/forms/StockForms.tsx:533 +#: src/components/details/DetailsImage.tsx:75 +#: src/forms/StockForms.tsx:651 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:199 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:306 -#: src/pages/stock/StockDetail.tsx:526 +#: src/pages/stock/StockDetail.tsx:690 msgid "Remove" msgstr "Ta bort" -#: src/components/details/DetailsImage.tsx:71 -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:158 -#: src/components/items/ActionDropdown.tsx:215 -#: src/components/items/ActionDropdown.tsx:216 -#: src/contexts/ThemeContext.tsx:43 +#: src/components/details/DetailsImage.tsx:75 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:184 +#: src/components/items/ActionDropdown.tsx:268 +#: src/components/items/ActionDropdown.tsx:269 +#: src/contexts/ThemeContext.tsx:45 #: src/hooks/UseForm.tsx:40 -#: src/tables/FilterSelectDrawer.tsx:205 -#: src/tables/build/BuildOutputTable.tsx:286 +#: src/tables/FilterSelectDrawer.tsx:241 +#: src/tables/RowActions.tsx:59 +#: src/tables/build/BuildOutputTable.tsx:434 msgid "Cancel" msgstr "Avbryt" -#: src/components/details/DetailsImage.tsx:97 +#: src/components/details/DetailsImage.tsx:101 msgid "Drag and drop to upload" msgstr "Dra och släpp för att ladda upp" -#: src/components/details/DetailsImage.tsx:100 +#: src/components/details/DetailsImage.tsx:104 msgid "Click to select file(s)" msgstr "Klicka för att välja fil(er)" -#: src/components/details/DetailsImage.tsx:226 +#: src/components/details/DetailsImage.tsx:230 msgid "Clear" msgstr "Rensa" -#: src/components/details/DetailsImage.tsx:232 -#: src/components/forms/ApiForm.tsx:627 -#: src/contexts/ThemeContext.tsx:43 -#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:60 +#: src/components/details/DetailsImage.tsx:236 +#: src/components/forms/ApiForm.tsx:660 +#: src/contexts/ThemeContext.tsx:45 msgid "Submit" msgstr "Skicka" -#: src/components/details/DetailsImage.tsx:272 +#: src/components/details/DetailsImage.tsx:280 msgid "Select from existing images" msgstr "Välj från befintliga bilder" -#: src/components/details/DetailsImage.tsx:280 +#: src/components/details/DetailsImage.tsx:288 msgid "Select Image" msgstr "Välj bild" -#: src/components/details/DetailsImage.tsx:292 +#: src/components/details/DetailsImage.tsx:304 +msgid "Download remote image" +msgstr "" + +#: src/components/details/DetailsImage.tsx:319 msgid "Upload new image" msgstr "Ladda upp ny bild" -#: src/components/details/DetailsImage.tsx:299 +#: src/components/details/DetailsImage.tsx:326 msgid "Upload Image" msgstr "Ladda upp bild" -#: src/components/details/DetailsImage.tsx:312 +#: src/components/details/DetailsImage.tsx:339 msgid "Delete image" msgstr "Radera bild" +#: src/components/details/DetailsImage.tsx:373 +msgid "Download Image" +msgstr "" + +#: src/components/details/DetailsImage.tsx:378 +msgid "Image downloaded successfully" +msgstr "" + #: src/components/details/PartIcons.tsx:43 #~ msgid "Part is a template part (variants can be made from this part)" #~ msgstr "Part is a template part (variants can be made from this part)" @@ -235,36 +514,57 @@ msgstr "Radera bild" #~ msgid "Part is virtual (not a physical part)" #~ msgstr "Part is virtual (not a physical part)" -#: src/components/editors/NotesEditor.tsx:66 +#: src/components/editors/NotesEditor.tsx:74 msgid "Image upload failed" msgstr "Bilduppladdning misslyckades" -#: src/components/editors/NotesEditor.tsx:156 -#: src/components/forms/ApiForm.tsx:467 +#: src/components/editors/NotesEditor.tsx:83 +#: src/components/editors/NotesEditor.tsx:119 +#: src/components/forms/ApiForm.tsx:475 #: src/tables/bom/BomTable.tsx:441 msgid "Success" msgstr "Lyckades" -#: src/components/editors/NotesEditor.tsx:157 +#: src/components/editors/NotesEditor.tsx:84 +msgid "Image uploaded successfully" +msgstr "" + +#: src/components/editors/NotesEditor.tsx:120 msgid "Notes saved successfully" msgstr "Anteckningarna sparades framgångsrikt" -#: src/components/editors/NotesEditor.tsx:166 +#: src/components/editors/NotesEditor.tsx:131 msgid "Failed to save notes" msgstr "Det gick inte att spara anteckningarna" -#: src/components/editors/NotesEditor.tsx:198 -msgid "Preview Notes" -msgstr "Förhandsgranska anteckningar" +#: src/components/editors/NotesEditor.tsx:134 +msgid "Error Saving Notes" +msgstr "" -#: src/components/editors/NotesEditor.tsx:198 -msgid "Edit Notes" -msgstr "Redigera anteckningar" +#: src/components/editors/NotesEditor.tsx:151 +#~ msgid "Disable Editing" +#~ msgstr "Disable Editing" -#: src/components/editors/NotesEditor.tsx:212 +#: src/components/editors/NotesEditor.tsx:154 msgid "Save Notes" msgstr "Spara anteckningar" +#: src/components/editors/NotesEditor.tsx:173 +msgid "Close Editor" +msgstr "" + +#: src/components/editors/NotesEditor.tsx:180 +msgid "Enable Editing" +msgstr "" + +#: src/components/editors/NotesEditor.tsx:198 +#~ msgid "Preview Notes" +#~ msgstr "Preview Notes" + +#: src/components/editors/NotesEditor.tsx:198 +#~ msgid "Edit Notes" +#~ msgstr "Edit Notes" + #: src/components/editors/TemplateEditor/CodeEditor/index.tsx:9 msgid "Code" msgstr "Kod" @@ -281,40 +581,44 @@ msgstr "Förhandsgranska ej tillgänglig, klicka på \"Ladda om förhandsgranskn msgid "PDF Preview" msgstr "Förhandsgranska PDF" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:104 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:115 msgid "Error loading template" msgstr "Fel vid inläsning av mall" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:116 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:127 msgid "Error saving template" msgstr "Fel vid sparande av mall" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:146 -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:274 -msgid "Save & Reload Preview" -msgstr "Spara och ladda om förhandsgranskning" - -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:151 -msgid "Are you sure you want to Save & Reload the preview?" -msgstr "Är du säker på att du vill spara och ladda om förhandsgranskningen?" - #: src/components/editors/TemplateEditor/TemplateEditor.tsx:151 #~ msgid "Save & Reload preview?" #~ msgstr "Save & Reload preview?" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:153 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:155 +msgid "Could not load the template from the server." +msgstr "" + +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:172 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:303 +msgid "Save & Reload Preview" +msgstr "Spara och ladda om förhandsgranskning" + +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:177 +msgid "Are you sure you want to Save & Reload the preview?" +msgstr "Är du säker på att du vill spara och ladda om förhandsgranskningen?" + +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:179 msgid "To render the preview the current template needs to be replaced on the server with your modifications which may break the label if it is under active use. Do you want to proceed?" msgstr "För att visa förhandsgranskningen måste den aktuella mallen bytas ut på servern med dina ändringar som kan bryta etiketten om den är under aktiv användning. Vill du fortsätta?" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:157 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:183 msgid "Save & Reload" msgstr "Spara och ladda om" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:189 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:215 msgid "Preview updated" msgstr "Förhandsgranskningen uppdaterad" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:190 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:216 msgid "The preview has been updated successfully." msgstr "Uppdateringen av förhandsgranskningen lyckades." @@ -322,15 +626,15 @@ msgstr "Uppdateringen av förhandsgranskningen lyckades." #~ msgid "Save & Reload preview" #~ msgstr "Save & Reload preview" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:266 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:295 msgid "Reload preview" msgstr "Ladda om förhandsgranskning" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:267 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:296 msgid "Use the currently stored template from the server" msgstr "Använd mallen som finns sparad på servern" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:275 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:304 msgid "Save the current template and reload the preview" msgstr "Spara den aktuella mallen och ladda om förhandsgranskningen" @@ -338,11 +642,11 @@ msgstr "Spara den aktuella mallen och ladda om förhandsgranskningen" #~ msgid "to preview" #~ msgstr "to preview" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:333 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:365 msgid "Select instance to preview" msgstr "Välj instans att förhandsgranska" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:377 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:409 msgid "Error rendering template" msgstr "Fel vid rendering av mall" @@ -379,6 +683,7 @@ msgid "This page does not exist" msgstr "Sidan finns inte" #: src/components/errors/PermissionDenied.tsx:8 +#: src/functions/notifications.tsx:24 msgid "Permission Denied" msgstr "Åtkomst nekad" @@ -394,8 +699,8 @@ msgstr "Serverfel" msgid "A server error occurred" msgstr "Ett serverfel inträffade" -#: src/components/forms/ApiForm.tsx:151 -#: src/components/forms/ApiForm.tsx:555 +#: src/components/forms/ApiForm.tsx:154 +#: src/components/forms/ApiForm.tsx:579 msgid "Form Error" msgstr "Formulär fel" @@ -403,22 +708,22 @@ msgstr "Formulär fel" #~ msgid "Form Errors Exist" #~ msgstr "Form Errors Exist" -#: src/components/forms/ApiForm.tsx:563 +#: src/components/forms/ApiForm.tsx:587 msgid "Errors exist for one or more form fields" msgstr "Fel finns för ett eller flera formulärfält" -#: src/components/forms/ApiForm.tsx:665 -#: src/tables/plugin/PluginListTable.tsx:388 +#: src/components/forms/ApiForm.tsx:698 +#: src/tables/plugin/PluginListTable.tsx:195 msgid "Update" msgstr "Uppdatera" -#: src/components/forms/ApiForm.tsx:685 -#: src/components/items/ActionDropdown.tsx:195 +#: src/components/forms/ApiForm.tsx:718 +#: src/components/items/ActionDropdown.tsx:248 #: src/hooks/UseForm.tsx:122 -#: src/pages/Index/Scan.tsx:343 +#: src/pages/Index/Scan.tsx:357 #: src/pages/Notifications.tsx:123 -#: src/tables/RowActions.tsx:43 -#: src/tables/plugin/PluginListTable.tsx:420 +#: src/tables/RowActions.tsx:49 +#: src/tables/plugin/PluginListTable.tsx:232 msgid "Delete" msgstr "Radera" @@ -428,14 +733,6 @@ msgstr "Radera" #~ msgid "Check your your input and try again." #~ msgstr "Check your your input and try again." -#: src/components/forms/AuthenticationForm.tsx:51 -msgid "Login successful" -msgstr "Inlogningen lyckad" - -#: src/components/forms/AuthenticationForm.tsx:52 -msgid "Logged in successfully" -msgstr "Inloggningen lyckades" - #: src/components/forms/AuthenticationForm.tsx:52 #~ msgid "Welcome back!" #~ msgstr "Welcome back!" @@ -444,14 +741,22 @@ msgstr "Inloggningen lyckades" #~ msgid "Login successfull" #~ msgstr "Login successfull" -#: src/components/forms/AuthenticationForm.tsx:58 +#: src/components/forms/AuthenticationForm.tsx:55 +msgid "Login successful" +msgstr "Inlogningen lyckad" + +#: src/components/forms/AuthenticationForm.tsx:56 +msgid "Logged in successfully" +msgstr "Inloggningen lyckades" + +#: src/components/forms/AuthenticationForm.tsx:61 msgid "Login failed" msgstr "Inloggningen misslyckades" -#: src/components/forms/AuthenticationForm.tsx:59 -#: src/components/forms/AuthenticationForm.tsx:76 -#: src/components/forms/AuthenticationForm.tsx:211 -#: src/functions/auth.tsx:164 +#: src/components/forms/AuthenticationForm.tsx:62 +#: src/components/forms/AuthenticationForm.tsx:79 +#: src/components/forms/AuthenticationForm.tsx:214 +#: src/functions/auth.tsx:175 msgid "Check your input and try again." msgstr "Kontrollera din inmatning och försök igen." @@ -460,45 +765,46 @@ msgstr "Kontrollera din inmatning och försök igen." #~ msgid "Mail delivery successfull" #~ msgstr "Mail delivery successfull" -#: src/components/forms/AuthenticationForm.tsx:70 -#: src/functions/auth.tsx:155 +#: src/components/forms/AuthenticationForm.tsx:73 +#: src/functions/auth.tsx:166 msgid "Mail delivery successful" msgstr "E-postleverans lyckad" -#: src/components/forms/AuthenticationForm.tsx:71 +#: src/components/forms/AuthenticationForm.tsx:74 msgid "Check your inbox for the login link. If you have an account, you will receive a login link. Check in spam too." msgstr "Kolla din inkorg för inloggningslänken. Om du har ett konto kommer du att få en inloggningslänk. Kolla in spam också." -#: src/components/forms/AuthenticationForm.tsx:75 +#: src/components/forms/AuthenticationForm.tsx:78 msgid "Mail delivery failed" msgstr "E-postleverans misslyckades" -#: src/components/forms/AuthenticationForm.tsx:95 +#: src/components/forms/AuthenticationForm.tsx:98 msgid "Or continue with other methods" msgstr "Eller fortsätt med andra metoder" -#: src/components/forms/AuthenticationForm.tsx:106 -#: src/components/forms/AuthenticationForm.tsx:227 +#: src/components/forms/AuthenticationForm.tsx:109 +#: src/components/forms/AuthenticationForm.tsx:230 +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:67 msgid "Username" msgstr "Användarnamn" -#: src/components/forms/AuthenticationForm.tsx:107 -#: src/components/forms/AuthenticationForm.tsx:228 +#: src/components/forms/AuthenticationForm.tsx:110 +#: src/components/forms/AuthenticationForm.tsx:231 msgid "Your username" msgstr "Ditt användarnamn" -#: src/components/forms/AuthenticationForm.tsx:112 -#: src/components/forms/AuthenticationForm.tsx:240 -#: src/pages/Auth/Set-Password.tsx:106 +#: src/components/forms/AuthenticationForm.tsx:115 +#: src/components/forms/AuthenticationForm.tsx:243 +#: src/pages/Auth/Set-Password.tsx:101 msgid "Password" msgstr "Lösenord" -#: src/components/forms/AuthenticationForm.tsx:113 -#: src/components/forms/AuthenticationForm.tsx:241 +#: src/components/forms/AuthenticationForm.tsx:116 +#: src/components/forms/AuthenticationForm.tsx:244 msgid "Your password" msgstr "Ditt lösenord" -#: src/components/forms/AuthenticationForm.tsx:125 +#: src/components/forms/AuthenticationForm.tsx:128 #: src/pages/Auth/Reset.tsx:26 msgid "Reset password" msgstr "Återställ lösenord" @@ -507,77 +813,79 @@ msgstr "Återställ lösenord" #~ msgid "Log in" #~ msgstr "Log in" -#: src/components/forms/AuthenticationForm.tsx:134 -#: src/components/forms/AuthenticationForm.tsx:233 +#: src/components/forms/AuthenticationForm.tsx:136 +#~ msgid "I will use username and password" +#~ msgstr "I will use username and password" + +#: src/components/forms/AuthenticationForm.tsx:137 +#: src/components/forms/AuthenticationForm.tsx:236 #: src/pages/Auth/Reset.tsx:31 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:51 msgid "Email" msgstr "E-post" -#: src/components/forms/AuthenticationForm.tsx:135 +#: src/components/forms/AuthenticationForm.tsx:138 #: src/pages/Auth/Reset.tsx:32 -#: src/pages/Auth/Set-Password.tsx:107 +#: src/pages/Auth/Set-Password.tsx:102 msgid "We will send you a link to login - if you are registered" msgstr "Vi skickar en länk till dig för att logga in - om du är registrerad" -#: src/components/forms/AuthenticationForm.tsx:136 -#~ msgid "I will use username and password" -#~ msgstr "I will use username and password" - -#: src/components/forms/AuthenticationForm.tsx:151 +#: src/components/forms/AuthenticationForm.tsx:154 msgid "Send me an email" msgstr "Skicka ett e-postmeddelande" -#: src/components/forms/AuthenticationForm.tsx:153 +#: src/components/forms/AuthenticationForm.tsx:156 msgid "Use username and password" msgstr "Använd användarnamn och lösenord" -#: src/components/forms/AuthenticationForm.tsx:162 +#: src/components/forms/AuthenticationForm.tsx:165 msgid "Log In" msgstr "Logga in" -#: src/components/forms/AuthenticationForm.tsx:164 +#: src/components/forms/AuthenticationForm.tsx:167 +#: src/pages/Auth/Reset.tsx:41 +#: src/pages/Auth/Set-Password.tsx:107 msgid "Send Email" msgstr "Skicka e-post" -#: src/components/forms/AuthenticationForm.tsx:193 +#: src/components/forms/AuthenticationForm.tsx:196 msgid "Registration successful" msgstr "Registreringen lyckades" -#: src/components/forms/AuthenticationForm.tsx:194 +#: src/components/forms/AuthenticationForm.tsx:197 msgid "Please confirm your email address to complete the registration" msgstr "Bekräfta din e-postadress för att slutföra registreringen" -#: src/components/forms/AuthenticationForm.tsx:210 +#: src/components/forms/AuthenticationForm.tsx:213 msgid "Input error" msgstr "Inmatningsfel" -#: src/components/forms/AuthenticationForm.tsx:234 +#: src/components/forms/AuthenticationForm.tsx:237 msgid "This will be used for a confirmation" msgstr "Detta kommer att användas för en bekräftelse" -#: src/components/forms/AuthenticationForm.tsx:246 +#: src/components/forms/AuthenticationForm.tsx:249 msgid "Password repeat" msgstr "Upprepa lösenordet" -#: src/components/forms/AuthenticationForm.tsx:247 +#: src/components/forms/AuthenticationForm.tsx:250 msgid "Repeat password" msgstr "Upprepa lösenord" -#: src/components/forms/AuthenticationForm.tsx:259 -#: src/components/forms/AuthenticationForm.tsx:304 +#: src/components/forms/AuthenticationForm.tsx:262 +#: src/components/forms/AuthenticationForm.tsx:307 msgid "Register" msgstr "Registrera" -#: src/components/forms/AuthenticationForm.tsx:265 +#: src/components/forms/AuthenticationForm.tsx:268 msgid "Or use SSO" msgstr "Eller använd SSO" -#: src/components/forms/AuthenticationForm.tsx:296 +#: src/components/forms/AuthenticationForm.tsx:299 msgid "Don't have an account?" msgstr "Har du inget konto?" -#: src/components/forms/AuthenticationForm.tsx:315 +#: src/components/forms/AuthenticationForm.tsx:318 msgid "Go back to login" msgstr "Tillbaka till inloggning" @@ -588,19 +896,20 @@ msgstr "Värd" #: src/components/forms/HostOptionsForm.tsx:42 #: src/components/forms/HostOptionsForm.tsx:70 +#: src/components/plugins/PluginDrawer.tsx:69 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:410 +#: src/pages/Index/Settings/AdminCenter/UnitManagmentPanel.tsx:19 #: src/pages/part/CategoryDetail.tsx:81 -#: src/pages/part/PartDetail.tsx:143 -#: src/pages/stock/LocationDetail.tsx:89 -#: src/tables/machine/MachineTypeTable.tsx:65 -#: src/tables/machine/MachineTypeTable.tsx:109 -#: src/tables/machine/MachineTypeTable.tsx:216 -#: src/tables/machine/MachineTypeTable.tsx:319 +#: src/pages/part/PartDetail.tsx:164 +#: src/pages/stock/LocationDetail.tsx:83 +#: src/tables/machine/MachineTypeTable.tsx:70 +#: src/tables/machine/MachineTypeTable.tsx:119 +#: src/tables/machine/MachineTypeTable.tsx:237 +#: src/tables/machine/MachineTypeTable.tsx:340 #: src/tables/plugin/PluginErrorTable.tsx:33 -#: src/tables/plugin/PluginListTable.tsx:126 #: src/tables/purchasing/ManufacturerPartParameterTable.tsx:32 #: src/tables/settings/GroupTable.tsx:147 -#: src/tables/settings/PendingTasksTable.tsx:28 +#: src/tables/settings/PendingTasksTable.tsx:32 #: src/tables/stock/LocationTypesTable.tsx:69 msgid "Name" msgstr "Namn" @@ -650,7 +959,7 @@ msgid "Uncategorized" msgstr "Okategoriserade" #: src/components/forms/fields/IconField.tsx:209 -#: src/components/nav/Layout.tsx:70 +#: src/components/nav/Layout.tsx:77 #: src/tables/part/PartThumbTable.tsx:192 msgid "Search..." msgstr "Sök..." @@ -667,28 +976,27 @@ msgstr "Välj paket" msgid "{0} icons" msgstr "{0} ikoner" -#: src/components/forms/fields/RelatedModelField.tsx:318 -#: src/pages/Index/Settings/UserSettings.tsx:96 +#: src/components/forms/fields/RelatedModelField.tsx:319 +#: src/pages/Index/Settings/UserSettings.tsx:97 #: src/tables/Search.tsx:23 msgid "Search" msgstr "Sök" -#: src/components/forms/fields/RelatedModelField.tsx:319 +#: src/components/forms/fields/RelatedModelField.tsx:320 #: src/components/modals/AboutInvenTreeModal.tsx:81 -#: src/components/widgets/WidgetLayout.tsx:120 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:316 msgid "Loading" msgstr "Laddar" -#: src/components/forms/fields/RelatedModelField.tsx:321 +#: src/components/forms/fields/RelatedModelField.tsx:322 msgid "No results found" msgstr "Inga resultat hittades" -#: src/components/forms/fields/TableField.tsx:52 -msgid "modelRenderer entry required for tables" -msgstr "modelRenderer post krävs för tabeller" +#: src/components/forms/fields/TableField.tsx:72 +#~ msgid "modelRenderer entry required for tables" +#~ msgstr "modelRenderer entry required for tables" -#: src/components/forms/fields/TableField.tsx:76 +#: src/components/forms/fields/TableField.tsx:167 msgid "No entries available" msgstr "Inga poster tillgängliga" @@ -741,7 +1049,7 @@ msgid "Filter by row validation status" msgstr "Filtrera efter radvalideringsstatus" #: src/components/importer/ImportDataSelector.tsx:365 -#: src/tables/build/BuildOutputTable.tsx:266 +#: src/tables/build/BuildOutputTable.tsx:407 msgid "Complete" msgstr "Slutförd" @@ -749,20 +1057,21 @@ msgstr "Slutförd" msgid "Filter by row completion status" msgstr "Filtrera efter radvalideringsstatus" -#: src/components/importer/ImportDataSelector.tsx:383 +#: src/components/importer/ImportDataSelector.tsx:384 msgid "Import selected rows" msgstr "Importera markerade rader" -#: src/components/importer/ImportDataSelector.tsx:398 +#: src/components/importer/ImportDataSelector.tsx:399 msgid "Processing Data" msgstr "Bearbetar data" -#: src/components/importer/ImporterColumnSelector.tsx:50 -#: src/components/importer/ImporterColumnSelector.tsx:176 +#: src/components/importer/ImporterColumnSelector.tsx:53 +#: src/components/importer/ImporterColumnSelector.tsx:179 +#: src/components/items/ErrorItem.tsx:12 msgid "An error occurred" msgstr "Ett fel inträffade" -#: src/components/importer/ImporterColumnSelector.tsx:62 +#: src/components/importer/ImporterColumnSelector.tsx:65 msgid "Select column, or leave blank to ignore this field." msgstr "Välj kolumn eller lämna tomt för att ignorera detta fält." @@ -778,51 +1087,51 @@ msgstr "Välj kolumn eller lämna tomt för att ignorera detta fält." #~ msgid "Imported Column Name" #~ msgstr "Imported Column Name" -#: src/components/importer/ImporterColumnSelector.tsx:182 +#: src/components/importer/ImporterColumnSelector.tsx:185 msgid "Ignore this field" msgstr "Ignorera det här fältet" -#: src/components/importer/ImporterColumnSelector.tsx:196 +#: src/components/importer/ImporterColumnSelector.tsx:199 msgid "Mapping data columns to database fields" msgstr "Mappning av datakolumner till databasfält" -#: src/components/importer/ImporterColumnSelector.tsx:201 +#: src/components/importer/ImporterColumnSelector.tsx:204 msgid "Accept Column Mapping" msgstr "Godkänn kolumnmappning" -#: src/components/importer/ImporterColumnSelector.tsx:214 +#: src/components/importer/ImporterColumnSelector.tsx:217 msgid "Database Field" -msgstr "Databas fält" +msgstr "Databasfält" -#: src/components/importer/ImporterColumnSelector.tsx:215 +#: src/components/importer/ImporterColumnSelector.tsx:218 msgid "Field Description" msgstr "Fältbeskrivning" -#: src/components/importer/ImporterColumnSelector.tsx:216 +#: src/components/importer/ImporterColumnSelector.tsx:219 msgid "Imported Column" msgstr "Importerad kolumn" -#: src/components/importer/ImporterColumnSelector.tsx:217 +#: src/components/importer/ImporterColumnSelector.tsx:220 msgid "Default Value" msgstr "Standardvärde" -#: src/components/importer/ImporterDrawer.tsx:44 +#: src/components/importer/ImporterDrawer.tsx:46 msgid "Upload File" msgstr "Ladda upp fil" -#: src/components/importer/ImporterDrawer.tsx:45 +#: src/components/importer/ImporterDrawer.tsx:47 msgid "Map Columns" msgstr "Mappa Kolumner" -#: src/components/importer/ImporterDrawer.tsx:46 +#: src/components/importer/ImporterDrawer.tsx:48 msgid "Import Data" msgstr "Importera data" -#: src/components/importer/ImporterDrawer.tsx:47 +#: src/components/importer/ImporterDrawer.tsx:49 msgid "Process Data" msgstr "Bearbetar data" -#: src/components/importer/ImporterDrawer.tsx:48 +#: src/components/importer/ImporterDrawer.tsx:50 msgid "Complete Import" msgstr "Slutför import" @@ -830,28 +1139,28 @@ msgstr "Slutför import" #~ msgid "Cancel import session" #~ msgstr "Cancel import session" -#: src/components/importer/ImporterDrawer.tsx:104 +#: src/components/importer/ImporterDrawer.tsx:106 msgid "Import Complete" msgstr "Import slutförd" -#: src/components/importer/ImporterDrawer.tsx:107 +#: src/components/importer/ImporterDrawer.tsx:109 msgid "Data has been imported successfully" msgstr "Data har importerats framgångsrikt" -#: src/components/importer/ImporterDrawer.tsx:109 -#: src/components/importer/ImporterDrawer.tsx:118 +#: src/components/importer/ImporterDrawer.tsx:111 +#: src/components/importer/ImporterDrawer.tsx:120 msgid "Close" msgstr "Stäng" -#: src/components/importer/ImporterDrawer.tsx:115 +#: src/components/importer/ImporterDrawer.tsx:117 msgid "Unknown Status" msgstr "Okänd status" -#: src/components/importer/ImporterDrawer.tsx:116 +#: src/components/importer/ImporterDrawer.tsx:118 msgid "Import session has unknown status" msgstr "Importsessionen har okänd status" -#: src/components/importer/ImporterDrawer.tsx:135 +#: src/components/importer/ImporterDrawer.tsx:137 msgid "Importing Data" msgstr "Importerar data" @@ -860,85 +1169,115 @@ msgid "Importing Records" msgstr "Importerar poster" #: src/components/importer/ImporterImportProgress.tsx:39 -msgid "Imported rows" -msgstr "Importerade rader" +#: src/tables/settings/ImportSessionTable.tsx:78 +msgid "Imported Rows" +msgstr "" -#: src/components/items/ActionDropdown.tsx:121 +#: src/components/importer/ImporterImportProgress.tsx:39 +#~ msgid "Imported rows" +#~ msgstr "Imported rows" + +#: src/components/items/ActionDropdown.tsx:126 +msgid "Options" +msgstr "Alternativ" + +#: src/components/items/ActionDropdown.tsx:140 +#~ msgid "View Barcode" +#~ msgstr "View Barcode" + +#: src/components/items/ActionDropdown.tsx:162 +#: src/tables/InvenTreeTableHeader.tsx:159 +#: src/tables/InvenTreeTableHeader.tsx:160 msgid "Barcode Actions" msgstr "Streckkods åtgärder" -#: src/components/items/ActionDropdown.tsx:140 -msgid "View Barcode" -msgstr "Visa streckkod" +#: src/components/items/ActionDropdown.tsx:162 +#~ msgid "Link custom barcode" +#~ msgstr "Link custom barcode" -#: src/components/items/ActionDropdown.tsx:147 +#: src/components/items/ActionDropdown.tsx:167 msgid "View" msgstr "Visa" -#: src/components/items/ActionDropdown.tsx:148 +#: src/components/items/ActionDropdown.tsx:169 msgid "View barcode" msgstr "Visa streckkod" -#: src/components/items/ActionDropdown.tsx:161 +#: src/components/items/ActionDropdown.tsx:175 msgid "Link Barcode" msgstr "Länka streckkod" -#: src/components/items/ActionDropdown.tsx:162 -msgid "Link custom barcode" -msgstr "Länka anpassad streckkod" +#: src/components/items/ActionDropdown.tsx:177 +msgid "Link a custom barcode to this item" +msgstr "" -#: src/components/items/ActionDropdown.tsx:173 -#: src/forms/PurchaseOrderForms.tsx:426 +#: src/components/items/ActionDropdown.tsx:183 +#: src/components/items/QRCode.tsx:193 +#: src/forms/PurchaseOrderForms.tsx:464 msgid "Unlink Barcode" msgstr "Ta bort länk för streckkod" -#: src/components/items/ActionDropdown.tsx:174 +#: src/components/items/ActionDropdown.tsx:185 msgid "Unlink custom barcode" msgstr "Ta bort länk för anpassad streckkod" -#: src/components/items/ActionDropdown.tsx:183 -#: src/tables/RowActions.tsx:33 +#: src/components/items/ActionDropdown.tsx:236 +#: src/tables/RowActions.tsx:39 msgid "Edit" msgstr "Redigera" -#: src/components/items/ActionDropdown.tsx:184 +#: src/components/items/ActionDropdown.tsx:237 msgid "Edit item" -msgstr "" +msgstr "Redigera objekt" -#: src/components/items/ActionDropdown.tsx:196 +#: src/components/items/ActionDropdown.tsx:249 msgid "Delete item" msgstr "Radera objekt" -#: src/components/items/ActionDropdown.tsx:204 -#: src/components/items/ActionDropdown.tsx:205 +#: src/components/items/ActionDropdown.tsx:257 +#: src/components/items/ActionDropdown.tsx:258 msgid "Hold" msgstr "Vänta" -#: src/components/items/ActionDropdown.tsx:227 -#: src/tables/RowActions.tsx:23 +#: src/components/items/ActionDropdown.tsx:280 +#: src/tables/RowActions.tsx:29 msgid "Duplicate" msgstr "Duplicera" -#: src/components/items/ActionDropdown.tsx:228 +#: src/components/items/ActionDropdown.tsx:281 msgid "Duplicate item" msgstr "Duplicera objekt" +#: src/components/items/BarcodeInput.tsx:23 +msgid "Scan barcode data here using barcode scanner" +msgstr "" + +#: src/components/items/BarcodeInput.tsx:24 +#: src/tables/settings/BarcodeScanHistoryTable.tsx:65 +msgid "Barcode" +msgstr "Streckkod" + +#: src/components/items/BarcodeInput.tsx:25 +msgid "Scan" +msgstr "" + #: src/components/items/DocTooltip.tsx:92 +#: src/components/items/GettingStartedCarousel.tsx:20 msgid "Read More" msgstr "Läs mer" -#: src/components/items/ErrorItem.tsx:5 -#: src/tables/InvenTreeTable.tsx:487 +#: src/components/items/ErrorItem.tsx:8 +#: src/tables/InvenTreeTable.tsx:473 msgid "Unknown error" msgstr "Okänt fel" -#: src/components/items/ErrorItem.tsx:10 -msgid "An error occurred:" -msgstr "Ett fel inträffade:" +#: src/components/items/ErrorItem.tsx:13 +#~ msgid "An error occurred:" +#~ msgstr "An error occurred:" #: src/components/items/GettingStartedCarousel.tsx:27 -msgid "Read more" -msgstr "Läs mer" +#~ msgid "Read more" +#~ msgstr "Read more" #: src/components/items/InfoItem.tsx:27 msgid "None" @@ -965,30 +1304,51 @@ msgstr "PLH" msgid "This panel is a placeholder." msgstr "Denna panel är en platshållare." -#: src/components/items/QRCode.tsx:87 +#: src/components/items/QRCode.tsx:89 msgid "Low (7%)" msgstr "Låg (7%)" -#: src/components/items/QRCode.tsx:88 +#: src/components/items/QRCode.tsx:90 msgid "Medium (15%)" msgstr "Medel (15%)" -#: src/components/items/QRCode.tsx:89 +#: src/components/items/QRCode.tsx:91 msgid "Quartile (25%)" msgstr "Kvartil (25%)" -#: src/components/items/QRCode.tsx:90 +#: src/components/items/QRCode.tsx:92 msgid "High (30%)" msgstr "Hög (30%)" -#: src/components/items/QRCode.tsx:107 +#: src/components/items/QRCode.tsx:100 +msgid "Custom barcode" +msgstr "Anpassad streckkod" + +#: src/components/items/QRCode.tsx:101 +msgid "A custom barcode is registered for this item. The shown code is not that custom barcode." +msgstr "" + +#: src/components/items/QRCode.tsx:118 msgid "Barcode Data:" msgstr "Streckkodsdata:" -#: src/components/items/QRCode.tsx:118 +#: src/components/items/QRCode.tsx:129 msgid "Select Error Correction Level" msgstr "Välj felkorrigeringsnivå" +#: src/components/items/QRCode.tsx:171 +#: src/pages/part/PartDetail.tsx:239 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:187 +#: src/pages/sales/ReturnOrderDetail.tsx:157 +#: src/pages/sales/SalesOrderDetail.tsx:169 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:166 +msgid "Link" +msgstr "Länk" + +#: src/components/items/QRCode.tsx:190 +msgid "This will remove the link to the associated barcode" +msgstr "" + #: src/components/modals/AboutInvenTreeModal.tsx:99 msgid "Version Information" msgstr "Versionsinformation" @@ -1062,11 +1422,11 @@ msgstr "Mobilapp" msgid "Submit Bug Report" msgstr "Skicka felrapport" -#: src/components/modals/AboutInvenTreeModal.tsx:183 +#: src/components/modals/AboutInvenTreeModal.tsx:181 msgid "Copy version information" msgstr "Kopiera versionsinformation" -#: src/components/modals/AboutInvenTreeModal.tsx:192 +#: src/components/modals/AboutInvenTreeModal.tsx:189 #: src/components/modals/ServerInfoModal.tsx:147 msgid "Dismiss" msgstr "Avfärda" @@ -1091,61 +1451,20 @@ msgstr "Det gick inte att hämta licensinformation" msgid "{key} Packages" msgstr "{key} Paket" -#: src/components/modals/QrCodeModal.tsx:72 +#: src/components/modals/QrCodeModal.tsx:24 msgid "Unknown response" msgstr "Okänt svar" -#: src/components/modals/QrCodeModal.tsx:102 -#: src/pages/Index/Scan.tsx:636 -msgid "Error while getting camera" -msgstr "Fel vid öppning av kamera" - -#: src/components/modals/QrCodeModal.tsx:125 -#: src/pages/Index/Scan.tsx:659 -msgid "Error while scanning" -msgstr "Fel vid skanning" - -#: src/components/modals/QrCodeModal.tsx:139 -#: src/pages/Index/Scan.tsx:673 -msgid "Error while stopping" -msgstr "Fel vid avbrott" - -#: src/components/modals/QrCodeModal.tsx:154 -#: src/defaults/menuItems.tsx:21 -#: src/pages/Index/Scan.tsx:746 -msgid "Scanning" -msgstr "Scannar" - -#: src/components/modals/QrCodeModal.tsx:154 -#: src/pages/Index/Scan.tsx:746 -msgid "Not scanning" -msgstr "Starta skanning" - -#: src/components/modals/QrCodeModal.tsx:159 -#: src/pages/Index/Scan.tsx:752 -msgid "Select Camera" -msgstr "Välj kamera" - -#: src/components/modals/QrCodeModal.tsx:169 -#: src/pages/Index/Scan.tsx:737 -msgid "Start scanning" -msgstr "Starta skanning" - -#: src/components/modals/QrCodeModal.tsx:176 -#: src/pages/Index/Scan.tsx:729 -msgid "Stop scanning" -msgstr "Stoppa skanning" - -#: src/components/modals/QrCodeModal.tsx:181 +#: src/components/modals/QrCodeModal.tsx:39 msgid "No scans yet!" msgstr "Inga skanningar ännu!" -#: src/components/modals/QrCodeModal.tsx:201 +#: src/components/modals/QrCodeModal.tsx:57 msgid "Close modal" msgstr "Stäng fönstret" #: src/components/modals/ServerInfoModal.tsx:26 -#: src/pages/Index/Settings/SystemSettings.tsx:38 +#: src/pages/Index/Settings/SystemSettings.tsx:37 msgid "Server" msgstr "Server" @@ -1206,6 +1525,7 @@ msgid "Background Worker" msgstr "Bakgrundsarbetare" #: src/components/modals/ServerInfoModal.tsx:101 +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:29 msgid "Background worker not running" msgstr "Bakgrundsarbetare körs inte" @@ -1218,8 +1538,8 @@ msgid "Email settings not configured" msgstr "E-postinställningar har inte konfigurerats" #: src/components/modals/ServerInfoModal.tsx:121 -#: src/tables/plugin/PluginListTable.tsx:144 -#: src/tables/plugin/PluginListTable.tsx:294 +#: src/components/plugins/PluginDrawer.tsx:89 +#: src/tables/plugin/PluginListTable.tsx:116 msgid "Version" msgstr "Version" @@ -1227,7 +1547,7 @@ msgstr "Version" msgid "Server Version" msgstr "Serverversion" -#: src/components/nav/Layout.tsx:73 +#: src/components/nav/Layout.tsx:80 msgid "Nothing found..." msgstr "Ingenting hittades..." @@ -1237,18 +1557,26 @@ msgstr "Ingenting hittades..." #~ msgstr "Profile" #: src/components/nav/MainMenu.tsx:52 +#: src/components/nav/NavigationDrawer.tsx:178 #: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:28 msgid "Settings" msgstr "Inställningar" #: src/components/nav/MainMenu.tsx:59 -#: src/defaults/menuItems.tsx:15 -msgid "Account settings" +#: src/pages/Index/Settings/UserSettings.tsx:152 +msgid "Account Settings" msgstr "Kontoinställningar" +#: src/components/nav/MainMenu.tsx:59 +#: src/defaults/menuItems.tsx:15 +#~ msgid "Account settings" +#~ msgstr "Account settings" + #: src/components/nav/MainMenu.tsx:67 -#: src/defaults/menuItems.tsx:58 -#: src/pages/Index/Settings/SystemSettings.tsx:315 +#: src/components/nav/NavigationDrawer.tsx:141 +#: src/components/nav/SettingsHeader.tsx:49 +#: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:37 +#: src/pages/Index/Settings/SystemSettings.tsx:310 msgid "System Settings" msgstr "Systeminställningar" @@ -1260,14 +1588,11 @@ msgstr "Systeminställningar" #~ msgid "Switch to pseudo language" #~ msgstr "Switch to pseudo language" -#: src/components/nav/MainMenu.tsx:77 -msgid "Change Color Mode" -msgstr "" - #: src/components/nav/MainMenu.tsx:86 -#: src/defaults/actions.tsx:71 -#: src/defaults/menuItems.tsx:63 -#: src/pages/Index/Settings/AdminCenter/Index.tsx:221 +#: src/components/nav/NavigationDrawer.tsx:148 +#: src/components/nav/SettingsHeader.tsx:50 +#: src/defaults/actions.tsx:63 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:251 msgid "Admin Center" msgstr "Admin-center" @@ -1275,458 +1600,732 @@ msgstr "Admin-center" msgid "Logout" msgstr "Logga ut" -#: src/components/nav/NavHoverMenu.tsx:65 -#: src/defaults/actions.tsx:60 -msgid "Open Navigation" -msgstr "Öppna navigering" - #: src/components/nav/NavHoverMenu.tsx:84 -msgid "View all" -msgstr "Visa alla" +#~ msgid "View all" +#~ msgstr "View all" #: src/components/nav/NavHoverMenu.tsx:100 #: src/components/nav/NavHoverMenu.tsx:110 -msgid "Get started" -msgstr "Kom igång" +#~ msgid "Get started" +#~ msgstr "Get started" #: src/components/nav/NavHoverMenu.tsx:103 -msgid "Overview over high-level objects, functions and possible usecases." -msgstr "Översikt över objekt, funktioner och möjliga användningsområden." - -#: src/components/nav/NavigationDrawer.tsx:57 -msgid "Navigation" -msgstr "Navigering" +#~ msgid "Overview over high-level objects, functions and possible usecases." +#~ msgstr "Overview over high-level objects, functions and possible usecases." #: src/components/nav/NavigationDrawer.tsx:60 -msgid "Pages" -msgstr "Sidor" +#~ msgid "Pages" +#~ msgstr "Pages" -#: src/components/nav/NavigationDrawer.tsx:65 -#: src/pages/Index/Settings/AdminCenter/Index.tsx:176 -#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:41 -msgid "Plugins" -msgstr "Plugins" +#: src/components/nav/NavigationDrawer.tsx:77 +#: src/components/render/ModelType.tsx:31 +#: src/defaults/links.tsx:10 +#: src/pages/Index/Settings/SystemSettings.tsx:172 +#: src/pages/part/CategoryDetail.tsx:125 +#: src/pages/part/CategoryDetail.tsx:249 +#: src/pages/part/CategoryDetail.tsx:279 +#: src/pages/part/PartDetail.tsx:856 +msgid "Parts" +msgstr "Artiklar" -#: src/components/nav/NavigationDrawer.tsx:75 -#: src/defaults/actions.tsx:32 -msgid "Documentation" -msgstr "Dokumentation" +#: src/components/nav/NavigationDrawer.tsx:84 +#: src/components/render/Part.tsx:30 +#: src/defaults/links.tsx:11 +#: src/pages/Index/Settings/SystemSettings.tsx:205 +#: src/pages/part/PartDetail.tsx:593 +#: src/pages/stock/LocationDetail.tsx:352 +#: src/pages/stock/StockDetail.tsx:528 +#: src/tables/stock/StockItemTable.tsx:69 +msgid "Stock" +msgstr "Lagersaldo" -#: src/components/nav/NavigationDrawer.tsx:78 -msgid "About" -msgstr "Om" +#: src/components/nav/NavigationDrawer.tsx:91 +#: src/defaults/links.tsx:13 +#: src/pages/build/BuildDetail.tsx:530 +#: src/pages/build/BuildIndex.tsx:36 +msgid "Manufacturing" +msgstr "" -#: src/components/nav/NotificationDrawer.tsx:92 -#: src/pages/Index/Settings/SystemSettings.tsx:109 -#: src/pages/Index/Settings/UserSettings.tsx:126 +#: src/components/nav/NavigationDrawer.tsx:98 +#: src/defaults/links.tsx:18 +#: src/pages/company/ManufacturerDetail.tsx:9 +#: src/pages/company/ManufacturerPartDetail.tsx:258 +#: src/pages/company/SupplierDetail.tsx:9 +#: src/pages/company/SupplierPartDetail.tsx:336 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:480 +#: src/pages/purchasing/PurchasingIndex.tsx:60 +msgid "Purchasing" +msgstr "Inköp" + +#: src/components/nav/NavigationDrawer.tsx:105 +#: src/defaults/links.tsx:22 +#: src/pages/company/CustomerDetail.tsx:9 +#: src/pages/sales/ReturnOrderDetail.tsx:469 +#: src/pages/sales/SalesIndex.tsx:53 +#: src/pages/sales/SalesOrderDetail.tsx:520 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:343 +msgid "Sales" +msgstr "Försäljning" + +#: src/components/nav/NavigationDrawer.tsx:129 +#: src/components/nav/NotificationDrawer.tsx:178 +#: src/pages/Index/Settings/SystemSettings.tsx:110 +#: src/pages/Index/Settings/UserSettings.tsx:127 #: src/pages/Notifications.tsx:65 #: src/pages/Notifications.tsx:151 msgid "Notifications" msgstr "Notifikationer" -#: src/components/nav/NotificationDrawer.tsx:94 -msgid "Mark all as read" -msgstr "" +#: src/components/nav/NavigationDrawer.tsx:135 +#: src/components/nav/SettingsHeader.tsx:48 +msgid "User Settings" +msgstr "Användarinställningar" -#: src/components/nav/NotificationDrawer.tsx:104 +#: src/components/nav/NavigationDrawer.tsx:173 +msgid "Navigation" +msgstr "Navigering" + +#: src/components/nav/NavigationDrawer.tsx:183 +#: src/forms/PurchaseOrderForms.tsx:689 +#: src/forms/StockForms.tsx:614 +#: src/forms/StockForms.tsx:651 +#: src/forms/StockForms.tsx:677 +#: src/forms/StockForms.tsx:705 +#: src/forms/StockForms.tsx:736 +#: src/forms/StockForms.tsx:771 +#: src/forms/StockForms.tsx:813 +#: src/forms/StockForms.tsx:851 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:413 +#: src/tables/RowActions.tsx:129 +#: src/tables/build/BuildLineTable.tsx:101 +msgid "Actions" +msgstr "Åtgärder" + +#: src/components/nav/NavigationDrawer.tsx:191 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:205 +#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:44 +msgid "Plugins" +msgstr "Plugins" + +#: src/components/nav/NavigationDrawer.tsx:204 +#: src/defaults/actions.tsx:24 +msgid "Documentation" +msgstr "Dokumentation" + +#: src/components/nav/NavigationDrawer.tsx:210 +msgid "About" +msgstr "Om" + +#: src/components/nav/NotificationDrawer.tsx:180 +msgid "Mark all as read" +msgstr "Markera alla som lästa" + +#: src/components/nav/NotificationDrawer.tsx:190 msgid "View all notifications" msgstr "" -#: src/components/nav/NotificationDrawer.tsx:123 +#: src/components/nav/NotificationDrawer.tsx:210 msgid "You have no unread notifications." msgstr "Du har inga olästa aviseringar." -#: src/components/nav/NotificationDrawer.tsx:139 -#: src/components/nav/NotificationDrawer.tsx:145 -#: src/tables/notifications/NotificationsTable.tsx:36 -msgid "Notification" -msgstr "Avisering" - -#: src/components/nav/NotificationDrawer.tsx:168 -#: src/pages/Notifications.tsx:73 -msgid "Mark as read" -msgstr "Markera som läst" - -#: src/components/nav/SearchDrawer.tsx:78 +#: src/components/nav/SearchDrawer.tsx:85 msgid "results" msgstr "resultat" -#: src/components/nav/SearchDrawer.tsx:370 +#: src/components/nav/SearchDrawer.tsx:380 msgid "Enter search text" msgstr "Ange sökord" -#: src/components/nav/SearchDrawer.tsx:397 +#: src/components/nav/SearchDrawer.tsx:391 +msgid "Refresh search results" +msgstr "" + +#: src/components/nav/SearchDrawer.tsx:402 +#: src/components/nav/SearchDrawer.tsx:409 msgid "Search Options" msgstr "Sökalternativ" -#: src/components/nav/SearchDrawer.tsx:400 +#: src/components/nav/SearchDrawer.tsx:412 msgid "Regex search" msgstr "Regex sökning" -#: src/components/nav/SearchDrawer.tsx:410 +#: src/components/nav/SearchDrawer.tsx:421 msgid "Whole word search" msgstr "Hela ordsökningen" -#: src/components/nav/SearchDrawer.tsx:451 +#: src/components/nav/SearchDrawer.tsx:461 msgid "An error occurred during search query" msgstr "Ett fel inträffade under sökfrågan" #: src/components/nav/SearchDrawer.tsx:462 -msgid "No results" +#~ msgid "No results" +#~ msgstr "No results" + +#: src/components/nav/SearchDrawer.tsx:472 +#: src/tables/part/PartTestTemplateTable.tsx:76 +msgid "No Results" msgstr "Inga resultat" -#: src/components/nav/SearchDrawer.tsx:465 +#: src/components/nav/SearchDrawer.tsx:475 msgid "No results available for search query" msgstr "Inga resultat tillgängliga för sökfrågan" -#: src/components/render/Instance.tsx:217 +#: src/components/panels/AttachmentPanel.tsx:18 +msgid "Attachments" +msgstr "Bilagor" + +#: src/components/panels/NotesPanel.tsx:24 +#: src/tables/build/BuildOrderTestTable.tsx:143 +#: src/tables/stock/StockTrackingTable.tsx:204 +msgid "Notes" +msgstr "Anteckningar" + +#: src/components/plugins/PluginDrawer.tsx:47 +msgid "Plugin Inactive" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:50 +msgid "Plugin is not active" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:60 +msgid "Plugin Information" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:74 +#: src/pages/build/BuildDetail.tsx:116 +#: src/pages/company/CompanyDetail.tsx:89 +#: src/pages/company/ManufacturerPartDetail.tsx:89 +#: src/pages/company/ManufacturerPartDetail.tsx:116 +#: src/pages/company/SupplierPartDetail.tsx:140 +#: src/pages/part/CategoryDetail.tsx:101 +#: src/pages/part/PartDetail.tsx:178 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:136 +#: src/pages/sales/ReturnOrderDetail.tsx:107 +#: src/pages/sales/SalesOrderDetail.tsx:116 +#: src/pages/stock/LocationDetail.tsx:103 +#: src/tables/ColumnRenderers.tsx:92 +#: src/tables/bom/UsedInTable.tsx:44 +#: src/tables/build/BuildAllocatedStockTable.tsx:83 +#: src/tables/build/BuildLineTable.tsx:329 +#: src/tables/machine/MachineTypeTable.tsx:74 +#: src/tables/machine/MachineTypeTable.tsx:129 +#: src/tables/machine/MachineTypeTable.tsx:240 +#: src/tables/machine/MachineTypeTable.tsx:344 +#: src/tables/part/RelatedPartTable.tsx:66 +#: src/tables/plugin/PluginListTable.tsx:99 +#: src/tables/sales/SalesOrderAllocationTable.tsx:87 +#: src/tables/sales/SalesOrderLineItemTable.tsx:75 +#: src/tables/stock/LocationTypesTable.tsx:74 +msgid "Description" +msgstr "Beskrivning" + +#: src/components/plugins/PluginDrawer.tsx:79 +msgid "Author" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:84 +#: src/pages/part/PartSchedulingDetail.tsx:277 +#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:40 +#: src/pages/part/pricing/SaleHistoryPanel.tsx:38 +#: src/tables/ColumnRenderers.tsx:215 +#: src/tables/build/BuildOrderTestTable.tsx:151 +#: src/tables/settings/StocktakeReportTable.tsx:40 +msgid "Date" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:94 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:398 +#: src/pages/part/PartDetail.tsx:331 +#: src/tables/bom/UsedInTable.tsx:84 +#: src/tables/company/CompanyTable.tsx:62 +#: src/tables/company/CompanyTable.tsx:96 +#: src/tables/machine/MachineListTable.tsx:333 +#: src/tables/machine/MachineListTable.tsx:605 +#: src/tables/part/ParametricPartTable.tsx:223 +#: src/tables/part/PartTable.tsx:178 +#: src/tables/part/PartVariantTable.tsx:15 +#: src/tables/plugin/PluginListTable.tsx:94 +#: src/tables/plugin/PluginListTable.tsx:401 +#: src/tables/purchasing/SupplierPartTable.tsx:100 +#: src/tables/purchasing/SupplierPartTable.tsx:190 +#: src/tables/settings/UserTable.tsx:283 +#: src/tables/stock/StockItemTable.tsx:293 +msgid "Active" +msgstr "Aktiv" + +#: src/components/plugins/PluginDrawer.tsx:106 +msgid "Package Name" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:112 +msgid "Installation Path" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:117 +#: src/tables/machine/MachineTypeTable.tsx:152 +#: src/tables/machine/MachineTypeTable.tsx:276 +#: src/tables/plugin/PluginListTable.tsx:406 +msgid "Builtin" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:122 +msgid "Package" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:134 +#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:53 +msgid "Plugin Settings" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:146 +#: src/components/render/ModelType.tsx:276 +msgid "Plugin Configuration" +msgstr "Plugin-konfiguration" + +#: src/components/plugins/PluginPanel.tsx:87 +#~ msgid "Error occurred while rendering plugin content" +#~ msgstr "Error occurred while rendering plugin content" + +#: src/components/plugins/PluginPanel.tsx:91 +#~ msgid "Plugin did not provide panel rendering function" +#~ msgstr "Plugin did not provide panel rendering function" + +#: src/components/plugins/PluginPanel.tsx:103 +#~ msgid "No content provided for this plugin" +#~ msgstr "No content provided for this plugin" + +#: src/components/plugins/PluginPanel.tsx:116 +#: src/components/plugins/PluginSettingsPanel.tsx:76 +#~ msgid "Error Loading Plugin" +#~ msgstr "Error Loading Plugin" + +#: src/components/plugins/PluginSettingsPanel.tsx:51 +#~ msgid "Error occurred while rendering plugin settings" +#~ msgstr "Error occurred while rendering plugin settings" + +#: src/components/plugins/PluginSettingsPanel.tsx:55 +#~ msgid "Plugin did not provide settings rendering function" +#~ msgstr "Plugin did not provide settings rendering function" + +#: src/components/plugins/PluginUIFeature.tsx:100 +msgid "Error occurred while rendering the template editor." +msgstr "" + +#: src/components/plugins/PluginUIFeature.tsx:111 +msgid "Error Loading Plugin Editor" +msgstr "" + +#: src/components/plugins/PluginUIFeature.tsx:147 +msgid "Error occurred while rendering the template preview." +msgstr "" + +#: src/components/plugins/PluginUIFeature.tsx:158 +msgid "Error Loading Plugin Preview" +msgstr "" + +#: src/components/plugins/RemoteComponent.tsx:70 +msgid "Invalid source or function name" +msgstr "" + +#: src/components/plugins/RemoteComponent.tsx:91 +msgid "Error Loading Content" +msgstr "" + +#: src/components/plugins/RemoteComponent.tsx:95 +msgid "Error occurred while loading plugin content" +msgstr "" + +#: src/components/render/Instance.tsx:224 msgid "Unknown model: {model}" msgstr "Okänd modell: {model}" -#: src/components/render/ModelType.tsx:22 -#: src/forms/BuildForms.tsx:213 -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/forms/StockForms.tsx:499 -#: src/forms/StockForms.tsx:533 -#: src/forms/StockForms.tsx:562 -#: src/forms/StockForms.tsx:590 -#: src/forms/StockForms.tsx:621 -#: src/forms/StockForms.tsx:656 -#: src/forms/StockForms.tsx:698 -#: src/forms/StockForms.tsx:734 -#: src/pages/build/BuildDetail.tsx:95 -#: src/pages/part/PartDetail.tsx:1073 -#: src/tables/build/BuildAllocatedStockTable.tsx:82 +#: src/components/render/ModelType.tsx:30 +#: src/forms/BuildForms.tsx:269 +#: src/forms/BuildForms.tsx:337 +#: src/forms/BuildForms.tsx:385 +#: src/forms/BuildForms.tsx:515 +#: src/forms/PurchaseOrderForms.tsx:689 +#: src/forms/ReturnOrderForms.tsx:190 +#: src/forms/SalesOrderForms.tsx:248 +#: src/forms/StockForms.tsx:261 +#: src/forms/StockForms.tsx:614 +#: src/forms/StockForms.tsx:651 +#: src/forms/StockForms.tsx:677 +#: src/forms/StockForms.tsx:705 +#: src/forms/StockForms.tsx:736 +#: src/forms/StockForms.tsx:771 +#: src/forms/StockForms.tsx:813 +#: src/forms/StockForms.tsx:851 +#: src/pages/build/BuildDetail.tsx:90 +#: src/pages/part/PartDetail.tsx:1094 +#: src/tables/build/BuildAllocatedStockTable.tsx:95 +#: src/tables/build/BuildLineTable.tsx:72 #: src/tables/part/PartTable.tsx:28 -#: src/tables/part/RelatedPartTable.tsx:45 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:88 -#: src/tables/sales/SalesOrderAllocationTable.tsx:68 -#: src/tables/stock/StockTrackingTable.tsx:74 +#: src/tables/part/RelatedPartTable.tsx:47 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:130 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:100 +#: src/tables/sales/SalesOrderAllocationTable.tsx:99 +#: src/tables/stock/StockTrackingTable.tsx:78 msgid "Part" msgstr "Artkel" -#: src/components/render/ModelType.tsx:23 -#: src/defaults/links.tsx:29 -#: src/defaults/menuItems.tsx:33 -#: src/pages/Index/Settings/SystemSettings.tsx:173 -#: src/pages/part/CategoryDetail.tsx:119 -#: src/pages/part/CategoryDetail.tsx:244 -#: src/pages/part/CategoryDetail.tsx:274 -#: src/pages/part/PartDetail.tsx:827 -msgid "Parts" -msgstr "Artiklar" - -#: src/components/render/ModelType.tsx:31 +#: src/components/render/ModelType.tsx:40 msgid "Part Parameter Template" msgstr "Parametermall för Artiklar" -#: src/components/render/ModelType.tsx:32 +#: src/components/render/ModelType.tsx:41 msgid "Part Parameter Templates" msgstr "Parametermallar för Artiklar" -#: src/components/render/ModelType.tsx:38 +#: src/components/render/ModelType.tsx:48 msgid "Part Test Template" msgstr "Testmall för artikel" -#: src/components/render/ModelType.tsx:39 +#: src/components/render/ModelType.tsx:49 msgid "Part Test Templates" msgstr "Testmall för artiklar" -#: src/components/render/ModelType.tsx:45 -#: src/pages/company/SupplierPartDetail.tsx:203 -#: src/pages/company/SupplierPartDetail.tsx:375 -#: src/pages/stock/StockDetail.tsx:173 -#: src/tables/build/BuildAllocatedStockTable.tsx:131 +#: src/components/render/ModelType.tsx:56 +#: src/pages/company/SupplierPartDetail.tsx:364 +#: src/pages/stock/StockDetail.tsx:194 +#: src/tables/build/BuildAllocatedStockTable.tsx:152 #: src/tables/part/PartPurchaseOrdersTable.tsx:49 -#: src/tables/purchasing/SupplierPartTable.tsx:68 +#: src/tables/purchasing/SupplierPartTable.tsx:70 +#: src/tables/stock/StockItemTable.tsx:229 msgid "Supplier Part" msgstr "Leverantörsartikel" -#: src/components/render/ModelType.tsx:46 +#: src/components/render/ModelType.tsx:57 msgid "Supplier Parts" msgstr "Leverantörsartikel" -#: src/components/render/ModelType.tsx:54 -#: src/pages/company/ManufacturerPartDetail.tsx:132 +#: src/components/render/ModelType.tsx:66 #: src/tables/part/PartPurchaseOrdersTable.tsx:55 +#: src/tables/stock/StockItemTable.tsx:234 msgid "Manufacturer Part" msgstr "Tillverkarens artiklar" -#: src/components/render/ModelType.tsx:55 +#: src/components/render/ModelType.tsx:67 msgid "Manufacturer Parts" msgstr "Tillverkarens artiklar" -#: src/components/render/ModelType.tsx:63 -#: src/pages/part/CategoryDetail.tsx:305 +#: src/components/render/ModelType.tsx:76 +#: src/pages/part/CategoryDetail.tsx:310 msgid "Part Category" msgstr "Artikel Kategori" -#: src/components/render/ModelType.tsx:64 -#: src/pages/part/CategoryDetail.tsx:258 -#: src/pages/part/CategoryDetail.tsx:296 -#: src/pages/part/PartDetail.tsx:1063 +#: src/components/render/ModelType.tsx:77 +#: src/pages/part/CategoryDetail.tsx:263 +#: src/pages/part/CategoryDetail.tsx:301 +#: src/pages/part/PartDetail.tsx:1084 msgid "Part Categories" msgstr "Artikelkategorier" -#: src/components/render/ModelType.tsx:72 -#: src/pages/stock/StockDetail.tsx:624 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:94 -#: src/tables/stock/StockTrackingTable.tsx:45 +#: src/components/render/ModelType.tsx:86 +#: src/forms/BuildForms.tsx:337 +#: src/forms/BuildForms.tsx:385 +#: src/forms/BuildForms.tsx:515 +#: src/forms/SalesOrderForms.tsx:248 +#: src/pages/stock/StockDetail.tsx:839 +#: src/tables/stock/StockTrackingTable.tsx:49 msgid "Stock Item" msgstr "Lager artikel" -#: src/components/render/ModelType.tsx:73 +#: src/components/render/ModelType.tsx:87 #: src/pages/company/CompanyDetail.tsx:203 -#: src/pages/stock/LocationDetail.tsx:128 -#: src/pages/stock/LocationDetail.tsx:181 -#: src/pages/stock/LocationDetail.tsx:395 +#: src/pages/part/PartStocktakeDetail.tsx:113 +#: src/pages/stock/LocationDetail.tsx:122 +#: src/pages/stock/LocationDetail.tsx:175 +#: src/pages/stock/LocationDetail.tsx:380 msgid "Stock Items" msgstr "Artikel i lager" -#: src/components/render/ModelType.tsx:81 +#: src/components/render/ModelType.tsx:96 msgid "Stock Location" msgstr "Lagerplats" -#: src/components/render/ModelType.tsx:82 -#: src/pages/stock/LocationDetail.tsx:195 -#: src/pages/stock/LocationDetail.tsx:387 -#: src/pages/stock/StockDetail.tsx:616 +#: src/components/render/ModelType.tsx:97 +#: src/pages/stock/LocationDetail.tsx:189 +#: src/pages/stock/LocationDetail.tsx:372 +#: src/pages/stock/StockDetail.tsx:831 msgid "Stock Locations" msgstr "Lagerplats" -#: src/components/render/ModelType.tsx:90 +#: src/components/render/ModelType.tsx:106 msgid "Stock Location Type" msgstr "Lagerplatstyper" -#: src/components/render/ModelType.tsx:91 +#: src/components/render/ModelType.tsx:107 msgid "Stock Location Types" msgstr "Lagerplatstyper" -#: src/components/render/ModelType.tsx:95 +#: src/components/render/ModelType.tsx:112 +#: src/pages/part/PartDetail.tsx:712 msgid "Stock History" msgstr "Lagerhistorik" -#: src/components/render/ModelType.tsx:96 +#: src/components/render/ModelType.tsx:113 msgid "Stock Histories" msgstr "Lagerhistorik" -#: src/components/render/ModelType.tsx:100 -#: src/defaults/links.tsx:31 -#: src/defaults/menuItems.tsx:43 +#: src/components/render/ModelType.tsx:118 msgid "Build" msgstr "Bygg" -#: src/components/render/ModelType.tsx:101 +#: src/components/render/ModelType.tsx:119 msgid "Builds" msgstr "Tillverkningar" -#: src/components/render/ModelType.tsx:109 +#: src/components/render/ModelType.tsx:128 msgid "Build Line" msgstr "Tillverknings rad" -#: src/components/render/ModelType.tsx:110 +#: src/components/render/ModelType.tsx:129 msgid "Build Lines" msgstr "Tillverknings rader" -#: src/components/render/ModelType.tsx:117 +#: src/components/render/ModelType.tsx:137 msgid "Build Item" msgstr "Tillverknings artikel" -#: src/components/render/ModelType.tsx:118 +#: src/components/render/ModelType.tsx:138 msgid "Build Items" msgstr "Tillverknings artiklar" -#: src/components/render/ModelType.tsx:122 -#: src/pages/company/CompanyDetail.tsx:339 +#: src/components/render/ModelType.tsx:143 +#: src/pages/company/CompanyDetail.tsx:321 msgid "Company" msgstr "Företag" -#: src/components/render/ModelType.tsx:123 +#: src/components/render/ModelType.tsx:144 msgid "Companies" msgstr "Företag" -#: src/components/render/ModelType.tsx:131 +#: src/components/render/ModelType.tsx:153 +#: src/pages/build/BuildDetail.tsx:195 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:204 +#: src/pages/sales/ReturnOrderDetail.tsx:174 +#: src/pages/sales/SalesOrderDetail.tsx:186 #: src/tables/TableHoverCard.tsx:81 -#: src/tables/build/BuildOrderTable.tsx:140 -#: src/tables/purchasing/PurchaseOrderTable.tsx:64 -#: src/tables/sales/ReturnOrderTable.tsx:55 -#: src/tables/sales/SalesOrderTable.tsx:62 +#: src/tables/build/BuildOrderTable.tsx:135 +#: src/tables/purchasing/PurchaseOrderTable.tsx:69 +#: src/tables/sales/ReturnOrderTable.tsx:67 +#: src/tables/sales/SalesOrderTable.tsx:67 msgid "Project Code" msgstr "Projektkod" -#: src/components/render/ModelType.tsx:132 -#: src/pages/Index/Settings/AdminCenter/Index.tsx:128 +#: src/components/render/ModelType.tsx:154 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:145 msgid "Project Codes" msgstr "Projektkoder" -#: src/components/render/ModelType.tsx:138 +#: src/components/render/ModelType.tsx:161 #: src/pages/part/pricing/PurchaseHistoryPanel.tsx:32 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:480 -#: src/tables/part/PartPurchaseOrdersTable.tsx:32 -#: src/tables/stock/StockTrackingTable.tsx:107 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:477 +#: src/pages/stock/StockDetail.tsx:253 +#: src/tables/part/PartPurchaseOrdersTable.tsx:31 +#: src/tables/stock/StockItemTable.tsx:222 +#: src/tables/stock/StockTrackingTable.tsx:111 msgid "Purchase Order" msgstr "Inköpsorder" -#: src/components/render/ModelType.tsx:139 -#: src/pages/Index/Settings/SystemSettings.tsx:255 +#: src/components/render/ModelType.tsx:162 +#: src/pages/Index/Settings/SystemSettings.tsx:249 #: src/pages/company/CompanyDetail.tsx:196 -#: src/pages/company/SupplierPartDetail.tsx:237 -#: src/pages/part/PartDetail.tsx:662 +#: src/pages/company/SupplierPartDetail.tsx:249 +#: src/pages/part/PartDetail.tsx:683 #: src/pages/purchasing/PurchasingIndex.tsx:25 msgid "Purchase Orders" msgstr "Inköpsorder" -#: src/components/render/ModelType.tsx:147 +#: src/components/render/ModelType.tsx:171 msgid "Purchase Order Line" msgstr "Inköpsorderrad" -#: src/components/render/ModelType.tsx:148 +#: src/components/render/ModelType.tsx:172 msgid "Purchase Order Lines" msgstr "Inköpsorderrader" -#: src/components/render/ModelType.tsx:152 -#: src/pages/build/BuildDetail.tsx:153 -#: src/pages/sales/SalesOrderDetail.tsx:520 -#: src/pages/stock/StockDetail.tsx:221 -#: src/tables/sales/SalesOrderAllocationTable.tsx:50 -#: src/tables/stock/StockTrackingTable.tsx:118 +#: src/components/render/ModelType.tsx:177 +#: src/pages/build/BuildDetail.tsx:148 +#: src/pages/part/pricing/SaleHistoryPanel.tsx:24 +#: src/pages/sales/SalesOrderDetail.tsx:515 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:92 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:341 +#: src/pages/stock/StockDetail.tsx:262 +#: src/tables/sales/SalesOrderAllocationTable.tsx:80 +#: src/tables/stock/StockTrackingTable.tsx:122 msgid "Sales Order" msgstr "Försäljningsorder" -#: src/components/render/ModelType.tsx:153 -#: src/pages/Index/Settings/SystemSettings.tsx:270 +#: src/components/render/ModelType.tsx:178 +#: src/pages/Index/Settings/SystemSettings.tsx:264 #: src/pages/company/CompanyDetail.tsx:216 -#: src/pages/part/PartDetail.tsx:669 +#: src/pages/part/PartDetail.tsx:695 #: src/pages/sales/SalesIndex.tsx:26 msgid "Sales Orders" msgstr "Försäljningsorder" -#: src/components/render/ModelType.tsx:161 +#: src/components/render/ModelType.tsx:187 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:340 msgid "Sales Order Shipment" msgstr "Försäljningsorder leverans" -#: src/components/render/ModelType.tsx:162 +#: src/components/render/ModelType.tsx:188 msgid "Sales Order Shipments" msgstr "Försäljningsorder leveranser" -#: src/components/render/ModelType.tsx:168 -#: src/pages/sales/ReturnOrderDetail.tsx:469 -#: src/tables/stock/StockTrackingTable.tsx:129 +#: src/components/render/ModelType.tsx:195 +#: src/pages/sales/ReturnOrderDetail.tsx:464 +#: src/tables/stock/StockTrackingTable.tsx:133 msgid "Return Order" msgstr "Returorder" -#: src/components/render/ModelType.tsx:169 -#: src/pages/Index/Settings/SystemSettings.tsx:286 +#: src/components/render/ModelType.tsx:196 +#: src/pages/Index/Settings/SystemSettings.tsx:280 #: src/pages/company/CompanyDetail.tsx:223 +#: src/pages/part/PartDetail.tsx:702 #: src/pages/sales/SalesIndex.tsx:32 msgid "Return Orders" msgstr "Returorder" -#: src/components/render/ModelType.tsx:177 +#: src/components/render/ModelType.tsx:205 msgid "Return Order Line Item" msgstr "Rad för returorder" -#: src/components/render/ModelType.tsx:178 +#: src/components/render/ModelType.tsx:206 msgid "Return Order Line Items" msgstr "Rad för returordrar" -#: src/components/render/ModelType.tsx:182 -#: src/tables/company/AddressTable.tsx:47 +#: src/components/render/ModelType.tsx:211 +#: src/tables/company/AddressTable.tsx:48 msgid "Address" msgstr "Adress" -#: src/components/render/ModelType.tsx:183 -#: src/pages/company/CompanyDetail.tsx:253 +#: src/components/render/ModelType.tsx:212 +#: src/pages/company/CompanyDetail.tsx:255 msgid "Addresses" msgstr "Adresser" -#: src/components/render/ModelType.tsx:189 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:195 -#: src/pages/sales/ReturnOrderDetail.tsx:174 -#: src/pages/sales/SalesOrderDetail.tsx:183 +#: src/components/render/ModelType.tsx:219 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:196 +#: src/pages/sales/ReturnOrderDetail.tsx:166 +#: src/pages/sales/SalesOrderDetail.tsx:178 msgid "Contact" msgstr "Kontakt" -#: src/components/render/ModelType.tsx:190 -#: src/pages/company/CompanyDetail.tsx:247 +#: src/components/render/ModelType.tsx:220 +#: src/pages/company/CompanyDetail.tsx:249 msgid "Contacts" msgstr "Kontakter" -#: src/components/render/ModelType.tsx:196 +#: src/components/render/ModelType.tsx:227 msgid "Owner" msgstr "Ägare" -#: src/components/render/ModelType.tsx:197 +#: src/components/render/ModelType.tsx:228 msgid "Owners" msgstr "Ägare" -#: src/components/render/ModelType.tsx:203 -#: src/tables/settings/ImportSessionTable.tsx:121 -#: src/tables/stock/StockItemTestResultTable.tsx:198 -#: src/tables/stock/StockTrackingTable.tsx:195 +#: src/components/render/ModelType.tsx:234 +#~ msgid "Purchase Order Line Item" +#~ msgstr "Purchase Order Line Item" + +#: src/components/render/ModelType.tsx:235 +#: src/tables/settings/BarcodeScanHistoryTable.tsx:80 +#: src/tables/settings/BarcodeScanHistoryTable.tsx:211 +#: src/tables/settings/ImportSessionTable.tsx:120 +#: src/tables/settings/StocktakeReportTable.tsx:44 +#: src/tables/stock/StockItemTestResultTable.tsx:204 +#: src/tables/stock/StockTrackingTable.tsx:181 +#: src/tables/stock/StockTrackingTable.tsx:210 msgid "User" msgstr "Användare" -#: src/components/render/ModelType.tsx:204 -#: src/pages/Index/Settings/AdminCenter/Index.tsx:98 +#: src/components/render/ModelType.tsx:236 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:109 #: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:13 msgid "Users" msgstr "Användare" -#: src/components/render/ModelType.tsx:210 +#: src/components/render/ModelType.tsx:243 msgid "Group" msgstr "Grupp" -#: src/components/render/ModelType.tsx:211 +#: src/components/render/ModelType.tsx:244 #: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:20 -#: src/tables/settings/UserTable.tsx:138 -#: src/tables/settings/UserTable.tsx:201 +#: src/tables/settings/UserTable.tsx:137 +#: src/tables/settings/UserTable.tsx:200 msgid "Groups" msgstr "Grupper" -#: src/components/render/ModelType.tsx:218 +#: src/components/render/ModelType.tsx:252 msgid "Import Session" msgstr "" -#: src/components/render/ModelType.tsx:219 +#: src/components/render/ModelType.tsx:253 msgid "Import Sessions" msgstr "" -#: src/components/render/ModelType.tsx:225 +#: src/components/render/ModelType.tsx:260 msgid "Label Template" msgstr "Etikettmall" -#: src/components/render/ModelType.tsx:226 -#: src/pages/Index/Settings/AdminCenter/Index.tsx:158 +#: src/components/render/ModelType.tsx:261 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:187 msgid "Label Templates" msgstr "Etikettmallar" -#: src/components/render/ModelType.tsx:232 +#: src/components/render/ModelType.tsx:264 +#~ msgid "Unknown Model" +#~ msgstr "Unknown Model" + +#: src/components/render/ModelType.tsx:268 msgid "Report Template" msgstr "Rapportmall" -#: src/components/render/ModelType.tsx:233 -#: src/pages/Index/Settings/AdminCenter/Index.tsx:164 +#: src/components/render/ModelType.tsx:269 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:193 msgid "Report Templates" msgstr "Rapportmallar" -#: src/components/render/ModelType.tsx:239 -msgid "Plugin Configuration" -msgstr "Plugin-konfiguration" - -#: src/components/render/ModelType.tsx:240 +#: src/components/render/ModelType.tsx:277 msgid "Plugin Configurations" msgstr "Plugin-konfigurationer" +#: src/components/render/ModelType.tsx:284 +msgid "Content Type" +msgstr "Innehållstyp" + +#: src/components/render/ModelType.tsx:285 +msgid "Content Types" +msgstr "Innehållstyper" + +#: src/components/render/ModelType.tsx:291 +#: src/tables/machine/MachineListTable.tsx:351 +#: src/tables/machine/MachineTypeTable.tsx:282 +msgid "Errors" +msgstr "" + +#: src/components/render/ModelType.tsx:307 +#~ msgid "Purchase Order Line Items" +#~ msgstr "Purchase Order Line Items" + +#: src/components/render/ModelType.tsx:337 +#~ msgid "Unknown Models" +#~ msgstr "Unknown Models" + #: src/components/render/Order.tsx:121 +#: src/tables/sales/SalesOrderAllocationTable.tsx:136 msgid "Shipment" msgstr "Frakt" #: src/components/render/Part.tsx:25 #: src/components/render/Plugin.tsx:17 -#: src/pages/company/CompanyDetail.tsx:325 -#: src/pages/company/SupplierPartDetail.tsx:360 -#: src/pages/part/PartDetail.tsx:879 +#: src/pages/company/CompanyDetail.tsx:307 +#: src/pages/company/SupplierPartDetail.tsx:349 +#: src/pages/part/PartDetail.tsx:911 msgid "Inactive" msgstr "Inaktiv" @@ -1736,39 +2335,38 @@ msgstr "Inaktiv" msgid "No stock" msgstr "Inget på lager" -#: src/components/render/Part.tsx:30 -#: src/defaults/links.tsx:30 -#: src/defaults/menuItems.tsx:38 -#: src/pages/Index/Settings/SystemSettings.tsx:206 -#: src/pages/part/PartDetail.tsx:543 -#: src/pages/stock/LocationDetail.tsx:367 -#: src/pages/stock/StockDetail.tsx:411 -#: src/tables/stock/StockItemTable.tsx:68 -msgid "Stock" -msgstr "Lagersaldo" - -#: src/components/render/Stock.tsx:60 -#: src/pages/stock/StockDetail.tsx:150 -#: src/pages/stock/StockDetail.tsx:581 -#: src/tables/build/BuildAllocatedStockTable.tsx:102 -#: src/tables/sales/SalesOrderAllocationTable.tsx:80 +#: src/components/render/Stock.tsx:61 +#: src/forms/ReturnOrderForms.tsx:190 +#: src/pages/stock/StockDetail.tsx:166 +#: src/pages/stock/StockDetail.tsx:771 +#: src/tables/build/BuildAllocatedStockTable.tsx:123 +#: src/tables/build/BuildOutputTable.tsx:81 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:114 +#: src/tables/sales/SalesOrderAllocationTable.tsx:106 msgid "Serial Number" msgstr "Serienummer" -#: src/components/render/Stock.tsx:62 -#: src/forms/BuildForms.tsx:218 -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/pages/part/pricing/BomPricingPanel.tsx:109 +#: src/components/render/Stock.tsx:63 +#: src/forms/BuildForms.tsx:206 +#: src/forms/BuildForms.tsx:515 +#: src/forms/PurchaseOrderForms.tsx:689 +#: src/forms/SalesOrderForms.tsx:248 +#: src/pages/part/PartSchedulingDetail.tsx:80 +#: src/pages/part/PartStocktakeDetail.tsx:60 +#: src/pages/part/PartStocktakeDetail.tsx:234 +#: src/pages/part/PartStocktakeDetail.tsx:252 +#: src/pages/part/pricing/BomPricingPanel.tsx:148 #: src/pages/part/pricing/PriceBreakPanel.tsx:89 -#: src/pages/part/pricing/PriceBreakPanel.tsx:171 -#: src/pages/stock/StockDetail.tsx:145 -#: src/pages/stock/StockDetail.tsx:587 -#: src/tables/build/BuildOrderTestTable.tsx:197 -#: src/tables/part/PartPurchaseOrdersTable.tsx:92 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:143 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:171 +#: src/pages/part/pricing/PriceBreakPanel.tsx:172 +#: src/pages/stock/StockDetail.tsx:161 +#: src/pages/stock/StockDetail.tsx:777 +#: src/tables/build/BuildLineTable.tsx:79 +#: src/tables/build/BuildOrderTestTable.tsx:198 +#: src/tables/part/PartPurchaseOrdersTable.tsx:93 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:146 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:177 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:77 -#: src/tables/stock/StockTrackingTable.tsx:59 +#: src/tables/stock/StockTrackingTable.tsx:63 msgid "Quantity" msgstr "Antal" @@ -1842,10 +2440,6 @@ msgstr "Inga inställningar angivna" #~ msgid "Required Part" #~ msgstr "Required Part" -#: src/components/tables/build/BuildLineTable.tsx:152 -#~ msgid "Required Quantity" -#~ msgstr "Required Quantity" - #: src/components/tables/build/BuildOrderTable.tsx:52 #~ msgid "Progress" #~ msgstr "Progress" @@ -2126,14 +2720,6 @@ msgstr "Inga inställningar angivna" #~ msgid "user deleted" #~ msgstr "user deleted" -#: src/components/tables/settings/UserTable.tsx:168 -#~ msgid "First Name" -#~ msgstr "First Name" - -#: src/components/tables/settings/UserTable.tsx:173 -#~ msgid "Last Name" -#~ msgstr "Last Name" - #: src/components/tables/stock/StockItemTable.tsx:247 #~ msgid "Test Filter" #~ msgstr "Test Filter" @@ -2146,36 +2732,21 @@ msgstr "Inga inställningar angivna" #~ msgid "Stock location updated" #~ msgstr "Stock location updated" -#: src/components/widgets/DisplayWidget.tsx:11 -#: src/pages/Index/Settings/AccountSettings/DisplaySettingsPanel.tsx:17 -msgid "Display Settings" -msgstr "Visningsinställningar" - -#: src/components/widgets/DisplayWidget.tsx:15 -#: src/pages/Index/Settings/AccountSettings/DisplaySettingsPanel.tsx:23 -msgid "Color Mode" -msgstr "Färgläge" - -#: src/components/widgets/DisplayWidget.tsx:21 -#: src/pages/Index/Settings/AccountSettings/DisplaySettingsPanel.tsx:33 -msgid "Language" -msgstr "Språk" - #: src/components/widgets/FeedbackWidget.tsx:19 -msgid "Something is new: Platform UI" -msgstr "Något är nytt: Plattformsgränssnitt" +#~ msgid "Something is new: Platform UI" +#~ msgstr "Something is new: Platform UI" #: src/components/widgets/FeedbackWidget.tsx:21 -msgid "We are building a new UI with a modern stack. What you currently see is not fixed and will be redesigned but demonstrates the UI/UX possibilities we will have going forward." -msgstr "Vi bygger upp ett nytt UI med en modern stack. Det du ser för närvarande är inte fixat och kommer att bli omdesignad men visar de UI/UX möjligheter vi kommer att ha framöver." +#~ msgid "We are building a new UI with a modern stack. What you currently see is not fixed and will be redesigned but demonstrates the UI/UX possibilities we will have going forward." +#~ msgstr "We are building a new UI with a modern stack. What you currently see is not fixed and will be redesigned but demonstrates the UI/UX possibilities we will have going forward." #: src/components/widgets/FeedbackWidget.tsx:32 -msgid "Provide Feedback" -msgstr "Lämna feedback" +#~ msgid "Provide Feedback" +#~ msgstr "Provide Feedback" #: src/components/widgets/GetStartedWidget.tsx:11 -msgid "Getting started" -msgstr "Komma igång" +#~ msgid "Getting started" +#~ msgstr "Getting started" #: src/components/widgets/MarkdownEditor.tsx:108 #~ msgid "Failed to upload image" @@ -2186,28 +2757,24 @@ msgstr "Komma igång" #~ msgstr "Notes saved" #: src/components/widgets/WidgetLayout.tsx:166 -msgid "Layout" -msgstr "Layout" +#~ msgid "Layout" +#~ msgstr "Layout" #: src/components/widgets/WidgetLayout.tsx:172 -msgid "Reset Layout" -msgstr "Återställ Layout" +#~ msgid "Reset Layout" +#~ msgstr "Reset Layout" #: src/components/widgets/WidgetLayout.tsx:185 -msgid "Stop Edit" -msgstr "Stoppa redigering" - -#: src/components/widgets/WidgetLayout.tsx:185 -msgid "Edit Layout" -msgstr "Redigera Layout" +#~ msgid "Stop Edit" +#~ msgstr "Stop Edit" #: src/components/widgets/WidgetLayout.tsx:191 -msgid "Appearance" -msgstr "Utseende" +#~ msgid "Appearance" +#~ msgstr "Appearance" #: src/components/widgets/WidgetLayout.tsx:203 -msgid "Show Boxes" -msgstr "Visa rutor" +#~ msgid "Show Boxes" +#~ msgstr "Show Boxes" #: src/contexts/LanguageContext.tsx:20 msgid "Arabic" @@ -2286,201 +2853,175 @@ msgid "Korean" msgstr "Koreanska" #: src/contexts/LanguageContext.tsx:39 +msgid "Lithuanian" +msgstr "Litauiska" + +#: src/contexts/LanguageContext.tsx:40 msgid "Latvian" msgstr "Lettiska" -#: src/contexts/LanguageContext.tsx:40 +#: src/contexts/LanguageContext.tsx:41 msgid "Dutch" msgstr "Holländska" -#: src/contexts/LanguageContext.tsx:41 +#: src/contexts/LanguageContext.tsx:42 msgid "Norwegian" msgstr "Norska" -#: src/contexts/LanguageContext.tsx:42 +#: src/contexts/LanguageContext.tsx:43 msgid "Polish" msgstr "Polska" -#: src/contexts/LanguageContext.tsx:43 +#: src/contexts/LanguageContext.tsx:44 msgid "Portuguese" msgstr "Portugisiska" -#: src/contexts/LanguageContext.tsx:44 +#: src/contexts/LanguageContext.tsx:45 msgid "Portuguese (Brazilian)" msgstr "Portugisiska (brasiliansk)" -#: src/contexts/LanguageContext.tsx:45 +#: src/contexts/LanguageContext.tsx:46 msgid "Romanian" msgstr "Rumänska" -#: src/contexts/LanguageContext.tsx:46 +#: src/contexts/LanguageContext.tsx:47 msgid "Russian" msgstr "Ryska" -#: src/contexts/LanguageContext.tsx:47 +#: src/contexts/LanguageContext.tsx:48 msgid "Slovak" msgstr "Slovakiska" -#: src/contexts/LanguageContext.tsx:48 +#: src/contexts/LanguageContext.tsx:49 msgid "Slovenian" msgstr "Slovenska" -#: src/contexts/LanguageContext.tsx:49 +#: src/contexts/LanguageContext.tsx:50 msgid "Swedish" msgstr "Svenska" -#: src/contexts/LanguageContext.tsx:50 +#: src/contexts/LanguageContext.tsx:51 msgid "Thai" msgstr "Thailändska" -#: src/contexts/LanguageContext.tsx:51 +#: src/contexts/LanguageContext.tsx:52 msgid "Turkish" msgstr "Turkiska" -#: src/contexts/LanguageContext.tsx:52 +#: src/contexts/LanguageContext.tsx:53 msgid "Ukrainian" msgstr "Ukrainska" -#: src/contexts/LanguageContext.tsx:53 +#: src/contexts/LanguageContext.tsx:54 msgid "Vietnamese" msgstr "Vietnamesiska" -#: src/contexts/LanguageContext.tsx:54 +#: src/contexts/LanguageContext.tsx:55 msgid "Chinese (Simplified)" msgstr "Kinesiska (Förenklad)" -#: src/contexts/LanguageContext.tsx:55 +#: src/contexts/LanguageContext.tsx:56 msgid "Chinese (Traditional)" msgstr "Kinesiska (Traditionell)" #: src/defaults/actions.tsx:18 -#: src/defaults/links.tsx:27 -#: src/defaults/menuItems.tsx:9 -msgid "Home" -msgstr "Hem" - -#: src/defaults/actions.tsx:25 -#: src/defaults/links.tsx:28 -#: src/defaults/menuItems.tsx:28 -#: src/pages/Index/Dashboard.tsx:19 -#: src/pages/Index/Settings/UserSettings.tsx:46 -msgid "Dashboard" -msgstr "Kontrollpanel" - -#: src/defaults/actions.tsx:26 msgid "Go to the InvenTree dashboard" msgstr "Gå till instrumentpanelen för InvenTree" -#: src/defaults/actions.tsx:33 +#: src/defaults/actions.tsx:18 +#: src/defaults/links.tsx:27 +#: src/defaults/menuItems.tsx:9 +#~ msgid "Home" +#~ msgstr "Home" + +#: src/defaults/actions.tsx:25 msgid "Visit the documentation to learn more about InvenTree" msgstr "Besök dokumentationen för att läsa mer om InvenTree" -#: src/defaults/actions.tsx:39 -#: src/defaults/links.tsx:98 -#: src/defaults/links.tsx:128 +#: src/defaults/actions.tsx:31 +#: src/defaults/links.tsx:92 +#: src/defaults/links.tsx:124 msgid "About InvenTree" msgstr "Om InvenTree" -#: src/defaults/actions.tsx:40 -#: src/defaults/links.tsx:129 +#: src/defaults/actions.tsx:32 msgid "About the InvenTree org" msgstr "Om InvenTree org" -#: src/defaults/actions.tsx:46 +#: src/defaults/actions.tsx:38 msgid "Server Information" msgstr "Serverinformation" -#: src/defaults/actions.tsx:47 -#: src/defaults/links.tsx:123 +#: src/defaults/actions.tsx:39 +#: src/defaults/links.tsx:118 msgid "About this Inventree instance" msgstr "Om denna Inventree instans" -#: src/defaults/actions.tsx:53 -#: src/defaults/links.tsx:111 +#: src/defaults/actions.tsx:45 +#: src/defaults/links.tsx:105 +#: src/defaults/links.tsx:131 msgid "License Information" msgstr "Licensinformation" -#: src/defaults/actions.tsx:54 -#: src/defaults/links.tsx:135 +#: src/defaults/actions.tsx:46 msgid "Licenses for dependencies of the service" msgstr "Licenser för beroenden av tjänsten" -#: src/defaults/actions.tsx:61 +#: src/defaults/actions.tsx:52 +msgid "Open Navigation" +msgstr "Öppna navigering" + +#: src/defaults/actions.tsx:53 msgid "Open the main navigation menu" msgstr "Öppna huvudnavigeringsmenyn" -#: src/defaults/actions.tsx:72 +#: src/defaults/actions.tsx:64 msgid "Go to the Admin Center" msgstr "" -#: src/defaults/dashboardItems.tsx:15 -msgid "Subscribed Parts" -msgstr "Prenumererade artiklar" - -#: src/defaults/dashboardItems.tsx:22 -msgid "Subscribed Categories" -msgstr "Prenumererade kategorier" - #: src/defaults/dashboardItems.tsx:29 -msgid "Latest Parts" -msgstr "Senaste artiklarna" +#~ msgid "Latest Parts" +#~ msgstr "Latest Parts" #: src/defaults/dashboardItems.tsx:36 -msgid "BOM Waiting Validation" -msgstr "BOM Väntar på validering" +#~ msgid "BOM Waiting Validation" +#~ msgstr "BOM Waiting Validation" #: src/defaults/dashboardItems.tsx:43 -msgid "Recently Updated" -msgstr "Senast uppdaterade" - -#: src/defaults/dashboardItems.tsx:50 -#: src/tables/part/PartTable.tsx:238 -msgid "Low Stock" -msgstr "Få i lager" +#~ msgid "Recently Updated" +#~ msgstr "Recently Updated" #: src/defaults/dashboardItems.tsx:57 -msgid "Depleted Stock" -msgstr "Slut i lager" +#~ msgid "Depleted Stock" +#~ msgstr "Depleted Stock" #: src/defaults/dashboardItems.tsx:64 -msgid "Required for Build Orders" -msgstr "Krävs för byggorder" +#~ msgid "Required for Build Orders" +#~ msgstr "Required for Build Orders" #: src/defaults/dashboardItems.tsx:71 -msgid "Expired Stock" -msgstr "Förfallet lager" +#~ msgid "Expired Stock" +#~ msgstr "Expired Stock" #: src/defaults/dashboardItems.tsx:78 -msgid "Stale Stock" -msgstr "Trögatlager ariklar" +#~ msgid "Stale Stock" +#~ msgstr "Stale Stock" #: src/defaults/dashboardItems.tsx:85 -msgid "Build Orders In Progress" -msgstr "Pågående byggorder" - -#: src/defaults/dashboardItems.tsx:92 -msgid "Overdue Build Orders" -msgstr "Försenade byggorder" +#~ msgid "Build Orders In Progress" +#~ msgstr "Build Orders In Progress" #: src/defaults/dashboardItems.tsx:99 -msgid "Outstanding Purchase Orders" -msgstr "Utestående inköpsorder" - -#: src/defaults/dashboardItems.tsx:106 -msgid "Overdue Purchase Orders" -msgstr "Förfallna inköpsorder" +#~ msgid "Outstanding Purchase Orders" +#~ msgstr "Outstanding Purchase Orders" #: src/defaults/dashboardItems.tsx:113 -msgid "Outstanding Sales Orders" -msgstr "Utestående försäljningsorder" - -#: src/defaults/dashboardItems.tsx:120 -msgid "Overdue Sales Orders" -msgstr "Försenade försäljningsorder" +#~ msgid "Outstanding Sales Orders" +#~ msgstr "Outstanding Sales Orders" #: src/defaults/dashboardItems.tsx:127 -msgid "Current News" -msgstr "Aktuella nyheter" +#~ msgid "Current News" +#~ msgstr "Current News" #: src/defaults/defaultHostList.tsx:8 #~ msgid "InvenTree Demo" @@ -2490,97 +3031,80 @@ msgstr "Aktuella nyheter" #~ msgid "Local Server" #~ msgstr "Local Server" -#: src/defaults/links.tsx:12 -#: src/pages/company/CompanyDetail.tsx:96 -msgid "Website" -msgstr "Webbplats" - #: src/defaults/links.tsx:17 -msgid "GitHub" -msgstr "GitHub" +#~ msgid "GitHub" +#~ msgstr "GitHub" #: src/defaults/links.tsx:22 -msgid "Demo" -msgstr "Demo" - -#: src/defaults/links.tsx:33 -#: src/defaults/menuItems.tsx:48 -#: src/pages/company/ManufacturerDetail.tsx:9 -#: src/pages/company/ManufacturerPartDetail.tsx:263 -#: src/pages/company/SupplierDetail.tsx:9 -#: src/pages/company/SupplierPartDetail.tsx:347 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:483 -#: src/pages/purchasing/PurchasingIndex.tsx:60 -msgid "Purchasing" -msgstr "Inköp" - -#: src/defaults/links.tsx:37 -#: src/defaults/menuItems.tsx:53 -#: src/pages/company/CustomerDetail.tsx:9 -#: src/pages/sales/ReturnOrderDetail.tsx:474 -#: src/pages/sales/SalesIndex.tsx:53 -#: src/pages/sales/SalesOrderDetail.tsx:525 -msgid "Sales" -msgstr "Försäljning" +#~ msgid "Demo" +#~ msgstr "Demo" #: src/defaults/links.tsx:41 #: src/defaults/menuItems.tsx:71 #: src/pages/Index/Playground.tsx:217 -msgid "Playground" -msgstr "Lekplats" +#~ msgid "Playground" +#~ msgstr "Playground" -#: src/defaults/links.tsx:55 -msgid "Getting Started" -msgstr "Kom igång" - -#: src/defaults/links.tsx:56 -msgid "Getting started with InvenTree" -msgstr "Komma igång med InvenTree" - -#: src/defaults/links.tsx:62 +#: src/defaults/links.tsx:45 msgid "API" msgstr "API" -#: src/defaults/links.tsx:63 +#: src/defaults/links.tsx:48 msgid "InvenTree API documentation" msgstr "InvenTree API dokumentation" -#: src/defaults/links.tsx:68 +#: src/defaults/links.tsx:52 msgid "Developer Manual" msgstr "Utvecklarmanual" -#: src/defaults/links.tsx:69 +#: src/defaults/links.tsx:55 msgid "InvenTree developer manual" msgstr "InvenTree utvecklarmanual" -#: src/defaults/links.tsx:74 +#: src/defaults/links.tsx:59 msgid "FAQ" msgstr "Frågor och svar" -#: src/defaults/links.tsx:75 +#: src/defaults/links.tsx:62 msgid "Frequently asked questions" msgstr "Vanliga frågor (FAQ)" +#: src/defaults/links.tsx:66 +msgid "GitHub Repository" +msgstr "" + +#: src/defaults/links.tsx:69 +msgid "InvenTree source code on GitHub" +msgstr "" + #: src/defaults/links.tsx:76 #~ msgid "Instance" #~ msgstr "Instance" +#: src/defaults/links.tsx:79 +#: src/defaults/links.tsx:117 +msgid "System Information" +msgstr "Systeminformation" + #: src/defaults/links.tsx:83 #~ msgid "InvenTree" #~ msgstr "InvenTree" -#: src/defaults/links.tsx:85 -#: src/defaults/links.tsx:122 -msgid "System Information" -msgstr "Systeminformation" - #: src/defaults/links.tsx:117 #~ msgid "Licenses for packages used by InvenTree" #~ msgstr "Licenses for packages used by InvenTree" +#: src/defaults/links.tsx:125 +msgid "About the InvenTree Project" +msgstr "" + +#: src/defaults/links.tsx:132 +msgid "Licenses for dependencies of the InvenTree software" +msgstr "" + #: src/defaults/links.tsx:134 -msgid "Licenses" -msgstr "Licenser" +#~ msgid "Licenses" +#~ msgstr "Licenses" #: src/defaults/menuItems.tsx:7 #~ msgid "Open sourcea" @@ -2607,8 +3131,8 @@ msgstr "Licenser" #~ msgstr "Profile page" #: src/defaults/menuItems.tsx:17 -msgid "User attributes and design settings." -msgstr "Användarattribut och designinställningar." +#~ msgid "User attributes and design settings." +#~ msgstr "User attributes and design settings." #: src/defaults/menuItems.tsx:21 #~ msgid "Free for everyone" @@ -2619,8 +3143,8 @@ msgstr "Användarattribut och designinställningar." #~ msgstr "The fluid of Smeargle’s tail secretions changes" #: src/defaults/menuItems.tsx:23 -msgid "View for interactive scanning and multiple actions." -msgstr "Visa interaktiv skanning och flera åtgärder." +#~ msgid "View for interactive scanning and multiple actions." +#~ msgstr "View for interactive scanning and multiple actions." #: src/defaults/menuItems.tsx:24 #~ msgid "The fluid of Smeargle’s tail secretions changes in the intensity" @@ -2698,51 +3222,130 @@ msgstr "Visa interaktiv skanning och flera åtgärder." #~ msgid "Are you sure you want to delete this attachment?" #~ msgstr "Are you sure you want to delete this attachment?" -#: src/forms/BuildForms.tsx:158 -msgid "Next serial number" -msgstr "Nästa serienummer" +#: src/forms/BuildForms.tsx:248 +#~ msgid "Remove output" +#~ msgstr "Remove output" -#: src/forms/BuildForms.tsx:162 -msgid "Latest serial number" -msgstr "Senaste serienummer" +#: src/forms/BuildForms.tsx:269 +#: src/tables/build/BuildAllocatedStockTable.tsx:147 +#: src/tables/build/BuildOrderTestTable.tsx:177 +#: src/tables/build/BuildOrderTestTable.tsx:201 +#: src/tables/build/BuildOutputTable.tsx:460 +msgid "Build Output" +msgstr "" -#: src/forms/BuildForms.tsx:234 -msgid "Remove output" -msgstr "Ta bort utdata" +#: src/forms/BuildForms.tsx:269 +#: src/forms/BuildForms.tsx:337 +#: src/forms/BuildForms.tsx:385 +#: src/tables/build/BuildLineTable.tsx:89 +msgid "Batch" +msgstr "" -#: src/forms/BuildForms.tsx:316 +#: src/forms/BuildForms.tsx:269 +#: src/forms/BuildForms.tsx:337 +#: src/forms/BuildForms.tsx:385 +#: src/forms/PurchaseOrderForms.tsx:603 +#: src/pages/build/BuildDetail.tsx:104 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:142 +#: src/pages/sales/ReturnOrderDetail.tsx:113 +#: src/pages/sales/SalesOrderDetail.tsx:122 +#: src/tables/build/BuildOrderTable.tsx:125 +#: src/tables/machine/MachineListTable.tsx:336 +#: src/tables/part/PartPurchaseOrdersTable.tsx:37 +#: src/tables/purchasing/PurchaseOrderTable.tsx:58 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:157 +#: src/tables/sales/ReturnOrderTable.tsx:56 +#: src/tables/sales/SalesOrderTable.tsx:56 +#: src/tables/settings/CustomStateTable.tsx:57 +#: src/tables/settings/ImportSessionTable.tsx:114 +#: src/tables/stock/StockItemTable.tsx:298 +#: src/tables/stock/StockTrackingTable.tsx:56 +msgid "Status" +msgstr "Status" + +#: src/forms/BuildForms.tsx:289 msgid "Complete Build Outputs" msgstr "Slutförd produktion" -#: src/forms/BuildForms.tsx:320 +#: src/forms/BuildForms.tsx:292 msgid "Build outputs have been completed" msgstr "Produktion som har slutförts" -#: src/forms/BuildForms.tsx:389 +#: src/forms/BuildForms.tsx:353 msgid "Scrap Build Outputs" msgstr "Skrota tillverkad produktion" -#: src/forms/BuildForms.tsx:393 +#: src/forms/BuildForms.tsx:356 msgid "Build outputs have been scrapped" msgstr "Tillverkad produktion har skrotats" -#: src/forms/BuildForms.tsx:425 -#: src/forms/BuildForms.tsx:449 +#: src/forms/BuildForms.tsx:393 msgid "Cancel Build Outputs" msgstr "Avbryt produktion" -#: src/forms/BuildForms.tsx:426 -msgid "Selected build outputs will be deleted" -msgstr "Vald produktion kommer att raderas" - -#: src/forms/BuildForms.tsx:453 +#: src/forms/BuildForms.tsx:396 msgid "Build outputs have been cancelled" msgstr "Tillverkade produkter har raderats" +#: src/forms/BuildForms.tsx:408 +#~ msgid "Selected build outputs will be deleted" +#~ msgstr "Selected build outputs will be deleted" + +#: src/forms/BuildForms.tsx:470 +#~ msgid "Remove line" +#~ msgstr "Remove line" + +#: src/forms/BuildForms.tsx:515 +#: src/forms/SalesOrderForms.tsx:248 +#: src/tables/build/BuildLineTable.tsx:174 +#: src/tables/sales/SalesOrderLineItemTable.tsx:276 +#: src/tables/stock/StockItemTable.tsx:309 +msgid "Allocated" +msgstr "" + +#: src/forms/BuildForms.tsx:545 +#: src/forms/SalesOrderForms.tsx:239 +#: src/pages/build/BuildDetail.tsx:208 +msgid "Source Location" +msgstr "" + +#: src/forms/BuildForms.tsx:546 +#: src/forms/SalesOrderForms.tsx:240 +msgid "Select the source location for the stock allocation" +msgstr "" + +#: src/forms/BuildForms.tsx:566 +#: src/forms/SalesOrderForms.tsx:274 +#: src/tables/build/BuildLineTable.tsx:442 +#: src/tables/build/BuildLineTable.tsx:569 +#: src/tables/build/BuildLineTable.tsx:642 +#: src/tables/sales/SalesOrderLineItemTable.tsx:302 +#: src/tables/sales/SalesOrderLineItemTable.tsx:326 +msgid "Allocate Stock" +msgstr "" + +#: src/forms/BuildForms.tsx:569 +#: src/forms/SalesOrderForms.tsx:279 +msgid "Stock items allocated" +msgstr "" + #: src/forms/CompanyForms.tsx:150 #~ msgid "Company updated" #~ msgstr "Company updated" +#: src/forms/PartForms.tsx:67 +#: src/forms/PartForms.tsx:154 +#: src/pages/part/CategoryDetail.tsx:117 +#: src/pages/part/PartDetail.tsx:384 +#: src/tables/part/PartCategoryTable.tsx:90 +#: src/tables/part/PartTable.tsx:294 +msgid "Subscribed" +msgstr "" + +#: src/forms/PartForms.tsx:68 +msgid "Subscribe to notifications for this part" +msgstr "" + #: src/forms/PartForms.tsx:106 #~ msgid "Create Part" #~ msgstr "Create Part" @@ -2751,191 +3354,190 @@ msgstr "Tillverkade produkter har raderats" #~ msgid "Part created" #~ msgstr "Part created" -#: src/forms/PartForms.tsx:124 -msgid "Parent part category" -msgstr "Överordnad kategori" - #: src/forms/PartForms.tsx:129 #~ msgid "Part updated" #~ msgstr "Part updated" -#: src/forms/PurchaseOrderForms.tsx:300 +#: src/forms/PartForms.tsx:140 +msgid "Parent part category" +msgstr "Överordnad kategori" + +#: src/forms/PartForms.tsx:155 +msgid "Subscribe to notifications for this category" +msgstr "" + +#: src/forms/PurchaseOrderForms.tsx:314 +msgid "Assign Batch Code and Serial Numbers" +msgstr "" + +#: src/forms/PurchaseOrderForms.tsx:316 +msgid "Assign Batch Code" +msgstr "" + +#: src/forms/PurchaseOrderForms.tsx:336 msgid "Choose Location" msgstr "Välj plats" -#: src/forms/PurchaseOrderForms.tsx:308 +#: src/forms/PurchaseOrderForms.tsx:344 msgid "Item Destination selected" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:317 +#: src/forms/PurchaseOrderForms.tsx:353 msgid "Part category default location selected" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:327 +#: src/forms/PurchaseOrderForms.tsx:363 msgid "Received stock location selected" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:332 +#: src/forms/PurchaseOrderForms.tsx:368 msgid "Default location selected" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:343 -#: src/forms/PurchaseOrderForms.tsx:435 -msgid "Scan Barcode" -msgstr "Skanna streckkod" +#: src/forms/PurchaseOrderForms.tsx:421 +#~ msgid "Assign Batch Code{0}" +#~ msgstr "Assign Batch Code{0}" -#: src/forms/PurchaseOrderForms.tsx:388 +#: src/forms/PurchaseOrderForms.tsx:427 msgid "Set Location" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:396 -msgid "Assign Batch Code{0}" -msgstr "" - -#: src/forms/PurchaseOrderForms.tsx:405 -#: src/forms/StockForms.tsx:420 +#: src/forms/PurchaseOrderForms.tsx:442 +#: src/forms/StockForms.tsx:539 msgid "Adjust Packaging" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:412 -msgid "Change Status" -msgstr "Ändra status" - -#: src/forms/PurchaseOrderForms.tsx:418 -msgid "Add Note" -msgstr "" - #: src/forms/PurchaseOrderForms.tsx:444 #: src/forms/StockForms.tsx:428 -msgid "Remove item from list" -msgstr "" +#~ msgid "Remove item from list" +#~ msgstr "Remove item from list" -#: src/forms/PurchaseOrderForms.tsx:471 -#: src/forms/StockForms.tsx:499 -#: src/forms/StockForms.tsx:533 -#: src/forms/StockForms.tsx:562 -#: src/forms/StockForms.tsx:590 -#: src/forms/StockForms.tsx:621 -#: src/forms/StockForms.tsx:656 -#: src/forms/StockForms.tsx:698 -#: src/forms/StockForms.tsx:734 -#: src/pages/stock/StockDetail.tsx:181 -#: src/tables/ColumnRenderers.tsx:49 -#: src/tables/stock/StockTrackingTable.tsx:85 +#: src/forms/PurchaseOrderForms.tsx:450 +msgid "Change Status" +msgstr "Ändra status" + +#: src/forms/PurchaseOrderForms.tsx:456 +msgid "Add Note" +msgstr "Lägg till anteckning" + +#: src/forms/PurchaseOrderForms.tsx:503 +#: src/forms/StockForms.tsx:614 +#: src/forms/StockForms.tsx:651 +#: src/forms/StockForms.tsx:677 +#: src/forms/StockForms.tsx:705 +#: src/forms/StockForms.tsx:736 +#: src/forms/StockForms.tsx:771 +#: src/forms/StockForms.tsx:813 +#: src/forms/StockForms.tsx:851 +#: src/pages/stock/StockDetail.tsx:202 +#: src/tables/ColumnRenderers.tsx:60 +#: src/tables/stock/StockTrackingTable.tsx:89 msgid "Location" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:486 +#: src/forms/PurchaseOrderForms.tsx:518 msgid "Store at default location" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:499 +#: src/forms/PurchaseOrderForms.tsx:533 msgid "Store at line item destination" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:509 +#: src/forms/PurchaseOrderForms.tsx:545 msgid "Store with already received stock" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:524 -#: src/pages/build/BuildDetail.tsx:219 -#: src/pages/stock/StockDetail.tsx:162 -#: src/pages/stock/StockDetail.tsx:599 -#: src/tables/build/BuildAllocatedStockTable.tsx:109 -#: src/tables/build/BuildOrderTestTable.tsx:188 -#: src/tables/sales/SalesOrderAllocationTable.tsx:87 +#: src/forms/PurchaseOrderForms.tsx:566 +#: src/pages/build/BuildDetail.tsx:222 +#: src/pages/stock/StockDetail.tsx:185 +#: src/pages/stock/StockDetail.tsx:793 +#: src/tables/build/BuildAllocatedStockTable.tsx:130 +#: src/tables/build/BuildOrderTestTable.tsx:189 +#: src/tables/build/BuildOutputTable.tsx:86 +#: src/tables/sales/SalesOrderAllocationTable.tsx:113 msgid "Batch Code" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:535 -msgid "Serial numbers" +#: src/forms/PurchaseOrderForms.tsx:566 +#~ msgid "Serial numbers" +#~ msgstr "Serial numbers" + +#: src/forms/PurchaseOrderForms.tsx:567 +msgid "Enter batch code for received items" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:544 -#: src/forms/StockForms.tsx:443 -#: src/pages/company/SupplierPartDetail.tsx:156 -#: src/pages/company/SupplierPartDetail.tsx:207 -#: src/pages/stock/StockDetail.tsx:244 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:192 +#: src/forms/PurchaseOrderForms.tsx:579 +#: src/forms/StockForms.tsx:152 +msgid "Serial Numbers" +msgstr "Serienummer" + +#: src/forms/PurchaseOrderForms.tsx:580 +msgid "Enter serial numbers for received items" +msgstr "" + +#: src/forms/PurchaseOrderForms.tsx:590 +#: src/forms/StockForms.tsx:556 +#: src/pages/company/SupplierPartDetail.tsx:168 +#: src/pages/company/SupplierPartDetail.tsx:219 +#: src/pages/stock/StockDetail.tsx:320 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:198 msgid "Packaging" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:556 -#: src/pages/build/BuildDetail.tsx:109 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:148 -#: src/pages/sales/ReturnOrderDetail.tsx:121 -#: src/pages/sales/SalesOrderDetail.tsx:127 -#: src/tables/build/BuildOrderTable.tsx:122 -#: src/tables/machine/MachineListTable.tsx:335 -#: src/tables/part/PartPurchaseOrdersTable.tsx:37 -#: src/tables/purchasing/PurchaseOrderTable.tsx:55 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:132 -#: src/tables/sales/ReturnOrderTable.tsx:46 -#: src/tables/sales/SalesOrderTable.tsx:53 -#: src/tables/settings/ImportSessionTable.tsx:115 -#: src/tables/stock/StockItemTable.tsx:294 -#: src/tables/stock/StockTrackingTable.tsx:52 -msgid "Status" -msgstr "Status" - -#: src/forms/PurchaseOrderForms.tsx:564 -#: src/pages/company/SupplierPartDetail.tsx:110 -#: src/tables/ColumnRenderers.tsx:132 +#: src/forms/PurchaseOrderForms.tsx:612 +#: src/pages/company/SupplierPartDetail.tsx:115 +#: src/tables/ColumnRenderers.tsx:143 msgid "Note" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/pages/company/SupplierPartDetail.tsx:128 -#: src/tables/purchasing/SupplierPriceBreakTable.tsx:57 -msgid "SKU" -msgstr "" - -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/tables/part/PartPurchaseOrdersTable.tsx:120 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:178 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:127 -msgid "Received" -msgstr "" - -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/forms/StockForms.tsx:499 -#: src/forms/StockForms.tsx:533 -#: src/forms/StockForms.tsx:562 -#: src/forms/StockForms.tsx:590 -#: src/forms/StockForms.tsx:621 -#: src/forms/StockForms.tsx:656 -#: src/forms/StockForms.tsx:698 -#: src/forms/StockForms.tsx:734 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:413 -#: src/tables/RowActions.tsx:113 -msgid "Actions" -msgstr "Åtgärder" - -#: src/forms/PurchaseOrderForms.tsx:655 -msgid "Receive Line Items" -msgstr "" - #: src/forms/PurchaseOrderForms.tsx:658 #~ msgid "Receive line items" #~ msgstr "Receive line items" -#: src/forms/StockForms.tsx:104 -msgid "Add given quantity as packs instead of individual items" +#: src/forms/PurchaseOrderForms.tsx:689 +#: src/pages/company/SupplierPartDetail.tsx:133 +#: src/tables/purchasing/SupplierPriceBreakTable.tsx:57 +msgid "SKU" msgstr "" +#: src/forms/PurchaseOrderForms.tsx:689 +#: src/tables/part/PartPurchaseOrdersTable.tsx:126 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:184 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:247 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:152 +msgid "Received" +msgstr "" + +#: src/forms/PurchaseOrderForms.tsx:701 +msgid "Receive Line Items" +msgstr "" + +#: src/forms/ReturnOrderForms.tsx:201 +msgid "Receive Items" +msgstr "" + +#: src/forms/ReturnOrderForms.tsx:208 +msgid "Item received into stock" +msgstr "" + +#: src/forms/StockForms.tsx:80 +#: src/hooks/UsePlaceholder.tsx:57 +msgid "Next serial number" +msgstr "Nästa serienummer" + #: src/forms/StockForms.tsx:110 #~ msgid "Create Stock Item" #~ msgstr "Create Stock Item" -#: src/forms/StockForms.tsx:117 +#: src/forms/StockForms.tsx:131 +msgid "Add given quantity as packs instead of individual items" +msgstr "" + +#: src/forms/StockForms.tsx:145 msgid "Enter initial quantity for this stock item" msgstr "" -#: src/forms/StockForms.tsx:124 -msgid "Serial Numbers" -msgstr "Serienummer" - -#: src/forms/StockForms.tsx:125 +#: src/forms/StockForms.tsx:154 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" @@ -2943,82 +3545,102 @@ msgstr "" #~ msgid "Stock item updated" #~ msgstr "Stock item updated" -#: src/forms/StockForms.tsx:179 -#: src/pages/stock/StockDetail.tsx:434 -#: src/tables/stock/StockItemTable.tsx:417 -#: src/tables/stock/StockItemTable.tsx:535 +#: src/forms/StockForms.tsx:169 +#: src/pages/stock/StockDetail.tsx:131 +msgid "Stock Status" +msgstr "" + +#: src/forms/StockForms.tsx:218 +#: src/pages/stock/StockDetail.tsx:554 +#: src/tables/stock/StockItemTable.tsx:421 +#: src/tables/stock/StockItemTable.tsx:541 msgid "Add Stock Item" msgstr "" -#: src/forms/StockForms.tsx:362 +#: src/forms/StockForms.tsx:262 +msgid "Select the part to install" +msgstr "" + +#: src/forms/StockForms.tsx:480 msgid "Loading..." msgstr "" -#: src/forms/StockForms.tsx:408 +#: src/forms/StockForms.tsx:527 msgid "Move to default location" msgstr "" -#: src/forms/StockForms.tsx:499 -#: src/forms/StockForms.tsx:533 -#: src/forms/StockForms.tsx:562 -#: src/forms/StockForms.tsx:590 -#: src/forms/StockForms.tsx:621 -#: src/forms/StockForms.tsx:656 -#: src/forms/StockForms.tsx:698 -#: src/forms/StockForms.tsx:734 -#: src/pages/part/PartDetail.tsx:230 -#: src/pages/part/PartDetail.tsx:843 -#: src/tables/stock/StockItemTable.tsx:325 +#: src/forms/StockForms.tsx:614 +#: src/forms/StockForms.tsx:651 +#: src/forms/StockForms.tsx:677 +#: src/forms/StockForms.tsx:705 +#: src/forms/StockForms.tsx:736 +#: src/forms/StockForms.tsx:771 +#: src/forms/StockForms.tsx:813 +#: src/forms/StockForms.tsx:851 +#: src/pages/part/PartDetail.tsx:251 +#: src/pages/part/PartDetail.tsx:875 +#: src/tables/stock/StockItemTable.tsx:329 msgid "In Stock" msgstr "" -#: src/forms/StockForms.tsx:499 +#: src/forms/StockForms.tsx:614 msgid "Move" msgstr "" -#: src/forms/StockForms.tsx:562 -#: src/pages/stock/StockDetail.tsx:518 -#: src/tables/stock/StockItemTestResultTable.tsx:328 +#: src/forms/StockForms.tsx:677 +#: src/pages/stock/StockDetail.tsx:681 +#: src/tables/stock/StockItemTestResultTable.tsx:346 msgid "Add" msgstr "" -#: src/forms/StockForms.tsx:590 -#: src/pages/Index/Scan.tsx:266 -#: src/pages/stock/StockDetail.tsx:508 +#: src/forms/StockForms.tsx:705 +#: src/pages/Index/Scan.tsx:280 +#: src/pages/stock/StockDetail.tsx:670 msgid "Count" msgstr "" -#: src/forms/StockForms.tsx:835 +#: src/forms/StockForms.tsx:953 +#: src/pages/stock/StockDetail.tsx:682 +#: src/tables/stock/StockItemTable.tsx:454 msgid "Add Stock" msgstr "" -#: src/forms/StockForms.tsx:844 +#: src/forms/StockForms.tsx:962 +#: src/pages/stock/StockDetail.tsx:691 +#: src/tables/stock/StockItemTable.tsx:463 msgid "Remove Stock" msgstr "" -#: src/forms/StockForms.tsx:853 -#: src/pages/part/PartDetail.tsx:1017 +#: src/forms/StockForms.tsx:971 +#: src/pages/part/PartDetail.tsx:1039 +#: src/pages/stock/StockDetail.tsx:712 +#: src/tables/stock/StockItemTable.tsx:483 msgid "Transfer Stock" msgstr "" -#: src/forms/StockForms.tsx:862 -#: src/pages/part/PartDetail.tsx:1006 +#: src/forms/StockForms.tsx:980 +#: src/pages/part/PartDetail.tsx:1028 +#: src/pages/stock/LocationDetail.tsx:314 +#: src/pages/stock/LocationDetail.tsx:318 +#: src/tables/stock/StockItemTable.tsx:472 +#: src/tables/stock/StockItemTable.tsx:476 msgid "Count Stock" msgstr "" -#: src/forms/StockForms.tsx:871 +#: src/forms/StockForms.tsx:989 msgid "Change Stock Status" msgstr "" -#: src/forms/StockForms.tsx:880 +#: src/forms/StockForms.tsx:998 msgid "Merge Stock" msgstr "Sammanfoga lager" -#: src/forms/StockForms.tsx:899 +#: src/forms/StockForms.tsx:1017 +#: src/tables/stock/StockItemTable.tsx:530 msgid "Delete Stock Items" msgstr "Ta bort lagerartikel" -#: src/forms/StockForms.tsx:906 +#: src/forms/StockForms.tsx:1024 msgid "Parent stock location" msgstr "Överordnad lagerplats" @@ -3042,11 +3664,11 @@ msgstr "Överordnad lagerplats" #~ msgid "You have been logged out" #~ msgstr "You have been logged out" -#: src/functions/auth.tsx:117 +#: src/functions/auth.tsx:128 msgid "Logged Out" msgstr "Utloggad" -#: src/functions/auth.tsx:118 +#: src/functions/auth.tsx:129 msgid "Successfully logged out" msgstr "Utloggningen lyckades" @@ -3062,20 +3684,20 @@ msgstr "Utloggningen lyckades" #~ msgid "Found an existing login - welcome back!" #~ msgstr "Found an existing login - welcome back!" -#: src/functions/auth.tsx:156 +#: src/functions/auth.tsx:167 msgid "Check your inbox for a reset link. This only works if you have an account. Check in spam too." msgstr "Kolla din inkorg för en återställningslänk. Detta fungerar bara om du har ett konto. Kontrollera även i skräppost." -#: src/functions/auth.tsx:163 +#: src/functions/auth.tsx:174 #: src/pages/Auth/Set-Password.tsx:39 msgid "Reset failed" msgstr "Återställningen misslyckades" -#: src/functions/auth.tsx:194 +#: src/functions/auth.tsx:205 msgid "Logged In" msgstr "Inloggad" -#: src/functions/auth.tsx:195 +#: src/functions/auth.tsx:206 msgid "Successfully logged in" msgstr "Inloggning lyckades" @@ -3095,30 +3717,38 @@ msgstr "Inloggning lyckades" #~ msgid "method parameter not supplied" #~ msgstr "method parameter not supplied" -#: src/functions/notifications.tsx:10 +#: src/functions/notifications.tsx:12 msgid "Not implemented" msgstr "Inte implementerad" -#: src/functions/notifications.tsx:11 +#: src/functions/notifications.tsx:13 msgid "This feature is not yet implemented" msgstr "Denna funktionen har inte implementerats" -#: src/functions/notifications.tsx:21 -msgid "Permission denied" -msgstr "Åtkomst nekad" +#: src/functions/notifications.tsx:24 +#~ msgid "Permission denied" +#~ msgstr "Permission denied" -#: src/functions/notifications.tsx:22 +#: src/functions/notifications.tsx:25 msgid "You do not have permission to perform this action" msgstr "Du har inte behörighet att utföra denna åtgärd" -#: src/functions/notifications.tsx:33 +#: src/functions/notifications.tsx:36 msgid "Invalid Return Code" msgstr "Ogiltig svarskod" -#: src/functions/notifications.tsx:34 +#: src/functions/notifications.tsx:37 msgid "Server returned status {returnCode}" msgstr "Servern returnerade status {returnCode}" +#: src/functions/notifications.tsx:47 +msgid "Timeout" +msgstr "" + +#: src/functions/notifications.tsx:48 +msgid "The request timed out" +msgstr "" + #: src/hooks/UseForm.tsx:88 msgid "Item Created" msgstr "Artikel skapad" @@ -3135,20 +3765,24 @@ msgstr "Artikel Borttagen" msgid "Are you sure you want to delete this item?" msgstr "Är du säker på att du vill ta bort den här posten?" +#: src/hooks/UsePlaceholder.tsx:59 +msgid "Latest serial number" +msgstr "Senaste serienummer" + #: src/pages/Auth/Logged-In.tsx:22 msgid "Checking if you are already logged in" msgstr "Kontrollerar om du redan är inloggad" -#: src/pages/Auth/Login.tsx:31 -#: src/pages/Index/Scan.tsx:329 +#: src/pages/Auth/Login.tsx:35 +#: src/pages/Index/Scan.tsx:343 msgid "No selection" msgstr "Inget val" -#: src/pages/Auth/Login.tsx:87 +#: src/pages/Auth/Login.tsx:91 msgid "Welcome, log in below" msgstr "Välkommen, logga in nedan" -#: src/pages/Auth/Login.tsx:89 +#: src/pages/Auth/Login.tsx:93 msgid "Register below" msgstr "Registrera dig nedan" @@ -3162,8 +3796,8 @@ msgstr "Loggar ut" #: src/pages/Auth/Reset.tsx:41 #: src/pages/Auth/Set-Password.tsx:112 -msgid "Send mail" -msgstr "Skicka e-post" +#~ msgid "Send mail" +#~ msgstr "Send mail" #: src/pages/Auth/Set-Password.tsx:30 msgid "Token invalid" @@ -3174,22 +3808,22 @@ msgid "You need to provide a valid token to set a new password. Check your inbox msgstr "Du måste ange en giltig token för att ange ett nytt lösenord. Kontrollera din inkorg för en återställningslänk." #: src/pages/Auth/Set-Password.tsx:49 -msgid "No token provided" -msgstr "Ingen token angiven" +#~ msgid "No token provided" +#~ msgstr "No token provided" #: src/pages/Auth/Set-Password.tsx:50 -msgid "You need to provide a token to set a new password. Check your inbox for a reset link." -msgstr "Du måste ange en giltig token för att ange ett nytt lösenord. Kontrollera din inkorg för en återställningslänk." +#~ msgid "You need to provide a token to set a new password. Check your inbox for a reset link." +#~ msgstr "You need to provide a token to set a new password. Check your inbox for a reset link." -#: src/pages/Auth/Set-Password.tsx:73 +#: src/pages/Auth/Set-Password.tsx:68 msgid "Password set" msgstr "Lösenord sparat!" -#: src/pages/Auth/Set-Password.tsx:74 +#: src/pages/Auth/Set-Password.tsx:69 msgid "The password was set successfully. You can now login with your new password" msgstr "Ditt lösenord har sparats. Du kan nu logga in med ditt nya lösenord." -#: src/pages/Auth/Set-Password.tsx:101 +#: src/pages/Auth/Set-Password.tsx:96 msgid "Set new password" msgstr "Ange nytt lösenord" @@ -3206,20 +3840,20 @@ msgstr "Ett oväntat fel har inträffat" #~ msgstr "Sorry, an unexpected error has occurred." #: src/pages/Index/Dashboard.tsx:22 -msgid "Autoupdate" -msgstr "Autouppdatera" +#~ msgid "Autoupdate" +#~ msgstr "Autoupdate" #: src/pages/Index/Dashboard.tsx:26 -msgid "This page is a replacement for the old start page with the same information. This page will be deprecated and replaced by the home page." -msgstr "Denna sida är en ersättning för den gamla startsidan med samma information. Denna sida kommer att försvinna och ersättas av startsidan." +#~ msgid "This page is a replacement for the old start page with the same information. This page will be deprecated and replaced by the home page." +#~ msgstr "This page is a replacement for the old start page with the same information. This page will be deprecated and replaced by the home page." #: src/pages/Index/Home.tsx:58 -msgid "Welcome to your Dashboard{0}" -msgstr "Välkommen till din instrumentpanel{0}" +#~ msgid "Welcome to your Dashboard{0}" +#~ msgstr "Welcome to your Dashboard{0}" #: src/pages/Index/Playground.tsx:222 -msgid "This page is a showcase for the possibilities of Platform UI." -msgstr "Den här sidan är ett skyltfönster för möjligheterna med Plattform UI." +#~ msgid "This page is a showcase for the possibilities of Platform UI." +#~ msgstr "This page is a showcase for the possibilities of Platform UI." #: src/pages/Index/Profile/Profile.tsx:30 #: src/pages/Index/Profile/Profile.tsx:141 @@ -3365,126 +3999,191 @@ msgstr "Manuell inmatning" msgid "Image Barcode" msgstr "Bildstreckkod" -#: src/pages/Index/Scan.tsx:247 +#: src/pages/Index/Scan.tsx:261 msgid "Selected elements are not known" msgstr "Valda element är inte kända" -#: src/pages/Index/Scan.tsx:254 +#: src/pages/Index/Scan.tsx:268 msgid "Multiple object types selected" msgstr "Flera objekttyper valda" -#: src/pages/Index/Scan.tsx:261 +#: src/pages/Index/Scan.tsx:275 msgid "Actions for {0}" msgstr "Åtgärder för {0}" -#: src/pages/Index/Scan.tsx:282 +#: src/pages/Index/Scan.tsx:296 msgid "Scan Page" msgstr "Skanna sida" -#: src/pages/Index/Scan.tsx:285 +#: src/pages/Index/Scan.tsx:299 msgid "This page can be used for continuously scanning items and taking actions on them." msgstr "Denna sida kan användas för att kontinuerligt skanna objekt och vidta åtgärder på dem." -#: src/pages/Index/Scan.tsx:292 +#: src/pages/Index/Scan.tsx:306 msgid "Toggle Fullscreen" msgstr "Växla fullskärm" -#: src/pages/Index/Scan.tsx:305 +#: src/pages/Index/Scan.tsx:319 msgid "Select the input method you want to use to scan items." msgstr "Välj den inmatningsmetod du vill använda för att skanna objekt." -#: src/pages/Index/Scan.tsx:307 +#: src/pages/Index/Scan.tsx:321 msgid "Input" msgstr "Inmatning" -#: src/pages/Index/Scan.tsx:314 +#: src/pages/Index/Scan.tsx:328 msgid "Select input method" msgstr "Välj inmatningsmetod" -#: src/pages/Index/Scan.tsx:315 +#: src/pages/Index/Scan.tsx:329 msgid "Nothing found" msgstr "Ingenting hittades" -#: src/pages/Index/Scan.tsx:323 +#: src/pages/Index/Scan.tsx:337 msgid "Depending on the selected parts actions will be shown here. Not all barcode types are supported currently." msgstr "Beroende på vilka artiklar som väljs kommer åtgärder att visas här. Alla streckkodstyper stöds inte för närvarande." -#: src/pages/Index/Scan.tsx:325 +#: src/pages/Index/Scan.tsx:339 msgid "Action" msgstr "Åtgärd" -#: src/pages/Index/Scan.tsx:334 +#: src/pages/Index/Scan.tsx:348 msgid "{0} items selected" msgstr "{0} artiklar valda" -#: src/pages/Index/Scan.tsx:337 +#: src/pages/Index/Scan.tsx:351 msgid "General Actions" msgstr "Allmänna åtgärder" -#: src/pages/Index/Scan.tsx:351 +#: src/pages/Index/Scan.tsx:365 msgid "Lookup part" msgstr "Leta upp artikel" -#: src/pages/Index/Scan.tsx:359 +#: src/pages/Index/Scan.tsx:373 msgid "Open Link" msgstr "Öppna länk" -#: src/pages/Index/Scan.tsx:375 +#: src/pages/Index/Scan.tsx:389 msgid "History is locally kept in this browser." msgstr "Historiken lagras lokalt i denna webbläsare." -#: src/pages/Index/Scan.tsx:376 +#: src/pages/Index/Scan.tsx:390 msgid "The history is kept in this browser's local storage. So it won't be shared with other users or other devices but is persistent through reloads. You can select items in the history to perform actions on them. To add items, scan/enter them in the Input area." msgstr "Historiken lagras i den här webbläsarens lokala lagring. Så den kommer inte att delas med andra användare eller andra enheter utan är ihållande genom omladdningar. Du kan välja objekt i historiken för att utföra åtgärder på dem. För att lägga till objekt, skana/ange dem i Inmatningsområdet." -#: src/pages/Index/Scan.tsx:378 +#: src/pages/Index/Scan.tsx:392 #: src/pages/Notifications.tsx:100 msgid "History" msgstr "Historik" -#: src/pages/Index/Scan.tsx:384 +#: src/pages/Index/Scan.tsx:398 msgid "Delete History" msgstr "Radera historiken" -#: src/pages/Index/Scan.tsx:449 +#: src/pages/Index/Scan.tsx:463 msgid "No history" msgstr "Ingen historik" -#: src/pages/Index/Scan.tsx:467 +#: src/pages/Index/Scan.tsx:481 msgid "Item" msgstr "Artikel" -#: src/pages/Index/Scan.tsx:470 +#: src/pages/Index/Scan.tsx:484 msgid "Type" msgstr "Typ" -#: src/pages/Index/Scan.tsx:473 +#: src/pages/Index/Scan.tsx:487 msgid "Source" msgstr "Källa" -#: src/pages/Index/Scan.tsx:476 +#: src/pages/Index/Scan.tsx:490 msgid "Scanned at" msgstr "Skannad den" -#: src/pages/Index/Scan.tsx:528 +#: src/pages/Index/Scan.tsx:547 msgid "Enter item serial or data" msgstr "" -#: src/pages/Index/Scan.tsx:540 +#: src/pages/Index/Scan.tsx:559 msgid "Add dummy item" msgstr "Lägg till dummy artikel" +#: src/pages/Index/Scan.tsx:569 +msgid "Start scanning by selecting a camera and pressing the play button." +msgstr "" + +#: src/pages/Index/Scan.tsx:650 +msgid "Error while getting camera" +msgstr "Fel vid öppning av kamera" + +#: src/pages/Index/Scan.tsx:673 +msgid "Error while scanning" +msgstr "Fel vid skanning" + +#: src/pages/Index/Scan.tsx:687 +msgid "Error while stopping" +msgstr "Fel vid avbrott" + +#: src/pages/Index/Scan.tsx:745 +msgid "Stop scanning" +msgstr "Stoppa skanning" + +#: src/pages/Index/Scan.tsx:754 +msgid "Start scanning" +msgstr "Starta skanning" + +#: src/pages/Index/Scan.tsx:763 +msgid "Scanning" +msgstr "Scannar" + +#: src/pages/Index/Scan.tsx:763 +msgid "Not scanning" +msgstr "Starta skanning" + +#: src/pages/Index/Scan.tsx:775 +msgid "Select Camera" +msgstr "Välj kamera" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:28 +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:50 +msgid "Edit User Information" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:32 +msgid "User details updated" +msgstr "" + #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:41 -msgid "Account Details" -msgstr "Kontouppgifter" +msgid "User Details" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:41 +#~ msgid "Account Details" +#~ msgstr "Account Details" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:44 +msgid "User Actions" +msgstr "Användaråtgärder" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:48 +msgid "Edit User" +msgstr "Redigera användare" #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:50 -msgid "First name" -msgstr "Förnamn" +#~ msgid "First name" +#~ msgstr "First name" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:54 +msgid "Set Password" +msgstr "Ställ in lösenord" #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:55 -msgid "Last name" -msgstr "Efternamn" +#~ msgid "Last name" +#~ msgstr "Last name" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:56 +msgid "Set User Password" +msgstr "" #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:58 #~ msgid "First name: {0}" @@ -3495,15 +4194,28 @@ msgstr "Efternamn" #~ msgstr "Last name: {0}" #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:67 -msgid "First name:" -msgstr "Förnamn:" +#~ msgid "First name:" +#~ msgstr "First name:" #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:71 -msgid "Last name:" -msgstr "Efternamn:" +#~ msgid "Last name:" +#~ msgstr "Last name:" -#: src/pages/Index/Settings/AccountSettings/DisplaySettingsPanel.tsx:41 -msgid "Use pseudo language" +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:73 +msgid "First Name" +msgstr "Förnamn" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:79 +msgid "Last Name" +msgstr "Efternamn" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:85 +msgid "Staff Access" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:93 +#: src/tables/settings/UserTable.tsx:293 +msgid "Superuser" msgstr "" #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:55 @@ -3600,27 +4312,6 @@ msgstr "" msgid "No tokens configured" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:398 -#: src/pages/part/PartDetail.tsx:297 -#: src/tables/bom/UsedInTable.tsx:84 -#: src/tables/build/BuildOrderTable.tsx:110 -#: src/tables/company/CompanyTable.tsx:61 -#: src/tables/company/CompanyTable.tsx:95 -#: src/tables/machine/MachineListTable.tsx:332 -#: src/tables/machine/MachineListTable.tsx:594 -#: src/tables/part/ParametricPartTable.tsx:223 -#: src/tables/part/PartTable.tsx:178 -#: src/tables/part/PartVariantTable.tsx:15 -#: src/tables/plugin/PluginListTable.tsx:149 -#: src/tables/plugin/PluginListTable.tsx:271 -#: src/tables/plugin/PluginListTable.tsx:563 -#: src/tables/purchasing/SupplierPartTable.tsx:98 -#: src/tables/purchasing/SupplierPartTable.tsx:187 -#: src/tables/settings/UserTable.tsx:284 -#: src/tables/stock/StockItemTable.tsx:289 -msgid "Active" -msgstr "Aktiv" - #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:401 msgid "Expiry" msgstr "" @@ -3630,38 +4321,74 @@ msgid "Last Seen" msgstr "" #: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:65 -msgid "bars" -msgstr "" +#~ msgid "bars" +#~ msgstr "bars" #: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:66 -msgid "oval" -msgstr "oval" +#~ msgid "oval" +#~ msgstr "oval" #: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:67 -msgid "dots" -msgstr "punkt" +#~ msgid "dots" +#~ msgstr "dots" #: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:81 -msgid "Theme" -msgstr "Tema" +#~ msgid "Theme" +#~ msgstr "Theme" #: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:87 -msgid "Primary color" -msgstr "Primärfärg" +#~ msgid "Primary color" +#~ msgstr "Primary color" -#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:100 +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:88 +msgid "Bars" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:89 +msgid "Oval" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:90 +msgid "Dots" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:101 +msgid "Display Settings" +msgstr "Visningsinställningar" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:107 +msgid "Language" +msgstr "Språk" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:115 +msgid "Use pseudo language" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:122 +msgid "Color Mode" +msgstr "Färgläge" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:133 +msgid "Highlight color" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:145 +msgid "Example" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:151 msgid "White color" msgstr "Vitfärg" -#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:108 +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:167 msgid "Black color" msgstr "Svart färg" -#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:116 +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:183 msgid "Border Radius" msgstr "Gränsradie" -#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:132 +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:199 msgid "Loader" msgstr "Lastare" @@ -3673,89 +4400,156 @@ msgstr "Lastare" #~ msgid "Advanced Amininistrative Options for InvenTree" #~ msgstr "Advanced Amininistrative Options for InvenTree" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:104 +#: src/pages/Index/Settings/AdminCenter/CurrencyManagmentPanel.tsx:27 +#: src/tables/ColumnRenderers.tsx:262 +msgid "Currency" +msgstr "Valuta" + +#: src/pages/Index/Settings/AdminCenter/CurrencyManagmentPanel.tsx:32 +msgid "Rate" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/CurrencyManagmentPanel.tsx:44 +msgid "Exchange rates updated" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/CurrencyManagmentPanel.tsx:50 +msgid "Exchange rate update error" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/CurrencyManagmentPanel.tsx:62 +msgid "Refresh currency exchange rates" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/CurrencyManagmentPanel.tsx:99 +msgid "Last fetched" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/CurrencyManagmentPanel.tsx:100 +msgid "Base currency" +msgstr "Basvaluta" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:115 msgid "Data Import" msgstr "" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:110 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:121 +msgid "Barcode Scans" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:127 msgid "Background Tasks" msgstr "" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:116 -msgid "Error Reports" -msgstr "" - -#: src/pages/Index/Settings/AdminCenter/Index.tsx:122 -msgid "Currencies" -msgstr "Valutor" - #: src/pages/Index/Settings/AdminCenter/Index.tsx:127 #~ msgid "Templates" #~ msgstr "Templates" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:140 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:133 +msgid "Error Reports" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:139 +msgid "Currencies" +msgstr "Valutor" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:157 +msgid "Custom States" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:163 +#: src/pages/Index/Settings/AdminCenter/UnitManagmentPanel.tsx:58 msgid "Custom Units" msgstr "" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:146 -#: src/pages/part/CategoryDetail.tsx:264 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:169 +#: src/pages/part/CategoryDetail.tsx:269 msgid "Part Parameters" msgstr "" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:152 -msgid "Category Parameters" -msgstr "" - -#: src/pages/Index/Settings/AdminCenter/Index.tsx:170 -msgid "Location Types" -msgstr "" - #: src/pages/Index/Settings/AdminCenter/Index.tsx:170 #~ msgid "Location types" #~ msgstr "Location types" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:182 -#: src/tables/machine/MachineTypeTable.tsx:287 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:175 +msgid "Category Parameters" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:181 +msgid "Stocktake" +msgstr "Inventering" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:199 +msgid "Location Types" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:211 +#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:48 +#: src/tables/machine/MachineTypeTable.tsx:308 msgid "Machines" msgstr "" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:192 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:221 msgid "Quick Actions" -msgstr "" +msgstr "Snabbåtgärder" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:197 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:226 msgid "Add a new user" msgstr "Lägg till en ny användare" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:222 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:252 msgid "Advanced Options" msgstr "" #: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:43 -msgid "Machine types" -msgstr "" +#~ msgid "Machine types" +#~ msgstr "Machine types" #: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:53 -msgid "Machine Error Stack" +#~ msgid "Machine Error Stack" +#~ msgstr "Machine Error Stack" + +#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:56 +msgid "Machine Types" msgstr "" #: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:62 -msgid "There are no machine registry errors." +#~ msgid "There are no machine registry errors." +#~ msgstr "There are no machine registry errors." + +#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:64 +msgid "Machine Errors" msgstr "" -#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:28 -#: src/tables/settings/UserTable.tsx:119 +#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:77 +msgid "Registry Registry Errors" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:80 +msgid "There are machine registry errors" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:86 +msgid "Machine Registry Errors" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:89 +msgid "There are no machine registry errors" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:31 +#: src/tables/settings/UserTable.tsx:118 msgid "Info" msgstr "" -#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:32 -msgid "External plugins are not enabled for this InvenTree installation." -msgstr "" - #: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:33 #~ msgid "Plugin Error Stack" #~ msgstr "Plugin Error Stack" +#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:35 +msgid "External plugins are not enabled for this InvenTree installation." +msgstr "" + #: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:45 #~ msgid "Warning" #~ msgstr "Warning" @@ -3764,34 +4558,46 @@ msgstr "" #~ msgid "Changing the settings below require you to immediately restart the server. Do not change this while under active usage." #~ msgstr "Changing the settings below require you to immediately restart the server. Do not change this while under active usage." -#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:50 +#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:73 msgid "Plugin Errors" msgstr "" -#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:59 -msgid "Plugin Settings" +#: src/pages/Index/Settings/AdminCenter/ReportTemplatePanel.tsx:17 +msgid "Page Size" +msgstr "Sidstorlek" + +#: src/pages/Index/Settings/AdminCenter/ReportTemplatePanel.tsx:20 +msgid "Landscape" msgstr "" -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:53 -msgid "Background Worker Not Running" +#: src/pages/Index/Settings/AdminCenter/ReportTemplatePanel.tsx:26 +msgid "Attach to Model" msgstr "" -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:54 +#: src/pages/Index/Settings/AdminCenter/StocktakePanel.tsx:25 +msgid "Stocktake Reports" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:30 msgid "The background task manager service is not running. Contact your system administrator." msgstr "" -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:60 -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:76 +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:35 +#~ msgid "Background Worker Not Running" +#~ msgstr "Background Worker Not Running" + +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:36 +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:45 msgid "Pending Tasks" msgstr "" -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:64 -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:84 +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:37 +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:53 msgid "Scheduled Tasks" msgstr "" -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:68 -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:92 +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:38 +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:61 msgid "Failed Tasks" msgstr "" @@ -3811,11 +4617,6 @@ msgstr "" #~ msgid "Reports" #~ msgstr "Reports" -#: src/pages/Index/Settings/AdminCenter/TemplateManagementPanel.tsx:89 -#: src/pages/build/BuildDetail.tsx:373 -#~ msgid "Report" -#~ msgstr "Report" - #: src/pages/Index/Settings/AdminCenter/TemplateManagementPanel.tsx:99 #~ msgid "Purchase order" #~ msgstr "Purchase order" @@ -3836,23 +4637,35 @@ msgstr "" #~ msgid "Stock location" #~ msgstr "Stock location" +#: src/pages/Index/Settings/AdminCenter/UnitManagmentPanel.tsx:21 +msgid "Alias" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/UnitManagmentPanel.tsx:22 +msgid "Dimensionless" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/UnitManagmentPanel.tsx:66 +msgid "All units" +msgstr "" + #: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:32 msgid "Select settings relevant for user lifecycle. More available in" msgstr "" #: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:37 -msgid "System settings" -msgstr "" +#~ msgid "System settings" +#~ msgstr "System settings" -#: src/pages/Index/Settings/SystemSettings.tsx:67 +#: src/pages/Index/Settings/SystemSettings.tsx:66 msgid "Login" msgstr "Logga in" -#: src/pages/Index/Settings/SystemSettings.tsx:93 +#: src/pages/Index/Settings/SystemSettings.tsx:92 msgid "Barcodes" msgstr "Streckkoder" -#: src/pages/Index/Settings/SystemSettings.tsx:115 +#: src/pages/Index/Settings/SystemSettings.tsx:116 msgid "Pricing" msgstr "Prissättning" @@ -3864,64 +4677,46 @@ msgstr "Prissättning" #~ msgid "Exchange Rates" #~ msgstr "Exchange Rates" -#: src/pages/Index/Settings/SystemSettings.tsx:150 +#: src/pages/Index/Settings/SystemSettings.tsx:151 msgid "Labels" msgstr "Etiketter" -#: src/pages/Index/Settings/SystemSettings.tsx:156 -#: src/pages/Index/Settings/UserSettings.tsx:132 +#: src/pages/Index/Settings/SystemSettings.tsx:157 +#: src/pages/Index/Settings/UserSettings.tsx:133 msgid "Reporting" msgstr "Rapportering" #: src/pages/Index/Settings/SystemSettings.tsx:231 -#: src/pages/part/PartDetail.tsx:682 -msgid "Stocktake" -msgstr "Inventering" - -#: src/pages/Index/Settings/SystemSettings.tsx:237 -#: src/pages/build/BuildDetail.tsx:554 -#: src/pages/build/BuildIndex.tsx:22 -#: src/pages/part/PartDetail.tsx:616 -#: src/pages/sales/SalesOrderDetail.tsx:333 +#: src/pages/build/BuildIndex.tsx:27 +#: src/pages/part/PartDetail.tsx:636 +#: src/pages/sales/SalesOrderDetail.tsx:355 msgid "Build Orders" msgstr "Byggordrar" -#: src/pages/Index/Settings/SystemSettings.tsx:318 -msgid "Switch to User Setting" -msgstr "Växla till användarinställningar" +#: src/pages/Index/Settings/SystemSettings.tsx:317 +#~ msgid "Switch to User Setting" +#~ msgstr "Switch to User Setting" -#: src/pages/Index/Settings/UserSettings.tsx:34 +#: src/pages/Index/Settings/UserSettings.tsx:35 msgid "Account" msgstr "Konto" -#: src/pages/Index/Settings/UserSettings.tsx:40 +#: src/pages/Index/Settings/UserSettings.tsx:41 msgid "Security" msgstr "Säkerhet" -#: src/pages/Index/Settings/UserSettings.tsx:78 +#: src/pages/Index/Settings/UserSettings.tsx:79 msgid "Display Options" msgstr "Visningsalternativ" -#: src/pages/Index/Settings/UserSettings.tsx:150 -msgid "Account Settings" -msgstr "Kontoinställningar" - -#: src/pages/Index/Settings/UserSettings.tsx:158 -msgid "Switch to System Setting" -msgstr "Växla till systeminställning" - -#: src/pages/Index/UserSettings.tsx:103 -#~ msgid "User Settings" -#~ msgstr "User Settings" +#: src/pages/Index/Settings/UserSettings.tsx:159 +#~ msgid "Switch to System Setting" +#~ msgstr "Switch to System Setting" #: src/pages/Logged-In.tsx:24 #~ msgid "Found an exsisting login - using it to log you in." #~ msgstr "Found an exsisting login - using it to log you in." -#: src/pages/NotFound.tsx:17 -#~ msgid "Not Found" -#~ msgstr "Not Found" - #: src/pages/NotFound.tsx:20 #~ msgid "Sorry, this page is not known or was moved." #~ msgstr "Sorry, this page is not known or was moved." @@ -3942,115 +4737,93 @@ msgstr "Markera som oläst" #~ msgid "Build Status" #~ msgstr "Build Status" -#: src/pages/build/BuildDetail.tsx:102 -#: src/pages/part/PartDetail.tsx:150 +#: src/pages/build/BuildDetail.tsx:97 +#: src/pages/company/ManufacturerPartDetail.tsx:81 +#: src/pages/company/SupplierPartDetail.tsx:91 +#: src/pages/part/PartDetail.tsx:171 +#: src/pages/stock/StockDetail.tsx:122 #: src/tables/bom/BomTable.tsx:118 #: src/tables/bom/UsedInTable.tsx:39 -#: src/tables/build/BuildLineTable.tsx:173 -#: src/tables/build/BuildOrderTable.tsx:55 -#: src/tables/sales/SalesOrderLineItemTable.tsx:62 -#: src/tables/stock/StockItemTable.tsx:53 +#: src/tables/build/BuildAllocatedStockTable.tsx:104 +#: src/tables/build/BuildLineTable.tsx:324 +#: src/tables/build/BuildOrderTable.tsx:64 +#: src/tables/sales/SalesOrderLineItemTable.tsx:70 +#: src/tables/stock/StockItemTable.tsx:54 msgid "IPN" msgstr "IAN" -#: src/pages/build/BuildDetail.tsx:115 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:121 -#: src/pages/sales/ReturnOrderDetail.tsx:95 -#: src/pages/sales/SalesOrderDetail.tsx:101 -#: src/tables/ColumnRenderers.tsx:121 -#: src/tables/build/BuildAllocatedStockTable.tsx:90 -#: src/tables/build/BuildLineTable.tsx:184 +#: src/pages/build/BuildDetail.tsx:110 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:115 +#: src/pages/sales/ReturnOrderDetail.tsx:86 +#: src/pages/sales/SalesOrderDetail.tsx:95 +#: src/tables/ColumnRenderers.tsx:132 +#: src/tables/build/BuildAllocatedStockTable.tsx:111 +#: src/tables/build/BuildLineTable.tsx:335 msgid "Reference" msgstr "Referens" -#: src/pages/build/BuildDetail.tsx:121 -#: src/pages/company/CompanyDetail.tsx:90 -#: src/pages/company/ManufacturerPartDetail.tsx:83 -#: src/pages/company/SupplierPartDetail.tsx:96 -#: src/pages/part/CategoryDetail.tsx:101 -#: src/pages/part/PartDetail.tsx:157 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:142 -#: src/pages/sales/ReturnOrderDetail.tsx:115 -#: src/pages/sales/SalesOrderDetail.tsx:121 -#: src/pages/stock/LocationDetail.tsx:109 -#: src/tables/ColumnRenderers.tsx:81 -#: src/tables/bom/UsedInTable.tsx:44 -#: src/tables/build/BuildAllocatedStockTable.tsx:70 -#: src/tables/build/BuildLineTable.tsx:178 -#: src/tables/machine/MachineTypeTable.tsx:69 -#: src/tables/machine/MachineTypeTable.tsx:112 -#: src/tables/machine/MachineTypeTable.tsx:219 -#: src/tables/machine/MachineTypeTable.tsx:323 -#: src/tables/part/RelatedPartTable.tsx:64 -#: src/tables/plugin/PluginListTable.tsx:129 -#: src/tables/plugin/PluginListTable.tsx:276 -#: src/tables/sales/SalesOrderAllocationTable.tsx:56 -#: src/tables/sales/SalesOrderLineItemTable.tsx:67 -#: src/tables/stock/LocationTypesTable.tsx:74 -msgid "Description" -msgstr "Beskrivning" - -#: src/pages/build/BuildDetail.tsx:129 +#: src/pages/build/BuildDetail.tsx:124 msgid "Parent Build" msgstr "Föregående tillverkning" -#: src/pages/build/BuildDetail.tsx:140 +#: src/pages/build/BuildDetail.tsx:135 msgid "Build Quantity" msgstr "Tillverkat antal" -#: src/pages/build/BuildDetail.tsx:148 -#: src/pages/build/BuildDetail.tsx:274 +#: src/pages/build/BuildDetail.tsx:143 +#: src/pages/build/BuildDetail.tsx:277 msgid "Completed Outputs" msgstr "Slutförd produktion" -#: src/pages/build/BuildDetail.tsx:165 -#: src/tables/build/BuildOrderTable.tsx:151 +#: src/pages/build/BuildDetail.tsx:160 +#: src/tables/build/BuildOrderTable.tsx:142 msgid "Issued By" msgstr "Utfärdad av" -#: src/pages/build/BuildDetail.tsx:172 -#: src/pages/part/PartDetail.tsx:365 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:220 -#: src/pages/sales/ReturnOrderDetail.tsx:199 -#: src/pages/sales/SalesOrderDetail.tsx:208 -#: src/tables/build/BuildOrderTable.tsx:157 -#: src/tables/purchasing/PurchaseOrderTable.tsx:75 -#: src/tables/sales/ReturnOrderTable.tsx:66 -#: src/tables/sales/SalesOrderTable.tsx:73 +#: src/pages/build/BuildDetail.tsx:167 +#: src/pages/part/PartDetail.tsx:406 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:244 +#: src/pages/sales/ReturnOrderDetail.tsx:216 +#: src/pages/sales/SalesOrderDetail.tsx:226 +#: src/tables/build/BuildOrderTable.tsx:148 +#: src/tables/purchasing/PurchaseOrderTable.tsx:76 +#: src/tables/sales/ReturnOrderTable.tsx:74 +#: src/tables/sales/SalesOrderTable.tsx:74 msgid "Responsible" msgstr "Ansvarig" -#: src/pages/build/BuildDetail.tsx:179 -#: src/tables/settings/PendingTasksTable.tsx:32 +#: src/pages/build/BuildDetail.tsx:174 +#: src/tables/settings/PendingTasksTable.tsx:36 msgid "Created" msgstr "Skapad" +#: src/pages/build/BuildDetail.tsx:181 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:229 +#: src/pages/sales/ReturnOrderDetail.tsx:201 +#: src/pages/sales/SalesOrderDetail.tsx:212 +#: src/tables/ColumnRenderers.tsx:226 +#: src/tables/part/PartPurchaseOrdersTable.tsx:100 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:135 +#: src/tables/sales/SalesOrderLineItemTable.tsx:107 +msgid "Target Date" +msgstr "Färdigdatum" + #: src/pages/build/BuildDetail.tsx:185 #: src/pages/part/PartDetail.tsx:269 #: src/pages/stock/StockDetail.tsx:150 #~ msgid "View part barcode" #~ msgstr "View part barcode" -#: src/pages/build/BuildDetail.tsx:186 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:213 -#: src/pages/sales/ReturnOrderDetail.tsx:192 -#: src/pages/sales/SalesOrderDetail.tsx:201 -#: src/tables/ColumnRenderers.tsx:212 -#: src/tables/part/PartPurchaseOrdersTable.tsx:99 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:110 -#: src/tables/sales/SalesOrderLineItemTable.tsx:99 -msgid "Target Date" -msgstr "Färdigdatum" +#: src/pages/build/BuildDetail.tsx:188 +#: src/tables/sales/SalesOrderLineItemTable.tsx:281 +msgid "Completed" +msgstr "Slutförd" #: src/pages/build/BuildDetail.tsx:190 #: src/pages/part/PartDetail.tsx:274 #~ msgid "Link custom barcode to part" #~ msgstr "Link custom barcode to part" -#: src/pages/build/BuildDetail.tsx:193 -msgid "Completed" -msgstr "Slutförd" - #: src/pages/build/BuildDetail.tsx:196 #: src/pages/part/PartDetail.tsx:280 #~ msgid "Unlink custom barcode from part" @@ -4060,15 +4833,11 @@ msgstr "Slutförd" #~ msgid "Build Order updated" #~ msgstr "Build Order updated" -#: src/pages/build/BuildDetail.tsx:205 -msgid "Source Location" -msgstr "" - -#: src/pages/build/BuildDetail.tsx:206 +#: src/pages/build/BuildDetail.tsx:209 msgid "Any location" msgstr "Alla platser" -#: src/pages/build/BuildDetail.tsx:213 +#: src/pages/build/BuildDetail.tsx:216 msgid "Destination Location" msgstr "Destinationsplats" @@ -4084,206 +4853,182 @@ msgstr "Destinationsplats" #~ msgid "Delete build order" #~ msgstr "Delete build order" -#: src/pages/build/BuildDetail.tsx:251 +#: src/pages/build/BuildDetail.tsx:254 msgid "Build Details" msgstr "Tillverknings Detaljer" -#: src/pages/build/BuildDetail.tsx:257 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:258 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:267 -#: src/pages/sales/ReturnOrderDetail.tsx:130 -#: src/pages/sales/ReturnOrderDetail.tsx:237 -#: src/pages/sales/ReturnOrderDetail.tsx:246 -#: src/pages/sales/SalesOrderDetail.tsx:272 -#: src/pages/sales/SalesOrderDetail.tsx:281 +#: src/pages/build/BuildDetail.tsx:260 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:282 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:291 +#: src/pages/sales/ReturnOrderDetail.tsx:122 +#: src/pages/sales/ReturnOrderDetail.tsx:254 +#: src/pages/sales/ReturnOrderDetail.tsx:263 +#: src/pages/sales/SalesOrderDetail.tsx:294 +#: src/pages/sales/SalesOrderDetail.tsx:303 msgid "Line Items" msgstr "Radartiklar" -#: src/pages/build/BuildDetail.tsx:267 +#: src/pages/build/BuildDetail.tsx:266 msgid "Incomplete Outputs" msgstr "Ofullständig produktion" -#: src/pages/build/BuildDetail.tsx:289 -#: src/pages/sales/SalesOrderDetail.tsx:319 +#: src/pages/build/BuildDetail.tsx:292 +#: src/pages/sales/SalesOrderDetail.tsx:341 msgid "Allocated Stock" msgstr "Allokerat lager" -#: src/pages/build/BuildDetail.tsx:299 +#: src/pages/build/BuildDetail.tsx:302 msgid "Consumed Stock" msgstr "Förbrukat lager" -#: src/pages/build/BuildDetail.tsx:313 +#: src/pages/build/BuildDetail.tsx:316 msgid "Child Build Orders" msgstr "Underordnad tillverknings order" #: src/pages/build/BuildDetail.tsx:326 -#: src/tables/build/BuildOutputTable.tsx:384 -#: src/tables/stock/StockItemTestResultTable.tsx:150 +#: src/tables/build/BuildOutputTable.tsx:532 +#: src/tables/stock/StockItemTestResultTable.tsx:156 msgid "Test Results" msgstr "Test resultat" #: src/pages/build/BuildDetail.tsx:337 -#: src/pages/part/PartDetail.tsx:699 +#: src/pages/part/PartDetail.tsx:740 msgid "Test Statistics" msgstr "Test statistik" -#: src/pages/build/BuildDetail.tsx:351 -#: src/pages/company/CompanyDetail.tsx:259 -#: src/pages/company/ManufacturerPartDetail.tsx:179 -#: src/pages/part/PartDetail.tsx:721 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:309 -#: src/pages/sales/ReturnOrderDetail.tsx:274 -#: src/pages/sales/SalesOrderDetail.tsx:343 -#: src/pages/stock/StockDetail.tsx:385 -msgid "Attachments" -msgstr "Bilagor" - -#: src/pages/build/BuildDetail.tsx:359 -#: src/pages/company/CompanyDetail.tsx:270 -#: src/pages/company/ManufacturerPartDetail.tsx:190 -#: src/pages/company/SupplierPartDetail.tsx:257 -#: src/pages/part/PartDetail.tsx:729 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:320 -#: src/pages/sales/ReturnOrderDetail.tsx:285 -#: src/pages/sales/SalesOrderDetail.tsx:354 -#: src/pages/stock/StockDetail.tsx:396 -#: src/tables/build/BuildOrderTestTable.tsx:142 -#: src/tables/stock/StockTrackingTable.tsx:189 -msgid "Notes" -msgstr "Anteckningar" +#: src/pages/build/BuildDetail.tsx:365 +msgid "Edit Build Order" +msgstr "Redigera Tillverknings order" #: src/pages/build/BuildDetail.tsx:368 #~ msgid "Reporting Actions" #~ msgstr "Reporting Actions" +#: src/pages/build/BuildDetail.tsx:372 +#: src/tables/build/BuildOrderTable.tsx:173 +#: src/tables/build/BuildOrderTable.tsx:188 +msgid "Add Build Order" +msgstr "Lägg till Tillverknings order" + #: src/pages/build/BuildDetail.tsx:374 #~ msgid "Print build report" #~ msgstr "Print build report" -#: src/pages/build/BuildDetail.tsx:377 -msgid "Edit Build Order" -msgstr "Redigera Tillverknings order" - -#: src/pages/build/BuildDetail.tsx:384 -#: src/tables/build/BuildOrderTable.tsx:172 -#: src/tables/build/BuildOrderTable.tsx:187 -msgid "Add Build Order" -msgstr "Lägg till Tillverknings order" - -#: src/pages/build/BuildDetail.tsx:398 +#: src/pages/build/BuildDetail.tsx:386 msgid "Cancel Build Order" msgstr "Avbryt Tillverknings order" -#: src/pages/build/BuildDetail.tsx:400 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:348 -#: src/pages/sales/SalesOrderDetail.tsx:380 +#: src/pages/build/BuildDetail.tsx:388 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:357 +#: src/pages/sales/ReturnOrderDetail.tsx:354 +#: src/pages/sales/SalesOrderDetail.tsx:387 msgid "Order cancelled" msgstr "Order avbruten" -#: src/pages/build/BuildDetail.tsx:401 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:347 -#: src/pages/sales/ReturnOrderDetail.tsx:346 -#: src/pages/sales/SalesOrderDetail.tsx:379 +#: src/pages/build/BuildDetail.tsx:389 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:356 +#: src/pages/sales/ReturnOrderDetail.tsx:353 +#: src/pages/sales/SalesOrderDetail.tsx:386 msgid "Cancel this order" msgstr "Avbryt denna order" -#: src/pages/build/BuildDetail.tsx:410 +#: src/pages/build/BuildDetail.tsx:398 msgid "Hold Build Order" msgstr "" -#: src/pages/build/BuildDetail.tsx:412 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:355 -#: src/pages/sales/ReturnOrderDetail.tsx:354 -#: src/pages/sales/SalesOrderDetail.tsx:387 +#: src/pages/build/BuildDetail.tsx:400 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:364 +#: src/pages/sales/ReturnOrderDetail.tsx:361 +#: src/pages/sales/SalesOrderDetail.tsx:394 msgid "Place this order on hold" msgstr "Pausa denna order" -#: src/pages/build/BuildDetail.tsx:413 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:356 -#: src/pages/sales/ReturnOrderDetail.tsx:355 -#: src/pages/sales/SalesOrderDetail.tsx:388 +#: src/pages/build/BuildDetail.tsx:401 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:365 +#: src/pages/sales/ReturnOrderDetail.tsx:362 +#: src/pages/sales/SalesOrderDetail.tsx:395 msgid "Order placed on hold" msgstr "Ordern är pausad" -#: src/pages/build/BuildDetail.tsx:418 +#: src/pages/build/BuildDetail.tsx:406 msgid "Issue Build Order" msgstr "Utfärda tillverknings order" -#: src/pages/build/BuildDetail.tsx:420 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:339 -#: src/pages/sales/ReturnOrderDetail.tsx:338 -#: src/pages/sales/SalesOrderDetail.tsx:371 +#: src/pages/build/BuildDetail.tsx:408 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:348 +#: src/pages/sales/ReturnOrderDetail.tsx:345 +#: src/pages/sales/SalesOrderDetail.tsx:378 msgid "Issue this order" msgstr "Utfärda denna order" -#: src/pages/build/BuildDetail.tsx:421 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:340 -#: src/pages/sales/ReturnOrderDetail.tsx:339 -#: src/pages/sales/SalesOrderDetail.tsx:372 +#: src/pages/build/BuildDetail.tsx:409 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:349 +#: src/pages/sales/ReturnOrderDetail.tsx:346 +#: src/pages/sales/SalesOrderDetail.tsx:379 msgid "Order issued" msgstr "Order utfärdad" -#: src/pages/build/BuildDetail.tsx:426 +#: src/pages/build/BuildDetail.tsx:414 msgid "Complete Build Order" msgstr "Slutför tillverknings order" -#: src/pages/build/BuildDetail.tsx:428 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:368 -#: src/pages/sales/ReturnOrderDetail.tsx:362 -#: src/pages/sales/SalesOrderDetail.tsx:395 +#: src/pages/build/BuildDetail.tsx:416 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:377 +#: src/pages/sales/ReturnOrderDetail.tsx:369 +#: src/pages/sales/SalesOrderDetail.tsx:402 msgid "Mark this order as complete" msgstr "Markera denna order som slutförd" -#: src/pages/build/BuildDetail.tsx:429 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:362 -#: src/pages/sales/ReturnOrderDetail.tsx:363 -#: src/pages/sales/SalesOrderDetail.tsx:396 +#: src/pages/build/BuildDetail.tsx:417 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:371 +#: src/pages/sales/ReturnOrderDetail.tsx:370 +#: src/pages/sales/SalesOrderDetail.tsx:403 msgid "Order completed" msgstr "Order slutförd" -#: src/pages/build/BuildDetail.tsx:460 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:391 -#: src/pages/sales/ReturnOrderDetail.tsx:392 -#: src/pages/sales/SalesOrderDetail.tsx:425 +#: src/pages/build/BuildDetail.tsx:448 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:400 +#: src/pages/sales/ReturnOrderDetail.tsx:399 +#: src/pages/sales/SalesOrderDetail.tsx:432 msgid "Issue Order" msgstr "Utfärda Order" -#: src/pages/build/BuildDetail.tsx:467 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:398 -#: src/pages/sales/ReturnOrderDetail.tsx:399 -#: src/pages/sales/SalesOrderDetail.tsx:439 +#: src/pages/build/BuildDetail.tsx:455 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:407 +#: src/pages/sales/ReturnOrderDetail.tsx:406 +#: src/pages/sales/SalesOrderDetail.tsx:446 msgid "Complete Order" msgstr "Slutför Order" -#: src/pages/build/BuildDetail.tsx:496 +#: src/pages/build/BuildDetail.tsx:473 msgid "Build Order Actions" msgstr "Åtgärder Tillverknings order" -#: src/pages/build/BuildDetail.tsx:502 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:432 -#: src/pages/sales/ReturnOrderDetail.tsx:433 -#: src/pages/sales/SalesOrderDetail.tsx:474 +#: src/pages/build/BuildDetail.tsx:478 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:429 +#: src/pages/sales/ReturnOrderDetail.tsx:428 +#: src/pages/sales/SalesOrderDetail.tsx:469 msgid "Edit order" msgstr "Redigera order" -#: src/pages/build/BuildDetail.tsx:506 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:440 -#: src/pages/sales/ReturnOrderDetail.tsx:439 -#: src/pages/sales/SalesOrderDetail.tsx:479 +#: src/pages/build/BuildDetail.tsx:482 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:437 +#: src/pages/sales/ReturnOrderDetail.tsx:434 +#: src/pages/sales/SalesOrderDetail.tsx:474 msgid "Duplicate order" msgstr "Duplicera order" -#: src/pages/build/BuildDetail.tsx:510 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:443 -#: src/pages/sales/ReturnOrderDetail.tsx:444 -#: src/pages/sales/SalesOrderDetail.tsx:482 +#: src/pages/build/BuildDetail.tsx:486 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:440 +#: src/pages/sales/ReturnOrderDetail.tsx:439 +#: src/pages/sales/SalesOrderDetail.tsx:477 msgid "Hold order" msgstr "Pausa order" -#: src/pages/build/BuildDetail.tsx:515 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:448 -#: src/pages/sales/ReturnOrderDetail.tsx:449 -#: src/pages/sales/SalesOrderDetail.tsx:487 +#: src/pages/build/BuildDetail.tsx:491 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:445 +#: src/pages/sales/ReturnOrderDetail.tsx:444 +#: src/pages/sales/SalesOrderDetail.tsx:482 msgid "Cancel order" msgstr "Avbryt order" @@ -4295,57 +5040,61 @@ msgstr "Avbryt order" #~ msgid "New Build Order" #~ msgstr "New Build Order" -#: src/pages/company/CompanyDetail.tsx:104 +#: src/pages/company/CompanyDetail.tsx:95 +msgid "Website" +msgstr "Webbplats" + +#: src/pages/company/CompanyDetail.tsx:103 msgid "Phone Number" msgstr "Telefonnummer" -#: src/pages/company/CompanyDetail.tsx:111 +#: src/pages/company/CompanyDetail.tsx:110 msgid "Email Address" msgstr "E-postadress" -#: src/pages/company/CompanyDetail.tsx:121 +#: src/pages/company/CompanyDetail.tsx:120 msgid "Default Currency" msgstr "Standardvaluta" -#: src/pages/company/CompanyDetail.tsx:126 +#: src/pages/company/CompanyDetail.tsx:125 #: src/pages/company/SupplierDetail.tsx:8 -#: src/pages/company/SupplierPartDetail.tsx:120 -#: src/pages/company/SupplierPartDetail.tsx:206 -#: src/pages/company/SupplierPartDetail.tsx:351 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:136 -#: src/tables/company/CompanyTable.tsx:100 +#: src/pages/company/SupplierPartDetail.tsx:125 +#: src/pages/company/SupplierPartDetail.tsx:218 +#: src/pages/company/SupplierPartDetail.tsx:340 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:130 +#: src/tables/company/CompanyTable.tsx:101 #: src/tables/part/PartPurchaseOrdersTable.tsx:42 -#: src/tables/purchasing/PurchaseOrderTable.tsx:88 +#: src/tables/purchasing/PurchaseOrderTable.tsx:89 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:36 msgid "Supplier" msgstr "Leverantör" -#: src/pages/company/CompanyDetail.tsx:132 +#: src/pages/company/CompanyDetail.tsx:131 #: src/pages/company/ManufacturerDetail.tsx:8 -#: src/pages/company/ManufacturerPartDetail.tsx:101 -#: src/pages/company/ManufacturerPartDetail.tsx:267 -#: src/pages/company/SupplierPartDetail.tsx:135 -#: src/tables/company/CompanyTable.tsx:105 +#: src/pages/company/ManufacturerPartDetail.tsx:100 +#: src/pages/company/ManufacturerPartDetail.tsx:262 +#: src/pages/company/SupplierPartDetail.tsx:147 +#: src/tables/company/CompanyTable.tsx:106 msgid "Manufacturer" msgstr "Tillverkare" -#: src/pages/company/CompanyDetail.tsx:138 +#: src/pages/company/CompanyDetail.tsx:137 #: src/pages/company/CustomerDetail.tsx:8 -#: src/pages/part/pricing/SaleHistoryPanel.tsx:29 -#: src/pages/sales/ReturnOrderDetail.tsx:109 -#: src/pages/sales/SalesOrderDetail.tsx:115 -#: src/pages/stock/StockDetail.tsx:230 -#: src/tables/company/CompanyTable.tsx:110 -#: src/tables/sales/ReturnOrderTable.tsx:78 -#: src/tables/sales/SalesOrderTable.tsx:108 -#: src/tables/stock/StockTrackingTable.tsx:140 +#: src/pages/part/pricing/SaleHistoryPanel.tsx:31 +#: src/pages/sales/ReturnOrderDetail.tsx:101 +#: src/pages/sales/SalesOrderDetail.tsx:110 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:100 +#: src/pages/stock/StockDetail.tsx:271 +#: src/tables/company/CompanyTable.tsx:111 +#: src/tables/sales/ReturnOrderTable.tsx:97 +#: src/tables/sales/SalesOrderTable.tsx:121 +#: src/tables/stock/StockTrackingTable.tsx:144 msgid "Customer" msgstr "Kund" #: src/pages/company/CompanyDetail.tsx:172 -#: src/tables/stock/StockTrackingTable.tsx:183 -msgid "Details" -msgstr "Detaljer" +msgid "Company Details" +msgstr "" #: src/pages/company/CompanyDetail.tsx:175 #~ msgid "Edit company" @@ -4363,140 +5112,150 @@ msgstr "Leverantörsartiklar" #~ msgid "Delete company" #~ msgstr "Delete company" -#: src/pages/company/CompanyDetail.tsx:232 +#: src/pages/company/CompanyDetail.tsx:234 msgid "Assigned Stock" msgstr "Tilldelad Lager" -#: src/pages/company/CompanyDetail.tsx:290 -#: src/tables/company/CompanyTable.tsx:86 +#: src/pages/company/CompanyDetail.tsx:273 +#: src/tables/company/CompanyTable.tsx:87 msgid "Edit Company" msgstr "Redigera företag" -#: src/pages/company/CompanyDetail.tsx:298 +#: src/pages/company/CompanyDetail.tsx:281 msgid "Delete Company" -msgstr "" +msgstr "Radera företag" -#: src/pages/company/CompanyDetail.tsx:306 +#: src/pages/company/CompanyDetail.tsx:289 msgid "Company Actions" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:76 -#: src/pages/company/SupplierPartDetail.tsx:89 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:128 +#: src/pages/company/ManufacturerPartDetail.tsx:74 +#: src/pages/company/SupplierPartDetail.tsx:84 msgid "Internal Part" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:91 -#: src/pages/company/SupplierPartDetail.tsx:103 -msgid "External Link" -msgstr "" - -#: src/pages/company/ManufacturerPartDetail.tsx:109 -#: src/pages/company/SupplierPartDetail.tsx:144 -#: src/tables/purchasing/ManufacturerPartTable.tsx:56 +#: src/pages/company/ManufacturerPartDetail.tsx:108 +#: src/pages/company/SupplierPartDetail.tsx:156 +#: src/tables/purchasing/ManufacturerPartTable.tsx:58 msgid "Manufacturer Part Number" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:138 +#: src/pages/company/ManufacturerPartDetail.tsx:125 +#: src/pages/company/SupplierPartDetail.tsx:108 +msgid "External Link" +msgstr "" + +#: src/pages/company/ManufacturerPartDetail.tsx:146 +#: src/pages/company/SupplierPartDetail.tsx:215 +#: src/pages/part/PartDetail.tsx:576 +msgid "Part Details" +msgstr "Artikel Detaljer" + +#: src/pages/company/ManufacturerPartDetail.tsx:149 msgid "Manufacturer Details" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:147 +#: src/pages/company/ManufacturerPartDetail.tsx:158 msgid "Manufacturer Part Details" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:153 -#: src/pages/part/PartDetail.tsx:532 +#: src/pages/company/ManufacturerPartDetail.tsx:164 +#: src/pages/part/PartDetail.tsx:582 msgid "Parameters" msgstr "Parametrar" -#: src/pages/company/ManufacturerPartDetail.tsx:165 -#: src/pages/part/PartDetail.tsx:649 +#: src/pages/company/ManufacturerPartDetail.tsx:176 +#: src/pages/part/PartDetail.tsx:669 #: src/pages/purchasing/PurchasingIndex.tsx:31 msgid "Suppliers" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:208 -#: src/tables/purchasing/ManufacturerPartTable.tsx:84 +#: src/pages/company/ManufacturerPartDetail.tsx:204 +#: src/tables/purchasing/ManufacturerPartTable.tsx:86 msgid "Edit Manufacturer Part" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:215 -#: src/tables/purchasing/ManufacturerPartTable.tsx:72 -#: src/tables/purchasing/ManufacturerPartTable.tsx:103 +#: src/pages/company/ManufacturerPartDetail.tsx:211 +#: src/tables/purchasing/ManufacturerPartTable.tsx:74 +#: src/tables/purchasing/ManufacturerPartTable.tsx:106 msgid "Add Manufacturer Part" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:227 -#: src/tables/purchasing/ManufacturerPartTable.tsx:92 +#: src/pages/company/ManufacturerPartDetail.tsx:223 +#: src/tables/purchasing/ManufacturerPartTable.tsx:94 msgid "Delete Manufacturer Part" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:240 +#: src/pages/company/ManufacturerPartDetail.tsx:236 msgid "Manufacturer Part Actions" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:281 +#: src/pages/company/ManufacturerPartDetail.tsx:276 msgid "ManufacturerPart" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:163 -#: src/tables/part/PartPurchaseOrdersTable.tsx:71 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:156 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:197 -#: src/tables/purchasing/SupplierPartTable.tsx:131 +#: src/pages/company/SupplierPartDetail.tsx:99 +msgid "Part Description" +msgstr "" + +#: src/pages/company/SupplierPartDetail.tsx:175 +#: src/tables/part/PartPurchaseOrdersTable.tsx:72 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:162 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:203 +#: src/tables/purchasing/SupplierPartTable.tsx:133 msgid "Pack Quantity" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:174 +#: src/pages/company/SupplierPartDetail.tsx:186 msgid "Supplier Availability" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:181 +#: src/pages/company/SupplierPartDetail.tsx:193 msgid "Availability Updated" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:208 +#: src/pages/company/SupplierPartDetail.tsx:220 msgid "Availability" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:217 +#: src/pages/company/SupplierPartDetail.tsx:229 msgid "Supplier Part Details" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:223 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:296 +#: src/pages/company/SupplierPartDetail.tsx:235 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:320 msgid "Received Stock" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:247 -#: src/pages/part/PartPricingPanel.tsx:111 -#: src/pages/part/pricing/PricingOverviewPanel.tsx:121 +#: src/pages/company/SupplierPartDetail.tsx:259 +#: src/pages/part/PartPricingPanel.tsx:116 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:195 msgid "Supplier Pricing" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:294 +#: src/pages/company/SupplierPartDetail.tsx:284 msgid "Supplier Part Actions" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:319 -#: src/tables/purchasing/SupplierPartTable.tsx:210 +#: src/pages/company/SupplierPartDetail.tsx:308 +#: src/tables/purchasing/SupplierPartTable.tsx:213 msgid "Edit Supplier Part" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:327 -#: src/tables/purchasing/SupplierPartTable.tsx:218 +#: src/pages/company/SupplierPartDetail.tsx:316 +#: src/tables/purchasing/SupplierPartTable.tsx:221 msgid "Delete Supplier Part" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:335 -#: src/tables/purchasing/SupplierPartTable.tsx:163 +#: src/pages/company/SupplierPartDetail.tsx:324 +#: src/tables/purchasing/SupplierPartTable.tsx:165 msgid "Add Supplier Part" msgstr "" #: src/pages/part/CategoryDetail.tsx:93 -#: src/pages/stock/LocationDetail.tsx:101 -#: src/tables/settings/ErrorTable.tsx:36 +#: src/pages/stock/LocationDetail.tsx:95 +#: src/tables/settings/ErrorTable.tsx:63 +#: src/tables/settings/ErrorTable.tsx:108 msgid "Path" msgstr "" @@ -4504,357 +5263,357 @@ msgstr "" msgid "Parent Category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:126 +#: src/pages/part/CategoryDetail.tsx:132 msgid "Subcategories" msgstr "" -#: src/pages/part/CategoryDetail.tsx:133 -#: src/pages/stock/LocationDetail.tsx:141 -#: src/tables/part/PartCategoryTable.tsx:73 +#: src/pages/part/CategoryDetail.tsx:139 +#: src/pages/stock/LocationDetail.tsx:135 +#: src/tables/part/PartCategoryTable.tsx:85 #: src/tables/stock/StockLocationTable.tsx:49 msgid "Structural" msgstr "" -#: src/pages/part/CategoryDetail.tsx:139 +#: src/pages/part/CategoryDetail.tsx:145 msgid "Parent default location" msgstr "" -#: src/pages/part/CategoryDetail.tsx:146 +#: src/pages/part/CategoryDetail.tsx:152 msgid "Default location" msgstr "" -#: src/pages/part/CategoryDetail.tsx:157 +#: src/pages/part/CategoryDetail.tsx:163 msgid "Top level part category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:167 -#: src/pages/part/CategoryDetail.tsx:221 -#: src/tables/part/PartCategoryTable.tsx:102 +#: src/pages/part/CategoryDetail.tsx:173 +#: src/pages/part/CategoryDetail.tsx:226 +#: src/tables/part/PartCategoryTable.tsx:118 msgid "Edit Part Category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:180 -#: src/pages/stock/LocationDetail.tsx:233 +#: src/pages/part/CategoryDetail.tsx:186 +#: src/pages/stock/LocationDetail.tsx:227 msgid "Delete items" msgstr "" -#: src/pages/part/CategoryDetail.tsx:188 -#: src/pages/part/CategoryDetail.tsx:226 +#: src/pages/part/CategoryDetail.tsx:194 +#: src/pages/part/CategoryDetail.tsx:231 msgid "Delete Part Category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:191 +#: src/pages/part/CategoryDetail.tsx:197 msgid "Parts Action" msgstr "" -#: src/pages/part/CategoryDetail.tsx:192 +#: src/pages/part/CategoryDetail.tsx:198 msgid "Action for parts in this category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:197 +#: src/pages/part/CategoryDetail.tsx:203 msgid "Child Categories Action" msgstr "" -#: src/pages/part/CategoryDetail.tsx:198 +#: src/pages/part/CategoryDetail.tsx:204 msgid "Action for child categories in this category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:216 +#: src/pages/part/CategoryDetail.tsx:222 msgid "Category Actions" msgstr "" -#: src/pages/part/CategoryDetail.tsx:238 +#: src/pages/part/CategoryDetail.tsx:243 msgid "Category Details" msgstr "" -#: src/pages/part/PartDetail.tsx:163 +#: src/pages/part/PartAllocationPanel.tsx:23 +#: src/pages/stock/StockDetail.tsx:443 +#: src/tables/part/PartTable.tsx:99 +msgid "Build Order Allocations" +msgstr "Tillverknings orderallokeringar" + +#: src/pages/part/PartAllocationPanel.tsx:40 +#: src/pages/stock/StockDetail.tsx:458 +#: src/tables/part/PartTable.tsx:108 +msgid "Sales Order Allocations" +msgstr "Försäljningsorder allokeringar" + +#: src/pages/part/PartDetail.tsx:184 msgid "Variant of" msgstr "" -#: src/pages/part/PartDetail.tsx:170 +#: src/pages/part/PartDetail.tsx:191 msgid "Revision of" msgstr "" -#: src/pages/part/PartDetail.tsx:177 -#: src/tables/stock/StockItemTable.tsx:58 +#: src/pages/part/PartDetail.tsx:198 +#: src/tables/stock/StockItemTable.tsx:59 msgid "Revision" msgstr "" -#: src/pages/part/PartDetail.tsx:184 +#: src/pages/part/PartDetail.tsx:205 #: src/tables/notifications/NotificationsTable.tsx:31 #: src/tables/part/PartCategoryTemplateTable.tsx:67 msgid "Category" msgstr "Kategori" -#: src/pages/part/PartDetail.tsx:190 +#: src/pages/part/PartDetail.tsx:211 msgid "Default Location" msgstr "" -#: src/pages/part/PartDetail.tsx:197 +#: src/pages/part/PartDetail.tsx:218 msgid "Category Default Location" msgstr "" -#: src/pages/part/PartDetail.tsx:204 +#: src/pages/part/PartDetail.tsx:225 #: src/tables/purchasing/ManufacturerPartParameterTable.tsx:44 msgid "Units" msgstr "Enheter" -#: src/pages/part/PartDetail.tsx:211 -#: src/tables/settings/PendingTasksTable.tsx:42 +#: src/pages/part/PartDetail.tsx:232 +#: src/tables/settings/PendingTasksTable.tsx:46 msgid "Keywords" msgstr "" -#: src/pages/part/PartDetail.tsx:218 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:186 -#: src/pages/sales/ReturnOrderDetail.tsx:165 -#: src/pages/sales/SalesOrderDetail.tsx:174 -msgid "Link" -msgstr "Länk" - -#: src/pages/part/PartDetail.tsx:236 +#: src/pages/part/PartDetail.tsx:257 #: src/tables/bom/BomTable.tsx:320 -#: src/tables/build/BuildLineTable.tsx:155 +#: src/tables/build/BuildLineTable.tsx:286 #: src/tables/part/PartTable.tsx:288 -#: src/tables/sales/SalesOrderLineItemTable.tsx:103 +#: src/tables/sales/SalesOrderLineItemTable.tsx:111 msgid "Available Stock" msgstr "Tillgängligt lager" -#: src/pages/part/PartDetail.tsx:243 +#: src/pages/part/PartDetail.tsx:264 msgid "Variant Stock" msgstr "" -#: src/pages/part/PartDetail.tsx:251 +#: src/pages/part/PartDetail.tsx:272 msgid "Minimum Stock" msgstr "" -#: src/pages/part/PartDetail.tsx:257 +#: src/pages/part/PartDetail.tsx:278 #: src/tables/bom/BomTable.tsx:237 -#: src/tables/build/BuildLineTable.tsx:117 -#: src/tables/sales/SalesOrderLineItemTable.tsx:141 +#: src/tables/build/BuildLineTable.tsx:248 +#: src/tables/sales/SalesOrderLineItemTable.tsx:149 msgid "On order" msgstr "På order" -#: src/pages/part/PartDetail.tsx:266 +#: src/pages/part/PartDetail.tsx:285 +msgid "Required for Orders" +msgstr "" + +#: src/pages/part/PartDetail.tsx:294 msgid "Allocated to Build Orders" msgstr "" -#: src/pages/part/PartDetail.tsx:274 +#: src/pages/part/PartDetail.tsx:305 msgid "Allocated to Sales Orders" msgstr "" -#: src/pages/part/PartDetail.tsx:281 -#: src/tables/bom/BomTable.tsx:261 -#: src/tables/bom/BomTable.tsx:293 -msgid "Can Build" -msgstr "Kan tillverkas" - -#: src/pages/part/PartDetail.tsx:288 -#: src/tables/bom/BomTable.tsx:245 -#: src/tables/part/PartTable.tsx:92 -msgid "Building" -msgstr "Under tillverkning" - -#: src/pages/part/PartDetail.tsx:302 -#: src/pages/part/PartDetail.tsx:873 -#: src/tables/part/ParametricPartTable.tsx:228 -#: src/tables/part/PartTable.tsx:184 -msgid "Locked" -msgstr "Låst" - -#: src/pages/part/PartDetail.tsx:308 -msgid "Template Part" -msgstr "Mall artikel" - #: src/pages/part/PartDetail.tsx:310 #~ msgid "Edit part" #~ msgstr "Edit part" -#: src/pages/part/PartDetail.tsx:313 -#: src/tables/bom/BomTable.tsx:315 -msgid "Assembled Part" -msgstr "Sammansatt artikel" +#: src/pages/part/PartDetail.tsx:315 +#: src/tables/bom/BomTable.tsx:261 +#: src/tables/bom/BomTable.tsx:293 +msgid "Can Build" +msgstr "Kan tillverkas" -#: src/pages/part/PartDetail.tsx:318 -msgid "Component Part" -msgstr "Komponent artikel" +#: src/pages/part/PartDetail.tsx:322 +#: src/pages/part/PartDetail.tsx:905 +#: src/pages/stock/StockDetail.tsx:766 +#: src/tables/build/BuildOrderTestTable.tsx:220 +#: src/tables/stock/StockItemTable.tsx:334 +msgid "In Production" +msgstr "Under produktion" #: src/pages/part/PartDetail.tsx:322 #~ msgid "Duplicate part" #~ msgstr "Duplicate part" -#: src/pages/part/PartDetail.tsx:323 -#: src/tables/bom/BomTable.tsx:305 -msgid "Testable Part" -msgstr "Testbar artikel" - #: src/pages/part/PartDetail.tsx:327 #~ msgid "Delete part" #~ msgstr "Delete part" -#: src/pages/part/PartDetail.tsx:329 +#: src/pages/part/PartDetail.tsx:336 +#: src/tables/part/ParametricPartTable.tsx:228 +#: src/tables/part/PartTable.tsx:184 +msgid "Locked" +msgstr "Låst" + +#: src/pages/part/PartDetail.tsx:342 +msgid "Template Part" +msgstr "Mall artikel" + +#: src/pages/part/PartDetail.tsx:347 +#: src/tables/bom/BomTable.tsx:315 +msgid "Assembled Part" +msgstr "Sammansatt artikel" + +#: src/pages/part/PartDetail.tsx:352 +msgid "Component Part" +msgstr "Komponent artikel" + +#: src/pages/part/PartDetail.tsx:357 +#: src/tables/bom/BomTable.tsx:305 +msgid "Testable Part" +msgstr "Testbar artikel" + +#: src/pages/part/PartDetail.tsx:363 #: src/tables/bom/BomTable.tsx:310 msgid "Trackable Part" msgstr "Spårbar artikel" -#: src/pages/part/PartDetail.tsx:334 +#: src/pages/part/PartDetail.tsx:368 msgid "Purchaseable Part" msgstr "Köpartikel" -#: src/pages/part/PartDetail.tsx:339 +#: src/pages/part/PartDetail.tsx:374 msgid "Saleable Part" msgstr "Försäljningsbar artikel" -#: src/pages/part/PartDetail.tsx:344 +#: src/pages/part/PartDetail.tsx:379 msgid "Virtual Part" msgstr "Virtuell artikel" -#: src/pages/part/PartDetail.tsx:352 -#: src/tables/ColumnRenderers.tsx:220 +#: src/pages/part/PartDetail.tsx:393 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:215 +#: src/pages/sales/ReturnOrderDetail.tsx:185 +#: src/pages/sales/SalesOrderDetail.tsx:197 +#: src/tables/ColumnRenderers.tsx:234 msgid "Creation Date" msgstr "Skapad Datum" -#: src/pages/part/PartDetail.tsx:357 +#: src/pages/part/PartDetail.tsx:398 msgid "Created By" msgstr "Skapad av" -#: src/pages/part/PartDetail.tsx:372 +#: src/pages/part/PartDetail.tsx:413 msgid "Default Supplier" msgstr "Standardleverantör" -#: src/pages/part/PartDetail.tsx:383 -#: src/pages/part/pricing/BomPricingPanel.tsx:79 +#: src/pages/part/PartDetail.tsx:424 +#: src/pages/part/pricing/BomPricingPanel.tsx:113 #: src/pages/part/pricing/VariantPricingPanel.tsx:95 #: src/tables/part/PartTable.tsx:161 msgid "Price Range" msgstr "Prisintervall" -#: src/pages/part/PartDetail.tsx:423 -#: src/pages/stock/StockDetail.tsx:135 +#: src/pages/part/PartDetail.tsx:462 +msgid "Latest Serial Number" +msgstr "" + +#: src/pages/part/PartDetail.tsx:472 +#: src/pages/stock/StockDetail.tsx:151 msgid "Last Stocktake" msgstr "Senaste inventering" -#: src/pages/part/PartDetail.tsx:462 +#: src/pages/part/PartDetail.tsx:511 msgid "Stocktake By" msgstr "Inventerad av" -#: src/pages/part/PartDetail.tsx:526 -msgid "Part Details" -msgstr "Artikel Detaljer" - -#: src/pages/part/PartDetail.tsx:557 +#: src/pages/part/PartDetail.tsx:611 msgid "Variants" msgstr "Varianter" -#: src/pages/part/PartDetail.tsx:564 -#: src/pages/stock/StockDetail.tsx:307 +#: src/pages/part/PartDetail.tsx:618 +#: src/pages/stock/StockDetail.tsx:430 msgid "Allocations" msgstr "Allokeringar" -#: src/pages/part/PartDetail.tsx:575 -#: src/pages/stock/StockDetail.tsx:318 -#: src/tables/part/PartTable.tsx:99 -msgid "Build Order Allocations" -msgstr "Tillverknings orderallokeringar" - -#: src/pages/part/PartDetail.tsx:590 -#: src/pages/stock/StockDetail.tsx:333 -#: src/tables/part/PartTable.tsx:108 -msgid "Sales Order Allocations" -msgstr "Försäljningsorder allokeringar" - -#: src/pages/part/PartDetail.tsx:607 +#: src/pages/part/PartDetail.tsx:625 msgid "Bill of Materials" msgstr "Stycklista" -#: src/pages/part/PartDetail.tsx:623 +#: src/pages/part/PartDetail.tsx:643 msgid "Used In" msgstr "Används i" -#: src/pages/part/PartDetail.tsx:630 +#: src/pages/part/PartDetail.tsx:650 msgid "Part Pricing" msgstr "Prissättning för artikel" -#: src/pages/part/PartDetail.tsx:636 +#: src/pages/part/PartDetail.tsx:656 #: src/pages/purchasing/PurchasingIndex.tsx:42 msgid "Manufacturers" msgstr "Tillverkare" -#: src/pages/part/PartDetail.tsx:676 +#: src/pages/part/PartDetail.tsx:722 msgid "Scheduling" msgstr "Schemaläggning" -#: src/pages/part/PartDetail.tsx:688 +#: src/pages/part/PartDetail.tsx:729 msgid "Test Templates" msgstr "Testmall" -#: src/pages/part/PartDetail.tsx:715 +#: src/pages/part/PartDetail.tsx:756 msgid "Related Parts" msgstr "Relaterade artiklar" -#: src/pages/part/PartDetail.tsx:849 -#: src/pages/stock/StockDetail.tsx:156 -#: src/pages/stock/StockDetail.tsx:593 -#: src/tables/build/BuildLineTable.tsx:48 +#: src/pages/part/PartDetail.tsx:881 +#: src/pages/stock/StockDetail.tsx:172 +#: src/pages/stock/StockDetail.tsx:783 +#: src/tables/build/BuildLineTable.tsx:179 #: src/tables/part/PartTable.tsx:117 -#: src/tables/stock/StockItemTable.tsx:177 -#: src/tables/stock/StockItemTable.tsx:310 +#: src/tables/stock/StockItemTable.tsx:166 +#: src/tables/stock/StockItemTable.tsx:314 msgid "Available" msgstr "Tillgänglig" -#: src/pages/part/PartDetail.tsx:855 +#: src/pages/part/PartDetail.tsx:887 msgid "No Stock" msgstr "Inget på lager" -#: src/pages/part/PartDetail.tsx:861 +#: src/pages/part/PartDetail.tsx:893 +#: src/tables/part/PartTestTemplateTable.tsx:106 +#: src/tables/stock/StockItemTestResultTable.tsx:383 +msgid "Required" +msgstr "" + +#: src/pages/part/PartDetail.tsx:899 #: src/tables/bom/BomTable.tsx:325 #: src/tables/part/PartTable.tsx:86 msgid "On Order" msgstr "På order" -#: src/pages/part/PartDetail.tsx:867 -#: src/pages/stock/StockDetail.tsx:576 -#: src/tables/build/BuildOrderTestTable.tsx:219 -#: src/tables/stock/StockItemTable.tsx:330 -msgid "In Production" -msgstr "Under produktion" - -#: src/pages/part/PartDetail.tsx:892 +#: src/pages/part/PartDetail.tsx:924 msgid "Edit Part" msgstr "Redigera artikel" -#: src/pages/part/PartDetail.tsx:927 +#: src/pages/part/PartDetail.tsx:959 #: src/tables/part/PartTable.tsx:331 -#: src/tables/part/PartTable.tsx:342 +#: src/tables/part/PartTable.tsx:343 msgid "Add Part" msgstr "Lägg till artikel" -#: src/pages/part/PartDetail.tsx:941 +#: src/pages/part/PartDetail.tsx:973 msgid "Delete Part" msgstr "Ta bort artikel" -#: src/pages/part/PartDetail.tsx:950 +#: src/pages/part/PartDetail.tsx:982 msgid "Deleting this part cannot be reversed" msgstr "Borttagning av denna artikel kan inte återställas" -#: src/pages/part/PartDetail.tsx:999 -#: src/pages/stock/LocationDetail.tsx:324 -#: src/tables/stock/StockItemTable.tsx:444 +#: src/pages/part/PartDetail.tsx:1021 +#: src/pages/stock/LocationDetail.tsx:310 +#: src/tables/stock/StockItemTable.tsx:449 msgid "Stock Actions" msgstr "Lager åtgärder" -#: src/pages/part/PartDetail.tsx:1007 +#: src/pages/part/PartDetail.tsx:1029 msgid "Count part stock" msgstr "Räkna artikellager" -#: src/pages/part/PartDetail.tsx:1018 +#: src/pages/part/PartDetail.tsx:1040 msgid "Transfer part stock" msgstr "Överför artikellager" -#: src/pages/part/PartDetail.tsx:1027 +#: src/pages/part/PartDetail.tsx:1049 msgid "Part Actions" msgstr "Artikel åtgärder" -#: src/pages/part/PartDetail.tsx:1087 +#: src/pages/part/PartDetail.tsx:1113 msgid "Select Part Revision" msgstr "Välj artikel revision" @@ -4862,113 +5621,214 @@ msgstr "Välj artikel revision" #~ msgid "Categories" #~ msgstr "Categories" -#: src/pages/part/PartPricingPanel.tsx:68 +#: src/pages/part/PartPricingPanel.tsx:72 msgid "No pricing data found for this part." msgstr "Inga prisuppgifter hittades för denna artikel." -#: src/pages/part/PartPricingPanel.tsx:82 -#: src/pages/part/pricing/PricingOverviewPanel.tsx:190 +#: src/pages/part/PartPricingPanel.tsx:87 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:293 msgid "Pricing Overview" msgstr "Prissättning Översikt" -#: src/pages/part/PartPricingPanel.tsx:88 +#: src/pages/part/PartPricingPanel.tsx:93 msgid "Purchase History" msgstr "Köphistorik" -#: src/pages/part/PartPricingPanel.tsx:102 -#: src/pages/part/pricing/PricingOverviewPanel.tsx:100 +#: src/pages/part/PartPricingPanel.tsx:107 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:174 msgid "Internal Pricing" msgstr "Intern prissättning" -#: src/pages/part/PartPricingPanel.tsx:120 -#: src/pages/part/pricing/PricingOverviewPanel.tsx:107 +#: src/pages/part/PartPricingPanel.tsx:125 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:181 msgid "BOM Pricing" msgstr "BOM Priser" -#: src/pages/part/PartPricingPanel.tsx:127 -#: src/pages/part/pricing/PricingOverviewPanel.tsx:128 +#: src/pages/part/PartPricingPanel.tsx:132 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:202 msgid "Variant Pricing" msgstr "Variant prissättning" -#: src/pages/part/PartPricingPanel.tsx:139 -#: src/pages/part/pricing/PricingOverviewPanel.tsx:135 +#: src/pages/part/PartPricingPanel.tsx:144 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:209 msgid "Sale Pricing" msgstr "Försäljning Prissättning" -#: src/pages/part/PartPricingPanel.tsx:146 -#: src/pages/part/pricing/PricingOverviewPanel.tsx:142 +#: src/pages/part/PartPricingPanel.tsx:151 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:216 msgid "Sale History" msgstr "Försäljningshistorik" -#: src/pages/part/pricing/BomPricingPanel.tsx:58 -#: src/pages/part/pricing/BomPricingPanel.tsx:138 -#: src/tables/ColumnRenderers.tsx:262 +#: src/pages/part/PartSchedulingDetail.tsx:47 +#: src/pages/part/PartSchedulingDetail.tsx:299 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:156 +msgid "Maximum" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:50 +#: src/pages/part/PartSchedulingDetail.tsx:289 +msgid "Scheduled" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:53 +#: src/pages/part/PartSchedulingDetail.tsx:294 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:144 +msgid "Minimum" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:68 +msgid "Order" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:92 +msgid "Quantity is speculative" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:101 +msgid "No date available for provided quantity" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:105 +msgid "Date is in the past" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:112 +msgid "Scheduled Quantity" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:240 +msgid "No information available" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:241 +msgid "There is no scheduling information available for the selected part" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:276 +msgid "Expected Quantity" +msgstr "" + +#: src/pages/part/PartStocktakeDetail.tsx:63 +#: src/tables/FilterSelectDrawer.tsx:167 +#: src/tables/FilterSelectDrawer.tsx:174 +#: src/tables/build/BuildOrderTestTable.tsx:135 +#: src/tables/purchasing/ManufacturerPartParameterTable.tsx:38 +#: src/tables/stock/StockItemTestResultTable.tsx:192 +msgid "Value" +msgstr "Värde" + +#: src/pages/part/PartStocktakeDetail.tsx:82 +msgid "Edit Stocktake Entry" +msgstr "" + +#: src/pages/part/PartStocktakeDetail.tsx:90 +msgid "Delete Stocktake Entry" +msgstr "" + +#: src/pages/part/PartStocktakeDetail.tsx:96 +#: src/tables/settings/StocktakeReportTable.tsx:69 +msgid "Generate Stocktake Report" +msgstr "" + +#: src/pages/part/PartStocktakeDetail.tsx:101 +#: src/tables/settings/StocktakeReportTable.tsx:71 +msgid "Stocktake report scheduled" +msgstr "" + +#: src/pages/part/PartStocktakeDetail.tsx:119 +#: src/pages/part/PartStocktakeDetail.tsx:235 +#: src/pages/stock/StockDetail.tsx:303 +#: src/tables/stock/StockItemTable.tsx:249 +msgid "Stock Value" +msgstr "" + +#: src/pages/part/PartStocktakeDetail.tsx:139 +#: src/tables/settings/StocktakeReportTable.tsx:77 +msgid "New Stocktake Report" +msgstr "" + +#: src/pages/part/PartStocktakeDetail.tsx:258 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:295 +msgid "Minimum Value" +msgstr "" + +#: src/pages/part/PartStocktakeDetail.tsx:264 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:296 +msgid "Maximum Value" +msgstr "" + +#: src/pages/part/pricing/BomPricingPanel.tsx:87 +#: src/pages/part/pricing/BomPricingPanel.tsx:177 +#: src/tables/ColumnRenderers.tsx:276 #: src/tables/bom/BomTable.tsx:185 #: src/tables/general/ExtraLineItemTable.tsx:64 -#: src/tables/purchasing/PurchaseOrderTable.tsx:112 -#: src/tables/sales/ReturnOrderTable.tsx:104 -#: src/tables/sales/SalesOrderLineItemTable.tsx:89 -#: src/tables/sales/SalesOrderTable.tsx:136 +#: src/tables/purchasing/PurchaseOrderTable.tsx:113 +#: src/tables/sales/ReturnOrderTable.tsx:127 +#: src/tables/sales/SalesOrderLineItemTable.tsx:97 +#: src/tables/sales/SalesOrderTable.tsx:149 msgid "Total Price" msgstr "Totalpris" -#: src/pages/part/pricing/BomPricingPanel.tsx:78 -#: src/pages/part/pricing/BomPricingPanel.tsx:102 +#: src/pages/part/pricing/BomPricingPanel.tsx:112 +#: src/pages/part/pricing/BomPricingPanel.tsx:141 #: src/tables/bom/UsedInTable.tsx:49 +#: src/tables/build/BuildLineTable.tsx:296 #: src/tables/part/PartTable.tsx:202 msgid "Component" msgstr "Komponent" -#: src/pages/part/pricing/BomPricingPanel.tsx:81 -#: src/pages/part/pricing/VariantPricingPanel.tsx:37 -#: src/pages/part/pricing/VariantPricingPanel.tsx:97 -msgid "Minimum Price" -msgstr "" - -#: src/pages/part/pricing/BomPricingPanel.tsx:82 -#: src/pages/part/pricing/VariantPricingPanel.tsx:45 -#: src/pages/part/pricing/VariantPricingPanel.tsx:98 -msgid "Maximum Price" -msgstr "" - #: src/pages/part/pricing/BomPricingPanel.tsx:112 #~ msgid "Minimum Total Price" #~ msgstr "Minimum Total Price" +#: src/pages/part/pricing/BomPricingPanel.tsx:115 +#: src/pages/part/pricing/VariantPricingPanel.tsx:37 +#: src/pages/part/pricing/VariantPricingPanel.tsx:97 +msgid "Minimum Price" +msgstr "" + +#: src/pages/part/pricing/BomPricingPanel.tsx:116 +#: src/pages/part/pricing/VariantPricingPanel.tsx:45 +#: src/pages/part/pricing/VariantPricingPanel.tsx:98 +msgid "Maximum Price" +msgstr "" + #: src/pages/part/pricing/BomPricingPanel.tsx:117 #~ msgid "Maximum Total Price" #~ msgstr "Maximum Total Price" -#: src/pages/part/pricing/BomPricingPanel.tsx:129 -#: src/pages/part/pricing/PriceBreakPanel.tsx:172 -#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:67 -#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:128 -#: src/pages/part/pricing/SupplierPricingPanel.tsx:62 +#: src/pages/part/pricing/BomPricingPanel.tsx:168 +#: src/pages/part/pricing/PriceBreakPanel.tsx:173 +#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:70 +#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:125 +#: src/pages/part/pricing/SupplierPricingPanel.tsx:66 +#: src/pages/stock/StockDetail.tsx:291 #: src/tables/bom/BomTable.tsx:176 #: src/tables/general/ExtraLineItemTable.tsx:56 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:223 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:225 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:92 +#: src/tables/stock/StockItemTable.tsx:239 msgid "Unit Price" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:154 +#: src/pages/part/pricing/BomPricingPanel.tsx:193 #: src/pages/part/pricing/VariantPricingPanel.tsx:53 -#: src/tables/purchasing/SupplierPartTable.tsx:148 +#: src/tables/purchasing/SupplierPartTable.tsx:150 msgid "Updated" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:219 +#: src/pages/part/pricing/BomPricingPanel.tsx:258 msgid "Pie Chart" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:220 +#: src/pages/part/pricing/BomPricingPanel.tsx:259 msgid "Bar Chart" msgstr "" #: src/pages/part/pricing/PriceBreakPanel.tsx:58 -#: src/pages/part/pricing/PriceBreakPanel.tsx:110 +#: src/pages/part/pricing/PriceBreakPanel.tsx:111 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:142 -#: src/tables/purchasing/SupplierPriceBreakTable.tsx:168 +#: src/tables/purchasing/SupplierPriceBreakTable.tsx:169 msgid "Add Price Break" msgstr "" @@ -4986,46 +5846,70 @@ msgstr "" msgid "Price Break" msgstr "" -#: src/pages/part/pricing/PriceBreakPanel.tsx:170 +#: src/pages/part/pricing/PriceBreakPanel.tsx:171 msgid "Price" msgstr "" -#: src/pages/part/pricing/PricingOverviewPanel.tsx:51 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:68 +msgid "Refreshing pricing data" +msgstr "" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:88 +msgid "Pricing data updated" +msgstr "" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:95 +msgid "Failed to update pricing data" +msgstr "" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:104 +msgid "Edit Pricing" +msgstr "" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:125 msgid "Pricing Category" msgstr "" -#: src/pages/part/pricing/PricingOverviewPanel.tsx:70 -msgid "Minimum" -msgstr "" - -#: src/pages/part/pricing/PricingOverviewPanel.tsx:82 -msgid "Maximum" -msgstr "" - -#: src/pages/part/pricing/PricingOverviewPanel.tsx:114 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:188 msgid "Purchase Pricing" msgstr "" -#: src/pages/part/pricing/PricingOverviewPanel.tsx:149 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:223 msgid "Override Pricing" msgstr "" -#: src/pages/part/pricing/PricingOverviewPanel.tsx:156 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:230 msgid "Overall Pricing" msgstr "" -#: src/pages/part/pricing/PricingOverviewPanel.tsx:175 -#: src/pages/stock/StockDetail.tsx:129 -#: src/tables/stock/StockItemTable.tsx:240 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:249 +#: src/pages/stock/StockDetail.tsx:145 +#: src/tables/stock/StockItemTable.tsx:275 msgid "Last Updated" msgstr "" -#: src/pages/part/pricing/PricingOverviewPanel.tsx:192 -msgid "Minimum Value" +#: src/pages/part/pricing/PricingOverviewPanel.tsx:253 +msgid "Pricing Not Set" msgstr "" -#: src/pages/part/pricing/PricingOverviewPanel.tsx:193 -msgid "Maximum Value" +#: src/pages/part/pricing/PricingOverviewPanel.tsx:254 +msgid "Pricing data has not been calculated for this part" +msgstr "" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:258 +msgid "Pricing Actions" +msgstr "" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:261 +msgid "Refresh" +msgstr "" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:262 +msgid "Refresh pricing data" +msgstr "" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:277 +msgid "Edit pricing data" msgstr "" #: src/pages/part/pricing/PricingPanel.tsx:24 @@ -5044,28 +5928,20 @@ msgstr "" msgid "Loading pricing data" msgstr "" -#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:40 -#: src/pages/part/pricing/SaleHistoryPanel.tsx:36 -#: src/tables/ColumnRenderers.tsx:201 -#: src/tables/build/BuildOrderTestTable.tsx:150 -#: src/tables/plugin/PluginListTable.tsx:139 -msgid "Date" -msgstr "" - #: src/pages/part/pricing/PurchaseHistoryPanel.tsx:47 msgid "Purchase Price" msgstr "" -#: src/pages/part/pricing/SaleHistoryPanel.tsx:22 -msgid "Sale Order" -msgstr "" +#: src/pages/part/pricing/SaleHistoryPanel.tsx:24 +#~ msgid "Sale Order" +#~ msgstr "Sale Order" -#: src/pages/part/pricing/SaleHistoryPanel.tsx:42 -#: src/pages/part/pricing/SaleHistoryPanel.tsx:92 +#: src/pages/part/pricing/SaleHistoryPanel.tsx:44 +#: src/pages/part/pricing/SaleHistoryPanel.tsx:87 msgid "Sale Price" msgstr "" -#: src/pages/part/pricing/SupplierPricingPanel.tsx:65 +#: src/pages/part/pricing/SupplierPricingPanel.tsx:69 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:83 msgid "Supplier Price" msgstr "" @@ -5075,23 +5951,23 @@ msgstr "" msgid "Variant Part" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:93 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:87 msgid "Edit Purchase Order" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:102 -#: src/tables/purchasing/PurchaseOrderTable.tsx:128 -#: src/tables/purchasing/PurchaseOrderTable.tsx:140 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:96 +#: src/tables/purchasing/PurchaseOrderTable.tsx:129 +#: src/tables/purchasing/PurchaseOrderTable.tsx:142 msgid "Add Purchase Order" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:127 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:121 msgid "Supplier Reference" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:158 -#: src/pages/sales/ReturnOrderDetail.tsx:137 -#: src/pages/sales/SalesOrderDetail.tsx:137 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:152 +#: src/pages/sales/ReturnOrderDetail.tsx:129 +#: src/pages/sales/SalesOrderDetail.tsx:132 msgid "Completed Line Items" msgstr "" @@ -5101,91 +5977,112 @@ msgstr "" #~ msgid "Order Currency," #~ msgstr "Order Currency," -#: src/pages/purchasing/PurchaseOrderDetail.tsx:165 -#: src/pages/sales/ReturnOrderDetail.tsx:144 -#: src/pages/sales/SalesOrderDetail.tsx:153 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:161 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:231 +msgid "Destination" +msgstr "" + +#: src/pages/purchasing/PurchaseOrderDetail.tsx:167 +#: src/pages/sales/ReturnOrderDetail.tsx:136 +#: src/pages/sales/SalesOrderDetail.tsx:148 msgid "Order Currency" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:172 -#: src/pages/sales/ReturnOrderDetail.tsx:151 -#: src/pages/sales/SalesOrderDetail.tsx:160 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:173 +#: src/pages/sales/ReturnOrderDetail.tsx:143 +#: src/pages/sales/SalesOrderDetail.tsx:155 msgid "Total Cost" msgstr "" #: src/pages/purchasing/PurchaseOrderDetail.tsx:207 -#: src/pages/sales/ReturnOrderDetail.tsx:186 -#: src/pages/sales/SalesOrderDetail.tsx:195 -msgid "Created On" +#: src/pages/sales/ReturnOrderDetail.tsx:183 +#: src/pages/sales/SalesOrderDetail.tsx:191 +#~ msgid "Created On" +#~ msgstr "Created On" + +#: src/pages/purchasing/PurchaseOrderDetail.tsx:221 +#: src/pages/sales/ReturnOrderDetail.tsx:193 +#: src/pages/sales/SalesOrderDetail.tsx:204 +msgid "Issue Date" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:252 -#: src/pages/sales/ReturnOrderDetail.tsx:231 -#: src/pages/sales/SalesOrderDetail.tsx:266 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:237 +#: src/pages/sales/ReturnOrderDetail.tsx:209 +#: src/pages/sales/SalesOrderDetail.tsx:219 +#: src/tables/build/BuildOrderTable.tsx:98 +#: src/tables/part/PartPurchaseOrdersTable.tsx:105 +#: src/tables/sales/ReturnOrderTable.tsx:122 +msgid "Completion Date" +msgstr "" + +#: src/pages/purchasing/PurchaseOrderDetail.tsx:276 +#: src/pages/sales/ReturnOrderDetail.tsx:248 +#: src/pages/sales/SalesOrderDetail.tsx:288 msgid "Order Details" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:280 -#: src/pages/sales/ReturnOrderDetail.tsx:258 -#: src/pages/sales/SalesOrderDetail.tsx:297 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:304 +#: src/pages/sales/ReturnOrderDetail.tsx:276 +#: src/pages/sales/SalesOrderDetail.tsx:319 msgid "Extra Line Items" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:337 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:346 msgid "Issue Purchase Order" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:345 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:354 msgid "Cancel Purchase Order" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:353 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:362 msgid "Hold Purchase Order" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:361 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:370 msgid "Complete Purchase Order" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:427 -#: src/pages/sales/ReturnOrderDetail.tsx:428 -#: src/pages/sales/SalesOrderDetail.tsx:468 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:425 +#: src/pages/sales/ReturnOrderDetail.tsx:424 +#: src/pages/sales/SalesOrderDetail.tsx:464 msgid "Order Actions" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:101 -#: src/pages/sales/SalesOrderDetail.tsx:107 -#: src/tables/sales/SalesOrderTable.tsx:124 +#: src/pages/sales/ReturnOrderDetail.tsx:92 +#: src/pages/sales/SalesOrderDetail.tsx:101 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:109 +#: src/tables/sales/SalesOrderTable.tsx:137 msgid "Customer Reference" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:315 +#: src/pages/sales/ReturnOrderDetail.tsx:322 msgid "Edit Return Order" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:324 -#: src/tables/sales/ReturnOrderTable.tsx:119 -#: src/tables/sales/ReturnOrderTable.tsx:128 +#: src/pages/sales/ReturnOrderDetail.tsx:331 +#: src/tables/sales/ReturnOrderTable.tsx:142 +#: src/tables/sales/ReturnOrderTable.tsx:152 msgid "Add Return Order" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:336 +#: src/pages/sales/ReturnOrderDetail.tsx:343 msgid "Issue Return Order" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:344 +#: src/pages/sales/ReturnOrderDetail.tsx:349 +#~ msgid "Order canceled" +#~ msgstr "Order canceled" + +#: src/pages/sales/ReturnOrderDetail.tsx:351 msgid "Cancel Return Order" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:347 -msgid "Order canceled" -msgstr "" - -#: src/pages/sales/ReturnOrderDetail.tsx:352 +#: src/pages/sales/ReturnOrderDetail.tsx:359 msgid "Hold Return Order" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:360 +#: src/pages/sales/ReturnOrderDetail.tsx:367 msgid "Complete Return Order" msgstr "Slutför returorder" @@ -5193,117 +6090,193 @@ msgstr "Slutför returorder" msgid "Customers" msgstr "Kunder" -#: src/pages/sales/SalesOrderDetail.tsx:145 +#: src/pages/sales/SalesOrderDetail.tsx:140 msgid "Completed Shipments" msgstr "Slutförda leveranser" -#: src/pages/sales/SalesOrderDetail.tsx:243 -msgid "Edit Sales Order" -msgstr "Redigera försäljningsorder" - -#: src/pages/sales/SalesOrderDetail.tsx:252 -#: src/tables/sales/SalesOrderTable.tsx:84 -#: src/tables/sales/SalesOrderTable.tsx:96 -msgid "Add Sales Order" -msgstr "Ny försäljningsorder" - #: src/pages/sales/SalesOrderDetail.tsx:256 #~ msgid "Pending Shipments" #~ msgstr "Pending Shipments" -#: src/pages/sales/SalesOrderDetail.tsx:313 +#: src/pages/sales/SalesOrderDetail.tsx:261 +msgid "Edit Sales Order" +msgstr "Redigera försäljningsorder" + +#: src/pages/sales/SalesOrderDetail.tsx:274 +#: src/tables/sales/SalesOrderTable.tsx:96 +#: src/tables/sales/SalesOrderTable.tsx:109 +msgid "Add Sales Order" +msgstr "Ny försäljningsorder" + +#: src/pages/sales/SalesOrderDetail.tsx:335 msgid "Shipments" msgstr "Leveranser" -#: src/pages/sales/SalesOrderDetail.tsx:369 +#: src/pages/sales/SalesOrderDetail.tsx:376 msgid "Issue Sales Order" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:377 +#: src/pages/sales/SalesOrderDetail.tsx:384 msgid "Cancel Sales Order" msgstr "Avbryt försäljningsorder" -#: src/pages/sales/SalesOrderDetail.tsx:385 +#: src/pages/sales/SalesOrderDetail.tsx:392 msgid "Hold Sales Order" msgstr "Pausa försäljningsorder" -#: src/pages/sales/SalesOrderDetail.tsx:393 +#: src/pages/sales/SalesOrderDetail.tsx:400 msgid "Complete Sales Order" msgstr "Slutför försäljningsorder" -#: src/pages/sales/SalesOrderDetail.tsx:432 +#: src/pages/sales/SalesOrderDetail.tsx:439 msgid "Ship Order" msgstr "Leveransorder" -#: src/pages/stock/LocationDetail.tsx:117 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:117 +#: src/tables/sales/SalesOrderShipmentTable.tsx:96 +msgid "Shipment Reference" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:124 +msgid "Allocated Items" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:133 +msgid "Tracking Number" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:141 +msgid "Invoice Number" +msgstr "Fakturanummer" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:149 +#: src/tables/ColumnRenderers.tsx:242 +#: src/tables/sales/SalesOrderAllocationTable.tsx:142 +#: src/tables/sales/SalesOrderShipmentTable.tsx:115 +msgid "Shipment Date" +msgstr "Leveransdatum" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:157 +#: src/tables/sales/SalesOrderShipmentTable.tsx:119 +msgid "Delivery Date" +msgstr "Leveransdatum" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:204 +msgid "Shipment Details" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:210 +msgid "Assigned Items" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:241 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:317 +#: src/tables/sales/SalesOrderShipmentTable.tsx:75 +msgid "Edit Shipment" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:248 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:322 +#: src/tables/sales/SalesOrderShipmentTable.tsx:67 +msgid "Cancel Shipment" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:261 +#: src/tables/sales/SalesOrderShipmentTable.tsx:83 +#: src/tables/sales/SalesOrderShipmentTable.tsx:151 +msgid "Complete Shipment" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:276 +#: src/tables/part/PartPurchaseOrdersTable.tsx:121 +msgid "Pending" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:277 +#: src/tables/sales/SalesOrderAllocationTable.tsx:148 +#: src/tables/sales/SalesOrderShipmentTable.tsx:108 +#: src/tables/sales/SalesOrderShipmentTable.tsx:197 +msgid "Shipped" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:279 +#: src/tables/sales/SalesOrderShipmentTable.tsx:202 +msgid "Delivered" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:293 +msgid "Send Shipment" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:312 +msgid "Shipment Actions" +msgstr "" + +#: src/pages/stock/LocationDetail.tsx:111 msgid "Parent Location" msgstr "Föregående Plats" -#: src/pages/stock/LocationDetail.tsx:135 +#: src/pages/stock/LocationDetail.tsx:129 msgid "Sublocations" msgstr "Underplaceringar" -#: src/pages/stock/LocationDetail.tsx:147 +#: src/pages/stock/LocationDetail.tsx:141 #: src/tables/stock/StockLocationTable.tsx:54 msgid "External" msgstr "Extern" -#: src/pages/stock/LocationDetail.tsx:153 +#: src/pages/stock/LocationDetail.tsx:147 #: src/tables/stock/StockLocationTable.tsx:63 msgid "Location Type" msgstr "Typ av plats" -#: src/pages/stock/LocationDetail.tsx:164 +#: src/pages/stock/LocationDetail.tsx:158 msgid "Top level stock location" msgstr "Högsta nivå lagerplats" -#: src/pages/stock/LocationDetail.tsx:175 +#: src/pages/stock/LocationDetail.tsx:169 msgid "Location Details" msgstr "Platsuppgifter" -#: src/pages/stock/LocationDetail.tsx:201 +#: src/pages/stock/LocationDetail.tsx:195 msgid "Default Parts" msgstr "Standard artiklar" -#: src/pages/stock/LocationDetail.tsx:220 -#: src/pages/stock/LocationDetail.tsx:351 +#: src/pages/stock/LocationDetail.tsx:214 +#: src/pages/stock/LocationDetail.tsx:336 #: src/tables/stock/StockLocationTable.tsx:123 msgid "Edit Stock Location" msgstr "Redigera lagerplats" -#: src/pages/stock/LocationDetail.tsx:241 -#: src/pages/stock/LocationDetail.tsx:356 +#: src/pages/stock/LocationDetail.tsx:235 +#: src/pages/stock/LocationDetail.tsx:341 msgid "Delete Stock Location" msgstr "Radera lagerplats" -#: src/pages/stock/LocationDetail.tsx:244 +#: src/pages/stock/LocationDetail.tsx:238 msgid "Items Action" msgstr "" -#: src/pages/stock/LocationDetail.tsx:245 +#: src/pages/stock/LocationDetail.tsx:239 msgid "Action for stock items in this location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:250 +#: src/pages/stock/LocationDetail.tsx:244 msgid "Child Locations Action" msgstr "" -#: src/pages/stock/LocationDetail.tsx:251 +#: src/pages/stock/LocationDetail.tsx:245 msgid "Action for child locations in this location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:346 +#: src/pages/stock/LocationDetail.tsx:332 msgid "Location Actions" msgstr "Platsåtgärder" -#: src/pages/stock/StockDetail.tsx:108 +#: src/pages/stock/StockDetail.tsx:116 msgid "Base Part" msgstr "" -#: src/pages/stock/StockDetail.tsx:115 -msgid "Stock Status" -msgstr "" - #: src/pages/stock/StockDetail.tsx:155 #~ msgid "Link custom barcode to stock item" #~ msgstr "Link custom barcode to stock item" @@ -5312,113 +6285,179 @@ msgstr "" #~ msgid "Unlink custom barcode from stock item" #~ msgstr "Unlink custom barcode from stock item" -#: src/pages/stock/StockDetail.tsx:188 -msgid "Installed In" -msgstr "" - -#: src/pages/stock/StockDetail.tsx:204 -msgid "Consumed By" +#: src/pages/stock/StockDetail.tsx:178 +msgid "Allocated to Orders" msgstr "" #: src/pages/stock/StockDetail.tsx:205 #~ msgid "Edit stock item" #~ msgstr "Edit stock item" -#: src/pages/stock/StockDetail.tsx:213 -#: src/tables/build/BuildAllocatedStockTable.tsx:64 -#: src/tables/stock/StockTrackingTable.tsx:96 -msgid "Build Order" +#: src/pages/stock/StockDetail.tsx:209 +msgid "Installed In" msgstr "" #: src/pages/stock/StockDetail.tsx:217 #~ msgid "Delete stock item" #~ msgstr "Delete stock item" -#: src/pages/stock/StockDetail.tsx:291 +#: src/pages/stock/StockDetail.tsx:226 +msgid "Parent Item" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:230 +msgid "Parent stock item" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:236 +msgid "Consumed By" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:245 +#: src/tables/build/BuildAllocatedStockTable.tsx:77 +#: src/tables/stock/StockTrackingTable.tsx:100 +msgid "Build Order" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:283 +#: src/tables/stock/StockItemTable.tsx:270 +msgid "Expiry Date" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:414 msgid "Stock Details" msgstr "" -#: src/pages/stock/StockDetail.tsx:297 +#: src/pages/stock/StockDetail.tsx:420 msgid "Stock Tracking" msgstr "" -#: src/pages/stock/StockDetail.tsx:350 -msgid "Test Data" -msgstr "" - -#: src/pages/stock/StockDetail.tsx:364 -msgid "Installed Items" -msgstr "" - -#: src/pages/stock/StockDetail.tsx:371 -msgid "Child Items" -msgstr "" - -#: src/pages/stock/StockDetail.tsx:425 -msgid "Edit Stock Item" -msgstr "" - #: src/pages/stock/StockDetail.tsx:433 #~ msgid "Duplicate stock item" #~ msgstr "Duplicate stock item" -#: src/pages/stock/StockDetail.tsx:452 +#: src/pages/stock/StockDetail.tsx:475 +msgid "Test Data" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:489 +msgid "Installed Items" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:496 +msgid "Child Items" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:545 +msgid "Edit Stock Item" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:572 msgid "Delete Stock Item" msgstr "" -#: src/pages/stock/StockDetail.tsx:504 +#: src/pages/stock/StockDetail.tsx:604 +msgid "Serialize Stock Item" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:617 +msgid "Stock item serialized" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:623 +msgid "Return Stock Item" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:626 +msgid "Return this item into stock. This will remove the customer assignment." +msgstr "" + +#: src/pages/stock/StockDetail.tsx:636 +msgid "Item returned to stock" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:666 msgid "Stock Operations" msgstr "" -#: src/pages/stock/StockDetail.tsx:509 +#: src/pages/stock/StockDetail.tsx:671 msgid "Count stock" msgstr "" -#: src/pages/stock/StockDetail.tsx:519 -#: src/tables/stock/StockItemTable.tsx:449 -msgid "Add stock" +#: src/pages/stock/StockDetail.tsx:671 +#: src/tables/stock/StockItemTable.tsx:452 +#~ msgid "Add stock" +#~ msgstr "Add stock" + +#: src/pages/stock/StockDetail.tsx:680 +#: src/tables/stock/StockItemTable.tsx:461 +#~ msgid "Remove stock" +#~ msgstr "Remove stock" + +#: src/pages/stock/StockDetail.tsx:698 +#: src/tables/stock/StockItemTable.tsx:481 +#~ msgid "Transfer stock" +#~ msgstr "Transfer stock" + +#: src/pages/stock/StockDetail.tsx:699 +msgid "Serialize" msgstr "" -#: src/pages/stock/StockDetail.tsx:527 -#: src/tables/stock/StockItemTable.tsx:458 -msgid "Remove stock" +#: src/pages/stock/StockDetail.tsx:700 +msgid "Serialize stock" msgstr "" -#: src/pages/stock/StockDetail.tsx:534 +#: src/pages/stock/StockDetail.tsx:711 msgid "Transfer" msgstr "" -#: src/pages/stock/StockDetail.tsx:535 -#: src/tables/stock/StockItemTable.tsx:478 -msgid "Transfer stock" +#: src/pages/stock/StockDetail.tsx:722 +msgid "Return" msgstr "" -#: src/pages/stock/StockDetail.tsx:546 +#: src/pages/stock/StockDetail.tsx:723 +msgid "Return from customer" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:738 msgid "Stock Item Actions" msgstr "" -#: src/tables/ColumnRenderers.tsx:30 +#: src/pages/stock/StockDetail.tsx:808 +msgid "Stale" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:814 +msgid "Expired" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:820 +msgid "Unavailable" +msgstr "" + +#: src/tables/ColumnRenderers.tsx:36 msgid "Part is not active" msgstr "Artikeln är inte aktiv" -#: src/tables/ColumnRenderers.tsx:35 -msgid "Part is locked" +#: src/tables/ColumnRenderers.tsx:41 +#: src/tables/bom/BomTable.tsx:542 +#: src/tables/part/PartParameterTable.tsx:193 +#: src/tables/part/PartTestTemplateTable.tsx:253 +msgid "Part is Locked" msgstr "" -#: src/tables/ColumnRenderers.tsx:57 +#: src/tables/ColumnRenderers.tsx:41 +#~ msgid "Part is locked" +#~ msgstr "Part is locked" + +#: src/tables/ColumnRenderers.tsx:46 +msgid "You are subscribed to notifications for this part" +msgstr "" + +#: src/tables/ColumnRenderers.tsx:68 msgid "No location set" msgstr "" -#: src/tables/ColumnRenderers.tsx:228 -#: src/tables/sales/SalesOrderShipmentTable.tsx:79 -msgid "Shipment Date" -msgstr "" - -#: src/tables/ColumnRenderers.tsx:248 -#: src/tables/settings/CurrencyTable.tsx:23 -msgid "Currency" -msgstr "Valuta" - #: src/tables/ColumnSelect.tsx:16 #: src/tables/ColumnSelect.tsx:23 msgid "Select Columns" @@ -5452,91 +6491,116 @@ msgstr "" msgid "Download Data" msgstr "" -#: src/tables/Filter.tsx:89 -#: src/tables/build/BuildOrderTable.tsx:135 +#: src/tables/Filter.tsx:101 msgid "Assigned to me" msgstr "" -#: src/tables/Filter.tsx:90 -#: src/tables/build/BuildOrderTable.tsx:136 +#: src/tables/Filter.tsx:102 msgid "Show orders assigned to me" msgstr "" -#: src/tables/Filter.tsx:97 +#: src/tables/Filter.tsx:106 +#~ msgid "Show overdue orders" +#~ msgstr "Show overdue orders" + +#: src/tables/Filter.tsx:109 +#: src/tables/build/BuildOrderTable.tsx:120 +#: src/tables/sales/SalesOrderAllocationTable.tsx:59 msgid "Outstanding" msgstr "" -#: src/tables/Filter.tsx:98 -msgid "Show outstanding orders" +#: src/tables/Filter.tsx:110 +msgid "Show outstanding items" msgstr "" -#: src/tables/Filter.tsx:105 -#: src/tables/build/BuildOrderTable.tsx:128 +#: src/tables/Filter.tsx:117 msgid "Overdue" msgstr "" -#: src/tables/Filter.tsx:106 -msgid "Show overdue orders" +#: src/tables/Filter.tsx:118 +msgid "Show overdue items" msgstr "" -#: src/tables/FilterSelectDrawer.tsx:51 +#: src/tables/Filter.tsx:125 +msgid "Minimum Date" +msgstr "" + +#: src/tables/Filter.tsx:126 +msgid "Show items after this date" +msgstr "" + +#: src/tables/Filter.tsx:134 +msgid "Maximum Date" +msgstr "" + +#: src/tables/Filter.tsx:135 +msgid "Show items before this date" +msgstr "" + +#: src/tables/Filter.tsx:144 +msgid "Has Project Code" +msgstr "" + +#: src/tables/Filter.tsx:145 +msgid "Show orders with an assigned project code" +msgstr "" + +#: src/tables/FilterSelectDrawer.tsx:55 msgid "Remove filter" msgstr "Ta bort filter" -#: src/tables/FilterSelectDrawer.tsx:130 +#: src/tables/FilterSelectDrawer.tsx:159 msgid "Select filter" msgstr "Välj filter" -#: src/tables/FilterSelectDrawer.tsx:131 +#: src/tables/FilterSelectDrawer.tsx:160 msgid "Filter" msgstr "Filter" -#: src/tables/FilterSelectDrawer.tsx:138 -#: src/tables/build/BuildOrderTestTable.tsx:134 -#: src/tables/purchasing/ManufacturerPartParameterTable.tsx:38 -#: src/tables/stock/StockItemTestResultTable.tsx:186 -msgid "Value" -msgstr "Värde" +#: src/tables/FilterSelectDrawer.tsx:168 +msgid "Select date value" +msgstr "" -#: src/tables/FilterSelectDrawer.tsx:140 +#: src/tables/FilterSelectDrawer.tsx:176 msgid "Select filter value" msgstr "Välj filtervärde" -#: src/tables/FilterSelectDrawer.tsx:183 +#: src/tables/FilterSelectDrawer.tsx:219 +#: src/tables/InvenTreeTableHeader.tsx:214 msgid "Table Filters" msgstr "" -#: src/tables/FilterSelectDrawer.tsx:215 +#: src/tables/FilterSelectDrawer.tsx:251 msgid "Add Filter" msgstr "Lägg till filter" -#: src/tables/FilterSelectDrawer.tsx:224 +#: src/tables/FilterSelectDrawer.tsx:260 msgid "Clear Filters" msgstr "Rensa filter" -#: src/tables/InvenTreeTable.tsx:123 -#: src/tables/InvenTreeTable.tsx:431 -#: src/tables/InvenTreeTable.tsx:455 +#: src/tables/InvenTreeTable.tsx:96 +#: src/tables/InvenTreeTable.tsx:417 +#: src/tables/InvenTreeTable.tsx:441 msgid "No records found" msgstr "Inga resultat hittades" -#: src/tables/InvenTreeTable.tsx:466 +#: src/tables/InvenTreeTable.tsx:452 msgid "Server returned incorrect data type" msgstr "" -#: src/tables/InvenTreeTable.tsx:474 +#: src/tables/InvenTreeTable.tsx:460 msgid "Bad request" msgstr "Felaktig begäran" -#: src/tables/InvenTreeTable.tsx:477 +#: src/tables/InvenTreeTable.tsx:463 msgid "Unauthorized" msgstr "Ej behörig" -#: src/tables/InvenTreeTable.tsx:480 +#: src/tables/InvenTreeTable.tsx:466 msgid "Forbidden" msgstr "Otillåten" -#: src/tables/InvenTreeTable.tsx:483 +#: src/tables/InvenTreeTable.tsx:469 msgid "Not found" msgstr "Hittades inte" @@ -5544,18 +6608,6 @@ msgstr "Hittades inte" #~ msgid "Are you sure you want to delete the selected records?" #~ msgstr "Are you sure you want to delete the selected records?" -#: src/tables/InvenTreeTable.tsx:525 -msgid "Delete Selected Items" -msgstr "" - -#: src/tables/InvenTreeTable.tsx:529 -msgid "Are you sure you want to delete the selected items?" -msgstr "" - -#: src/tables/InvenTreeTable.tsx:531 -msgid "This action cannot be undone!" -msgstr "" - #: src/tables/InvenTreeTable.tsx:535 #~ msgid "Deleted records" #~ msgstr "Deleted records" @@ -5568,31 +6620,56 @@ msgstr "" #~ msgid "Failed to delete records" #~ msgstr "Failed to delete records" +#: src/tables/InvenTreeTable.tsx:552 +#~ msgid "This action cannot be undone!" +#~ msgstr "This action cannot be undone!" + #: src/tables/InvenTreeTable.tsx:594 #: src/tables/InvenTreeTable.tsx:595 #~ msgid "Print actions" #~ msgstr "Print actions" -#: src/tables/InvenTreeTable.tsx:618 -#: src/tables/InvenTreeTable.tsx:619 -msgid "Barcode actions" -msgstr "Streckkods åtgärder" +#: src/tables/InvenTreeTable.tsx:655 +#: src/tables/InvenTreeTable.tsx:656 +#~ msgid "Barcode actions" +#~ msgstr "Barcode actions" -#: src/tables/InvenTreeTable.tsx:628 +#: src/tables/InvenTreeTable.tsx:712 +#~ msgid "Table filters" +#~ msgstr "Table filters" + +#: src/tables/InvenTreeTable.tsx:725 +#~ msgid "Clear custom query filters" +#~ msgstr "Clear custom query filters" + +#: src/tables/InvenTreeTableHeader.tsx:98 +msgid "Delete Selected Items" +msgstr "" + +#: src/tables/InvenTreeTableHeader.tsx:102 +msgid "Are you sure you want to delete the selected items?" +msgstr "" + +#: src/tables/InvenTreeTableHeader.tsx:104 +#: src/tables/plugin/PluginListTable.tsx:305 +msgid "This action cannot be undone" +msgstr "" + +#: src/tables/InvenTreeTableHeader.tsx:142 +msgid "Custom table filters are active" +msgstr "" + +#: src/tables/InvenTreeTableHeader.tsx:169 msgid "Delete selected records" msgstr "" -#: src/tables/InvenTreeTable.tsx:649 +#: src/tables/InvenTreeTableHeader.tsx:188 msgid "Refresh data" msgstr "Uppdatera data" -#: src/tables/InvenTreeTable.tsx:675 -msgid "Table filters" -msgstr "Tabellfilter" - #: src/tables/TableHoverCard.tsx:35 -msgid "item-{idx}" -msgstr "" +#~ msgid "item-{idx}" +#~ msgstr "item-{idx}" #: src/tables/UploadAction.tsx:7 #~ msgid "Upload Data" @@ -5607,31 +6684,36 @@ msgid "Part Information" msgstr "" #: src/tables/bom/BomTable.tsx:212 -#: src/tables/build/BuildLineTable.tsx:126 +#: src/tables/build/BuildLineTable.tsx:257 #: src/tables/part/PartTable.tsx:125 msgid "External stock" msgstr "" #: src/tables/bom/BomTable.tsx:220 -#: src/tables/build/BuildLineTable.tsx:89 +#: src/tables/build/BuildLineTable.tsx:220 msgid "Includes substitute stock" msgstr "" #: src/tables/bom/BomTable.tsx:229 -#: src/tables/build/BuildLineTable.tsx:99 -#: src/tables/sales/SalesOrderLineItemTable.tsx:127 +#: src/tables/build/BuildLineTable.tsx:230 +#: src/tables/sales/SalesOrderLineItemTable.tsx:135 msgid "Includes variant stock" msgstr "" +#: src/tables/bom/BomTable.tsx:245 +#: src/tables/part/PartTable.tsx:92 +msgid "Building" +msgstr "Under tillverkning" + #: src/tables/bom/BomTable.tsx:254 #: src/tables/part/PartTable.tsx:153 -#: src/tables/sales/SalesOrderLineItemTable.tsx:150 -#: src/tables/stock/StockItemTable.tsx:216 +#: src/tables/sales/SalesOrderLineItemTable.tsx:158 +#: src/tables/stock/StockItemTable.tsx:206 msgid "Stock Information" msgstr "" #: src/tables/bom/BomTable.tsx:285 -#: src/tables/build/BuildLineTable.tsx:248 +#: src/tables/build/BuildLineTable.tsx:409 msgid "Consumable item" msgstr "" @@ -5644,7 +6726,7 @@ msgstr "" #~ msgstr "Create BOM Item" #: src/tables/bom/BomTable.tsx:306 -#: src/tables/build/BuildLineTable.tsx:69 +#: src/tables/build/BuildLineTable.tsx:200 msgid "Show testable items" msgstr "" @@ -5657,11 +6739,12 @@ msgid "Show trackable items" msgstr "" #: src/tables/bom/BomTable.tsx:316 -#: src/tables/build/BuildLineTable.tsx:64 +#: src/tables/build/BuildLineTable.tsx:195 msgid "Show assembled items" msgstr "" #: src/tables/bom/BomTable.tsx:321 +#: src/tables/build/BuildLineTable.tsx:180 msgid "Show items with available stock" msgstr "" @@ -5705,7 +6788,7 @@ msgstr "" #: src/tables/bom/BomTable.tsx:345 #: src/tables/bom/UsedInTable.tsx:79 -#: src/tables/build/BuildLineTable.tsx:58 +#: src/tables/build/BuildLineTable.tsx:189 msgid "Optional" msgstr "" @@ -5723,7 +6806,7 @@ msgstr "" #~ msgstr "Bom item deleted" #: src/tables/bom/BomTable.tsx:350 -#: src/tables/build/BuildLineTable.tsx:53 +#: src/tables/build/BuildLineTable.tsx:184 msgid "Consumable" msgstr "" @@ -5749,12 +6832,12 @@ msgid "Show items with pricing" msgstr "" #: src/tables/bom/BomTable.tsx:378 -#: src/tables/bom/BomTable.tsx:511 +#: src/tables/bom/BomTable.tsx:512 msgid "Import BOM Data" msgstr "" #: src/tables/bom/BomTable.tsx:388 -#: src/tables/bom/BomTable.tsx:523 +#: src/tables/bom/BomTable.tsx:526 msgid "Add BOM Item" msgstr "" @@ -5780,7 +6863,7 @@ msgstr "" #: src/tables/bom/BomTable.tsx:423 #: src/tables/bom/BomTable.tsx:426 -#: src/tables/bom/BomTable.tsx:517 +#: src/tables/bom/BomTable.tsx:519 msgid "Validate BOM" msgstr "" @@ -5812,21 +6895,15 @@ msgstr "" msgid "Edit Substitutes" msgstr "" -#: src/tables/bom/BomTable.tsx:539 -#: src/tables/part/PartParameterTable.tsx:193 -#: src/tables/part/PartTestTemplateTable.tsx:252 -msgid "Part is Locked" -msgstr "" - -#: src/tables/bom/BomTable.tsx:544 +#: src/tables/bom/BomTable.tsx:547 msgid "Bill of materials cannot be edited, as the part is locked" msgstr "" #: src/tables/bom/UsedInTable.tsx:33 -#: src/tables/build/BuildLineTable.tsx:63 +#: src/tables/build/BuildLineTable.tsx:194 #: src/tables/part/ParametricPartTable.tsx:233 #: src/tables/part/PartTable.tsx:190 -#: src/tables/stock/StockItemTable.tsx:300 +#: src/tables/stock/StockItemTable.tsx:304 msgid "Assembly" msgstr "Montering" @@ -5844,285 +6921,347 @@ msgstr "Spårbart objekt" msgid "Show trackable assemblies" msgstr "" -#: src/tables/build/BuildAllocatedStockTable.tsx:54 +#: src/tables/build/BuildAllocatedStockTable.tsx:56 msgid "Allocated to Output" msgstr "" -#: src/tables/build/BuildAllocatedStockTable.tsx:55 +#: src/tables/build/BuildAllocatedStockTable.tsx:57 msgid "Show items allocated to a build output" msgstr "" -#: src/tables/build/BuildAllocatedStockTable.tsx:76 -#: src/tables/part/PartPurchaseOrdersTable.tsx:125 -#: src/tables/sales/SalesOrderAllocationTable.tsx:62 +#: src/tables/build/BuildAllocatedStockTable.tsx:65 +#: src/tables/build/BuildOrderTable.tsx:159 +#: src/tables/part/PartParameterTable.tsx:212 +#: src/tables/part/PartPurchaseOrdersTable.tsx:138 +#: src/tables/sales/ReturnOrderTable.tsx:84 +#: src/tables/sales/SalesOrderAllocationTable.tsx:68 +#: src/tables/sales/SalesOrderTable.tsx:84 +#: src/tables/stock/StockItemTable.tsx:339 +msgid "Include Variants" +msgstr "" + +#: src/tables/build/BuildAllocatedStockTable.tsx:66 +#: src/tables/build/BuildOrderTable.tsx:160 +#: src/tables/part/PartPurchaseOrdersTable.tsx:139 +#: src/tables/sales/ReturnOrderTable.tsx:85 +#: src/tables/sales/SalesOrderAllocationTable.tsx:69 +#: src/tables/sales/SalesOrderTable.tsx:85 +msgid "Include orders for part variants" +msgstr "" + +#: src/tables/build/BuildAllocatedStockTable.tsx:89 +#: src/tables/part/PartPurchaseOrdersTable.tsx:131 +#: src/tables/sales/SalesOrderAllocationTable.tsx:93 msgid "Order Status" msgstr "" -#: src/tables/build/BuildAllocatedStockTable.tsx:96 -#: src/tables/sales/SalesOrderAllocationTable.tsx:75 +#: src/tables/build/BuildAllocatedStockTable.tsx:117 +#: src/tables/sales/SalesOrderAllocationTable.tsx:126 msgid "Allocated Quantity" msgstr "" -#: src/tables/build/BuildAllocatedStockTable.tsx:116 -#: src/tables/sales/SalesOrderAllocationTable.tsx:94 +#: src/tables/build/BuildAllocatedStockTable.tsx:137 +#: src/tables/sales/SalesOrderAllocationTable.tsx:120 msgid "Available Quantity" msgstr "" -#: src/tables/build/BuildAllocatedStockTable.tsx:126 -#: src/tables/build/BuildOrderTestTable.tsx:176 -#: src/tables/build/BuildOrderTestTable.tsx:200 -#: src/tables/build/BuildOutputTable.tsx:312 -msgid "Build Output" +#: src/tables/build/BuildAllocatedStockTable.tsx:164 +#: src/tables/build/BuildLineTable.tsx:513 +msgid "Edit Stock Allocation" msgstr "" -#: src/tables/build/BuildAllocatedStockTable.tsx:143 -msgid "Edit Build Item" -msgstr "" +#: src/tables/build/BuildAllocatedStockTable.tsx:164 +#~ msgid "Edit Build Item" +#~ msgstr "Edit Build Item" -#: src/tables/build/BuildAllocatedStockTable.tsx:153 -msgid "Delete Build Item" -msgstr "" +#: src/tables/build/BuildAllocatedStockTable.tsx:174 +#~ msgid "Delete Build Item" +#~ msgstr "Delete Build Item" -#: src/tables/build/BuildLineTable.tsx:43 -#: src/tables/stock/StockItemTable.tsx:305 -msgid "Allocated" -msgstr "" - -#: src/tables/build/BuildLineTable.tsx:44 -msgid "Show allocated lines" -msgstr "" - -#: src/tables/build/BuildLineTable.tsx:49 -msgid "Show lines with available stock" -msgstr "" - -#: src/tables/build/BuildLineTable.tsx:54 -msgid "Show consumable lines" +#: src/tables/build/BuildAllocatedStockTable.tsx:177 +#: src/tables/build/BuildLineTable.tsx:526 +msgid "Delete Stock Allocation" msgstr "" #: src/tables/build/BuildLineTable.tsx:59 +#~ msgid "Show lines with available stock" +#~ msgstr "Show lines with available stock" + +#: src/tables/build/BuildLineTable.tsx:175 +msgid "Show allocated lines" +msgstr "" + +#: src/tables/build/BuildLineTable.tsx:185 +msgid "Show consumable lines" +msgstr "" + +#: src/tables/build/BuildLineTable.tsx:190 msgid "Show optional lines" msgstr "" -#: src/tables/build/BuildLineTable.tsx:68 +#: src/tables/build/BuildLineTable.tsx:199 #: src/tables/part/PartTable.tsx:208 msgid "Testable" msgstr "" -#: src/tables/build/BuildLineTable.tsx:73 -#: src/tables/stock/StockItemTable.tsx:364 +#: src/tables/build/BuildLineTable.tsx:204 +#: src/tables/stock/StockItemTable.tsx:368 msgid "Tracked" msgstr "" -#: src/tables/build/BuildLineTable.tsx:74 +#: src/tables/build/BuildLineTable.tsx:205 msgid "Show tracked lines" msgstr "" -#: src/tables/build/BuildLineTable.tsx:108 -#: src/tables/sales/SalesOrderLineItemTable.tsx:133 +#: src/tables/build/BuildLineTable.tsx:239 +#: src/tables/sales/SalesOrderLineItemTable.tsx:141 msgid "In production" msgstr "" -#: src/tables/build/BuildLineTable.tsx:136 +#: src/tables/build/BuildLineTable.tsx:267 msgid "Insufficient stock" msgstr "" -#: src/tables/build/BuildLineTable.tsx:152 -#: src/tables/sales/SalesOrderLineItemTable.tsx:121 -#: src/tables/stock/StockItemTable.tsx:186 +#: src/tables/build/BuildLineTable.tsx:283 +#: src/tables/sales/SalesOrderLineItemTable.tsx:129 +#: src/tables/stock/StockItemTable.tsx:175 msgid "No stock available" msgstr "" -#: src/tables/build/BuildLineTable.tsx:201 +#: src/tables/build/BuildLineTable.tsx:355 msgid "Gets Inherited" msgstr "" -#: src/tables/build/BuildLineTable.tsx:210 +#: src/tables/build/BuildLineTable.tsx:366 msgid "Unit Quantity" msgstr "" -#: src/tables/build/BuildLineTable.tsx:267 -#: src/tables/sales/SalesOrderLineItemTable.tsx:230 +#: src/tables/build/BuildLineTable.tsx:381 +msgid "Required Quantity" +msgstr "" + +#: src/tables/build/BuildLineTable.tsx:432 +#: src/tables/sales/SalesOrderLineItemTable.tsx:254 msgid "Create Build Order" msgstr "" -#: src/tables/build/BuildLineTable.tsx:298 -msgid "Allocate Stock" +#: src/tables/build/BuildLineTable.tsx:460 +msgid "Auto allocation in progress" msgstr "" -#: src/tables/build/BuildLineTable.tsx:305 +#: src/tables/build/BuildLineTable.tsx:463 +#: src/tables/build/BuildLineTable.tsx:632 +msgid "Auto Allocate Stock" +msgstr "" + +#: src/tables/build/BuildLineTable.tsx:464 +msgid "Automatically allocate stock to this build according to the selected options" +msgstr "" + +#: src/tables/build/BuildLineTable.tsx:482 +#: src/tables/build/BuildLineTable.tsx:496 +#: src/tables/build/BuildLineTable.tsx:579 +#: src/tables/build/BuildLineTable.tsx:664 +#: src/tables/build/BuildOutputTable.tsx:314 +#: src/tables/build/BuildOutputTable.tsx:319 +msgid "Deallocate Stock" +msgstr "" + +#: src/tables/build/BuildLineTable.tsx:498 +msgid "Deallocate all untracked stock for this build order" +msgstr "" + +#: src/tables/build/BuildLineTable.tsx:500 +msgid "Deallocate stock from the selected line item" +msgstr "" + +#: src/tables/build/BuildLineTable.tsx:504 +msgid "Stock has been deallocated" +msgstr "" + +#: src/tables/build/BuildLineTable.tsx:589 msgid "Order Stock" msgstr "" -#: src/tables/build/BuildLineTable.tsx:312 +#: src/tables/build/BuildLineTable.tsx:596 msgid "Build Stock" msgstr "" -#: src/tables/build/BuildOrderTable.tsx:111 -msgid "Show active orders" +#: src/tables/build/BuildLineTable.tsx:610 +msgid "View Part" msgstr "" #: src/tables/build/BuildOrderTable.tsx:116 -msgid "Cascade" -msgstr "" +#~ msgid "Cascade" +#~ msgstr "Cascade" #: src/tables/build/BuildOrderTable.tsx:117 -msgid "Display recursive child orders" +#~ msgid "Display recursive child orders" +#~ msgstr "Display recursive child orders" + +#: src/tables/build/BuildOrderTable.tsx:121 +msgid "Show outstanding orders" msgstr "" -#: src/tables/build/BuildOrderTable.tsx:123 -#: src/tables/part/PartPurchaseOrdersTable.tsx:126 -#: src/tables/purchasing/PurchaseOrderTable.tsx:56 -#: src/tables/sales/ReturnOrderTable.tsx:47 -#: src/tables/sales/SalesOrderTable.tsx:54 +#: src/tables/build/BuildOrderTable.tsx:121 +#~ msgid "Show active orders" +#~ msgstr "Show active orders" + +#: src/tables/build/BuildOrderTable.tsx:122 +#~ msgid "Show overdue status" +#~ msgstr "Show overdue status" + +#: src/tables/build/BuildOrderTable.tsx:126 +#: src/tables/part/PartPurchaseOrdersTable.tsx:132 +#: src/tables/purchasing/PurchaseOrderTable.tsx:59 +#: src/tables/sales/ReturnOrderTable.tsx:57 +#: src/tables/sales/SalesOrderTable.tsx:57 msgid "Filter by order status" msgstr "" -#: src/tables/build/BuildOrderTable.tsx:130 -msgid "Show overdue status" -msgstr "" - -#: src/tables/build/BuildOrderTable.tsx:141 -#: src/tables/purchasing/PurchaseOrderTable.tsx:65 -#: src/tables/sales/ReturnOrderTable.tsx:56 -#: src/tables/sales/SalesOrderTable.tsx:63 +#: src/tables/build/BuildOrderTable.tsx:136 +#: src/tables/purchasing/PurchaseOrderTable.tsx:70 +#: src/tables/sales/ReturnOrderTable.tsx:68 +#: src/tables/sales/SalesOrderTable.tsx:68 msgid "Filter by project code" msgstr "" -#: src/tables/build/BuildOrderTable.tsx:146 -#: src/tables/purchasing/PurchaseOrderTable.tsx:70 -#: src/tables/sales/ReturnOrderTable.tsx:61 -#: src/tables/sales/SalesOrderTable.tsx:68 -msgid "Has Project Code" -msgstr "" - -#: src/tables/build/BuildOrderTable.tsx:147 +#: src/tables/build/BuildOrderTable.tsx:139 #: src/tables/purchasing/PurchaseOrderTable.tsx:71 #: src/tables/sales/ReturnOrderTable.tsx:62 #: src/tables/sales/SalesOrderTable.tsx:69 -msgid "Filter by whether the purchase order has a project code" -msgstr "" +#~ msgid "Filter by whether the purchase order has a project code" +#~ msgstr "Filter by whether the purchase order has a project code" -#: src/tables/build/BuildOrderTable.tsx:152 +#: src/tables/build/BuildOrderTable.tsx:143 msgid "Filter by user who issued this order" msgstr "" -#: src/tables/build/BuildOrderTable.tsx:158 -#: src/tables/purchasing/PurchaseOrderTable.tsx:76 -#: src/tables/sales/ReturnOrderTable.tsx:67 -#: src/tables/sales/SalesOrderTable.tsx:74 +#: src/tables/build/BuildOrderTable.tsx:149 +#: src/tables/purchasing/PurchaseOrderTable.tsx:77 +#: src/tables/sales/ReturnOrderTable.tsx:75 +#: src/tables/sales/SalesOrderTable.tsx:75 msgid "Filter by responsible owner" msgstr "" -#: src/tables/build/BuildOrderTestTable.tsx:75 -#: src/tables/build/BuildOrderTestTable.tsx:111 -#: src/tables/stock/StockItemTestResultTable.tsx:257 -#: src/tables/stock/StockItemTestResultTable.tsx:329 -#: src/tables/stock/StockItemTestResultTable.tsx:384 +#: src/tables/build/BuildOrderTestTable.tsx:76 +#: src/tables/build/BuildOrderTestTable.tsx:112 +#: src/tables/stock/StockItemTestResultTable.tsx:275 +#: src/tables/stock/StockItemTestResultTable.tsx:347 +#: src/tables/stock/StockItemTestResultTable.tsx:403 msgid "Add Test Result" msgstr "" -#: src/tables/build/BuildOrderTestTable.tsx:82 -#: src/tables/stock/StockItemTestResultTable.tsx:259 +#: src/tables/build/BuildOrderTestTable.tsx:83 +#: src/tables/stock/StockItemTestResultTable.tsx:277 msgid "Test result added" msgstr "" -#: src/tables/build/BuildOrderTestTable.tsx:110 -#: src/tables/stock/StockItemTestResultTable.tsx:174 +#: src/tables/build/BuildOrderTestTable.tsx:111 +#: src/tables/stock/StockItemTestResultTable.tsx:180 msgid "No Result" msgstr "" -#: src/tables/build/BuildOrderTestTable.tsx:220 +#: src/tables/build/BuildOrderTestTable.tsx:221 msgid "Show build outputs currently in production" msgstr "Visa tillverkat antal som är i produktion" +#: src/tables/build/BuildOutputTable.tsx:76 +msgid "Build Output Stock Allocation" +msgstr "" + #: src/tables/build/BuildOutputTable.tsx:161 #~ msgid "Delete build output" #~ msgstr "Delete build output" -#: src/tables/build/BuildOutputTable.tsx:173 -#: src/tables/build/BuildOutputTable.tsx:211 +#: src/tables/build/BuildOutputTable.tsx:258 +#: src/tables/build/BuildOutputTable.tsx:374 msgid "Add Build Output" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:216 +#: src/tables/build/BuildOutputTable.tsx:304 +#~ msgid "Edit build output" +#~ msgstr "Edit build output" + +#: src/tables/build/BuildOutputTable.tsx:306 +#: src/tables/build/BuildOutputTable.tsx:417 +msgid "Edit Build Output" +msgstr "" + +#: src/tables/build/BuildOutputTable.tsx:321 +msgid "This action will deallocate all stock from the selected build output" +msgstr "" + +#: src/tables/build/BuildOutputTable.tsx:341 msgid "Complete selected outputs" msgstr "Slutför valda produkter" -#: src/tables/build/BuildOutputTable.tsx:226 +#: src/tables/build/BuildOutputTable.tsx:352 msgid "Scrap selected outputs" msgstr "Skrot valda produkter" -#: src/tables/build/BuildOutputTable.tsx:236 +#: src/tables/build/BuildOutputTable.tsx:363 msgid "Cancel selected outputs" msgstr "Avbryt valda produkter" -#: src/tables/build/BuildOutputTable.tsx:252 +#: src/tables/build/BuildOutputTable.tsx:385 msgid "Allocate" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:253 +#: src/tables/build/BuildOutputTable.tsx:386 msgid "Allocate stock to build output" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:259 +#: src/tables/build/BuildOutputTable.tsx:396 msgid "Deallocate" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:260 +#: src/tables/build/BuildOutputTable.tsx:397 msgid "Deallocate stock from build output" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:267 +#: src/tables/build/BuildOutputTable.tsx:408 msgid "Complete build output" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:276 +#: src/tables/build/BuildOutputTable.tsx:424 msgid "Scrap" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:277 +#: src/tables/build/BuildOutputTable.tsx:425 msgid "Scrap build output" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:280 -#~ msgid "Allocated Items" -#~ msgstr "Allocated Items" - -#: src/tables/build/BuildOutputTable.tsx:287 +#: src/tables/build/BuildOutputTable.tsx:435 msgid "Cancel build output" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:325 -msgid "Batch" -msgstr "" - -#: src/tables/build/BuildOutputTable.tsx:340 +#: src/tables/build/BuildOutputTable.tsx:488 msgid "Allocated Lines" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:355 +#: src/tables/build/BuildOutputTable.tsx:503 msgid "Required Tests" msgstr "" -#: src/tables/company/AddressTable.tsx:121 -#: src/tables/company/AddressTable.tsx:185 +#: src/tables/company/AddressTable.tsx:118 +#: src/tables/company/AddressTable.tsx:183 msgid "Add Address" msgstr "" -#: src/tables/company/AddressTable.tsx:126 +#: src/tables/company/AddressTable.tsx:123 msgid "Address created" msgstr "" -#: src/tables/company/AddressTable.tsx:135 +#: src/tables/company/AddressTable.tsx:132 msgid "Edit Address" msgstr "" -#: src/tables/company/AddressTable.tsx:143 +#: src/tables/company/AddressTable.tsx:140 msgid "Delete Address" msgstr "Radera adress" -#: src/tables/company/AddressTable.tsx:144 +#: src/tables/company/AddressTable.tsx:141 msgid "Are you sure you want to delete this address?" msgstr "Är du säker på att du vill radera denna adress?" @@ -6130,24 +7269,24 @@ msgstr "Är du säker på att du vill radera denna adress?" #~ msgid "New Company" #~ msgstr "New Company" -#: src/tables/company/CompanyTable.tsx:74 -#: src/tables/company/CompanyTable.tsx:123 +#: src/tables/company/CompanyTable.tsx:75 +#: src/tables/company/CompanyTable.tsx:125 msgid "Add Company" msgstr "" -#: src/tables/company/CompanyTable.tsx:96 +#: src/tables/company/CompanyTable.tsx:97 msgid "Show active companies" msgstr "" -#: src/tables/company/CompanyTable.tsx:101 +#: src/tables/company/CompanyTable.tsx:102 msgid "Show companies which are suppliers" msgstr "" -#: src/tables/company/CompanyTable.tsx:106 +#: src/tables/company/CompanyTable.tsx:107 msgid "Show companies which are manufacturers" msgstr "" -#: src/tables/company/CompanyTable.tsx:111 +#: src/tables/company/CompanyTable.tsx:112 msgid "Show companies which are customers" msgstr "" @@ -6163,96 +7302,99 @@ msgstr "" msgid "Delete Contact" msgstr "Radera kontakt" -#: src/tables/company/ContactTable.tsx:129 +#: src/tables/company/ContactTable.tsx:130 msgid "Add contact" msgstr "" -#: src/tables/general/AttachmentTable.tsx:130 +#: src/tables/general/AttachmentTable.tsx:135 msgid "File uploaded" msgstr "" -#: src/tables/general/AttachmentTable.tsx:131 +#: src/tables/general/AttachmentTable.tsx:136 msgid "File {0} uploaded successfully" msgstr "" -#: src/tables/general/AttachmentTable.tsx:142 +#: src/tables/general/AttachmentTable.tsx:147 msgid "Upload Error" msgstr "" -#: src/tables/general/AttachmentTable.tsx:143 +#: src/tables/general/AttachmentTable.tsx:148 msgid "File could not be uploaded" msgstr "" -#: src/tables/general/AttachmentTable.tsx:191 +#: src/tables/general/AttachmentTable.tsx:196 msgid "Upload Attachment" msgstr "Ladda upp bilaga" -#: src/tables/general/AttachmentTable.tsx:201 +#: src/tables/general/AttachmentTable.tsx:206 msgid "Edit Attachment" msgstr "Redigera bilaga" -#: src/tables/general/AttachmentTable.tsx:215 +#: src/tables/general/AttachmentTable.tsx:220 msgid "Delete Attachment" msgstr "Radera bilaga" -#: src/tables/general/AttachmentTable.tsx:225 +#: src/tables/general/AttachmentTable.tsx:230 msgid "Is Link" -msgstr "" +msgstr "Är länk" -#: src/tables/general/AttachmentTable.tsx:226 +#: src/tables/general/AttachmentTable.tsx:231 msgid "Show link attachments" msgstr "" -#: src/tables/general/AttachmentTable.tsx:230 +#: src/tables/general/AttachmentTable.tsx:235 msgid "Is File" -msgstr "" +msgstr "Är fil" -#: src/tables/general/AttachmentTable.tsx:231 +#: src/tables/general/AttachmentTable.tsx:236 msgid "Show file attachments" msgstr "" -#: src/tables/general/AttachmentTable.tsx:240 +#: src/tables/general/AttachmentTable.tsx:245 msgid "Add attachment" msgstr "" -#: src/tables/general/AttachmentTable.tsx:251 -msgid "Add external link" -msgstr "" - #: src/tables/general/AttachmentTable.tsx:254 #~ msgid "Upload attachment" #~ msgstr "Upload attachment" -#: src/tables/general/AttachmentTable.tsx:299 +#: src/tables/general/AttachmentTable.tsx:256 +msgid "Add external link" +msgstr "" + +#: src/tables/general/AttachmentTable.tsx:304 msgid "No attachments found" msgstr "" -#: src/tables/general/AttachmentTable.tsx:337 +#: src/tables/general/AttachmentTable.tsx:343 msgid "Drag attachment file here to upload" msgstr "" #: src/tables/general/ExtraLineItemTable.tsx:86 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:251 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:60 -#: src/tables/sales/SalesOrderLineItemTable.tsx:196 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:263 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:362 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:72 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:168 +#: src/tables/sales/SalesOrderLineItemTable.tsx:206 +#: src/tables/sales/SalesOrderLineItemTable.tsx:291 msgid "Add Line Item" msgstr "" #: src/tables/general/ExtraLineItemTable.tsx:98 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:271 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:72 -#: src/tables/sales/SalesOrderLineItemTable.tsx:214 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:283 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:84 +#: src/tables/sales/SalesOrderLineItemTable.tsx:224 msgid "Edit Line Item" msgstr "" #: src/tables/general/ExtraLineItemTable.tsx:106 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:279 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:80 -#: src/tables/sales/SalesOrderLineItemTable.tsx:222 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:291 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:92 +#: src/tables/sales/SalesOrderLineItemTable.tsx:232 msgid "Delete Line Item" msgstr "" -#: src/tables/general/ExtraLineItemTable.tsx:142 +#: src/tables/general/ExtraLineItemTable.tsx:143 msgid "Add Extra Line Item" msgstr "" @@ -6261,12 +7403,12 @@ msgid "Machine restarted" msgstr "" #: src/tables/machine/MachineListTable.tsx:212 -#: src/tables/machine/MachineListTable.tsx:263 +#: src/tables/machine/MachineListTable.tsx:261 msgid "Edit machine" msgstr "" #: src/tables/machine/MachineListTable.tsx:226 -#: src/tables/machine/MachineListTable.tsx:267 +#: src/tables/machine/MachineListTable.tsx:265 msgid "Delete machine" msgstr "" @@ -6278,51 +7420,50 @@ msgstr "" msgid "Are you sure you want to remove the machine \"{0}\"?" msgstr "" -#: src/tables/machine/MachineListTable.tsx:255 -#: src/tables/machine/MachineListTable.tsx:432 +#: src/tables/machine/MachineListTable.tsx:254 +#: src/tables/machine/MachineListTable.tsx:442 msgid "Restart required" msgstr "" -#: src/tables/machine/MachineListTable.tsx:259 +#: src/tables/machine/MachineListTable.tsx:258 msgid "Machine Actions" msgstr "" -#: src/tables/machine/MachineListTable.tsx:272 +#: src/tables/machine/MachineListTable.tsx:270 msgid "Restart" msgstr "" -#: src/tables/machine/MachineListTable.tsx:274 +#: src/tables/machine/MachineListTable.tsx:272 msgid "Restart machine" msgstr "" -#: src/tables/machine/MachineListTable.tsx:276 +#: src/tables/machine/MachineListTable.tsx:274 msgid "manual restart required" msgstr "" +#: src/tables/machine/MachineListTable.tsx:291 +#~ msgid "Machine information" +#~ msgstr "Machine information" + #: src/tables/machine/MachineListTable.tsx:292 -msgid "Machine information" +msgid "Machine Information" msgstr "" -#: src/tables/machine/MachineListTable.tsx:303 -#: src/tables/machine/MachineListTable.tsx:599 +#: src/tables/machine/MachineListTable.tsx:302 +#: src/tables/machine/MachineListTable.tsx:610 msgid "Machine Type" msgstr "" -#: src/tables/machine/MachineListTable.tsx:316 +#: src/tables/machine/MachineListTable.tsx:315 msgid "Machine Driver" msgstr "" -#: src/tables/machine/MachineListTable.tsx:329 +#: src/tables/machine/MachineListTable.tsx:330 msgid "Initialized" msgstr "" -#: src/tables/machine/MachineListTable.tsx:350 -#: src/tables/machine/MachineTypeTable.tsx:261 -msgid "Errors" -msgstr "" - -#: src/tables/machine/MachineListTable.tsx:358 -#: src/tables/machine/MachineTypeTable.tsx:269 +#: src/tables/machine/MachineListTable.tsx:359 +#: src/tables/machine/MachineTypeTable.tsx:290 msgid "No errors reported" msgstr "" @@ -6330,7 +7471,7 @@ msgstr "" msgid "Machine Settings" msgstr "" -#: src/tables/machine/MachineListTable.tsx:389 +#: src/tables/machine/MachineListTable.tsx:394 msgid "Driver Settings" msgstr "" @@ -6338,86 +7479,109 @@ msgstr "" #~ msgid "Create machine" #~ msgstr "Create machine" -#: src/tables/machine/MachineListTable.tsx:506 +#: src/tables/machine/MachineListTable.tsx:516 +#: src/tables/machine/MachineListTable.tsx:558 msgid "Add machine" msgstr "" #: src/tables/machine/MachineListTable.tsx:561 -msgid "Machine detail" +#~ msgid "Machine detail" +#~ msgstr "Machine detail" + +#: src/tables/machine/MachineListTable.tsx:572 +msgid "Machine Detail" msgstr "" -#: src/tables/machine/MachineListTable.tsx:608 +#: src/tables/machine/MachineListTable.tsx:619 msgid "Driver" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:73 +#: src/tables/machine/MachineTypeTable.tsx:78 msgid "Builtin driver" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:89 +#: src/tables/machine/MachineTypeTable.tsx:96 +msgid "Not Found" +msgstr "" + +#: src/tables/machine/MachineTypeTable.tsx:99 msgid "Machine type not found." msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:97 -msgid "Machine type information" +#: src/tables/machine/MachineTypeTable.tsx:99 +#~ msgid "Machine type information" +#~ msgstr "Machine type information" + +#: src/tables/machine/MachineTypeTable.tsx:109 +msgid "Machine Type Information" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:110 -#: src/tables/machine/MachineTypeTable.tsx:217 +#: src/tables/machine/MachineTypeTable.tsx:124 +#: src/tables/machine/MachineTypeTable.tsx:238 msgid "Slug" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:118 -#: src/tables/machine/MachineTypeTable.tsx:238 +#: src/tables/machine/MachineTypeTable.tsx:135 +#: src/tables/machine/MachineTypeTable.tsx:259 msgid "Provider plugin" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:130 -#: src/tables/machine/MachineTypeTable.tsx:250 +#: src/tables/machine/MachineTypeTable.tsx:147 +#: src/tables/machine/MachineTypeTable.tsx:271 msgid "Provider file" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:135 -#: src/tables/machine/MachineTypeTable.tsx:255 -#: src/tables/plugin/PluginListTable.tsx:180 -#: src/tables/plugin/PluginListTable.tsx:568 -msgid "Builtin" +#: src/tables/machine/MachineTypeTable.tsx:148 +#~ msgid "Available drivers" +#~ msgstr "Available drivers" + +#: src/tables/machine/MachineTypeTable.tsx:162 +msgid "Available Drivers" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:146 -msgid "Available drivers" -msgstr "" - -#: src/tables/machine/MachineTypeTable.tsx:196 +#: src/tables/machine/MachineTypeTable.tsx:217 msgid "Machine driver not found." msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:204 +#: src/tables/machine/MachineTypeTable.tsx:225 msgid "Machine driver information" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:224 +#: src/tables/machine/MachineTypeTable.tsx:245 msgid "Machine type" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:327 +#: src/tables/machine/MachineTypeTable.tsx:338 +#~ msgid "Machine type detail" +#~ msgstr "Machine type detail" + +#: src/tables/machine/MachineTypeTable.tsx:348 msgid "Builtin type" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:336 -msgid "Machine type detail" +#: src/tables/machine/MachineTypeTable.tsx:348 +#~ msgid "Machine driver detail" +#~ msgstr "Machine driver detail" + +#: src/tables/machine/MachineTypeTable.tsx:357 +msgid "Machine Type Detail" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:346 -msgid "Machine driver detail" +#: src/tables/machine/MachineTypeTable.tsx:367 +msgid "Machine Driver Detail" msgstr "" #: src/tables/notifications/NotificationsTable.tsx:26 msgid "Age" msgstr "" +#: src/tables/notifications/NotificationsTable.tsx:36 +msgid "Notification" +msgstr "Avisering" + #: src/tables/notifications/NotificationsTable.tsx:40 #: src/tables/plugin/PluginErrorTable.tsx:37 +#: src/tables/settings/ErrorTable.tsx:50 msgid "Message" msgstr "" @@ -6451,33 +7615,32 @@ msgstr "" msgid "Show assembly parts" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:68 +#: src/tables/part/PartCategoryTable.tsx:48 +msgid "You are subscribed to notifications for this category" +msgstr "" + +#: src/tables/part/PartCategoryTable.tsx:80 #: src/tables/part/PartTable.tsx:196 msgid "Include Subcategories" msgstr "Inkludera underkategorier" -#: src/tables/part/PartCategoryTable.tsx:69 +#: src/tables/part/PartCategoryTable.tsx:81 msgid "Include subcategories in results" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:74 +#: src/tables/part/PartCategoryTable.tsx:86 msgid "Show structural categories" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:78 -#: src/tables/part/PartTable.tsx:294 -msgid "Subscribed" -msgstr "" - -#: src/tables/part/PartCategoryTable.tsx:79 +#: src/tables/part/PartCategoryTable.tsx:91 msgid "Show categories to which the user is subscribed" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:86 +#: src/tables/part/PartCategoryTable.tsx:100 msgid "New Part Category" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:112 +#: src/tables/part/PartCategoryTable.tsx:129 msgid "Add Part Category" msgstr "" @@ -6523,11 +7686,6 @@ msgstr "" msgid "Part parameters cannot be edited, as the part is locked" msgstr "" -#: src/tables/part/PartParameterTable.tsx:212 -#: src/tables/stock/StockItemTable.tsx:335 -msgid "Include Variants" -msgstr "" - #: src/tables/part/PartParameterTemplateTable.tsx:31 msgid "Checkbox" msgstr "" @@ -6554,6 +7712,7 @@ msgid "Show templates with units" msgstr "" #: src/tables/part/PartParameterTemplateTable.tsx:85 +#: src/tables/part/PartParameterTemplateTable.tsx:141 msgid "Add Parameter Template" msgstr "" @@ -6566,23 +7725,19 @@ msgid "Delete Parameter Template" msgstr "" #: src/tables/part/PartParameterTemplateTable.tsx:141 -msgid "Add parameter template" -msgstr "" +#~ msgid "Add parameter template" +#~ msgstr "Add parameter template" -#: src/tables/part/PartPurchaseOrdersTable.tsx:77 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:162 +#: src/tables/part/PartPurchaseOrdersTable.tsx:78 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:168 msgid "Total Quantity" msgstr "" -#: src/tables/part/PartPurchaseOrdersTable.tsx:115 -msgid "Pending" -msgstr "" - -#: src/tables/part/PartPurchaseOrdersTable.tsx:116 +#: src/tables/part/PartPurchaseOrdersTable.tsx:122 msgid "Show pending orders" msgstr "" -#: src/tables/part/PartPurchaseOrdersTable.tsx:121 +#: src/tables/part/PartPurchaseOrdersTable.tsx:127 msgid "Show received items" msgstr "" @@ -6674,7 +7829,7 @@ msgstr "Inte virtuell" #: src/tables/part/PartTable.tsx:266 msgid "Is Template" -msgstr "" +msgstr "Är mall" #: src/tables/part/PartTable.tsx:267 msgid "Filter by parts which are templates" @@ -6728,22 +7883,13 @@ msgstr "" msgid "Results" msgstr "Resultat" -#: src/tables/part/PartTestTemplateTable.tsx:76 -msgid "No Results" -msgstr "Inga resultat" - -#: src/tables/part/PartTestTemplateTable.tsx:106 -#: src/tables/stock/StockItemTestResultTable.tsx:365 -msgid "Required" -msgstr "" - #: src/tables/part/PartTestTemplateTable.tsx:107 msgid "Show required tests" msgstr "" #: src/tables/part/PartTestTemplateTable.tsx:111 -#: src/tables/settings/TemplateTable.tsx:167 -#: src/tables/settings/TemplateTable.tsx:283 +#: src/tables/settings/TemplateTable.tsx:247 +#: src/tables/settings/TemplateTable.tsx:363 msgid "Enabled" msgstr "" @@ -6784,7 +7930,7 @@ msgid "Show tests which have recorded results" msgstr "" #: src/tables/part/PartTestTemplateTable.tsx:154 -#: src/tables/part/PartTestTemplateTable.tsx:237 +#: src/tables/part/PartTestTemplateTable.tsx:238 msgid "Add Test Template" msgstr "" @@ -6808,7 +7954,7 @@ msgstr "" msgid "View Parent Part" msgstr "" -#: src/tables/part/PartTestTemplateTable.tsx:257 +#: src/tables/part/PartTestTemplateTable.tsx:258 msgid "Part templates cannot be edited, as the part is locked" msgstr "" @@ -6836,28 +7982,49 @@ msgstr "" msgid "Show trackable variants" msgstr "" -#: src/tables/part/RelatedPartTable.tsx:84 +#: src/tables/part/RelatedPartTable.tsx:86 +#: src/tables/part/RelatedPartTable.tsx:109 msgid "Add Related Part" msgstr "" -#: src/tables/part/RelatedPartTable.tsx:99 +#: src/tables/part/RelatedPartTable.tsx:101 msgid "Delete Related Part" msgstr "" -#: src/tables/part/RelatedPartTable.tsx:106 -msgid "Add related part" -msgstr "" +#: src/tables/part/RelatedPartTable.tsx:109 +#~ msgid "Add related part" +#~ msgstr "Add related part" #: src/tables/plugin/PluginErrorTable.tsx:29 msgid "Stage" msgstr "" -#: src/tables/plugin/PluginListTable.tsx:95 -msgid "Plugin with key {pluginKey} not found" +#: src/tables/plugin/PluginListTable.tsx:42 +msgid "Plugin is active" msgstr "" +#: src/tables/plugin/PluginListTable.tsx:48 +msgid "Plugin is inactive" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:55 +msgid "Plugin is not installed" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:76 +msgid "Plugin" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:95 +#~ msgid "Plugin with key {pluginKey} not found" +#~ msgstr "Plugin with key {pluginKey} not found" + #: src/tables/plugin/PluginListTable.tsx:97 -msgid "An error occurred while fetching plugin details" +#~ msgid "An error occurred while fetching plugin details" +#~ msgstr "An error occurred while fetching plugin details" + +#: src/tables/plugin/PluginListTable.tsx:109 +msgid "Description not available" msgstr "" #: src/tables/plugin/PluginListTable.tsx:113 @@ -6865,12 +8032,8 @@ msgstr "" #~ msgstr "Plugin with id {id} not found" #: src/tables/plugin/PluginListTable.tsx:122 -msgid "Plugin information" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:134 -msgid "Author" -msgstr "" +#~ msgid "Plugin information" +#~ msgstr "Plugin information" #: src/tables/plugin/PluginListTable.tsx:134 #~ msgid "Plugin Actions" @@ -6881,79 +8044,124 @@ msgstr "" #~ msgid "Edit plugin" #~ msgstr "Edit plugin" +#: src/tables/plugin/PluginListTable.tsx:144 +msgid "Confirm plugin activation" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:145 +msgid "Confirm plugin deactivation" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:150 +msgid "The selected plugin will be activated" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:151 +msgid "The selected plugin will be deactivated" +msgstr "" + #: src/tables/plugin/PluginListTable.tsx:152 #: src/tables/plugin/PluginListTable.tsx:153 #~ msgid "Reload" #~ msgstr "Reload" -#: src/tables/plugin/PluginListTable.tsx:154 -msgid "Plugin is not active" -msgstr "" - #: src/tables/plugin/PluginListTable.tsx:163 -msgid "Package information" -msgstr "" +#~ msgid "Package information" +#~ msgstr "Package information" #: src/tables/plugin/PluginListTable.tsx:169 -msgid "Package Name" +msgid "Deactivate" msgstr "" -#: src/tables/plugin/PluginListTable.tsx:175 -msgid "Installation Path" +#: src/tables/plugin/PluginListTable.tsx:183 +msgid "Activate" msgstr "" -#: src/tables/plugin/PluginListTable.tsx:185 -msgid "Package" +#: src/tables/plugin/PluginListTable.tsx:184 +msgid "Activate selected plugin" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:196 +msgid "Update selected plugin" msgstr "" #: src/tables/plugin/PluginListTable.tsx:197 -msgid "Plugin settings" -msgstr "" +#~ msgid "Plugin settings" +#~ msgstr "Plugin settings" #: src/tables/plugin/PluginListTable.tsx:214 -msgid "Plugin is active" +#: src/tables/stock/InstalledItemsTable.tsx:107 +msgid "Uninstall" msgstr "" -#: src/tables/plugin/PluginListTable.tsx:220 -msgid "Plugin is inactive" +#: src/tables/plugin/PluginListTable.tsx:215 +msgid "Uninstall selected plugin" msgstr "" -#: src/tables/plugin/PluginListTable.tsx:227 -msgid "Plugin is not installed" +#: src/tables/plugin/PluginListTable.tsx:233 +msgid "Delete selected plugin configuration" msgstr "" -#: src/tables/plugin/PluginListTable.tsx:253 -msgid "Plugin" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:287 -msgid "Description not available" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:319 -msgid "Confirm plugin activation" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:320 -msgid "Confirm plugin deactivation" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:325 -msgid "The selected plugin will be activated" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:326 -msgid "The selected plugin will be deactivated" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:334 +#: src/tables/plugin/PluginListTable.tsx:249 msgid "Activate Plugin" msgstr "" +#: src/tables/plugin/PluginListTable.tsx:270 +msgid "Install plugin" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:283 +msgid "Install" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:284 +msgid "Plugin installed successfully" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:289 +msgid "Uninstall Plugin" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:301 +msgid "Confirm plugin uninstall" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:304 +msgid "The selected plugin will be uninstalled." +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:308 +#~ msgid "This action cannot be undone." +#~ msgstr "This action cannot be undone." + +#: src/tables/plugin/PluginListTable.tsx:309 +msgid "Plugin uninstalled successfully" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:317 +msgid "Delete Plugin" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:318 +msgid "Deleting this plugin configuration will remove all associated settings and data. Are you sure you want to delete this plugin?" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:331 +msgid "Plugins reloaded" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:332 +msgid "Plugins were reloaded successfully" +msgstr "" + #: src/tables/plugin/PluginListTable.tsx:338 #~ msgid "Deactivate Plugin" #~ msgstr "Deactivate Plugin" +#: src/tables/plugin/PluginListTable.tsx:350 +msgid "Reload Plugins" +msgstr "" + #: src/tables/plugin/PluginListTable.tsx:354 #~ msgid "The following plugin will be activated" #~ msgstr "The following plugin will be activated" @@ -6962,16 +8170,16 @@ msgstr "" #~ msgid "The following plugin will be deactivated" #~ msgstr "The following plugin will be deactivated" -#: src/tables/plugin/PluginListTable.tsx:362 -msgid "Deactivate" +#: src/tables/plugin/PluginListTable.tsx:357 +msgid "Install Plugin" msgstr "" #: src/tables/plugin/PluginListTable.tsx:366 #~ msgid "Confirm" #~ msgstr "Confirm" -#: src/tables/plugin/PluginListTable.tsx:373 -msgid "Activate" +#: src/tables/plugin/PluginListTable.tsx:374 +msgid "Plugin Detail" msgstr "" #: src/tables/plugin/PluginListTable.tsx:376 @@ -6998,76 +8206,12 @@ msgstr "" #~ msgid "Error updating plugin" #~ msgstr "Error updating plugin" -#: src/tables/plugin/PluginListTable.tsx:406 -msgid "Uninstall" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:438 -msgid "Install plugin" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:451 -msgid "Install" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:452 -msgid "Plugin installed successfully" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:457 -msgid "Uninstall Plugin" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:469 -msgid "Confirm plugin uninstall" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:472 -msgid "The selected plugin will be uninstalled." -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:473 -msgid "This action cannot be undone." -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:477 -msgid "Plugin uninstalled successfully" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:484 -msgid "Delete Plugin" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:485 -msgid "Deleting this plugin configuration will remove all associated settings and data. Are you sure you want to delete this plugin?" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:498 -msgid "Plugins reloaded" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:499 -msgid "Plugins were reloaded successfully" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:515 -msgid "Reload Plugins" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:524 -msgid "Install Plugin" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:544 -msgid "Plugin Detail" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:573 +#: src/tables/plugin/PluginListTable.tsx:411 msgid "Sample" msgstr "" -#: src/tables/plugin/PluginListTable.tsx:578 -#: src/tables/stock/StockItemTable.tsx:340 +#: src/tables/plugin/PluginListTable.tsx:416 +#: src/tables/stock/StockItemTable.tsx:344 msgid "Installed" msgstr "" @@ -7116,82 +8260,78 @@ msgstr "" #~ msgid "Are you sure you want to remove this manufacturer part?" #~ msgstr "Are you sure you want to remove this manufacturer part?" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:102 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:339 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:103 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:356 msgid "Import Line Items" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:135 -msgid "Part Description" -msgstr "" - -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:201 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:207 msgid "Supplier Code" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:208 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:214 msgid "Supplier Link" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:215 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:220 msgid "Manufacturer Code" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:229 -msgid "Destination" +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:248 +msgid "Show line items which have been received" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:300 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:316 msgid "Receive line item" msgstr "" #: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:344 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:142 -#: src/tables/sales/SalesOrderLineItemTable.tsx:240 -msgid "Add line item" -msgstr "" +#: src/tables/sales/ReturnOrderLineItemTable.tsx:160 +#: src/tables/sales/SalesOrderLineItemTable.tsx:258 +#~ msgid "Add line item" +#~ msgstr "Add line item" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:354 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:373 msgid "Receive items" msgstr "" -#: src/tables/purchasing/SupplierPartTable.tsx:93 +#: src/tables/purchasing/SupplierPartTable.tsx:95 msgid "MPN" msgstr "" -#: src/tables/purchasing/SupplierPartTable.tsx:122 +#: src/tables/purchasing/SupplierPartTable.tsx:124 msgid "Base units" msgstr "" -#: src/tables/purchasing/SupplierPartTable.tsx:170 +#: src/tables/purchasing/SupplierPartTable.tsx:172 msgid "Supplier part created" msgstr "" -#: src/tables/purchasing/SupplierPartTable.tsx:176 +#: src/tables/purchasing/SupplierPartTable.tsx:179 msgid "Add supplier part" msgstr "" -#: src/tables/purchasing/SupplierPartTable.tsx:188 +#: src/tables/purchasing/SupplierPartTable.tsx:191 msgid "Show active supplier parts" msgstr "" -#: src/tables/purchasing/SupplierPartTable.tsx:192 -msgid "Active Part" -msgstr "" - -#: src/tables/purchasing/SupplierPartTable.tsx:193 -msgid "Show active internal parts" -msgstr "" - #: src/tables/purchasing/SupplierPartTable.tsx:193 #~ msgid "Supplier part updated" #~ msgstr "Supplier part updated" -#: src/tables/purchasing/SupplierPartTable.tsx:197 +#: src/tables/purchasing/SupplierPartTable.tsx:195 +msgid "Active Part" +msgstr "" + +#: src/tables/purchasing/SupplierPartTable.tsx:196 +msgid "Show active internal parts" +msgstr "" + +#: src/tables/purchasing/SupplierPartTable.tsx:200 msgid "Active Supplier" msgstr "" -#: src/tables/purchasing/SupplierPartTable.tsx:198 +#: src/tables/purchasing/SupplierPartTable.tsx:201 msgid "Show active suppliers" msgstr "" @@ -7203,99 +8343,187 @@ msgstr "" #~ msgid "Are you sure you want to remove this supplier part?" #~ msgstr "Are you sure you want to remove this supplier part?" -#: src/tables/sales/ReturnOrderLineItemTable.tsx:114 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:139 msgid "Received Date" msgstr "" -#: src/tables/sales/ReturnOrderLineItemTable.tsx:128 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:153 msgid "Show items which have been received" msgstr "" -#: src/tables/sales/ReturnOrderLineItemTable.tsx:133 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:158 msgid "Filter by line item status" msgstr "" -#: src/tables/sales/ReturnOrderLineItemTable.tsx:158 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:176 +msgid "Receive selected items" +msgstr "" + +#: src/tables/sales/ReturnOrderLineItemTable.tsx:205 msgid "Receive Item" msgstr "" -#: src/tables/sales/SalesOrderLineItemTable.tsx:262 -msgid "Allocate stock" +#: src/tables/sales/SalesOrderAllocationTable.tsx:60 +msgid "Show outstanding allocations" msgstr "" -#: src/tables/sales/SalesOrderLineItemTable.tsx:272 +#: src/tables/sales/SalesOrderAllocationTable.tsx:168 +#: src/tables/sales/SalesOrderAllocationTable.tsx:190 +msgid "Edit Allocation" +msgstr "" + +#: src/tables/sales/SalesOrderAllocationTable.tsx:175 +#: src/tables/sales/SalesOrderAllocationTable.tsx:197 +msgid "Delete Allocation" +msgstr "" + +#: src/tables/sales/SalesOrderLineItemTable.tsx:244 +msgid "Allocate Serial Numbers" +msgstr "" + +#: src/tables/sales/SalesOrderLineItemTable.tsx:277 +msgid "Show lines which are fully allocated" +msgstr "" + +#: src/tables/sales/SalesOrderLineItemTable.tsx:280 +#~ msgid "Allocate stock" +#~ msgstr "Allocate stock" + +#: src/tables/sales/SalesOrderLineItemTable.tsx:282 +msgid "Show lines which are completed" +msgstr "" + +#: src/tables/sales/SalesOrderLineItemTable.tsx:291 +#~ msgid "Allocate Serials" +#~ msgstr "Allocate Serials" + +#: src/tables/sales/SalesOrderLineItemTable.tsx:340 +msgid "Allocate serials" +msgstr "" + +#: src/tables/sales/SalesOrderLineItemTable.tsx:356 msgid "Build stock" msgstr "" -#: src/tables/sales/SalesOrderLineItemTable.tsx:289 -#: src/tables/stock/StockItemTable.tsx:507 +#: src/tables/sales/SalesOrderLineItemTable.tsx:373 +#: src/tables/stock/StockItemTable.tsx:512 msgid "Order stock" msgstr "" -#: src/tables/sales/SalesOrderShipmentTable.tsx:40 +#: src/tables/sales/SalesOrderShipmentTable.tsx:51 +#~ msgid "Delete Shipment" +#~ msgstr "Delete Shipment" + +#: src/tables/sales/SalesOrderShipmentTable.tsx:57 msgid "Create Shipment" msgstr "" -#: src/tables/sales/SalesOrderShipmentTable.tsx:50 -msgid "Delete Shipment" -msgstr "" - -#: src/tables/sales/SalesOrderShipmentTable.tsx:58 -msgid "Edit Shipment" -msgstr "" - -#: src/tables/sales/SalesOrderShipmentTable.tsx:66 -msgid "Shipment Reference" -msgstr "" - -#: src/tables/sales/SalesOrderShipmentTable.tsx:71 +#: src/tables/sales/SalesOrderShipmentTable.tsx:104 msgid "Items" msgstr "" -#: src/tables/sales/SalesOrderShipmentTable.tsx:83 -msgid "Delivery Date" +#: src/tables/sales/SalesOrderShipmentTable.tsx:139 +msgid "View Shipment" msgstr "" -#: src/tables/sales/SalesOrderShipmentTable.tsx:107 -msgid "Complete Shipment" +#: src/tables/sales/SalesOrderShipmentTable.tsx:161 +msgid "Edit shipment" msgstr "" -#: src/tables/sales/SalesOrderShipmentTable.tsx:133 +#: src/tables/sales/SalesOrderShipmentTable.tsx:169 +msgid "Cancel shipment" +msgstr "" + +#: src/tables/sales/SalesOrderShipmentTable.tsx:184 msgid "Add shipment" msgstr "" -#: src/tables/sales/SalesOrderShipmentTable.tsx:146 -msgid "Shipped" -msgstr "" - -#: src/tables/sales/SalesOrderShipmentTable.tsx:147 +#: src/tables/sales/SalesOrderShipmentTable.tsx:198 msgid "Show shipments which have been shipped" msgstr "" -#: src/tables/sales/SalesOrderShipmentTable.tsx:151 -msgid "Delivered" -msgstr "" - -#: src/tables/sales/SalesOrderShipmentTable.tsx:152 +#: src/tables/sales/SalesOrderShipmentTable.tsx:203 msgid "Show shipments which have been delivered" msgstr "" -#: src/tables/settings/CurrencyTable.tsx:28 -msgid "Rate" +#: src/tables/settings/BarcodeScanHistoryTable.tsx:61 +msgid "Barcode Information" msgstr "" -#: src/tables/settings/CurrencyTable.tsx:40 -msgid "Exchange rates updated" +#: src/tables/settings/BarcodeScanHistoryTable.tsx:76 +#: src/tables/settings/ErrorTable.tsx:59 +msgid "Timestamp" msgstr "" -#: src/tables/settings/CurrencyTable.tsx:46 -msgid "Exchange rate update error" +#: src/tables/settings/BarcodeScanHistoryTable.tsx:86 +msgid "Endpoint" msgstr "" -#: src/tables/settings/CurrencyTable.tsx:57 -msgid "Refresh currency exchange rates" +#: src/tables/settings/BarcodeScanHistoryTable.tsx:90 +#: src/tables/settings/BarcodeScanHistoryTable.tsx:217 +#: src/tables/stock/StockItemTestResultTable.tsx:174 +msgid "Result" msgstr "" +#: src/tables/settings/BarcodeScanHistoryTable.tsx:98 +msgid "Context" +msgstr "" + +#: src/tables/settings/BarcodeScanHistoryTable.tsx:119 +msgid "Response" +msgstr "" + +#: src/tables/settings/BarcodeScanHistoryTable.tsx:213 +#: src/tables/settings/ImportSessionTable.tsx:121 +#: src/tables/stock/StockTrackingTable.tsx:183 +msgid "Filter by user" +msgstr "Filtrera efter användare" + +#: src/tables/settings/BarcodeScanHistoryTable.tsx:218 +msgid "Filter by result" +msgstr "Filtrera efter resultat" + +#: src/tables/settings/BarcodeScanHistoryTable.tsx:232 +msgid "Delete Barcode Scan Record" +msgstr "" + +#: src/tables/settings/BarcodeScanHistoryTable.tsx:258 +msgid "Barcode Scan Details" +msgstr "" + +#: src/tables/settings/BarcodeScanHistoryTable.tsx:268 +msgid "Logging Disabled" +msgstr "" + +#: src/tables/settings/BarcodeScanHistoryTable.tsx:270 +msgid "Barcode logging is not enabled" +msgstr "" + +#: src/tables/settings/CustomStateTable.tsx:36 +msgid "Display Name" +msgstr "Visningsnamn" + +#: src/tables/settings/CustomStateTable.tsx:52 +msgid "Model" +msgstr "" + +#: src/tables/settings/CustomStateTable.tsx:65 +#: src/tables/settings/CustomStateTable.tsx:115 +msgid "Add State" +msgstr "" + +#: src/tables/settings/CustomStateTable.tsx:77 +msgid "Edit State" +msgstr "" + +#: src/tables/settings/CustomStateTable.tsx:85 +msgid "Delete State" +msgstr "" + +#: src/tables/settings/CustomStateTable.tsx:115 +#~ msgid "Add state" +#~ msgstr "Add state" + #: src/tables/settings/CustomUnitsTable.tsx:50 msgid "Add Custom Unit" msgstr "" @@ -7312,59 +8540,71 @@ msgstr "" msgid "Add custom unit" msgstr "" -#: src/tables/settings/ErrorTable.tsx:31 -msgid "When" -msgstr "" - -#: src/tables/settings/ErrorTable.tsx:41 -msgid "Error Information" -msgstr "" - #: src/tables/settings/ErrorTable.tsx:51 #~ msgid "Delete error report" #~ msgstr "Delete error report" -#: src/tables/settings/ErrorTable.tsx:53 +#: src/tables/settings/ErrorTable.tsx:67 +msgid "Traceback" +msgstr "" + +#: src/tables/settings/ErrorTable.tsx:103 +msgid "When" +msgstr "" + +#: src/tables/settings/ErrorTable.tsx:113 +msgid "Error Information" +msgstr "" + +#: src/tables/settings/ErrorTable.tsx:123 msgid "Delete Error Report" msgstr "Radera felrapport" -#: src/tables/settings/ErrorTable.tsx:55 +#: src/tables/settings/ErrorTable.tsx:125 msgid "Are you sure you want to delete this error report?" msgstr "" -#: src/tables/settings/ErrorTable.tsx:57 +#: src/tables/settings/ErrorTable.tsx:127 msgid "Error report deleted" msgstr "" -#: src/tables/settings/ErrorTable.tsx:79 -#: src/tables/settings/FailedTasksTable.tsx:59 +#: src/tables/settings/ErrorTable.tsx:146 +#: src/tables/settings/FailedTasksTable.tsx:65 msgid "Error Details" msgstr "" -#: src/tables/settings/FailedTasksTable.tsx:26 -#: src/tables/settings/PendingTasksTable.tsx:19 +#: src/tables/settings/FailedTasksTable.tsx:32 +#: src/tables/settings/PendingTasksTable.tsx:23 #: src/tables/settings/ScheduledTasksTable.tsx:19 msgid "Task" msgstr "" -#: src/tables/settings/FailedTasksTable.tsx:32 -#: src/tables/settings/PendingTasksTable.tsx:24 +#: src/tables/settings/FailedTasksTable.tsx:38 +#: src/tables/settings/PendingTasksTable.tsx:28 msgid "Task ID" msgstr "" -#: src/tables/settings/FailedTasksTable.tsx:36 -#: src/tables/stock/StockItemTestResultTable.tsx:211 +#: src/tables/settings/FailedTasksTable.tsx:42 +#: src/tables/stock/StockItemTestResultTable.tsx:218 msgid "Started" msgstr "" -#: src/tables/settings/FailedTasksTable.tsx:42 +#: src/tables/settings/FailedTasksTable.tsx:48 msgid "Stopped" msgstr "" -#: src/tables/settings/FailedTasksTable.tsx:48 +#: src/tables/settings/FailedTasksTable.tsx:54 msgid "Attempts" msgstr "" +#: src/tables/settings/FailedTasksTable.tsx:92 +msgid "No Information" +msgstr "" + +#: src/tables/settings/FailedTasksTable.tsx:93 +msgid "No error details are available for this task" +msgstr "" + #: src/tables/settings/GroupTable.tsx:90 msgid "Group with id {id} not found" msgstr "" @@ -7398,42 +8638,34 @@ msgstr "Lägg till grupp" msgid "Edit group" msgstr "Redigera grupp" -#: src/tables/settings/ImportSessionTable.tsx:38 +#: src/tables/settings/ImportSessionTable.tsx:37 msgid "Delete Import Session" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:44 +#: src/tables/settings/ImportSessionTable.tsx:43 #: src/tables/settings/ImportSessionTable.tsx:131 msgid "Create Import Session" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:69 +#: src/tables/settings/ImportSessionTable.tsx:68 msgid "Uploaded" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:79 -msgid "Imported Rows" -msgstr "" - -#: src/tables/settings/ImportSessionTable.tsx:109 -#: src/tables/settings/TemplateTable.tsx:289 +#: src/tables/settings/ImportSessionTable.tsx:108 +#: src/tables/settings/TemplateTable.tsx:369 msgid "Model Type" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:110 -#: src/tables/settings/TemplateTable.tsx:290 +#: src/tables/settings/ImportSessionTable.tsx:109 +#: src/tables/settings/TemplateTable.tsx:370 msgid "Filter by target model type" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:116 +#: src/tables/settings/ImportSessionTable.tsx:115 msgid "Filter by import session status" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:122 -msgid "Filter by user" -msgstr "" - -#: src/tables/settings/PendingTasksTable.tsx:38 +#: src/tables/settings/PendingTasksTable.tsx:42 msgid "Arguments" msgstr "" @@ -7461,14 +8693,18 @@ msgstr "" msgid "Next Run" msgstr "" -#: src/tables/settings/TemplateTable.tsx:85 -msgid "Template not found" +#: src/tables/settings/StocktakeReportTable.tsx:28 +msgid "Report" msgstr "" -#: src/tables/settings/TemplateTable.tsx:87 -msgid "An error occurred while fetching template details" +#: src/tables/settings/StocktakeReportTable.tsx:35 +msgid "Part Count" msgstr "" +#: src/tables/settings/StocktakeReportTable.tsx:58 +msgid "Delete Report" +msgstr "Radera rapport" + #: src/tables/settings/TemplateTable.tsx:120 #~ msgid "{templateTypeTranslation} with id {id} not found" #~ msgstr "{templateTypeTranslation} with id {id} not found" @@ -7481,23 +8717,14 @@ msgstr "" #~ msgid "actions" #~ msgstr "actions" -#: src/tables/settings/TemplateTable.tsx:177 -msgid "Modify" +#: src/tables/settings/TemplateTable.tsx:162 +msgid "Template not found" msgstr "" -#: src/tables/settings/TemplateTable.tsx:178 -msgid "Modify template file" +#: src/tables/settings/TemplateTable.tsx:164 +msgid "An error occurred while fetching template details" msgstr "" -#: src/tables/settings/TemplateTable.tsx:234 -#: src/tables/settings/TemplateTable.tsx:302 -msgid "Edit Template" -msgstr "Redigera mall" - -#: src/tables/settings/TemplateTable.tsx:242 -msgid "Delete template" -msgstr "Radera mall" - #: src/tables/settings/TemplateTable.tsx:243 #~ msgid "Add new" #~ msgstr "Add new" @@ -7506,103 +8733,137 @@ msgstr "Radera mall" #~ msgid "Create new" #~ msgstr "Create new" -#: src/tables/settings/TemplateTable.tsx:248 +#: src/tables/settings/TemplateTable.tsx:257 +msgid "Modify" +msgstr "" + +#: src/tables/settings/TemplateTable.tsx:258 +msgid "Modify template file" +msgstr "" + +#: src/tables/settings/TemplateTable.tsx:314 +#: src/tables/settings/TemplateTable.tsx:382 +msgid "Edit Template" +msgstr "Redigera mall" + +#: src/tables/settings/TemplateTable.tsx:322 +msgid "Delete template" +msgstr "Radera mall" + +#: src/tables/settings/TemplateTable.tsx:328 msgid "Add Template" msgstr "Lägg till mall" -#: src/tables/settings/TemplateTable.tsx:261 +#: src/tables/settings/TemplateTable.tsx:341 msgid "Add template" msgstr "Lägg till mall" -#: src/tables/settings/TemplateTable.tsx:284 +#: src/tables/settings/TemplateTable.tsx:364 msgid "Filter by enabled status" msgstr "" -#: src/tables/settings/UserTable.tsx:82 +#: src/tables/settings/UserTable.tsx:81 msgid "User with id {id} not found" msgstr "" -#: src/tables/settings/UserTable.tsx:84 +#: src/tables/settings/UserTable.tsx:83 msgid "An error occurred while fetching user details" msgstr "" -#: src/tables/settings/UserTable.tsx:102 +#: src/tables/settings/UserTable.tsx:101 msgid "Is Active" msgstr "" -#: src/tables/settings/UserTable.tsx:103 +#: src/tables/settings/UserTable.tsx:102 msgid "Designates whether this user should be treated as active. Unselect this instead of deleting accounts." msgstr "" -#: src/tables/settings/UserTable.tsx:107 +#: src/tables/settings/UserTable.tsx:106 msgid "Is Staff" msgstr "" -#: src/tables/settings/UserTable.tsx:108 +#: src/tables/settings/UserTable.tsx:107 msgid "Designates whether the user can log into the django admin site." msgstr "" -#: src/tables/settings/UserTable.tsx:112 +#: src/tables/settings/UserTable.tsx:111 msgid "Is Superuser" msgstr "" -#: src/tables/settings/UserTable.tsx:113 +#: src/tables/settings/UserTable.tsx:112 msgid "Designates that this user has all permissions without explicitly assigning them." msgstr "" -#: src/tables/settings/UserTable.tsx:123 +#: src/tables/settings/UserTable.tsx:122 msgid "You cannot edit the rights for the currently logged-in user." msgstr "" -#: src/tables/settings/UserTable.tsx:154 +#: src/tables/settings/UserTable.tsx:153 msgid "No groups" msgstr "Inga grupper" -#: src/tables/settings/UserTable.tsx:245 +#: src/tables/settings/UserTable.tsx:244 msgid "Delete user" msgstr "Radera användare" -#: src/tables/settings/UserTable.tsx:246 +#: src/tables/settings/UserTable.tsx:245 msgid "User deleted" msgstr "" -#: src/tables/settings/UserTable.tsx:248 +#: src/tables/settings/UserTable.tsx:247 msgid "Are you sure you want to delete this user?" msgstr "Är du säker på att du vill radera denna användare?" -#: src/tables/settings/UserTable.tsx:254 -#: src/tables/settings/UserTable.tsx:272 +#: src/tables/settings/UserTable.tsx:253 +#: src/tables/settings/UserTable.tsx:271 msgid "Add user" msgstr "Lägg till användare" -#: src/tables/settings/UserTable.tsx:262 +#: src/tables/settings/UserTable.tsx:261 msgid "Added user" msgstr "" -#: src/tables/settings/UserTable.tsx:285 +#: src/tables/settings/UserTable.tsx:284 msgid "Show active users" -msgstr "" +msgstr "Visa aktiva användare" -#: src/tables/settings/UserTable.tsx:289 +#: src/tables/settings/UserTable.tsx:288 msgid "Staff" msgstr "" -#: src/tables/settings/UserTable.tsx:290 +#: src/tables/settings/UserTable.tsx:289 msgid "Show staff users" msgstr "" #: src/tables/settings/UserTable.tsx:294 -msgid "Superuser" -msgstr "" - -#: src/tables/settings/UserTable.tsx:295 msgid "Show superusers" msgstr "" -#: src/tables/settings/UserTable.tsx:305 +#: src/tables/settings/UserTable.tsx:304 msgid "Edit user" msgstr "Redigera användare" +#: src/tables/stock/InstalledItemsTable.tsx:37 +#: src/tables/stock/InstalledItemsTable.tsx:90 +msgid "Install Item" +msgstr "" + +#: src/tables/stock/InstalledItemsTable.tsx:39 +msgid "Item installed" +msgstr "" + +#: src/tables/stock/InstalledItemsTable.tsx:50 +msgid "Uninstall Item" +msgstr "" + +#: src/tables/stock/InstalledItemsTable.tsx:52 +msgid "Item uninstalled" +msgstr "" + +#: src/tables/stock/InstalledItemsTable.tsx:108 +msgid "Uninstall stock item" +msgstr "" + #: src/tables/stock/LocationTypesTable.tsx:39 #: src/tables/stock/LocationTypesTable.tsx:109 msgid "Add Location Type" @@ -7620,276 +8881,272 @@ msgstr "" msgid "Icon" msgstr "Ikon" -#: src/tables/stock/StockItemTable.tsx:101 +#: src/tables/stock/StockItemTable.tsx:90 msgid "This stock item is in production" msgstr "" -#: src/tables/stock/StockItemTable.tsx:110 +#: src/tables/stock/StockItemTable.tsx:97 msgid "This stock item has been assigned to a sales order" msgstr "" -#: src/tables/stock/StockItemTable.tsx:119 +#: src/tables/stock/StockItemTable.tsx:104 msgid "This stock item has been assigned to a customer" msgstr "" -#: src/tables/stock/StockItemTable.tsx:128 +#: src/tables/stock/StockItemTable.tsx:111 msgid "This stock item is installed in another stock item" msgstr "" -#: src/tables/stock/StockItemTable.tsx:137 +#: src/tables/stock/StockItemTable.tsx:118 msgid "This stock item has been consumed by a build order" msgstr "" -#: src/tables/stock/StockItemTable.tsx:146 +#: src/tables/stock/StockItemTable.tsx:125 +msgid "This stock item is unavailable" +msgstr "" + +#: src/tables/stock/StockItemTable.tsx:134 msgid "This stock item has expired" msgstr "" -#: src/tables/stock/StockItemTable.tsx:150 +#: src/tables/stock/StockItemTable.tsx:138 msgid "This stock item is stale" msgstr "" -#: src/tables/stock/StockItemTable.tsx:161 +#: src/tables/stock/StockItemTable.tsx:150 msgid "This stock item is fully allocated" msgstr "" -#: src/tables/stock/StockItemTable.tsx:168 +#: src/tables/stock/StockItemTable.tsx:157 msgid "This stock item is partially allocated" msgstr "" -#: src/tables/stock/StockItemTable.tsx:196 +#: src/tables/stock/StockItemTable.tsx:185 msgid "This stock item has been depleted" msgstr "" -#: src/tables/stock/StockItemTable.tsx:232 +#: src/tables/stock/StockItemTable.tsx:280 msgid "Stocktake Date" msgstr "" -#: src/tables/stock/StockItemTable.tsx:236 -msgid "Expiry Date" -msgstr "" - -#: src/tables/stock/StockItemTable.tsx:260 -msgid "Stock Value" -msgstr "" - -#: src/tables/stock/StockItemTable.tsx:290 +#: src/tables/stock/StockItemTable.tsx:294 msgid "Show stock for active parts" msgstr "" -#: src/tables/stock/StockItemTable.tsx:295 +#: src/tables/stock/StockItemTable.tsx:299 msgid "Filter by stock status" msgstr "" #: src/tables/stock/StockItemTable.tsx:301 -msgid "Show stock for assmebled parts" +#~ msgid "Show stock for assmebled parts" +#~ msgstr "Show stock for assmebled parts" + +#: src/tables/stock/StockItemTable.tsx:305 +msgid "Show stock for assembled parts" msgstr "" -#: src/tables/stock/StockItemTable.tsx:306 +#: src/tables/stock/StockItemTable.tsx:310 msgid "Show items which have been allocated" msgstr "" -#: src/tables/stock/StockItemTable.tsx:311 +#: src/tables/stock/StockItemTable.tsx:315 msgid "Show items which are available" msgstr "" -#: src/tables/stock/StockItemTable.tsx:315 +#: src/tables/stock/StockItemTable.tsx:319 #: src/tables/stock/StockLocationTable.tsx:44 msgid "Include Sublocations" msgstr "" -#: src/tables/stock/StockItemTable.tsx:316 +#: src/tables/stock/StockItemTable.tsx:320 msgid "Include stock in sublocations" msgstr "" -#: src/tables/stock/StockItemTable.tsx:320 +#: src/tables/stock/StockItemTable.tsx:324 msgid "Depleted" msgstr "" -#: src/tables/stock/StockItemTable.tsx:321 +#: src/tables/stock/StockItemTable.tsx:325 msgid "Show depleted stock items" msgstr "" -#: src/tables/stock/StockItemTable.tsx:326 +#: src/tables/stock/StockItemTable.tsx:330 msgid "Show items which are in stock" msgstr "" -#: src/tables/stock/StockItemTable.tsx:331 +#: src/tables/stock/StockItemTable.tsx:335 msgid "Show items which are in production" msgstr "" -#: src/tables/stock/StockItemTable.tsx:336 +#: src/tables/stock/StockItemTable.tsx:340 msgid "Include stock items for variant parts" msgstr "" -#: src/tables/stock/StockItemTable.tsx:341 +#: src/tables/stock/StockItemTable.tsx:345 msgid "Show stock items which are installed in other items" msgstr "" -#: src/tables/stock/StockItemTable.tsx:345 +#: src/tables/stock/StockItemTable.tsx:349 msgid "Sent to Customer" msgstr "" -#: src/tables/stock/StockItemTable.tsx:346 +#: src/tables/stock/StockItemTable.tsx:350 msgid "Show items which have been sent to a customer" msgstr "" -#: src/tables/stock/StockItemTable.tsx:350 +#: src/tables/stock/StockItemTable.tsx:354 msgid "Is Serialized" msgstr "" -#: src/tables/stock/StockItemTable.tsx:351 +#: src/tables/stock/StockItemTable.tsx:355 msgid "Show items which have a serial number" msgstr "" -#: src/tables/stock/StockItemTable.tsx:358 +#: src/tables/stock/StockItemTable.tsx:362 msgid "Has Batch Code" msgstr "" -#: src/tables/stock/StockItemTable.tsx:359 +#: src/tables/stock/StockItemTable.tsx:363 msgid "Show items which have a batch code" msgstr "" -#: src/tables/stock/StockItemTable.tsx:365 +#: src/tables/stock/StockItemTable.tsx:369 msgid "Show tracked items" msgstr "" -#: src/tables/stock/StockItemTable.tsx:369 +#: src/tables/stock/StockItemTable.tsx:373 msgid "Has Purchase Price" msgstr "" -#: src/tables/stock/StockItemTable.tsx:370 +#: src/tables/stock/StockItemTable.tsx:374 msgid "Show items which have a purchase price" msgstr "" -#: src/tables/stock/StockItemTable.tsx:378 +#: src/tables/stock/StockItemTable.tsx:382 msgid "External Location" msgstr "" -#: src/tables/stock/StockItemTable.tsx:379 +#: src/tables/stock/StockItemTable.tsx:383 msgid "Show items in an external location" msgstr "" -#: src/tables/stock/StockItemTable.tsx:451 +#: src/tables/stock/StockItemTable.tsx:456 msgid "Add a new stock item" msgstr "" -#: src/tables/stock/StockItemTable.tsx:460 +#: src/tables/stock/StockItemTable.tsx:465 msgid "Remove some quantity from a stock item" msgstr "" -#: src/tables/stock/StockItemTable.tsx:482 +#: src/tables/stock/StockItemTable.tsx:487 msgid "Move Stock items to new locations" msgstr "" -#: src/tables/stock/StockItemTable.tsx:489 +#: src/tables/stock/StockItemTable.tsx:494 msgid "Change stock status" msgstr "" -#: src/tables/stock/StockItemTable.tsx:491 +#: src/tables/stock/StockItemTable.tsx:496 msgid "Change the status of stock items" msgstr "" -#: src/tables/stock/StockItemTable.tsx:498 +#: src/tables/stock/StockItemTable.tsx:503 msgid "Merge stock" msgstr "" -#: src/tables/stock/StockItemTable.tsx:500 +#: src/tables/stock/StockItemTable.tsx:505 msgid "Merge stock items" msgstr "" -#: src/tables/stock/StockItemTable.tsx:509 -#: src/tables/stock/StockItemTable.tsx:516 +#: src/tables/stock/StockItemTable.tsx:514 +#: src/tables/stock/StockItemTable.tsx:521 msgid "Order new stock" msgstr "" -#: src/tables/stock/StockItemTable.tsx:514 +#: src/tables/stock/StockItemTable.tsx:519 msgid "Assign to customer" msgstr "" -#: src/tables/stock/StockItemTable.tsx:523 +#: src/tables/stock/StockItemTable.tsx:528 msgid "Delete stock" msgstr "" -#: src/tables/stock/StockItemTable.tsx:525 -msgid "Delete stock items" -msgstr "" +#: src/tables/stock/StockItemTable.tsx:528 +#~ msgid "Delete stock items" +#~ msgstr "Delete stock items" -#: src/tables/stock/StockItemTestResultTable.tsx:131 +#: src/tables/stock/StockItemTestResultTable.tsx:137 msgid "Test" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:157 +#: src/tables/stock/StockItemTestResultTable.tsx:163 msgid "Test result for installed stock item" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:168 -msgid "Result" -msgstr "" - -#: src/tables/stock/StockItemTestResultTable.tsx:190 +#: src/tables/stock/StockItemTestResultTable.tsx:196 msgid "Attachment" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:206 +#: src/tables/stock/StockItemTestResultTable.tsx:212 msgid "Test station" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:226 +#: src/tables/stock/StockItemTestResultTable.tsx:234 msgid "Finished" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:268 -#: src/tables/stock/StockItemTestResultTable.tsx:339 +#: src/tables/stock/StockItemTestResultTable.tsx:286 +#: src/tables/stock/StockItemTestResultTable.tsx:357 msgid "Edit Test Result" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:270 +#: src/tables/stock/StockItemTestResultTable.tsx:288 msgid "Test result updated" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:276 -#: src/tables/stock/StockItemTestResultTable.tsx:348 +#: src/tables/stock/StockItemTestResultTable.tsx:294 +#: src/tables/stock/StockItemTestResultTable.tsx:366 msgid "Delete Test Result" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:278 +#: src/tables/stock/StockItemTestResultTable.tsx:296 msgid "Test result deleted" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:292 +#: src/tables/stock/StockItemTestResultTable.tsx:310 msgid "Test Passed" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:293 +#: src/tables/stock/StockItemTestResultTable.tsx:311 msgid "Test result has been recorded" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:300 +#: src/tables/stock/StockItemTestResultTable.tsx:318 msgid "Failed to record test result" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:317 +#: src/tables/stock/StockItemTestResultTable.tsx:335 msgid "Pass Test" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:366 +#: src/tables/stock/StockItemTestResultTable.tsx:384 msgid "Show results for required tests" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:370 +#: src/tables/stock/StockItemTestResultTable.tsx:388 msgid "Include Installed" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:371 +#: src/tables/stock/StockItemTestResultTable.tsx:389 msgid "Show results for installed stock items" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:375 -#: src/tables/stock/TestStatisticsTable.tsx:74 +#: src/tables/stock/StockItemTestResultTable.tsx:393 +#: src/tables/stock/TestStatisticsTable.tsx:62 msgid "Passed" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:376 +#: src/tables/stock/StockItemTestResultTable.tsx:394 msgid "Show only passed tests" msgstr "" @@ -7922,28 +9179,32 @@ msgid "Filter by location type" msgstr "" #: src/tables/stock/StockLocationTable.tsx:107 -#: src/tables/stock/StockLocationTable.tsx:133 +#: src/tables/stock/StockLocationTable.tsx:134 msgid "Add Stock Location" msgstr "" -#: src/tables/stock/StockTrackingTable.tsx:64 +#: src/tables/stock/StockTrackingTable.tsx:68 msgid "Added" msgstr "" -#: src/tables/stock/StockTrackingTable.tsx:69 +#: src/tables/stock/StockTrackingTable.tsx:73 msgid "Removed" msgstr "" #: src/tables/stock/StockTrackingTable.tsx:198 +msgid "Details" +msgstr "Detaljer" + +#: src/tables/stock/StockTrackingTable.tsx:213 msgid "No user information" msgstr "" -#: src/tables/stock/TestStatisticsTable.tsx:46 -#: src/tables/stock/TestStatisticsTable.tsx:76 +#: src/tables/stock/TestStatisticsTable.tsx:34 +#: src/tables/stock/TestStatisticsTable.tsx:64 msgid "Total" msgstr "" -#: src/tables/stock/TestStatisticsTable.tsx:75 +#: src/tables/stock/TestStatisticsTable.tsx:63 msgid "Failed" msgstr "" diff --git a/src/frontend/src/locales/th/messages.po b/src/frontend/src/locales/th/messages.po index 414ff9ade8..5fde5795f6 100644 --- a/src/frontend/src/locales/th/messages.po +++ b/src/frontend/src/locales/th/messages.po @@ -8,15 +8,15 @@ msgstr "" "Language: th\n" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"PO-Revision-Date: 2024-08-20 19:51\n" +"PO-Revision-Date: 2024-11-04 03:14\n" "Last-Translator: \n" "Language-Team: Thai\n" "Plural-Forms: nplurals=1; plural=0;\n" "X-Crowdin-Project: inventree\n" "X-Crowdin-Project-ID: 452300\n" "X-Crowdin-Language: th\n" -"X-Crowdin-File: /[inventree.InvenTree] l10/src/frontend/src/locales/en/messages.po\n" -"X-Crowdin-File-ID: 205\n" +"X-Crowdin-File: /src/frontend/src/locales/en/messages.po\n" +"X-Crowdin-File-ID: 252\n" #: src/components/Boundary.tsx:12 msgid "Error rendering component" @@ -27,8 +27,8 @@ msgid "An error occurred while rendering this component. Refer to the console fo msgstr "" #: src/components/DashboardItemProxy.tsx:34 -msgid "Title" -msgstr "" +#~ msgid "Title" +#~ msgstr "Title" #: src/components/buttons/AdminButton.tsx:80 msgid "Open in admin interface" @@ -38,82 +38,99 @@ msgstr "" #~ msgid "Copy to clipboard" #~ msgstr "Copy to clipboard" -#: src/components/buttons/CopyButton.tsx:24 +#: src/components/buttons/CopyButton.tsx:29 msgid "Copied" msgstr "" -#: src/components/buttons/CopyButton.tsx:24 +#: src/components/buttons/CopyButton.tsx:29 msgid "Copy" msgstr "" -#: src/components/buttons/PrintingActions.tsx:93 +#: src/components/buttons/PrintingActions.tsx:97 msgid "Print Label" msgstr "" -#: src/components/buttons/PrintingActions.tsx:99 +#: src/components/buttons/PrintingActions.tsx:103 msgid "Print" msgstr "" -#: src/components/buttons/PrintingActions.tsx:100 +#: src/components/buttons/PrintingActions.tsx:104 msgid "Label printing completed successfully" msgstr "" -#: src/components/buttons/PrintingActions.tsx:106 -#: src/components/buttons/PrintingActions.tsx:144 -#: src/components/editors/NotesEditor.tsx:65 -#: src/components/editors/NotesEditor.tsx:165 -#: src/components/forms/fields/ApiFormField.tsx:319 +#: src/components/buttons/PrintingActions.tsx:110 +#: src/components/buttons/PrintingActions.tsx:148 +#: src/components/editors/NotesEditor.tsx:73 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:154 +#: src/components/forms/fields/ApiFormField.tsx:328 +#: src/components/forms/fields/TableField.tsx:43 #: src/components/importer/ImportDataSelector.tsx:187 -#: src/components/importer/ImporterColumnSelector.tsx:207 +#: src/components/importer/ImporterColumnSelector.tsx:210 #: src/components/modals/LicenseModal.tsx:75 -#: src/components/nav/SearchDrawer.tsx:448 +#: src/components/nav/SearchDrawer.tsx:458 +#: src/components/render/ModelType.tsx:290 #: src/pages/ErrorPage.tsx:11 -#: src/pages/part/PartPricingPanel.tsx:67 -#: src/tables/InvenTreeTable.tsx:495 +#: src/pages/part/PartPricingPanel.tsx:71 +#: src/tables/InvenTreeTable.tsx:481 #: src/tables/bom/BomTable.tsx:450 -#: src/tables/stock/StockItemTestResultTable.tsx:299 +#: src/tables/stock/StockItemTestResultTable.tsx:317 msgid "Error" msgstr "" -#: src/components/buttons/PrintingActions.tsx:107 +#: src/components/buttons/PrintingActions.tsx:111 msgid "The label could not be generated" msgstr "" -#: src/components/buttons/PrintingActions.tsx:122 +#: src/components/buttons/PrintingActions.tsx:126 msgid "Print Report" msgstr "" -#: src/components/buttons/PrintingActions.tsx:138 +#: src/components/buttons/PrintingActions.tsx:142 msgid "Generate" msgstr "" -#: src/components/buttons/PrintingActions.tsx:139 +#: src/components/buttons/PrintingActions.tsx:143 msgid "Report printing completed successfully" msgstr "" -#: src/components/buttons/PrintingActions.tsx:145 +#: src/components/buttons/PrintingActions.tsx:149 msgid "The report could not be generated" msgstr "" -#: src/components/buttons/PrintingActions.tsx:173 +#: src/components/buttons/PrintingActions.tsx:177 msgid "Printing Actions" msgstr "" -#: src/components/buttons/PrintingActions.tsx:178 +#: src/components/buttons/PrintingActions.tsx:182 msgid "Print Labels" msgstr "" -#: src/components/buttons/PrintingActions.tsx:184 +#: src/components/buttons/PrintingActions.tsx:188 msgid "Print Reports" msgstr "" +#: src/components/buttons/RemoveRowButton.tsx:8 +msgid "Remove this row" +msgstr "" + #: src/components/buttons/ScanButton.tsx:15 -msgid "Scan QR code" +#: src/components/nav/NavigationDrawer.tsx:117 +#: src/forms/PurchaseOrderForms.tsx:379 +#: src/forms/PurchaseOrderForms.tsx:473 +msgid "Scan Barcode" +msgstr "" + +#: src/components/buttons/ScanButton.tsx:15 +#~ msgid "Scan QR code" +#~ msgstr "Scan QR code" + +#: src/components/buttons/ScanButton.tsx:20 +msgid "Open Barcode Scanner" msgstr "" #: src/components/buttons/ScanButton.tsx:20 -msgid "Open QR code scanner" -msgstr "" +#~ msgid "Open QR code scanner" +#~ msgstr "Open QR code scanner" #: src/components/buttons/SpotlightButton.tsx:14 msgid "Open spotlight" @@ -128,85 +145,347 @@ msgid "Fail" msgstr "" #: src/components/buttons/YesNoButton.tsx:33 -#: src/tables/Filter.tsx:52 +#: src/tables/Filter.tsx:61 msgid "Yes" msgstr "" #: src/components/buttons/YesNoButton.tsx:33 -#: src/tables/Filter.tsx:53 +#: src/tables/Filter.tsx:62 msgid "No" msgstr "" -#: src/components/details/Details.tsx:301 +#: src/components/dashboard/DashboardLayout.tsx:286 +msgid "No Widgets Selected" +msgstr "" + +#: src/components/dashboard/DashboardLayout.tsx:289 +msgid "Use the menu to add widgets to the dashboard" +msgstr "" + +#: src/components/dashboard/DashboardMenu.tsx:59 +#: src/components/dashboard/DashboardMenu.tsx:126 +msgid "Accept Layout" +msgstr "" + +#: src/components/dashboard/DashboardMenu.tsx:91 +#: src/components/nav/NavigationDrawer.tsx:71 +#: src/defaults/actions.tsx:17 +#: src/defaults/links.tsx:9 +#: src/pages/Index/Settings/UserSettings.tsx:47 +msgid "Dashboard" +msgstr "" + +#: src/components/dashboard/DashboardMenu.tsx:99 +msgid "Edit Layout" +msgstr "" + +#: src/components/dashboard/DashboardMenu.tsx:108 +msgid "Add Widget" +msgstr "" + +#: src/components/dashboard/DashboardMenu.tsx:117 +msgid "Remove Widgets" +msgstr "" + +#: src/components/dashboard/DashboardWidget.tsx:65 +msgid "Remove this widget from the dashboard" +msgstr "" + +#: src/components/dashboard/DashboardWidgetDrawer.tsx:77 +msgid "Filter dashboard widgets" +msgstr "" + +#: src/components/dashboard/DashboardWidgetDrawer.tsx:98 +msgid "Add this widget to the dashboard" +msgstr "" + +#: src/components/dashboard/DashboardWidgetDrawer.tsx:123 +msgid "No Widgets Available" +msgstr "" + +#: src/components/dashboard/DashboardWidgetDrawer.tsx:124 +msgid "There are no more widgets available for the dashboard" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:19 +msgid "Subscribed Parts" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:20 +msgid "Show the number of parts which you have subscribed to" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:26 +msgid "Subscribed Categories" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:27 +msgid "Show the number of part categories which you have subscribed to" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:35 +#: src/pages/part/PartSchedulingDetail.tsx:304 +#: src/tables/part/PartTable.tsx:238 +msgid "Low Stock" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:37 +msgid "Show the number of parts which are low on stock" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:43 +msgid "Expired Stock Items" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:45 +msgid "Show the number of stock items which have expired" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:51 +msgid "Stale Stock Items" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:53 +msgid "Show the number of stock items which are stale" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:59 +msgid "Active Build Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:61 +msgid "Show the number of build orders which are currently active" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:66 +msgid "Overdue Build Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:68 +msgid "Show the number of build orders which are overdue" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:73 +msgid "Assigned Build Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:75 +msgid "Show the number of build orders which are assigned to you" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:80 +msgid "Active Sales Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:82 +msgid "Show the number of sales orders which are currently active" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:87 +msgid "Overdue Sales Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:89 +msgid "Show the number of sales orders which are overdue" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:94 +msgid "Assigned Sales Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:96 +msgid "Show the number of sales orders which are assigned to you" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:101 +msgid "Active Purchase Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:103 +msgid "Show the number of purchase orders which are currently active" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:108 +msgid "Overdue Purchase Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:110 +msgid "Show the number of purchase orders which are overdue" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:115 +msgid "Assigned Purchase Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:117 +msgid "Show the number of purchase orders which are assigned to you" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:122 +msgid "Active Return Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:124 +msgid "Show the number of return orders which are currently active" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:129 +msgid "Overdue Return Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:131 +msgid "Show the number of return orders which are overdue" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:136 +msgid "Assigned Return Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:138 +msgid "Show the number of return orders which are assigned to you" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:149 +#: src/components/dashboard/widgets/GetStartedWidget.tsx:15 +#: src/defaults/links.tsx:38 +msgid "Getting Started" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:150 +#: src/defaults/links.tsx:41 +msgid "Getting started with InvenTree" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:157 +#: src/components/dashboard/widgets/NewsWidget.tsx:123 +msgid "News Updates" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:158 +msgid "The latest news from InvenTree" +msgstr "" + +#: src/components/dashboard/widgets/ColorToggleWidget.tsx:18 +#: src/components/nav/MainMenu.tsx:77 +msgid "Change Color Mode" +msgstr "" + +#: src/components/dashboard/widgets/ColorToggleWidget.tsx:23 +msgid "Change the color mode of the user interface" +msgstr "" + +#: src/components/dashboard/widgets/LanguageSelectWidget.tsx:18 +msgid "Change Language" +msgstr "" + +#: src/components/dashboard/widgets/LanguageSelectWidget.tsx:23 +msgid "Change the language of the user interface" +msgstr "" + +#: src/components/dashboard/widgets/NewsWidget.tsx:61 +#: src/components/nav/NotificationDrawer.tsx:88 +#: src/pages/Notifications.tsx:73 +msgid "Mark as read" +msgstr "" + +#: src/components/dashboard/widgets/NewsWidget.tsx:115 +msgid "Requires Superuser" +msgstr "" + +#: src/components/dashboard/widgets/NewsWidget.tsx:116 +msgid "This widget requires superuser permissions" +msgstr "" + +#: src/components/dashboard/widgets/NewsWidget.tsx:133 +msgid "No News" +msgstr "" + +#: src/components/dashboard/widgets/NewsWidget.tsx:134 +msgid "There are no unread news items" +msgstr "" + +#: src/components/details/Details.tsx:300 msgid "No name defined" msgstr "" -#: src/components/details/DetailsImage.tsx:65 +#: src/components/details/DetailsImage.tsx:69 msgid "Remove Image" msgstr "" -#: src/components/details/DetailsImage.tsx:68 +#: src/components/details/DetailsImage.tsx:72 msgid "Remove the associated image from this item?" msgstr "" -#: src/components/details/DetailsImage.tsx:71 -#: src/forms/StockForms.tsx:533 +#: src/components/details/DetailsImage.tsx:75 +#: src/forms/StockForms.tsx:651 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:199 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:306 -#: src/pages/stock/StockDetail.tsx:526 +#: src/pages/stock/StockDetail.tsx:690 msgid "Remove" msgstr "" -#: src/components/details/DetailsImage.tsx:71 -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:158 -#: src/components/items/ActionDropdown.tsx:215 -#: src/components/items/ActionDropdown.tsx:216 -#: src/contexts/ThemeContext.tsx:43 +#: src/components/details/DetailsImage.tsx:75 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:184 +#: src/components/items/ActionDropdown.tsx:268 +#: src/components/items/ActionDropdown.tsx:269 +#: src/contexts/ThemeContext.tsx:45 #: src/hooks/UseForm.tsx:40 -#: src/tables/FilterSelectDrawer.tsx:205 -#: src/tables/build/BuildOutputTable.tsx:286 +#: src/tables/FilterSelectDrawer.tsx:241 +#: src/tables/RowActions.tsx:59 +#: src/tables/build/BuildOutputTable.tsx:434 msgid "Cancel" msgstr "" -#: src/components/details/DetailsImage.tsx:97 +#: src/components/details/DetailsImage.tsx:101 msgid "Drag and drop to upload" msgstr "" -#: src/components/details/DetailsImage.tsx:100 +#: src/components/details/DetailsImage.tsx:104 msgid "Click to select file(s)" msgstr "" -#: src/components/details/DetailsImage.tsx:226 +#: src/components/details/DetailsImage.tsx:230 msgid "Clear" msgstr "" -#: src/components/details/DetailsImage.tsx:232 -#: src/components/forms/ApiForm.tsx:627 -#: src/contexts/ThemeContext.tsx:43 -#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:60 +#: src/components/details/DetailsImage.tsx:236 +#: src/components/forms/ApiForm.tsx:660 +#: src/contexts/ThemeContext.tsx:45 msgid "Submit" msgstr "" -#: src/components/details/DetailsImage.tsx:272 +#: src/components/details/DetailsImage.tsx:280 msgid "Select from existing images" msgstr "" -#: src/components/details/DetailsImage.tsx:280 +#: src/components/details/DetailsImage.tsx:288 msgid "Select Image" msgstr "" -#: src/components/details/DetailsImage.tsx:292 +#: src/components/details/DetailsImage.tsx:304 +msgid "Download remote image" +msgstr "" + +#: src/components/details/DetailsImage.tsx:319 msgid "Upload new image" msgstr "" -#: src/components/details/DetailsImage.tsx:299 +#: src/components/details/DetailsImage.tsx:326 msgid "Upload Image" msgstr "" -#: src/components/details/DetailsImage.tsx:312 +#: src/components/details/DetailsImage.tsx:339 msgid "Delete image" msgstr "" +#: src/components/details/DetailsImage.tsx:373 +msgid "Download Image" +msgstr "" + +#: src/components/details/DetailsImage.tsx:378 +msgid "Image downloaded successfully" +msgstr "" + #: src/components/details/PartIcons.tsx:43 #~ msgid "Part is a template part (variants can be made from this part)" #~ msgstr "Part is a template part (variants can be made from this part)" @@ -235,36 +514,57 @@ msgstr "" #~ msgid "Part is virtual (not a physical part)" #~ msgstr "Part is virtual (not a physical part)" -#: src/components/editors/NotesEditor.tsx:66 +#: src/components/editors/NotesEditor.tsx:74 msgid "Image upload failed" msgstr "" -#: src/components/editors/NotesEditor.tsx:156 -#: src/components/forms/ApiForm.tsx:467 +#: src/components/editors/NotesEditor.tsx:83 +#: src/components/editors/NotesEditor.tsx:119 +#: src/components/forms/ApiForm.tsx:475 #: src/tables/bom/BomTable.tsx:441 msgid "Success" msgstr "" -#: src/components/editors/NotesEditor.tsx:157 +#: src/components/editors/NotesEditor.tsx:84 +msgid "Image uploaded successfully" +msgstr "" + +#: src/components/editors/NotesEditor.tsx:120 msgid "Notes saved successfully" msgstr "" -#: src/components/editors/NotesEditor.tsx:166 +#: src/components/editors/NotesEditor.tsx:131 msgid "Failed to save notes" msgstr "" -#: src/components/editors/NotesEditor.tsx:198 -msgid "Preview Notes" +#: src/components/editors/NotesEditor.tsx:134 +msgid "Error Saving Notes" msgstr "" -#: src/components/editors/NotesEditor.tsx:198 -msgid "Edit Notes" -msgstr "" +#: src/components/editors/NotesEditor.tsx:151 +#~ msgid "Disable Editing" +#~ msgstr "Disable Editing" -#: src/components/editors/NotesEditor.tsx:212 +#: src/components/editors/NotesEditor.tsx:154 msgid "Save Notes" msgstr "" +#: src/components/editors/NotesEditor.tsx:173 +msgid "Close Editor" +msgstr "" + +#: src/components/editors/NotesEditor.tsx:180 +msgid "Enable Editing" +msgstr "" + +#: src/components/editors/NotesEditor.tsx:198 +#~ msgid "Preview Notes" +#~ msgstr "Preview Notes" + +#: src/components/editors/NotesEditor.tsx:198 +#~ msgid "Edit Notes" +#~ msgstr "Edit Notes" + #: src/components/editors/TemplateEditor/CodeEditor/index.tsx:9 msgid "Code" msgstr "" @@ -281,40 +581,44 @@ msgstr "" msgid "PDF Preview" msgstr "" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:104 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:115 msgid "Error loading template" msgstr "" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:116 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:127 msgid "Error saving template" msgstr "" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:146 -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:274 -msgid "Save & Reload Preview" -msgstr "" - -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:151 -msgid "Are you sure you want to Save & Reload the preview?" -msgstr "" - #: src/components/editors/TemplateEditor/TemplateEditor.tsx:151 #~ msgid "Save & Reload preview?" #~ msgstr "Save & Reload preview?" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:153 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:155 +msgid "Could not load the template from the server." +msgstr "" + +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:172 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:303 +msgid "Save & Reload Preview" +msgstr "" + +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:177 +msgid "Are you sure you want to Save & Reload the preview?" +msgstr "" + +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:179 msgid "To render the preview the current template needs to be replaced on the server with your modifications which may break the label if it is under active use. Do you want to proceed?" msgstr "" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:157 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:183 msgid "Save & Reload" msgstr "" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:189 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:215 msgid "Preview updated" msgstr "" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:190 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:216 msgid "The preview has been updated successfully." msgstr "" @@ -322,15 +626,15 @@ msgstr "" #~ msgid "Save & Reload preview" #~ msgstr "Save & Reload preview" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:266 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:295 msgid "Reload preview" msgstr "" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:267 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:296 msgid "Use the currently stored template from the server" msgstr "" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:275 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:304 msgid "Save the current template and reload the preview" msgstr "" @@ -338,11 +642,11 @@ msgstr "" #~ msgid "to preview" #~ msgstr "to preview" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:333 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:365 msgid "Select instance to preview" msgstr "" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:377 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:409 msgid "Error rendering template" msgstr "" @@ -379,6 +683,7 @@ msgid "This page does not exist" msgstr "" #: src/components/errors/PermissionDenied.tsx:8 +#: src/functions/notifications.tsx:24 msgid "Permission Denied" msgstr "" @@ -394,8 +699,8 @@ msgstr "" msgid "A server error occurred" msgstr "" -#: src/components/forms/ApiForm.tsx:151 -#: src/components/forms/ApiForm.tsx:555 +#: src/components/forms/ApiForm.tsx:154 +#: src/components/forms/ApiForm.tsx:579 msgid "Form Error" msgstr "" @@ -403,22 +708,22 @@ msgstr "" #~ msgid "Form Errors Exist" #~ msgstr "Form Errors Exist" -#: src/components/forms/ApiForm.tsx:563 +#: src/components/forms/ApiForm.tsx:587 msgid "Errors exist for one or more form fields" msgstr "" -#: src/components/forms/ApiForm.tsx:665 -#: src/tables/plugin/PluginListTable.tsx:388 +#: src/components/forms/ApiForm.tsx:698 +#: src/tables/plugin/PluginListTable.tsx:195 msgid "Update" msgstr "" -#: src/components/forms/ApiForm.tsx:685 -#: src/components/items/ActionDropdown.tsx:195 +#: src/components/forms/ApiForm.tsx:718 +#: src/components/items/ActionDropdown.tsx:248 #: src/hooks/UseForm.tsx:122 -#: src/pages/Index/Scan.tsx:343 +#: src/pages/Index/Scan.tsx:357 #: src/pages/Notifications.tsx:123 -#: src/tables/RowActions.tsx:43 -#: src/tables/plugin/PluginListTable.tsx:420 +#: src/tables/RowActions.tsx:49 +#: src/tables/plugin/PluginListTable.tsx:232 msgid "Delete" msgstr "" @@ -428,14 +733,6 @@ msgstr "" #~ msgid "Check your your input and try again." #~ msgstr "Check your your input and try again." -#: src/components/forms/AuthenticationForm.tsx:51 -msgid "Login successful" -msgstr "" - -#: src/components/forms/AuthenticationForm.tsx:52 -msgid "Logged in successfully" -msgstr "" - #: src/components/forms/AuthenticationForm.tsx:52 #~ msgid "Welcome back!" #~ msgstr "Welcome back!" @@ -444,14 +741,22 @@ msgstr "" #~ msgid "Login successfull" #~ msgstr "Login successfull" -#: src/components/forms/AuthenticationForm.tsx:58 +#: src/components/forms/AuthenticationForm.tsx:55 +msgid "Login successful" +msgstr "" + +#: src/components/forms/AuthenticationForm.tsx:56 +msgid "Logged in successfully" +msgstr "" + +#: src/components/forms/AuthenticationForm.tsx:61 msgid "Login failed" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:59 -#: src/components/forms/AuthenticationForm.tsx:76 -#: src/components/forms/AuthenticationForm.tsx:211 -#: src/functions/auth.tsx:164 +#: src/components/forms/AuthenticationForm.tsx:62 +#: src/components/forms/AuthenticationForm.tsx:79 +#: src/components/forms/AuthenticationForm.tsx:214 +#: src/functions/auth.tsx:175 msgid "Check your input and try again." msgstr "" @@ -460,45 +765,46 @@ msgstr "" #~ msgid "Mail delivery successfull" #~ msgstr "Mail delivery successfull" -#: src/components/forms/AuthenticationForm.tsx:70 -#: src/functions/auth.tsx:155 +#: src/components/forms/AuthenticationForm.tsx:73 +#: src/functions/auth.tsx:166 msgid "Mail delivery successful" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:71 +#: src/components/forms/AuthenticationForm.tsx:74 msgid "Check your inbox for the login link. If you have an account, you will receive a login link. Check in spam too." msgstr "" -#: src/components/forms/AuthenticationForm.tsx:75 +#: src/components/forms/AuthenticationForm.tsx:78 msgid "Mail delivery failed" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:95 +#: src/components/forms/AuthenticationForm.tsx:98 msgid "Or continue with other methods" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:106 -#: src/components/forms/AuthenticationForm.tsx:227 +#: src/components/forms/AuthenticationForm.tsx:109 +#: src/components/forms/AuthenticationForm.tsx:230 +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:67 msgid "Username" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:107 -#: src/components/forms/AuthenticationForm.tsx:228 +#: src/components/forms/AuthenticationForm.tsx:110 +#: src/components/forms/AuthenticationForm.tsx:231 msgid "Your username" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:112 -#: src/components/forms/AuthenticationForm.tsx:240 -#: src/pages/Auth/Set-Password.tsx:106 +#: src/components/forms/AuthenticationForm.tsx:115 +#: src/components/forms/AuthenticationForm.tsx:243 +#: src/pages/Auth/Set-Password.tsx:101 msgid "Password" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:113 -#: src/components/forms/AuthenticationForm.tsx:241 +#: src/components/forms/AuthenticationForm.tsx:116 +#: src/components/forms/AuthenticationForm.tsx:244 msgid "Your password" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:125 +#: src/components/forms/AuthenticationForm.tsx:128 #: src/pages/Auth/Reset.tsx:26 msgid "Reset password" msgstr "" @@ -507,77 +813,79 @@ msgstr "" #~ msgid "Log in" #~ msgstr "Log in" -#: src/components/forms/AuthenticationForm.tsx:134 -#: src/components/forms/AuthenticationForm.tsx:233 +#: src/components/forms/AuthenticationForm.tsx:136 +#~ msgid "I will use username and password" +#~ msgstr "I will use username and password" + +#: src/components/forms/AuthenticationForm.tsx:137 +#: src/components/forms/AuthenticationForm.tsx:236 #: src/pages/Auth/Reset.tsx:31 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:51 msgid "Email" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:135 +#: src/components/forms/AuthenticationForm.tsx:138 #: src/pages/Auth/Reset.tsx:32 -#: src/pages/Auth/Set-Password.tsx:107 +#: src/pages/Auth/Set-Password.tsx:102 msgid "We will send you a link to login - if you are registered" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:136 -#~ msgid "I will use username and password" -#~ msgstr "I will use username and password" - -#: src/components/forms/AuthenticationForm.tsx:151 +#: src/components/forms/AuthenticationForm.tsx:154 msgid "Send me an email" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:153 +#: src/components/forms/AuthenticationForm.tsx:156 msgid "Use username and password" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:162 +#: src/components/forms/AuthenticationForm.tsx:165 msgid "Log In" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:164 +#: src/components/forms/AuthenticationForm.tsx:167 +#: src/pages/Auth/Reset.tsx:41 +#: src/pages/Auth/Set-Password.tsx:107 msgid "Send Email" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:193 +#: src/components/forms/AuthenticationForm.tsx:196 msgid "Registration successful" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:194 +#: src/components/forms/AuthenticationForm.tsx:197 msgid "Please confirm your email address to complete the registration" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:210 +#: src/components/forms/AuthenticationForm.tsx:213 msgid "Input error" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:234 +#: src/components/forms/AuthenticationForm.tsx:237 msgid "This will be used for a confirmation" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:246 +#: src/components/forms/AuthenticationForm.tsx:249 msgid "Password repeat" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:247 +#: src/components/forms/AuthenticationForm.tsx:250 msgid "Repeat password" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:259 -#: src/components/forms/AuthenticationForm.tsx:304 +#: src/components/forms/AuthenticationForm.tsx:262 +#: src/components/forms/AuthenticationForm.tsx:307 msgid "Register" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:265 +#: src/components/forms/AuthenticationForm.tsx:268 msgid "Or use SSO" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:296 +#: src/components/forms/AuthenticationForm.tsx:299 msgid "Don't have an account?" msgstr "" -#: src/components/forms/AuthenticationForm.tsx:315 +#: src/components/forms/AuthenticationForm.tsx:318 msgid "Go back to login" msgstr "" @@ -588,19 +896,20 @@ msgstr "" #: src/components/forms/HostOptionsForm.tsx:42 #: src/components/forms/HostOptionsForm.tsx:70 +#: src/components/plugins/PluginDrawer.tsx:69 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:410 +#: src/pages/Index/Settings/AdminCenter/UnitManagmentPanel.tsx:19 #: src/pages/part/CategoryDetail.tsx:81 -#: src/pages/part/PartDetail.tsx:143 -#: src/pages/stock/LocationDetail.tsx:89 -#: src/tables/machine/MachineTypeTable.tsx:65 -#: src/tables/machine/MachineTypeTable.tsx:109 -#: src/tables/machine/MachineTypeTable.tsx:216 -#: src/tables/machine/MachineTypeTable.tsx:319 +#: src/pages/part/PartDetail.tsx:164 +#: src/pages/stock/LocationDetail.tsx:83 +#: src/tables/machine/MachineTypeTable.tsx:70 +#: src/tables/machine/MachineTypeTable.tsx:119 +#: src/tables/machine/MachineTypeTable.tsx:237 +#: src/tables/machine/MachineTypeTable.tsx:340 #: src/tables/plugin/PluginErrorTable.tsx:33 -#: src/tables/plugin/PluginListTable.tsx:126 #: src/tables/purchasing/ManufacturerPartParameterTable.tsx:32 #: src/tables/settings/GroupTable.tsx:147 -#: src/tables/settings/PendingTasksTable.tsx:28 +#: src/tables/settings/PendingTasksTable.tsx:32 #: src/tables/stock/LocationTypesTable.tsx:69 msgid "Name" msgstr "" @@ -650,7 +959,7 @@ msgid "Uncategorized" msgstr "" #: src/components/forms/fields/IconField.tsx:209 -#: src/components/nav/Layout.tsx:70 +#: src/components/nav/Layout.tsx:77 #: src/tables/part/PartThumbTable.tsx:192 msgid "Search..." msgstr "" @@ -667,28 +976,27 @@ msgstr "" msgid "{0} icons" msgstr "" -#: src/components/forms/fields/RelatedModelField.tsx:318 -#: src/pages/Index/Settings/UserSettings.tsx:96 +#: src/components/forms/fields/RelatedModelField.tsx:319 +#: src/pages/Index/Settings/UserSettings.tsx:97 #: src/tables/Search.tsx:23 msgid "Search" msgstr "" -#: src/components/forms/fields/RelatedModelField.tsx:319 +#: src/components/forms/fields/RelatedModelField.tsx:320 #: src/components/modals/AboutInvenTreeModal.tsx:81 -#: src/components/widgets/WidgetLayout.tsx:120 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:316 msgid "Loading" msgstr "" -#: src/components/forms/fields/RelatedModelField.tsx:321 +#: src/components/forms/fields/RelatedModelField.tsx:322 msgid "No results found" msgstr "" -#: src/components/forms/fields/TableField.tsx:52 -msgid "modelRenderer entry required for tables" -msgstr "" +#: src/components/forms/fields/TableField.tsx:72 +#~ msgid "modelRenderer entry required for tables" +#~ msgstr "modelRenderer entry required for tables" -#: src/components/forms/fields/TableField.tsx:76 +#: src/components/forms/fields/TableField.tsx:167 msgid "No entries available" msgstr "" @@ -741,7 +1049,7 @@ msgid "Filter by row validation status" msgstr "" #: src/components/importer/ImportDataSelector.tsx:365 -#: src/tables/build/BuildOutputTable.tsx:266 +#: src/tables/build/BuildOutputTable.tsx:407 msgid "Complete" msgstr "" @@ -749,20 +1057,21 @@ msgstr "" msgid "Filter by row completion status" msgstr "" -#: src/components/importer/ImportDataSelector.tsx:383 +#: src/components/importer/ImportDataSelector.tsx:384 msgid "Import selected rows" msgstr "" -#: src/components/importer/ImportDataSelector.tsx:398 +#: src/components/importer/ImportDataSelector.tsx:399 msgid "Processing Data" msgstr "" -#: src/components/importer/ImporterColumnSelector.tsx:50 -#: src/components/importer/ImporterColumnSelector.tsx:176 +#: src/components/importer/ImporterColumnSelector.tsx:53 +#: src/components/importer/ImporterColumnSelector.tsx:179 +#: src/components/items/ErrorItem.tsx:12 msgid "An error occurred" msgstr "" -#: src/components/importer/ImporterColumnSelector.tsx:62 +#: src/components/importer/ImporterColumnSelector.tsx:65 msgid "Select column, or leave blank to ignore this field." msgstr "" @@ -778,51 +1087,51 @@ msgstr "" #~ msgid "Imported Column Name" #~ msgstr "Imported Column Name" -#: src/components/importer/ImporterColumnSelector.tsx:182 +#: src/components/importer/ImporterColumnSelector.tsx:185 msgid "Ignore this field" msgstr "" -#: src/components/importer/ImporterColumnSelector.tsx:196 +#: src/components/importer/ImporterColumnSelector.tsx:199 msgid "Mapping data columns to database fields" msgstr "" -#: src/components/importer/ImporterColumnSelector.tsx:201 +#: src/components/importer/ImporterColumnSelector.tsx:204 msgid "Accept Column Mapping" msgstr "" -#: src/components/importer/ImporterColumnSelector.tsx:214 +#: src/components/importer/ImporterColumnSelector.tsx:217 msgid "Database Field" msgstr "" -#: src/components/importer/ImporterColumnSelector.tsx:215 +#: src/components/importer/ImporterColumnSelector.tsx:218 msgid "Field Description" msgstr "" -#: src/components/importer/ImporterColumnSelector.tsx:216 +#: src/components/importer/ImporterColumnSelector.tsx:219 msgid "Imported Column" msgstr "" -#: src/components/importer/ImporterColumnSelector.tsx:217 +#: src/components/importer/ImporterColumnSelector.tsx:220 msgid "Default Value" msgstr "" -#: src/components/importer/ImporterDrawer.tsx:44 +#: src/components/importer/ImporterDrawer.tsx:46 msgid "Upload File" msgstr "" -#: src/components/importer/ImporterDrawer.tsx:45 +#: src/components/importer/ImporterDrawer.tsx:47 msgid "Map Columns" msgstr "" -#: src/components/importer/ImporterDrawer.tsx:46 +#: src/components/importer/ImporterDrawer.tsx:48 msgid "Import Data" msgstr "" -#: src/components/importer/ImporterDrawer.tsx:47 +#: src/components/importer/ImporterDrawer.tsx:49 msgid "Process Data" msgstr "" -#: src/components/importer/ImporterDrawer.tsx:48 +#: src/components/importer/ImporterDrawer.tsx:50 msgid "Complete Import" msgstr "" @@ -830,28 +1139,28 @@ msgstr "" #~ msgid "Cancel import session" #~ msgstr "Cancel import session" -#: src/components/importer/ImporterDrawer.tsx:104 +#: src/components/importer/ImporterDrawer.tsx:106 msgid "Import Complete" msgstr "" -#: src/components/importer/ImporterDrawer.tsx:107 +#: src/components/importer/ImporterDrawer.tsx:109 msgid "Data has been imported successfully" msgstr "" -#: src/components/importer/ImporterDrawer.tsx:109 -#: src/components/importer/ImporterDrawer.tsx:118 +#: src/components/importer/ImporterDrawer.tsx:111 +#: src/components/importer/ImporterDrawer.tsx:120 msgid "Close" msgstr "" -#: src/components/importer/ImporterDrawer.tsx:115 +#: src/components/importer/ImporterDrawer.tsx:117 msgid "Unknown Status" msgstr "" -#: src/components/importer/ImporterDrawer.tsx:116 +#: src/components/importer/ImporterDrawer.tsx:118 msgid "Import session has unknown status" msgstr "" -#: src/components/importer/ImporterDrawer.tsx:135 +#: src/components/importer/ImporterDrawer.tsx:137 msgid "Importing Data" msgstr "" @@ -860,85 +1169,115 @@ msgid "Importing Records" msgstr "" #: src/components/importer/ImporterImportProgress.tsx:39 -msgid "Imported rows" +#: src/tables/settings/ImportSessionTable.tsx:78 +msgid "Imported Rows" msgstr "" -#: src/components/items/ActionDropdown.tsx:121 -msgid "Barcode Actions" +#: src/components/importer/ImporterImportProgress.tsx:39 +#~ msgid "Imported rows" +#~ msgstr "Imported rows" + +#: src/components/items/ActionDropdown.tsx:126 +msgid "Options" msgstr "" #: src/components/items/ActionDropdown.tsx:140 -msgid "View Barcode" -msgstr "" +#~ msgid "View Barcode" +#~ msgstr "View Barcode" -#: src/components/items/ActionDropdown.tsx:147 -msgid "View" -msgstr "" - -#: src/components/items/ActionDropdown.tsx:148 -msgid "View barcode" -msgstr "" - -#: src/components/items/ActionDropdown.tsx:161 -msgid "Link Barcode" +#: src/components/items/ActionDropdown.tsx:162 +#: src/tables/InvenTreeTableHeader.tsx:159 +#: src/tables/InvenTreeTableHeader.tsx:160 +msgid "Barcode Actions" msgstr "" #: src/components/items/ActionDropdown.tsx:162 -msgid "Link custom barcode" +#~ msgid "Link custom barcode" +#~ msgstr "Link custom barcode" + +#: src/components/items/ActionDropdown.tsx:167 +msgid "View" msgstr "" -#: src/components/items/ActionDropdown.tsx:173 -#: src/forms/PurchaseOrderForms.tsx:426 -msgid "Unlink Barcode" +#: src/components/items/ActionDropdown.tsx:169 +msgid "View barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:174 -msgid "Unlink custom barcode" +#: src/components/items/ActionDropdown.tsx:175 +msgid "Link Barcode" +msgstr "" + +#: src/components/items/ActionDropdown.tsx:177 +msgid "Link a custom barcode to this item" msgstr "" #: src/components/items/ActionDropdown.tsx:183 -#: src/tables/RowActions.tsx:33 +#: src/components/items/QRCode.tsx:193 +#: src/forms/PurchaseOrderForms.tsx:464 +msgid "Unlink Barcode" +msgstr "" + +#: src/components/items/ActionDropdown.tsx:185 +msgid "Unlink custom barcode" +msgstr "" + +#: src/components/items/ActionDropdown.tsx:236 +#: src/tables/RowActions.tsx:39 msgid "Edit" msgstr "" -#: src/components/items/ActionDropdown.tsx:184 +#: src/components/items/ActionDropdown.tsx:237 msgid "Edit item" msgstr "" -#: src/components/items/ActionDropdown.tsx:196 +#: src/components/items/ActionDropdown.tsx:249 msgid "Delete item" msgstr "" -#: src/components/items/ActionDropdown.tsx:204 -#: src/components/items/ActionDropdown.tsx:205 +#: src/components/items/ActionDropdown.tsx:257 +#: src/components/items/ActionDropdown.tsx:258 msgid "Hold" msgstr "" -#: src/components/items/ActionDropdown.tsx:227 -#: src/tables/RowActions.tsx:23 +#: src/components/items/ActionDropdown.tsx:280 +#: src/tables/RowActions.tsx:29 msgid "Duplicate" msgstr "" -#: src/components/items/ActionDropdown.tsx:228 +#: src/components/items/ActionDropdown.tsx:281 msgid "Duplicate item" msgstr "" +#: src/components/items/BarcodeInput.tsx:23 +msgid "Scan barcode data here using barcode scanner" +msgstr "" + +#: src/components/items/BarcodeInput.tsx:24 +#: src/tables/settings/BarcodeScanHistoryTable.tsx:65 +msgid "Barcode" +msgstr "" + +#: src/components/items/BarcodeInput.tsx:25 +msgid "Scan" +msgstr "" + #: src/components/items/DocTooltip.tsx:92 +#: src/components/items/GettingStartedCarousel.tsx:20 msgid "Read More" msgstr "" -#: src/components/items/ErrorItem.tsx:5 -#: src/tables/InvenTreeTable.tsx:487 +#: src/components/items/ErrorItem.tsx:8 +#: src/tables/InvenTreeTable.tsx:473 msgid "Unknown error" msgstr "" -#: src/components/items/ErrorItem.tsx:10 -msgid "An error occurred:" -msgstr "" +#: src/components/items/ErrorItem.tsx:13 +#~ msgid "An error occurred:" +#~ msgstr "An error occurred:" #: src/components/items/GettingStartedCarousel.tsx:27 -msgid "Read more" -msgstr "" +#~ msgid "Read more" +#~ msgstr "Read more" #: src/components/items/InfoItem.tsx:27 msgid "None" @@ -965,30 +1304,51 @@ msgstr "" msgid "This panel is a placeholder." msgstr "" -#: src/components/items/QRCode.tsx:87 +#: src/components/items/QRCode.tsx:89 msgid "Low (7%)" msgstr "" -#: src/components/items/QRCode.tsx:88 +#: src/components/items/QRCode.tsx:90 msgid "Medium (15%)" msgstr "" -#: src/components/items/QRCode.tsx:89 +#: src/components/items/QRCode.tsx:91 msgid "Quartile (25%)" msgstr "" -#: src/components/items/QRCode.tsx:90 +#: src/components/items/QRCode.tsx:92 msgid "High (30%)" msgstr "" -#: src/components/items/QRCode.tsx:107 -msgid "Barcode Data:" +#: src/components/items/QRCode.tsx:100 +msgid "Custom barcode" +msgstr "" + +#: src/components/items/QRCode.tsx:101 +msgid "A custom barcode is registered for this item. The shown code is not that custom barcode." msgstr "" #: src/components/items/QRCode.tsx:118 +msgid "Barcode Data:" +msgstr "" + +#: src/components/items/QRCode.tsx:129 msgid "Select Error Correction Level" msgstr "" +#: src/components/items/QRCode.tsx:171 +#: src/pages/part/PartDetail.tsx:239 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:187 +#: src/pages/sales/ReturnOrderDetail.tsx:157 +#: src/pages/sales/SalesOrderDetail.tsx:169 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:166 +msgid "Link" +msgstr "" + +#: src/components/items/QRCode.tsx:190 +msgid "This will remove the link to the associated barcode" +msgstr "" + #: src/components/modals/AboutInvenTreeModal.tsx:99 msgid "Version Information" msgstr "" @@ -1062,11 +1422,11 @@ msgstr "" msgid "Submit Bug Report" msgstr "" -#: src/components/modals/AboutInvenTreeModal.tsx:183 +#: src/components/modals/AboutInvenTreeModal.tsx:181 msgid "Copy version information" msgstr "" -#: src/components/modals/AboutInvenTreeModal.tsx:192 +#: src/components/modals/AboutInvenTreeModal.tsx:189 #: src/components/modals/ServerInfoModal.tsx:147 msgid "Dismiss" msgstr "" @@ -1091,61 +1451,20 @@ msgstr "" msgid "{key} Packages" msgstr "" -#: src/components/modals/QrCodeModal.tsx:72 +#: src/components/modals/QrCodeModal.tsx:24 msgid "Unknown response" msgstr "" -#: src/components/modals/QrCodeModal.tsx:102 -#: src/pages/Index/Scan.tsx:636 -msgid "Error while getting camera" -msgstr "" - -#: src/components/modals/QrCodeModal.tsx:125 -#: src/pages/Index/Scan.tsx:659 -msgid "Error while scanning" -msgstr "" - -#: src/components/modals/QrCodeModal.tsx:139 -#: src/pages/Index/Scan.tsx:673 -msgid "Error while stopping" -msgstr "" - -#: src/components/modals/QrCodeModal.tsx:154 -#: src/defaults/menuItems.tsx:21 -#: src/pages/Index/Scan.tsx:746 -msgid "Scanning" -msgstr "" - -#: src/components/modals/QrCodeModal.tsx:154 -#: src/pages/Index/Scan.tsx:746 -msgid "Not scanning" -msgstr "" - -#: src/components/modals/QrCodeModal.tsx:159 -#: src/pages/Index/Scan.tsx:752 -msgid "Select Camera" -msgstr "" - -#: src/components/modals/QrCodeModal.tsx:169 -#: src/pages/Index/Scan.tsx:737 -msgid "Start scanning" -msgstr "" - -#: src/components/modals/QrCodeModal.tsx:176 -#: src/pages/Index/Scan.tsx:729 -msgid "Stop scanning" -msgstr "" - -#: src/components/modals/QrCodeModal.tsx:181 +#: src/components/modals/QrCodeModal.tsx:39 msgid "No scans yet!" msgstr "" -#: src/components/modals/QrCodeModal.tsx:201 +#: src/components/modals/QrCodeModal.tsx:57 msgid "Close modal" msgstr "" #: src/components/modals/ServerInfoModal.tsx:26 -#: src/pages/Index/Settings/SystemSettings.tsx:38 +#: src/pages/Index/Settings/SystemSettings.tsx:37 msgid "Server" msgstr "" @@ -1206,6 +1525,7 @@ msgid "Background Worker" msgstr "" #: src/components/modals/ServerInfoModal.tsx:101 +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:29 msgid "Background worker not running" msgstr "" @@ -1218,8 +1538,8 @@ msgid "Email settings not configured" msgstr "" #: src/components/modals/ServerInfoModal.tsx:121 -#: src/tables/plugin/PluginListTable.tsx:144 -#: src/tables/plugin/PluginListTable.tsx:294 +#: src/components/plugins/PluginDrawer.tsx:89 +#: src/tables/plugin/PluginListTable.tsx:116 msgid "Version" msgstr "" @@ -1227,7 +1547,7 @@ msgstr "" msgid "Server Version" msgstr "" -#: src/components/nav/Layout.tsx:73 +#: src/components/nav/Layout.tsx:80 msgid "Nothing found..." msgstr "" @@ -1237,18 +1557,26 @@ msgstr "" #~ msgstr "Profile" #: src/components/nav/MainMenu.tsx:52 +#: src/components/nav/NavigationDrawer.tsx:178 #: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:28 msgid "Settings" msgstr "" #: src/components/nav/MainMenu.tsx:59 -#: src/defaults/menuItems.tsx:15 -msgid "Account settings" +#: src/pages/Index/Settings/UserSettings.tsx:152 +msgid "Account Settings" msgstr "" +#: src/components/nav/MainMenu.tsx:59 +#: src/defaults/menuItems.tsx:15 +#~ msgid "Account settings" +#~ msgstr "Account settings" + #: src/components/nav/MainMenu.tsx:67 -#: src/defaults/menuItems.tsx:58 -#: src/pages/Index/Settings/SystemSettings.tsx:315 +#: src/components/nav/NavigationDrawer.tsx:141 +#: src/components/nav/SettingsHeader.tsx:49 +#: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:37 +#: src/pages/Index/Settings/SystemSettings.tsx:310 msgid "System Settings" msgstr "" @@ -1260,14 +1588,11 @@ msgstr "" #~ msgid "Switch to pseudo language" #~ msgstr "Switch to pseudo language" -#: src/components/nav/MainMenu.tsx:77 -msgid "Change Color Mode" -msgstr "" - #: src/components/nav/MainMenu.tsx:86 -#: src/defaults/actions.tsx:71 -#: src/defaults/menuItems.tsx:63 -#: src/pages/Index/Settings/AdminCenter/Index.tsx:221 +#: src/components/nav/NavigationDrawer.tsx:148 +#: src/components/nav/SettingsHeader.tsx:50 +#: src/defaults/actions.tsx:63 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:251 msgid "Admin Center" msgstr "" @@ -1275,458 +1600,732 @@ msgstr "" msgid "Logout" msgstr "" -#: src/components/nav/NavHoverMenu.tsx:65 -#: src/defaults/actions.tsx:60 -msgid "Open Navigation" -msgstr "" - #: src/components/nav/NavHoverMenu.tsx:84 -msgid "View all" -msgstr "" +#~ msgid "View all" +#~ msgstr "View all" #: src/components/nav/NavHoverMenu.tsx:100 #: src/components/nav/NavHoverMenu.tsx:110 -msgid "Get started" -msgstr "" +#~ msgid "Get started" +#~ msgstr "Get started" #: src/components/nav/NavHoverMenu.tsx:103 -msgid "Overview over high-level objects, functions and possible usecases." -msgstr "" - -#: src/components/nav/NavigationDrawer.tsx:57 -msgid "Navigation" -msgstr "" +#~ msgid "Overview over high-level objects, functions and possible usecases." +#~ msgstr "Overview over high-level objects, functions and possible usecases." #: src/components/nav/NavigationDrawer.tsx:60 -msgid "Pages" +#~ msgid "Pages" +#~ msgstr "Pages" + +#: src/components/nav/NavigationDrawer.tsx:77 +#: src/components/render/ModelType.tsx:31 +#: src/defaults/links.tsx:10 +#: src/pages/Index/Settings/SystemSettings.tsx:172 +#: src/pages/part/CategoryDetail.tsx:125 +#: src/pages/part/CategoryDetail.tsx:249 +#: src/pages/part/CategoryDetail.tsx:279 +#: src/pages/part/PartDetail.tsx:856 +msgid "Parts" msgstr "" -#: src/components/nav/NavigationDrawer.tsx:65 -#: src/pages/Index/Settings/AdminCenter/Index.tsx:176 -#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:41 -msgid "Plugins" +#: src/components/nav/NavigationDrawer.tsx:84 +#: src/components/render/Part.tsx:30 +#: src/defaults/links.tsx:11 +#: src/pages/Index/Settings/SystemSettings.tsx:205 +#: src/pages/part/PartDetail.tsx:593 +#: src/pages/stock/LocationDetail.tsx:352 +#: src/pages/stock/StockDetail.tsx:528 +#: src/tables/stock/StockItemTable.tsx:69 +msgid "Stock" msgstr "" -#: src/components/nav/NavigationDrawer.tsx:75 -#: src/defaults/actions.tsx:32 -msgid "Documentation" +#: src/components/nav/NavigationDrawer.tsx:91 +#: src/defaults/links.tsx:13 +#: src/pages/build/BuildDetail.tsx:530 +#: src/pages/build/BuildIndex.tsx:36 +msgid "Manufacturing" msgstr "" -#: src/components/nav/NavigationDrawer.tsx:78 -msgid "About" +#: src/components/nav/NavigationDrawer.tsx:98 +#: src/defaults/links.tsx:18 +#: src/pages/company/ManufacturerDetail.tsx:9 +#: src/pages/company/ManufacturerPartDetail.tsx:258 +#: src/pages/company/SupplierDetail.tsx:9 +#: src/pages/company/SupplierPartDetail.tsx:336 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:480 +#: src/pages/purchasing/PurchasingIndex.tsx:60 +msgid "Purchasing" msgstr "" -#: src/components/nav/NotificationDrawer.tsx:92 -#: src/pages/Index/Settings/SystemSettings.tsx:109 -#: src/pages/Index/Settings/UserSettings.tsx:126 +#: src/components/nav/NavigationDrawer.tsx:105 +#: src/defaults/links.tsx:22 +#: src/pages/company/CustomerDetail.tsx:9 +#: src/pages/sales/ReturnOrderDetail.tsx:469 +#: src/pages/sales/SalesIndex.tsx:53 +#: src/pages/sales/SalesOrderDetail.tsx:520 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:343 +msgid "Sales" +msgstr "" + +#: src/components/nav/NavigationDrawer.tsx:129 +#: src/components/nav/NotificationDrawer.tsx:178 +#: src/pages/Index/Settings/SystemSettings.tsx:110 +#: src/pages/Index/Settings/UserSettings.tsx:127 #: src/pages/Notifications.tsx:65 #: src/pages/Notifications.tsx:151 msgid "Notifications" msgstr "" -#: src/components/nav/NotificationDrawer.tsx:94 +#: src/components/nav/NavigationDrawer.tsx:135 +#: src/components/nav/SettingsHeader.tsx:48 +msgid "User Settings" +msgstr "" + +#: src/components/nav/NavigationDrawer.tsx:173 +msgid "Navigation" +msgstr "" + +#: src/components/nav/NavigationDrawer.tsx:183 +#: src/forms/PurchaseOrderForms.tsx:689 +#: src/forms/StockForms.tsx:614 +#: src/forms/StockForms.tsx:651 +#: src/forms/StockForms.tsx:677 +#: src/forms/StockForms.tsx:705 +#: src/forms/StockForms.tsx:736 +#: src/forms/StockForms.tsx:771 +#: src/forms/StockForms.tsx:813 +#: src/forms/StockForms.tsx:851 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:413 +#: src/tables/RowActions.tsx:129 +#: src/tables/build/BuildLineTable.tsx:101 +msgid "Actions" +msgstr "" + +#: src/components/nav/NavigationDrawer.tsx:191 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:205 +#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:44 +msgid "Plugins" +msgstr "" + +#: src/components/nav/NavigationDrawer.tsx:204 +#: src/defaults/actions.tsx:24 +msgid "Documentation" +msgstr "" + +#: src/components/nav/NavigationDrawer.tsx:210 +msgid "About" +msgstr "" + +#: src/components/nav/NotificationDrawer.tsx:180 msgid "Mark all as read" msgstr "" -#: src/components/nav/NotificationDrawer.tsx:104 +#: src/components/nav/NotificationDrawer.tsx:190 msgid "View all notifications" msgstr "" -#: src/components/nav/NotificationDrawer.tsx:123 +#: src/components/nav/NotificationDrawer.tsx:210 msgid "You have no unread notifications." msgstr "" -#: src/components/nav/NotificationDrawer.tsx:139 -#: src/components/nav/NotificationDrawer.tsx:145 -#: src/tables/notifications/NotificationsTable.tsx:36 -msgid "Notification" -msgstr "" - -#: src/components/nav/NotificationDrawer.tsx:168 -#: src/pages/Notifications.tsx:73 -msgid "Mark as read" -msgstr "" - -#: src/components/nav/SearchDrawer.tsx:78 +#: src/components/nav/SearchDrawer.tsx:85 msgid "results" msgstr "" -#: src/components/nav/SearchDrawer.tsx:370 +#: src/components/nav/SearchDrawer.tsx:380 msgid "Enter search text" msgstr "" -#: src/components/nav/SearchDrawer.tsx:397 +#: src/components/nav/SearchDrawer.tsx:391 +msgid "Refresh search results" +msgstr "" + +#: src/components/nav/SearchDrawer.tsx:402 +#: src/components/nav/SearchDrawer.tsx:409 msgid "Search Options" msgstr "" -#: src/components/nav/SearchDrawer.tsx:400 +#: src/components/nav/SearchDrawer.tsx:412 msgid "Regex search" msgstr "" -#: src/components/nav/SearchDrawer.tsx:410 +#: src/components/nav/SearchDrawer.tsx:421 msgid "Whole word search" msgstr "" -#: src/components/nav/SearchDrawer.tsx:451 +#: src/components/nav/SearchDrawer.tsx:461 msgid "An error occurred during search query" msgstr "" #: src/components/nav/SearchDrawer.tsx:462 -msgid "No results" +#~ msgid "No results" +#~ msgstr "No results" + +#: src/components/nav/SearchDrawer.tsx:472 +#: src/tables/part/PartTestTemplateTable.tsx:76 +msgid "No Results" msgstr "" -#: src/components/nav/SearchDrawer.tsx:465 +#: src/components/nav/SearchDrawer.tsx:475 msgid "No results available for search query" msgstr "" -#: src/components/render/Instance.tsx:217 +#: src/components/panels/AttachmentPanel.tsx:18 +msgid "Attachments" +msgstr "" + +#: src/components/panels/NotesPanel.tsx:24 +#: src/tables/build/BuildOrderTestTable.tsx:143 +#: src/tables/stock/StockTrackingTable.tsx:204 +msgid "Notes" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:47 +msgid "Plugin Inactive" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:50 +msgid "Plugin is not active" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:60 +msgid "Plugin Information" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:74 +#: src/pages/build/BuildDetail.tsx:116 +#: src/pages/company/CompanyDetail.tsx:89 +#: src/pages/company/ManufacturerPartDetail.tsx:89 +#: src/pages/company/ManufacturerPartDetail.tsx:116 +#: src/pages/company/SupplierPartDetail.tsx:140 +#: src/pages/part/CategoryDetail.tsx:101 +#: src/pages/part/PartDetail.tsx:178 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:136 +#: src/pages/sales/ReturnOrderDetail.tsx:107 +#: src/pages/sales/SalesOrderDetail.tsx:116 +#: src/pages/stock/LocationDetail.tsx:103 +#: src/tables/ColumnRenderers.tsx:92 +#: src/tables/bom/UsedInTable.tsx:44 +#: src/tables/build/BuildAllocatedStockTable.tsx:83 +#: src/tables/build/BuildLineTable.tsx:329 +#: src/tables/machine/MachineTypeTable.tsx:74 +#: src/tables/machine/MachineTypeTable.tsx:129 +#: src/tables/machine/MachineTypeTable.tsx:240 +#: src/tables/machine/MachineTypeTable.tsx:344 +#: src/tables/part/RelatedPartTable.tsx:66 +#: src/tables/plugin/PluginListTable.tsx:99 +#: src/tables/sales/SalesOrderAllocationTable.tsx:87 +#: src/tables/sales/SalesOrderLineItemTable.tsx:75 +#: src/tables/stock/LocationTypesTable.tsx:74 +msgid "Description" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:79 +msgid "Author" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:84 +#: src/pages/part/PartSchedulingDetail.tsx:277 +#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:40 +#: src/pages/part/pricing/SaleHistoryPanel.tsx:38 +#: src/tables/ColumnRenderers.tsx:215 +#: src/tables/build/BuildOrderTestTable.tsx:151 +#: src/tables/settings/StocktakeReportTable.tsx:40 +msgid "Date" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:94 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:398 +#: src/pages/part/PartDetail.tsx:331 +#: src/tables/bom/UsedInTable.tsx:84 +#: src/tables/company/CompanyTable.tsx:62 +#: src/tables/company/CompanyTable.tsx:96 +#: src/tables/machine/MachineListTable.tsx:333 +#: src/tables/machine/MachineListTable.tsx:605 +#: src/tables/part/ParametricPartTable.tsx:223 +#: src/tables/part/PartTable.tsx:178 +#: src/tables/part/PartVariantTable.tsx:15 +#: src/tables/plugin/PluginListTable.tsx:94 +#: src/tables/plugin/PluginListTable.tsx:401 +#: src/tables/purchasing/SupplierPartTable.tsx:100 +#: src/tables/purchasing/SupplierPartTable.tsx:190 +#: src/tables/settings/UserTable.tsx:283 +#: src/tables/stock/StockItemTable.tsx:293 +msgid "Active" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:106 +msgid "Package Name" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:112 +msgid "Installation Path" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:117 +#: src/tables/machine/MachineTypeTable.tsx:152 +#: src/tables/machine/MachineTypeTable.tsx:276 +#: src/tables/plugin/PluginListTable.tsx:406 +msgid "Builtin" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:122 +msgid "Package" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:134 +#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:53 +msgid "Plugin Settings" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:146 +#: src/components/render/ModelType.tsx:276 +msgid "Plugin Configuration" +msgstr "" + +#: src/components/plugins/PluginPanel.tsx:87 +#~ msgid "Error occurred while rendering plugin content" +#~ msgstr "Error occurred while rendering plugin content" + +#: src/components/plugins/PluginPanel.tsx:91 +#~ msgid "Plugin did not provide panel rendering function" +#~ msgstr "Plugin did not provide panel rendering function" + +#: src/components/plugins/PluginPanel.tsx:103 +#~ msgid "No content provided for this plugin" +#~ msgstr "No content provided for this plugin" + +#: src/components/plugins/PluginPanel.tsx:116 +#: src/components/plugins/PluginSettingsPanel.tsx:76 +#~ msgid "Error Loading Plugin" +#~ msgstr "Error Loading Plugin" + +#: src/components/plugins/PluginSettingsPanel.tsx:51 +#~ msgid "Error occurred while rendering plugin settings" +#~ msgstr "Error occurred while rendering plugin settings" + +#: src/components/plugins/PluginSettingsPanel.tsx:55 +#~ msgid "Plugin did not provide settings rendering function" +#~ msgstr "Plugin did not provide settings rendering function" + +#: src/components/plugins/PluginUIFeature.tsx:100 +msgid "Error occurred while rendering the template editor." +msgstr "" + +#: src/components/plugins/PluginUIFeature.tsx:111 +msgid "Error Loading Plugin Editor" +msgstr "" + +#: src/components/plugins/PluginUIFeature.tsx:147 +msgid "Error occurred while rendering the template preview." +msgstr "" + +#: src/components/plugins/PluginUIFeature.tsx:158 +msgid "Error Loading Plugin Preview" +msgstr "" + +#: src/components/plugins/RemoteComponent.tsx:70 +msgid "Invalid source or function name" +msgstr "" + +#: src/components/plugins/RemoteComponent.tsx:91 +msgid "Error Loading Content" +msgstr "" + +#: src/components/plugins/RemoteComponent.tsx:95 +msgid "Error occurred while loading plugin content" +msgstr "" + +#: src/components/render/Instance.tsx:224 msgid "Unknown model: {model}" msgstr "" -#: src/components/render/ModelType.tsx:22 -#: src/forms/BuildForms.tsx:213 -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/forms/StockForms.tsx:499 -#: src/forms/StockForms.tsx:533 -#: src/forms/StockForms.tsx:562 -#: src/forms/StockForms.tsx:590 -#: src/forms/StockForms.tsx:621 -#: src/forms/StockForms.tsx:656 -#: src/forms/StockForms.tsx:698 -#: src/forms/StockForms.tsx:734 -#: src/pages/build/BuildDetail.tsx:95 -#: src/pages/part/PartDetail.tsx:1073 -#: src/tables/build/BuildAllocatedStockTable.tsx:82 +#: src/components/render/ModelType.tsx:30 +#: src/forms/BuildForms.tsx:269 +#: src/forms/BuildForms.tsx:337 +#: src/forms/BuildForms.tsx:385 +#: src/forms/BuildForms.tsx:515 +#: src/forms/PurchaseOrderForms.tsx:689 +#: src/forms/ReturnOrderForms.tsx:190 +#: src/forms/SalesOrderForms.tsx:248 +#: src/forms/StockForms.tsx:261 +#: src/forms/StockForms.tsx:614 +#: src/forms/StockForms.tsx:651 +#: src/forms/StockForms.tsx:677 +#: src/forms/StockForms.tsx:705 +#: src/forms/StockForms.tsx:736 +#: src/forms/StockForms.tsx:771 +#: src/forms/StockForms.tsx:813 +#: src/forms/StockForms.tsx:851 +#: src/pages/build/BuildDetail.tsx:90 +#: src/pages/part/PartDetail.tsx:1094 +#: src/tables/build/BuildAllocatedStockTable.tsx:95 +#: src/tables/build/BuildLineTable.tsx:72 #: src/tables/part/PartTable.tsx:28 -#: src/tables/part/RelatedPartTable.tsx:45 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:88 -#: src/tables/sales/SalesOrderAllocationTable.tsx:68 -#: src/tables/stock/StockTrackingTable.tsx:74 +#: src/tables/part/RelatedPartTable.tsx:47 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:130 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:100 +#: src/tables/sales/SalesOrderAllocationTable.tsx:99 +#: src/tables/stock/StockTrackingTable.tsx:78 msgid "Part" msgstr "" -#: src/components/render/ModelType.tsx:23 -#: src/defaults/links.tsx:29 -#: src/defaults/menuItems.tsx:33 -#: src/pages/Index/Settings/SystemSettings.tsx:173 -#: src/pages/part/CategoryDetail.tsx:119 -#: src/pages/part/CategoryDetail.tsx:244 -#: src/pages/part/CategoryDetail.tsx:274 -#: src/pages/part/PartDetail.tsx:827 -msgid "Parts" -msgstr "" - -#: src/components/render/ModelType.tsx:31 +#: src/components/render/ModelType.tsx:40 msgid "Part Parameter Template" msgstr "" -#: src/components/render/ModelType.tsx:32 +#: src/components/render/ModelType.tsx:41 msgid "Part Parameter Templates" msgstr "" -#: src/components/render/ModelType.tsx:38 +#: src/components/render/ModelType.tsx:48 msgid "Part Test Template" msgstr "" -#: src/components/render/ModelType.tsx:39 +#: src/components/render/ModelType.tsx:49 msgid "Part Test Templates" msgstr "" -#: src/components/render/ModelType.tsx:45 -#: src/pages/company/SupplierPartDetail.tsx:203 -#: src/pages/company/SupplierPartDetail.tsx:375 -#: src/pages/stock/StockDetail.tsx:173 -#: src/tables/build/BuildAllocatedStockTable.tsx:131 +#: src/components/render/ModelType.tsx:56 +#: src/pages/company/SupplierPartDetail.tsx:364 +#: src/pages/stock/StockDetail.tsx:194 +#: src/tables/build/BuildAllocatedStockTable.tsx:152 #: src/tables/part/PartPurchaseOrdersTable.tsx:49 -#: src/tables/purchasing/SupplierPartTable.tsx:68 +#: src/tables/purchasing/SupplierPartTable.tsx:70 +#: src/tables/stock/StockItemTable.tsx:229 msgid "Supplier Part" msgstr "" -#: src/components/render/ModelType.tsx:46 +#: src/components/render/ModelType.tsx:57 msgid "Supplier Parts" msgstr "" -#: src/components/render/ModelType.tsx:54 -#: src/pages/company/ManufacturerPartDetail.tsx:132 +#: src/components/render/ModelType.tsx:66 #: src/tables/part/PartPurchaseOrdersTable.tsx:55 +#: src/tables/stock/StockItemTable.tsx:234 msgid "Manufacturer Part" msgstr "" -#: src/components/render/ModelType.tsx:55 +#: src/components/render/ModelType.tsx:67 msgid "Manufacturer Parts" msgstr "" -#: src/components/render/ModelType.tsx:63 -#: src/pages/part/CategoryDetail.tsx:305 +#: src/components/render/ModelType.tsx:76 +#: src/pages/part/CategoryDetail.tsx:310 msgid "Part Category" msgstr "" -#: src/components/render/ModelType.tsx:64 -#: src/pages/part/CategoryDetail.tsx:258 -#: src/pages/part/CategoryDetail.tsx:296 -#: src/pages/part/PartDetail.tsx:1063 +#: src/components/render/ModelType.tsx:77 +#: src/pages/part/CategoryDetail.tsx:263 +#: src/pages/part/CategoryDetail.tsx:301 +#: src/pages/part/PartDetail.tsx:1084 msgid "Part Categories" msgstr "" -#: src/components/render/ModelType.tsx:72 -#: src/pages/stock/StockDetail.tsx:624 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:94 -#: src/tables/stock/StockTrackingTable.tsx:45 +#: src/components/render/ModelType.tsx:86 +#: src/forms/BuildForms.tsx:337 +#: src/forms/BuildForms.tsx:385 +#: src/forms/BuildForms.tsx:515 +#: src/forms/SalesOrderForms.tsx:248 +#: src/pages/stock/StockDetail.tsx:839 +#: src/tables/stock/StockTrackingTable.tsx:49 msgid "Stock Item" msgstr "" -#: src/components/render/ModelType.tsx:73 +#: src/components/render/ModelType.tsx:87 #: src/pages/company/CompanyDetail.tsx:203 -#: src/pages/stock/LocationDetail.tsx:128 -#: src/pages/stock/LocationDetail.tsx:181 -#: src/pages/stock/LocationDetail.tsx:395 +#: src/pages/part/PartStocktakeDetail.tsx:113 +#: src/pages/stock/LocationDetail.tsx:122 +#: src/pages/stock/LocationDetail.tsx:175 +#: src/pages/stock/LocationDetail.tsx:380 msgid "Stock Items" msgstr "" -#: src/components/render/ModelType.tsx:81 +#: src/components/render/ModelType.tsx:96 msgid "Stock Location" msgstr "" -#: src/components/render/ModelType.tsx:82 -#: src/pages/stock/LocationDetail.tsx:195 -#: src/pages/stock/LocationDetail.tsx:387 -#: src/pages/stock/StockDetail.tsx:616 +#: src/components/render/ModelType.tsx:97 +#: src/pages/stock/LocationDetail.tsx:189 +#: src/pages/stock/LocationDetail.tsx:372 +#: src/pages/stock/StockDetail.tsx:831 msgid "Stock Locations" msgstr "" -#: src/components/render/ModelType.tsx:90 +#: src/components/render/ModelType.tsx:106 msgid "Stock Location Type" msgstr "" -#: src/components/render/ModelType.tsx:91 +#: src/components/render/ModelType.tsx:107 msgid "Stock Location Types" msgstr "" -#: src/components/render/ModelType.tsx:95 +#: src/components/render/ModelType.tsx:112 +#: src/pages/part/PartDetail.tsx:712 msgid "Stock History" msgstr "" -#: src/components/render/ModelType.tsx:96 +#: src/components/render/ModelType.tsx:113 msgid "Stock Histories" msgstr "" -#: src/components/render/ModelType.tsx:100 -#: src/defaults/links.tsx:31 -#: src/defaults/menuItems.tsx:43 +#: src/components/render/ModelType.tsx:118 msgid "Build" msgstr "" -#: src/components/render/ModelType.tsx:101 +#: src/components/render/ModelType.tsx:119 msgid "Builds" msgstr "" -#: src/components/render/ModelType.tsx:109 +#: src/components/render/ModelType.tsx:128 msgid "Build Line" msgstr "" -#: src/components/render/ModelType.tsx:110 +#: src/components/render/ModelType.tsx:129 msgid "Build Lines" msgstr "" -#: src/components/render/ModelType.tsx:117 +#: src/components/render/ModelType.tsx:137 msgid "Build Item" msgstr "" -#: src/components/render/ModelType.tsx:118 +#: src/components/render/ModelType.tsx:138 msgid "Build Items" msgstr "" -#: src/components/render/ModelType.tsx:122 -#: src/pages/company/CompanyDetail.tsx:339 +#: src/components/render/ModelType.tsx:143 +#: src/pages/company/CompanyDetail.tsx:321 msgid "Company" msgstr "" -#: src/components/render/ModelType.tsx:123 +#: src/components/render/ModelType.tsx:144 msgid "Companies" msgstr "" -#: src/components/render/ModelType.tsx:131 +#: src/components/render/ModelType.tsx:153 +#: src/pages/build/BuildDetail.tsx:195 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:204 +#: src/pages/sales/ReturnOrderDetail.tsx:174 +#: src/pages/sales/SalesOrderDetail.tsx:186 #: src/tables/TableHoverCard.tsx:81 -#: src/tables/build/BuildOrderTable.tsx:140 -#: src/tables/purchasing/PurchaseOrderTable.tsx:64 -#: src/tables/sales/ReturnOrderTable.tsx:55 -#: src/tables/sales/SalesOrderTable.tsx:62 +#: src/tables/build/BuildOrderTable.tsx:135 +#: src/tables/purchasing/PurchaseOrderTable.tsx:69 +#: src/tables/sales/ReturnOrderTable.tsx:67 +#: src/tables/sales/SalesOrderTable.tsx:67 msgid "Project Code" msgstr "" -#: src/components/render/ModelType.tsx:132 -#: src/pages/Index/Settings/AdminCenter/Index.tsx:128 +#: src/components/render/ModelType.tsx:154 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:145 msgid "Project Codes" msgstr "" -#: src/components/render/ModelType.tsx:138 +#: src/components/render/ModelType.tsx:161 #: src/pages/part/pricing/PurchaseHistoryPanel.tsx:32 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:480 -#: src/tables/part/PartPurchaseOrdersTable.tsx:32 -#: src/tables/stock/StockTrackingTable.tsx:107 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:477 +#: src/pages/stock/StockDetail.tsx:253 +#: src/tables/part/PartPurchaseOrdersTable.tsx:31 +#: src/tables/stock/StockItemTable.tsx:222 +#: src/tables/stock/StockTrackingTable.tsx:111 msgid "Purchase Order" msgstr "" -#: src/components/render/ModelType.tsx:139 -#: src/pages/Index/Settings/SystemSettings.tsx:255 +#: src/components/render/ModelType.tsx:162 +#: src/pages/Index/Settings/SystemSettings.tsx:249 #: src/pages/company/CompanyDetail.tsx:196 -#: src/pages/company/SupplierPartDetail.tsx:237 -#: src/pages/part/PartDetail.tsx:662 +#: src/pages/company/SupplierPartDetail.tsx:249 +#: src/pages/part/PartDetail.tsx:683 #: src/pages/purchasing/PurchasingIndex.tsx:25 msgid "Purchase Orders" msgstr "" -#: src/components/render/ModelType.tsx:147 +#: src/components/render/ModelType.tsx:171 msgid "Purchase Order Line" msgstr "" -#: src/components/render/ModelType.tsx:148 +#: src/components/render/ModelType.tsx:172 msgid "Purchase Order Lines" msgstr "" -#: src/components/render/ModelType.tsx:152 -#: src/pages/build/BuildDetail.tsx:153 -#: src/pages/sales/SalesOrderDetail.tsx:520 -#: src/pages/stock/StockDetail.tsx:221 -#: src/tables/sales/SalesOrderAllocationTable.tsx:50 -#: src/tables/stock/StockTrackingTable.tsx:118 +#: src/components/render/ModelType.tsx:177 +#: src/pages/build/BuildDetail.tsx:148 +#: src/pages/part/pricing/SaleHistoryPanel.tsx:24 +#: src/pages/sales/SalesOrderDetail.tsx:515 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:92 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:341 +#: src/pages/stock/StockDetail.tsx:262 +#: src/tables/sales/SalesOrderAllocationTable.tsx:80 +#: src/tables/stock/StockTrackingTable.tsx:122 msgid "Sales Order" msgstr "" -#: src/components/render/ModelType.tsx:153 -#: src/pages/Index/Settings/SystemSettings.tsx:270 +#: src/components/render/ModelType.tsx:178 +#: src/pages/Index/Settings/SystemSettings.tsx:264 #: src/pages/company/CompanyDetail.tsx:216 -#: src/pages/part/PartDetail.tsx:669 +#: src/pages/part/PartDetail.tsx:695 #: src/pages/sales/SalesIndex.tsx:26 msgid "Sales Orders" msgstr "" -#: src/components/render/ModelType.tsx:161 +#: src/components/render/ModelType.tsx:187 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:340 msgid "Sales Order Shipment" msgstr "" -#: src/components/render/ModelType.tsx:162 +#: src/components/render/ModelType.tsx:188 msgid "Sales Order Shipments" msgstr "" -#: src/components/render/ModelType.tsx:168 -#: src/pages/sales/ReturnOrderDetail.tsx:469 -#: src/tables/stock/StockTrackingTable.tsx:129 +#: src/components/render/ModelType.tsx:195 +#: src/pages/sales/ReturnOrderDetail.tsx:464 +#: src/tables/stock/StockTrackingTable.tsx:133 msgid "Return Order" msgstr "" -#: src/components/render/ModelType.tsx:169 -#: src/pages/Index/Settings/SystemSettings.tsx:286 +#: src/components/render/ModelType.tsx:196 +#: src/pages/Index/Settings/SystemSettings.tsx:280 #: src/pages/company/CompanyDetail.tsx:223 +#: src/pages/part/PartDetail.tsx:702 #: src/pages/sales/SalesIndex.tsx:32 msgid "Return Orders" msgstr "" -#: src/components/render/ModelType.tsx:177 +#: src/components/render/ModelType.tsx:205 msgid "Return Order Line Item" msgstr "" -#: src/components/render/ModelType.tsx:178 +#: src/components/render/ModelType.tsx:206 msgid "Return Order Line Items" msgstr "" -#: src/components/render/ModelType.tsx:182 -#: src/tables/company/AddressTable.tsx:47 +#: src/components/render/ModelType.tsx:211 +#: src/tables/company/AddressTable.tsx:48 msgid "Address" msgstr "" -#: src/components/render/ModelType.tsx:183 -#: src/pages/company/CompanyDetail.tsx:253 +#: src/components/render/ModelType.tsx:212 +#: src/pages/company/CompanyDetail.tsx:255 msgid "Addresses" msgstr "" -#: src/components/render/ModelType.tsx:189 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:195 -#: src/pages/sales/ReturnOrderDetail.tsx:174 -#: src/pages/sales/SalesOrderDetail.tsx:183 +#: src/components/render/ModelType.tsx:219 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:196 +#: src/pages/sales/ReturnOrderDetail.tsx:166 +#: src/pages/sales/SalesOrderDetail.tsx:178 msgid "Contact" msgstr "" -#: src/components/render/ModelType.tsx:190 -#: src/pages/company/CompanyDetail.tsx:247 +#: src/components/render/ModelType.tsx:220 +#: src/pages/company/CompanyDetail.tsx:249 msgid "Contacts" msgstr "" -#: src/components/render/ModelType.tsx:196 +#: src/components/render/ModelType.tsx:227 msgid "Owner" msgstr "" -#: src/components/render/ModelType.tsx:197 +#: src/components/render/ModelType.tsx:228 msgid "Owners" msgstr "" -#: src/components/render/ModelType.tsx:203 -#: src/tables/settings/ImportSessionTable.tsx:121 -#: src/tables/stock/StockItemTestResultTable.tsx:198 -#: src/tables/stock/StockTrackingTable.tsx:195 +#: src/components/render/ModelType.tsx:234 +#~ msgid "Purchase Order Line Item" +#~ msgstr "Purchase Order Line Item" + +#: src/components/render/ModelType.tsx:235 +#: src/tables/settings/BarcodeScanHistoryTable.tsx:80 +#: src/tables/settings/BarcodeScanHistoryTable.tsx:211 +#: src/tables/settings/ImportSessionTable.tsx:120 +#: src/tables/settings/StocktakeReportTable.tsx:44 +#: src/tables/stock/StockItemTestResultTable.tsx:204 +#: src/tables/stock/StockTrackingTable.tsx:181 +#: src/tables/stock/StockTrackingTable.tsx:210 msgid "User" msgstr "" -#: src/components/render/ModelType.tsx:204 -#: src/pages/Index/Settings/AdminCenter/Index.tsx:98 +#: src/components/render/ModelType.tsx:236 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:109 #: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:13 msgid "Users" msgstr "" -#: src/components/render/ModelType.tsx:210 +#: src/components/render/ModelType.tsx:243 msgid "Group" msgstr "" -#: src/components/render/ModelType.tsx:211 +#: src/components/render/ModelType.tsx:244 #: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:20 -#: src/tables/settings/UserTable.tsx:138 -#: src/tables/settings/UserTable.tsx:201 +#: src/tables/settings/UserTable.tsx:137 +#: src/tables/settings/UserTable.tsx:200 msgid "Groups" msgstr "" -#: src/components/render/ModelType.tsx:218 +#: src/components/render/ModelType.tsx:252 msgid "Import Session" msgstr "" -#: src/components/render/ModelType.tsx:219 +#: src/components/render/ModelType.tsx:253 msgid "Import Sessions" msgstr "" -#: src/components/render/ModelType.tsx:225 +#: src/components/render/ModelType.tsx:260 msgid "Label Template" msgstr "" -#: src/components/render/ModelType.tsx:226 -#: src/pages/Index/Settings/AdminCenter/Index.tsx:158 +#: src/components/render/ModelType.tsx:261 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:187 msgid "Label Templates" msgstr "" -#: src/components/render/ModelType.tsx:232 +#: src/components/render/ModelType.tsx:264 +#~ msgid "Unknown Model" +#~ msgstr "Unknown Model" + +#: src/components/render/ModelType.tsx:268 msgid "Report Template" msgstr "" -#: src/components/render/ModelType.tsx:233 -#: src/pages/Index/Settings/AdminCenter/Index.tsx:164 +#: src/components/render/ModelType.tsx:269 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:193 msgid "Report Templates" msgstr "" -#: src/components/render/ModelType.tsx:239 -msgid "Plugin Configuration" -msgstr "" - -#: src/components/render/ModelType.tsx:240 +#: src/components/render/ModelType.tsx:277 msgid "Plugin Configurations" msgstr "" +#: src/components/render/ModelType.tsx:284 +msgid "Content Type" +msgstr "" + +#: src/components/render/ModelType.tsx:285 +msgid "Content Types" +msgstr "" + +#: src/components/render/ModelType.tsx:291 +#: src/tables/machine/MachineListTable.tsx:351 +#: src/tables/machine/MachineTypeTable.tsx:282 +msgid "Errors" +msgstr "" + +#: src/components/render/ModelType.tsx:307 +#~ msgid "Purchase Order Line Items" +#~ msgstr "Purchase Order Line Items" + +#: src/components/render/ModelType.tsx:337 +#~ msgid "Unknown Models" +#~ msgstr "Unknown Models" + #: src/components/render/Order.tsx:121 +#: src/tables/sales/SalesOrderAllocationTable.tsx:136 msgid "Shipment" msgstr "" #: src/components/render/Part.tsx:25 #: src/components/render/Plugin.tsx:17 -#: src/pages/company/CompanyDetail.tsx:325 -#: src/pages/company/SupplierPartDetail.tsx:360 -#: src/pages/part/PartDetail.tsx:879 +#: src/pages/company/CompanyDetail.tsx:307 +#: src/pages/company/SupplierPartDetail.tsx:349 +#: src/pages/part/PartDetail.tsx:911 msgid "Inactive" msgstr "" @@ -1736,39 +2335,38 @@ msgstr "" msgid "No stock" msgstr "" -#: src/components/render/Part.tsx:30 -#: src/defaults/links.tsx:30 -#: src/defaults/menuItems.tsx:38 -#: src/pages/Index/Settings/SystemSettings.tsx:206 -#: src/pages/part/PartDetail.tsx:543 -#: src/pages/stock/LocationDetail.tsx:367 -#: src/pages/stock/StockDetail.tsx:411 -#: src/tables/stock/StockItemTable.tsx:68 -msgid "Stock" -msgstr "" - -#: src/components/render/Stock.tsx:60 -#: src/pages/stock/StockDetail.tsx:150 -#: src/pages/stock/StockDetail.tsx:581 -#: src/tables/build/BuildAllocatedStockTable.tsx:102 -#: src/tables/sales/SalesOrderAllocationTable.tsx:80 +#: src/components/render/Stock.tsx:61 +#: src/forms/ReturnOrderForms.tsx:190 +#: src/pages/stock/StockDetail.tsx:166 +#: src/pages/stock/StockDetail.tsx:771 +#: src/tables/build/BuildAllocatedStockTable.tsx:123 +#: src/tables/build/BuildOutputTable.tsx:81 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:114 +#: src/tables/sales/SalesOrderAllocationTable.tsx:106 msgid "Serial Number" msgstr "" -#: src/components/render/Stock.tsx:62 -#: src/forms/BuildForms.tsx:218 -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/pages/part/pricing/BomPricingPanel.tsx:109 +#: src/components/render/Stock.tsx:63 +#: src/forms/BuildForms.tsx:206 +#: src/forms/BuildForms.tsx:515 +#: src/forms/PurchaseOrderForms.tsx:689 +#: src/forms/SalesOrderForms.tsx:248 +#: src/pages/part/PartSchedulingDetail.tsx:80 +#: src/pages/part/PartStocktakeDetail.tsx:60 +#: src/pages/part/PartStocktakeDetail.tsx:234 +#: src/pages/part/PartStocktakeDetail.tsx:252 +#: src/pages/part/pricing/BomPricingPanel.tsx:148 #: src/pages/part/pricing/PriceBreakPanel.tsx:89 -#: src/pages/part/pricing/PriceBreakPanel.tsx:171 -#: src/pages/stock/StockDetail.tsx:145 -#: src/pages/stock/StockDetail.tsx:587 -#: src/tables/build/BuildOrderTestTable.tsx:197 -#: src/tables/part/PartPurchaseOrdersTable.tsx:92 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:143 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:171 +#: src/pages/part/pricing/PriceBreakPanel.tsx:172 +#: src/pages/stock/StockDetail.tsx:161 +#: src/pages/stock/StockDetail.tsx:777 +#: src/tables/build/BuildLineTable.tsx:79 +#: src/tables/build/BuildOrderTestTable.tsx:198 +#: src/tables/part/PartPurchaseOrdersTable.tsx:93 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:146 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:177 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:77 -#: src/tables/stock/StockTrackingTable.tsx:59 +#: src/tables/stock/StockTrackingTable.tsx:63 msgid "Quantity" msgstr "" @@ -1842,10 +2440,6 @@ msgstr "" #~ msgid "Required Part" #~ msgstr "Required Part" -#: src/components/tables/build/BuildLineTable.tsx:152 -#~ msgid "Required Quantity" -#~ msgstr "Required Quantity" - #: src/components/tables/build/BuildOrderTable.tsx:52 #~ msgid "Progress" #~ msgstr "Progress" @@ -2126,14 +2720,6 @@ msgstr "" #~ msgid "user deleted" #~ msgstr "user deleted" -#: src/components/tables/settings/UserTable.tsx:168 -#~ msgid "First Name" -#~ msgstr "First Name" - -#: src/components/tables/settings/UserTable.tsx:173 -#~ msgid "Last Name" -#~ msgstr "Last Name" - #: src/components/tables/stock/StockItemTable.tsx:247 #~ msgid "Test Filter" #~ msgstr "Test Filter" @@ -2146,36 +2732,21 @@ msgstr "" #~ msgid "Stock location updated" #~ msgstr "Stock location updated" -#: src/components/widgets/DisplayWidget.tsx:11 -#: src/pages/Index/Settings/AccountSettings/DisplaySettingsPanel.tsx:17 -msgid "Display Settings" -msgstr "" - -#: src/components/widgets/DisplayWidget.tsx:15 -#: src/pages/Index/Settings/AccountSettings/DisplaySettingsPanel.tsx:23 -msgid "Color Mode" -msgstr "" - -#: src/components/widgets/DisplayWidget.tsx:21 -#: src/pages/Index/Settings/AccountSettings/DisplaySettingsPanel.tsx:33 -msgid "Language" -msgstr "" - #: src/components/widgets/FeedbackWidget.tsx:19 -msgid "Something is new: Platform UI" -msgstr "" +#~ msgid "Something is new: Platform UI" +#~ msgstr "Something is new: Platform UI" #: src/components/widgets/FeedbackWidget.tsx:21 -msgid "We are building a new UI with a modern stack. What you currently see is not fixed and will be redesigned but demonstrates the UI/UX possibilities we will have going forward." -msgstr "" +#~ msgid "We are building a new UI with a modern stack. What you currently see is not fixed and will be redesigned but demonstrates the UI/UX possibilities we will have going forward." +#~ msgstr "We are building a new UI with a modern stack. What you currently see is not fixed and will be redesigned but demonstrates the UI/UX possibilities we will have going forward." #: src/components/widgets/FeedbackWidget.tsx:32 -msgid "Provide Feedback" -msgstr "" +#~ msgid "Provide Feedback" +#~ msgstr "Provide Feedback" #: src/components/widgets/GetStartedWidget.tsx:11 -msgid "Getting started" -msgstr "" +#~ msgid "Getting started" +#~ msgstr "Getting started" #: src/components/widgets/MarkdownEditor.tsx:108 #~ msgid "Failed to upload image" @@ -2186,28 +2757,24 @@ msgstr "" #~ msgstr "Notes saved" #: src/components/widgets/WidgetLayout.tsx:166 -msgid "Layout" -msgstr "" +#~ msgid "Layout" +#~ msgstr "Layout" #: src/components/widgets/WidgetLayout.tsx:172 -msgid "Reset Layout" -msgstr "" +#~ msgid "Reset Layout" +#~ msgstr "Reset Layout" #: src/components/widgets/WidgetLayout.tsx:185 -msgid "Stop Edit" -msgstr "" - -#: src/components/widgets/WidgetLayout.tsx:185 -msgid "Edit Layout" -msgstr "" +#~ msgid "Stop Edit" +#~ msgstr "Stop Edit" #: src/components/widgets/WidgetLayout.tsx:191 -msgid "Appearance" -msgstr "" +#~ msgid "Appearance" +#~ msgstr "Appearance" #: src/components/widgets/WidgetLayout.tsx:203 -msgid "Show Boxes" -msgstr "" +#~ msgid "Show Boxes" +#~ msgstr "Show Boxes" #: src/contexts/LanguageContext.tsx:20 msgid "Arabic" @@ -2286,201 +2853,175 @@ msgid "Korean" msgstr "" #: src/contexts/LanguageContext.tsx:39 -msgid "Latvian" +msgid "Lithuanian" msgstr "" #: src/contexts/LanguageContext.tsx:40 -msgid "Dutch" +msgid "Latvian" msgstr "" #: src/contexts/LanguageContext.tsx:41 -msgid "Norwegian" +msgid "Dutch" msgstr "" #: src/contexts/LanguageContext.tsx:42 -msgid "Polish" +msgid "Norwegian" msgstr "" #: src/contexts/LanguageContext.tsx:43 -msgid "Portuguese" +msgid "Polish" msgstr "" #: src/contexts/LanguageContext.tsx:44 -msgid "Portuguese (Brazilian)" +msgid "Portuguese" msgstr "" #: src/contexts/LanguageContext.tsx:45 -msgid "Romanian" +msgid "Portuguese (Brazilian)" msgstr "" #: src/contexts/LanguageContext.tsx:46 -msgid "Russian" +msgid "Romanian" msgstr "" #: src/contexts/LanguageContext.tsx:47 -msgid "Slovak" +msgid "Russian" msgstr "" #: src/contexts/LanguageContext.tsx:48 -msgid "Slovenian" +msgid "Slovak" msgstr "" #: src/contexts/LanguageContext.tsx:49 -msgid "Swedish" +msgid "Slovenian" msgstr "" #: src/contexts/LanguageContext.tsx:50 -msgid "Thai" +msgid "Swedish" msgstr "" #: src/contexts/LanguageContext.tsx:51 -msgid "Turkish" +msgid "Thai" msgstr "" #: src/contexts/LanguageContext.tsx:52 -msgid "Ukrainian" +msgid "Turkish" msgstr "" #: src/contexts/LanguageContext.tsx:53 -msgid "Vietnamese" +msgid "Ukrainian" msgstr "" #: src/contexts/LanguageContext.tsx:54 -msgid "Chinese (Simplified)" +msgid "Vietnamese" msgstr "" #: src/contexts/LanguageContext.tsx:55 +msgid "Chinese (Simplified)" +msgstr "" + +#: src/contexts/LanguageContext.tsx:56 msgid "Chinese (Traditional)" msgstr "" +#: src/defaults/actions.tsx:18 +msgid "Go to the InvenTree dashboard" +msgstr "" + #: src/defaults/actions.tsx:18 #: src/defaults/links.tsx:27 #: src/defaults/menuItems.tsx:9 -msgid "Home" -msgstr "" +#~ msgid "Home" +#~ msgstr "Home" #: src/defaults/actions.tsx:25 -#: src/defaults/links.tsx:28 -#: src/defaults/menuItems.tsx:28 -#: src/pages/Index/Dashboard.tsx:19 -#: src/pages/Index/Settings/UserSettings.tsx:46 -msgid "Dashboard" -msgstr "" - -#: src/defaults/actions.tsx:26 -msgid "Go to the InvenTree dashboard" -msgstr "" - -#: src/defaults/actions.tsx:33 msgid "Visit the documentation to learn more about InvenTree" msgstr "" -#: src/defaults/actions.tsx:39 -#: src/defaults/links.tsx:98 -#: src/defaults/links.tsx:128 +#: src/defaults/actions.tsx:31 +#: src/defaults/links.tsx:92 +#: src/defaults/links.tsx:124 msgid "About InvenTree" msgstr "" -#: src/defaults/actions.tsx:40 -#: src/defaults/links.tsx:129 +#: src/defaults/actions.tsx:32 msgid "About the InvenTree org" msgstr "" -#: src/defaults/actions.tsx:46 +#: src/defaults/actions.tsx:38 msgid "Server Information" msgstr "" -#: src/defaults/actions.tsx:47 -#: src/defaults/links.tsx:123 +#: src/defaults/actions.tsx:39 +#: src/defaults/links.tsx:118 msgid "About this Inventree instance" msgstr "" -#: src/defaults/actions.tsx:53 -#: src/defaults/links.tsx:111 +#: src/defaults/actions.tsx:45 +#: src/defaults/links.tsx:105 +#: src/defaults/links.tsx:131 msgid "License Information" msgstr "" -#: src/defaults/actions.tsx:54 -#: src/defaults/links.tsx:135 +#: src/defaults/actions.tsx:46 msgid "Licenses for dependencies of the service" msgstr "" -#: src/defaults/actions.tsx:61 +#: src/defaults/actions.tsx:52 +msgid "Open Navigation" +msgstr "" + +#: src/defaults/actions.tsx:53 msgid "Open the main navigation menu" msgstr "" -#: src/defaults/actions.tsx:72 +#: src/defaults/actions.tsx:64 msgid "Go to the Admin Center" msgstr "" -#: src/defaults/dashboardItems.tsx:15 -msgid "Subscribed Parts" -msgstr "" - -#: src/defaults/dashboardItems.tsx:22 -msgid "Subscribed Categories" -msgstr "" - #: src/defaults/dashboardItems.tsx:29 -msgid "Latest Parts" -msgstr "" +#~ msgid "Latest Parts" +#~ msgstr "Latest Parts" #: src/defaults/dashboardItems.tsx:36 -msgid "BOM Waiting Validation" -msgstr "" +#~ msgid "BOM Waiting Validation" +#~ msgstr "BOM Waiting Validation" #: src/defaults/dashboardItems.tsx:43 -msgid "Recently Updated" -msgstr "" - -#: src/defaults/dashboardItems.tsx:50 -#: src/tables/part/PartTable.tsx:238 -msgid "Low Stock" -msgstr "" +#~ msgid "Recently Updated" +#~ msgstr "Recently Updated" #: src/defaults/dashboardItems.tsx:57 -msgid "Depleted Stock" -msgstr "" +#~ msgid "Depleted Stock" +#~ msgstr "Depleted Stock" #: src/defaults/dashboardItems.tsx:64 -msgid "Required for Build Orders" -msgstr "" +#~ msgid "Required for Build Orders" +#~ msgstr "Required for Build Orders" #: src/defaults/dashboardItems.tsx:71 -msgid "Expired Stock" -msgstr "" +#~ msgid "Expired Stock" +#~ msgstr "Expired Stock" #: src/defaults/dashboardItems.tsx:78 -msgid "Stale Stock" -msgstr "" +#~ msgid "Stale Stock" +#~ msgstr "Stale Stock" #: src/defaults/dashboardItems.tsx:85 -msgid "Build Orders In Progress" -msgstr "" - -#: src/defaults/dashboardItems.tsx:92 -msgid "Overdue Build Orders" -msgstr "" +#~ msgid "Build Orders In Progress" +#~ msgstr "Build Orders In Progress" #: src/defaults/dashboardItems.tsx:99 -msgid "Outstanding Purchase Orders" -msgstr "" - -#: src/defaults/dashboardItems.tsx:106 -msgid "Overdue Purchase Orders" -msgstr "" +#~ msgid "Outstanding Purchase Orders" +#~ msgstr "Outstanding Purchase Orders" #: src/defaults/dashboardItems.tsx:113 -msgid "Outstanding Sales Orders" -msgstr "" - -#: src/defaults/dashboardItems.tsx:120 -msgid "Overdue Sales Orders" -msgstr "" +#~ msgid "Outstanding Sales Orders" +#~ msgstr "Outstanding Sales Orders" #: src/defaults/dashboardItems.tsx:127 -msgid "Current News" -msgstr "" +#~ msgid "Current News" +#~ msgstr "Current News" #: src/defaults/defaultHostList.tsx:8 #~ msgid "InvenTree Demo" @@ -2490,98 +3031,81 @@ msgstr "" #~ msgid "Local Server" #~ msgstr "Local Server" -#: src/defaults/links.tsx:12 -#: src/pages/company/CompanyDetail.tsx:96 -msgid "Website" -msgstr "" - #: src/defaults/links.tsx:17 -msgid "GitHub" -msgstr "" +#~ msgid "GitHub" +#~ msgstr "GitHub" #: src/defaults/links.tsx:22 -msgid "Demo" -msgstr "" - -#: src/defaults/links.tsx:33 -#: src/defaults/menuItems.tsx:48 -#: src/pages/company/ManufacturerDetail.tsx:9 -#: src/pages/company/ManufacturerPartDetail.tsx:263 -#: src/pages/company/SupplierDetail.tsx:9 -#: src/pages/company/SupplierPartDetail.tsx:347 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:483 -#: src/pages/purchasing/PurchasingIndex.tsx:60 -msgid "Purchasing" -msgstr "" - -#: src/defaults/links.tsx:37 -#: src/defaults/menuItems.tsx:53 -#: src/pages/company/CustomerDetail.tsx:9 -#: src/pages/sales/ReturnOrderDetail.tsx:474 -#: src/pages/sales/SalesIndex.tsx:53 -#: src/pages/sales/SalesOrderDetail.tsx:525 -msgid "Sales" -msgstr "" +#~ msgid "Demo" +#~ msgstr "Demo" #: src/defaults/links.tsx:41 #: src/defaults/menuItems.tsx:71 #: src/pages/Index/Playground.tsx:217 -msgid "Playground" -msgstr "" +#~ msgid "Playground" +#~ msgstr "Playground" -#: src/defaults/links.tsx:55 -msgid "Getting Started" -msgstr "" - -#: src/defaults/links.tsx:56 -msgid "Getting started with InvenTree" -msgstr "" - -#: src/defaults/links.tsx:62 +#: src/defaults/links.tsx:45 msgid "API" msgstr "" -#: src/defaults/links.tsx:63 +#: src/defaults/links.tsx:48 msgid "InvenTree API documentation" msgstr "" -#: src/defaults/links.tsx:68 +#: src/defaults/links.tsx:52 msgid "Developer Manual" msgstr "" -#: src/defaults/links.tsx:69 +#: src/defaults/links.tsx:55 msgid "InvenTree developer manual" msgstr "" -#: src/defaults/links.tsx:74 +#: src/defaults/links.tsx:59 msgid "FAQ" msgstr "" -#: src/defaults/links.tsx:75 +#: src/defaults/links.tsx:62 msgid "Frequently asked questions" msgstr "" +#: src/defaults/links.tsx:66 +msgid "GitHub Repository" +msgstr "" + +#: src/defaults/links.tsx:69 +msgid "InvenTree source code on GitHub" +msgstr "" + #: src/defaults/links.tsx:76 #~ msgid "Instance" #~ msgstr "Instance" +#: src/defaults/links.tsx:79 +#: src/defaults/links.tsx:117 +msgid "System Information" +msgstr "" + #: src/defaults/links.tsx:83 #~ msgid "InvenTree" #~ msgstr "InvenTree" -#: src/defaults/links.tsx:85 -#: src/defaults/links.tsx:122 -msgid "System Information" -msgstr "" - #: src/defaults/links.tsx:117 #~ msgid "Licenses for packages used by InvenTree" #~ msgstr "Licenses for packages used by InvenTree" -#: src/defaults/links.tsx:134 -msgid "Licenses" +#: src/defaults/links.tsx:125 +msgid "About the InvenTree Project" msgstr "" +#: src/defaults/links.tsx:132 +msgid "Licenses for dependencies of the InvenTree software" +msgstr "" + +#: src/defaults/links.tsx:134 +#~ msgid "Licenses" +#~ msgstr "Licenses" + #: src/defaults/menuItems.tsx:7 #~ msgid "Open sourcea" #~ msgstr "Open sourcea" @@ -2607,8 +3131,8 @@ msgstr "" #~ msgstr "Profile page" #: src/defaults/menuItems.tsx:17 -msgid "User attributes and design settings." -msgstr "" +#~ msgid "User attributes and design settings." +#~ msgstr "User attributes and design settings." #: src/defaults/menuItems.tsx:21 #~ msgid "Free for everyone" @@ -2619,8 +3143,8 @@ msgstr "" #~ msgstr "The fluid of Smeargle’s tail secretions changes" #: src/defaults/menuItems.tsx:23 -msgid "View for interactive scanning and multiple actions." -msgstr "" +#~ msgid "View for interactive scanning and multiple actions." +#~ msgstr "View for interactive scanning and multiple actions." #: src/defaults/menuItems.tsx:24 #~ msgid "The fluid of Smeargle’s tail secretions changes in the intensity" @@ -2698,51 +3222,130 @@ msgstr "" #~ msgid "Are you sure you want to delete this attachment?" #~ msgstr "Are you sure you want to delete this attachment?" -#: src/forms/BuildForms.tsx:158 -msgid "Next serial number" +#: src/forms/BuildForms.tsx:248 +#~ msgid "Remove output" +#~ msgstr "Remove output" + +#: src/forms/BuildForms.tsx:269 +#: src/tables/build/BuildAllocatedStockTable.tsx:147 +#: src/tables/build/BuildOrderTestTable.tsx:177 +#: src/tables/build/BuildOrderTestTable.tsx:201 +#: src/tables/build/BuildOutputTable.tsx:460 +msgid "Build Output" msgstr "" -#: src/forms/BuildForms.tsx:162 -msgid "Latest serial number" +#: src/forms/BuildForms.tsx:269 +#: src/forms/BuildForms.tsx:337 +#: src/forms/BuildForms.tsx:385 +#: src/tables/build/BuildLineTable.tsx:89 +msgid "Batch" msgstr "" -#: src/forms/BuildForms.tsx:234 -msgid "Remove output" +#: src/forms/BuildForms.tsx:269 +#: src/forms/BuildForms.tsx:337 +#: src/forms/BuildForms.tsx:385 +#: src/forms/PurchaseOrderForms.tsx:603 +#: src/pages/build/BuildDetail.tsx:104 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:142 +#: src/pages/sales/ReturnOrderDetail.tsx:113 +#: src/pages/sales/SalesOrderDetail.tsx:122 +#: src/tables/build/BuildOrderTable.tsx:125 +#: src/tables/machine/MachineListTable.tsx:336 +#: src/tables/part/PartPurchaseOrdersTable.tsx:37 +#: src/tables/purchasing/PurchaseOrderTable.tsx:58 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:157 +#: src/tables/sales/ReturnOrderTable.tsx:56 +#: src/tables/sales/SalesOrderTable.tsx:56 +#: src/tables/settings/CustomStateTable.tsx:57 +#: src/tables/settings/ImportSessionTable.tsx:114 +#: src/tables/stock/StockItemTable.tsx:298 +#: src/tables/stock/StockTrackingTable.tsx:56 +msgid "Status" msgstr "" -#: src/forms/BuildForms.tsx:316 +#: src/forms/BuildForms.tsx:289 msgid "Complete Build Outputs" msgstr "" -#: src/forms/BuildForms.tsx:320 +#: src/forms/BuildForms.tsx:292 msgid "Build outputs have been completed" msgstr "" -#: src/forms/BuildForms.tsx:389 +#: src/forms/BuildForms.tsx:353 msgid "Scrap Build Outputs" msgstr "" -#: src/forms/BuildForms.tsx:393 +#: src/forms/BuildForms.tsx:356 msgid "Build outputs have been scrapped" msgstr "" -#: src/forms/BuildForms.tsx:425 -#: src/forms/BuildForms.tsx:449 +#: src/forms/BuildForms.tsx:393 msgid "Cancel Build Outputs" msgstr "" -#: src/forms/BuildForms.tsx:426 -msgid "Selected build outputs will be deleted" +#: src/forms/BuildForms.tsx:396 +msgid "Build outputs have been cancelled" msgstr "" -#: src/forms/BuildForms.tsx:453 -msgid "Build outputs have been cancelled" +#: src/forms/BuildForms.tsx:408 +#~ msgid "Selected build outputs will be deleted" +#~ msgstr "Selected build outputs will be deleted" + +#: src/forms/BuildForms.tsx:470 +#~ msgid "Remove line" +#~ msgstr "Remove line" + +#: src/forms/BuildForms.tsx:515 +#: src/forms/SalesOrderForms.tsx:248 +#: src/tables/build/BuildLineTable.tsx:174 +#: src/tables/sales/SalesOrderLineItemTable.tsx:276 +#: src/tables/stock/StockItemTable.tsx:309 +msgid "Allocated" +msgstr "" + +#: src/forms/BuildForms.tsx:545 +#: src/forms/SalesOrderForms.tsx:239 +#: src/pages/build/BuildDetail.tsx:208 +msgid "Source Location" +msgstr "" + +#: src/forms/BuildForms.tsx:546 +#: src/forms/SalesOrderForms.tsx:240 +msgid "Select the source location for the stock allocation" +msgstr "" + +#: src/forms/BuildForms.tsx:566 +#: src/forms/SalesOrderForms.tsx:274 +#: src/tables/build/BuildLineTable.tsx:442 +#: src/tables/build/BuildLineTable.tsx:569 +#: src/tables/build/BuildLineTable.tsx:642 +#: src/tables/sales/SalesOrderLineItemTable.tsx:302 +#: src/tables/sales/SalesOrderLineItemTable.tsx:326 +msgid "Allocate Stock" +msgstr "" + +#: src/forms/BuildForms.tsx:569 +#: src/forms/SalesOrderForms.tsx:279 +msgid "Stock items allocated" msgstr "" #: src/forms/CompanyForms.tsx:150 #~ msgid "Company updated" #~ msgstr "Company updated" +#: src/forms/PartForms.tsx:67 +#: src/forms/PartForms.tsx:154 +#: src/pages/part/CategoryDetail.tsx:117 +#: src/pages/part/PartDetail.tsx:384 +#: src/tables/part/PartCategoryTable.tsx:90 +#: src/tables/part/PartTable.tsx:294 +msgid "Subscribed" +msgstr "" + +#: src/forms/PartForms.tsx:68 +msgid "Subscribe to notifications for this part" +msgstr "" + #: src/forms/PartForms.tsx:106 #~ msgid "Create Part" #~ msgstr "Create Part" @@ -2751,191 +3354,190 @@ msgstr "" #~ msgid "Part created" #~ msgstr "Part created" -#: src/forms/PartForms.tsx:124 -msgid "Parent part category" -msgstr "" - #: src/forms/PartForms.tsx:129 #~ msgid "Part updated" #~ msgstr "Part updated" -#: src/forms/PurchaseOrderForms.tsx:300 +#: src/forms/PartForms.tsx:140 +msgid "Parent part category" +msgstr "" + +#: src/forms/PartForms.tsx:155 +msgid "Subscribe to notifications for this category" +msgstr "" + +#: src/forms/PurchaseOrderForms.tsx:314 +msgid "Assign Batch Code and Serial Numbers" +msgstr "" + +#: src/forms/PurchaseOrderForms.tsx:316 +msgid "Assign Batch Code" +msgstr "" + +#: src/forms/PurchaseOrderForms.tsx:336 msgid "Choose Location" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:308 +#: src/forms/PurchaseOrderForms.tsx:344 msgid "Item Destination selected" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:317 +#: src/forms/PurchaseOrderForms.tsx:353 msgid "Part category default location selected" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:327 +#: src/forms/PurchaseOrderForms.tsx:363 msgid "Received stock location selected" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:332 +#: src/forms/PurchaseOrderForms.tsx:368 msgid "Default location selected" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:343 -#: src/forms/PurchaseOrderForms.tsx:435 -msgid "Scan Barcode" -msgstr "" +#: src/forms/PurchaseOrderForms.tsx:421 +#~ msgid "Assign Batch Code{0}" +#~ msgstr "Assign Batch Code{0}" -#: src/forms/PurchaseOrderForms.tsx:388 +#: src/forms/PurchaseOrderForms.tsx:427 msgid "Set Location" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:396 -msgid "Assign Batch Code{0}" -msgstr "" - -#: src/forms/PurchaseOrderForms.tsx:405 -#: src/forms/StockForms.tsx:420 +#: src/forms/PurchaseOrderForms.tsx:442 +#: src/forms/StockForms.tsx:539 msgid "Adjust Packaging" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:412 -msgid "Change Status" -msgstr "" - -#: src/forms/PurchaseOrderForms.tsx:418 -msgid "Add Note" -msgstr "" - #: src/forms/PurchaseOrderForms.tsx:444 #: src/forms/StockForms.tsx:428 -msgid "Remove item from list" +#~ msgid "Remove item from list" +#~ msgstr "Remove item from list" + +#: src/forms/PurchaseOrderForms.tsx:450 +msgid "Change Status" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:471 -#: src/forms/StockForms.tsx:499 -#: src/forms/StockForms.tsx:533 -#: src/forms/StockForms.tsx:562 -#: src/forms/StockForms.tsx:590 -#: src/forms/StockForms.tsx:621 -#: src/forms/StockForms.tsx:656 -#: src/forms/StockForms.tsx:698 -#: src/forms/StockForms.tsx:734 -#: src/pages/stock/StockDetail.tsx:181 -#: src/tables/ColumnRenderers.tsx:49 -#: src/tables/stock/StockTrackingTable.tsx:85 +#: src/forms/PurchaseOrderForms.tsx:456 +msgid "Add Note" +msgstr "" + +#: src/forms/PurchaseOrderForms.tsx:503 +#: src/forms/StockForms.tsx:614 +#: src/forms/StockForms.tsx:651 +#: src/forms/StockForms.tsx:677 +#: src/forms/StockForms.tsx:705 +#: src/forms/StockForms.tsx:736 +#: src/forms/StockForms.tsx:771 +#: src/forms/StockForms.tsx:813 +#: src/forms/StockForms.tsx:851 +#: src/pages/stock/StockDetail.tsx:202 +#: src/tables/ColumnRenderers.tsx:60 +#: src/tables/stock/StockTrackingTable.tsx:89 msgid "Location" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:486 +#: src/forms/PurchaseOrderForms.tsx:518 msgid "Store at default location" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:499 +#: src/forms/PurchaseOrderForms.tsx:533 msgid "Store at line item destination" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:509 +#: src/forms/PurchaseOrderForms.tsx:545 msgid "Store with already received stock" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:524 -#: src/pages/build/BuildDetail.tsx:219 -#: src/pages/stock/StockDetail.tsx:162 -#: src/pages/stock/StockDetail.tsx:599 -#: src/tables/build/BuildAllocatedStockTable.tsx:109 -#: src/tables/build/BuildOrderTestTable.tsx:188 -#: src/tables/sales/SalesOrderAllocationTable.tsx:87 +#: src/forms/PurchaseOrderForms.tsx:566 +#: src/pages/build/BuildDetail.tsx:222 +#: src/pages/stock/StockDetail.tsx:185 +#: src/pages/stock/StockDetail.tsx:793 +#: src/tables/build/BuildAllocatedStockTable.tsx:130 +#: src/tables/build/BuildOrderTestTable.tsx:189 +#: src/tables/build/BuildOutputTable.tsx:86 +#: src/tables/sales/SalesOrderAllocationTable.tsx:113 msgid "Batch Code" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:535 -msgid "Serial numbers" +#: src/forms/PurchaseOrderForms.tsx:566 +#~ msgid "Serial numbers" +#~ msgstr "Serial numbers" + +#: src/forms/PurchaseOrderForms.tsx:567 +msgid "Enter batch code for received items" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:544 -#: src/forms/StockForms.tsx:443 -#: src/pages/company/SupplierPartDetail.tsx:156 -#: src/pages/company/SupplierPartDetail.tsx:207 -#: src/pages/stock/StockDetail.tsx:244 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:192 +#: src/forms/PurchaseOrderForms.tsx:579 +#: src/forms/StockForms.tsx:152 +msgid "Serial Numbers" +msgstr "" + +#: src/forms/PurchaseOrderForms.tsx:580 +msgid "Enter serial numbers for received items" +msgstr "" + +#: src/forms/PurchaseOrderForms.tsx:590 +#: src/forms/StockForms.tsx:556 +#: src/pages/company/SupplierPartDetail.tsx:168 +#: src/pages/company/SupplierPartDetail.tsx:219 +#: src/pages/stock/StockDetail.tsx:320 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:198 msgid "Packaging" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:556 -#: src/pages/build/BuildDetail.tsx:109 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:148 -#: src/pages/sales/ReturnOrderDetail.tsx:121 -#: src/pages/sales/SalesOrderDetail.tsx:127 -#: src/tables/build/BuildOrderTable.tsx:122 -#: src/tables/machine/MachineListTable.tsx:335 -#: src/tables/part/PartPurchaseOrdersTable.tsx:37 -#: src/tables/purchasing/PurchaseOrderTable.tsx:55 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:132 -#: src/tables/sales/ReturnOrderTable.tsx:46 -#: src/tables/sales/SalesOrderTable.tsx:53 -#: src/tables/settings/ImportSessionTable.tsx:115 -#: src/tables/stock/StockItemTable.tsx:294 -#: src/tables/stock/StockTrackingTable.tsx:52 -msgid "Status" -msgstr "" - -#: src/forms/PurchaseOrderForms.tsx:564 -#: src/pages/company/SupplierPartDetail.tsx:110 -#: src/tables/ColumnRenderers.tsx:132 +#: src/forms/PurchaseOrderForms.tsx:612 +#: src/pages/company/SupplierPartDetail.tsx:115 +#: src/tables/ColumnRenderers.tsx:143 msgid "Note" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/pages/company/SupplierPartDetail.tsx:128 -#: src/tables/purchasing/SupplierPriceBreakTable.tsx:57 -msgid "SKU" -msgstr "" - -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/tables/part/PartPurchaseOrdersTable.tsx:120 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:178 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:127 -msgid "Received" -msgstr "" - -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/forms/StockForms.tsx:499 -#: src/forms/StockForms.tsx:533 -#: src/forms/StockForms.tsx:562 -#: src/forms/StockForms.tsx:590 -#: src/forms/StockForms.tsx:621 -#: src/forms/StockForms.tsx:656 -#: src/forms/StockForms.tsx:698 -#: src/forms/StockForms.tsx:734 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:413 -#: src/tables/RowActions.tsx:113 -msgid "Actions" -msgstr "" - -#: src/forms/PurchaseOrderForms.tsx:655 -msgid "Receive Line Items" -msgstr "" - #: src/forms/PurchaseOrderForms.tsx:658 #~ msgid "Receive line items" #~ msgstr "Receive line items" -#: src/forms/StockForms.tsx:104 -msgid "Add given quantity as packs instead of individual items" +#: src/forms/PurchaseOrderForms.tsx:689 +#: src/pages/company/SupplierPartDetail.tsx:133 +#: src/tables/purchasing/SupplierPriceBreakTable.tsx:57 +msgid "SKU" +msgstr "" + +#: src/forms/PurchaseOrderForms.tsx:689 +#: src/tables/part/PartPurchaseOrdersTable.tsx:126 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:184 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:247 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:152 +msgid "Received" +msgstr "" + +#: src/forms/PurchaseOrderForms.tsx:701 +msgid "Receive Line Items" +msgstr "" + +#: src/forms/ReturnOrderForms.tsx:201 +msgid "Receive Items" +msgstr "" + +#: src/forms/ReturnOrderForms.tsx:208 +msgid "Item received into stock" +msgstr "" + +#: src/forms/StockForms.tsx:80 +#: src/hooks/UsePlaceholder.tsx:57 +msgid "Next serial number" msgstr "" #: src/forms/StockForms.tsx:110 #~ msgid "Create Stock Item" #~ msgstr "Create Stock Item" -#: src/forms/StockForms.tsx:117 +#: src/forms/StockForms.tsx:131 +msgid "Add given quantity as packs instead of individual items" +msgstr "" + +#: src/forms/StockForms.tsx:145 msgid "Enter initial quantity for this stock item" msgstr "" -#: src/forms/StockForms.tsx:124 -msgid "Serial Numbers" -msgstr "" - -#: src/forms/StockForms.tsx:125 +#: src/forms/StockForms.tsx:154 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" @@ -2943,82 +3545,102 @@ msgstr "" #~ msgid "Stock item updated" #~ msgstr "Stock item updated" -#: src/forms/StockForms.tsx:179 -#: src/pages/stock/StockDetail.tsx:434 -#: src/tables/stock/StockItemTable.tsx:417 -#: src/tables/stock/StockItemTable.tsx:535 +#: src/forms/StockForms.tsx:169 +#: src/pages/stock/StockDetail.tsx:131 +msgid "Stock Status" +msgstr "" + +#: src/forms/StockForms.tsx:218 +#: src/pages/stock/StockDetail.tsx:554 +#: src/tables/stock/StockItemTable.tsx:421 +#: src/tables/stock/StockItemTable.tsx:541 msgid "Add Stock Item" msgstr "" -#: src/forms/StockForms.tsx:362 +#: src/forms/StockForms.tsx:262 +msgid "Select the part to install" +msgstr "" + +#: src/forms/StockForms.tsx:480 msgid "Loading..." msgstr "" -#: src/forms/StockForms.tsx:408 +#: src/forms/StockForms.tsx:527 msgid "Move to default location" msgstr "" -#: src/forms/StockForms.tsx:499 -#: src/forms/StockForms.tsx:533 -#: src/forms/StockForms.tsx:562 -#: src/forms/StockForms.tsx:590 -#: src/forms/StockForms.tsx:621 -#: src/forms/StockForms.tsx:656 -#: src/forms/StockForms.tsx:698 -#: src/forms/StockForms.tsx:734 -#: src/pages/part/PartDetail.tsx:230 -#: src/pages/part/PartDetail.tsx:843 -#: src/tables/stock/StockItemTable.tsx:325 +#: src/forms/StockForms.tsx:614 +#: src/forms/StockForms.tsx:651 +#: src/forms/StockForms.tsx:677 +#: src/forms/StockForms.tsx:705 +#: src/forms/StockForms.tsx:736 +#: src/forms/StockForms.tsx:771 +#: src/forms/StockForms.tsx:813 +#: src/forms/StockForms.tsx:851 +#: src/pages/part/PartDetail.tsx:251 +#: src/pages/part/PartDetail.tsx:875 +#: src/tables/stock/StockItemTable.tsx:329 msgid "In Stock" msgstr "" -#: src/forms/StockForms.tsx:499 +#: src/forms/StockForms.tsx:614 msgid "Move" msgstr "" -#: src/forms/StockForms.tsx:562 -#: src/pages/stock/StockDetail.tsx:518 -#: src/tables/stock/StockItemTestResultTable.tsx:328 +#: src/forms/StockForms.tsx:677 +#: src/pages/stock/StockDetail.tsx:681 +#: src/tables/stock/StockItemTestResultTable.tsx:346 msgid "Add" msgstr "" -#: src/forms/StockForms.tsx:590 -#: src/pages/Index/Scan.tsx:266 -#: src/pages/stock/StockDetail.tsx:508 +#: src/forms/StockForms.tsx:705 +#: src/pages/Index/Scan.tsx:280 +#: src/pages/stock/StockDetail.tsx:670 msgid "Count" msgstr "" -#: src/forms/StockForms.tsx:835 +#: src/forms/StockForms.tsx:953 +#: src/pages/stock/StockDetail.tsx:682 +#: src/tables/stock/StockItemTable.tsx:454 msgid "Add Stock" msgstr "" -#: src/forms/StockForms.tsx:844 +#: src/forms/StockForms.tsx:962 +#: src/pages/stock/StockDetail.tsx:691 +#: src/tables/stock/StockItemTable.tsx:463 msgid "Remove Stock" msgstr "" -#: src/forms/StockForms.tsx:853 -#: src/pages/part/PartDetail.tsx:1017 +#: src/forms/StockForms.tsx:971 +#: src/pages/part/PartDetail.tsx:1039 +#: src/pages/stock/StockDetail.tsx:712 +#: src/tables/stock/StockItemTable.tsx:483 msgid "Transfer Stock" msgstr "" -#: src/forms/StockForms.tsx:862 -#: src/pages/part/PartDetail.tsx:1006 +#: src/forms/StockForms.tsx:980 +#: src/pages/part/PartDetail.tsx:1028 +#: src/pages/stock/LocationDetail.tsx:314 +#: src/pages/stock/LocationDetail.tsx:318 +#: src/tables/stock/StockItemTable.tsx:472 +#: src/tables/stock/StockItemTable.tsx:476 msgid "Count Stock" msgstr "" -#: src/forms/StockForms.tsx:871 +#: src/forms/StockForms.tsx:989 msgid "Change Stock Status" msgstr "" -#: src/forms/StockForms.tsx:880 +#: src/forms/StockForms.tsx:998 msgid "Merge Stock" msgstr "" -#: src/forms/StockForms.tsx:899 +#: src/forms/StockForms.tsx:1017 +#: src/tables/stock/StockItemTable.tsx:530 msgid "Delete Stock Items" msgstr "" -#: src/forms/StockForms.tsx:906 +#: src/forms/StockForms.tsx:1024 msgid "Parent stock location" msgstr "" @@ -3042,11 +3664,11 @@ msgstr "" #~ msgid "You have been logged out" #~ msgstr "You have been logged out" -#: src/functions/auth.tsx:117 +#: src/functions/auth.tsx:128 msgid "Logged Out" msgstr "" -#: src/functions/auth.tsx:118 +#: src/functions/auth.tsx:129 msgid "Successfully logged out" msgstr "" @@ -3062,20 +3684,20 @@ msgstr "" #~ msgid "Found an existing login - welcome back!" #~ msgstr "Found an existing login - welcome back!" -#: src/functions/auth.tsx:156 +#: src/functions/auth.tsx:167 msgid "Check your inbox for a reset link. This only works if you have an account. Check in spam too." msgstr "" -#: src/functions/auth.tsx:163 +#: src/functions/auth.tsx:174 #: src/pages/Auth/Set-Password.tsx:39 msgid "Reset failed" msgstr "" -#: src/functions/auth.tsx:194 +#: src/functions/auth.tsx:205 msgid "Logged In" msgstr "" -#: src/functions/auth.tsx:195 +#: src/functions/auth.tsx:206 msgid "Successfully logged in" msgstr "" @@ -3095,30 +3717,38 @@ msgstr "" #~ msgid "method parameter not supplied" #~ msgstr "method parameter not supplied" -#: src/functions/notifications.tsx:10 +#: src/functions/notifications.tsx:12 msgid "Not implemented" msgstr "" -#: src/functions/notifications.tsx:11 +#: src/functions/notifications.tsx:13 msgid "This feature is not yet implemented" msgstr "" -#: src/functions/notifications.tsx:21 -msgid "Permission denied" -msgstr "" +#: src/functions/notifications.tsx:24 +#~ msgid "Permission denied" +#~ msgstr "Permission denied" -#: src/functions/notifications.tsx:22 +#: src/functions/notifications.tsx:25 msgid "You do not have permission to perform this action" msgstr "" -#: src/functions/notifications.tsx:33 +#: src/functions/notifications.tsx:36 msgid "Invalid Return Code" msgstr "" -#: src/functions/notifications.tsx:34 +#: src/functions/notifications.tsx:37 msgid "Server returned status {returnCode}" msgstr "" +#: src/functions/notifications.tsx:47 +msgid "Timeout" +msgstr "" + +#: src/functions/notifications.tsx:48 +msgid "The request timed out" +msgstr "" + #: src/hooks/UseForm.tsx:88 msgid "Item Created" msgstr "" @@ -3135,20 +3765,24 @@ msgstr "" msgid "Are you sure you want to delete this item?" msgstr "" +#: src/hooks/UsePlaceholder.tsx:59 +msgid "Latest serial number" +msgstr "" + #: src/pages/Auth/Logged-In.tsx:22 msgid "Checking if you are already logged in" msgstr "" -#: src/pages/Auth/Login.tsx:31 -#: src/pages/Index/Scan.tsx:329 +#: src/pages/Auth/Login.tsx:35 +#: src/pages/Index/Scan.tsx:343 msgid "No selection" msgstr "" -#: src/pages/Auth/Login.tsx:87 +#: src/pages/Auth/Login.tsx:91 msgid "Welcome, log in below" msgstr "" -#: src/pages/Auth/Login.tsx:89 +#: src/pages/Auth/Login.tsx:93 msgid "Register below" msgstr "" @@ -3162,8 +3796,8 @@ msgstr "" #: src/pages/Auth/Reset.tsx:41 #: src/pages/Auth/Set-Password.tsx:112 -msgid "Send mail" -msgstr "" +#~ msgid "Send mail" +#~ msgstr "Send mail" #: src/pages/Auth/Set-Password.tsx:30 msgid "Token invalid" @@ -3174,22 +3808,22 @@ msgid "You need to provide a valid token to set a new password. Check your inbox msgstr "" #: src/pages/Auth/Set-Password.tsx:49 -msgid "No token provided" -msgstr "" +#~ msgid "No token provided" +#~ msgstr "No token provided" #: src/pages/Auth/Set-Password.tsx:50 -msgid "You need to provide a token to set a new password. Check your inbox for a reset link." -msgstr "" +#~ msgid "You need to provide a token to set a new password. Check your inbox for a reset link." +#~ msgstr "You need to provide a token to set a new password. Check your inbox for a reset link." -#: src/pages/Auth/Set-Password.tsx:73 +#: src/pages/Auth/Set-Password.tsx:68 msgid "Password set" msgstr "" -#: src/pages/Auth/Set-Password.tsx:74 +#: src/pages/Auth/Set-Password.tsx:69 msgid "The password was set successfully. You can now login with your new password" msgstr "" -#: src/pages/Auth/Set-Password.tsx:101 +#: src/pages/Auth/Set-Password.tsx:96 msgid "Set new password" msgstr "" @@ -3206,20 +3840,20 @@ msgstr "" #~ msgstr "Sorry, an unexpected error has occurred." #: src/pages/Index/Dashboard.tsx:22 -msgid "Autoupdate" -msgstr "" +#~ msgid "Autoupdate" +#~ msgstr "Autoupdate" #: src/pages/Index/Dashboard.tsx:26 -msgid "This page is a replacement for the old start page with the same information. This page will be deprecated and replaced by the home page." -msgstr "" +#~ msgid "This page is a replacement for the old start page with the same information. This page will be deprecated and replaced by the home page." +#~ msgstr "This page is a replacement for the old start page with the same information. This page will be deprecated and replaced by the home page." #: src/pages/Index/Home.tsx:58 -msgid "Welcome to your Dashboard{0}" -msgstr "" +#~ msgid "Welcome to your Dashboard{0}" +#~ msgstr "Welcome to your Dashboard{0}" #: src/pages/Index/Playground.tsx:222 -msgid "This page is a showcase for the possibilities of Platform UI." -msgstr "" +#~ msgid "This page is a showcase for the possibilities of Platform UI." +#~ msgstr "This page is a showcase for the possibilities of Platform UI." #: src/pages/Index/Profile/Profile.tsx:30 #: src/pages/Index/Profile/Profile.tsx:141 @@ -3365,125 +3999,190 @@ msgstr "" msgid "Image Barcode" msgstr "" -#: src/pages/Index/Scan.tsx:247 +#: src/pages/Index/Scan.tsx:261 msgid "Selected elements are not known" msgstr "" -#: src/pages/Index/Scan.tsx:254 +#: src/pages/Index/Scan.tsx:268 msgid "Multiple object types selected" msgstr "" -#: src/pages/Index/Scan.tsx:261 +#: src/pages/Index/Scan.tsx:275 msgid "Actions for {0}" msgstr "" -#: src/pages/Index/Scan.tsx:282 +#: src/pages/Index/Scan.tsx:296 msgid "Scan Page" msgstr "" -#: src/pages/Index/Scan.tsx:285 +#: src/pages/Index/Scan.tsx:299 msgid "This page can be used for continuously scanning items and taking actions on them." msgstr "" -#: src/pages/Index/Scan.tsx:292 +#: src/pages/Index/Scan.tsx:306 msgid "Toggle Fullscreen" msgstr "" -#: src/pages/Index/Scan.tsx:305 +#: src/pages/Index/Scan.tsx:319 msgid "Select the input method you want to use to scan items." msgstr "" -#: src/pages/Index/Scan.tsx:307 +#: src/pages/Index/Scan.tsx:321 msgid "Input" msgstr "" -#: src/pages/Index/Scan.tsx:314 +#: src/pages/Index/Scan.tsx:328 msgid "Select input method" msgstr "" -#: src/pages/Index/Scan.tsx:315 +#: src/pages/Index/Scan.tsx:329 msgid "Nothing found" msgstr "" -#: src/pages/Index/Scan.tsx:323 +#: src/pages/Index/Scan.tsx:337 msgid "Depending on the selected parts actions will be shown here. Not all barcode types are supported currently." msgstr "" -#: src/pages/Index/Scan.tsx:325 +#: src/pages/Index/Scan.tsx:339 msgid "Action" msgstr "" -#: src/pages/Index/Scan.tsx:334 +#: src/pages/Index/Scan.tsx:348 msgid "{0} items selected" msgstr "" -#: src/pages/Index/Scan.tsx:337 +#: src/pages/Index/Scan.tsx:351 msgid "General Actions" msgstr "" -#: src/pages/Index/Scan.tsx:351 +#: src/pages/Index/Scan.tsx:365 msgid "Lookup part" msgstr "" -#: src/pages/Index/Scan.tsx:359 +#: src/pages/Index/Scan.tsx:373 msgid "Open Link" msgstr "" -#: src/pages/Index/Scan.tsx:375 +#: src/pages/Index/Scan.tsx:389 msgid "History is locally kept in this browser." msgstr "" -#: src/pages/Index/Scan.tsx:376 +#: src/pages/Index/Scan.tsx:390 msgid "The history is kept in this browser's local storage. So it won't be shared with other users or other devices but is persistent through reloads. You can select items in the history to perform actions on them. To add items, scan/enter them in the Input area." msgstr "" -#: src/pages/Index/Scan.tsx:378 +#: src/pages/Index/Scan.tsx:392 #: src/pages/Notifications.tsx:100 msgid "History" msgstr "" -#: src/pages/Index/Scan.tsx:384 +#: src/pages/Index/Scan.tsx:398 msgid "Delete History" msgstr "" -#: src/pages/Index/Scan.tsx:449 +#: src/pages/Index/Scan.tsx:463 msgid "No history" msgstr "" -#: src/pages/Index/Scan.tsx:467 +#: src/pages/Index/Scan.tsx:481 msgid "Item" msgstr "" -#: src/pages/Index/Scan.tsx:470 +#: src/pages/Index/Scan.tsx:484 msgid "Type" msgstr "" -#: src/pages/Index/Scan.tsx:473 +#: src/pages/Index/Scan.tsx:487 msgid "Source" msgstr "" -#: src/pages/Index/Scan.tsx:476 +#: src/pages/Index/Scan.tsx:490 msgid "Scanned at" msgstr "" -#: src/pages/Index/Scan.tsx:528 +#: src/pages/Index/Scan.tsx:547 msgid "Enter item serial or data" msgstr "" -#: src/pages/Index/Scan.tsx:540 +#: src/pages/Index/Scan.tsx:559 msgid "Add dummy item" msgstr "" +#: src/pages/Index/Scan.tsx:569 +msgid "Start scanning by selecting a camera and pressing the play button." +msgstr "" + +#: src/pages/Index/Scan.tsx:650 +msgid "Error while getting camera" +msgstr "" + +#: src/pages/Index/Scan.tsx:673 +msgid "Error while scanning" +msgstr "" + +#: src/pages/Index/Scan.tsx:687 +msgid "Error while stopping" +msgstr "" + +#: src/pages/Index/Scan.tsx:745 +msgid "Stop scanning" +msgstr "" + +#: src/pages/Index/Scan.tsx:754 +msgid "Start scanning" +msgstr "" + +#: src/pages/Index/Scan.tsx:763 +msgid "Scanning" +msgstr "" + +#: src/pages/Index/Scan.tsx:763 +msgid "Not scanning" +msgstr "" + +#: src/pages/Index/Scan.tsx:775 +msgid "Select Camera" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:28 +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:50 +msgid "Edit User Information" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:32 +msgid "User details updated" +msgstr "" + #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:41 -msgid "Account Details" +msgid "User Details" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:41 +#~ msgid "Account Details" +#~ msgstr "Account Details" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:44 +msgid "User Actions" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:48 +msgid "Edit User" msgstr "" #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:50 -msgid "First name" +#~ msgid "First name" +#~ msgstr "First name" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:54 +msgid "Set Password" msgstr "" #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:55 -msgid "Last name" +#~ msgid "Last name" +#~ msgstr "Last name" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:56 +msgid "Set User Password" msgstr "" #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:58 @@ -3495,15 +4194,28 @@ msgstr "" #~ msgstr "Last name: {0}" #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:67 -msgid "First name:" -msgstr "" +#~ msgid "First name:" +#~ msgstr "First name:" #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:71 -msgid "Last name:" +#~ msgid "Last name:" +#~ msgstr "Last name:" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:73 +msgid "First Name" msgstr "" -#: src/pages/Index/Settings/AccountSettings/DisplaySettingsPanel.tsx:41 -msgid "Use pseudo language" +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:79 +msgid "Last Name" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:85 +msgid "Staff Access" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:93 +#: src/tables/settings/UserTable.tsx:293 +msgid "Superuser" msgstr "" #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:55 @@ -3600,27 +4312,6 @@ msgstr "" msgid "No tokens configured" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:398 -#: src/pages/part/PartDetail.tsx:297 -#: src/tables/bom/UsedInTable.tsx:84 -#: src/tables/build/BuildOrderTable.tsx:110 -#: src/tables/company/CompanyTable.tsx:61 -#: src/tables/company/CompanyTable.tsx:95 -#: src/tables/machine/MachineListTable.tsx:332 -#: src/tables/machine/MachineListTable.tsx:594 -#: src/tables/part/ParametricPartTable.tsx:223 -#: src/tables/part/PartTable.tsx:178 -#: src/tables/part/PartVariantTable.tsx:15 -#: src/tables/plugin/PluginListTable.tsx:149 -#: src/tables/plugin/PluginListTable.tsx:271 -#: src/tables/plugin/PluginListTable.tsx:563 -#: src/tables/purchasing/SupplierPartTable.tsx:98 -#: src/tables/purchasing/SupplierPartTable.tsx:187 -#: src/tables/settings/UserTable.tsx:284 -#: src/tables/stock/StockItemTable.tsx:289 -msgid "Active" -msgstr "" - #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:401 msgid "Expiry" msgstr "" @@ -3630,38 +4321,74 @@ msgid "Last Seen" msgstr "" #: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:65 -msgid "bars" -msgstr "" +#~ msgid "bars" +#~ msgstr "bars" #: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:66 -msgid "oval" -msgstr "" +#~ msgid "oval" +#~ msgstr "oval" #: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:67 -msgid "dots" -msgstr "" +#~ msgid "dots" +#~ msgstr "dots" #: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:81 -msgid "Theme" -msgstr "" +#~ msgid "Theme" +#~ msgstr "Theme" #: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:87 -msgid "Primary color" +#~ msgid "Primary color" +#~ msgstr "Primary color" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:88 +msgid "Bars" msgstr "" -#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:100 +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:89 +msgid "Oval" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:90 +msgid "Dots" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:101 +msgid "Display Settings" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:107 +msgid "Language" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:115 +msgid "Use pseudo language" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:122 +msgid "Color Mode" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:133 +msgid "Highlight color" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:145 +msgid "Example" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:151 msgid "White color" msgstr "" -#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:108 +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:167 msgid "Black color" msgstr "" -#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:116 +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:183 msgid "Border Radius" msgstr "" -#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:132 +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:199 msgid "Loader" msgstr "" @@ -3673,89 +4400,156 @@ msgstr "" #~ msgid "Advanced Amininistrative Options for InvenTree" #~ msgstr "Advanced Amininistrative Options for InvenTree" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:104 +#: src/pages/Index/Settings/AdminCenter/CurrencyManagmentPanel.tsx:27 +#: src/tables/ColumnRenderers.tsx:262 +msgid "Currency" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/CurrencyManagmentPanel.tsx:32 +msgid "Rate" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/CurrencyManagmentPanel.tsx:44 +msgid "Exchange rates updated" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/CurrencyManagmentPanel.tsx:50 +msgid "Exchange rate update error" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/CurrencyManagmentPanel.tsx:62 +msgid "Refresh currency exchange rates" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/CurrencyManagmentPanel.tsx:99 +msgid "Last fetched" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/CurrencyManagmentPanel.tsx:100 +msgid "Base currency" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:115 msgid "Data Import" msgstr "" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:110 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:121 +msgid "Barcode Scans" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:127 msgid "Background Tasks" msgstr "" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:116 -msgid "Error Reports" -msgstr "" - -#: src/pages/Index/Settings/AdminCenter/Index.tsx:122 -msgid "Currencies" -msgstr "" - #: src/pages/Index/Settings/AdminCenter/Index.tsx:127 #~ msgid "Templates" #~ msgstr "Templates" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:140 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:133 +msgid "Error Reports" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:139 +msgid "Currencies" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:157 +msgid "Custom States" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:163 +#: src/pages/Index/Settings/AdminCenter/UnitManagmentPanel.tsx:58 msgid "Custom Units" msgstr "" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:146 -#: src/pages/part/CategoryDetail.tsx:264 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:169 +#: src/pages/part/CategoryDetail.tsx:269 msgid "Part Parameters" msgstr "" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:152 -msgid "Category Parameters" -msgstr "" - -#: src/pages/Index/Settings/AdminCenter/Index.tsx:170 -msgid "Location Types" -msgstr "" - #: src/pages/Index/Settings/AdminCenter/Index.tsx:170 #~ msgid "Location types" #~ msgstr "Location types" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:182 -#: src/tables/machine/MachineTypeTable.tsx:287 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:175 +msgid "Category Parameters" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:181 +msgid "Stocktake" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:199 +msgid "Location Types" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:211 +#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:48 +#: src/tables/machine/MachineTypeTable.tsx:308 msgid "Machines" msgstr "" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:192 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:221 msgid "Quick Actions" msgstr "" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:197 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:226 msgid "Add a new user" msgstr "" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:222 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:252 msgid "Advanced Options" msgstr "" #: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:43 -msgid "Machine types" -msgstr "" +#~ msgid "Machine types" +#~ msgstr "Machine types" #: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:53 -msgid "Machine Error Stack" +#~ msgid "Machine Error Stack" +#~ msgstr "Machine Error Stack" + +#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:56 +msgid "Machine Types" msgstr "" #: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:62 -msgid "There are no machine registry errors." +#~ msgid "There are no machine registry errors." +#~ msgstr "There are no machine registry errors." + +#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:64 +msgid "Machine Errors" msgstr "" -#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:28 -#: src/tables/settings/UserTable.tsx:119 +#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:77 +msgid "Registry Registry Errors" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:80 +msgid "There are machine registry errors" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:86 +msgid "Machine Registry Errors" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:89 +msgid "There are no machine registry errors" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:31 +#: src/tables/settings/UserTable.tsx:118 msgid "Info" msgstr "" -#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:32 -msgid "External plugins are not enabled for this InvenTree installation." -msgstr "" - #: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:33 #~ msgid "Plugin Error Stack" #~ msgstr "Plugin Error Stack" +#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:35 +msgid "External plugins are not enabled for this InvenTree installation." +msgstr "" + #: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:45 #~ msgid "Warning" #~ msgstr "Warning" @@ -3764,34 +4558,46 @@ msgstr "" #~ msgid "Changing the settings below require you to immediately restart the server. Do not change this while under active usage." #~ msgstr "Changing the settings below require you to immediately restart the server. Do not change this while under active usage." -#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:50 +#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:73 msgid "Plugin Errors" msgstr "" -#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:59 -msgid "Plugin Settings" +#: src/pages/Index/Settings/AdminCenter/ReportTemplatePanel.tsx:17 +msgid "Page Size" msgstr "" -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:53 -msgid "Background Worker Not Running" +#: src/pages/Index/Settings/AdminCenter/ReportTemplatePanel.tsx:20 +msgid "Landscape" msgstr "" -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:54 +#: src/pages/Index/Settings/AdminCenter/ReportTemplatePanel.tsx:26 +msgid "Attach to Model" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/StocktakePanel.tsx:25 +msgid "Stocktake Reports" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:30 msgid "The background task manager service is not running. Contact your system administrator." msgstr "" -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:60 -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:76 +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:35 +#~ msgid "Background Worker Not Running" +#~ msgstr "Background Worker Not Running" + +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:36 +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:45 msgid "Pending Tasks" msgstr "" -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:64 -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:84 +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:37 +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:53 msgid "Scheduled Tasks" msgstr "" -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:68 -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:92 +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:38 +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:61 msgid "Failed Tasks" msgstr "" @@ -3811,11 +4617,6 @@ msgstr "" #~ msgid "Reports" #~ msgstr "Reports" -#: src/pages/Index/Settings/AdminCenter/TemplateManagementPanel.tsx:89 -#: src/pages/build/BuildDetail.tsx:373 -#~ msgid "Report" -#~ msgstr "Report" - #: src/pages/Index/Settings/AdminCenter/TemplateManagementPanel.tsx:99 #~ msgid "Purchase order" #~ msgstr "Purchase order" @@ -3836,23 +4637,35 @@ msgstr "" #~ msgid "Stock location" #~ msgstr "Stock location" +#: src/pages/Index/Settings/AdminCenter/UnitManagmentPanel.tsx:21 +msgid "Alias" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/UnitManagmentPanel.tsx:22 +msgid "Dimensionless" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/UnitManagmentPanel.tsx:66 +msgid "All units" +msgstr "" + #: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:32 msgid "Select settings relevant for user lifecycle. More available in" msgstr "" #: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:37 -msgid "System settings" -msgstr "" +#~ msgid "System settings" +#~ msgstr "System settings" -#: src/pages/Index/Settings/SystemSettings.tsx:67 +#: src/pages/Index/Settings/SystemSettings.tsx:66 msgid "Login" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:93 +#: src/pages/Index/Settings/SystemSettings.tsx:92 msgid "Barcodes" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:115 +#: src/pages/Index/Settings/SystemSettings.tsx:116 msgid "Pricing" msgstr "" @@ -3864,64 +4677,46 @@ msgstr "" #~ msgid "Exchange Rates" #~ msgstr "Exchange Rates" -#: src/pages/Index/Settings/SystemSettings.tsx:150 +#: src/pages/Index/Settings/SystemSettings.tsx:151 msgid "Labels" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:156 -#: src/pages/Index/Settings/UserSettings.tsx:132 +#: src/pages/Index/Settings/SystemSettings.tsx:157 +#: src/pages/Index/Settings/UserSettings.tsx:133 msgid "Reporting" msgstr "" #: src/pages/Index/Settings/SystemSettings.tsx:231 -#: src/pages/part/PartDetail.tsx:682 -msgid "Stocktake" -msgstr "" - -#: src/pages/Index/Settings/SystemSettings.tsx:237 -#: src/pages/build/BuildDetail.tsx:554 -#: src/pages/build/BuildIndex.tsx:22 -#: src/pages/part/PartDetail.tsx:616 -#: src/pages/sales/SalesOrderDetail.tsx:333 +#: src/pages/build/BuildIndex.tsx:27 +#: src/pages/part/PartDetail.tsx:636 +#: src/pages/sales/SalesOrderDetail.tsx:355 msgid "Build Orders" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:318 -msgid "Switch to User Setting" -msgstr "" +#: src/pages/Index/Settings/SystemSettings.tsx:317 +#~ msgid "Switch to User Setting" +#~ msgstr "Switch to User Setting" -#: src/pages/Index/Settings/UserSettings.tsx:34 +#: src/pages/Index/Settings/UserSettings.tsx:35 msgid "Account" msgstr "" -#: src/pages/Index/Settings/UserSettings.tsx:40 +#: src/pages/Index/Settings/UserSettings.tsx:41 msgid "Security" msgstr "" -#: src/pages/Index/Settings/UserSettings.tsx:78 +#: src/pages/Index/Settings/UserSettings.tsx:79 msgid "Display Options" msgstr "" -#: src/pages/Index/Settings/UserSettings.tsx:150 -msgid "Account Settings" -msgstr "" - -#: src/pages/Index/Settings/UserSettings.tsx:158 -msgid "Switch to System Setting" -msgstr "" - -#: src/pages/Index/UserSettings.tsx:103 -#~ msgid "User Settings" -#~ msgstr "User Settings" +#: src/pages/Index/Settings/UserSettings.tsx:159 +#~ msgid "Switch to System Setting" +#~ msgstr "Switch to System Setting" #: src/pages/Logged-In.tsx:24 #~ msgid "Found an exsisting login - using it to log you in." #~ msgstr "Found an exsisting login - using it to log you in." -#: src/pages/NotFound.tsx:17 -#~ msgid "Not Found" -#~ msgstr "Not Found" - #: src/pages/NotFound.tsx:20 #~ msgid "Sorry, this page is not known or was moved." #~ msgstr "Sorry, this page is not known or was moved." @@ -3942,104 +4737,86 @@ msgstr "" #~ msgid "Build Status" #~ msgstr "Build Status" -#: src/pages/build/BuildDetail.tsx:102 -#: src/pages/part/PartDetail.tsx:150 +#: src/pages/build/BuildDetail.tsx:97 +#: src/pages/company/ManufacturerPartDetail.tsx:81 +#: src/pages/company/SupplierPartDetail.tsx:91 +#: src/pages/part/PartDetail.tsx:171 +#: src/pages/stock/StockDetail.tsx:122 #: src/tables/bom/BomTable.tsx:118 #: src/tables/bom/UsedInTable.tsx:39 -#: src/tables/build/BuildLineTable.tsx:173 -#: src/tables/build/BuildOrderTable.tsx:55 -#: src/tables/sales/SalesOrderLineItemTable.tsx:62 -#: src/tables/stock/StockItemTable.tsx:53 +#: src/tables/build/BuildAllocatedStockTable.tsx:104 +#: src/tables/build/BuildLineTable.tsx:324 +#: src/tables/build/BuildOrderTable.tsx:64 +#: src/tables/sales/SalesOrderLineItemTable.tsx:70 +#: src/tables/stock/StockItemTable.tsx:54 msgid "IPN" msgstr "" -#: src/pages/build/BuildDetail.tsx:115 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:121 -#: src/pages/sales/ReturnOrderDetail.tsx:95 -#: src/pages/sales/SalesOrderDetail.tsx:101 -#: src/tables/ColumnRenderers.tsx:121 -#: src/tables/build/BuildAllocatedStockTable.tsx:90 -#: src/tables/build/BuildLineTable.tsx:184 +#: src/pages/build/BuildDetail.tsx:110 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:115 +#: src/pages/sales/ReturnOrderDetail.tsx:86 +#: src/pages/sales/SalesOrderDetail.tsx:95 +#: src/tables/ColumnRenderers.tsx:132 +#: src/tables/build/BuildAllocatedStockTable.tsx:111 +#: src/tables/build/BuildLineTable.tsx:335 msgid "Reference" msgstr "" -#: src/pages/build/BuildDetail.tsx:121 -#: src/pages/company/CompanyDetail.tsx:90 -#: src/pages/company/ManufacturerPartDetail.tsx:83 -#: src/pages/company/SupplierPartDetail.tsx:96 -#: src/pages/part/CategoryDetail.tsx:101 -#: src/pages/part/PartDetail.tsx:157 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:142 -#: src/pages/sales/ReturnOrderDetail.tsx:115 -#: src/pages/sales/SalesOrderDetail.tsx:121 -#: src/pages/stock/LocationDetail.tsx:109 -#: src/tables/ColumnRenderers.tsx:81 -#: src/tables/bom/UsedInTable.tsx:44 -#: src/tables/build/BuildAllocatedStockTable.tsx:70 -#: src/tables/build/BuildLineTable.tsx:178 -#: src/tables/machine/MachineTypeTable.tsx:69 -#: src/tables/machine/MachineTypeTable.tsx:112 -#: src/tables/machine/MachineTypeTable.tsx:219 -#: src/tables/machine/MachineTypeTable.tsx:323 -#: src/tables/part/RelatedPartTable.tsx:64 -#: src/tables/plugin/PluginListTable.tsx:129 -#: src/tables/plugin/PluginListTable.tsx:276 -#: src/tables/sales/SalesOrderAllocationTable.tsx:56 -#: src/tables/sales/SalesOrderLineItemTable.tsx:67 -#: src/tables/stock/LocationTypesTable.tsx:74 -msgid "Description" -msgstr "" - -#: src/pages/build/BuildDetail.tsx:129 +#: src/pages/build/BuildDetail.tsx:124 msgid "Parent Build" msgstr "" -#: src/pages/build/BuildDetail.tsx:140 +#: src/pages/build/BuildDetail.tsx:135 msgid "Build Quantity" msgstr "" -#: src/pages/build/BuildDetail.tsx:148 -#: src/pages/build/BuildDetail.tsx:274 +#: src/pages/build/BuildDetail.tsx:143 +#: src/pages/build/BuildDetail.tsx:277 msgid "Completed Outputs" msgstr "" -#: src/pages/build/BuildDetail.tsx:165 -#: src/tables/build/BuildOrderTable.tsx:151 +#: src/pages/build/BuildDetail.tsx:160 +#: src/tables/build/BuildOrderTable.tsx:142 msgid "Issued By" msgstr "" -#: src/pages/build/BuildDetail.tsx:172 -#: src/pages/part/PartDetail.tsx:365 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:220 -#: src/pages/sales/ReturnOrderDetail.tsx:199 -#: src/pages/sales/SalesOrderDetail.tsx:208 -#: src/tables/build/BuildOrderTable.tsx:157 -#: src/tables/purchasing/PurchaseOrderTable.tsx:75 -#: src/tables/sales/ReturnOrderTable.tsx:66 -#: src/tables/sales/SalesOrderTable.tsx:73 +#: src/pages/build/BuildDetail.tsx:167 +#: src/pages/part/PartDetail.tsx:406 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:244 +#: src/pages/sales/ReturnOrderDetail.tsx:216 +#: src/pages/sales/SalesOrderDetail.tsx:226 +#: src/tables/build/BuildOrderTable.tsx:148 +#: src/tables/purchasing/PurchaseOrderTable.tsx:76 +#: src/tables/sales/ReturnOrderTable.tsx:74 +#: src/tables/sales/SalesOrderTable.tsx:74 msgid "Responsible" msgstr "" -#: src/pages/build/BuildDetail.tsx:179 -#: src/tables/settings/PendingTasksTable.tsx:32 +#: src/pages/build/BuildDetail.tsx:174 +#: src/tables/settings/PendingTasksTable.tsx:36 msgid "Created" msgstr "" +#: src/pages/build/BuildDetail.tsx:181 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:229 +#: src/pages/sales/ReturnOrderDetail.tsx:201 +#: src/pages/sales/SalesOrderDetail.tsx:212 +#: src/tables/ColumnRenderers.tsx:226 +#: src/tables/part/PartPurchaseOrdersTable.tsx:100 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:135 +#: src/tables/sales/SalesOrderLineItemTable.tsx:107 +msgid "Target Date" +msgstr "" + #: src/pages/build/BuildDetail.tsx:185 #: src/pages/part/PartDetail.tsx:269 #: src/pages/stock/StockDetail.tsx:150 #~ msgid "View part barcode" #~ msgstr "View part barcode" -#: src/pages/build/BuildDetail.tsx:186 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:213 -#: src/pages/sales/ReturnOrderDetail.tsx:192 -#: src/pages/sales/SalesOrderDetail.tsx:201 -#: src/tables/ColumnRenderers.tsx:212 -#: src/tables/part/PartPurchaseOrdersTable.tsx:99 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:110 -#: src/tables/sales/SalesOrderLineItemTable.tsx:99 -msgid "Target Date" +#: src/pages/build/BuildDetail.tsx:188 +#: src/tables/sales/SalesOrderLineItemTable.tsx:281 +msgid "Completed" msgstr "" #: src/pages/build/BuildDetail.tsx:190 @@ -4047,10 +4824,6 @@ msgstr "" #~ msgid "Link custom barcode to part" #~ msgstr "Link custom barcode to part" -#: src/pages/build/BuildDetail.tsx:193 -msgid "Completed" -msgstr "" - #: src/pages/build/BuildDetail.tsx:196 #: src/pages/part/PartDetail.tsx:280 #~ msgid "Unlink custom barcode from part" @@ -4060,15 +4833,11 @@ msgstr "" #~ msgid "Build Order updated" #~ msgstr "Build Order updated" -#: src/pages/build/BuildDetail.tsx:205 -msgid "Source Location" -msgstr "" - -#: src/pages/build/BuildDetail.tsx:206 +#: src/pages/build/BuildDetail.tsx:209 msgid "Any location" msgstr "" -#: src/pages/build/BuildDetail.tsx:213 +#: src/pages/build/BuildDetail.tsx:216 msgid "Destination Location" msgstr "" @@ -4084,206 +4853,182 @@ msgstr "" #~ msgid "Delete build order" #~ msgstr "Delete build order" -#: src/pages/build/BuildDetail.tsx:251 +#: src/pages/build/BuildDetail.tsx:254 msgid "Build Details" msgstr "" -#: src/pages/build/BuildDetail.tsx:257 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:258 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:267 -#: src/pages/sales/ReturnOrderDetail.tsx:130 -#: src/pages/sales/ReturnOrderDetail.tsx:237 -#: src/pages/sales/ReturnOrderDetail.tsx:246 -#: src/pages/sales/SalesOrderDetail.tsx:272 -#: src/pages/sales/SalesOrderDetail.tsx:281 +#: src/pages/build/BuildDetail.tsx:260 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:282 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:291 +#: src/pages/sales/ReturnOrderDetail.tsx:122 +#: src/pages/sales/ReturnOrderDetail.tsx:254 +#: src/pages/sales/ReturnOrderDetail.tsx:263 +#: src/pages/sales/SalesOrderDetail.tsx:294 +#: src/pages/sales/SalesOrderDetail.tsx:303 msgid "Line Items" msgstr "" -#: src/pages/build/BuildDetail.tsx:267 +#: src/pages/build/BuildDetail.tsx:266 msgid "Incomplete Outputs" msgstr "" -#: src/pages/build/BuildDetail.tsx:289 -#: src/pages/sales/SalesOrderDetail.tsx:319 +#: src/pages/build/BuildDetail.tsx:292 +#: src/pages/sales/SalesOrderDetail.tsx:341 msgid "Allocated Stock" msgstr "" -#: src/pages/build/BuildDetail.tsx:299 +#: src/pages/build/BuildDetail.tsx:302 msgid "Consumed Stock" msgstr "" -#: src/pages/build/BuildDetail.tsx:313 +#: src/pages/build/BuildDetail.tsx:316 msgid "Child Build Orders" msgstr "" #: src/pages/build/BuildDetail.tsx:326 -#: src/tables/build/BuildOutputTable.tsx:384 -#: src/tables/stock/StockItemTestResultTable.tsx:150 +#: src/tables/build/BuildOutputTable.tsx:532 +#: src/tables/stock/StockItemTestResultTable.tsx:156 msgid "Test Results" msgstr "" #: src/pages/build/BuildDetail.tsx:337 -#: src/pages/part/PartDetail.tsx:699 +#: src/pages/part/PartDetail.tsx:740 msgid "Test Statistics" msgstr "" -#: src/pages/build/BuildDetail.tsx:351 -#: src/pages/company/CompanyDetail.tsx:259 -#: src/pages/company/ManufacturerPartDetail.tsx:179 -#: src/pages/part/PartDetail.tsx:721 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:309 -#: src/pages/sales/ReturnOrderDetail.tsx:274 -#: src/pages/sales/SalesOrderDetail.tsx:343 -#: src/pages/stock/StockDetail.tsx:385 -msgid "Attachments" -msgstr "" - -#: src/pages/build/BuildDetail.tsx:359 -#: src/pages/company/CompanyDetail.tsx:270 -#: src/pages/company/ManufacturerPartDetail.tsx:190 -#: src/pages/company/SupplierPartDetail.tsx:257 -#: src/pages/part/PartDetail.tsx:729 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:320 -#: src/pages/sales/ReturnOrderDetail.tsx:285 -#: src/pages/sales/SalesOrderDetail.tsx:354 -#: src/pages/stock/StockDetail.tsx:396 -#: src/tables/build/BuildOrderTestTable.tsx:142 -#: src/tables/stock/StockTrackingTable.tsx:189 -msgid "Notes" +#: src/pages/build/BuildDetail.tsx:365 +msgid "Edit Build Order" msgstr "" #: src/pages/build/BuildDetail.tsx:368 #~ msgid "Reporting Actions" #~ msgstr "Reporting Actions" +#: src/pages/build/BuildDetail.tsx:372 +#: src/tables/build/BuildOrderTable.tsx:173 +#: src/tables/build/BuildOrderTable.tsx:188 +msgid "Add Build Order" +msgstr "" + #: src/pages/build/BuildDetail.tsx:374 #~ msgid "Print build report" #~ msgstr "Print build report" -#: src/pages/build/BuildDetail.tsx:377 -msgid "Edit Build Order" -msgstr "" - -#: src/pages/build/BuildDetail.tsx:384 -#: src/tables/build/BuildOrderTable.tsx:172 -#: src/tables/build/BuildOrderTable.tsx:187 -msgid "Add Build Order" -msgstr "" - -#: src/pages/build/BuildDetail.tsx:398 +#: src/pages/build/BuildDetail.tsx:386 msgid "Cancel Build Order" msgstr "" -#: src/pages/build/BuildDetail.tsx:400 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:348 -#: src/pages/sales/SalesOrderDetail.tsx:380 +#: src/pages/build/BuildDetail.tsx:388 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:357 +#: src/pages/sales/ReturnOrderDetail.tsx:354 +#: src/pages/sales/SalesOrderDetail.tsx:387 msgid "Order cancelled" msgstr "" -#: src/pages/build/BuildDetail.tsx:401 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:347 -#: src/pages/sales/ReturnOrderDetail.tsx:346 -#: src/pages/sales/SalesOrderDetail.tsx:379 +#: src/pages/build/BuildDetail.tsx:389 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:356 +#: src/pages/sales/ReturnOrderDetail.tsx:353 +#: src/pages/sales/SalesOrderDetail.tsx:386 msgid "Cancel this order" msgstr "" -#: src/pages/build/BuildDetail.tsx:410 +#: src/pages/build/BuildDetail.tsx:398 msgid "Hold Build Order" msgstr "" -#: src/pages/build/BuildDetail.tsx:412 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:355 -#: src/pages/sales/ReturnOrderDetail.tsx:354 -#: src/pages/sales/SalesOrderDetail.tsx:387 +#: src/pages/build/BuildDetail.tsx:400 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:364 +#: src/pages/sales/ReturnOrderDetail.tsx:361 +#: src/pages/sales/SalesOrderDetail.tsx:394 msgid "Place this order on hold" msgstr "" -#: src/pages/build/BuildDetail.tsx:413 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:356 -#: src/pages/sales/ReturnOrderDetail.tsx:355 -#: src/pages/sales/SalesOrderDetail.tsx:388 +#: src/pages/build/BuildDetail.tsx:401 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:365 +#: src/pages/sales/ReturnOrderDetail.tsx:362 +#: src/pages/sales/SalesOrderDetail.tsx:395 msgid "Order placed on hold" msgstr "" -#: src/pages/build/BuildDetail.tsx:418 +#: src/pages/build/BuildDetail.tsx:406 msgid "Issue Build Order" msgstr "" -#: src/pages/build/BuildDetail.tsx:420 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:339 -#: src/pages/sales/ReturnOrderDetail.tsx:338 -#: src/pages/sales/SalesOrderDetail.tsx:371 +#: src/pages/build/BuildDetail.tsx:408 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:348 +#: src/pages/sales/ReturnOrderDetail.tsx:345 +#: src/pages/sales/SalesOrderDetail.tsx:378 msgid "Issue this order" msgstr "" -#: src/pages/build/BuildDetail.tsx:421 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:340 -#: src/pages/sales/ReturnOrderDetail.tsx:339 -#: src/pages/sales/SalesOrderDetail.tsx:372 +#: src/pages/build/BuildDetail.tsx:409 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:349 +#: src/pages/sales/ReturnOrderDetail.tsx:346 +#: src/pages/sales/SalesOrderDetail.tsx:379 msgid "Order issued" msgstr "" -#: src/pages/build/BuildDetail.tsx:426 +#: src/pages/build/BuildDetail.tsx:414 msgid "Complete Build Order" msgstr "" -#: src/pages/build/BuildDetail.tsx:428 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:368 -#: src/pages/sales/ReturnOrderDetail.tsx:362 -#: src/pages/sales/SalesOrderDetail.tsx:395 +#: src/pages/build/BuildDetail.tsx:416 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:377 +#: src/pages/sales/ReturnOrderDetail.tsx:369 +#: src/pages/sales/SalesOrderDetail.tsx:402 msgid "Mark this order as complete" msgstr "" -#: src/pages/build/BuildDetail.tsx:429 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:362 -#: src/pages/sales/ReturnOrderDetail.tsx:363 -#: src/pages/sales/SalesOrderDetail.tsx:396 +#: src/pages/build/BuildDetail.tsx:417 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:371 +#: src/pages/sales/ReturnOrderDetail.tsx:370 +#: src/pages/sales/SalesOrderDetail.tsx:403 msgid "Order completed" msgstr "" -#: src/pages/build/BuildDetail.tsx:460 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:391 -#: src/pages/sales/ReturnOrderDetail.tsx:392 -#: src/pages/sales/SalesOrderDetail.tsx:425 +#: src/pages/build/BuildDetail.tsx:448 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:400 +#: src/pages/sales/ReturnOrderDetail.tsx:399 +#: src/pages/sales/SalesOrderDetail.tsx:432 msgid "Issue Order" msgstr "" -#: src/pages/build/BuildDetail.tsx:467 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:398 -#: src/pages/sales/ReturnOrderDetail.tsx:399 -#: src/pages/sales/SalesOrderDetail.tsx:439 +#: src/pages/build/BuildDetail.tsx:455 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:407 +#: src/pages/sales/ReturnOrderDetail.tsx:406 +#: src/pages/sales/SalesOrderDetail.tsx:446 msgid "Complete Order" msgstr "" -#: src/pages/build/BuildDetail.tsx:496 +#: src/pages/build/BuildDetail.tsx:473 msgid "Build Order Actions" msgstr "" -#: src/pages/build/BuildDetail.tsx:502 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:432 -#: src/pages/sales/ReturnOrderDetail.tsx:433 -#: src/pages/sales/SalesOrderDetail.tsx:474 +#: src/pages/build/BuildDetail.tsx:478 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:429 +#: src/pages/sales/ReturnOrderDetail.tsx:428 +#: src/pages/sales/SalesOrderDetail.tsx:469 msgid "Edit order" msgstr "" -#: src/pages/build/BuildDetail.tsx:506 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:440 -#: src/pages/sales/ReturnOrderDetail.tsx:439 -#: src/pages/sales/SalesOrderDetail.tsx:479 +#: src/pages/build/BuildDetail.tsx:482 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:437 +#: src/pages/sales/ReturnOrderDetail.tsx:434 +#: src/pages/sales/SalesOrderDetail.tsx:474 msgid "Duplicate order" msgstr "" -#: src/pages/build/BuildDetail.tsx:510 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:443 -#: src/pages/sales/ReturnOrderDetail.tsx:444 -#: src/pages/sales/SalesOrderDetail.tsx:482 +#: src/pages/build/BuildDetail.tsx:486 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:440 +#: src/pages/sales/ReturnOrderDetail.tsx:439 +#: src/pages/sales/SalesOrderDetail.tsx:477 msgid "Hold order" msgstr "" -#: src/pages/build/BuildDetail.tsx:515 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:448 -#: src/pages/sales/ReturnOrderDetail.tsx:449 -#: src/pages/sales/SalesOrderDetail.tsx:487 +#: src/pages/build/BuildDetail.tsx:491 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:445 +#: src/pages/sales/ReturnOrderDetail.tsx:444 +#: src/pages/sales/SalesOrderDetail.tsx:482 msgid "Cancel order" msgstr "" @@ -4295,56 +5040,60 @@ msgstr "" #~ msgid "New Build Order" #~ msgstr "New Build Order" -#: src/pages/company/CompanyDetail.tsx:104 +#: src/pages/company/CompanyDetail.tsx:95 +msgid "Website" +msgstr "" + +#: src/pages/company/CompanyDetail.tsx:103 msgid "Phone Number" msgstr "" -#: src/pages/company/CompanyDetail.tsx:111 +#: src/pages/company/CompanyDetail.tsx:110 msgid "Email Address" msgstr "" -#: src/pages/company/CompanyDetail.tsx:121 +#: src/pages/company/CompanyDetail.tsx:120 msgid "Default Currency" msgstr "" -#: src/pages/company/CompanyDetail.tsx:126 +#: src/pages/company/CompanyDetail.tsx:125 #: src/pages/company/SupplierDetail.tsx:8 -#: src/pages/company/SupplierPartDetail.tsx:120 -#: src/pages/company/SupplierPartDetail.tsx:206 -#: src/pages/company/SupplierPartDetail.tsx:351 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:136 -#: src/tables/company/CompanyTable.tsx:100 +#: src/pages/company/SupplierPartDetail.tsx:125 +#: src/pages/company/SupplierPartDetail.tsx:218 +#: src/pages/company/SupplierPartDetail.tsx:340 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:130 +#: src/tables/company/CompanyTable.tsx:101 #: src/tables/part/PartPurchaseOrdersTable.tsx:42 -#: src/tables/purchasing/PurchaseOrderTable.tsx:88 +#: src/tables/purchasing/PurchaseOrderTable.tsx:89 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:36 msgid "Supplier" msgstr "" -#: src/pages/company/CompanyDetail.tsx:132 +#: src/pages/company/CompanyDetail.tsx:131 #: src/pages/company/ManufacturerDetail.tsx:8 -#: src/pages/company/ManufacturerPartDetail.tsx:101 -#: src/pages/company/ManufacturerPartDetail.tsx:267 -#: src/pages/company/SupplierPartDetail.tsx:135 -#: src/tables/company/CompanyTable.tsx:105 +#: src/pages/company/ManufacturerPartDetail.tsx:100 +#: src/pages/company/ManufacturerPartDetail.tsx:262 +#: src/pages/company/SupplierPartDetail.tsx:147 +#: src/tables/company/CompanyTable.tsx:106 msgid "Manufacturer" msgstr "" -#: src/pages/company/CompanyDetail.tsx:138 +#: src/pages/company/CompanyDetail.tsx:137 #: src/pages/company/CustomerDetail.tsx:8 -#: src/pages/part/pricing/SaleHistoryPanel.tsx:29 -#: src/pages/sales/ReturnOrderDetail.tsx:109 -#: src/pages/sales/SalesOrderDetail.tsx:115 -#: src/pages/stock/StockDetail.tsx:230 -#: src/tables/company/CompanyTable.tsx:110 -#: src/tables/sales/ReturnOrderTable.tsx:78 -#: src/tables/sales/SalesOrderTable.tsx:108 -#: src/tables/stock/StockTrackingTable.tsx:140 +#: src/pages/part/pricing/SaleHistoryPanel.tsx:31 +#: src/pages/sales/ReturnOrderDetail.tsx:101 +#: src/pages/sales/SalesOrderDetail.tsx:110 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:100 +#: src/pages/stock/StockDetail.tsx:271 +#: src/tables/company/CompanyTable.tsx:111 +#: src/tables/sales/ReturnOrderTable.tsx:97 +#: src/tables/sales/SalesOrderTable.tsx:121 +#: src/tables/stock/StockTrackingTable.tsx:144 msgid "Customer" msgstr "" #: src/pages/company/CompanyDetail.tsx:172 -#: src/tables/stock/StockTrackingTable.tsx:183 -msgid "Details" +msgid "Company Details" msgstr "" #: src/pages/company/CompanyDetail.tsx:175 @@ -4363,140 +5112,150 @@ msgstr "" #~ msgid "Delete company" #~ msgstr "Delete company" -#: src/pages/company/CompanyDetail.tsx:232 +#: src/pages/company/CompanyDetail.tsx:234 msgid "Assigned Stock" msgstr "" -#: src/pages/company/CompanyDetail.tsx:290 -#: src/tables/company/CompanyTable.tsx:86 +#: src/pages/company/CompanyDetail.tsx:273 +#: src/tables/company/CompanyTable.tsx:87 msgid "Edit Company" msgstr "" -#: src/pages/company/CompanyDetail.tsx:298 +#: src/pages/company/CompanyDetail.tsx:281 msgid "Delete Company" msgstr "" -#: src/pages/company/CompanyDetail.tsx:306 +#: src/pages/company/CompanyDetail.tsx:289 msgid "Company Actions" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:76 -#: src/pages/company/SupplierPartDetail.tsx:89 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:128 +#: src/pages/company/ManufacturerPartDetail.tsx:74 +#: src/pages/company/SupplierPartDetail.tsx:84 msgid "Internal Part" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:91 -#: src/pages/company/SupplierPartDetail.tsx:103 -msgid "External Link" -msgstr "" - -#: src/pages/company/ManufacturerPartDetail.tsx:109 -#: src/pages/company/SupplierPartDetail.tsx:144 -#: src/tables/purchasing/ManufacturerPartTable.tsx:56 +#: src/pages/company/ManufacturerPartDetail.tsx:108 +#: src/pages/company/SupplierPartDetail.tsx:156 +#: src/tables/purchasing/ManufacturerPartTable.tsx:58 msgid "Manufacturer Part Number" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:138 +#: src/pages/company/ManufacturerPartDetail.tsx:125 +#: src/pages/company/SupplierPartDetail.tsx:108 +msgid "External Link" +msgstr "" + +#: src/pages/company/ManufacturerPartDetail.tsx:146 +#: src/pages/company/SupplierPartDetail.tsx:215 +#: src/pages/part/PartDetail.tsx:576 +msgid "Part Details" +msgstr "" + +#: src/pages/company/ManufacturerPartDetail.tsx:149 msgid "Manufacturer Details" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:147 +#: src/pages/company/ManufacturerPartDetail.tsx:158 msgid "Manufacturer Part Details" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:153 -#: src/pages/part/PartDetail.tsx:532 +#: src/pages/company/ManufacturerPartDetail.tsx:164 +#: src/pages/part/PartDetail.tsx:582 msgid "Parameters" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:165 -#: src/pages/part/PartDetail.tsx:649 +#: src/pages/company/ManufacturerPartDetail.tsx:176 +#: src/pages/part/PartDetail.tsx:669 #: src/pages/purchasing/PurchasingIndex.tsx:31 msgid "Suppliers" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:208 -#: src/tables/purchasing/ManufacturerPartTable.tsx:84 +#: src/pages/company/ManufacturerPartDetail.tsx:204 +#: src/tables/purchasing/ManufacturerPartTable.tsx:86 msgid "Edit Manufacturer Part" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:215 -#: src/tables/purchasing/ManufacturerPartTable.tsx:72 -#: src/tables/purchasing/ManufacturerPartTable.tsx:103 +#: src/pages/company/ManufacturerPartDetail.tsx:211 +#: src/tables/purchasing/ManufacturerPartTable.tsx:74 +#: src/tables/purchasing/ManufacturerPartTable.tsx:106 msgid "Add Manufacturer Part" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:227 -#: src/tables/purchasing/ManufacturerPartTable.tsx:92 +#: src/pages/company/ManufacturerPartDetail.tsx:223 +#: src/tables/purchasing/ManufacturerPartTable.tsx:94 msgid "Delete Manufacturer Part" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:240 +#: src/pages/company/ManufacturerPartDetail.tsx:236 msgid "Manufacturer Part Actions" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:281 +#: src/pages/company/ManufacturerPartDetail.tsx:276 msgid "ManufacturerPart" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:163 -#: src/tables/part/PartPurchaseOrdersTable.tsx:71 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:156 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:197 -#: src/tables/purchasing/SupplierPartTable.tsx:131 +#: src/pages/company/SupplierPartDetail.tsx:99 +msgid "Part Description" +msgstr "" + +#: src/pages/company/SupplierPartDetail.tsx:175 +#: src/tables/part/PartPurchaseOrdersTable.tsx:72 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:162 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:203 +#: src/tables/purchasing/SupplierPartTable.tsx:133 msgid "Pack Quantity" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:174 +#: src/pages/company/SupplierPartDetail.tsx:186 msgid "Supplier Availability" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:181 +#: src/pages/company/SupplierPartDetail.tsx:193 msgid "Availability Updated" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:208 +#: src/pages/company/SupplierPartDetail.tsx:220 msgid "Availability" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:217 +#: src/pages/company/SupplierPartDetail.tsx:229 msgid "Supplier Part Details" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:223 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:296 +#: src/pages/company/SupplierPartDetail.tsx:235 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:320 msgid "Received Stock" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:247 -#: src/pages/part/PartPricingPanel.tsx:111 -#: src/pages/part/pricing/PricingOverviewPanel.tsx:121 +#: src/pages/company/SupplierPartDetail.tsx:259 +#: src/pages/part/PartPricingPanel.tsx:116 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:195 msgid "Supplier Pricing" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:294 +#: src/pages/company/SupplierPartDetail.tsx:284 msgid "Supplier Part Actions" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:319 -#: src/tables/purchasing/SupplierPartTable.tsx:210 +#: src/pages/company/SupplierPartDetail.tsx:308 +#: src/tables/purchasing/SupplierPartTable.tsx:213 msgid "Edit Supplier Part" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:327 -#: src/tables/purchasing/SupplierPartTable.tsx:218 +#: src/pages/company/SupplierPartDetail.tsx:316 +#: src/tables/purchasing/SupplierPartTable.tsx:221 msgid "Delete Supplier Part" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:335 -#: src/tables/purchasing/SupplierPartTable.tsx:163 +#: src/pages/company/SupplierPartDetail.tsx:324 +#: src/tables/purchasing/SupplierPartTable.tsx:165 msgid "Add Supplier Part" msgstr "" #: src/pages/part/CategoryDetail.tsx:93 -#: src/pages/stock/LocationDetail.tsx:101 -#: src/tables/settings/ErrorTable.tsx:36 +#: src/pages/stock/LocationDetail.tsx:95 +#: src/tables/settings/ErrorTable.tsx:63 +#: src/tables/settings/ErrorTable.tsx:108 msgid "Path" msgstr "" @@ -4504,357 +5263,357 @@ msgstr "" msgid "Parent Category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:126 +#: src/pages/part/CategoryDetail.tsx:132 msgid "Subcategories" msgstr "" -#: src/pages/part/CategoryDetail.tsx:133 -#: src/pages/stock/LocationDetail.tsx:141 -#: src/tables/part/PartCategoryTable.tsx:73 +#: src/pages/part/CategoryDetail.tsx:139 +#: src/pages/stock/LocationDetail.tsx:135 +#: src/tables/part/PartCategoryTable.tsx:85 #: src/tables/stock/StockLocationTable.tsx:49 msgid "Structural" msgstr "" -#: src/pages/part/CategoryDetail.tsx:139 +#: src/pages/part/CategoryDetail.tsx:145 msgid "Parent default location" msgstr "" -#: src/pages/part/CategoryDetail.tsx:146 +#: src/pages/part/CategoryDetail.tsx:152 msgid "Default location" msgstr "" -#: src/pages/part/CategoryDetail.tsx:157 +#: src/pages/part/CategoryDetail.tsx:163 msgid "Top level part category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:167 -#: src/pages/part/CategoryDetail.tsx:221 -#: src/tables/part/PartCategoryTable.tsx:102 +#: src/pages/part/CategoryDetail.tsx:173 +#: src/pages/part/CategoryDetail.tsx:226 +#: src/tables/part/PartCategoryTable.tsx:118 msgid "Edit Part Category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:180 -#: src/pages/stock/LocationDetail.tsx:233 +#: src/pages/part/CategoryDetail.tsx:186 +#: src/pages/stock/LocationDetail.tsx:227 msgid "Delete items" msgstr "" -#: src/pages/part/CategoryDetail.tsx:188 -#: src/pages/part/CategoryDetail.tsx:226 +#: src/pages/part/CategoryDetail.tsx:194 +#: src/pages/part/CategoryDetail.tsx:231 msgid "Delete Part Category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:191 +#: src/pages/part/CategoryDetail.tsx:197 msgid "Parts Action" msgstr "" -#: src/pages/part/CategoryDetail.tsx:192 +#: src/pages/part/CategoryDetail.tsx:198 msgid "Action for parts in this category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:197 +#: src/pages/part/CategoryDetail.tsx:203 msgid "Child Categories Action" msgstr "" -#: src/pages/part/CategoryDetail.tsx:198 +#: src/pages/part/CategoryDetail.tsx:204 msgid "Action for child categories in this category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:216 +#: src/pages/part/CategoryDetail.tsx:222 msgid "Category Actions" msgstr "" -#: src/pages/part/CategoryDetail.tsx:238 +#: src/pages/part/CategoryDetail.tsx:243 msgid "Category Details" msgstr "" -#: src/pages/part/PartDetail.tsx:163 -msgid "Variant of" +#: src/pages/part/PartAllocationPanel.tsx:23 +#: src/pages/stock/StockDetail.tsx:443 +#: src/tables/part/PartTable.tsx:99 +msgid "Build Order Allocations" msgstr "" -#: src/pages/part/PartDetail.tsx:170 -msgid "Revision of" -msgstr "" - -#: src/pages/part/PartDetail.tsx:177 -#: src/tables/stock/StockItemTable.tsx:58 -msgid "Revision" +#: src/pages/part/PartAllocationPanel.tsx:40 +#: src/pages/stock/StockDetail.tsx:458 +#: src/tables/part/PartTable.tsx:108 +msgid "Sales Order Allocations" msgstr "" #: src/pages/part/PartDetail.tsx:184 +msgid "Variant of" +msgstr "" + +#: src/pages/part/PartDetail.tsx:191 +msgid "Revision of" +msgstr "" + +#: src/pages/part/PartDetail.tsx:198 +#: src/tables/stock/StockItemTable.tsx:59 +msgid "Revision" +msgstr "" + +#: src/pages/part/PartDetail.tsx:205 #: src/tables/notifications/NotificationsTable.tsx:31 #: src/tables/part/PartCategoryTemplateTable.tsx:67 msgid "Category" msgstr "" -#: src/pages/part/PartDetail.tsx:190 +#: src/pages/part/PartDetail.tsx:211 msgid "Default Location" msgstr "" -#: src/pages/part/PartDetail.tsx:197 +#: src/pages/part/PartDetail.tsx:218 msgid "Category Default Location" msgstr "" -#: src/pages/part/PartDetail.tsx:204 +#: src/pages/part/PartDetail.tsx:225 #: src/tables/purchasing/ManufacturerPartParameterTable.tsx:44 msgid "Units" msgstr "" -#: src/pages/part/PartDetail.tsx:211 -#: src/tables/settings/PendingTasksTable.tsx:42 +#: src/pages/part/PartDetail.tsx:232 +#: src/tables/settings/PendingTasksTable.tsx:46 msgid "Keywords" msgstr "" -#: src/pages/part/PartDetail.tsx:218 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:186 -#: src/pages/sales/ReturnOrderDetail.tsx:165 -#: src/pages/sales/SalesOrderDetail.tsx:174 -msgid "Link" -msgstr "" - -#: src/pages/part/PartDetail.tsx:236 +#: src/pages/part/PartDetail.tsx:257 #: src/tables/bom/BomTable.tsx:320 -#: src/tables/build/BuildLineTable.tsx:155 +#: src/tables/build/BuildLineTable.tsx:286 #: src/tables/part/PartTable.tsx:288 -#: src/tables/sales/SalesOrderLineItemTable.tsx:103 +#: src/tables/sales/SalesOrderLineItemTable.tsx:111 msgid "Available Stock" msgstr "" -#: src/pages/part/PartDetail.tsx:243 +#: src/pages/part/PartDetail.tsx:264 msgid "Variant Stock" msgstr "" -#: src/pages/part/PartDetail.tsx:251 +#: src/pages/part/PartDetail.tsx:272 msgid "Minimum Stock" msgstr "" -#: src/pages/part/PartDetail.tsx:257 +#: src/pages/part/PartDetail.tsx:278 #: src/tables/bom/BomTable.tsx:237 -#: src/tables/build/BuildLineTable.tsx:117 -#: src/tables/sales/SalesOrderLineItemTable.tsx:141 +#: src/tables/build/BuildLineTable.tsx:248 +#: src/tables/sales/SalesOrderLineItemTable.tsx:149 msgid "On order" msgstr "" -#: src/pages/part/PartDetail.tsx:266 +#: src/pages/part/PartDetail.tsx:285 +msgid "Required for Orders" +msgstr "" + +#: src/pages/part/PartDetail.tsx:294 msgid "Allocated to Build Orders" msgstr "" -#: src/pages/part/PartDetail.tsx:274 +#: src/pages/part/PartDetail.tsx:305 msgid "Allocated to Sales Orders" msgstr "" -#: src/pages/part/PartDetail.tsx:281 -#: src/tables/bom/BomTable.tsx:261 -#: src/tables/bom/BomTable.tsx:293 -msgid "Can Build" -msgstr "" - -#: src/pages/part/PartDetail.tsx:288 -#: src/tables/bom/BomTable.tsx:245 -#: src/tables/part/PartTable.tsx:92 -msgid "Building" -msgstr "" - -#: src/pages/part/PartDetail.tsx:302 -#: src/pages/part/PartDetail.tsx:873 -#: src/tables/part/ParametricPartTable.tsx:228 -#: src/tables/part/PartTable.tsx:184 -msgid "Locked" -msgstr "" - -#: src/pages/part/PartDetail.tsx:308 -msgid "Template Part" -msgstr "" - #: src/pages/part/PartDetail.tsx:310 #~ msgid "Edit part" #~ msgstr "Edit part" -#: src/pages/part/PartDetail.tsx:313 -#: src/tables/bom/BomTable.tsx:315 -msgid "Assembled Part" +#: src/pages/part/PartDetail.tsx:315 +#: src/tables/bom/BomTable.tsx:261 +#: src/tables/bom/BomTable.tsx:293 +msgid "Can Build" msgstr "" -#: src/pages/part/PartDetail.tsx:318 -msgid "Component Part" +#: src/pages/part/PartDetail.tsx:322 +#: src/pages/part/PartDetail.tsx:905 +#: src/pages/stock/StockDetail.tsx:766 +#: src/tables/build/BuildOrderTestTable.tsx:220 +#: src/tables/stock/StockItemTable.tsx:334 +msgid "In Production" msgstr "" #: src/pages/part/PartDetail.tsx:322 #~ msgid "Duplicate part" #~ msgstr "Duplicate part" -#: src/pages/part/PartDetail.tsx:323 -#: src/tables/bom/BomTable.tsx:305 -msgid "Testable Part" -msgstr "" - #: src/pages/part/PartDetail.tsx:327 #~ msgid "Delete part" #~ msgstr "Delete part" -#: src/pages/part/PartDetail.tsx:329 +#: src/pages/part/PartDetail.tsx:336 +#: src/tables/part/ParametricPartTable.tsx:228 +#: src/tables/part/PartTable.tsx:184 +msgid "Locked" +msgstr "" + +#: src/pages/part/PartDetail.tsx:342 +msgid "Template Part" +msgstr "" + +#: src/pages/part/PartDetail.tsx:347 +#: src/tables/bom/BomTable.tsx:315 +msgid "Assembled Part" +msgstr "" + +#: src/pages/part/PartDetail.tsx:352 +msgid "Component Part" +msgstr "" + +#: src/pages/part/PartDetail.tsx:357 +#: src/tables/bom/BomTable.tsx:305 +msgid "Testable Part" +msgstr "" + +#: src/pages/part/PartDetail.tsx:363 #: src/tables/bom/BomTable.tsx:310 msgid "Trackable Part" msgstr "" -#: src/pages/part/PartDetail.tsx:334 +#: src/pages/part/PartDetail.tsx:368 msgid "Purchaseable Part" msgstr "" -#: src/pages/part/PartDetail.tsx:339 +#: src/pages/part/PartDetail.tsx:374 msgid "Saleable Part" msgstr "" -#: src/pages/part/PartDetail.tsx:344 +#: src/pages/part/PartDetail.tsx:379 msgid "Virtual Part" msgstr "" -#: src/pages/part/PartDetail.tsx:352 -#: src/tables/ColumnRenderers.tsx:220 +#: src/pages/part/PartDetail.tsx:393 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:215 +#: src/pages/sales/ReturnOrderDetail.tsx:185 +#: src/pages/sales/SalesOrderDetail.tsx:197 +#: src/tables/ColumnRenderers.tsx:234 msgid "Creation Date" msgstr "" -#: src/pages/part/PartDetail.tsx:357 +#: src/pages/part/PartDetail.tsx:398 msgid "Created By" msgstr "" -#: src/pages/part/PartDetail.tsx:372 +#: src/pages/part/PartDetail.tsx:413 msgid "Default Supplier" msgstr "" -#: src/pages/part/PartDetail.tsx:383 -#: src/pages/part/pricing/BomPricingPanel.tsx:79 +#: src/pages/part/PartDetail.tsx:424 +#: src/pages/part/pricing/BomPricingPanel.tsx:113 #: src/pages/part/pricing/VariantPricingPanel.tsx:95 #: src/tables/part/PartTable.tsx:161 msgid "Price Range" msgstr "" -#: src/pages/part/PartDetail.tsx:423 -#: src/pages/stock/StockDetail.tsx:135 +#: src/pages/part/PartDetail.tsx:462 +msgid "Latest Serial Number" +msgstr "" + +#: src/pages/part/PartDetail.tsx:472 +#: src/pages/stock/StockDetail.tsx:151 msgid "Last Stocktake" msgstr "" -#: src/pages/part/PartDetail.tsx:462 +#: src/pages/part/PartDetail.tsx:511 msgid "Stocktake By" msgstr "" -#: src/pages/part/PartDetail.tsx:526 -msgid "Part Details" -msgstr "" - -#: src/pages/part/PartDetail.tsx:557 +#: src/pages/part/PartDetail.tsx:611 msgid "Variants" msgstr "" -#: src/pages/part/PartDetail.tsx:564 -#: src/pages/stock/StockDetail.tsx:307 +#: src/pages/part/PartDetail.tsx:618 +#: src/pages/stock/StockDetail.tsx:430 msgid "Allocations" msgstr "" -#: src/pages/part/PartDetail.tsx:575 -#: src/pages/stock/StockDetail.tsx:318 -#: src/tables/part/PartTable.tsx:99 -msgid "Build Order Allocations" -msgstr "" - -#: src/pages/part/PartDetail.tsx:590 -#: src/pages/stock/StockDetail.tsx:333 -#: src/tables/part/PartTable.tsx:108 -msgid "Sales Order Allocations" -msgstr "" - -#: src/pages/part/PartDetail.tsx:607 +#: src/pages/part/PartDetail.tsx:625 msgid "Bill of Materials" msgstr "" -#: src/pages/part/PartDetail.tsx:623 +#: src/pages/part/PartDetail.tsx:643 msgid "Used In" msgstr "" -#: src/pages/part/PartDetail.tsx:630 +#: src/pages/part/PartDetail.tsx:650 msgid "Part Pricing" msgstr "" -#: src/pages/part/PartDetail.tsx:636 +#: src/pages/part/PartDetail.tsx:656 #: src/pages/purchasing/PurchasingIndex.tsx:42 msgid "Manufacturers" msgstr "" -#: src/pages/part/PartDetail.tsx:676 +#: src/pages/part/PartDetail.tsx:722 msgid "Scheduling" msgstr "" -#: src/pages/part/PartDetail.tsx:688 +#: src/pages/part/PartDetail.tsx:729 msgid "Test Templates" msgstr "" -#: src/pages/part/PartDetail.tsx:715 +#: src/pages/part/PartDetail.tsx:756 msgid "Related Parts" msgstr "" -#: src/pages/part/PartDetail.tsx:849 -#: src/pages/stock/StockDetail.tsx:156 -#: src/pages/stock/StockDetail.tsx:593 -#: src/tables/build/BuildLineTable.tsx:48 +#: src/pages/part/PartDetail.tsx:881 +#: src/pages/stock/StockDetail.tsx:172 +#: src/pages/stock/StockDetail.tsx:783 +#: src/tables/build/BuildLineTable.tsx:179 #: src/tables/part/PartTable.tsx:117 -#: src/tables/stock/StockItemTable.tsx:177 -#: src/tables/stock/StockItemTable.tsx:310 +#: src/tables/stock/StockItemTable.tsx:166 +#: src/tables/stock/StockItemTable.tsx:314 msgid "Available" msgstr "" -#: src/pages/part/PartDetail.tsx:855 +#: src/pages/part/PartDetail.tsx:887 msgid "No Stock" msgstr "" -#: src/pages/part/PartDetail.tsx:861 +#: src/pages/part/PartDetail.tsx:893 +#: src/tables/part/PartTestTemplateTable.tsx:106 +#: src/tables/stock/StockItemTestResultTable.tsx:383 +msgid "Required" +msgstr "" + +#: src/pages/part/PartDetail.tsx:899 #: src/tables/bom/BomTable.tsx:325 #: src/tables/part/PartTable.tsx:86 msgid "On Order" msgstr "" -#: src/pages/part/PartDetail.tsx:867 -#: src/pages/stock/StockDetail.tsx:576 -#: src/tables/build/BuildOrderTestTable.tsx:219 -#: src/tables/stock/StockItemTable.tsx:330 -msgid "In Production" -msgstr "" - -#: src/pages/part/PartDetail.tsx:892 +#: src/pages/part/PartDetail.tsx:924 msgid "Edit Part" msgstr "" -#: src/pages/part/PartDetail.tsx:927 +#: src/pages/part/PartDetail.tsx:959 #: src/tables/part/PartTable.tsx:331 -#: src/tables/part/PartTable.tsx:342 +#: src/tables/part/PartTable.tsx:343 msgid "Add Part" msgstr "" -#: src/pages/part/PartDetail.tsx:941 +#: src/pages/part/PartDetail.tsx:973 msgid "Delete Part" msgstr "" -#: src/pages/part/PartDetail.tsx:950 +#: src/pages/part/PartDetail.tsx:982 msgid "Deleting this part cannot be reversed" msgstr "" -#: src/pages/part/PartDetail.tsx:999 -#: src/pages/stock/LocationDetail.tsx:324 -#: src/tables/stock/StockItemTable.tsx:444 +#: src/pages/part/PartDetail.tsx:1021 +#: src/pages/stock/LocationDetail.tsx:310 +#: src/tables/stock/StockItemTable.tsx:449 msgid "Stock Actions" msgstr "" -#: src/pages/part/PartDetail.tsx:1007 +#: src/pages/part/PartDetail.tsx:1029 msgid "Count part stock" msgstr "" -#: src/pages/part/PartDetail.tsx:1018 +#: src/pages/part/PartDetail.tsx:1040 msgid "Transfer part stock" msgstr "" -#: src/pages/part/PartDetail.tsx:1027 +#: src/pages/part/PartDetail.tsx:1049 msgid "Part Actions" msgstr "" -#: src/pages/part/PartDetail.tsx:1087 +#: src/pages/part/PartDetail.tsx:1113 msgid "Select Part Revision" msgstr "" @@ -4862,113 +5621,214 @@ msgstr "" #~ msgid "Categories" #~ msgstr "Categories" -#: src/pages/part/PartPricingPanel.tsx:68 +#: src/pages/part/PartPricingPanel.tsx:72 msgid "No pricing data found for this part." msgstr "" -#: src/pages/part/PartPricingPanel.tsx:82 -#: src/pages/part/pricing/PricingOverviewPanel.tsx:190 +#: src/pages/part/PartPricingPanel.tsx:87 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:293 msgid "Pricing Overview" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:88 +#: src/pages/part/PartPricingPanel.tsx:93 msgid "Purchase History" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:102 -#: src/pages/part/pricing/PricingOverviewPanel.tsx:100 +#: src/pages/part/PartPricingPanel.tsx:107 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:174 msgid "Internal Pricing" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:120 -#: src/pages/part/pricing/PricingOverviewPanel.tsx:107 +#: src/pages/part/PartPricingPanel.tsx:125 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:181 msgid "BOM Pricing" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:127 -#: src/pages/part/pricing/PricingOverviewPanel.tsx:128 +#: src/pages/part/PartPricingPanel.tsx:132 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:202 msgid "Variant Pricing" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:139 -#: src/pages/part/pricing/PricingOverviewPanel.tsx:135 +#: src/pages/part/PartPricingPanel.tsx:144 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:209 msgid "Sale Pricing" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:146 -#: src/pages/part/pricing/PricingOverviewPanel.tsx:142 +#: src/pages/part/PartPricingPanel.tsx:151 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:216 msgid "Sale History" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:58 -#: src/pages/part/pricing/BomPricingPanel.tsx:138 -#: src/tables/ColumnRenderers.tsx:262 +#: src/pages/part/PartSchedulingDetail.tsx:47 +#: src/pages/part/PartSchedulingDetail.tsx:299 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:156 +msgid "Maximum" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:50 +#: src/pages/part/PartSchedulingDetail.tsx:289 +msgid "Scheduled" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:53 +#: src/pages/part/PartSchedulingDetail.tsx:294 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:144 +msgid "Minimum" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:68 +msgid "Order" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:92 +msgid "Quantity is speculative" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:101 +msgid "No date available for provided quantity" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:105 +msgid "Date is in the past" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:112 +msgid "Scheduled Quantity" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:240 +msgid "No information available" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:241 +msgid "There is no scheduling information available for the selected part" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:276 +msgid "Expected Quantity" +msgstr "" + +#: src/pages/part/PartStocktakeDetail.tsx:63 +#: src/tables/FilterSelectDrawer.tsx:167 +#: src/tables/FilterSelectDrawer.tsx:174 +#: src/tables/build/BuildOrderTestTable.tsx:135 +#: src/tables/purchasing/ManufacturerPartParameterTable.tsx:38 +#: src/tables/stock/StockItemTestResultTable.tsx:192 +msgid "Value" +msgstr "" + +#: src/pages/part/PartStocktakeDetail.tsx:82 +msgid "Edit Stocktake Entry" +msgstr "" + +#: src/pages/part/PartStocktakeDetail.tsx:90 +msgid "Delete Stocktake Entry" +msgstr "" + +#: src/pages/part/PartStocktakeDetail.tsx:96 +#: src/tables/settings/StocktakeReportTable.tsx:69 +msgid "Generate Stocktake Report" +msgstr "" + +#: src/pages/part/PartStocktakeDetail.tsx:101 +#: src/tables/settings/StocktakeReportTable.tsx:71 +msgid "Stocktake report scheduled" +msgstr "" + +#: src/pages/part/PartStocktakeDetail.tsx:119 +#: src/pages/part/PartStocktakeDetail.tsx:235 +#: src/pages/stock/StockDetail.tsx:303 +#: src/tables/stock/StockItemTable.tsx:249 +msgid "Stock Value" +msgstr "" + +#: src/pages/part/PartStocktakeDetail.tsx:139 +#: src/tables/settings/StocktakeReportTable.tsx:77 +msgid "New Stocktake Report" +msgstr "" + +#: src/pages/part/PartStocktakeDetail.tsx:258 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:295 +msgid "Minimum Value" +msgstr "" + +#: src/pages/part/PartStocktakeDetail.tsx:264 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:296 +msgid "Maximum Value" +msgstr "" + +#: src/pages/part/pricing/BomPricingPanel.tsx:87 +#: src/pages/part/pricing/BomPricingPanel.tsx:177 +#: src/tables/ColumnRenderers.tsx:276 #: src/tables/bom/BomTable.tsx:185 #: src/tables/general/ExtraLineItemTable.tsx:64 -#: src/tables/purchasing/PurchaseOrderTable.tsx:112 -#: src/tables/sales/ReturnOrderTable.tsx:104 -#: src/tables/sales/SalesOrderLineItemTable.tsx:89 -#: src/tables/sales/SalesOrderTable.tsx:136 +#: src/tables/purchasing/PurchaseOrderTable.tsx:113 +#: src/tables/sales/ReturnOrderTable.tsx:127 +#: src/tables/sales/SalesOrderLineItemTable.tsx:97 +#: src/tables/sales/SalesOrderTable.tsx:149 msgid "Total Price" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:78 -#: src/pages/part/pricing/BomPricingPanel.tsx:102 +#: src/pages/part/pricing/BomPricingPanel.tsx:112 +#: src/pages/part/pricing/BomPricingPanel.tsx:141 #: src/tables/bom/UsedInTable.tsx:49 +#: src/tables/build/BuildLineTable.tsx:296 #: src/tables/part/PartTable.tsx:202 msgid "Component" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:81 -#: src/pages/part/pricing/VariantPricingPanel.tsx:37 -#: src/pages/part/pricing/VariantPricingPanel.tsx:97 -msgid "Minimum Price" -msgstr "" - -#: src/pages/part/pricing/BomPricingPanel.tsx:82 -#: src/pages/part/pricing/VariantPricingPanel.tsx:45 -#: src/pages/part/pricing/VariantPricingPanel.tsx:98 -msgid "Maximum Price" -msgstr "" - #: src/pages/part/pricing/BomPricingPanel.tsx:112 #~ msgid "Minimum Total Price" #~ msgstr "Minimum Total Price" +#: src/pages/part/pricing/BomPricingPanel.tsx:115 +#: src/pages/part/pricing/VariantPricingPanel.tsx:37 +#: src/pages/part/pricing/VariantPricingPanel.tsx:97 +msgid "Minimum Price" +msgstr "" + +#: src/pages/part/pricing/BomPricingPanel.tsx:116 +#: src/pages/part/pricing/VariantPricingPanel.tsx:45 +#: src/pages/part/pricing/VariantPricingPanel.tsx:98 +msgid "Maximum Price" +msgstr "" + #: src/pages/part/pricing/BomPricingPanel.tsx:117 #~ msgid "Maximum Total Price" #~ msgstr "Maximum Total Price" -#: src/pages/part/pricing/BomPricingPanel.tsx:129 -#: src/pages/part/pricing/PriceBreakPanel.tsx:172 -#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:67 -#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:128 -#: src/pages/part/pricing/SupplierPricingPanel.tsx:62 +#: src/pages/part/pricing/BomPricingPanel.tsx:168 +#: src/pages/part/pricing/PriceBreakPanel.tsx:173 +#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:70 +#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:125 +#: src/pages/part/pricing/SupplierPricingPanel.tsx:66 +#: src/pages/stock/StockDetail.tsx:291 #: src/tables/bom/BomTable.tsx:176 #: src/tables/general/ExtraLineItemTable.tsx:56 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:223 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:225 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:92 +#: src/tables/stock/StockItemTable.tsx:239 msgid "Unit Price" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:154 +#: src/pages/part/pricing/BomPricingPanel.tsx:193 #: src/pages/part/pricing/VariantPricingPanel.tsx:53 -#: src/tables/purchasing/SupplierPartTable.tsx:148 +#: src/tables/purchasing/SupplierPartTable.tsx:150 msgid "Updated" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:219 +#: src/pages/part/pricing/BomPricingPanel.tsx:258 msgid "Pie Chart" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:220 +#: src/pages/part/pricing/BomPricingPanel.tsx:259 msgid "Bar Chart" msgstr "" #: src/pages/part/pricing/PriceBreakPanel.tsx:58 -#: src/pages/part/pricing/PriceBreakPanel.tsx:110 +#: src/pages/part/pricing/PriceBreakPanel.tsx:111 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:142 -#: src/tables/purchasing/SupplierPriceBreakTable.tsx:168 +#: src/tables/purchasing/SupplierPriceBreakTable.tsx:169 msgid "Add Price Break" msgstr "" @@ -4986,46 +5846,70 @@ msgstr "" msgid "Price Break" msgstr "" -#: src/pages/part/pricing/PriceBreakPanel.tsx:170 +#: src/pages/part/pricing/PriceBreakPanel.tsx:171 msgid "Price" msgstr "" -#: src/pages/part/pricing/PricingOverviewPanel.tsx:51 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:68 +msgid "Refreshing pricing data" +msgstr "" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:88 +msgid "Pricing data updated" +msgstr "" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:95 +msgid "Failed to update pricing data" +msgstr "" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:104 +msgid "Edit Pricing" +msgstr "" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:125 msgid "Pricing Category" msgstr "" -#: src/pages/part/pricing/PricingOverviewPanel.tsx:70 -msgid "Minimum" -msgstr "" - -#: src/pages/part/pricing/PricingOverviewPanel.tsx:82 -msgid "Maximum" -msgstr "" - -#: src/pages/part/pricing/PricingOverviewPanel.tsx:114 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:188 msgid "Purchase Pricing" msgstr "" -#: src/pages/part/pricing/PricingOverviewPanel.tsx:149 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:223 msgid "Override Pricing" msgstr "" -#: src/pages/part/pricing/PricingOverviewPanel.tsx:156 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:230 msgid "Overall Pricing" msgstr "" -#: src/pages/part/pricing/PricingOverviewPanel.tsx:175 -#: src/pages/stock/StockDetail.tsx:129 -#: src/tables/stock/StockItemTable.tsx:240 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:249 +#: src/pages/stock/StockDetail.tsx:145 +#: src/tables/stock/StockItemTable.tsx:275 msgid "Last Updated" msgstr "" -#: src/pages/part/pricing/PricingOverviewPanel.tsx:192 -msgid "Minimum Value" +#: src/pages/part/pricing/PricingOverviewPanel.tsx:253 +msgid "Pricing Not Set" msgstr "" -#: src/pages/part/pricing/PricingOverviewPanel.tsx:193 -msgid "Maximum Value" +#: src/pages/part/pricing/PricingOverviewPanel.tsx:254 +msgid "Pricing data has not been calculated for this part" +msgstr "" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:258 +msgid "Pricing Actions" +msgstr "" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:261 +msgid "Refresh" +msgstr "" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:262 +msgid "Refresh pricing data" +msgstr "" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:277 +msgid "Edit pricing data" msgstr "" #: src/pages/part/pricing/PricingPanel.tsx:24 @@ -5044,28 +5928,20 @@ msgstr "" msgid "Loading pricing data" msgstr "" -#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:40 -#: src/pages/part/pricing/SaleHistoryPanel.tsx:36 -#: src/tables/ColumnRenderers.tsx:201 -#: src/tables/build/BuildOrderTestTable.tsx:150 -#: src/tables/plugin/PluginListTable.tsx:139 -msgid "Date" -msgstr "" - #: src/pages/part/pricing/PurchaseHistoryPanel.tsx:47 msgid "Purchase Price" msgstr "" -#: src/pages/part/pricing/SaleHistoryPanel.tsx:22 -msgid "Sale Order" -msgstr "" +#: src/pages/part/pricing/SaleHistoryPanel.tsx:24 +#~ msgid "Sale Order" +#~ msgstr "Sale Order" -#: src/pages/part/pricing/SaleHistoryPanel.tsx:42 -#: src/pages/part/pricing/SaleHistoryPanel.tsx:92 +#: src/pages/part/pricing/SaleHistoryPanel.tsx:44 +#: src/pages/part/pricing/SaleHistoryPanel.tsx:87 msgid "Sale Price" msgstr "" -#: src/pages/part/pricing/SupplierPricingPanel.tsx:65 +#: src/pages/part/pricing/SupplierPricingPanel.tsx:69 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:83 msgid "Supplier Price" msgstr "" @@ -5075,23 +5951,23 @@ msgstr "" msgid "Variant Part" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:93 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:87 msgid "Edit Purchase Order" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:102 -#: src/tables/purchasing/PurchaseOrderTable.tsx:128 -#: src/tables/purchasing/PurchaseOrderTable.tsx:140 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:96 +#: src/tables/purchasing/PurchaseOrderTable.tsx:129 +#: src/tables/purchasing/PurchaseOrderTable.tsx:142 msgid "Add Purchase Order" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:127 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:121 msgid "Supplier Reference" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:158 -#: src/pages/sales/ReturnOrderDetail.tsx:137 -#: src/pages/sales/SalesOrderDetail.tsx:137 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:152 +#: src/pages/sales/ReturnOrderDetail.tsx:129 +#: src/pages/sales/SalesOrderDetail.tsx:132 msgid "Completed Line Items" msgstr "" @@ -5101,91 +5977,112 @@ msgstr "" #~ msgid "Order Currency," #~ msgstr "Order Currency," -#: src/pages/purchasing/PurchaseOrderDetail.tsx:165 -#: src/pages/sales/ReturnOrderDetail.tsx:144 -#: src/pages/sales/SalesOrderDetail.tsx:153 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:161 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:231 +msgid "Destination" +msgstr "" + +#: src/pages/purchasing/PurchaseOrderDetail.tsx:167 +#: src/pages/sales/ReturnOrderDetail.tsx:136 +#: src/pages/sales/SalesOrderDetail.tsx:148 msgid "Order Currency" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:172 -#: src/pages/sales/ReturnOrderDetail.tsx:151 -#: src/pages/sales/SalesOrderDetail.tsx:160 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:173 +#: src/pages/sales/ReturnOrderDetail.tsx:143 +#: src/pages/sales/SalesOrderDetail.tsx:155 msgid "Total Cost" msgstr "" #: src/pages/purchasing/PurchaseOrderDetail.tsx:207 -#: src/pages/sales/ReturnOrderDetail.tsx:186 -#: src/pages/sales/SalesOrderDetail.tsx:195 -msgid "Created On" +#: src/pages/sales/ReturnOrderDetail.tsx:183 +#: src/pages/sales/SalesOrderDetail.tsx:191 +#~ msgid "Created On" +#~ msgstr "Created On" + +#: src/pages/purchasing/PurchaseOrderDetail.tsx:221 +#: src/pages/sales/ReturnOrderDetail.tsx:193 +#: src/pages/sales/SalesOrderDetail.tsx:204 +msgid "Issue Date" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:252 -#: src/pages/sales/ReturnOrderDetail.tsx:231 -#: src/pages/sales/SalesOrderDetail.tsx:266 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:237 +#: src/pages/sales/ReturnOrderDetail.tsx:209 +#: src/pages/sales/SalesOrderDetail.tsx:219 +#: src/tables/build/BuildOrderTable.tsx:98 +#: src/tables/part/PartPurchaseOrdersTable.tsx:105 +#: src/tables/sales/ReturnOrderTable.tsx:122 +msgid "Completion Date" +msgstr "" + +#: src/pages/purchasing/PurchaseOrderDetail.tsx:276 +#: src/pages/sales/ReturnOrderDetail.tsx:248 +#: src/pages/sales/SalesOrderDetail.tsx:288 msgid "Order Details" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:280 -#: src/pages/sales/ReturnOrderDetail.tsx:258 -#: src/pages/sales/SalesOrderDetail.tsx:297 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:304 +#: src/pages/sales/ReturnOrderDetail.tsx:276 +#: src/pages/sales/SalesOrderDetail.tsx:319 msgid "Extra Line Items" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:337 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:346 msgid "Issue Purchase Order" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:345 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:354 msgid "Cancel Purchase Order" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:353 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:362 msgid "Hold Purchase Order" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:361 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:370 msgid "Complete Purchase Order" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:427 -#: src/pages/sales/ReturnOrderDetail.tsx:428 -#: src/pages/sales/SalesOrderDetail.tsx:468 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:425 +#: src/pages/sales/ReturnOrderDetail.tsx:424 +#: src/pages/sales/SalesOrderDetail.tsx:464 msgid "Order Actions" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:101 -#: src/pages/sales/SalesOrderDetail.tsx:107 -#: src/tables/sales/SalesOrderTable.tsx:124 +#: src/pages/sales/ReturnOrderDetail.tsx:92 +#: src/pages/sales/SalesOrderDetail.tsx:101 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:109 +#: src/tables/sales/SalesOrderTable.tsx:137 msgid "Customer Reference" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:315 +#: src/pages/sales/ReturnOrderDetail.tsx:322 msgid "Edit Return Order" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:324 -#: src/tables/sales/ReturnOrderTable.tsx:119 -#: src/tables/sales/ReturnOrderTable.tsx:128 +#: src/pages/sales/ReturnOrderDetail.tsx:331 +#: src/tables/sales/ReturnOrderTable.tsx:142 +#: src/tables/sales/ReturnOrderTable.tsx:152 msgid "Add Return Order" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:336 +#: src/pages/sales/ReturnOrderDetail.tsx:343 msgid "Issue Return Order" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:344 +#: src/pages/sales/ReturnOrderDetail.tsx:349 +#~ msgid "Order canceled" +#~ msgstr "Order canceled" + +#: src/pages/sales/ReturnOrderDetail.tsx:351 msgid "Cancel Return Order" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:347 -msgid "Order canceled" -msgstr "" - -#: src/pages/sales/ReturnOrderDetail.tsx:352 +#: src/pages/sales/ReturnOrderDetail.tsx:359 msgid "Hold Return Order" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:360 +#: src/pages/sales/ReturnOrderDetail.tsx:367 msgid "Complete Return Order" msgstr "" @@ -5193,117 +6090,193 @@ msgstr "" msgid "Customers" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:145 +#: src/pages/sales/SalesOrderDetail.tsx:140 msgid "Completed Shipments" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:243 -msgid "Edit Sales Order" -msgstr "" - -#: src/pages/sales/SalesOrderDetail.tsx:252 -#: src/tables/sales/SalesOrderTable.tsx:84 -#: src/tables/sales/SalesOrderTable.tsx:96 -msgid "Add Sales Order" -msgstr "" - #: src/pages/sales/SalesOrderDetail.tsx:256 #~ msgid "Pending Shipments" #~ msgstr "Pending Shipments" -#: src/pages/sales/SalesOrderDetail.tsx:313 +#: src/pages/sales/SalesOrderDetail.tsx:261 +msgid "Edit Sales Order" +msgstr "" + +#: src/pages/sales/SalesOrderDetail.tsx:274 +#: src/tables/sales/SalesOrderTable.tsx:96 +#: src/tables/sales/SalesOrderTable.tsx:109 +msgid "Add Sales Order" +msgstr "" + +#: src/pages/sales/SalesOrderDetail.tsx:335 msgid "Shipments" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:369 +#: src/pages/sales/SalesOrderDetail.tsx:376 msgid "Issue Sales Order" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:377 +#: src/pages/sales/SalesOrderDetail.tsx:384 msgid "Cancel Sales Order" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:385 +#: src/pages/sales/SalesOrderDetail.tsx:392 msgid "Hold Sales Order" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:393 +#: src/pages/sales/SalesOrderDetail.tsx:400 msgid "Complete Sales Order" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:432 +#: src/pages/sales/SalesOrderDetail.tsx:439 msgid "Ship Order" msgstr "" -#: src/pages/stock/LocationDetail.tsx:117 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:117 +#: src/tables/sales/SalesOrderShipmentTable.tsx:96 +msgid "Shipment Reference" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:124 +msgid "Allocated Items" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:133 +msgid "Tracking Number" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:141 +msgid "Invoice Number" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:149 +#: src/tables/ColumnRenderers.tsx:242 +#: src/tables/sales/SalesOrderAllocationTable.tsx:142 +#: src/tables/sales/SalesOrderShipmentTable.tsx:115 +msgid "Shipment Date" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:157 +#: src/tables/sales/SalesOrderShipmentTable.tsx:119 +msgid "Delivery Date" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:204 +msgid "Shipment Details" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:210 +msgid "Assigned Items" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:241 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:317 +#: src/tables/sales/SalesOrderShipmentTable.tsx:75 +msgid "Edit Shipment" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:248 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:322 +#: src/tables/sales/SalesOrderShipmentTable.tsx:67 +msgid "Cancel Shipment" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:261 +#: src/tables/sales/SalesOrderShipmentTable.tsx:83 +#: src/tables/sales/SalesOrderShipmentTable.tsx:151 +msgid "Complete Shipment" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:276 +#: src/tables/part/PartPurchaseOrdersTable.tsx:121 +msgid "Pending" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:277 +#: src/tables/sales/SalesOrderAllocationTable.tsx:148 +#: src/tables/sales/SalesOrderShipmentTable.tsx:108 +#: src/tables/sales/SalesOrderShipmentTable.tsx:197 +msgid "Shipped" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:279 +#: src/tables/sales/SalesOrderShipmentTable.tsx:202 +msgid "Delivered" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:293 +msgid "Send Shipment" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:312 +msgid "Shipment Actions" +msgstr "" + +#: src/pages/stock/LocationDetail.tsx:111 msgid "Parent Location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:135 +#: src/pages/stock/LocationDetail.tsx:129 msgid "Sublocations" msgstr "" -#: src/pages/stock/LocationDetail.tsx:147 +#: src/pages/stock/LocationDetail.tsx:141 #: src/tables/stock/StockLocationTable.tsx:54 msgid "External" msgstr "" -#: src/pages/stock/LocationDetail.tsx:153 +#: src/pages/stock/LocationDetail.tsx:147 #: src/tables/stock/StockLocationTable.tsx:63 msgid "Location Type" msgstr "" -#: src/pages/stock/LocationDetail.tsx:164 +#: src/pages/stock/LocationDetail.tsx:158 msgid "Top level stock location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:175 +#: src/pages/stock/LocationDetail.tsx:169 msgid "Location Details" msgstr "" -#: src/pages/stock/LocationDetail.tsx:201 +#: src/pages/stock/LocationDetail.tsx:195 msgid "Default Parts" msgstr "" -#: src/pages/stock/LocationDetail.tsx:220 -#: src/pages/stock/LocationDetail.tsx:351 +#: src/pages/stock/LocationDetail.tsx:214 +#: src/pages/stock/LocationDetail.tsx:336 #: src/tables/stock/StockLocationTable.tsx:123 msgid "Edit Stock Location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:241 -#: src/pages/stock/LocationDetail.tsx:356 +#: src/pages/stock/LocationDetail.tsx:235 +#: src/pages/stock/LocationDetail.tsx:341 msgid "Delete Stock Location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:244 +#: src/pages/stock/LocationDetail.tsx:238 msgid "Items Action" msgstr "" -#: src/pages/stock/LocationDetail.tsx:245 +#: src/pages/stock/LocationDetail.tsx:239 msgid "Action for stock items in this location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:250 +#: src/pages/stock/LocationDetail.tsx:244 msgid "Child Locations Action" msgstr "" -#: src/pages/stock/LocationDetail.tsx:251 +#: src/pages/stock/LocationDetail.tsx:245 msgid "Action for child locations in this location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:346 +#: src/pages/stock/LocationDetail.tsx:332 msgid "Location Actions" msgstr "" -#: src/pages/stock/StockDetail.tsx:108 +#: src/pages/stock/StockDetail.tsx:116 msgid "Base Part" msgstr "" -#: src/pages/stock/StockDetail.tsx:115 -msgid "Stock Status" -msgstr "" - #: src/pages/stock/StockDetail.tsx:155 #~ msgid "Link custom barcode to stock item" #~ msgstr "Link custom barcode to stock item" @@ -5312,113 +6285,179 @@ msgstr "" #~ msgid "Unlink custom barcode from stock item" #~ msgstr "Unlink custom barcode from stock item" -#: src/pages/stock/StockDetail.tsx:188 -msgid "Installed In" -msgstr "" - -#: src/pages/stock/StockDetail.tsx:204 -msgid "Consumed By" +#: src/pages/stock/StockDetail.tsx:178 +msgid "Allocated to Orders" msgstr "" #: src/pages/stock/StockDetail.tsx:205 #~ msgid "Edit stock item" #~ msgstr "Edit stock item" -#: src/pages/stock/StockDetail.tsx:213 -#: src/tables/build/BuildAllocatedStockTable.tsx:64 -#: src/tables/stock/StockTrackingTable.tsx:96 -msgid "Build Order" +#: src/pages/stock/StockDetail.tsx:209 +msgid "Installed In" msgstr "" #: src/pages/stock/StockDetail.tsx:217 #~ msgid "Delete stock item" #~ msgstr "Delete stock item" -#: src/pages/stock/StockDetail.tsx:291 +#: src/pages/stock/StockDetail.tsx:226 +msgid "Parent Item" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:230 +msgid "Parent stock item" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:236 +msgid "Consumed By" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:245 +#: src/tables/build/BuildAllocatedStockTable.tsx:77 +#: src/tables/stock/StockTrackingTable.tsx:100 +msgid "Build Order" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:283 +#: src/tables/stock/StockItemTable.tsx:270 +msgid "Expiry Date" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:414 msgid "Stock Details" msgstr "" -#: src/pages/stock/StockDetail.tsx:297 +#: src/pages/stock/StockDetail.tsx:420 msgid "Stock Tracking" msgstr "" -#: src/pages/stock/StockDetail.tsx:350 -msgid "Test Data" -msgstr "" - -#: src/pages/stock/StockDetail.tsx:364 -msgid "Installed Items" -msgstr "" - -#: src/pages/stock/StockDetail.tsx:371 -msgid "Child Items" -msgstr "" - -#: src/pages/stock/StockDetail.tsx:425 -msgid "Edit Stock Item" -msgstr "" - #: src/pages/stock/StockDetail.tsx:433 #~ msgid "Duplicate stock item" #~ msgstr "Duplicate stock item" -#: src/pages/stock/StockDetail.tsx:452 +#: src/pages/stock/StockDetail.tsx:475 +msgid "Test Data" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:489 +msgid "Installed Items" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:496 +msgid "Child Items" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:545 +msgid "Edit Stock Item" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:572 msgid "Delete Stock Item" msgstr "" -#: src/pages/stock/StockDetail.tsx:504 +#: src/pages/stock/StockDetail.tsx:604 +msgid "Serialize Stock Item" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:617 +msgid "Stock item serialized" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:623 +msgid "Return Stock Item" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:626 +msgid "Return this item into stock. This will remove the customer assignment." +msgstr "" + +#: src/pages/stock/StockDetail.tsx:636 +msgid "Item returned to stock" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:666 msgid "Stock Operations" msgstr "" -#: src/pages/stock/StockDetail.tsx:509 +#: src/pages/stock/StockDetail.tsx:671 msgid "Count stock" msgstr "" -#: src/pages/stock/StockDetail.tsx:519 -#: src/tables/stock/StockItemTable.tsx:449 -msgid "Add stock" +#: src/pages/stock/StockDetail.tsx:671 +#: src/tables/stock/StockItemTable.tsx:452 +#~ msgid "Add stock" +#~ msgstr "Add stock" + +#: src/pages/stock/StockDetail.tsx:680 +#: src/tables/stock/StockItemTable.tsx:461 +#~ msgid "Remove stock" +#~ msgstr "Remove stock" + +#: src/pages/stock/StockDetail.tsx:698 +#: src/tables/stock/StockItemTable.tsx:481 +#~ msgid "Transfer stock" +#~ msgstr "Transfer stock" + +#: src/pages/stock/StockDetail.tsx:699 +msgid "Serialize" msgstr "" -#: src/pages/stock/StockDetail.tsx:527 -#: src/tables/stock/StockItemTable.tsx:458 -msgid "Remove stock" +#: src/pages/stock/StockDetail.tsx:700 +msgid "Serialize stock" msgstr "" -#: src/pages/stock/StockDetail.tsx:534 +#: src/pages/stock/StockDetail.tsx:711 msgid "Transfer" msgstr "" -#: src/pages/stock/StockDetail.tsx:535 -#: src/tables/stock/StockItemTable.tsx:478 -msgid "Transfer stock" +#: src/pages/stock/StockDetail.tsx:722 +msgid "Return" msgstr "" -#: src/pages/stock/StockDetail.tsx:546 +#: src/pages/stock/StockDetail.tsx:723 +msgid "Return from customer" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:738 msgid "Stock Item Actions" msgstr "" -#: src/tables/ColumnRenderers.tsx:30 +#: src/pages/stock/StockDetail.tsx:808 +msgid "Stale" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:814 +msgid "Expired" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:820 +msgid "Unavailable" +msgstr "" + +#: src/tables/ColumnRenderers.tsx:36 msgid "Part is not active" msgstr "" -#: src/tables/ColumnRenderers.tsx:35 -msgid "Part is locked" +#: src/tables/ColumnRenderers.tsx:41 +#: src/tables/bom/BomTable.tsx:542 +#: src/tables/part/PartParameterTable.tsx:193 +#: src/tables/part/PartTestTemplateTable.tsx:253 +msgid "Part is Locked" msgstr "" -#: src/tables/ColumnRenderers.tsx:57 +#: src/tables/ColumnRenderers.tsx:41 +#~ msgid "Part is locked" +#~ msgstr "Part is locked" + +#: src/tables/ColumnRenderers.tsx:46 +msgid "You are subscribed to notifications for this part" +msgstr "" + +#: src/tables/ColumnRenderers.tsx:68 msgid "No location set" msgstr "" -#: src/tables/ColumnRenderers.tsx:228 -#: src/tables/sales/SalesOrderShipmentTable.tsx:79 -msgid "Shipment Date" -msgstr "" - -#: src/tables/ColumnRenderers.tsx:248 -#: src/tables/settings/CurrencyTable.tsx:23 -msgid "Currency" -msgstr "" - #: src/tables/ColumnSelect.tsx:16 #: src/tables/ColumnSelect.tsx:23 msgid "Select Columns" @@ -5452,91 +6491,116 @@ msgstr "" msgid "Download Data" msgstr "" -#: src/tables/Filter.tsx:89 -#: src/tables/build/BuildOrderTable.tsx:135 +#: src/tables/Filter.tsx:101 msgid "Assigned to me" msgstr "" -#: src/tables/Filter.tsx:90 -#: src/tables/build/BuildOrderTable.tsx:136 +#: src/tables/Filter.tsx:102 msgid "Show orders assigned to me" msgstr "" -#: src/tables/Filter.tsx:97 +#: src/tables/Filter.tsx:106 +#~ msgid "Show overdue orders" +#~ msgstr "Show overdue orders" + +#: src/tables/Filter.tsx:109 +#: src/tables/build/BuildOrderTable.tsx:120 +#: src/tables/sales/SalesOrderAllocationTable.tsx:59 msgid "Outstanding" msgstr "" -#: src/tables/Filter.tsx:98 -msgid "Show outstanding orders" +#: src/tables/Filter.tsx:110 +msgid "Show outstanding items" msgstr "" -#: src/tables/Filter.tsx:105 -#: src/tables/build/BuildOrderTable.tsx:128 +#: src/tables/Filter.tsx:117 msgid "Overdue" msgstr "" -#: src/tables/Filter.tsx:106 -msgid "Show overdue orders" +#: src/tables/Filter.tsx:118 +msgid "Show overdue items" msgstr "" -#: src/tables/FilterSelectDrawer.tsx:51 +#: src/tables/Filter.tsx:125 +msgid "Minimum Date" +msgstr "" + +#: src/tables/Filter.tsx:126 +msgid "Show items after this date" +msgstr "" + +#: src/tables/Filter.tsx:134 +msgid "Maximum Date" +msgstr "" + +#: src/tables/Filter.tsx:135 +msgid "Show items before this date" +msgstr "" + +#: src/tables/Filter.tsx:144 +msgid "Has Project Code" +msgstr "" + +#: src/tables/Filter.tsx:145 +msgid "Show orders with an assigned project code" +msgstr "" + +#: src/tables/FilterSelectDrawer.tsx:55 msgid "Remove filter" msgstr "" -#: src/tables/FilterSelectDrawer.tsx:130 +#: src/tables/FilterSelectDrawer.tsx:159 msgid "Select filter" msgstr "" -#: src/tables/FilterSelectDrawer.tsx:131 +#: src/tables/FilterSelectDrawer.tsx:160 msgid "Filter" msgstr "" -#: src/tables/FilterSelectDrawer.tsx:138 -#: src/tables/build/BuildOrderTestTable.tsx:134 -#: src/tables/purchasing/ManufacturerPartParameterTable.tsx:38 -#: src/tables/stock/StockItemTestResultTable.tsx:186 -msgid "Value" +#: src/tables/FilterSelectDrawer.tsx:168 +msgid "Select date value" msgstr "" -#: src/tables/FilterSelectDrawer.tsx:140 +#: src/tables/FilterSelectDrawer.tsx:176 msgid "Select filter value" msgstr "" -#: src/tables/FilterSelectDrawer.tsx:183 +#: src/tables/FilterSelectDrawer.tsx:219 +#: src/tables/InvenTreeTableHeader.tsx:214 msgid "Table Filters" msgstr "" -#: src/tables/FilterSelectDrawer.tsx:215 +#: src/tables/FilterSelectDrawer.tsx:251 msgid "Add Filter" msgstr "" -#: src/tables/FilterSelectDrawer.tsx:224 +#: src/tables/FilterSelectDrawer.tsx:260 msgid "Clear Filters" msgstr "" -#: src/tables/InvenTreeTable.tsx:123 -#: src/tables/InvenTreeTable.tsx:431 -#: src/tables/InvenTreeTable.tsx:455 +#: src/tables/InvenTreeTable.tsx:96 +#: src/tables/InvenTreeTable.tsx:417 +#: src/tables/InvenTreeTable.tsx:441 msgid "No records found" msgstr "" -#: src/tables/InvenTreeTable.tsx:466 +#: src/tables/InvenTreeTable.tsx:452 msgid "Server returned incorrect data type" msgstr "" -#: src/tables/InvenTreeTable.tsx:474 +#: src/tables/InvenTreeTable.tsx:460 msgid "Bad request" msgstr "" -#: src/tables/InvenTreeTable.tsx:477 +#: src/tables/InvenTreeTable.tsx:463 msgid "Unauthorized" msgstr "" -#: src/tables/InvenTreeTable.tsx:480 +#: src/tables/InvenTreeTable.tsx:466 msgid "Forbidden" msgstr "" -#: src/tables/InvenTreeTable.tsx:483 +#: src/tables/InvenTreeTable.tsx:469 msgid "Not found" msgstr "" @@ -5544,18 +6608,6 @@ msgstr "" #~ msgid "Are you sure you want to delete the selected records?" #~ msgstr "Are you sure you want to delete the selected records?" -#: src/tables/InvenTreeTable.tsx:525 -msgid "Delete Selected Items" -msgstr "" - -#: src/tables/InvenTreeTable.tsx:529 -msgid "Are you sure you want to delete the selected items?" -msgstr "" - -#: src/tables/InvenTreeTable.tsx:531 -msgid "This action cannot be undone!" -msgstr "" - #: src/tables/InvenTreeTable.tsx:535 #~ msgid "Deleted records" #~ msgstr "Deleted records" @@ -5568,31 +6620,56 @@ msgstr "" #~ msgid "Failed to delete records" #~ msgstr "Failed to delete records" +#: src/tables/InvenTreeTable.tsx:552 +#~ msgid "This action cannot be undone!" +#~ msgstr "This action cannot be undone!" + #: src/tables/InvenTreeTable.tsx:594 #: src/tables/InvenTreeTable.tsx:595 #~ msgid "Print actions" #~ msgstr "Print actions" -#: src/tables/InvenTreeTable.tsx:618 -#: src/tables/InvenTreeTable.tsx:619 -msgid "Barcode actions" +#: src/tables/InvenTreeTable.tsx:655 +#: src/tables/InvenTreeTable.tsx:656 +#~ msgid "Barcode actions" +#~ msgstr "Barcode actions" + +#: src/tables/InvenTreeTable.tsx:712 +#~ msgid "Table filters" +#~ msgstr "Table filters" + +#: src/tables/InvenTreeTable.tsx:725 +#~ msgid "Clear custom query filters" +#~ msgstr "Clear custom query filters" + +#: src/tables/InvenTreeTableHeader.tsx:98 +msgid "Delete Selected Items" msgstr "" -#: src/tables/InvenTreeTable.tsx:628 +#: src/tables/InvenTreeTableHeader.tsx:102 +msgid "Are you sure you want to delete the selected items?" +msgstr "" + +#: src/tables/InvenTreeTableHeader.tsx:104 +#: src/tables/plugin/PluginListTable.tsx:305 +msgid "This action cannot be undone" +msgstr "" + +#: src/tables/InvenTreeTableHeader.tsx:142 +msgid "Custom table filters are active" +msgstr "" + +#: src/tables/InvenTreeTableHeader.tsx:169 msgid "Delete selected records" msgstr "" -#: src/tables/InvenTreeTable.tsx:649 +#: src/tables/InvenTreeTableHeader.tsx:188 msgid "Refresh data" msgstr "" -#: src/tables/InvenTreeTable.tsx:675 -msgid "Table filters" -msgstr "" - #: src/tables/TableHoverCard.tsx:35 -msgid "item-{idx}" -msgstr "" +#~ msgid "item-{idx}" +#~ msgstr "item-{idx}" #: src/tables/UploadAction.tsx:7 #~ msgid "Upload Data" @@ -5607,31 +6684,36 @@ msgid "Part Information" msgstr "" #: src/tables/bom/BomTable.tsx:212 -#: src/tables/build/BuildLineTable.tsx:126 +#: src/tables/build/BuildLineTable.tsx:257 #: src/tables/part/PartTable.tsx:125 msgid "External stock" msgstr "" #: src/tables/bom/BomTable.tsx:220 -#: src/tables/build/BuildLineTable.tsx:89 +#: src/tables/build/BuildLineTable.tsx:220 msgid "Includes substitute stock" msgstr "" #: src/tables/bom/BomTable.tsx:229 -#: src/tables/build/BuildLineTable.tsx:99 -#: src/tables/sales/SalesOrderLineItemTable.tsx:127 +#: src/tables/build/BuildLineTable.tsx:230 +#: src/tables/sales/SalesOrderLineItemTable.tsx:135 msgid "Includes variant stock" msgstr "" +#: src/tables/bom/BomTable.tsx:245 +#: src/tables/part/PartTable.tsx:92 +msgid "Building" +msgstr "" + #: src/tables/bom/BomTable.tsx:254 #: src/tables/part/PartTable.tsx:153 -#: src/tables/sales/SalesOrderLineItemTable.tsx:150 -#: src/tables/stock/StockItemTable.tsx:216 +#: src/tables/sales/SalesOrderLineItemTable.tsx:158 +#: src/tables/stock/StockItemTable.tsx:206 msgid "Stock Information" msgstr "" #: src/tables/bom/BomTable.tsx:285 -#: src/tables/build/BuildLineTable.tsx:248 +#: src/tables/build/BuildLineTable.tsx:409 msgid "Consumable item" msgstr "" @@ -5644,7 +6726,7 @@ msgstr "" #~ msgstr "Create BOM Item" #: src/tables/bom/BomTable.tsx:306 -#: src/tables/build/BuildLineTable.tsx:69 +#: src/tables/build/BuildLineTable.tsx:200 msgid "Show testable items" msgstr "" @@ -5657,11 +6739,12 @@ msgid "Show trackable items" msgstr "" #: src/tables/bom/BomTable.tsx:316 -#: src/tables/build/BuildLineTable.tsx:64 +#: src/tables/build/BuildLineTable.tsx:195 msgid "Show assembled items" msgstr "" #: src/tables/bom/BomTable.tsx:321 +#: src/tables/build/BuildLineTable.tsx:180 msgid "Show items with available stock" msgstr "" @@ -5705,7 +6788,7 @@ msgstr "" #: src/tables/bom/BomTable.tsx:345 #: src/tables/bom/UsedInTable.tsx:79 -#: src/tables/build/BuildLineTable.tsx:58 +#: src/tables/build/BuildLineTable.tsx:189 msgid "Optional" msgstr "" @@ -5723,7 +6806,7 @@ msgstr "" #~ msgstr "Bom item deleted" #: src/tables/bom/BomTable.tsx:350 -#: src/tables/build/BuildLineTable.tsx:53 +#: src/tables/build/BuildLineTable.tsx:184 msgid "Consumable" msgstr "" @@ -5749,12 +6832,12 @@ msgid "Show items with pricing" msgstr "" #: src/tables/bom/BomTable.tsx:378 -#: src/tables/bom/BomTable.tsx:511 +#: src/tables/bom/BomTable.tsx:512 msgid "Import BOM Data" msgstr "" #: src/tables/bom/BomTable.tsx:388 -#: src/tables/bom/BomTable.tsx:523 +#: src/tables/bom/BomTable.tsx:526 msgid "Add BOM Item" msgstr "" @@ -5780,7 +6863,7 @@ msgstr "" #: src/tables/bom/BomTable.tsx:423 #: src/tables/bom/BomTable.tsx:426 -#: src/tables/bom/BomTable.tsx:517 +#: src/tables/bom/BomTable.tsx:519 msgid "Validate BOM" msgstr "" @@ -5812,21 +6895,15 @@ msgstr "" msgid "Edit Substitutes" msgstr "" -#: src/tables/bom/BomTable.tsx:539 -#: src/tables/part/PartParameterTable.tsx:193 -#: src/tables/part/PartTestTemplateTable.tsx:252 -msgid "Part is Locked" -msgstr "" - -#: src/tables/bom/BomTable.tsx:544 +#: src/tables/bom/BomTable.tsx:547 msgid "Bill of materials cannot be edited, as the part is locked" msgstr "" #: src/tables/bom/UsedInTable.tsx:33 -#: src/tables/build/BuildLineTable.tsx:63 +#: src/tables/build/BuildLineTable.tsx:194 #: src/tables/part/ParametricPartTable.tsx:233 #: src/tables/part/PartTable.tsx:190 -#: src/tables/stock/StockItemTable.tsx:300 +#: src/tables/stock/StockItemTable.tsx:304 msgid "Assembly" msgstr "" @@ -5844,285 +6921,347 @@ msgstr "" msgid "Show trackable assemblies" msgstr "" -#: src/tables/build/BuildAllocatedStockTable.tsx:54 +#: src/tables/build/BuildAllocatedStockTable.tsx:56 msgid "Allocated to Output" msgstr "" -#: src/tables/build/BuildAllocatedStockTable.tsx:55 +#: src/tables/build/BuildAllocatedStockTable.tsx:57 msgid "Show items allocated to a build output" msgstr "" -#: src/tables/build/BuildAllocatedStockTable.tsx:76 -#: src/tables/part/PartPurchaseOrdersTable.tsx:125 -#: src/tables/sales/SalesOrderAllocationTable.tsx:62 +#: src/tables/build/BuildAllocatedStockTable.tsx:65 +#: src/tables/build/BuildOrderTable.tsx:159 +#: src/tables/part/PartParameterTable.tsx:212 +#: src/tables/part/PartPurchaseOrdersTable.tsx:138 +#: src/tables/sales/ReturnOrderTable.tsx:84 +#: src/tables/sales/SalesOrderAllocationTable.tsx:68 +#: src/tables/sales/SalesOrderTable.tsx:84 +#: src/tables/stock/StockItemTable.tsx:339 +msgid "Include Variants" +msgstr "" + +#: src/tables/build/BuildAllocatedStockTable.tsx:66 +#: src/tables/build/BuildOrderTable.tsx:160 +#: src/tables/part/PartPurchaseOrdersTable.tsx:139 +#: src/tables/sales/ReturnOrderTable.tsx:85 +#: src/tables/sales/SalesOrderAllocationTable.tsx:69 +#: src/tables/sales/SalesOrderTable.tsx:85 +msgid "Include orders for part variants" +msgstr "" + +#: src/tables/build/BuildAllocatedStockTable.tsx:89 +#: src/tables/part/PartPurchaseOrdersTable.tsx:131 +#: src/tables/sales/SalesOrderAllocationTable.tsx:93 msgid "Order Status" msgstr "" -#: src/tables/build/BuildAllocatedStockTable.tsx:96 -#: src/tables/sales/SalesOrderAllocationTable.tsx:75 +#: src/tables/build/BuildAllocatedStockTable.tsx:117 +#: src/tables/sales/SalesOrderAllocationTable.tsx:126 msgid "Allocated Quantity" msgstr "" -#: src/tables/build/BuildAllocatedStockTable.tsx:116 -#: src/tables/sales/SalesOrderAllocationTable.tsx:94 +#: src/tables/build/BuildAllocatedStockTable.tsx:137 +#: src/tables/sales/SalesOrderAllocationTable.tsx:120 msgid "Available Quantity" msgstr "" -#: src/tables/build/BuildAllocatedStockTable.tsx:126 -#: src/tables/build/BuildOrderTestTable.tsx:176 -#: src/tables/build/BuildOrderTestTable.tsx:200 -#: src/tables/build/BuildOutputTable.tsx:312 -msgid "Build Output" +#: src/tables/build/BuildAllocatedStockTable.tsx:164 +#: src/tables/build/BuildLineTable.tsx:513 +msgid "Edit Stock Allocation" msgstr "" -#: src/tables/build/BuildAllocatedStockTable.tsx:143 -msgid "Edit Build Item" -msgstr "" +#: src/tables/build/BuildAllocatedStockTable.tsx:164 +#~ msgid "Edit Build Item" +#~ msgstr "Edit Build Item" -#: src/tables/build/BuildAllocatedStockTable.tsx:153 -msgid "Delete Build Item" -msgstr "" +#: src/tables/build/BuildAllocatedStockTable.tsx:174 +#~ msgid "Delete Build Item" +#~ msgstr "Delete Build Item" -#: src/tables/build/BuildLineTable.tsx:43 -#: src/tables/stock/StockItemTable.tsx:305 -msgid "Allocated" -msgstr "" - -#: src/tables/build/BuildLineTable.tsx:44 -msgid "Show allocated lines" -msgstr "" - -#: src/tables/build/BuildLineTable.tsx:49 -msgid "Show lines with available stock" -msgstr "" - -#: src/tables/build/BuildLineTable.tsx:54 -msgid "Show consumable lines" +#: src/tables/build/BuildAllocatedStockTable.tsx:177 +#: src/tables/build/BuildLineTable.tsx:526 +msgid "Delete Stock Allocation" msgstr "" #: src/tables/build/BuildLineTable.tsx:59 +#~ msgid "Show lines with available stock" +#~ msgstr "Show lines with available stock" + +#: src/tables/build/BuildLineTable.tsx:175 +msgid "Show allocated lines" +msgstr "" + +#: src/tables/build/BuildLineTable.tsx:185 +msgid "Show consumable lines" +msgstr "" + +#: src/tables/build/BuildLineTable.tsx:190 msgid "Show optional lines" msgstr "" -#: src/tables/build/BuildLineTable.tsx:68 +#: src/tables/build/BuildLineTable.tsx:199 #: src/tables/part/PartTable.tsx:208 msgid "Testable" msgstr "" -#: src/tables/build/BuildLineTable.tsx:73 -#: src/tables/stock/StockItemTable.tsx:364 +#: src/tables/build/BuildLineTable.tsx:204 +#: src/tables/stock/StockItemTable.tsx:368 msgid "Tracked" msgstr "" -#: src/tables/build/BuildLineTable.tsx:74 +#: src/tables/build/BuildLineTable.tsx:205 msgid "Show tracked lines" msgstr "" -#: src/tables/build/BuildLineTable.tsx:108 -#: src/tables/sales/SalesOrderLineItemTable.tsx:133 +#: src/tables/build/BuildLineTable.tsx:239 +#: src/tables/sales/SalesOrderLineItemTable.tsx:141 msgid "In production" msgstr "" -#: src/tables/build/BuildLineTable.tsx:136 +#: src/tables/build/BuildLineTable.tsx:267 msgid "Insufficient stock" msgstr "" -#: src/tables/build/BuildLineTable.tsx:152 -#: src/tables/sales/SalesOrderLineItemTable.tsx:121 -#: src/tables/stock/StockItemTable.tsx:186 +#: src/tables/build/BuildLineTable.tsx:283 +#: src/tables/sales/SalesOrderLineItemTable.tsx:129 +#: src/tables/stock/StockItemTable.tsx:175 msgid "No stock available" msgstr "" -#: src/tables/build/BuildLineTable.tsx:201 +#: src/tables/build/BuildLineTable.tsx:355 msgid "Gets Inherited" msgstr "" -#: src/tables/build/BuildLineTable.tsx:210 +#: src/tables/build/BuildLineTable.tsx:366 msgid "Unit Quantity" msgstr "" -#: src/tables/build/BuildLineTable.tsx:267 -#: src/tables/sales/SalesOrderLineItemTable.tsx:230 +#: src/tables/build/BuildLineTable.tsx:381 +msgid "Required Quantity" +msgstr "" + +#: src/tables/build/BuildLineTable.tsx:432 +#: src/tables/sales/SalesOrderLineItemTable.tsx:254 msgid "Create Build Order" msgstr "" -#: src/tables/build/BuildLineTable.tsx:298 -msgid "Allocate Stock" +#: src/tables/build/BuildLineTable.tsx:460 +msgid "Auto allocation in progress" msgstr "" -#: src/tables/build/BuildLineTable.tsx:305 +#: src/tables/build/BuildLineTable.tsx:463 +#: src/tables/build/BuildLineTable.tsx:632 +msgid "Auto Allocate Stock" +msgstr "" + +#: src/tables/build/BuildLineTable.tsx:464 +msgid "Automatically allocate stock to this build according to the selected options" +msgstr "" + +#: src/tables/build/BuildLineTable.tsx:482 +#: src/tables/build/BuildLineTable.tsx:496 +#: src/tables/build/BuildLineTable.tsx:579 +#: src/tables/build/BuildLineTable.tsx:664 +#: src/tables/build/BuildOutputTable.tsx:314 +#: src/tables/build/BuildOutputTable.tsx:319 +msgid "Deallocate Stock" +msgstr "" + +#: src/tables/build/BuildLineTable.tsx:498 +msgid "Deallocate all untracked stock for this build order" +msgstr "" + +#: src/tables/build/BuildLineTable.tsx:500 +msgid "Deallocate stock from the selected line item" +msgstr "" + +#: src/tables/build/BuildLineTable.tsx:504 +msgid "Stock has been deallocated" +msgstr "" + +#: src/tables/build/BuildLineTable.tsx:589 msgid "Order Stock" msgstr "" -#: src/tables/build/BuildLineTable.tsx:312 +#: src/tables/build/BuildLineTable.tsx:596 msgid "Build Stock" msgstr "" -#: src/tables/build/BuildOrderTable.tsx:111 -msgid "Show active orders" +#: src/tables/build/BuildLineTable.tsx:610 +msgid "View Part" msgstr "" #: src/tables/build/BuildOrderTable.tsx:116 -msgid "Cascade" -msgstr "" +#~ msgid "Cascade" +#~ msgstr "Cascade" #: src/tables/build/BuildOrderTable.tsx:117 -msgid "Display recursive child orders" +#~ msgid "Display recursive child orders" +#~ msgstr "Display recursive child orders" + +#: src/tables/build/BuildOrderTable.tsx:121 +msgid "Show outstanding orders" msgstr "" -#: src/tables/build/BuildOrderTable.tsx:123 -#: src/tables/part/PartPurchaseOrdersTable.tsx:126 -#: src/tables/purchasing/PurchaseOrderTable.tsx:56 -#: src/tables/sales/ReturnOrderTable.tsx:47 -#: src/tables/sales/SalesOrderTable.tsx:54 +#: src/tables/build/BuildOrderTable.tsx:121 +#~ msgid "Show active orders" +#~ msgstr "Show active orders" + +#: src/tables/build/BuildOrderTable.tsx:122 +#~ msgid "Show overdue status" +#~ msgstr "Show overdue status" + +#: src/tables/build/BuildOrderTable.tsx:126 +#: src/tables/part/PartPurchaseOrdersTable.tsx:132 +#: src/tables/purchasing/PurchaseOrderTable.tsx:59 +#: src/tables/sales/ReturnOrderTable.tsx:57 +#: src/tables/sales/SalesOrderTable.tsx:57 msgid "Filter by order status" msgstr "" -#: src/tables/build/BuildOrderTable.tsx:130 -msgid "Show overdue status" -msgstr "" - -#: src/tables/build/BuildOrderTable.tsx:141 -#: src/tables/purchasing/PurchaseOrderTable.tsx:65 -#: src/tables/sales/ReturnOrderTable.tsx:56 -#: src/tables/sales/SalesOrderTable.tsx:63 +#: src/tables/build/BuildOrderTable.tsx:136 +#: src/tables/purchasing/PurchaseOrderTable.tsx:70 +#: src/tables/sales/ReturnOrderTable.tsx:68 +#: src/tables/sales/SalesOrderTable.tsx:68 msgid "Filter by project code" msgstr "" -#: src/tables/build/BuildOrderTable.tsx:146 -#: src/tables/purchasing/PurchaseOrderTable.tsx:70 -#: src/tables/sales/ReturnOrderTable.tsx:61 -#: src/tables/sales/SalesOrderTable.tsx:68 -msgid "Has Project Code" -msgstr "" - -#: src/tables/build/BuildOrderTable.tsx:147 +#: src/tables/build/BuildOrderTable.tsx:139 #: src/tables/purchasing/PurchaseOrderTable.tsx:71 #: src/tables/sales/ReturnOrderTable.tsx:62 #: src/tables/sales/SalesOrderTable.tsx:69 -msgid "Filter by whether the purchase order has a project code" -msgstr "" +#~ msgid "Filter by whether the purchase order has a project code" +#~ msgstr "Filter by whether the purchase order has a project code" -#: src/tables/build/BuildOrderTable.tsx:152 +#: src/tables/build/BuildOrderTable.tsx:143 msgid "Filter by user who issued this order" msgstr "" -#: src/tables/build/BuildOrderTable.tsx:158 -#: src/tables/purchasing/PurchaseOrderTable.tsx:76 -#: src/tables/sales/ReturnOrderTable.tsx:67 -#: src/tables/sales/SalesOrderTable.tsx:74 +#: src/tables/build/BuildOrderTable.tsx:149 +#: src/tables/purchasing/PurchaseOrderTable.tsx:77 +#: src/tables/sales/ReturnOrderTable.tsx:75 +#: src/tables/sales/SalesOrderTable.tsx:75 msgid "Filter by responsible owner" msgstr "" -#: src/tables/build/BuildOrderTestTable.tsx:75 -#: src/tables/build/BuildOrderTestTable.tsx:111 -#: src/tables/stock/StockItemTestResultTable.tsx:257 -#: src/tables/stock/StockItemTestResultTable.tsx:329 -#: src/tables/stock/StockItemTestResultTable.tsx:384 +#: src/tables/build/BuildOrderTestTable.tsx:76 +#: src/tables/build/BuildOrderTestTable.tsx:112 +#: src/tables/stock/StockItemTestResultTable.tsx:275 +#: src/tables/stock/StockItemTestResultTable.tsx:347 +#: src/tables/stock/StockItemTestResultTable.tsx:403 msgid "Add Test Result" msgstr "" -#: src/tables/build/BuildOrderTestTable.tsx:82 -#: src/tables/stock/StockItemTestResultTable.tsx:259 +#: src/tables/build/BuildOrderTestTable.tsx:83 +#: src/tables/stock/StockItemTestResultTable.tsx:277 msgid "Test result added" msgstr "" -#: src/tables/build/BuildOrderTestTable.tsx:110 -#: src/tables/stock/StockItemTestResultTable.tsx:174 +#: src/tables/build/BuildOrderTestTable.tsx:111 +#: src/tables/stock/StockItemTestResultTable.tsx:180 msgid "No Result" msgstr "" -#: src/tables/build/BuildOrderTestTable.tsx:220 +#: src/tables/build/BuildOrderTestTable.tsx:221 msgid "Show build outputs currently in production" msgstr "" +#: src/tables/build/BuildOutputTable.tsx:76 +msgid "Build Output Stock Allocation" +msgstr "" + #: src/tables/build/BuildOutputTable.tsx:161 #~ msgid "Delete build output" #~ msgstr "Delete build output" -#: src/tables/build/BuildOutputTable.tsx:173 -#: src/tables/build/BuildOutputTable.tsx:211 +#: src/tables/build/BuildOutputTable.tsx:258 +#: src/tables/build/BuildOutputTable.tsx:374 msgid "Add Build Output" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:216 +#: src/tables/build/BuildOutputTable.tsx:304 +#~ msgid "Edit build output" +#~ msgstr "Edit build output" + +#: src/tables/build/BuildOutputTable.tsx:306 +#: src/tables/build/BuildOutputTable.tsx:417 +msgid "Edit Build Output" +msgstr "" + +#: src/tables/build/BuildOutputTable.tsx:321 +msgid "This action will deallocate all stock from the selected build output" +msgstr "" + +#: src/tables/build/BuildOutputTable.tsx:341 msgid "Complete selected outputs" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:226 +#: src/tables/build/BuildOutputTable.tsx:352 msgid "Scrap selected outputs" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:236 +#: src/tables/build/BuildOutputTable.tsx:363 msgid "Cancel selected outputs" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:252 +#: src/tables/build/BuildOutputTable.tsx:385 msgid "Allocate" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:253 +#: src/tables/build/BuildOutputTable.tsx:386 msgid "Allocate stock to build output" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:259 +#: src/tables/build/BuildOutputTable.tsx:396 msgid "Deallocate" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:260 +#: src/tables/build/BuildOutputTable.tsx:397 msgid "Deallocate stock from build output" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:267 +#: src/tables/build/BuildOutputTable.tsx:408 msgid "Complete build output" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:276 +#: src/tables/build/BuildOutputTable.tsx:424 msgid "Scrap" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:277 +#: src/tables/build/BuildOutputTable.tsx:425 msgid "Scrap build output" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:280 -#~ msgid "Allocated Items" -#~ msgstr "Allocated Items" - -#: src/tables/build/BuildOutputTable.tsx:287 +#: src/tables/build/BuildOutputTable.tsx:435 msgid "Cancel build output" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:325 -msgid "Batch" -msgstr "" - -#: src/tables/build/BuildOutputTable.tsx:340 +#: src/tables/build/BuildOutputTable.tsx:488 msgid "Allocated Lines" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:355 +#: src/tables/build/BuildOutputTable.tsx:503 msgid "Required Tests" msgstr "" -#: src/tables/company/AddressTable.tsx:121 -#: src/tables/company/AddressTable.tsx:185 +#: src/tables/company/AddressTable.tsx:118 +#: src/tables/company/AddressTable.tsx:183 msgid "Add Address" msgstr "" -#: src/tables/company/AddressTable.tsx:126 +#: src/tables/company/AddressTable.tsx:123 msgid "Address created" msgstr "" -#: src/tables/company/AddressTable.tsx:135 +#: src/tables/company/AddressTable.tsx:132 msgid "Edit Address" msgstr "" -#: src/tables/company/AddressTable.tsx:143 +#: src/tables/company/AddressTable.tsx:140 msgid "Delete Address" msgstr "" -#: src/tables/company/AddressTable.tsx:144 +#: src/tables/company/AddressTable.tsx:141 msgid "Are you sure you want to delete this address?" msgstr "" @@ -6130,24 +7269,24 @@ msgstr "" #~ msgid "New Company" #~ msgstr "New Company" -#: src/tables/company/CompanyTable.tsx:74 -#: src/tables/company/CompanyTable.tsx:123 +#: src/tables/company/CompanyTable.tsx:75 +#: src/tables/company/CompanyTable.tsx:125 msgid "Add Company" msgstr "" -#: src/tables/company/CompanyTable.tsx:96 +#: src/tables/company/CompanyTable.tsx:97 msgid "Show active companies" msgstr "" -#: src/tables/company/CompanyTable.tsx:101 +#: src/tables/company/CompanyTable.tsx:102 msgid "Show companies which are suppliers" msgstr "" -#: src/tables/company/CompanyTable.tsx:106 +#: src/tables/company/CompanyTable.tsx:107 msgid "Show companies which are manufacturers" msgstr "" -#: src/tables/company/CompanyTable.tsx:111 +#: src/tables/company/CompanyTable.tsx:112 msgid "Show companies which are customers" msgstr "" @@ -6163,96 +7302,99 @@ msgstr "" msgid "Delete Contact" msgstr "" -#: src/tables/company/ContactTable.tsx:129 +#: src/tables/company/ContactTable.tsx:130 msgid "Add contact" msgstr "" -#: src/tables/general/AttachmentTable.tsx:130 +#: src/tables/general/AttachmentTable.tsx:135 msgid "File uploaded" msgstr "" -#: src/tables/general/AttachmentTable.tsx:131 +#: src/tables/general/AttachmentTable.tsx:136 msgid "File {0} uploaded successfully" msgstr "" -#: src/tables/general/AttachmentTable.tsx:142 +#: src/tables/general/AttachmentTable.tsx:147 msgid "Upload Error" msgstr "" -#: src/tables/general/AttachmentTable.tsx:143 +#: src/tables/general/AttachmentTable.tsx:148 msgid "File could not be uploaded" msgstr "" -#: src/tables/general/AttachmentTable.tsx:191 +#: src/tables/general/AttachmentTable.tsx:196 msgid "Upload Attachment" msgstr "" -#: src/tables/general/AttachmentTable.tsx:201 +#: src/tables/general/AttachmentTable.tsx:206 msgid "Edit Attachment" msgstr "" -#: src/tables/general/AttachmentTable.tsx:215 +#: src/tables/general/AttachmentTable.tsx:220 msgid "Delete Attachment" msgstr "" -#: src/tables/general/AttachmentTable.tsx:225 +#: src/tables/general/AttachmentTable.tsx:230 msgid "Is Link" msgstr "" -#: src/tables/general/AttachmentTable.tsx:226 +#: src/tables/general/AttachmentTable.tsx:231 msgid "Show link attachments" msgstr "" -#: src/tables/general/AttachmentTable.tsx:230 +#: src/tables/general/AttachmentTable.tsx:235 msgid "Is File" msgstr "" -#: src/tables/general/AttachmentTable.tsx:231 +#: src/tables/general/AttachmentTable.tsx:236 msgid "Show file attachments" msgstr "" -#: src/tables/general/AttachmentTable.tsx:240 +#: src/tables/general/AttachmentTable.tsx:245 msgid "Add attachment" msgstr "" -#: src/tables/general/AttachmentTable.tsx:251 -msgid "Add external link" -msgstr "" - #: src/tables/general/AttachmentTable.tsx:254 #~ msgid "Upload attachment" #~ msgstr "Upload attachment" -#: src/tables/general/AttachmentTable.tsx:299 +#: src/tables/general/AttachmentTable.tsx:256 +msgid "Add external link" +msgstr "" + +#: src/tables/general/AttachmentTable.tsx:304 msgid "No attachments found" msgstr "" -#: src/tables/general/AttachmentTable.tsx:337 +#: src/tables/general/AttachmentTable.tsx:343 msgid "Drag attachment file here to upload" msgstr "" #: src/tables/general/ExtraLineItemTable.tsx:86 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:251 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:60 -#: src/tables/sales/SalesOrderLineItemTable.tsx:196 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:263 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:362 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:72 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:168 +#: src/tables/sales/SalesOrderLineItemTable.tsx:206 +#: src/tables/sales/SalesOrderLineItemTable.tsx:291 msgid "Add Line Item" msgstr "" #: src/tables/general/ExtraLineItemTable.tsx:98 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:271 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:72 -#: src/tables/sales/SalesOrderLineItemTable.tsx:214 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:283 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:84 +#: src/tables/sales/SalesOrderLineItemTable.tsx:224 msgid "Edit Line Item" msgstr "" #: src/tables/general/ExtraLineItemTable.tsx:106 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:279 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:80 -#: src/tables/sales/SalesOrderLineItemTable.tsx:222 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:291 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:92 +#: src/tables/sales/SalesOrderLineItemTable.tsx:232 msgid "Delete Line Item" msgstr "" -#: src/tables/general/ExtraLineItemTable.tsx:142 +#: src/tables/general/ExtraLineItemTable.tsx:143 msgid "Add Extra Line Item" msgstr "" @@ -6261,12 +7403,12 @@ msgid "Machine restarted" msgstr "" #: src/tables/machine/MachineListTable.tsx:212 -#: src/tables/machine/MachineListTable.tsx:263 +#: src/tables/machine/MachineListTable.tsx:261 msgid "Edit machine" msgstr "" #: src/tables/machine/MachineListTable.tsx:226 -#: src/tables/machine/MachineListTable.tsx:267 +#: src/tables/machine/MachineListTable.tsx:265 msgid "Delete machine" msgstr "" @@ -6278,51 +7420,50 @@ msgstr "" msgid "Are you sure you want to remove the machine \"{0}\"?" msgstr "" -#: src/tables/machine/MachineListTable.tsx:255 -#: src/tables/machine/MachineListTable.tsx:432 +#: src/tables/machine/MachineListTable.tsx:254 +#: src/tables/machine/MachineListTable.tsx:442 msgid "Restart required" msgstr "" -#: src/tables/machine/MachineListTable.tsx:259 +#: src/tables/machine/MachineListTable.tsx:258 msgid "Machine Actions" msgstr "" -#: src/tables/machine/MachineListTable.tsx:272 +#: src/tables/machine/MachineListTable.tsx:270 msgid "Restart" msgstr "" -#: src/tables/machine/MachineListTable.tsx:274 +#: src/tables/machine/MachineListTable.tsx:272 msgid "Restart machine" msgstr "" -#: src/tables/machine/MachineListTable.tsx:276 +#: src/tables/machine/MachineListTable.tsx:274 msgid "manual restart required" msgstr "" +#: src/tables/machine/MachineListTable.tsx:291 +#~ msgid "Machine information" +#~ msgstr "Machine information" + #: src/tables/machine/MachineListTable.tsx:292 -msgid "Machine information" +msgid "Machine Information" msgstr "" -#: src/tables/machine/MachineListTable.tsx:303 -#: src/tables/machine/MachineListTable.tsx:599 +#: src/tables/machine/MachineListTable.tsx:302 +#: src/tables/machine/MachineListTable.tsx:610 msgid "Machine Type" msgstr "" -#: src/tables/machine/MachineListTable.tsx:316 +#: src/tables/machine/MachineListTable.tsx:315 msgid "Machine Driver" msgstr "" -#: src/tables/machine/MachineListTable.tsx:329 +#: src/tables/machine/MachineListTable.tsx:330 msgid "Initialized" msgstr "" -#: src/tables/machine/MachineListTable.tsx:350 -#: src/tables/machine/MachineTypeTable.tsx:261 -msgid "Errors" -msgstr "" - -#: src/tables/machine/MachineListTable.tsx:358 -#: src/tables/machine/MachineTypeTable.tsx:269 +#: src/tables/machine/MachineListTable.tsx:359 +#: src/tables/machine/MachineTypeTable.tsx:290 msgid "No errors reported" msgstr "" @@ -6330,7 +7471,7 @@ msgstr "" msgid "Machine Settings" msgstr "" -#: src/tables/machine/MachineListTable.tsx:389 +#: src/tables/machine/MachineListTable.tsx:394 msgid "Driver Settings" msgstr "" @@ -6338,86 +7479,109 @@ msgstr "" #~ msgid "Create machine" #~ msgstr "Create machine" -#: src/tables/machine/MachineListTable.tsx:506 +#: src/tables/machine/MachineListTable.tsx:516 +#: src/tables/machine/MachineListTable.tsx:558 msgid "Add machine" msgstr "" #: src/tables/machine/MachineListTable.tsx:561 -msgid "Machine detail" +#~ msgid "Machine detail" +#~ msgstr "Machine detail" + +#: src/tables/machine/MachineListTable.tsx:572 +msgid "Machine Detail" msgstr "" -#: src/tables/machine/MachineListTable.tsx:608 +#: src/tables/machine/MachineListTable.tsx:619 msgid "Driver" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:73 +#: src/tables/machine/MachineTypeTable.tsx:78 msgid "Builtin driver" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:89 +#: src/tables/machine/MachineTypeTable.tsx:96 +msgid "Not Found" +msgstr "" + +#: src/tables/machine/MachineTypeTable.tsx:99 msgid "Machine type not found." msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:97 -msgid "Machine type information" +#: src/tables/machine/MachineTypeTable.tsx:99 +#~ msgid "Machine type information" +#~ msgstr "Machine type information" + +#: src/tables/machine/MachineTypeTable.tsx:109 +msgid "Machine Type Information" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:110 -#: src/tables/machine/MachineTypeTable.tsx:217 +#: src/tables/machine/MachineTypeTable.tsx:124 +#: src/tables/machine/MachineTypeTable.tsx:238 msgid "Slug" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:118 -#: src/tables/machine/MachineTypeTable.tsx:238 +#: src/tables/machine/MachineTypeTable.tsx:135 +#: src/tables/machine/MachineTypeTable.tsx:259 msgid "Provider plugin" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:130 -#: src/tables/machine/MachineTypeTable.tsx:250 +#: src/tables/machine/MachineTypeTable.tsx:147 +#: src/tables/machine/MachineTypeTable.tsx:271 msgid "Provider file" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:135 -#: src/tables/machine/MachineTypeTable.tsx:255 -#: src/tables/plugin/PluginListTable.tsx:180 -#: src/tables/plugin/PluginListTable.tsx:568 -msgid "Builtin" +#: src/tables/machine/MachineTypeTable.tsx:148 +#~ msgid "Available drivers" +#~ msgstr "Available drivers" + +#: src/tables/machine/MachineTypeTable.tsx:162 +msgid "Available Drivers" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:146 -msgid "Available drivers" -msgstr "" - -#: src/tables/machine/MachineTypeTable.tsx:196 +#: src/tables/machine/MachineTypeTable.tsx:217 msgid "Machine driver not found." msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:204 +#: src/tables/machine/MachineTypeTable.tsx:225 msgid "Machine driver information" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:224 +#: src/tables/machine/MachineTypeTable.tsx:245 msgid "Machine type" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:327 +#: src/tables/machine/MachineTypeTable.tsx:338 +#~ msgid "Machine type detail" +#~ msgstr "Machine type detail" + +#: src/tables/machine/MachineTypeTable.tsx:348 msgid "Builtin type" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:336 -msgid "Machine type detail" +#: src/tables/machine/MachineTypeTable.tsx:348 +#~ msgid "Machine driver detail" +#~ msgstr "Machine driver detail" + +#: src/tables/machine/MachineTypeTable.tsx:357 +msgid "Machine Type Detail" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:346 -msgid "Machine driver detail" +#: src/tables/machine/MachineTypeTable.tsx:367 +msgid "Machine Driver Detail" msgstr "" #: src/tables/notifications/NotificationsTable.tsx:26 msgid "Age" msgstr "" +#: src/tables/notifications/NotificationsTable.tsx:36 +msgid "Notification" +msgstr "" + #: src/tables/notifications/NotificationsTable.tsx:40 #: src/tables/plugin/PluginErrorTable.tsx:37 +#: src/tables/settings/ErrorTable.tsx:50 msgid "Message" msgstr "" @@ -6451,33 +7615,32 @@ msgstr "" msgid "Show assembly parts" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:68 +#: src/tables/part/PartCategoryTable.tsx:48 +msgid "You are subscribed to notifications for this category" +msgstr "" + +#: src/tables/part/PartCategoryTable.tsx:80 #: src/tables/part/PartTable.tsx:196 msgid "Include Subcategories" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:69 +#: src/tables/part/PartCategoryTable.tsx:81 msgid "Include subcategories in results" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:74 +#: src/tables/part/PartCategoryTable.tsx:86 msgid "Show structural categories" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:78 -#: src/tables/part/PartTable.tsx:294 -msgid "Subscribed" -msgstr "" - -#: src/tables/part/PartCategoryTable.tsx:79 +#: src/tables/part/PartCategoryTable.tsx:91 msgid "Show categories to which the user is subscribed" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:86 +#: src/tables/part/PartCategoryTable.tsx:100 msgid "New Part Category" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:112 +#: src/tables/part/PartCategoryTable.tsx:129 msgid "Add Part Category" msgstr "" @@ -6523,11 +7686,6 @@ msgstr "" msgid "Part parameters cannot be edited, as the part is locked" msgstr "" -#: src/tables/part/PartParameterTable.tsx:212 -#: src/tables/stock/StockItemTable.tsx:335 -msgid "Include Variants" -msgstr "" - #: src/tables/part/PartParameterTemplateTable.tsx:31 msgid "Checkbox" msgstr "" @@ -6554,6 +7712,7 @@ msgid "Show templates with units" msgstr "" #: src/tables/part/PartParameterTemplateTable.tsx:85 +#: src/tables/part/PartParameterTemplateTable.tsx:141 msgid "Add Parameter Template" msgstr "" @@ -6566,23 +7725,19 @@ msgid "Delete Parameter Template" msgstr "" #: src/tables/part/PartParameterTemplateTable.tsx:141 -msgid "Add parameter template" -msgstr "" +#~ msgid "Add parameter template" +#~ msgstr "Add parameter template" -#: src/tables/part/PartPurchaseOrdersTable.tsx:77 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:162 +#: src/tables/part/PartPurchaseOrdersTable.tsx:78 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:168 msgid "Total Quantity" msgstr "" -#: src/tables/part/PartPurchaseOrdersTable.tsx:115 -msgid "Pending" -msgstr "" - -#: src/tables/part/PartPurchaseOrdersTable.tsx:116 +#: src/tables/part/PartPurchaseOrdersTable.tsx:122 msgid "Show pending orders" msgstr "" -#: src/tables/part/PartPurchaseOrdersTable.tsx:121 +#: src/tables/part/PartPurchaseOrdersTable.tsx:127 msgid "Show received items" msgstr "" @@ -6728,22 +7883,13 @@ msgstr "" msgid "Results" msgstr "" -#: src/tables/part/PartTestTemplateTable.tsx:76 -msgid "No Results" -msgstr "" - -#: src/tables/part/PartTestTemplateTable.tsx:106 -#: src/tables/stock/StockItemTestResultTable.tsx:365 -msgid "Required" -msgstr "" - #: src/tables/part/PartTestTemplateTable.tsx:107 msgid "Show required tests" msgstr "" #: src/tables/part/PartTestTemplateTable.tsx:111 -#: src/tables/settings/TemplateTable.tsx:167 -#: src/tables/settings/TemplateTable.tsx:283 +#: src/tables/settings/TemplateTable.tsx:247 +#: src/tables/settings/TemplateTable.tsx:363 msgid "Enabled" msgstr "" @@ -6784,7 +7930,7 @@ msgid "Show tests which have recorded results" msgstr "" #: src/tables/part/PartTestTemplateTable.tsx:154 -#: src/tables/part/PartTestTemplateTable.tsx:237 +#: src/tables/part/PartTestTemplateTable.tsx:238 msgid "Add Test Template" msgstr "" @@ -6808,7 +7954,7 @@ msgstr "" msgid "View Parent Part" msgstr "" -#: src/tables/part/PartTestTemplateTable.tsx:257 +#: src/tables/part/PartTestTemplateTable.tsx:258 msgid "Part templates cannot be edited, as the part is locked" msgstr "" @@ -6836,28 +7982,49 @@ msgstr "" msgid "Show trackable variants" msgstr "" -#: src/tables/part/RelatedPartTable.tsx:84 +#: src/tables/part/RelatedPartTable.tsx:86 +#: src/tables/part/RelatedPartTable.tsx:109 msgid "Add Related Part" msgstr "" -#: src/tables/part/RelatedPartTable.tsx:99 +#: src/tables/part/RelatedPartTable.tsx:101 msgid "Delete Related Part" msgstr "" -#: src/tables/part/RelatedPartTable.tsx:106 -msgid "Add related part" -msgstr "" +#: src/tables/part/RelatedPartTable.tsx:109 +#~ msgid "Add related part" +#~ msgstr "Add related part" #: src/tables/plugin/PluginErrorTable.tsx:29 msgid "Stage" msgstr "" -#: src/tables/plugin/PluginListTable.tsx:95 -msgid "Plugin with key {pluginKey} not found" +#: src/tables/plugin/PluginListTable.tsx:42 +msgid "Plugin is active" msgstr "" +#: src/tables/plugin/PluginListTable.tsx:48 +msgid "Plugin is inactive" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:55 +msgid "Plugin is not installed" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:76 +msgid "Plugin" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:95 +#~ msgid "Plugin with key {pluginKey} not found" +#~ msgstr "Plugin with key {pluginKey} not found" + #: src/tables/plugin/PluginListTable.tsx:97 -msgid "An error occurred while fetching plugin details" +#~ msgid "An error occurred while fetching plugin details" +#~ msgstr "An error occurred while fetching plugin details" + +#: src/tables/plugin/PluginListTable.tsx:109 +msgid "Description not available" msgstr "" #: src/tables/plugin/PluginListTable.tsx:113 @@ -6865,12 +8032,8 @@ msgstr "" #~ msgstr "Plugin with id {id} not found" #: src/tables/plugin/PluginListTable.tsx:122 -msgid "Plugin information" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:134 -msgid "Author" -msgstr "" +#~ msgid "Plugin information" +#~ msgstr "Plugin information" #: src/tables/plugin/PluginListTable.tsx:134 #~ msgid "Plugin Actions" @@ -6881,79 +8044,124 @@ msgstr "" #~ msgid "Edit plugin" #~ msgstr "Edit plugin" +#: src/tables/plugin/PluginListTable.tsx:144 +msgid "Confirm plugin activation" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:145 +msgid "Confirm plugin deactivation" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:150 +msgid "The selected plugin will be activated" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:151 +msgid "The selected plugin will be deactivated" +msgstr "" + #: src/tables/plugin/PluginListTable.tsx:152 #: src/tables/plugin/PluginListTable.tsx:153 #~ msgid "Reload" #~ msgstr "Reload" -#: src/tables/plugin/PluginListTable.tsx:154 -msgid "Plugin is not active" -msgstr "" - #: src/tables/plugin/PluginListTable.tsx:163 -msgid "Package information" -msgstr "" +#~ msgid "Package information" +#~ msgstr "Package information" #: src/tables/plugin/PluginListTable.tsx:169 -msgid "Package Name" +msgid "Deactivate" msgstr "" -#: src/tables/plugin/PluginListTable.tsx:175 -msgid "Installation Path" +#: src/tables/plugin/PluginListTable.tsx:183 +msgid "Activate" msgstr "" -#: src/tables/plugin/PluginListTable.tsx:185 -msgid "Package" +#: src/tables/plugin/PluginListTable.tsx:184 +msgid "Activate selected plugin" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:196 +msgid "Update selected plugin" msgstr "" #: src/tables/plugin/PluginListTable.tsx:197 -msgid "Plugin settings" -msgstr "" +#~ msgid "Plugin settings" +#~ msgstr "Plugin settings" #: src/tables/plugin/PluginListTable.tsx:214 -msgid "Plugin is active" +#: src/tables/stock/InstalledItemsTable.tsx:107 +msgid "Uninstall" msgstr "" -#: src/tables/plugin/PluginListTable.tsx:220 -msgid "Plugin is inactive" +#: src/tables/plugin/PluginListTable.tsx:215 +msgid "Uninstall selected plugin" msgstr "" -#: src/tables/plugin/PluginListTable.tsx:227 -msgid "Plugin is not installed" +#: src/tables/plugin/PluginListTable.tsx:233 +msgid "Delete selected plugin configuration" msgstr "" -#: src/tables/plugin/PluginListTable.tsx:253 -msgid "Plugin" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:287 -msgid "Description not available" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:319 -msgid "Confirm plugin activation" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:320 -msgid "Confirm plugin deactivation" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:325 -msgid "The selected plugin will be activated" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:326 -msgid "The selected plugin will be deactivated" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:334 +#: src/tables/plugin/PluginListTable.tsx:249 msgid "Activate Plugin" msgstr "" +#: src/tables/plugin/PluginListTable.tsx:270 +msgid "Install plugin" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:283 +msgid "Install" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:284 +msgid "Plugin installed successfully" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:289 +msgid "Uninstall Plugin" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:301 +msgid "Confirm plugin uninstall" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:304 +msgid "The selected plugin will be uninstalled." +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:308 +#~ msgid "This action cannot be undone." +#~ msgstr "This action cannot be undone." + +#: src/tables/plugin/PluginListTable.tsx:309 +msgid "Plugin uninstalled successfully" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:317 +msgid "Delete Plugin" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:318 +msgid "Deleting this plugin configuration will remove all associated settings and data. Are you sure you want to delete this plugin?" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:331 +msgid "Plugins reloaded" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:332 +msgid "Plugins were reloaded successfully" +msgstr "" + #: src/tables/plugin/PluginListTable.tsx:338 #~ msgid "Deactivate Plugin" #~ msgstr "Deactivate Plugin" +#: src/tables/plugin/PluginListTable.tsx:350 +msgid "Reload Plugins" +msgstr "" + #: src/tables/plugin/PluginListTable.tsx:354 #~ msgid "The following plugin will be activated" #~ msgstr "The following plugin will be activated" @@ -6962,16 +8170,16 @@ msgstr "" #~ msgid "The following plugin will be deactivated" #~ msgstr "The following plugin will be deactivated" -#: src/tables/plugin/PluginListTable.tsx:362 -msgid "Deactivate" +#: src/tables/plugin/PluginListTable.tsx:357 +msgid "Install Plugin" msgstr "" #: src/tables/plugin/PluginListTable.tsx:366 #~ msgid "Confirm" #~ msgstr "Confirm" -#: src/tables/plugin/PluginListTable.tsx:373 -msgid "Activate" +#: src/tables/plugin/PluginListTable.tsx:374 +msgid "Plugin Detail" msgstr "" #: src/tables/plugin/PluginListTable.tsx:376 @@ -6998,76 +8206,12 @@ msgstr "" #~ msgid "Error updating plugin" #~ msgstr "Error updating plugin" -#: src/tables/plugin/PluginListTable.tsx:406 -msgid "Uninstall" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:438 -msgid "Install plugin" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:451 -msgid "Install" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:452 -msgid "Plugin installed successfully" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:457 -msgid "Uninstall Plugin" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:469 -msgid "Confirm plugin uninstall" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:472 -msgid "The selected plugin will be uninstalled." -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:473 -msgid "This action cannot be undone." -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:477 -msgid "Plugin uninstalled successfully" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:484 -msgid "Delete Plugin" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:485 -msgid "Deleting this plugin configuration will remove all associated settings and data. Are you sure you want to delete this plugin?" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:498 -msgid "Plugins reloaded" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:499 -msgid "Plugins were reloaded successfully" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:515 -msgid "Reload Plugins" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:524 -msgid "Install Plugin" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:544 -msgid "Plugin Detail" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:573 +#: src/tables/plugin/PluginListTable.tsx:411 msgid "Sample" msgstr "" -#: src/tables/plugin/PluginListTable.tsx:578 -#: src/tables/stock/StockItemTable.tsx:340 +#: src/tables/plugin/PluginListTable.tsx:416 +#: src/tables/stock/StockItemTable.tsx:344 msgid "Installed" msgstr "" @@ -7116,82 +8260,78 @@ msgstr "" #~ msgid "Are you sure you want to remove this manufacturer part?" #~ msgstr "Are you sure you want to remove this manufacturer part?" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:102 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:339 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:103 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:356 msgid "Import Line Items" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:135 -msgid "Part Description" -msgstr "" - -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:201 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:207 msgid "Supplier Code" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:208 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:214 msgid "Supplier Link" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:215 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:220 msgid "Manufacturer Code" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:229 -msgid "Destination" +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:248 +msgid "Show line items which have been received" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:300 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:316 msgid "Receive line item" msgstr "" #: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:344 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:142 -#: src/tables/sales/SalesOrderLineItemTable.tsx:240 -msgid "Add line item" -msgstr "" +#: src/tables/sales/ReturnOrderLineItemTable.tsx:160 +#: src/tables/sales/SalesOrderLineItemTable.tsx:258 +#~ msgid "Add line item" +#~ msgstr "Add line item" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:354 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:373 msgid "Receive items" msgstr "" -#: src/tables/purchasing/SupplierPartTable.tsx:93 +#: src/tables/purchasing/SupplierPartTable.tsx:95 msgid "MPN" msgstr "" -#: src/tables/purchasing/SupplierPartTable.tsx:122 +#: src/tables/purchasing/SupplierPartTable.tsx:124 msgid "Base units" msgstr "" -#: src/tables/purchasing/SupplierPartTable.tsx:170 +#: src/tables/purchasing/SupplierPartTable.tsx:172 msgid "Supplier part created" msgstr "" -#: src/tables/purchasing/SupplierPartTable.tsx:176 +#: src/tables/purchasing/SupplierPartTable.tsx:179 msgid "Add supplier part" msgstr "" -#: src/tables/purchasing/SupplierPartTable.tsx:188 +#: src/tables/purchasing/SupplierPartTable.tsx:191 msgid "Show active supplier parts" msgstr "" -#: src/tables/purchasing/SupplierPartTable.tsx:192 -msgid "Active Part" -msgstr "" - -#: src/tables/purchasing/SupplierPartTable.tsx:193 -msgid "Show active internal parts" -msgstr "" - #: src/tables/purchasing/SupplierPartTable.tsx:193 #~ msgid "Supplier part updated" #~ msgstr "Supplier part updated" -#: src/tables/purchasing/SupplierPartTable.tsx:197 +#: src/tables/purchasing/SupplierPartTable.tsx:195 +msgid "Active Part" +msgstr "" + +#: src/tables/purchasing/SupplierPartTable.tsx:196 +msgid "Show active internal parts" +msgstr "" + +#: src/tables/purchasing/SupplierPartTable.tsx:200 msgid "Active Supplier" msgstr "" -#: src/tables/purchasing/SupplierPartTable.tsx:198 +#: src/tables/purchasing/SupplierPartTable.tsx:201 msgid "Show active suppliers" msgstr "" @@ -7203,99 +8343,187 @@ msgstr "" #~ msgid "Are you sure you want to remove this supplier part?" #~ msgstr "Are you sure you want to remove this supplier part?" -#: src/tables/sales/ReturnOrderLineItemTable.tsx:114 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:139 msgid "Received Date" msgstr "" -#: src/tables/sales/ReturnOrderLineItemTable.tsx:128 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:153 msgid "Show items which have been received" msgstr "" -#: src/tables/sales/ReturnOrderLineItemTable.tsx:133 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:158 msgid "Filter by line item status" msgstr "" -#: src/tables/sales/ReturnOrderLineItemTable.tsx:158 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:176 +msgid "Receive selected items" +msgstr "" + +#: src/tables/sales/ReturnOrderLineItemTable.tsx:205 msgid "Receive Item" msgstr "" -#: src/tables/sales/SalesOrderLineItemTable.tsx:262 -msgid "Allocate stock" +#: src/tables/sales/SalesOrderAllocationTable.tsx:60 +msgid "Show outstanding allocations" msgstr "" -#: src/tables/sales/SalesOrderLineItemTable.tsx:272 +#: src/tables/sales/SalesOrderAllocationTable.tsx:168 +#: src/tables/sales/SalesOrderAllocationTable.tsx:190 +msgid "Edit Allocation" +msgstr "" + +#: src/tables/sales/SalesOrderAllocationTable.tsx:175 +#: src/tables/sales/SalesOrderAllocationTable.tsx:197 +msgid "Delete Allocation" +msgstr "" + +#: src/tables/sales/SalesOrderLineItemTable.tsx:244 +msgid "Allocate Serial Numbers" +msgstr "" + +#: src/tables/sales/SalesOrderLineItemTable.tsx:277 +msgid "Show lines which are fully allocated" +msgstr "" + +#: src/tables/sales/SalesOrderLineItemTable.tsx:280 +#~ msgid "Allocate stock" +#~ msgstr "Allocate stock" + +#: src/tables/sales/SalesOrderLineItemTable.tsx:282 +msgid "Show lines which are completed" +msgstr "" + +#: src/tables/sales/SalesOrderLineItemTable.tsx:291 +#~ msgid "Allocate Serials" +#~ msgstr "Allocate Serials" + +#: src/tables/sales/SalesOrderLineItemTable.tsx:340 +msgid "Allocate serials" +msgstr "" + +#: src/tables/sales/SalesOrderLineItemTable.tsx:356 msgid "Build stock" msgstr "" -#: src/tables/sales/SalesOrderLineItemTable.tsx:289 -#: src/tables/stock/StockItemTable.tsx:507 +#: src/tables/sales/SalesOrderLineItemTable.tsx:373 +#: src/tables/stock/StockItemTable.tsx:512 msgid "Order stock" msgstr "" -#: src/tables/sales/SalesOrderShipmentTable.tsx:40 +#: src/tables/sales/SalesOrderShipmentTable.tsx:51 +#~ msgid "Delete Shipment" +#~ msgstr "Delete Shipment" + +#: src/tables/sales/SalesOrderShipmentTable.tsx:57 msgid "Create Shipment" msgstr "" -#: src/tables/sales/SalesOrderShipmentTable.tsx:50 -msgid "Delete Shipment" -msgstr "" - -#: src/tables/sales/SalesOrderShipmentTable.tsx:58 -msgid "Edit Shipment" -msgstr "" - -#: src/tables/sales/SalesOrderShipmentTable.tsx:66 -msgid "Shipment Reference" -msgstr "" - -#: src/tables/sales/SalesOrderShipmentTable.tsx:71 +#: src/tables/sales/SalesOrderShipmentTable.tsx:104 msgid "Items" msgstr "" -#: src/tables/sales/SalesOrderShipmentTable.tsx:83 -msgid "Delivery Date" +#: src/tables/sales/SalesOrderShipmentTable.tsx:139 +msgid "View Shipment" msgstr "" -#: src/tables/sales/SalesOrderShipmentTable.tsx:107 -msgid "Complete Shipment" +#: src/tables/sales/SalesOrderShipmentTable.tsx:161 +msgid "Edit shipment" msgstr "" -#: src/tables/sales/SalesOrderShipmentTable.tsx:133 +#: src/tables/sales/SalesOrderShipmentTable.tsx:169 +msgid "Cancel shipment" +msgstr "" + +#: src/tables/sales/SalesOrderShipmentTable.tsx:184 msgid "Add shipment" msgstr "" -#: src/tables/sales/SalesOrderShipmentTable.tsx:146 -msgid "Shipped" -msgstr "" - -#: src/tables/sales/SalesOrderShipmentTable.tsx:147 +#: src/tables/sales/SalesOrderShipmentTable.tsx:198 msgid "Show shipments which have been shipped" msgstr "" -#: src/tables/sales/SalesOrderShipmentTable.tsx:151 -msgid "Delivered" -msgstr "" - -#: src/tables/sales/SalesOrderShipmentTable.tsx:152 +#: src/tables/sales/SalesOrderShipmentTable.tsx:203 msgid "Show shipments which have been delivered" msgstr "" -#: src/tables/settings/CurrencyTable.tsx:28 -msgid "Rate" +#: src/tables/settings/BarcodeScanHistoryTable.tsx:61 +msgid "Barcode Information" msgstr "" -#: src/tables/settings/CurrencyTable.tsx:40 -msgid "Exchange rates updated" +#: src/tables/settings/BarcodeScanHistoryTable.tsx:76 +#: src/tables/settings/ErrorTable.tsx:59 +msgid "Timestamp" msgstr "" -#: src/tables/settings/CurrencyTable.tsx:46 -msgid "Exchange rate update error" +#: src/tables/settings/BarcodeScanHistoryTable.tsx:86 +msgid "Endpoint" msgstr "" -#: src/tables/settings/CurrencyTable.tsx:57 -msgid "Refresh currency exchange rates" +#: src/tables/settings/BarcodeScanHistoryTable.tsx:90 +#: src/tables/settings/BarcodeScanHistoryTable.tsx:217 +#: src/tables/stock/StockItemTestResultTable.tsx:174 +msgid "Result" msgstr "" +#: src/tables/settings/BarcodeScanHistoryTable.tsx:98 +msgid "Context" +msgstr "" + +#: src/tables/settings/BarcodeScanHistoryTable.tsx:119 +msgid "Response" +msgstr "" + +#: src/tables/settings/BarcodeScanHistoryTable.tsx:213 +#: src/tables/settings/ImportSessionTable.tsx:121 +#: src/tables/stock/StockTrackingTable.tsx:183 +msgid "Filter by user" +msgstr "" + +#: src/tables/settings/BarcodeScanHistoryTable.tsx:218 +msgid "Filter by result" +msgstr "" + +#: src/tables/settings/BarcodeScanHistoryTable.tsx:232 +msgid "Delete Barcode Scan Record" +msgstr "" + +#: src/tables/settings/BarcodeScanHistoryTable.tsx:258 +msgid "Barcode Scan Details" +msgstr "" + +#: src/tables/settings/BarcodeScanHistoryTable.tsx:268 +msgid "Logging Disabled" +msgstr "" + +#: src/tables/settings/BarcodeScanHistoryTable.tsx:270 +msgid "Barcode logging is not enabled" +msgstr "" + +#: src/tables/settings/CustomStateTable.tsx:36 +msgid "Display Name" +msgstr "" + +#: src/tables/settings/CustomStateTable.tsx:52 +msgid "Model" +msgstr "" + +#: src/tables/settings/CustomStateTable.tsx:65 +#: src/tables/settings/CustomStateTable.tsx:115 +msgid "Add State" +msgstr "" + +#: src/tables/settings/CustomStateTable.tsx:77 +msgid "Edit State" +msgstr "" + +#: src/tables/settings/CustomStateTable.tsx:85 +msgid "Delete State" +msgstr "" + +#: src/tables/settings/CustomStateTable.tsx:115 +#~ msgid "Add state" +#~ msgstr "Add state" + #: src/tables/settings/CustomUnitsTable.tsx:50 msgid "Add Custom Unit" msgstr "" @@ -7312,59 +8540,71 @@ msgstr "" msgid "Add custom unit" msgstr "" -#: src/tables/settings/ErrorTable.tsx:31 -msgid "When" -msgstr "" - -#: src/tables/settings/ErrorTable.tsx:41 -msgid "Error Information" -msgstr "" - #: src/tables/settings/ErrorTable.tsx:51 #~ msgid "Delete error report" #~ msgstr "Delete error report" -#: src/tables/settings/ErrorTable.tsx:53 +#: src/tables/settings/ErrorTable.tsx:67 +msgid "Traceback" +msgstr "" + +#: src/tables/settings/ErrorTable.tsx:103 +msgid "When" +msgstr "" + +#: src/tables/settings/ErrorTable.tsx:113 +msgid "Error Information" +msgstr "" + +#: src/tables/settings/ErrorTable.tsx:123 msgid "Delete Error Report" msgstr "" -#: src/tables/settings/ErrorTable.tsx:55 +#: src/tables/settings/ErrorTable.tsx:125 msgid "Are you sure you want to delete this error report?" msgstr "" -#: src/tables/settings/ErrorTable.tsx:57 +#: src/tables/settings/ErrorTable.tsx:127 msgid "Error report deleted" msgstr "" -#: src/tables/settings/ErrorTable.tsx:79 -#: src/tables/settings/FailedTasksTable.tsx:59 +#: src/tables/settings/ErrorTable.tsx:146 +#: src/tables/settings/FailedTasksTable.tsx:65 msgid "Error Details" msgstr "" -#: src/tables/settings/FailedTasksTable.tsx:26 -#: src/tables/settings/PendingTasksTable.tsx:19 +#: src/tables/settings/FailedTasksTable.tsx:32 +#: src/tables/settings/PendingTasksTable.tsx:23 #: src/tables/settings/ScheduledTasksTable.tsx:19 msgid "Task" msgstr "" -#: src/tables/settings/FailedTasksTable.tsx:32 -#: src/tables/settings/PendingTasksTable.tsx:24 +#: src/tables/settings/FailedTasksTable.tsx:38 +#: src/tables/settings/PendingTasksTable.tsx:28 msgid "Task ID" msgstr "" -#: src/tables/settings/FailedTasksTable.tsx:36 -#: src/tables/stock/StockItemTestResultTable.tsx:211 +#: src/tables/settings/FailedTasksTable.tsx:42 +#: src/tables/stock/StockItemTestResultTable.tsx:218 msgid "Started" msgstr "" -#: src/tables/settings/FailedTasksTable.tsx:42 +#: src/tables/settings/FailedTasksTable.tsx:48 msgid "Stopped" msgstr "" -#: src/tables/settings/FailedTasksTable.tsx:48 +#: src/tables/settings/FailedTasksTable.tsx:54 msgid "Attempts" msgstr "" +#: src/tables/settings/FailedTasksTable.tsx:92 +msgid "No Information" +msgstr "" + +#: src/tables/settings/FailedTasksTable.tsx:93 +msgid "No error details are available for this task" +msgstr "" + #: src/tables/settings/GroupTable.tsx:90 msgid "Group with id {id} not found" msgstr "" @@ -7398,42 +8638,34 @@ msgstr "" msgid "Edit group" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:38 +#: src/tables/settings/ImportSessionTable.tsx:37 msgid "Delete Import Session" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:44 +#: src/tables/settings/ImportSessionTable.tsx:43 #: src/tables/settings/ImportSessionTable.tsx:131 msgid "Create Import Session" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:69 +#: src/tables/settings/ImportSessionTable.tsx:68 msgid "Uploaded" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:79 -msgid "Imported Rows" -msgstr "" - -#: src/tables/settings/ImportSessionTable.tsx:109 -#: src/tables/settings/TemplateTable.tsx:289 +#: src/tables/settings/ImportSessionTable.tsx:108 +#: src/tables/settings/TemplateTable.tsx:369 msgid "Model Type" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:110 -#: src/tables/settings/TemplateTable.tsx:290 +#: src/tables/settings/ImportSessionTable.tsx:109 +#: src/tables/settings/TemplateTable.tsx:370 msgid "Filter by target model type" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:116 +#: src/tables/settings/ImportSessionTable.tsx:115 msgid "Filter by import session status" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:122 -msgid "Filter by user" -msgstr "" - -#: src/tables/settings/PendingTasksTable.tsx:38 +#: src/tables/settings/PendingTasksTable.tsx:42 msgid "Arguments" msgstr "" @@ -7461,12 +8693,16 @@ msgstr "" msgid "Next Run" msgstr "" -#: src/tables/settings/TemplateTable.tsx:85 -msgid "Template not found" +#: src/tables/settings/StocktakeReportTable.tsx:28 +msgid "Report" msgstr "" -#: src/tables/settings/TemplateTable.tsx:87 -msgid "An error occurred while fetching template details" +#: src/tables/settings/StocktakeReportTable.tsx:35 +msgid "Part Count" +msgstr "" + +#: src/tables/settings/StocktakeReportTable.tsx:58 +msgid "Delete Report" msgstr "" #: src/tables/settings/TemplateTable.tsx:120 @@ -7481,21 +8717,12 @@ msgstr "" #~ msgid "actions" #~ msgstr "actions" -#: src/tables/settings/TemplateTable.tsx:177 -msgid "Modify" +#: src/tables/settings/TemplateTable.tsx:162 +msgid "Template not found" msgstr "" -#: src/tables/settings/TemplateTable.tsx:178 -msgid "Modify template file" -msgstr "" - -#: src/tables/settings/TemplateTable.tsx:234 -#: src/tables/settings/TemplateTable.tsx:302 -msgid "Edit Template" -msgstr "" - -#: src/tables/settings/TemplateTable.tsx:242 -msgid "Delete template" +#: src/tables/settings/TemplateTable.tsx:164 +msgid "An error occurred while fetching template details" msgstr "" #: src/tables/settings/TemplateTable.tsx:243 @@ -7506,103 +8733,137 @@ msgstr "" #~ msgid "Create new" #~ msgstr "Create new" -#: src/tables/settings/TemplateTable.tsx:248 +#: src/tables/settings/TemplateTable.tsx:257 +msgid "Modify" +msgstr "" + +#: src/tables/settings/TemplateTable.tsx:258 +msgid "Modify template file" +msgstr "" + +#: src/tables/settings/TemplateTable.tsx:314 +#: src/tables/settings/TemplateTable.tsx:382 +msgid "Edit Template" +msgstr "" + +#: src/tables/settings/TemplateTable.tsx:322 +msgid "Delete template" +msgstr "" + +#: src/tables/settings/TemplateTable.tsx:328 msgid "Add Template" msgstr "" -#: src/tables/settings/TemplateTable.tsx:261 +#: src/tables/settings/TemplateTable.tsx:341 msgid "Add template" msgstr "" -#: src/tables/settings/TemplateTable.tsx:284 +#: src/tables/settings/TemplateTable.tsx:364 msgid "Filter by enabled status" msgstr "" -#: src/tables/settings/UserTable.tsx:82 +#: src/tables/settings/UserTable.tsx:81 msgid "User with id {id} not found" msgstr "" -#: src/tables/settings/UserTable.tsx:84 +#: src/tables/settings/UserTable.tsx:83 msgid "An error occurred while fetching user details" msgstr "" -#: src/tables/settings/UserTable.tsx:102 +#: src/tables/settings/UserTable.tsx:101 msgid "Is Active" msgstr "" -#: src/tables/settings/UserTable.tsx:103 +#: src/tables/settings/UserTable.tsx:102 msgid "Designates whether this user should be treated as active. Unselect this instead of deleting accounts." msgstr "" -#: src/tables/settings/UserTable.tsx:107 +#: src/tables/settings/UserTable.tsx:106 msgid "Is Staff" msgstr "" -#: src/tables/settings/UserTable.tsx:108 +#: src/tables/settings/UserTable.tsx:107 msgid "Designates whether the user can log into the django admin site." msgstr "" -#: src/tables/settings/UserTable.tsx:112 +#: src/tables/settings/UserTable.tsx:111 msgid "Is Superuser" msgstr "" -#: src/tables/settings/UserTable.tsx:113 +#: src/tables/settings/UserTable.tsx:112 msgid "Designates that this user has all permissions without explicitly assigning them." msgstr "" -#: src/tables/settings/UserTable.tsx:123 +#: src/tables/settings/UserTable.tsx:122 msgid "You cannot edit the rights for the currently logged-in user." msgstr "" -#: src/tables/settings/UserTable.tsx:154 +#: src/tables/settings/UserTable.tsx:153 msgid "No groups" msgstr "" -#: src/tables/settings/UserTable.tsx:245 +#: src/tables/settings/UserTable.tsx:244 msgid "Delete user" msgstr "" -#: src/tables/settings/UserTable.tsx:246 +#: src/tables/settings/UserTable.tsx:245 msgid "User deleted" msgstr "" -#: src/tables/settings/UserTable.tsx:248 +#: src/tables/settings/UserTable.tsx:247 msgid "Are you sure you want to delete this user?" msgstr "" -#: src/tables/settings/UserTable.tsx:254 -#: src/tables/settings/UserTable.tsx:272 +#: src/tables/settings/UserTable.tsx:253 +#: src/tables/settings/UserTable.tsx:271 msgid "Add user" msgstr "" -#: src/tables/settings/UserTable.tsx:262 +#: src/tables/settings/UserTable.tsx:261 msgid "Added user" msgstr "" -#: src/tables/settings/UserTable.tsx:285 +#: src/tables/settings/UserTable.tsx:284 msgid "Show active users" msgstr "" -#: src/tables/settings/UserTable.tsx:289 +#: src/tables/settings/UserTable.tsx:288 msgid "Staff" msgstr "" -#: src/tables/settings/UserTable.tsx:290 +#: src/tables/settings/UserTable.tsx:289 msgid "Show staff users" msgstr "" #: src/tables/settings/UserTable.tsx:294 -msgid "Superuser" -msgstr "" - -#: src/tables/settings/UserTable.tsx:295 msgid "Show superusers" msgstr "" -#: src/tables/settings/UserTable.tsx:305 +#: src/tables/settings/UserTable.tsx:304 msgid "Edit user" msgstr "" +#: src/tables/stock/InstalledItemsTable.tsx:37 +#: src/tables/stock/InstalledItemsTable.tsx:90 +msgid "Install Item" +msgstr "" + +#: src/tables/stock/InstalledItemsTable.tsx:39 +msgid "Item installed" +msgstr "" + +#: src/tables/stock/InstalledItemsTable.tsx:50 +msgid "Uninstall Item" +msgstr "" + +#: src/tables/stock/InstalledItemsTable.tsx:52 +msgid "Item uninstalled" +msgstr "" + +#: src/tables/stock/InstalledItemsTable.tsx:108 +msgid "Uninstall stock item" +msgstr "" + #: src/tables/stock/LocationTypesTable.tsx:39 #: src/tables/stock/LocationTypesTable.tsx:109 msgid "Add Location Type" @@ -7620,276 +8881,272 @@ msgstr "" msgid "Icon" msgstr "" -#: src/tables/stock/StockItemTable.tsx:101 +#: src/tables/stock/StockItemTable.tsx:90 msgid "This stock item is in production" msgstr "" -#: src/tables/stock/StockItemTable.tsx:110 +#: src/tables/stock/StockItemTable.tsx:97 msgid "This stock item has been assigned to a sales order" msgstr "" -#: src/tables/stock/StockItemTable.tsx:119 +#: src/tables/stock/StockItemTable.tsx:104 msgid "This stock item has been assigned to a customer" msgstr "" -#: src/tables/stock/StockItemTable.tsx:128 +#: src/tables/stock/StockItemTable.tsx:111 msgid "This stock item is installed in another stock item" msgstr "" -#: src/tables/stock/StockItemTable.tsx:137 +#: src/tables/stock/StockItemTable.tsx:118 msgid "This stock item has been consumed by a build order" msgstr "" -#: src/tables/stock/StockItemTable.tsx:146 +#: src/tables/stock/StockItemTable.tsx:125 +msgid "This stock item is unavailable" +msgstr "" + +#: src/tables/stock/StockItemTable.tsx:134 msgid "This stock item has expired" msgstr "" -#: src/tables/stock/StockItemTable.tsx:150 +#: src/tables/stock/StockItemTable.tsx:138 msgid "This stock item is stale" msgstr "" -#: src/tables/stock/StockItemTable.tsx:161 +#: src/tables/stock/StockItemTable.tsx:150 msgid "This stock item is fully allocated" msgstr "" -#: src/tables/stock/StockItemTable.tsx:168 +#: src/tables/stock/StockItemTable.tsx:157 msgid "This stock item is partially allocated" msgstr "" -#: src/tables/stock/StockItemTable.tsx:196 +#: src/tables/stock/StockItemTable.tsx:185 msgid "This stock item has been depleted" msgstr "" -#: src/tables/stock/StockItemTable.tsx:232 +#: src/tables/stock/StockItemTable.tsx:280 msgid "Stocktake Date" msgstr "" -#: src/tables/stock/StockItemTable.tsx:236 -msgid "Expiry Date" -msgstr "" - -#: src/tables/stock/StockItemTable.tsx:260 -msgid "Stock Value" -msgstr "" - -#: src/tables/stock/StockItemTable.tsx:290 +#: src/tables/stock/StockItemTable.tsx:294 msgid "Show stock for active parts" msgstr "" -#: src/tables/stock/StockItemTable.tsx:295 +#: src/tables/stock/StockItemTable.tsx:299 msgid "Filter by stock status" msgstr "" #: src/tables/stock/StockItemTable.tsx:301 -msgid "Show stock for assmebled parts" +#~ msgid "Show stock for assmebled parts" +#~ msgstr "Show stock for assmebled parts" + +#: src/tables/stock/StockItemTable.tsx:305 +msgid "Show stock for assembled parts" msgstr "" -#: src/tables/stock/StockItemTable.tsx:306 +#: src/tables/stock/StockItemTable.tsx:310 msgid "Show items which have been allocated" msgstr "" -#: src/tables/stock/StockItemTable.tsx:311 +#: src/tables/stock/StockItemTable.tsx:315 msgid "Show items which are available" msgstr "" -#: src/tables/stock/StockItemTable.tsx:315 +#: src/tables/stock/StockItemTable.tsx:319 #: src/tables/stock/StockLocationTable.tsx:44 msgid "Include Sublocations" msgstr "" -#: src/tables/stock/StockItemTable.tsx:316 +#: src/tables/stock/StockItemTable.tsx:320 msgid "Include stock in sublocations" msgstr "" -#: src/tables/stock/StockItemTable.tsx:320 +#: src/tables/stock/StockItemTable.tsx:324 msgid "Depleted" msgstr "" -#: src/tables/stock/StockItemTable.tsx:321 +#: src/tables/stock/StockItemTable.tsx:325 msgid "Show depleted stock items" msgstr "" -#: src/tables/stock/StockItemTable.tsx:326 +#: src/tables/stock/StockItemTable.tsx:330 msgid "Show items which are in stock" msgstr "" -#: src/tables/stock/StockItemTable.tsx:331 +#: src/tables/stock/StockItemTable.tsx:335 msgid "Show items which are in production" msgstr "" -#: src/tables/stock/StockItemTable.tsx:336 +#: src/tables/stock/StockItemTable.tsx:340 msgid "Include stock items for variant parts" msgstr "" -#: src/tables/stock/StockItemTable.tsx:341 +#: src/tables/stock/StockItemTable.tsx:345 msgid "Show stock items which are installed in other items" msgstr "" -#: src/tables/stock/StockItemTable.tsx:345 +#: src/tables/stock/StockItemTable.tsx:349 msgid "Sent to Customer" msgstr "" -#: src/tables/stock/StockItemTable.tsx:346 +#: src/tables/stock/StockItemTable.tsx:350 msgid "Show items which have been sent to a customer" msgstr "" -#: src/tables/stock/StockItemTable.tsx:350 +#: src/tables/stock/StockItemTable.tsx:354 msgid "Is Serialized" msgstr "" -#: src/tables/stock/StockItemTable.tsx:351 +#: src/tables/stock/StockItemTable.tsx:355 msgid "Show items which have a serial number" msgstr "" -#: src/tables/stock/StockItemTable.tsx:358 +#: src/tables/stock/StockItemTable.tsx:362 msgid "Has Batch Code" msgstr "" -#: src/tables/stock/StockItemTable.tsx:359 +#: src/tables/stock/StockItemTable.tsx:363 msgid "Show items which have a batch code" msgstr "" -#: src/tables/stock/StockItemTable.tsx:365 +#: src/tables/stock/StockItemTable.tsx:369 msgid "Show tracked items" msgstr "" -#: src/tables/stock/StockItemTable.tsx:369 +#: src/tables/stock/StockItemTable.tsx:373 msgid "Has Purchase Price" msgstr "" -#: src/tables/stock/StockItemTable.tsx:370 +#: src/tables/stock/StockItemTable.tsx:374 msgid "Show items which have a purchase price" msgstr "" -#: src/tables/stock/StockItemTable.tsx:378 +#: src/tables/stock/StockItemTable.tsx:382 msgid "External Location" msgstr "" -#: src/tables/stock/StockItemTable.tsx:379 +#: src/tables/stock/StockItemTable.tsx:383 msgid "Show items in an external location" msgstr "" -#: src/tables/stock/StockItemTable.tsx:451 +#: src/tables/stock/StockItemTable.tsx:456 msgid "Add a new stock item" msgstr "" -#: src/tables/stock/StockItemTable.tsx:460 +#: src/tables/stock/StockItemTable.tsx:465 msgid "Remove some quantity from a stock item" msgstr "" -#: src/tables/stock/StockItemTable.tsx:482 +#: src/tables/stock/StockItemTable.tsx:487 msgid "Move Stock items to new locations" msgstr "" -#: src/tables/stock/StockItemTable.tsx:489 +#: src/tables/stock/StockItemTable.tsx:494 msgid "Change stock status" msgstr "" -#: src/tables/stock/StockItemTable.tsx:491 +#: src/tables/stock/StockItemTable.tsx:496 msgid "Change the status of stock items" msgstr "" -#: src/tables/stock/StockItemTable.tsx:498 +#: src/tables/stock/StockItemTable.tsx:503 msgid "Merge stock" msgstr "" -#: src/tables/stock/StockItemTable.tsx:500 +#: src/tables/stock/StockItemTable.tsx:505 msgid "Merge stock items" msgstr "" -#: src/tables/stock/StockItemTable.tsx:509 -#: src/tables/stock/StockItemTable.tsx:516 +#: src/tables/stock/StockItemTable.tsx:514 +#: src/tables/stock/StockItemTable.tsx:521 msgid "Order new stock" msgstr "" -#: src/tables/stock/StockItemTable.tsx:514 +#: src/tables/stock/StockItemTable.tsx:519 msgid "Assign to customer" msgstr "" -#: src/tables/stock/StockItemTable.tsx:523 +#: src/tables/stock/StockItemTable.tsx:528 msgid "Delete stock" msgstr "" -#: src/tables/stock/StockItemTable.tsx:525 -msgid "Delete stock items" -msgstr "" +#: src/tables/stock/StockItemTable.tsx:528 +#~ msgid "Delete stock items" +#~ msgstr "Delete stock items" -#: src/tables/stock/StockItemTestResultTable.tsx:131 +#: src/tables/stock/StockItemTestResultTable.tsx:137 msgid "Test" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:157 +#: src/tables/stock/StockItemTestResultTable.tsx:163 msgid "Test result for installed stock item" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:168 -msgid "Result" -msgstr "" - -#: src/tables/stock/StockItemTestResultTable.tsx:190 +#: src/tables/stock/StockItemTestResultTable.tsx:196 msgid "Attachment" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:206 +#: src/tables/stock/StockItemTestResultTable.tsx:212 msgid "Test station" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:226 +#: src/tables/stock/StockItemTestResultTable.tsx:234 msgid "Finished" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:268 -#: src/tables/stock/StockItemTestResultTable.tsx:339 +#: src/tables/stock/StockItemTestResultTable.tsx:286 +#: src/tables/stock/StockItemTestResultTable.tsx:357 msgid "Edit Test Result" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:270 +#: src/tables/stock/StockItemTestResultTable.tsx:288 msgid "Test result updated" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:276 -#: src/tables/stock/StockItemTestResultTable.tsx:348 +#: src/tables/stock/StockItemTestResultTable.tsx:294 +#: src/tables/stock/StockItemTestResultTable.tsx:366 msgid "Delete Test Result" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:278 +#: src/tables/stock/StockItemTestResultTable.tsx:296 msgid "Test result deleted" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:292 +#: src/tables/stock/StockItemTestResultTable.tsx:310 msgid "Test Passed" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:293 +#: src/tables/stock/StockItemTestResultTable.tsx:311 msgid "Test result has been recorded" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:300 +#: src/tables/stock/StockItemTestResultTable.tsx:318 msgid "Failed to record test result" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:317 +#: src/tables/stock/StockItemTestResultTable.tsx:335 msgid "Pass Test" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:366 +#: src/tables/stock/StockItemTestResultTable.tsx:384 msgid "Show results for required tests" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:370 +#: src/tables/stock/StockItemTestResultTable.tsx:388 msgid "Include Installed" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:371 +#: src/tables/stock/StockItemTestResultTable.tsx:389 msgid "Show results for installed stock items" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:375 -#: src/tables/stock/TestStatisticsTable.tsx:74 +#: src/tables/stock/StockItemTestResultTable.tsx:393 +#: src/tables/stock/TestStatisticsTable.tsx:62 msgid "Passed" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:376 +#: src/tables/stock/StockItemTestResultTable.tsx:394 msgid "Show only passed tests" msgstr "" @@ -7922,28 +9179,32 @@ msgid "Filter by location type" msgstr "" #: src/tables/stock/StockLocationTable.tsx:107 -#: src/tables/stock/StockLocationTable.tsx:133 +#: src/tables/stock/StockLocationTable.tsx:134 msgid "Add Stock Location" msgstr "" -#: src/tables/stock/StockTrackingTable.tsx:64 +#: src/tables/stock/StockTrackingTable.tsx:68 msgid "Added" msgstr "" -#: src/tables/stock/StockTrackingTable.tsx:69 +#: src/tables/stock/StockTrackingTable.tsx:73 msgid "Removed" msgstr "" #: src/tables/stock/StockTrackingTable.tsx:198 +msgid "Details" +msgstr "" + +#: src/tables/stock/StockTrackingTable.tsx:213 msgid "No user information" msgstr "" -#: src/tables/stock/TestStatisticsTable.tsx:46 -#: src/tables/stock/TestStatisticsTable.tsx:76 +#: src/tables/stock/TestStatisticsTable.tsx:34 +#: src/tables/stock/TestStatisticsTable.tsx:64 msgid "Total" msgstr "" -#: src/tables/stock/TestStatisticsTable.tsx:75 +#: src/tables/stock/TestStatisticsTable.tsx:63 msgid "Failed" msgstr "" diff --git a/src/frontend/src/locales/tr/messages.po b/src/frontend/src/locales/tr/messages.po index efbb508e4d..7b721f2f26 100644 --- a/src/frontend/src/locales/tr/messages.po +++ b/src/frontend/src/locales/tr/messages.po @@ -8,203 +8,482 @@ msgstr "" "Language: tr\n" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"PO-Revision-Date: 2024-08-20 19:50\n" +"PO-Revision-Date: 2024-11-04 03:14\n" "Last-Translator: \n" "Language-Team: Turkish\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Crowdin-Project: inventree\n" "X-Crowdin-Project-ID: 452300\n" "X-Crowdin-Language: tr\n" -"X-Crowdin-File: /[inventree.InvenTree] l10/src/frontend/src/locales/en/messages.po\n" -"X-Crowdin-File-ID: 205\n" +"X-Crowdin-File: /src/frontend/src/locales/en/messages.po\n" +"X-Crowdin-File-ID: 252\n" #: src/components/Boundary.tsx:12 msgid "Error rendering component" -msgstr "" +msgstr "Bileşeni oluşturmada hata" #: src/components/Boundary.tsx:14 msgid "An error occurred while rendering this component. Refer to the console for more information." -msgstr "" +msgstr "Bu bileşeni oluştururken bir hata oluştu. Daha fazla bilgi için konsola bakın." #: src/components/DashboardItemProxy.tsx:34 -msgid "Title" -msgstr "Başlık" +#~ msgid "Title" +#~ msgstr "Title" #: src/components/buttons/AdminButton.tsx:80 msgid "Open in admin interface" -msgstr "" +msgstr "Yönetici arayüzünde aç" #: src/components/buttons/CopyButton.tsx:18 #~ msgid "Copy to clipboard" #~ msgstr "Copy to clipboard" -#: src/components/buttons/CopyButton.tsx:24 +#: src/components/buttons/CopyButton.tsx:29 msgid "Copied" -msgstr "" +msgstr "Kopyalandı" -#: src/components/buttons/CopyButton.tsx:24 +#: src/components/buttons/CopyButton.tsx:29 msgid "Copy" -msgstr "" +msgstr "Kopyala" -#: src/components/buttons/PrintingActions.tsx:93 +#: src/components/buttons/PrintingActions.tsx:97 msgid "Print Label" -msgstr "" +msgstr "Etiket Yazdır" -#: src/components/buttons/PrintingActions.tsx:99 +#: src/components/buttons/PrintingActions.tsx:103 msgid "Print" -msgstr "" +msgstr "Yazdır" -#: src/components/buttons/PrintingActions.tsx:100 +#: src/components/buttons/PrintingActions.tsx:104 msgid "Label printing completed successfully" -msgstr "" +msgstr "Etiket yazdırma başarıyla tamamlandı" -#: src/components/buttons/PrintingActions.tsx:106 -#: src/components/buttons/PrintingActions.tsx:144 -#: src/components/editors/NotesEditor.tsx:65 -#: src/components/editors/NotesEditor.tsx:165 -#: src/components/forms/fields/ApiFormField.tsx:319 +#: src/components/buttons/PrintingActions.tsx:110 +#: src/components/buttons/PrintingActions.tsx:148 +#: src/components/editors/NotesEditor.tsx:73 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:154 +#: src/components/forms/fields/ApiFormField.tsx:328 +#: src/components/forms/fields/TableField.tsx:43 #: src/components/importer/ImportDataSelector.tsx:187 -#: src/components/importer/ImporterColumnSelector.tsx:207 +#: src/components/importer/ImporterColumnSelector.tsx:210 #: src/components/modals/LicenseModal.tsx:75 -#: src/components/nav/SearchDrawer.tsx:448 +#: src/components/nav/SearchDrawer.tsx:458 +#: src/components/render/ModelType.tsx:290 #: src/pages/ErrorPage.tsx:11 -#: src/pages/part/PartPricingPanel.tsx:67 -#: src/tables/InvenTreeTable.tsx:495 +#: src/pages/part/PartPricingPanel.tsx:71 +#: src/tables/InvenTreeTable.tsx:481 #: src/tables/bom/BomTable.tsx:450 -#: src/tables/stock/StockItemTestResultTable.tsx:299 +#: src/tables/stock/StockItemTestResultTable.tsx:317 msgid "Error" msgstr "Hata" -#: src/components/buttons/PrintingActions.tsx:107 +#: src/components/buttons/PrintingActions.tsx:111 msgid "The label could not be generated" -msgstr "" +msgstr "Etiket üretilemedi" -#: src/components/buttons/PrintingActions.tsx:122 +#: src/components/buttons/PrintingActions.tsx:126 msgid "Print Report" -msgstr "" +msgstr "Rapor Yazdır" -#: src/components/buttons/PrintingActions.tsx:138 +#: src/components/buttons/PrintingActions.tsx:142 msgid "Generate" -msgstr "" +msgstr "Üret" -#: src/components/buttons/PrintingActions.tsx:139 +#: src/components/buttons/PrintingActions.tsx:143 msgid "Report printing completed successfully" -msgstr "" +msgstr "Rapor yazdırma başarıyla tamamlandı" -#: src/components/buttons/PrintingActions.tsx:145 +#: src/components/buttons/PrintingActions.tsx:149 msgid "The report could not be generated" -msgstr "" +msgstr "Rapor üretilemedi" -#: src/components/buttons/PrintingActions.tsx:173 +#: src/components/buttons/PrintingActions.tsx:177 msgid "Printing Actions" -msgstr "" +msgstr "Yazdırma Eylemleri" -#: src/components/buttons/PrintingActions.tsx:178 +#: src/components/buttons/PrintingActions.tsx:182 msgid "Print Labels" -msgstr "" +msgstr "Etiketler Yazdır" -#: src/components/buttons/PrintingActions.tsx:184 +#: src/components/buttons/PrintingActions.tsx:188 msgid "Print Reports" +msgstr "Raporlar Yazdır" + +#: src/components/buttons/RemoveRowButton.tsx:8 +msgid "Remove this row" msgstr "" #: src/components/buttons/ScanButton.tsx:15 -msgid "Scan QR code" -msgstr "QR kodunu tara" +#: src/components/nav/NavigationDrawer.tsx:117 +#: src/forms/PurchaseOrderForms.tsx:379 +#: src/forms/PurchaseOrderForms.tsx:473 +msgid "Scan Barcode" +msgstr "Barkod Tara" + +#: src/components/buttons/ScanButton.tsx:15 +#~ msgid "Scan QR code" +#~ msgstr "Scan QR code" #: src/components/buttons/ScanButton.tsx:20 -msgid "Open QR code scanner" +msgid "Open Barcode Scanner" msgstr "" +#: src/components/buttons/ScanButton.tsx:20 +#~ msgid "Open QR code scanner" +#~ msgstr "Open QR code scanner" + #: src/components/buttons/SpotlightButton.tsx:14 msgid "Open spotlight" -msgstr "" +msgstr "Spot ışığını aç" #: src/components/buttons/YesNoButton.tsx:16 msgid "Pass" -msgstr "" +msgstr "Geç" #: src/components/buttons/YesNoButton.tsx:17 msgid "Fail" -msgstr "" +msgstr "Hata" #: src/components/buttons/YesNoButton.tsx:33 -#: src/tables/Filter.tsx:52 +#: src/tables/Filter.tsx:61 msgid "Yes" -msgstr "" +msgstr "Evet" #: src/components/buttons/YesNoButton.tsx:33 -#: src/tables/Filter.tsx:53 +#: src/tables/Filter.tsx:62 msgid "No" +msgstr "Hayır" + +#: src/components/dashboard/DashboardLayout.tsx:286 +msgid "No Widgets Selected" msgstr "" -#: src/components/details/Details.tsx:301 +#: src/components/dashboard/DashboardLayout.tsx:289 +msgid "Use the menu to add widgets to the dashboard" +msgstr "" + +#: src/components/dashboard/DashboardMenu.tsx:59 +#: src/components/dashboard/DashboardMenu.tsx:126 +msgid "Accept Layout" +msgstr "" + +#: src/components/dashboard/DashboardMenu.tsx:91 +#: src/components/nav/NavigationDrawer.tsx:71 +#: src/defaults/actions.tsx:17 +#: src/defaults/links.tsx:9 +#: src/pages/Index/Settings/UserSettings.tsx:47 +msgid "Dashboard" +msgstr "Panel" + +#: src/components/dashboard/DashboardMenu.tsx:99 +msgid "Edit Layout" +msgstr "Yerleşimi Düzenle" + +#: src/components/dashboard/DashboardMenu.tsx:108 +msgid "Add Widget" +msgstr "" + +#: src/components/dashboard/DashboardMenu.tsx:117 +msgid "Remove Widgets" +msgstr "" + +#: src/components/dashboard/DashboardWidget.tsx:65 +msgid "Remove this widget from the dashboard" +msgstr "" + +#: src/components/dashboard/DashboardWidgetDrawer.tsx:77 +msgid "Filter dashboard widgets" +msgstr "" + +#: src/components/dashboard/DashboardWidgetDrawer.tsx:98 +msgid "Add this widget to the dashboard" +msgstr "" + +#: src/components/dashboard/DashboardWidgetDrawer.tsx:123 +msgid "No Widgets Available" +msgstr "" + +#: src/components/dashboard/DashboardWidgetDrawer.tsx:124 +msgid "There are no more widgets available for the dashboard" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:19 +msgid "Subscribed Parts" +msgstr "Abone Olunan Parçalar" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:20 +msgid "Show the number of parts which you have subscribed to" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:26 +msgid "Subscribed Categories" +msgstr "Abone Olunan Sınıflar" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:27 +msgid "Show the number of part categories which you have subscribed to" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:35 +#: src/pages/part/PartSchedulingDetail.tsx:304 +#: src/tables/part/PartTable.tsx:238 +msgid "Low Stock" +msgstr "Düşük Stok" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:37 +msgid "Show the number of parts which are low on stock" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:43 +msgid "Expired Stock Items" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:45 +msgid "Show the number of stock items which have expired" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:51 +msgid "Stale Stock Items" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:53 +msgid "Show the number of stock items which are stale" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:59 +msgid "Active Build Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:61 +msgid "Show the number of build orders which are currently active" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:66 +msgid "Overdue Build Orders" +msgstr "Geciken Yapım Siparişleri" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:68 +msgid "Show the number of build orders which are overdue" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:73 +msgid "Assigned Build Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:75 +msgid "Show the number of build orders which are assigned to you" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:80 +msgid "Active Sales Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:82 +msgid "Show the number of sales orders which are currently active" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:87 +msgid "Overdue Sales Orders" +msgstr "Geciken Satış Siparişleri" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:89 +msgid "Show the number of sales orders which are overdue" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:94 +msgid "Assigned Sales Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:96 +msgid "Show the number of sales orders which are assigned to you" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:101 +msgid "Active Purchase Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:103 +msgid "Show the number of purchase orders which are currently active" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:108 +msgid "Overdue Purchase Orders" +msgstr "Geciken Satın Alma Siparişleri" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:110 +msgid "Show the number of purchase orders which are overdue" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:115 +msgid "Assigned Purchase Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:117 +msgid "Show the number of purchase orders which are assigned to you" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:122 +msgid "Active Return Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:124 +msgid "Show the number of return orders which are currently active" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:129 +msgid "Overdue Return Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:131 +msgid "Show the number of return orders which are overdue" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:136 +msgid "Assigned Return Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:138 +msgid "Show the number of return orders which are assigned to you" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:149 +#: src/components/dashboard/widgets/GetStartedWidget.tsx:15 +#: src/defaults/links.tsx:38 +msgid "Getting Started" +msgstr "Başlarken" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:150 +#: src/defaults/links.tsx:41 +msgid "Getting started with InvenTree" +msgstr "InvenTree ile başlarken" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:157 +#: src/components/dashboard/widgets/NewsWidget.tsx:123 +msgid "News Updates" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:158 +msgid "The latest news from InvenTree" +msgstr "" + +#: src/components/dashboard/widgets/ColorToggleWidget.tsx:18 +#: src/components/nav/MainMenu.tsx:77 +msgid "Change Color Mode" +msgstr "Renk Kipini Değiştir" + +#: src/components/dashboard/widgets/ColorToggleWidget.tsx:23 +msgid "Change the color mode of the user interface" +msgstr "" + +#: src/components/dashboard/widgets/LanguageSelectWidget.tsx:18 +msgid "Change Language" +msgstr "" + +#: src/components/dashboard/widgets/LanguageSelectWidget.tsx:23 +msgid "Change the language of the user interface" +msgstr "" + +#: src/components/dashboard/widgets/NewsWidget.tsx:61 +#: src/components/nav/NotificationDrawer.tsx:88 +#: src/pages/Notifications.tsx:73 +msgid "Mark as read" +msgstr "Okundu olarak imle" + +#: src/components/dashboard/widgets/NewsWidget.tsx:115 +msgid "Requires Superuser" +msgstr "" + +#: src/components/dashboard/widgets/NewsWidget.tsx:116 +msgid "This widget requires superuser permissions" +msgstr "" + +#: src/components/dashboard/widgets/NewsWidget.tsx:133 +msgid "No News" +msgstr "" + +#: src/components/dashboard/widgets/NewsWidget.tsx:134 +msgid "There are no unread news items" +msgstr "" + +#: src/components/details/Details.tsx:300 msgid "No name defined" -msgstr "" +msgstr "Herhangi bir ad tanımlanmamış" -#: src/components/details/DetailsImage.tsx:65 +#: src/components/details/DetailsImage.tsx:69 msgid "Remove Image" -msgstr "" +msgstr "Resmi Kaldır" -#: src/components/details/DetailsImage.tsx:68 +#: src/components/details/DetailsImage.tsx:72 msgid "Remove the associated image from this item?" -msgstr "" +msgstr "Bu ögeyle ilişkilendirilmiş resim kaldırılsın mı?" -#: src/components/details/DetailsImage.tsx:71 -#: src/forms/StockForms.tsx:533 +#: src/components/details/DetailsImage.tsx:75 +#: src/forms/StockForms.tsx:651 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:199 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:306 -#: src/pages/stock/StockDetail.tsx:526 +#: src/pages/stock/StockDetail.tsx:690 msgid "Remove" -msgstr "" +msgstr "Kaldır" -#: src/components/details/DetailsImage.tsx:71 -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:158 -#: src/components/items/ActionDropdown.tsx:215 -#: src/components/items/ActionDropdown.tsx:216 -#: src/contexts/ThemeContext.tsx:43 +#: src/components/details/DetailsImage.tsx:75 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:184 +#: src/components/items/ActionDropdown.tsx:268 +#: src/components/items/ActionDropdown.tsx:269 +#: src/contexts/ThemeContext.tsx:45 #: src/hooks/UseForm.tsx:40 -#: src/tables/FilterSelectDrawer.tsx:205 -#: src/tables/build/BuildOutputTable.tsx:286 +#: src/tables/FilterSelectDrawer.tsx:241 +#: src/tables/RowActions.tsx:59 +#: src/tables/build/BuildOutputTable.tsx:434 msgid "Cancel" msgstr "Vazgeç" -#: src/components/details/DetailsImage.tsx:97 +#: src/components/details/DetailsImage.tsx:101 msgid "Drag and drop to upload" -msgstr "" +msgstr "Yüklemek için sürükle ve bırak" -#: src/components/details/DetailsImage.tsx:100 +#: src/components/details/DetailsImage.tsx:104 msgid "Click to select file(s)" -msgstr "" +msgstr "Dosya(ları) seçmek için tıkla" -#: src/components/details/DetailsImage.tsx:226 +#: src/components/details/DetailsImage.tsx:230 msgid "Clear" -msgstr "" +msgstr "Temizle" -#: src/components/details/DetailsImage.tsx:232 -#: src/components/forms/ApiForm.tsx:627 -#: src/contexts/ThemeContext.tsx:43 -#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:60 +#: src/components/details/DetailsImage.tsx:236 +#: src/components/forms/ApiForm.tsx:660 +#: src/contexts/ThemeContext.tsx:45 msgid "Submit" msgstr "Gönder" -#: src/components/details/DetailsImage.tsx:272 -msgid "Select from existing images" -msgstr "" - #: src/components/details/DetailsImage.tsx:280 +msgid "Select from existing images" +msgstr "Var olan resimlerden seç" + +#: src/components/details/DetailsImage.tsx:288 msgid "Select Image" +msgstr "Resim Seç" + +#: src/components/details/DetailsImage.tsx:304 +msgid "Download remote image" msgstr "" -#: src/components/details/DetailsImage.tsx:292 +#: src/components/details/DetailsImage.tsx:319 msgid "Upload new image" -msgstr "" +msgstr "Yeni resim yükle" -#: src/components/details/DetailsImage.tsx:299 +#: src/components/details/DetailsImage.tsx:326 msgid "Upload Image" +msgstr "Resim Yükle" + +#: src/components/details/DetailsImage.tsx:339 +msgid "Delete image" +msgstr "Resmi sil" + +#: src/components/details/DetailsImage.tsx:373 +msgid "Download Image" msgstr "" -#: src/components/details/DetailsImage.tsx:312 -msgid "Delete image" +#: src/components/details/DetailsImage.tsx:378 +msgid "Image downloaded successfully" msgstr "" #: src/components/details/PartIcons.tsx:43 @@ -235,39 +514,60 @@ msgstr "" #~ msgid "Part is virtual (not a physical part)" #~ msgstr "Part is virtual (not a physical part)" -#: src/components/editors/NotesEditor.tsx:66 +#: src/components/editors/NotesEditor.tsx:74 msgid "Image upload failed" -msgstr "" +msgstr "Resim yükleme başarısız oldu" -#: src/components/editors/NotesEditor.tsx:156 -#: src/components/forms/ApiForm.tsx:467 +#: src/components/editors/NotesEditor.tsx:83 +#: src/components/editors/NotesEditor.tsx:119 +#: src/components/forms/ApiForm.tsx:475 #: src/tables/bom/BomTable.tsx:441 msgid "Success" msgstr "Başarılı" -#: src/components/editors/NotesEditor.tsx:157 +#: src/components/editors/NotesEditor.tsx:84 +msgid "Image uploaded successfully" +msgstr "" + +#: src/components/editors/NotesEditor.tsx:120 msgid "Notes saved successfully" -msgstr "" +msgstr "Notlar başarıyla kaydedildi" -#: src/components/editors/NotesEditor.tsx:166 +#: src/components/editors/NotesEditor.tsx:131 msgid "Failed to save notes" +msgstr "Notların kaydı başarısız oldu" + +#: src/components/editors/NotesEditor.tsx:134 +msgid "Error Saving Notes" msgstr "" -#: src/components/editors/NotesEditor.tsx:198 -msgid "Preview Notes" -msgstr "" +#: src/components/editors/NotesEditor.tsx:151 +#~ msgid "Disable Editing" +#~ msgstr "Disable Editing" -#: src/components/editors/NotesEditor.tsx:198 -msgid "Edit Notes" -msgstr "" - -#: src/components/editors/NotesEditor.tsx:212 +#: src/components/editors/NotesEditor.tsx:154 msgid "Save Notes" +msgstr "Notları Kaydet" + +#: src/components/editors/NotesEditor.tsx:173 +msgid "Close Editor" msgstr "" +#: src/components/editors/NotesEditor.tsx:180 +msgid "Enable Editing" +msgstr "" + +#: src/components/editors/NotesEditor.tsx:198 +#~ msgid "Preview Notes" +#~ msgstr "Preview Notes" + +#: src/components/editors/NotesEditor.tsx:198 +#~ msgid "Edit Notes" +#~ msgstr "Edit Notes" + #: src/components/editors/TemplateEditor/CodeEditor/index.tsx:9 msgid "Code" -msgstr "" +msgstr "Kod" #: src/components/editors/TemplateEditor/PdfPreview/PdfPreview.tsx:44 #~ msgid "Failed to parse error response from server." @@ -275,152 +575,157 @@ msgstr "" #: src/components/editors/TemplateEditor/PdfPreview/PdfPreview.tsx:81 msgid "Preview not available, click \"Reload Preview\"." -msgstr "" +msgstr "Önizleme kullanılamıyor, \"Önizlemeyi Yeniden Yükle\"'ye tıklayın." #: src/components/editors/TemplateEditor/PdfPreview/index.tsx:9 msgid "PDF Preview" -msgstr "" +msgstr "PDF Önizleme" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:104 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:115 msgid "Error loading template" -msgstr "" +msgstr "Şablonu yüklemede hata" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:116 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:127 msgid "Error saving template" -msgstr "" - -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:146 -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:274 -msgid "Save & Reload Preview" -msgstr "" - -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:151 -msgid "Are you sure you want to Save & Reload the preview?" -msgstr "" +msgstr "Şablonu kaydetmede hata" #: src/components/editors/TemplateEditor/TemplateEditor.tsx:151 #~ msgid "Save & Reload preview?" #~ msgstr "Save & Reload preview?" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:153 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:155 +msgid "Could not load the template from the server." +msgstr "" + +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:172 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:303 +msgid "Save & Reload Preview" +msgstr "Önizlemeyi Kaydet & Yeniden Yükle" + +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:177 +msgid "Are you sure you want to Save & Reload the preview?" +msgstr "Önizlemeyi Kaydedip Yeniden Yüklemek istediğinize emin misiniz?" + +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:179 msgid "To render the preview the current template needs to be replaced on the server with your modifications which may break the label if it is under active use. Do you want to proceed?" -msgstr "" +msgstr "Önizlemeyi oluşturmak için mevcut şablonun, aktif kullanımdaysa etiketi bozabilecek değişikliklerinizle sunucuda değiştirilmesi gerekir. Devam etmek istiyor musunuz?" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:157 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:183 msgid "Save & Reload" -msgstr "" +msgstr "Kaydet & Yeniden Yükle" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:189 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:215 msgid "Preview updated" -msgstr "" +msgstr "Güncelleneni önizle" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:190 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:216 msgid "The preview has been updated successfully." -msgstr "" +msgstr "Önizleme başarıyla güncellendi." #: src/components/editors/TemplateEditor/TemplateEditor.tsx:263 #~ msgid "Save & Reload preview" #~ msgstr "Save & Reload preview" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:266 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:295 msgid "Reload preview" -msgstr "" +msgstr "Önizlemeyi yeniden yükle" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:267 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:296 msgid "Use the currently stored template from the server" -msgstr "" +msgstr "Sunucuda kayıtlı olan şablonu kullan" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:275 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:304 msgid "Save the current template and reload the preview" -msgstr "" +msgstr "Mevcut şablonu kaydet ve önizlemeyi yeniden yükle" #: src/components/editors/TemplateEditor/TemplateEditor.tsx:322 #~ msgid "to preview" #~ msgstr "to preview" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:333 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:365 msgid "Select instance to preview" -msgstr "" +msgstr "Önizlenecek örneği seçin" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:377 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:409 msgid "Error rendering template" -msgstr "" +msgstr "Şablonu oluşturmada hata" #: src/components/errors/ClientError.tsx:23 msgid "Client Error" -msgstr "" +msgstr "İstemci Hatası" #: src/components/errors/ClientError.tsx:24 msgid "Client error occurred" -msgstr "" +msgstr "İstemci hatası oluştu" #: src/components/errors/GenericErrorPage.tsx:50 msgid "Status Code" -msgstr "" +msgstr "Durum Kodu" #: src/components/errors/GenericErrorPage.tsx:63 msgid "Return to the index page" -msgstr "" +msgstr "Dizin sayfasına dön" #: src/components/errors/NotAuthenticated.tsx:8 msgid "Not Authenticated" -msgstr "" +msgstr "Kimlik Doğrulanmamış" #: src/components/errors/NotAuthenticated.tsx:9 msgid "You are not logged in." -msgstr "" +msgstr "Giriş yapmamışsınız." #: src/components/errors/NotFound.tsx:8 msgid "Page Not Found" -msgstr "" +msgstr "Sayfa Bulunamadı" #: src/components/errors/NotFound.tsx:9 msgid "This page does not exist" -msgstr "" +msgstr "Bu sayfa mevcut değil" #: src/components/errors/PermissionDenied.tsx:8 +#: src/functions/notifications.tsx:24 msgid "Permission Denied" -msgstr "" +msgstr "İzin Reddedildi" #: src/components/errors/PermissionDenied.tsx:9 msgid "You do not have permission to view this page." -msgstr "" +msgstr "Bu sayfayı görme izniniz yok." #: src/components/errors/ServerError.tsx:8 msgid "Server Error" -msgstr "" +msgstr "Hatayı Kaydet" #: src/components/errors/ServerError.tsx:9 msgid "A server error occurred" -msgstr "" +msgstr "Bir sunucu hatası oluştu" -#: src/components/forms/ApiForm.tsx:151 -#: src/components/forms/ApiForm.tsx:555 +#: src/components/forms/ApiForm.tsx:154 +#: src/components/forms/ApiForm.tsx:579 msgid "Form Error" -msgstr "" +msgstr "Form Hatası" #: src/components/forms/ApiForm.tsx:487 #~ msgid "Form Errors Exist" #~ msgstr "Form Errors Exist" -#: src/components/forms/ApiForm.tsx:563 +#: src/components/forms/ApiForm.tsx:587 msgid "Errors exist for one or more form fields" -msgstr "" +msgstr "Bir veya daha fazla form alanında hatalar var" -#: src/components/forms/ApiForm.tsx:665 -#: src/tables/plugin/PluginListTable.tsx:388 +#: src/components/forms/ApiForm.tsx:698 +#: src/tables/plugin/PluginListTable.tsx:195 msgid "Update" -msgstr "" +msgstr "Güncelle" -#: src/components/forms/ApiForm.tsx:685 -#: src/components/items/ActionDropdown.tsx:195 +#: src/components/forms/ApiForm.tsx:718 +#: src/components/items/ActionDropdown.tsx:248 #: src/hooks/UseForm.tsx:122 -#: src/pages/Index/Scan.tsx:343 +#: src/pages/Index/Scan.tsx:357 #: src/pages/Notifications.tsx:123 -#: src/tables/RowActions.tsx:43 -#: src/tables/plugin/PluginListTable.tsx:420 +#: src/tables/RowActions.tsx:49 +#: src/tables/plugin/PluginListTable.tsx:232 msgid "Delete" -msgstr "" +msgstr "Sil" #: src/components/forms/AuthenticationForm.tsx:48 #: src/components/forms/AuthenticationForm.tsx:74 @@ -428,14 +733,6 @@ msgstr "" #~ msgid "Check your your input and try again." #~ msgstr "Check your your input and try again." -#: src/components/forms/AuthenticationForm.tsx:51 -msgid "Login successful" -msgstr "Oturum açıldı" - -#: src/components/forms/AuthenticationForm.tsx:52 -msgid "Logged in successfully" -msgstr "" - #: src/components/forms/AuthenticationForm.tsx:52 #~ msgid "Welcome back!" #~ msgstr "Welcome back!" @@ -444,14 +741,22 @@ msgstr "" #~ msgid "Login successfull" #~ msgstr "Login successfull" -#: src/components/forms/AuthenticationForm.tsx:58 +#: src/components/forms/AuthenticationForm.tsx:55 +msgid "Login successful" +msgstr "Oturum açıldı" + +#: src/components/forms/AuthenticationForm.tsx:56 +msgid "Logged in successfully" +msgstr "Başarıyla giriş yapıldı" + +#: src/components/forms/AuthenticationForm.tsx:61 msgid "Login failed" msgstr "Giriş başarısız" -#: src/components/forms/AuthenticationForm.tsx:59 -#: src/components/forms/AuthenticationForm.tsx:76 -#: src/components/forms/AuthenticationForm.tsx:211 -#: src/functions/auth.tsx:164 +#: src/components/forms/AuthenticationForm.tsx:62 +#: src/components/forms/AuthenticationForm.tsx:79 +#: src/components/forms/AuthenticationForm.tsx:214 +#: src/functions/auth.tsx:175 msgid "Check your input and try again." msgstr "Lütfen bilgilerinizi kontrol edin ve yeniden giriş yapın." @@ -460,45 +765,46 @@ msgstr "Lütfen bilgilerinizi kontrol edin ve yeniden giriş yapın." #~ msgid "Mail delivery successfull" #~ msgstr "Mail delivery successfull" -#: src/components/forms/AuthenticationForm.tsx:70 -#: src/functions/auth.tsx:155 +#: src/components/forms/AuthenticationForm.tsx:73 +#: src/functions/auth.tsx:166 msgid "Mail delivery successful" msgstr "E-posta teslimi başarılı" -#: src/components/forms/AuthenticationForm.tsx:71 +#: src/components/forms/AuthenticationForm.tsx:74 msgid "Check your inbox for the login link. If you have an account, you will receive a login link. Check in spam too." msgstr "Gelen kutunuzu kontrol edin. Eğer hesabınız varsa giriş yapabilmeniz için bir link alacaksınız. Spam klasörünüzü de kontrol edin." -#: src/components/forms/AuthenticationForm.tsx:75 +#: src/components/forms/AuthenticationForm.tsx:78 msgid "Mail delivery failed" -msgstr "" +msgstr "Posta teslimi başarısız oldu" -#: src/components/forms/AuthenticationForm.tsx:95 +#: src/components/forms/AuthenticationForm.tsx:98 msgid "Or continue with other methods" -msgstr "" +msgstr "Veya başka yöntemlerle devam edin" -#: src/components/forms/AuthenticationForm.tsx:106 -#: src/components/forms/AuthenticationForm.tsx:227 +#: src/components/forms/AuthenticationForm.tsx:109 +#: src/components/forms/AuthenticationForm.tsx:230 +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:67 msgid "Username" msgstr "Kullanıcı Adı" -#: src/components/forms/AuthenticationForm.tsx:107 -#: src/components/forms/AuthenticationForm.tsx:228 +#: src/components/forms/AuthenticationForm.tsx:110 +#: src/components/forms/AuthenticationForm.tsx:231 msgid "Your username" -msgstr "" +msgstr "Kullanıcı adınız" -#: src/components/forms/AuthenticationForm.tsx:112 -#: src/components/forms/AuthenticationForm.tsx:240 -#: src/pages/Auth/Set-Password.tsx:106 +#: src/components/forms/AuthenticationForm.tsx:115 +#: src/components/forms/AuthenticationForm.tsx:243 +#: src/pages/Auth/Set-Password.tsx:101 msgid "Password" msgstr "Parola" -#: src/components/forms/AuthenticationForm.tsx:113 -#: src/components/forms/AuthenticationForm.tsx:241 +#: src/components/forms/AuthenticationForm.tsx:116 +#: src/components/forms/AuthenticationForm.tsx:244 msgid "Your password" msgstr "Parolanız" -#: src/components/forms/AuthenticationForm.tsx:125 +#: src/components/forms/AuthenticationForm.tsx:128 #: src/pages/Auth/Reset.tsx:26 msgid "Reset password" msgstr "Parolayı sıfırla" @@ -507,79 +813,81 @@ msgstr "Parolayı sıfırla" #~ msgid "Log in" #~ msgstr "Log in" -#: src/components/forms/AuthenticationForm.tsx:134 -#: src/components/forms/AuthenticationForm.tsx:233 +#: src/components/forms/AuthenticationForm.tsx:136 +#~ msgid "I will use username and password" +#~ msgstr "I will use username and password" + +#: src/components/forms/AuthenticationForm.tsx:137 +#: src/components/forms/AuthenticationForm.tsx:236 #: src/pages/Auth/Reset.tsx:31 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:51 msgid "Email" msgstr "E-posta" -#: src/components/forms/AuthenticationForm.tsx:135 +#: src/components/forms/AuthenticationForm.tsx:138 #: src/pages/Auth/Reset.tsx:32 -#: src/pages/Auth/Set-Password.tsx:107 +#: src/pages/Auth/Set-Password.tsx:102 msgid "We will send you a link to login - if you are registered" msgstr "Size giriş yapabilmeniz için bir link göndereceğiz - eğer kayıtlıysanız" -#: src/components/forms/AuthenticationForm.tsx:136 -#~ msgid "I will use username and password" -#~ msgstr "I will use username and password" - -#: src/components/forms/AuthenticationForm.tsx:151 +#: src/components/forms/AuthenticationForm.tsx:154 msgid "Send me an email" msgstr "Bize bir eposta gönderin" -#: src/components/forms/AuthenticationForm.tsx:153 +#: src/components/forms/AuthenticationForm.tsx:156 msgid "Use username and password" -msgstr "" +msgstr "Kullanıcı adı ve şifre kullan" -#: src/components/forms/AuthenticationForm.tsx:162 +#: src/components/forms/AuthenticationForm.tsx:165 msgid "Log In" -msgstr "" +msgstr "Giriş Yap" -#: src/components/forms/AuthenticationForm.tsx:164 +#: src/components/forms/AuthenticationForm.tsx:167 +#: src/pages/Auth/Reset.tsx:41 +#: src/pages/Auth/Set-Password.tsx:107 msgid "Send Email" -msgstr "" +msgstr "E-posta Gönder" -#: src/components/forms/AuthenticationForm.tsx:193 +#: src/components/forms/AuthenticationForm.tsx:196 msgid "Registration successful" -msgstr "" +msgstr "Kayıt başarılı" -#: src/components/forms/AuthenticationForm.tsx:194 +#: src/components/forms/AuthenticationForm.tsx:197 msgid "Please confirm your email address to complete the registration" -msgstr "" +msgstr "Kaydı tamamlamak için lütfen e-posta adresinizi doğrulayın" -#: src/components/forms/AuthenticationForm.tsx:210 +#: src/components/forms/AuthenticationForm.tsx:213 msgid "Input error" msgstr "Hatalı giriş" -#: src/components/forms/AuthenticationForm.tsx:234 +#: src/components/forms/AuthenticationForm.tsx:237 msgid "This will be used for a confirmation" -msgstr "" +msgstr "Bu bir doğrulama için kullanılacak" -#: src/components/forms/AuthenticationForm.tsx:246 +#: src/components/forms/AuthenticationForm.tsx:249 msgid "Password repeat" -msgstr "" +msgstr "Şifreyi tekrarı" -#: src/components/forms/AuthenticationForm.tsx:247 +#: src/components/forms/AuthenticationForm.tsx:250 msgid "Repeat password" -msgstr "" +msgstr "Şifreyi tekrar girin" -#: src/components/forms/AuthenticationForm.tsx:259 -#: src/components/forms/AuthenticationForm.tsx:304 +#: src/components/forms/AuthenticationForm.tsx:262 +#: src/components/forms/AuthenticationForm.tsx:307 msgid "Register" -msgstr "" +msgstr "Kaydol" -#: src/components/forms/AuthenticationForm.tsx:265 +#: src/components/forms/AuthenticationForm.tsx:268 msgid "Or use SSO" -msgstr "" +msgstr "Veya SSO kullanın" -#: src/components/forms/AuthenticationForm.tsx:296 +#: src/components/forms/AuthenticationForm.tsx:299 msgid "Don't have an account?" -msgstr "" +msgstr "Bir hesabınız yok mu?" -#: src/components/forms/AuthenticationForm.tsx:315 +#: src/components/forms/AuthenticationForm.tsx:318 msgid "Go back to login" -msgstr "" +msgstr "Giriş yapma ekranına geri dön" #: src/components/forms/HostOptionsForm.tsx:36 #: src/components/forms/HostOptionsForm.tsx:67 @@ -588,19 +896,20 @@ msgstr "Sunucu" #: src/components/forms/HostOptionsForm.tsx:42 #: src/components/forms/HostOptionsForm.tsx:70 +#: src/components/plugins/PluginDrawer.tsx:69 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:410 +#: src/pages/Index/Settings/AdminCenter/UnitManagmentPanel.tsx:19 #: src/pages/part/CategoryDetail.tsx:81 -#: src/pages/part/PartDetail.tsx:143 -#: src/pages/stock/LocationDetail.tsx:89 -#: src/tables/machine/MachineTypeTable.tsx:65 -#: src/tables/machine/MachineTypeTable.tsx:109 -#: src/tables/machine/MachineTypeTable.tsx:216 -#: src/tables/machine/MachineTypeTable.tsx:319 +#: src/pages/part/PartDetail.tsx:164 +#: src/pages/stock/LocationDetail.tsx:83 +#: src/tables/machine/MachineTypeTable.tsx:70 +#: src/tables/machine/MachineTypeTable.tsx:119 +#: src/tables/machine/MachineTypeTable.tsx:237 +#: src/tables/machine/MachineTypeTable.tsx:340 #: src/tables/plugin/PluginErrorTable.tsx:33 -#: src/tables/plugin/PluginListTable.tsx:126 #: src/tables/purchasing/ManufacturerPartParameterTable.tsx:32 #: src/tables/settings/GroupTable.tsx:147 -#: src/tables/settings/PendingTasksTable.tsx:28 +#: src/tables/settings/PendingTasksTable.tsx:32 #: src/tables/stock/LocationTypesTable.tsx:69 msgid "Name" msgstr "Adı" @@ -619,7 +928,7 @@ msgstr "Kaydet" #: src/components/forms/InstanceOptions.tsx:43 msgid "Select destination instance" -msgstr "" +msgstr "Hedef örneği seçin" #: src/components/forms/InstanceOptions.tsx:71 msgid "Edit possible host options" @@ -643,54 +952,53 @@ msgstr "Durum: <0>worker ({0}), <1>eklenti{1}" #: src/components/forms/fields/IconField.tsx:81 msgid "No icon selected" -msgstr "" +msgstr "Hiç simge seçilmedi" #: src/components/forms/fields/IconField.tsx:159 msgid "Uncategorized" -msgstr "" +msgstr "Sınıflandırılmamış" #: src/components/forms/fields/IconField.tsx:209 -#: src/components/nav/Layout.tsx:70 +#: src/components/nav/Layout.tsx:77 #: src/tables/part/PartThumbTable.tsx:192 msgid "Search..." -msgstr "" +msgstr "Ara..." #: src/components/forms/fields/IconField.tsx:223 msgid "Select category" -msgstr "" +msgstr "Sınıf seç" #: src/components/forms/fields/IconField.tsx:232 msgid "Select pack" -msgstr "" +msgstr "Paket seç" #: src/components/forms/fields/IconField.tsx:237 msgid "{0} icons" -msgstr "" - -#: src/components/forms/fields/RelatedModelField.tsx:318 -#: src/pages/Index/Settings/UserSettings.tsx:96 -#: src/tables/Search.tsx:23 -msgid "Search" -msgstr "" +msgstr "{0} simge" #: src/components/forms/fields/RelatedModelField.tsx:319 +#: src/pages/Index/Settings/UserSettings.tsx:97 +#: src/tables/Search.tsx:23 +msgid "Search" +msgstr "Ara" + +#: src/components/forms/fields/RelatedModelField.tsx:320 #: src/components/modals/AboutInvenTreeModal.tsx:81 -#: src/components/widgets/WidgetLayout.tsx:120 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:316 msgid "Loading" msgstr "Yükleniyor" -#: src/components/forms/fields/RelatedModelField.tsx:321 +#: src/components/forms/fields/RelatedModelField.tsx:322 msgid "No results found" -msgstr "" +msgstr "Hiçbir şey bulunamadı" -#: src/components/forms/fields/TableField.tsx:52 -msgid "modelRenderer entry required for tables" -msgstr "" +#: src/components/forms/fields/TableField.tsx:72 +#~ msgid "modelRenderer entry required for tables" +#~ msgstr "modelRenderer entry required for tables" -#: src/components/forms/fields/TableField.tsx:76 +#: src/components/forms/fields/TableField.tsx:167 msgid "No entries available" -msgstr "" +msgstr "Kullanılabilir girdi yok" #: src/components/images/DetailsImage.tsx:252 #~ msgid "Select image" @@ -702,69 +1010,70 @@ msgstr "Küçük resim" #: src/components/importer/ImportDataSelector.tsx:170 msgid "Importing Rows" -msgstr "" +msgstr "Satırlar İçe Aktarılıyor" #: src/components/importer/ImportDataSelector.tsx:171 msgid "Please wait while the data is imported" -msgstr "" +msgstr "Veri içe aktarılırken lütfen bekleyin" #: src/components/importer/ImportDataSelector.tsx:188 msgid "An error occurred while importing data" -msgstr "" +msgstr "Veriyi içeri aktarırken bir hata oluştu" #: src/components/importer/ImportDataSelector.tsx:209 msgid "Edit Data" -msgstr "" +msgstr "Veriyi Düzenle" #: src/components/importer/ImportDataSelector.tsx:237 msgid "Delete Row" -msgstr "" +msgstr "Satır Sil" #: src/components/importer/ImportDataSelector.tsx:267 msgid "Row" -msgstr "" +msgstr "Satır" #: src/components/importer/ImportDataSelector.tsx:285 msgid "Row contains errors" -msgstr "" +msgstr "Satırda hatalar var" #: src/components/importer/ImportDataSelector.tsx:326 msgid "Accept" -msgstr "" +msgstr "Kabul et" #: src/components/importer/ImportDataSelector.tsx:359 msgid "Valid" -msgstr "" +msgstr "Geçerli" #: src/components/importer/ImportDataSelector.tsx:360 msgid "Filter by row validation status" -msgstr "" +msgstr "Satır doğrulama durumuna göre süz" #: src/components/importer/ImportDataSelector.tsx:365 -#: src/tables/build/BuildOutputTable.tsx:266 +#: src/tables/build/BuildOutputTable.tsx:407 msgid "Complete" -msgstr "" +msgstr "Tam" #: src/components/importer/ImportDataSelector.tsx:366 msgid "Filter by row completion status" -msgstr "" +msgstr "Satır tamamlanma durumuna göre süz" -#: src/components/importer/ImportDataSelector.tsx:383 +#: src/components/importer/ImportDataSelector.tsx:384 msgid "Import selected rows" -msgstr "" +msgstr "Seçlen satırları içe aktar" -#: src/components/importer/ImportDataSelector.tsx:398 +#: src/components/importer/ImportDataSelector.tsx:399 msgid "Processing Data" -msgstr "" +msgstr "Veri İşleniyor" -#: src/components/importer/ImporterColumnSelector.tsx:50 -#: src/components/importer/ImporterColumnSelector.tsx:176 +#: src/components/importer/ImporterColumnSelector.tsx:53 +#: src/components/importer/ImporterColumnSelector.tsx:179 +#: src/components/items/ErrorItem.tsx:12 msgid "An error occurred" -msgstr "" +msgstr "Bir hata oluştu" -#: src/components/importer/ImporterColumnSelector.tsx:62 +#: src/components/importer/ImporterColumnSelector.tsx:65 msgid "Select column, or leave blank to ignore this field." -msgstr "" +msgstr "Sütun seçin veya bu alanı yok saymak için boş bırakın." #: src/components/importer/ImporterColumnSelector.tsx:91 #~ msgid "Select a column from the data file" @@ -778,171 +1087,201 @@ msgstr "" #~ msgid "Imported Column Name" #~ msgstr "Imported Column Name" -#: src/components/importer/ImporterColumnSelector.tsx:182 +#: src/components/importer/ImporterColumnSelector.tsx:185 msgid "Ignore this field" -msgstr "" +msgstr "Bu alanı yok say" -#: src/components/importer/ImporterColumnSelector.tsx:196 +#: src/components/importer/ImporterColumnSelector.tsx:199 msgid "Mapping data columns to database fields" -msgstr "" +msgstr "Veri sütunları veritabanı alanları ile eşleştiriliyor" -#: src/components/importer/ImporterColumnSelector.tsx:201 +#: src/components/importer/ImporterColumnSelector.tsx:204 msgid "Accept Column Mapping" -msgstr "" - -#: src/components/importer/ImporterColumnSelector.tsx:214 -msgid "Database Field" -msgstr "" - -#: src/components/importer/ImporterColumnSelector.tsx:215 -msgid "Field Description" -msgstr "" - -#: src/components/importer/ImporterColumnSelector.tsx:216 -msgid "Imported Column" -msgstr "" +msgstr "Sütun Eşleştirmesini Kabul Et" #: src/components/importer/ImporterColumnSelector.tsx:217 +msgid "Database Field" +msgstr "Veritabanı Alanı" + +#: src/components/importer/ImporterColumnSelector.tsx:218 +msgid "Field Description" +msgstr "Alan Açıklaması" + +#: src/components/importer/ImporterColumnSelector.tsx:219 +msgid "Imported Column" +msgstr "İçe Aktarılmış Sütun" + +#: src/components/importer/ImporterColumnSelector.tsx:220 msgid "Default Value" -msgstr "" - -#: src/components/importer/ImporterDrawer.tsx:44 -msgid "Upload File" -msgstr "" - -#: src/components/importer/ImporterDrawer.tsx:45 -msgid "Map Columns" -msgstr "" +msgstr "Varsayılan Değer" #: src/components/importer/ImporterDrawer.tsx:46 -msgid "Import Data" -msgstr "" +msgid "Upload File" +msgstr "Dosya Yükle" #: src/components/importer/ImporterDrawer.tsx:47 -msgid "Process Data" -msgstr "" +msgid "Map Columns" +msgstr "Sütunları Eşleştir" #: src/components/importer/ImporterDrawer.tsx:48 +msgid "Import Data" +msgstr "Veri İçe Aktar" + +#: src/components/importer/ImporterDrawer.tsx:49 +msgid "Process Data" +msgstr "Veriyi İşle" + +#: src/components/importer/ImporterDrawer.tsx:50 msgid "Complete Import" -msgstr "" +msgstr "İçe Aktarmayı Tamamla" #: src/components/importer/ImporterDrawer.tsx:97 #~ msgid "Cancel import session" #~ msgstr "Cancel import session" -#: src/components/importer/ImporterDrawer.tsx:104 +#: src/components/importer/ImporterDrawer.tsx:106 msgid "Import Complete" -msgstr "" - -#: src/components/importer/ImporterDrawer.tsx:107 -msgid "Data has been imported successfully" -msgstr "" +msgstr "İçe Aktarma Tamam" #: src/components/importer/ImporterDrawer.tsx:109 -#: src/components/importer/ImporterDrawer.tsx:118 +msgid "Data has been imported successfully" +msgstr "Veri başarıyla içe aktarıldı" + +#: src/components/importer/ImporterDrawer.tsx:111 +#: src/components/importer/ImporterDrawer.tsx:120 msgid "Close" -msgstr "" +msgstr "Kapat" -#: src/components/importer/ImporterDrawer.tsx:115 +#: src/components/importer/ImporterDrawer.tsx:117 msgid "Unknown Status" -msgstr "" +msgstr "Bilinmeyen Durum" -#: src/components/importer/ImporterDrawer.tsx:116 +#: src/components/importer/ImporterDrawer.tsx:118 msgid "Import session has unknown status" -msgstr "" +msgstr "İçe aktarma oturumunun bilinmeyen bir durumu var" -#: src/components/importer/ImporterDrawer.tsx:135 +#: src/components/importer/ImporterDrawer.tsx:137 msgid "Importing Data" -msgstr "" +msgstr "Veri İçe Aktarılıyor" #: src/components/importer/ImporterImportProgress.tsx:36 msgid "Importing Records" -msgstr "" +msgstr "Kayıtlar İçe Aktarılıyor" #: src/components/importer/ImporterImportProgress.tsx:39 -msgid "Imported rows" -msgstr "" +#: src/tables/settings/ImportSessionTable.tsx:78 +msgid "Imported Rows" +msgstr "İçe Aktarılan Satırlar" -#: src/components/items/ActionDropdown.tsx:121 -msgid "Barcode Actions" +#: src/components/importer/ImporterImportProgress.tsx:39 +#~ msgid "Imported rows" +#~ msgstr "Imported rows" + +#: src/components/items/ActionDropdown.tsx:126 +msgid "Options" msgstr "" #: src/components/items/ActionDropdown.tsx:140 -msgid "View Barcode" -msgstr "" - -#: src/components/items/ActionDropdown.tsx:147 -msgid "View" -msgstr "" - -#: src/components/items/ActionDropdown.tsx:148 -msgid "View barcode" -msgstr "" - -#: src/components/items/ActionDropdown.tsx:161 -msgid "Link Barcode" -msgstr "" +#~ msgid "View Barcode" +#~ msgstr "View Barcode" #: src/components/items/ActionDropdown.tsx:162 -msgid "Link custom barcode" -msgstr "" +#: src/tables/InvenTreeTableHeader.tsx:159 +#: src/tables/InvenTreeTableHeader.tsx:160 +msgid "Barcode Actions" +msgstr "Barkod Eylemleri" -#: src/components/items/ActionDropdown.tsx:173 -#: src/forms/PurchaseOrderForms.tsx:426 -msgid "Unlink Barcode" -msgstr "" +#: src/components/items/ActionDropdown.tsx:162 +#~ msgid "Link custom barcode" +#~ msgstr "Link custom barcode" -#: src/components/items/ActionDropdown.tsx:174 -msgid "Unlink custom barcode" -msgstr "" +#: src/components/items/ActionDropdown.tsx:167 +msgid "View" +msgstr "Görünüm" + +#: src/components/items/ActionDropdown.tsx:169 +msgid "View barcode" +msgstr "Barkod görüntüle" + +#: src/components/items/ActionDropdown.tsx:175 +msgid "Link Barcode" +msgstr "Barkodu Bağla" + +#: src/components/items/ActionDropdown.tsx:177 +msgid "Link a custom barcode to this item" +msgstr "Özel bir barkodu bu ögeye bağla" #: src/components/items/ActionDropdown.tsx:183 -#: src/tables/RowActions.tsx:33 +#: src/components/items/QRCode.tsx:193 +#: src/forms/PurchaseOrderForms.tsx:464 +msgid "Unlink Barcode" +msgstr "Barkodun Bağlantısını Kaldır" + +#: src/components/items/ActionDropdown.tsx:185 +msgid "Unlink custom barcode" +msgstr "Özel barkodun bağlantısını kaldır" + +#: src/components/items/ActionDropdown.tsx:236 +#: src/tables/RowActions.tsx:39 msgid "Edit" -msgstr "" +msgstr "Düzenle" -#: src/components/items/ActionDropdown.tsx:184 +#: src/components/items/ActionDropdown.tsx:237 msgid "Edit item" -msgstr "" +msgstr "Ögeyi düzenle" -#: src/components/items/ActionDropdown.tsx:196 +#: src/components/items/ActionDropdown.tsx:249 msgid "Delete item" -msgstr "" +msgstr "Ögeyi sil" -#: src/components/items/ActionDropdown.tsx:204 -#: src/components/items/ActionDropdown.tsx:205 +#: src/components/items/ActionDropdown.tsx:257 +#: src/components/items/ActionDropdown.tsx:258 msgid "Hold" -msgstr "" +msgstr "Tut" -#: src/components/items/ActionDropdown.tsx:227 -#: src/tables/RowActions.tsx:23 +#: src/components/items/ActionDropdown.tsx:280 +#: src/tables/RowActions.tsx:29 msgid "Duplicate" -msgstr "" +msgstr "İkizini Oluştur" -#: src/components/items/ActionDropdown.tsx:228 +#: src/components/items/ActionDropdown.tsx:281 msgid "Duplicate item" +msgstr "Ögenin İkizini Oluştur" + +#: src/components/items/BarcodeInput.tsx:23 +msgid "Scan barcode data here using barcode scanner" +msgstr "Barkod tarayıcıyı kullanarak barkod verisini burada tarayın" + +#: src/components/items/BarcodeInput.tsx:24 +#: src/tables/settings/BarcodeScanHistoryTable.tsx:65 +msgid "Barcode" +msgstr "Barkod" + +#: src/components/items/BarcodeInput.tsx:25 +msgid "Scan" msgstr "" #: src/components/items/DocTooltip.tsx:92 +#: src/components/items/GettingStartedCarousel.tsx:20 msgid "Read More" msgstr "Devamını Oku" -#: src/components/items/ErrorItem.tsx:5 -#: src/tables/InvenTreeTable.tsx:487 +#: src/components/items/ErrorItem.tsx:8 +#: src/tables/InvenTreeTable.tsx:473 msgid "Unknown error" msgstr "Bilinmeyen hata" -#: src/components/items/ErrorItem.tsx:10 -msgid "An error occurred:" -msgstr "Bir hata oluştu:" +#: src/components/items/ErrorItem.tsx:13 +#~ msgid "An error occurred:" +#~ msgstr "An error occurred:" #: src/components/items/GettingStartedCarousel.tsx:27 -msgid "Read more" -msgstr "Devamını oku" +#~ msgid "Read more" +#~ msgstr "Read more" #: src/components/items/InfoItem.tsx:27 msgid "None" -msgstr "" +msgstr "Hiçbiri" #: src/components/items/InvenTreeLogo.tsx:23 msgid "InvenTree Logo" @@ -951,7 +1290,7 @@ msgstr "InvenTree Logo" #: src/components/items/OnlyStaff.tsx:9 #: src/components/modals/AboutInvenTreeModal.tsx:44 msgid "This information is only available for staff users" -msgstr "" +msgstr "Bu bilgi yalnızca personel kullanıcılar için mevcuttur" #: src/components/items/Placeholder.tsx:14 msgid "This feature/button/site is a placeholder for a feature that is not implemented, only partial or intended for testing." @@ -959,203 +1298,183 @@ msgstr "Bu özellik/buton/alan henüz tamamlanmamış ya da test aşamasında ol #: src/components/items/Placeholder.tsx:17 msgid "PLH" -msgstr "" +msgstr "PLH" #: src/components/items/Placeholder.tsx:31 msgid "This panel is a placeholder." -msgstr "" - -#: src/components/items/QRCode.tsx:87 -msgid "Low (7%)" -msgstr "" - -#: src/components/items/QRCode.tsx:88 -msgid "Medium (15%)" -msgstr "" +msgstr "Bu panel bir yer tutucudur." #: src/components/items/QRCode.tsx:89 -msgid "Quartile (25%)" -msgstr "" +msgid "Low (7%)" +msgstr "Düşük (%7)" #: src/components/items/QRCode.tsx:90 +msgid "Medium (15%)" +msgstr "Orta (%15)" + +#: src/components/items/QRCode.tsx:91 +msgid "Quartile (25%)" +msgstr "Çeyrek (%25)" + +#: src/components/items/QRCode.tsx:92 msgid "High (30%)" +msgstr "Yüksek (%30)" + +#: src/components/items/QRCode.tsx:100 +msgid "Custom barcode" msgstr "" -#: src/components/items/QRCode.tsx:107 -msgid "Barcode Data:" -msgstr "" +#: src/components/items/QRCode.tsx:101 +msgid "A custom barcode is registered for this item. The shown code is not that custom barcode." +msgstr "Bu öge için özel bir barkod kaydedilmiş. Gösterilen kod o özel barkod değildir." #: src/components/items/QRCode.tsx:118 +msgid "Barcode Data:" +msgstr "Barkod Verisi:" + +#: src/components/items/QRCode.tsx:129 msgid "Select Error Correction Level" -msgstr "" +msgstr "Hata Düzeltme Düzeyini Seçin" + +#: src/components/items/QRCode.tsx:171 +#: src/pages/part/PartDetail.tsx:239 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:187 +#: src/pages/sales/ReturnOrderDetail.tsx:157 +#: src/pages/sales/SalesOrderDetail.tsx:169 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:166 +msgid "Link" +msgstr "Bağlantı" + +#: src/components/items/QRCode.tsx:190 +msgid "This will remove the link to the associated barcode" +msgstr "Bu, ilgili barkoda olan bağlantıyı kaldıracaktır" #: src/components/modals/AboutInvenTreeModal.tsx:99 msgid "Version Information" -msgstr "" +msgstr "Sürüm Bilgisi" #: src/components/modals/AboutInvenTreeModal.tsx:103 msgid "Your InvenTree version status is" -msgstr "" +msgstr "InvenTree uygulamanızın sürüm durumu" #: src/components/modals/AboutInvenTreeModal.tsx:107 msgid "Development Version" -msgstr "" +msgstr "Geliştirme Sürümü" #: src/components/modals/AboutInvenTreeModal.tsx:111 msgid "Up to Date" -msgstr "" +msgstr "Güncel" #: src/components/modals/AboutInvenTreeModal.tsx:115 msgid "Update Available" -msgstr "" +msgstr "Güncelleme Var" #: src/components/modals/AboutInvenTreeModal.tsx:125 msgid "InvenTree Version" -msgstr "" +msgstr "InvenTree Sürümü" #: src/components/modals/AboutInvenTreeModal.tsx:131 msgid "Commit Hash" -msgstr "" +msgstr "İşleme Hash Kodu" #: src/components/modals/AboutInvenTreeModal.tsx:136 msgid "Commit Date" -msgstr "" +msgstr "İşleme Tarihi" #: src/components/modals/AboutInvenTreeModal.tsx:141 msgid "Commit Branch" -msgstr "" +msgstr "Dalı İşle" #: src/components/modals/AboutInvenTreeModal.tsx:146 #: src/components/modals/ServerInfoModal.tsx:133 msgid "API Version" -msgstr "" +msgstr "API Sürümü" #: src/components/modals/AboutInvenTreeModal.tsx:149 msgid "Python Version" -msgstr "" +msgstr "Python Sürümü" #: src/components/modals/AboutInvenTreeModal.tsx:152 msgid "Django Version" -msgstr "" +msgstr "Django Sürümü" #: src/components/modals/AboutInvenTreeModal.tsx:162 msgid "Links" -msgstr "" +msgstr "Bağlantılar" #: src/components/modals/AboutInvenTreeModal.tsx:168 msgid "InvenTree Documentation" -msgstr "" +msgstr "InvenTree Belgelendirmesi" #: src/components/modals/AboutInvenTreeModal.tsx:169 msgid "View Code on GitHub" -msgstr "" +msgstr "Kodu GitHub'da Görüntüle" #: src/components/modals/AboutInvenTreeModal.tsx:170 msgid "Credits" -msgstr "" +msgstr "Emeği Geçenler" #: src/components/modals/AboutInvenTreeModal.tsx:171 msgid "Mobile App" -msgstr "" +msgstr "Mobil Uygulama" #: src/components/modals/AboutInvenTreeModal.tsx:172 msgid "Submit Bug Report" -msgstr "" +msgstr "Hata Raporla" -#: src/components/modals/AboutInvenTreeModal.tsx:183 +#: src/components/modals/AboutInvenTreeModal.tsx:181 msgid "Copy version information" -msgstr "" +msgstr "Sürüm bilgisini kopyala" -#: src/components/modals/AboutInvenTreeModal.tsx:192 +#: src/components/modals/AboutInvenTreeModal.tsx:189 #: src/components/modals/ServerInfoModal.tsx:147 msgid "Dismiss" -msgstr "" +msgstr "Kapat" #: src/components/modals/LicenseModal.tsx:39 msgid "No license text available" -msgstr "" +msgstr "Kullanılabilir lisans metni yok" #: src/components/modals/LicenseModal.tsx:46 msgid "No Information provided - this is likely a server issue" -msgstr "" +msgstr "Bir bilgi sağlanmadı - bu muhtemelen bir sunucu sorunu" #: src/components/modals/LicenseModal.tsx:71 msgid "Loading license information" -msgstr "" +msgstr "Lisans bilgisi yükleniyor" #: src/components/modals/LicenseModal.tsx:77 msgid "Failed to fetch license information" -msgstr "" +msgstr "Lisans bilgisi getirilemedi" #: src/components/modals/LicenseModal.tsx:85 msgid "{key} Packages" -msgstr "" +msgstr "{key} Paket" -#: src/components/modals/QrCodeModal.tsx:72 +#: src/components/modals/QrCodeModal.tsx:24 msgid "Unknown response" msgstr "Bilinmeyen yanıt" -#: src/components/modals/QrCodeModal.tsx:102 -#: src/pages/Index/Scan.tsx:636 -msgid "Error while getting camera" -msgstr "Kamera açılırken hata oluştu" - -#: src/components/modals/QrCodeModal.tsx:125 -#: src/pages/Index/Scan.tsx:659 -msgid "Error while scanning" -msgstr "Tarama sırasında hata" - -#: src/components/modals/QrCodeModal.tsx:139 -#: src/pages/Index/Scan.tsx:673 -msgid "Error while stopping" -msgstr "Durdurma sırasında hata" - -#: src/components/modals/QrCodeModal.tsx:154 -#: src/defaults/menuItems.tsx:21 -#: src/pages/Index/Scan.tsx:746 -msgid "Scanning" -msgstr "Taranıyor" - -#: src/components/modals/QrCodeModal.tsx:154 -#: src/pages/Index/Scan.tsx:746 -msgid "Not scanning" -msgstr "Taranmıyor" - -#: src/components/modals/QrCodeModal.tsx:159 -#: src/pages/Index/Scan.tsx:752 -msgid "Select Camera" -msgstr "Kamera Seç" - -#: src/components/modals/QrCodeModal.tsx:169 -#: src/pages/Index/Scan.tsx:737 -msgid "Start scanning" -msgstr "Taramayı başlat" - -#: src/components/modals/QrCodeModal.tsx:176 -#: src/pages/Index/Scan.tsx:729 -msgid "Stop scanning" -msgstr "Taramayı durdur" - -#: src/components/modals/QrCodeModal.tsx:181 +#: src/components/modals/QrCodeModal.tsx:39 msgid "No scans yet!" msgstr "Henüz bir tarama yok!" -#: src/components/modals/QrCodeModal.tsx:201 +#: src/components/modals/QrCodeModal.tsx:57 msgid "Close modal" msgstr "Pencereyi kapat" #: src/components/modals/ServerInfoModal.tsx:26 -#: src/pages/Index/Settings/SystemSettings.tsx:38 +#: src/pages/Index/Settings/SystemSettings.tsx:37 msgid "Server" -msgstr "" +msgstr "Sunucu" #: src/components/modals/ServerInfoModal.tsx:32 msgid "Instance Name" -msgstr "" +msgstr "Örnek Adı" #: src/components/modals/ServerInfoModal.tsx:38 msgid "Database" -msgstr "" +msgstr "Veritabanı" #: src/components/modals/ServerInfoModal.tsx:38 #~ msgid "Bebug Mode" @@ -1163,73 +1482,74 @@ msgstr "" #: src/components/modals/ServerInfoModal.tsx:47 msgid "Debug Mode" -msgstr "" +msgstr "Hata Ayıklama Kipi" #: src/components/modals/ServerInfoModal.tsx:50 msgid "Server is running in debug mode" -msgstr "" +msgstr "Sunucu hata ayıklama kipinde çalışıyor" #: src/components/modals/ServerInfoModal.tsx:57 msgid "Docker Mode" -msgstr "" +msgstr "Docker Kipi" #: src/components/modals/ServerInfoModal.tsx:60 msgid "Server is deployed using docker" -msgstr "" +msgstr "Sunucu docker kullanılarak dağıtıldı" #: src/components/modals/ServerInfoModal.tsx:66 msgid "Plugin Support" -msgstr "" +msgstr "Eklenti Desteği" #: src/components/modals/ServerInfoModal.tsx:71 msgid "Plugin support enabled" -msgstr "" +msgstr "Eklenti desteği etkin" #: src/components/modals/ServerInfoModal.tsx:73 msgid "Plugin support disabled" -msgstr "" +msgstr "Eklenti desteği etkisiz" #: src/components/modals/ServerInfoModal.tsx:80 msgid "Server status" -msgstr "" +msgstr "Sunucu durumu" #: src/components/modals/ServerInfoModal.tsx:86 msgid "Healthy" -msgstr "" +msgstr "Sağlıklı" #: src/components/modals/ServerInfoModal.tsx:88 msgid "Issues detected" -msgstr "" +msgstr "Sorunlar saptandı" #: src/components/modals/ServerInfoModal.tsx:97 msgid "Background Worker" -msgstr "" +msgstr "Arkaplan işçisi" #: src/components/modals/ServerInfoModal.tsx:101 +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:29 msgid "Background worker not running" -msgstr "" +msgstr "Arkaplan işçisi çalışmıyor" #: src/components/modals/ServerInfoModal.tsx:109 msgid "Email Settings" -msgstr "" +msgstr "E-posta Ayarları" #: src/components/modals/ServerInfoModal.tsx:113 msgid "Email settings not configured" -msgstr "" +msgstr "E-posta ayarları yapılandırılmadı" #: src/components/modals/ServerInfoModal.tsx:121 -#: src/tables/plugin/PluginListTable.tsx:144 -#: src/tables/plugin/PluginListTable.tsx:294 +#: src/components/plugins/PluginDrawer.tsx:89 +#: src/tables/plugin/PluginListTable.tsx:116 msgid "Version" -msgstr "" +msgstr "Sürüm" #: src/components/modals/ServerInfoModal.tsx:127 msgid "Server Version" -msgstr "" +msgstr "Sunucu Sürümü" -#: src/components/nav/Layout.tsx:73 +#: src/components/nav/Layout.tsx:80 msgid "Nothing found..." -msgstr "" +msgstr "Hiçbir şey bulunmadı..." #: src/components/nav/MainMenu.tsx:40 #: src/pages/Index/Profile/Profile.tsx:15 @@ -1237,20 +1557,28 @@ msgstr "" #~ msgstr "Profile" #: src/components/nav/MainMenu.tsx:52 +#: src/components/nav/NavigationDrawer.tsx:178 #: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:28 msgid "Settings" msgstr "Ayarlar" +#: src/components/nav/MainMenu.tsx:59 +#: src/pages/Index/Settings/UserSettings.tsx:152 +msgid "Account Settings" +msgstr "Hesap Ayarları" + #: src/components/nav/MainMenu.tsx:59 #: src/defaults/menuItems.tsx:15 -msgid "Account settings" -msgstr "Hesap ayarları" +#~ msgid "Account settings" +#~ msgstr "Account settings" #: src/components/nav/MainMenu.tsx:67 -#: src/defaults/menuItems.tsx:58 -#: src/pages/Index/Settings/SystemSettings.tsx:315 +#: src/components/nav/NavigationDrawer.tsx:141 +#: src/components/nav/SettingsHeader.tsx:49 +#: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:37 +#: src/pages/Index/Settings/SystemSettings.tsx:310 msgid "System Settings" -msgstr "" +msgstr "Sistem Ayarları" #: src/components/nav/MainMenu.tsx:68 #~ msgid "Current language {locale}" @@ -1260,515 +1588,785 @@ msgstr "" #~ msgid "Switch to pseudo language" #~ msgstr "Switch to pseudo language" -#: src/components/nav/MainMenu.tsx:77 -msgid "Change Color Mode" -msgstr "" - #: src/components/nav/MainMenu.tsx:86 -#: src/defaults/actions.tsx:71 -#: src/defaults/menuItems.tsx:63 -#: src/pages/Index/Settings/AdminCenter/Index.tsx:221 +#: src/components/nav/NavigationDrawer.tsx:148 +#: src/components/nav/SettingsHeader.tsx:50 +#: src/defaults/actions.tsx:63 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:251 msgid "Admin Center" -msgstr "" +msgstr "Yönetici Merkezi" #: src/components/nav/MainMenu.tsx:96 msgid "Logout" msgstr "Çıkış" -#: src/components/nav/NavHoverMenu.tsx:65 -#: src/defaults/actions.tsx:60 -msgid "Open Navigation" -msgstr "Gezinmeyi Aç" - #: src/components/nav/NavHoverMenu.tsx:84 -msgid "View all" -msgstr "Tümünü gör" +#~ msgid "View all" +#~ msgstr "View all" #: src/components/nav/NavHoverMenu.tsx:100 #: src/components/nav/NavHoverMenu.tsx:110 -msgid "Get started" -msgstr "Başlayın" +#~ msgid "Get started" +#~ msgstr "Get started" #: src/components/nav/NavHoverMenu.tsx:103 -msgid "Overview over high-level objects, functions and possible usecases." -msgstr "" - -#: src/components/nav/NavigationDrawer.tsx:57 -msgid "Navigation" -msgstr "Gezinme" +#~ msgid "Overview over high-level objects, functions and possible usecases." +#~ msgstr "Overview over high-level objects, functions and possible usecases." #: src/components/nav/NavigationDrawer.tsx:60 -msgid "Pages" -msgstr "Sayfalar" +#~ msgid "Pages" +#~ msgstr "Pages" -#: src/components/nav/NavigationDrawer.tsx:65 -#: src/pages/Index/Settings/AdminCenter/Index.tsx:176 -#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:41 -msgid "Plugins" -msgstr "Eklentiler" +#: src/components/nav/NavigationDrawer.tsx:77 +#: src/components/render/ModelType.tsx:31 +#: src/defaults/links.tsx:10 +#: src/pages/Index/Settings/SystemSettings.tsx:172 +#: src/pages/part/CategoryDetail.tsx:125 +#: src/pages/part/CategoryDetail.tsx:249 +#: src/pages/part/CategoryDetail.tsx:279 +#: src/pages/part/PartDetail.tsx:856 +msgid "Parts" +msgstr "Parçalar" -#: src/components/nav/NavigationDrawer.tsx:75 -#: src/defaults/actions.tsx:32 -msgid "Documentation" -msgstr "Dokümantasyon" +#: src/components/nav/NavigationDrawer.tsx:84 +#: src/components/render/Part.tsx:30 +#: src/defaults/links.tsx:11 +#: src/pages/Index/Settings/SystemSettings.tsx:205 +#: src/pages/part/PartDetail.tsx:593 +#: src/pages/stock/LocationDetail.tsx:352 +#: src/pages/stock/StockDetail.tsx:528 +#: src/tables/stock/StockItemTable.tsx:69 +msgid "Stock" +msgstr "Stok" -#: src/components/nav/NavigationDrawer.tsx:78 -msgid "About" -msgstr "Hakkında" +#: src/components/nav/NavigationDrawer.tsx:91 +#: src/defaults/links.tsx:13 +#: src/pages/build/BuildDetail.tsx:530 +#: src/pages/build/BuildIndex.tsx:36 +msgid "Manufacturing" +msgstr "" -#: src/components/nav/NotificationDrawer.tsx:92 -#: src/pages/Index/Settings/SystemSettings.tsx:109 -#: src/pages/Index/Settings/UserSettings.tsx:126 +#: src/components/nav/NavigationDrawer.tsx:98 +#: src/defaults/links.tsx:18 +#: src/pages/company/ManufacturerDetail.tsx:9 +#: src/pages/company/ManufacturerPartDetail.tsx:258 +#: src/pages/company/SupplierDetail.tsx:9 +#: src/pages/company/SupplierPartDetail.tsx:336 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:480 +#: src/pages/purchasing/PurchasingIndex.tsx:60 +msgid "Purchasing" +msgstr "Satın Alınıyor" + +#: src/components/nav/NavigationDrawer.tsx:105 +#: src/defaults/links.tsx:22 +#: src/pages/company/CustomerDetail.tsx:9 +#: src/pages/sales/ReturnOrderDetail.tsx:469 +#: src/pages/sales/SalesIndex.tsx:53 +#: src/pages/sales/SalesOrderDetail.tsx:520 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:343 +msgid "Sales" +msgstr "Satışlar" + +#: src/components/nav/NavigationDrawer.tsx:129 +#: src/components/nav/NotificationDrawer.tsx:178 +#: src/pages/Index/Settings/SystemSettings.tsx:110 +#: src/pages/Index/Settings/UserSettings.tsx:127 #: src/pages/Notifications.tsx:65 #: src/pages/Notifications.tsx:151 msgid "Notifications" msgstr "Bildirimler" -#: src/components/nav/NotificationDrawer.tsx:94 +#: src/components/nav/NavigationDrawer.tsx:135 +#: src/components/nav/SettingsHeader.tsx:48 +msgid "User Settings" +msgstr "" + +#: src/components/nav/NavigationDrawer.tsx:173 +msgid "Navigation" +msgstr "Gezinme" + +#: src/components/nav/NavigationDrawer.tsx:183 +#: src/forms/PurchaseOrderForms.tsx:689 +#: src/forms/StockForms.tsx:614 +#: src/forms/StockForms.tsx:651 +#: src/forms/StockForms.tsx:677 +#: src/forms/StockForms.tsx:705 +#: src/forms/StockForms.tsx:736 +#: src/forms/StockForms.tsx:771 +#: src/forms/StockForms.tsx:813 +#: src/forms/StockForms.tsx:851 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:413 +#: src/tables/RowActions.tsx:129 +#: src/tables/build/BuildLineTable.tsx:101 +msgid "Actions" +msgstr "Eylemler" + +#: src/components/nav/NavigationDrawer.tsx:191 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:205 +#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:44 +msgid "Plugins" +msgstr "Eklentiler" + +#: src/components/nav/NavigationDrawer.tsx:204 +#: src/defaults/actions.tsx:24 +msgid "Documentation" +msgstr "Dokümantasyon" + +#: src/components/nav/NavigationDrawer.tsx:210 +msgid "About" +msgstr "Hakkında" + +#: src/components/nav/NotificationDrawer.tsx:180 msgid "Mark all as read" -msgstr "" +msgstr "Hepsini okundu olarak imle" -#: src/components/nav/NotificationDrawer.tsx:104 +#: src/components/nav/NotificationDrawer.tsx:190 msgid "View all notifications" -msgstr "" +msgstr "Tüm bildirimleri görüntüle" -#: src/components/nav/NotificationDrawer.tsx:123 +#: src/components/nav/NotificationDrawer.tsx:210 msgid "You have no unread notifications." -msgstr "" +msgstr "Okunmamış bildiriminiz yok." -#: src/components/nav/NotificationDrawer.tsx:139 -#: src/components/nav/NotificationDrawer.tsx:145 -#: src/tables/notifications/NotificationsTable.tsx:36 -msgid "Notification" -msgstr "" - -#: src/components/nav/NotificationDrawer.tsx:168 -#: src/pages/Notifications.tsx:73 -msgid "Mark as read" -msgstr "" - -#: src/components/nav/SearchDrawer.tsx:78 +#: src/components/nav/SearchDrawer.tsx:85 msgid "results" msgstr "sonuçlar" -#: src/components/nav/SearchDrawer.tsx:370 +#: src/components/nav/SearchDrawer.tsx:380 msgid "Enter search text" msgstr "Arama metnini gir" -#: src/components/nav/SearchDrawer.tsx:397 +#: src/components/nav/SearchDrawer.tsx:391 +msgid "Refresh search results" +msgstr "" + +#: src/components/nav/SearchDrawer.tsx:402 +#: src/components/nav/SearchDrawer.tsx:409 msgid "Search Options" msgstr "Arama Seçenekleri" -#: src/components/nav/SearchDrawer.tsx:400 +#: src/components/nav/SearchDrawer.tsx:412 msgid "Regex search" msgstr "Regex arama" -#: src/components/nav/SearchDrawer.tsx:410 +#: src/components/nav/SearchDrawer.tsx:421 msgid "Whole word search" msgstr "Tam kelime arama" -#: src/components/nav/SearchDrawer.tsx:451 +#: src/components/nav/SearchDrawer.tsx:461 msgid "An error occurred during search query" msgstr "Arama sorgusu sırasında bir hata oluştu" #: src/components/nav/SearchDrawer.tsx:462 -msgid "No results" -msgstr "Sonuç yok" +#~ msgid "No results" +#~ msgstr "No results" -#: src/components/nav/SearchDrawer.tsx:465 +#: src/components/nav/SearchDrawer.tsx:472 +#: src/tables/part/PartTestTemplateTable.tsx:76 +msgid "No Results" +msgstr "Sonuç Yok" + +#: src/components/nav/SearchDrawer.tsx:475 msgid "No results available for search query" msgstr "Arama sorgusu için sonuç yok" -#: src/components/render/Instance.tsx:217 -msgid "Unknown model: {model}" +#: src/components/panels/AttachmentPanel.tsx:18 +msgid "Attachments" +msgstr "Ekler" + +#: src/components/panels/NotesPanel.tsx:24 +#: src/tables/build/BuildOrderTestTable.tsx:143 +#: src/tables/stock/StockTrackingTable.tsx:204 +msgid "Notes" +msgstr "Notlar" + +#: src/components/plugins/PluginDrawer.tsx:47 +msgid "Plugin Inactive" msgstr "" -#: src/components/render/ModelType.tsx:22 -#: src/forms/BuildForms.tsx:213 -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/forms/StockForms.tsx:499 -#: src/forms/StockForms.tsx:533 -#: src/forms/StockForms.tsx:562 -#: src/forms/StockForms.tsx:590 -#: src/forms/StockForms.tsx:621 -#: src/forms/StockForms.tsx:656 -#: src/forms/StockForms.tsx:698 -#: src/forms/StockForms.tsx:734 -#: src/pages/build/BuildDetail.tsx:95 -#: src/pages/part/PartDetail.tsx:1073 -#: src/tables/build/BuildAllocatedStockTable.tsx:82 +#: src/components/plugins/PluginDrawer.tsx:50 +msgid "Plugin is not active" +msgstr "Eklenti etkisiz" + +#: src/components/plugins/PluginDrawer.tsx:60 +msgid "Plugin Information" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:74 +#: src/pages/build/BuildDetail.tsx:116 +#: src/pages/company/CompanyDetail.tsx:89 +#: src/pages/company/ManufacturerPartDetail.tsx:89 +#: src/pages/company/ManufacturerPartDetail.tsx:116 +#: src/pages/company/SupplierPartDetail.tsx:140 +#: src/pages/part/CategoryDetail.tsx:101 +#: src/pages/part/PartDetail.tsx:178 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:136 +#: src/pages/sales/ReturnOrderDetail.tsx:107 +#: src/pages/sales/SalesOrderDetail.tsx:116 +#: src/pages/stock/LocationDetail.tsx:103 +#: src/tables/ColumnRenderers.tsx:92 +#: src/tables/bom/UsedInTable.tsx:44 +#: src/tables/build/BuildAllocatedStockTable.tsx:83 +#: src/tables/build/BuildLineTable.tsx:329 +#: src/tables/machine/MachineTypeTable.tsx:74 +#: src/tables/machine/MachineTypeTable.tsx:129 +#: src/tables/machine/MachineTypeTable.tsx:240 +#: src/tables/machine/MachineTypeTable.tsx:344 +#: src/tables/part/RelatedPartTable.tsx:66 +#: src/tables/plugin/PluginListTable.tsx:99 +#: src/tables/sales/SalesOrderAllocationTable.tsx:87 +#: src/tables/sales/SalesOrderLineItemTable.tsx:75 +#: src/tables/stock/LocationTypesTable.tsx:74 +msgid "Description" +msgstr "Açıklama" + +#: src/components/plugins/PluginDrawer.tsx:79 +msgid "Author" +msgstr "Yazar" + +#: src/components/plugins/PluginDrawer.tsx:84 +#: src/pages/part/PartSchedulingDetail.tsx:277 +#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:40 +#: src/pages/part/pricing/SaleHistoryPanel.tsx:38 +#: src/tables/ColumnRenderers.tsx:215 +#: src/tables/build/BuildOrderTestTable.tsx:151 +#: src/tables/settings/StocktakeReportTable.tsx:40 +msgid "Date" +msgstr "Tarih" + +#: src/components/plugins/PluginDrawer.tsx:94 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:398 +#: src/pages/part/PartDetail.tsx:331 +#: src/tables/bom/UsedInTable.tsx:84 +#: src/tables/company/CompanyTable.tsx:62 +#: src/tables/company/CompanyTable.tsx:96 +#: src/tables/machine/MachineListTable.tsx:333 +#: src/tables/machine/MachineListTable.tsx:605 +#: src/tables/part/ParametricPartTable.tsx:223 +#: src/tables/part/PartTable.tsx:178 +#: src/tables/part/PartVariantTable.tsx:15 +#: src/tables/plugin/PluginListTable.tsx:94 +#: src/tables/plugin/PluginListTable.tsx:401 +#: src/tables/purchasing/SupplierPartTable.tsx:100 +#: src/tables/purchasing/SupplierPartTable.tsx:190 +#: src/tables/settings/UserTable.tsx:283 +#: src/tables/stock/StockItemTable.tsx:293 +msgid "Active" +msgstr "Aktif" + +#: src/components/plugins/PluginDrawer.tsx:106 +msgid "Package Name" +msgstr "Paket Adı" + +#: src/components/plugins/PluginDrawer.tsx:112 +msgid "Installation Path" +msgstr "Kurulum Yolu" + +#: src/components/plugins/PluginDrawer.tsx:117 +#: src/tables/machine/MachineTypeTable.tsx:152 +#: src/tables/machine/MachineTypeTable.tsx:276 +#: src/tables/plugin/PluginListTable.tsx:406 +msgid "Builtin" +msgstr "Dahili" + +#: src/components/plugins/PluginDrawer.tsx:122 +msgid "Package" +msgstr "Paket" + +#: src/components/plugins/PluginDrawer.tsx:134 +#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:53 +msgid "Plugin Settings" +msgstr "Eklenti Ayarları" + +#: src/components/plugins/PluginDrawer.tsx:146 +#: src/components/render/ModelType.tsx:276 +msgid "Plugin Configuration" +msgstr "Eklenti Yapılandırma" + +#: src/components/plugins/PluginPanel.tsx:87 +#~ msgid "Error occurred while rendering plugin content" +#~ msgstr "Error occurred while rendering plugin content" + +#: src/components/plugins/PluginPanel.tsx:91 +#~ msgid "Plugin did not provide panel rendering function" +#~ msgstr "Plugin did not provide panel rendering function" + +#: src/components/plugins/PluginPanel.tsx:103 +#~ msgid "No content provided for this plugin" +#~ msgstr "No content provided for this plugin" + +#: src/components/plugins/PluginPanel.tsx:116 +#: src/components/plugins/PluginSettingsPanel.tsx:76 +#~ msgid "Error Loading Plugin" +#~ msgstr "Error Loading Plugin" + +#: src/components/plugins/PluginSettingsPanel.tsx:51 +#~ msgid "Error occurred while rendering plugin settings" +#~ msgstr "Error occurred while rendering plugin settings" + +#: src/components/plugins/PluginSettingsPanel.tsx:55 +#~ msgid "Plugin did not provide settings rendering function" +#~ msgstr "Plugin did not provide settings rendering function" + +#: src/components/plugins/PluginUIFeature.tsx:100 +msgid "Error occurred while rendering the template editor." +msgstr "" + +#: src/components/plugins/PluginUIFeature.tsx:111 +msgid "Error Loading Plugin Editor" +msgstr "" + +#: src/components/plugins/PluginUIFeature.tsx:147 +msgid "Error occurred while rendering the template preview." +msgstr "" + +#: src/components/plugins/PluginUIFeature.tsx:158 +msgid "Error Loading Plugin Preview" +msgstr "" + +#: src/components/plugins/RemoteComponent.tsx:70 +msgid "Invalid source or function name" +msgstr "" + +#: src/components/plugins/RemoteComponent.tsx:91 +msgid "Error Loading Content" +msgstr "" + +#: src/components/plugins/RemoteComponent.tsx:95 +msgid "Error occurred while loading plugin content" +msgstr "" + +#: src/components/render/Instance.tsx:224 +msgid "Unknown model: {model}" +msgstr "Bilinmeyen model: {model}" + +#: src/components/render/ModelType.tsx:30 +#: src/forms/BuildForms.tsx:269 +#: src/forms/BuildForms.tsx:337 +#: src/forms/BuildForms.tsx:385 +#: src/forms/BuildForms.tsx:515 +#: src/forms/PurchaseOrderForms.tsx:689 +#: src/forms/ReturnOrderForms.tsx:190 +#: src/forms/SalesOrderForms.tsx:248 +#: src/forms/StockForms.tsx:261 +#: src/forms/StockForms.tsx:614 +#: src/forms/StockForms.tsx:651 +#: src/forms/StockForms.tsx:677 +#: src/forms/StockForms.tsx:705 +#: src/forms/StockForms.tsx:736 +#: src/forms/StockForms.tsx:771 +#: src/forms/StockForms.tsx:813 +#: src/forms/StockForms.tsx:851 +#: src/pages/build/BuildDetail.tsx:90 +#: src/pages/part/PartDetail.tsx:1094 +#: src/tables/build/BuildAllocatedStockTable.tsx:95 +#: src/tables/build/BuildLineTable.tsx:72 #: src/tables/part/PartTable.tsx:28 -#: src/tables/part/RelatedPartTable.tsx:45 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:88 -#: src/tables/sales/SalesOrderAllocationTable.tsx:68 -#: src/tables/stock/StockTrackingTable.tsx:74 +#: src/tables/part/RelatedPartTable.tsx:47 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:130 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:100 +#: src/tables/sales/SalesOrderAllocationTable.tsx:99 +#: src/tables/stock/StockTrackingTable.tsx:78 msgid "Part" msgstr "Parça" -#: src/components/render/ModelType.tsx:23 -#: src/defaults/links.tsx:29 -#: src/defaults/menuItems.tsx:33 -#: src/pages/Index/Settings/SystemSettings.tsx:173 -#: src/pages/part/CategoryDetail.tsx:119 -#: src/pages/part/CategoryDetail.tsx:244 -#: src/pages/part/CategoryDetail.tsx:274 -#: src/pages/part/PartDetail.tsx:827 -msgid "Parts" -msgstr "Parçalar" - -#: src/components/render/ModelType.tsx:31 +#: src/components/render/ModelType.tsx:40 msgid "Part Parameter Template" -msgstr "" +msgstr "Parça Parametre Şablonu" -#: src/components/render/ModelType.tsx:32 +#: src/components/render/ModelType.tsx:41 msgid "Part Parameter Templates" -msgstr "" +msgstr "Parça Parametre Şablonları" -#: src/components/render/ModelType.tsx:38 +#: src/components/render/ModelType.tsx:48 msgid "Part Test Template" -msgstr "" +msgstr "Parça Test Şablonu" -#: src/components/render/ModelType.tsx:39 +#: src/components/render/ModelType.tsx:49 msgid "Part Test Templates" -msgstr "" +msgstr "Parça Test Şablonları" -#: src/components/render/ModelType.tsx:45 -#: src/pages/company/SupplierPartDetail.tsx:203 -#: src/pages/company/SupplierPartDetail.tsx:375 -#: src/pages/stock/StockDetail.tsx:173 -#: src/tables/build/BuildAllocatedStockTable.tsx:131 +#: src/components/render/ModelType.tsx:56 +#: src/pages/company/SupplierPartDetail.tsx:364 +#: src/pages/stock/StockDetail.tsx:194 +#: src/tables/build/BuildAllocatedStockTable.tsx:152 #: src/tables/part/PartPurchaseOrdersTable.tsx:49 -#: src/tables/purchasing/SupplierPartTable.tsx:68 +#: src/tables/purchasing/SupplierPartTable.tsx:70 +#: src/tables/stock/StockItemTable.tsx:229 msgid "Supplier Part" -msgstr "" +msgstr "Sağlayıcı Parçası" -#: src/components/render/ModelType.tsx:46 +#: src/components/render/ModelType.tsx:57 msgid "Supplier Parts" msgstr "Tedarikçi Parçaları" -#: src/components/render/ModelType.tsx:54 -#: src/pages/company/ManufacturerPartDetail.tsx:132 +#: src/components/render/ModelType.tsx:66 #: src/tables/part/PartPurchaseOrdersTable.tsx:55 +#: src/tables/stock/StockItemTable.tsx:234 msgid "Manufacturer Part" -msgstr "" +msgstr "Üretici Parçası" -#: src/components/render/ModelType.tsx:55 +#: src/components/render/ModelType.tsx:67 msgid "Manufacturer Parts" msgstr "Üretici Parçaları" -#: src/components/render/ModelType.tsx:63 -#: src/pages/part/CategoryDetail.tsx:305 +#: src/components/render/ModelType.tsx:76 +#: src/pages/part/CategoryDetail.tsx:310 msgid "Part Category" -msgstr "" +msgstr "Parça Sınıfı" -#: src/components/render/ModelType.tsx:64 -#: src/pages/part/CategoryDetail.tsx:258 -#: src/pages/part/CategoryDetail.tsx:296 -#: src/pages/part/PartDetail.tsx:1063 +#: src/components/render/ModelType.tsx:77 +#: src/pages/part/CategoryDetail.tsx:263 +#: src/pages/part/CategoryDetail.tsx:301 +#: src/pages/part/PartDetail.tsx:1084 msgid "Part Categories" msgstr "Parça Kategorileri" -#: src/components/render/ModelType.tsx:72 -#: src/pages/stock/StockDetail.tsx:624 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:94 -#: src/tables/stock/StockTrackingTable.tsx:45 +#: src/components/render/ModelType.tsx:86 +#: src/forms/BuildForms.tsx:337 +#: src/forms/BuildForms.tsx:385 +#: src/forms/BuildForms.tsx:515 +#: src/forms/SalesOrderForms.tsx:248 +#: src/pages/stock/StockDetail.tsx:839 +#: src/tables/stock/StockTrackingTable.tsx:49 msgid "Stock Item" -msgstr "" +msgstr "Stok Ögesi" -#: src/components/render/ModelType.tsx:73 +#: src/components/render/ModelType.tsx:87 #: src/pages/company/CompanyDetail.tsx:203 -#: src/pages/stock/LocationDetail.tsx:128 -#: src/pages/stock/LocationDetail.tsx:181 -#: src/pages/stock/LocationDetail.tsx:395 +#: src/pages/part/PartStocktakeDetail.tsx:113 +#: src/pages/stock/LocationDetail.tsx:122 +#: src/pages/stock/LocationDetail.tsx:175 +#: src/pages/stock/LocationDetail.tsx:380 msgid "Stock Items" msgstr "Stok Kalemleri" -#: src/components/render/ModelType.tsx:81 +#: src/components/render/ModelType.tsx:96 msgid "Stock Location" -msgstr "" +msgstr "Stok Konumu" -#: src/components/render/ModelType.tsx:82 -#: src/pages/stock/LocationDetail.tsx:195 -#: src/pages/stock/LocationDetail.tsx:387 -#: src/pages/stock/StockDetail.tsx:616 +#: src/components/render/ModelType.tsx:97 +#: src/pages/stock/LocationDetail.tsx:189 +#: src/pages/stock/LocationDetail.tsx:372 +#: src/pages/stock/StockDetail.tsx:831 msgid "Stock Locations" msgstr "Stok Konumları" -#: src/components/render/ModelType.tsx:90 +#: src/components/render/ModelType.tsx:106 msgid "Stock Location Type" -msgstr "" +msgstr "Stok Konum Türü" -#: src/components/render/ModelType.tsx:91 +#: src/components/render/ModelType.tsx:107 msgid "Stock Location Types" -msgstr "" +msgstr "Stok Konum Türleri" -#: src/components/render/ModelType.tsx:95 +#: src/components/render/ModelType.tsx:112 +#: src/pages/part/PartDetail.tsx:712 msgid "Stock History" -msgstr "" +msgstr "Stok Geçmişi" -#: src/components/render/ModelType.tsx:96 +#: src/components/render/ModelType.tsx:113 msgid "Stock Histories" -msgstr "" - -#: src/components/render/ModelType.tsx:100 -#: src/defaults/links.tsx:31 -#: src/defaults/menuItems.tsx:43 -msgid "Build" -msgstr "" - -#: src/components/render/ModelType.tsx:101 -msgid "Builds" -msgstr "" - -#: src/components/render/ModelType.tsx:109 -msgid "Build Line" -msgstr "" - -#: src/components/render/ModelType.tsx:110 -msgid "Build Lines" -msgstr "" - -#: src/components/render/ModelType.tsx:117 -msgid "Build Item" -msgstr "" +msgstr "Stok Geçmişleri" #: src/components/render/ModelType.tsx:118 +msgid "Build" +msgstr "Yap" + +#: src/components/render/ModelType.tsx:119 +msgid "Builds" +msgstr "Yapılar" + +#: src/components/render/ModelType.tsx:128 +msgid "Build Line" +msgstr "Yapı Satırı" + +#: src/components/render/ModelType.tsx:129 +msgid "Build Lines" +msgstr "Yapı Satırları" + +#: src/components/render/ModelType.tsx:137 +msgid "Build Item" +msgstr "Yapı Ögesi" + +#: src/components/render/ModelType.tsx:138 msgid "Build Items" -msgstr "" +msgstr "Yapı Ögeleri" -#: src/components/render/ModelType.tsx:122 -#: src/pages/company/CompanyDetail.tsx:339 +#: src/components/render/ModelType.tsx:143 +#: src/pages/company/CompanyDetail.tsx:321 msgid "Company" -msgstr "" +msgstr "Şirket" -#: src/components/render/ModelType.tsx:123 +#: src/components/render/ModelType.tsx:144 msgid "Companies" msgstr "Şirketler" -#: src/components/render/ModelType.tsx:131 +#: src/components/render/ModelType.tsx:153 +#: src/pages/build/BuildDetail.tsx:195 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:204 +#: src/pages/sales/ReturnOrderDetail.tsx:174 +#: src/pages/sales/SalesOrderDetail.tsx:186 #: src/tables/TableHoverCard.tsx:81 -#: src/tables/build/BuildOrderTable.tsx:140 -#: src/tables/purchasing/PurchaseOrderTable.tsx:64 -#: src/tables/sales/ReturnOrderTable.tsx:55 -#: src/tables/sales/SalesOrderTable.tsx:62 +#: src/tables/build/BuildOrderTable.tsx:135 +#: src/tables/purchasing/PurchaseOrderTable.tsx:69 +#: src/tables/sales/ReturnOrderTable.tsx:67 +#: src/tables/sales/SalesOrderTable.tsx:67 msgid "Project Code" msgstr "Proje Kodu" -#: src/components/render/ModelType.tsx:132 -#: src/pages/Index/Settings/AdminCenter/Index.tsx:128 +#: src/components/render/ModelType.tsx:154 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:145 msgid "Project Codes" -msgstr "" +msgstr "Proje Kodları" -#: src/components/render/ModelType.tsx:138 +#: src/components/render/ModelType.tsx:161 #: src/pages/part/pricing/PurchaseHistoryPanel.tsx:32 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:480 -#: src/tables/part/PartPurchaseOrdersTable.tsx:32 -#: src/tables/stock/StockTrackingTable.tsx:107 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:477 +#: src/pages/stock/StockDetail.tsx:253 +#: src/tables/part/PartPurchaseOrdersTable.tsx:31 +#: src/tables/stock/StockItemTable.tsx:222 +#: src/tables/stock/StockTrackingTable.tsx:111 msgid "Purchase Order" -msgstr "" +msgstr "Satın Alma Siparişi" -#: src/components/render/ModelType.tsx:139 -#: src/pages/Index/Settings/SystemSettings.tsx:255 +#: src/components/render/ModelType.tsx:162 +#: src/pages/Index/Settings/SystemSettings.tsx:249 #: src/pages/company/CompanyDetail.tsx:196 -#: src/pages/company/SupplierPartDetail.tsx:237 -#: src/pages/part/PartDetail.tsx:662 +#: src/pages/company/SupplierPartDetail.tsx:249 +#: src/pages/part/PartDetail.tsx:683 #: src/pages/purchasing/PurchasingIndex.tsx:25 msgid "Purchase Orders" msgstr "Satın Alma Emirleri" -#: src/components/render/ModelType.tsx:147 +#: src/components/render/ModelType.tsx:171 msgid "Purchase Order Line" -msgstr "" +msgstr "Satın Alma Sipariş Satırı" -#: src/components/render/ModelType.tsx:148 +#: src/components/render/ModelType.tsx:172 msgid "Purchase Order Lines" -msgstr "" +msgstr "Satın Alma Sipariş Satırları" -#: src/components/render/ModelType.tsx:152 -#: src/pages/build/BuildDetail.tsx:153 -#: src/pages/sales/SalesOrderDetail.tsx:520 -#: src/pages/stock/StockDetail.tsx:221 -#: src/tables/sales/SalesOrderAllocationTable.tsx:50 -#: src/tables/stock/StockTrackingTable.tsx:118 +#: src/components/render/ModelType.tsx:177 +#: src/pages/build/BuildDetail.tsx:148 +#: src/pages/part/pricing/SaleHistoryPanel.tsx:24 +#: src/pages/sales/SalesOrderDetail.tsx:515 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:92 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:341 +#: src/pages/stock/StockDetail.tsx:262 +#: src/tables/sales/SalesOrderAllocationTable.tsx:80 +#: src/tables/stock/StockTrackingTable.tsx:122 msgid "Sales Order" -msgstr "" +msgstr "Satış Siparişi" -#: src/components/render/ModelType.tsx:153 -#: src/pages/Index/Settings/SystemSettings.tsx:270 +#: src/components/render/ModelType.tsx:178 +#: src/pages/Index/Settings/SystemSettings.tsx:264 #: src/pages/company/CompanyDetail.tsx:216 -#: src/pages/part/PartDetail.tsx:669 +#: src/pages/part/PartDetail.tsx:695 #: src/pages/sales/SalesIndex.tsx:26 msgid "Sales Orders" msgstr "Satış Emirleri" -#: src/components/render/ModelType.tsx:161 +#: src/components/render/ModelType.tsx:187 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:340 msgid "Sales Order Shipment" -msgstr "" +msgstr "Satış Siparişi Gönderisi" -#: src/components/render/ModelType.tsx:162 +#: src/components/render/ModelType.tsx:188 msgid "Sales Order Shipments" -msgstr "" +msgstr "Satış Siparişi Gönderileri" -#: src/components/render/ModelType.tsx:168 -#: src/pages/sales/ReturnOrderDetail.tsx:469 -#: src/tables/stock/StockTrackingTable.tsx:129 +#: src/components/render/ModelType.tsx:195 +#: src/pages/sales/ReturnOrderDetail.tsx:464 +#: src/tables/stock/StockTrackingTable.tsx:133 msgid "Return Order" -msgstr "" +msgstr "İade Emri" -#: src/components/render/ModelType.tsx:169 -#: src/pages/Index/Settings/SystemSettings.tsx:286 +#: src/components/render/ModelType.tsx:196 +#: src/pages/Index/Settings/SystemSettings.tsx:280 #: src/pages/company/CompanyDetail.tsx:223 +#: src/pages/part/PartDetail.tsx:702 #: src/pages/sales/SalesIndex.tsx:32 msgid "Return Orders" msgstr "İade Emirleri" -#: src/components/render/ModelType.tsx:177 +#: src/components/render/ModelType.tsx:205 msgid "Return Order Line Item" -msgstr "" +msgstr "İade Emri Satır Ögesi" -#: src/components/render/ModelType.tsx:178 +#: src/components/render/ModelType.tsx:206 msgid "Return Order Line Items" -msgstr "" +msgstr "İade Emri Satır Ögeleri" -#: src/components/render/ModelType.tsx:182 -#: src/tables/company/AddressTable.tsx:47 +#: src/components/render/ModelType.tsx:211 +#: src/tables/company/AddressTable.tsx:48 msgid "Address" -msgstr "" +msgstr "Adres" -#: src/components/render/ModelType.tsx:183 -#: src/pages/company/CompanyDetail.tsx:253 +#: src/components/render/ModelType.tsx:212 +#: src/pages/company/CompanyDetail.tsx:255 msgid "Addresses" -msgstr "" +msgstr "Adresler" -#: src/components/render/ModelType.tsx:189 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:195 -#: src/pages/sales/ReturnOrderDetail.tsx:174 -#: src/pages/sales/SalesOrderDetail.tsx:183 +#: src/components/render/ModelType.tsx:219 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:196 +#: src/pages/sales/ReturnOrderDetail.tsx:166 +#: src/pages/sales/SalesOrderDetail.tsx:178 msgid "Contact" -msgstr "" +msgstr "Bağlantı" -#: src/components/render/ModelType.tsx:190 -#: src/pages/company/CompanyDetail.tsx:247 +#: src/components/render/ModelType.tsx:220 +#: src/pages/company/CompanyDetail.tsx:249 msgid "Contacts" -msgstr "" +msgstr "Bağlantılar" -#: src/components/render/ModelType.tsx:196 +#: src/components/render/ModelType.tsx:227 msgid "Owner" -msgstr "" +msgstr "Sahip" -#: src/components/render/ModelType.tsx:197 +#: src/components/render/ModelType.tsx:228 msgid "Owners" -msgstr "" +msgstr "Sahipler" -#: src/components/render/ModelType.tsx:203 -#: src/tables/settings/ImportSessionTable.tsx:121 -#: src/tables/stock/StockItemTestResultTable.tsx:198 -#: src/tables/stock/StockTrackingTable.tsx:195 +#: src/components/render/ModelType.tsx:234 +#~ msgid "Purchase Order Line Item" +#~ msgstr "Purchase Order Line Item" + +#: src/components/render/ModelType.tsx:235 +#: src/tables/settings/BarcodeScanHistoryTable.tsx:80 +#: src/tables/settings/BarcodeScanHistoryTable.tsx:211 +#: src/tables/settings/ImportSessionTable.tsx:120 +#: src/tables/settings/StocktakeReportTable.tsx:44 +#: src/tables/stock/StockItemTestResultTable.tsx:204 +#: src/tables/stock/StockTrackingTable.tsx:181 +#: src/tables/stock/StockTrackingTable.tsx:210 msgid "User" msgstr "Kullanıcı" -#: src/components/render/ModelType.tsx:204 -#: src/pages/Index/Settings/AdminCenter/Index.tsx:98 +#: src/components/render/ModelType.tsx:236 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:109 #: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:13 msgid "Users" -msgstr "" +msgstr "Kullanıcılar" -#: src/components/render/ModelType.tsx:210 +#: src/components/render/ModelType.tsx:243 msgid "Group" -msgstr "" +msgstr "Grup" -#: src/components/render/ModelType.tsx:211 +#: src/components/render/ModelType.tsx:244 #: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:20 -#: src/tables/settings/UserTable.tsx:138 -#: src/tables/settings/UserTable.tsx:201 +#: src/tables/settings/UserTable.tsx:137 +#: src/tables/settings/UserTable.tsx:200 msgid "Groups" -msgstr "" +msgstr "Gruplar" -#: src/components/render/ModelType.tsx:218 +#: src/components/render/ModelType.tsx:252 msgid "Import Session" -msgstr "" +msgstr "Oturumu İçe Aktar" -#: src/components/render/ModelType.tsx:219 +#: src/components/render/ModelType.tsx:253 msgid "Import Sessions" -msgstr "" +msgstr "Oturumları İçe Aktar" -#: src/components/render/ModelType.tsx:225 +#: src/components/render/ModelType.tsx:260 msgid "Label Template" -msgstr "" +msgstr "Etiket Şablonu" -#: src/components/render/ModelType.tsx:226 -#: src/pages/Index/Settings/AdminCenter/Index.tsx:158 +#: src/components/render/ModelType.tsx:261 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:187 msgid "Label Templates" -msgstr "" +msgstr "Etiket Şablonları" -#: src/components/render/ModelType.tsx:232 +#: src/components/render/ModelType.tsx:264 +#~ msgid "Unknown Model" +#~ msgstr "Unknown Model" + +#: src/components/render/ModelType.tsx:268 msgid "Report Template" -msgstr "" +msgstr "Rapor Şablonu" -#: src/components/render/ModelType.tsx:233 -#: src/pages/Index/Settings/AdminCenter/Index.tsx:164 +#: src/components/render/ModelType.tsx:269 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:193 msgid "Report Templates" -msgstr "" +msgstr "Rapor Şablonları" -#: src/components/render/ModelType.tsx:239 -msgid "Plugin Configuration" -msgstr "" - -#: src/components/render/ModelType.tsx:240 +#: src/components/render/ModelType.tsx:277 msgid "Plugin Configurations" -msgstr "" +msgstr "Eklenti Yapılandırmaları" + +#: src/components/render/ModelType.tsx:284 +msgid "Content Type" +msgstr "İçerik Türü" + +#: src/components/render/ModelType.tsx:285 +msgid "Content Types" +msgstr "İçerik Türleri" + +#: src/components/render/ModelType.tsx:291 +#: src/tables/machine/MachineListTable.tsx:351 +#: src/tables/machine/MachineTypeTable.tsx:282 +msgid "Errors" +msgstr "Hatalar" + +#: src/components/render/ModelType.tsx:307 +#~ msgid "Purchase Order Line Items" +#~ msgstr "Purchase Order Line Items" + +#: src/components/render/ModelType.tsx:337 +#~ msgid "Unknown Models" +#~ msgstr "Unknown Models" #: src/components/render/Order.tsx:121 +#: src/tables/sales/SalesOrderAllocationTable.tsx:136 msgid "Shipment" -msgstr "" +msgstr "Gönderi" #: src/components/render/Part.tsx:25 #: src/components/render/Plugin.tsx:17 -#: src/pages/company/CompanyDetail.tsx:325 -#: src/pages/company/SupplierPartDetail.tsx:360 -#: src/pages/part/PartDetail.tsx:879 +#: src/pages/company/CompanyDetail.tsx:307 +#: src/pages/company/SupplierPartDetail.tsx:349 +#: src/pages/part/PartDetail.tsx:911 msgid "Inactive" -msgstr "" +msgstr "İnaktif" #: src/components/render/Part.tsx:28 #: src/tables/bom/BomTable.tsx:204 #: src/tables/part/PartTable.tsx:134 msgid "No stock" -msgstr "" +msgstr "Stok yok" -#: src/components/render/Part.tsx:30 -#: src/defaults/links.tsx:30 -#: src/defaults/menuItems.tsx:38 -#: src/pages/Index/Settings/SystemSettings.tsx:206 -#: src/pages/part/PartDetail.tsx:543 -#: src/pages/stock/LocationDetail.tsx:367 -#: src/pages/stock/StockDetail.tsx:411 -#: src/tables/stock/StockItemTable.tsx:68 -msgid "Stock" -msgstr "Stok" - -#: src/components/render/Stock.tsx:60 -#: src/pages/stock/StockDetail.tsx:150 -#: src/pages/stock/StockDetail.tsx:581 -#: src/tables/build/BuildAllocatedStockTable.tsx:102 -#: src/tables/sales/SalesOrderAllocationTable.tsx:80 +#: src/components/render/Stock.tsx:61 +#: src/forms/ReturnOrderForms.tsx:190 +#: src/pages/stock/StockDetail.tsx:166 +#: src/pages/stock/StockDetail.tsx:771 +#: src/tables/build/BuildAllocatedStockTable.tsx:123 +#: src/tables/build/BuildOutputTable.tsx:81 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:114 +#: src/tables/sales/SalesOrderAllocationTable.tsx:106 msgid "Serial Number" -msgstr "" +msgstr "Seri Numarası" -#: src/components/render/Stock.tsx:62 -#: src/forms/BuildForms.tsx:218 -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/pages/part/pricing/BomPricingPanel.tsx:109 +#: src/components/render/Stock.tsx:63 +#: src/forms/BuildForms.tsx:206 +#: src/forms/BuildForms.tsx:515 +#: src/forms/PurchaseOrderForms.tsx:689 +#: src/forms/SalesOrderForms.tsx:248 +#: src/pages/part/PartSchedulingDetail.tsx:80 +#: src/pages/part/PartStocktakeDetail.tsx:60 +#: src/pages/part/PartStocktakeDetail.tsx:234 +#: src/pages/part/PartStocktakeDetail.tsx:252 +#: src/pages/part/pricing/BomPricingPanel.tsx:148 #: src/pages/part/pricing/PriceBreakPanel.tsx:89 -#: src/pages/part/pricing/PriceBreakPanel.tsx:171 -#: src/pages/stock/StockDetail.tsx:145 -#: src/pages/stock/StockDetail.tsx:587 -#: src/tables/build/BuildOrderTestTable.tsx:197 -#: src/tables/part/PartPurchaseOrdersTable.tsx:92 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:143 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:171 +#: src/pages/part/pricing/PriceBreakPanel.tsx:172 +#: src/pages/stock/StockDetail.tsx:161 +#: src/pages/stock/StockDetail.tsx:777 +#: src/tables/build/BuildLineTable.tsx:79 +#: src/tables/build/BuildOrderTestTable.tsx:198 +#: src/tables/part/PartPurchaseOrdersTable.tsx:93 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:146 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:177 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:77 -#: src/tables/stock/StockTrackingTable.tsx:59 +#: src/tables/stock/StockTrackingTable.tsx:63 msgid "Quantity" msgstr "Miktar" @@ -1779,24 +2377,24 @@ msgstr "Miktar" #: src/components/settings/SettingList.tsx:67 msgid "Edit Setting" -msgstr "" +msgstr "Ayarı Düzenle" #: src/components/settings/SettingList.tsx:78 #: src/components/settings/SettingList.tsx:108 msgid "Setting {0} updated successfully" -msgstr "" +msgstr "{0} ayarı başarıyla güncellendi" #: src/components/settings/SettingList.tsx:107 msgid "Setting updated" -msgstr "" +msgstr "Ayar güncellendi" #: src/components/settings/SettingList.tsx:117 msgid "Error editing setting" -msgstr "" +msgstr "Ayarı düzenlemede hata" #: src/components/settings/SettingList.tsx:162 msgid "No settings specified" -msgstr "" +msgstr "Ayar belirtilmemiş" #: src/components/tables/FilterGroup.tsx:29 #~ msgid "Add table filter" @@ -1842,10 +2440,6 @@ msgstr "" #~ msgid "Required Part" #~ msgstr "Required Part" -#: src/components/tables/build/BuildLineTable.tsx:152 -#~ msgid "Required Quantity" -#~ msgstr "Required Quantity" - #: src/components/tables/build/BuildOrderTable.tsx:52 #~ msgid "Progress" #~ msgstr "Progress" @@ -2126,14 +2720,6 @@ msgstr "" #~ msgid "user deleted" #~ msgstr "user deleted" -#: src/components/tables/settings/UserTable.tsx:168 -#~ msgid "First Name" -#~ msgstr "First Name" - -#: src/components/tables/settings/UserTable.tsx:173 -#~ msgid "Last Name" -#~ msgstr "Last Name" - #: src/components/tables/stock/StockItemTable.tsx:247 #~ msgid "Test Filter" #~ msgstr "Test Filter" @@ -2146,36 +2732,21 @@ msgstr "" #~ msgid "Stock location updated" #~ msgstr "Stock location updated" -#: src/components/widgets/DisplayWidget.tsx:11 -#: src/pages/Index/Settings/AccountSettings/DisplaySettingsPanel.tsx:17 -msgid "Display Settings" -msgstr "Görüntü Ayarları" - -#: src/components/widgets/DisplayWidget.tsx:15 -#: src/pages/Index/Settings/AccountSettings/DisplaySettingsPanel.tsx:23 -msgid "Color Mode" -msgstr "Renk Modu" - -#: src/components/widgets/DisplayWidget.tsx:21 -#: src/pages/Index/Settings/AccountSettings/DisplaySettingsPanel.tsx:33 -msgid "Language" -msgstr "Dil" - #: src/components/widgets/FeedbackWidget.tsx:19 -msgid "Something is new: Platform UI" -msgstr "" +#~ msgid "Something is new: Platform UI" +#~ msgstr "Something is new: Platform UI" #: src/components/widgets/FeedbackWidget.tsx:21 -msgid "We are building a new UI with a modern stack. What you currently see is not fixed and will be redesigned but demonstrates the UI/UX possibilities we will have going forward." -msgstr "" +#~ msgid "We are building a new UI with a modern stack. What you currently see is not fixed and will be redesigned but demonstrates the UI/UX possibilities we will have going forward." +#~ msgstr "We are building a new UI with a modern stack. What you currently see is not fixed and will be redesigned but demonstrates the UI/UX possibilities we will have going forward." #: src/components/widgets/FeedbackWidget.tsx:32 -msgid "Provide Feedback" -msgstr "Geri Bildirim Gönder" +#~ msgid "Provide Feedback" +#~ msgstr "Provide Feedback" #: src/components/widgets/GetStartedWidget.tsx:11 -msgid "Getting started" -msgstr "Başlarken" +#~ msgid "Getting started" +#~ msgstr "Getting started" #: src/components/widgets/MarkdownEditor.tsx:108 #~ msgid "Failed to upload image" @@ -2186,301 +2757,271 @@ msgstr "Başlarken" #~ msgstr "Notes saved" #: src/components/widgets/WidgetLayout.tsx:166 -msgid "Layout" -msgstr "Yerleşim" +#~ msgid "Layout" +#~ msgstr "Layout" #: src/components/widgets/WidgetLayout.tsx:172 -msgid "Reset Layout" -msgstr "Yerleşimi Sıfırla" +#~ msgid "Reset Layout" +#~ msgstr "Reset Layout" #: src/components/widgets/WidgetLayout.tsx:185 -msgid "Stop Edit" -msgstr "Düzenlemeyi Durdur" - -#: src/components/widgets/WidgetLayout.tsx:185 -msgid "Edit Layout" -msgstr "Yerleşimi Düzenle" +#~ msgid "Stop Edit" +#~ msgstr "Stop Edit" #: src/components/widgets/WidgetLayout.tsx:191 -msgid "Appearance" -msgstr "Görünüm" +#~ msgid "Appearance" +#~ msgstr "Appearance" #: src/components/widgets/WidgetLayout.tsx:203 -msgid "Show Boxes" -msgstr "" +#~ msgid "Show Boxes" +#~ msgstr "Show Boxes" #: src/contexts/LanguageContext.tsx:20 msgid "Arabic" -msgstr "" +msgstr "Arapça" #: src/contexts/LanguageContext.tsx:21 msgid "Bulgarian" -msgstr "" +msgstr "Bulgarca" #: src/contexts/LanguageContext.tsx:22 msgid "Czech" -msgstr "" +msgstr "Çekçe" #: src/contexts/LanguageContext.tsx:23 msgid "Danish" -msgstr "" +msgstr "Danca" #: src/contexts/LanguageContext.tsx:24 msgid "German" -msgstr "" +msgstr "Almanca" #: src/contexts/LanguageContext.tsx:25 msgid "Greek" -msgstr "" +msgstr "Yunanca" #: src/contexts/LanguageContext.tsx:26 msgid "English" -msgstr "" +msgstr "İngilizce" #: src/contexts/LanguageContext.tsx:27 msgid "Spanish" -msgstr "" +msgstr "İspanyolca" #: src/contexts/LanguageContext.tsx:28 msgid "Spanish (Mexican)" -msgstr "" +msgstr "İspanyolca (Meksika)" #: src/contexts/LanguageContext.tsx:29 msgid "Estonian" -msgstr "" +msgstr "Estonca" #: src/contexts/LanguageContext.tsx:30 msgid "Farsi / Persian" -msgstr "" +msgstr "Farsça" #: src/contexts/LanguageContext.tsx:31 msgid "Finnish" -msgstr "" +msgstr "Fince" #: src/contexts/LanguageContext.tsx:32 msgid "French" -msgstr "" +msgstr "Fransızca" #: src/contexts/LanguageContext.tsx:33 msgid "Hebrew" -msgstr "" +msgstr "İbranice" #: src/contexts/LanguageContext.tsx:34 msgid "Hindi" -msgstr "" +msgstr "Hintçe" #: src/contexts/LanguageContext.tsx:35 msgid "Hungarian" -msgstr "" +msgstr "Macarca" #: src/contexts/LanguageContext.tsx:36 msgid "Italian" -msgstr "" +msgstr "İtalyanca" #: src/contexts/LanguageContext.tsx:37 msgid "Japanese" -msgstr "" +msgstr "Japonca" #: src/contexts/LanguageContext.tsx:38 msgid "Korean" -msgstr "" +msgstr "Korece" #: src/contexts/LanguageContext.tsx:39 -msgid "Latvian" +msgid "Lithuanian" msgstr "" #: src/contexts/LanguageContext.tsx:40 -msgid "Dutch" -msgstr "" +msgid "Latvian" +msgstr "Letonca" #: src/contexts/LanguageContext.tsx:41 -msgid "Norwegian" -msgstr "" +msgid "Dutch" +msgstr "Flemenkçe" #: src/contexts/LanguageContext.tsx:42 -msgid "Polish" -msgstr "" +msgid "Norwegian" +msgstr "Norveççe" #: src/contexts/LanguageContext.tsx:43 -msgid "Portuguese" -msgstr "" +msgid "Polish" +msgstr "Lehçe" #: src/contexts/LanguageContext.tsx:44 -msgid "Portuguese (Brazilian)" -msgstr "" +msgid "Portuguese" +msgstr "Portekizce" #: src/contexts/LanguageContext.tsx:45 -msgid "Romanian" -msgstr "" +msgid "Portuguese (Brazilian)" +msgstr "Portekizce (Brezilya)" #: src/contexts/LanguageContext.tsx:46 -msgid "Russian" -msgstr "" +msgid "Romanian" +msgstr "Rumence" #: src/contexts/LanguageContext.tsx:47 -msgid "Slovak" -msgstr "" +msgid "Russian" +msgstr "Rusça" #: src/contexts/LanguageContext.tsx:48 -msgid "Slovenian" -msgstr "" +msgid "Slovak" +msgstr "Slovakça" #: src/contexts/LanguageContext.tsx:49 -msgid "Swedish" -msgstr "" +msgid "Slovenian" +msgstr "Slovence" #: src/contexts/LanguageContext.tsx:50 -msgid "Thai" -msgstr "" +msgid "Swedish" +msgstr "İsveççe" #: src/contexts/LanguageContext.tsx:51 -msgid "Turkish" -msgstr "" +msgid "Thai" +msgstr "Tayca" #: src/contexts/LanguageContext.tsx:52 -msgid "Ukrainian" -msgstr "" +msgid "Turkish" +msgstr "Türkçe" #: src/contexts/LanguageContext.tsx:53 -msgid "Vietnamese" -msgstr "" +msgid "Ukrainian" +msgstr "Ukraynaca" #: src/contexts/LanguageContext.tsx:54 -msgid "Chinese (Simplified)" -msgstr "" +msgid "Vietnamese" +msgstr "Vietnamca" #: src/contexts/LanguageContext.tsx:55 +msgid "Chinese (Simplified)" +msgstr "Çince (Basitleştirilmiş)" + +#: src/contexts/LanguageContext.tsx:56 msgid "Chinese (Traditional)" -msgstr "" +msgstr "Çince (Geleneksel)" + +#: src/defaults/actions.tsx:18 +msgid "Go to the InvenTree dashboard" +msgstr "InvenTree Gösterge Paneline Git" #: src/defaults/actions.tsx:18 #: src/defaults/links.tsx:27 #: src/defaults/menuItems.tsx:9 -msgid "Home" -msgstr "Ana Sayfa" +#~ msgid "Home" +#~ msgstr "Home" #: src/defaults/actions.tsx:25 -#: src/defaults/links.tsx:28 -#: src/defaults/menuItems.tsx:28 -#: src/pages/Index/Dashboard.tsx:19 -#: src/pages/Index/Settings/UserSettings.tsx:46 -msgid "Dashboard" -msgstr "Panel" - -#: src/defaults/actions.tsx:26 -msgid "Go to the InvenTree dashboard" -msgstr "" - -#: src/defaults/actions.tsx:33 msgid "Visit the documentation to learn more about InvenTree" -msgstr "" +msgstr "InvenTree hakkında daha fazla öğrenmek için belgelendirmeyi ziyaret edin" -#: src/defaults/actions.tsx:39 -#: src/defaults/links.tsx:98 -#: src/defaults/links.tsx:128 +#: src/defaults/actions.tsx:31 +#: src/defaults/links.tsx:92 +#: src/defaults/links.tsx:124 msgid "About InvenTree" -msgstr "" +msgstr "InvenTree Hakkında" -#: src/defaults/actions.tsx:40 -#: src/defaults/links.tsx:129 +#: src/defaults/actions.tsx:32 msgid "About the InvenTree org" msgstr "InvenTree org hakkında" -#: src/defaults/actions.tsx:46 +#: src/defaults/actions.tsx:38 msgid "Server Information" -msgstr "" +msgstr "Sunucu Bilgisi" -#: src/defaults/actions.tsx:47 -#: src/defaults/links.tsx:123 +#: src/defaults/actions.tsx:39 +#: src/defaults/links.tsx:118 msgid "About this Inventree instance" -msgstr "" +msgstr "Bu InvenTree örneği hakkında" + +#: src/defaults/actions.tsx:45 +#: src/defaults/links.tsx:105 +#: src/defaults/links.tsx:131 +msgid "License Information" +msgstr "Lisans Bilgisi" + +#: src/defaults/actions.tsx:46 +msgid "Licenses for dependencies of the service" +msgstr "Servisin bağımlılıkları için lisanslar" + +#: src/defaults/actions.tsx:52 +msgid "Open Navigation" +msgstr "Gezinmeyi Aç" #: src/defaults/actions.tsx:53 -#: src/defaults/links.tsx:111 -msgid "License Information" -msgstr "" - -#: src/defaults/actions.tsx:54 -#: src/defaults/links.tsx:135 -msgid "Licenses for dependencies of the service" -msgstr "" - -#: src/defaults/actions.tsx:61 msgid "Open the main navigation menu" -msgstr "" +msgstr "Ana gezinme menüsünü aç" -#: src/defaults/actions.tsx:72 +#: src/defaults/actions.tsx:64 msgid "Go to the Admin Center" -msgstr "" - -#: src/defaults/dashboardItems.tsx:15 -msgid "Subscribed Parts" -msgstr "" - -#: src/defaults/dashboardItems.tsx:22 -msgid "Subscribed Categories" -msgstr "" +msgstr "Yönetim Merkezine Git" #: src/defaults/dashboardItems.tsx:29 -msgid "Latest Parts" -msgstr "Son Parçalar" +#~ msgid "Latest Parts" +#~ msgstr "Latest Parts" #: src/defaults/dashboardItems.tsx:36 -msgid "BOM Waiting Validation" -msgstr "" +#~ msgid "BOM Waiting Validation" +#~ msgstr "BOM Waiting Validation" #: src/defaults/dashboardItems.tsx:43 -msgid "Recently Updated" -msgstr "Son Güncellenenler" - -#: src/defaults/dashboardItems.tsx:50 -#: src/tables/part/PartTable.tsx:238 -msgid "Low Stock" -msgstr "Düşük Stok" +#~ msgid "Recently Updated" +#~ msgstr "Recently Updated" #: src/defaults/dashboardItems.tsx:57 -msgid "Depleted Stock" -msgstr "Tükenmiş Stok" +#~ msgid "Depleted Stock" +#~ msgstr "Depleted Stock" #: src/defaults/dashboardItems.tsx:64 -msgid "Required for Build Orders" -msgstr "" +#~ msgid "Required for Build Orders" +#~ msgstr "Required for Build Orders" #: src/defaults/dashboardItems.tsx:71 -msgid "Expired Stock" -msgstr "" +#~ msgid "Expired Stock" +#~ msgstr "Expired Stock" #: src/defaults/dashboardItems.tsx:78 -msgid "Stale Stock" -msgstr "" +#~ msgid "Stale Stock" +#~ msgstr "Stale Stock" #: src/defaults/dashboardItems.tsx:85 -msgid "Build Orders In Progress" -msgstr "" - -#: src/defaults/dashboardItems.tsx:92 -msgid "Overdue Build Orders" -msgstr "" +#~ msgid "Build Orders In Progress" +#~ msgstr "Build Orders In Progress" #: src/defaults/dashboardItems.tsx:99 -msgid "Outstanding Purchase Orders" -msgstr "" - -#: src/defaults/dashboardItems.tsx:106 -msgid "Overdue Purchase Orders" -msgstr "" +#~ msgid "Outstanding Purchase Orders" +#~ msgstr "Outstanding Purchase Orders" #: src/defaults/dashboardItems.tsx:113 -msgid "Outstanding Sales Orders" -msgstr "" - -#: src/defaults/dashboardItems.tsx:120 -msgid "Overdue Sales Orders" -msgstr "" +#~ msgid "Outstanding Sales Orders" +#~ msgstr "Outstanding Sales Orders" #: src/defaults/dashboardItems.tsx:127 -msgid "Current News" -msgstr "Güncel Haberler" +#~ msgid "Current News" +#~ msgstr "Current News" #: src/defaults/defaultHostList.tsx:8 #~ msgid "InvenTree Demo" @@ -2490,97 +3031,80 @@ msgstr "Güncel Haberler" #~ msgid "Local Server" #~ msgstr "Local Server" -#: src/defaults/links.tsx:12 -#: src/pages/company/CompanyDetail.tsx:96 -msgid "Website" -msgstr "Web Sitesi" - #: src/defaults/links.tsx:17 -msgid "GitHub" -msgstr "GitHub" +#~ msgid "GitHub" +#~ msgstr "GitHub" #: src/defaults/links.tsx:22 -msgid "Demo" -msgstr "Demo" - -#: src/defaults/links.tsx:33 -#: src/defaults/menuItems.tsx:48 -#: src/pages/company/ManufacturerDetail.tsx:9 -#: src/pages/company/ManufacturerPartDetail.tsx:263 -#: src/pages/company/SupplierDetail.tsx:9 -#: src/pages/company/SupplierPartDetail.tsx:347 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:483 -#: src/pages/purchasing/PurchasingIndex.tsx:60 -msgid "Purchasing" -msgstr "" - -#: src/defaults/links.tsx:37 -#: src/defaults/menuItems.tsx:53 -#: src/pages/company/CustomerDetail.tsx:9 -#: src/pages/sales/ReturnOrderDetail.tsx:474 -#: src/pages/sales/SalesIndex.tsx:53 -#: src/pages/sales/SalesOrderDetail.tsx:525 -msgid "Sales" -msgstr "" +#~ msgid "Demo" +#~ msgstr "Demo" #: src/defaults/links.tsx:41 #: src/defaults/menuItems.tsx:71 #: src/pages/Index/Playground.tsx:217 -msgid "Playground" -msgstr "" +#~ msgid "Playground" +#~ msgstr "Playground" -#: src/defaults/links.tsx:55 -msgid "Getting Started" -msgstr "Başlarken" - -#: src/defaults/links.tsx:56 -msgid "Getting started with InvenTree" -msgstr "InvenTree ile başlarken" - -#: src/defaults/links.tsx:62 +#: src/defaults/links.tsx:45 msgid "API" msgstr "API" -#: src/defaults/links.tsx:63 +#: src/defaults/links.tsx:48 msgid "InvenTree API documentation" msgstr "InvenTree API dokümantasyonu" -#: src/defaults/links.tsx:68 +#: src/defaults/links.tsx:52 msgid "Developer Manual" msgstr "Geliştirici Kılavuzu" -#: src/defaults/links.tsx:69 +#: src/defaults/links.tsx:55 msgid "InvenTree developer manual" msgstr "InvenTree geliştirici kılavuzu" -#: src/defaults/links.tsx:74 +#: src/defaults/links.tsx:59 msgid "FAQ" msgstr "SSS" -#: src/defaults/links.tsx:75 +#: src/defaults/links.tsx:62 msgid "Frequently asked questions" msgstr "Sıkça sorulan sorular" +#: src/defaults/links.tsx:66 +msgid "GitHub Repository" +msgstr "" + +#: src/defaults/links.tsx:69 +msgid "InvenTree source code on GitHub" +msgstr "" + #: src/defaults/links.tsx:76 #~ msgid "Instance" #~ msgstr "Instance" +#: src/defaults/links.tsx:79 +#: src/defaults/links.tsx:117 +msgid "System Information" +msgstr "Sistem Bilgisi" + #: src/defaults/links.tsx:83 #~ msgid "InvenTree" #~ msgstr "InvenTree" -#: src/defaults/links.tsx:85 -#: src/defaults/links.tsx:122 -msgid "System Information" -msgstr "" - #: src/defaults/links.tsx:117 #~ msgid "Licenses for packages used by InvenTree" #~ msgstr "Licenses for packages used by InvenTree" +#: src/defaults/links.tsx:125 +msgid "About the InvenTree Project" +msgstr "" + +#: src/defaults/links.tsx:132 +msgid "Licenses for dependencies of the InvenTree software" +msgstr "" + #: src/defaults/links.tsx:134 -msgid "Licenses" -msgstr "Lisanslar" +#~ msgid "Licenses" +#~ msgstr "Licenses" #: src/defaults/menuItems.tsx:7 #~ msgid "Open sourcea" @@ -2607,8 +3131,8 @@ msgstr "Lisanslar" #~ msgstr "Profile page" #: src/defaults/menuItems.tsx:17 -msgid "User attributes and design settings." -msgstr "" +#~ msgid "User attributes and design settings." +#~ msgstr "User attributes and design settings." #: src/defaults/menuItems.tsx:21 #~ msgid "Free for everyone" @@ -2619,8 +3143,8 @@ msgstr "" #~ msgstr "The fluid of Smeargle’s tail secretions changes" #: src/defaults/menuItems.tsx:23 -msgid "View for interactive scanning and multiple actions." -msgstr "" +#~ msgid "View for interactive scanning and multiple actions." +#~ msgstr "View for interactive scanning and multiple actions." #: src/defaults/menuItems.tsx:24 #~ msgid "The fluid of Smeargle’s tail secretions changes in the intensity" @@ -2698,51 +3222,130 @@ msgstr "" #~ msgid "Are you sure you want to delete this attachment?" #~ msgstr "Are you sure you want to delete this attachment?" -#: src/forms/BuildForms.tsx:158 -msgid "Next serial number" -msgstr "" +#: src/forms/BuildForms.tsx:248 +#~ msgid "Remove output" +#~ msgstr "Remove output" -#: src/forms/BuildForms.tsx:162 -msgid "Latest serial number" -msgstr "" +#: src/forms/BuildForms.tsx:269 +#: src/tables/build/BuildAllocatedStockTable.tsx:147 +#: src/tables/build/BuildOrderTestTable.tsx:177 +#: src/tables/build/BuildOrderTestTable.tsx:201 +#: src/tables/build/BuildOutputTable.tsx:460 +msgid "Build Output" +msgstr "Yapım Çıktısı" -#: src/forms/BuildForms.tsx:234 -msgid "Remove output" -msgstr "" +#: src/forms/BuildForms.tsx:269 +#: src/forms/BuildForms.tsx:337 +#: src/forms/BuildForms.tsx:385 +#: src/tables/build/BuildLineTable.tsx:89 +msgid "Batch" +msgstr "Parti" -#: src/forms/BuildForms.tsx:316 +#: src/forms/BuildForms.tsx:269 +#: src/forms/BuildForms.tsx:337 +#: src/forms/BuildForms.tsx:385 +#: src/forms/PurchaseOrderForms.tsx:603 +#: src/pages/build/BuildDetail.tsx:104 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:142 +#: src/pages/sales/ReturnOrderDetail.tsx:113 +#: src/pages/sales/SalesOrderDetail.tsx:122 +#: src/tables/build/BuildOrderTable.tsx:125 +#: src/tables/machine/MachineListTable.tsx:336 +#: src/tables/part/PartPurchaseOrdersTable.tsx:37 +#: src/tables/purchasing/PurchaseOrderTable.tsx:58 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:157 +#: src/tables/sales/ReturnOrderTable.tsx:56 +#: src/tables/sales/SalesOrderTable.tsx:56 +#: src/tables/settings/CustomStateTable.tsx:57 +#: src/tables/settings/ImportSessionTable.tsx:114 +#: src/tables/stock/StockItemTable.tsx:298 +#: src/tables/stock/StockTrackingTable.tsx:56 +msgid "Status" +msgstr "Durum" + +#: src/forms/BuildForms.tsx:289 msgid "Complete Build Outputs" -msgstr "" +msgstr "Tamamlanan Yapı Çıktıları" -#: src/forms/BuildForms.tsx:320 +#: src/forms/BuildForms.tsx:292 msgid "Build outputs have been completed" -msgstr "" +msgstr "Yapı çıktıları tamamlandı" -#: src/forms/BuildForms.tsx:389 +#: src/forms/BuildForms.tsx:353 msgid "Scrap Build Outputs" -msgstr "" +msgstr "Yapı Çıktılarını Hurdaya Ayır" + +#: src/forms/BuildForms.tsx:356 +msgid "Build outputs have been scrapped" +msgstr "Yapı çıktıları hurdaya ayrıldı" #: src/forms/BuildForms.tsx:393 -msgid "Build outputs have been scrapped" -msgstr "" - -#: src/forms/BuildForms.tsx:425 -#: src/forms/BuildForms.tsx:449 msgid "Cancel Build Outputs" -msgstr "" +msgstr "Yapı Çıktılarını İptal Et" -#: src/forms/BuildForms.tsx:426 -msgid "Selected build outputs will be deleted" -msgstr "" - -#: src/forms/BuildForms.tsx:453 +#: src/forms/BuildForms.tsx:396 msgid "Build outputs have been cancelled" +msgstr "Yapı çıktıları iptal edildi" + +#: src/forms/BuildForms.tsx:408 +#~ msgid "Selected build outputs will be deleted" +#~ msgstr "Selected build outputs will be deleted" + +#: src/forms/BuildForms.tsx:470 +#~ msgid "Remove line" +#~ msgstr "Remove line" + +#: src/forms/BuildForms.tsx:515 +#: src/forms/SalesOrderForms.tsx:248 +#: src/tables/build/BuildLineTable.tsx:174 +#: src/tables/sales/SalesOrderLineItemTable.tsx:276 +#: src/tables/stock/StockItemTable.tsx:309 +msgid "Allocated" +msgstr "Ayrıldı" + +#: src/forms/BuildForms.tsx:545 +#: src/forms/SalesOrderForms.tsx:239 +#: src/pages/build/BuildDetail.tsx:208 +msgid "Source Location" +msgstr "Kaynak Konum" + +#: src/forms/BuildForms.tsx:546 +#: src/forms/SalesOrderForms.tsx:240 +msgid "Select the source location for the stock allocation" +msgstr "" + +#: src/forms/BuildForms.tsx:566 +#: src/forms/SalesOrderForms.tsx:274 +#: src/tables/build/BuildLineTable.tsx:442 +#: src/tables/build/BuildLineTable.tsx:569 +#: src/tables/build/BuildLineTable.tsx:642 +#: src/tables/sales/SalesOrderLineItemTable.tsx:302 +#: src/tables/sales/SalesOrderLineItemTable.tsx:326 +msgid "Allocate Stock" +msgstr "Stoku Ayır" + +#: src/forms/BuildForms.tsx:569 +#: src/forms/SalesOrderForms.tsx:279 +msgid "Stock items allocated" msgstr "" #: src/forms/CompanyForms.tsx:150 #~ msgid "Company updated" #~ msgstr "Company updated" +#: src/forms/PartForms.tsx:67 +#: src/forms/PartForms.tsx:154 +#: src/pages/part/CategoryDetail.tsx:117 +#: src/pages/part/PartDetail.tsx:384 +#: src/tables/part/PartCategoryTable.tsx:90 +#: src/tables/part/PartTable.tsx:294 +msgid "Subscribed" +msgstr "Abone olundu" + +#: src/forms/PartForms.tsx:68 +msgid "Subscribe to notifications for this part" +msgstr "" + #: src/forms/PartForms.tsx:106 #~ msgid "Create Part" #~ msgstr "Create Part" @@ -2751,276 +3354,295 @@ msgstr "" #~ msgid "Part created" #~ msgstr "Part created" -#: src/forms/PartForms.tsx:124 -msgid "Parent part category" -msgstr "" - #: src/forms/PartForms.tsx:129 #~ msgid "Part updated" #~ msgstr "Part updated" -#: src/forms/PurchaseOrderForms.tsx:300 +#: src/forms/PartForms.tsx:140 +msgid "Parent part category" +msgstr "Üst parça sınıfı" + +#: src/forms/PartForms.tsx:155 +msgid "Subscribe to notifications for this category" +msgstr "" + +#: src/forms/PurchaseOrderForms.tsx:314 +msgid "Assign Batch Code and Serial Numbers" +msgstr "" + +#: src/forms/PurchaseOrderForms.tsx:316 +msgid "Assign Batch Code" +msgstr "" + +#: src/forms/PurchaseOrderForms.tsx:336 msgid "Choose Location" -msgstr "" +msgstr "Konum Seçiniz" -#: src/forms/PurchaseOrderForms.tsx:308 +#: src/forms/PurchaseOrderForms.tsx:344 msgid "Item Destination selected" -msgstr "" +msgstr "Öge hedefi seçildi" -#: src/forms/PurchaseOrderForms.tsx:317 +#: src/forms/PurchaseOrderForms.tsx:353 msgid "Part category default location selected" -msgstr "" +msgstr "Parça sınıfı varsayılan konum seçildi" -#: src/forms/PurchaseOrderForms.tsx:327 +#: src/forms/PurchaseOrderForms.tsx:363 msgid "Received stock location selected" -msgstr "" +msgstr "Alınan stok konumu seçildi" -#: src/forms/PurchaseOrderForms.tsx:332 +#: src/forms/PurchaseOrderForms.tsx:368 msgid "Default location selected" -msgstr "" +msgstr "Varsayılan konum seçildi" -#: src/forms/PurchaseOrderForms.tsx:343 -#: src/forms/PurchaseOrderForms.tsx:435 -msgid "Scan Barcode" -msgstr "" +#: src/forms/PurchaseOrderForms.tsx:421 +#~ msgid "Assign Batch Code{0}" +#~ msgstr "Assign Batch Code{0}" -#: src/forms/PurchaseOrderForms.tsx:388 +#: src/forms/PurchaseOrderForms.tsx:427 msgid "Set Location" -msgstr "" +msgstr "Konum Ayarla" -#: src/forms/PurchaseOrderForms.tsx:396 -msgid "Assign Batch Code{0}" -msgstr "" - -#: src/forms/PurchaseOrderForms.tsx:405 -#: src/forms/StockForms.tsx:420 +#: src/forms/PurchaseOrderForms.tsx:442 +#: src/forms/StockForms.tsx:539 msgid "Adjust Packaging" -msgstr "" - -#: src/forms/PurchaseOrderForms.tsx:412 -msgid "Change Status" -msgstr "" - -#: src/forms/PurchaseOrderForms.tsx:418 -msgid "Add Note" -msgstr "" +msgstr "Paketlemeyi Ayarla" #: src/forms/PurchaseOrderForms.tsx:444 #: src/forms/StockForms.tsx:428 -msgid "Remove item from list" -msgstr "" +#~ msgid "Remove item from list" +#~ msgstr "Remove item from list" -#: src/forms/PurchaseOrderForms.tsx:471 -#: src/forms/StockForms.tsx:499 -#: src/forms/StockForms.tsx:533 -#: src/forms/StockForms.tsx:562 -#: src/forms/StockForms.tsx:590 -#: src/forms/StockForms.tsx:621 -#: src/forms/StockForms.tsx:656 -#: src/forms/StockForms.tsx:698 -#: src/forms/StockForms.tsx:734 -#: src/pages/stock/StockDetail.tsx:181 -#: src/tables/ColumnRenderers.tsx:49 -#: src/tables/stock/StockTrackingTable.tsx:85 +#: src/forms/PurchaseOrderForms.tsx:450 +msgid "Change Status" +msgstr "Durumu Değiştir" + +#: src/forms/PurchaseOrderForms.tsx:456 +msgid "Add Note" +msgstr "Note Ekle" + +#: src/forms/PurchaseOrderForms.tsx:503 +#: src/forms/StockForms.tsx:614 +#: src/forms/StockForms.tsx:651 +#: src/forms/StockForms.tsx:677 +#: src/forms/StockForms.tsx:705 +#: src/forms/StockForms.tsx:736 +#: src/forms/StockForms.tsx:771 +#: src/forms/StockForms.tsx:813 +#: src/forms/StockForms.tsx:851 +#: src/pages/stock/StockDetail.tsx:202 +#: src/tables/ColumnRenderers.tsx:60 +#: src/tables/stock/StockTrackingTable.tsx:89 msgid "Location" -msgstr "" +msgstr "Konum" -#: src/forms/PurchaseOrderForms.tsx:486 +#: src/forms/PurchaseOrderForms.tsx:518 msgid "Store at default location" -msgstr "" +msgstr "Varsayılan konumda depola" -#: src/forms/PurchaseOrderForms.tsx:499 +#: src/forms/PurchaseOrderForms.tsx:533 msgid "Store at line item destination" -msgstr "" +msgstr "Satır ögesinin hedefinde depola" -#: src/forms/PurchaseOrderForms.tsx:509 +#: src/forms/PurchaseOrderForms.tsx:545 msgid "Store with already received stock" -msgstr "" +msgstr "Önceden alınmış bir stok ile depola" -#: src/forms/PurchaseOrderForms.tsx:524 -#: src/pages/build/BuildDetail.tsx:219 -#: src/pages/stock/StockDetail.tsx:162 -#: src/pages/stock/StockDetail.tsx:599 -#: src/tables/build/BuildAllocatedStockTable.tsx:109 -#: src/tables/build/BuildOrderTestTable.tsx:188 -#: src/tables/sales/SalesOrderAllocationTable.tsx:87 +#: src/forms/PurchaseOrderForms.tsx:566 +#: src/pages/build/BuildDetail.tsx:222 +#: src/pages/stock/StockDetail.tsx:185 +#: src/pages/stock/StockDetail.tsx:793 +#: src/tables/build/BuildAllocatedStockTable.tsx:130 +#: src/tables/build/BuildOrderTestTable.tsx:189 +#: src/tables/build/BuildOutputTable.tsx:86 +#: src/tables/sales/SalesOrderAllocationTable.tsx:113 msgid "Batch Code" +msgstr "Parti Kodu" + +#: src/forms/PurchaseOrderForms.tsx:566 +#~ msgid "Serial numbers" +#~ msgstr "Serial numbers" + +#: src/forms/PurchaseOrderForms.tsx:567 +msgid "Enter batch code for received items" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:535 -msgid "Serial numbers" +#: src/forms/PurchaseOrderForms.tsx:579 +#: src/forms/StockForms.tsx:152 +msgid "Serial Numbers" +msgstr "Seri Numaraları" + +#: src/forms/PurchaseOrderForms.tsx:580 +msgid "Enter serial numbers for received items" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:544 -#: src/forms/StockForms.tsx:443 -#: src/pages/company/SupplierPartDetail.tsx:156 -#: src/pages/company/SupplierPartDetail.tsx:207 -#: src/pages/stock/StockDetail.tsx:244 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:192 +#: src/forms/PurchaseOrderForms.tsx:590 +#: src/forms/StockForms.tsx:556 +#: src/pages/company/SupplierPartDetail.tsx:168 +#: src/pages/company/SupplierPartDetail.tsx:219 +#: src/pages/stock/StockDetail.tsx:320 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:198 msgid "Packaging" -msgstr "" +msgstr "Paketleme" -#: src/forms/PurchaseOrderForms.tsx:556 -#: src/pages/build/BuildDetail.tsx:109 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:148 -#: src/pages/sales/ReturnOrderDetail.tsx:121 -#: src/pages/sales/SalesOrderDetail.tsx:127 -#: src/tables/build/BuildOrderTable.tsx:122 -#: src/tables/machine/MachineListTable.tsx:335 -#: src/tables/part/PartPurchaseOrdersTable.tsx:37 -#: src/tables/purchasing/PurchaseOrderTable.tsx:55 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:132 -#: src/tables/sales/ReturnOrderTable.tsx:46 -#: src/tables/sales/SalesOrderTable.tsx:53 -#: src/tables/settings/ImportSessionTable.tsx:115 -#: src/tables/stock/StockItemTable.tsx:294 -#: src/tables/stock/StockTrackingTable.tsx:52 -msgid "Status" -msgstr "Durum" - -#: src/forms/PurchaseOrderForms.tsx:564 -#: src/pages/company/SupplierPartDetail.tsx:110 -#: src/tables/ColumnRenderers.tsx:132 +#: src/forms/PurchaseOrderForms.tsx:612 +#: src/pages/company/SupplierPartDetail.tsx:115 +#: src/tables/ColumnRenderers.tsx:143 msgid "Note" -msgstr "" - -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/pages/company/SupplierPartDetail.tsx:128 -#: src/tables/purchasing/SupplierPriceBreakTable.tsx:57 -msgid "SKU" -msgstr "" - -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/tables/part/PartPurchaseOrdersTable.tsx:120 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:178 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:127 -msgid "Received" -msgstr "" - -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/forms/StockForms.tsx:499 -#: src/forms/StockForms.tsx:533 -#: src/forms/StockForms.tsx:562 -#: src/forms/StockForms.tsx:590 -#: src/forms/StockForms.tsx:621 -#: src/forms/StockForms.tsx:656 -#: src/forms/StockForms.tsx:698 -#: src/forms/StockForms.tsx:734 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:413 -#: src/tables/RowActions.tsx:113 -msgid "Actions" -msgstr "Eylemler" - -#: src/forms/PurchaseOrderForms.tsx:655 -msgid "Receive Line Items" -msgstr "" +msgstr "Not" #: src/forms/PurchaseOrderForms.tsx:658 #~ msgid "Receive line items" #~ msgstr "Receive line items" -#: src/forms/StockForms.tsx:104 -msgid "Add given quantity as packs instead of individual items" +#: src/forms/PurchaseOrderForms.tsx:689 +#: src/pages/company/SupplierPartDetail.tsx:133 +#: src/tables/purchasing/SupplierPriceBreakTable.tsx:57 +msgid "SKU" +msgstr "SKU" + +#: src/forms/PurchaseOrderForms.tsx:689 +#: src/tables/part/PartPurchaseOrdersTable.tsx:126 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:184 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:247 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:152 +msgid "Received" +msgstr "Alındı" + +#: src/forms/PurchaseOrderForms.tsx:701 +msgid "Receive Line Items" +msgstr "Alınan Satır Ögeleri" + +#: src/forms/ReturnOrderForms.tsx:201 +msgid "Receive Items" msgstr "" +#: src/forms/ReturnOrderForms.tsx:208 +msgid "Item received into stock" +msgstr "" + +#: src/forms/StockForms.tsx:80 +#: src/hooks/UsePlaceholder.tsx:57 +msgid "Next serial number" +msgstr "Sonraki seri numarası" + #: src/forms/StockForms.tsx:110 #~ msgid "Create Stock Item" #~ msgstr "Create Stock Item" -#: src/forms/StockForms.tsx:117 +#: src/forms/StockForms.tsx:131 +msgid "Add given quantity as packs instead of individual items" +msgstr "Verilen miktarı tekli ögeler yerine paketler olarak ekle" + +#: src/forms/StockForms.tsx:145 msgid "Enter initial quantity for this stock item" -msgstr "" +msgstr "Bu stok ögesi için ilk miktarı giriniz" -#: src/forms/StockForms.tsx:124 -msgid "Serial Numbers" -msgstr "" - -#: src/forms/StockForms.tsx:125 +#: src/forms/StockForms.tsx:154 msgid "Enter serial numbers for new stock (or leave blank)" -msgstr "" +msgstr "Yeni stok için seri numaralarını girin (veya boş bırakın)" #: src/forms/StockForms.tsx:158 #~ msgid "Stock item updated" #~ msgstr "Stock item updated" -#: src/forms/StockForms.tsx:179 -#: src/pages/stock/StockDetail.tsx:434 -#: src/tables/stock/StockItemTable.tsx:417 -#: src/tables/stock/StockItemTable.tsx:535 +#: src/forms/StockForms.tsx:169 +#: src/pages/stock/StockDetail.tsx:131 +msgid "Stock Status" +msgstr "Stok Durumu" + +#: src/forms/StockForms.tsx:218 +#: src/pages/stock/StockDetail.tsx:554 +#: src/tables/stock/StockItemTable.tsx:421 +#: src/tables/stock/StockItemTable.tsx:541 msgid "Add Stock Item" +msgstr "Stok Ögesi Ekle" + +#: src/forms/StockForms.tsx:262 +msgid "Select the part to install" msgstr "" -#: src/forms/StockForms.tsx:362 +#: src/forms/StockForms.tsx:480 msgid "Loading..." -msgstr "" +msgstr "Yükleniyor..." -#: src/forms/StockForms.tsx:408 +#: src/forms/StockForms.tsx:527 msgid "Move to default location" -msgstr "" +msgstr "Varsayılan konuma taşı" -#: src/forms/StockForms.tsx:499 -#: src/forms/StockForms.tsx:533 -#: src/forms/StockForms.tsx:562 -#: src/forms/StockForms.tsx:590 -#: src/forms/StockForms.tsx:621 -#: src/forms/StockForms.tsx:656 -#: src/forms/StockForms.tsx:698 -#: src/forms/StockForms.tsx:734 -#: src/pages/part/PartDetail.tsx:230 -#: src/pages/part/PartDetail.tsx:843 -#: src/tables/stock/StockItemTable.tsx:325 +#: src/forms/StockForms.tsx:614 +#: src/forms/StockForms.tsx:651 +#: src/forms/StockForms.tsx:677 +#: src/forms/StockForms.tsx:705 +#: src/forms/StockForms.tsx:736 +#: src/forms/StockForms.tsx:771 +#: src/forms/StockForms.tsx:813 +#: src/forms/StockForms.tsx:851 +#: src/pages/part/PartDetail.tsx:251 +#: src/pages/part/PartDetail.tsx:875 +#: src/tables/stock/StockItemTable.tsx:329 msgid "In Stock" -msgstr "" +msgstr "Stokta" -#: src/forms/StockForms.tsx:499 +#: src/forms/StockForms.tsx:614 msgid "Move" -msgstr "" +msgstr "Taşı" -#: src/forms/StockForms.tsx:562 -#: src/pages/stock/StockDetail.tsx:518 -#: src/tables/stock/StockItemTestResultTable.tsx:328 +#: src/forms/StockForms.tsx:677 +#: src/pages/stock/StockDetail.tsx:681 +#: src/tables/stock/StockItemTestResultTable.tsx:346 msgid "Add" -msgstr "" +msgstr "Ekle" -#: src/forms/StockForms.tsx:590 -#: src/pages/Index/Scan.tsx:266 -#: src/pages/stock/StockDetail.tsx:508 +#: src/forms/StockForms.tsx:705 +#: src/pages/Index/Scan.tsx:280 +#: src/pages/stock/StockDetail.tsx:670 msgid "Count" -msgstr "" +msgstr "Say" -#: src/forms/StockForms.tsx:835 +#: src/forms/StockForms.tsx:953 +#: src/pages/stock/StockDetail.tsx:682 +#: src/tables/stock/StockItemTable.tsx:454 msgid "Add Stock" -msgstr "" +msgstr "Stok Ekle" -#: src/forms/StockForms.tsx:844 +#: src/forms/StockForms.tsx:962 +#: src/pages/stock/StockDetail.tsx:691 +#: src/tables/stock/StockItemTable.tsx:463 msgid "Remove Stock" -msgstr "" +msgstr "Stok Kaldır" -#: src/forms/StockForms.tsx:853 -#: src/pages/part/PartDetail.tsx:1017 +#: src/forms/StockForms.tsx:971 +#: src/pages/part/PartDetail.tsx:1039 +#: src/pages/stock/StockDetail.tsx:712 +#: src/tables/stock/StockItemTable.tsx:483 msgid "Transfer Stock" -msgstr "" +msgstr "Stoku Aktar" -#: src/forms/StockForms.tsx:862 -#: src/pages/part/PartDetail.tsx:1006 +#: src/forms/StockForms.tsx:980 +#: src/pages/part/PartDetail.tsx:1028 +#: src/pages/stock/LocationDetail.tsx:314 +#: src/pages/stock/LocationDetail.tsx:318 +#: src/tables/stock/StockItemTable.tsx:472 +#: src/tables/stock/StockItemTable.tsx:476 msgid "Count Stock" -msgstr "" +msgstr "Stoku Say" -#: src/forms/StockForms.tsx:871 +#: src/forms/StockForms.tsx:989 msgid "Change Stock Status" -msgstr "" +msgstr "Stok Durumunu Değiştir" -#: src/forms/StockForms.tsx:880 +#: src/forms/StockForms.tsx:998 msgid "Merge Stock" -msgstr "" +msgstr "Stoku Birleştir" -#: src/forms/StockForms.tsx:899 +#: src/forms/StockForms.tsx:1017 +#: src/tables/stock/StockItemTable.tsx:530 msgid "Delete Stock Items" -msgstr "" +msgstr "Stok Ögelerini Sil" -#: src/forms/StockForms.tsx:906 +#: src/forms/StockForms.tsx:1024 msgid "Parent stock location" -msgstr "" +msgstr "Üst stok konumu" #: src/functions/auth.tsx:34 #~ msgid "Error fetching token from server." @@ -3042,13 +3664,13 @@ msgstr "" #~ msgid "You have been logged out" #~ msgstr "You have been logged out" -#: src/functions/auth.tsx:117 +#: src/functions/auth.tsx:128 msgid "Logged Out" -msgstr "" +msgstr "Çıkış Yapıldı" -#: src/functions/auth.tsx:118 +#: src/functions/auth.tsx:129 msgid "Successfully logged out" -msgstr "" +msgstr "Başarıyla çıkış yapıldı" #: src/functions/auth.tsx:141 #~ msgid "Already logged in" @@ -3062,22 +3684,22 @@ msgstr "" #~ msgid "Found an existing login - welcome back!" #~ msgstr "Found an existing login - welcome back!" -#: src/functions/auth.tsx:156 +#: src/functions/auth.tsx:167 msgid "Check your inbox for a reset link. This only works if you have an account. Check in spam too." -msgstr "" +msgstr "Bir sıfırlama bağlantısı için gelen kutunuzu veya spam kutunuzu yoklayın. Bu yalnızca bir hesabınız varsa çalışacaktır." -#: src/functions/auth.tsx:163 +#: src/functions/auth.tsx:174 #: src/pages/Auth/Set-Password.tsx:39 msgid "Reset failed" -msgstr "" +msgstr "Sıfırlama başarısız" -#: src/functions/auth.tsx:194 +#: src/functions/auth.tsx:205 msgid "Logged In" -msgstr "" +msgstr "Giriş Yapıldı" -#: src/functions/auth.tsx:195 +#: src/functions/auth.tsx:206 msgid "Successfully logged in" -msgstr "" +msgstr "Başarıyla giriş yapıldı" #: src/functions/forms.tsx:50 #~ msgid "Form method not provided" @@ -3095,62 +3717,74 @@ msgstr "" #~ msgid "method parameter not supplied" #~ msgstr "method parameter not supplied" -#: src/functions/notifications.tsx:10 +#: src/functions/notifications.tsx:12 msgid "Not implemented" -msgstr "" +msgstr "Gerçeklenmemiş" -#: src/functions/notifications.tsx:11 +#: src/functions/notifications.tsx:13 msgid "This feature is not yet implemented" -msgstr "" +msgstr "Bu özellik henüz gerçeklenmemiş" -#: src/functions/notifications.tsx:21 -msgid "Permission denied" -msgstr "" +#: src/functions/notifications.tsx:24 +#~ msgid "Permission denied" +#~ msgstr "Permission denied" -#: src/functions/notifications.tsx:22 +#: src/functions/notifications.tsx:25 msgid "You do not have permission to perform this action" -msgstr "" +msgstr "Bu eylemi gerçekleştirme izniniz yok" -#: src/functions/notifications.tsx:33 +#: src/functions/notifications.tsx:36 msgid "Invalid Return Code" +msgstr "Geçersiz Dönüş Kodu" + +#: src/functions/notifications.tsx:37 +msgid "Server returned status {returnCode}" +msgstr "Sunucu {returnCode} durumunu döndürdü" + +#: src/functions/notifications.tsx:47 +msgid "Timeout" msgstr "" -#: src/functions/notifications.tsx:34 -msgid "Server returned status {returnCode}" +#: src/functions/notifications.tsx:48 +msgid "The request timed out" msgstr "" #: src/hooks/UseForm.tsx:88 msgid "Item Created" -msgstr "" +msgstr "Öge Oluşturuldu" #: src/hooks/UseForm.tsx:105 msgid "Item Updated" -msgstr "" +msgstr "Öge Güncellendi" #: src/hooks/UseForm.tsx:124 msgid "Item Deleted" -msgstr "" +msgstr "Öge Silindi" #: src/hooks/UseForm.tsx:128 msgid "Are you sure you want to delete this item?" -msgstr "" +msgstr "Bu ögeyi silmek istediğinize emin misiniz?" + +#: src/hooks/UsePlaceholder.tsx:59 +msgid "Latest serial number" +msgstr "En son seri numarası" #: src/pages/Auth/Logged-In.tsx:22 msgid "Checking if you are already logged in" msgstr "Zaten giriş yapıp yapmadığınız kontrol ediliyor" -#: src/pages/Auth/Login.tsx:31 -#: src/pages/Index/Scan.tsx:329 +#: src/pages/Auth/Login.tsx:35 +#: src/pages/Index/Scan.tsx:343 msgid "No selection" msgstr "Seçim yok" -#: src/pages/Auth/Login.tsx:87 +#: src/pages/Auth/Login.tsx:91 msgid "Welcome, log in below" msgstr "Hoşgeldiniz, aşağıdan giriş yapın" -#: src/pages/Auth/Login.tsx:89 +#: src/pages/Auth/Login.tsx:93 msgid "Register below" -msgstr "" +msgstr "Aşağıda kaydolun" #: src/pages/Auth/Login.tsx:121 #~ msgid "Edit host options" @@ -3158,12 +3792,12 @@ msgstr "" #: src/pages/Auth/Logout.tsx:22 msgid "Logging out" -msgstr "" +msgstr "Çıkış yapılıyor" #: src/pages/Auth/Reset.tsx:41 #: src/pages/Auth/Set-Password.tsx:112 -msgid "Send mail" -msgstr "E-posta gönder" +#~ msgid "Send mail" +#~ msgstr "Send mail" #: src/pages/Auth/Set-Password.tsx:30 msgid "Token invalid" @@ -3171,25 +3805,25 @@ msgstr "Geçersiz token" #: src/pages/Auth/Set-Password.tsx:31 msgid "You need to provide a valid token to set a new password. Check your inbox for a reset link." -msgstr "" +msgstr "Yeni bir şifre belirlemek için geçerli bir jeton sağlamanız gerekir. Bir sıfırlama bağlantısı için gelen kutunuzu yoklayın." #: src/pages/Auth/Set-Password.tsx:49 -msgid "No token provided" -msgstr "" +#~ msgid "No token provided" +#~ msgstr "No token provided" #: src/pages/Auth/Set-Password.tsx:50 -msgid "You need to provide a token to set a new password. Check your inbox for a reset link." -msgstr "" +#~ msgid "You need to provide a token to set a new password. Check your inbox for a reset link." +#~ msgstr "You need to provide a token to set a new password. Check your inbox for a reset link." -#: src/pages/Auth/Set-Password.tsx:73 +#: src/pages/Auth/Set-Password.tsx:68 msgid "Password set" msgstr "Şifre belirlendi" -#: src/pages/Auth/Set-Password.tsx:74 +#: src/pages/Auth/Set-Password.tsx:69 msgid "The password was set successfully. You can now login with your new password" msgstr "Şifreniz başarıyla değiştirildi. Artık yeni şifrenizle giriş yapabilirsiniz" -#: src/pages/Auth/Set-Password.tsx:101 +#: src/pages/Auth/Set-Password.tsx:96 msgid "Set new password" msgstr "Yeni şifre belirle" @@ -3199,27 +3833,27 @@ msgstr "Hata: {0}" #: src/pages/ErrorPage.tsx:23 msgid "An unexpected error has occurred" -msgstr "" +msgstr "Beklenmeyen bir hata oluştu" #: src/pages/ErrorPage.tsx:28 #~ msgid "Sorry, an unexpected error has occurred." #~ msgstr "Sorry, an unexpected error has occurred." #: src/pages/Index/Dashboard.tsx:22 -msgid "Autoupdate" -msgstr "Otomatik güncelleme" +#~ msgid "Autoupdate" +#~ msgstr "Autoupdate" #: src/pages/Index/Dashboard.tsx:26 -msgid "This page is a replacement for the old start page with the same information. This page will be deprecated and replaced by the home page." -msgstr "" +#~ msgid "This page is a replacement for the old start page with the same information. This page will be deprecated and replaced by the home page." +#~ msgstr "This page is a replacement for the old start page with the same information. This page will be deprecated and replaced by the home page." #: src/pages/Index/Home.tsx:58 -msgid "Welcome to your Dashboard{0}" -msgstr "" +#~ msgid "Welcome to your Dashboard{0}" +#~ msgstr "Welcome to your Dashboard{0}" #: src/pages/Index/Playground.tsx:222 -msgid "This page is a showcase for the possibilities of Platform UI." -msgstr "" +#~ msgid "This page is a showcase for the possibilities of Platform UI." +#~ msgstr "This page is a showcase for the possibilities of Platform UI." #: src/pages/Index/Profile/Profile.tsx:30 #: src/pages/Index/Profile/Profile.tsx:141 @@ -3359,131 +3993,196 @@ msgstr "" #: src/pages/Index/Scan.tsx:216 msgid "Manual input" -msgstr "" +msgstr "Elle giriş" #: src/pages/Index/Scan.tsx:217 msgid "Image Barcode" -msgstr "" - -#: src/pages/Index/Scan.tsx:247 -msgid "Selected elements are not known" -msgstr "" - -#: src/pages/Index/Scan.tsx:254 -msgid "Multiple object types selected" -msgstr "" +msgstr "Resim Barkod" #: src/pages/Index/Scan.tsx:261 +msgid "Selected elements are not known" +msgstr "Seçilen elemanlar bilinmiyor" + +#: src/pages/Index/Scan.tsx:268 +msgid "Multiple object types selected" +msgstr "Birden çok nesne türü seçildi" + +#: src/pages/Index/Scan.tsx:275 msgid "Actions for {0}" -msgstr "" +msgstr "{0} için eylemler" -#: src/pages/Index/Scan.tsx:282 +#: src/pages/Index/Scan.tsx:296 msgid "Scan Page" -msgstr "" +msgstr "Tarama Sayfası" -#: src/pages/Index/Scan.tsx:285 +#: src/pages/Index/Scan.tsx:299 msgid "This page can be used for continuously scanning items and taking actions on them." -msgstr "" +msgstr "Bu sayfa, öğelerin sürekli olarak taranması ve bunlar üzerinde işlem yapılması için kullanılabilir." -#: src/pages/Index/Scan.tsx:292 +#: src/pages/Index/Scan.tsx:306 msgid "Toggle Fullscreen" -msgstr "" +msgstr "Tam Ekrana Geç" -#: src/pages/Index/Scan.tsx:305 +#: src/pages/Index/Scan.tsx:319 msgid "Select the input method you want to use to scan items." -msgstr "" +msgstr "Ögeleri taramak için kullanmak istediğiniz giriş yöntemini seçiniz." -#: src/pages/Index/Scan.tsx:307 +#: src/pages/Index/Scan.tsx:321 msgid "Input" -msgstr "" +msgstr "Giriş" -#: src/pages/Index/Scan.tsx:314 +#: src/pages/Index/Scan.tsx:328 msgid "Select input method" -msgstr "" +msgstr "Giriş yöntemini seçiniz" -#: src/pages/Index/Scan.tsx:315 +#: src/pages/Index/Scan.tsx:329 msgid "Nothing found" -msgstr "" - -#: src/pages/Index/Scan.tsx:323 -msgid "Depending on the selected parts actions will be shown here. Not all barcode types are supported currently." -msgstr "" - -#: src/pages/Index/Scan.tsx:325 -msgid "Action" -msgstr "" - -#: src/pages/Index/Scan.tsx:334 -msgid "{0} items selected" -msgstr "" +msgstr "Hiçbir şey bulunamadı" #: src/pages/Index/Scan.tsx:337 -msgid "General Actions" -msgstr "" +msgid "Depending on the selected parts actions will be shown here. Not all barcode types are supported currently." +msgstr "Seçilen parçalara bağlı olarak eylemler burada gösterilecektir. Şu anda tüm barkod türleri desteklenmemektedir." + +#: src/pages/Index/Scan.tsx:339 +msgid "Action" +msgstr "Eylem" + +#: src/pages/Index/Scan.tsx:348 +msgid "{0} items selected" +msgstr "{0} öge seçildi" #: src/pages/Index/Scan.tsx:351 +msgid "General Actions" +msgstr "Genel Eylemler" + +#: src/pages/Index/Scan.tsx:365 msgid "Lookup part" -msgstr "" +msgstr "Parça ara" -#: src/pages/Index/Scan.tsx:359 +#: src/pages/Index/Scan.tsx:373 msgid "Open Link" -msgstr "" +msgstr "Bağlantı Aç" -#: src/pages/Index/Scan.tsx:375 +#: src/pages/Index/Scan.tsx:389 msgid "History is locally kept in this browser." -msgstr "" +msgstr "Geçmiş yerel olarak bu tarayıcıda tutulmaktadır." -#: src/pages/Index/Scan.tsx:376 +#: src/pages/Index/Scan.tsx:390 msgid "The history is kept in this browser's local storage. So it won't be shared with other users or other devices but is persistent through reloads. You can select items in the history to perform actions on them. To add items, scan/enter them in the Input area." -msgstr "" +msgstr "Geçmiş, tarayıcının yerel deposunda tutulduğundan diğer kullanıcılarla veya aygılarla paylaşılmayacaktır ancak yeniden yüklemeler boyunca kalıcıdır. Üzerlerinde eylemler gerçekleştirmek için geçmişten ögeler seçebilirsiniz. Ögeler eklemek için onları girdi bölgesinde tarayın / girin." -#: src/pages/Index/Scan.tsx:378 +#: src/pages/Index/Scan.tsx:392 #: src/pages/Notifications.tsx:100 msgid "History" -msgstr "" +msgstr "Geçmiş" -#: src/pages/Index/Scan.tsx:384 +#: src/pages/Index/Scan.tsx:398 msgid "Delete History" -msgstr "" +msgstr "Geçmişi Sil" -#: src/pages/Index/Scan.tsx:449 +#: src/pages/Index/Scan.tsx:463 msgid "No history" -msgstr "" +msgstr "Geçmiş Yok" -#: src/pages/Index/Scan.tsx:467 +#: src/pages/Index/Scan.tsx:481 msgid "Item" -msgstr "" +msgstr "Öge" -#: src/pages/Index/Scan.tsx:470 +#: src/pages/Index/Scan.tsx:484 msgid "Type" -msgstr "" +msgstr "Tür" -#: src/pages/Index/Scan.tsx:473 +#: src/pages/Index/Scan.tsx:487 msgid "Source" -msgstr "" +msgstr "Kaynak" -#: src/pages/Index/Scan.tsx:476 +#: src/pages/Index/Scan.tsx:490 msgid "Scanned at" -msgstr "" +msgstr "Burada tarandı" -#: src/pages/Index/Scan.tsx:528 +#: src/pages/Index/Scan.tsx:547 msgid "Enter item serial or data" +msgstr "Öge seri numarasını veya verisini girin" + +#: src/pages/Index/Scan.tsx:559 +msgid "Add dummy item" +msgstr "Sahte öge ekle" + +#: src/pages/Index/Scan.tsx:569 +msgid "Start scanning by selecting a camera and pressing the play button." msgstr "" -#: src/pages/Index/Scan.tsx:540 -msgid "Add dummy item" +#: src/pages/Index/Scan.tsx:650 +msgid "Error while getting camera" +msgstr "Kamera açılırken hata oluştu" + +#: src/pages/Index/Scan.tsx:673 +msgid "Error while scanning" +msgstr "Tarama sırasında hata" + +#: src/pages/Index/Scan.tsx:687 +msgid "Error while stopping" +msgstr "Durdurma sırasında hata" + +#: src/pages/Index/Scan.tsx:745 +msgid "Stop scanning" +msgstr "Taramayı durdur" + +#: src/pages/Index/Scan.tsx:754 +msgid "Start scanning" +msgstr "Taramayı başlat" + +#: src/pages/Index/Scan.tsx:763 +msgid "Scanning" +msgstr "Taranıyor" + +#: src/pages/Index/Scan.tsx:763 +msgid "Not scanning" +msgstr "Taranmıyor" + +#: src/pages/Index/Scan.tsx:775 +msgid "Select Camera" +msgstr "Kamera Seç" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:28 +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:50 +msgid "Edit User Information" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:32 +msgid "User details updated" msgstr "" #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:41 -msgid "Account Details" +msgid "User Details" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:41 +#~ msgid "Account Details" +#~ msgstr "Account Details" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:44 +msgid "User Actions" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:48 +msgid "Edit User" msgstr "" #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:50 -msgid "First name" +#~ msgid "First name" +#~ msgstr "First name" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:54 +msgid "Set Password" msgstr "" #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:55 -msgid "Last name" +#~ msgid "Last name" +#~ msgstr "Last name" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:56 +msgid "Set User Password" msgstr "" #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:58 @@ -3495,173 +4194,201 @@ msgstr "" #~ msgstr "Last name: {0}" #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:67 -msgid "First name:" -msgstr "" +#~ msgid "First name:" +#~ msgstr "First name:" #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:71 -msgid "Last name:" +#~ msgid "Last name:" +#~ msgstr "Last name:" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:73 +msgid "First Name" msgstr "" -#: src/pages/Index/Settings/AccountSettings/DisplaySettingsPanel.tsx:41 -msgid "Use pseudo language" +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:79 +msgid "Last Name" msgstr "" +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:85 +msgid "Staff Access" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:93 +#: src/tables/settings/UserTable.tsx:293 +msgid "Superuser" +msgstr "Süper Kullanıcı" + #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:55 msgid "Single Sign On Accounts" -msgstr "" +msgstr "Tekli Oturum Açma Hesapları" #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:62 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:80 msgid "Not enabled" -msgstr "" +msgstr "Etkin değil" #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:65 msgid "Single Sign On is not enabled for this server" -msgstr "" +msgstr "Tekli Oturum Açma bu sunucu için etkinleştirilmemiş" #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:69 msgid "Multifactor" -msgstr "" +msgstr "Çok faktörlü" #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:83 msgid "Multifactor authentication is not configured for your account" -msgstr "" +msgstr "Çok faktörlü kimlik doğrulama hesabınız için yapılandırılmamış" #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:92 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:407 msgid "Token" -msgstr "" +msgstr "Jeton" #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:139 msgid "The following email addresses are associated with your account:" -msgstr "" +msgstr "Aşağıdaki e-posta adresleri hesabınızla ilişkilendirilmiştir:" #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:151 msgid "Primary" -msgstr "" +msgstr "Birincil" #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:156 msgid "Verified" -msgstr "" +msgstr "Doğrulandı" #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:160 msgid "Unverified" -msgstr "" +msgstr "Doğrulanmadı" #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:173 msgid "Add Email Address" -msgstr "" +msgstr "E-posta Adresi Ekle" #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:176 msgid "E-Mail" -msgstr "" +msgstr "E-posta" #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:177 msgid "E-Mail address" -msgstr "" +msgstr "E-Posta adresi" #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:189 msgid "Make Primary" -msgstr "" +msgstr "Birincil Yap" #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:194 msgid "Re-send Verification" -msgstr "" +msgstr "Doğrulama Kodunu Yeniden Gönder" #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:205 msgid "Add Email" -msgstr "" +msgstr "E-posta Ekle" #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:270 msgid "Provider has not been configured" -msgstr "" +msgstr "Sağlayıcı yapılandırılmadı" #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:280 msgid "Not configured" -msgstr "" +msgstr "Yapılandırılmadı" #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:283 msgid "There are no social network accounts connected to this account." -msgstr "" +msgstr "Bu hesaba bağlı hiç sosyal ağ hesabı yok." #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:293 msgid "You can sign in to your account using any of the following third party accounts" -msgstr "" +msgstr "İzleyen üçüncü parti hesaplardan birini kullanarak hesabınıza giriş yapabilirsiniz" #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:368 msgid "Token is used - no actions" -msgstr "" +msgstr "Jeton kullanılıyor - eylem yok" #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:375 msgid "Revoke" -msgstr "" +msgstr "Geri Al" #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:389 msgid "No tokens configured" -msgstr "" - -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:398 -#: src/pages/part/PartDetail.tsx:297 -#: src/tables/bom/UsedInTable.tsx:84 -#: src/tables/build/BuildOrderTable.tsx:110 -#: src/tables/company/CompanyTable.tsx:61 -#: src/tables/company/CompanyTable.tsx:95 -#: src/tables/machine/MachineListTable.tsx:332 -#: src/tables/machine/MachineListTable.tsx:594 -#: src/tables/part/ParametricPartTable.tsx:223 -#: src/tables/part/PartTable.tsx:178 -#: src/tables/part/PartVariantTable.tsx:15 -#: src/tables/plugin/PluginListTable.tsx:149 -#: src/tables/plugin/PluginListTable.tsx:271 -#: src/tables/plugin/PluginListTable.tsx:563 -#: src/tables/purchasing/SupplierPartTable.tsx:98 -#: src/tables/purchasing/SupplierPartTable.tsx:187 -#: src/tables/settings/UserTable.tsx:284 -#: src/tables/stock/StockItemTable.tsx:289 -msgid "Active" -msgstr "Aktif" +msgstr "Hiç jeton yapılandırılmadı" #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:401 msgid "Expiry" -msgstr "" +msgstr "Bitiş" #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:404 msgid "Last Seen" -msgstr "" +msgstr "Son Görülme" #: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:65 -msgid "bars" -msgstr "" +#~ msgid "bars" +#~ msgstr "bars" #: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:66 -msgid "oval" -msgstr "" +#~ msgid "oval" +#~ msgstr "oval" #: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:67 -msgid "dots" -msgstr "" +#~ msgid "dots" +#~ msgstr "dots" #: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:81 -msgid "Theme" -msgstr "" +#~ msgid "Theme" +#~ msgstr "Theme" #: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:87 -msgid "Primary color" -msgstr "Birincil renk" +#~ msgid "Primary color" +#~ msgstr "Primary color" -#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:100 +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:88 +msgid "Bars" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:89 +msgid "Oval" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:90 +msgid "Dots" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:101 +msgid "Display Settings" +msgstr "Görüntü Ayarları" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:107 +msgid "Language" +msgstr "Dil" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:115 +msgid "Use pseudo language" +msgstr "Sahte dil kullanın" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:122 +msgid "Color Mode" +msgstr "Renk Modu" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:133 +msgid "Highlight color" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:145 +msgid "Example" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:151 msgid "White color" msgstr "Beyaz" -#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:108 +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:167 msgid "Black color" msgstr "Siyah" -#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:116 +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:183 msgid "Border Radius" msgstr "Kenarlık Yarıçapı" -#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:132 +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:199 msgid "Loader" msgstr "Yükleyici" @@ -3673,89 +4400,156 @@ msgstr "Yükleyici" #~ msgid "Advanced Amininistrative Options for InvenTree" #~ msgstr "Advanced Amininistrative Options for InvenTree" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:104 +#: src/pages/Index/Settings/AdminCenter/CurrencyManagmentPanel.tsx:27 +#: src/tables/ColumnRenderers.tsx:262 +msgid "Currency" +msgstr "Para Birimi" + +#: src/pages/Index/Settings/AdminCenter/CurrencyManagmentPanel.tsx:32 +msgid "Rate" +msgstr "Kur" + +#: src/pages/Index/Settings/AdminCenter/CurrencyManagmentPanel.tsx:44 +msgid "Exchange rates updated" +msgstr "Döviz kurları güncellendi" + +#: src/pages/Index/Settings/AdminCenter/CurrencyManagmentPanel.tsx:50 +msgid "Exchange rate update error" +msgstr "Döviz kuru güncelleme hatası" + +#: src/pages/Index/Settings/AdminCenter/CurrencyManagmentPanel.tsx:62 +msgid "Refresh currency exchange rates" +msgstr "Döviz kurlarını yenile" + +#: src/pages/Index/Settings/AdminCenter/CurrencyManagmentPanel.tsx:99 +msgid "Last fetched" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/CurrencyManagmentPanel.tsx:100 +msgid "Base currency" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:115 msgid "Data Import" +msgstr "Veri İçe Aktarma" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:121 +msgid "Barcode Scans" msgstr "" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:110 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:127 msgid "Background Tasks" -msgstr "" - -#: src/pages/Index/Settings/AdminCenter/Index.tsx:116 -msgid "Error Reports" -msgstr "" - -#: src/pages/Index/Settings/AdminCenter/Index.tsx:122 -msgid "Currencies" -msgstr "" +msgstr "Arka Plan Görevleri" #: src/pages/Index/Settings/AdminCenter/Index.tsx:127 #~ msgid "Templates" #~ msgstr "Templates" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:140 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:133 +msgid "Error Reports" +msgstr "Hata Raporları" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:139 +msgid "Currencies" +msgstr "Para Birimleri" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:157 +msgid "Custom States" +msgstr "Özel Durumlar" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:163 +#: src/pages/Index/Settings/AdminCenter/UnitManagmentPanel.tsx:58 msgid "Custom Units" -msgstr "" +msgstr "Özel Birimler" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:146 -#: src/pages/part/CategoryDetail.tsx:264 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:169 +#: src/pages/part/CategoryDetail.tsx:269 msgid "Part Parameters" -msgstr "" - -#: src/pages/Index/Settings/AdminCenter/Index.tsx:152 -msgid "Category Parameters" -msgstr "" - -#: src/pages/Index/Settings/AdminCenter/Index.tsx:170 -msgid "Location Types" -msgstr "" +msgstr "Parça Parametreleri" #: src/pages/Index/Settings/AdminCenter/Index.tsx:170 #~ msgid "Location types" #~ msgstr "Location types" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:182 -#: src/tables/machine/MachineTypeTable.tsx:287 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:175 +msgid "Category Parameters" +msgstr "Sınıf Parametreleri" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:181 +msgid "Stocktake" +msgstr "Stok Sayımı" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:199 +msgid "Location Types" +msgstr "Konum Türleri" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:211 +#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:48 +#: src/tables/machine/MachineTypeTable.tsx:308 msgid "Machines" -msgstr "" +msgstr "Makineler" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:192 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:221 msgid "Quick Actions" -msgstr "" +msgstr "Hızlı Eylemler" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:197 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:226 msgid "Add a new user" -msgstr "" +msgstr "Yeni bir kullanıcı ekle" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:222 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:252 msgid "Advanced Options" -msgstr "" +msgstr "Gelişmiş Seçenekler" #: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:43 -msgid "Machine types" -msgstr "" +#~ msgid "Machine types" +#~ msgstr "Machine types" #: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:53 -msgid "Machine Error Stack" +#~ msgid "Machine Error Stack" +#~ msgstr "Machine Error Stack" + +#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:56 +msgid "Machine Types" msgstr "" #: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:62 -msgid "There are no machine registry errors." +#~ msgid "There are no machine registry errors." +#~ msgstr "There are no machine registry errors." + +#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:64 +msgid "Machine Errors" msgstr "" -#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:28 -#: src/tables/settings/UserTable.tsx:119 +#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:77 +msgid "Registry Registry Errors" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:80 +msgid "There are machine registry errors" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:86 +msgid "Machine Registry Errors" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:89 +msgid "There are no machine registry errors" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:31 +#: src/tables/settings/UserTable.tsx:118 msgid "Info" -msgstr "" - -#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:32 -msgid "External plugins are not enabled for this InvenTree installation." -msgstr "" +msgstr "Bilgi" #: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:33 #~ msgid "Plugin Error Stack" #~ msgstr "Plugin Error Stack" +#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:35 +msgid "External plugins are not enabled for this InvenTree installation." +msgstr "Bu InvenTree kurulumu için harici eklentiler etkinleştirilmedi." + #: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:45 #~ msgid "Warning" #~ msgstr "Warning" @@ -3764,36 +4558,48 @@ msgstr "" #~ msgid "Changing the settings below require you to immediately restart the server. Do not change this while under active usage." #~ msgstr "Changing the settings below require you to immediately restart the server. Do not change this while under active usage." -#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:50 +#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:73 msgid "Plugin Errors" +msgstr "Eklenti Hataları" + +#: src/pages/Index/Settings/AdminCenter/ReportTemplatePanel.tsx:17 +msgid "Page Size" msgstr "" -#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:59 -msgid "Plugin Settings" +#: src/pages/Index/Settings/AdminCenter/ReportTemplatePanel.tsx:20 +msgid "Landscape" msgstr "" -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:53 -msgid "Background Worker Not Running" +#: src/pages/Index/Settings/AdminCenter/ReportTemplatePanel.tsx:26 +msgid "Attach to Model" msgstr "" -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:54 +#: src/pages/Index/Settings/AdminCenter/StocktakePanel.tsx:25 +msgid "Stocktake Reports" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:30 msgid "The background task manager service is not running. Contact your system administrator." -msgstr "" +msgstr "Arka plan görev yöneticisi hizmeti çalışmıyor. Sistem yöneticinizle iletişime geçin." -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:60 -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:76 +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:35 +#~ msgid "Background Worker Not Running" +#~ msgstr "Background Worker Not Running" + +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:36 +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:45 msgid "Pending Tasks" -msgstr "" +msgstr "Bekleyen Görevler" -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:64 -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:84 +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:37 +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:53 msgid "Scheduled Tasks" -msgstr "" +msgstr "Planlanmış Görevler" -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:68 -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:92 +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:38 +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:61 msgid "Failed Tasks" -msgstr "" +msgstr "Başarısız Görevler" #: src/pages/Index/Settings/AdminCenter/TemplateManagementPanel.tsx:39 #~ msgid "Label" @@ -3811,11 +4617,6 @@ msgstr "" #~ msgid "Reports" #~ msgstr "Reports" -#: src/pages/Index/Settings/AdminCenter/TemplateManagementPanel.tsx:89 -#: src/pages/build/BuildDetail.tsx:373 -#~ msgid "Report" -#~ msgstr "Report" - #: src/pages/Index/Settings/AdminCenter/TemplateManagementPanel.tsx:99 #~ msgid "Purchase order" #~ msgstr "Purchase order" @@ -3836,25 +4637,37 @@ msgstr "" #~ msgid "Stock location" #~ msgstr "Stock location" +#: src/pages/Index/Settings/AdminCenter/UnitManagmentPanel.tsx:21 +msgid "Alias" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/UnitManagmentPanel.tsx:22 +msgid "Dimensionless" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/UnitManagmentPanel.tsx:66 +msgid "All units" +msgstr "" + #: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:32 msgid "Select settings relevant for user lifecycle. More available in" -msgstr "" +msgstr "Kullanıcı yaşam döngüsüyle ilgili ayarları seçin. Daha fazlası şurada mevcut:" #: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:37 -msgid "System settings" -msgstr "" +#~ msgid "System settings" +#~ msgstr "System settings" -#: src/pages/Index/Settings/SystemSettings.tsx:67 +#: src/pages/Index/Settings/SystemSettings.tsx:66 msgid "Login" -msgstr "" +msgstr "Giriş" -#: src/pages/Index/Settings/SystemSettings.tsx:93 +#: src/pages/Index/Settings/SystemSettings.tsx:92 msgid "Barcodes" -msgstr "" +msgstr "Barkodlar" -#: src/pages/Index/Settings/SystemSettings.tsx:115 +#: src/pages/Index/Settings/SystemSettings.tsx:116 msgid "Pricing" -msgstr "" +msgstr "Fiyatlandırma" #: src/pages/Index/Settings/SystemSettings.tsx:118 #~ msgid "Physical Units" @@ -3864,64 +4677,46 @@ msgstr "" #~ msgid "Exchange Rates" #~ msgstr "Exchange Rates" -#: src/pages/Index/Settings/SystemSettings.tsx:150 +#: src/pages/Index/Settings/SystemSettings.tsx:151 msgid "Labels" -msgstr "" +msgstr "Etiketler" -#: src/pages/Index/Settings/SystemSettings.tsx:156 -#: src/pages/Index/Settings/UserSettings.tsx:132 +#: src/pages/Index/Settings/SystemSettings.tsx:157 +#: src/pages/Index/Settings/UserSettings.tsx:133 msgid "Reporting" -msgstr "" +msgstr "Raporlama" #: src/pages/Index/Settings/SystemSettings.tsx:231 -#: src/pages/part/PartDetail.tsx:682 -msgid "Stocktake" -msgstr "" - -#: src/pages/Index/Settings/SystemSettings.tsx:237 -#: src/pages/build/BuildDetail.tsx:554 -#: src/pages/build/BuildIndex.tsx:22 -#: src/pages/part/PartDetail.tsx:616 -#: src/pages/sales/SalesOrderDetail.tsx:333 +#: src/pages/build/BuildIndex.tsx:27 +#: src/pages/part/PartDetail.tsx:636 +#: src/pages/sales/SalesOrderDetail.tsx:355 msgid "Build Orders" msgstr "Yapım İşi Emirleri" -#: src/pages/Index/Settings/SystemSettings.tsx:318 -msgid "Switch to User Setting" -msgstr "" +#: src/pages/Index/Settings/SystemSettings.tsx:317 +#~ msgid "Switch to User Setting" +#~ msgstr "Switch to User Setting" -#: src/pages/Index/Settings/UserSettings.tsx:34 +#: src/pages/Index/Settings/UserSettings.tsx:35 msgid "Account" -msgstr "" +msgstr "Hesap" -#: src/pages/Index/Settings/UserSettings.tsx:40 +#: src/pages/Index/Settings/UserSettings.tsx:41 msgid "Security" -msgstr "" +msgstr "Güvenlik" -#: src/pages/Index/Settings/UserSettings.tsx:78 +#: src/pages/Index/Settings/UserSettings.tsx:79 msgid "Display Options" -msgstr "" +msgstr "Görüntüleme Seçenekleri" -#: src/pages/Index/Settings/UserSettings.tsx:150 -msgid "Account Settings" -msgstr "" - -#: src/pages/Index/Settings/UserSettings.tsx:158 -msgid "Switch to System Setting" -msgstr "" - -#: src/pages/Index/UserSettings.tsx:103 -#~ msgid "User Settings" -#~ msgstr "User Settings" +#: src/pages/Index/Settings/UserSettings.tsx:159 +#~ msgid "Switch to System Setting" +#~ msgstr "Switch to System Setting" #: src/pages/Logged-In.tsx:24 #~ msgid "Found an exsisting login - using it to log you in." #~ msgstr "Found an exsisting login - using it to log you in." -#: src/pages/NotFound.tsx:17 -#~ msgid "Not Found" -#~ msgstr "Not Found" - #: src/pages/NotFound.tsx:20 #~ msgid "Sorry, this page is not known or was moved." #~ msgstr "Sorry, this page is not known or was moved." @@ -3932,98 +4727,86 @@ msgstr "" #: src/pages/Notifications.tsx:43 msgid "Delete Notifications" -msgstr "" +msgstr "Bildirimleri Sil" #: src/pages/Notifications.tsx:108 msgid "Mark as unread" -msgstr "" +msgstr "Okunmadı olarak imle" #: src/pages/build/BuildDetail.tsx:80 #~ msgid "Build Status" #~ msgstr "Build Status" -#: src/pages/build/BuildDetail.tsx:102 -#: src/pages/part/PartDetail.tsx:150 +#: src/pages/build/BuildDetail.tsx:97 +#: src/pages/company/ManufacturerPartDetail.tsx:81 +#: src/pages/company/SupplierPartDetail.tsx:91 +#: src/pages/part/PartDetail.tsx:171 +#: src/pages/stock/StockDetail.tsx:122 #: src/tables/bom/BomTable.tsx:118 #: src/tables/bom/UsedInTable.tsx:39 -#: src/tables/build/BuildLineTable.tsx:173 -#: src/tables/build/BuildOrderTable.tsx:55 -#: src/tables/sales/SalesOrderLineItemTable.tsx:62 -#: src/tables/stock/StockItemTable.tsx:53 +#: src/tables/build/BuildAllocatedStockTable.tsx:104 +#: src/tables/build/BuildLineTable.tsx:324 +#: src/tables/build/BuildOrderTable.tsx:64 +#: src/tables/sales/SalesOrderLineItemTable.tsx:70 +#: src/tables/stock/StockItemTable.tsx:54 msgid "IPN" msgstr "DPN" -#: src/pages/build/BuildDetail.tsx:115 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:121 -#: src/pages/sales/ReturnOrderDetail.tsx:95 -#: src/pages/sales/SalesOrderDetail.tsx:101 -#: src/tables/ColumnRenderers.tsx:121 -#: src/tables/build/BuildAllocatedStockTable.tsx:90 -#: src/tables/build/BuildLineTable.tsx:184 +#: src/pages/build/BuildDetail.tsx:110 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:115 +#: src/pages/sales/ReturnOrderDetail.tsx:86 +#: src/pages/sales/SalesOrderDetail.tsx:95 +#: src/tables/ColumnRenderers.tsx:132 +#: src/tables/build/BuildAllocatedStockTable.tsx:111 +#: src/tables/build/BuildLineTable.tsx:335 msgid "Reference" -msgstr "" +msgstr "Referans" -#: src/pages/build/BuildDetail.tsx:121 -#: src/pages/company/CompanyDetail.tsx:90 -#: src/pages/company/ManufacturerPartDetail.tsx:83 -#: src/pages/company/SupplierPartDetail.tsx:96 -#: src/pages/part/CategoryDetail.tsx:101 -#: src/pages/part/PartDetail.tsx:157 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:142 -#: src/pages/sales/ReturnOrderDetail.tsx:115 -#: src/pages/sales/SalesOrderDetail.tsx:121 -#: src/pages/stock/LocationDetail.tsx:109 -#: src/tables/ColumnRenderers.tsx:81 -#: src/tables/bom/UsedInTable.tsx:44 -#: src/tables/build/BuildAllocatedStockTable.tsx:70 -#: src/tables/build/BuildLineTable.tsx:178 -#: src/tables/machine/MachineTypeTable.tsx:69 -#: src/tables/machine/MachineTypeTable.tsx:112 -#: src/tables/machine/MachineTypeTable.tsx:219 -#: src/tables/machine/MachineTypeTable.tsx:323 -#: src/tables/part/RelatedPartTable.tsx:64 -#: src/tables/plugin/PluginListTable.tsx:129 -#: src/tables/plugin/PluginListTable.tsx:276 -#: src/tables/sales/SalesOrderAllocationTable.tsx:56 -#: src/tables/sales/SalesOrderLineItemTable.tsx:67 -#: src/tables/stock/LocationTypesTable.tsx:74 -msgid "Description" -msgstr "Açıklama" - -#: src/pages/build/BuildDetail.tsx:129 +#: src/pages/build/BuildDetail.tsx:124 msgid "Parent Build" -msgstr "" +msgstr "Üst Yapı" -#: src/pages/build/BuildDetail.tsx:140 +#: src/pages/build/BuildDetail.tsx:135 msgid "Build Quantity" -msgstr "" +msgstr "Yapı Miktarı" -#: src/pages/build/BuildDetail.tsx:148 -#: src/pages/build/BuildDetail.tsx:274 +#: src/pages/build/BuildDetail.tsx:143 +#: src/pages/build/BuildDetail.tsx:277 msgid "Completed Outputs" -msgstr "" +msgstr "Tamamlanan Çıkışlar" -#: src/pages/build/BuildDetail.tsx:165 -#: src/tables/build/BuildOrderTable.tsx:151 +#: src/pages/build/BuildDetail.tsx:160 +#: src/tables/build/BuildOrderTable.tsx:142 msgid "Issued By" -msgstr "" +msgstr "Veren" -#: src/pages/build/BuildDetail.tsx:172 -#: src/pages/part/PartDetail.tsx:365 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:220 -#: src/pages/sales/ReturnOrderDetail.tsx:199 -#: src/pages/sales/SalesOrderDetail.tsx:208 -#: src/tables/build/BuildOrderTable.tsx:157 -#: src/tables/purchasing/PurchaseOrderTable.tsx:75 -#: src/tables/sales/ReturnOrderTable.tsx:66 -#: src/tables/sales/SalesOrderTable.tsx:73 +#: src/pages/build/BuildDetail.tsx:167 +#: src/pages/part/PartDetail.tsx:406 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:244 +#: src/pages/sales/ReturnOrderDetail.tsx:216 +#: src/pages/sales/SalesOrderDetail.tsx:226 +#: src/tables/build/BuildOrderTable.tsx:148 +#: src/tables/purchasing/PurchaseOrderTable.tsx:76 +#: src/tables/sales/ReturnOrderTable.tsx:74 +#: src/tables/sales/SalesOrderTable.tsx:74 msgid "Responsible" -msgstr "" +msgstr "Sorumlu" -#: src/pages/build/BuildDetail.tsx:179 -#: src/tables/settings/PendingTasksTable.tsx:32 +#: src/pages/build/BuildDetail.tsx:174 +#: src/tables/settings/PendingTasksTable.tsx:36 msgid "Created" -msgstr "" +msgstr "Oluşturuldu" + +#: src/pages/build/BuildDetail.tsx:181 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:229 +#: src/pages/sales/ReturnOrderDetail.tsx:201 +#: src/pages/sales/SalesOrderDetail.tsx:212 +#: src/tables/ColumnRenderers.tsx:226 +#: src/tables/part/PartPurchaseOrdersTable.tsx:100 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:135 +#: src/tables/sales/SalesOrderLineItemTable.tsx:107 +msgid "Target Date" +msgstr "Hedef Tarih" #: src/pages/build/BuildDetail.tsx:185 #: src/pages/part/PartDetail.tsx:269 @@ -4031,26 +4814,16 @@ msgstr "" #~ msgid "View part barcode" #~ msgstr "View part barcode" -#: src/pages/build/BuildDetail.tsx:186 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:213 -#: src/pages/sales/ReturnOrderDetail.tsx:192 -#: src/pages/sales/SalesOrderDetail.tsx:201 -#: src/tables/ColumnRenderers.tsx:212 -#: src/tables/part/PartPurchaseOrdersTable.tsx:99 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:110 -#: src/tables/sales/SalesOrderLineItemTable.tsx:99 -msgid "Target Date" -msgstr "" +#: src/pages/build/BuildDetail.tsx:188 +#: src/tables/sales/SalesOrderLineItemTable.tsx:281 +msgid "Completed" +msgstr "Tamamlandı" #: src/pages/build/BuildDetail.tsx:190 #: src/pages/part/PartDetail.tsx:274 #~ msgid "Link custom barcode to part" #~ msgstr "Link custom barcode to part" -#: src/pages/build/BuildDetail.tsx:193 -msgid "Completed" -msgstr "" - #: src/pages/build/BuildDetail.tsx:196 #: src/pages/part/PartDetail.tsx:280 #~ msgid "Unlink custom barcode from part" @@ -4060,17 +4833,13 @@ msgstr "" #~ msgid "Build Order updated" #~ msgstr "Build Order updated" -#: src/pages/build/BuildDetail.tsx:205 -msgid "Source Location" -msgstr "" - -#: src/pages/build/BuildDetail.tsx:206 +#: src/pages/build/BuildDetail.tsx:209 msgid "Any location" -msgstr "" +msgstr "Herhangi bir konum" -#: src/pages/build/BuildDetail.tsx:213 +#: src/pages/build/BuildDetail.tsx:216 msgid "Destination Location" -msgstr "" +msgstr "Hedef Konum" #: src/pages/build/BuildDetail.tsx:221 #~ msgid "Edit build order" @@ -4084,208 +4853,184 @@ msgstr "" #~ msgid "Delete build order" #~ msgstr "Delete build order" -#: src/pages/build/BuildDetail.tsx:251 +#: src/pages/build/BuildDetail.tsx:254 msgid "Build Details" -msgstr "" +msgstr "Yapı Ayrıntıları" -#: src/pages/build/BuildDetail.tsx:257 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:258 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:267 -#: src/pages/sales/ReturnOrderDetail.tsx:130 -#: src/pages/sales/ReturnOrderDetail.tsx:237 -#: src/pages/sales/ReturnOrderDetail.tsx:246 -#: src/pages/sales/SalesOrderDetail.tsx:272 -#: src/pages/sales/SalesOrderDetail.tsx:281 +#: src/pages/build/BuildDetail.tsx:260 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:282 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:291 +#: src/pages/sales/ReturnOrderDetail.tsx:122 +#: src/pages/sales/ReturnOrderDetail.tsx:254 +#: src/pages/sales/ReturnOrderDetail.tsx:263 +#: src/pages/sales/SalesOrderDetail.tsx:294 +#: src/pages/sales/SalesOrderDetail.tsx:303 msgid "Line Items" -msgstr "" +msgstr "Satır Ögeleri" -#: src/pages/build/BuildDetail.tsx:267 +#: src/pages/build/BuildDetail.tsx:266 msgid "Incomplete Outputs" -msgstr "" +msgstr "Tamamlanmayan Çıktılar" -#: src/pages/build/BuildDetail.tsx:289 -#: src/pages/sales/SalesOrderDetail.tsx:319 +#: src/pages/build/BuildDetail.tsx:292 +#: src/pages/sales/SalesOrderDetail.tsx:341 msgid "Allocated Stock" -msgstr "" +msgstr "Ayrılan Stok" -#: src/pages/build/BuildDetail.tsx:299 +#: src/pages/build/BuildDetail.tsx:302 msgid "Consumed Stock" -msgstr "" +msgstr "Tüketilen Stok" -#: src/pages/build/BuildDetail.tsx:313 +#: src/pages/build/BuildDetail.tsx:316 msgid "Child Build Orders" -msgstr "" +msgstr "Alt Yapı Siparişleri" #: src/pages/build/BuildDetail.tsx:326 -#: src/tables/build/BuildOutputTable.tsx:384 -#: src/tables/stock/StockItemTestResultTable.tsx:150 +#: src/tables/build/BuildOutputTable.tsx:532 +#: src/tables/stock/StockItemTestResultTable.tsx:156 msgid "Test Results" -msgstr "" +msgstr "Test Sonuçları" #: src/pages/build/BuildDetail.tsx:337 -#: src/pages/part/PartDetail.tsx:699 +#: src/pages/part/PartDetail.tsx:740 msgid "Test Statistics" -msgstr "" +msgstr "Test İstatistikleri" -#: src/pages/build/BuildDetail.tsx:351 -#: src/pages/company/CompanyDetail.tsx:259 -#: src/pages/company/ManufacturerPartDetail.tsx:179 -#: src/pages/part/PartDetail.tsx:721 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:309 -#: src/pages/sales/ReturnOrderDetail.tsx:274 -#: src/pages/sales/SalesOrderDetail.tsx:343 -#: src/pages/stock/StockDetail.tsx:385 -msgid "Attachments" -msgstr "" - -#: src/pages/build/BuildDetail.tsx:359 -#: src/pages/company/CompanyDetail.tsx:270 -#: src/pages/company/ManufacturerPartDetail.tsx:190 -#: src/pages/company/SupplierPartDetail.tsx:257 -#: src/pages/part/PartDetail.tsx:729 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:320 -#: src/pages/sales/ReturnOrderDetail.tsx:285 -#: src/pages/sales/SalesOrderDetail.tsx:354 -#: src/pages/stock/StockDetail.tsx:396 -#: src/tables/build/BuildOrderTestTable.tsx:142 -#: src/tables/stock/StockTrackingTable.tsx:189 -msgid "Notes" -msgstr "" +#: src/pages/build/BuildDetail.tsx:365 +msgid "Edit Build Order" +msgstr "Yapı Siparişini Düzenle" #: src/pages/build/BuildDetail.tsx:368 #~ msgid "Reporting Actions" #~ msgstr "Reporting Actions" +#: src/pages/build/BuildDetail.tsx:372 +#: src/tables/build/BuildOrderTable.tsx:173 +#: src/tables/build/BuildOrderTable.tsx:188 +msgid "Add Build Order" +msgstr "Yapı Siparişi Ekle" + #: src/pages/build/BuildDetail.tsx:374 #~ msgid "Print build report" #~ msgstr "Print build report" -#: src/pages/build/BuildDetail.tsx:377 -msgid "Edit Build Order" -msgstr "" - -#: src/pages/build/BuildDetail.tsx:384 -#: src/tables/build/BuildOrderTable.tsx:172 -#: src/tables/build/BuildOrderTable.tsx:187 -msgid "Add Build Order" -msgstr "" - -#: src/pages/build/BuildDetail.tsx:398 +#: src/pages/build/BuildDetail.tsx:386 msgid "Cancel Build Order" -msgstr "" +msgstr "Yapı Siparişini İptal Et" -#: src/pages/build/BuildDetail.tsx:400 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:348 -#: src/pages/sales/SalesOrderDetail.tsx:380 -msgid "Order cancelled" -msgstr "" - -#: src/pages/build/BuildDetail.tsx:401 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:347 -#: src/pages/sales/ReturnOrderDetail.tsx:346 -#: src/pages/sales/SalesOrderDetail.tsx:379 -msgid "Cancel this order" -msgstr "" - -#: src/pages/build/BuildDetail.tsx:410 -msgid "Hold Build Order" -msgstr "" - -#: src/pages/build/BuildDetail.tsx:412 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:355 +#: src/pages/build/BuildDetail.tsx:388 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:357 #: src/pages/sales/ReturnOrderDetail.tsx:354 #: src/pages/sales/SalesOrderDetail.tsx:387 -msgid "Place this order on hold" -msgstr "" +msgid "Order cancelled" +msgstr "Sipariş iptal edildi" -#: src/pages/build/BuildDetail.tsx:413 +#: src/pages/build/BuildDetail.tsx:389 #: src/pages/purchasing/PurchaseOrderDetail.tsx:356 -#: src/pages/sales/ReturnOrderDetail.tsx:355 -#: src/pages/sales/SalesOrderDetail.tsx:388 -msgid "Order placed on hold" -msgstr "" +#: src/pages/sales/ReturnOrderDetail.tsx:353 +#: src/pages/sales/SalesOrderDetail.tsx:386 +msgid "Cancel this order" +msgstr "Bu siparişi iptal et" -#: src/pages/build/BuildDetail.tsx:418 -msgid "Issue Build Order" -msgstr "" +#: src/pages/build/BuildDetail.tsx:398 +msgid "Hold Build Order" +msgstr "Yapı Siparişini Beklet" -#: src/pages/build/BuildDetail.tsx:420 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:339 -#: src/pages/sales/ReturnOrderDetail.tsx:338 -#: src/pages/sales/SalesOrderDetail.tsx:371 -msgid "Issue this order" -msgstr "" +#: src/pages/build/BuildDetail.tsx:400 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:364 +#: src/pages/sales/ReturnOrderDetail.tsx:361 +#: src/pages/sales/SalesOrderDetail.tsx:394 +msgid "Place this order on hold" +msgstr "Bu yapı siparişini beklemeye al" -#: src/pages/build/BuildDetail.tsx:421 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:340 -#: src/pages/sales/ReturnOrderDetail.tsx:339 -#: src/pages/sales/SalesOrderDetail.tsx:372 -msgid "Order issued" -msgstr "" - -#: src/pages/build/BuildDetail.tsx:426 -msgid "Complete Build Order" -msgstr "" - -#: src/pages/build/BuildDetail.tsx:428 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:368 +#: src/pages/build/BuildDetail.tsx:401 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:365 #: src/pages/sales/ReturnOrderDetail.tsx:362 #: src/pages/sales/SalesOrderDetail.tsx:395 +msgid "Order placed on hold" +msgstr "Beklemeye alınan sipariş" + +#: src/pages/build/BuildDetail.tsx:406 +msgid "Issue Build Order" +msgstr "Yapı Siparişi Ver" + +#: src/pages/build/BuildDetail.tsx:408 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:348 +#: src/pages/sales/ReturnOrderDetail.tsx:345 +#: src/pages/sales/SalesOrderDetail.tsx:378 +msgid "Issue this order" +msgstr "Bu siparişi ver" + +#: src/pages/build/BuildDetail.tsx:409 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:349 +#: src/pages/sales/ReturnOrderDetail.tsx:346 +#: src/pages/sales/SalesOrderDetail.tsx:379 +msgid "Order issued" +msgstr "Sipariş verildi" + +#: src/pages/build/BuildDetail.tsx:414 +msgid "Complete Build Order" +msgstr "Yapı Siparişini Tamamla" + +#: src/pages/build/BuildDetail.tsx:416 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:377 +#: src/pages/sales/ReturnOrderDetail.tsx:369 +#: src/pages/sales/SalesOrderDetail.tsx:402 msgid "Mark this order as complete" -msgstr "" +msgstr "Bu siparişi tamamlandı olarak imle" -#: src/pages/build/BuildDetail.tsx:429 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:362 -#: src/pages/sales/ReturnOrderDetail.tsx:363 -#: src/pages/sales/SalesOrderDetail.tsx:396 +#: src/pages/build/BuildDetail.tsx:417 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:371 +#: src/pages/sales/ReturnOrderDetail.tsx:370 +#: src/pages/sales/SalesOrderDetail.tsx:403 msgid "Order completed" -msgstr "" +msgstr "Sipariş tamamlandı" -#: src/pages/build/BuildDetail.tsx:460 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:391 -#: src/pages/sales/ReturnOrderDetail.tsx:392 -#: src/pages/sales/SalesOrderDetail.tsx:425 -msgid "Issue Order" -msgstr "" - -#: src/pages/build/BuildDetail.tsx:467 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:398 +#: src/pages/build/BuildDetail.tsx:448 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:400 #: src/pages/sales/ReturnOrderDetail.tsx:399 -#: src/pages/sales/SalesOrderDetail.tsx:439 +#: src/pages/sales/SalesOrderDetail.tsx:432 +msgid "Issue Order" +msgstr "Sipariş Ver" + +#: src/pages/build/BuildDetail.tsx:455 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:407 +#: src/pages/sales/ReturnOrderDetail.tsx:406 +#: src/pages/sales/SalesOrderDetail.tsx:446 msgid "Complete Order" -msgstr "" +msgstr "Siparişi Tamamla" -#: src/pages/build/BuildDetail.tsx:496 +#: src/pages/build/BuildDetail.tsx:473 msgid "Build Order Actions" -msgstr "" +msgstr "Yapım Siprişi Eylemleri" -#: src/pages/build/BuildDetail.tsx:502 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:432 -#: src/pages/sales/ReturnOrderDetail.tsx:433 -#: src/pages/sales/SalesOrderDetail.tsx:474 +#: src/pages/build/BuildDetail.tsx:478 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:429 +#: src/pages/sales/ReturnOrderDetail.tsx:428 +#: src/pages/sales/SalesOrderDetail.tsx:469 msgid "Edit order" -msgstr "" +msgstr "Siparişi düzenle" -#: src/pages/build/BuildDetail.tsx:506 +#: src/pages/build/BuildDetail.tsx:482 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:437 +#: src/pages/sales/ReturnOrderDetail.tsx:434 +#: src/pages/sales/SalesOrderDetail.tsx:474 +msgid "Duplicate order" +msgstr "Siparişi çoğalt" + +#: src/pages/build/BuildDetail.tsx:486 #: src/pages/purchasing/PurchaseOrderDetail.tsx:440 #: src/pages/sales/ReturnOrderDetail.tsx:439 -#: src/pages/sales/SalesOrderDetail.tsx:479 -msgid "Duplicate order" -msgstr "" +#: src/pages/sales/SalesOrderDetail.tsx:477 +msgid "Hold order" +msgstr "Siparişi beklet" -#: src/pages/build/BuildDetail.tsx:510 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:443 +#: src/pages/build/BuildDetail.tsx:491 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:445 #: src/pages/sales/ReturnOrderDetail.tsx:444 #: src/pages/sales/SalesOrderDetail.tsx:482 -msgid "Hold order" -msgstr "" - -#: src/pages/build/BuildDetail.tsx:515 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:448 -#: src/pages/sales/ReturnOrderDetail.tsx:449 -#: src/pages/sales/SalesOrderDetail.tsx:487 msgid "Cancel order" -msgstr "" +msgstr "Siparişi iptal et" #: src/pages/build/BuildIndex.tsx:23 #~ msgid "Build order created" @@ -4295,56 +5040,60 @@ msgstr "" #~ msgid "New Build Order" #~ msgstr "New Build Order" -#: src/pages/company/CompanyDetail.tsx:104 +#: src/pages/company/CompanyDetail.tsx:95 +msgid "Website" +msgstr "Web Sitesi" + +#: src/pages/company/CompanyDetail.tsx:103 msgid "Phone Number" -msgstr "" +msgstr "Telefon Numarası" -#: src/pages/company/CompanyDetail.tsx:111 +#: src/pages/company/CompanyDetail.tsx:110 msgid "Email Address" -msgstr "" +msgstr "E-posta Adresi" -#: src/pages/company/CompanyDetail.tsx:121 +#: src/pages/company/CompanyDetail.tsx:120 msgid "Default Currency" -msgstr "" +msgstr "Varsayılan Para Birimi" -#: src/pages/company/CompanyDetail.tsx:126 +#: src/pages/company/CompanyDetail.tsx:125 #: src/pages/company/SupplierDetail.tsx:8 -#: src/pages/company/SupplierPartDetail.tsx:120 -#: src/pages/company/SupplierPartDetail.tsx:206 -#: src/pages/company/SupplierPartDetail.tsx:351 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:136 -#: src/tables/company/CompanyTable.tsx:100 +#: src/pages/company/SupplierPartDetail.tsx:125 +#: src/pages/company/SupplierPartDetail.tsx:218 +#: src/pages/company/SupplierPartDetail.tsx:340 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:130 +#: src/tables/company/CompanyTable.tsx:101 #: src/tables/part/PartPurchaseOrdersTable.tsx:42 -#: src/tables/purchasing/PurchaseOrderTable.tsx:88 +#: src/tables/purchasing/PurchaseOrderTable.tsx:89 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:36 msgid "Supplier" -msgstr "" +msgstr "Sağlayıcı" -#: src/pages/company/CompanyDetail.tsx:132 +#: src/pages/company/CompanyDetail.tsx:131 #: src/pages/company/ManufacturerDetail.tsx:8 -#: src/pages/company/ManufacturerPartDetail.tsx:101 -#: src/pages/company/ManufacturerPartDetail.tsx:267 -#: src/pages/company/SupplierPartDetail.tsx:135 -#: src/tables/company/CompanyTable.tsx:105 +#: src/pages/company/ManufacturerPartDetail.tsx:100 +#: src/pages/company/ManufacturerPartDetail.tsx:262 +#: src/pages/company/SupplierPartDetail.tsx:147 +#: src/tables/company/CompanyTable.tsx:106 msgid "Manufacturer" -msgstr "" +msgstr "Üretici" -#: src/pages/company/CompanyDetail.tsx:138 +#: src/pages/company/CompanyDetail.tsx:137 #: src/pages/company/CustomerDetail.tsx:8 -#: src/pages/part/pricing/SaleHistoryPanel.tsx:29 -#: src/pages/sales/ReturnOrderDetail.tsx:109 -#: src/pages/sales/SalesOrderDetail.tsx:115 -#: src/pages/stock/StockDetail.tsx:230 -#: src/tables/company/CompanyTable.tsx:110 -#: src/tables/sales/ReturnOrderTable.tsx:78 -#: src/tables/sales/SalesOrderTable.tsx:108 -#: src/tables/stock/StockTrackingTable.tsx:140 +#: src/pages/part/pricing/SaleHistoryPanel.tsx:31 +#: src/pages/sales/ReturnOrderDetail.tsx:101 +#: src/pages/sales/SalesOrderDetail.tsx:110 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:100 +#: src/pages/stock/StockDetail.tsx:271 +#: src/tables/company/CompanyTable.tsx:111 +#: src/tables/sales/ReturnOrderTable.tsx:97 +#: src/tables/sales/SalesOrderTable.tsx:121 +#: src/tables/stock/StockTrackingTable.tsx:144 msgid "Customer" -msgstr "" +msgstr "Müşteri" #: src/pages/company/CompanyDetail.tsx:172 -#: src/tables/stock/StockTrackingTable.tsx:183 -msgid "Details" +msgid "Company Details" msgstr "" #: src/pages/company/CompanyDetail.tsx:175 @@ -4353,747 +5102,874 @@ msgstr "" #: src/pages/company/CompanyDetail.tsx:178 msgid "Manufactured Parts" -msgstr "" +msgstr "Üretilen Parçalar" #: src/pages/company/CompanyDetail.tsx:187 msgid "Supplied Parts" -msgstr "" +msgstr "Sağlanan Parçalar" #: src/pages/company/CompanyDetail.tsx:189 #~ msgid "Delete company" #~ msgstr "Delete company" -#: src/pages/company/CompanyDetail.tsx:232 +#: src/pages/company/CompanyDetail.tsx:234 msgid "Assigned Stock" -msgstr "" +msgstr "Atanan Parçalar" -#: src/pages/company/CompanyDetail.tsx:290 -#: src/tables/company/CompanyTable.tsx:86 +#: src/pages/company/CompanyDetail.tsx:273 +#: src/tables/company/CompanyTable.tsx:87 msgid "Edit Company" -msgstr "" +msgstr "Şirketi Düzenle" -#: src/pages/company/CompanyDetail.tsx:298 +#: src/pages/company/CompanyDetail.tsx:281 msgid "Delete Company" -msgstr "" +msgstr "Şirketi Sil" -#: src/pages/company/CompanyDetail.tsx:306 +#: src/pages/company/CompanyDetail.tsx:289 msgid "Company Actions" -msgstr "" +msgstr "Şirket Eylemleri" -#: src/pages/company/ManufacturerPartDetail.tsx:76 -#: src/pages/company/SupplierPartDetail.tsx:89 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:128 +#: src/pages/company/ManufacturerPartDetail.tsx:74 +#: src/pages/company/SupplierPartDetail.tsx:84 msgid "Internal Part" -msgstr "" +msgstr "Dahili Parça" -#: src/pages/company/ManufacturerPartDetail.tsx:91 -#: src/pages/company/SupplierPartDetail.tsx:103 -msgid "External Link" -msgstr "" - -#: src/pages/company/ManufacturerPartDetail.tsx:109 -#: src/pages/company/SupplierPartDetail.tsx:144 -#: src/tables/purchasing/ManufacturerPartTable.tsx:56 +#: src/pages/company/ManufacturerPartDetail.tsx:108 +#: src/pages/company/SupplierPartDetail.tsx:156 +#: src/tables/purchasing/ManufacturerPartTable.tsx:58 msgid "Manufacturer Part Number" -msgstr "" +msgstr "Üretici Parça Numarası" -#: src/pages/company/ManufacturerPartDetail.tsx:138 +#: src/pages/company/ManufacturerPartDetail.tsx:125 +#: src/pages/company/SupplierPartDetail.tsx:108 +msgid "External Link" +msgstr "Harici Bağlantı" + +#: src/pages/company/ManufacturerPartDetail.tsx:146 +#: src/pages/company/SupplierPartDetail.tsx:215 +#: src/pages/part/PartDetail.tsx:576 +msgid "Part Details" +msgstr "Parça Ayrıntıları" + +#: src/pages/company/ManufacturerPartDetail.tsx:149 msgid "Manufacturer Details" -msgstr "" +msgstr "Üretici Ayrıntıları" -#: src/pages/company/ManufacturerPartDetail.tsx:147 +#: src/pages/company/ManufacturerPartDetail.tsx:158 msgid "Manufacturer Part Details" -msgstr "" +msgstr "Üretici Parçası Ayrıntıları" -#: src/pages/company/ManufacturerPartDetail.tsx:153 -#: src/pages/part/PartDetail.tsx:532 +#: src/pages/company/ManufacturerPartDetail.tsx:164 +#: src/pages/part/PartDetail.tsx:582 msgid "Parameters" -msgstr "" +msgstr "Parametreler" -#: src/pages/company/ManufacturerPartDetail.tsx:165 -#: src/pages/part/PartDetail.tsx:649 +#: src/pages/company/ManufacturerPartDetail.tsx:176 +#: src/pages/part/PartDetail.tsx:669 #: src/pages/purchasing/PurchasingIndex.tsx:31 msgid "Suppliers" -msgstr "" +msgstr "Sağlayıcılar" -#: src/pages/company/ManufacturerPartDetail.tsx:208 -#: src/tables/purchasing/ManufacturerPartTable.tsx:84 +#: src/pages/company/ManufacturerPartDetail.tsx:204 +#: src/tables/purchasing/ManufacturerPartTable.tsx:86 msgid "Edit Manufacturer Part" -msgstr "" +msgstr "Üretici Parçasını Düzenle" -#: src/pages/company/ManufacturerPartDetail.tsx:215 -#: src/tables/purchasing/ManufacturerPartTable.tsx:72 -#: src/tables/purchasing/ManufacturerPartTable.tsx:103 +#: src/pages/company/ManufacturerPartDetail.tsx:211 +#: src/tables/purchasing/ManufacturerPartTable.tsx:74 +#: src/tables/purchasing/ManufacturerPartTable.tsx:106 msgid "Add Manufacturer Part" -msgstr "" +msgstr "Üretici Parçası Ekle" -#: src/pages/company/ManufacturerPartDetail.tsx:227 -#: src/tables/purchasing/ManufacturerPartTable.tsx:92 +#: src/pages/company/ManufacturerPartDetail.tsx:223 +#: src/tables/purchasing/ManufacturerPartTable.tsx:94 msgid "Delete Manufacturer Part" -msgstr "" +msgstr "Üretici Parçasını Sil" -#: src/pages/company/ManufacturerPartDetail.tsx:240 +#: src/pages/company/ManufacturerPartDetail.tsx:236 msgid "Manufacturer Part Actions" -msgstr "" +msgstr "Üretici Parçası Eylemleri" -#: src/pages/company/ManufacturerPartDetail.tsx:281 +#: src/pages/company/ManufacturerPartDetail.tsx:276 msgid "ManufacturerPart" -msgstr "" +msgstr "Üretici Parçası" -#: src/pages/company/SupplierPartDetail.tsx:163 -#: src/tables/part/PartPurchaseOrdersTable.tsx:71 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:156 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:197 -#: src/tables/purchasing/SupplierPartTable.tsx:131 +#: src/pages/company/SupplierPartDetail.tsx:99 +msgid "Part Description" +msgstr "Parça Açıklaması" + +#: src/pages/company/SupplierPartDetail.tsx:175 +#: src/tables/part/PartPurchaseOrdersTable.tsx:72 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:162 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:203 +#: src/tables/purchasing/SupplierPartTable.tsx:133 msgid "Pack Quantity" -msgstr "" +msgstr "Paket Miktarı" -#: src/pages/company/SupplierPartDetail.tsx:174 +#: src/pages/company/SupplierPartDetail.tsx:186 msgid "Supplier Availability" -msgstr "" +msgstr "Sağlayıcı Kullanılabilirliği" -#: src/pages/company/SupplierPartDetail.tsx:181 +#: src/pages/company/SupplierPartDetail.tsx:193 msgid "Availability Updated" -msgstr "" +msgstr "Kullanılabilirlik Güncellendi" -#: src/pages/company/SupplierPartDetail.tsx:208 +#: src/pages/company/SupplierPartDetail.tsx:220 msgid "Availability" -msgstr "" +msgstr "Kullanılabilirlik" -#: src/pages/company/SupplierPartDetail.tsx:217 +#: src/pages/company/SupplierPartDetail.tsx:229 msgid "Supplier Part Details" -msgstr "" +msgstr "Sağlayıcı Parça Ayrıntıları" -#: src/pages/company/SupplierPartDetail.tsx:223 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:296 +#: src/pages/company/SupplierPartDetail.tsx:235 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:320 msgid "Received Stock" -msgstr "" +msgstr "Alınan Stok" -#: src/pages/company/SupplierPartDetail.tsx:247 -#: src/pages/part/PartPricingPanel.tsx:111 -#: src/pages/part/pricing/PricingOverviewPanel.tsx:121 +#: src/pages/company/SupplierPartDetail.tsx:259 +#: src/pages/part/PartPricingPanel.tsx:116 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:195 msgid "Supplier Pricing" -msgstr "" +msgstr "Sağlayıcı Fiyatlandırması" -#: src/pages/company/SupplierPartDetail.tsx:294 +#: src/pages/company/SupplierPartDetail.tsx:284 msgid "Supplier Part Actions" -msgstr "" +msgstr "Sağlayıcı Parçası Eylemleri" -#: src/pages/company/SupplierPartDetail.tsx:319 -#: src/tables/purchasing/SupplierPartTable.tsx:210 +#: src/pages/company/SupplierPartDetail.tsx:308 +#: src/tables/purchasing/SupplierPartTable.tsx:213 msgid "Edit Supplier Part" -msgstr "" +msgstr "Sağlayıcı Parçasını Düzenle" -#: src/pages/company/SupplierPartDetail.tsx:327 -#: src/tables/purchasing/SupplierPartTable.tsx:218 +#: src/pages/company/SupplierPartDetail.tsx:316 +#: src/tables/purchasing/SupplierPartTable.tsx:221 msgid "Delete Supplier Part" -msgstr "" +msgstr "Sağlayıcı Parçasını Sil" -#: src/pages/company/SupplierPartDetail.tsx:335 -#: src/tables/purchasing/SupplierPartTable.tsx:163 +#: src/pages/company/SupplierPartDetail.tsx:324 +#: src/tables/purchasing/SupplierPartTable.tsx:165 msgid "Add Supplier Part" -msgstr "" +msgstr "Sağlayıcı Parçası Ekle" #: src/pages/part/CategoryDetail.tsx:93 -#: src/pages/stock/LocationDetail.tsx:101 -#: src/tables/settings/ErrorTable.tsx:36 +#: src/pages/stock/LocationDetail.tsx:95 +#: src/tables/settings/ErrorTable.tsx:63 +#: src/tables/settings/ErrorTable.tsx:108 msgid "Path" -msgstr "" +msgstr "Yol" #: src/pages/part/CategoryDetail.tsx:109 msgid "Parent Category" -msgstr "" +msgstr "Üst Sınıf" -#: src/pages/part/CategoryDetail.tsx:126 +#: src/pages/part/CategoryDetail.tsx:132 msgid "Subcategories" -msgstr "" - -#: src/pages/part/CategoryDetail.tsx:133 -#: src/pages/stock/LocationDetail.tsx:141 -#: src/tables/part/PartCategoryTable.tsx:73 -#: src/tables/stock/StockLocationTable.tsx:49 -msgid "Structural" -msgstr "" +msgstr "Alt sınıflar" #: src/pages/part/CategoryDetail.tsx:139 +#: src/pages/stock/LocationDetail.tsx:135 +#: src/tables/part/PartCategoryTable.tsx:85 +#: src/tables/stock/StockLocationTable.tsx:49 +msgid "Structural" +msgstr "Yapısal" + +#: src/pages/part/CategoryDetail.tsx:145 msgid "Parent default location" -msgstr "" +msgstr "Varsayılan üst konum" -#: src/pages/part/CategoryDetail.tsx:146 +#: src/pages/part/CategoryDetail.tsx:152 msgid "Default location" -msgstr "" +msgstr "Varsayılan konum" -#: src/pages/part/CategoryDetail.tsx:157 +#: src/pages/part/CategoryDetail.tsx:163 msgid "Top level part category" -msgstr "" +msgstr "En üst düzey parça sınıfı" -#: src/pages/part/CategoryDetail.tsx:167 -#: src/pages/part/CategoryDetail.tsx:221 -#: src/tables/part/PartCategoryTable.tsx:102 -msgid "Edit Part Category" -msgstr "" - -#: src/pages/part/CategoryDetail.tsx:180 -#: src/pages/stock/LocationDetail.tsx:233 -msgid "Delete items" -msgstr "" - -#: src/pages/part/CategoryDetail.tsx:188 +#: src/pages/part/CategoryDetail.tsx:173 #: src/pages/part/CategoryDetail.tsx:226 +#: src/tables/part/PartCategoryTable.tsx:118 +msgid "Edit Part Category" +msgstr "Parça Sınıfını Düzenle" + +#: src/pages/part/CategoryDetail.tsx:186 +#: src/pages/stock/LocationDetail.tsx:227 +msgid "Delete items" +msgstr "Ögeleri sil" + +#: src/pages/part/CategoryDetail.tsx:194 +#: src/pages/part/CategoryDetail.tsx:231 msgid "Delete Part Category" -msgstr "" - -#: src/pages/part/CategoryDetail.tsx:191 -msgid "Parts Action" -msgstr "" - -#: src/pages/part/CategoryDetail.tsx:192 -msgid "Action for parts in this category" -msgstr "" +msgstr "Parça Sınıfını Sil" #: src/pages/part/CategoryDetail.tsx:197 -msgid "Child Categories Action" -msgstr "" +msgid "Parts Action" +msgstr "Parçalar Eylemi" #: src/pages/part/CategoryDetail.tsx:198 +msgid "Action for parts in this category" +msgstr "Bu sınıftaki parçalar için eylem" + +#: src/pages/part/CategoryDetail.tsx:203 +msgid "Child Categories Action" +msgstr "Alt Sınıflar Eylemi" + +#: src/pages/part/CategoryDetail.tsx:204 msgid "Action for child categories in this category" -msgstr "" +msgstr "Bu sınıftaki alt sınıflar için eylem" -#: src/pages/part/CategoryDetail.tsx:216 +#: src/pages/part/CategoryDetail.tsx:222 msgid "Category Actions" -msgstr "" +msgstr "Sınıf Eylemleri" -#: src/pages/part/CategoryDetail.tsx:238 +#: src/pages/part/CategoryDetail.tsx:243 msgid "Category Details" -msgstr "" +msgstr "Sınıf Ayrıntıları" -#: src/pages/part/PartDetail.tsx:163 -msgid "Variant of" -msgstr "" +#: src/pages/part/PartAllocationPanel.tsx:23 +#: src/pages/stock/StockDetail.tsx:443 +#: src/tables/part/PartTable.tsx:99 +msgid "Build Order Allocations" +msgstr "Yapı Siparişi Ayırmaları" -#: src/pages/part/PartDetail.tsx:170 -msgid "Revision of" -msgstr "" - -#: src/pages/part/PartDetail.tsx:177 -#: src/tables/stock/StockItemTable.tsx:58 -msgid "Revision" -msgstr "" +#: src/pages/part/PartAllocationPanel.tsx:40 +#: src/pages/stock/StockDetail.tsx:458 +#: src/tables/part/PartTable.tsx:108 +msgid "Sales Order Allocations" +msgstr "Satış Siparişi Ayrımaları" #: src/pages/part/PartDetail.tsx:184 +msgid "Variant of" +msgstr "Şunun bir türü" + +#: src/pages/part/PartDetail.tsx:191 +msgid "Revision of" +msgstr "Şunun revizyonu" + +#: src/pages/part/PartDetail.tsx:198 +#: src/tables/stock/StockItemTable.tsx:59 +msgid "Revision" +msgstr "Revizyon" + +#: src/pages/part/PartDetail.tsx:205 #: src/tables/notifications/NotificationsTable.tsx:31 #: src/tables/part/PartCategoryTemplateTable.tsx:67 msgid "Category" msgstr "Kategori" -#: src/pages/part/PartDetail.tsx:190 +#: src/pages/part/PartDetail.tsx:211 msgid "Default Location" -msgstr "" +msgstr "Varsayılan Konum" -#: src/pages/part/PartDetail.tsx:197 +#: src/pages/part/PartDetail.tsx:218 msgid "Category Default Location" -msgstr "" +msgstr "Sınıfın Varsayılan Konumu" -#: src/pages/part/PartDetail.tsx:204 +#: src/pages/part/PartDetail.tsx:225 #: src/tables/purchasing/ManufacturerPartParameterTable.tsx:44 msgid "Units" msgstr "Birim" -#: src/pages/part/PartDetail.tsx:211 -#: src/tables/settings/PendingTasksTable.tsx:42 +#: src/pages/part/PartDetail.tsx:232 +#: src/tables/settings/PendingTasksTable.tsx:46 msgid "Keywords" -msgstr "" - -#: src/pages/part/PartDetail.tsx:218 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:186 -#: src/pages/sales/ReturnOrderDetail.tsx:165 -#: src/pages/sales/SalesOrderDetail.tsx:174 -msgid "Link" -msgstr "Bağlantı" - -#: src/pages/part/PartDetail.tsx:236 -#: src/tables/bom/BomTable.tsx:320 -#: src/tables/build/BuildLineTable.tsx:155 -#: src/tables/part/PartTable.tsx:288 -#: src/tables/sales/SalesOrderLineItemTable.tsx:103 -msgid "Available Stock" -msgstr "" - -#: src/pages/part/PartDetail.tsx:243 -msgid "Variant Stock" -msgstr "" - -#: src/pages/part/PartDetail.tsx:251 -msgid "Minimum Stock" -msgstr "" +msgstr "Anahtar Sözcükler" #: src/pages/part/PartDetail.tsx:257 +#: src/tables/bom/BomTable.tsx:320 +#: src/tables/build/BuildLineTable.tsx:286 +#: src/tables/part/PartTable.tsx:288 +#: src/tables/sales/SalesOrderLineItemTable.tsx:111 +msgid "Available Stock" +msgstr "Mevcut Stok" + +#: src/pages/part/PartDetail.tsx:264 +msgid "Variant Stock" +msgstr "Türev Stoku" + +#: src/pages/part/PartDetail.tsx:272 +msgid "Minimum Stock" +msgstr "Minimum Stok" + +#: src/pages/part/PartDetail.tsx:278 #: src/tables/bom/BomTable.tsx:237 -#: src/tables/build/BuildLineTable.tsx:117 -#: src/tables/sales/SalesOrderLineItemTable.tsx:141 +#: src/tables/build/BuildLineTable.tsx:248 +#: src/tables/sales/SalesOrderLineItemTable.tsx:149 msgid "On order" -msgstr "" +msgstr "Siparişte" -#: src/pages/part/PartDetail.tsx:266 +#: src/pages/part/PartDetail.tsx:285 +msgid "Required for Orders" +msgstr "Siparişler için Gerekli" + +#: src/pages/part/PartDetail.tsx:294 msgid "Allocated to Build Orders" -msgstr "" +msgstr "Yapı Siparişlerine Ayrıldı" -#: src/pages/part/PartDetail.tsx:274 +#: src/pages/part/PartDetail.tsx:305 msgid "Allocated to Sales Orders" -msgstr "" - -#: src/pages/part/PartDetail.tsx:281 -#: src/tables/bom/BomTable.tsx:261 -#: src/tables/bom/BomTable.tsx:293 -msgid "Can Build" -msgstr "" - -#: src/pages/part/PartDetail.tsx:288 -#: src/tables/bom/BomTable.tsx:245 -#: src/tables/part/PartTable.tsx:92 -msgid "Building" -msgstr "" - -#: src/pages/part/PartDetail.tsx:302 -#: src/pages/part/PartDetail.tsx:873 -#: src/tables/part/ParametricPartTable.tsx:228 -#: src/tables/part/PartTable.tsx:184 -msgid "Locked" -msgstr "" - -#: src/pages/part/PartDetail.tsx:308 -msgid "Template Part" -msgstr "" +msgstr "Satış Siparişlerine Ayrıldı" #: src/pages/part/PartDetail.tsx:310 #~ msgid "Edit part" #~ msgstr "Edit part" -#: src/pages/part/PartDetail.tsx:313 -#: src/tables/bom/BomTable.tsx:315 -msgid "Assembled Part" -msgstr "" +#: src/pages/part/PartDetail.tsx:315 +#: src/tables/bom/BomTable.tsx:261 +#: src/tables/bom/BomTable.tsx:293 +msgid "Can Build" +msgstr "Yapılabilir" -#: src/pages/part/PartDetail.tsx:318 -msgid "Component Part" -msgstr "" +#: src/pages/part/PartDetail.tsx:322 +#: src/pages/part/PartDetail.tsx:905 +#: src/pages/stock/StockDetail.tsx:766 +#: src/tables/build/BuildOrderTestTable.tsx:220 +#: src/tables/stock/StockItemTable.tsx:334 +msgid "In Production" +msgstr "Üretimde" #: src/pages/part/PartDetail.tsx:322 #~ msgid "Duplicate part" #~ msgstr "Duplicate part" -#: src/pages/part/PartDetail.tsx:323 -#: src/tables/bom/BomTable.tsx:305 -msgid "Testable Part" -msgstr "" - #: src/pages/part/PartDetail.tsx:327 #~ msgid "Delete part" #~ msgstr "Delete part" -#: src/pages/part/PartDetail.tsx:329 -#: src/tables/bom/BomTable.tsx:310 -msgid "Trackable Part" -msgstr "" +#: src/pages/part/PartDetail.tsx:336 +#: src/tables/part/ParametricPartTable.tsx:228 +#: src/tables/part/PartTable.tsx:184 +msgid "Locked" +msgstr "Kilitli" -#: src/pages/part/PartDetail.tsx:334 -msgid "Purchaseable Part" -msgstr "" +#: src/pages/part/PartDetail.tsx:342 +msgid "Template Part" +msgstr "Şablon Parça" -#: src/pages/part/PartDetail.tsx:339 -msgid "Saleable Part" -msgstr "" - -#: src/pages/part/PartDetail.tsx:344 -msgid "Virtual Part" -msgstr "" +#: src/pages/part/PartDetail.tsx:347 +#: src/tables/bom/BomTable.tsx:315 +msgid "Assembled Part" +msgstr "Birleştirilmiş Parça" #: src/pages/part/PartDetail.tsx:352 -#: src/tables/ColumnRenderers.tsx:220 -msgid "Creation Date" -msgstr "" +msgid "Component Part" +msgstr "Bileşen Parça" #: src/pages/part/PartDetail.tsx:357 +#: src/tables/bom/BomTable.tsx:305 +msgid "Testable Part" +msgstr "Test Edilebilir Parça" + +#: src/pages/part/PartDetail.tsx:363 +#: src/tables/bom/BomTable.tsx:310 +msgid "Trackable Part" +msgstr "İzlenebilir Parça" + +#: src/pages/part/PartDetail.tsx:368 +msgid "Purchaseable Part" +msgstr "Satın Alınabilir Parça" + +#: src/pages/part/PartDetail.tsx:374 +msgid "Saleable Part" +msgstr "Satılabilir Parça" + +#: src/pages/part/PartDetail.tsx:379 +msgid "Virtual Part" +msgstr "Sanal Parça" + +#: src/pages/part/PartDetail.tsx:393 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:215 +#: src/pages/sales/ReturnOrderDetail.tsx:185 +#: src/pages/sales/SalesOrderDetail.tsx:197 +#: src/tables/ColumnRenderers.tsx:234 +msgid "Creation Date" +msgstr "Oluşturma Tarihi" + +#: src/pages/part/PartDetail.tsx:398 msgid "Created By" -msgstr "" +msgstr "Oluşturan" -#: src/pages/part/PartDetail.tsx:372 +#: src/pages/part/PartDetail.tsx:413 msgid "Default Supplier" -msgstr "" +msgstr "Varsayılan Sağlayıcı" -#: src/pages/part/PartDetail.tsx:383 -#: src/pages/part/pricing/BomPricingPanel.tsx:79 +#: src/pages/part/PartDetail.tsx:424 +#: src/pages/part/pricing/BomPricingPanel.tsx:113 #: src/pages/part/pricing/VariantPricingPanel.tsx:95 #: src/tables/part/PartTable.tsx:161 msgid "Price Range" msgstr "Fiyat Aralığı" -#: src/pages/part/PartDetail.tsx:423 -#: src/pages/stock/StockDetail.tsx:135 -msgid "Last Stocktake" -msgstr "" - #: src/pages/part/PartDetail.tsx:462 +msgid "Latest Serial Number" +msgstr "" + +#: src/pages/part/PartDetail.tsx:472 +#: src/pages/stock/StockDetail.tsx:151 +msgid "Last Stocktake" +msgstr "Son Stok Sayımı" + +#: src/pages/part/PartDetail.tsx:511 msgid "Stocktake By" -msgstr "" +msgstr "Stok Sayımını Yapan" -#: src/pages/part/PartDetail.tsx:526 -msgid "Part Details" -msgstr "" - -#: src/pages/part/PartDetail.tsx:557 +#: src/pages/part/PartDetail.tsx:611 msgid "Variants" -msgstr "" +msgstr "Türevler" -#: src/pages/part/PartDetail.tsx:564 -#: src/pages/stock/StockDetail.tsx:307 +#: src/pages/part/PartDetail.tsx:618 +#: src/pages/stock/StockDetail.tsx:430 msgid "Allocations" -msgstr "" +msgstr "Ayırmalar" -#: src/pages/part/PartDetail.tsx:575 -#: src/pages/stock/StockDetail.tsx:318 -#: src/tables/part/PartTable.tsx:99 -msgid "Build Order Allocations" -msgstr "" - -#: src/pages/part/PartDetail.tsx:590 -#: src/pages/stock/StockDetail.tsx:333 -#: src/tables/part/PartTable.tsx:108 -msgid "Sales Order Allocations" -msgstr "" - -#: src/pages/part/PartDetail.tsx:607 +#: src/pages/part/PartDetail.tsx:625 msgid "Bill of Materials" -msgstr "" +msgstr "Malzeme Listesi" -#: src/pages/part/PartDetail.tsx:623 +#: src/pages/part/PartDetail.tsx:643 msgid "Used In" -msgstr "" +msgstr "Şunda Kullanıldı" -#: src/pages/part/PartDetail.tsx:630 +#: src/pages/part/PartDetail.tsx:650 msgid "Part Pricing" -msgstr "" +msgstr "Parça Fiyatlandırma" -#: src/pages/part/PartDetail.tsx:636 +#: src/pages/part/PartDetail.tsx:656 #: src/pages/purchasing/PurchasingIndex.tsx:42 msgid "Manufacturers" -msgstr "" +msgstr "Üreticiler" -#: src/pages/part/PartDetail.tsx:676 +#: src/pages/part/PartDetail.tsx:722 msgid "Scheduling" -msgstr "" +msgstr "Planlama" -#: src/pages/part/PartDetail.tsx:688 +#: src/pages/part/PartDetail.tsx:729 msgid "Test Templates" -msgstr "" +msgstr "Test Şablonları" -#: src/pages/part/PartDetail.tsx:715 +#: src/pages/part/PartDetail.tsx:756 msgid "Related Parts" -msgstr "" +msgstr "İlgili Parçalar" -#: src/pages/part/PartDetail.tsx:849 -#: src/pages/stock/StockDetail.tsx:156 -#: src/pages/stock/StockDetail.tsx:593 -#: src/tables/build/BuildLineTable.tsx:48 +#: src/pages/part/PartDetail.tsx:881 +#: src/pages/stock/StockDetail.tsx:172 +#: src/pages/stock/StockDetail.tsx:783 +#: src/tables/build/BuildLineTable.tsx:179 #: src/tables/part/PartTable.tsx:117 -#: src/tables/stock/StockItemTable.tsx:177 -#: src/tables/stock/StockItemTable.tsx:310 +#: src/tables/stock/StockItemTable.tsx:166 +#: src/tables/stock/StockItemTable.tsx:314 msgid "Available" -msgstr "" +msgstr "Mevcut" -#: src/pages/part/PartDetail.tsx:855 +#: src/pages/part/PartDetail.tsx:887 msgid "No Stock" -msgstr "" +msgstr "Stok Yok" -#: src/pages/part/PartDetail.tsx:861 +#: src/pages/part/PartDetail.tsx:893 +#: src/tables/part/PartTestTemplateTable.tsx:106 +#: src/tables/stock/StockItemTestResultTable.tsx:383 +msgid "Required" +msgstr "Gerekli" + +#: src/pages/part/PartDetail.tsx:899 #: src/tables/bom/BomTable.tsx:325 #: src/tables/part/PartTable.tsx:86 msgid "On Order" -msgstr "" +msgstr "Siparişte" -#: src/pages/part/PartDetail.tsx:867 -#: src/pages/stock/StockDetail.tsx:576 -#: src/tables/build/BuildOrderTestTable.tsx:219 -#: src/tables/stock/StockItemTable.tsx:330 -msgid "In Production" -msgstr "" - -#: src/pages/part/PartDetail.tsx:892 +#: src/pages/part/PartDetail.tsx:924 msgid "Edit Part" -msgstr "" +msgstr "Parçayı Düzenle" -#: src/pages/part/PartDetail.tsx:927 +#: src/pages/part/PartDetail.tsx:959 #: src/tables/part/PartTable.tsx:331 -#: src/tables/part/PartTable.tsx:342 +#: src/tables/part/PartTable.tsx:343 msgid "Add Part" -msgstr "" +msgstr "Parça Ekle" -#: src/pages/part/PartDetail.tsx:941 +#: src/pages/part/PartDetail.tsx:973 msgid "Delete Part" -msgstr "" +msgstr "Parçayı Sil" -#: src/pages/part/PartDetail.tsx:950 +#: src/pages/part/PartDetail.tsx:982 msgid "Deleting this part cannot be reversed" -msgstr "" +msgstr "Bu parçanın silinmesi geri alınamaz" -#: src/pages/part/PartDetail.tsx:999 -#: src/pages/stock/LocationDetail.tsx:324 -#: src/tables/stock/StockItemTable.tsx:444 +#: src/pages/part/PartDetail.tsx:1021 +#: src/pages/stock/LocationDetail.tsx:310 +#: src/tables/stock/StockItemTable.tsx:449 msgid "Stock Actions" -msgstr "" +msgstr "Stok Eylemleri" -#: src/pages/part/PartDetail.tsx:1007 +#: src/pages/part/PartDetail.tsx:1029 msgid "Count part stock" -msgstr "" +msgstr "Parça stokunu say" -#: src/pages/part/PartDetail.tsx:1018 +#: src/pages/part/PartDetail.tsx:1040 msgid "Transfer part stock" -msgstr "" +msgstr "Parça stokunu aktar" -#: src/pages/part/PartDetail.tsx:1027 +#: src/pages/part/PartDetail.tsx:1049 msgid "Part Actions" -msgstr "" +msgstr "Parça Eylemleri" -#: src/pages/part/PartDetail.tsx:1087 +#: src/pages/part/PartDetail.tsx:1113 msgid "Select Part Revision" -msgstr "" +msgstr "Parça Revizyonu Seç" #: src/pages/part/PartIndex.tsx:29 #~ msgid "Categories" #~ msgstr "Categories" -#: src/pages/part/PartPricingPanel.tsx:68 +#: src/pages/part/PartPricingPanel.tsx:72 msgid "No pricing data found for this part." -msgstr "" +msgstr "Bu parça için fiyatlandırma verisi bulunamadı." -#: src/pages/part/PartPricingPanel.tsx:82 -#: src/pages/part/pricing/PricingOverviewPanel.tsx:190 +#: src/pages/part/PartPricingPanel.tsx:87 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:293 msgid "Pricing Overview" -msgstr "" +msgstr "Fiyatlandırma Genel Bakış" -#: src/pages/part/PartPricingPanel.tsx:88 +#: src/pages/part/PartPricingPanel.tsx:93 msgid "Purchase History" -msgstr "" +msgstr "Satın Alma Geçmişi" -#: src/pages/part/PartPricingPanel.tsx:102 -#: src/pages/part/pricing/PricingOverviewPanel.tsx:100 +#: src/pages/part/PartPricingPanel.tsx:107 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:174 msgid "Internal Pricing" -msgstr "" +msgstr "Dahili Fiyatlandırma" -#: src/pages/part/PartPricingPanel.tsx:120 -#: src/pages/part/pricing/PricingOverviewPanel.tsx:107 +#: src/pages/part/PartPricingPanel.tsx:125 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:181 msgid "BOM Pricing" -msgstr "" +msgstr "ML Fiyatlandırması" -#: src/pages/part/PartPricingPanel.tsx:127 -#: src/pages/part/pricing/PricingOverviewPanel.tsx:128 +#: src/pages/part/PartPricingPanel.tsx:132 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:202 msgid "Variant Pricing" -msgstr "" +msgstr "Türev Fiyatlandırması" -#: src/pages/part/PartPricingPanel.tsx:139 -#: src/pages/part/pricing/PricingOverviewPanel.tsx:135 +#: src/pages/part/PartPricingPanel.tsx:144 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:209 msgid "Sale Pricing" -msgstr "" +msgstr "Satış Fiyatlandırması" -#: src/pages/part/PartPricingPanel.tsx:146 -#: src/pages/part/pricing/PricingOverviewPanel.tsx:142 +#: src/pages/part/PartPricingPanel.tsx:151 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:216 msgid "Sale History" +msgstr "Satış Geçmişi" + +#: src/pages/part/PartSchedulingDetail.tsx:47 +#: src/pages/part/PartSchedulingDetail.tsx:299 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:156 +msgid "Maximum" +msgstr "Maksimum" + +#: src/pages/part/PartSchedulingDetail.tsx:50 +#: src/pages/part/PartSchedulingDetail.tsx:289 +msgid "Scheduled" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:58 -#: src/pages/part/pricing/BomPricingPanel.tsx:138 -#: src/tables/ColumnRenderers.tsx:262 +#: src/pages/part/PartSchedulingDetail.tsx:53 +#: src/pages/part/PartSchedulingDetail.tsx:294 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:144 +msgid "Minimum" +msgstr "Minimum" + +#: src/pages/part/PartSchedulingDetail.tsx:68 +msgid "Order" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:92 +msgid "Quantity is speculative" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:101 +msgid "No date available for provided quantity" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:105 +msgid "Date is in the past" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:112 +msgid "Scheduled Quantity" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:240 +msgid "No information available" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:241 +msgid "There is no scheduling information available for the selected part" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:276 +msgid "Expected Quantity" +msgstr "" + +#: src/pages/part/PartStocktakeDetail.tsx:63 +#: src/tables/FilterSelectDrawer.tsx:167 +#: src/tables/FilterSelectDrawer.tsx:174 +#: src/tables/build/BuildOrderTestTable.tsx:135 +#: src/tables/purchasing/ManufacturerPartParameterTable.tsx:38 +#: src/tables/stock/StockItemTestResultTable.tsx:192 +msgid "Value" +msgstr "Değer" + +#: src/pages/part/PartStocktakeDetail.tsx:82 +msgid "Edit Stocktake Entry" +msgstr "" + +#: src/pages/part/PartStocktakeDetail.tsx:90 +msgid "Delete Stocktake Entry" +msgstr "" + +#: src/pages/part/PartStocktakeDetail.tsx:96 +#: src/tables/settings/StocktakeReportTable.tsx:69 +msgid "Generate Stocktake Report" +msgstr "" + +#: src/pages/part/PartStocktakeDetail.tsx:101 +#: src/tables/settings/StocktakeReportTable.tsx:71 +msgid "Stocktake report scheduled" +msgstr "" + +#: src/pages/part/PartStocktakeDetail.tsx:119 +#: src/pages/part/PartStocktakeDetail.tsx:235 +#: src/pages/stock/StockDetail.tsx:303 +#: src/tables/stock/StockItemTable.tsx:249 +msgid "Stock Value" +msgstr "Stok Değeri" + +#: src/pages/part/PartStocktakeDetail.tsx:139 +#: src/tables/settings/StocktakeReportTable.tsx:77 +msgid "New Stocktake Report" +msgstr "" + +#: src/pages/part/PartStocktakeDetail.tsx:258 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:295 +msgid "Minimum Value" +msgstr "Minimum Değer" + +#: src/pages/part/PartStocktakeDetail.tsx:264 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:296 +msgid "Maximum Value" +msgstr "Maksimum Değer" + +#: src/pages/part/pricing/BomPricingPanel.tsx:87 +#: src/pages/part/pricing/BomPricingPanel.tsx:177 +#: src/tables/ColumnRenderers.tsx:276 #: src/tables/bom/BomTable.tsx:185 #: src/tables/general/ExtraLineItemTable.tsx:64 -#: src/tables/purchasing/PurchaseOrderTable.tsx:112 -#: src/tables/sales/ReturnOrderTable.tsx:104 -#: src/tables/sales/SalesOrderLineItemTable.tsx:89 -#: src/tables/sales/SalesOrderTable.tsx:136 +#: src/tables/purchasing/PurchaseOrderTable.tsx:113 +#: src/tables/sales/ReturnOrderTable.tsx:127 +#: src/tables/sales/SalesOrderLineItemTable.tsx:97 +#: src/tables/sales/SalesOrderTable.tsx:149 msgid "Total Price" -msgstr "" +msgstr "Toplam Fiyat" -#: src/pages/part/pricing/BomPricingPanel.tsx:78 -#: src/pages/part/pricing/BomPricingPanel.tsx:102 +#: src/pages/part/pricing/BomPricingPanel.tsx:112 +#: src/pages/part/pricing/BomPricingPanel.tsx:141 #: src/tables/bom/UsedInTable.tsx:49 +#: src/tables/build/BuildLineTable.tsx:296 #: src/tables/part/PartTable.tsx:202 msgid "Component" msgstr "Bileşen" -#: src/pages/part/pricing/BomPricingPanel.tsx:81 -#: src/pages/part/pricing/VariantPricingPanel.tsx:37 -#: src/pages/part/pricing/VariantPricingPanel.tsx:97 -msgid "Minimum Price" -msgstr "" - -#: src/pages/part/pricing/BomPricingPanel.tsx:82 -#: src/pages/part/pricing/VariantPricingPanel.tsx:45 -#: src/pages/part/pricing/VariantPricingPanel.tsx:98 -msgid "Maximum Price" -msgstr "" - #: src/pages/part/pricing/BomPricingPanel.tsx:112 #~ msgid "Minimum Total Price" #~ msgstr "Minimum Total Price" +#: src/pages/part/pricing/BomPricingPanel.tsx:115 +#: src/pages/part/pricing/VariantPricingPanel.tsx:37 +#: src/pages/part/pricing/VariantPricingPanel.tsx:97 +msgid "Minimum Price" +msgstr "Minimum Fiyat" + +#: src/pages/part/pricing/BomPricingPanel.tsx:116 +#: src/pages/part/pricing/VariantPricingPanel.tsx:45 +#: src/pages/part/pricing/VariantPricingPanel.tsx:98 +msgid "Maximum Price" +msgstr "Maximum Fiyat" + #: src/pages/part/pricing/BomPricingPanel.tsx:117 #~ msgid "Maximum Total Price" #~ msgstr "Maximum Total Price" -#: src/pages/part/pricing/BomPricingPanel.tsx:129 -#: src/pages/part/pricing/PriceBreakPanel.tsx:172 -#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:67 -#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:128 -#: src/pages/part/pricing/SupplierPricingPanel.tsx:62 +#: src/pages/part/pricing/BomPricingPanel.tsx:168 +#: src/pages/part/pricing/PriceBreakPanel.tsx:173 +#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:70 +#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:125 +#: src/pages/part/pricing/SupplierPricingPanel.tsx:66 +#: src/pages/stock/StockDetail.tsx:291 #: src/tables/bom/BomTable.tsx:176 #: src/tables/general/ExtraLineItemTable.tsx:56 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:223 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:225 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:92 +#: src/tables/stock/StockItemTable.tsx:239 msgid "Unit Price" -msgstr "" +msgstr "Birim Fiyatı" -#: src/pages/part/pricing/BomPricingPanel.tsx:154 +#: src/pages/part/pricing/BomPricingPanel.tsx:193 #: src/pages/part/pricing/VariantPricingPanel.tsx:53 -#: src/tables/purchasing/SupplierPartTable.tsx:148 +#: src/tables/purchasing/SupplierPartTable.tsx:150 msgid "Updated" -msgstr "" +msgstr "Güncellendi" -#: src/pages/part/pricing/BomPricingPanel.tsx:219 +#: src/pages/part/pricing/BomPricingPanel.tsx:258 msgid "Pie Chart" -msgstr "" +msgstr "Pasta Grafiği" -#: src/pages/part/pricing/BomPricingPanel.tsx:220 +#: src/pages/part/pricing/BomPricingPanel.tsx:259 msgid "Bar Chart" -msgstr "" +msgstr "Çubuk Grafik" #: src/pages/part/pricing/PriceBreakPanel.tsx:58 -#: src/pages/part/pricing/PriceBreakPanel.tsx:110 +#: src/pages/part/pricing/PriceBreakPanel.tsx:111 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:142 -#: src/tables/purchasing/SupplierPriceBreakTable.tsx:168 +#: src/tables/purchasing/SupplierPriceBreakTable.tsx:169 msgid "Add Price Break" -msgstr "" +msgstr "Fiyat Aralığı Ekle" #: src/pages/part/pricing/PriceBreakPanel.tsx:71 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:153 msgid "Edit Price Break" -msgstr "" +msgstr "Fiyat Aralığını Düzenle" #: src/pages/part/pricing/PriceBreakPanel.tsx:81 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:161 msgid "Delete Price Break" -msgstr "" +msgstr "Fiyat Aralığını Sil" #: src/pages/part/pricing/PriceBreakPanel.tsx:95 msgid "Price Break" -msgstr "" +msgstr "Fiyat Aralığı" -#: src/pages/part/pricing/PriceBreakPanel.tsx:170 +#: src/pages/part/pricing/PriceBreakPanel.tsx:171 msgid "Price" +msgstr "Fiyat" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:68 +msgid "Refreshing pricing data" msgstr "" -#: src/pages/part/pricing/PricingOverviewPanel.tsx:51 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:88 +msgid "Pricing data updated" +msgstr "" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:95 +msgid "Failed to update pricing data" +msgstr "" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:104 +msgid "Edit Pricing" +msgstr "" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:125 msgid "Pricing Category" -msgstr "" +msgstr "Fiyatlandırma Sınıfı" -#: src/pages/part/pricing/PricingOverviewPanel.tsx:70 -msgid "Minimum" -msgstr "" - -#: src/pages/part/pricing/PricingOverviewPanel.tsx:82 -msgid "Maximum" -msgstr "" - -#: src/pages/part/pricing/PricingOverviewPanel.tsx:114 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:188 msgid "Purchase Pricing" -msgstr "" +msgstr "Satın Alma Fiyatlandırması" -#: src/pages/part/pricing/PricingOverviewPanel.tsx:149 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:223 msgid "Override Pricing" -msgstr "" +msgstr "Üzerine Yazma Fiyatlandırması" -#: src/pages/part/pricing/PricingOverviewPanel.tsx:156 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:230 msgid "Overall Pricing" -msgstr "" +msgstr "Genel Fiyatlandırma" -#: src/pages/part/pricing/PricingOverviewPanel.tsx:175 -#: src/pages/stock/StockDetail.tsx:129 -#: src/tables/stock/StockItemTable.tsx:240 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:249 +#: src/pages/stock/StockDetail.tsx:145 +#: src/tables/stock/StockItemTable.tsx:275 msgid "Last Updated" +msgstr "Son Güncelle" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:253 +msgid "Pricing Not Set" msgstr "" -#: src/pages/part/pricing/PricingOverviewPanel.tsx:192 -msgid "Minimum Value" +#: src/pages/part/pricing/PricingOverviewPanel.tsx:254 +msgid "Pricing data has not been calculated for this part" msgstr "" -#: src/pages/part/pricing/PricingOverviewPanel.tsx:193 -msgid "Maximum Value" +#: src/pages/part/pricing/PricingOverviewPanel.tsx:258 +msgid "Pricing Actions" +msgstr "" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:261 +msgid "Refresh" +msgstr "" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:262 +msgid "Refresh pricing data" +msgstr "" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:277 +msgid "Edit pricing data" msgstr "" #: src/pages/part/pricing/PricingPanel.tsx:24 msgid "No data available" -msgstr "" +msgstr "Kullanılabilir veri yok" #: src/pages/part/pricing/PricingPanel.tsx:65 msgid "No Data" -msgstr "" +msgstr "Veri Yok" #: src/pages/part/pricing/PricingPanel.tsx:66 msgid "No pricing data available" -msgstr "" +msgstr "Kullanılabilir fiyatlandırma verisi yok" #: src/pages/part/pricing/PricingPanel.tsx:77 msgid "Loading pricing data" -msgstr "" - -#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:40 -#: src/pages/part/pricing/SaleHistoryPanel.tsx:36 -#: src/tables/ColumnRenderers.tsx:201 -#: src/tables/build/BuildOrderTestTable.tsx:150 -#: src/tables/plugin/PluginListTable.tsx:139 -msgid "Date" -msgstr "" +msgstr "Fiyatlandırma verisi yükleniyor" #: src/pages/part/pricing/PurchaseHistoryPanel.tsx:47 msgid "Purchase Price" -msgstr "" +msgstr "Satın Alma Fiyatı" -#: src/pages/part/pricing/SaleHistoryPanel.tsx:22 -msgid "Sale Order" -msgstr "" +#: src/pages/part/pricing/SaleHistoryPanel.tsx:24 +#~ msgid "Sale Order" +#~ msgstr "Sale Order" -#: src/pages/part/pricing/SaleHistoryPanel.tsx:42 -#: src/pages/part/pricing/SaleHistoryPanel.tsx:92 +#: src/pages/part/pricing/SaleHistoryPanel.tsx:44 +#: src/pages/part/pricing/SaleHistoryPanel.tsx:87 msgid "Sale Price" -msgstr "" +msgstr "Satış Fiyatı" -#: src/pages/part/pricing/SupplierPricingPanel.tsx:65 +#: src/pages/part/pricing/SupplierPricingPanel.tsx:69 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:83 msgid "Supplier Price" -msgstr "" +msgstr "Sağlayıcı Fiyatı" #: src/pages/part/pricing/VariantPricingPanel.tsx:30 #: src/pages/part/pricing/VariantPricingPanel.tsx:94 msgid "Variant Part" -msgstr "" +msgstr "Türev Parça" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:93 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:87 msgid "Edit Purchase Order" -msgstr "" +msgstr "Satın Alma Siparişini Düzenle" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:102 -#: src/tables/purchasing/PurchaseOrderTable.tsx:128 -#: src/tables/purchasing/PurchaseOrderTable.tsx:140 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:96 +#: src/tables/purchasing/PurchaseOrderTable.tsx:129 +#: src/tables/purchasing/PurchaseOrderTable.tsx:142 msgid "Add Purchase Order" -msgstr "" +msgstr "Satın Alma Siparişi Ekle" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:127 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:121 msgid "Supplier Reference" -msgstr "" +msgstr "Sağlayıcı Referansı" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:158 -#: src/pages/sales/ReturnOrderDetail.tsx:137 -#: src/pages/sales/SalesOrderDetail.tsx:137 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:152 +#: src/pages/sales/ReturnOrderDetail.tsx:129 +#: src/pages/sales/SalesOrderDetail.tsx:132 msgid "Completed Line Items" -msgstr "" +msgstr "Tamamlanan Satır Ögeleri" #: src/pages/purchasing/PurchaseOrderDetail.tsx:159 #: src/pages/sales/ReturnOrderDetail.tsx:126 @@ -5101,208 +5977,305 @@ msgstr "" #~ msgid "Order Currency," #~ msgstr "Order Currency," -#: src/pages/purchasing/PurchaseOrderDetail.tsx:165 -#: src/pages/sales/ReturnOrderDetail.tsx:144 -#: src/pages/sales/SalesOrderDetail.tsx:153 -msgid "Order Currency" -msgstr "" +#: src/pages/purchasing/PurchaseOrderDetail.tsx:161 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:231 +msgid "Destination" +msgstr "Hedef" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:172 -#: src/pages/sales/ReturnOrderDetail.tsx:151 -#: src/pages/sales/SalesOrderDetail.tsx:160 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:167 +#: src/pages/sales/ReturnOrderDetail.tsx:136 +#: src/pages/sales/SalesOrderDetail.tsx:148 +msgid "Order Currency" +msgstr "Sipariş Para Birimi" + +#: src/pages/purchasing/PurchaseOrderDetail.tsx:173 +#: src/pages/sales/ReturnOrderDetail.tsx:143 +#: src/pages/sales/SalesOrderDetail.tsx:155 msgid "Total Cost" -msgstr "" +msgstr "Toplam Tutar" #: src/pages/purchasing/PurchaseOrderDetail.tsx:207 -#: src/pages/sales/ReturnOrderDetail.tsx:186 -#: src/pages/sales/SalesOrderDetail.tsx:195 -msgid "Created On" +#: src/pages/sales/ReturnOrderDetail.tsx:183 +#: src/pages/sales/SalesOrderDetail.tsx:191 +#~ msgid "Created On" +#~ msgstr "Created On" + +#: src/pages/purchasing/PurchaseOrderDetail.tsx:221 +#: src/pages/sales/ReturnOrderDetail.tsx:193 +#: src/pages/sales/SalesOrderDetail.tsx:204 +msgid "Issue Date" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:252 -#: src/pages/sales/ReturnOrderDetail.tsx:231 -#: src/pages/sales/SalesOrderDetail.tsx:266 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:237 +#: src/pages/sales/ReturnOrderDetail.tsx:209 +#: src/pages/sales/SalesOrderDetail.tsx:219 +#: src/tables/build/BuildOrderTable.tsx:98 +#: src/tables/part/PartPurchaseOrdersTable.tsx:105 +#: src/tables/sales/ReturnOrderTable.tsx:122 +msgid "Completion Date" +msgstr "" + +#: src/pages/purchasing/PurchaseOrderDetail.tsx:276 +#: src/pages/sales/ReturnOrderDetail.tsx:248 +#: src/pages/sales/SalesOrderDetail.tsx:288 msgid "Order Details" -msgstr "" +msgstr "Sipariş Ayrıntıları" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:280 -#: src/pages/sales/ReturnOrderDetail.tsx:258 -#: src/pages/sales/SalesOrderDetail.tsx:297 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:304 +#: src/pages/sales/ReturnOrderDetail.tsx:276 +#: src/pages/sales/SalesOrderDetail.tsx:319 msgid "Extra Line Items" -msgstr "" +msgstr "Fazladan Satır Ögeleri" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:337 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:346 msgid "Issue Purchase Order" -msgstr "" +msgstr "Satın Alma Siparişi Ver" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:345 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:354 msgid "Cancel Purchase Order" -msgstr "" +msgstr "Satın Alma Siparişini İptal Et" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:353 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:362 msgid "Hold Purchase Order" -msgstr "" +msgstr "Satın Alma Siparişini Beklet" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:361 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:370 msgid "Complete Purchase Order" -msgstr "" +msgstr "Satın Alma Siparişini Tamamla" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:427 -#: src/pages/sales/ReturnOrderDetail.tsx:428 -#: src/pages/sales/SalesOrderDetail.tsx:468 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:425 +#: src/pages/sales/ReturnOrderDetail.tsx:424 +#: src/pages/sales/SalesOrderDetail.tsx:464 msgid "Order Actions" -msgstr "" +msgstr "Sipariş Eylemleri" -#: src/pages/sales/ReturnOrderDetail.tsx:101 -#: src/pages/sales/SalesOrderDetail.tsx:107 -#: src/tables/sales/SalesOrderTable.tsx:124 +#: src/pages/sales/ReturnOrderDetail.tsx:92 +#: src/pages/sales/SalesOrderDetail.tsx:101 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:109 +#: src/tables/sales/SalesOrderTable.tsx:137 msgid "Customer Reference" -msgstr "" +msgstr "Müşteri Referansı" -#: src/pages/sales/ReturnOrderDetail.tsx:315 +#: src/pages/sales/ReturnOrderDetail.tsx:322 msgid "Edit Return Order" -msgstr "" +msgstr "İade Emrini Düzenle" -#: src/pages/sales/ReturnOrderDetail.tsx:324 -#: src/tables/sales/ReturnOrderTable.tsx:119 -#: src/tables/sales/ReturnOrderTable.tsx:128 +#: src/pages/sales/ReturnOrderDetail.tsx:331 +#: src/tables/sales/ReturnOrderTable.tsx:142 +#: src/tables/sales/ReturnOrderTable.tsx:152 msgid "Add Return Order" -msgstr "" +msgstr "İade Emri Ekle" -#: src/pages/sales/ReturnOrderDetail.tsx:336 +#: src/pages/sales/ReturnOrderDetail.tsx:343 msgid "Issue Return Order" -msgstr "" +msgstr "İade Emri Ver" -#: src/pages/sales/ReturnOrderDetail.tsx:344 +#: src/pages/sales/ReturnOrderDetail.tsx:349 +#~ msgid "Order canceled" +#~ msgstr "Order canceled" + +#: src/pages/sales/ReturnOrderDetail.tsx:351 msgid "Cancel Return Order" -msgstr "" +msgstr "İade Emrini İptal Et" -#: src/pages/sales/ReturnOrderDetail.tsx:347 -msgid "Order canceled" -msgstr "" - -#: src/pages/sales/ReturnOrderDetail.tsx:352 +#: src/pages/sales/ReturnOrderDetail.tsx:359 msgid "Hold Return Order" -msgstr "" +msgstr "İade Emrini Beklet" -#: src/pages/sales/ReturnOrderDetail.tsx:360 +#: src/pages/sales/ReturnOrderDetail.tsx:367 msgid "Complete Return Order" -msgstr "" +msgstr "İade Emrini Tamamla" #: src/pages/sales/SalesIndex.tsx:38 msgid "Customers" -msgstr "" +msgstr "Müşteriler" -#: src/pages/sales/SalesOrderDetail.tsx:145 +#: src/pages/sales/SalesOrderDetail.tsx:140 msgid "Completed Shipments" -msgstr "" - -#: src/pages/sales/SalesOrderDetail.tsx:243 -msgid "Edit Sales Order" -msgstr "" - -#: src/pages/sales/SalesOrderDetail.tsx:252 -#: src/tables/sales/SalesOrderTable.tsx:84 -#: src/tables/sales/SalesOrderTable.tsx:96 -msgid "Add Sales Order" -msgstr "" +msgstr "Tamamlanan Gönderiler" #: src/pages/sales/SalesOrderDetail.tsx:256 #~ msgid "Pending Shipments" #~ msgstr "Pending Shipments" -#: src/pages/sales/SalesOrderDetail.tsx:313 +#: src/pages/sales/SalesOrderDetail.tsx:261 +msgid "Edit Sales Order" +msgstr "Satış Siparişlerini Düzenle" + +#: src/pages/sales/SalesOrderDetail.tsx:274 +#: src/tables/sales/SalesOrderTable.tsx:96 +#: src/tables/sales/SalesOrderTable.tsx:109 +msgid "Add Sales Order" +msgstr "Satış Siparişi Ekle" + +#: src/pages/sales/SalesOrderDetail.tsx:335 msgid "Shipments" -msgstr "" +msgstr "Gönderiler" -#: src/pages/sales/SalesOrderDetail.tsx:369 +#: src/pages/sales/SalesOrderDetail.tsx:376 msgid "Issue Sales Order" -msgstr "" +msgstr "Satış Siparişi Ver" -#: src/pages/sales/SalesOrderDetail.tsx:377 +#: src/pages/sales/SalesOrderDetail.tsx:384 msgid "Cancel Sales Order" -msgstr "" +msgstr "Satış Siparişini İptal Et" -#: src/pages/sales/SalesOrderDetail.tsx:385 +#: src/pages/sales/SalesOrderDetail.tsx:392 msgid "Hold Sales Order" -msgstr "" +msgstr "Satış Siparişini Beklet" -#: src/pages/sales/SalesOrderDetail.tsx:393 +#: src/pages/sales/SalesOrderDetail.tsx:400 msgid "Complete Sales Order" -msgstr "" +msgstr "Satış Siparişini Tamamla" -#: src/pages/sales/SalesOrderDetail.tsx:432 +#: src/pages/sales/SalesOrderDetail.tsx:439 msgid "Ship Order" +msgstr "Siparişi Gönder" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:117 +#: src/tables/sales/SalesOrderShipmentTable.tsx:96 +msgid "Shipment Reference" +msgstr "Gönderi Referansı" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:124 +msgid "Allocated Items" msgstr "" -#: src/pages/stock/LocationDetail.tsx:117 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:133 +msgid "Tracking Number" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:141 +msgid "Invoice Number" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:149 +#: src/tables/ColumnRenderers.tsx:242 +#: src/tables/sales/SalesOrderAllocationTable.tsx:142 +#: src/tables/sales/SalesOrderShipmentTable.tsx:115 +msgid "Shipment Date" +msgstr "Gönderim Tarihi" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:157 +#: src/tables/sales/SalesOrderShipmentTable.tsx:119 +msgid "Delivery Date" +msgstr "Teslimat Tarihi" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:204 +msgid "Shipment Details" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:210 +msgid "Assigned Items" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:241 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:317 +#: src/tables/sales/SalesOrderShipmentTable.tsx:75 +msgid "Edit Shipment" +msgstr "Gönderiyi Düzenle" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:248 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:322 +#: src/tables/sales/SalesOrderShipmentTable.tsx:67 +msgid "Cancel Shipment" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:261 +#: src/tables/sales/SalesOrderShipmentTable.tsx:83 +#: src/tables/sales/SalesOrderShipmentTable.tsx:151 +msgid "Complete Shipment" +msgstr "Gönderiyi Tamamla" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:276 +#: src/tables/part/PartPurchaseOrdersTable.tsx:121 +msgid "Pending" +msgstr "Bekliyor" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:277 +#: src/tables/sales/SalesOrderAllocationTable.tsx:148 +#: src/tables/sales/SalesOrderShipmentTable.tsx:108 +#: src/tables/sales/SalesOrderShipmentTable.tsx:197 +msgid "Shipped" +msgstr "Gönderildi" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:279 +#: src/tables/sales/SalesOrderShipmentTable.tsx:202 +msgid "Delivered" +msgstr "Teslim Edildi" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:293 +msgid "Send Shipment" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:312 +msgid "Shipment Actions" +msgstr "" + +#: src/pages/stock/LocationDetail.tsx:111 msgid "Parent Location" -msgstr "" +msgstr "Üst Konum" -#: src/pages/stock/LocationDetail.tsx:135 +#: src/pages/stock/LocationDetail.tsx:129 msgid "Sublocations" -msgstr "" +msgstr "Alt Konumlar" -#: src/pages/stock/LocationDetail.tsx:147 +#: src/pages/stock/LocationDetail.tsx:141 #: src/tables/stock/StockLocationTable.tsx:54 msgid "External" -msgstr "" +msgstr "Harici" -#: src/pages/stock/LocationDetail.tsx:153 +#: src/pages/stock/LocationDetail.tsx:147 #: src/tables/stock/StockLocationTable.tsx:63 msgid "Location Type" -msgstr "" +msgstr "Konum Türü" -#: src/pages/stock/LocationDetail.tsx:164 +#: src/pages/stock/LocationDetail.tsx:158 msgid "Top level stock location" -msgstr "" +msgstr "En üst düzey stok konumu" -#: src/pages/stock/LocationDetail.tsx:175 +#: src/pages/stock/LocationDetail.tsx:169 msgid "Location Details" -msgstr "" +msgstr "Konum Ayrıntıları" -#: src/pages/stock/LocationDetail.tsx:201 +#: src/pages/stock/LocationDetail.tsx:195 msgid "Default Parts" -msgstr "" +msgstr "Varsayılan Parçalar" -#: src/pages/stock/LocationDetail.tsx:220 -#: src/pages/stock/LocationDetail.tsx:351 +#: src/pages/stock/LocationDetail.tsx:214 +#: src/pages/stock/LocationDetail.tsx:336 #: src/tables/stock/StockLocationTable.tsx:123 msgid "Edit Stock Location" -msgstr "" +msgstr "Stok Konumunu Düzenle" -#: src/pages/stock/LocationDetail.tsx:241 -#: src/pages/stock/LocationDetail.tsx:356 +#: src/pages/stock/LocationDetail.tsx:235 +#: src/pages/stock/LocationDetail.tsx:341 msgid "Delete Stock Location" -msgstr "" +msgstr "Stok Konumunu Sil" + +#: src/pages/stock/LocationDetail.tsx:238 +msgid "Items Action" +msgstr "Ögeler Eylemi" + +#: src/pages/stock/LocationDetail.tsx:239 +msgid "Action for stock items in this location" +msgstr "Bu konumdaki stok ögeleri için eylem" #: src/pages/stock/LocationDetail.tsx:244 -msgid "Items Action" -msgstr "" +msgid "Child Locations Action" +msgstr "Alt Konumlar Eylemi" #: src/pages/stock/LocationDetail.tsx:245 -msgid "Action for stock items in this location" -msgstr "" - -#: src/pages/stock/LocationDetail.tsx:250 -msgid "Child Locations Action" -msgstr "" - -#: src/pages/stock/LocationDetail.tsx:251 msgid "Action for child locations in this location" -msgstr "" +msgstr "Bu konumdaki alt konumlar için eylem" -#: src/pages/stock/LocationDetail.tsx:346 +#: src/pages/stock/LocationDetail.tsx:332 msgid "Location Actions" -msgstr "" +msgstr "Konum Eylemleri" -#: src/pages/stock/StockDetail.tsx:108 +#: src/pages/stock/StockDetail.tsx:116 msgid "Base Part" -msgstr "" - -#: src/pages/stock/StockDetail.tsx:115 -msgid "Stock Status" -msgstr "" +msgstr "Temel Parça" #: src/pages/stock/StockDetail.tsx:155 #~ msgid "Link custom barcode to stock item" @@ -5312,112 +6285,178 @@ msgstr "" #~ msgid "Unlink custom barcode from stock item" #~ msgstr "Unlink custom barcode from stock item" -#: src/pages/stock/StockDetail.tsx:188 -msgid "Installed In" -msgstr "" - -#: src/pages/stock/StockDetail.tsx:204 -msgid "Consumed By" +#: src/pages/stock/StockDetail.tsx:178 +msgid "Allocated to Orders" msgstr "" #: src/pages/stock/StockDetail.tsx:205 #~ msgid "Edit stock item" #~ msgstr "Edit stock item" -#: src/pages/stock/StockDetail.tsx:213 -#: src/tables/build/BuildAllocatedStockTable.tsx:64 -#: src/tables/stock/StockTrackingTable.tsx:96 -msgid "Build Order" -msgstr "" +#: src/pages/stock/StockDetail.tsx:209 +msgid "Installed In" +msgstr "Yüklendiği Yer" #: src/pages/stock/StockDetail.tsx:217 #~ msgid "Delete stock item" #~ msgstr "Delete stock item" -#: src/pages/stock/StockDetail.tsx:291 +#: src/pages/stock/StockDetail.tsx:226 +msgid "Parent Item" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:230 +msgid "Parent stock item" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:236 +msgid "Consumed By" +msgstr "Tüketen" + +#: src/pages/stock/StockDetail.tsx:245 +#: src/tables/build/BuildAllocatedStockTable.tsx:77 +#: src/tables/stock/StockTrackingTable.tsx:100 +msgid "Build Order" +msgstr "Yapım Siparişi" + +#: src/pages/stock/StockDetail.tsx:283 +#: src/tables/stock/StockItemTable.tsx:270 +msgid "Expiry Date" +msgstr "Son Kullanma Tarihi" + +#: src/pages/stock/StockDetail.tsx:414 msgid "Stock Details" -msgstr "" +msgstr "Stok Ayrıntıları" -#: src/pages/stock/StockDetail.tsx:297 +#: src/pages/stock/StockDetail.tsx:420 msgid "Stock Tracking" -msgstr "" - -#: src/pages/stock/StockDetail.tsx:350 -msgid "Test Data" -msgstr "" - -#: src/pages/stock/StockDetail.tsx:364 -msgid "Installed Items" -msgstr "" - -#: src/pages/stock/StockDetail.tsx:371 -msgid "Child Items" -msgstr "" - -#: src/pages/stock/StockDetail.tsx:425 -msgid "Edit Stock Item" -msgstr "" +msgstr "Stok İzleme" #: src/pages/stock/StockDetail.tsx:433 #~ msgid "Duplicate stock item" #~ msgstr "Duplicate stock item" -#: src/pages/stock/StockDetail.tsx:452 +#: src/pages/stock/StockDetail.tsx:475 +msgid "Test Data" +msgstr "Test Verisi" + +#: src/pages/stock/StockDetail.tsx:489 +msgid "Installed Items" +msgstr "Yüklenen Ögeler" + +#: src/pages/stock/StockDetail.tsx:496 +msgid "Child Items" +msgstr "Alt Ögeler" + +#: src/pages/stock/StockDetail.tsx:545 +msgid "Edit Stock Item" +msgstr "Stok Ögesini Düzenle" + +#: src/pages/stock/StockDetail.tsx:572 msgid "Delete Stock Item" +msgstr "Stok Ögesini Sil" + +#: src/pages/stock/StockDetail.tsx:604 +msgid "Serialize Stock Item" msgstr "" -#: src/pages/stock/StockDetail.tsx:504 +#: src/pages/stock/StockDetail.tsx:617 +msgid "Stock item serialized" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:623 +msgid "Return Stock Item" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:626 +msgid "Return this item into stock. This will remove the customer assignment." +msgstr "" + +#: src/pages/stock/StockDetail.tsx:636 +msgid "Item returned to stock" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:666 msgid "Stock Operations" -msgstr "" +msgstr "Stok İşlemleri" -#: src/pages/stock/StockDetail.tsx:509 +#: src/pages/stock/StockDetail.tsx:671 msgid "Count stock" +msgstr "Stoku say" + +#: src/pages/stock/StockDetail.tsx:671 +#: src/tables/stock/StockItemTable.tsx:452 +#~ msgid "Add stock" +#~ msgstr "Add stock" + +#: src/pages/stock/StockDetail.tsx:680 +#: src/tables/stock/StockItemTable.tsx:461 +#~ msgid "Remove stock" +#~ msgstr "Remove stock" + +#: src/pages/stock/StockDetail.tsx:698 +#: src/tables/stock/StockItemTable.tsx:481 +#~ msgid "Transfer stock" +#~ msgstr "Transfer stock" + +#: src/pages/stock/StockDetail.tsx:699 +msgid "Serialize" msgstr "" -#: src/pages/stock/StockDetail.tsx:519 -#: src/tables/stock/StockItemTable.tsx:449 -msgid "Add stock" +#: src/pages/stock/StockDetail.tsx:700 +msgid "Serialize stock" msgstr "" -#: src/pages/stock/StockDetail.tsx:527 -#: src/tables/stock/StockItemTable.tsx:458 -msgid "Remove stock" -msgstr "" - -#: src/pages/stock/StockDetail.tsx:534 +#: src/pages/stock/StockDetail.tsx:711 msgid "Transfer" +msgstr "Aktarım" + +#: src/pages/stock/StockDetail.tsx:722 +msgid "Return" msgstr "" -#: src/pages/stock/StockDetail.tsx:535 -#: src/tables/stock/StockItemTable.tsx:478 -msgid "Transfer stock" +#: src/pages/stock/StockDetail.tsx:723 +msgid "Return from customer" msgstr "" -#: src/pages/stock/StockDetail.tsx:546 +#: src/pages/stock/StockDetail.tsx:738 msgid "Stock Item Actions" +msgstr "Stok Ögesi Eylemleri" + +#: src/pages/stock/StockDetail.tsx:808 +msgid "Stale" msgstr "" -#: src/tables/ColumnRenderers.tsx:30 +#: src/pages/stock/StockDetail.tsx:814 +msgid "Expired" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:820 +msgid "Unavailable" +msgstr "" + +#: src/tables/ColumnRenderers.tsx:36 msgid "Part is not active" +msgstr "Parça etkin değil" + +#: src/tables/ColumnRenderers.tsx:41 +#: src/tables/bom/BomTable.tsx:542 +#: src/tables/part/PartParameterTable.tsx:193 +#: src/tables/part/PartTestTemplateTable.tsx:253 +msgid "Part is Locked" +msgstr "Parça Kilitli" + +#: src/tables/ColumnRenderers.tsx:41 +#~ msgid "Part is locked" +#~ msgstr "Part is locked" + +#: src/tables/ColumnRenderers.tsx:46 +msgid "You are subscribed to notifications for this part" msgstr "" -#: src/tables/ColumnRenderers.tsx:35 -msgid "Part is locked" -msgstr "" - -#: src/tables/ColumnRenderers.tsx:57 +#: src/tables/ColumnRenderers.tsx:68 msgid "No location set" -msgstr "" - -#: src/tables/ColumnRenderers.tsx:228 -#: src/tables/sales/SalesOrderShipmentTable.tsx:79 -msgid "Shipment Date" -msgstr "" - -#: src/tables/ColumnRenderers.tsx:248 -#: src/tables/settings/CurrencyTable.tsx:23 -msgid "Currency" -msgstr "" +msgstr "Hiçbir konum ayarlanmamış" #: src/tables/ColumnSelect.tsx:16 #: src/tables/ColumnSelect.tsx:23 @@ -5430,7 +6469,7 @@ msgstr "Sütunları Seç" #: src/tables/DownloadAction.tsx:21 msgid "CSV" -msgstr "" +msgstr "CSV" #: src/tables/DownloadAction.tsx:21 #~ msgid "Download selected data" @@ -5438,11 +6477,11 @@ msgstr "" #: src/tables/DownloadAction.tsx:22 msgid "TSV" -msgstr "" +msgstr "TSV" #: src/tables/DownloadAction.tsx:23 msgid "Excel (.xlsx)" -msgstr "" +msgstr "Excel (.xlsx)" #: src/tables/DownloadAction.tsx:24 #~ msgid "Excel (.xls)" @@ -5450,93 +6489,118 @@ msgstr "" #: src/tables/DownloadAction.tsx:36 msgid "Download Data" -msgstr "" +msgstr "Veriyi İndir" -#: src/tables/Filter.tsx:89 -#: src/tables/build/BuildOrderTable.tsx:135 +#: src/tables/Filter.tsx:101 msgid "Assigned to me" -msgstr "" +msgstr "Bana atandı" -#: src/tables/Filter.tsx:90 -#: src/tables/build/BuildOrderTable.tsx:136 +#: src/tables/Filter.tsx:102 msgid "Show orders assigned to me" -msgstr "" - -#: src/tables/Filter.tsx:97 -msgid "Outstanding" -msgstr "" - -#: src/tables/Filter.tsx:98 -msgid "Show outstanding orders" -msgstr "" - -#: src/tables/Filter.tsx:105 -#: src/tables/build/BuildOrderTable.tsx:128 -msgid "Overdue" -msgstr "" +msgstr "Bana atanan siparişleri göster" #: src/tables/Filter.tsx:106 -msgid "Show overdue orders" +#~ msgid "Show overdue orders" +#~ msgstr "Show overdue orders" + +#: src/tables/Filter.tsx:109 +#: src/tables/build/BuildOrderTable.tsx:120 +#: src/tables/sales/SalesOrderAllocationTable.tsx:59 +msgid "Outstanding" +msgstr "Bekliyor" + +#: src/tables/Filter.tsx:110 +msgid "Show outstanding items" msgstr "" -#: src/tables/FilterSelectDrawer.tsx:51 +#: src/tables/Filter.tsx:117 +msgid "Overdue" +msgstr "Gecikmiş" + +#: src/tables/Filter.tsx:118 +msgid "Show overdue items" +msgstr "" + +#: src/tables/Filter.tsx:125 +msgid "Minimum Date" +msgstr "" + +#: src/tables/Filter.tsx:126 +msgid "Show items after this date" +msgstr "" + +#: src/tables/Filter.tsx:134 +msgid "Maximum Date" +msgstr "" + +#: src/tables/Filter.tsx:135 +msgid "Show items before this date" +msgstr "" + +#: src/tables/Filter.tsx:144 +msgid "Has Project Code" +msgstr "Proje Kodu Olanlar" + +#: src/tables/Filter.tsx:145 +msgid "Show orders with an assigned project code" +msgstr "" + +#: src/tables/FilterSelectDrawer.tsx:55 msgid "Remove filter" msgstr "Filtreyi kaldır" -#: src/tables/FilterSelectDrawer.tsx:130 +#: src/tables/FilterSelectDrawer.tsx:159 msgid "Select filter" msgstr "Filtre seç" -#: src/tables/FilterSelectDrawer.tsx:131 +#: src/tables/FilterSelectDrawer.tsx:160 msgid "Filter" msgstr "Filtre" -#: src/tables/FilterSelectDrawer.tsx:138 -#: src/tables/build/BuildOrderTestTable.tsx:134 -#: src/tables/purchasing/ManufacturerPartParameterTable.tsx:38 -#: src/tables/stock/StockItemTestResultTable.tsx:186 -msgid "Value" -msgstr "Değer" +#: src/tables/FilterSelectDrawer.tsx:168 +msgid "Select date value" +msgstr "" -#: src/tables/FilterSelectDrawer.tsx:140 +#: src/tables/FilterSelectDrawer.tsx:176 msgid "Select filter value" msgstr "Filtre değeri seç" -#: src/tables/FilterSelectDrawer.tsx:183 +#: src/tables/FilterSelectDrawer.tsx:219 +#: src/tables/InvenTreeTableHeader.tsx:214 msgid "Table Filters" -msgstr "" +msgstr "Tablo Süzgeçleri" -#: src/tables/FilterSelectDrawer.tsx:215 +#: src/tables/FilterSelectDrawer.tsx:251 msgid "Add Filter" msgstr "Filtre Ekle" -#: src/tables/FilterSelectDrawer.tsx:224 +#: src/tables/FilterSelectDrawer.tsx:260 msgid "Clear Filters" -msgstr "" +msgstr "Süzgeçleri Temizle" -#: src/tables/InvenTreeTable.tsx:123 -#: src/tables/InvenTreeTable.tsx:431 -#: src/tables/InvenTreeTable.tsx:455 +#: src/tables/InvenTreeTable.tsx:96 +#: src/tables/InvenTreeTable.tsx:417 +#: src/tables/InvenTreeTable.tsx:441 msgid "No records found" msgstr "Hiç kayıt bulunamadı" -#: src/tables/InvenTreeTable.tsx:466 +#: src/tables/InvenTreeTable.tsx:452 msgid "Server returned incorrect data type" -msgstr "" +msgstr "Sunucu yanlış veri türü döndürdü" -#: src/tables/InvenTreeTable.tsx:474 +#: src/tables/InvenTreeTable.tsx:460 msgid "Bad request" msgstr "Hatalı istek" -#: src/tables/InvenTreeTable.tsx:477 +#: src/tables/InvenTreeTable.tsx:463 msgid "Unauthorized" msgstr "Yetkisiz" -#: src/tables/InvenTreeTable.tsx:480 +#: src/tables/InvenTreeTable.tsx:466 msgid "Forbidden" msgstr "Yasaklı" -#: src/tables/InvenTreeTable.tsx:483 +#: src/tables/InvenTreeTable.tsx:469 msgid "Not found" msgstr "Bulunamadı" @@ -5544,18 +6608,6 @@ msgstr "Bulunamadı" #~ msgid "Are you sure you want to delete the selected records?" #~ msgstr "Are you sure you want to delete the selected records?" -#: src/tables/InvenTreeTable.tsx:525 -msgid "Delete Selected Items" -msgstr "" - -#: src/tables/InvenTreeTable.tsx:529 -msgid "Are you sure you want to delete the selected items?" -msgstr "" - -#: src/tables/InvenTreeTable.tsx:531 -msgid "This action cannot be undone!" -msgstr "" - #: src/tables/InvenTreeTable.tsx:535 #~ msgid "Deleted records" #~ msgstr "Deleted records" @@ -5568,31 +6620,56 @@ msgstr "" #~ msgid "Failed to delete records" #~ msgstr "Failed to delete records" +#: src/tables/InvenTreeTable.tsx:552 +#~ msgid "This action cannot be undone!" +#~ msgstr "This action cannot be undone!" + #: src/tables/InvenTreeTable.tsx:594 #: src/tables/InvenTreeTable.tsx:595 #~ msgid "Print actions" #~ msgstr "Print actions" -#: src/tables/InvenTreeTable.tsx:618 -#: src/tables/InvenTreeTable.tsx:619 -msgid "Barcode actions" -msgstr "Barkod işlemleri" +#: src/tables/InvenTreeTable.tsx:655 +#: src/tables/InvenTreeTable.tsx:656 +#~ msgid "Barcode actions" +#~ msgstr "Barcode actions" -#: src/tables/InvenTreeTable.tsx:628 -msgid "Delete selected records" +#: src/tables/InvenTreeTable.tsx:712 +#~ msgid "Table filters" +#~ msgstr "Table filters" + +#: src/tables/InvenTreeTable.tsx:725 +#~ msgid "Clear custom query filters" +#~ msgstr "Clear custom query filters" + +#: src/tables/InvenTreeTableHeader.tsx:98 +msgid "Delete Selected Items" +msgstr "Seçilen Ögeleri Sil" + +#: src/tables/InvenTreeTableHeader.tsx:102 +msgid "Are you sure you want to delete the selected items?" +msgstr "Seçilen ögeleri silmek istediğinize emin misiniz?" + +#: src/tables/InvenTreeTableHeader.tsx:104 +#: src/tables/plugin/PluginListTable.tsx:305 +msgid "This action cannot be undone" msgstr "" -#: src/tables/InvenTreeTable.tsx:649 +#: src/tables/InvenTreeTableHeader.tsx:142 +msgid "Custom table filters are active" +msgstr "" + +#: src/tables/InvenTreeTableHeader.tsx:169 +msgid "Delete selected records" +msgstr "Seçili kayıtları sil" + +#: src/tables/InvenTreeTableHeader.tsx:188 msgid "Refresh data" msgstr "Veriyi yenile" -#: src/tables/InvenTreeTable.tsx:675 -msgid "Table filters" -msgstr "Tablo filtreleri" - #: src/tables/TableHoverCard.tsx:35 -msgid "item-{idx}" -msgstr "" +#~ msgid "item-{idx}" +#~ msgstr "item-{idx}" #: src/tables/UploadAction.tsx:7 #~ msgid "Upload Data" @@ -5600,53 +6677,58 @@ msgstr "" #: src/tables/bom/BomTable.tsx:95 msgid "This BOM item is defined for a different parent" -msgstr "" +msgstr "Bu ML ögesi farklı bir üst öge için tanımlı" #: src/tables/bom/BomTable.tsx:110 msgid "Part Information" -msgstr "" +msgstr "Parça Bilgisi" #: src/tables/bom/BomTable.tsx:212 -#: src/tables/build/BuildLineTable.tsx:126 +#: src/tables/build/BuildLineTable.tsx:257 #: src/tables/part/PartTable.tsx:125 msgid "External stock" -msgstr "" +msgstr "Harici stok" #: src/tables/bom/BomTable.tsx:220 -#: src/tables/build/BuildLineTable.tsx:89 +#: src/tables/build/BuildLineTable.tsx:220 msgid "Includes substitute stock" -msgstr "" +msgstr "Yedek stok içerir" #: src/tables/bom/BomTable.tsx:229 -#: src/tables/build/BuildLineTable.tsx:99 -#: src/tables/sales/SalesOrderLineItemTable.tsx:127 +#: src/tables/build/BuildLineTable.tsx:230 +#: src/tables/sales/SalesOrderLineItemTable.tsx:135 msgid "Includes variant stock" -msgstr "" +msgstr "Türev stok içerir" + +#: src/tables/bom/BomTable.tsx:245 +#: src/tables/part/PartTable.tsx:92 +msgid "Building" +msgstr "Yapılıyor" #: src/tables/bom/BomTable.tsx:254 #: src/tables/part/PartTable.tsx:153 -#: src/tables/sales/SalesOrderLineItemTable.tsx:150 -#: src/tables/stock/StockItemTable.tsx:216 +#: src/tables/sales/SalesOrderLineItemTable.tsx:158 +#: src/tables/stock/StockItemTable.tsx:206 msgid "Stock Information" -msgstr "" +msgstr "Stok Bilgisi" #: src/tables/bom/BomTable.tsx:285 -#: src/tables/build/BuildLineTable.tsx:248 +#: src/tables/build/BuildLineTable.tsx:409 msgid "Consumable item" -msgstr "" +msgstr "Tüketilebilir öge" #: src/tables/bom/BomTable.tsx:288 msgid "No available stock" -msgstr "" +msgstr "Yetersiz stok" #: src/tables/bom/BomTable.tsx:301 #~ msgid "Create BOM Item" #~ msgstr "Create BOM Item" #: src/tables/bom/BomTable.tsx:306 -#: src/tables/build/BuildLineTable.tsx:69 +#: src/tables/build/BuildLineTable.tsx:200 msgid "Show testable items" -msgstr "" +msgstr "Test edilebilir ögeleri göster" #: src/tables/bom/BomTable.tsx:310 #~ msgid "Show asssmbled items" @@ -5654,28 +6736,29 @@ msgstr "" #: src/tables/bom/BomTable.tsx:311 msgid "Show trackable items" -msgstr "" +msgstr "İzlenebilir ögeleri göster" #: src/tables/bom/BomTable.tsx:316 -#: src/tables/build/BuildLineTable.tsx:64 +#: src/tables/build/BuildLineTable.tsx:195 msgid "Show assembled items" -msgstr "" +msgstr "Birleştirilmiş ögeleri göster" #: src/tables/bom/BomTable.tsx:321 +#: src/tables/build/BuildLineTable.tsx:180 msgid "Show items with available stock" -msgstr "" +msgstr "Kullanılabilir stoku olan ögeleri göster" #: src/tables/bom/BomTable.tsx:326 msgid "Show items on order" -msgstr "" +msgstr "Siparişteki ögeleri göster" #: src/tables/bom/BomTable.tsx:330 msgid "Validated" -msgstr "" +msgstr "Doğrulandı" #: src/tables/bom/BomTable.tsx:331 msgid "Show validated items" -msgstr "" +msgstr "Doğrulanan ögeleri göster" #: src/tables/bom/BomTable.tsx:331 #~ msgid "Edit Bom Item" @@ -5688,31 +6771,31 @@ msgstr "" #: src/tables/bom/BomTable.tsx:335 #: src/tables/bom/UsedInTable.tsx:74 msgid "Inherited" -msgstr "" +msgstr "Miras Alındı" #: src/tables/bom/BomTable.tsx:336 #: src/tables/bom/UsedInTable.tsx:75 msgid "Show inherited items" -msgstr "" +msgstr "Miras alınan ögeleri göster" #: src/tables/bom/BomTable.tsx:340 msgid "Allow Variants" -msgstr "" +msgstr "Türevlere İzin Ver" #: src/tables/bom/BomTable.tsx:341 msgid "Show items which allow variant substitution" -msgstr "" +msgstr "Türev değişimine izin veren ögeleri göster" #: src/tables/bom/BomTable.tsx:345 #: src/tables/bom/UsedInTable.tsx:79 -#: src/tables/build/BuildLineTable.tsx:58 +#: src/tables/build/BuildLineTable.tsx:189 msgid "Optional" -msgstr "" +msgstr "İsteğe bağlı" #: src/tables/bom/BomTable.tsx:346 #: src/tables/bom/UsedInTable.tsx:80 msgid "Show optional items" -msgstr "" +msgstr "İsteğe bağlı ögeleri göster" #: src/tables/bom/BomTable.tsx:348 #~ msgid "Delete Bom Item" @@ -5723,13 +6806,13 @@ msgstr "" #~ msgstr "Bom item deleted" #: src/tables/bom/BomTable.tsx:350 -#: src/tables/build/BuildLineTable.tsx:53 +#: src/tables/build/BuildLineTable.tsx:184 msgid "Consumable" -msgstr "" +msgstr "Tüketilebilir" #: src/tables/bom/BomTable.tsx:351 msgid "Show consumable items" -msgstr "" +msgstr "Tüketilebilir ögeleri göster" #: src/tables/bom/BomTable.tsx:351 #~ msgid "Are you sure you want to remove this BOM item?" @@ -5742,97 +6825,91 @@ msgstr "" #: src/tables/bom/BomTable.tsx:355 #: src/tables/part/PartTable.tsx:282 msgid "Has Pricing" -msgstr "" +msgstr "Fiyatlandırılmış" #: src/tables/bom/BomTable.tsx:356 msgid "Show items with pricing" -msgstr "" +msgstr "Fiyatlandırılmış ögeleri göster" #: src/tables/bom/BomTable.tsx:378 -#: src/tables/bom/BomTable.tsx:511 +#: src/tables/bom/BomTable.tsx:512 msgid "Import BOM Data" -msgstr "" +msgstr "ML Verisi İçe aktar" #: src/tables/bom/BomTable.tsx:388 -#: src/tables/bom/BomTable.tsx:523 +#: src/tables/bom/BomTable.tsx:526 msgid "Add BOM Item" -msgstr "" +msgstr "ML Ögesi Ekle" #: src/tables/bom/BomTable.tsx:393 msgid "BOM item created" -msgstr "" +msgstr "ML ögesi oluşturuldu" #: src/tables/bom/BomTable.tsx:400 msgid "Edit BOM Item" -msgstr "" +msgstr "ML Ögesini Düzenle" #: src/tables/bom/BomTable.tsx:402 msgid "BOM item updated" -msgstr "" +msgstr "ML ögesi güncellendi" #: src/tables/bom/BomTable.tsx:409 msgid "Delete BOM Item" -msgstr "" +msgstr "ML Ögesini Sil" #: src/tables/bom/BomTable.tsx:410 msgid "BOM item deleted" -msgstr "" +msgstr "ML ögesi silindi" #: src/tables/bom/BomTable.tsx:423 #: src/tables/bom/BomTable.tsx:426 -#: src/tables/bom/BomTable.tsx:517 +#: src/tables/bom/BomTable.tsx:519 msgid "Validate BOM" -msgstr "" +msgstr "ML Doğrula" #: src/tables/bom/BomTable.tsx:427 msgid "Do you want to validate the bill of materials for this assembly?" -msgstr "" +msgstr "Bu birleştirme için malzeme listesini doğrulamak istiyor musunuz?" #: src/tables/bom/BomTable.tsx:430 msgid "BOM validated" -msgstr "" +msgstr "ML doğrulandı" #: src/tables/bom/BomTable.tsx:442 msgid "BOM item validated" -msgstr "" +msgstr "ML ögesi doğrulandı" #: src/tables/bom/BomTable.tsx:451 msgid "Failed to validate BOM item" -msgstr "" +msgstr "ML ögesi doğrulama başarısız oldu" #: src/tables/bom/BomTable.tsx:463 msgid "View BOM" -msgstr "" +msgstr "ML Görüntüle" #: src/tables/bom/BomTable.tsx:472 msgid "Validate BOM Line" -msgstr "" +msgstr "ML Satırını Doğrula" #: src/tables/bom/BomTable.tsx:489 msgid "Edit Substitutes" -msgstr "" +msgstr "Yedekleri Düzenle" -#: src/tables/bom/BomTable.tsx:539 -#: src/tables/part/PartParameterTable.tsx:193 -#: src/tables/part/PartTestTemplateTable.tsx:252 -msgid "Part is Locked" -msgstr "" - -#: src/tables/bom/BomTable.tsx:544 +#: src/tables/bom/BomTable.tsx:547 msgid "Bill of materials cannot be edited, as the part is locked" -msgstr "" +msgstr "Parça kilitli olduğundan malzeme listesi düzenlenemez" #: src/tables/bom/UsedInTable.tsx:33 -#: src/tables/build/BuildLineTable.tsx:63 +#: src/tables/build/BuildLineTable.tsx:194 #: src/tables/part/ParametricPartTable.tsx:233 #: src/tables/part/PartTable.tsx:190 -#: src/tables/stock/StockItemTable.tsx:300 +#: src/tables/stock/StockItemTable.tsx:304 msgid "Assembly" msgstr "Montaj" #: src/tables/bom/UsedInTable.tsx:85 msgid "Show active assemblies" -msgstr "" +msgstr "Etkin birleştirmeleri göster" #: src/tables/bom/UsedInTable.tsx:89 #: src/tables/part/PartTable.tsx:214 @@ -5842,588 +6919,675 @@ msgstr "Takip Edilebilir" #: src/tables/bom/UsedInTable.tsx:90 msgid "Show trackable assemblies" -msgstr "" +msgstr "İzlenebilir birleştirmeleri göster" -#: src/tables/build/BuildAllocatedStockTable.tsx:54 +#: src/tables/build/BuildAllocatedStockTable.tsx:56 msgid "Allocated to Output" -msgstr "" +msgstr "Çıktıya Ayrıldı" -#: src/tables/build/BuildAllocatedStockTable.tsx:55 +#: src/tables/build/BuildAllocatedStockTable.tsx:57 msgid "Show items allocated to a build output" +msgstr "Bir yapı çıktısına ayrılan ögeleri göster" + +#: src/tables/build/BuildAllocatedStockTable.tsx:65 +#: src/tables/build/BuildOrderTable.tsx:159 +#: src/tables/part/PartParameterTable.tsx:212 +#: src/tables/part/PartPurchaseOrdersTable.tsx:138 +#: src/tables/sales/ReturnOrderTable.tsx:84 +#: src/tables/sales/SalesOrderAllocationTable.tsx:68 +#: src/tables/sales/SalesOrderTable.tsx:84 +#: src/tables/stock/StockItemTable.tsx:339 +msgid "Include Variants" +msgstr "Türevleri İçer" + +#: src/tables/build/BuildAllocatedStockTable.tsx:66 +#: src/tables/build/BuildOrderTable.tsx:160 +#: src/tables/part/PartPurchaseOrdersTable.tsx:139 +#: src/tables/sales/ReturnOrderTable.tsx:85 +#: src/tables/sales/SalesOrderAllocationTable.tsx:69 +#: src/tables/sales/SalesOrderTable.tsx:85 +msgid "Include orders for part variants" msgstr "" -#: src/tables/build/BuildAllocatedStockTable.tsx:76 -#: src/tables/part/PartPurchaseOrdersTable.tsx:125 -#: src/tables/sales/SalesOrderAllocationTable.tsx:62 +#: src/tables/build/BuildAllocatedStockTable.tsx:89 +#: src/tables/part/PartPurchaseOrdersTable.tsx:131 +#: src/tables/sales/SalesOrderAllocationTable.tsx:93 msgid "Order Status" -msgstr "" +msgstr "Sipariş Durumu" -#: src/tables/build/BuildAllocatedStockTable.tsx:96 -#: src/tables/sales/SalesOrderAllocationTable.tsx:75 +#: src/tables/build/BuildAllocatedStockTable.tsx:117 +#: src/tables/sales/SalesOrderAllocationTable.tsx:126 msgid "Allocated Quantity" -msgstr "" +msgstr "Ayrılan Miktar" -#: src/tables/build/BuildAllocatedStockTable.tsx:116 -#: src/tables/sales/SalesOrderAllocationTable.tsx:94 +#: src/tables/build/BuildAllocatedStockTable.tsx:137 +#: src/tables/sales/SalesOrderAllocationTable.tsx:120 msgid "Available Quantity" +msgstr "Mevcut Miktar" + +#: src/tables/build/BuildAllocatedStockTable.tsx:164 +#: src/tables/build/BuildLineTable.tsx:513 +msgid "Edit Stock Allocation" msgstr "" -#: src/tables/build/BuildAllocatedStockTable.tsx:126 -#: src/tables/build/BuildOrderTestTable.tsx:176 -#: src/tables/build/BuildOrderTestTable.tsx:200 -#: src/tables/build/BuildOutputTable.tsx:312 -msgid "Build Output" -msgstr "" +#: src/tables/build/BuildAllocatedStockTable.tsx:164 +#~ msgid "Edit Build Item" +#~ msgstr "Edit Build Item" -#: src/tables/build/BuildAllocatedStockTable.tsx:143 -msgid "Edit Build Item" -msgstr "" +#: src/tables/build/BuildAllocatedStockTable.tsx:174 +#~ msgid "Delete Build Item" +#~ msgstr "Delete Build Item" -#: src/tables/build/BuildAllocatedStockTable.tsx:153 -msgid "Delete Build Item" -msgstr "" - -#: src/tables/build/BuildLineTable.tsx:43 -#: src/tables/stock/StockItemTable.tsx:305 -msgid "Allocated" -msgstr "" - -#: src/tables/build/BuildLineTable.tsx:44 -msgid "Show allocated lines" -msgstr "" - -#: src/tables/build/BuildLineTable.tsx:49 -msgid "Show lines with available stock" -msgstr "" - -#: src/tables/build/BuildLineTable.tsx:54 -msgid "Show consumable lines" +#: src/tables/build/BuildAllocatedStockTable.tsx:177 +#: src/tables/build/BuildLineTable.tsx:526 +msgid "Delete Stock Allocation" msgstr "" #: src/tables/build/BuildLineTable.tsx:59 -msgid "Show optional lines" -msgstr "" +#~ msgid "Show lines with available stock" +#~ msgstr "Show lines with available stock" -#: src/tables/build/BuildLineTable.tsx:68 +#: src/tables/build/BuildLineTable.tsx:175 +msgid "Show allocated lines" +msgstr "Ayrılan satırları göster" + +#: src/tables/build/BuildLineTable.tsx:185 +msgid "Show consumable lines" +msgstr "Tüketilebilir satırları göster" + +#: src/tables/build/BuildLineTable.tsx:190 +msgid "Show optional lines" +msgstr "İsteğe bağlı satırları göster" + +#: src/tables/build/BuildLineTable.tsx:199 #: src/tables/part/PartTable.tsx:208 msgid "Testable" -msgstr "" +msgstr "Test Edilebilir" -#: src/tables/build/BuildLineTable.tsx:73 -#: src/tables/stock/StockItemTable.tsx:364 +#: src/tables/build/BuildLineTable.tsx:204 +#: src/tables/stock/StockItemTable.tsx:368 msgid "Tracked" -msgstr "" +msgstr "İzlenen" -#: src/tables/build/BuildLineTable.tsx:74 +#: src/tables/build/BuildLineTable.tsx:205 msgid "Show tracked lines" -msgstr "" +msgstr "İzlenen satırları göster" -#: src/tables/build/BuildLineTable.tsx:108 -#: src/tables/sales/SalesOrderLineItemTable.tsx:133 +#: src/tables/build/BuildLineTable.tsx:239 +#: src/tables/sales/SalesOrderLineItemTable.tsx:141 msgid "In production" -msgstr "" - -#: src/tables/build/BuildLineTable.tsx:136 -msgid "Insufficient stock" -msgstr "" - -#: src/tables/build/BuildLineTable.tsx:152 -#: src/tables/sales/SalesOrderLineItemTable.tsx:121 -#: src/tables/stock/StockItemTable.tsx:186 -msgid "No stock available" -msgstr "" - -#: src/tables/build/BuildLineTable.tsx:201 -msgid "Gets Inherited" -msgstr "" - -#: src/tables/build/BuildLineTable.tsx:210 -msgid "Unit Quantity" -msgstr "" +msgstr "Üretimde" #: src/tables/build/BuildLineTable.tsx:267 -#: src/tables/sales/SalesOrderLineItemTable.tsx:230 +msgid "Insufficient stock" +msgstr "Yetersiz stok" + +#: src/tables/build/BuildLineTable.tsx:283 +#: src/tables/sales/SalesOrderLineItemTable.tsx:129 +#: src/tables/stock/StockItemTable.tsx:175 +msgid "No stock available" +msgstr "Mevcut stok yok" + +#: src/tables/build/BuildLineTable.tsx:355 +msgid "Gets Inherited" +msgstr "Miras Alınır" + +#: src/tables/build/BuildLineTable.tsx:366 +msgid "Unit Quantity" +msgstr "Birim Miktarı" + +#: src/tables/build/BuildLineTable.tsx:381 +msgid "Required Quantity" +msgstr "" + +#: src/tables/build/BuildLineTable.tsx:432 +#: src/tables/sales/SalesOrderLineItemTable.tsx:254 msgid "Create Build Order" +msgstr "Yapım Siparişi Oluştur" + +#: src/tables/build/BuildLineTable.tsx:460 +msgid "Auto allocation in progress" msgstr "" -#: src/tables/build/BuildLineTable.tsx:298 -msgid "Allocate Stock" +#: src/tables/build/BuildLineTable.tsx:463 +#: src/tables/build/BuildLineTable.tsx:632 +msgid "Auto Allocate Stock" msgstr "" -#: src/tables/build/BuildLineTable.tsx:305 +#: src/tables/build/BuildLineTable.tsx:464 +msgid "Automatically allocate stock to this build according to the selected options" +msgstr "" + +#: src/tables/build/BuildLineTable.tsx:482 +#: src/tables/build/BuildLineTable.tsx:496 +#: src/tables/build/BuildLineTable.tsx:579 +#: src/tables/build/BuildLineTable.tsx:664 +#: src/tables/build/BuildOutputTable.tsx:314 +#: src/tables/build/BuildOutputTable.tsx:319 +msgid "Deallocate Stock" +msgstr "" + +#: src/tables/build/BuildLineTable.tsx:498 +msgid "Deallocate all untracked stock for this build order" +msgstr "" + +#: src/tables/build/BuildLineTable.tsx:500 +msgid "Deallocate stock from the selected line item" +msgstr "" + +#: src/tables/build/BuildLineTable.tsx:504 +msgid "Stock has been deallocated" +msgstr "" + +#: src/tables/build/BuildLineTable.tsx:589 msgid "Order Stock" -msgstr "" +msgstr "Stok Sipariş Et" -#: src/tables/build/BuildLineTable.tsx:312 +#: src/tables/build/BuildLineTable.tsx:596 msgid "Build Stock" -msgstr "" +msgstr "Yapım Stoku" -#: src/tables/build/BuildOrderTable.tsx:111 -msgid "Show active orders" +#: src/tables/build/BuildLineTable.tsx:610 +msgid "View Part" msgstr "" #: src/tables/build/BuildOrderTable.tsx:116 -msgid "Cascade" -msgstr "" +#~ msgid "Cascade" +#~ msgstr "Cascade" #: src/tables/build/BuildOrderTable.tsx:117 -msgid "Display recursive child orders" -msgstr "" +#~ msgid "Display recursive child orders" +#~ msgstr "Display recursive child orders" -#: src/tables/build/BuildOrderTable.tsx:123 -#: src/tables/part/PartPurchaseOrdersTable.tsx:126 -#: src/tables/purchasing/PurchaseOrderTable.tsx:56 -#: src/tables/sales/ReturnOrderTable.tsx:47 -#: src/tables/sales/SalesOrderTable.tsx:54 +#: src/tables/build/BuildOrderTable.tsx:121 +msgid "Show outstanding orders" +msgstr "Bekleyen siparişleri göster" + +#: src/tables/build/BuildOrderTable.tsx:121 +#~ msgid "Show active orders" +#~ msgstr "Show active orders" + +#: src/tables/build/BuildOrderTable.tsx:122 +#~ msgid "Show overdue status" +#~ msgstr "Show overdue status" + +#: src/tables/build/BuildOrderTable.tsx:126 +#: src/tables/part/PartPurchaseOrdersTable.tsx:132 +#: src/tables/purchasing/PurchaseOrderTable.tsx:59 +#: src/tables/sales/ReturnOrderTable.tsx:57 +#: src/tables/sales/SalesOrderTable.tsx:57 msgid "Filter by order status" -msgstr "" +msgstr "Sipariş durumuna göre süz" -#: src/tables/build/BuildOrderTable.tsx:130 -msgid "Show overdue status" -msgstr "" - -#: src/tables/build/BuildOrderTable.tsx:141 -#: src/tables/purchasing/PurchaseOrderTable.tsx:65 -#: src/tables/sales/ReturnOrderTable.tsx:56 -#: src/tables/sales/SalesOrderTable.tsx:63 -msgid "Filter by project code" -msgstr "" - -#: src/tables/build/BuildOrderTable.tsx:146 +#: src/tables/build/BuildOrderTable.tsx:136 #: src/tables/purchasing/PurchaseOrderTable.tsx:70 -#: src/tables/sales/ReturnOrderTable.tsx:61 +#: src/tables/sales/ReturnOrderTable.tsx:68 #: src/tables/sales/SalesOrderTable.tsx:68 -msgid "Has Project Code" -msgstr "" +msgid "Filter by project code" +msgstr "Proje koduna göre süz" -#: src/tables/build/BuildOrderTable.tsx:147 +#: src/tables/build/BuildOrderTable.tsx:139 #: src/tables/purchasing/PurchaseOrderTable.tsx:71 #: src/tables/sales/ReturnOrderTable.tsx:62 #: src/tables/sales/SalesOrderTable.tsx:69 -msgid "Filter by whether the purchase order has a project code" -msgstr "" +#~ msgid "Filter by whether the purchase order has a project code" +#~ msgstr "Filter by whether the purchase order has a project code" -#: src/tables/build/BuildOrderTable.tsx:152 +#: src/tables/build/BuildOrderTable.tsx:143 msgid "Filter by user who issued this order" -msgstr "" +msgstr "Bu siparişi veren kullanıcıya göre süz" -#: src/tables/build/BuildOrderTable.tsx:158 -#: src/tables/purchasing/PurchaseOrderTable.tsx:76 -#: src/tables/sales/ReturnOrderTable.tsx:67 -#: src/tables/sales/SalesOrderTable.tsx:74 +#: src/tables/build/BuildOrderTable.tsx:149 +#: src/tables/purchasing/PurchaseOrderTable.tsx:77 +#: src/tables/sales/ReturnOrderTable.tsx:75 +#: src/tables/sales/SalesOrderTable.tsx:75 msgid "Filter by responsible owner" -msgstr "" +msgstr "Sorumlu sahibine göre süz" -#: src/tables/build/BuildOrderTestTable.tsx:75 -#: src/tables/build/BuildOrderTestTable.tsx:111 -#: src/tables/stock/StockItemTestResultTable.tsx:257 -#: src/tables/stock/StockItemTestResultTable.tsx:329 -#: src/tables/stock/StockItemTestResultTable.tsx:384 +#: src/tables/build/BuildOrderTestTable.tsx:76 +#: src/tables/build/BuildOrderTestTable.tsx:112 +#: src/tables/stock/StockItemTestResultTable.tsx:275 +#: src/tables/stock/StockItemTestResultTable.tsx:347 +#: src/tables/stock/StockItemTestResultTable.tsx:403 msgid "Add Test Result" -msgstr "" +msgstr "Test Sonucu Ekle" -#: src/tables/build/BuildOrderTestTable.tsx:82 -#: src/tables/stock/StockItemTestResultTable.tsx:259 +#: src/tables/build/BuildOrderTestTable.tsx:83 +#: src/tables/stock/StockItemTestResultTable.tsx:277 msgid "Test result added" -msgstr "" +msgstr "Test sonucu eklendi" -#: src/tables/build/BuildOrderTestTable.tsx:110 -#: src/tables/stock/StockItemTestResultTable.tsx:174 +#: src/tables/build/BuildOrderTestTable.tsx:111 +#: src/tables/stock/StockItemTestResultTable.tsx:180 msgid "No Result" -msgstr "" +msgstr "Sonuç Yok" -#: src/tables/build/BuildOrderTestTable.tsx:220 +#: src/tables/build/BuildOrderTestTable.tsx:221 msgid "Show build outputs currently in production" +msgstr "Üretimde olan yapım çıktılarını göster" + +#: src/tables/build/BuildOutputTable.tsx:76 +msgid "Build Output Stock Allocation" msgstr "" #: src/tables/build/BuildOutputTable.tsx:161 #~ msgid "Delete build output" #~ msgstr "Delete build output" -#: src/tables/build/BuildOutputTable.tsx:173 -#: src/tables/build/BuildOutputTable.tsx:211 +#: src/tables/build/BuildOutputTable.tsx:258 +#: src/tables/build/BuildOutputTable.tsx:374 msgid "Add Build Output" +msgstr "Yapım Çıktısı Ekle" + +#: src/tables/build/BuildOutputTable.tsx:304 +#~ msgid "Edit build output" +#~ msgstr "Edit build output" + +#: src/tables/build/BuildOutputTable.tsx:306 +#: src/tables/build/BuildOutputTable.tsx:417 +msgid "Edit Build Output" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:216 +#: src/tables/build/BuildOutputTable.tsx:321 +msgid "This action will deallocate all stock from the selected build output" +msgstr "" + +#: src/tables/build/BuildOutputTable.tsx:341 msgid "Complete selected outputs" -msgstr "" +msgstr "Seçilen çıktıları tamamla" -#: src/tables/build/BuildOutputTable.tsx:226 +#: src/tables/build/BuildOutputTable.tsx:352 msgid "Scrap selected outputs" -msgstr "" +msgstr "Seçilen çıktıları hurdaya ayır" -#: src/tables/build/BuildOutputTable.tsx:236 +#: src/tables/build/BuildOutputTable.tsx:363 msgid "Cancel selected outputs" -msgstr "" +msgstr "Seçilen çıktıları iptal et" -#: src/tables/build/BuildOutputTable.tsx:252 +#: src/tables/build/BuildOutputTable.tsx:385 msgid "Allocate" -msgstr "" +msgstr "Ayır" -#: src/tables/build/BuildOutputTable.tsx:253 +#: src/tables/build/BuildOutputTable.tsx:386 msgid "Allocate stock to build output" -msgstr "" +msgstr "Çıktıyı yapmak için stoku ayır" -#: src/tables/build/BuildOutputTable.tsx:259 +#: src/tables/build/BuildOutputTable.tsx:396 msgid "Deallocate" -msgstr "" +msgstr "İade Et" -#: src/tables/build/BuildOutputTable.tsx:260 +#: src/tables/build/BuildOutputTable.tsx:397 msgid "Deallocate stock from build output" -msgstr "" +msgstr "Yapım çıktısından stoku iade et" -#: src/tables/build/BuildOutputTable.tsx:267 +#: src/tables/build/BuildOutputTable.tsx:408 msgid "Complete build output" -msgstr "" +msgstr "Yapım çıktısını tamamla" -#: src/tables/build/BuildOutputTable.tsx:276 +#: src/tables/build/BuildOutputTable.tsx:424 msgid "Scrap" -msgstr "" +msgstr "Hurdaya Ayır" -#: src/tables/build/BuildOutputTable.tsx:277 +#: src/tables/build/BuildOutputTable.tsx:425 msgid "Scrap build output" -msgstr "" +msgstr "Yapım çıktısını hurdaya ayır" -#: src/tables/build/BuildOutputTable.tsx:280 -#~ msgid "Allocated Items" -#~ msgstr "Allocated Items" - -#: src/tables/build/BuildOutputTable.tsx:287 +#: src/tables/build/BuildOutputTable.tsx:435 msgid "Cancel build output" -msgstr "" +msgstr "Yapım çıktısını iptal et" -#: src/tables/build/BuildOutputTable.tsx:325 -msgid "Batch" -msgstr "" - -#: src/tables/build/BuildOutputTable.tsx:340 +#: src/tables/build/BuildOutputTable.tsx:488 msgid "Allocated Lines" -msgstr "" +msgstr "Ayrılan Satırlar" -#: src/tables/build/BuildOutputTable.tsx:355 +#: src/tables/build/BuildOutputTable.tsx:503 msgid "Required Tests" -msgstr "" +msgstr "Gerekli Testler" -#: src/tables/company/AddressTable.tsx:121 -#: src/tables/company/AddressTable.tsx:185 +#: src/tables/company/AddressTable.tsx:118 +#: src/tables/company/AddressTable.tsx:183 msgid "Add Address" -msgstr "" +msgstr "Adres Ekle" -#: src/tables/company/AddressTable.tsx:126 +#: src/tables/company/AddressTable.tsx:123 msgid "Address created" -msgstr "" +msgstr "Adres oluşturuldu" -#: src/tables/company/AddressTable.tsx:135 +#: src/tables/company/AddressTable.tsx:132 msgid "Edit Address" -msgstr "" +msgstr "Adresi Düzenle" -#: src/tables/company/AddressTable.tsx:143 +#: src/tables/company/AddressTable.tsx:140 msgid "Delete Address" -msgstr "" +msgstr "Adresi Sil" -#: src/tables/company/AddressTable.tsx:144 +#: src/tables/company/AddressTable.tsx:141 msgid "Are you sure you want to delete this address?" -msgstr "" +msgstr "Bu adresi silmek istediğinize emin misiniz?" #: src/tables/company/CompanyTable.tsx:71 #~ msgid "New Company" #~ msgstr "New Company" -#: src/tables/company/CompanyTable.tsx:74 -#: src/tables/company/CompanyTable.tsx:123 +#: src/tables/company/CompanyTable.tsx:75 +#: src/tables/company/CompanyTable.tsx:125 msgid "Add Company" -msgstr "" +msgstr "Şirket Ekle" -#: src/tables/company/CompanyTable.tsx:96 +#: src/tables/company/CompanyTable.tsx:97 msgid "Show active companies" -msgstr "" +msgstr "Etkin şirketleri göster" -#: src/tables/company/CompanyTable.tsx:101 +#: src/tables/company/CompanyTable.tsx:102 msgid "Show companies which are suppliers" -msgstr "" +msgstr "Sağlayıcı olan şirketleri göster" -#: src/tables/company/CompanyTable.tsx:106 +#: src/tables/company/CompanyTable.tsx:107 msgid "Show companies which are manufacturers" -msgstr "" +msgstr "Üretici olan şirketleri göster" -#: src/tables/company/CompanyTable.tsx:111 +#: src/tables/company/CompanyTable.tsx:112 msgid "Show companies which are customers" -msgstr "" +msgstr "Müşteri olan şirketleri göster" #: src/tables/company/ContactTable.tsx:71 msgid "Edit Contact" -msgstr "" +msgstr "Bağlantıyı Düzenle" #: src/tables/company/ContactTable.tsx:78 msgid "Add Contact" -msgstr "" +msgstr "Bağlantı Ekle" #: src/tables/company/ContactTable.tsx:89 msgid "Delete Contact" -msgstr "" +msgstr "Bağlantıyı Sil" -#: src/tables/company/ContactTable.tsx:129 +#: src/tables/company/ContactTable.tsx:130 msgid "Add contact" -msgstr "" +msgstr "Bağlantı ekle" -#: src/tables/general/AttachmentTable.tsx:130 +#: src/tables/general/AttachmentTable.tsx:135 msgid "File uploaded" -msgstr "" +msgstr "Dosya karşıya yüklendi" -#: src/tables/general/AttachmentTable.tsx:131 +#: src/tables/general/AttachmentTable.tsx:136 msgid "File {0} uploaded successfully" -msgstr "" +msgstr "{0} dosyası başarıyla yüklendi" -#: src/tables/general/AttachmentTable.tsx:142 +#: src/tables/general/AttachmentTable.tsx:147 msgid "Upload Error" -msgstr "" +msgstr "Yükleme Hatası" -#: src/tables/general/AttachmentTable.tsx:143 +#: src/tables/general/AttachmentTable.tsx:148 msgid "File could not be uploaded" -msgstr "" +msgstr "Dosya yüklenemedi" -#: src/tables/general/AttachmentTable.tsx:191 +#: src/tables/general/AttachmentTable.tsx:196 msgid "Upload Attachment" -msgstr "" +msgstr "Ek Yükle" -#: src/tables/general/AttachmentTable.tsx:201 +#: src/tables/general/AttachmentTable.tsx:206 msgid "Edit Attachment" -msgstr "" +msgstr "Eki Düzenle" -#: src/tables/general/AttachmentTable.tsx:215 +#: src/tables/general/AttachmentTable.tsx:220 msgid "Delete Attachment" -msgstr "" - -#: src/tables/general/AttachmentTable.tsx:225 -msgid "Is Link" -msgstr "" - -#: src/tables/general/AttachmentTable.tsx:226 -msgid "Show link attachments" -msgstr "" +msgstr "Eki Sil" #: src/tables/general/AttachmentTable.tsx:230 -msgid "Is File" -msgstr "" +msgid "Is Link" +msgstr "Bağlantı mı" #: src/tables/general/AttachmentTable.tsx:231 +msgid "Show link attachments" +msgstr "Bağlantı eklerini göster" + +#: src/tables/general/AttachmentTable.tsx:235 +msgid "Is File" +msgstr "Dosya mı" + +#: src/tables/general/AttachmentTable.tsx:236 msgid "Show file attachments" -msgstr "" +msgstr "Dosya eklerini göster" -#: src/tables/general/AttachmentTable.tsx:240 +#: src/tables/general/AttachmentTable.tsx:245 msgid "Add attachment" -msgstr "" - -#: src/tables/general/AttachmentTable.tsx:251 -msgid "Add external link" -msgstr "" +msgstr "Ek ekle" #: src/tables/general/AttachmentTable.tsx:254 #~ msgid "Upload attachment" #~ msgstr "Upload attachment" -#: src/tables/general/AttachmentTable.tsx:299 -msgid "No attachments found" -msgstr "" +#: src/tables/general/AttachmentTable.tsx:256 +msgid "Add external link" +msgstr "Harici bağlantı ekle" -#: src/tables/general/AttachmentTable.tsx:337 +#: src/tables/general/AttachmentTable.tsx:304 +msgid "No attachments found" +msgstr "Hiç ek bulunamadı" + +#: src/tables/general/AttachmentTable.tsx:343 msgid "Drag attachment file here to upload" -msgstr "" +msgstr "Ek dosyasını yüklemek için buraya sürükleyiniz" #: src/tables/general/ExtraLineItemTable.tsx:86 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:251 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:60 -#: src/tables/sales/SalesOrderLineItemTable.tsx:196 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:263 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:362 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:72 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:168 +#: src/tables/sales/SalesOrderLineItemTable.tsx:206 +#: src/tables/sales/SalesOrderLineItemTable.tsx:291 msgid "Add Line Item" -msgstr "" +msgstr "Satır Ögesi Ekle" #: src/tables/general/ExtraLineItemTable.tsx:98 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:271 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:72 -#: src/tables/sales/SalesOrderLineItemTable.tsx:214 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:283 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:84 +#: src/tables/sales/SalesOrderLineItemTable.tsx:224 msgid "Edit Line Item" -msgstr "" +msgstr "Satır Ögesini Düzenle" #: src/tables/general/ExtraLineItemTable.tsx:106 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:279 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:80 -#: src/tables/sales/SalesOrderLineItemTable.tsx:222 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:291 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:92 +#: src/tables/sales/SalesOrderLineItemTable.tsx:232 msgid "Delete Line Item" -msgstr "" +msgstr "Satır Ögesini Sil" -#: src/tables/general/ExtraLineItemTable.tsx:142 +#: src/tables/general/ExtraLineItemTable.tsx:143 msgid "Add Extra Line Item" -msgstr "" +msgstr "Fazladan Satır Ögesi Ekle" #: src/tables/machine/MachineListTable.tsx:202 msgid "Machine restarted" -msgstr "" +msgstr "Makine yeniden başladı" #: src/tables/machine/MachineListTable.tsx:212 -#: src/tables/machine/MachineListTable.tsx:263 +#: src/tables/machine/MachineListTable.tsx:261 msgid "Edit machine" -msgstr "" +msgstr "Makineyi düzenle" #: src/tables/machine/MachineListTable.tsx:226 -#: src/tables/machine/MachineListTable.tsx:267 +#: src/tables/machine/MachineListTable.tsx:265 msgid "Delete machine" -msgstr "" +msgstr "Makineyi sil" #: src/tables/machine/MachineListTable.tsx:227 msgid "Machine successfully deleted." -msgstr "" +msgstr "Makine başarıyla silindi." #: src/tables/machine/MachineListTable.tsx:231 msgid "Are you sure you want to remove the machine \"{0}\"?" -msgstr "" +msgstr "\"{0}\" makinesini silmek istediğinize emin misiniz?" -#: src/tables/machine/MachineListTable.tsx:255 -#: src/tables/machine/MachineListTable.tsx:432 +#: src/tables/machine/MachineListTable.tsx:254 +#: src/tables/machine/MachineListTable.tsx:442 msgid "Restart required" -msgstr "" +msgstr "Yeniden başlatma gerekli" -#: src/tables/machine/MachineListTable.tsx:259 +#: src/tables/machine/MachineListTable.tsx:258 msgid "Machine Actions" -msgstr "" +msgstr "Makine Eylemleri" + +#: src/tables/machine/MachineListTable.tsx:270 +msgid "Restart" +msgstr "Yeniden Başlat" #: src/tables/machine/MachineListTable.tsx:272 -msgid "Restart" -msgstr "" +msgid "Restart machine" +msgstr "Makineyi yeniden başlat" #: src/tables/machine/MachineListTable.tsx:274 -msgid "Restart machine" -msgstr "" - -#: src/tables/machine/MachineListTable.tsx:276 msgid "manual restart required" -msgstr "" +msgstr "Elle yeniden başlatma gerekli" + +#: src/tables/machine/MachineListTable.tsx:291 +#~ msgid "Machine information" +#~ msgstr "Machine information" #: src/tables/machine/MachineListTable.tsx:292 -msgid "Machine information" +msgid "Machine Information" msgstr "" -#: src/tables/machine/MachineListTable.tsx:303 -#: src/tables/machine/MachineListTable.tsx:599 +#: src/tables/machine/MachineListTable.tsx:302 +#: src/tables/machine/MachineListTable.tsx:610 msgid "Machine Type" -msgstr "" +msgstr "Makine Türü" -#: src/tables/machine/MachineListTable.tsx:316 +#: src/tables/machine/MachineListTable.tsx:315 msgid "Machine Driver" -msgstr "" +msgstr "Makine Sürücüsü" -#: src/tables/machine/MachineListTable.tsx:329 +#: src/tables/machine/MachineListTable.tsx:330 msgid "Initialized" -msgstr "" +msgstr "İlklendi" -#: src/tables/machine/MachineListTable.tsx:350 -#: src/tables/machine/MachineTypeTable.tsx:261 -msgid "Errors" -msgstr "" - -#: src/tables/machine/MachineListTable.tsx:358 -#: src/tables/machine/MachineTypeTable.tsx:269 +#: src/tables/machine/MachineListTable.tsx:359 +#: src/tables/machine/MachineTypeTable.tsx:290 msgid "No errors reported" -msgstr "" +msgstr "Hiç hata raporlanmadı" #: src/tables/machine/MachineListTable.tsx:378 msgid "Machine Settings" -msgstr "" +msgstr "Makine Ayarları" -#: src/tables/machine/MachineListTable.tsx:389 +#: src/tables/machine/MachineListTable.tsx:394 msgid "Driver Settings" -msgstr "" +msgstr "Sürücü Ayarları" #: src/tables/machine/MachineListTable.tsx:494 #~ msgid "Create machine" #~ msgstr "Create machine" -#: src/tables/machine/MachineListTable.tsx:506 +#: src/tables/machine/MachineListTable.tsx:516 +#: src/tables/machine/MachineListTable.tsx:558 msgid "Add machine" -msgstr "" +msgstr "Makine ekle" #: src/tables/machine/MachineListTable.tsx:561 -msgid "Machine detail" +#~ msgid "Machine detail" +#~ msgstr "Machine detail" + +#: src/tables/machine/MachineListTable.tsx:572 +msgid "Machine Detail" msgstr "" -#: src/tables/machine/MachineListTable.tsx:608 +#: src/tables/machine/MachineListTable.tsx:619 msgid "Driver" -msgstr "" +msgstr "Sürücü" -#: src/tables/machine/MachineTypeTable.tsx:73 +#: src/tables/machine/MachineTypeTable.tsx:78 msgid "Builtin driver" +msgstr "Dahili sürücü" + +#: src/tables/machine/MachineTypeTable.tsx:96 +msgid "Not Found" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:89 +#: src/tables/machine/MachineTypeTable.tsx:99 msgid "Machine type not found." +msgstr "Makine türü bulunamadı." + +#: src/tables/machine/MachineTypeTable.tsx:99 +#~ msgid "Machine type information" +#~ msgstr "Machine type information" + +#: src/tables/machine/MachineTypeTable.tsx:109 +msgid "Machine Type Information" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:97 -msgid "Machine type information" -msgstr "" - -#: src/tables/machine/MachineTypeTable.tsx:110 -#: src/tables/machine/MachineTypeTable.tsx:217 -msgid "Slug" -msgstr "" - -#: src/tables/machine/MachineTypeTable.tsx:118 +#: src/tables/machine/MachineTypeTable.tsx:124 #: src/tables/machine/MachineTypeTable.tsx:238 -msgid "Provider plugin" -msgstr "" - -#: src/tables/machine/MachineTypeTable.tsx:130 -#: src/tables/machine/MachineTypeTable.tsx:250 -msgid "Provider file" -msgstr "" +msgid "Slug" +msgstr "Slug" #: src/tables/machine/MachineTypeTable.tsx:135 -#: src/tables/machine/MachineTypeTable.tsx:255 -#: src/tables/plugin/PluginListTable.tsx:180 -#: src/tables/plugin/PluginListTable.tsx:568 -msgid "Builtin" +#: src/tables/machine/MachineTypeTable.tsx:259 +msgid "Provider plugin" +msgstr "Sağlayıcı eklentisi" + +#: src/tables/machine/MachineTypeTable.tsx:147 +#: src/tables/machine/MachineTypeTable.tsx:271 +msgid "Provider file" +msgstr "Sağlayıcı dosyası" + +#: src/tables/machine/MachineTypeTable.tsx:148 +#~ msgid "Available drivers" +#~ msgstr "Available drivers" + +#: src/tables/machine/MachineTypeTable.tsx:162 +msgid "Available Drivers" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:146 -msgid "Available drivers" -msgstr "" - -#: src/tables/machine/MachineTypeTable.tsx:196 +#: src/tables/machine/MachineTypeTable.tsx:217 msgid "Machine driver not found." -msgstr "" +msgstr "Makine sürücüsü bulunamadı." -#: src/tables/machine/MachineTypeTable.tsx:204 +#: src/tables/machine/MachineTypeTable.tsx:225 msgid "Machine driver information" -msgstr "" +msgstr "Makine sürücüsü bilgisi" -#: src/tables/machine/MachineTypeTable.tsx:224 +#: src/tables/machine/MachineTypeTable.tsx:245 msgid "Machine type" -msgstr "" +msgstr "Makine türü" -#: src/tables/machine/MachineTypeTable.tsx:327 +#: src/tables/machine/MachineTypeTable.tsx:338 +#~ msgid "Machine type detail" +#~ msgstr "Machine type detail" + +#: src/tables/machine/MachineTypeTable.tsx:348 msgid "Builtin type" +msgstr "Yerleşik tür" + +#: src/tables/machine/MachineTypeTable.tsx:348 +#~ msgid "Machine driver detail" +#~ msgstr "Machine driver detail" + +#: src/tables/machine/MachineTypeTable.tsx:357 +msgid "Machine Type Detail" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:336 -msgid "Machine type detail" -msgstr "" - -#: src/tables/machine/MachineTypeTable.tsx:346 -msgid "Machine driver detail" +#: src/tables/machine/MachineTypeTable.tsx:367 +msgid "Machine Driver Detail" msgstr "" #: src/tables/notifications/NotificationsTable.tsx:26 msgid "Age" -msgstr "" +msgstr "Yaş" + +#: src/tables/notifications/NotificationsTable.tsx:36 +msgid "Notification" +msgstr "Bildirim" #: src/tables/notifications/NotificationsTable.tsx:40 #: src/tables/plugin/PluginErrorTable.tsx:37 +#: src/tables/settings/ErrorTable.tsx:50 msgid "Message" -msgstr "" +msgstr "İleti" #: src/tables/part/ParametricPartTable.tsx:74 msgid "Click to edit" -msgstr "" +msgstr "Düzenlemek için tıklayın" #: src/tables/part/ParametricPartTable.tsx:82 #~ msgid "Edit parameter" @@ -6431,72 +7595,71 @@ msgstr "" #: src/tables/part/ParametricPartTable.tsx:127 msgid "Add Part Parameter" -msgstr "" +msgstr "Parça Parametresi Ekle" #: src/tables/part/ParametricPartTable.tsx:141 #: src/tables/part/PartParameterTable.tsx:130 #: src/tables/part/PartParameterTable.tsx:153 msgid "Edit Part Parameter" -msgstr "" +msgstr "Parça Parametresini Düzenle" #: src/tables/part/ParametricPartTable.tsx:224 msgid "Show active parts" -msgstr "" +msgstr "Aktif parçları göster" #: src/tables/part/ParametricPartTable.tsx:229 msgid "Show locked parts" -msgstr "" +msgstr "Kilitli parçaları göster" #: src/tables/part/ParametricPartTable.tsx:234 msgid "Show assembly parts" +msgstr "Montaj parçalarını göster" + +#: src/tables/part/PartCategoryTable.tsx:48 +msgid "You are subscribed to notifications for this category" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:68 +#: src/tables/part/PartCategoryTable.tsx:80 #: src/tables/part/PartTable.tsx:196 msgid "Include Subcategories" msgstr "Alt Kategorileri Dahil Et" -#: src/tables/part/PartCategoryTable.tsx:69 +#: src/tables/part/PartCategoryTable.tsx:81 msgid "Include subcategories in results" -msgstr "" - -#: src/tables/part/PartCategoryTable.tsx:74 -msgid "Show structural categories" -msgstr "" - -#: src/tables/part/PartCategoryTable.tsx:78 -#: src/tables/part/PartTable.tsx:294 -msgid "Subscribed" -msgstr "" - -#: src/tables/part/PartCategoryTable.tsx:79 -msgid "Show categories to which the user is subscribed" -msgstr "" +msgstr "Sonuçlara alt sınıfları ekle" #: src/tables/part/PartCategoryTable.tsx:86 -msgid "New Part Category" -msgstr "" +msgid "Show structural categories" +msgstr "Yapısal sınıfları göster" -#: src/tables/part/PartCategoryTable.tsx:112 +#: src/tables/part/PartCategoryTable.tsx:91 +msgid "Show categories to which the user is subscribed" +msgstr "Kullanıcının abone olduğu sınıfları göster" + +#: src/tables/part/PartCategoryTable.tsx:100 +msgid "New Part Category" +msgstr "Yeni Parça Sınıfı" + +#: src/tables/part/PartCategoryTable.tsx:129 msgid "Add Part Category" -msgstr "" +msgstr "Parça Sınıfı Ekle" #: src/tables/part/PartCategoryTemplateTable.tsx:38 #: src/tables/part/PartCategoryTemplateTable.tsx:131 msgid "Add Category Parameter" -msgstr "" +msgstr "Sınıf Parametresi Ekle" #: src/tables/part/PartCategoryTemplateTable.tsx:46 msgid "Edit Category Parameter" -msgstr "" +msgstr "Sınıf Parametresini Düzenle" #: src/tables/part/PartCategoryTemplateTable.tsx:54 msgid "Delete Category Parameter" -msgstr "" +msgstr "Sınıf Parametresini Sil" #: src/tables/part/PartCategoryTemplateTable.tsx:76 msgid "Parameter Template" -msgstr "" +msgstr "Parametre Şablonu" #: src/tables/part/PartCategoryTemplateTable.tsx:93 #~ msgid "[{0}]" @@ -6504,45 +7667,40 @@ msgstr "" #: src/tables/part/PartParameterTable.tsx:97 msgid "Internal Units" -msgstr "" +msgstr "Dahili Birimler" #: src/tables/part/PartParameterTable.tsx:114 msgid "New Part Parameter" -msgstr "" +msgstr "Yeni Parça Parametresi" #: src/tables/part/PartParameterTable.tsx:139 #: src/tables/part/PartParameterTable.tsx:161 msgid "Delete Part Parameter" -msgstr "" +msgstr "Parça Parametresini Sil" #: src/tables/part/PartParameterTable.tsx:179 msgid "Add parameter" -msgstr "" +msgstr "Parametre ekle" #: src/tables/part/PartParameterTable.tsx:198 msgid "Part parameters cannot be edited, as the part is locked" -msgstr "" - -#: src/tables/part/PartParameterTable.tsx:212 -#: src/tables/stock/StockItemTable.tsx:335 -msgid "Include Variants" -msgstr "" +msgstr "Parça kilitli olduğundan bu parçanın parametreleri düzenlenemez" #: src/tables/part/PartParameterTemplateTable.tsx:31 msgid "Checkbox" -msgstr "" +msgstr "Onay kutusu" #: src/tables/part/PartParameterTemplateTable.tsx:32 msgid "Show checkbox templates" -msgstr "" +msgstr "Onay kutusu şablonlarını göster" #: src/tables/part/PartParameterTemplateTable.tsx:36 msgid "Has choices" -msgstr "" +msgstr "Seçenekleri olanlar" #: src/tables/part/PartParameterTemplateTable.tsx:37 msgid "Show templates with choices" -msgstr "" +msgstr "Seçenekli şablonları göster" #: src/tables/part/PartParameterTemplateTable.tsx:41 #: src/tables/part/PartTable.tsx:220 @@ -6551,44 +7709,41 @@ msgstr "Birimi Var" #: src/tables/part/PartParameterTemplateTable.tsx:42 msgid "Show templates with units" -msgstr "" +msgstr "Birimli şablonları göster" #: src/tables/part/PartParameterTemplateTable.tsx:85 +#: src/tables/part/PartParameterTemplateTable.tsx:141 msgid "Add Parameter Template" -msgstr "" +msgstr "Parametre Şablonu Ekle" #: src/tables/part/PartParameterTemplateTable.tsx:100 msgid "Edit Parameter Template" -msgstr "" +msgstr "Parametre Şablonunu Düzenle" #: src/tables/part/PartParameterTemplateTable.tsx:111 msgid "Delete Parameter Template" -msgstr "" +msgstr "Parametre Şablonunu Sil" #: src/tables/part/PartParameterTemplateTable.tsx:141 -msgid "Add parameter template" -msgstr "" +#~ msgid "Add parameter template" +#~ msgstr "Add parameter template" -#: src/tables/part/PartPurchaseOrdersTable.tsx:77 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:162 +#: src/tables/part/PartPurchaseOrdersTable.tsx:78 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:168 msgid "Total Quantity" -msgstr "" +msgstr "Toplam Miktar" -#: src/tables/part/PartPurchaseOrdersTable.tsx:115 -msgid "Pending" -msgstr "" - -#: src/tables/part/PartPurchaseOrdersTable.tsx:116 +#: src/tables/part/PartPurchaseOrdersTable.tsx:122 msgid "Show pending orders" -msgstr "" +msgstr "Bekleyen siparişleri göster" -#: src/tables/part/PartPurchaseOrdersTable.tsx:121 +#: src/tables/part/PartPurchaseOrdersTable.tsx:127 msgid "Show received items" -msgstr "" +msgstr "Alınan ögeleri göster" #: src/tables/part/PartTable.tsx:77 msgid "Minimum stock" -msgstr "" +msgstr "Minimum stok" #: src/tables/part/PartTable.tsx:179 msgid "Filter by part active status" @@ -6596,7 +7751,7 @@ msgstr "Parçanın aktiflik durumuna göre filtrele" #: src/tables/part/PartTable.tsx:185 msgid "Filter by part locked status" -msgstr "" +msgstr "Parça kilit durumuna göre süz" #: src/tables/part/PartTable.tsx:191 msgid "Filter by assembly attribute" @@ -6612,7 +7767,7 @@ msgstr "Bileşen niteliğine göre filtrele" #: src/tables/part/PartTable.tsx:209 msgid "Filter by testable attribute" -msgstr "" +msgstr "Test edilebilir özelliğe göre süz" #: src/tables/part/PartTable.tsx:215 msgid "Filter by trackable attribute" @@ -6624,7 +7779,7 @@ msgstr "Birimi olan parçaları filtrele" #: src/tables/part/PartTable.tsx:226 msgid "Has IPN" -msgstr "DPN Var" +msgstr "DPN'si Olanlar" #: src/tables/part/PartTable.tsx:227 msgid "Filter by parts which have an internal part number" @@ -6674,203 +7829,211 @@ msgstr "Sanal Değil" #: src/tables/part/PartTable.tsx:266 msgid "Is Template" -msgstr "" +msgstr "Şablon Olanlar" #: src/tables/part/PartTable.tsx:267 msgid "Filter by parts which are templates" -msgstr "" +msgstr "Şablon olan parçalara göre süz" #: src/tables/part/PartTable.tsx:272 msgid "Is Revision" -msgstr "" +msgstr "Revizyon Olanlar" #: src/tables/part/PartTable.tsx:273 msgid "Filter by parts which are revisions" -msgstr "" +msgstr "Revizyon olan parçalara göre süz" #: src/tables/part/PartTable.tsx:277 msgid "Has Revisions" -msgstr "" +msgstr "Revizyonu Olanlar" #: src/tables/part/PartTable.tsx:278 msgid "Filter by parts which have revisions" -msgstr "" +msgstr "Revizyonu olan parçalara göre süz" #: src/tables/part/PartTable.tsx:283 msgid "Filter by parts which have pricing information" -msgstr "" +msgstr "Fiyatlandırma bilgisi olan parçalara göre süz" #: src/tables/part/PartTable.tsx:289 msgid "Filter by parts which have available stock" -msgstr "" +msgstr "Stokta olan parçalara göre süz" #: src/tables/part/PartTable.tsx:295 msgid "Filter by parts to which the user is subscribed" -msgstr "" +msgstr "Kullanıcının abone olduğu parçalara göre süz" #: src/tables/part/PartTable.tsx:300 msgid "Has Stocktake" -msgstr "" +msgstr "Stok Sayımı Olanlar" #: src/tables/part/PartTable.tsx:301 msgid "Filter by parts which have stocktake information" -msgstr "" +msgstr "Stok sayımı bilgisi olan parçalara göre süz" #: src/tables/part/PartTestTemplateTable.tsx:50 msgid "Test is defined for a parent template part" -msgstr "" +msgstr "Test bir üst şablon parça için tanımlıdır" #: src/tables/part/PartTestTemplateTable.tsx:64 msgid "Template Details" -msgstr "" +msgstr "Şablon Ayrıntıları" #: src/tables/part/PartTestTemplateTable.tsx:74 msgid "Results" -msgstr "" - -#: src/tables/part/PartTestTemplateTable.tsx:76 -msgid "No Results" -msgstr "" - -#: src/tables/part/PartTestTemplateTable.tsx:106 -#: src/tables/stock/StockItemTestResultTable.tsx:365 -msgid "Required" -msgstr "" +msgstr "Sonuçlar" #: src/tables/part/PartTestTemplateTable.tsx:107 msgid "Show required tests" -msgstr "" +msgstr "Gerekli testleri göster" #: src/tables/part/PartTestTemplateTable.tsx:111 -#: src/tables/settings/TemplateTable.tsx:167 -#: src/tables/settings/TemplateTable.tsx:283 +#: src/tables/settings/TemplateTable.tsx:247 +#: src/tables/settings/TemplateTable.tsx:363 msgid "Enabled" -msgstr "" +msgstr "Etkin" #: src/tables/part/PartTestTemplateTable.tsx:112 msgid "Show enabled tests" -msgstr "" +msgstr "Etkin testleri göster" #: src/tables/part/PartTestTemplateTable.tsx:116 msgid "Requires Value" -msgstr "" +msgstr "Değer Gerektirir" #: src/tables/part/PartTestTemplateTable.tsx:117 msgid "Show tests that require a value" -msgstr "" +msgstr "Bir değer gerektiren testleri göster" #: src/tables/part/PartTestTemplateTable.tsx:121 msgid "Requires Attachment" -msgstr "" +msgstr "Ek Gerektirir" #: src/tables/part/PartTestTemplateTable.tsx:122 msgid "Show tests that require an attachment" -msgstr "" +msgstr "Bir ek gerektiren testleri göster" #: src/tables/part/PartTestTemplateTable.tsx:126 msgid "Include Inherited" -msgstr "" +msgstr "Miras Alınanı İçer" #: src/tables/part/PartTestTemplateTable.tsx:127 msgid "Show tests from inherited templates" -msgstr "" +msgstr "Miras alınan şablonlardan olan testleri göster" #: src/tables/part/PartTestTemplateTable.tsx:131 msgid "Has Results" -msgstr "" +msgstr "Sonuçları Olanlar" #: src/tables/part/PartTestTemplateTable.tsx:132 msgid "Show tests which have recorded results" -msgstr "" +msgstr "Kayıtlı sonuçları olan testleri göster" #: src/tables/part/PartTestTemplateTable.tsx:154 -#: src/tables/part/PartTestTemplateTable.tsx:237 +#: src/tables/part/PartTestTemplateTable.tsx:238 msgid "Add Test Template" -msgstr "" +msgstr "Test Şablonu Ekle" #: src/tables/part/PartTestTemplateTable.tsx:170 msgid "Edit Test Template" -msgstr "" +msgstr "Test Şablonunu Düzenle" #: src/tables/part/PartTestTemplateTable.tsx:181 msgid "Delete Test Template" -msgstr "" +msgstr "Test Şablonunu Sil" #: src/tables/part/PartTestTemplateTable.tsx:183 msgid "This action cannot be reversed" -msgstr "" +msgstr "Bu eylem geri alınamaz" #: src/tables/part/PartTestTemplateTable.tsx:185 msgid "Any tests results associated with this template will be deleted" -msgstr "" +msgstr "Bu şablonla ilişkili tüm test sonuçları silinecektir" #: src/tables/part/PartTestTemplateTable.tsx:204 msgid "View Parent Part" -msgstr "" +msgstr "Üst parçayı Görüntüle" -#: src/tables/part/PartTestTemplateTable.tsx:257 +#: src/tables/part/PartTestTemplateTable.tsx:258 msgid "Part templates cannot be edited, as the part is locked" -msgstr "" +msgstr "Parça kilitli olduğundan parça şablonları düzenlenemez" #: src/tables/part/PartThumbTable.tsx:201 msgid "Select" -msgstr "" +msgstr "Seç" #: src/tables/part/PartVariantTable.tsx:16 msgid "Show active variants" -msgstr "" +msgstr "Etkin türevleri göster" #: src/tables/part/PartVariantTable.tsx:20 msgid "Template" -msgstr "" +msgstr "Şablon" #: src/tables/part/PartVariantTable.tsx:21 msgid "Show template variants" -msgstr "" +msgstr "Şablon türevlerini göster" #: src/tables/part/PartVariantTable.tsx:26 msgid "Show virtual variants" -msgstr "" +msgstr "Sanal türevleri göster" #: src/tables/part/PartVariantTable.tsx:31 msgid "Show trackable variants" -msgstr "" +msgstr "İzlenebilir türevleri göster" -#: src/tables/part/RelatedPartTable.tsx:84 +#: src/tables/part/RelatedPartTable.tsx:86 +#: src/tables/part/RelatedPartTable.tsx:109 msgid "Add Related Part" -msgstr "" +msgstr "İlgili Parça Ekle" -#: src/tables/part/RelatedPartTable.tsx:99 +#: src/tables/part/RelatedPartTable.tsx:101 msgid "Delete Related Part" -msgstr "" +msgstr "İlgili Parçayı Sil" -#: src/tables/part/RelatedPartTable.tsx:106 -msgid "Add related part" -msgstr "" +#: src/tables/part/RelatedPartTable.tsx:109 +#~ msgid "Add related part" +#~ msgstr "Add related part" #: src/tables/plugin/PluginErrorTable.tsx:29 msgid "Stage" -msgstr "" +msgstr "Hazırla" + +#: src/tables/plugin/PluginListTable.tsx:42 +msgid "Plugin is active" +msgstr "Eklenti etkin" + +#: src/tables/plugin/PluginListTable.tsx:48 +msgid "Plugin is inactive" +msgstr "Eklenti etkisiz" + +#: src/tables/plugin/PluginListTable.tsx:55 +msgid "Plugin is not installed" +msgstr "Eklenti kurulu değil" + +#: src/tables/plugin/PluginListTable.tsx:76 +msgid "Plugin" +msgstr "Eklenti" #: src/tables/plugin/PluginListTable.tsx:95 -msgid "Plugin with key {pluginKey} not found" -msgstr "" +#~ msgid "Plugin with key {pluginKey} not found" +#~ msgstr "Plugin with key {pluginKey} not found" #: src/tables/plugin/PluginListTable.tsx:97 -msgid "An error occurred while fetching plugin details" -msgstr "" +#~ msgid "An error occurred while fetching plugin details" +#~ msgstr "An error occurred while fetching plugin details" + +#: src/tables/plugin/PluginListTable.tsx:109 +msgid "Description not available" +msgstr "Kullanılabilir açıklama yok" #: src/tables/plugin/PluginListTable.tsx:113 #~ msgid "Plugin with id {id} not found" #~ msgstr "Plugin with id {id} not found" #: src/tables/plugin/PluginListTable.tsx:122 -msgid "Plugin information" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:134 -msgid "Author" -msgstr "" +#~ msgid "Plugin information" +#~ msgstr "Plugin information" #: src/tables/plugin/PluginListTable.tsx:134 #~ msgid "Plugin Actions" @@ -6881,79 +8044,124 @@ msgstr "" #~ msgid "Edit plugin" #~ msgstr "Edit plugin" +#: src/tables/plugin/PluginListTable.tsx:144 +msgid "Confirm plugin activation" +msgstr "Eklenti etkinleştirmesini onaylayın" + +#: src/tables/plugin/PluginListTable.tsx:145 +msgid "Confirm plugin deactivation" +msgstr "Eklentinin etkisizleştirilmesini onaylayın" + +#: src/tables/plugin/PluginListTable.tsx:150 +msgid "The selected plugin will be activated" +msgstr "Seçilen eklenti etkinleştirilecek" + +#: src/tables/plugin/PluginListTable.tsx:151 +msgid "The selected plugin will be deactivated" +msgstr "Seçilen eklenti etkisizleştirilecek" + #: src/tables/plugin/PluginListTable.tsx:152 #: src/tables/plugin/PluginListTable.tsx:153 #~ msgid "Reload" #~ msgstr "Reload" -#: src/tables/plugin/PluginListTable.tsx:154 -msgid "Plugin is not active" -msgstr "" - #: src/tables/plugin/PluginListTable.tsx:163 -msgid "Package information" -msgstr "" +#~ msgid "Package information" +#~ msgstr "Package information" #: src/tables/plugin/PluginListTable.tsx:169 -msgid "Package Name" +msgid "Deactivate" +msgstr "Etkisizleştir" + +#: src/tables/plugin/PluginListTable.tsx:183 +msgid "Activate" +msgstr "Etkinleştir" + +#: src/tables/plugin/PluginListTable.tsx:184 +msgid "Activate selected plugin" msgstr "" -#: src/tables/plugin/PluginListTable.tsx:175 -msgid "Installation Path" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:185 -msgid "Package" +#: src/tables/plugin/PluginListTable.tsx:196 +msgid "Update selected plugin" msgstr "" #: src/tables/plugin/PluginListTable.tsx:197 -msgid "Plugin settings" -msgstr "" +#~ msgid "Plugin settings" +#~ msgstr "Plugin settings" #: src/tables/plugin/PluginListTable.tsx:214 -msgid "Plugin is active" +#: src/tables/stock/InstalledItemsTable.tsx:107 +msgid "Uninstall" +msgstr "Kaldır" + +#: src/tables/plugin/PluginListTable.tsx:215 +msgid "Uninstall selected plugin" msgstr "" -#: src/tables/plugin/PluginListTable.tsx:220 -msgid "Plugin is inactive" +#: src/tables/plugin/PluginListTable.tsx:233 +msgid "Delete selected plugin configuration" msgstr "" -#: src/tables/plugin/PluginListTable.tsx:227 -msgid "Plugin is not installed" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:253 -msgid "Plugin" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:287 -msgid "Description not available" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:319 -msgid "Confirm plugin activation" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:320 -msgid "Confirm plugin deactivation" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:325 -msgid "The selected plugin will be activated" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:326 -msgid "The selected plugin will be deactivated" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:334 +#: src/tables/plugin/PluginListTable.tsx:249 msgid "Activate Plugin" -msgstr "" +msgstr "Eklentiyi Etkinleştir" + +#: src/tables/plugin/PluginListTable.tsx:270 +msgid "Install plugin" +msgstr "Eklenti Kur" + +#: src/tables/plugin/PluginListTable.tsx:283 +msgid "Install" +msgstr "Kur" + +#: src/tables/plugin/PluginListTable.tsx:284 +msgid "Plugin installed successfully" +msgstr "Eklenti başarıyla yüklendi" + +#: src/tables/plugin/PluginListTable.tsx:289 +msgid "Uninstall Plugin" +msgstr "Eklentiyi Kaldır" + +#: src/tables/plugin/PluginListTable.tsx:301 +msgid "Confirm plugin uninstall" +msgstr "Eklentiyi kaldırmayı onaylayın" + +#: src/tables/plugin/PluginListTable.tsx:304 +msgid "The selected plugin will be uninstalled." +msgstr "Seçilen eklenti kaldırılacak." + +#: src/tables/plugin/PluginListTable.tsx:308 +#~ msgid "This action cannot be undone." +#~ msgstr "This action cannot be undone." + +#: src/tables/plugin/PluginListTable.tsx:309 +msgid "Plugin uninstalled successfully" +msgstr "Eklenti başarıyla yüklendi" + +#: src/tables/plugin/PluginListTable.tsx:317 +msgid "Delete Plugin" +msgstr "Eklentiyi Sil" + +#: src/tables/plugin/PluginListTable.tsx:318 +msgid "Deleting this plugin configuration will remove all associated settings and data. Are you sure you want to delete this plugin?" +msgstr "Bu eklenti yapılandırmasını silmek ilgili tüm ayar ve veriyi de kaldıracaktır. Bu eklentiyi silmek istediğinize emin misiniz?" + +#: src/tables/plugin/PluginListTable.tsx:331 +msgid "Plugins reloaded" +msgstr "Eklentiler yeniden yüklendi" + +#: src/tables/plugin/PluginListTable.tsx:332 +msgid "Plugins were reloaded successfully" +msgstr "Eklentiler başarıyla yeniden yüklendi" #: src/tables/plugin/PluginListTable.tsx:338 #~ msgid "Deactivate Plugin" #~ msgstr "Deactivate Plugin" +#: src/tables/plugin/PluginListTable.tsx:350 +msgid "Reload Plugins" +msgstr "Eklentileri Yeniden Yükle" + #: src/tables/plugin/PluginListTable.tsx:354 #~ msgid "The following plugin will be activated" #~ msgstr "The following plugin will be activated" @@ -6962,17 +8170,17 @@ msgstr "" #~ msgid "The following plugin will be deactivated" #~ msgstr "The following plugin will be deactivated" -#: src/tables/plugin/PluginListTable.tsx:362 -msgid "Deactivate" -msgstr "" +#: src/tables/plugin/PluginListTable.tsx:357 +msgid "Install Plugin" +msgstr "Eklenti Kur" #: src/tables/plugin/PluginListTable.tsx:366 #~ msgid "Confirm" #~ msgstr "Confirm" -#: src/tables/plugin/PluginListTable.tsx:373 -msgid "Activate" -msgstr "" +#: src/tables/plugin/PluginListTable.tsx:374 +msgid "Plugin Detail" +msgstr "Eklenti Ayrıntısı" #: src/tables/plugin/PluginListTable.tsx:376 #~ msgid "Activating plugin" @@ -6998,78 +8206,14 @@ msgstr "" #~ msgid "Error updating plugin" #~ msgstr "Error updating plugin" -#: src/tables/plugin/PluginListTable.tsx:406 -msgid "Uninstall" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:438 -msgid "Install plugin" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:451 -msgid "Install" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:452 -msgid "Plugin installed successfully" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:457 -msgid "Uninstall Plugin" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:469 -msgid "Confirm plugin uninstall" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:472 -msgid "The selected plugin will be uninstalled." -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:473 -msgid "This action cannot be undone." -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:477 -msgid "Plugin uninstalled successfully" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:484 -msgid "Delete Plugin" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:485 -msgid "Deleting this plugin configuration will remove all associated settings and data. Are you sure you want to delete this plugin?" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:498 -msgid "Plugins reloaded" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:499 -msgid "Plugins were reloaded successfully" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:515 -msgid "Reload Plugins" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:524 -msgid "Install Plugin" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:544 -msgid "Plugin Detail" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:573 +#: src/tables/plugin/PluginListTable.tsx:411 msgid "Sample" -msgstr "" +msgstr "Örnek" -#: src/tables/plugin/PluginListTable.tsx:578 -#: src/tables/stock/StockItemTable.tsx:340 +#: src/tables/plugin/PluginListTable.tsx:416 +#: src/tables/stock/StockItemTable.tsx:344 msgid "Installed" -msgstr "" +msgstr "Kuruldu" #: src/tables/plugin/PluginListTable.tsx:615 #~ msgid "Plugin detail" @@ -7078,7 +8222,7 @@ msgstr "" #: src/tables/purchasing/ManufacturerPartParameterTable.tsx:59 #: src/tables/purchasing/ManufacturerPartParameterTable.tsx:108 msgid "Add Parameter" -msgstr "" +msgstr "Parametre Ekle" #: src/tables/purchasing/ManufacturerPartParameterTable.tsx:60 #~ msgid "Parameter updated" @@ -7086,7 +8230,7 @@ msgstr "" #: src/tables/purchasing/ManufacturerPartParameterTable.tsx:70 msgid "Edit Parameter" -msgstr "" +msgstr "Parametreyi Düzenle" #: src/tables/purchasing/ManufacturerPartParameterTable.tsx:73 #~ msgid "Parameter deleted" @@ -7098,7 +8242,7 @@ msgstr "" #: src/tables/purchasing/ManufacturerPartParameterTable.tsx:78 msgid "Delete Parameter" -msgstr "" +msgstr "Parametreyi Sil" #: src/tables/purchasing/ManufacturerPartTable.tsx:63 #~ msgid "Create Manufacturer Part" @@ -7116,84 +8260,80 @@ msgstr "" #~ msgid "Are you sure you want to remove this manufacturer part?" #~ msgstr "Are you sure you want to remove this manufacturer part?" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:102 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:339 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:103 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:356 msgid "Import Line Items" -msgstr "" +msgstr "İçe Satır Ögeleri Aktar" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:135 -msgid "Part Description" -msgstr "" - -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:201 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:207 msgid "Supplier Code" -msgstr "" +msgstr "Sağlayıcı Kodu" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:208 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:214 msgid "Supplier Link" -msgstr "" +msgstr "Sağlayıcı Bağlantısı" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:215 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:220 msgid "Manufacturer Code" +msgstr "Üretici Kodu" + +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:248 +msgid "Show line items which have been received" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:229 -msgid "Destination" -msgstr "" - -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:300 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:316 msgid "Receive line item" -msgstr "" +msgstr "Satır ögesini teslim al" #: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:344 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:142 -#: src/tables/sales/SalesOrderLineItemTable.tsx:240 -msgid "Add line item" -msgstr "" +#: src/tables/sales/ReturnOrderLineItemTable.tsx:160 +#: src/tables/sales/SalesOrderLineItemTable.tsx:258 +#~ msgid "Add line item" +#~ msgstr "Add line item" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:354 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:373 msgid "Receive items" -msgstr "" +msgstr "Ögeleri teslim al" -#: src/tables/purchasing/SupplierPartTable.tsx:93 +#: src/tables/purchasing/SupplierPartTable.tsx:95 msgid "MPN" -msgstr "" +msgstr "ÜPN" -#: src/tables/purchasing/SupplierPartTable.tsx:122 +#: src/tables/purchasing/SupplierPartTable.tsx:124 msgid "Base units" -msgstr "" +msgstr "Temel birimler" -#: src/tables/purchasing/SupplierPartTable.tsx:170 +#: src/tables/purchasing/SupplierPartTable.tsx:172 msgid "Supplier part created" -msgstr "" +msgstr "Sağlayıcı parçası oluşturuldu" -#: src/tables/purchasing/SupplierPartTable.tsx:176 +#: src/tables/purchasing/SupplierPartTable.tsx:179 msgid "Add supplier part" -msgstr "" +msgstr "Sağlayıcı parçası ekle" -#: src/tables/purchasing/SupplierPartTable.tsx:188 +#: src/tables/purchasing/SupplierPartTable.tsx:191 msgid "Show active supplier parts" -msgstr "" - -#: src/tables/purchasing/SupplierPartTable.tsx:192 -msgid "Active Part" -msgstr "" - -#: src/tables/purchasing/SupplierPartTable.tsx:193 -msgid "Show active internal parts" -msgstr "" +msgstr "Etkin sağlayıcı parçalarını göster" #: src/tables/purchasing/SupplierPartTable.tsx:193 #~ msgid "Supplier part updated" #~ msgstr "Supplier part updated" -#: src/tables/purchasing/SupplierPartTable.tsx:197 -msgid "Active Supplier" -msgstr "" +#: src/tables/purchasing/SupplierPartTable.tsx:195 +msgid "Active Part" +msgstr "Etkin Parça" -#: src/tables/purchasing/SupplierPartTable.tsx:198 +#: src/tables/purchasing/SupplierPartTable.tsx:196 +msgid "Show active internal parts" +msgstr "Etkin dahili parçaları göster" + +#: src/tables/purchasing/SupplierPartTable.tsx:200 +msgid "Active Supplier" +msgstr "Etkin Sağlayıcı" + +#: src/tables/purchasing/SupplierPartTable.tsx:201 msgid "Show active suppliers" -msgstr "" +msgstr "Etkin sağlayıcıları göster" #: src/tables/purchasing/SupplierPartTable.tsx:205 #~ msgid "Supplier part deleted" @@ -7203,270 +8343,366 @@ msgstr "" #~ msgid "Are you sure you want to remove this supplier part?" #~ msgstr "Are you sure you want to remove this supplier part?" -#: src/tables/sales/ReturnOrderLineItemTable.tsx:114 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:139 msgid "Received Date" -msgstr "" +msgstr "Teslim Alma Tarihi" -#: src/tables/sales/ReturnOrderLineItemTable.tsx:128 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:153 msgid "Show items which have been received" -msgstr "" - -#: src/tables/sales/ReturnOrderLineItemTable.tsx:133 -msgid "Filter by line item status" -msgstr "" +msgstr "Teslim alınan ögeleri göster" #: src/tables/sales/ReturnOrderLineItemTable.tsx:158 +msgid "Filter by line item status" +msgstr "Satır ögesi durumuna göre süz" + +#: src/tables/sales/ReturnOrderLineItemTable.tsx:176 +msgid "Receive selected items" +msgstr "" + +#: src/tables/sales/ReturnOrderLineItemTable.tsx:205 msgid "Receive Item" +msgstr "Ögeyi Teslim Al" + +#: src/tables/sales/SalesOrderAllocationTable.tsx:60 +msgid "Show outstanding allocations" msgstr "" -#: src/tables/sales/SalesOrderLineItemTable.tsx:262 -msgid "Allocate stock" +#: src/tables/sales/SalesOrderAllocationTable.tsx:168 +#: src/tables/sales/SalesOrderAllocationTable.tsx:190 +msgid "Edit Allocation" msgstr "" -#: src/tables/sales/SalesOrderLineItemTable.tsx:272 +#: src/tables/sales/SalesOrderAllocationTable.tsx:175 +#: src/tables/sales/SalesOrderAllocationTable.tsx:197 +msgid "Delete Allocation" +msgstr "" + +#: src/tables/sales/SalesOrderLineItemTable.tsx:244 +msgid "Allocate Serial Numbers" +msgstr "" + +#: src/tables/sales/SalesOrderLineItemTable.tsx:277 +msgid "Show lines which are fully allocated" +msgstr "" + +#: src/tables/sales/SalesOrderLineItemTable.tsx:280 +#~ msgid "Allocate stock" +#~ msgstr "Allocate stock" + +#: src/tables/sales/SalesOrderLineItemTable.tsx:282 +msgid "Show lines which are completed" +msgstr "" + +#: src/tables/sales/SalesOrderLineItemTable.tsx:291 +#~ msgid "Allocate Serials" +#~ msgstr "Allocate Serials" + +#: src/tables/sales/SalesOrderLineItemTable.tsx:340 +msgid "Allocate serials" +msgstr "" + +#: src/tables/sales/SalesOrderLineItemTable.tsx:356 msgid "Build stock" -msgstr "" +msgstr "Yapım stoku" -#: src/tables/sales/SalesOrderLineItemTable.tsx:289 -#: src/tables/stock/StockItemTable.tsx:507 +#: src/tables/sales/SalesOrderLineItemTable.tsx:373 +#: src/tables/stock/StockItemTable.tsx:512 msgid "Order stock" -msgstr "" +msgstr "Sipariş stoku" -#: src/tables/sales/SalesOrderShipmentTable.tsx:40 +#: src/tables/sales/SalesOrderShipmentTable.tsx:51 +#~ msgid "Delete Shipment" +#~ msgstr "Delete Shipment" + +#: src/tables/sales/SalesOrderShipmentTable.tsx:57 msgid "Create Shipment" -msgstr "" +msgstr "Gönderi Oluştur" -#: src/tables/sales/SalesOrderShipmentTable.tsx:50 -msgid "Delete Shipment" -msgstr "" - -#: src/tables/sales/SalesOrderShipmentTable.tsx:58 -msgid "Edit Shipment" -msgstr "" - -#: src/tables/sales/SalesOrderShipmentTable.tsx:66 -msgid "Shipment Reference" -msgstr "" - -#: src/tables/sales/SalesOrderShipmentTable.tsx:71 +#: src/tables/sales/SalesOrderShipmentTable.tsx:104 msgid "Items" +msgstr "Ögeler" + +#: src/tables/sales/SalesOrderShipmentTable.tsx:139 +msgid "View Shipment" msgstr "" -#: src/tables/sales/SalesOrderShipmentTable.tsx:83 -msgid "Delivery Date" +#: src/tables/sales/SalesOrderShipmentTable.tsx:161 +msgid "Edit shipment" msgstr "" -#: src/tables/sales/SalesOrderShipmentTable.tsx:107 -msgid "Complete Shipment" +#: src/tables/sales/SalesOrderShipmentTable.tsx:169 +msgid "Cancel shipment" msgstr "" -#: src/tables/sales/SalesOrderShipmentTable.tsx:133 +#: src/tables/sales/SalesOrderShipmentTable.tsx:184 msgid "Add shipment" -msgstr "" +msgstr "Gönderi ekle" -#: src/tables/sales/SalesOrderShipmentTable.tsx:146 -msgid "Shipped" -msgstr "" - -#: src/tables/sales/SalesOrderShipmentTable.tsx:147 +#: src/tables/sales/SalesOrderShipmentTable.tsx:198 msgid "Show shipments which have been shipped" -msgstr "" +msgstr "Gönderilen gönderileri göster" -#: src/tables/sales/SalesOrderShipmentTable.tsx:151 -msgid "Delivered" -msgstr "" - -#: src/tables/sales/SalesOrderShipmentTable.tsx:152 +#: src/tables/sales/SalesOrderShipmentTable.tsx:203 msgid "Show shipments which have been delivered" +msgstr "Teslim edilen gönderileri gönder" + +#: src/tables/settings/BarcodeScanHistoryTable.tsx:61 +msgid "Barcode Information" msgstr "" -#: src/tables/settings/CurrencyTable.tsx:28 -msgid "Rate" +#: src/tables/settings/BarcodeScanHistoryTable.tsx:76 +#: src/tables/settings/ErrorTable.tsx:59 +msgid "Timestamp" msgstr "" -#: src/tables/settings/CurrencyTable.tsx:40 -msgid "Exchange rates updated" +#: src/tables/settings/BarcodeScanHistoryTable.tsx:86 +msgid "Endpoint" msgstr "" -#: src/tables/settings/CurrencyTable.tsx:46 -msgid "Exchange rate update error" +#: src/tables/settings/BarcodeScanHistoryTable.tsx:90 +#: src/tables/settings/BarcodeScanHistoryTable.tsx:217 +#: src/tables/stock/StockItemTestResultTable.tsx:174 +msgid "Result" +msgstr "Sonuç" + +#: src/tables/settings/BarcodeScanHistoryTable.tsx:98 +msgid "Context" msgstr "" -#: src/tables/settings/CurrencyTable.tsx:57 -msgid "Refresh currency exchange rates" +#: src/tables/settings/BarcodeScanHistoryTable.tsx:119 +msgid "Response" msgstr "" +#: src/tables/settings/BarcodeScanHistoryTable.tsx:213 +#: src/tables/settings/ImportSessionTable.tsx:121 +#: src/tables/stock/StockTrackingTable.tsx:183 +msgid "Filter by user" +msgstr "Kullanıcıya göre süz" + +#: src/tables/settings/BarcodeScanHistoryTable.tsx:218 +msgid "Filter by result" +msgstr "" + +#: src/tables/settings/BarcodeScanHistoryTable.tsx:232 +msgid "Delete Barcode Scan Record" +msgstr "" + +#: src/tables/settings/BarcodeScanHistoryTable.tsx:258 +msgid "Barcode Scan Details" +msgstr "" + +#: src/tables/settings/BarcodeScanHistoryTable.tsx:268 +msgid "Logging Disabled" +msgstr "" + +#: src/tables/settings/BarcodeScanHistoryTable.tsx:270 +msgid "Barcode logging is not enabled" +msgstr "" + +#: src/tables/settings/CustomStateTable.tsx:36 +msgid "Display Name" +msgstr "Adı Görüntüle" + +#: src/tables/settings/CustomStateTable.tsx:52 +msgid "Model" +msgstr "Model" + +#: src/tables/settings/CustomStateTable.tsx:65 +#: src/tables/settings/CustomStateTable.tsx:115 +msgid "Add State" +msgstr "Durum Ekle" + +#: src/tables/settings/CustomStateTable.tsx:77 +msgid "Edit State" +msgstr "Durumu Düzenle" + +#: src/tables/settings/CustomStateTable.tsx:85 +msgid "Delete State" +msgstr "Durumu Sil" + +#: src/tables/settings/CustomStateTable.tsx:115 +#~ msgid "Add state" +#~ msgstr "Add state" + #: src/tables/settings/CustomUnitsTable.tsx:50 msgid "Add Custom Unit" -msgstr "" +msgstr "Özel Birim Ekle" #: src/tables/settings/CustomUnitsTable.tsx:60 msgid "Edit Custom Unit" -msgstr "" +msgstr "Özel Birimi Düzenle" #: src/tables/settings/CustomUnitsTable.tsx:68 msgid "Delete Custom Unit" -msgstr "" +msgstr "Özel Birimi Sil" #: src/tables/settings/CustomUnitsTable.tsx:100 msgid "Add custom unit" -msgstr "" - -#: src/tables/settings/ErrorTable.tsx:31 -msgid "When" -msgstr "" - -#: src/tables/settings/ErrorTable.tsx:41 -msgid "Error Information" -msgstr "" +msgstr "Özel birim ekle" #: src/tables/settings/ErrorTable.tsx:51 #~ msgid "Delete error report" #~ msgstr "Delete error report" -#: src/tables/settings/ErrorTable.tsx:53 +#: src/tables/settings/ErrorTable.tsx:67 +msgid "Traceback" +msgstr "" + +#: src/tables/settings/ErrorTable.tsx:103 +msgid "When" +msgstr "Ne zaman" + +#: src/tables/settings/ErrorTable.tsx:113 +msgid "Error Information" +msgstr "Hata Bilgisi" + +#: src/tables/settings/ErrorTable.tsx:123 msgid "Delete Error Report" -msgstr "" +msgstr "Hata Raporunu Sil" -#: src/tables/settings/ErrorTable.tsx:55 +#: src/tables/settings/ErrorTable.tsx:125 msgid "Are you sure you want to delete this error report?" -msgstr "" +msgstr "Bu hata raporunu silmek istediğinize emin misiniz?" -#: src/tables/settings/ErrorTable.tsx:57 +#: src/tables/settings/ErrorTable.tsx:127 msgid "Error report deleted" -msgstr "" +msgstr "Hata raporu silindi" -#: src/tables/settings/ErrorTable.tsx:79 -#: src/tables/settings/FailedTasksTable.tsx:59 +#: src/tables/settings/ErrorTable.tsx:146 +#: src/tables/settings/FailedTasksTable.tsx:65 msgid "Error Details" -msgstr "" - -#: src/tables/settings/FailedTasksTable.tsx:26 -#: src/tables/settings/PendingTasksTable.tsx:19 -#: src/tables/settings/ScheduledTasksTable.tsx:19 -msgid "Task" -msgstr "" +msgstr "Hata ayrıntıları" #: src/tables/settings/FailedTasksTable.tsx:32 -#: src/tables/settings/PendingTasksTable.tsx:24 -msgid "Task ID" -msgstr "" +#: src/tables/settings/PendingTasksTable.tsx:23 +#: src/tables/settings/ScheduledTasksTable.tsx:19 +msgid "Task" +msgstr "Görev" -#: src/tables/settings/FailedTasksTable.tsx:36 -#: src/tables/stock/StockItemTestResultTable.tsx:211 -msgid "Started" -msgstr "" +#: src/tables/settings/FailedTasksTable.tsx:38 +#: src/tables/settings/PendingTasksTable.tsx:28 +msgid "Task ID" +msgstr "Görev Kimliği" #: src/tables/settings/FailedTasksTable.tsx:42 -msgid "Stopped" -msgstr "" +#: src/tables/stock/StockItemTestResultTable.tsx:218 +msgid "Started" +msgstr "Başladı" #: src/tables/settings/FailedTasksTable.tsx:48 +msgid "Stopped" +msgstr "Durdu" + +#: src/tables/settings/FailedTasksTable.tsx:54 msgid "Attempts" +msgstr "Denemeler" + +#: src/tables/settings/FailedTasksTable.tsx:92 +msgid "No Information" +msgstr "" + +#: src/tables/settings/FailedTasksTable.tsx:93 +msgid "No error details are available for this task" msgstr "" #: src/tables/settings/GroupTable.tsx:90 msgid "Group with id {id} not found" -msgstr "" +msgstr "{id} kimlikli grup bulunamadı" #: src/tables/settings/GroupTable.tsx:92 msgid "An error occurred while fetching group details" -msgstr "" +msgstr "Grup ayrıntıları alınırken bir hata oluştu" #: src/tables/settings/GroupTable.tsx:116 msgid "Permission set" -msgstr "" +msgstr "İzinler" #: src/tables/settings/GroupTable.tsx:177 msgid "Delete group" -msgstr "" +msgstr "Grubu Sil" #: src/tables/settings/GroupTable.tsx:178 msgid "Group deleted" -msgstr "" +msgstr "Grup silindi" #: src/tables/settings/GroupTable.tsx:180 msgid "Are you sure you want to delete this group?" -msgstr "" +msgstr "Bu grubu silmek istediğinize emin misiniz?" #: src/tables/settings/GroupTable.tsx:185 #: src/tables/settings/GroupTable.tsx:197 msgid "Add group" -msgstr "" +msgstr "Grup ekle" #: src/tables/settings/GroupTable.tsx:210 msgid "Edit group" -msgstr "" +msgstr "Grubu düzenle" -#: src/tables/settings/ImportSessionTable.tsx:38 +#: src/tables/settings/ImportSessionTable.tsx:37 msgid "Delete Import Session" -msgstr "" +msgstr "İçe Aktarma Oturununu Sil" -#: src/tables/settings/ImportSessionTable.tsx:44 +#: src/tables/settings/ImportSessionTable.tsx:43 #: src/tables/settings/ImportSessionTable.tsx:131 msgid "Create Import Session" -msgstr "" +msgstr "İçe Aktarma Oturumu Oluştur" -#: src/tables/settings/ImportSessionTable.tsx:69 +#: src/tables/settings/ImportSessionTable.tsx:68 msgid "Uploaded" -msgstr "" +msgstr "Karşıya Yüklendi" -#: src/tables/settings/ImportSessionTable.tsx:79 -msgid "Imported Rows" -msgstr "" +#: src/tables/settings/ImportSessionTable.tsx:108 +#: src/tables/settings/TemplateTable.tsx:369 +msgid "Model Type" +msgstr "Model Türü" #: src/tables/settings/ImportSessionTable.tsx:109 -#: src/tables/settings/TemplateTable.tsx:289 -msgid "Model Type" -msgstr "" - -#: src/tables/settings/ImportSessionTable.tsx:110 -#: src/tables/settings/TemplateTable.tsx:290 +#: src/tables/settings/TemplateTable.tsx:370 msgid "Filter by target model type" -msgstr "" +msgstr "Hedef modelin türüne göre süz" -#: src/tables/settings/ImportSessionTable.tsx:116 +#: src/tables/settings/ImportSessionTable.tsx:115 msgid "Filter by import session status" -msgstr "" +msgstr "İçe aktarma oturumu durumuna göre süz" -#: src/tables/settings/ImportSessionTable.tsx:122 -msgid "Filter by user" -msgstr "" - -#: src/tables/settings/PendingTasksTable.tsx:38 +#: src/tables/settings/PendingTasksTable.tsx:42 msgid "Arguments" -msgstr "" +msgstr "Argümanlar" #: src/tables/settings/ProjectCodeTable.tsx:42 msgid "Add Project Code" -msgstr "" +msgstr "Proje Kodu Ekle" #: src/tables/settings/ProjectCodeTable.tsx:54 msgid "Edit Project Code" -msgstr "" +msgstr "Proje Kodunu Düzenle" #: src/tables/settings/ProjectCodeTable.tsx:62 msgid "Delete Project Code" -msgstr "" +msgstr "Proje Kodunu Sil" #: src/tables/settings/ProjectCodeTable.tsx:92 msgid "Add project code" -msgstr "" +msgstr "Proje kodu ekle" #: src/tables/settings/ScheduledTasksTable.tsx:25 msgid "Last Run" -msgstr "" +msgstr "Son Çalışma" #: src/tables/settings/ScheduledTasksTable.tsx:47 msgid "Next Run" +msgstr "Sonraki Çalışma" + +#: src/tables/settings/StocktakeReportTable.tsx:28 +msgid "Report" msgstr "" -#: src/tables/settings/TemplateTable.tsx:85 -msgid "Template not found" +#: src/tables/settings/StocktakeReportTable.tsx:35 +msgid "Part Count" msgstr "" -#: src/tables/settings/TemplateTable.tsx:87 -msgid "An error occurred while fetching template details" +#: src/tables/settings/StocktakeReportTable.tsx:58 +msgid "Delete Report" msgstr "" #: src/tables/settings/TemplateTable.tsx:120 @@ -7481,22 +8717,13 @@ msgstr "" #~ msgid "actions" #~ msgstr "actions" -#: src/tables/settings/TemplateTable.tsx:177 -msgid "Modify" -msgstr "" +#: src/tables/settings/TemplateTable.tsx:162 +msgid "Template not found" +msgstr "Şablon bulunamadı" -#: src/tables/settings/TemplateTable.tsx:178 -msgid "Modify template file" -msgstr "" - -#: src/tables/settings/TemplateTable.tsx:234 -#: src/tables/settings/TemplateTable.tsx:302 -msgid "Edit Template" -msgstr "" - -#: src/tables/settings/TemplateTable.tsx:242 -msgid "Delete template" -msgstr "" +#: src/tables/settings/TemplateTable.tsx:164 +msgid "An error occurred while fetching template details" +msgstr "Şablon ayrıntıları alınırken bir hata oluştu" #: src/tables/settings/TemplateTable.tsx:243 #~ msgid "Add new" @@ -7506,392 +8733,422 @@ msgstr "" #~ msgid "Create new" #~ msgstr "Create new" -#: src/tables/settings/TemplateTable.tsx:248 +#: src/tables/settings/TemplateTable.tsx:257 +msgid "Modify" +msgstr "Değiştir" + +#: src/tables/settings/TemplateTable.tsx:258 +msgid "Modify template file" +msgstr "Şablon doyasını değiştir" + +#: src/tables/settings/TemplateTable.tsx:314 +#: src/tables/settings/TemplateTable.tsx:382 +msgid "Edit Template" +msgstr "Şablonu Düzenle" + +#: src/tables/settings/TemplateTable.tsx:322 +msgid "Delete template" +msgstr "Şablonu sil" + +#: src/tables/settings/TemplateTable.tsx:328 msgid "Add Template" -msgstr "" +msgstr "Şablon Ekle" -#: src/tables/settings/TemplateTable.tsx:261 +#: src/tables/settings/TemplateTable.tsx:341 msgid "Add template" -msgstr "" +msgstr "Şablon ekle" -#: src/tables/settings/TemplateTable.tsx:284 +#: src/tables/settings/TemplateTable.tsx:364 msgid "Filter by enabled status" -msgstr "" +msgstr "Etkinleştirilme durumuna göre süz" -#: src/tables/settings/UserTable.tsx:82 +#: src/tables/settings/UserTable.tsx:81 msgid "User with id {id} not found" -msgstr "" +msgstr "{id} kimlikli kullanıcı bulunamadı" -#: src/tables/settings/UserTable.tsx:84 +#: src/tables/settings/UserTable.tsx:83 msgid "An error occurred while fetching user details" -msgstr "" +msgstr "Kullanıcı bilgileri alınırken bir hata oluştu" + +#: src/tables/settings/UserTable.tsx:101 +msgid "Is Active" +msgstr "Etkin Olanlar" #: src/tables/settings/UserTable.tsx:102 -msgid "Is Active" -msgstr "" - -#: src/tables/settings/UserTable.tsx:103 msgid "Designates whether this user should be treated as active. Unselect this instead of deleting accounts." -msgstr "" +msgstr "Bu kullanıcının etkin olarak değerlendirilip değerlendirilmeyeceğini belirtir. Hesapları silmek yerine bunun seçimini kaldırın." + +#: src/tables/settings/UserTable.tsx:106 +msgid "Is Staff" +msgstr "Personel Olanlar" #: src/tables/settings/UserTable.tsx:107 -msgid "Is Staff" -msgstr "" - -#: src/tables/settings/UserTable.tsx:108 msgid "Designates whether the user can log into the django admin site." -msgstr "" +msgstr "Kullanıcının Django admin sitesine giriş yapıp yapamayacağını belirler." + +#: src/tables/settings/UserTable.tsx:111 +msgid "Is Superuser" +msgstr "Süper Kullanıcı Olanlar" #: src/tables/settings/UserTable.tsx:112 -msgid "Is Superuser" -msgstr "" - -#: src/tables/settings/UserTable.tsx:113 msgid "Designates that this user has all permissions without explicitly assigning them." -msgstr "" +msgstr "Bu kullanıcının, açıkça atamadan tüm izinlere sahip olduğunu belirtir." -#: src/tables/settings/UserTable.tsx:123 +#: src/tables/settings/UserTable.tsx:122 msgid "You cannot edit the rights for the currently logged-in user." -msgstr "" +msgstr "Şu anki giriş yapmış kullanıcı için hakları düzenleyemezsiniz." -#: src/tables/settings/UserTable.tsx:154 +#: src/tables/settings/UserTable.tsx:153 msgid "No groups" -msgstr "" +msgstr "Hiç grup yok" + +#: src/tables/settings/UserTable.tsx:244 +msgid "Delete user" +msgstr "Kullanıcı sil" #: src/tables/settings/UserTable.tsx:245 -msgid "Delete user" -msgstr "" - -#: src/tables/settings/UserTable.tsx:246 msgid "User deleted" -msgstr "" +msgstr "Kulanıcı silindi" -#: src/tables/settings/UserTable.tsx:248 +#: src/tables/settings/UserTable.tsx:247 msgid "Are you sure you want to delete this user?" -msgstr "" +msgstr "Bu kullanıcıyı silmek istediğinize emin misiniz?" -#: src/tables/settings/UserTable.tsx:254 -#: src/tables/settings/UserTable.tsx:272 +#: src/tables/settings/UserTable.tsx:253 +#: src/tables/settings/UserTable.tsx:271 msgid "Add user" -msgstr "" +msgstr "Kullanıcı ekle" -#: src/tables/settings/UserTable.tsx:262 +#: src/tables/settings/UserTable.tsx:261 msgid "Added user" -msgstr "" +msgstr "Eklenen kullanıcı" -#: src/tables/settings/UserTable.tsx:285 +#: src/tables/settings/UserTable.tsx:284 msgid "Show active users" -msgstr "" +msgstr "Etkin kullanıcıları göster" + +#: src/tables/settings/UserTable.tsx:288 +msgid "Staff" +msgstr "Personel" #: src/tables/settings/UserTable.tsx:289 -msgid "Staff" -msgstr "" - -#: src/tables/settings/UserTable.tsx:290 msgid "Show staff users" -msgstr "" +msgstr "Personel kullanıcıları göster" #: src/tables/settings/UserTable.tsx:294 -msgid "Superuser" -msgstr "" - -#: src/tables/settings/UserTable.tsx:295 msgid "Show superusers" +msgstr "Süper kullanıcıları göster" + +#: src/tables/settings/UserTable.tsx:304 +msgid "Edit user" +msgstr "Kullanıcıyı düzenle" + +#: src/tables/stock/InstalledItemsTable.tsx:37 +#: src/tables/stock/InstalledItemsTable.tsx:90 +msgid "Install Item" msgstr "" -#: src/tables/settings/UserTable.tsx:305 -msgid "Edit user" +#: src/tables/stock/InstalledItemsTable.tsx:39 +msgid "Item installed" +msgstr "" + +#: src/tables/stock/InstalledItemsTable.tsx:50 +msgid "Uninstall Item" +msgstr "" + +#: src/tables/stock/InstalledItemsTable.tsx:52 +msgid "Item uninstalled" +msgstr "" + +#: src/tables/stock/InstalledItemsTable.tsx:108 +msgid "Uninstall stock item" msgstr "" #: src/tables/stock/LocationTypesTable.tsx:39 #: src/tables/stock/LocationTypesTable.tsx:109 msgid "Add Location Type" -msgstr "" +msgstr "Konum Türü Ekle" #: src/tables/stock/LocationTypesTable.tsx:47 msgid "Edit Location Type" -msgstr "" +msgstr "Konum Türünü Düzenle" #: src/tables/stock/LocationTypesTable.tsx:55 msgid "Delete Location Type" -msgstr "" +msgstr "Konum Türünü Sil" #: src/tables/stock/LocationTypesTable.tsx:63 msgid "Icon" -msgstr "" +msgstr "Simge" -#: src/tables/stock/StockItemTable.tsx:101 +#: src/tables/stock/StockItemTable.tsx:90 msgid "This stock item is in production" -msgstr "" +msgstr "Bu stok ögesi üretimdedir" -#: src/tables/stock/StockItemTable.tsx:110 +#: src/tables/stock/StockItemTable.tsx:97 msgid "This stock item has been assigned to a sales order" -msgstr "" +msgstr "Bu stok ögesi bir satış siparişine atandı" -#: src/tables/stock/StockItemTable.tsx:119 +#: src/tables/stock/StockItemTable.tsx:104 msgid "This stock item has been assigned to a customer" -msgstr "" +msgstr "Bu stok ögesi bir müşteriye atanmıştır" -#: src/tables/stock/StockItemTable.tsx:128 +#: src/tables/stock/StockItemTable.tsx:111 msgid "This stock item is installed in another stock item" -msgstr "" +msgstr "Bu stok ögesi başka bir stok ögesinde kuruludur" -#: src/tables/stock/StockItemTable.tsx:137 +#: src/tables/stock/StockItemTable.tsx:118 msgid "This stock item has been consumed by a build order" +msgstr "Bu stok ögesi bir yapım siparişi tarafından tüketildi" + +#: src/tables/stock/StockItemTable.tsx:125 +msgid "This stock item is unavailable" msgstr "" -#: src/tables/stock/StockItemTable.tsx:146 +#: src/tables/stock/StockItemTable.tsx:134 msgid "This stock item has expired" -msgstr "" +msgstr "Bu stok ögesinin süresi doldu" + +#: src/tables/stock/StockItemTable.tsx:138 +msgid "This stock item is stale" +msgstr "Bu stok ögesi eski" #: src/tables/stock/StockItemTable.tsx:150 -msgid "This stock item is stale" -msgstr "" - -#: src/tables/stock/StockItemTable.tsx:161 msgid "This stock item is fully allocated" -msgstr "" +msgstr "Bu stok ögesi tümüyle ayrıldı" -#: src/tables/stock/StockItemTable.tsx:168 +#: src/tables/stock/StockItemTable.tsx:157 msgid "This stock item is partially allocated" -msgstr "" +msgstr "Bu stok ögesi kısmen ayrıldı" -#: src/tables/stock/StockItemTable.tsx:196 +#: src/tables/stock/StockItemTable.tsx:185 msgid "This stock item has been depleted" -msgstr "" +msgstr "Bu stok ögesi tükendi" -#: src/tables/stock/StockItemTable.tsx:232 +#: src/tables/stock/StockItemTable.tsx:280 msgid "Stocktake Date" -msgstr "" +msgstr "Stok Sayımı Tarihi" -#: src/tables/stock/StockItemTable.tsx:236 -msgid "Expiry Date" -msgstr "" - -#: src/tables/stock/StockItemTable.tsx:260 -msgid "Stock Value" -msgstr "" - -#: src/tables/stock/StockItemTable.tsx:290 +#: src/tables/stock/StockItemTable.tsx:294 msgid "Show stock for active parts" -msgstr "" +msgstr "Aktif parçalar için stoku göster" -#: src/tables/stock/StockItemTable.tsx:295 +#: src/tables/stock/StockItemTable.tsx:299 msgid "Filter by stock status" -msgstr "" +msgstr "Stok durumuna göre süz" #: src/tables/stock/StockItemTable.tsx:301 -msgid "Show stock for assmebled parts" +#~ msgid "Show stock for assmebled parts" +#~ msgstr "Show stock for assmebled parts" + +#: src/tables/stock/StockItemTable.tsx:305 +msgid "Show stock for assembled parts" msgstr "" -#: src/tables/stock/StockItemTable.tsx:306 +#: src/tables/stock/StockItemTable.tsx:310 msgid "Show items which have been allocated" -msgstr "" - -#: src/tables/stock/StockItemTable.tsx:311 -msgid "Show items which are available" -msgstr "" +msgstr "Ayrılan ögeleri göster" #: src/tables/stock/StockItemTable.tsx:315 +msgid "Show items which are available" +msgstr "Stokta olan ögeleri göster" + +#: src/tables/stock/StockItemTable.tsx:319 #: src/tables/stock/StockLocationTable.tsx:44 msgid "Include Sublocations" -msgstr "" - -#: src/tables/stock/StockItemTable.tsx:316 -msgid "Include stock in sublocations" -msgstr "" +msgstr "Alt Konumları İçer" #: src/tables/stock/StockItemTable.tsx:320 +msgid "Include stock in sublocations" +msgstr "Alt konumlardaki stoku içer" + +#: src/tables/stock/StockItemTable.tsx:324 msgid "Depleted" -msgstr "" +msgstr "Tükendi" -#: src/tables/stock/StockItemTable.tsx:321 +#: src/tables/stock/StockItemTable.tsx:325 msgid "Show depleted stock items" -msgstr "" +msgstr "Tükenen stok ögelerini göster" -#: src/tables/stock/StockItemTable.tsx:326 +#: src/tables/stock/StockItemTable.tsx:330 msgid "Show items which are in stock" -msgstr "" +msgstr "Stokta olan ögeleri göster" -#: src/tables/stock/StockItemTable.tsx:331 +#: src/tables/stock/StockItemTable.tsx:335 msgid "Show items which are in production" -msgstr "" +msgstr "Üretimde olan ögeleri göster" -#: src/tables/stock/StockItemTable.tsx:336 +#: src/tables/stock/StockItemTable.tsx:340 msgid "Include stock items for variant parts" -msgstr "" - -#: src/tables/stock/StockItemTable.tsx:341 -msgid "Show stock items which are installed in other items" -msgstr "" +msgstr "Türev parçalar için stok ögelerini içer" #: src/tables/stock/StockItemTable.tsx:345 -msgid "Sent to Customer" -msgstr "" +msgid "Show stock items which are installed in other items" +msgstr "Başka ögelerde kurulu olan stok ögelerini göster" -#: src/tables/stock/StockItemTable.tsx:346 -msgid "Show items which have been sent to a customer" -msgstr "" +#: src/tables/stock/StockItemTable.tsx:349 +msgid "Sent to Customer" +msgstr "Müşteriye Gönderildi" #: src/tables/stock/StockItemTable.tsx:350 +msgid "Show items which have been sent to a customer" +msgstr "Bir müşteriye gönderilen ögeleri göster" + +#: src/tables/stock/StockItemTable.tsx:354 msgid "Is Serialized" -msgstr "" +msgstr "Serileştirilmiş Olanlar" -#: src/tables/stock/StockItemTable.tsx:351 +#: src/tables/stock/StockItemTable.tsx:355 msgid "Show items which have a serial number" -msgstr "" +msgstr "Bir seri numarası olan ögeleri göster" -#: src/tables/stock/StockItemTable.tsx:358 +#: src/tables/stock/StockItemTable.tsx:362 msgid "Has Batch Code" -msgstr "" +msgstr "Parti Kodu Olanlar" -#: src/tables/stock/StockItemTable.tsx:359 +#: src/tables/stock/StockItemTable.tsx:363 msgid "Show items which have a batch code" -msgstr "" - -#: src/tables/stock/StockItemTable.tsx:365 -msgid "Show tracked items" -msgstr "" +msgstr "Parti kodu olan ögeleri göster" #: src/tables/stock/StockItemTable.tsx:369 +msgid "Show tracked items" +msgstr "İzlenen ögeleri göster" + +#: src/tables/stock/StockItemTable.tsx:373 msgid "Has Purchase Price" -msgstr "" +msgstr "Satın Alma Fiyatı Olanlar" -#: src/tables/stock/StockItemTable.tsx:370 +#: src/tables/stock/StockItemTable.tsx:374 msgid "Show items which have a purchase price" -msgstr "" +msgstr "Satın alma fiyatı olan ögeleri göster" -#: src/tables/stock/StockItemTable.tsx:378 +#: src/tables/stock/StockItemTable.tsx:382 msgid "External Location" -msgstr "" +msgstr "Harici Konum" -#: src/tables/stock/StockItemTable.tsx:379 +#: src/tables/stock/StockItemTable.tsx:383 msgid "Show items in an external location" -msgstr "" +msgstr "Harici bir konumdaki ögeleri göster" -#: src/tables/stock/StockItemTable.tsx:451 +#: src/tables/stock/StockItemTable.tsx:456 msgid "Add a new stock item" -msgstr "" +msgstr "Yeni bir stok ögesi ekle" -#: src/tables/stock/StockItemTable.tsx:460 +#: src/tables/stock/StockItemTable.tsx:465 msgid "Remove some quantity from a stock item" -msgstr "" +msgstr "Bir stok ögesinden bir miktar kaldır" -#: src/tables/stock/StockItemTable.tsx:482 +#: src/tables/stock/StockItemTable.tsx:487 msgid "Move Stock items to new locations" -msgstr "" +msgstr "Stok ögelerini yeni konumlara taşı" -#: src/tables/stock/StockItemTable.tsx:489 +#: src/tables/stock/StockItemTable.tsx:494 msgid "Change stock status" -msgstr "" +msgstr "Stok durumunu değiştir" -#: src/tables/stock/StockItemTable.tsx:491 +#: src/tables/stock/StockItemTable.tsx:496 msgid "Change the status of stock items" -msgstr "" +msgstr "Stok ögelerinin durumunu değiştir" -#: src/tables/stock/StockItemTable.tsx:498 +#: src/tables/stock/StockItemTable.tsx:503 msgid "Merge stock" -msgstr "" +msgstr "Stoku birleştir" -#: src/tables/stock/StockItemTable.tsx:500 +#: src/tables/stock/StockItemTable.tsx:505 msgid "Merge stock items" -msgstr "" - -#: src/tables/stock/StockItemTable.tsx:509 -#: src/tables/stock/StockItemTable.tsx:516 -msgid "Order new stock" -msgstr "" +msgstr "Stok ögelerini birleştir" #: src/tables/stock/StockItemTable.tsx:514 +#: src/tables/stock/StockItemTable.tsx:521 +msgid "Order new stock" +msgstr "Yeni stok sipariş et" + +#: src/tables/stock/StockItemTable.tsx:519 msgid "Assign to customer" -msgstr "" +msgstr "Müşteriye ata" -#: src/tables/stock/StockItemTable.tsx:523 +#: src/tables/stock/StockItemTable.tsx:528 msgid "Delete stock" -msgstr "" +msgstr "Stoku sil" -#: src/tables/stock/StockItemTable.tsx:525 -msgid "Delete stock items" -msgstr "" +#: src/tables/stock/StockItemTable.tsx:528 +#~ msgid "Delete stock items" +#~ msgstr "Delete stock items" -#: src/tables/stock/StockItemTestResultTable.tsx:131 +#: src/tables/stock/StockItemTestResultTable.tsx:137 msgid "Test" -msgstr "" +msgstr "Test" -#: src/tables/stock/StockItemTestResultTable.tsx:157 +#: src/tables/stock/StockItemTestResultTable.tsx:163 msgid "Test result for installed stock item" -msgstr "" +msgstr "Kurulan stok ögeleri için test sonucunu göster" -#: src/tables/stock/StockItemTestResultTable.tsx:168 -msgid "Result" -msgstr "" - -#: src/tables/stock/StockItemTestResultTable.tsx:190 +#: src/tables/stock/StockItemTestResultTable.tsx:196 msgid "Attachment" -msgstr "" +msgstr "Ek" -#: src/tables/stock/StockItemTestResultTable.tsx:206 +#: src/tables/stock/StockItemTestResultTable.tsx:212 msgid "Test station" -msgstr "" +msgstr "Test istasyonu" -#: src/tables/stock/StockItemTestResultTable.tsx:226 +#: src/tables/stock/StockItemTestResultTable.tsx:234 msgid "Finished" -msgstr "" +msgstr "Bitti" -#: src/tables/stock/StockItemTestResultTable.tsx:268 -#: src/tables/stock/StockItemTestResultTable.tsx:339 +#: src/tables/stock/StockItemTestResultTable.tsx:286 +#: src/tables/stock/StockItemTestResultTable.tsx:357 msgid "Edit Test Result" -msgstr "" +msgstr "Test Sonucunu Düzenle" -#: src/tables/stock/StockItemTestResultTable.tsx:270 +#: src/tables/stock/StockItemTestResultTable.tsx:288 msgid "Test result updated" -msgstr "" - -#: src/tables/stock/StockItemTestResultTable.tsx:276 -#: src/tables/stock/StockItemTestResultTable.tsx:348 -msgid "Delete Test Result" -msgstr "" - -#: src/tables/stock/StockItemTestResultTable.tsx:278 -msgid "Test result deleted" -msgstr "" - -#: src/tables/stock/StockItemTestResultTable.tsx:292 -msgid "Test Passed" -msgstr "" - -#: src/tables/stock/StockItemTestResultTable.tsx:293 -msgid "Test result has been recorded" -msgstr "" - -#: src/tables/stock/StockItemTestResultTable.tsx:300 -msgid "Failed to record test result" -msgstr "" - -#: src/tables/stock/StockItemTestResultTable.tsx:317 -msgid "Pass Test" -msgstr "" +msgstr "Test sonucu güncellendi" +#: src/tables/stock/StockItemTestResultTable.tsx:294 #: src/tables/stock/StockItemTestResultTable.tsx:366 +msgid "Delete Test Result" +msgstr "Test Sonucunu Sil" + +#: src/tables/stock/StockItemTestResultTable.tsx:296 +msgid "Test result deleted" +msgstr "Test sonucu silindi" + +#: src/tables/stock/StockItemTestResultTable.tsx:310 +msgid "Test Passed" +msgstr "Test Geçti" + +#: src/tables/stock/StockItemTestResultTable.tsx:311 +msgid "Test result has been recorded" +msgstr "Test sonucu kaydedildi" + +#: src/tables/stock/StockItemTestResultTable.tsx:318 +msgid "Failed to record test result" +msgstr "Test sonucunu kaydetme başarısız oldu" + +#: src/tables/stock/StockItemTestResultTable.tsx:335 +msgid "Pass Test" +msgstr "Testi Geçir" + +#: src/tables/stock/StockItemTestResultTable.tsx:384 msgid "Show results for required tests" -msgstr "" +msgstr "İstenen testler için sonuçları göster" -#: src/tables/stock/StockItemTestResultTable.tsx:370 +#: src/tables/stock/StockItemTestResultTable.tsx:388 msgid "Include Installed" -msgstr "" +msgstr "Kurulanı İçer" -#: src/tables/stock/StockItemTestResultTable.tsx:371 +#: src/tables/stock/StockItemTestResultTable.tsx:389 msgid "Show results for installed stock items" -msgstr "" +msgstr "Kurulan stok ögeleri için sonuçları göster" -#: src/tables/stock/StockItemTestResultTable.tsx:375 -#: src/tables/stock/TestStatisticsTable.tsx:74 +#: src/tables/stock/StockItemTestResultTable.tsx:393 +#: src/tables/stock/TestStatisticsTable.tsx:62 msgid "Passed" -msgstr "" +msgstr "Geçti" -#: src/tables/stock/StockItemTestResultTable.tsx:376 +#: src/tables/stock/StockItemTestResultTable.tsx:394 msgid "Show only passed tests" -msgstr "" +msgstr "Yalnızca geçen testleri göster" #: src/tables/stock/StockLocationTable.tsx:38 #~ msgid "structural" @@ -7903,57 +9160,61 @@ msgstr "" #: src/tables/stock/StockLocationTable.tsx:45 msgid "Include sublocations in results" -msgstr "" +msgstr "Sonuçlarda alt konumları içer" #: src/tables/stock/StockLocationTable.tsx:50 msgid "Show structural locations" -msgstr "" +msgstr "Yapısal konumları göster" #: src/tables/stock/StockLocationTable.tsx:55 msgid "Show external locations" -msgstr "" +msgstr "Harici konumları göster" #: src/tables/stock/StockLocationTable.tsx:59 msgid "Has location type" -msgstr "" +msgstr "Konum türü olanlar" #: src/tables/stock/StockLocationTable.tsx:64 msgid "Filter by location type" -msgstr "" +msgstr "Konum türüne göre süz" #: src/tables/stock/StockLocationTable.tsx:107 -#: src/tables/stock/StockLocationTable.tsx:133 +#: src/tables/stock/StockLocationTable.tsx:134 msgid "Add Stock Location" -msgstr "" +msgstr "Stok Konumu Ekle" -#: src/tables/stock/StockTrackingTable.tsx:64 +#: src/tables/stock/StockTrackingTable.tsx:68 msgid "Added" -msgstr "" +msgstr "Eklendi" -#: src/tables/stock/StockTrackingTable.tsx:69 +#: src/tables/stock/StockTrackingTable.tsx:73 msgid "Removed" -msgstr "" +msgstr "Kaldırıldı" #: src/tables/stock/StockTrackingTable.tsx:198 +msgid "Details" +msgstr "Ayrıntılar" + +#: src/tables/stock/StockTrackingTable.tsx:213 msgid "No user information" -msgstr "" +msgstr "Kullanıcı bilgisi yok" -#: src/tables/stock/TestStatisticsTable.tsx:46 -#: src/tables/stock/TestStatisticsTable.tsx:76 +#: src/tables/stock/TestStatisticsTable.tsx:34 +#: src/tables/stock/TestStatisticsTable.tsx:64 msgid "Total" -msgstr "" +msgstr "Toplam" -#: src/tables/stock/TestStatisticsTable.tsx:75 +#: src/tables/stock/TestStatisticsTable.tsx:63 msgid "Failed" -msgstr "" +msgstr "Başarısız Oldu" #: src/views/MobileAppView.tsx:22 msgid "Mobile viewport detected" -msgstr "" +msgstr "Mobil görüntü alanı saptandı" #: src/views/MobileAppView.tsx:25 msgid "Platform UI is optimized for Tablets and Desktops, you can use the official app for a mobile experience." -msgstr "" +msgstr "Platform kullanıcı arayüzü Tabletler ve Masaüstü Bilgisayarlar için optimize edilmiştir; mobil deneyim için resmi uygulamayı kullanabilirsiniz." #: src/views/MobileAppView.tsx:31 msgid "Read the docs" @@ -7961,5 +9222,5 @@ msgstr "Belgeleri okuyun" #: src/views/MobileAppView.tsx:35 msgid "Ignore and continue to Desktop view" -msgstr "" +msgstr "Yoksay ve Masaüstü görünümüne devam et" diff --git a/src/frontend/src/locales/uk/messages.po b/src/frontend/src/locales/uk/messages.po index 985bda965c..107168cedb 100644 --- a/src/frontend/src/locales/uk/messages.po +++ b/src/frontend/src/locales/uk/messages.po @@ -8,15 +8,15 @@ msgstr "" "Language: uk\n" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"PO-Revision-Date: 2024-08-20 19:50\n" +"PO-Revision-Date: 2024-11-04 03:14\n" "Last-Translator: \n" "Language-Team: Ukrainian\n" "Plural-Forms: nplurals=4; plural=((n%10==1 && n%100!=11) ? 0 : ((n%10 >= 2 && n%10 <=4 && (n%100 < 12 || n%100 > 14)) ? 1 : ((n%10 == 0 || (n%10 >= 5 && n%10 <=9)) || (n%100 >= 11 && n%100 <= 14)) ? 2 : 3));\n" "X-Crowdin-Project: inventree\n" "X-Crowdin-Project-ID: 452300\n" "X-Crowdin-Language: uk\n" -"X-Crowdin-File: /[inventree.InvenTree] l10/src/frontend/src/locales/en/messages.po\n" -"X-Crowdin-File-ID: 205\n" +"X-Crowdin-File: /src/frontend/src/locales/en/messages.po\n" +"X-Crowdin-File-ID: 252\n" #: src/components/Boundary.tsx:12 msgid "Error rendering component" @@ -27,8 +27,8 @@ msgid "An error occurred while rendering this component. Refer to the console fo msgstr "Сталася помилка під час рендерингу цього компонента. Передивитись в консоль для отримання додаткової інформації." #: src/components/DashboardItemProxy.tsx:34 -msgid "Title" -msgstr "Заголовок" +#~ msgid "Title" +#~ msgstr "Title" #: src/components/buttons/AdminButton.tsx:80 msgid "Open in admin interface" @@ -38,82 +38,99 @@ msgstr "Відкрити в інтерфейсі адміністратора" #~ msgid "Copy to clipboard" #~ msgstr "Copy to clipboard" -#: src/components/buttons/CopyButton.tsx:24 +#: src/components/buttons/CopyButton.tsx:29 msgid "Copied" msgstr "Скопійовано" -#: src/components/buttons/CopyButton.tsx:24 +#: src/components/buttons/CopyButton.tsx:29 msgid "Copy" msgstr "Копіювати" -#: src/components/buttons/PrintingActions.tsx:93 +#: src/components/buttons/PrintingActions.tsx:97 msgid "Print Label" msgstr "Друк етикетки" -#: src/components/buttons/PrintingActions.tsx:99 +#: src/components/buttons/PrintingActions.tsx:103 msgid "Print" msgstr "Друк" -#: src/components/buttons/PrintingActions.tsx:100 +#: src/components/buttons/PrintingActions.tsx:104 msgid "Label printing completed successfully" msgstr "Етикетку успішно роздруковано" -#: src/components/buttons/PrintingActions.tsx:106 -#: src/components/buttons/PrintingActions.tsx:144 -#: src/components/editors/NotesEditor.tsx:65 -#: src/components/editors/NotesEditor.tsx:165 -#: src/components/forms/fields/ApiFormField.tsx:319 +#: src/components/buttons/PrintingActions.tsx:110 +#: src/components/buttons/PrintingActions.tsx:148 +#: src/components/editors/NotesEditor.tsx:73 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:154 +#: src/components/forms/fields/ApiFormField.tsx:328 +#: src/components/forms/fields/TableField.tsx:43 #: src/components/importer/ImportDataSelector.tsx:187 -#: src/components/importer/ImporterColumnSelector.tsx:207 +#: src/components/importer/ImporterColumnSelector.tsx:210 #: src/components/modals/LicenseModal.tsx:75 -#: src/components/nav/SearchDrawer.tsx:448 +#: src/components/nav/SearchDrawer.tsx:458 +#: src/components/render/ModelType.tsx:290 #: src/pages/ErrorPage.tsx:11 -#: src/pages/part/PartPricingPanel.tsx:67 -#: src/tables/InvenTreeTable.tsx:495 +#: src/pages/part/PartPricingPanel.tsx:71 +#: src/tables/InvenTreeTable.tsx:481 #: src/tables/bom/BomTable.tsx:450 -#: src/tables/stock/StockItemTestResultTable.tsx:299 +#: src/tables/stock/StockItemTestResultTable.tsx:317 msgid "Error" msgstr "Помилка" -#: src/components/buttons/PrintingActions.tsx:107 +#: src/components/buttons/PrintingActions.tsx:111 msgid "The label could not be generated" msgstr "" -#: src/components/buttons/PrintingActions.tsx:122 +#: src/components/buttons/PrintingActions.tsx:126 msgid "Print Report" msgstr "Надрукувати звіт" -#: src/components/buttons/PrintingActions.tsx:138 +#: src/components/buttons/PrintingActions.tsx:142 msgid "Generate" msgstr "Створити" -#: src/components/buttons/PrintingActions.tsx:139 +#: src/components/buttons/PrintingActions.tsx:143 msgid "Report printing completed successfully" msgstr "Звіт успішно надруковано" -#: src/components/buttons/PrintingActions.tsx:145 +#: src/components/buttons/PrintingActions.tsx:149 msgid "The report could not be generated" msgstr "Не вдалося згенерувати звіт" -#: src/components/buttons/PrintingActions.tsx:173 +#: src/components/buttons/PrintingActions.tsx:177 msgid "Printing Actions" msgstr "Дії друку" -#: src/components/buttons/PrintingActions.tsx:178 +#: src/components/buttons/PrintingActions.tsx:182 msgid "Print Labels" msgstr "Друк етикеток" -#: src/components/buttons/PrintingActions.tsx:184 +#: src/components/buttons/PrintingActions.tsx:188 msgid "Print Reports" msgstr "Друк звітів" +#: src/components/buttons/RemoveRowButton.tsx:8 +msgid "Remove this row" +msgstr "Видалити цей рядок" + #: src/components/buttons/ScanButton.tsx:15 -msgid "Scan QR code" -msgstr "Сканувати QR-код" +#: src/components/nav/NavigationDrawer.tsx:117 +#: src/forms/PurchaseOrderForms.tsx:379 +#: src/forms/PurchaseOrderForms.tsx:473 +msgid "Scan Barcode" +msgstr "" + +#: src/components/buttons/ScanButton.tsx:15 +#~ msgid "Scan QR code" +#~ msgstr "Scan QR code" #: src/components/buttons/ScanButton.tsx:20 -msgid "Open QR code scanner" -msgstr "Відкрити сканер QR-коду" +msgid "Open Barcode Scanner" +msgstr "" + +#: src/components/buttons/ScanButton.tsx:20 +#~ msgid "Open QR code scanner" +#~ msgstr "Open QR code scanner" #: src/components/buttons/SpotlightButton.tsx:14 msgid "Open spotlight" @@ -128,85 +145,347 @@ msgid "Fail" msgstr "Помилка" #: src/components/buttons/YesNoButton.tsx:33 -#: src/tables/Filter.tsx:52 +#: src/tables/Filter.tsx:61 msgid "Yes" msgstr "Так" #: src/components/buttons/YesNoButton.tsx:33 -#: src/tables/Filter.tsx:53 +#: src/tables/Filter.tsx:62 msgid "No" msgstr "Ні" -#: src/components/details/Details.tsx:301 +#: src/components/dashboard/DashboardLayout.tsx:286 +msgid "No Widgets Selected" +msgstr "" + +#: src/components/dashboard/DashboardLayout.tsx:289 +msgid "Use the menu to add widgets to the dashboard" +msgstr "" + +#: src/components/dashboard/DashboardMenu.tsx:59 +#: src/components/dashboard/DashboardMenu.tsx:126 +msgid "Accept Layout" +msgstr "" + +#: src/components/dashboard/DashboardMenu.tsx:91 +#: src/components/nav/NavigationDrawer.tsx:71 +#: src/defaults/actions.tsx:17 +#: src/defaults/links.tsx:9 +#: src/pages/Index/Settings/UserSettings.tsx:47 +msgid "Dashboard" +msgstr "Дешборд" + +#: src/components/dashboard/DashboardMenu.tsx:99 +msgid "Edit Layout" +msgstr "" + +#: src/components/dashboard/DashboardMenu.tsx:108 +msgid "Add Widget" +msgstr "" + +#: src/components/dashboard/DashboardMenu.tsx:117 +msgid "Remove Widgets" +msgstr "" + +#: src/components/dashboard/DashboardWidget.tsx:65 +msgid "Remove this widget from the dashboard" +msgstr "" + +#: src/components/dashboard/DashboardWidgetDrawer.tsx:77 +msgid "Filter dashboard widgets" +msgstr "" + +#: src/components/dashboard/DashboardWidgetDrawer.tsx:98 +msgid "Add this widget to the dashboard" +msgstr "" + +#: src/components/dashboard/DashboardWidgetDrawer.tsx:123 +msgid "No Widgets Available" +msgstr "" + +#: src/components/dashboard/DashboardWidgetDrawer.tsx:124 +msgid "There are no more widgets available for the dashboard" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:19 +msgid "Subscribed Parts" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:20 +msgid "Show the number of parts which you have subscribed to" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:26 +msgid "Subscribed Categories" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:27 +msgid "Show the number of part categories which you have subscribed to" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:35 +#: src/pages/part/PartSchedulingDetail.tsx:304 +#: src/tables/part/PartTable.tsx:238 +msgid "Low Stock" +msgstr "Низький залишок" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:37 +msgid "Show the number of parts which are low on stock" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:43 +msgid "Expired Stock Items" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:45 +msgid "Show the number of stock items which have expired" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:51 +msgid "Stale Stock Items" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:53 +msgid "Show the number of stock items which are stale" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:59 +msgid "Active Build Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:61 +msgid "Show the number of build orders which are currently active" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:66 +msgid "Overdue Build Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:68 +msgid "Show the number of build orders which are overdue" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:73 +msgid "Assigned Build Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:75 +msgid "Show the number of build orders which are assigned to you" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:80 +msgid "Active Sales Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:82 +msgid "Show the number of sales orders which are currently active" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:87 +msgid "Overdue Sales Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:89 +msgid "Show the number of sales orders which are overdue" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:94 +msgid "Assigned Sales Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:96 +msgid "Show the number of sales orders which are assigned to you" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:101 +msgid "Active Purchase Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:103 +msgid "Show the number of purchase orders which are currently active" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:108 +msgid "Overdue Purchase Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:110 +msgid "Show the number of purchase orders which are overdue" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:115 +msgid "Assigned Purchase Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:117 +msgid "Show the number of purchase orders which are assigned to you" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:122 +msgid "Active Return Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:124 +msgid "Show the number of return orders which are currently active" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:129 +msgid "Overdue Return Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:131 +msgid "Show the number of return orders which are overdue" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:136 +msgid "Assigned Return Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:138 +msgid "Show the number of return orders which are assigned to you" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:149 +#: src/components/dashboard/widgets/GetStartedWidget.tsx:15 +#: src/defaults/links.tsx:38 +msgid "Getting Started" +msgstr "Починаємо" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:150 +#: src/defaults/links.tsx:41 +msgid "Getting started with InvenTree" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:157 +#: src/components/dashboard/widgets/NewsWidget.tsx:123 +msgid "News Updates" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:158 +msgid "The latest news from InvenTree" +msgstr "" + +#: src/components/dashboard/widgets/ColorToggleWidget.tsx:18 +#: src/components/nav/MainMenu.tsx:77 +msgid "Change Color Mode" +msgstr "" + +#: src/components/dashboard/widgets/ColorToggleWidget.tsx:23 +msgid "Change the color mode of the user interface" +msgstr "" + +#: src/components/dashboard/widgets/LanguageSelectWidget.tsx:18 +msgid "Change Language" +msgstr "" + +#: src/components/dashboard/widgets/LanguageSelectWidget.tsx:23 +msgid "Change the language of the user interface" +msgstr "" + +#: src/components/dashboard/widgets/NewsWidget.tsx:61 +#: src/components/nav/NotificationDrawer.tsx:88 +#: src/pages/Notifications.tsx:73 +msgid "Mark as read" +msgstr "Позначити прочитаним" + +#: src/components/dashboard/widgets/NewsWidget.tsx:115 +msgid "Requires Superuser" +msgstr "" + +#: src/components/dashboard/widgets/NewsWidget.tsx:116 +msgid "This widget requires superuser permissions" +msgstr "" + +#: src/components/dashboard/widgets/NewsWidget.tsx:133 +msgid "No News" +msgstr "" + +#: src/components/dashboard/widgets/NewsWidget.tsx:134 +msgid "There are no unread news items" +msgstr "" + +#: src/components/details/Details.tsx:300 msgid "No name defined" msgstr "Ім'я не визначено" -#: src/components/details/DetailsImage.tsx:65 +#: src/components/details/DetailsImage.tsx:69 msgid "Remove Image" msgstr "Видалити зображення" -#: src/components/details/DetailsImage.tsx:68 +#: src/components/details/DetailsImage.tsx:72 msgid "Remove the associated image from this item?" msgstr "Видалити пов'язане зображення з цього елемента?" -#: src/components/details/DetailsImage.tsx:71 -#: src/forms/StockForms.tsx:533 +#: src/components/details/DetailsImage.tsx:75 +#: src/forms/StockForms.tsx:651 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:199 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:306 -#: src/pages/stock/StockDetail.tsx:526 +#: src/pages/stock/StockDetail.tsx:690 msgid "Remove" msgstr "Видалити" -#: src/components/details/DetailsImage.tsx:71 -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:158 -#: src/components/items/ActionDropdown.tsx:215 -#: src/components/items/ActionDropdown.tsx:216 -#: src/contexts/ThemeContext.tsx:43 +#: src/components/details/DetailsImage.tsx:75 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:184 +#: src/components/items/ActionDropdown.tsx:268 +#: src/components/items/ActionDropdown.tsx:269 +#: src/contexts/ThemeContext.tsx:45 #: src/hooks/UseForm.tsx:40 -#: src/tables/FilterSelectDrawer.tsx:205 -#: src/tables/build/BuildOutputTable.tsx:286 +#: src/tables/FilterSelectDrawer.tsx:241 +#: src/tables/RowActions.tsx:59 +#: src/tables/build/BuildOutputTable.tsx:434 msgid "Cancel" msgstr "Скасувати" -#: src/components/details/DetailsImage.tsx:97 +#: src/components/details/DetailsImage.tsx:101 msgid "Drag and drop to upload" msgstr "Перетягніть сюди, щоб завантажити" -#: src/components/details/DetailsImage.tsx:100 +#: src/components/details/DetailsImage.tsx:104 msgid "Click to select file(s)" msgstr "Натисніть, щоб вибрати файл(и)" -#: src/components/details/DetailsImage.tsx:226 +#: src/components/details/DetailsImage.tsx:230 msgid "Clear" msgstr "Очистити" -#: src/components/details/DetailsImage.tsx:232 -#: src/components/forms/ApiForm.tsx:627 -#: src/contexts/ThemeContext.tsx:43 -#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:60 +#: src/components/details/DetailsImage.tsx:236 +#: src/components/forms/ApiForm.tsx:660 +#: src/contexts/ThemeContext.tsx:45 msgid "Submit" msgstr "Відправити" -#: src/components/details/DetailsImage.tsx:272 +#: src/components/details/DetailsImage.tsx:280 msgid "Select from existing images" msgstr "Обрати з існуючих зображень" -#: src/components/details/DetailsImage.tsx:280 +#: src/components/details/DetailsImage.tsx:288 msgid "Select Image" msgstr "Вибрати зображення" -#: src/components/details/DetailsImage.tsx:292 +#: src/components/details/DetailsImage.tsx:304 +msgid "Download remote image" +msgstr "" + +#: src/components/details/DetailsImage.tsx:319 msgid "Upload new image" msgstr "Завантажити нове зображення" -#: src/components/details/DetailsImage.tsx:299 +#: src/components/details/DetailsImage.tsx:326 msgid "Upload Image" msgstr "Завантажити зображення" -#: src/components/details/DetailsImage.tsx:312 +#: src/components/details/DetailsImage.tsx:339 msgid "Delete image" msgstr "Видалити зображення" +#: src/components/details/DetailsImage.tsx:373 +msgid "Download Image" +msgstr "" + +#: src/components/details/DetailsImage.tsx:378 +msgid "Image downloaded successfully" +msgstr "" + #: src/components/details/PartIcons.tsx:43 #~ msgid "Part is a template part (variants can be made from this part)" #~ msgstr "Part is a template part (variants can be made from this part)" @@ -235,36 +514,57 @@ msgstr "Видалити зображення" #~ msgid "Part is virtual (not a physical part)" #~ msgstr "Part is virtual (not a physical part)" -#: src/components/editors/NotesEditor.tsx:66 +#: src/components/editors/NotesEditor.tsx:74 msgid "Image upload failed" msgstr "Не вдалося завантажити зображення" -#: src/components/editors/NotesEditor.tsx:156 -#: src/components/forms/ApiForm.tsx:467 +#: src/components/editors/NotesEditor.tsx:83 +#: src/components/editors/NotesEditor.tsx:119 +#: src/components/forms/ApiForm.tsx:475 #: src/tables/bom/BomTable.tsx:441 msgid "Success" msgstr "Успіх" -#: src/components/editors/NotesEditor.tsx:157 +#: src/components/editors/NotesEditor.tsx:84 +msgid "Image uploaded successfully" +msgstr "Зобращення успішно завантажено" + +#: src/components/editors/NotesEditor.tsx:120 msgid "Notes saved successfully" msgstr "Примітки успішно збережено" -#: src/components/editors/NotesEditor.tsx:166 +#: src/components/editors/NotesEditor.tsx:131 msgid "Failed to save notes" msgstr "Не вдалося зберегти примітки" -#: src/components/editors/NotesEditor.tsx:198 -msgid "Preview Notes" -msgstr "Попередній перегляд приміток" +#: src/components/editors/NotesEditor.tsx:134 +msgid "Error Saving Notes" +msgstr "" -#: src/components/editors/NotesEditor.tsx:198 -msgid "Edit Notes" -msgstr "Редагувати примітки" +#: src/components/editors/NotesEditor.tsx:151 +#~ msgid "Disable Editing" +#~ msgstr "Disable Editing" -#: src/components/editors/NotesEditor.tsx:212 +#: src/components/editors/NotesEditor.tsx:154 msgid "Save Notes" msgstr "Зберегти примітки" +#: src/components/editors/NotesEditor.tsx:173 +msgid "Close Editor" +msgstr "" + +#: src/components/editors/NotesEditor.tsx:180 +msgid "Enable Editing" +msgstr "Увімкнути редагування" + +#: src/components/editors/NotesEditor.tsx:198 +#~ msgid "Preview Notes" +#~ msgstr "Preview Notes" + +#: src/components/editors/NotesEditor.tsx:198 +#~ msgid "Edit Notes" +#~ msgstr "Edit Notes" + #: src/components/editors/TemplateEditor/CodeEditor/index.tsx:9 msgid "Code" msgstr "Код" @@ -281,40 +581,44 @@ msgstr "" msgid "PDF Preview" msgstr "Попередній перегляд PDF" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:104 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:115 msgid "Error loading template" msgstr "Помилка при завантаженні шаблону" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:116 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:127 msgid "Error saving template" msgstr "Помилка збереження шаблону" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:146 -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:274 -msgid "Save & Reload Preview" -msgstr "Зберегти і перезавантажити попередній перегляд" - -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:151 -msgid "Are you sure you want to Save & Reload the preview?" -msgstr "" - #: src/components/editors/TemplateEditor/TemplateEditor.tsx:151 #~ msgid "Save & Reload preview?" #~ msgstr "Save & Reload preview?" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:153 -msgid "To render the preview the current template needs to be replaced on the server with your modifications which may break the label if it is under active use. Do you want to proceed?" +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:155 +msgid "Could not load the template from the server." msgstr "" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:157 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:172 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:303 +msgid "Save & Reload Preview" +msgstr "Зберегти і перезавантажити попередній перегляд" + +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:177 +msgid "Are you sure you want to Save & Reload the preview?" +msgstr "" + +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:179 +msgid "To render the preview the current template needs to be replaced on the server with your modifications which may break the label if it is under active use. Do you want to proceed?" +msgstr "Щоб показати попередній перегляд, поточний шаблон повинен бути замінений на сервер з внесеними змінами, які можуть зламати етикетку, якщо він знаходиться під активним використанням. Бажаєте продовжити?" + +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:183 msgid "Save & Reload" msgstr "Зберегти та перезавантажити" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:189 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:215 msgid "Preview updated" msgstr "Перегляд оновлено" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:190 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:216 msgid "The preview has been updated successfully." msgstr "" @@ -322,15 +626,15 @@ msgstr "" #~ msgid "Save & Reload preview" #~ msgstr "Save & Reload preview" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:266 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:295 msgid "Reload preview" msgstr "Перезавантажити попередній перегляд" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:267 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:296 msgid "Use the currently stored template from the server" msgstr "" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:275 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:304 msgid "Save the current template and reload the preview" msgstr "" @@ -338,11 +642,11 @@ msgstr "" #~ msgid "to preview" #~ msgstr "to preview" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:333 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:365 msgid "Select instance to preview" msgstr "" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:377 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:409 msgid "Error rendering template" msgstr "" @@ -379,6 +683,7 @@ msgid "This page does not exist" msgstr "" #: src/components/errors/PermissionDenied.tsx:8 +#: src/functions/notifications.tsx:24 msgid "Permission Denied" msgstr "" @@ -394,8 +699,8 @@ msgstr "" msgid "A server error occurred" msgstr "" -#: src/components/forms/ApiForm.tsx:151 -#: src/components/forms/ApiForm.tsx:555 +#: src/components/forms/ApiForm.tsx:154 +#: src/components/forms/ApiForm.tsx:579 msgid "Form Error" msgstr "" @@ -403,22 +708,22 @@ msgstr "" #~ msgid "Form Errors Exist" #~ msgstr "Form Errors Exist" -#: src/components/forms/ApiForm.tsx:563 +#: src/components/forms/ApiForm.tsx:587 msgid "Errors exist for one or more form fields" msgstr "Існують деякі помилки для одного або декількох полів" -#: src/components/forms/ApiForm.tsx:665 -#: src/tables/plugin/PluginListTable.tsx:388 +#: src/components/forms/ApiForm.tsx:698 +#: src/tables/plugin/PluginListTable.tsx:195 msgid "Update" msgstr "Оновити" -#: src/components/forms/ApiForm.tsx:685 -#: src/components/items/ActionDropdown.tsx:195 +#: src/components/forms/ApiForm.tsx:718 +#: src/components/items/ActionDropdown.tsx:248 #: src/hooks/UseForm.tsx:122 -#: src/pages/Index/Scan.tsx:343 +#: src/pages/Index/Scan.tsx:357 #: src/pages/Notifications.tsx:123 -#: src/tables/RowActions.tsx:43 -#: src/tables/plugin/PluginListTable.tsx:420 +#: src/tables/RowActions.tsx:49 +#: src/tables/plugin/PluginListTable.tsx:232 msgid "Delete" msgstr "Видалити" @@ -428,14 +733,6 @@ msgstr "Видалити" #~ msgid "Check your your input and try again." #~ msgstr "Check your your input and try again." -#: src/components/forms/AuthenticationForm.tsx:51 -msgid "Login successful" -msgstr "Вхід успішний" - -#: src/components/forms/AuthenticationForm.tsx:52 -msgid "Logged in successfully" -msgstr "Вхід успішно виконано" - #: src/components/forms/AuthenticationForm.tsx:52 #~ msgid "Welcome back!" #~ msgstr "Welcome back!" @@ -444,14 +741,22 @@ msgstr "Вхід успішно виконано" #~ msgid "Login successfull" #~ msgstr "Login successfull" -#: src/components/forms/AuthenticationForm.tsx:58 +#: src/components/forms/AuthenticationForm.tsx:55 +msgid "Login successful" +msgstr "Вхід успішний" + +#: src/components/forms/AuthenticationForm.tsx:56 +msgid "Logged in successfully" +msgstr "Вхід успішно виконано" + +#: src/components/forms/AuthenticationForm.tsx:61 msgid "Login failed" msgstr "Не вдалося увійти" -#: src/components/forms/AuthenticationForm.tsx:59 -#: src/components/forms/AuthenticationForm.tsx:76 -#: src/components/forms/AuthenticationForm.tsx:211 -#: src/functions/auth.tsx:164 +#: src/components/forms/AuthenticationForm.tsx:62 +#: src/components/forms/AuthenticationForm.tsx:79 +#: src/components/forms/AuthenticationForm.tsx:214 +#: src/functions/auth.tsx:175 msgid "Check your input and try again." msgstr "Перевірте введені дані та повторіть спробу." @@ -460,45 +765,46 @@ msgstr "Перевірте введені дані та повторіть сп #~ msgid "Mail delivery successfull" #~ msgstr "Mail delivery successfull" -#: src/components/forms/AuthenticationForm.tsx:70 -#: src/functions/auth.tsx:155 +#: src/components/forms/AuthenticationForm.tsx:73 +#: src/functions/auth.tsx:166 msgid "Mail delivery successful" msgstr "Пошту відправлено" -#: src/components/forms/AuthenticationForm.tsx:71 +#: src/components/forms/AuthenticationForm.tsx:74 msgid "Check your inbox for the login link. If you have an account, you will receive a login link. Check in spam too." msgstr "Перевірте вашу поштову скриньку для входу. Якщо у вас є обліковий запис, ви отримаєте посилання для входу. Також перевірте спам." -#: src/components/forms/AuthenticationForm.tsx:75 +#: src/components/forms/AuthenticationForm.tsx:78 msgid "Mail delivery failed" msgstr "Пошту не вдалося відправити" -#: src/components/forms/AuthenticationForm.tsx:95 +#: src/components/forms/AuthenticationForm.tsx:98 msgid "Or continue with other methods" msgstr "Або продовжити з іншими методами" -#: src/components/forms/AuthenticationForm.tsx:106 -#: src/components/forms/AuthenticationForm.tsx:227 +#: src/components/forms/AuthenticationForm.tsx:109 +#: src/components/forms/AuthenticationForm.tsx:230 +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:67 msgid "Username" msgstr "Ім'я користувача" -#: src/components/forms/AuthenticationForm.tsx:107 -#: src/components/forms/AuthenticationForm.tsx:228 +#: src/components/forms/AuthenticationForm.tsx:110 +#: src/components/forms/AuthenticationForm.tsx:231 msgid "Your username" msgstr "Ваше ім’я користувача" -#: src/components/forms/AuthenticationForm.tsx:112 -#: src/components/forms/AuthenticationForm.tsx:240 -#: src/pages/Auth/Set-Password.tsx:106 +#: src/components/forms/AuthenticationForm.tsx:115 +#: src/components/forms/AuthenticationForm.tsx:243 +#: src/pages/Auth/Set-Password.tsx:101 msgid "Password" msgstr "Пароль" -#: src/components/forms/AuthenticationForm.tsx:113 -#: src/components/forms/AuthenticationForm.tsx:241 +#: src/components/forms/AuthenticationForm.tsx:116 +#: src/components/forms/AuthenticationForm.tsx:244 msgid "Your password" msgstr "Ваш пароль" -#: src/components/forms/AuthenticationForm.tsx:125 +#: src/components/forms/AuthenticationForm.tsx:128 #: src/pages/Auth/Reset.tsx:26 msgid "Reset password" msgstr "Скинути пароль" @@ -507,77 +813,79 @@ msgstr "Скинути пароль" #~ msgid "Log in" #~ msgstr "Log in" -#: src/components/forms/AuthenticationForm.tsx:134 -#: src/components/forms/AuthenticationForm.tsx:233 +#: src/components/forms/AuthenticationForm.tsx:136 +#~ msgid "I will use username and password" +#~ msgstr "I will use username and password" + +#: src/components/forms/AuthenticationForm.tsx:137 +#: src/components/forms/AuthenticationForm.tsx:236 #: src/pages/Auth/Reset.tsx:31 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:51 msgid "Email" msgstr "Електронна пошта" -#: src/components/forms/AuthenticationForm.tsx:135 +#: src/components/forms/AuthenticationForm.tsx:138 #: src/pages/Auth/Reset.tsx:32 -#: src/pages/Auth/Set-Password.tsx:107 +#: src/pages/Auth/Set-Password.tsx:102 msgid "We will send you a link to login - if you are registered" msgstr "Ми надішлемо вам авторизаційне посилання - якщо ви зареєстровані" -#: src/components/forms/AuthenticationForm.tsx:136 -#~ msgid "I will use username and password" -#~ msgstr "I will use username and password" - -#: src/components/forms/AuthenticationForm.tsx:151 +#: src/components/forms/AuthenticationForm.tsx:154 msgid "Send me an email" msgstr "Надіслати мені ел. листа" -#: src/components/forms/AuthenticationForm.tsx:153 +#: src/components/forms/AuthenticationForm.tsx:156 msgid "Use username and password" msgstr "Використати ім'я користувача та пароль" -#: src/components/forms/AuthenticationForm.tsx:162 +#: src/components/forms/AuthenticationForm.tsx:165 msgid "Log In" msgstr "Увійти" -#: src/components/forms/AuthenticationForm.tsx:164 +#: src/components/forms/AuthenticationForm.tsx:167 +#: src/pages/Auth/Reset.tsx:41 +#: src/pages/Auth/Set-Password.tsx:107 msgid "Send Email" msgstr "Надіслати листа" -#: src/components/forms/AuthenticationForm.tsx:193 +#: src/components/forms/AuthenticationForm.tsx:196 msgid "Registration successful" msgstr "Реєстрація успішна" -#: src/components/forms/AuthenticationForm.tsx:194 +#: src/components/forms/AuthenticationForm.tsx:197 msgid "Please confirm your email address to complete the registration" msgstr "Будь ласка, перевірте свою електронну адресу для завершення реєстрації" -#: src/components/forms/AuthenticationForm.tsx:210 +#: src/components/forms/AuthenticationForm.tsx:213 msgid "Input error" msgstr "Помилка у вхідних даних" -#: src/components/forms/AuthenticationForm.tsx:234 +#: src/components/forms/AuthenticationForm.tsx:237 msgid "This will be used for a confirmation" msgstr "Це буде використано для підтвердження" -#: src/components/forms/AuthenticationForm.tsx:246 +#: src/components/forms/AuthenticationForm.tsx:249 msgid "Password repeat" msgstr "Повтор пароля" -#: src/components/forms/AuthenticationForm.tsx:247 +#: src/components/forms/AuthenticationForm.tsx:250 msgid "Repeat password" msgstr "Повторіть пароль" -#: src/components/forms/AuthenticationForm.tsx:259 -#: src/components/forms/AuthenticationForm.tsx:304 +#: src/components/forms/AuthenticationForm.tsx:262 +#: src/components/forms/AuthenticationForm.tsx:307 msgid "Register" msgstr "Реєстрація" -#: src/components/forms/AuthenticationForm.tsx:265 +#: src/components/forms/AuthenticationForm.tsx:268 msgid "Or use SSO" msgstr "Або використайте SSO" -#: src/components/forms/AuthenticationForm.tsx:296 +#: src/components/forms/AuthenticationForm.tsx:299 msgid "Don't have an account?" msgstr "Не маєте облікового запису?" -#: src/components/forms/AuthenticationForm.tsx:315 +#: src/components/forms/AuthenticationForm.tsx:318 msgid "Go back to login" msgstr "Повернутися до входу" @@ -588,19 +896,20 @@ msgstr "Хост" #: src/components/forms/HostOptionsForm.tsx:42 #: src/components/forms/HostOptionsForm.tsx:70 +#: src/components/plugins/PluginDrawer.tsx:69 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:410 +#: src/pages/Index/Settings/AdminCenter/UnitManagmentPanel.tsx:19 #: src/pages/part/CategoryDetail.tsx:81 -#: src/pages/part/PartDetail.tsx:143 -#: src/pages/stock/LocationDetail.tsx:89 -#: src/tables/machine/MachineTypeTable.tsx:65 -#: src/tables/machine/MachineTypeTable.tsx:109 -#: src/tables/machine/MachineTypeTable.tsx:216 -#: src/tables/machine/MachineTypeTable.tsx:319 +#: src/pages/part/PartDetail.tsx:164 +#: src/pages/stock/LocationDetail.tsx:83 +#: src/tables/machine/MachineTypeTable.tsx:70 +#: src/tables/machine/MachineTypeTable.tsx:119 +#: src/tables/machine/MachineTypeTable.tsx:237 +#: src/tables/machine/MachineTypeTable.tsx:340 #: src/tables/plugin/PluginErrorTable.tsx:33 -#: src/tables/plugin/PluginListTable.tsx:126 #: src/tables/purchasing/ManufacturerPartParameterTable.tsx:32 #: src/tables/settings/GroupTable.tsx:147 -#: src/tables/settings/PendingTasksTable.tsx:28 +#: src/tables/settings/PendingTasksTable.tsx:32 #: src/tables/stock/LocationTypesTable.tsx:69 msgid "Name" msgstr "" @@ -650,7 +959,7 @@ msgid "Uncategorized" msgstr "Без категорії" #: src/components/forms/fields/IconField.tsx:209 -#: src/components/nav/Layout.tsx:70 +#: src/components/nav/Layout.tsx:77 #: src/tables/part/PartThumbTable.tsx:192 msgid "Search..." msgstr "Пошук..." @@ -667,28 +976,27 @@ msgstr "" msgid "{0} icons" msgstr "" -#: src/components/forms/fields/RelatedModelField.tsx:318 -#: src/pages/Index/Settings/UserSettings.tsx:96 +#: src/components/forms/fields/RelatedModelField.tsx:319 +#: src/pages/Index/Settings/UserSettings.tsx:97 #: src/tables/Search.tsx:23 msgid "Search" msgstr "Пошук" -#: src/components/forms/fields/RelatedModelField.tsx:319 +#: src/components/forms/fields/RelatedModelField.tsx:320 #: src/components/modals/AboutInvenTreeModal.tsx:81 -#: src/components/widgets/WidgetLayout.tsx:120 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:316 msgid "Loading" msgstr "" -#: src/components/forms/fields/RelatedModelField.tsx:321 +#: src/components/forms/fields/RelatedModelField.tsx:322 msgid "No results found" msgstr "" -#: src/components/forms/fields/TableField.tsx:52 -msgid "modelRenderer entry required for tables" -msgstr "" +#: src/components/forms/fields/TableField.tsx:72 +#~ msgid "modelRenderer entry required for tables" +#~ msgstr "modelRenderer entry required for tables" -#: src/components/forms/fields/TableField.tsx:76 +#: src/components/forms/fields/TableField.tsx:167 msgid "No entries available" msgstr "" @@ -741,7 +1049,7 @@ msgid "Filter by row validation status" msgstr "" #: src/components/importer/ImportDataSelector.tsx:365 -#: src/tables/build/BuildOutputTable.tsx:266 +#: src/tables/build/BuildOutputTable.tsx:407 msgid "Complete" msgstr "" @@ -749,20 +1057,21 @@ msgstr "" msgid "Filter by row completion status" msgstr "" -#: src/components/importer/ImportDataSelector.tsx:383 +#: src/components/importer/ImportDataSelector.tsx:384 msgid "Import selected rows" msgstr "" -#: src/components/importer/ImportDataSelector.tsx:398 +#: src/components/importer/ImportDataSelector.tsx:399 msgid "Processing Data" msgstr "" -#: src/components/importer/ImporterColumnSelector.tsx:50 -#: src/components/importer/ImporterColumnSelector.tsx:176 +#: src/components/importer/ImporterColumnSelector.tsx:53 +#: src/components/importer/ImporterColumnSelector.tsx:179 +#: src/components/items/ErrorItem.tsx:12 msgid "An error occurred" msgstr "" -#: src/components/importer/ImporterColumnSelector.tsx:62 +#: src/components/importer/ImporterColumnSelector.tsx:65 msgid "Select column, or leave blank to ignore this field." msgstr "" @@ -778,51 +1087,51 @@ msgstr "" #~ msgid "Imported Column Name" #~ msgstr "Imported Column Name" -#: src/components/importer/ImporterColumnSelector.tsx:182 +#: src/components/importer/ImporterColumnSelector.tsx:185 msgid "Ignore this field" msgstr "" -#: src/components/importer/ImporterColumnSelector.tsx:196 +#: src/components/importer/ImporterColumnSelector.tsx:199 msgid "Mapping data columns to database fields" msgstr "" -#: src/components/importer/ImporterColumnSelector.tsx:201 +#: src/components/importer/ImporterColumnSelector.tsx:204 msgid "Accept Column Mapping" msgstr "" -#: src/components/importer/ImporterColumnSelector.tsx:214 +#: src/components/importer/ImporterColumnSelector.tsx:217 msgid "Database Field" msgstr "" -#: src/components/importer/ImporterColumnSelector.tsx:215 +#: src/components/importer/ImporterColumnSelector.tsx:218 msgid "Field Description" msgstr "" -#: src/components/importer/ImporterColumnSelector.tsx:216 +#: src/components/importer/ImporterColumnSelector.tsx:219 msgid "Imported Column" msgstr "" -#: src/components/importer/ImporterColumnSelector.tsx:217 +#: src/components/importer/ImporterColumnSelector.tsx:220 msgid "Default Value" msgstr "" -#: src/components/importer/ImporterDrawer.tsx:44 +#: src/components/importer/ImporterDrawer.tsx:46 msgid "Upload File" msgstr "" -#: src/components/importer/ImporterDrawer.tsx:45 +#: src/components/importer/ImporterDrawer.tsx:47 msgid "Map Columns" msgstr "" -#: src/components/importer/ImporterDrawer.tsx:46 +#: src/components/importer/ImporterDrawer.tsx:48 msgid "Import Data" msgstr "" -#: src/components/importer/ImporterDrawer.tsx:47 +#: src/components/importer/ImporterDrawer.tsx:49 msgid "Process Data" msgstr "" -#: src/components/importer/ImporterDrawer.tsx:48 +#: src/components/importer/ImporterDrawer.tsx:50 msgid "Complete Import" msgstr "" @@ -830,28 +1139,28 @@ msgstr "" #~ msgid "Cancel import session" #~ msgstr "Cancel import session" -#: src/components/importer/ImporterDrawer.tsx:104 +#: src/components/importer/ImporterDrawer.tsx:106 msgid "Import Complete" msgstr "" -#: src/components/importer/ImporterDrawer.tsx:107 +#: src/components/importer/ImporterDrawer.tsx:109 msgid "Data has been imported successfully" msgstr "" -#: src/components/importer/ImporterDrawer.tsx:109 -#: src/components/importer/ImporterDrawer.tsx:118 +#: src/components/importer/ImporterDrawer.tsx:111 +#: src/components/importer/ImporterDrawer.tsx:120 msgid "Close" msgstr "" -#: src/components/importer/ImporterDrawer.tsx:115 +#: src/components/importer/ImporterDrawer.tsx:117 msgid "Unknown Status" msgstr "" -#: src/components/importer/ImporterDrawer.tsx:116 +#: src/components/importer/ImporterDrawer.tsx:118 msgid "Import session has unknown status" msgstr "" -#: src/components/importer/ImporterDrawer.tsx:135 +#: src/components/importer/ImporterDrawer.tsx:137 msgid "Importing Data" msgstr "" @@ -860,85 +1169,115 @@ msgid "Importing Records" msgstr "" #: src/components/importer/ImporterImportProgress.tsx:39 -msgid "Imported rows" +#: src/tables/settings/ImportSessionTable.tsx:78 +msgid "Imported Rows" msgstr "" -#: src/components/items/ActionDropdown.tsx:121 +#: src/components/importer/ImporterImportProgress.tsx:39 +#~ msgid "Imported rows" +#~ msgstr "Imported rows" + +#: src/components/items/ActionDropdown.tsx:126 +msgid "Options" +msgstr "Параметри" + +#: src/components/items/ActionDropdown.tsx:140 +#~ msgid "View Barcode" +#~ msgstr "View Barcode" + +#: src/components/items/ActionDropdown.tsx:162 +#: src/tables/InvenTreeTableHeader.tsx:159 +#: src/tables/InvenTreeTableHeader.tsx:160 msgid "Barcode Actions" msgstr "" -#: src/components/items/ActionDropdown.tsx:140 -msgid "View Barcode" -msgstr "Переглянути штрих-код" +#: src/components/items/ActionDropdown.tsx:162 +#~ msgid "Link custom barcode" +#~ msgstr "Link custom barcode" -#: src/components/items/ActionDropdown.tsx:147 +#: src/components/items/ActionDropdown.tsx:167 msgid "View" msgstr "" -#: src/components/items/ActionDropdown.tsx:148 +#: src/components/items/ActionDropdown.tsx:169 msgid "View barcode" msgstr "Переглянути штрих-код" -#: src/components/items/ActionDropdown.tsx:161 +#: src/components/items/ActionDropdown.tsx:175 msgid "Link Barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:162 -msgid "Link custom barcode" -msgstr "" - -#: src/components/items/ActionDropdown.tsx:173 -#: src/forms/PurchaseOrderForms.tsx:426 -msgid "Unlink Barcode" -msgstr "" - -#: src/components/items/ActionDropdown.tsx:174 -msgid "Unlink custom barcode" +#: src/components/items/ActionDropdown.tsx:177 +msgid "Link a custom barcode to this item" msgstr "" #: src/components/items/ActionDropdown.tsx:183 -#: src/tables/RowActions.tsx:33 +#: src/components/items/QRCode.tsx:193 +#: src/forms/PurchaseOrderForms.tsx:464 +msgid "Unlink Barcode" +msgstr "" + +#: src/components/items/ActionDropdown.tsx:185 +msgid "Unlink custom barcode" +msgstr "" + +#: src/components/items/ActionDropdown.tsx:236 +#: src/tables/RowActions.tsx:39 msgid "Edit" msgstr "Редагувати" -#: src/components/items/ActionDropdown.tsx:184 +#: src/components/items/ActionDropdown.tsx:237 msgid "Edit item" msgstr "" -#: src/components/items/ActionDropdown.tsx:196 +#: src/components/items/ActionDropdown.tsx:249 msgid "Delete item" msgstr "" -#: src/components/items/ActionDropdown.tsx:204 -#: src/components/items/ActionDropdown.tsx:205 +#: src/components/items/ActionDropdown.tsx:257 +#: src/components/items/ActionDropdown.tsx:258 msgid "Hold" msgstr "" -#: src/components/items/ActionDropdown.tsx:227 -#: src/tables/RowActions.tsx:23 +#: src/components/items/ActionDropdown.tsx:280 +#: src/tables/RowActions.tsx:29 msgid "Duplicate" msgstr "Дублювати" -#: src/components/items/ActionDropdown.tsx:228 +#: src/components/items/ActionDropdown.tsx:281 msgid "Duplicate item" msgstr "" +#: src/components/items/BarcodeInput.tsx:23 +msgid "Scan barcode data here using barcode scanner" +msgstr "" + +#: src/components/items/BarcodeInput.tsx:24 +#: src/tables/settings/BarcodeScanHistoryTable.tsx:65 +msgid "Barcode" +msgstr "" + +#: src/components/items/BarcodeInput.tsx:25 +msgid "Scan" +msgstr "Сканувати" + #: src/components/items/DocTooltip.tsx:92 +#: src/components/items/GettingStartedCarousel.tsx:20 msgid "Read More" msgstr "" -#: src/components/items/ErrorItem.tsx:5 -#: src/tables/InvenTreeTable.tsx:487 +#: src/components/items/ErrorItem.tsx:8 +#: src/tables/InvenTreeTable.tsx:473 msgid "Unknown error" msgstr "Невідома помилка" -#: src/components/items/ErrorItem.tsx:10 -msgid "An error occurred:" -msgstr "" +#: src/components/items/ErrorItem.tsx:13 +#~ msgid "An error occurred:" +#~ msgstr "An error occurred:" #: src/components/items/GettingStartedCarousel.tsx:27 -msgid "Read more" -msgstr "" +#~ msgid "Read more" +#~ msgstr "Read more" #: src/components/items/InfoItem.tsx:27 msgid "None" @@ -955,7 +1294,7 @@ msgstr "" #: src/components/items/Placeholder.tsx:14 msgid "This feature/button/site is a placeholder for a feature that is not implemented, only partial or intended for testing." -msgstr "" +msgstr "Ця функція/кнопка/сайт є наповнювачем для функції, яка не реалізована, тільки часткове або призначене для тестування." #: src/components/items/Placeholder.tsx:17 msgid "PLH" @@ -965,30 +1304,51 @@ msgstr "" msgid "This panel is a placeholder." msgstr "" -#: src/components/items/QRCode.tsx:87 +#: src/components/items/QRCode.tsx:89 msgid "Low (7%)" msgstr "" -#: src/components/items/QRCode.tsx:88 +#: src/components/items/QRCode.tsx:90 msgid "Medium (15%)" msgstr "" -#: src/components/items/QRCode.tsx:89 +#: src/components/items/QRCode.tsx:91 msgid "Quartile (25%)" msgstr "" -#: src/components/items/QRCode.tsx:90 +#: src/components/items/QRCode.tsx:92 msgid "High (30%)" msgstr "" -#: src/components/items/QRCode.tsx:107 +#: src/components/items/QRCode.tsx:100 +msgid "Custom barcode" +msgstr "Користувацький штрих-код" + +#: src/components/items/QRCode.tsx:101 +msgid "A custom barcode is registered for this item. The shown code is not that custom barcode." +msgstr "Власний штрих-код зареєстрований для цього елемента. Показаний код не має власних штрих-кодів." + +#: src/components/items/QRCode.tsx:118 msgid "Barcode Data:" msgstr "" -#: src/components/items/QRCode.tsx:118 +#: src/components/items/QRCode.tsx:129 msgid "Select Error Correction Level" msgstr "" +#: src/components/items/QRCode.tsx:171 +#: src/pages/part/PartDetail.tsx:239 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:187 +#: src/pages/sales/ReturnOrderDetail.tsx:157 +#: src/pages/sales/SalesOrderDetail.tsx:169 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:166 +msgid "Link" +msgstr "" + +#: src/components/items/QRCode.tsx:190 +msgid "This will remove the link to the associated barcode" +msgstr "" + #: src/components/modals/AboutInvenTreeModal.tsx:99 msgid "Version Information" msgstr "" @@ -1062,11 +1422,11 @@ msgstr "Мобільний додаток" msgid "Submit Bug Report" msgstr "Повідомити про помилку" -#: src/components/modals/AboutInvenTreeModal.tsx:183 +#: src/components/modals/AboutInvenTreeModal.tsx:181 msgid "Copy version information" msgstr "Копіювати інформацію про версію" -#: src/components/modals/AboutInvenTreeModal.tsx:192 +#: src/components/modals/AboutInvenTreeModal.tsx:189 #: src/components/modals/ServerInfoModal.tsx:147 msgid "Dismiss" msgstr "" @@ -1091,61 +1451,20 @@ msgstr "" msgid "{key} Packages" msgstr "" -#: src/components/modals/QrCodeModal.tsx:72 +#: src/components/modals/QrCodeModal.tsx:24 msgid "Unknown response" msgstr "" -#: src/components/modals/QrCodeModal.tsx:102 -#: src/pages/Index/Scan.tsx:636 -msgid "Error while getting camera" -msgstr "" - -#: src/components/modals/QrCodeModal.tsx:125 -#: src/pages/Index/Scan.tsx:659 -msgid "Error while scanning" -msgstr "" - -#: src/components/modals/QrCodeModal.tsx:139 -#: src/pages/Index/Scan.tsx:673 -msgid "Error while stopping" -msgstr "" - -#: src/components/modals/QrCodeModal.tsx:154 -#: src/defaults/menuItems.tsx:21 -#: src/pages/Index/Scan.tsx:746 -msgid "Scanning" -msgstr "" - -#: src/components/modals/QrCodeModal.tsx:154 -#: src/pages/Index/Scan.tsx:746 -msgid "Not scanning" -msgstr "" - -#: src/components/modals/QrCodeModal.tsx:159 -#: src/pages/Index/Scan.tsx:752 -msgid "Select Camera" -msgstr "Обрати камеру" - -#: src/components/modals/QrCodeModal.tsx:169 -#: src/pages/Index/Scan.tsx:737 -msgid "Start scanning" -msgstr "Почати сканування" - -#: src/components/modals/QrCodeModal.tsx:176 -#: src/pages/Index/Scan.tsx:729 -msgid "Stop scanning" -msgstr "Зупинити сканування" - -#: src/components/modals/QrCodeModal.tsx:181 +#: src/components/modals/QrCodeModal.tsx:39 msgid "No scans yet!" msgstr "" -#: src/components/modals/QrCodeModal.tsx:201 +#: src/components/modals/QrCodeModal.tsx:57 msgid "Close modal" msgstr "Закрити вікно" #: src/components/modals/ServerInfoModal.tsx:26 -#: src/pages/Index/Settings/SystemSettings.tsx:38 +#: src/pages/Index/Settings/SystemSettings.tsx:37 msgid "Server" msgstr "Сервер" @@ -1206,6 +1525,7 @@ msgid "Background Worker" msgstr "" #: src/components/modals/ServerInfoModal.tsx:101 +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:29 msgid "Background worker not running" msgstr "" @@ -1218,8 +1538,8 @@ msgid "Email settings not configured" msgstr "" #: src/components/modals/ServerInfoModal.tsx:121 -#: src/tables/plugin/PluginListTable.tsx:144 -#: src/tables/plugin/PluginListTable.tsx:294 +#: src/components/plugins/PluginDrawer.tsx:89 +#: src/tables/plugin/PluginListTable.tsx:116 msgid "Version" msgstr "Версія" @@ -1227,7 +1547,7 @@ msgstr "Версія" msgid "Server Version" msgstr "Версія серверу" -#: src/components/nav/Layout.tsx:73 +#: src/components/nav/Layout.tsx:80 msgid "Nothing found..." msgstr "Нічого не знайдено..." @@ -1237,18 +1557,26 @@ msgstr "Нічого не знайдено..." #~ msgstr "Profile" #: src/components/nav/MainMenu.tsx:52 +#: src/components/nav/NavigationDrawer.tsx:178 #: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:28 msgid "Settings" msgstr "Налаштування" +#: src/components/nav/MainMenu.tsx:59 +#: src/pages/Index/Settings/UserSettings.tsx:152 +msgid "Account Settings" +msgstr "" + #: src/components/nav/MainMenu.tsx:59 #: src/defaults/menuItems.tsx:15 -msgid "Account settings" -msgstr "Налаштування облікового запису" +#~ msgid "Account settings" +#~ msgstr "Account settings" #: src/components/nav/MainMenu.tsx:67 -#: src/defaults/menuItems.tsx:58 -#: src/pages/Index/Settings/SystemSettings.tsx:315 +#: src/components/nav/NavigationDrawer.tsx:141 +#: src/components/nav/SettingsHeader.tsx:49 +#: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:37 +#: src/pages/Index/Settings/SystemSettings.tsx:310 msgid "System Settings" msgstr "Налаштування системи" @@ -1260,14 +1588,11 @@ msgstr "Налаштування системи" #~ msgid "Switch to pseudo language" #~ msgstr "Switch to pseudo language" -#: src/components/nav/MainMenu.tsx:77 -msgid "Change Color Mode" -msgstr "" - #: src/components/nav/MainMenu.tsx:86 -#: src/defaults/actions.tsx:71 -#: src/defaults/menuItems.tsx:63 -#: src/pages/Index/Settings/AdminCenter/Index.tsx:221 +#: src/components/nav/NavigationDrawer.tsx:148 +#: src/components/nav/SettingsHeader.tsx:50 +#: src/defaults/actions.tsx:63 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:251 msgid "Admin Center" msgstr "Центр адміністрування" @@ -1275,458 +1600,732 @@ msgstr "Центр адміністрування" msgid "Logout" msgstr "Вихід" -#: src/components/nav/NavHoverMenu.tsx:65 -#: src/defaults/actions.tsx:60 -msgid "Open Navigation" -msgstr "" - #: src/components/nav/NavHoverMenu.tsx:84 -msgid "View all" -msgstr "Переглянути все" +#~ msgid "View all" +#~ msgstr "View all" #: src/components/nav/NavHoverMenu.tsx:100 #: src/components/nav/NavHoverMenu.tsx:110 -msgid "Get started" -msgstr "Початок роботи" +#~ msgid "Get started" +#~ msgstr "Get started" #: src/components/nav/NavHoverMenu.tsx:103 -msgid "Overview over high-level objects, functions and possible usecases." -msgstr "" - -#: src/components/nav/NavigationDrawer.tsx:57 -msgid "Navigation" -msgstr "" +#~ msgid "Overview over high-level objects, functions and possible usecases." +#~ msgstr "Overview over high-level objects, functions and possible usecases." #: src/components/nav/NavigationDrawer.tsx:60 -msgid "Pages" -msgstr "Сторінки" +#~ msgid "Pages" +#~ msgstr "Pages" -#: src/components/nav/NavigationDrawer.tsx:65 -#: src/pages/Index/Settings/AdminCenter/Index.tsx:176 -#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:41 -msgid "Plugins" -msgstr "Плагіни" - -#: src/components/nav/NavigationDrawer.tsx:75 -#: src/defaults/actions.tsx:32 -msgid "Documentation" -msgstr "Документація" - -#: src/components/nav/NavigationDrawer.tsx:78 -msgid "About" +#: src/components/nav/NavigationDrawer.tsx:77 +#: src/components/render/ModelType.tsx:31 +#: src/defaults/links.tsx:10 +#: src/pages/Index/Settings/SystemSettings.tsx:172 +#: src/pages/part/CategoryDetail.tsx:125 +#: src/pages/part/CategoryDetail.tsx:249 +#: src/pages/part/CategoryDetail.tsx:279 +#: src/pages/part/PartDetail.tsx:856 +msgid "Parts" msgstr "" -#: src/components/nav/NotificationDrawer.tsx:92 -#: src/pages/Index/Settings/SystemSettings.tsx:109 -#: src/pages/Index/Settings/UserSettings.tsx:126 +#: src/components/nav/NavigationDrawer.tsx:84 +#: src/components/render/Part.tsx:30 +#: src/defaults/links.tsx:11 +#: src/pages/Index/Settings/SystemSettings.tsx:205 +#: src/pages/part/PartDetail.tsx:593 +#: src/pages/stock/LocationDetail.tsx:352 +#: src/pages/stock/StockDetail.tsx:528 +#: src/tables/stock/StockItemTable.tsx:69 +msgid "Stock" +msgstr "В наявності" + +#: src/components/nav/NavigationDrawer.tsx:91 +#: src/defaults/links.tsx:13 +#: src/pages/build/BuildDetail.tsx:530 +#: src/pages/build/BuildIndex.tsx:36 +msgid "Manufacturing" +msgstr "" + +#: src/components/nav/NavigationDrawer.tsx:98 +#: src/defaults/links.tsx:18 +#: src/pages/company/ManufacturerDetail.tsx:9 +#: src/pages/company/ManufacturerPartDetail.tsx:258 +#: src/pages/company/SupplierDetail.tsx:9 +#: src/pages/company/SupplierPartDetail.tsx:336 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:480 +#: src/pages/purchasing/PurchasingIndex.tsx:60 +msgid "Purchasing" +msgstr "" + +#: src/components/nav/NavigationDrawer.tsx:105 +#: src/defaults/links.tsx:22 +#: src/pages/company/CustomerDetail.tsx:9 +#: src/pages/sales/ReturnOrderDetail.tsx:469 +#: src/pages/sales/SalesIndex.tsx:53 +#: src/pages/sales/SalesOrderDetail.tsx:520 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:343 +msgid "Sales" +msgstr "" + +#: src/components/nav/NavigationDrawer.tsx:129 +#: src/components/nav/NotificationDrawer.tsx:178 +#: src/pages/Index/Settings/SystemSettings.tsx:110 +#: src/pages/Index/Settings/UserSettings.tsx:127 #: src/pages/Notifications.tsx:65 #: src/pages/Notifications.tsx:151 msgid "Notifications" msgstr "Сповіщення" -#: src/components/nav/NotificationDrawer.tsx:94 +#: src/components/nav/NavigationDrawer.tsx:135 +#: src/components/nav/SettingsHeader.tsx:48 +msgid "User Settings" +msgstr "" + +#: src/components/nav/NavigationDrawer.tsx:173 +msgid "Navigation" +msgstr "" + +#: src/components/nav/NavigationDrawer.tsx:183 +#: src/forms/PurchaseOrderForms.tsx:689 +#: src/forms/StockForms.tsx:614 +#: src/forms/StockForms.tsx:651 +#: src/forms/StockForms.tsx:677 +#: src/forms/StockForms.tsx:705 +#: src/forms/StockForms.tsx:736 +#: src/forms/StockForms.tsx:771 +#: src/forms/StockForms.tsx:813 +#: src/forms/StockForms.tsx:851 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:413 +#: src/tables/RowActions.tsx:129 +#: src/tables/build/BuildLineTable.tsx:101 +msgid "Actions" +msgstr "Дії" + +#: src/components/nav/NavigationDrawer.tsx:191 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:205 +#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:44 +msgid "Plugins" +msgstr "Плагіни" + +#: src/components/nav/NavigationDrawer.tsx:204 +#: src/defaults/actions.tsx:24 +msgid "Documentation" +msgstr "Документація" + +#: src/components/nav/NavigationDrawer.tsx:210 +msgid "About" +msgstr "" + +#: src/components/nav/NotificationDrawer.tsx:180 msgid "Mark all as read" msgstr "" -#: src/components/nav/NotificationDrawer.tsx:104 +#: src/components/nav/NotificationDrawer.tsx:190 msgid "View all notifications" msgstr "" -#: src/components/nav/NotificationDrawer.tsx:123 +#: src/components/nav/NotificationDrawer.tsx:210 msgid "You have no unread notifications." msgstr "У вас немає непрочитаних сповіщень." -#: src/components/nav/NotificationDrawer.tsx:139 -#: src/components/nav/NotificationDrawer.tsx:145 -#: src/tables/notifications/NotificationsTable.tsx:36 -msgid "Notification" -msgstr "Сповіщення" - -#: src/components/nav/NotificationDrawer.tsx:168 -#: src/pages/Notifications.tsx:73 -msgid "Mark as read" -msgstr "Позначити прочитаним" - -#: src/components/nav/SearchDrawer.tsx:78 +#: src/components/nav/SearchDrawer.tsx:85 msgid "results" msgstr "результати" -#: src/components/nav/SearchDrawer.tsx:370 +#: src/components/nav/SearchDrawer.tsx:380 msgid "Enter search text" msgstr "" -#: src/components/nav/SearchDrawer.tsx:397 +#: src/components/nav/SearchDrawer.tsx:391 +msgid "Refresh search results" +msgstr "" + +#: src/components/nav/SearchDrawer.tsx:402 +#: src/components/nav/SearchDrawer.tsx:409 msgid "Search Options" msgstr "Параметри пошуку" -#: src/components/nav/SearchDrawer.tsx:400 +#: src/components/nav/SearchDrawer.tsx:412 msgid "Regex search" msgstr "" -#: src/components/nav/SearchDrawer.tsx:410 +#: src/components/nav/SearchDrawer.tsx:421 msgid "Whole word search" msgstr "" -#: src/components/nav/SearchDrawer.tsx:451 +#: src/components/nav/SearchDrawer.tsx:461 msgid "An error occurred during search query" msgstr "" #: src/components/nav/SearchDrawer.tsx:462 -msgid "No results" -msgstr "Жодних результатів" +#~ msgid "No results" +#~ msgstr "No results" -#: src/components/nav/SearchDrawer.tsx:465 +#: src/components/nav/SearchDrawer.tsx:472 +#: src/tables/part/PartTestTemplateTable.tsx:76 +msgid "No Results" +msgstr "" + +#: src/components/nav/SearchDrawer.tsx:475 msgid "No results available for search query" msgstr "" -#: src/components/render/Instance.tsx:217 +#: src/components/panels/AttachmentPanel.tsx:18 +msgid "Attachments" +msgstr "" + +#: src/components/panels/NotesPanel.tsx:24 +#: src/tables/build/BuildOrderTestTable.tsx:143 +#: src/tables/stock/StockTrackingTable.tsx:204 +msgid "Notes" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:47 +msgid "Plugin Inactive" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:50 +msgid "Plugin is not active" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:60 +msgid "Plugin Information" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:74 +#: src/pages/build/BuildDetail.tsx:116 +#: src/pages/company/CompanyDetail.tsx:89 +#: src/pages/company/ManufacturerPartDetail.tsx:89 +#: src/pages/company/ManufacturerPartDetail.tsx:116 +#: src/pages/company/SupplierPartDetail.tsx:140 +#: src/pages/part/CategoryDetail.tsx:101 +#: src/pages/part/PartDetail.tsx:178 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:136 +#: src/pages/sales/ReturnOrderDetail.tsx:107 +#: src/pages/sales/SalesOrderDetail.tsx:116 +#: src/pages/stock/LocationDetail.tsx:103 +#: src/tables/ColumnRenderers.tsx:92 +#: src/tables/bom/UsedInTable.tsx:44 +#: src/tables/build/BuildAllocatedStockTable.tsx:83 +#: src/tables/build/BuildLineTable.tsx:329 +#: src/tables/machine/MachineTypeTable.tsx:74 +#: src/tables/machine/MachineTypeTable.tsx:129 +#: src/tables/machine/MachineTypeTable.tsx:240 +#: src/tables/machine/MachineTypeTable.tsx:344 +#: src/tables/part/RelatedPartTable.tsx:66 +#: src/tables/plugin/PluginListTable.tsx:99 +#: src/tables/sales/SalesOrderAllocationTable.tsx:87 +#: src/tables/sales/SalesOrderLineItemTable.tsx:75 +#: src/tables/stock/LocationTypesTable.tsx:74 +msgid "Description" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:79 +msgid "Author" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:84 +#: src/pages/part/PartSchedulingDetail.tsx:277 +#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:40 +#: src/pages/part/pricing/SaleHistoryPanel.tsx:38 +#: src/tables/ColumnRenderers.tsx:215 +#: src/tables/build/BuildOrderTestTable.tsx:151 +#: src/tables/settings/StocktakeReportTable.tsx:40 +msgid "Date" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:94 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:398 +#: src/pages/part/PartDetail.tsx:331 +#: src/tables/bom/UsedInTable.tsx:84 +#: src/tables/company/CompanyTable.tsx:62 +#: src/tables/company/CompanyTable.tsx:96 +#: src/tables/machine/MachineListTable.tsx:333 +#: src/tables/machine/MachineListTable.tsx:605 +#: src/tables/part/ParametricPartTable.tsx:223 +#: src/tables/part/PartTable.tsx:178 +#: src/tables/part/PartVariantTable.tsx:15 +#: src/tables/plugin/PluginListTable.tsx:94 +#: src/tables/plugin/PluginListTable.tsx:401 +#: src/tables/purchasing/SupplierPartTable.tsx:100 +#: src/tables/purchasing/SupplierPartTable.tsx:190 +#: src/tables/settings/UserTable.tsx:283 +#: src/tables/stock/StockItemTable.tsx:293 +msgid "Active" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:106 +msgid "Package Name" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:112 +msgid "Installation Path" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:117 +#: src/tables/machine/MachineTypeTable.tsx:152 +#: src/tables/machine/MachineTypeTable.tsx:276 +#: src/tables/plugin/PluginListTable.tsx:406 +msgid "Builtin" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:122 +msgid "Package" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:134 +#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:53 +msgid "Plugin Settings" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:146 +#: src/components/render/ModelType.tsx:276 +msgid "Plugin Configuration" +msgstr "Конфігурація плагіну" + +#: src/components/plugins/PluginPanel.tsx:87 +#~ msgid "Error occurred while rendering plugin content" +#~ msgstr "Error occurred while rendering plugin content" + +#: src/components/plugins/PluginPanel.tsx:91 +#~ msgid "Plugin did not provide panel rendering function" +#~ msgstr "Plugin did not provide panel rendering function" + +#: src/components/plugins/PluginPanel.tsx:103 +#~ msgid "No content provided for this plugin" +#~ msgstr "No content provided for this plugin" + +#: src/components/plugins/PluginPanel.tsx:116 +#: src/components/plugins/PluginSettingsPanel.tsx:76 +#~ msgid "Error Loading Plugin" +#~ msgstr "Error Loading Plugin" + +#: src/components/plugins/PluginSettingsPanel.tsx:51 +#~ msgid "Error occurred while rendering plugin settings" +#~ msgstr "Error occurred while rendering plugin settings" + +#: src/components/plugins/PluginSettingsPanel.tsx:55 +#~ msgid "Plugin did not provide settings rendering function" +#~ msgstr "Plugin did not provide settings rendering function" + +#: src/components/plugins/PluginUIFeature.tsx:100 +msgid "Error occurred while rendering the template editor." +msgstr "" + +#: src/components/plugins/PluginUIFeature.tsx:111 +msgid "Error Loading Plugin Editor" +msgstr "" + +#: src/components/plugins/PluginUIFeature.tsx:147 +msgid "Error occurred while rendering the template preview." +msgstr "" + +#: src/components/plugins/PluginUIFeature.tsx:158 +msgid "Error Loading Plugin Preview" +msgstr "" + +#: src/components/plugins/RemoteComponent.tsx:70 +msgid "Invalid source or function name" +msgstr "" + +#: src/components/plugins/RemoteComponent.tsx:91 +msgid "Error Loading Content" +msgstr "" + +#: src/components/plugins/RemoteComponent.tsx:95 +msgid "Error occurred while loading plugin content" +msgstr "" + +#: src/components/render/Instance.tsx:224 msgid "Unknown model: {model}" msgstr "" -#: src/components/render/ModelType.tsx:22 -#: src/forms/BuildForms.tsx:213 -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/forms/StockForms.tsx:499 -#: src/forms/StockForms.tsx:533 -#: src/forms/StockForms.tsx:562 -#: src/forms/StockForms.tsx:590 -#: src/forms/StockForms.tsx:621 -#: src/forms/StockForms.tsx:656 -#: src/forms/StockForms.tsx:698 -#: src/forms/StockForms.tsx:734 -#: src/pages/build/BuildDetail.tsx:95 -#: src/pages/part/PartDetail.tsx:1073 -#: src/tables/build/BuildAllocatedStockTable.tsx:82 +#: src/components/render/ModelType.tsx:30 +#: src/forms/BuildForms.tsx:269 +#: src/forms/BuildForms.tsx:337 +#: src/forms/BuildForms.tsx:385 +#: src/forms/BuildForms.tsx:515 +#: src/forms/PurchaseOrderForms.tsx:689 +#: src/forms/ReturnOrderForms.tsx:190 +#: src/forms/SalesOrderForms.tsx:248 +#: src/forms/StockForms.tsx:261 +#: src/forms/StockForms.tsx:614 +#: src/forms/StockForms.tsx:651 +#: src/forms/StockForms.tsx:677 +#: src/forms/StockForms.tsx:705 +#: src/forms/StockForms.tsx:736 +#: src/forms/StockForms.tsx:771 +#: src/forms/StockForms.tsx:813 +#: src/forms/StockForms.tsx:851 +#: src/pages/build/BuildDetail.tsx:90 +#: src/pages/part/PartDetail.tsx:1094 +#: src/tables/build/BuildAllocatedStockTable.tsx:95 +#: src/tables/build/BuildLineTable.tsx:72 #: src/tables/part/PartTable.tsx:28 -#: src/tables/part/RelatedPartTable.tsx:45 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:88 -#: src/tables/sales/SalesOrderAllocationTable.tsx:68 -#: src/tables/stock/StockTrackingTable.tsx:74 +#: src/tables/part/RelatedPartTable.tsx:47 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:130 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:100 +#: src/tables/sales/SalesOrderAllocationTable.tsx:99 +#: src/tables/stock/StockTrackingTable.tsx:78 msgid "Part" msgstr "" -#: src/components/render/ModelType.tsx:23 -#: src/defaults/links.tsx:29 -#: src/defaults/menuItems.tsx:33 -#: src/pages/Index/Settings/SystemSettings.tsx:173 -#: src/pages/part/CategoryDetail.tsx:119 -#: src/pages/part/CategoryDetail.tsx:244 -#: src/pages/part/CategoryDetail.tsx:274 -#: src/pages/part/PartDetail.tsx:827 -msgid "Parts" -msgstr "" - -#: src/components/render/ModelType.tsx:31 +#: src/components/render/ModelType.tsx:40 msgid "Part Parameter Template" msgstr "" -#: src/components/render/ModelType.tsx:32 +#: src/components/render/ModelType.tsx:41 msgid "Part Parameter Templates" msgstr "" -#: src/components/render/ModelType.tsx:38 +#: src/components/render/ModelType.tsx:48 msgid "Part Test Template" msgstr "" -#: src/components/render/ModelType.tsx:39 +#: src/components/render/ModelType.tsx:49 msgid "Part Test Templates" msgstr "" -#: src/components/render/ModelType.tsx:45 -#: src/pages/company/SupplierPartDetail.tsx:203 -#: src/pages/company/SupplierPartDetail.tsx:375 -#: src/pages/stock/StockDetail.tsx:173 -#: src/tables/build/BuildAllocatedStockTable.tsx:131 +#: src/components/render/ModelType.tsx:56 +#: src/pages/company/SupplierPartDetail.tsx:364 +#: src/pages/stock/StockDetail.tsx:194 +#: src/tables/build/BuildAllocatedStockTable.tsx:152 #: src/tables/part/PartPurchaseOrdersTable.tsx:49 -#: src/tables/purchasing/SupplierPartTable.tsx:68 +#: src/tables/purchasing/SupplierPartTable.tsx:70 +#: src/tables/stock/StockItemTable.tsx:229 msgid "Supplier Part" msgstr "" -#: src/components/render/ModelType.tsx:46 +#: src/components/render/ModelType.tsx:57 msgid "Supplier Parts" msgstr "" -#: src/components/render/ModelType.tsx:54 -#: src/pages/company/ManufacturerPartDetail.tsx:132 +#: src/components/render/ModelType.tsx:66 #: src/tables/part/PartPurchaseOrdersTable.tsx:55 +#: src/tables/stock/StockItemTable.tsx:234 msgid "Manufacturer Part" msgstr "" -#: src/components/render/ModelType.tsx:55 +#: src/components/render/ModelType.tsx:67 msgid "Manufacturer Parts" msgstr "" -#: src/components/render/ModelType.tsx:63 -#: src/pages/part/CategoryDetail.tsx:305 +#: src/components/render/ModelType.tsx:76 +#: src/pages/part/CategoryDetail.tsx:310 msgid "Part Category" msgstr "" -#: src/components/render/ModelType.tsx:64 -#: src/pages/part/CategoryDetail.tsx:258 -#: src/pages/part/CategoryDetail.tsx:296 -#: src/pages/part/PartDetail.tsx:1063 +#: src/components/render/ModelType.tsx:77 +#: src/pages/part/CategoryDetail.tsx:263 +#: src/pages/part/CategoryDetail.tsx:301 +#: src/pages/part/PartDetail.tsx:1084 msgid "Part Categories" msgstr "" -#: src/components/render/ModelType.tsx:72 -#: src/pages/stock/StockDetail.tsx:624 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:94 -#: src/tables/stock/StockTrackingTable.tsx:45 +#: src/components/render/ModelType.tsx:86 +#: src/forms/BuildForms.tsx:337 +#: src/forms/BuildForms.tsx:385 +#: src/forms/BuildForms.tsx:515 +#: src/forms/SalesOrderForms.tsx:248 +#: src/pages/stock/StockDetail.tsx:839 +#: src/tables/stock/StockTrackingTable.tsx:49 msgid "Stock Item" msgstr "" -#: src/components/render/ModelType.tsx:73 +#: src/components/render/ModelType.tsx:87 #: src/pages/company/CompanyDetail.tsx:203 -#: src/pages/stock/LocationDetail.tsx:128 -#: src/pages/stock/LocationDetail.tsx:181 -#: src/pages/stock/LocationDetail.tsx:395 +#: src/pages/part/PartStocktakeDetail.tsx:113 +#: src/pages/stock/LocationDetail.tsx:122 +#: src/pages/stock/LocationDetail.tsx:175 +#: src/pages/stock/LocationDetail.tsx:380 msgid "Stock Items" msgstr "" -#: src/components/render/ModelType.tsx:81 +#: src/components/render/ModelType.tsx:96 msgid "Stock Location" msgstr "" -#: src/components/render/ModelType.tsx:82 -#: src/pages/stock/LocationDetail.tsx:195 -#: src/pages/stock/LocationDetail.tsx:387 -#: src/pages/stock/StockDetail.tsx:616 +#: src/components/render/ModelType.tsx:97 +#: src/pages/stock/LocationDetail.tsx:189 +#: src/pages/stock/LocationDetail.tsx:372 +#: src/pages/stock/StockDetail.tsx:831 msgid "Stock Locations" msgstr "" -#: src/components/render/ModelType.tsx:90 +#: src/components/render/ModelType.tsx:106 msgid "Stock Location Type" msgstr "" -#: src/components/render/ModelType.tsx:91 +#: src/components/render/ModelType.tsx:107 msgid "Stock Location Types" msgstr "" -#: src/components/render/ModelType.tsx:95 +#: src/components/render/ModelType.tsx:112 +#: src/pages/part/PartDetail.tsx:712 msgid "Stock History" msgstr "" -#: src/components/render/ModelType.tsx:96 +#: src/components/render/ModelType.tsx:113 msgid "Stock Histories" msgstr "" -#: src/components/render/ModelType.tsx:100 -#: src/defaults/links.tsx:31 -#: src/defaults/menuItems.tsx:43 +#: src/components/render/ModelType.tsx:118 msgid "Build" msgstr "" -#: src/components/render/ModelType.tsx:101 +#: src/components/render/ModelType.tsx:119 msgid "Builds" msgstr "" -#: src/components/render/ModelType.tsx:109 +#: src/components/render/ModelType.tsx:128 msgid "Build Line" msgstr "" -#: src/components/render/ModelType.tsx:110 +#: src/components/render/ModelType.tsx:129 msgid "Build Lines" msgstr "" -#: src/components/render/ModelType.tsx:117 +#: src/components/render/ModelType.tsx:137 msgid "Build Item" msgstr "" -#: src/components/render/ModelType.tsx:118 +#: src/components/render/ModelType.tsx:138 msgid "Build Items" msgstr "" -#: src/components/render/ModelType.tsx:122 -#: src/pages/company/CompanyDetail.tsx:339 +#: src/components/render/ModelType.tsx:143 +#: src/pages/company/CompanyDetail.tsx:321 msgid "Company" msgstr "" -#: src/components/render/ModelType.tsx:123 +#: src/components/render/ModelType.tsx:144 msgid "Companies" msgstr "" -#: src/components/render/ModelType.tsx:131 +#: src/components/render/ModelType.tsx:153 +#: src/pages/build/BuildDetail.tsx:195 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:204 +#: src/pages/sales/ReturnOrderDetail.tsx:174 +#: src/pages/sales/SalesOrderDetail.tsx:186 #: src/tables/TableHoverCard.tsx:81 -#: src/tables/build/BuildOrderTable.tsx:140 -#: src/tables/purchasing/PurchaseOrderTable.tsx:64 -#: src/tables/sales/ReturnOrderTable.tsx:55 -#: src/tables/sales/SalesOrderTable.tsx:62 +#: src/tables/build/BuildOrderTable.tsx:135 +#: src/tables/purchasing/PurchaseOrderTable.tsx:69 +#: src/tables/sales/ReturnOrderTable.tsx:67 +#: src/tables/sales/SalesOrderTable.tsx:67 msgid "Project Code" msgstr "" -#: src/components/render/ModelType.tsx:132 -#: src/pages/Index/Settings/AdminCenter/Index.tsx:128 +#: src/components/render/ModelType.tsx:154 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:145 msgid "Project Codes" msgstr "" -#: src/components/render/ModelType.tsx:138 +#: src/components/render/ModelType.tsx:161 #: src/pages/part/pricing/PurchaseHistoryPanel.tsx:32 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:480 -#: src/tables/part/PartPurchaseOrdersTable.tsx:32 -#: src/tables/stock/StockTrackingTable.tsx:107 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:477 +#: src/pages/stock/StockDetail.tsx:253 +#: src/tables/part/PartPurchaseOrdersTable.tsx:31 +#: src/tables/stock/StockItemTable.tsx:222 +#: src/tables/stock/StockTrackingTable.tsx:111 msgid "Purchase Order" msgstr "" -#: src/components/render/ModelType.tsx:139 -#: src/pages/Index/Settings/SystemSettings.tsx:255 +#: src/components/render/ModelType.tsx:162 +#: src/pages/Index/Settings/SystemSettings.tsx:249 #: src/pages/company/CompanyDetail.tsx:196 -#: src/pages/company/SupplierPartDetail.tsx:237 -#: src/pages/part/PartDetail.tsx:662 +#: src/pages/company/SupplierPartDetail.tsx:249 +#: src/pages/part/PartDetail.tsx:683 #: src/pages/purchasing/PurchasingIndex.tsx:25 msgid "Purchase Orders" msgstr "" -#: src/components/render/ModelType.tsx:147 +#: src/components/render/ModelType.tsx:171 msgid "Purchase Order Line" msgstr "" -#: src/components/render/ModelType.tsx:148 +#: src/components/render/ModelType.tsx:172 msgid "Purchase Order Lines" msgstr "" -#: src/components/render/ModelType.tsx:152 -#: src/pages/build/BuildDetail.tsx:153 -#: src/pages/sales/SalesOrderDetail.tsx:520 -#: src/pages/stock/StockDetail.tsx:221 -#: src/tables/sales/SalesOrderAllocationTable.tsx:50 -#: src/tables/stock/StockTrackingTable.tsx:118 +#: src/components/render/ModelType.tsx:177 +#: src/pages/build/BuildDetail.tsx:148 +#: src/pages/part/pricing/SaleHistoryPanel.tsx:24 +#: src/pages/sales/SalesOrderDetail.tsx:515 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:92 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:341 +#: src/pages/stock/StockDetail.tsx:262 +#: src/tables/sales/SalesOrderAllocationTable.tsx:80 +#: src/tables/stock/StockTrackingTable.tsx:122 msgid "Sales Order" msgstr "" -#: src/components/render/ModelType.tsx:153 -#: src/pages/Index/Settings/SystemSettings.tsx:270 +#: src/components/render/ModelType.tsx:178 +#: src/pages/Index/Settings/SystemSettings.tsx:264 #: src/pages/company/CompanyDetail.tsx:216 -#: src/pages/part/PartDetail.tsx:669 +#: src/pages/part/PartDetail.tsx:695 #: src/pages/sales/SalesIndex.tsx:26 msgid "Sales Orders" msgstr "" -#: src/components/render/ModelType.tsx:161 +#: src/components/render/ModelType.tsx:187 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:340 msgid "Sales Order Shipment" msgstr "" -#: src/components/render/ModelType.tsx:162 +#: src/components/render/ModelType.tsx:188 msgid "Sales Order Shipments" msgstr "" -#: src/components/render/ModelType.tsx:168 -#: src/pages/sales/ReturnOrderDetail.tsx:469 -#: src/tables/stock/StockTrackingTable.tsx:129 +#: src/components/render/ModelType.tsx:195 +#: src/pages/sales/ReturnOrderDetail.tsx:464 +#: src/tables/stock/StockTrackingTable.tsx:133 msgid "Return Order" msgstr "" -#: src/components/render/ModelType.tsx:169 -#: src/pages/Index/Settings/SystemSettings.tsx:286 +#: src/components/render/ModelType.tsx:196 +#: src/pages/Index/Settings/SystemSettings.tsx:280 #: src/pages/company/CompanyDetail.tsx:223 +#: src/pages/part/PartDetail.tsx:702 #: src/pages/sales/SalesIndex.tsx:32 msgid "Return Orders" msgstr "" -#: src/components/render/ModelType.tsx:177 +#: src/components/render/ModelType.tsx:205 msgid "Return Order Line Item" msgstr "" -#: src/components/render/ModelType.tsx:178 +#: src/components/render/ModelType.tsx:206 msgid "Return Order Line Items" msgstr "" -#: src/components/render/ModelType.tsx:182 -#: src/tables/company/AddressTable.tsx:47 +#: src/components/render/ModelType.tsx:211 +#: src/tables/company/AddressTable.tsx:48 msgid "Address" msgstr "Адреса" -#: src/components/render/ModelType.tsx:183 -#: src/pages/company/CompanyDetail.tsx:253 +#: src/components/render/ModelType.tsx:212 +#: src/pages/company/CompanyDetail.tsx:255 msgid "Addresses" msgstr "Адреси" -#: src/components/render/ModelType.tsx:189 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:195 -#: src/pages/sales/ReturnOrderDetail.tsx:174 -#: src/pages/sales/SalesOrderDetail.tsx:183 +#: src/components/render/ModelType.tsx:219 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:196 +#: src/pages/sales/ReturnOrderDetail.tsx:166 +#: src/pages/sales/SalesOrderDetail.tsx:178 msgid "Contact" msgstr "Контакт" -#: src/components/render/ModelType.tsx:190 -#: src/pages/company/CompanyDetail.tsx:247 +#: src/components/render/ModelType.tsx:220 +#: src/pages/company/CompanyDetail.tsx:249 msgid "Contacts" msgstr "Контакти" -#: src/components/render/ModelType.tsx:196 +#: src/components/render/ModelType.tsx:227 msgid "Owner" msgstr "Власник" -#: src/components/render/ModelType.tsx:197 +#: src/components/render/ModelType.tsx:228 msgid "Owners" msgstr "Власники" -#: src/components/render/ModelType.tsx:203 -#: src/tables/settings/ImportSessionTable.tsx:121 -#: src/tables/stock/StockItemTestResultTable.tsx:198 -#: src/tables/stock/StockTrackingTable.tsx:195 +#: src/components/render/ModelType.tsx:234 +#~ msgid "Purchase Order Line Item" +#~ msgstr "Purchase Order Line Item" + +#: src/components/render/ModelType.tsx:235 +#: src/tables/settings/BarcodeScanHistoryTable.tsx:80 +#: src/tables/settings/BarcodeScanHistoryTable.tsx:211 +#: src/tables/settings/ImportSessionTable.tsx:120 +#: src/tables/settings/StocktakeReportTable.tsx:44 +#: src/tables/stock/StockItemTestResultTable.tsx:204 +#: src/tables/stock/StockTrackingTable.tsx:181 +#: src/tables/stock/StockTrackingTable.tsx:210 msgid "User" msgstr "Користувач" -#: src/components/render/ModelType.tsx:204 -#: src/pages/Index/Settings/AdminCenter/Index.tsx:98 +#: src/components/render/ModelType.tsx:236 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:109 #: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:13 msgid "Users" msgstr "Користувачі" -#: src/components/render/ModelType.tsx:210 +#: src/components/render/ModelType.tsx:243 msgid "Group" msgstr "Група" -#: src/components/render/ModelType.tsx:211 +#: src/components/render/ModelType.tsx:244 #: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:20 -#: src/tables/settings/UserTable.tsx:138 -#: src/tables/settings/UserTable.tsx:201 +#: src/tables/settings/UserTable.tsx:137 +#: src/tables/settings/UserTable.tsx:200 msgid "Groups" msgstr "Групи" -#: src/components/render/ModelType.tsx:218 +#: src/components/render/ModelType.tsx:252 msgid "Import Session" msgstr "Імпортувати сеанс" -#: src/components/render/ModelType.tsx:219 +#: src/components/render/ModelType.tsx:253 msgid "Import Sessions" msgstr "Імпортувати сеанси" -#: src/components/render/ModelType.tsx:225 +#: src/components/render/ModelType.tsx:260 msgid "Label Template" msgstr "" -#: src/components/render/ModelType.tsx:226 -#: src/pages/Index/Settings/AdminCenter/Index.tsx:158 +#: src/components/render/ModelType.tsx:261 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:187 msgid "Label Templates" msgstr "" -#: src/components/render/ModelType.tsx:232 +#: src/components/render/ModelType.tsx:264 +#~ msgid "Unknown Model" +#~ msgstr "Unknown Model" + +#: src/components/render/ModelType.tsx:268 msgid "Report Template" msgstr "" -#: src/components/render/ModelType.tsx:233 -#: src/pages/Index/Settings/AdminCenter/Index.tsx:164 +#: src/components/render/ModelType.tsx:269 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:193 msgid "Report Templates" msgstr "" -#: src/components/render/ModelType.tsx:239 -msgid "Plugin Configuration" -msgstr "Конфігурація плагіну" - -#: src/components/render/ModelType.tsx:240 +#: src/components/render/ModelType.tsx:277 msgid "Plugin Configurations" msgstr "Конфігурації плагінів" +#: src/components/render/ModelType.tsx:284 +msgid "Content Type" +msgstr "" + +#: src/components/render/ModelType.tsx:285 +msgid "Content Types" +msgstr "" + +#: src/components/render/ModelType.tsx:291 +#: src/tables/machine/MachineListTable.tsx:351 +#: src/tables/machine/MachineTypeTable.tsx:282 +msgid "Errors" +msgstr "" + +#: src/components/render/ModelType.tsx:307 +#~ msgid "Purchase Order Line Items" +#~ msgstr "Purchase Order Line Items" + +#: src/components/render/ModelType.tsx:337 +#~ msgid "Unknown Models" +#~ msgstr "Unknown Models" + #: src/components/render/Order.tsx:121 +#: src/tables/sales/SalesOrderAllocationTable.tsx:136 msgid "Shipment" msgstr "" #: src/components/render/Part.tsx:25 #: src/components/render/Plugin.tsx:17 -#: src/pages/company/CompanyDetail.tsx:325 -#: src/pages/company/SupplierPartDetail.tsx:360 -#: src/pages/part/PartDetail.tsx:879 +#: src/pages/company/CompanyDetail.tsx:307 +#: src/pages/company/SupplierPartDetail.tsx:349 +#: src/pages/part/PartDetail.tsx:911 msgid "Inactive" msgstr "" @@ -1736,39 +2335,38 @@ msgstr "" msgid "No stock" msgstr "Немає в наявності" -#: src/components/render/Part.tsx:30 -#: src/defaults/links.tsx:30 -#: src/defaults/menuItems.tsx:38 -#: src/pages/Index/Settings/SystemSettings.tsx:206 -#: src/pages/part/PartDetail.tsx:543 -#: src/pages/stock/LocationDetail.tsx:367 -#: src/pages/stock/StockDetail.tsx:411 -#: src/tables/stock/StockItemTable.tsx:68 -msgid "Stock" -msgstr "В наявності" - -#: src/components/render/Stock.tsx:60 -#: src/pages/stock/StockDetail.tsx:150 -#: src/pages/stock/StockDetail.tsx:581 -#: src/tables/build/BuildAllocatedStockTable.tsx:102 -#: src/tables/sales/SalesOrderAllocationTable.tsx:80 +#: src/components/render/Stock.tsx:61 +#: src/forms/ReturnOrderForms.tsx:190 +#: src/pages/stock/StockDetail.tsx:166 +#: src/pages/stock/StockDetail.tsx:771 +#: src/tables/build/BuildAllocatedStockTable.tsx:123 +#: src/tables/build/BuildOutputTable.tsx:81 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:114 +#: src/tables/sales/SalesOrderAllocationTable.tsx:106 msgid "Serial Number" msgstr "Серійний номер" -#: src/components/render/Stock.tsx:62 -#: src/forms/BuildForms.tsx:218 -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/pages/part/pricing/BomPricingPanel.tsx:109 +#: src/components/render/Stock.tsx:63 +#: src/forms/BuildForms.tsx:206 +#: src/forms/BuildForms.tsx:515 +#: src/forms/PurchaseOrderForms.tsx:689 +#: src/forms/SalesOrderForms.tsx:248 +#: src/pages/part/PartSchedulingDetail.tsx:80 +#: src/pages/part/PartStocktakeDetail.tsx:60 +#: src/pages/part/PartStocktakeDetail.tsx:234 +#: src/pages/part/PartStocktakeDetail.tsx:252 +#: src/pages/part/pricing/BomPricingPanel.tsx:148 #: src/pages/part/pricing/PriceBreakPanel.tsx:89 -#: src/pages/part/pricing/PriceBreakPanel.tsx:171 -#: src/pages/stock/StockDetail.tsx:145 -#: src/pages/stock/StockDetail.tsx:587 -#: src/tables/build/BuildOrderTestTable.tsx:197 -#: src/tables/part/PartPurchaseOrdersTable.tsx:92 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:143 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:171 +#: src/pages/part/pricing/PriceBreakPanel.tsx:172 +#: src/pages/stock/StockDetail.tsx:161 +#: src/pages/stock/StockDetail.tsx:777 +#: src/tables/build/BuildLineTable.tsx:79 +#: src/tables/build/BuildOrderTestTable.tsx:198 +#: src/tables/part/PartPurchaseOrdersTable.tsx:93 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:146 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:177 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:77 -#: src/tables/stock/StockTrackingTable.tsx:59 +#: src/tables/stock/StockTrackingTable.tsx:63 msgid "Quantity" msgstr "Кількість" @@ -1842,10 +2440,6 @@ msgstr "" #~ msgid "Required Part" #~ msgstr "Required Part" -#: src/components/tables/build/BuildLineTable.tsx:152 -#~ msgid "Required Quantity" -#~ msgstr "Required Quantity" - #: src/components/tables/build/BuildOrderTable.tsx:52 #~ msgid "Progress" #~ msgstr "Progress" @@ -2126,14 +2720,6 @@ msgstr "" #~ msgid "user deleted" #~ msgstr "user deleted" -#: src/components/tables/settings/UserTable.tsx:168 -#~ msgid "First Name" -#~ msgstr "First Name" - -#: src/components/tables/settings/UserTable.tsx:173 -#~ msgid "Last Name" -#~ msgstr "Last Name" - #: src/components/tables/stock/StockItemTable.tsx:247 #~ msgid "Test Filter" #~ msgstr "Test Filter" @@ -2146,36 +2732,21 @@ msgstr "" #~ msgid "Stock location updated" #~ msgstr "Stock location updated" -#: src/components/widgets/DisplayWidget.tsx:11 -#: src/pages/Index/Settings/AccountSettings/DisplaySettingsPanel.tsx:17 -msgid "Display Settings" -msgstr "Налаштування відображення" - -#: src/components/widgets/DisplayWidget.tsx:15 -#: src/pages/Index/Settings/AccountSettings/DisplaySettingsPanel.tsx:23 -msgid "Color Mode" -msgstr "" - -#: src/components/widgets/DisplayWidget.tsx:21 -#: src/pages/Index/Settings/AccountSettings/DisplaySettingsPanel.tsx:33 -msgid "Language" -msgstr "Мова" - #: src/components/widgets/FeedbackWidget.tsx:19 -msgid "Something is new: Platform UI" -msgstr "Новинка: Platform UI" +#~ msgid "Something is new: Platform UI" +#~ msgstr "Something is new: Platform UI" #: src/components/widgets/FeedbackWidget.tsx:21 -msgid "We are building a new UI with a modern stack. What you currently see is not fixed and will be redesigned but demonstrates the UI/UX possibilities we will have going forward." -msgstr "" +#~ msgid "We are building a new UI with a modern stack. What you currently see is not fixed and will be redesigned but demonstrates the UI/UX possibilities we will have going forward." +#~ msgstr "We are building a new UI with a modern stack. What you currently see is not fixed and will be redesigned but demonstrates the UI/UX possibilities we will have going forward." #: src/components/widgets/FeedbackWidget.tsx:32 -msgid "Provide Feedback" -msgstr "Залишити відгук" +#~ msgid "Provide Feedback" +#~ msgstr "Provide Feedback" #: src/components/widgets/GetStartedWidget.tsx:11 -msgid "Getting started" -msgstr "Починаємо" +#~ msgid "Getting started" +#~ msgstr "Getting started" #: src/components/widgets/MarkdownEditor.tsx:108 #~ msgid "Failed to upload image" @@ -2186,28 +2757,24 @@ msgstr "Починаємо" #~ msgstr "Notes saved" #: src/components/widgets/WidgetLayout.tsx:166 -msgid "Layout" -msgstr "" +#~ msgid "Layout" +#~ msgstr "Layout" #: src/components/widgets/WidgetLayout.tsx:172 -msgid "Reset Layout" -msgstr "" +#~ msgid "Reset Layout" +#~ msgstr "Reset Layout" #: src/components/widgets/WidgetLayout.tsx:185 -msgid "Stop Edit" -msgstr "" - -#: src/components/widgets/WidgetLayout.tsx:185 -msgid "Edit Layout" -msgstr "" +#~ msgid "Stop Edit" +#~ msgstr "Stop Edit" #: src/components/widgets/WidgetLayout.tsx:191 -msgid "Appearance" -msgstr "" +#~ msgid "Appearance" +#~ msgstr "Appearance" #: src/components/widgets/WidgetLayout.tsx:203 -msgid "Show Boxes" -msgstr "" +#~ msgid "Show Boxes" +#~ msgstr "Show Boxes" #: src/contexts/LanguageContext.tsx:20 msgid "Arabic" @@ -2286,201 +2853,175 @@ msgid "Korean" msgstr "" #: src/contexts/LanguageContext.tsx:39 +msgid "Lithuanian" +msgstr "Литовська" + +#: src/contexts/LanguageContext.tsx:40 msgid "Latvian" msgstr "" -#: src/contexts/LanguageContext.tsx:40 +#: src/contexts/LanguageContext.tsx:41 msgid "Dutch" msgstr "" -#: src/contexts/LanguageContext.tsx:41 +#: src/contexts/LanguageContext.tsx:42 msgid "Norwegian" msgstr "Норвезька" -#: src/contexts/LanguageContext.tsx:42 +#: src/contexts/LanguageContext.tsx:43 msgid "Polish" msgstr "Польська" -#: src/contexts/LanguageContext.tsx:43 +#: src/contexts/LanguageContext.tsx:44 msgid "Portuguese" msgstr "Португальська" -#: src/contexts/LanguageContext.tsx:44 +#: src/contexts/LanguageContext.tsx:45 msgid "Portuguese (Brazilian)" msgstr "Португальська (Бразилія)" -#: src/contexts/LanguageContext.tsx:45 +#: src/contexts/LanguageContext.tsx:46 msgid "Romanian" msgstr "Румунська" -#: src/contexts/LanguageContext.tsx:46 +#: src/contexts/LanguageContext.tsx:47 msgid "Russian" msgstr "Російська" -#: src/contexts/LanguageContext.tsx:47 +#: src/contexts/LanguageContext.tsx:48 msgid "Slovak" msgstr "Словацька" -#: src/contexts/LanguageContext.tsx:48 +#: src/contexts/LanguageContext.tsx:49 msgid "Slovenian" msgstr "Словенська" -#: src/contexts/LanguageContext.tsx:49 +#: src/contexts/LanguageContext.tsx:50 msgid "Swedish" msgstr "Шведська" -#: src/contexts/LanguageContext.tsx:50 +#: src/contexts/LanguageContext.tsx:51 msgid "Thai" msgstr "Тайська" -#: src/contexts/LanguageContext.tsx:51 +#: src/contexts/LanguageContext.tsx:52 msgid "Turkish" msgstr "Турецька" -#: src/contexts/LanguageContext.tsx:52 +#: src/contexts/LanguageContext.tsx:53 msgid "Ukrainian" msgstr "Українська" -#: src/contexts/LanguageContext.tsx:53 +#: src/contexts/LanguageContext.tsx:54 msgid "Vietnamese" msgstr "В’єтнамська" -#: src/contexts/LanguageContext.tsx:54 +#: src/contexts/LanguageContext.tsx:55 msgid "Chinese (Simplified)" msgstr "Китайська (спрощена)" -#: src/contexts/LanguageContext.tsx:55 +#: src/contexts/LanguageContext.tsx:56 msgid "Chinese (Traditional)" msgstr "Китайська (Традиційна)" #: src/defaults/actions.tsx:18 -#: src/defaults/links.tsx:27 -#: src/defaults/menuItems.tsx:9 -msgid "Home" -msgstr "Домашня сторінка" - -#: src/defaults/actions.tsx:25 -#: src/defaults/links.tsx:28 -#: src/defaults/menuItems.tsx:28 -#: src/pages/Index/Dashboard.tsx:19 -#: src/pages/Index/Settings/UserSettings.tsx:46 -msgid "Dashboard" -msgstr "Дешборд" - -#: src/defaults/actions.tsx:26 msgid "Go to the InvenTree dashboard" msgstr "" -#: src/defaults/actions.tsx:33 +#: src/defaults/actions.tsx:18 +#: src/defaults/links.tsx:27 +#: src/defaults/menuItems.tsx:9 +#~ msgid "Home" +#~ msgstr "Home" + +#: src/defaults/actions.tsx:25 msgid "Visit the documentation to learn more about InvenTree" msgstr "" -#: src/defaults/actions.tsx:39 -#: src/defaults/links.tsx:98 -#: src/defaults/links.tsx:128 +#: src/defaults/actions.tsx:31 +#: src/defaults/links.tsx:92 +#: src/defaults/links.tsx:124 msgid "About InvenTree" msgstr "" -#: src/defaults/actions.tsx:40 -#: src/defaults/links.tsx:129 +#: src/defaults/actions.tsx:32 msgid "About the InvenTree org" msgstr "" -#: src/defaults/actions.tsx:46 +#: src/defaults/actions.tsx:38 msgid "Server Information" msgstr "Інформація про сервер" -#: src/defaults/actions.tsx:47 -#: src/defaults/links.tsx:123 +#: src/defaults/actions.tsx:39 +#: src/defaults/links.tsx:118 msgid "About this Inventree instance" msgstr "" -#: src/defaults/actions.tsx:53 -#: src/defaults/links.tsx:111 +#: src/defaults/actions.tsx:45 +#: src/defaults/links.tsx:105 +#: src/defaults/links.tsx:131 msgid "License Information" msgstr "Відомості про ліцензію" -#: src/defaults/actions.tsx:54 -#: src/defaults/links.tsx:135 +#: src/defaults/actions.tsx:46 msgid "Licenses for dependencies of the service" msgstr "" -#: src/defaults/actions.tsx:61 +#: src/defaults/actions.tsx:52 +msgid "Open Navigation" +msgstr "" + +#: src/defaults/actions.tsx:53 msgid "Open the main navigation menu" msgstr "" -#: src/defaults/actions.tsx:72 +#: src/defaults/actions.tsx:64 msgid "Go to the Admin Center" msgstr "" -#: src/defaults/dashboardItems.tsx:15 -msgid "Subscribed Parts" -msgstr "" - -#: src/defaults/dashboardItems.tsx:22 -msgid "Subscribed Categories" -msgstr "" - #: src/defaults/dashboardItems.tsx:29 -msgid "Latest Parts" -msgstr "" +#~ msgid "Latest Parts" +#~ msgstr "Latest Parts" #: src/defaults/dashboardItems.tsx:36 -msgid "BOM Waiting Validation" -msgstr "" +#~ msgid "BOM Waiting Validation" +#~ msgstr "BOM Waiting Validation" #: src/defaults/dashboardItems.tsx:43 -msgid "Recently Updated" -msgstr "" - -#: src/defaults/dashboardItems.tsx:50 -#: src/tables/part/PartTable.tsx:238 -msgid "Low Stock" -msgstr "Низький залишок" +#~ msgid "Recently Updated" +#~ msgstr "Recently Updated" #: src/defaults/dashboardItems.tsx:57 -msgid "Depleted Stock" -msgstr "" +#~ msgid "Depleted Stock" +#~ msgstr "Depleted Stock" #: src/defaults/dashboardItems.tsx:64 -msgid "Required for Build Orders" -msgstr "" +#~ msgid "Required for Build Orders" +#~ msgstr "Required for Build Orders" #: src/defaults/dashboardItems.tsx:71 -msgid "Expired Stock" -msgstr "" +#~ msgid "Expired Stock" +#~ msgstr "Expired Stock" #: src/defaults/dashboardItems.tsx:78 -msgid "Stale Stock" -msgstr "" +#~ msgid "Stale Stock" +#~ msgstr "Stale Stock" #: src/defaults/dashboardItems.tsx:85 -msgid "Build Orders In Progress" -msgstr "" - -#: src/defaults/dashboardItems.tsx:92 -msgid "Overdue Build Orders" -msgstr "" +#~ msgid "Build Orders In Progress" +#~ msgstr "Build Orders In Progress" #: src/defaults/dashboardItems.tsx:99 -msgid "Outstanding Purchase Orders" -msgstr "" - -#: src/defaults/dashboardItems.tsx:106 -msgid "Overdue Purchase Orders" -msgstr "" +#~ msgid "Outstanding Purchase Orders" +#~ msgstr "Outstanding Purchase Orders" #: src/defaults/dashboardItems.tsx:113 -msgid "Outstanding Sales Orders" -msgstr "" - -#: src/defaults/dashboardItems.tsx:120 -msgid "Overdue Sales Orders" -msgstr "" +#~ msgid "Outstanding Sales Orders" +#~ msgstr "Outstanding Sales Orders" #: src/defaults/dashboardItems.tsx:127 -msgid "Current News" -msgstr "" +#~ msgid "Current News" +#~ msgstr "Current News" #: src/defaults/defaultHostList.tsx:8 #~ msgid "InvenTree Demo" @@ -2490,98 +3031,81 @@ msgstr "" #~ msgid "Local Server" #~ msgstr "Local Server" -#: src/defaults/links.tsx:12 -#: src/pages/company/CompanyDetail.tsx:96 -msgid "Website" -msgstr "" - #: src/defaults/links.tsx:17 -msgid "GitHub" -msgstr "" +#~ msgid "GitHub" +#~ msgstr "GitHub" #: src/defaults/links.tsx:22 -msgid "Demo" -msgstr "Демо" - -#: src/defaults/links.tsx:33 -#: src/defaults/menuItems.tsx:48 -#: src/pages/company/ManufacturerDetail.tsx:9 -#: src/pages/company/ManufacturerPartDetail.tsx:263 -#: src/pages/company/SupplierDetail.tsx:9 -#: src/pages/company/SupplierPartDetail.tsx:347 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:483 -#: src/pages/purchasing/PurchasingIndex.tsx:60 -msgid "Purchasing" -msgstr "" - -#: src/defaults/links.tsx:37 -#: src/defaults/menuItems.tsx:53 -#: src/pages/company/CustomerDetail.tsx:9 -#: src/pages/sales/ReturnOrderDetail.tsx:474 -#: src/pages/sales/SalesIndex.tsx:53 -#: src/pages/sales/SalesOrderDetail.tsx:525 -msgid "Sales" -msgstr "" +#~ msgid "Demo" +#~ msgstr "Demo" #: src/defaults/links.tsx:41 #: src/defaults/menuItems.tsx:71 #: src/pages/Index/Playground.tsx:217 -msgid "Playground" -msgstr "" +#~ msgid "Playground" +#~ msgstr "Playground" -#: src/defaults/links.tsx:55 -msgid "Getting Started" -msgstr "Починаємо" - -#: src/defaults/links.tsx:56 -msgid "Getting started with InvenTree" -msgstr "" - -#: src/defaults/links.tsx:62 +#: src/defaults/links.tsx:45 msgid "API" msgstr "" -#: src/defaults/links.tsx:63 +#: src/defaults/links.tsx:48 msgid "InvenTree API documentation" msgstr "" -#: src/defaults/links.tsx:68 +#: src/defaults/links.tsx:52 msgid "Developer Manual" msgstr "" -#: src/defaults/links.tsx:69 +#: src/defaults/links.tsx:55 msgid "InvenTree developer manual" msgstr "" -#: src/defaults/links.tsx:74 +#: src/defaults/links.tsx:59 msgid "FAQ" msgstr "" -#: src/defaults/links.tsx:75 +#: src/defaults/links.tsx:62 msgid "Frequently asked questions" msgstr "" +#: src/defaults/links.tsx:66 +msgid "GitHub Repository" +msgstr "" + +#: src/defaults/links.tsx:69 +msgid "InvenTree source code on GitHub" +msgstr "" + #: src/defaults/links.tsx:76 #~ msgid "Instance" #~ msgstr "Instance" +#: src/defaults/links.tsx:79 +#: src/defaults/links.tsx:117 +msgid "System Information" +msgstr "" + #: src/defaults/links.tsx:83 #~ msgid "InvenTree" #~ msgstr "InvenTree" -#: src/defaults/links.tsx:85 -#: src/defaults/links.tsx:122 -msgid "System Information" -msgstr "" - #: src/defaults/links.tsx:117 #~ msgid "Licenses for packages used by InvenTree" #~ msgstr "Licenses for packages used by InvenTree" -#: src/defaults/links.tsx:134 -msgid "Licenses" +#: src/defaults/links.tsx:125 +msgid "About the InvenTree Project" msgstr "" +#: src/defaults/links.tsx:132 +msgid "Licenses for dependencies of the InvenTree software" +msgstr "" + +#: src/defaults/links.tsx:134 +#~ msgid "Licenses" +#~ msgstr "Licenses" + #: src/defaults/menuItems.tsx:7 #~ msgid "Open sourcea" #~ msgstr "Open sourcea" @@ -2607,8 +3131,8 @@ msgstr "" #~ msgstr "Profile page" #: src/defaults/menuItems.tsx:17 -msgid "User attributes and design settings." -msgstr "" +#~ msgid "User attributes and design settings." +#~ msgstr "User attributes and design settings." #: src/defaults/menuItems.tsx:21 #~ msgid "Free for everyone" @@ -2619,8 +3143,8 @@ msgstr "" #~ msgstr "The fluid of Smeargle’s tail secretions changes" #: src/defaults/menuItems.tsx:23 -msgid "View for interactive scanning and multiple actions." -msgstr "" +#~ msgid "View for interactive scanning and multiple actions." +#~ msgstr "View for interactive scanning and multiple actions." #: src/defaults/menuItems.tsx:24 #~ msgid "The fluid of Smeargle’s tail secretions changes in the intensity" @@ -2698,51 +3222,130 @@ msgstr "" #~ msgid "Are you sure you want to delete this attachment?" #~ msgstr "Are you sure you want to delete this attachment?" -#: src/forms/BuildForms.tsx:158 -msgid "Next serial number" +#: src/forms/BuildForms.tsx:248 +#~ msgid "Remove output" +#~ msgstr "Remove output" + +#: src/forms/BuildForms.tsx:269 +#: src/tables/build/BuildAllocatedStockTable.tsx:147 +#: src/tables/build/BuildOrderTestTable.tsx:177 +#: src/tables/build/BuildOrderTestTable.tsx:201 +#: src/tables/build/BuildOutputTable.tsx:460 +msgid "Build Output" msgstr "" -#: src/forms/BuildForms.tsx:162 -msgid "Latest serial number" +#: src/forms/BuildForms.tsx:269 +#: src/forms/BuildForms.tsx:337 +#: src/forms/BuildForms.tsx:385 +#: src/tables/build/BuildLineTable.tsx:89 +msgid "Batch" msgstr "" -#: src/forms/BuildForms.tsx:234 -msgid "Remove output" -msgstr "" +#: src/forms/BuildForms.tsx:269 +#: src/forms/BuildForms.tsx:337 +#: src/forms/BuildForms.tsx:385 +#: src/forms/PurchaseOrderForms.tsx:603 +#: src/pages/build/BuildDetail.tsx:104 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:142 +#: src/pages/sales/ReturnOrderDetail.tsx:113 +#: src/pages/sales/SalesOrderDetail.tsx:122 +#: src/tables/build/BuildOrderTable.tsx:125 +#: src/tables/machine/MachineListTable.tsx:336 +#: src/tables/part/PartPurchaseOrdersTable.tsx:37 +#: src/tables/purchasing/PurchaseOrderTable.tsx:58 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:157 +#: src/tables/sales/ReturnOrderTable.tsx:56 +#: src/tables/sales/SalesOrderTable.tsx:56 +#: src/tables/settings/CustomStateTable.tsx:57 +#: src/tables/settings/ImportSessionTable.tsx:114 +#: src/tables/stock/StockItemTable.tsx:298 +#: src/tables/stock/StockTrackingTable.tsx:56 +msgid "Status" +msgstr "Статус" -#: src/forms/BuildForms.tsx:316 +#: src/forms/BuildForms.tsx:289 msgid "Complete Build Outputs" msgstr "" -#: src/forms/BuildForms.tsx:320 +#: src/forms/BuildForms.tsx:292 msgid "Build outputs have been completed" msgstr "" -#: src/forms/BuildForms.tsx:389 +#: src/forms/BuildForms.tsx:353 msgid "Scrap Build Outputs" msgstr "" -#: src/forms/BuildForms.tsx:393 +#: src/forms/BuildForms.tsx:356 msgid "Build outputs have been scrapped" msgstr "" -#: src/forms/BuildForms.tsx:425 -#: src/forms/BuildForms.tsx:449 +#: src/forms/BuildForms.tsx:393 msgid "Cancel Build Outputs" msgstr "" -#: src/forms/BuildForms.tsx:426 -msgid "Selected build outputs will be deleted" -msgstr "" - -#: src/forms/BuildForms.tsx:453 +#: src/forms/BuildForms.tsx:396 msgid "Build outputs have been cancelled" msgstr "" +#: src/forms/BuildForms.tsx:408 +#~ msgid "Selected build outputs will be deleted" +#~ msgstr "Selected build outputs will be deleted" + +#: src/forms/BuildForms.tsx:470 +#~ msgid "Remove line" +#~ msgstr "Remove line" + +#: src/forms/BuildForms.tsx:515 +#: src/forms/SalesOrderForms.tsx:248 +#: src/tables/build/BuildLineTable.tsx:174 +#: src/tables/sales/SalesOrderLineItemTable.tsx:276 +#: src/tables/stock/StockItemTable.tsx:309 +msgid "Allocated" +msgstr "" + +#: src/forms/BuildForms.tsx:545 +#: src/forms/SalesOrderForms.tsx:239 +#: src/pages/build/BuildDetail.tsx:208 +msgid "Source Location" +msgstr "" + +#: src/forms/BuildForms.tsx:546 +#: src/forms/SalesOrderForms.tsx:240 +msgid "Select the source location for the stock allocation" +msgstr "Вибір розташування вихідного товару при розподілі запасів" + +#: src/forms/BuildForms.tsx:566 +#: src/forms/SalesOrderForms.tsx:274 +#: src/tables/build/BuildLineTable.tsx:442 +#: src/tables/build/BuildLineTable.tsx:569 +#: src/tables/build/BuildLineTable.tsx:642 +#: src/tables/sales/SalesOrderLineItemTable.tsx:302 +#: src/tables/sales/SalesOrderLineItemTable.tsx:326 +msgid "Allocate Stock" +msgstr "" + +#: src/forms/BuildForms.tsx:569 +#: src/forms/SalesOrderForms.tsx:279 +msgid "Stock items allocated" +msgstr "Елементи складу виділені" + #: src/forms/CompanyForms.tsx:150 #~ msgid "Company updated" #~ msgstr "Company updated" +#: src/forms/PartForms.tsx:67 +#: src/forms/PartForms.tsx:154 +#: src/pages/part/CategoryDetail.tsx:117 +#: src/pages/part/PartDetail.tsx:384 +#: src/tables/part/PartCategoryTable.tsx:90 +#: src/tables/part/PartTable.tsx:294 +msgid "Subscribed" +msgstr "" + +#: src/forms/PartForms.tsx:68 +msgid "Subscribe to notifications for this part" +msgstr "" + #: src/forms/PartForms.tsx:106 #~ msgid "Create Part" #~ msgstr "Create Part" @@ -2751,191 +3354,190 @@ msgstr "" #~ msgid "Part created" #~ msgstr "Part created" -#: src/forms/PartForms.tsx:124 -msgid "Parent part category" -msgstr "" - #: src/forms/PartForms.tsx:129 #~ msgid "Part updated" #~ msgstr "Part updated" -#: src/forms/PurchaseOrderForms.tsx:300 +#: src/forms/PartForms.tsx:140 +msgid "Parent part category" +msgstr "" + +#: src/forms/PartForms.tsx:155 +msgid "Subscribe to notifications for this category" +msgstr "" + +#: src/forms/PurchaseOrderForms.tsx:314 +msgid "Assign Batch Code and Serial Numbers" +msgstr "" + +#: src/forms/PurchaseOrderForms.tsx:316 +msgid "Assign Batch Code" +msgstr "" + +#: src/forms/PurchaseOrderForms.tsx:336 msgid "Choose Location" msgstr "Оберіть розташування" -#: src/forms/PurchaseOrderForms.tsx:308 +#: src/forms/PurchaseOrderForms.tsx:344 msgid "Item Destination selected" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:317 +#: src/forms/PurchaseOrderForms.tsx:353 msgid "Part category default location selected" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:327 +#: src/forms/PurchaseOrderForms.tsx:363 msgid "Received stock location selected" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:332 +#: src/forms/PurchaseOrderForms.tsx:368 msgid "Default location selected" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:343 -#: src/forms/PurchaseOrderForms.tsx:435 -msgid "Scan Barcode" -msgstr "" +#: src/forms/PurchaseOrderForms.tsx:421 +#~ msgid "Assign Batch Code{0}" +#~ msgstr "Assign Batch Code{0}" -#: src/forms/PurchaseOrderForms.tsx:388 +#: src/forms/PurchaseOrderForms.tsx:427 msgid "Set Location" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:396 -msgid "Assign Batch Code{0}" -msgstr "" - -#: src/forms/PurchaseOrderForms.tsx:405 -#: src/forms/StockForms.tsx:420 +#: src/forms/PurchaseOrderForms.tsx:442 +#: src/forms/StockForms.tsx:539 msgid "Adjust Packaging" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:412 -msgid "Change Status" -msgstr "" - -#: src/forms/PurchaseOrderForms.tsx:418 -msgid "Add Note" -msgstr "" - #: src/forms/PurchaseOrderForms.tsx:444 #: src/forms/StockForms.tsx:428 -msgid "Remove item from list" +#~ msgid "Remove item from list" +#~ msgstr "Remove item from list" + +#: src/forms/PurchaseOrderForms.tsx:450 +msgid "Change Status" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:471 -#: src/forms/StockForms.tsx:499 -#: src/forms/StockForms.tsx:533 -#: src/forms/StockForms.tsx:562 -#: src/forms/StockForms.tsx:590 -#: src/forms/StockForms.tsx:621 -#: src/forms/StockForms.tsx:656 -#: src/forms/StockForms.tsx:698 -#: src/forms/StockForms.tsx:734 -#: src/pages/stock/StockDetail.tsx:181 -#: src/tables/ColumnRenderers.tsx:49 -#: src/tables/stock/StockTrackingTable.tsx:85 +#: src/forms/PurchaseOrderForms.tsx:456 +msgid "Add Note" +msgstr "" + +#: src/forms/PurchaseOrderForms.tsx:503 +#: src/forms/StockForms.tsx:614 +#: src/forms/StockForms.tsx:651 +#: src/forms/StockForms.tsx:677 +#: src/forms/StockForms.tsx:705 +#: src/forms/StockForms.tsx:736 +#: src/forms/StockForms.tsx:771 +#: src/forms/StockForms.tsx:813 +#: src/forms/StockForms.tsx:851 +#: src/pages/stock/StockDetail.tsx:202 +#: src/tables/ColumnRenderers.tsx:60 +#: src/tables/stock/StockTrackingTable.tsx:89 msgid "Location" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:486 +#: src/forms/PurchaseOrderForms.tsx:518 msgid "Store at default location" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:499 +#: src/forms/PurchaseOrderForms.tsx:533 msgid "Store at line item destination" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:509 +#: src/forms/PurchaseOrderForms.tsx:545 msgid "Store with already received stock" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:524 -#: src/pages/build/BuildDetail.tsx:219 -#: src/pages/stock/StockDetail.tsx:162 -#: src/pages/stock/StockDetail.tsx:599 -#: src/tables/build/BuildAllocatedStockTable.tsx:109 -#: src/tables/build/BuildOrderTestTable.tsx:188 -#: src/tables/sales/SalesOrderAllocationTable.tsx:87 +#: src/forms/PurchaseOrderForms.tsx:566 +#: src/pages/build/BuildDetail.tsx:222 +#: src/pages/stock/StockDetail.tsx:185 +#: src/pages/stock/StockDetail.tsx:793 +#: src/tables/build/BuildAllocatedStockTable.tsx:130 +#: src/tables/build/BuildOrderTestTable.tsx:189 +#: src/tables/build/BuildOutputTable.tsx:86 +#: src/tables/sales/SalesOrderAllocationTable.tsx:113 msgid "Batch Code" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:535 -msgid "Serial numbers" +#: src/forms/PurchaseOrderForms.tsx:566 +#~ msgid "Serial numbers" +#~ msgstr "Serial numbers" + +#: src/forms/PurchaseOrderForms.tsx:567 +msgid "Enter batch code for received items" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:544 -#: src/forms/StockForms.tsx:443 -#: src/pages/company/SupplierPartDetail.tsx:156 -#: src/pages/company/SupplierPartDetail.tsx:207 -#: src/pages/stock/StockDetail.tsx:244 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:192 +#: src/forms/PurchaseOrderForms.tsx:579 +#: src/forms/StockForms.tsx:152 +msgid "Serial Numbers" +msgstr "" + +#: src/forms/PurchaseOrderForms.tsx:580 +msgid "Enter serial numbers for received items" +msgstr "" + +#: src/forms/PurchaseOrderForms.tsx:590 +#: src/forms/StockForms.tsx:556 +#: src/pages/company/SupplierPartDetail.tsx:168 +#: src/pages/company/SupplierPartDetail.tsx:219 +#: src/pages/stock/StockDetail.tsx:320 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:198 msgid "Packaging" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:556 -#: src/pages/build/BuildDetail.tsx:109 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:148 -#: src/pages/sales/ReturnOrderDetail.tsx:121 -#: src/pages/sales/SalesOrderDetail.tsx:127 -#: src/tables/build/BuildOrderTable.tsx:122 -#: src/tables/machine/MachineListTable.tsx:335 -#: src/tables/part/PartPurchaseOrdersTable.tsx:37 -#: src/tables/purchasing/PurchaseOrderTable.tsx:55 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:132 -#: src/tables/sales/ReturnOrderTable.tsx:46 -#: src/tables/sales/SalesOrderTable.tsx:53 -#: src/tables/settings/ImportSessionTable.tsx:115 -#: src/tables/stock/StockItemTable.tsx:294 -#: src/tables/stock/StockTrackingTable.tsx:52 -msgid "Status" -msgstr "Статус" - -#: src/forms/PurchaseOrderForms.tsx:564 -#: src/pages/company/SupplierPartDetail.tsx:110 -#: src/tables/ColumnRenderers.tsx:132 +#: src/forms/PurchaseOrderForms.tsx:612 +#: src/pages/company/SupplierPartDetail.tsx:115 +#: src/tables/ColumnRenderers.tsx:143 msgid "Note" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/pages/company/SupplierPartDetail.tsx:128 -#: src/tables/purchasing/SupplierPriceBreakTable.tsx:57 -msgid "SKU" -msgstr "" - -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/tables/part/PartPurchaseOrdersTable.tsx:120 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:178 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:127 -msgid "Received" -msgstr "" - -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/forms/StockForms.tsx:499 -#: src/forms/StockForms.tsx:533 -#: src/forms/StockForms.tsx:562 -#: src/forms/StockForms.tsx:590 -#: src/forms/StockForms.tsx:621 -#: src/forms/StockForms.tsx:656 -#: src/forms/StockForms.tsx:698 -#: src/forms/StockForms.tsx:734 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:413 -#: src/tables/RowActions.tsx:113 -msgid "Actions" -msgstr "Дії" - -#: src/forms/PurchaseOrderForms.tsx:655 -msgid "Receive Line Items" -msgstr "" - #: src/forms/PurchaseOrderForms.tsx:658 #~ msgid "Receive line items" #~ msgstr "Receive line items" -#: src/forms/StockForms.tsx:104 -msgid "Add given quantity as packs instead of individual items" +#: src/forms/PurchaseOrderForms.tsx:689 +#: src/pages/company/SupplierPartDetail.tsx:133 +#: src/tables/purchasing/SupplierPriceBreakTable.tsx:57 +msgid "SKU" +msgstr "" + +#: src/forms/PurchaseOrderForms.tsx:689 +#: src/tables/part/PartPurchaseOrdersTable.tsx:126 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:184 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:247 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:152 +msgid "Received" +msgstr "" + +#: src/forms/PurchaseOrderForms.tsx:701 +msgid "Receive Line Items" +msgstr "" + +#: src/forms/ReturnOrderForms.tsx:201 +msgid "Receive Items" +msgstr "Отримати предмети" + +#: src/forms/ReturnOrderForms.tsx:208 +msgid "Item received into stock" +msgstr "Елемент, отриманий на складі" + +#: src/forms/StockForms.tsx:80 +#: src/hooks/UsePlaceholder.tsx:57 +msgid "Next serial number" msgstr "" #: src/forms/StockForms.tsx:110 #~ msgid "Create Stock Item" #~ msgstr "Create Stock Item" -#: src/forms/StockForms.tsx:117 +#: src/forms/StockForms.tsx:131 +msgid "Add given quantity as packs instead of individual items" +msgstr "" + +#: src/forms/StockForms.tsx:145 msgid "Enter initial quantity for this stock item" msgstr "" -#: src/forms/StockForms.tsx:124 -msgid "Serial Numbers" -msgstr "" - -#: src/forms/StockForms.tsx:125 +#: src/forms/StockForms.tsx:154 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" @@ -2943,82 +3545,102 @@ msgstr "" #~ msgid "Stock item updated" #~ msgstr "Stock item updated" -#: src/forms/StockForms.tsx:179 -#: src/pages/stock/StockDetail.tsx:434 -#: src/tables/stock/StockItemTable.tsx:417 -#: src/tables/stock/StockItemTable.tsx:535 +#: src/forms/StockForms.tsx:169 +#: src/pages/stock/StockDetail.tsx:131 +msgid "Stock Status" +msgstr "" + +#: src/forms/StockForms.tsx:218 +#: src/pages/stock/StockDetail.tsx:554 +#: src/tables/stock/StockItemTable.tsx:421 +#: src/tables/stock/StockItemTable.tsx:541 msgid "Add Stock Item" msgstr "" -#: src/forms/StockForms.tsx:362 +#: src/forms/StockForms.tsx:262 +msgid "Select the part to install" +msgstr "" + +#: src/forms/StockForms.tsx:480 msgid "Loading..." msgstr "Завантаження..." -#: src/forms/StockForms.tsx:408 +#: src/forms/StockForms.tsx:527 msgid "Move to default location" msgstr "" -#: src/forms/StockForms.tsx:499 -#: src/forms/StockForms.tsx:533 -#: src/forms/StockForms.tsx:562 -#: src/forms/StockForms.tsx:590 -#: src/forms/StockForms.tsx:621 -#: src/forms/StockForms.tsx:656 -#: src/forms/StockForms.tsx:698 -#: src/forms/StockForms.tsx:734 -#: src/pages/part/PartDetail.tsx:230 -#: src/pages/part/PartDetail.tsx:843 -#: src/tables/stock/StockItemTable.tsx:325 +#: src/forms/StockForms.tsx:614 +#: src/forms/StockForms.tsx:651 +#: src/forms/StockForms.tsx:677 +#: src/forms/StockForms.tsx:705 +#: src/forms/StockForms.tsx:736 +#: src/forms/StockForms.tsx:771 +#: src/forms/StockForms.tsx:813 +#: src/forms/StockForms.tsx:851 +#: src/pages/part/PartDetail.tsx:251 +#: src/pages/part/PartDetail.tsx:875 +#: src/tables/stock/StockItemTable.tsx:329 msgid "In Stock" msgstr "" -#: src/forms/StockForms.tsx:499 +#: src/forms/StockForms.tsx:614 msgid "Move" msgstr "Перемістити" -#: src/forms/StockForms.tsx:562 -#: src/pages/stock/StockDetail.tsx:518 -#: src/tables/stock/StockItemTestResultTable.tsx:328 +#: src/forms/StockForms.tsx:677 +#: src/pages/stock/StockDetail.tsx:681 +#: src/tables/stock/StockItemTestResultTable.tsx:346 msgid "Add" msgstr "Додати" -#: src/forms/StockForms.tsx:590 -#: src/pages/Index/Scan.tsx:266 -#: src/pages/stock/StockDetail.tsx:508 +#: src/forms/StockForms.tsx:705 +#: src/pages/Index/Scan.tsx:280 +#: src/pages/stock/StockDetail.tsx:670 msgid "Count" msgstr "Кількість" -#: src/forms/StockForms.tsx:835 +#: src/forms/StockForms.tsx:953 +#: src/pages/stock/StockDetail.tsx:682 +#: src/tables/stock/StockItemTable.tsx:454 msgid "Add Stock" msgstr "" -#: src/forms/StockForms.tsx:844 +#: src/forms/StockForms.tsx:962 +#: src/pages/stock/StockDetail.tsx:691 +#: src/tables/stock/StockItemTable.tsx:463 msgid "Remove Stock" msgstr "" -#: src/forms/StockForms.tsx:853 -#: src/pages/part/PartDetail.tsx:1017 +#: src/forms/StockForms.tsx:971 +#: src/pages/part/PartDetail.tsx:1039 +#: src/pages/stock/StockDetail.tsx:712 +#: src/tables/stock/StockItemTable.tsx:483 msgid "Transfer Stock" msgstr "" -#: src/forms/StockForms.tsx:862 -#: src/pages/part/PartDetail.tsx:1006 +#: src/forms/StockForms.tsx:980 +#: src/pages/part/PartDetail.tsx:1028 +#: src/pages/stock/LocationDetail.tsx:314 +#: src/pages/stock/LocationDetail.tsx:318 +#: src/tables/stock/StockItemTable.tsx:472 +#: src/tables/stock/StockItemTable.tsx:476 msgid "Count Stock" msgstr "" -#: src/forms/StockForms.tsx:871 +#: src/forms/StockForms.tsx:989 msgid "Change Stock Status" msgstr "" -#: src/forms/StockForms.tsx:880 +#: src/forms/StockForms.tsx:998 msgid "Merge Stock" msgstr "" -#: src/forms/StockForms.tsx:899 +#: src/forms/StockForms.tsx:1017 +#: src/tables/stock/StockItemTable.tsx:530 msgid "Delete Stock Items" msgstr "" -#: src/forms/StockForms.tsx:906 +#: src/forms/StockForms.tsx:1024 msgid "Parent stock location" msgstr "" @@ -3042,11 +3664,11 @@ msgstr "" #~ msgid "You have been logged out" #~ msgstr "You have been logged out" -#: src/functions/auth.tsx:117 +#: src/functions/auth.tsx:128 msgid "Logged Out" msgstr "" -#: src/functions/auth.tsx:118 +#: src/functions/auth.tsx:129 msgid "Successfully logged out" msgstr "" @@ -3062,20 +3684,20 @@ msgstr "" #~ msgid "Found an existing login - welcome back!" #~ msgstr "Found an existing login - welcome back!" -#: src/functions/auth.tsx:156 +#: src/functions/auth.tsx:167 msgid "Check your inbox for a reset link. This only works if you have an account. Check in spam too." -msgstr "" +msgstr "Перевірте вашу поштову скриньку для скидання посилання. Це працює тільки в тому випадку, якщо у вас є обліковий запис. Перевірити також спам." -#: src/functions/auth.tsx:163 +#: src/functions/auth.tsx:174 #: src/pages/Auth/Set-Password.tsx:39 msgid "Reset failed" msgstr "" -#: src/functions/auth.tsx:194 +#: src/functions/auth.tsx:205 msgid "Logged In" msgstr "" -#: src/functions/auth.tsx:195 +#: src/functions/auth.tsx:206 msgid "Successfully logged in" msgstr "" @@ -3095,30 +3717,38 @@ msgstr "" #~ msgid "method parameter not supplied" #~ msgstr "method parameter not supplied" -#: src/functions/notifications.tsx:10 +#: src/functions/notifications.tsx:12 msgid "Not implemented" msgstr "" -#: src/functions/notifications.tsx:11 +#: src/functions/notifications.tsx:13 msgid "This feature is not yet implemented" msgstr "" -#: src/functions/notifications.tsx:21 -msgid "Permission denied" -msgstr "" +#: src/functions/notifications.tsx:24 +#~ msgid "Permission denied" +#~ msgstr "Permission denied" -#: src/functions/notifications.tsx:22 +#: src/functions/notifications.tsx:25 msgid "You do not have permission to perform this action" msgstr "" -#: src/functions/notifications.tsx:33 +#: src/functions/notifications.tsx:36 msgid "Invalid Return Code" msgstr "" -#: src/functions/notifications.tsx:34 +#: src/functions/notifications.tsx:37 msgid "Server returned status {returnCode}" msgstr "" +#: src/functions/notifications.tsx:47 +msgid "Timeout" +msgstr "" + +#: src/functions/notifications.tsx:48 +msgid "The request timed out" +msgstr "" + #: src/hooks/UseForm.tsx:88 msgid "Item Created" msgstr "" @@ -3135,20 +3765,24 @@ msgstr "" msgid "Are you sure you want to delete this item?" msgstr "" +#: src/hooks/UsePlaceholder.tsx:59 +msgid "Latest serial number" +msgstr "" + #: src/pages/Auth/Logged-In.tsx:22 msgid "Checking if you are already logged in" msgstr "" -#: src/pages/Auth/Login.tsx:31 -#: src/pages/Index/Scan.tsx:329 +#: src/pages/Auth/Login.tsx:35 +#: src/pages/Index/Scan.tsx:343 msgid "No selection" msgstr "" -#: src/pages/Auth/Login.tsx:87 +#: src/pages/Auth/Login.tsx:91 msgid "Welcome, log in below" msgstr "" -#: src/pages/Auth/Login.tsx:89 +#: src/pages/Auth/Login.tsx:93 msgid "Register below" msgstr "" @@ -3162,8 +3796,8 @@ msgstr "" #: src/pages/Auth/Reset.tsx:41 #: src/pages/Auth/Set-Password.tsx:112 -msgid "Send mail" -msgstr "" +#~ msgid "Send mail" +#~ msgstr "Send mail" #: src/pages/Auth/Set-Password.tsx:30 msgid "Token invalid" @@ -3171,25 +3805,25 @@ msgstr "" #: src/pages/Auth/Set-Password.tsx:31 msgid "You need to provide a valid token to set a new password. Check your inbox for a reset link." -msgstr "" +msgstr "Ви повинні вказати коректний токен для встановлення нового пароля. Перевірте вашу поштову скриньку для скидання посилання." #: src/pages/Auth/Set-Password.tsx:49 -msgid "No token provided" -msgstr "" +#~ msgid "No token provided" +#~ msgstr "No token provided" #: src/pages/Auth/Set-Password.tsx:50 -msgid "You need to provide a token to set a new password. Check your inbox for a reset link." -msgstr "" +#~ msgid "You need to provide a token to set a new password. Check your inbox for a reset link." +#~ msgstr "You need to provide a token to set a new password. Check your inbox for a reset link." -#: src/pages/Auth/Set-Password.tsx:73 +#: src/pages/Auth/Set-Password.tsx:68 msgid "Password set" msgstr "" -#: src/pages/Auth/Set-Password.tsx:74 +#: src/pages/Auth/Set-Password.tsx:69 msgid "The password was set successfully. You can now login with your new password" -msgstr "" +msgstr "Пароль успішно встановлено. Тепер ви можете увійти в систему, використовуючи новий пароль" -#: src/pages/Auth/Set-Password.tsx:101 +#: src/pages/Auth/Set-Password.tsx:96 msgid "Set new password" msgstr "" @@ -3206,20 +3840,20 @@ msgstr "" #~ msgstr "Sorry, an unexpected error has occurred." #: src/pages/Index/Dashboard.tsx:22 -msgid "Autoupdate" -msgstr "" +#~ msgid "Autoupdate" +#~ msgstr "Autoupdate" #: src/pages/Index/Dashboard.tsx:26 -msgid "This page is a replacement for the old start page with the same information. This page will be deprecated and replaced by the home page." -msgstr "" +#~ msgid "This page is a replacement for the old start page with the same information. This page will be deprecated and replaced by the home page." +#~ msgstr "This page is a replacement for the old start page with the same information. This page will be deprecated and replaced by the home page." #: src/pages/Index/Home.tsx:58 -msgid "Welcome to your Dashboard{0}" -msgstr "" +#~ msgid "Welcome to your Dashboard{0}" +#~ msgstr "Welcome to your Dashboard{0}" #: src/pages/Index/Playground.tsx:222 -msgid "This page is a showcase for the possibilities of Platform UI." -msgstr "" +#~ msgid "This page is a showcase for the possibilities of Platform UI." +#~ msgstr "This page is a showcase for the possibilities of Platform UI." #: src/pages/Index/Profile/Profile.tsx:30 #: src/pages/Index/Profile/Profile.tsx:141 @@ -3365,126 +3999,191 @@ msgstr "" msgid "Image Barcode" msgstr "" -#: src/pages/Index/Scan.tsx:247 +#: src/pages/Index/Scan.tsx:261 msgid "Selected elements are not known" msgstr "" -#: src/pages/Index/Scan.tsx:254 +#: src/pages/Index/Scan.tsx:268 msgid "Multiple object types selected" msgstr "" -#: src/pages/Index/Scan.tsx:261 +#: src/pages/Index/Scan.tsx:275 msgid "Actions for {0}" msgstr "" -#: src/pages/Index/Scan.tsx:282 +#: src/pages/Index/Scan.tsx:296 msgid "Scan Page" msgstr "" -#: src/pages/Index/Scan.tsx:285 +#: src/pages/Index/Scan.tsx:299 msgid "This page can be used for continuously scanning items and taking actions on them." -msgstr "" +msgstr "Ця сторінка може бути використана для постійного сканування елементів і дії з ними." -#: src/pages/Index/Scan.tsx:292 +#: src/pages/Index/Scan.tsx:306 msgid "Toggle Fullscreen" msgstr "" -#: src/pages/Index/Scan.tsx:305 +#: src/pages/Index/Scan.tsx:319 msgid "Select the input method you want to use to scan items." msgstr "" -#: src/pages/Index/Scan.tsx:307 +#: src/pages/Index/Scan.tsx:321 msgid "Input" msgstr "" -#: src/pages/Index/Scan.tsx:314 +#: src/pages/Index/Scan.tsx:328 msgid "Select input method" msgstr "" -#: src/pages/Index/Scan.tsx:315 +#: src/pages/Index/Scan.tsx:329 msgid "Nothing found" msgstr "" -#: src/pages/Index/Scan.tsx:323 +#: src/pages/Index/Scan.tsx:337 msgid "Depending on the selected parts actions will be shown here. Not all barcode types are supported currently." -msgstr "" +msgstr "Залежно від вибраних частин дій буде показано тут. Наразі не всі типи штрих-коду підтримуються." -#: src/pages/Index/Scan.tsx:325 +#: src/pages/Index/Scan.tsx:339 msgid "Action" msgstr "" -#: src/pages/Index/Scan.tsx:334 +#: src/pages/Index/Scan.tsx:348 msgid "{0} items selected" msgstr "" -#: src/pages/Index/Scan.tsx:337 +#: src/pages/Index/Scan.tsx:351 msgid "General Actions" msgstr "" -#: src/pages/Index/Scan.tsx:351 +#: src/pages/Index/Scan.tsx:365 msgid "Lookup part" msgstr "" -#: src/pages/Index/Scan.tsx:359 +#: src/pages/Index/Scan.tsx:373 msgid "Open Link" msgstr "" -#: src/pages/Index/Scan.tsx:375 +#: src/pages/Index/Scan.tsx:389 msgid "History is locally kept in this browser." msgstr "" -#: src/pages/Index/Scan.tsx:376 +#: src/pages/Index/Scan.tsx:390 msgid "The history is kept in this browser's local storage. So it won't be shared with other users or other devices but is persistent through reloads. You can select items in the history to perform actions on them. To add items, scan/enter them in the Input area." -msgstr "" +msgstr "Історія зберігається у локальному сховищі цього браузера, тому її не буде спільно з іншими користувачами або пристроями, але не зберігатимуться при перезавантаженні. Ви можете вибрати елементи історії для виконання дій над ними. Для того, щоб додати елементи, скан/введіть їх у розділі вводу." -#: src/pages/Index/Scan.tsx:378 +#: src/pages/Index/Scan.tsx:392 #: src/pages/Notifications.tsx:100 msgid "History" msgstr "" -#: src/pages/Index/Scan.tsx:384 +#: src/pages/Index/Scan.tsx:398 msgid "Delete History" msgstr "" -#: src/pages/Index/Scan.tsx:449 +#: src/pages/Index/Scan.tsx:463 msgid "No history" msgstr "" -#: src/pages/Index/Scan.tsx:467 +#: src/pages/Index/Scan.tsx:481 msgid "Item" msgstr "" -#: src/pages/Index/Scan.tsx:470 +#: src/pages/Index/Scan.tsx:484 msgid "Type" msgstr "" -#: src/pages/Index/Scan.tsx:473 +#: src/pages/Index/Scan.tsx:487 msgid "Source" msgstr "" -#: src/pages/Index/Scan.tsx:476 +#: src/pages/Index/Scan.tsx:490 msgid "Scanned at" msgstr "" -#: src/pages/Index/Scan.tsx:528 +#: src/pages/Index/Scan.tsx:547 msgid "Enter item serial or data" msgstr "" -#: src/pages/Index/Scan.tsx:540 +#: src/pages/Index/Scan.tsx:559 msgid "Add dummy item" msgstr "" -#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:41 -msgid "Account Details" +#: src/pages/Index/Scan.tsx:569 +msgid "Start scanning by selecting a camera and pressing the play button." +msgstr "Розпочніть сканування, вибравши камеру та натиснувши кнопку відтворення." + +#: src/pages/Index/Scan.tsx:650 +msgid "Error while getting camera" msgstr "" +#: src/pages/Index/Scan.tsx:673 +msgid "Error while scanning" +msgstr "" + +#: src/pages/Index/Scan.tsx:687 +msgid "Error while stopping" +msgstr "" + +#: src/pages/Index/Scan.tsx:745 +msgid "Stop scanning" +msgstr "Зупинити сканування" + +#: src/pages/Index/Scan.tsx:754 +msgid "Start scanning" +msgstr "Почати сканування" + +#: src/pages/Index/Scan.tsx:763 +msgid "Scanning" +msgstr "" + +#: src/pages/Index/Scan.tsx:763 +msgid "Not scanning" +msgstr "" + +#: src/pages/Index/Scan.tsx:775 +msgid "Select Camera" +msgstr "Обрати камеру" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:28 +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:50 +msgid "Edit User Information" +msgstr "Редагувати інформацію про користувача" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:32 +msgid "User details updated" +msgstr "Деталі користувача оновлено" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:41 +msgid "User Details" +msgstr "Інформація про користувача" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:41 +#~ msgid "Account Details" +#~ msgstr "Account Details" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:44 +msgid "User Actions" +msgstr "Дії користувача" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:48 +msgid "Edit User" +msgstr "Редагувати користувача" + #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:50 -msgid "First name" -msgstr "" +#~ msgid "First name" +#~ msgstr "First name" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:54 +msgid "Set Password" +msgstr "Встановити пароль" #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:55 -msgid "Last name" -msgstr "" +#~ msgid "Last name" +#~ msgstr "Last name" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:56 +msgid "Set User Password" +msgstr "Встановити пароль користувача" #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:58 #~ msgid "First name: {0}" @@ -3495,15 +4194,28 @@ msgstr "" #~ msgstr "Last name: {0}" #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:67 -msgid "First name:" -msgstr "" +#~ msgid "First name:" +#~ msgstr "First name:" #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:71 -msgid "Last name:" -msgstr "" +#~ msgid "Last name:" +#~ msgstr "Last name:" -#: src/pages/Index/Settings/AccountSettings/DisplaySettingsPanel.tsx:41 -msgid "Use pseudo language" +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:73 +msgid "First Name" +msgstr "Ім`я" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:79 +msgid "Last Name" +msgstr "Прізвище" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:85 +msgid "Staff Access" +msgstr "Доступ співробітників" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:93 +#: src/tables/settings/UserTable.tsx:293 +msgid "Superuser" msgstr "" #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:55 @@ -3525,7 +4237,7 @@ msgstr "" #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:83 msgid "Multifactor authentication is not configured for your account" -msgstr "" +msgstr "Для вашого облікового запису не налаштована багатофакторна автентифікація" #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:92 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:407 @@ -3534,7 +4246,7 @@ msgstr "" #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:139 msgid "The following email addresses are associated with your account:" -msgstr "" +msgstr "Наступні електронні адреси пов'язані з вашим обліковим записом:" #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:151 msgid "Primary" @@ -3582,11 +4294,11 @@ msgstr "" #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:283 msgid "There are no social network accounts connected to this account." -msgstr "" +msgstr "Для цього облікового запису соціальних мереж немає підключених до цього профілю." #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:293 msgid "You can sign in to your account using any of the following third party accounts" -msgstr "" +msgstr "Ви можете увійти до свого облікового запису, використовуючи будь-який з наступних облікових записів третіх осіб" #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:368 msgid "Token is used - no actions" @@ -3600,27 +4312,6 @@ msgstr "" msgid "No tokens configured" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:398 -#: src/pages/part/PartDetail.tsx:297 -#: src/tables/bom/UsedInTable.tsx:84 -#: src/tables/build/BuildOrderTable.tsx:110 -#: src/tables/company/CompanyTable.tsx:61 -#: src/tables/company/CompanyTable.tsx:95 -#: src/tables/machine/MachineListTable.tsx:332 -#: src/tables/machine/MachineListTable.tsx:594 -#: src/tables/part/ParametricPartTable.tsx:223 -#: src/tables/part/PartTable.tsx:178 -#: src/tables/part/PartVariantTable.tsx:15 -#: src/tables/plugin/PluginListTable.tsx:149 -#: src/tables/plugin/PluginListTable.tsx:271 -#: src/tables/plugin/PluginListTable.tsx:563 -#: src/tables/purchasing/SupplierPartTable.tsx:98 -#: src/tables/purchasing/SupplierPartTable.tsx:187 -#: src/tables/settings/UserTable.tsx:284 -#: src/tables/stock/StockItemTable.tsx:289 -msgid "Active" -msgstr "" - #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:401 msgid "Expiry" msgstr "" @@ -3630,38 +4321,74 @@ msgid "Last Seen" msgstr "" #: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:65 -msgid "bars" -msgstr "" +#~ msgid "bars" +#~ msgstr "bars" #: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:66 -msgid "oval" -msgstr "" +#~ msgid "oval" +#~ msgstr "oval" #: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:67 -msgid "dots" -msgstr "" +#~ msgid "dots" +#~ msgstr "dots" #: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:81 -msgid "Theme" -msgstr "" +#~ msgid "Theme" +#~ msgstr "Theme" #: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:87 -msgid "Primary color" +#~ msgid "Primary color" +#~ msgstr "Primary color" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:88 +msgid "Bars" +msgstr "Смуги" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:89 +msgid "Oval" +msgstr "Овал" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:90 +msgid "Dots" +msgstr "Крапки" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:101 +msgid "Display Settings" +msgstr "Налаштування відображення" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:107 +msgid "Language" +msgstr "Мова" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:115 +msgid "Use pseudo language" msgstr "" -#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:100 +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:122 +msgid "Color Mode" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:133 +msgid "Highlight color" +msgstr "Колір підсвічування" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:145 +msgid "Example" +msgstr "Приклад" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:151 msgid "White color" msgstr "" -#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:108 +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:167 msgid "Black color" msgstr "" -#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:116 +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:183 msgid "Border Radius" msgstr "" -#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:132 +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:199 msgid "Loader" msgstr "" @@ -3673,89 +4400,156 @@ msgstr "" #~ msgid "Advanced Amininistrative Options for InvenTree" #~ msgstr "Advanced Amininistrative Options for InvenTree" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:104 +#: src/pages/Index/Settings/AdminCenter/CurrencyManagmentPanel.tsx:27 +#: src/tables/ColumnRenderers.tsx:262 +msgid "Currency" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/CurrencyManagmentPanel.tsx:32 +msgid "Rate" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/CurrencyManagmentPanel.tsx:44 +msgid "Exchange rates updated" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/CurrencyManagmentPanel.tsx:50 +msgid "Exchange rate update error" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/CurrencyManagmentPanel.tsx:62 +msgid "Refresh currency exchange rates" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/CurrencyManagmentPanel.tsx:99 +msgid "Last fetched" +msgstr "Востаннє отримано" + +#: src/pages/Index/Settings/AdminCenter/CurrencyManagmentPanel.tsx:100 +msgid "Base currency" +msgstr "Основна валюта" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:115 msgid "Data Import" msgstr "" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:110 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:121 +msgid "Barcode Scans" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:127 msgid "Background Tasks" msgstr "" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:116 -msgid "Error Reports" -msgstr "" - -#: src/pages/Index/Settings/AdminCenter/Index.tsx:122 -msgid "Currencies" -msgstr "" - #: src/pages/Index/Settings/AdminCenter/Index.tsx:127 #~ msgid "Templates" #~ msgstr "Templates" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:140 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:133 +msgid "Error Reports" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:139 +msgid "Currencies" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:157 +msgid "Custom States" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:163 +#: src/pages/Index/Settings/AdminCenter/UnitManagmentPanel.tsx:58 msgid "Custom Units" msgstr "" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:146 -#: src/pages/part/CategoryDetail.tsx:264 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:169 +#: src/pages/part/CategoryDetail.tsx:269 msgid "Part Parameters" msgstr "" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:152 -msgid "Category Parameters" -msgstr "" - -#: src/pages/Index/Settings/AdminCenter/Index.tsx:170 -msgid "Location Types" -msgstr "" - #: src/pages/Index/Settings/AdminCenter/Index.tsx:170 #~ msgid "Location types" #~ msgstr "Location types" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:182 -#: src/tables/machine/MachineTypeTable.tsx:287 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:175 +msgid "Category Parameters" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:181 +msgid "Stocktake" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:199 +msgid "Location Types" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:211 +#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:48 +#: src/tables/machine/MachineTypeTable.tsx:308 msgid "Machines" msgstr "" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:192 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:221 msgid "Quick Actions" msgstr "" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:197 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:226 msgid "Add a new user" msgstr "" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:222 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:252 msgid "Advanced Options" msgstr "" #: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:43 -msgid "Machine types" -msgstr "" +#~ msgid "Machine types" +#~ msgstr "Machine types" #: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:53 -msgid "Machine Error Stack" +#~ msgid "Machine Error Stack" +#~ msgstr "Machine Error Stack" + +#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:56 +msgid "Machine Types" msgstr "" #: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:62 -msgid "There are no machine registry errors." +#~ msgid "There are no machine registry errors." +#~ msgstr "There are no machine registry errors." + +#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:64 +msgid "Machine Errors" msgstr "" -#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:28 -#: src/tables/settings/UserTable.tsx:119 +#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:77 +msgid "Registry Registry Errors" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:80 +msgid "There are machine registry errors" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:86 +msgid "Machine Registry Errors" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:89 +msgid "There are no machine registry errors" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:31 +#: src/tables/settings/UserTable.tsx:118 msgid "Info" msgstr "" -#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:32 -msgid "External plugins are not enabled for this InvenTree installation." -msgstr "" - #: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:33 #~ msgid "Plugin Error Stack" #~ msgstr "Plugin Error Stack" +#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:35 +msgid "External plugins are not enabled for this InvenTree installation." +msgstr "Зовнішні плагіни не ввімкнені для цього InvenTree встановлення." + #: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:45 #~ msgid "Warning" #~ msgstr "Warning" @@ -3764,34 +4558,46 @@ msgstr "" #~ msgid "Changing the settings below require you to immediately restart the server. Do not change this while under active usage." #~ msgstr "Changing the settings below require you to immediately restart the server. Do not change this while under active usage." -#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:50 +#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:73 msgid "Plugin Errors" msgstr "" -#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:59 -msgid "Plugin Settings" +#: src/pages/Index/Settings/AdminCenter/ReportTemplatePanel.tsx:17 +msgid "Page Size" +msgstr "Розмір сторінки" + +#: src/pages/Index/Settings/AdminCenter/ReportTemplatePanel.tsx:20 +msgid "Landscape" +msgstr "Горизонтальний" + +#: src/pages/Index/Settings/AdminCenter/ReportTemplatePanel.tsx:26 +msgid "Attach to Model" +msgstr "Приєднатись до моделі" + +#: src/pages/Index/Settings/AdminCenter/StocktakePanel.tsx:25 +msgid "Stocktake Reports" msgstr "" -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:53 -msgid "Background Worker Not Running" -msgstr "" - -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:54 +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:30 msgid "The background task manager service is not running. Contact your system administrator." -msgstr "" +msgstr "Служба фонового керування завданнями не працює. Зверніться до системного адміністратора." -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:60 -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:76 +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:35 +#~ msgid "Background Worker Not Running" +#~ msgstr "Background Worker Not Running" + +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:36 +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:45 msgid "Pending Tasks" msgstr "" -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:64 -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:84 +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:37 +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:53 msgid "Scheduled Tasks" msgstr "" -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:68 -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:92 +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:38 +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:61 msgid "Failed Tasks" msgstr "" @@ -3811,11 +4617,6 @@ msgstr "" #~ msgid "Reports" #~ msgstr "Reports" -#: src/pages/Index/Settings/AdminCenter/TemplateManagementPanel.tsx:89 -#: src/pages/build/BuildDetail.tsx:373 -#~ msgid "Report" -#~ msgstr "Report" - #: src/pages/Index/Settings/AdminCenter/TemplateManagementPanel.tsx:99 #~ msgid "Purchase order" #~ msgstr "Purchase order" @@ -3836,23 +4637,35 @@ msgstr "" #~ msgid "Stock location" #~ msgstr "Stock location" +#: src/pages/Index/Settings/AdminCenter/UnitManagmentPanel.tsx:21 +msgid "Alias" +msgstr "Псевдонім" + +#: src/pages/Index/Settings/AdminCenter/UnitManagmentPanel.tsx:22 +msgid "Dimensionless" +msgstr "Безрозмірний" + +#: src/pages/Index/Settings/AdminCenter/UnitManagmentPanel.tsx:66 +msgid "All units" +msgstr "Всі об'єкти" + #: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:32 msgid "Select settings relevant for user lifecycle. More available in" -msgstr "" +msgstr "Виберіть параметри, необхідні для життєвого циклу користувачів. Детальніше - доступні в" #: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:37 -msgid "System settings" -msgstr "" +#~ msgid "System settings" +#~ msgstr "System settings" -#: src/pages/Index/Settings/SystemSettings.tsx:67 +#: src/pages/Index/Settings/SystemSettings.tsx:66 msgid "Login" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:93 +#: src/pages/Index/Settings/SystemSettings.tsx:92 msgid "Barcodes" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:115 +#: src/pages/Index/Settings/SystemSettings.tsx:116 msgid "Pricing" msgstr "" @@ -3864,64 +4677,46 @@ msgstr "" #~ msgid "Exchange Rates" #~ msgstr "Exchange Rates" -#: src/pages/Index/Settings/SystemSettings.tsx:150 +#: src/pages/Index/Settings/SystemSettings.tsx:151 msgid "Labels" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:156 -#: src/pages/Index/Settings/UserSettings.tsx:132 +#: src/pages/Index/Settings/SystemSettings.tsx:157 +#: src/pages/Index/Settings/UserSettings.tsx:133 msgid "Reporting" msgstr "" #: src/pages/Index/Settings/SystemSettings.tsx:231 -#: src/pages/part/PartDetail.tsx:682 -msgid "Stocktake" -msgstr "" - -#: src/pages/Index/Settings/SystemSettings.tsx:237 -#: src/pages/build/BuildDetail.tsx:554 -#: src/pages/build/BuildIndex.tsx:22 -#: src/pages/part/PartDetail.tsx:616 -#: src/pages/sales/SalesOrderDetail.tsx:333 +#: src/pages/build/BuildIndex.tsx:27 +#: src/pages/part/PartDetail.tsx:636 +#: src/pages/sales/SalesOrderDetail.tsx:355 msgid "Build Orders" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:318 -msgid "Switch to User Setting" -msgstr "" +#: src/pages/Index/Settings/SystemSettings.tsx:317 +#~ msgid "Switch to User Setting" +#~ msgstr "Switch to User Setting" -#: src/pages/Index/Settings/UserSettings.tsx:34 +#: src/pages/Index/Settings/UserSettings.tsx:35 msgid "Account" msgstr "" -#: src/pages/Index/Settings/UserSettings.tsx:40 +#: src/pages/Index/Settings/UserSettings.tsx:41 msgid "Security" msgstr "" -#: src/pages/Index/Settings/UserSettings.tsx:78 +#: src/pages/Index/Settings/UserSettings.tsx:79 msgid "Display Options" msgstr "" -#: src/pages/Index/Settings/UserSettings.tsx:150 -msgid "Account Settings" -msgstr "" - -#: src/pages/Index/Settings/UserSettings.tsx:158 -msgid "Switch to System Setting" -msgstr "" - -#: src/pages/Index/UserSettings.tsx:103 -#~ msgid "User Settings" -#~ msgstr "User Settings" +#: src/pages/Index/Settings/UserSettings.tsx:159 +#~ msgid "Switch to System Setting" +#~ msgstr "Switch to System Setting" #: src/pages/Logged-In.tsx:24 #~ msgid "Found an exsisting login - using it to log you in." #~ msgstr "Found an exsisting login - using it to log you in." -#: src/pages/NotFound.tsx:17 -#~ msgid "Not Found" -#~ msgstr "Not Found" - #: src/pages/NotFound.tsx:20 #~ msgid "Sorry, this page is not known or was moved." #~ msgstr "Sorry, this page is not known or was moved." @@ -3942,104 +4737,86 @@ msgstr "" #~ msgid "Build Status" #~ msgstr "Build Status" -#: src/pages/build/BuildDetail.tsx:102 -#: src/pages/part/PartDetail.tsx:150 +#: src/pages/build/BuildDetail.tsx:97 +#: src/pages/company/ManufacturerPartDetail.tsx:81 +#: src/pages/company/SupplierPartDetail.tsx:91 +#: src/pages/part/PartDetail.tsx:171 +#: src/pages/stock/StockDetail.tsx:122 #: src/tables/bom/BomTable.tsx:118 #: src/tables/bom/UsedInTable.tsx:39 -#: src/tables/build/BuildLineTable.tsx:173 -#: src/tables/build/BuildOrderTable.tsx:55 -#: src/tables/sales/SalesOrderLineItemTable.tsx:62 -#: src/tables/stock/StockItemTable.tsx:53 +#: src/tables/build/BuildAllocatedStockTable.tsx:104 +#: src/tables/build/BuildLineTable.tsx:324 +#: src/tables/build/BuildOrderTable.tsx:64 +#: src/tables/sales/SalesOrderLineItemTable.tsx:70 +#: src/tables/stock/StockItemTable.tsx:54 msgid "IPN" msgstr "" -#: src/pages/build/BuildDetail.tsx:115 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:121 -#: src/pages/sales/ReturnOrderDetail.tsx:95 -#: src/pages/sales/SalesOrderDetail.tsx:101 -#: src/tables/ColumnRenderers.tsx:121 -#: src/tables/build/BuildAllocatedStockTable.tsx:90 -#: src/tables/build/BuildLineTable.tsx:184 +#: src/pages/build/BuildDetail.tsx:110 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:115 +#: src/pages/sales/ReturnOrderDetail.tsx:86 +#: src/pages/sales/SalesOrderDetail.tsx:95 +#: src/tables/ColumnRenderers.tsx:132 +#: src/tables/build/BuildAllocatedStockTable.tsx:111 +#: src/tables/build/BuildLineTable.tsx:335 msgid "Reference" msgstr "" -#: src/pages/build/BuildDetail.tsx:121 -#: src/pages/company/CompanyDetail.tsx:90 -#: src/pages/company/ManufacturerPartDetail.tsx:83 -#: src/pages/company/SupplierPartDetail.tsx:96 -#: src/pages/part/CategoryDetail.tsx:101 -#: src/pages/part/PartDetail.tsx:157 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:142 -#: src/pages/sales/ReturnOrderDetail.tsx:115 -#: src/pages/sales/SalesOrderDetail.tsx:121 -#: src/pages/stock/LocationDetail.tsx:109 -#: src/tables/ColumnRenderers.tsx:81 -#: src/tables/bom/UsedInTable.tsx:44 -#: src/tables/build/BuildAllocatedStockTable.tsx:70 -#: src/tables/build/BuildLineTable.tsx:178 -#: src/tables/machine/MachineTypeTable.tsx:69 -#: src/tables/machine/MachineTypeTable.tsx:112 -#: src/tables/machine/MachineTypeTable.tsx:219 -#: src/tables/machine/MachineTypeTable.tsx:323 -#: src/tables/part/RelatedPartTable.tsx:64 -#: src/tables/plugin/PluginListTable.tsx:129 -#: src/tables/plugin/PluginListTable.tsx:276 -#: src/tables/sales/SalesOrderAllocationTable.tsx:56 -#: src/tables/sales/SalesOrderLineItemTable.tsx:67 -#: src/tables/stock/LocationTypesTable.tsx:74 -msgid "Description" -msgstr "" - -#: src/pages/build/BuildDetail.tsx:129 +#: src/pages/build/BuildDetail.tsx:124 msgid "Parent Build" msgstr "" -#: src/pages/build/BuildDetail.tsx:140 +#: src/pages/build/BuildDetail.tsx:135 msgid "Build Quantity" msgstr "" -#: src/pages/build/BuildDetail.tsx:148 -#: src/pages/build/BuildDetail.tsx:274 +#: src/pages/build/BuildDetail.tsx:143 +#: src/pages/build/BuildDetail.tsx:277 msgid "Completed Outputs" msgstr "" -#: src/pages/build/BuildDetail.tsx:165 -#: src/tables/build/BuildOrderTable.tsx:151 +#: src/pages/build/BuildDetail.tsx:160 +#: src/tables/build/BuildOrderTable.tsx:142 msgid "Issued By" msgstr "" -#: src/pages/build/BuildDetail.tsx:172 -#: src/pages/part/PartDetail.tsx:365 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:220 -#: src/pages/sales/ReturnOrderDetail.tsx:199 -#: src/pages/sales/SalesOrderDetail.tsx:208 -#: src/tables/build/BuildOrderTable.tsx:157 -#: src/tables/purchasing/PurchaseOrderTable.tsx:75 -#: src/tables/sales/ReturnOrderTable.tsx:66 -#: src/tables/sales/SalesOrderTable.tsx:73 +#: src/pages/build/BuildDetail.tsx:167 +#: src/pages/part/PartDetail.tsx:406 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:244 +#: src/pages/sales/ReturnOrderDetail.tsx:216 +#: src/pages/sales/SalesOrderDetail.tsx:226 +#: src/tables/build/BuildOrderTable.tsx:148 +#: src/tables/purchasing/PurchaseOrderTable.tsx:76 +#: src/tables/sales/ReturnOrderTable.tsx:74 +#: src/tables/sales/SalesOrderTable.tsx:74 msgid "Responsible" msgstr "" -#: src/pages/build/BuildDetail.tsx:179 -#: src/tables/settings/PendingTasksTable.tsx:32 +#: src/pages/build/BuildDetail.tsx:174 +#: src/tables/settings/PendingTasksTable.tsx:36 msgid "Created" msgstr "" +#: src/pages/build/BuildDetail.tsx:181 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:229 +#: src/pages/sales/ReturnOrderDetail.tsx:201 +#: src/pages/sales/SalesOrderDetail.tsx:212 +#: src/tables/ColumnRenderers.tsx:226 +#: src/tables/part/PartPurchaseOrdersTable.tsx:100 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:135 +#: src/tables/sales/SalesOrderLineItemTable.tsx:107 +msgid "Target Date" +msgstr "" + #: src/pages/build/BuildDetail.tsx:185 #: src/pages/part/PartDetail.tsx:269 #: src/pages/stock/StockDetail.tsx:150 #~ msgid "View part barcode" #~ msgstr "View part barcode" -#: src/pages/build/BuildDetail.tsx:186 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:213 -#: src/pages/sales/ReturnOrderDetail.tsx:192 -#: src/pages/sales/SalesOrderDetail.tsx:201 -#: src/tables/ColumnRenderers.tsx:212 -#: src/tables/part/PartPurchaseOrdersTable.tsx:99 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:110 -#: src/tables/sales/SalesOrderLineItemTable.tsx:99 -msgid "Target Date" +#: src/pages/build/BuildDetail.tsx:188 +#: src/tables/sales/SalesOrderLineItemTable.tsx:281 +msgid "Completed" msgstr "" #: src/pages/build/BuildDetail.tsx:190 @@ -4047,10 +4824,6 @@ msgstr "" #~ msgid "Link custom barcode to part" #~ msgstr "Link custom barcode to part" -#: src/pages/build/BuildDetail.tsx:193 -msgid "Completed" -msgstr "" - #: src/pages/build/BuildDetail.tsx:196 #: src/pages/part/PartDetail.tsx:280 #~ msgid "Unlink custom barcode from part" @@ -4060,15 +4833,11 @@ msgstr "" #~ msgid "Build Order updated" #~ msgstr "Build Order updated" -#: src/pages/build/BuildDetail.tsx:205 -msgid "Source Location" -msgstr "" - -#: src/pages/build/BuildDetail.tsx:206 +#: src/pages/build/BuildDetail.tsx:209 msgid "Any location" msgstr "" -#: src/pages/build/BuildDetail.tsx:213 +#: src/pages/build/BuildDetail.tsx:216 msgid "Destination Location" msgstr "" @@ -4084,206 +4853,182 @@ msgstr "" #~ msgid "Delete build order" #~ msgstr "Delete build order" -#: src/pages/build/BuildDetail.tsx:251 +#: src/pages/build/BuildDetail.tsx:254 msgid "Build Details" msgstr "" -#: src/pages/build/BuildDetail.tsx:257 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:258 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:267 -#: src/pages/sales/ReturnOrderDetail.tsx:130 -#: src/pages/sales/ReturnOrderDetail.tsx:237 -#: src/pages/sales/ReturnOrderDetail.tsx:246 -#: src/pages/sales/SalesOrderDetail.tsx:272 -#: src/pages/sales/SalesOrderDetail.tsx:281 +#: src/pages/build/BuildDetail.tsx:260 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:282 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:291 +#: src/pages/sales/ReturnOrderDetail.tsx:122 +#: src/pages/sales/ReturnOrderDetail.tsx:254 +#: src/pages/sales/ReturnOrderDetail.tsx:263 +#: src/pages/sales/SalesOrderDetail.tsx:294 +#: src/pages/sales/SalesOrderDetail.tsx:303 msgid "Line Items" msgstr "" -#: src/pages/build/BuildDetail.tsx:267 +#: src/pages/build/BuildDetail.tsx:266 msgid "Incomplete Outputs" msgstr "" -#: src/pages/build/BuildDetail.tsx:289 -#: src/pages/sales/SalesOrderDetail.tsx:319 +#: src/pages/build/BuildDetail.tsx:292 +#: src/pages/sales/SalesOrderDetail.tsx:341 msgid "Allocated Stock" msgstr "" -#: src/pages/build/BuildDetail.tsx:299 +#: src/pages/build/BuildDetail.tsx:302 msgid "Consumed Stock" msgstr "" -#: src/pages/build/BuildDetail.tsx:313 +#: src/pages/build/BuildDetail.tsx:316 msgid "Child Build Orders" msgstr "" #: src/pages/build/BuildDetail.tsx:326 -#: src/tables/build/BuildOutputTable.tsx:384 -#: src/tables/stock/StockItemTestResultTable.tsx:150 +#: src/tables/build/BuildOutputTable.tsx:532 +#: src/tables/stock/StockItemTestResultTable.tsx:156 msgid "Test Results" msgstr "" #: src/pages/build/BuildDetail.tsx:337 -#: src/pages/part/PartDetail.tsx:699 +#: src/pages/part/PartDetail.tsx:740 msgid "Test Statistics" msgstr "" -#: src/pages/build/BuildDetail.tsx:351 -#: src/pages/company/CompanyDetail.tsx:259 -#: src/pages/company/ManufacturerPartDetail.tsx:179 -#: src/pages/part/PartDetail.tsx:721 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:309 -#: src/pages/sales/ReturnOrderDetail.tsx:274 -#: src/pages/sales/SalesOrderDetail.tsx:343 -#: src/pages/stock/StockDetail.tsx:385 -msgid "Attachments" -msgstr "" - -#: src/pages/build/BuildDetail.tsx:359 -#: src/pages/company/CompanyDetail.tsx:270 -#: src/pages/company/ManufacturerPartDetail.tsx:190 -#: src/pages/company/SupplierPartDetail.tsx:257 -#: src/pages/part/PartDetail.tsx:729 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:320 -#: src/pages/sales/ReturnOrderDetail.tsx:285 -#: src/pages/sales/SalesOrderDetail.tsx:354 -#: src/pages/stock/StockDetail.tsx:396 -#: src/tables/build/BuildOrderTestTable.tsx:142 -#: src/tables/stock/StockTrackingTable.tsx:189 -msgid "Notes" +#: src/pages/build/BuildDetail.tsx:365 +msgid "Edit Build Order" msgstr "" #: src/pages/build/BuildDetail.tsx:368 #~ msgid "Reporting Actions" #~ msgstr "Reporting Actions" +#: src/pages/build/BuildDetail.tsx:372 +#: src/tables/build/BuildOrderTable.tsx:173 +#: src/tables/build/BuildOrderTable.tsx:188 +msgid "Add Build Order" +msgstr "" + #: src/pages/build/BuildDetail.tsx:374 #~ msgid "Print build report" #~ msgstr "Print build report" -#: src/pages/build/BuildDetail.tsx:377 -msgid "Edit Build Order" -msgstr "" - -#: src/pages/build/BuildDetail.tsx:384 -#: src/tables/build/BuildOrderTable.tsx:172 -#: src/tables/build/BuildOrderTable.tsx:187 -msgid "Add Build Order" -msgstr "" - -#: src/pages/build/BuildDetail.tsx:398 +#: src/pages/build/BuildDetail.tsx:386 msgid "Cancel Build Order" msgstr "" -#: src/pages/build/BuildDetail.tsx:400 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:348 -#: src/pages/sales/SalesOrderDetail.tsx:380 +#: src/pages/build/BuildDetail.tsx:388 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:357 +#: src/pages/sales/ReturnOrderDetail.tsx:354 +#: src/pages/sales/SalesOrderDetail.tsx:387 msgid "Order cancelled" msgstr "" -#: src/pages/build/BuildDetail.tsx:401 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:347 -#: src/pages/sales/ReturnOrderDetail.tsx:346 -#: src/pages/sales/SalesOrderDetail.tsx:379 +#: src/pages/build/BuildDetail.tsx:389 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:356 +#: src/pages/sales/ReturnOrderDetail.tsx:353 +#: src/pages/sales/SalesOrderDetail.tsx:386 msgid "Cancel this order" msgstr "" -#: src/pages/build/BuildDetail.tsx:410 +#: src/pages/build/BuildDetail.tsx:398 msgid "Hold Build Order" msgstr "" -#: src/pages/build/BuildDetail.tsx:412 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:355 -#: src/pages/sales/ReturnOrderDetail.tsx:354 -#: src/pages/sales/SalesOrderDetail.tsx:387 +#: src/pages/build/BuildDetail.tsx:400 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:364 +#: src/pages/sales/ReturnOrderDetail.tsx:361 +#: src/pages/sales/SalesOrderDetail.tsx:394 msgid "Place this order on hold" msgstr "" -#: src/pages/build/BuildDetail.tsx:413 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:356 -#: src/pages/sales/ReturnOrderDetail.tsx:355 -#: src/pages/sales/SalesOrderDetail.tsx:388 +#: src/pages/build/BuildDetail.tsx:401 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:365 +#: src/pages/sales/ReturnOrderDetail.tsx:362 +#: src/pages/sales/SalesOrderDetail.tsx:395 msgid "Order placed on hold" msgstr "" -#: src/pages/build/BuildDetail.tsx:418 +#: src/pages/build/BuildDetail.tsx:406 msgid "Issue Build Order" msgstr "" -#: src/pages/build/BuildDetail.tsx:420 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:339 -#: src/pages/sales/ReturnOrderDetail.tsx:338 -#: src/pages/sales/SalesOrderDetail.tsx:371 +#: src/pages/build/BuildDetail.tsx:408 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:348 +#: src/pages/sales/ReturnOrderDetail.tsx:345 +#: src/pages/sales/SalesOrderDetail.tsx:378 msgid "Issue this order" msgstr "" -#: src/pages/build/BuildDetail.tsx:421 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:340 -#: src/pages/sales/ReturnOrderDetail.tsx:339 -#: src/pages/sales/SalesOrderDetail.tsx:372 +#: src/pages/build/BuildDetail.tsx:409 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:349 +#: src/pages/sales/ReturnOrderDetail.tsx:346 +#: src/pages/sales/SalesOrderDetail.tsx:379 msgid "Order issued" msgstr "" -#: src/pages/build/BuildDetail.tsx:426 +#: src/pages/build/BuildDetail.tsx:414 msgid "Complete Build Order" msgstr "" -#: src/pages/build/BuildDetail.tsx:428 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:368 -#: src/pages/sales/ReturnOrderDetail.tsx:362 -#: src/pages/sales/SalesOrderDetail.tsx:395 +#: src/pages/build/BuildDetail.tsx:416 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:377 +#: src/pages/sales/ReturnOrderDetail.tsx:369 +#: src/pages/sales/SalesOrderDetail.tsx:402 msgid "Mark this order as complete" msgstr "" -#: src/pages/build/BuildDetail.tsx:429 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:362 -#: src/pages/sales/ReturnOrderDetail.tsx:363 -#: src/pages/sales/SalesOrderDetail.tsx:396 +#: src/pages/build/BuildDetail.tsx:417 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:371 +#: src/pages/sales/ReturnOrderDetail.tsx:370 +#: src/pages/sales/SalesOrderDetail.tsx:403 msgid "Order completed" msgstr "" -#: src/pages/build/BuildDetail.tsx:460 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:391 -#: src/pages/sales/ReturnOrderDetail.tsx:392 -#: src/pages/sales/SalesOrderDetail.tsx:425 +#: src/pages/build/BuildDetail.tsx:448 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:400 +#: src/pages/sales/ReturnOrderDetail.tsx:399 +#: src/pages/sales/SalesOrderDetail.tsx:432 msgid "Issue Order" msgstr "" -#: src/pages/build/BuildDetail.tsx:467 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:398 -#: src/pages/sales/ReturnOrderDetail.tsx:399 -#: src/pages/sales/SalesOrderDetail.tsx:439 +#: src/pages/build/BuildDetail.tsx:455 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:407 +#: src/pages/sales/ReturnOrderDetail.tsx:406 +#: src/pages/sales/SalesOrderDetail.tsx:446 msgid "Complete Order" msgstr "" -#: src/pages/build/BuildDetail.tsx:496 +#: src/pages/build/BuildDetail.tsx:473 msgid "Build Order Actions" msgstr "" -#: src/pages/build/BuildDetail.tsx:502 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:432 -#: src/pages/sales/ReturnOrderDetail.tsx:433 -#: src/pages/sales/SalesOrderDetail.tsx:474 +#: src/pages/build/BuildDetail.tsx:478 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:429 +#: src/pages/sales/ReturnOrderDetail.tsx:428 +#: src/pages/sales/SalesOrderDetail.tsx:469 msgid "Edit order" msgstr "" -#: src/pages/build/BuildDetail.tsx:506 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:440 -#: src/pages/sales/ReturnOrderDetail.tsx:439 -#: src/pages/sales/SalesOrderDetail.tsx:479 +#: src/pages/build/BuildDetail.tsx:482 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:437 +#: src/pages/sales/ReturnOrderDetail.tsx:434 +#: src/pages/sales/SalesOrderDetail.tsx:474 msgid "Duplicate order" msgstr "" -#: src/pages/build/BuildDetail.tsx:510 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:443 -#: src/pages/sales/ReturnOrderDetail.tsx:444 -#: src/pages/sales/SalesOrderDetail.tsx:482 +#: src/pages/build/BuildDetail.tsx:486 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:440 +#: src/pages/sales/ReturnOrderDetail.tsx:439 +#: src/pages/sales/SalesOrderDetail.tsx:477 msgid "Hold order" msgstr "" -#: src/pages/build/BuildDetail.tsx:515 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:448 -#: src/pages/sales/ReturnOrderDetail.tsx:449 -#: src/pages/sales/SalesOrderDetail.tsx:487 +#: src/pages/build/BuildDetail.tsx:491 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:445 +#: src/pages/sales/ReturnOrderDetail.tsx:444 +#: src/pages/sales/SalesOrderDetail.tsx:482 msgid "Cancel order" msgstr "" @@ -4295,56 +5040,60 @@ msgstr "" #~ msgid "New Build Order" #~ msgstr "New Build Order" -#: src/pages/company/CompanyDetail.tsx:104 +#: src/pages/company/CompanyDetail.tsx:95 +msgid "Website" +msgstr "" + +#: src/pages/company/CompanyDetail.tsx:103 msgid "Phone Number" msgstr "" -#: src/pages/company/CompanyDetail.tsx:111 +#: src/pages/company/CompanyDetail.tsx:110 msgid "Email Address" msgstr "" -#: src/pages/company/CompanyDetail.tsx:121 +#: src/pages/company/CompanyDetail.tsx:120 msgid "Default Currency" msgstr "" -#: src/pages/company/CompanyDetail.tsx:126 +#: src/pages/company/CompanyDetail.tsx:125 #: src/pages/company/SupplierDetail.tsx:8 -#: src/pages/company/SupplierPartDetail.tsx:120 -#: src/pages/company/SupplierPartDetail.tsx:206 -#: src/pages/company/SupplierPartDetail.tsx:351 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:136 -#: src/tables/company/CompanyTable.tsx:100 +#: src/pages/company/SupplierPartDetail.tsx:125 +#: src/pages/company/SupplierPartDetail.tsx:218 +#: src/pages/company/SupplierPartDetail.tsx:340 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:130 +#: src/tables/company/CompanyTable.tsx:101 #: src/tables/part/PartPurchaseOrdersTable.tsx:42 -#: src/tables/purchasing/PurchaseOrderTable.tsx:88 +#: src/tables/purchasing/PurchaseOrderTable.tsx:89 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:36 msgid "Supplier" msgstr "" -#: src/pages/company/CompanyDetail.tsx:132 +#: src/pages/company/CompanyDetail.tsx:131 #: src/pages/company/ManufacturerDetail.tsx:8 -#: src/pages/company/ManufacturerPartDetail.tsx:101 -#: src/pages/company/ManufacturerPartDetail.tsx:267 -#: src/pages/company/SupplierPartDetail.tsx:135 -#: src/tables/company/CompanyTable.tsx:105 +#: src/pages/company/ManufacturerPartDetail.tsx:100 +#: src/pages/company/ManufacturerPartDetail.tsx:262 +#: src/pages/company/SupplierPartDetail.tsx:147 +#: src/tables/company/CompanyTable.tsx:106 msgid "Manufacturer" msgstr "" -#: src/pages/company/CompanyDetail.tsx:138 +#: src/pages/company/CompanyDetail.tsx:137 #: src/pages/company/CustomerDetail.tsx:8 -#: src/pages/part/pricing/SaleHistoryPanel.tsx:29 -#: src/pages/sales/ReturnOrderDetail.tsx:109 -#: src/pages/sales/SalesOrderDetail.tsx:115 -#: src/pages/stock/StockDetail.tsx:230 -#: src/tables/company/CompanyTable.tsx:110 -#: src/tables/sales/ReturnOrderTable.tsx:78 -#: src/tables/sales/SalesOrderTable.tsx:108 -#: src/tables/stock/StockTrackingTable.tsx:140 +#: src/pages/part/pricing/SaleHistoryPanel.tsx:31 +#: src/pages/sales/ReturnOrderDetail.tsx:101 +#: src/pages/sales/SalesOrderDetail.tsx:110 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:100 +#: src/pages/stock/StockDetail.tsx:271 +#: src/tables/company/CompanyTable.tsx:111 +#: src/tables/sales/ReturnOrderTable.tsx:97 +#: src/tables/sales/SalesOrderTable.tsx:121 +#: src/tables/stock/StockTrackingTable.tsx:144 msgid "Customer" msgstr "" #: src/pages/company/CompanyDetail.tsx:172 -#: src/tables/stock/StockTrackingTable.tsx:183 -msgid "Details" +msgid "Company Details" msgstr "" #: src/pages/company/CompanyDetail.tsx:175 @@ -4363,140 +5112,150 @@ msgstr "" #~ msgid "Delete company" #~ msgstr "Delete company" -#: src/pages/company/CompanyDetail.tsx:232 +#: src/pages/company/CompanyDetail.tsx:234 msgid "Assigned Stock" msgstr "" -#: src/pages/company/CompanyDetail.tsx:290 -#: src/tables/company/CompanyTable.tsx:86 +#: src/pages/company/CompanyDetail.tsx:273 +#: src/tables/company/CompanyTable.tsx:87 msgid "Edit Company" msgstr "" -#: src/pages/company/CompanyDetail.tsx:298 +#: src/pages/company/CompanyDetail.tsx:281 msgid "Delete Company" msgstr "" -#: src/pages/company/CompanyDetail.tsx:306 +#: src/pages/company/CompanyDetail.tsx:289 msgid "Company Actions" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:76 -#: src/pages/company/SupplierPartDetail.tsx:89 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:128 +#: src/pages/company/ManufacturerPartDetail.tsx:74 +#: src/pages/company/SupplierPartDetail.tsx:84 msgid "Internal Part" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:91 -#: src/pages/company/SupplierPartDetail.tsx:103 -msgid "External Link" -msgstr "" - -#: src/pages/company/ManufacturerPartDetail.tsx:109 -#: src/pages/company/SupplierPartDetail.tsx:144 -#: src/tables/purchasing/ManufacturerPartTable.tsx:56 +#: src/pages/company/ManufacturerPartDetail.tsx:108 +#: src/pages/company/SupplierPartDetail.tsx:156 +#: src/tables/purchasing/ManufacturerPartTable.tsx:58 msgid "Manufacturer Part Number" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:138 +#: src/pages/company/ManufacturerPartDetail.tsx:125 +#: src/pages/company/SupplierPartDetail.tsx:108 +msgid "External Link" +msgstr "" + +#: src/pages/company/ManufacturerPartDetail.tsx:146 +#: src/pages/company/SupplierPartDetail.tsx:215 +#: src/pages/part/PartDetail.tsx:576 +msgid "Part Details" +msgstr "" + +#: src/pages/company/ManufacturerPartDetail.tsx:149 msgid "Manufacturer Details" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:147 +#: src/pages/company/ManufacturerPartDetail.tsx:158 msgid "Manufacturer Part Details" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:153 -#: src/pages/part/PartDetail.tsx:532 +#: src/pages/company/ManufacturerPartDetail.tsx:164 +#: src/pages/part/PartDetail.tsx:582 msgid "Parameters" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:165 -#: src/pages/part/PartDetail.tsx:649 +#: src/pages/company/ManufacturerPartDetail.tsx:176 +#: src/pages/part/PartDetail.tsx:669 #: src/pages/purchasing/PurchasingIndex.tsx:31 msgid "Suppliers" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:208 -#: src/tables/purchasing/ManufacturerPartTable.tsx:84 +#: src/pages/company/ManufacturerPartDetail.tsx:204 +#: src/tables/purchasing/ManufacturerPartTable.tsx:86 msgid "Edit Manufacturer Part" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:215 -#: src/tables/purchasing/ManufacturerPartTable.tsx:72 -#: src/tables/purchasing/ManufacturerPartTable.tsx:103 +#: src/pages/company/ManufacturerPartDetail.tsx:211 +#: src/tables/purchasing/ManufacturerPartTable.tsx:74 +#: src/tables/purchasing/ManufacturerPartTable.tsx:106 msgid "Add Manufacturer Part" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:227 -#: src/tables/purchasing/ManufacturerPartTable.tsx:92 +#: src/pages/company/ManufacturerPartDetail.tsx:223 +#: src/tables/purchasing/ManufacturerPartTable.tsx:94 msgid "Delete Manufacturer Part" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:240 +#: src/pages/company/ManufacturerPartDetail.tsx:236 msgid "Manufacturer Part Actions" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:281 +#: src/pages/company/ManufacturerPartDetail.tsx:276 msgid "ManufacturerPart" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:163 -#: src/tables/part/PartPurchaseOrdersTable.tsx:71 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:156 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:197 -#: src/tables/purchasing/SupplierPartTable.tsx:131 +#: src/pages/company/SupplierPartDetail.tsx:99 +msgid "Part Description" +msgstr "" + +#: src/pages/company/SupplierPartDetail.tsx:175 +#: src/tables/part/PartPurchaseOrdersTable.tsx:72 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:162 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:203 +#: src/tables/purchasing/SupplierPartTable.tsx:133 msgid "Pack Quantity" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:174 +#: src/pages/company/SupplierPartDetail.tsx:186 msgid "Supplier Availability" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:181 +#: src/pages/company/SupplierPartDetail.tsx:193 msgid "Availability Updated" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:208 +#: src/pages/company/SupplierPartDetail.tsx:220 msgid "Availability" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:217 +#: src/pages/company/SupplierPartDetail.tsx:229 msgid "Supplier Part Details" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:223 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:296 +#: src/pages/company/SupplierPartDetail.tsx:235 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:320 msgid "Received Stock" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:247 -#: src/pages/part/PartPricingPanel.tsx:111 -#: src/pages/part/pricing/PricingOverviewPanel.tsx:121 +#: src/pages/company/SupplierPartDetail.tsx:259 +#: src/pages/part/PartPricingPanel.tsx:116 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:195 msgid "Supplier Pricing" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:294 +#: src/pages/company/SupplierPartDetail.tsx:284 msgid "Supplier Part Actions" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:319 -#: src/tables/purchasing/SupplierPartTable.tsx:210 +#: src/pages/company/SupplierPartDetail.tsx:308 +#: src/tables/purchasing/SupplierPartTable.tsx:213 msgid "Edit Supplier Part" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:327 -#: src/tables/purchasing/SupplierPartTable.tsx:218 +#: src/pages/company/SupplierPartDetail.tsx:316 +#: src/tables/purchasing/SupplierPartTable.tsx:221 msgid "Delete Supplier Part" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:335 -#: src/tables/purchasing/SupplierPartTable.tsx:163 +#: src/pages/company/SupplierPartDetail.tsx:324 +#: src/tables/purchasing/SupplierPartTable.tsx:165 msgid "Add Supplier Part" msgstr "" #: src/pages/part/CategoryDetail.tsx:93 -#: src/pages/stock/LocationDetail.tsx:101 -#: src/tables/settings/ErrorTable.tsx:36 +#: src/pages/stock/LocationDetail.tsx:95 +#: src/tables/settings/ErrorTable.tsx:63 +#: src/tables/settings/ErrorTable.tsx:108 msgid "Path" msgstr "" @@ -4504,357 +5263,357 @@ msgstr "" msgid "Parent Category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:126 +#: src/pages/part/CategoryDetail.tsx:132 msgid "Subcategories" msgstr "" -#: src/pages/part/CategoryDetail.tsx:133 -#: src/pages/stock/LocationDetail.tsx:141 -#: src/tables/part/PartCategoryTable.tsx:73 +#: src/pages/part/CategoryDetail.tsx:139 +#: src/pages/stock/LocationDetail.tsx:135 +#: src/tables/part/PartCategoryTable.tsx:85 #: src/tables/stock/StockLocationTable.tsx:49 msgid "Structural" msgstr "" -#: src/pages/part/CategoryDetail.tsx:139 +#: src/pages/part/CategoryDetail.tsx:145 msgid "Parent default location" msgstr "" -#: src/pages/part/CategoryDetail.tsx:146 +#: src/pages/part/CategoryDetail.tsx:152 msgid "Default location" msgstr "" -#: src/pages/part/CategoryDetail.tsx:157 +#: src/pages/part/CategoryDetail.tsx:163 msgid "Top level part category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:167 -#: src/pages/part/CategoryDetail.tsx:221 -#: src/tables/part/PartCategoryTable.tsx:102 +#: src/pages/part/CategoryDetail.tsx:173 +#: src/pages/part/CategoryDetail.tsx:226 +#: src/tables/part/PartCategoryTable.tsx:118 msgid "Edit Part Category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:180 -#: src/pages/stock/LocationDetail.tsx:233 +#: src/pages/part/CategoryDetail.tsx:186 +#: src/pages/stock/LocationDetail.tsx:227 msgid "Delete items" msgstr "" -#: src/pages/part/CategoryDetail.tsx:188 -#: src/pages/part/CategoryDetail.tsx:226 +#: src/pages/part/CategoryDetail.tsx:194 +#: src/pages/part/CategoryDetail.tsx:231 msgid "Delete Part Category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:191 +#: src/pages/part/CategoryDetail.tsx:197 msgid "Parts Action" msgstr "" -#: src/pages/part/CategoryDetail.tsx:192 +#: src/pages/part/CategoryDetail.tsx:198 msgid "Action for parts in this category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:197 +#: src/pages/part/CategoryDetail.tsx:203 msgid "Child Categories Action" msgstr "" -#: src/pages/part/CategoryDetail.tsx:198 +#: src/pages/part/CategoryDetail.tsx:204 msgid "Action for child categories in this category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:216 +#: src/pages/part/CategoryDetail.tsx:222 msgid "Category Actions" msgstr "" -#: src/pages/part/CategoryDetail.tsx:238 +#: src/pages/part/CategoryDetail.tsx:243 msgid "Category Details" msgstr "" -#: src/pages/part/PartDetail.tsx:163 -msgid "Variant of" +#: src/pages/part/PartAllocationPanel.tsx:23 +#: src/pages/stock/StockDetail.tsx:443 +#: src/tables/part/PartTable.tsx:99 +msgid "Build Order Allocations" msgstr "" -#: src/pages/part/PartDetail.tsx:170 -msgid "Revision of" -msgstr "" - -#: src/pages/part/PartDetail.tsx:177 -#: src/tables/stock/StockItemTable.tsx:58 -msgid "Revision" +#: src/pages/part/PartAllocationPanel.tsx:40 +#: src/pages/stock/StockDetail.tsx:458 +#: src/tables/part/PartTable.tsx:108 +msgid "Sales Order Allocations" msgstr "" #: src/pages/part/PartDetail.tsx:184 +msgid "Variant of" +msgstr "" + +#: src/pages/part/PartDetail.tsx:191 +msgid "Revision of" +msgstr "" + +#: src/pages/part/PartDetail.tsx:198 +#: src/tables/stock/StockItemTable.tsx:59 +msgid "Revision" +msgstr "" + +#: src/pages/part/PartDetail.tsx:205 #: src/tables/notifications/NotificationsTable.tsx:31 #: src/tables/part/PartCategoryTemplateTable.tsx:67 msgid "Category" msgstr "" -#: src/pages/part/PartDetail.tsx:190 +#: src/pages/part/PartDetail.tsx:211 msgid "Default Location" msgstr "" -#: src/pages/part/PartDetail.tsx:197 +#: src/pages/part/PartDetail.tsx:218 msgid "Category Default Location" msgstr "" -#: src/pages/part/PartDetail.tsx:204 +#: src/pages/part/PartDetail.tsx:225 #: src/tables/purchasing/ManufacturerPartParameterTable.tsx:44 msgid "Units" msgstr "" -#: src/pages/part/PartDetail.tsx:211 -#: src/tables/settings/PendingTasksTable.tsx:42 +#: src/pages/part/PartDetail.tsx:232 +#: src/tables/settings/PendingTasksTable.tsx:46 msgid "Keywords" msgstr "" -#: src/pages/part/PartDetail.tsx:218 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:186 -#: src/pages/sales/ReturnOrderDetail.tsx:165 -#: src/pages/sales/SalesOrderDetail.tsx:174 -msgid "Link" -msgstr "" - -#: src/pages/part/PartDetail.tsx:236 +#: src/pages/part/PartDetail.tsx:257 #: src/tables/bom/BomTable.tsx:320 -#: src/tables/build/BuildLineTable.tsx:155 +#: src/tables/build/BuildLineTable.tsx:286 #: src/tables/part/PartTable.tsx:288 -#: src/tables/sales/SalesOrderLineItemTable.tsx:103 +#: src/tables/sales/SalesOrderLineItemTable.tsx:111 msgid "Available Stock" msgstr "" -#: src/pages/part/PartDetail.tsx:243 +#: src/pages/part/PartDetail.tsx:264 msgid "Variant Stock" msgstr "" -#: src/pages/part/PartDetail.tsx:251 +#: src/pages/part/PartDetail.tsx:272 msgid "Minimum Stock" msgstr "" -#: src/pages/part/PartDetail.tsx:257 +#: src/pages/part/PartDetail.tsx:278 #: src/tables/bom/BomTable.tsx:237 -#: src/tables/build/BuildLineTable.tsx:117 -#: src/tables/sales/SalesOrderLineItemTable.tsx:141 +#: src/tables/build/BuildLineTable.tsx:248 +#: src/tables/sales/SalesOrderLineItemTable.tsx:149 msgid "On order" msgstr "" -#: src/pages/part/PartDetail.tsx:266 +#: src/pages/part/PartDetail.tsx:285 +msgid "Required for Orders" +msgstr "" + +#: src/pages/part/PartDetail.tsx:294 msgid "Allocated to Build Orders" msgstr "" -#: src/pages/part/PartDetail.tsx:274 +#: src/pages/part/PartDetail.tsx:305 msgid "Allocated to Sales Orders" msgstr "" -#: src/pages/part/PartDetail.tsx:281 -#: src/tables/bom/BomTable.tsx:261 -#: src/tables/bom/BomTable.tsx:293 -msgid "Can Build" -msgstr "" - -#: src/pages/part/PartDetail.tsx:288 -#: src/tables/bom/BomTable.tsx:245 -#: src/tables/part/PartTable.tsx:92 -msgid "Building" -msgstr "" - -#: src/pages/part/PartDetail.tsx:302 -#: src/pages/part/PartDetail.tsx:873 -#: src/tables/part/ParametricPartTable.tsx:228 -#: src/tables/part/PartTable.tsx:184 -msgid "Locked" -msgstr "" - -#: src/pages/part/PartDetail.tsx:308 -msgid "Template Part" -msgstr "" - #: src/pages/part/PartDetail.tsx:310 #~ msgid "Edit part" #~ msgstr "Edit part" -#: src/pages/part/PartDetail.tsx:313 -#: src/tables/bom/BomTable.tsx:315 -msgid "Assembled Part" +#: src/pages/part/PartDetail.tsx:315 +#: src/tables/bom/BomTable.tsx:261 +#: src/tables/bom/BomTable.tsx:293 +msgid "Can Build" msgstr "" -#: src/pages/part/PartDetail.tsx:318 -msgid "Component Part" +#: src/pages/part/PartDetail.tsx:322 +#: src/pages/part/PartDetail.tsx:905 +#: src/pages/stock/StockDetail.tsx:766 +#: src/tables/build/BuildOrderTestTable.tsx:220 +#: src/tables/stock/StockItemTable.tsx:334 +msgid "In Production" msgstr "" #: src/pages/part/PartDetail.tsx:322 #~ msgid "Duplicate part" #~ msgstr "Duplicate part" -#: src/pages/part/PartDetail.tsx:323 -#: src/tables/bom/BomTable.tsx:305 -msgid "Testable Part" -msgstr "" - #: src/pages/part/PartDetail.tsx:327 #~ msgid "Delete part" #~ msgstr "Delete part" -#: src/pages/part/PartDetail.tsx:329 +#: src/pages/part/PartDetail.tsx:336 +#: src/tables/part/ParametricPartTable.tsx:228 +#: src/tables/part/PartTable.tsx:184 +msgid "Locked" +msgstr "" + +#: src/pages/part/PartDetail.tsx:342 +msgid "Template Part" +msgstr "" + +#: src/pages/part/PartDetail.tsx:347 +#: src/tables/bom/BomTable.tsx:315 +msgid "Assembled Part" +msgstr "" + +#: src/pages/part/PartDetail.tsx:352 +msgid "Component Part" +msgstr "" + +#: src/pages/part/PartDetail.tsx:357 +#: src/tables/bom/BomTable.tsx:305 +msgid "Testable Part" +msgstr "" + +#: src/pages/part/PartDetail.tsx:363 #: src/tables/bom/BomTable.tsx:310 msgid "Trackable Part" msgstr "" -#: src/pages/part/PartDetail.tsx:334 +#: src/pages/part/PartDetail.tsx:368 msgid "Purchaseable Part" msgstr "" -#: src/pages/part/PartDetail.tsx:339 +#: src/pages/part/PartDetail.tsx:374 msgid "Saleable Part" msgstr "" -#: src/pages/part/PartDetail.tsx:344 +#: src/pages/part/PartDetail.tsx:379 msgid "Virtual Part" msgstr "" -#: src/pages/part/PartDetail.tsx:352 -#: src/tables/ColumnRenderers.tsx:220 +#: src/pages/part/PartDetail.tsx:393 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:215 +#: src/pages/sales/ReturnOrderDetail.tsx:185 +#: src/pages/sales/SalesOrderDetail.tsx:197 +#: src/tables/ColumnRenderers.tsx:234 msgid "Creation Date" msgstr "" -#: src/pages/part/PartDetail.tsx:357 +#: src/pages/part/PartDetail.tsx:398 msgid "Created By" msgstr "" -#: src/pages/part/PartDetail.tsx:372 +#: src/pages/part/PartDetail.tsx:413 msgid "Default Supplier" msgstr "" -#: src/pages/part/PartDetail.tsx:383 -#: src/pages/part/pricing/BomPricingPanel.tsx:79 +#: src/pages/part/PartDetail.tsx:424 +#: src/pages/part/pricing/BomPricingPanel.tsx:113 #: src/pages/part/pricing/VariantPricingPanel.tsx:95 #: src/tables/part/PartTable.tsx:161 msgid "Price Range" msgstr "" -#: src/pages/part/PartDetail.tsx:423 -#: src/pages/stock/StockDetail.tsx:135 +#: src/pages/part/PartDetail.tsx:462 +msgid "Latest Serial Number" +msgstr "" + +#: src/pages/part/PartDetail.tsx:472 +#: src/pages/stock/StockDetail.tsx:151 msgid "Last Stocktake" msgstr "" -#: src/pages/part/PartDetail.tsx:462 +#: src/pages/part/PartDetail.tsx:511 msgid "Stocktake By" msgstr "" -#: src/pages/part/PartDetail.tsx:526 -msgid "Part Details" -msgstr "" - -#: src/pages/part/PartDetail.tsx:557 +#: src/pages/part/PartDetail.tsx:611 msgid "Variants" msgstr "" -#: src/pages/part/PartDetail.tsx:564 -#: src/pages/stock/StockDetail.tsx:307 +#: src/pages/part/PartDetail.tsx:618 +#: src/pages/stock/StockDetail.tsx:430 msgid "Allocations" msgstr "" -#: src/pages/part/PartDetail.tsx:575 -#: src/pages/stock/StockDetail.tsx:318 -#: src/tables/part/PartTable.tsx:99 -msgid "Build Order Allocations" -msgstr "" - -#: src/pages/part/PartDetail.tsx:590 -#: src/pages/stock/StockDetail.tsx:333 -#: src/tables/part/PartTable.tsx:108 -msgid "Sales Order Allocations" -msgstr "" - -#: src/pages/part/PartDetail.tsx:607 +#: src/pages/part/PartDetail.tsx:625 msgid "Bill of Materials" msgstr "" -#: src/pages/part/PartDetail.tsx:623 +#: src/pages/part/PartDetail.tsx:643 msgid "Used In" msgstr "" -#: src/pages/part/PartDetail.tsx:630 +#: src/pages/part/PartDetail.tsx:650 msgid "Part Pricing" msgstr "" -#: src/pages/part/PartDetail.tsx:636 +#: src/pages/part/PartDetail.tsx:656 #: src/pages/purchasing/PurchasingIndex.tsx:42 msgid "Manufacturers" msgstr "" -#: src/pages/part/PartDetail.tsx:676 +#: src/pages/part/PartDetail.tsx:722 msgid "Scheduling" msgstr "" -#: src/pages/part/PartDetail.tsx:688 +#: src/pages/part/PartDetail.tsx:729 msgid "Test Templates" msgstr "" -#: src/pages/part/PartDetail.tsx:715 +#: src/pages/part/PartDetail.tsx:756 msgid "Related Parts" msgstr "" -#: src/pages/part/PartDetail.tsx:849 -#: src/pages/stock/StockDetail.tsx:156 -#: src/pages/stock/StockDetail.tsx:593 -#: src/tables/build/BuildLineTable.tsx:48 +#: src/pages/part/PartDetail.tsx:881 +#: src/pages/stock/StockDetail.tsx:172 +#: src/pages/stock/StockDetail.tsx:783 +#: src/tables/build/BuildLineTable.tsx:179 #: src/tables/part/PartTable.tsx:117 -#: src/tables/stock/StockItemTable.tsx:177 -#: src/tables/stock/StockItemTable.tsx:310 +#: src/tables/stock/StockItemTable.tsx:166 +#: src/tables/stock/StockItemTable.tsx:314 msgid "Available" msgstr "" -#: src/pages/part/PartDetail.tsx:855 +#: src/pages/part/PartDetail.tsx:887 msgid "No Stock" msgstr "" -#: src/pages/part/PartDetail.tsx:861 +#: src/pages/part/PartDetail.tsx:893 +#: src/tables/part/PartTestTemplateTable.tsx:106 +#: src/tables/stock/StockItemTestResultTable.tsx:383 +msgid "Required" +msgstr "" + +#: src/pages/part/PartDetail.tsx:899 #: src/tables/bom/BomTable.tsx:325 #: src/tables/part/PartTable.tsx:86 msgid "On Order" msgstr "" -#: src/pages/part/PartDetail.tsx:867 -#: src/pages/stock/StockDetail.tsx:576 -#: src/tables/build/BuildOrderTestTable.tsx:219 -#: src/tables/stock/StockItemTable.tsx:330 -msgid "In Production" -msgstr "" - -#: src/pages/part/PartDetail.tsx:892 +#: src/pages/part/PartDetail.tsx:924 msgid "Edit Part" msgstr "" -#: src/pages/part/PartDetail.tsx:927 +#: src/pages/part/PartDetail.tsx:959 #: src/tables/part/PartTable.tsx:331 -#: src/tables/part/PartTable.tsx:342 +#: src/tables/part/PartTable.tsx:343 msgid "Add Part" msgstr "" -#: src/pages/part/PartDetail.tsx:941 +#: src/pages/part/PartDetail.tsx:973 msgid "Delete Part" msgstr "" -#: src/pages/part/PartDetail.tsx:950 +#: src/pages/part/PartDetail.tsx:982 msgid "Deleting this part cannot be reversed" msgstr "" -#: src/pages/part/PartDetail.tsx:999 -#: src/pages/stock/LocationDetail.tsx:324 -#: src/tables/stock/StockItemTable.tsx:444 +#: src/pages/part/PartDetail.tsx:1021 +#: src/pages/stock/LocationDetail.tsx:310 +#: src/tables/stock/StockItemTable.tsx:449 msgid "Stock Actions" msgstr "" -#: src/pages/part/PartDetail.tsx:1007 +#: src/pages/part/PartDetail.tsx:1029 msgid "Count part stock" msgstr "" -#: src/pages/part/PartDetail.tsx:1018 +#: src/pages/part/PartDetail.tsx:1040 msgid "Transfer part stock" msgstr "" -#: src/pages/part/PartDetail.tsx:1027 +#: src/pages/part/PartDetail.tsx:1049 msgid "Part Actions" msgstr "" -#: src/pages/part/PartDetail.tsx:1087 +#: src/pages/part/PartDetail.tsx:1113 msgid "Select Part Revision" msgstr "" @@ -4862,113 +5621,214 @@ msgstr "" #~ msgid "Categories" #~ msgstr "Categories" -#: src/pages/part/PartPricingPanel.tsx:68 +#: src/pages/part/PartPricingPanel.tsx:72 msgid "No pricing data found for this part." msgstr "" -#: src/pages/part/PartPricingPanel.tsx:82 -#: src/pages/part/pricing/PricingOverviewPanel.tsx:190 +#: src/pages/part/PartPricingPanel.tsx:87 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:293 msgid "Pricing Overview" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:88 +#: src/pages/part/PartPricingPanel.tsx:93 msgid "Purchase History" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:102 -#: src/pages/part/pricing/PricingOverviewPanel.tsx:100 +#: src/pages/part/PartPricingPanel.tsx:107 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:174 msgid "Internal Pricing" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:120 -#: src/pages/part/pricing/PricingOverviewPanel.tsx:107 +#: src/pages/part/PartPricingPanel.tsx:125 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:181 msgid "BOM Pricing" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:127 -#: src/pages/part/pricing/PricingOverviewPanel.tsx:128 +#: src/pages/part/PartPricingPanel.tsx:132 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:202 msgid "Variant Pricing" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:139 -#: src/pages/part/pricing/PricingOverviewPanel.tsx:135 +#: src/pages/part/PartPricingPanel.tsx:144 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:209 msgid "Sale Pricing" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:146 -#: src/pages/part/pricing/PricingOverviewPanel.tsx:142 +#: src/pages/part/PartPricingPanel.tsx:151 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:216 msgid "Sale History" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:58 -#: src/pages/part/pricing/BomPricingPanel.tsx:138 -#: src/tables/ColumnRenderers.tsx:262 +#: src/pages/part/PartSchedulingDetail.tsx:47 +#: src/pages/part/PartSchedulingDetail.tsx:299 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:156 +msgid "Maximum" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:50 +#: src/pages/part/PartSchedulingDetail.tsx:289 +msgid "Scheduled" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:53 +#: src/pages/part/PartSchedulingDetail.tsx:294 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:144 +msgid "Minimum" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:68 +msgid "Order" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:92 +msgid "Quantity is speculative" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:101 +msgid "No date available for provided quantity" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:105 +msgid "Date is in the past" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:112 +msgid "Scheduled Quantity" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:240 +msgid "No information available" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:241 +msgid "There is no scheduling information available for the selected part" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:276 +msgid "Expected Quantity" +msgstr "" + +#: src/pages/part/PartStocktakeDetail.tsx:63 +#: src/tables/FilterSelectDrawer.tsx:167 +#: src/tables/FilterSelectDrawer.tsx:174 +#: src/tables/build/BuildOrderTestTable.tsx:135 +#: src/tables/purchasing/ManufacturerPartParameterTable.tsx:38 +#: src/tables/stock/StockItemTestResultTable.tsx:192 +msgid "Value" +msgstr "" + +#: src/pages/part/PartStocktakeDetail.tsx:82 +msgid "Edit Stocktake Entry" +msgstr "" + +#: src/pages/part/PartStocktakeDetail.tsx:90 +msgid "Delete Stocktake Entry" +msgstr "" + +#: src/pages/part/PartStocktakeDetail.tsx:96 +#: src/tables/settings/StocktakeReportTable.tsx:69 +msgid "Generate Stocktake Report" +msgstr "" + +#: src/pages/part/PartStocktakeDetail.tsx:101 +#: src/tables/settings/StocktakeReportTable.tsx:71 +msgid "Stocktake report scheduled" +msgstr "" + +#: src/pages/part/PartStocktakeDetail.tsx:119 +#: src/pages/part/PartStocktakeDetail.tsx:235 +#: src/pages/stock/StockDetail.tsx:303 +#: src/tables/stock/StockItemTable.tsx:249 +msgid "Stock Value" +msgstr "" + +#: src/pages/part/PartStocktakeDetail.tsx:139 +#: src/tables/settings/StocktakeReportTable.tsx:77 +msgid "New Stocktake Report" +msgstr "" + +#: src/pages/part/PartStocktakeDetail.tsx:258 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:295 +msgid "Minimum Value" +msgstr "" + +#: src/pages/part/PartStocktakeDetail.tsx:264 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:296 +msgid "Maximum Value" +msgstr "" + +#: src/pages/part/pricing/BomPricingPanel.tsx:87 +#: src/pages/part/pricing/BomPricingPanel.tsx:177 +#: src/tables/ColumnRenderers.tsx:276 #: src/tables/bom/BomTable.tsx:185 #: src/tables/general/ExtraLineItemTable.tsx:64 -#: src/tables/purchasing/PurchaseOrderTable.tsx:112 -#: src/tables/sales/ReturnOrderTable.tsx:104 -#: src/tables/sales/SalesOrderLineItemTable.tsx:89 -#: src/tables/sales/SalesOrderTable.tsx:136 +#: src/tables/purchasing/PurchaseOrderTable.tsx:113 +#: src/tables/sales/ReturnOrderTable.tsx:127 +#: src/tables/sales/SalesOrderLineItemTable.tsx:97 +#: src/tables/sales/SalesOrderTable.tsx:149 msgid "Total Price" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:78 -#: src/pages/part/pricing/BomPricingPanel.tsx:102 +#: src/pages/part/pricing/BomPricingPanel.tsx:112 +#: src/pages/part/pricing/BomPricingPanel.tsx:141 #: src/tables/bom/UsedInTable.tsx:49 +#: src/tables/build/BuildLineTable.tsx:296 #: src/tables/part/PartTable.tsx:202 msgid "Component" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:81 -#: src/pages/part/pricing/VariantPricingPanel.tsx:37 -#: src/pages/part/pricing/VariantPricingPanel.tsx:97 -msgid "Minimum Price" -msgstr "" - -#: src/pages/part/pricing/BomPricingPanel.tsx:82 -#: src/pages/part/pricing/VariantPricingPanel.tsx:45 -#: src/pages/part/pricing/VariantPricingPanel.tsx:98 -msgid "Maximum Price" -msgstr "" - #: src/pages/part/pricing/BomPricingPanel.tsx:112 #~ msgid "Minimum Total Price" #~ msgstr "Minimum Total Price" +#: src/pages/part/pricing/BomPricingPanel.tsx:115 +#: src/pages/part/pricing/VariantPricingPanel.tsx:37 +#: src/pages/part/pricing/VariantPricingPanel.tsx:97 +msgid "Minimum Price" +msgstr "" + +#: src/pages/part/pricing/BomPricingPanel.tsx:116 +#: src/pages/part/pricing/VariantPricingPanel.tsx:45 +#: src/pages/part/pricing/VariantPricingPanel.tsx:98 +msgid "Maximum Price" +msgstr "" + #: src/pages/part/pricing/BomPricingPanel.tsx:117 #~ msgid "Maximum Total Price" #~ msgstr "Maximum Total Price" -#: src/pages/part/pricing/BomPricingPanel.tsx:129 -#: src/pages/part/pricing/PriceBreakPanel.tsx:172 -#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:67 -#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:128 -#: src/pages/part/pricing/SupplierPricingPanel.tsx:62 +#: src/pages/part/pricing/BomPricingPanel.tsx:168 +#: src/pages/part/pricing/PriceBreakPanel.tsx:173 +#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:70 +#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:125 +#: src/pages/part/pricing/SupplierPricingPanel.tsx:66 +#: src/pages/stock/StockDetail.tsx:291 #: src/tables/bom/BomTable.tsx:176 #: src/tables/general/ExtraLineItemTable.tsx:56 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:223 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:225 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:92 +#: src/tables/stock/StockItemTable.tsx:239 msgid "Unit Price" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:154 +#: src/pages/part/pricing/BomPricingPanel.tsx:193 #: src/pages/part/pricing/VariantPricingPanel.tsx:53 -#: src/tables/purchasing/SupplierPartTable.tsx:148 +#: src/tables/purchasing/SupplierPartTable.tsx:150 msgid "Updated" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:219 +#: src/pages/part/pricing/BomPricingPanel.tsx:258 msgid "Pie Chart" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:220 +#: src/pages/part/pricing/BomPricingPanel.tsx:259 msgid "Bar Chart" msgstr "" #: src/pages/part/pricing/PriceBreakPanel.tsx:58 -#: src/pages/part/pricing/PriceBreakPanel.tsx:110 +#: src/pages/part/pricing/PriceBreakPanel.tsx:111 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:142 -#: src/tables/purchasing/SupplierPriceBreakTable.tsx:168 +#: src/tables/purchasing/SupplierPriceBreakTable.tsx:169 msgid "Add Price Break" msgstr "" @@ -4986,46 +5846,70 @@ msgstr "" msgid "Price Break" msgstr "" -#: src/pages/part/pricing/PriceBreakPanel.tsx:170 +#: src/pages/part/pricing/PriceBreakPanel.tsx:171 msgid "Price" msgstr "" -#: src/pages/part/pricing/PricingOverviewPanel.tsx:51 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:68 +msgid "Refreshing pricing data" +msgstr "" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:88 +msgid "Pricing data updated" +msgstr "" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:95 +msgid "Failed to update pricing data" +msgstr "" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:104 +msgid "Edit Pricing" +msgstr "" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:125 msgid "Pricing Category" msgstr "" -#: src/pages/part/pricing/PricingOverviewPanel.tsx:70 -msgid "Minimum" -msgstr "" - -#: src/pages/part/pricing/PricingOverviewPanel.tsx:82 -msgid "Maximum" -msgstr "" - -#: src/pages/part/pricing/PricingOverviewPanel.tsx:114 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:188 msgid "Purchase Pricing" msgstr "" -#: src/pages/part/pricing/PricingOverviewPanel.tsx:149 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:223 msgid "Override Pricing" msgstr "" -#: src/pages/part/pricing/PricingOverviewPanel.tsx:156 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:230 msgid "Overall Pricing" msgstr "" -#: src/pages/part/pricing/PricingOverviewPanel.tsx:175 -#: src/pages/stock/StockDetail.tsx:129 -#: src/tables/stock/StockItemTable.tsx:240 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:249 +#: src/pages/stock/StockDetail.tsx:145 +#: src/tables/stock/StockItemTable.tsx:275 msgid "Last Updated" msgstr "" -#: src/pages/part/pricing/PricingOverviewPanel.tsx:192 -msgid "Minimum Value" +#: src/pages/part/pricing/PricingOverviewPanel.tsx:253 +msgid "Pricing Not Set" msgstr "" -#: src/pages/part/pricing/PricingOverviewPanel.tsx:193 -msgid "Maximum Value" +#: src/pages/part/pricing/PricingOverviewPanel.tsx:254 +msgid "Pricing data has not been calculated for this part" +msgstr "" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:258 +msgid "Pricing Actions" +msgstr "" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:261 +msgid "Refresh" +msgstr "" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:262 +msgid "Refresh pricing data" +msgstr "" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:277 +msgid "Edit pricing data" msgstr "" #: src/pages/part/pricing/PricingPanel.tsx:24 @@ -5044,28 +5928,20 @@ msgstr "" msgid "Loading pricing data" msgstr "" -#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:40 -#: src/pages/part/pricing/SaleHistoryPanel.tsx:36 -#: src/tables/ColumnRenderers.tsx:201 -#: src/tables/build/BuildOrderTestTable.tsx:150 -#: src/tables/plugin/PluginListTable.tsx:139 -msgid "Date" -msgstr "" - #: src/pages/part/pricing/PurchaseHistoryPanel.tsx:47 msgid "Purchase Price" msgstr "" -#: src/pages/part/pricing/SaleHistoryPanel.tsx:22 -msgid "Sale Order" -msgstr "" +#: src/pages/part/pricing/SaleHistoryPanel.tsx:24 +#~ msgid "Sale Order" +#~ msgstr "Sale Order" -#: src/pages/part/pricing/SaleHistoryPanel.tsx:42 -#: src/pages/part/pricing/SaleHistoryPanel.tsx:92 +#: src/pages/part/pricing/SaleHistoryPanel.tsx:44 +#: src/pages/part/pricing/SaleHistoryPanel.tsx:87 msgid "Sale Price" msgstr "" -#: src/pages/part/pricing/SupplierPricingPanel.tsx:65 +#: src/pages/part/pricing/SupplierPricingPanel.tsx:69 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:83 msgid "Supplier Price" msgstr "" @@ -5075,23 +5951,23 @@ msgstr "" msgid "Variant Part" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:93 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:87 msgid "Edit Purchase Order" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:102 -#: src/tables/purchasing/PurchaseOrderTable.tsx:128 -#: src/tables/purchasing/PurchaseOrderTable.tsx:140 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:96 +#: src/tables/purchasing/PurchaseOrderTable.tsx:129 +#: src/tables/purchasing/PurchaseOrderTable.tsx:142 msgid "Add Purchase Order" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:127 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:121 msgid "Supplier Reference" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:158 -#: src/pages/sales/ReturnOrderDetail.tsx:137 -#: src/pages/sales/SalesOrderDetail.tsx:137 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:152 +#: src/pages/sales/ReturnOrderDetail.tsx:129 +#: src/pages/sales/SalesOrderDetail.tsx:132 msgid "Completed Line Items" msgstr "" @@ -5101,91 +5977,112 @@ msgstr "" #~ msgid "Order Currency," #~ msgstr "Order Currency," -#: src/pages/purchasing/PurchaseOrderDetail.tsx:165 -#: src/pages/sales/ReturnOrderDetail.tsx:144 -#: src/pages/sales/SalesOrderDetail.tsx:153 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:161 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:231 +msgid "Destination" +msgstr "" + +#: src/pages/purchasing/PurchaseOrderDetail.tsx:167 +#: src/pages/sales/ReturnOrderDetail.tsx:136 +#: src/pages/sales/SalesOrderDetail.tsx:148 msgid "Order Currency" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:172 -#: src/pages/sales/ReturnOrderDetail.tsx:151 -#: src/pages/sales/SalesOrderDetail.tsx:160 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:173 +#: src/pages/sales/ReturnOrderDetail.tsx:143 +#: src/pages/sales/SalesOrderDetail.tsx:155 msgid "Total Cost" msgstr "" #: src/pages/purchasing/PurchaseOrderDetail.tsx:207 -#: src/pages/sales/ReturnOrderDetail.tsx:186 -#: src/pages/sales/SalesOrderDetail.tsx:195 -msgid "Created On" +#: src/pages/sales/ReturnOrderDetail.tsx:183 +#: src/pages/sales/SalesOrderDetail.tsx:191 +#~ msgid "Created On" +#~ msgstr "Created On" + +#: src/pages/purchasing/PurchaseOrderDetail.tsx:221 +#: src/pages/sales/ReturnOrderDetail.tsx:193 +#: src/pages/sales/SalesOrderDetail.tsx:204 +msgid "Issue Date" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:252 -#: src/pages/sales/ReturnOrderDetail.tsx:231 -#: src/pages/sales/SalesOrderDetail.tsx:266 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:237 +#: src/pages/sales/ReturnOrderDetail.tsx:209 +#: src/pages/sales/SalesOrderDetail.tsx:219 +#: src/tables/build/BuildOrderTable.tsx:98 +#: src/tables/part/PartPurchaseOrdersTable.tsx:105 +#: src/tables/sales/ReturnOrderTable.tsx:122 +msgid "Completion Date" +msgstr "" + +#: src/pages/purchasing/PurchaseOrderDetail.tsx:276 +#: src/pages/sales/ReturnOrderDetail.tsx:248 +#: src/pages/sales/SalesOrderDetail.tsx:288 msgid "Order Details" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:280 -#: src/pages/sales/ReturnOrderDetail.tsx:258 -#: src/pages/sales/SalesOrderDetail.tsx:297 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:304 +#: src/pages/sales/ReturnOrderDetail.tsx:276 +#: src/pages/sales/SalesOrderDetail.tsx:319 msgid "Extra Line Items" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:337 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:346 msgid "Issue Purchase Order" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:345 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:354 msgid "Cancel Purchase Order" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:353 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:362 msgid "Hold Purchase Order" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:361 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:370 msgid "Complete Purchase Order" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:427 -#: src/pages/sales/ReturnOrderDetail.tsx:428 -#: src/pages/sales/SalesOrderDetail.tsx:468 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:425 +#: src/pages/sales/ReturnOrderDetail.tsx:424 +#: src/pages/sales/SalesOrderDetail.tsx:464 msgid "Order Actions" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:101 -#: src/pages/sales/SalesOrderDetail.tsx:107 -#: src/tables/sales/SalesOrderTable.tsx:124 +#: src/pages/sales/ReturnOrderDetail.tsx:92 +#: src/pages/sales/SalesOrderDetail.tsx:101 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:109 +#: src/tables/sales/SalesOrderTable.tsx:137 msgid "Customer Reference" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:315 +#: src/pages/sales/ReturnOrderDetail.tsx:322 msgid "Edit Return Order" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:324 -#: src/tables/sales/ReturnOrderTable.tsx:119 -#: src/tables/sales/ReturnOrderTable.tsx:128 +#: src/pages/sales/ReturnOrderDetail.tsx:331 +#: src/tables/sales/ReturnOrderTable.tsx:142 +#: src/tables/sales/ReturnOrderTable.tsx:152 msgid "Add Return Order" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:336 +#: src/pages/sales/ReturnOrderDetail.tsx:343 msgid "Issue Return Order" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:344 +#: src/pages/sales/ReturnOrderDetail.tsx:349 +#~ msgid "Order canceled" +#~ msgstr "Order canceled" + +#: src/pages/sales/ReturnOrderDetail.tsx:351 msgid "Cancel Return Order" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:347 -msgid "Order canceled" -msgstr "" - -#: src/pages/sales/ReturnOrderDetail.tsx:352 +#: src/pages/sales/ReturnOrderDetail.tsx:359 msgid "Hold Return Order" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:360 +#: src/pages/sales/ReturnOrderDetail.tsx:367 msgid "Complete Return Order" msgstr "" @@ -5193,117 +6090,193 @@ msgstr "" msgid "Customers" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:145 +#: src/pages/sales/SalesOrderDetail.tsx:140 msgid "Completed Shipments" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:243 -msgid "Edit Sales Order" -msgstr "" - -#: src/pages/sales/SalesOrderDetail.tsx:252 -#: src/tables/sales/SalesOrderTable.tsx:84 -#: src/tables/sales/SalesOrderTable.tsx:96 -msgid "Add Sales Order" -msgstr "" - #: src/pages/sales/SalesOrderDetail.tsx:256 #~ msgid "Pending Shipments" #~ msgstr "Pending Shipments" -#: src/pages/sales/SalesOrderDetail.tsx:313 +#: src/pages/sales/SalesOrderDetail.tsx:261 +msgid "Edit Sales Order" +msgstr "" + +#: src/pages/sales/SalesOrderDetail.tsx:274 +#: src/tables/sales/SalesOrderTable.tsx:96 +#: src/tables/sales/SalesOrderTable.tsx:109 +msgid "Add Sales Order" +msgstr "" + +#: src/pages/sales/SalesOrderDetail.tsx:335 msgid "Shipments" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:369 +#: src/pages/sales/SalesOrderDetail.tsx:376 msgid "Issue Sales Order" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:377 +#: src/pages/sales/SalesOrderDetail.tsx:384 msgid "Cancel Sales Order" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:385 +#: src/pages/sales/SalesOrderDetail.tsx:392 msgid "Hold Sales Order" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:393 +#: src/pages/sales/SalesOrderDetail.tsx:400 msgid "Complete Sales Order" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:432 +#: src/pages/sales/SalesOrderDetail.tsx:439 msgid "Ship Order" msgstr "" -#: src/pages/stock/LocationDetail.tsx:117 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:117 +#: src/tables/sales/SalesOrderShipmentTable.tsx:96 +msgid "Shipment Reference" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:124 +msgid "Allocated Items" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:133 +msgid "Tracking Number" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:141 +msgid "Invoice Number" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:149 +#: src/tables/ColumnRenderers.tsx:242 +#: src/tables/sales/SalesOrderAllocationTable.tsx:142 +#: src/tables/sales/SalesOrderShipmentTable.tsx:115 +msgid "Shipment Date" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:157 +#: src/tables/sales/SalesOrderShipmentTable.tsx:119 +msgid "Delivery Date" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:204 +msgid "Shipment Details" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:210 +msgid "Assigned Items" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:241 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:317 +#: src/tables/sales/SalesOrderShipmentTable.tsx:75 +msgid "Edit Shipment" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:248 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:322 +#: src/tables/sales/SalesOrderShipmentTable.tsx:67 +msgid "Cancel Shipment" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:261 +#: src/tables/sales/SalesOrderShipmentTable.tsx:83 +#: src/tables/sales/SalesOrderShipmentTable.tsx:151 +msgid "Complete Shipment" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:276 +#: src/tables/part/PartPurchaseOrdersTable.tsx:121 +msgid "Pending" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:277 +#: src/tables/sales/SalesOrderAllocationTable.tsx:148 +#: src/tables/sales/SalesOrderShipmentTable.tsx:108 +#: src/tables/sales/SalesOrderShipmentTable.tsx:197 +msgid "Shipped" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:279 +#: src/tables/sales/SalesOrderShipmentTable.tsx:202 +msgid "Delivered" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:293 +msgid "Send Shipment" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:312 +msgid "Shipment Actions" +msgstr "" + +#: src/pages/stock/LocationDetail.tsx:111 msgid "Parent Location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:135 +#: src/pages/stock/LocationDetail.tsx:129 msgid "Sublocations" msgstr "" -#: src/pages/stock/LocationDetail.tsx:147 +#: src/pages/stock/LocationDetail.tsx:141 #: src/tables/stock/StockLocationTable.tsx:54 msgid "External" msgstr "" -#: src/pages/stock/LocationDetail.tsx:153 +#: src/pages/stock/LocationDetail.tsx:147 #: src/tables/stock/StockLocationTable.tsx:63 msgid "Location Type" msgstr "" -#: src/pages/stock/LocationDetail.tsx:164 +#: src/pages/stock/LocationDetail.tsx:158 msgid "Top level stock location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:175 +#: src/pages/stock/LocationDetail.tsx:169 msgid "Location Details" msgstr "" -#: src/pages/stock/LocationDetail.tsx:201 +#: src/pages/stock/LocationDetail.tsx:195 msgid "Default Parts" msgstr "" -#: src/pages/stock/LocationDetail.tsx:220 -#: src/pages/stock/LocationDetail.tsx:351 +#: src/pages/stock/LocationDetail.tsx:214 +#: src/pages/stock/LocationDetail.tsx:336 #: src/tables/stock/StockLocationTable.tsx:123 msgid "Edit Stock Location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:241 -#: src/pages/stock/LocationDetail.tsx:356 +#: src/pages/stock/LocationDetail.tsx:235 +#: src/pages/stock/LocationDetail.tsx:341 msgid "Delete Stock Location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:244 +#: src/pages/stock/LocationDetail.tsx:238 msgid "Items Action" msgstr "" -#: src/pages/stock/LocationDetail.tsx:245 +#: src/pages/stock/LocationDetail.tsx:239 msgid "Action for stock items in this location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:250 +#: src/pages/stock/LocationDetail.tsx:244 msgid "Child Locations Action" msgstr "" -#: src/pages/stock/LocationDetail.tsx:251 +#: src/pages/stock/LocationDetail.tsx:245 msgid "Action for child locations in this location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:346 +#: src/pages/stock/LocationDetail.tsx:332 msgid "Location Actions" msgstr "" -#: src/pages/stock/StockDetail.tsx:108 +#: src/pages/stock/StockDetail.tsx:116 msgid "Base Part" msgstr "" -#: src/pages/stock/StockDetail.tsx:115 -msgid "Stock Status" -msgstr "" - #: src/pages/stock/StockDetail.tsx:155 #~ msgid "Link custom barcode to stock item" #~ msgstr "Link custom barcode to stock item" @@ -5312,113 +6285,179 @@ msgstr "" #~ msgid "Unlink custom barcode from stock item" #~ msgstr "Unlink custom barcode from stock item" -#: src/pages/stock/StockDetail.tsx:188 -msgid "Installed In" -msgstr "" - -#: src/pages/stock/StockDetail.tsx:204 -msgid "Consumed By" +#: src/pages/stock/StockDetail.tsx:178 +msgid "Allocated to Orders" msgstr "" #: src/pages/stock/StockDetail.tsx:205 #~ msgid "Edit stock item" #~ msgstr "Edit stock item" -#: src/pages/stock/StockDetail.tsx:213 -#: src/tables/build/BuildAllocatedStockTable.tsx:64 -#: src/tables/stock/StockTrackingTable.tsx:96 -msgid "Build Order" +#: src/pages/stock/StockDetail.tsx:209 +msgid "Installed In" msgstr "" #: src/pages/stock/StockDetail.tsx:217 #~ msgid "Delete stock item" #~ msgstr "Delete stock item" -#: src/pages/stock/StockDetail.tsx:291 +#: src/pages/stock/StockDetail.tsx:226 +msgid "Parent Item" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:230 +msgid "Parent stock item" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:236 +msgid "Consumed By" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:245 +#: src/tables/build/BuildAllocatedStockTable.tsx:77 +#: src/tables/stock/StockTrackingTable.tsx:100 +msgid "Build Order" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:283 +#: src/tables/stock/StockItemTable.tsx:270 +msgid "Expiry Date" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:414 msgid "Stock Details" msgstr "" -#: src/pages/stock/StockDetail.tsx:297 +#: src/pages/stock/StockDetail.tsx:420 msgid "Stock Tracking" msgstr "" -#: src/pages/stock/StockDetail.tsx:350 -msgid "Test Data" -msgstr "" - -#: src/pages/stock/StockDetail.tsx:364 -msgid "Installed Items" -msgstr "" - -#: src/pages/stock/StockDetail.tsx:371 -msgid "Child Items" -msgstr "" - -#: src/pages/stock/StockDetail.tsx:425 -msgid "Edit Stock Item" -msgstr "" - #: src/pages/stock/StockDetail.tsx:433 #~ msgid "Duplicate stock item" #~ msgstr "Duplicate stock item" -#: src/pages/stock/StockDetail.tsx:452 +#: src/pages/stock/StockDetail.tsx:475 +msgid "Test Data" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:489 +msgid "Installed Items" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:496 +msgid "Child Items" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:545 +msgid "Edit Stock Item" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:572 msgid "Delete Stock Item" msgstr "" -#: src/pages/stock/StockDetail.tsx:504 +#: src/pages/stock/StockDetail.tsx:604 +msgid "Serialize Stock Item" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:617 +msgid "Stock item serialized" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:623 +msgid "Return Stock Item" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:626 +msgid "Return this item into stock. This will remove the customer assignment." +msgstr "" + +#: src/pages/stock/StockDetail.tsx:636 +msgid "Item returned to stock" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:666 msgid "Stock Operations" msgstr "" -#: src/pages/stock/StockDetail.tsx:509 +#: src/pages/stock/StockDetail.tsx:671 msgid "Count stock" msgstr "" -#: src/pages/stock/StockDetail.tsx:519 -#: src/tables/stock/StockItemTable.tsx:449 -msgid "Add stock" +#: src/pages/stock/StockDetail.tsx:671 +#: src/tables/stock/StockItemTable.tsx:452 +#~ msgid "Add stock" +#~ msgstr "Add stock" + +#: src/pages/stock/StockDetail.tsx:680 +#: src/tables/stock/StockItemTable.tsx:461 +#~ msgid "Remove stock" +#~ msgstr "Remove stock" + +#: src/pages/stock/StockDetail.tsx:698 +#: src/tables/stock/StockItemTable.tsx:481 +#~ msgid "Transfer stock" +#~ msgstr "Transfer stock" + +#: src/pages/stock/StockDetail.tsx:699 +msgid "Serialize" msgstr "" -#: src/pages/stock/StockDetail.tsx:527 -#: src/tables/stock/StockItemTable.tsx:458 -msgid "Remove stock" +#: src/pages/stock/StockDetail.tsx:700 +msgid "Serialize stock" msgstr "" -#: src/pages/stock/StockDetail.tsx:534 +#: src/pages/stock/StockDetail.tsx:711 msgid "Transfer" msgstr "" -#: src/pages/stock/StockDetail.tsx:535 -#: src/tables/stock/StockItemTable.tsx:478 -msgid "Transfer stock" +#: src/pages/stock/StockDetail.tsx:722 +msgid "Return" msgstr "" -#: src/pages/stock/StockDetail.tsx:546 +#: src/pages/stock/StockDetail.tsx:723 +msgid "Return from customer" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:738 msgid "Stock Item Actions" msgstr "" -#: src/tables/ColumnRenderers.tsx:30 +#: src/pages/stock/StockDetail.tsx:808 +msgid "Stale" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:814 +msgid "Expired" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:820 +msgid "Unavailable" +msgstr "" + +#: src/tables/ColumnRenderers.tsx:36 msgid "Part is not active" msgstr "" -#: src/tables/ColumnRenderers.tsx:35 -msgid "Part is locked" +#: src/tables/ColumnRenderers.tsx:41 +#: src/tables/bom/BomTable.tsx:542 +#: src/tables/part/PartParameterTable.tsx:193 +#: src/tables/part/PartTestTemplateTable.tsx:253 +msgid "Part is Locked" msgstr "" -#: src/tables/ColumnRenderers.tsx:57 +#: src/tables/ColumnRenderers.tsx:41 +#~ msgid "Part is locked" +#~ msgstr "Part is locked" + +#: src/tables/ColumnRenderers.tsx:46 +msgid "You are subscribed to notifications for this part" +msgstr "" + +#: src/tables/ColumnRenderers.tsx:68 msgid "No location set" msgstr "" -#: src/tables/ColumnRenderers.tsx:228 -#: src/tables/sales/SalesOrderShipmentTable.tsx:79 -msgid "Shipment Date" -msgstr "" - -#: src/tables/ColumnRenderers.tsx:248 -#: src/tables/settings/CurrencyTable.tsx:23 -msgid "Currency" -msgstr "" - #: src/tables/ColumnSelect.tsx:16 #: src/tables/ColumnSelect.tsx:23 msgid "Select Columns" @@ -5452,91 +6491,116 @@ msgstr "" msgid "Download Data" msgstr "" -#: src/tables/Filter.tsx:89 -#: src/tables/build/BuildOrderTable.tsx:135 +#: src/tables/Filter.tsx:101 msgid "Assigned to me" msgstr "" -#: src/tables/Filter.tsx:90 -#: src/tables/build/BuildOrderTable.tsx:136 +#: src/tables/Filter.tsx:102 msgid "Show orders assigned to me" msgstr "" -#: src/tables/Filter.tsx:97 +#: src/tables/Filter.tsx:106 +#~ msgid "Show overdue orders" +#~ msgstr "Show overdue orders" + +#: src/tables/Filter.tsx:109 +#: src/tables/build/BuildOrderTable.tsx:120 +#: src/tables/sales/SalesOrderAllocationTable.tsx:59 msgid "Outstanding" msgstr "" -#: src/tables/Filter.tsx:98 -msgid "Show outstanding orders" +#: src/tables/Filter.tsx:110 +msgid "Show outstanding items" msgstr "" -#: src/tables/Filter.tsx:105 -#: src/tables/build/BuildOrderTable.tsx:128 +#: src/tables/Filter.tsx:117 msgid "Overdue" msgstr "" -#: src/tables/Filter.tsx:106 -msgid "Show overdue orders" +#: src/tables/Filter.tsx:118 +msgid "Show overdue items" msgstr "" -#: src/tables/FilterSelectDrawer.tsx:51 +#: src/tables/Filter.tsx:125 +msgid "Minimum Date" +msgstr "" + +#: src/tables/Filter.tsx:126 +msgid "Show items after this date" +msgstr "" + +#: src/tables/Filter.tsx:134 +msgid "Maximum Date" +msgstr "" + +#: src/tables/Filter.tsx:135 +msgid "Show items before this date" +msgstr "" + +#: src/tables/Filter.tsx:144 +msgid "Has Project Code" +msgstr "" + +#: src/tables/Filter.tsx:145 +msgid "Show orders with an assigned project code" +msgstr "" + +#: src/tables/FilterSelectDrawer.tsx:55 msgid "Remove filter" msgstr "" -#: src/tables/FilterSelectDrawer.tsx:130 +#: src/tables/FilterSelectDrawer.tsx:159 msgid "Select filter" msgstr "" -#: src/tables/FilterSelectDrawer.tsx:131 +#: src/tables/FilterSelectDrawer.tsx:160 msgid "Filter" msgstr "" -#: src/tables/FilterSelectDrawer.tsx:138 -#: src/tables/build/BuildOrderTestTable.tsx:134 -#: src/tables/purchasing/ManufacturerPartParameterTable.tsx:38 -#: src/tables/stock/StockItemTestResultTable.tsx:186 -msgid "Value" +#: src/tables/FilterSelectDrawer.tsx:168 +msgid "Select date value" msgstr "" -#: src/tables/FilterSelectDrawer.tsx:140 +#: src/tables/FilterSelectDrawer.tsx:176 msgid "Select filter value" msgstr "" -#: src/tables/FilterSelectDrawer.tsx:183 +#: src/tables/FilterSelectDrawer.tsx:219 +#: src/tables/InvenTreeTableHeader.tsx:214 msgid "Table Filters" msgstr "" -#: src/tables/FilterSelectDrawer.tsx:215 +#: src/tables/FilterSelectDrawer.tsx:251 msgid "Add Filter" msgstr "" -#: src/tables/FilterSelectDrawer.tsx:224 +#: src/tables/FilterSelectDrawer.tsx:260 msgid "Clear Filters" msgstr "" -#: src/tables/InvenTreeTable.tsx:123 -#: src/tables/InvenTreeTable.tsx:431 -#: src/tables/InvenTreeTable.tsx:455 +#: src/tables/InvenTreeTable.tsx:96 +#: src/tables/InvenTreeTable.tsx:417 +#: src/tables/InvenTreeTable.tsx:441 msgid "No records found" msgstr "" -#: src/tables/InvenTreeTable.tsx:466 +#: src/tables/InvenTreeTable.tsx:452 msgid "Server returned incorrect data type" msgstr "" -#: src/tables/InvenTreeTable.tsx:474 +#: src/tables/InvenTreeTable.tsx:460 msgid "Bad request" msgstr "" -#: src/tables/InvenTreeTable.tsx:477 +#: src/tables/InvenTreeTable.tsx:463 msgid "Unauthorized" msgstr "" -#: src/tables/InvenTreeTable.tsx:480 +#: src/tables/InvenTreeTable.tsx:466 msgid "Forbidden" msgstr "" -#: src/tables/InvenTreeTable.tsx:483 +#: src/tables/InvenTreeTable.tsx:469 msgid "Not found" msgstr "" @@ -5544,18 +6608,6 @@ msgstr "" #~ msgid "Are you sure you want to delete the selected records?" #~ msgstr "Are you sure you want to delete the selected records?" -#: src/tables/InvenTreeTable.tsx:525 -msgid "Delete Selected Items" -msgstr "" - -#: src/tables/InvenTreeTable.tsx:529 -msgid "Are you sure you want to delete the selected items?" -msgstr "" - -#: src/tables/InvenTreeTable.tsx:531 -msgid "This action cannot be undone!" -msgstr "" - #: src/tables/InvenTreeTable.tsx:535 #~ msgid "Deleted records" #~ msgstr "Deleted records" @@ -5568,31 +6620,56 @@ msgstr "" #~ msgid "Failed to delete records" #~ msgstr "Failed to delete records" +#: src/tables/InvenTreeTable.tsx:552 +#~ msgid "This action cannot be undone!" +#~ msgstr "This action cannot be undone!" + #: src/tables/InvenTreeTable.tsx:594 #: src/tables/InvenTreeTable.tsx:595 #~ msgid "Print actions" #~ msgstr "Print actions" -#: src/tables/InvenTreeTable.tsx:618 -#: src/tables/InvenTreeTable.tsx:619 -msgid "Barcode actions" +#: src/tables/InvenTreeTable.tsx:655 +#: src/tables/InvenTreeTable.tsx:656 +#~ msgid "Barcode actions" +#~ msgstr "Barcode actions" + +#: src/tables/InvenTreeTable.tsx:712 +#~ msgid "Table filters" +#~ msgstr "Table filters" + +#: src/tables/InvenTreeTable.tsx:725 +#~ msgid "Clear custom query filters" +#~ msgstr "Clear custom query filters" + +#: src/tables/InvenTreeTableHeader.tsx:98 +msgid "Delete Selected Items" msgstr "" -#: src/tables/InvenTreeTable.tsx:628 +#: src/tables/InvenTreeTableHeader.tsx:102 +msgid "Are you sure you want to delete the selected items?" +msgstr "" + +#: src/tables/InvenTreeTableHeader.tsx:104 +#: src/tables/plugin/PluginListTable.tsx:305 +msgid "This action cannot be undone" +msgstr "" + +#: src/tables/InvenTreeTableHeader.tsx:142 +msgid "Custom table filters are active" +msgstr "" + +#: src/tables/InvenTreeTableHeader.tsx:169 msgid "Delete selected records" msgstr "" -#: src/tables/InvenTreeTable.tsx:649 +#: src/tables/InvenTreeTableHeader.tsx:188 msgid "Refresh data" msgstr "" -#: src/tables/InvenTreeTable.tsx:675 -msgid "Table filters" -msgstr "" - #: src/tables/TableHoverCard.tsx:35 -msgid "item-{idx}" -msgstr "" +#~ msgid "item-{idx}" +#~ msgstr "item-{idx}" #: src/tables/UploadAction.tsx:7 #~ msgid "Upload Data" @@ -5607,31 +6684,36 @@ msgid "Part Information" msgstr "" #: src/tables/bom/BomTable.tsx:212 -#: src/tables/build/BuildLineTable.tsx:126 +#: src/tables/build/BuildLineTable.tsx:257 #: src/tables/part/PartTable.tsx:125 msgid "External stock" msgstr "" #: src/tables/bom/BomTable.tsx:220 -#: src/tables/build/BuildLineTable.tsx:89 +#: src/tables/build/BuildLineTable.tsx:220 msgid "Includes substitute stock" msgstr "" #: src/tables/bom/BomTable.tsx:229 -#: src/tables/build/BuildLineTable.tsx:99 -#: src/tables/sales/SalesOrderLineItemTable.tsx:127 +#: src/tables/build/BuildLineTable.tsx:230 +#: src/tables/sales/SalesOrderLineItemTable.tsx:135 msgid "Includes variant stock" msgstr "" +#: src/tables/bom/BomTable.tsx:245 +#: src/tables/part/PartTable.tsx:92 +msgid "Building" +msgstr "" + #: src/tables/bom/BomTable.tsx:254 #: src/tables/part/PartTable.tsx:153 -#: src/tables/sales/SalesOrderLineItemTable.tsx:150 -#: src/tables/stock/StockItemTable.tsx:216 +#: src/tables/sales/SalesOrderLineItemTable.tsx:158 +#: src/tables/stock/StockItemTable.tsx:206 msgid "Stock Information" msgstr "" #: src/tables/bom/BomTable.tsx:285 -#: src/tables/build/BuildLineTable.tsx:248 +#: src/tables/build/BuildLineTable.tsx:409 msgid "Consumable item" msgstr "" @@ -5644,7 +6726,7 @@ msgstr "" #~ msgstr "Create BOM Item" #: src/tables/bom/BomTable.tsx:306 -#: src/tables/build/BuildLineTable.tsx:69 +#: src/tables/build/BuildLineTable.tsx:200 msgid "Show testable items" msgstr "" @@ -5657,11 +6739,12 @@ msgid "Show trackable items" msgstr "" #: src/tables/bom/BomTable.tsx:316 -#: src/tables/build/BuildLineTable.tsx:64 +#: src/tables/build/BuildLineTable.tsx:195 msgid "Show assembled items" msgstr "" #: src/tables/bom/BomTable.tsx:321 +#: src/tables/build/BuildLineTable.tsx:180 msgid "Show items with available stock" msgstr "" @@ -5705,7 +6788,7 @@ msgstr "" #: src/tables/bom/BomTable.tsx:345 #: src/tables/bom/UsedInTable.tsx:79 -#: src/tables/build/BuildLineTable.tsx:58 +#: src/tables/build/BuildLineTable.tsx:189 msgid "Optional" msgstr "" @@ -5723,7 +6806,7 @@ msgstr "" #~ msgstr "Bom item deleted" #: src/tables/bom/BomTable.tsx:350 -#: src/tables/build/BuildLineTable.tsx:53 +#: src/tables/build/BuildLineTable.tsx:184 msgid "Consumable" msgstr "" @@ -5749,12 +6832,12 @@ msgid "Show items with pricing" msgstr "" #: src/tables/bom/BomTable.tsx:378 -#: src/tables/bom/BomTable.tsx:511 +#: src/tables/bom/BomTable.tsx:512 msgid "Import BOM Data" msgstr "" #: src/tables/bom/BomTable.tsx:388 -#: src/tables/bom/BomTable.tsx:523 +#: src/tables/bom/BomTable.tsx:526 msgid "Add BOM Item" msgstr "" @@ -5780,13 +6863,13 @@ msgstr "" #: src/tables/bom/BomTable.tsx:423 #: src/tables/bom/BomTable.tsx:426 -#: src/tables/bom/BomTable.tsx:517 +#: src/tables/bom/BomTable.tsx:519 msgid "Validate BOM" msgstr "" #: src/tables/bom/BomTable.tsx:427 msgid "Do you want to validate the bill of materials for this assembly?" -msgstr "" +msgstr "Ви хочете підтвердити рахунок матеріалів для цієї збірки?" #: src/tables/bom/BomTable.tsx:430 msgid "BOM validated" @@ -5812,21 +6895,15 @@ msgstr "" msgid "Edit Substitutes" msgstr "" -#: src/tables/bom/BomTable.tsx:539 -#: src/tables/part/PartParameterTable.tsx:193 -#: src/tables/part/PartTestTemplateTable.tsx:252 -msgid "Part is Locked" -msgstr "" - -#: src/tables/bom/BomTable.tsx:544 +#: src/tables/bom/BomTable.tsx:547 msgid "Bill of materials cannot be edited, as the part is locked" -msgstr "" +msgstr "Біл матеріалів не можна редагувати, тому що частина заблокована" #: src/tables/bom/UsedInTable.tsx:33 -#: src/tables/build/BuildLineTable.tsx:63 +#: src/tables/build/BuildLineTable.tsx:194 #: src/tables/part/ParametricPartTable.tsx:233 #: src/tables/part/PartTable.tsx:190 -#: src/tables/stock/StockItemTable.tsx:300 +#: src/tables/stock/StockItemTable.tsx:304 msgid "Assembly" msgstr "" @@ -5844,285 +6921,347 @@ msgstr "" msgid "Show trackable assemblies" msgstr "" -#: src/tables/build/BuildAllocatedStockTable.tsx:54 +#: src/tables/build/BuildAllocatedStockTable.tsx:56 msgid "Allocated to Output" msgstr "" -#: src/tables/build/BuildAllocatedStockTable.tsx:55 +#: src/tables/build/BuildAllocatedStockTable.tsx:57 msgid "Show items allocated to a build output" msgstr "" -#: src/tables/build/BuildAllocatedStockTable.tsx:76 -#: src/tables/part/PartPurchaseOrdersTable.tsx:125 -#: src/tables/sales/SalesOrderAllocationTable.tsx:62 +#: src/tables/build/BuildAllocatedStockTable.tsx:65 +#: src/tables/build/BuildOrderTable.tsx:159 +#: src/tables/part/PartParameterTable.tsx:212 +#: src/tables/part/PartPurchaseOrdersTable.tsx:138 +#: src/tables/sales/ReturnOrderTable.tsx:84 +#: src/tables/sales/SalesOrderAllocationTable.tsx:68 +#: src/tables/sales/SalesOrderTable.tsx:84 +#: src/tables/stock/StockItemTable.tsx:339 +msgid "Include Variants" +msgstr "" + +#: src/tables/build/BuildAllocatedStockTable.tsx:66 +#: src/tables/build/BuildOrderTable.tsx:160 +#: src/tables/part/PartPurchaseOrdersTable.tsx:139 +#: src/tables/sales/ReturnOrderTable.tsx:85 +#: src/tables/sales/SalesOrderAllocationTable.tsx:69 +#: src/tables/sales/SalesOrderTable.tsx:85 +msgid "Include orders for part variants" +msgstr "" + +#: src/tables/build/BuildAllocatedStockTable.tsx:89 +#: src/tables/part/PartPurchaseOrdersTable.tsx:131 +#: src/tables/sales/SalesOrderAllocationTable.tsx:93 msgid "Order Status" msgstr "" -#: src/tables/build/BuildAllocatedStockTable.tsx:96 -#: src/tables/sales/SalesOrderAllocationTable.tsx:75 +#: src/tables/build/BuildAllocatedStockTable.tsx:117 +#: src/tables/sales/SalesOrderAllocationTable.tsx:126 msgid "Allocated Quantity" msgstr "" -#: src/tables/build/BuildAllocatedStockTable.tsx:116 -#: src/tables/sales/SalesOrderAllocationTable.tsx:94 +#: src/tables/build/BuildAllocatedStockTable.tsx:137 +#: src/tables/sales/SalesOrderAllocationTable.tsx:120 msgid "Available Quantity" msgstr "" -#: src/tables/build/BuildAllocatedStockTable.tsx:126 -#: src/tables/build/BuildOrderTestTable.tsx:176 -#: src/tables/build/BuildOrderTestTable.tsx:200 -#: src/tables/build/BuildOutputTable.tsx:312 -msgid "Build Output" +#: src/tables/build/BuildAllocatedStockTable.tsx:164 +#: src/tables/build/BuildLineTable.tsx:513 +msgid "Edit Stock Allocation" msgstr "" -#: src/tables/build/BuildAllocatedStockTable.tsx:143 -msgid "Edit Build Item" -msgstr "" +#: src/tables/build/BuildAllocatedStockTable.tsx:164 +#~ msgid "Edit Build Item" +#~ msgstr "Edit Build Item" -#: src/tables/build/BuildAllocatedStockTable.tsx:153 -msgid "Delete Build Item" -msgstr "" +#: src/tables/build/BuildAllocatedStockTable.tsx:174 +#~ msgid "Delete Build Item" +#~ msgstr "Delete Build Item" -#: src/tables/build/BuildLineTable.tsx:43 -#: src/tables/stock/StockItemTable.tsx:305 -msgid "Allocated" -msgstr "" - -#: src/tables/build/BuildLineTable.tsx:44 -msgid "Show allocated lines" -msgstr "" - -#: src/tables/build/BuildLineTable.tsx:49 -msgid "Show lines with available stock" -msgstr "" - -#: src/tables/build/BuildLineTable.tsx:54 -msgid "Show consumable lines" +#: src/tables/build/BuildAllocatedStockTable.tsx:177 +#: src/tables/build/BuildLineTable.tsx:526 +msgid "Delete Stock Allocation" msgstr "" #: src/tables/build/BuildLineTable.tsx:59 +#~ msgid "Show lines with available stock" +#~ msgstr "Show lines with available stock" + +#: src/tables/build/BuildLineTable.tsx:175 +msgid "Show allocated lines" +msgstr "" + +#: src/tables/build/BuildLineTable.tsx:185 +msgid "Show consumable lines" +msgstr "" + +#: src/tables/build/BuildLineTable.tsx:190 msgid "Show optional lines" msgstr "" -#: src/tables/build/BuildLineTable.tsx:68 +#: src/tables/build/BuildLineTable.tsx:199 #: src/tables/part/PartTable.tsx:208 msgid "Testable" msgstr "" -#: src/tables/build/BuildLineTable.tsx:73 -#: src/tables/stock/StockItemTable.tsx:364 +#: src/tables/build/BuildLineTable.tsx:204 +#: src/tables/stock/StockItemTable.tsx:368 msgid "Tracked" msgstr "" -#: src/tables/build/BuildLineTable.tsx:74 +#: src/tables/build/BuildLineTable.tsx:205 msgid "Show tracked lines" msgstr "" -#: src/tables/build/BuildLineTable.tsx:108 -#: src/tables/sales/SalesOrderLineItemTable.tsx:133 +#: src/tables/build/BuildLineTable.tsx:239 +#: src/tables/sales/SalesOrderLineItemTable.tsx:141 msgid "In production" msgstr "" -#: src/tables/build/BuildLineTable.tsx:136 +#: src/tables/build/BuildLineTable.tsx:267 msgid "Insufficient stock" msgstr "" -#: src/tables/build/BuildLineTable.tsx:152 -#: src/tables/sales/SalesOrderLineItemTable.tsx:121 -#: src/tables/stock/StockItemTable.tsx:186 +#: src/tables/build/BuildLineTable.tsx:283 +#: src/tables/sales/SalesOrderLineItemTable.tsx:129 +#: src/tables/stock/StockItemTable.tsx:175 msgid "No stock available" msgstr "" -#: src/tables/build/BuildLineTable.tsx:201 +#: src/tables/build/BuildLineTable.tsx:355 msgid "Gets Inherited" msgstr "" -#: src/tables/build/BuildLineTable.tsx:210 +#: src/tables/build/BuildLineTable.tsx:366 msgid "Unit Quantity" msgstr "" -#: src/tables/build/BuildLineTable.tsx:267 -#: src/tables/sales/SalesOrderLineItemTable.tsx:230 +#: src/tables/build/BuildLineTable.tsx:381 +msgid "Required Quantity" +msgstr "" + +#: src/tables/build/BuildLineTable.tsx:432 +#: src/tables/sales/SalesOrderLineItemTable.tsx:254 msgid "Create Build Order" msgstr "" -#: src/tables/build/BuildLineTable.tsx:298 -msgid "Allocate Stock" +#: src/tables/build/BuildLineTable.tsx:460 +msgid "Auto allocation in progress" +msgstr "Виконується автоматичний розподіл" + +#: src/tables/build/BuildLineTable.tsx:463 +#: src/tables/build/BuildLineTable.tsx:632 +msgid "Auto Allocate Stock" msgstr "" -#: src/tables/build/BuildLineTable.tsx:305 +#: src/tables/build/BuildLineTable.tsx:464 +msgid "Automatically allocate stock to this build according to the selected options" +msgstr "Автоматично виділяти запас для цієї збірки згідно вибраних опцій" + +#: src/tables/build/BuildLineTable.tsx:482 +#: src/tables/build/BuildLineTable.tsx:496 +#: src/tables/build/BuildLineTable.tsx:579 +#: src/tables/build/BuildLineTable.tsx:664 +#: src/tables/build/BuildOutputTable.tsx:314 +#: src/tables/build/BuildOutputTable.tsx:319 +msgid "Deallocate Stock" +msgstr "" + +#: src/tables/build/BuildLineTable.tsx:498 +msgid "Deallocate all untracked stock for this build order" +msgstr "" + +#: src/tables/build/BuildLineTable.tsx:500 +msgid "Deallocate stock from the selected line item" +msgstr "" + +#: src/tables/build/BuildLineTable.tsx:504 +msgid "Stock has been deallocated" +msgstr "" + +#: src/tables/build/BuildLineTable.tsx:589 msgid "Order Stock" msgstr "" -#: src/tables/build/BuildLineTable.tsx:312 +#: src/tables/build/BuildLineTable.tsx:596 msgid "Build Stock" msgstr "" -#: src/tables/build/BuildOrderTable.tsx:111 -msgid "Show active orders" +#: src/tables/build/BuildLineTable.tsx:610 +msgid "View Part" msgstr "" #: src/tables/build/BuildOrderTable.tsx:116 -msgid "Cascade" -msgstr "" +#~ msgid "Cascade" +#~ msgstr "Cascade" #: src/tables/build/BuildOrderTable.tsx:117 -msgid "Display recursive child orders" +#~ msgid "Display recursive child orders" +#~ msgstr "Display recursive child orders" + +#: src/tables/build/BuildOrderTable.tsx:121 +msgid "Show outstanding orders" msgstr "" -#: src/tables/build/BuildOrderTable.tsx:123 -#: src/tables/part/PartPurchaseOrdersTable.tsx:126 -#: src/tables/purchasing/PurchaseOrderTable.tsx:56 -#: src/tables/sales/ReturnOrderTable.tsx:47 -#: src/tables/sales/SalesOrderTable.tsx:54 +#: src/tables/build/BuildOrderTable.tsx:121 +#~ msgid "Show active orders" +#~ msgstr "Show active orders" + +#: src/tables/build/BuildOrderTable.tsx:122 +#~ msgid "Show overdue status" +#~ msgstr "Show overdue status" + +#: src/tables/build/BuildOrderTable.tsx:126 +#: src/tables/part/PartPurchaseOrdersTable.tsx:132 +#: src/tables/purchasing/PurchaseOrderTable.tsx:59 +#: src/tables/sales/ReturnOrderTable.tsx:57 +#: src/tables/sales/SalesOrderTable.tsx:57 msgid "Filter by order status" msgstr "" -#: src/tables/build/BuildOrderTable.tsx:130 -msgid "Show overdue status" -msgstr "" - -#: src/tables/build/BuildOrderTable.tsx:141 -#: src/tables/purchasing/PurchaseOrderTable.tsx:65 -#: src/tables/sales/ReturnOrderTable.tsx:56 -#: src/tables/sales/SalesOrderTable.tsx:63 +#: src/tables/build/BuildOrderTable.tsx:136 +#: src/tables/purchasing/PurchaseOrderTable.tsx:70 +#: src/tables/sales/ReturnOrderTable.tsx:68 +#: src/tables/sales/SalesOrderTable.tsx:68 msgid "Filter by project code" msgstr "" -#: src/tables/build/BuildOrderTable.tsx:146 -#: src/tables/purchasing/PurchaseOrderTable.tsx:70 -#: src/tables/sales/ReturnOrderTable.tsx:61 -#: src/tables/sales/SalesOrderTable.tsx:68 -msgid "Has Project Code" -msgstr "" - -#: src/tables/build/BuildOrderTable.tsx:147 +#: src/tables/build/BuildOrderTable.tsx:139 #: src/tables/purchasing/PurchaseOrderTable.tsx:71 #: src/tables/sales/ReturnOrderTable.tsx:62 #: src/tables/sales/SalesOrderTable.tsx:69 -msgid "Filter by whether the purchase order has a project code" -msgstr "" +#~ msgid "Filter by whether the purchase order has a project code" +#~ msgstr "Filter by whether the purchase order has a project code" -#: src/tables/build/BuildOrderTable.tsx:152 +#: src/tables/build/BuildOrderTable.tsx:143 msgid "Filter by user who issued this order" msgstr "" -#: src/tables/build/BuildOrderTable.tsx:158 -#: src/tables/purchasing/PurchaseOrderTable.tsx:76 -#: src/tables/sales/ReturnOrderTable.tsx:67 -#: src/tables/sales/SalesOrderTable.tsx:74 +#: src/tables/build/BuildOrderTable.tsx:149 +#: src/tables/purchasing/PurchaseOrderTable.tsx:77 +#: src/tables/sales/ReturnOrderTable.tsx:75 +#: src/tables/sales/SalesOrderTable.tsx:75 msgid "Filter by responsible owner" msgstr "" -#: src/tables/build/BuildOrderTestTable.tsx:75 -#: src/tables/build/BuildOrderTestTable.tsx:111 -#: src/tables/stock/StockItemTestResultTable.tsx:257 -#: src/tables/stock/StockItemTestResultTable.tsx:329 -#: src/tables/stock/StockItemTestResultTable.tsx:384 +#: src/tables/build/BuildOrderTestTable.tsx:76 +#: src/tables/build/BuildOrderTestTable.tsx:112 +#: src/tables/stock/StockItemTestResultTable.tsx:275 +#: src/tables/stock/StockItemTestResultTable.tsx:347 +#: src/tables/stock/StockItemTestResultTable.tsx:403 msgid "Add Test Result" msgstr "" -#: src/tables/build/BuildOrderTestTable.tsx:82 -#: src/tables/stock/StockItemTestResultTable.tsx:259 +#: src/tables/build/BuildOrderTestTable.tsx:83 +#: src/tables/stock/StockItemTestResultTable.tsx:277 msgid "Test result added" msgstr "" -#: src/tables/build/BuildOrderTestTable.tsx:110 -#: src/tables/stock/StockItemTestResultTable.tsx:174 +#: src/tables/build/BuildOrderTestTable.tsx:111 +#: src/tables/stock/StockItemTestResultTable.tsx:180 msgid "No Result" msgstr "" -#: src/tables/build/BuildOrderTestTable.tsx:220 +#: src/tables/build/BuildOrderTestTable.tsx:221 msgid "Show build outputs currently in production" msgstr "" +#: src/tables/build/BuildOutputTable.tsx:76 +msgid "Build Output Stock Allocation" +msgstr "" + #: src/tables/build/BuildOutputTable.tsx:161 #~ msgid "Delete build output" #~ msgstr "Delete build output" -#: src/tables/build/BuildOutputTable.tsx:173 -#: src/tables/build/BuildOutputTable.tsx:211 +#: src/tables/build/BuildOutputTable.tsx:258 +#: src/tables/build/BuildOutputTable.tsx:374 msgid "Add Build Output" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:216 +#: src/tables/build/BuildOutputTable.tsx:304 +#~ msgid "Edit build output" +#~ msgstr "Edit build output" + +#: src/tables/build/BuildOutputTable.tsx:306 +#: src/tables/build/BuildOutputTable.tsx:417 +msgid "Edit Build Output" +msgstr "" + +#: src/tables/build/BuildOutputTable.tsx:321 +msgid "This action will deallocate all stock from the selected build output" +msgstr "" + +#: src/tables/build/BuildOutputTable.tsx:341 msgid "Complete selected outputs" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:226 +#: src/tables/build/BuildOutputTable.tsx:352 msgid "Scrap selected outputs" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:236 +#: src/tables/build/BuildOutputTable.tsx:363 msgid "Cancel selected outputs" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:252 +#: src/tables/build/BuildOutputTable.tsx:385 msgid "Allocate" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:253 +#: src/tables/build/BuildOutputTable.tsx:386 msgid "Allocate stock to build output" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:259 +#: src/tables/build/BuildOutputTable.tsx:396 msgid "Deallocate" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:260 +#: src/tables/build/BuildOutputTable.tsx:397 msgid "Deallocate stock from build output" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:267 +#: src/tables/build/BuildOutputTable.tsx:408 msgid "Complete build output" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:276 +#: src/tables/build/BuildOutputTable.tsx:424 msgid "Scrap" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:277 +#: src/tables/build/BuildOutputTable.tsx:425 msgid "Scrap build output" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:280 -#~ msgid "Allocated Items" -#~ msgstr "Allocated Items" - -#: src/tables/build/BuildOutputTable.tsx:287 +#: src/tables/build/BuildOutputTable.tsx:435 msgid "Cancel build output" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:325 -msgid "Batch" -msgstr "" - -#: src/tables/build/BuildOutputTable.tsx:340 +#: src/tables/build/BuildOutputTable.tsx:488 msgid "Allocated Lines" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:355 +#: src/tables/build/BuildOutputTable.tsx:503 msgid "Required Tests" msgstr "" -#: src/tables/company/AddressTable.tsx:121 -#: src/tables/company/AddressTable.tsx:185 +#: src/tables/company/AddressTable.tsx:118 +#: src/tables/company/AddressTable.tsx:183 msgid "Add Address" msgstr "" -#: src/tables/company/AddressTable.tsx:126 +#: src/tables/company/AddressTable.tsx:123 msgid "Address created" msgstr "" -#: src/tables/company/AddressTable.tsx:135 +#: src/tables/company/AddressTable.tsx:132 msgid "Edit Address" msgstr "" -#: src/tables/company/AddressTable.tsx:143 +#: src/tables/company/AddressTable.tsx:140 msgid "Delete Address" msgstr "" -#: src/tables/company/AddressTable.tsx:144 +#: src/tables/company/AddressTable.tsx:141 msgid "Are you sure you want to delete this address?" msgstr "" @@ -6130,24 +7269,24 @@ msgstr "" #~ msgid "New Company" #~ msgstr "New Company" -#: src/tables/company/CompanyTable.tsx:74 -#: src/tables/company/CompanyTable.tsx:123 +#: src/tables/company/CompanyTable.tsx:75 +#: src/tables/company/CompanyTable.tsx:125 msgid "Add Company" msgstr "" -#: src/tables/company/CompanyTable.tsx:96 +#: src/tables/company/CompanyTable.tsx:97 msgid "Show active companies" msgstr "" -#: src/tables/company/CompanyTable.tsx:101 +#: src/tables/company/CompanyTable.tsx:102 msgid "Show companies which are suppliers" msgstr "" -#: src/tables/company/CompanyTable.tsx:106 +#: src/tables/company/CompanyTable.tsx:107 msgid "Show companies which are manufacturers" msgstr "" -#: src/tables/company/CompanyTable.tsx:111 +#: src/tables/company/CompanyTable.tsx:112 msgid "Show companies which are customers" msgstr "" @@ -6163,96 +7302,99 @@ msgstr "" msgid "Delete Contact" msgstr "" -#: src/tables/company/ContactTable.tsx:129 +#: src/tables/company/ContactTable.tsx:130 msgid "Add contact" msgstr "" -#: src/tables/general/AttachmentTable.tsx:130 +#: src/tables/general/AttachmentTable.tsx:135 msgid "File uploaded" msgstr "" -#: src/tables/general/AttachmentTable.tsx:131 +#: src/tables/general/AttachmentTable.tsx:136 msgid "File {0} uploaded successfully" msgstr "" -#: src/tables/general/AttachmentTable.tsx:142 +#: src/tables/general/AttachmentTable.tsx:147 msgid "Upload Error" msgstr "" -#: src/tables/general/AttachmentTable.tsx:143 +#: src/tables/general/AttachmentTable.tsx:148 msgid "File could not be uploaded" msgstr "" -#: src/tables/general/AttachmentTable.tsx:191 +#: src/tables/general/AttachmentTable.tsx:196 msgid "Upload Attachment" msgstr "" -#: src/tables/general/AttachmentTable.tsx:201 +#: src/tables/general/AttachmentTable.tsx:206 msgid "Edit Attachment" msgstr "" -#: src/tables/general/AttachmentTable.tsx:215 +#: src/tables/general/AttachmentTable.tsx:220 msgid "Delete Attachment" msgstr "" -#: src/tables/general/AttachmentTable.tsx:225 +#: src/tables/general/AttachmentTable.tsx:230 msgid "Is Link" msgstr "" -#: src/tables/general/AttachmentTable.tsx:226 +#: src/tables/general/AttachmentTable.tsx:231 msgid "Show link attachments" msgstr "" -#: src/tables/general/AttachmentTable.tsx:230 +#: src/tables/general/AttachmentTable.tsx:235 msgid "Is File" msgstr "" -#: src/tables/general/AttachmentTable.tsx:231 +#: src/tables/general/AttachmentTable.tsx:236 msgid "Show file attachments" msgstr "" -#: src/tables/general/AttachmentTable.tsx:240 +#: src/tables/general/AttachmentTable.tsx:245 msgid "Add attachment" msgstr "" -#: src/tables/general/AttachmentTable.tsx:251 -msgid "Add external link" -msgstr "" - #: src/tables/general/AttachmentTable.tsx:254 #~ msgid "Upload attachment" #~ msgstr "Upload attachment" -#: src/tables/general/AttachmentTable.tsx:299 +#: src/tables/general/AttachmentTable.tsx:256 +msgid "Add external link" +msgstr "" + +#: src/tables/general/AttachmentTable.tsx:304 msgid "No attachments found" msgstr "" -#: src/tables/general/AttachmentTable.tsx:337 +#: src/tables/general/AttachmentTable.tsx:343 msgid "Drag attachment file here to upload" msgstr "" #: src/tables/general/ExtraLineItemTable.tsx:86 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:251 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:60 -#: src/tables/sales/SalesOrderLineItemTable.tsx:196 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:263 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:362 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:72 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:168 +#: src/tables/sales/SalesOrderLineItemTable.tsx:206 +#: src/tables/sales/SalesOrderLineItemTable.tsx:291 msgid "Add Line Item" msgstr "" #: src/tables/general/ExtraLineItemTable.tsx:98 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:271 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:72 -#: src/tables/sales/SalesOrderLineItemTable.tsx:214 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:283 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:84 +#: src/tables/sales/SalesOrderLineItemTable.tsx:224 msgid "Edit Line Item" msgstr "" #: src/tables/general/ExtraLineItemTable.tsx:106 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:279 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:80 -#: src/tables/sales/SalesOrderLineItemTable.tsx:222 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:291 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:92 +#: src/tables/sales/SalesOrderLineItemTable.tsx:232 msgid "Delete Line Item" msgstr "" -#: src/tables/general/ExtraLineItemTable.tsx:142 +#: src/tables/general/ExtraLineItemTable.tsx:143 msgid "Add Extra Line Item" msgstr "" @@ -6261,12 +7403,12 @@ msgid "Machine restarted" msgstr "" #: src/tables/machine/MachineListTable.tsx:212 -#: src/tables/machine/MachineListTable.tsx:263 +#: src/tables/machine/MachineListTable.tsx:261 msgid "Edit machine" msgstr "" #: src/tables/machine/MachineListTable.tsx:226 -#: src/tables/machine/MachineListTable.tsx:267 +#: src/tables/machine/MachineListTable.tsx:265 msgid "Delete machine" msgstr "" @@ -6278,51 +7420,50 @@ msgstr "" msgid "Are you sure you want to remove the machine \"{0}\"?" msgstr "" -#: src/tables/machine/MachineListTable.tsx:255 -#: src/tables/machine/MachineListTable.tsx:432 +#: src/tables/machine/MachineListTable.tsx:254 +#: src/tables/machine/MachineListTable.tsx:442 msgid "Restart required" msgstr "" -#: src/tables/machine/MachineListTable.tsx:259 +#: src/tables/machine/MachineListTable.tsx:258 msgid "Machine Actions" msgstr "" -#: src/tables/machine/MachineListTable.tsx:272 +#: src/tables/machine/MachineListTable.tsx:270 msgid "Restart" msgstr "" -#: src/tables/machine/MachineListTable.tsx:274 +#: src/tables/machine/MachineListTable.tsx:272 msgid "Restart machine" msgstr "" -#: src/tables/machine/MachineListTable.tsx:276 +#: src/tables/machine/MachineListTable.tsx:274 msgid "manual restart required" msgstr "" +#: src/tables/machine/MachineListTable.tsx:291 +#~ msgid "Machine information" +#~ msgstr "Machine information" + #: src/tables/machine/MachineListTable.tsx:292 -msgid "Machine information" +msgid "Machine Information" msgstr "" -#: src/tables/machine/MachineListTable.tsx:303 -#: src/tables/machine/MachineListTable.tsx:599 +#: src/tables/machine/MachineListTable.tsx:302 +#: src/tables/machine/MachineListTable.tsx:610 msgid "Machine Type" msgstr "" -#: src/tables/machine/MachineListTable.tsx:316 +#: src/tables/machine/MachineListTable.tsx:315 msgid "Machine Driver" msgstr "" -#: src/tables/machine/MachineListTable.tsx:329 +#: src/tables/machine/MachineListTable.tsx:330 msgid "Initialized" msgstr "" -#: src/tables/machine/MachineListTable.tsx:350 -#: src/tables/machine/MachineTypeTable.tsx:261 -msgid "Errors" -msgstr "" - -#: src/tables/machine/MachineListTable.tsx:358 -#: src/tables/machine/MachineTypeTable.tsx:269 +#: src/tables/machine/MachineListTable.tsx:359 +#: src/tables/machine/MachineTypeTable.tsx:290 msgid "No errors reported" msgstr "" @@ -6330,7 +7471,7 @@ msgstr "" msgid "Machine Settings" msgstr "" -#: src/tables/machine/MachineListTable.tsx:389 +#: src/tables/machine/MachineListTable.tsx:394 msgid "Driver Settings" msgstr "" @@ -6338,86 +7479,109 @@ msgstr "" #~ msgid "Create machine" #~ msgstr "Create machine" -#: src/tables/machine/MachineListTable.tsx:506 +#: src/tables/machine/MachineListTable.tsx:516 +#: src/tables/machine/MachineListTable.tsx:558 msgid "Add machine" msgstr "" #: src/tables/machine/MachineListTable.tsx:561 -msgid "Machine detail" +#~ msgid "Machine detail" +#~ msgstr "Machine detail" + +#: src/tables/machine/MachineListTable.tsx:572 +msgid "Machine Detail" msgstr "" -#: src/tables/machine/MachineListTable.tsx:608 +#: src/tables/machine/MachineListTable.tsx:619 msgid "Driver" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:73 +#: src/tables/machine/MachineTypeTable.tsx:78 msgid "Builtin driver" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:89 +#: src/tables/machine/MachineTypeTable.tsx:96 +msgid "Not Found" +msgstr "" + +#: src/tables/machine/MachineTypeTable.tsx:99 msgid "Machine type not found." msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:97 -msgid "Machine type information" +#: src/tables/machine/MachineTypeTable.tsx:99 +#~ msgid "Machine type information" +#~ msgstr "Machine type information" + +#: src/tables/machine/MachineTypeTable.tsx:109 +msgid "Machine Type Information" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:110 -#: src/tables/machine/MachineTypeTable.tsx:217 +#: src/tables/machine/MachineTypeTable.tsx:124 +#: src/tables/machine/MachineTypeTable.tsx:238 msgid "Slug" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:118 -#: src/tables/machine/MachineTypeTable.tsx:238 +#: src/tables/machine/MachineTypeTable.tsx:135 +#: src/tables/machine/MachineTypeTable.tsx:259 msgid "Provider plugin" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:130 -#: src/tables/machine/MachineTypeTable.tsx:250 +#: src/tables/machine/MachineTypeTable.tsx:147 +#: src/tables/machine/MachineTypeTable.tsx:271 msgid "Provider file" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:135 -#: src/tables/machine/MachineTypeTable.tsx:255 -#: src/tables/plugin/PluginListTable.tsx:180 -#: src/tables/plugin/PluginListTable.tsx:568 -msgid "Builtin" +#: src/tables/machine/MachineTypeTable.tsx:148 +#~ msgid "Available drivers" +#~ msgstr "Available drivers" + +#: src/tables/machine/MachineTypeTable.tsx:162 +msgid "Available Drivers" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:146 -msgid "Available drivers" -msgstr "" - -#: src/tables/machine/MachineTypeTable.tsx:196 +#: src/tables/machine/MachineTypeTable.tsx:217 msgid "Machine driver not found." msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:204 +#: src/tables/machine/MachineTypeTable.tsx:225 msgid "Machine driver information" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:224 +#: src/tables/machine/MachineTypeTable.tsx:245 msgid "Machine type" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:327 +#: src/tables/machine/MachineTypeTable.tsx:338 +#~ msgid "Machine type detail" +#~ msgstr "Machine type detail" + +#: src/tables/machine/MachineTypeTable.tsx:348 msgid "Builtin type" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:336 -msgid "Machine type detail" +#: src/tables/machine/MachineTypeTable.tsx:348 +#~ msgid "Machine driver detail" +#~ msgstr "Machine driver detail" + +#: src/tables/machine/MachineTypeTable.tsx:357 +msgid "Machine Type Detail" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:346 -msgid "Machine driver detail" +#: src/tables/machine/MachineTypeTable.tsx:367 +msgid "Machine Driver Detail" msgstr "" #: src/tables/notifications/NotificationsTable.tsx:26 msgid "Age" msgstr "" +#: src/tables/notifications/NotificationsTable.tsx:36 +msgid "Notification" +msgstr "Сповіщення" + #: src/tables/notifications/NotificationsTable.tsx:40 #: src/tables/plugin/PluginErrorTable.tsx:37 +#: src/tables/settings/ErrorTable.tsx:50 msgid "Message" msgstr "" @@ -6451,33 +7615,32 @@ msgstr "" msgid "Show assembly parts" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:68 +#: src/tables/part/PartCategoryTable.tsx:48 +msgid "You are subscribed to notifications for this category" +msgstr "" + +#: src/tables/part/PartCategoryTable.tsx:80 #: src/tables/part/PartTable.tsx:196 msgid "Include Subcategories" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:69 +#: src/tables/part/PartCategoryTable.tsx:81 msgid "Include subcategories in results" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:74 +#: src/tables/part/PartCategoryTable.tsx:86 msgid "Show structural categories" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:78 -#: src/tables/part/PartTable.tsx:294 -msgid "Subscribed" -msgstr "" - -#: src/tables/part/PartCategoryTable.tsx:79 +#: src/tables/part/PartCategoryTable.tsx:91 msgid "Show categories to which the user is subscribed" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:86 +#: src/tables/part/PartCategoryTable.tsx:100 msgid "New Part Category" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:112 +#: src/tables/part/PartCategoryTable.tsx:129 msgid "Add Part Category" msgstr "" @@ -6523,11 +7686,6 @@ msgstr "" msgid "Part parameters cannot be edited, as the part is locked" msgstr "" -#: src/tables/part/PartParameterTable.tsx:212 -#: src/tables/stock/StockItemTable.tsx:335 -msgid "Include Variants" -msgstr "" - #: src/tables/part/PartParameterTemplateTable.tsx:31 msgid "Checkbox" msgstr "" @@ -6554,6 +7712,7 @@ msgid "Show templates with units" msgstr "" #: src/tables/part/PartParameterTemplateTable.tsx:85 +#: src/tables/part/PartParameterTemplateTable.tsx:141 msgid "Add Parameter Template" msgstr "" @@ -6566,23 +7725,19 @@ msgid "Delete Parameter Template" msgstr "" #: src/tables/part/PartParameterTemplateTable.tsx:141 -msgid "Add parameter template" -msgstr "" +#~ msgid "Add parameter template" +#~ msgstr "Add parameter template" -#: src/tables/part/PartPurchaseOrdersTable.tsx:77 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:162 +#: src/tables/part/PartPurchaseOrdersTable.tsx:78 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:168 msgid "Total Quantity" msgstr "" -#: src/tables/part/PartPurchaseOrdersTable.tsx:115 -msgid "Pending" -msgstr "" - -#: src/tables/part/PartPurchaseOrdersTable.tsx:116 +#: src/tables/part/PartPurchaseOrdersTable.tsx:122 msgid "Show pending orders" msgstr "" -#: src/tables/part/PartPurchaseOrdersTable.tsx:121 +#: src/tables/part/PartPurchaseOrdersTable.tsx:127 msgid "Show received items" msgstr "" @@ -6728,22 +7883,13 @@ msgstr "" msgid "Results" msgstr "" -#: src/tables/part/PartTestTemplateTable.tsx:76 -msgid "No Results" -msgstr "" - -#: src/tables/part/PartTestTemplateTable.tsx:106 -#: src/tables/stock/StockItemTestResultTable.tsx:365 -msgid "Required" -msgstr "" - #: src/tables/part/PartTestTemplateTable.tsx:107 msgid "Show required tests" msgstr "" #: src/tables/part/PartTestTemplateTable.tsx:111 -#: src/tables/settings/TemplateTable.tsx:167 -#: src/tables/settings/TemplateTable.tsx:283 +#: src/tables/settings/TemplateTable.tsx:247 +#: src/tables/settings/TemplateTable.tsx:363 msgid "Enabled" msgstr "" @@ -6784,7 +7930,7 @@ msgid "Show tests which have recorded results" msgstr "" #: src/tables/part/PartTestTemplateTable.tsx:154 -#: src/tables/part/PartTestTemplateTable.tsx:237 +#: src/tables/part/PartTestTemplateTable.tsx:238 msgid "Add Test Template" msgstr "" @@ -6802,13 +7948,13 @@ msgstr "" #: src/tables/part/PartTestTemplateTable.tsx:185 msgid "Any tests results associated with this template will be deleted" -msgstr "" +msgstr "Будь-які результати тестів, пов'язані з цим шаблоном, будуть видалені" #: src/tables/part/PartTestTemplateTable.tsx:204 msgid "View Parent Part" msgstr "" -#: src/tables/part/PartTestTemplateTable.tsx:257 +#: src/tables/part/PartTestTemplateTable.tsx:258 msgid "Part templates cannot be edited, as the part is locked" msgstr "" @@ -6836,28 +7982,49 @@ msgstr "" msgid "Show trackable variants" msgstr "" -#: src/tables/part/RelatedPartTable.tsx:84 +#: src/tables/part/RelatedPartTable.tsx:86 +#: src/tables/part/RelatedPartTable.tsx:109 msgid "Add Related Part" msgstr "" -#: src/tables/part/RelatedPartTable.tsx:99 +#: src/tables/part/RelatedPartTable.tsx:101 msgid "Delete Related Part" msgstr "" -#: src/tables/part/RelatedPartTable.tsx:106 -msgid "Add related part" -msgstr "" +#: src/tables/part/RelatedPartTable.tsx:109 +#~ msgid "Add related part" +#~ msgstr "Add related part" #: src/tables/plugin/PluginErrorTable.tsx:29 msgid "Stage" msgstr "" -#: src/tables/plugin/PluginListTable.tsx:95 -msgid "Plugin with key {pluginKey} not found" +#: src/tables/plugin/PluginListTable.tsx:42 +msgid "Plugin is active" msgstr "" +#: src/tables/plugin/PluginListTable.tsx:48 +msgid "Plugin is inactive" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:55 +msgid "Plugin is not installed" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:76 +msgid "Plugin" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:95 +#~ msgid "Plugin with key {pluginKey} not found" +#~ msgstr "Plugin with key {pluginKey} not found" + #: src/tables/plugin/PluginListTable.tsx:97 -msgid "An error occurred while fetching plugin details" +#~ msgid "An error occurred while fetching plugin details" +#~ msgstr "An error occurred while fetching plugin details" + +#: src/tables/plugin/PluginListTable.tsx:109 +msgid "Description not available" msgstr "" #: src/tables/plugin/PluginListTable.tsx:113 @@ -6865,12 +8032,8 @@ msgstr "" #~ msgstr "Plugin with id {id} not found" #: src/tables/plugin/PluginListTable.tsx:122 -msgid "Plugin information" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:134 -msgid "Author" -msgstr "" +#~ msgid "Plugin information" +#~ msgstr "Plugin information" #: src/tables/plugin/PluginListTable.tsx:134 #~ msgid "Plugin Actions" @@ -6881,79 +8044,124 @@ msgstr "" #~ msgid "Edit plugin" #~ msgstr "Edit plugin" +#: src/tables/plugin/PluginListTable.tsx:144 +msgid "Confirm plugin activation" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:145 +msgid "Confirm plugin deactivation" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:150 +msgid "The selected plugin will be activated" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:151 +msgid "The selected plugin will be deactivated" +msgstr "" + #: src/tables/plugin/PluginListTable.tsx:152 #: src/tables/plugin/PluginListTable.tsx:153 #~ msgid "Reload" #~ msgstr "Reload" -#: src/tables/plugin/PluginListTable.tsx:154 -msgid "Plugin is not active" -msgstr "" - #: src/tables/plugin/PluginListTable.tsx:163 -msgid "Package information" -msgstr "" +#~ msgid "Package information" +#~ msgstr "Package information" #: src/tables/plugin/PluginListTable.tsx:169 -msgid "Package Name" +msgid "Deactivate" msgstr "" -#: src/tables/plugin/PluginListTable.tsx:175 -msgid "Installation Path" +#: src/tables/plugin/PluginListTable.tsx:183 +msgid "Activate" msgstr "" -#: src/tables/plugin/PluginListTable.tsx:185 -msgid "Package" +#: src/tables/plugin/PluginListTable.tsx:184 +msgid "Activate selected plugin" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:196 +msgid "Update selected plugin" msgstr "" #: src/tables/plugin/PluginListTable.tsx:197 -msgid "Plugin settings" -msgstr "" +#~ msgid "Plugin settings" +#~ msgstr "Plugin settings" #: src/tables/plugin/PluginListTable.tsx:214 -msgid "Plugin is active" +#: src/tables/stock/InstalledItemsTable.tsx:107 +msgid "Uninstall" msgstr "" -#: src/tables/plugin/PluginListTable.tsx:220 -msgid "Plugin is inactive" +#: src/tables/plugin/PluginListTable.tsx:215 +msgid "Uninstall selected plugin" msgstr "" -#: src/tables/plugin/PluginListTable.tsx:227 -msgid "Plugin is not installed" +#: src/tables/plugin/PluginListTable.tsx:233 +msgid "Delete selected plugin configuration" msgstr "" -#: src/tables/plugin/PluginListTable.tsx:253 -msgid "Plugin" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:287 -msgid "Description not available" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:319 -msgid "Confirm plugin activation" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:320 -msgid "Confirm plugin deactivation" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:325 -msgid "The selected plugin will be activated" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:326 -msgid "The selected plugin will be deactivated" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:334 +#: src/tables/plugin/PluginListTable.tsx:249 msgid "Activate Plugin" msgstr "" +#: src/tables/plugin/PluginListTable.tsx:270 +msgid "Install plugin" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:283 +msgid "Install" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:284 +msgid "Plugin installed successfully" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:289 +msgid "Uninstall Plugin" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:301 +msgid "Confirm plugin uninstall" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:304 +msgid "The selected plugin will be uninstalled." +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:308 +#~ msgid "This action cannot be undone." +#~ msgstr "This action cannot be undone." + +#: src/tables/plugin/PluginListTable.tsx:309 +msgid "Plugin uninstalled successfully" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:317 +msgid "Delete Plugin" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:318 +msgid "Deleting this plugin configuration will remove all associated settings and data. Are you sure you want to delete this plugin?" +msgstr "Видалення налаштувань цього плагіну призведе до видалення всіх пов'язаних налаштувань та даних. Ви дійсно бажаєте видалити цей плагін?" + +#: src/tables/plugin/PluginListTable.tsx:331 +msgid "Plugins reloaded" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:332 +msgid "Plugins were reloaded successfully" +msgstr "" + #: src/tables/plugin/PluginListTable.tsx:338 #~ msgid "Deactivate Plugin" #~ msgstr "Deactivate Plugin" +#: src/tables/plugin/PluginListTable.tsx:350 +msgid "Reload Plugins" +msgstr "" + #: src/tables/plugin/PluginListTable.tsx:354 #~ msgid "The following plugin will be activated" #~ msgstr "The following plugin will be activated" @@ -6962,16 +8170,16 @@ msgstr "" #~ msgid "The following plugin will be deactivated" #~ msgstr "The following plugin will be deactivated" -#: src/tables/plugin/PluginListTable.tsx:362 -msgid "Deactivate" +#: src/tables/plugin/PluginListTable.tsx:357 +msgid "Install Plugin" msgstr "" #: src/tables/plugin/PluginListTable.tsx:366 #~ msgid "Confirm" #~ msgstr "Confirm" -#: src/tables/plugin/PluginListTable.tsx:373 -msgid "Activate" +#: src/tables/plugin/PluginListTable.tsx:374 +msgid "Plugin Detail" msgstr "" #: src/tables/plugin/PluginListTable.tsx:376 @@ -6998,76 +8206,12 @@ msgstr "" #~ msgid "Error updating plugin" #~ msgstr "Error updating plugin" -#: src/tables/plugin/PluginListTable.tsx:406 -msgid "Uninstall" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:438 -msgid "Install plugin" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:451 -msgid "Install" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:452 -msgid "Plugin installed successfully" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:457 -msgid "Uninstall Plugin" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:469 -msgid "Confirm plugin uninstall" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:472 -msgid "The selected plugin will be uninstalled." -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:473 -msgid "This action cannot be undone." -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:477 -msgid "Plugin uninstalled successfully" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:484 -msgid "Delete Plugin" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:485 -msgid "Deleting this plugin configuration will remove all associated settings and data. Are you sure you want to delete this plugin?" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:498 -msgid "Plugins reloaded" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:499 -msgid "Plugins were reloaded successfully" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:515 -msgid "Reload Plugins" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:524 -msgid "Install Plugin" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:544 -msgid "Plugin Detail" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:573 +#: src/tables/plugin/PluginListTable.tsx:411 msgid "Sample" msgstr "" -#: src/tables/plugin/PluginListTable.tsx:578 -#: src/tables/stock/StockItemTable.tsx:340 +#: src/tables/plugin/PluginListTable.tsx:416 +#: src/tables/stock/StockItemTable.tsx:344 msgid "Installed" msgstr "" @@ -7116,82 +8260,78 @@ msgstr "" #~ msgid "Are you sure you want to remove this manufacturer part?" #~ msgstr "Are you sure you want to remove this manufacturer part?" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:102 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:339 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:103 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:356 msgid "Import Line Items" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:135 -msgid "Part Description" -msgstr "" - -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:201 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:207 msgid "Supplier Code" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:208 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:214 msgid "Supplier Link" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:215 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:220 msgid "Manufacturer Code" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:229 -msgid "Destination" +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:248 +msgid "Show line items which have been received" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:300 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:316 msgid "Receive line item" msgstr "" #: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:344 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:142 -#: src/tables/sales/SalesOrderLineItemTable.tsx:240 -msgid "Add line item" -msgstr "" +#: src/tables/sales/ReturnOrderLineItemTable.tsx:160 +#: src/tables/sales/SalesOrderLineItemTable.tsx:258 +#~ msgid "Add line item" +#~ msgstr "Add line item" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:354 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:373 msgid "Receive items" msgstr "" -#: src/tables/purchasing/SupplierPartTable.tsx:93 +#: src/tables/purchasing/SupplierPartTable.tsx:95 msgid "MPN" msgstr "" -#: src/tables/purchasing/SupplierPartTable.tsx:122 +#: src/tables/purchasing/SupplierPartTable.tsx:124 msgid "Base units" msgstr "" -#: src/tables/purchasing/SupplierPartTable.tsx:170 +#: src/tables/purchasing/SupplierPartTable.tsx:172 msgid "Supplier part created" msgstr "" -#: src/tables/purchasing/SupplierPartTable.tsx:176 +#: src/tables/purchasing/SupplierPartTable.tsx:179 msgid "Add supplier part" msgstr "" -#: src/tables/purchasing/SupplierPartTable.tsx:188 +#: src/tables/purchasing/SupplierPartTable.tsx:191 msgid "Show active supplier parts" msgstr "" -#: src/tables/purchasing/SupplierPartTable.tsx:192 -msgid "Active Part" -msgstr "" - -#: src/tables/purchasing/SupplierPartTable.tsx:193 -msgid "Show active internal parts" -msgstr "" - #: src/tables/purchasing/SupplierPartTable.tsx:193 #~ msgid "Supplier part updated" #~ msgstr "Supplier part updated" -#: src/tables/purchasing/SupplierPartTable.tsx:197 +#: src/tables/purchasing/SupplierPartTable.tsx:195 +msgid "Active Part" +msgstr "" + +#: src/tables/purchasing/SupplierPartTable.tsx:196 +msgid "Show active internal parts" +msgstr "" + +#: src/tables/purchasing/SupplierPartTable.tsx:200 msgid "Active Supplier" msgstr "" -#: src/tables/purchasing/SupplierPartTable.tsx:198 +#: src/tables/purchasing/SupplierPartTable.tsx:201 msgid "Show active suppliers" msgstr "" @@ -7203,99 +8343,187 @@ msgstr "" #~ msgid "Are you sure you want to remove this supplier part?" #~ msgstr "Are you sure you want to remove this supplier part?" -#: src/tables/sales/ReturnOrderLineItemTable.tsx:114 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:139 msgid "Received Date" msgstr "" -#: src/tables/sales/ReturnOrderLineItemTable.tsx:128 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:153 msgid "Show items which have been received" msgstr "" -#: src/tables/sales/ReturnOrderLineItemTable.tsx:133 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:158 msgid "Filter by line item status" msgstr "" -#: src/tables/sales/ReturnOrderLineItemTable.tsx:158 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:176 +msgid "Receive selected items" +msgstr "" + +#: src/tables/sales/ReturnOrderLineItemTable.tsx:205 msgid "Receive Item" msgstr "" -#: src/tables/sales/SalesOrderLineItemTable.tsx:262 -msgid "Allocate stock" +#: src/tables/sales/SalesOrderAllocationTable.tsx:60 +msgid "Show outstanding allocations" msgstr "" -#: src/tables/sales/SalesOrderLineItemTable.tsx:272 +#: src/tables/sales/SalesOrderAllocationTable.tsx:168 +#: src/tables/sales/SalesOrderAllocationTable.tsx:190 +msgid "Edit Allocation" +msgstr "" + +#: src/tables/sales/SalesOrderAllocationTable.tsx:175 +#: src/tables/sales/SalesOrderAllocationTable.tsx:197 +msgid "Delete Allocation" +msgstr "" + +#: src/tables/sales/SalesOrderLineItemTable.tsx:244 +msgid "Allocate Serial Numbers" +msgstr "" + +#: src/tables/sales/SalesOrderLineItemTable.tsx:277 +msgid "Show lines which are fully allocated" +msgstr "" + +#: src/tables/sales/SalesOrderLineItemTable.tsx:280 +#~ msgid "Allocate stock" +#~ msgstr "Allocate stock" + +#: src/tables/sales/SalesOrderLineItemTable.tsx:282 +msgid "Show lines which are completed" +msgstr "" + +#: src/tables/sales/SalesOrderLineItemTable.tsx:291 +#~ msgid "Allocate Serials" +#~ msgstr "Allocate Serials" + +#: src/tables/sales/SalesOrderLineItemTable.tsx:340 +msgid "Allocate serials" +msgstr "" + +#: src/tables/sales/SalesOrderLineItemTable.tsx:356 msgid "Build stock" msgstr "" -#: src/tables/sales/SalesOrderLineItemTable.tsx:289 -#: src/tables/stock/StockItemTable.tsx:507 +#: src/tables/sales/SalesOrderLineItemTable.tsx:373 +#: src/tables/stock/StockItemTable.tsx:512 msgid "Order stock" msgstr "" -#: src/tables/sales/SalesOrderShipmentTable.tsx:40 +#: src/tables/sales/SalesOrderShipmentTable.tsx:51 +#~ msgid "Delete Shipment" +#~ msgstr "Delete Shipment" + +#: src/tables/sales/SalesOrderShipmentTable.tsx:57 msgid "Create Shipment" msgstr "" -#: src/tables/sales/SalesOrderShipmentTable.tsx:50 -msgid "Delete Shipment" -msgstr "" - -#: src/tables/sales/SalesOrderShipmentTable.tsx:58 -msgid "Edit Shipment" -msgstr "" - -#: src/tables/sales/SalesOrderShipmentTable.tsx:66 -msgid "Shipment Reference" -msgstr "" - -#: src/tables/sales/SalesOrderShipmentTable.tsx:71 +#: src/tables/sales/SalesOrderShipmentTable.tsx:104 msgid "Items" msgstr "" -#: src/tables/sales/SalesOrderShipmentTable.tsx:83 -msgid "Delivery Date" +#: src/tables/sales/SalesOrderShipmentTable.tsx:139 +msgid "View Shipment" msgstr "" -#: src/tables/sales/SalesOrderShipmentTable.tsx:107 -msgid "Complete Shipment" +#: src/tables/sales/SalesOrderShipmentTable.tsx:161 +msgid "Edit shipment" msgstr "" -#: src/tables/sales/SalesOrderShipmentTable.tsx:133 +#: src/tables/sales/SalesOrderShipmentTable.tsx:169 +msgid "Cancel shipment" +msgstr "" + +#: src/tables/sales/SalesOrderShipmentTable.tsx:184 msgid "Add shipment" msgstr "" -#: src/tables/sales/SalesOrderShipmentTable.tsx:146 -msgid "Shipped" -msgstr "" - -#: src/tables/sales/SalesOrderShipmentTable.tsx:147 +#: src/tables/sales/SalesOrderShipmentTable.tsx:198 msgid "Show shipments which have been shipped" msgstr "" -#: src/tables/sales/SalesOrderShipmentTable.tsx:151 -msgid "Delivered" -msgstr "" - -#: src/tables/sales/SalesOrderShipmentTable.tsx:152 +#: src/tables/sales/SalesOrderShipmentTable.tsx:203 msgid "Show shipments which have been delivered" msgstr "" -#: src/tables/settings/CurrencyTable.tsx:28 -msgid "Rate" +#: src/tables/settings/BarcodeScanHistoryTable.tsx:61 +msgid "Barcode Information" msgstr "" -#: src/tables/settings/CurrencyTable.tsx:40 -msgid "Exchange rates updated" +#: src/tables/settings/BarcodeScanHistoryTable.tsx:76 +#: src/tables/settings/ErrorTable.tsx:59 +msgid "Timestamp" msgstr "" -#: src/tables/settings/CurrencyTable.tsx:46 -msgid "Exchange rate update error" +#: src/tables/settings/BarcodeScanHistoryTable.tsx:86 +msgid "Endpoint" msgstr "" -#: src/tables/settings/CurrencyTable.tsx:57 -msgid "Refresh currency exchange rates" +#: src/tables/settings/BarcodeScanHistoryTable.tsx:90 +#: src/tables/settings/BarcodeScanHistoryTable.tsx:217 +#: src/tables/stock/StockItemTestResultTable.tsx:174 +msgid "Result" msgstr "" +#: src/tables/settings/BarcodeScanHistoryTable.tsx:98 +msgid "Context" +msgstr "" + +#: src/tables/settings/BarcodeScanHistoryTable.tsx:119 +msgid "Response" +msgstr "" + +#: src/tables/settings/BarcodeScanHistoryTable.tsx:213 +#: src/tables/settings/ImportSessionTable.tsx:121 +#: src/tables/stock/StockTrackingTable.tsx:183 +msgid "Filter by user" +msgstr "" + +#: src/tables/settings/BarcodeScanHistoryTable.tsx:218 +msgid "Filter by result" +msgstr "" + +#: src/tables/settings/BarcodeScanHistoryTable.tsx:232 +msgid "Delete Barcode Scan Record" +msgstr "" + +#: src/tables/settings/BarcodeScanHistoryTable.tsx:258 +msgid "Barcode Scan Details" +msgstr "" + +#: src/tables/settings/BarcodeScanHistoryTable.tsx:268 +msgid "Logging Disabled" +msgstr "" + +#: src/tables/settings/BarcodeScanHistoryTable.tsx:270 +msgid "Barcode logging is not enabled" +msgstr "" + +#: src/tables/settings/CustomStateTable.tsx:36 +msgid "Display Name" +msgstr "" + +#: src/tables/settings/CustomStateTable.tsx:52 +msgid "Model" +msgstr "" + +#: src/tables/settings/CustomStateTable.tsx:65 +#: src/tables/settings/CustomStateTable.tsx:115 +msgid "Add State" +msgstr "" + +#: src/tables/settings/CustomStateTable.tsx:77 +msgid "Edit State" +msgstr "" + +#: src/tables/settings/CustomStateTable.tsx:85 +msgid "Delete State" +msgstr "" + +#: src/tables/settings/CustomStateTable.tsx:115 +#~ msgid "Add state" +#~ msgstr "Add state" + #: src/tables/settings/CustomUnitsTable.tsx:50 msgid "Add Custom Unit" msgstr "" @@ -7312,59 +8540,71 @@ msgstr "" msgid "Add custom unit" msgstr "" -#: src/tables/settings/ErrorTable.tsx:31 -msgid "When" -msgstr "" - -#: src/tables/settings/ErrorTable.tsx:41 -msgid "Error Information" -msgstr "" - #: src/tables/settings/ErrorTable.tsx:51 #~ msgid "Delete error report" #~ msgstr "Delete error report" -#: src/tables/settings/ErrorTable.tsx:53 +#: src/tables/settings/ErrorTable.tsx:67 +msgid "Traceback" +msgstr "" + +#: src/tables/settings/ErrorTable.tsx:103 +msgid "When" +msgstr "" + +#: src/tables/settings/ErrorTable.tsx:113 +msgid "Error Information" +msgstr "" + +#: src/tables/settings/ErrorTable.tsx:123 msgid "Delete Error Report" msgstr "" -#: src/tables/settings/ErrorTable.tsx:55 +#: src/tables/settings/ErrorTable.tsx:125 msgid "Are you sure you want to delete this error report?" msgstr "" -#: src/tables/settings/ErrorTable.tsx:57 +#: src/tables/settings/ErrorTable.tsx:127 msgid "Error report deleted" msgstr "" -#: src/tables/settings/ErrorTable.tsx:79 -#: src/tables/settings/FailedTasksTable.tsx:59 +#: src/tables/settings/ErrorTable.tsx:146 +#: src/tables/settings/FailedTasksTable.tsx:65 msgid "Error Details" msgstr "" -#: src/tables/settings/FailedTasksTable.tsx:26 -#: src/tables/settings/PendingTasksTable.tsx:19 +#: src/tables/settings/FailedTasksTable.tsx:32 +#: src/tables/settings/PendingTasksTable.tsx:23 #: src/tables/settings/ScheduledTasksTable.tsx:19 msgid "Task" msgstr "" -#: src/tables/settings/FailedTasksTable.tsx:32 -#: src/tables/settings/PendingTasksTable.tsx:24 +#: src/tables/settings/FailedTasksTable.tsx:38 +#: src/tables/settings/PendingTasksTable.tsx:28 msgid "Task ID" msgstr "" -#: src/tables/settings/FailedTasksTable.tsx:36 -#: src/tables/stock/StockItemTestResultTable.tsx:211 +#: src/tables/settings/FailedTasksTable.tsx:42 +#: src/tables/stock/StockItemTestResultTable.tsx:218 msgid "Started" msgstr "" -#: src/tables/settings/FailedTasksTable.tsx:42 +#: src/tables/settings/FailedTasksTable.tsx:48 msgid "Stopped" msgstr "" -#: src/tables/settings/FailedTasksTable.tsx:48 +#: src/tables/settings/FailedTasksTable.tsx:54 msgid "Attempts" msgstr "" +#: src/tables/settings/FailedTasksTable.tsx:92 +msgid "No Information" +msgstr "" + +#: src/tables/settings/FailedTasksTable.tsx:93 +msgid "No error details are available for this task" +msgstr "" + #: src/tables/settings/GroupTable.tsx:90 msgid "Group with id {id} not found" msgstr "" @@ -7398,42 +8638,34 @@ msgstr "" msgid "Edit group" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:38 +#: src/tables/settings/ImportSessionTable.tsx:37 msgid "Delete Import Session" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:44 +#: src/tables/settings/ImportSessionTable.tsx:43 #: src/tables/settings/ImportSessionTable.tsx:131 msgid "Create Import Session" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:69 +#: src/tables/settings/ImportSessionTable.tsx:68 msgid "Uploaded" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:79 -msgid "Imported Rows" -msgstr "" - -#: src/tables/settings/ImportSessionTable.tsx:109 -#: src/tables/settings/TemplateTable.tsx:289 +#: src/tables/settings/ImportSessionTable.tsx:108 +#: src/tables/settings/TemplateTable.tsx:369 msgid "Model Type" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:110 -#: src/tables/settings/TemplateTable.tsx:290 +#: src/tables/settings/ImportSessionTable.tsx:109 +#: src/tables/settings/TemplateTable.tsx:370 msgid "Filter by target model type" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:116 +#: src/tables/settings/ImportSessionTable.tsx:115 msgid "Filter by import session status" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:122 -msgid "Filter by user" -msgstr "" - -#: src/tables/settings/PendingTasksTable.tsx:38 +#: src/tables/settings/PendingTasksTable.tsx:42 msgid "Arguments" msgstr "" @@ -7461,12 +8693,16 @@ msgstr "" msgid "Next Run" msgstr "" -#: src/tables/settings/TemplateTable.tsx:85 -msgid "Template not found" +#: src/tables/settings/StocktakeReportTable.tsx:28 +msgid "Report" msgstr "" -#: src/tables/settings/TemplateTable.tsx:87 -msgid "An error occurred while fetching template details" +#: src/tables/settings/StocktakeReportTable.tsx:35 +msgid "Part Count" +msgstr "" + +#: src/tables/settings/StocktakeReportTable.tsx:58 +msgid "Delete Report" msgstr "" #: src/tables/settings/TemplateTable.tsx:120 @@ -7481,21 +8717,12 @@ msgstr "" #~ msgid "actions" #~ msgstr "actions" -#: src/tables/settings/TemplateTable.tsx:177 -msgid "Modify" +#: src/tables/settings/TemplateTable.tsx:162 +msgid "Template not found" msgstr "" -#: src/tables/settings/TemplateTable.tsx:178 -msgid "Modify template file" -msgstr "" - -#: src/tables/settings/TemplateTable.tsx:234 -#: src/tables/settings/TemplateTable.tsx:302 -msgid "Edit Template" -msgstr "" - -#: src/tables/settings/TemplateTable.tsx:242 -msgid "Delete template" +#: src/tables/settings/TemplateTable.tsx:164 +msgid "An error occurred while fetching template details" msgstr "" #: src/tables/settings/TemplateTable.tsx:243 @@ -7506,103 +8733,137 @@ msgstr "" #~ msgid "Create new" #~ msgstr "Create new" -#: src/tables/settings/TemplateTable.tsx:248 +#: src/tables/settings/TemplateTable.tsx:257 +msgid "Modify" +msgstr "" + +#: src/tables/settings/TemplateTable.tsx:258 +msgid "Modify template file" +msgstr "" + +#: src/tables/settings/TemplateTable.tsx:314 +#: src/tables/settings/TemplateTable.tsx:382 +msgid "Edit Template" +msgstr "" + +#: src/tables/settings/TemplateTable.tsx:322 +msgid "Delete template" +msgstr "" + +#: src/tables/settings/TemplateTable.tsx:328 msgid "Add Template" msgstr "" -#: src/tables/settings/TemplateTable.tsx:261 +#: src/tables/settings/TemplateTable.tsx:341 msgid "Add template" msgstr "" -#: src/tables/settings/TemplateTable.tsx:284 +#: src/tables/settings/TemplateTable.tsx:364 msgid "Filter by enabled status" msgstr "" -#: src/tables/settings/UserTable.tsx:82 +#: src/tables/settings/UserTable.tsx:81 msgid "User with id {id} not found" msgstr "" -#: src/tables/settings/UserTable.tsx:84 +#: src/tables/settings/UserTable.tsx:83 msgid "An error occurred while fetching user details" msgstr "" -#: src/tables/settings/UserTable.tsx:102 +#: src/tables/settings/UserTable.tsx:101 msgid "Is Active" msgstr "" -#: src/tables/settings/UserTable.tsx:103 +#: src/tables/settings/UserTable.tsx:102 msgid "Designates whether this user should be treated as active. Unselect this instead of deleting accounts." -msgstr "" +msgstr "Чи активний користувач. Зніміть цю відмітку замість видалення акаунтів." -#: src/tables/settings/UserTable.tsx:107 +#: src/tables/settings/UserTable.tsx:106 msgid "Is Staff" msgstr "" -#: src/tables/settings/UserTable.tsx:108 +#: src/tables/settings/UserTable.tsx:107 msgid "Designates whether the user can log into the django admin site." -msgstr "" +msgstr "Створює, чи може користувач увійти в сайт адміністратора django." -#: src/tables/settings/UserTable.tsx:112 +#: src/tables/settings/UserTable.tsx:111 msgid "Is Superuser" msgstr "" -#: src/tables/settings/UserTable.tsx:113 +#: src/tables/settings/UserTable.tsx:112 msgid "Designates that this user has all permissions without explicitly assigning them." -msgstr "" +msgstr "Дизайн що користувач має усі дозволи без явного їх призначення." -#: src/tables/settings/UserTable.tsx:123 +#: src/tables/settings/UserTable.tsx:122 msgid "You cannot edit the rights for the currently logged-in user." -msgstr "" +msgstr "Ви не можете редагувати права для поточного зареєстрованого користувача." -#: src/tables/settings/UserTable.tsx:154 +#: src/tables/settings/UserTable.tsx:153 msgid "No groups" msgstr "" -#: src/tables/settings/UserTable.tsx:245 +#: src/tables/settings/UserTable.tsx:244 msgid "Delete user" msgstr "" -#: src/tables/settings/UserTable.tsx:246 +#: src/tables/settings/UserTable.tsx:245 msgid "User deleted" msgstr "" -#: src/tables/settings/UserTable.tsx:248 +#: src/tables/settings/UserTable.tsx:247 msgid "Are you sure you want to delete this user?" msgstr "" -#: src/tables/settings/UserTable.tsx:254 -#: src/tables/settings/UserTable.tsx:272 +#: src/tables/settings/UserTable.tsx:253 +#: src/tables/settings/UserTable.tsx:271 msgid "Add user" msgstr "" -#: src/tables/settings/UserTable.tsx:262 +#: src/tables/settings/UserTable.tsx:261 msgid "Added user" msgstr "" -#: src/tables/settings/UserTable.tsx:285 +#: src/tables/settings/UserTable.tsx:284 msgid "Show active users" msgstr "" -#: src/tables/settings/UserTable.tsx:289 +#: src/tables/settings/UserTable.tsx:288 msgid "Staff" msgstr "" -#: src/tables/settings/UserTable.tsx:290 +#: src/tables/settings/UserTable.tsx:289 msgid "Show staff users" msgstr "" #: src/tables/settings/UserTable.tsx:294 -msgid "Superuser" -msgstr "" - -#: src/tables/settings/UserTable.tsx:295 msgid "Show superusers" msgstr "" -#: src/tables/settings/UserTable.tsx:305 +#: src/tables/settings/UserTable.tsx:304 msgid "Edit user" msgstr "" +#: src/tables/stock/InstalledItemsTable.tsx:37 +#: src/tables/stock/InstalledItemsTable.tsx:90 +msgid "Install Item" +msgstr "" + +#: src/tables/stock/InstalledItemsTable.tsx:39 +msgid "Item installed" +msgstr "" + +#: src/tables/stock/InstalledItemsTable.tsx:50 +msgid "Uninstall Item" +msgstr "" + +#: src/tables/stock/InstalledItemsTable.tsx:52 +msgid "Item uninstalled" +msgstr "" + +#: src/tables/stock/InstalledItemsTable.tsx:108 +msgid "Uninstall stock item" +msgstr "" + #: src/tables/stock/LocationTypesTable.tsx:39 #: src/tables/stock/LocationTypesTable.tsx:109 msgid "Add Location Type" @@ -7620,276 +8881,272 @@ msgstr "" msgid "Icon" msgstr "" -#: src/tables/stock/StockItemTable.tsx:101 +#: src/tables/stock/StockItemTable.tsx:90 msgid "This stock item is in production" msgstr "" -#: src/tables/stock/StockItemTable.tsx:110 +#: src/tables/stock/StockItemTable.tsx:97 msgid "This stock item has been assigned to a sales order" msgstr "" -#: src/tables/stock/StockItemTable.tsx:119 +#: src/tables/stock/StockItemTable.tsx:104 msgid "This stock item has been assigned to a customer" msgstr "" -#: src/tables/stock/StockItemTable.tsx:128 +#: src/tables/stock/StockItemTable.tsx:111 msgid "This stock item is installed in another stock item" msgstr "" -#: src/tables/stock/StockItemTable.tsx:137 +#: src/tables/stock/StockItemTable.tsx:118 msgid "This stock item has been consumed by a build order" msgstr "" -#: src/tables/stock/StockItemTable.tsx:146 +#: src/tables/stock/StockItemTable.tsx:125 +msgid "This stock item is unavailable" +msgstr "" + +#: src/tables/stock/StockItemTable.tsx:134 msgid "This stock item has expired" msgstr "" -#: src/tables/stock/StockItemTable.tsx:150 +#: src/tables/stock/StockItemTable.tsx:138 msgid "This stock item is stale" msgstr "" -#: src/tables/stock/StockItemTable.tsx:161 +#: src/tables/stock/StockItemTable.tsx:150 msgid "This stock item is fully allocated" msgstr "" -#: src/tables/stock/StockItemTable.tsx:168 +#: src/tables/stock/StockItemTable.tsx:157 msgid "This stock item is partially allocated" msgstr "" -#: src/tables/stock/StockItemTable.tsx:196 +#: src/tables/stock/StockItemTable.tsx:185 msgid "This stock item has been depleted" msgstr "" -#: src/tables/stock/StockItemTable.tsx:232 +#: src/tables/stock/StockItemTable.tsx:280 msgid "Stocktake Date" msgstr "" -#: src/tables/stock/StockItemTable.tsx:236 -msgid "Expiry Date" -msgstr "" - -#: src/tables/stock/StockItemTable.tsx:260 -msgid "Stock Value" -msgstr "" - -#: src/tables/stock/StockItemTable.tsx:290 +#: src/tables/stock/StockItemTable.tsx:294 msgid "Show stock for active parts" msgstr "" -#: src/tables/stock/StockItemTable.tsx:295 +#: src/tables/stock/StockItemTable.tsx:299 msgid "Filter by stock status" msgstr "" #: src/tables/stock/StockItemTable.tsx:301 -msgid "Show stock for assmebled parts" +#~ msgid "Show stock for assmebled parts" +#~ msgstr "Show stock for assmebled parts" + +#: src/tables/stock/StockItemTable.tsx:305 +msgid "Show stock for assembled parts" msgstr "" -#: src/tables/stock/StockItemTable.tsx:306 +#: src/tables/stock/StockItemTable.tsx:310 msgid "Show items which have been allocated" msgstr "" -#: src/tables/stock/StockItemTable.tsx:311 +#: src/tables/stock/StockItemTable.tsx:315 msgid "Show items which are available" msgstr "" -#: src/tables/stock/StockItemTable.tsx:315 +#: src/tables/stock/StockItemTable.tsx:319 #: src/tables/stock/StockLocationTable.tsx:44 msgid "Include Sublocations" msgstr "" -#: src/tables/stock/StockItemTable.tsx:316 +#: src/tables/stock/StockItemTable.tsx:320 msgid "Include stock in sublocations" msgstr "" -#: src/tables/stock/StockItemTable.tsx:320 +#: src/tables/stock/StockItemTable.tsx:324 msgid "Depleted" msgstr "" -#: src/tables/stock/StockItemTable.tsx:321 +#: src/tables/stock/StockItemTable.tsx:325 msgid "Show depleted stock items" msgstr "" -#: src/tables/stock/StockItemTable.tsx:326 +#: src/tables/stock/StockItemTable.tsx:330 msgid "Show items which are in stock" msgstr "" -#: src/tables/stock/StockItemTable.tsx:331 +#: src/tables/stock/StockItemTable.tsx:335 msgid "Show items which are in production" msgstr "" -#: src/tables/stock/StockItemTable.tsx:336 +#: src/tables/stock/StockItemTable.tsx:340 msgid "Include stock items for variant parts" msgstr "" -#: src/tables/stock/StockItemTable.tsx:341 +#: src/tables/stock/StockItemTable.tsx:345 msgid "Show stock items which are installed in other items" msgstr "" -#: src/tables/stock/StockItemTable.tsx:345 +#: src/tables/stock/StockItemTable.tsx:349 msgid "Sent to Customer" msgstr "" -#: src/tables/stock/StockItemTable.tsx:346 +#: src/tables/stock/StockItemTable.tsx:350 msgid "Show items which have been sent to a customer" msgstr "" -#: src/tables/stock/StockItemTable.tsx:350 +#: src/tables/stock/StockItemTable.tsx:354 msgid "Is Serialized" msgstr "" -#: src/tables/stock/StockItemTable.tsx:351 +#: src/tables/stock/StockItemTable.tsx:355 msgid "Show items which have a serial number" msgstr "" -#: src/tables/stock/StockItemTable.tsx:358 +#: src/tables/stock/StockItemTable.tsx:362 msgid "Has Batch Code" msgstr "" -#: src/tables/stock/StockItemTable.tsx:359 +#: src/tables/stock/StockItemTable.tsx:363 msgid "Show items which have a batch code" msgstr "" -#: src/tables/stock/StockItemTable.tsx:365 +#: src/tables/stock/StockItemTable.tsx:369 msgid "Show tracked items" msgstr "" -#: src/tables/stock/StockItemTable.tsx:369 +#: src/tables/stock/StockItemTable.tsx:373 msgid "Has Purchase Price" msgstr "" -#: src/tables/stock/StockItemTable.tsx:370 +#: src/tables/stock/StockItemTable.tsx:374 msgid "Show items which have a purchase price" msgstr "" -#: src/tables/stock/StockItemTable.tsx:378 +#: src/tables/stock/StockItemTable.tsx:382 msgid "External Location" msgstr "" -#: src/tables/stock/StockItemTable.tsx:379 +#: src/tables/stock/StockItemTable.tsx:383 msgid "Show items in an external location" msgstr "" -#: src/tables/stock/StockItemTable.tsx:451 +#: src/tables/stock/StockItemTable.tsx:456 msgid "Add a new stock item" msgstr "" -#: src/tables/stock/StockItemTable.tsx:460 +#: src/tables/stock/StockItemTable.tsx:465 msgid "Remove some quantity from a stock item" msgstr "" -#: src/tables/stock/StockItemTable.tsx:482 +#: src/tables/stock/StockItemTable.tsx:487 msgid "Move Stock items to new locations" msgstr "" -#: src/tables/stock/StockItemTable.tsx:489 +#: src/tables/stock/StockItemTable.tsx:494 msgid "Change stock status" msgstr "" -#: src/tables/stock/StockItemTable.tsx:491 +#: src/tables/stock/StockItemTable.tsx:496 msgid "Change the status of stock items" msgstr "" -#: src/tables/stock/StockItemTable.tsx:498 +#: src/tables/stock/StockItemTable.tsx:503 msgid "Merge stock" msgstr "" -#: src/tables/stock/StockItemTable.tsx:500 +#: src/tables/stock/StockItemTable.tsx:505 msgid "Merge stock items" msgstr "" -#: src/tables/stock/StockItemTable.tsx:509 -#: src/tables/stock/StockItemTable.tsx:516 +#: src/tables/stock/StockItemTable.tsx:514 +#: src/tables/stock/StockItemTable.tsx:521 msgid "Order new stock" msgstr "" -#: src/tables/stock/StockItemTable.tsx:514 +#: src/tables/stock/StockItemTable.tsx:519 msgid "Assign to customer" msgstr "" -#: src/tables/stock/StockItemTable.tsx:523 +#: src/tables/stock/StockItemTable.tsx:528 msgid "Delete stock" msgstr "" -#: src/tables/stock/StockItemTable.tsx:525 -msgid "Delete stock items" -msgstr "" +#: src/tables/stock/StockItemTable.tsx:528 +#~ msgid "Delete stock items" +#~ msgstr "Delete stock items" -#: src/tables/stock/StockItemTestResultTable.tsx:131 +#: src/tables/stock/StockItemTestResultTable.tsx:137 msgid "Test" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:157 +#: src/tables/stock/StockItemTestResultTable.tsx:163 msgid "Test result for installed stock item" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:168 -msgid "Result" -msgstr "" - -#: src/tables/stock/StockItemTestResultTable.tsx:190 +#: src/tables/stock/StockItemTestResultTable.tsx:196 msgid "Attachment" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:206 +#: src/tables/stock/StockItemTestResultTable.tsx:212 msgid "Test station" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:226 +#: src/tables/stock/StockItemTestResultTable.tsx:234 msgid "Finished" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:268 -#: src/tables/stock/StockItemTestResultTable.tsx:339 +#: src/tables/stock/StockItemTestResultTable.tsx:286 +#: src/tables/stock/StockItemTestResultTable.tsx:357 msgid "Edit Test Result" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:270 +#: src/tables/stock/StockItemTestResultTable.tsx:288 msgid "Test result updated" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:276 -#: src/tables/stock/StockItemTestResultTable.tsx:348 +#: src/tables/stock/StockItemTestResultTable.tsx:294 +#: src/tables/stock/StockItemTestResultTable.tsx:366 msgid "Delete Test Result" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:278 +#: src/tables/stock/StockItemTestResultTable.tsx:296 msgid "Test result deleted" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:292 +#: src/tables/stock/StockItemTestResultTable.tsx:310 msgid "Test Passed" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:293 +#: src/tables/stock/StockItemTestResultTable.tsx:311 msgid "Test result has been recorded" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:300 +#: src/tables/stock/StockItemTestResultTable.tsx:318 msgid "Failed to record test result" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:317 +#: src/tables/stock/StockItemTestResultTable.tsx:335 msgid "Pass Test" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:366 +#: src/tables/stock/StockItemTestResultTable.tsx:384 msgid "Show results for required tests" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:370 +#: src/tables/stock/StockItemTestResultTable.tsx:388 msgid "Include Installed" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:371 +#: src/tables/stock/StockItemTestResultTable.tsx:389 msgid "Show results for installed stock items" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:375 -#: src/tables/stock/TestStatisticsTable.tsx:74 +#: src/tables/stock/StockItemTestResultTable.tsx:393 +#: src/tables/stock/TestStatisticsTable.tsx:62 msgid "Passed" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:376 +#: src/tables/stock/StockItemTestResultTable.tsx:394 msgid "Show only passed tests" msgstr "" @@ -7922,28 +9179,32 @@ msgid "Filter by location type" msgstr "" #: src/tables/stock/StockLocationTable.tsx:107 -#: src/tables/stock/StockLocationTable.tsx:133 +#: src/tables/stock/StockLocationTable.tsx:134 msgid "Add Stock Location" msgstr "" -#: src/tables/stock/StockTrackingTable.tsx:64 +#: src/tables/stock/StockTrackingTable.tsx:68 msgid "Added" msgstr "" -#: src/tables/stock/StockTrackingTable.tsx:69 +#: src/tables/stock/StockTrackingTable.tsx:73 msgid "Removed" msgstr "" #: src/tables/stock/StockTrackingTable.tsx:198 +msgid "Details" +msgstr "" + +#: src/tables/stock/StockTrackingTable.tsx:213 msgid "No user information" msgstr "" -#: src/tables/stock/TestStatisticsTable.tsx:46 -#: src/tables/stock/TestStatisticsTable.tsx:76 +#: src/tables/stock/TestStatisticsTable.tsx:34 +#: src/tables/stock/TestStatisticsTable.tsx:64 msgid "Total" msgstr "" -#: src/tables/stock/TestStatisticsTable.tsx:75 +#: src/tables/stock/TestStatisticsTable.tsx:63 msgid "Failed" msgstr "" @@ -7953,7 +9214,7 @@ msgstr "" #: src/views/MobileAppView.tsx:25 msgid "Platform UI is optimized for Tablets and Desktops, you can use the official app for a mobile experience." -msgstr "" +msgstr "Інтерфейс платформи оптимізований для планшетів та настільних комп'ютерів, Ви можете використовувати офіційний додаток для мобільного досвіду." #: src/views/MobileAppView.tsx:31 msgid "Read the docs" diff --git a/src/frontend/src/locales/vi/messages.po b/src/frontend/src/locales/vi/messages.po index 767cf472e3..b903a261c9 100644 --- a/src/frontend/src/locales/vi/messages.po +++ b/src/frontend/src/locales/vi/messages.po @@ -8,203 +8,482 @@ msgstr "" "Language: vi\n" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"PO-Revision-Date: 2024-08-20 19:50\n" +"PO-Revision-Date: 2024-11-04 03:14\n" "Last-Translator: \n" "Language-Team: Vietnamese\n" "Plural-Forms: nplurals=1; plural=0;\n" "X-Crowdin-Project: inventree\n" "X-Crowdin-Project-ID: 452300\n" "X-Crowdin-Language: vi\n" -"X-Crowdin-File: /[inventree.InvenTree] l10/src/frontend/src/locales/en/messages.po\n" -"X-Crowdin-File-ID: 205\n" +"X-Crowdin-File: /src/frontend/src/locales/en/messages.po\n" +"X-Crowdin-File-ID: 252\n" #: src/components/Boundary.tsx:12 msgid "Error rendering component" -msgstr "" +msgstr "Lỗi khi hiển thị thành phần" #: src/components/Boundary.tsx:14 msgid "An error occurred while rendering this component. Refer to the console for more information." -msgstr "" +msgstr "Một lỗi đã xảy ra trong quá trình hiển thị thành phần này. Vui lòng tham khảo bảng điều khiển để biết thêm thông tin." #: src/components/DashboardItemProxy.tsx:34 -msgid "Title" -msgstr "Tiêu đề" +#~ msgid "Title" +#~ msgstr "Title" #: src/components/buttons/AdminButton.tsx:80 msgid "Open in admin interface" -msgstr "" +msgstr "Mở trong giao diện quản trị" #: src/components/buttons/CopyButton.tsx:18 #~ msgid "Copy to clipboard" #~ msgstr "Copy to clipboard" -#: src/components/buttons/CopyButton.tsx:24 +#: src/components/buttons/CopyButton.tsx:29 msgid "Copied" msgstr "Đã sao chép" -#: src/components/buttons/CopyButton.tsx:24 +#: src/components/buttons/CopyButton.tsx:29 msgid "Copy" msgstr "Sao chép" -#: src/components/buttons/PrintingActions.tsx:93 +#: src/components/buttons/PrintingActions.tsx:97 msgid "Print Label" -msgstr "" +msgstr "In nhãn" -#: src/components/buttons/PrintingActions.tsx:99 +#: src/components/buttons/PrintingActions.tsx:103 msgid "Print" -msgstr "" +msgstr "In" -#: src/components/buttons/PrintingActions.tsx:100 +#: src/components/buttons/PrintingActions.tsx:104 msgid "Label printing completed successfully" -msgstr "" +msgstr "In nhãn hoàn tất thành công" -#: src/components/buttons/PrintingActions.tsx:106 -#: src/components/buttons/PrintingActions.tsx:144 -#: src/components/editors/NotesEditor.tsx:65 -#: src/components/editors/NotesEditor.tsx:165 -#: src/components/forms/fields/ApiFormField.tsx:319 +#: src/components/buttons/PrintingActions.tsx:110 +#: src/components/buttons/PrintingActions.tsx:148 +#: src/components/editors/NotesEditor.tsx:73 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:154 +#: src/components/forms/fields/ApiFormField.tsx:328 +#: src/components/forms/fields/TableField.tsx:43 #: src/components/importer/ImportDataSelector.tsx:187 -#: src/components/importer/ImporterColumnSelector.tsx:207 +#: src/components/importer/ImporterColumnSelector.tsx:210 #: src/components/modals/LicenseModal.tsx:75 -#: src/components/nav/SearchDrawer.tsx:448 +#: src/components/nav/SearchDrawer.tsx:458 +#: src/components/render/ModelType.tsx:290 #: src/pages/ErrorPage.tsx:11 -#: src/pages/part/PartPricingPanel.tsx:67 -#: src/tables/InvenTreeTable.tsx:495 +#: src/pages/part/PartPricingPanel.tsx:71 +#: src/tables/InvenTreeTable.tsx:481 #: src/tables/bom/BomTable.tsx:450 -#: src/tables/stock/StockItemTestResultTable.tsx:299 +#: src/tables/stock/StockItemTestResultTable.tsx:317 msgid "Error" msgstr "Lỗi" -#: src/components/buttons/PrintingActions.tsx:107 +#: src/components/buttons/PrintingActions.tsx:111 msgid "The label could not be generated" -msgstr "" +msgstr "Không thể tạo nhãn" -#: src/components/buttons/PrintingActions.tsx:122 +#: src/components/buttons/PrintingActions.tsx:126 msgid "Print Report" -msgstr "" +msgstr "In báo cáo" -#: src/components/buttons/PrintingActions.tsx:138 +#: src/components/buttons/PrintingActions.tsx:142 msgid "Generate" -msgstr "" +msgstr "Tạo" -#: src/components/buttons/PrintingActions.tsx:139 +#: src/components/buttons/PrintingActions.tsx:143 msgid "Report printing completed successfully" -msgstr "" +msgstr "In báo cáo thành công " -#: src/components/buttons/PrintingActions.tsx:145 +#: src/components/buttons/PrintingActions.tsx:149 msgid "The report could not be generated" -msgstr "" +msgstr "Không thể tạo báo cáo" -#: src/components/buttons/PrintingActions.tsx:173 +#: src/components/buttons/PrintingActions.tsx:177 msgid "Printing Actions" -msgstr "" +msgstr "Các hành động in" -#: src/components/buttons/PrintingActions.tsx:178 +#: src/components/buttons/PrintingActions.tsx:182 msgid "Print Labels" -msgstr "" +msgstr "In nhãn" -#: src/components/buttons/PrintingActions.tsx:184 +#: src/components/buttons/PrintingActions.tsx:188 msgid "Print Reports" +msgstr "In báo cáo" + +#: src/components/buttons/RemoveRowButton.tsx:8 +msgid "Remove this row" msgstr "" #: src/components/buttons/ScanButton.tsx:15 -msgid "Scan QR code" -msgstr "Quét mã QR" +#: src/components/nav/NavigationDrawer.tsx:117 +#: src/forms/PurchaseOrderForms.tsx:379 +#: src/forms/PurchaseOrderForms.tsx:473 +msgid "Scan Barcode" +msgstr "Quét mã vạch" + +#: src/components/buttons/ScanButton.tsx:15 +#~ msgid "Scan QR code" +#~ msgstr "Scan QR code" #: src/components/buttons/ScanButton.tsx:20 -msgid "Open QR code scanner" +msgid "Open Barcode Scanner" msgstr "" +#: src/components/buttons/ScanButton.tsx:20 +#~ msgid "Open QR code scanner" +#~ msgstr "Open QR code scanner" + #: src/components/buttons/SpotlightButton.tsx:14 msgid "Open spotlight" -msgstr "" +msgstr "Mở đèn chiếu" #: src/components/buttons/YesNoButton.tsx:16 msgid "Pass" -msgstr "" +msgstr "Hoàn tất" #: src/components/buttons/YesNoButton.tsx:17 msgid "Fail" -msgstr "" +msgstr "Thất bại" #: src/components/buttons/YesNoButton.tsx:33 -#: src/tables/Filter.tsx:52 +#: src/tables/Filter.tsx:61 msgid "Yes" msgstr "Đồng ý" #: src/components/buttons/YesNoButton.tsx:33 -#: src/tables/Filter.tsx:53 +#: src/tables/Filter.tsx:62 msgid "No" msgstr "Không" -#: src/components/details/Details.tsx:301 +#: src/components/dashboard/DashboardLayout.tsx:286 +msgid "No Widgets Selected" +msgstr "" + +#: src/components/dashboard/DashboardLayout.tsx:289 +msgid "Use the menu to add widgets to the dashboard" +msgstr "" + +#: src/components/dashboard/DashboardMenu.tsx:59 +#: src/components/dashboard/DashboardMenu.tsx:126 +msgid "Accept Layout" +msgstr "" + +#: src/components/dashboard/DashboardMenu.tsx:91 +#: src/components/nav/NavigationDrawer.tsx:71 +#: src/defaults/actions.tsx:17 +#: src/defaults/links.tsx:9 +#: src/pages/Index/Settings/UserSettings.tsx:47 +msgid "Dashboard" +msgstr "Bảng điều khiển" + +#: src/components/dashboard/DashboardMenu.tsx:99 +msgid "Edit Layout" +msgstr "Sửa bố cục" + +#: src/components/dashboard/DashboardMenu.tsx:108 +msgid "Add Widget" +msgstr "" + +#: src/components/dashboard/DashboardMenu.tsx:117 +msgid "Remove Widgets" +msgstr "" + +#: src/components/dashboard/DashboardWidget.tsx:65 +msgid "Remove this widget from the dashboard" +msgstr "" + +#: src/components/dashboard/DashboardWidgetDrawer.tsx:77 +msgid "Filter dashboard widgets" +msgstr "" + +#: src/components/dashboard/DashboardWidgetDrawer.tsx:98 +msgid "Add this widget to the dashboard" +msgstr "" + +#: src/components/dashboard/DashboardWidgetDrawer.tsx:123 +msgid "No Widgets Available" +msgstr "" + +#: src/components/dashboard/DashboardWidgetDrawer.tsx:124 +msgid "There are no more widgets available for the dashboard" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:19 +msgid "Subscribed Parts" +msgstr "Phụ kiện đã đăng ký" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:20 +msgid "Show the number of parts which you have subscribed to" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:26 +msgid "Subscribed Categories" +msgstr "Danh mục đã đăng ký" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:27 +msgid "Show the number of part categories which you have subscribed to" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:35 +#: src/pages/part/PartSchedulingDetail.tsx:304 +#: src/tables/part/PartTable.tsx:238 +msgid "Low Stock" +msgstr "Còn ít hàng" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:37 +msgid "Show the number of parts which are low on stock" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:43 +msgid "Expired Stock Items" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:45 +msgid "Show the number of stock items which have expired" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:51 +msgid "Stale Stock Items" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:53 +msgid "Show the number of stock items which are stale" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:59 +msgid "Active Build Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:61 +msgid "Show the number of build orders which are currently active" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:66 +msgid "Overdue Build Orders" +msgstr "Đơn đặt bản dựng đang quá hạn" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:68 +msgid "Show the number of build orders which are overdue" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:73 +msgid "Assigned Build Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:75 +msgid "Show the number of build orders which are assigned to you" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:80 +msgid "Active Sales Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:82 +msgid "Show the number of sales orders which are currently active" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:87 +msgid "Overdue Sales Orders" +msgstr "Đơn đặt quá hạn" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:89 +msgid "Show the number of sales orders which are overdue" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:94 +msgid "Assigned Sales Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:96 +msgid "Show the number of sales orders which are assigned to you" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:101 +msgid "Active Purchase Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:103 +msgid "Show the number of purchase orders which are currently active" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:108 +msgid "Overdue Purchase Orders" +msgstr "Đơn mua quá hạn" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:110 +msgid "Show the number of purchase orders which are overdue" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:115 +msgid "Assigned Purchase Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:117 +msgid "Show the number of purchase orders which are assigned to you" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:122 +msgid "Active Return Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:124 +msgid "Show the number of return orders which are currently active" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:129 +msgid "Overdue Return Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:131 +msgid "Show the number of return orders which are overdue" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:136 +msgid "Assigned Return Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:138 +msgid "Show the number of return orders which are assigned to you" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:149 +#: src/components/dashboard/widgets/GetStartedWidget.tsx:15 +#: src/defaults/links.tsx:38 +msgid "Getting Started" +msgstr "Bắt đầu" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:150 +#: src/defaults/links.tsx:41 +msgid "Getting started with InvenTree" +msgstr "Bắt đầu với InvenTree" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:157 +#: src/components/dashboard/widgets/NewsWidget.tsx:123 +msgid "News Updates" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:158 +msgid "The latest news from InvenTree" +msgstr "" + +#: src/components/dashboard/widgets/ColorToggleWidget.tsx:18 +#: src/components/nav/MainMenu.tsx:77 +msgid "Change Color Mode" +msgstr "Thay đổi chế độ màu" + +#: src/components/dashboard/widgets/ColorToggleWidget.tsx:23 +msgid "Change the color mode of the user interface" +msgstr "" + +#: src/components/dashboard/widgets/LanguageSelectWidget.tsx:18 +msgid "Change Language" +msgstr "" + +#: src/components/dashboard/widgets/LanguageSelectWidget.tsx:23 +msgid "Change the language of the user interface" +msgstr "" + +#: src/components/dashboard/widgets/NewsWidget.tsx:61 +#: src/components/nav/NotificationDrawer.tsx:88 +#: src/pages/Notifications.tsx:73 +msgid "Mark as read" +msgstr "Đánh dấu đã đọc" + +#: src/components/dashboard/widgets/NewsWidget.tsx:115 +msgid "Requires Superuser" +msgstr "" + +#: src/components/dashboard/widgets/NewsWidget.tsx:116 +msgid "This widget requires superuser permissions" +msgstr "" + +#: src/components/dashboard/widgets/NewsWidget.tsx:133 +msgid "No News" +msgstr "" + +#: src/components/dashboard/widgets/NewsWidget.tsx:134 +msgid "There are no unread news items" +msgstr "" + +#: src/components/details/Details.tsx:300 msgid "No name defined" -msgstr "" +msgstr "Chưa định nghĩa tên" -#: src/components/details/DetailsImage.tsx:65 +#: src/components/details/DetailsImage.tsx:69 msgid "Remove Image" -msgstr "" +msgstr "Xoá hình" -#: src/components/details/DetailsImage.tsx:68 +#: src/components/details/DetailsImage.tsx:72 msgid "Remove the associated image from this item?" -msgstr "" +msgstr "Xóa hình liên quan khỏi mục này?" -#: src/components/details/DetailsImage.tsx:71 -#: src/forms/StockForms.tsx:533 +#: src/components/details/DetailsImage.tsx:75 +#: src/forms/StockForms.tsx:651 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:199 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:306 -#: src/pages/stock/StockDetail.tsx:526 +#: src/pages/stock/StockDetail.tsx:690 msgid "Remove" -msgstr "" +msgstr "Xoá" -#: src/components/details/DetailsImage.tsx:71 -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:158 -#: src/components/items/ActionDropdown.tsx:215 -#: src/components/items/ActionDropdown.tsx:216 -#: src/contexts/ThemeContext.tsx:43 +#: src/components/details/DetailsImage.tsx:75 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:184 +#: src/components/items/ActionDropdown.tsx:268 +#: src/components/items/ActionDropdown.tsx:269 +#: src/contexts/ThemeContext.tsx:45 #: src/hooks/UseForm.tsx:40 -#: src/tables/FilterSelectDrawer.tsx:205 -#: src/tables/build/BuildOutputTable.tsx:286 +#: src/tables/FilterSelectDrawer.tsx:241 +#: src/tables/RowActions.tsx:59 +#: src/tables/build/BuildOutputTable.tsx:434 msgid "Cancel" msgstr "Hủy bỏ" -#: src/components/details/DetailsImage.tsx:97 +#: src/components/details/DetailsImage.tsx:101 msgid "Drag and drop to upload" -msgstr "" +msgstr "Kéo tập tin để tải lê" -#: src/components/details/DetailsImage.tsx:100 +#: src/components/details/DetailsImage.tsx:104 msgid "Click to select file(s)" -msgstr "" +msgstr "Nhấp vào để chọn file" -#: src/components/details/DetailsImage.tsx:226 +#: src/components/details/DetailsImage.tsx:230 msgid "Clear" -msgstr "" +msgstr "Clear" -#: src/components/details/DetailsImage.tsx:232 -#: src/components/forms/ApiForm.tsx:627 -#: src/contexts/ThemeContext.tsx:43 -#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:60 +#: src/components/details/DetailsImage.tsx:236 +#: src/components/forms/ApiForm.tsx:660 +#: src/contexts/ThemeContext.tsx:45 msgid "Submit" msgstr "Gửi" -#: src/components/details/DetailsImage.tsx:272 -msgid "Select from existing images" -msgstr "" - #: src/components/details/DetailsImage.tsx:280 +msgid "Select from existing images" +msgstr "Chọn từ hình ảnh có sẵn" + +#: src/components/details/DetailsImage.tsx:288 msgid "Select Image" +msgstr "Chọn hình ảnh" + +#: src/components/details/DetailsImage.tsx:304 +msgid "Download remote image" msgstr "" -#: src/components/details/DetailsImage.tsx:292 +#: src/components/details/DetailsImage.tsx:319 msgid "Upload new image" -msgstr "" +msgstr "Tải lên ảnh mới" -#: src/components/details/DetailsImage.tsx:299 +#: src/components/details/DetailsImage.tsx:326 msgid "Upload Image" +msgstr "Tải lên ảnh" + +#: src/components/details/DetailsImage.tsx:339 +msgid "Delete image" +msgstr "Xoá ảnh" + +#: src/components/details/DetailsImage.tsx:373 +msgid "Download Image" msgstr "" -#: src/components/details/DetailsImage.tsx:312 -msgid "Delete image" +#: src/components/details/DetailsImage.tsx:378 +msgid "Image downloaded successfully" msgstr "" #: src/components/details/PartIcons.tsx:43 @@ -235,39 +514,60 @@ msgstr "" #~ msgid "Part is virtual (not a physical part)" #~ msgstr "Part is virtual (not a physical part)" -#: src/components/editors/NotesEditor.tsx:66 +#: src/components/editors/NotesEditor.tsx:74 msgid "Image upload failed" -msgstr "" +msgstr "Tải ảnh thất bại" -#: src/components/editors/NotesEditor.tsx:156 -#: src/components/forms/ApiForm.tsx:467 +#: src/components/editors/NotesEditor.tsx:83 +#: src/components/editors/NotesEditor.tsx:119 +#: src/components/forms/ApiForm.tsx:475 #: src/tables/bom/BomTable.tsx:441 msgid "Success" msgstr "Thành công" -#: src/components/editors/NotesEditor.tsx:157 -msgid "Notes saved successfully" +#: src/components/editors/NotesEditor.tsx:84 +msgid "Image uploaded successfully" msgstr "" -#: src/components/editors/NotesEditor.tsx:166 +#: src/components/editors/NotesEditor.tsx:120 +msgid "Notes saved successfully" +msgstr "Lưu ghi chú thành công" + +#: src/components/editors/NotesEditor.tsx:131 msgid "Failed to save notes" msgstr "Không lưu được chú thích" -#: src/components/editors/NotesEditor.tsx:198 -msgid "Preview Notes" +#: src/components/editors/NotesEditor.tsx:134 +msgid "Error Saving Notes" msgstr "" -#: src/components/editors/NotesEditor.tsx:198 -msgid "Edit Notes" -msgstr "" +#: src/components/editors/NotesEditor.tsx:151 +#~ msgid "Disable Editing" +#~ msgstr "Disable Editing" -#: src/components/editors/NotesEditor.tsx:212 +#: src/components/editors/NotesEditor.tsx:154 msgid "Save Notes" +msgstr "Lưu ghi chú" + +#: src/components/editors/NotesEditor.tsx:173 +msgid "Close Editor" msgstr "" +#: src/components/editors/NotesEditor.tsx:180 +msgid "Enable Editing" +msgstr "" + +#: src/components/editors/NotesEditor.tsx:198 +#~ msgid "Preview Notes" +#~ msgstr "Preview Notes" + +#: src/components/editors/NotesEditor.tsx:198 +#~ msgid "Edit Notes" +#~ msgstr "Edit Notes" + #: src/components/editors/TemplateEditor/CodeEditor/index.tsx:9 msgid "Code" -msgstr "" +msgstr "Mã" #: src/components/editors/TemplateEditor/PdfPreview/PdfPreview.tsx:44 #~ msgid "Failed to parse error response from server." @@ -275,127 +575,132 @@ msgstr "" #: src/components/editors/TemplateEditor/PdfPreview/PdfPreview.tsx:81 msgid "Preview not available, click \"Reload Preview\"." -msgstr "" +msgstr "Xem trước không khả dụng, nhấp \"Tải lại xem trước\"." #: src/components/editors/TemplateEditor/PdfPreview/index.tsx:9 msgid "PDF Preview" -msgstr "" +msgstr "Xem trước PDF" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:104 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:115 msgid "Error loading template" -msgstr "" +msgstr "Lỗi load mẫu" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:116 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:127 msgid "Error saving template" -msgstr "" - -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:146 -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:274 -msgid "Save & Reload Preview" -msgstr "" - -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:151 -msgid "Are you sure you want to Save & Reload the preview?" -msgstr "" +msgstr "Lỗi lưu mẫu" #: src/components/editors/TemplateEditor/TemplateEditor.tsx:151 #~ msgid "Save & Reload preview?" #~ msgstr "Save & Reload preview?" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:153 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:155 +msgid "Could not load the template from the server." +msgstr "" + +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:172 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:303 +msgid "Save & Reload Preview" +msgstr "Lưu và tải lại xem trước" + +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:177 +msgid "Are you sure you want to Save & Reload the preview?" +msgstr "Bạn có muốn lưu và tải lại xem trước?" + +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:179 msgid "To render the preview the current template needs to be replaced on the server with your modifications which may break the label if it is under active use. Do you want to proceed?" -msgstr "" +msgstr "Để hiển thị bản xem trước, mẫu hiện tại cần được thay thế trên máy chủ bằng các sửa đổi của bạn, điều này có thể làm hỏng nhãn nếu nó đang được sử dụng. Bạn có muốn tiếp tục không?" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:157 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:183 msgid "Save & Reload" -msgstr "" +msgstr "Lưu và Tải Lại" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:189 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:215 msgid "Preview updated" -msgstr "" +msgstr "Đã cập nhật xem trước" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:190 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:216 msgid "The preview has been updated successfully." -msgstr "" +msgstr "Xem trước đã được cập nhật thành công." #: src/components/editors/TemplateEditor/TemplateEditor.tsx:263 #~ msgid "Save & Reload preview" #~ msgstr "Save & Reload preview" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:266 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:295 msgid "Reload preview" -msgstr "" +msgstr "Tải lại xem trước " -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:267 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:296 msgid "Use the currently stored template from the server" -msgstr "" +msgstr "Sử dụng mẫu có sẵn trên máy chủ" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:275 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:304 msgid "Save the current template and reload the preview" -msgstr "" +msgstr "Lưu mẫu hiện tại và tải lại xem trước" #: src/components/editors/TemplateEditor/TemplateEditor.tsx:322 #~ msgid "to preview" #~ msgstr "to preview" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:333 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:365 msgid "Select instance to preview" msgstr "" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:377 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:409 msgid "Error rendering template" -msgstr "" +msgstr "Lỗi hiển thị mẫu" #: src/components/errors/ClientError.tsx:23 msgid "Client Error" -msgstr "" +msgstr "Lỗi người dùng" #: src/components/errors/ClientError.tsx:24 msgid "Client error occurred" -msgstr "" +msgstr "Xảy ra lỗi người dùng" #: src/components/errors/GenericErrorPage.tsx:50 msgid "Status Code" -msgstr "" +msgstr "Mã trạng thái" #: src/components/errors/GenericErrorPage.tsx:63 msgid "Return to the index page" -msgstr "" +msgstr "Trở về trang chính" #: src/components/errors/NotAuthenticated.tsx:8 msgid "Not Authenticated" -msgstr "" +msgstr "Chưa được xác minh" #: src/components/errors/NotAuthenticated.tsx:9 msgid "You are not logged in." -msgstr "" +msgstr "Vui lòng đăng nhập" #: src/components/errors/NotFound.tsx:8 msgid "Page Not Found" -msgstr "" +msgstr "Không tìm thấy trang" #: src/components/errors/NotFound.tsx:9 msgid "This page does not exist" -msgstr "" +msgstr "Trang không tồn tại" #: src/components/errors/PermissionDenied.tsx:8 +#: src/functions/notifications.tsx:24 msgid "Permission Denied" -msgstr "" +msgstr "Từ chối phân quyền" #: src/components/errors/PermissionDenied.tsx:9 msgid "You do not have permission to view this page." -msgstr "" +msgstr "Bạn không có quyền xem trang này" #: src/components/errors/ServerError.tsx:8 msgid "Server Error" -msgstr "" +msgstr "Lỗi máy chủ" #: src/components/errors/ServerError.tsx:9 msgid "A server error occurred" -msgstr "" +msgstr "Xảy ra lỗi máy chủ" -#: src/components/forms/ApiForm.tsx:151 -#: src/components/forms/ApiForm.tsx:555 +#: src/components/forms/ApiForm.tsx:154 +#: src/components/forms/ApiForm.tsx:579 msgid "Form Error" msgstr "Lỗi form" @@ -403,22 +708,22 @@ msgstr "Lỗi form" #~ msgid "Form Errors Exist" #~ msgstr "Form Errors Exist" -#: src/components/forms/ApiForm.tsx:563 +#: src/components/forms/ApiForm.tsx:587 msgid "Errors exist for one or more form fields" -msgstr "" +msgstr "Lỗi nhập liệu" -#: src/components/forms/ApiForm.tsx:665 -#: src/tables/plugin/PluginListTable.tsx:388 +#: src/components/forms/ApiForm.tsx:698 +#: src/tables/plugin/PluginListTable.tsx:195 msgid "Update" msgstr "Cập nhật" -#: src/components/forms/ApiForm.tsx:685 -#: src/components/items/ActionDropdown.tsx:195 +#: src/components/forms/ApiForm.tsx:718 +#: src/components/items/ActionDropdown.tsx:248 #: src/hooks/UseForm.tsx:122 -#: src/pages/Index/Scan.tsx:343 +#: src/pages/Index/Scan.tsx:357 #: src/pages/Notifications.tsx:123 -#: src/tables/RowActions.tsx:43 -#: src/tables/plugin/PluginListTable.tsx:420 +#: src/tables/RowActions.tsx:49 +#: src/tables/plugin/PluginListTable.tsx:232 msgid "Delete" msgstr "Xóa" @@ -428,14 +733,6 @@ msgstr "Xóa" #~ msgid "Check your your input and try again." #~ msgstr "Check your your input and try again." -#: src/components/forms/AuthenticationForm.tsx:51 -msgid "Login successful" -msgstr "Đăng nhập thành công" - -#: src/components/forms/AuthenticationForm.tsx:52 -msgid "Logged in successfully" -msgstr "" - #: src/components/forms/AuthenticationForm.tsx:52 #~ msgid "Welcome back!" #~ msgstr "Welcome back!" @@ -444,14 +741,22 @@ msgstr "" #~ msgid "Login successfull" #~ msgstr "Login successfull" -#: src/components/forms/AuthenticationForm.tsx:58 +#: src/components/forms/AuthenticationForm.tsx:55 +msgid "Login successful" +msgstr "Đăng nhập thành công" + +#: src/components/forms/AuthenticationForm.tsx:56 +msgid "Logged in successfully" +msgstr "Đăng nhập thành công" + +#: src/components/forms/AuthenticationForm.tsx:61 msgid "Login failed" msgstr "Đăng nhập thất bại" -#: src/components/forms/AuthenticationForm.tsx:59 -#: src/components/forms/AuthenticationForm.tsx:76 -#: src/components/forms/AuthenticationForm.tsx:211 -#: src/functions/auth.tsx:164 +#: src/components/forms/AuthenticationForm.tsx:62 +#: src/components/forms/AuthenticationForm.tsx:79 +#: src/components/forms/AuthenticationForm.tsx:214 +#: src/functions/auth.tsx:175 msgid "Check your input and try again." msgstr "Kiểm tra đầu vào của bạn và thử lại." @@ -460,45 +765,46 @@ msgstr "Kiểm tra đầu vào của bạn và thử lại." #~ msgid "Mail delivery successfull" #~ msgstr "Mail delivery successfull" -#: src/components/forms/AuthenticationForm.tsx:70 -#: src/functions/auth.tsx:155 +#: src/components/forms/AuthenticationForm.tsx:73 +#: src/functions/auth.tsx:166 msgid "Mail delivery successful" msgstr "Thư đã được gửi đi thành công" -#: src/components/forms/AuthenticationForm.tsx:71 +#: src/components/forms/AuthenticationForm.tsx:74 msgid "Check your inbox for the login link. If you have an account, you will receive a login link. Check in spam too." msgstr "Kiểm tra hộp thư để nhận liên kết đăng nhập. Nếu bạn đã có tài khoản, bạn sẽ nhận một liên kết đăng nhập. Kiểm tra đồng thời thư mục spam." -#: src/components/forms/AuthenticationForm.tsx:75 +#: src/components/forms/AuthenticationForm.tsx:78 msgid "Mail delivery failed" -msgstr "" +msgstr "Gửi mail thất bại" -#: src/components/forms/AuthenticationForm.tsx:95 +#: src/components/forms/AuthenticationForm.tsx:98 msgid "Or continue with other methods" msgstr "Hoặc tiếp tục với phương thức khác" -#: src/components/forms/AuthenticationForm.tsx:106 -#: src/components/forms/AuthenticationForm.tsx:227 +#: src/components/forms/AuthenticationForm.tsx:109 +#: src/components/forms/AuthenticationForm.tsx:230 +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:67 msgid "Username" msgstr "Tên người dùng" -#: src/components/forms/AuthenticationForm.tsx:107 -#: src/components/forms/AuthenticationForm.tsx:228 +#: src/components/forms/AuthenticationForm.tsx:110 +#: src/components/forms/AuthenticationForm.tsx:231 msgid "Your username" msgstr "Tên người dùng của bạn" -#: src/components/forms/AuthenticationForm.tsx:112 -#: src/components/forms/AuthenticationForm.tsx:240 -#: src/pages/Auth/Set-Password.tsx:106 +#: src/components/forms/AuthenticationForm.tsx:115 +#: src/components/forms/AuthenticationForm.tsx:243 +#: src/pages/Auth/Set-Password.tsx:101 msgid "Password" msgstr "Mật khẩu" -#: src/components/forms/AuthenticationForm.tsx:113 -#: src/components/forms/AuthenticationForm.tsx:241 +#: src/components/forms/AuthenticationForm.tsx:116 +#: src/components/forms/AuthenticationForm.tsx:244 msgid "Your password" msgstr "Mật khẩu của bạn" -#: src/components/forms/AuthenticationForm.tsx:125 +#: src/components/forms/AuthenticationForm.tsx:128 #: src/pages/Auth/Reset.tsx:26 msgid "Reset password" msgstr "Đặt lại mật khẩu" @@ -507,79 +813,81 @@ msgstr "Đặt lại mật khẩu" #~ msgid "Log in" #~ msgstr "Log in" -#: src/components/forms/AuthenticationForm.tsx:134 -#: src/components/forms/AuthenticationForm.tsx:233 +#: src/components/forms/AuthenticationForm.tsx:136 +#~ msgid "I will use username and password" +#~ msgstr "I will use username and password" + +#: src/components/forms/AuthenticationForm.tsx:137 +#: src/components/forms/AuthenticationForm.tsx:236 #: src/pages/Auth/Reset.tsx:31 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:51 msgid "Email" msgstr "Địa chỉ email" -#: src/components/forms/AuthenticationForm.tsx:135 +#: src/components/forms/AuthenticationForm.tsx:138 #: src/pages/Auth/Reset.tsx:32 -#: src/pages/Auth/Set-Password.tsx:107 +#: src/pages/Auth/Set-Password.tsx:102 msgid "We will send you a link to login - if you are registered" msgstr "Chúng tôi sẽ gửi bạn 1 liên kết để đăng nhập - nếu bạn đã đăng ký" -#: src/components/forms/AuthenticationForm.tsx:136 -#~ msgid "I will use username and password" -#~ msgstr "I will use username and password" - -#: src/components/forms/AuthenticationForm.tsx:151 +#: src/components/forms/AuthenticationForm.tsx:154 msgid "Send me an email" msgstr "Gửi email cho chúng tôi" -#: src/components/forms/AuthenticationForm.tsx:153 +#: src/components/forms/AuthenticationForm.tsx:156 msgid "Use username and password" msgstr "Dùng tên đăng nhập và mật khẩu" -#: src/components/forms/AuthenticationForm.tsx:162 +#: src/components/forms/AuthenticationForm.tsx:165 msgid "Log In" msgstr "Đăng nhập" -#: src/components/forms/AuthenticationForm.tsx:164 +#: src/components/forms/AuthenticationForm.tsx:167 +#: src/pages/Auth/Reset.tsx:41 +#: src/pages/Auth/Set-Password.tsx:107 msgid "Send Email" msgstr "Gửi email" -#: src/components/forms/AuthenticationForm.tsx:193 +#: src/components/forms/AuthenticationForm.tsx:196 msgid "Registration successful" msgstr "Đăng kí thành công" -#: src/components/forms/AuthenticationForm.tsx:194 +#: src/components/forms/AuthenticationForm.tsx:197 msgid "Please confirm your email address to complete the registration" msgstr "Vui xác nhận địa chỉ email của bạn để hoàn thành việc đăng ký" -#: src/components/forms/AuthenticationForm.tsx:210 +#: src/components/forms/AuthenticationForm.tsx:213 msgid "Input error" msgstr "Lỗi đầu vào" -#: src/components/forms/AuthenticationForm.tsx:234 +#: src/components/forms/AuthenticationForm.tsx:237 msgid "This will be used for a confirmation" -msgstr "" +msgstr "Sử dụng cho xác thực" -#: src/components/forms/AuthenticationForm.tsx:246 +#: src/components/forms/AuthenticationForm.tsx:249 msgid "Password repeat" -msgstr "" +msgstr "Lặp lại mật khẩu" -#: src/components/forms/AuthenticationForm.tsx:247 +#: src/components/forms/AuthenticationForm.tsx:250 msgid "Repeat password" -msgstr "" +msgstr "Lặp lại mật khẩu" -#: src/components/forms/AuthenticationForm.tsx:259 -#: src/components/forms/AuthenticationForm.tsx:304 +#: src/components/forms/AuthenticationForm.tsx:262 +#: src/components/forms/AuthenticationForm.tsx:307 msgid "Register" -msgstr "" +msgstr "Đăng ký" -#: src/components/forms/AuthenticationForm.tsx:265 +#: src/components/forms/AuthenticationForm.tsx:268 msgid "Or use SSO" -msgstr "" +msgstr "hoặc sử dụng SSO" -#: src/components/forms/AuthenticationForm.tsx:296 +#: src/components/forms/AuthenticationForm.tsx:299 msgid "Don't have an account?" -msgstr "" +msgstr "Chưa có tài khoản?" -#: src/components/forms/AuthenticationForm.tsx:315 +#: src/components/forms/AuthenticationForm.tsx:318 msgid "Go back to login" -msgstr "" +msgstr "Về trang đăng nhập" #: src/components/forms/HostOptionsForm.tsx:36 #: src/components/forms/HostOptionsForm.tsx:67 @@ -588,19 +896,20 @@ msgstr "Host" #: src/components/forms/HostOptionsForm.tsx:42 #: src/components/forms/HostOptionsForm.tsx:70 +#: src/components/plugins/PluginDrawer.tsx:69 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:410 +#: src/pages/Index/Settings/AdminCenter/UnitManagmentPanel.tsx:19 #: src/pages/part/CategoryDetail.tsx:81 -#: src/pages/part/PartDetail.tsx:143 -#: src/pages/stock/LocationDetail.tsx:89 -#: src/tables/machine/MachineTypeTable.tsx:65 -#: src/tables/machine/MachineTypeTable.tsx:109 -#: src/tables/machine/MachineTypeTable.tsx:216 -#: src/tables/machine/MachineTypeTable.tsx:319 +#: src/pages/part/PartDetail.tsx:164 +#: src/pages/stock/LocationDetail.tsx:83 +#: src/tables/machine/MachineTypeTable.tsx:70 +#: src/tables/machine/MachineTypeTable.tsx:119 +#: src/tables/machine/MachineTypeTable.tsx:237 +#: src/tables/machine/MachineTypeTable.tsx:340 #: src/tables/plugin/PluginErrorTable.tsx:33 -#: src/tables/plugin/PluginListTable.tsx:126 #: src/tables/purchasing/ManufacturerPartParameterTable.tsx:32 #: src/tables/settings/GroupTable.tsx:147 -#: src/tables/settings/PendingTasksTable.tsx:28 +#: src/tables/settings/PendingTasksTable.tsx:32 #: src/tables/stock/LocationTypesTable.tsx:69 msgid "Name" msgstr "Tên" @@ -643,54 +952,53 @@ msgstr "Trạng thái: <0>worker ({0}), <1>plugins{1}" #: src/components/forms/fields/IconField.tsx:81 msgid "No icon selected" -msgstr "" +msgstr "Chưa chọn icon" #: src/components/forms/fields/IconField.tsx:159 msgid "Uncategorized" -msgstr "" +msgstr "Chưa có danh mục" #: src/components/forms/fields/IconField.tsx:209 -#: src/components/nav/Layout.tsx:70 +#: src/components/nav/Layout.tsx:77 #: src/tables/part/PartThumbTable.tsx:192 msgid "Search..." -msgstr "" +msgstr "Tìm kiếm..." #: src/components/forms/fields/IconField.tsx:223 msgid "Select category" -msgstr "" +msgstr "Chọn danh mục" #: src/components/forms/fields/IconField.tsx:232 msgid "Select pack" -msgstr "" +msgstr "Chọn gói" #: src/components/forms/fields/IconField.tsx:237 msgid "{0} icons" -msgstr "" +msgstr "{0} icons" -#: src/components/forms/fields/RelatedModelField.tsx:318 -#: src/pages/Index/Settings/UserSettings.tsx:96 +#: src/components/forms/fields/RelatedModelField.tsx:319 +#: src/pages/Index/Settings/UserSettings.tsx:97 #: src/tables/Search.tsx:23 msgid "Search" msgstr "Tìm kiếm" -#: src/components/forms/fields/RelatedModelField.tsx:319 +#: src/components/forms/fields/RelatedModelField.tsx:320 #: src/components/modals/AboutInvenTreeModal.tsx:81 -#: src/components/widgets/WidgetLayout.tsx:120 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:316 msgid "Loading" msgstr "Đang tải" -#: src/components/forms/fields/RelatedModelField.tsx:321 +#: src/components/forms/fields/RelatedModelField.tsx:322 msgid "No results found" msgstr "Không có kết quả nào được tìm thấy" -#: src/components/forms/fields/TableField.tsx:52 -msgid "modelRenderer entry required for tables" -msgstr "" +#: src/components/forms/fields/TableField.tsx:72 +#~ msgid "modelRenderer entry required for tables" +#~ msgstr "modelRenderer entry required for tables" -#: src/components/forms/fields/TableField.tsx:76 +#: src/components/forms/fields/TableField.tsx:167 msgid "No entries available" -msgstr "" +msgstr "Không mục nhập nào có sẵn" #: src/components/images/DetailsImage.tsx:252 #~ msgid "Select image" @@ -702,69 +1010,70 @@ msgstr "Ảnh thu nhỏ" #: src/components/importer/ImportDataSelector.tsx:170 msgid "Importing Rows" -msgstr "" +msgstr "Nhập theo hàng" #: src/components/importer/ImportDataSelector.tsx:171 msgid "Please wait while the data is imported" -msgstr "" +msgstr "Vui lòng đợi trong khi dữ liệu được cập nhật" #: src/components/importer/ImportDataSelector.tsx:188 msgid "An error occurred while importing data" -msgstr "" +msgstr "Xảy ra lỗi khi nhập dữ liệu" #: src/components/importer/ImportDataSelector.tsx:209 msgid "Edit Data" -msgstr "" +msgstr "Sửa dữ liệu" #: src/components/importer/ImportDataSelector.tsx:237 msgid "Delete Row" -msgstr "" +msgstr "Xoá hàng" #: src/components/importer/ImportDataSelector.tsx:267 msgid "Row" -msgstr "" +msgstr "Hàng" #: src/components/importer/ImportDataSelector.tsx:285 msgid "Row contains errors" -msgstr "" +msgstr "Hàng" #: src/components/importer/ImportDataSelector.tsx:326 msgid "Accept" -msgstr "" +msgstr "Chấp nhận" #: src/components/importer/ImportDataSelector.tsx:359 msgid "Valid" -msgstr "" +msgstr "Hợp lệ" #: src/components/importer/ImportDataSelector.tsx:360 msgid "Filter by row validation status" -msgstr "" +msgstr "Lọc theo tình trạng xác thực" #: src/components/importer/ImportDataSelector.tsx:365 -#: src/tables/build/BuildOutputTable.tsx:266 +#: src/tables/build/BuildOutputTable.tsx:407 msgid "Complete" -msgstr "" +msgstr "Hoàn thành" #: src/components/importer/ImportDataSelector.tsx:366 msgid "Filter by row completion status" -msgstr "" +msgstr "Lọc theo trạng thái hoàn thành" -#: src/components/importer/ImportDataSelector.tsx:383 +#: src/components/importer/ImportDataSelector.tsx:384 msgid "Import selected rows" -msgstr "" +msgstr "Nhập các hàng đã chọn" -#: src/components/importer/ImportDataSelector.tsx:398 +#: src/components/importer/ImportDataSelector.tsx:399 msgid "Processing Data" -msgstr "" +msgstr "Đang xử lý dữ liệu" -#: src/components/importer/ImporterColumnSelector.tsx:50 -#: src/components/importer/ImporterColumnSelector.tsx:176 +#: src/components/importer/ImporterColumnSelector.tsx:53 +#: src/components/importer/ImporterColumnSelector.tsx:179 +#: src/components/items/ErrorItem.tsx:12 msgid "An error occurred" -msgstr "" +msgstr "Có lỗi xảy ra" -#: src/components/importer/ImporterColumnSelector.tsx:62 +#: src/components/importer/ImporterColumnSelector.tsx:65 msgid "Select column, or leave blank to ignore this field." -msgstr "" +msgstr "Chọn cột hoặc để trống để bỏ qua trường này." #: src/components/importer/ImporterColumnSelector.tsx:91 #~ msgid "Select a column from the data file" @@ -778,167 +1087,197 @@ msgstr "" #~ msgid "Imported Column Name" #~ msgstr "Imported Column Name" -#: src/components/importer/ImporterColumnSelector.tsx:182 +#: src/components/importer/ImporterColumnSelector.tsx:185 msgid "Ignore this field" -msgstr "" +msgstr "Bỏ qua trường này" -#: src/components/importer/ImporterColumnSelector.tsx:196 +#: src/components/importer/ImporterColumnSelector.tsx:199 msgid "Mapping data columns to database fields" -msgstr "" +msgstr "Đang ánh xạ các cột vào các trường cơ sở dữ liệu" -#: src/components/importer/ImporterColumnSelector.tsx:201 +#: src/components/importer/ImporterColumnSelector.tsx:204 msgid "Accept Column Mapping" -msgstr "" - -#: src/components/importer/ImporterColumnSelector.tsx:214 -msgid "Database Field" -msgstr "" - -#: src/components/importer/ImporterColumnSelector.tsx:215 -msgid "Field Description" -msgstr "" - -#: src/components/importer/ImporterColumnSelector.tsx:216 -msgid "Imported Column" -msgstr "" +msgstr "Chấp nhận ánh xạ cột" #: src/components/importer/ImporterColumnSelector.tsx:217 +msgid "Database Field" +msgstr "Trường cơ sở dữ liệu" + +#: src/components/importer/ImporterColumnSelector.tsx:218 +msgid "Field Description" +msgstr "Mô tả trường" + +#: src/components/importer/ImporterColumnSelector.tsx:219 +msgid "Imported Column" +msgstr "Cột nhập khẩu" + +#: src/components/importer/ImporterColumnSelector.tsx:220 msgid "Default Value" -msgstr "" - -#: src/components/importer/ImporterDrawer.tsx:44 -msgid "Upload File" -msgstr "" - -#: src/components/importer/ImporterDrawer.tsx:45 -msgid "Map Columns" -msgstr "" +msgstr "Giá trị mặc định" #: src/components/importer/ImporterDrawer.tsx:46 -msgid "Import Data" -msgstr "" +msgid "Upload File" +msgstr "Tải file" #: src/components/importer/ImporterDrawer.tsx:47 -msgid "Process Data" -msgstr "" +msgid "Map Columns" +msgstr "Ánh xạ cột" #: src/components/importer/ImporterDrawer.tsx:48 +msgid "Import Data" +msgstr "Nhập dữ liệu" + +#: src/components/importer/ImporterDrawer.tsx:49 +msgid "Process Data" +msgstr "Truy cập dữ liệu" + +#: src/components/importer/ImporterDrawer.tsx:50 msgid "Complete Import" -msgstr "" +msgstr "Hoàn thành nhập dữ liệu" #: src/components/importer/ImporterDrawer.tsx:97 #~ msgid "Cancel import session" #~ msgstr "Cancel import session" -#: src/components/importer/ImporterDrawer.tsx:104 +#: src/components/importer/ImporterDrawer.tsx:106 msgid "Import Complete" -msgstr "" - -#: src/components/importer/ImporterDrawer.tsx:107 -msgid "Data has been imported successfully" -msgstr "" +msgstr "Nhập dữ liệu thành công" #: src/components/importer/ImporterDrawer.tsx:109 -#: src/components/importer/ImporterDrawer.tsx:118 +msgid "Data has been imported successfully" +msgstr "Dữ liệu đã được nhập thành công" + +#: src/components/importer/ImporterDrawer.tsx:111 +#: src/components/importer/ImporterDrawer.tsx:120 msgid "Close" -msgstr "" +msgstr "Đóng" -#: src/components/importer/ImporterDrawer.tsx:115 +#: src/components/importer/ImporterDrawer.tsx:117 msgid "Unknown Status" -msgstr "" +msgstr "Trạng thái không xác định" -#: src/components/importer/ImporterDrawer.tsx:116 +#: src/components/importer/ImporterDrawer.tsx:118 msgid "Import session has unknown status" -msgstr "" +msgstr "Phiên nhập có trạng thái không xác định" -#: src/components/importer/ImporterDrawer.tsx:135 +#: src/components/importer/ImporterDrawer.tsx:137 msgid "Importing Data" -msgstr "" +msgstr "Đang nhập dữ liệu" #: src/components/importer/ImporterImportProgress.tsx:36 msgid "Importing Records" +msgstr "Nhập hồ sơ" + +#: src/components/importer/ImporterImportProgress.tsx:39 +#: src/tables/settings/ImportSessionTable.tsx:78 +msgid "Imported Rows" msgstr "" #: src/components/importer/ImporterImportProgress.tsx:39 -msgid "Imported rows" +#~ msgid "Imported rows" +#~ msgstr "Imported rows" + +#: src/components/items/ActionDropdown.tsx:126 +msgid "Options" msgstr "" -#: src/components/items/ActionDropdown.tsx:121 +#: src/components/items/ActionDropdown.tsx:140 +#~ msgid "View Barcode" +#~ msgstr "View Barcode" + +#: src/components/items/ActionDropdown.tsx:162 +#: src/tables/InvenTreeTableHeader.tsx:159 +#: src/tables/InvenTreeTableHeader.tsx:160 msgid "Barcode Actions" msgstr "Chức năng mã vạch" -#: src/components/items/ActionDropdown.tsx:140 -msgid "View Barcode" -msgstr "" +#: src/components/items/ActionDropdown.tsx:162 +#~ msgid "Link custom barcode" +#~ msgstr "Link custom barcode" -#: src/components/items/ActionDropdown.tsx:147 +#: src/components/items/ActionDropdown.tsx:167 msgid "View" msgstr "Xem" -#: src/components/items/ActionDropdown.tsx:148 +#: src/components/items/ActionDropdown.tsx:169 msgid "View barcode" msgstr "Xem mã vạch" -#: src/components/items/ActionDropdown.tsx:161 +#: src/components/items/ActionDropdown.tsx:175 msgid "Link Barcode" msgstr "Liên kết mã vạch" -#: src/components/items/ActionDropdown.tsx:162 -msgid "Link custom barcode" -msgstr "Liên kết mã vạch tùy chỉnh" +#: src/components/items/ActionDropdown.tsx:177 +msgid "Link a custom barcode to this item" +msgstr "Liên kết mã vạch tùy chỉnh với mục này" -#: src/components/items/ActionDropdown.tsx:173 -#: src/forms/PurchaseOrderForms.tsx:426 +#: src/components/items/ActionDropdown.tsx:183 +#: src/components/items/QRCode.tsx:193 +#: src/forms/PurchaseOrderForms.tsx:464 msgid "Unlink Barcode" msgstr "Gỡ liên kết mã vạch" -#: src/components/items/ActionDropdown.tsx:174 +#: src/components/items/ActionDropdown.tsx:185 msgid "Unlink custom barcode" msgstr "Gỡ bỏ mã vạch tùy chỉnh" -#: src/components/items/ActionDropdown.tsx:183 -#: src/tables/RowActions.tsx:33 +#: src/components/items/ActionDropdown.tsx:236 +#: src/tables/RowActions.tsx:39 msgid "Edit" msgstr "Sửa" -#: src/components/items/ActionDropdown.tsx:184 +#: src/components/items/ActionDropdown.tsx:237 msgid "Edit item" -msgstr "" +msgstr "Chỉnh sửa mặt hàng" -#: src/components/items/ActionDropdown.tsx:196 +#: src/components/items/ActionDropdown.tsx:249 msgid "Delete item" msgstr "Xoá mặt hàng" -#: src/components/items/ActionDropdown.tsx:204 -#: src/components/items/ActionDropdown.tsx:205 +#: src/components/items/ActionDropdown.tsx:257 +#: src/components/items/ActionDropdown.tsx:258 msgid "Hold" -msgstr "" +msgstr "Chờ" -#: src/components/items/ActionDropdown.tsx:227 -#: src/tables/RowActions.tsx:23 +#: src/components/items/ActionDropdown.tsx:280 +#: src/tables/RowActions.tsx:29 msgid "Duplicate" msgstr "Nhân bản" -#: src/components/items/ActionDropdown.tsx:228 +#: src/components/items/ActionDropdown.tsx:281 msgid "Duplicate item" msgstr "Nhân bản hàng hóa" +#: src/components/items/BarcodeInput.tsx:23 +msgid "Scan barcode data here using barcode scanner" +msgstr "Quét dữ liệu mã vạch bằng máy quét mã vạch" + +#: src/components/items/BarcodeInput.tsx:24 +#: src/tables/settings/BarcodeScanHistoryTable.tsx:65 +msgid "Barcode" +msgstr "Mã vạch" + +#: src/components/items/BarcodeInput.tsx:25 +msgid "Scan" +msgstr "" + #: src/components/items/DocTooltip.tsx:92 +#: src/components/items/GettingStartedCarousel.tsx:20 msgid "Read More" msgstr "Xem thêm" -#: src/components/items/ErrorItem.tsx:5 -#: src/tables/InvenTreeTable.tsx:487 +#: src/components/items/ErrorItem.tsx:8 +#: src/tables/InvenTreeTable.tsx:473 msgid "Unknown error" msgstr "Lỗi không xác định" -#: src/components/items/ErrorItem.tsx:10 -msgid "An error occurred:" -msgstr "Lỗi đã xảy ra:" +#: src/components/items/ErrorItem.tsx:13 +#~ msgid "An error occurred:" +#~ msgstr "An error occurred:" #: src/components/items/GettingStartedCarousel.tsx:27 -msgid "Read more" -msgstr "Đọc tiếp" +#~ msgid "Read more" +#~ msgstr "Read more" #: src/components/items/InfoItem.tsx:27 msgid "None" @@ -965,29 +1304,50 @@ msgstr "PLH" msgid "This panel is a placeholder." msgstr "Bảng điều khiển này là dự kiến." -#: src/components/items/QRCode.tsx:87 -msgid "Low (7%)" -msgstr "" - -#: src/components/items/QRCode.tsx:88 -msgid "Medium (15%)" -msgstr "" - #: src/components/items/QRCode.tsx:89 -msgid "Quartile (25%)" -msgstr "" +msgid "Low (7%)" +msgstr "Thấp (7%)" #: src/components/items/QRCode.tsx:90 +msgid "Medium (15%)" +msgstr "Trung bình (15%)" + +#: src/components/items/QRCode.tsx:91 +msgid "Quartile (25%)" +msgstr "Một phần tư (25%)" + +#: src/components/items/QRCode.tsx:92 msgid "High (30%)" +msgstr "Cao (30%)" + +#: src/components/items/QRCode.tsx:100 +msgid "Custom barcode" msgstr "" -#: src/components/items/QRCode.tsx:107 -msgid "Barcode Data:" -msgstr "" +#: src/components/items/QRCode.tsx:101 +msgid "A custom barcode is registered for this item. The shown code is not that custom barcode." +msgstr "Mã vạch tùy chỉnh đã được đăng ký cho mặt hàng này. Mã hiển thị không phải là mã vạch tùy chỉnh đó." #: src/components/items/QRCode.tsx:118 +msgid "Barcode Data:" +msgstr "Dữ liệu mã vạch:" + +#: src/components/items/QRCode.tsx:129 msgid "Select Error Correction Level" -msgstr "" +msgstr "Chọn mức độ sửa lỗi" + +#: src/components/items/QRCode.tsx:171 +#: src/pages/part/PartDetail.tsx:239 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:187 +#: src/pages/sales/ReturnOrderDetail.tsx:157 +#: src/pages/sales/SalesOrderDetail.tsx:169 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:166 +msgid "Link" +msgstr "Liên kết" + +#: src/components/items/QRCode.tsx:190 +msgid "This will remove the link to the associated barcode" +msgstr "Thao tác này sẽ xóa liên kết đến mã vạch được liên kết" #: src/components/modals/AboutInvenTreeModal.tsx:99 msgid "Version Information" @@ -1062,90 +1422,49 @@ msgstr "Ứng dụng di động" msgid "Submit Bug Report" msgstr "Gửi báo cáo lỗi" -#: src/components/modals/AboutInvenTreeModal.tsx:183 +#: src/components/modals/AboutInvenTreeModal.tsx:181 msgid "Copy version information" msgstr "Sao chép thông tin phiên bản" -#: src/components/modals/AboutInvenTreeModal.tsx:192 +#: src/components/modals/AboutInvenTreeModal.tsx:189 #: src/components/modals/ServerInfoModal.tsx:147 msgid "Dismiss" msgstr "Bỏ qua" #: src/components/modals/LicenseModal.tsx:39 msgid "No license text available" -msgstr "" +msgstr "Không có văn bản giấy phép nào có sẵn" #: src/components/modals/LicenseModal.tsx:46 msgid "No Information provided - this is likely a server issue" -msgstr "" +msgstr "Không có thông tin nào được cung cấp - đây có thể là sự cố máy chủ" #: src/components/modals/LicenseModal.tsx:71 msgid "Loading license information" -msgstr "" +msgstr "Đang tải thông tin giấy phép" #: src/components/modals/LicenseModal.tsx:77 msgid "Failed to fetch license information" -msgstr "" +msgstr "Không thể lấy thông tin giấy phép" #: src/components/modals/LicenseModal.tsx:85 msgid "{key} Packages" -msgstr "" +msgstr "{key} Gói" -#: src/components/modals/QrCodeModal.tsx:72 +#: src/components/modals/QrCodeModal.tsx:24 msgid "Unknown response" msgstr "Trả lời không xác định" -#: src/components/modals/QrCodeModal.tsx:102 -#: src/pages/Index/Scan.tsx:636 -msgid "Error while getting camera" -msgstr "Có lỗi khi lấy camera" - -#: src/components/modals/QrCodeModal.tsx:125 -#: src/pages/Index/Scan.tsx:659 -msgid "Error while scanning" -msgstr "Lỗi khi quét" - -#: src/components/modals/QrCodeModal.tsx:139 -#: src/pages/Index/Scan.tsx:673 -msgid "Error while stopping" -msgstr "Lỗi trong khi dừng lại" - -#: src/components/modals/QrCodeModal.tsx:154 -#: src/defaults/menuItems.tsx:21 -#: src/pages/Index/Scan.tsx:746 -msgid "Scanning" -msgstr "Đang quét" - -#: src/components/modals/QrCodeModal.tsx:154 -#: src/pages/Index/Scan.tsx:746 -msgid "Not scanning" -msgstr "Chưa quét" - -#: src/components/modals/QrCodeModal.tsx:159 -#: src/pages/Index/Scan.tsx:752 -msgid "Select Camera" -msgstr "Chọn camera" - -#: src/components/modals/QrCodeModal.tsx:169 -#: src/pages/Index/Scan.tsx:737 -msgid "Start scanning" -msgstr "Bắt đầu quét" - -#: src/components/modals/QrCodeModal.tsx:176 -#: src/pages/Index/Scan.tsx:729 -msgid "Stop scanning" -msgstr "Dừng quét" - -#: src/components/modals/QrCodeModal.tsx:181 +#: src/components/modals/QrCodeModal.tsx:39 msgid "No scans yet!" msgstr "Vẫn chưa quét!" -#: src/components/modals/QrCodeModal.tsx:201 +#: src/components/modals/QrCodeModal.tsx:57 msgid "Close modal" msgstr "Đóng cửa sổ" #: src/components/modals/ServerInfoModal.tsx:26 -#: src/pages/Index/Settings/SystemSettings.tsx:38 +#: src/pages/Index/Settings/SystemSettings.tsx:37 msgid "Server" msgstr "Máy chủ" @@ -1206,6 +1525,7 @@ msgid "Background Worker" msgstr "Nhân công chạy ngầm" #: src/components/modals/ServerInfoModal.tsx:101 +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:29 msgid "Background worker not running" msgstr "Nhân công chạy ngầm không hoạt động" @@ -1218,8 +1538,8 @@ msgid "Email settings not configured" msgstr "Chưa cấu hình thiết lập email" #: src/components/modals/ServerInfoModal.tsx:121 -#: src/tables/plugin/PluginListTable.tsx:144 -#: src/tables/plugin/PluginListTable.tsx:294 +#: src/components/plugins/PluginDrawer.tsx:89 +#: src/tables/plugin/PluginListTable.tsx:116 msgid "Version" msgstr "Phiên bản" @@ -1227,9 +1547,9 @@ msgstr "Phiên bản" msgid "Server Version" msgstr "Phiên bản máy chủ" -#: src/components/nav/Layout.tsx:73 +#: src/components/nav/Layout.tsx:80 msgid "Nothing found..." -msgstr "" +msgstr "Không tìm thấy..." #: src/components/nav/MainMenu.tsx:40 #: src/pages/Index/Profile/Profile.tsx:15 @@ -1237,18 +1557,26 @@ msgstr "" #~ msgstr "Profile" #: src/components/nav/MainMenu.tsx:52 +#: src/components/nav/NavigationDrawer.tsx:178 #: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:28 msgid "Settings" msgstr "Cài đặt" #: src/components/nav/MainMenu.tsx:59 -#: src/defaults/menuItems.tsx:15 -msgid "Account settings" +#: src/pages/Index/Settings/UserSettings.tsx:152 +msgid "Account Settings" msgstr "Cài đặt tài khoản" +#: src/components/nav/MainMenu.tsx:59 +#: src/defaults/menuItems.tsx:15 +#~ msgid "Account settings" +#~ msgstr "Account settings" + #: src/components/nav/MainMenu.tsx:67 -#: src/defaults/menuItems.tsx:58 -#: src/pages/Index/Settings/SystemSettings.tsx:315 +#: src/components/nav/NavigationDrawer.tsx:141 +#: src/components/nav/SettingsHeader.tsx:49 +#: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:37 +#: src/pages/Index/Settings/SystemSettings.tsx:310 msgid "System Settings" msgstr "Thiết lập hệ thống" @@ -1260,14 +1588,11 @@ msgstr "Thiết lập hệ thống" #~ msgid "Switch to pseudo language" #~ msgstr "Switch to pseudo language" -#: src/components/nav/MainMenu.tsx:77 -msgid "Change Color Mode" -msgstr "" - #: src/components/nav/MainMenu.tsx:86 -#: src/defaults/actions.tsx:71 -#: src/defaults/menuItems.tsx:63 -#: src/pages/Index/Settings/AdminCenter/Index.tsx:221 +#: src/components/nav/NavigationDrawer.tsx:148 +#: src/components/nav/SettingsHeader.tsx:50 +#: src/defaults/actions.tsx:63 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:251 msgid "Admin Center" msgstr "Trung tâm quản trị" @@ -1275,500 +1600,773 @@ msgstr "Trung tâm quản trị" msgid "Logout" msgstr "Đăng xuất" -#: src/components/nav/NavHoverMenu.tsx:65 -#: src/defaults/actions.tsx:60 -msgid "Open Navigation" -msgstr "Mở điều hướng" - #: src/components/nav/NavHoverMenu.tsx:84 -msgid "View all" -msgstr "Xem tất cả" +#~ msgid "View all" +#~ msgstr "View all" #: src/components/nav/NavHoverMenu.tsx:100 #: src/components/nav/NavHoverMenu.tsx:110 -msgid "Get started" -msgstr "Bắt đầu" +#~ msgid "Get started" +#~ msgstr "Get started" #: src/components/nav/NavHoverMenu.tsx:103 -msgid "Overview over high-level objects, functions and possible usecases." -msgstr "Tổng qua về đtối tượng mức cao, chức năng và tình huống sử dụng có thể." - -#: src/components/nav/NavigationDrawer.tsx:57 -msgid "Navigation" -msgstr "Điều hướng" +#~ msgid "Overview over high-level objects, functions and possible usecases." +#~ msgstr "Overview over high-level objects, functions and possible usecases." #: src/components/nav/NavigationDrawer.tsx:60 -msgid "Pages" -msgstr "Trang" +#~ msgid "Pages" +#~ msgstr "Pages" -#: src/components/nav/NavigationDrawer.tsx:65 -#: src/pages/Index/Settings/AdminCenter/Index.tsx:176 -#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:41 -msgid "Plugins" -msgstr "Plugins" +#: src/components/nav/NavigationDrawer.tsx:77 +#: src/components/render/ModelType.tsx:31 +#: src/defaults/links.tsx:10 +#: src/pages/Index/Settings/SystemSettings.tsx:172 +#: src/pages/part/CategoryDetail.tsx:125 +#: src/pages/part/CategoryDetail.tsx:249 +#: src/pages/part/CategoryDetail.tsx:279 +#: src/pages/part/PartDetail.tsx:856 +msgid "Parts" +msgstr "Phụ tùng" -#: src/components/nav/NavigationDrawer.tsx:75 -#: src/defaults/actions.tsx:32 -msgid "Documentation" -msgstr "Tài liệu" +#: src/components/nav/NavigationDrawer.tsx:84 +#: src/components/render/Part.tsx:30 +#: src/defaults/links.tsx:11 +#: src/pages/Index/Settings/SystemSettings.tsx:205 +#: src/pages/part/PartDetail.tsx:593 +#: src/pages/stock/LocationDetail.tsx:352 +#: src/pages/stock/StockDetail.tsx:528 +#: src/tables/stock/StockItemTable.tsx:69 +msgid "Stock" +msgstr "Kho hàng" -#: src/components/nav/NavigationDrawer.tsx:78 -msgid "About" -msgstr "Giới thiệu" +#: src/components/nav/NavigationDrawer.tsx:91 +#: src/defaults/links.tsx:13 +#: src/pages/build/BuildDetail.tsx:530 +#: src/pages/build/BuildIndex.tsx:36 +msgid "Manufacturing" +msgstr "" -#: src/components/nav/NotificationDrawer.tsx:92 -#: src/pages/Index/Settings/SystemSettings.tsx:109 -#: src/pages/Index/Settings/UserSettings.tsx:126 +#: src/components/nav/NavigationDrawer.tsx:98 +#: src/defaults/links.tsx:18 +#: src/pages/company/ManufacturerDetail.tsx:9 +#: src/pages/company/ManufacturerPartDetail.tsx:258 +#: src/pages/company/SupplierDetail.tsx:9 +#: src/pages/company/SupplierPartDetail.tsx:336 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:480 +#: src/pages/purchasing/PurchasingIndex.tsx:60 +msgid "Purchasing" +msgstr "Mua sắm" + +#: src/components/nav/NavigationDrawer.tsx:105 +#: src/defaults/links.tsx:22 +#: src/pages/company/CustomerDetail.tsx:9 +#: src/pages/sales/ReturnOrderDetail.tsx:469 +#: src/pages/sales/SalesIndex.tsx:53 +#: src/pages/sales/SalesOrderDetail.tsx:520 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:343 +msgid "Sales" +msgstr "Bán hàng" + +#: src/components/nav/NavigationDrawer.tsx:129 +#: src/components/nav/NotificationDrawer.tsx:178 +#: src/pages/Index/Settings/SystemSettings.tsx:110 +#: src/pages/Index/Settings/UserSettings.tsx:127 #: src/pages/Notifications.tsx:65 #: src/pages/Notifications.tsx:151 msgid "Notifications" msgstr "Thông báo" -#: src/components/nav/NotificationDrawer.tsx:94 +#: src/components/nav/NavigationDrawer.tsx:135 +#: src/components/nav/SettingsHeader.tsx:48 +msgid "User Settings" +msgstr "" + +#: src/components/nav/NavigationDrawer.tsx:173 +msgid "Navigation" +msgstr "Điều hướng" + +#: src/components/nav/NavigationDrawer.tsx:183 +#: src/forms/PurchaseOrderForms.tsx:689 +#: src/forms/StockForms.tsx:614 +#: src/forms/StockForms.tsx:651 +#: src/forms/StockForms.tsx:677 +#: src/forms/StockForms.tsx:705 +#: src/forms/StockForms.tsx:736 +#: src/forms/StockForms.tsx:771 +#: src/forms/StockForms.tsx:813 +#: src/forms/StockForms.tsx:851 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:413 +#: src/tables/RowActions.tsx:129 +#: src/tables/build/BuildLineTable.tsx:101 +msgid "Actions" +msgstr "Chức năng" + +#: src/components/nav/NavigationDrawer.tsx:191 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:205 +#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:44 +msgid "Plugins" +msgstr "Plugins" + +#: src/components/nav/NavigationDrawer.tsx:204 +#: src/defaults/actions.tsx:24 +msgid "Documentation" +msgstr "Tài liệu" + +#: src/components/nav/NavigationDrawer.tsx:210 +msgid "About" +msgstr "Giới thiệu" + +#: src/components/nav/NotificationDrawer.tsx:180 msgid "Mark all as read" -msgstr "" +msgstr "Đánh dấu tất cả là đã đọc" -#: src/components/nav/NotificationDrawer.tsx:104 +#: src/components/nav/NotificationDrawer.tsx:190 msgid "View all notifications" -msgstr "" +msgstr "Xem tất cả thông báo" -#: src/components/nav/NotificationDrawer.tsx:123 +#: src/components/nav/NotificationDrawer.tsx:210 msgid "You have no unread notifications." msgstr "Bạn chưa có thông báo mới." -#: src/components/nav/NotificationDrawer.tsx:139 -#: src/components/nav/NotificationDrawer.tsx:145 -#: src/tables/notifications/NotificationsTable.tsx:36 -msgid "Notification" -msgstr "Thông báo" - -#: src/components/nav/NotificationDrawer.tsx:168 -#: src/pages/Notifications.tsx:73 -msgid "Mark as read" -msgstr "Đánh dấu đã đọc" - -#: src/components/nav/SearchDrawer.tsx:78 +#: src/components/nav/SearchDrawer.tsx:85 msgid "results" msgstr "kết quả" -#: src/components/nav/SearchDrawer.tsx:370 +#: src/components/nav/SearchDrawer.tsx:380 msgid "Enter search text" msgstr "Nhập văn bản tìm kiếm" -#: src/components/nav/SearchDrawer.tsx:397 +#: src/components/nav/SearchDrawer.tsx:391 +msgid "Refresh search results" +msgstr "" + +#: src/components/nav/SearchDrawer.tsx:402 +#: src/components/nav/SearchDrawer.tsx:409 msgid "Search Options" msgstr "Tùy chọn tìm kiếm" -#: src/components/nav/SearchDrawer.tsx:400 +#: src/components/nav/SearchDrawer.tsx:412 msgid "Regex search" msgstr "Tìm kiếm regex" -#: src/components/nav/SearchDrawer.tsx:410 +#: src/components/nav/SearchDrawer.tsx:421 msgid "Whole word search" msgstr "Tìm phù hợp toàn bộ từ" -#: src/components/nav/SearchDrawer.tsx:451 +#: src/components/nav/SearchDrawer.tsx:461 msgid "An error occurred during search query" msgstr "Lỗi trong quá trình truy vấn tìm kiếm" #: src/components/nav/SearchDrawer.tsx:462 -msgid "No results" -msgstr "Không có kết quả" +#~ msgid "No results" +#~ msgstr "No results" -#: src/components/nav/SearchDrawer.tsx:465 +#: src/components/nav/SearchDrawer.tsx:472 +#: src/tables/part/PartTestTemplateTable.tsx:76 +msgid "No Results" +msgstr "" + +#: src/components/nav/SearchDrawer.tsx:475 msgid "No results available for search query" msgstr "Không có kết quả nào được tìm thấy với truy vấn tìm kiếm" -#: src/components/render/Instance.tsx:217 +#: src/components/panels/AttachmentPanel.tsx:18 +msgid "Attachments" +msgstr "Đính kèm" + +#: src/components/panels/NotesPanel.tsx:24 +#: src/tables/build/BuildOrderTestTable.tsx:143 +#: src/tables/stock/StockTrackingTable.tsx:204 +msgid "Notes" +msgstr "Ghi chú" + +#: src/components/plugins/PluginDrawer.tsx:47 +msgid "Plugin Inactive" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:50 +msgid "Plugin is not active" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:60 +msgid "Plugin Information" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:74 +#: src/pages/build/BuildDetail.tsx:116 +#: src/pages/company/CompanyDetail.tsx:89 +#: src/pages/company/ManufacturerPartDetail.tsx:89 +#: src/pages/company/ManufacturerPartDetail.tsx:116 +#: src/pages/company/SupplierPartDetail.tsx:140 +#: src/pages/part/CategoryDetail.tsx:101 +#: src/pages/part/PartDetail.tsx:178 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:136 +#: src/pages/sales/ReturnOrderDetail.tsx:107 +#: src/pages/sales/SalesOrderDetail.tsx:116 +#: src/pages/stock/LocationDetail.tsx:103 +#: src/tables/ColumnRenderers.tsx:92 +#: src/tables/bom/UsedInTable.tsx:44 +#: src/tables/build/BuildAllocatedStockTable.tsx:83 +#: src/tables/build/BuildLineTable.tsx:329 +#: src/tables/machine/MachineTypeTable.tsx:74 +#: src/tables/machine/MachineTypeTable.tsx:129 +#: src/tables/machine/MachineTypeTable.tsx:240 +#: src/tables/machine/MachineTypeTable.tsx:344 +#: src/tables/part/RelatedPartTable.tsx:66 +#: src/tables/plugin/PluginListTable.tsx:99 +#: src/tables/sales/SalesOrderAllocationTable.tsx:87 +#: src/tables/sales/SalesOrderLineItemTable.tsx:75 +#: src/tables/stock/LocationTypesTable.tsx:74 +msgid "Description" +msgstr "Mô tả" + +#: src/components/plugins/PluginDrawer.tsx:79 +msgid "Author" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:84 +#: src/pages/part/PartSchedulingDetail.tsx:277 +#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:40 +#: src/pages/part/pricing/SaleHistoryPanel.tsx:38 +#: src/tables/ColumnRenderers.tsx:215 +#: src/tables/build/BuildOrderTestTable.tsx:151 +#: src/tables/settings/StocktakeReportTable.tsx:40 +msgid "Date" +msgstr "Ngày" + +#: src/components/plugins/PluginDrawer.tsx:94 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:398 +#: src/pages/part/PartDetail.tsx:331 +#: src/tables/bom/UsedInTable.tsx:84 +#: src/tables/company/CompanyTable.tsx:62 +#: src/tables/company/CompanyTable.tsx:96 +#: src/tables/machine/MachineListTable.tsx:333 +#: src/tables/machine/MachineListTable.tsx:605 +#: src/tables/part/ParametricPartTable.tsx:223 +#: src/tables/part/PartTable.tsx:178 +#: src/tables/part/PartVariantTable.tsx:15 +#: src/tables/plugin/PluginListTable.tsx:94 +#: src/tables/plugin/PluginListTable.tsx:401 +#: src/tables/purchasing/SupplierPartTable.tsx:100 +#: src/tables/purchasing/SupplierPartTable.tsx:190 +#: src/tables/settings/UserTable.tsx:283 +#: src/tables/stock/StockItemTable.tsx:293 +msgid "Active" +msgstr "Hoạt động" + +#: src/components/plugins/PluginDrawer.tsx:106 +msgid "Package Name" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:112 +msgid "Installation Path" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:117 +#: src/tables/machine/MachineTypeTable.tsx:152 +#: src/tables/machine/MachineTypeTable.tsx:276 +#: src/tables/plugin/PluginListTable.tsx:406 +msgid "Builtin" +msgstr "Gắn liền" + +#: src/components/plugins/PluginDrawer.tsx:122 +msgid "Package" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:134 +#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:53 +msgid "Plugin Settings" +msgstr "Thiết lập phần bổ sung" + +#: src/components/plugins/PluginDrawer.tsx:146 +#: src/components/render/ModelType.tsx:276 +msgid "Plugin Configuration" +msgstr "Cấu hình plugin" + +#: src/components/plugins/PluginPanel.tsx:87 +#~ msgid "Error occurred while rendering plugin content" +#~ msgstr "Error occurred while rendering plugin content" + +#: src/components/plugins/PluginPanel.tsx:91 +#~ msgid "Plugin did not provide panel rendering function" +#~ msgstr "Plugin did not provide panel rendering function" + +#: src/components/plugins/PluginPanel.tsx:103 +#~ msgid "No content provided for this plugin" +#~ msgstr "No content provided for this plugin" + +#: src/components/plugins/PluginPanel.tsx:116 +#: src/components/plugins/PluginSettingsPanel.tsx:76 +#~ msgid "Error Loading Plugin" +#~ msgstr "Error Loading Plugin" + +#: src/components/plugins/PluginSettingsPanel.tsx:51 +#~ msgid "Error occurred while rendering plugin settings" +#~ msgstr "Error occurred while rendering plugin settings" + +#: src/components/plugins/PluginSettingsPanel.tsx:55 +#~ msgid "Plugin did not provide settings rendering function" +#~ msgstr "Plugin did not provide settings rendering function" + +#: src/components/plugins/PluginUIFeature.tsx:100 +msgid "Error occurred while rendering the template editor." +msgstr "" + +#: src/components/plugins/PluginUIFeature.tsx:111 +msgid "Error Loading Plugin Editor" +msgstr "" + +#: src/components/plugins/PluginUIFeature.tsx:147 +msgid "Error occurred while rendering the template preview." +msgstr "" + +#: src/components/plugins/PluginUIFeature.tsx:158 +msgid "Error Loading Plugin Preview" +msgstr "" + +#: src/components/plugins/RemoteComponent.tsx:70 +msgid "Invalid source or function name" +msgstr "" + +#: src/components/plugins/RemoteComponent.tsx:91 +msgid "Error Loading Content" +msgstr "" + +#: src/components/plugins/RemoteComponent.tsx:95 +msgid "Error occurred while loading plugin content" +msgstr "" + +#: src/components/render/Instance.tsx:224 msgid "Unknown model: {model}" msgstr "Model không rõ: {model}" -#: src/components/render/ModelType.tsx:22 -#: src/forms/BuildForms.tsx:213 -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/forms/StockForms.tsx:499 -#: src/forms/StockForms.tsx:533 -#: src/forms/StockForms.tsx:562 -#: src/forms/StockForms.tsx:590 -#: src/forms/StockForms.tsx:621 -#: src/forms/StockForms.tsx:656 -#: src/forms/StockForms.tsx:698 -#: src/forms/StockForms.tsx:734 -#: src/pages/build/BuildDetail.tsx:95 -#: src/pages/part/PartDetail.tsx:1073 -#: src/tables/build/BuildAllocatedStockTable.tsx:82 +#: src/components/render/ModelType.tsx:30 +#: src/forms/BuildForms.tsx:269 +#: src/forms/BuildForms.tsx:337 +#: src/forms/BuildForms.tsx:385 +#: src/forms/BuildForms.tsx:515 +#: src/forms/PurchaseOrderForms.tsx:689 +#: src/forms/ReturnOrderForms.tsx:190 +#: src/forms/SalesOrderForms.tsx:248 +#: src/forms/StockForms.tsx:261 +#: src/forms/StockForms.tsx:614 +#: src/forms/StockForms.tsx:651 +#: src/forms/StockForms.tsx:677 +#: src/forms/StockForms.tsx:705 +#: src/forms/StockForms.tsx:736 +#: src/forms/StockForms.tsx:771 +#: src/forms/StockForms.tsx:813 +#: src/forms/StockForms.tsx:851 +#: src/pages/build/BuildDetail.tsx:90 +#: src/pages/part/PartDetail.tsx:1094 +#: src/tables/build/BuildAllocatedStockTable.tsx:95 +#: src/tables/build/BuildLineTable.tsx:72 #: src/tables/part/PartTable.tsx:28 -#: src/tables/part/RelatedPartTable.tsx:45 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:88 -#: src/tables/sales/SalesOrderAllocationTable.tsx:68 -#: src/tables/stock/StockTrackingTable.tsx:74 +#: src/tables/part/RelatedPartTable.tsx:47 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:130 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:100 +#: src/tables/sales/SalesOrderAllocationTable.tsx:99 +#: src/tables/stock/StockTrackingTable.tsx:78 msgid "Part" msgstr "Phụ kiện" -#: src/components/render/ModelType.tsx:23 -#: src/defaults/links.tsx:29 -#: src/defaults/menuItems.tsx:33 -#: src/pages/Index/Settings/SystemSettings.tsx:173 -#: src/pages/part/CategoryDetail.tsx:119 -#: src/pages/part/CategoryDetail.tsx:244 -#: src/pages/part/CategoryDetail.tsx:274 -#: src/pages/part/PartDetail.tsx:827 -msgid "Parts" -msgstr "Phụ tùng" - -#: src/components/render/ModelType.tsx:31 +#: src/components/render/ModelType.tsx:40 msgid "Part Parameter Template" msgstr "Mẫu tham số phụ kiện" -#: src/components/render/ModelType.tsx:32 +#: src/components/render/ModelType.tsx:41 msgid "Part Parameter Templates" msgstr "Mẫu tham số phụ kiện" -#: src/components/render/ModelType.tsx:38 +#: src/components/render/ModelType.tsx:48 msgid "Part Test Template" -msgstr "" +msgstr "Mẫu thử nghiệm" -#: src/components/render/ModelType.tsx:39 +#: src/components/render/ModelType.tsx:49 msgid "Part Test Templates" -msgstr "" +msgstr "Mẫu thử nghiệm" -#: src/components/render/ModelType.tsx:45 -#: src/pages/company/SupplierPartDetail.tsx:203 -#: src/pages/company/SupplierPartDetail.tsx:375 -#: src/pages/stock/StockDetail.tsx:173 -#: src/tables/build/BuildAllocatedStockTable.tsx:131 +#: src/components/render/ModelType.tsx:56 +#: src/pages/company/SupplierPartDetail.tsx:364 +#: src/pages/stock/StockDetail.tsx:194 +#: src/tables/build/BuildAllocatedStockTable.tsx:152 #: src/tables/part/PartPurchaseOrdersTable.tsx:49 -#: src/tables/purchasing/SupplierPartTable.tsx:68 +#: src/tables/purchasing/SupplierPartTable.tsx:70 +#: src/tables/stock/StockItemTable.tsx:229 msgid "Supplier Part" msgstr "Phụ kiện nhà cung cấp" -#: src/components/render/ModelType.tsx:46 +#: src/components/render/ModelType.tsx:57 msgid "Supplier Parts" msgstr "Nhà cung cấp phụ kiện" -#: src/components/render/ModelType.tsx:54 -#: src/pages/company/ManufacturerPartDetail.tsx:132 +#: src/components/render/ModelType.tsx:66 #: src/tables/part/PartPurchaseOrdersTable.tsx:55 +#: src/tables/stock/StockItemTable.tsx:234 msgid "Manufacturer Part" msgstr "Phụ kiện nhà sản xuất" -#: src/components/render/ModelType.tsx:55 +#: src/components/render/ModelType.tsx:67 msgid "Manufacturer Parts" msgstr "Nhà sản xuất phụ kiện" -#: src/components/render/ModelType.tsx:63 -#: src/pages/part/CategoryDetail.tsx:305 +#: src/components/render/ModelType.tsx:76 +#: src/pages/part/CategoryDetail.tsx:310 msgid "Part Category" msgstr "Danh mục phụ kiện" -#: src/components/render/ModelType.tsx:64 -#: src/pages/part/CategoryDetail.tsx:258 -#: src/pages/part/CategoryDetail.tsx:296 -#: src/pages/part/PartDetail.tsx:1063 +#: src/components/render/ModelType.tsx:77 +#: src/pages/part/CategoryDetail.tsx:263 +#: src/pages/part/CategoryDetail.tsx:301 +#: src/pages/part/PartDetail.tsx:1084 msgid "Part Categories" msgstr "Danh mục phụ kiện" -#: src/components/render/ModelType.tsx:72 -#: src/pages/stock/StockDetail.tsx:624 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:94 -#: src/tables/stock/StockTrackingTable.tsx:45 +#: src/components/render/ModelType.tsx:86 +#: src/forms/BuildForms.tsx:337 +#: src/forms/BuildForms.tsx:385 +#: src/forms/BuildForms.tsx:515 +#: src/forms/SalesOrderForms.tsx:248 +#: src/pages/stock/StockDetail.tsx:839 +#: src/tables/stock/StockTrackingTable.tsx:49 msgid "Stock Item" msgstr "Hàng trong kho" -#: src/components/render/ModelType.tsx:73 +#: src/components/render/ModelType.tsx:87 #: src/pages/company/CompanyDetail.tsx:203 -#: src/pages/stock/LocationDetail.tsx:128 -#: src/pages/stock/LocationDetail.tsx:181 -#: src/pages/stock/LocationDetail.tsx:395 +#: src/pages/part/PartStocktakeDetail.tsx:113 +#: src/pages/stock/LocationDetail.tsx:122 +#: src/pages/stock/LocationDetail.tsx:175 +#: src/pages/stock/LocationDetail.tsx:380 msgid "Stock Items" msgstr "Hàng trong kho" -#: src/components/render/ModelType.tsx:81 +#: src/components/render/ModelType.tsx:96 msgid "Stock Location" msgstr "Vị trí kho hàng" -#: src/components/render/ModelType.tsx:82 -#: src/pages/stock/LocationDetail.tsx:195 -#: src/pages/stock/LocationDetail.tsx:387 -#: src/pages/stock/StockDetail.tsx:616 +#: src/components/render/ModelType.tsx:97 +#: src/pages/stock/LocationDetail.tsx:189 +#: src/pages/stock/LocationDetail.tsx:372 +#: src/pages/stock/StockDetail.tsx:831 msgid "Stock Locations" msgstr "Vị trí kho hàng" -#: src/components/render/ModelType.tsx:90 +#: src/components/render/ModelType.tsx:106 msgid "Stock Location Type" -msgstr "" +msgstr "Phân loại vị trí kho hàng" -#: src/components/render/ModelType.tsx:91 +#: src/components/render/ModelType.tsx:107 msgid "Stock Location Types" -msgstr "" +msgstr "Phân loại vị trí kho hàng" -#: src/components/render/ModelType.tsx:95 +#: src/components/render/ModelType.tsx:112 +#: src/pages/part/PartDetail.tsx:712 msgid "Stock History" -msgstr "" +msgstr "Lịch sử kho hàng" -#: src/components/render/ModelType.tsx:96 +#: src/components/render/ModelType.tsx:113 msgid "Stock Histories" -msgstr "" +msgstr "Lịch sử kho hàng" -#: src/components/render/ModelType.tsx:100 -#: src/defaults/links.tsx:31 -#: src/defaults/menuItems.tsx:43 +#: src/components/render/ModelType.tsx:118 msgid "Build" msgstr "Xây dựng" -#: src/components/render/ModelType.tsx:101 +#: src/components/render/ModelType.tsx:119 msgid "Builds" msgstr "Bản dựng" -#: src/components/render/ModelType.tsx:109 +#: src/components/render/ModelType.tsx:128 msgid "Build Line" -msgstr "" +msgstr "Xây dựng line mặt hàng" -#: src/components/render/ModelType.tsx:110 +#: src/components/render/ModelType.tsx:129 msgid "Build Lines" -msgstr "" +msgstr "Xây dựng line mặt hàng" -#: src/components/render/ModelType.tsx:117 +#: src/components/render/ModelType.tsx:137 msgid "Build Item" -msgstr "" +msgstr "Xây dựng mặt hàng" -#: src/components/render/ModelType.tsx:118 +#: src/components/render/ModelType.tsx:138 msgid "Build Items" -msgstr "" +msgstr "Xây dựng mặt hàng" -#: src/components/render/ModelType.tsx:122 -#: src/pages/company/CompanyDetail.tsx:339 +#: src/components/render/ModelType.tsx:143 +#: src/pages/company/CompanyDetail.tsx:321 msgid "Company" msgstr "Công ty" -#: src/components/render/ModelType.tsx:123 +#: src/components/render/ModelType.tsx:144 msgid "Companies" msgstr "Doanh nghiệp" -#: src/components/render/ModelType.tsx:131 +#: src/components/render/ModelType.tsx:153 +#: src/pages/build/BuildDetail.tsx:195 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:204 +#: src/pages/sales/ReturnOrderDetail.tsx:174 +#: src/pages/sales/SalesOrderDetail.tsx:186 #: src/tables/TableHoverCard.tsx:81 -#: src/tables/build/BuildOrderTable.tsx:140 -#: src/tables/purchasing/PurchaseOrderTable.tsx:64 -#: src/tables/sales/ReturnOrderTable.tsx:55 -#: src/tables/sales/SalesOrderTable.tsx:62 +#: src/tables/build/BuildOrderTable.tsx:135 +#: src/tables/purchasing/PurchaseOrderTable.tsx:69 +#: src/tables/sales/ReturnOrderTable.tsx:67 +#: src/tables/sales/SalesOrderTable.tsx:67 msgid "Project Code" msgstr "Mã dự án" -#: src/components/render/ModelType.tsx:132 -#: src/pages/Index/Settings/AdminCenter/Index.tsx:128 +#: src/components/render/ModelType.tsx:154 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:145 msgid "Project Codes" msgstr "Mã dự án" -#: src/components/render/ModelType.tsx:138 +#: src/components/render/ModelType.tsx:161 #: src/pages/part/pricing/PurchaseHistoryPanel.tsx:32 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:480 -#: src/tables/part/PartPurchaseOrdersTable.tsx:32 -#: src/tables/stock/StockTrackingTable.tsx:107 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:477 +#: src/pages/stock/StockDetail.tsx:253 +#: src/tables/part/PartPurchaseOrdersTable.tsx:31 +#: src/tables/stock/StockItemTable.tsx:222 +#: src/tables/stock/StockTrackingTable.tsx:111 msgid "Purchase Order" msgstr "Đơn đặt mua" -#: src/components/render/ModelType.tsx:139 -#: src/pages/Index/Settings/SystemSettings.tsx:255 +#: src/components/render/ModelType.tsx:162 +#: src/pages/Index/Settings/SystemSettings.tsx:249 #: src/pages/company/CompanyDetail.tsx:196 -#: src/pages/company/SupplierPartDetail.tsx:237 -#: src/pages/part/PartDetail.tsx:662 +#: src/pages/company/SupplierPartDetail.tsx:249 +#: src/pages/part/PartDetail.tsx:683 #: src/pages/purchasing/PurchasingIndex.tsx:25 msgid "Purchase Orders" msgstr "Đơn hàng mua" -#: src/components/render/ModelType.tsx:147 +#: src/components/render/ModelType.tsx:171 msgid "Purchase Order Line" -msgstr "" +msgstr "Các dòng đơn đặt hàng" -#: src/components/render/ModelType.tsx:148 +#: src/components/render/ModelType.tsx:172 msgid "Purchase Order Lines" -msgstr "" +msgstr "Các dòng đơn đặt hàng" -#: src/components/render/ModelType.tsx:152 -#: src/pages/build/BuildDetail.tsx:153 -#: src/pages/sales/SalesOrderDetail.tsx:520 -#: src/pages/stock/StockDetail.tsx:221 -#: src/tables/sales/SalesOrderAllocationTable.tsx:50 -#: src/tables/stock/StockTrackingTable.tsx:118 +#: src/components/render/ModelType.tsx:177 +#: src/pages/build/BuildDetail.tsx:148 +#: src/pages/part/pricing/SaleHistoryPanel.tsx:24 +#: src/pages/sales/SalesOrderDetail.tsx:515 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:92 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:341 +#: src/pages/stock/StockDetail.tsx:262 +#: src/tables/sales/SalesOrderAllocationTable.tsx:80 +#: src/tables/stock/StockTrackingTable.tsx:122 msgid "Sales Order" msgstr "Đơn đặt bán" -#: src/components/render/ModelType.tsx:153 -#: src/pages/Index/Settings/SystemSettings.tsx:270 +#: src/components/render/ModelType.tsx:178 +#: src/pages/Index/Settings/SystemSettings.tsx:264 #: src/pages/company/CompanyDetail.tsx:216 -#: src/pages/part/PartDetail.tsx:669 +#: src/pages/part/PartDetail.tsx:695 #: src/pages/sales/SalesIndex.tsx:26 msgid "Sales Orders" msgstr "Đơn hàng bán" -#: src/components/render/ModelType.tsx:161 +#: src/components/render/ModelType.tsx:187 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:340 msgid "Sales Order Shipment" msgstr "Vận chuyển đơn hàng" -#: src/components/render/ModelType.tsx:162 +#: src/components/render/ModelType.tsx:188 msgid "Sales Order Shipments" msgstr "Vận chuyển đơn hàng" -#: src/components/render/ModelType.tsx:168 -#: src/pages/sales/ReturnOrderDetail.tsx:469 -#: src/tables/stock/StockTrackingTable.tsx:129 +#: src/components/render/ModelType.tsx:195 +#: src/pages/sales/ReturnOrderDetail.tsx:464 +#: src/tables/stock/StockTrackingTable.tsx:133 msgid "Return Order" msgstr "Đơn hàng trả lại" -#: src/components/render/ModelType.tsx:169 -#: src/pages/Index/Settings/SystemSettings.tsx:286 +#: src/components/render/ModelType.tsx:196 +#: src/pages/Index/Settings/SystemSettings.tsx:280 #: src/pages/company/CompanyDetail.tsx:223 +#: src/pages/part/PartDetail.tsx:702 #: src/pages/sales/SalesIndex.tsx:32 msgid "Return Orders" msgstr "Đơn hàng trả lại" -#: src/components/render/ModelType.tsx:177 +#: src/components/render/ModelType.tsx:205 msgid "Return Order Line Item" -msgstr "" +msgstr "Đơn hàng trả lại" -#: src/components/render/ModelType.tsx:178 +#: src/components/render/ModelType.tsx:206 msgid "Return Order Line Items" -msgstr "" +msgstr "Đơn hàng trả lại" -#: src/components/render/ModelType.tsx:182 -#: src/tables/company/AddressTable.tsx:47 +#: src/components/render/ModelType.tsx:211 +#: src/tables/company/AddressTable.tsx:48 msgid "Address" msgstr "Địa chỉ" -#: src/components/render/ModelType.tsx:183 -#: src/pages/company/CompanyDetail.tsx:253 +#: src/components/render/ModelType.tsx:212 +#: src/pages/company/CompanyDetail.tsx:255 msgid "Addresses" msgstr "Địa chỉ" -#: src/components/render/ModelType.tsx:189 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:195 -#: src/pages/sales/ReturnOrderDetail.tsx:174 -#: src/pages/sales/SalesOrderDetail.tsx:183 +#: src/components/render/ModelType.tsx:219 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:196 +#: src/pages/sales/ReturnOrderDetail.tsx:166 +#: src/pages/sales/SalesOrderDetail.tsx:178 msgid "Contact" msgstr "Liên hệ" -#: src/components/render/ModelType.tsx:190 -#: src/pages/company/CompanyDetail.tsx:247 +#: src/components/render/ModelType.tsx:220 +#: src/pages/company/CompanyDetail.tsx:249 msgid "Contacts" msgstr "Danh bạ" -#: src/components/render/ModelType.tsx:196 +#: src/components/render/ModelType.tsx:227 msgid "Owner" msgstr "Chủ sở hữu" -#: src/components/render/ModelType.tsx:197 +#: src/components/render/ModelType.tsx:228 msgid "Owners" msgstr "Chủ sở hữu" -#: src/components/render/ModelType.tsx:203 -#: src/tables/settings/ImportSessionTable.tsx:121 -#: src/tables/stock/StockItemTestResultTable.tsx:198 -#: src/tables/stock/StockTrackingTable.tsx:195 +#: src/components/render/ModelType.tsx:234 +#~ msgid "Purchase Order Line Item" +#~ msgstr "Purchase Order Line Item" + +#: src/components/render/ModelType.tsx:235 +#: src/tables/settings/BarcodeScanHistoryTable.tsx:80 +#: src/tables/settings/BarcodeScanHistoryTable.tsx:211 +#: src/tables/settings/ImportSessionTable.tsx:120 +#: src/tables/settings/StocktakeReportTable.tsx:44 +#: src/tables/stock/StockItemTestResultTable.tsx:204 +#: src/tables/stock/StockTrackingTable.tsx:181 +#: src/tables/stock/StockTrackingTable.tsx:210 msgid "User" msgstr "Người dùng" -#: src/components/render/ModelType.tsx:204 -#: src/pages/Index/Settings/AdminCenter/Index.tsx:98 +#: src/components/render/ModelType.tsx:236 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:109 #: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:13 msgid "Users" msgstr "Người dùng" -#: src/components/render/ModelType.tsx:210 +#: src/components/render/ModelType.tsx:243 msgid "Group" -msgstr "" +msgstr "Nhóm" -#: src/components/render/ModelType.tsx:211 +#: src/components/render/ModelType.tsx:244 #: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:20 -#: src/tables/settings/UserTable.tsx:138 -#: src/tables/settings/UserTable.tsx:201 +#: src/tables/settings/UserTable.tsx:137 +#: src/tables/settings/UserTable.tsx:200 msgid "Groups" msgstr "Nhóm" -#: src/components/render/ModelType.tsx:218 +#: src/components/render/ModelType.tsx:252 msgid "Import Session" -msgstr "" +msgstr "Phiên làm việc" -#: src/components/render/ModelType.tsx:219 +#: src/components/render/ModelType.tsx:253 msgid "Import Sessions" -msgstr "" +msgstr "Nhập phiên làm việc" -#: src/components/render/ModelType.tsx:225 +#: src/components/render/ModelType.tsx:260 msgid "Label Template" -msgstr "" +msgstr "Mẫu nhãn tem" -#: src/components/render/ModelType.tsx:226 -#: src/pages/Index/Settings/AdminCenter/Index.tsx:158 +#: src/components/render/ModelType.tsx:261 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:187 msgid "Label Templates" -msgstr "" +msgstr "Mẫu nhãn tem" -#: src/components/render/ModelType.tsx:232 +#: src/components/render/ModelType.tsx:264 +#~ msgid "Unknown Model" +#~ msgstr "Unknown Model" + +#: src/components/render/ModelType.tsx:268 msgid "Report Template" -msgstr "" +msgstr "Mẫu báo cáo" -#: src/components/render/ModelType.tsx:233 -#: src/pages/Index/Settings/AdminCenter/Index.tsx:164 +#: src/components/render/ModelType.tsx:269 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:193 msgid "Report Templates" -msgstr "" +msgstr "Mẫu báo cáo" -#: src/components/render/ModelType.tsx:239 -msgid "Plugin Configuration" -msgstr "" - -#: src/components/render/ModelType.tsx:240 +#: src/components/render/ModelType.tsx:277 msgid "Plugin Configurations" +msgstr "Cấu hình plugin" + +#: src/components/render/ModelType.tsx:284 +msgid "Content Type" +msgstr "Loại Nội Dung" + +#: src/components/render/ModelType.tsx:285 +msgid "Content Types" +msgstr "Loại Nội Dung" + +#: src/components/render/ModelType.tsx:291 +#: src/tables/machine/MachineListTable.tsx:351 +#: src/tables/machine/MachineTypeTable.tsx:282 +msgid "Errors" msgstr "" +#: src/components/render/ModelType.tsx:307 +#~ msgid "Purchase Order Line Items" +#~ msgstr "Purchase Order Line Items" + +#: src/components/render/ModelType.tsx:337 +#~ msgid "Unknown Models" +#~ msgstr "Unknown Models" + #: src/components/render/Order.tsx:121 +#: src/tables/sales/SalesOrderAllocationTable.tsx:136 msgid "Shipment" msgstr "Lô hàng" #: src/components/render/Part.tsx:25 #: src/components/render/Plugin.tsx:17 -#: src/pages/company/CompanyDetail.tsx:325 -#: src/pages/company/SupplierPartDetail.tsx:360 -#: src/pages/part/PartDetail.tsx:879 +#: src/pages/company/CompanyDetail.tsx:307 +#: src/pages/company/SupplierPartDetail.tsx:349 +#: src/pages/part/PartDetail.tsx:911 msgid "Inactive" -msgstr "" +msgstr "Không hoạt động" #: src/components/render/Part.tsx:28 #: src/tables/bom/BomTable.tsx:204 #: src/tables/part/PartTable.tsx:134 msgid "No stock" -msgstr "" +msgstr "Hết hàng" -#: src/components/render/Part.tsx:30 -#: src/defaults/links.tsx:30 -#: src/defaults/menuItems.tsx:38 -#: src/pages/Index/Settings/SystemSettings.tsx:206 -#: src/pages/part/PartDetail.tsx:543 -#: src/pages/stock/LocationDetail.tsx:367 -#: src/pages/stock/StockDetail.tsx:411 -#: src/tables/stock/StockItemTable.tsx:68 -msgid "Stock" -msgstr "Kho hàng" - -#: src/components/render/Stock.tsx:60 -#: src/pages/stock/StockDetail.tsx:150 -#: src/pages/stock/StockDetail.tsx:581 -#: src/tables/build/BuildAllocatedStockTable.tsx:102 -#: src/tables/sales/SalesOrderAllocationTable.tsx:80 +#: src/components/render/Stock.tsx:61 +#: src/forms/ReturnOrderForms.tsx:190 +#: src/pages/stock/StockDetail.tsx:166 +#: src/pages/stock/StockDetail.tsx:771 +#: src/tables/build/BuildAllocatedStockTable.tsx:123 +#: src/tables/build/BuildOutputTable.tsx:81 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:114 +#: src/tables/sales/SalesOrderAllocationTable.tsx:106 msgid "Serial Number" -msgstr "" +msgstr "Số sê-ri" -#: src/components/render/Stock.tsx:62 -#: src/forms/BuildForms.tsx:218 -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/pages/part/pricing/BomPricingPanel.tsx:109 +#: src/components/render/Stock.tsx:63 +#: src/forms/BuildForms.tsx:206 +#: src/forms/BuildForms.tsx:515 +#: src/forms/PurchaseOrderForms.tsx:689 +#: src/forms/SalesOrderForms.tsx:248 +#: src/pages/part/PartSchedulingDetail.tsx:80 +#: src/pages/part/PartStocktakeDetail.tsx:60 +#: src/pages/part/PartStocktakeDetail.tsx:234 +#: src/pages/part/PartStocktakeDetail.tsx:252 +#: src/pages/part/pricing/BomPricingPanel.tsx:148 #: src/pages/part/pricing/PriceBreakPanel.tsx:89 -#: src/pages/part/pricing/PriceBreakPanel.tsx:171 -#: src/pages/stock/StockDetail.tsx:145 -#: src/pages/stock/StockDetail.tsx:587 -#: src/tables/build/BuildOrderTestTable.tsx:197 -#: src/tables/part/PartPurchaseOrdersTable.tsx:92 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:143 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:171 +#: src/pages/part/pricing/PriceBreakPanel.tsx:172 +#: src/pages/stock/StockDetail.tsx:161 +#: src/pages/stock/StockDetail.tsx:777 +#: src/tables/build/BuildLineTable.tsx:79 +#: src/tables/build/BuildOrderTestTable.tsx:198 +#: src/tables/part/PartPurchaseOrdersTable.tsx:93 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:146 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:177 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:77 -#: src/tables/stock/StockTrackingTable.tsx:59 +#: src/tables/stock/StockTrackingTable.tsx:63 msgid "Quantity" msgstr "Số lượng" @@ -1784,7 +2382,7 @@ msgstr "Sửa thiết lập" #: src/components/settings/SettingList.tsx:78 #: src/components/settings/SettingList.tsx:108 msgid "Setting {0} updated successfully" -msgstr "" +msgstr "Cấu hình {0} được cập nhật thành công" #: src/components/settings/SettingList.tsx:107 msgid "Setting updated" @@ -1796,7 +2394,7 @@ msgstr "Lỗi sửa thiết lập" #: src/components/settings/SettingList.tsx:162 msgid "No settings specified" -msgstr "" +msgstr "Không có cấu hình cụ thể" #: src/components/tables/FilterGroup.tsx:29 #~ msgid "Add table filter" @@ -1842,10 +2440,6 @@ msgstr "" #~ msgid "Required Part" #~ msgstr "Required Part" -#: src/components/tables/build/BuildLineTable.tsx:152 -#~ msgid "Required Quantity" -#~ msgstr "Required Quantity" - #: src/components/tables/build/BuildOrderTable.tsx:52 #~ msgid "Progress" #~ msgstr "Progress" @@ -2126,14 +2720,6 @@ msgstr "" #~ msgid "user deleted" #~ msgstr "user deleted" -#: src/components/tables/settings/UserTable.tsx:168 -#~ msgid "First Name" -#~ msgstr "First Name" - -#: src/components/tables/settings/UserTable.tsx:173 -#~ msgid "Last Name" -#~ msgstr "Last Name" - #: src/components/tables/stock/StockItemTable.tsx:247 #~ msgid "Test Filter" #~ msgstr "Test Filter" @@ -2146,36 +2732,21 @@ msgstr "" #~ msgid "Stock location updated" #~ msgstr "Stock location updated" -#: src/components/widgets/DisplayWidget.tsx:11 -#: src/pages/Index/Settings/AccountSettings/DisplaySettingsPanel.tsx:17 -msgid "Display Settings" -msgstr "Cài đặt hiển thị" - -#: src/components/widgets/DisplayWidget.tsx:15 -#: src/pages/Index/Settings/AccountSettings/DisplaySettingsPanel.tsx:23 -msgid "Color Mode" -msgstr "Chế độ màu sắc" - -#: src/components/widgets/DisplayWidget.tsx:21 -#: src/pages/Index/Settings/AccountSettings/DisplaySettingsPanel.tsx:33 -msgid "Language" -msgstr "Ngôn ngữ" - #: src/components/widgets/FeedbackWidget.tsx:19 -msgid "Something is new: Platform UI" -msgstr "Một số thứ mới: Nền tảng UI" +#~ msgid "Something is new: Platform UI" +#~ msgstr "Something is new: Platform UI" #: src/components/widgets/FeedbackWidget.tsx:21 -msgid "We are building a new UI with a modern stack. What you currently see is not fixed and will be redesigned but demonstrates the UI/UX possibilities we will have going forward." -msgstr "Chúng tôi đang xây dựng một UI mới với kiến trúc hiện đại. Thứ bạn nhìn thấy sẽ không được sửa và sẽ được thiết kế lại nhưng chứng tỏ khả năng UI/UX đang được cải tiến." +#~ msgid "We are building a new UI with a modern stack. What you currently see is not fixed and will be redesigned but demonstrates the UI/UX possibilities we will have going forward." +#~ msgstr "We are building a new UI with a modern stack. What you currently see is not fixed and will be redesigned but demonstrates the UI/UX possibilities we will have going forward." #: src/components/widgets/FeedbackWidget.tsx:32 -msgid "Provide Feedback" -msgstr "Cung cấp phản hồi" +#~ msgid "Provide Feedback" +#~ msgstr "Provide Feedback" #: src/components/widgets/GetStartedWidget.tsx:11 -msgid "Getting started" -msgstr "Bắt đầu" +#~ msgid "Getting started" +#~ msgstr "Getting started" #: src/components/widgets/MarkdownEditor.tsx:108 #~ msgid "Failed to upload image" @@ -2186,32 +2757,28 @@ msgstr "Bắt đầu" #~ msgstr "Notes saved" #: src/components/widgets/WidgetLayout.tsx:166 -msgid "Layout" -msgstr "Bố cục" +#~ msgid "Layout" +#~ msgstr "Layout" #: src/components/widgets/WidgetLayout.tsx:172 -msgid "Reset Layout" -msgstr "Đặt lại bố cục" +#~ msgid "Reset Layout" +#~ msgstr "Reset Layout" #: src/components/widgets/WidgetLayout.tsx:185 -msgid "Stop Edit" -msgstr "Ngưng chỉnh sửa" - -#: src/components/widgets/WidgetLayout.tsx:185 -msgid "Edit Layout" -msgstr "Sửa bố cục" +#~ msgid "Stop Edit" +#~ msgstr "Stop Edit" #: src/components/widgets/WidgetLayout.tsx:191 -msgid "Appearance" -msgstr "Diện mạo" +#~ msgid "Appearance" +#~ msgstr "Appearance" #: src/components/widgets/WidgetLayout.tsx:203 -msgid "Show Boxes" -msgstr "Hiển thị hộp" +#~ msgid "Show Boxes" +#~ msgstr "Show Boxes" #: src/contexts/LanguageContext.tsx:20 msgid "Arabic" -msgstr "" +msgstr "Tiếng Ả Rập" #: src/contexts/LanguageContext.tsx:21 msgid "Bulgarian" @@ -2247,7 +2814,7 @@ msgstr "Spanish (Mexican)" #: src/contexts/LanguageContext.tsx:29 msgid "Estonian" -msgstr "" +msgstr "Tiếng Estonia" #: src/contexts/LanguageContext.tsx:30 msgid "Farsi / Persian" @@ -2286,201 +2853,175 @@ msgid "Korean" msgstr "Korean" #: src/contexts/LanguageContext.tsx:39 -msgid "Latvian" +msgid "Lithuanian" msgstr "" #: src/contexts/LanguageContext.tsx:40 +msgid "Latvian" +msgstr "Tiếng Latvia" + +#: src/contexts/LanguageContext.tsx:41 msgid "Dutch" msgstr "Dutch" -#: src/contexts/LanguageContext.tsx:41 +#: src/contexts/LanguageContext.tsx:42 msgid "Norwegian" msgstr "Norwegian" -#: src/contexts/LanguageContext.tsx:42 +#: src/contexts/LanguageContext.tsx:43 msgid "Polish" msgstr "Polish" -#: src/contexts/LanguageContext.tsx:43 +#: src/contexts/LanguageContext.tsx:44 msgid "Portuguese" msgstr "Portuguese" -#: src/contexts/LanguageContext.tsx:44 +#: src/contexts/LanguageContext.tsx:45 msgid "Portuguese (Brazilian)" msgstr "Portuguese (Brazilian)" -#: src/contexts/LanguageContext.tsx:45 -msgid "Romanian" -msgstr "" - #: src/contexts/LanguageContext.tsx:46 +msgid "Romanian" +msgstr "Tiếng Ru-ma-ni" + +#: src/contexts/LanguageContext.tsx:47 msgid "Russian" msgstr "Russian" -#: src/contexts/LanguageContext.tsx:47 -msgid "Slovak" -msgstr "" - #: src/contexts/LanguageContext.tsx:48 +msgid "Slovak" +msgstr "Tiếng Slo-va-ki-a" + +#: src/contexts/LanguageContext.tsx:49 msgid "Slovenian" msgstr "Slovenian" -#: src/contexts/LanguageContext.tsx:49 +#: src/contexts/LanguageContext.tsx:50 msgid "Swedish" msgstr "Swedish" -#: src/contexts/LanguageContext.tsx:50 +#: src/contexts/LanguageContext.tsx:51 msgid "Thai" msgstr "Thai" -#: src/contexts/LanguageContext.tsx:51 +#: src/contexts/LanguageContext.tsx:52 msgid "Turkish" msgstr "Turkish" -#: src/contexts/LanguageContext.tsx:52 -msgid "Ukrainian" -msgstr "" - #: src/contexts/LanguageContext.tsx:53 +msgid "Ukrainian" +msgstr "Tiếng U-crai-na" + +#: src/contexts/LanguageContext.tsx:54 msgid "Vietnamese" msgstr "Tiếng Việt" -#: src/contexts/LanguageContext.tsx:54 +#: src/contexts/LanguageContext.tsx:55 msgid "Chinese (Simplified)" msgstr "Chinese (Simplified)" -#: src/contexts/LanguageContext.tsx:55 +#: src/contexts/LanguageContext.tsx:56 msgid "Chinese (Traditional)" msgstr "Chinese (Traditional)" +#: src/defaults/actions.tsx:18 +msgid "Go to the InvenTree dashboard" +msgstr "Về dasboard" + #: src/defaults/actions.tsx:18 #: src/defaults/links.tsx:27 #: src/defaults/menuItems.tsx:9 -msgid "Home" -msgstr "Trang chủ" +#~ msgid "Home" +#~ msgstr "Home" #: src/defaults/actions.tsx:25 -#: src/defaults/links.tsx:28 -#: src/defaults/menuItems.tsx:28 -#: src/pages/Index/Dashboard.tsx:19 -#: src/pages/Index/Settings/UserSettings.tsx:46 -msgid "Dashboard" -msgstr "Bảng điều khiển" - -#: src/defaults/actions.tsx:26 -msgid "Go to the InvenTree dashboard" -msgstr "" - -#: src/defaults/actions.tsx:33 msgid "Visit the documentation to learn more about InvenTree" -msgstr "" +msgstr "Truy cập tài liệu để tìm hiểu thêm về InvenTree" -#: src/defaults/actions.tsx:39 -#: src/defaults/links.tsx:98 -#: src/defaults/links.tsx:128 +#: src/defaults/actions.tsx:31 +#: src/defaults/links.tsx:92 +#: src/defaults/links.tsx:124 msgid "About InvenTree" msgstr "Giới thiệu" -#: src/defaults/actions.tsx:40 -#: src/defaults/links.tsx:129 +#: src/defaults/actions.tsx:32 msgid "About the InvenTree org" msgstr "Giới thiệu InvenTree org" -#: src/defaults/actions.tsx:46 +#: src/defaults/actions.tsx:38 msgid "Server Information" -msgstr "" +msgstr "Thông tin máy chủ" -#: src/defaults/actions.tsx:47 -#: src/defaults/links.tsx:123 +#: src/defaults/actions.tsx:39 +#: src/defaults/links.tsx:118 msgid "About this Inventree instance" msgstr "Về thực thể Inventree" -#: src/defaults/actions.tsx:53 -#: src/defaults/links.tsx:111 +#: src/defaults/actions.tsx:45 +#: src/defaults/links.tsx:105 +#: src/defaults/links.tsx:131 msgid "License Information" -msgstr "" +msgstr "Thông tin giấy phép" -#: src/defaults/actions.tsx:54 -#: src/defaults/links.tsx:135 +#: src/defaults/actions.tsx:46 msgid "Licenses for dependencies of the service" -msgstr "" +msgstr "Giấy phép dịch vụ phụ thuộc" -#: src/defaults/actions.tsx:61 +#: src/defaults/actions.tsx:52 +msgid "Open Navigation" +msgstr "Mở điều hướng" + +#: src/defaults/actions.tsx:53 msgid "Open the main navigation menu" -msgstr "" +msgstr "Mở menu điều hướng chính" -#: src/defaults/actions.tsx:72 +#: src/defaults/actions.tsx:64 msgid "Go to the Admin Center" -msgstr "" - -#: src/defaults/dashboardItems.tsx:15 -msgid "Subscribed Parts" -msgstr "Phụ kiện đã đăng ký" - -#: src/defaults/dashboardItems.tsx:22 -msgid "Subscribed Categories" -msgstr "Danh mục đã đăng ký" +msgstr "Đi đến Trung tâm quản trị" #: src/defaults/dashboardItems.tsx:29 -msgid "Latest Parts" -msgstr "Phụ kiện mới nhất" +#~ msgid "Latest Parts" +#~ msgstr "Latest Parts" #: src/defaults/dashboardItems.tsx:36 -msgid "BOM Waiting Validation" -msgstr "BOM đợi phê chuẩn" +#~ msgid "BOM Waiting Validation" +#~ msgstr "BOM Waiting Validation" #: src/defaults/dashboardItems.tsx:43 -msgid "Recently Updated" -msgstr "Mới Cập Nhật" - -#: src/defaults/dashboardItems.tsx:50 -#: src/tables/part/PartTable.tsx:238 -msgid "Low Stock" -msgstr "Còn ít hàng" +#~ msgid "Recently Updated" +#~ msgstr "Recently Updated" #: src/defaults/dashboardItems.tsx:57 -msgid "Depleted Stock" -msgstr "Nguyên liệu đã cạn" +#~ msgid "Depleted Stock" +#~ msgstr "Depleted Stock" #: src/defaults/dashboardItems.tsx:64 -msgid "Required for Build Orders" -msgstr "Yêu cầu cho đơn đặt bản dựng" +#~ msgid "Required for Build Orders" +#~ msgstr "Required for Build Orders" #: src/defaults/dashboardItems.tsx:71 -msgid "Expired Stock" -msgstr "Kho hàng quá hạn" +#~ msgid "Expired Stock" +#~ msgstr "Expired Stock" #: src/defaults/dashboardItems.tsx:78 -msgid "Stale Stock" -msgstr "Sản phẩm để lâu" +#~ msgid "Stale Stock" +#~ msgstr "Stale Stock" #: src/defaults/dashboardItems.tsx:85 -msgid "Build Orders In Progress" -msgstr "Đơn đặt bản dựng đang thực hiện" - -#: src/defaults/dashboardItems.tsx:92 -msgid "Overdue Build Orders" -msgstr "Đơn đặt bản dựng đang quá hạn" +#~ msgid "Build Orders In Progress" +#~ msgstr "Build Orders In Progress" #: src/defaults/dashboardItems.tsx:99 -msgid "Outstanding Purchase Orders" -msgstr "Đơn đặt mua nổi bật" - -#: src/defaults/dashboardItems.tsx:106 -msgid "Overdue Purchase Orders" -msgstr "Đơn mua quá hạn" +#~ msgid "Outstanding Purchase Orders" +#~ msgstr "Outstanding Purchase Orders" #: src/defaults/dashboardItems.tsx:113 -msgid "Outstanding Sales Orders" -msgstr "Đơn hàng nổi bật" - -#: src/defaults/dashboardItems.tsx:120 -msgid "Overdue Sales Orders" -msgstr "Đơn đặt quá hạn" +#~ msgid "Outstanding Sales Orders" +#~ msgstr "Outstanding Sales Orders" #: src/defaults/dashboardItems.tsx:127 -msgid "Current News" -msgstr "Tin hiện tại" +#~ msgid "Current News" +#~ msgstr "Current News" #: src/defaults/defaultHostList.tsx:8 #~ msgid "InvenTree Demo" @@ -2490,97 +3031,80 @@ msgstr "Tin hiện tại" #~ msgid "Local Server" #~ msgstr "Local Server" -#: src/defaults/links.tsx:12 -#: src/pages/company/CompanyDetail.tsx:96 -msgid "Website" -msgstr "Trang web" - #: src/defaults/links.tsx:17 -msgid "GitHub" -msgstr "GitHub" +#~ msgid "GitHub" +#~ msgstr "GitHub" #: src/defaults/links.tsx:22 -msgid "Demo" -msgstr "Demo" - -#: src/defaults/links.tsx:33 -#: src/defaults/menuItems.tsx:48 -#: src/pages/company/ManufacturerDetail.tsx:9 -#: src/pages/company/ManufacturerPartDetail.tsx:263 -#: src/pages/company/SupplierDetail.tsx:9 -#: src/pages/company/SupplierPartDetail.tsx:347 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:483 -#: src/pages/purchasing/PurchasingIndex.tsx:60 -msgid "Purchasing" -msgstr "Mua sắm" - -#: src/defaults/links.tsx:37 -#: src/defaults/menuItems.tsx:53 -#: src/pages/company/CustomerDetail.tsx:9 -#: src/pages/sales/ReturnOrderDetail.tsx:474 -#: src/pages/sales/SalesIndex.tsx:53 -#: src/pages/sales/SalesOrderDetail.tsx:525 -msgid "Sales" -msgstr "Bán hàng" +#~ msgid "Demo" +#~ msgstr "Demo" #: src/defaults/links.tsx:41 #: src/defaults/menuItems.tsx:71 #: src/pages/Index/Playground.tsx:217 -msgid "Playground" -msgstr "Sân chơi" +#~ msgid "Playground" +#~ msgstr "Playground" -#: src/defaults/links.tsx:55 -msgid "Getting Started" -msgstr "Bắt đầu" - -#: src/defaults/links.tsx:56 -msgid "Getting started with InvenTree" -msgstr "Bắt đầu với InvenTree" - -#: src/defaults/links.tsx:62 +#: src/defaults/links.tsx:45 msgid "API" msgstr "API" -#: src/defaults/links.tsx:63 +#: src/defaults/links.tsx:48 msgid "InvenTree API documentation" msgstr "Tài liệu InvenTree API" -#: src/defaults/links.tsx:68 +#: src/defaults/links.tsx:52 msgid "Developer Manual" msgstr "Sổ tay lập trình" -#: src/defaults/links.tsx:69 +#: src/defaults/links.tsx:55 msgid "InvenTree developer manual" msgstr "Sổ tay lập trình InvenTree" -#: src/defaults/links.tsx:74 +#: src/defaults/links.tsx:59 msgid "FAQ" msgstr "Câu hỏi thường gặp" -#: src/defaults/links.tsx:75 +#: src/defaults/links.tsx:62 msgid "Frequently asked questions" msgstr "Câu hỏi thường gặp" +#: src/defaults/links.tsx:66 +msgid "GitHub Repository" +msgstr "" + +#: src/defaults/links.tsx:69 +msgid "InvenTree source code on GitHub" +msgstr "" + #: src/defaults/links.tsx:76 #~ msgid "Instance" #~ msgstr "Instance" +#: src/defaults/links.tsx:79 +#: src/defaults/links.tsx:117 +msgid "System Information" +msgstr "Thông tin hệ thống" + #: src/defaults/links.tsx:83 #~ msgid "InvenTree" #~ msgstr "InvenTree" -#: src/defaults/links.tsx:85 -#: src/defaults/links.tsx:122 -msgid "System Information" -msgstr "Thông tin hệ thống" - #: src/defaults/links.tsx:117 #~ msgid "Licenses for packages used by InvenTree" #~ msgstr "Licenses for packages used by InvenTree" +#: src/defaults/links.tsx:125 +msgid "About the InvenTree Project" +msgstr "" + +#: src/defaults/links.tsx:132 +msgid "Licenses for dependencies of the InvenTree software" +msgstr "" + #: src/defaults/links.tsx:134 -msgid "Licenses" -msgstr "Giấy phép" +#~ msgid "Licenses" +#~ msgstr "Licenses" #: src/defaults/menuItems.tsx:7 #~ msgid "Open sourcea" @@ -2607,8 +3131,8 @@ msgstr "Giấy phép" #~ msgstr "Profile page" #: src/defaults/menuItems.tsx:17 -msgid "User attributes and design settings." -msgstr "Thuốc tính người dùng và thiết lập thiết kế." +#~ msgid "User attributes and design settings." +#~ msgstr "User attributes and design settings." #: src/defaults/menuItems.tsx:21 #~ msgid "Free for everyone" @@ -2619,8 +3143,8 @@ msgstr "Thuốc tính người dùng và thiết lập thiết kế." #~ msgstr "The fluid of Smeargle’s tail secretions changes" #: src/defaults/menuItems.tsx:23 -msgid "View for interactive scanning and multiple actions." -msgstr "Khung nhìn để quét tương tác và đa chức năng." +#~ msgid "View for interactive scanning and multiple actions." +#~ msgstr "View for interactive scanning and multiple actions." #: src/defaults/menuItems.tsx:24 #~ msgid "The fluid of Smeargle’s tail secretions changes in the intensity" @@ -2698,51 +3222,130 @@ msgstr "Khung nhìn để quét tương tác và đa chức năng." #~ msgid "Are you sure you want to delete this attachment?" #~ msgstr "Are you sure you want to delete this attachment?" -#: src/forms/BuildForms.tsx:158 -msgid "Next serial number" +#: src/forms/BuildForms.tsx:248 +#~ msgid "Remove output" +#~ msgstr "Remove output" + +#: src/forms/BuildForms.tsx:269 +#: src/tables/build/BuildAllocatedStockTable.tsx:147 +#: src/tables/build/BuildOrderTestTable.tsx:177 +#: src/tables/build/BuildOrderTestTable.tsx:201 +#: src/tables/build/BuildOutputTable.tsx:460 +msgid "Build Output" msgstr "" -#: src/forms/BuildForms.tsx:162 -msgid "Latest serial number" +#: src/forms/BuildForms.tsx:269 +#: src/forms/BuildForms.tsx:337 +#: src/forms/BuildForms.tsx:385 +#: src/tables/build/BuildLineTable.tsx:89 +msgid "Batch" msgstr "" -#: src/forms/BuildForms.tsx:234 -msgid "Remove output" -msgstr "" +#: src/forms/BuildForms.tsx:269 +#: src/forms/BuildForms.tsx:337 +#: src/forms/BuildForms.tsx:385 +#: src/forms/PurchaseOrderForms.tsx:603 +#: src/pages/build/BuildDetail.tsx:104 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:142 +#: src/pages/sales/ReturnOrderDetail.tsx:113 +#: src/pages/sales/SalesOrderDetail.tsx:122 +#: src/tables/build/BuildOrderTable.tsx:125 +#: src/tables/machine/MachineListTable.tsx:336 +#: src/tables/part/PartPurchaseOrdersTable.tsx:37 +#: src/tables/purchasing/PurchaseOrderTable.tsx:58 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:157 +#: src/tables/sales/ReturnOrderTable.tsx:56 +#: src/tables/sales/SalesOrderTable.tsx:56 +#: src/tables/settings/CustomStateTable.tsx:57 +#: src/tables/settings/ImportSessionTable.tsx:114 +#: src/tables/stock/StockItemTable.tsx:298 +#: src/tables/stock/StockTrackingTable.tsx:56 +msgid "Status" +msgstr "Trạng thái" -#: src/forms/BuildForms.tsx:316 +#: src/forms/BuildForms.tsx:289 msgid "Complete Build Outputs" -msgstr "" +msgstr "Hoàn thành xây dựng đầu ra" -#: src/forms/BuildForms.tsx:320 +#: src/forms/BuildForms.tsx:292 msgid "Build outputs have been completed" -msgstr "" +msgstr "Xây dựng đầu ra đã hoàn thành" -#: src/forms/BuildForms.tsx:389 +#: src/forms/BuildForms.tsx:353 msgid "Scrap Build Outputs" -msgstr "" +msgstr "Loại bỏ xây dựng đầu ra" + +#: src/forms/BuildForms.tsx:356 +msgid "Build outputs have been scrapped" +msgstr "Xây dựng đầu ra đã bị hủy bỏ" #: src/forms/BuildForms.tsx:393 -msgid "Build outputs have been scrapped" -msgstr "" - -#: src/forms/BuildForms.tsx:425 -#: src/forms/BuildForms.tsx:449 msgid "Cancel Build Outputs" -msgstr "" +msgstr "Loại bỏ xây dựng đầu ra" -#: src/forms/BuildForms.tsx:426 -msgid "Selected build outputs will be deleted" -msgstr "" - -#: src/forms/BuildForms.tsx:453 +#: src/forms/BuildForms.tsx:396 msgid "Build outputs have been cancelled" +msgstr "Xây dựng đầu ra đã bị hủy" + +#: src/forms/BuildForms.tsx:408 +#~ msgid "Selected build outputs will be deleted" +#~ msgstr "Selected build outputs will be deleted" + +#: src/forms/BuildForms.tsx:470 +#~ msgid "Remove line" +#~ msgstr "Remove line" + +#: src/forms/BuildForms.tsx:515 +#: src/forms/SalesOrderForms.tsx:248 +#: src/tables/build/BuildLineTable.tsx:174 +#: src/tables/sales/SalesOrderLineItemTable.tsx:276 +#: src/tables/stock/StockItemTable.tsx:309 +msgid "Allocated" +msgstr "" + +#: src/forms/BuildForms.tsx:545 +#: src/forms/SalesOrderForms.tsx:239 +#: src/pages/build/BuildDetail.tsx:208 +msgid "Source Location" +msgstr "Vị trí nguồn cung" + +#: src/forms/BuildForms.tsx:546 +#: src/forms/SalesOrderForms.tsx:240 +msgid "Select the source location for the stock allocation" +msgstr "" + +#: src/forms/BuildForms.tsx:566 +#: src/forms/SalesOrderForms.tsx:274 +#: src/tables/build/BuildLineTable.tsx:442 +#: src/tables/build/BuildLineTable.tsx:569 +#: src/tables/build/BuildLineTable.tsx:642 +#: src/tables/sales/SalesOrderLineItemTable.tsx:302 +#: src/tables/sales/SalesOrderLineItemTable.tsx:326 +msgid "Allocate Stock" +msgstr "Phân kho" + +#: src/forms/BuildForms.tsx:569 +#: src/forms/SalesOrderForms.tsx:279 +msgid "Stock items allocated" msgstr "" #: src/forms/CompanyForms.tsx:150 #~ msgid "Company updated" #~ msgstr "Company updated" +#: src/forms/PartForms.tsx:67 +#: src/forms/PartForms.tsx:154 +#: src/pages/part/CategoryDetail.tsx:117 +#: src/pages/part/PartDetail.tsx:384 +#: src/tables/part/PartCategoryTable.tsx:90 +#: src/tables/part/PartTable.tsx:294 +msgid "Subscribed" +msgstr "" + +#: src/forms/PartForms.tsx:68 +msgid "Subscribe to notifications for this part" +msgstr "" + #: src/forms/PartForms.tsx:106 #~ msgid "Create Part" #~ msgstr "Create Part" @@ -2751,191 +3354,190 @@ msgstr "" #~ msgid "Part created" #~ msgstr "Part created" -#: src/forms/PartForms.tsx:124 -msgid "Parent part category" -msgstr "Danh mục phụ kiện cha" - #: src/forms/PartForms.tsx:129 #~ msgid "Part updated" #~ msgstr "Part updated" -#: src/forms/PurchaseOrderForms.tsx:300 +#: src/forms/PartForms.tsx:140 +msgid "Parent part category" +msgstr "Danh mục phụ kiện cha" + +#: src/forms/PartForms.tsx:155 +msgid "Subscribe to notifications for this category" +msgstr "" + +#: src/forms/PurchaseOrderForms.tsx:314 +msgid "Assign Batch Code and Serial Numbers" +msgstr "" + +#: src/forms/PurchaseOrderForms.tsx:316 +msgid "Assign Batch Code" +msgstr "" + +#: src/forms/PurchaseOrderForms.tsx:336 msgid "Choose Location" -msgstr "" +msgstr "Chọn vị trí" -#: src/forms/PurchaseOrderForms.tsx:308 +#: src/forms/PurchaseOrderForms.tsx:344 msgid "Item Destination selected" -msgstr "" +msgstr "Đã chọn đích đến của mặt hàng" -#: src/forms/PurchaseOrderForms.tsx:317 +#: src/forms/PurchaseOrderForms.tsx:353 msgid "Part category default location selected" -msgstr "" +msgstr "Vị trí mặc định danh mục đã được chọn" -#: src/forms/PurchaseOrderForms.tsx:327 +#: src/forms/PurchaseOrderForms.tsx:363 msgid "Received stock location selected" -msgstr "" +msgstr "Vị trí kho hàng nhận đã được chọn" -#: src/forms/PurchaseOrderForms.tsx:332 +#: src/forms/PurchaseOrderForms.tsx:368 msgid "Default location selected" -msgstr "" +msgstr "Vị trí mặc định đã chọn" -#: src/forms/PurchaseOrderForms.tsx:343 -#: src/forms/PurchaseOrderForms.tsx:435 -msgid "Scan Barcode" -msgstr "" +#: src/forms/PurchaseOrderForms.tsx:421 +#~ msgid "Assign Batch Code{0}" +#~ msgstr "Assign Batch Code{0}" -#: src/forms/PurchaseOrderForms.tsx:388 +#: src/forms/PurchaseOrderForms.tsx:427 msgid "Set Location" -msgstr "" +msgstr "Cài đặt vị trí" -#: src/forms/PurchaseOrderForms.tsx:396 -msgid "Assign Batch Code{0}" -msgstr "" - -#: src/forms/PurchaseOrderForms.tsx:405 -#: src/forms/StockForms.tsx:420 +#: src/forms/PurchaseOrderForms.tsx:442 +#: src/forms/StockForms.tsx:539 msgid "Adjust Packaging" -msgstr "" - -#: src/forms/PurchaseOrderForms.tsx:412 -msgid "Change Status" -msgstr "" - -#: src/forms/PurchaseOrderForms.tsx:418 -msgid "Add Note" -msgstr "" +msgstr "Điều chỉnh bao bì" #: src/forms/PurchaseOrderForms.tsx:444 #: src/forms/StockForms.tsx:428 -msgid "Remove item from list" -msgstr "" +#~ msgid "Remove item from list" +#~ msgstr "Remove item from list" -#: src/forms/PurchaseOrderForms.tsx:471 -#: src/forms/StockForms.tsx:499 -#: src/forms/StockForms.tsx:533 -#: src/forms/StockForms.tsx:562 -#: src/forms/StockForms.tsx:590 -#: src/forms/StockForms.tsx:621 -#: src/forms/StockForms.tsx:656 -#: src/forms/StockForms.tsx:698 -#: src/forms/StockForms.tsx:734 -#: src/pages/stock/StockDetail.tsx:181 -#: src/tables/ColumnRenderers.tsx:49 -#: src/tables/stock/StockTrackingTable.tsx:85 +#: src/forms/PurchaseOrderForms.tsx:450 +msgid "Change Status" +msgstr "Thay đổi trạng thái" + +#: src/forms/PurchaseOrderForms.tsx:456 +msgid "Add Note" +msgstr "Thêm ghi chú" + +#: src/forms/PurchaseOrderForms.tsx:503 +#: src/forms/StockForms.tsx:614 +#: src/forms/StockForms.tsx:651 +#: src/forms/StockForms.tsx:677 +#: src/forms/StockForms.tsx:705 +#: src/forms/StockForms.tsx:736 +#: src/forms/StockForms.tsx:771 +#: src/forms/StockForms.tsx:813 +#: src/forms/StockForms.tsx:851 +#: src/pages/stock/StockDetail.tsx:202 +#: src/tables/ColumnRenderers.tsx:60 +#: src/tables/stock/StockTrackingTable.tsx:89 msgid "Location" -msgstr "" +msgstr "Vị trí" -#: src/forms/PurchaseOrderForms.tsx:486 +#: src/forms/PurchaseOrderForms.tsx:518 msgid "Store at default location" -msgstr "" +msgstr "Cửa hàng ở vị trí mặc định" -#: src/forms/PurchaseOrderForms.tsx:499 +#: src/forms/PurchaseOrderForms.tsx:533 msgid "Store at line item destination" -msgstr "" +msgstr "Cửa hàng tại điểm đến của mặt hàng" -#: src/forms/PurchaseOrderForms.tsx:509 +#: src/forms/PurchaseOrderForms.tsx:545 msgid "Store with already received stock" -msgstr "" +msgstr "Cửa hàng đã nhận hàng" -#: src/forms/PurchaseOrderForms.tsx:524 -#: src/pages/build/BuildDetail.tsx:219 -#: src/pages/stock/StockDetail.tsx:162 -#: src/pages/stock/StockDetail.tsx:599 -#: src/tables/build/BuildAllocatedStockTable.tsx:109 -#: src/tables/build/BuildOrderTestTable.tsx:188 -#: src/tables/sales/SalesOrderAllocationTable.tsx:87 +#: src/forms/PurchaseOrderForms.tsx:566 +#: src/pages/build/BuildDetail.tsx:222 +#: src/pages/stock/StockDetail.tsx:185 +#: src/pages/stock/StockDetail.tsx:793 +#: src/tables/build/BuildAllocatedStockTable.tsx:130 +#: src/tables/build/BuildOrderTestTable.tsx:189 +#: src/tables/build/BuildOutputTable.tsx:86 +#: src/tables/sales/SalesOrderAllocationTable.tsx:113 msgid "Batch Code" +msgstr "Mã lô hàng" + +#: src/forms/PurchaseOrderForms.tsx:566 +#~ msgid "Serial numbers" +#~ msgstr "Serial numbers" + +#: src/forms/PurchaseOrderForms.tsx:567 +msgid "Enter batch code for received items" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:535 -msgid "Serial numbers" +#: src/forms/PurchaseOrderForms.tsx:579 +#: src/forms/StockForms.tsx:152 +msgid "Serial Numbers" +msgstr "Số sê-ri" + +#: src/forms/PurchaseOrderForms.tsx:580 +msgid "Enter serial numbers for received items" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:544 -#: src/forms/StockForms.tsx:443 -#: src/pages/company/SupplierPartDetail.tsx:156 -#: src/pages/company/SupplierPartDetail.tsx:207 -#: src/pages/stock/StockDetail.tsx:244 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:192 +#: src/forms/PurchaseOrderForms.tsx:590 +#: src/forms/StockForms.tsx:556 +#: src/pages/company/SupplierPartDetail.tsx:168 +#: src/pages/company/SupplierPartDetail.tsx:219 +#: src/pages/stock/StockDetail.tsx:320 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:198 msgid "Packaging" -msgstr "" +msgstr "Đóng gói" -#: src/forms/PurchaseOrderForms.tsx:556 -#: src/pages/build/BuildDetail.tsx:109 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:148 -#: src/pages/sales/ReturnOrderDetail.tsx:121 -#: src/pages/sales/SalesOrderDetail.tsx:127 -#: src/tables/build/BuildOrderTable.tsx:122 -#: src/tables/machine/MachineListTable.tsx:335 -#: src/tables/part/PartPurchaseOrdersTable.tsx:37 -#: src/tables/purchasing/PurchaseOrderTable.tsx:55 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:132 -#: src/tables/sales/ReturnOrderTable.tsx:46 -#: src/tables/sales/SalesOrderTable.tsx:53 -#: src/tables/settings/ImportSessionTable.tsx:115 -#: src/tables/stock/StockItemTable.tsx:294 -#: src/tables/stock/StockTrackingTable.tsx:52 -msgid "Status" -msgstr "Trạng thái" - -#: src/forms/PurchaseOrderForms.tsx:564 -#: src/pages/company/SupplierPartDetail.tsx:110 -#: src/tables/ColumnRenderers.tsx:132 +#: src/forms/PurchaseOrderForms.tsx:612 +#: src/pages/company/SupplierPartDetail.tsx:115 +#: src/tables/ColumnRenderers.tsx:143 msgid "Note" -msgstr "" - -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/pages/company/SupplierPartDetail.tsx:128 -#: src/tables/purchasing/SupplierPriceBreakTable.tsx:57 -msgid "SKU" -msgstr "" - -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/tables/part/PartPurchaseOrdersTable.tsx:120 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:178 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:127 -msgid "Received" -msgstr "Đã nhận" - -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/forms/StockForms.tsx:499 -#: src/forms/StockForms.tsx:533 -#: src/forms/StockForms.tsx:562 -#: src/forms/StockForms.tsx:590 -#: src/forms/StockForms.tsx:621 -#: src/forms/StockForms.tsx:656 -#: src/forms/StockForms.tsx:698 -#: src/forms/StockForms.tsx:734 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:413 -#: src/tables/RowActions.tsx:113 -msgid "Actions" -msgstr "Chức năng" - -#: src/forms/PurchaseOrderForms.tsx:655 -msgid "Receive Line Items" -msgstr "" +msgstr "Ghi chú" #: src/forms/PurchaseOrderForms.tsx:658 #~ msgid "Receive line items" #~ msgstr "Receive line items" -#: src/forms/StockForms.tsx:104 -msgid "Add given quantity as packs instead of individual items" -msgstr "Thêm số lượng đã có theo gói thay vì các mục đơn lẻ" +#: src/forms/PurchaseOrderForms.tsx:689 +#: src/pages/company/SupplierPartDetail.tsx:133 +#: src/tables/purchasing/SupplierPriceBreakTable.tsx:57 +msgid "SKU" +msgstr "SKU" + +#: src/forms/PurchaseOrderForms.tsx:689 +#: src/tables/part/PartPurchaseOrdersTable.tsx:126 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:184 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:247 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:152 +msgid "Received" +msgstr "Đã nhận" + +#: src/forms/PurchaseOrderForms.tsx:701 +msgid "Receive Line Items" +msgstr "Nhận hạng mục" + +#: src/forms/ReturnOrderForms.tsx:201 +msgid "Receive Items" +msgstr "" + +#: src/forms/ReturnOrderForms.tsx:208 +msgid "Item received into stock" +msgstr "" + +#: src/forms/StockForms.tsx:80 +#: src/hooks/UsePlaceholder.tsx:57 +msgid "Next serial number" +msgstr "Số seri kế tiếp" #: src/forms/StockForms.tsx:110 #~ msgid "Create Stock Item" #~ msgstr "Create Stock Item" -#: src/forms/StockForms.tsx:117 +#: src/forms/StockForms.tsx:131 +msgid "Add given quantity as packs instead of individual items" +msgstr "Thêm số lượng đã có theo gói thay vì các mục đơn lẻ" + +#: src/forms/StockForms.tsx:145 msgid "Enter initial quantity for this stock item" msgstr "Nhập số lượng khởi đầu cho kho hàng này" -#: src/forms/StockForms.tsx:124 -msgid "Serial Numbers" -msgstr "Số sê-ri" - -#: src/forms/StockForms.tsx:125 +#: src/forms/StockForms.tsx:154 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "Điền số sê-ri cho kho mới (hoặc để trống)" @@ -2943,84 +3545,104 @@ msgstr "Điền số sê-ri cho kho mới (hoặc để trống)" #~ msgid "Stock item updated" #~ msgstr "Stock item updated" -#: src/forms/StockForms.tsx:179 -#: src/pages/stock/StockDetail.tsx:434 -#: src/tables/stock/StockItemTable.tsx:417 -#: src/tables/stock/StockItemTable.tsx:535 +#: src/forms/StockForms.tsx:169 +#: src/pages/stock/StockDetail.tsx:131 +msgid "Stock Status" +msgstr "Trạng thái kho" + +#: src/forms/StockForms.tsx:218 +#: src/pages/stock/StockDetail.tsx:554 +#: src/tables/stock/StockItemTable.tsx:421 +#: src/tables/stock/StockItemTable.tsx:541 msgid "Add Stock Item" +msgstr "Thêm mặt hàng trong kho" + +#: src/forms/StockForms.tsx:262 +msgid "Select the part to install" msgstr "" -#: src/forms/StockForms.tsx:362 +#: src/forms/StockForms.tsx:480 msgid "Loading..." -msgstr "" +msgstr "Đang tải..." -#: src/forms/StockForms.tsx:408 +#: src/forms/StockForms.tsx:527 msgid "Move to default location" -msgstr "" +msgstr "Đến vị trí mặc định" -#: src/forms/StockForms.tsx:499 -#: src/forms/StockForms.tsx:533 -#: src/forms/StockForms.tsx:562 -#: src/forms/StockForms.tsx:590 -#: src/forms/StockForms.tsx:621 -#: src/forms/StockForms.tsx:656 -#: src/forms/StockForms.tsx:698 -#: src/forms/StockForms.tsx:734 -#: src/pages/part/PartDetail.tsx:230 -#: src/pages/part/PartDetail.tsx:843 -#: src/tables/stock/StockItemTable.tsx:325 +#: src/forms/StockForms.tsx:614 +#: src/forms/StockForms.tsx:651 +#: src/forms/StockForms.tsx:677 +#: src/forms/StockForms.tsx:705 +#: src/forms/StockForms.tsx:736 +#: src/forms/StockForms.tsx:771 +#: src/forms/StockForms.tsx:813 +#: src/forms/StockForms.tsx:851 +#: src/pages/part/PartDetail.tsx:251 +#: src/pages/part/PartDetail.tsx:875 +#: src/tables/stock/StockItemTable.tsx:329 msgid "In Stock" msgstr "Còn hàng" -#: src/forms/StockForms.tsx:499 +#: src/forms/StockForms.tsx:614 msgid "Move" -msgstr "" +msgstr "Di chuyển" -#: src/forms/StockForms.tsx:562 -#: src/pages/stock/StockDetail.tsx:518 -#: src/tables/stock/StockItemTestResultTable.tsx:328 +#: src/forms/StockForms.tsx:677 +#: src/pages/stock/StockDetail.tsx:681 +#: src/tables/stock/StockItemTestResultTable.tsx:346 msgid "Add" msgstr "Thêm" -#: src/forms/StockForms.tsx:590 -#: src/pages/Index/Scan.tsx:266 -#: src/pages/stock/StockDetail.tsx:508 +#: src/forms/StockForms.tsx:705 +#: src/pages/Index/Scan.tsx:280 +#: src/pages/stock/StockDetail.tsx:670 msgid "Count" msgstr "Đếm" -#: src/forms/StockForms.tsx:835 +#: src/forms/StockForms.tsx:953 +#: src/pages/stock/StockDetail.tsx:682 +#: src/tables/stock/StockItemTable.tsx:454 msgid "Add Stock" -msgstr "" +msgstr "Thêm kho" -#: src/forms/StockForms.tsx:844 +#: src/forms/StockForms.tsx:962 +#: src/pages/stock/StockDetail.tsx:691 +#: src/tables/stock/StockItemTable.tsx:463 msgid "Remove Stock" -msgstr "" +msgstr "Xoá kho" -#: src/forms/StockForms.tsx:853 -#: src/pages/part/PartDetail.tsx:1017 +#: src/forms/StockForms.tsx:971 +#: src/pages/part/PartDetail.tsx:1039 +#: src/pages/stock/StockDetail.tsx:712 +#: src/tables/stock/StockItemTable.tsx:483 msgid "Transfer Stock" -msgstr "" +msgstr "Chuyển kho" -#: src/forms/StockForms.tsx:862 -#: src/pages/part/PartDetail.tsx:1006 +#: src/forms/StockForms.tsx:980 +#: src/pages/part/PartDetail.tsx:1028 +#: src/pages/stock/LocationDetail.tsx:314 +#: src/pages/stock/LocationDetail.tsx:318 +#: src/tables/stock/StockItemTable.tsx:472 +#: src/tables/stock/StockItemTable.tsx:476 msgid "Count Stock" -msgstr "" +msgstr "Kiểm kê" -#: src/forms/StockForms.tsx:871 +#: src/forms/StockForms.tsx:989 msgid "Change Stock Status" -msgstr "" +msgstr "Đổi trạng thái kho" -#: src/forms/StockForms.tsx:880 +#: src/forms/StockForms.tsx:998 msgid "Merge Stock" -msgstr "" +msgstr "Gộp kho" -#: src/forms/StockForms.tsx:899 +#: src/forms/StockForms.tsx:1017 +#: src/tables/stock/StockItemTable.tsx:530 msgid "Delete Stock Items" -msgstr "" +msgstr "Xóa mặt hàng trong kho" -#: src/forms/StockForms.tsx:906 +#: src/forms/StockForms.tsx:1024 msgid "Parent stock location" -msgstr "" +msgstr "Vị trí kho lớn" #: src/functions/auth.tsx:34 #~ msgid "Error fetching token from server." @@ -3042,13 +3664,13 @@ msgstr "" #~ msgid "You have been logged out" #~ msgstr "You have been logged out" -#: src/functions/auth.tsx:117 +#: src/functions/auth.tsx:128 msgid "Logged Out" -msgstr "" +msgstr "Đã đăng xuất" -#: src/functions/auth.tsx:118 +#: src/functions/auth.tsx:129 msgid "Successfully logged out" -msgstr "" +msgstr "Đăng xuất thành công" #: src/functions/auth.tsx:141 #~ msgid "Already logged in" @@ -3062,22 +3684,22 @@ msgstr "" #~ msgid "Found an existing login - welcome back!" #~ msgstr "Found an existing login - welcome back!" -#: src/functions/auth.tsx:156 +#: src/functions/auth.tsx:167 msgid "Check your inbox for a reset link. This only works if you have an account. Check in spam too." msgstr "Kiểm tra hộp thư để lấy liên kết đặt lại. Việc này chỉ có tác dụng khi bạn có tài khoản. Cần kiểm tra thư mục Spam/Junk." -#: src/functions/auth.tsx:163 +#: src/functions/auth.tsx:174 #: src/pages/Auth/Set-Password.tsx:39 msgid "Reset failed" msgstr "Thiết lập lại thất bại" -#: src/functions/auth.tsx:194 +#: src/functions/auth.tsx:205 msgid "Logged In" -msgstr "" +msgstr "Đã đăng nhập" -#: src/functions/auth.tsx:195 +#: src/functions/auth.tsx:206 msgid "Successfully logged in" -msgstr "" +msgstr "Đăng nhập thành công." #: src/functions/forms.tsx:50 #~ msgid "Form method not provided" @@ -3095,62 +3717,74 @@ msgstr "" #~ msgid "method parameter not supplied" #~ msgstr "method parameter not supplied" -#: src/functions/notifications.tsx:10 +#: src/functions/notifications.tsx:12 msgid "Not implemented" msgstr "Chưa triển khai" -#: src/functions/notifications.tsx:11 +#: src/functions/notifications.tsx:13 msgid "This feature is not yet implemented" msgstr "Tính năng này vẫn chưa được triển khai" -#: src/functions/notifications.tsx:21 -msgid "Permission denied" -msgstr "Quyền truy cập bị từ chối" +#: src/functions/notifications.tsx:24 +#~ msgid "Permission denied" +#~ msgstr "Permission denied" -#: src/functions/notifications.tsx:22 +#: src/functions/notifications.tsx:25 msgid "You do not have permission to perform this action" msgstr "Bạn không có quyền thực hiện hành động này" -#: src/functions/notifications.tsx:33 +#: src/functions/notifications.tsx:36 msgid "Invalid Return Code" msgstr "Mã trả hàng không hợp lệ" -#: src/functions/notifications.tsx:34 +#: src/functions/notifications.tsx:37 msgid "Server returned status {returnCode}" msgstr "Mã phản hồi của máy chủ {returnCode}" +#: src/functions/notifications.tsx:47 +msgid "Timeout" +msgstr "" + +#: src/functions/notifications.tsx:48 +msgid "The request timed out" +msgstr "" + #: src/hooks/UseForm.tsx:88 msgid "Item Created" -msgstr "" +msgstr "Mặt hàng đã được tạo" #: src/hooks/UseForm.tsx:105 msgid "Item Updated" -msgstr "" +msgstr "Mặt hàng đã được cập nhật" #: src/hooks/UseForm.tsx:124 msgid "Item Deleted" -msgstr "" +msgstr "Đã xóa mặt hàng" #: src/hooks/UseForm.tsx:128 msgid "Are you sure you want to delete this item?" -msgstr "" +msgstr "Bạn có chắc chắn muốn xóa đối tượng này?" + +#: src/hooks/UsePlaceholder.tsx:59 +msgid "Latest serial number" +msgstr "Số seri mới nhất" #: src/pages/Auth/Logged-In.tsx:22 msgid "Checking if you are already logged in" msgstr "Đang kiểm tra trạng thái đăng nhập của bạn" -#: src/pages/Auth/Login.tsx:31 -#: src/pages/Index/Scan.tsx:329 +#: src/pages/Auth/Login.tsx:35 +#: src/pages/Index/Scan.tsx:343 msgid "No selection" msgstr "Không có lựa chọn" -#: src/pages/Auth/Login.tsx:87 +#: src/pages/Auth/Login.tsx:91 msgid "Welcome, log in below" msgstr "Chào bạn, đăng nhập bên dưới" -#: src/pages/Auth/Login.tsx:89 +#: src/pages/Auth/Login.tsx:93 msgid "Register below" -msgstr "" +msgstr "Đăng ký bên dưới" #: src/pages/Auth/Login.tsx:121 #~ msgid "Edit host options" @@ -3158,12 +3792,12 @@ msgstr "" #: src/pages/Auth/Logout.tsx:22 msgid "Logging out" -msgstr "" +msgstr "Đang đăng xuất" #: src/pages/Auth/Reset.tsx:41 #: src/pages/Auth/Set-Password.tsx:112 -msgid "Send mail" -msgstr "Gửi mail" +#~ msgid "Send mail" +#~ msgstr "Send mail" #: src/pages/Auth/Set-Password.tsx:30 msgid "Token invalid" @@ -3174,22 +3808,22 @@ msgid "You need to provide a valid token to set a new password. Check your inbox msgstr "Bạn cần cung cấp chữ ký số hợp lệ để đặt mật khẩu mới. Kiểm tra hộp thư của bạn để lấy 1 liên kết tạo lại." #: src/pages/Auth/Set-Password.tsx:49 -msgid "No token provided" -msgstr "Chưa cung cấp chữ ký số" +#~ msgid "No token provided" +#~ msgstr "No token provided" #: src/pages/Auth/Set-Password.tsx:50 -msgid "You need to provide a token to set a new password. Check your inbox for a reset link." -msgstr "Bạn cần cung cấp chữ ký số để đặt mật khẩu mới. Kiểm tra hộp thư của bạn để lấy 1 liên kết tạo lại." +#~ msgid "You need to provide a token to set a new password. Check your inbox for a reset link." +#~ msgstr "You need to provide a token to set a new password. Check your inbox for a reset link." -#: src/pages/Auth/Set-Password.tsx:73 +#: src/pages/Auth/Set-Password.tsx:68 msgid "Password set" msgstr "Đã đặt mật khẩu" -#: src/pages/Auth/Set-Password.tsx:74 +#: src/pages/Auth/Set-Password.tsx:69 msgid "The password was set successfully. You can now login with your new password" msgstr "Mật khẩu đã được đặt mới thành công. Bạn có thể đăng nhập bằng mật khẩu mới" -#: src/pages/Auth/Set-Password.tsx:101 +#: src/pages/Auth/Set-Password.tsx:96 msgid "Set new password" msgstr "Đặt mật khẩu mới" @@ -3199,27 +3833,27 @@ msgstr "Lỗi: {0}" #: src/pages/ErrorPage.tsx:23 msgid "An unexpected error has occurred" -msgstr "" +msgstr "Đã xảy ra lỗi không mong muốn." #: src/pages/ErrorPage.tsx:28 #~ msgid "Sorry, an unexpected error has occurred." #~ msgstr "Sorry, an unexpected error has occurred." #: src/pages/Index/Dashboard.tsx:22 -msgid "Autoupdate" -msgstr "Tự động cập nhật" +#~ msgid "Autoupdate" +#~ msgstr "Autoupdate" #: src/pages/Index/Dashboard.tsx:26 -msgid "This page is a replacement for the old start page with the same information. This page will be deprecated and replaced by the home page." -msgstr "Trang này đã được thay thế cho trang khởi động cũ với thông tin tương tự. Trang này sẽ bị lỗi thời và thay thế bởi trang chủ." +#~ msgid "This page is a replacement for the old start page with the same information. This page will be deprecated and replaced by the home page." +#~ msgstr "This page is a replacement for the old start page with the same information. This page will be deprecated and replaced by the home page." #: src/pages/Index/Home.tsx:58 -msgid "Welcome to your Dashboard{0}" -msgstr "Chào mừng bạn đến với bảng điều khiển của bạn" +#~ msgid "Welcome to your Dashboard{0}" +#~ msgstr "Welcome to your Dashboard{0}" #: src/pages/Index/Playground.tsx:222 -msgid "This page is a showcase for the possibilities of Platform UI." -msgstr "Trang này là trình diễn tính năng dự kiến cho nền tảng UI." +#~ msgid "This page is a showcase for the possibilities of Platform UI." +#~ msgstr "This page is a showcase for the possibilities of Platform UI." #: src/pages/Index/Profile/Profile.tsx:30 #: src/pages/Index/Profile/Profile.tsx:141 @@ -3365,125 +3999,190 @@ msgstr "Nhập thủ công" msgid "Image Barcode" msgstr "Mã vạch dạng ảnh" -#: src/pages/Index/Scan.tsx:247 +#: src/pages/Index/Scan.tsx:261 msgid "Selected elements are not known" msgstr "Chọn phần tử chưa được biết đến" -#: src/pages/Index/Scan.tsx:254 +#: src/pages/Index/Scan.tsx:268 msgid "Multiple object types selected" msgstr "Đã chọn nhiều loại đối tượng" -#: src/pages/Index/Scan.tsx:261 +#: src/pages/Index/Scan.tsx:275 msgid "Actions for {0}" msgstr "Chức năng cho {0}" -#: src/pages/Index/Scan.tsx:282 +#: src/pages/Index/Scan.tsx:296 msgid "Scan Page" msgstr "Quét trang" -#: src/pages/Index/Scan.tsx:285 +#: src/pages/Index/Scan.tsx:299 msgid "This page can be used for continuously scanning items and taking actions on them." msgstr "Trang này hữu dụng khi quét liên tục các mục và thao tác với chúng." -#: src/pages/Index/Scan.tsx:292 +#: src/pages/Index/Scan.tsx:306 msgid "Toggle Fullscreen" -msgstr "" +msgstr "Bật/tắt Toàn màn hình" -#: src/pages/Index/Scan.tsx:305 +#: src/pages/Index/Scan.tsx:319 msgid "Select the input method you want to use to scan items." msgstr "Chọn phương thức nhập liệu bạn muốn để dùng quét mục." -#: src/pages/Index/Scan.tsx:307 +#: src/pages/Index/Scan.tsx:321 msgid "Input" msgstr "Nhập liệu" -#: src/pages/Index/Scan.tsx:314 +#: src/pages/Index/Scan.tsx:328 msgid "Select input method" msgstr "Chọn phương thức nhập liệu" -#: src/pages/Index/Scan.tsx:315 +#: src/pages/Index/Scan.tsx:329 msgid "Nothing found" msgstr "Không tìm thấy" -#: src/pages/Index/Scan.tsx:323 +#: src/pages/Index/Scan.tsx:337 msgid "Depending on the selected parts actions will be shown here. Not all barcode types are supported currently." msgstr "Tùy vào sản phẩm được chọn, chức năng sẽ được hiển thị ở đây. Hiện tại chưa hỗ trợ tất cả các loại mã vạch." -#: src/pages/Index/Scan.tsx:325 +#: src/pages/Index/Scan.tsx:339 msgid "Action" msgstr "Thao tác" -#: src/pages/Index/Scan.tsx:334 +#: src/pages/Index/Scan.tsx:348 msgid "{0} items selected" msgstr "đã chọn {0} mục" -#: src/pages/Index/Scan.tsx:337 +#: src/pages/Index/Scan.tsx:351 msgid "General Actions" msgstr "Chức năng chung" -#: src/pages/Index/Scan.tsx:351 +#: src/pages/Index/Scan.tsx:365 msgid "Lookup part" msgstr "Tra cứu phụ kiện" -#: src/pages/Index/Scan.tsx:359 +#: src/pages/Index/Scan.tsx:373 msgid "Open Link" msgstr "Mở liên kết" -#: src/pages/Index/Scan.tsx:375 +#: src/pages/Index/Scan.tsx:389 msgid "History is locally kept in this browser." msgstr "Lịch sử được lưu tạm trên trình duyệt của máy này." -#: src/pages/Index/Scan.tsx:376 +#: src/pages/Index/Scan.tsx:390 msgid "The history is kept in this browser's local storage. So it won't be shared with other users or other devices but is persistent through reloads. You can select items in the history to perform actions on them. To add items, scan/enter them in the Input area." msgstr "Lịch sử được giữ trong lưu trữ nội bộ trình duyệt. Vậy nó sẽ không thể được chia sẻ với người dùng khác hoặc thiết bị khác nhưng nó vẫn tồn tại bền bỉ cho dù có nạp lại trang. Bạn có thể chọn mục trong lịch sử để thao tác với chúng. Để thêm mục, quét/nhập chúng trong khu vực nhập liệu." -#: src/pages/Index/Scan.tsx:378 +#: src/pages/Index/Scan.tsx:392 #: src/pages/Notifications.tsx:100 msgid "History" msgstr "Lịch sử" -#: src/pages/Index/Scan.tsx:384 +#: src/pages/Index/Scan.tsx:398 msgid "Delete History" -msgstr "" +msgstr "Xoá lịch sử" -#: src/pages/Index/Scan.tsx:449 +#: src/pages/Index/Scan.tsx:463 msgid "No history" msgstr "Chưa có lịch sử" -#: src/pages/Index/Scan.tsx:467 +#: src/pages/Index/Scan.tsx:481 msgid "Item" msgstr "Hàng hóa" -#: src/pages/Index/Scan.tsx:470 +#: src/pages/Index/Scan.tsx:484 msgid "Type" msgstr "Loại" -#: src/pages/Index/Scan.tsx:473 +#: src/pages/Index/Scan.tsx:487 msgid "Source" msgstr "Nguồn" -#: src/pages/Index/Scan.tsx:476 +#: src/pages/Index/Scan.tsx:490 msgid "Scanned at" msgstr "Quét lúc" -#: src/pages/Index/Scan.tsx:528 +#: src/pages/Index/Scan.tsx:547 msgid "Enter item serial or data" msgstr "Nhập sê-ri hàng hóa hoặc dữ liệu" -#: src/pages/Index/Scan.tsx:540 +#: src/pages/Index/Scan.tsx:559 msgid "Add dummy item" msgstr "Thêm mục giả lập" +#: src/pages/Index/Scan.tsx:569 +msgid "Start scanning by selecting a camera and pressing the play button." +msgstr "" + +#: src/pages/Index/Scan.tsx:650 +msgid "Error while getting camera" +msgstr "Có lỗi khi lấy camera" + +#: src/pages/Index/Scan.tsx:673 +msgid "Error while scanning" +msgstr "Lỗi khi quét" + +#: src/pages/Index/Scan.tsx:687 +msgid "Error while stopping" +msgstr "Lỗi trong khi dừng lại" + +#: src/pages/Index/Scan.tsx:745 +msgid "Stop scanning" +msgstr "Dừng quét" + +#: src/pages/Index/Scan.tsx:754 +msgid "Start scanning" +msgstr "Bắt đầu quét" + +#: src/pages/Index/Scan.tsx:763 +msgid "Scanning" +msgstr "Đang quét" + +#: src/pages/Index/Scan.tsx:763 +msgid "Not scanning" +msgstr "Chưa quét" + +#: src/pages/Index/Scan.tsx:775 +msgid "Select Camera" +msgstr "Chọn camera" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:28 +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:50 +msgid "Edit User Information" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:32 +msgid "User details updated" +msgstr "" + #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:41 -msgid "Account Details" -msgstr "Thông tin tài khoản" +msgid "User Details" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:41 +#~ msgid "Account Details" +#~ msgstr "Account Details" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:44 +msgid "User Actions" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:48 +msgid "Edit User" +msgstr "" #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:50 -msgid "First name" +#~ msgid "First name" +#~ msgstr "First name" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:54 +msgid "Set Password" msgstr "" #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:55 -msgid "Last name" +#~ msgid "Last name" +#~ msgstr "Last name" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:56 +msgid "Set User Password" msgstr "" #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:58 @@ -3495,16 +4194,29 @@ msgstr "" #~ msgstr "Last name: {0}" #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:67 -msgid "First name:" -msgstr "" +#~ msgid "First name:" +#~ msgstr "First name:" #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:71 -msgid "Last name:" +#~ msgid "Last name:" +#~ msgstr "Last name:" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:73 +msgid "First Name" msgstr "" -#: src/pages/Index/Settings/AccountSettings/DisplaySettingsPanel.tsx:41 -msgid "Use pseudo language" -msgstr "Sử dụng ngôn ngữ pseudo" +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:79 +msgid "Last Name" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:85 +msgid "Staff Access" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:93 +#: src/tables/settings/UserTable.tsx:293 +msgid "Superuser" +msgstr "" #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:55 msgid "Single Sign On Accounts" @@ -3530,7 +4242,7 @@ msgstr "Chưa cấu hình xác thực đa nhân tố cho tài khoản của bạ #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:92 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:407 msgid "Token" -msgstr "" +msgstr "Token" #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:139 msgid "The following email addresses are associated with your account:" @@ -3562,7 +4274,7 @@ msgstr "Địa chỉ Email" #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:189 msgid "Make Primary" -msgstr "" +msgstr "Chọn mặc định" #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:194 msgid "Re-send Verification" @@ -3582,86 +4294,101 @@ msgstr "Chưa được cấu hình" #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:283 msgid "There are no social network accounts connected to this account." -msgstr "" +msgstr "Không có tài khoản mạng xã hội nào được kết nối đến tài khoản này." #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:293 msgid "You can sign in to your account using any of the following third party accounts" -msgstr "" +msgstr "Bạn có thể đăng nhập vào tài khoản của bạn bằng cách sử dụng bất kỳ tài khoản bên thứ ba" #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:368 msgid "Token is used - no actions" -msgstr "" +msgstr "Mã thông báo được sử dụng - không có thay đổi" #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:375 msgid "Revoke" -msgstr "" +msgstr "Thu hồi" #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:389 msgid "No tokens configured" -msgstr "" - -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:398 -#: src/pages/part/PartDetail.tsx:297 -#: src/tables/bom/UsedInTable.tsx:84 -#: src/tables/build/BuildOrderTable.tsx:110 -#: src/tables/company/CompanyTable.tsx:61 -#: src/tables/company/CompanyTable.tsx:95 -#: src/tables/machine/MachineListTable.tsx:332 -#: src/tables/machine/MachineListTable.tsx:594 -#: src/tables/part/ParametricPartTable.tsx:223 -#: src/tables/part/PartTable.tsx:178 -#: src/tables/part/PartVariantTable.tsx:15 -#: src/tables/plugin/PluginListTable.tsx:149 -#: src/tables/plugin/PluginListTable.tsx:271 -#: src/tables/plugin/PluginListTable.tsx:563 -#: src/tables/purchasing/SupplierPartTable.tsx:98 -#: src/tables/purchasing/SupplierPartTable.tsx:187 -#: src/tables/settings/UserTable.tsx:284 -#: src/tables/stock/StockItemTable.tsx:289 -msgid "Active" -msgstr "Hoạt động" +msgstr "Chưa được cấu hình" #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:401 msgid "Expiry" -msgstr "" +msgstr "Hết hạn" #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:404 msgid "Last Seen" -msgstr "" +msgstr "Xem lần cuối" #: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:65 -msgid "bars" -msgstr "thanh" +#~ msgid "bars" +#~ msgstr "bars" #: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:66 -msgid "oval" -msgstr "trái xoan" +#~ msgid "oval" +#~ msgstr "oval" #: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:67 -msgid "dots" -msgstr "chấm" +#~ msgid "dots" +#~ msgstr "dots" #: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:81 -msgid "Theme" -msgstr "Chủ đề" +#~ msgid "Theme" +#~ msgstr "Theme" #: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:87 -msgid "Primary color" -msgstr "Màu chủ đạo" +#~ msgid "Primary color" +#~ msgstr "Primary color" -#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:100 +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:88 +msgid "Bars" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:89 +msgid "Oval" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:90 +msgid "Dots" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:101 +msgid "Display Settings" +msgstr "Cài đặt hiển thị" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:107 +msgid "Language" +msgstr "Ngôn ngữ" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:115 +msgid "Use pseudo language" +msgstr "Sử dụng ngôn ngữ pseudo" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:122 +msgid "Color Mode" +msgstr "Chế độ màu sắc" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:133 +msgid "Highlight color" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:145 +msgid "Example" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:151 msgid "White color" msgstr "Màu trắng" -#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:108 +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:167 msgid "Black color" msgstr "Màu đen" -#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:116 +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:183 msgid "Border Radius" msgstr "Bo viền" -#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:132 +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:199 msgid "Loader" msgstr "Thanh tải" @@ -3673,89 +4400,156 @@ msgstr "Thanh tải" #~ msgid "Advanced Amininistrative Options for InvenTree" #~ msgstr "Advanced Amininistrative Options for InvenTree" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:104 +#: src/pages/Index/Settings/AdminCenter/CurrencyManagmentPanel.tsx:27 +#: src/tables/ColumnRenderers.tsx:262 +msgid "Currency" +msgstr "Tiền tệ" + +#: src/pages/Index/Settings/AdminCenter/CurrencyManagmentPanel.tsx:32 +msgid "Rate" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/CurrencyManagmentPanel.tsx:44 +msgid "Exchange rates updated" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/CurrencyManagmentPanel.tsx:50 +msgid "Exchange rate update error" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/CurrencyManagmentPanel.tsx:62 +msgid "Refresh currency exchange rates" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/CurrencyManagmentPanel.tsx:99 +msgid "Last fetched" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/CurrencyManagmentPanel.tsx:100 +msgid "Base currency" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:115 msgid "Data Import" +msgstr "Nhập dữ liệu" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:121 +msgid "Barcode Scans" msgstr "" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:110 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:127 msgid "Background Tasks" -msgstr "" - -#: src/pages/Index/Settings/AdminCenter/Index.tsx:116 -msgid "Error Reports" -msgstr "" - -#: src/pages/Index/Settings/AdminCenter/Index.tsx:122 -msgid "Currencies" -msgstr "" +msgstr "Tác vụ Chạy nền" #: src/pages/Index/Settings/AdminCenter/Index.tsx:127 #~ msgid "Templates" #~ msgstr "Templates" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:140 -msgid "Custom Units" -msgstr "" +#: src/pages/Index/Settings/AdminCenter/Index.tsx:133 +msgid "Error Reports" +msgstr "Báo cáo lỗi" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:146 -#: src/pages/part/CategoryDetail.tsx:264 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:139 +msgid "Currencies" +msgstr "Tiền tệ" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:157 +msgid "Custom States" +msgstr "Tuỳ chọn states" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:163 +#: src/pages/Index/Settings/AdminCenter/UnitManagmentPanel.tsx:58 +msgid "Custom Units" +msgstr "Tuỳ chọn đơn vị" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:169 +#: src/pages/part/CategoryDetail.tsx:269 msgid "Part Parameters" msgstr "Tham số phụ kiện" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:152 -msgid "Category Parameters" -msgstr "" - -#: src/pages/Index/Settings/AdminCenter/Index.tsx:170 -msgid "Location Types" -msgstr "" - #: src/pages/Index/Settings/AdminCenter/Index.tsx:170 #~ msgid "Location types" #~ msgstr "Location types" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:182 -#: src/tables/machine/MachineTypeTable.tsx:287 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:175 +msgid "Category Parameters" +msgstr "Thông số danh mục" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:181 +msgid "Stocktake" +msgstr "Kiểm kê" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:199 +msgid "Location Types" +msgstr "Loại vị trí" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:211 +#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:48 +#: src/tables/machine/MachineTypeTable.tsx:308 msgid "Machines" -msgstr "" +msgstr "Máy móc" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:192 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:221 msgid "Quick Actions" -msgstr "" +msgstr "Thao tác nhanh" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:197 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:226 msgid "Add a new user" -msgstr "" +msgstr "Thêm người dùng mới" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:222 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:252 msgid "Advanced Options" -msgstr "" +msgstr "Tùy chọn Nâng cao" #: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:43 -msgid "Machine types" -msgstr "" +#~ msgid "Machine types" +#~ msgstr "Machine types" #: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:53 -msgid "Machine Error Stack" +#~ msgid "Machine Error Stack" +#~ msgstr "Machine Error Stack" + +#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:56 +msgid "Machine Types" msgstr "" #: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:62 -msgid "There are no machine registry errors." +#~ msgid "There are no machine registry errors." +#~ msgstr "There are no machine registry errors." + +#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:64 +msgid "Machine Errors" msgstr "" -#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:28 -#: src/tables/settings/UserTable.tsx:119 +#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:77 +msgid "Registry Registry Errors" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:80 +msgid "There are machine registry errors" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:86 +msgid "Machine Registry Errors" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:89 +msgid "There are no machine registry errors" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:31 +#: src/tables/settings/UserTable.tsx:118 msgid "Info" -msgstr "" - -#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:32 -msgid "External plugins are not enabled for this InvenTree installation." -msgstr "" +msgstr "Thông tin" #: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:33 #~ msgid "Plugin Error Stack" #~ msgstr "Plugin Error Stack" +#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:35 +msgid "External plugins are not enabled for this InvenTree installation." +msgstr "Phần bổ sung bên ngoài chưa được bật cho cài đặt." + #: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:45 #~ msgid "Warning" #~ msgstr "Warning" @@ -3764,34 +4558,46 @@ msgstr "" #~ msgid "Changing the settings below require you to immediately restart the server. Do not change this while under active usage." #~ msgstr "Changing the settings below require you to immediately restart the server. Do not change this while under active usage." -#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:50 +#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:73 msgid "Plugin Errors" +msgstr "Lỗi plugins" + +#: src/pages/Index/Settings/AdminCenter/ReportTemplatePanel.tsx:17 +msgid "Page Size" msgstr "" -#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:59 -msgid "Plugin Settings" -msgstr "Thiết lập phần bổ sung" - -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:53 -msgid "Background Worker Not Running" +#: src/pages/Index/Settings/AdminCenter/ReportTemplatePanel.tsx:20 +msgid "Landscape" msgstr "" -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:54 +#: src/pages/Index/Settings/AdminCenter/ReportTemplatePanel.tsx:26 +msgid "Attach to Model" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/StocktakePanel.tsx:25 +msgid "Stocktake Reports" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:30 msgid "The background task manager service is not running. Contact your system administrator." -msgstr "" +msgstr "Dịch vụ quản lý tác vụ nền không chạy. Hãy liên hệ với quản trị viên hệ thống của bạn." -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:60 -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:76 +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:35 +#~ msgid "Background Worker Not Running" +#~ msgstr "Background Worker Not Running" + +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:36 +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:45 msgid "Pending Tasks" msgstr "Tác vụ chờ xử lý" -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:64 -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:84 +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:37 +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:53 msgid "Scheduled Tasks" msgstr "Tác vụ theo lịch" -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:68 -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:92 +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:38 +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:61 msgid "Failed Tasks" msgstr "Tác vụ thất bại" @@ -3811,11 +4617,6 @@ msgstr "Tác vụ thất bại" #~ msgid "Reports" #~ msgstr "Reports" -#: src/pages/Index/Settings/AdminCenter/TemplateManagementPanel.tsx:89 -#: src/pages/build/BuildDetail.tsx:373 -#~ msgid "Report" -#~ msgstr "Report" - #: src/pages/Index/Settings/AdminCenter/TemplateManagementPanel.tsx:99 #~ msgid "Purchase order" #~ msgstr "Purchase order" @@ -3836,23 +4637,35 @@ msgstr "Tác vụ thất bại" #~ msgid "Stock location" #~ msgstr "Stock location" +#: src/pages/Index/Settings/AdminCenter/UnitManagmentPanel.tsx:21 +msgid "Alias" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/UnitManagmentPanel.tsx:22 +msgid "Dimensionless" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/UnitManagmentPanel.tsx:66 +msgid "All units" +msgstr "" + #: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:32 msgid "Select settings relevant for user lifecycle. More available in" msgstr "Chọn thiết lập thích hợp với vòng đời người dùng. Có thêm ở" #: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:37 -msgid "System settings" -msgstr "Thiết lập hệ thống" +#~ msgid "System settings" +#~ msgstr "System settings" -#: src/pages/Index/Settings/SystemSettings.tsx:67 +#: src/pages/Index/Settings/SystemSettings.tsx:66 msgid "Login" msgstr "Đăng nhập" -#: src/pages/Index/Settings/SystemSettings.tsx:93 +#: src/pages/Index/Settings/SystemSettings.tsx:92 msgid "Barcodes" msgstr "Mã vạch" -#: src/pages/Index/Settings/SystemSettings.tsx:115 +#: src/pages/Index/Settings/SystemSettings.tsx:116 msgid "Pricing" msgstr "Giá bán" @@ -3864,64 +4677,46 @@ msgstr "Giá bán" #~ msgid "Exchange Rates" #~ msgstr "Exchange Rates" -#: src/pages/Index/Settings/SystemSettings.tsx:150 +#: src/pages/Index/Settings/SystemSettings.tsx:151 msgid "Labels" msgstr "Nhãn" -#: src/pages/Index/Settings/SystemSettings.tsx:156 -#: src/pages/Index/Settings/UserSettings.tsx:132 +#: src/pages/Index/Settings/SystemSettings.tsx:157 +#: src/pages/Index/Settings/UserSettings.tsx:133 msgid "Reporting" msgstr "Báo cáo" #: src/pages/Index/Settings/SystemSettings.tsx:231 -#: src/pages/part/PartDetail.tsx:682 -msgid "Stocktake" -msgstr "Kiểm kê" - -#: src/pages/Index/Settings/SystemSettings.tsx:237 -#: src/pages/build/BuildDetail.tsx:554 -#: src/pages/build/BuildIndex.tsx:22 -#: src/pages/part/PartDetail.tsx:616 -#: src/pages/sales/SalesOrderDetail.tsx:333 +#: src/pages/build/BuildIndex.tsx:27 +#: src/pages/part/PartDetail.tsx:636 +#: src/pages/sales/SalesOrderDetail.tsx:355 msgid "Build Orders" msgstr "Đơn đặt bản dựng" -#: src/pages/Index/Settings/SystemSettings.tsx:318 -msgid "Switch to User Setting" -msgstr "Chuyển sang thiết lập người dùng" +#: src/pages/Index/Settings/SystemSettings.tsx:317 +#~ msgid "Switch to User Setting" +#~ msgstr "Switch to User Setting" -#: src/pages/Index/Settings/UserSettings.tsx:34 +#: src/pages/Index/Settings/UserSettings.tsx:35 msgid "Account" msgstr "Tài khoản" -#: src/pages/Index/Settings/UserSettings.tsx:40 +#: src/pages/Index/Settings/UserSettings.tsx:41 msgid "Security" msgstr "Bảo mật" -#: src/pages/Index/Settings/UserSettings.tsx:78 +#: src/pages/Index/Settings/UserSettings.tsx:79 msgid "Display Options" msgstr "Tùy chọn hiển thị" -#: src/pages/Index/Settings/UserSettings.tsx:150 -msgid "Account Settings" -msgstr "Cài đặt tài khoản" - -#: src/pages/Index/Settings/UserSettings.tsx:158 -msgid "Switch to System Setting" -msgstr "Chuyển sang thiết lập hệ thống" - -#: src/pages/Index/UserSettings.tsx:103 -#~ msgid "User Settings" -#~ msgstr "User Settings" +#: src/pages/Index/Settings/UserSettings.tsx:159 +#~ msgid "Switch to System Setting" +#~ msgstr "Switch to System Setting" #: src/pages/Logged-In.tsx:24 #~ msgid "Found an exsisting login - using it to log you in." #~ msgstr "Found an exsisting login - using it to log you in." -#: src/pages/NotFound.tsx:17 -#~ msgid "Not Found" -#~ msgstr "Not Found" - #: src/pages/NotFound.tsx:20 #~ msgid "Sorry, this page is not known or was moved." #~ msgstr "Sorry, this page is not known or was moved." @@ -3932,7 +4727,7 @@ msgstr "Chuyển sang thiết lập hệ thống" #: src/pages/Notifications.tsx:43 msgid "Delete Notifications" -msgstr "" +msgstr "Xóa thông báo" #: src/pages/Notifications.tsx:108 msgid "Mark as unread" @@ -3942,88 +4737,76 @@ msgstr "Đánh dấu chưa đọc" #~ msgid "Build Status" #~ msgstr "Build Status" -#: src/pages/build/BuildDetail.tsx:102 -#: src/pages/part/PartDetail.tsx:150 +#: src/pages/build/BuildDetail.tsx:97 +#: src/pages/company/ManufacturerPartDetail.tsx:81 +#: src/pages/company/SupplierPartDetail.tsx:91 +#: src/pages/part/PartDetail.tsx:171 +#: src/pages/stock/StockDetail.tsx:122 #: src/tables/bom/BomTable.tsx:118 #: src/tables/bom/UsedInTable.tsx:39 -#: src/tables/build/BuildLineTable.tsx:173 -#: src/tables/build/BuildOrderTable.tsx:55 -#: src/tables/sales/SalesOrderLineItemTable.tsx:62 -#: src/tables/stock/StockItemTable.tsx:53 +#: src/tables/build/BuildAllocatedStockTable.tsx:104 +#: src/tables/build/BuildLineTable.tsx:324 +#: src/tables/build/BuildOrderTable.tsx:64 +#: src/tables/sales/SalesOrderLineItemTable.tsx:70 +#: src/tables/stock/StockItemTable.tsx:54 msgid "IPN" msgstr "IPN" -#: src/pages/build/BuildDetail.tsx:115 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:121 -#: src/pages/sales/ReturnOrderDetail.tsx:95 -#: src/pages/sales/SalesOrderDetail.tsx:101 -#: src/tables/ColumnRenderers.tsx:121 -#: src/tables/build/BuildAllocatedStockTable.tsx:90 -#: src/tables/build/BuildLineTable.tsx:184 +#: src/pages/build/BuildDetail.tsx:110 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:115 +#: src/pages/sales/ReturnOrderDetail.tsx:86 +#: src/pages/sales/SalesOrderDetail.tsx:95 +#: src/tables/ColumnRenderers.tsx:132 +#: src/tables/build/BuildAllocatedStockTable.tsx:111 +#: src/tables/build/BuildLineTable.tsx:335 msgid "Reference" -msgstr "" +msgstr "Tham chiếu" -#: src/pages/build/BuildDetail.tsx:121 -#: src/pages/company/CompanyDetail.tsx:90 -#: src/pages/company/ManufacturerPartDetail.tsx:83 -#: src/pages/company/SupplierPartDetail.tsx:96 -#: src/pages/part/CategoryDetail.tsx:101 -#: src/pages/part/PartDetail.tsx:157 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:142 -#: src/pages/sales/ReturnOrderDetail.tsx:115 -#: src/pages/sales/SalesOrderDetail.tsx:121 -#: src/pages/stock/LocationDetail.tsx:109 -#: src/tables/ColumnRenderers.tsx:81 -#: src/tables/bom/UsedInTable.tsx:44 -#: src/tables/build/BuildAllocatedStockTable.tsx:70 -#: src/tables/build/BuildLineTable.tsx:178 -#: src/tables/machine/MachineTypeTable.tsx:69 -#: src/tables/machine/MachineTypeTable.tsx:112 -#: src/tables/machine/MachineTypeTable.tsx:219 -#: src/tables/machine/MachineTypeTable.tsx:323 -#: src/tables/part/RelatedPartTable.tsx:64 -#: src/tables/plugin/PluginListTable.tsx:129 -#: src/tables/plugin/PluginListTable.tsx:276 -#: src/tables/sales/SalesOrderAllocationTable.tsx:56 -#: src/tables/sales/SalesOrderLineItemTable.tsx:67 -#: src/tables/stock/LocationTypesTable.tsx:74 -msgid "Description" -msgstr "Mô tả" - -#: src/pages/build/BuildDetail.tsx:129 +#: src/pages/build/BuildDetail.tsx:124 msgid "Parent Build" -msgstr "" +msgstr "Phiên bản cha" -#: src/pages/build/BuildDetail.tsx:140 +#: src/pages/build/BuildDetail.tsx:135 msgid "Build Quantity" -msgstr "" +msgstr "Số lượng đơn vị" -#: src/pages/build/BuildDetail.tsx:148 -#: src/pages/build/BuildDetail.tsx:274 +#: src/pages/build/BuildDetail.tsx:143 +#: src/pages/build/BuildDetail.tsx:277 msgid "Completed Outputs" msgstr "Đầu ra hoàn thiện" -#: src/pages/build/BuildDetail.tsx:165 -#: src/tables/build/BuildOrderTable.tsx:151 +#: src/pages/build/BuildDetail.tsx:160 +#: src/tables/build/BuildOrderTable.tsx:142 msgid "Issued By" -msgstr "" +msgstr "Cấp bởi" -#: src/pages/build/BuildDetail.tsx:172 -#: src/pages/part/PartDetail.tsx:365 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:220 -#: src/pages/sales/ReturnOrderDetail.tsx:199 -#: src/pages/sales/SalesOrderDetail.tsx:208 -#: src/tables/build/BuildOrderTable.tsx:157 -#: src/tables/purchasing/PurchaseOrderTable.tsx:75 -#: src/tables/sales/ReturnOrderTable.tsx:66 -#: src/tables/sales/SalesOrderTable.tsx:73 +#: src/pages/build/BuildDetail.tsx:167 +#: src/pages/part/PartDetail.tsx:406 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:244 +#: src/pages/sales/ReturnOrderDetail.tsx:216 +#: src/pages/sales/SalesOrderDetail.tsx:226 +#: src/tables/build/BuildOrderTable.tsx:148 +#: src/tables/purchasing/PurchaseOrderTable.tsx:76 +#: src/tables/sales/ReturnOrderTable.tsx:74 +#: src/tables/sales/SalesOrderTable.tsx:74 msgid "Responsible" msgstr "Chịu trách nhiệm" -#: src/pages/build/BuildDetail.tsx:179 -#: src/tables/settings/PendingTasksTable.tsx:32 +#: src/pages/build/BuildDetail.tsx:174 +#: src/tables/settings/PendingTasksTable.tsx:36 msgid "Created" -msgstr "" +msgstr "Đã tạo" + +#: src/pages/build/BuildDetail.tsx:181 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:229 +#: src/pages/sales/ReturnOrderDetail.tsx:201 +#: src/pages/sales/SalesOrderDetail.tsx:212 +#: src/tables/ColumnRenderers.tsx:226 +#: src/tables/part/PartPurchaseOrdersTable.tsx:100 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:135 +#: src/tables/sales/SalesOrderLineItemTable.tsx:107 +msgid "Target Date" +msgstr "Ngày mục tiêu" #: src/pages/build/BuildDetail.tsx:185 #: src/pages/part/PartDetail.tsx:269 @@ -4031,26 +4814,16 @@ msgstr "" #~ msgid "View part barcode" #~ msgstr "View part barcode" -#: src/pages/build/BuildDetail.tsx:186 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:213 -#: src/pages/sales/ReturnOrderDetail.tsx:192 -#: src/pages/sales/SalesOrderDetail.tsx:201 -#: src/tables/ColumnRenderers.tsx:212 -#: src/tables/part/PartPurchaseOrdersTable.tsx:99 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:110 -#: src/tables/sales/SalesOrderLineItemTable.tsx:99 -msgid "Target Date" -msgstr "Ngày mục tiêu" +#: src/pages/build/BuildDetail.tsx:188 +#: src/tables/sales/SalesOrderLineItemTable.tsx:281 +msgid "Completed" +msgstr "Đã hoàn thành" #: src/pages/build/BuildDetail.tsx:190 #: src/pages/part/PartDetail.tsx:274 #~ msgid "Link custom barcode to part" #~ msgstr "Link custom barcode to part" -#: src/pages/build/BuildDetail.tsx:193 -msgid "Completed" -msgstr "" - #: src/pages/build/BuildDetail.tsx:196 #: src/pages/part/PartDetail.tsx:280 #~ msgid "Unlink custom barcode from part" @@ -4060,17 +4833,13 @@ msgstr "" #~ msgid "Build Order updated" #~ msgstr "Build Order updated" -#: src/pages/build/BuildDetail.tsx:205 -msgid "Source Location" -msgstr "" - -#: src/pages/build/BuildDetail.tsx:206 +#: src/pages/build/BuildDetail.tsx:209 msgid "Any location" -msgstr "" +msgstr "Vị trí bất kỳ" -#: src/pages/build/BuildDetail.tsx:213 +#: src/pages/build/BuildDetail.tsx:216 msgid "Destination Location" -msgstr "" +msgstr "Địa điểm đích" #: src/pages/build/BuildDetail.tsx:221 #~ msgid "Edit build order" @@ -4084,208 +4853,184 @@ msgstr "" #~ msgid "Delete build order" #~ msgstr "Delete build order" -#: src/pages/build/BuildDetail.tsx:251 +#: src/pages/build/BuildDetail.tsx:254 msgid "Build Details" msgstr "Chi tiết bản dựng" -#: src/pages/build/BuildDetail.tsx:257 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:258 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:267 -#: src/pages/sales/ReturnOrderDetail.tsx:130 -#: src/pages/sales/ReturnOrderDetail.tsx:237 -#: src/pages/sales/ReturnOrderDetail.tsx:246 -#: src/pages/sales/SalesOrderDetail.tsx:272 -#: src/pages/sales/SalesOrderDetail.tsx:281 +#: src/pages/build/BuildDetail.tsx:260 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:282 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:291 +#: src/pages/sales/ReturnOrderDetail.tsx:122 +#: src/pages/sales/ReturnOrderDetail.tsx:254 +#: src/pages/sales/ReturnOrderDetail.tsx:263 +#: src/pages/sales/SalesOrderDetail.tsx:294 +#: src/pages/sales/SalesOrderDetail.tsx:303 msgid "Line Items" msgstr "Dòng hàng hóa" -#: src/pages/build/BuildDetail.tsx:267 +#: src/pages/build/BuildDetail.tsx:266 msgid "Incomplete Outputs" msgstr "Đầu ra chưa hoàn hiện" -#: src/pages/build/BuildDetail.tsx:289 -#: src/pages/sales/SalesOrderDetail.tsx:319 +#: src/pages/build/BuildDetail.tsx:292 +#: src/pages/sales/SalesOrderDetail.tsx:341 msgid "Allocated Stock" -msgstr "" +msgstr "Kho hàng đã phân bổ" -#: src/pages/build/BuildDetail.tsx:299 +#: src/pages/build/BuildDetail.tsx:302 msgid "Consumed Stock" msgstr "Kho tiêu thụ" -#: src/pages/build/BuildDetail.tsx:313 +#: src/pages/build/BuildDetail.tsx:316 msgid "Child Build Orders" msgstr "Đơn đặt bản dựng con" #: src/pages/build/BuildDetail.tsx:326 -#: src/tables/build/BuildOutputTable.tsx:384 -#: src/tables/stock/StockItemTestResultTable.tsx:150 +#: src/tables/build/BuildOutputTable.tsx:532 +#: src/tables/stock/StockItemTestResultTable.tsx:156 msgid "Test Results" -msgstr "" +msgstr "Kết quả kiểm tra" #: src/pages/build/BuildDetail.tsx:337 -#: src/pages/part/PartDetail.tsx:699 +#: src/pages/part/PartDetail.tsx:740 msgid "Test Statistics" -msgstr "" +msgstr "Kiểm định" -#: src/pages/build/BuildDetail.tsx:351 -#: src/pages/company/CompanyDetail.tsx:259 -#: src/pages/company/ManufacturerPartDetail.tsx:179 -#: src/pages/part/PartDetail.tsx:721 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:309 -#: src/pages/sales/ReturnOrderDetail.tsx:274 -#: src/pages/sales/SalesOrderDetail.tsx:343 -#: src/pages/stock/StockDetail.tsx:385 -msgid "Attachments" -msgstr "Đính kèm" - -#: src/pages/build/BuildDetail.tsx:359 -#: src/pages/company/CompanyDetail.tsx:270 -#: src/pages/company/ManufacturerPartDetail.tsx:190 -#: src/pages/company/SupplierPartDetail.tsx:257 -#: src/pages/part/PartDetail.tsx:729 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:320 -#: src/pages/sales/ReturnOrderDetail.tsx:285 -#: src/pages/sales/SalesOrderDetail.tsx:354 -#: src/pages/stock/StockDetail.tsx:396 -#: src/tables/build/BuildOrderTestTable.tsx:142 -#: src/tables/stock/StockTrackingTable.tsx:189 -msgid "Notes" -msgstr "Ghi chú" +#: src/pages/build/BuildDetail.tsx:365 +msgid "Edit Build Order" +msgstr "Sửa đơn đặt bản dựng" #: src/pages/build/BuildDetail.tsx:368 #~ msgid "Reporting Actions" #~ msgstr "Reporting Actions" +#: src/pages/build/BuildDetail.tsx:372 +#: src/tables/build/BuildOrderTable.tsx:173 +#: src/tables/build/BuildOrderTable.tsx:188 +msgid "Add Build Order" +msgstr "Tạo đơn đặt bản dựng" + #: src/pages/build/BuildDetail.tsx:374 #~ msgid "Print build report" #~ msgstr "Print build report" -#: src/pages/build/BuildDetail.tsx:377 -msgid "Edit Build Order" -msgstr "" - -#: src/pages/build/BuildDetail.tsx:384 -#: src/tables/build/BuildOrderTable.tsx:172 -#: src/tables/build/BuildOrderTable.tsx:187 -msgid "Add Build Order" -msgstr "" - -#: src/pages/build/BuildDetail.tsx:398 +#: src/pages/build/BuildDetail.tsx:386 msgid "Cancel Build Order" -msgstr "" +msgstr "Hủy đơn đặt bản dựng" -#: src/pages/build/BuildDetail.tsx:400 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:348 -#: src/pages/sales/SalesOrderDetail.tsx:380 -msgid "Order cancelled" -msgstr "" - -#: src/pages/build/BuildDetail.tsx:401 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:347 -#: src/pages/sales/ReturnOrderDetail.tsx:346 -#: src/pages/sales/SalesOrderDetail.tsx:379 -msgid "Cancel this order" -msgstr "" - -#: src/pages/build/BuildDetail.tsx:410 -msgid "Hold Build Order" -msgstr "" - -#: src/pages/build/BuildDetail.tsx:412 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:355 +#: src/pages/build/BuildDetail.tsx:388 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:357 #: src/pages/sales/ReturnOrderDetail.tsx:354 #: src/pages/sales/SalesOrderDetail.tsx:387 -msgid "Place this order on hold" -msgstr "" +msgid "Order cancelled" +msgstr "Đã huỷ giao dịch" -#: src/pages/build/BuildDetail.tsx:413 +#: src/pages/build/BuildDetail.tsx:389 #: src/pages/purchasing/PurchaseOrderDetail.tsx:356 -#: src/pages/sales/ReturnOrderDetail.tsx:355 -#: src/pages/sales/SalesOrderDetail.tsx:388 -msgid "Order placed on hold" -msgstr "" +#: src/pages/sales/ReturnOrderDetail.tsx:353 +#: src/pages/sales/SalesOrderDetail.tsx:386 +msgid "Cancel this order" +msgstr "Hủy đơn hàng này" -#: src/pages/build/BuildDetail.tsx:418 -msgid "Issue Build Order" -msgstr "" +#: src/pages/build/BuildDetail.tsx:398 +msgid "Hold Build Order" +msgstr "Chuyển trạng thái chờ đơn đặt bản dựng" -#: src/pages/build/BuildDetail.tsx:420 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:339 -#: src/pages/sales/ReturnOrderDetail.tsx:338 -#: src/pages/sales/SalesOrderDetail.tsx:371 -msgid "Issue this order" -msgstr "" +#: src/pages/build/BuildDetail.tsx:400 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:364 +#: src/pages/sales/ReturnOrderDetail.tsx:361 +#: src/pages/sales/SalesOrderDetail.tsx:394 +msgid "Place this order on hold" +msgstr "Chuyển đơn hàng sang trạng thái chờ" -#: src/pages/build/BuildDetail.tsx:421 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:340 -#: src/pages/sales/ReturnOrderDetail.tsx:339 -#: src/pages/sales/SalesOrderDetail.tsx:372 -msgid "Order issued" -msgstr "" - -#: src/pages/build/BuildDetail.tsx:426 -msgid "Complete Build Order" -msgstr "" - -#: src/pages/build/BuildDetail.tsx:428 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:368 +#: src/pages/build/BuildDetail.tsx:401 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:365 #: src/pages/sales/ReturnOrderDetail.tsx:362 #: src/pages/sales/SalesOrderDetail.tsx:395 +msgid "Order placed on hold" +msgstr "Đơn hàng đã chuyển sang chờ" + +#: src/pages/build/BuildDetail.tsx:406 +msgid "Issue Build Order" +msgstr "Xác nhận" + +#: src/pages/build/BuildDetail.tsx:408 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:348 +#: src/pages/sales/ReturnOrderDetail.tsx:345 +#: src/pages/sales/SalesOrderDetail.tsx:378 +msgid "Issue this order" +msgstr "Xác nhận" + +#: src/pages/build/BuildDetail.tsx:409 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:349 +#: src/pages/sales/ReturnOrderDetail.tsx:346 +#: src/pages/sales/SalesOrderDetail.tsx:379 +msgid "Order issued" +msgstr "Đã xác nhận" + +#: src/pages/build/BuildDetail.tsx:414 +msgid "Complete Build Order" +msgstr "Hoàn thành" + +#: src/pages/build/BuildDetail.tsx:416 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:377 +#: src/pages/sales/ReturnOrderDetail.tsx:369 +#: src/pages/sales/SalesOrderDetail.tsx:402 msgid "Mark this order as complete" -msgstr "" +msgstr "Đánh dấu hoàn thành" -#: src/pages/build/BuildDetail.tsx:429 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:362 -#: src/pages/sales/ReturnOrderDetail.tsx:363 -#: src/pages/sales/SalesOrderDetail.tsx:396 +#: src/pages/build/BuildDetail.tsx:417 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:371 +#: src/pages/sales/ReturnOrderDetail.tsx:370 +#: src/pages/sales/SalesOrderDetail.tsx:403 msgid "Order completed" -msgstr "" +msgstr "Hoàn thành" -#: src/pages/build/BuildDetail.tsx:460 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:391 -#: src/pages/sales/ReturnOrderDetail.tsx:392 -#: src/pages/sales/SalesOrderDetail.tsx:425 -msgid "Issue Order" -msgstr "" - -#: src/pages/build/BuildDetail.tsx:467 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:398 +#: src/pages/build/BuildDetail.tsx:448 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:400 #: src/pages/sales/ReturnOrderDetail.tsx:399 -#: src/pages/sales/SalesOrderDetail.tsx:439 +#: src/pages/sales/SalesOrderDetail.tsx:432 +msgid "Issue Order" +msgstr "Xác nhận" + +#: src/pages/build/BuildDetail.tsx:455 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:407 +#: src/pages/sales/ReturnOrderDetail.tsx:406 +#: src/pages/sales/SalesOrderDetail.tsx:446 msgid "Complete Order" -msgstr "" +msgstr "Hoàn thành" -#: src/pages/build/BuildDetail.tsx:496 +#: src/pages/build/BuildDetail.tsx:473 msgid "Build Order Actions" -msgstr "" +msgstr "Thao tác đơn đặt bản dựng" -#: src/pages/build/BuildDetail.tsx:502 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:432 -#: src/pages/sales/ReturnOrderDetail.tsx:433 -#: src/pages/sales/SalesOrderDetail.tsx:474 +#: src/pages/build/BuildDetail.tsx:478 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:429 +#: src/pages/sales/ReturnOrderDetail.tsx:428 +#: src/pages/sales/SalesOrderDetail.tsx:469 msgid "Edit order" -msgstr "" +msgstr "Chỉnh sửa đơn hàng" -#: src/pages/build/BuildDetail.tsx:506 +#: src/pages/build/BuildDetail.tsx:482 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:437 +#: src/pages/sales/ReturnOrderDetail.tsx:434 +#: src/pages/sales/SalesOrderDetail.tsx:474 +msgid "Duplicate order" +msgstr "Nhân bản đơn hàng" + +#: src/pages/build/BuildDetail.tsx:486 #: src/pages/purchasing/PurchaseOrderDetail.tsx:440 #: src/pages/sales/ReturnOrderDetail.tsx:439 -#: src/pages/sales/SalesOrderDetail.tsx:479 -msgid "Duplicate order" -msgstr "" +#: src/pages/sales/SalesOrderDetail.tsx:477 +msgid "Hold order" +msgstr "Giữ đơn hàng" -#: src/pages/build/BuildDetail.tsx:510 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:443 +#: src/pages/build/BuildDetail.tsx:491 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:445 #: src/pages/sales/ReturnOrderDetail.tsx:444 #: src/pages/sales/SalesOrderDetail.tsx:482 -msgid "Hold order" -msgstr "" - -#: src/pages/build/BuildDetail.tsx:515 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:448 -#: src/pages/sales/ReturnOrderDetail.tsx:449 -#: src/pages/sales/SalesOrderDetail.tsx:487 msgid "Cancel order" -msgstr "" +msgstr "Hủy đơn hàng" #: src/pages/build/BuildIndex.tsx:23 #~ msgid "Build order created" @@ -4295,57 +5040,61 @@ msgstr "" #~ msgid "New Build Order" #~ msgstr "New Build Order" -#: src/pages/company/CompanyDetail.tsx:104 +#: src/pages/company/CompanyDetail.tsx:95 +msgid "Website" +msgstr "Trang web" + +#: src/pages/company/CompanyDetail.tsx:103 msgid "Phone Number" -msgstr "" +msgstr "Số điện thoại" -#: src/pages/company/CompanyDetail.tsx:111 +#: src/pages/company/CompanyDetail.tsx:110 msgid "Email Address" -msgstr "" +msgstr "Địa chỉ email" -#: src/pages/company/CompanyDetail.tsx:121 +#: src/pages/company/CompanyDetail.tsx:120 msgid "Default Currency" -msgstr "" +msgstr "Tiền tệ mặc định" -#: src/pages/company/CompanyDetail.tsx:126 +#: src/pages/company/CompanyDetail.tsx:125 #: src/pages/company/SupplierDetail.tsx:8 -#: src/pages/company/SupplierPartDetail.tsx:120 -#: src/pages/company/SupplierPartDetail.tsx:206 -#: src/pages/company/SupplierPartDetail.tsx:351 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:136 -#: src/tables/company/CompanyTable.tsx:100 +#: src/pages/company/SupplierPartDetail.tsx:125 +#: src/pages/company/SupplierPartDetail.tsx:218 +#: src/pages/company/SupplierPartDetail.tsx:340 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:130 +#: src/tables/company/CompanyTable.tsx:101 #: src/tables/part/PartPurchaseOrdersTable.tsx:42 -#: src/tables/purchasing/PurchaseOrderTable.tsx:88 +#: src/tables/purchasing/PurchaseOrderTable.tsx:89 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:36 msgid "Supplier" msgstr "Nhà cung cấp" -#: src/pages/company/CompanyDetail.tsx:132 +#: src/pages/company/CompanyDetail.tsx:131 #: src/pages/company/ManufacturerDetail.tsx:8 -#: src/pages/company/ManufacturerPartDetail.tsx:101 -#: src/pages/company/ManufacturerPartDetail.tsx:267 -#: src/pages/company/SupplierPartDetail.tsx:135 -#: src/tables/company/CompanyTable.tsx:105 +#: src/pages/company/ManufacturerPartDetail.tsx:100 +#: src/pages/company/ManufacturerPartDetail.tsx:262 +#: src/pages/company/SupplierPartDetail.tsx:147 +#: src/tables/company/CompanyTable.tsx:106 msgid "Manufacturer" msgstr "Nhà sản xuất" -#: src/pages/company/CompanyDetail.tsx:138 +#: src/pages/company/CompanyDetail.tsx:137 #: src/pages/company/CustomerDetail.tsx:8 -#: src/pages/part/pricing/SaleHistoryPanel.tsx:29 -#: src/pages/sales/ReturnOrderDetail.tsx:109 -#: src/pages/sales/SalesOrderDetail.tsx:115 -#: src/pages/stock/StockDetail.tsx:230 -#: src/tables/company/CompanyTable.tsx:110 -#: src/tables/sales/ReturnOrderTable.tsx:78 -#: src/tables/sales/SalesOrderTable.tsx:108 -#: src/tables/stock/StockTrackingTable.tsx:140 +#: src/pages/part/pricing/SaleHistoryPanel.tsx:31 +#: src/pages/sales/ReturnOrderDetail.tsx:101 +#: src/pages/sales/SalesOrderDetail.tsx:110 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:100 +#: src/pages/stock/StockDetail.tsx:271 +#: src/tables/company/CompanyTable.tsx:111 +#: src/tables/sales/ReturnOrderTable.tsx:97 +#: src/tables/sales/SalesOrderTable.tsx:121 +#: src/tables/stock/StockTrackingTable.tsx:144 msgid "Customer" -msgstr "" +msgstr "Khách hàng" #: src/pages/company/CompanyDetail.tsx:172 -#: src/tables/stock/StockTrackingTable.tsx:183 -msgid "Details" -msgstr "Chi tiết" +msgid "Company Details" +msgstr "" #: src/pages/company/CompanyDetail.tsx:175 #~ msgid "Edit company" @@ -4353,747 +5102,874 @@ msgstr "Chi tiết" #: src/pages/company/CompanyDetail.tsx:178 msgid "Manufactured Parts" -msgstr "" +msgstr "Nguyên liệu nhà sản xuất" #: src/pages/company/CompanyDetail.tsx:187 msgid "Supplied Parts" -msgstr "" +msgstr "Nguyên liệu nhà cung cấp" #: src/pages/company/CompanyDetail.tsx:189 #~ msgid "Delete company" #~ msgstr "Delete company" -#: src/pages/company/CompanyDetail.tsx:232 +#: src/pages/company/CompanyDetail.tsx:234 msgid "Assigned Stock" -msgstr "" +msgstr "Kho đã được giao" -#: src/pages/company/CompanyDetail.tsx:290 -#: src/tables/company/CompanyTable.tsx:86 +#: src/pages/company/CompanyDetail.tsx:273 +#: src/tables/company/CompanyTable.tsx:87 msgid "Edit Company" msgstr "Sửa doanh nghiệp" -#: src/pages/company/CompanyDetail.tsx:298 +#: src/pages/company/CompanyDetail.tsx:281 msgid "Delete Company" -msgstr "" +msgstr "Xóa doanh nghiệp" -#: src/pages/company/CompanyDetail.tsx:306 +#: src/pages/company/CompanyDetail.tsx:289 msgid "Company Actions" -msgstr "" +msgstr "Chức năng doanh nghiệp" -#: src/pages/company/ManufacturerPartDetail.tsx:76 -#: src/pages/company/SupplierPartDetail.tsx:89 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:128 +#: src/pages/company/ManufacturerPartDetail.tsx:74 +#: src/pages/company/SupplierPartDetail.tsx:84 msgid "Internal Part" -msgstr "" +msgstr "Nguyên liệu nội bộ" -#: src/pages/company/ManufacturerPartDetail.tsx:91 -#: src/pages/company/SupplierPartDetail.tsx:103 -msgid "External Link" -msgstr "" - -#: src/pages/company/ManufacturerPartDetail.tsx:109 -#: src/pages/company/SupplierPartDetail.tsx:144 -#: src/tables/purchasing/ManufacturerPartTable.tsx:56 +#: src/pages/company/ManufacturerPartDetail.tsx:108 +#: src/pages/company/SupplierPartDetail.tsx:156 +#: src/tables/purchasing/ManufacturerPartTable.tsx:58 msgid "Manufacturer Part Number" -msgstr "" +msgstr "Mã số nguyên liệu" -#: src/pages/company/ManufacturerPartDetail.tsx:138 +#: src/pages/company/ManufacturerPartDetail.tsx:125 +#: src/pages/company/SupplierPartDetail.tsx:108 +msgid "External Link" +msgstr "Liên kết Ngoài" + +#: src/pages/company/ManufacturerPartDetail.tsx:146 +#: src/pages/company/SupplierPartDetail.tsx:215 +#: src/pages/part/PartDetail.tsx:576 +msgid "Part Details" +msgstr "Chi tiết" + +#: src/pages/company/ManufacturerPartDetail.tsx:149 msgid "Manufacturer Details" -msgstr "" +msgstr "Chi tiết" -#: src/pages/company/ManufacturerPartDetail.tsx:147 +#: src/pages/company/ManufacturerPartDetail.tsx:158 msgid "Manufacturer Part Details" -msgstr "" +msgstr "Chi tiết nguyên liệu" -#: src/pages/company/ManufacturerPartDetail.tsx:153 -#: src/pages/part/PartDetail.tsx:532 +#: src/pages/company/ManufacturerPartDetail.tsx:164 +#: src/pages/part/PartDetail.tsx:582 msgid "Parameters" msgstr "Thông số" -#: src/pages/company/ManufacturerPartDetail.tsx:165 -#: src/pages/part/PartDetail.tsx:649 +#: src/pages/company/ManufacturerPartDetail.tsx:176 +#: src/pages/part/PartDetail.tsx:669 #: src/pages/purchasing/PurchasingIndex.tsx:31 msgid "Suppliers" msgstr "Nhà cung cấp" -#: src/pages/company/ManufacturerPartDetail.tsx:208 -#: src/tables/purchasing/ManufacturerPartTable.tsx:84 +#: src/pages/company/ManufacturerPartDetail.tsx:204 +#: src/tables/purchasing/ManufacturerPartTable.tsx:86 msgid "Edit Manufacturer Part" -msgstr "" +msgstr "Sửa" -#: src/pages/company/ManufacturerPartDetail.tsx:215 -#: src/tables/purchasing/ManufacturerPartTable.tsx:72 -#: src/tables/purchasing/ManufacturerPartTable.tsx:103 +#: src/pages/company/ManufacturerPartDetail.tsx:211 +#: src/tables/purchasing/ManufacturerPartTable.tsx:74 +#: src/tables/purchasing/ManufacturerPartTable.tsx:106 msgid "Add Manufacturer Part" -msgstr "" +msgstr "Thêm" -#: src/pages/company/ManufacturerPartDetail.tsx:227 -#: src/tables/purchasing/ManufacturerPartTable.tsx:92 +#: src/pages/company/ManufacturerPartDetail.tsx:223 +#: src/tables/purchasing/ManufacturerPartTable.tsx:94 msgid "Delete Manufacturer Part" -msgstr "" +msgstr "Xoá" -#: src/pages/company/ManufacturerPartDetail.tsx:240 +#: src/pages/company/ManufacturerPartDetail.tsx:236 msgid "Manufacturer Part Actions" -msgstr "" +msgstr "Thao tác" -#: src/pages/company/ManufacturerPartDetail.tsx:281 +#: src/pages/company/ManufacturerPartDetail.tsx:276 msgid "ManufacturerPart" -msgstr "" +msgstr "Nguyên liệu" -#: src/pages/company/SupplierPartDetail.tsx:163 -#: src/tables/part/PartPurchaseOrdersTable.tsx:71 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:156 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:197 -#: src/tables/purchasing/SupplierPartTable.tsx:131 +#: src/pages/company/SupplierPartDetail.tsx:99 +msgid "Part Description" +msgstr "Mô tả sản phẩm" + +#: src/pages/company/SupplierPartDetail.tsx:175 +#: src/tables/part/PartPurchaseOrdersTable.tsx:72 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:162 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:203 +#: src/tables/purchasing/SupplierPartTable.tsx:133 msgid "Pack Quantity" msgstr "Số lượng gói" -#: src/pages/company/SupplierPartDetail.tsx:174 +#: src/pages/company/SupplierPartDetail.tsx:186 msgid "Supplier Availability" -msgstr "" +msgstr "Khả dụng" -#: src/pages/company/SupplierPartDetail.tsx:181 +#: src/pages/company/SupplierPartDetail.tsx:193 msgid "Availability Updated" -msgstr "" +msgstr "Đã cập nhật" -#: src/pages/company/SupplierPartDetail.tsx:208 +#: src/pages/company/SupplierPartDetail.tsx:220 msgid "Availability" -msgstr "" +msgstr "Khả dụng" -#: src/pages/company/SupplierPartDetail.tsx:217 +#: src/pages/company/SupplierPartDetail.tsx:229 msgid "Supplier Part Details" -msgstr "" +msgstr "Chi tiết" -#: src/pages/company/SupplierPartDetail.tsx:223 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:296 +#: src/pages/company/SupplierPartDetail.tsx:235 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:320 msgid "Received Stock" -msgstr "" +msgstr "Kho đã nhận hàng" -#: src/pages/company/SupplierPartDetail.tsx:247 -#: src/pages/part/PartPricingPanel.tsx:111 -#: src/pages/part/pricing/PricingOverviewPanel.tsx:121 +#: src/pages/company/SupplierPartDetail.tsx:259 +#: src/pages/part/PartPricingPanel.tsx:116 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:195 msgid "Supplier Pricing" -msgstr "" +msgstr "Giá nhà cung cấp" -#: src/pages/company/SupplierPartDetail.tsx:294 +#: src/pages/company/SupplierPartDetail.tsx:284 msgid "Supplier Part Actions" -msgstr "" +msgstr "Thao tác" -#: src/pages/company/SupplierPartDetail.tsx:319 -#: src/tables/purchasing/SupplierPartTable.tsx:210 +#: src/pages/company/SupplierPartDetail.tsx:308 +#: src/tables/purchasing/SupplierPartTable.tsx:213 msgid "Edit Supplier Part" msgstr "Sửa sản phẩm nhà cung cấp" -#: src/pages/company/SupplierPartDetail.tsx:327 -#: src/tables/purchasing/SupplierPartTable.tsx:218 +#: src/pages/company/SupplierPartDetail.tsx:316 +#: src/tables/purchasing/SupplierPartTable.tsx:221 msgid "Delete Supplier Part" -msgstr "" +msgstr "Xoá" -#: src/pages/company/SupplierPartDetail.tsx:335 -#: src/tables/purchasing/SupplierPartTable.tsx:163 +#: src/pages/company/SupplierPartDetail.tsx:324 +#: src/tables/purchasing/SupplierPartTable.tsx:165 msgid "Add Supplier Part" msgstr "Thêm sản phẩm nhà cung cấp" #: src/pages/part/CategoryDetail.tsx:93 -#: src/pages/stock/LocationDetail.tsx:101 -#: src/tables/settings/ErrorTable.tsx:36 +#: src/pages/stock/LocationDetail.tsx:95 +#: src/tables/settings/ErrorTable.tsx:63 +#: src/tables/settings/ErrorTable.tsx:108 msgid "Path" msgstr "Đường dẫn" #: src/pages/part/CategoryDetail.tsx:109 msgid "Parent Category" -msgstr "" +msgstr "Danh mục cha" -#: src/pages/part/CategoryDetail.tsx:126 +#: src/pages/part/CategoryDetail.tsx:132 msgid "Subcategories" -msgstr "" +msgstr "Phụ mục" -#: src/pages/part/CategoryDetail.tsx:133 -#: src/pages/stock/LocationDetail.tsx:141 -#: src/tables/part/PartCategoryTable.tsx:73 +#: src/pages/part/CategoryDetail.tsx:139 +#: src/pages/stock/LocationDetail.tsx:135 +#: src/tables/part/PartCategoryTable.tsx:85 #: src/tables/stock/StockLocationTable.tsx:49 msgid "Structural" msgstr "Cấu trúc" -#: src/pages/part/CategoryDetail.tsx:139 +#: src/pages/part/CategoryDetail.tsx:145 msgid "Parent default location" -msgstr "" +msgstr "Vị trí mặc định" -#: src/pages/part/CategoryDetail.tsx:146 +#: src/pages/part/CategoryDetail.tsx:152 msgid "Default location" -msgstr "" +msgstr "Vị trí mặc định" -#: src/pages/part/CategoryDetail.tsx:157 +#: src/pages/part/CategoryDetail.tsx:163 msgid "Top level part category" -msgstr "" +msgstr "Danh mục top" -#: src/pages/part/CategoryDetail.tsx:167 -#: src/pages/part/CategoryDetail.tsx:221 -#: src/tables/part/PartCategoryTable.tsx:102 -msgid "Edit Part Category" -msgstr "" - -#: src/pages/part/CategoryDetail.tsx:180 -#: src/pages/stock/LocationDetail.tsx:233 -msgid "Delete items" -msgstr "" - -#: src/pages/part/CategoryDetail.tsx:188 +#: src/pages/part/CategoryDetail.tsx:173 #: src/pages/part/CategoryDetail.tsx:226 +#: src/tables/part/PartCategoryTable.tsx:118 +msgid "Edit Part Category" +msgstr "Sửa" + +#: src/pages/part/CategoryDetail.tsx:186 +#: src/pages/stock/LocationDetail.tsx:227 +msgid "Delete items" +msgstr "Xoá" + +#: src/pages/part/CategoryDetail.tsx:194 +#: src/pages/part/CategoryDetail.tsx:231 msgid "Delete Part Category" -msgstr "" - -#: src/pages/part/CategoryDetail.tsx:191 -msgid "Parts Action" -msgstr "" - -#: src/pages/part/CategoryDetail.tsx:192 -msgid "Action for parts in this category" -msgstr "" +msgstr "Xoá" #: src/pages/part/CategoryDetail.tsx:197 -msgid "Child Categories Action" -msgstr "" +msgid "Parts Action" +msgstr "Thao tác" #: src/pages/part/CategoryDetail.tsx:198 +msgid "Action for parts in this category" +msgstr "Thao tác trong danh mục" + +#: src/pages/part/CategoryDetail.tsx:203 +msgid "Child Categories Action" +msgstr "Thao tác" + +#: src/pages/part/CategoryDetail.tsx:204 msgid "Action for child categories in this category" -msgstr "" +msgstr "Thao tác" -#: src/pages/part/CategoryDetail.tsx:216 +#: src/pages/part/CategoryDetail.tsx:222 msgid "Category Actions" -msgstr "" +msgstr "Thao tác" -#: src/pages/part/CategoryDetail.tsx:238 +#: src/pages/part/CategoryDetail.tsx:243 msgid "Category Details" -msgstr "" +msgstr "Chi tiết" -#: src/pages/part/PartDetail.tsx:163 -msgid "Variant of" -msgstr "" +#: src/pages/part/PartAllocationPanel.tsx:23 +#: src/pages/stock/StockDetail.tsx:443 +#: src/tables/part/PartTable.tsx:99 +msgid "Build Order Allocations" +msgstr "Phân bổ đơn hàng bản dựng" -#: src/pages/part/PartDetail.tsx:170 -msgid "Revision of" -msgstr "" - -#: src/pages/part/PartDetail.tsx:177 -#: src/tables/stock/StockItemTable.tsx:58 -msgid "Revision" -msgstr "" +#: src/pages/part/PartAllocationPanel.tsx:40 +#: src/pages/stock/StockDetail.tsx:458 +#: src/tables/part/PartTable.tsx:108 +msgid "Sales Order Allocations" +msgstr "Phân bổ đơn hàng bán" #: src/pages/part/PartDetail.tsx:184 +msgid "Variant of" +msgstr "Biến thể của" + +#: src/pages/part/PartDetail.tsx:191 +msgid "Revision of" +msgstr "Sửa đổi của" + +#: src/pages/part/PartDetail.tsx:198 +#: src/tables/stock/StockItemTable.tsx:59 +msgid "Revision" +msgstr "Sửa đổi" + +#: src/pages/part/PartDetail.tsx:205 #: src/tables/notifications/NotificationsTable.tsx:31 #: src/tables/part/PartCategoryTemplateTable.tsx:67 msgid "Category" msgstr "Danh mục" -#: src/pages/part/PartDetail.tsx:190 +#: src/pages/part/PartDetail.tsx:211 msgid "Default Location" -msgstr "" +msgstr "Vị trí mặc định" -#: src/pages/part/PartDetail.tsx:197 +#: src/pages/part/PartDetail.tsx:218 msgid "Category Default Location" -msgstr "" +msgstr "Vị trí danh mục mặc định" -#: src/pages/part/PartDetail.tsx:204 +#: src/pages/part/PartDetail.tsx:225 #: src/tables/purchasing/ManufacturerPartParameterTable.tsx:44 msgid "Units" msgstr "Đơn vị" -#: src/pages/part/PartDetail.tsx:211 -#: src/tables/settings/PendingTasksTable.tsx:42 +#: src/pages/part/PartDetail.tsx:232 +#: src/tables/settings/PendingTasksTable.tsx:46 msgid "Keywords" -msgstr "" - -#: src/pages/part/PartDetail.tsx:218 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:186 -#: src/pages/sales/ReturnOrderDetail.tsx:165 -#: src/pages/sales/SalesOrderDetail.tsx:174 -msgid "Link" -msgstr "Liên kết" - -#: src/pages/part/PartDetail.tsx:236 -#: src/tables/bom/BomTable.tsx:320 -#: src/tables/build/BuildLineTable.tsx:155 -#: src/tables/part/PartTable.tsx:288 -#: src/tables/sales/SalesOrderLineItemTable.tsx:103 -msgid "Available Stock" -msgstr "" - -#: src/pages/part/PartDetail.tsx:243 -msgid "Variant Stock" -msgstr "" - -#: src/pages/part/PartDetail.tsx:251 -msgid "Minimum Stock" -msgstr "" +msgstr "Từ khóa" #: src/pages/part/PartDetail.tsx:257 +#: src/tables/bom/BomTable.tsx:320 +#: src/tables/build/BuildLineTable.tsx:286 +#: src/tables/part/PartTable.tsx:288 +#: src/tables/sales/SalesOrderLineItemTable.tsx:111 +msgid "Available Stock" +msgstr "Số hàng tồn" + +#: src/pages/part/PartDetail.tsx:264 +msgid "Variant Stock" +msgstr "Biến thể kho" + +#: src/pages/part/PartDetail.tsx:272 +msgid "Minimum Stock" +msgstr "Kho tối thiểu" + +#: src/pages/part/PartDetail.tsx:278 #: src/tables/bom/BomTable.tsx:237 -#: src/tables/build/BuildLineTable.tsx:117 -#: src/tables/sales/SalesOrderLineItemTable.tsx:141 +#: src/tables/build/BuildLineTable.tsx:248 +#: src/tables/sales/SalesOrderLineItemTable.tsx:149 msgid "On order" -msgstr "" +msgstr "Đang đặt hàng" -#: src/pages/part/PartDetail.tsx:266 +#: src/pages/part/PartDetail.tsx:285 +msgid "Required for Orders" +msgstr "Yêu cầu cho đơn hàng" + +#: src/pages/part/PartDetail.tsx:294 msgid "Allocated to Build Orders" -msgstr "" +msgstr "Đã phân bổ đơn hàng" -#: src/pages/part/PartDetail.tsx:274 +#: src/pages/part/PartDetail.tsx:305 msgid "Allocated to Sales Orders" -msgstr "" - -#: src/pages/part/PartDetail.tsx:281 -#: src/tables/bom/BomTable.tsx:261 -#: src/tables/bom/BomTable.tsx:293 -msgid "Can Build" -msgstr "" - -#: src/pages/part/PartDetail.tsx:288 -#: src/tables/bom/BomTable.tsx:245 -#: src/tables/part/PartTable.tsx:92 -msgid "Building" -msgstr "" - -#: src/pages/part/PartDetail.tsx:302 -#: src/pages/part/PartDetail.tsx:873 -#: src/tables/part/ParametricPartTable.tsx:228 -#: src/tables/part/PartTable.tsx:184 -msgid "Locked" -msgstr "" - -#: src/pages/part/PartDetail.tsx:308 -msgid "Template Part" -msgstr "" +msgstr "Đã phân bổ đơn hàng" #: src/pages/part/PartDetail.tsx:310 #~ msgid "Edit part" #~ msgstr "Edit part" -#: src/pages/part/PartDetail.tsx:313 -#: src/tables/bom/BomTable.tsx:315 -msgid "Assembled Part" -msgstr "" +#: src/pages/part/PartDetail.tsx:315 +#: src/tables/bom/BomTable.tsx:261 +#: src/tables/bom/BomTable.tsx:293 +msgid "Can Build" +msgstr "Có thể dựng" -#: src/pages/part/PartDetail.tsx:318 -msgid "Component Part" -msgstr "" +#: src/pages/part/PartDetail.tsx:322 +#: src/pages/part/PartDetail.tsx:905 +#: src/pages/stock/StockDetail.tsx:766 +#: src/tables/build/BuildOrderTestTable.tsx:220 +#: src/tables/stock/StockItemTable.tsx:334 +msgid "In Production" +msgstr "Đang sản xuất" #: src/pages/part/PartDetail.tsx:322 #~ msgid "Duplicate part" #~ msgstr "Duplicate part" -#: src/pages/part/PartDetail.tsx:323 -#: src/tables/bom/BomTable.tsx:305 -msgid "Testable Part" -msgstr "" - #: src/pages/part/PartDetail.tsx:327 #~ msgid "Delete part" #~ msgstr "Delete part" -#: src/pages/part/PartDetail.tsx:329 -#: src/tables/bom/BomTable.tsx:310 -msgid "Trackable Part" -msgstr "" +#: src/pages/part/PartDetail.tsx:336 +#: src/tables/part/ParametricPartTable.tsx:228 +#: src/tables/part/PartTable.tsx:184 +msgid "Locked" +msgstr "Khóa" -#: src/pages/part/PartDetail.tsx:334 -msgid "Purchaseable Part" -msgstr "" +#: src/pages/part/PartDetail.tsx:342 +msgid "Template Part" +msgstr "Nguyên liệu mẫu" -#: src/pages/part/PartDetail.tsx:339 -msgid "Saleable Part" -msgstr "" - -#: src/pages/part/PartDetail.tsx:344 -msgid "Virtual Part" -msgstr "" +#: src/pages/part/PartDetail.tsx:347 +#: src/tables/bom/BomTable.tsx:315 +msgid "Assembled Part" +msgstr "Đã lắp ráp" #: src/pages/part/PartDetail.tsx:352 -#: src/tables/ColumnRenderers.tsx:220 -msgid "Creation Date" -msgstr "" +msgid "Component Part" +msgstr "Thành phần" #: src/pages/part/PartDetail.tsx:357 +#: src/tables/bom/BomTable.tsx:305 +msgid "Testable Part" +msgstr "Có thể kiểm" + +#: src/pages/part/PartDetail.tsx:363 +#: src/tables/bom/BomTable.tsx:310 +msgid "Trackable Part" +msgstr "Có thể theo dõi" + +#: src/pages/part/PartDetail.tsx:368 +msgid "Purchaseable Part" +msgstr "Có thể đặt" + +#: src/pages/part/PartDetail.tsx:374 +msgid "Saleable Part" +msgstr "Có thể bán" + +#: src/pages/part/PartDetail.tsx:379 +msgid "Virtual Part" +msgstr "Nguyên liệu ảo" + +#: src/pages/part/PartDetail.tsx:393 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:215 +#: src/pages/sales/ReturnOrderDetail.tsx:185 +#: src/pages/sales/SalesOrderDetail.tsx:197 +#: src/tables/ColumnRenderers.tsx:234 +msgid "Creation Date" +msgstr "Ngày tạo" + +#: src/pages/part/PartDetail.tsx:398 msgid "Created By" -msgstr "" +msgstr "Tạo bởi" -#: src/pages/part/PartDetail.tsx:372 +#: src/pages/part/PartDetail.tsx:413 msgid "Default Supplier" -msgstr "" +msgstr "Nhà cung ứng mặc định" -#: src/pages/part/PartDetail.tsx:383 -#: src/pages/part/pricing/BomPricingPanel.tsx:79 +#: src/pages/part/PartDetail.tsx:424 +#: src/pages/part/pricing/BomPricingPanel.tsx:113 #: src/pages/part/pricing/VariantPricingPanel.tsx:95 #: src/tables/part/PartTable.tsx:161 msgid "Price Range" msgstr "Khoảng giá" -#: src/pages/part/PartDetail.tsx:423 -#: src/pages/stock/StockDetail.tsx:135 -msgid "Last Stocktake" -msgstr "" - #: src/pages/part/PartDetail.tsx:462 +msgid "Latest Serial Number" +msgstr "" + +#: src/pages/part/PartDetail.tsx:472 +#: src/pages/stock/StockDetail.tsx:151 +msgid "Last Stocktake" +msgstr "Kiểm kê cuối cùng" + +#: src/pages/part/PartDetail.tsx:511 msgid "Stocktake By" -msgstr "" +msgstr "Kiểm kê bởi" -#: src/pages/part/PartDetail.tsx:526 -msgid "Part Details" -msgstr "" - -#: src/pages/part/PartDetail.tsx:557 +#: src/pages/part/PartDetail.tsx:611 msgid "Variants" msgstr "Biến thể" -#: src/pages/part/PartDetail.tsx:564 -#: src/pages/stock/StockDetail.tsx:307 +#: src/pages/part/PartDetail.tsx:618 +#: src/pages/stock/StockDetail.tsx:430 msgid "Allocations" msgstr "Phân bổ" -#: src/pages/part/PartDetail.tsx:575 -#: src/pages/stock/StockDetail.tsx:318 -#: src/tables/part/PartTable.tsx:99 -msgid "Build Order Allocations" -msgstr "Phân bổ đơn hàng bản dựng" - -#: src/pages/part/PartDetail.tsx:590 -#: src/pages/stock/StockDetail.tsx:333 -#: src/tables/part/PartTable.tsx:108 -msgid "Sales Order Allocations" -msgstr "Phân bổ đơn hàng bán" - -#: src/pages/part/PartDetail.tsx:607 +#: src/pages/part/PartDetail.tsx:625 msgid "Bill of Materials" msgstr "Hóa đơn nguyên vật liệu" -#: src/pages/part/PartDetail.tsx:623 +#: src/pages/part/PartDetail.tsx:643 msgid "Used In" msgstr "Sử dụng trong" -#: src/pages/part/PartDetail.tsx:630 +#: src/pages/part/PartDetail.tsx:650 msgid "Part Pricing" -msgstr "" +msgstr "Giá" -#: src/pages/part/PartDetail.tsx:636 +#: src/pages/part/PartDetail.tsx:656 #: src/pages/purchasing/PurchasingIndex.tsx:42 msgid "Manufacturers" -msgstr "" +msgstr "Nhà sản xuất" -#: src/pages/part/PartDetail.tsx:676 +#: src/pages/part/PartDetail.tsx:722 msgid "Scheduling" -msgstr "" +msgstr "Lập lịch" -#: src/pages/part/PartDetail.tsx:688 +#: src/pages/part/PartDetail.tsx:729 msgid "Test Templates" msgstr "Mẫu thử nghiệm" -#: src/pages/part/PartDetail.tsx:715 +#: src/pages/part/PartDetail.tsx:756 msgid "Related Parts" msgstr "Phụ kiện liên quan" -#: src/pages/part/PartDetail.tsx:849 -#: src/pages/stock/StockDetail.tsx:156 -#: src/pages/stock/StockDetail.tsx:593 -#: src/tables/build/BuildLineTable.tsx:48 +#: src/pages/part/PartDetail.tsx:881 +#: src/pages/stock/StockDetail.tsx:172 +#: src/pages/stock/StockDetail.tsx:783 +#: src/tables/build/BuildLineTable.tsx:179 #: src/tables/part/PartTable.tsx:117 -#: src/tables/stock/StockItemTable.tsx:177 -#: src/tables/stock/StockItemTable.tsx:310 +#: src/tables/stock/StockItemTable.tsx:166 +#: src/tables/stock/StockItemTable.tsx:314 msgid "Available" msgstr "Có sẵn" -#: src/pages/part/PartDetail.tsx:855 +#: src/pages/part/PartDetail.tsx:887 msgid "No Stock" -msgstr "" +msgstr "Hết hàng" -#: src/pages/part/PartDetail.tsx:861 +#: src/pages/part/PartDetail.tsx:893 +#: src/tables/part/PartTestTemplateTable.tsx:106 +#: src/tables/stock/StockItemTestResultTable.tsx:383 +msgid "Required" +msgstr "Bắt buộc" + +#: src/pages/part/PartDetail.tsx:899 #: src/tables/bom/BomTable.tsx:325 #: src/tables/part/PartTable.tsx:86 msgid "On Order" msgstr "On Order" -#: src/pages/part/PartDetail.tsx:867 -#: src/pages/stock/StockDetail.tsx:576 -#: src/tables/build/BuildOrderTestTable.tsx:219 -#: src/tables/stock/StockItemTable.tsx:330 -msgid "In Production" -msgstr "" - -#: src/pages/part/PartDetail.tsx:892 +#: src/pages/part/PartDetail.tsx:924 msgid "Edit Part" msgstr "Sửa phụ kiện" -#: src/pages/part/PartDetail.tsx:927 +#: src/pages/part/PartDetail.tsx:959 #: src/tables/part/PartTable.tsx:331 -#: src/tables/part/PartTable.tsx:342 +#: src/tables/part/PartTable.tsx:343 msgid "Add Part" -msgstr "" +msgstr "Thêm nguyên liệu" -#: src/pages/part/PartDetail.tsx:941 +#: src/pages/part/PartDetail.tsx:973 msgid "Delete Part" -msgstr "" +msgstr "Xoá nguyên liệu" -#: src/pages/part/PartDetail.tsx:950 +#: src/pages/part/PartDetail.tsx:982 msgid "Deleting this part cannot be reversed" -msgstr "" +msgstr "Không thể khôi phục việc xóa nguyên liệu này" -#: src/pages/part/PartDetail.tsx:999 -#: src/pages/stock/LocationDetail.tsx:324 -#: src/tables/stock/StockItemTable.tsx:444 +#: src/pages/part/PartDetail.tsx:1021 +#: src/pages/stock/LocationDetail.tsx:310 +#: src/tables/stock/StockItemTable.tsx:449 msgid "Stock Actions" -msgstr "" +msgstr "Thao tác kho" -#: src/pages/part/PartDetail.tsx:1007 +#: src/pages/part/PartDetail.tsx:1029 msgid "Count part stock" -msgstr "" +msgstr "Đếm kho nguyên liệu" -#: src/pages/part/PartDetail.tsx:1018 +#: src/pages/part/PartDetail.tsx:1040 msgid "Transfer part stock" -msgstr "" +msgstr "Chuyển kho nguyên liệu" -#: src/pages/part/PartDetail.tsx:1027 +#: src/pages/part/PartDetail.tsx:1049 msgid "Part Actions" -msgstr "" +msgstr "Thao tác" -#: src/pages/part/PartDetail.tsx:1087 +#: src/pages/part/PartDetail.tsx:1113 msgid "Select Part Revision" -msgstr "" +msgstr "Chọn lịch sử nguyên liệu" #: src/pages/part/PartIndex.tsx:29 #~ msgid "Categories" #~ msgstr "Categories" -#: src/pages/part/PartPricingPanel.tsx:68 +#: src/pages/part/PartPricingPanel.tsx:72 msgid "No pricing data found for this part." -msgstr "" +msgstr "Không tồn tại giá cho nguyên liệu này" -#: src/pages/part/PartPricingPanel.tsx:82 -#: src/pages/part/pricing/PricingOverviewPanel.tsx:190 +#: src/pages/part/PartPricingPanel.tsx:87 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:293 msgid "Pricing Overview" -msgstr "" +msgstr "Tóm lược định giá" -#: src/pages/part/PartPricingPanel.tsx:88 +#: src/pages/part/PartPricingPanel.tsx:93 msgid "Purchase History" -msgstr "" +msgstr "Lịch sử mua hàng" -#: src/pages/part/PartPricingPanel.tsx:102 -#: src/pages/part/pricing/PricingOverviewPanel.tsx:100 +#: src/pages/part/PartPricingPanel.tsx:107 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:174 msgid "Internal Pricing" -msgstr "" +msgstr "Định giá nội bộ" -#: src/pages/part/PartPricingPanel.tsx:120 -#: src/pages/part/pricing/PricingOverviewPanel.tsx:107 +#: src/pages/part/PartPricingPanel.tsx:125 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:181 msgid "BOM Pricing" -msgstr "" +msgstr "Giá BOM" -#: src/pages/part/PartPricingPanel.tsx:127 -#: src/pages/part/pricing/PricingOverviewPanel.tsx:128 +#: src/pages/part/PartPricingPanel.tsx:132 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:202 msgid "Variant Pricing" -msgstr "" +msgstr "Biến thể giá" -#: src/pages/part/PartPricingPanel.tsx:139 -#: src/pages/part/pricing/PricingOverviewPanel.tsx:135 +#: src/pages/part/PartPricingPanel.tsx:144 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:209 msgid "Sale Pricing" -msgstr "" +msgstr "Giá sale" -#: src/pages/part/PartPricingPanel.tsx:146 -#: src/pages/part/pricing/PricingOverviewPanel.tsx:142 +#: src/pages/part/PartPricingPanel.tsx:151 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:216 msgid "Sale History" +msgstr "Lịch sử sale" + +#: src/pages/part/PartSchedulingDetail.tsx:47 +#: src/pages/part/PartSchedulingDetail.tsx:299 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:156 +msgid "Maximum" +msgstr "Tối đa" + +#: src/pages/part/PartSchedulingDetail.tsx:50 +#: src/pages/part/PartSchedulingDetail.tsx:289 +msgid "Scheduled" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:58 -#: src/pages/part/pricing/BomPricingPanel.tsx:138 -#: src/tables/ColumnRenderers.tsx:262 +#: src/pages/part/PartSchedulingDetail.tsx:53 +#: src/pages/part/PartSchedulingDetail.tsx:294 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:144 +msgid "Minimum" +msgstr "Tối thiểu" + +#: src/pages/part/PartSchedulingDetail.tsx:68 +msgid "Order" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:92 +msgid "Quantity is speculative" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:101 +msgid "No date available for provided quantity" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:105 +msgid "Date is in the past" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:112 +msgid "Scheduled Quantity" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:240 +msgid "No information available" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:241 +msgid "There is no scheduling information available for the selected part" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:276 +msgid "Expected Quantity" +msgstr "" + +#: src/pages/part/PartStocktakeDetail.tsx:63 +#: src/tables/FilterSelectDrawer.tsx:167 +#: src/tables/FilterSelectDrawer.tsx:174 +#: src/tables/build/BuildOrderTestTable.tsx:135 +#: src/tables/purchasing/ManufacturerPartParameterTable.tsx:38 +#: src/tables/stock/StockItemTestResultTable.tsx:192 +msgid "Value" +msgstr "Giá trị" + +#: src/pages/part/PartStocktakeDetail.tsx:82 +msgid "Edit Stocktake Entry" +msgstr "" + +#: src/pages/part/PartStocktakeDetail.tsx:90 +msgid "Delete Stocktake Entry" +msgstr "" + +#: src/pages/part/PartStocktakeDetail.tsx:96 +#: src/tables/settings/StocktakeReportTable.tsx:69 +msgid "Generate Stocktake Report" +msgstr "" + +#: src/pages/part/PartStocktakeDetail.tsx:101 +#: src/tables/settings/StocktakeReportTable.tsx:71 +msgid "Stocktake report scheduled" +msgstr "" + +#: src/pages/part/PartStocktakeDetail.tsx:119 +#: src/pages/part/PartStocktakeDetail.tsx:235 +#: src/pages/stock/StockDetail.tsx:303 +#: src/tables/stock/StockItemTable.tsx:249 +msgid "Stock Value" +msgstr "" + +#: src/pages/part/PartStocktakeDetail.tsx:139 +#: src/tables/settings/StocktakeReportTable.tsx:77 +msgid "New Stocktake Report" +msgstr "" + +#: src/pages/part/PartStocktakeDetail.tsx:258 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:295 +msgid "Minimum Value" +msgstr "Giá trị tối thiểu" + +#: src/pages/part/PartStocktakeDetail.tsx:264 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:296 +msgid "Maximum Value" +msgstr "Giá trị tối đa" + +#: src/pages/part/pricing/BomPricingPanel.tsx:87 +#: src/pages/part/pricing/BomPricingPanel.tsx:177 +#: src/tables/ColumnRenderers.tsx:276 #: src/tables/bom/BomTable.tsx:185 #: src/tables/general/ExtraLineItemTable.tsx:64 -#: src/tables/purchasing/PurchaseOrderTable.tsx:112 -#: src/tables/sales/ReturnOrderTable.tsx:104 -#: src/tables/sales/SalesOrderLineItemTable.tsx:89 -#: src/tables/sales/SalesOrderTable.tsx:136 +#: src/tables/purchasing/PurchaseOrderTable.tsx:113 +#: src/tables/sales/ReturnOrderTable.tsx:127 +#: src/tables/sales/SalesOrderLineItemTable.tsx:97 +#: src/tables/sales/SalesOrderTable.tsx:149 msgid "Total Price" -msgstr "" +msgstr "Tổng tiền" -#: src/pages/part/pricing/BomPricingPanel.tsx:78 -#: src/pages/part/pricing/BomPricingPanel.tsx:102 +#: src/pages/part/pricing/BomPricingPanel.tsx:112 +#: src/pages/part/pricing/BomPricingPanel.tsx:141 #: src/tables/bom/UsedInTable.tsx:49 +#: src/tables/build/BuildLineTable.tsx:296 #: src/tables/part/PartTable.tsx:202 msgid "Component" msgstr "Thành phần" -#: src/pages/part/pricing/BomPricingPanel.tsx:81 -#: src/pages/part/pricing/VariantPricingPanel.tsx:37 -#: src/pages/part/pricing/VariantPricingPanel.tsx:97 -msgid "Minimum Price" -msgstr "" - -#: src/pages/part/pricing/BomPricingPanel.tsx:82 -#: src/pages/part/pricing/VariantPricingPanel.tsx:45 -#: src/pages/part/pricing/VariantPricingPanel.tsx:98 -msgid "Maximum Price" -msgstr "" - #: src/pages/part/pricing/BomPricingPanel.tsx:112 #~ msgid "Minimum Total Price" #~ msgstr "Minimum Total Price" +#: src/pages/part/pricing/BomPricingPanel.tsx:115 +#: src/pages/part/pricing/VariantPricingPanel.tsx:37 +#: src/pages/part/pricing/VariantPricingPanel.tsx:97 +msgid "Minimum Price" +msgstr "Giá thấp nhất" + +#: src/pages/part/pricing/BomPricingPanel.tsx:116 +#: src/pages/part/pricing/VariantPricingPanel.tsx:45 +#: src/pages/part/pricing/VariantPricingPanel.tsx:98 +msgid "Maximum Price" +msgstr "Giá cao nhất" + #: src/pages/part/pricing/BomPricingPanel.tsx:117 #~ msgid "Maximum Total Price" #~ msgstr "Maximum Total Price" -#: src/pages/part/pricing/BomPricingPanel.tsx:129 -#: src/pages/part/pricing/PriceBreakPanel.tsx:172 -#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:67 -#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:128 -#: src/pages/part/pricing/SupplierPricingPanel.tsx:62 +#: src/pages/part/pricing/BomPricingPanel.tsx:168 +#: src/pages/part/pricing/PriceBreakPanel.tsx:173 +#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:70 +#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:125 +#: src/pages/part/pricing/SupplierPricingPanel.tsx:66 +#: src/pages/stock/StockDetail.tsx:291 #: src/tables/bom/BomTable.tsx:176 #: src/tables/general/ExtraLineItemTable.tsx:56 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:223 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:225 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:92 +#: src/tables/stock/StockItemTable.tsx:239 msgid "Unit Price" msgstr "Đơn giá" -#: src/pages/part/pricing/BomPricingPanel.tsx:154 +#: src/pages/part/pricing/BomPricingPanel.tsx:193 #: src/pages/part/pricing/VariantPricingPanel.tsx:53 -#: src/tables/purchasing/SupplierPartTable.tsx:148 +#: src/tables/purchasing/SupplierPartTable.tsx:150 msgid "Updated" msgstr "Đã cập nhật" -#: src/pages/part/pricing/BomPricingPanel.tsx:219 +#: src/pages/part/pricing/BomPricingPanel.tsx:258 msgid "Pie Chart" -msgstr "" +msgstr "Biểu đồ tròn" -#: src/pages/part/pricing/BomPricingPanel.tsx:220 +#: src/pages/part/pricing/BomPricingPanel.tsx:259 msgid "Bar Chart" -msgstr "" +msgstr "Biểu đồ cột" #: src/pages/part/pricing/PriceBreakPanel.tsx:58 -#: src/pages/part/pricing/PriceBreakPanel.tsx:110 +#: src/pages/part/pricing/PriceBreakPanel.tsx:111 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:142 -#: src/tables/purchasing/SupplierPriceBreakTable.tsx:168 +#: src/tables/purchasing/SupplierPriceBreakTable.tsx:169 msgid "Add Price Break" -msgstr "" +msgstr "Thêm giảm giá" #: src/pages/part/pricing/PriceBreakPanel.tsx:71 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:153 msgid "Edit Price Break" -msgstr "" +msgstr "Sửa giảm giá" #: src/pages/part/pricing/PriceBreakPanel.tsx:81 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:161 msgid "Delete Price Break" -msgstr "" +msgstr "Xoá giảm giá" #: src/pages/part/pricing/PriceBreakPanel.tsx:95 msgid "Price Break" -msgstr "" +msgstr "Giảm giá" -#: src/pages/part/pricing/PriceBreakPanel.tsx:170 +#: src/pages/part/pricing/PriceBreakPanel.tsx:171 msgid "Price" +msgstr "Giá" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:68 +msgid "Refreshing pricing data" msgstr "" -#: src/pages/part/pricing/PricingOverviewPanel.tsx:51 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:88 +msgid "Pricing data updated" +msgstr "" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:95 +msgid "Failed to update pricing data" +msgstr "" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:104 +msgid "Edit Pricing" +msgstr "" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:125 msgid "Pricing Category" -msgstr "" +msgstr "Danh mục giá" -#: src/pages/part/pricing/PricingOverviewPanel.tsx:70 -msgid "Minimum" -msgstr "" - -#: src/pages/part/pricing/PricingOverviewPanel.tsx:82 -msgid "Maximum" -msgstr "" - -#: src/pages/part/pricing/PricingOverviewPanel.tsx:114 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:188 msgid "Purchase Pricing" -msgstr "" +msgstr "Giá mua" -#: src/pages/part/pricing/PricingOverviewPanel.tsx:149 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:223 msgid "Override Pricing" -msgstr "" +msgstr "Ghi đè giá" -#: src/pages/part/pricing/PricingOverviewPanel.tsx:156 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:230 msgid "Overall Pricing" -msgstr "" +msgstr "Giá tổng thể" -#: src/pages/part/pricing/PricingOverviewPanel.tsx:175 -#: src/pages/stock/StockDetail.tsx:129 -#: src/tables/stock/StockItemTable.tsx:240 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:249 +#: src/pages/stock/StockDetail.tsx:145 +#: src/tables/stock/StockItemTable.tsx:275 msgid "Last Updated" +msgstr "Cập nhật lần cuối" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:253 +msgid "Pricing Not Set" msgstr "" -#: src/pages/part/pricing/PricingOverviewPanel.tsx:192 -msgid "Minimum Value" +#: src/pages/part/pricing/PricingOverviewPanel.tsx:254 +msgid "Pricing data has not been calculated for this part" msgstr "" -#: src/pages/part/pricing/PricingOverviewPanel.tsx:193 -msgid "Maximum Value" +#: src/pages/part/pricing/PricingOverviewPanel.tsx:258 +msgid "Pricing Actions" +msgstr "" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:261 +msgid "Refresh" +msgstr "" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:262 +msgid "Refresh pricing data" +msgstr "" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:277 +msgid "Edit pricing data" msgstr "" #: src/pages/part/pricing/PricingPanel.tsx:24 msgid "No data available" -msgstr "" +msgstr "Không có dữ liệu khả dụng" #: src/pages/part/pricing/PricingPanel.tsx:65 msgid "No Data" -msgstr "" +msgstr "Không có dữ liệu" #: src/pages/part/pricing/PricingPanel.tsx:66 msgid "No pricing data available" -msgstr "" +msgstr "Chưa có thông tin giá" #: src/pages/part/pricing/PricingPanel.tsx:77 msgid "Loading pricing data" -msgstr "" - -#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:40 -#: src/pages/part/pricing/SaleHistoryPanel.tsx:36 -#: src/tables/ColumnRenderers.tsx:201 -#: src/tables/build/BuildOrderTestTable.tsx:150 -#: src/tables/plugin/PluginListTable.tsx:139 -msgid "Date" -msgstr "" +msgstr "Đang tải thông tin giá" #: src/pages/part/pricing/PurchaseHistoryPanel.tsx:47 msgid "Purchase Price" -msgstr "" +msgstr "Giá mua" -#: src/pages/part/pricing/SaleHistoryPanel.tsx:22 -msgid "Sale Order" -msgstr "" +#: src/pages/part/pricing/SaleHistoryPanel.tsx:24 +#~ msgid "Sale Order" +#~ msgstr "Sale Order" -#: src/pages/part/pricing/SaleHistoryPanel.tsx:42 -#: src/pages/part/pricing/SaleHistoryPanel.tsx:92 +#: src/pages/part/pricing/SaleHistoryPanel.tsx:44 +#: src/pages/part/pricing/SaleHistoryPanel.tsx:87 msgid "Sale Price" -msgstr "" +msgstr "Giá sale" -#: src/pages/part/pricing/SupplierPricingPanel.tsx:65 +#: src/pages/part/pricing/SupplierPricingPanel.tsx:69 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:83 msgid "Supplier Price" -msgstr "" +msgstr "Giá nhà cung cấp" #: src/pages/part/pricing/VariantPricingPanel.tsx:30 #: src/pages/part/pricing/VariantPricingPanel.tsx:94 msgid "Variant Part" -msgstr "" +msgstr "Biến thể nguyên liệu" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:93 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:87 msgid "Edit Purchase Order" -msgstr "" +msgstr "Sửa đơn mua" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:102 -#: src/tables/purchasing/PurchaseOrderTable.tsx:128 -#: src/tables/purchasing/PurchaseOrderTable.tsx:140 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:96 +#: src/tables/purchasing/PurchaseOrderTable.tsx:129 +#: src/tables/purchasing/PurchaseOrderTable.tsx:142 msgid "Add Purchase Order" -msgstr "" +msgstr "Thêm đơn mua" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:127 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:121 msgid "Supplier Reference" -msgstr "" +msgstr "Tham chiếu nhà cung cấp" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:158 -#: src/pages/sales/ReturnOrderDetail.tsx:137 -#: src/pages/sales/SalesOrderDetail.tsx:137 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:152 +#: src/pages/sales/ReturnOrderDetail.tsx:129 +#: src/pages/sales/SalesOrderDetail.tsx:132 msgid "Completed Line Items" -msgstr "" +msgstr "Những mục hoàn thành" #: src/pages/purchasing/PurchaseOrderDetail.tsx:159 #: src/pages/sales/ReturnOrderDetail.tsx:126 @@ -5101,209 +5977,306 @@ msgstr "" #~ msgid "Order Currency," #~ msgstr "Order Currency," -#: src/pages/purchasing/PurchaseOrderDetail.tsx:165 -#: src/pages/sales/ReturnOrderDetail.tsx:144 -#: src/pages/sales/SalesOrderDetail.tsx:153 -msgid "Order Currency" -msgstr "" +#: src/pages/purchasing/PurchaseOrderDetail.tsx:161 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:231 +msgid "Destination" +msgstr "Đích đến" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:172 -#: src/pages/sales/ReturnOrderDetail.tsx:151 -#: src/pages/sales/SalesOrderDetail.tsx:160 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:167 +#: src/pages/sales/ReturnOrderDetail.tsx:136 +#: src/pages/sales/SalesOrderDetail.tsx:148 +msgid "Order Currency" +msgstr "Tiền tệ đơn hàng" + +#: src/pages/purchasing/PurchaseOrderDetail.tsx:173 +#: src/pages/sales/ReturnOrderDetail.tsx:143 +#: src/pages/sales/SalesOrderDetail.tsx:155 msgid "Total Cost" -msgstr "" +msgstr "Tổng chi phí" #: src/pages/purchasing/PurchaseOrderDetail.tsx:207 -#: src/pages/sales/ReturnOrderDetail.tsx:186 -#: src/pages/sales/SalesOrderDetail.tsx:195 -msgid "Created On" +#: src/pages/sales/ReturnOrderDetail.tsx:183 +#: src/pages/sales/SalesOrderDetail.tsx:191 +#~ msgid "Created On" +#~ msgstr "Created On" + +#: src/pages/purchasing/PurchaseOrderDetail.tsx:221 +#: src/pages/sales/ReturnOrderDetail.tsx:193 +#: src/pages/sales/SalesOrderDetail.tsx:204 +msgid "Issue Date" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:252 -#: src/pages/sales/ReturnOrderDetail.tsx:231 -#: src/pages/sales/SalesOrderDetail.tsx:266 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:237 +#: src/pages/sales/ReturnOrderDetail.tsx:209 +#: src/pages/sales/SalesOrderDetail.tsx:219 +#: src/tables/build/BuildOrderTable.tsx:98 +#: src/tables/part/PartPurchaseOrdersTable.tsx:105 +#: src/tables/sales/ReturnOrderTable.tsx:122 +msgid "Completion Date" +msgstr "" + +#: src/pages/purchasing/PurchaseOrderDetail.tsx:276 +#: src/pages/sales/ReturnOrderDetail.tsx:248 +#: src/pages/sales/SalesOrderDetail.tsx:288 msgid "Order Details" msgstr "Chi tiết đơn đặt" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:280 -#: src/pages/sales/ReturnOrderDetail.tsx:258 -#: src/pages/sales/SalesOrderDetail.tsx:297 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:304 +#: src/pages/sales/ReturnOrderDetail.tsx:276 +#: src/pages/sales/SalesOrderDetail.tsx:319 msgid "Extra Line Items" -msgstr "" +msgstr "Thêm dòng mở rộng" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:337 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:346 msgid "Issue Purchase Order" -msgstr "" +msgstr "Xác nhận đơn hàng" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:345 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:354 msgid "Cancel Purchase Order" -msgstr "" +msgstr "Huỷ đơn hàng" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:353 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:362 msgid "Hold Purchase Order" -msgstr "" +msgstr "Tạm hoãn đơn hàng" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:361 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:370 msgid "Complete Purchase Order" -msgstr "" +msgstr "Hoàn thành đơn hàng" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:427 -#: src/pages/sales/ReturnOrderDetail.tsx:428 -#: src/pages/sales/SalesOrderDetail.tsx:468 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:425 +#: src/pages/sales/ReturnOrderDetail.tsx:424 +#: src/pages/sales/SalesOrderDetail.tsx:464 msgid "Order Actions" msgstr "Chức năng đơn đặt" -#: src/pages/sales/ReturnOrderDetail.tsx:101 -#: src/pages/sales/SalesOrderDetail.tsx:107 -#: src/tables/sales/SalesOrderTable.tsx:124 +#: src/pages/sales/ReturnOrderDetail.tsx:92 +#: src/pages/sales/SalesOrderDetail.tsx:101 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:109 +#: src/tables/sales/SalesOrderTable.tsx:137 msgid "Customer Reference" -msgstr "" +msgstr "Tham chiếu khách hàng" -#: src/pages/sales/ReturnOrderDetail.tsx:315 +#: src/pages/sales/ReturnOrderDetail.tsx:322 msgid "Edit Return Order" -msgstr "" +msgstr "Sửa đơn hoàn" -#: src/pages/sales/ReturnOrderDetail.tsx:324 -#: src/tables/sales/ReturnOrderTable.tsx:119 -#: src/tables/sales/ReturnOrderTable.tsx:128 +#: src/pages/sales/ReturnOrderDetail.tsx:331 +#: src/tables/sales/ReturnOrderTable.tsx:142 +#: src/tables/sales/ReturnOrderTable.tsx:152 msgid "Add Return Order" -msgstr "" +msgstr "Thêm đơn hoàn" -#: src/pages/sales/ReturnOrderDetail.tsx:336 +#: src/pages/sales/ReturnOrderDetail.tsx:343 msgid "Issue Return Order" -msgstr "" +msgstr "Xác nhận đơn hoàn" -#: src/pages/sales/ReturnOrderDetail.tsx:344 +#: src/pages/sales/ReturnOrderDetail.tsx:349 +#~ msgid "Order canceled" +#~ msgstr "Order canceled" + +#: src/pages/sales/ReturnOrderDetail.tsx:351 msgid "Cancel Return Order" -msgstr "" +msgstr "Huỷ đơn hoàn" -#: src/pages/sales/ReturnOrderDetail.tsx:347 -msgid "Order canceled" -msgstr "" - -#: src/pages/sales/ReturnOrderDetail.tsx:352 +#: src/pages/sales/ReturnOrderDetail.tsx:359 msgid "Hold Return Order" -msgstr "" +msgstr "Tạm hoãn đơn hoàn" -#: src/pages/sales/ReturnOrderDetail.tsx:360 +#: src/pages/sales/ReturnOrderDetail.tsx:367 msgid "Complete Return Order" -msgstr "" +msgstr "Hoàn thành đơn hoàn" #: src/pages/sales/SalesIndex.tsx:38 msgid "Customers" -msgstr "" +msgstr "Khách hàng" -#: src/pages/sales/SalesOrderDetail.tsx:145 +#: src/pages/sales/SalesOrderDetail.tsx:140 msgid "Completed Shipments" -msgstr "" - -#: src/pages/sales/SalesOrderDetail.tsx:243 -msgid "Edit Sales Order" -msgstr "" - -#: src/pages/sales/SalesOrderDetail.tsx:252 -#: src/tables/sales/SalesOrderTable.tsx:84 -#: src/tables/sales/SalesOrderTable.tsx:96 -msgid "Add Sales Order" -msgstr "" +msgstr "Vận đơn đã hoàn thành" #: src/pages/sales/SalesOrderDetail.tsx:256 #~ msgid "Pending Shipments" #~ msgstr "Pending Shipments" -#: src/pages/sales/SalesOrderDetail.tsx:313 +#: src/pages/sales/SalesOrderDetail.tsx:261 +msgid "Edit Sales Order" +msgstr "Sửa đơn hàng sale" + +#: src/pages/sales/SalesOrderDetail.tsx:274 +#: src/tables/sales/SalesOrderTable.tsx:96 +#: src/tables/sales/SalesOrderTable.tsx:109 +msgid "Add Sales Order" +msgstr "Thêm đơn hàng sale" + +#: src/pages/sales/SalesOrderDetail.tsx:335 msgid "Shipments" -msgstr "" +msgstr "Vận chuyển" -#: src/pages/sales/SalesOrderDetail.tsx:369 +#: src/pages/sales/SalesOrderDetail.tsx:376 msgid "Issue Sales Order" -msgstr "" +msgstr "Xác nhận đơn hàng sale" -#: src/pages/sales/SalesOrderDetail.tsx:377 +#: src/pages/sales/SalesOrderDetail.tsx:384 msgid "Cancel Sales Order" -msgstr "" +msgstr "Huỷ đơn hàng sale" -#: src/pages/sales/SalesOrderDetail.tsx:385 +#: src/pages/sales/SalesOrderDetail.tsx:392 msgid "Hold Sales Order" -msgstr "" +msgstr "Tạm hoãn đơn hàng sale" -#: src/pages/sales/SalesOrderDetail.tsx:393 +#: src/pages/sales/SalesOrderDetail.tsx:400 msgid "Complete Sales Order" -msgstr "" +msgstr "Hoàn thành đơn hàng sale" -#: src/pages/sales/SalesOrderDetail.tsx:432 +#: src/pages/sales/SalesOrderDetail.tsx:439 msgid "Ship Order" +msgstr "Thứ tự vận đơn" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:117 +#: src/tables/sales/SalesOrderShipmentTable.tsx:96 +msgid "Shipment Reference" msgstr "" -#: src/pages/stock/LocationDetail.tsx:117 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:124 +msgid "Allocated Items" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:133 +msgid "Tracking Number" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:141 +msgid "Invoice Number" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:149 +#: src/tables/ColumnRenderers.tsx:242 +#: src/tables/sales/SalesOrderAllocationTable.tsx:142 +#: src/tables/sales/SalesOrderShipmentTable.tsx:115 +msgid "Shipment Date" +msgstr "Ngày giao hàng" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:157 +#: src/tables/sales/SalesOrderShipmentTable.tsx:119 +msgid "Delivery Date" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:204 +msgid "Shipment Details" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:210 +msgid "Assigned Items" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:241 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:317 +#: src/tables/sales/SalesOrderShipmentTable.tsx:75 +msgid "Edit Shipment" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:248 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:322 +#: src/tables/sales/SalesOrderShipmentTable.tsx:67 +msgid "Cancel Shipment" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:261 +#: src/tables/sales/SalesOrderShipmentTable.tsx:83 +#: src/tables/sales/SalesOrderShipmentTable.tsx:151 +msgid "Complete Shipment" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:276 +#: src/tables/part/PartPurchaseOrdersTable.tsx:121 +msgid "Pending" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:277 +#: src/tables/sales/SalesOrderAllocationTable.tsx:148 +#: src/tables/sales/SalesOrderShipmentTable.tsx:108 +#: src/tables/sales/SalesOrderShipmentTable.tsx:197 +msgid "Shipped" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:279 +#: src/tables/sales/SalesOrderShipmentTable.tsx:202 +msgid "Delivered" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:293 +msgid "Send Shipment" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:312 +msgid "Shipment Actions" +msgstr "" + +#: src/pages/stock/LocationDetail.tsx:111 msgid "Parent Location" -msgstr "" +msgstr "Địa chỉ chính" -#: src/pages/stock/LocationDetail.tsx:135 +#: src/pages/stock/LocationDetail.tsx:129 msgid "Sublocations" -msgstr "" +msgstr "Địa chỉ phụ" -#: src/pages/stock/LocationDetail.tsx:147 +#: src/pages/stock/LocationDetail.tsx:141 #: src/tables/stock/StockLocationTable.tsx:54 msgid "External" -msgstr "" +msgstr "Bên ngoài" -#: src/pages/stock/LocationDetail.tsx:153 +#: src/pages/stock/LocationDetail.tsx:147 #: src/tables/stock/StockLocationTable.tsx:63 msgid "Location Type" -msgstr "" +msgstr "Loại vị trí" -#: src/pages/stock/LocationDetail.tsx:164 +#: src/pages/stock/LocationDetail.tsx:158 msgid "Top level stock location" -msgstr "" +msgstr "Vị trí kho tổng" -#: src/pages/stock/LocationDetail.tsx:175 +#: src/pages/stock/LocationDetail.tsx:169 msgid "Location Details" -msgstr "" +msgstr "Chi tiết địa điểm" -#: src/pages/stock/LocationDetail.tsx:201 +#: src/pages/stock/LocationDetail.tsx:195 msgid "Default Parts" -msgstr "" +msgstr "Nguyên liệu mặc định" -#: src/pages/stock/LocationDetail.tsx:220 -#: src/pages/stock/LocationDetail.tsx:351 +#: src/pages/stock/LocationDetail.tsx:214 +#: src/pages/stock/LocationDetail.tsx:336 #: src/tables/stock/StockLocationTable.tsx:123 msgid "Edit Stock Location" -msgstr "" +msgstr "Sửa vị trí kho" -#: src/pages/stock/LocationDetail.tsx:241 -#: src/pages/stock/LocationDetail.tsx:356 +#: src/pages/stock/LocationDetail.tsx:235 +#: src/pages/stock/LocationDetail.tsx:341 msgid "Delete Stock Location" -msgstr "" +msgstr "Xoá vị trí kho" + +#: src/pages/stock/LocationDetail.tsx:238 +msgid "Items Action" +msgstr "Thao tác items" + +#: src/pages/stock/LocationDetail.tsx:239 +msgid "Action for stock items in this location" +msgstr "Thao tác cho kho tại vị trí này" #: src/pages/stock/LocationDetail.tsx:244 -msgid "Items Action" -msgstr "" +msgid "Child Locations Action" +msgstr "Thao tác cho vị trí phụ" #: src/pages/stock/LocationDetail.tsx:245 -msgid "Action for stock items in this location" -msgstr "" - -#: src/pages/stock/LocationDetail.tsx:250 -msgid "Child Locations Action" -msgstr "" - -#: src/pages/stock/LocationDetail.tsx:251 msgid "Action for child locations in this location" -msgstr "" +msgstr "Thao tác cho vị trí phụ tại vị trí này" -#: src/pages/stock/LocationDetail.tsx:346 +#: src/pages/stock/LocationDetail.tsx:332 msgid "Location Actions" -msgstr "" +msgstr "Thao tác vị trí" -#: src/pages/stock/StockDetail.tsx:108 +#: src/pages/stock/StockDetail.tsx:116 msgid "Base Part" msgstr "Sản phẩm cơ bản" -#: src/pages/stock/StockDetail.tsx:115 -msgid "Stock Status" -msgstr "" - #: src/pages/stock/StockDetail.tsx:155 #~ msgid "Link custom barcode to stock item" #~ msgstr "Link custom barcode to stock item" @@ -5312,112 +6285,178 @@ msgstr "" #~ msgid "Unlink custom barcode from stock item" #~ msgstr "Unlink custom barcode from stock item" -#: src/pages/stock/StockDetail.tsx:188 -msgid "Installed In" -msgstr "" - -#: src/pages/stock/StockDetail.tsx:204 -msgid "Consumed By" +#: src/pages/stock/StockDetail.tsx:178 +msgid "Allocated to Orders" msgstr "" #: src/pages/stock/StockDetail.tsx:205 #~ msgid "Edit stock item" #~ msgstr "Edit stock item" -#: src/pages/stock/StockDetail.tsx:213 -#: src/tables/build/BuildAllocatedStockTable.tsx:64 -#: src/tables/stock/StockTrackingTable.tsx:96 -msgid "Build Order" -msgstr "" +#: src/pages/stock/StockDetail.tsx:209 +msgid "Installed In" +msgstr "Nhập vào" #: src/pages/stock/StockDetail.tsx:217 #~ msgid "Delete stock item" #~ msgstr "Delete stock item" -#: src/pages/stock/StockDetail.tsx:291 -msgid "Stock Details" +#: src/pages/stock/StockDetail.tsx:226 +msgid "Parent Item" msgstr "" -#: src/pages/stock/StockDetail.tsx:297 +#: src/pages/stock/StockDetail.tsx:230 +msgid "Parent stock item" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:236 +msgid "Consumed By" +msgstr "Sử dụng bởi" + +#: src/pages/stock/StockDetail.tsx:245 +#: src/tables/build/BuildAllocatedStockTable.tsx:77 +#: src/tables/stock/StockTrackingTable.tsx:100 +msgid "Build Order" +msgstr "Xây dựng đơn hàng" + +#: src/pages/stock/StockDetail.tsx:283 +#: src/tables/stock/StockItemTable.tsx:270 +msgid "Expiry Date" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:414 +msgid "Stock Details" +msgstr "Chi tiết kho" + +#: src/pages/stock/StockDetail.tsx:420 msgid "Stock Tracking" msgstr "Theo dõi tồn kho" -#: src/pages/stock/StockDetail.tsx:350 -msgid "Test Data" -msgstr "" - -#: src/pages/stock/StockDetail.tsx:364 -msgid "Installed Items" -msgstr "Mục đã cài đặt" - -#: src/pages/stock/StockDetail.tsx:371 -msgid "Child Items" -msgstr "Mục con" - -#: src/pages/stock/StockDetail.tsx:425 -msgid "Edit Stock Item" -msgstr "Sửa hàng trong kho" - #: src/pages/stock/StockDetail.tsx:433 #~ msgid "Duplicate stock item" #~ msgstr "Duplicate stock item" -#: src/pages/stock/StockDetail.tsx:452 +#: src/pages/stock/StockDetail.tsx:475 +msgid "Test Data" +msgstr "Thông tin kiểm thử" + +#: src/pages/stock/StockDetail.tsx:489 +msgid "Installed Items" +msgstr "Mục đã cài đặt" + +#: src/pages/stock/StockDetail.tsx:496 +msgid "Child Items" +msgstr "Mục con" + +#: src/pages/stock/StockDetail.tsx:545 +msgid "Edit Stock Item" +msgstr "Sửa hàng trong kho" + +#: src/pages/stock/StockDetail.tsx:572 msgid "Delete Stock Item" +msgstr "Xoá kho item" + +#: src/pages/stock/StockDetail.tsx:604 +msgid "Serialize Stock Item" msgstr "" -#: src/pages/stock/StockDetail.tsx:504 +#: src/pages/stock/StockDetail.tsx:617 +msgid "Stock item serialized" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:623 +msgid "Return Stock Item" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:626 +msgid "Return this item into stock. This will remove the customer assignment." +msgstr "" + +#: src/pages/stock/StockDetail.tsx:636 +msgid "Item returned to stock" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:666 msgid "Stock Operations" -msgstr "" +msgstr "Hoạt động kho" -#: src/pages/stock/StockDetail.tsx:509 +#: src/pages/stock/StockDetail.tsx:671 msgid "Count stock" msgstr "Đếm hàng" -#: src/pages/stock/StockDetail.tsx:519 -#: src/tables/stock/StockItemTable.tsx:449 -msgid "Add stock" -msgstr "Thêm hàng" +#: src/pages/stock/StockDetail.tsx:671 +#: src/tables/stock/StockItemTable.tsx:452 +#~ msgid "Add stock" +#~ msgstr "Add stock" -#: src/pages/stock/StockDetail.tsx:527 -#: src/tables/stock/StockItemTable.tsx:458 -msgid "Remove stock" -msgstr "Xóa hàng" +#: src/pages/stock/StockDetail.tsx:680 +#: src/tables/stock/StockItemTable.tsx:461 +#~ msgid "Remove stock" +#~ msgstr "Remove stock" -#: src/pages/stock/StockDetail.tsx:534 +#: src/pages/stock/StockDetail.tsx:698 +#: src/tables/stock/StockItemTable.tsx:481 +#~ msgid "Transfer stock" +#~ msgstr "Transfer stock" + +#: src/pages/stock/StockDetail.tsx:699 +msgid "Serialize" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:700 +msgid "Serialize stock" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:711 msgid "Transfer" msgstr "Chuyển" -#: src/pages/stock/StockDetail.tsx:535 -#: src/tables/stock/StockItemTable.tsx:478 -msgid "Transfer stock" -msgstr "Chuyển giao hàng" +#: src/pages/stock/StockDetail.tsx:722 +msgid "Return" +msgstr "" -#: src/pages/stock/StockDetail.tsx:546 +#: src/pages/stock/StockDetail.tsx:723 +msgid "Return from customer" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:738 msgid "Stock Item Actions" +msgstr "Thao tác kho items" + +#: src/pages/stock/StockDetail.tsx:808 +msgid "Stale" msgstr "" -#: src/tables/ColumnRenderers.tsx:30 +#: src/pages/stock/StockDetail.tsx:814 +msgid "Expired" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:820 +msgid "Unavailable" +msgstr "" + +#: src/tables/ColumnRenderers.tsx:36 msgid "Part is not active" +msgstr "Nguyên liệu chưa kích hoạt" + +#: src/tables/ColumnRenderers.tsx:41 +#: src/tables/bom/BomTable.tsx:542 +#: src/tables/part/PartParameterTable.tsx:193 +#: src/tables/part/PartTestTemplateTable.tsx:253 +msgid "Part is Locked" +msgstr "Nguyên liệu bị khoá" + +#: src/tables/ColumnRenderers.tsx:41 +#~ msgid "Part is locked" +#~ msgstr "Part is locked" + +#: src/tables/ColumnRenderers.tsx:46 +msgid "You are subscribed to notifications for this part" msgstr "" -#: src/tables/ColumnRenderers.tsx:35 -msgid "Part is locked" -msgstr "" - -#: src/tables/ColumnRenderers.tsx:57 +#: src/tables/ColumnRenderers.tsx:68 msgid "No location set" -msgstr "" - -#: src/tables/ColumnRenderers.tsx:228 -#: src/tables/sales/SalesOrderShipmentTable.tsx:79 -msgid "Shipment Date" -msgstr "" - -#: src/tables/ColumnRenderers.tsx:248 -#: src/tables/settings/CurrencyTable.tsx:23 -msgid "Currency" -msgstr "" +msgstr "Không có vị trí được thiết lập" #: src/tables/ColumnSelect.tsx:16 #: src/tables/ColumnSelect.tsx:23 @@ -5442,7 +6481,7 @@ msgstr "TSV" #: src/tables/DownloadAction.tsx:23 msgid "Excel (.xlsx)" -msgstr "" +msgstr "Excel (.xlsx)" #: src/tables/DownloadAction.tsx:24 #~ msgid "Excel (.xls)" @@ -5450,93 +6489,118 @@ msgstr "" #: src/tables/DownloadAction.tsx:36 msgid "Download Data" -msgstr "" +msgstr "Tải Dữ Liệu về" -#: src/tables/Filter.tsx:89 -#: src/tables/build/BuildOrderTable.tsx:135 +#: src/tables/Filter.tsx:101 msgid "Assigned to me" msgstr "Phân công cho tôi" -#: src/tables/Filter.tsx:90 -#: src/tables/build/BuildOrderTable.tsx:136 +#: src/tables/Filter.tsx:102 msgid "Show orders assigned to me" msgstr "Hiển thị đơn đặt phân công cho tôi" -#: src/tables/Filter.tsx:97 +#: src/tables/Filter.tsx:106 +#~ msgid "Show overdue orders" +#~ msgstr "Show overdue orders" + +#: src/tables/Filter.tsx:109 +#: src/tables/build/BuildOrderTable.tsx:120 +#: src/tables/sales/SalesOrderAllocationTable.tsx:59 msgid "Outstanding" msgstr "Nổi bật" -#: src/tables/Filter.tsx:98 -msgid "Show outstanding orders" -msgstr "Hiện đơn hàng nổi bật" +#: src/tables/Filter.tsx:110 +msgid "Show outstanding items" +msgstr "" -#: src/tables/Filter.tsx:105 -#: src/tables/build/BuildOrderTable.tsx:128 +#: src/tables/Filter.tsx:117 msgid "Overdue" msgstr "Quá hạn" -#: src/tables/Filter.tsx:106 -msgid "Show overdue orders" -msgstr "Hiện đơn hàng quá hạn" +#: src/tables/Filter.tsx:118 +msgid "Show overdue items" +msgstr "" -#: src/tables/FilterSelectDrawer.tsx:51 +#: src/tables/Filter.tsx:125 +msgid "Minimum Date" +msgstr "" + +#: src/tables/Filter.tsx:126 +msgid "Show items after this date" +msgstr "" + +#: src/tables/Filter.tsx:134 +msgid "Maximum Date" +msgstr "" + +#: src/tables/Filter.tsx:135 +msgid "Show items before this date" +msgstr "" + +#: src/tables/Filter.tsx:144 +msgid "Has Project Code" +msgstr "" + +#: src/tables/Filter.tsx:145 +msgid "Show orders with an assigned project code" +msgstr "" + +#: src/tables/FilterSelectDrawer.tsx:55 msgid "Remove filter" msgstr "Xoá bộ lọc" -#: src/tables/FilterSelectDrawer.tsx:130 +#: src/tables/FilterSelectDrawer.tsx:159 msgid "Select filter" msgstr "Chọn bộ lọc" -#: src/tables/FilterSelectDrawer.tsx:131 +#: src/tables/FilterSelectDrawer.tsx:160 msgid "Filter" msgstr "Bộ lọc" -#: src/tables/FilterSelectDrawer.tsx:138 -#: src/tables/build/BuildOrderTestTable.tsx:134 -#: src/tables/purchasing/ManufacturerPartParameterTable.tsx:38 -#: src/tables/stock/StockItemTestResultTable.tsx:186 -msgid "Value" -msgstr "Giá trị" +#: src/tables/FilterSelectDrawer.tsx:168 +msgid "Select date value" +msgstr "" -#: src/tables/FilterSelectDrawer.tsx:140 +#: src/tables/FilterSelectDrawer.tsx:176 msgid "Select filter value" msgstr "Lựa chọn giá trị để lọc" -#: src/tables/FilterSelectDrawer.tsx:183 +#: src/tables/FilterSelectDrawer.tsx:219 +#: src/tables/InvenTreeTableHeader.tsx:214 msgid "Table Filters" msgstr "Bộ lọc bảng" -#: src/tables/FilterSelectDrawer.tsx:215 +#: src/tables/FilterSelectDrawer.tsx:251 msgid "Add Filter" msgstr "Thêm bộ lọc" -#: src/tables/FilterSelectDrawer.tsx:224 +#: src/tables/FilterSelectDrawer.tsx:260 msgid "Clear Filters" msgstr "Xóa bộ lọc" -#: src/tables/InvenTreeTable.tsx:123 -#: src/tables/InvenTreeTable.tsx:431 -#: src/tables/InvenTreeTable.tsx:455 +#: src/tables/InvenTreeTable.tsx:96 +#: src/tables/InvenTreeTable.tsx:417 +#: src/tables/InvenTreeTable.tsx:441 msgid "No records found" msgstr "Không tìm thấy biểu ghi" -#: src/tables/InvenTreeTable.tsx:466 +#: src/tables/InvenTreeTable.tsx:452 msgid "Server returned incorrect data type" -msgstr "" +msgstr "Máy chủ trả chưa đúng dữ liệu" -#: src/tables/InvenTreeTable.tsx:474 +#: src/tables/InvenTreeTable.tsx:460 msgid "Bad request" msgstr "Yêu cầu không hợp lệ" -#: src/tables/InvenTreeTable.tsx:477 +#: src/tables/InvenTreeTable.tsx:463 msgid "Unauthorized" msgstr "Chưa cấp quyền" -#: src/tables/InvenTreeTable.tsx:480 +#: src/tables/InvenTreeTable.tsx:466 msgid "Forbidden" msgstr "Bị cấm" -#: src/tables/InvenTreeTable.tsx:483 +#: src/tables/InvenTreeTable.tsx:469 msgid "Not found" msgstr "Không tìm thấy" @@ -5544,18 +6608,6 @@ msgstr "Không tìm thấy" #~ msgid "Are you sure you want to delete the selected records?" #~ msgstr "Are you sure you want to delete the selected records?" -#: src/tables/InvenTreeTable.tsx:525 -msgid "Delete Selected Items" -msgstr "" - -#: src/tables/InvenTreeTable.tsx:529 -msgid "Are you sure you want to delete the selected items?" -msgstr "" - -#: src/tables/InvenTreeTable.tsx:531 -msgid "This action cannot be undone!" -msgstr "" - #: src/tables/InvenTreeTable.tsx:535 #~ msgid "Deleted records" #~ msgstr "Deleted records" @@ -5568,31 +6620,56 @@ msgstr "" #~ msgid "Failed to delete records" #~ msgstr "Failed to delete records" +#: src/tables/InvenTreeTable.tsx:552 +#~ msgid "This action cannot be undone!" +#~ msgstr "This action cannot be undone!" + #: src/tables/InvenTreeTable.tsx:594 #: src/tables/InvenTreeTable.tsx:595 #~ msgid "Print actions" #~ msgstr "Print actions" -#: src/tables/InvenTreeTable.tsx:618 -#: src/tables/InvenTreeTable.tsx:619 -msgid "Barcode actions" -msgstr "Chức năng mã vạch" +#: src/tables/InvenTreeTable.tsx:655 +#: src/tables/InvenTreeTable.tsx:656 +#~ msgid "Barcode actions" +#~ msgstr "Barcode actions" -#: src/tables/InvenTreeTable.tsx:628 -msgid "Delete selected records" +#: src/tables/InvenTreeTable.tsx:712 +#~ msgid "Table filters" +#~ msgstr "Table filters" + +#: src/tables/InvenTreeTable.tsx:725 +#~ msgid "Clear custom query filters" +#~ msgstr "Clear custom query filters" + +#: src/tables/InvenTreeTableHeader.tsx:98 +msgid "Delete Selected Items" +msgstr "Xóa mục đã chọn" + +#: src/tables/InvenTreeTableHeader.tsx:102 +msgid "Are you sure you want to delete the selected items?" +msgstr "Bạn muốn xóa các mục đã chọn?" + +#: src/tables/InvenTreeTableHeader.tsx:104 +#: src/tables/plugin/PluginListTable.tsx:305 +msgid "This action cannot be undone" msgstr "" -#: src/tables/InvenTreeTable.tsx:649 +#: src/tables/InvenTreeTableHeader.tsx:142 +msgid "Custom table filters are active" +msgstr "" + +#: src/tables/InvenTreeTableHeader.tsx:169 +msgid "Delete selected records" +msgstr "Xóa bản ghi được chọn" + +#: src/tables/InvenTreeTableHeader.tsx:188 msgid "Refresh data" msgstr "Làm mới dữ liệu" -#: src/tables/InvenTreeTable.tsx:675 -msgid "Table filters" -msgstr "Bộ lọc bảng" - #: src/tables/TableHoverCard.tsx:35 -msgid "item-{idx}" -msgstr "" +#~ msgid "item-{idx}" +#~ msgstr "item-{idx}" #: src/tables/UploadAction.tsx:7 #~ msgid "Upload Data" @@ -5600,53 +6677,58 @@ msgstr "" #: src/tables/bom/BomTable.tsx:95 msgid "This BOM item is defined for a different parent" -msgstr "" +msgstr "BOM này đã được định nghĩa" #: src/tables/bom/BomTable.tsx:110 msgid "Part Information" -msgstr "" +msgstr "Thông tin nguyên liệu" #: src/tables/bom/BomTable.tsx:212 -#: src/tables/build/BuildLineTable.tsx:126 +#: src/tables/build/BuildLineTable.tsx:257 #: src/tables/part/PartTable.tsx:125 msgid "External stock" -msgstr "" +msgstr "Kho ngoài" #: src/tables/bom/BomTable.tsx:220 -#: src/tables/build/BuildLineTable.tsx:89 +#: src/tables/build/BuildLineTable.tsx:220 msgid "Includes substitute stock" -msgstr "" +msgstr "Bao gồm kho thay thế" #: src/tables/bom/BomTable.tsx:229 -#: src/tables/build/BuildLineTable.tsx:99 -#: src/tables/sales/SalesOrderLineItemTable.tsx:127 +#: src/tables/build/BuildLineTable.tsx:230 +#: src/tables/sales/SalesOrderLineItemTable.tsx:135 msgid "Includes variant stock" -msgstr "" +msgstr "Bao gồm kho biến thể" + +#: src/tables/bom/BomTable.tsx:245 +#: src/tables/part/PartTable.tsx:92 +msgid "Building" +msgstr "Đang dựng" #: src/tables/bom/BomTable.tsx:254 #: src/tables/part/PartTable.tsx:153 -#: src/tables/sales/SalesOrderLineItemTable.tsx:150 -#: src/tables/stock/StockItemTable.tsx:216 +#: src/tables/sales/SalesOrderLineItemTable.tsx:158 +#: src/tables/stock/StockItemTable.tsx:206 msgid "Stock Information" -msgstr "" +msgstr "Thông tin kho" #: src/tables/bom/BomTable.tsx:285 -#: src/tables/build/BuildLineTable.tsx:248 +#: src/tables/build/BuildLineTable.tsx:409 msgid "Consumable item" -msgstr "" +msgstr "Vật tư tiêu hao" #: src/tables/bom/BomTable.tsx:288 msgid "No available stock" -msgstr "" +msgstr "Không khả dụng" #: src/tables/bom/BomTable.tsx:301 #~ msgid "Create BOM Item" #~ msgstr "Create BOM Item" #: src/tables/bom/BomTable.tsx:306 -#: src/tables/build/BuildLineTable.tsx:69 +#: src/tables/build/BuildLineTable.tsx:200 msgid "Show testable items" -msgstr "" +msgstr "Hiển thị items có thể kiểm" #: src/tables/bom/BomTable.tsx:310 #~ msgid "Show asssmbled items" @@ -5654,28 +6736,29 @@ msgstr "" #: src/tables/bom/BomTable.tsx:311 msgid "Show trackable items" -msgstr "" +msgstr "Hiển thị items có thể theo dõi" #: src/tables/bom/BomTable.tsx:316 -#: src/tables/build/BuildLineTable.tsx:64 +#: src/tables/build/BuildLineTable.tsx:195 msgid "Show assembled items" -msgstr "" +msgstr "Hiện items đã lắp ráp" #: src/tables/bom/BomTable.tsx:321 +#: src/tables/build/BuildLineTable.tsx:180 msgid "Show items with available stock" -msgstr "" +msgstr "Hiện items còn trong kho" #: src/tables/bom/BomTable.tsx:326 msgid "Show items on order" -msgstr "" +msgstr "Hiện items theo thứ tự" #: src/tables/bom/BomTable.tsx:330 msgid "Validated" -msgstr "" +msgstr "Đã xác minh" #: src/tables/bom/BomTable.tsx:331 msgid "Show validated items" -msgstr "" +msgstr "Hiện items đã xác minh" #: src/tables/bom/BomTable.tsx:331 #~ msgid "Edit Bom Item" @@ -5688,31 +6771,31 @@ msgstr "" #: src/tables/bom/BomTable.tsx:335 #: src/tables/bom/UsedInTable.tsx:74 msgid "Inherited" -msgstr "" +msgstr "Được kế thừa" #: src/tables/bom/BomTable.tsx:336 #: src/tables/bom/UsedInTable.tsx:75 msgid "Show inherited items" -msgstr "" +msgstr "Hiện items được kế thừa" #: src/tables/bom/BomTable.tsx:340 msgid "Allow Variants" -msgstr "" +msgstr "Cho phép biến thể" #: src/tables/bom/BomTable.tsx:341 msgid "Show items which allow variant substitution" -msgstr "" +msgstr "Hiện items có biến thể con" #: src/tables/bom/BomTable.tsx:345 #: src/tables/bom/UsedInTable.tsx:79 -#: src/tables/build/BuildLineTable.tsx:58 +#: src/tables/build/BuildLineTable.tsx:189 msgid "Optional" -msgstr "" +msgstr "Tuỳ chọn" #: src/tables/bom/BomTable.tsx:346 #: src/tables/bom/UsedInTable.tsx:80 msgid "Show optional items" -msgstr "" +msgstr "Hiện items tuỳ chọn" #: src/tables/bom/BomTable.tsx:348 #~ msgid "Delete Bom Item" @@ -5723,13 +6806,13 @@ msgstr "" #~ msgstr "Bom item deleted" #: src/tables/bom/BomTable.tsx:350 -#: src/tables/build/BuildLineTable.tsx:53 +#: src/tables/build/BuildLineTable.tsx:184 msgid "Consumable" -msgstr "" +msgstr "Vật tư tiêu hao" #: src/tables/bom/BomTable.tsx:351 msgid "Show consumable items" -msgstr "" +msgstr "Hiện items tiêu hao" #: src/tables/bom/BomTable.tsx:351 #~ msgid "Are you sure you want to remove this BOM item?" @@ -5742,63 +6825,63 @@ msgstr "" #: src/tables/bom/BomTable.tsx:355 #: src/tables/part/PartTable.tsx:282 msgid "Has Pricing" -msgstr "" +msgstr "Có định giá" #: src/tables/bom/BomTable.tsx:356 msgid "Show items with pricing" -msgstr "" +msgstr "Hiện items định giá" #: src/tables/bom/BomTable.tsx:378 -#: src/tables/bom/BomTable.tsx:511 +#: src/tables/bom/BomTable.tsx:512 msgid "Import BOM Data" -msgstr "" +msgstr "Nhập dữ liệu BOM" #: src/tables/bom/BomTable.tsx:388 -#: src/tables/bom/BomTable.tsx:523 +#: src/tables/bom/BomTable.tsx:526 msgid "Add BOM Item" -msgstr "" +msgstr "Thêm BOM item" #: src/tables/bom/BomTable.tsx:393 msgid "BOM item created" -msgstr "" +msgstr "BOM item đã tạo" #: src/tables/bom/BomTable.tsx:400 msgid "Edit BOM Item" -msgstr "" +msgstr "Sửa BOM item" #: src/tables/bom/BomTable.tsx:402 msgid "BOM item updated" -msgstr "" +msgstr "Đã cập nhật BOM item" #: src/tables/bom/BomTable.tsx:409 msgid "Delete BOM Item" -msgstr "" +msgstr "Xoá BOM item" #: src/tables/bom/BomTable.tsx:410 msgid "BOM item deleted" -msgstr "" +msgstr "Đã xoá BOM item" #: src/tables/bom/BomTable.tsx:423 #: src/tables/bom/BomTable.tsx:426 -#: src/tables/bom/BomTable.tsx:517 +#: src/tables/bom/BomTable.tsx:519 msgid "Validate BOM" -msgstr "" +msgstr "Xác minh BOM" #: src/tables/bom/BomTable.tsx:427 msgid "Do you want to validate the bill of materials for this assembly?" -msgstr "" +msgstr "Bạn có muốn xác minh BOM?" #: src/tables/bom/BomTable.tsx:430 msgid "BOM validated" -msgstr "" +msgstr "Đã xác minh BOM" #: src/tables/bom/BomTable.tsx:442 msgid "BOM item validated" -msgstr "" +msgstr "Đã xác minh item BOM" #: src/tables/bom/BomTable.tsx:451 msgid "Failed to validate BOM item" -msgstr "" +msgstr "Lỗi xác minh BOM item" #: src/tables/bom/BomTable.tsx:463 msgid "View BOM" @@ -5806,33 +6889,27 @@ msgstr "" #: src/tables/bom/BomTable.tsx:472 msgid "Validate BOM Line" -msgstr "" +msgstr "Xác minh BOM line" #: src/tables/bom/BomTable.tsx:489 msgid "Edit Substitutes" -msgstr "" +msgstr "Sửa vật tư thay thế" -#: src/tables/bom/BomTable.tsx:539 -#: src/tables/part/PartParameterTable.tsx:193 -#: src/tables/part/PartTestTemplateTable.tsx:252 -msgid "Part is Locked" -msgstr "" - -#: src/tables/bom/BomTable.tsx:544 +#: src/tables/bom/BomTable.tsx:547 msgid "Bill of materials cannot be edited, as the part is locked" -msgstr "" +msgstr "Không thể sửa BOM, do nguyên liệu bị khoá" #: src/tables/bom/UsedInTable.tsx:33 -#: src/tables/build/BuildLineTable.tsx:63 +#: src/tables/build/BuildLineTable.tsx:194 #: src/tables/part/ParametricPartTable.tsx:233 #: src/tables/part/PartTable.tsx:190 -#: src/tables/stock/StockItemTable.tsx:300 +#: src/tables/stock/StockItemTable.tsx:304 msgid "Assembly" msgstr "Lắp ráp" #: src/tables/bom/UsedInTable.tsx:85 msgid "Show active assemblies" -msgstr "" +msgstr "Hiện dây chuyền đang hoạt động" #: src/tables/bom/UsedInTable.tsx:89 #: src/tables/part/PartTable.tsx:214 @@ -5844,285 +6921,347 @@ msgstr "Có thể theo dõi" msgid "Show trackable assemblies" msgstr "" -#: src/tables/build/BuildAllocatedStockTable.tsx:54 +#: src/tables/build/BuildAllocatedStockTable.tsx:56 msgid "Allocated to Output" msgstr "" -#: src/tables/build/BuildAllocatedStockTable.tsx:55 +#: src/tables/build/BuildAllocatedStockTable.tsx:57 msgid "Show items allocated to a build output" msgstr "" -#: src/tables/build/BuildAllocatedStockTable.tsx:76 -#: src/tables/part/PartPurchaseOrdersTable.tsx:125 -#: src/tables/sales/SalesOrderAllocationTable.tsx:62 +#: src/tables/build/BuildAllocatedStockTable.tsx:65 +#: src/tables/build/BuildOrderTable.tsx:159 +#: src/tables/part/PartParameterTable.tsx:212 +#: src/tables/part/PartPurchaseOrdersTable.tsx:138 +#: src/tables/sales/ReturnOrderTable.tsx:84 +#: src/tables/sales/SalesOrderAllocationTable.tsx:68 +#: src/tables/sales/SalesOrderTable.tsx:84 +#: src/tables/stock/StockItemTable.tsx:339 +msgid "Include Variants" +msgstr "Bao gồm các biến thể" + +#: src/tables/build/BuildAllocatedStockTable.tsx:66 +#: src/tables/build/BuildOrderTable.tsx:160 +#: src/tables/part/PartPurchaseOrdersTable.tsx:139 +#: src/tables/sales/ReturnOrderTable.tsx:85 +#: src/tables/sales/SalesOrderAllocationTable.tsx:69 +#: src/tables/sales/SalesOrderTable.tsx:85 +msgid "Include orders for part variants" +msgstr "" + +#: src/tables/build/BuildAllocatedStockTable.tsx:89 +#: src/tables/part/PartPurchaseOrdersTable.tsx:131 +#: src/tables/sales/SalesOrderAllocationTable.tsx:93 msgid "Order Status" msgstr "" -#: src/tables/build/BuildAllocatedStockTable.tsx:96 -#: src/tables/sales/SalesOrderAllocationTable.tsx:75 +#: src/tables/build/BuildAllocatedStockTable.tsx:117 +#: src/tables/sales/SalesOrderAllocationTable.tsx:126 msgid "Allocated Quantity" msgstr "" -#: src/tables/build/BuildAllocatedStockTable.tsx:116 -#: src/tables/sales/SalesOrderAllocationTable.tsx:94 +#: src/tables/build/BuildAllocatedStockTable.tsx:137 +#: src/tables/sales/SalesOrderAllocationTable.tsx:120 msgid "Available Quantity" msgstr "" -#: src/tables/build/BuildAllocatedStockTable.tsx:126 -#: src/tables/build/BuildOrderTestTable.tsx:176 -#: src/tables/build/BuildOrderTestTable.tsx:200 -#: src/tables/build/BuildOutputTable.tsx:312 -msgid "Build Output" +#: src/tables/build/BuildAllocatedStockTable.tsx:164 +#: src/tables/build/BuildLineTable.tsx:513 +msgid "Edit Stock Allocation" msgstr "" -#: src/tables/build/BuildAllocatedStockTable.tsx:143 -msgid "Edit Build Item" -msgstr "" +#: src/tables/build/BuildAllocatedStockTable.tsx:164 +#~ msgid "Edit Build Item" +#~ msgstr "Edit Build Item" -#: src/tables/build/BuildAllocatedStockTable.tsx:153 -msgid "Delete Build Item" -msgstr "" +#: src/tables/build/BuildAllocatedStockTable.tsx:174 +#~ msgid "Delete Build Item" +#~ msgstr "Delete Build Item" -#: src/tables/build/BuildLineTable.tsx:43 -#: src/tables/stock/StockItemTable.tsx:305 -msgid "Allocated" -msgstr "" - -#: src/tables/build/BuildLineTable.tsx:44 -msgid "Show allocated lines" -msgstr "" - -#: src/tables/build/BuildLineTable.tsx:49 -msgid "Show lines with available stock" -msgstr "" - -#: src/tables/build/BuildLineTable.tsx:54 -msgid "Show consumable lines" +#: src/tables/build/BuildAllocatedStockTable.tsx:177 +#: src/tables/build/BuildLineTable.tsx:526 +msgid "Delete Stock Allocation" msgstr "" #: src/tables/build/BuildLineTable.tsx:59 +#~ msgid "Show lines with available stock" +#~ msgstr "Show lines with available stock" + +#: src/tables/build/BuildLineTable.tsx:175 +msgid "Show allocated lines" +msgstr "" + +#: src/tables/build/BuildLineTable.tsx:185 +msgid "Show consumable lines" +msgstr "" + +#: src/tables/build/BuildLineTable.tsx:190 msgid "Show optional lines" msgstr "" -#: src/tables/build/BuildLineTable.tsx:68 +#: src/tables/build/BuildLineTable.tsx:199 #: src/tables/part/PartTable.tsx:208 msgid "Testable" msgstr "" -#: src/tables/build/BuildLineTable.tsx:73 -#: src/tables/stock/StockItemTable.tsx:364 +#: src/tables/build/BuildLineTable.tsx:204 +#: src/tables/stock/StockItemTable.tsx:368 msgid "Tracked" msgstr "" -#: src/tables/build/BuildLineTable.tsx:74 +#: src/tables/build/BuildLineTable.tsx:205 msgid "Show tracked lines" msgstr "" -#: src/tables/build/BuildLineTable.tsx:108 -#: src/tables/sales/SalesOrderLineItemTable.tsx:133 +#: src/tables/build/BuildLineTable.tsx:239 +#: src/tables/sales/SalesOrderLineItemTable.tsx:141 msgid "In production" msgstr "" -#: src/tables/build/BuildLineTable.tsx:136 +#: src/tables/build/BuildLineTable.tsx:267 msgid "Insufficient stock" msgstr "" -#: src/tables/build/BuildLineTable.tsx:152 -#: src/tables/sales/SalesOrderLineItemTable.tsx:121 -#: src/tables/stock/StockItemTable.tsx:186 +#: src/tables/build/BuildLineTable.tsx:283 +#: src/tables/sales/SalesOrderLineItemTable.tsx:129 +#: src/tables/stock/StockItemTable.tsx:175 msgid "No stock available" msgstr "" -#: src/tables/build/BuildLineTable.tsx:201 +#: src/tables/build/BuildLineTable.tsx:355 msgid "Gets Inherited" msgstr "" -#: src/tables/build/BuildLineTable.tsx:210 +#: src/tables/build/BuildLineTable.tsx:366 msgid "Unit Quantity" msgstr "" -#: src/tables/build/BuildLineTable.tsx:267 -#: src/tables/sales/SalesOrderLineItemTable.tsx:230 +#: src/tables/build/BuildLineTable.tsx:381 +msgid "Required Quantity" +msgstr "" + +#: src/tables/build/BuildLineTable.tsx:432 +#: src/tables/sales/SalesOrderLineItemTable.tsx:254 msgid "Create Build Order" msgstr "" -#: src/tables/build/BuildLineTable.tsx:298 -msgid "Allocate Stock" -msgstr "Phân kho" +#: src/tables/build/BuildLineTable.tsx:460 +msgid "Auto allocation in progress" +msgstr "" -#: src/tables/build/BuildLineTable.tsx:305 +#: src/tables/build/BuildLineTable.tsx:463 +#: src/tables/build/BuildLineTable.tsx:632 +msgid "Auto Allocate Stock" +msgstr "" + +#: src/tables/build/BuildLineTable.tsx:464 +msgid "Automatically allocate stock to this build according to the selected options" +msgstr "" + +#: src/tables/build/BuildLineTable.tsx:482 +#: src/tables/build/BuildLineTable.tsx:496 +#: src/tables/build/BuildLineTable.tsx:579 +#: src/tables/build/BuildLineTable.tsx:664 +#: src/tables/build/BuildOutputTable.tsx:314 +#: src/tables/build/BuildOutputTable.tsx:319 +msgid "Deallocate Stock" +msgstr "" + +#: src/tables/build/BuildLineTable.tsx:498 +msgid "Deallocate all untracked stock for this build order" +msgstr "" + +#: src/tables/build/BuildLineTable.tsx:500 +msgid "Deallocate stock from the selected line item" +msgstr "" + +#: src/tables/build/BuildLineTable.tsx:504 +msgid "Stock has been deallocated" +msgstr "" + +#: src/tables/build/BuildLineTable.tsx:589 msgid "Order Stock" msgstr "" -#: src/tables/build/BuildLineTable.tsx:312 +#: src/tables/build/BuildLineTable.tsx:596 msgid "Build Stock" msgstr "" -#: src/tables/build/BuildOrderTable.tsx:111 -msgid "Show active orders" +#: src/tables/build/BuildLineTable.tsx:610 +msgid "View Part" msgstr "" #: src/tables/build/BuildOrderTable.tsx:116 -msgid "Cascade" -msgstr "" +#~ msgid "Cascade" +#~ msgstr "Cascade" #: src/tables/build/BuildOrderTable.tsx:117 -msgid "Display recursive child orders" -msgstr "" +#~ msgid "Display recursive child orders" +#~ msgstr "Display recursive child orders" -#: src/tables/build/BuildOrderTable.tsx:123 -#: src/tables/part/PartPurchaseOrdersTable.tsx:126 -#: src/tables/purchasing/PurchaseOrderTable.tsx:56 -#: src/tables/sales/ReturnOrderTable.tsx:47 -#: src/tables/sales/SalesOrderTable.tsx:54 +#: src/tables/build/BuildOrderTable.tsx:121 +msgid "Show outstanding orders" +msgstr "Hiện đơn hàng nổi bật" + +#: src/tables/build/BuildOrderTable.tsx:121 +#~ msgid "Show active orders" +#~ msgstr "Show active orders" + +#: src/tables/build/BuildOrderTable.tsx:122 +#~ msgid "Show overdue status" +#~ msgstr "Show overdue status" + +#: src/tables/build/BuildOrderTable.tsx:126 +#: src/tables/part/PartPurchaseOrdersTable.tsx:132 +#: src/tables/purchasing/PurchaseOrderTable.tsx:59 +#: src/tables/sales/ReturnOrderTable.tsx:57 +#: src/tables/sales/SalesOrderTable.tsx:57 msgid "Filter by order status" msgstr "" -#: src/tables/build/BuildOrderTable.tsx:130 -msgid "Show overdue status" -msgstr "" - -#: src/tables/build/BuildOrderTable.tsx:141 -#: src/tables/purchasing/PurchaseOrderTable.tsx:65 -#: src/tables/sales/ReturnOrderTable.tsx:56 -#: src/tables/sales/SalesOrderTable.tsx:63 +#: src/tables/build/BuildOrderTable.tsx:136 +#: src/tables/purchasing/PurchaseOrderTable.tsx:70 +#: src/tables/sales/ReturnOrderTable.tsx:68 +#: src/tables/sales/SalesOrderTable.tsx:68 msgid "Filter by project code" msgstr "" -#: src/tables/build/BuildOrderTable.tsx:146 -#: src/tables/purchasing/PurchaseOrderTable.tsx:70 -#: src/tables/sales/ReturnOrderTable.tsx:61 -#: src/tables/sales/SalesOrderTable.tsx:68 -msgid "Has Project Code" -msgstr "" - -#: src/tables/build/BuildOrderTable.tsx:147 +#: src/tables/build/BuildOrderTable.tsx:139 #: src/tables/purchasing/PurchaseOrderTable.tsx:71 #: src/tables/sales/ReturnOrderTable.tsx:62 #: src/tables/sales/SalesOrderTable.tsx:69 -msgid "Filter by whether the purchase order has a project code" -msgstr "" +#~ msgid "Filter by whether the purchase order has a project code" +#~ msgstr "Filter by whether the purchase order has a project code" -#: src/tables/build/BuildOrderTable.tsx:152 +#: src/tables/build/BuildOrderTable.tsx:143 msgid "Filter by user who issued this order" msgstr "" -#: src/tables/build/BuildOrderTable.tsx:158 -#: src/tables/purchasing/PurchaseOrderTable.tsx:76 -#: src/tables/sales/ReturnOrderTable.tsx:67 -#: src/tables/sales/SalesOrderTable.tsx:74 +#: src/tables/build/BuildOrderTable.tsx:149 +#: src/tables/purchasing/PurchaseOrderTable.tsx:77 +#: src/tables/sales/ReturnOrderTable.tsx:75 +#: src/tables/sales/SalesOrderTable.tsx:75 msgid "Filter by responsible owner" msgstr "" -#: src/tables/build/BuildOrderTestTable.tsx:75 -#: src/tables/build/BuildOrderTestTable.tsx:111 -#: src/tables/stock/StockItemTestResultTable.tsx:257 -#: src/tables/stock/StockItemTestResultTable.tsx:329 -#: src/tables/stock/StockItemTestResultTable.tsx:384 +#: src/tables/build/BuildOrderTestTable.tsx:76 +#: src/tables/build/BuildOrderTestTable.tsx:112 +#: src/tables/stock/StockItemTestResultTable.tsx:275 +#: src/tables/stock/StockItemTestResultTable.tsx:347 +#: src/tables/stock/StockItemTestResultTable.tsx:403 msgid "Add Test Result" msgstr "" -#: src/tables/build/BuildOrderTestTable.tsx:82 -#: src/tables/stock/StockItemTestResultTable.tsx:259 +#: src/tables/build/BuildOrderTestTable.tsx:83 +#: src/tables/stock/StockItemTestResultTable.tsx:277 msgid "Test result added" msgstr "" -#: src/tables/build/BuildOrderTestTable.tsx:110 -#: src/tables/stock/StockItemTestResultTable.tsx:174 +#: src/tables/build/BuildOrderTestTable.tsx:111 +#: src/tables/stock/StockItemTestResultTable.tsx:180 msgid "No Result" msgstr "" -#: src/tables/build/BuildOrderTestTable.tsx:220 +#: src/tables/build/BuildOrderTestTable.tsx:221 msgid "Show build outputs currently in production" msgstr "" +#: src/tables/build/BuildOutputTable.tsx:76 +msgid "Build Output Stock Allocation" +msgstr "" + #: src/tables/build/BuildOutputTable.tsx:161 #~ msgid "Delete build output" #~ msgstr "Delete build output" -#: src/tables/build/BuildOutputTable.tsx:173 -#: src/tables/build/BuildOutputTable.tsx:211 +#: src/tables/build/BuildOutputTable.tsx:258 +#: src/tables/build/BuildOutputTable.tsx:374 msgid "Add Build Output" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:216 +#: src/tables/build/BuildOutputTable.tsx:304 +#~ msgid "Edit build output" +#~ msgstr "Edit build output" + +#: src/tables/build/BuildOutputTable.tsx:306 +#: src/tables/build/BuildOutputTable.tsx:417 +msgid "Edit Build Output" +msgstr "" + +#: src/tables/build/BuildOutputTable.tsx:321 +msgid "This action will deallocate all stock from the selected build output" +msgstr "" + +#: src/tables/build/BuildOutputTable.tsx:341 msgid "Complete selected outputs" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:226 +#: src/tables/build/BuildOutputTable.tsx:352 msgid "Scrap selected outputs" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:236 +#: src/tables/build/BuildOutputTable.tsx:363 msgid "Cancel selected outputs" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:252 +#: src/tables/build/BuildOutputTable.tsx:385 msgid "Allocate" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:253 +#: src/tables/build/BuildOutputTable.tsx:386 msgid "Allocate stock to build output" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:259 +#: src/tables/build/BuildOutputTable.tsx:396 msgid "Deallocate" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:260 +#: src/tables/build/BuildOutputTable.tsx:397 msgid "Deallocate stock from build output" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:267 +#: src/tables/build/BuildOutputTable.tsx:408 msgid "Complete build output" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:276 +#: src/tables/build/BuildOutputTable.tsx:424 msgid "Scrap" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:277 +#: src/tables/build/BuildOutputTable.tsx:425 msgid "Scrap build output" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:280 -#~ msgid "Allocated Items" -#~ msgstr "Allocated Items" - -#: src/tables/build/BuildOutputTable.tsx:287 +#: src/tables/build/BuildOutputTable.tsx:435 msgid "Cancel build output" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:325 -msgid "Batch" -msgstr "" - -#: src/tables/build/BuildOutputTable.tsx:340 +#: src/tables/build/BuildOutputTable.tsx:488 msgid "Allocated Lines" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:355 +#: src/tables/build/BuildOutputTable.tsx:503 msgid "Required Tests" msgstr "" -#: src/tables/company/AddressTable.tsx:121 -#: src/tables/company/AddressTable.tsx:185 +#: src/tables/company/AddressTable.tsx:118 +#: src/tables/company/AddressTable.tsx:183 msgid "Add Address" msgstr "" -#: src/tables/company/AddressTable.tsx:126 +#: src/tables/company/AddressTable.tsx:123 msgid "Address created" msgstr "" -#: src/tables/company/AddressTable.tsx:135 +#: src/tables/company/AddressTable.tsx:132 msgid "Edit Address" msgstr "" -#: src/tables/company/AddressTable.tsx:143 +#: src/tables/company/AddressTable.tsx:140 msgid "Delete Address" msgstr "" -#: src/tables/company/AddressTable.tsx:144 +#: src/tables/company/AddressTable.tsx:141 msgid "Are you sure you want to delete this address?" msgstr "" @@ -6130,24 +7269,24 @@ msgstr "" #~ msgid "New Company" #~ msgstr "New Company" -#: src/tables/company/CompanyTable.tsx:74 -#: src/tables/company/CompanyTable.tsx:123 +#: src/tables/company/CompanyTable.tsx:75 +#: src/tables/company/CompanyTable.tsx:125 msgid "Add Company" msgstr "" -#: src/tables/company/CompanyTable.tsx:96 +#: src/tables/company/CompanyTable.tsx:97 msgid "Show active companies" msgstr "" -#: src/tables/company/CompanyTable.tsx:101 +#: src/tables/company/CompanyTable.tsx:102 msgid "Show companies which are suppliers" msgstr "" -#: src/tables/company/CompanyTable.tsx:106 +#: src/tables/company/CompanyTable.tsx:107 msgid "Show companies which are manufacturers" msgstr "" -#: src/tables/company/CompanyTable.tsx:111 +#: src/tables/company/CompanyTable.tsx:112 msgid "Show companies which are customers" msgstr "" @@ -6163,96 +7302,99 @@ msgstr "" msgid "Delete Contact" msgstr "" -#: src/tables/company/ContactTable.tsx:129 +#: src/tables/company/ContactTable.tsx:130 msgid "Add contact" msgstr "" -#: src/tables/general/AttachmentTable.tsx:130 +#: src/tables/general/AttachmentTable.tsx:135 msgid "File uploaded" msgstr "Tệp tin đã được tải lên" -#: src/tables/general/AttachmentTable.tsx:131 +#: src/tables/general/AttachmentTable.tsx:136 msgid "File {0} uploaded successfully" msgstr "Tệp tin {0} đã được tải lên thành công" -#: src/tables/general/AttachmentTable.tsx:142 +#: src/tables/general/AttachmentTable.tsx:147 msgid "Upload Error" msgstr "Lỗi tải lên" -#: src/tables/general/AttachmentTable.tsx:143 +#: src/tables/general/AttachmentTable.tsx:148 msgid "File could not be uploaded" msgstr "Tệp không thể tải lên" -#: src/tables/general/AttachmentTable.tsx:191 +#: src/tables/general/AttachmentTable.tsx:196 msgid "Upload Attachment" msgstr "" -#: src/tables/general/AttachmentTable.tsx:201 +#: src/tables/general/AttachmentTable.tsx:206 msgid "Edit Attachment" msgstr "" -#: src/tables/general/AttachmentTable.tsx:215 +#: src/tables/general/AttachmentTable.tsx:220 msgid "Delete Attachment" msgstr "Xóa tệp đính kèm" -#: src/tables/general/AttachmentTable.tsx:225 +#: src/tables/general/AttachmentTable.tsx:230 msgid "Is Link" msgstr "" -#: src/tables/general/AttachmentTable.tsx:226 +#: src/tables/general/AttachmentTable.tsx:231 msgid "Show link attachments" msgstr "" -#: src/tables/general/AttachmentTable.tsx:230 +#: src/tables/general/AttachmentTable.tsx:235 msgid "Is File" msgstr "" -#: src/tables/general/AttachmentTable.tsx:231 +#: src/tables/general/AttachmentTable.tsx:236 msgid "Show file attachments" msgstr "" -#: src/tables/general/AttachmentTable.tsx:240 +#: src/tables/general/AttachmentTable.tsx:245 msgid "Add attachment" msgstr "Thêm tệp đính kèm" -#: src/tables/general/AttachmentTable.tsx:251 -msgid "Add external link" -msgstr "Thêm liên kết ngoại" - #: src/tables/general/AttachmentTable.tsx:254 #~ msgid "Upload attachment" #~ msgstr "Upload attachment" -#: src/tables/general/AttachmentTable.tsx:299 +#: src/tables/general/AttachmentTable.tsx:256 +msgid "Add external link" +msgstr "Thêm liên kết ngoại" + +#: src/tables/general/AttachmentTable.tsx:304 msgid "No attachments found" msgstr "Không tìm thấy tệp đính kèm" -#: src/tables/general/AttachmentTable.tsx:337 +#: src/tables/general/AttachmentTable.tsx:343 msgid "Drag attachment file here to upload" msgstr "" #: src/tables/general/ExtraLineItemTable.tsx:86 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:251 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:60 -#: src/tables/sales/SalesOrderLineItemTable.tsx:196 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:263 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:362 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:72 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:168 +#: src/tables/sales/SalesOrderLineItemTable.tsx:206 +#: src/tables/sales/SalesOrderLineItemTable.tsx:291 msgid "Add Line Item" msgstr "Thêm hạng mục" #: src/tables/general/ExtraLineItemTable.tsx:98 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:271 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:72 -#: src/tables/sales/SalesOrderLineItemTable.tsx:214 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:283 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:84 +#: src/tables/sales/SalesOrderLineItemTable.tsx:224 msgid "Edit Line Item" msgstr "Sửa hạng mục" #: src/tables/general/ExtraLineItemTable.tsx:106 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:279 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:80 -#: src/tables/sales/SalesOrderLineItemTable.tsx:222 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:291 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:92 +#: src/tables/sales/SalesOrderLineItemTable.tsx:232 msgid "Delete Line Item" msgstr "" -#: src/tables/general/ExtraLineItemTable.tsx:142 +#: src/tables/general/ExtraLineItemTable.tsx:143 msgid "Add Extra Line Item" msgstr "" @@ -6261,12 +7403,12 @@ msgid "Machine restarted" msgstr "" #: src/tables/machine/MachineListTable.tsx:212 -#: src/tables/machine/MachineListTable.tsx:263 +#: src/tables/machine/MachineListTable.tsx:261 msgid "Edit machine" msgstr "" #: src/tables/machine/MachineListTable.tsx:226 -#: src/tables/machine/MachineListTable.tsx:267 +#: src/tables/machine/MachineListTable.tsx:265 msgid "Delete machine" msgstr "" @@ -6278,51 +7420,50 @@ msgstr "" msgid "Are you sure you want to remove the machine \"{0}\"?" msgstr "" -#: src/tables/machine/MachineListTable.tsx:255 -#: src/tables/machine/MachineListTable.tsx:432 +#: src/tables/machine/MachineListTable.tsx:254 +#: src/tables/machine/MachineListTable.tsx:442 msgid "Restart required" msgstr "" -#: src/tables/machine/MachineListTable.tsx:259 +#: src/tables/machine/MachineListTable.tsx:258 msgid "Machine Actions" msgstr "" -#: src/tables/machine/MachineListTable.tsx:272 +#: src/tables/machine/MachineListTable.tsx:270 msgid "Restart" msgstr "" -#: src/tables/machine/MachineListTable.tsx:274 +#: src/tables/machine/MachineListTable.tsx:272 msgid "Restart machine" msgstr "" -#: src/tables/machine/MachineListTable.tsx:276 +#: src/tables/machine/MachineListTable.tsx:274 msgid "manual restart required" msgstr "" +#: src/tables/machine/MachineListTable.tsx:291 +#~ msgid "Machine information" +#~ msgstr "Machine information" + #: src/tables/machine/MachineListTable.tsx:292 -msgid "Machine information" +msgid "Machine Information" msgstr "" -#: src/tables/machine/MachineListTable.tsx:303 -#: src/tables/machine/MachineListTable.tsx:599 +#: src/tables/machine/MachineListTable.tsx:302 +#: src/tables/machine/MachineListTable.tsx:610 msgid "Machine Type" msgstr "" -#: src/tables/machine/MachineListTable.tsx:316 +#: src/tables/machine/MachineListTable.tsx:315 msgid "Machine Driver" msgstr "" -#: src/tables/machine/MachineListTable.tsx:329 +#: src/tables/machine/MachineListTable.tsx:330 msgid "Initialized" msgstr "" -#: src/tables/machine/MachineListTable.tsx:350 -#: src/tables/machine/MachineTypeTable.tsx:261 -msgid "Errors" -msgstr "" - -#: src/tables/machine/MachineListTable.tsx:358 -#: src/tables/machine/MachineTypeTable.tsx:269 +#: src/tables/machine/MachineListTable.tsx:359 +#: src/tables/machine/MachineTypeTable.tsx:290 msgid "No errors reported" msgstr "" @@ -6330,7 +7471,7 @@ msgstr "" msgid "Machine Settings" msgstr "" -#: src/tables/machine/MachineListTable.tsx:389 +#: src/tables/machine/MachineListTable.tsx:394 msgid "Driver Settings" msgstr "" @@ -6338,86 +7479,109 @@ msgstr "" #~ msgid "Create machine" #~ msgstr "Create machine" -#: src/tables/machine/MachineListTable.tsx:506 +#: src/tables/machine/MachineListTable.tsx:516 +#: src/tables/machine/MachineListTable.tsx:558 msgid "Add machine" msgstr "" #: src/tables/machine/MachineListTable.tsx:561 -msgid "Machine detail" +#~ msgid "Machine detail" +#~ msgstr "Machine detail" + +#: src/tables/machine/MachineListTable.tsx:572 +msgid "Machine Detail" msgstr "" -#: src/tables/machine/MachineListTable.tsx:608 +#: src/tables/machine/MachineListTable.tsx:619 msgid "Driver" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:73 +#: src/tables/machine/MachineTypeTable.tsx:78 msgid "Builtin driver" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:89 +#: src/tables/machine/MachineTypeTable.tsx:96 +msgid "Not Found" +msgstr "" + +#: src/tables/machine/MachineTypeTable.tsx:99 msgid "Machine type not found." msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:97 -msgid "Machine type information" +#: src/tables/machine/MachineTypeTable.tsx:99 +#~ msgid "Machine type information" +#~ msgstr "Machine type information" + +#: src/tables/machine/MachineTypeTable.tsx:109 +msgid "Machine Type Information" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:110 -#: src/tables/machine/MachineTypeTable.tsx:217 +#: src/tables/machine/MachineTypeTable.tsx:124 +#: src/tables/machine/MachineTypeTable.tsx:238 msgid "Slug" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:118 -#: src/tables/machine/MachineTypeTable.tsx:238 +#: src/tables/machine/MachineTypeTable.tsx:135 +#: src/tables/machine/MachineTypeTable.tsx:259 msgid "Provider plugin" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:130 -#: src/tables/machine/MachineTypeTable.tsx:250 +#: src/tables/machine/MachineTypeTable.tsx:147 +#: src/tables/machine/MachineTypeTable.tsx:271 msgid "Provider file" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:135 -#: src/tables/machine/MachineTypeTable.tsx:255 -#: src/tables/plugin/PluginListTable.tsx:180 -#: src/tables/plugin/PluginListTable.tsx:568 -msgid "Builtin" -msgstr "Gắn liền" +#: src/tables/machine/MachineTypeTable.tsx:148 +#~ msgid "Available drivers" +#~ msgstr "Available drivers" -#: src/tables/machine/MachineTypeTable.tsx:146 -msgid "Available drivers" +#: src/tables/machine/MachineTypeTable.tsx:162 +msgid "Available Drivers" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:196 +#: src/tables/machine/MachineTypeTable.tsx:217 msgid "Machine driver not found." msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:204 +#: src/tables/machine/MachineTypeTable.tsx:225 msgid "Machine driver information" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:224 +#: src/tables/machine/MachineTypeTable.tsx:245 msgid "Machine type" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:327 +#: src/tables/machine/MachineTypeTable.tsx:338 +#~ msgid "Machine type detail" +#~ msgstr "Machine type detail" + +#: src/tables/machine/MachineTypeTable.tsx:348 msgid "Builtin type" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:336 -msgid "Machine type detail" +#: src/tables/machine/MachineTypeTable.tsx:348 +#~ msgid "Machine driver detail" +#~ msgstr "Machine driver detail" + +#: src/tables/machine/MachineTypeTable.tsx:357 +msgid "Machine Type Detail" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:346 -msgid "Machine driver detail" +#: src/tables/machine/MachineTypeTable.tsx:367 +msgid "Machine Driver Detail" msgstr "" #: src/tables/notifications/NotificationsTable.tsx:26 msgid "Age" msgstr "Tuổi" +#: src/tables/notifications/NotificationsTable.tsx:36 +msgid "Notification" +msgstr "Thông báo" + #: src/tables/notifications/NotificationsTable.tsx:40 #: src/tables/plugin/PluginErrorTable.tsx:37 +#: src/tables/settings/ErrorTable.tsx:50 msgid "Message" msgstr "Nội dụng tin nhắn" @@ -6451,33 +7615,32 @@ msgstr "" msgid "Show assembly parts" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:68 +#: src/tables/part/PartCategoryTable.tsx:48 +msgid "You are subscribed to notifications for this category" +msgstr "" + +#: src/tables/part/PartCategoryTable.tsx:80 #: src/tables/part/PartTable.tsx:196 msgid "Include Subcategories" msgstr "Bao gồm danh mục con" -#: src/tables/part/PartCategoryTable.tsx:69 +#: src/tables/part/PartCategoryTable.tsx:81 msgid "Include subcategories in results" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:74 +#: src/tables/part/PartCategoryTable.tsx:86 msgid "Show structural categories" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:78 -#: src/tables/part/PartTable.tsx:294 -msgid "Subscribed" -msgstr "" - -#: src/tables/part/PartCategoryTable.tsx:79 +#: src/tables/part/PartCategoryTable.tsx:91 msgid "Show categories to which the user is subscribed" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:86 +#: src/tables/part/PartCategoryTable.tsx:100 msgid "New Part Category" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:112 +#: src/tables/part/PartCategoryTable.tsx:129 msgid "Add Part Category" msgstr "" @@ -6523,11 +7686,6 @@ msgstr "" msgid "Part parameters cannot be edited, as the part is locked" msgstr "" -#: src/tables/part/PartParameterTable.tsx:212 -#: src/tables/stock/StockItemTable.tsx:335 -msgid "Include Variants" -msgstr "Bao gồm các biến thể" - #: src/tables/part/PartParameterTemplateTable.tsx:31 msgid "Checkbox" msgstr "" @@ -6554,6 +7712,7 @@ msgid "Show templates with units" msgstr "" #: src/tables/part/PartParameterTemplateTable.tsx:85 +#: src/tables/part/PartParameterTemplateTable.tsx:141 msgid "Add Parameter Template" msgstr "" @@ -6566,23 +7725,19 @@ msgid "Delete Parameter Template" msgstr "" #: src/tables/part/PartParameterTemplateTable.tsx:141 -msgid "Add parameter template" -msgstr "Thêm mẫu tham số" +#~ msgid "Add parameter template" +#~ msgstr "Add parameter template" -#: src/tables/part/PartPurchaseOrdersTable.tsx:77 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:162 +#: src/tables/part/PartPurchaseOrdersTable.tsx:78 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:168 msgid "Total Quantity" msgstr "Tổng số lượng" -#: src/tables/part/PartPurchaseOrdersTable.tsx:115 -msgid "Pending" -msgstr "" - -#: src/tables/part/PartPurchaseOrdersTable.tsx:116 +#: src/tables/part/PartPurchaseOrdersTable.tsx:122 msgid "Show pending orders" msgstr "" -#: src/tables/part/PartPurchaseOrdersTable.tsx:121 +#: src/tables/part/PartPurchaseOrdersTable.tsx:127 msgid "Show received items" msgstr "" @@ -6728,22 +7883,13 @@ msgstr "" msgid "Results" msgstr "" -#: src/tables/part/PartTestTemplateTable.tsx:76 -msgid "No Results" -msgstr "" - -#: src/tables/part/PartTestTemplateTable.tsx:106 -#: src/tables/stock/StockItemTestResultTable.tsx:365 -msgid "Required" -msgstr "" - #: src/tables/part/PartTestTemplateTable.tsx:107 msgid "Show required tests" msgstr "" #: src/tables/part/PartTestTemplateTable.tsx:111 -#: src/tables/settings/TemplateTable.tsx:167 -#: src/tables/settings/TemplateTable.tsx:283 +#: src/tables/settings/TemplateTable.tsx:247 +#: src/tables/settings/TemplateTable.tsx:363 msgid "Enabled" msgstr "" @@ -6784,7 +7930,7 @@ msgid "Show tests which have recorded results" msgstr "" #: src/tables/part/PartTestTemplateTable.tsx:154 -#: src/tables/part/PartTestTemplateTable.tsx:237 +#: src/tables/part/PartTestTemplateTable.tsx:238 msgid "Add Test Template" msgstr "" @@ -6808,7 +7954,7 @@ msgstr "" msgid "View Parent Part" msgstr "" -#: src/tables/part/PartTestTemplateTable.tsx:257 +#: src/tables/part/PartTestTemplateTable.tsx:258 msgid "Part templates cannot be edited, as the part is locked" msgstr "" @@ -6836,41 +7982,58 @@ msgstr "" msgid "Show trackable variants" msgstr "" -#: src/tables/part/RelatedPartTable.tsx:84 +#: src/tables/part/RelatedPartTable.tsx:86 +#: src/tables/part/RelatedPartTable.tsx:109 msgid "Add Related Part" msgstr "Thêm phụ kiện liên quan" -#: src/tables/part/RelatedPartTable.tsx:99 +#: src/tables/part/RelatedPartTable.tsx:101 msgid "Delete Related Part" msgstr "Xóa phụ kiện liên quan" -#: src/tables/part/RelatedPartTable.tsx:106 -msgid "Add related part" -msgstr "Thêm phụ kiện liên quan" +#: src/tables/part/RelatedPartTable.tsx:109 +#~ msgid "Add related part" +#~ msgstr "Add related part" #: src/tables/plugin/PluginErrorTable.tsx:29 msgid "Stage" msgstr "" +#: src/tables/plugin/PluginListTable.tsx:42 +msgid "Plugin is active" +msgstr "Phần bổ sung hoạt động" + +#: src/tables/plugin/PluginListTable.tsx:48 +msgid "Plugin is inactive" +msgstr "Phần bổ sung đang tắt" + +#: src/tables/plugin/PluginListTable.tsx:55 +msgid "Plugin is not installed" +msgstr "Phần bổ sung chưa được cài đặt" + +#: src/tables/plugin/PluginListTable.tsx:76 +msgid "Plugin" +msgstr "Phần bổ sung" + #: src/tables/plugin/PluginListTable.tsx:95 -msgid "Plugin with key {pluginKey} not found" -msgstr "" +#~ msgid "Plugin with key {pluginKey} not found" +#~ msgstr "Plugin with key {pluginKey} not found" #: src/tables/plugin/PluginListTable.tsx:97 -msgid "An error occurred while fetching plugin details" -msgstr "" +#~ msgid "An error occurred while fetching plugin details" +#~ msgstr "An error occurred while fetching plugin details" + +#: src/tables/plugin/PluginListTable.tsx:109 +msgid "Description not available" +msgstr "Mô tả không có sẵn" #: src/tables/plugin/PluginListTable.tsx:113 #~ msgid "Plugin with id {id} not found" #~ msgstr "Plugin with id {id} not found" #: src/tables/plugin/PluginListTable.tsx:122 -msgid "Plugin information" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:134 -msgid "Author" -msgstr "" +#~ msgid "Plugin information" +#~ msgstr "Plugin information" #: src/tables/plugin/PluginListTable.tsx:134 #~ msgid "Plugin Actions" @@ -6881,79 +8044,124 @@ msgstr "" #~ msgid "Edit plugin" #~ msgstr "Edit plugin" +#: src/tables/plugin/PluginListTable.tsx:144 +msgid "Confirm plugin activation" +msgstr "Xác nhận kích hoạt phần bổ sung" + +#: src/tables/plugin/PluginListTable.tsx:145 +msgid "Confirm plugin deactivation" +msgstr "Xác nhận tắt phần bổ sung" + +#: src/tables/plugin/PluginListTable.tsx:150 +msgid "The selected plugin will be activated" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:151 +msgid "The selected plugin will be deactivated" +msgstr "" + #: src/tables/plugin/PluginListTable.tsx:152 #: src/tables/plugin/PluginListTable.tsx:153 #~ msgid "Reload" #~ msgstr "Reload" -#: src/tables/plugin/PluginListTable.tsx:154 -msgid "Plugin is not active" -msgstr "" - #: src/tables/plugin/PluginListTable.tsx:163 -msgid "Package information" -msgstr "" +#~ msgid "Package information" +#~ msgstr "Package information" #: src/tables/plugin/PluginListTable.tsx:169 -msgid "Package Name" +msgid "Deactivate" +msgstr "Hủy kích hoạt" + +#: src/tables/plugin/PluginListTable.tsx:183 +msgid "Activate" +msgstr "Kích hoạt" + +#: src/tables/plugin/PluginListTable.tsx:184 +msgid "Activate selected plugin" msgstr "" -#: src/tables/plugin/PluginListTable.tsx:175 -msgid "Installation Path" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:185 -msgid "Package" +#: src/tables/plugin/PluginListTable.tsx:196 +msgid "Update selected plugin" msgstr "" #: src/tables/plugin/PluginListTable.tsx:197 -msgid "Plugin settings" -msgstr "" +#~ msgid "Plugin settings" +#~ msgstr "Plugin settings" #: src/tables/plugin/PluginListTable.tsx:214 -msgid "Plugin is active" -msgstr "Phần bổ sung hoạt động" - -#: src/tables/plugin/PluginListTable.tsx:220 -msgid "Plugin is inactive" -msgstr "Phần bổ sung đang tắt" - -#: src/tables/plugin/PluginListTable.tsx:227 -msgid "Plugin is not installed" -msgstr "Phần bổ sung chưa được cài đặt" - -#: src/tables/plugin/PluginListTable.tsx:253 -msgid "Plugin" -msgstr "Phần bổ sung" - -#: src/tables/plugin/PluginListTable.tsx:287 -msgid "Description not available" -msgstr "Mô tả không có sẵn" - -#: src/tables/plugin/PluginListTable.tsx:319 -msgid "Confirm plugin activation" -msgstr "Xác nhận kích hoạt phần bổ sung" - -#: src/tables/plugin/PluginListTable.tsx:320 -msgid "Confirm plugin deactivation" -msgstr "Xác nhận tắt phần bổ sung" - -#: src/tables/plugin/PluginListTable.tsx:325 -msgid "The selected plugin will be activated" +#: src/tables/stock/InstalledItemsTable.tsx:107 +msgid "Uninstall" msgstr "" -#: src/tables/plugin/PluginListTable.tsx:326 -msgid "The selected plugin will be deactivated" +#: src/tables/plugin/PluginListTable.tsx:215 +msgid "Uninstall selected plugin" msgstr "" -#: src/tables/plugin/PluginListTable.tsx:334 +#: src/tables/plugin/PluginListTable.tsx:233 +msgid "Delete selected plugin configuration" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:249 msgid "Activate Plugin" msgstr "Kích hoạt phần bổ sung" +#: src/tables/plugin/PluginListTable.tsx:270 +msgid "Install plugin" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:283 +msgid "Install" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:284 +msgid "Plugin installed successfully" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:289 +msgid "Uninstall Plugin" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:301 +msgid "Confirm plugin uninstall" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:304 +msgid "The selected plugin will be uninstalled." +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:308 +#~ msgid "This action cannot be undone." +#~ msgstr "This action cannot be undone." + +#: src/tables/plugin/PluginListTable.tsx:309 +msgid "Plugin uninstalled successfully" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:317 +msgid "Delete Plugin" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:318 +msgid "Deleting this plugin configuration will remove all associated settings and data. Are you sure you want to delete this plugin?" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:331 +msgid "Plugins reloaded" +msgstr "" + +#: src/tables/plugin/PluginListTable.tsx:332 +msgid "Plugins were reloaded successfully" +msgstr "" + #: src/tables/plugin/PluginListTable.tsx:338 #~ msgid "Deactivate Plugin" #~ msgstr "Deactivate Plugin" +#: src/tables/plugin/PluginListTable.tsx:350 +msgid "Reload Plugins" +msgstr "" + #: src/tables/plugin/PluginListTable.tsx:354 #~ msgid "The following plugin will be activated" #~ msgstr "The following plugin will be activated" @@ -6962,17 +8170,17 @@ msgstr "Kích hoạt phần bổ sung" #~ msgid "The following plugin will be deactivated" #~ msgstr "The following plugin will be deactivated" -#: src/tables/plugin/PluginListTable.tsx:362 -msgid "Deactivate" -msgstr "Hủy kích hoạt" +#: src/tables/plugin/PluginListTable.tsx:357 +msgid "Install Plugin" +msgstr "" #: src/tables/plugin/PluginListTable.tsx:366 #~ msgid "Confirm" #~ msgstr "Confirm" -#: src/tables/plugin/PluginListTable.tsx:373 -msgid "Activate" -msgstr "Kích hoạt" +#: src/tables/plugin/PluginListTable.tsx:374 +msgid "Plugin Detail" +msgstr "" #: src/tables/plugin/PluginListTable.tsx:376 #~ msgid "Activating plugin" @@ -6998,76 +8206,12 @@ msgstr "Kích hoạt" #~ msgid "Error updating plugin" #~ msgstr "Error updating plugin" -#: src/tables/plugin/PluginListTable.tsx:406 -msgid "Uninstall" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:438 -msgid "Install plugin" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:451 -msgid "Install" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:452 -msgid "Plugin installed successfully" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:457 -msgid "Uninstall Plugin" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:469 -msgid "Confirm plugin uninstall" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:472 -msgid "The selected plugin will be uninstalled." -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:473 -msgid "This action cannot be undone." -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:477 -msgid "Plugin uninstalled successfully" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:484 -msgid "Delete Plugin" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:485 -msgid "Deleting this plugin configuration will remove all associated settings and data. Are you sure you want to delete this plugin?" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:498 -msgid "Plugins reloaded" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:499 -msgid "Plugins were reloaded successfully" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:515 -msgid "Reload Plugins" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:524 -msgid "Install Plugin" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:544 -msgid "Plugin Detail" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:573 +#: src/tables/plugin/PluginListTable.tsx:411 msgid "Sample" msgstr "Mẫu" -#: src/tables/plugin/PluginListTable.tsx:578 -#: src/tables/stock/StockItemTable.tsx:340 +#: src/tables/plugin/PluginListTable.tsx:416 +#: src/tables/stock/StockItemTable.tsx:344 msgid "Installed" msgstr "Đã cài đặt" @@ -7116,82 +8260,78 @@ msgstr "" #~ msgid "Are you sure you want to remove this manufacturer part?" #~ msgstr "Are you sure you want to remove this manufacturer part?" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:102 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:339 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:103 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:356 msgid "Import Line Items" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:135 -msgid "Part Description" -msgstr "Mô tả sản phẩm" - -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:201 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:207 msgid "Supplier Code" msgstr "Mã nhà cung cấp" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:208 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:214 msgid "Supplier Link" msgstr "Liên kết nhà cung cấp" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:215 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:220 msgid "Manufacturer Code" msgstr "Mã nhà sản xuất" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:229 -msgid "Destination" -msgstr "Đích đến" +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:248 +msgid "Show line items which have been received" +msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:300 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:316 msgid "Receive line item" msgstr "Nhận hạng mục" #: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:344 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:142 -#: src/tables/sales/SalesOrderLineItemTable.tsx:240 -msgid "Add line item" -msgstr "Thêm hạng mục" +#: src/tables/sales/ReturnOrderLineItemTable.tsx:160 +#: src/tables/sales/SalesOrderLineItemTable.tsx:258 +#~ msgid "Add line item" +#~ msgstr "Add line item" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:354 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:373 msgid "Receive items" msgstr "Nhận hàng hóa" -#: src/tables/purchasing/SupplierPartTable.tsx:93 +#: src/tables/purchasing/SupplierPartTable.tsx:95 msgid "MPN" msgstr "MPN" -#: src/tables/purchasing/SupplierPartTable.tsx:122 +#: src/tables/purchasing/SupplierPartTable.tsx:124 msgid "Base units" msgstr "Đơn vị cơ sở" -#: src/tables/purchasing/SupplierPartTable.tsx:170 +#: src/tables/purchasing/SupplierPartTable.tsx:172 msgid "Supplier part created" msgstr "Đã tạo sản phẩm nhà cung cấp" -#: src/tables/purchasing/SupplierPartTable.tsx:176 +#: src/tables/purchasing/SupplierPartTable.tsx:179 msgid "Add supplier part" msgstr "Thêm sản phẩm nhà cung cấp" -#: src/tables/purchasing/SupplierPartTable.tsx:188 +#: src/tables/purchasing/SupplierPartTable.tsx:191 msgid "Show active supplier parts" msgstr "" -#: src/tables/purchasing/SupplierPartTable.tsx:192 -msgid "Active Part" -msgstr "" - -#: src/tables/purchasing/SupplierPartTable.tsx:193 -msgid "Show active internal parts" -msgstr "" - #: src/tables/purchasing/SupplierPartTable.tsx:193 #~ msgid "Supplier part updated" #~ msgstr "Supplier part updated" -#: src/tables/purchasing/SupplierPartTable.tsx:197 +#: src/tables/purchasing/SupplierPartTable.tsx:195 +msgid "Active Part" +msgstr "" + +#: src/tables/purchasing/SupplierPartTable.tsx:196 +msgid "Show active internal parts" +msgstr "" + +#: src/tables/purchasing/SupplierPartTable.tsx:200 msgid "Active Supplier" msgstr "" -#: src/tables/purchasing/SupplierPartTable.tsx:198 +#: src/tables/purchasing/SupplierPartTable.tsx:201 msgid "Show active suppliers" msgstr "" @@ -7203,99 +8343,187 @@ msgstr "" #~ msgid "Are you sure you want to remove this supplier part?" #~ msgstr "Are you sure you want to remove this supplier part?" -#: src/tables/sales/ReturnOrderLineItemTable.tsx:114 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:139 msgid "Received Date" msgstr "" -#: src/tables/sales/ReturnOrderLineItemTable.tsx:128 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:153 msgid "Show items which have been received" msgstr "" -#: src/tables/sales/ReturnOrderLineItemTable.tsx:133 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:158 msgid "Filter by line item status" msgstr "" -#: src/tables/sales/ReturnOrderLineItemTable.tsx:158 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:176 +msgid "Receive selected items" +msgstr "" + +#: src/tables/sales/ReturnOrderLineItemTable.tsx:205 msgid "Receive Item" msgstr "" -#: src/tables/sales/SalesOrderLineItemTable.tsx:262 -msgid "Allocate stock" +#: src/tables/sales/SalesOrderAllocationTable.tsx:60 +msgid "Show outstanding allocations" msgstr "" -#: src/tables/sales/SalesOrderLineItemTable.tsx:272 +#: src/tables/sales/SalesOrderAllocationTable.tsx:168 +#: src/tables/sales/SalesOrderAllocationTable.tsx:190 +msgid "Edit Allocation" +msgstr "" + +#: src/tables/sales/SalesOrderAllocationTable.tsx:175 +#: src/tables/sales/SalesOrderAllocationTable.tsx:197 +msgid "Delete Allocation" +msgstr "" + +#: src/tables/sales/SalesOrderLineItemTable.tsx:244 +msgid "Allocate Serial Numbers" +msgstr "" + +#: src/tables/sales/SalesOrderLineItemTable.tsx:277 +msgid "Show lines which are fully allocated" +msgstr "" + +#: src/tables/sales/SalesOrderLineItemTable.tsx:280 +#~ msgid "Allocate stock" +#~ msgstr "Allocate stock" + +#: src/tables/sales/SalesOrderLineItemTable.tsx:282 +msgid "Show lines which are completed" +msgstr "" + +#: src/tables/sales/SalesOrderLineItemTable.tsx:291 +#~ msgid "Allocate Serials" +#~ msgstr "Allocate Serials" + +#: src/tables/sales/SalesOrderLineItemTable.tsx:340 +msgid "Allocate serials" +msgstr "" + +#: src/tables/sales/SalesOrderLineItemTable.tsx:356 msgid "Build stock" msgstr "" -#: src/tables/sales/SalesOrderLineItemTable.tsx:289 -#: src/tables/stock/StockItemTable.tsx:507 +#: src/tables/sales/SalesOrderLineItemTable.tsx:373 +#: src/tables/stock/StockItemTable.tsx:512 msgid "Order stock" msgstr "" -#: src/tables/sales/SalesOrderShipmentTable.tsx:40 +#: src/tables/sales/SalesOrderShipmentTable.tsx:51 +#~ msgid "Delete Shipment" +#~ msgstr "Delete Shipment" + +#: src/tables/sales/SalesOrderShipmentTable.tsx:57 msgid "Create Shipment" msgstr "" -#: src/tables/sales/SalesOrderShipmentTable.tsx:50 -msgid "Delete Shipment" -msgstr "" - -#: src/tables/sales/SalesOrderShipmentTable.tsx:58 -msgid "Edit Shipment" -msgstr "" - -#: src/tables/sales/SalesOrderShipmentTable.tsx:66 -msgid "Shipment Reference" -msgstr "" - -#: src/tables/sales/SalesOrderShipmentTable.tsx:71 +#: src/tables/sales/SalesOrderShipmentTable.tsx:104 msgid "Items" msgstr "" -#: src/tables/sales/SalesOrderShipmentTable.tsx:83 -msgid "Delivery Date" +#: src/tables/sales/SalesOrderShipmentTable.tsx:139 +msgid "View Shipment" msgstr "" -#: src/tables/sales/SalesOrderShipmentTable.tsx:107 -msgid "Complete Shipment" +#: src/tables/sales/SalesOrderShipmentTable.tsx:161 +msgid "Edit shipment" msgstr "" -#: src/tables/sales/SalesOrderShipmentTable.tsx:133 +#: src/tables/sales/SalesOrderShipmentTable.tsx:169 +msgid "Cancel shipment" +msgstr "" + +#: src/tables/sales/SalesOrderShipmentTable.tsx:184 msgid "Add shipment" msgstr "" -#: src/tables/sales/SalesOrderShipmentTable.tsx:146 -msgid "Shipped" -msgstr "" - -#: src/tables/sales/SalesOrderShipmentTable.tsx:147 +#: src/tables/sales/SalesOrderShipmentTable.tsx:198 msgid "Show shipments which have been shipped" msgstr "" -#: src/tables/sales/SalesOrderShipmentTable.tsx:151 -msgid "Delivered" -msgstr "" - -#: src/tables/sales/SalesOrderShipmentTable.tsx:152 +#: src/tables/sales/SalesOrderShipmentTable.tsx:203 msgid "Show shipments which have been delivered" msgstr "" -#: src/tables/settings/CurrencyTable.tsx:28 -msgid "Rate" +#: src/tables/settings/BarcodeScanHistoryTable.tsx:61 +msgid "Barcode Information" msgstr "" -#: src/tables/settings/CurrencyTable.tsx:40 -msgid "Exchange rates updated" +#: src/tables/settings/BarcodeScanHistoryTable.tsx:76 +#: src/tables/settings/ErrorTable.tsx:59 +msgid "Timestamp" msgstr "" -#: src/tables/settings/CurrencyTable.tsx:46 -msgid "Exchange rate update error" +#: src/tables/settings/BarcodeScanHistoryTable.tsx:86 +msgid "Endpoint" msgstr "" -#: src/tables/settings/CurrencyTable.tsx:57 -msgid "Refresh currency exchange rates" +#: src/tables/settings/BarcodeScanHistoryTable.tsx:90 +#: src/tables/settings/BarcodeScanHistoryTable.tsx:217 +#: src/tables/stock/StockItemTestResultTable.tsx:174 +msgid "Result" msgstr "" +#: src/tables/settings/BarcodeScanHistoryTable.tsx:98 +msgid "Context" +msgstr "" + +#: src/tables/settings/BarcodeScanHistoryTable.tsx:119 +msgid "Response" +msgstr "" + +#: src/tables/settings/BarcodeScanHistoryTable.tsx:213 +#: src/tables/settings/ImportSessionTable.tsx:121 +#: src/tables/stock/StockTrackingTable.tsx:183 +msgid "Filter by user" +msgstr "" + +#: src/tables/settings/BarcodeScanHistoryTable.tsx:218 +msgid "Filter by result" +msgstr "" + +#: src/tables/settings/BarcodeScanHistoryTable.tsx:232 +msgid "Delete Barcode Scan Record" +msgstr "" + +#: src/tables/settings/BarcodeScanHistoryTable.tsx:258 +msgid "Barcode Scan Details" +msgstr "" + +#: src/tables/settings/BarcodeScanHistoryTable.tsx:268 +msgid "Logging Disabled" +msgstr "" + +#: src/tables/settings/BarcodeScanHistoryTable.tsx:270 +msgid "Barcode logging is not enabled" +msgstr "" + +#: src/tables/settings/CustomStateTable.tsx:36 +msgid "Display Name" +msgstr "" + +#: src/tables/settings/CustomStateTable.tsx:52 +msgid "Model" +msgstr "" + +#: src/tables/settings/CustomStateTable.tsx:65 +#: src/tables/settings/CustomStateTable.tsx:115 +msgid "Add State" +msgstr "" + +#: src/tables/settings/CustomStateTable.tsx:77 +msgid "Edit State" +msgstr "" + +#: src/tables/settings/CustomStateTable.tsx:85 +msgid "Delete State" +msgstr "" + +#: src/tables/settings/CustomStateTable.tsx:115 +#~ msgid "Add state" +#~ msgstr "Add state" + #: src/tables/settings/CustomUnitsTable.tsx:50 msgid "Add Custom Unit" msgstr "" @@ -7312,59 +8540,71 @@ msgstr "" msgid "Add custom unit" msgstr "Thêm đơn vị tùy chỉnh" -#: src/tables/settings/ErrorTable.tsx:31 -msgid "When" -msgstr "" - -#: src/tables/settings/ErrorTable.tsx:41 -msgid "Error Information" -msgstr "" - #: src/tables/settings/ErrorTable.tsx:51 #~ msgid "Delete error report" #~ msgstr "Delete error report" -#: src/tables/settings/ErrorTable.tsx:53 +#: src/tables/settings/ErrorTable.tsx:67 +msgid "Traceback" +msgstr "" + +#: src/tables/settings/ErrorTable.tsx:103 +msgid "When" +msgstr "" + +#: src/tables/settings/ErrorTable.tsx:113 +msgid "Error Information" +msgstr "" + +#: src/tables/settings/ErrorTable.tsx:123 msgid "Delete Error Report" msgstr "" -#: src/tables/settings/ErrorTable.tsx:55 +#: src/tables/settings/ErrorTable.tsx:125 msgid "Are you sure you want to delete this error report?" msgstr "" -#: src/tables/settings/ErrorTable.tsx:57 +#: src/tables/settings/ErrorTable.tsx:127 msgid "Error report deleted" msgstr "" -#: src/tables/settings/ErrorTable.tsx:79 -#: src/tables/settings/FailedTasksTable.tsx:59 +#: src/tables/settings/ErrorTable.tsx:146 +#: src/tables/settings/FailedTasksTable.tsx:65 msgid "Error Details" msgstr "" -#: src/tables/settings/FailedTasksTable.tsx:26 -#: src/tables/settings/PendingTasksTable.tsx:19 +#: src/tables/settings/FailedTasksTable.tsx:32 +#: src/tables/settings/PendingTasksTable.tsx:23 #: src/tables/settings/ScheduledTasksTable.tsx:19 msgid "Task" msgstr "" -#: src/tables/settings/FailedTasksTable.tsx:32 -#: src/tables/settings/PendingTasksTable.tsx:24 +#: src/tables/settings/FailedTasksTable.tsx:38 +#: src/tables/settings/PendingTasksTable.tsx:28 msgid "Task ID" msgstr "" -#: src/tables/settings/FailedTasksTable.tsx:36 -#: src/tables/stock/StockItemTestResultTable.tsx:211 +#: src/tables/settings/FailedTasksTable.tsx:42 +#: src/tables/stock/StockItemTestResultTable.tsx:218 msgid "Started" msgstr "" -#: src/tables/settings/FailedTasksTable.tsx:42 +#: src/tables/settings/FailedTasksTable.tsx:48 msgid "Stopped" msgstr "" -#: src/tables/settings/FailedTasksTable.tsx:48 +#: src/tables/settings/FailedTasksTable.tsx:54 msgid "Attempts" msgstr "" +#: src/tables/settings/FailedTasksTable.tsx:92 +msgid "No Information" +msgstr "" + +#: src/tables/settings/FailedTasksTable.tsx:93 +msgid "No error details are available for this task" +msgstr "" + #: src/tables/settings/GroupTable.tsx:90 msgid "Group with id {id} not found" msgstr "" @@ -7398,42 +8638,34 @@ msgstr "" msgid "Edit group" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:38 +#: src/tables/settings/ImportSessionTable.tsx:37 msgid "Delete Import Session" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:44 +#: src/tables/settings/ImportSessionTable.tsx:43 #: src/tables/settings/ImportSessionTable.tsx:131 msgid "Create Import Session" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:69 +#: src/tables/settings/ImportSessionTable.tsx:68 msgid "Uploaded" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:79 -msgid "Imported Rows" -msgstr "" - -#: src/tables/settings/ImportSessionTable.tsx:109 -#: src/tables/settings/TemplateTable.tsx:289 +#: src/tables/settings/ImportSessionTable.tsx:108 +#: src/tables/settings/TemplateTable.tsx:369 msgid "Model Type" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:110 -#: src/tables/settings/TemplateTable.tsx:290 +#: src/tables/settings/ImportSessionTable.tsx:109 +#: src/tables/settings/TemplateTable.tsx:370 msgid "Filter by target model type" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:116 +#: src/tables/settings/ImportSessionTable.tsx:115 msgid "Filter by import session status" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:122 -msgid "Filter by user" -msgstr "" - -#: src/tables/settings/PendingTasksTable.tsx:38 +#: src/tables/settings/PendingTasksTable.tsx:42 msgid "Arguments" msgstr "" @@ -7461,12 +8693,16 @@ msgstr "" msgid "Next Run" msgstr "" -#: src/tables/settings/TemplateTable.tsx:85 -msgid "Template not found" +#: src/tables/settings/StocktakeReportTable.tsx:28 +msgid "Report" msgstr "" -#: src/tables/settings/TemplateTable.tsx:87 -msgid "An error occurred while fetching template details" +#: src/tables/settings/StocktakeReportTable.tsx:35 +msgid "Part Count" +msgstr "" + +#: src/tables/settings/StocktakeReportTable.tsx:58 +msgid "Delete Report" msgstr "" #: src/tables/settings/TemplateTable.tsx:120 @@ -7481,21 +8717,12 @@ msgstr "" #~ msgid "actions" #~ msgstr "actions" -#: src/tables/settings/TemplateTable.tsx:177 -msgid "Modify" +#: src/tables/settings/TemplateTable.tsx:162 +msgid "Template not found" msgstr "" -#: src/tables/settings/TemplateTable.tsx:178 -msgid "Modify template file" -msgstr "" - -#: src/tables/settings/TemplateTable.tsx:234 -#: src/tables/settings/TemplateTable.tsx:302 -msgid "Edit Template" -msgstr "" - -#: src/tables/settings/TemplateTable.tsx:242 -msgid "Delete template" +#: src/tables/settings/TemplateTable.tsx:164 +msgid "An error occurred while fetching template details" msgstr "" #: src/tables/settings/TemplateTable.tsx:243 @@ -7506,103 +8733,137 @@ msgstr "" #~ msgid "Create new" #~ msgstr "Create new" -#: src/tables/settings/TemplateTable.tsx:248 +#: src/tables/settings/TemplateTable.tsx:257 +msgid "Modify" +msgstr "" + +#: src/tables/settings/TemplateTable.tsx:258 +msgid "Modify template file" +msgstr "" + +#: src/tables/settings/TemplateTable.tsx:314 +#: src/tables/settings/TemplateTable.tsx:382 +msgid "Edit Template" +msgstr "" + +#: src/tables/settings/TemplateTable.tsx:322 +msgid "Delete template" +msgstr "" + +#: src/tables/settings/TemplateTable.tsx:328 msgid "Add Template" msgstr "" -#: src/tables/settings/TemplateTable.tsx:261 +#: src/tables/settings/TemplateTable.tsx:341 msgid "Add template" msgstr "" -#: src/tables/settings/TemplateTable.tsx:284 +#: src/tables/settings/TemplateTable.tsx:364 msgid "Filter by enabled status" msgstr "" -#: src/tables/settings/UserTable.tsx:82 +#: src/tables/settings/UserTable.tsx:81 msgid "User with id {id} not found" msgstr "" -#: src/tables/settings/UserTable.tsx:84 +#: src/tables/settings/UserTable.tsx:83 msgid "An error occurred while fetching user details" msgstr "" -#: src/tables/settings/UserTable.tsx:102 +#: src/tables/settings/UserTable.tsx:101 msgid "Is Active" msgstr "" -#: src/tables/settings/UserTable.tsx:103 +#: src/tables/settings/UserTable.tsx:102 msgid "Designates whether this user should be treated as active. Unselect this instead of deleting accounts." msgstr "" -#: src/tables/settings/UserTable.tsx:107 +#: src/tables/settings/UserTable.tsx:106 msgid "Is Staff" msgstr "" -#: src/tables/settings/UserTable.tsx:108 +#: src/tables/settings/UserTable.tsx:107 msgid "Designates whether the user can log into the django admin site." msgstr "" -#: src/tables/settings/UserTable.tsx:112 +#: src/tables/settings/UserTable.tsx:111 msgid "Is Superuser" msgstr "" -#: src/tables/settings/UserTable.tsx:113 +#: src/tables/settings/UserTable.tsx:112 msgid "Designates that this user has all permissions without explicitly assigning them." msgstr "" -#: src/tables/settings/UserTable.tsx:123 +#: src/tables/settings/UserTable.tsx:122 msgid "You cannot edit the rights for the currently logged-in user." msgstr "" -#: src/tables/settings/UserTable.tsx:154 +#: src/tables/settings/UserTable.tsx:153 msgid "No groups" msgstr "" -#: src/tables/settings/UserTable.tsx:245 +#: src/tables/settings/UserTable.tsx:244 msgid "Delete user" msgstr "" -#: src/tables/settings/UserTable.tsx:246 +#: src/tables/settings/UserTable.tsx:245 msgid "User deleted" msgstr "" -#: src/tables/settings/UserTable.tsx:248 +#: src/tables/settings/UserTable.tsx:247 msgid "Are you sure you want to delete this user?" msgstr "" -#: src/tables/settings/UserTable.tsx:254 -#: src/tables/settings/UserTable.tsx:272 +#: src/tables/settings/UserTable.tsx:253 +#: src/tables/settings/UserTable.tsx:271 msgid "Add user" msgstr "" -#: src/tables/settings/UserTable.tsx:262 +#: src/tables/settings/UserTable.tsx:261 msgid "Added user" msgstr "" -#: src/tables/settings/UserTable.tsx:285 +#: src/tables/settings/UserTable.tsx:284 msgid "Show active users" msgstr "" -#: src/tables/settings/UserTable.tsx:289 +#: src/tables/settings/UserTable.tsx:288 msgid "Staff" msgstr "" -#: src/tables/settings/UserTable.tsx:290 +#: src/tables/settings/UserTable.tsx:289 msgid "Show staff users" msgstr "" #: src/tables/settings/UserTable.tsx:294 -msgid "Superuser" -msgstr "" - -#: src/tables/settings/UserTable.tsx:295 msgid "Show superusers" msgstr "" -#: src/tables/settings/UserTable.tsx:305 +#: src/tables/settings/UserTable.tsx:304 msgid "Edit user" msgstr "" +#: src/tables/stock/InstalledItemsTable.tsx:37 +#: src/tables/stock/InstalledItemsTable.tsx:90 +msgid "Install Item" +msgstr "" + +#: src/tables/stock/InstalledItemsTable.tsx:39 +msgid "Item installed" +msgstr "" + +#: src/tables/stock/InstalledItemsTable.tsx:50 +msgid "Uninstall Item" +msgstr "" + +#: src/tables/stock/InstalledItemsTable.tsx:52 +msgid "Item uninstalled" +msgstr "" + +#: src/tables/stock/InstalledItemsTable.tsx:108 +msgid "Uninstall stock item" +msgstr "" + #: src/tables/stock/LocationTypesTable.tsx:39 #: src/tables/stock/LocationTypesTable.tsx:109 msgid "Add Location Type" @@ -7620,276 +8881,272 @@ msgstr "" msgid "Icon" msgstr "" -#: src/tables/stock/StockItemTable.tsx:101 +#: src/tables/stock/StockItemTable.tsx:90 msgid "This stock item is in production" msgstr "" -#: src/tables/stock/StockItemTable.tsx:110 +#: src/tables/stock/StockItemTable.tsx:97 msgid "This stock item has been assigned to a sales order" msgstr "" -#: src/tables/stock/StockItemTable.tsx:119 +#: src/tables/stock/StockItemTable.tsx:104 msgid "This stock item has been assigned to a customer" msgstr "" -#: src/tables/stock/StockItemTable.tsx:128 +#: src/tables/stock/StockItemTable.tsx:111 msgid "This stock item is installed in another stock item" msgstr "" -#: src/tables/stock/StockItemTable.tsx:137 +#: src/tables/stock/StockItemTable.tsx:118 msgid "This stock item has been consumed by a build order" msgstr "" -#: src/tables/stock/StockItemTable.tsx:146 +#: src/tables/stock/StockItemTable.tsx:125 +msgid "This stock item is unavailable" +msgstr "" + +#: src/tables/stock/StockItemTable.tsx:134 msgid "This stock item has expired" msgstr "" -#: src/tables/stock/StockItemTable.tsx:150 +#: src/tables/stock/StockItemTable.tsx:138 msgid "This stock item is stale" msgstr "" -#: src/tables/stock/StockItemTable.tsx:161 +#: src/tables/stock/StockItemTable.tsx:150 msgid "This stock item is fully allocated" msgstr "" -#: src/tables/stock/StockItemTable.tsx:168 +#: src/tables/stock/StockItemTable.tsx:157 msgid "This stock item is partially allocated" msgstr "" -#: src/tables/stock/StockItemTable.tsx:196 +#: src/tables/stock/StockItemTable.tsx:185 msgid "This stock item has been depleted" msgstr "" -#: src/tables/stock/StockItemTable.tsx:232 +#: src/tables/stock/StockItemTable.tsx:280 msgid "Stocktake Date" msgstr "" -#: src/tables/stock/StockItemTable.tsx:236 -msgid "Expiry Date" -msgstr "" - -#: src/tables/stock/StockItemTable.tsx:260 -msgid "Stock Value" -msgstr "" - -#: src/tables/stock/StockItemTable.tsx:290 +#: src/tables/stock/StockItemTable.tsx:294 msgid "Show stock for active parts" msgstr "" -#: src/tables/stock/StockItemTable.tsx:295 +#: src/tables/stock/StockItemTable.tsx:299 msgid "Filter by stock status" msgstr "" #: src/tables/stock/StockItemTable.tsx:301 -msgid "Show stock for assmebled parts" +#~ msgid "Show stock for assmebled parts" +#~ msgstr "Show stock for assmebled parts" + +#: src/tables/stock/StockItemTable.tsx:305 +msgid "Show stock for assembled parts" msgstr "" -#: src/tables/stock/StockItemTable.tsx:306 +#: src/tables/stock/StockItemTable.tsx:310 msgid "Show items which have been allocated" msgstr "" -#: src/tables/stock/StockItemTable.tsx:311 +#: src/tables/stock/StockItemTable.tsx:315 msgid "Show items which are available" msgstr "" -#: src/tables/stock/StockItemTable.tsx:315 +#: src/tables/stock/StockItemTable.tsx:319 #: src/tables/stock/StockLocationTable.tsx:44 msgid "Include Sublocations" msgstr "" -#: src/tables/stock/StockItemTable.tsx:316 +#: src/tables/stock/StockItemTable.tsx:320 msgid "Include stock in sublocations" msgstr "" -#: src/tables/stock/StockItemTable.tsx:320 +#: src/tables/stock/StockItemTable.tsx:324 msgid "Depleted" msgstr "" -#: src/tables/stock/StockItemTable.tsx:321 +#: src/tables/stock/StockItemTable.tsx:325 msgid "Show depleted stock items" msgstr "" -#: src/tables/stock/StockItemTable.tsx:326 +#: src/tables/stock/StockItemTable.tsx:330 msgid "Show items which are in stock" msgstr "" -#: src/tables/stock/StockItemTable.tsx:331 +#: src/tables/stock/StockItemTable.tsx:335 msgid "Show items which are in production" msgstr "" -#: src/tables/stock/StockItemTable.tsx:336 +#: src/tables/stock/StockItemTable.tsx:340 msgid "Include stock items for variant parts" msgstr "" -#: src/tables/stock/StockItemTable.tsx:341 +#: src/tables/stock/StockItemTable.tsx:345 msgid "Show stock items which are installed in other items" msgstr "" -#: src/tables/stock/StockItemTable.tsx:345 +#: src/tables/stock/StockItemTable.tsx:349 msgid "Sent to Customer" msgstr "" -#: src/tables/stock/StockItemTable.tsx:346 +#: src/tables/stock/StockItemTable.tsx:350 msgid "Show items which have been sent to a customer" msgstr "" -#: src/tables/stock/StockItemTable.tsx:350 +#: src/tables/stock/StockItemTable.tsx:354 msgid "Is Serialized" msgstr "" -#: src/tables/stock/StockItemTable.tsx:351 +#: src/tables/stock/StockItemTable.tsx:355 msgid "Show items which have a serial number" msgstr "" -#: src/tables/stock/StockItemTable.tsx:358 +#: src/tables/stock/StockItemTable.tsx:362 msgid "Has Batch Code" msgstr "" -#: src/tables/stock/StockItemTable.tsx:359 +#: src/tables/stock/StockItemTable.tsx:363 msgid "Show items which have a batch code" msgstr "" -#: src/tables/stock/StockItemTable.tsx:365 +#: src/tables/stock/StockItemTable.tsx:369 msgid "Show tracked items" msgstr "" -#: src/tables/stock/StockItemTable.tsx:369 +#: src/tables/stock/StockItemTable.tsx:373 msgid "Has Purchase Price" msgstr "" -#: src/tables/stock/StockItemTable.tsx:370 +#: src/tables/stock/StockItemTable.tsx:374 msgid "Show items which have a purchase price" msgstr "" -#: src/tables/stock/StockItemTable.tsx:378 +#: src/tables/stock/StockItemTable.tsx:382 msgid "External Location" msgstr "" -#: src/tables/stock/StockItemTable.tsx:379 +#: src/tables/stock/StockItemTable.tsx:383 msgid "Show items in an external location" msgstr "" -#: src/tables/stock/StockItemTable.tsx:451 +#: src/tables/stock/StockItemTable.tsx:456 msgid "Add a new stock item" msgstr "" -#: src/tables/stock/StockItemTable.tsx:460 +#: src/tables/stock/StockItemTable.tsx:465 msgid "Remove some quantity from a stock item" msgstr "" -#: src/tables/stock/StockItemTable.tsx:482 +#: src/tables/stock/StockItemTable.tsx:487 msgid "Move Stock items to new locations" msgstr "" -#: src/tables/stock/StockItemTable.tsx:489 +#: src/tables/stock/StockItemTable.tsx:494 msgid "Change stock status" msgstr "" -#: src/tables/stock/StockItemTable.tsx:491 +#: src/tables/stock/StockItemTable.tsx:496 msgid "Change the status of stock items" msgstr "" -#: src/tables/stock/StockItemTable.tsx:498 +#: src/tables/stock/StockItemTable.tsx:503 msgid "Merge stock" msgstr "" -#: src/tables/stock/StockItemTable.tsx:500 +#: src/tables/stock/StockItemTable.tsx:505 msgid "Merge stock items" msgstr "" -#: src/tables/stock/StockItemTable.tsx:509 -#: src/tables/stock/StockItemTable.tsx:516 +#: src/tables/stock/StockItemTable.tsx:514 +#: src/tables/stock/StockItemTable.tsx:521 msgid "Order new stock" msgstr "" -#: src/tables/stock/StockItemTable.tsx:514 +#: src/tables/stock/StockItemTable.tsx:519 msgid "Assign to customer" msgstr "" -#: src/tables/stock/StockItemTable.tsx:523 +#: src/tables/stock/StockItemTable.tsx:528 msgid "Delete stock" msgstr "" -#: src/tables/stock/StockItemTable.tsx:525 -msgid "Delete stock items" -msgstr "" +#: src/tables/stock/StockItemTable.tsx:528 +#~ msgid "Delete stock items" +#~ msgstr "Delete stock items" -#: src/tables/stock/StockItemTestResultTable.tsx:131 +#: src/tables/stock/StockItemTestResultTable.tsx:137 msgid "Test" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:157 +#: src/tables/stock/StockItemTestResultTable.tsx:163 msgid "Test result for installed stock item" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:168 -msgid "Result" -msgstr "" - -#: src/tables/stock/StockItemTestResultTable.tsx:190 +#: src/tables/stock/StockItemTestResultTable.tsx:196 msgid "Attachment" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:206 +#: src/tables/stock/StockItemTestResultTable.tsx:212 msgid "Test station" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:226 +#: src/tables/stock/StockItemTestResultTable.tsx:234 msgid "Finished" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:268 -#: src/tables/stock/StockItemTestResultTable.tsx:339 +#: src/tables/stock/StockItemTestResultTable.tsx:286 +#: src/tables/stock/StockItemTestResultTable.tsx:357 msgid "Edit Test Result" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:270 +#: src/tables/stock/StockItemTestResultTable.tsx:288 msgid "Test result updated" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:276 -#: src/tables/stock/StockItemTestResultTable.tsx:348 +#: src/tables/stock/StockItemTestResultTable.tsx:294 +#: src/tables/stock/StockItemTestResultTable.tsx:366 msgid "Delete Test Result" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:278 +#: src/tables/stock/StockItemTestResultTable.tsx:296 msgid "Test result deleted" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:292 +#: src/tables/stock/StockItemTestResultTable.tsx:310 msgid "Test Passed" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:293 +#: src/tables/stock/StockItemTestResultTable.tsx:311 msgid "Test result has been recorded" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:300 +#: src/tables/stock/StockItemTestResultTable.tsx:318 msgid "Failed to record test result" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:317 +#: src/tables/stock/StockItemTestResultTable.tsx:335 msgid "Pass Test" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:366 +#: src/tables/stock/StockItemTestResultTable.tsx:384 msgid "Show results for required tests" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:370 +#: src/tables/stock/StockItemTestResultTable.tsx:388 msgid "Include Installed" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:371 +#: src/tables/stock/StockItemTestResultTable.tsx:389 msgid "Show results for installed stock items" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:375 -#: src/tables/stock/TestStatisticsTable.tsx:74 +#: src/tables/stock/StockItemTestResultTable.tsx:393 +#: src/tables/stock/TestStatisticsTable.tsx:62 msgid "Passed" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:376 +#: src/tables/stock/StockItemTestResultTable.tsx:394 msgid "Show only passed tests" msgstr "" @@ -7922,28 +9179,32 @@ msgid "Filter by location type" msgstr "" #: src/tables/stock/StockLocationTable.tsx:107 -#: src/tables/stock/StockLocationTable.tsx:133 +#: src/tables/stock/StockLocationTable.tsx:134 msgid "Add Stock Location" msgstr "" -#: src/tables/stock/StockTrackingTable.tsx:64 +#: src/tables/stock/StockTrackingTable.tsx:68 msgid "Added" msgstr "" -#: src/tables/stock/StockTrackingTable.tsx:69 +#: src/tables/stock/StockTrackingTable.tsx:73 msgid "Removed" msgstr "" #: src/tables/stock/StockTrackingTable.tsx:198 +msgid "Details" +msgstr "Chi tiết" + +#: src/tables/stock/StockTrackingTable.tsx:213 msgid "No user information" msgstr "" -#: src/tables/stock/TestStatisticsTable.tsx:46 -#: src/tables/stock/TestStatisticsTable.tsx:76 +#: src/tables/stock/TestStatisticsTable.tsx:34 +#: src/tables/stock/TestStatisticsTable.tsx:64 msgid "Total" msgstr "" -#: src/tables/stock/TestStatisticsTable.tsx:75 +#: src/tables/stock/TestStatisticsTable.tsx:63 msgid "Failed" msgstr "" diff --git a/src/frontend/src/locales/zh_Hans/messages.po b/src/frontend/src/locales/zh_Hans/messages.po index 3b5dc22b0a..145ddf0979 100644 --- a/src/frontend/src/locales/zh_Hans/messages.po +++ b/src/frontend/src/locales/zh_Hans/messages.po @@ -8,15 +8,15 @@ msgstr "" "Language: zh\n" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"PO-Revision-Date: 2024-08-20 19:50\n" +"PO-Revision-Date: 2024-11-04 10:27\n" "Last-Translator: \n" "Language-Team: Chinese Simplified\n" "Plural-Forms: nplurals=1; plural=0;\n" "X-Crowdin-Project: inventree\n" "X-Crowdin-Project-ID: 452300\n" "X-Crowdin-Language: zh-CN\n" -"X-Crowdin-File: /[inventree.InvenTree] l10/src/frontend/src/locales/en/messages.po\n" -"X-Crowdin-File-ID: 205\n" +"X-Crowdin-File: /src/frontend/src/locales/en/messages.po\n" +"X-Crowdin-File-ID: 252\n" #: src/components/Boundary.tsx:12 msgid "Error rendering component" @@ -27,8 +27,8 @@ msgid "An error occurred while rendering this component. Refer to the console fo msgstr "渲染此组件时发生错误。请参阅控制台获取更多信息。" #: src/components/DashboardItemProxy.tsx:34 -msgid "Title" -msgstr "标题" +#~ msgid "Title" +#~ msgstr "Title" #: src/components/buttons/AdminButton.tsx:80 msgid "Open in admin interface" @@ -38,82 +38,99 @@ msgstr "在管理员界面打开" #~ msgid "Copy to clipboard" #~ msgstr "Copy to clipboard" -#: src/components/buttons/CopyButton.tsx:24 +#: src/components/buttons/CopyButton.tsx:29 msgid "Copied" msgstr "已复制" -#: src/components/buttons/CopyButton.tsx:24 +#: src/components/buttons/CopyButton.tsx:29 msgid "Copy" msgstr "复制" -#: src/components/buttons/PrintingActions.tsx:93 +#: src/components/buttons/PrintingActions.tsx:97 msgid "Print Label" msgstr "打印标签" -#: src/components/buttons/PrintingActions.tsx:99 +#: src/components/buttons/PrintingActions.tsx:103 msgid "Print" msgstr "打印" -#: src/components/buttons/PrintingActions.tsx:100 +#: src/components/buttons/PrintingActions.tsx:104 msgid "Label printing completed successfully" msgstr "标签打印成功" -#: src/components/buttons/PrintingActions.tsx:106 -#: src/components/buttons/PrintingActions.tsx:144 -#: src/components/editors/NotesEditor.tsx:65 -#: src/components/editors/NotesEditor.tsx:165 -#: src/components/forms/fields/ApiFormField.tsx:319 +#: src/components/buttons/PrintingActions.tsx:110 +#: src/components/buttons/PrintingActions.tsx:148 +#: src/components/editors/NotesEditor.tsx:73 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:154 +#: src/components/forms/fields/ApiFormField.tsx:328 +#: src/components/forms/fields/TableField.tsx:43 #: src/components/importer/ImportDataSelector.tsx:187 -#: src/components/importer/ImporterColumnSelector.tsx:207 +#: src/components/importer/ImporterColumnSelector.tsx:210 #: src/components/modals/LicenseModal.tsx:75 -#: src/components/nav/SearchDrawer.tsx:448 +#: src/components/nav/SearchDrawer.tsx:458 +#: src/components/render/ModelType.tsx:290 #: src/pages/ErrorPage.tsx:11 -#: src/pages/part/PartPricingPanel.tsx:67 -#: src/tables/InvenTreeTable.tsx:495 +#: src/pages/part/PartPricingPanel.tsx:71 +#: src/tables/InvenTreeTable.tsx:481 #: src/tables/bom/BomTable.tsx:450 -#: src/tables/stock/StockItemTestResultTable.tsx:299 +#: src/tables/stock/StockItemTestResultTable.tsx:317 msgid "Error" msgstr "错误" -#: src/components/buttons/PrintingActions.tsx:107 +#: src/components/buttons/PrintingActions.tsx:111 msgid "The label could not be generated" msgstr "无法生成此标签" -#: src/components/buttons/PrintingActions.tsx:122 +#: src/components/buttons/PrintingActions.tsx:126 msgid "Print Report" msgstr "打印报告" -#: src/components/buttons/PrintingActions.tsx:138 +#: src/components/buttons/PrintingActions.tsx:142 msgid "Generate" msgstr "生成" -#: src/components/buttons/PrintingActions.tsx:139 +#: src/components/buttons/PrintingActions.tsx:143 msgid "Report printing completed successfully" msgstr "报告打印成功" -#: src/components/buttons/PrintingActions.tsx:145 +#: src/components/buttons/PrintingActions.tsx:149 msgid "The report could not be generated" msgstr "无法生成此报告" -#: src/components/buttons/PrintingActions.tsx:173 +#: src/components/buttons/PrintingActions.tsx:177 msgid "Printing Actions" msgstr "打印操作" -#: src/components/buttons/PrintingActions.tsx:178 +#: src/components/buttons/PrintingActions.tsx:182 msgid "Print Labels" msgstr "打印标签" -#: src/components/buttons/PrintingActions.tsx:184 +#: src/components/buttons/PrintingActions.tsx:188 msgid "Print Reports" msgstr "列印報告" +#: src/components/buttons/RemoveRowButton.tsx:8 +msgid "Remove this row" +msgstr "移除此行" + #: src/components/buttons/ScanButton.tsx:15 -msgid "Scan QR code" -msgstr "扫描二维码" +#: src/components/nav/NavigationDrawer.tsx:117 +#: src/forms/PurchaseOrderForms.tsx:379 +#: src/forms/PurchaseOrderForms.tsx:473 +msgid "Scan Barcode" +msgstr "扫描条形码" + +#: src/components/buttons/ScanButton.tsx:15 +#~ msgid "Scan QR code" +#~ msgstr "Scan QR code" #: src/components/buttons/ScanButton.tsx:20 -msgid "Open QR code scanner" -msgstr "打开二维码扫描器" +msgid "Open Barcode Scanner" +msgstr "" + +#: src/components/buttons/ScanButton.tsx:20 +#~ msgid "Open QR code scanner" +#~ msgstr "Open QR code scanner" #: src/components/buttons/SpotlightButton.tsx:14 msgid "Open spotlight" @@ -128,85 +145,347 @@ msgid "Fail" msgstr "失效" #: src/components/buttons/YesNoButton.tsx:33 -#: src/tables/Filter.tsx:52 +#: src/tables/Filter.tsx:61 msgid "Yes" msgstr "是" #: src/components/buttons/YesNoButton.tsx:33 -#: src/tables/Filter.tsx:53 +#: src/tables/Filter.tsx:62 msgid "No" msgstr "否" -#: src/components/details/Details.tsx:301 +#: src/components/dashboard/DashboardLayout.tsx:286 +msgid "No Widgets Selected" +msgstr "" + +#: src/components/dashboard/DashboardLayout.tsx:289 +msgid "Use the menu to add widgets to the dashboard" +msgstr "" + +#: src/components/dashboard/DashboardMenu.tsx:59 +#: src/components/dashboard/DashboardMenu.tsx:126 +msgid "Accept Layout" +msgstr "" + +#: src/components/dashboard/DashboardMenu.tsx:91 +#: src/components/nav/NavigationDrawer.tsx:71 +#: src/defaults/actions.tsx:17 +#: src/defaults/links.tsx:9 +#: src/pages/Index/Settings/UserSettings.tsx:47 +msgid "Dashboard" +msgstr "仪表盘" + +#: src/components/dashboard/DashboardMenu.tsx:99 +msgid "Edit Layout" +msgstr "编辑布局" + +#: src/components/dashboard/DashboardMenu.tsx:108 +msgid "Add Widget" +msgstr "" + +#: src/components/dashboard/DashboardMenu.tsx:117 +msgid "Remove Widgets" +msgstr "" + +#: src/components/dashboard/DashboardWidget.tsx:65 +msgid "Remove this widget from the dashboard" +msgstr "" + +#: src/components/dashboard/DashboardWidgetDrawer.tsx:77 +msgid "Filter dashboard widgets" +msgstr "" + +#: src/components/dashboard/DashboardWidgetDrawer.tsx:98 +msgid "Add this widget to the dashboard" +msgstr "" + +#: src/components/dashboard/DashboardWidgetDrawer.tsx:123 +msgid "No Widgets Available" +msgstr "" + +#: src/components/dashboard/DashboardWidgetDrawer.tsx:124 +msgid "There are no more widgets available for the dashboard" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:19 +msgid "Subscribed Parts" +msgstr "已订购零件" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:20 +msgid "Show the number of parts which you have subscribed to" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:26 +msgid "Subscribed Categories" +msgstr "已订阅类别" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:27 +msgid "Show the number of part categories which you have subscribed to" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:35 +#: src/pages/part/PartSchedulingDetail.tsx:304 +#: src/tables/part/PartTable.tsx:238 +msgid "Low Stock" +msgstr "低库存" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:37 +msgid "Show the number of parts which are low on stock" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:43 +msgid "Expired Stock Items" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:45 +msgid "Show the number of stock items which have expired" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:51 +msgid "Stale Stock Items" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:53 +msgid "Show the number of stock items which are stale" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:59 +msgid "Active Build Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:61 +msgid "Show the number of build orders which are currently active" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:66 +msgid "Overdue Build Orders" +msgstr "逾期的生产订单" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:68 +msgid "Show the number of build orders which are overdue" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:73 +msgid "Assigned Build Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:75 +msgid "Show the number of build orders which are assigned to you" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:80 +msgid "Active Sales Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:82 +msgid "Show the number of sales orders which are currently active" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:87 +msgid "Overdue Sales Orders" +msgstr "逾期的销售订单" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:89 +msgid "Show the number of sales orders which are overdue" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:94 +msgid "Assigned Sales Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:96 +msgid "Show the number of sales orders which are assigned to you" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:101 +msgid "Active Purchase Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:103 +msgid "Show the number of purchase orders which are currently active" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:108 +msgid "Overdue Purchase Orders" +msgstr "逾期的采购订单" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:110 +msgid "Show the number of purchase orders which are overdue" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:115 +msgid "Assigned Purchase Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:117 +msgid "Show the number of purchase orders which are assigned to you" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:122 +msgid "Active Return Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:124 +msgid "Show the number of return orders which are currently active" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:129 +msgid "Overdue Return Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:131 +msgid "Show the number of return orders which are overdue" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:136 +msgid "Assigned Return Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:138 +msgid "Show the number of return orders which are assigned to you" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:149 +#: src/components/dashboard/widgets/GetStartedWidget.tsx:15 +#: src/defaults/links.tsx:38 +msgid "Getting Started" +msgstr "快速上手" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:150 +#: src/defaults/links.tsx:41 +msgid "Getting started with InvenTree" +msgstr "开始使用 InvenTree" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:157 +#: src/components/dashboard/widgets/NewsWidget.tsx:123 +msgid "News Updates" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:158 +msgid "The latest news from InvenTree" +msgstr "" + +#: src/components/dashboard/widgets/ColorToggleWidget.tsx:18 +#: src/components/nav/MainMenu.tsx:77 +msgid "Change Color Mode" +msgstr "更改色彩模式" + +#: src/components/dashboard/widgets/ColorToggleWidget.tsx:23 +msgid "Change the color mode of the user interface" +msgstr "" + +#: src/components/dashboard/widgets/LanguageSelectWidget.tsx:18 +msgid "Change Language" +msgstr "" + +#: src/components/dashboard/widgets/LanguageSelectWidget.tsx:23 +msgid "Change the language of the user interface" +msgstr "" + +#: src/components/dashboard/widgets/NewsWidget.tsx:61 +#: src/components/nav/NotificationDrawer.tsx:88 +#: src/pages/Notifications.tsx:73 +msgid "Mark as read" +msgstr "标记为已读" + +#: src/components/dashboard/widgets/NewsWidget.tsx:115 +msgid "Requires Superuser" +msgstr "" + +#: src/components/dashboard/widgets/NewsWidget.tsx:116 +msgid "This widget requires superuser permissions" +msgstr "" + +#: src/components/dashboard/widgets/NewsWidget.tsx:133 +msgid "No News" +msgstr "" + +#: src/components/dashboard/widgets/NewsWidget.tsx:134 +msgid "There are no unread news items" +msgstr "" + +#: src/components/details/Details.tsx:300 msgid "No name defined" msgstr "未定义名称" -#: src/components/details/DetailsImage.tsx:65 +#: src/components/details/DetailsImage.tsx:69 msgid "Remove Image" msgstr "删除图片" -#: src/components/details/DetailsImage.tsx:68 +#: src/components/details/DetailsImage.tsx:72 msgid "Remove the associated image from this item?" msgstr "删除与此项关联的图片?" -#: src/components/details/DetailsImage.tsx:71 -#: src/forms/StockForms.tsx:533 +#: src/components/details/DetailsImage.tsx:75 +#: src/forms/StockForms.tsx:651 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:199 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:306 -#: src/pages/stock/StockDetail.tsx:526 +#: src/pages/stock/StockDetail.tsx:690 msgid "Remove" msgstr "移除" -#: src/components/details/DetailsImage.tsx:71 -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:158 -#: src/components/items/ActionDropdown.tsx:215 -#: src/components/items/ActionDropdown.tsx:216 -#: src/contexts/ThemeContext.tsx:43 +#: src/components/details/DetailsImage.tsx:75 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:184 +#: src/components/items/ActionDropdown.tsx:268 +#: src/components/items/ActionDropdown.tsx:269 +#: src/contexts/ThemeContext.tsx:45 #: src/hooks/UseForm.tsx:40 -#: src/tables/FilterSelectDrawer.tsx:205 -#: src/tables/build/BuildOutputTable.tsx:286 +#: src/tables/FilterSelectDrawer.tsx:241 +#: src/tables/RowActions.tsx:59 +#: src/tables/build/BuildOutputTable.tsx:434 msgid "Cancel" msgstr "取消" -#: src/components/details/DetailsImage.tsx:97 +#: src/components/details/DetailsImage.tsx:101 msgid "Drag and drop to upload" msgstr "拖拽上传" -#: src/components/details/DetailsImage.tsx:100 +#: src/components/details/DetailsImage.tsx:104 msgid "Click to select file(s)" msgstr "点击选择文件" -#: src/components/details/DetailsImage.tsx:226 +#: src/components/details/DetailsImage.tsx:230 msgid "Clear" msgstr "清除" -#: src/components/details/DetailsImage.tsx:232 -#: src/components/forms/ApiForm.tsx:627 -#: src/contexts/ThemeContext.tsx:43 -#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:60 +#: src/components/details/DetailsImage.tsx:236 +#: src/components/forms/ApiForm.tsx:660 +#: src/contexts/ThemeContext.tsx:45 msgid "Submit" msgstr "提交" -#: src/components/details/DetailsImage.tsx:272 +#: src/components/details/DetailsImage.tsx:280 msgid "Select from existing images" msgstr "从现有图片中选择" -#: src/components/details/DetailsImage.tsx:280 +#: src/components/details/DetailsImage.tsx:288 msgid "Select Image" msgstr "选择图片" -#: src/components/details/DetailsImage.tsx:292 +#: src/components/details/DetailsImage.tsx:304 +msgid "Download remote image" +msgstr "下载远程图片" + +#: src/components/details/DetailsImage.tsx:319 msgid "Upload new image" msgstr "上传新图片" -#: src/components/details/DetailsImage.tsx:299 +#: src/components/details/DetailsImage.tsx:326 msgid "Upload Image" msgstr "上传图片" -#: src/components/details/DetailsImage.tsx:312 +#: src/components/details/DetailsImage.tsx:339 msgid "Delete image" msgstr "删除图片" +#: src/components/details/DetailsImage.tsx:373 +msgid "Download Image" +msgstr "下载图片" + +#: src/components/details/DetailsImage.tsx:378 +msgid "Image downloaded successfully" +msgstr "图片下载成功" + #: src/components/details/PartIcons.tsx:43 #~ msgid "Part is a template part (variants can be made from this part)" #~ msgstr "Part is a template part (variants can be made from this part)" @@ -235,36 +514,57 @@ msgstr "删除图片" #~ msgid "Part is virtual (not a physical part)" #~ msgstr "Part is virtual (not a physical part)" -#: src/components/editors/NotesEditor.tsx:66 +#: src/components/editors/NotesEditor.tsx:74 msgid "Image upload failed" msgstr "图片上传失败" -#: src/components/editors/NotesEditor.tsx:156 -#: src/components/forms/ApiForm.tsx:467 +#: src/components/editors/NotesEditor.tsx:83 +#: src/components/editors/NotesEditor.tsx:119 +#: src/components/forms/ApiForm.tsx:475 #: src/tables/bom/BomTable.tsx:441 msgid "Success" msgstr "操作成功" -#: src/components/editors/NotesEditor.tsx:157 +#: src/components/editors/NotesEditor.tsx:84 +msgid "Image uploaded successfully" +msgstr "图片已经上传成功" + +#: src/components/editors/NotesEditor.tsx:120 msgid "Notes saved successfully" msgstr "备注保存成功" -#: src/components/editors/NotesEditor.tsx:166 +#: src/components/editors/NotesEditor.tsx:131 msgid "Failed to save notes" msgstr "保存记事失败" -#: src/components/editors/NotesEditor.tsx:198 -msgid "Preview Notes" -msgstr "预览备注" +#: src/components/editors/NotesEditor.tsx:134 +msgid "Error Saving Notes" +msgstr "错误保存笔记" -#: src/components/editors/NotesEditor.tsx:198 -msgid "Edit Notes" -msgstr "编辑备注" +#: src/components/editors/NotesEditor.tsx:151 +#~ msgid "Disable Editing" +#~ msgstr "Disable Editing" -#: src/components/editors/NotesEditor.tsx:212 +#: src/components/editors/NotesEditor.tsx:154 msgid "Save Notes" msgstr "保存备注" +#: src/components/editors/NotesEditor.tsx:173 +msgid "Close Editor" +msgstr "关闭编辑器" + +#: src/components/editors/NotesEditor.tsx:180 +msgid "Enable Editing" +msgstr "启用编辑" + +#: src/components/editors/NotesEditor.tsx:198 +#~ msgid "Preview Notes" +#~ msgstr "Preview Notes" + +#: src/components/editors/NotesEditor.tsx:198 +#~ msgid "Edit Notes" +#~ msgstr "Edit Notes" + #: src/components/editors/TemplateEditor/CodeEditor/index.tsx:9 msgid "Code" msgstr "代码" @@ -281,40 +581,44 @@ msgstr "预览不可用,点击\"重新加载预览\"。" msgid "PDF Preview" msgstr "PDF 预览" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:104 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:115 msgid "Error loading template" msgstr "加载模板时出错" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:116 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:127 msgid "Error saving template" msgstr "保存模板时出错" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:146 -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:274 -msgid "Save & Reload Preview" -msgstr "保存并重新加载预览" - -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:151 -msgid "Are you sure you want to Save & Reload the preview?" -msgstr "您确定要保存并重新加载预览吗?" - #: src/components/editors/TemplateEditor/TemplateEditor.tsx:151 #~ msgid "Save & Reload preview?" #~ msgstr "Save & Reload preview?" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:153 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:155 +msgid "Could not load the template from the server." +msgstr "无法从服务器上加载模板。" + +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:172 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:303 +msgid "Save & Reload Preview" +msgstr "保存并重新加载预览" + +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:177 +msgid "Are you sure you want to Save & Reload the preview?" +msgstr "您确定要保存并重新加载预览吗?" + +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:179 msgid "To render the preview the current template needs to be replaced on the server with your modifications which may break the label if it is under active use. Do you want to proceed?" msgstr "要渲染预览效果,需要在服务器上用您的修改替换当前模板,如果标签正在使用中,可能会损坏标签。您想继续吗?" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:157 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:183 msgid "Save & Reload" msgstr "保存并重新加载" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:189 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:215 msgid "Preview updated" msgstr "预览已更新" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:190 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:216 msgid "The preview has been updated successfully." msgstr "预览已成功更新。" @@ -322,15 +626,15 @@ msgstr "预览已成功更新。" #~ msgid "Save & Reload preview" #~ msgstr "Save & Reload preview" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:266 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:295 msgid "Reload preview" msgstr "重新加载预览" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:267 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:296 msgid "Use the currently stored template from the server" msgstr "使用当前存储服务器的模板" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:275 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:304 msgid "Save the current template and reload the preview" msgstr "保存当前模板并重新加载预览" @@ -338,11 +642,11 @@ msgstr "保存当前模板并重新加载预览" #~ msgid "to preview" #~ msgstr "to preview" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:333 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:365 msgid "Select instance to preview" msgstr "选择预览实例" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:377 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:409 msgid "Error rendering template" msgstr "渲染模板时出错" @@ -379,6 +683,7 @@ msgid "This page does not exist" msgstr "此页面不存在" #: src/components/errors/PermissionDenied.tsx:8 +#: src/functions/notifications.tsx:24 msgid "Permission Denied" msgstr "权限受限" @@ -394,8 +699,8 @@ msgstr "服务器错误" msgid "A server error occurred" msgstr "服务器出错。" -#: src/components/forms/ApiForm.tsx:151 -#: src/components/forms/ApiForm.tsx:555 +#: src/components/forms/ApiForm.tsx:154 +#: src/components/forms/ApiForm.tsx:579 msgid "Form Error" msgstr "表单错误" @@ -403,22 +708,22 @@ msgstr "表单错误" #~ msgid "Form Errors Exist" #~ msgstr "Form Errors Exist" -#: src/components/forms/ApiForm.tsx:563 +#: src/components/forms/ApiForm.tsx:587 msgid "Errors exist for one or more form fields" msgstr "一个或多个表单字段存在错误" -#: src/components/forms/ApiForm.tsx:665 -#: src/tables/plugin/PluginListTable.tsx:388 +#: src/components/forms/ApiForm.tsx:698 +#: src/tables/plugin/PluginListTable.tsx:195 msgid "Update" msgstr "更新" -#: src/components/forms/ApiForm.tsx:685 -#: src/components/items/ActionDropdown.tsx:195 +#: src/components/forms/ApiForm.tsx:718 +#: src/components/items/ActionDropdown.tsx:248 #: src/hooks/UseForm.tsx:122 -#: src/pages/Index/Scan.tsx:343 +#: src/pages/Index/Scan.tsx:357 #: src/pages/Notifications.tsx:123 -#: src/tables/RowActions.tsx:43 -#: src/tables/plugin/PluginListTable.tsx:420 +#: src/tables/RowActions.tsx:49 +#: src/tables/plugin/PluginListTable.tsx:232 msgid "Delete" msgstr "删除" @@ -428,14 +733,6 @@ msgstr "删除" #~ msgid "Check your your input and try again." #~ msgstr "Check your your input and try again." -#: src/components/forms/AuthenticationForm.tsx:51 -msgid "Login successful" -msgstr "登录成功" - -#: src/components/forms/AuthenticationForm.tsx:52 -msgid "Logged in successfully" -msgstr "登录成功" - #: src/components/forms/AuthenticationForm.tsx:52 #~ msgid "Welcome back!" #~ msgstr "Welcome back!" @@ -444,14 +741,22 @@ msgstr "登录成功" #~ msgid "Login successfull" #~ msgstr "Login successfull" -#: src/components/forms/AuthenticationForm.tsx:58 +#: src/components/forms/AuthenticationForm.tsx:55 +msgid "Login successful" +msgstr "登录成功" + +#: src/components/forms/AuthenticationForm.tsx:56 +msgid "Logged in successfully" +msgstr "登录成功" + +#: src/components/forms/AuthenticationForm.tsx:61 msgid "Login failed" msgstr "登录失败" -#: src/components/forms/AuthenticationForm.tsx:59 -#: src/components/forms/AuthenticationForm.tsx:76 -#: src/components/forms/AuthenticationForm.tsx:211 -#: src/functions/auth.tsx:164 +#: src/components/forms/AuthenticationForm.tsx:62 +#: src/components/forms/AuthenticationForm.tsx:79 +#: src/components/forms/AuthenticationForm.tsx:214 +#: src/functions/auth.tsx:175 msgid "Check your input and try again." msgstr "请检查您的输入并重试。" @@ -460,45 +765,46 @@ msgstr "请检查您的输入并重试。" #~ msgid "Mail delivery successfull" #~ msgstr "Mail delivery successfull" -#: src/components/forms/AuthenticationForm.tsx:70 -#: src/functions/auth.tsx:155 +#: src/components/forms/AuthenticationForm.tsx:73 +#: src/functions/auth.tsx:166 msgid "Mail delivery successful" msgstr "邮件发送成功" -#: src/components/forms/AuthenticationForm.tsx:71 +#: src/components/forms/AuthenticationForm.tsx:74 msgid "Check your inbox for the login link. If you have an account, you will receive a login link. Check in spam too." msgstr "请检查您的收件箱以查看登录链接。如果您有账户,您将收到登录链接。如未收到,请检查邮箱垃圾箱。" -#: src/components/forms/AuthenticationForm.tsx:75 +#: src/components/forms/AuthenticationForm.tsx:78 msgid "Mail delivery failed" msgstr "邮件发送失败" -#: src/components/forms/AuthenticationForm.tsx:95 +#: src/components/forms/AuthenticationForm.tsx:98 msgid "Or continue with other methods" msgstr "或继续使用其他方法" -#: src/components/forms/AuthenticationForm.tsx:106 -#: src/components/forms/AuthenticationForm.tsx:227 +#: src/components/forms/AuthenticationForm.tsx:109 +#: src/components/forms/AuthenticationForm.tsx:230 +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:67 msgid "Username" msgstr "用户名" -#: src/components/forms/AuthenticationForm.tsx:107 -#: src/components/forms/AuthenticationForm.tsx:228 +#: src/components/forms/AuthenticationForm.tsx:110 +#: src/components/forms/AuthenticationForm.tsx:231 msgid "Your username" msgstr "你的用户名" -#: src/components/forms/AuthenticationForm.tsx:112 -#: src/components/forms/AuthenticationForm.tsx:240 -#: src/pages/Auth/Set-Password.tsx:106 +#: src/components/forms/AuthenticationForm.tsx:115 +#: src/components/forms/AuthenticationForm.tsx:243 +#: src/pages/Auth/Set-Password.tsx:101 msgid "Password" msgstr "密码" -#: src/components/forms/AuthenticationForm.tsx:113 -#: src/components/forms/AuthenticationForm.tsx:241 +#: src/components/forms/AuthenticationForm.tsx:116 +#: src/components/forms/AuthenticationForm.tsx:244 msgid "Your password" msgstr "您的密码" -#: src/components/forms/AuthenticationForm.tsx:125 +#: src/components/forms/AuthenticationForm.tsx:128 #: src/pages/Auth/Reset.tsx:26 msgid "Reset password" msgstr "重置密码" @@ -507,77 +813,79 @@ msgstr "重置密码" #~ msgid "Log in" #~ msgstr "Log in" -#: src/components/forms/AuthenticationForm.tsx:134 -#: src/components/forms/AuthenticationForm.tsx:233 +#: src/components/forms/AuthenticationForm.tsx:136 +#~ msgid "I will use username and password" +#~ msgstr "I will use username and password" + +#: src/components/forms/AuthenticationForm.tsx:137 +#: src/components/forms/AuthenticationForm.tsx:236 #: src/pages/Auth/Reset.tsx:31 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:51 msgid "Email" msgstr "邮箱" -#: src/components/forms/AuthenticationForm.tsx:135 +#: src/components/forms/AuthenticationForm.tsx:138 #: src/pages/Auth/Reset.tsx:32 -#: src/pages/Auth/Set-Password.tsx:107 +#: src/pages/Auth/Set-Password.tsx:102 msgid "We will send you a link to login - if you are registered" msgstr "我们将向您发送登录链接 - 如果您已注册" -#: src/components/forms/AuthenticationForm.tsx:136 -#~ msgid "I will use username and password" -#~ msgstr "I will use username and password" - -#: src/components/forms/AuthenticationForm.tsx:151 +#: src/components/forms/AuthenticationForm.tsx:154 msgid "Send me an email" msgstr "给我发一封电子邮件" -#: src/components/forms/AuthenticationForm.tsx:153 +#: src/components/forms/AuthenticationForm.tsx:156 msgid "Use username and password" msgstr "使用用户名和密码" -#: src/components/forms/AuthenticationForm.tsx:162 +#: src/components/forms/AuthenticationForm.tsx:165 msgid "Log In" msgstr "登录" -#: src/components/forms/AuthenticationForm.tsx:164 +#: src/components/forms/AuthenticationForm.tsx:167 +#: src/pages/Auth/Reset.tsx:41 +#: src/pages/Auth/Set-Password.tsx:107 msgid "Send Email" msgstr "发送电子邮件" -#: src/components/forms/AuthenticationForm.tsx:193 +#: src/components/forms/AuthenticationForm.tsx:196 msgid "Registration successful" msgstr "注册成功" -#: src/components/forms/AuthenticationForm.tsx:194 +#: src/components/forms/AuthenticationForm.tsx:197 msgid "Please confirm your email address to complete the registration" msgstr "请确认您的电子邮件地址以完成注册" -#: src/components/forms/AuthenticationForm.tsx:210 +#: src/components/forms/AuthenticationForm.tsx:213 msgid "Input error" msgstr "输入错误" -#: src/components/forms/AuthenticationForm.tsx:234 +#: src/components/forms/AuthenticationForm.tsx:237 msgid "This will be used for a confirmation" msgstr "此将用于确认" -#: src/components/forms/AuthenticationForm.tsx:246 +#: src/components/forms/AuthenticationForm.tsx:249 msgid "Password repeat" msgstr "密码重复" -#: src/components/forms/AuthenticationForm.tsx:247 +#: src/components/forms/AuthenticationForm.tsx:250 msgid "Repeat password" msgstr "再次输入密码" -#: src/components/forms/AuthenticationForm.tsx:259 -#: src/components/forms/AuthenticationForm.tsx:304 +#: src/components/forms/AuthenticationForm.tsx:262 +#: src/components/forms/AuthenticationForm.tsx:307 msgid "Register" msgstr "注册" -#: src/components/forms/AuthenticationForm.tsx:265 +#: src/components/forms/AuthenticationForm.tsx:268 msgid "Or use SSO" msgstr "或使用 SSO" -#: src/components/forms/AuthenticationForm.tsx:296 +#: src/components/forms/AuthenticationForm.tsx:299 msgid "Don't have an account?" msgstr "没有帐户?" -#: src/components/forms/AuthenticationForm.tsx:315 +#: src/components/forms/AuthenticationForm.tsx:318 msgid "Go back to login" msgstr "返回登录界面" @@ -588,19 +896,20 @@ msgstr "主机" #: src/components/forms/HostOptionsForm.tsx:42 #: src/components/forms/HostOptionsForm.tsx:70 +#: src/components/plugins/PluginDrawer.tsx:69 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:410 +#: src/pages/Index/Settings/AdminCenter/UnitManagmentPanel.tsx:19 #: src/pages/part/CategoryDetail.tsx:81 -#: src/pages/part/PartDetail.tsx:143 -#: src/pages/stock/LocationDetail.tsx:89 -#: src/tables/machine/MachineTypeTable.tsx:65 -#: src/tables/machine/MachineTypeTable.tsx:109 -#: src/tables/machine/MachineTypeTable.tsx:216 -#: src/tables/machine/MachineTypeTable.tsx:319 +#: src/pages/part/PartDetail.tsx:164 +#: src/pages/stock/LocationDetail.tsx:83 +#: src/tables/machine/MachineTypeTable.tsx:70 +#: src/tables/machine/MachineTypeTable.tsx:119 +#: src/tables/machine/MachineTypeTable.tsx:237 +#: src/tables/machine/MachineTypeTable.tsx:340 #: src/tables/plugin/PluginErrorTable.tsx:33 -#: src/tables/plugin/PluginListTable.tsx:126 #: src/tables/purchasing/ManufacturerPartParameterTable.tsx:32 #: src/tables/settings/GroupTable.tsx:147 -#: src/tables/settings/PendingTasksTable.tsx:28 +#: src/tables/settings/PendingTasksTable.tsx:32 #: src/tables/stock/LocationTypesTable.tsx:69 msgid "Name" msgstr "名称" @@ -650,7 +959,7 @@ msgid "Uncategorized" msgstr "未分类" #: src/components/forms/fields/IconField.tsx:209 -#: src/components/nav/Layout.tsx:70 +#: src/components/nav/Layout.tsx:77 #: src/tables/part/PartThumbTable.tsx:192 msgid "Search..." msgstr "搜索..." @@ -667,28 +976,27 @@ msgstr "选择包" msgid "{0} icons" msgstr "{0} 个图标" -#: src/components/forms/fields/RelatedModelField.tsx:318 -#: src/pages/Index/Settings/UserSettings.tsx:96 +#: src/components/forms/fields/RelatedModelField.tsx:319 +#: src/pages/Index/Settings/UserSettings.tsx:97 #: src/tables/Search.tsx:23 msgid "Search" msgstr "搜索" -#: src/components/forms/fields/RelatedModelField.tsx:319 +#: src/components/forms/fields/RelatedModelField.tsx:320 #: src/components/modals/AboutInvenTreeModal.tsx:81 -#: src/components/widgets/WidgetLayout.tsx:120 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:316 msgid "Loading" msgstr "正在加载" -#: src/components/forms/fields/RelatedModelField.tsx:321 +#: src/components/forms/fields/RelatedModelField.tsx:322 msgid "No results found" msgstr "未找到结果" -#: src/components/forms/fields/TableField.tsx:52 -msgid "modelRenderer entry required for tables" -msgstr "表格需要 modelRenderer 条目" +#: src/components/forms/fields/TableField.tsx:72 +#~ msgid "modelRenderer entry required for tables" +#~ msgstr "modelRenderer entry required for tables" -#: src/components/forms/fields/TableField.tsx:76 +#: src/components/forms/fields/TableField.tsx:167 msgid "No entries available" msgstr "无可用条目" @@ -741,7 +1049,7 @@ msgid "Filter by row validation status" msgstr "按行验证状态筛选" #: src/components/importer/ImportDataSelector.tsx:365 -#: src/tables/build/BuildOutputTable.tsx:266 +#: src/tables/build/BuildOutputTable.tsx:407 msgid "Complete" msgstr "完成" @@ -749,20 +1057,21 @@ msgstr "完成" msgid "Filter by row completion status" msgstr "按行完成状态筛选" -#: src/components/importer/ImportDataSelector.tsx:383 +#: src/components/importer/ImportDataSelector.tsx:384 msgid "Import selected rows" msgstr "导入选定的行" -#: src/components/importer/ImportDataSelector.tsx:398 +#: src/components/importer/ImportDataSelector.tsx:399 msgid "Processing Data" msgstr "处理数据中" -#: src/components/importer/ImporterColumnSelector.tsx:50 -#: src/components/importer/ImporterColumnSelector.tsx:176 +#: src/components/importer/ImporterColumnSelector.tsx:53 +#: src/components/importer/ImporterColumnSelector.tsx:179 +#: src/components/items/ErrorItem.tsx:12 msgid "An error occurred" msgstr "发生错误" -#: src/components/importer/ImporterColumnSelector.tsx:62 +#: src/components/importer/ImporterColumnSelector.tsx:65 msgid "Select column, or leave blank to ignore this field." msgstr "选择列,或留空忽略此字段。" @@ -778,51 +1087,51 @@ msgstr "选择列,或留空忽略此字段。" #~ msgid "Imported Column Name" #~ msgstr "Imported Column Name" -#: src/components/importer/ImporterColumnSelector.tsx:182 +#: src/components/importer/ImporterColumnSelector.tsx:185 msgid "Ignore this field" msgstr "忽略该字段" -#: src/components/importer/ImporterColumnSelector.tsx:196 +#: src/components/importer/ImporterColumnSelector.tsx:199 msgid "Mapping data columns to database fields" msgstr "将数据列映射到数据库字段" -#: src/components/importer/ImporterColumnSelector.tsx:201 +#: src/components/importer/ImporterColumnSelector.tsx:204 msgid "Accept Column Mapping" msgstr "接受列映射" -#: src/components/importer/ImporterColumnSelector.tsx:214 +#: src/components/importer/ImporterColumnSelector.tsx:217 msgid "Database Field" msgstr "数据库字段" -#: src/components/importer/ImporterColumnSelector.tsx:215 +#: src/components/importer/ImporterColumnSelector.tsx:218 msgid "Field Description" msgstr "字段描述" -#: src/components/importer/ImporterColumnSelector.tsx:216 +#: src/components/importer/ImporterColumnSelector.tsx:219 msgid "Imported Column" msgstr "导入列" -#: src/components/importer/ImporterColumnSelector.tsx:217 +#: src/components/importer/ImporterColumnSelector.tsx:220 msgid "Default Value" msgstr "默认值" -#: src/components/importer/ImporterDrawer.tsx:44 +#: src/components/importer/ImporterDrawer.tsx:46 msgid "Upload File" msgstr "上传文件" -#: src/components/importer/ImporterDrawer.tsx:45 +#: src/components/importer/ImporterDrawer.tsx:47 msgid "Map Columns" msgstr "映射列" -#: src/components/importer/ImporterDrawer.tsx:46 +#: src/components/importer/ImporterDrawer.tsx:48 msgid "Import Data" msgstr "导入数据" -#: src/components/importer/ImporterDrawer.tsx:47 +#: src/components/importer/ImporterDrawer.tsx:49 msgid "Process Data" msgstr "处理数据" -#: src/components/importer/ImporterDrawer.tsx:48 +#: src/components/importer/ImporterDrawer.tsx:50 msgid "Complete Import" msgstr "完成导入" @@ -830,28 +1139,28 @@ msgstr "完成导入" #~ msgid "Cancel import session" #~ msgstr "Cancel import session" -#: src/components/importer/ImporterDrawer.tsx:104 +#: src/components/importer/ImporterDrawer.tsx:106 msgid "Import Complete" msgstr "导入完毕" -#: src/components/importer/ImporterDrawer.tsx:107 +#: src/components/importer/ImporterDrawer.tsx:109 msgid "Data has been imported successfully" msgstr "数据已成功导入" -#: src/components/importer/ImporterDrawer.tsx:109 -#: src/components/importer/ImporterDrawer.tsx:118 +#: src/components/importer/ImporterDrawer.tsx:111 +#: src/components/importer/ImporterDrawer.tsx:120 msgid "Close" msgstr "关闭" -#: src/components/importer/ImporterDrawer.tsx:115 +#: src/components/importer/ImporterDrawer.tsx:117 msgid "Unknown Status" msgstr "未知状态" -#: src/components/importer/ImporterDrawer.tsx:116 +#: src/components/importer/ImporterDrawer.tsx:118 msgid "Import session has unknown status" msgstr "导入会话状态未知" -#: src/components/importer/ImporterDrawer.tsx:135 +#: src/components/importer/ImporterDrawer.tsx:137 msgid "Importing Data" msgstr "正在导入数据" @@ -860,85 +1169,115 @@ msgid "Importing Records" msgstr "导入记录" #: src/components/importer/ImporterImportProgress.tsx:39 -msgid "Imported rows" +#: src/tables/settings/ImportSessionTable.tsx:78 +msgid "Imported Rows" msgstr "导入的行" -#: src/components/items/ActionDropdown.tsx:121 +#: src/components/importer/ImporterImportProgress.tsx:39 +#~ msgid "Imported rows" +#~ msgstr "Imported rows" + +#: src/components/items/ActionDropdown.tsx:126 +msgid "Options" +msgstr "选项" + +#: src/components/items/ActionDropdown.tsx:140 +#~ msgid "View Barcode" +#~ msgstr "View Barcode" + +#: src/components/items/ActionDropdown.tsx:162 +#: src/tables/InvenTreeTableHeader.tsx:159 +#: src/tables/InvenTreeTableHeader.tsx:160 msgid "Barcode Actions" msgstr "条形码操作" -#: src/components/items/ActionDropdown.tsx:140 -msgid "View Barcode" -msgstr "查看条形码" +#: src/components/items/ActionDropdown.tsx:162 +#~ msgid "Link custom barcode" +#~ msgstr "Link custom barcode" -#: src/components/items/ActionDropdown.tsx:147 +#: src/components/items/ActionDropdown.tsx:167 msgid "View" msgstr "视图" -#: src/components/items/ActionDropdown.tsx:148 +#: src/components/items/ActionDropdown.tsx:169 msgid "View barcode" msgstr "查看条形码" -#: src/components/items/ActionDropdown.tsx:161 +#: src/components/items/ActionDropdown.tsx:175 msgid "Link Barcode" msgstr "关联二维码" -#: src/components/items/ActionDropdown.tsx:162 -msgid "Link custom barcode" -msgstr "链接自定义条形码" +#: src/components/items/ActionDropdown.tsx:177 +msgid "Link a custom barcode to this item" +msgstr "将自定义条形码链接到此项目" -#: src/components/items/ActionDropdown.tsx:173 -#: src/forms/PurchaseOrderForms.tsx:426 +#: src/components/items/ActionDropdown.tsx:183 +#: src/components/items/QRCode.tsx:193 +#: src/forms/PurchaseOrderForms.tsx:464 msgid "Unlink Barcode" msgstr "解绑条形码" -#: src/components/items/ActionDropdown.tsx:174 +#: src/components/items/ActionDropdown.tsx:185 msgid "Unlink custom barcode" msgstr "解绑自定义条形码链接" -#: src/components/items/ActionDropdown.tsx:183 -#: src/tables/RowActions.tsx:33 +#: src/components/items/ActionDropdown.tsx:236 +#: src/tables/RowActions.tsx:39 msgid "Edit" msgstr "编辑" -#: src/components/items/ActionDropdown.tsx:184 +#: src/components/items/ActionDropdown.tsx:237 msgid "Edit item" -msgstr "" +msgstr "编辑项目" -#: src/components/items/ActionDropdown.tsx:196 +#: src/components/items/ActionDropdown.tsx:249 msgid "Delete item" msgstr "删除项目" -#: src/components/items/ActionDropdown.tsx:204 -#: src/components/items/ActionDropdown.tsx:205 +#: src/components/items/ActionDropdown.tsx:257 +#: src/components/items/ActionDropdown.tsx:258 msgid "Hold" msgstr "挂起" -#: src/components/items/ActionDropdown.tsx:227 -#: src/tables/RowActions.tsx:23 +#: src/components/items/ActionDropdown.tsx:280 +#: src/tables/RowActions.tsx:29 msgid "Duplicate" msgstr "复制" -#: src/components/items/ActionDropdown.tsx:228 +#: src/components/items/ActionDropdown.tsx:281 msgid "Duplicate item" msgstr "重复项目" +#: src/components/items/BarcodeInput.tsx:23 +msgid "Scan barcode data here using barcode scanner" +msgstr "使用条形码扫描仪在此处扫描条形码数据" + +#: src/components/items/BarcodeInput.tsx:24 +#: src/tables/settings/BarcodeScanHistoryTable.tsx:65 +msgid "Barcode" +msgstr "条形码" + +#: src/components/items/BarcodeInput.tsx:25 +msgid "Scan" +msgstr "扫描" + #: src/components/items/DocTooltip.tsx:92 +#: src/components/items/GettingStartedCarousel.tsx:20 msgid "Read More" msgstr "了解更多" -#: src/components/items/ErrorItem.tsx:5 -#: src/tables/InvenTreeTable.tsx:487 +#: src/components/items/ErrorItem.tsx:8 +#: src/tables/InvenTreeTable.tsx:473 msgid "Unknown error" msgstr "未知错误" -#: src/components/items/ErrorItem.tsx:10 -msgid "An error occurred:" -msgstr "出现了一个错误" +#: src/components/items/ErrorItem.tsx:13 +#~ msgid "An error occurred:" +#~ msgstr "An error occurred:" #: src/components/items/GettingStartedCarousel.tsx:27 -msgid "Read more" -msgstr "了解更多" +#~ msgid "Read more" +#~ msgstr "Read more" #: src/components/items/InfoItem.tsx:27 msgid "None" @@ -965,30 +1304,51 @@ msgstr "PLH" msgid "This panel is a placeholder." msgstr "此面板是一个占位符。" -#: src/components/items/QRCode.tsx:87 +#: src/components/items/QRCode.tsx:89 msgid "Low (7%)" msgstr "低 (7%)" -#: src/components/items/QRCode.tsx:88 +#: src/components/items/QRCode.tsx:90 msgid "Medium (15%)" msgstr "中 (15%)" -#: src/components/items/QRCode.tsx:89 +#: src/components/items/QRCode.tsx:91 msgid "Quartile (25%)" msgstr "四分之一(25%)" -#: src/components/items/QRCode.tsx:90 +#: src/components/items/QRCode.tsx:92 msgid "High (30%)" msgstr "高 (30%)" -#: src/components/items/QRCode.tsx:107 +#: src/components/items/QRCode.tsx:100 +msgid "Custom barcode" +msgstr "自定义条形码" + +#: src/components/items/QRCode.tsx:101 +msgid "A custom barcode is registered for this item. The shown code is not that custom barcode." +msgstr "此条目注册了自定义条形码。显示的码並非该条码。" + +#: src/components/items/QRCode.tsx:118 msgid "Barcode Data:" msgstr "条形码数据:" -#: src/components/items/QRCode.tsx:118 +#: src/components/items/QRCode.tsx:129 msgid "Select Error Correction Level" msgstr "选择错误纠正级别" +#: src/components/items/QRCode.tsx:171 +#: src/pages/part/PartDetail.tsx:239 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:187 +#: src/pages/sales/ReturnOrderDetail.tsx:157 +#: src/pages/sales/SalesOrderDetail.tsx:169 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:166 +msgid "Link" +msgstr "链接" + +#: src/components/items/QRCode.tsx:190 +msgid "This will remove the link to the associated barcode" +msgstr "这将删除关联条形码的链接" + #: src/components/modals/AboutInvenTreeModal.tsx:99 msgid "Version Information" msgstr "版本信息" @@ -1062,11 +1422,11 @@ msgstr "手机 App" msgid "Submit Bug Report" msgstr "提交问题报告" -#: src/components/modals/AboutInvenTreeModal.tsx:183 +#: src/components/modals/AboutInvenTreeModal.tsx:181 msgid "Copy version information" msgstr "复制版本信息" -#: src/components/modals/AboutInvenTreeModal.tsx:192 +#: src/components/modals/AboutInvenTreeModal.tsx:189 #: src/components/modals/ServerInfoModal.tsx:147 msgid "Dismiss" msgstr "关闭" @@ -1091,61 +1451,20 @@ msgstr "获取许可信息失败" msgid "{key} Packages" msgstr "{key} 包" -#: src/components/modals/QrCodeModal.tsx:72 +#: src/components/modals/QrCodeModal.tsx:24 msgid "Unknown response" msgstr "未知响应" -#: src/components/modals/QrCodeModal.tsx:102 -#: src/pages/Index/Scan.tsx:636 -msgid "Error while getting camera" -msgstr "获取相机时出错" - -#: src/components/modals/QrCodeModal.tsx:125 -#: src/pages/Index/Scan.tsx:659 -msgid "Error while scanning" -msgstr "扫描时出错" - -#: src/components/modals/QrCodeModal.tsx:139 -#: src/pages/Index/Scan.tsx:673 -msgid "Error while stopping" -msgstr "停止时出错" - -#: src/components/modals/QrCodeModal.tsx:154 -#: src/defaults/menuItems.tsx:21 -#: src/pages/Index/Scan.tsx:746 -msgid "Scanning" -msgstr "正在扫描" - -#: src/components/modals/QrCodeModal.tsx:154 -#: src/pages/Index/Scan.tsx:746 -msgid "Not scanning" -msgstr "未扫描" - -#: src/components/modals/QrCodeModal.tsx:159 -#: src/pages/Index/Scan.tsx:752 -msgid "Select Camera" -msgstr "选择相机" - -#: src/components/modals/QrCodeModal.tsx:169 -#: src/pages/Index/Scan.tsx:737 -msgid "Start scanning" -msgstr "开始扫描" - -#: src/components/modals/QrCodeModal.tsx:176 -#: src/pages/Index/Scan.tsx:729 -msgid "Stop scanning" -msgstr "停止扫描" - -#: src/components/modals/QrCodeModal.tsx:181 +#: src/components/modals/QrCodeModal.tsx:39 msgid "No scans yet!" msgstr "还没有扫描!" -#: src/components/modals/QrCodeModal.tsx:201 +#: src/components/modals/QrCodeModal.tsx:57 msgid "Close modal" msgstr "关闭模态框" #: src/components/modals/ServerInfoModal.tsx:26 -#: src/pages/Index/Settings/SystemSettings.tsx:38 +#: src/pages/Index/Settings/SystemSettings.tsx:37 msgid "Server" msgstr "服务器" @@ -1206,6 +1525,7 @@ msgid "Background Worker" msgstr "后台工作者" #: src/components/modals/ServerInfoModal.tsx:101 +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:29 msgid "Background worker not running" msgstr "后台worker未运行" @@ -1218,8 +1538,8 @@ msgid "Email settings not configured" msgstr "电子邮件设置未配置" #: src/components/modals/ServerInfoModal.tsx:121 -#: src/tables/plugin/PluginListTable.tsx:144 -#: src/tables/plugin/PluginListTable.tsx:294 +#: src/components/plugins/PluginDrawer.tsx:89 +#: src/tables/plugin/PluginListTable.tsx:116 msgid "Version" msgstr "版本" @@ -1227,7 +1547,7 @@ msgstr "版本" msgid "Server Version" msgstr "服务器版本" -#: src/components/nav/Layout.tsx:73 +#: src/components/nav/Layout.tsx:80 msgid "Nothing found..." msgstr "无结果..." @@ -1237,18 +1557,26 @@ msgstr "无结果..." #~ msgstr "Profile" #: src/components/nav/MainMenu.tsx:52 +#: src/components/nav/NavigationDrawer.tsx:178 #: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:28 msgid "Settings" msgstr "设置" +#: src/components/nav/MainMenu.tsx:59 +#: src/pages/Index/Settings/UserSettings.tsx:152 +msgid "Account Settings" +msgstr "账户设置" + #: src/components/nav/MainMenu.tsx:59 #: src/defaults/menuItems.tsx:15 -msgid "Account settings" -msgstr "账户设定" +#~ msgid "Account settings" +#~ msgstr "Account settings" #: src/components/nav/MainMenu.tsx:67 -#: src/defaults/menuItems.tsx:58 -#: src/pages/Index/Settings/SystemSettings.tsx:315 +#: src/components/nav/NavigationDrawer.tsx:141 +#: src/components/nav/SettingsHeader.tsx:49 +#: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:37 +#: src/pages/Index/Settings/SystemSettings.tsx:310 msgid "System Settings" msgstr "系统设置" @@ -1260,14 +1588,11 @@ msgstr "系统设置" #~ msgid "Switch to pseudo language" #~ msgstr "Switch to pseudo language" -#: src/components/nav/MainMenu.tsx:77 -msgid "Change Color Mode" -msgstr "" - #: src/components/nav/MainMenu.tsx:86 -#: src/defaults/actions.tsx:71 -#: src/defaults/menuItems.tsx:63 -#: src/pages/Index/Settings/AdminCenter/Index.tsx:221 +#: src/components/nav/NavigationDrawer.tsx:148 +#: src/components/nav/SettingsHeader.tsx:50 +#: src/defaults/actions.tsx:63 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:251 msgid "Admin Center" msgstr "管理中心" @@ -1275,458 +1600,732 @@ msgstr "管理中心" msgid "Logout" msgstr "登出" -#: src/components/nav/NavHoverMenu.tsx:65 -#: src/defaults/actions.tsx:60 -msgid "Open Navigation" -msgstr "打开导航" - #: src/components/nav/NavHoverMenu.tsx:84 -msgid "View all" -msgstr "查看全部" +#~ msgid "View all" +#~ msgstr "View all" #: src/components/nav/NavHoverMenu.tsx:100 #: src/components/nav/NavHoverMenu.tsx:110 -msgid "Get started" -msgstr "开始" +#~ msgid "Get started" +#~ msgstr "Get started" #: src/components/nav/NavHoverMenu.tsx:103 -msgid "Overview over high-level objects, functions and possible usecases." -msgstr "关于高层级别物体、功能和可能用途的概述。" - -#: src/components/nav/NavigationDrawer.tsx:57 -msgid "Navigation" -msgstr "导航栏" +#~ msgid "Overview over high-level objects, functions and possible usecases." +#~ msgstr "Overview over high-level objects, functions and possible usecases." #: src/components/nav/NavigationDrawer.tsx:60 -msgid "Pages" -msgstr "页面" +#~ msgid "Pages" +#~ msgstr "Pages" -#: src/components/nav/NavigationDrawer.tsx:65 -#: src/pages/Index/Settings/AdminCenter/Index.tsx:176 -#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:41 -msgid "Plugins" -msgstr "插件" +#: src/components/nav/NavigationDrawer.tsx:77 +#: src/components/render/ModelType.tsx:31 +#: src/defaults/links.tsx:10 +#: src/pages/Index/Settings/SystemSettings.tsx:172 +#: src/pages/part/CategoryDetail.tsx:125 +#: src/pages/part/CategoryDetail.tsx:249 +#: src/pages/part/CategoryDetail.tsx:279 +#: src/pages/part/PartDetail.tsx:856 +msgid "Parts" +msgstr "零件" -#: src/components/nav/NavigationDrawer.tsx:75 -#: src/defaults/actions.tsx:32 -msgid "Documentation" -msgstr "文档" +#: src/components/nav/NavigationDrawer.tsx:84 +#: src/components/render/Part.tsx:30 +#: src/defaults/links.tsx:11 +#: src/pages/Index/Settings/SystemSettings.tsx:205 +#: src/pages/part/PartDetail.tsx:593 +#: src/pages/stock/LocationDetail.tsx:352 +#: src/pages/stock/StockDetail.tsx:528 +#: src/tables/stock/StockItemTable.tsx:69 +msgid "Stock" +msgstr "库存" -#: src/components/nav/NavigationDrawer.tsx:78 -msgid "About" -msgstr "关于" +#: src/components/nav/NavigationDrawer.tsx:91 +#: src/defaults/links.tsx:13 +#: src/pages/build/BuildDetail.tsx:530 +#: src/pages/build/BuildIndex.tsx:36 +msgid "Manufacturing" +msgstr "" -#: src/components/nav/NotificationDrawer.tsx:92 -#: src/pages/Index/Settings/SystemSettings.tsx:109 -#: src/pages/Index/Settings/UserSettings.tsx:126 +#: src/components/nav/NavigationDrawer.tsx:98 +#: src/defaults/links.tsx:18 +#: src/pages/company/ManufacturerDetail.tsx:9 +#: src/pages/company/ManufacturerPartDetail.tsx:258 +#: src/pages/company/SupplierDetail.tsx:9 +#: src/pages/company/SupplierPartDetail.tsx:336 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:480 +#: src/pages/purchasing/PurchasingIndex.tsx:60 +msgid "Purchasing" +msgstr "采购中" + +#: src/components/nav/NavigationDrawer.tsx:105 +#: src/defaults/links.tsx:22 +#: src/pages/company/CustomerDetail.tsx:9 +#: src/pages/sales/ReturnOrderDetail.tsx:469 +#: src/pages/sales/SalesIndex.tsx:53 +#: src/pages/sales/SalesOrderDetail.tsx:520 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:343 +msgid "Sales" +msgstr "销售" + +#: src/components/nav/NavigationDrawer.tsx:129 +#: src/components/nav/NotificationDrawer.tsx:178 +#: src/pages/Index/Settings/SystemSettings.tsx:110 +#: src/pages/Index/Settings/UserSettings.tsx:127 #: src/pages/Notifications.tsx:65 #: src/pages/Notifications.tsx:151 msgid "Notifications" msgstr "通知" -#: src/components/nav/NotificationDrawer.tsx:94 +#: src/components/nav/NavigationDrawer.tsx:135 +#: src/components/nav/SettingsHeader.tsx:48 +msgid "User Settings" +msgstr "用户设置" + +#: src/components/nav/NavigationDrawer.tsx:173 +msgid "Navigation" +msgstr "导航栏" + +#: src/components/nav/NavigationDrawer.tsx:183 +#: src/forms/PurchaseOrderForms.tsx:689 +#: src/forms/StockForms.tsx:614 +#: src/forms/StockForms.tsx:651 +#: src/forms/StockForms.tsx:677 +#: src/forms/StockForms.tsx:705 +#: src/forms/StockForms.tsx:736 +#: src/forms/StockForms.tsx:771 +#: src/forms/StockForms.tsx:813 +#: src/forms/StockForms.tsx:851 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:413 +#: src/tables/RowActions.tsx:129 +#: src/tables/build/BuildLineTable.tsx:101 +msgid "Actions" +msgstr "操作" + +#: src/components/nav/NavigationDrawer.tsx:191 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:205 +#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:44 +msgid "Plugins" +msgstr "插件" + +#: src/components/nav/NavigationDrawer.tsx:204 +#: src/defaults/actions.tsx:24 +msgid "Documentation" +msgstr "文档" + +#: src/components/nav/NavigationDrawer.tsx:210 +msgid "About" +msgstr "关于" + +#: src/components/nav/NotificationDrawer.tsx:180 msgid "Mark all as read" -msgstr "" +msgstr "全部标记为已读" -#: src/components/nav/NotificationDrawer.tsx:104 +#: src/components/nav/NotificationDrawer.tsx:190 msgid "View all notifications" -msgstr "" +msgstr "查看全部通知" -#: src/components/nav/NotificationDrawer.tsx:123 +#: src/components/nav/NotificationDrawer.tsx:210 msgid "You have no unread notifications." msgstr "您没有未读通知" -#: src/components/nav/NotificationDrawer.tsx:139 -#: src/components/nav/NotificationDrawer.tsx:145 -#: src/tables/notifications/NotificationsTable.tsx:36 -msgid "Notification" -msgstr "通知" - -#: src/components/nav/NotificationDrawer.tsx:168 -#: src/pages/Notifications.tsx:73 -msgid "Mark as read" -msgstr "标记为已读" - -#: src/components/nav/SearchDrawer.tsx:78 +#: src/components/nav/SearchDrawer.tsx:85 msgid "results" msgstr "结果" -#: src/components/nav/SearchDrawer.tsx:370 +#: src/components/nav/SearchDrawer.tsx:380 msgid "Enter search text" msgstr "输入搜索文本" -#: src/components/nav/SearchDrawer.tsx:397 +#: src/components/nav/SearchDrawer.tsx:391 +msgid "Refresh search results" +msgstr "刷新搜索结果" + +#: src/components/nav/SearchDrawer.tsx:402 +#: src/components/nav/SearchDrawer.tsx:409 msgid "Search Options" msgstr "搜索选项" -#: src/components/nav/SearchDrawer.tsx:400 +#: src/components/nav/SearchDrawer.tsx:412 msgid "Regex search" msgstr "正则表达式搜索" -#: src/components/nav/SearchDrawer.tsx:410 +#: src/components/nav/SearchDrawer.tsx:421 msgid "Whole word search" msgstr "全词搜索" -#: src/components/nav/SearchDrawer.tsx:451 +#: src/components/nav/SearchDrawer.tsx:461 msgid "An error occurred during search query" msgstr "搜索查询时发生错误" #: src/components/nav/SearchDrawer.tsx:462 -msgid "No results" +#~ msgid "No results" +#~ msgstr "No results" + +#: src/components/nav/SearchDrawer.tsx:472 +#: src/tables/part/PartTestTemplateTable.tsx:76 +msgid "No Results" msgstr "无结果" -#: src/components/nav/SearchDrawer.tsx:465 +#: src/components/nav/SearchDrawer.tsx:475 msgid "No results available for search query" msgstr "没有可供搜索查询的结果" -#: src/components/render/Instance.tsx:217 +#: src/components/panels/AttachmentPanel.tsx:18 +msgid "Attachments" +msgstr "附件" + +#: src/components/panels/NotesPanel.tsx:24 +#: src/tables/build/BuildOrderTestTable.tsx:143 +#: src/tables/stock/StockTrackingTable.tsx:204 +msgid "Notes" +msgstr "备注" + +#: src/components/plugins/PluginDrawer.tsx:47 +msgid "Plugin Inactive" +msgstr "插件未激活" + +#: src/components/plugins/PluginDrawer.tsx:50 +msgid "Plugin is not active" +msgstr "插件未激活" + +#: src/components/plugins/PluginDrawer.tsx:60 +msgid "Plugin Information" +msgstr "插件信息" + +#: src/components/plugins/PluginDrawer.tsx:74 +#: src/pages/build/BuildDetail.tsx:116 +#: src/pages/company/CompanyDetail.tsx:89 +#: src/pages/company/ManufacturerPartDetail.tsx:89 +#: src/pages/company/ManufacturerPartDetail.tsx:116 +#: src/pages/company/SupplierPartDetail.tsx:140 +#: src/pages/part/CategoryDetail.tsx:101 +#: src/pages/part/PartDetail.tsx:178 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:136 +#: src/pages/sales/ReturnOrderDetail.tsx:107 +#: src/pages/sales/SalesOrderDetail.tsx:116 +#: src/pages/stock/LocationDetail.tsx:103 +#: src/tables/ColumnRenderers.tsx:92 +#: src/tables/bom/UsedInTable.tsx:44 +#: src/tables/build/BuildAllocatedStockTable.tsx:83 +#: src/tables/build/BuildLineTable.tsx:329 +#: src/tables/machine/MachineTypeTable.tsx:74 +#: src/tables/machine/MachineTypeTable.tsx:129 +#: src/tables/machine/MachineTypeTable.tsx:240 +#: src/tables/machine/MachineTypeTable.tsx:344 +#: src/tables/part/RelatedPartTable.tsx:66 +#: src/tables/plugin/PluginListTable.tsx:99 +#: src/tables/sales/SalesOrderAllocationTable.tsx:87 +#: src/tables/sales/SalesOrderLineItemTable.tsx:75 +#: src/tables/stock/LocationTypesTable.tsx:74 +msgid "Description" +msgstr "描述" + +#: src/components/plugins/PluginDrawer.tsx:79 +msgid "Author" +msgstr "作者" + +#: src/components/plugins/PluginDrawer.tsx:84 +#: src/pages/part/PartSchedulingDetail.tsx:277 +#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:40 +#: src/pages/part/pricing/SaleHistoryPanel.tsx:38 +#: src/tables/ColumnRenderers.tsx:215 +#: src/tables/build/BuildOrderTestTable.tsx:151 +#: src/tables/settings/StocktakeReportTable.tsx:40 +msgid "Date" +msgstr "日期" + +#: src/components/plugins/PluginDrawer.tsx:94 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:398 +#: src/pages/part/PartDetail.tsx:331 +#: src/tables/bom/UsedInTable.tsx:84 +#: src/tables/company/CompanyTable.tsx:62 +#: src/tables/company/CompanyTable.tsx:96 +#: src/tables/machine/MachineListTable.tsx:333 +#: src/tables/machine/MachineListTable.tsx:605 +#: src/tables/part/ParametricPartTable.tsx:223 +#: src/tables/part/PartTable.tsx:178 +#: src/tables/part/PartVariantTable.tsx:15 +#: src/tables/plugin/PluginListTable.tsx:94 +#: src/tables/plugin/PluginListTable.tsx:401 +#: src/tables/purchasing/SupplierPartTable.tsx:100 +#: src/tables/purchasing/SupplierPartTable.tsx:190 +#: src/tables/settings/UserTable.tsx:283 +#: src/tables/stock/StockItemTable.tsx:293 +msgid "Active" +msgstr "激活" + +#: src/components/plugins/PluginDrawer.tsx:106 +msgid "Package Name" +msgstr "软件包名" + +#: src/components/plugins/PluginDrawer.tsx:112 +msgid "Installation Path" +msgstr "安装路径" + +#: src/components/plugins/PluginDrawer.tsx:117 +#: src/tables/machine/MachineTypeTable.tsx:152 +#: src/tables/machine/MachineTypeTable.tsx:276 +#: src/tables/plugin/PluginListTable.tsx:406 +msgid "Builtin" +msgstr "内置" + +#: src/components/plugins/PluginDrawer.tsx:122 +msgid "Package" +msgstr "软件包" + +#: src/components/plugins/PluginDrawer.tsx:134 +#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:53 +msgid "Plugin Settings" +msgstr "插件设置" + +#: src/components/plugins/PluginDrawer.tsx:146 +#: src/components/render/ModelType.tsx:276 +msgid "Plugin Configuration" +msgstr "插件配置" + +#: src/components/plugins/PluginPanel.tsx:87 +#~ msgid "Error occurred while rendering plugin content" +#~ msgstr "Error occurred while rendering plugin content" + +#: src/components/plugins/PluginPanel.tsx:91 +#~ msgid "Plugin did not provide panel rendering function" +#~ msgstr "Plugin did not provide panel rendering function" + +#: src/components/plugins/PluginPanel.tsx:103 +#~ msgid "No content provided for this plugin" +#~ msgstr "No content provided for this plugin" + +#: src/components/plugins/PluginPanel.tsx:116 +#: src/components/plugins/PluginSettingsPanel.tsx:76 +#~ msgid "Error Loading Plugin" +#~ msgstr "Error Loading Plugin" + +#: src/components/plugins/PluginSettingsPanel.tsx:51 +#~ msgid "Error occurred while rendering plugin settings" +#~ msgstr "Error occurred while rendering plugin settings" + +#: src/components/plugins/PluginSettingsPanel.tsx:55 +#~ msgid "Plugin did not provide settings rendering function" +#~ msgstr "Plugin did not provide settings rendering function" + +#: src/components/plugins/PluginUIFeature.tsx:100 +msgid "Error occurred while rendering the template editor." +msgstr "渲染模板编辑器时出错。" + +#: src/components/plugins/PluginUIFeature.tsx:111 +msgid "Error Loading Plugin Editor" +msgstr "加载插件编辑器出错" + +#: src/components/plugins/PluginUIFeature.tsx:147 +msgid "Error occurred while rendering the template preview." +msgstr "渲染模板预览时出错。" + +#: src/components/plugins/PluginUIFeature.tsx:158 +msgid "Error Loading Plugin Preview" +msgstr "加载插件预览出错" + +#: src/components/plugins/RemoteComponent.tsx:70 +msgid "Invalid source or function name" +msgstr "" + +#: src/components/plugins/RemoteComponent.tsx:91 +msgid "Error Loading Content" +msgstr "" + +#: src/components/plugins/RemoteComponent.tsx:95 +msgid "Error occurred while loading plugin content" +msgstr "" + +#: src/components/render/Instance.tsx:224 msgid "Unknown model: {model}" msgstr "未知模型: {model}" -#: src/components/render/ModelType.tsx:22 -#: src/forms/BuildForms.tsx:213 -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/forms/StockForms.tsx:499 -#: src/forms/StockForms.tsx:533 -#: src/forms/StockForms.tsx:562 -#: src/forms/StockForms.tsx:590 -#: src/forms/StockForms.tsx:621 -#: src/forms/StockForms.tsx:656 -#: src/forms/StockForms.tsx:698 -#: src/forms/StockForms.tsx:734 -#: src/pages/build/BuildDetail.tsx:95 -#: src/pages/part/PartDetail.tsx:1073 -#: src/tables/build/BuildAllocatedStockTable.tsx:82 +#: src/components/render/ModelType.tsx:30 +#: src/forms/BuildForms.tsx:269 +#: src/forms/BuildForms.tsx:337 +#: src/forms/BuildForms.tsx:385 +#: src/forms/BuildForms.tsx:515 +#: src/forms/PurchaseOrderForms.tsx:689 +#: src/forms/ReturnOrderForms.tsx:190 +#: src/forms/SalesOrderForms.tsx:248 +#: src/forms/StockForms.tsx:261 +#: src/forms/StockForms.tsx:614 +#: src/forms/StockForms.tsx:651 +#: src/forms/StockForms.tsx:677 +#: src/forms/StockForms.tsx:705 +#: src/forms/StockForms.tsx:736 +#: src/forms/StockForms.tsx:771 +#: src/forms/StockForms.tsx:813 +#: src/forms/StockForms.tsx:851 +#: src/pages/build/BuildDetail.tsx:90 +#: src/pages/part/PartDetail.tsx:1094 +#: src/tables/build/BuildAllocatedStockTable.tsx:95 +#: src/tables/build/BuildLineTable.tsx:72 #: src/tables/part/PartTable.tsx:28 -#: src/tables/part/RelatedPartTable.tsx:45 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:88 -#: src/tables/sales/SalesOrderAllocationTable.tsx:68 -#: src/tables/stock/StockTrackingTable.tsx:74 +#: src/tables/part/RelatedPartTable.tsx:47 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:130 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:100 +#: src/tables/sales/SalesOrderAllocationTable.tsx:99 +#: src/tables/stock/StockTrackingTable.tsx:78 msgid "Part" msgstr "零件" -#: src/components/render/ModelType.tsx:23 -#: src/defaults/links.tsx:29 -#: src/defaults/menuItems.tsx:33 -#: src/pages/Index/Settings/SystemSettings.tsx:173 -#: src/pages/part/CategoryDetail.tsx:119 -#: src/pages/part/CategoryDetail.tsx:244 -#: src/pages/part/CategoryDetail.tsx:274 -#: src/pages/part/PartDetail.tsx:827 -msgid "Parts" -msgstr "零件" - -#: src/components/render/ModelType.tsx:31 +#: src/components/render/ModelType.tsx:40 msgid "Part Parameter Template" msgstr "零件参数模板" -#: src/components/render/ModelType.tsx:32 +#: src/components/render/ModelType.tsx:41 msgid "Part Parameter Templates" msgstr "零件参数模板" -#: src/components/render/ModelType.tsx:38 +#: src/components/render/ModelType.tsx:48 msgid "Part Test Template" msgstr "零件测试模板" -#: src/components/render/ModelType.tsx:39 +#: src/components/render/ModelType.tsx:49 msgid "Part Test Templates" msgstr "零件测试模板" -#: src/components/render/ModelType.tsx:45 -#: src/pages/company/SupplierPartDetail.tsx:203 -#: src/pages/company/SupplierPartDetail.tsx:375 -#: src/pages/stock/StockDetail.tsx:173 -#: src/tables/build/BuildAllocatedStockTable.tsx:131 +#: src/components/render/ModelType.tsx:56 +#: src/pages/company/SupplierPartDetail.tsx:364 +#: src/pages/stock/StockDetail.tsx:194 +#: src/tables/build/BuildAllocatedStockTable.tsx:152 #: src/tables/part/PartPurchaseOrdersTable.tsx:49 -#: src/tables/purchasing/SupplierPartTable.tsx:68 +#: src/tables/purchasing/SupplierPartTable.tsx:70 +#: src/tables/stock/StockItemTable.tsx:229 msgid "Supplier Part" msgstr "供应商零件" -#: src/components/render/ModelType.tsx:46 +#: src/components/render/ModelType.tsx:57 msgid "Supplier Parts" msgstr "供应商零件" -#: src/components/render/ModelType.tsx:54 -#: src/pages/company/ManufacturerPartDetail.tsx:132 +#: src/components/render/ModelType.tsx:66 #: src/tables/part/PartPurchaseOrdersTable.tsx:55 +#: src/tables/stock/StockItemTable.tsx:234 msgid "Manufacturer Part" msgstr "制造商零件" -#: src/components/render/ModelType.tsx:55 +#: src/components/render/ModelType.tsx:67 msgid "Manufacturer Parts" msgstr "制造商零件" -#: src/components/render/ModelType.tsx:63 -#: src/pages/part/CategoryDetail.tsx:305 +#: src/components/render/ModelType.tsx:76 +#: src/pages/part/CategoryDetail.tsx:310 msgid "Part Category" msgstr "零件类别" -#: src/components/render/ModelType.tsx:64 -#: src/pages/part/CategoryDetail.tsx:258 -#: src/pages/part/CategoryDetail.tsx:296 -#: src/pages/part/PartDetail.tsx:1063 +#: src/components/render/ModelType.tsx:77 +#: src/pages/part/CategoryDetail.tsx:263 +#: src/pages/part/CategoryDetail.tsx:301 +#: src/pages/part/PartDetail.tsx:1084 msgid "Part Categories" msgstr "零件类别" -#: src/components/render/ModelType.tsx:72 -#: src/pages/stock/StockDetail.tsx:624 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:94 -#: src/tables/stock/StockTrackingTable.tsx:45 +#: src/components/render/ModelType.tsx:86 +#: src/forms/BuildForms.tsx:337 +#: src/forms/BuildForms.tsx:385 +#: src/forms/BuildForms.tsx:515 +#: src/forms/SalesOrderForms.tsx:248 +#: src/pages/stock/StockDetail.tsx:839 +#: src/tables/stock/StockTrackingTable.tsx:49 msgid "Stock Item" msgstr "库存项" -#: src/components/render/ModelType.tsx:73 +#: src/components/render/ModelType.tsx:87 #: src/pages/company/CompanyDetail.tsx:203 -#: src/pages/stock/LocationDetail.tsx:128 -#: src/pages/stock/LocationDetail.tsx:181 -#: src/pages/stock/LocationDetail.tsx:395 +#: src/pages/part/PartStocktakeDetail.tsx:113 +#: src/pages/stock/LocationDetail.tsx:122 +#: src/pages/stock/LocationDetail.tsx:175 +#: src/pages/stock/LocationDetail.tsx:380 msgid "Stock Items" msgstr "库存项" -#: src/components/render/ModelType.tsx:81 +#: src/components/render/ModelType.tsx:96 msgid "Stock Location" msgstr "库存地点" -#: src/components/render/ModelType.tsx:82 -#: src/pages/stock/LocationDetail.tsx:195 -#: src/pages/stock/LocationDetail.tsx:387 -#: src/pages/stock/StockDetail.tsx:616 +#: src/components/render/ModelType.tsx:97 +#: src/pages/stock/LocationDetail.tsx:189 +#: src/pages/stock/LocationDetail.tsx:372 +#: src/pages/stock/StockDetail.tsx:831 msgid "Stock Locations" msgstr "库存地点" -#: src/components/render/ModelType.tsx:90 +#: src/components/render/ModelType.tsx:106 msgid "Stock Location Type" msgstr "库存地点类型" -#: src/components/render/ModelType.tsx:91 +#: src/components/render/ModelType.tsx:107 msgid "Stock Location Types" msgstr "库存地点类型" -#: src/components/render/ModelType.tsx:95 +#: src/components/render/ModelType.tsx:112 +#: src/pages/part/PartDetail.tsx:712 msgid "Stock History" msgstr "库存历史记录" -#: src/components/render/ModelType.tsx:96 +#: src/components/render/ModelType.tsx:113 msgid "Stock Histories" msgstr "库存历史记录" -#: src/components/render/ModelType.tsx:100 -#: src/defaults/links.tsx:31 -#: src/defaults/menuItems.tsx:43 +#: src/components/render/ModelType.tsx:118 msgid "Build" msgstr "生产..." -#: src/components/render/ModelType.tsx:101 +#: src/components/render/ModelType.tsx:119 msgid "Builds" msgstr "编译" -#: src/components/render/ModelType.tsx:109 +#: src/components/render/ModelType.tsx:128 msgid "Build Line" msgstr "生产行" -#: src/components/render/ModelType.tsx:110 +#: src/components/render/ModelType.tsx:129 msgid "Build Lines" msgstr "生产行" -#: src/components/render/ModelType.tsx:117 +#: src/components/render/ModelType.tsx:137 msgid "Build Item" msgstr "构建项目:" -#: src/components/render/ModelType.tsx:118 +#: src/components/render/ModelType.tsx:138 msgid "Build Items" msgstr "构建多个项目" -#: src/components/render/ModelType.tsx:122 -#: src/pages/company/CompanyDetail.tsx:339 +#: src/components/render/ModelType.tsx:143 +#: src/pages/company/CompanyDetail.tsx:321 msgid "Company" msgstr "公司" -#: src/components/render/ModelType.tsx:123 +#: src/components/render/ModelType.tsx:144 msgid "Companies" msgstr "公司" -#: src/components/render/ModelType.tsx:131 +#: src/components/render/ModelType.tsx:153 +#: src/pages/build/BuildDetail.tsx:195 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:204 +#: src/pages/sales/ReturnOrderDetail.tsx:174 +#: src/pages/sales/SalesOrderDetail.tsx:186 #: src/tables/TableHoverCard.tsx:81 -#: src/tables/build/BuildOrderTable.tsx:140 -#: src/tables/purchasing/PurchaseOrderTable.tsx:64 -#: src/tables/sales/ReturnOrderTable.tsx:55 -#: src/tables/sales/SalesOrderTable.tsx:62 +#: src/tables/build/BuildOrderTable.tsx:135 +#: src/tables/purchasing/PurchaseOrderTable.tsx:69 +#: src/tables/sales/ReturnOrderTable.tsx:67 +#: src/tables/sales/SalesOrderTable.tsx:67 msgid "Project Code" msgstr "项目编码" -#: src/components/render/ModelType.tsx:132 -#: src/pages/Index/Settings/AdminCenter/Index.tsx:128 +#: src/components/render/ModelType.tsx:154 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:145 msgid "Project Codes" msgstr "项目编码" -#: src/components/render/ModelType.tsx:138 +#: src/components/render/ModelType.tsx:161 #: src/pages/part/pricing/PurchaseHistoryPanel.tsx:32 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:480 -#: src/tables/part/PartPurchaseOrdersTable.tsx:32 -#: src/tables/stock/StockTrackingTable.tsx:107 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:477 +#: src/pages/stock/StockDetail.tsx:253 +#: src/tables/part/PartPurchaseOrdersTable.tsx:31 +#: src/tables/stock/StockItemTable.tsx:222 +#: src/tables/stock/StockTrackingTable.tsx:111 msgid "Purchase Order" msgstr "采购订单" -#: src/components/render/ModelType.tsx:139 -#: src/pages/Index/Settings/SystemSettings.tsx:255 +#: src/components/render/ModelType.tsx:162 +#: src/pages/Index/Settings/SystemSettings.tsx:249 #: src/pages/company/CompanyDetail.tsx:196 -#: src/pages/company/SupplierPartDetail.tsx:237 -#: src/pages/part/PartDetail.tsx:662 +#: src/pages/company/SupplierPartDetail.tsx:249 +#: src/pages/part/PartDetail.tsx:683 #: src/pages/purchasing/PurchasingIndex.tsx:25 msgid "Purchase Orders" msgstr "采购订单" -#: src/components/render/ModelType.tsx:147 +#: src/components/render/ModelType.tsx:171 msgid "Purchase Order Line" msgstr "采购订单行" -#: src/components/render/ModelType.tsx:148 +#: src/components/render/ModelType.tsx:172 msgid "Purchase Order Lines" msgstr "采购订单行" -#: src/components/render/ModelType.tsx:152 -#: src/pages/build/BuildDetail.tsx:153 -#: src/pages/sales/SalesOrderDetail.tsx:520 -#: src/pages/stock/StockDetail.tsx:221 -#: src/tables/sales/SalesOrderAllocationTable.tsx:50 -#: src/tables/stock/StockTrackingTable.tsx:118 +#: src/components/render/ModelType.tsx:177 +#: src/pages/build/BuildDetail.tsx:148 +#: src/pages/part/pricing/SaleHistoryPanel.tsx:24 +#: src/pages/sales/SalesOrderDetail.tsx:515 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:92 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:341 +#: src/pages/stock/StockDetail.tsx:262 +#: src/tables/sales/SalesOrderAllocationTable.tsx:80 +#: src/tables/stock/StockTrackingTable.tsx:122 msgid "Sales Order" msgstr "销售订单" -#: src/components/render/ModelType.tsx:153 -#: src/pages/Index/Settings/SystemSettings.tsx:270 +#: src/components/render/ModelType.tsx:178 +#: src/pages/Index/Settings/SystemSettings.tsx:264 #: src/pages/company/CompanyDetail.tsx:216 -#: src/pages/part/PartDetail.tsx:669 +#: src/pages/part/PartDetail.tsx:695 #: src/pages/sales/SalesIndex.tsx:26 msgid "Sales Orders" msgstr "销售订单" -#: src/components/render/ModelType.tsx:161 +#: src/components/render/ModelType.tsx:187 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:340 msgid "Sales Order Shipment" msgstr "销售订单配送" -#: src/components/render/ModelType.tsx:162 +#: src/components/render/ModelType.tsx:188 msgid "Sales Order Shipments" msgstr "销售订单配送" -#: src/components/render/ModelType.tsx:168 -#: src/pages/sales/ReturnOrderDetail.tsx:469 -#: src/tables/stock/StockTrackingTable.tsx:129 +#: src/components/render/ModelType.tsx:195 +#: src/pages/sales/ReturnOrderDetail.tsx:464 +#: src/tables/stock/StockTrackingTable.tsx:133 msgid "Return Order" msgstr "退货订单" -#: src/components/render/ModelType.tsx:169 -#: src/pages/Index/Settings/SystemSettings.tsx:286 +#: src/components/render/ModelType.tsx:196 +#: src/pages/Index/Settings/SystemSettings.tsx:280 #: src/pages/company/CompanyDetail.tsx:223 +#: src/pages/part/PartDetail.tsx:702 #: src/pages/sales/SalesIndex.tsx:32 msgid "Return Orders" msgstr "退货订单" -#: src/components/render/ModelType.tsx:177 +#: src/components/render/ModelType.tsx:205 msgid "Return Order Line Item" msgstr "退货订单行项目" -#: src/components/render/ModelType.tsx:178 +#: src/components/render/ModelType.tsx:206 msgid "Return Order Line Items" msgstr "退货订单行项目" -#: src/components/render/ModelType.tsx:182 -#: src/tables/company/AddressTable.tsx:47 +#: src/components/render/ModelType.tsx:211 +#: src/tables/company/AddressTable.tsx:48 msgid "Address" msgstr "地址" -#: src/components/render/ModelType.tsx:183 -#: src/pages/company/CompanyDetail.tsx:253 +#: src/components/render/ModelType.tsx:212 +#: src/pages/company/CompanyDetail.tsx:255 msgid "Addresses" msgstr "地址" -#: src/components/render/ModelType.tsx:189 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:195 -#: src/pages/sales/ReturnOrderDetail.tsx:174 -#: src/pages/sales/SalesOrderDetail.tsx:183 +#: src/components/render/ModelType.tsx:219 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:196 +#: src/pages/sales/ReturnOrderDetail.tsx:166 +#: src/pages/sales/SalesOrderDetail.tsx:178 msgid "Contact" msgstr "联系人" -#: src/components/render/ModelType.tsx:190 -#: src/pages/company/CompanyDetail.tsx:247 +#: src/components/render/ModelType.tsx:220 +#: src/pages/company/CompanyDetail.tsx:249 msgid "Contacts" msgstr "联系人" -#: src/components/render/ModelType.tsx:196 +#: src/components/render/ModelType.tsx:227 msgid "Owner" msgstr "所有者" -#: src/components/render/ModelType.tsx:197 +#: src/components/render/ModelType.tsx:228 msgid "Owners" msgstr "所有者" -#: src/components/render/ModelType.tsx:203 -#: src/tables/settings/ImportSessionTable.tsx:121 -#: src/tables/stock/StockItemTestResultTable.tsx:198 -#: src/tables/stock/StockTrackingTable.tsx:195 +#: src/components/render/ModelType.tsx:234 +#~ msgid "Purchase Order Line Item" +#~ msgstr "Purchase Order Line Item" + +#: src/components/render/ModelType.tsx:235 +#: src/tables/settings/BarcodeScanHistoryTable.tsx:80 +#: src/tables/settings/BarcodeScanHistoryTable.tsx:211 +#: src/tables/settings/ImportSessionTable.tsx:120 +#: src/tables/settings/StocktakeReportTable.tsx:44 +#: src/tables/stock/StockItemTestResultTable.tsx:204 +#: src/tables/stock/StockTrackingTable.tsx:181 +#: src/tables/stock/StockTrackingTable.tsx:210 msgid "User" msgstr "用户" -#: src/components/render/ModelType.tsx:204 -#: src/pages/Index/Settings/AdminCenter/Index.tsx:98 +#: src/components/render/ModelType.tsx:236 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:109 #: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:13 msgid "Users" msgstr "用户" -#: src/components/render/ModelType.tsx:210 +#: src/components/render/ModelType.tsx:243 msgid "Group" msgstr "群组" -#: src/components/render/ModelType.tsx:211 +#: src/components/render/ModelType.tsx:244 #: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:20 -#: src/tables/settings/UserTable.tsx:138 -#: src/tables/settings/UserTable.tsx:201 +#: src/tables/settings/UserTable.tsx:137 +#: src/tables/settings/UserTable.tsx:200 msgid "Groups" msgstr "群组" -#: src/components/render/ModelType.tsx:218 +#: src/components/render/ModelType.tsx:252 msgid "Import Session" msgstr "导入会话" -#: src/components/render/ModelType.tsx:219 +#: src/components/render/ModelType.tsx:253 msgid "Import Sessions" msgstr "导入会话" -#: src/components/render/ModelType.tsx:225 +#: src/components/render/ModelType.tsx:260 msgid "Label Template" msgstr "标签模板" -#: src/components/render/ModelType.tsx:226 -#: src/pages/Index/Settings/AdminCenter/Index.tsx:158 +#: src/components/render/ModelType.tsx:261 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:187 msgid "Label Templates" msgstr "标签模板" -#: src/components/render/ModelType.tsx:232 +#: src/components/render/ModelType.tsx:264 +#~ msgid "Unknown Model" +#~ msgstr "Unknown Model" + +#: src/components/render/ModelType.tsx:268 msgid "Report Template" msgstr "报告模板" -#: src/components/render/ModelType.tsx:233 -#: src/pages/Index/Settings/AdminCenter/Index.tsx:164 +#: src/components/render/ModelType.tsx:269 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:193 msgid "Report Templates" msgstr "报告模板" -#: src/components/render/ModelType.tsx:239 -msgid "Plugin Configuration" -msgstr "插件配置" - -#: src/components/render/ModelType.tsx:240 +#: src/components/render/ModelType.tsx:277 msgid "Plugin Configurations" msgstr "插件配置" +#: src/components/render/ModelType.tsx:284 +msgid "Content Type" +msgstr "内容类型" + +#: src/components/render/ModelType.tsx:285 +msgid "Content Types" +msgstr "内容类型" + +#: src/components/render/ModelType.tsx:291 +#: src/tables/machine/MachineListTable.tsx:351 +#: src/tables/machine/MachineTypeTable.tsx:282 +msgid "Errors" +msgstr "错误" + +#: src/components/render/ModelType.tsx:307 +#~ msgid "Purchase Order Line Items" +#~ msgstr "Purchase Order Line Items" + +#: src/components/render/ModelType.tsx:337 +#~ msgid "Unknown Models" +#~ msgstr "Unknown Models" + #: src/components/render/Order.tsx:121 +#: src/tables/sales/SalesOrderAllocationTable.tsx:136 msgid "Shipment" msgstr "配送" #: src/components/render/Part.tsx:25 #: src/components/render/Plugin.tsx:17 -#: src/pages/company/CompanyDetail.tsx:325 -#: src/pages/company/SupplierPartDetail.tsx:360 -#: src/pages/part/PartDetail.tsx:879 +#: src/pages/company/CompanyDetail.tsx:307 +#: src/pages/company/SupplierPartDetail.tsx:349 +#: src/pages/part/PartDetail.tsx:911 msgid "Inactive" msgstr "未激活" @@ -1736,39 +2335,38 @@ msgstr "未激活" msgid "No stock" msgstr "无库存" -#: src/components/render/Part.tsx:30 -#: src/defaults/links.tsx:30 -#: src/defaults/menuItems.tsx:38 -#: src/pages/Index/Settings/SystemSettings.tsx:206 -#: src/pages/part/PartDetail.tsx:543 -#: src/pages/stock/LocationDetail.tsx:367 -#: src/pages/stock/StockDetail.tsx:411 -#: src/tables/stock/StockItemTable.tsx:68 -msgid "Stock" -msgstr "库存" - -#: src/components/render/Stock.tsx:60 -#: src/pages/stock/StockDetail.tsx:150 -#: src/pages/stock/StockDetail.tsx:581 -#: src/tables/build/BuildAllocatedStockTable.tsx:102 -#: src/tables/sales/SalesOrderAllocationTable.tsx:80 +#: src/components/render/Stock.tsx:61 +#: src/forms/ReturnOrderForms.tsx:190 +#: src/pages/stock/StockDetail.tsx:166 +#: src/pages/stock/StockDetail.tsx:771 +#: src/tables/build/BuildAllocatedStockTable.tsx:123 +#: src/tables/build/BuildOutputTable.tsx:81 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:114 +#: src/tables/sales/SalesOrderAllocationTable.tsx:106 msgid "Serial Number" msgstr "序列号" -#: src/components/render/Stock.tsx:62 -#: src/forms/BuildForms.tsx:218 -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/pages/part/pricing/BomPricingPanel.tsx:109 +#: src/components/render/Stock.tsx:63 +#: src/forms/BuildForms.tsx:206 +#: src/forms/BuildForms.tsx:515 +#: src/forms/PurchaseOrderForms.tsx:689 +#: src/forms/SalesOrderForms.tsx:248 +#: src/pages/part/PartSchedulingDetail.tsx:80 +#: src/pages/part/PartStocktakeDetail.tsx:60 +#: src/pages/part/PartStocktakeDetail.tsx:234 +#: src/pages/part/PartStocktakeDetail.tsx:252 +#: src/pages/part/pricing/BomPricingPanel.tsx:148 #: src/pages/part/pricing/PriceBreakPanel.tsx:89 -#: src/pages/part/pricing/PriceBreakPanel.tsx:171 -#: src/pages/stock/StockDetail.tsx:145 -#: src/pages/stock/StockDetail.tsx:587 -#: src/tables/build/BuildOrderTestTable.tsx:197 -#: src/tables/part/PartPurchaseOrdersTable.tsx:92 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:143 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:171 +#: src/pages/part/pricing/PriceBreakPanel.tsx:172 +#: src/pages/stock/StockDetail.tsx:161 +#: src/pages/stock/StockDetail.tsx:777 +#: src/tables/build/BuildLineTable.tsx:79 +#: src/tables/build/BuildOrderTestTable.tsx:198 +#: src/tables/part/PartPurchaseOrdersTable.tsx:93 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:146 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:177 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:77 -#: src/tables/stock/StockTrackingTable.tsx:59 +#: src/tables/stock/StockTrackingTable.tsx:63 msgid "Quantity" msgstr "数量" @@ -1842,10 +2440,6 @@ msgstr "未指定设置" #~ msgid "Required Part" #~ msgstr "Required Part" -#: src/components/tables/build/BuildLineTable.tsx:152 -#~ msgid "Required Quantity" -#~ msgstr "Required Quantity" - #: src/components/tables/build/BuildOrderTable.tsx:52 #~ msgid "Progress" #~ msgstr "Progress" @@ -2126,14 +2720,6 @@ msgstr "未指定设置" #~ msgid "user deleted" #~ msgstr "user deleted" -#: src/components/tables/settings/UserTable.tsx:168 -#~ msgid "First Name" -#~ msgstr "First Name" - -#: src/components/tables/settings/UserTable.tsx:173 -#~ msgid "Last Name" -#~ msgstr "Last Name" - #: src/components/tables/stock/StockItemTable.tsx:247 #~ msgid "Test Filter" #~ msgstr "Test Filter" @@ -2146,36 +2732,21 @@ msgstr "未指定设置" #~ msgid "Stock location updated" #~ msgstr "Stock location updated" -#: src/components/widgets/DisplayWidget.tsx:11 -#: src/pages/Index/Settings/AccountSettings/DisplaySettingsPanel.tsx:17 -msgid "Display Settings" -msgstr "显示设置" - -#: src/components/widgets/DisplayWidget.tsx:15 -#: src/pages/Index/Settings/AccountSettings/DisplaySettingsPanel.tsx:23 -msgid "Color Mode" -msgstr "色彩模式" - -#: src/components/widgets/DisplayWidget.tsx:21 -#: src/pages/Index/Settings/AccountSettings/DisplaySettingsPanel.tsx:33 -msgid "Language" -msgstr "语言" - #: src/components/widgets/FeedbackWidget.tsx:19 -msgid "Something is new: Platform UI" -msgstr "新事件:平台界面" +#~ msgid "Something is new: Platform UI" +#~ msgstr "Something is new: Platform UI" #: src/components/widgets/FeedbackWidget.tsx:21 -msgid "We are building a new UI with a modern stack. What you currently see is not fixed and will be redesigned but demonstrates the UI/UX possibilities we will have going forward." -msgstr "我们正在建造一个带有现代堆栈的新界面。 您目前看到的不是固定的,将被重新设计,而是演示UI/UX的可能性,我们将继续前进。" +#~ msgid "We are building a new UI with a modern stack. What you currently see is not fixed and will be redesigned but demonstrates the UI/UX possibilities we will have going forward." +#~ msgstr "We are building a new UI with a modern stack. What you currently see is not fixed and will be redesigned but demonstrates the UI/UX possibilities we will have going forward." #: src/components/widgets/FeedbackWidget.tsx:32 -msgid "Provide Feedback" -msgstr "提供反馈" +#~ msgid "Provide Feedback" +#~ msgstr "Provide Feedback" #: src/components/widgets/GetStartedWidget.tsx:11 -msgid "Getting started" -msgstr "快速开始" +#~ msgid "Getting started" +#~ msgstr "Getting started" #: src/components/widgets/MarkdownEditor.tsx:108 #~ msgid "Failed to upload image" @@ -2186,28 +2757,24 @@ msgstr "快速开始" #~ msgstr "Notes saved" #: src/components/widgets/WidgetLayout.tsx:166 -msgid "Layout" -msgstr "布局" +#~ msgid "Layout" +#~ msgstr "Layout" #: src/components/widgets/WidgetLayout.tsx:172 -msgid "Reset Layout" -msgstr "重置布局" +#~ msgid "Reset Layout" +#~ msgstr "Reset Layout" #: src/components/widgets/WidgetLayout.tsx:185 -msgid "Stop Edit" -msgstr "停止编辑" - -#: src/components/widgets/WidgetLayout.tsx:185 -msgid "Edit Layout" -msgstr "编辑布局" +#~ msgid "Stop Edit" +#~ msgstr "Stop Edit" #: src/components/widgets/WidgetLayout.tsx:191 -msgid "Appearance" -msgstr "外观" +#~ msgid "Appearance" +#~ msgstr "Appearance" #: src/components/widgets/WidgetLayout.tsx:203 -msgid "Show Boxes" -msgstr "显示框" +#~ msgid "Show Boxes" +#~ msgstr "Show Boxes" #: src/contexts/LanguageContext.tsx:20 msgid "Arabic" @@ -2286,201 +2853,175 @@ msgid "Korean" msgstr "韩语" #: src/contexts/LanguageContext.tsx:39 +msgid "Lithuanian" +msgstr "立陶宛语" + +#: src/contexts/LanguageContext.tsx:40 msgid "Latvian" msgstr "Latvian" -#: src/contexts/LanguageContext.tsx:40 +#: src/contexts/LanguageContext.tsx:41 msgid "Dutch" msgstr "荷兰语" -#: src/contexts/LanguageContext.tsx:41 +#: src/contexts/LanguageContext.tsx:42 msgid "Norwegian" msgstr "挪威语" -#: src/contexts/LanguageContext.tsx:42 +#: src/contexts/LanguageContext.tsx:43 msgid "Polish" msgstr "波兰语" -#: src/contexts/LanguageContext.tsx:43 +#: src/contexts/LanguageContext.tsx:44 msgid "Portuguese" msgstr "葡萄牙语" -#: src/contexts/LanguageContext.tsx:44 +#: src/contexts/LanguageContext.tsx:45 msgid "Portuguese (Brazilian)" msgstr "葡萄牙语(巴西)" -#: src/contexts/LanguageContext.tsx:45 +#: src/contexts/LanguageContext.tsx:46 msgid "Romanian" msgstr "罗马尼亚语" -#: src/contexts/LanguageContext.tsx:46 +#: src/contexts/LanguageContext.tsx:47 msgid "Russian" msgstr "俄语" -#: src/contexts/LanguageContext.tsx:47 +#: src/contexts/LanguageContext.tsx:48 msgid "Slovak" msgstr "Slovak" -#: src/contexts/LanguageContext.tsx:48 +#: src/contexts/LanguageContext.tsx:49 msgid "Slovenian" msgstr "斯洛语尼亚语" -#: src/contexts/LanguageContext.tsx:49 +#: src/contexts/LanguageContext.tsx:50 msgid "Swedish" msgstr "瑞典语" -#: src/contexts/LanguageContext.tsx:50 +#: src/contexts/LanguageContext.tsx:51 msgid "Thai" msgstr "泰语" -#: src/contexts/LanguageContext.tsx:51 +#: src/contexts/LanguageContext.tsx:52 msgid "Turkish" msgstr "土耳其语" -#: src/contexts/LanguageContext.tsx:52 +#: src/contexts/LanguageContext.tsx:53 msgid "Ukrainian" msgstr "乌克兰语" -#: src/contexts/LanguageContext.tsx:53 +#: src/contexts/LanguageContext.tsx:54 msgid "Vietnamese" msgstr "越南语" -#: src/contexts/LanguageContext.tsx:54 +#: src/contexts/LanguageContext.tsx:55 msgid "Chinese (Simplified)" msgstr "中文 (简体)" -#: src/contexts/LanguageContext.tsx:55 +#: src/contexts/LanguageContext.tsx:56 msgid "Chinese (Traditional)" msgstr "中文 (繁体)" #: src/defaults/actions.tsx:18 -#: src/defaults/links.tsx:27 -#: src/defaults/menuItems.tsx:9 -msgid "Home" -msgstr "主页" - -#: src/defaults/actions.tsx:25 -#: src/defaults/links.tsx:28 -#: src/defaults/menuItems.tsx:28 -#: src/pages/Index/Dashboard.tsx:19 -#: src/pages/Index/Settings/UserSettings.tsx:46 -msgid "Dashboard" -msgstr "仪表盘" - -#: src/defaults/actions.tsx:26 msgid "Go to the InvenTree dashboard" msgstr "跳转到 InvenTree 仪表板" -#: src/defaults/actions.tsx:33 +#: src/defaults/actions.tsx:18 +#: src/defaults/links.tsx:27 +#: src/defaults/menuItems.tsx:9 +#~ msgid "Home" +#~ msgstr "Home" + +#: src/defaults/actions.tsx:25 msgid "Visit the documentation to learn more about InvenTree" msgstr "访问文档以了解更多关于 InvenTree" -#: src/defaults/actions.tsx:39 -#: src/defaults/links.tsx:98 -#: src/defaults/links.tsx:128 +#: src/defaults/actions.tsx:31 +#: src/defaults/links.tsx:92 +#: src/defaults/links.tsx:124 msgid "About InvenTree" msgstr "关于 InvenTree" -#: src/defaults/actions.tsx:40 -#: src/defaults/links.tsx:129 +#: src/defaults/actions.tsx:32 msgid "About the InvenTree org" msgstr "关于 InvenTree 组织" -#: src/defaults/actions.tsx:46 +#: src/defaults/actions.tsx:38 msgid "Server Information" msgstr "服务器信息" -#: src/defaults/actions.tsx:47 -#: src/defaults/links.tsx:123 +#: src/defaults/actions.tsx:39 +#: src/defaults/links.tsx:118 msgid "About this Inventree instance" msgstr "关于此 Inventree 实例" -#: src/defaults/actions.tsx:53 -#: src/defaults/links.tsx:111 +#: src/defaults/actions.tsx:45 +#: src/defaults/links.tsx:105 +#: src/defaults/links.tsx:131 msgid "License Information" msgstr "许可信息" -#: src/defaults/actions.tsx:54 -#: src/defaults/links.tsx:135 +#: src/defaults/actions.tsx:46 msgid "Licenses for dependencies of the service" msgstr "服务依赖关系许可" -#: src/defaults/actions.tsx:61 +#: src/defaults/actions.tsx:52 +msgid "Open Navigation" +msgstr "打开导航" + +#: src/defaults/actions.tsx:53 msgid "Open the main navigation menu" msgstr "打开主导航菜单" -#: src/defaults/actions.tsx:72 +#: src/defaults/actions.tsx:64 msgid "Go to the Admin Center" -msgstr "" - -#: src/defaults/dashboardItems.tsx:15 -msgid "Subscribed Parts" -msgstr "已订购零件" - -#: src/defaults/dashboardItems.tsx:22 -msgid "Subscribed Categories" -msgstr "已订阅类别" +msgstr "转到管理中心" #: src/defaults/dashboardItems.tsx:29 -msgid "Latest Parts" -msgstr "最近零件" +#~ msgid "Latest Parts" +#~ msgstr "Latest Parts" #: src/defaults/dashboardItems.tsx:36 -msgid "BOM Waiting Validation" -msgstr "等待验证的 物料清单" +#~ msgid "BOM Waiting Validation" +#~ msgstr "BOM Waiting Validation" #: src/defaults/dashboardItems.tsx:43 -msgid "Recently Updated" -msgstr "最近更新" - -#: src/defaults/dashboardItems.tsx:50 -#: src/tables/part/PartTable.tsx:238 -msgid "Low Stock" -msgstr "低库存" +#~ msgid "Recently Updated" +#~ msgstr "Recently Updated" #: src/defaults/dashboardItems.tsx:57 -msgid "Depleted Stock" -msgstr "已耗尽库存" +#~ msgid "Depleted Stock" +#~ msgstr "Depleted Stock" #: src/defaults/dashboardItems.tsx:64 -msgid "Required for Build Orders" -msgstr "生产订单所需的" +#~ msgid "Required for Build Orders" +#~ msgstr "Required for Build Orders" #: src/defaults/dashboardItems.tsx:71 -msgid "Expired Stock" -msgstr "过期库存" +#~ msgid "Expired Stock" +#~ msgstr "Expired Stock" #: src/defaults/dashboardItems.tsx:78 -msgid "Stale Stock" -msgstr "过期库存" +#~ msgid "Stale Stock" +#~ msgstr "Stale Stock" #: src/defaults/dashboardItems.tsx:85 -msgid "Build Orders In Progress" -msgstr "进行中的生产订单" - -#: src/defaults/dashboardItems.tsx:92 -msgid "Overdue Build Orders" -msgstr "逾期的生产订单" +#~ msgid "Build Orders In Progress" +#~ msgstr "Build Orders In Progress" #: src/defaults/dashboardItems.tsx:99 -msgid "Outstanding Purchase Orders" -msgstr "未完成的采购订单" - -#: src/defaults/dashboardItems.tsx:106 -msgid "Overdue Purchase Orders" -msgstr "逾期的采购订单" +#~ msgid "Outstanding Purchase Orders" +#~ msgstr "Outstanding Purchase Orders" #: src/defaults/dashboardItems.tsx:113 -msgid "Outstanding Sales Orders" -msgstr "未完成的销售订单" - -#: src/defaults/dashboardItems.tsx:120 -msgid "Overdue Sales Orders" -msgstr "逾期的销售订单" +#~ msgid "Outstanding Sales Orders" +#~ msgstr "Outstanding Sales Orders" #: src/defaults/dashboardItems.tsx:127 -msgid "Current News" -msgstr "当前新闻" +#~ msgid "Current News" +#~ msgstr "Current News" #: src/defaults/defaultHostList.tsx:8 #~ msgid "InvenTree Demo" @@ -2490,97 +3031,80 @@ msgstr "当前新闻" #~ msgid "Local Server" #~ msgstr "Local Server" -#: src/defaults/links.tsx:12 -#: src/pages/company/CompanyDetail.tsx:96 -msgid "Website" -msgstr "网站" - #: src/defaults/links.tsx:17 -msgid "GitHub" -msgstr "GitHub" +#~ msgid "GitHub" +#~ msgstr "GitHub" #: src/defaults/links.tsx:22 -msgid "Demo" -msgstr "演示" - -#: src/defaults/links.tsx:33 -#: src/defaults/menuItems.tsx:48 -#: src/pages/company/ManufacturerDetail.tsx:9 -#: src/pages/company/ManufacturerPartDetail.tsx:263 -#: src/pages/company/SupplierDetail.tsx:9 -#: src/pages/company/SupplierPartDetail.tsx:347 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:483 -#: src/pages/purchasing/PurchasingIndex.tsx:60 -msgid "Purchasing" -msgstr "采购中" - -#: src/defaults/links.tsx:37 -#: src/defaults/menuItems.tsx:53 -#: src/pages/company/CustomerDetail.tsx:9 -#: src/pages/sales/ReturnOrderDetail.tsx:474 -#: src/pages/sales/SalesIndex.tsx:53 -#: src/pages/sales/SalesOrderDetail.tsx:525 -msgid "Sales" -msgstr "销售" +#~ msgid "Demo" +#~ msgstr "Demo" #: src/defaults/links.tsx:41 #: src/defaults/menuItems.tsx:71 #: src/pages/Index/Playground.tsx:217 -msgid "Playground" -msgstr "Playground" +#~ msgid "Playground" +#~ msgstr "Playground" -#: src/defaults/links.tsx:55 -msgid "Getting Started" -msgstr "快速上手" - -#: src/defaults/links.tsx:56 -msgid "Getting started with InvenTree" -msgstr "开始使用 InvenTree" - -#: src/defaults/links.tsx:62 +#: src/defaults/links.tsx:45 msgid "API" msgstr "API" -#: src/defaults/links.tsx:63 +#: src/defaults/links.tsx:48 msgid "InvenTree API documentation" msgstr "InvenTree API 文档" -#: src/defaults/links.tsx:68 +#: src/defaults/links.tsx:52 msgid "Developer Manual" msgstr "开发者手册" -#: src/defaults/links.tsx:69 +#: src/defaults/links.tsx:55 msgid "InvenTree developer manual" msgstr "InvenTree 开发者手册" -#: src/defaults/links.tsx:74 +#: src/defaults/links.tsx:59 msgid "FAQ" msgstr "FAQ" -#: src/defaults/links.tsx:75 +#: src/defaults/links.tsx:62 msgid "Frequently asked questions" msgstr "常见问题" +#: src/defaults/links.tsx:66 +msgid "GitHub Repository" +msgstr "" + +#: src/defaults/links.tsx:69 +msgid "InvenTree source code on GitHub" +msgstr "" + #: src/defaults/links.tsx:76 #~ msgid "Instance" #~ msgstr "Instance" +#: src/defaults/links.tsx:79 +#: src/defaults/links.tsx:117 +msgid "System Information" +msgstr "系统信息" + #: src/defaults/links.tsx:83 #~ msgid "InvenTree" #~ msgstr "InvenTree" -#: src/defaults/links.tsx:85 -#: src/defaults/links.tsx:122 -msgid "System Information" -msgstr "系统信息" - #: src/defaults/links.tsx:117 #~ msgid "Licenses for packages used by InvenTree" #~ msgstr "Licenses for packages used by InvenTree" +#: src/defaults/links.tsx:125 +msgid "About the InvenTree Project" +msgstr "" + +#: src/defaults/links.tsx:132 +msgid "Licenses for dependencies of the InvenTree software" +msgstr "" + #: src/defaults/links.tsx:134 -msgid "Licenses" -msgstr "许可协议" +#~ msgid "Licenses" +#~ msgstr "Licenses" #: src/defaults/menuItems.tsx:7 #~ msgid "Open sourcea" @@ -2607,8 +3131,8 @@ msgstr "许可协议" #~ msgstr "Profile page" #: src/defaults/menuItems.tsx:17 -msgid "User attributes and design settings." -msgstr "用户属性和设计设置" +#~ msgid "User attributes and design settings." +#~ msgstr "User attributes and design settings." #: src/defaults/menuItems.tsx:21 #~ msgid "Free for everyone" @@ -2619,8 +3143,8 @@ msgstr "用户属性和设计设置" #~ msgstr "The fluid of Smeargle’s tail secretions changes" #: src/defaults/menuItems.tsx:23 -msgid "View for interactive scanning and multiple actions." -msgstr "查看互动扫描和多种操作。" +#~ msgid "View for interactive scanning and multiple actions." +#~ msgstr "View for interactive scanning and multiple actions." #: src/defaults/menuItems.tsx:24 #~ msgid "The fluid of Smeargle’s tail secretions changes in the intensity" @@ -2698,51 +3222,130 @@ msgstr "查看互动扫描和多种操作。" #~ msgid "Are you sure you want to delete this attachment?" #~ msgstr "Are you sure you want to delete this attachment?" -#: src/forms/BuildForms.tsx:158 -msgid "Next serial number" -msgstr "下一个序列号" +#: src/forms/BuildForms.tsx:248 +#~ msgid "Remove output" +#~ msgstr "Remove output" -#: src/forms/BuildForms.tsx:162 -msgid "Latest serial number" -msgstr "最新序列号" +#: src/forms/BuildForms.tsx:269 +#: src/tables/build/BuildAllocatedStockTable.tsx:147 +#: src/tables/build/BuildOrderTestTable.tsx:177 +#: src/tables/build/BuildOrderTestTable.tsx:201 +#: src/tables/build/BuildOutputTable.tsx:460 +msgid "Build Output" +msgstr "生产产出" -#: src/forms/BuildForms.tsx:234 -msgid "Remove output" -msgstr "移除产出" +#: src/forms/BuildForms.tsx:269 +#: src/forms/BuildForms.tsx:337 +#: src/forms/BuildForms.tsx:385 +#: src/tables/build/BuildLineTable.tsx:89 +msgid "Batch" +msgstr "批次" -#: src/forms/BuildForms.tsx:316 +#: src/forms/BuildForms.tsx:269 +#: src/forms/BuildForms.tsx:337 +#: src/forms/BuildForms.tsx:385 +#: src/forms/PurchaseOrderForms.tsx:603 +#: src/pages/build/BuildDetail.tsx:104 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:142 +#: src/pages/sales/ReturnOrderDetail.tsx:113 +#: src/pages/sales/SalesOrderDetail.tsx:122 +#: src/tables/build/BuildOrderTable.tsx:125 +#: src/tables/machine/MachineListTable.tsx:336 +#: src/tables/part/PartPurchaseOrdersTable.tsx:37 +#: src/tables/purchasing/PurchaseOrderTable.tsx:58 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:157 +#: src/tables/sales/ReturnOrderTable.tsx:56 +#: src/tables/sales/SalesOrderTable.tsx:56 +#: src/tables/settings/CustomStateTable.tsx:57 +#: src/tables/settings/ImportSessionTable.tsx:114 +#: src/tables/stock/StockItemTable.tsx:298 +#: src/tables/stock/StockTrackingTable.tsx:56 +msgid "Status" +msgstr "状态" + +#: src/forms/BuildForms.tsx:289 msgid "Complete Build Outputs" msgstr "完成生产输出" -#: src/forms/BuildForms.tsx:320 +#: src/forms/BuildForms.tsx:292 msgid "Build outputs have been completed" msgstr "生产已完成" -#: src/forms/BuildForms.tsx:389 +#: src/forms/BuildForms.tsx:353 msgid "Scrap Build Outputs" msgstr "报废生产输出" -#: src/forms/BuildForms.tsx:393 +#: src/forms/BuildForms.tsx:356 msgid "Build outputs have been scrapped" msgstr "生产已完成" -#: src/forms/BuildForms.tsx:425 -#: src/forms/BuildForms.tsx:449 +#: src/forms/BuildForms.tsx:393 msgid "Cancel Build Outputs" msgstr "取消生产输出" -#: src/forms/BuildForms.tsx:426 -msgid "Selected build outputs will be deleted" -msgstr "所选的生产输出将被删除" - -#: src/forms/BuildForms.tsx:453 +#: src/forms/BuildForms.tsx:396 msgid "Build outputs have been cancelled" msgstr "生产已完成" +#: src/forms/BuildForms.tsx:408 +#~ msgid "Selected build outputs will be deleted" +#~ msgstr "Selected build outputs will be deleted" + +#: src/forms/BuildForms.tsx:470 +#~ msgid "Remove line" +#~ msgstr "Remove line" + +#: src/forms/BuildForms.tsx:515 +#: src/forms/SalesOrderForms.tsx:248 +#: src/tables/build/BuildLineTable.tsx:174 +#: src/tables/sales/SalesOrderLineItemTable.tsx:276 +#: src/tables/stock/StockItemTable.tsx:309 +msgid "Allocated" +msgstr "已分配" + +#: src/forms/BuildForms.tsx:545 +#: src/forms/SalesOrderForms.tsx:239 +#: src/pages/build/BuildDetail.tsx:208 +msgid "Source Location" +msgstr "来源地点" + +#: src/forms/BuildForms.tsx:546 +#: src/forms/SalesOrderForms.tsx:240 +msgid "Select the source location for the stock allocation" +msgstr "选择分配库存的源位置" + +#: src/forms/BuildForms.tsx:566 +#: src/forms/SalesOrderForms.tsx:274 +#: src/tables/build/BuildLineTable.tsx:442 +#: src/tables/build/BuildLineTable.tsx:569 +#: src/tables/build/BuildLineTable.tsx:642 +#: src/tables/sales/SalesOrderLineItemTable.tsx:302 +#: src/tables/sales/SalesOrderLineItemTable.tsx:326 +msgid "Allocate Stock" +msgstr "分配库存" + +#: src/forms/BuildForms.tsx:569 +#: src/forms/SalesOrderForms.tsx:279 +msgid "Stock items allocated" +msgstr "分配的库存项目" + #: src/forms/CompanyForms.tsx:150 #~ msgid "Company updated" #~ msgstr "Company updated" +#: src/forms/PartForms.tsx:67 +#: src/forms/PartForms.tsx:154 +#: src/pages/part/CategoryDetail.tsx:117 +#: src/pages/part/PartDetail.tsx:384 +#: src/tables/part/PartCategoryTable.tsx:90 +#: src/tables/part/PartTable.tsx:294 +msgid "Subscribed" +msgstr "已订阅" + +#: src/forms/PartForms.tsx:68 +msgid "Subscribe to notifications for this part" +msgstr "订阅此零件的通知" + #: src/forms/PartForms.tsx:106 #~ msgid "Create Part" #~ msgstr "Create Part" @@ -2751,191 +3354,190 @@ msgstr "生产已完成" #~ msgid "Part created" #~ msgstr "Part created" -#: src/forms/PartForms.tsx:124 -msgid "Parent part category" -msgstr "上级零件类别" - #: src/forms/PartForms.tsx:129 #~ msgid "Part updated" #~ msgstr "Part updated" -#: src/forms/PurchaseOrderForms.tsx:300 +#: src/forms/PartForms.tsx:140 +msgid "Parent part category" +msgstr "上级零件类别" + +#: src/forms/PartForms.tsx:155 +msgid "Subscribe to notifications for this category" +msgstr "订阅此类别的通知" + +#: src/forms/PurchaseOrderForms.tsx:314 +msgid "Assign Batch Code and Serial Numbers" +msgstr "" + +#: src/forms/PurchaseOrderForms.tsx:316 +msgid "Assign Batch Code" +msgstr "" + +#: src/forms/PurchaseOrderForms.tsx:336 msgid "Choose Location" msgstr "选择位置" -#: src/forms/PurchaseOrderForms.tsx:308 +#: src/forms/PurchaseOrderForms.tsx:344 msgid "Item Destination selected" msgstr "已选择项目目的地" -#: src/forms/PurchaseOrderForms.tsx:317 +#: src/forms/PurchaseOrderForms.tsx:353 msgid "Part category default location selected" msgstr "已选择零件类别默认位置" -#: src/forms/PurchaseOrderForms.tsx:327 +#: src/forms/PurchaseOrderForms.tsx:363 msgid "Received stock location selected" msgstr "已选择接收库存位置" -#: src/forms/PurchaseOrderForms.tsx:332 +#: src/forms/PurchaseOrderForms.tsx:368 msgid "Default location selected" msgstr "已选择默认位置" -#: src/forms/PurchaseOrderForms.tsx:343 -#: src/forms/PurchaseOrderForms.tsx:435 -msgid "Scan Barcode" -msgstr "扫描条形码" +#: src/forms/PurchaseOrderForms.tsx:421 +#~ msgid "Assign Batch Code{0}" +#~ msgstr "Assign Batch Code{0}" -#: src/forms/PurchaseOrderForms.tsx:388 +#: src/forms/PurchaseOrderForms.tsx:427 msgid "Set Location" msgstr "设置位置" -#: src/forms/PurchaseOrderForms.tsx:396 -msgid "Assign Batch Code{0}" -msgstr "分配批号 {0}" - -#: src/forms/PurchaseOrderForms.tsx:405 -#: src/forms/StockForms.tsx:420 +#: src/forms/PurchaseOrderForms.tsx:442 +#: src/forms/StockForms.tsx:539 msgid "Adjust Packaging" msgstr "调整封包" -#: src/forms/PurchaseOrderForms.tsx:412 +#: src/forms/PurchaseOrderForms.tsx:444 +#: src/forms/StockForms.tsx:428 +#~ msgid "Remove item from list" +#~ msgstr "Remove item from list" + +#: src/forms/PurchaseOrderForms.tsx:450 msgid "Change Status" msgstr "更改状态" -#: src/forms/PurchaseOrderForms.tsx:418 +#: src/forms/PurchaseOrderForms.tsx:456 msgid "Add Note" msgstr "添加备注" -#: src/forms/PurchaseOrderForms.tsx:444 -#: src/forms/StockForms.tsx:428 -msgid "Remove item from list" -msgstr "从列表中删除项目" - -#: src/forms/PurchaseOrderForms.tsx:471 -#: src/forms/StockForms.tsx:499 -#: src/forms/StockForms.tsx:533 -#: src/forms/StockForms.tsx:562 -#: src/forms/StockForms.tsx:590 -#: src/forms/StockForms.tsx:621 -#: src/forms/StockForms.tsx:656 -#: src/forms/StockForms.tsx:698 -#: src/forms/StockForms.tsx:734 -#: src/pages/stock/StockDetail.tsx:181 -#: src/tables/ColumnRenderers.tsx:49 -#: src/tables/stock/StockTrackingTable.tsx:85 +#: src/forms/PurchaseOrderForms.tsx:503 +#: src/forms/StockForms.tsx:614 +#: src/forms/StockForms.tsx:651 +#: src/forms/StockForms.tsx:677 +#: src/forms/StockForms.tsx:705 +#: src/forms/StockForms.tsx:736 +#: src/forms/StockForms.tsx:771 +#: src/forms/StockForms.tsx:813 +#: src/forms/StockForms.tsx:851 +#: src/pages/stock/StockDetail.tsx:202 +#: src/tables/ColumnRenderers.tsx:60 +#: src/tables/stock/StockTrackingTable.tsx:89 msgid "Location" msgstr "位置" -#: src/forms/PurchaseOrderForms.tsx:486 +#: src/forms/PurchaseOrderForms.tsx:518 msgid "Store at default location" msgstr "存储在默认位置" -#: src/forms/PurchaseOrderForms.tsx:499 +#: src/forms/PurchaseOrderForms.tsx:533 msgid "Store at line item destination" msgstr "存储在行项目目标" -#: src/forms/PurchaseOrderForms.tsx:509 +#: src/forms/PurchaseOrderForms.tsx:545 msgid "Store with already received stock" msgstr "存储已收到的库存" -#: src/forms/PurchaseOrderForms.tsx:524 -#: src/pages/build/BuildDetail.tsx:219 -#: src/pages/stock/StockDetail.tsx:162 -#: src/pages/stock/StockDetail.tsx:599 -#: src/tables/build/BuildAllocatedStockTable.tsx:109 -#: src/tables/build/BuildOrderTestTable.tsx:188 -#: src/tables/sales/SalesOrderAllocationTable.tsx:87 +#: src/forms/PurchaseOrderForms.tsx:566 +#: src/pages/build/BuildDetail.tsx:222 +#: src/pages/stock/StockDetail.tsx:185 +#: src/pages/stock/StockDetail.tsx:793 +#: src/tables/build/BuildAllocatedStockTable.tsx:130 +#: src/tables/build/BuildOrderTestTable.tsx:189 +#: src/tables/build/BuildOutputTable.tsx:86 +#: src/tables/sales/SalesOrderAllocationTable.tsx:113 msgid "Batch Code" msgstr "批号" -#: src/forms/PurchaseOrderForms.tsx:535 -msgid "Serial numbers" +#: src/forms/PurchaseOrderForms.tsx:566 +#~ msgid "Serial numbers" +#~ msgstr "Serial numbers" + +#: src/forms/PurchaseOrderForms.tsx:567 +msgid "Enter batch code for received items" +msgstr "" + +#: src/forms/PurchaseOrderForms.tsx:579 +#: src/forms/StockForms.tsx:152 +msgid "Serial Numbers" msgstr "序列号" -#: src/forms/PurchaseOrderForms.tsx:544 -#: src/forms/StockForms.tsx:443 -#: src/pages/company/SupplierPartDetail.tsx:156 -#: src/pages/company/SupplierPartDetail.tsx:207 -#: src/pages/stock/StockDetail.tsx:244 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:192 +#: src/forms/PurchaseOrderForms.tsx:580 +msgid "Enter serial numbers for received items" +msgstr "" + +#: src/forms/PurchaseOrderForms.tsx:590 +#: src/forms/StockForms.tsx:556 +#: src/pages/company/SupplierPartDetail.tsx:168 +#: src/pages/company/SupplierPartDetail.tsx:219 +#: src/pages/stock/StockDetail.tsx:320 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:198 msgid "Packaging" msgstr "包装" -#: src/forms/PurchaseOrderForms.tsx:556 -#: src/pages/build/BuildDetail.tsx:109 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:148 -#: src/pages/sales/ReturnOrderDetail.tsx:121 -#: src/pages/sales/SalesOrderDetail.tsx:127 -#: src/tables/build/BuildOrderTable.tsx:122 -#: src/tables/machine/MachineListTable.tsx:335 -#: src/tables/part/PartPurchaseOrdersTable.tsx:37 -#: src/tables/purchasing/PurchaseOrderTable.tsx:55 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:132 -#: src/tables/sales/ReturnOrderTable.tsx:46 -#: src/tables/sales/SalesOrderTable.tsx:53 -#: src/tables/settings/ImportSessionTable.tsx:115 -#: src/tables/stock/StockItemTable.tsx:294 -#: src/tables/stock/StockTrackingTable.tsx:52 -msgid "Status" -msgstr "状态" - -#: src/forms/PurchaseOrderForms.tsx:564 -#: src/pages/company/SupplierPartDetail.tsx:110 -#: src/tables/ColumnRenderers.tsx:132 +#: src/forms/PurchaseOrderForms.tsx:612 +#: src/pages/company/SupplierPartDetail.tsx:115 +#: src/tables/ColumnRenderers.tsx:143 msgid "Note" msgstr "备注" -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/pages/company/SupplierPartDetail.tsx:128 -#: src/tables/purchasing/SupplierPriceBreakTable.tsx:57 -msgid "SKU" -msgstr "库存单位 (SKU)" - -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/tables/part/PartPurchaseOrdersTable.tsx:120 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:178 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:127 -msgid "Received" -msgstr "已接收" - -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/forms/StockForms.tsx:499 -#: src/forms/StockForms.tsx:533 -#: src/forms/StockForms.tsx:562 -#: src/forms/StockForms.tsx:590 -#: src/forms/StockForms.tsx:621 -#: src/forms/StockForms.tsx:656 -#: src/forms/StockForms.tsx:698 -#: src/forms/StockForms.tsx:734 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:413 -#: src/tables/RowActions.tsx:113 -msgid "Actions" -msgstr "操作" - -#: src/forms/PurchaseOrderForms.tsx:655 -msgid "Receive Line Items" -msgstr "接收行项目" - #: src/forms/PurchaseOrderForms.tsx:658 #~ msgid "Receive line items" #~ msgstr "Receive line items" -#: src/forms/StockForms.tsx:104 -msgid "Add given quantity as packs instead of individual items" -msgstr "将给定的数量添加为包,而不是单个项目" +#: src/forms/PurchaseOrderForms.tsx:689 +#: src/pages/company/SupplierPartDetail.tsx:133 +#: src/tables/purchasing/SupplierPriceBreakTable.tsx:57 +msgid "SKU" +msgstr "库存单位 (SKU)" + +#: src/forms/PurchaseOrderForms.tsx:689 +#: src/tables/part/PartPurchaseOrdersTable.tsx:126 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:184 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:247 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:152 +msgid "Received" +msgstr "已接收" + +#: src/forms/PurchaseOrderForms.tsx:701 +msgid "Receive Line Items" +msgstr "接收行项目" + +#: src/forms/ReturnOrderForms.tsx:201 +msgid "Receive Items" +msgstr "接收物品" + +#: src/forms/ReturnOrderForms.tsx:208 +msgid "Item received into stock" +msgstr "已收到库存物品" + +#: src/forms/StockForms.tsx:80 +#: src/hooks/UsePlaceholder.tsx:57 +msgid "Next serial number" +msgstr "下一个序列号" #: src/forms/StockForms.tsx:110 #~ msgid "Create Stock Item" #~ msgstr "Create Stock Item" -#: src/forms/StockForms.tsx:117 +#: src/forms/StockForms.tsx:131 +msgid "Add given quantity as packs instead of individual items" +msgstr "将给定的数量添加为包,而不是单个项目" + +#: src/forms/StockForms.tsx:145 msgid "Enter initial quantity for this stock item" msgstr "输入此库存项的初始数量" -#: src/forms/StockForms.tsx:124 -msgid "Serial Numbers" -msgstr "序列号" - -#: src/forms/StockForms.tsx:125 +#: src/forms/StockForms.tsx:154 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "输入新库存的序列号(或留空)" @@ -2943,82 +3545,102 @@ msgstr "输入新库存的序列号(或留空)" #~ msgid "Stock item updated" #~ msgstr "Stock item updated" -#: src/forms/StockForms.tsx:179 -#: src/pages/stock/StockDetail.tsx:434 -#: src/tables/stock/StockItemTable.tsx:417 -#: src/tables/stock/StockItemTable.tsx:535 +#: src/forms/StockForms.tsx:169 +#: src/pages/stock/StockDetail.tsx:131 +msgid "Stock Status" +msgstr "库存状态" + +#: src/forms/StockForms.tsx:218 +#: src/pages/stock/StockDetail.tsx:554 +#: src/tables/stock/StockItemTable.tsx:421 +#: src/tables/stock/StockItemTable.tsx:541 msgid "Add Stock Item" msgstr "编辑库存项" -#: src/forms/StockForms.tsx:362 +#: src/forms/StockForms.tsx:262 +msgid "Select the part to install" +msgstr "选择要安装的零件" + +#: src/forms/StockForms.tsx:480 msgid "Loading..." msgstr "正在加载..." -#: src/forms/StockForms.tsx:408 +#: src/forms/StockForms.tsx:527 msgid "Move to default location" msgstr "移动到默认位置" -#: src/forms/StockForms.tsx:499 -#: src/forms/StockForms.tsx:533 -#: src/forms/StockForms.tsx:562 -#: src/forms/StockForms.tsx:590 -#: src/forms/StockForms.tsx:621 -#: src/forms/StockForms.tsx:656 -#: src/forms/StockForms.tsx:698 -#: src/forms/StockForms.tsx:734 -#: src/pages/part/PartDetail.tsx:230 -#: src/pages/part/PartDetail.tsx:843 -#: src/tables/stock/StockItemTable.tsx:325 +#: src/forms/StockForms.tsx:614 +#: src/forms/StockForms.tsx:651 +#: src/forms/StockForms.tsx:677 +#: src/forms/StockForms.tsx:705 +#: src/forms/StockForms.tsx:736 +#: src/forms/StockForms.tsx:771 +#: src/forms/StockForms.tsx:813 +#: src/forms/StockForms.tsx:851 +#: src/pages/part/PartDetail.tsx:251 +#: src/pages/part/PartDetail.tsx:875 +#: src/tables/stock/StockItemTable.tsx:329 msgid "In Stock" msgstr "入库" -#: src/forms/StockForms.tsx:499 +#: src/forms/StockForms.tsx:614 msgid "Move" msgstr "移动" -#: src/forms/StockForms.tsx:562 -#: src/pages/stock/StockDetail.tsx:518 -#: src/tables/stock/StockItemTestResultTable.tsx:328 +#: src/forms/StockForms.tsx:677 +#: src/pages/stock/StockDetail.tsx:681 +#: src/tables/stock/StockItemTestResultTable.tsx:346 msgid "Add" msgstr "添加" -#: src/forms/StockForms.tsx:590 -#: src/pages/Index/Scan.tsx:266 -#: src/pages/stock/StockDetail.tsx:508 +#: src/forms/StockForms.tsx:705 +#: src/pages/Index/Scan.tsx:280 +#: src/pages/stock/StockDetail.tsx:670 msgid "Count" msgstr "总计" -#: src/forms/StockForms.tsx:835 +#: src/forms/StockForms.tsx:953 +#: src/pages/stock/StockDetail.tsx:682 +#: src/tables/stock/StockItemTable.tsx:454 msgid "Add Stock" msgstr "添加库存" -#: src/forms/StockForms.tsx:844 +#: src/forms/StockForms.tsx:962 +#: src/pages/stock/StockDetail.tsx:691 +#: src/tables/stock/StockItemTable.tsx:463 msgid "Remove Stock" msgstr "移除库存" -#: src/forms/StockForms.tsx:853 -#: src/pages/part/PartDetail.tsx:1017 +#: src/forms/StockForms.tsx:971 +#: src/pages/part/PartDetail.tsx:1039 +#: src/pages/stock/StockDetail.tsx:712 +#: src/tables/stock/StockItemTable.tsx:483 msgid "Transfer Stock" msgstr "转移库存" -#: src/forms/StockForms.tsx:862 -#: src/pages/part/PartDetail.tsx:1006 +#: src/forms/StockForms.tsx:980 +#: src/pages/part/PartDetail.tsx:1028 +#: src/pages/stock/LocationDetail.tsx:314 +#: src/pages/stock/LocationDetail.tsx:318 +#: src/tables/stock/StockItemTable.tsx:472 +#: src/tables/stock/StockItemTable.tsx:476 msgid "Count Stock" msgstr "库存数量" -#: src/forms/StockForms.tsx:871 +#: src/forms/StockForms.tsx:989 msgid "Change Stock Status" msgstr "更改库存状态" -#: src/forms/StockForms.tsx:880 +#: src/forms/StockForms.tsx:998 msgid "Merge Stock" msgstr "合并库存" -#: src/forms/StockForms.tsx:899 +#: src/forms/StockForms.tsx:1017 +#: src/tables/stock/StockItemTable.tsx:530 msgid "Delete Stock Items" msgstr "删除库存项" -#: src/forms/StockForms.tsx:906 +#: src/forms/StockForms.tsx:1024 msgid "Parent stock location" msgstr "上级库存地点" @@ -3042,11 +3664,11 @@ msgstr "上级库存地点" #~ msgid "You have been logged out" #~ msgstr "You have been logged out" -#: src/functions/auth.tsx:117 +#: src/functions/auth.tsx:128 msgid "Logged Out" msgstr "已登出" -#: src/functions/auth.tsx:118 +#: src/functions/auth.tsx:129 msgid "Successfully logged out" msgstr "已成功登出" @@ -3062,20 +3684,20 @@ msgstr "已成功登出" #~ msgid "Found an existing login - welcome back!" #~ msgstr "Found an existing login - welcome back!" -#: src/functions/auth.tsx:156 +#: src/functions/auth.tsx:167 msgid "Check your inbox for a reset link. This only works if you have an account. Check in spam too." msgstr "查看收件箱中的重置链接。这只有在您有账户的情况下才会起作用。也请检查垃圾邮件。" -#: src/functions/auth.tsx:163 +#: src/functions/auth.tsx:174 #: src/pages/Auth/Set-Password.tsx:39 msgid "Reset failed" msgstr "重置失败" -#: src/functions/auth.tsx:194 +#: src/functions/auth.tsx:205 msgid "Logged In" msgstr "已登录" -#: src/functions/auth.tsx:195 +#: src/functions/auth.tsx:206 msgid "Successfully logged in" msgstr "已成功登入" @@ -3095,30 +3717,38 @@ msgstr "已成功登入" #~ msgid "method parameter not supplied" #~ msgstr "method parameter not supplied" -#: src/functions/notifications.tsx:10 +#: src/functions/notifications.tsx:12 msgid "Not implemented" msgstr "尚未实现" -#: src/functions/notifications.tsx:11 +#: src/functions/notifications.tsx:13 msgid "This feature is not yet implemented" msgstr "此功能尚未实现" -#: src/functions/notifications.tsx:21 -msgid "Permission denied" -msgstr "权限不足" +#: src/functions/notifications.tsx:24 +#~ msgid "Permission denied" +#~ msgstr "Permission denied" -#: src/functions/notifications.tsx:22 +#: src/functions/notifications.tsx:25 msgid "You do not have permission to perform this action" msgstr "您无权执行此操作。" -#: src/functions/notifications.tsx:33 +#: src/functions/notifications.tsx:36 msgid "Invalid Return Code" msgstr "无效返回码" -#: src/functions/notifications.tsx:34 +#: src/functions/notifications.tsx:37 msgid "Server returned status {returnCode}" msgstr "服务器返回状态 {returnCode}" +#: src/functions/notifications.tsx:47 +msgid "Timeout" +msgstr "超时" + +#: src/functions/notifications.tsx:48 +msgid "The request timed out" +msgstr "请求已超时" + #: src/hooks/UseForm.tsx:88 msgid "Item Created" msgstr "项目已创建" @@ -3135,20 +3765,24 @@ msgstr "项目已删除" msgid "Are you sure you want to delete this item?" msgstr "确实要删除此项目吗?" +#: src/hooks/UsePlaceholder.tsx:59 +msgid "Latest serial number" +msgstr "最新序列号" + #: src/pages/Auth/Logged-In.tsx:22 msgid "Checking if you are already logged in" msgstr "检查您是否已经登录" -#: src/pages/Auth/Login.tsx:31 -#: src/pages/Index/Scan.tsx:329 +#: src/pages/Auth/Login.tsx:35 +#: src/pages/Index/Scan.tsx:343 msgid "No selection" msgstr "未选择" -#: src/pages/Auth/Login.tsx:87 +#: src/pages/Auth/Login.tsx:91 msgid "Welcome, log in below" msgstr "欢迎,请在下方登录" -#: src/pages/Auth/Login.tsx:89 +#: src/pages/Auth/Login.tsx:93 msgid "Register below" msgstr "点击下方注册" @@ -3162,8 +3796,8 @@ msgstr "正在登出" #: src/pages/Auth/Reset.tsx:41 #: src/pages/Auth/Set-Password.tsx:112 -msgid "Send mail" -msgstr "发送邮件" +#~ msgid "Send mail" +#~ msgstr "Send mail" #: src/pages/Auth/Set-Password.tsx:30 msgid "Token invalid" @@ -3174,22 +3808,22 @@ msgid "You need to provide a valid token to set a new password. Check your inbox msgstr "您需要提供一个有效的令牌来设置一个新的密码。请检查收件箱以获取重置链接。" #: src/pages/Auth/Set-Password.tsx:49 -msgid "No token provided" -msgstr "未提供令牌" +#~ msgid "No token provided" +#~ msgstr "No token provided" #: src/pages/Auth/Set-Password.tsx:50 -msgid "You need to provide a token to set a new password. Check your inbox for a reset link." -msgstr "您需要提供一个有效的令牌来设置一个新的密码。请检查收件箱以获取重置链接。" +#~ msgid "You need to provide a token to set a new password. Check your inbox for a reset link." +#~ msgstr "You need to provide a token to set a new password. Check your inbox for a reset link." -#: src/pages/Auth/Set-Password.tsx:73 +#: src/pages/Auth/Set-Password.tsx:68 msgid "Password set" msgstr "密码已设置" -#: src/pages/Auth/Set-Password.tsx:74 +#: src/pages/Auth/Set-Password.tsx:69 msgid "The password was set successfully. You can now login with your new password" msgstr "密码设置成功。您现在可以使用新密码登录" -#: src/pages/Auth/Set-Password.tsx:101 +#: src/pages/Auth/Set-Password.tsx:96 msgid "Set new password" msgstr "设置新密码" @@ -3206,20 +3840,20 @@ msgstr "发生意外错误。" #~ msgstr "Sorry, an unexpected error has occurred." #: src/pages/Index/Dashboard.tsx:22 -msgid "Autoupdate" -msgstr "自动更新" +#~ msgid "Autoupdate" +#~ msgstr "Autoupdate" #: src/pages/Index/Dashboard.tsx:26 -msgid "This page is a replacement for the old start page with the same information. This page will be deprecated and replaced by the home page." -msgstr "本页是旧的起始页的替代页面,提供相同的信息。本页面将被废弃,并由主页取代。" +#~ msgid "This page is a replacement for the old start page with the same information. This page will be deprecated and replaced by the home page." +#~ msgstr "This page is a replacement for the old start page with the same information. This page will be deprecated and replaced by the home page." #: src/pages/Index/Home.tsx:58 -msgid "Welcome to your Dashboard{0}" -msgstr "欢迎来到您的仪表板 {0}" +#~ msgid "Welcome to your Dashboard{0}" +#~ msgstr "Welcome to your Dashboard{0}" #: src/pages/Index/Playground.tsx:222 -msgid "This page is a showcase for the possibilities of Platform UI." -msgstr "本页面展示了 Platform UI 的各种可能性。" +#~ msgid "This page is a showcase for the possibilities of Platform UI." +#~ msgstr "This page is a showcase for the possibilities of Platform UI." #: src/pages/Index/Profile/Profile.tsx:30 #: src/pages/Index/Profile/Profile.tsx:141 @@ -3365,126 +3999,191 @@ msgstr "手动输入" msgid "Image Barcode" msgstr "图片条形码" -#: src/pages/Index/Scan.tsx:247 +#: src/pages/Index/Scan.tsx:261 msgid "Selected elements are not known" msgstr "所选元素未知" -#: src/pages/Index/Scan.tsx:254 +#: src/pages/Index/Scan.tsx:268 msgid "Multiple object types selected" msgstr "选择多个对象类型" -#: src/pages/Index/Scan.tsx:261 +#: src/pages/Index/Scan.tsx:275 msgid "Actions for {0}" msgstr "对 {0} 的操作" -#: src/pages/Index/Scan.tsx:282 +#: src/pages/Index/Scan.tsx:296 msgid "Scan Page" msgstr "扫描页" -#: src/pages/Index/Scan.tsx:285 +#: src/pages/Index/Scan.tsx:299 msgid "This page can be used for continuously scanning items and taking actions on them." msgstr "该页面可用于持续扫描项目并对其进行操作。" -#: src/pages/Index/Scan.tsx:292 +#: src/pages/Index/Scan.tsx:306 msgid "Toggle Fullscreen" msgstr "全屏开关" -#: src/pages/Index/Scan.tsx:305 +#: src/pages/Index/Scan.tsx:319 msgid "Select the input method you want to use to scan items." msgstr "选择您要用于扫描项目的输入方法。" -#: src/pages/Index/Scan.tsx:307 +#: src/pages/Index/Scan.tsx:321 msgid "Input" msgstr "输入" -#: src/pages/Index/Scan.tsx:314 +#: src/pages/Index/Scan.tsx:328 msgid "Select input method" msgstr "选择输入方式" -#: src/pages/Index/Scan.tsx:315 +#: src/pages/Index/Scan.tsx:329 msgid "Nothing found" msgstr "无结果" -#: src/pages/Index/Scan.tsx:323 +#: src/pages/Index/Scan.tsx:337 msgid "Depending on the selected parts actions will be shown here. Not all barcode types are supported currently." msgstr "根据所选零件的不同,这里将显示相应的操作。目前不支持所有条形码类型。" -#: src/pages/Index/Scan.tsx:325 +#: src/pages/Index/Scan.tsx:339 msgid "Action" msgstr "操作" -#: src/pages/Index/Scan.tsx:334 +#: src/pages/Index/Scan.tsx:348 msgid "{0} items selected" msgstr "已选择 {0} 项" -#: src/pages/Index/Scan.tsx:337 +#: src/pages/Index/Scan.tsx:351 msgid "General Actions" msgstr "通用操作" -#: src/pages/Index/Scan.tsx:351 +#: src/pages/Index/Scan.tsx:365 msgid "Lookup part" msgstr "查找零件" -#: src/pages/Index/Scan.tsx:359 +#: src/pages/Index/Scan.tsx:373 msgid "Open Link" msgstr "打开链接" -#: src/pages/Index/Scan.tsx:375 +#: src/pages/Index/Scan.tsx:389 msgid "History is locally kept in this browser." msgstr "历史记录被本地保存在此浏览器。" -#: src/pages/Index/Scan.tsx:376 +#: src/pages/Index/Scan.tsx:390 msgid "The history is kept in this browser's local storage. So it won't be shared with other users or other devices but is persistent through reloads. You can select items in the history to perform actions on them. To add items, scan/enter them in the Input area." msgstr "历史记录保存在浏览器的本地存储中。因此,它不会与其他用户或其他设备共享,但在重新加载时会持续存在。您可以选择历史记录中的项目,对其执行操作。要添加项目,请在输入区扫描/输入。" -#: src/pages/Index/Scan.tsx:378 +#: src/pages/Index/Scan.tsx:392 #: src/pages/Notifications.tsx:100 msgid "History" msgstr "历史记录" -#: src/pages/Index/Scan.tsx:384 +#: src/pages/Index/Scan.tsx:398 msgid "Delete History" msgstr "删除历史记录" -#: src/pages/Index/Scan.tsx:449 +#: src/pages/Index/Scan.tsx:463 msgid "No history" msgstr "无历史记录" -#: src/pages/Index/Scan.tsx:467 +#: src/pages/Index/Scan.tsx:481 msgid "Item" msgstr "项目" -#: src/pages/Index/Scan.tsx:470 +#: src/pages/Index/Scan.tsx:484 msgid "Type" msgstr "类型" -#: src/pages/Index/Scan.tsx:473 +#: src/pages/Index/Scan.tsx:487 msgid "Source" msgstr "来源" -#: src/pages/Index/Scan.tsx:476 +#: src/pages/Index/Scan.tsx:490 msgid "Scanned at" msgstr "扫描于" -#: src/pages/Index/Scan.tsx:528 +#: src/pages/Index/Scan.tsx:547 msgid "Enter item serial or data" msgstr "输入项目序列号或数据" -#: src/pages/Index/Scan.tsx:540 +#: src/pages/Index/Scan.tsx:559 msgid "Add dummy item" msgstr "添加虚拟项目" +#: src/pages/Index/Scan.tsx:569 +msgid "Start scanning by selecting a camera and pressing the play button." +msgstr "选择相机并按播放按钮开始扫描。" + +#: src/pages/Index/Scan.tsx:650 +msgid "Error while getting camera" +msgstr "获取相机时出错" + +#: src/pages/Index/Scan.tsx:673 +msgid "Error while scanning" +msgstr "扫描时出错" + +#: src/pages/Index/Scan.tsx:687 +msgid "Error while stopping" +msgstr "停止时出错" + +#: src/pages/Index/Scan.tsx:745 +msgid "Stop scanning" +msgstr "停止扫描" + +#: src/pages/Index/Scan.tsx:754 +msgid "Start scanning" +msgstr "开始扫描" + +#: src/pages/Index/Scan.tsx:763 +msgid "Scanning" +msgstr "正在扫描" + +#: src/pages/Index/Scan.tsx:763 +msgid "Not scanning" +msgstr "未扫描" + +#: src/pages/Index/Scan.tsx:775 +msgid "Select Camera" +msgstr "选择相机" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:28 +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:50 +msgid "Edit User Information" +msgstr "編輯使用者資訊" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:32 +msgid "User details updated" +msgstr "用户明细已更新" + #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:41 -msgid "Account Details" -msgstr "账户详情" +msgid "User Details" +msgstr "用户详情" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:41 +#~ msgid "Account Details" +#~ msgstr "Account Details" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:44 +msgid "User Actions" +msgstr "用户操作" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:48 +msgid "Edit User" +msgstr "编辑用户" #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:50 -msgid "First name" -msgstr "名" +#~ msgid "First name" +#~ msgstr "First name" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:54 +msgid "Set Password" +msgstr "设置密码" #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:55 -msgid "Last name" -msgstr "姓" +#~ msgid "Last name" +#~ msgstr "Last name" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:56 +msgid "Set User Password" +msgstr "设置用户密码" #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:58 #~ msgid "First name: {0}" @@ -3495,16 +4194,29 @@ msgstr "姓" #~ msgstr "Last name: {0}" #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:67 -msgid "First name:" -msgstr "名:" +#~ msgid "First name:" +#~ msgstr "First name:" #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:71 -msgid "Last name:" -msgstr "姓:" +#~ msgid "Last name:" +#~ msgstr "Last name:" -#: src/pages/Index/Settings/AccountSettings/DisplaySettingsPanel.tsx:41 -msgid "Use pseudo language" -msgstr "使用 pseudo 语言" +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:73 +msgid "First Name" +msgstr "名" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:79 +msgid "Last Name" +msgstr "姓" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:85 +msgid "Staff Access" +msgstr "工作人员访问" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:93 +#: src/tables/settings/UserTable.tsx:293 +msgid "Superuser" +msgstr "超级用户" #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:55 msgid "Single Sign On Accounts" @@ -3600,27 +4312,6 @@ msgstr "撤销" msgid "No tokens configured" msgstr "未配置令牌" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:398 -#: src/pages/part/PartDetail.tsx:297 -#: src/tables/bom/UsedInTable.tsx:84 -#: src/tables/build/BuildOrderTable.tsx:110 -#: src/tables/company/CompanyTable.tsx:61 -#: src/tables/company/CompanyTable.tsx:95 -#: src/tables/machine/MachineListTable.tsx:332 -#: src/tables/machine/MachineListTable.tsx:594 -#: src/tables/part/ParametricPartTable.tsx:223 -#: src/tables/part/PartTable.tsx:178 -#: src/tables/part/PartVariantTable.tsx:15 -#: src/tables/plugin/PluginListTable.tsx:149 -#: src/tables/plugin/PluginListTable.tsx:271 -#: src/tables/plugin/PluginListTable.tsx:563 -#: src/tables/purchasing/SupplierPartTable.tsx:98 -#: src/tables/purchasing/SupplierPartTable.tsx:187 -#: src/tables/settings/UserTable.tsx:284 -#: src/tables/stock/StockItemTable.tsx:289 -msgid "Active" -msgstr "激活" - #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:401 msgid "Expiry" msgstr "到期" @@ -3630,38 +4321,74 @@ msgid "Last Seen" msgstr "上一次查看时间" #: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:65 -msgid "bars" -msgstr "栏" +#~ msgid "bars" +#~ msgstr "bars" #: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:66 -msgid "oval" -msgstr "椭圆" +#~ msgid "oval" +#~ msgstr "oval" #: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:67 -msgid "dots" -msgstr "点" +#~ msgid "dots" +#~ msgstr "dots" #: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:81 -msgid "Theme" -msgstr "主题" +#~ msgid "Theme" +#~ msgstr "Theme" #: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:87 -msgid "Primary color" -msgstr "主要颜色" +#~ msgid "Primary color" +#~ msgstr "Primary color" -#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:100 +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:88 +msgid "Bars" +msgstr "条" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:89 +msgid "Oval" +msgstr "椭圆" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:90 +msgid "Dots" +msgstr "点" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:101 +msgid "Display Settings" +msgstr "显示设置" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:107 +msgid "Language" +msgstr "语言" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:115 +msgid "Use pseudo language" +msgstr "使用 pseudo 语言" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:122 +msgid "Color Mode" +msgstr "色彩模式" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:133 +msgid "Highlight color" +msgstr "高亮颜色" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:145 +msgid "Example" +msgstr "示例" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:151 msgid "White color" msgstr "白色" -#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:108 +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:167 msgid "Black color" msgstr "黑色" -#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:116 +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:183 msgid "Border Radius" msgstr "边框半径" -#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:132 +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:199 msgid "Loader" msgstr "加载器" @@ -3673,89 +4400,156 @@ msgstr "加载器" #~ msgid "Advanced Amininistrative Options for InvenTree" #~ msgstr "Advanced Amininistrative Options for InvenTree" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:104 +#: src/pages/Index/Settings/AdminCenter/CurrencyManagmentPanel.tsx:27 +#: src/tables/ColumnRenderers.tsx:262 +msgid "Currency" +msgstr "货币" + +#: src/pages/Index/Settings/AdminCenter/CurrencyManagmentPanel.tsx:32 +msgid "Rate" +msgstr "汇率" + +#: src/pages/Index/Settings/AdminCenter/CurrencyManagmentPanel.tsx:44 +msgid "Exchange rates updated" +msgstr "汇率已更新" + +#: src/pages/Index/Settings/AdminCenter/CurrencyManagmentPanel.tsx:50 +msgid "Exchange rate update error" +msgstr "汇率更新错误" + +#: src/pages/Index/Settings/AdminCenter/CurrencyManagmentPanel.tsx:62 +msgid "Refresh currency exchange rates" +msgstr "刷新货币汇率" + +#: src/pages/Index/Settings/AdminCenter/CurrencyManagmentPanel.tsx:99 +msgid "Last fetched" +msgstr "上次获取时间" + +#: src/pages/Index/Settings/AdminCenter/CurrencyManagmentPanel.tsx:100 +msgid "Base currency" +msgstr "基准货币" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:115 msgid "Data Import" msgstr "数据导入" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:110 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:121 +msgid "Barcode Scans" +msgstr "扫描条码" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:127 msgid "Background Tasks" msgstr "后台任务" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:116 -msgid "Error Reports" -msgstr "错误报告" - -#: src/pages/Index/Settings/AdminCenter/Index.tsx:122 -msgid "Currencies" -msgstr "币种" - #: src/pages/Index/Settings/AdminCenter/Index.tsx:127 #~ msgid "Templates" #~ msgstr "Templates" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:140 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:133 +msgid "Error Reports" +msgstr "错误报告" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:139 +msgid "Currencies" +msgstr "币种" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:157 +msgid "Custom States" +msgstr "自定状态" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:163 +#: src/pages/Index/Settings/AdminCenter/UnitManagmentPanel.tsx:58 msgid "Custom Units" msgstr "自定义单位" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:146 -#: src/pages/part/CategoryDetail.tsx:264 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:169 +#: src/pages/part/CategoryDetail.tsx:269 msgid "Part Parameters" msgstr "零件参数" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:152 -msgid "Category Parameters" -msgstr "类别参数" - -#: src/pages/Index/Settings/AdminCenter/Index.tsx:170 -msgid "Location Types" -msgstr "位置类型" - #: src/pages/Index/Settings/AdminCenter/Index.tsx:170 #~ msgid "Location types" #~ msgstr "Location types" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:182 -#: src/tables/machine/MachineTypeTable.tsx:287 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:175 +msgid "Category Parameters" +msgstr "类别参数" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:181 +msgid "Stocktake" +msgstr "库存盘点" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:199 +msgid "Location Types" +msgstr "位置类型" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:211 +#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:48 +#: src/tables/machine/MachineTypeTable.tsx:308 msgid "Machines" msgstr "设备" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:192 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:221 msgid "Quick Actions" msgstr "快捷操作" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:197 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:226 msgid "Add a new user" msgstr "添加新用户" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:222 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:252 msgid "Advanced Options" msgstr "高级选项" #: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:43 -msgid "Machine types" -msgstr "设备类型" +#~ msgid "Machine types" +#~ msgstr "Machine types" #: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:53 -msgid "Machine Error Stack" -msgstr "设备错误堆栈" +#~ msgid "Machine Error Stack" +#~ msgstr "Machine Error Stack" + +#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:56 +msgid "Machine Types" +msgstr "" #: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:62 -msgid "There are no machine registry errors." -msgstr "没有设备注册表错误。" +#~ msgid "There are no machine registry errors." +#~ msgstr "There are no machine registry errors." -#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:28 -#: src/tables/settings/UserTable.tsx:119 +#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:64 +msgid "Machine Errors" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:77 +msgid "Registry Registry Errors" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:80 +msgid "There are machine registry errors" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:86 +msgid "Machine Registry Errors" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:89 +msgid "There are no machine registry errors" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:31 +#: src/tables/settings/UserTable.tsx:118 msgid "Info" msgstr "信息" -#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:32 -msgid "External plugins are not enabled for this InvenTree installation." -msgstr "此 InvenTree 未启用外部插件。" - #: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:33 #~ msgid "Plugin Error Stack" #~ msgstr "Plugin Error Stack" +#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:35 +msgid "External plugins are not enabled for this InvenTree installation." +msgstr "此 InvenTree 未启用外部插件。" + #: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:45 #~ msgid "Warning" #~ msgstr "Warning" @@ -3764,34 +4558,46 @@ msgstr "此 InvenTree 未启用外部插件。" #~ msgid "Changing the settings below require you to immediately restart the server. Do not change this while under active usage." #~ msgstr "Changing the settings below require you to immediately restart the server. Do not change this while under active usage." -#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:50 +#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:73 msgid "Plugin Errors" msgstr "插件错误" -#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:59 -msgid "Plugin Settings" -msgstr "插件设置" +#: src/pages/Index/Settings/AdminCenter/ReportTemplatePanel.tsx:17 +msgid "Page Size" +msgstr "页面尺寸" -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:53 -msgid "Background Worker Not Running" -msgstr "后台程序未运行" +#: src/pages/Index/Settings/AdminCenter/ReportTemplatePanel.tsx:20 +msgid "Landscape" +msgstr "横屏模式" -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:54 +#: src/pages/Index/Settings/AdminCenter/ReportTemplatePanel.tsx:26 +msgid "Attach to Model" +msgstr "附加到模型" + +#: src/pages/Index/Settings/AdminCenter/StocktakePanel.tsx:25 +msgid "Stocktake Reports" +msgstr "盘点报告" + +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:30 msgid "The background task manager service is not running. Contact your system administrator." msgstr "后台任务管理器服务未运行。请联系系统管理员。" -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:60 -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:76 +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:35 +#~ msgid "Background Worker Not Running" +#~ msgstr "Background Worker Not Running" + +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:36 +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:45 msgid "Pending Tasks" msgstr "待完成任务" -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:64 -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:84 +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:37 +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:53 msgid "Scheduled Tasks" msgstr "计划任务" -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:68 -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:92 +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:38 +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:61 msgid "Failed Tasks" msgstr "失败任务" @@ -3811,11 +4617,6 @@ msgstr "失败任务" #~ msgid "Reports" #~ msgstr "Reports" -#: src/pages/Index/Settings/AdminCenter/TemplateManagementPanel.tsx:89 -#: src/pages/build/BuildDetail.tsx:373 -#~ msgid "Report" -#~ msgstr "Report" - #: src/pages/Index/Settings/AdminCenter/TemplateManagementPanel.tsx:99 #~ msgid "Purchase order" #~ msgstr "Purchase order" @@ -3836,23 +4637,35 @@ msgstr "失败任务" #~ msgid "Stock location" #~ msgstr "Stock location" +#: src/pages/Index/Settings/AdminCenter/UnitManagmentPanel.tsx:21 +msgid "Alias" +msgstr "别名" + +#: src/pages/Index/Settings/AdminCenter/UnitManagmentPanel.tsx:22 +msgid "Dimensionless" +msgstr "无尺寸" + +#: src/pages/Index/Settings/AdminCenter/UnitManagmentPanel.tsx:66 +msgid "All units" +msgstr "所有单位" + #: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:32 msgid "Select settings relevant for user lifecycle. More available in" msgstr "选择与用户生命周期相关的设置。更多详情见 " #: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:37 -msgid "System settings" -msgstr "系统设置" +#~ msgid "System settings" +#~ msgstr "System settings" -#: src/pages/Index/Settings/SystemSettings.tsx:67 +#: src/pages/Index/Settings/SystemSettings.tsx:66 msgid "Login" msgstr "登录" -#: src/pages/Index/Settings/SystemSettings.tsx:93 +#: src/pages/Index/Settings/SystemSettings.tsx:92 msgid "Barcodes" msgstr "条形码" -#: src/pages/Index/Settings/SystemSettings.tsx:115 +#: src/pages/Index/Settings/SystemSettings.tsx:116 msgid "Pricing" msgstr "定价" @@ -3864,64 +4677,46 @@ msgstr "定价" #~ msgid "Exchange Rates" #~ msgstr "Exchange Rates" -#: src/pages/Index/Settings/SystemSettings.tsx:150 +#: src/pages/Index/Settings/SystemSettings.tsx:151 msgid "Labels" msgstr "标签" -#: src/pages/Index/Settings/SystemSettings.tsx:156 -#: src/pages/Index/Settings/UserSettings.tsx:132 +#: src/pages/Index/Settings/SystemSettings.tsx:157 +#: src/pages/Index/Settings/UserSettings.tsx:133 msgid "Reporting" msgstr "报告" #: src/pages/Index/Settings/SystemSettings.tsx:231 -#: src/pages/part/PartDetail.tsx:682 -msgid "Stocktake" -msgstr "库存盘点" - -#: src/pages/Index/Settings/SystemSettings.tsx:237 -#: src/pages/build/BuildDetail.tsx:554 -#: src/pages/build/BuildIndex.tsx:22 -#: src/pages/part/PartDetail.tsx:616 -#: src/pages/sales/SalesOrderDetail.tsx:333 +#: src/pages/build/BuildIndex.tsx:27 +#: src/pages/part/PartDetail.tsx:636 +#: src/pages/sales/SalesOrderDetail.tsx:355 msgid "Build Orders" msgstr "生产订单" -#: src/pages/Index/Settings/SystemSettings.tsx:318 -msgid "Switch to User Setting" -msgstr "切换到用户设置" +#: src/pages/Index/Settings/SystemSettings.tsx:317 +#~ msgid "Switch to User Setting" +#~ msgstr "Switch to User Setting" -#: src/pages/Index/Settings/UserSettings.tsx:34 +#: src/pages/Index/Settings/UserSettings.tsx:35 msgid "Account" msgstr "账户" -#: src/pages/Index/Settings/UserSettings.tsx:40 +#: src/pages/Index/Settings/UserSettings.tsx:41 msgid "Security" msgstr "安全" -#: src/pages/Index/Settings/UserSettings.tsx:78 +#: src/pages/Index/Settings/UserSettings.tsx:79 msgid "Display Options" msgstr "显示选项" -#: src/pages/Index/Settings/UserSettings.tsx:150 -msgid "Account Settings" -msgstr "账户设置" - -#: src/pages/Index/Settings/UserSettings.tsx:158 -msgid "Switch to System Setting" -msgstr "切换到系统设置" - -#: src/pages/Index/UserSettings.tsx:103 -#~ msgid "User Settings" -#~ msgstr "User Settings" +#: src/pages/Index/Settings/UserSettings.tsx:159 +#~ msgid "Switch to System Setting" +#~ msgstr "Switch to System Setting" #: src/pages/Logged-In.tsx:24 #~ msgid "Found an exsisting login - using it to log you in." #~ msgstr "Found an exsisting login - using it to log you in." -#: src/pages/NotFound.tsx:17 -#~ msgid "Not Found" -#~ msgstr "Not Found" - #: src/pages/NotFound.tsx:20 #~ msgid "Sorry, this page is not known or was moved." #~ msgstr "Sorry, this page is not known or was moved." @@ -3942,115 +4737,93 @@ msgstr "标记为未读" #~ msgid "Build Status" #~ msgstr "Build Status" -#: src/pages/build/BuildDetail.tsx:102 -#: src/pages/part/PartDetail.tsx:150 +#: src/pages/build/BuildDetail.tsx:97 +#: src/pages/company/ManufacturerPartDetail.tsx:81 +#: src/pages/company/SupplierPartDetail.tsx:91 +#: src/pages/part/PartDetail.tsx:171 +#: src/pages/stock/StockDetail.tsx:122 #: src/tables/bom/BomTable.tsx:118 #: src/tables/bom/UsedInTable.tsx:39 -#: src/tables/build/BuildLineTable.tsx:173 -#: src/tables/build/BuildOrderTable.tsx:55 -#: src/tables/sales/SalesOrderLineItemTable.tsx:62 -#: src/tables/stock/StockItemTable.tsx:53 +#: src/tables/build/BuildAllocatedStockTable.tsx:104 +#: src/tables/build/BuildLineTable.tsx:324 +#: src/tables/build/BuildOrderTable.tsx:64 +#: src/tables/sales/SalesOrderLineItemTable.tsx:70 +#: src/tables/stock/StockItemTable.tsx:54 msgid "IPN" msgstr "内部零件编码 IPN" -#: src/pages/build/BuildDetail.tsx:115 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:121 -#: src/pages/sales/ReturnOrderDetail.tsx:95 -#: src/pages/sales/SalesOrderDetail.tsx:101 -#: src/tables/ColumnRenderers.tsx:121 -#: src/tables/build/BuildAllocatedStockTable.tsx:90 -#: src/tables/build/BuildLineTable.tsx:184 +#: src/pages/build/BuildDetail.tsx:110 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:115 +#: src/pages/sales/ReturnOrderDetail.tsx:86 +#: src/pages/sales/SalesOrderDetail.tsx:95 +#: src/tables/ColumnRenderers.tsx:132 +#: src/tables/build/BuildAllocatedStockTable.tsx:111 +#: src/tables/build/BuildLineTable.tsx:335 msgid "Reference" msgstr "参考" -#: src/pages/build/BuildDetail.tsx:121 -#: src/pages/company/CompanyDetail.tsx:90 -#: src/pages/company/ManufacturerPartDetail.tsx:83 -#: src/pages/company/SupplierPartDetail.tsx:96 -#: src/pages/part/CategoryDetail.tsx:101 -#: src/pages/part/PartDetail.tsx:157 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:142 -#: src/pages/sales/ReturnOrderDetail.tsx:115 -#: src/pages/sales/SalesOrderDetail.tsx:121 -#: src/pages/stock/LocationDetail.tsx:109 -#: src/tables/ColumnRenderers.tsx:81 -#: src/tables/bom/UsedInTable.tsx:44 -#: src/tables/build/BuildAllocatedStockTable.tsx:70 -#: src/tables/build/BuildLineTable.tsx:178 -#: src/tables/machine/MachineTypeTable.tsx:69 -#: src/tables/machine/MachineTypeTable.tsx:112 -#: src/tables/machine/MachineTypeTable.tsx:219 -#: src/tables/machine/MachineTypeTable.tsx:323 -#: src/tables/part/RelatedPartTable.tsx:64 -#: src/tables/plugin/PluginListTable.tsx:129 -#: src/tables/plugin/PluginListTable.tsx:276 -#: src/tables/sales/SalesOrderAllocationTable.tsx:56 -#: src/tables/sales/SalesOrderLineItemTable.tsx:67 -#: src/tables/stock/LocationTypesTable.tsx:74 -msgid "Description" -msgstr "描述" - -#: src/pages/build/BuildDetail.tsx:129 +#: src/pages/build/BuildDetail.tsx:124 msgid "Parent Build" msgstr "上级生产" -#: src/pages/build/BuildDetail.tsx:140 +#: src/pages/build/BuildDetail.tsx:135 msgid "Build Quantity" msgstr "生产数量" -#: src/pages/build/BuildDetail.tsx:148 -#: src/pages/build/BuildDetail.tsx:274 +#: src/pages/build/BuildDetail.tsx:143 +#: src/pages/build/BuildDetail.tsx:277 msgid "Completed Outputs" msgstr "已出产" -#: src/pages/build/BuildDetail.tsx:165 -#: src/tables/build/BuildOrderTable.tsx:151 +#: src/pages/build/BuildDetail.tsx:160 +#: src/tables/build/BuildOrderTable.tsx:142 msgid "Issued By" msgstr "发布人" -#: src/pages/build/BuildDetail.tsx:172 -#: src/pages/part/PartDetail.tsx:365 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:220 -#: src/pages/sales/ReturnOrderDetail.tsx:199 -#: src/pages/sales/SalesOrderDetail.tsx:208 -#: src/tables/build/BuildOrderTable.tsx:157 -#: src/tables/purchasing/PurchaseOrderTable.tsx:75 -#: src/tables/sales/ReturnOrderTable.tsx:66 -#: src/tables/sales/SalesOrderTable.tsx:73 +#: src/pages/build/BuildDetail.tsx:167 +#: src/pages/part/PartDetail.tsx:406 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:244 +#: src/pages/sales/ReturnOrderDetail.tsx:216 +#: src/pages/sales/SalesOrderDetail.tsx:226 +#: src/tables/build/BuildOrderTable.tsx:148 +#: src/tables/purchasing/PurchaseOrderTable.tsx:76 +#: src/tables/sales/ReturnOrderTable.tsx:74 +#: src/tables/sales/SalesOrderTable.tsx:74 msgid "Responsible" msgstr "责任人" -#: src/pages/build/BuildDetail.tsx:179 -#: src/tables/settings/PendingTasksTable.tsx:32 +#: src/pages/build/BuildDetail.tsx:174 +#: src/tables/settings/PendingTasksTable.tsx:36 msgid "Created" msgstr "已创建" +#: src/pages/build/BuildDetail.tsx:181 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:229 +#: src/pages/sales/ReturnOrderDetail.tsx:201 +#: src/pages/sales/SalesOrderDetail.tsx:212 +#: src/tables/ColumnRenderers.tsx:226 +#: src/tables/part/PartPurchaseOrdersTable.tsx:100 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:135 +#: src/tables/sales/SalesOrderLineItemTable.tsx:107 +msgid "Target Date" +msgstr "预计日期" + #: src/pages/build/BuildDetail.tsx:185 #: src/pages/part/PartDetail.tsx:269 #: src/pages/stock/StockDetail.tsx:150 #~ msgid "View part barcode" #~ msgstr "View part barcode" -#: src/pages/build/BuildDetail.tsx:186 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:213 -#: src/pages/sales/ReturnOrderDetail.tsx:192 -#: src/pages/sales/SalesOrderDetail.tsx:201 -#: src/tables/ColumnRenderers.tsx:212 -#: src/tables/part/PartPurchaseOrdersTable.tsx:99 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:110 -#: src/tables/sales/SalesOrderLineItemTable.tsx:99 -msgid "Target Date" -msgstr "预计日期" +#: src/pages/build/BuildDetail.tsx:188 +#: src/tables/sales/SalesOrderLineItemTable.tsx:281 +msgid "Completed" +msgstr "已完成" #: src/pages/build/BuildDetail.tsx:190 #: src/pages/part/PartDetail.tsx:274 #~ msgid "Link custom barcode to part" #~ msgstr "Link custom barcode to part" -#: src/pages/build/BuildDetail.tsx:193 -msgid "Completed" -msgstr "已完成" - #: src/pages/build/BuildDetail.tsx:196 #: src/pages/part/PartDetail.tsx:280 #~ msgid "Unlink custom barcode from part" @@ -4060,15 +4833,11 @@ msgstr "已完成" #~ msgid "Build Order updated" #~ msgstr "Build Order updated" -#: src/pages/build/BuildDetail.tsx:205 -msgid "Source Location" -msgstr "来源地点" - -#: src/pages/build/BuildDetail.tsx:206 +#: src/pages/build/BuildDetail.tsx:209 msgid "Any location" msgstr "任意地点" -#: src/pages/build/BuildDetail.tsx:213 +#: src/pages/build/BuildDetail.tsx:216 msgid "Destination Location" msgstr "目标地点" @@ -4084,206 +4853,182 @@ msgstr "目标地点" #~ msgid "Delete build order" #~ msgstr "Delete build order" -#: src/pages/build/BuildDetail.tsx:251 +#: src/pages/build/BuildDetail.tsx:254 msgid "Build Details" msgstr "生产详情" -#: src/pages/build/BuildDetail.tsx:257 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:258 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:267 -#: src/pages/sales/ReturnOrderDetail.tsx:130 -#: src/pages/sales/ReturnOrderDetail.tsx:237 -#: src/pages/sales/ReturnOrderDetail.tsx:246 -#: src/pages/sales/SalesOrderDetail.tsx:272 -#: src/pages/sales/SalesOrderDetail.tsx:281 +#: src/pages/build/BuildDetail.tsx:260 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:282 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:291 +#: src/pages/sales/ReturnOrderDetail.tsx:122 +#: src/pages/sales/ReturnOrderDetail.tsx:254 +#: src/pages/sales/ReturnOrderDetail.tsx:263 +#: src/pages/sales/SalesOrderDetail.tsx:294 +#: src/pages/sales/SalesOrderDetail.tsx:303 msgid "Line Items" msgstr "行项目" -#: src/pages/build/BuildDetail.tsx:267 +#: src/pages/build/BuildDetail.tsx:266 msgid "Incomplete Outputs" msgstr "未出产" -#: src/pages/build/BuildDetail.tsx:289 -#: src/pages/sales/SalesOrderDetail.tsx:319 +#: src/pages/build/BuildDetail.tsx:292 +#: src/pages/sales/SalesOrderDetail.tsx:341 msgid "Allocated Stock" msgstr "已分配的库存" -#: src/pages/build/BuildDetail.tsx:299 +#: src/pages/build/BuildDetail.tsx:302 msgid "Consumed Stock" msgstr "已消耗库存" -#: src/pages/build/BuildDetail.tsx:313 +#: src/pages/build/BuildDetail.tsx:316 msgid "Child Build Orders" msgstr "子生产订单" #: src/pages/build/BuildDetail.tsx:326 -#: src/tables/build/BuildOutputTable.tsx:384 -#: src/tables/stock/StockItemTestResultTable.tsx:150 +#: src/tables/build/BuildOutputTable.tsx:532 +#: src/tables/stock/StockItemTestResultTable.tsx:156 msgid "Test Results" msgstr "测试结果" #: src/pages/build/BuildDetail.tsx:337 -#: src/pages/part/PartDetail.tsx:699 +#: src/pages/part/PartDetail.tsx:740 msgid "Test Statistics" msgstr "测试统计数据" -#: src/pages/build/BuildDetail.tsx:351 -#: src/pages/company/CompanyDetail.tsx:259 -#: src/pages/company/ManufacturerPartDetail.tsx:179 -#: src/pages/part/PartDetail.tsx:721 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:309 -#: src/pages/sales/ReturnOrderDetail.tsx:274 -#: src/pages/sales/SalesOrderDetail.tsx:343 -#: src/pages/stock/StockDetail.tsx:385 -msgid "Attachments" -msgstr "附件" - -#: src/pages/build/BuildDetail.tsx:359 -#: src/pages/company/CompanyDetail.tsx:270 -#: src/pages/company/ManufacturerPartDetail.tsx:190 -#: src/pages/company/SupplierPartDetail.tsx:257 -#: src/pages/part/PartDetail.tsx:729 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:320 -#: src/pages/sales/ReturnOrderDetail.tsx:285 -#: src/pages/sales/SalesOrderDetail.tsx:354 -#: src/pages/stock/StockDetail.tsx:396 -#: src/tables/build/BuildOrderTestTable.tsx:142 -#: src/tables/stock/StockTrackingTable.tsx:189 -msgid "Notes" -msgstr "备注" +#: src/pages/build/BuildDetail.tsx:365 +msgid "Edit Build Order" +msgstr "编辑生产订单" #: src/pages/build/BuildDetail.tsx:368 #~ msgid "Reporting Actions" #~ msgstr "Reporting Actions" +#: src/pages/build/BuildDetail.tsx:372 +#: src/tables/build/BuildOrderTable.tsx:173 +#: src/tables/build/BuildOrderTable.tsx:188 +msgid "Add Build Order" +msgstr "添加生产订单" + #: src/pages/build/BuildDetail.tsx:374 #~ msgid "Print build report" #~ msgstr "Print build report" -#: src/pages/build/BuildDetail.tsx:377 -msgid "Edit Build Order" -msgstr "编辑生产订单" - -#: src/pages/build/BuildDetail.tsx:384 -#: src/tables/build/BuildOrderTable.tsx:172 -#: src/tables/build/BuildOrderTable.tsx:187 -msgid "Add Build Order" -msgstr "添加生产订单" - -#: src/pages/build/BuildDetail.tsx:398 +#: src/pages/build/BuildDetail.tsx:386 msgid "Cancel Build Order" msgstr "取消生产订单" -#: src/pages/build/BuildDetail.tsx:400 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:348 -#: src/pages/sales/SalesOrderDetail.tsx:380 +#: src/pages/build/BuildDetail.tsx:388 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:357 +#: src/pages/sales/ReturnOrderDetail.tsx:354 +#: src/pages/sales/SalesOrderDetail.tsx:387 msgid "Order cancelled" msgstr "订单已取消" -#: src/pages/build/BuildDetail.tsx:401 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:347 -#: src/pages/sales/ReturnOrderDetail.tsx:346 -#: src/pages/sales/SalesOrderDetail.tsx:379 +#: src/pages/build/BuildDetail.tsx:389 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:356 +#: src/pages/sales/ReturnOrderDetail.tsx:353 +#: src/pages/sales/SalesOrderDetail.tsx:386 msgid "Cancel this order" msgstr "取消此订单" -#: src/pages/build/BuildDetail.tsx:410 +#: src/pages/build/BuildDetail.tsx:398 msgid "Hold Build Order" msgstr "挂起生产订单" -#: src/pages/build/BuildDetail.tsx:412 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:355 -#: src/pages/sales/ReturnOrderDetail.tsx:354 -#: src/pages/sales/SalesOrderDetail.tsx:387 +#: src/pages/build/BuildDetail.tsx:400 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:364 +#: src/pages/sales/ReturnOrderDetail.tsx:361 +#: src/pages/sales/SalesOrderDetail.tsx:394 msgid "Place this order on hold" msgstr "将此订单挂起" -#: src/pages/build/BuildDetail.tsx:413 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:356 -#: src/pages/sales/ReturnOrderDetail.tsx:355 -#: src/pages/sales/SalesOrderDetail.tsx:388 +#: src/pages/build/BuildDetail.tsx:401 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:365 +#: src/pages/sales/ReturnOrderDetail.tsx:362 +#: src/pages/sales/SalesOrderDetail.tsx:395 msgid "Order placed on hold" msgstr "挂起订单" -#: src/pages/build/BuildDetail.tsx:418 +#: src/pages/build/BuildDetail.tsx:406 msgid "Issue Build Order" msgstr "发出生产订单" -#: src/pages/build/BuildDetail.tsx:420 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:339 -#: src/pages/sales/ReturnOrderDetail.tsx:338 -#: src/pages/sales/SalesOrderDetail.tsx:371 +#: src/pages/build/BuildDetail.tsx:408 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:348 +#: src/pages/sales/ReturnOrderDetail.tsx:345 +#: src/pages/sales/SalesOrderDetail.tsx:378 msgid "Issue this order" msgstr "发出这个订单" -#: src/pages/build/BuildDetail.tsx:421 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:340 -#: src/pages/sales/ReturnOrderDetail.tsx:339 -#: src/pages/sales/SalesOrderDetail.tsx:372 +#: src/pages/build/BuildDetail.tsx:409 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:349 +#: src/pages/sales/ReturnOrderDetail.tsx:346 +#: src/pages/sales/SalesOrderDetail.tsx:379 msgid "Order issued" msgstr "订单发起" -#: src/pages/build/BuildDetail.tsx:426 +#: src/pages/build/BuildDetail.tsx:414 msgid "Complete Build Order" msgstr "完成生产订单" -#: src/pages/build/BuildDetail.tsx:428 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:368 -#: src/pages/sales/ReturnOrderDetail.tsx:362 -#: src/pages/sales/SalesOrderDetail.tsx:395 +#: src/pages/build/BuildDetail.tsx:416 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:377 +#: src/pages/sales/ReturnOrderDetail.tsx:369 +#: src/pages/sales/SalesOrderDetail.tsx:402 msgid "Mark this order as complete" msgstr "标记该订单为已完成" -#: src/pages/build/BuildDetail.tsx:429 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:362 -#: src/pages/sales/ReturnOrderDetail.tsx:363 -#: src/pages/sales/SalesOrderDetail.tsx:396 +#: src/pages/build/BuildDetail.tsx:417 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:371 +#: src/pages/sales/ReturnOrderDetail.tsx:370 +#: src/pages/sales/SalesOrderDetail.tsx:403 msgid "Order completed" msgstr "订单已完成" -#: src/pages/build/BuildDetail.tsx:460 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:391 -#: src/pages/sales/ReturnOrderDetail.tsx:392 -#: src/pages/sales/SalesOrderDetail.tsx:425 +#: src/pages/build/BuildDetail.tsx:448 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:400 +#: src/pages/sales/ReturnOrderDetail.tsx:399 +#: src/pages/sales/SalesOrderDetail.tsx:432 msgid "Issue Order" msgstr "发布订单" -#: src/pages/build/BuildDetail.tsx:467 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:398 -#: src/pages/sales/ReturnOrderDetail.tsx:399 -#: src/pages/sales/SalesOrderDetail.tsx:439 +#: src/pages/build/BuildDetail.tsx:455 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:407 +#: src/pages/sales/ReturnOrderDetail.tsx:406 +#: src/pages/sales/SalesOrderDetail.tsx:446 msgid "Complete Order" msgstr "完成订单" -#: src/pages/build/BuildDetail.tsx:496 +#: src/pages/build/BuildDetail.tsx:473 msgid "Build Order Actions" msgstr "生产订单操作" -#: src/pages/build/BuildDetail.tsx:502 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:432 -#: src/pages/sales/ReturnOrderDetail.tsx:433 -#: src/pages/sales/SalesOrderDetail.tsx:474 +#: src/pages/build/BuildDetail.tsx:478 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:429 +#: src/pages/sales/ReturnOrderDetail.tsx:428 +#: src/pages/sales/SalesOrderDetail.tsx:469 msgid "Edit order" msgstr "编辑订单" -#: src/pages/build/BuildDetail.tsx:506 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:440 -#: src/pages/sales/ReturnOrderDetail.tsx:439 -#: src/pages/sales/SalesOrderDetail.tsx:479 +#: src/pages/build/BuildDetail.tsx:482 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:437 +#: src/pages/sales/ReturnOrderDetail.tsx:434 +#: src/pages/sales/SalesOrderDetail.tsx:474 msgid "Duplicate order" msgstr "复制订单" -#: src/pages/build/BuildDetail.tsx:510 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:443 -#: src/pages/sales/ReturnOrderDetail.tsx:444 -#: src/pages/sales/SalesOrderDetail.tsx:482 +#: src/pages/build/BuildDetail.tsx:486 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:440 +#: src/pages/sales/ReturnOrderDetail.tsx:439 +#: src/pages/sales/SalesOrderDetail.tsx:477 msgid "Hold order" msgstr "挂起订单" -#: src/pages/build/BuildDetail.tsx:515 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:448 -#: src/pages/sales/ReturnOrderDetail.tsx:449 -#: src/pages/sales/SalesOrderDetail.tsx:487 +#: src/pages/build/BuildDetail.tsx:491 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:445 +#: src/pages/sales/ReturnOrderDetail.tsx:444 +#: src/pages/sales/SalesOrderDetail.tsx:482 msgid "Cancel order" msgstr "取消订单" @@ -4295,57 +5040,61 @@ msgstr "取消订单" #~ msgid "New Build Order" #~ msgstr "New Build Order" -#: src/pages/company/CompanyDetail.tsx:104 +#: src/pages/company/CompanyDetail.tsx:95 +msgid "Website" +msgstr "网站" + +#: src/pages/company/CompanyDetail.tsx:103 msgid "Phone Number" msgstr "电话号码" -#: src/pages/company/CompanyDetail.tsx:111 +#: src/pages/company/CompanyDetail.tsx:110 msgid "Email Address" msgstr "电子邮件地址" -#: src/pages/company/CompanyDetail.tsx:121 +#: src/pages/company/CompanyDetail.tsx:120 msgid "Default Currency" msgstr "默认货币单位" -#: src/pages/company/CompanyDetail.tsx:126 +#: src/pages/company/CompanyDetail.tsx:125 #: src/pages/company/SupplierDetail.tsx:8 -#: src/pages/company/SupplierPartDetail.tsx:120 -#: src/pages/company/SupplierPartDetail.tsx:206 -#: src/pages/company/SupplierPartDetail.tsx:351 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:136 -#: src/tables/company/CompanyTable.tsx:100 +#: src/pages/company/SupplierPartDetail.tsx:125 +#: src/pages/company/SupplierPartDetail.tsx:218 +#: src/pages/company/SupplierPartDetail.tsx:340 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:130 +#: src/tables/company/CompanyTable.tsx:101 #: src/tables/part/PartPurchaseOrdersTable.tsx:42 -#: src/tables/purchasing/PurchaseOrderTable.tsx:88 +#: src/tables/purchasing/PurchaseOrderTable.tsx:89 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:36 msgid "Supplier" msgstr "供应商" -#: src/pages/company/CompanyDetail.tsx:132 +#: src/pages/company/CompanyDetail.tsx:131 #: src/pages/company/ManufacturerDetail.tsx:8 -#: src/pages/company/ManufacturerPartDetail.tsx:101 -#: src/pages/company/ManufacturerPartDetail.tsx:267 -#: src/pages/company/SupplierPartDetail.tsx:135 -#: src/tables/company/CompanyTable.tsx:105 +#: src/pages/company/ManufacturerPartDetail.tsx:100 +#: src/pages/company/ManufacturerPartDetail.tsx:262 +#: src/pages/company/SupplierPartDetail.tsx:147 +#: src/tables/company/CompanyTable.tsx:106 msgid "Manufacturer" msgstr "制造商" -#: src/pages/company/CompanyDetail.tsx:138 +#: src/pages/company/CompanyDetail.tsx:137 #: src/pages/company/CustomerDetail.tsx:8 -#: src/pages/part/pricing/SaleHistoryPanel.tsx:29 -#: src/pages/sales/ReturnOrderDetail.tsx:109 -#: src/pages/sales/SalesOrderDetail.tsx:115 -#: src/pages/stock/StockDetail.tsx:230 -#: src/tables/company/CompanyTable.tsx:110 -#: src/tables/sales/ReturnOrderTable.tsx:78 -#: src/tables/sales/SalesOrderTable.tsx:108 -#: src/tables/stock/StockTrackingTable.tsx:140 +#: src/pages/part/pricing/SaleHistoryPanel.tsx:31 +#: src/pages/sales/ReturnOrderDetail.tsx:101 +#: src/pages/sales/SalesOrderDetail.tsx:110 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:100 +#: src/pages/stock/StockDetail.tsx:271 +#: src/tables/company/CompanyTable.tsx:111 +#: src/tables/sales/ReturnOrderTable.tsx:97 +#: src/tables/sales/SalesOrderTable.tsx:121 +#: src/tables/stock/StockTrackingTable.tsx:144 msgid "Customer" msgstr "客户" #: src/pages/company/CompanyDetail.tsx:172 -#: src/tables/stock/StockTrackingTable.tsx:183 -msgid "Details" -msgstr "详情" +msgid "Company Details" +msgstr "公司详细信息" #: src/pages/company/CompanyDetail.tsx:175 #~ msgid "Edit company" @@ -4363,140 +5112,150 @@ msgstr "已提供的零件" #~ msgid "Delete company" #~ msgstr "Delete company" -#: src/pages/company/CompanyDetail.tsx:232 +#: src/pages/company/CompanyDetail.tsx:234 msgid "Assigned Stock" msgstr "已分配的库存" -#: src/pages/company/CompanyDetail.tsx:290 -#: src/tables/company/CompanyTable.tsx:86 +#: src/pages/company/CompanyDetail.tsx:273 +#: src/tables/company/CompanyTable.tsx:87 msgid "Edit Company" msgstr "编辑公司" -#: src/pages/company/CompanyDetail.tsx:298 +#: src/pages/company/CompanyDetail.tsx:281 msgid "Delete Company" -msgstr "" +msgstr "删除该公司" -#: src/pages/company/CompanyDetail.tsx:306 +#: src/pages/company/CompanyDetail.tsx:289 msgid "Company Actions" msgstr "公司操作" -#: src/pages/company/ManufacturerPartDetail.tsx:76 -#: src/pages/company/SupplierPartDetail.tsx:89 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:128 +#: src/pages/company/ManufacturerPartDetail.tsx:74 +#: src/pages/company/SupplierPartDetail.tsx:84 msgid "Internal Part" msgstr "内部零件" -#: src/pages/company/ManufacturerPartDetail.tsx:91 -#: src/pages/company/SupplierPartDetail.tsx:103 -msgid "External Link" -msgstr "外部链接" - -#: src/pages/company/ManufacturerPartDetail.tsx:109 -#: src/pages/company/SupplierPartDetail.tsx:144 -#: src/tables/purchasing/ManufacturerPartTable.tsx:56 +#: src/pages/company/ManufacturerPartDetail.tsx:108 +#: src/pages/company/SupplierPartDetail.tsx:156 +#: src/tables/purchasing/ManufacturerPartTable.tsx:58 msgid "Manufacturer Part Number" msgstr "制造商零件编号" -#: src/pages/company/ManufacturerPartDetail.tsx:138 +#: src/pages/company/ManufacturerPartDetail.tsx:125 +#: src/pages/company/SupplierPartDetail.tsx:108 +msgid "External Link" +msgstr "外部链接" + +#: src/pages/company/ManufacturerPartDetail.tsx:146 +#: src/pages/company/SupplierPartDetail.tsx:215 +#: src/pages/part/PartDetail.tsx:576 +msgid "Part Details" +msgstr "零件详情" + +#: src/pages/company/ManufacturerPartDetail.tsx:149 msgid "Manufacturer Details" msgstr "制造商详情" -#: src/pages/company/ManufacturerPartDetail.tsx:147 +#: src/pages/company/ManufacturerPartDetail.tsx:158 msgid "Manufacturer Part Details" msgstr "制造商零件详情" -#: src/pages/company/ManufacturerPartDetail.tsx:153 -#: src/pages/part/PartDetail.tsx:532 +#: src/pages/company/ManufacturerPartDetail.tsx:164 +#: src/pages/part/PartDetail.tsx:582 msgid "Parameters" msgstr "参数" -#: src/pages/company/ManufacturerPartDetail.tsx:165 -#: src/pages/part/PartDetail.tsx:649 +#: src/pages/company/ManufacturerPartDetail.tsx:176 +#: src/pages/part/PartDetail.tsx:669 #: src/pages/purchasing/PurchasingIndex.tsx:31 msgid "Suppliers" msgstr "供应商" -#: src/pages/company/ManufacturerPartDetail.tsx:208 -#: src/tables/purchasing/ManufacturerPartTable.tsx:84 +#: src/pages/company/ManufacturerPartDetail.tsx:204 +#: src/tables/purchasing/ManufacturerPartTable.tsx:86 msgid "Edit Manufacturer Part" msgstr "编辑制造商零件" -#: src/pages/company/ManufacturerPartDetail.tsx:215 -#: src/tables/purchasing/ManufacturerPartTable.tsx:72 -#: src/tables/purchasing/ManufacturerPartTable.tsx:103 +#: src/pages/company/ManufacturerPartDetail.tsx:211 +#: src/tables/purchasing/ManufacturerPartTable.tsx:74 +#: src/tables/purchasing/ManufacturerPartTable.tsx:106 msgid "Add Manufacturer Part" msgstr "添加制造商零件" -#: src/pages/company/ManufacturerPartDetail.tsx:227 -#: src/tables/purchasing/ManufacturerPartTable.tsx:92 +#: src/pages/company/ManufacturerPartDetail.tsx:223 +#: src/tables/purchasing/ManufacturerPartTable.tsx:94 msgid "Delete Manufacturer Part" msgstr "删除制造商零件" -#: src/pages/company/ManufacturerPartDetail.tsx:240 +#: src/pages/company/ManufacturerPartDetail.tsx:236 msgid "Manufacturer Part Actions" msgstr "制造商零件操作" -#: src/pages/company/ManufacturerPartDetail.tsx:281 +#: src/pages/company/ManufacturerPartDetail.tsx:276 msgid "ManufacturerPart" msgstr "制造商零件" -#: src/pages/company/SupplierPartDetail.tsx:163 -#: src/tables/part/PartPurchaseOrdersTable.tsx:71 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:156 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:197 -#: src/tables/purchasing/SupplierPartTable.tsx:131 +#: src/pages/company/SupplierPartDetail.tsx:99 +msgid "Part Description" +msgstr "零件描述" + +#: src/pages/company/SupplierPartDetail.tsx:175 +#: src/tables/part/PartPurchaseOrdersTable.tsx:72 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:162 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:203 +#: src/tables/purchasing/SupplierPartTable.tsx:133 msgid "Pack Quantity" msgstr "包装数量" -#: src/pages/company/SupplierPartDetail.tsx:174 +#: src/pages/company/SupplierPartDetail.tsx:186 msgid "Supplier Availability" msgstr "供应商可用性" -#: src/pages/company/SupplierPartDetail.tsx:181 +#: src/pages/company/SupplierPartDetail.tsx:193 msgid "Availability Updated" msgstr "可用性已更新" -#: src/pages/company/SupplierPartDetail.tsx:208 +#: src/pages/company/SupplierPartDetail.tsx:220 msgid "Availability" msgstr "可用性" -#: src/pages/company/SupplierPartDetail.tsx:217 +#: src/pages/company/SupplierPartDetail.tsx:229 msgid "Supplier Part Details" msgstr "供应商零件详情" -#: src/pages/company/SupplierPartDetail.tsx:223 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:296 +#: src/pages/company/SupplierPartDetail.tsx:235 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:320 msgid "Received Stock" msgstr "接收库存" -#: src/pages/company/SupplierPartDetail.tsx:247 -#: src/pages/part/PartPricingPanel.tsx:111 -#: src/pages/part/pricing/PricingOverviewPanel.tsx:121 +#: src/pages/company/SupplierPartDetail.tsx:259 +#: src/pages/part/PartPricingPanel.tsx:116 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:195 msgid "Supplier Pricing" msgstr "供应商价格" -#: src/pages/company/SupplierPartDetail.tsx:294 +#: src/pages/company/SupplierPartDetail.tsx:284 msgid "Supplier Part Actions" msgstr "供应商零件操作" -#: src/pages/company/SupplierPartDetail.tsx:319 -#: src/tables/purchasing/SupplierPartTable.tsx:210 +#: src/pages/company/SupplierPartDetail.tsx:308 +#: src/tables/purchasing/SupplierPartTable.tsx:213 msgid "Edit Supplier Part" msgstr "编辑供应商零件" -#: src/pages/company/SupplierPartDetail.tsx:327 -#: src/tables/purchasing/SupplierPartTable.tsx:218 +#: src/pages/company/SupplierPartDetail.tsx:316 +#: src/tables/purchasing/SupplierPartTable.tsx:221 msgid "Delete Supplier Part" msgstr "删除供应商零件" -#: src/pages/company/SupplierPartDetail.tsx:335 -#: src/tables/purchasing/SupplierPartTable.tsx:163 +#: src/pages/company/SupplierPartDetail.tsx:324 +#: src/tables/purchasing/SupplierPartTable.tsx:165 msgid "Add Supplier Part" msgstr "添加供应商零件" #: src/pages/part/CategoryDetail.tsx:93 -#: src/pages/stock/LocationDetail.tsx:101 -#: src/tables/settings/ErrorTable.tsx:36 +#: src/pages/stock/LocationDetail.tsx:95 +#: src/tables/settings/ErrorTable.tsx:63 +#: src/tables/settings/ErrorTable.tsx:108 msgid "Path" msgstr "路径" @@ -4504,357 +5263,357 @@ msgstr "路径" msgid "Parent Category" msgstr "上级类别" -#: src/pages/part/CategoryDetail.tsx:126 +#: src/pages/part/CategoryDetail.tsx:132 msgid "Subcategories" msgstr "子类别" -#: src/pages/part/CategoryDetail.tsx:133 -#: src/pages/stock/LocationDetail.tsx:141 -#: src/tables/part/PartCategoryTable.tsx:73 +#: src/pages/part/CategoryDetail.tsx:139 +#: src/pages/stock/LocationDetail.tsx:135 +#: src/tables/part/PartCategoryTable.tsx:85 #: src/tables/stock/StockLocationTable.tsx:49 msgid "Structural" msgstr "结构性" -#: src/pages/part/CategoryDetail.tsx:139 +#: src/pages/part/CategoryDetail.tsx:145 msgid "Parent default location" msgstr "上级默认位置" -#: src/pages/part/CategoryDetail.tsx:146 +#: src/pages/part/CategoryDetail.tsx:152 msgid "Default location" msgstr "默认位置" -#: src/pages/part/CategoryDetail.tsx:157 +#: src/pages/part/CategoryDetail.tsx:163 msgid "Top level part category" msgstr "最高级零件类别" -#: src/pages/part/CategoryDetail.tsx:167 -#: src/pages/part/CategoryDetail.tsx:221 -#: src/tables/part/PartCategoryTable.tsx:102 +#: src/pages/part/CategoryDetail.tsx:173 +#: src/pages/part/CategoryDetail.tsx:226 +#: src/tables/part/PartCategoryTable.tsx:118 msgid "Edit Part Category" msgstr "编辑零件类别" -#: src/pages/part/CategoryDetail.tsx:180 -#: src/pages/stock/LocationDetail.tsx:233 +#: src/pages/part/CategoryDetail.tsx:186 +#: src/pages/stock/LocationDetail.tsx:227 msgid "Delete items" msgstr "删除项" -#: src/pages/part/CategoryDetail.tsx:188 -#: src/pages/part/CategoryDetail.tsx:226 +#: src/pages/part/CategoryDetail.tsx:194 +#: src/pages/part/CategoryDetail.tsx:231 msgid "Delete Part Category" msgstr "删除零件类别" -#: src/pages/part/CategoryDetail.tsx:191 +#: src/pages/part/CategoryDetail.tsx:197 msgid "Parts Action" msgstr "零件操作" -#: src/pages/part/CategoryDetail.tsx:192 +#: src/pages/part/CategoryDetail.tsx:198 msgid "Action for parts in this category" msgstr "对此类别中零件的操作" -#: src/pages/part/CategoryDetail.tsx:197 +#: src/pages/part/CategoryDetail.tsx:203 msgid "Child Categories Action" msgstr "子类别操作" -#: src/pages/part/CategoryDetail.tsx:198 +#: src/pages/part/CategoryDetail.tsx:204 msgid "Action for child categories in this category" msgstr "对此类别中零件的操作" -#: src/pages/part/CategoryDetail.tsx:216 +#: src/pages/part/CategoryDetail.tsx:222 msgid "Category Actions" msgstr "类别操作" -#: src/pages/part/CategoryDetail.tsx:238 +#: src/pages/part/CategoryDetail.tsx:243 msgid "Category Details" msgstr "类别详情" -#: src/pages/part/PartDetail.tsx:163 +#: src/pages/part/PartAllocationPanel.tsx:23 +#: src/pages/stock/StockDetail.tsx:443 +#: src/tables/part/PartTable.tsx:99 +msgid "Build Order Allocations" +msgstr "分配生产订单" + +#: src/pages/part/PartAllocationPanel.tsx:40 +#: src/pages/stock/StockDetail.tsx:458 +#: src/tables/part/PartTable.tsx:108 +msgid "Sales Order Allocations" +msgstr "分配销售订单" + +#: src/pages/part/PartDetail.tsx:184 msgid "Variant of" msgstr "变体于" -#: src/pages/part/PartDetail.tsx:170 +#: src/pages/part/PartDetail.tsx:191 msgid "Revision of" msgstr "修订" -#: src/pages/part/PartDetail.tsx:177 -#: src/tables/stock/StockItemTable.tsx:58 +#: src/pages/part/PartDetail.tsx:198 +#: src/tables/stock/StockItemTable.tsx:59 msgid "Revision" msgstr "版本" -#: src/pages/part/PartDetail.tsx:184 +#: src/pages/part/PartDetail.tsx:205 #: src/tables/notifications/NotificationsTable.tsx:31 #: src/tables/part/PartCategoryTemplateTable.tsx:67 msgid "Category" msgstr "类别" -#: src/pages/part/PartDetail.tsx:190 +#: src/pages/part/PartDetail.tsx:211 msgid "Default Location" msgstr "默认位置" -#: src/pages/part/PartDetail.tsx:197 +#: src/pages/part/PartDetail.tsx:218 msgid "Category Default Location" msgstr "类别默认位置" -#: src/pages/part/PartDetail.tsx:204 +#: src/pages/part/PartDetail.tsx:225 #: src/tables/purchasing/ManufacturerPartParameterTable.tsx:44 msgid "Units" msgstr "单位" -#: src/pages/part/PartDetail.tsx:211 -#: src/tables/settings/PendingTasksTable.tsx:42 +#: src/pages/part/PartDetail.tsx:232 +#: src/tables/settings/PendingTasksTable.tsx:46 msgid "Keywords" msgstr "关键词" -#: src/pages/part/PartDetail.tsx:218 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:186 -#: src/pages/sales/ReturnOrderDetail.tsx:165 -#: src/pages/sales/SalesOrderDetail.tsx:174 -msgid "Link" -msgstr "链接" - -#: src/pages/part/PartDetail.tsx:236 +#: src/pages/part/PartDetail.tsx:257 #: src/tables/bom/BomTable.tsx:320 -#: src/tables/build/BuildLineTable.tsx:155 +#: src/tables/build/BuildLineTable.tsx:286 #: src/tables/part/PartTable.tsx:288 -#: src/tables/sales/SalesOrderLineItemTable.tsx:103 +#: src/tables/sales/SalesOrderLineItemTable.tsx:111 msgid "Available Stock" msgstr "可用库存" -#: src/pages/part/PartDetail.tsx:243 +#: src/pages/part/PartDetail.tsx:264 msgid "Variant Stock" msgstr "变体库存" -#: src/pages/part/PartDetail.tsx:251 +#: src/pages/part/PartDetail.tsx:272 msgid "Minimum Stock" msgstr "最低库存" -#: src/pages/part/PartDetail.tsx:257 +#: src/pages/part/PartDetail.tsx:278 #: src/tables/bom/BomTable.tsx:237 -#: src/tables/build/BuildLineTable.tsx:117 -#: src/tables/sales/SalesOrderLineItemTable.tsx:141 +#: src/tables/build/BuildLineTable.tsx:248 +#: src/tables/sales/SalesOrderLineItemTable.tsx:149 msgid "On order" msgstr "订购中" -#: src/pages/part/PartDetail.tsx:266 +#: src/pages/part/PartDetail.tsx:285 +msgid "Required for Orders" +msgstr "订单必填项" + +#: src/pages/part/PartDetail.tsx:294 msgid "Allocated to Build Orders" msgstr "分配生产订单" -#: src/pages/part/PartDetail.tsx:274 +#: src/pages/part/PartDetail.tsx:305 msgid "Allocated to Sales Orders" msgstr "分配销售订单" -#: src/pages/part/PartDetail.tsx:281 -#: src/tables/bom/BomTable.tsx:261 -#: src/tables/bom/BomTable.tsx:293 -msgid "Can Build" -msgstr "可以创建" - -#: src/pages/part/PartDetail.tsx:288 -#: src/tables/bom/BomTable.tsx:245 -#: src/tables/part/PartTable.tsx:92 -msgid "Building" -msgstr "正在生产" - -#: src/pages/part/PartDetail.tsx:302 -#: src/pages/part/PartDetail.tsx:873 -#: src/tables/part/ParametricPartTable.tsx:228 -#: src/tables/part/PartTable.tsx:184 -msgid "Locked" -msgstr "已锁定" - -#: src/pages/part/PartDetail.tsx:308 -msgid "Template Part" -msgstr "模板零件" - #: src/pages/part/PartDetail.tsx:310 #~ msgid "Edit part" #~ msgstr "Edit part" -#: src/pages/part/PartDetail.tsx:313 -#: src/tables/bom/BomTable.tsx:315 -msgid "Assembled Part" -msgstr "组装零件" +#: src/pages/part/PartDetail.tsx:315 +#: src/tables/bom/BomTable.tsx:261 +#: src/tables/bom/BomTable.tsx:293 +msgid "Can Build" +msgstr "可以创建" -#: src/pages/part/PartDetail.tsx:318 -msgid "Component Part" -msgstr "组件零件" +#: src/pages/part/PartDetail.tsx:322 +#: src/pages/part/PartDetail.tsx:905 +#: src/pages/stock/StockDetail.tsx:766 +#: src/tables/build/BuildOrderTestTable.tsx:220 +#: src/tables/stock/StockItemTable.tsx:334 +msgid "In Production" +msgstr "生产中" #: src/pages/part/PartDetail.tsx:322 #~ msgid "Duplicate part" #~ msgstr "Duplicate part" -#: src/pages/part/PartDetail.tsx:323 -#: src/tables/bom/BomTable.tsx:305 -msgid "Testable Part" -msgstr "" - #: src/pages/part/PartDetail.tsx:327 #~ msgid "Delete part" #~ msgstr "Delete part" -#: src/pages/part/PartDetail.tsx:329 +#: src/pages/part/PartDetail.tsx:336 +#: src/tables/part/ParametricPartTable.tsx:228 +#: src/tables/part/PartTable.tsx:184 +msgid "Locked" +msgstr "已锁定" + +#: src/pages/part/PartDetail.tsx:342 +msgid "Template Part" +msgstr "模板零件" + +#: src/pages/part/PartDetail.tsx:347 +#: src/tables/bom/BomTable.tsx:315 +msgid "Assembled Part" +msgstr "组装零件" + +#: src/pages/part/PartDetail.tsx:352 +msgid "Component Part" +msgstr "组件零件" + +#: src/pages/part/PartDetail.tsx:357 +#: src/tables/bom/BomTable.tsx:305 +msgid "Testable Part" +msgstr "可测试零件" + +#: src/pages/part/PartDetail.tsx:363 #: src/tables/bom/BomTable.tsx:310 msgid "Trackable Part" msgstr "可追溯零件" -#: src/pages/part/PartDetail.tsx:334 +#: src/pages/part/PartDetail.tsx:368 msgid "Purchaseable Part" msgstr "可购买零件" -#: src/pages/part/PartDetail.tsx:339 +#: src/pages/part/PartDetail.tsx:374 msgid "Saleable Part" msgstr "可销售零件" -#: src/pages/part/PartDetail.tsx:344 +#: src/pages/part/PartDetail.tsx:379 msgid "Virtual Part" msgstr "虚拟零件" -#: src/pages/part/PartDetail.tsx:352 -#: src/tables/ColumnRenderers.tsx:220 +#: src/pages/part/PartDetail.tsx:393 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:215 +#: src/pages/sales/ReturnOrderDetail.tsx:185 +#: src/pages/sales/SalesOrderDetail.tsx:197 +#: src/tables/ColumnRenderers.tsx:234 msgid "Creation Date" msgstr "创建日期" -#: src/pages/part/PartDetail.tsx:357 +#: src/pages/part/PartDetail.tsx:398 msgid "Created By" msgstr "创建人" -#: src/pages/part/PartDetail.tsx:372 +#: src/pages/part/PartDetail.tsx:413 msgid "Default Supplier" msgstr "默认供应商" -#: src/pages/part/PartDetail.tsx:383 -#: src/pages/part/pricing/BomPricingPanel.tsx:79 +#: src/pages/part/PartDetail.tsx:424 +#: src/pages/part/pricing/BomPricingPanel.tsx:113 #: src/pages/part/pricing/VariantPricingPanel.tsx:95 #: src/tables/part/PartTable.tsx:161 msgid "Price Range" msgstr "价格范围" -#: src/pages/part/PartDetail.tsx:423 -#: src/pages/stock/StockDetail.tsx:135 +#: src/pages/part/PartDetail.tsx:462 +msgid "Latest Serial Number" +msgstr "" + +#: src/pages/part/PartDetail.tsx:472 +#: src/pages/stock/StockDetail.tsx:151 msgid "Last Stocktake" msgstr "最近库存盘点" -#: src/pages/part/PartDetail.tsx:462 +#: src/pages/part/PartDetail.tsx:511 msgid "Stocktake By" msgstr "库存盘点由" -#: src/pages/part/PartDetail.tsx:526 -msgid "Part Details" -msgstr "零件详情" - -#: src/pages/part/PartDetail.tsx:557 +#: src/pages/part/PartDetail.tsx:611 msgid "Variants" msgstr "变体" -#: src/pages/part/PartDetail.tsx:564 -#: src/pages/stock/StockDetail.tsx:307 +#: src/pages/part/PartDetail.tsx:618 +#: src/pages/stock/StockDetail.tsx:430 msgid "Allocations" msgstr "分配" -#: src/pages/part/PartDetail.tsx:575 -#: src/pages/stock/StockDetail.tsx:318 -#: src/tables/part/PartTable.tsx:99 -msgid "Build Order Allocations" -msgstr "分配生产订单" - -#: src/pages/part/PartDetail.tsx:590 -#: src/pages/stock/StockDetail.tsx:333 -#: src/tables/part/PartTable.tsx:108 -msgid "Sales Order Allocations" -msgstr "分配销售订单" - -#: src/pages/part/PartDetail.tsx:607 +#: src/pages/part/PartDetail.tsx:625 msgid "Bill of Materials" msgstr "物料清单" -#: src/pages/part/PartDetail.tsx:623 +#: src/pages/part/PartDetail.tsx:643 msgid "Used In" msgstr "用于" -#: src/pages/part/PartDetail.tsx:630 +#: src/pages/part/PartDetail.tsx:650 msgid "Part Pricing" msgstr "零件价格" -#: src/pages/part/PartDetail.tsx:636 +#: src/pages/part/PartDetail.tsx:656 #: src/pages/purchasing/PurchasingIndex.tsx:42 msgid "Manufacturers" msgstr "制造商" -#: src/pages/part/PartDetail.tsx:676 +#: src/pages/part/PartDetail.tsx:722 msgid "Scheduling" msgstr "计划任务" -#: src/pages/part/PartDetail.tsx:688 +#: src/pages/part/PartDetail.tsx:729 msgid "Test Templates" msgstr "测试模板" -#: src/pages/part/PartDetail.tsx:715 +#: src/pages/part/PartDetail.tsx:756 msgid "Related Parts" msgstr "关联零件" -#: src/pages/part/PartDetail.tsx:849 -#: src/pages/stock/StockDetail.tsx:156 -#: src/pages/stock/StockDetail.tsx:593 -#: src/tables/build/BuildLineTable.tsx:48 +#: src/pages/part/PartDetail.tsx:881 +#: src/pages/stock/StockDetail.tsx:172 +#: src/pages/stock/StockDetail.tsx:783 +#: src/tables/build/BuildLineTable.tsx:179 #: src/tables/part/PartTable.tsx:117 -#: src/tables/stock/StockItemTable.tsx:177 -#: src/tables/stock/StockItemTable.tsx:310 +#: src/tables/stock/StockItemTable.tsx:166 +#: src/tables/stock/StockItemTable.tsx:314 msgid "Available" msgstr "可用的" -#: src/pages/part/PartDetail.tsx:855 +#: src/pages/part/PartDetail.tsx:887 msgid "No Stock" msgstr "无库存" -#: src/pages/part/PartDetail.tsx:861 +#: src/pages/part/PartDetail.tsx:893 +#: src/tables/part/PartTestTemplateTable.tsx:106 +#: src/tables/stock/StockItemTestResultTable.tsx:383 +msgid "Required" +msgstr "必填" + +#: src/pages/part/PartDetail.tsx:899 #: src/tables/bom/BomTable.tsx:325 #: src/tables/part/PartTable.tsx:86 msgid "On Order" msgstr "订购中" -#: src/pages/part/PartDetail.tsx:867 -#: src/pages/stock/StockDetail.tsx:576 -#: src/tables/build/BuildOrderTestTable.tsx:219 -#: src/tables/stock/StockItemTable.tsx:330 -msgid "In Production" -msgstr "生产中" - -#: src/pages/part/PartDetail.tsx:892 +#: src/pages/part/PartDetail.tsx:924 msgid "Edit Part" msgstr "编辑零件" -#: src/pages/part/PartDetail.tsx:927 +#: src/pages/part/PartDetail.tsx:959 #: src/tables/part/PartTable.tsx:331 -#: src/tables/part/PartTable.tsx:342 +#: src/tables/part/PartTable.tsx:343 msgid "Add Part" msgstr "添加零件" -#: src/pages/part/PartDetail.tsx:941 +#: src/pages/part/PartDetail.tsx:973 msgid "Delete Part" msgstr "删除零件" -#: src/pages/part/PartDetail.tsx:950 +#: src/pages/part/PartDetail.tsx:982 msgid "Deleting this part cannot be reversed" msgstr "删除此零件无法撤销" -#: src/pages/part/PartDetail.tsx:999 -#: src/pages/stock/LocationDetail.tsx:324 -#: src/tables/stock/StockItemTable.tsx:444 +#: src/pages/part/PartDetail.tsx:1021 +#: src/pages/stock/LocationDetail.tsx:310 +#: src/tables/stock/StockItemTable.tsx:449 msgid "Stock Actions" msgstr "库存操作" -#: src/pages/part/PartDetail.tsx:1007 +#: src/pages/part/PartDetail.tsx:1029 msgid "Count part stock" msgstr "清点零件库存" -#: src/pages/part/PartDetail.tsx:1018 +#: src/pages/part/PartDetail.tsx:1040 msgid "Transfer part stock" msgstr "转移零件库存" -#: src/pages/part/PartDetail.tsx:1027 +#: src/pages/part/PartDetail.tsx:1049 msgid "Part Actions" msgstr "零件选项" -#: src/pages/part/PartDetail.tsx:1087 +#: src/pages/part/PartDetail.tsx:1113 msgid "Select Part Revision" msgstr "选择零件版本" @@ -4862,113 +5621,214 @@ msgstr "选择零件版本" #~ msgid "Categories" #~ msgstr "Categories" -#: src/pages/part/PartPricingPanel.tsx:68 +#: src/pages/part/PartPricingPanel.tsx:72 msgid "No pricing data found for this part." msgstr "未找到此零件的定价数据" -#: src/pages/part/PartPricingPanel.tsx:82 -#: src/pages/part/pricing/PricingOverviewPanel.tsx:190 +#: src/pages/part/PartPricingPanel.tsx:87 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:293 msgid "Pricing Overview" msgstr "定价概览" -#: src/pages/part/PartPricingPanel.tsx:88 +#: src/pages/part/PartPricingPanel.tsx:93 msgid "Purchase History" msgstr "采购记录" -#: src/pages/part/PartPricingPanel.tsx:102 -#: src/pages/part/pricing/PricingOverviewPanel.tsx:100 +#: src/pages/part/PartPricingPanel.tsx:107 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:174 msgid "Internal Pricing" msgstr "内部价格" -#: src/pages/part/PartPricingPanel.tsx:120 -#: src/pages/part/pricing/PricingOverviewPanel.tsx:107 +#: src/pages/part/PartPricingPanel.tsx:125 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:181 msgid "BOM Pricing" msgstr "物料清单价格" -#: src/pages/part/PartPricingPanel.tsx:127 -#: src/pages/part/pricing/PricingOverviewPanel.tsx:128 +#: src/pages/part/PartPricingPanel.tsx:132 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:202 msgid "Variant Pricing" msgstr "变体价格" -#: src/pages/part/PartPricingPanel.tsx:139 -#: src/pages/part/pricing/PricingOverviewPanel.tsx:135 +#: src/pages/part/PartPricingPanel.tsx:144 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:209 msgid "Sale Pricing" msgstr "销售价格" -#: src/pages/part/PartPricingPanel.tsx:146 -#: src/pages/part/pricing/PricingOverviewPanel.tsx:142 +#: src/pages/part/PartPricingPanel.tsx:151 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:216 msgid "Sale History" msgstr "销售记录" -#: src/pages/part/pricing/BomPricingPanel.tsx:58 -#: src/pages/part/pricing/BomPricingPanel.tsx:138 -#: src/tables/ColumnRenderers.tsx:262 +#: src/pages/part/PartSchedulingDetail.tsx:47 +#: src/pages/part/PartSchedulingDetail.tsx:299 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:156 +msgid "Maximum" +msgstr "最大值" + +#: src/pages/part/PartSchedulingDetail.tsx:50 +#: src/pages/part/PartSchedulingDetail.tsx:289 +msgid "Scheduled" +msgstr "排定" + +#: src/pages/part/PartSchedulingDetail.tsx:53 +#: src/pages/part/PartSchedulingDetail.tsx:294 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:144 +msgid "Minimum" +msgstr "最小值" + +#: src/pages/part/PartSchedulingDetail.tsx:68 +msgid "Order" +msgstr "订单" + +#: src/pages/part/PartSchedulingDetail.tsx:92 +msgid "Quantity is speculative" +msgstr "数量是投机的" + +#: src/pages/part/PartSchedulingDetail.tsx:101 +msgid "No date available for provided quantity" +msgstr "没有提供数量的可用日期" + +#: src/pages/part/PartSchedulingDetail.tsx:105 +msgid "Date is in the past" +msgstr "指定日期已过" + +#: src/pages/part/PartSchedulingDetail.tsx:112 +msgid "Scheduled Quantity" +msgstr "计划数量" + +#: src/pages/part/PartSchedulingDetail.tsx:240 +msgid "No information available" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:241 +msgid "There is no scheduling information available for the selected part" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:276 +msgid "Expected Quantity" +msgstr "预期的数量" + +#: src/pages/part/PartStocktakeDetail.tsx:63 +#: src/tables/FilterSelectDrawer.tsx:167 +#: src/tables/FilterSelectDrawer.tsx:174 +#: src/tables/build/BuildOrderTestTable.tsx:135 +#: src/tables/purchasing/ManufacturerPartParameterTable.tsx:38 +#: src/tables/stock/StockItemTestResultTable.tsx:192 +msgid "Value" +msgstr "值" + +#: src/pages/part/PartStocktakeDetail.tsx:82 +msgid "Edit Stocktake Entry" +msgstr "编辑盘点条目" + +#: src/pages/part/PartStocktakeDetail.tsx:90 +msgid "Delete Stocktake Entry" +msgstr "删除盘点条目" + +#: src/pages/part/PartStocktakeDetail.tsx:96 +#: src/tables/settings/StocktakeReportTable.tsx:69 +msgid "Generate Stocktake Report" +msgstr "生成盘点报告" + +#: src/pages/part/PartStocktakeDetail.tsx:101 +#: src/tables/settings/StocktakeReportTable.tsx:71 +msgid "Stocktake report scheduled" +msgstr "计划盘点报告" + +#: src/pages/part/PartStocktakeDetail.tsx:119 +#: src/pages/part/PartStocktakeDetail.tsx:235 +#: src/pages/stock/StockDetail.tsx:303 +#: src/tables/stock/StockItemTable.tsx:249 +msgid "Stock Value" +msgstr "库存价值" + +#: src/pages/part/PartStocktakeDetail.tsx:139 +#: src/tables/settings/StocktakeReportTable.tsx:77 +msgid "New Stocktake Report" +msgstr "盘点报告" + +#: src/pages/part/PartStocktakeDetail.tsx:258 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:295 +msgid "Minimum Value" +msgstr "最小值" + +#: src/pages/part/PartStocktakeDetail.tsx:264 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:296 +msgid "Maximum Value" +msgstr "最大值" + +#: src/pages/part/pricing/BomPricingPanel.tsx:87 +#: src/pages/part/pricing/BomPricingPanel.tsx:177 +#: src/tables/ColumnRenderers.tsx:276 #: src/tables/bom/BomTable.tsx:185 #: src/tables/general/ExtraLineItemTable.tsx:64 -#: src/tables/purchasing/PurchaseOrderTable.tsx:112 -#: src/tables/sales/ReturnOrderTable.tsx:104 -#: src/tables/sales/SalesOrderLineItemTable.tsx:89 -#: src/tables/sales/SalesOrderTable.tsx:136 +#: src/tables/purchasing/PurchaseOrderTable.tsx:113 +#: src/tables/sales/ReturnOrderTable.tsx:127 +#: src/tables/sales/SalesOrderLineItemTable.tsx:97 +#: src/tables/sales/SalesOrderTable.tsx:149 msgid "Total Price" msgstr "总价" -#: src/pages/part/pricing/BomPricingPanel.tsx:78 -#: src/pages/part/pricing/BomPricingPanel.tsx:102 +#: src/pages/part/pricing/BomPricingPanel.tsx:112 +#: src/pages/part/pricing/BomPricingPanel.tsx:141 #: src/tables/bom/UsedInTable.tsx:49 +#: src/tables/build/BuildLineTable.tsx:296 #: src/tables/part/PartTable.tsx:202 msgid "Component" msgstr "组件" -#: src/pages/part/pricing/BomPricingPanel.tsx:81 -#: src/pages/part/pricing/VariantPricingPanel.tsx:37 -#: src/pages/part/pricing/VariantPricingPanel.tsx:97 -msgid "Minimum Price" -msgstr "最低价格" - -#: src/pages/part/pricing/BomPricingPanel.tsx:82 -#: src/pages/part/pricing/VariantPricingPanel.tsx:45 -#: src/pages/part/pricing/VariantPricingPanel.tsx:98 -msgid "Maximum Price" -msgstr "最高价格" - #: src/pages/part/pricing/BomPricingPanel.tsx:112 #~ msgid "Minimum Total Price" #~ msgstr "Minimum Total Price" +#: src/pages/part/pricing/BomPricingPanel.tsx:115 +#: src/pages/part/pricing/VariantPricingPanel.tsx:37 +#: src/pages/part/pricing/VariantPricingPanel.tsx:97 +msgid "Minimum Price" +msgstr "最低价格" + +#: src/pages/part/pricing/BomPricingPanel.tsx:116 +#: src/pages/part/pricing/VariantPricingPanel.tsx:45 +#: src/pages/part/pricing/VariantPricingPanel.tsx:98 +msgid "Maximum Price" +msgstr "最高价格" + #: src/pages/part/pricing/BomPricingPanel.tsx:117 #~ msgid "Maximum Total Price" #~ msgstr "Maximum Total Price" -#: src/pages/part/pricing/BomPricingPanel.tsx:129 -#: src/pages/part/pricing/PriceBreakPanel.tsx:172 -#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:67 -#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:128 -#: src/pages/part/pricing/SupplierPricingPanel.tsx:62 +#: src/pages/part/pricing/BomPricingPanel.tsx:168 +#: src/pages/part/pricing/PriceBreakPanel.tsx:173 +#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:70 +#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:125 +#: src/pages/part/pricing/SupplierPricingPanel.tsx:66 +#: src/pages/stock/StockDetail.tsx:291 #: src/tables/bom/BomTable.tsx:176 #: src/tables/general/ExtraLineItemTable.tsx:56 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:223 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:225 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:92 +#: src/tables/stock/StockItemTable.tsx:239 msgid "Unit Price" msgstr "单价" -#: src/pages/part/pricing/BomPricingPanel.tsx:154 +#: src/pages/part/pricing/BomPricingPanel.tsx:193 #: src/pages/part/pricing/VariantPricingPanel.tsx:53 -#: src/tables/purchasing/SupplierPartTable.tsx:148 +#: src/tables/purchasing/SupplierPartTable.tsx:150 msgid "Updated" msgstr "已更新" -#: src/pages/part/pricing/BomPricingPanel.tsx:219 +#: src/pages/part/pricing/BomPricingPanel.tsx:258 msgid "Pie Chart" msgstr "饼状图" -#: src/pages/part/pricing/BomPricingPanel.tsx:220 +#: src/pages/part/pricing/BomPricingPanel.tsx:259 msgid "Bar Chart" msgstr "柱状图" #: src/pages/part/pricing/PriceBreakPanel.tsx:58 -#: src/pages/part/pricing/PriceBreakPanel.tsx:110 +#: src/pages/part/pricing/PriceBreakPanel.tsx:111 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:142 -#: src/tables/purchasing/SupplierPriceBreakTable.tsx:168 +#: src/tables/purchasing/SupplierPriceBreakTable.tsx:169 msgid "Add Price Break" msgstr "新增批发价" @@ -4986,47 +5846,71 @@ msgstr "删除批发价" msgid "Price Break" msgstr "批发价" -#: src/pages/part/pricing/PriceBreakPanel.tsx:170 +#: src/pages/part/pricing/PriceBreakPanel.tsx:171 msgid "Price" msgstr "价格" -#: src/pages/part/pricing/PricingOverviewPanel.tsx:51 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:68 +msgid "Refreshing pricing data" +msgstr "刷新定价数据" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:88 +msgid "Pricing data updated" +msgstr "更新定价数据" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:95 +msgid "Failed to update pricing data" +msgstr "更新定价数据失败" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:104 +msgid "Edit Pricing" +msgstr "编辑价格" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:125 msgid "Pricing Category" msgstr "价格类别" -#: src/pages/part/pricing/PricingOverviewPanel.tsx:70 -msgid "Minimum" -msgstr "最小值" - -#: src/pages/part/pricing/PricingOverviewPanel.tsx:82 -msgid "Maximum" -msgstr "最大值" - -#: src/pages/part/pricing/PricingOverviewPanel.tsx:114 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:188 msgid "Purchase Pricing" msgstr "采购价格" -#: src/pages/part/pricing/PricingOverviewPanel.tsx:149 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:223 msgid "Override Pricing" msgstr "覆盖价格" -#: src/pages/part/pricing/PricingOverviewPanel.tsx:156 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:230 msgid "Overall Pricing" msgstr "总价" -#: src/pages/part/pricing/PricingOverviewPanel.tsx:175 -#: src/pages/stock/StockDetail.tsx:129 -#: src/tables/stock/StockItemTable.tsx:240 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:249 +#: src/pages/stock/StockDetail.tsx:145 +#: src/tables/stock/StockItemTable.tsx:275 msgid "Last Updated" msgstr "最近更新" -#: src/pages/part/pricing/PricingOverviewPanel.tsx:192 -msgid "Minimum Value" -msgstr "最小值" +#: src/pages/part/pricing/PricingOverviewPanel.tsx:253 +msgid "Pricing Not Set" +msgstr "定价未设置" -#: src/pages/part/pricing/PricingOverviewPanel.tsx:193 -msgid "Maximum Value" -msgstr "最大值" +#: src/pages/part/pricing/PricingOverviewPanel.tsx:254 +msgid "Pricing data has not been calculated for this part" +msgstr "此部分尚未计算定价数据" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:258 +msgid "Pricing Actions" +msgstr "定价操作" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:261 +msgid "Refresh" +msgstr "刷新" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:262 +msgid "Refresh pricing data" +msgstr "刷新定价数据" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:277 +msgid "Edit pricing data" +msgstr "编辑定价数据" #: src/pages/part/pricing/PricingPanel.tsx:24 msgid "No data available" @@ -5044,28 +5928,20 @@ msgstr "没有可用的定价数据" msgid "Loading pricing data" msgstr "正在加载定价数据" -#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:40 -#: src/pages/part/pricing/SaleHistoryPanel.tsx:36 -#: src/tables/ColumnRenderers.tsx:201 -#: src/tables/build/BuildOrderTestTable.tsx:150 -#: src/tables/plugin/PluginListTable.tsx:139 -msgid "Date" -msgstr "日期" - #: src/pages/part/pricing/PurchaseHistoryPanel.tsx:47 msgid "Purchase Price" msgstr "采购价格" -#: src/pages/part/pricing/SaleHistoryPanel.tsx:22 -msgid "Sale Order" -msgstr "销售订单" +#: src/pages/part/pricing/SaleHistoryPanel.tsx:24 +#~ msgid "Sale Order" +#~ msgstr "Sale Order" -#: src/pages/part/pricing/SaleHistoryPanel.tsx:42 -#: src/pages/part/pricing/SaleHistoryPanel.tsx:92 +#: src/pages/part/pricing/SaleHistoryPanel.tsx:44 +#: src/pages/part/pricing/SaleHistoryPanel.tsx:87 msgid "Sale Price" msgstr "销售价格" -#: src/pages/part/pricing/SupplierPricingPanel.tsx:65 +#: src/pages/part/pricing/SupplierPricingPanel.tsx:69 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:83 msgid "Supplier Price" msgstr "供应商价格" @@ -5075,23 +5951,23 @@ msgstr "供应商价格" msgid "Variant Part" msgstr "变体零件" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:93 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:87 msgid "Edit Purchase Order" msgstr "编辑采购订单" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:102 -#: src/tables/purchasing/PurchaseOrderTable.tsx:128 -#: src/tables/purchasing/PurchaseOrderTable.tsx:140 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:96 +#: src/tables/purchasing/PurchaseOrderTable.tsx:129 +#: src/tables/purchasing/PurchaseOrderTable.tsx:142 msgid "Add Purchase Order" msgstr "添加采购订单" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:127 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:121 msgid "Supplier Reference" msgstr "供应商参考" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:158 -#: src/pages/sales/ReturnOrderDetail.tsx:137 -#: src/pages/sales/SalesOrderDetail.tsx:137 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:152 +#: src/pages/sales/ReturnOrderDetail.tsx:129 +#: src/pages/sales/SalesOrderDetail.tsx:132 msgid "Completed Line Items" msgstr "已完成行项目" @@ -5101,91 +5977,112 @@ msgstr "已完成行项目" #~ msgid "Order Currency," #~ msgstr "Order Currency," -#: src/pages/purchasing/PurchaseOrderDetail.tsx:165 -#: src/pages/sales/ReturnOrderDetail.tsx:144 -#: src/pages/sales/SalesOrderDetail.tsx:153 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:161 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:231 +msgid "Destination" +msgstr "目的地" + +#: src/pages/purchasing/PurchaseOrderDetail.tsx:167 +#: src/pages/sales/ReturnOrderDetail.tsx:136 +#: src/pages/sales/SalesOrderDetail.tsx:148 msgid "Order Currency" msgstr "订单货币" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:172 -#: src/pages/sales/ReturnOrderDetail.tsx:151 -#: src/pages/sales/SalesOrderDetail.tsx:160 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:173 +#: src/pages/sales/ReturnOrderDetail.tsx:143 +#: src/pages/sales/SalesOrderDetail.tsx:155 msgid "Total Cost" msgstr "总成本" #: src/pages/purchasing/PurchaseOrderDetail.tsx:207 -#: src/pages/sales/ReturnOrderDetail.tsx:186 -#: src/pages/sales/SalesOrderDetail.tsx:195 -msgid "Created On" -msgstr "创建于" +#: src/pages/sales/ReturnOrderDetail.tsx:183 +#: src/pages/sales/SalesOrderDetail.tsx:191 +#~ msgid "Created On" +#~ msgstr "Created On" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:252 -#: src/pages/sales/ReturnOrderDetail.tsx:231 -#: src/pages/sales/SalesOrderDetail.tsx:266 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:221 +#: src/pages/sales/ReturnOrderDetail.tsx:193 +#: src/pages/sales/SalesOrderDetail.tsx:204 +msgid "Issue Date" +msgstr "" + +#: src/pages/purchasing/PurchaseOrderDetail.tsx:237 +#: src/pages/sales/ReturnOrderDetail.tsx:209 +#: src/pages/sales/SalesOrderDetail.tsx:219 +#: src/tables/build/BuildOrderTable.tsx:98 +#: src/tables/part/PartPurchaseOrdersTable.tsx:105 +#: src/tables/sales/ReturnOrderTable.tsx:122 +msgid "Completion Date" +msgstr "" + +#: src/pages/purchasing/PurchaseOrderDetail.tsx:276 +#: src/pages/sales/ReturnOrderDetail.tsx:248 +#: src/pages/sales/SalesOrderDetail.tsx:288 msgid "Order Details" msgstr "订单细节" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:280 -#: src/pages/sales/ReturnOrderDetail.tsx:258 -#: src/pages/sales/SalesOrderDetail.tsx:297 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:304 +#: src/pages/sales/ReturnOrderDetail.tsx:276 +#: src/pages/sales/SalesOrderDetail.tsx:319 msgid "Extra Line Items" -msgstr "" +msgstr "额外行项目" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:337 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:346 msgid "Issue Purchase Order" msgstr "发布采购订单" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:345 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:354 msgid "Cancel Purchase Order" msgstr "取消采购订单" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:353 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:362 msgid "Hold Purchase Order" msgstr "挂起采购订单" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:361 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:370 msgid "Complete Purchase Order" msgstr "完成采购订单" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:427 -#: src/pages/sales/ReturnOrderDetail.tsx:428 -#: src/pages/sales/SalesOrderDetail.tsx:468 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:425 +#: src/pages/sales/ReturnOrderDetail.tsx:424 +#: src/pages/sales/SalesOrderDetail.tsx:464 msgid "Order Actions" msgstr "订单操作" -#: src/pages/sales/ReturnOrderDetail.tsx:101 -#: src/pages/sales/SalesOrderDetail.tsx:107 -#: src/tables/sales/SalesOrderTable.tsx:124 +#: src/pages/sales/ReturnOrderDetail.tsx:92 +#: src/pages/sales/SalesOrderDetail.tsx:101 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:109 +#: src/tables/sales/SalesOrderTable.tsx:137 msgid "Customer Reference" msgstr "客户参考" -#: src/pages/sales/ReturnOrderDetail.tsx:315 +#: src/pages/sales/ReturnOrderDetail.tsx:322 msgid "Edit Return Order" msgstr "编辑退货订单" -#: src/pages/sales/ReturnOrderDetail.tsx:324 -#: src/tables/sales/ReturnOrderTable.tsx:119 -#: src/tables/sales/ReturnOrderTable.tsx:128 +#: src/pages/sales/ReturnOrderDetail.tsx:331 +#: src/tables/sales/ReturnOrderTable.tsx:142 +#: src/tables/sales/ReturnOrderTable.tsx:152 msgid "Add Return Order" msgstr "添加退货订单" -#: src/pages/sales/ReturnOrderDetail.tsx:336 +#: src/pages/sales/ReturnOrderDetail.tsx:343 msgid "Issue Return Order" msgstr "发布退货订单" -#: src/pages/sales/ReturnOrderDetail.tsx:344 +#: src/pages/sales/ReturnOrderDetail.tsx:349 +#~ msgid "Order canceled" +#~ msgstr "Order canceled" + +#: src/pages/sales/ReturnOrderDetail.tsx:351 msgid "Cancel Return Order" msgstr "取消退货订单" -#: src/pages/sales/ReturnOrderDetail.tsx:347 -msgid "Order canceled" -msgstr "订单已取消" - -#: src/pages/sales/ReturnOrderDetail.tsx:352 +#: src/pages/sales/ReturnOrderDetail.tsx:359 msgid "Hold Return Order" msgstr "挂起退货订单" -#: src/pages/sales/ReturnOrderDetail.tsx:360 +#: src/pages/sales/ReturnOrderDetail.tsx:367 msgid "Complete Return Order" msgstr "完成退货订单" @@ -5193,117 +6090,193 @@ msgstr "完成退货订单" msgid "Customers" msgstr "客户" -#: src/pages/sales/SalesOrderDetail.tsx:145 +#: src/pages/sales/SalesOrderDetail.tsx:140 msgid "Completed Shipments" msgstr "完成配送" -#: src/pages/sales/SalesOrderDetail.tsx:243 -msgid "Edit Sales Order" -msgstr "编辑销售订单" - -#: src/pages/sales/SalesOrderDetail.tsx:252 -#: src/tables/sales/SalesOrderTable.tsx:84 -#: src/tables/sales/SalesOrderTable.tsx:96 -msgid "Add Sales Order" -msgstr "添加销售订单" - #: src/pages/sales/SalesOrderDetail.tsx:256 #~ msgid "Pending Shipments" #~ msgstr "Pending Shipments" -#: src/pages/sales/SalesOrderDetail.tsx:313 +#: src/pages/sales/SalesOrderDetail.tsx:261 +msgid "Edit Sales Order" +msgstr "编辑销售订单" + +#: src/pages/sales/SalesOrderDetail.tsx:274 +#: src/tables/sales/SalesOrderTable.tsx:96 +#: src/tables/sales/SalesOrderTable.tsx:109 +msgid "Add Sales Order" +msgstr "添加销售订单" + +#: src/pages/sales/SalesOrderDetail.tsx:335 msgid "Shipments" msgstr "配送" -#: src/pages/sales/SalesOrderDetail.tsx:369 +#: src/pages/sales/SalesOrderDetail.tsx:376 msgid "Issue Sales Order" msgstr "发布销售订单" -#: src/pages/sales/SalesOrderDetail.tsx:377 +#: src/pages/sales/SalesOrderDetail.tsx:384 msgid "Cancel Sales Order" msgstr "取消销售订单" -#: src/pages/sales/SalesOrderDetail.tsx:385 +#: src/pages/sales/SalesOrderDetail.tsx:392 msgid "Hold Sales Order" msgstr "挂起销售订单" -#: src/pages/sales/SalesOrderDetail.tsx:393 +#: src/pages/sales/SalesOrderDetail.tsx:400 msgid "Complete Sales Order" msgstr "完成销售订单" -#: src/pages/sales/SalesOrderDetail.tsx:432 +#: src/pages/sales/SalesOrderDetail.tsx:439 msgid "Ship Order" msgstr "装货单" -#: src/pages/stock/LocationDetail.tsx:117 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:117 +#: src/tables/sales/SalesOrderShipmentTable.tsx:96 +msgid "Shipment Reference" +msgstr "配送参考" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:124 +msgid "Allocated Items" +msgstr "已分配的项" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:133 +msgid "Tracking Number" +msgstr "跟踪单号" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:141 +msgid "Invoice Number" +msgstr "发票号码" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:149 +#: src/tables/ColumnRenderers.tsx:242 +#: src/tables/sales/SalesOrderAllocationTable.tsx:142 +#: src/tables/sales/SalesOrderShipmentTable.tsx:115 +msgid "Shipment Date" +msgstr "发货日期" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:157 +#: src/tables/sales/SalesOrderShipmentTable.tsx:119 +msgid "Delivery Date" +msgstr "送达日期" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:204 +msgid "Shipment Details" +msgstr "发货详情" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:210 +msgid "Assigned Items" +msgstr "已分配项" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:241 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:317 +#: src/tables/sales/SalesOrderShipmentTable.tsx:75 +msgid "Edit Shipment" +msgstr "编辑配送" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:248 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:322 +#: src/tables/sales/SalesOrderShipmentTable.tsx:67 +msgid "Cancel Shipment" +msgstr "取消发货" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:261 +#: src/tables/sales/SalesOrderShipmentTable.tsx:83 +#: src/tables/sales/SalesOrderShipmentTable.tsx:151 +msgid "Complete Shipment" +msgstr "完成配送" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:276 +#: src/tables/part/PartPurchaseOrdersTable.tsx:121 +msgid "Pending" +msgstr "待定" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:277 +#: src/tables/sales/SalesOrderAllocationTable.tsx:148 +#: src/tables/sales/SalesOrderShipmentTable.tsx:108 +#: src/tables/sales/SalesOrderShipmentTable.tsx:197 +msgid "Shipped" +msgstr "已配送" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:279 +#: src/tables/sales/SalesOrderShipmentTable.tsx:202 +msgid "Delivered" +msgstr "已送达" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:293 +msgid "Send Shipment" +msgstr "发送货物" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:312 +msgid "Shipment Actions" +msgstr "" + +#: src/pages/stock/LocationDetail.tsx:111 msgid "Parent Location" msgstr "上级地点" -#: src/pages/stock/LocationDetail.tsx:135 +#: src/pages/stock/LocationDetail.tsx:129 msgid "Sublocations" msgstr "次级地点" -#: src/pages/stock/LocationDetail.tsx:147 +#: src/pages/stock/LocationDetail.tsx:141 #: src/tables/stock/StockLocationTable.tsx:54 msgid "External" msgstr "外部" -#: src/pages/stock/LocationDetail.tsx:153 +#: src/pages/stock/LocationDetail.tsx:147 #: src/tables/stock/StockLocationTable.tsx:63 msgid "Location Type" msgstr "位置类型" -#: src/pages/stock/LocationDetail.tsx:164 +#: src/pages/stock/LocationDetail.tsx:158 msgid "Top level stock location" msgstr "最高级库存位置" -#: src/pages/stock/LocationDetail.tsx:175 +#: src/pages/stock/LocationDetail.tsx:169 msgid "Location Details" msgstr "位置详细信息" -#: src/pages/stock/LocationDetail.tsx:201 +#: src/pages/stock/LocationDetail.tsx:195 msgid "Default Parts" msgstr "默认零件" -#: src/pages/stock/LocationDetail.tsx:220 -#: src/pages/stock/LocationDetail.tsx:351 +#: src/pages/stock/LocationDetail.tsx:214 +#: src/pages/stock/LocationDetail.tsx:336 #: src/tables/stock/StockLocationTable.tsx:123 msgid "Edit Stock Location" msgstr "编辑库存地点" -#: src/pages/stock/LocationDetail.tsx:241 -#: src/pages/stock/LocationDetail.tsx:356 +#: src/pages/stock/LocationDetail.tsx:235 +#: src/pages/stock/LocationDetail.tsx:341 msgid "Delete Stock Location" msgstr "删除库存地点" -#: src/pages/stock/LocationDetail.tsx:244 +#: src/pages/stock/LocationDetail.tsx:238 msgid "Items Action" msgstr "项目操作" -#: src/pages/stock/LocationDetail.tsx:245 +#: src/pages/stock/LocationDetail.tsx:239 msgid "Action for stock items in this location" msgstr "对此位置中的库存物品执行的操作" -#: src/pages/stock/LocationDetail.tsx:250 +#: src/pages/stock/LocationDetail.tsx:244 msgid "Child Locations Action" msgstr "子仓库操作" -#: src/pages/stock/LocationDetail.tsx:251 +#: src/pages/stock/LocationDetail.tsx:245 msgid "Action for child locations in this location" msgstr "对此位置中的子位置执行的操作" -#: src/pages/stock/LocationDetail.tsx:346 +#: src/pages/stock/LocationDetail.tsx:332 msgid "Location Actions" msgstr "位置操作" -#: src/pages/stock/StockDetail.tsx:108 +#: src/pages/stock/StockDetail.tsx:116 msgid "Base Part" msgstr "基础零件" -#: src/pages/stock/StockDetail.tsx:115 -msgid "Stock Status" -msgstr "库存状态" - #: src/pages/stock/StockDetail.tsx:155 #~ msgid "Link custom barcode to stock item" #~ msgstr "Link custom barcode to stock item" @@ -5312,113 +6285,179 @@ msgstr "库存状态" #~ msgid "Unlink custom barcode from stock item" #~ msgstr "Unlink custom barcode from stock item" -#: src/pages/stock/StockDetail.tsx:188 -msgid "Installed In" -msgstr "安装于" - -#: src/pages/stock/StockDetail.tsx:204 -msgid "Consumed By" -msgstr "消耗者" +#: src/pages/stock/StockDetail.tsx:178 +msgid "Allocated to Orders" +msgstr "分配到订单" #: src/pages/stock/StockDetail.tsx:205 #~ msgid "Edit stock item" #~ msgstr "Edit stock item" -#: src/pages/stock/StockDetail.tsx:213 -#: src/tables/build/BuildAllocatedStockTable.tsx:64 -#: src/tables/stock/StockTrackingTable.tsx:96 -msgid "Build Order" -msgstr "生产订单" +#: src/pages/stock/StockDetail.tsx:209 +msgid "Installed In" +msgstr "安装于" #: src/pages/stock/StockDetail.tsx:217 #~ msgid "Delete stock item" #~ msgstr "Delete stock item" -#: src/pages/stock/StockDetail.tsx:291 +#: src/pages/stock/StockDetail.tsx:226 +msgid "Parent Item" +msgstr "上级项目" + +#: src/pages/stock/StockDetail.tsx:230 +msgid "Parent stock item" +msgstr "上级库存项" + +#: src/pages/stock/StockDetail.tsx:236 +msgid "Consumed By" +msgstr "消耗者" + +#: src/pages/stock/StockDetail.tsx:245 +#: src/tables/build/BuildAllocatedStockTable.tsx:77 +#: src/tables/stock/StockTrackingTable.tsx:100 +msgid "Build Order" +msgstr "生产订单" + +#: src/pages/stock/StockDetail.tsx:283 +#: src/tables/stock/StockItemTable.tsx:270 +msgid "Expiry Date" +msgstr "有效期至" + +#: src/pages/stock/StockDetail.tsx:414 msgid "Stock Details" msgstr "库存详情" -#: src/pages/stock/StockDetail.tsx:297 +#: src/pages/stock/StockDetail.tsx:420 msgid "Stock Tracking" msgstr "库存跟踪" -#: src/pages/stock/StockDetail.tsx:350 -msgid "Test Data" -msgstr "测试数据" - -#: src/pages/stock/StockDetail.tsx:364 -msgid "Installed Items" -msgstr "已安装的项目" - -#: src/pages/stock/StockDetail.tsx:371 -msgid "Child Items" -msgstr "子项目" - -#: src/pages/stock/StockDetail.tsx:425 -msgid "Edit Stock Item" -msgstr "编辑库存项" - #: src/pages/stock/StockDetail.tsx:433 #~ msgid "Duplicate stock item" #~ msgstr "Duplicate stock item" -#: src/pages/stock/StockDetail.tsx:452 +#: src/pages/stock/StockDetail.tsx:475 +msgid "Test Data" +msgstr "测试数据" + +#: src/pages/stock/StockDetail.tsx:489 +msgid "Installed Items" +msgstr "已安装的项目" + +#: src/pages/stock/StockDetail.tsx:496 +msgid "Child Items" +msgstr "子项目" + +#: src/pages/stock/StockDetail.tsx:545 +msgid "Edit Stock Item" +msgstr "编辑库存项" + +#: src/pages/stock/StockDetail.tsx:572 msgid "Delete Stock Item" msgstr "删除库存项" -#: src/pages/stock/StockDetail.tsx:504 +#: src/pages/stock/StockDetail.tsx:604 +msgid "Serialize Stock Item" +msgstr "序列化库存" + +#: src/pages/stock/StockDetail.tsx:617 +msgid "Stock item serialized" +msgstr "库存项已创建" + +#: src/pages/stock/StockDetail.tsx:623 +msgid "Return Stock Item" +msgstr "退货库存" + +#: src/pages/stock/StockDetail.tsx:626 +msgid "Return this item into stock. This will remove the customer assignment." +msgstr "返回此项目到库存。这将删除客户作业。" + +#: src/pages/stock/StockDetail.tsx:636 +msgid "Item returned to stock" +msgstr "项目已返回库存" + +#: src/pages/stock/StockDetail.tsx:666 msgid "Stock Operations" msgstr "库存操作" -#: src/pages/stock/StockDetail.tsx:509 +#: src/pages/stock/StockDetail.tsx:671 msgid "Count stock" msgstr "库存计数" -#: src/pages/stock/StockDetail.tsx:519 -#: src/tables/stock/StockItemTable.tsx:449 -msgid "Add stock" -msgstr "添加库存" +#: src/pages/stock/StockDetail.tsx:671 +#: src/tables/stock/StockItemTable.tsx:452 +#~ msgid "Add stock" +#~ msgstr "Add stock" -#: src/pages/stock/StockDetail.tsx:527 -#: src/tables/stock/StockItemTable.tsx:458 -msgid "Remove stock" -msgstr "移除库存" +#: src/pages/stock/StockDetail.tsx:680 +#: src/tables/stock/StockItemTable.tsx:461 +#~ msgid "Remove stock" +#~ msgstr "Remove stock" -#: src/pages/stock/StockDetail.tsx:534 +#: src/pages/stock/StockDetail.tsx:698 +#: src/tables/stock/StockItemTable.tsx:481 +#~ msgid "Transfer stock" +#~ msgstr "Transfer stock" + +#: src/pages/stock/StockDetail.tsx:699 +msgid "Serialize" +msgstr "序列化" + +#: src/pages/stock/StockDetail.tsx:700 +msgid "Serialize stock" +msgstr "序列化库存" + +#: src/pages/stock/StockDetail.tsx:711 msgid "Transfer" msgstr "转移" -#: src/pages/stock/StockDetail.tsx:535 -#: src/tables/stock/StockItemTable.tsx:478 -msgid "Transfer stock" -msgstr "转移库存" +#: src/pages/stock/StockDetail.tsx:722 +msgid "Return" +msgstr "退货" -#: src/pages/stock/StockDetail.tsx:546 +#: src/pages/stock/StockDetail.tsx:723 +msgid "Return from customer" +msgstr "从客户退货" + +#: src/pages/stock/StockDetail.tsx:738 msgid "Stock Item Actions" msgstr "库存项操作" -#: src/tables/ColumnRenderers.tsx:30 +#: src/pages/stock/StockDetail.tsx:808 +msgid "Stale" +msgstr "呆滞" + +#: src/pages/stock/StockDetail.tsx:814 +msgid "Expired" +msgstr "已过期" + +#: src/pages/stock/StockDetail.tsx:820 +msgid "Unavailable" +msgstr "不可用" + +#: src/tables/ColumnRenderers.tsx:36 msgid "Part is not active" msgstr "零件未激活" -#: src/tables/ColumnRenderers.tsx:35 -msgid "Part is locked" +#: src/tables/ColumnRenderers.tsx:41 +#: src/tables/bom/BomTable.tsx:542 +#: src/tables/part/PartParameterTable.tsx:193 +#: src/tables/part/PartTestTemplateTable.tsx:253 +msgid "Part is Locked" msgstr "零件已锁定" -#: src/tables/ColumnRenderers.tsx:57 +#: src/tables/ColumnRenderers.tsx:41 +#~ msgid "Part is locked" +#~ msgstr "Part is locked" + +#: src/tables/ColumnRenderers.tsx:46 +msgid "You are subscribed to notifications for this part" +msgstr "您已订阅此零件的通知" + +#: src/tables/ColumnRenderers.tsx:68 msgid "No location set" msgstr "未设置库存地点" -#: src/tables/ColumnRenderers.tsx:228 -#: src/tables/sales/SalesOrderShipmentTable.tsx:79 -msgid "Shipment Date" -msgstr "发货日期" - -#: src/tables/ColumnRenderers.tsx:248 -#: src/tables/settings/CurrencyTable.tsx:23 -msgid "Currency" -msgstr "货币" - #: src/tables/ColumnSelect.tsx:16 #: src/tables/ColumnSelect.tsx:23 msgid "Select Columns" @@ -5452,91 +6491,116 @@ msgstr "Excel (.xlsx)" msgid "Download Data" msgstr "下载数据" -#: src/tables/Filter.tsx:89 -#: src/tables/build/BuildOrderTable.tsx:135 +#: src/tables/Filter.tsx:101 msgid "Assigned to me" msgstr "已分派给我的" -#: src/tables/Filter.tsx:90 -#: src/tables/build/BuildOrderTable.tsx:136 +#: src/tables/Filter.tsx:102 msgid "Show orders assigned to me" msgstr "显示分配给我的订单" -#: src/tables/Filter.tsx:97 +#: src/tables/Filter.tsx:106 +#~ msgid "Show overdue orders" +#~ msgstr "Show overdue orders" + +#: src/tables/Filter.tsx:109 +#: src/tables/build/BuildOrderTable.tsx:120 +#: src/tables/sales/SalesOrderAllocationTable.tsx:59 msgid "Outstanding" msgstr "未完成" -#: src/tables/Filter.tsx:98 -msgid "Show outstanding orders" -msgstr "显示未完成的订单" +#: src/tables/Filter.tsx:110 +msgid "Show outstanding items" +msgstr "" -#: src/tables/Filter.tsx:105 -#: src/tables/build/BuildOrderTable.tsx:128 +#: src/tables/Filter.tsx:117 msgid "Overdue" msgstr "逾期" -#: src/tables/Filter.tsx:106 -msgid "Show overdue orders" -msgstr "显示逾期订单" +#: src/tables/Filter.tsx:118 +msgid "Show overdue items" +msgstr "" -#: src/tables/FilterSelectDrawer.tsx:51 +#: src/tables/Filter.tsx:125 +msgid "Minimum Date" +msgstr "" + +#: src/tables/Filter.tsx:126 +msgid "Show items after this date" +msgstr "" + +#: src/tables/Filter.tsx:134 +msgid "Maximum Date" +msgstr "" + +#: src/tables/Filter.tsx:135 +msgid "Show items before this date" +msgstr "" + +#: src/tables/Filter.tsx:144 +msgid "Has Project Code" +msgstr "有项目编码" + +#: src/tables/Filter.tsx:145 +msgid "Show orders with an assigned project code" +msgstr "" + +#: src/tables/FilterSelectDrawer.tsx:55 msgid "Remove filter" msgstr "移除过滤器" -#: src/tables/FilterSelectDrawer.tsx:130 +#: src/tables/FilterSelectDrawer.tsx:159 msgid "Select filter" msgstr "选择过滤器" -#: src/tables/FilterSelectDrawer.tsx:131 +#: src/tables/FilterSelectDrawer.tsx:160 msgid "Filter" msgstr "过滤器" -#: src/tables/FilterSelectDrawer.tsx:138 -#: src/tables/build/BuildOrderTestTable.tsx:134 -#: src/tables/purchasing/ManufacturerPartParameterTable.tsx:38 -#: src/tables/stock/StockItemTestResultTable.tsx:186 -msgid "Value" -msgstr "值" +#: src/tables/FilterSelectDrawer.tsx:168 +msgid "Select date value" +msgstr "" -#: src/tables/FilterSelectDrawer.tsx:140 +#: src/tables/FilterSelectDrawer.tsx:176 msgid "Select filter value" msgstr "选择过滤器值" -#: src/tables/FilterSelectDrawer.tsx:183 +#: src/tables/FilterSelectDrawer.tsx:219 +#: src/tables/InvenTreeTableHeader.tsx:214 msgid "Table Filters" msgstr "表格筛选" -#: src/tables/FilterSelectDrawer.tsx:215 +#: src/tables/FilterSelectDrawer.tsx:251 msgid "Add Filter" msgstr "添加过滤条件" -#: src/tables/FilterSelectDrawer.tsx:224 +#: src/tables/FilterSelectDrawer.tsx:260 msgid "Clear Filters" msgstr "清除筛选" -#: src/tables/InvenTreeTable.tsx:123 -#: src/tables/InvenTreeTable.tsx:431 -#: src/tables/InvenTreeTable.tsx:455 +#: src/tables/InvenTreeTable.tsx:96 +#: src/tables/InvenTreeTable.tsx:417 +#: src/tables/InvenTreeTable.tsx:441 msgid "No records found" msgstr "没有找到记录" -#: src/tables/InvenTreeTable.tsx:466 +#: src/tables/InvenTreeTable.tsx:452 msgid "Server returned incorrect data type" msgstr "服务器返回了错误的数据类型" -#: src/tables/InvenTreeTable.tsx:474 +#: src/tables/InvenTreeTable.tsx:460 msgid "Bad request" msgstr "错误的请求" -#: src/tables/InvenTreeTable.tsx:477 +#: src/tables/InvenTreeTable.tsx:463 msgid "Unauthorized" msgstr "未授权" -#: src/tables/InvenTreeTable.tsx:480 +#: src/tables/InvenTreeTable.tsx:466 msgid "Forbidden" msgstr "禁止访问" -#: src/tables/InvenTreeTable.tsx:483 +#: src/tables/InvenTreeTable.tsx:469 msgid "Not found" msgstr "未找到" @@ -5544,18 +6608,6 @@ msgstr "未找到" #~ msgid "Are you sure you want to delete the selected records?" #~ msgstr "Are you sure you want to delete the selected records?" -#: src/tables/InvenTreeTable.tsx:525 -msgid "Delete Selected Items" -msgstr "删除所选项目" - -#: src/tables/InvenTreeTable.tsx:529 -msgid "Are you sure you want to delete the selected items?" -msgstr "确定要删除所选的项目吗?" - -#: src/tables/InvenTreeTable.tsx:531 -msgid "This action cannot be undone!" -msgstr "此操作无法撤消!" - #: src/tables/InvenTreeTable.tsx:535 #~ msgid "Deleted records" #~ msgstr "Deleted records" @@ -5568,31 +6620,56 @@ msgstr "此操作无法撤消!" #~ msgid "Failed to delete records" #~ msgstr "Failed to delete records" +#: src/tables/InvenTreeTable.tsx:552 +#~ msgid "This action cannot be undone!" +#~ msgstr "This action cannot be undone!" + #: src/tables/InvenTreeTable.tsx:594 #: src/tables/InvenTreeTable.tsx:595 #~ msgid "Print actions" #~ msgstr "Print actions" -#: src/tables/InvenTreeTable.tsx:618 -#: src/tables/InvenTreeTable.tsx:619 -msgid "Barcode actions" -msgstr "条形码操作" +#: src/tables/InvenTreeTable.tsx:655 +#: src/tables/InvenTreeTable.tsx:656 +#~ msgid "Barcode actions" +#~ msgstr "Barcode actions" -#: src/tables/InvenTreeTable.tsx:628 +#: src/tables/InvenTreeTable.tsx:712 +#~ msgid "Table filters" +#~ msgstr "Table filters" + +#: src/tables/InvenTreeTable.tsx:725 +#~ msgid "Clear custom query filters" +#~ msgstr "Clear custom query filters" + +#: src/tables/InvenTreeTableHeader.tsx:98 +msgid "Delete Selected Items" +msgstr "删除所选项目" + +#: src/tables/InvenTreeTableHeader.tsx:102 +msgid "Are you sure you want to delete the selected items?" +msgstr "确定要删除所选的项目吗?" + +#: src/tables/InvenTreeTableHeader.tsx:104 +#: src/tables/plugin/PluginListTable.tsx:305 +msgid "This action cannot be undone" +msgstr "该操作无法撤销" + +#: src/tables/InvenTreeTableHeader.tsx:142 +msgid "Custom table filters are active" +msgstr "" + +#: src/tables/InvenTreeTableHeader.tsx:169 msgid "Delete selected records" msgstr "删除选中的记录" -#: src/tables/InvenTreeTable.tsx:649 +#: src/tables/InvenTreeTableHeader.tsx:188 msgid "Refresh data" msgstr "刷新数据" -#: src/tables/InvenTreeTable.tsx:675 -msgid "Table filters" -msgstr "表格过滤器" - #: src/tables/TableHoverCard.tsx:35 -msgid "item-{idx}" -msgstr "" +#~ msgid "item-{idx}" +#~ msgstr "item-{idx}" #: src/tables/UploadAction.tsx:7 #~ msgid "Upload Data" @@ -5607,31 +6684,36 @@ msgid "Part Information" msgstr "零件信息" #: src/tables/bom/BomTable.tsx:212 -#: src/tables/build/BuildLineTable.tsx:126 +#: src/tables/build/BuildLineTable.tsx:257 #: src/tables/part/PartTable.tsx:125 msgid "External stock" msgstr "外部库存" #: src/tables/bom/BomTable.tsx:220 -#: src/tables/build/BuildLineTable.tsx:89 +#: src/tables/build/BuildLineTable.tsx:220 msgid "Includes substitute stock" msgstr "包括替代库存" #: src/tables/bom/BomTable.tsx:229 -#: src/tables/build/BuildLineTable.tsx:99 -#: src/tables/sales/SalesOrderLineItemTable.tsx:127 +#: src/tables/build/BuildLineTable.tsx:230 +#: src/tables/sales/SalesOrderLineItemTable.tsx:135 msgid "Includes variant stock" msgstr "包括变体库存" +#: src/tables/bom/BomTable.tsx:245 +#: src/tables/part/PartTable.tsx:92 +msgid "Building" +msgstr "正在生产" + #: src/tables/bom/BomTable.tsx:254 #: src/tables/part/PartTable.tsx:153 -#: src/tables/sales/SalesOrderLineItemTable.tsx:150 -#: src/tables/stock/StockItemTable.tsx:216 +#: src/tables/sales/SalesOrderLineItemTable.tsx:158 +#: src/tables/stock/StockItemTable.tsx:206 msgid "Stock Information" msgstr "库存信息" #: src/tables/bom/BomTable.tsx:285 -#: src/tables/build/BuildLineTable.tsx:248 +#: src/tables/build/BuildLineTable.tsx:409 msgid "Consumable item" msgstr "可耗物品" @@ -5644,9 +6726,9 @@ msgstr "无可用库存" #~ msgstr "Create BOM Item" #: src/tables/bom/BomTable.tsx:306 -#: src/tables/build/BuildLineTable.tsx:69 +#: src/tables/build/BuildLineTable.tsx:200 msgid "Show testable items" -msgstr "" +msgstr "显示可跟踪项目" #: src/tables/bom/BomTable.tsx:310 #~ msgid "Show asssmbled items" @@ -5657,11 +6739,12 @@ msgid "Show trackable items" msgstr "显示可跟踪项目" #: src/tables/bom/BomTable.tsx:316 -#: src/tables/build/BuildLineTable.tsx:64 +#: src/tables/build/BuildLineTable.tsx:195 msgid "Show assembled items" -msgstr "" +msgstr "显示已装配的项目" #: src/tables/bom/BomTable.tsx:321 +#: src/tables/build/BuildLineTable.tsx:180 msgid "Show items with available stock" msgstr "显示有可用库存的项目" @@ -5705,7 +6788,7 @@ msgstr "显示允许变体替换的项目" #: src/tables/bom/BomTable.tsx:345 #: src/tables/bom/UsedInTable.tsx:79 -#: src/tables/build/BuildLineTable.tsx:58 +#: src/tables/build/BuildLineTable.tsx:189 msgid "Optional" msgstr "可选项" @@ -5723,7 +6806,7 @@ msgstr "显示可选项目" #~ msgstr "Bom item deleted" #: src/tables/bom/BomTable.tsx:350 -#: src/tables/build/BuildLineTable.tsx:53 +#: src/tables/build/BuildLineTable.tsx:184 msgid "Consumable" msgstr "消耗品" @@ -5749,12 +6832,12 @@ msgid "Show items with pricing" msgstr "显示带定价的项目" #: src/tables/bom/BomTable.tsx:378 -#: src/tables/bom/BomTable.tsx:511 +#: src/tables/bom/BomTable.tsx:512 msgid "Import BOM Data" msgstr "导入物料清单数据" #: src/tables/bom/BomTable.tsx:388 -#: src/tables/bom/BomTable.tsx:523 +#: src/tables/bom/BomTable.tsx:526 msgid "Add BOM Item" msgstr "添加物料清单项" @@ -5780,7 +6863,7 @@ msgstr "物料清单项目已删除" #: src/tables/bom/BomTable.tsx:423 #: src/tables/bom/BomTable.tsx:426 -#: src/tables/bom/BomTable.tsx:517 +#: src/tables/bom/BomTable.tsx:519 msgid "Validate BOM" msgstr "验证物料清单" @@ -5812,21 +6895,15 @@ msgstr "验证物料清单行" msgid "Edit Substitutes" msgstr "编辑替代零件" -#: src/tables/bom/BomTable.tsx:539 -#: src/tables/part/PartParameterTable.tsx:193 -#: src/tables/part/PartTestTemplateTable.tsx:252 -msgid "Part is Locked" -msgstr "零件已锁定" - -#: src/tables/bom/BomTable.tsx:544 +#: src/tables/bom/BomTable.tsx:547 msgid "Bill of materials cannot be edited, as the part is locked" msgstr "无法编辑材料清单,因为零件已锁定" #: src/tables/bom/UsedInTable.tsx:33 -#: src/tables/build/BuildLineTable.tsx:63 +#: src/tables/build/BuildLineTable.tsx:194 #: src/tables/part/ParametricPartTable.tsx:233 #: src/tables/part/PartTable.tsx:190 -#: src/tables/stock/StockItemTable.tsx:300 +#: src/tables/stock/StockItemTable.tsx:304 msgid "Assembly" msgstr "装配" @@ -5844,285 +6921,347 @@ msgstr "可追踪" msgid "Show trackable assemblies" msgstr "显示可跟踪装配体" -#: src/tables/build/BuildAllocatedStockTable.tsx:54 +#: src/tables/build/BuildAllocatedStockTable.tsx:56 msgid "Allocated to Output" msgstr "分配至输出" -#: src/tables/build/BuildAllocatedStockTable.tsx:55 +#: src/tables/build/BuildAllocatedStockTable.tsx:57 msgid "Show items allocated to a build output" msgstr "显示分配给构建输出的项目" -#: src/tables/build/BuildAllocatedStockTable.tsx:76 -#: src/tables/part/PartPurchaseOrdersTable.tsx:125 -#: src/tables/sales/SalesOrderAllocationTable.tsx:62 +#: src/tables/build/BuildAllocatedStockTable.tsx:65 +#: src/tables/build/BuildOrderTable.tsx:159 +#: src/tables/part/PartParameterTable.tsx:212 +#: src/tables/part/PartPurchaseOrdersTable.tsx:138 +#: src/tables/sales/ReturnOrderTable.tsx:84 +#: src/tables/sales/SalesOrderAllocationTable.tsx:68 +#: src/tables/sales/SalesOrderTable.tsx:84 +#: src/tables/stock/StockItemTable.tsx:339 +msgid "Include Variants" +msgstr "包含变体" + +#: src/tables/build/BuildAllocatedStockTable.tsx:66 +#: src/tables/build/BuildOrderTable.tsx:160 +#: src/tables/part/PartPurchaseOrdersTable.tsx:139 +#: src/tables/sales/ReturnOrderTable.tsx:85 +#: src/tables/sales/SalesOrderAllocationTable.tsx:69 +#: src/tables/sales/SalesOrderTable.tsx:85 +msgid "Include orders for part variants" +msgstr "" + +#: src/tables/build/BuildAllocatedStockTable.tsx:89 +#: src/tables/part/PartPurchaseOrdersTable.tsx:131 +#: src/tables/sales/SalesOrderAllocationTable.tsx:93 msgid "Order Status" msgstr "订单状态" -#: src/tables/build/BuildAllocatedStockTable.tsx:96 -#: src/tables/sales/SalesOrderAllocationTable.tsx:75 +#: src/tables/build/BuildAllocatedStockTable.tsx:117 +#: src/tables/sales/SalesOrderAllocationTable.tsx:126 msgid "Allocated Quantity" msgstr "已分配数量" -#: src/tables/build/BuildAllocatedStockTable.tsx:116 -#: src/tables/sales/SalesOrderAllocationTable.tsx:94 +#: src/tables/build/BuildAllocatedStockTable.tsx:137 +#: src/tables/sales/SalesOrderAllocationTable.tsx:120 msgid "Available Quantity" msgstr "可用数量" -#: src/tables/build/BuildAllocatedStockTable.tsx:126 -#: src/tables/build/BuildOrderTestTable.tsx:176 -#: src/tables/build/BuildOrderTestTable.tsx:200 -#: src/tables/build/BuildOutputTable.tsx:312 -msgid "Build Output" -msgstr "生产产出" +#: src/tables/build/BuildAllocatedStockTable.tsx:164 +#: src/tables/build/BuildLineTable.tsx:513 +msgid "Edit Stock Allocation" +msgstr "" -#: src/tables/build/BuildAllocatedStockTable.tsx:143 -msgid "Edit Build Item" -msgstr "编辑构建项" +#: src/tables/build/BuildAllocatedStockTable.tsx:164 +#~ msgid "Edit Build Item" +#~ msgstr "Edit Build Item" -#: src/tables/build/BuildAllocatedStockTable.tsx:153 -msgid "Delete Build Item" -msgstr "删除构建项" +#: src/tables/build/BuildAllocatedStockTable.tsx:174 +#~ msgid "Delete Build Item" +#~ msgstr "Delete Build Item" -#: src/tables/build/BuildLineTable.tsx:43 -#: src/tables/stock/StockItemTable.tsx:305 -msgid "Allocated" -msgstr "已分配" +#: src/tables/build/BuildAllocatedStockTable.tsx:177 +#: src/tables/build/BuildLineTable.tsx:526 +msgid "Delete Stock Allocation" +msgstr "" -#: src/tables/build/BuildLineTable.tsx:44 +#: src/tables/build/BuildLineTable.tsx:59 +#~ msgid "Show lines with available stock" +#~ msgstr "Show lines with available stock" + +#: src/tables/build/BuildLineTable.tsx:175 msgid "Show allocated lines" msgstr "显示分配的行" -#: src/tables/build/BuildLineTable.tsx:49 -msgid "Show lines with available stock" -msgstr "显示有可用库存的项目" - -#: src/tables/build/BuildLineTable.tsx:54 +#: src/tables/build/BuildLineTable.tsx:185 msgid "Show consumable lines" msgstr "显示可消耗项目" -#: src/tables/build/BuildLineTable.tsx:59 +#: src/tables/build/BuildLineTable.tsx:190 msgid "Show optional lines" msgstr "显示可选项目" -#: src/tables/build/BuildLineTable.tsx:68 +#: src/tables/build/BuildLineTable.tsx:199 #: src/tables/part/PartTable.tsx:208 msgid "Testable" -msgstr "" +msgstr "可测试" -#: src/tables/build/BuildLineTable.tsx:73 -#: src/tables/stock/StockItemTable.tsx:364 +#: src/tables/build/BuildLineTable.tsx:204 +#: src/tables/stock/StockItemTable.tsx:368 msgid "Tracked" msgstr "已跟踪" -#: src/tables/build/BuildLineTable.tsx:74 +#: src/tables/build/BuildLineTable.tsx:205 msgid "Show tracked lines" msgstr "显示已跟踪项目" -#: src/tables/build/BuildLineTable.tsx:108 -#: src/tables/sales/SalesOrderLineItemTable.tsx:133 +#: src/tables/build/BuildLineTable.tsx:239 +#: src/tables/sales/SalesOrderLineItemTable.tsx:141 msgid "In production" msgstr "生产中" -#: src/tables/build/BuildLineTable.tsx:136 +#: src/tables/build/BuildLineTable.tsx:267 msgid "Insufficient stock" -msgstr "" +msgstr "库存不足" -#: src/tables/build/BuildLineTable.tsx:152 -#: src/tables/sales/SalesOrderLineItemTable.tsx:121 -#: src/tables/stock/StockItemTable.tsx:186 +#: src/tables/build/BuildLineTable.tsx:283 +#: src/tables/sales/SalesOrderLineItemTable.tsx:129 +#: src/tables/stock/StockItemTable.tsx:175 msgid "No stock available" msgstr "无可用库存" -#: src/tables/build/BuildLineTable.tsx:201 +#: src/tables/build/BuildLineTable.tsx:355 msgid "Gets Inherited" msgstr "获取已继承的" -#: src/tables/build/BuildLineTable.tsx:210 +#: src/tables/build/BuildLineTable.tsx:366 msgid "Unit Quantity" msgstr "单位数量" -#: src/tables/build/BuildLineTable.tsx:267 -#: src/tables/sales/SalesOrderLineItemTable.tsx:230 +#: src/tables/build/BuildLineTable.tsx:381 +msgid "Required Quantity" +msgstr "" + +#: src/tables/build/BuildLineTable.tsx:432 +#: src/tables/sales/SalesOrderLineItemTable.tsx:254 msgid "Create Build Order" msgstr "创建生产订单" -#: src/tables/build/BuildLineTable.tsx:298 -msgid "Allocate Stock" -msgstr "分配库存" +#: src/tables/build/BuildLineTable.tsx:460 +msgid "Auto allocation in progress" +msgstr "自动分配进行中" -#: src/tables/build/BuildLineTable.tsx:305 +#: src/tables/build/BuildLineTable.tsx:463 +#: src/tables/build/BuildLineTable.tsx:632 +msgid "Auto Allocate Stock" +msgstr "自动分配库存量" + +#: src/tables/build/BuildLineTable.tsx:464 +msgid "Automatically allocate stock to this build according to the selected options" +msgstr "根据选定的选项自动分配库存到此版本" + +#: src/tables/build/BuildLineTable.tsx:482 +#: src/tables/build/BuildLineTable.tsx:496 +#: src/tables/build/BuildLineTable.tsx:579 +#: src/tables/build/BuildLineTable.tsx:664 +#: src/tables/build/BuildOutputTable.tsx:314 +#: src/tables/build/BuildOutputTable.tsx:319 +msgid "Deallocate Stock" +msgstr "取消库存分配" + +#: src/tables/build/BuildLineTable.tsx:498 +msgid "Deallocate all untracked stock for this build order" +msgstr "为这个构建订单取消分配所有未跟踪库存" + +#: src/tables/build/BuildLineTable.tsx:500 +msgid "Deallocate stock from the selected line item" +msgstr "从选中的行项中取消分配库存" + +#: src/tables/build/BuildLineTable.tsx:504 +msgid "Stock has been deallocated" +msgstr "库存已经取消分配" + +#: src/tables/build/BuildLineTable.tsx:589 msgid "Order Stock" msgstr "订单库存" -#: src/tables/build/BuildLineTable.tsx:312 +#: src/tables/build/BuildLineTable.tsx:596 msgid "Build Stock" msgstr "生产库存" -#: src/tables/build/BuildOrderTable.tsx:111 -msgid "Show active orders" -msgstr "显示活动订单" +#: src/tables/build/BuildLineTable.tsx:610 +msgid "View Part" +msgstr "" #: src/tables/build/BuildOrderTable.tsx:116 -msgid "Cascade" -msgstr "" +#~ msgid "Cascade" +#~ msgstr "Cascade" #: src/tables/build/BuildOrderTable.tsx:117 -msgid "Display recursive child orders" -msgstr "" +#~ msgid "Display recursive child orders" +#~ msgstr "Display recursive child orders" -#: src/tables/build/BuildOrderTable.tsx:123 -#: src/tables/part/PartPurchaseOrdersTable.tsx:126 -#: src/tables/purchasing/PurchaseOrderTable.tsx:56 -#: src/tables/sales/ReturnOrderTable.tsx:47 -#: src/tables/sales/SalesOrderTable.tsx:54 +#: src/tables/build/BuildOrderTable.tsx:121 +msgid "Show outstanding orders" +msgstr "显示未完成的订单" + +#: src/tables/build/BuildOrderTable.tsx:121 +#~ msgid "Show active orders" +#~ msgstr "Show active orders" + +#: src/tables/build/BuildOrderTable.tsx:122 +#~ msgid "Show overdue status" +#~ msgstr "Show overdue status" + +#: src/tables/build/BuildOrderTable.tsx:126 +#: src/tables/part/PartPurchaseOrdersTable.tsx:132 +#: src/tables/purchasing/PurchaseOrderTable.tsx:59 +#: src/tables/sales/ReturnOrderTable.tsx:57 +#: src/tables/sales/SalesOrderTable.tsx:57 msgid "Filter by order status" msgstr "按订单状态筛选" -#: src/tables/build/BuildOrderTable.tsx:130 -msgid "Show overdue status" -msgstr "显示逾期状态" - -#: src/tables/build/BuildOrderTable.tsx:141 -#: src/tables/purchasing/PurchaseOrderTable.tsx:65 -#: src/tables/sales/ReturnOrderTable.tsx:56 -#: src/tables/sales/SalesOrderTable.tsx:63 +#: src/tables/build/BuildOrderTable.tsx:136 +#: src/tables/purchasing/PurchaseOrderTable.tsx:70 +#: src/tables/sales/ReturnOrderTable.tsx:68 +#: src/tables/sales/SalesOrderTable.tsx:68 msgid "Filter by project code" msgstr "按项目编码筛选" -#: src/tables/build/BuildOrderTable.tsx:146 -#: src/tables/purchasing/PurchaseOrderTable.tsx:70 -#: src/tables/sales/ReturnOrderTable.tsx:61 -#: src/tables/sales/SalesOrderTable.tsx:68 -msgid "Has Project Code" -msgstr "有项目编码" - -#: src/tables/build/BuildOrderTable.tsx:147 +#: src/tables/build/BuildOrderTable.tsx:139 #: src/tables/purchasing/PurchaseOrderTable.tsx:71 #: src/tables/sales/ReturnOrderTable.tsx:62 #: src/tables/sales/SalesOrderTable.tsx:69 -msgid "Filter by whether the purchase order has a project code" -msgstr "根据采购订单是否有项目编码进行筛选" +#~ msgid "Filter by whether the purchase order has a project code" +#~ msgstr "Filter by whether the purchase order has a project code" -#: src/tables/build/BuildOrderTable.tsx:152 +#: src/tables/build/BuildOrderTable.tsx:143 msgid "Filter by user who issued this order" msgstr "按发布此订单的用户筛选" -#: src/tables/build/BuildOrderTable.tsx:158 -#: src/tables/purchasing/PurchaseOrderTable.tsx:76 -#: src/tables/sales/ReturnOrderTable.tsx:67 -#: src/tables/sales/SalesOrderTable.tsx:74 +#: src/tables/build/BuildOrderTable.tsx:149 +#: src/tables/purchasing/PurchaseOrderTable.tsx:77 +#: src/tables/sales/ReturnOrderTable.tsx:75 +#: src/tables/sales/SalesOrderTable.tsx:75 msgid "Filter by responsible owner" msgstr "根据负责人进行筛选" -#: src/tables/build/BuildOrderTestTable.tsx:75 -#: src/tables/build/BuildOrderTestTable.tsx:111 -#: src/tables/stock/StockItemTestResultTable.tsx:257 -#: src/tables/stock/StockItemTestResultTable.tsx:329 -#: src/tables/stock/StockItemTestResultTable.tsx:384 +#: src/tables/build/BuildOrderTestTable.tsx:76 +#: src/tables/build/BuildOrderTestTable.tsx:112 +#: src/tables/stock/StockItemTestResultTable.tsx:275 +#: src/tables/stock/StockItemTestResultTable.tsx:347 +#: src/tables/stock/StockItemTestResultTable.tsx:403 msgid "Add Test Result" msgstr "添加测试结果" -#: src/tables/build/BuildOrderTestTable.tsx:82 -#: src/tables/stock/StockItemTestResultTable.tsx:259 +#: src/tables/build/BuildOrderTestTable.tsx:83 +#: src/tables/stock/StockItemTestResultTable.tsx:277 msgid "Test result added" msgstr "测试结果已添加" -#: src/tables/build/BuildOrderTestTable.tsx:110 -#: src/tables/stock/StockItemTestResultTable.tsx:174 +#: src/tables/build/BuildOrderTestTable.tsx:111 +#: src/tables/stock/StockItemTestResultTable.tsx:180 msgid "No Result" msgstr "无结果" -#: src/tables/build/BuildOrderTestTable.tsx:220 +#: src/tables/build/BuildOrderTestTable.tsx:221 msgid "Show build outputs currently in production" msgstr "显示当前生产中的构建输出" +#: src/tables/build/BuildOutputTable.tsx:76 +msgid "Build Output Stock Allocation" +msgstr "" + #: src/tables/build/BuildOutputTable.tsx:161 #~ msgid "Delete build output" #~ msgstr "Delete build output" -#: src/tables/build/BuildOutputTable.tsx:173 -#: src/tables/build/BuildOutputTable.tsx:211 +#: src/tables/build/BuildOutputTable.tsx:258 +#: src/tables/build/BuildOutputTable.tsx:374 msgid "Add Build Output" msgstr "添加生成输出" -#: src/tables/build/BuildOutputTable.tsx:216 +#: src/tables/build/BuildOutputTable.tsx:304 +#~ msgid "Edit build output" +#~ msgstr "Edit build output" + +#: src/tables/build/BuildOutputTable.tsx:306 +#: src/tables/build/BuildOutputTable.tsx:417 +msgid "Edit Build Output" +msgstr "编辑生成输出" + +#: src/tables/build/BuildOutputTable.tsx:321 +msgid "This action will deallocate all stock from the selected build output" +msgstr "" + +#: src/tables/build/BuildOutputTable.tsx:341 msgid "Complete selected outputs" msgstr "完成选定的输出" -#: src/tables/build/BuildOutputTable.tsx:226 +#: src/tables/build/BuildOutputTable.tsx:352 msgid "Scrap selected outputs" msgstr "报废选定的输出" -#: src/tables/build/BuildOutputTable.tsx:236 +#: src/tables/build/BuildOutputTable.tsx:363 msgid "Cancel selected outputs" msgstr "取消选定的输出" -#: src/tables/build/BuildOutputTable.tsx:252 +#: src/tables/build/BuildOutputTable.tsx:385 msgid "Allocate" msgstr "分配" -#: src/tables/build/BuildOutputTable.tsx:253 +#: src/tables/build/BuildOutputTable.tsx:386 msgid "Allocate stock to build output" msgstr "为生产产出分配库存" -#: src/tables/build/BuildOutputTable.tsx:259 +#: src/tables/build/BuildOutputTable.tsx:396 msgid "Deallocate" msgstr "取消分配" -#: src/tables/build/BuildOutputTable.tsx:260 +#: src/tables/build/BuildOutputTable.tsx:397 msgid "Deallocate stock from build output" msgstr "从生产输出中取消分配库存" -#: src/tables/build/BuildOutputTable.tsx:267 +#: src/tables/build/BuildOutputTable.tsx:408 msgid "Complete build output" msgstr "完成生产输出" -#: src/tables/build/BuildOutputTable.tsx:276 +#: src/tables/build/BuildOutputTable.tsx:424 msgid "Scrap" msgstr "报废件" -#: src/tables/build/BuildOutputTable.tsx:277 +#: src/tables/build/BuildOutputTable.tsx:425 msgid "Scrap build output" msgstr "报废生产输出" -#: src/tables/build/BuildOutputTable.tsx:280 -#~ msgid "Allocated Items" -#~ msgstr "Allocated Items" - -#: src/tables/build/BuildOutputTable.tsx:287 +#: src/tables/build/BuildOutputTable.tsx:435 msgid "Cancel build output" msgstr "取消生产输出" -#: src/tables/build/BuildOutputTable.tsx:325 -msgid "Batch" -msgstr "批次" - -#: src/tables/build/BuildOutputTable.tsx:340 +#: src/tables/build/BuildOutputTable.tsx:488 msgid "Allocated Lines" -msgstr "" +msgstr "已分配的项目" -#: src/tables/build/BuildOutputTable.tsx:355 +#: src/tables/build/BuildOutputTable.tsx:503 msgid "Required Tests" msgstr "需要测试" -#: src/tables/company/AddressTable.tsx:121 -#: src/tables/company/AddressTable.tsx:185 +#: src/tables/company/AddressTable.tsx:118 +#: src/tables/company/AddressTable.tsx:183 msgid "Add Address" msgstr "新增地址" -#: src/tables/company/AddressTable.tsx:126 +#: src/tables/company/AddressTable.tsx:123 msgid "Address created" msgstr "地址已创建" -#: src/tables/company/AddressTable.tsx:135 +#: src/tables/company/AddressTable.tsx:132 msgid "Edit Address" msgstr "编辑地址" -#: src/tables/company/AddressTable.tsx:143 +#: src/tables/company/AddressTable.tsx:140 msgid "Delete Address" msgstr "删除地址" -#: src/tables/company/AddressTable.tsx:144 +#: src/tables/company/AddressTable.tsx:141 msgid "Are you sure you want to delete this address?" msgstr "您确定要删除该地址?" @@ -6130,24 +7269,24 @@ msgstr "您确定要删除该地址?" #~ msgid "New Company" #~ msgstr "New Company" -#: src/tables/company/CompanyTable.tsx:74 -#: src/tables/company/CompanyTable.tsx:123 +#: src/tables/company/CompanyTable.tsx:75 +#: src/tables/company/CompanyTable.tsx:125 msgid "Add Company" msgstr "添加公司" -#: src/tables/company/CompanyTable.tsx:96 +#: src/tables/company/CompanyTable.tsx:97 msgid "Show active companies" msgstr "显示活跃的公司" -#: src/tables/company/CompanyTable.tsx:101 +#: src/tables/company/CompanyTable.tsx:102 msgid "Show companies which are suppliers" msgstr "显示供应商公司" -#: src/tables/company/CompanyTable.tsx:106 +#: src/tables/company/CompanyTable.tsx:107 msgid "Show companies which are manufacturers" msgstr "显示属于制造商的公司" -#: src/tables/company/CompanyTable.tsx:111 +#: src/tables/company/CompanyTable.tsx:112 msgid "Show companies which are customers" msgstr "显示客户公司" @@ -6163,110 +7302,113 @@ msgstr "添加联系人" msgid "Delete Contact" msgstr "删除联系人" -#: src/tables/company/ContactTable.tsx:129 +#: src/tables/company/ContactTable.tsx:130 msgid "Add contact" msgstr "添加联系人" -#: src/tables/general/AttachmentTable.tsx:130 +#: src/tables/general/AttachmentTable.tsx:135 msgid "File uploaded" msgstr "文件已上传" -#: src/tables/general/AttachmentTable.tsx:131 +#: src/tables/general/AttachmentTable.tsx:136 msgid "File {0} uploaded successfully" msgstr "文件 {0} 上传成功。" -#: src/tables/general/AttachmentTable.tsx:142 +#: src/tables/general/AttachmentTable.tsx:147 msgid "Upload Error" msgstr "上传错误" -#: src/tables/general/AttachmentTable.tsx:143 +#: src/tables/general/AttachmentTable.tsx:148 msgid "File could not be uploaded" msgstr "文件无法上传。" -#: src/tables/general/AttachmentTable.tsx:191 +#: src/tables/general/AttachmentTable.tsx:196 msgid "Upload Attachment" msgstr "上传附件" -#: src/tables/general/AttachmentTable.tsx:201 +#: src/tables/general/AttachmentTable.tsx:206 msgid "Edit Attachment" msgstr "编辑附件" -#: src/tables/general/AttachmentTable.tsx:215 +#: src/tables/general/AttachmentTable.tsx:220 msgid "Delete Attachment" msgstr "删除附件" -#: src/tables/general/AttachmentTable.tsx:225 +#: src/tables/general/AttachmentTable.tsx:230 msgid "Is Link" msgstr "是链接" -#: src/tables/general/AttachmentTable.tsx:226 +#: src/tables/general/AttachmentTable.tsx:231 msgid "Show link attachments" msgstr "显示链接附件" -#: src/tables/general/AttachmentTable.tsx:230 +#: src/tables/general/AttachmentTable.tsx:235 msgid "Is File" msgstr "是文件" -#: src/tables/general/AttachmentTable.tsx:231 +#: src/tables/general/AttachmentTable.tsx:236 msgid "Show file attachments" msgstr "显示文件附件" -#: src/tables/general/AttachmentTable.tsx:240 +#: src/tables/general/AttachmentTable.tsx:245 msgid "Add attachment" msgstr "添加附件" -#: src/tables/general/AttachmentTable.tsx:251 -msgid "Add external link" -msgstr "添加外部链接" - #: src/tables/general/AttachmentTable.tsx:254 #~ msgid "Upload attachment" #~ msgstr "Upload attachment" -#: src/tables/general/AttachmentTable.tsx:299 +#: src/tables/general/AttachmentTable.tsx:256 +msgid "Add external link" +msgstr "添加外部链接" + +#: src/tables/general/AttachmentTable.tsx:304 msgid "No attachments found" msgstr "找不到附件。" -#: src/tables/general/AttachmentTable.tsx:337 +#: src/tables/general/AttachmentTable.tsx:343 msgid "Drag attachment file here to upload" msgstr "拖拽附件文件到此处上传" #: src/tables/general/ExtraLineItemTable.tsx:86 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:251 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:60 -#: src/tables/sales/SalesOrderLineItemTable.tsx:196 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:263 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:362 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:72 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:168 +#: src/tables/sales/SalesOrderLineItemTable.tsx:206 +#: src/tables/sales/SalesOrderLineItemTable.tsx:291 msgid "Add Line Item" msgstr "添加行项目" #: src/tables/general/ExtraLineItemTable.tsx:98 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:271 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:72 -#: src/tables/sales/SalesOrderLineItemTable.tsx:214 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:283 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:84 +#: src/tables/sales/SalesOrderLineItemTable.tsx:224 msgid "Edit Line Item" msgstr "编辑行项目" #: src/tables/general/ExtraLineItemTable.tsx:106 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:279 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:80 -#: src/tables/sales/SalesOrderLineItemTable.tsx:222 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:291 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:92 +#: src/tables/sales/SalesOrderLineItemTable.tsx:232 msgid "Delete Line Item" msgstr "删除行项目" -#: src/tables/general/ExtraLineItemTable.tsx:142 +#: src/tables/general/ExtraLineItemTable.tsx:143 msgid "Add Extra Line Item" -msgstr "" +msgstr "添加额外行项目" #: src/tables/machine/MachineListTable.tsx:202 msgid "Machine restarted" msgstr "设备已重启" #: src/tables/machine/MachineListTable.tsx:212 -#: src/tables/machine/MachineListTable.tsx:263 +#: src/tables/machine/MachineListTable.tsx:261 msgid "Edit machine" msgstr "编辑设备" #: src/tables/machine/MachineListTable.tsx:226 -#: src/tables/machine/MachineListTable.tsx:267 +#: src/tables/machine/MachineListTable.tsx:265 msgid "Delete machine" msgstr "删除设备" @@ -6278,51 +7420,50 @@ msgstr "设备已成功删除。" msgid "Are you sure you want to remove the machine \"{0}\"?" msgstr "你确定要删除设备 \"{0}\" 吗?" -#: src/tables/machine/MachineListTable.tsx:255 -#: src/tables/machine/MachineListTable.tsx:432 +#: src/tables/machine/MachineListTable.tsx:254 +#: src/tables/machine/MachineListTable.tsx:442 msgid "Restart required" msgstr "需要重启" -#: src/tables/machine/MachineListTable.tsx:259 +#: src/tables/machine/MachineListTable.tsx:258 msgid "Machine Actions" msgstr "设备操作" -#: src/tables/machine/MachineListTable.tsx:272 +#: src/tables/machine/MachineListTable.tsx:270 msgid "Restart" msgstr "重新启动" -#: src/tables/machine/MachineListTable.tsx:274 +#: src/tables/machine/MachineListTable.tsx:272 msgid "Restart machine" msgstr "重启设备" -#: src/tables/machine/MachineListTable.tsx:276 +#: src/tables/machine/MachineListTable.tsx:274 msgid "manual restart required" msgstr "需要手动重启" -#: src/tables/machine/MachineListTable.tsx:292 -msgid "Machine information" -msgstr "设备信息" +#: src/tables/machine/MachineListTable.tsx:291 +#~ msgid "Machine information" +#~ msgstr "Machine information" -#: src/tables/machine/MachineListTable.tsx:303 -#: src/tables/machine/MachineListTable.tsx:599 +#: src/tables/machine/MachineListTable.tsx:292 +msgid "Machine Information" +msgstr "" + +#: src/tables/machine/MachineListTable.tsx:302 +#: src/tables/machine/MachineListTable.tsx:610 msgid "Machine Type" msgstr "设备类型" -#: src/tables/machine/MachineListTable.tsx:316 +#: src/tables/machine/MachineListTable.tsx:315 msgid "Machine Driver" msgstr "设备驱动程序" -#: src/tables/machine/MachineListTable.tsx:329 +#: src/tables/machine/MachineListTable.tsx:330 msgid "Initialized" msgstr "已初始化" -#: src/tables/machine/MachineListTable.tsx:350 -#: src/tables/machine/MachineTypeTable.tsx:261 -msgid "Errors" -msgstr "错误" - -#: src/tables/machine/MachineListTable.tsx:358 -#: src/tables/machine/MachineTypeTable.tsx:269 +#: src/tables/machine/MachineListTable.tsx:359 +#: src/tables/machine/MachineTypeTable.tsx:290 msgid "No errors reported" msgstr "未报告错误" @@ -6330,7 +7471,7 @@ msgstr "未报告错误" msgid "Machine Settings" msgstr "设备设置" -#: src/tables/machine/MachineListTable.tsx:389 +#: src/tables/machine/MachineListTable.tsx:394 msgid "Driver Settings" msgstr "驱动设置" @@ -6338,92 +7479,115 @@ msgstr "驱动设置" #~ msgid "Create machine" #~ msgstr "Create machine" -#: src/tables/machine/MachineListTable.tsx:506 +#: src/tables/machine/MachineListTable.tsx:516 +#: src/tables/machine/MachineListTable.tsx:558 msgid "Add machine" msgstr "添加设备" #: src/tables/machine/MachineListTable.tsx:561 -msgid "Machine detail" -msgstr "设备详情" +#~ msgid "Machine detail" +#~ msgstr "Machine detail" -#: src/tables/machine/MachineListTable.tsx:608 +#: src/tables/machine/MachineListTable.tsx:572 +msgid "Machine Detail" +msgstr "" + +#: src/tables/machine/MachineListTable.tsx:619 msgid "Driver" msgstr "驱动" -#: src/tables/machine/MachineTypeTable.tsx:73 +#: src/tables/machine/MachineTypeTable.tsx:78 msgid "Builtin driver" msgstr "内置驱动" -#: src/tables/machine/MachineTypeTable.tsx:89 +#: src/tables/machine/MachineTypeTable.tsx:96 +msgid "Not Found" +msgstr "" + +#: src/tables/machine/MachineTypeTable.tsx:99 msgid "Machine type not found." msgstr "找不到设备类型。" -#: src/tables/machine/MachineTypeTable.tsx:97 -msgid "Machine type information" -msgstr "设备类型信息" +#: src/tables/machine/MachineTypeTable.tsx:99 +#~ msgid "Machine type information" +#~ msgstr "Machine type information" -#: src/tables/machine/MachineTypeTable.tsx:110 -#: src/tables/machine/MachineTypeTable.tsx:217 +#: src/tables/machine/MachineTypeTable.tsx:109 +msgid "Machine Type Information" +msgstr "" + +#: src/tables/machine/MachineTypeTable.tsx:124 +#: src/tables/machine/MachineTypeTable.tsx:238 msgid "Slug" msgstr "别名" -#: src/tables/machine/MachineTypeTable.tsx:118 -#: src/tables/machine/MachineTypeTable.tsx:238 +#: src/tables/machine/MachineTypeTable.tsx:135 +#: src/tables/machine/MachineTypeTable.tsx:259 msgid "Provider plugin" msgstr "供应商插件" -#: src/tables/machine/MachineTypeTable.tsx:130 -#: src/tables/machine/MachineTypeTable.tsx:250 +#: src/tables/machine/MachineTypeTable.tsx:147 +#: src/tables/machine/MachineTypeTable.tsx:271 msgid "Provider file" msgstr "供应商文件" -#: src/tables/machine/MachineTypeTable.tsx:135 -#: src/tables/machine/MachineTypeTable.tsx:255 -#: src/tables/plugin/PluginListTable.tsx:180 -#: src/tables/plugin/PluginListTable.tsx:568 -msgid "Builtin" -msgstr "内置" +#: src/tables/machine/MachineTypeTable.tsx:148 +#~ msgid "Available drivers" +#~ msgstr "Available drivers" -#: src/tables/machine/MachineTypeTable.tsx:146 -msgid "Available drivers" -msgstr "可用驱动程序" +#: src/tables/machine/MachineTypeTable.tsx:162 +msgid "Available Drivers" +msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:196 +#: src/tables/machine/MachineTypeTable.tsx:217 msgid "Machine driver not found." msgstr "未找到设备驱动程序。" -#: src/tables/machine/MachineTypeTable.tsx:204 +#: src/tables/machine/MachineTypeTable.tsx:225 msgid "Machine driver information" msgstr "设备驱动信息" -#: src/tables/machine/MachineTypeTable.tsx:224 +#: src/tables/machine/MachineTypeTable.tsx:245 msgid "Machine type" msgstr "设备类型" -#: src/tables/machine/MachineTypeTable.tsx:327 +#: src/tables/machine/MachineTypeTable.tsx:338 +#~ msgid "Machine type detail" +#~ msgstr "Machine type detail" + +#: src/tables/machine/MachineTypeTable.tsx:348 msgid "Builtin type" msgstr "内置类型" -#: src/tables/machine/MachineTypeTable.tsx:336 -msgid "Machine type detail" -msgstr "设备类型详情" +#: src/tables/machine/MachineTypeTable.tsx:348 +#~ msgid "Machine driver detail" +#~ msgstr "Machine driver detail" -#: src/tables/machine/MachineTypeTable.tsx:346 -msgid "Machine driver detail" -msgstr "设备驱动详情" +#: src/tables/machine/MachineTypeTable.tsx:357 +msgid "Machine Type Detail" +msgstr "" + +#: src/tables/machine/MachineTypeTable.tsx:367 +msgid "Machine Driver Detail" +msgstr "" #: src/tables/notifications/NotificationsTable.tsx:26 msgid "Age" msgstr "寿命" +#: src/tables/notifications/NotificationsTable.tsx:36 +msgid "Notification" +msgstr "通知" + #: src/tables/notifications/NotificationsTable.tsx:40 #: src/tables/plugin/PluginErrorTable.tsx:37 +#: src/tables/settings/ErrorTable.tsx:50 msgid "Message" msgstr "信息" #: src/tables/part/ParametricPartTable.tsx:74 msgid "Click to edit" -msgstr "" +msgstr "点击以编辑" #: src/tables/part/ParametricPartTable.tsx:82 #~ msgid "Edit parameter" @@ -6451,33 +7615,32 @@ msgstr "显示锁定的零件" msgid "Show assembly parts" msgstr "显示已装配的零件" -#: src/tables/part/PartCategoryTable.tsx:68 +#: src/tables/part/PartCategoryTable.tsx:48 +msgid "You are subscribed to notifications for this category" +msgstr "您已订阅此类别的通知" + +#: src/tables/part/PartCategoryTable.tsx:80 #: src/tables/part/PartTable.tsx:196 msgid "Include Subcategories" msgstr "包含子类别" -#: src/tables/part/PartCategoryTable.tsx:69 +#: src/tables/part/PartCategoryTable.tsx:81 msgid "Include subcategories in results" msgstr "在结果中包含子类别" -#: src/tables/part/PartCategoryTable.tsx:74 +#: src/tables/part/PartCategoryTable.tsx:86 msgid "Show structural categories" msgstr "显示结构性类别" -#: src/tables/part/PartCategoryTable.tsx:78 -#: src/tables/part/PartTable.tsx:294 -msgid "Subscribed" -msgstr "已订阅" - -#: src/tables/part/PartCategoryTable.tsx:79 +#: src/tables/part/PartCategoryTable.tsx:91 msgid "Show categories to which the user is subscribed" msgstr "显示用户订阅的类别" -#: src/tables/part/PartCategoryTable.tsx:86 +#: src/tables/part/PartCategoryTable.tsx:100 msgid "New Part Category" msgstr "新建零件类别" -#: src/tables/part/PartCategoryTable.tsx:112 +#: src/tables/part/PartCategoryTable.tsx:129 msgid "Add Part Category" msgstr "增加零件类别" @@ -6523,11 +7686,6 @@ msgstr "添加参数" msgid "Part parameters cannot be edited, as the part is locked" msgstr "零件参数无法编辑,因为零件已锁定" -#: src/tables/part/PartParameterTable.tsx:212 -#: src/tables/stock/StockItemTable.tsx:335 -msgid "Include Variants" -msgstr "包含变体" - #: src/tables/part/PartParameterTemplateTable.tsx:31 msgid "Checkbox" msgstr "勾选框" @@ -6554,6 +7712,7 @@ msgid "Show templates with units" msgstr "显示有单位的模板" #: src/tables/part/PartParameterTemplateTable.tsx:85 +#: src/tables/part/PartParameterTemplateTable.tsx:141 msgid "Add Parameter Template" msgstr "添加参数模板" @@ -6566,23 +7725,19 @@ msgid "Delete Parameter Template" msgstr "删除零件参数模板" #: src/tables/part/PartParameterTemplateTable.tsx:141 -msgid "Add parameter template" -msgstr "添加参数模板" +#~ msgid "Add parameter template" +#~ msgstr "Add parameter template" -#: src/tables/part/PartPurchaseOrdersTable.tsx:77 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:162 +#: src/tables/part/PartPurchaseOrdersTable.tsx:78 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:168 msgid "Total Quantity" msgstr "总数量" -#: src/tables/part/PartPurchaseOrdersTable.tsx:115 -msgid "Pending" -msgstr "待定" - -#: src/tables/part/PartPurchaseOrdersTable.tsx:116 +#: src/tables/part/PartPurchaseOrdersTable.tsx:122 msgid "Show pending orders" msgstr "显示待定的订单" -#: src/tables/part/PartPurchaseOrdersTable.tsx:121 +#: src/tables/part/PartPurchaseOrdersTable.tsx:127 msgid "Show received items" msgstr "显示已收到的条目" @@ -6612,7 +7767,7 @@ msgstr "按组件属性筛选" #: src/tables/part/PartTable.tsx:209 msgid "Filter by testable attribute" -msgstr "" +msgstr "按可跟踪属性筛选" #: src/tables/part/PartTable.tsx:215 msgid "Filter by trackable attribute" @@ -6728,22 +7883,13 @@ msgstr "模版详情" msgid "Results" msgstr "结果" -#: src/tables/part/PartTestTemplateTable.tsx:76 -msgid "No Results" -msgstr "无结果" - -#: src/tables/part/PartTestTemplateTable.tsx:106 -#: src/tables/stock/StockItemTestResultTable.tsx:365 -msgid "Required" -msgstr "必填" - #: src/tables/part/PartTestTemplateTable.tsx:107 msgid "Show required tests" msgstr "显示必选测试" #: src/tables/part/PartTestTemplateTable.tsx:111 -#: src/tables/settings/TemplateTable.tsx:167 -#: src/tables/settings/TemplateTable.tsx:283 +#: src/tables/settings/TemplateTable.tsx:247 +#: src/tables/settings/TemplateTable.tsx:363 msgid "Enabled" msgstr "已启用" @@ -6784,7 +7930,7 @@ msgid "Show tests which have recorded results" msgstr "显示已记录结果的测试" #: src/tables/part/PartTestTemplateTable.tsx:154 -#: src/tables/part/PartTestTemplateTable.tsx:237 +#: src/tables/part/PartTestTemplateTable.tsx:238 msgid "Add Test Template" msgstr "添加测试模板" @@ -6808,7 +7954,7 @@ msgstr "任何与此模板相关的测试结果将被删除" msgid "View Parent Part" msgstr "查看父部分" -#: src/tables/part/PartTestTemplateTable.tsx:257 +#: src/tables/part/PartTestTemplateTable.tsx:258 msgid "Part templates cannot be edited, as the part is locked" msgstr "模板参数无法编辑,因为组件已锁定" @@ -6836,41 +7982,58 @@ msgstr "显示虚拟变体" msgid "Show trackable variants" msgstr "显示可跟踪变体" -#: src/tables/part/RelatedPartTable.tsx:84 +#: src/tables/part/RelatedPartTable.tsx:86 +#: src/tables/part/RelatedPartTable.tsx:109 msgid "Add Related Part" msgstr "添加关联零件" -#: src/tables/part/RelatedPartTable.tsx:99 +#: src/tables/part/RelatedPartTable.tsx:101 msgid "Delete Related Part" msgstr "删除关联零件" -#: src/tables/part/RelatedPartTable.tsx:106 -msgid "Add related part" -msgstr "添加关联零件" +#: src/tables/part/RelatedPartTable.tsx:109 +#~ msgid "Add related part" +#~ msgstr "Add related part" #: src/tables/plugin/PluginErrorTable.tsx:29 msgid "Stage" msgstr "阶段" +#: src/tables/plugin/PluginListTable.tsx:42 +msgid "Plugin is active" +msgstr "此插件已激活" + +#: src/tables/plugin/PluginListTable.tsx:48 +msgid "Plugin is inactive" +msgstr "插件未激活" + +#: src/tables/plugin/PluginListTable.tsx:55 +msgid "Plugin is not installed" +msgstr "插件未安装" + +#: src/tables/plugin/PluginListTable.tsx:76 +msgid "Plugin" +msgstr "插件" + #: src/tables/plugin/PluginListTable.tsx:95 -msgid "Plugin with key {pluginKey} not found" -msgstr "未找到带有密钥 {pluginKey} 的插件" +#~ msgid "Plugin with key {pluginKey} not found" +#~ msgstr "Plugin with key {pluginKey} not found" #: src/tables/plugin/PluginListTable.tsx:97 -msgid "An error occurred while fetching plugin details" -msgstr "获取插件详细信息时出错" +#~ msgid "An error occurred while fetching plugin details" +#~ msgstr "An error occurred while fetching plugin details" + +#: src/tables/plugin/PluginListTable.tsx:109 +msgid "Description not available" +msgstr "描述不可用." #: src/tables/plugin/PluginListTable.tsx:113 #~ msgid "Plugin with id {id} not found" #~ msgstr "Plugin with id {id} not found" #: src/tables/plugin/PluginListTable.tsx:122 -msgid "Plugin information" -msgstr "插件信息" - -#: src/tables/plugin/PluginListTable.tsx:134 -msgid "Author" -msgstr "作者" +#~ msgid "Plugin information" +#~ msgstr "Plugin information" #: src/tables/plugin/PluginListTable.tsx:134 #~ msgid "Plugin Actions" @@ -6881,79 +8044,124 @@ msgstr "作者" #~ msgid "Edit plugin" #~ msgstr "Edit plugin" +#: src/tables/plugin/PluginListTable.tsx:144 +msgid "Confirm plugin activation" +msgstr "确认插件激活" + +#: src/tables/plugin/PluginListTable.tsx:145 +msgid "Confirm plugin deactivation" +msgstr "确认插件停用" + +#: src/tables/plugin/PluginListTable.tsx:150 +msgid "The selected plugin will be activated" +msgstr "所选插件将被激活" + +#: src/tables/plugin/PluginListTable.tsx:151 +msgid "The selected plugin will be deactivated" +msgstr "所选插件将被停用" + #: src/tables/plugin/PluginListTable.tsx:152 #: src/tables/plugin/PluginListTable.tsx:153 #~ msgid "Reload" #~ msgstr "Reload" -#: src/tables/plugin/PluginListTable.tsx:154 -msgid "Plugin is not active" -msgstr "插件未激活" - #: src/tables/plugin/PluginListTable.tsx:163 -msgid "Package information" -msgstr "软件包信息" +#~ msgid "Package information" +#~ msgstr "Package information" #: src/tables/plugin/PluginListTable.tsx:169 -msgid "Package Name" -msgstr "软件包名" +msgid "Deactivate" +msgstr "停用" -#: src/tables/plugin/PluginListTable.tsx:175 -msgid "Installation Path" -msgstr "安装路径" +#: src/tables/plugin/PluginListTable.tsx:183 +msgid "Activate" +msgstr "激活" -#: src/tables/plugin/PluginListTable.tsx:185 -msgid "Package" -msgstr "软件包" +#: src/tables/plugin/PluginListTable.tsx:184 +msgid "Activate selected plugin" +msgstr "激活所选插件" + +#: src/tables/plugin/PluginListTable.tsx:196 +msgid "Update selected plugin" +msgstr "更新所选插件" #: src/tables/plugin/PluginListTable.tsx:197 -msgid "Plugin settings" -msgstr "插件设置" +#~ msgid "Plugin settings" +#~ msgstr "Plugin settings" #: src/tables/plugin/PluginListTable.tsx:214 -msgid "Plugin is active" -msgstr "此插件已激活" +#: src/tables/stock/InstalledItemsTable.tsx:107 +msgid "Uninstall" +msgstr "卸载" -#: src/tables/plugin/PluginListTable.tsx:220 -msgid "Plugin is inactive" -msgstr "插件未激活" +#: src/tables/plugin/PluginListTable.tsx:215 +msgid "Uninstall selected plugin" +msgstr "卸载所选插件" -#: src/tables/plugin/PluginListTable.tsx:227 -msgid "Plugin is not installed" -msgstr "插件未安装" +#: src/tables/plugin/PluginListTable.tsx:233 +msgid "Delete selected plugin configuration" +msgstr "删除选中的插件配置" -#: src/tables/plugin/PluginListTable.tsx:253 -msgid "Plugin" -msgstr "插件" - -#: src/tables/plugin/PluginListTable.tsx:287 -msgid "Description not available" -msgstr "描述不可用." - -#: src/tables/plugin/PluginListTable.tsx:319 -msgid "Confirm plugin activation" -msgstr "确认插件激活" - -#: src/tables/plugin/PluginListTable.tsx:320 -msgid "Confirm plugin deactivation" -msgstr "确认插件停用" - -#: src/tables/plugin/PluginListTable.tsx:325 -msgid "The selected plugin will be activated" -msgstr "所选插件将被激活" - -#: src/tables/plugin/PluginListTable.tsx:326 -msgid "The selected plugin will be deactivated" -msgstr "所选插件将被停用" - -#: src/tables/plugin/PluginListTable.tsx:334 +#: src/tables/plugin/PluginListTable.tsx:249 msgid "Activate Plugin" msgstr "激活插件" +#: src/tables/plugin/PluginListTable.tsx:270 +msgid "Install plugin" +msgstr "安装插件" + +#: src/tables/plugin/PluginListTable.tsx:283 +msgid "Install" +msgstr "安装" + +#: src/tables/plugin/PluginListTable.tsx:284 +msgid "Plugin installed successfully" +msgstr "插件安装成功" + +#: src/tables/plugin/PluginListTable.tsx:289 +msgid "Uninstall Plugin" +msgstr "卸载插件" + +#: src/tables/plugin/PluginListTable.tsx:301 +msgid "Confirm plugin uninstall" +msgstr "确认插件卸载" + +#: src/tables/plugin/PluginListTable.tsx:304 +msgid "The selected plugin will be uninstalled." +msgstr "所选插件将被卸载。" + +#: src/tables/plugin/PluginListTable.tsx:308 +#~ msgid "This action cannot be undone." +#~ msgstr "This action cannot be undone." + +#: src/tables/plugin/PluginListTable.tsx:309 +msgid "Plugin uninstalled successfully" +msgstr "插件卸载成功" + +#: src/tables/plugin/PluginListTable.tsx:317 +msgid "Delete Plugin" +msgstr "刪除插件" + +#: src/tables/plugin/PluginListTable.tsx:318 +msgid "Deleting this plugin configuration will remove all associated settings and data. Are you sure you want to delete this plugin?" +msgstr "删除此插件配置将删除所有相关的设置和数据。您确定要删除此插件吗?" + +#: src/tables/plugin/PluginListTable.tsx:331 +msgid "Plugins reloaded" +msgstr "插件已重载" + +#: src/tables/plugin/PluginListTable.tsx:332 +msgid "Plugins were reloaded successfully" +msgstr "插件重载成功" + #: src/tables/plugin/PluginListTable.tsx:338 #~ msgid "Deactivate Plugin" #~ msgstr "Deactivate Plugin" +#: src/tables/plugin/PluginListTable.tsx:350 +msgid "Reload Plugins" +msgstr "重载插件" + #: src/tables/plugin/PluginListTable.tsx:354 #~ msgid "The following plugin will be activated" #~ msgstr "The following plugin will be activated" @@ -6962,17 +8170,17 @@ msgstr "激活插件" #~ msgid "The following plugin will be deactivated" #~ msgstr "The following plugin will be deactivated" -#: src/tables/plugin/PluginListTable.tsx:362 -msgid "Deactivate" -msgstr "停用" +#: src/tables/plugin/PluginListTable.tsx:357 +msgid "Install Plugin" +msgstr "安装插件" #: src/tables/plugin/PluginListTable.tsx:366 #~ msgid "Confirm" #~ msgstr "Confirm" -#: src/tables/plugin/PluginListTable.tsx:373 -msgid "Activate" -msgstr "激活" +#: src/tables/plugin/PluginListTable.tsx:374 +msgid "Plugin Detail" +msgstr "插件详情" #: src/tables/plugin/PluginListTable.tsx:376 #~ msgid "Activating plugin" @@ -6998,76 +8206,12 @@ msgstr "激活" #~ msgid "Error updating plugin" #~ msgstr "Error updating plugin" -#: src/tables/plugin/PluginListTable.tsx:406 -msgid "Uninstall" -msgstr "卸载" - -#: src/tables/plugin/PluginListTable.tsx:438 -msgid "Install plugin" -msgstr "安装插件" - -#: src/tables/plugin/PluginListTable.tsx:451 -msgid "Install" -msgstr "安装" - -#: src/tables/plugin/PluginListTable.tsx:452 -msgid "Plugin installed successfully" -msgstr "插件安装成功" - -#: src/tables/plugin/PluginListTable.tsx:457 -msgid "Uninstall Plugin" -msgstr "卸载插件" - -#: src/tables/plugin/PluginListTable.tsx:469 -msgid "Confirm plugin uninstall" -msgstr "确认插件卸载" - -#: src/tables/plugin/PluginListTable.tsx:472 -msgid "The selected plugin will be uninstalled." -msgstr "所选插件将被卸载。" - -#: src/tables/plugin/PluginListTable.tsx:473 -msgid "This action cannot be undone." -msgstr "此操作无法撤销。" - -#: src/tables/plugin/PluginListTable.tsx:477 -msgid "Plugin uninstalled successfully" -msgstr "插件卸载成功" - -#: src/tables/plugin/PluginListTable.tsx:484 -msgid "Delete Plugin" -msgstr "刪除插件" - -#: src/tables/plugin/PluginListTable.tsx:485 -msgid "Deleting this plugin configuration will remove all associated settings and data. Are you sure you want to delete this plugin?" -msgstr "删除此插件配置将删除所有相关的设置和数据。您确定要删除此插件吗?" - -#: src/tables/plugin/PluginListTable.tsx:498 -msgid "Plugins reloaded" -msgstr "插件已重载" - -#: src/tables/plugin/PluginListTable.tsx:499 -msgid "Plugins were reloaded successfully" -msgstr "插件重载成功" - -#: src/tables/plugin/PluginListTable.tsx:515 -msgid "Reload Plugins" -msgstr "重载插件" - -#: src/tables/plugin/PluginListTable.tsx:524 -msgid "Install Plugin" -msgstr "安装插件" - -#: src/tables/plugin/PluginListTable.tsx:544 -msgid "Plugin Detail" -msgstr "插件详情" - -#: src/tables/plugin/PluginListTable.tsx:573 +#: src/tables/plugin/PluginListTable.tsx:411 msgid "Sample" msgstr "样本" -#: src/tables/plugin/PluginListTable.tsx:578 -#: src/tables/stock/StockItemTable.tsx:340 +#: src/tables/plugin/PluginListTable.tsx:416 +#: src/tables/stock/StockItemTable.tsx:344 msgid "Installed" msgstr "已安装" @@ -7116,82 +8260,78 @@ msgstr "删除参数" #~ msgid "Are you sure you want to remove this manufacturer part?" #~ msgstr "Are you sure you want to remove this manufacturer part?" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:102 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:339 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:103 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:356 msgid "Import Line Items" msgstr "导入行项目" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:135 -msgid "Part Description" -msgstr "零件描述" - -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:201 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:207 msgid "Supplier Code" msgstr "供应商代码" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:208 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:214 msgid "Supplier Link" msgstr "供应商链接" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:215 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:220 msgid "Manufacturer Code" msgstr "制造商编号" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:229 -msgid "Destination" -msgstr "目的地" +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:248 +msgid "Show line items which have been received" +msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:300 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:316 msgid "Receive line item" msgstr "接收这行项目" #: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:344 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:142 -#: src/tables/sales/SalesOrderLineItemTable.tsx:240 -msgid "Add line item" -msgstr "添加行项目" +#: src/tables/sales/ReturnOrderLineItemTable.tsx:160 +#: src/tables/sales/SalesOrderLineItemTable.tsx:258 +#~ msgid "Add line item" +#~ msgstr "Add line item" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:354 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:373 msgid "Receive items" msgstr "收到项目" -#: src/tables/purchasing/SupplierPartTable.tsx:93 +#: src/tables/purchasing/SupplierPartTable.tsx:95 msgid "MPN" msgstr "制造商零件编号 (MPN)" -#: src/tables/purchasing/SupplierPartTable.tsx:122 +#: src/tables/purchasing/SupplierPartTable.tsx:124 msgid "Base units" msgstr "基础单位" -#: src/tables/purchasing/SupplierPartTable.tsx:170 +#: src/tables/purchasing/SupplierPartTable.tsx:172 msgid "Supplier part created" msgstr "供应商零件已更新" -#: src/tables/purchasing/SupplierPartTable.tsx:176 +#: src/tables/purchasing/SupplierPartTable.tsx:179 msgid "Add supplier part" msgstr "添加供应商零件" -#: src/tables/purchasing/SupplierPartTable.tsx:188 +#: src/tables/purchasing/SupplierPartTable.tsx:191 msgid "Show active supplier parts" msgstr "显示活动供应商零件" -#: src/tables/purchasing/SupplierPartTable.tsx:192 -msgid "Active Part" -msgstr "激活的零件" - -#: src/tables/purchasing/SupplierPartTable.tsx:193 -msgid "Show active internal parts" -msgstr "显示活动内部零件" - #: src/tables/purchasing/SupplierPartTable.tsx:193 #~ msgid "Supplier part updated" #~ msgstr "Supplier part updated" -#: src/tables/purchasing/SupplierPartTable.tsx:197 +#: src/tables/purchasing/SupplierPartTable.tsx:195 +msgid "Active Part" +msgstr "激活的零件" + +#: src/tables/purchasing/SupplierPartTable.tsx:196 +msgid "Show active internal parts" +msgstr "显示活动内部零件" + +#: src/tables/purchasing/SupplierPartTable.tsx:200 msgid "Active Supplier" msgstr "活跃的供应商" -#: src/tables/purchasing/SupplierPartTable.tsx:198 +#: src/tables/purchasing/SupplierPartTable.tsx:201 msgid "Show active suppliers" msgstr "显示活跃供应商" @@ -7203,98 +8343,186 @@ msgstr "显示活跃供应商" #~ msgid "Are you sure you want to remove this supplier part?" #~ msgstr "Are you sure you want to remove this supplier part?" -#: src/tables/sales/ReturnOrderLineItemTable.tsx:114 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:139 msgid "Received Date" msgstr "接收日期" -#: src/tables/sales/ReturnOrderLineItemTable.tsx:128 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:153 msgid "Show items which have been received" msgstr "显示已收到的项目" -#: src/tables/sales/ReturnOrderLineItemTable.tsx:133 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:158 msgid "Filter by line item status" msgstr "按行项目状态筛选" -#: src/tables/sales/ReturnOrderLineItemTable.tsx:158 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:176 +msgid "Receive selected items" +msgstr "接收选中项目" + +#: src/tables/sales/ReturnOrderLineItemTable.tsx:205 msgid "Receive Item" msgstr "接收物品" -#: src/tables/sales/SalesOrderLineItemTable.tsx:262 -msgid "Allocate stock" -msgstr "分配库存" +#: src/tables/sales/SalesOrderAllocationTable.tsx:60 +msgid "Show outstanding allocations" +msgstr "显示未完成的分配" -#: src/tables/sales/SalesOrderLineItemTable.tsx:272 +#: src/tables/sales/SalesOrderAllocationTable.tsx:168 +#: src/tables/sales/SalesOrderAllocationTable.tsx:190 +msgid "Edit Allocation" +msgstr "编辑分配" + +#: src/tables/sales/SalesOrderAllocationTable.tsx:175 +#: src/tables/sales/SalesOrderAllocationTable.tsx:197 +msgid "Delete Allocation" +msgstr "删除分配" + +#: src/tables/sales/SalesOrderLineItemTable.tsx:244 +msgid "Allocate Serial Numbers" +msgstr "分配序列号" + +#: src/tables/sales/SalesOrderLineItemTable.tsx:277 +msgid "Show lines which are fully allocated" +msgstr "" + +#: src/tables/sales/SalesOrderLineItemTable.tsx:280 +#~ msgid "Allocate stock" +#~ msgstr "Allocate stock" + +#: src/tables/sales/SalesOrderLineItemTable.tsx:282 +msgid "Show lines which are completed" +msgstr "" + +#: src/tables/sales/SalesOrderLineItemTable.tsx:291 +#~ msgid "Allocate Serials" +#~ msgstr "Allocate Serials" + +#: src/tables/sales/SalesOrderLineItemTable.tsx:340 +msgid "Allocate serials" +msgstr "分配序列号" + +#: src/tables/sales/SalesOrderLineItemTable.tsx:356 msgid "Build stock" msgstr "生产库存" -#: src/tables/sales/SalesOrderLineItemTable.tsx:289 -#: src/tables/stock/StockItemTable.tsx:507 +#: src/tables/sales/SalesOrderLineItemTable.tsx:373 +#: src/tables/stock/StockItemTable.tsx:512 msgid "Order stock" msgstr "订单库存" -#: src/tables/sales/SalesOrderShipmentTable.tsx:40 +#: src/tables/sales/SalesOrderShipmentTable.tsx:51 +#~ msgid "Delete Shipment" +#~ msgstr "Delete Shipment" + +#: src/tables/sales/SalesOrderShipmentTable.tsx:57 msgid "Create Shipment" msgstr "创建配送" -#: src/tables/sales/SalesOrderShipmentTable.tsx:50 -msgid "Delete Shipment" -msgstr "删除配送" - -#: src/tables/sales/SalesOrderShipmentTable.tsx:58 -msgid "Edit Shipment" -msgstr "编辑配送" - -#: src/tables/sales/SalesOrderShipmentTable.tsx:66 -msgid "Shipment Reference" -msgstr "配送参考" - -#: src/tables/sales/SalesOrderShipmentTable.tsx:71 +#: src/tables/sales/SalesOrderShipmentTable.tsx:104 msgid "Items" msgstr "项目" -#: src/tables/sales/SalesOrderShipmentTable.tsx:83 -msgid "Delivery Date" -msgstr "送达日期" +#: src/tables/sales/SalesOrderShipmentTable.tsx:139 +msgid "View Shipment" +msgstr "查看发货" -#: src/tables/sales/SalesOrderShipmentTable.tsx:107 -msgid "Complete Shipment" -msgstr "完成配送" +#: src/tables/sales/SalesOrderShipmentTable.tsx:161 +msgid "Edit shipment" +msgstr "编辑配送" -#: src/tables/sales/SalesOrderShipmentTable.tsx:133 +#: src/tables/sales/SalesOrderShipmentTable.tsx:169 +msgid "Cancel shipment" +msgstr "取消配送" + +#: src/tables/sales/SalesOrderShipmentTable.tsx:184 msgid "Add shipment" msgstr "添加配送" -#: src/tables/sales/SalesOrderShipmentTable.tsx:146 -msgid "Shipped" -msgstr "已配送" - -#: src/tables/sales/SalesOrderShipmentTable.tsx:147 +#: src/tables/sales/SalesOrderShipmentTable.tsx:198 msgid "Show shipments which have been shipped" msgstr "显示已发货的货物" -#: src/tables/sales/SalesOrderShipmentTable.tsx:151 -msgid "Delivered" -msgstr "已送达" - -#: src/tables/sales/SalesOrderShipmentTable.tsx:152 +#: src/tables/sales/SalesOrderShipmentTable.tsx:203 msgid "Show shipments which have been delivered" msgstr "显示已送达的货物" -#: src/tables/settings/CurrencyTable.tsx:28 -msgid "Rate" -msgstr "汇率" +#: src/tables/settings/BarcodeScanHistoryTable.tsx:61 +msgid "Barcode Information" +msgstr "条形码信息" -#: src/tables/settings/CurrencyTable.tsx:40 -msgid "Exchange rates updated" -msgstr "汇率已更新" +#: src/tables/settings/BarcodeScanHistoryTable.tsx:76 +#: src/tables/settings/ErrorTable.tsx:59 +msgid "Timestamp" +msgstr "时间戳" -#: src/tables/settings/CurrencyTable.tsx:46 -msgid "Exchange rate update error" -msgstr "汇率更新错误" +#: src/tables/settings/BarcodeScanHistoryTable.tsx:86 +msgid "Endpoint" +msgstr "端点" -#: src/tables/settings/CurrencyTable.tsx:57 -msgid "Refresh currency exchange rates" -msgstr "刷新货币汇率" +#: src/tables/settings/BarcodeScanHistoryTable.tsx:90 +#: src/tables/settings/BarcodeScanHistoryTable.tsx:217 +#: src/tables/stock/StockItemTestResultTable.tsx:174 +msgid "Result" +msgstr "结果" + +#: src/tables/settings/BarcodeScanHistoryTable.tsx:98 +msgid "Context" +msgstr "内容" + +#: src/tables/settings/BarcodeScanHistoryTable.tsx:119 +msgid "Response" +msgstr "响应" + +#: src/tables/settings/BarcodeScanHistoryTable.tsx:213 +#: src/tables/settings/ImportSessionTable.tsx:121 +#: src/tables/stock/StockTrackingTable.tsx:183 +msgid "Filter by user" +msgstr "按用户筛选" + +#: src/tables/settings/BarcodeScanHistoryTable.tsx:218 +msgid "Filter by result" +msgstr "按结果过滤" + +#: src/tables/settings/BarcodeScanHistoryTable.tsx:232 +msgid "Delete Barcode Scan Record" +msgstr "删除条形码扫描记录" + +#: src/tables/settings/BarcodeScanHistoryTable.tsx:258 +msgid "Barcode Scan Details" +msgstr "条码扫描详情" + +#: src/tables/settings/BarcodeScanHistoryTable.tsx:268 +msgid "Logging Disabled" +msgstr "日志已禁用" + +#: src/tables/settings/BarcodeScanHistoryTable.tsx:270 +msgid "Barcode logging is not enabled" +msgstr "条码日志未启用" + +#: src/tables/settings/CustomStateTable.tsx:36 +msgid "Display Name" +msgstr "显示名称" + +#: src/tables/settings/CustomStateTable.tsx:52 +msgid "Model" +msgstr "型号" + +#: src/tables/settings/CustomStateTable.tsx:65 +#: src/tables/settings/CustomStateTable.tsx:115 +msgid "Add State" +msgstr "添加状态" + +#: src/tables/settings/CustomStateTable.tsx:77 +msgid "Edit State" +msgstr "编辑状态" + +#: src/tables/settings/CustomStateTable.tsx:85 +msgid "Delete State" +msgstr "删除状态" + +#: src/tables/settings/CustomStateTable.tsx:115 +#~ msgid "Add state" +#~ msgstr "Add state" #: src/tables/settings/CustomUnitsTable.tsx:50 msgid "Add Custom Unit" @@ -7312,59 +8540,71 @@ msgstr "删除自定义单位" msgid "Add custom unit" msgstr "添加自定义单位" -#: src/tables/settings/ErrorTable.tsx:31 -msgid "When" -msgstr "当" - -#: src/tables/settings/ErrorTable.tsx:41 -msgid "Error Information" -msgstr "错误信息" - #: src/tables/settings/ErrorTable.tsx:51 #~ msgid "Delete error report" #~ msgstr "Delete error report" -#: src/tables/settings/ErrorTable.tsx:53 +#: src/tables/settings/ErrorTable.tsx:67 +msgid "Traceback" +msgstr "Traceback" + +#: src/tables/settings/ErrorTable.tsx:103 +msgid "When" +msgstr "当" + +#: src/tables/settings/ErrorTable.tsx:113 +msgid "Error Information" +msgstr "错误信息" + +#: src/tables/settings/ErrorTable.tsx:123 msgid "Delete Error Report" msgstr "删除错误日志" -#: src/tables/settings/ErrorTable.tsx:55 +#: src/tables/settings/ErrorTable.tsx:125 msgid "Are you sure you want to delete this error report?" msgstr "确定要删除这错误告吗?" -#: src/tables/settings/ErrorTable.tsx:57 +#: src/tables/settings/ErrorTable.tsx:127 msgid "Error report deleted" msgstr "错误报告已删除" -#: src/tables/settings/ErrorTable.tsx:79 -#: src/tables/settings/FailedTasksTable.tsx:59 +#: src/tables/settings/ErrorTable.tsx:146 +#: src/tables/settings/FailedTasksTable.tsx:65 msgid "Error Details" msgstr "错误详情" -#: src/tables/settings/FailedTasksTable.tsx:26 -#: src/tables/settings/PendingTasksTable.tsx:19 +#: src/tables/settings/FailedTasksTable.tsx:32 +#: src/tables/settings/PendingTasksTable.tsx:23 #: src/tables/settings/ScheduledTasksTable.tsx:19 msgid "Task" msgstr "任务" -#: src/tables/settings/FailedTasksTable.tsx:32 -#: src/tables/settings/PendingTasksTable.tsx:24 +#: src/tables/settings/FailedTasksTable.tsx:38 +#: src/tables/settings/PendingTasksTable.tsx:28 msgid "Task ID" msgstr "任务ID" -#: src/tables/settings/FailedTasksTable.tsx:36 -#: src/tables/stock/StockItemTestResultTable.tsx:211 +#: src/tables/settings/FailedTasksTable.tsx:42 +#: src/tables/stock/StockItemTestResultTable.tsx:218 msgid "Started" msgstr "已开始" -#: src/tables/settings/FailedTasksTable.tsx:42 +#: src/tables/settings/FailedTasksTable.tsx:48 msgid "Stopped" msgstr "已停止" -#: src/tables/settings/FailedTasksTable.tsx:48 +#: src/tables/settings/FailedTasksTable.tsx:54 msgid "Attempts" msgstr "尝试次数" +#: src/tables/settings/FailedTasksTable.tsx:92 +msgid "No Information" +msgstr "" + +#: src/tables/settings/FailedTasksTable.tsx:93 +msgid "No error details are available for this task" +msgstr "" + #: src/tables/settings/GroupTable.tsx:90 msgid "Group with id {id} not found" msgstr "未找到 ID 为 {id} 的群组" @@ -7398,42 +8638,34 @@ msgstr "添加群组" msgid "Edit group" msgstr "编辑群组" -#: src/tables/settings/ImportSessionTable.tsx:38 +#: src/tables/settings/ImportSessionTable.tsx:37 msgid "Delete Import Session" msgstr "删除导入的会话" -#: src/tables/settings/ImportSessionTable.tsx:44 +#: src/tables/settings/ImportSessionTable.tsx:43 #: src/tables/settings/ImportSessionTable.tsx:131 msgid "Create Import Session" msgstr "创建导入会话" -#: src/tables/settings/ImportSessionTable.tsx:69 +#: src/tables/settings/ImportSessionTable.tsx:68 msgid "Uploaded" msgstr "已上传" -#: src/tables/settings/ImportSessionTable.tsx:79 -msgid "Imported Rows" -msgstr "导入的行" - -#: src/tables/settings/ImportSessionTable.tsx:109 -#: src/tables/settings/TemplateTable.tsx:289 +#: src/tables/settings/ImportSessionTable.tsx:108 +#: src/tables/settings/TemplateTable.tsx:369 msgid "Model Type" msgstr "型号类型" -#: src/tables/settings/ImportSessionTable.tsx:110 -#: src/tables/settings/TemplateTable.tsx:290 +#: src/tables/settings/ImportSessionTable.tsx:109 +#: src/tables/settings/TemplateTable.tsx:370 msgid "Filter by target model type" msgstr "按目标型号筛选" -#: src/tables/settings/ImportSessionTable.tsx:116 +#: src/tables/settings/ImportSessionTable.tsx:115 msgid "Filter by import session status" msgstr "按导入会话状态筛选" -#: src/tables/settings/ImportSessionTable.tsx:122 -msgid "Filter by user" -msgstr "按用户筛选" - -#: src/tables/settings/PendingTasksTable.tsx:38 +#: src/tables/settings/PendingTasksTable.tsx:42 msgid "Arguments" msgstr "参数" @@ -7461,13 +8693,17 @@ msgstr "上一次运行" msgid "Next Run" msgstr "下一次运行" -#: src/tables/settings/TemplateTable.tsx:85 -msgid "Template not found" -msgstr "找不到模板" +#: src/tables/settings/StocktakeReportTable.tsx:28 +msgid "Report" +msgstr "报告" -#: src/tables/settings/TemplateTable.tsx:87 -msgid "An error occurred while fetching template details" -msgstr "获取插件详细信息时出错" +#: src/tables/settings/StocktakeReportTable.tsx:35 +msgid "Part Count" +msgstr "零件计数" + +#: src/tables/settings/StocktakeReportTable.tsx:58 +msgid "Delete Report" +msgstr "删除报告" #: src/tables/settings/TemplateTable.tsx:120 #~ msgid "{templateTypeTranslation} with id {id} not found" @@ -7481,22 +8717,13 @@ msgstr "获取插件详细信息时出错" #~ msgid "actions" #~ msgstr "actions" -#: src/tables/settings/TemplateTable.tsx:177 -msgid "Modify" -msgstr "修改" +#: src/tables/settings/TemplateTable.tsx:162 +msgid "Template not found" +msgstr "找不到模板" -#: src/tables/settings/TemplateTable.tsx:178 -msgid "Modify template file" -msgstr "报告模板文件" - -#: src/tables/settings/TemplateTable.tsx:234 -#: src/tables/settings/TemplateTable.tsx:302 -msgid "Edit Template" -msgstr "编辑模板" - -#: src/tables/settings/TemplateTable.tsx:242 -msgid "Delete template" -msgstr "删除模板" +#: src/tables/settings/TemplateTable.tsx:164 +msgid "An error occurred while fetching template details" +msgstr "获取插件详细信息时出错" #: src/tables/settings/TemplateTable.tsx:243 #~ msgid "Add new" @@ -7506,103 +8733,137 @@ msgstr "删除模板" #~ msgid "Create new" #~ msgstr "Create new" -#: src/tables/settings/TemplateTable.tsx:248 +#: src/tables/settings/TemplateTable.tsx:257 +msgid "Modify" +msgstr "修改" + +#: src/tables/settings/TemplateTable.tsx:258 +msgid "Modify template file" +msgstr "报告模板文件" + +#: src/tables/settings/TemplateTable.tsx:314 +#: src/tables/settings/TemplateTable.tsx:382 +msgid "Edit Template" +msgstr "编辑模板" + +#: src/tables/settings/TemplateTable.tsx:322 +msgid "Delete template" +msgstr "删除模板" + +#: src/tables/settings/TemplateTable.tsx:328 msgid "Add Template" msgstr "添加模板" -#: src/tables/settings/TemplateTable.tsx:261 +#: src/tables/settings/TemplateTable.tsx:341 msgid "Add template" msgstr "添加模板" -#: src/tables/settings/TemplateTable.tsx:284 +#: src/tables/settings/TemplateTable.tsx:364 msgid "Filter by enabled status" msgstr "按启用状态筛选" -#: src/tables/settings/UserTable.tsx:82 +#: src/tables/settings/UserTable.tsx:81 msgid "User with id {id} not found" msgstr "未找到 ID 为 {id} 的用户" -#: src/tables/settings/UserTable.tsx:84 +#: src/tables/settings/UserTable.tsx:83 msgid "An error occurred while fetching user details" msgstr "获取用户详细信息时出错" -#: src/tables/settings/UserTable.tsx:102 +#: src/tables/settings/UserTable.tsx:101 msgid "Is Active" msgstr "激活" -#: src/tables/settings/UserTable.tsx:103 +#: src/tables/settings/UserTable.tsx:102 msgid "Designates whether this user should be treated as active. Unselect this instead of deleting accounts." msgstr "指定是否将此用户视为激活用户。取消选择此选项将不会删除账户。" -#: src/tables/settings/UserTable.tsx:107 +#: src/tables/settings/UserTable.tsx:106 msgid "Is Staff" msgstr "员工" -#: src/tables/settings/UserTable.tsx:108 +#: src/tables/settings/UserTable.tsx:107 msgid "Designates whether the user can log into the django admin site." msgstr "指定用户是否可以登录 django 管理页面。" -#: src/tables/settings/UserTable.tsx:112 +#: src/tables/settings/UserTable.tsx:111 msgid "Is Superuser" msgstr "超级用户" -#: src/tables/settings/UserTable.tsx:113 +#: src/tables/settings/UserTable.tsx:112 msgid "Designates that this user has all permissions without explicitly assigning them." msgstr "指定该用户拥有所有权限,而无需明确分配。" -#: src/tables/settings/UserTable.tsx:123 +#: src/tables/settings/UserTable.tsx:122 msgid "You cannot edit the rights for the currently logged-in user." msgstr "您不能编辑当前登录用户的权限。" -#: src/tables/settings/UserTable.tsx:154 +#: src/tables/settings/UserTable.tsx:153 msgid "No groups" msgstr "没有群组" -#: src/tables/settings/UserTable.tsx:245 +#: src/tables/settings/UserTable.tsx:244 msgid "Delete user" msgstr "删除用户" -#: src/tables/settings/UserTable.tsx:246 +#: src/tables/settings/UserTable.tsx:245 msgid "User deleted" msgstr "用户已删除" -#: src/tables/settings/UserTable.tsx:248 +#: src/tables/settings/UserTable.tsx:247 msgid "Are you sure you want to delete this user?" msgstr "您确定要删除该用户吗?" -#: src/tables/settings/UserTable.tsx:254 -#: src/tables/settings/UserTable.tsx:272 +#: src/tables/settings/UserTable.tsx:253 +#: src/tables/settings/UserTable.tsx:271 msgid "Add user" msgstr "添加用户" -#: src/tables/settings/UserTable.tsx:262 +#: src/tables/settings/UserTable.tsx:261 msgid "Added user" msgstr "已添加用户" -#: src/tables/settings/UserTable.tsx:285 +#: src/tables/settings/UserTable.tsx:284 msgid "Show active users" msgstr "显示活跃用户" -#: src/tables/settings/UserTable.tsx:289 +#: src/tables/settings/UserTable.tsx:288 msgid "Staff" msgstr "工作人员" -#: src/tables/settings/UserTable.tsx:290 +#: src/tables/settings/UserTable.tsx:289 msgid "Show staff users" msgstr "显示工作人员用户" #: src/tables/settings/UserTable.tsx:294 -msgid "Superuser" -msgstr "超级用户" - -#: src/tables/settings/UserTable.tsx:295 msgid "Show superusers" msgstr "显示超级用户" -#: src/tables/settings/UserTable.tsx:305 +#: src/tables/settings/UserTable.tsx:304 msgid "Edit user" msgstr "编辑用户" +#: src/tables/stock/InstalledItemsTable.tsx:37 +#: src/tables/stock/InstalledItemsTable.tsx:90 +msgid "Install Item" +msgstr "安装项目" + +#: src/tables/stock/InstalledItemsTable.tsx:39 +msgid "Item installed" +msgstr "已安装项目" + +#: src/tables/stock/InstalledItemsTable.tsx:50 +msgid "Uninstall Item" +msgstr "卸载项目" + +#: src/tables/stock/InstalledItemsTable.tsx:52 +msgid "Item uninstalled" +msgstr "已卸载项目" + +#: src/tables/stock/InstalledItemsTable.tsx:108 +msgid "Uninstall stock item" +msgstr "卸载库存项目" + #: src/tables/stock/LocationTypesTable.tsx:39 #: src/tables/stock/LocationTypesTable.tsx:109 msgid "Add Location Type" @@ -7620,276 +8881,272 @@ msgstr "删除位置类型" msgid "Icon" msgstr "图标" -#: src/tables/stock/StockItemTable.tsx:101 +#: src/tables/stock/StockItemTable.tsx:90 msgid "This stock item is in production" msgstr "该库存项正在生产" -#: src/tables/stock/StockItemTable.tsx:110 +#: src/tables/stock/StockItemTable.tsx:97 msgid "This stock item has been assigned to a sales order" msgstr "库存项已分配到销售订单" -#: src/tables/stock/StockItemTable.tsx:119 +#: src/tables/stock/StockItemTable.tsx:104 msgid "This stock item has been assigned to a customer" msgstr "库存项已分配给客户" -#: src/tables/stock/StockItemTable.tsx:128 +#: src/tables/stock/StockItemTable.tsx:111 msgid "This stock item is installed in another stock item" msgstr "此库存项已安装在另一个库存项中" -#: src/tables/stock/StockItemTable.tsx:137 +#: src/tables/stock/StockItemTable.tsx:118 msgid "This stock item has been consumed by a build order" msgstr "此库存项已被生产订单消耗" -#: src/tables/stock/StockItemTable.tsx:146 +#: src/tables/stock/StockItemTable.tsx:125 +msgid "This stock item is unavailable" +msgstr "此库存项不可用" + +#: src/tables/stock/StockItemTable.tsx:134 msgid "This stock item has expired" msgstr "此库存项已过期" -#: src/tables/stock/StockItemTable.tsx:150 +#: src/tables/stock/StockItemTable.tsx:138 msgid "This stock item is stale" msgstr "此库存项是过期项" -#: src/tables/stock/StockItemTable.tsx:161 +#: src/tables/stock/StockItemTable.tsx:150 msgid "This stock item is fully allocated" msgstr "此库存项已完全分配" -#: src/tables/stock/StockItemTable.tsx:168 +#: src/tables/stock/StockItemTable.tsx:157 msgid "This stock item is partially allocated" msgstr "此库存项已被部分分配" -#: src/tables/stock/StockItemTable.tsx:196 +#: src/tables/stock/StockItemTable.tsx:185 msgid "This stock item has been depleted" msgstr "库存项已耗尽" -#: src/tables/stock/StockItemTable.tsx:232 +#: src/tables/stock/StockItemTable.tsx:280 msgid "Stocktake Date" msgstr "盘点日期" -#: src/tables/stock/StockItemTable.tsx:236 -msgid "Expiry Date" -msgstr "有效期至" - -#: src/tables/stock/StockItemTable.tsx:260 -msgid "Stock Value" -msgstr "库存价值" - -#: src/tables/stock/StockItemTable.tsx:290 +#: src/tables/stock/StockItemTable.tsx:294 msgid "Show stock for active parts" msgstr "显示激活零件的库存" -#: src/tables/stock/StockItemTable.tsx:295 +#: src/tables/stock/StockItemTable.tsx:299 msgid "Filter by stock status" msgstr "按库存状态筛选" #: src/tables/stock/StockItemTable.tsx:301 -msgid "Show stock for assmebled parts" -msgstr "显示装配零件的库存" +#~ msgid "Show stock for assmebled parts" +#~ msgstr "Show stock for assmebled parts" -#: src/tables/stock/StockItemTable.tsx:306 +#: src/tables/stock/StockItemTable.tsx:305 +msgid "Show stock for assembled parts" +msgstr "显示已组装零件的库存" + +#: src/tables/stock/StockItemTable.tsx:310 msgid "Show items which have been allocated" msgstr "显示已分配的项目" -#: src/tables/stock/StockItemTable.tsx:311 +#: src/tables/stock/StockItemTable.tsx:315 msgid "Show items which are available" msgstr "显示可用的项目" -#: src/tables/stock/StockItemTable.tsx:315 +#: src/tables/stock/StockItemTable.tsx:319 #: src/tables/stock/StockLocationTable.tsx:44 msgid "Include Sublocations" msgstr "包括子地点" -#: src/tables/stock/StockItemTable.tsx:316 +#: src/tables/stock/StockItemTable.tsx:320 msgid "Include stock in sublocations" msgstr "包括子地点的库存" -#: src/tables/stock/StockItemTable.tsx:320 +#: src/tables/stock/StockItemTable.tsx:324 msgid "Depleted" msgstr "耗尽" -#: src/tables/stock/StockItemTable.tsx:321 +#: src/tables/stock/StockItemTable.tsx:325 msgid "Show depleted stock items" msgstr "显示耗尽的库存项" -#: src/tables/stock/StockItemTable.tsx:326 +#: src/tables/stock/StockItemTable.tsx:330 msgid "Show items which are in stock" msgstr "显示库存中的项目" -#: src/tables/stock/StockItemTable.tsx:331 +#: src/tables/stock/StockItemTable.tsx:335 msgid "Show items which are in production" msgstr "显示正在生产的项目" -#: src/tables/stock/StockItemTable.tsx:336 +#: src/tables/stock/StockItemTable.tsx:340 msgid "Include stock items for variant parts" msgstr "包括变体零件的库存项" -#: src/tables/stock/StockItemTable.tsx:341 +#: src/tables/stock/StockItemTable.tsx:345 msgid "Show stock items which are installed in other items" msgstr "显示安装在其他项目中的库存项" -#: src/tables/stock/StockItemTable.tsx:345 +#: src/tables/stock/StockItemTable.tsx:349 msgid "Sent to Customer" msgstr "发送给客户" -#: src/tables/stock/StockItemTable.tsx:346 +#: src/tables/stock/StockItemTable.tsx:350 msgid "Show items which have been sent to a customer" msgstr "显示已发送给客户的项目" -#: src/tables/stock/StockItemTable.tsx:350 +#: src/tables/stock/StockItemTable.tsx:354 msgid "Is Serialized" msgstr "已序列化" -#: src/tables/stock/StockItemTable.tsx:351 +#: src/tables/stock/StockItemTable.tsx:355 msgid "Show items which have a serial number" msgstr "显示带有序列号的项目" -#: src/tables/stock/StockItemTable.tsx:358 +#: src/tables/stock/StockItemTable.tsx:362 msgid "Has Batch Code" msgstr "有批号" -#: src/tables/stock/StockItemTable.tsx:359 +#: src/tables/stock/StockItemTable.tsx:363 msgid "Show items which have a batch code" msgstr "显示有批号的项目" -#: src/tables/stock/StockItemTable.tsx:365 +#: src/tables/stock/StockItemTable.tsx:369 msgid "Show tracked items" msgstr "显示已跟踪项目" -#: src/tables/stock/StockItemTable.tsx:369 +#: src/tables/stock/StockItemTable.tsx:373 msgid "Has Purchase Price" msgstr "有采购价格" -#: src/tables/stock/StockItemTable.tsx:370 +#: src/tables/stock/StockItemTable.tsx:374 msgid "Show items which have a purchase price" msgstr "显示有购买价格的项目" -#: src/tables/stock/StockItemTable.tsx:378 +#: src/tables/stock/StockItemTable.tsx:382 msgid "External Location" msgstr "外部地点" -#: src/tables/stock/StockItemTable.tsx:379 +#: src/tables/stock/StockItemTable.tsx:383 msgid "Show items in an external location" msgstr "显示外部库存地点的项目" -#: src/tables/stock/StockItemTable.tsx:451 +#: src/tables/stock/StockItemTable.tsx:456 msgid "Add a new stock item" msgstr "添加一个新的库存项" -#: src/tables/stock/StockItemTable.tsx:460 +#: src/tables/stock/StockItemTable.tsx:465 msgid "Remove some quantity from a stock item" msgstr "从库存项中删除一些数量" -#: src/tables/stock/StockItemTable.tsx:482 +#: src/tables/stock/StockItemTable.tsx:487 msgid "Move Stock items to new locations" msgstr "将库存项目移动到新位置" -#: src/tables/stock/StockItemTable.tsx:489 +#: src/tables/stock/StockItemTable.tsx:494 msgid "Change stock status" msgstr "更改库存状态" -#: src/tables/stock/StockItemTable.tsx:491 +#: src/tables/stock/StockItemTable.tsx:496 msgid "Change the status of stock items" msgstr "更改库存项的状态" -#: src/tables/stock/StockItemTable.tsx:498 +#: src/tables/stock/StockItemTable.tsx:503 msgid "Merge stock" msgstr "合并库存" -#: src/tables/stock/StockItemTable.tsx:500 +#: src/tables/stock/StockItemTable.tsx:505 msgid "Merge stock items" msgstr "合并库存项" -#: src/tables/stock/StockItemTable.tsx:509 -#: src/tables/stock/StockItemTable.tsx:516 +#: src/tables/stock/StockItemTable.tsx:514 +#: src/tables/stock/StockItemTable.tsx:521 msgid "Order new stock" msgstr "订单新库存" -#: src/tables/stock/StockItemTable.tsx:514 +#: src/tables/stock/StockItemTable.tsx:519 msgid "Assign to customer" msgstr "分配给客户" -#: src/tables/stock/StockItemTable.tsx:523 +#: src/tables/stock/StockItemTable.tsx:528 msgid "Delete stock" msgstr "删除库存" -#: src/tables/stock/StockItemTable.tsx:525 -msgid "Delete stock items" -msgstr "删除库存项" +#: src/tables/stock/StockItemTable.tsx:528 +#~ msgid "Delete stock items" +#~ msgstr "Delete stock items" -#: src/tables/stock/StockItemTestResultTable.tsx:131 +#: src/tables/stock/StockItemTestResultTable.tsx:137 msgid "Test" msgstr "测试" -#: src/tables/stock/StockItemTestResultTable.tsx:157 +#: src/tables/stock/StockItemTestResultTable.tsx:163 msgid "Test result for installed stock item" msgstr "已安装库存项目的测试结果" -#: src/tables/stock/StockItemTestResultTable.tsx:168 -msgid "Result" -msgstr "结果" - -#: src/tables/stock/StockItemTestResultTable.tsx:190 +#: src/tables/stock/StockItemTestResultTable.tsx:196 msgid "Attachment" msgstr "附件" -#: src/tables/stock/StockItemTestResultTable.tsx:206 +#: src/tables/stock/StockItemTestResultTable.tsx:212 msgid "Test station" msgstr "测试站" -#: src/tables/stock/StockItemTestResultTable.tsx:226 +#: src/tables/stock/StockItemTestResultTable.tsx:234 msgid "Finished" msgstr "已完成" -#: src/tables/stock/StockItemTestResultTable.tsx:268 -#: src/tables/stock/StockItemTestResultTable.tsx:339 +#: src/tables/stock/StockItemTestResultTable.tsx:286 +#: src/tables/stock/StockItemTestResultTable.tsx:357 msgid "Edit Test Result" msgstr "编辑测试结果" -#: src/tables/stock/StockItemTestResultTable.tsx:270 +#: src/tables/stock/StockItemTestResultTable.tsx:288 msgid "Test result updated" msgstr "测试结果已更新" -#: src/tables/stock/StockItemTestResultTable.tsx:276 -#: src/tables/stock/StockItemTestResultTable.tsx:348 +#: src/tables/stock/StockItemTestResultTable.tsx:294 +#: src/tables/stock/StockItemTestResultTable.tsx:366 msgid "Delete Test Result" msgstr "删除测试结果" -#: src/tables/stock/StockItemTestResultTable.tsx:278 +#: src/tables/stock/StockItemTestResultTable.tsx:296 msgid "Test result deleted" msgstr "测试结果已删除" -#: src/tables/stock/StockItemTestResultTable.tsx:292 +#: src/tables/stock/StockItemTestResultTable.tsx:310 msgid "Test Passed" msgstr "测试通过" -#: src/tables/stock/StockItemTestResultTable.tsx:293 +#: src/tables/stock/StockItemTestResultTable.tsx:311 msgid "Test result has been recorded" msgstr "测试结果已被记录" -#: src/tables/stock/StockItemTestResultTable.tsx:300 +#: src/tables/stock/StockItemTestResultTable.tsx:318 msgid "Failed to record test result" msgstr "记录测试结果失败" -#: src/tables/stock/StockItemTestResultTable.tsx:317 +#: src/tables/stock/StockItemTestResultTable.tsx:335 msgid "Pass Test" msgstr "通过测试" -#: src/tables/stock/StockItemTestResultTable.tsx:366 +#: src/tables/stock/StockItemTestResultTable.tsx:384 msgid "Show results for required tests" msgstr "显示需要测试的结果" -#: src/tables/stock/StockItemTestResultTable.tsx:370 +#: src/tables/stock/StockItemTestResultTable.tsx:388 msgid "Include Installed" msgstr "包含已安装的" -#: src/tables/stock/StockItemTestResultTable.tsx:371 +#: src/tables/stock/StockItemTestResultTable.tsx:389 msgid "Show results for installed stock items" msgstr "显示已安装库存项目的结果" -#: src/tables/stock/StockItemTestResultTable.tsx:375 -#: src/tables/stock/TestStatisticsTable.tsx:74 +#: src/tables/stock/StockItemTestResultTable.tsx:393 +#: src/tables/stock/TestStatisticsTable.tsx:62 msgid "Passed" msgstr "通过" -#: src/tables/stock/StockItemTestResultTable.tsx:376 +#: src/tables/stock/StockItemTestResultTable.tsx:394 msgid "Show only passed tests" msgstr "只显示通过的测试" @@ -7922,28 +9179,32 @@ msgid "Filter by location type" msgstr "按位置类型筛选" #: src/tables/stock/StockLocationTable.tsx:107 -#: src/tables/stock/StockLocationTable.tsx:133 +#: src/tables/stock/StockLocationTable.tsx:134 msgid "Add Stock Location" msgstr "添加库存地点" -#: src/tables/stock/StockTrackingTable.tsx:64 +#: src/tables/stock/StockTrackingTable.tsx:68 msgid "Added" msgstr "已添加" -#: src/tables/stock/StockTrackingTable.tsx:69 +#: src/tables/stock/StockTrackingTable.tsx:73 msgid "Removed" msgstr "已删除" #: src/tables/stock/StockTrackingTable.tsx:198 +msgid "Details" +msgstr "详情" + +#: src/tables/stock/StockTrackingTable.tsx:213 msgid "No user information" msgstr "没有用户信息" -#: src/tables/stock/TestStatisticsTable.tsx:46 -#: src/tables/stock/TestStatisticsTable.tsx:76 +#: src/tables/stock/TestStatisticsTable.tsx:34 +#: src/tables/stock/TestStatisticsTable.tsx:64 msgid "Total" msgstr "总计" -#: src/tables/stock/TestStatisticsTable.tsx:75 +#: src/tables/stock/TestStatisticsTable.tsx:63 msgid "Failed" msgstr "失败" diff --git a/src/frontend/src/locales/zh_Hant/messages.po b/src/frontend/src/locales/zh_Hant/messages.po index 9128561865..7a361f93e5 100644 --- a/src/frontend/src/locales/zh_Hant/messages.po +++ b/src/frontend/src/locales/zh_Hant/messages.po @@ -8,205 +8,484 @@ msgstr "" "Language: zh\n" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"PO-Revision-Date: 2024-08-20 19:50\n" +"PO-Revision-Date: 2024-11-04 03:14\n" "Last-Translator: \n" "Language-Team: Chinese Traditional\n" "Plural-Forms: nplurals=1; plural=0;\n" "X-Crowdin-Project: inventree\n" "X-Crowdin-Project-ID: 452300\n" "X-Crowdin-Language: zh-TW\n" -"X-Crowdin-File: /[inventree.InvenTree] l10/src/frontend/src/locales/en/messages.po\n" -"X-Crowdin-File-ID: 205\n" +"X-Crowdin-File: /src/frontend/src/locales/en/messages.po\n" +"X-Crowdin-File-ID: 252\n" #: src/components/Boundary.tsx:12 msgid "Error rendering component" -msgstr "" +msgstr "渲染組件出錯" #: src/components/Boundary.tsx:14 msgid "An error occurred while rendering this component. Refer to the console for more information." -msgstr "" +msgstr "渲染此組件時發生錯誤。請參閲控制枱獲取更多信息。" #: src/components/DashboardItemProxy.tsx:34 -msgid "Title" -msgstr "" +#~ msgid "Title" +#~ msgstr "Title" #: src/components/buttons/AdminButton.tsx:80 msgid "Open in admin interface" -msgstr "" +msgstr "在管理員界面打開" #: src/components/buttons/CopyButton.tsx:18 #~ msgid "Copy to clipboard" #~ msgstr "Copy to clipboard" -#: src/components/buttons/CopyButton.tsx:24 +#: src/components/buttons/CopyButton.tsx:29 msgid "Copied" -msgstr "" +msgstr "已複製" -#: src/components/buttons/CopyButton.tsx:24 +#: src/components/buttons/CopyButton.tsx:29 msgid "Copy" -msgstr "" +msgstr "複製" -#: src/components/buttons/PrintingActions.tsx:93 +#: src/components/buttons/PrintingActions.tsx:97 msgid "Print Label" -msgstr "" +msgstr "打印標籤" -#: src/components/buttons/PrintingActions.tsx:99 +#: src/components/buttons/PrintingActions.tsx:103 msgid "Print" -msgstr "" +msgstr "打印" -#: src/components/buttons/PrintingActions.tsx:100 +#: src/components/buttons/PrintingActions.tsx:104 msgid "Label printing completed successfully" -msgstr "" +msgstr "標籤打印成功" -#: src/components/buttons/PrintingActions.tsx:106 -#: src/components/buttons/PrintingActions.tsx:144 -#: src/components/editors/NotesEditor.tsx:65 -#: src/components/editors/NotesEditor.tsx:165 -#: src/components/forms/fields/ApiFormField.tsx:319 +#: src/components/buttons/PrintingActions.tsx:110 +#: src/components/buttons/PrintingActions.tsx:148 +#: src/components/editors/NotesEditor.tsx:73 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:154 +#: src/components/forms/fields/ApiFormField.tsx:328 +#: src/components/forms/fields/TableField.tsx:43 #: src/components/importer/ImportDataSelector.tsx:187 -#: src/components/importer/ImporterColumnSelector.tsx:207 +#: src/components/importer/ImporterColumnSelector.tsx:210 #: src/components/modals/LicenseModal.tsx:75 -#: src/components/nav/SearchDrawer.tsx:448 +#: src/components/nav/SearchDrawer.tsx:458 +#: src/components/render/ModelType.tsx:290 #: src/pages/ErrorPage.tsx:11 -#: src/pages/part/PartPricingPanel.tsx:67 -#: src/tables/InvenTreeTable.tsx:495 +#: src/pages/part/PartPricingPanel.tsx:71 +#: src/tables/InvenTreeTable.tsx:481 #: src/tables/bom/BomTable.tsx:450 -#: src/tables/stock/StockItemTestResultTable.tsx:299 +#: src/tables/stock/StockItemTestResultTable.tsx:317 msgid "Error" -msgstr "" +msgstr "錯誤" -#: src/components/buttons/PrintingActions.tsx:107 +#: src/components/buttons/PrintingActions.tsx:111 msgid "The label could not be generated" -msgstr "" +msgstr "無法生成此標籤" -#: src/components/buttons/PrintingActions.tsx:122 +#: src/components/buttons/PrintingActions.tsx:126 msgid "Print Report" -msgstr "" +msgstr "打印報告" -#: src/components/buttons/PrintingActions.tsx:138 +#: src/components/buttons/PrintingActions.tsx:142 msgid "Generate" -msgstr "" +msgstr "生成" -#: src/components/buttons/PrintingActions.tsx:139 +#: src/components/buttons/PrintingActions.tsx:143 msgid "Report printing completed successfully" -msgstr "" +msgstr "報告打印成功" -#: src/components/buttons/PrintingActions.tsx:145 +#: src/components/buttons/PrintingActions.tsx:149 msgid "The report could not be generated" -msgstr "" +msgstr "無法生成此報告" -#: src/components/buttons/PrintingActions.tsx:173 +#: src/components/buttons/PrintingActions.tsx:177 msgid "Printing Actions" -msgstr "" +msgstr "打印操作" -#: src/components/buttons/PrintingActions.tsx:178 +#: src/components/buttons/PrintingActions.tsx:182 msgid "Print Labels" -msgstr "" +msgstr "打印標籤" -#: src/components/buttons/PrintingActions.tsx:184 +#: src/components/buttons/PrintingActions.tsx:188 msgid "Print Reports" -msgstr "" +msgstr "列印報告" + +#: src/components/buttons/RemoveRowButton.tsx:8 +msgid "Remove this row" +msgstr "移除此行" #: src/components/buttons/ScanButton.tsx:15 -msgid "Scan QR code" -msgstr "掃描 QR Code" +#: src/components/nav/NavigationDrawer.tsx:117 +#: src/forms/PurchaseOrderForms.tsx:379 +#: src/forms/PurchaseOrderForms.tsx:473 +msgid "Scan Barcode" +msgstr "掃描條碼" + +#: src/components/buttons/ScanButton.tsx:15 +#~ msgid "Scan QR code" +#~ msgstr "Scan QR code" #: src/components/buttons/ScanButton.tsx:20 -msgid "Open QR code scanner" +msgid "Open Barcode Scanner" msgstr "" +#: src/components/buttons/ScanButton.tsx:20 +#~ msgid "Open QR code scanner" +#~ msgstr "Open QR code scanner" + #: src/components/buttons/SpotlightButton.tsx:14 msgid "Open spotlight" -msgstr "" +msgstr "打開聚焦" #: src/components/buttons/YesNoButton.tsx:16 msgid "Pass" -msgstr "" +msgstr "通過" #: src/components/buttons/YesNoButton.tsx:17 msgid "Fail" -msgstr "" +msgstr "失效" #: src/components/buttons/YesNoButton.tsx:33 -#: src/tables/Filter.tsx:52 +#: src/tables/Filter.tsx:61 msgid "Yes" -msgstr "" +msgstr "是" #: src/components/buttons/YesNoButton.tsx:33 -#: src/tables/Filter.tsx:53 +#: src/tables/Filter.tsx:62 msgid "No" +msgstr "否" + +#: src/components/dashboard/DashboardLayout.tsx:286 +msgid "No Widgets Selected" msgstr "" -#: src/components/details/Details.tsx:301 +#: src/components/dashboard/DashboardLayout.tsx:289 +msgid "Use the menu to add widgets to the dashboard" +msgstr "" + +#: src/components/dashboard/DashboardMenu.tsx:59 +#: src/components/dashboard/DashboardMenu.tsx:126 +msgid "Accept Layout" +msgstr "" + +#: src/components/dashboard/DashboardMenu.tsx:91 +#: src/components/nav/NavigationDrawer.tsx:71 +#: src/defaults/actions.tsx:17 +#: src/defaults/links.tsx:9 +#: src/pages/Index/Settings/UserSettings.tsx:47 +msgid "Dashboard" +msgstr "儀表盤" + +#: src/components/dashboard/DashboardMenu.tsx:99 +msgid "Edit Layout" +msgstr "編輯佈局" + +#: src/components/dashboard/DashboardMenu.tsx:108 +msgid "Add Widget" +msgstr "" + +#: src/components/dashboard/DashboardMenu.tsx:117 +msgid "Remove Widgets" +msgstr "" + +#: src/components/dashboard/DashboardWidget.tsx:65 +msgid "Remove this widget from the dashboard" +msgstr "" + +#: src/components/dashboard/DashboardWidgetDrawer.tsx:77 +msgid "Filter dashboard widgets" +msgstr "" + +#: src/components/dashboard/DashboardWidgetDrawer.tsx:98 +msgid "Add this widget to the dashboard" +msgstr "" + +#: src/components/dashboard/DashboardWidgetDrawer.tsx:123 +msgid "No Widgets Available" +msgstr "" + +#: src/components/dashboard/DashboardWidgetDrawer.tsx:124 +msgid "There are no more widgets available for the dashboard" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:19 +msgid "Subscribed Parts" +msgstr "已訂購零件" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:20 +msgid "Show the number of parts which you have subscribed to" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:26 +msgid "Subscribed Categories" +msgstr "已訂閲類別" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:27 +msgid "Show the number of part categories which you have subscribed to" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:35 +#: src/pages/part/PartSchedulingDetail.tsx:304 +#: src/tables/part/PartTable.tsx:238 +msgid "Low Stock" +msgstr "低庫存" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:37 +msgid "Show the number of parts which are low on stock" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:43 +msgid "Expired Stock Items" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:45 +msgid "Show the number of stock items which have expired" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:51 +msgid "Stale Stock Items" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:53 +msgid "Show the number of stock items which are stale" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:59 +msgid "Active Build Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:61 +msgid "Show the number of build orders which are currently active" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:66 +msgid "Overdue Build Orders" +msgstr "逾期的生產訂單" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:68 +msgid "Show the number of build orders which are overdue" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:73 +msgid "Assigned Build Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:75 +msgid "Show the number of build orders which are assigned to you" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:80 +msgid "Active Sales Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:82 +msgid "Show the number of sales orders which are currently active" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:87 +msgid "Overdue Sales Orders" +msgstr "逾期的銷售訂單" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:89 +msgid "Show the number of sales orders which are overdue" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:94 +msgid "Assigned Sales Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:96 +msgid "Show the number of sales orders which are assigned to you" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:101 +msgid "Active Purchase Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:103 +msgid "Show the number of purchase orders which are currently active" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:108 +msgid "Overdue Purchase Orders" +msgstr "逾期的採購訂單" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:110 +msgid "Show the number of purchase orders which are overdue" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:115 +msgid "Assigned Purchase Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:117 +msgid "Show the number of purchase orders which are assigned to you" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:122 +msgid "Active Return Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:124 +msgid "Show the number of return orders which are currently active" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:129 +msgid "Overdue Return Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:131 +msgid "Show the number of return orders which are overdue" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:136 +msgid "Assigned Return Orders" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:138 +msgid "Show the number of return orders which are assigned to you" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:149 +#: src/components/dashboard/widgets/GetStartedWidget.tsx:15 +#: src/defaults/links.tsx:38 +msgid "Getting Started" +msgstr "快速上手" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:150 +#: src/defaults/links.tsx:41 +msgid "Getting started with InvenTree" +msgstr "開始使用 InvenTree" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:157 +#: src/components/dashboard/widgets/NewsWidget.tsx:123 +msgid "News Updates" +msgstr "" + +#: src/components/dashboard/DashboardWidgetLibrary.tsx:158 +msgid "The latest news from InvenTree" +msgstr "" + +#: src/components/dashboard/widgets/ColorToggleWidget.tsx:18 +#: src/components/nav/MainMenu.tsx:77 +msgid "Change Color Mode" +msgstr "更改色彩模式" + +#: src/components/dashboard/widgets/ColorToggleWidget.tsx:23 +msgid "Change the color mode of the user interface" +msgstr "" + +#: src/components/dashboard/widgets/LanguageSelectWidget.tsx:18 +msgid "Change Language" +msgstr "" + +#: src/components/dashboard/widgets/LanguageSelectWidget.tsx:23 +msgid "Change the language of the user interface" +msgstr "" + +#: src/components/dashboard/widgets/NewsWidget.tsx:61 +#: src/components/nav/NotificationDrawer.tsx:88 +#: src/pages/Notifications.tsx:73 +msgid "Mark as read" +msgstr "標記為已讀" + +#: src/components/dashboard/widgets/NewsWidget.tsx:115 +msgid "Requires Superuser" +msgstr "" + +#: src/components/dashboard/widgets/NewsWidget.tsx:116 +msgid "This widget requires superuser permissions" +msgstr "" + +#: src/components/dashboard/widgets/NewsWidget.tsx:133 +msgid "No News" +msgstr "" + +#: src/components/dashboard/widgets/NewsWidget.tsx:134 +msgid "There are no unread news items" +msgstr "" + +#: src/components/details/Details.tsx:300 msgid "No name defined" -msgstr "" +msgstr "未定義名稱" -#: src/components/details/DetailsImage.tsx:65 +#: src/components/details/DetailsImage.tsx:69 msgid "Remove Image" -msgstr "" +msgstr "刪除圖片" -#: src/components/details/DetailsImage.tsx:68 +#: src/components/details/DetailsImage.tsx:72 msgid "Remove the associated image from this item?" -msgstr "" +msgstr "刪除與此項關聯的圖片?" -#: src/components/details/DetailsImage.tsx:71 -#: src/forms/StockForms.tsx:533 +#: src/components/details/DetailsImage.tsx:75 +#: src/forms/StockForms.tsx:651 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:199 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:306 -#: src/pages/stock/StockDetail.tsx:526 +#: src/pages/stock/StockDetail.tsx:690 msgid "Remove" -msgstr "" +msgstr "移除" -#: src/components/details/DetailsImage.tsx:71 -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:158 -#: src/components/items/ActionDropdown.tsx:215 -#: src/components/items/ActionDropdown.tsx:216 -#: src/contexts/ThemeContext.tsx:43 +#: src/components/details/DetailsImage.tsx:75 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:184 +#: src/components/items/ActionDropdown.tsx:268 +#: src/components/items/ActionDropdown.tsx:269 +#: src/contexts/ThemeContext.tsx:45 #: src/hooks/UseForm.tsx:40 -#: src/tables/FilterSelectDrawer.tsx:205 -#: src/tables/build/BuildOutputTable.tsx:286 +#: src/tables/FilterSelectDrawer.tsx:241 +#: src/tables/RowActions.tsx:59 +#: src/tables/build/BuildOutputTable.tsx:434 msgid "Cancel" msgstr "取消" -#: src/components/details/DetailsImage.tsx:97 +#: src/components/details/DetailsImage.tsx:101 msgid "Drag and drop to upload" msgstr "拖曳並上傳" -#: src/components/details/DetailsImage.tsx:100 +#: src/components/details/DetailsImage.tsx:104 msgid "Click to select file(s)" -msgstr "" +msgstr "點擊選擇文件" -#: src/components/details/DetailsImage.tsx:226 +#: src/components/details/DetailsImage.tsx:230 msgid "Clear" -msgstr "" +msgstr "清除" -#: src/components/details/DetailsImage.tsx:232 -#: src/components/forms/ApiForm.tsx:627 -#: src/contexts/ThemeContext.tsx:43 -#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:60 +#: src/components/details/DetailsImage.tsx:236 +#: src/components/forms/ApiForm.tsx:660 +#: src/contexts/ThemeContext.tsx:45 msgid "Submit" -msgstr "" - -#: src/components/details/DetailsImage.tsx:272 -msgid "Select from existing images" -msgstr "" +msgstr "提交" #: src/components/details/DetailsImage.tsx:280 -msgid "Select Image" -msgstr "" +msgid "Select from existing images" +msgstr "從現有圖片中選擇" -#: src/components/details/DetailsImage.tsx:292 +#: src/components/details/DetailsImage.tsx:288 +msgid "Select Image" +msgstr "選擇圖片" + +#: src/components/details/DetailsImage.tsx:304 +msgid "Download remote image" +msgstr "下載遠程圖片" + +#: src/components/details/DetailsImage.tsx:319 msgid "Upload new image" msgstr "上傳新圖片" -#: src/components/details/DetailsImage.tsx:299 +#: src/components/details/DetailsImage.tsx:326 msgid "Upload Image" msgstr "上傳圖片" -#: src/components/details/DetailsImage.tsx:312 +#: src/components/details/DetailsImage.tsx:339 msgid "Delete image" msgstr "刪除圖片" +#: src/components/details/DetailsImage.tsx:373 +msgid "Download Image" +msgstr "下載圖片" + +#: src/components/details/DetailsImage.tsx:378 +msgid "Image downloaded successfully" +msgstr "圖片下載成功" + #: src/components/details/PartIcons.tsx:43 #~ msgid "Part is a template part (variants can be made from this part)" #~ msgstr "Part is a template part (variants can be made from this part)" @@ -235,39 +514,60 @@ msgstr "刪除圖片" #~ msgid "Part is virtual (not a physical part)" #~ msgstr "Part is virtual (not a physical part)" -#: src/components/editors/NotesEditor.tsx:66 +#: src/components/editors/NotesEditor.tsx:74 msgid "Image upload failed" -msgstr "" +msgstr "圖片上傳失敗" -#: src/components/editors/NotesEditor.tsx:156 -#: src/components/forms/ApiForm.tsx:467 +#: src/components/editors/NotesEditor.tsx:83 +#: src/components/editors/NotesEditor.tsx:119 +#: src/components/forms/ApiForm.tsx:475 #: src/tables/bom/BomTable.tsx:441 msgid "Success" -msgstr "" +msgstr "操作成功" -#: src/components/editors/NotesEditor.tsx:157 +#: src/components/editors/NotesEditor.tsx:84 +msgid "Image uploaded successfully" +msgstr "圖片已經上傳成功" + +#: src/components/editors/NotesEditor.tsx:120 msgid "Notes saved successfully" -msgstr "" +msgstr "備註保存成功" -#: src/components/editors/NotesEditor.tsx:166 +#: src/components/editors/NotesEditor.tsx:131 msgid "Failed to save notes" +msgstr "保存記事失敗" + +#: src/components/editors/NotesEditor.tsx:134 +msgid "Error Saving Notes" msgstr "" -#: src/components/editors/NotesEditor.tsx:198 -msgid "Preview Notes" -msgstr "" +#: src/components/editors/NotesEditor.tsx:151 +#~ msgid "Disable Editing" +#~ msgstr "Disable Editing" -#: src/components/editors/NotesEditor.tsx:198 -msgid "Edit Notes" -msgstr "" - -#: src/components/editors/NotesEditor.tsx:212 +#: src/components/editors/NotesEditor.tsx:154 msgid "Save Notes" +msgstr "保存備註" + +#: src/components/editors/NotesEditor.tsx:173 +msgid "Close Editor" msgstr "" +#: src/components/editors/NotesEditor.tsx:180 +msgid "Enable Editing" +msgstr "啓用編輯" + +#: src/components/editors/NotesEditor.tsx:198 +#~ msgid "Preview Notes" +#~ msgstr "Preview Notes" + +#: src/components/editors/NotesEditor.tsx:198 +#~ msgid "Edit Notes" +#~ msgstr "Edit Notes" + #: src/components/editors/TemplateEditor/CodeEditor/index.tsx:9 msgid "Code" -msgstr "" +msgstr "代碼" #: src/components/editors/TemplateEditor/PdfPreview/PdfPreview.tsx:44 #~ msgid "Failed to parse error response from server." @@ -275,152 +575,157 @@ msgstr "" #: src/components/editors/TemplateEditor/PdfPreview/PdfPreview.tsx:81 msgid "Preview not available, click \"Reload Preview\"." -msgstr "" +msgstr "預覽不可用,點擊\"重新加載預覽\"。" #: src/components/editors/TemplateEditor/PdfPreview/index.tsx:9 msgid "PDF Preview" -msgstr "" +msgstr "PDF 預覽" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:104 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:115 msgid "Error loading template" -msgstr "" +msgstr "加載模板時出錯" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:116 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:127 msgid "Error saving template" -msgstr "" - -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:146 -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:274 -msgid "Save & Reload Preview" -msgstr "" - -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:151 -msgid "Are you sure you want to Save & Reload the preview?" -msgstr "" +msgstr "保存模板時出錯" #: src/components/editors/TemplateEditor/TemplateEditor.tsx:151 #~ msgid "Save & Reload preview?" #~ msgstr "Save & Reload preview?" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:153 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:155 +msgid "Could not load the template from the server." +msgstr "" + +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:172 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:303 +msgid "Save & Reload Preview" +msgstr "保存並重新加載預覽" + +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:177 +msgid "Are you sure you want to Save & Reload the preview?" +msgstr "您確定要保存並重新加載預覽嗎?" + +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:179 msgid "To render the preview the current template needs to be replaced on the server with your modifications which may break the label if it is under active use. Do you want to proceed?" -msgstr "" +msgstr "要渲染預覽效果,需要在服務器上用您的修改替換當前模板,如果標籤正在使用中,可能會損壞標籤。您想繼續嗎?" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:157 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:183 msgid "Save & Reload" -msgstr "" +msgstr "保存並重新加載" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:189 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:215 msgid "Preview updated" -msgstr "" +msgstr "預覽已更新" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:190 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:216 msgid "The preview has been updated successfully." -msgstr "" +msgstr "預覽已成功更新。" #: src/components/editors/TemplateEditor/TemplateEditor.tsx:263 #~ msgid "Save & Reload preview" #~ msgstr "Save & Reload preview" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:266 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:295 msgid "Reload preview" -msgstr "" +msgstr "重新加載預覽" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:267 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:296 msgid "Use the currently stored template from the server" -msgstr "" +msgstr "使用當前存儲服務器的模板" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:275 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:304 msgid "Save the current template and reload the preview" -msgstr "" +msgstr "保存當前模板並重新加載預覽" #: src/components/editors/TemplateEditor/TemplateEditor.tsx:322 #~ msgid "to preview" #~ msgstr "to preview" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:333 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:365 msgid "Select instance to preview" -msgstr "" +msgstr "選擇預覽實例" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:377 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:409 msgid "Error rendering template" -msgstr "" +msgstr "渲染模板時出錯" #: src/components/errors/ClientError.tsx:23 msgid "Client Error" -msgstr "" +msgstr "客户端錯誤" #: src/components/errors/ClientError.tsx:24 msgid "Client error occurred" -msgstr "" +msgstr "客户端發生錯誤" #: src/components/errors/GenericErrorPage.tsx:50 msgid "Status Code" -msgstr "" +msgstr "狀態代碼" #: src/components/errors/GenericErrorPage.tsx:63 msgid "Return to the index page" -msgstr "" +msgstr "返回索引頁" #: src/components/errors/NotAuthenticated.tsx:8 msgid "Not Authenticated" -msgstr "" +msgstr "未認證" #: src/components/errors/NotAuthenticated.tsx:9 msgid "You are not logged in." -msgstr "" +msgstr "您尚未登錄。" #: src/components/errors/NotFound.tsx:8 msgid "Page Not Found" -msgstr "" +msgstr "無法找到頁面" #: src/components/errors/NotFound.tsx:9 msgid "This page does not exist" -msgstr "" +msgstr "此頁面不存在" #: src/components/errors/PermissionDenied.tsx:8 +#: src/functions/notifications.tsx:24 msgid "Permission Denied" -msgstr "" +msgstr "權限受限" #: src/components/errors/PermissionDenied.tsx:9 msgid "You do not have permission to view this page." -msgstr "" +msgstr "您沒有權限查看此網頁。" #: src/components/errors/ServerError.tsx:8 msgid "Server Error" -msgstr "" +msgstr "服務器錯誤" #: src/components/errors/ServerError.tsx:9 msgid "A server error occurred" -msgstr "" +msgstr "服務器出錯。" -#: src/components/forms/ApiForm.tsx:151 -#: src/components/forms/ApiForm.tsx:555 +#: src/components/forms/ApiForm.tsx:154 +#: src/components/forms/ApiForm.tsx:579 msgid "Form Error" -msgstr "" +msgstr "表單錯誤" #: src/components/forms/ApiForm.tsx:487 #~ msgid "Form Errors Exist" #~ msgstr "Form Errors Exist" -#: src/components/forms/ApiForm.tsx:563 +#: src/components/forms/ApiForm.tsx:587 msgid "Errors exist for one or more form fields" -msgstr "" +msgstr "一個或多個表單字段存在錯誤" -#: src/components/forms/ApiForm.tsx:665 -#: src/tables/plugin/PluginListTable.tsx:388 +#: src/components/forms/ApiForm.tsx:698 +#: src/tables/plugin/PluginListTable.tsx:195 msgid "Update" -msgstr "" +msgstr "更新" -#: src/components/forms/ApiForm.tsx:685 -#: src/components/items/ActionDropdown.tsx:195 +#: src/components/forms/ApiForm.tsx:718 +#: src/components/items/ActionDropdown.tsx:248 #: src/hooks/UseForm.tsx:122 -#: src/pages/Index/Scan.tsx:343 +#: src/pages/Index/Scan.tsx:357 #: src/pages/Notifications.tsx:123 -#: src/tables/RowActions.tsx:43 -#: src/tables/plugin/PluginListTable.tsx:420 +#: src/tables/RowActions.tsx:49 +#: src/tables/plugin/PluginListTable.tsx:232 msgid "Delete" -msgstr "" +msgstr "刪除" #: src/components/forms/AuthenticationForm.tsx:48 #: src/components/forms/AuthenticationForm.tsx:74 @@ -428,14 +733,6 @@ msgstr "" #~ msgid "Check your your input and try again." #~ msgstr "Check your your input and try again." -#: src/components/forms/AuthenticationForm.tsx:51 -msgid "Login successful" -msgstr "" - -#: src/components/forms/AuthenticationForm.tsx:52 -msgid "Logged in successfully" -msgstr "" - #: src/components/forms/AuthenticationForm.tsx:52 #~ msgid "Welcome back!" #~ msgstr "Welcome back!" @@ -444,186 +741,198 @@ msgstr "" #~ msgid "Login successfull" #~ msgstr "Login successfull" -#: src/components/forms/AuthenticationForm.tsx:58 -msgid "Login failed" -msgstr "" +#: src/components/forms/AuthenticationForm.tsx:55 +msgid "Login successful" +msgstr "登錄成功" -#: src/components/forms/AuthenticationForm.tsx:59 -#: src/components/forms/AuthenticationForm.tsx:76 -#: src/components/forms/AuthenticationForm.tsx:211 -#: src/functions/auth.tsx:164 +#: src/components/forms/AuthenticationForm.tsx:56 +msgid "Logged in successfully" +msgstr "登錄成功" + +#: src/components/forms/AuthenticationForm.tsx:61 +msgid "Login failed" +msgstr "登錄失敗" + +#: src/components/forms/AuthenticationForm.tsx:62 +#: src/components/forms/AuthenticationForm.tsx:79 +#: src/components/forms/AuthenticationForm.tsx:214 +#: src/functions/auth.tsx:175 msgid "Check your input and try again." -msgstr "" +msgstr "請檢查您的輸入並重試。" #: src/components/forms/AuthenticationForm.tsx:65 #: src/functions/auth.tsx:74 #~ msgid "Mail delivery successfull" #~ msgstr "Mail delivery successfull" -#: src/components/forms/AuthenticationForm.tsx:70 -#: src/functions/auth.tsx:155 +#: src/components/forms/AuthenticationForm.tsx:73 +#: src/functions/auth.tsx:166 msgid "Mail delivery successful" -msgstr "" +msgstr "郵件發送成功" -#: src/components/forms/AuthenticationForm.tsx:71 +#: src/components/forms/AuthenticationForm.tsx:74 msgid "Check your inbox for the login link. If you have an account, you will receive a login link. Check in spam too." -msgstr "" +msgstr "請檢查您的收件箱以查看登錄鏈接。如果您有賬户,您將收到登錄鏈接。如未收到,請檢查郵箱垃圾箱。" -#: src/components/forms/AuthenticationForm.tsx:75 +#: src/components/forms/AuthenticationForm.tsx:78 msgid "Mail delivery failed" -msgstr "" +msgstr "郵件發送失敗" -#: src/components/forms/AuthenticationForm.tsx:95 +#: src/components/forms/AuthenticationForm.tsx:98 msgid "Or continue with other methods" -msgstr "" +msgstr "或繼續使用其他方法" -#: src/components/forms/AuthenticationForm.tsx:106 -#: src/components/forms/AuthenticationForm.tsx:227 +#: src/components/forms/AuthenticationForm.tsx:109 +#: src/components/forms/AuthenticationForm.tsx:230 +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:67 msgid "Username" msgstr "使用者帳號" -#: src/components/forms/AuthenticationForm.tsx:107 -#: src/components/forms/AuthenticationForm.tsx:228 +#: src/components/forms/AuthenticationForm.tsx:110 +#: src/components/forms/AuthenticationForm.tsx:231 msgid "Your username" -msgstr "" +msgstr "你的用户名" -#: src/components/forms/AuthenticationForm.tsx:112 -#: src/components/forms/AuthenticationForm.tsx:240 -#: src/pages/Auth/Set-Password.tsx:106 +#: src/components/forms/AuthenticationForm.tsx:115 +#: src/components/forms/AuthenticationForm.tsx:243 +#: src/pages/Auth/Set-Password.tsx:101 msgid "Password" msgstr "密碼" -#: src/components/forms/AuthenticationForm.tsx:113 -#: src/components/forms/AuthenticationForm.tsx:241 +#: src/components/forms/AuthenticationForm.tsx:116 +#: src/components/forms/AuthenticationForm.tsx:244 msgid "Your password" -msgstr "" +msgstr "您的密碼" -#: src/components/forms/AuthenticationForm.tsx:125 +#: src/components/forms/AuthenticationForm.tsx:128 #: src/pages/Auth/Reset.tsx:26 msgid "Reset password" -msgstr "" +msgstr "重置密碼" #: src/components/forms/AuthenticationForm.tsx:131 #~ msgid "Log in" #~ msgstr "Log in" -#: src/components/forms/AuthenticationForm.tsx:134 -#: src/components/forms/AuthenticationForm.tsx:233 -#: src/pages/Auth/Reset.tsx:31 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:51 -msgid "Email" -msgstr "" - -#: src/components/forms/AuthenticationForm.tsx:135 -#: src/pages/Auth/Reset.tsx:32 -#: src/pages/Auth/Set-Password.tsx:107 -msgid "We will send you a link to login - if you are registered" -msgstr "" - #: src/components/forms/AuthenticationForm.tsx:136 #~ msgid "I will use username and password" #~ msgstr "I will use username and password" -#: src/components/forms/AuthenticationForm.tsx:151 +#: src/components/forms/AuthenticationForm.tsx:137 +#: src/components/forms/AuthenticationForm.tsx:236 +#: src/pages/Auth/Reset.tsx:31 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:51 +msgid "Email" +msgstr "郵箱" + +#: src/components/forms/AuthenticationForm.tsx:138 +#: src/pages/Auth/Reset.tsx:32 +#: src/pages/Auth/Set-Password.tsx:102 +msgid "We will send you a link to login - if you are registered" +msgstr "我們將向您發送登錄鏈接 - 如果您已註冊" + +#: src/components/forms/AuthenticationForm.tsx:154 msgid "Send me an email" -msgstr "" +msgstr "給我發一封電子郵件" -#: src/components/forms/AuthenticationForm.tsx:153 +#: src/components/forms/AuthenticationForm.tsx:156 msgid "Use username and password" -msgstr "" +msgstr "使用用户名和密碼" -#: src/components/forms/AuthenticationForm.tsx:162 +#: src/components/forms/AuthenticationForm.tsx:165 msgid "Log In" -msgstr "" +msgstr "登錄" -#: src/components/forms/AuthenticationForm.tsx:164 +#: src/components/forms/AuthenticationForm.tsx:167 +#: src/pages/Auth/Reset.tsx:41 +#: src/pages/Auth/Set-Password.tsx:107 msgid "Send Email" -msgstr "" +msgstr "發送電子郵件" -#: src/components/forms/AuthenticationForm.tsx:193 +#: src/components/forms/AuthenticationForm.tsx:196 msgid "Registration successful" msgstr "註冊成功" -#: src/components/forms/AuthenticationForm.tsx:194 +#: src/components/forms/AuthenticationForm.tsx:197 msgid "Please confirm your email address to complete the registration" -msgstr "" +msgstr "請確認您的電子郵件地址以完成註冊" -#: src/components/forms/AuthenticationForm.tsx:210 +#: src/components/forms/AuthenticationForm.tsx:213 msgid "Input error" -msgstr "" +msgstr "輸入錯誤" -#: src/components/forms/AuthenticationForm.tsx:234 +#: src/components/forms/AuthenticationForm.tsx:237 msgid "This will be used for a confirmation" -msgstr "" +msgstr "此將用於確認" -#: src/components/forms/AuthenticationForm.tsx:246 +#: src/components/forms/AuthenticationForm.tsx:249 msgid "Password repeat" -msgstr "" +msgstr "密碼重複" -#: src/components/forms/AuthenticationForm.tsx:247 +#: src/components/forms/AuthenticationForm.tsx:250 msgid "Repeat password" -msgstr "" +msgstr "再次輸入密碼" -#: src/components/forms/AuthenticationForm.tsx:259 -#: src/components/forms/AuthenticationForm.tsx:304 +#: src/components/forms/AuthenticationForm.tsx:262 +#: src/components/forms/AuthenticationForm.tsx:307 msgid "Register" -msgstr "" +msgstr "註冊" -#: src/components/forms/AuthenticationForm.tsx:265 +#: src/components/forms/AuthenticationForm.tsx:268 msgid "Or use SSO" -msgstr "" +msgstr "或使用 SSO" -#: src/components/forms/AuthenticationForm.tsx:296 +#: src/components/forms/AuthenticationForm.tsx:299 msgid "Don't have an account?" -msgstr "" +msgstr "沒有帳户?" -#: src/components/forms/AuthenticationForm.tsx:315 +#: src/components/forms/AuthenticationForm.tsx:318 msgid "Go back to login" -msgstr "" +msgstr "返回登錄界面" #: src/components/forms/HostOptionsForm.tsx:36 #: src/components/forms/HostOptionsForm.tsx:67 msgid "Host" -msgstr "" +msgstr "主機" #: src/components/forms/HostOptionsForm.tsx:42 #: src/components/forms/HostOptionsForm.tsx:70 +#: src/components/plugins/PluginDrawer.tsx:69 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:410 +#: src/pages/Index/Settings/AdminCenter/UnitManagmentPanel.tsx:19 #: src/pages/part/CategoryDetail.tsx:81 -#: src/pages/part/PartDetail.tsx:143 -#: src/pages/stock/LocationDetail.tsx:89 -#: src/tables/machine/MachineTypeTable.tsx:65 -#: src/tables/machine/MachineTypeTable.tsx:109 -#: src/tables/machine/MachineTypeTable.tsx:216 -#: src/tables/machine/MachineTypeTable.tsx:319 +#: src/pages/part/PartDetail.tsx:164 +#: src/pages/stock/LocationDetail.tsx:83 +#: src/tables/machine/MachineTypeTable.tsx:70 +#: src/tables/machine/MachineTypeTable.tsx:119 +#: src/tables/machine/MachineTypeTable.tsx:237 +#: src/tables/machine/MachineTypeTable.tsx:340 #: src/tables/plugin/PluginErrorTable.tsx:33 -#: src/tables/plugin/PluginListTable.tsx:126 #: src/tables/purchasing/ManufacturerPartParameterTable.tsx:32 #: src/tables/settings/GroupTable.tsx:147 -#: src/tables/settings/PendingTasksTable.tsx:28 +#: src/tables/settings/PendingTasksTable.tsx:32 #: src/tables/stock/LocationTypesTable.tsx:69 msgid "Name" -msgstr "" +msgstr "名稱" #: src/components/forms/HostOptionsForm.tsx:75 msgid "No one here..." -msgstr "" +msgstr "這裏沒有人..." #: src/components/forms/HostOptionsForm.tsx:86 msgid "Add Host" -msgstr "" +msgstr "添加主機" #: src/components/forms/HostOptionsForm.tsx:90 msgid "Save" -msgstr "" +msgstr "保存" #: src/components/forms/InstanceOptions.tsx:43 msgid "Select destination instance" -msgstr "" +msgstr "選擇對象目標" #: src/components/forms/InstanceOptions.tsx:71 msgid "Edit possible host options" -msgstr "" +msgstr "編輯可能的主機選項" #: src/components/forms/InstanceOptions.tsx:98 msgid "Version: {0}" @@ -635,62 +944,61 @@ msgstr "API: {0}" #: src/components/forms/InstanceOptions.tsx:102 msgid "Name: {0}" -msgstr "" +msgstr "名稱:{0}" #: src/components/forms/InstanceOptions.tsx:104 msgid "State: <0>worker ({0}), <1>plugins{1}" -msgstr "" +msgstr "狀態: <0>worker ({0}), <1>plugins{1}" #: src/components/forms/fields/IconField.tsx:81 msgid "No icon selected" -msgstr "" +msgstr "未選擇圖標" #: src/components/forms/fields/IconField.tsx:159 msgid "Uncategorized" -msgstr "" +msgstr "未分類" #: src/components/forms/fields/IconField.tsx:209 -#: src/components/nav/Layout.tsx:70 +#: src/components/nav/Layout.tsx:77 #: src/tables/part/PartThumbTable.tsx:192 msgid "Search..." -msgstr "" +msgstr "搜索..." #: src/components/forms/fields/IconField.tsx:223 msgid "Select category" -msgstr "" +msgstr "選擇分類" #: src/components/forms/fields/IconField.tsx:232 msgid "Select pack" -msgstr "" +msgstr "選擇包" #: src/components/forms/fields/IconField.tsx:237 msgid "{0} icons" -msgstr "" +msgstr "{0} 個圖標" -#: src/components/forms/fields/RelatedModelField.tsx:318 -#: src/pages/Index/Settings/UserSettings.tsx:96 +#: src/components/forms/fields/RelatedModelField.tsx:319 +#: src/pages/Index/Settings/UserSettings.tsx:97 #: src/tables/Search.tsx:23 msgid "Search" msgstr "搜尋" -#: src/components/forms/fields/RelatedModelField.tsx:319 +#: src/components/forms/fields/RelatedModelField.tsx:320 #: src/components/modals/AboutInvenTreeModal.tsx:81 -#: src/components/widgets/WidgetLayout.tsx:120 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:316 msgid "Loading" -msgstr "" +msgstr "正在加載" -#: src/components/forms/fields/RelatedModelField.tsx:321 +#: src/components/forms/fields/RelatedModelField.tsx:322 msgid "No results found" msgstr "找不到結果" -#: src/components/forms/fields/TableField.tsx:52 -msgid "modelRenderer entry required for tables" -msgstr "" +#: src/components/forms/fields/TableField.tsx:72 +#~ msgid "modelRenderer entry required for tables" +#~ msgstr "modelRenderer entry required for tables" -#: src/components/forms/fields/TableField.tsx:76 +#: src/components/forms/fields/TableField.tsx:167 msgid "No entries available" -msgstr "" +msgstr "無可用條目" #: src/components/images/DetailsImage.tsx:252 #~ msgid "Select image" @@ -702,69 +1010,70 @@ msgstr "縮圖" #: src/components/importer/ImportDataSelector.tsx:170 msgid "Importing Rows" -msgstr "" +msgstr "導入行" #: src/components/importer/ImportDataSelector.tsx:171 msgid "Please wait while the data is imported" -msgstr "" +msgstr "請稍候,數據正在導入" #: src/components/importer/ImportDataSelector.tsx:188 msgid "An error occurred while importing data" -msgstr "" +msgstr "導入數據時發生錯誤" #: src/components/importer/ImportDataSelector.tsx:209 msgid "Edit Data" -msgstr "" +msgstr "編輯數據" #: src/components/importer/ImportDataSelector.tsx:237 msgid "Delete Row" -msgstr "" +msgstr "刪除行" #: src/components/importer/ImportDataSelector.tsx:267 msgid "Row" -msgstr "" +msgstr "行" #: src/components/importer/ImportDataSelector.tsx:285 msgid "Row contains errors" -msgstr "" +msgstr "行包含錯誤" #: src/components/importer/ImportDataSelector.tsx:326 msgid "Accept" -msgstr "" +msgstr "同意" #: src/components/importer/ImportDataSelector.tsx:359 msgid "Valid" -msgstr "" +msgstr "有效" #: src/components/importer/ImportDataSelector.tsx:360 msgid "Filter by row validation status" -msgstr "" +msgstr "按行驗證狀態篩選" #: src/components/importer/ImportDataSelector.tsx:365 -#: src/tables/build/BuildOutputTable.tsx:266 +#: src/tables/build/BuildOutputTable.tsx:407 msgid "Complete" -msgstr "" +msgstr "已完成" #: src/components/importer/ImportDataSelector.tsx:366 msgid "Filter by row completion status" -msgstr "" +msgstr "按行完成狀態篩選" -#: src/components/importer/ImportDataSelector.tsx:383 +#: src/components/importer/ImportDataSelector.tsx:384 msgid "Import selected rows" -msgstr "" +msgstr "導入選定的行" -#: src/components/importer/ImportDataSelector.tsx:398 +#: src/components/importer/ImportDataSelector.tsx:399 msgid "Processing Data" -msgstr "" +msgstr "處理數據中" -#: src/components/importer/ImporterColumnSelector.tsx:50 -#: src/components/importer/ImporterColumnSelector.tsx:176 +#: src/components/importer/ImporterColumnSelector.tsx:53 +#: src/components/importer/ImporterColumnSelector.tsx:179 +#: src/components/items/ErrorItem.tsx:12 msgid "An error occurred" -msgstr "" +msgstr "發生錯誤" -#: src/components/importer/ImporterColumnSelector.tsx:62 +#: src/components/importer/ImporterColumnSelector.tsx:65 msgid "Select column, or leave blank to ignore this field." -msgstr "" +msgstr "選擇列,或留空忽略此字段。" #: src/components/importer/ImporterColumnSelector.tsx:91 #~ msgid "Select a column from the data file" @@ -778,252 +1087,303 @@ msgstr "" #~ msgid "Imported Column Name" #~ msgstr "Imported Column Name" -#: src/components/importer/ImporterColumnSelector.tsx:182 +#: src/components/importer/ImporterColumnSelector.tsx:185 msgid "Ignore this field" -msgstr "" +msgstr "忽略該字段" -#: src/components/importer/ImporterColumnSelector.tsx:196 +#: src/components/importer/ImporterColumnSelector.tsx:199 msgid "Mapping data columns to database fields" -msgstr "" +msgstr "將數據列映射到數據庫字段" -#: src/components/importer/ImporterColumnSelector.tsx:201 +#: src/components/importer/ImporterColumnSelector.tsx:204 msgid "Accept Column Mapping" -msgstr "" - -#: src/components/importer/ImporterColumnSelector.tsx:214 -msgid "Database Field" -msgstr "" - -#: src/components/importer/ImporterColumnSelector.tsx:215 -msgid "Field Description" -msgstr "" - -#: src/components/importer/ImporterColumnSelector.tsx:216 -msgid "Imported Column" -msgstr "" +msgstr "接受列映射" #: src/components/importer/ImporterColumnSelector.tsx:217 +msgid "Database Field" +msgstr "數據庫字段" + +#: src/components/importer/ImporterColumnSelector.tsx:218 +msgid "Field Description" +msgstr "字段描述" + +#: src/components/importer/ImporterColumnSelector.tsx:219 +msgid "Imported Column" +msgstr "導入列" + +#: src/components/importer/ImporterColumnSelector.tsx:220 msgid "Default Value" -msgstr "" - -#: src/components/importer/ImporterDrawer.tsx:44 -msgid "Upload File" -msgstr "" - -#: src/components/importer/ImporterDrawer.tsx:45 -msgid "Map Columns" -msgstr "" +msgstr "默認值" #: src/components/importer/ImporterDrawer.tsx:46 -msgid "Import Data" -msgstr "" +msgid "Upload File" +msgstr "上傳文件" #: src/components/importer/ImporterDrawer.tsx:47 -msgid "Process Data" -msgstr "" +msgid "Map Columns" +msgstr "映射列" #: src/components/importer/ImporterDrawer.tsx:48 +msgid "Import Data" +msgstr "導入數據" + +#: src/components/importer/ImporterDrawer.tsx:49 +msgid "Process Data" +msgstr "處理數據" + +#: src/components/importer/ImporterDrawer.tsx:50 msgid "Complete Import" -msgstr "" +msgstr "完成導入" #: src/components/importer/ImporterDrawer.tsx:97 #~ msgid "Cancel import session" #~ msgstr "Cancel import session" -#: src/components/importer/ImporterDrawer.tsx:104 +#: src/components/importer/ImporterDrawer.tsx:106 msgid "Import Complete" -msgstr "" - -#: src/components/importer/ImporterDrawer.tsx:107 -msgid "Data has been imported successfully" -msgstr "" +msgstr "導入完畢" #: src/components/importer/ImporterDrawer.tsx:109 -#: src/components/importer/ImporterDrawer.tsx:118 +msgid "Data has been imported successfully" +msgstr "數據已成功導入" + +#: src/components/importer/ImporterDrawer.tsx:111 +#: src/components/importer/ImporterDrawer.tsx:120 msgid "Close" -msgstr "" +msgstr "關閉" -#: src/components/importer/ImporterDrawer.tsx:115 +#: src/components/importer/ImporterDrawer.tsx:117 msgid "Unknown Status" -msgstr "" +msgstr "未知狀態" -#: src/components/importer/ImporterDrawer.tsx:116 +#: src/components/importer/ImporterDrawer.tsx:118 msgid "Import session has unknown status" -msgstr "" +msgstr "導入會話狀態未知" -#: src/components/importer/ImporterDrawer.tsx:135 +#: src/components/importer/ImporterDrawer.tsx:137 msgid "Importing Data" -msgstr "" +msgstr "正在導入數據" #: src/components/importer/ImporterImportProgress.tsx:36 msgid "Importing Records" -msgstr "" +msgstr "導入記錄" #: src/components/importer/ImporterImportProgress.tsx:39 -msgid "Imported rows" -msgstr "" +#: src/tables/settings/ImportSessionTable.tsx:78 +msgid "Imported Rows" +msgstr "導入的行" -#: src/components/items/ActionDropdown.tsx:121 -msgid "Barcode Actions" -msgstr "" +#: src/components/importer/ImporterImportProgress.tsx:39 +#~ msgid "Imported rows" +#~ msgstr "Imported rows" + +#: src/components/items/ActionDropdown.tsx:126 +msgid "Options" +msgstr "選項" #: src/components/items/ActionDropdown.tsx:140 -msgid "View Barcode" -msgstr "" - -#: src/components/items/ActionDropdown.tsx:147 -msgid "View" -msgstr "" - -#: src/components/items/ActionDropdown.tsx:148 -msgid "View barcode" -msgstr "" - -#: src/components/items/ActionDropdown.tsx:161 -msgid "Link Barcode" -msgstr "" +#~ msgid "View Barcode" +#~ msgstr "View Barcode" #: src/components/items/ActionDropdown.tsx:162 -msgid "Link custom barcode" -msgstr "" +#: src/tables/InvenTreeTableHeader.tsx:159 +#: src/tables/InvenTreeTableHeader.tsx:160 +msgid "Barcode Actions" +msgstr "條碼操作" -#: src/components/items/ActionDropdown.tsx:173 -#: src/forms/PurchaseOrderForms.tsx:426 -msgid "Unlink Barcode" -msgstr "" +#: src/components/items/ActionDropdown.tsx:162 +#~ msgid "Link custom barcode" +#~ msgstr "Link custom barcode" -#: src/components/items/ActionDropdown.tsx:174 -msgid "Unlink custom barcode" -msgstr "" +#: src/components/items/ActionDropdown.tsx:167 +msgid "View" +msgstr "視圖" + +#: src/components/items/ActionDropdown.tsx:169 +msgid "View barcode" +msgstr "查看條碼" + +#: src/components/items/ActionDropdown.tsx:175 +msgid "Link Barcode" +msgstr "關聯二維碼" + +#: src/components/items/ActionDropdown.tsx:177 +msgid "Link a custom barcode to this item" +msgstr "將自定義條碼鏈接到此項目" #: src/components/items/ActionDropdown.tsx:183 -#: src/tables/RowActions.tsx:33 +#: src/components/items/QRCode.tsx:193 +#: src/forms/PurchaseOrderForms.tsx:464 +msgid "Unlink Barcode" +msgstr "解綁條碼" + +#: src/components/items/ActionDropdown.tsx:185 +msgid "Unlink custom barcode" +msgstr "解綁自定義條碼鏈接" + +#: src/components/items/ActionDropdown.tsx:236 +#: src/tables/RowActions.tsx:39 msgid "Edit" -msgstr "" +msgstr "編輯" -#: src/components/items/ActionDropdown.tsx:184 +#: src/components/items/ActionDropdown.tsx:237 msgid "Edit item" -msgstr "" +msgstr "編輯項目" -#: src/components/items/ActionDropdown.tsx:196 +#: src/components/items/ActionDropdown.tsx:249 msgid "Delete item" -msgstr "" +msgstr "刪除項目" -#: src/components/items/ActionDropdown.tsx:204 -#: src/components/items/ActionDropdown.tsx:205 +#: src/components/items/ActionDropdown.tsx:257 +#: src/components/items/ActionDropdown.tsx:258 msgid "Hold" -msgstr "" +msgstr "掛起" -#: src/components/items/ActionDropdown.tsx:227 -#: src/tables/RowActions.tsx:23 +#: src/components/items/ActionDropdown.tsx:280 +#: src/tables/RowActions.tsx:29 msgid "Duplicate" -msgstr "" +msgstr "複製" -#: src/components/items/ActionDropdown.tsx:228 +#: src/components/items/ActionDropdown.tsx:281 msgid "Duplicate item" -msgstr "" +msgstr "重複項目" + +#: src/components/items/BarcodeInput.tsx:23 +msgid "Scan barcode data here using barcode scanner" +msgstr "使用條碼掃描儀在此處掃描條碼數據" + +#: src/components/items/BarcodeInput.tsx:24 +#: src/tables/settings/BarcodeScanHistoryTable.tsx:65 +msgid "Barcode" +msgstr "條碼" + +#: src/components/items/BarcodeInput.tsx:25 +msgid "Scan" +msgstr "掃描" #: src/components/items/DocTooltip.tsx:92 +#: src/components/items/GettingStartedCarousel.tsx:20 msgid "Read More" -msgstr "" +msgstr "瞭解更多" -#: src/components/items/ErrorItem.tsx:5 -#: src/tables/InvenTreeTable.tsx:487 +#: src/components/items/ErrorItem.tsx:8 +#: src/tables/InvenTreeTable.tsx:473 msgid "Unknown error" -msgstr "" +msgstr "未知錯誤" -#: src/components/items/ErrorItem.tsx:10 -msgid "An error occurred:" -msgstr "" +#: src/components/items/ErrorItem.tsx:13 +#~ msgid "An error occurred:" +#~ msgstr "An error occurred:" #: src/components/items/GettingStartedCarousel.tsx:27 -msgid "Read more" -msgstr "" +#~ msgid "Read more" +#~ msgstr "Read more" #: src/components/items/InfoItem.tsx:27 msgid "None" -msgstr "" +msgstr "無" #: src/components/items/InvenTreeLogo.tsx:23 msgid "InvenTree Logo" -msgstr "" +msgstr "InvenTree Logo" #: src/components/items/OnlyStaff.tsx:9 #: src/components/modals/AboutInvenTreeModal.tsx:44 msgid "This information is only available for staff users" -msgstr "" +msgstr "此信息僅供員工使用" #: src/components/items/Placeholder.tsx:14 msgid "This feature/button/site is a placeholder for a feature that is not implemented, only partial or intended for testing." -msgstr "" +msgstr "此功能/按鈕/站點是一個未實現的功能的佔位符,只是部分或打算測試的功能。" #: src/components/items/Placeholder.tsx:17 msgid "PLH" -msgstr "" +msgstr "PLH" #: src/components/items/Placeholder.tsx:31 msgid "This panel is a placeholder." -msgstr "" - -#: src/components/items/QRCode.tsx:87 -msgid "Low (7%)" -msgstr "" - -#: src/components/items/QRCode.tsx:88 -msgid "Medium (15%)" -msgstr "" +msgstr "此面板是一個佔位符。" #: src/components/items/QRCode.tsx:89 -msgid "Quartile (25%)" -msgstr "" +msgid "Low (7%)" +msgstr "低 (7%)" #: src/components/items/QRCode.tsx:90 -msgid "High (30%)" -msgstr "" +msgid "Medium (15%)" +msgstr "中 (15%)" -#: src/components/items/QRCode.tsx:107 -msgid "Barcode Data:" -msgstr "" +#: src/components/items/QRCode.tsx:91 +msgid "Quartile (25%)" +msgstr "四分之一(25%)" + +#: src/components/items/QRCode.tsx:92 +msgid "High (30%)" +msgstr "高 (30%)" + +#: src/components/items/QRCode.tsx:100 +msgid "Custom barcode" +msgstr "自定義條碼" + +#: src/components/items/QRCode.tsx:101 +msgid "A custom barcode is registered for this item. The shown code is not that custom barcode." +msgstr "此條目註冊了自定義條碼。顯示的代碼並非該條碼。" #: src/components/items/QRCode.tsx:118 +msgid "Barcode Data:" +msgstr "條碼數據:" + +#: src/components/items/QRCode.tsx:129 msgid "Select Error Correction Level" -msgstr "" +msgstr "選擇錯誤糾正級別" + +#: src/components/items/QRCode.tsx:171 +#: src/pages/part/PartDetail.tsx:239 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:187 +#: src/pages/sales/ReturnOrderDetail.tsx:157 +#: src/pages/sales/SalesOrderDetail.tsx:169 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:166 +msgid "Link" +msgstr "鏈接" + +#: src/components/items/QRCode.tsx:190 +msgid "This will remove the link to the associated barcode" +msgstr "這將刪除關聯條碼的鏈接" #: src/components/modals/AboutInvenTreeModal.tsx:99 msgid "Version Information" -msgstr "" +msgstr "版本信息" #: src/components/modals/AboutInvenTreeModal.tsx:103 msgid "Your InvenTree version status is" -msgstr "" +msgstr "您的Inventree 版本狀態是" #: src/components/modals/AboutInvenTreeModal.tsx:107 msgid "Development Version" -msgstr "" +msgstr "開發版" #: src/components/modals/AboutInvenTreeModal.tsx:111 msgid "Up to Date" -msgstr "" +msgstr "已是最新版本" #: src/components/modals/AboutInvenTreeModal.tsx:115 msgid "Update Available" -msgstr "" +msgstr "有可用更新" #: src/components/modals/AboutInvenTreeModal.tsx:125 msgid "InvenTree Version" -msgstr "" +msgstr "InvenTree 版本" #: src/components/modals/AboutInvenTreeModal.tsx:131 msgid "Commit Hash" -msgstr "" +msgstr "提交哈希值" #: src/components/modals/AboutInvenTreeModal.tsx:136 msgid "Commit Date" -msgstr "" +msgstr "提交日期" #: src/components/modals/AboutInvenTreeModal.tsx:141 msgid "Commit Branch" -msgstr "" +msgstr "提交分支" #: src/components/modals/AboutInvenTreeModal.tsx:146 #: src/components/modals/ServerInfoModal.tsx:133 @@ -1040,122 +1400,81 @@ msgstr "Django 版本" #: src/components/modals/AboutInvenTreeModal.tsx:162 msgid "Links" -msgstr "" +msgstr "鏈接" #: src/components/modals/AboutInvenTreeModal.tsx:168 msgid "InvenTree Documentation" -msgstr "" +msgstr "InvenTree 文檔" #: src/components/modals/AboutInvenTreeModal.tsx:169 msgid "View Code on GitHub" -msgstr "" +msgstr "在Github上查看源代碼" #: src/components/modals/AboutInvenTreeModal.tsx:170 msgid "Credits" -msgstr "" +msgstr "致謝" #: src/components/modals/AboutInvenTreeModal.tsx:171 msgid "Mobile App" -msgstr "" +msgstr "手機 App" #: src/components/modals/AboutInvenTreeModal.tsx:172 msgid "Submit Bug Report" -msgstr "" +msgstr "提交問題報告" -#: src/components/modals/AboutInvenTreeModal.tsx:183 +#: src/components/modals/AboutInvenTreeModal.tsx:181 msgid "Copy version information" -msgstr "" +msgstr "複製版本信息" -#: src/components/modals/AboutInvenTreeModal.tsx:192 +#: src/components/modals/AboutInvenTreeModal.tsx:189 #: src/components/modals/ServerInfoModal.tsx:147 msgid "Dismiss" -msgstr "" +msgstr "關閉" #: src/components/modals/LicenseModal.tsx:39 msgid "No license text available" -msgstr "" +msgstr "沒有可用的許可文本" #: src/components/modals/LicenseModal.tsx:46 msgid "No Information provided - this is likely a server issue" -msgstr "" +msgstr "未提供信息 - 這可能是服務器問題" #: src/components/modals/LicenseModal.tsx:71 msgid "Loading license information" -msgstr "" +msgstr "正在加載許可證信息" #: src/components/modals/LicenseModal.tsx:77 msgid "Failed to fetch license information" -msgstr "" +msgstr "獲取許可信息失敗" #: src/components/modals/LicenseModal.tsx:85 msgid "{key} Packages" -msgstr "" +msgstr "{key} 包" -#: src/components/modals/QrCodeModal.tsx:72 +#: src/components/modals/QrCodeModal.tsx:24 msgid "Unknown response" -msgstr "" +msgstr "未知響應" -#: src/components/modals/QrCodeModal.tsx:102 -#: src/pages/Index/Scan.tsx:636 -msgid "Error while getting camera" -msgstr "" - -#: src/components/modals/QrCodeModal.tsx:125 -#: src/pages/Index/Scan.tsx:659 -msgid "Error while scanning" -msgstr "" - -#: src/components/modals/QrCodeModal.tsx:139 -#: src/pages/Index/Scan.tsx:673 -msgid "Error while stopping" -msgstr "" - -#: src/components/modals/QrCodeModal.tsx:154 -#: src/defaults/menuItems.tsx:21 -#: src/pages/Index/Scan.tsx:746 -msgid "Scanning" -msgstr "" - -#: src/components/modals/QrCodeModal.tsx:154 -#: src/pages/Index/Scan.tsx:746 -msgid "Not scanning" -msgstr "" - -#: src/components/modals/QrCodeModal.tsx:159 -#: src/pages/Index/Scan.tsx:752 -msgid "Select Camera" -msgstr "" - -#: src/components/modals/QrCodeModal.tsx:169 -#: src/pages/Index/Scan.tsx:737 -msgid "Start scanning" -msgstr "" - -#: src/components/modals/QrCodeModal.tsx:176 -#: src/pages/Index/Scan.tsx:729 -msgid "Stop scanning" -msgstr "" - -#: src/components/modals/QrCodeModal.tsx:181 +#: src/components/modals/QrCodeModal.tsx:39 msgid "No scans yet!" -msgstr "" +msgstr "還沒有掃描!" -#: src/components/modals/QrCodeModal.tsx:201 +#: src/components/modals/QrCodeModal.tsx:57 msgid "Close modal" -msgstr "" +msgstr "關閉模態框" #: src/components/modals/ServerInfoModal.tsx:26 -#: src/pages/Index/Settings/SystemSettings.tsx:38 +#: src/pages/Index/Settings/SystemSettings.tsx:37 msgid "Server" -msgstr "" +msgstr "服務器" #: src/components/modals/ServerInfoModal.tsx:32 msgid "Instance Name" -msgstr "" +msgstr "實例名稱" #: src/components/modals/ServerInfoModal.tsx:38 msgid "Database" -msgstr "" +msgstr "數據庫" #: src/components/modals/ServerInfoModal.tsx:38 #~ msgid "Bebug Mode" @@ -1163,73 +1482,74 @@ msgstr "" #: src/components/modals/ServerInfoModal.tsx:47 msgid "Debug Mode" -msgstr "" +msgstr "調試模式" #: src/components/modals/ServerInfoModal.tsx:50 msgid "Server is running in debug mode" -msgstr "" +msgstr "服務器以調試模式運行" #: src/components/modals/ServerInfoModal.tsx:57 msgid "Docker Mode" -msgstr "" +msgstr "停靠模式" #: src/components/modals/ServerInfoModal.tsx:60 msgid "Server is deployed using docker" -msgstr "" +msgstr "服務器是使用docker部署的" #: src/components/modals/ServerInfoModal.tsx:66 msgid "Plugin Support" -msgstr "" +msgstr "插件支持" #: src/components/modals/ServerInfoModal.tsx:71 msgid "Plugin support enabled" -msgstr "" +msgstr "插件支持已啓用" #: src/components/modals/ServerInfoModal.tsx:73 msgid "Plugin support disabled" -msgstr "" +msgstr "插件支持已禁用" #: src/components/modals/ServerInfoModal.tsx:80 msgid "Server status" -msgstr "" +msgstr "服務器狀態" #: src/components/modals/ServerInfoModal.tsx:86 msgid "Healthy" -msgstr "" +msgstr "健康" #: src/components/modals/ServerInfoModal.tsx:88 msgid "Issues detected" -msgstr "" +msgstr "檢測到問題" #: src/components/modals/ServerInfoModal.tsx:97 msgid "Background Worker" -msgstr "" +msgstr "後台工作者" #: src/components/modals/ServerInfoModal.tsx:101 +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:29 msgid "Background worker not running" -msgstr "" +msgstr "後台worker未運行" #: src/components/modals/ServerInfoModal.tsx:109 msgid "Email Settings" -msgstr "" +msgstr "電子郵件設置" #: src/components/modals/ServerInfoModal.tsx:113 msgid "Email settings not configured" -msgstr "" +msgstr "電子郵件設置未配置" #: src/components/modals/ServerInfoModal.tsx:121 -#: src/tables/plugin/PluginListTable.tsx:144 -#: src/tables/plugin/PluginListTable.tsx:294 +#: src/components/plugins/PluginDrawer.tsx:89 +#: src/tables/plugin/PluginListTable.tsx:116 msgid "Version" -msgstr "" +msgstr "版本" #: src/components/modals/ServerInfoModal.tsx:127 msgid "Server Version" -msgstr "" +msgstr "服務器版本" -#: src/components/nav/Layout.tsx:73 +#: src/components/nav/Layout.tsx:80 msgid "Nothing found..." -msgstr "" +msgstr "無結果..." #: src/components/nav/MainMenu.tsx:40 #: src/pages/Index/Profile/Profile.tsx:15 @@ -1237,20 +1557,28 @@ msgstr "" #~ msgstr "Profile" #: src/components/nav/MainMenu.tsx:52 +#: src/components/nav/NavigationDrawer.tsx:178 #: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:28 msgid "Settings" -msgstr "" +msgstr "設置" + +#: src/components/nav/MainMenu.tsx:59 +#: src/pages/Index/Settings/UserSettings.tsx:152 +msgid "Account Settings" +msgstr "賬户設置" #: src/components/nav/MainMenu.tsx:59 #: src/defaults/menuItems.tsx:15 -msgid "Account settings" -msgstr "" +#~ msgid "Account settings" +#~ msgstr "Account settings" #: src/components/nav/MainMenu.tsx:67 -#: src/defaults/menuItems.tsx:58 -#: src/pages/Index/Settings/SystemSettings.tsx:315 +#: src/components/nav/NavigationDrawer.tsx:141 +#: src/components/nav/SettingsHeader.tsx:49 +#: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:37 +#: src/pages/Index/Settings/SystemSettings.tsx:310 msgid "System Settings" -msgstr "" +msgstr "系統設置" #: src/components/nav/MainMenu.tsx:68 #~ msgid "Current language {locale}" @@ -1260,517 +1588,787 @@ msgstr "" #~ msgid "Switch to pseudo language" #~ msgstr "Switch to pseudo language" -#: src/components/nav/MainMenu.tsx:77 -msgid "Change Color Mode" -msgstr "" - #: src/components/nav/MainMenu.tsx:86 -#: src/defaults/actions.tsx:71 -#: src/defaults/menuItems.tsx:63 -#: src/pages/Index/Settings/AdminCenter/Index.tsx:221 +#: src/components/nav/NavigationDrawer.tsx:148 +#: src/components/nav/SettingsHeader.tsx:50 +#: src/defaults/actions.tsx:63 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:251 msgid "Admin Center" -msgstr "" +msgstr "管理中心" #: src/components/nav/MainMenu.tsx:96 msgid "Logout" -msgstr "" - -#: src/components/nav/NavHoverMenu.tsx:65 -#: src/defaults/actions.tsx:60 -msgid "Open Navigation" -msgstr "" +msgstr "登出" #: src/components/nav/NavHoverMenu.tsx:84 -msgid "View all" -msgstr "" +#~ msgid "View all" +#~ msgstr "View all" #: src/components/nav/NavHoverMenu.tsx:100 #: src/components/nav/NavHoverMenu.tsx:110 -msgid "Get started" -msgstr "" +#~ msgid "Get started" +#~ msgstr "Get started" #: src/components/nav/NavHoverMenu.tsx:103 -msgid "Overview over high-level objects, functions and possible usecases." -msgstr "" - -#: src/components/nav/NavigationDrawer.tsx:57 -msgid "Navigation" -msgstr "" +#~ msgid "Overview over high-level objects, functions and possible usecases." +#~ msgstr "Overview over high-level objects, functions and possible usecases." #: src/components/nav/NavigationDrawer.tsx:60 -msgid "Pages" +#~ msgid "Pages" +#~ msgstr "Pages" + +#: src/components/nav/NavigationDrawer.tsx:77 +#: src/components/render/ModelType.tsx:31 +#: src/defaults/links.tsx:10 +#: src/pages/Index/Settings/SystemSettings.tsx:172 +#: src/pages/part/CategoryDetail.tsx:125 +#: src/pages/part/CategoryDetail.tsx:249 +#: src/pages/part/CategoryDetail.tsx:279 +#: src/pages/part/PartDetail.tsx:856 +msgid "Parts" +msgstr "零件" + +#: src/components/nav/NavigationDrawer.tsx:84 +#: src/components/render/Part.tsx:30 +#: src/defaults/links.tsx:11 +#: src/pages/Index/Settings/SystemSettings.tsx:205 +#: src/pages/part/PartDetail.tsx:593 +#: src/pages/stock/LocationDetail.tsx:352 +#: src/pages/stock/StockDetail.tsx:528 +#: src/tables/stock/StockItemTable.tsx:69 +msgid "Stock" +msgstr "庫存" + +#: src/components/nav/NavigationDrawer.tsx:91 +#: src/defaults/links.tsx:13 +#: src/pages/build/BuildDetail.tsx:530 +#: src/pages/build/BuildIndex.tsx:36 +msgid "Manufacturing" msgstr "" -#: src/components/nav/NavigationDrawer.tsx:65 -#: src/pages/Index/Settings/AdminCenter/Index.tsx:176 -#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:41 -msgid "Plugins" -msgstr "" +#: src/components/nav/NavigationDrawer.tsx:98 +#: src/defaults/links.tsx:18 +#: src/pages/company/ManufacturerDetail.tsx:9 +#: src/pages/company/ManufacturerPartDetail.tsx:258 +#: src/pages/company/SupplierDetail.tsx:9 +#: src/pages/company/SupplierPartDetail.tsx:336 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:480 +#: src/pages/purchasing/PurchasingIndex.tsx:60 +msgid "Purchasing" +msgstr "採購中" -#: src/components/nav/NavigationDrawer.tsx:75 -#: src/defaults/actions.tsx:32 -msgid "Documentation" -msgstr "" +#: src/components/nav/NavigationDrawer.tsx:105 +#: src/defaults/links.tsx:22 +#: src/pages/company/CustomerDetail.tsx:9 +#: src/pages/sales/ReturnOrderDetail.tsx:469 +#: src/pages/sales/SalesIndex.tsx:53 +#: src/pages/sales/SalesOrderDetail.tsx:520 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:343 +msgid "Sales" +msgstr "銷售" -#: src/components/nav/NavigationDrawer.tsx:78 -msgid "About" -msgstr "" - -#: src/components/nav/NotificationDrawer.tsx:92 -#: src/pages/Index/Settings/SystemSettings.tsx:109 -#: src/pages/Index/Settings/UserSettings.tsx:126 +#: src/components/nav/NavigationDrawer.tsx:129 +#: src/components/nav/NotificationDrawer.tsx:178 +#: src/pages/Index/Settings/SystemSettings.tsx:110 +#: src/pages/Index/Settings/UserSettings.tsx:127 #: src/pages/Notifications.tsx:65 #: src/pages/Notifications.tsx:151 msgid "Notifications" +msgstr "通知" + +#: src/components/nav/NavigationDrawer.tsx:135 +#: src/components/nav/SettingsHeader.tsx:48 +msgid "User Settings" msgstr "" -#: src/components/nav/NotificationDrawer.tsx:94 +#: src/components/nav/NavigationDrawer.tsx:173 +msgid "Navigation" +msgstr "導航欄" + +#: src/components/nav/NavigationDrawer.tsx:183 +#: src/forms/PurchaseOrderForms.tsx:689 +#: src/forms/StockForms.tsx:614 +#: src/forms/StockForms.tsx:651 +#: src/forms/StockForms.tsx:677 +#: src/forms/StockForms.tsx:705 +#: src/forms/StockForms.tsx:736 +#: src/forms/StockForms.tsx:771 +#: src/forms/StockForms.tsx:813 +#: src/forms/StockForms.tsx:851 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:413 +#: src/tables/RowActions.tsx:129 +#: src/tables/build/BuildLineTable.tsx:101 +msgid "Actions" +msgstr "操作" + +#: src/components/nav/NavigationDrawer.tsx:191 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:205 +#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:44 +msgid "Plugins" +msgstr "插件" + +#: src/components/nav/NavigationDrawer.tsx:204 +#: src/defaults/actions.tsx:24 +msgid "Documentation" +msgstr "文檔" + +#: src/components/nav/NavigationDrawer.tsx:210 +msgid "About" +msgstr "關於" + +#: src/components/nav/NotificationDrawer.tsx:180 msgid "Mark all as read" -msgstr "" +msgstr "全部標記為已讀" -#: src/components/nav/NotificationDrawer.tsx:104 +#: src/components/nav/NotificationDrawer.tsx:190 msgid "View all notifications" -msgstr "" +msgstr "查看全部通知" -#: src/components/nav/NotificationDrawer.tsx:123 +#: src/components/nav/NotificationDrawer.tsx:210 msgid "You have no unread notifications." -msgstr "" +msgstr "您沒有未讀通知" -#: src/components/nav/NotificationDrawer.tsx:139 -#: src/components/nav/NotificationDrawer.tsx:145 -#: src/tables/notifications/NotificationsTable.tsx:36 -msgid "Notification" -msgstr "" - -#: src/components/nav/NotificationDrawer.tsx:168 -#: src/pages/Notifications.tsx:73 -msgid "Mark as read" -msgstr "" - -#: src/components/nav/SearchDrawer.tsx:78 +#: src/components/nav/SearchDrawer.tsx:85 msgid "results" -msgstr "" +msgstr "結果" -#: src/components/nav/SearchDrawer.tsx:370 +#: src/components/nav/SearchDrawer.tsx:380 msgid "Enter search text" +msgstr "輸入搜索文本" + +#: src/components/nav/SearchDrawer.tsx:391 +msgid "Refresh search results" msgstr "" -#: src/components/nav/SearchDrawer.tsx:397 +#: src/components/nav/SearchDrawer.tsx:402 +#: src/components/nav/SearchDrawer.tsx:409 msgid "Search Options" -msgstr "" +msgstr "搜索選項" -#: src/components/nav/SearchDrawer.tsx:400 +#: src/components/nav/SearchDrawer.tsx:412 msgid "Regex search" -msgstr "" +msgstr "正則表達式搜索" -#: src/components/nav/SearchDrawer.tsx:410 +#: src/components/nav/SearchDrawer.tsx:421 msgid "Whole word search" -msgstr "" +msgstr "全詞搜索" -#: src/components/nav/SearchDrawer.tsx:451 +#: src/components/nav/SearchDrawer.tsx:461 msgid "An error occurred during search query" -msgstr "" +msgstr "搜索查詢時發生錯誤" #: src/components/nav/SearchDrawer.tsx:462 -msgid "No results" -msgstr "" +#~ msgid "No results" +#~ msgstr "No results" -#: src/components/nav/SearchDrawer.tsx:465 +#: src/components/nav/SearchDrawer.tsx:472 +#: src/tables/part/PartTestTemplateTable.tsx:76 +msgid "No Results" +msgstr "無結果" + +#: src/components/nav/SearchDrawer.tsx:475 msgid "No results available for search query" +msgstr "沒有可供搜索查詢的結果" + +#: src/components/panels/AttachmentPanel.tsx:18 +msgid "Attachments" +msgstr "附件" + +#: src/components/panels/NotesPanel.tsx:24 +#: src/tables/build/BuildOrderTestTable.tsx:143 +#: src/tables/stock/StockTrackingTable.tsx:204 +msgid "Notes" +msgstr "備註" + +#: src/components/plugins/PluginDrawer.tsx:47 +msgid "Plugin Inactive" msgstr "" -#: src/components/render/Instance.tsx:217 +#: src/components/plugins/PluginDrawer.tsx:50 +msgid "Plugin is not active" +msgstr "插件未激活" + +#: src/components/plugins/PluginDrawer.tsx:60 +msgid "Plugin Information" +msgstr "" + +#: src/components/plugins/PluginDrawer.tsx:74 +#: src/pages/build/BuildDetail.tsx:116 +#: src/pages/company/CompanyDetail.tsx:89 +#: src/pages/company/ManufacturerPartDetail.tsx:89 +#: src/pages/company/ManufacturerPartDetail.tsx:116 +#: src/pages/company/SupplierPartDetail.tsx:140 +#: src/pages/part/CategoryDetail.tsx:101 +#: src/pages/part/PartDetail.tsx:178 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:136 +#: src/pages/sales/ReturnOrderDetail.tsx:107 +#: src/pages/sales/SalesOrderDetail.tsx:116 +#: src/pages/stock/LocationDetail.tsx:103 +#: src/tables/ColumnRenderers.tsx:92 +#: src/tables/bom/UsedInTable.tsx:44 +#: src/tables/build/BuildAllocatedStockTable.tsx:83 +#: src/tables/build/BuildLineTable.tsx:329 +#: src/tables/machine/MachineTypeTable.tsx:74 +#: src/tables/machine/MachineTypeTable.tsx:129 +#: src/tables/machine/MachineTypeTable.tsx:240 +#: src/tables/machine/MachineTypeTable.tsx:344 +#: src/tables/part/RelatedPartTable.tsx:66 +#: src/tables/plugin/PluginListTable.tsx:99 +#: src/tables/sales/SalesOrderAllocationTable.tsx:87 +#: src/tables/sales/SalesOrderLineItemTable.tsx:75 +#: src/tables/stock/LocationTypesTable.tsx:74 +msgid "Description" +msgstr "描述" + +#: src/components/plugins/PluginDrawer.tsx:79 +msgid "Author" +msgstr "作者" + +#: src/components/plugins/PluginDrawer.tsx:84 +#: src/pages/part/PartSchedulingDetail.tsx:277 +#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:40 +#: src/pages/part/pricing/SaleHistoryPanel.tsx:38 +#: src/tables/ColumnRenderers.tsx:215 +#: src/tables/build/BuildOrderTestTable.tsx:151 +#: src/tables/settings/StocktakeReportTable.tsx:40 +msgid "Date" +msgstr "日期" + +#: src/components/plugins/PluginDrawer.tsx:94 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:398 +#: src/pages/part/PartDetail.tsx:331 +#: src/tables/bom/UsedInTable.tsx:84 +#: src/tables/company/CompanyTable.tsx:62 +#: src/tables/company/CompanyTable.tsx:96 +#: src/tables/machine/MachineListTable.tsx:333 +#: src/tables/machine/MachineListTable.tsx:605 +#: src/tables/part/ParametricPartTable.tsx:223 +#: src/tables/part/PartTable.tsx:178 +#: src/tables/part/PartVariantTable.tsx:15 +#: src/tables/plugin/PluginListTable.tsx:94 +#: src/tables/plugin/PluginListTable.tsx:401 +#: src/tables/purchasing/SupplierPartTable.tsx:100 +#: src/tables/purchasing/SupplierPartTable.tsx:190 +#: src/tables/settings/UserTable.tsx:283 +#: src/tables/stock/StockItemTable.tsx:293 +msgid "Active" +msgstr "激活" + +#: src/components/plugins/PluginDrawer.tsx:106 +msgid "Package Name" +msgstr "軟件包名" + +#: src/components/plugins/PluginDrawer.tsx:112 +msgid "Installation Path" +msgstr "安裝路徑" + +#: src/components/plugins/PluginDrawer.tsx:117 +#: src/tables/machine/MachineTypeTable.tsx:152 +#: src/tables/machine/MachineTypeTable.tsx:276 +#: src/tables/plugin/PluginListTable.tsx:406 +msgid "Builtin" +msgstr "內置" + +#: src/components/plugins/PluginDrawer.tsx:122 +msgid "Package" +msgstr "軟件包" + +#: src/components/plugins/PluginDrawer.tsx:134 +#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:53 +msgid "Plugin Settings" +msgstr "插件設置" + +#: src/components/plugins/PluginDrawer.tsx:146 +#: src/components/render/ModelType.tsx:276 +msgid "Plugin Configuration" +msgstr "插件配置" + +#: src/components/plugins/PluginPanel.tsx:87 +#~ msgid "Error occurred while rendering plugin content" +#~ msgstr "Error occurred while rendering plugin content" + +#: src/components/plugins/PluginPanel.tsx:91 +#~ msgid "Plugin did not provide panel rendering function" +#~ msgstr "Plugin did not provide panel rendering function" + +#: src/components/plugins/PluginPanel.tsx:103 +#~ msgid "No content provided for this plugin" +#~ msgstr "No content provided for this plugin" + +#: src/components/plugins/PluginPanel.tsx:116 +#: src/components/plugins/PluginSettingsPanel.tsx:76 +#~ msgid "Error Loading Plugin" +#~ msgstr "Error Loading Plugin" + +#: src/components/plugins/PluginSettingsPanel.tsx:51 +#~ msgid "Error occurred while rendering plugin settings" +#~ msgstr "Error occurred while rendering plugin settings" + +#: src/components/plugins/PluginSettingsPanel.tsx:55 +#~ msgid "Plugin did not provide settings rendering function" +#~ msgstr "Plugin did not provide settings rendering function" + +#: src/components/plugins/PluginUIFeature.tsx:100 +msgid "Error occurred while rendering the template editor." +msgstr "渲染模板編輯器時出錯。" + +#: src/components/plugins/PluginUIFeature.tsx:111 +msgid "Error Loading Plugin Editor" +msgstr "加載插件編輯器出錯" + +#: src/components/plugins/PluginUIFeature.tsx:147 +msgid "Error occurred while rendering the template preview." +msgstr "渲染模板預覽時出錯。" + +#: src/components/plugins/PluginUIFeature.tsx:158 +msgid "Error Loading Plugin Preview" +msgstr "加載插件預覽出錯" + +#: src/components/plugins/RemoteComponent.tsx:70 +msgid "Invalid source or function name" +msgstr "" + +#: src/components/plugins/RemoteComponent.tsx:91 +msgid "Error Loading Content" +msgstr "" + +#: src/components/plugins/RemoteComponent.tsx:95 +msgid "Error occurred while loading plugin content" +msgstr "" + +#: src/components/render/Instance.tsx:224 msgid "Unknown model: {model}" -msgstr "" +msgstr "未知模型: {model}" -#: src/components/render/ModelType.tsx:22 -#: src/forms/BuildForms.tsx:213 -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/forms/StockForms.tsx:499 -#: src/forms/StockForms.tsx:533 -#: src/forms/StockForms.tsx:562 -#: src/forms/StockForms.tsx:590 -#: src/forms/StockForms.tsx:621 -#: src/forms/StockForms.tsx:656 -#: src/forms/StockForms.tsx:698 -#: src/forms/StockForms.tsx:734 -#: src/pages/build/BuildDetail.tsx:95 -#: src/pages/part/PartDetail.tsx:1073 -#: src/tables/build/BuildAllocatedStockTable.tsx:82 +#: src/components/render/ModelType.tsx:30 +#: src/forms/BuildForms.tsx:269 +#: src/forms/BuildForms.tsx:337 +#: src/forms/BuildForms.tsx:385 +#: src/forms/BuildForms.tsx:515 +#: src/forms/PurchaseOrderForms.tsx:689 +#: src/forms/ReturnOrderForms.tsx:190 +#: src/forms/SalesOrderForms.tsx:248 +#: src/forms/StockForms.tsx:261 +#: src/forms/StockForms.tsx:614 +#: src/forms/StockForms.tsx:651 +#: src/forms/StockForms.tsx:677 +#: src/forms/StockForms.tsx:705 +#: src/forms/StockForms.tsx:736 +#: src/forms/StockForms.tsx:771 +#: src/forms/StockForms.tsx:813 +#: src/forms/StockForms.tsx:851 +#: src/pages/build/BuildDetail.tsx:90 +#: src/pages/part/PartDetail.tsx:1094 +#: src/tables/build/BuildAllocatedStockTable.tsx:95 +#: src/tables/build/BuildLineTable.tsx:72 #: src/tables/part/PartTable.tsx:28 -#: src/tables/part/RelatedPartTable.tsx:45 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:88 -#: src/tables/sales/SalesOrderAllocationTable.tsx:68 -#: src/tables/stock/StockTrackingTable.tsx:74 +#: src/tables/part/RelatedPartTable.tsx:47 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:130 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:100 +#: src/tables/sales/SalesOrderAllocationTable.tsx:99 +#: src/tables/stock/StockTrackingTable.tsx:78 msgid "Part" -msgstr "" +msgstr "零件" -#: src/components/render/ModelType.tsx:23 -#: src/defaults/links.tsx:29 -#: src/defaults/menuItems.tsx:33 -#: src/pages/Index/Settings/SystemSettings.tsx:173 -#: src/pages/part/CategoryDetail.tsx:119 -#: src/pages/part/CategoryDetail.tsx:244 -#: src/pages/part/CategoryDetail.tsx:274 -#: src/pages/part/PartDetail.tsx:827 -msgid "Parts" -msgstr "" - -#: src/components/render/ModelType.tsx:31 +#: src/components/render/ModelType.tsx:40 msgid "Part Parameter Template" -msgstr "" +msgstr "零件參數模板" -#: src/components/render/ModelType.tsx:32 +#: src/components/render/ModelType.tsx:41 msgid "Part Parameter Templates" -msgstr "" +msgstr "零件參數模板" -#: src/components/render/ModelType.tsx:38 +#: src/components/render/ModelType.tsx:48 msgid "Part Test Template" -msgstr "" +msgstr "零件測試模板" -#: src/components/render/ModelType.tsx:39 +#: src/components/render/ModelType.tsx:49 msgid "Part Test Templates" -msgstr "" +msgstr "零件測試模板" -#: src/components/render/ModelType.tsx:45 -#: src/pages/company/SupplierPartDetail.tsx:203 -#: src/pages/company/SupplierPartDetail.tsx:375 -#: src/pages/stock/StockDetail.tsx:173 -#: src/tables/build/BuildAllocatedStockTable.tsx:131 +#: src/components/render/ModelType.tsx:56 +#: src/pages/company/SupplierPartDetail.tsx:364 +#: src/pages/stock/StockDetail.tsx:194 +#: src/tables/build/BuildAllocatedStockTable.tsx:152 #: src/tables/part/PartPurchaseOrdersTable.tsx:49 -#: src/tables/purchasing/SupplierPartTable.tsx:68 +#: src/tables/purchasing/SupplierPartTable.tsx:70 +#: src/tables/stock/StockItemTable.tsx:229 msgid "Supplier Part" -msgstr "" +msgstr "供應商零件" -#: src/components/render/ModelType.tsx:46 +#: src/components/render/ModelType.tsx:57 msgid "Supplier Parts" -msgstr "" +msgstr "供應商零件" -#: src/components/render/ModelType.tsx:54 -#: src/pages/company/ManufacturerPartDetail.tsx:132 +#: src/components/render/ModelType.tsx:66 #: src/tables/part/PartPurchaseOrdersTable.tsx:55 +#: src/tables/stock/StockItemTable.tsx:234 msgid "Manufacturer Part" -msgstr "" +msgstr "製造商零件" -#: src/components/render/ModelType.tsx:55 +#: src/components/render/ModelType.tsx:67 msgid "Manufacturer Parts" -msgstr "" +msgstr "製造商零件" -#: src/components/render/ModelType.tsx:63 -#: src/pages/part/CategoryDetail.tsx:305 +#: src/components/render/ModelType.tsx:76 +#: src/pages/part/CategoryDetail.tsx:310 msgid "Part Category" -msgstr "" +msgstr "零件類別" -#: src/components/render/ModelType.tsx:64 -#: src/pages/part/CategoryDetail.tsx:258 -#: src/pages/part/CategoryDetail.tsx:296 -#: src/pages/part/PartDetail.tsx:1063 +#: src/components/render/ModelType.tsx:77 +#: src/pages/part/CategoryDetail.tsx:263 +#: src/pages/part/CategoryDetail.tsx:301 +#: src/pages/part/PartDetail.tsx:1084 msgid "Part Categories" -msgstr "" +msgstr "零件類別" -#: src/components/render/ModelType.tsx:72 -#: src/pages/stock/StockDetail.tsx:624 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:94 -#: src/tables/stock/StockTrackingTable.tsx:45 +#: src/components/render/ModelType.tsx:86 +#: src/forms/BuildForms.tsx:337 +#: src/forms/BuildForms.tsx:385 +#: src/forms/BuildForms.tsx:515 +#: src/forms/SalesOrderForms.tsx:248 +#: src/pages/stock/StockDetail.tsx:839 +#: src/tables/stock/StockTrackingTable.tsx:49 msgid "Stock Item" -msgstr "" +msgstr "庫存項" -#: src/components/render/ModelType.tsx:73 +#: src/components/render/ModelType.tsx:87 #: src/pages/company/CompanyDetail.tsx:203 -#: src/pages/stock/LocationDetail.tsx:128 -#: src/pages/stock/LocationDetail.tsx:181 -#: src/pages/stock/LocationDetail.tsx:395 +#: src/pages/part/PartStocktakeDetail.tsx:113 +#: src/pages/stock/LocationDetail.tsx:122 +#: src/pages/stock/LocationDetail.tsx:175 +#: src/pages/stock/LocationDetail.tsx:380 msgid "Stock Items" -msgstr "" - -#: src/components/render/ModelType.tsx:81 -msgid "Stock Location" -msgstr "" - -#: src/components/render/ModelType.tsx:82 -#: src/pages/stock/LocationDetail.tsx:195 -#: src/pages/stock/LocationDetail.tsx:387 -#: src/pages/stock/StockDetail.tsx:616 -msgid "Stock Locations" -msgstr "" - -#: src/components/render/ModelType.tsx:90 -msgid "Stock Location Type" -msgstr "" - -#: src/components/render/ModelType.tsx:91 -msgid "Stock Location Types" -msgstr "" - -#: src/components/render/ModelType.tsx:95 -msgid "Stock History" -msgstr "" +msgstr "庫存項" #: src/components/render/ModelType.tsx:96 +msgid "Stock Location" +msgstr "庫存地點" + +#: src/components/render/ModelType.tsx:97 +#: src/pages/stock/LocationDetail.tsx:189 +#: src/pages/stock/LocationDetail.tsx:372 +#: src/pages/stock/StockDetail.tsx:831 +msgid "Stock Locations" +msgstr "庫存地點" + +#: src/components/render/ModelType.tsx:106 +msgid "Stock Location Type" +msgstr "庫存地點類型" + +#: src/components/render/ModelType.tsx:107 +msgid "Stock Location Types" +msgstr "庫存地點類型" + +#: src/components/render/ModelType.tsx:112 +#: src/pages/part/PartDetail.tsx:712 +msgid "Stock History" +msgstr "庫存歷史記錄" + +#: src/components/render/ModelType.tsx:113 msgid "Stock Histories" -msgstr "" - -#: src/components/render/ModelType.tsx:100 -#: src/defaults/links.tsx:31 -#: src/defaults/menuItems.tsx:43 -msgid "Build" -msgstr "" - -#: src/components/render/ModelType.tsx:101 -msgid "Builds" -msgstr "" - -#: src/components/render/ModelType.tsx:109 -msgid "Build Line" -msgstr "" - -#: src/components/render/ModelType.tsx:110 -msgid "Build Lines" -msgstr "" - -#: src/components/render/ModelType.tsx:117 -msgid "Build Item" -msgstr "" +msgstr "庫存歷史記錄" #: src/components/render/ModelType.tsx:118 -msgid "Build Items" -msgstr "" +msgid "Build" +msgstr "生產" -#: src/components/render/ModelType.tsx:122 -#: src/pages/company/CompanyDetail.tsx:339 -msgid "Company" -msgstr "" +#: src/components/render/ModelType.tsx:119 +msgid "Builds" +msgstr "生產" -#: src/components/render/ModelType.tsx:123 -msgid "Companies" -msgstr "" +#: src/components/render/ModelType.tsx:128 +msgid "Build Line" +msgstr "生產行" -#: src/components/render/ModelType.tsx:131 -#: src/tables/TableHoverCard.tsx:81 -#: src/tables/build/BuildOrderTable.tsx:140 -#: src/tables/purchasing/PurchaseOrderTable.tsx:64 -#: src/tables/sales/ReturnOrderTable.tsx:55 -#: src/tables/sales/SalesOrderTable.tsx:62 -msgid "Project Code" -msgstr "" +#: src/components/render/ModelType.tsx:129 +msgid "Build Lines" +msgstr "生產行" -#: src/components/render/ModelType.tsx:132 -#: src/pages/Index/Settings/AdminCenter/Index.tsx:128 -msgid "Project Codes" -msgstr "" +#: src/components/render/ModelType.tsx:137 +msgid "Build Item" +msgstr "構建項目:" #: src/components/render/ModelType.tsx:138 -#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:32 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:480 -#: src/tables/part/PartPurchaseOrdersTable.tsx:32 -#: src/tables/stock/StockTrackingTable.tsx:107 -msgid "Purchase Order" -msgstr "" +msgid "Build Items" +msgstr "構建多個項目" -#: src/components/render/ModelType.tsx:139 -#: src/pages/Index/Settings/SystemSettings.tsx:255 -#: src/pages/company/CompanyDetail.tsx:196 -#: src/pages/company/SupplierPartDetail.tsx:237 -#: src/pages/part/PartDetail.tsx:662 -#: src/pages/purchasing/PurchasingIndex.tsx:25 -msgid "Purchase Orders" -msgstr "" +#: src/components/render/ModelType.tsx:143 +#: src/pages/company/CompanyDetail.tsx:321 +msgid "Company" +msgstr "公司" -#: src/components/render/ModelType.tsx:147 -msgid "Purchase Order Line" -msgstr "" - -#: src/components/render/ModelType.tsx:148 -msgid "Purchase Order Lines" -msgstr "" - -#: src/components/render/ModelType.tsx:152 -#: src/pages/build/BuildDetail.tsx:153 -#: src/pages/sales/SalesOrderDetail.tsx:520 -#: src/pages/stock/StockDetail.tsx:221 -#: src/tables/sales/SalesOrderAllocationTable.tsx:50 -#: src/tables/stock/StockTrackingTable.tsx:118 -msgid "Sales Order" -msgstr "" +#: src/components/render/ModelType.tsx:144 +msgid "Companies" +msgstr "公司" #: src/components/render/ModelType.tsx:153 -#: src/pages/Index/Settings/SystemSettings.tsx:270 -#: src/pages/company/CompanyDetail.tsx:216 -#: src/pages/part/PartDetail.tsx:669 -#: src/pages/sales/SalesIndex.tsx:26 -msgid "Sales Orders" -msgstr "" +#: src/pages/build/BuildDetail.tsx:195 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:204 +#: src/pages/sales/ReturnOrderDetail.tsx:174 +#: src/pages/sales/SalesOrderDetail.tsx:186 +#: src/tables/TableHoverCard.tsx:81 +#: src/tables/build/BuildOrderTable.tsx:135 +#: src/tables/purchasing/PurchaseOrderTable.tsx:69 +#: src/tables/sales/ReturnOrderTable.tsx:67 +#: src/tables/sales/SalesOrderTable.tsx:67 +msgid "Project Code" +msgstr "項目編碼" + +#: src/components/render/ModelType.tsx:154 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:145 +msgid "Project Codes" +msgstr "項目編碼" #: src/components/render/ModelType.tsx:161 -msgid "Sales Order Shipment" -msgstr "" +#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:32 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:477 +#: src/pages/stock/StockDetail.tsx:253 +#: src/tables/part/PartPurchaseOrdersTable.tsx:31 +#: src/tables/stock/StockItemTable.tsx:222 +#: src/tables/stock/StockTrackingTable.tsx:111 +msgid "Purchase Order" +msgstr "採購訂單" #: src/components/render/ModelType.tsx:162 -msgid "Sales Order Shipments" -msgstr "" +#: src/pages/Index/Settings/SystemSettings.tsx:249 +#: src/pages/company/CompanyDetail.tsx:196 +#: src/pages/company/SupplierPartDetail.tsx:249 +#: src/pages/part/PartDetail.tsx:683 +#: src/pages/purchasing/PurchasingIndex.tsx:25 +msgid "Purchase Orders" +msgstr "採購訂單" -#: src/components/render/ModelType.tsx:168 -#: src/pages/sales/ReturnOrderDetail.tsx:469 -#: src/tables/stock/StockTrackingTable.tsx:129 -msgid "Return Order" -msgstr "" +#: src/components/render/ModelType.tsx:171 +msgid "Purchase Order Line" +msgstr "採購訂單行" -#: src/components/render/ModelType.tsx:169 -#: src/pages/Index/Settings/SystemSettings.tsx:286 -#: src/pages/company/CompanyDetail.tsx:223 -#: src/pages/sales/SalesIndex.tsx:32 -msgid "Return Orders" -msgstr "" +#: src/components/render/ModelType.tsx:172 +msgid "Purchase Order Lines" +msgstr "採購訂單行" #: src/components/render/ModelType.tsx:177 -msgid "Return Order Line Item" -msgstr "" +#: src/pages/build/BuildDetail.tsx:148 +#: src/pages/part/pricing/SaleHistoryPanel.tsx:24 +#: src/pages/sales/SalesOrderDetail.tsx:515 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:92 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:341 +#: src/pages/stock/StockDetail.tsx:262 +#: src/tables/sales/SalesOrderAllocationTable.tsx:80 +#: src/tables/stock/StockTrackingTable.tsx:122 +msgid "Sales Order" +msgstr "銷售訂單" #: src/components/render/ModelType.tsx:178 -msgid "Return Order Line Items" -msgstr "" +#: src/pages/Index/Settings/SystemSettings.tsx:264 +#: src/pages/company/CompanyDetail.tsx:216 +#: src/pages/part/PartDetail.tsx:695 +#: src/pages/sales/SalesIndex.tsx:26 +msgid "Sales Orders" +msgstr "銷售訂單" -#: src/components/render/ModelType.tsx:182 -#: src/tables/company/AddressTable.tsx:47 -msgid "Address" -msgstr "" +#: src/components/render/ModelType.tsx:187 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:340 +msgid "Sales Order Shipment" +msgstr "銷售訂單配送" -#: src/components/render/ModelType.tsx:183 -#: src/pages/company/CompanyDetail.tsx:253 -msgid "Addresses" -msgstr "" +#: src/components/render/ModelType.tsx:188 +msgid "Sales Order Shipments" +msgstr "銷售訂單配送" -#: src/components/render/ModelType.tsx:189 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:195 -#: src/pages/sales/ReturnOrderDetail.tsx:174 -#: src/pages/sales/SalesOrderDetail.tsx:183 -msgid "Contact" -msgstr "" - -#: src/components/render/ModelType.tsx:190 -#: src/pages/company/CompanyDetail.tsx:247 -msgid "Contacts" -msgstr "" +#: src/components/render/ModelType.tsx:195 +#: src/pages/sales/ReturnOrderDetail.tsx:464 +#: src/tables/stock/StockTrackingTable.tsx:133 +msgid "Return Order" +msgstr "退貨訂單" #: src/components/render/ModelType.tsx:196 -msgid "Owner" -msgstr "" +#: src/pages/Index/Settings/SystemSettings.tsx:280 +#: src/pages/company/CompanyDetail.tsx:223 +#: src/pages/part/PartDetail.tsx:702 +#: src/pages/sales/SalesIndex.tsx:32 +msgid "Return Orders" +msgstr "退貨訂單" -#: src/components/render/ModelType.tsx:197 -msgid "Owners" -msgstr "" +#: src/components/render/ModelType.tsx:205 +msgid "Return Order Line Item" +msgstr "退貨訂單行項目" -#: src/components/render/ModelType.tsx:203 -#: src/tables/settings/ImportSessionTable.tsx:121 -#: src/tables/stock/StockItemTestResultTable.tsx:198 -#: src/tables/stock/StockTrackingTable.tsx:195 -msgid "User" -msgstr "" - -#: src/components/render/ModelType.tsx:204 -#: src/pages/Index/Settings/AdminCenter/Index.tsx:98 -#: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:13 -msgid "Users" -msgstr "" - -#: src/components/render/ModelType.tsx:210 -msgid "Group" -msgstr "" +#: src/components/render/ModelType.tsx:206 +msgid "Return Order Line Items" +msgstr "退貨訂單行項目" #: src/components/render/ModelType.tsx:211 -#: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:20 -#: src/tables/settings/UserTable.tsx:138 -#: src/tables/settings/UserTable.tsx:201 -msgid "Groups" -msgstr "" +#: src/tables/company/AddressTable.tsx:48 +msgid "Address" +msgstr "地址" -#: src/components/render/ModelType.tsx:218 -msgid "Import Session" -msgstr "" +#: src/components/render/ModelType.tsx:212 +#: src/pages/company/CompanyDetail.tsx:255 +msgid "Addresses" +msgstr "地址" #: src/components/render/ModelType.tsx:219 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:196 +#: src/pages/sales/ReturnOrderDetail.tsx:166 +#: src/pages/sales/SalesOrderDetail.tsx:178 +msgid "Contact" +msgstr "聯繫人" + +#: src/components/render/ModelType.tsx:220 +#: src/pages/company/CompanyDetail.tsx:249 +msgid "Contacts" +msgstr "聯繫人" + +#: src/components/render/ModelType.tsx:227 +msgid "Owner" +msgstr "所有者" + +#: src/components/render/ModelType.tsx:228 +msgid "Owners" +msgstr "所有者" + +#: src/components/render/ModelType.tsx:234 +#~ msgid "Purchase Order Line Item" +#~ msgstr "Purchase Order Line Item" + +#: src/components/render/ModelType.tsx:235 +#: src/tables/settings/BarcodeScanHistoryTable.tsx:80 +#: src/tables/settings/BarcodeScanHistoryTable.tsx:211 +#: src/tables/settings/ImportSessionTable.tsx:120 +#: src/tables/settings/StocktakeReportTable.tsx:44 +#: src/tables/stock/StockItemTestResultTable.tsx:204 +#: src/tables/stock/StockTrackingTable.tsx:181 +#: src/tables/stock/StockTrackingTable.tsx:210 +msgid "User" +msgstr "用户" + +#: src/components/render/ModelType.tsx:236 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:109 +#: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:13 +msgid "Users" +msgstr "用户" + +#: src/components/render/ModelType.tsx:243 +msgid "Group" +msgstr "羣組" + +#: src/components/render/ModelType.tsx:244 +#: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:20 +#: src/tables/settings/UserTable.tsx:137 +#: src/tables/settings/UserTable.tsx:200 +msgid "Groups" +msgstr "羣組" + +#: src/components/render/ModelType.tsx:252 +msgid "Import Session" +msgstr "導入會話" + +#: src/components/render/ModelType.tsx:253 msgid "Import Sessions" -msgstr "" +msgstr "導入會話" -#: src/components/render/ModelType.tsx:225 +#: src/components/render/ModelType.tsx:260 msgid "Label Template" -msgstr "" +msgstr "標籤模板" -#: src/components/render/ModelType.tsx:226 -#: src/pages/Index/Settings/AdminCenter/Index.tsx:158 +#: src/components/render/ModelType.tsx:261 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:187 msgid "Label Templates" -msgstr "" +msgstr "標籤模板" -#: src/components/render/ModelType.tsx:232 +#: src/components/render/ModelType.tsx:264 +#~ msgid "Unknown Model" +#~ msgstr "Unknown Model" + +#: src/components/render/ModelType.tsx:268 msgid "Report Template" -msgstr "" +msgstr "報告模板" -#: src/components/render/ModelType.tsx:233 -#: src/pages/Index/Settings/AdminCenter/Index.tsx:164 +#: src/components/render/ModelType.tsx:269 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:193 msgid "Report Templates" -msgstr "" +msgstr "報告模板" -#: src/components/render/ModelType.tsx:239 -msgid "Plugin Configuration" -msgstr "" - -#: src/components/render/ModelType.tsx:240 +#: src/components/render/ModelType.tsx:277 msgid "Plugin Configurations" -msgstr "" +msgstr "插件配置" + +#: src/components/render/ModelType.tsx:284 +msgid "Content Type" +msgstr "內容類型" + +#: src/components/render/ModelType.tsx:285 +msgid "Content Types" +msgstr "內容類型" + +#: src/components/render/ModelType.tsx:291 +#: src/tables/machine/MachineListTable.tsx:351 +#: src/tables/machine/MachineTypeTable.tsx:282 +msgid "Errors" +msgstr "錯誤" + +#: src/components/render/ModelType.tsx:307 +#~ msgid "Purchase Order Line Items" +#~ msgstr "Purchase Order Line Items" + +#: src/components/render/ModelType.tsx:337 +#~ msgid "Unknown Models" +#~ msgstr "Unknown Models" #: src/components/render/Order.tsx:121 +#: src/tables/sales/SalesOrderAllocationTable.tsx:136 msgid "Shipment" -msgstr "" +msgstr "配送" #: src/components/render/Part.tsx:25 #: src/components/render/Plugin.tsx:17 -#: src/pages/company/CompanyDetail.tsx:325 -#: src/pages/company/SupplierPartDetail.tsx:360 -#: src/pages/part/PartDetail.tsx:879 +#: src/pages/company/CompanyDetail.tsx:307 +#: src/pages/company/SupplierPartDetail.tsx:349 +#: src/pages/part/PartDetail.tsx:911 msgid "Inactive" -msgstr "" +msgstr "未激活" #: src/components/render/Part.tsx:28 #: src/tables/bom/BomTable.tsx:204 #: src/tables/part/PartTable.tsx:134 msgid "No stock" -msgstr "" +msgstr "無庫存" -#: src/components/render/Part.tsx:30 -#: src/defaults/links.tsx:30 -#: src/defaults/menuItems.tsx:38 -#: src/pages/Index/Settings/SystemSettings.tsx:206 -#: src/pages/part/PartDetail.tsx:543 -#: src/pages/stock/LocationDetail.tsx:367 -#: src/pages/stock/StockDetail.tsx:411 -#: src/tables/stock/StockItemTable.tsx:68 -msgid "Stock" -msgstr "" - -#: src/components/render/Stock.tsx:60 -#: src/pages/stock/StockDetail.tsx:150 -#: src/pages/stock/StockDetail.tsx:581 -#: src/tables/build/BuildAllocatedStockTable.tsx:102 -#: src/tables/sales/SalesOrderAllocationTable.tsx:80 +#: src/components/render/Stock.tsx:61 +#: src/forms/ReturnOrderForms.tsx:190 +#: src/pages/stock/StockDetail.tsx:166 +#: src/pages/stock/StockDetail.tsx:771 +#: src/tables/build/BuildAllocatedStockTable.tsx:123 +#: src/tables/build/BuildOutputTable.tsx:81 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:114 +#: src/tables/sales/SalesOrderAllocationTable.tsx:106 msgid "Serial Number" -msgstr "" +msgstr "序列號" -#: src/components/render/Stock.tsx:62 -#: src/forms/BuildForms.tsx:218 -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/pages/part/pricing/BomPricingPanel.tsx:109 +#: src/components/render/Stock.tsx:63 +#: src/forms/BuildForms.tsx:206 +#: src/forms/BuildForms.tsx:515 +#: src/forms/PurchaseOrderForms.tsx:689 +#: src/forms/SalesOrderForms.tsx:248 +#: src/pages/part/PartSchedulingDetail.tsx:80 +#: src/pages/part/PartStocktakeDetail.tsx:60 +#: src/pages/part/PartStocktakeDetail.tsx:234 +#: src/pages/part/PartStocktakeDetail.tsx:252 +#: src/pages/part/pricing/BomPricingPanel.tsx:148 #: src/pages/part/pricing/PriceBreakPanel.tsx:89 -#: src/pages/part/pricing/PriceBreakPanel.tsx:171 -#: src/pages/stock/StockDetail.tsx:145 -#: src/pages/stock/StockDetail.tsx:587 -#: src/tables/build/BuildOrderTestTable.tsx:197 -#: src/tables/part/PartPurchaseOrdersTable.tsx:92 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:143 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:171 +#: src/pages/part/pricing/PriceBreakPanel.tsx:172 +#: src/pages/stock/StockDetail.tsx:161 +#: src/pages/stock/StockDetail.tsx:777 +#: src/tables/build/BuildLineTable.tsx:79 +#: src/tables/build/BuildOrderTestTable.tsx:198 +#: src/tables/part/PartPurchaseOrdersTable.tsx:93 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:146 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:177 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:77 -#: src/tables/stock/StockTrackingTable.tsx:59 +#: src/tables/stock/StockTrackingTable.tsx:63 msgid "Quantity" -msgstr "" +msgstr "數量" #: src/components/settings/SettingItem.tsx:47 #: src/components/settings/SettingItem.tsx:100 @@ -1779,24 +2377,24 @@ msgstr "" #: src/components/settings/SettingList.tsx:67 msgid "Edit Setting" -msgstr "" +msgstr "編輯設置" #: src/components/settings/SettingList.tsx:78 #: src/components/settings/SettingList.tsx:108 msgid "Setting {0} updated successfully" -msgstr "" +msgstr "成功更新設置{0}" #: src/components/settings/SettingList.tsx:107 msgid "Setting updated" -msgstr "" +msgstr "設置已更新" #: src/components/settings/SettingList.tsx:117 msgid "Error editing setting" -msgstr "" +msgstr "編輯設置時出錯" #: src/components/settings/SettingList.tsx:162 msgid "No settings specified" -msgstr "" +msgstr "未指定設置" #: src/components/tables/FilterGroup.tsx:29 #~ msgid "Add table filter" @@ -1842,10 +2440,6 @@ msgstr "" #~ msgid "Required Part" #~ msgstr "Required Part" -#: src/components/tables/build/BuildLineTable.tsx:152 -#~ msgid "Required Quantity" -#~ msgstr "Required Quantity" - #: src/components/tables/build/BuildOrderTable.tsx:52 #~ msgid "Progress" #~ msgstr "Progress" @@ -2126,14 +2720,6 @@ msgstr "" #~ msgid "user deleted" #~ msgstr "user deleted" -#: src/components/tables/settings/UserTable.tsx:168 -#~ msgid "First Name" -#~ msgstr "First Name" - -#: src/components/tables/settings/UserTable.tsx:173 -#~ msgid "Last Name" -#~ msgstr "Last Name" - #: src/components/tables/stock/StockItemTable.tsx:247 #~ msgid "Test Filter" #~ msgstr "Test Filter" @@ -2146,36 +2732,21 @@ msgstr "" #~ msgid "Stock location updated" #~ msgstr "Stock location updated" -#: src/components/widgets/DisplayWidget.tsx:11 -#: src/pages/Index/Settings/AccountSettings/DisplaySettingsPanel.tsx:17 -msgid "Display Settings" -msgstr "" - -#: src/components/widgets/DisplayWidget.tsx:15 -#: src/pages/Index/Settings/AccountSettings/DisplaySettingsPanel.tsx:23 -msgid "Color Mode" -msgstr "" - -#: src/components/widgets/DisplayWidget.tsx:21 -#: src/pages/Index/Settings/AccountSettings/DisplaySettingsPanel.tsx:33 -msgid "Language" -msgstr "" - #: src/components/widgets/FeedbackWidget.tsx:19 -msgid "Something is new: Platform UI" -msgstr "" +#~ msgid "Something is new: Platform UI" +#~ msgstr "Something is new: Platform UI" #: src/components/widgets/FeedbackWidget.tsx:21 -msgid "We are building a new UI with a modern stack. What you currently see is not fixed and will be redesigned but demonstrates the UI/UX possibilities we will have going forward." -msgstr "" +#~ msgid "We are building a new UI with a modern stack. What you currently see is not fixed and will be redesigned but demonstrates the UI/UX possibilities we will have going forward." +#~ msgstr "We are building a new UI with a modern stack. What you currently see is not fixed and will be redesigned but demonstrates the UI/UX possibilities we will have going forward." #: src/components/widgets/FeedbackWidget.tsx:32 -msgid "Provide Feedback" -msgstr "" +#~ msgid "Provide Feedback" +#~ msgstr "Provide Feedback" #: src/components/widgets/GetStartedWidget.tsx:11 -msgid "Getting started" -msgstr "" +#~ msgid "Getting started" +#~ msgstr "Getting started" #: src/components/widgets/MarkdownEditor.tsx:108 #~ msgid "Failed to upload image" @@ -2186,301 +2757,271 @@ msgstr "" #~ msgstr "Notes saved" #: src/components/widgets/WidgetLayout.tsx:166 -msgid "Layout" -msgstr "" +#~ msgid "Layout" +#~ msgstr "Layout" #: src/components/widgets/WidgetLayout.tsx:172 -msgid "Reset Layout" -msgstr "" +#~ msgid "Reset Layout" +#~ msgstr "Reset Layout" #: src/components/widgets/WidgetLayout.tsx:185 -msgid "Stop Edit" -msgstr "" - -#: src/components/widgets/WidgetLayout.tsx:185 -msgid "Edit Layout" -msgstr "" +#~ msgid "Stop Edit" +#~ msgstr "Stop Edit" #: src/components/widgets/WidgetLayout.tsx:191 -msgid "Appearance" -msgstr "" +#~ msgid "Appearance" +#~ msgstr "Appearance" #: src/components/widgets/WidgetLayout.tsx:203 -msgid "Show Boxes" -msgstr "" +#~ msgid "Show Boxes" +#~ msgstr "Show Boxes" #: src/contexts/LanguageContext.tsx:20 msgid "Arabic" -msgstr "" +msgstr "阿拉伯語" #: src/contexts/LanguageContext.tsx:21 msgid "Bulgarian" -msgstr "" +msgstr "保加利亞語" #: src/contexts/LanguageContext.tsx:22 msgid "Czech" -msgstr "" +msgstr "捷克語" #: src/contexts/LanguageContext.tsx:23 msgid "Danish" -msgstr "" +msgstr "丹麥語" #: src/contexts/LanguageContext.tsx:24 msgid "German" -msgstr "" +msgstr "德語" #: src/contexts/LanguageContext.tsx:25 msgid "Greek" -msgstr "" +msgstr "希臘語" #: src/contexts/LanguageContext.tsx:26 msgid "English" -msgstr "" +msgstr "英語" #: src/contexts/LanguageContext.tsx:27 msgid "Spanish" -msgstr "" +msgstr "西班牙語" #: src/contexts/LanguageContext.tsx:28 msgid "Spanish (Mexican)" -msgstr "" +msgstr "西班牙語(墨西哥)" #: src/contexts/LanguageContext.tsx:29 msgid "Estonian" -msgstr "" +msgstr "愛沙尼亞語" #: src/contexts/LanguageContext.tsx:30 msgid "Farsi / Persian" -msgstr "" +msgstr "波斯語" #: src/contexts/LanguageContext.tsx:31 msgid "Finnish" -msgstr "" +msgstr "芬蘭語" #: src/contexts/LanguageContext.tsx:32 msgid "French" -msgstr "" +msgstr "法語" #: src/contexts/LanguageContext.tsx:33 msgid "Hebrew" -msgstr "" +msgstr "希伯來語" #: src/contexts/LanguageContext.tsx:34 msgid "Hindi" -msgstr "" +msgstr "印地語" #: src/contexts/LanguageContext.tsx:35 msgid "Hungarian" -msgstr "" +msgstr "匈牙利語" #: src/contexts/LanguageContext.tsx:36 msgid "Italian" -msgstr "" +msgstr "意大利語" #: src/contexts/LanguageContext.tsx:37 msgid "Japanese" -msgstr "" +msgstr "日語" #: src/contexts/LanguageContext.tsx:38 msgid "Korean" -msgstr "" +msgstr "韓語" #: src/contexts/LanguageContext.tsx:39 -msgid "Latvian" -msgstr "" +msgid "Lithuanian" +msgstr "立陶宛語" #: src/contexts/LanguageContext.tsx:40 -msgid "Dutch" -msgstr "" +msgid "Latvian" +msgstr "Latvian" #: src/contexts/LanguageContext.tsx:41 -msgid "Norwegian" -msgstr "" +msgid "Dutch" +msgstr "荷蘭語" #: src/contexts/LanguageContext.tsx:42 -msgid "Polish" -msgstr "" +msgid "Norwegian" +msgstr "挪威語" #: src/contexts/LanguageContext.tsx:43 -msgid "Portuguese" -msgstr "" +msgid "Polish" +msgstr "波蘭語" #: src/contexts/LanguageContext.tsx:44 -msgid "Portuguese (Brazilian)" -msgstr "" +msgid "Portuguese" +msgstr "葡萄牙語" #: src/contexts/LanguageContext.tsx:45 -msgid "Romanian" -msgstr "" +msgid "Portuguese (Brazilian)" +msgstr "葡萄牙語(巴西)" #: src/contexts/LanguageContext.tsx:46 -msgid "Russian" -msgstr "" +msgid "Romanian" +msgstr "羅馬尼亞語" #: src/contexts/LanguageContext.tsx:47 -msgid "Slovak" -msgstr "" +msgid "Russian" +msgstr "俄語" #: src/contexts/LanguageContext.tsx:48 -msgid "Slovenian" -msgstr "" +msgid "Slovak" +msgstr "Slovak" #: src/contexts/LanguageContext.tsx:49 -msgid "Swedish" -msgstr "" +msgid "Slovenian" +msgstr "斯洛語尼亞語" #: src/contexts/LanguageContext.tsx:50 -msgid "Thai" -msgstr "" +msgid "Swedish" +msgstr "瑞典語" #: src/contexts/LanguageContext.tsx:51 -msgid "Turkish" -msgstr "" +msgid "Thai" +msgstr "泰語" #: src/contexts/LanguageContext.tsx:52 -msgid "Ukrainian" -msgstr "" +msgid "Turkish" +msgstr "土耳其語" #: src/contexts/LanguageContext.tsx:53 -msgid "Vietnamese" -msgstr "" +msgid "Ukrainian" +msgstr "烏克蘭語" #: src/contexts/LanguageContext.tsx:54 -msgid "Chinese (Simplified)" -msgstr "" +msgid "Vietnamese" +msgstr "越南語" #: src/contexts/LanguageContext.tsx:55 +msgid "Chinese (Simplified)" +msgstr "中文 (簡體)" + +#: src/contexts/LanguageContext.tsx:56 msgid "Chinese (Traditional)" -msgstr "" +msgstr "中文 (繁體)" + +#: src/defaults/actions.tsx:18 +msgid "Go to the InvenTree dashboard" +msgstr "跳轉到 InvenTree 儀表板" #: src/defaults/actions.tsx:18 #: src/defaults/links.tsx:27 #: src/defaults/menuItems.tsx:9 -msgid "Home" -msgstr "" +#~ msgid "Home" +#~ msgstr "Home" #: src/defaults/actions.tsx:25 -#: src/defaults/links.tsx:28 -#: src/defaults/menuItems.tsx:28 -#: src/pages/Index/Dashboard.tsx:19 -#: src/pages/Index/Settings/UserSettings.tsx:46 -msgid "Dashboard" -msgstr "" - -#: src/defaults/actions.tsx:26 -msgid "Go to the InvenTree dashboard" -msgstr "" - -#: src/defaults/actions.tsx:33 msgid "Visit the documentation to learn more about InvenTree" -msgstr "" +msgstr "訪問文檔以瞭解更多關於 InvenTree" + +#: src/defaults/actions.tsx:31 +#: src/defaults/links.tsx:92 +#: src/defaults/links.tsx:124 +msgid "About InvenTree" +msgstr "關於 InvenTree" + +#: src/defaults/actions.tsx:32 +msgid "About the InvenTree org" +msgstr "關於 InvenTree 組織" + +#: src/defaults/actions.tsx:38 +msgid "Server Information" +msgstr "服務器信息" #: src/defaults/actions.tsx:39 -#: src/defaults/links.tsx:98 -#: src/defaults/links.tsx:128 -msgid "About InvenTree" -msgstr "" +#: src/defaults/links.tsx:118 +msgid "About this Inventree instance" +msgstr "關於此 Inventree 實例" -#: src/defaults/actions.tsx:40 -#: src/defaults/links.tsx:129 -msgid "About the InvenTree org" -msgstr "" +#: src/defaults/actions.tsx:45 +#: src/defaults/links.tsx:105 +#: src/defaults/links.tsx:131 +msgid "License Information" +msgstr "許可信息" #: src/defaults/actions.tsx:46 -msgid "Server Information" -msgstr "" +msgid "Licenses for dependencies of the service" +msgstr "服務依賴關係許可" -#: src/defaults/actions.tsx:47 -#: src/defaults/links.tsx:123 -msgid "About this Inventree instance" -msgstr "" +#: src/defaults/actions.tsx:52 +msgid "Open Navigation" +msgstr "打開導航" #: src/defaults/actions.tsx:53 -#: src/defaults/links.tsx:111 -msgid "License Information" -msgstr "" - -#: src/defaults/actions.tsx:54 -#: src/defaults/links.tsx:135 -msgid "Licenses for dependencies of the service" -msgstr "" - -#: src/defaults/actions.tsx:61 msgid "Open the main navigation menu" -msgstr "" +msgstr "打開主導航菜單" -#: src/defaults/actions.tsx:72 +#: src/defaults/actions.tsx:64 msgid "Go to the Admin Center" -msgstr "" - -#: src/defaults/dashboardItems.tsx:15 -msgid "Subscribed Parts" -msgstr "" - -#: src/defaults/dashboardItems.tsx:22 -msgid "Subscribed Categories" -msgstr "" +msgstr "轉到管理中心" #: src/defaults/dashboardItems.tsx:29 -msgid "Latest Parts" -msgstr "" +#~ msgid "Latest Parts" +#~ msgstr "Latest Parts" #: src/defaults/dashboardItems.tsx:36 -msgid "BOM Waiting Validation" -msgstr "" +#~ msgid "BOM Waiting Validation" +#~ msgstr "BOM Waiting Validation" #: src/defaults/dashboardItems.tsx:43 -msgid "Recently Updated" -msgstr "" - -#: src/defaults/dashboardItems.tsx:50 -#: src/tables/part/PartTable.tsx:238 -msgid "Low Stock" -msgstr "" +#~ msgid "Recently Updated" +#~ msgstr "Recently Updated" #: src/defaults/dashboardItems.tsx:57 -msgid "Depleted Stock" -msgstr "" +#~ msgid "Depleted Stock" +#~ msgstr "Depleted Stock" #: src/defaults/dashboardItems.tsx:64 -msgid "Required for Build Orders" -msgstr "" +#~ msgid "Required for Build Orders" +#~ msgstr "Required for Build Orders" #: src/defaults/dashboardItems.tsx:71 -msgid "Expired Stock" -msgstr "" +#~ msgid "Expired Stock" +#~ msgstr "Expired Stock" #: src/defaults/dashboardItems.tsx:78 -msgid "Stale Stock" -msgstr "" +#~ msgid "Stale Stock" +#~ msgstr "Stale Stock" #: src/defaults/dashboardItems.tsx:85 -msgid "Build Orders In Progress" -msgstr "" - -#: src/defaults/dashboardItems.tsx:92 -msgid "Overdue Build Orders" -msgstr "" +#~ msgid "Build Orders In Progress" +#~ msgstr "Build Orders In Progress" #: src/defaults/dashboardItems.tsx:99 -msgid "Outstanding Purchase Orders" -msgstr "" - -#: src/defaults/dashboardItems.tsx:106 -msgid "Overdue Purchase Orders" -msgstr "" +#~ msgid "Outstanding Purchase Orders" +#~ msgstr "Outstanding Purchase Orders" #: src/defaults/dashboardItems.tsx:113 -msgid "Outstanding Sales Orders" -msgstr "" - -#: src/defaults/dashboardItems.tsx:120 -msgid "Overdue Sales Orders" -msgstr "" +#~ msgid "Outstanding Sales Orders" +#~ msgstr "Outstanding Sales Orders" #: src/defaults/dashboardItems.tsx:127 -msgid "Current News" -msgstr "" +#~ msgid "Current News" +#~ msgstr "Current News" #: src/defaults/defaultHostList.tsx:8 #~ msgid "InvenTree Demo" @@ -2490,98 +3031,81 @@ msgstr "" #~ msgid "Local Server" #~ msgstr "Local Server" -#: src/defaults/links.tsx:12 -#: src/pages/company/CompanyDetail.tsx:96 -msgid "Website" -msgstr "" - #: src/defaults/links.tsx:17 -msgid "GitHub" -msgstr "" +#~ msgid "GitHub" +#~ msgstr "GitHub" #: src/defaults/links.tsx:22 -msgid "Demo" -msgstr "" - -#: src/defaults/links.tsx:33 -#: src/defaults/menuItems.tsx:48 -#: src/pages/company/ManufacturerDetail.tsx:9 -#: src/pages/company/ManufacturerPartDetail.tsx:263 -#: src/pages/company/SupplierDetail.tsx:9 -#: src/pages/company/SupplierPartDetail.tsx:347 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:483 -#: src/pages/purchasing/PurchasingIndex.tsx:60 -msgid "Purchasing" -msgstr "" - -#: src/defaults/links.tsx:37 -#: src/defaults/menuItems.tsx:53 -#: src/pages/company/CustomerDetail.tsx:9 -#: src/pages/sales/ReturnOrderDetail.tsx:474 -#: src/pages/sales/SalesIndex.tsx:53 -#: src/pages/sales/SalesOrderDetail.tsx:525 -msgid "Sales" -msgstr "" +#~ msgid "Demo" +#~ msgstr "Demo" #: src/defaults/links.tsx:41 #: src/defaults/menuItems.tsx:71 #: src/pages/Index/Playground.tsx:217 -msgid "Playground" -msgstr "" +#~ msgid "Playground" +#~ msgstr "Playground" + +#: src/defaults/links.tsx:45 +msgid "API" +msgstr "API" + +#: src/defaults/links.tsx:48 +msgid "InvenTree API documentation" +msgstr "InvenTree API 文檔" + +#: src/defaults/links.tsx:52 +msgid "Developer Manual" +msgstr "開發者手冊" #: src/defaults/links.tsx:55 -msgid "Getting Started" -msgstr "" +msgid "InvenTree developer manual" +msgstr "InvenTree 開發者手冊" -#: src/defaults/links.tsx:56 -msgid "Getting started with InvenTree" -msgstr "" +#: src/defaults/links.tsx:59 +msgid "FAQ" +msgstr "FAQ" #: src/defaults/links.tsx:62 -msgid "API" -msgstr "" +msgid "Frequently asked questions" +msgstr "常見問題" -#: src/defaults/links.tsx:63 -msgid "InvenTree API documentation" -msgstr "" - -#: src/defaults/links.tsx:68 -msgid "Developer Manual" +#: src/defaults/links.tsx:66 +msgid "GitHub Repository" msgstr "" #: src/defaults/links.tsx:69 -msgid "InvenTree developer manual" -msgstr "" - -#: src/defaults/links.tsx:74 -msgid "FAQ" -msgstr "" - -#: src/defaults/links.tsx:75 -msgid "Frequently asked questions" +msgid "InvenTree source code on GitHub" msgstr "" #: src/defaults/links.tsx:76 #~ msgid "Instance" #~ msgstr "Instance" +#: src/defaults/links.tsx:79 +#: src/defaults/links.tsx:117 +msgid "System Information" +msgstr "系統信息" + #: src/defaults/links.tsx:83 #~ msgid "InvenTree" #~ msgstr "InvenTree" -#: src/defaults/links.tsx:85 -#: src/defaults/links.tsx:122 -msgid "System Information" -msgstr "" - #: src/defaults/links.tsx:117 #~ msgid "Licenses for packages used by InvenTree" #~ msgstr "Licenses for packages used by InvenTree" -#: src/defaults/links.tsx:134 -msgid "Licenses" +#: src/defaults/links.tsx:125 +msgid "About the InvenTree Project" msgstr "" +#: src/defaults/links.tsx:132 +msgid "Licenses for dependencies of the InvenTree software" +msgstr "" + +#: src/defaults/links.tsx:134 +#~ msgid "Licenses" +#~ msgstr "Licenses" + #: src/defaults/menuItems.tsx:7 #~ msgid "Open sourcea" #~ msgstr "Open sourcea" @@ -2607,8 +3131,8 @@ msgstr "" #~ msgstr "Profile page" #: src/defaults/menuItems.tsx:17 -msgid "User attributes and design settings." -msgstr "" +#~ msgid "User attributes and design settings." +#~ msgstr "User attributes and design settings." #: src/defaults/menuItems.tsx:21 #~ msgid "Free for everyone" @@ -2619,8 +3143,8 @@ msgstr "" #~ msgstr "The fluid of Smeargle’s tail secretions changes" #: src/defaults/menuItems.tsx:23 -msgid "View for interactive scanning and multiple actions." -msgstr "" +#~ msgid "View for interactive scanning and multiple actions." +#~ msgstr "View for interactive scanning and multiple actions." #: src/defaults/menuItems.tsx:24 #~ msgid "The fluid of Smeargle’s tail secretions changes in the intensity" @@ -2698,51 +3222,130 @@ msgstr "" #~ msgid "Are you sure you want to delete this attachment?" #~ msgstr "Are you sure you want to delete this attachment?" -#: src/forms/BuildForms.tsx:158 -msgid "Next serial number" -msgstr "" +#: src/forms/BuildForms.tsx:248 +#~ msgid "Remove output" +#~ msgstr "Remove output" -#: src/forms/BuildForms.tsx:162 -msgid "Latest serial number" -msgstr "" +#: src/forms/BuildForms.tsx:269 +#: src/tables/build/BuildAllocatedStockTable.tsx:147 +#: src/tables/build/BuildOrderTestTable.tsx:177 +#: src/tables/build/BuildOrderTestTable.tsx:201 +#: src/tables/build/BuildOutputTable.tsx:460 +msgid "Build Output" +msgstr "生產產出" -#: src/forms/BuildForms.tsx:234 -msgid "Remove output" -msgstr "" +#: src/forms/BuildForms.tsx:269 +#: src/forms/BuildForms.tsx:337 +#: src/forms/BuildForms.tsx:385 +#: src/tables/build/BuildLineTable.tsx:89 +msgid "Batch" +msgstr "批次" -#: src/forms/BuildForms.tsx:316 +#: src/forms/BuildForms.tsx:269 +#: src/forms/BuildForms.tsx:337 +#: src/forms/BuildForms.tsx:385 +#: src/forms/PurchaseOrderForms.tsx:603 +#: src/pages/build/BuildDetail.tsx:104 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:142 +#: src/pages/sales/ReturnOrderDetail.tsx:113 +#: src/pages/sales/SalesOrderDetail.tsx:122 +#: src/tables/build/BuildOrderTable.tsx:125 +#: src/tables/machine/MachineListTable.tsx:336 +#: src/tables/part/PartPurchaseOrdersTable.tsx:37 +#: src/tables/purchasing/PurchaseOrderTable.tsx:58 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:157 +#: src/tables/sales/ReturnOrderTable.tsx:56 +#: src/tables/sales/SalesOrderTable.tsx:56 +#: src/tables/settings/CustomStateTable.tsx:57 +#: src/tables/settings/ImportSessionTable.tsx:114 +#: src/tables/stock/StockItemTable.tsx:298 +#: src/tables/stock/StockTrackingTable.tsx:56 +msgid "Status" +msgstr "狀態" + +#: src/forms/BuildForms.tsx:289 msgid "Complete Build Outputs" -msgstr "" +msgstr "完成生產輸出" -#: src/forms/BuildForms.tsx:320 +#: src/forms/BuildForms.tsx:292 msgid "Build outputs have been completed" -msgstr "" +msgstr "生產已完成" -#: src/forms/BuildForms.tsx:389 +#: src/forms/BuildForms.tsx:353 msgid "Scrap Build Outputs" -msgstr "" +msgstr "報廢生產輸出" + +#: src/forms/BuildForms.tsx:356 +msgid "Build outputs have been scrapped" +msgstr "生產已完成" #: src/forms/BuildForms.tsx:393 -msgid "Build outputs have been scrapped" -msgstr "" - -#: src/forms/BuildForms.tsx:425 -#: src/forms/BuildForms.tsx:449 msgid "Cancel Build Outputs" -msgstr "" +msgstr "取消生產輸出" -#: src/forms/BuildForms.tsx:426 -msgid "Selected build outputs will be deleted" -msgstr "" - -#: src/forms/BuildForms.tsx:453 +#: src/forms/BuildForms.tsx:396 msgid "Build outputs have been cancelled" -msgstr "" +msgstr "生產已完成" + +#: src/forms/BuildForms.tsx:408 +#~ msgid "Selected build outputs will be deleted" +#~ msgstr "Selected build outputs will be deleted" + +#: src/forms/BuildForms.tsx:470 +#~ msgid "Remove line" +#~ msgstr "Remove line" + +#: src/forms/BuildForms.tsx:515 +#: src/forms/SalesOrderForms.tsx:248 +#: src/tables/build/BuildLineTable.tsx:174 +#: src/tables/sales/SalesOrderLineItemTable.tsx:276 +#: src/tables/stock/StockItemTable.tsx:309 +msgid "Allocated" +msgstr "已分配" + +#: src/forms/BuildForms.tsx:545 +#: src/forms/SalesOrderForms.tsx:239 +#: src/pages/build/BuildDetail.tsx:208 +msgid "Source Location" +msgstr "來源地點" + +#: src/forms/BuildForms.tsx:546 +#: src/forms/SalesOrderForms.tsx:240 +msgid "Select the source location for the stock allocation" +msgstr "選擇分配庫存的源位置" + +#: src/forms/BuildForms.tsx:566 +#: src/forms/SalesOrderForms.tsx:274 +#: src/tables/build/BuildLineTable.tsx:442 +#: src/tables/build/BuildLineTable.tsx:569 +#: src/tables/build/BuildLineTable.tsx:642 +#: src/tables/sales/SalesOrderLineItemTable.tsx:302 +#: src/tables/sales/SalesOrderLineItemTable.tsx:326 +msgid "Allocate Stock" +msgstr "分配庫存" + +#: src/forms/BuildForms.tsx:569 +#: src/forms/SalesOrderForms.tsx:279 +msgid "Stock items allocated" +msgstr "分配的庫存項目" #: src/forms/CompanyForms.tsx:150 #~ msgid "Company updated" #~ msgstr "Company updated" +#: src/forms/PartForms.tsx:67 +#: src/forms/PartForms.tsx:154 +#: src/pages/part/CategoryDetail.tsx:117 +#: src/pages/part/PartDetail.tsx:384 +#: src/tables/part/PartCategoryTable.tsx:90 +#: src/tables/part/PartTable.tsx:294 +msgid "Subscribed" +msgstr "已訂閲" + +#: src/forms/PartForms.tsx:68 +msgid "Subscribe to notifications for this part" +msgstr "" + #: src/forms/PartForms.tsx:106 #~ msgid "Create Part" #~ msgstr "Create Part" @@ -2751,276 +3354,295 @@ msgstr "" #~ msgid "Part created" #~ msgstr "Part created" -#: src/forms/PartForms.tsx:124 -msgid "Parent part category" -msgstr "" - #: src/forms/PartForms.tsx:129 #~ msgid "Part updated" #~ msgstr "Part updated" -#: src/forms/PurchaseOrderForms.tsx:300 +#: src/forms/PartForms.tsx:140 +msgid "Parent part category" +msgstr "上級零件類別" + +#: src/forms/PartForms.tsx:155 +msgid "Subscribe to notifications for this category" +msgstr "" + +#: src/forms/PurchaseOrderForms.tsx:314 +msgid "Assign Batch Code and Serial Numbers" +msgstr "" + +#: src/forms/PurchaseOrderForms.tsx:316 +msgid "Assign Batch Code" +msgstr "" + +#: src/forms/PurchaseOrderForms.tsx:336 msgid "Choose Location" -msgstr "" +msgstr "選擇位置" -#: src/forms/PurchaseOrderForms.tsx:308 +#: src/forms/PurchaseOrderForms.tsx:344 msgid "Item Destination selected" -msgstr "" +msgstr "已選擇項目目的地" -#: src/forms/PurchaseOrderForms.tsx:317 +#: src/forms/PurchaseOrderForms.tsx:353 msgid "Part category default location selected" -msgstr "" +msgstr "已選擇零件類別默認位置" -#: src/forms/PurchaseOrderForms.tsx:327 +#: src/forms/PurchaseOrderForms.tsx:363 msgid "Received stock location selected" -msgstr "" +msgstr "已選擇接收庫存位置" -#: src/forms/PurchaseOrderForms.tsx:332 +#: src/forms/PurchaseOrderForms.tsx:368 msgid "Default location selected" -msgstr "" +msgstr "已選擇默認位置" -#: src/forms/PurchaseOrderForms.tsx:343 -#: src/forms/PurchaseOrderForms.tsx:435 -msgid "Scan Barcode" -msgstr "" +#: src/forms/PurchaseOrderForms.tsx:421 +#~ msgid "Assign Batch Code{0}" +#~ msgstr "Assign Batch Code{0}" -#: src/forms/PurchaseOrderForms.tsx:388 +#: src/forms/PurchaseOrderForms.tsx:427 msgid "Set Location" -msgstr "" +msgstr "設置位置" -#: src/forms/PurchaseOrderForms.tsx:396 -msgid "Assign Batch Code{0}" -msgstr "" - -#: src/forms/PurchaseOrderForms.tsx:405 -#: src/forms/StockForms.tsx:420 +#: src/forms/PurchaseOrderForms.tsx:442 +#: src/forms/StockForms.tsx:539 msgid "Adjust Packaging" -msgstr "" - -#: src/forms/PurchaseOrderForms.tsx:412 -msgid "Change Status" -msgstr "" - -#: src/forms/PurchaseOrderForms.tsx:418 -msgid "Add Note" -msgstr "" +msgstr "調整封包" #: src/forms/PurchaseOrderForms.tsx:444 #: src/forms/StockForms.tsx:428 -msgid "Remove item from list" -msgstr "" +#~ msgid "Remove item from list" +#~ msgstr "Remove item from list" -#: src/forms/PurchaseOrderForms.tsx:471 -#: src/forms/StockForms.tsx:499 -#: src/forms/StockForms.tsx:533 -#: src/forms/StockForms.tsx:562 -#: src/forms/StockForms.tsx:590 -#: src/forms/StockForms.tsx:621 -#: src/forms/StockForms.tsx:656 -#: src/forms/StockForms.tsx:698 -#: src/forms/StockForms.tsx:734 -#: src/pages/stock/StockDetail.tsx:181 -#: src/tables/ColumnRenderers.tsx:49 -#: src/tables/stock/StockTrackingTable.tsx:85 +#: src/forms/PurchaseOrderForms.tsx:450 +msgid "Change Status" +msgstr "更改狀態" + +#: src/forms/PurchaseOrderForms.tsx:456 +msgid "Add Note" +msgstr "添加備註" + +#: src/forms/PurchaseOrderForms.tsx:503 +#: src/forms/StockForms.tsx:614 +#: src/forms/StockForms.tsx:651 +#: src/forms/StockForms.tsx:677 +#: src/forms/StockForms.tsx:705 +#: src/forms/StockForms.tsx:736 +#: src/forms/StockForms.tsx:771 +#: src/forms/StockForms.tsx:813 +#: src/forms/StockForms.tsx:851 +#: src/pages/stock/StockDetail.tsx:202 +#: src/tables/ColumnRenderers.tsx:60 +#: src/tables/stock/StockTrackingTable.tsx:89 msgid "Location" -msgstr "" +msgstr "位置" -#: src/forms/PurchaseOrderForms.tsx:486 +#: src/forms/PurchaseOrderForms.tsx:518 msgid "Store at default location" -msgstr "" +msgstr "存儲在默認位置" -#: src/forms/PurchaseOrderForms.tsx:499 +#: src/forms/PurchaseOrderForms.tsx:533 msgid "Store at line item destination" -msgstr "" +msgstr "存儲在行項目目標" -#: src/forms/PurchaseOrderForms.tsx:509 +#: src/forms/PurchaseOrderForms.tsx:545 msgid "Store with already received stock" -msgstr "" +msgstr "存儲已收到的庫存" -#: src/forms/PurchaseOrderForms.tsx:524 -#: src/pages/build/BuildDetail.tsx:219 -#: src/pages/stock/StockDetail.tsx:162 -#: src/pages/stock/StockDetail.tsx:599 -#: src/tables/build/BuildAllocatedStockTable.tsx:109 -#: src/tables/build/BuildOrderTestTable.tsx:188 -#: src/tables/sales/SalesOrderAllocationTable.tsx:87 +#: src/forms/PurchaseOrderForms.tsx:566 +#: src/pages/build/BuildDetail.tsx:222 +#: src/pages/stock/StockDetail.tsx:185 +#: src/pages/stock/StockDetail.tsx:793 +#: src/tables/build/BuildAllocatedStockTable.tsx:130 +#: src/tables/build/BuildOrderTestTable.tsx:189 +#: src/tables/build/BuildOutputTable.tsx:86 +#: src/tables/sales/SalesOrderAllocationTable.tsx:113 msgid "Batch Code" +msgstr "批號" + +#: src/forms/PurchaseOrderForms.tsx:566 +#~ msgid "Serial numbers" +#~ msgstr "Serial numbers" + +#: src/forms/PurchaseOrderForms.tsx:567 +msgid "Enter batch code for received items" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:535 -msgid "Serial numbers" +#: src/forms/PurchaseOrderForms.tsx:579 +#: src/forms/StockForms.tsx:152 +msgid "Serial Numbers" +msgstr "序列號" + +#: src/forms/PurchaseOrderForms.tsx:580 +msgid "Enter serial numbers for received items" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:544 -#: src/forms/StockForms.tsx:443 -#: src/pages/company/SupplierPartDetail.tsx:156 -#: src/pages/company/SupplierPartDetail.tsx:207 -#: src/pages/stock/StockDetail.tsx:244 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:192 +#: src/forms/PurchaseOrderForms.tsx:590 +#: src/forms/StockForms.tsx:556 +#: src/pages/company/SupplierPartDetail.tsx:168 +#: src/pages/company/SupplierPartDetail.tsx:219 +#: src/pages/stock/StockDetail.tsx:320 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:198 msgid "Packaging" -msgstr "" +msgstr "包裝" -#: src/forms/PurchaseOrderForms.tsx:556 -#: src/pages/build/BuildDetail.tsx:109 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:148 -#: src/pages/sales/ReturnOrderDetail.tsx:121 -#: src/pages/sales/SalesOrderDetail.tsx:127 -#: src/tables/build/BuildOrderTable.tsx:122 -#: src/tables/machine/MachineListTable.tsx:335 -#: src/tables/part/PartPurchaseOrdersTable.tsx:37 -#: src/tables/purchasing/PurchaseOrderTable.tsx:55 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:132 -#: src/tables/sales/ReturnOrderTable.tsx:46 -#: src/tables/sales/SalesOrderTable.tsx:53 -#: src/tables/settings/ImportSessionTable.tsx:115 -#: src/tables/stock/StockItemTable.tsx:294 -#: src/tables/stock/StockTrackingTable.tsx:52 -msgid "Status" -msgstr "" - -#: src/forms/PurchaseOrderForms.tsx:564 -#: src/pages/company/SupplierPartDetail.tsx:110 -#: src/tables/ColumnRenderers.tsx:132 +#: src/forms/PurchaseOrderForms.tsx:612 +#: src/pages/company/SupplierPartDetail.tsx:115 +#: src/tables/ColumnRenderers.tsx:143 msgid "Note" -msgstr "" - -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/pages/company/SupplierPartDetail.tsx:128 -#: src/tables/purchasing/SupplierPriceBreakTable.tsx:57 -msgid "SKU" -msgstr "" - -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/tables/part/PartPurchaseOrdersTable.tsx:120 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:178 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:127 -msgid "Received" -msgstr "" - -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/forms/StockForms.tsx:499 -#: src/forms/StockForms.tsx:533 -#: src/forms/StockForms.tsx:562 -#: src/forms/StockForms.tsx:590 -#: src/forms/StockForms.tsx:621 -#: src/forms/StockForms.tsx:656 -#: src/forms/StockForms.tsx:698 -#: src/forms/StockForms.tsx:734 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:413 -#: src/tables/RowActions.tsx:113 -msgid "Actions" -msgstr "" - -#: src/forms/PurchaseOrderForms.tsx:655 -msgid "Receive Line Items" -msgstr "" +msgstr "備註" #: src/forms/PurchaseOrderForms.tsx:658 #~ msgid "Receive line items" #~ msgstr "Receive line items" -#: src/forms/StockForms.tsx:104 -msgid "Add given quantity as packs instead of individual items" -msgstr "" +#: src/forms/PurchaseOrderForms.tsx:689 +#: src/pages/company/SupplierPartDetail.tsx:133 +#: src/tables/purchasing/SupplierPriceBreakTable.tsx:57 +msgid "SKU" +msgstr "庫存單位 (SKU)" + +#: src/forms/PurchaseOrderForms.tsx:689 +#: src/tables/part/PartPurchaseOrdersTable.tsx:126 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:184 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:247 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:152 +msgid "Received" +msgstr "已接收" + +#: src/forms/PurchaseOrderForms.tsx:701 +msgid "Receive Line Items" +msgstr "接收行項目" + +#: src/forms/ReturnOrderForms.tsx:201 +msgid "Receive Items" +msgstr "接收物品" + +#: src/forms/ReturnOrderForms.tsx:208 +msgid "Item received into stock" +msgstr "已收到庫存物品" + +#: src/forms/StockForms.tsx:80 +#: src/hooks/UsePlaceholder.tsx:57 +msgid "Next serial number" +msgstr "下一個序列號" #: src/forms/StockForms.tsx:110 #~ msgid "Create Stock Item" #~ msgstr "Create Stock Item" -#: src/forms/StockForms.tsx:117 +#: src/forms/StockForms.tsx:131 +msgid "Add given quantity as packs instead of individual items" +msgstr "將給定的數量添加為包,而不是單個項目" + +#: src/forms/StockForms.tsx:145 msgid "Enter initial quantity for this stock item" -msgstr "" +msgstr "輸入此庫存項的初始數量" -#: src/forms/StockForms.tsx:124 -msgid "Serial Numbers" -msgstr "" - -#: src/forms/StockForms.tsx:125 +#: src/forms/StockForms.tsx:154 msgid "Enter serial numbers for new stock (or leave blank)" -msgstr "" +msgstr "輸入新庫存的序列號(或留空)" #: src/forms/StockForms.tsx:158 #~ msgid "Stock item updated" #~ msgstr "Stock item updated" -#: src/forms/StockForms.tsx:179 -#: src/pages/stock/StockDetail.tsx:434 -#: src/tables/stock/StockItemTable.tsx:417 -#: src/tables/stock/StockItemTable.tsx:535 +#: src/forms/StockForms.tsx:169 +#: src/pages/stock/StockDetail.tsx:131 +msgid "Stock Status" +msgstr "庫存狀態" + +#: src/forms/StockForms.tsx:218 +#: src/pages/stock/StockDetail.tsx:554 +#: src/tables/stock/StockItemTable.tsx:421 +#: src/tables/stock/StockItemTable.tsx:541 msgid "Add Stock Item" -msgstr "" +msgstr "編輯庫存項" -#: src/forms/StockForms.tsx:362 +#: src/forms/StockForms.tsx:262 +msgid "Select the part to install" +msgstr "選擇要安裝的零件" + +#: src/forms/StockForms.tsx:480 msgid "Loading..." -msgstr "" +msgstr "正在加載..." -#: src/forms/StockForms.tsx:408 +#: src/forms/StockForms.tsx:527 msgid "Move to default location" -msgstr "" +msgstr "移動到默認位置" -#: src/forms/StockForms.tsx:499 -#: src/forms/StockForms.tsx:533 -#: src/forms/StockForms.tsx:562 -#: src/forms/StockForms.tsx:590 -#: src/forms/StockForms.tsx:621 -#: src/forms/StockForms.tsx:656 -#: src/forms/StockForms.tsx:698 -#: src/forms/StockForms.tsx:734 -#: src/pages/part/PartDetail.tsx:230 -#: src/pages/part/PartDetail.tsx:843 -#: src/tables/stock/StockItemTable.tsx:325 +#: src/forms/StockForms.tsx:614 +#: src/forms/StockForms.tsx:651 +#: src/forms/StockForms.tsx:677 +#: src/forms/StockForms.tsx:705 +#: src/forms/StockForms.tsx:736 +#: src/forms/StockForms.tsx:771 +#: src/forms/StockForms.tsx:813 +#: src/forms/StockForms.tsx:851 +#: src/pages/part/PartDetail.tsx:251 +#: src/pages/part/PartDetail.tsx:875 +#: src/tables/stock/StockItemTable.tsx:329 msgid "In Stock" -msgstr "" +msgstr "入庫" -#: src/forms/StockForms.tsx:499 +#: src/forms/StockForms.tsx:614 msgid "Move" -msgstr "" +msgstr "移動" -#: src/forms/StockForms.tsx:562 -#: src/pages/stock/StockDetail.tsx:518 -#: src/tables/stock/StockItemTestResultTable.tsx:328 +#: src/forms/StockForms.tsx:677 +#: src/pages/stock/StockDetail.tsx:681 +#: src/tables/stock/StockItemTestResultTable.tsx:346 msgid "Add" -msgstr "" +msgstr "添加" -#: src/forms/StockForms.tsx:590 -#: src/pages/Index/Scan.tsx:266 -#: src/pages/stock/StockDetail.tsx:508 +#: src/forms/StockForms.tsx:705 +#: src/pages/Index/Scan.tsx:280 +#: src/pages/stock/StockDetail.tsx:670 msgid "Count" -msgstr "" +msgstr "總計" -#: src/forms/StockForms.tsx:835 +#: src/forms/StockForms.tsx:953 +#: src/pages/stock/StockDetail.tsx:682 +#: src/tables/stock/StockItemTable.tsx:454 msgid "Add Stock" -msgstr "" +msgstr "添加庫存" -#: src/forms/StockForms.tsx:844 +#: src/forms/StockForms.tsx:962 +#: src/pages/stock/StockDetail.tsx:691 +#: src/tables/stock/StockItemTable.tsx:463 msgid "Remove Stock" -msgstr "" +msgstr "移除庫存" -#: src/forms/StockForms.tsx:853 -#: src/pages/part/PartDetail.tsx:1017 +#: src/forms/StockForms.tsx:971 +#: src/pages/part/PartDetail.tsx:1039 +#: src/pages/stock/StockDetail.tsx:712 +#: src/tables/stock/StockItemTable.tsx:483 msgid "Transfer Stock" -msgstr "" +msgstr "轉移庫存" -#: src/forms/StockForms.tsx:862 -#: src/pages/part/PartDetail.tsx:1006 +#: src/forms/StockForms.tsx:980 +#: src/pages/part/PartDetail.tsx:1028 +#: src/pages/stock/LocationDetail.tsx:314 +#: src/pages/stock/LocationDetail.tsx:318 +#: src/tables/stock/StockItemTable.tsx:472 +#: src/tables/stock/StockItemTable.tsx:476 msgid "Count Stock" -msgstr "" +msgstr "庫存數量" -#: src/forms/StockForms.tsx:871 +#: src/forms/StockForms.tsx:989 msgid "Change Stock Status" -msgstr "" +msgstr "更改庫存狀態" -#: src/forms/StockForms.tsx:880 +#: src/forms/StockForms.tsx:998 msgid "Merge Stock" -msgstr "" +msgstr "合併庫存" -#: src/forms/StockForms.tsx:899 +#: src/forms/StockForms.tsx:1017 +#: src/tables/stock/StockItemTable.tsx:530 msgid "Delete Stock Items" -msgstr "" +msgstr "刪除庫存項" -#: src/forms/StockForms.tsx:906 +#: src/forms/StockForms.tsx:1024 msgid "Parent stock location" -msgstr "" +msgstr "上級庫存地點" #: src/functions/auth.tsx:34 #~ msgid "Error fetching token from server." @@ -3042,13 +3664,13 @@ msgstr "" #~ msgid "You have been logged out" #~ msgstr "You have been logged out" -#: src/functions/auth.tsx:117 +#: src/functions/auth.tsx:128 msgid "Logged Out" -msgstr "" +msgstr "已登出" -#: src/functions/auth.tsx:118 +#: src/functions/auth.tsx:129 msgid "Successfully logged out" -msgstr "" +msgstr "已成功登出" #: src/functions/auth.tsx:141 #~ msgid "Already logged in" @@ -3062,22 +3684,22 @@ msgstr "" #~ msgid "Found an existing login - welcome back!" #~ msgstr "Found an existing login - welcome back!" -#: src/functions/auth.tsx:156 +#: src/functions/auth.tsx:167 msgid "Check your inbox for a reset link. This only works if you have an account. Check in spam too." -msgstr "" +msgstr "查看收件箱中的重置鏈接。這隻有在您有賬户的情況下才會起作用。也請檢查垃圾郵件。" -#: src/functions/auth.tsx:163 +#: src/functions/auth.tsx:174 #: src/pages/Auth/Set-Password.tsx:39 msgid "Reset failed" -msgstr "" +msgstr "重置失敗" -#: src/functions/auth.tsx:194 +#: src/functions/auth.tsx:205 msgid "Logged In" -msgstr "" +msgstr "已登錄" -#: src/functions/auth.tsx:195 +#: src/functions/auth.tsx:206 msgid "Successfully logged in" -msgstr "" +msgstr "已成功登入" #: src/functions/forms.tsx:50 #~ msgid "Form method not provided" @@ -3095,62 +3717,74 @@ msgstr "" #~ msgid "method parameter not supplied" #~ msgstr "method parameter not supplied" -#: src/functions/notifications.tsx:10 +#: src/functions/notifications.tsx:12 msgid "Not implemented" -msgstr "" +msgstr "尚未實現" -#: src/functions/notifications.tsx:11 +#: src/functions/notifications.tsx:13 msgid "This feature is not yet implemented" -msgstr "" +msgstr "此功能尚未實現" -#: src/functions/notifications.tsx:21 -msgid "Permission denied" -msgstr "" +#: src/functions/notifications.tsx:24 +#~ msgid "Permission denied" +#~ msgstr "Permission denied" -#: src/functions/notifications.tsx:22 +#: src/functions/notifications.tsx:25 msgid "You do not have permission to perform this action" -msgstr "" +msgstr "您無權執行此操作。" -#: src/functions/notifications.tsx:33 +#: src/functions/notifications.tsx:36 msgid "Invalid Return Code" -msgstr "" +msgstr "無效返回碼" -#: src/functions/notifications.tsx:34 +#: src/functions/notifications.tsx:37 msgid "Server returned status {returnCode}" -msgstr "" +msgstr "服務器返回狀態 {returnCode}" + +#: src/functions/notifications.tsx:47 +msgid "Timeout" +msgstr "超時" + +#: src/functions/notifications.tsx:48 +msgid "The request timed out" +msgstr "請求已超時" #: src/hooks/UseForm.tsx:88 msgid "Item Created" -msgstr "" +msgstr "項目已創建" #: src/hooks/UseForm.tsx:105 msgid "Item Updated" -msgstr "" +msgstr "項目已更新" #: src/hooks/UseForm.tsx:124 msgid "Item Deleted" -msgstr "" +msgstr "項目已刪除" #: src/hooks/UseForm.tsx:128 msgid "Are you sure you want to delete this item?" -msgstr "" +msgstr "確實要刪除此項目嗎?" + +#: src/hooks/UsePlaceholder.tsx:59 +msgid "Latest serial number" +msgstr "最新序列號" #: src/pages/Auth/Logged-In.tsx:22 msgid "Checking if you are already logged in" -msgstr "" +msgstr "檢查您是否已經登錄" -#: src/pages/Auth/Login.tsx:31 -#: src/pages/Index/Scan.tsx:329 +#: src/pages/Auth/Login.tsx:35 +#: src/pages/Index/Scan.tsx:343 msgid "No selection" -msgstr "" +msgstr "未選擇" -#: src/pages/Auth/Login.tsx:87 +#: src/pages/Auth/Login.tsx:91 msgid "Welcome, log in below" -msgstr "" +msgstr "歡迎,請在下方登錄" -#: src/pages/Auth/Login.tsx:89 +#: src/pages/Auth/Login.tsx:93 msgid "Register below" -msgstr "" +msgstr "點擊下方註冊" #: src/pages/Auth/Login.tsx:121 #~ msgid "Edit host options" @@ -3158,68 +3792,68 @@ msgstr "" #: src/pages/Auth/Logout.tsx:22 msgid "Logging out" -msgstr "" +msgstr "正在登出" #: src/pages/Auth/Reset.tsx:41 #: src/pages/Auth/Set-Password.tsx:112 -msgid "Send mail" -msgstr "" +#~ msgid "Send mail" +#~ msgstr "Send mail" #: src/pages/Auth/Set-Password.tsx:30 msgid "Token invalid" -msgstr "" +msgstr "令牌無效" #: src/pages/Auth/Set-Password.tsx:31 msgid "You need to provide a valid token to set a new password. Check your inbox for a reset link." -msgstr "" +msgstr "您需要提供一個有效的令牌來設置一個新的密碼。請檢查收件箱以獲取重置鏈接。" #: src/pages/Auth/Set-Password.tsx:49 -msgid "No token provided" -msgstr "" +#~ msgid "No token provided" +#~ msgstr "No token provided" #: src/pages/Auth/Set-Password.tsx:50 -msgid "You need to provide a token to set a new password. Check your inbox for a reset link." -msgstr "" +#~ msgid "You need to provide a token to set a new password. Check your inbox for a reset link." +#~ msgstr "You need to provide a token to set a new password. Check your inbox for a reset link." -#: src/pages/Auth/Set-Password.tsx:73 +#: src/pages/Auth/Set-Password.tsx:68 msgid "Password set" -msgstr "" +msgstr "密碼已設置" -#: src/pages/Auth/Set-Password.tsx:74 +#: src/pages/Auth/Set-Password.tsx:69 msgid "The password was set successfully. You can now login with your new password" -msgstr "" +msgstr "密碼設置成功。您現在可以使用新密碼登錄" -#: src/pages/Auth/Set-Password.tsx:101 +#: src/pages/Auth/Set-Password.tsx:96 msgid "Set new password" -msgstr "" +msgstr "設置新密碼" #: src/pages/ErrorPage.tsx:16 msgid "Error: {0}" -msgstr "" +msgstr "錯誤:{0}" #: src/pages/ErrorPage.tsx:23 msgid "An unexpected error has occurred" -msgstr "" +msgstr "發生意外錯誤。" #: src/pages/ErrorPage.tsx:28 #~ msgid "Sorry, an unexpected error has occurred." #~ msgstr "Sorry, an unexpected error has occurred." #: src/pages/Index/Dashboard.tsx:22 -msgid "Autoupdate" -msgstr "" +#~ msgid "Autoupdate" +#~ msgstr "Autoupdate" #: src/pages/Index/Dashboard.tsx:26 -msgid "This page is a replacement for the old start page with the same information. This page will be deprecated and replaced by the home page." -msgstr "" +#~ msgid "This page is a replacement for the old start page with the same information. This page will be deprecated and replaced by the home page." +#~ msgstr "This page is a replacement for the old start page with the same information. This page will be deprecated and replaced by the home page." #: src/pages/Index/Home.tsx:58 -msgid "Welcome to your Dashboard{0}" -msgstr "" +#~ msgid "Welcome to your Dashboard{0}" +#~ msgstr "Welcome to your Dashboard{0}" #: src/pages/Index/Playground.tsx:222 -msgid "This page is a showcase for the possibilities of Platform UI." -msgstr "" +#~ msgid "This page is a showcase for the possibilities of Platform UI." +#~ msgstr "This page is a showcase for the possibilities of Platform UI." #: src/pages/Index/Profile/Profile.tsx:30 #: src/pages/Index/Profile/Profile.tsx:141 @@ -3359,132 +3993,197 @@ msgstr "" #: src/pages/Index/Scan.tsx:216 msgid "Manual input" -msgstr "" +msgstr "手動輸入" #: src/pages/Index/Scan.tsx:217 msgid "Image Barcode" -msgstr "" - -#: src/pages/Index/Scan.tsx:247 -msgid "Selected elements are not known" -msgstr "" - -#: src/pages/Index/Scan.tsx:254 -msgid "Multiple object types selected" -msgstr "" +msgstr "圖片條碼" #: src/pages/Index/Scan.tsx:261 +msgid "Selected elements are not known" +msgstr "所選元素未知" + +#: src/pages/Index/Scan.tsx:268 +msgid "Multiple object types selected" +msgstr "選擇多個對象類型" + +#: src/pages/Index/Scan.tsx:275 msgid "Actions for {0}" -msgstr "" +msgstr "對 {0} 的操作" -#: src/pages/Index/Scan.tsx:282 +#: src/pages/Index/Scan.tsx:296 msgid "Scan Page" -msgstr "" +msgstr "掃描頁" -#: src/pages/Index/Scan.tsx:285 +#: src/pages/Index/Scan.tsx:299 msgid "This page can be used for continuously scanning items and taking actions on them." -msgstr "" +msgstr "該頁面可用於持續掃描項目並對其進行操作。" -#: src/pages/Index/Scan.tsx:292 +#: src/pages/Index/Scan.tsx:306 msgid "Toggle Fullscreen" -msgstr "" +msgstr "全屏開關" -#: src/pages/Index/Scan.tsx:305 +#: src/pages/Index/Scan.tsx:319 msgid "Select the input method you want to use to scan items." -msgstr "" +msgstr "選擇您要用於掃描項目的輸入方法。" -#: src/pages/Index/Scan.tsx:307 +#: src/pages/Index/Scan.tsx:321 msgid "Input" -msgstr "" +msgstr "輸入" -#: src/pages/Index/Scan.tsx:314 +#: src/pages/Index/Scan.tsx:328 msgid "Select input method" -msgstr "" +msgstr "選擇輸入方式" -#: src/pages/Index/Scan.tsx:315 +#: src/pages/Index/Scan.tsx:329 msgid "Nothing found" -msgstr "" - -#: src/pages/Index/Scan.tsx:323 -msgid "Depending on the selected parts actions will be shown here. Not all barcode types are supported currently." -msgstr "" - -#: src/pages/Index/Scan.tsx:325 -msgid "Action" -msgstr "" - -#: src/pages/Index/Scan.tsx:334 -msgid "{0} items selected" -msgstr "" +msgstr "無結果" #: src/pages/Index/Scan.tsx:337 -msgid "General Actions" -msgstr "" +msgid "Depending on the selected parts actions will be shown here. Not all barcode types are supported currently." +msgstr "根據所選零件的不同,這裏將顯示相應的操作。目前不支持所有條碼類型。" + +#: src/pages/Index/Scan.tsx:339 +msgid "Action" +msgstr "操作" + +#: src/pages/Index/Scan.tsx:348 +msgid "{0} items selected" +msgstr "已選擇 {0} 項" #: src/pages/Index/Scan.tsx:351 +msgid "General Actions" +msgstr "通用操作" + +#: src/pages/Index/Scan.tsx:365 msgid "Lookup part" -msgstr "" +msgstr "查找零件" -#: src/pages/Index/Scan.tsx:359 +#: src/pages/Index/Scan.tsx:373 msgid "Open Link" -msgstr "" +msgstr "打開鏈接" -#: src/pages/Index/Scan.tsx:375 +#: src/pages/Index/Scan.tsx:389 msgid "History is locally kept in this browser." -msgstr "" +msgstr "歷史記錄被本地保存在此瀏覽器。" -#: src/pages/Index/Scan.tsx:376 +#: src/pages/Index/Scan.tsx:390 msgid "The history is kept in this browser's local storage. So it won't be shared with other users or other devices but is persistent through reloads. You can select items in the history to perform actions on them. To add items, scan/enter them in the Input area." -msgstr "" +msgstr "歷史記錄保存在瀏覽器的本地存儲中。因此,它不會與其他用户或其他設備共享,但在重新加載時會持續存在。您可以選擇歷史記錄中的項目,對其執行操作。要添加項目,請在輸入區掃描/輸入。" -#: src/pages/Index/Scan.tsx:378 +#: src/pages/Index/Scan.tsx:392 #: src/pages/Notifications.tsx:100 msgid "History" -msgstr "" +msgstr "歷史記錄" -#: src/pages/Index/Scan.tsx:384 +#: src/pages/Index/Scan.tsx:398 msgid "Delete History" -msgstr "" +msgstr "刪除歷史記錄" -#: src/pages/Index/Scan.tsx:449 +#: src/pages/Index/Scan.tsx:463 msgid "No history" -msgstr "" +msgstr "無歷史記錄" -#: src/pages/Index/Scan.tsx:467 +#: src/pages/Index/Scan.tsx:481 msgid "Item" -msgstr "" +msgstr "項目" -#: src/pages/Index/Scan.tsx:470 +#: src/pages/Index/Scan.tsx:484 msgid "Type" -msgstr "" +msgstr "類型" -#: src/pages/Index/Scan.tsx:473 +#: src/pages/Index/Scan.tsx:487 msgid "Source" -msgstr "" +msgstr "來源" -#: src/pages/Index/Scan.tsx:476 +#: src/pages/Index/Scan.tsx:490 msgid "Scanned at" -msgstr "" +msgstr "掃描於" -#: src/pages/Index/Scan.tsx:528 +#: src/pages/Index/Scan.tsx:547 msgid "Enter item serial or data" -msgstr "" +msgstr "輸入項目序列號或數據" -#: src/pages/Index/Scan.tsx:540 +#: src/pages/Index/Scan.tsx:559 msgid "Add dummy item" -msgstr "" +msgstr "添加虛擬項目" + +#: src/pages/Index/Scan.tsx:569 +msgid "Start scanning by selecting a camera and pressing the play button." +msgstr "選擇相機並按播放按鈕開始掃描。" + +#: src/pages/Index/Scan.tsx:650 +msgid "Error while getting camera" +msgstr "獲取相機時出錯" + +#: src/pages/Index/Scan.tsx:673 +msgid "Error while scanning" +msgstr "掃描時出錯" + +#: src/pages/Index/Scan.tsx:687 +msgid "Error while stopping" +msgstr "停止時出錯" + +#: src/pages/Index/Scan.tsx:745 +msgid "Stop scanning" +msgstr "停止掃描" + +#: src/pages/Index/Scan.tsx:754 +msgid "Start scanning" +msgstr "開始掃描" + +#: src/pages/Index/Scan.tsx:763 +msgid "Scanning" +msgstr "正在掃描" + +#: src/pages/Index/Scan.tsx:763 +msgid "Not scanning" +msgstr "未掃描" + +#: src/pages/Index/Scan.tsx:775 +msgid "Select Camera" +msgstr "選擇相機" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:28 +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:50 +msgid "Edit User Information" +msgstr "編輯使用者資訊" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:32 +msgid "User details updated" +msgstr "用户明細已更新" #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:41 -msgid "Account Details" -msgstr "" +msgid "User Details" +msgstr "用户詳情" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:41 +#~ msgid "Account Details" +#~ msgstr "Account Details" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:44 +msgid "User Actions" +msgstr "用户操作" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:48 +msgid "Edit User" +msgstr "編輯用户" #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:50 -msgid "First name" -msgstr "" +#~ msgid "First name" +#~ msgstr "First name" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:54 +msgid "Set Password" +msgstr "設置密碼" #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:55 -msgid "Last name" -msgstr "" +#~ msgid "Last name" +#~ msgstr "Last name" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:56 +msgid "Set User Password" +msgstr "設置用户密碼" #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:58 #~ msgid "First name: {0}" @@ -3495,175 +4194,203 @@ msgstr "" #~ msgstr "Last name: {0}" #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:67 -msgid "First name:" -msgstr "" +#~ msgid "First name:" +#~ msgstr "First name:" #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:71 -msgid "Last name:" -msgstr "" +#~ msgid "Last name:" +#~ msgstr "Last name:" -#: src/pages/Index/Settings/AccountSettings/DisplaySettingsPanel.tsx:41 -msgid "Use pseudo language" -msgstr "" +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:73 +msgid "First Name" +msgstr "名" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:79 +msgid "Last Name" +msgstr "姓" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:85 +msgid "Staff Access" +msgstr "工作人員訪問" + +#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:93 +#: src/tables/settings/UserTable.tsx:293 +msgid "Superuser" +msgstr "超級用户" #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:55 msgid "Single Sign On Accounts" -msgstr "" +msgstr "單點登錄賬户" #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:62 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:80 msgid "Not enabled" -msgstr "" +msgstr "未啓用" #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:65 msgid "Single Sign On is not enabled for this server" -msgstr "" +msgstr "此服務器未啓用單點登錄" #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:69 msgid "Multifactor" -msgstr "" +msgstr "多因素身份驗證" #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:83 msgid "Multifactor authentication is not configured for your account" -msgstr "" +msgstr "您的賬户未配置多因素身份驗證" #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:92 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:407 msgid "Token" -msgstr "" +msgstr "令牌" #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:139 msgid "The following email addresses are associated with your account:" -msgstr "" +msgstr "以下電子郵件地址與您的賬户相關聯:" #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:151 msgid "Primary" -msgstr "" +msgstr "主要的" #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:156 msgid "Verified" -msgstr "" +msgstr "已驗證" #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:160 msgid "Unverified" -msgstr "" +msgstr "未驗證" #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:173 msgid "Add Email Address" -msgstr "" +msgstr "添加電子郵件地址" #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:176 msgid "E-Mail" -msgstr "" +msgstr "郵箱" #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:177 msgid "E-Mail address" -msgstr "" +msgstr "郵箱地址" #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:189 msgid "Make Primary" -msgstr "" +msgstr "設為首選" #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:194 msgid "Re-send Verification" -msgstr "" +msgstr "重新發送驗證" #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:205 msgid "Add Email" -msgstr "" +msgstr "添加電子郵件" #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:270 msgid "Provider has not been configured" -msgstr "" +msgstr "未配置提供商" #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:280 msgid "Not configured" -msgstr "" +msgstr "未配置" #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:283 msgid "There are no social network accounts connected to this account." -msgstr "" +msgstr "您當前沒有連接到此賬户的社交網絡賬户。" #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:293 msgid "You can sign in to your account using any of the following third party accounts" -msgstr "" +msgstr "您可以使用下列任何第三方賬户登錄您的賬户" #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:368 msgid "Token is used - no actions" -msgstr "" +msgstr "令牌已被使用 - 沒有動作" #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:375 msgid "Revoke" -msgstr "" +msgstr "撤銷" #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:389 msgid "No tokens configured" -msgstr "" - -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:398 -#: src/pages/part/PartDetail.tsx:297 -#: src/tables/bom/UsedInTable.tsx:84 -#: src/tables/build/BuildOrderTable.tsx:110 -#: src/tables/company/CompanyTable.tsx:61 -#: src/tables/company/CompanyTable.tsx:95 -#: src/tables/machine/MachineListTable.tsx:332 -#: src/tables/machine/MachineListTable.tsx:594 -#: src/tables/part/ParametricPartTable.tsx:223 -#: src/tables/part/PartTable.tsx:178 -#: src/tables/part/PartVariantTable.tsx:15 -#: src/tables/plugin/PluginListTable.tsx:149 -#: src/tables/plugin/PluginListTable.tsx:271 -#: src/tables/plugin/PluginListTable.tsx:563 -#: src/tables/purchasing/SupplierPartTable.tsx:98 -#: src/tables/purchasing/SupplierPartTable.tsx:187 -#: src/tables/settings/UserTable.tsx:284 -#: src/tables/stock/StockItemTable.tsx:289 -msgid "Active" -msgstr "" +msgstr "未配置令牌" #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:401 msgid "Expiry" -msgstr "" +msgstr "到期" #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:404 msgid "Last Seen" -msgstr "" +msgstr "上一次查看時間" #: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:65 -msgid "bars" -msgstr "" +#~ msgid "bars" +#~ msgstr "bars" #: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:66 -msgid "oval" -msgstr "" +#~ msgid "oval" +#~ msgstr "oval" #: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:67 -msgid "dots" -msgstr "" +#~ msgid "dots" +#~ msgstr "dots" #: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:81 -msgid "Theme" -msgstr "" +#~ msgid "Theme" +#~ msgstr "Theme" #: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:87 -msgid "Primary color" -msgstr "" +#~ msgid "Primary color" +#~ msgstr "Primary color" -#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:100 +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:88 +msgid "Bars" +msgstr "條" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:89 +msgid "Oval" +msgstr "橢圓" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:90 +msgid "Dots" +msgstr "點" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:101 +msgid "Display Settings" +msgstr "顯示設置" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:107 +msgid "Language" +msgstr "語言" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:115 +msgid "Use pseudo language" +msgstr "使用 pseudo 語言" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:122 +msgid "Color Mode" +msgstr "色彩模式" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:133 +msgid "Highlight color" +msgstr "高亮顏色" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:145 +msgid "Example" +msgstr "示例" + +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:151 msgid "White color" -msgstr "" +msgstr "白色" -#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:108 +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:167 msgid "Black color" -msgstr "" +msgstr "黑色" -#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:116 +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:183 msgid "Border Radius" -msgstr "" +msgstr "邊框半徑" -#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:132 +#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:199 msgid "Loader" -msgstr "" +msgstr "加載器" #: src/pages/Index/Settings/AdminCenter.tsx:30 #~ msgid "User Management" @@ -3673,89 +4400,156 @@ msgstr "" #~ msgid "Advanced Amininistrative Options for InvenTree" #~ msgstr "Advanced Amininistrative Options for InvenTree" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:104 +#: src/pages/Index/Settings/AdminCenter/CurrencyManagmentPanel.tsx:27 +#: src/tables/ColumnRenderers.tsx:262 +msgid "Currency" +msgstr "貨幣" + +#: src/pages/Index/Settings/AdminCenter/CurrencyManagmentPanel.tsx:32 +msgid "Rate" +msgstr "匯率" + +#: src/pages/Index/Settings/AdminCenter/CurrencyManagmentPanel.tsx:44 +msgid "Exchange rates updated" +msgstr "匯率已更新" + +#: src/pages/Index/Settings/AdminCenter/CurrencyManagmentPanel.tsx:50 +msgid "Exchange rate update error" +msgstr "匯率更新錯誤" + +#: src/pages/Index/Settings/AdminCenter/CurrencyManagmentPanel.tsx:62 +msgid "Refresh currency exchange rates" +msgstr "刷新貨幣匯率" + +#: src/pages/Index/Settings/AdminCenter/CurrencyManagmentPanel.tsx:99 +msgid "Last fetched" +msgstr "上次獲取時間" + +#: src/pages/Index/Settings/AdminCenter/CurrencyManagmentPanel.tsx:100 +msgid "Base currency" +msgstr "基準貨幣" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:115 msgid "Data Import" -msgstr "" +msgstr "數據導入" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:110 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:121 +msgid "Barcode Scans" +msgstr "掃描條碼" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:127 msgid "Background Tasks" -msgstr "" - -#: src/pages/Index/Settings/AdminCenter/Index.tsx:116 -msgid "Error Reports" -msgstr "" - -#: src/pages/Index/Settings/AdminCenter/Index.tsx:122 -msgid "Currencies" -msgstr "" +msgstr "後台任務" #: src/pages/Index/Settings/AdminCenter/Index.tsx:127 #~ msgid "Templates" #~ msgstr "Templates" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:140 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:133 +msgid "Error Reports" +msgstr "錯誤報告" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:139 +msgid "Currencies" +msgstr "幣種" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:157 +msgid "Custom States" +msgstr "自定狀態" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:163 +#: src/pages/Index/Settings/AdminCenter/UnitManagmentPanel.tsx:58 msgid "Custom Units" -msgstr "" +msgstr "自定義單位" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:146 -#: src/pages/part/CategoryDetail.tsx:264 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:169 +#: src/pages/part/CategoryDetail.tsx:269 msgid "Part Parameters" -msgstr "" - -#: src/pages/Index/Settings/AdminCenter/Index.tsx:152 -msgid "Category Parameters" -msgstr "" - -#: src/pages/Index/Settings/AdminCenter/Index.tsx:170 -msgid "Location Types" -msgstr "" +msgstr "零件參數" #: src/pages/Index/Settings/AdminCenter/Index.tsx:170 #~ msgid "Location types" #~ msgstr "Location types" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:182 -#: src/tables/machine/MachineTypeTable.tsx:287 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:175 +msgid "Category Parameters" +msgstr "類別參數" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:181 +msgid "Stocktake" +msgstr "庫存盤點" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:199 +msgid "Location Types" +msgstr "位置類型" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:211 +#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:48 +#: src/tables/machine/MachineTypeTable.tsx:308 msgid "Machines" -msgstr "" +msgstr "設備" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:192 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:221 msgid "Quick Actions" -msgstr "" +msgstr "快捷操作" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:197 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:226 msgid "Add a new user" -msgstr "" +msgstr "添加新用户" -#: src/pages/Index/Settings/AdminCenter/Index.tsx:222 +#: src/pages/Index/Settings/AdminCenter/Index.tsx:252 msgid "Advanced Options" -msgstr "" +msgstr "高級選項" #: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:43 -msgid "Machine types" -msgstr "" +#~ msgid "Machine types" +#~ msgstr "Machine types" #: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:53 -msgid "Machine Error Stack" +#~ msgid "Machine Error Stack" +#~ msgstr "Machine Error Stack" + +#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:56 +msgid "Machine Types" msgstr "" #: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:62 -msgid "There are no machine registry errors." +#~ msgid "There are no machine registry errors." +#~ msgstr "There are no machine registry errors." + +#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:64 +msgid "Machine Errors" msgstr "" -#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:28 -#: src/tables/settings/UserTable.tsx:119 +#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:77 +msgid "Registry Registry Errors" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:80 +msgid "There are machine registry errors" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:86 +msgid "Machine Registry Errors" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx:89 +msgid "There are no machine registry errors" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:31 +#: src/tables/settings/UserTable.tsx:118 msgid "Info" -msgstr "" - -#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:32 -msgid "External plugins are not enabled for this InvenTree installation." -msgstr "" +msgstr "信息" #: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:33 #~ msgid "Plugin Error Stack" #~ msgstr "Plugin Error Stack" +#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:35 +msgid "External plugins are not enabled for this InvenTree installation." +msgstr "此 InvenTree 未啓用外部插件。" + #: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:45 #~ msgid "Warning" #~ msgstr "Warning" @@ -3764,36 +4558,48 @@ msgstr "" #~ msgid "Changing the settings below require you to immediately restart the server. Do not change this while under active usage." #~ msgstr "Changing the settings below require you to immediately restart the server. Do not change this while under active usage." -#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:50 +#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:73 msgid "Plugin Errors" -msgstr "" +msgstr "插件錯誤" -#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:59 -msgid "Plugin Settings" -msgstr "" +#: src/pages/Index/Settings/AdminCenter/ReportTemplatePanel.tsx:17 +msgid "Page Size" +msgstr "頁面尺寸" -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:53 -msgid "Background Worker Not Running" -msgstr "" +#: src/pages/Index/Settings/AdminCenter/ReportTemplatePanel.tsx:20 +msgid "Landscape" +msgstr "橫屏模式" -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:54 +#: src/pages/Index/Settings/AdminCenter/ReportTemplatePanel.tsx:26 +msgid "Attach to Model" +msgstr "附加到模型" + +#: src/pages/Index/Settings/AdminCenter/StocktakePanel.tsx:25 +msgid "Stocktake Reports" +msgstr "盤點報告" + +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:30 msgid "The background task manager service is not running. Contact your system administrator." -msgstr "" +msgstr "後台任務管理器服務未運行。請聯繫系統管理員。" -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:60 -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:76 +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:35 +#~ msgid "Background Worker Not Running" +#~ msgstr "Background Worker Not Running" + +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:36 +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:45 msgid "Pending Tasks" -msgstr "" +msgstr "待完成任務" -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:64 -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:84 +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:37 +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:53 msgid "Scheduled Tasks" -msgstr "" +msgstr "計劃任務" -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:68 -#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:92 +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:38 +#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:61 msgid "Failed Tasks" -msgstr "" +msgstr "失敗任務" #: src/pages/Index/Settings/AdminCenter/TemplateManagementPanel.tsx:39 #~ msgid "Label" @@ -3811,11 +4617,6 @@ msgstr "" #~ msgid "Reports" #~ msgstr "Reports" -#: src/pages/Index/Settings/AdminCenter/TemplateManagementPanel.tsx:89 -#: src/pages/build/BuildDetail.tsx:373 -#~ msgid "Report" -#~ msgstr "Report" - #: src/pages/Index/Settings/AdminCenter/TemplateManagementPanel.tsx:99 #~ msgid "Purchase order" #~ msgstr "Purchase order" @@ -3836,25 +4637,37 @@ msgstr "" #~ msgid "Stock location" #~ msgstr "Stock location" +#: src/pages/Index/Settings/AdminCenter/UnitManagmentPanel.tsx:21 +msgid "Alias" +msgstr "別名" + +#: src/pages/Index/Settings/AdminCenter/UnitManagmentPanel.tsx:22 +msgid "Dimensionless" +msgstr "無尺寸" + +#: src/pages/Index/Settings/AdminCenter/UnitManagmentPanel.tsx:66 +msgid "All units" +msgstr "所有單位" + #: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:32 msgid "Select settings relevant for user lifecycle. More available in" -msgstr "" +msgstr "選擇與用户生命週期相關的設置。更多詳情見 " #: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:37 -msgid "System settings" -msgstr "" +#~ msgid "System settings" +#~ msgstr "System settings" -#: src/pages/Index/Settings/SystemSettings.tsx:67 +#: src/pages/Index/Settings/SystemSettings.tsx:66 msgid "Login" -msgstr "" +msgstr "登錄" -#: src/pages/Index/Settings/SystemSettings.tsx:93 +#: src/pages/Index/Settings/SystemSettings.tsx:92 msgid "Barcodes" -msgstr "" +msgstr "條碼" -#: src/pages/Index/Settings/SystemSettings.tsx:115 +#: src/pages/Index/Settings/SystemSettings.tsx:116 msgid "Pricing" -msgstr "" +msgstr "定價" #: src/pages/Index/Settings/SystemSettings.tsx:118 #~ msgid "Physical Units" @@ -3864,64 +4677,46 @@ msgstr "" #~ msgid "Exchange Rates" #~ msgstr "Exchange Rates" -#: src/pages/Index/Settings/SystemSettings.tsx:150 +#: src/pages/Index/Settings/SystemSettings.tsx:151 msgid "Labels" -msgstr "" +msgstr "標籤" -#: src/pages/Index/Settings/SystemSettings.tsx:156 -#: src/pages/Index/Settings/UserSettings.tsx:132 +#: src/pages/Index/Settings/SystemSettings.tsx:157 +#: src/pages/Index/Settings/UserSettings.tsx:133 msgid "Reporting" -msgstr "" +msgstr "報告" #: src/pages/Index/Settings/SystemSettings.tsx:231 -#: src/pages/part/PartDetail.tsx:682 -msgid "Stocktake" -msgstr "" - -#: src/pages/Index/Settings/SystemSettings.tsx:237 -#: src/pages/build/BuildDetail.tsx:554 -#: src/pages/build/BuildIndex.tsx:22 -#: src/pages/part/PartDetail.tsx:616 -#: src/pages/sales/SalesOrderDetail.tsx:333 +#: src/pages/build/BuildIndex.tsx:27 +#: src/pages/part/PartDetail.tsx:636 +#: src/pages/sales/SalesOrderDetail.tsx:355 msgid "Build Orders" -msgstr "" +msgstr "生產訂單" -#: src/pages/Index/Settings/SystemSettings.tsx:318 -msgid "Switch to User Setting" -msgstr "" +#: src/pages/Index/Settings/SystemSettings.tsx:317 +#~ msgid "Switch to User Setting" +#~ msgstr "Switch to User Setting" -#: src/pages/Index/Settings/UserSettings.tsx:34 +#: src/pages/Index/Settings/UserSettings.tsx:35 msgid "Account" -msgstr "" +msgstr "賬户" -#: src/pages/Index/Settings/UserSettings.tsx:40 +#: src/pages/Index/Settings/UserSettings.tsx:41 msgid "Security" -msgstr "" +msgstr "安全" -#: src/pages/Index/Settings/UserSettings.tsx:78 +#: src/pages/Index/Settings/UserSettings.tsx:79 msgid "Display Options" -msgstr "" +msgstr "顯示選項" -#: src/pages/Index/Settings/UserSettings.tsx:150 -msgid "Account Settings" -msgstr "" - -#: src/pages/Index/Settings/UserSettings.tsx:158 -msgid "Switch to System Setting" -msgstr "" - -#: src/pages/Index/UserSettings.tsx:103 -#~ msgid "User Settings" -#~ msgstr "User Settings" +#: src/pages/Index/Settings/UserSettings.tsx:159 +#~ msgid "Switch to System Setting" +#~ msgstr "Switch to System Setting" #: src/pages/Logged-In.tsx:24 #~ msgid "Found an exsisting login - using it to log you in." #~ msgstr "Found an exsisting login - using it to log you in." -#: src/pages/NotFound.tsx:17 -#~ msgid "Not Found" -#~ msgstr "Not Found" - #: src/pages/NotFound.tsx:20 #~ msgid "Sorry, this page is not known or was moved." #~ msgstr "Sorry, this page is not known or was moved." @@ -3932,98 +4727,86 @@ msgstr "" #: src/pages/Notifications.tsx:43 msgid "Delete Notifications" -msgstr "" +msgstr "刪除通知" #: src/pages/Notifications.tsx:108 msgid "Mark as unread" -msgstr "" +msgstr "標記為未讀" #: src/pages/build/BuildDetail.tsx:80 #~ msgid "Build Status" #~ msgstr "Build Status" -#: src/pages/build/BuildDetail.tsx:102 -#: src/pages/part/PartDetail.tsx:150 +#: src/pages/build/BuildDetail.tsx:97 +#: src/pages/company/ManufacturerPartDetail.tsx:81 +#: src/pages/company/SupplierPartDetail.tsx:91 +#: src/pages/part/PartDetail.tsx:171 +#: src/pages/stock/StockDetail.tsx:122 #: src/tables/bom/BomTable.tsx:118 #: src/tables/bom/UsedInTable.tsx:39 -#: src/tables/build/BuildLineTable.tsx:173 -#: src/tables/build/BuildOrderTable.tsx:55 -#: src/tables/sales/SalesOrderLineItemTable.tsx:62 -#: src/tables/stock/StockItemTable.tsx:53 +#: src/tables/build/BuildAllocatedStockTable.tsx:104 +#: src/tables/build/BuildLineTable.tsx:324 +#: src/tables/build/BuildOrderTable.tsx:64 +#: src/tables/sales/SalesOrderLineItemTable.tsx:70 +#: src/tables/stock/StockItemTable.tsx:54 msgid "IPN" -msgstr "" +msgstr "內部零件編碼 IPN" -#: src/pages/build/BuildDetail.tsx:115 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:121 -#: src/pages/sales/ReturnOrderDetail.tsx:95 -#: src/pages/sales/SalesOrderDetail.tsx:101 -#: src/tables/ColumnRenderers.tsx:121 -#: src/tables/build/BuildAllocatedStockTable.tsx:90 -#: src/tables/build/BuildLineTable.tsx:184 +#: src/pages/build/BuildDetail.tsx:110 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:115 +#: src/pages/sales/ReturnOrderDetail.tsx:86 +#: src/pages/sales/SalesOrderDetail.tsx:95 +#: src/tables/ColumnRenderers.tsx:132 +#: src/tables/build/BuildAllocatedStockTable.tsx:111 +#: src/tables/build/BuildLineTable.tsx:335 msgid "Reference" -msgstr "" +msgstr "參考" -#: src/pages/build/BuildDetail.tsx:121 -#: src/pages/company/CompanyDetail.tsx:90 -#: src/pages/company/ManufacturerPartDetail.tsx:83 -#: src/pages/company/SupplierPartDetail.tsx:96 -#: src/pages/part/CategoryDetail.tsx:101 -#: src/pages/part/PartDetail.tsx:157 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:142 -#: src/pages/sales/ReturnOrderDetail.tsx:115 -#: src/pages/sales/SalesOrderDetail.tsx:121 -#: src/pages/stock/LocationDetail.tsx:109 -#: src/tables/ColumnRenderers.tsx:81 -#: src/tables/bom/UsedInTable.tsx:44 -#: src/tables/build/BuildAllocatedStockTable.tsx:70 -#: src/tables/build/BuildLineTable.tsx:178 -#: src/tables/machine/MachineTypeTable.tsx:69 -#: src/tables/machine/MachineTypeTable.tsx:112 -#: src/tables/machine/MachineTypeTable.tsx:219 -#: src/tables/machine/MachineTypeTable.tsx:323 -#: src/tables/part/RelatedPartTable.tsx:64 -#: src/tables/plugin/PluginListTable.tsx:129 -#: src/tables/plugin/PluginListTable.tsx:276 -#: src/tables/sales/SalesOrderAllocationTable.tsx:56 -#: src/tables/sales/SalesOrderLineItemTable.tsx:67 -#: src/tables/stock/LocationTypesTable.tsx:74 -msgid "Description" -msgstr "" - -#: src/pages/build/BuildDetail.tsx:129 +#: src/pages/build/BuildDetail.tsx:124 msgid "Parent Build" -msgstr "" +msgstr "上級生產" -#: src/pages/build/BuildDetail.tsx:140 +#: src/pages/build/BuildDetail.tsx:135 msgid "Build Quantity" -msgstr "" +msgstr "生產數量" -#: src/pages/build/BuildDetail.tsx:148 -#: src/pages/build/BuildDetail.tsx:274 +#: src/pages/build/BuildDetail.tsx:143 +#: src/pages/build/BuildDetail.tsx:277 msgid "Completed Outputs" -msgstr "" +msgstr "已出產" -#: src/pages/build/BuildDetail.tsx:165 -#: src/tables/build/BuildOrderTable.tsx:151 +#: src/pages/build/BuildDetail.tsx:160 +#: src/tables/build/BuildOrderTable.tsx:142 msgid "Issued By" -msgstr "" +msgstr "發佈人" -#: src/pages/build/BuildDetail.tsx:172 -#: src/pages/part/PartDetail.tsx:365 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:220 -#: src/pages/sales/ReturnOrderDetail.tsx:199 -#: src/pages/sales/SalesOrderDetail.tsx:208 -#: src/tables/build/BuildOrderTable.tsx:157 -#: src/tables/purchasing/PurchaseOrderTable.tsx:75 -#: src/tables/sales/ReturnOrderTable.tsx:66 -#: src/tables/sales/SalesOrderTable.tsx:73 +#: src/pages/build/BuildDetail.tsx:167 +#: src/pages/part/PartDetail.tsx:406 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:244 +#: src/pages/sales/ReturnOrderDetail.tsx:216 +#: src/pages/sales/SalesOrderDetail.tsx:226 +#: src/tables/build/BuildOrderTable.tsx:148 +#: src/tables/purchasing/PurchaseOrderTable.tsx:76 +#: src/tables/sales/ReturnOrderTable.tsx:74 +#: src/tables/sales/SalesOrderTable.tsx:74 msgid "Responsible" -msgstr "" +msgstr "責任人" -#: src/pages/build/BuildDetail.tsx:179 -#: src/tables/settings/PendingTasksTable.tsx:32 +#: src/pages/build/BuildDetail.tsx:174 +#: src/tables/settings/PendingTasksTable.tsx:36 msgid "Created" -msgstr "" +msgstr "已創建" + +#: src/pages/build/BuildDetail.tsx:181 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:229 +#: src/pages/sales/ReturnOrderDetail.tsx:201 +#: src/pages/sales/SalesOrderDetail.tsx:212 +#: src/tables/ColumnRenderers.tsx:226 +#: src/tables/part/PartPurchaseOrdersTable.tsx:100 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:135 +#: src/tables/sales/SalesOrderLineItemTable.tsx:107 +msgid "Target Date" +msgstr "預計日期" #: src/pages/build/BuildDetail.tsx:185 #: src/pages/part/PartDetail.tsx:269 @@ -4031,26 +4814,16 @@ msgstr "" #~ msgid "View part barcode" #~ msgstr "View part barcode" -#: src/pages/build/BuildDetail.tsx:186 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:213 -#: src/pages/sales/ReturnOrderDetail.tsx:192 -#: src/pages/sales/SalesOrderDetail.tsx:201 -#: src/tables/ColumnRenderers.tsx:212 -#: src/tables/part/PartPurchaseOrdersTable.tsx:99 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:110 -#: src/tables/sales/SalesOrderLineItemTable.tsx:99 -msgid "Target Date" -msgstr "" +#: src/pages/build/BuildDetail.tsx:188 +#: src/tables/sales/SalesOrderLineItemTable.tsx:281 +msgid "Completed" +msgstr "已完成" #: src/pages/build/BuildDetail.tsx:190 #: src/pages/part/PartDetail.tsx:274 #~ msgid "Link custom barcode to part" #~ msgstr "Link custom barcode to part" -#: src/pages/build/BuildDetail.tsx:193 -msgid "Completed" -msgstr "" - #: src/pages/build/BuildDetail.tsx:196 #: src/pages/part/PartDetail.tsx:280 #~ msgid "Unlink custom barcode from part" @@ -4060,17 +4833,13 @@ msgstr "" #~ msgid "Build Order updated" #~ msgstr "Build Order updated" -#: src/pages/build/BuildDetail.tsx:205 -msgid "Source Location" -msgstr "" - -#: src/pages/build/BuildDetail.tsx:206 +#: src/pages/build/BuildDetail.tsx:209 msgid "Any location" -msgstr "" +msgstr "任意地點" -#: src/pages/build/BuildDetail.tsx:213 +#: src/pages/build/BuildDetail.tsx:216 msgid "Destination Location" -msgstr "" +msgstr "目標地點" #: src/pages/build/BuildDetail.tsx:221 #~ msgid "Edit build order" @@ -4084,208 +4853,184 @@ msgstr "" #~ msgid "Delete build order" #~ msgstr "Delete build order" -#: src/pages/build/BuildDetail.tsx:251 +#: src/pages/build/BuildDetail.tsx:254 msgid "Build Details" -msgstr "" +msgstr "生產詳情" -#: src/pages/build/BuildDetail.tsx:257 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:258 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:267 -#: src/pages/sales/ReturnOrderDetail.tsx:130 -#: src/pages/sales/ReturnOrderDetail.tsx:237 -#: src/pages/sales/ReturnOrderDetail.tsx:246 -#: src/pages/sales/SalesOrderDetail.tsx:272 -#: src/pages/sales/SalesOrderDetail.tsx:281 +#: src/pages/build/BuildDetail.tsx:260 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:282 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:291 +#: src/pages/sales/ReturnOrderDetail.tsx:122 +#: src/pages/sales/ReturnOrderDetail.tsx:254 +#: src/pages/sales/ReturnOrderDetail.tsx:263 +#: src/pages/sales/SalesOrderDetail.tsx:294 +#: src/pages/sales/SalesOrderDetail.tsx:303 msgid "Line Items" -msgstr "" +msgstr "行項目" -#: src/pages/build/BuildDetail.tsx:267 +#: src/pages/build/BuildDetail.tsx:266 msgid "Incomplete Outputs" -msgstr "" +msgstr "未出產" -#: src/pages/build/BuildDetail.tsx:289 -#: src/pages/sales/SalesOrderDetail.tsx:319 +#: src/pages/build/BuildDetail.tsx:292 +#: src/pages/sales/SalesOrderDetail.tsx:341 msgid "Allocated Stock" -msgstr "" +msgstr "已分配的庫存" -#: src/pages/build/BuildDetail.tsx:299 +#: src/pages/build/BuildDetail.tsx:302 msgid "Consumed Stock" -msgstr "" +msgstr "已消耗庫存" -#: src/pages/build/BuildDetail.tsx:313 +#: src/pages/build/BuildDetail.tsx:316 msgid "Child Build Orders" -msgstr "" +msgstr "子生產訂單" #: src/pages/build/BuildDetail.tsx:326 -#: src/tables/build/BuildOutputTable.tsx:384 -#: src/tables/stock/StockItemTestResultTable.tsx:150 +#: src/tables/build/BuildOutputTable.tsx:532 +#: src/tables/stock/StockItemTestResultTable.tsx:156 msgid "Test Results" -msgstr "" +msgstr "測試結果" #: src/pages/build/BuildDetail.tsx:337 -#: src/pages/part/PartDetail.tsx:699 +#: src/pages/part/PartDetail.tsx:740 msgid "Test Statistics" -msgstr "" +msgstr "測試統計數據" -#: src/pages/build/BuildDetail.tsx:351 -#: src/pages/company/CompanyDetail.tsx:259 -#: src/pages/company/ManufacturerPartDetail.tsx:179 -#: src/pages/part/PartDetail.tsx:721 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:309 -#: src/pages/sales/ReturnOrderDetail.tsx:274 -#: src/pages/sales/SalesOrderDetail.tsx:343 -#: src/pages/stock/StockDetail.tsx:385 -msgid "Attachments" -msgstr "" - -#: src/pages/build/BuildDetail.tsx:359 -#: src/pages/company/CompanyDetail.tsx:270 -#: src/pages/company/ManufacturerPartDetail.tsx:190 -#: src/pages/company/SupplierPartDetail.tsx:257 -#: src/pages/part/PartDetail.tsx:729 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:320 -#: src/pages/sales/ReturnOrderDetail.tsx:285 -#: src/pages/sales/SalesOrderDetail.tsx:354 -#: src/pages/stock/StockDetail.tsx:396 -#: src/tables/build/BuildOrderTestTable.tsx:142 -#: src/tables/stock/StockTrackingTable.tsx:189 -msgid "Notes" -msgstr "" +#: src/pages/build/BuildDetail.tsx:365 +msgid "Edit Build Order" +msgstr "編輯生產訂單" #: src/pages/build/BuildDetail.tsx:368 #~ msgid "Reporting Actions" #~ msgstr "Reporting Actions" +#: src/pages/build/BuildDetail.tsx:372 +#: src/tables/build/BuildOrderTable.tsx:173 +#: src/tables/build/BuildOrderTable.tsx:188 +msgid "Add Build Order" +msgstr "添加生產訂單" + #: src/pages/build/BuildDetail.tsx:374 #~ msgid "Print build report" #~ msgstr "Print build report" -#: src/pages/build/BuildDetail.tsx:377 -msgid "Edit Build Order" -msgstr "" - -#: src/pages/build/BuildDetail.tsx:384 -#: src/tables/build/BuildOrderTable.tsx:172 -#: src/tables/build/BuildOrderTable.tsx:187 -msgid "Add Build Order" -msgstr "" - -#: src/pages/build/BuildDetail.tsx:398 +#: src/pages/build/BuildDetail.tsx:386 msgid "Cancel Build Order" -msgstr "" +msgstr "取消生產訂單" -#: src/pages/build/BuildDetail.tsx:400 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:348 -#: src/pages/sales/SalesOrderDetail.tsx:380 -msgid "Order cancelled" -msgstr "" - -#: src/pages/build/BuildDetail.tsx:401 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:347 -#: src/pages/sales/ReturnOrderDetail.tsx:346 -#: src/pages/sales/SalesOrderDetail.tsx:379 -msgid "Cancel this order" -msgstr "" - -#: src/pages/build/BuildDetail.tsx:410 -msgid "Hold Build Order" -msgstr "" - -#: src/pages/build/BuildDetail.tsx:412 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:355 +#: src/pages/build/BuildDetail.tsx:388 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:357 #: src/pages/sales/ReturnOrderDetail.tsx:354 #: src/pages/sales/SalesOrderDetail.tsx:387 -msgid "Place this order on hold" -msgstr "" +msgid "Order cancelled" +msgstr "訂單已取消" -#: src/pages/build/BuildDetail.tsx:413 +#: src/pages/build/BuildDetail.tsx:389 #: src/pages/purchasing/PurchaseOrderDetail.tsx:356 -#: src/pages/sales/ReturnOrderDetail.tsx:355 -#: src/pages/sales/SalesOrderDetail.tsx:388 -msgid "Order placed on hold" -msgstr "" +#: src/pages/sales/ReturnOrderDetail.tsx:353 +#: src/pages/sales/SalesOrderDetail.tsx:386 +msgid "Cancel this order" +msgstr "取消此訂單" -#: src/pages/build/BuildDetail.tsx:418 -msgid "Issue Build Order" -msgstr "" +#: src/pages/build/BuildDetail.tsx:398 +msgid "Hold Build Order" +msgstr "掛起生產訂單" -#: src/pages/build/BuildDetail.tsx:420 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:339 -#: src/pages/sales/ReturnOrderDetail.tsx:338 -#: src/pages/sales/SalesOrderDetail.tsx:371 -msgid "Issue this order" -msgstr "" +#: src/pages/build/BuildDetail.tsx:400 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:364 +#: src/pages/sales/ReturnOrderDetail.tsx:361 +#: src/pages/sales/SalesOrderDetail.tsx:394 +msgid "Place this order on hold" +msgstr "將此訂單掛起" -#: src/pages/build/BuildDetail.tsx:421 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:340 -#: src/pages/sales/ReturnOrderDetail.tsx:339 -#: src/pages/sales/SalesOrderDetail.tsx:372 -msgid "Order issued" -msgstr "" - -#: src/pages/build/BuildDetail.tsx:426 -msgid "Complete Build Order" -msgstr "" - -#: src/pages/build/BuildDetail.tsx:428 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:368 +#: src/pages/build/BuildDetail.tsx:401 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:365 #: src/pages/sales/ReturnOrderDetail.tsx:362 #: src/pages/sales/SalesOrderDetail.tsx:395 +msgid "Order placed on hold" +msgstr "掛起訂單" + +#: src/pages/build/BuildDetail.tsx:406 +msgid "Issue Build Order" +msgstr "發出生產訂單" + +#: src/pages/build/BuildDetail.tsx:408 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:348 +#: src/pages/sales/ReturnOrderDetail.tsx:345 +#: src/pages/sales/SalesOrderDetail.tsx:378 +msgid "Issue this order" +msgstr "發出這個訂單" + +#: src/pages/build/BuildDetail.tsx:409 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:349 +#: src/pages/sales/ReturnOrderDetail.tsx:346 +#: src/pages/sales/SalesOrderDetail.tsx:379 +msgid "Order issued" +msgstr "訂單發起" + +#: src/pages/build/BuildDetail.tsx:414 +msgid "Complete Build Order" +msgstr "完成生產訂單" + +#: src/pages/build/BuildDetail.tsx:416 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:377 +#: src/pages/sales/ReturnOrderDetail.tsx:369 +#: src/pages/sales/SalesOrderDetail.tsx:402 msgid "Mark this order as complete" -msgstr "" +msgstr "標記該訂單為已完成" -#: src/pages/build/BuildDetail.tsx:429 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:362 -#: src/pages/sales/ReturnOrderDetail.tsx:363 -#: src/pages/sales/SalesOrderDetail.tsx:396 +#: src/pages/build/BuildDetail.tsx:417 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:371 +#: src/pages/sales/ReturnOrderDetail.tsx:370 +#: src/pages/sales/SalesOrderDetail.tsx:403 msgid "Order completed" -msgstr "" +msgstr "訂單已完成" -#: src/pages/build/BuildDetail.tsx:460 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:391 -#: src/pages/sales/ReturnOrderDetail.tsx:392 -#: src/pages/sales/SalesOrderDetail.tsx:425 -msgid "Issue Order" -msgstr "" - -#: src/pages/build/BuildDetail.tsx:467 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:398 +#: src/pages/build/BuildDetail.tsx:448 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:400 #: src/pages/sales/ReturnOrderDetail.tsx:399 -#: src/pages/sales/SalesOrderDetail.tsx:439 +#: src/pages/sales/SalesOrderDetail.tsx:432 +msgid "Issue Order" +msgstr "發佈訂單" + +#: src/pages/build/BuildDetail.tsx:455 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:407 +#: src/pages/sales/ReturnOrderDetail.tsx:406 +#: src/pages/sales/SalesOrderDetail.tsx:446 msgid "Complete Order" -msgstr "" +msgstr "完成訂單" -#: src/pages/build/BuildDetail.tsx:496 +#: src/pages/build/BuildDetail.tsx:473 msgid "Build Order Actions" -msgstr "" +msgstr "生產訂單操作" -#: src/pages/build/BuildDetail.tsx:502 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:432 -#: src/pages/sales/ReturnOrderDetail.tsx:433 -#: src/pages/sales/SalesOrderDetail.tsx:474 +#: src/pages/build/BuildDetail.tsx:478 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:429 +#: src/pages/sales/ReturnOrderDetail.tsx:428 +#: src/pages/sales/SalesOrderDetail.tsx:469 msgid "Edit order" -msgstr "" +msgstr "編輯訂單" -#: src/pages/build/BuildDetail.tsx:506 +#: src/pages/build/BuildDetail.tsx:482 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:437 +#: src/pages/sales/ReturnOrderDetail.tsx:434 +#: src/pages/sales/SalesOrderDetail.tsx:474 +msgid "Duplicate order" +msgstr "複製訂單" + +#: src/pages/build/BuildDetail.tsx:486 #: src/pages/purchasing/PurchaseOrderDetail.tsx:440 #: src/pages/sales/ReturnOrderDetail.tsx:439 -#: src/pages/sales/SalesOrderDetail.tsx:479 -msgid "Duplicate order" -msgstr "" +#: src/pages/sales/SalesOrderDetail.tsx:477 +msgid "Hold order" +msgstr "掛起訂單" -#: src/pages/build/BuildDetail.tsx:510 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:443 +#: src/pages/build/BuildDetail.tsx:491 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:445 #: src/pages/sales/ReturnOrderDetail.tsx:444 #: src/pages/sales/SalesOrderDetail.tsx:482 -msgid "Hold order" -msgstr "" - -#: src/pages/build/BuildDetail.tsx:515 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:448 -#: src/pages/sales/ReturnOrderDetail.tsx:449 -#: src/pages/sales/SalesOrderDetail.tsx:487 msgid "Cancel order" -msgstr "" +msgstr "取消訂單" #: src/pages/build/BuildIndex.tsx:23 #~ msgid "Build order created" @@ -4295,56 +5040,60 @@ msgstr "" #~ msgid "New Build Order" #~ msgstr "New Build Order" -#: src/pages/company/CompanyDetail.tsx:104 +#: src/pages/company/CompanyDetail.tsx:95 +msgid "Website" +msgstr "網站" + +#: src/pages/company/CompanyDetail.tsx:103 msgid "Phone Number" -msgstr "" +msgstr "電話號碼" -#: src/pages/company/CompanyDetail.tsx:111 +#: src/pages/company/CompanyDetail.tsx:110 msgid "Email Address" -msgstr "" +msgstr "電子郵件地址" -#: src/pages/company/CompanyDetail.tsx:121 +#: src/pages/company/CompanyDetail.tsx:120 msgid "Default Currency" -msgstr "" +msgstr "默認貨幣單位" -#: src/pages/company/CompanyDetail.tsx:126 +#: src/pages/company/CompanyDetail.tsx:125 #: src/pages/company/SupplierDetail.tsx:8 -#: src/pages/company/SupplierPartDetail.tsx:120 -#: src/pages/company/SupplierPartDetail.tsx:206 -#: src/pages/company/SupplierPartDetail.tsx:351 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:136 -#: src/tables/company/CompanyTable.tsx:100 +#: src/pages/company/SupplierPartDetail.tsx:125 +#: src/pages/company/SupplierPartDetail.tsx:218 +#: src/pages/company/SupplierPartDetail.tsx:340 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:130 +#: src/tables/company/CompanyTable.tsx:101 #: src/tables/part/PartPurchaseOrdersTable.tsx:42 -#: src/tables/purchasing/PurchaseOrderTable.tsx:88 +#: src/tables/purchasing/PurchaseOrderTable.tsx:89 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:36 msgid "Supplier" -msgstr "" +msgstr "供應商" -#: src/pages/company/CompanyDetail.tsx:132 +#: src/pages/company/CompanyDetail.tsx:131 #: src/pages/company/ManufacturerDetail.tsx:8 -#: src/pages/company/ManufacturerPartDetail.tsx:101 -#: src/pages/company/ManufacturerPartDetail.tsx:267 -#: src/pages/company/SupplierPartDetail.tsx:135 -#: src/tables/company/CompanyTable.tsx:105 +#: src/pages/company/ManufacturerPartDetail.tsx:100 +#: src/pages/company/ManufacturerPartDetail.tsx:262 +#: src/pages/company/SupplierPartDetail.tsx:147 +#: src/tables/company/CompanyTable.tsx:106 msgid "Manufacturer" -msgstr "" +msgstr "製造商" -#: src/pages/company/CompanyDetail.tsx:138 +#: src/pages/company/CompanyDetail.tsx:137 #: src/pages/company/CustomerDetail.tsx:8 -#: src/pages/part/pricing/SaleHistoryPanel.tsx:29 -#: src/pages/sales/ReturnOrderDetail.tsx:109 -#: src/pages/sales/SalesOrderDetail.tsx:115 -#: src/pages/stock/StockDetail.tsx:230 -#: src/tables/company/CompanyTable.tsx:110 -#: src/tables/sales/ReturnOrderTable.tsx:78 -#: src/tables/sales/SalesOrderTable.tsx:108 -#: src/tables/stock/StockTrackingTable.tsx:140 +#: src/pages/part/pricing/SaleHistoryPanel.tsx:31 +#: src/pages/sales/ReturnOrderDetail.tsx:101 +#: src/pages/sales/SalesOrderDetail.tsx:110 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:100 +#: src/pages/stock/StockDetail.tsx:271 +#: src/tables/company/CompanyTable.tsx:111 +#: src/tables/sales/ReturnOrderTable.tsx:97 +#: src/tables/sales/SalesOrderTable.tsx:121 +#: src/tables/stock/StockTrackingTable.tsx:144 msgid "Customer" -msgstr "" +msgstr "客户" #: src/pages/company/CompanyDetail.tsx:172 -#: src/tables/stock/StockTrackingTable.tsx:183 -msgid "Details" +msgid "Company Details" msgstr "" #: src/pages/company/CompanyDetail.tsx:175 @@ -4353,747 +5102,874 @@ msgstr "" #: src/pages/company/CompanyDetail.tsx:178 msgid "Manufactured Parts" -msgstr "" +msgstr "製成零件" #: src/pages/company/CompanyDetail.tsx:187 msgid "Supplied Parts" -msgstr "" +msgstr "已提供的零件" #: src/pages/company/CompanyDetail.tsx:189 #~ msgid "Delete company" #~ msgstr "Delete company" -#: src/pages/company/CompanyDetail.tsx:232 +#: src/pages/company/CompanyDetail.tsx:234 msgid "Assigned Stock" -msgstr "" +msgstr "已分配的庫存" -#: src/pages/company/CompanyDetail.tsx:290 -#: src/tables/company/CompanyTable.tsx:86 +#: src/pages/company/CompanyDetail.tsx:273 +#: src/tables/company/CompanyTable.tsx:87 msgid "Edit Company" -msgstr "" +msgstr "編輯公司" -#: src/pages/company/CompanyDetail.tsx:298 +#: src/pages/company/CompanyDetail.tsx:281 msgid "Delete Company" -msgstr "" +msgstr "刪除該公司" -#: src/pages/company/CompanyDetail.tsx:306 +#: src/pages/company/CompanyDetail.tsx:289 msgid "Company Actions" -msgstr "" +msgstr "公司操作" -#: src/pages/company/ManufacturerPartDetail.tsx:76 -#: src/pages/company/SupplierPartDetail.tsx:89 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:128 +#: src/pages/company/ManufacturerPartDetail.tsx:74 +#: src/pages/company/SupplierPartDetail.tsx:84 msgid "Internal Part" -msgstr "" +msgstr "內部零件" -#: src/pages/company/ManufacturerPartDetail.tsx:91 -#: src/pages/company/SupplierPartDetail.tsx:103 -msgid "External Link" -msgstr "" - -#: src/pages/company/ManufacturerPartDetail.tsx:109 -#: src/pages/company/SupplierPartDetail.tsx:144 -#: src/tables/purchasing/ManufacturerPartTable.tsx:56 +#: src/pages/company/ManufacturerPartDetail.tsx:108 +#: src/pages/company/SupplierPartDetail.tsx:156 +#: src/tables/purchasing/ManufacturerPartTable.tsx:58 msgid "Manufacturer Part Number" -msgstr "" +msgstr "製造商零件編號" -#: src/pages/company/ManufacturerPartDetail.tsx:138 +#: src/pages/company/ManufacturerPartDetail.tsx:125 +#: src/pages/company/SupplierPartDetail.tsx:108 +msgid "External Link" +msgstr "外部鏈接" + +#: src/pages/company/ManufacturerPartDetail.tsx:146 +#: src/pages/company/SupplierPartDetail.tsx:215 +#: src/pages/part/PartDetail.tsx:576 +msgid "Part Details" +msgstr "零件詳情" + +#: src/pages/company/ManufacturerPartDetail.tsx:149 msgid "Manufacturer Details" -msgstr "" +msgstr "製造商詳情" -#: src/pages/company/ManufacturerPartDetail.tsx:147 +#: src/pages/company/ManufacturerPartDetail.tsx:158 msgid "Manufacturer Part Details" -msgstr "" +msgstr "製造商零件詳情" -#: src/pages/company/ManufacturerPartDetail.tsx:153 -#: src/pages/part/PartDetail.tsx:532 +#: src/pages/company/ManufacturerPartDetail.tsx:164 +#: src/pages/part/PartDetail.tsx:582 msgid "Parameters" -msgstr "" +msgstr "參數" -#: src/pages/company/ManufacturerPartDetail.tsx:165 -#: src/pages/part/PartDetail.tsx:649 +#: src/pages/company/ManufacturerPartDetail.tsx:176 +#: src/pages/part/PartDetail.tsx:669 #: src/pages/purchasing/PurchasingIndex.tsx:31 msgid "Suppliers" -msgstr "" +msgstr "供應商" -#: src/pages/company/ManufacturerPartDetail.tsx:208 -#: src/tables/purchasing/ManufacturerPartTable.tsx:84 +#: src/pages/company/ManufacturerPartDetail.tsx:204 +#: src/tables/purchasing/ManufacturerPartTable.tsx:86 msgid "Edit Manufacturer Part" -msgstr "" +msgstr "編輯製造商零件" -#: src/pages/company/ManufacturerPartDetail.tsx:215 -#: src/tables/purchasing/ManufacturerPartTable.tsx:72 -#: src/tables/purchasing/ManufacturerPartTable.tsx:103 +#: src/pages/company/ManufacturerPartDetail.tsx:211 +#: src/tables/purchasing/ManufacturerPartTable.tsx:74 +#: src/tables/purchasing/ManufacturerPartTable.tsx:106 msgid "Add Manufacturer Part" -msgstr "" +msgstr "添加製造商零件" -#: src/pages/company/ManufacturerPartDetail.tsx:227 -#: src/tables/purchasing/ManufacturerPartTable.tsx:92 +#: src/pages/company/ManufacturerPartDetail.tsx:223 +#: src/tables/purchasing/ManufacturerPartTable.tsx:94 msgid "Delete Manufacturer Part" -msgstr "" +msgstr "刪除製造商零件" -#: src/pages/company/ManufacturerPartDetail.tsx:240 +#: src/pages/company/ManufacturerPartDetail.tsx:236 msgid "Manufacturer Part Actions" -msgstr "" +msgstr "製造商零件操作" -#: src/pages/company/ManufacturerPartDetail.tsx:281 +#: src/pages/company/ManufacturerPartDetail.tsx:276 msgid "ManufacturerPart" -msgstr "" +msgstr "製造商零件" -#: src/pages/company/SupplierPartDetail.tsx:163 -#: src/tables/part/PartPurchaseOrdersTable.tsx:71 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:156 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:197 -#: src/tables/purchasing/SupplierPartTable.tsx:131 +#: src/pages/company/SupplierPartDetail.tsx:99 +msgid "Part Description" +msgstr "零件描述" + +#: src/pages/company/SupplierPartDetail.tsx:175 +#: src/tables/part/PartPurchaseOrdersTable.tsx:72 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:162 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:203 +#: src/tables/purchasing/SupplierPartTable.tsx:133 msgid "Pack Quantity" -msgstr "" +msgstr "包裝數量" -#: src/pages/company/SupplierPartDetail.tsx:174 +#: src/pages/company/SupplierPartDetail.tsx:186 msgid "Supplier Availability" -msgstr "" +msgstr "供應商可用性" -#: src/pages/company/SupplierPartDetail.tsx:181 +#: src/pages/company/SupplierPartDetail.tsx:193 msgid "Availability Updated" -msgstr "" +msgstr "可用性已更新" -#: src/pages/company/SupplierPartDetail.tsx:208 +#: src/pages/company/SupplierPartDetail.tsx:220 msgid "Availability" -msgstr "" +msgstr "可用性" -#: src/pages/company/SupplierPartDetail.tsx:217 +#: src/pages/company/SupplierPartDetail.tsx:229 msgid "Supplier Part Details" -msgstr "" +msgstr "供應商零件詳情" -#: src/pages/company/SupplierPartDetail.tsx:223 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:296 +#: src/pages/company/SupplierPartDetail.tsx:235 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:320 msgid "Received Stock" -msgstr "" +msgstr "接收庫存" -#: src/pages/company/SupplierPartDetail.tsx:247 -#: src/pages/part/PartPricingPanel.tsx:111 -#: src/pages/part/pricing/PricingOverviewPanel.tsx:121 +#: src/pages/company/SupplierPartDetail.tsx:259 +#: src/pages/part/PartPricingPanel.tsx:116 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:195 msgid "Supplier Pricing" -msgstr "" +msgstr "供應商價格" -#: src/pages/company/SupplierPartDetail.tsx:294 +#: src/pages/company/SupplierPartDetail.tsx:284 msgid "Supplier Part Actions" -msgstr "" +msgstr "供應商零件操作" -#: src/pages/company/SupplierPartDetail.tsx:319 -#: src/tables/purchasing/SupplierPartTable.tsx:210 +#: src/pages/company/SupplierPartDetail.tsx:308 +#: src/tables/purchasing/SupplierPartTable.tsx:213 msgid "Edit Supplier Part" -msgstr "" +msgstr "編輯供應商零件" -#: src/pages/company/SupplierPartDetail.tsx:327 -#: src/tables/purchasing/SupplierPartTable.tsx:218 +#: src/pages/company/SupplierPartDetail.tsx:316 +#: src/tables/purchasing/SupplierPartTable.tsx:221 msgid "Delete Supplier Part" -msgstr "" +msgstr "刪除供應商零件" -#: src/pages/company/SupplierPartDetail.tsx:335 -#: src/tables/purchasing/SupplierPartTable.tsx:163 +#: src/pages/company/SupplierPartDetail.tsx:324 +#: src/tables/purchasing/SupplierPartTable.tsx:165 msgid "Add Supplier Part" -msgstr "" +msgstr "添加供應商零件" #: src/pages/part/CategoryDetail.tsx:93 -#: src/pages/stock/LocationDetail.tsx:101 -#: src/tables/settings/ErrorTable.tsx:36 +#: src/pages/stock/LocationDetail.tsx:95 +#: src/tables/settings/ErrorTable.tsx:63 +#: src/tables/settings/ErrorTable.tsx:108 msgid "Path" -msgstr "" +msgstr "路徑" #: src/pages/part/CategoryDetail.tsx:109 msgid "Parent Category" -msgstr "" +msgstr "上級類別" -#: src/pages/part/CategoryDetail.tsx:126 +#: src/pages/part/CategoryDetail.tsx:132 msgid "Subcategories" -msgstr "" - -#: src/pages/part/CategoryDetail.tsx:133 -#: src/pages/stock/LocationDetail.tsx:141 -#: src/tables/part/PartCategoryTable.tsx:73 -#: src/tables/stock/StockLocationTable.tsx:49 -msgid "Structural" -msgstr "" +msgstr "子類別" #: src/pages/part/CategoryDetail.tsx:139 +#: src/pages/stock/LocationDetail.tsx:135 +#: src/tables/part/PartCategoryTable.tsx:85 +#: src/tables/stock/StockLocationTable.tsx:49 +msgid "Structural" +msgstr "結構性" + +#: src/pages/part/CategoryDetail.tsx:145 msgid "Parent default location" -msgstr "" +msgstr "上級默認位置" -#: src/pages/part/CategoryDetail.tsx:146 +#: src/pages/part/CategoryDetail.tsx:152 msgid "Default location" -msgstr "" +msgstr "默認位置" -#: src/pages/part/CategoryDetail.tsx:157 +#: src/pages/part/CategoryDetail.tsx:163 msgid "Top level part category" -msgstr "" +msgstr "最高級零件類別" -#: src/pages/part/CategoryDetail.tsx:167 -#: src/pages/part/CategoryDetail.tsx:221 -#: src/tables/part/PartCategoryTable.tsx:102 -msgid "Edit Part Category" -msgstr "" - -#: src/pages/part/CategoryDetail.tsx:180 -#: src/pages/stock/LocationDetail.tsx:233 -msgid "Delete items" -msgstr "" - -#: src/pages/part/CategoryDetail.tsx:188 +#: src/pages/part/CategoryDetail.tsx:173 #: src/pages/part/CategoryDetail.tsx:226 +#: src/tables/part/PartCategoryTable.tsx:118 +msgid "Edit Part Category" +msgstr "編輯零件類別" + +#: src/pages/part/CategoryDetail.tsx:186 +#: src/pages/stock/LocationDetail.tsx:227 +msgid "Delete items" +msgstr "刪除項" + +#: src/pages/part/CategoryDetail.tsx:194 +#: src/pages/part/CategoryDetail.tsx:231 msgid "Delete Part Category" -msgstr "" - -#: src/pages/part/CategoryDetail.tsx:191 -msgid "Parts Action" -msgstr "" - -#: src/pages/part/CategoryDetail.tsx:192 -msgid "Action for parts in this category" -msgstr "" +msgstr "刪除零件類別" #: src/pages/part/CategoryDetail.tsx:197 -msgid "Child Categories Action" -msgstr "" +msgid "Parts Action" +msgstr "零件操作" #: src/pages/part/CategoryDetail.tsx:198 +msgid "Action for parts in this category" +msgstr "對此類別中零件的操作" + +#: src/pages/part/CategoryDetail.tsx:203 +msgid "Child Categories Action" +msgstr "子類別操作" + +#: src/pages/part/CategoryDetail.tsx:204 msgid "Action for child categories in this category" -msgstr "" +msgstr "對此類別中零件的操作" -#: src/pages/part/CategoryDetail.tsx:216 +#: src/pages/part/CategoryDetail.tsx:222 msgid "Category Actions" -msgstr "" +msgstr "類別操作" -#: src/pages/part/CategoryDetail.tsx:238 +#: src/pages/part/CategoryDetail.tsx:243 msgid "Category Details" -msgstr "" +msgstr "類別詳情" -#: src/pages/part/PartDetail.tsx:163 -msgid "Variant of" -msgstr "" +#: src/pages/part/PartAllocationPanel.tsx:23 +#: src/pages/stock/StockDetail.tsx:443 +#: src/tables/part/PartTable.tsx:99 +msgid "Build Order Allocations" +msgstr "分配生產訂單" -#: src/pages/part/PartDetail.tsx:170 -msgid "Revision of" -msgstr "" - -#: src/pages/part/PartDetail.tsx:177 -#: src/tables/stock/StockItemTable.tsx:58 -msgid "Revision" -msgstr "" +#: src/pages/part/PartAllocationPanel.tsx:40 +#: src/pages/stock/StockDetail.tsx:458 +#: src/tables/part/PartTable.tsx:108 +msgid "Sales Order Allocations" +msgstr "分配銷售訂單" #: src/pages/part/PartDetail.tsx:184 +msgid "Variant of" +msgstr "變體於" + +#: src/pages/part/PartDetail.tsx:191 +msgid "Revision of" +msgstr "修訂" + +#: src/pages/part/PartDetail.tsx:198 +#: src/tables/stock/StockItemTable.tsx:59 +msgid "Revision" +msgstr "版本" + +#: src/pages/part/PartDetail.tsx:205 #: src/tables/notifications/NotificationsTable.tsx:31 #: src/tables/part/PartCategoryTemplateTable.tsx:67 msgid "Category" -msgstr "" - -#: src/pages/part/PartDetail.tsx:190 -msgid "Default Location" -msgstr "" - -#: src/pages/part/PartDetail.tsx:197 -msgid "Category Default Location" -msgstr "" - -#: src/pages/part/PartDetail.tsx:204 -#: src/tables/purchasing/ManufacturerPartParameterTable.tsx:44 -msgid "Units" -msgstr "" +msgstr "類別" #: src/pages/part/PartDetail.tsx:211 -#: src/tables/settings/PendingTasksTable.tsx:42 -msgid "Keywords" -msgstr "" +msgid "Default Location" +msgstr "默認位置" #: src/pages/part/PartDetail.tsx:218 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:186 -#: src/pages/sales/ReturnOrderDetail.tsx:165 -#: src/pages/sales/SalesOrderDetail.tsx:174 -msgid "Link" -msgstr "" +msgid "Category Default Location" +msgstr "類別默認位置" -#: src/pages/part/PartDetail.tsx:236 -#: src/tables/bom/BomTable.tsx:320 -#: src/tables/build/BuildLineTable.tsx:155 -#: src/tables/part/PartTable.tsx:288 -#: src/tables/sales/SalesOrderLineItemTable.tsx:103 -msgid "Available Stock" -msgstr "" +#: src/pages/part/PartDetail.tsx:225 +#: src/tables/purchasing/ManufacturerPartParameterTable.tsx:44 +msgid "Units" +msgstr "單位" -#: src/pages/part/PartDetail.tsx:243 -msgid "Variant Stock" -msgstr "" - -#: src/pages/part/PartDetail.tsx:251 -msgid "Minimum Stock" -msgstr "" +#: src/pages/part/PartDetail.tsx:232 +#: src/tables/settings/PendingTasksTable.tsx:46 +msgid "Keywords" +msgstr "關鍵詞" #: src/pages/part/PartDetail.tsx:257 +#: src/tables/bom/BomTable.tsx:320 +#: src/tables/build/BuildLineTable.tsx:286 +#: src/tables/part/PartTable.tsx:288 +#: src/tables/sales/SalesOrderLineItemTable.tsx:111 +msgid "Available Stock" +msgstr "可用庫存" + +#: src/pages/part/PartDetail.tsx:264 +msgid "Variant Stock" +msgstr "變體庫存" + +#: src/pages/part/PartDetail.tsx:272 +msgid "Minimum Stock" +msgstr "最低庫存" + +#: src/pages/part/PartDetail.tsx:278 #: src/tables/bom/BomTable.tsx:237 -#: src/tables/build/BuildLineTable.tsx:117 -#: src/tables/sales/SalesOrderLineItemTable.tsx:141 +#: src/tables/build/BuildLineTable.tsx:248 +#: src/tables/sales/SalesOrderLineItemTable.tsx:149 msgid "On order" -msgstr "" +msgstr "訂購中" -#: src/pages/part/PartDetail.tsx:266 +#: src/pages/part/PartDetail.tsx:285 +msgid "Required for Orders" +msgstr "生產訂單所需的" + +#: src/pages/part/PartDetail.tsx:294 msgid "Allocated to Build Orders" -msgstr "" +msgstr "分配生產訂單" -#: src/pages/part/PartDetail.tsx:274 +#: src/pages/part/PartDetail.tsx:305 msgid "Allocated to Sales Orders" -msgstr "" - -#: src/pages/part/PartDetail.tsx:281 -#: src/tables/bom/BomTable.tsx:261 -#: src/tables/bom/BomTable.tsx:293 -msgid "Can Build" -msgstr "" - -#: src/pages/part/PartDetail.tsx:288 -#: src/tables/bom/BomTable.tsx:245 -#: src/tables/part/PartTable.tsx:92 -msgid "Building" -msgstr "" - -#: src/pages/part/PartDetail.tsx:302 -#: src/pages/part/PartDetail.tsx:873 -#: src/tables/part/ParametricPartTable.tsx:228 -#: src/tables/part/PartTable.tsx:184 -msgid "Locked" -msgstr "" - -#: src/pages/part/PartDetail.tsx:308 -msgid "Template Part" -msgstr "" +msgstr "分配銷售訂單" #: src/pages/part/PartDetail.tsx:310 #~ msgid "Edit part" #~ msgstr "Edit part" -#: src/pages/part/PartDetail.tsx:313 -#: src/tables/bom/BomTable.tsx:315 -msgid "Assembled Part" -msgstr "" +#: src/pages/part/PartDetail.tsx:315 +#: src/tables/bom/BomTable.tsx:261 +#: src/tables/bom/BomTable.tsx:293 +msgid "Can Build" +msgstr "可以創建" -#: src/pages/part/PartDetail.tsx:318 -msgid "Component Part" -msgstr "" +#: src/pages/part/PartDetail.tsx:322 +#: src/pages/part/PartDetail.tsx:905 +#: src/pages/stock/StockDetail.tsx:766 +#: src/tables/build/BuildOrderTestTable.tsx:220 +#: src/tables/stock/StockItemTable.tsx:334 +msgid "In Production" +msgstr "生產中" #: src/pages/part/PartDetail.tsx:322 #~ msgid "Duplicate part" #~ msgstr "Duplicate part" -#: src/pages/part/PartDetail.tsx:323 -#: src/tables/bom/BomTable.tsx:305 -msgid "Testable Part" -msgstr "" - #: src/pages/part/PartDetail.tsx:327 #~ msgid "Delete part" #~ msgstr "Delete part" -#: src/pages/part/PartDetail.tsx:329 -#: src/tables/bom/BomTable.tsx:310 -msgid "Trackable Part" -msgstr "" +#: src/pages/part/PartDetail.tsx:336 +#: src/tables/part/ParametricPartTable.tsx:228 +#: src/tables/part/PartTable.tsx:184 +msgid "Locked" +msgstr "已鎖定" -#: src/pages/part/PartDetail.tsx:334 -msgid "Purchaseable Part" -msgstr "" +#: src/pages/part/PartDetail.tsx:342 +msgid "Template Part" +msgstr "模板零件" -#: src/pages/part/PartDetail.tsx:339 -msgid "Saleable Part" -msgstr "" - -#: src/pages/part/PartDetail.tsx:344 -msgid "Virtual Part" -msgstr "" +#: src/pages/part/PartDetail.tsx:347 +#: src/tables/bom/BomTable.tsx:315 +msgid "Assembled Part" +msgstr "組裝零件" #: src/pages/part/PartDetail.tsx:352 -#: src/tables/ColumnRenderers.tsx:220 -msgid "Creation Date" -msgstr "" +msgid "Component Part" +msgstr "組件零件" #: src/pages/part/PartDetail.tsx:357 +#: src/tables/bom/BomTable.tsx:305 +msgid "Testable Part" +msgstr "可測試零件" + +#: src/pages/part/PartDetail.tsx:363 +#: src/tables/bom/BomTable.tsx:310 +msgid "Trackable Part" +msgstr "可追溯零件" + +#: src/pages/part/PartDetail.tsx:368 +msgid "Purchaseable Part" +msgstr "可購買零件" + +#: src/pages/part/PartDetail.tsx:374 +msgid "Saleable Part" +msgstr "可銷售零件" + +#: src/pages/part/PartDetail.tsx:379 +msgid "Virtual Part" +msgstr "虛擬零件" + +#: src/pages/part/PartDetail.tsx:393 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:215 +#: src/pages/sales/ReturnOrderDetail.tsx:185 +#: src/pages/sales/SalesOrderDetail.tsx:197 +#: src/tables/ColumnRenderers.tsx:234 +msgid "Creation Date" +msgstr "創建日期" + +#: src/pages/part/PartDetail.tsx:398 msgid "Created By" -msgstr "" +msgstr "創建人" -#: src/pages/part/PartDetail.tsx:372 +#: src/pages/part/PartDetail.tsx:413 msgid "Default Supplier" -msgstr "" +msgstr "默認供應商" -#: src/pages/part/PartDetail.tsx:383 -#: src/pages/part/pricing/BomPricingPanel.tsx:79 +#: src/pages/part/PartDetail.tsx:424 +#: src/pages/part/pricing/BomPricingPanel.tsx:113 #: src/pages/part/pricing/VariantPricingPanel.tsx:95 #: src/tables/part/PartTable.tsx:161 msgid "Price Range" -msgstr "" - -#: src/pages/part/PartDetail.tsx:423 -#: src/pages/stock/StockDetail.tsx:135 -msgid "Last Stocktake" -msgstr "" +msgstr "價格範圍" #: src/pages/part/PartDetail.tsx:462 +msgid "Latest Serial Number" +msgstr "" + +#: src/pages/part/PartDetail.tsx:472 +#: src/pages/stock/StockDetail.tsx:151 +msgid "Last Stocktake" +msgstr "最近庫存盤點" + +#: src/pages/part/PartDetail.tsx:511 msgid "Stocktake By" -msgstr "" +msgstr "庫存盤點由" -#: src/pages/part/PartDetail.tsx:526 -msgid "Part Details" -msgstr "" - -#: src/pages/part/PartDetail.tsx:557 +#: src/pages/part/PartDetail.tsx:611 msgid "Variants" -msgstr "" +msgstr "變體" -#: src/pages/part/PartDetail.tsx:564 -#: src/pages/stock/StockDetail.tsx:307 +#: src/pages/part/PartDetail.tsx:618 +#: src/pages/stock/StockDetail.tsx:430 msgid "Allocations" -msgstr "" +msgstr "分配" -#: src/pages/part/PartDetail.tsx:575 -#: src/pages/stock/StockDetail.tsx:318 -#: src/tables/part/PartTable.tsx:99 -msgid "Build Order Allocations" -msgstr "" - -#: src/pages/part/PartDetail.tsx:590 -#: src/pages/stock/StockDetail.tsx:333 -#: src/tables/part/PartTable.tsx:108 -msgid "Sales Order Allocations" -msgstr "" - -#: src/pages/part/PartDetail.tsx:607 +#: src/pages/part/PartDetail.tsx:625 msgid "Bill of Materials" -msgstr "" +msgstr "物料清單" -#: src/pages/part/PartDetail.tsx:623 +#: src/pages/part/PartDetail.tsx:643 msgid "Used In" -msgstr "" +msgstr "用於" -#: src/pages/part/PartDetail.tsx:630 +#: src/pages/part/PartDetail.tsx:650 msgid "Part Pricing" -msgstr "" +msgstr "零件價格" -#: src/pages/part/PartDetail.tsx:636 +#: src/pages/part/PartDetail.tsx:656 #: src/pages/purchasing/PurchasingIndex.tsx:42 msgid "Manufacturers" -msgstr "" +msgstr "製造商" -#: src/pages/part/PartDetail.tsx:676 +#: src/pages/part/PartDetail.tsx:722 msgid "Scheduling" -msgstr "" +msgstr "計劃任務" -#: src/pages/part/PartDetail.tsx:688 +#: src/pages/part/PartDetail.tsx:729 msgid "Test Templates" -msgstr "" +msgstr "測試模板" -#: src/pages/part/PartDetail.tsx:715 +#: src/pages/part/PartDetail.tsx:756 msgid "Related Parts" -msgstr "" +msgstr "關聯零件" -#: src/pages/part/PartDetail.tsx:849 -#: src/pages/stock/StockDetail.tsx:156 -#: src/pages/stock/StockDetail.tsx:593 -#: src/tables/build/BuildLineTable.tsx:48 +#: src/pages/part/PartDetail.tsx:881 +#: src/pages/stock/StockDetail.tsx:172 +#: src/pages/stock/StockDetail.tsx:783 +#: src/tables/build/BuildLineTable.tsx:179 #: src/tables/part/PartTable.tsx:117 -#: src/tables/stock/StockItemTable.tsx:177 -#: src/tables/stock/StockItemTable.tsx:310 +#: src/tables/stock/StockItemTable.tsx:166 +#: src/tables/stock/StockItemTable.tsx:314 msgid "Available" -msgstr "" +msgstr "可用的" -#: src/pages/part/PartDetail.tsx:855 +#: src/pages/part/PartDetail.tsx:887 msgid "No Stock" -msgstr "" +msgstr "無庫存" -#: src/pages/part/PartDetail.tsx:861 +#: src/pages/part/PartDetail.tsx:893 +#: src/tables/part/PartTestTemplateTable.tsx:106 +#: src/tables/stock/StockItemTestResultTable.tsx:383 +msgid "Required" +msgstr "必填" + +#: src/pages/part/PartDetail.tsx:899 #: src/tables/bom/BomTable.tsx:325 #: src/tables/part/PartTable.tsx:86 msgid "On Order" -msgstr "" +msgstr "訂購中" -#: src/pages/part/PartDetail.tsx:867 -#: src/pages/stock/StockDetail.tsx:576 -#: src/tables/build/BuildOrderTestTable.tsx:219 -#: src/tables/stock/StockItemTable.tsx:330 -msgid "In Production" -msgstr "" - -#: src/pages/part/PartDetail.tsx:892 +#: src/pages/part/PartDetail.tsx:924 msgid "Edit Part" -msgstr "" +msgstr "編輯零件" -#: src/pages/part/PartDetail.tsx:927 +#: src/pages/part/PartDetail.tsx:959 #: src/tables/part/PartTable.tsx:331 -#: src/tables/part/PartTable.tsx:342 +#: src/tables/part/PartTable.tsx:343 msgid "Add Part" -msgstr "" +msgstr "添加零件" -#: src/pages/part/PartDetail.tsx:941 +#: src/pages/part/PartDetail.tsx:973 msgid "Delete Part" -msgstr "" +msgstr "刪除零件" -#: src/pages/part/PartDetail.tsx:950 +#: src/pages/part/PartDetail.tsx:982 msgid "Deleting this part cannot be reversed" -msgstr "" +msgstr "刪除此零件無法撤銷" -#: src/pages/part/PartDetail.tsx:999 -#: src/pages/stock/LocationDetail.tsx:324 -#: src/tables/stock/StockItemTable.tsx:444 +#: src/pages/part/PartDetail.tsx:1021 +#: src/pages/stock/LocationDetail.tsx:310 +#: src/tables/stock/StockItemTable.tsx:449 msgid "Stock Actions" -msgstr "" +msgstr "庫存操作" -#: src/pages/part/PartDetail.tsx:1007 +#: src/pages/part/PartDetail.tsx:1029 msgid "Count part stock" -msgstr "" +msgstr "清點零件庫存" -#: src/pages/part/PartDetail.tsx:1018 +#: src/pages/part/PartDetail.tsx:1040 msgid "Transfer part stock" -msgstr "" +msgstr "轉移零件庫存" -#: src/pages/part/PartDetail.tsx:1027 +#: src/pages/part/PartDetail.tsx:1049 msgid "Part Actions" -msgstr "" +msgstr "零件選項" -#: src/pages/part/PartDetail.tsx:1087 +#: src/pages/part/PartDetail.tsx:1113 msgid "Select Part Revision" -msgstr "" +msgstr "選擇零件版本" #: src/pages/part/PartIndex.tsx:29 #~ msgid "Categories" #~ msgstr "Categories" -#: src/pages/part/PartPricingPanel.tsx:68 +#: src/pages/part/PartPricingPanel.tsx:72 msgid "No pricing data found for this part." -msgstr "" +msgstr "未找到此零件的定價數據" -#: src/pages/part/PartPricingPanel.tsx:82 -#: src/pages/part/pricing/PricingOverviewPanel.tsx:190 +#: src/pages/part/PartPricingPanel.tsx:87 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:293 msgid "Pricing Overview" -msgstr "" +msgstr "定價概覽" -#: src/pages/part/PartPricingPanel.tsx:88 +#: src/pages/part/PartPricingPanel.tsx:93 msgid "Purchase History" -msgstr "" +msgstr "採購記錄" -#: src/pages/part/PartPricingPanel.tsx:102 -#: src/pages/part/pricing/PricingOverviewPanel.tsx:100 +#: src/pages/part/PartPricingPanel.tsx:107 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:174 msgid "Internal Pricing" -msgstr "" +msgstr "內部價格" -#: src/pages/part/PartPricingPanel.tsx:120 -#: src/pages/part/pricing/PricingOverviewPanel.tsx:107 +#: src/pages/part/PartPricingPanel.tsx:125 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:181 msgid "BOM Pricing" -msgstr "" +msgstr "物料清單價格" -#: src/pages/part/PartPricingPanel.tsx:127 -#: src/pages/part/pricing/PricingOverviewPanel.tsx:128 +#: src/pages/part/PartPricingPanel.tsx:132 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:202 msgid "Variant Pricing" -msgstr "" +msgstr "變體價格" -#: src/pages/part/PartPricingPanel.tsx:139 -#: src/pages/part/pricing/PricingOverviewPanel.tsx:135 +#: src/pages/part/PartPricingPanel.tsx:144 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:209 msgid "Sale Pricing" -msgstr "" +msgstr "銷售價格" -#: src/pages/part/PartPricingPanel.tsx:146 -#: src/pages/part/pricing/PricingOverviewPanel.tsx:142 +#: src/pages/part/PartPricingPanel.tsx:151 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:216 msgid "Sale History" +msgstr "銷售記錄" + +#: src/pages/part/PartSchedulingDetail.tsx:47 +#: src/pages/part/PartSchedulingDetail.tsx:299 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:156 +msgid "Maximum" +msgstr "最大值" + +#: src/pages/part/PartSchedulingDetail.tsx:50 +#: src/pages/part/PartSchedulingDetail.tsx:289 +msgid "Scheduled" +msgstr "排定" + +#: src/pages/part/PartSchedulingDetail.tsx:53 +#: src/pages/part/PartSchedulingDetail.tsx:294 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:144 +msgid "Minimum" +msgstr "最小值" + +#: src/pages/part/PartSchedulingDetail.tsx:68 +msgid "Order" +msgstr "訂單" + +#: src/pages/part/PartSchedulingDetail.tsx:92 +msgid "Quantity is speculative" +msgstr "數量是投機的" + +#: src/pages/part/PartSchedulingDetail.tsx:101 +msgid "No date available for provided quantity" +msgstr "沒有提供數量的可用日期" + +#: src/pages/part/PartSchedulingDetail.tsx:105 +msgid "Date is in the past" +msgstr "指定日期已過" + +#: src/pages/part/PartSchedulingDetail.tsx:112 +msgid "Scheduled Quantity" +msgstr "計劃數量" + +#: src/pages/part/PartSchedulingDetail.tsx:240 +msgid "No information available" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:58 -#: src/pages/part/pricing/BomPricingPanel.tsx:138 -#: src/tables/ColumnRenderers.tsx:262 +#: src/pages/part/PartSchedulingDetail.tsx:241 +msgid "There is no scheduling information available for the selected part" +msgstr "" + +#: src/pages/part/PartSchedulingDetail.tsx:276 +msgid "Expected Quantity" +msgstr "預期的數量" + +#: src/pages/part/PartStocktakeDetail.tsx:63 +#: src/tables/FilterSelectDrawer.tsx:167 +#: src/tables/FilterSelectDrawer.tsx:174 +#: src/tables/build/BuildOrderTestTable.tsx:135 +#: src/tables/purchasing/ManufacturerPartParameterTable.tsx:38 +#: src/tables/stock/StockItemTestResultTable.tsx:192 +msgid "Value" +msgstr "值" + +#: src/pages/part/PartStocktakeDetail.tsx:82 +msgid "Edit Stocktake Entry" +msgstr "編輯盤點條目" + +#: src/pages/part/PartStocktakeDetail.tsx:90 +msgid "Delete Stocktake Entry" +msgstr "刪除盤點條目" + +#: src/pages/part/PartStocktakeDetail.tsx:96 +#: src/tables/settings/StocktakeReportTable.tsx:69 +msgid "Generate Stocktake Report" +msgstr "生成盤點報告" + +#: src/pages/part/PartStocktakeDetail.tsx:101 +#: src/tables/settings/StocktakeReportTable.tsx:71 +msgid "Stocktake report scheduled" +msgstr "計劃盤點報告" + +#: src/pages/part/PartStocktakeDetail.tsx:119 +#: src/pages/part/PartStocktakeDetail.tsx:235 +#: src/pages/stock/StockDetail.tsx:303 +#: src/tables/stock/StockItemTable.tsx:249 +msgid "Stock Value" +msgstr "庫存價值" + +#: src/pages/part/PartStocktakeDetail.tsx:139 +#: src/tables/settings/StocktakeReportTable.tsx:77 +msgid "New Stocktake Report" +msgstr "盤點報告" + +#: src/pages/part/PartStocktakeDetail.tsx:258 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:295 +msgid "Minimum Value" +msgstr "最小值" + +#: src/pages/part/PartStocktakeDetail.tsx:264 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:296 +msgid "Maximum Value" +msgstr "最大值" + +#: src/pages/part/pricing/BomPricingPanel.tsx:87 +#: src/pages/part/pricing/BomPricingPanel.tsx:177 +#: src/tables/ColumnRenderers.tsx:276 #: src/tables/bom/BomTable.tsx:185 #: src/tables/general/ExtraLineItemTable.tsx:64 -#: src/tables/purchasing/PurchaseOrderTable.tsx:112 -#: src/tables/sales/ReturnOrderTable.tsx:104 -#: src/tables/sales/SalesOrderLineItemTable.tsx:89 -#: src/tables/sales/SalesOrderTable.tsx:136 +#: src/tables/purchasing/PurchaseOrderTable.tsx:113 +#: src/tables/sales/ReturnOrderTable.tsx:127 +#: src/tables/sales/SalesOrderLineItemTable.tsx:97 +#: src/tables/sales/SalesOrderTable.tsx:149 msgid "Total Price" -msgstr "" +msgstr "總價" -#: src/pages/part/pricing/BomPricingPanel.tsx:78 -#: src/pages/part/pricing/BomPricingPanel.tsx:102 +#: src/pages/part/pricing/BomPricingPanel.tsx:112 +#: src/pages/part/pricing/BomPricingPanel.tsx:141 #: src/tables/bom/UsedInTable.tsx:49 +#: src/tables/build/BuildLineTable.tsx:296 #: src/tables/part/PartTable.tsx:202 msgid "Component" -msgstr "" - -#: src/pages/part/pricing/BomPricingPanel.tsx:81 -#: src/pages/part/pricing/VariantPricingPanel.tsx:37 -#: src/pages/part/pricing/VariantPricingPanel.tsx:97 -msgid "Minimum Price" -msgstr "" - -#: src/pages/part/pricing/BomPricingPanel.tsx:82 -#: src/pages/part/pricing/VariantPricingPanel.tsx:45 -#: src/pages/part/pricing/VariantPricingPanel.tsx:98 -msgid "Maximum Price" -msgstr "" +msgstr "組件" #: src/pages/part/pricing/BomPricingPanel.tsx:112 #~ msgid "Minimum Total Price" #~ msgstr "Minimum Total Price" +#: src/pages/part/pricing/BomPricingPanel.tsx:115 +#: src/pages/part/pricing/VariantPricingPanel.tsx:37 +#: src/pages/part/pricing/VariantPricingPanel.tsx:97 +msgid "Minimum Price" +msgstr "最低價格" + +#: src/pages/part/pricing/BomPricingPanel.tsx:116 +#: src/pages/part/pricing/VariantPricingPanel.tsx:45 +#: src/pages/part/pricing/VariantPricingPanel.tsx:98 +msgid "Maximum Price" +msgstr "最高價格" + #: src/pages/part/pricing/BomPricingPanel.tsx:117 #~ msgid "Maximum Total Price" #~ msgstr "Maximum Total Price" -#: src/pages/part/pricing/BomPricingPanel.tsx:129 -#: src/pages/part/pricing/PriceBreakPanel.tsx:172 -#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:67 -#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:128 -#: src/pages/part/pricing/SupplierPricingPanel.tsx:62 +#: src/pages/part/pricing/BomPricingPanel.tsx:168 +#: src/pages/part/pricing/PriceBreakPanel.tsx:173 +#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:70 +#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:125 +#: src/pages/part/pricing/SupplierPricingPanel.tsx:66 +#: src/pages/stock/StockDetail.tsx:291 #: src/tables/bom/BomTable.tsx:176 #: src/tables/general/ExtraLineItemTable.tsx:56 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:223 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:225 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:92 +#: src/tables/stock/StockItemTable.tsx:239 msgid "Unit Price" -msgstr "" +msgstr "單價" -#: src/pages/part/pricing/BomPricingPanel.tsx:154 +#: src/pages/part/pricing/BomPricingPanel.tsx:193 #: src/pages/part/pricing/VariantPricingPanel.tsx:53 -#: src/tables/purchasing/SupplierPartTable.tsx:148 +#: src/tables/purchasing/SupplierPartTable.tsx:150 msgid "Updated" -msgstr "" +msgstr "已更新" -#: src/pages/part/pricing/BomPricingPanel.tsx:219 +#: src/pages/part/pricing/BomPricingPanel.tsx:258 msgid "Pie Chart" -msgstr "" +msgstr "餅狀圖" -#: src/pages/part/pricing/BomPricingPanel.tsx:220 +#: src/pages/part/pricing/BomPricingPanel.tsx:259 msgid "Bar Chart" -msgstr "" +msgstr "柱狀圖" #: src/pages/part/pricing/PriceBreakPanel.tsx:58 -#: src/pages/part/pricing/PriceBreakPanel.tsx:110 +#: src/pages/part/pricing/PriceBreakPanel.tsx:111 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:142 -#: src/tables/purchasing/SupplierPriceBreakTable.tsx:168 +#: src/tables/purchasing/SupplierPriceBreakTable.tsx:169 msgid "Add Price Break" -msgstr "" +msgstr "新增批發價" #: src/pages/part/pricing/PriceBreakPanel.tsx:71 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:153 msgid "Edit Price Break" -msgstr "" +msgstr "編輯批發價" #: src/pages/part/pricing/PriceBreakPanel.tsx:81 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:161 msgid "Delete Price Break" -msgstr "" +msgstr "刪除批發價" #: src/pages/part/pricing/PriceBreakPanel.tsx:95 msgid "Price Break" -msgstr "" +msgstr "批發價" -#: src/pages/part/pricing/PriceBreakPanel.tsx:170 +#: src/pages/part/pricing/PriceBreakPanel.tsx:171 msgid "Price" -msgstr "" +msgstr "價格" -#: src/pages/part/pricing/PricingOverviewPanel.tsx:51 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:68 +msgid "Refreshing pricing data" +msgstr "刷新定價數據" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:88 +msgid "Pricing data updated" +msgstr "更新定價數據" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:95 +msgid "Failed to update pricing data" +msgstr "更新定價數據失敗" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:104 +msgid "Edit Pricing" +msgstr "編輯價格" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:125 msgid "Pricing Category" -msgstr "" +msgstr "價格類別" -#: src/pages/part/pricing/PricingOverviewPanel.tsx:70 -msgid "Minimum" -msgstr "" - -#: src/pages/part/pricing/PricingOverviewPanel.tsx:82 -msgid "Maximum" -msgstr "" - -#: src/pages/part/pricing/PricingOverviewPanel.tsx:114 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:188 msgid "Purchase Pricing" -msgstr "" +msgstr "採購價格" -#: src/pages/part/pricing/PricingOverviewPanel.tsx:149 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:223 msgid "Override Pricing" -msgstr "" +msgstr "覆蓋價格" -#: src/pages/part/pricing/PricingOverviewPanel.tsx:156 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:230 msgid "Overall Pricing" -msgstr "" +msgstr "總價" -#: src/pages/part/pricing/PricingOverviewPanel.tsx:175 -#: src/pages/stock/StockDetail.tsx:129 -#: src/tables/stock/StockItemTable.tsx:240 +#: src/pages/part/pricing/PricingOverviewPanel.tsx:249 +#: src/pages/stock/StockDetail.tsx:145 +#: src/tables/stock/StockItemTable.tsx:275 msgid "Last Updated" -msgstr "" +msgstr "最近更新" -#: src/pages/part/pricing/PricingOverviewPanel.tsx:192 -msgid "Minimum Value" -msgstr "" +#: src/pages/part/pricing/PricingOverviewPanel.tsx:253 +msgid "Pricing Not Set" +msgstr "定價未設置" -#: src/pages/part/pricing/PricingOverviewPanel.tsx:193 -msgid "Maximum Value" -msgstr "" +#: src/pages/part/pricing/PricingOverviewPanel.tsx:254 +msgid "Pricing data has not been calculated for this part" +msgstr "此部分尚未計算定價數據" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:258 +msgid "Pricing Actions" +msgstr "定價操作" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:261 +msgid "Refresh" +msgstr "刷新" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:262 +msgid "Refresh pricing data" +msgstr "刷新定價數據" + +#: src/pages/part/pricing/PricingOverviewPanel.tsx:277 +msgid "Edit pricing data" +msgstr "編輯定價數據" #: src/pages/part/pricing/PricingPanel.tsx:24 msgid "No data available" -msgstr "" +msgstr "無可用數據" #: src/pages/part/pricing/PricingPanel.tsx:65 msgid "No Data" -msgstr "" +msgstr "暫無數據" #: src/pages/part/pricing/PricingPanel.tsx:66 msgid "No pricing data available" -msgstr "" +msgstr "沒有可用的定價數據" #: src/pages/part/pricing/PricingPanel.tsx:77 msgid "Loading pricing data" -msgstr "" - -#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:40 -#: src/pages/part/pricing/SaleHistoryPanel.tsx:36 -#: src/tables/ColumnRenderers.tsx:201 -#: src/tables/build/BuildOrderTestTable.tsx:150 -#: src/tables/plugin/PluginListTable.tsx:139 -msgid "Date" -msgstr "" +msgstr "正在加載定價數據" #: src/pages/part/pricing/PurchaseHistoryPanel.tsx:47 msgid "Purchase Price" -msgstr "" +msgstr "採購價格" -#: src/pages/part/pricing/SaleHistoryPanel.tsx:22 -msgid "Sale Order" -msgstr "" +#: src/pages/part/pricing/SaleHistoryPanel.tsx:24 +#~ msgid "Sale Order" +#~ msgstr "Sale Order" -#: src/pages/part/pricing/SaleHistoryPanel.tsx:42 -#: src/pages/part/pricing/SaleHistoryPanel.tsx:92 +#: src/pages/part/pricing/SaleHistoryPanel.tsx:44 +#: src/pages/part/pricing/SaleHistoryPanel.tsx:87 msgid "Sale Price" -msgstr "" +msgstr "銷售價格" -#: src/pages/part/pricing/SupplierPricingPanel.tsx:65 +#: src/pages/part/pricing/SupplierPricingPanel.tsx:69 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:83 msgid "Supplier Price" -msgstr "" +msgstr "供應商價格" #: src/pages/part/pricing/VariantPricingPanel.tsx:30 #: src/pages/part/pricing/VariantPricingPanel.tsx:94 msgid "Variant Part" -msgstr "" +msgstr "變體零件" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:93 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:87 msgid "Edit Purchase Order" -msgstr "" +msgstr "編輯採購訂單" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:102 -#: src/tables/purchasing/PurchaseOrderTable.tsx:128 -#: src/tables/purchasing/PurchaseOrderTable.tsx:140 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:96 +#: src/tables/purchasing/PurchaseOrderTable.tsx:129 +#: src/tables/purchasing/PurchaseOrderTable.tsx:142 msgid "Add Purchase Order" -msgstr "" +msgstr "添加採購訂單" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:127 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:121 msgid "Supplier Reference" -msgstr "" +msgstr "供應商參考" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:158 -#: src/pages/sales/ReturnOrderDetail.tsx:137 -#: src/pages/sales/SalesOrderDetail.tsx:137 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:152 +#: src/pages/sales/ReturnOrderDetail.tsx:129 +#: src/pages/sales/SalesOrderDetail.tsx:132 msgid "Completed Line Items" -msgstr "" +msgstr "已完成行項目" #: src/pages/purchasing/PurchaseOrderDetail.tsx:159 #: src/pages/sales/ReturnOrderDetail.tsx:126 @@ -5101,208 +5977,305 @@ msgstr "" #~ msgid "Order Currency," #~ msgstr "Order Currency," -#: src/pages/purchasing/PurchaseOrderDetail.tsx:165 -#: src/pages/sales/ReturnOrderDetail.tsx:144 -#: src/pages/sales/SalesOrderDetail.tsx:153 -msgid "Order Currency" -msgstr "" +#: src/pages/purchasing/PurchaseOrderDetail.tsx:161 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:231 +msgid "Destination" +msgstr "目的地" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:172 -#: src/pages/sales/ReturnOrderDetail.tsx:151 -#: src/pages/sales/SalesOrderDetail.tsx:160 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:167 +#: src/pages/sales/ReturnOrderDetail.tsx:136 +#: src/pages/sales/SalesOrderDetail.tsx:148 +msgid "Order Currency" +msgstr "訂單貨幣" + +#: src/pages/purchasing/PurchaseOrderDetail.tsx:173 +#: src/pages/sales/ReturnOrderDetail.tsx:143 +#: src/pages/sales/SalesOrderDetail.tsx:155 msgid "Total Cost" -msgstr "" +msgstr "總成本" #: src/pages/purchasing/PurchaseOrderDetail.tsx:207 -#: src/pages/sales/ReturnOrderDetail.tsx:186 -#: src/pages/sales/SalesOrderDetail.tsx:195 -msgid "Created On" +#: src/pages/sales/ReturnOrderDetail.tsx:183 +#: src/pages/sales/SalesOrderDetail.tsx:191 +#~ msgid "Created On" +#~ msgstr "Created On" + +#: src/pages/purchasing/PurchaseOrderDetail.tsx:221 +#: src/pages/sales/ReturnOrderDetail.tsx:193 +#: src/pages/sales/SalesOrderDetail.tsx:204 +msgid "Issue Date" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:252 -#: src/pages/sales/ReturnOrderDetail.tsx:231 -#: src/pages/sales/SalesOrderDetail.tsx:266 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:237 +#: src/pages/sales/ReturnOrderDetail.tsx:209 +#: src/pages/sales/SalesOrderDetail.tsx:219 +#: src/tables/build/BuildOrderTable.tsx:98 +#: src/tables/part/PartPurchaseOrdersTable.tsx:105 +#: src/tables/sales/ReturnOrderTable.tsx:122 +msgid "Completion Date" +msgstr "" + +#: src/pages/purchasing/PurchaseOrderDetail.tsx:276 +#: src/pages/sales/ReturnOrderDetail.tsx:248 +#: src/pages/sales/SalesOrderDetail.tsx:288 msgid "Order Details" -msgstr "" +msgstr "訂單細節" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:280 -#: src/pages/sales/ReturnOrderDetail.tsx:258 -#: src/pages/sales/SalesOrderDetail.tsx:297 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:304 +#: src/pages/sales/ReturnOrderDetail.tsx:276 +#: src/pages/sales/SalesOrderDetail.tsx:319 msgid "Extra Line Items" -msgstr "" +msgstr "額外行項目" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:337 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:346 msgid "Issue Purchase Order" -msgstr "" +msgstr "發佈採購訂單" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:345 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:354 msgid "Cancel Purchase Order" -msgstr "" +msgstr "取消採購訂單" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:353 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:362 msgid "Hold Purchase Order" -msgstr "" +msgstr "掛起採購訂單" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:361 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:370 msgid "Complete Purchase Order" -msgstr "" +msgstr "完成採購訂單" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:427 -#: src/pages/sales/ReturnOrderDetail.tsx:428 -#: src/pages/sales/SalesOrderDetail.tsx:468 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:425 +#: src/pages/sales/ReturnOrderDetail.tsx:424 +#: src/pages/sales/SalesOrderDetail.tsx:464 msgid "Order Actions" -msgstr "" +msgstr "訂單操作" -#: src/pages/sales/ReturnOrderDetail.tsx:101 -#: src/pages/sales/SalesOrderDetail.tsx:107 -#: src/tables/sales/SalesOrderTable.tsx:124 +#: src/pages/sales/ReturnOrderDetail.tsx:92 +#: src/pages/sales/SalesOrderDetail.tsx:101 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:109 +#: src/tables/sales/SalesOrderTable.tsx:137 msgid "Customer Reference" -msgstr "" +msgstr "客户參考" -#: src/pages/sales/ReturnOrderDetail.tsx:315 +#: src/pages/sales/ReturnOrderDetail.tsx:322 msgid "Edit Return Order" -msgstr "" +msgstr "編輯退貨訂單" -#: src/pages/sales/ReturnOrderDetail.tsx:324 -#: src/tables/sales/ReturnOrderTable.tsx:119 -#: src/tables/sales/ReturnOrderTable.tsx:128 +#: src/pages/sales/ReturnOrderDetail.tsx:331 +#: src/tables/sales/ReturnOrderTable.tsx:142 +#: src/tables/sales/ReturnOrderTable.tsx:152 msgid "Add Return Order" -msgstr "" +msgstr "添加退貨訂單" -#: src/pages/sales/ReturnOrderDetail.tsx:336 +#: src/pages/sales/ReturnOrderDetail.tsx:343 msgid "Issue Return Order" -msgstr "" +msgstr "發佈退貨訂單" -#: src/pages/sales/ReturnOrderDetail.tsx:344 +#: src/pages/sales/ReturnOrderDetail.tsx:349 +#~ msgid "Order canceled" +#~ msgstr "Order canceled" + +#: src/pages/sales/ReturnOrderDetail.tsx:351 msgid "Cancel Return Order" -msgstr "" +msgstr "取消退貨訂單" -#: src/pages/sales/ReturnOrderDetail.tsx:347 -msgid "Order canceled" -msgstr "" - -#: src/pages/sales/ReturnOrderDetail.tsx:352 +#: src/pages/sales/ReturnOrderDetail.tsx:359 msgid "Hold Return Order" -msgstr "" +msgstr "掛起退貨訂單" -#: src/pages/sales/ReturnOrderDetail.tsx:360 +#: src/pages/sales/ReturnOrderDetail.tsx:367 msgid "Complete Return Order" -msgstr "" +msgstr "完成退貨訂單" #: src/pages/sales/SalesIndex.tsx:38 msgid "Customers" -msgstr "" +msgstr "客户" -#: src/pages/sales/SalesOrderDetail.tsx:145 +#: src/pages/sales/SalesOrderDetail.tsx:140 msgid "Completed Shipments" -msgstr "" - -#: src/pages/sales/SalesOrderDetail.tsx:243 -msgid "Edit Sales Order" -msgstr "" - -#: src/pages/sales/SalesOrderDetail.tsx:252 -#: src/tables/sales/SalesOrderTable.tsx:84 -#: src/tables/sales/SalesOrderTable.tsx:96 -msgid "Add Sales Order" -msgstr "" +msgstr "完成配送" #: src/pages/sales/SalesOrderDetail.tsx:256 #~ msgid "Pending Shipments" #~ msgstr "Pending Shipments" -#: src/pages/sales/SalesOrderDetail.tsx:313 +#: src/pages/sales/SalesOrderDetail.tsx:261 +msgid "Edit Sales Order" +msgstr "編輯銷售訂單" + +#: src/pages/sales/SalesOrderDetail.tsx:274 +#: src/tables/sales/SalesOrderTable.tsx:96 +#: src/tables/sales/SalesOrderTable.tsx:109 +msgid "Add Sales Order" +msgstr "添加銷售訂單" + +#: src/pages/sales/SalesOrderDetail.tsx:335 msgid "Shipments" -msgstr "" +msgstr "配送" -#: src/pages/sales/SalesOrderDetail.tsx:369 +#: src/pages/sales/SalesOrderDetail.tsx:376 msgid "Issue Sales Order" -msgstr "" +msgstr "發佈銷售訂單" -#: src/pages/sales/SalesOrderDetail.tsx:377 +#: src/pages/sales/SalesOrderDetail.tsx:384 msgid "Cancel Sales Order" -msgstr "" +msgstr "取消銷售訂單" -#: src/pages/sales/SalesOrderDetail.tsx:385 +#: src/pages/sales/SalesOrderDetail.tsx:392 msgid "Hold Sales Order" -msgstr "" +msgstr "掛起銷售訂單" -#: src/pages/sales/SalesOrderDetail.tsx:393 +#: src/pages/sales/SalesOrderDetail.tsx:400 msgid "Complete Sales Order" -msgstr "" +msgstr "完成銷售訂單" -#: src/pages/sales/SalesOrderDetail.tsx:432 +#: src/pages/sales/SalesOrderDetail.tsx:439 msgid "Ship Order" +msgstr "裝貨單" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:117 +#: src/tables/sales/SalesOrderShipmentTable.tsx:96 +msgid "Shipment Reference" +msgstr "配送參考" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:124 +msgid "Allocated Items" msgstr "" -#: src/pages/stock/LocationDetail.tsx:117 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:133 +msgid "Tracking Number" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:141 +msgid "Invoice Number" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:149 +#: src/tables/ColumnRenderers.tsx:242 +#: src/tables/sales/SalesOrderAllocationTable.tsx:142 +#: src/tables/sales/SalesOrderShipmentTable.tsx:115 +msgid "Shipment Date" +msgstr "發貨日期" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:157 +#: src/tables/sales/SalesOrderShipmentTable.tsx:119 +msgid "Delivery Date" +msgstr "送達日期" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:204 +msgid "Shipment Details" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:210 +msgid "Assigned Items" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:241 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:317 +#: src/tables/sales/SalesOrderShipmentTable.tsx:75 +msgid "Edit Shipment" +msgstr "編輯配送" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:248 +#: src/pages/sales/SalesOrderShipmentDetail.tsx:322 +#: src/tables/sales/SalesOrderShipmentTable.tsx:67 +msgid "Cancel Shipment" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:261 +#: src/tables/sales/SalesOrderShipmentTable.tsx:83 +#: src/tables/sales/SalesOrderShipmentTable.tsx:151 +msgid "Complete Shipment" +msgstr "完成配送" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:276 +#: src/tables/part/PartPurchaseOrdersTable.tsx:121 +msgid "Pending" +msgstr "待定" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:277 +#: src/tables/sales/SalesOrderAllocationTable.tsx:148 +#: src/tables/sales/SalesOrderShipmentTable.tsx:108 +#: src/tables/sales/SalesOrderShipmentTable.tsx:197 +msgid "Shipped" +msgstr "已配送" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:279 +#: src/tables/sales/SalesOrderShipmentTable.tsx:202 +msgid "Delivered" +msgstr "已送達" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:293 +msgid "Send Shipment" +msgstr "" + +#: src/pages/sales/SalesOrderShipmentDetail.tsx:312 +msgid "Shipment Actions" +msgstr "" + +#: src/pages/stock/LocationDetail.tsx:111 msgid "Parent Location" -msgstr "" +msgstr "上級地點" -#: src/pages/stock/LocationDetail.tsx:135 +#: src/pages/stock/LocationDetail.tsx:129 msgid "Sublocations" -msgstr "" +msgstr "次級地點" -#: src/pages/stock/LocationDetail.tsx:147 +#: src/pages/stock/LocationDetail.tsx:141 #: src/tables/stock/StockLocationTable.tsx:54 msgid "External" -msgstr "" +msgstr "外部" -#: src/pages/stock/LocationDetail.tsx:153 +#: src/pages/stock/LocationDetail.tsx:147 #: src/tables/stock/StockLocationTable.tsx:63 msgid "Location Type" -msgstr "" +msgstr "位置類型" -#: src/pages/stock/LocationDetail.tsx:164 +#: src/pages/stock/LocationDetail.tsx:158 msgid "Top level stock location" -msgstr "" +msgstr "最高級庫存位置" -#: src/pages/stock/LocationDetail.tsx:175 +#: src/pages/stock/LocationDetail.tsx:169 msgid "Location Details" -msgstr "" +msgstr "位置詳細信息" -#: src/pages/stock/LocationDetail.tsx:201 +#: src/pages/stock/LocationDetail.tsx:195 msgid "Default Parts" -msgstr "" +msgstr "默認零件" -#: src/pages/stock/LocationDetail.tsx:220 -#: src/pages/stock/LocationDetail.tsx:351 +#: src/pages/stock/LocationDetail.tsx:214 +#: src/pages/stock/LocationDetail.tsx:336 #: src/tables/stock/StockLocationTable.tsx:123 msgid "Edit Stock Location" -msgstr "" +msgstr "編輯庫存地點" -#: src/pages/stock/LocationDetail.tsx:241 -#: src/pages/stock/LocationDetail.tsx:356 +#: src/pages/stock/LocationDetail.tsx:235 +#: src/pages/stock/LocationDetail.tsx:341 msgid "Delete Stock Location" -msgstr "" +msgstr "刪除庫存地點" + +#: src/pages/stock/LocationDetail.tsx:238 +msgid "Items Action" +msgstr "項目操作" + +#: src/pages/stock/LocationDetail.tsx:239 +msgid "Action for stock items in this location" +msgstr "對此位置中的庫存物品執行的操作" #: src/pages/stock/LocationDetail.tsx:244 -msgid "Items Action" -msgstr "" +msgid "Child Locations Action" +msgstr "子倉庫操作" #: src/pages/stock/LocationDetail.tsx:245 -msgid "Action for stock items in this location" -msgstr "" - -#: src/pages/stock/LocationDetail.tsx:250 -msgid "Child Locations Action" -msgstr "" - -#: src/pages/stock/LocationDetail.tsx:251 msgid "Action for child locations in this location" -msgstr "" +msgstr "對此位置中的子位置執行的操作" -#: src/pages/stock/LocationDetail.tsx:346 +#: src/pages/stock/LocationDetail.tsx:332 msgid "Location Actions" -msgstr "" +msgstr "位置操作" -#: src/pages/stock/StockDetail.tsx:108 +#: src/pages/stock/StockDetail.tsx:116 msgid "Base Part" -msgstr "" - -#: src/pages/stock/StockDetail.tsx:115 -msgid "Stock Status" -msgstr "" +msgstr "基礎零件" #: src/pages/stock/StockDetail.tsx:155 #~ msgid "Link custom barcode to stock item" @@ -5312,117 +6285,183 @@ msgstr "" #~ msgid "Unlink custom barcode from stock item" #~ msgstr "Unlink custom barcode from stock item" -#: src/pages/stock/StockDetail.tsx:188 -msgid "Installed In" -msgstr "" - -#: src/pages/stock/StockDetail.tsx:204 -msgid "Consumed By" -msgstr "" +#: src/pages/stock/StockDetail.tsx:178 +msgid "Allocated to Orders" +msgstr "分配到訂單" #: src/pages/stock/StockDetail.tsx:205 #~ msgid "Edit stock item" #~ msgstr "Edit stock item" -#: src/pages/stock/StockDetail.tsx:213 -#: src/tables/build/BuildAllocatedStockTable.tsx:64 -#: src/tables/stock/StockTrackingTable.tsx:96 -msgid "Build Order" -msgstr "" +#: src/pages/stock/StockDetail.tsx:209 +msgid "Installed In" +msgstr "安裝於" #: src/pages/stock/StockDetail.tsx:217 #~ msgid "Delete stock item" #~ msgstr "Delete stock item" -#: src/pages/stock/StockDetail.tsx:291 +#: src/pages/stock/StockDetail.tsx:226 +msgid "Parent Item" +msgstr "上級項目" + +#: src/pages/stock/StockDetail.tsx:230 +msgid "Parent stock item" +msgstr "上級庫存項" + +#: src/pages/stock/StockDetail.tsx:236 +msgid "Consumed By" +msgstr "消耗者" + +#: src/pages/stock/StockDetail.tsx:245 +#: src/tables/build/BuildAllocatedStockTable.tsx:77 +#: src/tables/stock/StockTrackingTable.tsx:100 +msgid "Build Order" +msgstr "生產訂單" + +#: src/pages/stock/StockDetail.tsx:283 +#: src/tables/stock/StockItemTable.tsx:270 +msgid "Expiry Date" +msgstr "有效期至" + +#: src/pages/stock/StockDetail.tsx:414 msgid "Stock Details" -msgstr "" +msgstr "庫存詳情" -#: src/pages/stock/StockDetail.tsx:297 +#: src/pages/stock/StockDetail.tsx:420 msgid "Stock Tracking" -msgstr "" - -#: src/pages/stock/StockDetail.tsx:350 -msgid "Test Data" -msgstr "" - -#: src/pages/stock/StockDetail.tsx:364 -msgid "Installed Items" -msgstr "" - -#: src/pages/stock/StockDetail.tsx:371 -msgid "Child Items" -msgstr "" - -#: src/pages/stock/StockDetail.tsx:425 -msgid "Edit Stock Item" -msgstr "" +msgstr "庫存跟蹤" #: src/pages/stock/StockDetail.tsx:433 #~ msgid "Duplicate stock item" #~ msgstr "Duplicate stock item" -#: src/pages/stock/StockDetail.tsx:452 +#: src/pages/stock/StockDetail.tsx:475 +msgid "Test Data" +msgstr "測試數據" + +#: src/pages/stock/StockDetail.tsx:489 +msgid "Installed Items" +msgstr "已安裝的項目" + +#: src/pages/stock/StockDetail.tsx:496 +msgid "Child Items" +msgstr "子項目" + +#: src/pages/stock/StockDetail.tsx:545 +msgid "Edit Stock Item" +msgstr "編輯庫存項" + +#: src/pages/stock/StockDetail.tsx:572 msgid "Delete Stock Item" -msgstr "" +msgstr "刪除庫存項" -#: src/pages/stock/StockDetail.tsx:504 +#: src/pages/stock/StockDetail.tsx:604 +msgid "Serialize Stock Item" +msgstr "序列化庫存" + +#: src/pages/stock/StockDetail.tsx:617 +msgid "Stock item serialized" +msgstr "庫存項已創建" + +#: src/pages/stock/StockDetail.tsx:623 +msgid "Return Stock Item" +msgstr "退貨庫存" + +#: src/pages/stock/StockDetail.tsx:626 +msgid "Return this item into stock. This will remove the customer assignment." +msgstr "返回此項目到庫存。這將刪除客户作業。" + +#: src/pages/stock/StockDetail.tsx:636 +msgid "Item returned to stock" +msgstr "項目已返回庫存" + +#: src/pages/stock/StockDetail.tsx:666 msgid "Stock Operations" -msgstr "" +msgstr "庫存操作" -#: src/pages/stock/StockDetail.tsx:509 +#: src/pages/stock/StockDetail.tsx:671 msgid "Count stock" -msgstr "" +msgstr "庫存計數" -#: src/pages/stock/StockDetail.tsx:519 -#: src/tables/stock/StockItemTable.tsx:449 -msgid "Add stock" -msgstr "" +#: src/pages/stock/StockDetail.tsx:671 +#: src/tables/stock/StockItemTable.tsx:452 +#~ msgid "Add stock" +#~ msgstr "Add stock" -#: src/pages/stock/StockDetail.tsx:527 -#: src/tables/stock/StockItemTable.tsx:458 -msgid "Remove stock" -msgstr "" +#: src/pages/stock/StockDetail.tsx:680 +#: src/tables/stock/StockItemTable.tsx:461 +#~ msgid "Remove stock" +#~ msgstr "Remove stock" -#: src/pages/stock/StockDetail.tsx:534 +#: src/pages/stock/StockDetail.tsx:698 +#: src/tables/stock/StockItemTable.tsx:481 +#~ msgid "Transfer stock" +#~ msgstr "Transfer stock" + +#: src/pages/stock/StockDetail.tsx:699 +msgid "Serialize" +msgstr "序列化" + +#: src/pages/stock/StockDetail.tsx:700 +msgid "Serialize stock" +msgstr "序列化庫存" + +#: src/pages/stock/StockDetail.tsx:711 msgid "Transfer" -msgstr "" +msgstr "轉移" -#: src/pages/stock/StockDetail.tsx:535 -#: src/tables/stock/StockItemTable.tsx:478 -msgid "Transfer stock" -msgstr "" +#: src/pages/stock/StockDetail.tsx:722 +msgid "Return" +msgstr "退貨" -#: src/pages/stock/StockDetail.tsx:546 +#: src/pages/stock/StockDetail.tsx:723 +msgid "Return from customer" +msgstr "從客户退貨" + +#: src/pages/stock/StockDetail.tsx:738 msgid "Stock Item Actions" +msgstr "庫存項操作" + +#: src/pages/stock/StockDetail.tsx:808 +msgid "Stale" msgstr "" -#: src/tables/ColumnRenderers.tsx:30 +#: src/pages/stock/StockDetail.tsx:814 +msgid "Expired" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:820 +msgid "Unavailable" +msgstr "" + +#: src/tables/ColumnRenderers.tsx:36 msgid "Part is not active" +msgstr "零件未激活" + +#: src/tables/ColumnRenderers.tsx:41 +#: src/tables/bom/BomTable.tsx:542 +#: src/tables/part/PartParameterTable.tsx:193 +#: src/tables/part/PartTestTemplateTable.tsx:253 +msgid "Part is Locked" +msgstr "零件已鎖定" + +#: src/tables/ColumnRenderers.tsx:41 +#~ msgid "Part is locked" +#~ msgstr "Part is locked" + +#: src/tables/ColumnRenderers.tsx:46 +msgid "You are subscribed to notifications for this part" msgstr "" -#: src/tables/ColumnRenderers.tsx:35 -msgid "Part is locked" -msgstr "" - -#: src/tables/ColumnRenderers.tsx:57 +#: src/tables/ColumnRenderers.tsx:68 msgid "No location set" -msgstr "" - -#: src/tables/ColumnRenderers.tsx:228 -#: src/tables/sales/SalesOrderShipmentTable.tsx:79 -msgid "Shipment Date" -msgstr "" - -#: src/tables/ColumnRenderers.tsx:248 -#: src/tables/settings/CurrencyTable.tsx:23 -msgid "Currency" -msgstr "" +msgstr "未設置庫存地點" #: src/tables/ColumnSelect.tsx:16 #: src/tables/ColumnSelect.tsx:23 msgid "Select Columns" -msgstr "" +msgstr "選擇列" #: src/tables/DownloadAction.tsx:13 #~ msgid "Excel" @@ -5430,7 +6469,7 @@ msgstr "" #: src/tables/DownloadAction.tsx:21 msgid "CSV" -msgstr "" +msgstr "CSV" #: src/tables/DownloadAction.tsx:21 #~ msgid "Download selected data" @@ -5438,11 +6477,11 @@ msgstr "" #: src/tables/DownloadAction.tsx:22 msgid "TSV" -msgstr "" +msgstr "TSV" #: src/tables/DownloadAction.tsx:23 msgid "Excel (.xlsx)" -msgstr "" +msgstr "Excel (.xlsx)" #: src/tables/DownloadAction.tsx:24 #~ msgid "Excel (.xls)" @@ -5450,112 +6489,125 @@ msgstr "" #: src/tables/DownloadAction.tsx:36 msgid "Download Data" -msgstr "" +msgstr "下載數據" -#: src/tables/Filter.tsx:89 -#: src/tables/build/BuildOrderTable.tsx:135 +#: src/tables/Filter.tsx:101 msgid "Assigned to me" -msgstr "" +msgstr "已分派給我的" -#: src/tables/Filter.tsx:90 -#: src/tables/build/BuildOrderTable.tsx:136 +#: src/tables/Filter.tsx:102 msgid "Show orders assigned to me" -msgstr "" - -#: src/tables/Filter.tsx:97 -msgid "Outstanding" -msgstr "" - -#: src/tables/Filter.tsx:98 -msgid "Show outstanding orders" -msgstr "" - -#: src/tables/Filter.tsx:105 -#: src/tables/build/BuildOrderTable.tsx:128 -msgid "Overdue" -msgstr "" +msgstr "顯示分配給我的訂單" #: src/tables/Filter.tsx:106 -msgid "Show overdue orders" +#~ msgid "Show overdue orders" +#~ msgstr "Show overdue orders" + +#: src/tables/Filter.tsx:109 +#: src/tables/build/BuildOrderTable.tsx:120 +#: src/tables/sales/SalesOrderAllocationTable.tsx:59 +msgid "Outstanding" +msgstr "未完成" + +#: src/tables/Filter.tsx:110 +msgid "Show outstanding items" msgstr "" -#: src/tables/FilterSelectDrawer.tsx:51 +#: src/tables/Filter.tsx:117 +msgid "Overdue" +msgstr "逾期" + +#: src/tables/Filter.tsx:118 +msgid "Show overdue items" +msgstr "" + +#: src/tables/Filter.tsx:125 +msgid "Minimum Date" +msgstr "" + +#: src/tables/Filter.tsx:126 +msgid "Show items after this date" +msgstr "" + +#: src/tables/Filter.tsx:134 +msgid "Maximum Date" +msgstr "" + +#: src/tables/Filter.tsx:135 +msgid "Show items before this date" +msgstr "" + +#: src/tables/Filter.tsx:144 +msgid "Has Project Code" +msgstr "有項目編碼" + +#: src/tables/Filter.tsx:145 +msgid "Show orders with an assigned project code" +msgstr "" + +#: src/tables/FilterSelectDrawer.tsx:55 msgid "Remove filter" -msgstr "" +msgstr "移除過濾器" -#: src/tables/FilterSelectDrawer.tsx:130 +#: src/tables/FilterSelectDrawer.tsx:159 msgid "Select filter" -msgstr "" +msgstr "選擇過濾器" -#: src/tables/FilterSelectDrawer.tsx:131 +#: src/tables/FilterSelectDrawer.tsx:160 msgid "Filter" +msgstr "過濾器" + +#: src/tables/FilterSelectDrawer.tsx:168 +msgid "Select date value" msgstr "" -#: src/tables/FilterSelectDrawer.tsx:138 -#: src/tables/build/BuildOrderTestTable.tsx:134 -#: src/tables/purchasing/ManufacturerPartParameterTable.tsx:38 -#: src/tables/stock/StockItemTestResultTable.tsx:186 -msgid "Value" -msgstr "" - -#: src/tables/FilterSelectDrawer.tsx:140 +#: src/tables/FilterSelectDrawer.tsx:176 msgid "Select filter value" -msgstr "" +msgstr "選擇過濾器值" -#: src/tables/FilterSelectDrawer.tsx:183 +#: src/tables/FilterSelectDrawer.tsx:219 +#: src/tables/InvenTreeTableHeader.tsx:214 msgid "Table Filters" -msgstr "" +msgstr "表格篩選" -#: src/tables/FilterSelectDrawer.tsx:215 +#: src/tables/FilterSelectDrawer.tsx:251 msgid "Add Filter" -msgstr "" +msgstr "添加過濾條件" -#: src/tables/FilterSelectDrawer.tsx:224 +#: src/tables/FilterSelectDrawer.tsx:260 msgid "Clear Filters" -msgstr "" +msgstr "清除篩選" -#: src/tables/InvenTreeTable.tsx:123 -#: src/tables/InvenTreeTable.tsx:431 -#: src/tables/InvenTreeTable.tsx:455 +#: src/tables/InvenTreeTable.tsx:96 +#: src/tables/InvenTreeTable.tsx:417 +#: src/tables/InvenTreeTable.tsx:441 msgid "No records found" -msgstr "" +msgstr "沒有找到記錄" + +#: src/tables/InvenTreeTable.tsx:452 +msgid "Server returned incorrect data type" +msgstr "服務器返回了錯誤的數據類型" + +#: src/tables/InvenTreeTable.tsx:460 +msgid "Bad request" +msgstr "錯誤的請求" + +#: src/tables/InvenTreeTable.tsx:463 +msgid "Unauthorized" +msgstr "未授權" #: src/tables/InvenTreeTable.tsx:466 -msgid "Server returned incorrect data type" -msgstr "" - -#: src/tables/InvenTreeTable.tsx:474 -msgid "Bad request" -msgstr "" - -#: src/tables/InvenTreeTable.tsx:477 -msgid "Unauthorized" -msgstr "" - -#: src/tables/InvenTreeTable.tsx:480 msgid "Forbidden" -msgstr "" +msgstr "禁止訪問" -#: src/tables/InvenTreeTable.tsx:483 +#: src/tables/InvenTreeTable.tsx:469 msgid "Not found" -msgstr "" +msgstr "未找到" #: src/tables/InvenTreeTable.tsx:510 #~ msgid "Are you sure you want to delete the selected records?" #~ msgstr "Are you sure you want to delete the selected records?" -#: src/tables/InvenTreeTable.tsx:525 -msgid "Delete Selected Items" -msgstr "" - -#: src/tables/InvenTreeTable.tsx:529 -msgid "Are you sure you want to delete the selected items?" -msgstr "" - -#: src/tables/InvenTreeTable.tsx:531 -msgid "This action cannot be undone!" -msgstr "" - #: src/tables/InvenTreeTable.tsx:535 #~ msgid "Deleted records" #~ msgstr "Deleted records" @@ -5568,31 +6620,56 @@ msgstr "" #~ msgid "Failed to delete records" #~ msgstr "Failed to delete records" +#: src/tables/InvenTreeTable.tsx:552 +#~ msgid "This action cannot be undone!" +#~ msgstr "This action cannot be undone!" + #: src/tables/InvenTreeTable.tsx:594 #: src/tables/InvenTreeTable.tsx:595 #~ msgid "Print actions" #~ msgstr "Print actions" -#: src/tables/InvenTreeTable.tsx:618 -#: src/tables/InvenTreeTable.tsx:619 -msgid "Barcode actions" +#: src/tables/InvenTreeTable.tsx:655 +#: src/tables/InvenTreeTable.tsx:656 +#~ msgid "Barcode actions" +#~ msgstr "Barcode actions" + +#: src/tables/InvenTreeTable.tsx:712 +#~ msgid "Table filters" +#~ msgstr "Table filters" + +#: src/tables/InvenTreeTable.tsx:725 +#~ msgid "Clear custom query filters" +#~ msgstr "Clear custom query filters" + +#: src/tables/InvenTreeTableHeader.tsx:98 +msgid "Delete Selected Items" +msgstr "刪除所選項目" + +#: src/tables/InvenTreeTableHeader.tsx:102 +msgid "Are you sure you want to delete the selected items?" +msgstr "確定要刪除所選的項目嗎?" + +#: src/tables/InvenTreeTableHeader.tsx:104 +#: src/tables/plugin/PluginListTable.tsx:305 +msgid "This action cannot be undone" msgstr "" -#: src/tables/InvenTreeTable.tsx:628 +#: src/tables/InvenTreeTableHeader.tsx:142 +msgid "Custom table filters are active" +msgstr "" + +#: src/tables/InvenTreeTableHeader.tsx:169 msgid "Delete selected records" -msgstr "" +msgstr "刪除選中的記錄" -#: src/tables/InvenTreeTable.tsx:649 +#: src/tables/InvenTreeTableHeader.tsx:188 msgid "Refresh data" -msgstr "" - -#: src/tables/InvenTreeTable.tsx:675 -msgid "Table filters" -msgstr "" +msgstr "刷新數據" #: src/tables/TableHoverCard.tsx:35 -msgid "item-{idx}" -msgstr "" +#~ msgid "item-{idx}" +#~ msgstr "item-{idx}" #: src/tables/UploadAction.tsx:7 #~ msgid "Upload Data" @@ -5600,53 +6677,58 @@ msgstr "" #: src/tables/bom/BomTable.tsx:95 msgid "This BOM item is defined for a different parent" -msgstr "" +msgstr "此物料清單項目是為另一個上級定義的" #: src/tables/bom/BomTable.tsx:110 msgid "Part Information" -msgstr "" +msgstr "零件信息" #: src/tables/bom/BomTable.tsx:212 -#: src/tables/build/BuildLineTable.tsx:126 +#: src/tables/build/BuildLineTable.tsx:257 #: src/tables/part/PartTable.tsx:125 msgid "External stock" -msgstr "" +msgstr "外部庫存" #: src/tables/bom/BomTable.tsx:220 -#: src/tables/build/BuildLineTable.tsx:89 +#: src/tables/build/BuildLineTable.tsx:220 msgid "Includes substitute stock" -msgstr "" +msgstr "包括替代庫存" #: src/tables/bom/BomTable.tsx:229 -#: src/tables/build/BuildLineTable.tsx:99 -#: src/tables/sales/SalesOrderLineItemTable.tsx:127 +#: src/tables/build/BuildLineTable.tsx:230 +#: src/tables/sales/SalesOrderLineItemTable.tsx:135 msgid "Includes variant stock" -msgstr "" +msgstr "包括變體庫存" + +#: src/tables/bom/BomTable.tsx:245 +#: src/tables/part/PartTable.tsx:92 +msgid "Building" +msgstr "正在生產" #: src/tables/bom/BomTable.tsx:254 #: src/tables/part/PartTable.tsx:153 -#: src/tables/sales/SalesOrderLineItemTable.tsx:150 -#: src/tables/stock/StockItemTable.tsx:216 +#: src/tables/sales/SalesOrderLineItemTable.tsx:158 +#: src/tables/stock/StockItemTable.tsx:206 msgid "Stock Information" -msgstr "" +msgstr "庫存信息" #: src/tables/bom/BomTable.tsx:285 -#: src/tables/build/BuildLineTable.tsx:248 +#: src/tables/build/BuildLineTable.tsx:409 msgid "Consumable item" -msgstr "" +msgstr "可耗物品" #: src/tables/bom/BomTable.tsx:288 msgid "No available stock" -msgstr "" +msgstr "無可用庫存" #: src/tables/bom/BomTable.tsx:301 #~ msgid "Create BOM Item" #~ msgstr "Create BOM Item" #: src/tables/bom/BomTable.tsx:306 -#: src/tables/build/BuildLineTable.tsx:69 +#: src/tables/build/BuildLineTable.tsx:200 msgid "Show testable items" -msgstr "" +msgstr "顯示可跟蹤項目" #: src/tables/bom/BomTable.tsx:310 #~ msgid "Show asssmbled items" @@ -5654,28 +6736,29 @@ msgstr "" #: src/tables/bom/BomTable.tsx:311 msgid "Show trackable items" -msgstr "" +msgstr "顯示可跟蹤項目" #: src/tables/bom/BomTable.tsx:316 -#: src/tables/build/BuildLineTable.tsx:64 +#: src/tables/build/BuildLineTable.tsx:195 msgid "Show assembled items" -msgstr "" +msgstr "顯示已裝配的項目" #: src/tables/bom/BomTable.tsx:321 +#: src/tables/build/BuildLineTable.tsx:180 msgid "Show items with available stock" -msgstr "" +msgstr "顯示有可用庫存的項目" #: src/tables/bom/BomTable.tsx:326 msgid "Show items on order" -msgstr "" +msgstr "按順序顯示項目" #: src/tables/bom/BomTable.tsx:330 msgid "Validated" -msgstr "" +msgstr "已驗證" #: src/tables/bom/BomTable.tsx:331 msgid "Show validated items" -msgstr "" +msgstr "顯示已驗證的項目" #: src/tables/bom/BomTable.tsx:331 #~ msgid "Edit Bom Item" @@ -5688,31 +6771,31 @@ msgstr "" #: src/tables/bom/BomTable.tsx:335 #: src/tables/bom/UsedInTable.tsx:74 msgid "Inherited" -msgstr "" +msgstr "繼承項" #: src/tables/bom/BomTable.tsx:336 #: src/tables/bom/UsedInTable.tsx:75 msgid "Show inherited items" -msgstr "" +msgstr "顯示繼承的項目" #: src/tables/bom/BomTable.tsx:340 msgid "Allow Variants" -msgstr "" +msgstr "允許變體" #: src/tables/bom/BomTable.tsx:341 msgid "Show items which allow variant substitution" -msgstr "" +msgstr "顯示允許變體替換的項目" #: src/tables/bom/BomTable.tsx:345 #: src/tables/bom/UsedInTable.tsx:79 -#: src/tables/build/BuildLineTable.tsx:58 +#: src/tables/build/BuildLineTable.tsx:189 msgid "Optional" -msgstr "" +msgstr "可選項" #: src/tables/bom/BomTable.tsx:346 #: src/tables/bom/UsedInTable.tsx:80 msgid "Show optional items" -msgstr "" +msgstr "顯示可選項目" #: src/tables/bom/BomTable.tsx:348 #~ msgid "Delete Bom Item" @@ -5723,13 +6806,13 @@ msgstr "" #~ msgstr "Bom item deleted" #: src/tables/bom/BomTable.tsx:350 -#: src/tables/build/BuildLineTable.tsx:53 +#: src/tables/build/BuildLineTable.tsx:184 msgid "Consumable" -msgstr "" +msgstr "消耗品" #: src/tables/bom/BomTable.tsx:351 msgid "Show consumable items" -msgstr "" +msgstr "顯示可消耗項目" #: src/tables/bom/BomTable.tsx:351 #~ msgid "Are you sure you want to remove this BOM item?" @@ -5742,688 +6825,769 @@ msgstr "" #: src/tables/bom/BomTable.tsx:355 #: src/tables/part/PartTable.tsx:282 msgid "Has Pricing" -msgstr "" +msgstr "是否有價格" #: src/tables/bom/BomTable.tsx:356 msgid "Show items with pricing" -msgstr "" +msgstr "顯示帶定價的項目" #: src/tables/bom/BomTable.tsx:378 -#: src/tables/bom/BomTable.tsx:511 +#: src/tables/bom/BomTable.tsx:512 msgid "Import BOM Data" -msgstr "" +msgstr "導入物料清單數據" #: src/tables/bom/BomTable.tsx:388 -#: src/tables/bom/BomTable.tsx:523 +#: src/tables/bom/BomTable.tsx:526 msgid "Add BOM Item" -msgstr "" +msgstr "添加物料清單項" #: src/tables/bom/BomTable.tsx:393 msgid "BOM item created" -msgstr "" +msgstr "BOM 項目已創建" #: src/tables/bom/BomTable.tsx:400 msgid "Edit BOM Item" -msgstr "" +msgstr "編輯物料清單項目" #: src/tables/bom/BomTable.tsx:402 msgid "BOM item updated" -msgstr "" +msgstr "物料清單 項目已更新" #: src/tables/bom/BomTable.tsx:409 msgid "Delete BOM Item" -msgstr "" +msgstr "刪除物料清單項目" #: src/tables/bom/BomTable.tsx:410 msgid "BOM item deleted" -msgstr "" +msgstr "物料清單項目已刪除" #: src/tables/bom/BomTable.tsx:423 #: src/tables/bom/BomTable.tsx:426 -#: src/tables/bom/BomTable.tsx:517 +#: src/tables/bom/BomTable.tsx:519 msgid "Validate BOM" -msgstr "" +msgstr "驗證物料清單" #: src/tables/bom/BomTable.tsx:427 msgid "Do you want to validate the bill of materials for this assembly?" -msgstr "" +msgstr "您想要驗證此裝配的材料清單嗎?" #: src/tables/bom/BomTable.tsx:430 msgid "BOM validated" -msgstr "" +msgstr "物料清單確認" #: src/tables/bom/BomTable.tsx:442 msgid "BOM item validated" -msgstr "" +msgstr "物料清單項目已驗證" #: src/tables/bom/BomTable.tsx:451 msgid "Failed to validate BOM item" -msgstr "" +msgstr "驗證物料清單項目失敗" #: src/tables/bom/BomTable.tsx:463 msgid "View BOM" -msgstr "" +msgstr "查看 物料清單" #: src/tables/bom/BomTable.tsx:472 msgid "Validate BOM Line" -msgstr "" +msgstr "驗證物料清單行" #: src/tables/bom/BomTable.tsx:489 msgid "Edit Substitutes" -msgstr "" +msgstr "編輯替代零件" -#: src/tables/bom/BomTable.tsx:539 -#: src/tables/part/PartParameterTable.tsx:193 -#: src/tables/part/PartTestTemplateTable.tsx:252 -msgid "Part is Locked" -msgstr "" - -#: src/tables/bom/BomTable.tsx:544 +#: src/tables/bom/BomTable.tsx:547 msgid "Bill of materials cannot be edited, as the part is locked" -msgstr "" +msgstr "無法編輯材料清單,因為零件已鎖定" #: src/tables/bom/UsedInTable.tsx:33 -#: src/tables/build/BuildLineTable.tsx:63 +#: src/tables/build/BuildLineTable.tsx:194 #: src/tables/part/ParametricPartTable.tsx:233 #: src/tables/part/PartTable.tsx:190 -#: src/tables/stock/StockItemTable.tsx:300 +#: src/tables/stock/StockItemTable.tsx:304 msgid "Assembly" -msgstr "" +msgstr "裝配" #: src/tables/bom/UsedInTable.tsx:85 msgid "Show active assemblies" -msgstr "" +msgstr "顯示活動裝配體" #: src/tables/bom/UsedInTable.tsx:89 #: src/tables/part/PartTable.tsx:214 #: src/tables/part/PartVariantTable.tsx:30 msgid "Trackable" -msgstr "" +msgstr "可追蹤" #: src/tables/bom/UsedInTable.tsx:90 msgid "Show trackable assemblies" -msgstr "" +msgstr "顯示可跟蹤裝配體" -#: src/tables/build/BuildAllocatedStockTable.tsx:54 +#: src/tables/build/BuildAllocatedStockTable.tsx:56 msgid "Allocated to Output" -msgstr "" +msgstr "分配至輸出" -#: src/tables/build/BuildAllocatedStockTable.tsx:55 +#: src/tables/build/BuildAllocatedStockTable.tsx:57 msgid "Show items allocated to a build output" +msgstr "顯示分配給構建輸出的項目" + +#: src/tables/build/BuildAllocatedStockTable.tsx:65 +#: src/tables/build/BuildOrderTable.tsx:159 +#: src/tables/part/PartParameterTable.tsx:212 +#: src/tables/part/PartPurchaseOrdersTable.tsx:138 +#: src/tables/sales/ReturnOrderTable.tsx:84 +#: src/tables/sales/SalesOrderAllocationTable.tsx:68 +#: src/tables/sales/SalesOrderTable.tsx:84 +#: src/tables/stock/StockItemTable.tsx:339 +msgid "Include Variants" +msgstr "包含變體" + +#: src/tables/build/BuildAllocatedStockTable.tsx:66 +#: src/tables/build/BuildOrderTable.tsx:160 +#: src/tables/part/PartPurchaseOrdersTable.tsx:139 +#: src/tables/sales/ReturnOrderTable.tsx:85 +#: src/tables/sales/SalesOrderAllocationTable.tsx:69 +#: src/tables/sales/SalesOrderTable.tsx:85 +msgid "Include orders for part variants" msgstr "" -#: src/tables/build/BuildAllocatedStockTable.tsx:76 -#: src/tables/part/PartPurchaseOrdersTable.tsx:125 -#: src/tables/sales/SalesOrderAllocationTable.tsx:62 +#: src/tables/build/BuildAllocatedStockTable.tsx:89 +#: src/tables/part/PartPurchaseOrdersTable.tsx:131 +#: src/tables/sales/SalesOrderAllocationTable.tsx:93 msgid "Order Status" -msgstr "" +msgstr "訂單狀態" -#: src/tables/build/BuildAllocatedStockTable.tsx:96 -#: src/tables/sales/SalesOrderAllocationTable.tsx:75 +#: src/tables/build/BuildAllocatedStockTable.tsx:117 +#: src/tables/sales/SalesOrderAllocationTable.tsx:126 msgid "Allocated Quantity" -msgstr "" +msgstr "已分配數量" -#: src/tables/build/BuildAllocatedStockTable.tsx:116 -#: src/tables/sales/SalesOrderAllocationTable.tsx:94 +#: src/tables/build/BuildAllocatedStockTable.tsx:137 +#: src/tables/sales/SalesOrderAllocationTable.tsx:120 msgid "Available Quantity" +msgstr "可用數量" + +#: src/tables/build/BuildAllocatedStockTable.tsx:164 +#: src/tables/build/BuildLineTable.tsx:513 +msgid "Edit Stock Allocation" msgstr "" -#: src/tables/build/BuildAllocatedStockTable.tsx:126 -#: src/tables/build/BuildOrderTestTable.tsx:176 -#: src/tables/build/BuildOrderTestTable.tsx:200 -#: src/tables/build/BuildOutputTable.tsx:312 -msgid "Build Output" -msgstr "" +#: src/tables/build/BuildAllocatedStockTable.tsx:164 +#~ msgid "Edit Build Item" +#~ msgstr "Edit Build Item" -#: src/tables/build/BuildAllocatedStockTable.tsx:143 -msgid "Edit Build Item" -msgstr "" +#: src/tables/build/BuildAllocatedStockTable.tsx:174 +#~ msgid "Delete Build Item" +#~ msgstr "Delete Build Item" -#: src/tables/build/BuildAllocatedStockTable.tsx:153 -msgid "Delete Build Item" -msgstr "" - -#: src/tables/build/BuildLineTable.tsx:43 -#: src/tables/stock/StockItemTable.tsx:305 -msgid "Allocated" -msgstr "" - -#: src/tables/build/BuildLineTable.tsx:44 -msgid "Show allocated lines" -msgstr "" - -#: src/tables/build/BuildLineTable.tsx:49 -msgid "Show lines with available stock" -msgstr "" - -#: src/tables/build/BuildLineTable.tsx:54 -msgid "Show consumable lines" +#: src/tables/build/BuildAllocatedStockTable.tsx:177 +#: src/tables/build/BuildLineTable.tsx:526 +msgid "Delete Stock Allocation" msgstr "" #: src/tables/build/BuildLineTable.tsx:59 -msgid "Show optional lines" -msgstr "" +#~ msgid "Show lines with available stock" +#~ msgstr "Show lines with available stock" -#: src/tables/build/BuildLineTable.tsx:68 +#: src/tables/build/BuildLineTable.tsx:175 +msgid "Show allocated lines" +msgstr "顯示分配的行" + +#: src/tables/build/BuildLineTable.tsx:185 +msgid "Show consumable lines" +msgstr "顯示可消耗項目" + +#: src/tables/build/BuildLineTable.tsx:190 +msgid "Show optional lines" +msgstr "顯示可選項目" + +#: src/tables/build/BuildLineTable.tsx:199 #: src/tables/part/PartTable.tsx:208 msgid "Testable" -msgstr "" +msgstr "可測試" -#: src/tables/build/BuildLineTable.tsx:73 -#: src/tables/stock/StockItemTable.tsx:364 +#: src/tables/build/BuildLineTable.tsx:204 +#: src/tables/stock/StockItemTable.tsx:368 msgid "Tracked" -msgstr "" +msgstr "已跟蹤" -#: src/tables/build/BuildLineTable.tsx:74 +#: src/tables/build/BuildLineTable.tsx:205 msgid "Show tracked lines" -msgstr "" +msgstr "顯示已跟蹤項目" -#: src/tables/build/BuildLineTable.tsx:108 -#: src/tables/sales/SalesOrderLineItemTable.tsx:133 +#: src/tables/build/BuildLineTable.tsx:239 +#: src/tables/sales/SalesOrderLineItemTable.tsx:141 msgid "In production" -msgstr "" - -#: src/tables/build/BuildLineTable.tsx:136 -msgid "Insufficient stock" -msgstr "" - -#: src/tables/build/BuildLineTable.tsx:152 -#: src/tables/sales/SalesOrderLineItemTable.tsx:121 -#: src/tables/stock/StockItemTable.tsx:186 -msgid "No stock available" -msgstr "" - -#: src/tables/build/BuildLineTable.tsx:201 -msgid "Gets Inherited" -msgstr "" - -#: src/tables/build/BuildLineTable.tsx:210 -msgid "Unit Quantity" -msgstr "" +msgstr "生產中" #: src/tables/build/BuildLineTable.tsx:267 -#: src/tables/sales/SalesOrderLineItemTable.tsx:230 +msgid "Insufficient stock" +msgstr "庫存不足" + +#: src/tables/build/BuildLineTable.tsx:283 +#: src/tables/sales/SalesOrderLineItemTable.tsx:129 +#: src/tables/stock/StockItemTable.tsx:175 +msgid "No stock available" +msgstr "無可用庫存" + +#: src/tables/build/BuildLineTable.tsx:355 +msgid "Gets Inherited" +msgstr "獲取已繼承的" + +#: src/tables/build/BuildLineTable.tsx:366 +msgid "Unit Quantity" +msgstr "單位數量" + +#: src/tables/build/BuildLineTable.tsx:381 +msgid "Required Quantity" +msgstr "" + +#: src/tables/build/BuildLineTable.tsx:432 +#: src/tables/sales/SalesOrderLineItemTable.tsx:254 msgid "Create Build Order" -msgstr "" +msgstr "創建生產訂單" -#: src/tables/build/BuildLineTable.tsx:298 -msgid "Allocate Stock" -msgstr "" +#: src/tables/build/BuildLineTable.tsx:460 +msgid "Auto allocation in progress" +msgstr "自動分配進行中" -#: src/tables/build/BuildLineTable.tsx:305 +#: src/tables/build/BuildLineTable.tsx:463 +#: src/tables/build/BuildLineTable.tsx:632 +msgid "Auto Allocate Stock" +msgstr "自動分配庫存量" + +#: src/tables/build/BuildLineTable.tsx:464 +msgid "Automatically allocate stock to this build according to the selected options" +msgstr "根據選定的選項自動分配庫存到此版本" + +#: src/tables/build/BuildLineTable.tsx:482 +#: src/tables/build/BuildLineTable.tsx:496 +#: src/tables/build/BuildLineTable.tsx:579 +#: src/tables/build/BuildLineTable.tsx:664 +#: src/tables/build/BuildOutputTable.tsx:314 +#: src/tables/build/BuildOutputTable.tsx:319 +msgid "Deallocate Stock" +msgstr "取消庫存分配" + +#: src/tables/build/BuildLineTable.tsx:498 +msgid "Deallocate all untracked stock for this build order" +msgstr "為這個構建訂單取消分配所有未跟蹤庫存" + +#: src/tables/build/BuildLineTable.tsx:500 +msgid "Deallocate stock from the selected line item" +msgstr "從選中的行項中取消分配庫存" + +#: src/tables/build/BuildLineTable.tsx:504 +msgid "Stock has been deallocated" +msgstr "庫存已經取消分配" + +#: src/tables/build/BuildLineTable.tsx:589 msgid "Order Stock" -msgstr "" +msgstr "訂單庫存" -#: src/tables/build/BuildLineTable.tsx:312 +#: src/tables/build/BuildLineTable.tsx:596 msgid "Build Stock" -msgstr "" +msgstr "生產庫存" -#: src/tables/build/BuildOrderTable.tsx:111 -msgid "Show active orders" +#: src/tables/build/BuildLineTable.tsx:610 +msgid "View Part" msgstr "" #: src/tables/build/BuildOrderTable.tsx:116 -msgid "Cascade" -msgstr "" +#~ msgid "Cascade" +#~ msgstr "Cascade" #: src/tables/build/BuildOrderTable.tsx:117 -msgid "Display recursive child orders" -msgstr "" +#~ msgid "Display recursive child orders" +#~ msgstr "Display recursive child orders" -#: src/tables/build/BuildOrderTable.tsx:123 -#: src/tables/part/PartPurchaseOrdersTable.tsx:126 -#: src/tables/purchasing/PurchaseOrderTable.tsx:56 -#: src/tables/sales/ReturnOrderTable.tsx:47 -#: src/tables/sales/SalesOrderTable.tsx:54 +#: src/tables/build/BuildOrderTable.tsx:121 +msgid "Show outstanding orders" +msgstr "顯示未完成的訂單" + +#: src/tables/build/BuildOrderTable.tsx:121 +#~ msgid "Show active orders" +#~ msgstr "Show active orders" + +#: src/tables/build/BuildOrderTable.tsx:122 +#~ msgid "Show overdue status" +#~ msgstr "Show overdue status" + +#: src/tables/build/BuildOrderTable.tsx:126 +#: src/tables/part/PartPurchaseOrdersTable.tsx:132 +#: src/tables/purchasing/PurchaseOrderTable.tsx:59 +#: src/tables/sales/ReturnOrderTable.tsx:57 +#: src/tables/sales/SalesOrderTable.tsx:57 msgid "Filter by order status" -msgstr "" +msgstr "按訂單狀態篩選" -#: src/tables/build/BuildOrderTable.tsx:130 -msgid "Show overdue status" -msgstr "" - -#: src/tables/build/BuildOrderTable.tsx:141 -#: src/tables/purchasing/PurchaseOrderTable.tsx:65 -#: src/tables/sales/ReturnOrderTable.tsx:56 -#: src/tables/sales/SalesOrderTable.tsx:63 -msgid "Filter by project code" -msgstr "" - -#: src/tables/build/BuildOrderTable.tsx:146 +#: src/tables/build/BuildOrderTable.tsx:136 #: src/tables/purchasing/PurchaseOrderTable.tsx:70 -#: src/tables/sales/ReturnOrderTable.tsx:61 +#: src/tables/sales/ReturnOrderTable.tsx:68 #: src/tables/sales/SalesOrderTable.tsx:68 -msgid "Has Project Code" -msgstr "" +msgid "Filter by project code" +msgstr "按項目編碼篩選" -#: src/tables/build/BuildOrderTable.tsx:147 +#: src/tables/build/BuildOrderTable.tsx:139 #: src/tables/purchasing/PurchaseOrderTable.tsx:71 #: src/tables/sales/ReturnOrderTable.tsx:62 #: src/tables/sales/SalesOrderTable.tsx:69 -msgid "Filter by whether the purchase order has a project code" -msgstr "" +#~ msgid "Filter by whether the purchase order has a project code" +#~ msgstr "Filter by whether the purchase order has a project code" -#: src/tables/build/BuildOrderTable.tsx:152 +#: src/tables/build/BuildOrderTable.tsx:143 msgid "Filter by user who issued this order" -msgstr "" +msgstr "按發佈此訂單的用户篩選" -#: src/tables/build/BuildOrderTable.tsx:158 -#: src/tables/purchasing/PurchaseOrderTable.tsx:76 -#: src/tables/sales/ReturnOrderTable.tsx:67 -#: src/tables/sales/SalesOrderTable.tsx:74 +#: src/tables/build/BuildOrderTable.tsx:149 +#: src/tables/purchasing/PurchaseOrderTable.tsx:77 +#: src/tables/sales/ReturnOrderTable.tsx:75 +#: src/tables/sales/SalesOrderTable.tsx:75 msgid "Filter by responsible owner" -msgstr "" +msgstr "根據負責人進行篩選" -#: src/tables/build/BuildOrderTestTable.tsx:75 -#: src/tables/build/BuildOrderTestTable.tsx:111 -#: src/tables/stock/StockItemTestResultTable.tsx:257 -#: src/tables/stock/StockItemTestResultTable.tsx:329 -#: src/tables/stock/StockItemTestResultTable.tsx:384 +#: src/tables/build/BuildOrderTestTable.tsx:76 +#: src/tables/build/BuildOrderTestTable.tsx:112 +#: src/tables/stock/StockItemTestResultTable.tsx:275 +#: src/tables/stock/StockItemTestResultTable.tsx:347 +#: src/tables/stock/StockItemTestResultTable.tsx:403 msgid "Add Test Result" -msgstr "" +msgstr "添加測試結果" -#: src/tables/build/BuildOrderTestTable.tsx:82 -#: src/tables/stock/StockItemTestResultTable.tsx:259 +#: src/tables/build/BuildOrderTestTable.tsx:83 +#: src/tables/stock/StockItemTestResultTable.tsx:277 msgid "Test result added" -msgstr "" +msgstr "測試結果已添加" -#: src/tables/build/BuildOrderTestTable.tsx:110 -#: src/tables/stock/StockItemTestResultTable.tsx:174 +#: src/tables/build/BuildOrderTestTable.tsx:111 +#: src/tables/stock/StockItemTestResultTable.tsx:180 msgid "No Result" -msgstr "" +msgstr "無結果" -#: src/tables/build/BuildOrderTestTable.tsx:220 +#: src/tables/build/BuildOrderTestTable.tsx:221 msgid "Show build outputs currently in production" +msgstr "顯示當前生產中的構建輸出" + +#: src/tables/build/BuildOutputTable.tsx:76 +msgid "Build Output Stock Allocation" msgstr "" #: src/tables/build/BuildOutputTable.tsx:161 #~ msgid "Delete build output" #~ msgstr "Delete build output" -#: src/tables/build/BuildOutputTable.tsx:173 -#: src/tables/build/BuildOutputTable.tsx:211 +#: src/tables/build/BuildOutputTable.tsx:258 +#: src/tables/build/BuildOutputTable.tsx:374 msgid "Add Build Output" +msgstr "添加生成輸出" + +#: src/tables/build/BuildOutputTable.tsx:304 +#~ msgid "Edit build output" +#~ msgstr "Edit build output" + +#: src/tables/build/BuildOutputTable.tsx:306 +#: src/tables/build/BuildOutputTable.tsx:417 +msgid "Edit Build Output" +msgstr "編輯生成輸出" + +#: src/tables/build/BuildOutputTable.tsx:321 +msgid "This action will deallocate all stock from the selected build output" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:216 +#: src/tables/build/BuildOutputTable.tsx:341 msgid "Complete selected outputs" -msgstr "" +msgstr "完成選定的輸出" -#: src/tables/build/BuildOutputTable.tsx:226 +#: src/tables/build/BuildOutputTable.tsx:352 msgid "Scrap selected outputs" -msgstr "" +msgstr "報廢選定的輸出" -#: src/tables/build/BuildOutputTable.tsx:236 +#: src/tables/build/BuildOutputTable.tsx:363 msgid "Cancel selected outputs" -msgstr "" +msgstr "取消選定的輸出" -#: src/tables/build/BuildOutputTable.tsx:252 +#: src/tables/build/BuildOutputTable.tsx:385 msgid "Allocate" -msgstr "" +msgstr "分配" -#: src/tables/build/BuildOutputTable.tsx:253 +#: src/tables/build/BuildOutputTable.tsx:386 msgid "Allocate stock to build output" -msgstr "" +msgstr "為生產產出分配庫存" -#: src/tables/build/BuildOutputTable.tsx:259 +#: src/tables/build/BuildOutputTable.tsx:396 msgid "Deallocate" -msgstr "" +msgstr "取消分配" -#: src/tables/build/BuildOutputTable.tsx:260 +#: src/tables/build/BuildOutputTable.tsx:397 msgid "Deallocate stock from build output" -msgstr "" +msgstr "從生產輸出中取消分配庫存" -#: src/tables/build/BuildOutputTable.tsx:267 +#: src/tables/build/BuildOutputTable.tsx:408 msgid "Complete build output" -msgstr "" +msgstr "完成生產輸出" -#: src/tables/build/BuildOutputTable.tsx:276 +#: src/tables/build/BuildOutputTable.tsx:424 msgid "Scrap" -msgstr "" +msgstr "報廢件" -#: src/tables/build/BuildOutputTable.tsx:277 +#: src/tables/build/BuildOutputTable.tsx:425 msgid "Scrap build output" -msgstr "" +msgstr "報廢生產輸出" -#: src/tables/build/BuildOutputTable.tsx:280 -#~ msgid "Allocated Items" -#~ msgstr "Allocated Items" - -#: src/tables/build/BuildOutputTable.tsx:287 +#: src/tables/build/BuildOutputTable.tsx:435 msgid "Cancel build output" -msgstr "" +msgstr "取消生產輸出" -#: src/tables/build/BuildOutputTable.tsx:325 -msgid "Batch" -msgstr "" - -#: src/tables/build/BuildOutputTable.tsx:340 +#: src/tables/build/BuildOutputTable.tsx:488 msgid "Allocated Lines" -msgstr "" +msgstr "已分配的項目" -#: src/tables/build/BuildOutputTable.tsx:355 +#: src/tables/build/BuildOutputTable.tsx:503 msgid "Required Tests" -msgstr "" +msgstr "需要測試" -#: src/tables/company/AddressTable.tsx:121 -#: src/tables/company/AddressTable.tsx:185 +#: src/tables/company/AddressTable.tsx:118 +#: src/tables/company/AddressTable.tsx:183 msgid "Add Address" -msgstr "" +msgstr "新增地址" -#: src/tables/company/AddressTable.tsx:126 +#: src/tables/company/AddressTable.tsx:123 msgid "Address created" -msgstr "" +msgstr "地址已創建" -#: src/tables/company/AddressTable.tsx:135 +#: src/tables/company/AddressTable.tsx:132 msgid "Edit Address" -msgstr "" +msgstr "編輯地址" -#: src/tables/company/AddressTable.tsx:143 +#: src/tables/company/AddressTable.tsx:140 msgid "Delete Address" -msgstr "" +msgstr "刪除地址" -#: src/tables/company/AddressTable.tsx:144 +#: src/tables/company/AddressTable.tsx:141 msgid "Are you sure you want to delete this address?" -msgstr "" +msgstr "您確定要刪除該地址?" #: src/tables/company/CompanyTable.tsx:71 #~ msgid "New Company" #~ msgstr "New Company" -#: src/tables/company/CompanyTable.tsx:74 -#: src/tables/company/CompanyTable.tsx:123 +#: src/tables/company/CompanyTable.tsx:75 +#: src/tables/company/CompanyTable.tsx:125 msgid "Add Company" -msgstr "" +msgstr "添加公司" -#: src/tables/company/CompanyTable.tsx:96 +#: src/tables/company/CompanyTable.tsx:97 msgid "Show active companies" -msgstr "" +msgstr "顯示活躍的公司" -#: src/tables/company/CompanyTable.tsx:101 +#: src/tables/company/CompanyTable.tsx:102 msgid "Show companies which are suppliers" -msgstr "" +msgstr "顯示供應商公司" -#: src/tables/company/CompanyTable.tsx:106 +#: src/tables/company/CompanyTable.tsx:107 msgid "Show companies which are manufacturers" -msgstr "" +msgstr "顯示屬於製造商的公司" -#: src/tables/company/CompanyTable.tsx:111 +#: src/tables/company/CompanyTable.tsx:112 msgid "Show companies which are customers" -msgstr "" +msgstr "顯示客户公司" #: src/tables/company/ContactTable.tsx:71 msgid "Edit Contact" -msgstr "" +msgstr "編輯聯繫人" #: src/tables/company/ContactTable.tsx:78 msgid "Add Contact" -msgstr "" +msgstr "添加聯繫人" #: src/tables/company/ContactTable.tsx:89 msgid "Delete Contact" -msgstr "" +msgstr "刪除聯繫人" -#: src/tables/company/ContactTable.tsx:129 +#: src/tables/company/ContactTable.tsx:130 msgid "Add contact" -msgstr "" +msgstr "添加聯繫人" -#: src/tables/general/AttachmentTable.tsx:130 +#: src/tables/general/AttachmentTable.tsx:135 msgid "File uploaded" -msgstr "" +msgstr "文件已上傳" -#: src/tables/general/AttachmentTable.tsx:131 +#: src/tables/general/AttachmentTable.tsx:136 msgid "File {0} uploaded successfully" -msgstr "" +msgstr "文件 {0} 上傳成功。" -#: src/tables/general/AttachmentTable.tsx:142 +#: src/tables/general/AttachmentTable.tsx:147 msgid "Upload Error" -msgstr "" +msgstr "上傳錯誤" -#: src/tables/general/AttachmentTable.tsx:143 +#: src/tables/general/AttachmentTable.tsx:148 msgid "File could not be uploaded" -msgstr "" +msgstr "文件無法上傳。" -#: src/tables/general/AttachmentTable.tsx:191 +#: src/tables/general/AttachmentTable.tsx:196 msgid "Upload Attachment" -msgstr "" +msgstr "上傳附件" -#: src/tables/general/AttachmentTable.tsx:201 +#: src/tables/general/AttachmentTable.tsx:206 msgid "Edit Attachment" -msgstr "" +msgstr "編輯附件" -#: src/tables/general/AttachmentTable.tsx:215 +#: src/tables/general/AttachmentTable.tsx:220 msgid "Delete Attachment" -msgstr "" - -#: src/tables/general/AttachmentTable.tsx:225 -msgid "Is Link" -msgstr "" - -#: src/tables/general/AttachmentTable.tsx:226 -msgid "Show link attachments" -msgstr "" +msgstr "刪除附件" #: src/tables/general/AttachmentTable.tsx:230 -msgid "Is File" -msgstr "" +msgid "Is Link" +msgstr "是鏈接" #: src/tables/general/AttachmentTable.tsx:231 +msgid "Show link attachments" +msgstr "顯示鏈接附件" + +#: src/tables/general/AttachmentTable.tsx:235 +msgid "Is File" +msgstr "是文件" + +#: src/tables/general/AttachmentTable.tsx:236 msgid "Show file attachments" -msgstr "" +msgstr "顯示文件附件" -#: src/tables/general/AttachmentTable.tsx:240 +#: src/tables/general/AttachmentTable.tsx:245 msgid "Add attachment" -msgstr "" - -#: src/tables/general/AttachmentTable.tsx:251 -msgid "Add external link" -msgstr "" +msgstr "添加附件" #: src/tables/general/AttachmentTable.tsx:254 #~ msgid "Upload attachment" #~ msgstr "Upload attachment" -#: src/tables/general/AttachmentTable.tsx:299 -msgid "No attachments found" -msgstr "" +#: src/tables/general/AttachmentTable.tsx:256 +msgid "Add external link" +msgstr "添加外部鏈接" -#: src/tables/general/AttachmentTable.tsx:337 +#: src/tables/general/AttachmentTable.tsx:304 +msgid "No attachments found" +msgstr "找不到附件。" + +#: src/tables/general/AttachmentTable.tsx:343 msgid "Drag attachment file here to upload" -msgstr "" +msgstr "拖拽附件文件到此處上傳" #: src/tables/general/ExtraLineItemTable.tsx:86 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:251 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:60 -#: src/tables/sales/SalesOrderLineItemTable.tsx:196 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:263 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:362 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:72 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:168 +#: src/tables/sales/SalesOrderLineItemTable.tsx:206 +#: src/tables/sales/SalesOrderLineItemTable.tsx:291 msgid "Add Line Item" -msgstr "" +msgstr "添加行項目" #: src/tables/general/ExtraLineItemTable.tsx:98 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:271 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:72 -#: src/tables/sales/SalesOrderLineItemTable.tsx:214 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:283 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:84 +#: src/tables/sales/SalesOrderLineItemTable.tsx:224 msgid "Edit Line Item" -msgstr "" +msgstr "編輯行項目" #: src/tables/general/ExtraLineItemTable.tsx:106 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:279 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:80 -#: src/tables/sales/SalesOrderLineItemTable.tsx:222 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:291 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:92 +#: src/tables/sales/SalesOrderLineItemTable.tsx:232 msgid "Delete Line Item" -msgstr "" +msgstr "刪除行項目" -#: src/tables/general/ExtraLineItemTable.tsx:142 +#: src/tables/general/ExtraLineItemTable.tsx:143 msgid "Add Extra Line Item" -msgstr "" +msgstr "添加額外行項目" #: src/tables/machine/MachineListTable.tsx:202 msgid "Machine restarted" -msgstr "" +msgstr "設備已重啓" #: src/tables/machine/MachineListTable.tsx:212 -#: src/tables/machine/MachineListTable.tsx:263 +#: src/tables/machine/MachineListTable.tsx:261 msgid "Edit machine" -msgstr "" +msgstr "編輯設備" #: src/tables/machine/MachineListTable.tsx:226 -#: src/tables/machine/MachineListTable.tsx:267 +#: src/tables/machine/MachineListTable.tsx:265 msgid "Delete machine" -msgstr "" +msgstr "刪除設備" #: src/tables/machine/MachineListTable.tsx:227 msgid "Machine successfully deleted." -msgstr "" +msgstr "設備已成功刪除。" #: src/tables/machine/MachineListTable.tsx:231 msgid "Are you sure you want to remove the machine \"{0}\"?" -msgstr "" +msgstr "你確定要刪除設備 \"{0}\" 嗎?" -#: src/tables/machine/MachineListTable.tsx:255 -#: src/tables/machine/MachineListTable.tsx:432 +#: src/tables/machine/MachineListTable.tsx:254 +#: src/tables/machine/MachineListTable.tsx:442 msgid "Restart required" -msgstr "" +msgstr "需要重啓" -#: src/tables/machine/MachineListTable.tsx:259 +#: src/tables/machine/MachineListTable.tsx:258 msgid "Machine Actions" -msgstr "" +msgstr "設備操作" + +#: src/tables/machine/MachineListTable.tsx:270 +msgid "Restart" +msgstr "重新啓動" #: src/tables/machine/MachineListTable.tsx:272 -msgid "Restart" -msgstr "" +msgid "Restart machine" +msgstr "重啓設備" #: src/tables/machine/MachineListTable.tsx:274 -msgid "Restart machine" -msgstr "" - -#: src/tables/machine/MachineListTable.tsx:276 msgid "manual restart required" -msgstr "" +msgstr "需要手動重啓" + +#: src/tables/machine/MachineListTable.tsx:291 +#~ msgid "Machine information" +#~ msgstr "Machine information" #: src/tables/machine/MachineListTable.tsx:292 -msgid "Machine information" +msgid "Machine Information" msgstr "" -#: src/tables/machine/MachineListTable.tsx:303 -#: src/tables/machine/MachineListTable.tsx:599 +#: src/tables/machine/MachineListTable.tsx:302 +#: src/tables/machine/MachineListTable.tsx:610 msgid "Machine Type" -msgstr "" +msgstr "設備類型" -#: src/tables/machine/MachineListTable.tsx:316 +#: src/tables/machine/MachineListTable.tsx:315 msgid "Machine Driver" -msgstr "" +msgstr "設備驅動程序" -#: src/tables/machine/MachineListTable.tsx:329 +#: src/tables/machine/MachineListTable.tsx:330 msgid "Initialized" -msgstr "" +msgstr "已初始化" -#: src/tables/machine/MachineListTable.tsx:350 -#: src/tables/machine/MachineTypeTable.tsx:261 -msgid "Errors" -msgstr "" - -#: src/tables/machine/MachineListTable.tsx:358 -#: src/tables/machine/MachineTypeTable.tsx:269 +#: src/tables/machine/MachineListTable.tsx:359 +#: src/tables/machine/MachineTypeTable.tsx:290 msgid "No errors reported" -msgstr "" +msgstr "未報告錯誤" #: src/tables/machine/MachineListTable.tsx:378 msgid "Machine Settings" -msgstr "" +msgstr "設備設置" -#: src/tables/machine/MachineListTable.tsx:389 +#: src/tables/machine/MachineListTable.tsx:394 msgid "Driver Settings" -msgstr "" +msgstr "驅動設置" #: src/tables/machine/MachineListTable.tsx:494 #~ msgid "Create machine" #~ msgstr "Create machine" -#: src/tables/machine/MachineListTable.tsx:506 +#: src/tables/machine/MachineListTable.tsx:516 +#: src/tables/machine/MachineListTable.tsx:558 msgid "Add machine" -msgstr "" +msgstr "添加設備" #: src/tables/machine/MachineListTable.tsx:561 -msgid "Machine detail" +#~ msgid "Machine detail" +#~ msgstr "Machine detail" + +#: src/tables/machine/MachineListTable.tsx:572 +msgid "Machine Detail" msgstr "" -#: src/tables/machine/MachineListTable.tsx:608 +#: src/tables/machine/MachineListTable.tsx:619 msgid "Driver" -msgstr "" +msgstr "驅動" -#: src/tables/machine/MachineTypeTable.tsx:73 +#: src/tables/machine/MachineTypeTable.tsx:78 msgid "Builtin driver" +msgstr "內置驅動" + +#: src/tables/machine/MachineTypeTable.tsx:96 +msgid "Not Found" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:89 +#: src/tables/machine/MachineTypeTable.tsx:99 msgid "Machine type not found." +msgstr "找不到設備類型。" + +#: src/tables/machine/MachineTypeTable.tsx:99 +#~ msgid "Machine type information" +#~ msgstr "Machine type information" + +#: src/tables/machine/MachineTypeTable.tsx:109 +msgid "Machine Type Information" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:97 -msgid "Machine type information" -msgstr "" - -#: src/tables/machine/MachineTypeTable.tsx:110 -#: src/tables/machine/MachineTypeTable.tsx:217 -msgid "Slug" -msgstr "" - -#: src/tables/machine/MachineTypeTable.tsx:118 +#: src/tables/machine/MachineTypeTable.tsx:124 #: src/tables/machine/MachineTypeTable.tsx:238 -msgid "Provider plugin" -msgstr "" - -#: src/tables/machine/MachineTypeTable.tsx:130 -#: src/tables/machine/MachineTypeTable.tsx:250 -msgid "Provider file" -msgstr "" +msgid "Slug" +msgstr "別名" #: src/tables/machine/MachineTypeTable.tsx:135 -#: src/tables/machine/MachineTypeTable.tsx:255 -#: src/tables/plugin/PluginListTable.tsx:180 -#: src/tables/plugin/PluginListTable.tsx:568 -msgid "Builtin" +#: src/tables/machine/MachineTypeTable.tsx:259 +msgid "Provider plugin" +msgstr "供應商插件" + +#: src/tables/machine/MachineTypeTable.tsx:147 +#: src/tables/machine/MachineTypeTable.tsx:271 +msgid "Provider file" +msgstr "供應商文件" + +#: src/tables/machine/MachineTypeTable.tsx:148 +#~ msgid "Available drivers" +#~ msgstr "Available drivers" + +#: src/tables/machine/MachineTypeTable.tsx:162 +msgid "Available Drivers" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:146 -msgid "Available drivers" -msgstr "" - -#: src/tables/machine/MachineTypeTable.tsx:196 +#: src/tables/machine/MachineTypeTable.tsx:217 msgid "Machine driver not found." -msgstr "" +msgstr "未找到設備驅動程序。" -#: src/tables/machine/MachineTypeTable.tsx:204 +#: src/tables/machine/MachineTypeTable.tsx:225 msgid "Machine driver information" -msgstr "" +msgstr "設備驅動信息" -#: src/tables/machine/MachineTypeTable.tsx:224 +#: src/tables/machine/MachineTypeTable.tsx:245 msgid "Machine type" -msgstr "" +msgstr "設備類型" -#: src/tables/machine/MachineTypeTable.tsx:327 +#: src/tables/machine/MachineTypeTable.tsx:338 +#~ msgid "Machine type detail" +#~ msgstr "Machine type detail" + +#: src/tables/machine/MachineTypeTable.tsx:348 msgid "Builtin type" +msgstr "內置類型" + +#: src/tables/machine/MachineTypeTable.tsx:348 +#~ msgid "Machine driver detail" +#~ msgstr "Machine driver detail" + +#: src/tables/machine/MachineTypeTable.tsx:357 +msgid "Machine Type Detail" msgstr "" -#: src/tables/machine/MachineTypeTable.tsx:336 -msgid "Machine type detail" -msgstr "" - -#: src/tables/machine/MachineTypeTable.tsx:346 -msgid "Machine driver detail" +#: src/tables/machine/MachineTypeTable.tsx:367 +msgid "Machine Driver Detail" msgstr "" #: src/tables/notifications/NotificationsTable.tsx:26 msgid "Age" -msgstr "" +msgstr "壽命" + +#: src/tables/notifications/NotificationsTable.tsx:36 +msgid "Notification" +msgstr "通知" #: src/tables/notifications/NotificationsTable.tsx:40 #: src/tables/plugin/PluginErrorTable.tsx:37 +#: src/tables/settings/ErrorTable.tsx:50 msgid "Message" -msgstr "" +msgstr "信息" #: src/tables/part/ParametricPartTable.tsx:74 msgid "Click to edit" -msgstr "" +msgstr "點擊以編輯" #: src/tables/part/ParametricPartTable.tsx:82 #~ msgid "Edit parameter" @@ -6431,72 +7595,71 @@ msgstr "" #: src/tables/part/ParametricPartTable.tsx:127 msgid "Add Part Parameter" -msgstr "" +msgstr "添加零件參數" #: src/tables/part/ParametricPartTable.tsx:141 #: src/tables/part/PartParameterTable.tsx:130 #: src/tables/part/PartParameterTable.tsx:153 msgid "Edit Part Parameter" -msgstr "" +msgstr "編輯零件參數" #: src/tables/part/ParametricPartTable.tsx:224 msgid "Show active parts" -msgstr "" +msgstr "顯示活動零件" #: src/tables/part/ParametricPartTable.tsx:229 msgid "Show locked parts" -msgstr "" +msgstr "顯示鎖定的零件" #: src/tables/part/ParametricPartTable.tsx:234 msgid "Show assembly parts" +msgstr "顯示已裝配的零件" + +#: src/tables/part/PartCategoryTable.tsx:48 +msgid "You are subscribed to notifications for this category" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:68 +#: src/tables/part/PartCategoryTable.tsx:80 #: src/tables/part/PartTable.tsx:196 msgid "Include Subcategories" -msgstr "" +msgstr "包含子類別" -#: src/tables/part/PartCategoryTable.tsx:69 +#: src/tables/part/PartCategoryTable.tsx:81 msgid "Include subcategories in results" -msgstr "" - -#: src/tables/part/PartCategoryTable.tsx:74 -msgid "Show structural categories" -msgstr "" - -#: src/tables/part/PartCategoryTable.tsx:78 -#: src/tables/part/PartTable.tsx:294 -msgid "Subscribed" -msgstr "" - -#: src/tables/part/PartCategoryTable.tsx:79 -msgid "Show categories to which the user is subscribed" -msgstr "" +msgstr "在結果中包含子類別" #: src/tables/part/PartCategoryTable.tsx:86 -msgid "New Part Category" -msgstr "" +msgid "Show structural categories" +msgstr "顯示結構性類別" -#: src/tables/part/PartCategoryTable.tsx:112 +#: src/tables/part/PartCategoryTable.tsx:91 +msgid "Show categories to which the user is subscribed" +msgstr "顯示用户訂閲的類別" + +#: src/tables/part/PartCategoryTable.tsx:100 +msgid "New Part Category" +msgstr "新建零件類別" + +#: src/tables/part/PartCategoryTable.tsx:129 msgid "Add Part Category" -msgstr "" +msgstr "增加零件類別" #: src/tables/part/PartCategoryTemplateTable.tsx:38 #: src/tables/part/PartCategoryTemplateTable.tsx:131 msgid "Add Category Parameter" -msgstr "" +msgstr "添加類別參數" #: src/tables/part/PartCategoryTemplateTable.tsx:46 msgid "Edit Category Parameter" -msgstr "" +msgstr "編輯類別參數" #: src/tables/part/PartCategoryTemplateTable.tsx:54 msgid "Delete Category Parameter" -msgstr "" +msgstr "刪除類別參數" #: src/tables/part/PartCategoryTemplateTable.tsx:76 msgid "Parameter Template" -msgstr "" +msgstr "參數模板" #: src/tables/part/PartCategoryTemplateTable.tsx:93 #~ msgid "[{0}]" @@ -6504,373 +7667,373 @@ msgstr "" #: src/tables/part/PartParameterTable.tsx:97 msgid "Internal Units" -msgstr "" +msgstr "內部單位" #: src/tables/part/PartParameterTable.tsx:114 msgid "New Part Parameter" -msgstr "" +msgstr "新增零件參數" #: src/tables/part/PartParameterTable.tsx:139 #: src/tables/part/PartParameterTable.tsx:161 msgid "Delete Part Parameter" -msgstr "" +msgstr "刪除零件參數" #: src/tables/part/PartParameterTable.tsx:179 msgid "Add parameter" -msgstr "" +msgstr "添加參數" #: src/tables/part/PartParameterTable.tsx:198 msgid "Part parameters cannot be edited, as the part is locked" -msgstr "" - -#: src/tables/part/PartParameterTable.tsx:212 -#: src/tables/stock/StockItemTable.tsx:335 -msgid "Include Variants" -msgstr "" +msgstr "零件參數無法編輯,因為零件已鎖定" #: src/tables/part/PartParameterTemplateTable.tsx:31 msgid "Checkbox" -msgstr "" +msgstr "勾選框" #: src/tables/part/PartParameterTemplateTable.tsx:32 msgid "Show checkbox templates" -msgstr "" +msgstr "顯示覆選框模板" #: src/tables/part/PartParameterTemplateTable.tsx:36 msgid "Has choices" -msgstr "" +msgstr "有選項" #: src/tables/part/PartParameterTemplateTable.tsx:37 msgid "Show templates with choices" -msgstr "" +msgstr "顯示有選項的模板" #: src/tables/part/PartParameterTemplateTable.tsx:41 #: src/tables/part/PartTable.tsx:220 msgid "Has Units" -msgstr "" +msgstr "有單位" #: src/tables/part/PartParameterTemplateTable.tsx:42 msgid "Show templates with units" -msgstr "" +msgstr "顯示有單位的模板" #: src/tables/part/PartParameterTemplateTable.tsx:85 +#: src/tables/part/PartParameterTemplateTable.tsx:141 msgid "Add Parameter Template" -msgstr "" +msgstr "添加參數模板" #: src/tables/part/PartParameterTemplateTable.tsx:100 msgid "Edit Parameter Template" -msgstr "" +msgstr "編輯參數模板" #: src/tables/part/PartParameterTemplateTable.tsx:111 msgid "Delete Parameter Template" -msgstr "" +msgstr "刪除零件參數模板" #: src/tables/part/PartParameterTemplateTable.tsx:141 -msgid "Add parameter template" -msgstr "" +#~ msgid "Add parameter template" +#~ msgstr "Add parameter template" -#: src/tables/part/PartPurchaseOrdersTable.tsx:77 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:162 +#: src/tables/part/PartPurchaseOrdersTable.tsx:78 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:168 msgid "Total Quantity" -msgstr "" +msgstr "總數量" -#: src/tables/part/PartPurchaseOrdersTable.tsx:115 -msgid "Pending" -msgstr "" - -#: src/tables/part/PartPurchaseOrdersTable.tsx:116 +#: src/tables/part/PartPurchaseOrdersTable.tsx:122 msgid "Show pending orders" -msgstr "" +msgstr "顯示待定的訂單" -#: src/tables/part/PartPurchaseOrdersTable.tsx:121 +#: src/tables/part/PartPurchaseOrdersTable.tsx:127 msgid "Show received items" -msgstr "" +msgstr "顯示已收到的條目" #: src/tables/part/PartTable.tsx:77 msgid "Minimum stock" -msgstr "" +msgstr "最低庫存數" #: src/tables/part/PartTable.tsx:179 msgid "Filter by part active status" -msgstr "" +msgstr "按零件活動狀態篩選" #: src/tables/part/PartTable.tsx:185 msgid "Filter by part locked status" -msgstr "" +msgstr "按零件鎖定狀態篩選" #: src/tables/part/PartTable.tsx:191 msgid "Filter by assembly attribute" -msgstr "" +msgstr "按裝配屬性篩選" #: src/tables/part/PartTable.tsx:197 msgid "Include parts in subcategories" -msgstr "" +msgstr "包括子類別中的零件" #: src/tables/part/PartTable.tsx:203 msgid "Filter by component attribute" -msgstr "" +msgstr "按組件屬性篩選" #: src/tables/part/PartTable.tsx:209 msgid "Filter by testable attribute" -msgstr "" +msgstr "按可跟蹤屬性篩選" #: src/tables/part/PartTable.tsx:215 msgid "Filter by trackable attribute" -msgstr "" +msgstr "按可跟蹤屬性篩選" #: src/tables/part/PartTable.tsx:221 msgid "Filter by parts which have units" -msgstr "" +msgstr "按擁有單位的零件篩選" #: src/tables/part/PartTable.tsx:226 msgid "Has IPN" -msgstr "" +msgstr "有內部零件編碼" #: src/tables/part/PartTable.tsx:227 msgid "Filter by parts which have an internal part number" -msgstr "" +msgstr "按具有內部零件編號的零件篩選" #: src/tables/part/PartTable.tsx:232 msgid "Has Stock" -msgstr "" +msgstr "有庫存" #: src/tables/part/PartTable.tsx:233 msgid "Filter by parts which have stock" -msgstr "" +msgstr "按有庫存的零件篩選" #: src/tables/part/PartTable.tsx:239 msgid "Filter by parts which have low stock" -msgstr "" +msgstr "按庫存少的零件篩選" #: src/tables/part/PartTable.tsx:244 msgid "Purchaseable" -msgstr "" +msgstr "可購買" #: src/tables/part/PartTable.tsx:245 msgid "Filter by parts which are purchaseable" -msgstr "" +msgstr "按可購買的零件篩選" #: src/tables/part/PartTable.tsx:250 msgid "Salable" -msgstr "" +msgstr "可銷售" #: src/tables/part/PartTable.tsx:251 msgid "Filter by parts which are salable" -msgstr "" +msgstr "按可出售的零件篩選" #: src/tables/part/PartTable.tsx:256 #: src/tables/part/PartTable.tsx:260 #: src/tables/part/PartVariantTable.tsx:25 msgid "Virtual" -msgstr "" +msgstr "虛擬" #: src/tables/part/PartTable.tsx:257 msgid "Filter by parts which are virtual" -msgstr "" +msgstr "按虛擬零件篩選" #: src/tables/part/PartTable.tsx:261 msgid "Not Virtual" -msgstr "" +msgstr "非虛擬的" #: src/tables/part/PartTable.tsx:266 msgid "Is Template" -msgstr "" +msgstr "是模板" #: src/tables/part/PartTable.tsx:267 msgid "Filter by parts which are templates" -msgstr "" +msgstr "按模板部分篩選零件" #: src/tables/part/PartTable.tsx:272 msgid "Is Revision" -msgstr "" +msgstr "是否修訂" #: src/tables/part/PartTable.tsx:273 msgid "Filter by parts which are revisions" -msgstr "" +msgstr "按修訂零件篩選" #: src/tables/part/PartTable.tsx:277 msgid "Has Revisions" -msgstr "" +msgstr "有修訂" #: src/tables/part/PartTable.tsx:278 msgid "Filter by parts which have revisions" -msgstr "" +msgstr "按有修訂的零件篩選" #: src/tables/part/PartTable.tsx:283 msgid "Filter by parts which have pricing information" -msgstr "" +msgstr "按有定價信息的零件篩選" #: src/tables/part/PartTable.tsx:289 msgid "Filter by parts which have available stock" -msgstr "" +msgstr "按有可用庫存的零件篩選" #: src/tables/part/PartTable.tsx:295 msgid "Filter by parts to which the user is subscribed" -msgstr "" +msgstr "按用户訂閲的零件篩選" #: src/tables/part/PartTable.tsx:300 msgid "Has Stocktake" -msgstr "" +msgstr "有盤點" #: src/tables/part/PartTable.tsx:301 msgid "Filter by parts which have stocktake information" -msgstr "" +msgstr "按有盤點信息的零件篩選" #: src/tables/part/PartTestTemplateTable.tsx:50 msgid "Test is defined for a parent template part" -msgstr "" +msgstr "測試被定義為父模板部分" #: src/tables/part/PartTestTemplateTable.tsx:64 msgid "Template Details" -msgstr "" +msgstr "模版詳情" #: src/tables/part/PartTestTemplateTable.tsx:74 msgid "Results" -msgstr "" - -#: src/tables/part/PartTestTemplateTable.tsx:76 -msgid "No Results" -msgstr "" - -#: src/tables/part/PartTestTemplateTable.tsx:106 -#: src/tables/stock/StockItemTestResultTable.tsx:365 -msgid "Required" -msgstr "" +msgstr "結果" #: src/tables/part/PartTestTemplateTable.tsx:107 msgid "Show required tests" -msgstr "" +msgstr "顯示必選測試" #: src/tables/part/PartTestTemplateTable.tsx:111 -#: src/tables/settings/TemplateTable.tsx:167 -#: src/tables/settings/TemplateTable.tsx:283 +#: src/tables/settings/TemplateTable.tsx:247 +#: src/tables/settings/TemplateTable.tsx:363 msgid "Enabled" -msgstr "" +msgstr "已啓用" #: src/tables/part/PartTestTemplateTable.tsx:112 msgid "Show enabled tests" -msgstr "" +msgstr "顯示啓用測試" #: src/tables/part/PartTestTemplateTable.tsx:116 msgid "Requires Value" -msgstr "" +msgstr "需要值" #: src/tables/part/PartTestTemplateTable.tsx:117 msgid "Show tests that require a value" -msgstr "" +msgstr "顯示需要值的測試" #: src/tables/part/PartTestTemplateTable.tsx:121 msgid "Requires Attachment" -msgstr "" +msgstr "需要附件" #: src/tables/part/PartTestTemplateTable.tsx:122 msgid "Show tests that require an attachment" -msgstr "" +msgstr "顯示需要附件的測試" #: src/tables/part/PartTestTemplateTable.tsx:126 msgid "Include Inherited" -msgstr "" +msgstr "包含繼承的" #: src/tables/part/PartTestTemplateTable.tsx:127 msgid "Show tests from inherited templates" -msgstr "" +msgstr "顯示繼承模板的測試" #: src/tables/part/PartTestTemplateTable.tsx:131 msgid "Has Results" -msgstr "" +msgstr "有結果" #: src/tables/part/PartTestTemplateTable.tsx:132 msgid "Show tests which have recorded results" -msgstr "" +msgstr "顯示已記錄結果的測試" #: src/tables/part/PartTestTemplateTable.tsx:154 -#: src/tables/part/PartTestTemplateTable.tsx:237 +#: src/tables/part/PartTestTemplateTable.tsx:238 msgid "Add Test Template" -msgstr "" +msgstr "添加測試模板" #: src/tables/part/PartTestTemplateTable.tsx:170 msgid "Edit Test Template" -msgstr "" +msgstr "編輯測試模板" #: src/tables/part/PartTestTemplateTable.tsx:181 msgid "Delete Test Template" -msgstr "" +msgstr "刪除測試模板" #: src/tables/part/PartTestTemplateTable.tsx:183 msgid "This action cannot be reversed" -msgstr "" +msgstr "此操作無法撤銷。" #: src/tables/part/PartTestTemplateTable.tsx:185 msgid "Any tests results associated with this template will be deleted" -msgstr "" +msgstr "任何與此模板相關的測試結果將被刪除" #: src/tables/part/PartTestTemplateTable.tsx:204 msgid "View Parent Part" -msgstr "" +msgstr "查看父部分" -#: src/tables/part/PartTestTemplateTable.tsx:257 +#: src/tables/part/PartTestTemplateTable.tsx:258 msgid "Part templates cannot be edited, as the part is locked" -msgstr "" +msgstr "模板參數無法編輯,因為組件已鎖定" #: src/tables/part/PartThumbTable.tsx:201 msgid "Select" -msgstr "" +msgstr "選擇" #: src/tables/part/PartVariantTable.tsx:16 msgid "Show active variants" -msgstr "" +msgstr "顯示激活的變體" #: src/tables/part/PartVariantTable.tsx:20 msgid "Template" -msgstr "" +msgstr "模板" #: src/tables/part/PartVariantTable.tsx:21 msgid "Show template variants" -msgstr "" +msgstr "顯示模板變體" #: src/tables/part/PartVariantTable.tsx:26 msgid "Show virtual variants" -msgstr "" +msgstr "顯示虛擬變體" #: src/tables/part/PartVariantTable.tsx:31 msgid "Show trackable variants" -msgstr "" +msgstr "顯示可跟蹤變體" -#: src/tables/part/RelatedPartTable.tsx:84 +#: src/tables/part/RelatedPartTable.tsx:86 +#: src/tables/part/RelatedPartTable.tsx:109 msgid "Add Related Part" -msgstr "" +msgstr "添加關聯零件" -#: src/tables/part/RelatedPartTable.tsx:99 +#: src/tables/part/RelatedPartTable.tsx:101 msgid "Delete Related Part" -msgstr "" +msgstr "刪除關聯零件" -#: src/tables/part/RelatedPartTable.tsx:106 -msgid "Add related part" -msgstr "" +#: src/tables/part/RelatedPartTable.tsx:109 +#~ msgid "Add related part" +#~ msgstr "Add related part" #: src/tables/plugin/PluginErrorTable.tsx:29 msgid "Stage" -msgstr "" +msgstr "階段" + +#: src/tables/plugin/PluginListTable.tsx:42 +msgid "Plugin is active" +msgstr "此插件已激活" + +#: src/tables/plugin/PluginListTable.tsx:48 +msgid "Plugin is inactive" +msgstr "插件未激活" + +#: src/tables/plugin/PluginListTable.tsx:55 +msgid "Plugin is not installed" +msgstr "插件未安裝" + +#: src/tables/plugin/PluginListTable.tsx:76 +msgid "Plugin" +msgstr "插件" #: src/tables/plugin/PluginListTable.tsx:95 -msgid "Plugin with key {pluginKey} not found" -msgstr "" +#~ msgid "Plugin with key {pluginKey} not found" +#~ msgstr "Plugin with key {pluginKey} not found" #: src/tables/plugin/PluginListTable.tsx:97 -msgid "An error occurred while fetching plugin details" -msgstr "" +#~ msgid "An error occurred while fetching plugin details" +#~ msgstr "An error occurred while fetching plugin details" + +#: src/tables/plugin/PluginListTable.tsx:109 +msgid "Description not available" +msgstr "描述不可用." #: src/tables/plugin/PluginListTable.tsx:113 #~ msgid "Plugin with id {id} not found" #~ msgstr "Plugin with id {id} not found" #: src/tables/plugin/PluginListTable.tsx:122 -msgid "Plugin information" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:134 -msgid "Author" -msgstr "" +#~ msgid "Plugin information" +#~ msgstr "Plugin information" #: src/tables/plugin/PluginListTable.tsx:134 #~ msgid "Plugin Actions" @@ -6881,79 +8044,124 @@ msgstr "" #~ msgid "Edit plugin" #~ msgstr "Edit plugin" +#: src/tables/plugin/PluginListTable.tsx:144 +msgid "Confirm plugin activation" +msgstr "確認插件激活" + +#: src/tables/plugin/PluginListTable.tsx:145 +msgid "Confirm plugin deactivation" +msgstr "確認插件停用" + +#: src/tables/plugin/PluginListTable.tsx:150 +msgid "The selected plugin will be activated" +msgstr "所選插件將被激活" + +#: src/tables/plugin/PluginListTable.tsx:151 +msgid "The selected plugin will be deactivated" +msgstr "所選插件將被停用" + #: src/tables/plugin/PluginListTable.tsx:152 #: src/tables/plugin/PluginListTable.tsx:153 #~ msgid "Reload" #~ msgstr "Reload" -#: src/tables/plugin/PluginListTable.tsx:154 -msgid "Plugin is not active" -msgstr "" - #: src/tables/plugin/PluginListTable.tsx:163 -msgid "Package information" -msgstr "" +#~ msgid "Package information" +#~ msgstr "Package information" #: src/tables/plugin/PluginListTable.tsx:169 -msgid "Package Name" -msgstr "" +msgid "Deactivate" +msgstr "停用" -#: src/tables/plugin/PluginListTable.tsx:175 -msgid "Installation Path" -msgstr "" +#: src/tables/plugin/PluginListTable.tsx:183 +msgid "Activate" +msgstr "激活" -#: src/tables/plugin/PluginListTable.tsx:185 -msgid "Package" -msgstr "" +#: src/tables/plugin/PluginListTable.tsx:184 +msgid "Activate selected plugin" +msgstr "激活所選插件" + +#: src/tables/plugin/PluginListTable.tsx:196 +msgid "Update selected plugin" +msgstr "更新所選插件" #: src/tables/plugin/PluginListTable.tsx:197 -msgid "Plugin settings" -msgstr "" +#~ msgid "Plugin settings" +#~ msgstr "Plugin settings" #: src/tables/plugin/PluginListTable.tsx:214 -msgid "Plugin is active" -msgstr "" +#: src/tables/stock/InstalledItemsTable.tsx:107 +msgid "Uninstall" +msgstr "卸載" -#: src/tables/plugin/PluginListTable.tsx:220 -msgid "Plugin is inactive" -msgstr "" +#: src/tables/plugin/PluginListTable.tsx:215 +msgid "Uninstall selected plugin" +msgstr "卸載所選插件" -#: src/tables/plugin/PluginListTable.tsx:227 -msgid "Plugin is not installed" -msgstr "" +#: src/tables/plugin/PluginListTable.tsx:233 +msgid "Delete selected plugin configuration" +msgstr "刪除選中的插件配置" -#: src/tables/plugin/PluginListTable.tsx:253 -msgid "Plugin" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:287 -msgid "Description not available" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:319 -msgid "Confirm plugin activation" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:320 -msgid "Confirm plugin deactivation" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:325 -msgid "The selected plugin will be activated" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:326 -msgid "The selected plugin will be deactivated" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:334 +#: src/tables/plugin/PluginListTable.tsx:249 msgid "Activate Plugin" -msgstr "" +msgstr "激活插件" + +#: src/tables/plugin/PluginListTable.tsx:270 +msgid "Install plugin" +msgstr "安裝插件" + +#: src/tables/plugin/PluginListTable.tsx:283 +msgid "Install" +msgstr "安裝" + +#: src/tables/plugin/PluginListTable.tsx:284 +msgid "Plugin installed successfully" +msgstr "插件安裝成功" + +#: src/tables/plugin/PluginListTable.tsx:289 +msgid "Uninstall Plugin" +msgstr "卸載插件" + +#: src/tables/plugin/PluginListTable.tsx:301 +msgid "Confirm plugin uninstall" +msgstr "確認插件卸載" + +#: src/tables/plugin/PluginListTable.tsx:304 +msgid "The selected plugin will be uninstalled." +msgstr "所選插件將被卸載。" + +#: src/tables/plugin/PluginListTable.tsx:308 +#~ msgid "This action cannot be undone." +#~ msgstr "This action cannot be undone." + +#: src/tables/plugin/PluginListTable.tsx:309 +msgid "Plugin uninstalled successfully" +msgstr "插件卸載成功" + +#: src/tables/plugin/PluginListTable.tsx:317 +msgid "Delete Plugin" +msgstr "刪除插件" + +#: src/tables/plugin/PluginListTable.tsx:318 +msgid "Deleting this plugin configuration will remove all associated settings and data. Are you sure you want to delete this plugin?" +msgstr "刪除此插件配置將刪除所有相關的設置和數據。您確定要刪除此插件嗎?" + +#: src/tables/plugin/PluginListTable.tsx:331 +msgid "Plugins reloaded" +msgstr "插件已重載" + +#: src/tables/plugin/PluginListTable.tsx:332 +msgid "Plugins were reloaded successfully" +msgstr "插件重載成功" #: src/tables/plugin/PluginListTable.tsx:338 #~ msgid "Deactivate Plugin" #~ msgstr "Deactivate Plugin" +#: src/tables/plugin/PluginListTable.tsx:350 +msgid "Reload Plugins" +msgstr "重載插件" + #: src/tables/plugin/PluginListTable.tsx:354 #~ msgid "The following plugin will be activated" #~ msgstr "The following plugin will be activated" @@ -6962,17 +8170,17 @@ msgstr "" #~ msgid "The following plugin will be deactivated" #~ msgstr "The following plugin will be deactivated" -#: src/tables/plugin/PluginListTable.tsx:362 -msgid "Deactivate" -msgstr "" +#: src/tables/plugin/PluginListTable.tsx:357 +msgid "Install Plugin" +msgstr "安裝插件" #: src/tables/plugin/PluginListTable.tsx:366 #~ msgid "Confirm" #~ msgstr "Confirm" -#: src/tables/plugin/PluginListTable.tsx:373 -msgid "Activate" -msgstr "" +#: src/tables/plugin/PluginListTable.tsx:374 +msgid "Plugin Detail" +msgstr "插件詳情" #: src/tables/plugin/PluginListTable.tsx:376 #~ msgid "Activating plugin" @@ -6998,78 +8206,14 @@ msgstr "" #~ msgid "Error updating plugin" #~ msgstr "Error updating plugin" -#: src/tables/plugin/PluginListTable.tsx:406 -msgid "Uninstall" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:438 -msgid "Install plugin" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:451 -msgid "Install" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:452 -msgid "Plugin installed successfully" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:457 -msgid "Uninstall Plugin" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:469 -msgid "Confirm plugin uninstall" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:472 -msgid "The selected plugin will be uninstalled." -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:473 -msgid "This action cannot be undone." -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:477 -msgid "Plugin uninstalled successfully" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:484 -msgid "Delete Plugin" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:485 -msgid "Deleting this plugin configuration will remove all associated settings and data. Are you sure you want to delete this plugin?" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:498 -msgid "Plugins reloaded" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:499 -msgid "Plugins were reloaded successfully" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:515 -msgid "Reload Plugins" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:524 -msgid "Install Plugin" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:544 -msgid "Plugin Detail" -msgstr "" - -#: src/tables/plugin/PluginListTable.tsx:573 +#: src/tables/plugin/PluginListTable.tsx:411 msgid "Sample" -msgstr "" +msgstr "樣本" -#: src/tables/plugin/PluginListTable.tsx:578 -#: src/tables/stock/StockItemTable.tsx:340 +#: src/tables/plugin/PluginListTable.tsx:416 +#: src/tables/stock/StockItemTable.tsx:344 msgid "Installed" -msgstr "" +msgstr "已安裝" #: src/tables/plugin/PluginListTable.tsx:615 #~ msgid "Plugin detail" @@ -7078,7 +8222,7 @@ msgstr "" #: src/tables/purchasing/ManufacturerPartParameterTable.tsx:59 #: src/tables/purchasing/ManufacturerPartParameterTable.tsx:108 msgid "Add Parameter" -msgstr "" +msgstr "添加參數" #: src/tables/purchasing/ManufacturerPartParameterTable.tsx:60 #~ msgid "Parameter updated" @@ -7086,7 +8230,7 @@ msgstr "" #: src/tables/purchasing/ManufacturerPartParameterTable.tsx:70 msgid "Edit Parameter" -msgstr "" +msgstr "編輯參數" #: src/tables/purchasing/ManufacturerPartParameterTable.tsx:73 #~ msgid "Parameter deleted" @@ -7098,7 +8242,7 @@ msgstr "" #: src/tables/purchasing/ManufacturerPartParameterTable.tsx:78 msgid "Delete Parameter" -msgstr "" +msgstr "刪除參數" #: src/tables/purchasing/ManufacturerPartTable.tsx:63 #~ msgid "Create Manufacturer Part" @@ -7116,84 +8260,80 @@ msgstr "" #~ msgid "Are you sure you want to remove this manufacturer part?" #~ msgstr "Are you sure you want to remove this manufacturer part?" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:102 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:339 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:103 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:356 msgid "Import Line Items" -msgstr "" +msgstr "導入行項目" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:135 -msgid "Part Description" -msgstr "" - -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:201 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:207 msgid "Supplier Code" -msgstr "" +msgstr "供應商代碼" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:208 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:214 msgid "Supplier Link" -msgstr "" +msgstr "供應商鏈接" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:215 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:220 msgid "Manufacturer Code" +msgstr "製造商編號" + +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:248 +msgid "Show line items which have been received" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:229 -msgid "Destination" -msgstr "" - -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:300 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:316 msgid "Receive line item" -msgstr "" +msgstr "接收這行項目" #: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:344 -#: src/tables/sales/ReturnOrderLineItemTable.tsx:142 -#: src/tables/sales/SalesOrderLineItemTable.tsx:240 -msgid "Add line item" -msgstr "" +#: src/tables/sales/ReturnOrderLineItemTable.tsx:160 +#: src/tables/sales/SalesOrderLineItemTable.tsx:258 +#~ msgid "Add line item" +#~ msgstr "Add line item" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:354 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:373 msgid "Receive items" -msgstr "" +msgstr "收到項目" -#: src/tables/purchasing/SupplierPartTable.tsx:93 +#: src/tables/purchasing/SupplierPartTable.tsx:95 msgid "MPN" -msgstr "" +msgstr "製造商零件編號 (MPN)" -#: src/tables/purchasing/SupplierPartTable.tsx:122 +#: src/tables/purchasing/SupplierPartTable.tsx:124 msgid "Base units" -msgstr "" +msgstr "基礎單位" -#: src/tables/purchasing/SupplierPartTable.tsx:170 +#: src/tables/purchasing/SupplierPartTable.tsx:172 msgid "Supplier part created" -msgstr "" +msgstr "供應商零件已更新" -#: src/tables/purchasing/SupplierPartTable.tsx:176 +#: src/tables/purchasing/SupplierPartTable.tsx:179 msgid "Add supplier part" -msgstr "" +msgstr "添加供應商零件" -#: src/tables/purchasing/SupplierPartTable.tsx:188 +#: src/tables/purchasing/SupplierPartTable.tsx:191 msgid "Show active supplier parts" -msgstr "" - -#: src/tables/purchasing/SupplierPartTable.tsx:192 -msgid "Active Part" -msgstr "" - -#: src/tables/purchasing/SupplierPartTable.tsx:193 -msgid "Show active internal parts" -msgstr "" +msgstr "顯示活動供應商零件" #: src/tables/purchasing/SupplierPartTable.tsx:193 #~ msgid "Supplier part updated" #~ msgstr "Supplier part updated" -#: src/tables/purchasing/SupplierPartTable.tsx:197 -msgid "Active Supplier" -msgstr "" +#: src/tables/purchasing/SupplierPartTable.tsx:195 +msgid "Active Part" +msgstr "激活的零件" -#: src/tables/purchasing/SupplierPartTable.tsx:198 +#: src/tables/purchasing/SupplierPartTable.tsx:196 +msgid "Show active internal parts" +msgstr "顯示活動內部零件" + +#: src/tables/purchasing/SupplierPartTable.tsx:200 +msgid "Active Supplier" +msgstr "活躍的供應商" + +#: src/tables/purchasing/SupplierPartTable.tsx:201 msgid "Show active suppliers" -msgstr "" +msgstr "顯示活躍供應商" #: src/tables/purchasing/SupplierPartTable.tsx:205 #~ msgid "Supplier part deleted" @@ -7203,271 +8343,367 @@ msgstr "" #~ msgid "Are you sure you want to remove this supplier part?" #~ msgstr "Are you sure you want to remove this supplier part?" -#: src/tables/sales/ReturnOrderLineItemTable.tsx:114 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:139 msgid "Received Date" -msgstr "" +msgstr "接收日期" -#: src/tables/sales/ReturnOrderLineItemTable.tsx:128 +#: src/tables/sales/ReturnOrderLineItemTable.tsx:153 msgid "Show items which have been received" -msgstr "" - -#: src/tables/sales/ReturnOrderLineItemTable.tsx:133 -msgid "Filter by line item status" -msgstr "" +msgstr "顯示已收到的項目" #: src/tables/sales/ReturnOrderLineItemTable.tsx:158 +msgid "Filter by line item status" +msgstr "按行項目狀態篩選" + +#: src/tables/sales/ReturnOrderLineItemTable.tsx:176 +msgid "Receive selected items" +msgstr "接收選中項目" + +#: src/tables/sales/ReturnOrderLineItemTable.tsx:205 msgid "Receive Item" +msgstr "接收物品" + +#: src/tables/sales/SalesOrderAllocationTable.tsx:60 +msgid "Show outstanding allocations" msgstr "" -#: src/tables/sales/SalesOrderLineItemTable.tsx:262 -msgid "Allocate stock" +#: src/tables/sales/SalesOrderAllocationTable.tsx:168 +#: src/tables/sales/SalesOrderAllocationTable.tsx:190 +msgid "Edit Allocation" msgstr "" -#: src/tables/sales/SalesOrderLineItemTable.tsx:272 +#: src/tables/sales/SalesOrderAllocationTable.tsx:175 +#: src/tables/sales/SalesOrderAllocationTable.tsx:197 +msgid "Delete Allocation" +msgstr "" + +#: src/tables/sales/SalesOrderLineItemTable.tsx:244 +msgid "Allocate Serial Numbers" +msgstr "分配序列號" + +#: src/tables/sales/SalesOrderLineItemTable.tsx:277 +msgid "Show lines which are fully allocated" +msgstr "" + +#: src/tables/sales/SalesOrderLineItemTable.tsx:280 +#~ msgid "Allocate stock" +#~ msgstr "Allocate stock" + +#: src/tables/sales/SalesOrderLineItemTable.tsx:282 +msgid "Show lines which are completed" +msgstr "" + +#: src/tables/sales/SalesOrderLineItemTable.tsx:291 +#~ msgid "Allocate Serials" +#~ msgstr "Allocate Serials" + +#: src/tables/sales/SalesOrderLineItemTable.tsx:340 +msgid "Allocate serials" +msgstr "" + +#: src/tables/sales/SalesOrderLineItemTable.tsx:356 msgid "Build stock" -msgstr "" +msgstr "生產庫存" -#: src/tables/sales/SalesOrderLineItemTable.tsx:289 -#: src/tables/stock/StockItemTable.tsx:507 +#: src/tables/sales/SalesOrderLineItemTable.tsx:373 +#: src/tables/stock/StockItemTable.tsx:512 msgid "Order stock" -msgstr "" +msgstr "訂單庫存" -#: src/tables/sales/SalesOrderShipmentTable.tsx:40 +#: src/tables/sales/SalesOrderShipmentTable.tsx:51 +#~ msgid "Delete Shipment" +#~ msgstr "Delete Shipment" + +#: src/tables/sales/SalesOrderShipmentTable.tsx:57 msgid "Create Shipment" -msgstr "" +msgstr "創建配送" -#: src/tables/sales/SalesOrderShipmentTable.tsx:50 -msgid "Delete Shipment" -msgstr "" - -#: src/tables/sales/SalesOrderShipmentTable.tsx:58 -msgid "Edit Shipment" -msgstr "" - -#: src/tables/sales/SalesOrderShipmentTable.tsx:66 -msgid "Shipment Reference" -msgstr "" - -#: src/tables/sales/SalesOrderShipmentTable.tsx:71 +#: src/tables/sales/SalesOrderShipmentTable.tsx:104 msgid "Items" +msgstr "項目" + +#: src/tables/sales/SalesOrderShipmentTable.tsx:139 +msgid "View Shipment" msgstr "" -#: src/tables/sales/SalesOrderShipmentTable.tsx:83 -msgid "Delivery Date" +#: src/tables/sales/SalesOrderShipmentTable.tsx:161 +msgid "Edit shipment" msgstr "" -#: src/tables/sales/SalesOrderShipmentTable.tsx:107 -msgid "Complete Shipment" +#: src/tables/sales/SalesOrderShipmentTable.tsx:169 +msgid "Cancel shipment" msgstr "" -#: src/tables/sales/SalesOrderShipmentTable.tsx:133 +#: src/tables/sales/SalesOrderShipmentTable.tsx:184 msgid "Add shipment" -msgstr "" +msgstr "添加配送" -#: src/tables/sales/SalesOrderShipmentTable.tsx:146 -msgid "Shipped" -msgstr "" - -#: src/tables/sales/SalesOrderShipmentTable.tsx:147 +#: src/tables/sales/SalesOrderShipmentTable.tsx:198 msgid "Show shipments which have been shipped" -msgstr "" +msgstr "顯示已發貨的貨物" -#: src/tables/sales/SalesOrderShipmentTable.tsx:151 -msgid "Delivered" -msgstr "" - -#: src/tables/sales/SalesOrderShipmentTable.tsx:152 +#: src/tables/sales/SalesOrderShipmentTable.tsx:203 msgid "Show shipments which have been delivered" -msgstr "" +msgstr "顯示已送達的貨物" -#: src/tables/settings/CurrencyTable.tsx:28 -msgid "Rate" -msgstr "" +#: src/tables/settings/BarcodeScanHistoryTable.tsx:61 +msgid "Barcode Information" +msgstr "條碼信息" -#: src/tables/settings/CurrencyTable.tsx:40 -msgid "Exchange rates updated" -msgstr "" +#: src/tables/settings/BarcodeScanHistoryTable.tsx:76 +#: src/tables/settings/ErrorTable.tsx:59 +msgid "Timestamp" +msgstr "時間戳" -#: src/tables/settings/CurrencyTable.tsx:46 -msgid "Exchange rate update error" -msgstr "" +#: src/tables/settings/BarcodeScanHistoryTable.tsx:86 +msgid "Endpoint" +msgstr "端點" -#: src/tables/settings/CurrencyTable.tsx:57 -msgid "Refresh currency exchange rates" -msgstr "" +#: src/tables/settings/BarcodeScanHistoryTable.tsx:90 +#: src/tables/settings/BarcodeScanHistoryTable.tsx:217 +#: src/tables/stock/StockItemTestResultTable.tsx:174 +msgid "Result" +msgstr "結果" + +#: src/tables/settings/BarcodeScanHistoryTable.tsx:98 +msgid "Context" +msgstr "內容" + +#: src/tables/settings/BarcodeScanHistoryTable.tsx:119 +msgid "Response" +msgstr "響應" + +#: src/tables/settings/BarcodeScanHistoryTable.tsx:213 +#: src/tables/settings/ImportSessionTable.tsx:121 +#: src/tables/stock/StockTrackingTable.tsx:183 +msgid "Filter by user" +msgstr "按用户篩選" + +#: src/tables/settings/BarcodeScanHistoryTable.tsx:218 +msgid "Filter by result" +msgstr "按結果過濾" + +#: src/tables/settings/BarcodeScanHistoryTable.tsx:232 +msgid "Delete Barcode Scan Record" +msgstr "刪除條碼掃描記錄" + +#: src/tables/settings/BarcodeScanHistoryTable.tsx:258 +msgid "Barcode Scan Details" +msgstr "條碼掃描詳情" + +#: src/tables/settings/BarcodeScanHistoryTable.tsx:268 +msgid "Logging Disabled" +msgstr "日誌已禁用" + +#: src/tables/settings/BarcodeScanHistoryTable.tsx:270 +msgid "Barcode logging is not enabled" +msgstr "條碼日誌未啓用" + +#: src/tables/settings/CustomStateTable.tsx:36 +msgid "Display Name" +msgstr "顯示名稱" + +#: src/tables/settings/CustomStateTable.tsx:52 +msgid "Model" +msgstr "型號" + +#: src/tables/settings/CustomStateTable.tsx:65 +#: src/tables/settings/CustomStateTable.tsx:115 +msgid "Add State" +msgstr "添加狀態" + +#: src/tables/settings/CustomStateTable.tsx:77 +msgid "Edit State" +msgstr "編輯狀態" + +#: src/tables/settings/CustomStateTable.tsx:85 +msgid "Delete State" +msgstr "刪除狀態" + +#: src/tables/settings/CustomStateTable.tsx:115 +#~ msgid "Add state" +#~ msgstr "Add state" #: src/tables/settings/CustomUnitsTable.tsx:50 msgid "Add Custom Unit" -msgstr "" +msgstr "添加自定義單位" #: src/tables/settings/CustomUnitsTable.tsx:60 msgid "Edit Custom Unit" -msgstr "" +msgstr "編輯自定義單位" #: src/tables/settings/CustomUnitsTable.tsx:68 msgid "Delete Custom Unit" -msgstr "" +msgstr "刪除自定義單位" #: src/tables/settings/CustomUnitsTable.tsx:100 msgid "Add custom unit" -msgstr "" - -#: src/tables/settings/ErrorTable.tsx:31 -msgid "When" -msgstr "" - -#: src/tables/settings/ErrorTable.tsx:41 -msgid "Error Information" -msgstr "" +msgstr "添加自定義單位" #: src/tables/settings/ErrorTable.tsx:51 #~ msgid "Delete error report" #~ msgstr "Delete error report" -#: src/tables/settings/ErrorTable.tsx:53 +#: src/tables/settings/ErrorTable.tsx:67 +msgid "Traceback" +msgstr "Traceback" + +#: src/tables/settings/ErrorTable.tsx:103 +msgid "When" +msgstr "當" + +#: src/tables/settings/ErrorTable.tsx:113 +msgid "Error Information" +msgstr "錯誤信息" + +#: src/tables/settings/ErrorTable.tsx:123 msgid "Delete Error Report" -msgstr "" +msgstr "刪除錯誤日誌" -#: src/tables/settings/ErrorTable.tsx:55 +#: src/tables/settings/ErrorTable.tsx:125 msgid "Are you sure you want to delete this error report?" -msgstr "" +msgstr "確定要刪除這錯誤告嗎?" -#: src/tables/settings/ErrorTable.tsx:57 +#: src/tables/settings/ErrorTable.tsx:127 msgid "Error report deleted" -msgstr "" +msgstr "錯誤報告已刪除" -#: src/tables/settings/ErrorTable.tsx:79 -#: src/tables/settings/FailedTasksTable.tsx:59 +#: src/tables/settings/ErrorTable.tsx:146 +#: src/tables/settings/FailedTasksTable.tsx:65 msgid "Error Details" -msgstr "" - -#: src/tables/settings/FailedTasksTable.tsx:26 -#: src/tables/settings/PendingTasksTable.tsx:19 -#: src/tables/settings/ScheduledTasksTable.tsx:19 -msgid "Task" -msgstr "" +msgstr "錯誤詳情" #: src/tables/settings/FailedTasksTable.tsx:32 -#: src/tables/settings/PendingTasksTable.tsx:24 -msgid "Task ID" -msgstr "" +#: src/tables/settings/PendingTasksTable.tsx:23 +#: src/tables/settings/ScheduledTasksTable.tsx:19 +msgid "Task" +msgstr "任務" -#: src/tables/settings/FailedTasksTable.tsx:36 -#: src/tables/stock/StockItemTestResultTable.tsx:211 -msgid "Started" -msgstr "" +#: src/tables/settings/FailedTasksTable.tsx:38 +#: src/tables/settings/PendingTasksTable.tsx:28 +msgid "Task ID" +msgstr "任務ID" #: src/tables/settings/FailedTasksTable.tsx:42 -msgid "Stopped" -msgstr "" +#: src/tables/stock/StockItemTestResultTable.tsx:218 +msgid "Started" +msgstr "已開始" #: src/tables/settings/FailedTasksTable.tsx:48 +msgid "Stopped" +msgstr "已停止" + +#: src/tables/settings/FailedTasksTable.tsx:54 msgid "Attempts" +msgstr "嘗試次數" + +#: src/tables/settings/FailedTasksTable.tsx:92 +msgid "No Information" +msgstr "" + +#: src/tables/settings/FailedTasksTable.tsx:93 +msgid "No error details are available for this task" msgstr "" #: src/tables/settings/GroupTable.tsx:90 msgid "Group with id {id} not found" -msgstr "" +msgstr "未找到 ID 為 {id} 的羣組" #: src/tables/settings/GroupTable.tsx:92 msgid "An error occurred while fetching group details" -msgstr "" +msgstr "獲取羣組詳細信息時出錯" #: src/tables/settings/GroupTable.tsx:116 msgid "Permission set" -msgstr "" +msgstr "權限設置" #: src/tables/settings/GroupTable.tsx:177 msgid "Delete group" -msgstr "" +msgstr "刪除羣組" #: src/tables/settings/GroupTable.tsx:178 msgid "Group deleted" -msgstr "" +msgstr "羣組已刪除" #: src/tables/settings/GroupTable.tsx:180 msgid "Are you sure you want to delete this group?" -msgstr "" +msgstr "確定要刪除這個羣組嗎?" #: src/tables/settings/GroupTable.tsx:185 #: src/tables/settings/GroupTable.tsx:197 msgid "Add group" -msgstr "" +msgstr "添加羣組" #: src/tables/settings/GroupTable.tsx:210 msgid "Edit group" -msgstr "" +msgstr "編輯羣組" -#: src/tables/settings/ImportSessionTable.tsx:38 +#: src/tables/settings/ImportSessionTable.tsx:37 msgid "Delete Import Session" -msgstr "" +msgstr "刪除導入的會話" -#: src/tables/settings/ImportSessionTable.tsx:44 +#: src/tables/settings/ImportSessionTable.tsx:43 #: src/tables/settings/ImportSessionTable.tsx:131 msgid "Create Import Session" -msgstr "" +msgstr "創建導入會話" -#: src/tables/settings/ImportSessionTable.tsx:69 +#: src/tables/settings/ImportSessionTable.tsx:68 msgid "Uploaded" -msgstr "" +msgstr "已上傳" -#: src/tables/settings/ImportSessionTable.tsx:79 -msgid "Imported Rows" -msgstr "" +#: src/tables/settings/ImportSessionTable.tsx:108 +#: src/tables/settings/TemplateTable.tsx:369 +msgid "Model Type" +msgstr "型號類型" #: src/tables/settings/ImportSessionTable.tsx:109 -#: src/tables/settings/TemplateTable.tsx:289 -msgid "Model Type" -msgstr "" - -#: src/tables/settings/ImportSessionTable.tsx:110 -#: src/tables/settings/TemplateTable.tsx:290 +#: src/tables/settings/TemplateTable.tsx:370 msgid "Filter by target model type" -msgstr "" +msgstr "按目標型號篩選" -#: src/tables/settings/ImportSessionTable.tsx:116 +#: src/tables/settings/ImportSessionTable.tsx:115 msgid "Filter by import session status" -msgstr "" +msgstr "按導入會話狀態篩選" -#: src/tables/settings/ImportSessionTable.tsx:122 -msgid "Filter by user" -msgstr "" - -#: src/tables/settings/PendingTasksTable.tsx:38 +#: src/tables/settings/PendingTasksTable.tsx:42 msgid "Arguments" -msgstr "" +msgstr "參數" #: src/tables/settings/ProjectCodeTable.tsx:42 msgid "Add Project Code" -msgstr "" +msgstr "添加項目編碼" #: src/tables/settings/ProjectCodeTable.tsx:54 msgid "Edit Project Code" -msgstr "" +msgstr "編輯項目編碼" #: src/tables/settings/ProjectCodeTable.tsx:62 msgid "Delete Project Code" -msgstr "" +msgstr "刪除項目編碼" #: src/tables/settings/ProjectCodeTable.tsx:92 msgid "Add project code" -msgstr "" +msgstr "編輯項目編碼" #: src/tables/settings/ScheduledTasksTable.tsx:25 msgid "Last Run" -msgstr "" +msgstr "上一次運行" #: src/tables/settings/ScheduledTasksTable.tsx:47 msgid "Next Run" -msgstr "" +msgstr "下一次運行" -#: src/tables/settings/TemplateTable.tsx:85 -msgid "Template not found" -msgstr "" +#: src/tables/settings/StocktakeReportTable.tsx:28 +msgid "Report" +msgstr "報告" -#: src/tables/settings/TemplateTable.tsx:87 -msgid "An error occurred while fetching template details" -msgstr "" +#: src/tables/settings/StocktakeReportTable.tsx:35 +msgid "Part Count" +msgstr "零件計數" + +#: src/tables/settings/StocktakeReportTable.tsx:58 +msgid "Delete Report" +msgstr "刪除報告" #: src/tables/settings/TemplateTable.tsx:120 #~ msgid "{templateTypeTranslation} with id {id} not found" @@ -7481,22 +8717,13 @@ msgstr "" #~ msgid "actions" #~ msgstr "actions" -#: src/tables/settings/TemplateTable.tsx:177 -msgid "Modify" -msgstr "" +#: src/tables/settings/TemplateTable.tsx:162 +msgid "Template not found" +msgstr "找不到模板" -#: src/tables/settings/TemplateTable.tsx:178 -msgid "Modify template file" -msgstr "" - -#: src/tables/settings/TemplateTable.tsx:234 -#: src/tables/settings/TemplateTable.tsx:302 -msgid "Edit Template" -msgstr "" - -#: src/tables/settings/TemplateTable.tsx:242 -msgid "Delete template" -msgstr "" +#: src/tables/settings/TemplateTable.tsx:164 +msgid "An error occurred while fetching template details" +msgstr "獲取插件詳細信息時出錯" #: src/tables/settings/TemplateTable.tsx:243 #~ msgid "Add new" @@ -7506,392 +8733,422 @@ msgstr "" #~ msgid "Create new" #~ msgstr "Create new" -#: src/tables/settings/TemplateTable.tsx:248 +#: src/tables/settings/TemplateTable.tsx:257 +msgid "Modify" +msgstr "修改" + +#: src/tables/settings/TemplateTable.tsx:258 +msgid "Modify template file" +msgstr "報告模板文件" + +#: src/tables/settings/TemplateTable.tsx:314 +#: src/tables/settings/TemplateTable.tsx:382 +msgid "Edit Template" +msgstr "編輯模板" + +#: src/tables/settings/TemplateTable.tsx:322 +msgid "Delete template" +msgstr "刪除模板" + +#: src/tables/settings/TemplateTable.tsx:328 msgid "Add Template" -msgstr "" +msgstr "添加模板" -#: src/tables/settings/TemplateTable.tsx:261 +#: src/tables/settings/TemplateTable.tsx:341 msgid "Add template" -msgstr "" +msgstr "添加模板" -#: src/tables/settings/TemplateTable.tsx:284 +#: src/tables/settings/TemplateTable.tsx:364 msgid "Filter by enabled status" -msgstr "" +msgstr "按啓用狀態篩選" -#: src/tables/settings/UserTable.tsx:82 +#: src/tables/settings/UserTable.tsx:81 msgid "User with id {id} not found" -msgstr "" +msgstr "未找到 ID 為 {id} 的用户" -#: src/tables/settings/UserTable.tsx:84 +#: src/tables/settings/UserTable.tsx:83 msgid "An error occurred while fetching user details" -msgstr "" +msgstr "獲取用户詳細信息時出錯" + +#: src/tables/settings/UserTable.tsx:101 +msgid "Is Active" +msgstr "激活" #: src/tables/settings/UserTable.tsx:102 -msgid "Is Active" -msgstr "" - -#: src/tables/settings/UserTable.tsx:103 msgid "Designates whether this user should be treated as active. Unselect this instead of deleting accounts." -msgstr "" +msgstr "指定是否將此用户視為激活用户。取消選擇此選項將不會刪除賬户。" + +#: src/tables/settings/UserTable.tsx:106 +msgid "Is Staff" +msgstr "員工" #: src/tables/settings/UserTable.tsx:107 -msgid "Is Staff" -msgstr "" - -#: src/tables/settings/UserTable.tsx:108 msgid "Designates whether the user can log into the django admin site." -msgstr "" +msgstr "指定用户是否可以登錄 django 管理頁面。" + +#: src/tables/settings/UserTable.tsx:111 +msgid "Is Superuser" +msgstr "超級用户" #: src/tables/settings/UserTable.tsx:112 -msgid "Is Superuser" -msgstr "" - -#: src/tables/settings/UserTable.tsx:113 msgid "Designates that this user has all permissions without explicitly assigning them." -msgstr "" +msgstr "指定該用户擁有所有權限,而無需明確分配。" -#: src/tables/settings/UserTable.tsx:123 +#: src/tables/settings/UserTable.tsx:122 msgid "You cannot edit the rights for the currently logged-in user." -msgstr "" +msgstr "您不能編輯當前登錄用户的權限。" -#: src/tables/settings/UserTable.tsx:154 +#: src/tables/settings/UserTable.tsx:153 msgid "No groups" -msgstr "" +msgstr "沒有羣組" + +#: src/tables/settings/UserTable.tsx:244 +msgid "Delete user" +msgstr "刪除用户" #: src/tables/settings/UserTable.tsx:245 -msgid "Delete user" -msgstr "" - -#: src/tables/settings/UserTable.tsx:246 msgid "User deleted" -msgstr "" +msgstr "用户已刪除" -#: src/tables/settings/UserTable.tsx:248 +#: src/tables/settings/UserTable.tsx:247 msgid "Are you sure you want to delete this user?" -msgstr "" +msgstr "您確定要刪除該用户嗎?" -#: src/tables/settings/UserTable.tsx:254 -#: src/tables/settings/UserTable.tsx:272 +#: src/tables/settings/UserTable.tsx:253 +#: src/tables/settings/UserTable.tsx:271 msgid "Add user" -msgstr "" +msgstr "添加用户" -#: src/tables/settings/UserTable.tsx:262 +#: src/tables/settings/UserTable.tsx:261 msgid "Added user" -msgstr "" +msgstr "已添加用户" -#: src/tables/settings/UserTable.tsx:285 +#: src/tables/settings/UserTable.tsx:284 msgid "Show active users" -msgstr "" +msgstr "顯示活躍用户" + +#: src/tables/settings/UserTable.tsx:288 +msgid "Staff" +msgstr "工作人員" #: src/tables/settings/UserTable.tsx:289 -msgid "Staff" -msgstr "" - -#: src/tables/settings/UserTable.tsx:290 msgid "Show staff users" -msgstr "" +msgstr "顯示工作人員用户" #: src/tables/settings/UserTable.tsx:294 -msgid "Superuser" -msgstr "" - -#: src/tables/settings/UserTable.tsx:295 msgid "Show superusers" -msgstr "" +msgstr "顯示超級用户" -#: src/tables/settings/UserTable.tsx:305 +#: src/tables/settings/UserTable.tsx:304 msgid "Edit user" -msgstr "" +msgstr "編輯用户" + +#: src/tables/stock/InstalledItemsTable.tsx:37 +#: src/tables/stock/InstalledItemsTable.tsx:90 +msgid "Install Item" +msgstr "安裝項目" + +#: src/tables/stock/InstalledItemsTable.tsx:39 +msgid "Item installed" +msgstr "已安裝項目" + +#: src/tables/stock/InstalledItemsTable.tsx:50 +msgid "Uninstall Item" +msgstr "卸載項目" + +#: src/tables/stock/InstalledItemsTable.tsx:52 +msgid "Item uninstalled" +msgstr "已卸載項目" + +#: src/tables/stock/InstalledItemsTable.tsx:108 +msgid "Uninstall stock item" +msgstr "卸載庫存項目" #: src/tables/stock/LocationTypesTable.tsx:39 #: src/tables/stock/LocationTypesTable.tsx:109 msgid "Add Location Type" -msgstr "" +msgstr "添加位置類型" #: src/tables/stock/LocationTypesTable.tsx:47 msgid "Edit Location Type" -msgstr "" +msgstr "編輯位置類型" #: src/tables/stock/LocationTypesTable.tsx:55 msgid "Delete Location Type" -msgstr "" +msgstr "刪除位置類型" #: src/tables/stock/LocationTypesTable.tsx:63 msgid "Icon" -msgstr "" +msgstr "圖標" -#: src/tables/stock/StockItemTable.tsx:101 +#: src/tables/stock/StockItemTable.tsx:90 msgid "This stock item is in production" -msgstr "" +msgstr "該庫存項正在生產" -#: src/tables/stock/StockItemTable.tsx:110 +#: src/tables/stock/StockItemTable.tsx:97 msgid "This stock item has been assigned to a sales order" -msgstr "" +msgstr "庫存項已分配到銷售訂單" -#: src/tables/stock/StockItemTable.tsx:119 +#: src/tables/stock/StockItemTable.tsx:104 msgid "This stock item has been assigned to a customer" -msgstr "" +msgstr "庫存項已分配給客户" -#: src/tables/stock/StockItemTable.tsx:128 +#: src/tables/stock/StockItemTable.tsx:111 msgid "This stock item is installed in another stock item" -msgstr "" +msgstr "此庫存項已安裝在另一個庫存項中" -#: src/tables/stock/StockItemTable.tsx:137 +#: src/tables/stock/StockItemTable.tsx:118 msgid "This stock item has been consumed by a build order" +msgstr "此庫存項已被生產訂單消耗" + +#: src/tables/stock/StockItemTable.tsx:125 +msgid "This stock item is unavailable" msgstr "" -#: src/tables/stock/StockItemTable.tsx:146 +#: src/tables/stock/StockItemTable.tsx:134 msgid "This stock item has expired" -msgstr "" +msgstr "此庫存項已過期" + +#: src/tables/stock/StockItemTable.tsx:138 +msgid "This stock item is stale" +msgstr "此庫存項是過期項" #: src/tables/stock/StockItemTable.tsx:150 -msgid "This stock item is stale" -msgstr "" - -#: src/tables/stock/StockItemTable.tsx:161 msgid "This stock item is fully allocated" -msgstr "" +msgstr "此庫存項已完全分配" -#: src/tables/stock/StockItemTable.tsx:168 +#: src/tables/stock/StockItemTable.tsx:157 msgid "This stock item is partially allocated" -msgstr "" +msgstr "此庫存項已被部分分配" -#: src/tables/stock/StockItemTable.tsx:196 +#: src/tables/stock/StockItemTable.tsx:185 msgid "This stock item has been depleted" -msgstr "" +msgstr "庫存項已耗盡" -#: src/tables/stock/StockItemTable.tsx:232 +#: src/tables/stock/StockItemTable.tsx:280 msgid "Stocktake Date" -msgstr "" +msgstr "盤點日期" -#: src/tables/stock/StockItemTable.tsx:236 -msgid "Expiry Date" -msgstr "" - -#: src/tables/stock/StockItemTable.tsx:260 -msgid "Stock Value" -msgstr "" - -#: src/tables/stock/StockItemTable.tsx:290 +#: src/tables/stock/StockItemTable.tsx:294 msgid "Show stock for active parts" -msgstr "" +msgstr "顯示激活零件的庫存" -#: src/tables/stock/StockItemTable.tsx:295 +#: src/tables/stock/StockItemTable.tsx:299 msgid "Filter by stock status" -msgstr "" +msgstr "按庫存狀態篩選" #: src/tables/stock/StockItemTable.tsx:301 -msgid "Show stock for assmebled parts" -msgstr "" +#~ msgid "Show stock for assmebled parts" +#~ msgstr "Show stock for assmebled parts" -#: src/tables/stock/StockItemTable.tsx:306 +#: src/tables/stock/StockItemTable.tsx:305 +msgid "Show stock for assembled parts" +msgstr "顯示組裝配件的庫存" + +#: src/tables/stock/StockItemTable.tsx:310 msgid "Show items which have been allocated" -msgstr "" - -#: src/tables/stock/StockItemTable.tsx:311 -msgid "Show items which are available" -msgstr "" +msgstr "顯示已分配的項目" #: src/tables/stock/StockItemTable.tsx:315 +msgid "Show items which are available" +msgstr "顯示可用的項目" + +#: src/tables/stock/StockItemTable.tsx:319 #: src/tables/stock/StockLocationTable.tsx:44 msgid "Include Sublocations" -msgstr "" - -#: src/tables/stock/StockItemTable.tsx:316 -msgid "Include stock in sublocations" -msgstr "" +msgstr "包括子地點" #: src/tables/stock/StockItemTable.tsx:320 +msgid "Include stock in sublocations" +msgstr "包括子地點的庫存" + +#: src/tables/stock/StockItemTable.tsx:324 msgid "Depleted" -msgstr "" +msgstr "耗盡" -#: src/tables/stock/StockItemTable.tsx:321 +#: src/tables/stock/StockItemTable.tsx:325 msgid "Show depleted stock items" -msgstr "" +msgstr "顯示耗盡的庫存項" -#: src/tables/stock/StockItemTable.tsx:326 +#: src/tables/stock/StockItemTable.tsx:330 msgid "Show items which are in stock" -msgstr "" +msgstr "顯示庫存中的項目" -#: src/tables/stock/StockItemTable.tsx:331 +#: src/tables/stock/StockItemTable.tsx:335 msgid "Show items which are in production" -msgstr "" +msgstr "顯示正在生產的項目" -#: src/tables/stock/StockItemTable.tsx:336 +#: src/tables/stock/StockItemTable.tsx:340 msgid "Include stock items for variant parts" -msgstr "" - -#: src/tables/stock/StockItemTable.tsx:341 -msgid "Show stock items which are installed in other items" -msgstr "" +msgstr "包括變體零件的庫存項" #: src/tables/stock/StockItemTable.tsx:345 -msgid "Sent to Customer" -msgstr "" +msgid "Show stock items which are installed in other items" +msgstr "顯示安裝在其他項目中的庫存項" -#: src/tables/stock/StockItemTable.tsx:346 -msgid "Show items which have been sent to a customer" -msgstr "" +#: src/tables/stock/StockItemTable.tsx:349 +msgid "Sent to Customer" +msgstr "發送給客户" #: src/tables/stock/StockItemTable.tsx:350 +msgid "Show items which have been sent to a customer" +msgstr "顯示已發送給客户的項目" + +#: src/tables/stock/StockItemTable.tsx:354 msgid "Is Serialized" -msgstr "" +msgstr "已序列化" -#: src/tables/stock/StockItemTable.tsx:351 +#: src/tables/stock/StockItemTable.tsx:355 msgid "Show items which have a serial number" -msgstr "" +msgstr "顯示帶有序列號的項目" -#: src/tables/stock/StockItemTable.tsx:358 +#: src/tables/stock/StockItemTable.tsx:362 msgid "Has Batch Code" -msgstr "" +msgstr "有批號" -#: src/tables/stock/StockItemTable.tsx:359 +#: src/tables/stock/StockItemTable.tsx:363 msgid "Show items which have a batch code" -msgstr "" - -#: src/tables/stock/StockItemTable.tsx:365 -msgid "Show tracked items" -msgstr "" +msgstr "顯示有批號的項目" #: src/tables/stock/StockItemTable.tsx:369 +msgid "Show tracked items" +msgstr "顯示已跟蹤項目" + +#: src/tables/stock/StockItemTable.tsx:373 msgid "Has Purchase Price" -msgstr "" +msgstr "有采購價格" -#: src/tables/stock/StockItemTable.tsx:370 +#: src/tables/stock/StockItemTable.tsx:374 msgid "Show items which have a purchase price" -msgstr "" +msgstr "顯示有購買價格的項目" -#: src/tables/stock/StockItemTable.tsx:378 +#: src/tables/stock/StockItemTable.tsx:382 msgid "External Location" -msgstr "" +msgstr "外部地點" -#: src/tables/stock/StockItemTable.tsx:379 +#: src/tables/stock/StockItemTable.tsx:383 msgid "Show items in an external location" -msgstr "" +msgstr "顯示外部庫存地點的項目" -#: src/tables/stock/StockItemTable.tsx:451 +#: src/tables/stock/StockItemTable.tsx:456 msgid "Add a new stock item" -msgstr "" +msgstr "添加一個新的庫存項" -#: src/tables/stock/StockItemTable.tsx:460 +#: src/tables/stock/StockItemTable.tsx:465 msgid "Remove some quantity from a stock item" -msgstr "" +msgstr "從庫存項中刪除一些數量" -#: src/tables/stock/StockItemTable.tsx:482 +#: src/tables/stock/StockItemTable.tsx:487 msgid "Move Stock items to new locations" -msgstr "" +msgstr "將庫存項目移動到新位置" -#: src/tables/stock/StockItemTable.tsx:489 +#: src/tables/stock/StockItemTable.tsx:494 msgid "Change stock status" -msgstr "" +msgstr "更改庫存狀態" -#: src/tables/stock/StockItemTable.tsx:491 +#: src/tables/stock/StockItemTable.tsx:496 msgid "Change the status of stock items" -msgstr "" +msgstr "更改庫存項的狀態" -#: src/tables/stock/StockItemTable.tsx:498 +#: src/tables/stock/StockItemTable.tsx:503 msgid "Merge stock" -msgstr "" +msgstr "合併庫存" -#: src/tables/stock/StockItemTable.tsx:500 +#: src/tables/stock/StockItemTable.tsx:505 msgid "Merge stock items" -msgstr "" - -#: src/tables/stock/StockItemTable.tsx:509 -#: src/tables/stock/StockItemTable.tsx:516 -msgid "Order new stock" -msgstr "" +msgstr "合併庫存項" #: src/tables/stock/StockItemTable.tsx:514 +#: src/tables/stock/StockItemTable.tsx:521 +msgid "Order new stock" +msgstr "訂單新庫存" + +#: src/tables/stock/StockItemTable.tsx:519 msgid "Assign to customer" -msgstr "" +msgstr "分配給客户" -#: src/tables/stock/StockItemTable.tsx:523 +#: src/tables/stock/StockItemTable.tsx:528 msgid "Delete stock" -msgstr "" +msgstr "刪除庫存" -#: src/tables/stock/StockItemTable.tsx:525 -msgid "Delete stock items" -msgstr "" +#: src/tables/stock/StockItemTable.tsx:528 +#~ msgid "Delete stock items" +#~ msgstr "Delete stock items" -#: src/tables/stock/StockItemTestResultTable.tsx:131 +#: src/tables/stock/StockItemTestResultTable.tsx:137 msgid "Test" -msgstr "" +msgstr "測試" -#: src/tables/stock/StockItemTestResultTable.tsx:157 +#: src/tables/stock/StockItemTestResultTable.tsx:163 msgid "Test result for installed stock item" -msgstr "" +msgstr "已安裝庫存項目的測試結果" -#: src/tables/stock/StockItemTestResultTable.tsx:168 -msgid "Result" -msgstr "" - -#: src/tables/stock/StockItemTestResultTable.tsx:190 +#: src/tables/stock/StockItemTestResultTable.tsx:196 msgid "Attachment" -msgstr "" +msgstr "附件" -#: src/tables/stock/StockItemTestResultTable.tsx:206 +#: src/tables/stock/StockItemTestResultTable.tsx:212 msgid "Test station" -msgstr "" +msgstr "測試站" -#: src/tables/stock/StockItemTestResultTable.tsx:226 +#: src/tables/stock/StockItemTestResultTable.tsx:234 msgid "Finished" -msgstr "" +msgstr "已完成" -#: src/tables/stock/StockItemTestResultTable.tsx:268 -#: src/tables/stock/StockItemTestResultTable.tsx:339 +#: src/tables/stock/StockItemTestResultTable.tsx:286 +#: src/tables/stock/StockItemTestResultTable.tsx:357 msgid "Edit Test Result" -msgstr "" +msgstr "編輯測試結果" -#: src/tables/stock/StockItemTestResultTable.tsx:270 +#: src/tables/stock/StockItemTestResultTable.tsx:288 msgid "Test result updated" -msgstr "" - -#: src/tables/stock/StockItemTestResultTable.tsx:276 -#: src/tables/stock/StockItemTestResultTable.tsx:348 -msgid "Delete Test Result" -msgstr "" - -#: src/tables/stock/StockItemTestResultTable.tsx:278 -msgid "Test result deleted" -msgstr "" - -#: src/tables/stock/StockItemTestResultTable.tsx:292 -msgid "Test Passed" -msgstr "" - -#: src/tables/stock/StockItemTestResultTable.tsx:293 -msgid "Test result has been recorded" -msgstr "" - -#: src/tables/stock/StockItemTestResultTable.tsx:300 -msgid "Failed to record test result" -msgstr "" - -#: src/tables/stock/StockItemTestResultTable.tsx:317 -msgid "Pass Test" -msgstr "" +msgstr "測試結果已更新" +#: src/tables/stock/StockItemTestResultTable.tsx:294 #: src/tables/stock/StockItemTestResultTable.tsx:366 +msgid "Delete Test Result" +msgstr "刪除測試結果" + +#: src/tables/stock/StockItemTestResultTable.tsx:296 +msgid "Test result deleted" +msgstr "測試結果已刪除" + +#: src/tables/stock/StockItemTestResultTable.tsx:310 +msgid "Test Passed" +msgstr "測試通過" + +#: src/tables/stock/StockItemTestResultTable.tsx:311 +msgid "Test result has been recorded" +msgstr "測試結果已被記錄" + +#: src/tables/stock/StockItemTestResultTable.tsx:318 +msgid "Failed to record test result" +msgstr "記錄測試結果失敗" + +#: src/tables/stock/StockItemTestResultTable.tsx:335 +msgid "Pass Test" +msgstr "通過測試" + +#: src/tables/stock/StockItemTestResultTable.tsx:384 msgid "Show results for required tests" -msgstr "" +msgstr "顯示需要測試的結果" -#: src/tables/stock/StockItemTestResultTable.tsx:370 +#: src/tables/stock/StockItemTestResultTable.tsx:388 msgid "Include Installed" -msgstr "" +msgstr "包含已安裝的" -#: src/tables/stock/StockItemTestResultTable.tsx:371 +#: src/tables/stock/StockItemTestResultTable.tsx:389 msgid "Show results for installed stock items" -msgstr "" +msgstr "顯示已安裝庫存項目的結果" -#: src/tables/stock/StockItemTestResultTable.tsx:375 -#: src/tables/stock/TestStatisticsTable.tsx:74 +#: src/tables/stock/StockItemTestResultTable.tsx:393 +#: src/tables/stock/TestStatisticsTable.tsx:62 msgid "Passed" -msgstr "" +msgstr "通過" -#: src/tables/stock/StockItemTestResultTable.tsx:376 +#: src/tables/stock/StockItemTestResultTable.tsx:394 msgid "Show only passed tests" -msgstr "" +msgstr "只顯示通過的測試" #: src/tables/stock/StockLocationTable.tsx:38 #~ msgid "structural" @@ -7903,63 +9160,67 @@ msgstr "" #: src/tables/stock/StockLocationTable.tsx:45 msgid "Include sublocations in results" -msgstr "" +msgstr "在結果中包含子地點" #: src/tables/stock/StockLocationTable.tsx:50 msgid "Show structural locations" -msgstr "" +msgstr "顯示結構性地點" #: src/tables/stock/StockLocationTable.tsx:55 msgid "Show external locations" -msgstr "" +msgstr "顯示外部地點" #: src/tables/stock/StockLocationTable.tsx:59 msgid "Has location type" -msgstr "" +msgstr "有位置類型" #: src/tables/stock/StockLocationTable.tsx:64 msgid "Filter by location type" -msgstr "" +msgstr "按位置類型篩選" #: src/tables/stock/StockLocationTable.tsx:107 -#: src/tables/stock/StockLocationTable.tsx:133 +#: src/tables/stock/StockLocationTable.tsx:134 msgid "Add Stock Location" -msgstr "" +msgstr "添加庫存地點" -#: src/tables/stock/StockTrackingTable.tsx:64 +#: src/tables/stock/StockTrackingTable.tsx:68 msgid "Added" -msgstr "" +msgstr "已添加" -#: src/tables/stock/StockTrackingTable.tsx:69 +#: src/tables/stock/StockTrackingTable.tsx:73 msgid "Removed" -msgstr "" +msgstr "已刪除" #: src/tables/stock/StockTrackingTable.tsx:198 +msgid "Details" +msgstr "詳情" + +#: src/tables/stock/StockTrackingTable.tsx:213 msgid "No user information" -msgstr "" +msgstr "沒有用户信息" -#: src/tables/stock/TestStatisticsTable.tsx:46 -#: src/tables/stock/TestStatisticsTable.tsx:76 +#: src/tables/stock/TestStatisticsTable.tsx:34 +#: src/tables/stock/TestStatisticsTable.tsx:64 msgid "Total" -msgstr "" +msgstr "總計" -#: src/tables/stock/TestStatisticsTable.tsx:75 +#: src/tables/stock/TestStatisticsTable.tsx:63 msgid "Failed" -msgstr "" +msgstr "失敗" #: src/views/MobileAppView.tsx:22 msgid "Mobile viewport detected" -msgstr "" +msgstr "檢測到手機視圖" #: src/views/MobileAppView.tsx:25 msgid "Platform UI is optimized for Tablets and Desktops, you can use the official app for a mobile experience." -msgstr "" +msgstr "Platform UI 針對平板電腦和台式機進行了優化,您可以使用官方應用程序獲得移動體驗。" #: src/views/MobileAppView.tsx:31 msgid "Read the docs" -msgstr "" +msgstr "閲讀文檔" #: src/views/MobileAppView.tsx:35 msgid "Ignore and continue to Desktop view" -msgstr "" +msgstr "忽略並繼續到桌面視圖" diff --git a/src/frontend/src/main.css.ts b/src/frontend/src/main.css.ts index c1a14f434e..fe1c199faa 100644 --- a/src/frontend/src/main.css.ts +++ b/src/frontend/src/main.css.ts @@ -82,21 +82,6 @@ export const link = style({ } }); -export const subLink = style({ - width: '100%', - padding: `${vars.spacing.xs} ${vars.spacing.md}`, - borderRadius: vars.radiusDefault, - - ':hover': { - [vars.lightSelector]: { backgroundColor: vars.colors.gray[0] }, - [vars.darkSelector]: { backgroundColor: vars.colors.dark[7] } - }, - - ':active': { - color: vars.colors.defaultHover - } -}); - export const docHover = style({ border: `1px dashed ` }); @@ -106,24 +91,6 @@ export const layoutContent = style({ width: '100%' }); -export const layoutFooterLinks = style({ - [vars.smallerThan('xs')]: { - marginTop: vars.spacing.md - } -}); - -export const layoutFooterInner = style({ - display: 'flex', - justifyContent: 'space-between', - alignItems: 'center', - paddingTop: vars.spacing.xl, - paddingBottom: vars.spacing.xl, - - [vars.smallerThan('xs')]: { - flexDirection: 'column' - } -}); - export const tabs = style({ [vars.smallerThan('sm')]: { display: 'none' diff --git a/src/frontend/src/main.tsx b/src/frontend/src/main.tsx index 3a3be69dc7..118e02ee55 100644 --- a/src/frontend/src/main.tsx +++ b/src/frontend/src/main.tsx @@ -11,6 +11,7 @@ import ReactDOM from 'react-dom/client'; import 'react-grid-layout/css/styles.css'; import 'react-resizable/css/styles.css'; +import { api } from './App'; import { HostList } from './states/states'; import MainView from './views/MainView'; @@ -25,6 +26,8 @@ declare global { sentry_dsn?: string; environment?: string; }; + InvenTreeAPI: typeof api; + React: typeof React; } } @@ -99,3 +102,6 @@ ReactDOM.createRoot(document.getElementById('root') as HTMLElement).render( if (window.location.pathname === '/') { window.location.replace(`/${base_url}`); } + +window.React = React; +window.InvenTreeAPI = api; diff --git a/src/frontend/src/pages/Auth/Logged-In.tsx b/src/frontend/src/pages/Auth/Logged-In.tsx index c4939dd30d..6aec174400 100644 --- a/src/frontend/src/pages/Auth/Logged-In.tsx +++ b/src/frontend/src/pages/Auth/Logged-In.tsx @@ -10,7 +10,7 @@ export default function Logged_In() { const location = useLocation(); useEffect(() => { - checkLoginState(navigate, location?.state?.redirectFrom); + checkLoginState(navigate, location?.state); }, [navigate]); return ( diff --git a/src/frontend/src/pages/Auth/Login.tsx b/src/frontend/src/pages/Auth/Login.tsx index a27687dfe8..213963a34c 100644 --- a/src/frontend/src/pages/Auth/Login.tsx +++ b/src/frontend/src/pages/Auth/Login.tsx @@ -13,7 +13,11 @@ import { } from '../../components/forms/AuthenticationForm'; import { InstanceOptions } from '../../components/forms/InstanceOptions'; import { defaultHostKey } from '../../defaults/defaultHostList'; -import { checkLoginState, doBasicLogin } from '../../functions/auth'; +import { + checkLoginState, + doBasicLogin, + followRedirect +} from '../../functions/auth'; import { useServerApiState } from '../../states/ApiState'; import { useLocalState } from '../../states/LocalState'; @@ -49,7 +53,7 @@ export default function Login() { ChangeHost(defaultHostKey); } - checkLoginState(navigate, location?.state?.redirectFrom, true); + checkLoginState(navigate, location?.state, true); // check if we got login params (login and password) if (searchParams.has('login') && searchParams.has('password')) { @@ -57,7 +61,7 @@ export default function Login() { searchParams.get('login') ?? '', searchParams.get('password') ?? '' ).then(() => { - navigate(location?.state?.redirectFrom ?? '/home'); + followRedirect(navigate, location?.state); }); } }, []); diff --git a/src/frontend/src/pages/Auth/Reset.tsx b/src/frontend/src/pages/Auth/Reset.tsx index d0395688a4..4a32758b55 100644 --- a/src/frontend/src/pages/Auth/Reset.tsx +++ b/src/frontend/src/pages/Auth/Reset.tsx @@ -38,7 +38,7 @@ export default function Reset() { type="submit" onClick={() => handleReset(navigate, simpleForm.values)} > - Send mail + Send Email diff --git a/src/frontend/src/pages/Auth/Set-Password.tsx b/src/frontend/src/pages/Auth/Set-Password.tsx index 921c58b946..1fcc4bf93e 100644 --- a/src/frontend/src/pages/Auth/Set-Password.tsx +++ b/src/frontend/src/pages/Auth/Set-Password.tsx @@ -45,12 +45,7 @@ export default function Set_Password() { useEffect(() => { // make sure we have a token if (!token || !uid) { - notifications.show({ - title: t`No token provided`, - message: t`You need to provide a token to set a new password. Check your inbox for a reset link.`, - color: 'red' - }); - navigate('/login'); + invalidToken(); } }, [token]); @@ -109,7 +104,7 @@ export default function Set_Password() { /> diff --git a/src/frontend/src/pages/Index/Dashboard.tsx b/src/frontend/src/pages/Index/Dashboard.tsx deleted file mode 100644 index 7b4e1d59a7..0000000000 --- a/src/frontend/src/pages/Index/Dashboard.tsx +++ /dev/null @@ -1,39 +0,0 @@ -import { Trans } from '@lingui/macro'; -import { Chip, Group, SimpleGrid, Text } from '@mantine/core'; - -import { DashboardItemProxy } from '../../components/DashboardItemProxy'; -import { StylishText } from '../../components/items/StylishText'; -import { dashboardItems } from '../../defaults/dashboardItems'; -import { useLocalState } from '../../states/LocalState'; - -export default function Dashboard() { - const [autoupdate, toggleAutoupdate] = useLocalState((state) => [ - state.autoupdate, - state.toggleAutoupdate - ]); - - return ( - <> - - - Dashboard - - toggleAutoupdate()}> - Autoupdate - - - - - This page is a replacement for the old start page with the same - information. This page will be deprecated and replaced by the home - page. - - - - {dashboardItems.map((item) => ( - - ))} - - - ); -} diff --git a/src/frontend/src/pages/Index/Home.tsx b/src/frontend/src/pages/Index/Home.tsx index 67fecb7f2c..2c1ff4ba2f 100644 --- a/src/frontend/src/pages/Index/Home.tsx +++ b/src/frontend/src/pages/Index/Home.tsx @@ -1,63 +1,9 @@ -import { Trans } from '@lingui/macro'; -import { Title } from '@mantine/core'; -import { lazy } from 'react'; - -import { - LayoutItemType, - WidgetLayout -} from '../../components/widgets/WidgetLayout'; -import { LoadingItem } from '../../functions/loading'; -import { useUserState } from '../../states/UserState'; - -const vals: LayoutItemType[] = [ - { - i: 1, - val: ( - import('../../components/widgets/GetStartedWidget'))} - /> - ), - w: 12, - h: 6, - x: 0, - y: 0, - minH: 6 - }, - { - i: 2, - val: ( - import('../../components/widgets/DisplayWidget'))} - /> - ), - w: 3, - h: 3, - x: 0, - y: 7, - minH: 3 - }, - { - i: 4, - val: ( - import('../../components/widgets/FeedbackWidget'))} - /> - ), - w: 4, - h: 6, - x: 0, - y: 9 - } -]; +import DashboardLayout from '../../components/dashboard/DashboardLayout'; export default function Home() { - const [username] = useUserState((state) => [state.username()]); return ( <> - - <Trans>Welcome to your Dashboard{username && `, ${username}`}</Trans> - - + ); } diff --git a/src/frontend/src/pages/Index/Playground.tsx b/src/frontend/src/pages/Index/Playground.tsx deleted file mode 100644 index c7b9deb43d..0000000000 --- a/src/frontend/src/pages/Index/Playground.tsx +++ /dev/null @@ -1,239 +0,0 @@ -import { Trans } from '@lingui/macro'; -import { - Accordion, - Button, - Card, - Group, - Stack, - Text, - TextInput -} from '@mantine/core'; -import { SpotlightActionData } from '@mantine/spotlight'; -import { IconAlien } from '@tabler/icons-react'; -import { ReactNode, useMemo, useState } from 'react'; - -import { OptionsApiForm } from '../../components/forms/ApiForm'; -import { PlaceholderPill } from '../../components/items/Placeholder'; -import { StylishText } from '../../components/items/StylishText'; -import { firstSpotlight } from '../../components/nav/Layout'; -import { StatusRenderer } from '../../components/render/StatusRenderer'; -import { ApiEndpoints } from '../../enums/ApiEndpoints'; -import { ModelType } from '../../enums/ModelType'; -import { partCategoryFields, usePartFields } from '../../forms/PartForms'; -import { useCreateStockItem } from '../../forms/StockForms'; -import { - useCreateApiFormModal, - useEditApiFormModal -} from '../../hooks/UseForm'; - -// Generate some example forms using the modal API forms interface -const fields = partCategoryFields(); - -function ApiFormsPlayground() { - const editCategory = useEditApiFormModal({ - url: ApiEndpoints.category_list, - pk: 2, - title: 'Edit Category', - fields: fields - }); - - const createPartFields = usePartFields({ create: true }); - const editPartFields = usePartFields({ create: false }); - - const newPart = useCreateApiFormModal({ - url: ApiEndpoints.part_list, - title: 'Create Part', - fields: createPartFields, - initialData: { - description: 'A part created via the API' - } - }); - - const editPart = useEditApiFormModal({ - url: ApiEndpoints.part_list, - pk: 1, - title: 'Edit Part', - fields: editPartFields - }); - - const [active, setActive] = useState(true); - const [name, setName] = useState('Hello'); - - const partFieldsState: any = useMemo(() => { - const fields = editPartFields; - fields.name = { - ...fields.name, - value: name, - onValueChange: setName - }; - fields.active = { - ...fields.active, - value: active, - onValueChange: setActive - }; - fields.responsible = { - ...fields.responsible, - disabled: !active - }; - return fields; - }, [name, active]); - - const { modal: createPartModal, open: openCreatePart } = - useCreateApiFormModal({ - url: ApiEndpoints.part_list, - title: 'Create part', - fields: partFieldsState, - initialData: { - is_template: true, - virtual: true, - minimum_stock: 10, - description: 'An example part description', - keywords: 'apple, banana, carrottt', - 'initial_supplier.sku': 'SKU-123' - }, - preFormContent: ( - - ) - }); - - const { modal: createStockItemModal, open: openCreateStockItem } = - useCreateStockItem(); - - return ( - - - - {newPart.modal} - - - {editPart.modal} - - - {createStockItemModal} - - - {editCategory.modal} - - - {createPartModal} - - - - - - ); -} - -// Show some example status labels -function StatusLabelPlayground() { - const [status, setStatus] = useState('10'); - return ( - - Stock Status - setStatus(event.currentTarget.value)} - /> - - - ); -} - -// Sample for spotlight actions -function SpotlighPlayground() { - return ( - - ); -} - -/** Construct a simple accordion group with title and content */ -function PlaygroundArea({ - title, - content -}: { - title: string; - content: ReactNode; -}) { - return ( - - - {title} - - {content} - - ); -} - -export default function Playground() { - return ( - <> - - - Playground - - - - - - This page is a showcase for the possibilities of Platform UI. - - - - } /> - } - /> - } - /> - - - ); -} diff --git a/src/frontend/src/pages/Index/Scan.tsx b/src/frontend/src/pages/Index/Scan.tsx index 3b5cf56c4f..560a53e966 100644 --- a/src/frontend/src/pages/Index/Scan.tsx +++ b/src/frontend/src/pages/Index/Scan.tsx @@ -55,7 +55,7 @@ import { notYetImplemented } from '../../functions/notifications'; import { IS_DEV_OR_DEMO } from '../../main'; import { apiUrl } from '../../states/ApiState'; -interface ScanItem { +export interface ScanItem { id: string; ref: string; data: any; @@ -222,7 +222,21 @@ export default function Scan() { case InputMethod.Manual: return ; case InputMethod.ImageBarcode: - return ; + return ( + { + addItems([ + { + id: randomId(), + ref: decodedText, + data: decodedText, + timestamp: new Date(), + source: InputMethod.ImageBarcode + } + ]); + }} + /> + ); default: return No input selected; } @@ -401,11 +415,11 @@ function HistoryTable({ data, selection, setSelection -}: { +}: Readonly<{ data: ScanItem[]; selection: string[]; setSelection: React.Dispatch>; -}) { +}>) { const toggleRow = (id: string) => setSelection((current) => current.includes(id) @@ -489,10 +503,15 @@ enum InputMethod { ImageBarcode = 'imageBarcode' } -interface ScanInputInterface { +export interface ScanInputInterface { action: (items: ScanItem[]) => void; } +interface BarcodeInputProps { + action: (decodedText: string) => void; + notScanningPlaceholder?: string; +} + function InputManual({ action }: Readonly) { const [value, setValue] = useState(''); @@ -545,7 +564,10 @@ function InputManual({ action }: Readonly) { } /* Input that uses QR code detection from images */ -function InputImageBarcode({ action }: Readonly) { +export function InputImageBarcode({ + action, + notScanningPlaceholder = t`Start scanning by selecting a camera and pressing the play button.` +}: Readonly) { const [qrCodeScanner, setQrCodeScanner] = useState(null); const [camId, setCamId] = useLocalStorage({ key: 'camId', @@ -601,15 +623,7 @@ function InputImageBarcode({ action }: Readonly) { lastValue = decodedText; // submit value upstream - action([ - { - id: randomId(), - ref: decodedText, - data: decodedText, - timestamp: new Date(), - source: InputMethod.ImageBarcode - } - ]); + action(decodedText); qrCodeScanner?.resume(); } @@ -714,17 +728,19 @@ function InputImageBarcode({ action }: Readonly) { return ( - + - + + + + + diff --git a/src/frontend/src/tables/settings/CurrencyTable.tsx b/src/frontend/src/pages/Index/Settings/AdminCenter/CurrencyManagmentPanel.tsx similarity index 56% rename from src/frontend/src/tables/settings/CurrencyTable.tsx rename to src/frontend/src/pages/Index/Settings/AdminCenter/CurrencyManagmentPanel.tsx index e5ed7533c2..5a963e606a 100644 --- a/src/frontend/src/tables/settings/CurrencyTable.tsx +++ b/src/frontend/src/pages/Index/Settings/AdminCenter/CurrencyManagmentPanel.tsx @@ -1,21 +1,25 @@ import { t } from '@lingui/macro'; +import { Divider, Stack } from '@mantine/core'; import { showNotification } from '@mantine/notifications'; import { IconReload } from '@tabler/icons-react'; -import { useCallback, useMemo } from 'react'; +import { useCallback, useMemo, useState } from 'react'; -import { api } from '../../App'; -import { ActionButton } from '../../components/buttons/ActionButton'; -import { ApiEndpoints } from '../../enums/ApiEndpoints'; -import { useTable } from '../../hooks/UseTable'; -import { apiUrl } from '../../states/ApiState'; -import { InvenTreeTable } from '../InvenTreeTable'; +import { api } from '../../../../App'; +import { ActionButton } from '../../../../components/buttons/ActionButton'; +import { FactCollection } from '../../../../components/settings/FactCollection'; +import { GlobalSettingList } from '../../../../components/settings/SettingList'; +import { ApiEndpoints } from '../../../../enums/ApiEndpoints'; +import { useTable } from '../../../../hooks/UseTable'; +import { apiUrl } from '../../../../states/ApiState'; +import { InvenTreeTable } from '../../../../tables/InvenTreeTable'; /* * Table for displaying available currencies */ -export default function CurrencyTable() { +export function CurrencyTable({ + setInfo +}: Readonly<{ setInfo: (info: any) => void }>) { const table = useTable('currency'); - const columns = useMemo(() => { return [ { @@ -53,6 +57,7 @@ export default function CurrencyTable() { const tableActions = useMemo(() => { return [ } @@ -69,6 +74,7 @@ export default function CurrencyTable() { idAccessor: 'currency', tableActions: tableActions, dataFormatter: (data: any) => { + setInfo(data); let rates = data.exchange_rates ?? {}; return Object.entries(rates).map(([currency, rate]) => { @@ -82,3 +88,24 @@ export default function CurrencyTable() { /> ); } + +export default function CurrencyManagmentPanel() { + const [info, setInfo] = useState({}); + + return ( + + + + + + + + ); +} diff --git a/src/frontend/src/pages/Index/Settings/AdminCenter/Index.tsx b/src/frontend/src/pages/Index/Settings/AdminCenter/Index.tsx index 8f84261329..aa8d1c3904 100644 --- a/src/frontend/src/pages/Index/Settings/AdminCenter/Index.tsx +++ b/src/frontend/src/pages/Index/Settings/AdminCenter/Index.tsx @@ -9,6 +9,7 @@ import { Title } from '@mantine/core'; import { + IconClipboardCheck, IconCoins, IconCpu, IconDevicesPc, @@ -18,6 +19,7 @@ import { IconListDetails, IconPackages, IconPlugConnected, + IconQrcode, IconReport, IconScale, IconSitemap, @@ -28,8 +30,9 @@ import { lazy, useMemo } from 'react'; import PermissionDenied from '../../../../components/errors/PermissionDenied'; import { PlaceholderPill } from '../../../../components/items/Placeholder'; -import { PanelGroup, PanelType } from '../../../../components/nav/PanelGroup'; import { SettingsHeader } from '../../../../components/nav/SettingsHeader'; +import { PanelType } from '../../../../components/panels/Panel'; +import { PanelGroup } from '../../../../components/panels/PanelGroup'; import { GlobalSettingList } from '../../../../components/settings/SettingList'; import { Loadable } from '../../../../functions/loading'; import { useUserState } from '../../../../states/UserState'; @@ -48,6 +51,12 @@ const TaskManagementPanel = Loadable( lazy(() => import('./TaskManagementPanel')) ); +const CurrencyManagmentPanel = Loadable( + lazy(() => import('./CurrencyManagmentPanel')) +); + +const UnitManagmentPanel = Loadable(lazy(() => import('./UnitManagmentPanel'))); + const PluginManagementPanel = Loadable( lazy(() => import('./PluginManagementPanel')) ); @@ -60,6 +69,10 @@ const ErrorReportTable = Loadable( lazy(() => import('../../../../tables/settings/ErrorTable')) ); +const BarcodeScanHistoryTable = Loadable( + lazy(() => import('../../../../tables/settings/BarcodeScanHistoryTable')) +); + const ImportSesssionTable = Loadable( lazy(() => import('../../../../tables/settings/ImportSessionTable')) ); @@ -72,10 +85,6 @@ const CustomStateTable = Loadable( lazy(() => import('../../../../tables/settings/CustomStateTable')) ); -const CustomUnitsTable = Loadable( - lazy(() => import('../../../../tables/settings/CustomUnitsTable')) -); - const PartParameterTemplateTable = Loadable( lazy(() => import('../../../../tables/part/PartParameterTemplateTable')) ); @@ -88,9 +97,7 @@ const LocationTypesTable = Loadable( lazy(() => import('../../../../tables/stock/LocationTypesTable')) ); -const CurrencyTable = Loadable( - lazy(() => import('../../../../tables/settings/CurrencyTable')) -); +const StocktakePanel = Loadable(lazy(() => import('./StocktakePanel'))); export default function AdminCenter() { const user = useUserState(); @@ -109,6 +116,12 @@ export default function AdminCenter() { icon: , content: }, + { + name: 'barcode-history', + label: t`Barcode Scans`, + icon: , + content: + }, { name: 'background', label: t`Background Tasks`, @@ -125,7 +138,7 @@ export default function AdminCenter() { name: 'currencies', label: t`Currencies`, icon: , - content: + content: }, { name: 'projectcodes', @@ -149,7 +162,7 @@ export default function AdminCenter() { name: 'customunits', label: t`Custom Units`, icon: , - content: + content: }, { name: 'part-parameters', @@ -163,6 +176,12 @@ export default function AdminCenter() { icon: , content: }, + { + name: 'stocktake', + label: t`Stocktake`, + icon: , + content: + }, { name: 'labels', label: t`Label Templates`, @@ -228,16 +247,17 @@ export default function AdminCenter() { {user.isStaff() ? ( ) : ( diff --git a/src/frontend/src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx b/src/frontend/src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx index 17888e6f28..c3a292a9c1 100644 --- a/src/frontend/src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx +++ b/src/frontend/src/pages/Index/Settings/AdminCenter/MachineManagementPanel.tsx @@ -1,18 +1,20 @@ -import { Trans } from '@lingui/macro'; +import { t } from '@lingui/macro'; import { + Accordion, ActionIcon, + Alert, Code, Group, List, - Space, Stack, - Text, - Title + Text } from '@mantine/core'; -import { IconRefresh } from '@tabler/icons-react'; +import { IconInfoCircle, IconRefresh } from '@tabler/icons-react'; import { useQuery } from '@tanstack/react-query'; +import { useMemo } from 'react'; import { api } from '../../../../App'; +import { StylishText } from '../../../../components/items/StylishText'; import { ApiEndpoints } from '../../../../enums/ApiEndpoints'; import { apiUrl } from '../../../../states/ApiState'; import { MachineListTable } from '../../../../tables/machine/MachineListTable'; @@ -32,45 +34,77 @@ export default function MachineManagementPanel() { staleTime: 10 * 1000 }); + const hasErrors = useMemo(() => { + return ( + registryStatus?.registry_errors && + registryStatus.registry_errors.length > 0 + ); + }, [registryStatus]); + return ( - - - - - - - - <Trans>Machine types</Trans> - - - - - - - - - - <Trans>Machine Error Stack</Trans> - - refetch()}> - - - - {registryStatus?.registry_errors && - registryStatus.registry_errors.length === 0 ? ( - - There are no machine registry errors. - - ) : ( - - {registryStatus?.registry_errors?.map((error, i) => ( - - {error.message} - - ))} - - )} - - + + + + {t`Machines`} + + + + + + + + {t`Machine Types`} + + + + + + + + {t`Machine Errors`} + + + + + {hasErrors ? ( + } + > + {t`There are machine registry errors`} + + ) : ( + } + > + {t`There are no machine registry errors`} + + )} + refetch()}> + + + + {hasErrors && ( + + {registryStatus?.registry_errors?.map((error, i) => ( + + {error.message} + + ))} + + )} + + + + ); } diff --git a/src/frontend/src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx b/src/frontend/src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx index 0882f93ddb..59d1445b49 100644 --- a/src/frontend/src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx +++ b/src/frontend/src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx @@ -7,6 +7,7 @@ import { StylishText } from '../../../../components/items/StylishText'; import { GlobalSettingList } from '../../../../components/settings/SettingList'; import { Loadable } from '../../../../functions/loading'; import { useServerApiState } from '../../../../states/ApiState'; +import { useUserState } from '../../../../states/UserState'; const PluginListTable = Loadable( lazy(() => import('../../../../tables/plugin/PluginListTable')) @@ -21,6 +22,8 @@ export default function PluginManagementPanel() { (state) => state.server.plugins_enabled ); + const user = useUserState(); + return ( {!pluginsEnabled && ( @@ -45,15 +48,6 @@ export default function PluginManagementPanel() { - - - {t`Plugin Errors`} - - - - - - {t`Plugin Settings`} @@ -63,6 +57,7 @@ export default function PluginManagementPanel() { keys={[ 'ENABLE_PLUGINS_SCHEDULE', 'ENABLE_PLUGINS_EVENTS', + 'ENABLE_PLUGINS_INTERFACE', 'ENABLE_PLUGINS_URL', 'ENABLE_PLUGINS_NAVIGATION', 'ENABLE_PLUGINS_APP', @@ -72,6 +67,16 @@ export default function PluginManagementPanel() { /> + {user.isSuperuser() && ( + + + {t`Plugin Errors`} + + + + + + )} ); diff --git a/src/frontend/src/pages/Index/Settings/AdminCenter/ReportTemplatePanel.tsx b/src/frontend/src/pages/Index/Settings/AdminCenter/ReportTemplatePanel.tsx index 1b84993e7d..ee8190af7e 100644 --- a/src/frontend/src/pages/Index/Settings/AdminCenter/ReportTemplatePanel.tsx +++ b/src/frontend/src/pages/Index/Settings/AdminCenter/ReportTemplatePanel.tsx @@ -1,3 +1,6 @@ +import { t } from '@lingui/macro'; + +import { YesNoButton } from '../../../../components/buttons/YesNoButton'; import { ApiEndpoints } from '../../../../enums/ApiEndpoints'; import { ModelType } from '../../../../enums/ModelType'; import { TemplateTable } from '../../../../tables/settings/TemplateTable'; @@ -10,8 +13,21 @@ export default function ReportTemplateTable() { templateEndpoint: ApiEndpoints.report_list, printingEndpoint: ApiEndpoints.report_print, additionalFormFields: { - page_size: {}, - landscape: {} + page_size: { + label: t`Page Size` + }, + landscape: { + label: t`Landscape`, + modelRenderer: (instance: any) => ( + + ) + }, + attach_to_model: { + label: t`Attach to Model`, + modelRenderer: (instance: any) => ( + + ) + } } }} /> diff --git a/src/frontend/src/pages/Index/Settings/AdminCenter/StocktakePanel.tsx b/src/frontend/src/pages/Index/Settings/AdminCenter/StocktakePanel.tsx new file mode 100644 index 0000000000..fdc10e1f36 --- /dev/null +++ b/src/frontend/src/pages/Index/Settings/AdminCenter/StocktakePanel.tsx @@ -0,0 +1,31 @@ +import { Trans } from '@lingui/macro'; +import { Divider, Stack } from '@mantine/core'; +import { lazy } from 'react'; + +import { StylishText } from '../../../../components/items/StylishText'; +import { GlobalSettingList } from '../../../../components/settings/SettingList'; +import { Loadable } from '../../../../functions/loading'; + +const StocktakeReportTable = Loadable( + lazy(() => import('../../../../tables/settings/StocktakeReportTable')) +); + +export default function StocktakePanel() { + return ( + + + + Stocktake Reports + + + + + ); +} diff --git a/src/frontend/src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx b/src/frontend/src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx index 3ac9526166..0e20cfad7e 100644 --- a/src/frontend/src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx +++ b/src/frontend/src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx @@ -1,45 +1,21 @@ import { t } from '@lingui/macro'; -import { - Accordion, - Alert, - Divider, - Paper, - SimpleGrid, - Stack, - Text -} from '@mantine/core'; +import { Accordion, Alert, Divider, Stack, Text } from '@mantine/core'; import { lazy } from 'react'; import { StylishText } from '../../../../components/items/StylishText'; +import { FactCollection } from '../../../../components/settings/FactCollection'; import { ApiEndpoints } from '../../../../enums/ApiEndpoints'; import { Loadable } from '../../../../functions/loading'; import { useInstance } from '../../../../hooks/UseInstance'; - -const PendingTasksTable = Loadable( - lazy(() => import('../../../../tables/settings/PendingTasksTable')) -); +import FailedTasksTable from '../../../../tables/settings/FailedTasksTable'; +import PendingTasksTable from '../../../../tables/settings/PendingTasksTable'; const ScheduledTasksTable = Loadable( lazy(() => import('../../../../tables/settings/ScheduledTasksTable')) ); -const FailedTasksTable = Loadable( - lazy(() => import('../../../../tables/settings/FailedTasksTable')) -); - -function TaskCountOverview({ title, value }: { title: string; value: number }) { - return ( - - - {title} - {value} - - - ); -} - export default function TaskManagementPanel() { - const { instance: taskInfo } = useInstance({ + const { instance: taskInfo, refreshInstance: refreshTaskInfo } = useInstance({ endpoint: ApiEndpoints.task_overview, hasPrimaryKey: false, refetchOnMount: true, @@ -50,25 +26,18 @@ export default function TaskManagementPanel() { return ( <> {taskInfo?.is_running == false && ( - + {t`The background task manager service is not running. Contact your system administrator.`} )} - - - - - + @@ -76,7 +45,7 @@ export default function TaskManagementPanel() { {t`Pending Tasks`} - + @@ -92,7 +61,7 @@ export default function TaskManagementPanel() { {t`Failed Tasks`} - + diff --git a/src/frontend/src/pages/Index/Settings/AdminCenter/UnitManagmentPanel.tsx b/src/frontend/src/pages/Index/Settings/AdminCenter/UnitManagmentPanel.tsx new file mode 100644 index 0000000000..6c947b71b5 --- /dev/null +++ b/src/frontend/src/pages/Index/Settings/AdminCenter/UnitManagmentPanel.tsx @@ -0,0 +1,75 @@ +import { t } from '@lingui/macro'; +import { Accordion, Stack } from '@mantine/core'; +import { useMemo } from 'react'; + +import { StylishText } from '../../../../components/items/StylishText'; +import { ApiEndpoints } from '../../../../enums/ApiEndpoints'; +import { useTable } from '../../../../hooks/UseTable'; +import { apiUrl } from '../../../../states/ApiState'; +import { BooleanColumn } from '../../../../tables/ColumnRenderers'; +import { InvenTreeTable } from '../../../../tables/InvenTreeTable'; +import CustomUnitsTable from '../../../../tables/settings/CustomUnitsTable'; + +function AllUnitTable() { + const table = useTable('all-units'); + const columns = useMemo(() => { + return [ + { + accessor: 'name', + title: t`Name` + }, + BooleanColumn({ accessor: 'is_alias', title: t`Alias` }), + BooleanColumn({ accessor: 'isdimensionless', title: t`Dimensionless` }) + ]; + }, []); + + return ( + { + let units = data.available_units ?? {}; + return Object.entries(units).map(([key, values]: [string, any]) => { + return { + name: values.name, + is_alias: values.is_alias, + compatible_units: values.compatible_units, + isdimensionless: values.isdimensionless + }; + }); + } + }} + /> + ); +} + +export default function UnitManagmentPanel() { + return ( + + + + + {t`Custom Units`} + + + + + + + + {t`All units`} + + + + + + + + ); +} diff --git a/src/frontend/src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx b/src/frontend/src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx index 3597425f40..1a59ffc603 100644 --- a/src/frontend/src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx +++ b/src/frontend/src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx @@ -34,7 +34,7 @@ export default function UserManagementPanel() {
- System settings + System Settings diff --git a/src/frontend/src/pages/Index/Settings/SystemSettings.tsx b/src/frontend/src/pages/Index/Settings/SystemSettings.tsx index fe4d7a49e4..249ddba48a 100644 --- a/src/frontend/src/pages/Index/Settings/SystemSettings.tsx +++ b/src/frontend/src/pages/Index/Settings/SystemSettings.tsx @@ -3,7 +3,6 @@ import { Skeleton, Stack } from '@mantine/core'; import { IconBellCog, IconCategory, - IconClipboardCheck, IconCurrencyDollar, IconFileAnalytics, IconFingerprint, @@ -11,7 +10,6 @@ import { IconQrcode, IconServerCog, IconShoppingCart, - IconSitemap, IconTag, IconTools, IconTruckDelivery, @@ -21,8 +19,9 @@ import { useMemo } from 'react'; import PermissionDenied from '../../../components/errors/PermissionDenied'; import { PlaceholderPanel } from '../../../components/items/Placeholder'; -import { PanelGroup, PanelType } from '../../../components/nav/PanelGroup'; import { SettingsHeader } from '../../../components/nav/SettingsHeader'; +import { PanelType } from '../../../components/panels/Panel'; +import { PanelGroup } from '../../../components/panels/PanelGroup'; import { GlobalSettingList } from '../../../components/settings/SettingList'; import { useServerApiState } from '../../../states/ApiState'; import { useUserState } from '../../../states/UserState'; @@ -99,7 +98,9 @@ export default function SystemSettings() { 'BARCODE_INPUT_DELAY', 'BARCODE_WEBCAM_SUPPORT', 'BARCODE_SHOW_TEXT', - 'BARCODE_GENERATION_PLUGIN' + 'BARCODE_GENERATION_PLUGIN', + 'BARCODE_STORE_RESULTS', + 'BARCODE_RESULTS_MAX_NUM' ]} /> ) @@ -161,9 +162,7 @@ export default function SystemSettings() { 'REPORT_ENABLE', 'REPORT_DEFAULT_PAGE_SIZE', 'REPORT_DEBUG_MODE', - 'REPORT_LOG_ERRORS', - 'REPORT_ENABLE_TEST_REPORT', - 'REPORT_ATTACH_TEST_REPORT' + 'REPORT_LOG_ERRORS' ]} /> ) @@ -221,17 +220,12 @@ export default function SystemSettings() { 'STOCK_SHOW_INSTALLED_ITEMS', 'STOCK_ENFORCE_BOM_INSTALLATION', 'STOCK_ALLOW_OUT_OF_STOCK_TRANSFER', - 'TEST_STATION_DATA' + 'TEST_STATION_DATA', + 'TEST_UPLOAD_CREATE_TEMPLATE' ]} /> ) }, - { - name: 'stocktake', - label: t`Stocktake`, - icon: , - content: - }, { name: 'buildorders', label: t`Build Orders`, @@ -312,12 +306,16 @@ export default function SystemSettings() { {user.isStaff() ? ( Switch to User Setting} /> - + ) : ( diff --git a/src/frontend/src/pages/Index/Settings/UserSettings.tsx b/src/frontend/src/pages/Index/Settings/UserSettings.tsx index 437091ac83..f30b63591b 100644 --- a/src/frontend/src/pages/Index/Settings/UserSettings.tsx +++ b/src/frontend/src/pages/Index/Settings/UserSettings.tsx @@ -11,8 +11,9 @@ import { } from '@tabler/icons-react'; import { useMemo } from 'react'; -import { PanelGroup, PanelType } from '../../../components/nav/PanelGroup'; import { SettingsHeader } from '../../../components/nav/SettingsHeader'; +import { PanelType } from '../../../components/panels/Panel'; +import { PanelGroup } from '../../../components/panels/PanelGroup'; import { UserSettingList } from '../../../components/settings/SettingList'; import { useUserState } from '../../../states/UserState'; import { SecurityContent } from './AccountSettings/SecurityContent'; @@ -147,6 +148,7 @@ export default function UserSettings() { return ( Switch to System Setting} - switch_condition={user?.is_staff || false} /> - + ); } diff --git a/src/frontend/src/pages/Notifications.tsx b/src/frontend/src/pages/Notifications.tsx index b8962e20ee..9d10dac123 100644 --- a/src/frontend/src/pages/Notifications.tsx +++ b/src/frontend/src/pages/Notifications.tsx @@ -5,7 +5,7 @@ import { IconBellCheck, IconBellExclamation, IconCircleCheck, - IconCircleX, + IconMail, IconMailOpened, IconTrash } from '@tabler/icons-react'; @@ -14,7 +14,7 @@ import { useCallback, useMemo } from 'react'; import { api } from '../App'; import { ActionButton } from '../components/buttons/ActionButton'; import { PageDetail } from '../components/nav/PageDetail'; -import { PanelGroup } from '../components/nav/PanelGroup'; +import { PanelGroup } from '../components/panels/PanelGroup'; import { ApiEndpoints } from '../enums/ApiEndpoints'; import { useTable } from '../hooks/UseTable'; import { apiUrl } from '../states/ApiState'; @@ -106,7 +106,7 @@ export default function NotificationsPage() { actions={(record) => [ { title: t`Mark as unread`, - icon: , + icon: , onClick: () => { let url = apiUrl(ApiEndpoints.notifications_list, record.pk); diff --git a/src/frontend/src/pages/build/BuildDetail.tsx b/src/frontend/src/pages/build/BuildDetail.tsx index bc9a02981f..75d1826bac 100644 --- a/src/frontend/src/pages/build/BuildDetail.tsx +++ b/src/frontend/src/pages/build/BuildDetail.tsx @@ -4,13 +4,10 @@ import { IconChecklist, IconClipboardCheck, IconClipboardList, - IconDots, IconInfoCircle, IconList, IconListCheck, IconListNumbers, - IconNotes, - IconPaperclip, IconReportAnalytics, IconSitemap } from '@tabler/icons-react'; @@ -23,23 +20,26 @@ import { PrintingActions } from '../../components/buttons/PrintingActions'; import { DetailsField, DetailsTable } from '../../components/details/Details'; import { DetailsImage } from '../../components/details/DetailsImage'; import { ItemDetailsGrid } from '../../components/details/ItemDetails'; -import NotesEditor from '../../components/editors/NotesEditor'; import { - ActionDropdown, BarcodeActionDropdown, CancelItemAction, DuplicateItemAction, EditItemAction, - HoldItemAction + HoldItemAction, + OptionsActionDropdown } from '../../components/items/ActionDropdown'; import InstanceDetail from '../../components/nav/InstanceDetail'; import { PageDetail } from '../../components/nav/PageDetail'; -import { PanelGroup, PanelType } from '../../components/nav/PanelGroup'; +import AttachmentPanel from '../../components/panels/AttachmentPanel'; +import NotesPanel from '../../components/panels/NotesPanel'; +import { PanelType } from '../../components/panels/Panel'; +import { PanelGroup } from '../../components/panels/PanelGroup'; import { StatusRenderer } from '../../components/render/StatusRenderer'; import { ApiEndpoints } from '../../enums/ApiEndpoints'; import { ModelType } from '../../enums/ModelType'; import { UserRoles } from '../../enums/Roles'; import { useBuildOrderFields } from '../../forms/BuildForms'; +import { getDetailUrl } from '../../functions/urls'; import { useCreateApiFormModal, useEditApiFormModal @@ -53,7 +53,6 @@ import BuildLineTable from '../../tables/build/BuildLineTable'; import { BuildOrderTable } from '../../tables/build/BuildOrderTable'; import BuildOrderTestTable from '../../tables/build/BuildOrderTestTable'; import BuildOutputTable from '../../tables/build/BuildOutputTable'; -import { AttachmentTable } from '../../tables/general/AttachmentTable'; import { StockItemTable } from '../../tables/stock/StockItemTable'; import { TestStatisticsTable } from '../../tables/stock/TestStatisticsTable'; @@ -189,6 +188,14 @@ export default function BuildDetail() { label: t`Completed`, icon: 'calendar', hidden: !build.completion_date + }, + { + type: 'text', + name: 'project_code_label', + label: t`Project Code`, + icon: 'reference', + copy: true, + hidden: !build.project_code } ]; @@ -252,17 +259,17 @@ export default function BuildDetail() { name: 'line-items', label: t`Line Items`, icon: , - content: build?.pk ? ( - - ) : ( - - ) + content: build?.pk ? : }, { name: 'incomplete-outputs', label: t`Incomplete Outputs`, icon: , - content: build.pk ? : + content: build.pk ? ( + + ) : ( + + ) // TODO: Hide if build is complete }, { @@ -309,10 +316,7 @@ export default function BuildDetail() { label: t`Child Build Orders`, icon: , content: build.pk ? ( - + ) : ( ) @@ -342,26 +346,14 @@ export default function BuildDetail() { ), hidden: !build?.part_detail?.testable }, - { - name: 'attachments', - label: t`Attachments`, - icon: , - content: ( - - ) - }, - { - name: 'notes', - label: t`Notes`, - icon: , - content: ( - - ) - } + AttachmentPanel({ + model_type: ModelType.build, + model_id: build.pk + }), + NotesPanel({ + model_type: ModelType.build, + model_id: build.pk + }) ]; }, [build, id, user]); @@ -477,9 +469,8 @@ export default function BuildDetail() { items={[build.pk]} enableReports />, - } actions={[ EditItemAction({ onClick: () => editBuild.open(), @@ -536,12 +527,21 @@ export default function BuildDetail() { editEnabled={user.hasChangePermission(ModelType.part)} imageUrl={build.part_detail?.image ?? build.part_detail?.thumbnail} breadcrumbs={[ - { name: t`Build Orders`, url: '/build' }, - { name: build.reference, url: `/build/${build.pk}` } + { name: t`Manufacturing`, url: '/manufacturing' }, + { + name: build.reference, + url: getDetailUrl(ModelType.build, build.pk) + } ]} actions={buildActions} /> - + diff --git a/src/frontend/src/pages/build/BuildIndex.tsx b/src/frontend/src/pages/build/BuildIndex.tsx index aae18ff115..b5d0197e50 100644 --- a/src/frontend/src/pages/build/BuildIndex.tsx +++ b/src/frontend/src/pages/build/BuildIndex.tsx @@ -1,8 +1,11 @@ import { t } from '@lingui/macro'; import { Stack } from '@mantine/core'; +import { IconTools } from '@tabler/icons-react'; +import { useMemo } from 'react'; import PermissionDenied from '../../components/errors/PermissionDenied'; import { PageDetail } from '../../components/nav/PageDetail'; +import { PanelGroup } from '../../components/panels/PanelGroup'; import { UserRoles } from '../../enums/Roles'; import { useUserState } from '../../states/UserState'; import { BuildOrderTable } from '../../tables/build/BuildOrderTable'; @@ -17,10 +20,26 @@ export default function BuildIndex() { return ; } + const panels = useMemo(() => { + return [ + { + name: 'buildorders', + label: t`Build Orders`, + content: , + icon: + } + ]; + }, []); + return ( - - + + ); } diff --git a/src/frontend/src/pages/company/CompanyDetail.tsx b/src/frontend/src/pages/company/CompanyDetail.tsx index 77e1f75f49..5d71d4d662 100644 --- a/src/frontend/src/pages/company/CompanyDetail.tsx +++ b/src/frontend/src/pages/company/CompanyDetail.tsx @@ -3,13 +3,10 @@ import { Grid, Skeleton, Stack } from '@mantine/core'; import { IconBuildingFactory2, IconBuildingWarehouse, - IconDots, IconInfoCircle, IconMap2, - IconNotes, IconPackageExport, IconPackages, - IconPaperclip, IconShoppingCart, IconTruckDelivery, IconTruckReturn, @@ -23,16 +20,18 @@ import { DetailsField, DetailsTable } from '../../components/details/Details'; import DetailsBadge from '../../components/details/DetailsBadge'; import { DetailsImage } from '../../components/details/DetailsImage'; import { ItemDetailsGrid } from '../../components/details/ItemDetails'; -import NotesEditor from '../../components/editors/NotesEditor'; import { - ActionDropdown, DeleteItemAction, - EditItemAction + EditItemAction, + OptionsActionDropdown } from '../../components/items/ActionDropdown'; import { Breadcrumb } from '../../components/nav/BreadcrumbList'; import InstanceDetail from '../../components/nav/InstanceDetail'; import { PageDetail } from '../../components/nav/PageDetail'; -import { PanelGroup, PanelType } from '../../components/nav/PanelGroup'; +import AttachmentPanel from '../../components/panels/AttachmentPanel'; +import NotesPanel from '../../components/panels/NotesPanel'; +import { PanelType } from '../../components/panels/Panel'; +import { PanelGroup } from '../../components/panels/PanelGroup'; import { ApiEndpoints } from '../../enums/ApiEndpoints'; import { ModelType } from '../../enums/ModelType'; import { UserRoles } from '../../enums/Roles'; @@ -42,10 +41,10 @@ import { useEditApiFormModal } from '../../hooks/UseForm'; import { useInstance } from '../../hooks/UseInstance'; +import { apiUrl } from '../../states/ApiState'; import { useUserState } from '../../states/UserState'; import { AddressTable } from '../../tables/company/AddressTable'; import { ContactTable } from '../../tables/company/ContactTable'; -import { AttachmentTable } from '../../tables/general/AttachmentTable'; import { ManufacturerPartTable } from '../../tables/purchasing/ManufacturerPartTable'; import { PurchaseOrderTable } from '../../tables/purchasing/PurchaseOrderTable'; import { SupplierPartTable } from '../../tables/purchasing/SupplierPartTable'; @@ -146,12 +145,13 @@ export default function CompanyDetail(props: Readonly) { @@ -169,7 +169,7 @@ export default function CompanyDetail(props: Readonly) { return [ { name: 'details', - label: t`Details`, + label: t`Company Details`, icon: , content: detailsPanel }, @@ -223,8 +223,10 @@ export default function CompanyDetail(props: Readonly) { label: t`Return Orders`, icon: , hidden: !company?.is_customer, - content: company.pk && ( - + content: company.pk ? ( + + ) : ( + ) }, { @@ -254,33 +256,14 @@ export default function CompanyDetail(props: Readonly) { icon: , content: company?.pk && }, - { - name: 'attachments', - label: t`Attachments`, - icon: , - content: ( - - ) - }, - { - name: 'notes', - label: t`Notes`, - icon: , - content: ( - - ) - } + AttachmentPanel({ + model_type: ModelType.company, + model_id: company.pk + }), + NotesPanel({ + model_type: ModelType.company, + model_id: company.pk + }) ]; }, [id, company, user]); @@ -302,9 +285,8 @@ export default function CompanyDetail(props: Readonly) { const companyActions = useMemo(() => { return [ , - } actions={[ EditItemAction({ hidden: !user.hasChangeRole(UserRoles.purchase_order), @@ -345,7 +327,13 @@ export default function CompanyDetail(props: Readonly) { editAction={editCompany.open} editEnabled={user.hasChangePermission(ModelType.company)} /> - + diff --git a/src/frontend/src/pages/company/ManufacturerPartDetail.tsx b/src/frontend/src/pages/company/ManufacturerPartDetail.tsx index d1120c32f9..5d5465eb3b 100644 --- a/src/frontend/src/pages/company/ManufacturerPartDetail.tsx +++ b/src/frontend/src/pages/company/ManufacturerPartDetail.tsx @@ -2,11 +2,8 @@ import { t } from '@lingui/macro'; import { Grid, Skeleton, Stack } from '@mantine/core'; import { IconBuildingWarehouse, - IconDots, IconInfoCircle, - IconList, - IconNotes, - IconPaperclip + IconList } from '@tabler/icons-react'; import { useMemo } from 'react'; import { useNavigate, useParams } from 'react-router-dom'; @@ -15,16 +12,18 @@ import AdminButton from '../../components/buttons/AdminButton'; import { DetailsField, DetailsTable } from '../../components/details/Details'; import { DetailsImage } from '../../components/details/DetailsImage'; import { ItemDetailsGrid } from '../../components/details/ItemDetails'; -import NotesEditor from '../../components/editors/NotesEditor'; import { - ActionDropdown, DeleteItemAction, DuplicateItemAction, - EditItemAction + EditItemAction, + OptionsActionDropdown } from '../../components/items/ActionDropdown'; import InstanceDetail from '../../components/nav/InstanceDetail'; import { PageDetail } from '../../components/nav/PageDetail'; -import { PanelGroup, PanelType } from '../../components/nav/PanelGroup'; +import AttachmentPanel from '../../components/panels/AttachmentPanel'; +import NotesPanel from '../../components/panels/NotesPanel'; +import { PanelType } from '../../components/panels/Panel'; +import { PanelGroup } from '../../components/panels/PanelGroup'; import { ApiEndpoints } from '../../enums/ApiEndpoints'; import { ModelType } from '../../enums/ModelType'; import { UserRoles } from '../../enums/Roles'; @@ -38,7 +37,6 @@ import { import { useInstance } from '../../hooks/UseInstance'; import { apiUrl } from '../../states/ApiState'; import { useUserState } from '../../states/UserState'; -import { AttachmentTable } from '../../tables/general/AttachmentTable'; import ManufacturerPartParameterTable from '../../tables/purchasing/ManufacturerPartParameterTable'; import { SupplierPartTable } from '../../tables/purchasing/SupplierPartTable'; @@ -79,18 +77,19 @@ export default function ManufacturerPartDetail() { }, { type: 'string', - name: 'description', - label: t`Description`, + name: 'part_detail.IPN', + label: t`IPN`, copy: true, - hidden: !manufacturerPart.description + icon: 'serial', + hidden: !data.part_detail?.IPN }, { - type: 'link', - external: true, - name: 'link', - label: t`External Link`, + type: 'string', + name: 'part_detail.description', + label: t`Description`, copy: true, - hidden: !manufacturerPart.link + icon: 'info', + hidden: !manufacturerPart.description } ]; @@ -110,6 +109,22 @@ export default function ManufacturerPartDetail() { copy: true, hidden: !manufacturerPart.MPN, icon: 'reference' + }, + { + type: 'string', + name: 'description', + label: t`Description`, + copy: true, + hidden: !manufacturerPart.description, + icon: 'info' + }, + { + type: 'link', + external: true, + name: 'link', + label: t`External Link`, + copy: true, + hidden: !manufacturerPart.link } ]; @@ -128,11 +143,7 @@ export default function ManufacturerPartDetail() { /> - + @@ -174,29 +185,14 @@ export default function ManufacturerPartDetail() { ) }, - { - name: 'attachments', - label: t`Attachments`, - icon: , - content: ( - - ) - }, - { - name: 'notes', - label: t`Notes`, - icon: , - content: ( - - ) - } + AttachmentPanel({ + model_type: ModelType.manufacturerpart, + model_id: manufacturerPart?.pk + }), + NotesPanel({ + model_type: ModelType.manufacturerpart, + model_id: manufacturerPart?.pk + }) ]; }, [manufacturerPart]); @@ -236,9 +232,8 @@ export default function ManufacturerPartDetail() { model={ModelType.manufacturerpart} pk={manufacturerPart.pk} />, - } actions={[ DuplicateItemAction({ hidden: !user.hasAddRole(UserRoles.purchase_order), @@ -286,7 +281,13 @@ export default function ManufacturerPartDetail() { editAction={editManufacturerPart.open} editEnabled={user.hasChangePermission(ModelType.manufacturerpart)} /> - + diff --git a/src/frontend/src/pages/company/SupplierPartDetail.tsx b/src/frontend/src/pages/company/SupplierPartDetail.tsx index 2f536ce93d..e60fbea87b 100644 --- a/src/frontend/src/pages/company/SupplierPartDetail.tsx +++ b/src/frontend/src/pages/company/SupplierPartDetail.tsx @@ -2,9 +2,7 @@ import { t } from '@lingui/macro'; import { Grid, Skeleton, Stack } from '@mantine/core'; import { IconCurrencyDollar, - IconDots, IconInfoCircle, - IconNotes, IconPackages, IconShoppingCart } from '@tabler/icons-react'; @@ -16,17 +14,18 @@ import { DetailsField, DetailsTable } from '../../components/details/Details'; import DetailsBadge from '../../components/details/DetailsBadge'; import { DetailsImage } from '../../components/details/DetailsImage'; import { ItemDetailsGrid } from '../../components/details/ItemDetails'; -import NotesEditor from '../../components/editors/NotesEditor'; import { - ActionDropdown, BarcodeActionDropdown, DeleteItemAction, DuplicateItemAction, - EditItemAction + EditItemAction, + OptionsActionDropdown } from '../../components/items/ActionDropdown'; import InstanceDetail from '../../components/nav/InstanceDetail'; import { PageDetail } from '../../components/nav/PageDetail'; -import { PanelGroup, PanelType } from '../../components/nav/PanelGroup'; +import NotesPanel from '../../components/panels/NotesPanel'; +import { PanelType } from '../../components/panels/Panel'; +import { PanelGroup } from '../../components/panels/PanelGroup'; import { ApiEndpoints } from '../../enums/ApiEndpoints'; import { ModelType } from '../../enums/ModelType'; import { UserRoles } from '../../enums/Roles'; @@ -88,9 +87,19 @@ export default function SupplierPartDetail() { }, { type: 'string', - name: 'description', - label: t`Description`, - copy: true + name: 'part_detail.IPN', + label: t`IPN`, + copy: true, + hidden: !data.part_detail?.IPN, + icon: 'serial' + }, + { + type: 'string', + name: 'part_detail.description', + label: t`Part Description`, + copy: true, + icon: 'info', + hidden: !data.part_detail?.description }, { type: 'link', @@ -125,6 +134,13 @@ export default function SupplierPartDetail() { copy: true, icon: 'reference' }, + { + type: 'string', + name: 'description', + label: t`Description`, + copy: true, + hidden: !data.description + }, { type: 'link', name: 'manufacturer', @@ -196,7 +212,7 @@ export default function SupplierPartDetail() { /> - + @@ -248,18 +264,10 @@ export default function SupplierPartDetail() { ) }, - { - name: 'notes', - label: t`Notes`, - icon: , - content: ( - - ) - } + NotesPanel({ + model_type: ModelType.supplierpart, + model_id: supplierPart?.pk + }) ]; }, [supplierPart]); @@ -272,9 +280,8 @@ export default function SupplierPartDetail() { hash={supplierPart.barcode_hash} perm={user.hasChangeRole(UserRoles.purchase_order)} />, - } actions={[ DuplicateItemAction({ hidden: !user.hasAddRole(UserRoles.purchase_order), @@ -363,7 +370,13 @@ export default function SupplierPartDetail() { editAction={editSupplierPart.open} editEnabled={user.hasChangePermission(ModelType.supplierpart)} /> - + diff --git a/src/frontend/src/pages/part/CategoryDetail.tsx b/src/frontend/src/pages/part/CategoryDetail.tsx index 2f0c8f6ada..a8f0590386 100644 --- a/src/frontend/src/pages/part/CategoryDetail.tsx +++ b/src/frontend/src/pages/part/CategoryDetail.tsx @@ -2,7 +2,6 @@ import { t } from '@lingui/macro'; import { Group, LoadingOverlay, Skeleton, Stack, Text } from '@mantine/core'; import { IconCategory, - IconDots, IconInfoCircle, IconListDetails, IconSitemap @@ -14,15 +13,16 @@ import AdminButton from '../../components/buttons/AdminButton'; import { DetailsField, DetailsTable } from '../../components/details/Details'; import { ItemDetailsGrid } from '../../components/details/ItemDetails'; import { - ActionDropdown, DeleteItemAction, - EditItemAction + EditItemAction, + OptionsActionDropdown } from '../../components/items/ActionDropdown'; import { ApiIcon } from '../../components/items/ApiIcon'; import InstanceDetail from '../../components/nav/InstanceDetail'; import NavigationTree from '../../components/nav/NavigationTree'; import { PageDetail } from '../../components/nav/PageDetail'; -import { PanelGroup, PanelType } from '../../components/nav/PanelGroup'; +import { PanelType } from '../../components/panels/Panel'; +import { PanelGroup } from '../../components/panels/PanelGroup'; import { ApiEndpoints } from '../../enums/ApiEndpoints'; import { ModelType } from '../../enums/ModelType'; import { UserRoles } from '../../enums/Roles'; @@ -109,6 +109,12 @@ export default function CategoryDetail() { label: t`Parent Category`, model: ModelType.partcategory, hidden: !category?.parent + }, + { + type: 'boolean', + name: 'starred', + icon: 'notification', + label: t`Subscribed` } ]; @@ -165,7 +171,7 @@ export default function CategoryDetail() { url: ApiEndpoints.category_list, pk: id, title: t`Edit Part Category`, - fields: partCategoryFields(), + fields: partCategoryFields({}), onFormSuccess: refreshInstance }); @@ -212,9 +218,8 @@ export default function CategoryDetail() { const categoryActions = useMemo(() => { return [ , - } actions={[ EditItemAction({ hidden: !id || !user.hasChangeRole(UserRoles.part_category), @@ -231,7 +236,7 @@ export default function CategoryDetail() { ]; }, [id, user, category.pk]); - const categoryPanels: PanelType[] = useMemo( + const panels: PanelType[] = useMemo( () => [ { name: 'details', @@ -313,7 +318,13 @@ export default function CategoryDetail() { editAction={editCategory.open} editEnabled={user.hasChangePermission(ModelType.partcategory)} /> - + diff --git a/src/frontend/src/pages/part/PartAllocationPanel.tsx b/src/frontend/src/pages/part/PartAllocationPanel.tsx new file mode 100644 index 0000000000..e64a8a999a --- /dev/null +++ b/src/frontend/src/pages/part/PartAllocationPanel.tsx @@ -0,0 +1,55 @@ +import { t } from '@lingui/macro'; +import { Accordion } from '@mantine/core'; + +import { StylishText } from '../../components/items/StylishText'; +import { ModelType } from '../../enums/ModelType'; +import { UserRoles } from '../../enums/Roles'; +import { useUserState } from '../../states/UserState'; +import BuildAllocatedStockTable from '../../tables/build/BuildAllocatedStockTable'; +import SalesOrderAllocationTable from '../../tables/sales/SalesOrderAllocationTable'; + +export default function PartAllocationPanel({ part }: { part: any }) { + const user = useUserState(); + + return ( + <> + + {part.component && user.hasViewRole(UserRoles.build) && ( + + + {t`Build Order Allocations`} + + + + + + )} + {part.salable && user.hasViewRole(UserRoles.sales_order) && ( + + + {t`Sales Order Allocations`} + + + + + + )} + + + ); +} diff --git a/src/frontend/src/pages/part/PartDetail.tsx b/src/frontend/src/pages/part/PartDetail.tsx index 8be6048f06..3a8baf259d 100644 --- a/src/frontend/src/pages/part/PartDetail.tsx +++ b/src/frontend/src/pages/part/PartDetail.tsx @@ -1,8 +1,9 @@ import { t } from '@lingui/macro'; import { - Accordion, Alert, + Center, Grid, + Loader, Skeleton, Space, Stack, @@ -15,20 +16,19 @@ import { IconCalendarStats, IconClipboardList, IconCurrencyDollar, - IconDots, IconInfoCircle, IconLayersLinked, IconList, IconListTree, - IconNotes, + IconLock, IconPackages, - IconPaperclip, IconReportAnalytics, IconShoppingCart, IconStack2, IconTestPipe, IconTools, IconTruckDelivery, + IconTruckReturn, IconVersions } from '@tabler/icons-react'; import { useQuery, useSuspenseQuery } from '@tanstack/react-query'; @@ -43,7 +43,6 @@ import { DetailsField, DetailsTable } from '../../components/details/Details'; import DetailsBadge from '../../components/details/DetailsBadge'; import { DetailsImage } from '../../components/details/DetailsImage'; import { ItemDetailsGrid } from '../../components/details/ItemDetails'; -import NotesEditor from '../../components/editors/NotesEditor'; import { ApiFormFieldSet } from '../../components/forms/fields/ApiFormField'; import { Thumbnail } from '../../components/images/Thumbnail'; import { @@ -51,14 +50,16 @@ import { BarcodeActionDropdown, DeleteItemAction, DuplicateItemAction, - EditItemAction + EditItemAction, + OptionsActionDropdown } from '../../components/items/ActionDropdown'; -import { PlaceholderPanel } from '../../components/items/Placeholder'; -import { StylishText } from '../../components/items/StylishText'; import InstanceDetail from '../../components/nav/InstanceDetail'; import NavigationTree from '../../components/nav/NavigationTree'; import { PageDetail } from '../../components/nav/PageDetail'; -import { PanelGroup, PanelType } from '../../components/nav/PanelGroup'; +import AttachmentPanel from '../../components/panels/AttachmentPanel'; +import NotesPanel from '../../components/panels/NotesPanel'; +import { PanelType } from '../../components/panels/Panel'; +import { PanelGroup } from '../../components/panels/PanelGroup'; import { RenderPart } from '../../components/render/Part'; import { formatPriceRange } from '../../defaults/formatters'; import { ApiEndpoints } from '../../enums/ApiEndpoints'; @@ -79,13 +80,14 @@ import { } from '../../hooks/UseForm'; import { useInstance } from '../../hooks/UseInstance'; import { apiUrl } from '../../states/ApiState'; -import { useGlobalSettingsState } from '../../states/SettingsState'; +import { + useGlobalSettingsState, + useUserSettingsState +} from '../../states/SettingsState'; import { useUserState } from '../../states/UserState'; import { BomTable } from '../../tables/bom/BomTable'; import { UsedInTable } from '../../tables/bom/UsedInTable'; -import BuildAllocatedStockTable from '../../tables/build/BuildAllocatedStockTable'; import { BuildOrderTable } from '../../tables/build/BuildOrderTable'; -import { AttachmentTable } from '../../tables/general/AttachmentTable'; import { PartParameterTable } from '../../tables/part/PartParameterTable'; import PartPurchaseOrdersTable from '../../tables/part/PartPurchaseOrdersTable'; import PartTestTemplateTable from '../../tables/part/PartTestTemplateTable'; @@ -93,11 +95,14 @@ import { PartVariantTable } from '../../tables/part/PartVariantTable'; import { RelatedPartTable } from '../../tables/part/RelatedPartTable'; import { ManufacturerPartTable } from '../../tables/purchasing/ManufacturerPartTable'; import { SupplierPartTable } from '../../tables/purchasing/SupplierPartTable'; -import SalesOrderAllocationTable from '../../tables/sales/SalesOrderAllocationTable'; +import { ReturnOrderTable } from '../../tables/sales/ReturnOrderTable'; import { SalesOrderTable } from '../../tables/sales/SalesOrderTable'; import { StockItemTable } from '../../tables/stock/StockItemTable'; import { TestStatisticsTable } from '../../tables/stock/TestStatisticsTable'; +import PartAllocationPanel from './PartAllocationPanel'; import PartPricingPanel from './PartPricingPanel'; +import PartSchedulingDetail from './PartSchedulingDetail'; +import PartStocktakeDetail from './PartStocktakeDetail'; /** * Detail view for a single Part instance @@ -111,6 +116,15 @@ export default function PartDetail() { const [treeOpen, setTreeOpen] = useState(false); const globalSettings = useGlobalSettingsState(); + const userSettings = useUserSettingsState(); + + const { instance: serials } = useInstance({ + endpoint: ApiEndpoints.part_serial_numbers, + pk: id, + hasPrimaryKey: true, + refetchOnMount: false, + defaultValue: {} + }); const { instance: part, @@ -126,15 +140,22 @@ export default function PartDetail() { refetchOnMount: true }); - part.required = - (part?.required_for_build_orders ?? 0) + - (part?.required_for_sales_orders ?? 0); - const detailsPanel = useMemo(() => { if (instanceQuery.isFetching) { return ; } + let data = { ...part }; + + data.required = + (data?.required_for_build_orders ?? 0) + + (data?.required_for_sales_orders ?? 0); + + // Provide latest serial number info + if (!!serials.latest) { + data.latest_serial_number = serials.latest; + } + // Construct the details tables let tl: DetailsField[] = [ { @@ -271,7 +292,10 @@ export default function PartDetail() { total: part.required_for_build_orders, progress: part.allocated_to_build_orders, label: t`Allocated to Build Orders`, - hidden: !part.component || part.required_for_build_orders <= 0 + hidden: + !part.component || + (part.required_for_build_orders <= 0 && + part.allocated_to_build_orders <= 0) }, { type: 'progressbar', @@ -279,7 +303,10 @@ export default function PartDetail() { total: part.required_for_sales_orders, progress: part.allocated_to_sales_orders, label: t`Allocated to Sales Orders`, - hidden: !part.salable || part.required_for_sales_orders <= 0 + hidden: + !part.salable || + (part.required_for_sales_orders <= 0 && + part.allocated_to_sales_orders <= 0) }, { type: 'string', @@ -342,13 +369,20 @@ export default function PartDetail() { }, { type: 'boolean', - name: 'saleable', + name: 'salable', + icon: 'saleable', label: t`Saleable Part` }, { type: 'boolean', name: 'virtual', label: t`Virtual Part` + }, + { + type: 'boolean', + name: 'starred', + label: t`Subscribed`, + icon: 'bell' } ]; @@ -392,7 +426,7 @@ export default function PartDetail() { const { data } = useSuspenseQuery({ queryKey: ['pricing', id], queryFn: async () => { - const url = apiUrl(ApiEndpoints.part_pricing_get, null, { + const url = apiUrl(ApiEndpoints.part_pricing, null, { id: id }); @@ -403,17 +437,17 @@ export default function PartDetail() { case 200: return response.data; default: - return null; + return {}; } }) .catch(() => { - return null; + return {}; }); } }); return ( - data && + data.overall_min && `${formatPriceRange(data.overall_min, data.overall_max)}${ part.units && ' / ' + part.units }` @@ -422,6 +456,14 @@ export default function PartDetail() { }); } + br.push({ + type: 'string', + name: 'latest_serial_number', + label: t`Latest Serial Number`, + hidden: !part.trackable || !data.latest_serial_number, + icon: 'serial' + }); + // Add in stocktake information if (id && part.last_stocktake) { br.push({ @@ -443,19 +485,19 @@ export default function PartDetail() { if (response.data.length > 0) { return response.data[response.data.length - 1]; } else { - return null; + return {}; } default: - return null; + return {}; } }) .catch(() => { - return null; + return {}; }); } }); - if (data.quantity) { + if (data && data.quantity) { return `${data.quantity} (${data.date})`; } else { return '-'; @@ -482,11 +524,11 @@ export default function PartDetail() { case 200: return response.data[response.data.length - 1]; default: - return null; + return {}; } }) .catch(() => { - return null; + return {}; }); } }); @@ -503,6 +545,7 @@ export default function PartDetail() { appRole={UserRoles.part} imageActions={{ selectExisting: true, + downloadImage: true, uploadFile: true, deleteFile: true }} @@ -513,17 +556,17 @@ export default function PartDetail() { /> - + - - - + + + ) : ( ); - }, [part, instanceQuery]); + }, [globalSettings, part, serials, instanceQuery]); // Part data panels (recalculate when part data changes) const partPanels: PanelType[] = useMemo(() => { @@ -549,7 +592,7 @@ export default function PartDetail() { name: 'stock', label: t`Stock`, icon: , - content: part.pk && ( + content: part.pk ? ( + ) : ( +
+ +
) }, { @@ -571,59 +618,25 @@ export default function PartDetail() { label: t`Allocations`, icon: , hidden: !part.component && !part.salable, - content: ( - - {part.component && ( - - - {t`Build Order Allocations`} - - - - - - )} - {part.salable && ( - - - {t`Sales Order Allocations`} - - - - - - )} - - ) + content: part.pk ? : }, { name: 'bom', label: t`Bill of Materials`, icon: , hidden: !part.assembly, - content: ( + content: part?.pk ? ( + ) : ( + ) }, { name: 'builds', label: t`Build Orders`, icon: , - hidden: !part.assembly, - content: part?.pk ? : + hidden: !part.assembly || !user.hasViewRole(UserRoles.build), + content: part.pk ? : }, { name: 'used_in', @@ -655,7 +668,8 @@ export default function PartDetail() { name: 'suppliers', label: t`Suppliers`, icon: , - hidden: !part.purchaseable, + hidden: + !part.purchaseable || !user.hasViewRole(UserRoles.purchase_order), content: part.pk && ( , - hidden: !part.purchaseable, - content: + hidden: + !part.purchaseable || !user.hasViewRole(UserRoles.purchase_order), + content: part.pk ? ( + + ) : ( + + ) }, { name: 'sales_orders', label: t`Sales Orders`, icon: , - hidden: !part.salable, + hidden: !part.salable || !user.hasViewRole(UserRoles.sales_order), content: part.pk ? : }, + { + name: 'return_orders', + label: t`Return Orders`, + icon: , + hidden: + !part.salable || + !user.hasViewRole(UserRoles.return_order) || + !globalSettings.isSet('RETURNORDER_ENABLED'), + content: part.pk ? : + }, + { + name: 'stocktake', + label: t`Stock History`, + icon: , + content: part ? : , + hidden: + !user.hasViewRole(UserRoles.stocktake) || + !globalSettings.isSet('STOCKTAKE_ENABLE') || + !userSettings.isSet('DISPLAY_STOCKTAKE_TAB') + }, { name: 'scheduling', label: t`Scheduling`, icon: , - content: - }, - { - name: 'stocktake', - label: t`Stocktake`, - icon: , - content: + content: part ? : , + hidden: !userSettings.isSet('DISPLAY_SCHEDULE_TAB') }, { name: 'test_templates', @@ -723,28 +757,16 @@ export default function PartDetail() { icon: , content: }, - { - name: 'attachments', - label: t`Attachments`, - icon: , - content: ( - - ) - }, - { - name: 'notes', - label: t`Notes`, - icon: , - content: ( - - ) - } + AttachmentPanel({ + model_type: ModelType.part, + model_id: part?.pk + }), + NotesPanel({ + model_type: ModelType.part, + model_id: part?.pk + }) ]; - }, [id, part, user]); + }, [id, part, user, globalSettings, userSettings]); // Fetch information on part revision const partRevisionQuery = useQuery({ @@ -885,12 +907,6 @@ export default function PartDetail() { visible={part.building > 0} key="in_production" />, - , , - } actions={[ DuplicateItemAction({ hidden: !user.hasAddRole(UserRoles.part), @@ -1077,12 +1092,17 @@ export default function PartDetail() { /> + ) : undefined + } subtitle={part.description} imageUrl={part.image} badges={badges} breadcrumbs={breadcrumbs} breadcrumbAction={() => { - setTreeOpen(true); + setTreeOpen(true); // Open the category tree }} editAction={editPart.open} editEnabled={user.hasChangeRole(UserRoles.part)} @@ -1122,7 +1142,13 @@ export default function PartDetail() { ) } /> - + {transferStockItems.modal} {countStockItems.modal} diff --git a/src/frontend/src/pages/part/PartPricingPanel.tsx b/src/frontend/src/pages/part/PartPricingPanel.tsx index c0526d1551..0fdc1c6191 100644 --- a/src/frontend/src/pages/part/PartPricingPanel.tsx +++ b/src/frontend/src/pages/part/PartPricingPanel.tsx @@ -5,6 +5,7 @@ import { useMemo, useState } from 'react'; import { ApiEndpoints } from '../../enums/ApiEndpoints'; import { UserRoles } from '../../enums/Roles'; import { useInstance } from '../../hooks/UseInstance'; +import { useGlobalSettingsState } from '../../states/SettingsState'; import { useUserState } from '../../states/UserState'; import BomPricingPanel from './pricing/BomPricingPanel'; import PriceBreakPanel from './pricing/PriceBreakPanel'; @@ -28,18 +29,21 @@ export enum panelOptions { overall = 'overall' } -export default function PartPricingPanel({ part }: { part: any }) { +export default function PartPricingPanel({ part }: Readonly<{ part: any }>) { const user = useUserState(); + const globalSettings = useGlobalSettingsState(); + const { instance: pricing, instanceQuery } = useInstance({ pk: part?.pk, hasPrimaryKey: true, - endpoint: ApiEndpoints.part_pricing_get, + endpoint: ApiEndpoints.part_pricing, defaultValue: {} }); - // TODO: Do we display internal price? This is a global setting - const internalPricing = true; + const internalPricing: boolean = useMemo(() => { + return globalSettings.isSet('PART_INTERNAL_PRICE'); + }, [globalSettings]); const purchaseOrderPricing = useMemo(() => { return user.hasViewRole(UserRoles.purchase_order) && part?.purchaseable; @@ -75,6 +79,7 @@ export default function PartPricingPanel({ part }: { part: any }) { } diff --git a/src/frontend/src/pages/part/PartSchedulingDetail.tsx b/src/frontend/src/pages/part/PartSchedulingDetail.tsx new file mode 100644 index 0000000000..612ef028cc --- /dev/null +++ b/src/frontend/src/pages/part/PartSchedulingDetail.tsx @@ -0,0 +1,313 @@ +import { t } from '@lingui/macro'; +import { ChartTooltipProps, LineChart } from '@mantine/charts'; +import { + Alert, + Center, + Divider, + Loader, + Paper, + SimpleGrid, + Text +} from '@mantine/core'; +import { ReactNode, useMemo } from 'react'; +import { useNavigate } from 'react-router-dom'; + +import { formatDate } from '../../defaults/formatters'; +import { ApiEndpoints } from '../../enums/ApiEndpoints'; +import { navigateToLink } from '../../functions/navigation'; +import { getDetailUrl } from '../../functions/urls'; +import { useTable } from '../../hooks/UseTable'; +import { apiUrl } from '../../states/ApiState'; +import { TableColumn } from '../../tables/Column'; +import { DateColumn, DescriptionColumn } from '../../tables/ColumnRenderers'; +import { InvenTreeTable } from '../../tables/InvenTreeTable'; +import { TableHoverCard } from '../../tables/TableHoverCard'; + +/* + * Render a tooltip for the chart, with correct date information + */ +function ChartTooltip({ label, payload }: ChartTooltipProps) { + if (!payload) { + return null; + } + + if (label && typeof label == 'number') { + label = formatDate(new Date(label).toISOString()); + } + + const scheduled = payload.find((item) => item.name == 'scheduled'); + const minimum = payload.find((item) => item.name == 'minimum'); + const maximum = payload.find((item) => item.name == 'maximum'); + + return ( + + {label} + + + {t`Maximum`} : {maximum?.value} + + + {t`Scheduled`} : {scheduled?.value} + + + {t`Minimum`} : {minimum?.value} + + + ); +} + +export default function PartSchedulingDetail({ part }: { part: any }) { + const table = useTable('part-scheduling'); + const navigate = useNavigate(); + + const tableColumns: TableColumn[] = useMemo(() => { + return [ + { + accessor: 'label', + switchable: false, + title: t`Order` + }, + DescriptionColumn({ + accessor: 'title', + switchable: false + }), + DateColumn({ + sortable: false, + switchable: false + }), + { + accessor: 'quantity', + title: t`Quantity`, + switchable: false, + render: (record: any) => { + let q = record.quantity; + let extra: ReactNode[] = []; + + if (record.speculative_quantity != 0) { + q = record.speculative_quantity; + extra.push( + {t`Quantity is speculative`} + ); + } + + if (!record.date) { + extra.push( + {t`No date available for provided quantity`} + ); + } else if (new Date(record.date) < new Date()) { + extra.push( + {t`Date is in the past`} + ); + } + + return ( + {q}} + title={t`Scheduled Quantity`} + extra={extra} + /> + ); + } + } + ]; + }, []); + + const chartData = useMemo(() => { + /* Rebuild chart data whenever the table data changes. + * Note: We assume that the data is provided in increasing date order, + * with "null" date entries placed first. + */ + + const today = new Date(); + today.setHours(0, 0, 0, 0); + + // Date bounds + let min_date: Date = new Date(); + let max_date: Date = new Date(); + + // Track stock scheduling throughout time + let stock = part.in_stock ?? 0; + let stock_min = stock; + let stock_max = stock; + + // First, iterate through each entry and find any entries without an associated date, or in the past + table.records.forEach((record) => { + let q = record.quantity + record.speculative_quantity; + + if (record.date == null || new Date(record.date) < today) { + if (q < 0) { + stock_min += q; + } else { + stock_max += q; + } + } + }); + + // Construct initial chart entry (for today) + let entries: any[] = [ + { + // date: formatDate(today.toISOString()), + date: today.valueOf(), + delta: 0, + scheduled: stock, + minimum: stock_min, + maximum: stock_max, + low_stock: part.minimum_stock + } + ]; + + table.records.forEach((record) => { + let q = record.quantity + record.speculative_quantity; + + if (!record.date) { + return; + } + + const date = new Date(record.date); + + // In the past? Ignore this entry + if (date < today) { + return; + } + + // Update date limits + + if (date < min_date) { + min_date = date; + } + + if (date > max_date) { + max_date = date; + } + + // Update stock levels + stock += record.quantity; + + stock_min += record.quantity; + stock_max += record.quantity; + + // Speculative quantities expand the expected stock range + if (record.speculative_quantity < 0) { + stock_min += record.speculative_quantity; + } else if (record.speculative_quantity > 0) { + stock_max += record.speculative_quantity; + } + + entries.push({ + ...record, + date: new Date(record.date).valueOf(), + scheduled: stock, + minimum: stock_min, + maximum: stock_max, + low_stock: part.minimum_stock + }); + }); + + return entries; + }, [part, table.records]); + + // Calculate the date limits of the chart + const chartLimits: number[] = useMemo(() => { + let min_date = new Date(); + let max_date = new Date(); + + if (chartData.length > 0) { + min_date = new Date(chartData[0].date); + max_date = new Date(chartData[chartData.length - 1].date); + } + + // Expand limits by one day on either side + min_date.setDate(min_date.getDate() - 1); + max_date.setDate(max_date.getDate() + 1); + + return [min_date.valueOf(), max_date.valueOf()]; + }, [chartData]); + + const hasSchedulingInfo: boolean = useMemo( + () => table.recordCount > 0, + [table.recordCount] + ); + + return ( + <> + {!table.isLoading && !hasSchedulingInfo && ( + + {t`There is no scheduling information available for the selected part`} + + )} + + { + const url = getDetailUrl(record.model, record.model_id); + + if (url) { + navigateToLink(url, navigate, event); + } + } + }} + /> + {table.isLoading ? ( +
+ +
+ ) : ( + ( + + ) + }} + yAxisLabel={t`Expected Quantity`} + xAxisLabel={t`Date`} + xAxisProps={{ + domain: chartLimits, + scale: 'time', + type: 'number', + tickFormatter: (value: number) => { + return formatDate(new Date(value).toISOString()); + } + }} + series={[ + { + name: 'scheduled', + label: t`Scheduled`, + color: 'blue.6' + }, + { + name: 'minimum', + label: t`Minimum`, + color: 'yellow.6' + }, + { + name: 'maximum', + label: t`Maximum`, + color: 'teal.6' + }, + { + name: 'low_stock', + label: t`Low Stock`, + color: 'red.6' + } + ]} + /> + )} +
+ + ); +} diff --git a/src/frontend/src/pages/part/PartStocktakeDetail.tsx b/src/frontend/src/pages/part/PartStocktakeDetail.tsx new file mode 100644 index 0000000000..6b7e54688b --- /dev/null +++ b/src/frontend/src/pages/part/PartStocktakeDetail.tsx @@ -0,0 +1,274 @@ +import { t } from '@lingui/macro'; +import { ChartTooltipProps, LineChart } from '@mantine/charts'; +import { + Center, + Divider, + Loader, + Paper, + SimpleGrid, + Text +} from '@mantine/core'; +import { useCallback, useMemo, useState } from 'react'; + +import { AddItemButton } from '../../components/buttons/AddItemButton'; +import { formatDate, formatPriceRange } from '../../defaults/formatters'; +import { ApiEndpoints } from '../../enums/ApiEndpoints'; +import { UserRoles } from '../../enums/Roles'; +import { + generateStocktakeReportFields, + partStocktakeFields +} from '../../forms/PartForms'; +import { + useCreateApiFormModal, + useDeleteApiFormModal, + useEditApiFormModal +} from '../../hooks/UseForm'; +import { useTable } from '../../hooks/UseTable'; +import { apiUrl } from '../../states/ApiState'; +import { useUserState } from '../../states/UserState'; +import { TableColumn } from '../../tables/Column'; +import { InvenTreeTable } from '../../tables/InvenTreeTable'; +import { RowDeleteAction, RowEditAction } from '../../tables/RowActions'; + +/* + * Render a tooltip for the chart, with correct date information + */ +function ChartTooltip({ label, payload }: ChartTooltipProps) { + const formattedLabel: string = useMemo(() => { + if (label && typeof label === 'number') { + return formatDate(new Date(label).toISOString()) ?? label; + } else if (!!label) { + return label.toString(); + } else { + return ''; + } + }, [label]); + + if (!payload) { + return null; + } + + const quantity = payload.find((item) => item.name == 'quantity'); + const value_min = payload.find((item) => item.name == 'value_min'); + const value_max = payload.find((item) => item.name == 'value_max'); + + return ( + + {formattedLabel} + + + {t`Quantity`} : {quantity?.value} + + + {t`Value`} : {formatPriceRange(value_min?.value, value_max?.value)} + + + ); +} + +export default function PartStocktakeDetail({ partId }: { partId: number }) { + const user = useUserState(); + const table = useTable('part-stocktake'); + + const stocktakeFields = useMemo(() => partStocktakeFields(), []); + + const [selectedStocktake, setSelectedStocktake] = useState< + number | undefined + >(undefined); + + const editStocktakeEntry = useEditApiFormModal({ + pk: selectedStocktake, + url: ApiEndpoints.part_stocktake_list, + title: t`Edit Stocktake Entry`, + fields: stocktakeFields, + table: table + }); + + const deleteStocktakeEntry = useDeleteApiFormModal({ + pk: selectedStocktake, + url: ApiEndpoints.part_stocktake_list, + title: t`Delete Stocktake Entry`, + table: table + }); + + const generateReport = useCreateApiFormModal({ + url: ApiEndpoints.part_stocktake_report_generate, + title: t`Generate Stocktake Report`, + fields: generateStocktakeReportFields(), + initialData: { + part: partId + }, + successMessage: t`Stocktake report scheduled` + }); + + const tableColumns: TableColumn[] = useMemo(() => { + return [ + { + accessor: 'quantity', + sortable: true, + switchable: false + }, + { + accessor: 'item_count', + title: t`Stock Items`, + switchable: true, + sortable: true + }, + { + accessor: 'cost', + title: t`Stock Value`, + render: (record: any) => { + return formatPriceRange(record.cost_min, record.cost_max, { + currency: record.cost_min_currency + }); + } + }, + { + accessor: 'date', + sortable: true + }, + { + accessor: 'note' + } + ]; + }, []); + + const tableActions = useMemo(() => { + return [ + generateReport.open()} + hidden={!user.hasAddRole(UserRoles.stocktake)} + /> + ]; + }, [user]); + + const rowActions = useCallback( + (record: any) => { + return [ + RowEditAction({ + hidden: !user.hasChangeRole(UserRoles.stocktake), + onClick: () => { + setSelectedStocktake(record.pk); + editStocktakeEntry.open(); + } + }), + RowDeleteAction({ + hidden: !user.hasDeleteRole(UserRoles.stocktake), + onClick: () => { + setSelectedStocktake(record.pk); + deleteStocktakeEntry.open(); + } + }) + ]; + }, + [user] + ); + + const chartData = useMemo(() => { + let records = + table.records?.map((record: any) => { + return { + date: new Date(record.date).valueOf(), + quantity: record.quantity, + value_min: record.cost_min, + value_max: record.cost_max + }; + }) ?? []; + + // Sort records to ensure correct date order + records.sort((a, b) => { + return a < b ? -1 : 1; + }); + + return records; + }, [table.records]); + + // Calculate the date limits of the chart + const chartLimits: number[] = useMemo(() => { + let min_date = new Date(); + let max_date = new Date(); + + if (chartData.length > 0) { + min_date = new Date(chartData[0].date); + max_date = new Date(chartData[chartData.length - 1].date); + } + + // Expand limits by one day on either side + min_date.setDate(min_date.getDate() - 1); + max_date.setDate(max_date.getDate() + 1); + + return [min_date.valueOf(), max_date.valueOf()]; + }, [chartData]); + + return ( + <> + {generateReport.modal} + {editStocktakeEntry.modal} + {deleteStocktakeEntry.modal} + + + {table.isLoading ? ( +
+ +
+ ) : ( + ( + + ) + }} + xAxisProps={{ + scale: 'time', + type: 'number', + domain: chartLimits, + tickFormatter: (value: number) => { + return formatDate(new Date(value).toISOString()); + } + }} + series={[ + { + name: 'quantity', + label: t`Quantity`, + color: 'blue.6', + yAxisId: 'left' + }, + { + name: 'value_min', + label: t`Minimum Value`, + color: 'yellow.6', + yAxisId: 'right' + }, + { + name: 'value_max', + label: t`Maximum Value`, + color: 'teal.6', + yAxisId: 'right' + } + ]} + /> + )} +
+ + ); +} diff --git a/src/frontend/src/pages/part/pricing/BomPricingPanel.tsx b/src/frontend/src/pages/part/pricing/BomPricingPanel.tsx index 3b992db87e..98bface11e 100644 --- a/src/frontend/src/pages/part/pricing/BomPricingPanel.tsx +++ b/src/frontend/src/pages/part/pricing/BomPricingPanel.tsx @@ -1,8 +1,9 @@ import { t } from '@lingui/macro'; -import { BarChart, DonutChart } from '@mantine/charts'; +import { BarChart, ChartTooltipProps, DonutChart } from '@mantine/charts'; import { Center, Group, + Paper, SegmentedControl, SimpleGrid, Stack, @@ -12,7 +13,11 @@ import { ReactNode, useMemo, useState } from 'react'; import { CHART_COLORS } from '../../../components/charts/colors'; import { tooltipFormatter } from '../../../components/charts/tooltipFormatter'; -import { formatDecimal, formatPriceRange } from '../../../defaults/formatters'; +import { + formatCurrency, + formatDecimal, + formatPriceRange +} from '../../../defaults/formatters'; import { ApiEndpoints } from '../../../enums/ApiEndpoints'; import { ModelType } from '../../../enums/ModelType'; import { useTable } from '../../../hooks/UseTable'; @@ -22,6 +27,30 @@ import { DateColumn, PartColumn } from '../../../tables/ColumnRenderers'; import { InvenTreeTable } from '../../../tables/InvenTreeTable'; import { LoadingPricingData, NoPricingData } from './PricingPanel'; +/* + * Render a tooltip for the chart, with correct date information + */ +function ChartTooltip({ label, payload }: ChartTooltipProps) { + if (!payload) { + return null; + } + + const data = payload[0] ?? {}; + + return ( + + + + {data.name} + + + {formatCurrency(data.payload?.value)} + + + + ); +} + // Display BOM data as a pie chart function BomPieChart({ data, @@ -57,6 +86,11 @@ function BomPieChart({ tooltipDataSource="segment" chartLabel={t`Total Price`} valueFormatter={(value) => tooltipFormatter(value, currency)} + tooltipProps={{ + content: ({ label, payload }) => ( + + ) + }} /> ); @@ -78,10 +112,15 @@ function BomBarChart({ xAxisLabel={t`Component`} yAxisLabel={t`Price Range`} series={[ - { name: 'total_price_min', label: t`Minimum Price`, color: 'blue.6' }, + { name: 'total_price_min', label: t`Minimum Price`, color: 'yellow.6' }, { name: 'total_price_max', label: t`Maximum Price`, color: 'teal.6' } ]} valueFormatter={(value) => tooltipFormatter(value, currency)} + tooltipProps={{ + content: ({ label, payload }) => ( + + ) + }} /> ); } @@ -93,7 +132,7 @@ export default function BomPricingPanel({ readonly part: any; readonly pricing: any; }): ReactNode { - const table = useTable('pricing-bom'); + const table = useTable('pricingbom'); const columns: TableColumn[] = useMemo(() => { return [ @@ -102,7 +141,7 @@ export default function BomPricingPanel({ title: t`Component`, sortable: true, switchable: false, - render: (record: any) => PartColumn(record.sub_part_detail) + render: (record: any) => PartColumn({ part: record.sub_part_detail }) }, { accessor: 'quantity', diff --git a/src/frontend/src/pages/part/pricing/PriceBreakPanel.tsx b/src/frontend/src/pages/part/pricing/PriceBreakPanel.tsx index e9cd680165..ba80168720 100644 --- a/src/frontend/src/pages/part/pricing/PriceBreakPanel.tsx +++ b/src/frontend/src/pages/part/pricing/PriceBreakPanel.tsx @@ -29,12 +29,12 @@ import { NoPricingData } from './PricingPanel'; export default function PriceBreakPanel({ part, endpoint -}: { +}: Readonly<{ part: any; endpoint: ApiEndpoints; -}) { +}>) { const user = useUserState(); - const table = useTable('pricing-internal'); + const table = useTable('pricinginternal'); const priceBreakFields: ApiFormFieldSet = useMemo(() => { return { @@ -107,6 +107,7 @@ export default function PriceBreakPanel({ const tableActions = useMemo(() => { return [ { newPriceBreak.open(); diff --git a/src/frontend/src/pages/part/pricing/PricingOverviewPanel.tsx b/src/frontend/src/pages/part/pricing/PricingOverviewPanel.tsx index 2f87f91855..a4266db7d4 100644 --- a/src/frontend/src/pages/part/pricing/PricingOverviewPanel.tsx +++ b/src/frontend/src/pages/part/pricing/PricingOverviewPanel.tsx @@ -9,20 +9,33 @@ import { Stack, Text } from '@mantine/core'; +import { notifications } from '@mantine/notifications'; import { IconBuildingWarehouse, IconChartDonut, + IconCircleCheck, IconExclamationCircle, IconList, IconReportAnalytics, IconShoppingCart, IconTriangleSquareCircle } from '@tabler/icons-react'; +import { UseQueryResult } from '@tanstack/react-query'; +import { toggleUnorderedList } from 'easymde'; import { DataTable } from 'mantine-datatable'; -import { ReactNode, useMemo } from 'react'; +import { ReactNode, useCallback, useMemo } from 'react'; +import { api } from '../../../App'; import { tooltipFormatter } from '../../../components/charts/tooltipFormatter'; +import { + EditItemAction, + OptionsActionDropdown +} from '../../../components/items/ActionDropdown'; import { formatCurrency, formatDate } from '../../../defaults/formatters'; +import { ApiEndpoints } from '../../../enums/ApiEndpoints'; +import { InvenTreeIcon } from '../../../functions/icons'; +import { useEditApiFormModal } from '../../../hooks/UseForm'; +import { apiUrl } from '../../../states/ApiState'; import { panelOptions } from '../PartPricingPanel'; interface PricingOverviewEntry { @@ -38,12 +51,73 @@ interface PricingOverviewEntry { export default function PricingOverviewPanel({ part, pricing, + pricingQuery, doNavigation -}: { +}: Readonly<{ part: any; pricing: any; + pricingQuery: UseQueryResult; doNavigation: (panel: panelOptions) => void; -}): ReactNode { +}>): ReactNode { + const refreshPricing = useCallback(() => { + const url = apiUrl(ApiEndpoints.part_pricing, part.pk); + + notifications.hide('pricing-refresh'); + + notifications.show({ + message: t`Refreshing pricing data`, + color: 'green', + id: 'pricing-refresh', + loading: true, + autoClose: false + }); + + let success: boolean = false; + + api + .patch(url, { update: true }) + .then((response) => { + success = response.status === 200; + }) + .catch(() => {}) + .finally(() => { + notifications.hide('pricing-refresh'); + + if (success) { + notifications.show({ + message: t`Pricing data updated`, + color: 'green', + icon: + }); + pricingQuery.refetch(); + } else { + notifications.show({ + message: t`Failed to update pricing data`, + color: 'red', + icon: + }); + } + }); + }, [part]); + + const editPricing = useEditApiFormModal({ + title: t`Edit Pricing`, + url: apiUrl(ApiEndpoints.part_pricing, part.pk), + fields: { + override_min: {}, + override_min_currency: {}, + override_max: {}, + override_max_currency: {}, + update: { + hidden: true, + value: true + } + }, + onFormSuccess: () => { + pricingQuery.refetch(); + } + }); + const columns: any[] = useMemo(() => { return [ { @@ -163,38 +237,70 @@ export default function PricingOverviewPanel({ }); }, [part, pricing]); - // TODO: Add display of "last updated" - // TODO: Add "update now" button - return ( - - - - {pricing?.updated && ( + <> + {editPricing.modal} + + + - - {formatDate(pricing.updated)} - + + {pricing?.updated ? ( + + {formatDate(pricing.updated)} + + ) : ( + + {t`Pricing data has not been calculated for this part`} + + )} + + ), + onClick: () => { + refreshPricing(); + } + }, + EditItemAction({ + onClick: () => { + editPricing.open(); + }, + tooltip: t`Edit pricing data` + }) + ]} + /> + - )} - + + + tooltipFormatter(value, pricing?.currency) + } /> - - tooltipFormatter(value, pricing?.currency)} - /> - - + + + ); } diff --git a/src/frontend/src/pages/part/pricing/PurchaseHistoryPanel.tsx b/src/frontend/src/pages/part/pricing/PurchaseHistoryPanel.tsx index 1c4a4880eb..02c4ff05ae 100644 --- a/src/frontend/src/pages/part/pricing/PurchaseHistoryPanel.tsx +++ b/src/frontend/src/pages/part/pricing/PurchaseHistoryPanel.tsx @@ -13,10 +13,10 @@ import { NoPricingData } from './PricingPanel'; export default function PurchaseHistoryPanel({ part -}: { +}: Readonly<{ part: any; -}): ReactNode { - const table = useTable('pricing-purchase-history'); +}>): ReactNode { + const table = useTable('pricingpurchasehistory'); const calculateUnitPrice = useCallback((record: any) => { let pack_quantity = record?.supplier_part_detail?.pack_quantity_native ?? 1; @@ -52,12 +52,15 @@ export default function PurchaseHistoryPanel({ currency: record.purchase_price_currency }); - let units = record.supplier_part_detail?.pack_quantity; + let packQuatity = record.supplier_part_detail?.pack_quantity; + let hasPackQuantity = + !!packQuatity && + record.supplier_part_detail?.pack_quantity_native != 1; return ( {price} - {units && [{units}]} + {hasPackQuantity && [{packQuatity}]} ); } @@ -74,11 +77,12 @@ export default function PurchaseHistoryPanel({ }); let units = record.part_detail?.units; + let hasUnits = !!units && units !== 1; return ( {price} - {units && [{units}]} + {hasUnits && [{units}]} ); } @@ -86,13 +90,6 @@ export default function PurchaseHistoryPanel({ ]; }, []); - const currency: string = useMemo(() => { - if (table.records.length === 0) { - return ''; - } - return table.records[0].purchase_price_currency; - }, [table.records]); - const purchaseHistoryData = useMemo(() => { return table.records.map((record: any) => { return { diff --git a/src/frontend/src/pages/part/pricing/SaleHistoryPanel.tsx b/src/frontend/src/pages/part/pricing/SaleHistoryPanel.tsx index a71427c24d..10de2eb17f 100644 --- a/src/frontend/src/pages/part/pricing/SaleHistoryPanel.tsx +++ b/src/frontend/src/pages/part/pricing/SaleHistoryPanel.tsx @@ -12,14 +12,16 @@ import { DateColumn } from '../../../tables/ColumnRenderers'; import { InvenTreeTable } from '../../../tables/InvenTreeTable'; import { NoPricingData } from './PricingPanel'; -export default function SaleHistoryPanel({ part }: { part: any }): ReactNode { - const table = useTable('pricing-sale-history'); +export default function SaleHistoryPanel({ + part +}: Readonly<{ part: any }>): ReactNode { + const table = useTable('pricingsalehistory'); const columns: TableColumn[] = useMemo(() => { return [ { accessor: 'order', - title: t`Sale Order`, + title: t`Sales Order`, render: (record: any) => record?.order_detail?.reference, sortable: true, switchable: false @@ -51,13 +53,6 @@ export default function SaleHistoryPanel({ part }: { part: any }): ReactNode { ]; }, []); - const currency: string = useMemo(() => { - if (table.records.length === 0) { - return ''; - } - return table.records[0].sale_price_currency; - }, [table.records]); - const saleHistoryData = useMemo(() => { return table.records.map((record: any) => { return { diff --git a/src/frontend/src/pages/part/pricing/SupplierPricingPanel.tsx b/src/frontend/src/pages/part/pricing/SupplierPricingPanel.tsx index e69a498d38..189e7b56f0 100644 --- a/src/frontend/src/pages/part/pricing/SupplierPricingPanel.tsx +++ b/src/frontend/src/pages/part/pricing/SupplierPricingPanel.tsx @@ -15,8 +15,10 @@ import { } from '../../../tables/purchasing/SupplierPriceBreakTable'; import { NoPricingData } from './PricingPanel'; -export default function SupplierPricingPanel({ part }: { part: any }) { - const table = useTable('pricing-supplier'); +export default function SupplierPricingPanel({ + part +}: Readonly<{ part: any }>) { + const table = useTable('pricingsupplier'); const columns: TableColumn[] = useMemo(() => { return SupplierPriceBreakColumns(); @@ -30,14 +32,16 @@ export default function SupplierPricingPanel({ part }: { part: any }) { }, [table.records]); const supplierPricingData = useMemo(() => { - return table.records.map((record: any) => { - return { - quantity: record.quantity, - supplier_price: record.price, - unit_price: calculateSupplierPartUnitPrice(record), - name: record.part_detail?.SKU - }; - }); + return ( + table.records?.map((record: any) => { + return { + quantity: record.quantity, + supplier_price: record.price, + unit_price: calculateSupplierPartUnitPrice(record), + name: record.part_detail?.SKU + }; + }) ?? [] + ); }, [table.records]); return ( diff --git a/src/frontend/src/pages/part/pricing/VariantPricingPanel.tsx b/src/frontend/src/pages/part/pricing/VariantPricingPanel.tsx index 38c918b32c..884c1c67ea 100644 --- a/src/frontend/src/pages/part/pricing/VariantPricingPanel.tsx +++ b/src/frontend/src/pages/part/pricing/VariantPricingPanel.tsx @@ -17,11 +17,11 @@ import { NoPricingData } from './PricingPanel'; export default function VariantPricingPanel({ part, pricing -}: { +}: Readonly<{ part: any; pricing: any; -}): ReactNode { - const table = useTable('pricing-variants'); +}>): ReactNode { + const table = useTable('pricingvariants'); const columns: TableColumn[] = useMemo(() => { return [ @@ -30,7 +30,7 @@ export default function VariantPricingPanel({ title: t`Variant Part`, sortable: true, switchable: false, - render: (record: any) => PartColumn(record, true) + render: (record: any) => PartColumn({ part: record, full_name: true }) }, { accessor: 'pricing_min', diff --git a/src/frontend/src/pages/purchasing/PurchaseOrderDetail.tsx b/src/frontend/src/pages/purchasing/PurchaseOrderDetail.tsx index 421ef4218c..36054a0748 100644 --- a/src/frontend/src/pages/purchasing/PurchaseOrderDetail.tsx +++ b/src/frontend/src/pages/purchasing/PurchaseOrderDetail.tsx @@ -1,13 +1,6 @@ import { t } from '@lingui/macro'; import { Accordion, Grid, Skeleton, Stack } from '@mantine/core'; -import { - IconDots, - IconInfoCircle, - IconList, - IconNotes, - IconPackages, - IconPaperclip -} from '@tabler/icons-react'; +import { IconInfoCircle, IconList, IconPackages } from '@tabler/icons-react'; import { ReactNode, useMemo } from 'react'; import { useParams } from 'react-router-dom'; @@ -17,19 +10,21 @@ import { PrintingActions } from '../../components/buttons/PrintingActions'; import { DetailsField, DetailsTable } from '../../components/details/Details'; import { DetailsImage } from '../../components/details/DetailsImage'; import { ItemDetailsGrid } from '../../components/details/ItemDetails'; -import NotesEditor from '../../components/editors/NotesEditor'; import { - ActionDropdown, BarcodeActionDropdown, CancelItemAction, DuplicateItemAction, EditItemAction, - HoldItemAction + HoldItemAction, + OptionsActionDropdown } from '../../components/items/ActionDropdown'; import { StylishText } from '../../components/items/StylishText'; import InstanceDetail from '../../components/nav/InstanceDetail'; import { PageDetail } from '../../components/nav/PageDetail'; -import { PanelGroup, PanelType } from '../../components/nav/PanelGroup'; +import AttachmentPanel from '../../components/panels/AttachmentPanel'; +import NotesPanel from '../../components/panels/NotesPanel'; +import { PanelType } from '../../components/panels/Panel'; +import { PanelGroup } from '../../components/panels/PanelGroup'; import { StatusRenderer } from '../../components/render/StatusRenderer'; import { formatCurrency } from '../../defaults/formatters'; import { ApiEndpoints } from '../../enums/ApiEndpoints'; @@ -45,7 +40,6 @@ import useStatusCodes from '../../hooks/UseStatusCodes'; import { apiUrl } from '../../states/ApiState'; import { useGlobalSettingsState } from '../../states/SettingsState'; import { useUserState } from '../../states/UserState'; -import { AttachmentTable } from '../../tables/general/AttachmentTable'; import ExtraLineItemTable from '../../tables/general/ExtraLineItemTable'; import { PurchaseOrderLineItemTable } from '../../tables/purchasing/PurchaseOrderLineItemTable'; import { StockItemTable } from '../../tables/stock/StockItemTable'; @@ -81,7 +75,11 @@ export default function PurchaseOrderDetail() { ); }, [order, globalSettings]); - const purchaseOrderFields = usePurchaseOrderFields(); + const purchaseOrderFields = usePurchaseOrderFields({}); + + const duplicatePurchaseOrderFields = usePurchaseOrderFields({ + duplicateOrderId: order.pk + }); const editPurchaseOrder = useEditApiFormModal({ url: ApiEndpoints.purchase_order_list, @@ -96,7 +94,7 @@ export default function PurchaseOrderDetail() { const duplicatePurchaseOrder = useCreateApiFormModal({ url: ApiEndpoints.purchase_order_list, title: t`Add Purchase Order`, - fields: purchaseOrderFields, + fields: duplicatePurchaseOrderFields, initialData: { ...order, reference: undefined @@ -155,12 +153,19 @@ export default function PurchaseOrderDetail() { total: order.line_items, progress: order.completed_lines }, + { + type: 'link', + model: ModelType.stocklocation, + link: true, + name: 'destination', + label: t`Destination`, + hidden: !order.destination + }, { type: 'text', name: 'currency', label: t`Order Currency`, - value_formatter: () => - order?.order_currency ?? order?.supplier_detail?.currency + value_formatter: () => orderCurrency }, { type: 'text', @@ -192,24 +197,47 @@ export default function PurchaseOrderDetail() { icon: 'user', copy: true, hidden: !order.contact + }, + { + type: 'text', + name: 'project_code_label', + label: t`Project Code`, + icon: 'reference', + copy: true, + hidden: !order.project_code } - // TODO: Project code ]; let br: DetailsField[] = [ { - type: 'text', + type: 'date', name: 'creation_date', - label: t`Created On`, + label: t`Creation Date`, icon: 'calendar' }, { - type: 'text', + type: 'date', + name: 'issue_date', + label: t`Issue Date`, + icon: 'calendar', + copy: true, + hidden: !order.issue_date + }, + { + type: 'date', name: 'target_date', label: t`Target Date`, icon: 'calendar', hidden: !order.target_date }, + { + type: 'date', + name: 'complete_date', + icon: 'calendar_check', + label: t`Completion Date`, + copy: true, + hidden: !order.complete_date + }, { type: 'text', name: 'responsible', @@ -239,7 +267,7 @@ export default function PurchaseOrderDetail() { ); - }, [order, instanceQuery]); + }, [order, orderCurrency, instanceQuery]); const orderPanels: PanelType[] = useMemo(() => { return [ @@ -300,29 +328,14 @@ export default function PurchaseOrderDetail() { /> ) }, - { - name: 'attachments', - label: t`Attachments`, - icon: , - content: ( - - ) - }, - { - name: 'notes', - label: t`Notes`, - icon: , - content: ( - - ) - } + AttachmentPanel({ + model_type: ModelType.purchaseorder, + model_id: order.pk + }), + NotesPanel({ + model_type: ModelType.purchaseorder, + model_id: order.pk + }) ]; }, [order, id, user]); @@ -408,9 +421,8 @@ export default function PurchaseOrderDetail() { items={[order.pk]} enableReports />, - } actions={[ EditItemAction({ hidden: !canEdit, @@ -471,7 +483,13 @@ export default function PurchaseOrderDetail() { editAction={editPurchaseOrder.open} editEnabled={user.hasChangePermission(ModelType.purchaseorder)} /> - + diff --git a/src/frontend/src/pages/purchasing/PurchasingIndex.tsx b/src/frontend/src/pages/purchasing/PurchasingIndex.tsx index 13c91771b7..4c7d9f93d6 100644 --- a/src/frontend/src/pages/purchasing/PurchasingIndex.tsx +++ b/src/frontend/src/pages/purchasing/PurchasingIndex.tsx @@ -9,7 +9,7 @@ import { useMemo } from 'react'; import PermissionDenied from '../../components/errors/PermissionDenied'; import { PageDetail } from '../../components/nav/PageDetail'; -import { PanelGroup } from '../../components/nav/PanelGroup'; +import { PanelGroup } from '../../components/panels/PanelGroup'; import { UserRoles } from '../../enums/Roles'; import { useUserState } from '../../states/UserState'; import { CompanyTable } from '../../tables/company/CompanyTable'; @@ -58,7 +58,12 @@ export default function PurchasingIndex() { return ( - + ); } diff --git a/src/frontend/src/pages/sales/ReturnOrderDetail.tsx b/src/frontend/src/pages/sales/ReturnOrderDetail.tsx index bf5ddbcfbc..4542fde44e 100644 --- a/src/frontend/src/pages/sales/ReturnOrderDetail.tsx +++ b/src/frontend/src/pages/sales/ReturnOrderDetail.tsx @@ -1,12 +1,6 @@ import { t } from '@lingui/macro'; import { Accordion, Grid, Skeleton, Stack } from '@mantine/core'; -import { - IconDots, - IconInfoCircle, - IconList, - IconNotes, - IconPaperclip -} from '@tabler/icons-react'; +import { IconInfoCircle, IconList } from '@tabler/icons-react'; import { ReactNode, useMemo } from 'react'; import { useParams } from 'react-router-dom'; @@ -16,25 +10,27 @@ import { PrintingActions } from '../../components/buttons/PrintingActions'; import { DetailsField, DetailsTable } from '../../components/details/Details'; import { DetailsImage } from '../../components/details/DetailsImage'; import { ItemDetailsGrid } from '../../components/details/ItemDetails'; -import NotesEditor from '../../components/editors/NotesEditor'; import { - ActionDropdown, BarcodeActionDropdown, CancelItemAction, DuplicateItemAction, EditItemAction, - HoldItemAction + HoldItemAction, + OptionsActionDropdown } from '../../components/items/ActionDropdown'; import { StylishText } from '../../components/items/StylishText'; import InstanceDetail from '../../components/nav/InstanceDetail'; import { PageDetail } from '../../components/nav/PageDetail'; -import { PanelGroup, PanelType } from '../../components/nav/PanelGroup'; +import AttachmentPanel from '../../components/panels/AttachmentPanel'; +import NotesPanel from '../../components/panels/NotesPanel'; +import { PanelType } from '../../components/panels/Panel'; +import { PanelGroup } from '../../components/panels/PanelGroup'; import { StatusRenderer } from '../../components/render/StatusRenderer'; import { formatCurrency } from '../../defaults/formatters'; import { ApiEndpoints } from '../../enums/ApiEndpoints'; import { ModelType } from '../../enums/ModelType'; import { UserRoles } from '../../enums/Roles'; -import { useReturnOrderFields } from '../../forms/SalesOrderForms'; +import { useReturnOrderFields } from '../../forms/ReturnOrderForms'; import { useCreateApiFormModal, useEditApiFormModal @@ -44,7 +40,6 @@ import useStatusCodes from '../../hooks/UseStatusCodes'; import { apiUrl } from '../../states/ApiState'; import { useGlobalSettingsState } from '../../states/SettingsState'; import { useUserState } from '../../states/UserState'; -import { AttachmentTable } from '../../tables/general/AttachmentTable'; import ExtraLineItemTable from '../../tables/general/ExtraLineItemTable'; import ReturnOrderLineItemTable from '../../tables/sales/ReturnOrderLineItemTable'; @@ -95,6 +90,7 @@ export default function ReturnOrderDetail() { type: 'text', name: 'customer_reference', label: t`Customer Reference`, + icon: 'customer', copy: true, hidden: !order.customer_reference }, @@ -171,24 +167,49 @@ export default function ReturnOrderDetail() { icon: 'user', copy: true, hidden: !order.contact + }, + { + type: 'text', + name: 'project_code_label', + label: t`Project Code`, + icon: 'reference', + copy: true, + hidden: !order.project_code } - // TODO: Project code ]; let br: DetailsField[] = [ { - type: 'text', + type: 'date', name: 'creation_date', - label: t`Created On`, - icon: 'calendar' + label: t`Creation Date`, + icon: 'calendar', + copy: true, + hidden: !order.creation_date }, { - type: 'text', + type: 'date', + name: 'issue_date', + label: t`Issue Date`, + icon: 'calendar', + copy: true, + hidden: !order.issue_date + }, + { + type: 'date', name: 'target_date', label: t`Target Date`, - icon: 'calendar', + copy: true, hidden: !order.target_date }, + { + type: 'date', + name: 'complete_date', + icon: 'calendar_check', + label: t`Completion Date`, + copy: true, + hidden: !order.complete_date + }, { type: 'text', name: 'responsible', @@ -244,6 +265,7 @@ export default function ReturnOrderDetail() { @@ -265,29 +287,14 @@ export default function ReturnOrderDetail() { ) }, - { - name: 'attachments', - label: t`Attachments`, - icon: , - content: ( - - ) - }, - { - name: 'notes', - label: t`Notes`, - icon: , - content: ( - - ) - } + AttachmentPanel({ + model_type: ModelType.returnorder, + model_id: order.pk + }), + NotesPanel({ + model_type: ModelType.returnorder, + model_id: order.pk + }) ]; }, [order, id, user]); @@ -303,7 +310,11 @@ export default function ReturnOrderDetail() { ]; }, [order, instanceQuery]); - const returnOrderFields = useReturnOrderFields(); + const returnOrderFields = useReturnOrderFields({}); + + const duplicateReturnOrderFields = useReturnOrderFields({ + duplicateOrderId: order.pk + }); const editReturnOrder = useEditApiFormModal({ url: ApiEndpoints.return_order_list, @@ -318,7 +329,7 @@ export default function ReturnOrderDetail() { const duplicateReturnOrder = useCreateApiFormModal({ url: ApiEndpoints.return_order_list, title: t`Add Return Order`, - fields: returnOrderFields, + fields: duplicateReturnOrderFields, initialData: { ...order, reference: undefined @@ -340,7 +351,7 @@ export default function ReturnOrderDetail() { title: t`Cancel Return Order`, onFormSuccess: refreshInstance, preFormWarning: t`Cancel this order`, - successMessage: t`Order canceled` + successMessage: t`Order cancelled` }); const holdOrder = useCreateApiFormModal({ @@ -409,9 +420,8 @@ export default function ReturnOrderDetail() { items={[order.pk]} enableReports />, - } actions={[ EditItemAction({ hidden: !user.hasChangeRole(UserRoles.return_order), @@ -460,7 +470,13 @@ export default function ReturnOrderDetail() { editAction={editReturnOrder.open} editEnabled={user.hasChangePermission(ModelType.returnorder)} /> - + diff --git a/src/frontend/src/pages/sales/SalesIndex.tsx b/src/frontend/src/pages/sales/SalesIndex.tsx index 16a94174e5..8e8197d9de 100644 --- a/src/frontend/src/pages/sales/SalesIndex.tsx +++ b/src/frontend/src/pages/sales/SalesIndex.tsx @@ -9,7 +9,7 @@ import { useMemo } from 'react'; import PermissionDenied from '../../components/errors/PermissionDenied'; import { PageDetail } from '../../components/nav/PageDetail'; -import { PanelGroup } from '../../components/nav/PanelGroup'; +import { PanelGroup } from '../../components/panels/PanelGroup'; import { UserRoles } from '../../enums/Roles'; import { useUserState } from '../../states/UserState'; import { CompanyTable } from '../../tables/company/CompanyTable'; @@ -51,7 +51,12 @@ export default function PurchasingIndex() { return ( - + ); } diff --git a/src/frontend/src/pages/sales/SalesOrderDetail.tsx b/src/frontend/src/pages/sales/SalesOrderDetail.tsx index 2198652bd7..c49c2ba263 100644 --- a/src/frontend/src/pages/sales/SalesOrderDetail.tsx +++ b/src/frontend/src/pages/sales/SalesOrderDetail.tsx @@ -2,11 +2,8 @@ import { t } from '@lingui/macro'; import { Accordion, Grid, Skeleton, Stack } from '@mantine/core'; import { IconBookmark, - IconDots, IconInfoCircle, IconList, - IconNotes, - IconPaperclip, IconTools, IconTruckDelivery } from '@tabler/icons-react'; @@ -19,19 +16,21 @@ import { PrintingActions } from '../../components/buttons/PrintingActions'; import { DetailsField, DetailsTable } from '../../components/details/Details'; import { DetailsImage } from '../../components/details/DetailsImage'; import { ItemDetailsGrid } from '../../components/details/ItemDetails'; -import NotesEditor from '../../components/editors/NotesEditor'; import { - ActionDropdown, BarcodeActionDropdown, CancelItemAction, DuplicateItemAction, EditItemAction, - HoldItemAction + HoldItemAction, + OptionsActionDropdown } from '../../components/items/ActionDropdown'; import { StylishText } from '../../components/items/StylishText'; import InstanceDetail from '../../components/nav/InstanceDetail'; import { PageDetail } from '../../components/nav/PageDetail'; -import { PanelGroup, PanelType } from '../../components/nav/PanelGroup'; +import AttachmentPanel from '../../components/panels/AttachmentPanel'; +import NotesPanel from '../../components/panels/NotesPanel'; +import { PanelType } from '../../components/panels/Panel'; +import { PanelGroup } from '../../components/panels/PanelGroup'; import { StatusRenderer } from '../../components/render/StatusRenderer'; import { formatCurrency } from '../../defaults/formatters'; import { ApiEndpoints } from '../../enums/ApiEndpoints'; @@ -48,7 +47,6 @@ import { apiUrl } from '../../states/ApiState'; import { useGlobalSettingsState } from '../../states/SettingsState'; import { useUserState } from '../../states/UserState'; import { BuildOrderTable } from '../../tables/build/BuildOrderTable'; -import { AttachmentTable } from '../../tables/general/AttachmentTable'; import ExtraLineItemTable from '../../tables/general/ExtraLineItemTable'; import SalesOrderAllocationTable from '../../tables/sales/SalesOrderAllocationTable'; import SalesOrderLineItemTable from '../../tables/sales/SalesOrderLineItemTable'; @@ -102,6 +100,7 @@ export default function SalesOrderDetail() { name: 'customer_reference', label: t`Customer Reference`, copy: true, + icon: 'reference', hidden: !order.customer_reference }, { @@ -180,23 +179,46 @@ export default function SalesOrderDetail() { icon: 'user', copy: true, hidden: !order.contact + }, + { + type: 'text', + name: 'project_code_label', + label: t`Project Code`, + icon: 'reference', + copy: true, + hidden: !order.project_code } - // TODO: Project code ]; let br: DetailsField[] = [ { - type: 'text', + type: 'date', name: 'creation_date', - label: t`Created On`, - icon: 'calendar' + label: t`Creation Date`, + copy: true, + hidden: !order.creation_date }, { - type: 'text', + type: 'date', + name: 'issue_date', + label: t`Issue Date`, + icon: 'calendar', + copy: true, + hidden: !order.issue_date + }, + { + type: 'date', name: 'target_date', label: t`Target Date`, - icon: 'calendar', - hidden: !order.target_date + hidden: !order.target_date, + copy: true + }, + { + type: 'date', + name: 'shipment_date', + label: t`Completion Date`, + hidden: !order.shipment_date, + copy: true }, { type: 'text', @@ -231,7 +253,7 @@ export default function SalesOrderDetail() { const soStatus = useStatusCodes({ modelType: ModelType.salesorder }); - const salesOrderFields = useSalesOrderFields(); + const salesOrderFields = useSalesOrderFields({}); const editSalesOrder = useEditApiFormModal({ url: ApiEndpoints.sales_order_list, @@ -243,10 +265,14 @@ export default function SalesOrderDetail() { } }); + const duplicateOrderFields = useSalesOrderFields({ + duplicateOrderId: order.pk + }); + const duplicateSalesOrder = useCreateApiFormModal({ url: ApiEndpoints.sales_order_list, title: t`Add Sales Order`, - fields: salesOrderFields, + fields: duplicateOrderFields, initialData: { ...order, reference: undefined @@ -334,29 +360,14 @@ export default function SalesOrderDetail() { ) }, - { - name: 'attachments', - label: t`Attachments`, - icon: , - content: ( - - ) - }, - { - name: 'notes', - label: t`Notes`, - icon: , - content: ( - - ) - } + AttachmentPanel({ + model_type: ModelType.salesorder, + model_id: order.pk + }), + NotesPanel({ + model_type: ModelType.salesorder, + model_id: order.pk + }) ]; }, [order, id, user, soStatus]); @@ -449,9 +460,8 @@ export default function SalesOrderDetail() { items={[order.pk]} enableReports />, - } actions={[ EditItemAction({ hidden: !canEdit, @@ -511,7 +521,13 @@ export default function SalesOrderDetail() { editAction={editSalesOrder.open} editEnabled={user.hasChangePermission(ModelType.salesorder)} /> - + diff --git a/src/frontend/src/pages/sales/SalesOrderShipmentDetail.tsx b/src/frontend/src/pages/sales/SalesOrderShipmentDetail.tsx new file mode 100644 index 0000000000..d9bcde769f --- /dev/null +++ b/src/frontend/src/pages/sales/SalesOrderShipmentDetail.tsx @@ -0,0 +1,366 @@ +import { t } from '@lingui/macro'; +import { Grid, Skeleton, Stack } from '@mantine/core'; +import { IconInfoCircle, IconPackages } from '@tabler/icons-react'; +import { useMemo } from 'react'; +import { useNavigate, useParams } from 'react-router-dom'; + +import PrimaryActionButton from '../../components/buttons/PrimaryActionButton'; +import { PrintingActions } from '../../components/buttons/PrintingActions'; +import { DetailsField, DetailsTable } from '../../components/details/Details'; +import DetailsBadge from '../../components/details/DetailsBadge'; +import { DetailsImage } from '../../components/details/DetailsImage'; +import { ItemDetailsGrid } from '../../components/details/ItemDetails'; +import { + BarcodeActionDropdown, + CancelItemAction, + EditItemAction, + OptionsActionDropdown +} from '../../components/items/ActionDropdown'; +import InstanceDetail from '../../components/nav/InstanceDetail'; +import { PageDetail } from '../../components/nav/PageDetail'; +import AttachmentPanel from '../../components/panels/AttachmentPanel'; +import NotesPanel from '../../components/panels/NotesPanel'; +import { PanelType } from '../../components/panels/Panel'; +import { PanelGroup } from '../../components/panels/PanelGroup'; +import { formatDate } from '../../defaults/formatters'; +import { ApiEndpoints } from '../../enums/ApiEndpoints'; +import { ModelType } from '../../enums/ModelType'; +import { UserRoles } from '../../enums/Roles'; +import { + useSalesOrderShipmentCompleteFields, + useSalesOrderShipmentFields +} from '../../forms/SalesOrderForms'; +import { getDetailUrl } from '../../functions/urls'; +import { + useCreateApiFormModal, + useDeleteApiFormModal, + useEditApiFormModal +} from '../../hooks/UseForm'; +import { useInstance } from '../../hooks/UseInstance'; +import { useUserState } from '../../states/UserState'; +import SalesOrderAllocationTable from '../../tables/sales/SalesOrderAllocationTable'; + +export default function SalesOrderShipmentDetail() { + const { id } = useParams(); + const user = useUserState(); + const navigate = useNavigate(); + + const { + instance: shipment, + instanceQuery: shipmentQuery, + refreshInstance: refreshShipment, + requestStatus: shipmentStatus + } = useInstance({ + endpoint: ApiEndpoints.sales_order_shipment_list, + pk: id, + params: { + order_detail: true + } + }); + + const { + instance: customer, + instanceQuery: customerQuery, + refreshInstance: refreshCustomer, + requestStatus: customerStatus + } = useInstance({ + endpoint: ApiEndpoints.company_list, + pk: shipment.order_detail?.customer, + hasPrimaryKey: true + }); + + const isPending = useMemo(() => !shipment.shipment_date, [shipment]); + + const detailsPanel = useMemo(() => { + if (shipmentQuery.isFetching || customerQuery.isFetching) { + return ; + } + + let data: any = { + ...shipment, + customer: customer?.pk, + customer_name: customer?.name, + customer_reference: shipment.order_detail?.customer_reference + }; + + // Top Left: Order / customer information + let tl: DetailsField[] = [ + { + type: 'link', + model: ModelType.salesorder, + name: 'order', + label: t`Sales Order`, + icon: 'sales_orders', + model_field: 'reference' + }, + { + type: 'link', + name: 'customer', + icon: 'customers', + label: t`Customer`, + model: ModelType.company, + model_field: 'name', + hidden: !data.customer + }, + { + type: 'text', + name: 'customer_reference', + icon: 'serial', + label: t`Customer Reference`, + hidden: !data.customer_reference, + copy: true + }, + { + type: 'text', + name: 'reference', + icon: 'serial', + label: t`Shipment Reference`, + copy: true + }, + { + type: 'text', + name: 'allocated_items', + icon: 'packages', + label: t`Allocated Items` + } + ]; + + // Top right: Shipment information + let tr: DetailsField[] = [ + { + type: 'text', + name: 'tracking_number', + label: t`Tracking Number`, + icon: 'trackable', + value_formatter: () => shipment.tracking_number || '---', + copy: !!shipment.tracking_number + }, + { + type: 'text', + name: 'invoice_number', + label: t`Invoice Number`, + icon: 'serial', + value_formatter: () => shipment.invoice_number || '---', + copy: !!shipment.invoice_number + }, + { + type: 'text', + name: 'shipment_date', + label: t`Shipment Date`, + icon: 'calendar', + value_formatter: () => formatDate(shipment.shipment_date), + hidden: !shipment.shipment_date + }, + { + type: 'text', + name: 'delivery_date', + label: t`Delivery Date`, + icon: 'calendar', + value_formatter: () => formatDate(shipment.delivery_date), + hidden: !shipment.delivery_date + }, + { + type: 'link', + external: true, + name: 'link', + label: t`Link`, + copy: true, + hidden: !shipment.link + } + ]; + + return ( + <> + + + + + + + + + + + + + ); + }, [shipment, shipmentQuery, customer, customerQuery]); + + const shipmentPanels: PanelType[] = useMemo(() => { + return [ + { + name: 'detail', + label: t`Shipment Details`, + icon: , + content: detailsPanel + }, + { + name: 'items', + label: t`Assigned Items`, + icon: , + content: ( + + ) + }, + AttachmentPanel({ + model_type: ModelType.salesordershipment, + model_id: shipment.pk + }), + NotesPanel({ + model_type: ModelType.salesordershipment, + model_id: shipment.pk + }) + ]; + }, [isPending, shipment, detailsPanel]); + + const editShipmentFields = useSalesOrderShipmentFields({ + pending: isPending + }); + + const editShipment = useEditApiFormModal({ + url: ApiEndpoints.sales_order_shipment_list, + pk: shipment.pk, + fields: editShipmentFields, + title: t`Edit Shipment`, + onFormSuccess: refreshShipment + }); + + const deleteShipment = useDeleteApiFormModal({ + url: ApiEndpoints.sales_order_shipment_list, + pk: shipment.pk, + title: t`Cancel Shipment`, + onFormSuccess: () => { + // Shipment has been deleted - navigate back to the sales order + navigate(getDetailUrl(ModelType.salesorder, shipment.order)); + } + }); + + const completeShipmentFields = useSalesOrderShipmentCompleteFields({}); + + const completeShipment = useCreateApiFormModal({ + url: ApiEndpoints.sales_order_shipment_complete, + pk: shipment.pk, + fields: completeShipmentFields, + title: t`Complete Shipment`, + focus: 'tracking_number', + initialData: { + ...shipment, + shipment_date: new Date().toISOString().split('T')[0] + }, + onFormSuccess: refreshShipment + }); + + const shipmentBadges = useMemo(() => { + if (shipmentQuery.isFetching) { + return []; + } + + return [ + , + , + + ]; + }, [shipment, shipmentQuery]); + + const shipmentActions = useMemo(() => { + const canEdit: boolean = user.hasChangePermission( + ModelType.salesordershipment + ); + + return [ +